[
  {
    "path": ".github/cr.yaml",
    "content": "release-name-template: \"helm-chart-{{ .Name }}-{{ .Version }}\"\n"
  },
  {
    "path": ".github/dependabot.yml",
    "content": "version: 2\nupdates:\n- package-ecosystem: docker\n  directory: /\n  schedule:\n    interval: weekly\n- package-ecosystem: gomod\n  directory: /\n  schedule:\n    interval: weekly\n  groups:\n    gomod-dependencies:\n      patterns:\n      - '*'\n"
  },
  {
    "path": ".github/workflows/helm-chart-release.yaml",
    "content": "name: Release Helm Charts\n\non:\n  push:\n    branches:\n      - master\n    paths:\n      - \"charts/**\"\n\njobs:\n  release:\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v2\n        with:\n          fetch-depth: 0\n      - name: Configure Git\n        run: |\n          git config user.name \"$GITHUB_ACTOR\"\n          git config user.email \"$GITHUB_ACTOR@users.noreply.github.com\"\n      - name: Run chart-releaser\n        uses: helm/chart-releaser-action@v1.2.1\n        env:\n          CR_TOKEN: \"${{ secrets.GITHUB_TOKEN }}\"\n        with:\n          config: .github/cr.yaml\n"
  },
  {
    "path": ".gitignore",
    "content": "/bin\n/.go\n/.push-*\n/.container-*\n/.dockerfile-*\n/.licenses*\n/.buildx-initialized\n"
  },
  {
    "path": ".travis.yml",
    "content": "sudo: required\n\n# trusty required for docker\n# https://github.com/travis-ci/travis-ci/issues/5448\ndist: trusty\n\nservices:\n  - docker\n\nscript:\n  - make test\n"
  },
  {
    "path": "CHANGELOG.md",
    "content": "### Version 1.9.0 (Tue Nov 22 2024 Zihong Zheng <zihongz@google.com>)\n - A scalability improvement to reduce memory footprint under large-scale scenarios.\n - Pickup latest CVE fixes.\n - Update dependencies version (golang, k8s, etc.).\n\n### Version 1.8.9 (Tue Jul 29 2023 Zihong Zheng <zihongz@google.com>)\n - Fix options provided to CPA's Nodes List and Watch requests.\n\n### Version 1.8.8 (Tue Mar 28 2023 Zihong Zheng <zihongz@google.com>)\n - Support custom priorityClassName in the helm chart.\n - Update go dependencies.\n - Version tag now comes with the v prefix (v1.8.8) to be consistent with the other k8s repos.\n\n### Version 1.8.7 (Thu Jan 26 2023 Zihong Zheng <zihongz@google.com>)\n - Bump go version to resolve Golang CVEs.\n\n### Version 1.8.6 (Mon Aug 15 2022 Zihong Zheng <zihongz@google.com>)\n - Use docker buildx for multi-arch image.\n\n### Version 1.8.5 (Wed Aug 14 2021 Zihong Zheng <zihongz@google.com>)\n - Change minimum replicas to zero in laddermode.\n\n### Version 1.8.4 (Thu June 29 2021 Zihong Zheng <zihongz@google.com>)\n - Remove USER in Dockerfile.\n\n### Version 1.8.3 (Fri Aug 14 2020 Zihong Zheng <zihongz@google.com>)\n - Fix the architecture metadata in the multi-arch imagee.\n\n### Version 1.8.2 (Mon Aug 03 2020 Zihong Zheng <zihongz@google.com>)\n - Create a multiarch image.\n\n### Version 1.8.1 (Fri June 12 2020 Zihong Zheng <zihongz@google.com>)\n - fix core calculate.\n\n### Version 1.8.0 (Thu May 21 2020 Zihong Zheng <zihongz@google.com>)\n - Allow ladder to support setting replicas to 0.\n - Add simple healthz.\n - use node.Status.Allocatable when calculate cores.\n - Add includeUnschedulableNodes option\n\n### Version 1.7.1 (Tue Aug 27 2019 Zihong Zheng <zihongz@google.com>)\n - Fix a bug that controller is blocked by reflector.Run().\n\n### Version 1.7.0 (Sat Aug 17 2019 Zihong Zheng <zihongz@google.com>)\n - Update to use client-go@kubernetes-1.15.1.\n\n### Version 1.6.0 (Thu May 02 2019 Zihong Zheng <zihongz@google.com>)\n - Rebase base image to distroless.\n\n### Version 1.5.0 (Fri Mar 29 2019 Zihong Zheng <zihongz@google.com>)\n - Add support to filter nodes by node labels.\n\n### Version 1.4.0 (Tue Jan 29 2019 Zihong Zheng <zihongz@google.com>)\n - Add support for scaling via apps/v1 and v1 APIs.\n\n### Version 1.3.0 (Tue Oct 02 2018 Zihong Zheng <zihongz@google.com>)\n - Rebase docker image on scratch..\n\n### Version 1.2.0 (Wed July 11 2018 Zihong Zheng <zihongz@google.com>)\n - Watch nodes instead of periodic polls.\n\n### Version 1.1.2-r2 (Mon June 12 2017 Zihong Zheng <zihongz@google.com>)\n - Update base image and rebuild.\n\n### Version 1.1.2 (Thu June 1 2017 Zihong Zheng <zihongz@google.com>)\n - Update client-go to 3.0 beta.\n\n### Version 1.1.1 (Thu February 23 2017 Zihong Zheng <zihongz@google.com>)\n - Use protobufs for communication with apiserver.\n\n### Version 1.1.0 (Wed February 22 2017 Zihong Zheng <zihongz@google.com>)\n - Adds 'preventSinglePointFailure' option to linear controller and supports\n   switching control mode on-the-fly.\n\n### Version 1.0.0 (Mon November 7 2016 Zihong Zheng <zihongz@google.com>)\n - Releases autoscaler 1.0.0 with linear controller and default params support.\n"
  },
  {
    "path": "CONTRIBUTING.md",
    "content": "# Contributing guidelines\n\n## How to become a contributor and submit your own code\n\n### Contributor License Agreements\n\nWe'd love to accept your patches! Before we can take them, we have to jump a couple of legal hurdles.\n\nPlease fill out either the individual or corporate Contributor License Agreement (CLA).\n\n  * If you are an individual writing original source code and you're sure you own the intellectual property, then you'll need to sign an [individual CLA](http://code.google.com/legal/individual-cla-v1.0.html).\n  * If you work for a company that wants to allow you to contribute your work, then you'll need to sign a [corporate CLA](http://code.google.com/legal/corporate-cla-v1.0.html).\n\nFollow either of the two links above to access the appropriate CLA and instructions for how to sign and return it. Once we receive it, we'll be able to accept your pull requests.\n\n### Contributing A Patch\n\n1. Submit an issue describing your proposed change to the repo in question.\n1. The [repo owners](OWNERS) will respond to your issue promptly.\n1. If your proposed change is accepted, and you haven't already done so, sign a Contributor License Agreement (see details above).\n1. Fork the desired repo, develop and test your code changes.\n1. Submit a pull request.\n\n### Adding dependencies\n\nThe project follows a standard Go project layout, see more about [dependency-management](https://github.com/kubernetes/community/blob/master/contributors/devel/development.md#dependency-management).\n"
  },
  {
    "path": "Dockerfile.in",
    "content": "# Copyright 2016 The Kubernetes Authors.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nFROM {ARG_FROM}\n\n# When building, we can pass a unique value (e.g. `date +%s`) for this arg,\n# which will force a rebuild from here (by invalidating docker's cache).\nARG FORCE_REBUILD=0\n\n# When building, we can pass a hash of the licenses tree, which docker checks\n# against its cache and can force a rebuild from here.\nARG HASH_LICENSES=0\n\n# Add third-party licenses.\nCOPY .licenses/ /LICENSES/\n\n# When building, we can pass a hash of the binary, which docker checks against\n# its cache and can force a rebuild from here.\nARG HASH_BINARY=0\n\n# Add the platform-specific binary.\nCOPY bin/{ARG_OS}_{ARG_ARCH}/{ARG_BIN} /{ARG_BIN}\n\n# This would be nicer as `nobody:nobody` but distroless has no such entries.\nUSER 65535:65535\nENV HOME=/\n\nENTRYPOINT [\"/{ARG_BIN}\"]\n"
  },
  {
    "path": "LICENSE",
    "content": "                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "Makefile",
    "content": "# Copyright 2016 The Kubernetes Authors.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nDBG_MAKEFILE ?=\nifeq ($(DBG_MAKEFILE),1)\n    $(warning ***** starting Makefile for goal(s) \"$(MAKECMDGOALS)\")\n    $(warning ***** $(shell date))\nelse\n    # If we're not debugging the Makefile, don't echo recipes.\n    MAKEFLAGS += -s\nendif\n\n# The binaries to build (just the basenames)\nBINS ?= cluster-proportional-autoscaler\n\n# The platforms we support.  In theory this can be used for Windows platforms,\n# too, but they require specific base images, which we do not have.\nALL_PLATFORMS ?= linux/amd64 linux/arm linux/arm64 linux/ppc64le linux/s390x\n\n# The \"FROM\" part of the Dockerfile.  This should be a manifest-list which\n# supports all of the platforms listed in ALL_PLATFORMS.\nBASE_IMAGE ?= gcr.io/distroless/static:nonroot\n\n# Where to push the docker images.\nREGISTRY ?= gcr.io/k8s-staging-cpa\n\n# Credentials to access the registry.\nREGISTRY_USERNAME ?= oauth2accesstoken\nREGISTRY_PASSWORD ?= $$(gcloud auth print-access-token)\n\n# This version-strategy uses git tags to set the version string\nVERSION ?= $(shell git describe --tags --always --dirty)\n#\n# This version-strategy uses a manual value to set the version string\n#VERSION ?= 1.2.3\n\n# Set this to 1 to build a debugger-friendly binaries.\nDBG ?=\n\n###\n### These variables should not need tweaking.\n###\n\n# We don't need make's built-in rules.\nMAKEFLAGS += --no-builtin-rules\n# Be pedantic about undefined variables.\nMAKEFLAGS += --warn-undefined-variables\n.SUFFIXES:\n\n# Used internally.  Users should pass GOOS and/or GOARCH.\nOS := $(if $(GOOS),$(GOOS),$(shell GOTOOLCHAIN=local go env GOOS))\nARCH := $(if $(GOARCH),$(GOARCH),$(shell GOTOOLCHAIN=local go env GOARCH))\n\nTAG := $(VERSION)__$(OS)_$(ARCH)\n\nGO_VERSION := 1.24\nBUILD_IMAGE := golang:$(GO_VERSION)-alpine\n\nBIN_EXTENSION :=\nifeq ($(OS), windows)\n  BIN_EXTENSION := .exe\nendif\n\n# It's necessary to set this because some environments don't link sh -> bash.\nSHELL := /usr/bin/env bash -o errexit -o pipefail -o nounset\n\n# This is used in docker buildx commands\nBUILDX_NAME := $(shell basename $$(pwd))\n\n# Satisfy --warn-undefined-variables.\nGOFLAGS ?=\nHTTP_PROXY ?=\nHTTPS_PROXY ?=\n\n# Because we store the module cache locally.\nGOFLAGS := $(GOFLAGS) -modcacherw\n\n# If you want to build all binaries, see the 'all-build' rule.\n# If you want to build all containers, see the 'all-container' rule.\n# If you want to build AND push all containers, see the 'all-push' rule.\nall: # @HELP builds binaries for one platform ($OS/$ARCH)\nall: build\n\n# For the following OS/ARCH expansions, we transform OS/ARCH into OS_ARCH\n# because make pattern rules don't match with embedded '/' characters.\n\nbuild-%:\n\t$(MAKE) build                         \\\n\t    --no-print-directory              \\\n\t    GOOS=$(firstword $(subst _, ,$*)) \\\n\t    GOARCH=$(lastword $(subst _, ,$*))\n\ncontainer-%:\n\t$(MAKE) container                     \\\n\t    --no-print-directory              \\\n\t    GOOS=$(firstword $(subst _, ,$*)) \\\n\t    GOARCH=$(lastword $(subst _, ,$*))\n\npush-%:\n\t$(MAKE) push                          \\\n\t    --no-print-directory              \\\n\t    GOOS=$(firstword $(subst _, ,$*)) \\\n\t    GOARCH=$(lastword $(subst _, ,$*))\n\nall-build: # @HELP builds binaries for all platforms\nall-build: $(addprefix build-, $(subst /,_, $(ALL_PLATFORMS)))\n\nall-container: # @HELP builds containers for all platforms\nall-container: $(addprefix container-, $(subst /,_, $(ALL_PLATFORMS)))\n\nall-push: # @HELP pushes containers for all platforms to the defined registry\nall-push: $(addprefix push-, $(subst /,_, $(ALL_PLATFORMS)))\n\n# The following structure defeats Go's (intentional) behavior to always touch\n# result files, even if they have not changed.  This will still run `go` but\n# will not trigger further work if nothing has actually changed.\nOUTBINS = $(foreach bin,$(BINS),bin/$(OS)_$(ARCH)/$(bin)$(BIN_EXTENSION))\n\nbuild: $(OUTBINS)\n\techo\n\n# Directories that we need created to build/test.\nBUILD_DIRS := bin/$(OS)_$(ARCH)                   \\\n              bin/tools                           \\\n              .go/bin/$(OS)_$(ARCH)               \\\n              .go/bin/$(OS)_$(ARCH)/$(OS)_$(ARCH) \\\n              .go/cache                           \\\n              .go/pkg\n\n# Each outbin target is just a facade for the respective stampfile target.\n# This `eval` establishes the dependencies for each.\n$(foreach outbin,$(OUTBINS),$(eval  \\\n    $(outbin): .go/$(outbin).stamp  \\\n))\n# This is the target definition for all outbins.\n$(OUTBINS):\n\ttrue\n\n# Each stampfile target can reference an $(OUTBIN) variable.\n$(foreach outbin,$(OUTBINS),$(eval $(strip   \\\n    .go/$(outbin).stamp: OUTBIN = $(outbin)  \\\n)))\n# This is the target definition for all stampfiles.\n# This will build the binary under ./.go and update the real binary iff needed.\nSTAMPS = $(foreach outbin,$(OUTBINS),.go/$(outbin).stamp)\n.PHONY: $(STAMPS)\n$(STAMPS): go-build\n\techo -ne \"binary: $(OUTBIN)  \"\n\tif ! cmp -s .go/$(OUTBIN) $(OUTBIN); then  \\\n\t    mv .go/$(OUTBIN) $(OUTBIN);            \\\n\t    date >$@;                              \\\n\t    echo;                                  \\\n\telse                                       \\\n\t    echo \"(cached)\";                       \\\n\tfi\n\n# This runs the actual `go build` which updates all binaries.\ngo-build: | $(BUILD_DIRS)\n\techo \"# building for $(OS)/$(ARCH)\"\n\tdocker run                                                  \\\n\t    -i                                                      \\\n\t    --rm                                                    \\\n\t    -u $$(id -u):$$(id -g)                                  \\\n\t    -v $$(pwd):/src                                         \\\n\t    -w /src                                                 \\\n\t    -v $$(pwd)/.go/bin/$(OS)_$(ARCH):/go/bin                \\\n\t    -v $$(pwd)/.go/bin/$(OS)_$(ARCH):/go/bin/$(OS)_$(ARCH)  \\\n\t    -v $$(pwd)/.go/cache:/.cache                            \\\n\t    --env GOCACHE=\"/.cache/gocache\"                         \\\n\t    --env GOMODCACHE=\"/.cache/gomodcache\"                   \\\n\t    --env ARCH=\"$(ARCH)\"                                    \\\n\t    --env OS=\"$(OS)\"                                        \\\n\t    --env VERSION=\"$(VERSION)\"                              \\\n\t    --env DEBUG=\"$(DBG)\"                                    \\\n\t    --env GOFLAGS=\"$(GOFLAGS)\"                              \\\n\t    --env HTTP_PROXY=\"$(HTTP_PROXY)\"                        \\\n\t    --env HTTPS_PROXY=\"$(HTTPS_PROXY)\"                      \\\n\t    $(BUILD_IMAGE)                                          \\\n\t    ./build/build.sh ./...\n\n# Example: make shell CMD=\"-c 'date > datefile'\"\nshell: # @HELP launches a shell in the containerized build environment\nshell: | $(BUILD_DIRS)\n\techo \"# launching a shell in the containerized build environment\"\n\tdocker run                                                  \\\n\t    -ti                                                     \\\n\t    --rm                                                    \\\n\t    -u $$(id -u):$$(id -g)                                  \\\n\t    -v $$(pwd):/src                                         \\\n\t    -w /src                                                 \\\n\t    -v $$(pwd)/.go/bin/$(OS)_$(ARCH):/go/bin                \\\n\t    -v $$(pwd)/.go/bin/$(OS)_$(ARCH):/go/bin/$(OS)_$(ARCH)  \\\n\t    -v $$(pwd)/.go/cache:/.cache                            \\\n\t    --env GOCACHE=\"/.cache/gocache\"                         \\\n\t    --env GOMODCACHE=\"/.cache/gomodcache\"                   \\\n\t    --env ARCH=\"$(ARCH)\"                                    \\\n\t    --env OS=\"$(OS)\"                                        \\\n\t    --env VERSION=\"$(VERSION)\"                              \\\n\t    --env DEBUG=\"$(DBG)\"                                    \\\n\t    --env GOFLAGS=\"$(GOFLAGS)\"                              \\\n\t    --env HTTP_PROXY=\"$(HTTP_PROXY)\"                        \\\n\t    --env HTTPS_PROXY=\"$(HTTPS_PROXY)\"                      \\\n\t    $(BUILD_IMAGE)                                          \\\n\t    /bin/sh $(CMD)\n\nLICENSES = .licenses\n\n$(LICENSES): | $(BUILD_DIRS)\n\t# Don't assume that `go` is available locally.\n\tdocker run                                 \\\n\t    -i                                     \\\n\t    --rm                                   \\\n\t    -u $$(id -u):$$(id -g)                 \\\n\t    -v $$(pwd)/tools:/src                  \\\n\t    -w /src                                \\\n\t    -v $$(pwd)/bin/tools:/go/bin           \\\n\t    -v $$(pwd)/.go/cache:/.cache           \\\n\t    --env GOCACHE=\"/.cache/gocache\"        \\\n\t    --env GOMODCACHE=\"/.cache/gomodcache\"  \\\n\t    --env CGO_ENABLED=0                    \\\n\t    --env HTTP_PROXY=\"$(HTTP_PROXY)\"       \\\n\t    --env HTTPS_PROXY=\"$(HTTPS_PROXY)\"     \\\n\t    $(BUILD_IMAGE)                         \\\n\t    go install github.com/google/go-licenses/v2\n\t# The tool runs in a container because it execs `go`, which doesn't\n\t# play nicely with CI.  The tool also wants its output dir to not\n\t# exist, so we can't just volume mount $(LICENSES).\n\trm -rf $(LICENSES).tmp\n\tmkdir $(LICENSES).tmp\n\tdocker run                              \\\n\t    -i                                  \\\n\t    --rm                                \\\n\t    -u $$(id -u):$$(id -g)              \\\n\t    -v $$(pwd)/$(LICENSES).tmp:/output  \\\n\t    -v $$(pwd):/src                     \\\n\t    -w /src                             \\\n\t    -v $$(pwd)/bin/tools:/go/bin        \\\n\t    -v $$(pwd)/.go/cache:/.cache        \\\n\t    -v $$(pwd)/.go/pkg:/go/pkg          \\\n\t    --env HTTP_PROXY=\"$(HTTP_PROXY)\"    \\\n\t    --env HTTPS_PROXY=\"$(HTTPS_PROXY)\"  \\\n\t    $(BUILD_IMAGE)                      \\\n\t    go-licenses save ./... --save_path=/output/licenses\n\trm -rf $(LICENSES)\n\tmv $(LICENSES).tmp/licenses $(LICENSES)\n\trmdir $(LICENSES).tmp\n\tfind $(LICENSES) -type d | xargs chmod 0755\n\tfind $(LICENSES) -type f | xargs chmod 0644\n\nCONTAINER_DOTFILES = $(foreach bin,$(BINS),.container-$(subst /,_,$(REGISTRY)/$(bin))-$(TAG))\n\n# We print the container names here, rather than in CONTAINER_DOTFILES so\n# they are always at the end of the output.\ncontainer containers: # @HELP builds containers for one platform ($OS/$ARCH)\ncontainer containers: $(CONTAINER_DOTFILES)\n\tfor bin in $(BINS); do                           \\\n\t    echo \"container: $(REGISTRY)/$$bin:$(TAG)\";  \\\n\tdone\n\techo\n\n# Each container-dotfile target can reference a $(BIN) variable.\n# This is done in 2 steps to enable target-specific variables.\n$(foreach bin,$(BINS),$(eval $(strip                                 \\\n    .container-$(subst /,_,$(REGISTRY)/$(bin))-$(TAG): BIN = $(bin)  \\\n)))\n$(foreach bin,$(BINS),$(eval                                         \\\n    .container-$(subst /,_,$(REGISTRY)/$(bin))-$(TAG): bin/$(OS)_$(ARCH)/$(bin)$(BIN_EXTENSION) $(LICENSES) Dockerfile.in  \\\n))\n# This is the target definition for all container-dotfiles.\n# These are used to track build state in hidden files.\n$(CONTAINER_DOTFILES): .buildx-initialized\n\techo\n\tsed                                            \\\n\t    -e 's|{ARG_BIN}|$(BIN)$(BIN_EXTENSION)|g'  \\\n\t    -e 's|{ARG_ARCH}|$(ARCH)|g'                \\\n\t    -e 's|{ARG_OS}|$(OS)|g'                    \\\n\t    -e 's|{ARG_FROM}|$(BASE_IMAGE)|g'          \\\n\t    Dockerfile.in > .dockerfile-$(BIN)-$(OS)_$(ARCH)\n\tHASH_LICENSES=$$(find $(LICENSES) -type f                       \\\n\t\t    | xargs md5sum | md5sum | cut -f1 -d' ');           \\\n\tHASH_BINARY=$$(md5sum bin/$(OS)_$(ARCH)/$(BIN)$(BIN_EXTENSION)  \\\n\t\t    | cut -f1 -d' ');                                   \\\n\tFORCE=0;                                                        \\\n\tdocker buildx build                                             \\\n\t    --builder \"$(BUILDX_NAME)\"                                  \\\n\t    --build-arg FORCE_REBUILD=\"$$FORCE\"                         \\\n\t    --build-arg HASH_LICENSES=\"$$HASH_LICENSES\"                 \\\n\t    --build-arg HASH_BINARY=\"$$HASH_BINARY\"                     \\\n\t    --progress=plain                                            \\\n\t    --load                                                      \\\n\t    --platform \"$(OS)/$(ARCH)\"                                  \\\n\t    --build-arg HTTP_PROXY=\"$(HTTP_PROXY)\"                      \\\n\t    --build-arg HTTPS_PROXY=\"$(HTTPS_PROXY)\"                    \\\n\t    -t $(REGISTRY)/$(BIN):$(TAG)                                \\\n\t    -f .dockerfile-$(BIN)-$(OS)_$(ARCH)                         \\\n\t    .\n\tdocker images -q $(REGISTRY)/$(BIN):$(TAG) > $@\n\techo\n\nlogin: # @HELP configures docker to be authenticated to the defined registry\n\tdocker login $(REGISTRY)       \\\n\t    -u \"$(REGISTRY_USERNAME)\"  \\\n\t    -p \"$(REGISTRY_PASSWORD)\"\n\npush: # @HELP pushes the container for one platform ($OS/$ARCH) to the defined registry\npush: container\n\tfor bin in $(BINS); do                     \\\n\t    docker push $(REGISTRY)/$$bin:$(TAG);  \\\n\tdone\n\techo\n\n# This depends on github.com/estesp/manifest-tool.\nmanifest-list: # @HELP builds a manifest list of containers for all platforms\nmanifest-list: all-push manifest-tool\n\tfor bin in $(BINS); do                                    \\\n\t    platforms=$$(echo $(ALL_PLATFORMS) | sed 's/ /,/g');  \\\n\t    bin/tools/manifest-tool                               \\\n\t        --username=\"$(REGISTRY_USERNAME)\"                 \\\n\t        --password=\"$(REGISTRY_PASSWORD)\"                 \\\n\t        push from-args                                    \\\n\t        --platforms \"$$platforms\"                         \\\n\t        --template $(REGISTRY)/$$bin:$(VERSION)__OS_ARCH  \\\n\t        --target $(REGISTRY)/$$bin:$(VERSION);            \\\n\tdone\n\nmanifest-tool: # @HELP builds manifest-tool\nmanifest-tool:\n\t# Don't assume that `go` is available locally.\n\tdocker run                                 \\\n\t    -i                                     \\\n\t    --rm                                   \\\n\t    -u $$(id -u):$$(id -g)                 \\\n\t    -v $$(pwd)/tools:/src                  \\\n\t    -w /src                                \\\n\t    -v $$(pwd)/bin/tools:/go/bin           \\\n\t    -v $$(pwd)/.go/cache:/.cache           \\\n\t    --env GOCACHE=\"/.cache/gocache\"        \\\n\t    --env GOMODCACHE=\"/.cache/gomodcache\"  \\\n\t    --env CGO_ENABLED=0                    \\\n\t    --env HTTP_PROXY=\"$(HTTP_PROXY)\"       \\\n\t    --env HTTPS_PROXY=\"$(HTTPS_PROXY)\"     \\\n\t    $(BUILD_IMAGE)                         \\\n\t    go install github.com/estesp/manifest-tool/v2/cmd/manifest-tool\n\nversion: # @HELP outputs the version string\nversion:\n\techo $(VERSION)\n\ntest: # @HELP runs tests, as defined in ./build/test.sh\ntest: | $(BUILD_DIRS)\n\tdocker run                                                  \\\n\t    -i                                                      \\\n\t    --rm                                                    \\\n\t    -u $$(id -u):$$(id -g)                                  \\\n\t    -v $$(pwd):/src                                         \\\n\t    -w /src                                                 \\\n\t    -v $$(pwd)/.go/bin/$(OS)_$(ARCH):/go/bin                \\\n\t    -v $$(pwd)/.go/bin/$(OS)_$(ARCH):/go/bin/$(OS)_$(ARCH)  \\\n\t    -v $$(pwd)/.go/cache:/.cache                            \\\n\t    --env GOCACHE=\"/.cache/gocache\"                         \\\n\t    --env GOMODCACHE=\"/.cache/gomodcache\"                   \\\n\t    --env ARCH=\"$(ARCH)\"                                    \\\n\t    --env OS=\"$(OS)\"                                        \\\n\t    --env VERSION=\"$(VERSION)\"                              \\\n\t    --env DEBUG=\"$(DBG)\"                                    \\\n\t    --env GOFLAGS=\"$(GOFLAGS)\"                              \\\n\t    --env HTTP_PROXY=\"$(HTTP_PROXY)\"                        \\\n\t    --env HTTPS_PROXY=\"$(HTTPS_PROXY)\"                      \\\n\t    $(BUILD_IMAGE)                                          \\\n\t    ./build/test.sh ./...\n\nlint: # @HELP runs golangci-lint\nlint: | $(BUILD_DIRS)\n\tdocker run                                                  \\\n\t    -i                                                      \\\n\t    --rm                                                    \\\n\t    -u $$(id -u):$$(id -g)                                  \\\n\t    -v $$(pwd):/src                                         \\\n\t    -w /src                                                 \\\n\t    -v $$(pwd)/.go/bin/$(OS)_$(ARCH):/go/bin                \\\n\t    -v $$(pwd)/.go/bin/$(OS)_$(ARCH):/go/bin/$(OS)_$(ARCH)  \\\n\t    -v $$(pwd)/.go/cache:/.cache                            \\\n\t    --env GOCACHE=\"/.cache/gocache\"                         \\\n\t    --env GOMODCACHE=\"/.cache/gomodcache\"                   \\\n\t    --env ARCH=\"$(ARCH)\"                                    \\\n\t    --env OS=\"$(OS)\"                                        \\\n\t    --env VERSION=\"$(VERSION)\"                              \\\n\t    --env DEBUG=\"$(DBG)\"                                    \\\n\t    --env GOFLAGS=\"$(GOFLAGS)\"                              \\\n\t    --env HTTP_PROXY=\"$(HTTP_PROXY)\"                        \\\n\t    --env HTTPS_PROXY=\"$(HTTPS_PROXY)\"                      \\\n\t    $(BUILD_IMAGE)                                          \\\n\t    ./build/lint.sh ./...\n\n$(BUILD_DIRS):\n\tmkdir -p $@\n\nclean: # @HELP removes built binaries and temporary files\nclean: container-clean bin-clean\n\ncontainer-clean:\n\trm -rf .container-* .dockerfile-* .push-* .buildx-initialized $(LICENSES)\n\nbin-clean:\n\ttest -d .go && chmod -R u+w .go || true\n\trm -rf .go bin\n\nhelp: # @HELP prints this message\nhelp:\n\techo \"VARIABLES:\"\n\techo \"  BINS = $(BINS)\"\n\techo \"  OS = $(OS)\"\n\techo \"  ARCH = $(ARCH)\"\n\techo \"  DBG = $(DBG)\"\n\techo \"  GOFLAGS = $(GOFLAGS)\"\n\techo \"  REGISTRY = $(REGISTRY)\"\n\techo\n\techo \"TARGETS:\"\n\tgrep -E '^.*: *# *@HELP' $(MAKEFILE_LIST)     \\\n\t    | awk '                                   \\\n\t        BEGIN {FS = \": *# *@HELP\"};           \\\n\t        { printf \"  %-30s %s\\n\", $$1, $$2 };  \\\n\t    '\n\n# Help set up multi-arch build tools.  This assumes you have the tools\n# installed.  If you already have a buildx builder available, you don't need\n# this.  See https://medium.com/@artur.klauser/building-multi-architecture-docker-images-with-buildx-27d80f7e2408\n# for great context.\n.buildx-initialized:\n\tdocker buildx create --name \"$(BUILDX_NAME)\" --node \"$(BUILDX_NAME)-0\" >/dev/null\n\tdocker run --rm --privileged multiarch/qemu-user-static --reset -p yes >/dev/null\n\tdate > $@\n"
  },
  {
    "path": "OWNERS",
    "content": "# See the OWNERS file documentation:\n#  https://github.com/kubernetes/kubernetes/blob/master/docs/devel/owners.md\n\napprovers:\n  - thockin\n  - erictune\n  - mrhohn\n  - bowei\n"
  },
  {
    "path": "README.md",
    "content": "# Horizontal cluster-proportional-autoscaler container\n\n[![Build Status](https://travis-ci.org/kubernetes-incubator/cluster-proportional-autoscaler.png)](https://travis-ci.org/kubernetes-incubator/cluster-proportional-autoscaler)\n[![Go Report Card](https://goreportcard.com/badge/github.com/kubernetes-incubator/cluster-proportional-autoscaler)](https://goreportcard.com/report/github.com/kubernetes-incubator/cluster-proportional-autoscaler)\n\n## Overview\n\nThis container image watches over the number of schedulable nodes and cores of the cluster and resizes\nthe number of replicas for the required resource. This functionality may be desirable for applications\nthat need to be autoscaled with the size of the cluster, such as DNS and other services that scale\nwith the number of nodes/pods in the cluster.\n\nUsage of cluster-proportional-autoscaler:\n\n```\n      --alsologtostderr[=false]: log to standard error as well as files\n      --configmap=\"\": ConfigMap containing our scaling parameters.\n      --default-params=map[]: Default parameters(JSON format) for auto-scaling. Will create/re-create a ConfigMap with this default params if ConfigMap is not present.\n      --log-backtrace-at=:0: when logging hits line file:N, emit a stack trace\n      --log-dir=\"\": If non-empty, write log files in this directory\n      --logtostderr[=false]: log to standard error instead of files\n      --namespace=\"\": Namespace for all operations, fallback to the namespace of this autoscaler(through MY_POD_NAMESPACE env) if not specified.\n      --poll-period-seconds=10: The time, in seconds, to check cluster status and perform autoscale.\n      --stderrthreshold=2: logs at or above this threshold go to stderr\n      --target=\"\": Targets to scale. In format: 'deployment/*,replicationcontroller/*,replicaset/*' (not case sensitive, comma delimiter supported).\n      --v=0: log level for V logs\n      --version[=false]: Print the version and exit.\n      --vmodule=: comma-separated list of pattern=N settings for file-filtered logging\n      --nodelabels=: NodeLabels for filtering search of nodes and its cpus by LabelSelectors. Input format is a comma separated list of keyN=valueN LabelSelectors. Usage example: --nodelabels=label1=value1,label2=value2.\n      --max-sync-failures=[0]: Number of consecutive polling failures before exiting. Default value of 0 will allow for unlimited retries.\n```\n\n## Installation with helm\n\nAdd the cluster-proportional-autoscaler Helm repository:\n```sh\nhelm repo add cluster-proportional-autoscaler https://kubernetes-sigs.github.io/cluster-proportional-autoscaler\nhelm repo update\n```\n\nThen install a release using the chart.  The [charts default values file](charts/cluster-proportional-autoscaler/values.yaml) provides some commented out examples for setting some of the values.  There are several required values, but helm should fail with messages that indicate which value is missing.\n```sh\nhelm upgrade --install cluster-proportional-autoscaler \\\n    cluster-proportional-autoscaler/cluster-proportional-autoscaler --values <<name_of_your_values_file>>.yaml\n```\n\n## Examples\n\nPlease try out the examples in [the examples folder](examples/).\n\n## Implementation Details\n\nThe code in this module is a Kubernetes Golang API client that, using the default service account credentials\navailable to Golang clients running inside pods, it connects to the API server and polls for the number of nodes\nand cores in the cluster.\n\nThe scaling parameters and data points are provided via a ConfigMap to the autoscaler and it refreshes its\nparameters table every poll interval to be up to date with the latest desired scaling parameters.\n\n### Calculation of number of replicas\n\nThe desired number of replicas is computed by using the number of cores and nodes as input of the chosen controller.\n\nThis may be later extended to more complex interpolation or exponential scaling schemes\nbut it currently supports `linear` and `ladder` modes.\n\n## Control patterns and ConfigMap formats\n\nThe ConfigMap provides the configuration parameters, allowing on-the-fly changes(including control mode) without\nrebuilding or restarting the scaler containers/pods.\n\nCurrently the two supported ConfigMap key value is: `ladder` and `linear`, which corresponding to two supported control mode.\n\n### Linear Mode\n\nParameters in ConfigMap must be JSON and use `linear` as key. The sub-keys as below indicates:\n\n```\ndata:\n  linear: |-\n    {\n      \"coresPerReplica\": 2,\n      \"nodesPerReplica\": 1,\n      \"min\": 1,\n      \"max\": 100,\n      \"preventSinglePointFailure\": true,\n      \"includeUnschedulableNodes\": true\n    }\n```\n\nThe equation of linear control mode as below:\n```\nreplicas = max( ceil( cores * 1/coresPerReplica ) , ceil( nodes * 1/nodesPerReplica ) )\nreplicas = min(replicas, max)\nreplicas = max(replicas, min)\n```\n\nWhen `preventSinglePointFailure` is set to `true`, controller ensures at least 2 replicas\nif there are more than one node.\n\nFor instance, given a cluster has 4 nodes and 13 cores. With above parameters, each replica could take care of 1 node.\nSo we need `4 / 1 = 4` replicas to take care of all 4 nodes. And each replica could take care of 2 cores. We need `ceil(13 / 2) = 7`\nreplicas to take care of all 13 cores. Controller will choose the greater one, which is `7` here, as the result.\n\nWhen `includeUnschedulableNodes` is set to `true`, the replicas will scale based on the total number of nodes.\nOtherwise, the replicas will only scale based on the number of schedulable nodes (i.e., cordoned and draining nodes are\nexcluded.)\n\nEither one of the `coresPerReplica` or `nodesPerReplica` could be omitted. All of  `min`, `max`,\n`preventSinglePointFailure` and `includeUnschedulableNodes` are optional. If not set, `min` would be default to `1`,\n`preventSinglePointFailure` will be default to `false` and `includeUnschedulableNodes` will be default to `false`.\n\nSide notes:\n- Both `coresPerReplica` and `nodesPerReplica` are float.\n- The lowest replicas will be set to 1 when `min` is less than 1.\n\n### Ladder Mode\n\nParameters in ConfigMap must be JSON and use `ladder` as key. The sub-keys as below indicates:\n\n```\ndata:\n  ladder: |-\n    {\n      \"coresToReplicas\":\n      [\n        [ 1, 1 ],\n        [ 64, 3 ],\n        [ 512, 5 ],\n        [ 1024, 7 ],\n        [ 2048, 10 ],\n        [ 4096, 15 ]\n      ],\n      \"nodesToReplicas\":\n      [\n        [ 1, 1 ],\n        [ 2, 2 ]\n      ],\n      \"includeUnschedulableNodes\": false\n    }\n```\n\nThe ladder controller gives out the desired replicas count by using a step function.\nThe step ladder function uses the datapoint for core and node scaling from the ConfigMap.\nThe lookup which yields the higher number of replicas will be used as the target scaling number.\n\nFor instance, given a cluster comes with `100` nodes and `400` cores and it is using above ConfigMap.\nThe replicas derived from \"cores_to_replicas_map\" would be `3` (because `64` < `400` < `512`).\nThe replicas derived from \"nodes_to_replicas_map\" would be `2` (because `100` > `2`).\nAnd we would choose the larger one `3`.\n\nWhen `includeUnschedulableNodes` is set to `true`, the replicas will scale based on total number of nodes or cores.\nOtherwise, the replicas will only scale based on the number of schedulable nodes (i.e., cordoned and draining nodes are\nexcluded.)\n\nEither one of the `coresToReplicas` or `nodesToReplicas` could be omitted. All elements in them should\nbe int. `includeUnschedulableNodes` will default to `false`.\n\nReplicas can be set to 0 (unlike in linear mode).\n\nScaling to 0 replicas could be used to enable optional features as a cluster grows. For example, this\nladder would create a single replica once the cluster reaches six nodes.\n\n```\ndata:\n  ladder: |-\n    {\n      \"nodesToReplicas\":\n      [\n        [ 0, 0 ],\n        [ 6, 1 ]\n      ]\n    }\n```\n\n## Multi-target support\n\nThis container provides the configuration parameters for defining the `target` on which the cluster-proportional-autoscaler\nwill apply the corresponding scaling control pattern.\n\nThe supported k8s workloads for scaling are `deployment`, `replicationcontroller` and `replicaset`.\n\nA single cluster-proportional-autoscale is capable of handling multiple targets by setting the `--target` param.\n\n***Note:*** the k8s workloads should be under the namespace configured from the `--namespace` flag.\n\n```\n    ...\n    --target=\"deployment/first,deployment/second\"\n    ...\n```\n\n## Comparisons to the Horizontal Pod Autoscaler feature\n\nThe [Horizontal Pod Autoscaler](http://kubernetes.io/docs/user-guide/horizontal-pod-autoscaling/) is a top-level Kubernetes API resource. It is a closed feedback loop autoscaler which monitors CPU utilization of the pods and scales the number of replicas automatically. It requires the CPU resources to be defined for all containers in the target pods and also requires heapster to be running to provide CPU utilization metrics.\n\nThis horizontal cluster proportional autoscaler is a DIY container (because it is not a Kubernetes API resource) that provides a simple control loop that watches the cluster size and scales the target controller. The actual CPU or memory utilization of the target controller pods is not an input to the control loop, the sole inputs are number of schedulable cores and nodes in the cluster.\nThere is no requirement to run heapster and/or provide CPU resource limits as in HPAs.\n\nThe ConfigMap provides the operator with the ability to tune the replica scaling explicitly.\n\n## Using NodeLabels\n\nNodelabels is an optional param to count only nodes and its cpus where the nodelabels exits. This is useful when nodeselector is used on the target pods controller so its needed to take account only the nodes tagged with the nodeselector labels to calculate the total replicas to scale. When the param is ignored then the cluster proportional autoscaler counts all schedulable nodes and its cpus.\n"
  },
  {
    "path": "RELEASE.md",
    "content": "# Release Process\n\nThe Cluster Proportional AutoScaler is released on an as-needed basis. The process is as follows:\n\n1. An issue is proposing a new release with a changelog since the last release\n2. All [OWNERS](OWNERS) must LGTM this release\n3. An OWNER runs `git tag -s $VERSION` and inserts the changelog and pushes the tag with `git push $VERSION`\n4. Compiled code is published as containers at registry.k8s.io/cpa with the name cluster-proportional-autoscaler:<version-tag>\n5. The release issue is closed\n6. An announcement email is sent to `kubernetes-dev@googlegroups.com` with the subject `[ANNOUNCE] cluster-proportional-autoscaler $VERSION is released`\n"
  },
  {
    "path": "SECURITY_CONTACTS",
    "content": "# Defined below are the security contacts for this repo.\n#\n# They are the contact point for the Product Security Team to reach out\n# to for triaging and handling of incoming issues.\n#\n# The below names agree to abide by the\n# [Embargo Policy](https://github.com/kubernetes/sig-release/blob/master/security-release-process-documentation/security-release-process.md#embargo-policy)\n# and will be removed and replaced if they violate that agreement.\n#\n# DO NOT REPORT SECURITY VULNERABILITIES DIRECTLY TO THESE NAMES, FOLLOW THE\n# INSTRUCTIONS AT https://kubernetes.io/security/\n\nmrhohn\nbowei\n"
  },
  {
    "path": "build/build.sh",
    "content": "#!/bin/sh\n\n# Copyright 2016 The Kubernetes Authors.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nset -o errexit\nset -o nounset\n\nif [ -z \"${OS:-}\" ]; then\n    echo \"OS must be set\"\n    exit 1\nfi\nif [ -z \"${ARCH:-}\" ]; then\n    echo \"ARCH must be set\"\n    exit 1\nfi\nif [ -z \"${VERSION:-}\" ]; then\n    echo \"VERSION must be set\"\n    exit 1\nfi\n\nexport CGO_ENABLED=0\nexport GOARCH=\"${ARCH}\"\nexport GOOS=\"${OS}\"\nexport GO111MODULE=on\n\nif [ \"${DEBUG:-}\" = 1 ]; then\n    # Debugging - disable optimizations and inlining\n    gogcflags=\"all=-N -l\"\n    goasmflags=\"\"\n    goldflags=\"\"\nelse\n    # Not debugging - trim paths, disable symbols and DWARF.\n    goasmflags=\"all=-trimpath=$(pwd)\"\n    gogcflags=\"all=-trimpath=$(pwd)\"\n    goldflags=\"-s -w\"\nfi\n\nalways_ldflags=\"-X $(go list -m)/pkg/version.Version=${VERSION}\"\ngo install                                                      \\\n    -installsuffix \"static\"                                     \\\n    -gcflags=\"${gogcflags}\"                                     \\\n    -asmflags=\"${goasmflags}\"                                   \\\n    -ldflags=\"${always_ldflags} ${goldflags}\"                   \\\n    \"$@\"\n"
  },
  {
    "path": "build/lint.sh",
    "content": "#!/bin/sh\n\n# Copyright 2022 The Kubernetes Authors.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nset -o errexit\nset -o nounset\n\nexport CGO_ENABLED=0\nexport GO111MODULE=on\n\ncd tools >/dev/null\ngo install github.com/golangci/golangci-lint/cmd/golangci-lint\ncd - >/dev/null\n\nprintf \"Running golangci-lint: \"\nERRS=$(golangci-lint run \"$@\" 2>&1 || true)\nif [ -n \"${ERRS}\" ]; then\n    echo \"FAIL\"\n    echo \"${ERRS}\"\n    echo\n    exit 1\nfi\necho \"PASS\"\necho\n"
  },
  {
    "path": "build/test.sh",
    "content": "#!/bin/sh\n\n# Copyright 2016 The Kubernetes Authors.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nset -o errexit\nset -o nounset\n\nexport CGO_ENABLED=0\nexport GO111MODULE=on\n\necho \"Running tests:\"\ngo test -installsuffix \"static\" \"$@\"\necho\n"
  },
  {
    "path": "charts/cluster-proportional-autoscaler/.helmignore",
    "content": "# Patterns to ignore when building packages.\n# This supports shell glob matching, relative path matching, and\n# negation (prefixed with !). Only one pattern per line.\n.DS_Store\n# Common VCS dirs\n.git/\n.gitignore\n.bzr/\n.bzrignore\n.hg/\n.hgignore\n.svn/\n# Common backup files\n*.swp\n*.bak\n*.tmp\n*~\n# Various IDEs\n.project\n.idea/\n*.tmproj\n.vscode/"
  },
  {
    "path": "charts/cluster-proportional-autoscaler/Chart.yaml",
    "content": "apiVersion: v2\nname: cluster-proportional-autoscaler\nversion: 1.1.0\nappVersion: 1.8.6\ndescription: This chart is used to deploy an instance of the cluster-proportional-autoscaler.\nmaintainers:\n  - name: krmichel\n    url: https://github.com/krmichel\n  - name: d-mcd\n    url: https://github.com/d-mcd\n"
  },
  {
    "path": "charts/cluster-proportional-autoscaler/templates/_helpers.tpl",
    "content": "{{/* vim: set filetype=mustache: */}}\n{{/*\nExpand the name of the chart.\n*/}}\n{{- define \"cluster-proportional-autoscaler.name\" -}}\n{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix \"-\" -}}\n{{- end -}}\n\n{{/*\nCreate a default fully qualified app name.\nWe truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).\nIf release name contains chart name it will be used as a full name.\n*/}}\n{{- define \"cluster-proportional-autoscaler.fullname\" -}}\n{{- if .Values.fullnameOverride -}}\n{{- .Values.fullnameOverride | trunc 63 | trimSuffix \"-\" -}}\n{{- else -}}\n{{- $name := default .Chart.Name .Values.nameOverride -}}\n{{- if contains $name .Release.Name -}}\n{{- .Release.Name | trunc 63 | trimSuffix \"-\" -}}\n{{- else -}}\n{{- printf \"%s-%s\" .Release.Name $name | trunc 63 | trimSuffix \"-\" -}}\n{{- end -}}\n{{- end -}}\n{{- end -}}\n\n{{/*\nCreate chart name and version as used by the chart label.\n*/}}\n{{- define \"cluster-proportional-autoscaler.chart\" -}}\n{{- printf \"%s-%s\" .Chart.Name .Chart.Version | replace \"+\" \"_\" | trunc 63 | trimSuffix \"-\" -}}\n{{- end -}}\n\n{{/*\nCommon labels\n*/}}\n{{- define \"cluster-proportional-autoscaler.labels\" -}}\nhelm.sh/chart: {{ include \"cluster-proportional-autoscaler.chart\" . }}\n{{ include \"cluster-proportional-autoscaler.selectorLabels\" . }}\n{{- if .Chart.AppVersion }}\napp.kubernetes.io/version: {{ .Chart.AppVersion | quote }}\n{{- end }}\napp.kubernetes.io/managed-by: {{ .Release.Service }}\n{{- end -}}\n\n{{/*\nSelector labels\n*/}}\n{{- define \"cluster-proportional-autoscaler.selectorLabels\" -}}\napp.kubernetes.io/name: {{ include \"cluster-proportional-autoscaler.name\" . }}\napp.kubernetes.io/instance: {{ .Release.Name }}\n{{- end -}}\n\n{{/*\nCreate the name of the service account to use\n*/}}\n{{- define \"cluster-proportional-autoscaler.serviceAccountName\" -}}\n{{- if .Values.serviceAccount.create -}}\n    {{ default (include \"cluster-proportional-autoscaler.fullname\" .) .Values.serviceAccount.name }}\n{{- else -}}\n    {{ default \"default\" .Values.serviceAccount.name }}\n{{- end -}}\n{{- end -}}\n\n{{/*\nCalculate node values based on provided values\n*/}}\n{{- define \"cluster-proportional-autoscaler.nodeLables\" -}}\n{{- if .Values.options.nodeLabels }}\n{{- $labels := list }}\n{{- range $k, $v := .Values.options.nodeLabels }}\n{{- $labels = mustAppend $labels (printf \"%s=%s\" $k $v) }}\n{{- end }}\n{{- join \",\" $labels }}\n{{- end }}\n{{- end }}"
  },
  {
    "path": "charts/cluster-proportional-autoscaler/templates/clusterrole.yaml",
    "content": "---\nkind: ClusterRole\napiVersion: rbac.authorization.k8s.io/v1\nmetadata:\n  name: {{ include \"cluster-proportional-autoscaler.fullname\" . }}\n  labels:\n    {{- include \"cluster-proportional-autoscaler.labels\" . | nindent 4 }}\nrules:\n  - apiGroups: [\"\"]\n    resources: [\"nodes\"]\n    verbs: [\"list\", \"watch\"]\n"
  },
  {
    "path": "charts/cluster-proportional-autoscaler/templates/clusterrolebinding.yaml",
    "content": "---\nkind: ClusterRoleBinding\napiVersion: rbac.authorization.k8s.io/v1\nmetadata:\n  name: {{ include \"cluster-proportional-autoscaler.fullname\" . }}\n  labels:\n    {{- include \"cluster-proportional-autoscaler.labels\" . | nindent 4 }}\nsubjects:\n  - kind: ServiceAccount\n    name: {{ include \"cluster-proportional-autoscaler.serviceAccountName\" . }}\n    namespace: {{ .Release.Namespace }}\nroleRef:\n  kind: ClusterRole\n  name: {{ include \"cluster-proportional-autoscaler.fullname\" . }}\n  apiGroup: rbac.authorization.k8s.io\n"
  },
  {
    "path": "charts/cluster-proportional-autoscaler/templates/configmap.yaml",
    "content": "{{ $config := pick .Values.config \"ladder\" \"linear\" }}\n{{ if not $config }}\n{{ fail \"A config must be supplied for either ladder mode or linear mode\" }}\n{{- end }}\n{{- if and $config.ladder $config.linear }}\n{{ fail \"You must supply a config for either ladder mode or linear mode but not both\" }}\n{{- end }}\n{{ $key := mustFirst (keys $config) }}\n---\nkind: ConfigMap\napiVersion: v1\nmetadata:\n  name: {{ include \"cluster-proportional-autoscaler.fullname\" . }}\n  namespace: {{ default .Release.Namespace .Values.options.namespace }}\ndata:\n  {{- if $key }}\n  {{ $key }}: |-\n    {{- get $config $key | mustToJson | nindent 4 }}\n  {{- end }}\n"
  },
  {
    "path": "charts/cluster-proportional-autoscaler/templates/deployment.yaml",
    "content": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: {{ include \"cluster-proportional-autoscaler.fullname\" . }}\n  namespace: {{ default .Release.Namespace .Values.options.namespace }}\n  labels:\n    {{- include \"cluster-proportional-autoscaler.labels\" . | nindent 4 }}\nspec:\n  replicas: {{ .Values.replicaCount }}\n  selector:\n    matchLabels:\n      {{- include \"cluster-proportional-autoscaler.selectorLabels\" . | nindent 6 }}\n  template:\n    metadata:\n      {{- with .Values.podAnnotations }}\n      annotations:\n        {{- toYaml . | nindent 8 }}\n      {{- end }}\n      labels:\n        {{- include \"cluster-proportional-autoscaler.selectorLabels\" . | nindent 8 }}\n    spec:\n      {{- with .Values.imagePullSecrets }}\n      imagePullSecrets:\n        {{- toYaml . | nindent 8 }}\n      {{- end }}\n      serviceAccountName: {{ include \"cluster-proportional-autoscaler.serviceAccountName\" . }}\n      securityContext:\n        {{- toYaml .Values.podSecurityContext | nindent 8 }}\n      containers:\n        - name: {{ .Chart.Name }}\n          securityContext:\n            {{- toYaml .Values.securityContext | nindent 12 }}\n          image: \"{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}\"\n          imagePullPolicy: {{ .Values.image.pullPolicy }}\n          args:\n            - --configmap={{ include \"cluster-proportional-autoscaler.fullname\" . }}\n            - --logtostderr={{ ternary true false (not (empty .Values.options.logToStdErr)) }}\n            - --namespace={{ default .Release.Namespace .Values.options.namespace }}\n            - --target={{- required \"options.target must be specified\" .Values.options.target }}\n            - --v={{ .Values.options.logLevel | int }}\n            {{- with ternary true false (not (empty .Values.options.alsoLogToStdErr)) }}\n            - --alsologtostderr={{ . }}\n            {{- end }}\n            {{- with .Values.options.logBacktraceAt }}\n            - --log-backtrace-at={{ . }}\n            {{- end }}\n            {{- with .Values.options.logDir }}\n            - --log-dir={{ . }}\n            {{- end }}\n            {{- with .Values.options.maxSyncFailures | toString }}\n            - --max-sync-failures={{ ternary (. | int) 0 (ge (. | int) 0) }}\n            {{- end }}\n            {{- with (include \"cluster-proportional-autoscaler.nodeLables\" .) }}\n            - --nodelabels={{ . }}\n            {{- end }}\n            {{- with .Values.options.pollPeriodSeconds }}\n            - --poll-period-seconds={{ ternary (. | int) 1 (gt (. | int) 0) }}\n            {{- end }}\n            {{- with .Values.options.stdErrThreshold }}\n            - --stderrthreshold={{ . }}\n            {{- end }}\n            {{- with .Values.options.vmodule }}\n            - --vmodule={{ . }}\n          {{- end }}\n          livenessProbe:\n            httpGet:\n              path: /healthz\n              port: 8080\n          readinessProbe:\n            httpGet:\n              path: /healthz\n              port: 8080\n          {{- with .Values.resources }}\n          resources:\n            {{- toYaml . | nindent 12 }}\n          {{- end }}\n      {{- with .Values.nodeSelector }}\n      nodeSelector:\n        {{- toYaml . | nindent 8 }}\n      {{- end }}\n      {{- with .Values.affinity }}\n      affinity:\n        {{- toYaml . | nindent 8 }}\n      {{- end }}\n      {{- with .Values.tolerations }}\n      tolerations:\n        {{- toYaml . | nindent 8 }}\n      {{- end }}\n      {{- with .Values.priorityClassName }}\n      priorityClassName: {{ . | quote }}\n      {{- end }}\n"
  },
  {
    "path": "charts/cluster-proportional-autoscaler/templates/role.yaml",
    "content": "---\nkind: Role\napiVersion: rbac.authorization.k8s.io/v1\nmetadata:\n  name: {{ include \"cluster-proportional-autoscaler.fullname\" . }}\n  namespace: {{ default .Release.Namespace .Values.options.namespace }}\n  labels:\n    {{- include \"cluster-proportional-autoscaler.labels\" . | nindent 4 }}\nrules:\n  - apiGroups: [\"\"]\n    resources: [\"replicationcontrollers/scale\"]\n    verbs: [\"get\", \"update\"]\n  - apiGroups: [\"extensions\",\"apps\"]\n    resources: [\"deployments/scale\", \"replicasets/scale\"]\n    verbs: [\"get\", \"update\"]\n  - apiGroups: [\"\"]\n    resources: [\"configmaps\"]\n    verbs: [\"get\"]\n"
  },
  {
    "path": "charts/cluster-proportional-autoscaler/templates/rolebinding.yaml",
    "content": "---\nkind: RoleBinding\napiVersion: rbac.authorization.k8s.io/v1\nmetadata:\n  name: {{ include \"cluster-proportional-autoscaler.fullname\" . }}\n  namespace: {{ default .Release.Namespace .Values.options.namespace }}\n  labels:\n    {{- include \"cluster-proportional-autoscaler.labels\" . | nindent 4 }}\nsubjects:\n  - kind: ServiceAccount\n    name: {{ include \"cluster-proportional-autoscaler.serviceAccountName\" . }}\n    namespace: {{ .Release.Namespace }}\nroleRef:\n  kind: Role\n  name: {{ include \"cluster-proportional-autoscaler.fullname\" . }}\n  apiGroup: rbac.authorization.k8s.io\n"
  },
  {
    "path": "charts/cluster-proportional-autoscaler/templates/serviceaccount.yaml",
    "content": "{{- if .Values.serviceAccount.create -}}\n---\napiVersion: v1\nkind: ServiceAccount\nmetadata:\n  name: {{ include \"cluster-proportional-autoscaler.serviceAccountName\" . }}\n  namespace: {{ default .Release.Namespace .Values.options.namespace }}\n  labels:\n    {{- include \"cluster-proportional-autoscaler.labels\" . | nindent 4 }}\n  {{- with .Values.serviceAccount.annotations }}\n  annotations:\n    {{- toYaml . | nindent 4 }}\n  {{- end }}\n{{- end }}\n"
  },
  {
    "path": "charts/cluster-proportional-autoscaler/values.yaml",
    "content": "affinity: {}\nconfig: {}\n#  ladder:\n#    coresToReplicas:\n#      - [ 1, 1 ]\n#      - [ 64, 3 ]\n#      - [ 512, 5 ]\n#      - [ 1024, 7 ]\n#      - [ 2048, 10 ]\n#      - [ 4096, 15 ]\n#    nodesToReplicas:\n#      - [ 1, 1 ]\n#      - [ 2, 2 ]\n#  linear:\n#    coresPerReplica: 2\n#    nodesPerReplica: 1\n#    min: 1\n#    max: 100\n#    preventSinglePointFailure: true\n#    includeUnschedulableNodes: true\nimage:\n  repository: registry.k8s.io/cpa/cluster-proportional-autoscaler\n  pullPolicy: IfNotPresent\n  tag:\nimagePullSecrets: []\nfullnameOverride:\nnameOverride:\nnodeSelector: {}\noptions:\n  alsoLogToStdErr:\n  logBacktraceAt:\n  logDir:\n  #  --v=0: log level for V logs\n  logLevel:\n  # Defaulting to true limits use of ephemeral storage\n  logToStdErr: true\n  maxSyncFailures:\n  namespace:\n  nodeLabels: {}\n  #  label1: value1\n  #  label2: value2\n  pollPeriodSeconds:\n  stdErrThreshold:\n  target:\n  vmodule:\npodAnnotations: {}\npodSecurityContext: {}\n  # fsGroup: 2000\nreplicaCount: 1\nresources: {}\n  # We usually recommend not to specify default resources and to leave this as a conscious\n  # choice for the user. This also increases chances charts run on environments with little\n  # resources, such as Minikube. If you do want to specify resources, uncomment the following\n  # lines, adjust them as necessary, and remove the curly braces after 'resources:'.\n  # limits:\n  #   cpu: 100m\n  #   memory: 128Mi\n  # requests:\n  #   cpu: 100m\n  #   memory: 128Mi\nsecurityContext: {}\n  # capabilities:\n  #   drop:\n  #   - ALL\n  # readOnlyRootFilesystem: true\n  # runAsNonRoot: true\n  # runAsUser: 1000\nserviceAccount:\n  create: true\n  annotations: {}\n  # The name of the service account to use.\n  # If not set and create is true, a name is generated using the fullname template\n  # If set and create is false, no service account will be created and the expectation is that the provided service account already exists or it will use the \"default\" service account\n  name:\ntolerations: []\npriorityClassName: \"\"\n"
  },
  {
    "path": "cmd/cluster-proportional-autoscaler/autoscaler.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage main\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\n\t\"k8s.io/component-base/cli/flag\"\n\n\t\"github.com/kubernetes-sigs/cluster-proportional-autoscaler/cmd/cluster-proportional-autoscaler/options\"\n\t\"github.com/kubernetes-sigs/cluster-proportional-autoscaler/pkg/autoscaler\"\n\t\"github.com/kubernetes-sigs/cluster-proportional-autoscaler/pkg/version\"\n\n\t\"github.com/golang/glog\"\n\t\"github.com/spf13/pflag\"\n)\n\nfunc main() {\n\tconfig := options.NewAutoScalerConfig()\n\tconfig.AddFlags(pflag.CommandLine)\n\tflag.InitFlags()\n\n\tif config.PrintVer {\n\t\tfmt.Printf(\"%s\\n\", version.VERSION)\n\t\tos.Exit(0)\n\t}\n\n\t// Perform further validation of flags.\n\tif err := config.ValidateFlags(); err != nil {\n\t\tglog.Errorf(\"%v\", err)\n\t\tos.Exit(1)\n\t}\n\n\tglog.V(0).Infof(\"Scaling Namespace: %s, Target: %s\", config.Namespace, config.Target)\n\tscaler, err := autoscaler.NewAutoScaler(config)\n\tif err != nil {\n\t\tglog.Errorf(\"%v\", err)\n\t\tos.Exit(1)\n\t}\n\t// Begin autoscaling.\n\tscaler.Run()\n}\n"
  },
  {
    "path": "cmd/cluster-proportional-autoscaler/options/options.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package options contains flags for initializing an autoscaler.\npackage options\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"os\"\n\t\"strings\"\n\n\t\"github.com/golang/glog\"\n\t\"github.com/spf13/pflag\"\n)\n\n// AutoScalerConfig configures and runs an autoscaler server\ntype AutoScalerConfig struct {\n\tTarget            string\n\tConfigMap         string\n\tNamespace         string\n\tDefaultParams     configMapData\n\tPollPeriodSeconds int\n\tPrintVer          bool\n\tNodeLabels        string\n\tMaxSyncFailures   int\n}\n\n// NewAutoScalerConfig returns a Autoscaler config\nfunc NewAutoScalerConfig() *AutoScalerConfig {\n\treturn &AutoScalerConfig{\n\t\tNamespace:         os.Getenv(\"MY_POD_NAMESPACE\"),\n\t\tPollPeriodSeconds: 10,\n\t\tPrintVer:          false,\n\t}\n}\n\n// ValidateFlags validates whether flags are set up correctly\nfunc (c *AutoScalerConfig) ValidateFlags() error {\n\tvar errorsFound bool\n\tc.Target = strings.ToLower(c.Target)\n\tif !isTargetFormatValid(c.Target) {\n\t\terrorsFound = true\n\t}\n\tif c.ConfigMap == \"\" {\n\t\terrorsFound = true\n\t\tglog.Errorf(\"--configmap parameter cannot be empty\")\n\t}\n\tif c.Namespace == \"\" {\n\t\terrorsFound = true\n\t\tglog.Errorf(\"--namespace parameter not set and failed to fallback\")\n\t}\n\tif c.PollPeriodSeconds < 1 {\n\t\terrorsFound = true\n\t\tglog.Errorf(\"--poll-period-seconds cannot be less than 1\")\n\t}\n\n\t// Log all sanity check errors before returning a single error string\n\tif errorsFound {\n\t\treturn fmt.Errorf(\"failed to validate all input parameters\")\n\t}\n\treturn nil\n}\n\nfunc isTargetFormatValid(target string) bool {\n\tif target == \"\" {\n\t\tglog.Errorf(\"--target parameter cannot be empty\")\n\t\treturn false\n\t}\n\n\tfor _, target := range strings.Split(target, \",\") {\n\t\ttarget := strings.TrimSpace(target)\n\n\t\tif !strings.HasPrefix(target, \"deployment/\") &&\n\t\t\t!strings.HasPrefix(target, \"replicationcontroller/\") &&\n\t\t\t!strings.HasPrefix(target, \"replicaset/\") {\n\t\t\tglog.Errorf(\"Target format error. Please use 'deployment/*,replicationcontroller/*,replicaset/*' (not case sensitive, comma delimiter supported).\")\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n\ntype configMapData map[string]string\n\nfunc (c *configMapData) Set(raw string) error {\n\tvar rawData map[string]interface{}\n\tif err := json.Unmarshal([]byte(raw), &rawData); err != nil {\n\t\treturn err\n\t}\n\t*c = make(map[string]string)\n\tfor key, param := range rawData {\n\t\tmarshaled, err := json.Marshal(param)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t(*c)[key] = string(marshaled)\n\t}\n\treturn nil\n}\n\nfunc (c *configMapData) String() string {\n\treturn fmt.Sprintf(\"%v\", *c)\n}\n\nfunc (c *configMapData) Type() string {\n\treturn \"configMapData\"\n}\n\n// AddFlags adds flags for a specific AutoScaler to the specified FlagSet\nfunc (c *AutoScalerConfig) AddFlags(fs *pflag.FlagSet) {\n\tfs.StringVar(&c.Target, \"target\", c.Target, \"Target to scale. In format: 'deployment/*,replicationcontroller/*,replicaset/*' (not case sensitive, comma delimiter supported).\")\n\tfs.StringVar(&c.ConfigMap, \"configmap\", c.ConfigMap, \"ConfigMap containing our scaling parameters.\")\n\tfs.StringVar(&c.Namespace, \"namespace\", c.Namespace, \"Namespace for all operations, fallback to the namespace of this autoscaler(through MY_POD_NAMESPACE env) if not specified.\")\n\tfs.IntVar(&c.PollPeriodSeconds, \"poll-period-seconds\", c.PollPeriodSeconds, \"The time, in seconds, to check cluster status and perform autoscale.\")\n\tfs.BoolVar(&c.PrintVer, \"version\", c.PrintVer, \"Print the version and exit.\")\n\tfs.Var(&c.DefaultParams, \"default-params\", \"Default parameters(JSON format) for auto-scaling. Will create/re-create a ConfigMap with this default params if ConfigMap is not present.\")\n\tfs.StringVar(&c.NodeLabels, \"nodelabels\", c.NodeLabels, \"NodeLabels for filtering search of nodes and its cpus by LabelSelectors. Input format is a comma separated list of keyN=valueN LabelSelectors. Usage example: --nodelabels=label1=value1,label2=value2.\")\n\tfs.IntVar(&c.MaxSyncFailures, \"max-sync-failures\", c.MaxSyncFailures, \"Number of consecutive polling failures before exiting. Default value of 0 will allow for unlimited retries.\")\n}\n"
  },
  {
    "path": "cmd/cluster-proportional-autoscaler/options/options_test.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage options\n\nimport (\n\t\"strings\"\n\t\"testing\"\n)\n\nfunc TestIsTargetFormatValid(t *testing.T) {\n\ttestCases := []struct {\n\t\ttarget    string\n\t\texpResult bool\n\t}{\n\t\t{\n\t\t\t\"deployment/anything\",\n\t\t\ttrue,\n\t\t},\n\t\t{\n\t\t\t\"replicationcontroller/anything\",\n\t\t\ttrue,\n\t\t},\n\t\t{\n\t\t\t\"replicaset/anything\",\n\t\t\ttrue,\n\t\t},\n\t\t{\n\t\t\t\"DeplOymEnT/anything\",\n\t\t\ttrue,\n\t\t},\n\t\t{\n\t\t\t\"DeplOymEnT/anything, replicaset/anything,replicationcontroller/anything\",\n\t\t\ttrue,\n\t\t},\n\t\t{\n\t\t\t\"deployments/anything\",\n\t\t\tfalse,\n\t\t},\n\t\t{\n\t\t\t\"noexist/anything\",\n\t\t\tfalse,\n\t\t},\n\t\t{\n\t\t\t\"deployment\",\n\t\t\tfalse,\n\t\t},\n\t}\n\n\tfor _, tc := range testCases {\n\t\ttc.target = strings.ToLower(tc.target)\n\t\tres := isTargetFormatValid(tc.target)\n\t\tif res != tc.expResult {\n\t\t\tt.Errorf(\"Target format verification for [%v] failed. Expected %v, Got %v\", tc.target, tc.expResult, res)\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "code-of-conduct.md",
    "content": "# Kubernetes Community Code of Conduct\n\nPlease refer to our [Kubernetes Community Code of Conduct](https://git.k8s.io/community/code-of-conduct.md)\n"
  },
  {
    "path": "examples/RBAC/RBAC-configs.yaml",
    "content": "# Copyright 2016 The Kubernetes Authors. All rights reserved\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nkind: ServiceAccount\napiVersion: v1\nmetadata:\n  name: cluster-proportional-autoscaler-example\n  namespace: default\n---\nkind: ClusterRole\napiVersion: rbac.authorization.k8s.io/v1\nmetadata:\n  name: cluster-proportional-autoscaler-example\nrules:\n  - apiGroups: [\"\"]\n    resources: [\"nodes\"]\n    verbs: [\"list\", \"watch\"]\n  - apiGroups: [\"\"]\n    resources: [\"replicationcontrollers/scale\"]\n    verbs: [\"get\", \"update\"]\n  - apiGroups: [\"extensions\",\"apps\"]\n    resources: [\"deployments/scale\", \"replicasets/scale\"]\n    verbs: [\"get\", \"update\"]\n  - apiGroups: [\"\"]\n    resources: [\"configmaps\"]\n    verbs: [\"get\", \"create\"]\n---\nkind: ClusterRoleBinding\napiVersion: rbac.authorization.k8s.io/v1\nmetadata:\n  name: cluster-proportional-autoscaler-example\nsubjects:\n  - kind: ServiceAccount\n    name: cluster-proportional-autoscaler-example\n    namespace: default\nroleRef:\n  kind: ClusterRole\n  name: cluster-proportional-autoscaler-example\n  apiGroup: rbac.authorization.k8s.io\n"
  },
  {
    "path": "examples/README.md",
    "content": "# Example files\n\nThere are several example yaml files in this folder, each of them will create\nan autoscaler Deployment watches and resizes the replicas of the nginx server.\nThey are using different control modes.\n\nUse below commands to create / delete one of the example:\n```\nkubectl create -f linear.yaml\n...\nkubectl delete -f linear.yaml\n```\nP.S. You need to delete the created configMap explicitly when using\n*-defaultparams.yaml.\n\n# RBAC configurations\n\nRBAC authentication has been enabled by default in Kubernetes 1.6+. You will need\nto create the following RBAC resources to give the controller the permissions to\nfunction correctly.\n\nUse below commands to create / delete the RBAC resources:\n```\nkubectl create -f RBAC-configs.yaml\n...\nkubectl delete -f RBAC-configs.yaml\n```\n\nRBAC documentation: https://kubernetes.io/docs/reference/access-authn-authz/rbac/\n"
  },
  {
    "path": "examples/ladder-defaultparams.yaml",
    "content": "# Copyright 2016 The Kubernetes Authors. All rights reserved\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: nginx-autoscale-example\n  namespace: default\nspec:\n  selector:\n    matchLabels:\n      run: nginx-autoscale-example\n  replicas: 1\n  template:\n    metadata:\n      labels:\n        run: nginx-autoscale-example\n    spec:\n      containers:\n      - name: nginx-autoscale-example\n        image: nginx\n        ports:\n        - containerPort: 80\n---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: nginx-autoscaler\n  namespace: default\n  labels:\n    app: autoscaler\nspec:\n  selector:\n    matchLabels:\n      app: autoscaler\n  replicas: 1\n  template:\n    metadata:\n      labels:\n        app: autoscaler\n    spec:\n      containers:\n        - image: registry.k8s.io/cpa/cluster-proportional-autoscaler-amd64:{LATEST_RELEASE}\n          name: autoscaler\n          command:\n            - /cluster-proportional-autoscaler\n            - --namespace=default\n            - --configmap=nginx-autoscaler\n            - --target=deployment/nginx-autoscale-example\n            - --default-params={\"ladder\":{\"coresToReplicas\":[[1, 1],[2, 2],[3, 4],[512, 5]],\"nodesToReplicas\":[[ 1,1 ],[ 2,2 ]],\"includeUnschedulableNodes\":\"true\"}}\n            - --logtostderr=true\n            - --v=2\n      # Uncomment below line if you are using RBAC configs under the RBAC folder.\n      # serviceAccountName: cluster-proportional-autoscaler-example\n"
  },
  {
    "path": "examples/ladder.yaml",
    "content": "# Copyright 2016 The Kubernetes Authors. All rights reserved\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nkind: ConfigMap\napiVersion: v1\nmetadata:\n  name: nginx-autoscaler\n  namespace: default\ndata:\n  ladder: |-\n    {\n      \"coresToReplicas\":\n      [\n        [ 1,1 ],\n        [ 3,3 ],\n        [ 512,5 ],\n        [ 1024,7 ],\n        [ 2048,10 ],\n        [ 4096,15 ],\n        [ 8192,20 ],\n        [ 12288,30 ],\n        [ 16384,40 ],\n        [ 20480,50 ],\n        [ 24576,60 ],\n        [ 28672,70 ],\n        [ 32768,80 ],\n        [ 65535,100 ]\n      ],\n      \"nodesToReplicas\":\n      [\n        [ 1,1 ],\n        [ 2,2 ]\n      ]\n    }\n---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: nginx-autoscale-example\n  namespace: default\nspec:\n  selector:\n    matchLabels:\n      run: nginx-autoscale-example\n  replicas: 1\n  template:\n    metadata:\n      labels:\n        run: nginx-autoscale-example\n    spec:\n      containers:\n      - name: nginx-autoscale-example\n        image: nginx\n        ports:\n        - containerPort: 80\n---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: nginx-autoscaler\n  namespace: default\n  labels:\n    app: autoscaler\nspec:\n  selector:\n    matchLabels:\n      app: autoscaler\n  replicas: 1\n  template:\n    metadata:\n      labels:\n        app: autoscaler\n    spec:\n      containers:\n        - image: registry.k8s.io/cpa/cluster-proportional-autoscaler-amd64:{LATEST_RELEASE}\n          name: autoscaler\n          command:\n            - /cluster-proportional-autoscaler\n            - --namespace=default\n            - --configmap=nginx-autoscaler\n            - --target=deployment/nginx-autoscale-example\n            - --logtostderr=true\n            - --v=2\n      # Uncomment below line if you are using RBAC configs under the RBAC folder.\n      # serviceAccountName: cluster-proportional-autoscaler-example\n"
  },
  {
    "path": "examples/linear-defaultparams.yaml",
    "content": "# Copyright 2016 The Kubernetes Authors. All rights reserved\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: nginx-autoscale-example\n  namespace: default\nspec:\n  selector:\n    matchLabels:\n      run: nginx-autoscale-example\n  replicas: 1\n  template:\n    metadata:\n      labels:\n        run: nginx-autoscale-example\n    spec:\n      containers:\n      - name: nginx-autoscale-example\n        image: nginx\n        ports:\n        - containerPort: 80\n---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: nginx-autoscaler\n  namespace: default\n  labels:\n    app: autoscaler\nspec:\n selector:\n    matchLabels:\n      app: autoscaler\n  replicas: 1\n  template:\n    metadata:\n      labels:\n        app: autoscaler\n    spec:\n      containers:\n        - image: registry.k8s.io/cpa/cluster-proportional-autoscaler-amd64:{LATEST_RELEASE}\n          name: autoscaler\n          command:\n            - /cluster-proportional-autoscaler\n            - --namespace=default\n            - --configmap=nginx-autoscaler\n            - --target=deployment/nginx-autoscale-example\n            - --default-params={\"linear\":{\"coresPerReplica\":2,\"nodesPerReplica\":1,\"preventSinglePointFailure\":true,\"includeUnschedulableNodes\":true}}\n            - --logtostderr=true\n            - --v=2\n      # Uncomment below line if you are using RBAC configs under the RBAC folder.\n      # serviceAccountName: cluster-proportional-autoscaler-example\n"
  },
  {
    "path": "examples/linear.yaml",
    "content": "# Copyright 2016 The Kubernetes Authors. All rights reserved\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nkind: ConfigMap\napiVersion: v1\nmetadata:\n  name: nginx-autoscaler\n  namespace: default\ndata:\n  linear: |-\n    {\n      \"coresPerReplica\": 2,\n      \"nodesPerReplica\": 1,\n      \"preventSinglePointFailure\": true\n    }\n---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: nginx-autoscale-example\n  namespace: default\nspec:\n  selector:\n    matchLabels:\n      run: nginx-autoscale-example\n  replicas: 1\n  template:\n    metadata:\n      labels:\n        run: nginx-autoscale-example\n    spec:\n      containers:\n      - name: nginx-autoscale-example\n        image: nginx\n        ports:\n        - containerPort: 80\n---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: nginx-autoscaler\n  namespace: default\n  labels:\n    app: autoscaler\nspec:\n  selector:\n    matchLabels:\n      app: autoscaler\n  replicas: 1\n  template:\n    metadata:\n      labels:\n        app: autoscaler\n    spec:\n      containers:\n        - image: registry.k8s.io/cpa/cluster-proportional-autoscaler-amd64:{LATEST_RELEASE}\n          name: autoscaler\n          command:\n            - /cluster-proportional-autoscaler\n            - --namespace=default\n            - --configmap=nginx-autoscaler\n            - --target=deployment/nginx-autoscale-example\n            - --logtostderr=true\n            - --v=2\n      # Uncomment below line if you are using RBAC configs under the RBAC folder.\n      # serviceAccountName: cluster-proportional-autoscaler-example\n"
  },
  {
    "path": "go.mod",
    "content": "module github.com/kubernetes-sigs/cluster-proportional-autoscaler\n\ngo 1.24\n\nrequire (\n\tgithub.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc\n\tgithub.com/golang/glog v1.2.4\n\tgithub.com/spf13/pflag v1.0.6\n\tk8s.io/api v0.32.3\n\tk8s.io/apimachinery v0.32.3\n\tk8s.io/client-go v0.32.3\n\tk8s.io/component-base v0.32.3\n\tk8s.io/utils v0.0.0-20241104100929-3ea5e8cea738\n)\n\nrequire (\n\tgithub.com/emicklei/go-restful/v3 v3.11.0 // indirect\n\tgithub.com/fxamacker/cbor/v2 v2.7.0 // indirect\n\tgithub.com/go-logr/logr v1.4.2 // indirect\n\tgithub.com/go-openapi/jsonpointer v0.21.0 // indirect\n\tgithub.com/go-openapi/jsonreference v0.20.2 // indirect\n\tgithub.com/go-openapi/swag v0.23.0 // indirect\n\tgithub.com/gogo/protobuf v1.3.2 // indirect\n\tgithub.com/golang/protobuf v1.5.4 // indirect\n\tgithub.com/google/gnostic-models v0.6.8 // indirect\n\tgithub.com/google/go-cmp v0.6.0 // indirect\n\tgithub.com/google/gofuzz v1.2.0 // indirect\n\tgithub.com/google/uuid v1.6.0 // indirect\n\tgithub.com/inconshreveable/mousetrap v1.1.0 // indirect\n\tgithub.com/josharian/intern v1.0.0 // indirect\n\tgithub.com/json-iterator/go v1.1.12 // indirect\n\tgithub.com/mailru/easyjson v0.7.7 // indirect\n\tgithub.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect\n\tgithub.com/modern-go/reflect2 v1.0.2 // indirect\n\tgithub.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect\n\tgithub.com/pkg/errors v0.9.1 // indirect\n\tgithub.com/spf13/cobra v1.8.1 // indirect\n\tgithub.com/x448/float16 v0.8.4 // indirect\n\tgolang.org/x/net v0.36.0 // indirect\n\tgolang.org/x/oauth2 v0.23.0 // indirect\n\tgolang.org/x/sys v0.30.0 // indirect\n\tgolang.org/x/term v0.29.0 // indirect\n\tgolang.org/x/text v0.22.0 // indirect\n\tgolang.org/x/time v0.7.0 // indirect\n\tgoogle.golang.org/protobuf v1.35.1 // indirect\n\tgopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect\n\tgopkg.in/inf.v0 v0.9.1 // indirect\n\tgopkg.in/yaml.v3 v3.0.1 // indirect\n\tk8s.io/klog/v2 v2.130.1 // indirect\n\tk8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f // indirect\n\tsigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect\n\tsigs.k8s.io/structured-merge-diff/v4 v4.4.2 // indirect\n\tsigs.k8s.io/yaml v1.4.0 // indirect\n)\n"
  },
  {
    "path": "go.sum",
    "content": "github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=\ngithub.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=\ngithub.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=\ngithub.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g=\ngithub.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=\ngithub.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E=\ngithub.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ=\ngithub.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=\ngithub.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=\ngithub.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=\ngithub.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ=\ngithub.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY=\ngithub.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=\ngithub.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k=\ngithub.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=\ngithub.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE=\ngithub.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ=\ngithub.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI=\ngithub.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8=\ngithub.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=\ngithub.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=\ngithub.com/golang/glog v1.2.4 h1:CNNw5U8lSiiBk7druxtSHHTsRWcxKoac6kZKm2peBBc=\ngithub.com/golang/glog v1.2.4/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w=\ngithub.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=\ngithub.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=\ngithub.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I=\ngithub.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U=\ngithub.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=\ngithub.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=\ngithub.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=\ngithub.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=\ngithub.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=\ngithub.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=\ngithub.com/google/pprof v0.0.0-20241029153458-d1b30febd7db h1:097atOisP2aRj7vFgYQBbFN4U4JNXUNYpxael3UzMyo=\ngithub.com/google/pprof v0.0.0-20241029153458-d1b30febd7db/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144=\ngithub.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=\ngithub.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=\ngithub.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=\ngithub.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=\ngithub.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=\ngithub.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=\ngithub.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=\ngithub.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=\ngithub.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=\ngithub.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=\ngithub.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=\ngithub.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=\ngithub.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=\ngithub.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=\ngithub.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=\ngithub.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=\ngithub.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=\ngithub.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=\ngithub.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=\ngithub.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=\ngithub.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=\ngithub.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=\ngithub.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=\ngithub.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=\ngithub.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=\ngithub.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=\ngithub.com/onsi/ginkgo/v2 v2.21.0 h1:7rg/4f3rB88pb5obDgNZrNHrQ4e6WpjonchcpuBRnZM=\ngithub.com/onsi/ginkgo/v2 v2.21.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo=\ngithub.com/onsi/gomega v1.35.1 h1:Cwbd75ZBPxFSuZ6T+rN/WCb/gOc6YgFBXLlZLhC7Ds4=\ngithub.com/onsi/gomega v1.35.1/go.mod h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog=\ngithub.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=\ngithub.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=\ngithub.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=\ngithub.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=\ngithub.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=\ngithub.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=\ngithub.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=\ngithub.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=\ngithub.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM=\ngithub.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y=\ngithub.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=\ngithub.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o=\ngithub.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=\ngithub.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=\ngithub.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=\ngithub.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=\ngithub.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=\ngithub.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=\ngithub.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=\ngithub.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=\ngithub.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=\ngithub.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=\ngithub.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=\ngithub.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=\ngithub.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=\ngithub.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=\ngolang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=\ngolang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=\ngolang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=\ngolang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=\ngolang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=\ngolang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=\ngolang.org/x/net v0.36.0 h1:vWF2fRbw4qslQsQzgFqZff+BItCvGFQqKzKIzx1rmoA=\ngolang.org/x/net v0.36.0/go.mod h1:bFmbeoIPfrw4sMHNhb4J9f6+tPziuGjq7Jk/38fxi1I=\ngolang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs=\ngolang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=\ngolang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc=\ngolang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=\ngolang.org/x/term v0.29.0 h1:L6pJp37ocefwRRtYPKSWOWzOtWSxVajvz2ldH/xi3iU=\ngolang.org/x/term v0.29.0/go.mod h1:6bl4lRlvVuDgSf3179VpIxBF0o10JUpXWOnI7nErv7s=\ngolang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=\ngolang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=\ngolang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM=\ngolang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY=\ngolang.org/x/time v0.7.0 h1:ntUhktv3OPE6TgYxXWv9vKvUSJyIFJlyohwbkEwPrKQ=\ngolang.org/x/time v0.7.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=\ngolang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=\ngolang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=\ngolang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=\ngolang.org/x/tools v0.26.0 h1:v/60pFQmzmT9ExmjDv2gGIfi3OqfKoEP6I5+umXlbnQ=\ngolang.org/x/tools v0.26.0/go.mod h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0=\ngolang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=\ngolang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=\ngolang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=\ngolang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=\ngoogle.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA=\ngoogle.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=\ngopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=\ngopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=\ngopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4=\ngopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M=\ngopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=\ngopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=\ngopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=\ngopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=\ngopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=\nk8s.io/api v0.32.3 h1:Hw7KqxRusq+6QSplE3NYG4MBxZw1BZnq4aP4cJVINls=\nk8s.io/api v0.32.3/go.mod h1:2wEDTXADtm/HA7CCMD8D8bK4yuBUptzaRhYcYEEYA3k=\nk8s.io/apimachinery v0.32.3 h1:JmDuDarhDmA/Li7j3aPrwhpNBA94Nvk5zLeOge9HH1U=\nk8s.io/apimachinery v0.32.3/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE=\nk8s.io/client-go v0.32.3 h1:RKPVltzopkSgHS7aS98QdscAgtgah/+zmpAogooIqVU=\nk8s.io/client-go v0.32.3/go.mod h1:3v0+3k4IcT9bXTc4V2rt+d2ZPPG700Xy6Oi0Gdl2PaY=\nk8s.io/component-base v0.32.3 h1:98WJvvMs3QZ2LYHBzvltFSeJjEx7t5+8s71P7M74u8k=\nk8s.io/component-base v0.32.3/go.mod h1:LWi9cR+yPAv7cu2X9rZanTiFKB2kHA+JjmhkKjCZRpI=\nk8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=\nk8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=\nk8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f h1:GA7//TjRY9yWGy1poLzYYJJ4JRdzg3+O6e8I+e+8T5Y=\nk8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f/go.mod h1:R/HEjbvWI0qdfb8viZUeVZm0X6IZnxAydC7YU42CMw4=\nk8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 h1:M3sRQVHv7vB20Xc2ybTt7ODCeFj6JSWYFzOFnYeS6Ro=\nk8s.io/utils v0.0.0-20241104100929-3ea5e8cea738/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=\nsigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 h1:/Rv+M11QRah1itp8VhT6HoVx1Ray9eB4DBr+K+/sCJ8=\nsigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3/go.mod h1:18nIHnGi6636UCz6m8i4DhaJ65T6EruyzmoQqI2BVDo=\nsigs.k8s.io/structured-merge-diff/v4 v4.4.2 h1:MdmvkGuXi/8io6ixD5wud3vOLwc1rj0aNqRlpuvjmwA=\nsigs.k8s.io/structured-merge-diff/v4 v4.4.2/go.mod h1:N8f93tFZh9U6vpxwRArLiikrE5/2tiu1w1AGfACIGE4=\nsigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=\nsigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY=\n"
  },
  {
    "path": "pkg/autoscaler/autoscaler_server.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage autoscaler\n\nimport (\n\t\"os\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\t\"k8s.io/client-go/kubernetes\"\n\t\"k8s.io/client-go/rest\"\n\t\"k8s.io/utils/clock\"\n\n\t\"github.com/kubernetes-sigs/cluster-proportional-autoscaler/cmd/cluster-proportional-autoscaler/options\"\n\t\"github.com/kubernetes-sigs/cluster-proportional-autoscaler/pkg/autoscaler/controller\"\n\t\"github.com/kubernetes-sigs/cluster-proportional-autoscaler/pkg/autoscaler/controller/plugin\"\n\t\"github.com/kubernetes-sigs/cluster-proportional-autoscaler/pkg/autoscaler/k8sclient\"\n\n\t\"github.com/golang/glog\"\n)\n\n// AutoScaler determines the number of replicas to run\ntype AutoScaler struct {\n\tk8sClient           k8sclient.K8sClient\n\tcontroller          controller.Controller\n\tconfigMapName       string\n\tdefaultParams       map[string]string\n\tpollPeriod          time.Duration\n\tclock               clock.WithTicker\n\tstopCh              chan struct{}\n\treadyCh             chan<- struct{} // For testing.\n\thealthServer        HealthServer\n\tlastPollCycleHealth *healthInfo\n\tmaxSyncFailures     int\n\texitFn              func()\n}\n\n// NewAutoScaler returns a new AutoScaler\nfunc NewAutoScaler(c *options.AutoScalerConfig) (*AutoScaler, error) {\n\tconfig, err := rest.InClusterConfig()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\t// Use protobufs for communication with apiserver.\n\tconfig.ContentType = \"application/vnd.kubernetes.protobuf\"\n\tclientset, err := kubernetes.NewForConfig(config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tnewK8sClient, err := k8sclient.NewK8sClient(clientset, c.Namespace, c.Target, c.NodeLabels)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\thealthInfo := newHealthInfo()\n\thealthServer := httpHealthServer{lastPollCycleHealth: healthInfo}\n\treturn &AutoScaler{\n\t\tk8sClient:           newK8sClient,\n\t\tconfigMapName:       c.ConfigMap,\n\t\tdefaultParams:       c.DefaultParams,\n\t\tpollPeriod:          time.Second * time.Duration(c.PollPeriodSeconds),\n\t\tclock:               clock.RealClock{},\n\t\tstopCh:              make(chan struct{}),\n\t\treadyCh:             make(chan struct{}, 1),\n\t\tlastPollCycleHealth: healthInfo,\n\t\thealthServer:        &healthServer,\n\t\tmaxSyncFailures:     c.MaxSyncFailures,\n\t\texitFn:              func() { os.Exit(1) },\n\t}, nil\n}\n\n// Run periodically counts the number of nodes and cores, estimates the expected\n// number of replicas, compares them to the actual replicas, and\n// updates the target resource with the expected replicas if necessary.\nfunc (s *AutoScaler) Run() {\n\tticker := s.clock.NewTicker(s.pollPeriod)\n\ts.readyCh <- struct{}{} // For testing.\n\n\tgo s.healthServer.Start()\n\t// Don't wait for ticker and execute pollAPIServer() for the first time.\n\ts.tryPollAPIServer()\n\n\tfor {\n\t\tselect {\n\t\tcase <-ticker.C():\n\t\t\ts.tryPollAPIServer()\n\t\tcase <-s.stopCh:\n\t\t\treturn\n\t\t}\n\t}\n}\n\nfunc (s *AutoScaler) tryPollAPIServer() {\n\terr := s.pollAPIServer()\n\tattempts := s.lastPollCycleHealth.setLastPollError(err)\n\t// if we've tried polling the apiserver more times than allowed\n\tif s.maxSyncFailures > 0 && attempts == s.maxSyncFailures {\n\t\tglog.Errorf(\"Maximum number of api server polling attempts (%d) have been reached. Exiting application.\", s.maxSyncFailures)\n\t\ts.exitFn()\n\t}\n}\n\nfunc (s *AutoScaler) pollAPIServer() error {\n\t// Query the apiserver for the cluster status --- number of nodes and cores\n\tclusterStatus, err := s.k8sClient.GetClusterStatus()\n\tif err != nil {\n\t\tglog.Errorf(\"Error while getting cluster status: %v\", err)\n\t\treturn err\n\t}\n\tglog.V(4).Infof(\"Total nodes %5d, schedulable nodes: %5d\", clusterStatus.TotalNodes, clusterStatus.SchedulableNodes)\n\tglog.V(4).Infof(\"Total cores %5d, schedulable cores: %5d\", clusterStatus.TotalCores, clusterStatus.SchedulableCores)\n\n\t// Sync autoscaler ConfigMap with apiserver\n\tconfigMap, err := s.syncConfigWithServer()\n\tif err != nil || configMap == nil {\n\t\tglog.Errorf(\"Error syncing configMap with apiserver: %v\", err)\n\t\treturn err\n\t}\n\n\t// Only sync updated ConfigMap or before controller is set.\n\tif s.controller == nil || configMap.ObjectMeta.ResourceVersion != s.controller.GetParamsVersion() {\n\t\t// Ensure corresponding controller type and scaling params.\n\t\ts.controller, err = plugin.EnsureController(s.controller, configMap)\n\t\tif err != nil || s.controller == nil {\n\t\t\tglog.Errorf(\"Error ensuring controller: %v\", err)\n\t\t\treturn err\n\t\t}\n\t}\n\n\t// Query the controller for the expected replicas number\n\texpReplicas, err := s.controller.GetExpectedReplicas(clusterStatus)\n\tif err != nil {\n\t\tglog.Errorf(\"Error calculating expected replicas number: %v\", err)\n\t\treturn err\n\t}\n\tglog.V(4).Infof(\"Expected replica count: %3d\", expReplicas)\n\n\t// Update resource target with expected replicas.\n\terr = s.k8sClient.UpdateReplicas(expReplicas)\n\tif err != nil {\n\t\tglog.Errorf(\"Update failure: %s\", err)\n\t}\n\treturn err\n}\n\nfunc (s *AutoScaler) syncConfigWithServer() (*v1.ConfigMap, error) {\n\t// Fetch autoscaler ConfigMap data from apiserver\n\tconfigMap, err := s.k8sClient.FetchConfigMap(s.k8sClient.GetNamespace(), s.configMapName)\n\tif err == nil {\n\t\treturn configMap, nil\n\t}\n\n\tif s.defaultParams == nil {\n\t\treturn nil, err\n\t}\n\tglog.V(0).Infof(\"ConfigMap not found: %v, will create one with default params\", err)\n\tconfigMap, err = s.k8sClient.CreateConfigMap(s.k8sClient.GetNamespace(), s.configMapName, s.defaultParams)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn configMap, nil\n}\n"
  },
  {
    "path": "pkg/autoscaler/autoscaler_test.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage autoscaler\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"testing\"\n\t\"time\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\t\"k8s.io/apimachinery/pkg/util/wait\"\n\ttestingclock \"k8s.io/utils/clock/testing\"\n\n\t\"github.com/kubernetes-sigs/cluster-proportional-autoscaler/pkg/autoscaler/controller/laddercontroller\"\n\t\"github.com/kubernetes-sigs/cluster-proportional-autoscaler/pkg/autoscaler/controller/linearcontroller\"\n\t\"github.com/kubernetes-sigs/cluster-proportional-autoscaler/pkg/autoscaler/k8sclient\"\n)\n\nfunc TestRun(t *testing.T) {\n\ttestConfigMap := v1.ConfigMap{\n\t\tData: make(map[string]string),\n\t}\n\ttestConfigMap.ObjectMeta.ResourceVersion = `1`\n\ttestConfigMap.Data[laddercontroller.ControllerType] =\n\t\t`{\n\t\t\t\"coresToReplicas\":\n\t\t\t[\n\t\t\t\t[1, 1],\n\t\t\t\t[2, 2],\n\t\t\t\t[3, 3],\n\t\t\t\t[512, 5],\n\t\t\t\t[1024, 7],\n\t\t\t\t[2048, 10],\n\t\t\t\t[4096, 15],\n\t\t\t\t[8192, 20],\n\t\t\t\t[12288, 30],\n\t\t\t\t[16384, 40],\n\t\t\t\t[20480, 50],\n\t\t\t\t[24576, 60],\n\t\t\t\t[28672, 70],\n\t\t\t\t[32768, 80],\n\t\t\t\t[65535, 100]\n\t\t\t],\n\t\t\t\"nodesToReplicas\":\n\t\t\t[\n\t\t\t\t[ 1,1 ],\n\t\t\t\t[ 2,2 ]\n\t\t\t]\n\t\t}`\n\tmockK8s := k8sclient.MockK8sClient{\n\t\tNumOfNodes:    0,\n\t\tNumOfCores:    0,\n\t\tNumOfReplicas: 0,\n\t\tConfigMap:     &testConfigMap,\n\t}\n\n\tfakeClock := testingclock.NewFakeClock(time.Now())\n\tfakePollPeriod := 5 * time.Second\n\tfakeConfigMapName := \"fake-cluster-proportional-autoscaler-params\"\n\tautoScaler := &AutoScaler{\n\t\tk8sClient:           &mockK8s,\n\t\tcontroller:          laddercontroller.NewLadderController(),\n\t\tclock:               fakeClock,\n\t\tpollPeriod:          fakePollPeriod,\n\t\tconfigMapName:       fakeConfigMapName,\n\t\tstopCh:              make(chan struct{}),\n\t\treadyCh:             make(chan<- struct{}, 1),\n\t\tlastPollCycleHealth: newHealthInfo(),\n\t\thealthServer:        mockHealthServer{},\n\t}\n\n\tgo autoScaler.Run()\n\tdefer close(autoScaler.stopCh)\n\n\tt.Logf(\"Scenario: cluster size changing\\n\")\n\tt.Logf(\"Wait for the number of replicas be scaled to 1 even no node and no core)\\n\")\n\tif err := waitForReplicasNumberSatisfy(t, &mockK8s, 1); err != nil {\n\t\tt.Fatalf(\"Timeout waiting for condition: %v\", err)\n\t}\n\n\tmockK8s.NumOfCores = 800\n\tmockK8s.NumOfNodes = 1\n\tfakeClock.Step(fakePollPeriod)\n\tt.Logf(\"Wait for the number of replicas be scaled to 5 when there are 800 cores and 1 node\\n\")\n\tif err := waitForReplicasNumberSatisfy(t, &mockK8s, 5); err != nil {\n\t\tt.Fatalf(\"Timeout waiting for condition: %v\", err)\n\t}\n\n\tmockK8s.NumOfCores = 1\n\tmockK8s.NumOfNodes = 3\n\tfakeClock.Step(fakePollPeriod)\n\tt.Logf(\"Wait for the number of replicas be scaled to 2 when there are 1 cores and 3 node\\n\")\n\tif err := waitForReplicasNumberSatisfy(t, &mockK8s, 2); err != nil {\n\t\tt.Fatalf(\"Timeout waiting for condition: %v\", err)\n\t}\n\n\tmockK8s.NumOfCores = 200000\n\tmockK8s.NumOfNodes = 50000\n\tfakeClock.Step(fakePollPeriod)\n\tt.Logf(\"Wait for the number of replicas be scaled to 100 when there are 200000 cores and 50000 node\\n\")\n\tif err := waitForReplicasNumberSatisfy(t, &mockK8s, 100); err != nil {\n\t\tt.Fatalf(\"Timeout waiting for condition: %v\", err)\n\t}\n\n\tt.Logf(\"Scenario: ConfigMap is changed\\n\")\n\tmockK8s.ConfigMap.Data[laddercontroller.ControllerType] =\n\t\t`{\n\t\t\t\"coresToReplicas\":\n\t\t\t[\n\t\t\t\t[1, 1],\n\t\t\t\t[2, 2],\n\t\t\t\t[3, 4],\n\t\t\t\t[512, 5],\n\t\t\t\t[1024, 7],\n\t\t\t\t[2048, 10],\n\t\t\t\t[4096, 15],\n\t\t\t\t[8192, 20],\n\t\t\t\t[12288, 30],\n\t\t\t\t[16384, 40],\n\t\t\t\t[20480, 50],\n\t\t\t\t[24576, 60],\n\t\t\t\t[28672, 70],\n\t\t\t\t[32768, 80],\n\t\t\t\t[65535, 200]\n\t\t\t],\n\t\t\t\"nodesToReplicas\":\n\t\t\t[\n\t\t\t\t[ 1,1 ],\n\t\t\t\t[ 2,2 ]\n\t\t\t]\n\t\t}`\n\tmockK8s.ConfigMap.ObjectMeta.ResourceVersion = `2`\n\n\tfakeClock.Step(fakePollPeriod)\n\tt.Logf(\"Wait for the number of replicas be scaled to 200 with new configuration)\\n\")\n\tif err := waitForReplicasNumberSatisfy(t, &mockK8s, 200); err != nil {\n\t\tt.Fatalf(\"Timeout waiting for condition: %v\", err)\n\t}\n\n\tmockK8s.NumOfCores = 500\n\tmockK8s.NumOfNodes = 100\n\tfakeClock.Step(fakePollPeriod)\n\tt.Logf(\"Wait for the number of replicas be scaled to 4 when there are 500 cores and 100 node\\n\")\n\tif err := waitForReplicasNumberSatisfy(t, &mockK8s, 4); err != nil {\n\t\tt.Fatalf(\"Timeout waiting for condition: %v\", err)\n\t}\n\n\tt.Logf(\"Scenario: ConfigMap is missing and later appears again\\n\")\n\tmockK8s.ConfigMap.ObjectMeta.ResourceVersion = \"\"\n\tfakeClock.Step(fakePollPeriod)\n\tt.Logf(\"And cluster size changed in between\\n\")\n\tmockK8s.NumOfCores = 2000\n\tmockK8s.NumOfNodes = 400\n\tmockK8s.ConfigMap.ObjectMeta.ResourceVersion = \"3\"\n\tfakeClock.Step(fakePollPeriod)\n\tt.Logf(\"Wait for the number of replicas be scaled to 7 when there are 2000 cores and 400 node\\n\")\n\tif err := waitForReplicasNumberSatisfy(t, &mockK8s, 7); err != nil {\n\t\tt.Fatalf(\"Timeout waiting for condition: %v\", err)\n\t}\n\n\tt.Logf(\"Scenario: Switch control mode on the fly\\n\")\n\tdelete(mockK8s.ConfigMap.Data, laddercontroller.ControllerType)\n\tmockK8s.ConfigMap.Data[linearcontroller.ControllerType] =\n\t\t`{\n\t\t\t\"coresPerReplica\": 100,\n\t\t\t\"nodesPerReplica\": 10,\n\t\t\t\"min\": 1,\n\t\t\t\"max\": 100\n\t\t}`\n\tmockK8s.ConfigMap.ObjectMeta.ResourceVersion = `4`\n\n\tfakeClock.Step(fakePollPeriod)\n\tt.Logf(\"Wait for the number of replicas be scaled to 40 with new configuration)\\n\")\n\tif err := waitForReplicasNumberSatisfy(t, &mockK8s, 40); err != nil {\n\t\tt.Fatalf(\"Timeout waiting for condition: %v\", err)\n\t}\n\n\tmockK8s.NumOfCores = 1600\n\tmockK8s.NumOfNodes = 100\n\tfakeClock.Step(fakePollPeriod)\n\tt.Logf(\"Wait for the number of replicas be scaled to 16 when there are 1600 cores and 100 node\\n\")\n\tif err := waitForReplicasNumberSatisfy(t, &mockK8s, 16); err != nil {\n\t\tt.Fatalf(\"Timeout waiting for condition: %v\", err)\n\t}\n\n\tmockK8s.NumOfCores = 100000\n\tmockK8s.NumOfNodes = 20000\n\tfakeClock.Step(fakePollPeriod)\n\tt.Logf(\"Wait for the number of replicas be scaled to 100 when there are 100000 cores and 20000 node\\n\")\n\tif err := waitForReplicasNumberSatisfy(t, &mockK8s, 100); err != nil {\n\t\tt.Fatalf(\"Timeout waiting for condition: %v\", err)\n\t}\n}\n\nfunc TestRun_MaxRetries(t *testing.T) {\n\tconst maxRetries = 3\n\tmockK8s := k8sclient.MockK8sClient{\n\t\tNumOfNodes:    0,\n\t\tNumOfCores:    0,\n\t\tNumOfReplicas: 0,\n\t\tFetchConfigMapFn: func(namespace, configmap string) (*v1.ConfigMap, error) {\n\t\t\treturn nil, errors.New(\"mocked error\")\n\t\t},\n\t}\n\tvar exitFnCalled bool\n\tfakeClock := testingclock.NewFakeClock(time.Now())\n\tfakePollPeriod := 5 * time.Second\n\tfakeConfigMapName := \"fake-cluster-proportional-autoscaler-params\"\n\treadyCh := make(chan struct{})\n\tstopCh := make(chan struct{})\n\tautoScaler := &AutoScaler{\n\t\tk8sClient:           &mockK8s,\n\t\tcontroller:          laddercontroller.NewLadderController(),\n\t\tclock:               fakeClock,\n\t\tpollPeriod:          fakePollPeriod,\n\t\tconfigMapName:       fakeConfigMapName,\n\t\tstopCh:              stopCh,\n\t\treadyCh:             readyCh,\n\t\tlastPollCycleHealth: newHealthInfo(),\n\t\tmaxSyncFailures:     maxRetries,\n\t\texitFn: func() {\n\t\t\texitFnCalled = true\n\t\t\t// shutdown autoScaler via stopCh to stop\n\t\t\tclose(stopCh)\n\t\t},\n\t\thealthServer: mockHealthServer{},\n\t}\n\tgo autoScaler.Run()\n\t<-readyCh\n\tfor i := 0; i < maxRetries; i++ {\n\t\tfakeClock.Step(fakePollPeriod)\n\t\t_ = wait.PollUntilContextTimeout(context.TODO(), 50*time.Millisecond, 3*time.Second, false, func(ctx context.Context) (done bool, err error) {\n\t\t\treturn true, nil\n\t\t})\n\t}\n\n\tif !exitFnCalled {\n\t\tt.Fatalf(\"Did not exit\")\n\t}\n\tif autoScaler.lastPollCycleHealth.failedCount > autoScaler.maxSyncFailures {\n\t\tt.Fatalf(\"scaler ran more times than allowed\")\n\t}\n}\n\nfunc waitForReplicasNumberSatisfy(t *testing.T, mockK8s *k8sclient.MockK8sClient, replicas int) error {\n\treturn wait.PollUntilContextTimeout(context.TODO(), 50*time.Millisecond, 3*time.Second, false, func(ctx context.Context) (done bool, err error) {\n\t\tif mockK8s.NumOfReplicas != replicas {\n\t\t\tt.Logf(\"Error number of replicas, expected: %d, got %d\\n\", replicas, mockK8s.NumOfReplicas)\n\t\t\treturn false, nil\n\t\t}\n\t\treturn true, nil\n\t})\n}\n\ntype mockHealthServer struct {\n}\n\nfunc (s mockHealthServer) Start() {\n}\n"
  },
  {
    "path": "pkg/autoscaler/controller/controller.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage controller\n\nimport (\n\t\"k8s.io/api/core/v1\"\n\n\t\"github.com/kubernetes-sigs/cluster-proportional-autoscaler/pkg/autoscaler/k8sclient\"\n)\n\n// Controller defines the interface every controller should implement\ntype Controller interface {\n\t// GetExpectedReplicas returns the expected replicas based on cluster status\n\tGetExpectedReplicas(*k8sclient.ClusterStatus) (int32, error)\n\t// SyncConfig syncs the ConfigMap with controller\n\tSyncConfig(*v1.ConfigMap) error\n\t// GetParamsVersion returns the latest parameters version from controller\n\tGetParamsVersion() string\n\t// GetControllerType returns the controller type\n\tGetControllerType() string\n}\n"
  },
  {
    "path": "pkg/autoscaler/controller/laddercontroller/ladder_controller.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage laddercontroller\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"sort\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\n\t\"github.com/kubernetes-sigs/cluster-proportional-autoscaler/pkg/autoscaler/controller\"\n\t\"github.com/kubernetes-sigs/cluster-proportional-autoscaler/pkg/autoscaler/k8sclient\"\n\n\t\"github.com/golang/glog\"\n)\n\nvar _ = controller.Controller(&LadderController{})\n\nconst (\n\t// ControllerType defines the controller type string\n\tControllerType = \"ladder\"\n)\n\n// LadderController uses ladder control pattern\ntype LadderController struct {\n\tparams  *ladderParams\n\tversion string\n}\n\n// NewLadderController returns a new ladder controller\nfunc NewLadderController() controller.Controller {\n\treturn &LadderController{}\n}\n\ntype paramEntry [2]int\n\ntype paramEntries []paramEntry\n\nfunc (entries paramEntries) Len() int {\n\treturn len(entries)\n}\n\nfunc (entries paramEntries) Less(i, j int) bool {\n\treturn entries[i][0] < entries[j][0]\n}\n\nfunc (entries paramEntries) Swap(i, j int) {\n\tentries[i], entries[j] = entries[j], entries[i]\n}\n\ntype ladderParams struct {\n\tCoresToReplicas           paramEntries `json:\"coresToReplicas\"`\n\tNodesToReplicas           paramEntries `json:\"nodesToReplicas\"`\n\tIncludeUnschedulableNodes bool         `json:\"includeUnschedulableNodes\"`\n}\n\nfunc (c *LadderController) SyncConfig(configMap *v1.ConfigMap) error {\n\tglog.V(0).Infof(\"Detected ConfigMap version change (old: %s new: %s) - rebuilding lookup entries\", c.version, configMap.ObjectMeta.ResourceVersion)\n\tglog.V(2).Infof(\"Params from apiserver: \\n%v\", configMap.Data[ControllerType])\n\tparams, err := parseParams([]byte(configMap.Data[ControllerType]))\n\tif err != nil {\n\t\treturn fmt.Errorf(\"error parsing ladder params: %s\", err)\n\t}\n\tsort.Sort(params.CoresToReplicas)\n\tsort.Sort(params.NodesToReplicas)\n\tc.params = params\n\tc.version = configMap.ObjectMeta.ResourceVersion\n\treturn nil\n}\n\n// parseParams Parse the params from JSON string\nfunc parseParams(data []byte) (*ladderParams, error) {\n\tvar p ladderParams\n\tif err := json.Unmarshal(data, &p); err != nil {\n\t\treturn nil, fmt.Errorf(\"could not parse parameters (%s)\", err)\n\t}\n\tfor _, e := range p.CoresToReplicas {\n\t\tif len(e) != 2 {\n\t\t\treturn nil, fmt.Errorf(\"invalid element %v in cores_to_replicas_map\", e)\n\t\t}\n\t\tif e[0] < 0 || e[1] < 0 {\n\t\t\treturn nil, fmt.Errorf(\"invalid negative values in entry %v in cores_to_replicas_map\", e)\n\t\t}\n\t}\n\tfor _, e := range p.NodesToReplicas {\n\t\tif len(e) != 2 {\n\t\t\treturn nil, fmt.Errorf(\"invalid element %b in nodes_to_replicas_map\", e)\n\t\t}\n\t\tif e[0] < 0 || e[1] < 0 {\n\t\t\treturn nil, fmt.Errorf(\"invalid negative values in entry %v in nodes_to_replicas_map\", e)\n\t\t}\n\t}\n\treturn &p, nil\n}\n\nfunc (c *LadderController) GetParamsVersion() string {\n\treturn c.version\n}\n\nfunc (c *LadderController) GetExpectedReplicas(status *k8sclient.ClusterStatus) (int32, error) {\n\tvar expReplicas int32\n\tif c.params.IncludeUnschedulableNodes {\n\t\t// Get the expected replicas for the total nodes and cores\n\t\texpReplicas = int32(c.getExpectedReplicasFromParams(int(status.TotalNodes), int(status.TotalCores)))\n\t} else {\n\t\t// Get the expected replicas for the currently schedulable nodes and cores\n\t\texpReplicas = int32(c.getExpectedReplicasFromParams(int(status.SchedulableNodes), int(status.SchedulableCores)))\n\t}\n\n\treturn expReplicas, nil\n}\n\nfunc (c *LadderController) getExpectedReplicasFromParams(nodes, cores int) int {\n\treplicasFromCore := getExpectedReplicasFromEntries(cores, c.params.CoresToReplicas)\n\treplicasFromNode := getExpectedReplicasFromEntries(nodes, c.params.NodesToReplicas)\n\n\t// Returns the results which yields the most replicas\n\tif replicasFromCore > replicasFromNode {\n\t\treturn replicasFromCore\n\t}\n\treturn replicasFromNode\n}\n\nfunc getExpectedReplicasFromEntries(resources int, entries []paramEntry) int {\n\tif len(entries) == 0 {\n\t\treturn 0\n\t}\n\t// Binary search for the corresponding replicas number\n\tpos := sort.Search(\n\t\tlen(entries),\n\t\tfunc(i int) bool {\n\t\t\treturn resources < entries[i][0]\n\t\t})\n\tif pos > 0 {\n\t\tpos = pos - 1\n\t}\n\treturn entries[pos][1]\n}\n\nfunc (c *LadderController) GetControllerType() string {\n\treturn ControllerType\n}\n"
  },
  {
    "path": "pkg/autoscaler/controller/laddercontroller/ladder_controller_test.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage laddercontroller\n\nimport (\n\t\"sort\"\n\t\"testing\"\n\n\t\"github.com/davecgh/go-spew/spew\"\n\n\t\"github.com/kubernetes-sigs/cluster-proportional-autoscaler/pkg/autoscaler/k8sclient\"\n)\n\nfunc verifyParams(t *testing.T, scalerParams, expScalerParams *ladderParams) {\n\tif len(expScalerParams.CoresToReplicas) != len(scalerParams.CoresToReplicas) {\n\t\tt.Errorf(\"Scaler Params length mismatch Expected: %d, Got %d\", len(expScalerParams.CoresToReplicas), len(scalerParams.CoresToReplicas))\n\t\treturn\n\t}\n\tfor n, expected := range expScalerParams.CoresToReplicas {\n\t\tparsed := scalerParams.CoresToReplicas[n]\n\t\tif expected[0] != parsed[0] || expected[1] != parsed[1] {\n\t\t\tt.Errorf(\"Scaler parser error - Expected value %v MISMATCHED: Got %v\", expected, parsed)\n\t\t}\n\t}\n\n\tif len(expScalerParams.NodesToReplicas) != len(scalerParams.NodesToReplicas) {\n\t\tt.Errorf(\"Scaler Params length mismatch Expected: %d, Got %d\", len(expScalerParams.NodesToReplicas), len(scalerParams.NodesToReplicas))\n\t\treturn\n\t}\n\tfor n, expected := range expScalerParams.NodesToReplicas {\n\t\tparsed := scalerParams.NodesToReplicas[n]\n\t\tif expected[0] != parsed[0] || expected[1] != parsed[1] {\n\t\t\tt.Errorf(\"Scaler parser error - Expected value %v MISMATCHED: Got %v\", expected, parsed)\n\t\t}\n\t}\n}\n\nfunc TestControllerParser(t *testing.T) {\n\ttestCases := []struct {\n\t\tjsonData  string\n\t\texpError  bool\n\t\texpParams *ladderParams\n\t}{\n\t\t{\n\t\t\t`{ \"coresToReplicas\" : [ [1,1] ] }`,\n\t\t\tfalse,\n\t\t\t&ladderParams{CoresToReplicas: []paramEntry{{1, 1}}},\n\t\t},\n\t\t{ // Invalid JSON\n\t\t\t`{ \"coresToReplicas\" : {{ 1:1 } }`,\n\t\t\ttrue,\n\t\t\t&ladderParams{},\n\t\t},\n\t\t{ // Invalid string value in list\n\t\t\t`{ \"coresToReplicas\" : [[ \"1, \"a\"]] }`,\n\t\t\ttrue,\n\t\t\t&ladderParams{},\n\t\t},\n\t\t{ // Invalid negative in list\n\t\t\t`{ \"coresToReplicas\" : [[:-200]] }`,\n\t\t\ttrue,\n\t\t\t&ladderParams{},\n\t\t},\n\t\t// IncludeUnschedulableNodes must default to false for backwards compatibility.\n\t\t{\n\t\t\t`{\n\t\t\t\t\"coresToReplicas\":\n\t\t\t\t[\n\t\t\t\t\t[0, 0],\n\t\t\t\t\t[1, 0],\n\t\t\t\t\t[2, 2],\n\t\t\t\t\t[3, 3],\n\t\t\t\t\t[512, 5],\n\t\t\t\t\t[1024, 7],\n\t\t\t\t\t[2048, 10],\n\t\t\t\t\t[4096, 15],\n\t\t\t\t\t[8192, 20],\n\t\t\t\t\t[12288, 30],\n\t\t\t\t\t[16384, 40],\n\t\t\t\t\t[20480, 50],\n\t\t\t\t\t[24576, 60],\n\t\t\t\t\t[28672, 70],\n\t\t\t\t\t[65535, 100],\n\t\t\t\t\t[32768, 80 ]\n\t\t\t\t]\n\t\t\t}`,\n\t\t\tfalse,\n\t\t\t&ladderParams{\n\t\t\t\tCoresToReplicas: []paramEntry{\n\t\t\t\t\t{0, 0},\n\t\t\t\t\t{1, 0},\n\t\t\t\t\t{2, 2},\n\t\t\t\t\t{3, 3},\n\t\t\t\t\t{512, 5},\n\t\t\t\t\t{1024, 7},\n\t\t\t\t\t{2048, 10},\n\t\t\t\t\t{4096, 15},\n\t\t\t\t\t{8192, 20},\n\t\t\t\t\t{12288, 30},\n\t\t\t\t\t{16384, 40},\n\t\t\t\t\t{20480, 50},\n\t\t\t\t\t{24576, 60},\n\t\t\t\t\t{28672, 70},\n\t\t\t\t\t{65535, 100},\n\t\t\t\t\t{32768, 80},\n\t\t\t\t},\n\t\t\t\tIncludeUnschedulableNodes: false,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\t`{\n\t\t\t\t\"coresToReplicas\":\n\t\t\t\t[\n\t\t\t\t\t[0, 0],\n\t\t\t\t\t[1, 0],\n\t\t\t\t\t[2, 2],\n\t\t\t\t\t[3, 3]\n\t\t\t\t],\n\t\t\t\t\"nodesToReplicas\":\n\t\t\t\t[\n\t\t\t\t\t[1, 1],\n\t\t\t\t\t[2, 2],\n\t\t\t\t\t[3, 3]\n\t\t\t\t],\n\t\t\t\t\"includeUnschedulableNodes\": true\n\t\t\t}`,\n\t\t\tfalse,\n\t\t\t&ladderParams{\n\t\t\t\tCoresToReplicas: []paramEntry{\n\t\t\t\t\t{0, 0},\n\t\t\t\t\t{1, 0},\n\t\t\t\t\t{2, 2},\n\t\t\t\t\t{3, 3},\n\t\t\t\t},\n\t\t\t\tNodesToReplicas: []paramEntry{\n\t\t\t\t\t{1, 1},\n\t\t\t\t\t{2, 2},\n\t\t\t\t\t{3, 3},\n\t\t\t\t},\n\t\t\t\tIncludeUnschedulableNodes: true,\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, tc := range testCases {\n\t\tparams, err := parseParams([]byte(tc.jsonData))\n\t\tif tc.expError {\n\t\t\tif err == nil {\n\t\t\t\tt.Errorf(\"Unexpected parsing success. Expected failure\")\n\t\t\t\tspew.Dump(tc)\n\t\t\t\tspew.Dump(params)\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif err != nil && !tc.expError {\n\t\t\tt.Errorf(\"Unexpected parse failure: %v\", err)\n\t\t\tspew.Dump(tc)\n\t\t\tcontinue\n\t\t}\n\t\tverifyParams(t, params, tc.expParams)\n\t}\n}\n\nfunc TestControllerSorter(t *testing.T) {\n\ttestCases := []struct {\n\t\ttestParams *ladderParams\n\t\texpParams  *ladderParams\n\t}{\n\t\t{\n\t\t\t&ladderParams{\n\t\t\t\tCoresToReplicas: []paramEntry{\n\t\t\t\t\t{2, 2},\n\t\t\t\t\t{3, 3},\n\t\t\t\t\t{512, 5},\n\t\t\t\t\t{1024, 7},\n\t\t\t\t\t{20480, 50},\n\t\t\t\t\t{4096, 15},\n\t\t\t\t\t{2048, 10},\n\t\t\t\t\t{8192, 20},\n\t\t\t\t\t{65535, 100},\n\t\t\t\t\t{16384, 40},\n\t\t\t\t\t{12288, 30},\n\t\t\t\t\t{1, 1},\n\t\t\t\t\t{24576, 60},\n\t\t\t\t\t{32768, 80},\n\t\t\t\t\t{28672, 70},\n\t\t\t\t},\n\t\t\t},\n\t\t\t&ladderParams{\n\t\t\t\tCoresToReplicas: []paramEntry{\n\t\t\t\t\t{1, 1},\n\t\t\t\t\t{2, 2},\n\t\t\t\t\t{3, 3},\n\t\t\t\t\t{512, 5},\n\t\t\t\t\t{1024, 7},\n\t\t\t\t\t{2048, 10},\n\t\t\t\t\t{4096, 15},\n\t\t\t\t\t{8192, 20},\n\t\t\t\t\t{12288, 30},\n\t\t\t\t\t{16384, 40},\n\t\t\t\t\t{20480, 50},\n\t\t\t\t\t{24576, 60},\n\t\t\t\t\t{28672, 70},\n\t\t\t\t\t{32768, 80},\n\t\t\t\t\t{65535, 100},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\t&ladderParams{\n\t\t\t\tCoresToReplicas: []paramEntry{\n\t\t\t\t\t{65535, 100},\n\t\t\t\t\t{32768, 80},\n\t\t\t\t\t{28672, 70},\n\t\t\t\t\t{24576, 60},\n\t\t\t\t\t{20480, 50},\n\t\t\t\t\t{16384, 40},\n\t\t\t\t\t{12288, 30},\n\t\t\t\t\t{8192, 20},\n\t\t\t\t\t{4096, 15},\n\t\t\t\t\t{2048, 10},\n\t\t\t\t\t{1024, 7},\n\t\t\t\t\t{512, 5},\n\t\t\t\t\t{3, 3},\n\t\t\t\t\t{2, 2},\n\t\t\t\t\t{1, 1},\n\t\t\t\t},\n\t\t\t},\n\t\t\t&ladderParams{\n\t\t\t\tCoresToReplicas: []paramEntry{\n\t\t\t\t\t{1, 1},\n\t\t\t\t\t{2, 2},\n\t\t\t\t\t{3, 3},\n\t\t\t\t\t{512, 5},\n\t\t\t\t\t{1024, 7},\n\t\t\t\t\t{2048, 10},\n\t\t\t\t\t{4096, 15},\n\t\t\t\t\t{8192, 20},\n\t\t\t\t\t{12288, 30},\n\t\t\t\t\t{16384, 40},\n\t\t\t\t\t{20480, 50},\n\t\t\t\t\t{24576, 60},\n\t\t\t\t\t{28672, 70},\n\t\t\t\t\t{32768, 80},\n\t\t\t\t\t{65535, 100},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, tc := range testCases {\n\t\tsort.Sort(tc.testParams.CoresToReplicas)\n\t\tverifyParams(t, tc.testParams, tc.expParams)\n\t}\n}\n\nfunc TestControllerScaler(t *testing.T) {\n\ttestEntries := []paramEntry{\n\t\t{1, 1},\n\t\t{2, 2},\n\t\t{3, 3},\n\t\t{4, 4},\n\t\t{10, 10},\n\t\t{20, 20},\n\t}\n\n\ttestCases := []struct {\n\t\tnumResources int\n\t\texpReplicas  int\n\t}{\n\t\t{0, 1},\n\t\t{1, 1},\n\t\t{2, 2},\n\t\t{3, 3},\n\t\t{4, 4},\n\t\t{6, 4},\n\t\t{6, 4},\n\t\t{10, 10},\n\t\t{11, 10},\n\t\t{19, 10},\n\t\t{20, 20},\n\t\t{21, 20},\n\t\t{21, 20},\n\t\t{40, 20},\n\t}\n\n\tfor _, tc := range testCases {\n\t\tif replicas := getExpectedReplicasFromEntries(tc.numResources, testEntries); tc.expReplicas != replicas {\n\t\t\tt.Errorf(\"Scaler Lookup failed Expected %d, Got %d\", tc.expReplicas, replicas)\n\t\t}\n\t}\n}\n\nfunc TestControllerScalerFromZero(t *testing.T) {\n\ttestEntries := []paramEntry{\n\t\t{0, 0},\n\t\t{3, 3},\n\t}\n\n\ttestEntriesFromOne := []paramEntry{\n\t\t{1, 0},\n\t\t{3, 3},\n\t}\n\n\ttestCases := []struct {\n\t\tnumResources int\n\t\texpReplicas  int\n\t}{\n\t\t{0, 0},\n\t\t{1, 0},\n\t\t{2, 0},\n\t\t{3, 3},\n\t\t{4, 3},\n\t}\n\n\tfor _, tc := range testCases {\n\t\tif replicas := getExpectedReplicasFromEntries(tc.numResources, testEntries); tc.expReplicas != replicas {\n\t\t\tt.Errorf(\"Scaler Lookup failed Expected %d, Got %d\", tc.expReplicas, replicas)\n\t\t}\n\t\tif replicas := getExpectedReplicasFromEntries(tc.numResources, testEntriesFromOne); tc.expReplicas != replicas {\n\t\t\tt.Errorf(\"Scaler Lookup failed Expected %d, Got %d\", tc.expReplicas, replicas)\n\t\t}\n\t}\n}\n\nfunc TestScaleFromUnschedulableNodes(t *testing.T) {\n\tnodesToReplicas := []paramEntry{\n\t\t{0, 0},\n\t\t{1, 1},\n\t\t{2, 2},\n\t\t{3, 3},\n\t}\n\tcoresToReplicas := []paramEntry{\n\t\t{0, 0},\n\t\t{4, 1},\n\t\t{8, 2},\n\t\t{12, 3},\n\t}\n\n\ttestcases := []struct {\n\t\tclusterStatus           *k8sclient.ClusterStatus\n\t\texpectedReplicas        int32\n\t\tincludeSchedulableNodes bool\n\t}{\n\t\t{\n\t\t\tclusterStatus: &k8sclient.ClusterStatus{\n\t\t\t\tTotalNodes:       3,\n\t\t\t\tSchedulableNodes: 2,\n\t\t\t\tTotalCores:       12,\n\t\t\t\tSchedulableCores: 8,\n\t\t\t},\n\t\t\texpectedReplicas:        3,\n\t\t\tincludeSchedulableNodes: true,\n\t\t},\n\t\t{\n\t\t\tclusterStatus: &k8sclient.ClusterStatus{\n\t\t\t\tTotalNodes:       3,\n\t\t\t\tSchedulableNodes: 1,\n\t\t\t\tTotalCores:       12,\n\t\t\t\tSchedulableCores: 4,\n\t\t\t},\n\t\t\texpectedReplicas:        1,\n\t\t\tincludeSchedulableNodes: false,\n\t\t},\n\t}\n\n\tfor _, tc := range testcases {\n\t\tc := &LadderController{\n\t\t\tparams: &ladderParams{\n\t\t\t\tCoresToReplicas:           coresToReplicas,\n\t\t\t\tNodesToReplicas:           nodesToReplicas,\n\t\t\t\tIncludeUnschedulableNodes: tc.includeSchedulableNodes,\n\t\t\t},\n\t\t}\n\t\tactualReplicas, err := c.GetExpectedReplicas(tc.clusterStatus)\n\t\tif err != nil {\n\t\t\tt.Errorf(\"Unexpected error: %v\", err)\n\t\t\tspew.Dump(tc)\n\t\t\tcontinue\n\t\t}\n\t\tif tc.expectedReplicas != actualReplicas {\n\t\t\tt.Errorf(\"ScaleFromUnschedulableNodes failed Expected %d, Got %d\", tc.expectedReplicas, actualReplicas)\n\t\t\tspew.Dump(tc)\n\t\t\tcontinue\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "pkg/autoscaler/controller/linearcontroller/linear_controller.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage linearcontroller\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"math\"\n\n\t\"k8s.io/api/core/v1\"\n\n\t\"github.com/kubernetes-sigs/cluster-proportional-autoscaler/pkg/autoscaler/controller\"\n\t\"github.com/kubernetes-sigs/cluster-proportional-autoscaler/pkg/autoscaler/k8sclient\"\n\n\t\"github.com/golang/glog\"\n)\n\nvar _ = controller.Controller(&LinearController{})\n\nconst (\n\t// ControllerType defines the controller type string\n\tControllerType = \"linear\"\n)\n\n// LinearController uses linear control pattern\ntype LinearController struct {\n\tparams  *linearParams\n\tversion string\n}\n\n// NewLinearController returns a new linear controller\nfunc NewLinearController() controller.Controller {\n\treturn &LinearController{}\n}\n\ntype linearParams struct {\n\tCoresPerReplica           float64 `json:\"coresPerReplica\"`\n\tNodesPerReplica           float64 `json:\"nodesPerReplica\"`\n\tMin                       int     `json:\"min\"`\n\tMax                       int     `json:\"max\"`\n\tPreventSinglePointFailure bool    `json:\"preventSinglePointFailure\"`\n\tIncludeUnschedulableNodes bool    `json:\"includeUnschedulableNodes\"`\n}\n\nfunc (c *LinearController) SyncConfig(configMap *v1.ConfigMap) error {\n\tglog.V(0).Infof(\"ConfigMap version change (old: %s new: %s) - rebuilding params\", c.version, configMap.ObjectMeta.ResourceVersion)\n\tglog.V(2).Infof(\"Params from apiserver: \\n%v\", configMap.Data[ControllerType])\n\tparams, err := parseParams([]byte(configMap.Data[ControllerType]))\n\tif err != nil {\n\t\treturn fmt.Errorf(\"error parsing linear params: %s\", err)\n\t}\n\tc.params = params\n\tc.version = configMap.ObjectMeta.ResourceVersion\n\treturn nil\n}\n\n// parseParams Parse the params from JSON string\nfunc parseParams(data []byte) (*linearParams, error) {\n\tvar p linearParams\n\tif err := json.Unmarshal(data, &p); err != nil {\n\t\treturn nil, fmt.Errorf(\"could not parse parameters (%s)\", err)\n\t}\n\tif p.Min < 0 {\n\t\treturn nil, fmt.Errorf(\"invalid negative value for min: %v\", p.Min)\n\t} else if p.Min == 0 {\n\t\tglog.V(2).Infof(\"Defaulting min replicas count to 1 for linear controller\")\n\t\tp.Min = 1\n\t}\n\tif p.Max != 0 && p.Max < p.Min {\n\t\treturn nil, fmt.Errorf(\"max replicas count %v should be greater than / equal to min replicas count %v\", p.Max, p.Min)\n\t}\n\tif p.CoresPerReplica == 0 && p.NodesPerReplica == 0 {\n\t\treturn nil, fmt.Errorf(\"should at least provide either CoresPerReplica or NodesPerReplica (Greater than 0)\")\n\t}\n\tif p.CoresPerReplica < 0 {\n\t\treturn nil, fmt.Errorf(\"invalid negative value for coresPerReplica: %v\", p.CoresPerReplica)\n\t}\n\tif p.NodesPerReplica < 0 {\n\t\treturn nil, fmt.Errorf(\"invalid negative value for nodesPerReplica: %v\", p.NodesPerReplica)\n\t}\n\treturn &p, nil\n}\n\nfunc (c *LinearController) GetParamsVersion() string {\n\treturn c.version\n}\n\nfunc (c *LinearController) GetExpectedReplicas(status *k8sclient.ClusterStatus) (int32, error) {\n\t// Get the expected replicas for the currently number of nodes and cores\n\texpReplicas := int32(c.getExpectedReplicasFromParams(int(status.SchedulableNodes), int(status.SchedulableCores), int(status.TotalNodes), int(status.TotalCores)))\n\n\treturn expReplicas, nil\n}\n\nfunc (c *LinearController) getExpectedReplicasFromParams(schedulableNodes, schedulableCores, totalNodes, totalCores int) int {\n\tnodes := schedulableNodes\n\tcores := schedulableCores\n\tif c.params.IncludeUnschedulableNodes {\n\t\tnodes = totalNodes\n\t\tcores = totalCores\n\t}\n\treplicasFromCore := c.getExpectedReplicasFromParam(cores, c.params.CoresPerReplica)\n\treplicasFromNode := c.getExpectedReplicasFromParam(nodes, c.params.NodesPerReplica)\n\t// Prevent single point of failure by having at least 2 replicas when\n\t// there are more than one node.\n\tif c.params.PreventSinglePointFailure &&\n\t\tnodes > 1 &&\n\t\treplicasFromNode < 2 {\n\t\treplicasFromNode = 2\n\t}\n\n\t// Returns the results which yields the most replicas\n\tif replicasFromCore > replicasFromNode {\n\t\treturn replicasFromCore\n\t}\n\treturn replicasFromNode\n}\n\nfunc (c *LinearController) getExpectedReplicasFromParam(schedulableResources int, resourcesPerReplica float64) int {\n\tif resourcesPerReplica == 0 {\n\t\treturn 1\n\t}\n\tres := math.Ceil(float64(schedulableResources) / resourcesPerReplica)\n\tif c.params.Max != 0 {\n\t\tres = math.Min(float64(c.params.Max), res)\n\t}\n\treturn int(math.Max(float64(c.params.Min), res))\n}\n\nfunc (c *LinearController) GetControllerType() string {\n\treturn ControllerType\n}\n"
  },
  {
    "path": "pkg/autoscaler/controller/linearcontroller/linear_controller_test.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage linearcontroller\n\nimport (\n\t\"testing\"\n\n\t\"github.com/davecgh/go-spew/spew\"\n)\n\nfunc verifyParams(t *testing.T, scalerParams, expScalerParams *linearParams) {\n\tif scalerParams.CoresPerReplica != expScalerParams.CoresPerReplica ||\n\t\tscalerParams.NodesPerReplica != expScalerParams.NodesPerReplica ||\n\t\tscalerParams.Min != expScalerParams.Min ||\n\t\tscalerParams.Max != expScalerParams.Max {\n\t\tt.Errorf(\"Parser error - Expected params %v MISMATCHED: Got %v\", expScalerParams, scalerParams)\n\t}\n}\n\nfunc TestControllerParser(t *testing.T) {\n\ttestCases := []struct {\n\t\tjsonData  string\n\t\texpError  bool\n\t\texpParams *linearParams\n\t}{\n\t\t{\n\t\t\t`{\n\t\t      \"coresPerReplica\": 2,\n\t\t      \"nodesPerReplica\": 1,\n\t\t      \"min\": 1,\n\t\t      \"max\": 100,\n\t\t      \"preventSinglePointFailure\": true,\n\t\t      \"includeUnschedulableNodes\": true\n\t\t    }`,\n\t\t\tfalse,\n\t\t\t&linearParams{\n\t\t\t\tCoresPerReplica:           2,\n\t\t\t\tNodesPerReplica:           1,\n\t\t\t\tMin:                       1,\n\t\t\t\tMax:                       100,\n\t\t\t\tPreventSinglePointFailure: true,\n\t\t\t\tIncludeUnschedulableNodes: true,\n\t\t\t},\n\t\t},\n\t\t// IncludeUnschedulableNodes must default to false for backwards compatibility.\n\t\t{\n\t\t\t`{\n\t\t      \"coresPerReplica\": 2,\n\t\t      \"nodesPerReplica\": 1,\n\t\t      \"min\": 1,\n\t\t      \"max\": 100,\n\t\t    }`,\n\t\t\ttrue,\n\t\t\t&linearParams{\n\t\t\t\tCoresPerReplica:           2,\n\t\t\t\tNodesPerReplica:           1,\n\t\t\t\tMin:                       1,\n\t\t\t\tMax:                       100,\n\t\t\t\tPreventSinglePointFailure: true,\n\t\t\t\tIncludeUnschedulableNodes: false,\n\t\t\t},\n\t\t},\n\t\t{ // Invalid JSON\n\t\t\t`{ \"coresPerReplica\": {{ 1:1 } }`,\n\t\t\ttrue,\n\t\t\t&linearParams{},\n\t\t},\n\t\t{ // Invalid string value\n\t\t\t`{ \"coresPerReplica\": \"whatisthis\"`,\n\t\t\ttrue,\n\t\t\t&linearParams{},\n\t\t},\n\t\t{ // Invalid negative value\n\t\t\t`{ \"nodesPerReplica\":  -20 }`,\n\t\t\ttrue,\n\t\t\t&linearParams{},\n\t\t},\n\t\t{ // Invalid max that smaller tham min\n\t\t\t`{\n\t\t      \"nodesPerReplica\": 1,\n\t\t      \"min\": 100,\n\t\t      \"max\": 50\n\t\t    }`,\n\t\t\ttrue,\n\t\t\t&linearParams{},\n\t\t},\n\t\t{ // Both coresPerReplica and nodesPerReplica are unset\n\t\t\t`{\n\t\t      \"min\": 1,\n\t\t      \"max\": 100\n\t\t    }`,\n\t\t\ttrue,\n\t\t\t&linearParams{},\n\t\t},\n\t\t// Wrong input for PreventSinglePointFailure.\n\t\t{\n\t\t\t`{\n\t\t      \"coresPerReplica\": 2,\n\t\t      \"nodesPerReplica\": 1,\n\t\t      \"min\": 1,\n\t\t      \"max\": 100,\n\t\t      \"preventSinglePointFailure\": invalid,\n\t\t    }`,\n\t\t\ttrue,\n\t\t\t&linearParams{},\n\t\t},\n\t\t// Wrong input for IncludeUnschedulableNodes.\n\t\t{\n\t\t\t`{\n\t\t      \"coresPerReplica\": 2,\n\t\t      \"nodesPerReplica\": 1,\n\t\t      \"min\": 1,\n\t\t      \"max\": 100,\n\t\t      \"includeUnschedulableNodes\": invalid,\n\t\t    }`,\n\t\t\ttrue,\n\t\t\t&linearParams{},\n\t\t},\n\t}\n\n\tfor _, tc := range testCases {\n\t\tparams, err := parseParams([]byte(tc.jsonData))\n\t\tif tc.expError {\n\t\t\tif err == nil {\n\t\t\t\tt.Errorf(\"Unexpected parsing success. Expected failure\")\n\t\t\t\tspew.Dump(tc)\n\t\t\t\tspew.Dump(params)\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif err != nil && !tc.expError {\n\t\t\tt.Errorf(\"Unexpected parse failure: %v\", err)\n\t\t\tspew.Dump(tc)\n\t\t\tcontinue\n\t\t}\n\t\tverifyParams(t, params, tc.expParams)\n\t}\n}\n\nfunc TestScaleFromSingleParam(t *testing.T) {\n\ttestController := &LinearController{}\n\ttestController.params = &linearParams{\n\t\tCoresPerReplica: 2,\n\t\tMin:             2,\n\t\tMax:             100,\n\t}\n\n\ttestCases := []struct {\n\t\tnumResources int\n\t\texpReplicas  int\n\t}{\n\t\t{0, 2},\n\t\t{1, 2},\n\t\t{2, 2},\n\t\t{3, 2},\n\t\t{4, 2},\n\t\t{6, 3},\n\t\t{6, 3},\n\t\t{10, 5},\n\t\t{11, 6},\n\t\t{19, 10},\n\t\t{20, 10},\n\t\t{21, 11},\n\t\t{30, 15},\n\t\t{40, 20},\n\t}\n\n\tfor _, tc := range testCases {\n\t\tif replicas := testController.getExpectedReplicasFromParam(tc.numResources, testController.params.CoresPerReplica); tc.expReplicas != replicas {\n\t\t\tt.Errorf(\"Scaler Lookup failed Expected %d, Got %d\", tc.expReplicas, replicas)\n\t\t}\n\t}\n}\n\nfunc TestScaleFromMultipleParams(t *testing.T) {\n\ttestController := &LinearController{}\n\ttestController.params = &linearParams{\n\t\tCoresPerReplica:           2,\n\t\tNodesPerReplica:           2.5,\n\t\tMin:                       1,\n\t\tMax:                       100,\n\t\tPreventSinglePointFailure: true,\n\t\tIncludeUnschedulableNodes: false,\n\t}\n\n\ttestCases := []struct {\n\t\tnumCores    int\n\t\tnumNodes    int\n\t\texpReplicas int\n\t}{\n\t\t{0, 0, 1},\n\t\t{1, 2, 2},\n\t\t{2, 3, 2},\n\t\t{3, 4, 2},\n\t\t{4, 4, 2},\n\t\t{6, 4, 3},\n\t\t{6, 5, 3},\n\t\t{8, 5, 4},\n\t\t{8, 15, 6},\n\t\t{8, 16, 7},\n\t\t{19, 21, 10},\n\t\t{23, 20, 12},\n\t\t{26, 38, 16},\n\t\t{30, 49, 20},\n\t\t{40, 20, 20},\n\t}\n\n\tfor _, tc := range testCases {\n\t\tif replicas := testController.getExpectedReplicasFromParams(tc.numNodes, tc.numCores, tc.numNodes, tc.numNodes); tc.expReplicas != replicas {\n\t\t\tt.Errorf(\"Scaler Lookup failed for case %v: Expected %d, Got %d\", tc, tc.expReplicas, replicas)\n\t\t}\n\t}\n}\n\nfunc TestScaleFromUnschedulableNodes(t *testing.T) {\n\ttestController := &LinearController{}\n\ttestController.params = &linearParams{\n\t\tCoresPerReplica:           2,\n\t\tNodesPerReplica:           2,\n\t\tMin:                       1,\n\t\tMax:                       100,\n\t\tPreventSinglePointFailure: true,\n\t\tIncludeUnschedulableNodes: true,\n\t}\n\n\ttestCases := []struct {\n\t\tnumSchedulableCores int\n\t\tnumSchedulableNodes int\n\t\tnumCores            int\n\t\tnumNodes            int\n\t\texpReplicas         int\n\t}{\n\t\t{0, 0, 0, 0, 1},\n\t\t{1, 1, 1, 1, 1},\n\t\t{2, 2, 2, 2, 2},\n\t\t{4, 4, 4, 4, 2},\n\t\t{2, 2, 4, 4, 2},\n\t\t{8, 8, 8, 8, 4},\n\t\t{6, 6, 8, 8, 4},\n\t\t{21, 21, 210, 210, 100},\n\t}\n\n\tfor _, tc := range testCases {\n\t\tif replicas := testController.getExpectedReplicasFromParams(tc.numSchedulableNodes, tc.numSchedulableCores, tc.numNodes, tc.numNodes); tc.expReplicas != replicas {\n\t\t\tt.Errorf(\"Scaler Lookup failed for case %v: Expected %d, Got %d\", tc, tc.expReplicas, replicas)\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "pkg/autoscaler/controller/plugin/plugin.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage plugin\n\nimport (\n\t\"fmt\"\n\n\t\"k8s.io/api/core/v1\"\n\n\t\"github.com/kubernetes-sigs/cluster-proportional-autoscaler/pkg/autoscaler/controller\"\n\t\"github.com/kubernetes-sigs/cluster-proportional-autoscaler/pkg/autoscaler/controller/laddercontroller\"\n\t\"github.com/kubernetes-sigs/cluster-proportional-autoscaler/pkg/autoscaler/controller/linearcontroller\"\n\n\t\"github.com/golang/glog\"\n)\n\n// EnsureController ensures controller type and scaling params\nfunc EnsureController(cont controller.Controller, configMap *v1.ConfigMap) (controller.Controller, error) {\n\t// Expect only one entry, which uses the name of control mode as the key\n\tif len(configMap.Data) != 1 {\n\t\treturn nil, fmt.Errorf(\"invalid configMap format, expected only one entry, got: %v\", configMap.Data)\n\t}\n\tfor mode := range configMap.Data {\n\t\t// No need to reset controller if control pattern doesn't change\n\t\tif cont != nil && mode == cont.GetControllerType() {\n\t\t\tbreak\n\t\t}\n\t\tswitch mode {\n\t\tcase laddercontroller.ControllerType:\n\t\t\tcont = laddercontroller.NewLadderController()\n\t\tcase linearcontroller.ControllerType:\n\t\t\tcont = linearcontroller.NewLinearController()\n\t\tdefault:\n\t\t\treturn nil, fmt.Errorf(\"not a supported control mode: %v\", mode)\n\t\t}\n\t\tglog.V(1).Infof(\"Set control mode to %v\", mode)\n\t}\n\n\t// Sync config with controller\n\tif err := cont.SyncConfig(configMap); err != nil {\n\t\treturn nil, fmt.Errorf(\"Error syncing configMap with controller: %v\", err)\n\t}\n\treturn cont, nil\n}\n"
  },
  {
    "path": "pkg/autoscaler/controller/plugin/plugin_test.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage plugin\n\nimport (\n\t\"testing\"\n\n\t\"k8s.io/api/core/v1\"\n)\n\nfunc TestEnsureController(t *testing.T) {\n\ttestCases := []struct {\n\t\tconfigMap *v1.ConfigMap\n\t\texpError  bool\n\t}{\n\t\t{\n\t\t\t&v1.ConfigMap{\n\t\t\t\tData: map[string]string{\n\t\t\t\t\t\"invalidmode\": \"\",\n\t\t\t\t},\n\t\t\t},\n\t\t\ttrue,\n\t\t},\n\t\t{\n\t\t\t&v1.ConfigMap{\n\t\t\t\tData: map[string]string{\n\t\t\t\t\t\"toomanyentries1\": \"\",\n\t\t\t\t\t\"toomanyentries2\": \"\",\n\t\t\t\t},\n\t\t\t},\n\t\t\ttrue,\n\t\t},\n\t\t{\n\t\t\t&v1.ConfigMap{\n\t\t\t\tData: map[string]string{\n\t\t\t\t\t\"linear\": \"{\\\"nodesPerReplica\\\":1}\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tfalse,\n\t\t},\n\t}\n\n\tfor _, tc := range testCases {\n\t\t_, err := EnsureController(nil, tc.configMap)\n\t\tif err != nil && !tc.expError {\n\t\t\tt.Errorf(\"Expect no error, got error for configMap %v, error msg: %v\", tc.configMap, err)\n\t\t\tcontinue\n\t\t} else if err == nil && tc.expError {\n\t\t\tt.Errorf(\"Expect error, got no error for configMap %v, error msg: %v\", tc.configMap, err)\n\t\t\tcontinue\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "pkg/autoscaler/doc.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package autoscaler implements logic to poll the k8s apiserver for cluster status,\n// and update the replicas number of a deployment/rc/rs based on current status.\npackage autoscaler\n"
  },
  {
    "path": "pkg/autoscaler/health.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage autoscaler\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"sync\"\n\n\t\"github.com/golang/glog\"\n)\n\ntype healthInfo struct {\n\tm           sync.Mutex\n\tlastError   error\n\tfailedCount int\n}\n\nfunc newHealthInfo() *healthInfo {\n\treturn &healthInfo{m: sync.Mutex{}, lastError: nil, failedCount: 0}\n}\n\nfunc (h *healthInfo) setLastPollError(err error) int {\n\th.m.Lock()\n\tdefer h.m.Unlock()\n\th.lastError = err\n\tif h.lastError == nil {\n\t\th.failedCount = 0\n\t} else {\n\t\th.failedCount++\n\t}\n\treturn h.failedCount\n}\n\nfunc (h *healthInfo) getLastPollError() error {\n\th.m.Lock()\n\tdefer h.m.Unlock()\n\treturn h.lastError\n}\n\ntype HealthServer interface {\n\tStart()\n}\n\ntype httpHealthServer struct {\n\tlastPollCycleHealth *healthInfo\n}\n\nfunc (hs *httpHealthServer) Start() {\n\thttp.HandleFunc(\"/healthz\", func(w http.ResponseWriter, req *http.Request) {})\n\thttp.HandleFunc(\"/last-poll\", hs.lastPollFn)\n\tglog.Fatal(http.ListenAndServe(\":8080\", nil))\n}\n\nfunc (hs *httpHealthServer) lastPollFn(w http.ResponseWriter, req *http.Request) {\n\tif err := hs.lastPollCycleHealth.getLastPollError(); err != nil {\n\t\tw.WriteHeader(500)\n\t\t_, _ = w.Write([]byte(fmt.Sprintf(\"Encountered error at last poll cycle: %v\", err)))\n\t\treturn\n\t}\n}\n"
  },
  {
    "path": "pkg/autoscaler/k8sclient/k8sclient.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage k8sclient\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"strings\"\n\n\tautoscalingv1 \"k8s.io/api/autoscaling/v1\"\n\tv1 \"k8s.io/api/core/v1\"\n\textensionsv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tapierrors \"k8s.io/apimachinery/pkg/api/errors\"\n\t\"k8s.io/apimachinery/pkg/api/resource\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/labels\"\n\t\"k8s.io/client-go/informers\"\n\t\"k8s.io/client-go/kubernetes\"\n\tcorelisters \"k8s.io/client-go/listers/core/v1\"\n\t\"k8s.io/client-go/rest\"\n\n\t\"github.com/golang/glog\"\n)\n\n// K8sClient - Wraps all needed client functionalities for autoscaler\ntype K8sClient interface {\n\t// FetchConfigMap fetches the requested configmap from the Apiserver\n\tFetchConfigMap(namespace, configmap string) (*v1.ConfigMap, error)\n\t// CreateConfigMap creates a configmap with given namespace, name and params\n\tCreateConfigMap(namespace, configmap string, params map[string]string) (*v1.ConfigMap, error)\n\t// UpdateConfigMap updates a configmap with given namespace, name and params\n\tUpdateConfigMap(namespace, configmap string, params map[string]string) (*v1.ConfigMap, error)\n\t// GetClusterStatus counts schedulable nodes and cores in the cluster\n\tGetClusterStatus() (clusterStatus *ClusterStatus, err error)\n\t// GetNamespace returns the namespace of target resource.\n\tGetNamespace() (namespace string)\n\t// UpdateReplicas updates the number of replicas for the resource and return the previous replicas count\n\tUpdateReplicas(expReplicas int32) (err error)\n}\n\n// k8sClient - Wraps all Kubernetes API client functionalities\ntype k8sClient struct {\n\tscaleTargets  *scaleTargets\n\tclientset     kubernetes.Interface\n\tclusterStatus *ClusterStatus\n\tnodeLister    corelisters.NodeLister\n\tstopCh        chan struct{}\n}\n\nfunc getTrimmedNodeClients(clientset kubernetes.Interface, labelOptions informers.SharedInformerOption) (informers.SharedInformerFactory, corelisters.NodeLister, error) {\n\tfactory := informers.NewSharedInformerFactoryWithOptions(clientset, 0, labelOptions)\n\tnodeInformer := factory.Core().V1().Nodes().Informer()\n\terr := nodeInformer.SetTransform(func(obj any) (any, error) {\n\t\t// Trimming unneeded fields to reduce memory consumption under large-scale.\n\t\tif node, ok := obj.(*v1.Node); ok {\n\t\t\tnode.ObjectMeta = metav1.ObjectMeta{\n\t\t\t\tName: node.Name,\n\t\t\t}\n\t\t\tnode.Spec = v1.NodeSpec{\n\t\t\t\tUnschedulable: node.Spec.Unschedulable,\n\t\t\t}\n\t\t\tnode.Status = v1.NodeStatus{\n\t\t\t\tAllocatable: node.Status.Allocatable,\n\t\t\t\tConditions:  node.Status.Conditions,\n\t\t\t}\n\t\t}\n\t\treturn obj, nil\n\t})\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\tnodeLister := factory.Core().V1().Nodes().Lister()\n\treturn factory, nodeLister, nil\n}\n\n// NewK8sClient gives a k8sClient with the given dependencies.\nfunc NewK8sClient(clientset kubernetes.Interface, namespace, target string, nodelabels string) (K8sClient, error) {\n\t// Start the informer to list and watch nodes.\n\tstopCh := make(chan struct{})\n\tlabelOptions := informers.WithTweakListOptions(func(opts *metav1.ListOptions) {\n\t\topts.LabelSelector = nodelabels\n\t})\n\tfactory, nodeLister, err := getTrimmedNodeClients(clientset, labelOptions)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tfactory.Start(stopCh)\n\tfactory.WaitForCacheSync(stopCh)\n\n\tscaleTargets, err := getScaleTargets(target, namespace)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &k8sClient{\n\t\tscaleTargets: scaleTargets,\n\t\tclientset:    clientset,\n\t\tnodeLister:   nodeLister,\n\t\tstopCh:       stopCh,\n\t}, nil\n}\n\nfunc getScaleTargets(targets, namespace string) (*scaleTargets, error) {\n\tst := &scaleTargets{targets: []target{}, namespace: namespace}\n\n\tfor _, el := range strings.Split(targets, \",\") {\n\t\tel := strings.TrimSpace(el)\n\t\ttarget, err := getTarget(el)\n\t\tif err != nil {\n\t\t\treturn &scaleTargets{}, fmt.Errorf(\"target format error: %v\", targets)\n\t\t}\n\t\tst.targets = append(st.targets, target)\n\t}\n\treturn st, nil\n}\n\nfunc getTarget(t string) (target, error) {\n\tsplits := strings.Split(t, \"/\")\n\tif len(splits) != 2 {\n\t\treturn target{}, fmt.Errorf(\"target format error: %v\", t)\n\t}\n\tkind := splits[0]\n\tname := splits[1]\n\treturn target{kind, name}, nil\n}\n\ntype target struct {\n\tkind string\n\tname string\n}\n\n// scaleTargets stores the scalable target resources\ntype scaleTargets struct {\n\ttargets   []target\n\tnamespace string\n}\n\nfunc (k *k8sClient) GetNamespace() (namespace string) {\n\treturn k.scaleTargets.namespace\n}\n\nfunc (k *k8sClient) FetchConfigMap(namespace, configmap string) (*v1.ConfigMap, error) {\n\tcm, err := k.clientset.CoreV1().ConfigMaps(namespace).Get(context.TODO(), configmap, metav1.GetOptions{})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn cm, nil\n}\n\nfunc (k *k8sClient) CreateConfigMap(namespace, configmap string, params map[string]string) (*v1.ConfigMap, error) {\n\tprovidedConfigMap := v1.ConfigMap{}\n\tprovidedConfigMap.ObjectMeta.Name = configmap\n\tprovidedConfigMap.ObjectMeta.Namespace = namespace\n\tprovidedConfigMap.Data = params\n\tcm, err := k.clientset.CoreV1().ConfigMaps(namespace).Create(context.TODO(), &providedConfigMap, metav1.CreateOptions{})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tglog.V(0).Infof(\"Created ConfigMap %v in namespace %v\", configmap, namespace)\n\treturn cm, nil\n}\n\nfunc (k *k8sClient) UpdateConfigMap(namespace, configmap string, params map[string]string) (*v1.ConfigMap, error) {\n\tprovidedConfigMap := v1.ConfigMap{}\n\tprovidedConfigMap.ObjectMeta.Name = configmap\n\tprovidedConfigMap.ObjectMeta.Namespace = namespace\n\tprovidedConfigMap.Data = params\n\tcm, err := k.clientset.CoreV1().ConfigMaps(namespace).Update(context.TODO(), &providedConfigMap, metav1.UpdateOptions{})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tglog.V(0).Infof(\"Updated ConfigMap %v in namespace %v\", configmap, namespace)\n\treturn cm, nil\n}\n\n// ClusterStatus defines the cluster status\ntype ClusterStatus struct {\n\tTotalNodes       int32\n\tSchedulableNodes int32\n\tTotalCores       int32\n\tSchedulableCores int32\n}\n\n// isNodeReady checks if a node is in the \"Ready\" state.\nfunc isNodeReady(node *v1.Node) bool {\n\tfor _, condition := range node.Status.Conditions {\n\t\tif condition.Type == v1.NodeReady && condition.Status == v1.ConditionTrue {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc (k *k8sClient) GetClusterStatus() (clusterStatus *ClusterStatus, err error) {\n\tnodes, err := k.nodeLister.List(labels.NewSelector())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tclusterStatus = &ClusterStatus{}\n\tclusterStatus.TotalNodes = int32(len(nodes))\n\tvar tc resource.Quantity\n\tvar sc resource.Quantity\n\tfor _, node := range nodes {\n\t\ttc.Add(node.Status.Allocatable[v1.ResourceCPU])\n\t\tif !node.Spec.Unschedulable && isNodeReady(node) {\n\t\t\tclusterStatus.SchedulableNodes++\n\t\t\tsc.Add(node.Status.Allocatable[v1.ResourceCPU])\n\t\t}\n\t}\n\n\tclusterStatus.TotalCores = int32(tc.Value())\n\tclusterStatus.SchedulableCores = int32(sc.Value())\n\tk.clusterStatus = clusterStatus\n\treturn clusterStatus, nil\n}\n\nfunc (k *k8sClient) UpdateReplicas(expReplicas int32) (err error) {\n\tfor _, target := range k.scaleTargets.targets {\n\t\t_, err := k.UpdateTargetReplicas(expReplicas, target)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (k *k8sClient) UpdateTargetReplicas(expReplicas int32, target target) (prevReplicas int32, err error) {\n\tprevReplicas, err = k.updateReplicasAppsV1(expReplicas, target)\n\tif err == nil || !apierrors.IsForbidden(err) {\n\t\treturn prevReplicas, err\n\t}\n\tglog.V(1).Infof(\"Falling back to extensions/v1beta1, error using apps/v1: %v\", err)\n\n\t// Fall back to using the extensions API if we get a forbidden error\n\tscale, err := k.getScaleExtensionsV1beta1(&target)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tprevReplicas = scale.Spec.Replicas\n\tif expReplicas != prevReplicas {\n\t\tglog.V(0).Infof(\n\t\t\t\"Cluster status: SchedulableNodes[%v], TotalNodes[%v], SchedulableCores[%v], TotalCores[%v]\",\n\t\t\tk.clusterStatus.SchedulableNodes,\n\t\t\tk.clusterStatus.TotalNodes,\n\t\t\tk.clusterStatus.SchedulableCores,\n\t\t\tk.clusterStatus.TotalCores)\n\t\tglog.V(0).Infof(\"Replicas are not as expected : updating %s/%s from %d to %d\",\n\t\t\ttarget.kind,\n\t\t\ttarget.name,\n\t\t\tprevReplicas,\n\t\t\texpReplicas)\n\t\tscale.Spec.Replicas = expReplicas\n\t\t_, err = k.updateScaleExtensionsV1beta1(&target, scale)\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t}\n\treturn prevReplicas, nil\n}\n\nfunc (k *k8sClient) getScaleExtensionsV1beta1(target *target) (*extensionsv1beta1.Scale, error) {\n\topt := metav1.GetOptions{}\n\tswitch strings.ToLower(target.kind) {\n\tcase \"deployment\", \"deployments\":\n\t\treturn k.clientset.ExtensionsV1beta1().Deployments(k.scaleTargets.namespace).GetScale(context.TODO(), target.name, opt)\n\tcase \"replicaset\", \"replicasets\":\n\t\treturn k.clientset.ExtensionsV1beta1().ReplicaSets(k.scaleTargets.namespace).GetScale(context.TODO(), target.name, opt)\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"unsupported target kind: %v\", target.kind)\n\t}\n}\n\nfunc (k *k8sClient) updateScaleExtensionsV1beta1(target *target, scale *extensionsv1beta1.Scale) (*extensionsv1beta1.Scale, error) {\n\tswitch strings.ToLower(target.kind) {\n\tcase \"deployment\", \"deployments\":\n\t\treturn k.clientset.ExtensionsV1beta1().Deployments(k.scaleTargets.namespace).UpdateScale(context.TODO(), target.name, scale, metav1.UpdateOptions{})\n\tcase \"replicaset\", \"replicasets\":\n\t\treturn k.clientset.ExtensionsV1beta1().ReplicaSets(k.scaleTargets.namespace).UpdateScale(context.TODO(), target.name, scale, metav1.UpdateOptions{})\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"unsupported target kind: %v\", target.kind)\n\t}\n}\n\nfunc (k *k8sClient) updateReplicasAppsV1(expReplicas int32, target target) (prevReplicas int32, err error) {\n\treq, err := requestForTarget(k.clientset.AppsV1().RESTClient().Get(), &target, k.scaleTargets.namespace)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\tscale := &autoscalingv1.Scale{}\n\tif err = req.Do(context.TODO()).Into(scale); err != nil {\n\t\treturn 0, err\n\t}\n\n\tprevReplicas = scale.Spec.Replicas\n\tif expReplicas != prevReplicas {\n\t\tglog.V(0).Infof(\n\t\t\t\"Cluster status: SchedulableNodes[%v], TotalNodes[%v], SchedulableCores[%v], TotalCores[%v]\",\n\t\t\tk.clusterStatus.SchedulableNodes,\n\t\t\tk.clusterStatus.TotalNodes,\n\t\t\tk.clusterStatus.SchedulableCores,\n\t\t\tk.clusterStatus.TotalCores)\n\t\tglog.V(0).Infof(\"Replicas are not as expected : updating %s/%s from %d to %d\",\n\t\t\ttarget.kind,\n\t\t\ttarget.name,\n\t\t\tprevReplicas,\n\t\t\texpReplicas)\n\t\tscale.Spec.Replicas = expReplicas\n\t\treq, err = requestForTarget(k.clientset.AppsV1().RESTClient().Put(), &target, k.scaleTargets.namespace)\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\tif err = req.Body(scale).Do(context.TODO()).Error(); err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t}\n\n\treturn prevReplicas, nil\n}\n\nfunc requestForTarget(req *rest.Request, target *target, namespace string) (*rest.Request, error) {\n\tvar absPath, resource string\n\t// Support the kinds we allowed scaling via the extensions API group\n\t// TODO: switch to use the polymorphic scale client once client-go versions are updated\n\tswitch strings.ToLower(target.kind) {\n\tcase \"deployment\", \"deployments\":\n\t\tabsPath = \"/apis/apps/v1\"\n\t\tresource = \"deployments\"\n\tcase \"replicaset\", \"replicasets\":\n\t\tabsPath = \"/apis/apps/v1\"\n\t\tresource = \"replicasets\"\n\tcase \"statefulset\", \"statefulsets\":\n\t\tabsPath = \"/apis/apps/v1\"\n\t\tresource = \"statefulsets\"\n\tcase \"replicationcontroller\", \"replicationcontrollers\":\n\t\tabsPath = \"/api/v1\"\n\t\tresource = \"replicationcontrollers\"\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"unsupported target kind: %v\", target.kind)\n\t}\n\n\treturn req.AbsPath(absPath).Namespace(namespace).Resource(resource).Name(target.name).SubResource(\"scale\"), nil\n}\n"
  },
  {
    "path": "pkg/autoscaler/k8sclient/k8sclient_test.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage k8sclient\n\nimport (\n\t\"context\"\n\t\"testing\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\t\"k8s.io/apimachinery/pkg/api/resource\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/labels\"\n\t\"k8s.io/client-go/informers\"\n\t\"k8s.io/client-go/kubernetes/fake\"\n)\n\nfunc TestGetTarget(t *testing.T) {\n\ttestCases := []struct {\n\t\ttarget   string\n\t\texpKind  string\n\t\texpName  string\n\t\texpError bool\n\t}{\n\t\t{\n\t\t\t\"deployment/anything\",\n\t\t\t\"deployment\",\n\t\t\t\"anything\",\n\t\t\tfalse,\n\t\t},\n\t\t{\n\t\t\t\"replicationcontroller/anotherthing\",\n\t\t\t\"replicationcontroller\",\n\t\t\t\"anotherthing\",\n\t\t\tfalse,\n\t\t},\n\t\t{\n\t\t\t\"replicationcontroller\",\n\t\t\t\"\",\n\t\t\t\"\",\n\t\t\ttrue,\n\t\t},\n\t\t{\n\t\t\t\"replicaset/anything/what\",\n\t\t\t\"\",\n\t\t\t\"\",\n\t\t\ttrue,\n\t\t},\n\t}\n\n\tfor _, tc := range testCases {\n\t\tres, err := getTarget(tc.target)\n\t\tif err != nil && !tc.expError {\n\t\t\tt.Errorf(\"Expect no error, got error for target: %v\", tc.target)\n\t\t\tcontinue\n\t\t} else if err == nil && tc.expError {\n\t\t\tt.Errorf(\"Expect error, got no error for target: %v\", tc.target)\n\t\t\tcontinue\n\t\t}\n\t\tif res.kind != tc.expKind || res.name != tc.expName {\n\t\t\tt.Errorf(\"Expect kind: %v, name: %v\\ngot kind: %v, name: %v\", tc.expKind, tc.expName, res.kind, res.name)\n\t\t}\n\t}\n}\n\nfunc TestGetScaleTargets(t *testing.T) {\n\ttestCases := []struct {\n\t\ttarget          string\n\t\texpScaleTargets *scaleTargets\n\t\texpError        bool\n\t}{\n\t\t{\n\t\t\t\"deployment/anything\",\n\t\t\t&scaleTargets{\n\t\t\t\ttargets: []target{\n\t\t\t\t\t{kind: \"deployment\", name: \"anything\"},\n\t\t\t\t},\n\t\t\t},\n\t\t\tfalse,\n\t\t},\n\t\t{\n\t\t\t\"deployment/first,deployment/second\",\n\t\t\t&scaleTargets{\n\t\t\t\ttargets: []target{\n\t\t\t\t\t{kind: \"deployment\", name: \"first\"},\n\t\t\t\t\t{kind: \"deployment\", name: \"second\"},\n\t\t\t\t},\n\t\t\t},\n\t\t\tfalse,\n\t\t},\n\t\t{\n\t\t\t\"deployment/first, deployment/second\",\n\t\t\t&scaleTargets{\n\t\t\t\ttargets: []target{\n\t\t\t\t\t{kind: \"deployment\", name: \"first\"},\n\t\t\t\t\t{kind: \"deployment\", name: \"second\"},\n\t\t\t\t},\n\t\t\t},\n\t\t\tfalse,\n\t\t},\n\t\t{\n\t\t\t\"deployment/first deployment/second\",\n\t\t\t&scaleTargets{\n\t\t\t\ttargets: []target{\n\t\t\t\t\t{kind: \"deployment\", name: \"first\"},\n\t\t\t\t\t{kind: \"deployment\", name: \"second\"},\n\t\t\t\t},\n\t\t\t},\n\t\t\ttrue,\n\t\t},\n\t}\n\n\tfor _, tc := range testCases {\n\t\tres, err := getScaleTargets(tc.target, \"default\")\n\t\tif err != nil && !tc.expError {\n\t\t\tt.Errorf(\"Expect no error, got error for target: %v\", tc.target)\n\t\t\tcontinue\n\t\t} else if err == nil && tc.expError {\n\t\t\tt.Errorf(\"Expect error, got no error for target: %v\", tc.target)\n\t\t\tcontinue\n\t\t}\n\t\tif len(res.targets) != len(tc.expScaleTargets.targets) && !tc.expError {\n\t\t\tt.Errorf(\"Expected targets vs resulted targets should be the same length: %v vs %v\", len(tc.expScaleTargets.targets), len(res.targets))\n\t\t\tcontinue\n\t\t}\n\t\tfor i, resTarget := range res.targets {\n\t\t\tif resTarget.kind != tc.expScaleTargets.targets[i].kind ||\n\t\t\t\tresTarget.name != tc.expScaleTargets.targets[i].name {\n\t\t\t\tt.Errorf(\"Expect kind: %v, name: %v\\ngot kind: %v, name: %v\", tc.expScaleTargets.targets[i].kind,\n\t\t\t\t\ttc.expScaleTargets.targets[i].name, resTarget.kind, resTarget.name)\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc TestNewK8sClient(t *testing.T) {\n\tclient := fake.NewSimpleClientset()\n\n\t// Create the test nodes beforehand.\n\tnodeLabels := \"app=autoscaler\"\n\tq1, _ := resource.ParseQuantity(\"1000m\")\n\tq2, _ := resource.ParseQuantity(\"2000m\")\n\tq3, _ := resource.ParseQuantity(\"3000m\")\n\tq4, _ := resource.ParseQuantity(\"4000m\")\n\n\treadyConditions := []v1.NodeCondition{\n\t\t{Type: v1.NodeReady, Status: v1.ConditionTrue},\n\t}\n\tnotReadyConditions := []v1.NodeCondition{\n\t\t{Type: v1.NodeReady, Status: v1.ConditionFalse},\n\t}\n\n\ttestNode1 := &v1.Node{\n\t\tObjectMeta: metav1.ObjectMeta{\n\t\t\tName: \"test-node-1\",\n\t\t\tLabels: map[string]string{\n\t\t\t\t\"app\": \"autoscaler\",\n\t\t\t},\n\t\t\tAnnotations: map[string]string{\n\t\t\t\t\"eating-memory\": \"a-lot\",\n\t\t\t\t\"oom\":           \"on-the-way\",\n\t\t\t},\n\t\t},\n\t\tSpec: v1.NodeSpec{\n\t\t\tUnschedulable: false,\n\t\t\tPodCIDR:       \"10.0.1.0/24\",\n\t\t},\n\t\tStatus: v1.NodeStatus{\n\t\t\tAllocatable: v1.ResourceList{\n\t\t\t\tv1.ResourceCPU: q1,\n\t\t\t},\n\t\t\tPhase:      v1.NodeRunning,\n\t\t\tConditions: readyConditions,\n\t\t},\n\t}\n\ttestNode2 := &v1.Node{\n\t\tObjectMeta: metav1.ObjectMeta{\n\t\t\tName: \"test-node-2\",\n\t\t\tLabels: map[string]string{\n\t\t\t\t\"app\": \"autoscaler\",\n\t\t\t},\n\t\t\tAnnotations: map[string]string{\n\t\t\t\t\"eating-memory\": \"a-lot\",\n\t\t\t\t\"oom\":           \"on-the-way\",\n\t\t\t},\n\t\t},\n\t\tSpec: v1.NodeSpec{\n\t\t\tUnschedulable: false,\n\t\t\tPodCIDR:       \"10.0.2.0/24\",\n\t\t},\n\t\tStatus: v1.NodeStatus{\n\t\t\tAllocatable: v1.ResourceList{\n\t\t\t\tv1.ResourceCPU: q2,\n\t\t\t},\n\t\t\tPhase:      v1.NodeRunning,\n\t\t\tConditions: readyConditions,\n\t\t},\n\t}\n\t// testNode3 has Unschedulable set to true.\n\ttestNode3 := &v1.Node{\n\t\tObjectMeta: metav1.ObjectMeta{\n\t\t\tName: \"test-node-3\",\n\t\t\tLabels: map[string]string{\n\t\t\t\t\"app\": \"autoscaler\",\n\t\t\t},\n\t\t\tAnnotations: map[string]string{\n\t\t\t\t\"eating-memory\": \"a-lot\",\n\t\t\t\t\"oom\":           \"on-the-way\",\n\t\t\t},\n\t\t},\n\t\tSpec: v1.NodeSpec{\n\t\t\tUnschedulable: true,\n\t\t\tPodCIDR:       \"10.0.3.0/24\",\n\t\t},\n\t\tStatus: v1.NodeStatus{\n\t\t\tAllocatable: v1.ResourceList{\n\t\t\t\tv1.ResourceCPU: q3,\n\t\t\t},\n\t\t\tPhase: v1.NodeRunning,\n\t\t},\n\t}\n\t// testNode4 uses labels that don't match.\n\ttestNode4 := &v1.Node{\n\t\tObjectMeta: metav1.ObjectMeta{\n\t\t\tName: \"test-node-4\",\n\t\t\tLabels: map[string]string{\n\t\t\t\t\"app\": \"something-else\",\n\t\t\t},\n\t\t\tAnnotations: map[string]string{\n\t\t\t\t\"eating-memory\": \"a-lot\",\n\t\t\t\t\"oom\":           \"on-the-way\",\n\t\t\t},\n\t\t},\n\t\tSpec: v1.NodeSpec{\n\t\t\tUnschedulable: false,\n\t\t\tPodCIDR:       \"10.0.4.0/24\",\n\t\t},\n\t\tStatus: v1.NodeStatus{\n\t\t\tAllocatable: v1.ResourceList{\n\t\t\t\tv1.ResourceCPU: q4,\n\t\t\t},\n\t\t\tPhase: v1.NodeRunning,\n\t\t},\n\t}\n\t// testNode5 has Unschedulable set to false, but it's not Ready according to Status.Conditions.\n\ttestNode5 := &v1.Node{\n\t\tObjectMeta: metav1.ObjectMeta{\n\t\t\tName: \"test-node-5\",\n\t\t\tLabels: map[string]string{\n\t\t\t\t\"app\": \"autoscaler\",\n\t\t\t},\n\t\t\tAnnotations: map[string]string{\n\t\t\t\t\"eating-memory\": \"a-lot\",\n\t\t\t\t\"oom\":           \"on-the-way\",\n\t\t\t},\n\t\t},\n\t\tSpec: v1.NodeSpec{\n\t\t\tUnschedulable: false,\n\t\t\tPodCIDR:       \"10.0.3.0/24\",\n\t\t},\n\t\tStatus: v1.NodeStatus{\n\t\t\tAllocatable: v1.ResourceList{\n\t\t\t\tv1.ResourceCPU: q3,\n\t\t\t},\n\t\t\tPhase:      v1.NodeRunning,\n\t\t\tConditions: notReadyConditions,\n\t\t},\n\t}\n\n\tfor _, node := range []*v1.Node{testNode1, testNode2, testNode3, testNode4, testNode5} {\n\t\t_, err := client.CoreV1().Nodes().Create(context.Background(), node, metav1.CreateOptions{})\n\t\tif err != nil {\n\t\t\tt.Fatal(err)\n\t\t}\n\t}\n\n\tk8sClient, err := NewK8sClient(client, \"test-namespace\", \"deployment/test-target\", nodeLabels)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tstatus, err := k8sClient.GetClusterStatus()\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tif status.TotalNodes != 4 {\n\t\tt.Errorf(\"status.TotalNodes=%v, want 3\", status.TotalNodes)\n\t}\n\tif status.SchedulableNodes != 2 {\n\t\tt.Errorf(\"status.SchedulableNodes=%v, want 2\", status.SchedulableNodes)\n\t}\n\tif status.TotalCores != 9 {\n\t\tt.Errorf(\"status.TotalCores=%v, want 6\", status.TotalCores)\n\t}\n\tif status.SchedulableCores != 3 {\n\t\tt.Errorf(\"status.SchedulableCore=%v, want 3\", status.SchedulableCores)\n\t}\n}\n\nfunc TestGetTrimmedNodeClients(t *testing.T) {\n\tclient := fake.NewSimpleClientset()\n\n\t// Create the test node beforehand.\n\tq1, _ := resource.ParseQuantity(\"1000m\")\n\ttestNode1 := &v1.Node{\n\t\tObjectMeta: metav1.ObjectMeta{\n\t\t\tName: \"test-node-1\",\n\t\t\tLabels: map[string]string{\n\t\t\t\t\"app\": \"autoscaler\",\n\t\t\t},\n\t\t\tAnnotations: map[string]string{\n\t\t\t\t\"eating-memory\": \"a-lot\",\n\t\t\t\t\"oom\":           \"on-the-way\",\n\t\t\t},\n\t\t},\n\t\tSpec: v1.NodeSpec{\n\t\t\tUnschedulable: false,\n\t\t\tPodCIDR:       \"10.0.1.0/24\",\n\t\t},\n\t\tStatus: v1.NodeStatus{\n\t\t\tAllocatable: v1.ResourceList{\n\t\t\t\tv1.ResourceCPU: q1,\n\t\t\t},\n\t\t\tPhase: v1.NodeRunning,\n\t\t},\n\t}\n\t_, err := client.CoreV1().Nodes().Create(context.Background(), testNode1, metav1.CreateOptions{})\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\n\t// Start the informer.\n\tlabelOptions := informers.WithTweakListOptions(func(opts *metav1.ListOptions) {})\n\tfactory, nodelister, err := getTrimmedNodeClients(client, labelOptions)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tstopCh := make(chan struct{})\n\tfactory.Start(stopCh)\n\tfactory.WaitForCacheSync(stopCh)\n\n\t// Now check if all of objectMeta, spec and status have unneeded fields trimmed.\n\tnodes, err := nodelister.List(labels.NewSelector())\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tif len(nodes) != 1 {\n\t\tt.Fatalf(\"len(nodes)=%v, want 1\", len(nodes))\n\t}\n\tnode := nodes[0]\n\tif node.Annotations != nil {\n\t\tt.Errorf(\"node.ObjectMeta is not trimmed. Got %+v\", node.ObjectMeta)\n\t}\n\tif node.Spec.PodCIDR != \"\" {\n\t\tt.Errorf(\"node.Spec is not trimmed. Got %+v\", node.Spec)\n\t}\n\tif node.Status.Phase != \"\" {\n\t\tt.Errorf(\"node.Status is not trimmed. Got %+v\", node.Status)\n\t}\n}\n"
  },
  {
    "path": "pkg/autoscaler/k8sclient/mock_k8sclient.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage k8sclient\n\nimport (\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/core/v1\"\n)\n\nvar _ = K8sClient(&MockK8sClient{})\n\n// MockK8sClient implements K8sClientInterface\ntype MockK8sClient struct {\n\tNumOfNodes        int\n\tNumOfCores        int\n\tNumOfReplicas     int\n\tConfigMap         *v1.ConfigMap\n\tFetchConfigMapFn  func(namespace, configmap string) (*v1.ConfigMap, error)\n\tCreateConfigMapFn func(namespace, configmap string, params map[string]string) (*v1.ConfigMap, error)\n}\n\n// FetchConfigMap mocks fetching the requested configmap from the Apiserver\nfunc (k *MockK8sClient) FetchConfigMap(namespace, configmap string) (*v1.ConfigMap, error) {\n\tif k.FetchConfigMapFn != nil {\n\t\treturn k.FetchConfigMapFn(namespace, configmap)\n\t}\n\tif k.ConfigMap.ObjectMeta.ResourceVersion == \"\" {\n\t\treturn nil, fmt.Errorf(\"config map not exist\")\n\t}\n\treturn k.ConfigMap, nil\n}\n\n// CreateConfigMap mocks creating a configmap with given namespace, name and params\nfunc (k *MockK8sClient) CreateConfigMap(namespace, configmap string, params map[string]string) (*v1.ConfigMap, error) {\n\tif k.CreateConfigMapFn != nil {\n\t\treturn k.CreateConfigMapFn(namespace, configmap, params)\n\t}\n\treturn nil, nil\n}\n\n// UpdateConfigMap mocks updating a configmap with given namespace, name and params\nfunc (k *MockK8sClient) UpdateConfigMap(namespace, configmap string, params map[string]string) (*v1.ConfigMap, error) {\n\treturn nil, nil\n}\n\n// GetClusterStatus mocks counting schedulable nodes and cores in the cluster\nfunc (k *MockK8sClient) GetClusterStatus() (*ClusterStatus, error) {\n\treturn &ClusterStatus{int32(k.NumOfNodes), int32(k.NumOfNodes), int32(k.NumOfCores), int32(k.NumOfCores)}, nil\n}\n\n// GetNamespace mocks returning the namespace of target resource.\nfunc (k *MockK8sClient) GetNamespace() string {\n\treturn \"\"\n}\n\n// UpdateReplicas mocks updating the number of replicas for the resource and return the previous replicas count\nfunc (k *MockK8sClient) UpdateReplicas(expReplicas int32) error {\n\tk.NumOfReplicas = int(expReplicas)\n\treturn nil\n}\n"
  },
  {
    "path": "pkg/version/version.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage version\n\n// VERSION defines the version\nvar VERSION = \"UNKNOWN\"\n"
  },
  {
    "path": "tools/go.mod",
    "content": "module github.com/thockin/go-build-template/tools\n\ngo 1.23.0\n\nrequire (\n\tgithub.com/estesp/manifest-tool/v2 v2.1.6\n\tgithub.com/golangci/golangci-lint v1.63.4\n\tgithub.com/google/go-licenses/v2 v2.0.0-alpha.1\n)\n\nrequire (\n\t4d63.com/gocheckcompilerdirectives v1.2.1 // indirect\n\t4d63.com/gochecknoglobals v0.2.1 // indirect\n\tgithub.com/4meepo/tagalign v1.4.1 // indirect\n\tgithub.com/Abirdcfly/dupword v0.1.3 // indirect\n\tgithub.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 // indirect\n\tgithub.com/Antonboom/errname v1.0.0 // indirect\n\tgithub.com/Antonboom/nilnil v1.0.1 // indirect\n\tgithub.com/Antonboom/testifylint v1.5.2 // indirect\n\tgithub.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c // indirect\n\tgithub.com/Crocmagnon/fatcontext v0.5.3 // indirect\n\tgithub.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 // indirect\n\tgithub.com/GaijinEntertainment/go-exhaustruct/v3 v3.3.0 // indirect\n\tgithub.com/Masterminds/semver/v3 v3.3.0 // indirect\n\tgithub.com/OpenPeeDeeP/depguard/v2 v2.2.0 // indirect\n\tgithub.com/alecthomas/go-check-sumtype v0.3.1 // indirect\n\tgithub.com/alexkohler/nakedret/v2 v2.0.5 // indirect\n\tgithub.com/alexkohler/prealloc v1.0.0 // indirect\n\tgithub.com/alingse/asasalint v0.0.11 // indirect\n\tgithub.com/alingse/nilnesserr v0.1.1 // indirect\n\tgithub.com/ashanbrown/forbidigo v1.6.0 // indirect\n\tgithub.com/ashanbrown/makezero v1.2.0 // indirect\n\tgithub.com/beorn7/perks v1.0.1 // indirect\n\tgithub.com/bkielbasa/cyclop v1.2.3 // indirect\n\tgithub.com/blizzy78/varnamelen v0.8.0 // indirect\n\tgithub.com/bombsimon/wsl/v4 v4.5.0 // indirect\n\tgithub.com/breml/bidichk v0.3.2 // indirect\n\tgithub.com/breml/errchkjson v0.4.0 // indirect\n\tgithub.com/butuzov/ireturn v0.3.1 // indirect\n\tgithub.com/butuzov/mirror v1.3.0 // indirect\n\tgithub.com/catenacyber/perfsprint v0.7.1 // indirect\n\tgithub.com/ccojocar/zxcvbn-go v1.0.2 // indirect\n\tgithub.com/cespare/xxhash/v2 v2.3.0 // indirect\n\tgithub.com/charithe/durationcheck v0.0.10 // indirect\n\tgithub.com/chavacava/garif v0.1.0 // indirect\n\tgithub.com/ckaznocha/intrange v0.3.0 // indirect\n\tgithub.com/containerd/containerd v1.7.29 // indirect\n\tgithub.com/containerd/errdefs v0.3.0 // indirect\n\tgithub.com/containerd/log v0.1.0 // indirect\n\tgithub.com/containerd/platforms v0.2.1 // indirect\n\tgithub.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect\n\tgithub.com/curioswitch/go-reassign v0.3.0 // indirect\n\tgithub.com/daixiang0/gci v0.13.5 // indirect\n\tgithub.com/davecgh/go-spew v1.1.1 // indirect\n\tgithub.com/denis-tingaikin/go-header v0.5.0 // indirect\n\tgithub.com/docker/cli v25.0.4+incompatible // indirect\n\tgithub.com/docker/distribution v2.8.2+incompatible // indirect\n\tgithub.com/docker/docker v26.1.5+incompatible // indirect\n\tgithub.com/docker/docker-credential-helpers v0.7.0 // indirect\n\tgithub.com/ettle/strcase v0.2.0 // indirect\n\tgithub.com/fatih/color v1.18.0 // indirect\n\tgithub.com/fatih/structtag v1.2.0 // indirect\n\tgithub.com/felixge/httpsnoop v1.0.4 // indirect\n\tgithub.com/firefart/nonamedreturns v1.0.5 // indirect\n\tgithub.com/fsnotify/fsnotify v1.6.0 // indirect\n\tgithub.com/fzipp/gocyclo v0.6.0 // indirect\n\tgithub.com/ghostiam/protogetter v0.3.8 // indirect\n\tgithub.com/go-critic/go-critic v0.11.5 // indirect\n\tgithub.com/go-logr/logr v1.4.2 // indirect\n\tgithub.com/go-logr/stdr v1.2.2 // indirect\n\tgithub.com/go-toolsmith/astcast v1.1.0 // indirect\n\tgithub.com/go-toolsmith/astcopy v1.1.0 // indirect\n\tgithub.com/go-toolsmith/astequal v1.2.0 // indirect\n\tgithub.com/go-toolsmith/astfmt v1.1.0 // indirect\n\tgithub.com/go-toolsmith/astp v1.1.0 // indirect\n\tgithub.com/go-toolsmith/strparse v1.1.0 // indirect\n\tgithub.com/go-toolsmith/typep v1.1.0 // indirect\n\tgithub.com/go-viper/mapstructure/v2 v2.2.1 // indirect\n\tgithub.com/go-xmlfmt/xmlfmt v1.1.3 // indirect\n\tgithub.com/gobwas/glob v0.2.3 // indirect\n\tgithub.com/gofrs/flock v0.12.1 // indirect\n\tgithub.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect\n\tgithub.com/golang/protobuf v1.5.4 // indirect\n\tgithub.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a // indirect\n\tgithub.com/golangci/go-printf-func-name v0.1.0 // indirect\n\tgithub.com/golangci/gofmt v0.0.0-20241223200906-057b0627d9b9 // indirect\n\tgithub.com/golangci/misspell v0.6.0 // indirect\n\tgithub.com/golangci/plugin-module-register v0.1.1 // indirect\n\tgithub.com/golangci/revgrep v0.5.3 // indirect\n\tgithub.com/golangci/unconvert v0.0.0-20240309020433-c5143eacb3ed // indirect\n\tgithub.com/google/go-cmp v0.6.0 // indirect\n\tgithub.com/google/licenseclassifier/v2 v2.0.0 // indirect\n\tgithub.com/gordonklaus/ineffassign v0.1.0 // indirect\n\tgithub.com/gostaticanalysis/analysisutil v0.7.1 // indirect\n\tgithub.com/gostaticanalysis/comment v1.4.2 // indirect\n\tgithub.com/gostaticanalysis/forcetypeassert v0.1.0 // indirect\n\tgithub.com/gostaticanalysis/nilerr v0.1.1 // indirect\n\tgithub.com/hashicorp/go-immutable-radix/v2 v2.1.0 // indirect\n\tgithub.com/hashicorp/go-version v1.7.0 // indirect\n\tgithub.com/hashicorp/golang-lru/v2 v2.0.7 // indirect\n\tgithub.com/hashicorp/hcl v1.0.0 // indirect\n\tgithub.com/hexops/gotextdiff v1.0.3 // indirect\n\tgithub.com/inconshreveable/mousetrap v1.1.0 // indirect\n\tgithub.com/jgautheron/goconst v1.7.1 // indirect\n\tgithub.com/jingyugao/rowserrcheck v1.1.1 // indirect\n\tgithub.com/jjti/go-spancheck v0.6.4 // indirect\n\tgithub.com/julz/importas v0.2.0 // indirect\n\tgithub.com/karamaru-alpha/copyloopvar v1.1.0 // indirect\n\tgithub.com/kisielk/errcheck v1.8.0 // indirect\n\tgithub.com/kkHAIKE/contextcheck v1.1.5 // indirect\n\tgithub.com/klauspost/compress v1.16.7 // indirect\n\tgithub.com/kulti/thelper v0.6.3 // indirect\n\tgithub.com/kunwardeep/paralleltest v1.0.10 // indirect\n\tgithub.com/kyoh86/exportloopref v0.1.11 // indirect\n\tgithub.com/lasiar/canonicalheader v1.1.2 // indirect\n\tgithub.com/ldez/exptostd v0.3.1 // indirect\n\tgithub.com/ldez/gomoddirectives v0.6.0 // indirect\n\tgithub.com/ldez/grignotin v0.7.0 // indirect\n\tgithub.com/ldez/tagliatelle v0.7.1 // indirect\n\tgithub.com/ldez/usetesting v0.4.2 // indirect\n\tgithub.com/leonklingele/grouper v1.1.2 // indirect\n\tgithub.com/macabu/inamedparam v0.1.3 // indirect\n\tgithub.com/magiconair/properties v1.8.6 // indirect\n\tgithub.com/maratori/testableexamples v1.0.0 // indirect\n\tgithub.com/maratori/testpackage v1.1.1 // indirect\n\tgithub.com/matoous/godox v0.0.0-20230222163458-006bad1f9d26 // indirect\n\tgithub.com/mattn/go-colorable v0.1.13 // indirect\n\tgithub.com/mattn/go-isatty v0.0.20 // indirect\n\tgithub.com/mattn/go-runewidth v0.0.16 // indirect\n\tgithub.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect\n\tgithub.com/mgechev/revive v1.5.1 // indirect\n\tgithub.com/mitchellh/go-homedir v1.1.0 // indirect\n\tgithub.com/mitchellh/mapstructure v1.5.0 // indirect\n\tgithub.com/moby/locker v1.0.1 // indirect\n\tgithub.com/moricho/tparallel v0.3.2 // indirect\n\tgithub.com/nakabonne/nestif v0.3.1 // indirect\n\tgithub.com/nishanths/exhaustive v0.12.0 // indirect\n\tgithub.com/nishanths/predeclared v0.2.2 // indirect\n\tgithub.com/nunnatsa/ginkgolinter v0.18.4 // indirect\n\tgithub.com/olekukonko/tablewriter v0.0.5 // indirect\n\tgithub.com/opencontainers/go-digest v1.0.0 // indirect\n\tgithub.com/opencontainers/image-spec v1.1.0 // indirect\n\tgithub.com/otiai10/copy v1.14.0 // indirect\n\tgithub.com/pelletier/go-toml v1.9.5 // indirect\n\tgithub.com/pelletier/go-toml/v2 v2.2.3 // indirect\n\tgithub.com/pkg/errors v0.9.1 // indirect\n\tgithub.com/pmezard/go-difflib v1.0.0 // indirect\n\tgithub.com/polyfloyd/go-errorlint v1.7.0 // indirect\n\tgithub.com/prometheus/client_golang v1.16.0 // indirect\n\tgithub.com/prometheus/client_model v0.3.0 // indirect\n\tgithub.com/prometheus/common v0.42.0 // indirect\n\tgithub.com/prometheus/procfs v0.10.1 // indirect\n\tgithub.com/quasilyte/go-ruleguard v0.4.3-0.20240823090925-0fe6f58b47b1 // indirect\n\tgithub.com/quasilyte/go-ruleguard/dsl v0.3.22 // indirect\n\tgithub.com/quasilyte/gogrep v0.5.0 // indirect\n\tgithub.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727 // indirect\n\tgithub.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 // indirect\n\tgithub.com/raeperd/recvcheck v0.2.0 // indirect\n\tgithub.com/rivo/uniseg v0.4.7 // indirect\n\tgithub.com/rogpeppe/go-internal v1.13.1 // indirect\n\tgithub.com/russross/blackfriday/v2 v2.1.0 // indirect\n\tgithub.com/ryancurrah/gomodguard v1.3.5 // indirect\n\tgithub.com/ryanrolds/sqlclosecheck v0.5.1 // indirect\n\tgithub.com/sanposhiho/wastedassign/v2 v2.1.0 // indirect\n\tgithub.com/santhosh-tekuri/jsonschema/v6 v6.0.1 // indirect\n\tgithub.com/sashamelentyev/interfacebloat v1.1.0 // indirect\n\tgithub.com/sashamelentyev/usestdlibvars v1.28.0 // indirect\n\tgithub.com/securego/gosec/v2 v2.21.4 // indirect\n\tgithub.com/sergi/go-diff v1.2.0 // indirect\n\tgithub.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c // indirect\n\tgithub.com/sirupsen/logrus v1.9.3 // indirect\n\tgithub.com/sivchari/containedctx v1.0.3 // indirect\n\tgithub.com/sivchari/tenv v1.12.1 // indirect\n\tgithub.com/sonatard/noctx v0.1.0 // indirect\n\tgithub.com/sourcegraph/go-diff v0.7.0 // indirect\n\tgithub.com/spf13/afero v1.11.0 // indirect\n\tgithub.com/spf13/cast v1.5.0 // indirect\n\tgithub.com/spf13/cobra v1.8.1 // indirect\n\tgithub.com/spf13/jwalterweatherman v1.1.0 // indirect\n\tgithub.com/spf13/pflag v1.0.5 // indirect\n\tgithub.com/spf13/viper v1.12.0 // indirect\n\tgithub.com/ssgreg/nlreturn/v2 v2.2.1 // indirect\n\tgithub.com/stbenjam/no-sprintf-host-port v0.2.0 // indirect\n\tgithub.com/stretchr/objx v0.5.2 // indirect\n\tgithub.com/stretchr/testify v1.10.0 // indirect\n\tgithub.com/subosito/gotenv v1.4.1 // indirect\n\tgithub.com/tdakkota/asciicheck v0.3.0 // indirect\n\tgithub.com/tetafro/godot v1.4.20 // indirect\n\tgithub.com/timakin/bodyclose v0.0.0-20241017074812-ed6a65f985e3 // indirect\n\tgithub.com/timonwong/loggercheck v0.10.1 // indirect\n\tgithub.com/tomarrell/wrapcheck/v2 v2.10.0 // indirect\n\tgithub.com/tommy-muehle/go-mnd/v2 v2.5.1 // indirect\n\tgithub.com/ultraware/funlen v0.2.0 // indirect\n\tgithub.com/ultraware/whitespace v0.2.0 // indirect\n\tgithub.com/urfave/cli/v2 v2.27.1 // indirect\n\tgithub.com/uudashr/gocognit v1.2.0 // indirect\n\tgithub.com/uudashr/iface v1.3.0 // indirect\n\tgithub.com/xen0n/gosmopolitan v1.2.2 // indirect\n\tgithub.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect\n\tgithub.com/yagipy/maintidx v1.0.0 // indirect\n\tgithub.com/yeya24/promlinter v0.3.0 // indirect\n\tgithub.com/ykadowak/zerologlint v0.1.5 // indirect\n\tgitlab.com/bosi/decorder v0.4.2 // indirect\n\tgo-simpler.org/musttag v0.13.0 // indirect\n\tgo-simpler.org/sloglint v0.7.2 // indirect\n\tgo.opencensus.io v0.24.0 // indirect\n\tgo.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 // indirect\n\tgo.opentelemetry.io/otel v1.29.0 // indirect\n\tgo.opentelemetry.io/otel/metric v1.29.0 // indirect\n\tgo.opentelemetry.io/otel/trace v1.29.0 // indirect\n\tgo.uber.org/atomic v1.7.0 // indirect\n\tgo.uber.org/automaxprocs v1.6.0 // indirect\n\tgo.uber.org/goleak v1.1.12 // indirect\n\tgo.uber.org/multierr v1.6.0 // indirect\n\tgo.uber.org/zap v1.24.0 // indirect\n\tgolang.org/x/exp v0.0.0-20240909161429-701f63a606c0 // indirect\n\tgolang.org/x/exp/typeparams v0.0.0-20241108190413-2d47ceb2692f // indirect\n\tgolang.org/x/mod v0.26.0 // indirect\n\tgolang.org/x/net v0.42.0 // indirect\n\tgolang.org/x/sync v0.16.0 // indirect\n\tgolang.org/x/sys v0.34.0 // indirect\n\tgolang.org/x/text v0.27.0 // indirect\n\tgolang.org/x/tools v0.34.0 // indirect\n\tgoogle.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 // indirect\n\tgoogle.golang.org/grpc v1.66.2 // indirect\n\tgoogle.golang.org/protobuf v1.35.2 // indirect\n\tgopkg.in/ini.v1 v1.67.0 // indirect\n\tgopkg.in/yaml.v2 v2.4.0 // indirect\n\tgopkg.in/yaml.v3 v3.0.1 // indirect\n\thonnef.co/go/tools v0.5.1 // indirect\n\tk8s.io/klog/v2 v2.90.1 // indirect\n\tmvdan.cc/gofumpt v0.7.0 // indirect\n\tmvdan.cc/unparam v0.0.0-20240528143540-8a5130ca722f // indirect\n\toras.land/oras-go/v2 v2.4.0 // indirect\n)\n"
  },
  {
    "path": "tools/go.sum",
    "content": "4d63.com/gocheckcompilerdirectives v1.2.1 h1:AHcMYuw56NPjq/2y615IGg2kYkBdTvOaojYCBcRE7MA=\n4d63.com/gocheckcompilerdirectives v1.2.1/go.mod h1:yjDJSxmDTtIHHCqX0ufRYZDL6vQtMG7tJdKVeWwsqvs=\n4d63.com/gochecknoglobals v0.2.1 h1:1eiorGsgHOFOuoOiJDy2psSrQbRdIHrlge0IJIkUgDc=\n4d63.com/gochecknoglobals v0.2.1/go.mod h1:KRE8wtJB3CXCsb1xy421JfTHIIbmT3U5ruxw2Qu8fSU=\ncloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=\ngithub.com/4meepo/tagalign v1.4.1 h1:GYTu2FaPGOGb/xJalcqHeD4il5BiCywyEYZOA55P6J4=\ngithub.com/4meepo/tagalign v1.4.1/go.mod h1:2H9Yu6sZ67hmuraFgfZkNcg5Py9Ch/Om9l2K/2W1qS4=\ngithub.com/Abirdcfly/dupword v0.1.3 h1:9Pa1NuAsZvpFPi9Pqkd93I7LIYRURj+A//dFd5tgBeE=\ngithub.com/Abirdcfly/dupword v0.1.3/go.mod h1:8VbB2t7e10KRNdwTVoxdBaxla6avbhGzb8sCTygUMhw=\ngithub.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU=\ngithub.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8=\ngithub.com/Antonboom/errname v1.0.0 h1:oJOOWR07vS1kRusl6YRSlat7HFnb3mSfMl6sDMRoTBA=\ngithub.com/Antonboom/errname v1.0.0/go.mod h1:gMOBFzK/vrTiXN9Oh+HFs+e6Ndl0eTFbtsRTSRdXyGI=\ngithub.com/Antonboom/nilnil v1.0.1 h1:C3Tkm0KUxgfO4Duk3PM+ztPncTFlOf0b2qadmS0s4xs=\ngithub.com/Antonboom/nilnil v1.0.1/go.mod h1:CH7pW2JsRNFgEh8B2UaPZTEPhCMuFowP/e8Udp9Nnb0=\ngithub.com/Antonboom/testifylint v1.5.2 h1:4s3Xhuv5AvdIgbd8wOOEeo0uZG7PbDKQyKY5lGoQazk=\ngithub.com/Antonboom/testifylint v1.5.2/go.mod h1:vxy8VJ0bc6NavlYqjZfmp6EfqXMtBgQ4+mhCojwC1P8=\ngithub.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=\ngithub.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c h1:pxW6RcqyfI9/kWtOwnv/G+AzdKuy2ZrqINhenH4HyNs=\ngithub.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=\ngithub.com/Crocmagnon/fatcontext v0.5.3 h1:zCh/wjc9oyeF+Gmp+V60wetm8ph2tlsxocgg/J0hOps=\ngithub.com/Crocmagnon/fatcontext v0.5.3/go.mod h1:XoCQYY1J+XTfyv74qLXvNw4xFunr3L1wkopIIKG7wGM=\ngithub.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 h1:sHglBQTwgx+rWPdisA5ynNEsoARbiCBOyGcJM4/OzsM=\ngithub.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24/go.mod h1:4UJr5HIiMZrwgkSPdsjy2uOQExX/WEILpIrO9UPGuXs=\ngithub.com/GaijinEntertainment/go-exhaustruct/v3 v3.3.0 h1:/fTUt5vmbkAcMBt4YQiuC23cV0kEsN1MVMNqeOW43cU=\ngithub.com/GaijinEntertainment/go-exhaustruct/v3 v3.3.0/go.mod h1:ONJg5sxcbsdQQ4pOW8TGdTidT2TMAUy/2Xhr8mrYaao=\ngithub.com/Masterminds/semver/v3 v3.3.0 h1:B8LGeaivUe71a5qox1ICM/JLl0NqZSW5CHyL+hmvYS0=\ngithub.com/Masterminds/semver/v3 v3.3.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM=\ngithub.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY=\ngithub.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU=\ngithub.com/Microsoft/hcsshim v0.11.7 h1:vl/nj3Bar/CvJSYo7gIQPyRWc9f3c6IeSNavBTSZNZQ=\ngithub.com/Microsoft/hcsshim v0.11.7/go.mod h1:MV8xMfmECjl5HdO7U/3/hFVnkmSBjAjmA09d4bExKcU=\ngithub.com/OpenPeeDeeP/depguard/v2 v2.2.0 h1:vDfG60vDtIuf0MEOhmLlLLSzqaRM8EMcgJPdp74zmpA=\ngithub.com/OpenPeeDeeP/depguard/v2 v2.2.0/go.mod h1:CIzddKRvLBC4Au5aYP/i3nyaWQ+ClszLIuVocRiCYFQ=\ngithub.com/alecthomas/assert/v2 v2.11.0 h1:2Q9r3ki8+JYXvGsDyBXwH3LcJ+WK5D0gc5E8vS6K3D0=\ngithub.com/alecthomas/assert/v2 v2.11.0/go.mod h1:Bze95FyfUr7x34QZrjL+XP+0qgp/zg8yS+TtBj1WA3k=\ngithub.com/alecthomas/go-check-sumtype v0.3.1 h1:u9aUvbGINJxLVXiFvHUlPEaD7VDULsrxJb4Aq31NLkU=\ngithub.com/alecthomas/go-check-sumtype v0.3.1/go.mod h1:A8TSiN3UPRw3laIgWEUOHHLPa6/r9MtoigdlP5h3K/E=\ngithub.com/alecthomas/repr v0.4.0 h1:GhI2A8MACjfegCPVq9f1FLvIBS+DrQ2KQBFZP1iFzXc=\ngithub.com/alecthomas/repr v0.4.0/go.mod h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4=\ngithub.com/alexkohler/nakedret/v2 v2.0.5 h1:fP5qLgtwbx9EJE8dGEERT02YwS8En4r9nnZ71RK+EVU=\ngithub.com/alexkohler/nakedret/v2 v2.0.5/go.mod h1:bF5i0zF2Wo2o4X4USt9ntUWve6JbFv02Ff4vlkmS/VU=\ngithub.com/alexkohler/prealloc v1.0.0 h1:Hbq0/3fJPQhNkN0dR95AVrr6R7tou91y0uHG5pOcUuw=\ngithub.com/alexkohler/prealloc v1.0.0/go.mod h1:VetnK3dIgFBBKmg0YnD9F9x6Icjd+9cvfHR56wJVlKE=\ngithub.com/alingse/asasalint v0.0.11 h1:SFwnQXJ49Kx/1GghOFz1XGqHYKp21Kq1nHad/0WQRnw=\ngithub.com/alingse/asasalint v0.0.11/go.mod h1:nCaoMhw7a9kSJObvQyVzNTPBDbNpdocqrSP7t/cW5+I=\ngithub.com/alingse/nilnesserr v0.1.1 h1:7cYuJewpy9jFNMEA72Q1+3Nm3zKHzg+Q28D5f2bBFUA=\ngithub.com/alingse/nilnesserr v0.1.1/go.mod h1:1xJPrXonEtX7wyTq8Dytns5P2hNzoWymVUIaKm4HNFg=\ngithub.com/ashanbrown/forbidigo v1.6.0 h1:D3aewfM37Yb3pxHujIPSpTf6oQk9sc9WZi8gerOIVIY=\ngithub.com/ashanbrown/forbidigo v1.6.0/go.mod h1:Y8j9jy9ZYAEHXdu723cUlraTqbzjKF1MUyfOKL+AjcU=\ngithub.com/ashanbrown/makezero v1.2.0 h1:/2Lp1bypdmK9wDIq7uWBlDF1iMUpIIS4A+pF6C9IEUU=\ngithub.com/ashanbrown/makezero v1.2.0/go.mod h1:dxlPhHbDMC6N6xICzFBSK+4njQDdK8euNO0qjQMtGY4=\ngithub.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=\ngithub.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=\ngithub.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=\ngithub.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=\ngithub.com/bkielbasa/cyclop v1.2.3 h1:faIVMIGDIANuGPWH031CZJTi2ymOQBULs9H21HSMa5w=\ngithub.com/bkielbasa/cyclop v1.2.3/go.mod h1:kHTwA9Q0uZqOADdupvcFJQtp/ksSnytRMe8ztxG8Fuo=\ngithub.com/blizzy78/varnamelen v0.8.0 h1:oqSblyuQvFsW1hbBHh1zfwrKe3kcSj0rnXkKzsQ089M=\ngithub.com/blizzy78/varnamelen v0.8.0/go.mod h1:V9TzQZ4fLJ1DSrjVDfl89H7aMnTvKkApdHeyESmyR7k=\ngithub.com/bombsimon/wsl/v4 v4.5.0 h1:iZRsEvDdyhd2La0FVi5k6tYehpOR/R7qIUjmKk7N74A=\ngithub.com/bombsimon/wsl/v4 v4.5.0/go.mod h1:NOQ3aLF4nD7N5YPXMruR6ZXDOAqLoM0GEpLwTdvmOSc=\ngithub.com/breml/bidichk v0.3.2 h1:xV4flJ9V5xWTqxL+/PMFF6dtJPvZLPsyixAoPe8BGJs=\ngithub.com/breml/bidichk v0.3.2/go.mod h1:VzFLBxuYtT23z5+iVkamXO386OB+/sVwZOpIj6zXGos=\ngithub.com/breml/errchkjson v0.4.0 h1:gftf6uWZMtIa/Is3XJgibewBm2ksAQSY/kABDNFTAdk=\ngithub.com/breml/errchkjson v0.4.0/go.mod h1:AuBOSTHyLSaaAFlWsRSuRBIroCh3eh7ZHh5YeelDIk8=\ngithub.com/butuzov/ireturn v0.3.1 h1:mFgbEI6m+9W8oP/oDdfA34dLisRFCj2G6o/yiI1yZrY=\ngithub.com/butuzov/ireturn v0.3.1/go.mod h1:ZfRp+E7eJLC0NQmk1Nrm1LOrn/gQlOykv+cVPdiXH5M=\ngithub.com/butuzov/mirror v1.3.0 h1:HdWCXzmwlQHdVhwvsfBb2Au0r3HyINry3bDWLYXiKoc=\ngithub.com/butuzov/mirror v1.3.0/go.mod h1:AEij0Z8YMALaq4yQj9CPPVYOyJQyiexpQEQgihajRfI=\ngithub.com/catenacyber/perfsprint v0.7.1 h1:PGW5G/Kxn+YrN04cRAZKC+ZuvlVwolYMrIyyTJ/rMmc=\ngithub.com/catenacyber/perfsprint v0.7.1/go.mod h1:/wclWYompEyjUD2FuIIDVKNkqz7IgBIWXIH3V0Zol50=\ngithub.com/ccojocar/zxcvbn-go v1.0.2 h1:na/czXU8RrhXO4EZme6eQJLR4PzcGsahsBOAwU6I3Vg=\ngithub.com/ccojocar/zxcvbn-go v1.0.2/go.mod h1:g1qkXtUSvHP8lhHp5GrSmTz6uWALGRMQdw6Qnz/hi60=\ngithub.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=\ngithub.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=\ngithub.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=\ngithub.com/charithe/durationcheck v0.0.10 h1:wgw73BiocdBDQPik+zcEoBG/ob8uyBHf2iyoHGPf5w4=\ngithub.com/charithe/durationcheck v0.0.10/go.mod h1:bCWXb7gYRysD1CU3C+u4ceO49LoGOY1C1L6uouGNreQ=\ngithub.com/chavacava/garif v0.1.0 h1:2JHa3hbYf5D9dsgseMKAmc/MZ109otzgNFk5s87H9Pc=\ngithub.com/chavacava/garif v0.1.0/go.mod h1:XMyYCkEL58DF0oyW4qDjjnPWONs2HBqYKI+UIPD+Gww=\ngithub.com/ckaznocha/intrange v0.3.0 h1:VqnxtK32pxgkhJgYQEeOArVidIPg+ahLP7WBOXZd5ZY=\ngithub.com/ckaznocha/intrange v0.3.0/go.mod h1:+I/o2d2A1FBHgGELbGxzIcyd3/9l9DuwjM8FsbSS3Lo=\ngithub.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=\ngithub.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=\ngithub.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM=\ngithub.com/containerd/cgroups v1.1.0/go.mod h1:6ppBcbh/NOOUU+dMKrykgaBnK9lCIBxHqJDGwsa1mIw=\ngithub.com/containerd/containerd v1.7.29 h1:90fWABQsaN9mJhGkoVnuzEY+o1XDPbg9BTC9QTAHnuE=\ngithub.com/containerd/containerd v1.7.29/go.mod h1:azUkWcOvHrWvaiUjSQH0fjzuHIwSPg1WL5PshGP4Szs=\ngithub.com/containerd/continuity v0.4.4 h1:/fNVfTJ7wIl/YPMHjf+5H32uFhl63JucB34PlCpMKII=\ngithub.com/containerd/continuity v0.4.4/go.mod h1:/lNJvtJKUQStBzpVQ1+rasXO1LAWtUQssk28EZvJ3nE=\ngithub.com/containerd/errdefs v0.3.0 h1:FSZgGOeK4yuT/+DnF07/Olde/q4KBoMsaamhXxIMDp4=\ngithub.com/containerd/errdefs v0.3.0/go.mod h1:+YBYIdtsnF4Iw6nWZhJcqGSg/dwvV7tyJ/kCkyJ2k+M=\ngithub.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I=\ngithub.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo=\ngithub.com/containerd/platforms v0.2.1 h1:zvwtM3rz2YHPQsF2CHYM8+KtB5dvhISiXh5ZpSBQv6A=\ngithub.com/containerd/platforms v0.2.1/go.mod h1:XHCb+2/hzowdiut9rkudds9bE5yJ7npe7dG/wG+uFPw=\ngithub.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4=\ngithub.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=\ngithub.com/curioswitch/go-reassign v0.3.0 h1:dh3kpQHuADL3cobV/sSGETA8DOv457dwl+fbBAhrQPs=\ngithub.com/curioswitch/go-reassign v0.3.0/go.mod h1:nApPCCTtqLJN/s8HfItCcKV0jIPwluBOvZP+dsJGA88=\ngithub.com/daixiang0/gci v0.13.5 h1:kThgmH1yBmZSBCh1EJVxQ7JsHpm5Oms0AMed/0LaH4c=\ngithub.com/daixiang0/gci v0.13.5/go.mod h1:12etP2OniiIdP4q+kjUGrC/rUagga7ODbqsom5Eo5Yk=\ngithub.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=\ngithub.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/denis-tingaikin/go-header v0.5.0 h1:SRdnP5ZKvcO9KKRP1KJrhFR3RrlGuD+42t4429eC9k8=\ngithub.com/denis-tingaikin/go-header v0.5.0/go.mod h1:mMenU5bWrok6Wl2UsZjy+1okegmwQ3UgWl4V1D8gjlY=\ngithub.com/dlclark/regexp2 v1.11.0 h1:G/nrcoOa7ZXlpoa/91N3X7mM3r8eIlMBBJZvsz/mxKI=\ngithub.com/dlclark/regexp2 v1.11.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8=\ngithub.com/docker/cli v25.0.4+incompatible h1:DatRkJ+nrFoYL2HZUzjM5Z5sAmcA5XGp+AW0oEw2+cA=\ngithub.com/docker/cli v25.0.4+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=\ngithub.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m322EBzniBPB6ZIzuh8=\ngithub.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=\ngithub.com/docker/docker v26.1.5+incompatible h1:NEAxTwEjxV6VbBMBoGG3zPqbiJosIApZjxlbrG9q3/g=\ngithub.com/docker/docker v26.1.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=\ngithub.com/docker/docker-credential-helpers v0.7.0 h1:xtCHsjxogADNZcdv1pKUHXryefjlVRqWqIhk/uXJp0A=\ngithub.com/docker/docker-credential-helpers v0.7.0/go.mod h1:rETQfLdHNT3foU5kuNkFR1R1V12OJRRO5lzt2D1b5X0=\ngithub.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=\ngithub.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=\ngithub.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=\ngithub.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=\ngithub.com/estesp/manifest-tool/v2 v2.1.6 h1:I5KmrX5dB3cX8w+jB4grX8VTS5bP0Ov70UsoR1BT7fk=\ngithub.com/estesp/manifest-tool/v2 v2.1.6/go.mod h1:iS+xZN9UR1B3mfa03n8p+wfePbnI73VVurS/KZnM9I4=\ngithub.com/ettle/strcase v0.2.0 h1:fGNiVF21fHXpX1niBgk0aROov1LagYsOwV/xqKDKR/Q=\ngithub.com/ettle/strcase v0.2.0/go.mod h1:DajmHElDSaX76ITe3/VHVyMin4LWSJN5Z909Wp+ED1A=\ngithub.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM=\ngithub.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU=\ngithub.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4=\ngithub.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94=\ngithub.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=\ngithub.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=\ngithub.com/firefart/nonamedreturns v1.0.5 h1:tM+Me2ZaXs8tfdDw3X6DOX++wMCOqzYUho6tUTYIdRA=\ngithub.com/firefart/nonamedreturns v1.0.5/go.mod h1:gHJjDqhGM4WyPt639SOZs+G89Ko7QKH5R5BhnO6xJhw=\ngithub.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE=\ngithub.com/frankban/quicktest v1.14.3/go.mod h1:mgiwOwqx65TmIk1wJ6Q7wvnVMocbUorkibMOrVTHZps=\ngithub.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY=\ngithub.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw=\ngithub.com/fzipp/gocyclo v0.6.0 h1:lsblElZG7d3ALtGMx9fmxeTKZaLLpU8mET09yN4BBLo=\ngithub.com/fzipp/gocyclo v0.6.0/go.mod h1:rXPyn8fnlpa0R2csP/31uerbiVBugk5whMdlyaLkLoA=\ngithub.com/ghostiam/protogetter v0.3.8 h1:LYcXbYvybUyTIxN2Mj9h6rHrDZBDwZloPoKctWrFyJY=\ngithub.com/ghostiam/protogetter v0.3.8/go.mod h1:WZ0nw9pfzsgxuRsPOFQomgDVSWtDLJRfQJEhsGbmQMA=\ngithub.com/go-critic/go-critic v0.11.5 h1:TkDTOn5v7EEngMxu8KbuFqFR43USaaH8XRJLz1jhVYA=\ngithub.com/go-critic/go-critic v0.11.5/go.mod h1:wu6U7ny9PiaHaZHcvMDmdysMqvDem162Rh3zWTrqk8M=\ngithub.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=\ngithub.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=\ngithub.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=\ngithub.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=\ngithub.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=\ngithub.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=\ngithub.com/go-quicktest/qt v1.101.0 h1:O1K29Txy5P2OK0dGo59b7b0LR6wKfIhttaAhHUyn7eI=\ngithub.com/go-quicktest/qt v1.101.0/go.mod h1:14Bz/f7NwaXPtdYEgzsx46kqSxVwTbzVZsDC26tQJow=\ngithub.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI=\ngithub.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8=\ngithub.com/go-toolsmith/astcast v1.1.0 h1:+JN9xZV1A+Re+95pgnMgDboWNVnIMMQXwfBwLRPgSC8=\ngithub.com/go-toolsmith/astcast v1.1.0/go.mod h1:qdcuFWeGGS2xX5bLM/c3U9lewg7+Zu4mr+xPwZIB4ZU=\ngithub.com/go-toolsmith/astcopy v1.1.0 h1:YGwBN0WM+ekI/6SS6+52zLDEf8Yvp3n2seZITCUBt5s=\ngithub.com/go-toolsmith/astcopy v1.1.0/go.mod h1:hXM6gan18VA1T/daUEHCFcYiW8Ai1tIwIzHY6srfEAw=\ngithub.com/go-toolsmith/astequal v1.0.3/go.mod h1:9Ai4UglvtR+4up+bAD4+hCj7iTo4m/OXVTSLnCyTAx4=\ngithub.com/go-toolsmith/astequal v1.1.0/go.mod h1:sedf7VIdCL22LD8qIvv7Nn9MuWJruQA/ysswh64lffQ=\ngithub.com/go-toolsmith/astequal v1.2.0 h1:3Fs3CYZ1k9Vo4FzFhwwewC3CHISHDnVUPC4x0bI2+Cw=\ngithub.com/go-toolsmith/astequal v1.2.0/go.mod h1:c8NZ3+kSFtFY/8lPso4v8LuJjdJiUFVnSuU3s0qrrDY=\ngithub.com/go-toolsmith/astfmt v1.1.0 h1:iJVPDPp6/7AaeLJEruMsBUlOYCmvg0MoCfJprsOmcco=\ngithub.com/go-toolsmith/astfmt v1.1.0/go.mod h1:OrcLlRwu0CuiIBp/8b5PYF9ktGVZUjlNMV634mhwuQ4=\ngithub.com/go-toolsmith/astp v1.1.0 h1:dXPuCl6u2llURjdPLLDxJeZInAeZ0/eZwFJmqZMnpQA=\ngithub.com/go-toolsmith/astp v1.1.0/go.mod h1:0T1xFGz9hicKs8Z5MfAqSUitoUYS30pDMsRVIDHs8CA=\ngithub.com/go-toolsmith/pkgload v1.2.2 h1:0CtmHq/02QhxcF7E9N5LIFcYFsMR5rdovfqTtRKkgIk=\ngithub.com/go-toolsmith/pkgload v1.2.2/go.mod h1:R2hxLNRKuAsiXCo2i5J6ZQPhnPMOVtU+f0arbFPWCus=\ngithub.com/go-toolsmith/strparse v1.0.0/go.mod h1:YI2nUKP9YGZnL/L1/DLFBfixrcjslWct4wyljWhSRy8=\ngithub.com/go-toolsmith/strparse v1.1.0 h1:GAioeZUK9TGxnLS+qfdqNbA4z0SSm5zVNtCQiyP2Bvw=\ngithub.com/go-toolsmith/strparse v1.1.0/go.mod h1:7ksGy58fsaQkGQlY8WVoBFNyEPMGuJin1rfoPS4lBSQ=\ngithub.com/go-toolsmith/typep v1.1.0 h1:fIRYDyF+JywLfqzyhdiHzRop/GQDxxNhLGQ6gFUNHus=\ngithub.com/go-toolsmith/typep v1.1.0/go.mod h1:fVIw+7zjdsMxDA3ITWnH1yOiw1rnTQKCsF/sk2H/qig=\ngithub.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIxtHqx8aGss=\ngithub.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM=\ngithub.com/go-xmlfmt/xmlfmt v1.1.3 h1:t8Ey3Uy7jDSEisW2K3somuMKIpzktkWptA0iFCnRUWY=\ngithub.com/go-xmlfmt/xmlfmt v1.1.3/go.mod h1:aUCEOzzezBEjDBbFBoSiya/gduyIiWYRP6CnSFIV8AM=\ngithub.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y=\ngithub.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8=\ngithub.com/gofrs/flock v0.12.1 h1:MTLVXXHf8ekldpJk3AKicLij9MdwOWkZ+a/jHHZby9E=\ngithub.com/gofrs/flock v0.12.1/go.mod h1:9zxTsyu5xtJ9DK+1tFZyibEV7y3uwDxPPfbxeeHCoD0=\ngithub.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=\ngithub.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=\ngithub.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=\ngithub.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=\ngithub.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=\ngithub.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=\ngithub.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=\ngithub.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=\ngithub.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=\ngithub.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk=\ngithub.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=\ngithub.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=\ngithub.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=\ngithub.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=\ngithub.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=\ngithub.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=\ngithub.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=\ngithub.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=\ngithub.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=\ngithub.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a h1:w8hkcTqaFpzKqonE9uMCefW1WDie15eSP/4MssdenaM=\ngithub.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a/go.mod h1:ryS0uhF+x9jgbj/N71xsEqODy9BN81/GonCZiOzirOk=\ngithub.com/golangci/go-printf-func-name v0.1.0 h1:dVokQP+NMTO7jwO4bwsRwLWeudOVUPPyAKJuzv8pEJU=\ngithub.com/golangci/go-printf-func-name v0.1.0/go.mod h1:wqhWFH5mUdJQhweRnldEywnR5021wTdZSNgwYceV14s=\ngithub.com/golangci/gofmt v0.0.0-20241223200906-057b0627d9b9 h1:t5wybL6RtO83VwoMOb7U/Peqe3gGKQlPIC66wXmnkvM=\ngithub.com/golangci/gofmt v0.0.0-20241223200906-057b0627d9b9/go.mod h1:Ag3L7sh7E28qAp/5xnpMMTuGYqxLZoSaEHZDkZB1RgU=\ngithub.com/golangci/golangci-lint v1.63.4 h1:bJQFQ3hSfUto597dkL7ipDzOxsGEpiWdLiZ359OWOBI=\ngithub.com/golangci/golangci-lint v1.63.4/go.mod h1:Hx0B7Lg5/NXbaOHem8+KU+ZUIzMI6zNj/7tFwdnn10I=\ngithub.com/golangci/misspell v0.6.0 h1:JCle2HUTNWirNlDIAUO44hUsKhOFqGPoC4LZxlaSXDs=\ngithub.com/golangci/misspell v0.6.0/go.mod h1:keMNyY6R9isGaSAu+4Q8NMBwMPkh15Gtc8UCVoDtAWo=\ngithub.com/golangci/plugin-module-register v0.1.1 h1:TCmesur25LnyJkpsVrupv1Cdzo+2f7zX0H6Jkw1Ol6c=\ngithub.com/golangci/plugin-module-register v0.1.1/go.mod h1:TTpqoB6KkwOJMV8u7+NyXMrkwwESJLOkfl9TxR1DGFc=\ngithub.com/golangci/revgrep v0.5.3 h1:3tL7c1XBMtWHHqVpS5ChmiAAoe4PF/d5+ULzV9sLAzs=\ngithub.com/golangci/revgrep v0.5.3/go.mod h1:U4R/s9dlXZsg8uJmaR1GrloUr14D7qDl8gi2iPXJH8k=\ngithub.com/golangci/unconvert v0.0.0-20240309020433-c5143eacb3ed h1:IURFTjxeTfNFP0hTEi1YKjB/ub8zkpaOqFFMApi2EAs=\ngithub.com/golangci/unconvert v0.0.0-20240309020433-c5143eacb3ed/go.mod h1:XLXN8bNw4CGRPaqgl3bv/lhz7bsGPh4/xSaMTbo2vkQ=\ngithub.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=\ngithub.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=\ngithub.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=\ngithub.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=\ngithub.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=\ngithub.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=\ngithub.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=\ngithub.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=\ngithub.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=\ngithub.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=\ngithub.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=\ngithub.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=\ngithub.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=\ngithub.com/google/go-licenses/v2 v2.0.0-alpha.1 h1:2EMzW/1PWYvgOxBXsWl7b350vI0c/kf5Fh7z4AR1skM=\ngithub.com/google/go-licenses/v2 v2.0.0-alpha.1/go.mod h1:HlMUpsa+mbs8EqdlY0BDfCn0ZK7Y7NQoRCGYhNoox64=\ngithub.com/google/go-replayers/httpreplay v1.2.0 h1:VM1wEyyjaoU53BwrOnaf9VhAyQQEEioJvFYxYcLRKzk=\ngithub.com/google/go-replayers/httpreplay v1.2.0/go.mod h1:WahEFFZZ7a1P4VM1qEeHy+tME4bwyqPcwWbNlUI1Mcg=\ngithub.com/google/licenseclassifier/v2 v2.0.0 h1:1Y57HHILNf4m0ABuMVb6xk4vAJYEUO0gDxNpog0pyeA=\ngithub.com/google/licenseclassifier/v2 v2.0.0/go.mod h1:cOjbdH0kyC9R22sdQbYsFkto4NGCAc+ZSwbeThazEtM=\ngithub.com/google/martian/v3 v3.3.2 h1:IqNFLAmvJOgVlpdEBiQbDc2EwKW77amAycfTuWKdfvw=\ngithub.com/google/martian/v3 v3.3.2/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk=\ngithub.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5 h1:5iH8iuqE5apketRbSFBy+X1V0o+l+8NF1avt4HWl7cA=\ngithub.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144=\ngithub.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=\ngithub.com/gordonklaus/ineffassign v0.1.0 h1:y2Gd/9I7MdY1oEIt+n+rowjBNDcLQq3RsH5hwJd0f9s=\ngithub.com/gordonklaus/ineffassign v0.1.0/go.mod h1:Qcp2HIAYhR7mNUVSIxZww3Guk4it82ghYcEXIAk+QT0=\ngithub.com/gostaticanalysis/analysisutil v0.7.1 h1:ZMCjoue3DtDWQ5WyU16YbjbQEQ3VuzwxALrpYd+HeKk=\ngithub.com/gostaticanalysis/analysisutil v0.7.1/go.mod h1:v21E3hY37WKMGSnbsw2S/ojApNWb6C1//mXO48CXbVc=\ngithub.com/gostaticanalysis/comment v1.4.1/go.mod h1:ih6ZxzTHLdadaiSnF5WY3dxUoXfXAlTaRzuaNDlSado=\ngithub.com/gostaticanalysis/comment v1.4.2 h1:hlnx5+S2fY9Zo9ePo4AhgYsYHbM2+eAv8m/s1JiCd6Q=\ngithub.com/gostaticanalysis/comment v1.4.2/go.mod h1:KLUTGDv6HOCotCH8h2erHKmpci2ZoR8VPu34YA2uzdM=\ngithub.com/gostaticanalysis/forcetypeassert v0.1.0 h1:6eUflI3DiGusXGK6X7cCcIgVCpZ2CiZ1Q7jl6ZxNV70=\ngithub.com/gostaticanalysis/forcetypeassert v0.1.0/go.mod h1:qZEedyP/sY1lTGV1uJ3VhWZ2mqag3IkWsDHVbplHXak=\ngithub.com/gostaticanalysis/nilerr v0.1.1 h1:ThE+hJP0fEp4zWLkWHWcRyI2Od0p7DlgYG3Uqrmrcpk=\ngithub.com/gostaticanalysis/nilerr v0.1.1/go.mod h1:wZYb6YI5YAxxq0i1+VJbY0s2YONW0HU0GPE3+5PWN4A=\ngithub.com/gostaticanalysis/testutil v0.3.1-0.20210208050101-bfb5c8eec0e4/go.mod h1:D+FIZ+7OahH3ePw/izIEeH5I06eKs1IKI4Xr64/Am3M=\ngithub.com/gostaticanalysis/testutil v0.5.0 h1:Dq4wT1DdTwTGCQQv3rl3IvD5Ld0E6HiY+3Zh0sUGqw8=\ngithub.com/gostaticanalysis/testutil v0.5.0/go.mod h1:OLQSbuM6zw2EvCcXTz1lVq5unyoNft372msDY0nY5Hs=\ngithub.com/hashicorp/go-immutable-radix/v2 v2.1.0 h1:CUW5RYIcysz+D3B+l1mDeXrQ7fUvGGCwJfdASSzbrfo=\ngithub.com/hashicorp/go-immutable-radix/v2 v2.1.0/go.mod h1:hgdqLXA4f6NIjRVisM1TJ9aOJVNRqKZj+xDGF6m7PBw=\ngithub.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8=\ngithub.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=\ngithub.com/hashicorp/go-version v1.2.1/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=\ngithub.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY=\ngithub.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=\ngithub.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k=\ngithub.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM=\ngithub.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=\ngithub.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=\ngithub.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM=\ngithub.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg=\ngithub.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=\ngithub.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=\ngithub.com/jgautheron/goconst v1.7.1 h1:VpdAG7Ca7yvvJk5n8dMwQhfEZJh95kl/Hl9S1OI5Jkk=\ngithub.com/jgautheron/goconst v1.7.1/go.mod h1:aAosetZ5zaeC/2EfMeRswtxUFBpe2Hr7HzkgX4fanO4=\ngithub.com/jingyugao/rowserrcheck v1.1.1 h1:zibz55j/MJtLsjP1OF4bSdgXxwL1b+Vn7Tjzq7gFzUs=\ngithub.com/jingyugao/rowserrcheck v1.1.1/go.mod h1:4yvlZSDb3IyDTUZJUmpZfm2Hwok+Dtp+nu2qOq+er9c=\ngithub.com/jjti/go-spancheck v0.6.4 h1:Tl7gQpYf4/TMU7AT84MN83/6PutY21Nb9fuQjFTpRRc=\ngithub.com/jjti/go-spancheck v0.6.4/go.mod h1:yAEYdKJ2lRkDA8g7X+oKUHXOWVAXSBJRv04OhF+QUjk=\ngithub.com/julz/importas v0.2.0 h1:y+MJN/UdL63QbFJHws9BVC5RpA2iq0kpjrFajTGivjQ=\ngithub.com/julz/importas v0.2.0/go.mod h1:pThlt589EnCYtMnmhmRYY/qn9lCf/frPOK+WMx3xiJY=\ngithub.com/karamaru-alpha/copyloopvar v1.1.0 h1:x7gNyKcC2vRBO1H2Mks5u1VxQtYvFiym7fCjIP8RPos=\ngithub.com/karamaru-alpha/copyloopvar v1.1.0/go.mod h1:u7CIfztblY0jZLOQZgH3oYsJzpC2A7S6u/lfgSXHy0k=\ngithub.com/kisielk/errcheck v1.8.0 h1:ZX/URYa7ilESY19ik/vBmCn6zdGQLxACwjAcWbHlYlg=\ngithub.com/kisielk/errcheck v1.8.0/go.mod h1:1kLL+jV4e+CFfueBmI1dSK2ADDyQnlrnrY/FqKluHJQ=\ngithub.com/kkHAIKE/contextcheck v1.1.5 h1:CdnJh63tcDe53vG+RebdpdXJTc9atMgGqdx8LXxiilg=\ngithub.com/kkHAIKE/contextcheck v1.1.5/go.mod h1:O930cpht4xb1YQpK+1+AgoM3mFsvxr7uyFptcnWTYUA=\ngithub.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I=\ngithub.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=\ngithub.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=\ngithub.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=\ngithub.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=\ngithub.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=\ngithub.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=\ngithub.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=\ngithub.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=\ngithub.com/kulti/thelper v0.6.3 h1:ElhKf+AlItIu+xGnI990no4cE2+XaSu1ULymV2Yulxs=\ngithub.com/kulti/thelper v0.6.3/go.mod h1:DsqKShOvP40epevkFrvIwkCMNYxMeTNjdWL4dqWHZ6I=\ngithub.com/kunwardeep/paralleltest v1.0.10 h1:wrodoaKYzS2mdNVnc4/w31YaXFtsc21PCTdvWJ/lDDs=\ngithub.com/kunwardeep/paralleltest v1.0.10/go.mod h1:2C7s65hONVqY7Q5Efj5aLzRCNLjw2h4eMc9EcypGjcY=\ngithub.com/kyoh86/exportloopref v0.1.11 h1:1Z0bcmTypkL3Q4k+IDHMWTcnCliEZcaPiIe0/ymEyhQ=\ngithub.com/kyoh86/exportloopref v0.1.11/go.mod h1:qkV4UF1zGl6EkF1ox8L5t9SwyeBAZ3qLMd6up458uqA=\ngithub.com/lasiar/canonicalheader v1.1.2 h1:vZ5uqwvDbyJCnMhmFYimgMZnJMjwljN5VGY0VKbMXb4=\ngithub.com/lasiar/canonicalheader v1.1.2/go.mod h1:qJCeLFS0G/QlLQ506T+Fk/fWMa2VmBUiEI2cuMK4djI=\ngithub.com/ldez/exptostd v0.3.1 h1:90yWWoAKMFHeovTK8uzBms9Ppp8Du/xQ20DRO26Ymrw=\ngithub.com/ldez/exptostd v0.3.1/go.mod h1:iZBRYaUmcW5jwCR3KROEZ1KivQQp6PHXbDPk9hqJKCQ=\ngithub.com/ldez/gomoddirectives v0.6.0 h1:Jyf1ZdTeiIB4dd+2n4qw+g4aI9IJ6JyfOZ8BityWvnA=\ngithub.com/ldez/gomoddirectives v0.6.0/go.mod h1:TuwOGYoPAoENDWQpe8DMqEm5nIfjrxZXmxX/CExWyZ4=\ngithub.com/ldez/grignotin v0.7.0 h1:vh0dI32WhHaq6LLPZ38g7WxXuZ1+RzyrJ7iPG9JMa8c=\ngithub.com/ldez/grignotin v0.7.0/go.mod h1:uaVTr0SoZ1KBii33c47O1M8Jp3OP3YDwhZCmzT9GHEk=\ngithub.com/ldez/tagliatelle v0.7.1 h1:bTgKjjc2sQcsgPiT902+aadvMjCeMHrY7ly2XKFORIk=\ngithub.com/ldez/tagliatelle v0.7.1/go.mod h1:3zjxUpsNB2aEZScWiZTHrAXOl1x25t3cRmzfK1mlo2I=\ngithub.com/ldez/usetesting v0.4.2 h1:J2WwbrFGk3wx4cZwSMiCQQ00kjGR0+tuuyW0Lqm4lwA=\ngithub.com/ldez/usetesting v0.4.2/go.mod h1:eEs46T3PpQ+9RgN9VjpY6qWdiw2/QmfiDeWmdZdrjIQ=\ngithub.com/leonklingele/grouper v1.1.2 h1:o1ARBDLOmmasUaNDesWqWCIFH3u7hoFlM84YrjT3mIY=\ngithub.com/leonklingele/grouper v1.1.2/go.mod h1:6D0M/HVkhs2yRKRFZUoGjeDy7EZTfFBE9gl4kjmIGkA=\ngithub.com/macabu/inamedparam v0.1.3 h1:2tk/phHkMlEL/1GNe/Yf6kkR/hkcUdAEY3L0hjYV1Mk=\ngithub.com/macabu/inamedparam v0.1.3/go.mod h1:93FLICAIk/quk7eaPPQvbzihUdn/QkGDwIZEoLtpH6I=\ngithub.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo=\ngithub.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60=\ngithub.com/maratori/testableexamples v1.0.0 h1:dU5alXRrD8WKSjOUnmJZuzdxWOEQ57+7s93SLMxb2vI=\ngithub.com/maratori/testableexamples v1.0.0/go.mod h1:4rhjL1n20TUTT4vdh3RDqSizKLyXp7K2u6HgraZCGzE=\ngithub.com/maratori/testpackage v1.1.1 h1:S58XVV5AD7HADMmD0fNnziNHqKvSdDuEKdPD1rNTU04=\ngithub.com/maratori/testpackage v1.1.1/go.mod h1:s4gRK/ym6AMrqpOa/kEbQTV4Q4jb7WeLZzVhVVVOQMc=\ngithub.com/matoous/godox v0.0.0-20230222163458-006bad1f9d26 h1:gWg6ZQ4JhDfJPqlo2srm/LN17lpybq15AryXIRcWYLE=\ngithub.com/matoous/godox v0.0.0-20230222163458-006bad1f9d26/go.mod h1:1BELzlh859Sh1c6+90blK8lbYy0kwQf1bYlBhBysy1s=\ngithub.com/matryer/is v1.4.0 h1:sosSmIWwkYITGrxZ25ULNDeKiMNzFSr4V/eqBQP0PeE=\ngithub.com/matryer/is v1.4.0/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU=\ngithub.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=\ngithub.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=\ngithub.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=\ngithub.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=\ngithub.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=\ngithub.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=\ngithub.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc=\ngithub.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=\ngithub.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo=\ngithub.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=\ngithub.com/mgechev/revive v1.5.1 h1:hE+QPeq0/wIzJwOphdVyUJ82njdd8Khp4fUIHGZHW3M=\ngithub.com/mgechev/revive v1.5.1/go.mod h1:lC9AhkJIBs5zwx8wkudyHrU+IJkrEKmpCmGMnIJPk4o=\ngithub.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=\ngithub.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=\ngithub.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=\ngithub.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=\ngithub.com/moby/locker v1.0.1 h1:fOXqR41zeveg4fFODix+1Ch4mj/gT0NE1XJbp/epuBg=\ngithub.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQppc=\ngithub.com/moby/sys/mountinfo v0.6.2 h1:BzJjoreD5BMFNmD9Rus6gdd1pLuecOFPt8wC+Vygl78=\ngithub.com/moby/sys/mountinfo v0.6.2/go.mod h1:IJb6JQeOklcdMU9F5xQ8ZALD+CUr5VlGpwtX+VE0rpI=\ngithub.com/moby/sys/userns v0.1.0 h1:tVLXkFOxVu9A64/yh59slHVv9ahO9UIev4JZusOLG/g=\ngithub.com/moby/sys/userns v0.1.0/go.mod h1:IHUYgu/kao6N8YZlp9Cf444ySSvCmDlmzUcYfDHOl28=\ngithub.com/moricho/tparallel v0.3.2 h1:odr8aZVFA3NZrNybggMkYO3rgPRcqjeQUlBBFVxKHTI=\ngithub.com/moricho/tparallel v0.3.2/go.mod h1:OQ+K3b4Ln3l2TZveGCywybl68glfLEwFGqvnjok8b+U=\ngithub.com/nakabonne/nestif v0.3.1 h1:wm28nZjhQY5HyYPx+weN3Q65k6ilSBxDb8v5S81B81U=\ngithub.com/nakabonne/nestif v0.3.1/go.mod h1:9EtoZochLn5iUprVDmDjqGKPofoUEBL8U4Ngq6aY7OE=\ngithub.com/nishanths/exhaustive v0.12.0 h1:vIY9sALmw6T/yxiASewa4TQcFsVYZQQRUQJhKRf3Swg=\ngithub.com/nishanths/exhaustive v0.12.0/go.mod h1:mEZ95wPIZW+x8kC4TgC+9YCUgiST7ecevsVDTgc2obs=\ngithub.com/nishanths/predeclared v0.2.2 h1:V2EPdZPliZymNAn79T8RkNApBjMmVKh5XRpLm/w98Vk=\ngithub.com/nishanths/predeclared v0.2.2/go.mod h1:RROzoN6TnGQupbC+lqggsOlcgysk3LMK/HI84Mp280c=\ngithub.com/nunnatsa/ginkgolinter v0.18.4 h1:zmX4KUR+6fk/vhUFt8DOP6KwznekhkmVSzzVJve2vyM=\ngithub.com/nunnatsa/ginkgolinter v0.18.4/go.mod h1:AMEane4QQ6JwFz5GgjI5xLUM9S/CylO+UyM97fN2iBI=\ngithub.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec=\ngithub.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=\ngithub.com/onsi/ginkgo/v2 v2.20.2 h1:7NVCeyIWROIAheY21RLS+3j2bb52W0W82tkberYytp4=\ngithub.com/onsi/ginkgo/v2 v2.20.2/go.mod h1:K9gyxPIlb+aIvnZ8bd9Ak+YP18w3APlR+5coaZoE2ag=\ngithub.com/onsi/gomega v1.34.2 h1:pNCwDkzrsv7MS9kpaQvVb1aVLahQXyJ/Tv5oAZMI3i8=\ngithub.com/onsi/gomega v1.34.2/go.mod h1:v1xfxRgk0KIsG+QOdm7p8UosrOzPYRo60fd3B/1Dukc=\ngithub.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=\ngithub.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=\ngithub.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug=\ngithub.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM=\ngithub.com/otiai10/copy v1.2.0/go.mod h1:rrF5dJ5F0t/EWSYODDu4j9/vEeYHMkc8jt0zJChqQWw=\ngithub.com/otiai10/copy v1.14.0 h1:dCI/t1iTdYGtkvCuBG2BgR6KZa83PTclw4U5n2wAllU=\ngithub.com/otiai10/copy v1.14.0/go.mod h1:ECfuL02W+/FkTWZWgQqXPWZgW9oeKCSQ5qVfSc4qc4w=\ngithub.com/otiai10/curr v0.0.0-20150429015615-9b4961190c95/go.mod h1:9qAhocn7zKJG+0mI8eUu6xqkFDYS2kb2saOteoSB3cE=\ngithub.com/otiai10/curr v1.0.0/go.mod h1:LskTG5wDwr8Rs+nNQ+1LlxRjAtTZZjtJW4rMXl6j4vs=\ngithub.com/otiai10/mint v1.3.0/go.mod h1:F5AjcsTsWUqX+Na9fpHb52P8pcRX2CI6A3ctIT91xUo=\ngithub.com/otiai10/mint v1.3.1/go.mod h1:/yxELlJQ0ufhjUwhshSj+wFjZ78CnZ48/1wtmBH1OTc=\ngithub.com/otiai10/mint v1.5.1 h1:XaPLeE+9vGbuyEHem1JNk3bYc7KKqyI/na0/mLd/Kks=\ngithub.com/otiai10/mint v1.5.1/go.mod h1:MJm72SBthJjz8qhefc4z1PYEieWmy8Bku7CjcAqyUSM=\ngithub.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8=\ngithub.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c=\ngithub.com/pelletier/go-toml/v2 v2.2.3 h1:YmeHyLY8mFWbdkNWwpr+qIL2bEqT0o95WSdkNHvL12M=\ngithub.com/pelletier/go-toml/v2 v2.2.3/go.mod h1:MfCQTFTvCcUyyvvwm1+G6H/jORL20Xlb6rzQu9GuUkc=\ngithub.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=\ngithub.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=\ngithub.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=\ngithub.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=\ngithub.com/polyfloyd/go-errorlint v1.7.0 h1:Zp6lzCK4hpBDj8y8a237YK4EPrMXQWvOe3nGoH4pFrU=\ngithub.com/polyfloyd/go-errorlint v1.7.0/go.mod h1:dGWKu85mGHnegQ2SWpEybFityCg3j7ZbwsVUxAOk9gY=\ngithub.com/prashantv/gostub v1.1.0 h1:BTyx3RfQjRHnUWaGF9oQos79AlQ5k8WNktv7VGvVH4g=\ngithub.com/prashantv/gostub v1.1.0/go.mod h1:A5zLQHz7ieHGG7is6LLXLz7I8+3LZzsrV0P1IAHhP5U=\ngithub.com/prometheus/client_golang v1.16.0 h1:yk/hx9hDbrGHovbci4BY+pRMfSuuat626eFsHb7tmT8=\ngithub.com/prometheus/client_golang v1.16.0/go.mod h1:Zsulrv/L9oM40tJ7T815tM89lFEugiJ9HzIqaAx4LKc=\ngithub.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=\ngithub.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4=\ngithub.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w=\ngithub.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM=\ngithub.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc=\ngithub.com/prometheus/procfs v0.10.1 h1:kYK1Va/YMlutzCGazswoHKo//tZVlFpKYh+PymziUAg=\ngithub.com/prometheus/procfs v0.10.1/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM=\ngithub.com/quasilyte/go-ruleguard v0.4.3-0.20240823090925-0fe6f58b47b1 h1:+Wl/0aFp0hpuHM3H//KMft64WQ1yX9LdJY64Qm/gFCo=\ngithub.com/quasilyte/go-ruleguard v0.4.3-0.20240823090925-0fe6f58b47b1/go.mod h1:GJLgqsLeo4qgavUoL8JeGFNS7qcisx3awV/w9eWTmNI=\ngithub.com/quasilyte/go-ruleguard/dsl v0.3.22 h1:wd8zkOhSNr+I+8Qeciml08ivDt1pSXe60+5DqOpCjPE=\ngithub.com/quasilyte/go-ruleguard/dsl v0.3.22/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU=\ngithub.com/quasilyte/gogrep v0.5.0 h1:eTKODPXbI8ffJMN+W2aE0+oL0z/nh8/5eNdiO34SOAo=\ngithub.com/quasilyte/gogrep v0.5.0/go.mod h1:Cm9lpz9NZjEoL1tgZ2OgeUKPIxL1meE7eo60Z6Sk+Ng=\ngithub.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727 h1:TCg2WBOl980XxGFEZSS6KlBGIV0diGdySzxATTWoqaU=\ngithub.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727/go.mod h1:rlzQ04UMyJXu/aOvhd8qT+hvDrFpiwqp8MRXDY9szc0=\ngithub.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 h1:M8mH9eK4OUR4lu7Gd+PU1fV2/qnDNfzT635KRSObncs=\ngithub.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567/go.mod h1:DWNGW8A4Y+GyBgPuaQJuWiy0XYftx4Xm/y5Jqk9I6VQ=\ngithub.com/raeperd/recvcheck v0.2.0 h1:GnU+NsbiCqdC2XX5+vMZzP+jAJC5fht7rcVTAhX74UI=\ngithub.com/raeperd/recvcheck v0.2.0/go.mod h1:n04eYkwIR0JbgD73wT8wL4JjPC3wm0nFtzBnWNocnYU=\ngithub.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=\ngithub.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=\ngithub.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=\ngithub.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII=\ngithub.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o=\ngithub.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=\ngithub.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=\ngithub.com/ryancurrah/gomodguard v1.3.5 h1:cShyguSwUEeC0jS7ylOiG/idnd1TpJ1LfHGpV3oJmPU=\ngithub.com/ryancurrah/gomodguard v1.3.5/go.mod h1:MXlEPQRxgfPQa62O8wzK3Ozbkv9Rkqr+wKjSxTdsNJE=\ngithub.com/ryanrolds/sqlclosecheck v0.5.1 h1:dibWW826u0P8jNLsLN+En7+RqWWTYrjCB9fJfSfdyCU=\ngithub.com/ryanrolds/sqlclosecheck v0.5.1/go.mod h1:2g3dUjoS6AL4huFdv6wn55WpLIDjY7ZgUR4J8HOO/XQ=\ngithub.com/sanposhiho/wastedassign/v2 v2.1.0 h1:crurBF7fJKIORrV85u9UUpePDYGWnwvv3+A96WvwXT0=\ngithub.com/sanposhiho/wastedassign/v2 v2.1.0/go.mod h1:+oSmSC+9bQ+VUAxA66nBb0Z7N8CK7mscKTDYC6aIek4=\ngithub.com/santhosh-tekuri/jsonschema/v6 v6.0.1 h1:PKK9DyHxif4LZo+uQSgXNqs0jj5+xZwwfKHgph2lxBw=\ngithub.com/santhosh-tekuri/jsonschema/v6 v6.0.1/go.mod h1:JXeL+ps8p7/KNMjDQk3TCwPpBy0wYklyWTfbkIzdIFU=\ngithub.com/sashamelentyev/interfacebloat v1.1.0 h1:xdRdJp0irL086OyW1H/RTZTr1h/tMEOsumirXcOJqAw=\ngithub.com/sashamelentyev/interfacebloat v1.1.0/go.mod h1:+Y9yU5YdTkrNvoX0xHc84dxiN1iBi9+G8zZIhPVoNjQ=\ngithub.com/sashamelentyev/usestdlibvars v1.28.0 h1:jZnudE2zKCtYlGzLVreNp5pmCdOxXUzwsMDBkR21cyQ=\ngithub.com/sashamelentyev/usestdlibvars v1.28.0/go.mod h1:9nl0jgOfHKWNFS43Ojw0i7aRoS4j6EBye3YBhmAIRF8=\ngithub.com/securego/gosec/v2 v2.21.4 h1:Le8MSj0PDmOnHJgUATjD96PaXRvCpKC+DGJvwyy0Mlk=\ngithub.com/securego/gosec/v2 v2.21.4/go.mod h1:Jtb/MwRQfRxCXyCm1rfM1BEiiiTfUOdyzzAhlr6lUTA=\ngithub.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=\ngithub.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ=\ngithub.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=\ngithub.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c h1:W65qqJCIOVP4jpqPQ0YvHYKwcMEMVWIzWC5iNQQfBTU=\ngithub.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c/go.mod h1:/PevMnwAxekIXwN8qQyfc5gl2NlkB3CQlkizAbOkeBs=\ngithub.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk=\ngithub.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ=\ngithub.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=\ngithub.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=\ngithub.com/sivchari/containedctx v1.0.3 h1:x+etemjbsh2fB5ewm5FeLNi5bUjK0V8n0RB+Wwfd0XE=\ngithub.com/sivchari/containedctx v1.0.3/go.mod h1:c1RDvCbnJLtH4lLcYD/GqwiBSSf4F5Qk0xld2rBqzJ4=\ngithub.com/sivchari/tenv v1.12.1 h1:+E0QzjktdnExv/wwsnnyk4oqZBUfuh89YMQT1cyuvSY=\ngithub.com/sivchari/tenv v1.12.1/go.mod h1:1LjSOUCc25snIr5n3DtGGrENhX3LuWefcplwVGC24mw=\ngithub.com/sonatard/noctx v0.1.0 h1:JjqOc2WN16ISWAjAk8M5ej0RfExEXtkEyExl2hLW+OM=\ngithub.com/sonatard/noctx v0.1.0/go.mod h1:0RvBxqY8D4j9cTTTWE8ylt2vqj2EPI8fHmrxHdsaZ2c=\ngithub.com/sourcegraph/go-diff v0.7.0 h1:9uLlrd5T46OXs5qpp8L/MTltk0zikUGi0sNNyCpA8G0=\ngithub.com/sourcegraph/go-diff v0.7.0/go.mod h1:iBszgVvyxdc8SFZ7gm69go2KDdt3ag071iBaWPF6cjs=\ngithub.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8=\ngithub.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY=\ngithub.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w=\ngithub.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU=\ngithub.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM=\ngithub.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y=\ngithub.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk=\ngithub.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo=\ngithub.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=\ngithub.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=\ngithub.com/spf13/viper v1.12.0 h1:CZ7eSOd3kZoaYDLbXnmzgQI5RlciuXBMA+18HwHRfZQ=\ngithub.com/spf13/viper v1.12.0/go.mod h1:b6COn30jlNxbm/V2IqWiNWkJ+vZNiMNksliPCiuKtSI=\ngithub.com/ssgreg/nlreturn/v2 v2.2.1 h1:X4XDI7jstt3ySqGU86YGAURbxw3oTDPK9sPEi6YEwQ0=\ngithub.com/ssgreg/nlreturn/v2 v2.2.1/go.mod h1:E/iiPB78hV7Szg2YfRgyIrk1AD6JVMTRkkxBiELzh2I=\ngithub.com/stbenjam/no-sprintf-host-port v0.2.0 h1:i8pxvGrt1+4G0czLr/WnmyH7zbZ8Bg8etvARQ1rpyl4=\ngithub.com/stbenjam/no-sprintf-host-port v0.2.0/go.mod h1:eL0bQ9PasS0hsyTyfTjjG+E80QIyPnBVQbYZyv20Jfk=\ngithub.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=\ngithub.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=\ngithub.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=\ngithub.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY=\ngithub.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=\ngithub.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=\ngithub.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=\ngithub.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=\ngithub.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=\ngithub.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=\ngithub.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=\ngithub.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=\ngithub.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=\ngithub.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=\ngithub.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=\ngithub.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=\ngithub.com/subosito/gotenv v1.4.1 h1:jyEFiXpy21Wm81FBN71l9VoMMV8H8jG+qIK3GCpY6Qs=\ngithub.com/subosito/gotenv v1.4.1/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0=\ngithub.com/tdakkota/asciicheck v0.3.0 h1:LqDGgZdholxZMaJgpM6b0U9CFIjDCbFdUF00bDnBKOQ=\ngithub.com/tdakkota/asciicheck v0.3.0/go.mod h1:KoJKXuX/Z/lt6XzLo8WMBfQGzak0SrAKZlvRr4tg8Ac=\ngithub.com/tenntenn/modver v1.0.1 h1:2klLppGhDgzJrScMpkj9Ujy3rXPUspSjAcev9tSEBgA=\ngithub.com/tenntenn/modver v1.0.1/go.mod h1:bePIyQPb7UeioSRkw3Q0XeMhYZSMx9B8ePqg6SAMGH0=\ngithub.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3 h1:f+jULpRQGxTSkNYKJ51yaw6ChIqO+Je8UqsTKN/cDag=\ngithub.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3/go.mod h1:ON8b8w4BN/kE1EOhwT0o+d62W65a6aPw1nouo9LMgyY=\ngithub.com/tetafro/godot v1.4.20 h1:z/p8Ek55UdNvzt4TFn2zx2KscpW4rWqcnUrdmvWJj7E=\ngithub.com/tetafro/godot v1.4.20/go.mod h1:2oVxTBSftRTh4+MVfUaUXR6bn2GDXCaMcOG4Dk3rfio=\ngithub.com/timakin/bodyclose v0.0.0-20241017074812-ed6a65f985e3 h1:y4mJRFlM6fUyPhoXuFg/Yu02fg/nIPFMOY8tOqppoFg=\ngithub.com/timakin/bodyclose v0.0.0-20241017074812-ed6a65f985e3/go.mod h1:mkjARE7Yr8qU23YcGMSALbIxTQ9r9QBVahQOBRfU460=\ngithub.com/timonwong/loggercheck v0.10.1 h1:uVZYClxQFpw55eh+PIoqM7uAOHMrhVcDoWDery9R8Lg=\ngithub.com/timonwong/loggercheck v0.10.1/go.mod h1:HEAWU8djynujaAVX7QI65Myb8qgfcZ1uKbdpg3ZzKl8=\ngithub.com/tomarrell/wrapcheck/v2 v2.10.0 h1:SzRCryzy4IrAH7bVGG4cK40tNUhmVmMDuJujy4XwYDg=\ngithub.com/tomarrell/wrapcheck/v2 v2.10.0/go.mod h1:g9vNIyhb5/9TQgumxQyOEqDHsmGYcGsVMOx/xGkqdMo=\ngithub.com/tommy-muehle/go-mnd/v2 v2.5.1 h1:NowYhSdyE/1zwK9QCLeRb6USWdoif80Ie+v+yU8u1Zw=\ngithub.com/tommy-muehle/go-mnd/v2 v2.5.1/go.mod h1:WsUAkMJMYww6l/ufffCD3m+P7LEvr8TnZn9lwVDlgzw=\ngithub.com/ultraware/funlen v0.2.0 h1:gCHmCn+d2/1SemTdYMiKLAHFYxTYz7z9VIDRaTGyLkI=\ngithub.com/ultraware/funlen v0.2.0/go.mod h1:ZE0q4TsJ8T1SQcjmkhN/w+MceuatI6pBFSxxyteHIJA=\ngithub.com/ultraware/whitespace v0.2.0 h1:TYowo2m9Nfj1baEQBjuHzvMRbp19i+RCcRYrSWoFa+g=\ngithub.com/ultraware/whitespace v0.2.0/go.mod h1:XcP1RLD81eV4BW8UhQlpaR+SDc2givTvyI8a586WjW8=\ngithub.com/urfave/cli/v2 v2.27.1 h1:8xSQ6szndafKVRmfyeUMxkNUJQMjL1F2zmsZ+qHpfho=\ngithub.com/urfave/cli/v2 v2.27.1/go.mod h1:8qnjx1vcq5s2/wpsqoZFndg2CE5tNFyrTvS6SinrnYQ=\ngithub.com/uudashr/gocognit v1.2.0 h1:3BU9aMr1xbhPlvJLSydKwdLN3tEUUrzPSSM8S4hDYRA=\ngithub.com/uudashr/gocognit v1.2.0/go.mod h1:k/DdKPI6XBZO1q7HgoV2juESI2/Ofj9AcHPZhBBdrTU=\ngithub.com/uudashr/iface v1.3.0 h1:zwPch0fs9tdh9BmL5kcgSpvnObV+yHjO4JjVBl8IA10=\ngithub.com/uudashr/iface v1.3.0/go.mod h1:4QvspiRd3JLPAEXBQ9AiZpLbJlrWWgRChOKDJEuQTdg=\ngithub.com/xen0n/gosmopolitan v1.2.2 h1:/p2KTnMzwRexIW8GlKawsTWOxn7UHA+jCMF/V8HHtvU=\ngithub.com/xen0n/gosmopolitan v1.2.2/go.mod h1:7XX7Mj61uLYrj0qmeN0zi7XDon9JRAEhYQqAPLVNTeg=\ngithub.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU=\ngithub.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8=\ngithub.com/yagipy/maintidx v1.0.0 h1:h5NvIsCz+nRDapQ0exNv4aJ0yXSI0420omVANTv3GJM=\ngithub.com/yagipy/maintidx v1.0.0/go.mod h1:0qNf/I/CCZXSMhsRsrEPDZ+DkekpKLXAJfsTACwgXLk=\ngithub.com/yeya24/promlinter v0.3.0 h1:JVDbMp08lVCP7Y6NP3qHroGAO6z2yGKQtS5JsjqtoFs=\ngithub.com/yeya24/promlinter v0.3.0/go.mod h1:cDfJQQYv9uYciW60QT0eeHlFodotkYZlL+YcPQN+mW4=\ngithub.com/ykadowak/zerologlint v0.1.5 h1:Gy/fMz1dFQN9JZTPjv1hxEk+sRWm05row04Yoolgdiw=\ngithub.com/ykadowak/zerologlint v0.1.5/go.mod h1:KaUskqF3e/v59oPmdq1U1DnKcuHokl2/K1U4pmIELKg=\ngithub.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=\ngithub.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=\ngithub.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=\ngithub.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=\ngithub.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=\ngithub.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=\ngitlab.com/bosi/decorder v0.4.2 h1:qbQaV3zgwnBZ4zPMhGLW4KZe7A7NwxEhJx39R3shffo=\ngitlab.com/bosi/decorder v0.4.2/go.mod h1:muuhHoaJkA9QLcYHq4Mj8FJUwDZ+EirSHRiaTcTf6T8=\ngo-simpler.org/assert v0.9.0 h1:PfpmcSvL7yAnWyChSjOz6Sp6m9j5lyK8Ok9pEL31YkQ=\ngo-simpler.org/assert v0.9.0/go.mod h1:74Eqh5eI6vCK6Y5l3PI8ZYFXG4Sa+tkr70OIPJAUr28=\ngo-simpler.org/musttag v0.13.0 h1:Q/YAW0AHvaoaIbsPj3bvEI5/QFP7w696IMUpnKXQfCE=\ngo-simpler.org/musttag v0.13.0/go.mod h1:FTzIGeK6OkKlUDVpj0iQUXZLUO1Js9+mvykDQy9C5yM=\ngo-simpler.org/sloglint v0.7.2 h1:Wc9Em/Zeuu7JYpl+oKoYOsQSy2X560aVueCW/m6IijY=\ngo-simpler.org/sloglint v0.7.2/go.mod h1:US+9C80ppl7VsThQclkM7BkCHQAzuz8kHLsW3ppuluo=\ngo.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=\ngo.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=\ngo.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 h1:TT4fX+nBOA/+LUkobKGW1ydGcn+G3vRw9+g5HwCphpk=\ngo.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0/go.mod h1:L7UH0GbB0p47T4Rri3uHjbpCFYrVrwc1I25QhNPiGK8=\ngo.opentelemetry.io/otel v1.29.0 h1:PdomN/Al4q/lN6iBJEN3AwPvUiHPMlt93c8bqTG5Llw=\ngo.opentelemetry.io/otel v1.29.0/go.mod h1:N/WtXPs1CNCUEx+Agz5uouwCba+i+bJGFicT8SR4NP8=\ngo.opentelemetry.io/otel/metric v1.29.0 h1:vPf/HFWTNkPu1aYeIsc98l4ktOQaL6LeSoeV2g+8YLc=\ngo.opentelemetry.io/otel/metric v1.29.0/go.mod h1:auu/QWieFVWx+DmQOUMgj0F8LHWdgalxXqvp7BII/W8=\ngo.opentelemetry.io/otel/trace v1.29.0 h1:J/8ZNK4XgR7a21DZUAsbF8pZ5Jcw1VhACmnYt39JTi4=\ngo.opentelemetry.io/otel/trace v1.29.0/go.mod h1:eHl3w0sp3paPkYstJOmAimxhiFXPg+MMTlEh3nsQgWQ=\ngo.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw=\ngo.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=\ngo.uber.org/automaxprocs v1.6.0 h1:O3y2/QNTOdbF+e/dpXNNW7Rx2hZ4sTIPyybbxyNqTUs=\ngo.uber.org/automaxprocs v1.6.0/go.mod h1:ifeIMSnPZuznNm6jmdzmU3/bfk01Fe2fotchwEFJ8r8=\ngo.uber.org/goleak v1.1.12 h1:gZAh5/EyT/HQwlpkCy6wTpqfH9H8Lz8zbm3dZh+OyzA=\ngo.uber.org/goleak v1.1.12/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=\ngo.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4=\ngo.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=\ngo.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60=\ngo.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg=\ngolang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=\ngolang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=\ngolang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=\ngolang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=\ngolang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc=\ngolang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4=\ngolang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=\ngolang.org/x/exp v0.0.0-20240909161429-701f63a606c0 h1:e66Fs6Z+fZTbFBAxKfP3PALWBtpfqks2bwGcexMxgtk=\ngolang.org/x/exp v0.0.0-20240909161429-701f63a606c0/go.mod h1:2TbTHSBQa924w8M6Xs1QcRcFwyucIwBGpK1p2f1YFFY=\ngolang.org/x/exp/typeparams v0.0.0-20220428152302-39d4317da171/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk=\ngolang.org/x/exp/typeparams v0.0.0-20230203172020-98cc5a0785f9/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk=\ngolang.org/x/exp/typeparams v0.0.0-20241108190413-2d47ceb2692f h1:WTyX8eCCyfdqiPYkRGm0MqElSfYFH3yR1+rl/mct9sA=\ngolang.org/x/exp/typeparams v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk=\ngolang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=\ngolang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=\ngolang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=\ngolang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=\ngolang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=\ngolang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=\ngolang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=\ngolang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=\ngolang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY=\ngolang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=\ngolang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=\ngolang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=\ngolang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=\ngolang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=\ngolang.org/x/mod v0.13.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=\ngolang.org/x/mod v0.26.0 h1:EGMPT//Ezu+ylkCijjPc+f4Aih7sZvaAr+O3EHBxvZg=\ngolang.org/x/mod v0.26.0/go.mod h1:/j6NAhSk8iQ723BGAUyoAcn7SlD7s15Dp9Nd/SfeaFQ=\ngolang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=\ngolang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=\ngolang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=\ngolang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=\ngolang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=\ngolang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=\ngolang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=\ngolang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=\ngolang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=\ngolang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws=\ngolang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=\ngolang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc=\ngolang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=\ngolang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk=\ngolang.org/x/net v0.16.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=\ngolang.org/x/net v0.42.0 h1:jzkYrhi3YQWD6MLBJcsklgQsoAcw89EcZbJw8Z614hs=\ngolang.org/x/net v0.42.0/go.mod h1:FF1RA5d3u7nAYA4z2TkclSCKh68eSXtiFwcWQpPXdt8=\ngolang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=\ngolang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=\ngolang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=\ngolang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw=\ngolang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=\ngolang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=\ngolang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.0.0-20211105183446-c75c47738b0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=\ngolang.org/x/sys v0.34.0 h1:H5Y5sJ2L2JRdyv7ROF1he/lPdvFsd0mJHFw2ThKHxLA=\ngolang.org/x/sys v0.34.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=\ngolang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=\ngolang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=\ngolang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=\ngolang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ=\ngolang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=\ngolang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U=\ngolang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo=\ngolang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU=\ngolang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U=\ngolang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=\ngolang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=\ngolang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=\ngolang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=\ngolang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=\ngolang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=\ngolang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=\ngolang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=\ngolang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=\ngolang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=\ngolang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=\ngolang.org/x/text v0.27.0 h1:4fGWRpyh641NLlecmyl4LOe6yDdfaYNrGb2zdfo4JV4=\ngolang.org/x/text v0.27.0/go.mod h1:1D28KMCvyooCX9hBiosv5Tz/+YLxj0j7XhWjpSUF7CU=\ngolang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=\ngolang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190321232350-e250d351ecad/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=\ngolang.org/x/tools v0.0.0-20190910044552-dd2b5c81c578/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=\ngolang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=\ngolang.org/x/tools v0.0.0-20200324003944-a576cf524670/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8=\ngolang.org/x/tools v0.0.0-20200329025819-fd4102a86c65/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8=\ngolang.org/x/tools v0.0.0-20200724022722-7017fd6b1305/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=\ngolang.org/x/tools v0.0.0-20200820010801-b793a1359eac/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=\ngolang.org/x/tools v0.0.0-20201023174141-c8cfbd0f21e6/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=\ngolang.org/x/tools v0.1.1-0.20210205202024-ef80cdb6ec6d/go.mod h1:9bzcO0MWcOuT0tm1iBGzDVPshzfwoVvREIui8C+MHqU=\ngolang.org/x/tools v0.1.1-0.20210302220138-2ac05c832e1a/go.mod h1:9bzcO0MWcOuT0tm1iBGzDVPshzfwoVvREIui8C+MHqU=\ngolang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=\ngolang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=\ngolang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E=\ngolang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=\ngolang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k=\ngolang.org/x/tools v0.5.0/go.mod h1:N+Kgy78s5I24c24dU8OfWNEotWjutIs8SnJvn5IDq+k=\ngolang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=\ngolang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s=\ngolang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58=\ngolang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg=\ngolang.org/x/tools v0.34.0 h1:qIpSLOxeCYGg9TrcJokLBG4KFA6d795g0xkBkiESGlo=\ngolang.org/x/tools v0.34.0/go.mod h1:pAP9OwEaY1CAW3HOmg3hLZC5Z0CCmzjAF2UQMSqNARg=\ngolang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=\ngolang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=\ngolang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=\ngolang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=\ngoogle.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=\ngoogle.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=\ngoogle.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=\ngoogle.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=\ngoogle.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=\ngoogle.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 h1:pPJltXNxVzT4pK9yD8vR9X75DaWYYmLGMsEvBfFQZzQ=\ngoogle.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU=\ngoogle.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=\ngoogle.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=\ngoogle.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=\ngoogle.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=\ngoogle.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=\ngoogle.golang.org/grpc v1.66.2 h1:3QdXkuq3Bkh7w+ywLdLvM56cmGvQHUMZpiCzt6Rqaoo=\ngoogle.golang.org/grpc v1.66.2/go.mod h1:s3/l6xSSCURdVfAnL+TqCNMyTDAGN6+lZeVxnZR128Y=\ngoogle.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=\ngoogle.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=\ngoogle.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=\ngoogle.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=\ngoogle.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=\ngoogle.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=\ngoogle.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=\ngoogle.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=\ngoogle.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=\ngoogle.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io=\ngoogle.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=\ngopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=\ngopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=\ngopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=\ngopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=\ngopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=\ngopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=\ngopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=\ngopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=\ngopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=\ngopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=\ngopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=\ngotest.tools/v3 v3.4.0 h1:ZazjZUfuVeZGLAmlKKuyv3IKP5orXcwtOwDQH6YVr6o=\ngotest.tools/v3 v3.4.0/go.mod h1:CtbdzLSsqVhDgMtKsx03ird5YTGB3ar27v0u/yKBW5g=\nhonnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=\nhonnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=\nhonnef.co/go/tools v0.5.1 h1:4bH5o3b5ZULQ4UrBmP+63W9r7qIkqJClEA9ko5YKx+I=\nhonnef.co/go/tools v0.5.1/go.mod h1:e9irvo83WDG9/irijV44wr3tbhcFeRnfpVlRqVwpzMs=\nk8s.io/klog/v2 v2.90.1 h1:m4bYOKall2MmOiRaR1J+We67Do7vm9KiQVlT96lnHUw=\nk8s.io/klog/v2 v2.90.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=\nmvdan.cc/gofumpt v0.7.0 h1:bg91ttqXmi9y2xawvkuMXyvAA/1ZGJqYAEGjXuP0JXU=\nmvdan.cc/gofumpt v0.7.0/go.mod h1:txVFJy/Sc/mvaycET54pV8SW8gWxTlUuGHVEcncmNUo=\nmvdan.cc/unparam v0.0.0-20240528143540-8a5130ca722f h1:lMpcwN6GxNbWtbpI1+xzFLSW8XzX0u72NttUGVFjO3U=\nmvdan.cc/unparam v0.0.0-20240528143540-8a5130ca722f/go.mod h1:RSLa7mKKCNeTTMHBw5Hsy2rfJmd6O2ivt9Dw9ZqCQpQ=\noras.land/oras-go/v2 v2.4.0 h1:i+Wt5oCaMHu99guBD0yuBjdLvX7Lz8ukPbwXdR7uBMs=\noras.land/oras-go/v2 v2.4.0/go.mod h1:osvtg0/ClRq1KkydMAEu/IxFieyjItcsQ4ut4PPF+f8=\n"
  },
  {
    "path": "tools/tools.go",
    "content": "//go:build never\n// +build never\n\n/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package tools is used to track binary dependencies with go modules\n// https://github.com/golang/go/wiki/Modules#how-can-i-track-tool-dependencies-for-a-module\npackage tools\n\nimport (\n\t_ \"github.com/estesp/manifest-tool/v2/cmd/manifest-tool\"\n\t_ \"github.com/golangci/golangci-lint/cmd/golangci-lint\"\n\t_ \"github.com/google/go-licenses/v2\"\n)\n"
  },
  {
    "path": "vendor/github.com/davecgh/go-spew/LICENSE",
    "content": "ISC License\n\nCopyright (c) 2012-2016 Dave Collins <dave@davec.name>\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted, provided that the above\ncopyright notice and this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\nMERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\nANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\nWHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\nACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n"
  },
  {
    "path": "vendor/github.com/davecgh/go-spew/spew/bypass.go",
    "content": "// Copyright (c) 2015-2016 Dave Collins <dave@davec.name>\n//\n// Permission to use, copy, modify, and distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n\n// NOTE: Due to the following build constraints, this file will only be compiled\n// when the code is not running on Google App Engine, compiled by GopherJS, and\n// \"-tags safe\" is not added to the go build command line.  The \"disableunsafe\"\n// tag is deprecated and thus should not be used.\n// Go versions prior to 1.4 are disabled because they use a different layout\n// for interfaces which make the implementation of unsafeReflectValue more complex.\n// +build !js,!appengine,!safe,!disableunsafe,go1.4\n\npackage spew\n\nimport (\n\t\"reflect\"\n\t\"unsafe\"\n)\n\nconst (\n\t// UnsafeDisabled is a build-time constant which specifies whether or\n\t// not access to the unsafe package is available.\n\tUnsafeDisabled = false\n\n\t// ptrSize is the size of a pointer on the current arch.\n\tptrSize = unsafe.Sizeof((*byte)(nil))\n)\n\ntype flag uintptr\n\nvar (\n\t// flagRO indicates whether the value field of a reflect.Value\n\t// is read-only.\n\tflagRO flag\n\n\t// flagAddr indicates whether the address of the reflect.Value's\n\t// value may be taken.\n\tflagAddr flag\n)\n\n// flagKindMask holds the bits that make up the kind\n// part of the flags field. In all the supported versions,\n// it is in the lower 5 bits.\nconst flagKindMask = flag(0x1f)\n\n// Different versions of Go have used different\n// bit layouts for the flags type. This table\n// records the known combinations.\nvar okFlags = []struct {\n\tro, addr flag\n}{{\n\t// From Go 1.4 to 1.5\n\tro:   1 << 5,\n\taddr: 1 << 7,\n}, {\n\t// Up to Go tip.\n\tro:   1<<5 | 1<<6,\n\taddr: 1 << 8,\n}}\n\nvar flagValOffset = func() uintptr {\n\tfield, ok := reflect.TypeOf(reflect.Value{}).FieldByName(\"flag\")\n\tif !ok {\n\t\tpanic(\"reflect.Value has no flag field\")\n\t}\n\treturn field.Offset\n}()\n\n// flagField returns a pointer to the flag field of a reflect.Value.\nfunc flagField(v *reflect.Value) *flag {\n\treturn (*flag)(unsafe.Pointer(uintptr(unsafe.Pointer(v)) + flagValOffset))\n}\n\n// unsafeReflectValue converts the passed reflect.Value into a one that bypasses\n// the typical safety restrictions preventing access to unaddressable and\n// unexported data.  It works by digging the raw pointer to the underlying\n// value out of the protected value and generating a new unprotected (unsafe)\n// reflect.Value to it.\n//\n// This allows us to check for implementations of the Stringer and error\n// interfaces to be used for pretty printing ordinarily unaddressable and\n// inaccessible values such as unexported struct fields.\nfunc unsafeReflectValue(v reflect.Value) reflect.Value {\n\tif !v.IsValid() || (v.CanInterface() && v.CanAddr()) {\n\t\treturn v\n\t}\n\tflagFieldPtr := flagField(&v)\n\t*flagFieldPtr &^= flagRO\n\t*flagFieldPtr |= flagAddr\n\treturn v\n}\n\n// Sanity checks against future reflect package changes\n// to the type or semantics of the Value.flag field.\nfunc init() {\n\tfield, ok := reflect.TypeOf(reflect.Value{}).FieldByName(\"flag\")\n\tif !ok {\n\t\tpanic(\"reflect.Value has no flag field\")\n\t}\n\tif field.Type.Kind() != reflect.TypeOf(flag(0)).Kind() {\n\t\tpanic(\"reflect.Value flag field has changed kind\")\n\t}\n\ttype t0 int\n\tvar t struct {\n\t\tA t0\n\t\t// t0 will have flagEmbedRO set.\n\t\tt0\n\t\t// a will have flagStickyRO set\n\t\ta t0\n\t}\n\tvA := reflect.ValueOf(t).FieldByName(\"A\")\n\tva := reflect.ValueOf(t).FieldByName(\"a\")\n\tvt0 := reflect.ValueOf(t).FieldByName(\"t0\")\n\n\t// Infer flagRO from the difference between the flags\n\t// for the (otherwise identical) fields in t.\n\tflagPublic := *flagField(&vA)\n\tflagWithRO := *flagField(&va) | *flagField(&vt0)\n\tflagRO = flagPublic ^ flagWithRO\n\n\t// Infer flagAddr from the difference between a value\n\t// taken from a pointer and not.\n\tvPtrA := reflect.ValueOf(&t).Elem().FieldByName(\"A\")\n\tflagNoPtr := *flagField(&vA)\n\tflagPtr := *flagField(&vPtrA)\n\tflagAddr = flagNoPtr ^ flagPtr\n\n\t// Check that the inferred flags tally with one of the known versions.\n\tfor _, f := range okFlags {\n\t\tif flagRO == f.ro && flagAddr == f.addr {\n\t\t\treturn\n\t\t}\n\t}\n\tpanic(\"reflect.Value read-only flag has changed semantics\")\n}\n"
  },
  {
    "path": "vendor/github.com/davecgh/go-spew/spew/bypasssafe.go",
    "content": "// Copyright (c) 2015-2016 Dave Collins <dave@davec.name>\n//\n// Permission to use, copy, modify, and distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n\n// NOTE: Due to the following build constraints, this file will only be compiled\n// when the code is running on Google App Engine, compiled by GopherJS, or\n// \"-tags safe\" is added to the go build command line.  The \"disableunsafe\"\n// tag is deprecated and thus should not be used.\n// +build js appengine safe disableunsafe !go1.4\n\npackage spew\n\nimport \"reflect\"\n\nconst (\n\t// UnsafeDisabled is a build-time constant which specifies whether or\n\t// not access to the unsafe package is available.\n\tUnsafeDisabled = true\n)\n\n// unsafeReflectValue typically converts the passed reflect.Value into a one\n// that bypasses the typical safety restrictions preventing access to\n// unaddressable and unexported data.  However, doing this relies on access to\n// the unsafe package.  This is a stub version which simply returns the passed\n// reflect.Value when the unsafe package is not available.\nfunc unsafeReflectValue(v reflect.Value) reflect.Value {\n\treturn v\n}\n"
  },
  {
    "path": "vendor/github.com/davecgh/go-spew/spew/common.go",
    "content": "/*\n * Copyright (c) 2013-2016 Dave Collins <dave@davec.name>\n *\n * Permission to use, copy, modify, and distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n */\n\npackage spew\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strconv\"\n)\n\n// Some constants in the form of bytes to avoid string overhead.  This mirrors\n// the technique used in the fmt package.\nvar (\n\tpanicBytes            = []byte(\"(PANIC=\")\n\tplusBytes             = []byte(\"+\")\n\tiBytes                = []byte(\"i\")\n\ttrueBytes             = []byte(\"true\")\n\tfalseBytes            = []byte(\"false\")\n\tinterfaceBytes        = []byte(\"(interface {})\")\n\tcommaNewlineBytes     = []byte(\",\\n\")\n\tnewlineBytes          = []byte(\"\\n\")\n\topenBraceBytes        = []byte(\"{\")\n\topenBraceNewlineBytes = []byte(\"{\\n\")\n\tcloseBraceBytes       = []byte(\"}\")\n\tasteriskBytes         = []byte(\"*\")\n\tcolonBytes            = []byte(\":\")\n\tcolonSpaceBytes       = []byte(\": \")\n\topenParenBytes        = []byte(\"(\")\n\tcloseParenBytes       = []byte(\")\")\n\tspaceBytes            = []byte(\" \")\n\tpointerChainBytes     = []byte(\"->\")\n\tnilAngleBytes         = []byte(\"<nil>\")\n\tmaxNewlineBytes       = []byte(\"<max depth reached>\\n\")\n\tmaxShortBytes         = []byte(\"<max>\")\n\tcircularBytes         = []byte(\"<already shown>\")\n\tcircularShortBytes    = []byte(\"<shown>\")\n\tinvalidAngleBytes     = []byte(\"<invalid>\")\n\topenBracketBytes      = []byte(\"[\")\n\tcloseBracketBytes     = []byte(\"]\")\n\tpercentBytes          = []byte(\"%\")\n\tprecisionBytes        = []byte(\".\")\n\topenAngleBytes        = []byte(\"<\")\n\tcloseAngleBytes       = []byte(\">\")\n\topenMapBytes          = []byte(\"map[\")\n\tcloseMapBytes         = []byte(\"]\")\n\tlenEqualsBytes        = []byte(\"len=\")\n\tcapEqualsBytes        = []byte(\"cap=\")\n)\n\n// hexDigits is used to map a decimal value to a hex digit.\nvar hexDigits = \"0123456789abcdef\"\n\n// catchPanic handles any panics that might occur during the handleMethods\n// calls.\nfunc catchPanic(w io.Writer, v reflect.Value) {\n\tif err := recover(); err != nil {\n\t\tw.Write(panicBytes)\n\t\tfmt.Fprintf(w, \"%v\", err)\n\t\tw.Write(closeParenBytes)\n\t}\n}\n\n// handleMethods attempts to call the Error and String methods on the underlying\n// type the passed reflect.Value represents and outputes the result to Writer w.\n//\n// It handles panics in any called methods by catching and displaying the error\n// as the formatted value.\nfunc handleMethods(cs *ConfigState, w io.Writer, v reflect.Value) (handled bool) {\n\t// We need an interface to check if the type implements the error or\n\t// Stringer interface.  However, the reflect package won't give us an\n\t// interface on certain things like unexported struct fields in order\n\t// to enforce visibility rules.  We use unsafe, when it's available,\n\t// to bypass these restrictions since this package does not mutate the\n\t// values.\n\tif !v.CanInterface() {\n\t\tif UnsafeDisabled {\n\t\t\treturn false\n\t\t}\n\n\t\tv = unsafeReflectValue(v)\n\t}\n\n\t// Choose whether or not to do error and Stringer interface lookups against\n\t// the base type or a pointer to the base type depending on settings.\n\t// Technically calling one of these methods with a pointer receiver can\n\t// mutate the value, however, types which choose to satisify an error or\n\t// Stringer interface with a pointer receiver should not be mutating their\n\t// state inside these interface methods.\n\tif !cs.DisablePointerMethods && !UnsafeDisabled && !v.CanAddr() {\n\t\tv = unsafeReflectValue(v)\n\t}\n\tif v.CanAddr() {\n\t\tv = v.Addr()\n\t}\n\n\t// Is it an error or Stringer?\n\tswitch iface := v.Interface().(type) {\n\tcase error:\n\t\tdefer catchPanic(w, v)\n\t\tif cs.ContinueOnMethod {\n\t\t\tw.Write(openParenBytes)\n\t\t\tw.Write([]byte(iface.Error()))\n\t\t\tw.Write(closeParenBytes)\n\t\t\tw.Write(spaceBytes)\n\t\t\treturn false\n\t\t}\n\n\t\tw.Write([]byte(iface.Error()))\n\t\treturn true\n\n\tcase fmt.Stringer:\n\t\tdefer catchPanic(w, v)\n\t\tif cs.ContinueOnMethod {\n\t\t\tw.Write(openParenBytes)\n\t\t\tw.Write([]byte(iface.String()))\n\t\t\tw.Write(closeParenBytes)\n\t\t\tw.Write(spaceBytes)\n\t\t\treturn false\n\t\t}\n\t\tw.Write([]byte(iface.String()))\n\t\treturn true\n\t}\n\treturn false\n}\n\n// printBool outputs a boolean value as true or false to Writer w.\nfunc printBool(w io.Writer, val bool) {\n\tif val {\n\t\tw.Write(trueBytes)\n\t} else {\n\t\tw.Write(falseBytes)\n\t}\n}\n\n// printInt outputs a signed integer value to Writer w.\nfunc printInt(w io.Writer, val int64, base int) {\n\tw.Write([]byte(strconv.FormatInt(val, base)))\n}\n\n// printUint outputs an unsigned integer value to Writer w.\nfunc printUint(w io.Writer, val uint64, base int) {\n\tw.Write([]byte(strconv.FormatUint(val, base)))\n}\n\n// printFloat outputs a floating point value using the specified precision,\n// which is expected to be 32 or 64bit, to Writer w.\nfunc printFloat(w io.Writer, val float64, precision int) {\n\tw.Write([]byte(strconv.FormatFloat(val, 'g', -1, precision)))\n}\n\n// printComplex outputs a complex value using the specified float precision\n// for the real and imaginary parts to Writer w.\nfunc printComplex(w io.Writer, c complex128, floatPrecision int) {\n\tr := real(c)\n\tw.Write(openParenBytes)\n\tw.Write([]byte(strconv.FormatFloat(r, 'g', -1, floatPrecision)))\n\ti := imag(c)\n\tif i >= 0 {\n\t\tw.Write(plusBytes)\n\t}\n\tw.Write([]byte(strconv.FormatFloat(i, 'g', -1, floatPrecision)))\n\tw.Write(iBytes)\n\tw.Write(closeParenBytes)\n}\n\n// printHexPtr outputs a uintptr formatted as hexadecimal with a leading '0x'\n// prefix to Writer w.\nfunc printHexPtr(w io.Writer, p uintptr) {\n\t// Null pointer.\n\tnum := uint64(p)\n\tif num == 0 {\n\t\tw.Write(nilAngleBytes)\n\t\treturn\n\t}\n\n\t// Max uint64 is 16 bytes in hex + 2 bytes for '0x' prefix\n\tbuf := make([]byte, 18)\n\n\t// It's simpler to construct the hex string right to left.\n\tbase := uint64(16)\n\ti := len(buf) - 1\n\tfor num >= base {\n\t\tbuf[i] = hexDigits[num%base]\n\t\tnum /= base\n\t\ti--\n\t}\n\tbuf[i] = hexDigits[num]\n\n\t// Add '0x' prefix.\n\ti--\n\tbuf[i] = 'x'\n\ti--\n\tbuf[i] = '0'\n\n\t// Strip unused leading bytes.\n\tbuf = buf[i:]\n\tw.Write(buf)\n}\n\n// valuesSorter implements sort.Interface to allow a slice of reflect.Value\n// elements to be sorted.\ntype valuesSorter struct {\n\tvalues  []reflect.Value\n\tstrings []string // either nil or same len and values\n\tcs      *ConfigState\n}\n\n// newValuesSorter initializes a valuesSorter instance, which holds a set of\n// surrogate keys on which the data should be sorted.  It uses flags in\n// ConfigState to decide if and how to populate those surrogate keys.\nfunc newValuesSorter(values []reflect.Value, cs *ConfigState) sort.Interface {\n\tvs := &valuesSorter{values: values, cs: cs}\n\tif canSortSimply(vs.values[0].Kind()) {\n\t\treturn vs\n\t}\n\tif !cs.DisableMethods {\n\t\tvs.strings = make([]string, len(values))\n\t\tfor i := range vs.values {\n\t\t\tb := bytes.Buffer{}\n\t\t\tif !handleMethods(cs, &b, vs.values[i]) {\n\t\t\t\tvs.strings = nil\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tvs.strings[i] = b.String()\n\t\t}\n\t}\n\tif vs.strings == nil && cs.SpewKeys {\n\t\tvs.strings = make([]string, len(values))\n\t\tfor i := range vs.values {\n\t\t\tvs.strings[i] = Sprintf(\"%#v\", vs.values[i].Interface())\n\t\t}\n\t}\n\treturn vs\n}\n\n// canSortSimply tests whether a reflect.Kind is a primitive that can be sorted\n// directly, or whether it should be considered for sorting by surrogate keys\n// (if the ConfigState allows it).\nfunc canSortSimply(kind reflect.Kind) bool {\n\t// This switch parallels valueSortLess, except for the default case.\n\tswitch kind {\n\tcase reflect.Bool:\n\t\treturn true\n\tcase reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int:\n\t\treturn true\n\tcase reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint:\n\t\treturn true\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn true\n\tcase reflect.String:\n\t\treturn true\n\tcase reflect.Uintptr:\n\t\treturn true\n\tcase reflect.Array:\n\t\treturn true\n\t}\n\treturn false\n}\n\n// Len returns the number of values in the slice.  It is part of the\n// sort.Interface implementation.\nfunc (s *valuesSorter) Len() int {\n\treturn len(s.values)\n}\n\n// Swap swaps the values at the passed indices.  It is part of the\n// sort.Interface implementation.\nfunc (s *valuesSorter) Swap(i, j int) {\n\ts.values[i], s.values[j] = s.values[j], s.values[i]\n\tif s.strings != nil {\n\t\ts.strings[i], s.strings[j] = s.strings[j], s.strings[i]\n\t}\n}\n\n// valueSortLess returns whether the first value should sort before the second\n// value.  It is used by valueSorter.Less as part of the sort.Interface\n// implementation.\nfunc valueSortLess(a, b reflect.Value) bool {\n\tswitch a.Kind() {\n\tcase reflect.Bool:\n\t\treturn !a.Bool() && b.Bool()\n\tcase reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int:\n\t\treturn a.Int() < b.Int()\n\tcase reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint:\n\t\treturn a.Uint() < b.Uint()\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn a.Float() < b.Float()\n\tcase reflect.String:\n\t\treturn a.String() < b.String()\n\tcase reflect.Uintptr:\n\t\treturn a.Uint() < b.Uint()\n\tcase reflect.Array:\n\t\t// Compare the contents of both arrays.\n\t\tl := a.Len()\n\t\tfor i := 0; i < l; i++ {\n\t\t\tav := a.Index(i)\n\t\t\tbv := b.Index(i)\n\t\t\tif av.Interface() == bv.Interface() {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn valueSortLess(av, bv)\n\t\t}\n\t}\n\treturn a.String() < b.String()\n}\n\n// Less returns whether the value at index i should sort before the\n// value at index j.  It is part of the sort.Interface implementation.\nfunc (s *valuesSorter) Less(i, j int) bool {\n\tif s.strings == nil {\n\t\treturn valueSortLess(s.values[i], s.values[j])\n\t}\n\treturn s.strings[i] < s.strings[j]\n}\n\n// sortValues is a sort function that handles both native types and any type that\n// can be converted to error or Stringer.  Other inputs are sorted according to\n// their Value.String() value to ensure display stability.\nfunc sortValues(values []reflect.Value, cs *ConfigState) {\n\tif len(values) == 0 {\n\t\treturn\n\t}\n\tsort.Sort(newValuesSorter(values, cs))\n}\n"
  },
  {
    "path": "vendor/github.com/davecgh/go-spew/spew/config.go",
    "content": "/*\n * Copyright (c) 2013-2016 Dave Collins <dave@davec.name>\n *\n * Permission to use, copy, modify, and distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n */\n\npackage spew\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n)\n\n// ConfigState houses the configuration options used by spew to format and\n// display values.  There is a global instance, Config, that is used to control\n// all top-level Formatter and Dump functionality.  Each ConfigState instance\n// provides methods equivalent to the top-level functions.\n//\n// The zero value for ConfigState provides no indentation.  You would typically\n// want to set it to a space or a tab.\n//\n// Alternatively, you can use NewDefaultConfig to get a ConfigState instance\n// with default settings.  See the documentation of NewDefaultConfig for default\n// values.\ntype ConfigState struct {\n\t// Indent specifies the string to use for each indentation level.  The\n\t// global config instance that all top-level functions use set this to a\n\t// single space by default.  If you would like more indentation, you might\n\t// set this to a tab with \"\\t\" or perhaps two spaces with \"  \".\n\tIndent string\n\n\t// MaxDepth controls the maximum number of levels to descend into nested\n\t// data structures.  The default, 0, means there is no limit.\n\t//\n\t// NOTE: Circular data structures are properly detected, so it is not\n\t// necessary to set this value unless you specifically want to limit deeply\n\t// nested data structures.\n\tMaxDepth int\n\n\t// DisableMethods specifies whether or not error and Stringer interfaces are\n\t// invoked for types that implement them.\n\tDisableMethods bool\n\n\t// DisablePointerMethods specifies whether or not to check for and invoke\n\t// error and Stringer interfaces on types which only accept a pointer\n\t// receiver when the current type is not a pointer.\n\t//\n\t// NOTE: This might be an unsafe action since calling one of these methods\n\t// with a pointer receiver could technically mutate the value, however,\n\t// in practice, types which choose to satisify an error or Stringer\n\t// interface with a pointer receiver should not be mutating their state\n\t// inside these interface methods.  As a result, this option relies on\n\t// access to the unsafe package, so it will not have any effect when\n\t// running in environments without access to the unsafe package such as\n\t// Google App Engine or with the \"safe\" build tag specified.\n\tDisablePointerMethods bool\n\n\t// DisablePointerAddresses specifies whether to disable the printing of\n\t// pointer addresses. This is useful when diffing data structures in tests.\n\tDisablePointerAddresses bool\n\n\t// DisableCapacities specifies whether to disable the printing of capacities\n\t// for arrays, slices, maps and channels. This is useful when diffing\n\t// data structures in tests.\n\tDisableCapacities bool\n\n\t// ContinueOnMethod specifies whether or not recursion should continue once\n\t// a custom error or Stringer interface is invoked.  The default, false,\n\t// means it will print the results of invoking the custom error or Stringer\n\t// interface and return immediately instead of continuing to recurse into\n\t// the internals of the data type.\n\t//\n\t// NOTE: This flag does not have any effect if method invocation is disabled\n\t// via the DisableMethods or DisablePointerMethods options.\n\tContinueOnMethod bool\n\n\t// SortKeys specifies map keys should be sorted before being printed. Use\n\t// this to have a more deterministic, diffable output.  Note that only\n\t// native types (bool, int, uint, floats, uintptr and string) and types\n\t// that support the error or Stringer interfaces (if methods are\n\t// enabled) are supported, with other types sorted according to the\n\t// reflect.Value.String() output which guarantees display stability.\n\tSortKeys bool\n\n\t// SpewKeys specifies that, as a last resort attempt, map keys should\n\t// be spewed to strings and sorted by those strings.  This is only\n\t// considered if SortKeys is true.\n\tSpewKeys bool\n}\n\n// Config is the active configuration of the top-level functions.\n// The configuration can be changed by modifying the contents of spew.Config.\nvar Config = ConfigState{Indent: \" \"}\n\n// Errorf is a wrapper for fmt.Errorf that treats each argument as if it were\n// passed with a Formatter interface returned by c.NewFormatter.  It returns\n// the formatted string as a value that satisfies error.  See NewFormatter\n// for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Errorf(format, c.NewFormatter(a), c.NewFormatter(b))\nfunc (c *ConfigState) Errorf(format string, a ...interface{}) (err error) {\n\treturn fmt.Errorf(format, c.convertArgs(a)...)\n}\n\n// Fprint is a wrapper for fmt.Fprint that treats each argument as if it were\n// passed with a Formatter interface returned by c.NewFormatter.  It returns\n// the number of bytes written and any write error encountered.  See\n// NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Fprint(w, c.NewFormatter(a), c.NewFormatter(b))\nfunc (c *ConfigState) Fprint(w io.Writer, a ...interface{}) (n int, err error) {\n\treturn fmt.Fprint(w, c.convertArgs(a)...)\n}\n\n// Fprintf is a wrapper for fmt.Fprintf that treats each argument as if it were\n// passed with a Formatter interface returned by c.NewFormatter.  It returns\n// the number of bytes written and any write error encountered.  See\n// NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Fprintf(w, format, c.NewFormatter(a), c.NewFormatter(b))\nfunc (c *ConfigState) Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error) {\n\treturn fmt.Fprintf(w, format, c.convertArgs(a)...)\n}\n\n// Fprintln is a wrapper for fmt.Fprintln that treats each argument as if it\n// passed with a Formatter interface returned by c.NewFormatter.  See\n// NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Fprintln(w, c.NewFormatter(a), c.NewFormatter(b))\nfunc (c *ConfigState) Fprintln(w io.Writer, a ...interface{}) (n int, err error) {\n\treturn fmt.Fprintln(w, c.convertArgs(a)...)\n}\n\n// Print is a wrapper for fmt.Print that treats each argument as if it were\n// passed with a Formatter interface returned by c.NewFormatter.  It returns\n// the number of bytes written and any write error encountered.  See\n// NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Print(c.NewFormatter(a), c.NewFormatter(b))\nfunc (c *ConfigState) Print(a ...interface{}) (n int, err error) {\n\treturn fmt.Print(c.convertArgs(a)...)\n}\n\n// Printf is a wrapper for fmt.Printf that treats each argument as if it were\n// passed with a Formatter interface returned by c.NewFormatter.  It returns\n// the number of bytes written and any write error encountered.  See\n// NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Printf(format, c.NewFormatter(a), c.NewFormatter(b))\nfunc (c *ConfigState) Printf(format string, a ...interface{}) (n int, err error) {\n\treturn fmt.Printf(format, c.convertArgs(a)...)\n}\n\n// Println is a wrapper for fmt.Println that treats each argument as if it were\n// passed with a Formatter interface returned by c.NewFormatter.  It returns\n// the number of bytes written and any write error encountered.  See\n// NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Println(c.NewFormatter(a), c.NewFormatter(b))\nfunc (c *ConfigState) Println(a ...interface{}) (n int, err error) {\n\treturn fmt.Println(c.convertArgs(a)...)\n}\n\n// Sprint is a wrapper for fmt.Sprint that treats each argument as if it were\n// passed with a Formatter interface returned by c.NewFormatter.  It returns\n// the resulting string.  See NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Sprint(c.NewFormatter(a), c.NewFormatter(b))\nfunc (c *ConfigState) Sprint(a ...interface{}) string {\n\treturn fmt.Sprint(c.convertArgs(a)...)\n}\n\n// Sprintf is a wrapper for fmt.Sprintf that treats each argument as if it were\n// passed with a Formatter interface returned by c.NewFormatter.  It returns\n// the resulting string.  See NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Sprintf(format, c.NewFormatter(a), c.NewFormatter(b))\nfunc (c *ConfigState) Sprintf(format string, a ...interface{}) string {\n\treturn fmt.Sprintf(format, c.convertArgs(a)...)\n}\n\n// Sprintln is a wrapper for fmt.Sprintln that treats each argument as if it\n// were passed with a Formatter interface returned by c.NewFormatter.  It\n// returns the resulting string.  See NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Sprintln(c.NewFormatter(a), c.NewFormatter(b))\nfunc (c *ConfigState) Sprintln(a ...interface{}) string {\n\treturn fmt.Sprintln(c.convertArgs(a)...)\n}\n\n/*\nNewFormatter returns a custom formatter that satisfies the fmt.Formatter\ninterface.  As a result, it integrates cleanly with standard fmt package\nprinting functions.  The formatter is useful for inline printing of smaller data\ntypes similar to the standard %v format specifier.\n\nThe custom formatter only responds to the %v (most compact), %+v (adds pointer\naddresses), %#v (adds types), and %#+v (adds types and pointer addresses) verb\ncombinations.  Any other verbs such as %x and %q will be sent to the the\nstandard fmt package for formatting.  In addition, the custom formatter ignores\nthe width and precision arguments (however they will still work on the format\nspecifiers not handled by the custom formatter).\n\nTypically this function shouldn't be called directly.  It is much easier to make\nuse of the custom formatter by calling one of the convenience functions such as\nc.Printf, c.Println, or c.Printf.\n*/\nfunc (c *ConfigState) NewFormatter(v interface{}) fmt.Formatter {\n\treturn newFormatter(c, v)\n}\n\n// Fdump formats and displays the passed arguments to io.Writer w.  It formats\n// exactly the same as Dump.\nfunc (c *ConfigState) Fdump(w io.Writer, a ...interface{}) {\n\tfdump(c, w, a...)\n}\n\n/*\nDump displays the passed parameters to standard out with newlines, customizable\nindentation, and additional debug information such as complete types and all\npointer addresses used to indirect to the final value.  It provides the\nfollowing features over the built-in printing facilities provided by the fmt\npackage:\n\n\t* Pointers are dereferenced and followed\n\t* Circular data structures are detected and handled properly\n\t* Custom Stringer/error interfaces are optionally invoked, including\n\t  on unexported types\n\t* Custom types which only implement the Stringer/error interfaces via\n\t  a pointer receiver are optionally invoked when passing non-pointer\n\t  variables\n\t* Byte arrays and slices are dumped like the hexdump -C command which\n\t  includes offsets, byte values in hex, and ASCII output\n\nThe configuration options are controlled by modifying the public members\nof c.  See ConfigState for options documentation.\n\nSee Fdump if you would prefer dumping to an arbitrary io.Writer or Sdump to\nget the formatted result as a string.\n*/\nfunc (c *ConfigState) Dump(a ...interface{}) {\n\tfdump(c, os.Stdout, a...)\n}\n\n// Sdump returns a string with the passed arguments formatted exactly the same\n// as Dump.\nfunc (c *ConfigState) Sdump(a ...interface{}) string {\n\tvar buf bytes.Buffer\n\tfdump(c, &buf, a...)\n\treturn buf.String()\n}\n\n// convertArgs accepts a slice of arguments and returns a slice of the same\n// length with each argument converted to a spew Formatter interface using\n// the ConfigState associated with s.\nfunc (c *ConfigState) convertArgs(args []interface{}) (formatters []interface{}) {\n\tformatters = make([]interface{}, len(args))\n\tfor index, arg := range args {\n\t\tformatters[index] = newFormatter(c, arg)\n\t}\n\treturn formatters\n}\n\n// NewDefaultConfig returns a ConfigState with the following default settings.\n//\n// \tIndent: \" \"\n// \tMaxDepth: 0\n// \tDisableMethods: false\n// \tDisablePointerMethods: false\n// \tContinueOnMethod: false\n// \tSortKeys: false\nfunc NewDefaultConfig() *ConfigState {\n\treturn &ConfigState{Indent: \" \"}\n}\n"
  },
  {
    "path": "vendor/github.com/davecgh/go-spew/spew/doc.go",
    "content": "/*\n * Copyright (c) 2013-2016 Dave Collins <dave@davec.name>\n *\n * Permission to use, copy, modify, and distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n */\n\n/*\nPackage spew implements a deep pretty printer for Go data structures to aid in\ndebugging.\n\nA quick overview of the additional features spew provides over the built-in\nprinting facilities for Go data types are as follows:\n\n\t* Pointers are dereferenced and followed\n\t* Circular data structures are detected and handled properly\n\t* Custom Stringer/error interfaces are optionally invoked, including\n\t  on unexported types\n\t* Custom types which only implement the Stringer/error interfaces via\n\t  a pointer receiver are optionally invoked when passing non-pointer\n\t  variables\n\t* Byte arrays and slices are dumped like the hexdump -C command which\n\t  includes offsets, byte values in hex, and ASCII output (only when using\n\t  Dump style)\n\nThere are two different approaches spew allows for dumping Go data structures:\n\n\t* Dump style which prints with newlines, customizable indentation,\n\t  and additional debug information such as types and all pointer addresses\n\t  used to indirect to the final value\n\t* A custom Formatter interface that integrates cleanly with the standard fmt\n\t  package and replaces %v, %+v, %#v, and %#+v to provide inline printing\n\t  similar to the default %v while providing the additional functionality\n\t  outlined above and passing unsupported format verbs such as %x and %q\n\t  along to fmt\n\nQuick Start\n\nThis section demonstrates how to quickly get started with spew.  See the\nsections below for further details on formatting and configuration options.\n\nTo dump a variable with full newlines, indentation, type, and pointer\ninformation use Dump, Fdump, or Sdump:\n\tspew.Dump(myVar1, myVar2, ...)\n\tspew.Fdump(someWriter, myVar1, myVar2, ...)\n\tstr := spew.Sdump(myVar1, myVar2, ...)\n\nAlternatively, if you would prefer to use format strings with a compacted inline\nprinting style, use the convenience wrappers Printf, Fprintf, etc with\n%v (most compact), %+v (adds pointer addresses), %#v (adds types), or\n%#+v (adds types and pointer addresses):\n\tspew.Printf(\"myVar1: %v -- myVar2: %+v\", myVar1, myVar2)\n\tspew.Printf(\"myVar3: %#v -- myVar4: %#+v\", myVar3, myVar4)\n\tspew.Fprintf(someWriter, \"myVar1: %v -- myVar2: %+v\", myVar1, myVar2)\n\tspew.Fprintf(someWriter, \"myVar3: %#v -- myVar4: %#+v\", myVar3, myVar4)\n\nConfiguration Options\n\nConfiguration of spew is handled by fields in the ConfigState type.  For\nconvenience, all of the top-level functions use a global state available\nvia the spew.Config global.\n\nIt is also possible to create a ConfigState instance that provides methods\nequivalent to the top-level functions.  This allows concurrent configuration\noptions.  See the ConfigState documentation for more details.\n\nThe following configuration options are available:\n\t* Indent\n\t\tString to use for each indentation level for Dump functions.\n\t\tIt is a single space by default.  A popular alternative is \"\\t\".\n\n\t* MaxDepth\n\t\tMaximum number of levels to descend into nested data structures.\n\t\tThere is no limit by default.\n\n\t* DisableMethods\n\t\tDisables invocation of error and Stringer interface methods.\n\t\tMethod invocation is enabled by default.\n\n\t* DisablePointerMethods\n\t\tDisables invocation of error and Stringer interface methods on types\n\t\twhich only accept pointer receivers from non-pointer variables.\n\t\tPointer method invocation is enabled by default.\n\n\t* DisablePointerAddresses\n\t\tDisablePointerAddresses specifies whether to disable the printing of\n\t\tpointer addresses. This is useful when diffing data structures in tests.\n\n\t* DisableCapacities\n\t\tDisableCapacities specifies whether to disable the printing of\n\t\tcapacities for arrays, slices, maps and channels. This is useful when\n\t\tdiffing data structures in tests.\n\n\t* ContinueOnMethod\n\t\tEnables recursion into types after invoking error and Stringer interface\n\t\tmethods. Recursion after method invocation is disabled by default.\n\n\t* SortKeys\n\t\tSpecifies map keys should be sorted before being printed. Use\n\t\tthis to have a more deterministic, diffable output.  Note that\n\t\tonly native types (bool, int, uint, floats, uintptr and string)\n\t\tand types which implement error or Stringer interfaces are\n\t\tsupported with other types sorted according to the\n\t\treflect.Value.String() output which guarantees display\n\t\tstability.  Natural map order is used by default.\n\n\t* SpewKeys\n\t\tSpecifies that, as a last resort attempt, map keys should be\n\t\tspewed to strings and sorted by those strings.  This is only\n\t\tconsidered if SortKeys is true.\n\nDump Usage\n\nSimply call spew.Dump with a list of variables you want to dump:\n\n\tspew.Dump(myVar1, myVar2, ...)\n\nYou may also call spew.Fdump if you would prefer to output to an arbitrary\nio.Writer.  For example, to dump to standard error:\n\n\tspew.Fdump(os.Stderr, myVar1, myVar2, ...)\n\nA third option is to call spew.Sdump to get the formatted output as a string:\n\n\tstr := spew.Sdump(myVar1, myVar2, ...)\n\nSample Dump Output\n\nSee the Dump example for details on the setup of the types and variables being\nshown here.\n\n\t(main.Foo) {\n\t unexportedField: (*main.Bar)(0xf84002e210)({\n\t  flag: (main.Flag) flagTwo,\n\t  data: (uintptr) <nil>\n\t }),\n\t ExportedField: (map[interface {}]interface {}) (len=1) {\n\t  (string) (len=3) \"one\": (bool) true\n\t }\n\t}\n\nByte (and uint8) arrays and slices are displayed uniquely like the hexdump -C\ncommand as shown.\n\t([]uint8) (len=32 cap=32) {\n\t 00000000  11 12 13 14 15 16 17 18  19 1a 1b 1c 1d 1e 1f 20  |............... |\n\t 00000010  21 22 23 24 25 26 27 28  29 2a 2b 2c 2d 2e 2f 30  |!\"#$%&'()*+,-./0|\n\t 00000020  31 32                                             |12|\n\t}\n\nCustom Formatter\n\nSpew provides a custom formatter that implements the fmt.Formatter interface\nso that it integrates cleanly with standard fmt package printing functions. The\nformatter is useful for inline printing of smaller data types similar to the\nstandard %v format specifier.\n\nThe custom formatter only responds to the %v (most compact), %+v (adds pointer\naddresses), %#v (adds types), or %#+v (adds types and pointer addresses) verb\ncombinations.  Any other verbs such as %x and %q will be sent to the the\nstandard fmt package for formatting.  In addition, the custom formatter ignores\nthe width and precision arguments (however they will still work on the format\nspecifiers not handled by the custom formatter).\n\nCustom Formatter Usage\n\nThe simplest way to make use of the spew custom formatter is to call one of the\nconvenience functions such as spew.Printf, spew.Println, or spew.Printf.  The\nfunctions have syntax you are most likely already familiar with:\n\n\tspew.Printf(\"myVar1: %v -- myVar2: %+v\", myVar1, myVar2)\n\tspew.Printf(\"myVar3: %#v -- myVar4: %#+v\", myVar3, myVar4)\n\tspew.Println(myVar, myVar2)\n\tspew.Fprintf(os.Stderr, \"myVar1: %v -- myVar2: %+v\", myVar1, myVar2)\n\tspew.Fprintf(os.Stderr, \"myVar3: %#v -- myVar4: %#+v\", myVar3, myVar4)\n\nSee the Index for the full list convenience functions.\n\nSample Formatter Output\n\nDouble pointer to a uint8:\n\t  %v: <**>5\n\t %+v: <**>(0xf8400420d0->0xf8400420c8)5\n\t %#v: (**uint8)5\n\t%#+v: (**uint8)(0xf8400420d0->0xf8400420c8)5\n\nPointer to circular struct with a uint8 field and a pointer to itself:\n\t  %v: <*>{1 <*><shown>}\n\t %+v: <*>(0xf84003e260){ui8:1 c:<*>(0xf84003e260)<shown>}\n\t %#v: (*main.circular){ui8:(uint8)1 c:(*main.circular)<shown>}\n\t%#+v: (*main.circular)(0xf84003e260){ui8:(uint8)1 c:(*main.circular)(0xf84003e260)<shown>}\n\nSee the Printf example for details on the setup of variables being shown\nhere.\n\nErrors\n\nSince it is possible for custom Stringer/error interfaces to panic, spew\ndetects them and handles them internally by printing the panic information\ninline with the output.  Since spew is intended to provide deep pretty printing\ncapabilities on structures, it intentionally does not return any errors.\n*/\npackage spew\n"
  },
  {
    "path": "vendor/github.com/davecgh/go-spew/spew/dump.go",
    "content": "/*\n * Copyright (c) 2013-2016 Dave Collins <dave@davec.name>\n *\n * Permission to use, copy, modify, and distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n */\n\npackage spew\n\nimport (\n\t\"bytes\"\n\t\"encoding/hex\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n)\n\nvar (\n\t// uint8Type is a reflect.Type representing a uint8.  It is used to\n\t// convert cgo types to uint8 slices for hexdumping.\n\tuint8Type = reflect.TypeOf(uint8(0))\n\n\t// cCharRE is a regular expression that matches a cgo char.\n\t// It is used to detect character arrays to hexdump them.\n\tcCharRE = regexp.MustCompile(`^.*\\._Ctype_char$`)\n\n\t// cUnsignedCharRE is a regular expression that matches a cgo unsigned\n\t// char.  It is used to detect unsigned character arrays to hexdump\n\t// them.\n\tcUnsignedCharRE = regexp.MustCompile(`^.*\\._Ctype_unsignedchar$`)\n\n\t// cUint8tCharRE is a regular expression that matches a cgo uint8_t.\n\t// It is used to detect uint8_t arrays to hexdump them.\n\tcUint8tCharRE = regexp.MustCompile(`^.*\\._Ctype_uint8_t$`)\n)\n\n// dumpState contains information about the state of a dump operation.\ntype dumpState struct {\n\tw                io.Writer\n\tdepth            int\n\tpointers         map[uintptr]int\n\tignoreNextType   bool\n\tignoreNextIndent bool\n\tcs               *ConfigState\n}\n\n// indent performs indentation according to the depth level and cs.Indent\n// option.\nfunc (d *dumpState) indent() {\n\tif d.ignoreNextIndent {\n\t\td.ignoreNextIndent = false\n\t\treturn\n\t}\n\td.w.Write(bytes.Repeat([]byte(d.cs.Indent), d.depth))\n}\n\n// unpackValue returns values inside of non-nil interfaces when possible.\n// This is useful for data types like structs, arrays, slices, and maps which\n// can contain varying types packed inside an interface.\nfunc (d *dumpState) unpackValue(v reflect.Value) reflect.Value {\n\tif v.Kind() == reflect.Interface && !v.IsNil() {\n\t\tv = v.Elem()\n\t}\n\treturn v\n}\n\n// dumpPtr handles formatting of pointers by indirecting them as necessary.\nfunc (d *dumpState) dumpPtr(v reflect.Value) {\n\t// Remove pointers at or below the current depth from map used to detect\n\t// circular refs.\n\tfor k, depth := range d.pointers {\n\t\tif depth >= d.depth {\n\t\t\tdelete(d.pointers, k)\n\t\t}\n\t}\n\n\t// Keep list of all dereferenced pointers to show later.\n\tpointerChain := make([]uintptr, 0)\n\n\t// Figure out how many levels of indirection there are by dereferencing\n\t// pointers and unpacking interfaces down the chain while detecting circular\n\t// references.\n\tnilFound := false\n\tcycleFound := false\n\tindirects := 0\n\tve := v\n\tfor ve.Kind() == reflect.Ptr {\n\t\tif ve.IsNil() {\n\t\t\tnilFound = true\n\t\t\tbreak\n\t\t}\n\t\tindirects++\n\t\taddr := ve.Pointer()\n\t\tpointerChain = append(pointerChain, addr)\n\t\tif pd, ok := d.pointers[addr]; ok && pd < d.depth {\n\t\t\tcycleFound = true\n\t\t\tindirects--\n\t\t\tbreak\n\t\t}\n\t\td.pointers[addr] = d.depth\n\n\t\tve = ve.Elem()\n\t\tif ve.Kind() == reflect.Interface {\n\t\t\tif ve.IsNil() {\n\t\t\t\tnilFound = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tve = ve.Elem()\n\t\t}\n\t}\n\n\t// Display type information.\n\td.w.Write(openParenBytes)\n\td.w.Write(bytes.Repeat(asteriskBytes, indirects))\n\td.w.Write([]byte(ve.Type().String()))\n\td.w.Write(closeParenBytes)\n\n\t// Display pointer information.\n\tif !d.cs.DisablePointerAddresses && len(pointerChain) > 0 {\n\t\td.w.Write(openParenBytes)\n\t\tfor i, addr := range pointerChain {\n\t\t\tif i > 0 {\n\t\t\t\td.w.Write(pointerChainBytes)\n\t\t\t}\n\t\t\tprintHexPtr(d.w, addr)\n\t\t}\n\t\td.w.Write(closeParenBytes)\n\t}\n\n\t// Display dereferenced value.\n\td.w.Write(openParenBytes)\n\tswitch {\n\tcase nilFound:\n\t\td.w.Write(nilAngleBytes)\n\n\tcase cycleFound:\n\t\td.w.Write(circularBytes)\n\n\tdefault:\n\t\td.ignoreNextType = true\n\t\td.dump(ve)\n\t}\n\td.w.Write(closeParenBytes)\n}\n\n// dumpSlice handles formatting of arrays and slices.  Byte (uint8 under\n// reflection) arrays and slices are dumped in hexdump -C fashion.\nfunc (d *dumpState) dumpSlice(v reflect.Value) {\n\t// Determine whether this type should be hex dumped or not.  Also,\n\t// for types which should be hexdumped, try to use the underlying data\n\t// first, then fall back to trying to convert them to a uint8 slice.\n\tvar buf []uint8\n\tdoConvert := false\n\tdoHexDump := false\n\tnumEntries := v.Len()\n\tif numEntries > 0 {\n\t\tvt := v.Index(0).Type()\n\t\tvts := vt.String()\n\t\tswitch {\n\t\t// C types that need to be converted.\n\t\tcase cCharRE.MatchString(vts):\n\t\t\tfallthrough\n\t\tcase cUnsignedCharRE.MatchString(vts):\n\t\t\tfallthrough\n\t\tcase cUint8tCharRE.MatchString(vts):\n\t\t\tdoConvert = true\n\n\t\t// Try to use existing uint8 slices and fall back to converting\n\t\t// and copying if that fails.\n\t\tcase vt.Kind() == reflect.Uint8:\n\t\t\t// We need an addressable interface to convert the type\n\t\t\t// to a byte slice.  However, the reflect package won't\n\t\t\t// give us an interface on certain things like\n\t\t\t// unexported struct fields in order to enforce\n\t\t\t// visibility rules.  We use unsafe, when available, to\n\t\t\t// bypass these restrictions since this package does not\n\t\t\t// mutate the values.\n\t\t\tvs := v\n\t\t\tif !vs.CanInterface() || !vs.CanAddr() {\n\t\t\t\tvs = unsafeReflectValue(vs)\n\t\t\t}\n\t\t\tif !UnsafeDisabled {\n\t\t\t\tvs = vs.Slice(0, numEntries)\n\n\t\t\t\t// Use the existing uint8 slice if it can be\n\t\t\t\t// type asserted.\n\t\t\t\tiface := vs.Interface()\n\t\t\t\tif slice, ok := iface.([]uint8); ok {\n\t\t\t\t\tbuf = slice\n\t\t\t\t\tdoHexDump = true\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// The underlying data needs to be converted if it can't\n\t\t\t// be type asserted to a uint8 slice.\n\t\t\tdoConvert = true\n\t\t}\n\n\t\t// Copy and convert the underlying type if needed.\n\t\tif doConvert && vt.ConvertibleTo(uint8Type) {\n\t\t\t// Convert and copy each element into a uint8 byte\n\t\t\t// slice.\n\t\t\tbuf = make([]uint8, numEntries)\n\t\t\tfor i := 0; i < numEntries; i++ {\n\t\t\t\tvv := v.Index(i)\n\t\t\t\tbuf[i] = uint8(vv.Convert(uint8Type).Uint())\n\t\t\t}\n\t\t\tdoHexDump = true\n\t\t}\n\t}\n\n\t// Hexdump the entire slice as needed.\n\tif doHexDump {\n\t\tindent := strings.Repeat(d.cs.Indent, d.depth)\n\t\tstr := indent + hex.Dump(buf)\n\t\tstr = strings.Replace(str, \"\\n\", \"\\n\"+indent, -1)\n\t\tstr = strings.TrimRight(str, d.cs.Indent)\n\t\td.w.Write([]byte(str))\n\t\treturn\n\t}\n\n\t// Recursively call dump for each item.\n\tfor i := 0; i < numEntries; i++ {\n\t\td.dump(d.unpackValue(v.Index(i)))\n\t\tif i < (numEntries - 1) {\n\t\t\td.w.Write(commaNewlineBytes)\n\t\t} else {\n\t\t\td.w.Write(newlineBytes)\n\t\t}\n\t}\n}\n\n// dump is the main workhorse for dumping a value.  It uses the passed reflect\n// value to figure out what kind of object we are dealing with and formats it\n// appropriately.  It is a recursive function, however circular data structures\n// are detected and handled properly.\nfunc (d *dumpState) dump(v reflect.Value) {\n\t// Handle invalid reflect values immediately.\n\tkind := v.Kind()\n\tif kind == reflect.Invalid {\n\t\td.w.Write(invalidAngleBytes)\n\t\treturn\n\t}\n\n\t// Handle pointers specially.\n\tif kind == reflect.Ptr {\n\t\td.indent()\n\t\td.dumpPtr(v)\n\t\treturn\n\t}\n\n\t// Print type information unless already handled elsewhere.\n\tif !d.ignoreNextType {\n\t\td.indent()\n\t\td.w.Write(openParenBytes)\n\t\td.w.Write([]byte(v.Type().String()))\n\t\td.w.Write(closeParenBytes)\n\t\td.w.Write(spaceBytes)\n\t}\n\td.ignoreNextType = false\n\n\t// Display length and capacity if the built-in len and cap functions\n\t// work with the value's kind and the len/cap itself is non-zero.\n\tvalueLen, valueCap := 0, 0\n\tswitch v.Kind() {\n\tcase reflect.Array, reflect.Slice, reflect.Chan:\n\t\tvalueLen, valueCap = v.Len(), v.Cap()\n\tcase reflect.Map, reflect.String:\n\t\tvalueLen = v.Len()\n\t}\n\tif valueLen != 0 || !d.cs.DisableCapacities && valueCap != 0 {\n\t\td.w.Write(openParenBytes)\n\t\tif valueLen != 0 {\n\t\t\td.w.Write(lenEqualsBytes)\n\t\t\tprintInt(d.w, int64(valueLen), 10)\n\t\t}\n\t\tif !d.cs.DisableCapacities && valueCap != 0 {\n\t\t\tif valueLen != 0 {\n\t\t\t\td.w.Write(spaceBytes)\n\t\t\t}\n\t\t\td.w.Write(capEqualsBytes)\n\t\t\tprintInt(d.w, int64(valueCap), 10)\n\t\t}\n\t\td.w.Write(closeParenBytes)\n\t\td.w.Write(spaceBytes)\n\t}\n\n\t// Call Stringer/error interfaces if they exist and the handle methods flag\n\t// is enabled\n\tif !d.cs.DisableMethods {\n\t\tif (kind != reflect.Invalid) && (kind != reflect.Interface) {\n\t\t\tif handled := handleMethods(d.cs, d.w, v); handled {\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}\n\n\tswitch kind {\n\tcase reflect.Invalid:\n\t\t// Do nothing.  We should never get here since invalid has already\n\t\t// been handled above.\n\n\tcase reflect.Bool:\n\t\tprintBool(d.w, v.Bool())\n\n\tcase reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int:\n\t\tprintInt(d.w, v.Int(), 10)\n\n\tcase reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint:\n\t\tprintUint(d.w, v.Uint(), 10)\n\n\tcase reflect.Float32:\n\t\tprintFloat(d.w, v.Float(), 32)\n\n\tcase reflect.Float64:\n\t\tprintFloat(d.w, v.Float(), 64)\n\n\tcase reflect.Complex64:\n\t\tprintComplex(d.w, v.Complex(), 32)\n\n\tcase reflect.Complex128:\n\t\tprintComplex(d.w, v.Complex(), 64)\n\n\tcase reflect.Slice:\n\t\tif v.IsNil() {\n\t\t\td.w.Write(nilAngleBytes)\n\t\t\tbreak\n\t\t}\n\t\tfallthrough\n\n\tcase reflect.Array:\n\t\td.w.Write(openBraceNewlineBytes)\n\t\td.depth++\n\t\tif (d.cs.MaxDepth != 0) && (d.depth > d.cs.MaxDepth) {\n\t\t\td.indent()\n\t\t\td.w.Write(maxNewlineBytes)\n\t\t} else {\n\t\t\td.dumpSlice(v)\n\t\t}\n\t\td.depth--\n\t\td.indent()\n\t\td.w.Write(closeBraceBytes)\n\n\tcase reflect.String:\n\t\td.w.Write([]byte(strconv.Quote(v.String())))\n\n\tcase reflect.Interface:\n\t\t// The only time we should get here is for nil interfaces due to\n\t\t// unpackValue calls.\n\t\tif v.IsNil() {\n\t\t\td.w.Write(nilAngleBytes)\n\t\t}\n\n\tcase reflect.Ptr:\n\t\t// Do nothing.  We should never get here since pointers have already\n\t\t// been handled above.\n\n\tcase reflect.Map:\n\t\t// nil maps should be indicated as different than empty maps\n\t\tif v.IsNil() {\n\t\t\td.w.Write(nilAngleBytes)\n\t\t\tbreak\n\t\t}\n\n\t\td.w.Write(openBraceNewlineBytes)\n\t\td.depth++\n\t\tif (d.cs.MaxDepth != 0) && (d.depth > d.cs.MaxDepth) {\n\t\t\td.indent()\n\t\t\td.w.Write(maxNewlineBytes)\n\t\t} else {\n\t\t\tnumEntries := v.Len()\n\t\t\tkeys := v.MapKeys()\n\t\t\tif d.cs.SortKeys {\n\t\t\t\tsortValues(keys, d.cs)\n\t\t\t}\n\t\t\tfor i, key := range keys {\n\t\t\t\td.dump(d.unpackValue(key))\n\t\t\t\td.w.Write(colonSpaceBytes)\n\t\t\t\td.ignoreNextIndent = true\n\t\t\t\td.dump(d.unpackValue(v.MapIndex(key)))\n\t\t\t\tif i < (numEntries - 1) {\n\t\t\t\t\td.w.Write(commaNewlineBytes)\n\t\t\t\t} else {\n\t\t\t\t\td.w.Write(newlineBytes)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\td.depth--\n\t\td.indent()\n\t\td.w.Write(closeBraceBytes)\n\n\tcase reflect.Struct:\n\t\td.w.Write(openBraceNewlineBytes)\n\t\td.depth++\n\t\tif (d.cs.MaxDepth != 0) && (d.depth > d.cs.MaxDepth) {\n\t\t\td.indent()\n\t\t\td.w.Write(maxNewlineBytes)\n\t\t} else {\n\t\t\tvt := v.Type()\n\t\t\tnumFields := v.NumField()\n\t\t\tfor i := 0; i < numFields; i++ {\n\t\t\t\td.indent()\n\t\t\t\tvtf := vt.Field(i)\n\t\t\t\td.w.Write([]byte(vtf.Name))\n\t\t\t\td.w.Write(colonSpaceBytes)\n\t\t\t\td.ignoreNextIndent = true\n\t\t\t\td.dump(d.unpackValue(v.Field(i)))\n\t\t\t\tif i < (numFields - 1) {\n\t\t\t\t\td.w.Write(commaNewlineBytes)\n\t\t\t\t} else {\n\t\t\t\t\td.w.Write(newlineBytes)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\td.depth--\n\t\td.indent()\n\t\td.w.Write(closeBraceBytes)\n\n\tcase reflect.Uintptr:\n\t\tprintHexPtr(d.w, uintptr(v.Uint()))\n\n\tcase reflect.UnsafePointer, reflect.Chan, reflect.Func:\n\t\tprintHexPtr(d.w, v.Pointer())\n\n\t// There were not any other types at the time this code was written, but\n\t// fall back to letting the default fmt package handle it in case any new\n\t// types are added.\n\tdefault:\n\t\tif v.CanInterface() {\n\t\t\tfmt.Fprintf(d.w, \"%v\", v.Interface())\n\t\t} else {\n\t\t\tfmt.Fprintf(d.w, \"%v\", v.String())\n\t\t}\n\t}\n}\n\n// fdump is a helper function to consolidate the logic from the various public\n// methods which take varying writers and config states.\nfunc fdump(cs *ConfigState, w io.Writer, a ...interface{}) {\n\tfor _, arg := range a {\n\t\tif arg == nil {\n\t\t\tw.Write(interfaceBytes)\n\t\t\tw.Write(spaceBytes)\n\t\t\tw.Write(nilAngleBytes)\n\t\t\tw.Write(newlineBytes)\n\t\t\tcontinue\n\t\t}\n\n\t\td := dumpState{w: w, cs: cs}\n\t\td.pointers = make(map[uintptr]int)\n\t\td.dump(reflect.ValueOf(arg))\n\t\td.w.Write(newlineBytes)\n\t}\n}\n\n// Fdump formats and displays the passed arguments to io.Writer w.  It formats\n// exactly the same as Dump.\nfunc Fdump(w io.Writer, a ...interface{}) {\n\tfdump(&Config, w, a...)\n}\n\n// Sdump returns a string with the passed arguments formatted exactly the same\n// as Dump.\nfunc Sdump(a ...interface{}) string {\n\tvar buf bytes.Buffer\n\tfdump(&Config, &buf, a...)\n\treturn buf.String()\n}\n\n/*\nDump displays the passed parameters to standard out with newlines, customizable\nindentation, and additional debug information such as complete types and all\npointer addresses used to indirect to the final value.  It provides the\nfollowing features over the built-in printing facilities provided by the fmt\npackage:\n\n\t* Pointers are dereferenced and followed\n\t* Circular data structures are detected and handled properly\n\t* Custom Stringer/error interfaces are optionally invoked, including\n\t  on unexported types\n\t* Custom types which only implement the Stringer/error interfaces via\n\t  a pointer receiver are optionally invoked when passing non-pointer\n\t  variables\n\t* Byte arrays and slices are dumped like the hexdump -C command which\n\t  includes offsets, byte values in hex, and ASCII output\n\nThe configuration options are controlled by an exported package global,\nspew.Config.  See ConfigState for options documentation.\n\nSee Fdump if you would prefer dumping to an arbitrary io.Writer or Sdump to\nget the formatted result as a string.\n*/\nfunc Dump(a ...interface{}) {\n\tfdump(&Config, os.Stdout, a...)\n}\n"
  },
  {
    "path": "vendor/github.com/davecgh/go-spew/spew/format.go",
    "content": "/*\n * Copyright (c) 2013-2016 Dave Collins <dave@davec.name>\n *\n * Permission to use, copy, modify, and distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n */\n\npackage spew\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// supportedFlags is a list of all the character flags supported by fmt package.\nconst supportedFlags = \"0-+# \"\n\n// formatState implements the fmt.Formatter interface and contains information\n// about the state of a formatting operation.  The NewFormatter function can\n// be used to get a new Formatter which can be used directly as arguments\n// in standard fmt package printing calls.\ntype formatState struct {\n\tvalue          interface{}\n\tfs             fmt.State\n\tdepth          int\n\tpointers       map[uintptr]int\n\tignoreNextType bool\n\tcs             *ConfigState\n}\n\n// buildDefaultFormat recreates the original format string without precision\n// and width information to pass in to fmt.Sprintf in the case of an\n// unrecognized type.  Unless new types are added to the language, this\n// function won't ever be called.\nfunc (f *formatState) buildDefaultFormat() (format string) {\n\tbuf := bytes.NewBuffer(percentBytes)\n\n\tfor _, flag := range supportedFlags {\n\t\tif f.fs.Flag(int(flag)) {\n\t\t\tbuf.WriteRune(flag)\n\t\t}\n\t}\n\n\tbuf.WriteRune('v')\n\n\tformat = buf.String()\n\treturn format\n}\n\n// constructOrigFormat recreates the original format string including precision\n// and width information to pass along to the standard fmt package.  This allows\n// automatic deferral of all format strings this package doesn't support.\nfunc (f *formatState) constructOrigFormat(verb rune) (format string) {\n\tbuf := bytes.NewBuffer(percentBytes)\n\n\tfor _, flag := range supportedFlags {\n\t\tif f.fs.Flag(int(flag)) {\n\t\t\tbuf.WriteRune(flag)\n\t\t}\n\t}\n\n\tif width, ok := f.fs.Width(); ok {\n\t\tbuf.WriteString(strconv.Itoa(width))\n\t}\n\n\tif precision, ok := f.fs.Precision(); ok {\n\t\tbuf.Write(precisionBytes)\n\t\tbuf.WriteString(strconv.Itoa(precision))\n\t}\n\n\tbuf.WriteRune(verb)\n\n\tformat = buf.String()\n\treturn format\n}\n\n// unpackValue returns values inside of non-nil interfaces when possible and\n// ensures that types for values which have been unpacked from an interface\n// are displayed when the show types flag is also set.\n// This is useful for data types like structs, arrays, slices, and maps which\n// can contain varying types packed inside an interface.\nfunc (f *formatState) unpackValue(v reflect.Value) reflect.Value {\n\tif v.Kind() == reflect.Interface {\n\t\tf.ignoreNextType = false\n\t\tif !v.IsNil() {\n\t\t\tv = v.Elem()\n\t\t}\n\t}\n\treturn v\n}\n\n// formatPtr handles formatting of pointers by indirecting them as necessary.\nfunc (f *formatState) formatPtr(v reflect.Value) {\n\t// Display nil if top level pointer is nil.\n\tshowTypes := f.fs.Flag('#')\n\tif v.IsNil() && (!showTypes || f.ignoreNextType) {\n\t\tf.fs.Write(nilAngleBytes)\n\t\treturn\n\t}\n\n\t// Remove pointers at or below the current depth from map used to detect\n\t// circular refs.\n\tfor k, depth := range f.pointers {\n\t\tif depth >= f.depth {\n\t\t\tdelete(f.pointers, k)\n\t\t}\n\t}\n\n\t// Keep list of all dereferenced pointers to possibly show later.\n\tpointerChain := make([]uintptr, 0)\n\n\t// Figure out how many levels of indirection there are by derferencing\n\t// pointers and unpacking interfaces down the chain while detecting circular\n\t// references.\n\tnilFound := false\n\tcycleFound := false\n\tindirects := 0\n\tve := v\n\tfor ve.Kind() == reflect.Ptr {\n\t\tif ve.IsNil() {\n\t\t\tnilFound = true\n\t\t\tbreak\n\t\t}\n\t\tindirects++\n\t\taddr := ve.Pointer()\n\t\tpointerChain = append(pointerChain, addr)\n\t\tif pd, ok := f.pointers[addr]; ok && pd < f.depth {\n\t\t\tcycleFound = true\n\t\t\tindirects--\n\t\t\tbreak\n\t\t}\n\t\tf.pointers[addr] = f.depth\n\n\t\tve = ve.Elem()\n\t\tif ve.Kind() == reflect.Interface {\n\t\t\tif ve.IsNil() {\n\t\t\t\tnilFound = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tve = ve.Elem()\n\t\t}\n\t}\n\n\t// Display type or indirection level depending on flags.\n\tif showTypes && !f.ignoreNextType {\n\t\tf.fs.Write(openParenBytes)\n\t\tf.fs.Write(bytes.Repeat(asteriskBytes, indirects))\n\t\tf.fs.Write([]byte(ve.Type().String()))\n\t\tf.fs.Write(closeParenBytes)\n\t} else {\n\t\tif nilFound || cycleFound {\n\t\t\tindirects += strings.Count(ve.Type().String(), \"*\")\n\t\t}\n\t\tf.fs.Write(openAngleBytes)\n\t\tf.fs.Write([]byte(strings.Repeat(\"*\", indirects)))\n\t\tf.fs.Write(closeAngleBytes)\n\t}\n\n\t// Display pointer information depending on flags.\n\tif f.fs.Flag('+') && (len(pointerChain) > 0) {\n\t\tf.fs.Write(openParenBytes)\n\t\tfor i, addr := range pointerChain {\n\t\t\tif i > 0 {\n\t\t\t\tf.fs.Write(pointerChainBytes)\n\t\t\t}\n\t\t\tprintHexPtr(f.fs, addr)\n\t\t}\n\t\tf.fs.Write(closeParenBytes)\n\t}\n\n\t// Display dereferenced value.\n\tswitch {\n\tcase nilFound:\n\t\tf.fs.Write(nilAngleBytes)\n\n\tcase cycleFound:\n\t\tf.fs.Write(circularShortBytes)\n\n\tdefault:\n\t\tf.ignoreNextType = true\n\t\tf.format(ve)\n\t}\n}\n\n// format is the main workhorse for providing the Formatter interface.  It\n// uses the passed reflect value to figure out what kind of object we are\n// dealing with and formats it appropriately.  It is a recursive function,\n// however circular data structures are detected and handled properly.\nfunc (f *formatState) format(v reflect.Value) {\n\t// Handle invalid reflect values immediately.\n\tkind := v.Kind()\n\tif kind == reflect.Invalid {\n\t\tf.fs.Write(invalidAngleBytes)\n\t\treturn\n\t}\n\n\t// Handle pointers specially.\n\tif kind == reflect.Ptr {\n\t\tf.formatPtr(v)\n\t\treturn\n\t}\n\n\t// Print type information unless already handled elsewhere.\n\tif !f.ignoreNextType && f.fs.Flag('#') {\n\t\tf.fs.Write(openParenBytes)\n\t\tf.fs.Write([]byte(v.Type().String()))\n\t\tf.fs.Write(closeParenBytes)\n\t}\n\tf.ignoreNextType = false\n\n\t// Call Stringer/error interfaces if they exist and the handle methods\n\t// flag is enabled.\n\tif !f.cs.DisableMethods {\n\t\tif (kind != reflect.Invalid) && (kind != reflect.Interface) {\n\t\t\tif handled := handleMethods(f.cs, f.fs, v); handled {\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}\n\n\tswitch kind {\n\tcase reflect.Invalid:\n\t\t// Do nothing.  We should never get here since invalid has already\n\t\t// been handled above.\n\n\tcase reflect.Bool:\n\t\tprintBool(f.fs, v.Bool())\n\n\tcase reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int:\n\t\tprintInt(f.fs, v.Int(), 10)\n\n\tcase reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint:\n\t\tprintUint(f.fs, v.Uint(), 10)\n\n\tcase reflect.Float32:\n\t\tprintFloat(f.fs, v.Float(), 32)\n\n\tcase reflect.Float64:\n\t\tprintFloat(f.fs, v.Float(), 64)\n\n\tcase reflect.Complex64:\n\t\tprintComplex(f.fs, v.Complex(), 32)\n\n\tcase reflect.Complex128:\n\t\tprintComplex(f.fs, v.Complex(), 64)\n\n\tcase reflect.Slice:\n\t\tif v.IsNil() {\n\t\t\tf.fs.Write(nilAngleBytes)\n\t\t\tbreak\n\t\t}\n\t\tfallthrough\n\n\tcase reflect.Array:\n\t\tf.fs.Write(openBracketBytes)\n\t\tf.depth++\n\t\tif (f.cs.MaxDepth != 0) && (f.depth > f.cs.MaxDepth) {\n\t\t\tf.fs.Write(maxShortBytes)\n\t\t} else {\n\t\t\tnumEntries := v.Len()\n\t\t\tfor i := 0; i < numEntries; i++ {\n\t\t\t\tif i > 0 {\n\t\t\t\t\tf.fs.Write(spaceBytes)\n\t\t\t\t}\n\t\t\t\tf.ignoreNextType = true\n\t\t\t\tf.format(f.unpackValue(v.Index(i)))\n\t\t\t}\n\t\t}\n\t\tf.depth--\n\t\tf.fs.Write(closeBracketBytes)\n\n\tcase reflect.String:\n\t\tf.fs.Write([]byte(v.String()))\n\n\tcase reflect.Interface:\n\t\t// The only time we should get here is for nil interfaces due to\n\t\t// unpackValue calls.\n\t\tif v.IsNil() {\n\t\t\tf.fs.Write(nilAngleBytes)\n\t\t}\n\n\tcase reflect.Ptr:\n\t\t// Do nothing.  We should never get here since pointers have already\n\t\t// been handled above.\n\n\tcase reflect.Map:\n\t\t// nil maps should be indicated as different than empty maps\n\t\tif v.IsNil() {\n\t\t\tf.fs.Write(nilAngleBytes)\n\t\t\tbreak\n\t\t}\n\n\t\tf.fs.Write(openMapBytes)\n\t\tf.depth++\n\t\tif (f.cs.MaxDepth != 0) && (f.depth > f.cs.MaxDepth) {\n\t\t\tf.fs.Write(maxShortBytes)\n\t\t} else {\n\t\t\tkeys := v.MapKeys()\n\t\t\tif f.cs.SortKeys {\n\t\t\t\tsortValues(keys, f.cs)\n\t\t\t}\n\t\t\tfor i, key := range keys {\n\t\t\t\tif i > 0 {\n\t\t\t\t\tf.fs.Write(spaceBytes)\n\t\t\t\t}\n\t\t\t\tf.ignoreNextType = true\n\t\t\t\tf.format(f.unpackValue(key))\n\t\t\t\tf.fs.Write(colonBytes)\n\t\t\t\tf.ignoreNextType = true\n\t\t\t\tf.format(f.unpackValue(v.MapIndex(key)))\n\t\t\t}\n\t\t}\n\t\tf.depth--\n\t\tf.fs.Write(closeMapBytes)\n\n\tcase reflect.Struct:\n\t\tnumFields := v.NumField()\n\t\tf.fs.Write(openBraceBytes)\n\t\tf.depth++\n\t\tif (f.cs.MaxDepth != 0) && (f.depth > f.cs.MaxDepth) {\n\t\t\tf.fs.Write(maxShortBytes)\n\t\t} else {\n\t\t\tvt := v.Type()\n\t\t\tfor i := 0; i < numFields; i++ {\n\t\t\t\tif i > 0 {\n\t\t\t\t\tf.fs.Write(spaceBytes)\n\t\t\t\t}\n\t\t\t\tvtf := vt.Field(i)\n\t\t\t\tif f.fs.Flag('+') || f.fs.Flag('#') {\n\t\t\t\t\tf.fs.Write([]byte(vtf.Name))\n\t\t\t\t\tf.fs.Write(colonBytes)\n\t\t\t\t}\n\t\t\t\tf.format(f.unpackValue(v.Field(i)))\n\t\t\t}\n\t\t}\n\t\tf.depth--\n\t\tf.fs.Write(closeBraceBytes)\n\n\tcase reflect.Uintptr:\n\t\tprintHexPtr(f.fs, uintptr(v.Uint()))\n\n\tcase reflect.UnsafePointer, reflect.Chan, reflect.Func:\n\t\tprintHexPtr(f.fs, v.Pointer())\n\n\t// There were not any other types at the time this code was written, but\n\t// fall back to letting the default fmt package handle it if any get added.\n\tdefault:\n\t\tformat := f.buildDefaultFormat()\n\t\tif v.CanInterface() {\n\t\t\tfmt.Fprintf(f.fs, format, v.Interface())\n\t\t} else {\n\t\t\tfmt.Fprintf(f.fs, format, v.String())\n\t\t}\n\t}\n}\n\n// Format satisfies the fmt.Formatter interface. See NewFormatter for usage\n// details.\nfunc (f *formatState) Format(fs fmt.State, verb rune) {\n\tf.fs = fs\n\n\t// Use standard formatting for verbs that are not v.\n\tif verb != 'v' {\n\t\tformat := f.constructOrigFormat(verb)\n\t\tfmt.Fprintf(fs, format, f.value)\n\t\treturn\n\t}\n\n\tif f.value == nil {\n\t\tif fs.Flag('#') {\n\t\t\tfs.Write(interfaceBytes)\n\t\t}\n\t\tfs.Write(nilAngleBytes)\n\t\treturn\n\t}\n\n\tf.format(reflect.ValueOf(f.value))\n}\n\n// newFormatter is a helper function to consolidate the logic from the various\n// public methods which take varying config states.\nfunc newFormatter(cs *ConfigState, v interface{}) fmt.Formatter {\n\tfs := &formatState{value: v, cs: cs}\n\tfs.pointers = make(map[uintptr]int)\n\treturn fs\n}\n\n/*\nNewFormatter returns a custom formatter that satisfies the fmt.Formatter\ninterface.  As a result, it integrates cleanly with standard fmt package\nprinting functions.  The formatter is useful for inline printing of smaller data\ntypes similar to the standard %v format specifier.\n\nThe custom formatter only responds to the %v (most compact), %+v (adds pointer\naddresses), %#v (adds types), or %#+v (adds types and pointer addresses) verb\ncombinations.  Any other verbs such as %x and %q will be sent to the the\nstandard fmt package for formatting.  In addition, the custom formatter ignores\nthe width and precision arguments (however they will still work on the format\nspecifiers not handled by the custom formatter).\n\nTypically this function shouldn't be called directly.  It is much easier to make\nuse of the custom formatter by calling one of the convenience functions such as\nPrintf, Println, or Fprintf.\n*/\nfunc NewFormatter(v interface{}) fmt.Formatter {\n\treturn newFormatter(&Config, v)\n}\n"
  },
  {
    "path": "vendor/github.com/davecgh/go-spew/spew/spew.go",
    "content": "/*\n * Copyright (c) 2013-2016 Dave Collins <dave@davec.name>\n *\n * Permission to use, copy, modify, and distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n */\n\npackage spew\n\nimport (\n\t\"fmt\"\n\t\"io\"\n)\n\n// Errorf is a wrapper for fmt.Errorf that treats each argument as if it were\n// passed with a default Formatter interface returned by NewFormatter.  It\n// returns the formatted string as a value that satisfies error.  See\n// NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Errorf(format, spew.NewFormatter(a), spew.NewFormatter(b))\nfunc Errorf(format string, a ...interface{}) (err error) {\n\treturn fmt.Errorf(format, convertArgs(a)...)\n}\n\n// Fprint is a wrapper for fmt.Fprint that treats each argument as if it were\n// passed with a default Formatter interface returned by NewFormatter.  It\n// returns the number of bytes written and any write error encountered.  See\n// NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Fprint(w, spew.NewFormatter(a), spew.NewFormatter(b))\nfunc Fprint(w io.Writer, a ...interface{}) (n int, err error) {\n\treturn fmt.Fprint(w, convertArgs(a)...)\n}\n\n// Fprintf is a wrapper for fmt.Fprintf that treats each argument as if it were\n// passed with a default Formatter interface returned by NewFormatter.  It\n// returns the number of bytes written and any write error encountered.  See\n// NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Fprintf(w, format, spew.NewFormatter(a), spew.NewFormatter(b))\nfunc Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error) {\n\treturn fmt.Fprintf(w, format, convertArgs(a)...)\n}\n\n// Fprintln is a wrapper for fmt.Fprintln that treats each argument as if it\n// passed with a default Formatter interface returned by NewFormatter.  See\n// NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Fprintln(w, spew.NewFormatter(a), spew.NewFormatter(b))\nfunc Fprintln(w io.Writer, a ...interface{}) (n int, err error) {\n\treturn fmt.Fprintln(w, convertArgs(a)...)\n}\n\n// Print is a wrapper for fmt.Print that treats each argument as if it were\n// passed with a default Formatter interface returned by NewFormatter.  It\n// returns the number of bytes written and any write error encountered.  See\n// NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Print(spew.NewFormatter(a), spew.NewFormatter(b))\nfunc Print(a ...interface{}) (n int, err error) {\n\treturn fmt.Print(convertArgs(a)...)\n}\n\n// Printf is a wrapper for fmt.Printf that treats each argument as if it were\n// passed with a default Formatter interface returned by NewFormatter.  It\n// returns the number of bytes written and any write error encountered.  See\n// NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Printf(format, spew.NewFormatter(a), spew.NewFormatter(b))\nfunc Printf(format string, a ...interface{}) (n int, err error) {\n\treturn fmt.Printf(format, convertArgs(a)...)\n}\n\n// Println is a wrapper for fmt.Println that treats each argument as if it were\n// passed with a default Formatter interface returned by NewFormatter.  It\n// returns the number of bytes written and any write error encountered.  See\n// NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Println(spew.NewFormatter(a), spew.NewFormatter(b))\nfunc Println(a ...interface{}) (n int, err error) {\n\treturn fmt.Println(convertArgs(a)...)\n}\n\n// Sprint is a wrapper for fmt.Sprint that treats each argument as if it were\n// passed with a default Formatter interface returned by NewFormatter.  It\n// returns the resulting string.  See NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Sprint(spew.NewFormatter(a), spew.NewFormatter(b))\nfunc Sprint(a ...interface{}) string {\n\treturn fmt.Sprint(convertArgs(a)...)\n}\n\n// Sprintf is a wrapper for fmt.Sprintf that treats each argument as if it were\n// passed with a default Formatter interface returned by NewFormatter.  It\n// returns the resulting string.  See NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Sprintf(format, spew.NewFormatter(a), spew.NewFormatter(b))\nfunc Sprintf(format string, a ...interface{}) string {\n\treturn fmt.Sprintf(format, convertArgs(a)...)\n}\n\n// Sprintln is a wrapper for fmt.Sprintln that treats each argument as if it\n// were passed with a default Formatter interface returned by NewFormatter.  It\n// returns the resulting string.  See NewFormatter for formatting details.\n//\n// This function is shorthand for the following syntax:\n//\n//\tfmt.Sprintln(spew.NewFormatter(a), spew.NewFormatter(b))\nfunc Sprintln(a ...interface{}) string {\n\treturn fmt.Sprintln(convertArgs(a)...)\n}\n\n// convertArgs accepts a slice of arguments and returns a slice of the same\n// length with each argument converted to a default spew Formatter interface.\nfunc convertArgs(args []interface{}) (formatters []interface{}) {\n\tformatters = make([]interface{}, len(args))\n\tfor index, arg := range args {\n\t\tformatters[index] = NewFormatter(arg)\n\t}\n\treturn formatters\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/.gitignore",
    "content": "# Compiled Object files, Static and Dynamic libs (Shared Objects)\n*.o\n*.a\n*.so\n\n# Folders\n_obj\n_test\n\n# Architecture specific extensions/prefixes\n*.[568vq]\n[568vq].out\n\n*.cgo1.go\n*.cgo2.c\n_cgo_defun.c\n_cgo_gotypes.go\n_cgo_export.*\n\n_testmain.go\n\n*.exe\n\nrestful.html\n\n*.out\n\ntmp.prof\n\ngo-restful.test\n\nexamples/restful-basic-authentication\n\nexamples/restful-encoding-filter\n\nexamples/restful-filters\n\nexamples/restful-hello-world\n\nexamples/restful-resource-functions\n\nexamples/restful-serve-static\n\nexamples/restful-user-service\n\n*.DS_Store\nexamples/restful-user-resource\n\nexamples/restful-multi-containers\n\nexamples/restful-form-handling\n\nexamples/restful-CORS-filter\n\nexamples/restful-options-filter\n\nexamples/restful-curly-router\n\nexamples/restful-cpuprofiler-service\n\nexamples/restful-pre-post-filters\n\ncurly.prof\n\nexamples/restful-NCSA-logging\n\nexamples/restful-html-template\n\ns.html\nrestful-path-tail\n.idea\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/.goconvey",
    "content": "ignore"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/.travis.yml",
    "content": "language: go\n\ngo:\n  - 1.x\n\nbefore_install:\n  - go test -v\n\nscript:\n  - go test -race -coverprofile=coverage.txt -covermode=atomic\n\nafter_success:\n  - bash <(curl -s https://codecov.io/bash)"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/CHANGES.md",
    "content": "# Change history of go-restful\n\n## [v3.11.0] - 2023-08-19\n\n- restored behavior as <= v3.9.0 with option to change path strategy using TrimRightSlashEnabled. \n\n## [v3.10.2] - 2023-03-09 - DO NOT USE\n\n- introduced MergePathStrategy to be able to revert behaviour of path concatenation to 3.9.0\n  see comment in Readme how to customize this behaviour.\n\n## [v3.10.1] - 2022-11-19 - DO NOT USE\n\n- fix broken 3.10.0 by using path package for joining paths\n\n## [v3.10.0] - 2022-10-11 - BROKEN\n\n- changed tokenizer to match std route match behavior; do not trimright the path (#511)\n- Add MIME_ZIP (#512)\n- Add MIME_ZIP and HEADER_ContentDisposition (#513)\n- Changed how to get query parameter issue #510\n\n## [v3.9.0] - 2022-07-21\n\n- add support for http.Handler implementations to work as FilterFunction, issue #504 (thanks to https://github.com/ggicci)\n\n## [v3.8.0] - 2022-06-06\n\n- use exact matching of allowed domain entries, issue #489 (#493)\n\t- this changes fixes [security] Authorization Bypass Through User-Controlled Key\n\t  by changing the behaviour of the AllowedDomains setting in the CORS filter.\n\t  To support the previous behaviour, the CORS filter type now has a AllowedDomainFunc\n\t  callback mechanism which is called when a simple domain match fails. \n- add test and fix for POST without body and Content-type, issue #492 (#496)\n- [Minor] Bad practice to have a mix of Receiver types. (#491)\n\n## [v3.7.2] - 2021-11-24\n\n- restored FilterChain (#482 by SVilgelm)\n\n\n## [v3.7.1] - 2021-10-04\n\n- fix problem with contentEncodingEnabled setting (#479)\n\n## [v3.7.0] - 2021-09-24\n\n- feat(parameter): adds additional openapi mappings (#478)\n\n## [v3.6.0] - 2021-09-18\n\n- add support for vendor extensions (#477 thx erraggy)\n\n## [v3.5.2] - 2021-07-14\n\n- fix removing absent route from webservice (#472)\n\n## [v3.5.1] - 2021-04-12\n\n- fix handling no match access selected path\n- remove obsolete field\n\n## [v3.5.0] - 2021-04-10\n\n- add check for wildcard (#463) in CORS\n- add access to Route from Request, issue #459 (#462)\n\n## [v3.4.0] - 2020-11-10\n\n- Added OPTIONS to WebService\n\n## [v3.3.2] - 2020-01-23\n\n- Fixed duplicate compression in dispatch. #449\n\n\n## [v3.3.1] - 2020-08-31\n\n- Added check on writer to prevent compression of response twice. #447\n\n## [v3.3.0] - 2020-08-19\n\n- Enable content encoding on Handle and ServeHTTP (#446)\n- List available representations in 406 body (#437)\n- Convert to string using rune() (#443)\n\n## [v3.2.0] - 2020-06-21\n\n- 405 Method Not Allowed must have Allow header (#436) (thx Bracken <abdawson@gmail.com>)\n- add field allowedMethodsWithoutContentType (#424)\n\n## [v3.1.0]\n\n- support describing response headers (#426)\n- fix openapi examples (#425)\n\nv3.0.0\n\n- fix: use request/response resulting from filter chain\n- add Go module\n  Module consumer should use github.com/emicklei/go-restful/v3 as import path\n\nv2.10.0\n\n- support for Custom Verbs (thanks Vinci Xu <277040271@qq.com>)\n- fixed static example (thanks Arthur <yang_yapo@126.com>)\n- simplify code (thanks Christian Muehlhaeuser <muesli@gmail.com>)\n- added JWT HMAC with SHA-512 authentication code example (thanks Amim Knabben <amim.knabben@gmail.com>)\n\nv2.9.6\n\n- small optimization in filter code\n\nv2.11.1\n\n- fix WriteError return value (#415)\n\nv2.11.0 \n\n- allow prefix and suffix in path variable expression (#414)\n\nv2.9.6\n\n- support google custome verb (#413)\n\nv2.9.5\n\n- fix panic in Response.WriteError if err == nil\n\nv2.9.4\n\n- fix issue #400 , parsing mime type quality\n- Route Builder added option for contentEncodingEnabled (#398)\n\nv2.9.3\n\n- Avoid return of 415 Unsupported Media Type when request body is empty (#396)\n\nv2.9.2\n\n- Reduce allocations in per-request methods to improve performance (#395)\n\nv2.9.1\n\n- Fix issue with default responses and invalid status code 0. (#393)\n\nv2.9.0\n\n- add per Route content encoding setting (overrides container setting)\n\nv2.8.0\n\n- add Request.QueryParameters()\n- add json-iterator (via build tag)\n- disable vgo module (until log is moved)\n\nv2.7.1\n\n- add vgo module\n\nv2.6.1\n\n- add JSONNewDecoderFunc to allow custom JSON Decoder usage (go 1.10+)\n\nv2.6.0\n\n- Make JSR 311 routing and path param processing consistent\n- Adding description to RouteBuilder.Reads()\n- Update example for Swagger12 and OpenAPI\n\n2017-09-13\n\n- added route condition functions using `.If(func)` in route building.\n\n2017-02-16\n\n- solved issue #304, make operation names unique\n\n2017-01-30\n \n\t[IMPORTANT] For swagger users, change your import statement to:\t\n\tswagger \"github.com/emicklei/go-restful-swagger12\"\n\n- moved swagger 1.2 code to go-restful-swagger12\n- created TAG 2.0.0\n\n2017-01-27\n\n- remove defer request body close\n- expose Dispatch for testing filters and Routefunctions\n- swagger response model cannot be array \n- created TAG 1.0.0\n\n2016-12-22\n\n- (API change) Remove code related to caching request content. Removes SetCacheReadEntity(doCache bool)\n\n2016-11-26\n\n- Default change! now use CurlyRouter (was RouterJSR311)\n- Default change! no more caching of request content\n- Default change! do not recover from panics\n\n2016-09-22\n\n- fix the DefaultRequestContentType feature\n\n2016-02-14\n\n- take the qualify factor of the Accept header mediatype into account when deciding the contentype of the response\n- add constructors for custom entity accessors for xml and json \n\n2015-09-27\n\n- rename new WriteStatusAnd... to WriteHeaderAnd... for consistency\n\n2015-09-25\n\n- fixed problem with changing Header after WriteHeader (issue 235)\n\n2015-09-14\n\n- changed behavior of WriteHeader (immediate write) and WriteEntity (no status write)\n- added support for custom EntityReaderWriters.\n\n2015-08-06\n\n- add support for reading entities from compressed request content\n- use sync.Pool for compressors of http response and request body\n- add Description to Parameter for documentation in Swagger UI\n\n2015-03-20\n\n- add configurable logging\n\n2015-03-18\n\n- if not specified, the Operation is derived from the Route function\n\n2015-03-17\n\n- expose Parameter creation functions\n- make trace logger an interface\n- fix OPTIONSFilter\n- customize rendering of ServiceError\n- JSR311 router now handles wildcards\n- add Notes to Route\n\n2014-11-27\n\n- (api add) PrettyPrint per response. (as proposed in #167)\n\n2014-11-12\n\n- (api add) ApiVersion(.) for documentation in Swagger UI\n\n2014-11-10\n\n- (api change) struct fields tagged with \"description\" show up in Swagger UI\n\n2014-10-31\n\n- (api change) ReturnsError -> Returns\n- (api add)    RouteBuilder.Do(aBuilder) for DRY use of RouteBuilder\n- fix swagger nested structs\n- sort Swagger response messages by code\n\n2014-10-23\n\n- (api add) ReturnsError allows you to document Http codes in swagger\n- fixed problem with greedy CurlyRouter\n- (api add) Access-Control-Max-Age in CORS\n- add tracing functionality (injectable) for debugging purposes\n- support JSON parse 64bit int \n- fix empty parameters for swagger\n- WebServicesUrl is now optional for swagger\n- fixed duplicate AccessControlAllowOrigin in CORS\n- (api change) expose ServeMux in container\n- (api add) added AllowedDomains in CORS\n- (api add) ParameterNamed for detailed documentation\n\n2014-04-16\n\n- (api add) expose constructor of Request for testing.\n\n2014-06-27\n\n- (api add) ParameterNamed gives access to a Parameter definition and its data (for further specification).\n- (api add) SetCacheReadEntity allow scontrol over whether or not the request body is being cached (default true for compatibility reasons).\n\n2014-07-03\n\n- (api add) CORS can be configured with a list of allowed domains\n\n2014-03-12\n\n- (api add) Route path parameters can use wildcard or regular expressions. (requires CurlyRouter)\n\n2014-02-26\n\n- (api add) Request now provides information about the matched Route, see method SelectedRoutePath \n\n2014-02-17\n\n- (api change) renamed parameter constants (go-lint checks)\n\n2014-01-10\n\n- (api add) support for CloseNotify, see http://golang.org/pkg/net/http/#CloseNotifier\n\n2014-01-07\n\n- (api change) Write* methods in Response now return the error or nil.\n- added example of serving HTML from a Go template.\n- fixed comparing Allowed headers in CORS (is now case-insensitive)\n\n2013-11-13\n\n- (api add) Response knows how many bytes are written to the response body.\n\n2013-10-29\n\n- (api add) RecoverHandler(handler RecoverHandleFunction) to change how panic recovery is handled. Default behavior is to log and return a stacktrace. This may be a security issue as it exposes sourcecode information.\n\n2013-10-04\n\n- (api add) Response knows what HTTP status has been written\n- (api add) Request can have attributes (map of string->interface, also called request-scoped variables\n\n2013-09-12\n\n- (api change) Router interface simplified\n- Implemented CurlyRouter, a Router that does not use|allow regular expressions in paths\n\n2013-08-05\n - add OPTIONS support\n - add CORS support\n\n2013-08-27\n\n- fixed some reported issues (see github)\n- (api change) deprecated use of WriteError; use WriteErrorString instead\n\n2014-04-15\n\n- (fix) v1.0.1 tag: fix Issue 111: WriteErrorString\n\n2013-08-08\n\n- (api add) Added implementation Container: a WebServices collection with its own http.ServeMux allowing multiple endpoints per program. Existing uses of go-restful will register their services to the DefaultContainer.\n- (api add) the swagger package has be extended to have a UI per container.\n- if panic is detected then a small stack trace is printed (thanks to runner-mei)\n- (api add) WriteErrorString to Response\n\nImportant API changes:\n\n- (api remove) package variable DoNotRecover no longer works ; use restful.DefaultContainer.DoNotRecover(true) instead.\n- (api remove) package variable EnableContentEncoding no longer works ; use restful.DefaultContainer.EnableContentEncoding(true) instead.\n \n \n2013-07-06\n\n- (api add) Added support for response encoding (gzip and deflate(zlib)). This feature is disabled on default (for backwards compatibility). Use restful.EnableContentEncoding = true in your initialization to enable this feature.\n\n2013-06-19\n\n- (improve) DoNotRecover option, moved request body closer, improved ReadEntity\n\n2013-06-03\n\n- (api change) removed Dispatcher interface, hide PathExpression\n- changed receiver names of type functions to be more idiomatic Go\n\n2013-06-02\n\n- (optimize) Cache the RegExp compilation of Paths.\n\n2013-05-22\n\t\n- (api add) Added support for request/response filter functions\n\n2013-05-18\n\n\n- (api add) Added feature to change the default Http Request Dispatch function (travis cline)\n- (api change) Moved Swagger Webservice to swagger package (see example restful-user)\n\n[2012-11-14 .. 2013-05-18>\n \n- See https://github.com/emicklei/go-restful/commits\n\n2012-11-14\n\n- Initial commit\n\n\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/LICENSE",
    "content": "Copyright (c) 2012,2013 Ernest Micklei\n\nMIT License\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/Makefile",
    "content": "all: test\n\ntest:\n\tgo vet .\n\tgo test -cover -v .\n\nex:\n\tfind ./examples -type f -name \"*.go\" | xargs -I {} go build -o /tmp/ignore {}"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/README.md",
    "content": "go-restful\n==========\npackage for building REST-style Web Services using Google Go\n\n[![Build Status](https://travis-ci.org/emicklei/go-restful.png)](https://travis-ci.org/emicklei/go-restful)\n[![Go Report Card](https://goreportcard.com/badge/github.com/emicklei/go-restful)](https://goreportcard.com/report/github.com/emicklei/go-restful)\n[![GoDoc](https://godoc.org/github.com/emicklei/go-restful?status.svg)](https://pkg.go.dev/github.com/emicklei/go-restful)\n[![codecov](https://codecov.io/gh/emicklei/go-restful/branch/master/graph/badge.svg)](https://codecov.io/gh/emicklei/go-restful)\n\n- [Code examples use v3](https://github.com/emicklei/go-restful/tree/v3/examples)\n\nREST asks developers to use HTTP methods explicitly and in a way that's consistent with the protocol definition. This basic REST design principle establishes a one-to-one mapping between create, read, update, and delete (CRUD) operations and HTTP methods. According to this mapping:\n\n- GET = Retrieve a representation of a resource\n- POST = Create if you are sending content to the server to create a subordinate of the specified resource collection, using some server-side algorithm.\n- PUT = Create if you are sending the full content of the specified resource (URI).\n- PUT = Update if you are updating the full content of the specified resource.\n- DELETE = Delete if you are requesting the server to delete the resource\n- PATCH = Update partial content of a resource\n- OPTIONS = Get information about the communication options for the request URI\n    \n### Usage\n\n#### Without Go Modules\n\nAll versions up to `v2.*.*` (on the master) are not supporting Go modules.\n\n```\nimport (\n\trestful \"github.com/emicklei/go-restful\"\n)\n```\n\n#### Using Go Modules\n\nAs of version `v3.0.0` (on the v3 branch), this package supports Go modules.\n\n```\nimport (\n\trestful \"github.com/emicklei/go-restful/v3\"\n)\n```\n\n### Example\n\n```Go\nws := new(restful.WebService)\nws.\n\tPath(\"/users\").\n\tConsumes(restful.MIME_XML, restful.MIME_JSON).\n\tProduces(restful.MIME_JSON, restful.MIME_XML)\n\nws.Route(ws.GET(\"/{user-id}\").To(u.findUser).\n\tDoc(\"get a user\").\n\tParam(ws.PathParameter(\"user-id\", \"identifier of the user\").DataType(\"string\")).\n\tWrites(User{}))\t\t\n...\n\t\nfunc (u UserResource) findUser(request *restful.Request, response *restful.Response) {\n\tid := request.PathParameter(\"user-id\")\n\t...\n}\n```\n\t\n[Full API of a UserResource](https://github.com/emicklei/go-restful/blob/v3/examples/user-resource/restful-user-resource.go) \n\t\t\n### Features\n\n- Routes for request &#8594; function mapping with path parameter (e.g. {id} but also prefix_{var} and {var}_suffix) support\n- Configurable router:\n\t- (default) Fast routing algorithm that allows static elements, [google custom method](https://cloud.google.com/apis/design/custom_methods), regular expressions and dynamic parameters in the URL path (e.g. /resource/name:customVerb, /meetings/{id} or /static/{subpath:*})\n\t- Routing algorithm after [JSR311](http://jsr311.java.net/nonav/releases/1.1/spec/spec.html) that is implemented using (but does **not** accept) regular expressions\n- Request API for reading structs from JSON/XML and accessing parameters (path,query,header)\n- Response API for writing structs to JSON/XML and setting headers\n- Customizable encoding using EntityReaderWriter registration\n- Filters for intercepting the request &#8594; response flow on Service or Route level\n- Request-scoped variables using attributes\n- Containers for WebServices on different HTTP endpoints\n- Content encoding (gzip,deflate) of request and response payloads\n- Automatic responses on OPTIONS (using a filter)\n- Automatic CORS request handling (using a filter)\n- API declaration for Swagger UI ([go-restful-openapi](https://github.com/emicklei/go-restful-openapi))\n- Panic recovery to produce HTTP 500, customizable using RecoverHandler(...)\n- Route errors produce HTTP 404/405/406/415 errors, customizable using ServiceErrorHandler(...)\n- Configurable (trace) logging\n- Customizable gzip/deflate readers and writers using CompressorProvider registration\n- Inject your own http.Handler using the `HttpMiddlewareHandlerToFilter` function\n\n## How to customize\nThere are several hooks to customize the behavior of the go-restful package.\n\n- Router algorithm\n- Panic recovery\n- JSON decoder\n- Trace logging\n- Compression\n- Encoders for other serializers\n- Use [jsoniter](https://github.com/json-iterator/go) by building this package using a build tag, e.g. `go build -tags=jsoniter .` \n- Use the package variable `TrimRightSlashEnabled` (default true) to control the behavior of matching routes that end with a slash `/` \n\n## Resources\n\n- [Example programs](./examples)\n- [Example posted on blog](http://ernestmicklei.com/2012/11/go-restful-first-working-example/)\n- [Design explained on blog](http://ernestmicklei.com/2012/11/go-restful-api-design/)\n- [sourcegraph](https://sourcegraph.com/github.com/emicklei/go-restful)\n- [showcase: Zazkia - tcp proxy for testing resiliency](https://github.com/emicklei/zazkia)\n- [showcase: Mora - MongoDB REST Api server](https://github.com/emicklei/mora)\n\nType ```git shortlog -s``` for a full list of contributors.\n\n© 2012 - 2023, http://ernestmicklei.com. MIT License. Contributions are welcome.\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/SECURITY.md",
    "content": "# Security Policy\n\n## Supported Versions\n\n| Version | Supported          |\n| ------- | ------------------ |\n| v3.7.x     | :white_check_mark: |\n| < v3.0.1   | :x:                |\n\n## Reporting a Vulnerability\n\nCreate an Issue and put the label `[security]` in the title of the issue.\nValid reported security issues are expected to be solved within a week.\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/Srcfile",
    "content": "{\"SkipDirs\": [\"examples\"]}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/bench_test.sh",
    "content": "#go test -run=none -file bench_test.go -test.bench . -cpuprofile=bench_test.out\n\ngo test -c\n./go-restful.test -test.run=none -test.cpuprofile=tmp.prof -test.bench=BenchmarkMany\n./go-restful.test -test.run=none -test.cpuprofile=curly.prof -test.bench=BenchmarkManyCurly\n\n#go tool pprof go-restful.test tmp.prof\ngo tool pprof go-restful.test curly.prof\n\n\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/compress.go",
    "content": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\nimport (\n\t\"bufio\"\n\t\"compress/gzip\"\n\t\"compress/zlib\"\n\t\"errors\"\n\t\"io\"\n\t\"net\"\n\t\"net/http\"\n\t\"strings\"\n)\n\n// OBSOLETE : use restful.DefaultContainer.EnableContentEncoding(true) to change this setting.\nvar EnableContentEncoding = false\n\n// CompressingResponseWriter is a http.ResponseWriter that can perform content encoding (gzip and zlib)\ntype CompressingResponseWriter struct {\n\twriter     http.ResponseWriter\n\tcompressor io.WriteCloser\n\tencoding   string\n}\n\n// Header is part of http.ResponseWriter interface\nfunc (c *CompressingResponseWriter) Header() http.Header {\n\treturn c.writer.Header()\n}\n\n// WriteHeader is part of http.ResponseWriter interface\nfunc (c *CompressingResponseWriter) WriteHeader(status int) {\n\tc.writer.WriteHeader(status)\n}\n\n// Write is part of http.ResponseWriter interface\n// It is passed through the compressor\nfunc (c *CompressingResponseWriter) Write(bytes []byte) (int, error) {\n\tif c.isCompressorClosed() {\n\t\treturn -1, errors.New(\"Compressing error: tried to write data using closed compressor\")\n\t}\n\treturn c.compressor.Write(bytes)\n}\n\n// CloseNotify is part of http.CloseNotifier interface\nfunc (c *CompressingResponseWriter) CloseNotify() <-chan bool {\n\treturn c.writer.(http.CloseNotifier).CloseNotify()\n}\n\n// Close the underlying compressor\nfunc (c *CompressingResponseWriter) Close() error {\n\tif c.isCompressorClosed() {\n\t\treturn errors.New(\"Compressing error: tried to close already closed compressor\")\n\t}\n\n\tc.compressor.Close()\n\tif ENCODING_GZIP == c.encoding {\n\t\tcurrentCompressorProvider.ReleaseGzipWriter(c.compressor.(*gzip.Writer))\n\t}\n\tif ENCODING_DEFLATE == c.encoding {\n\t\tcurrentCompressorProvider.ReleaseZlibWriter(c.compressor.(*zlib.Writer))\n\t}\n\t// gc hint needed?\n\tc.compressor = nil\n\treturn nil\n}\n\nfunc (c *CompressingResponseWriter) isCompressorClosed() bool {\n\treturn nil == c.compressor\n}\n\n// Hijack implements the Hijacker interface\n// This is especially useful when combining Container.EnabledContentEncoding\n// in combination with websockets (for instance gorilla/websocket)\nfunc (c *CompressingResponseWriter) Hijack() (net.Conn, *bufio.ReadWriter, error) {\n\thijacker, ok := c.writer.(http.Hijacker)\n\tif !ok {\n\t\treturn nil, nil, errors.New(\"ResponseWriter doesn't support Hijacker interface\")\n\t}\n\treturn hijacker.Hijack()\n}\n\n// WantsCompressedResponse reads the Accept-Encoding header to see if and which encoding is requested.\n// It also inspects the httpWriter whether its content-encoding is already set (non-empty).\nfunc wantsCompressedResponse(httpRequest *http.Request, httpWriter http.ResponseWriter) (bool, string) {\n\tif contentEncoding := httpWriter.Header().Get(HEADER_ContentEncoding); contentEncoding != \"\" {\n\t\treturn false, \"\"\n\t}\n\theader := httpRequest.Header.Get(HEADER_AcceptEncoding)\n\tgi := strings.Index(header, ENCODING_GZIP)\n\tzi := strings.Index(header, ENCODING_DEFLATE)\n\t// use in order of appearance\n\tif gi == -1 {\n\t\treturn zi != -1, ENCODING_DEFLATE\n\t} else if zi == -1 {\n\t\treturn gi != -1, ENCODING_GZIP\n\t} else {\n\t\tif gi < zi {\n\t\t\treturn true, ENCODING_GZIP\n\t\t}\n\t\treturn true, ENCODING_DEFLATE\n\t}\n}\n\n// NewCompressingResponseWriter create a CompressingResponseWriter for a known encoding = {gzip,deflate}\nfunc NewCompressingResponseWriter(httpWriter http.ResponseWriter, encoding string) (*CompressingResponseWriter, error) {\n\thttpWriter.Header().Set(HEADER_ContentEncoding, encoding)\n\tc := new(CompressingResponseWriter)\n\tc.writer = httpWriter\n\tvar err error\n\tif ENCODING_GZIP == encoding {\n\t\tw := currentCompressorProvider.AcquireGzipWriter()\n\t\tw.Reset(httpWriter)\n\t\tc.compressor = w\n\t\tc.encoding = ENCODING_GZIP\n\t} else if ENCODING_DEFLATE == encoding {\n\t\tw := currentCompressorProvider.AcquireZlibWriter()\n\t\tw.Reset(httpWriter)\n\t\tc.compressor = w\n\t\tc.encoding = ENCODING_DEFLATE\n\t} else {\n\t\treturn nil, errors.New(\"Unknown encoding:\" + encoding)\n\t}\n\treturn c, err\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/compressor_cache.go",
    "content": "package restful\n\n// Copyright 2015 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\nimport (\n\t\"compress/gzip\"\n\t\"compress/zlib\"\n)\n\n// BoundedCachedCompressors is a CompressorProvider that uses a cache with a fixed amount\n// of writers and readers (resources).\n// If a new resource is acquired and all are in use, it will return a new unmanaged resource.\ntype BoundedCachedCompressors struct {\n\tgzipWriters     chan *gzip.Writer\n\tgzipReaders     chan *gzip.Reader\n\tzlibWriters     chan *zlib.Writer\n\twritersCapacity int\n\treadersCapacity int\n}\n\n// NewBoundedCachedCompressors returns a new, with filled cache,  BoundedCachedCompressors.\nfunc NewBoundedCachedCompressors(writersCapacity, readersCapacity int) *BoundedCachedCompressors {\n\tb := &BoundedCachedCompressors{\n\t\tgzipWriters:     make(chan *gzip.Writer, writersCapacity),\n\t\tgzipReaders:     make(chan *gzip.Reader, readersCapacity),\n\t\tzlibWriters:     make(chan *zlib.Writer, writersCapacity),\n\t\twritersCapacity: writersCapacity,\n\t\treadersCapacity: readersCapacity,\n\t}\n\tfor ix := 0; ix < writersCapacity; ix++ {\n\t\tb.gzipWriters <- newGzipWriter()\n\t\tb.zlibWriters <- newZlibWriter()\n\t}\n\tfor ix := 0; ix < readersCapacity; ix++ {\n\t\tb.gzipReaders <- newGzipReader()\n\t}\n\treturn b\n}\n\n// AcquireGzipWriter returns an resettable *gzip.Writer. Needs to be released.\nfunc (b *BoundedCachedCompressors) AcquireGzipWriter() *gzip.Writer {\n\tvar writer *gzip.Writer\n\tselect {\n\tcase writer, _ = <-b.gzipWriters:\n\tdefault:\n\t\t// return a new unmanaged one\n\t\twriter = newGzipWriter()\n\t}\n\treturn writer\n}\n\n// ReleaseGzipWriter accepts a writer (does not have to be one that was cached)\n// only when the cache has room for it. It will ignore it otherwise.\nfunc (b *BoundedCachedCompressors) ReleaseGzipWriter(w *gzip.Writer) {\n\t// forget the unmanaged ones\n\tif len(b.gzipWriters) < b.writersCapacity {\n\t\tb.gzipWriters <- w\n\t}\n}\n\n// AcquireGzipReader returns a *gzip.Reader. Needs to be released.\nfunc (b *BoundedCachedCompressors) AcquireGzipReader() *gzip.Reader {\n\tvar reader *gzip.Reader\n\tselect {\n\tcase reader, _ = <-b.gzipReaders:\n\tdefault:\n\t\t// return a new unmanaged one\n\t\treader = newGzipReader()\n\t}\n\treturn reader\n}\n\n// ReleaseGzipReader accepts a reader (does not have to be one that was cached)\n// only when the cache has room for it. It will ignore it otherwise.\nfunc (b *BoundedCachedCompressors) ReleaseGzipReader(r *gzip.Reader) {\n\t// forget the unmanaged ones\n\tif len(b.gzipReaders) < b.readersCapacity {\n\t\tb.gzipReaders <- r\n\t}\n}\n\n// AcquireZlibWriter returns an resettable *zlib.Writer. Needs to be released.\nfunc (b *BoundedCachedCompressors) AcquireZlibWriter() *zlib.Writer {\n\tvar writer *zlib.Writer\n\tselect {\n\tcase writer, _ = <-b.zlibWriters:\n\tdefault:\n\t\t// return a new unmanaged one\n\t\twriter = newZlibWriter()\n\t}\n\treturn writer\n}\n\n// ReleaseZlibWriter accepts a writer (does not have to be one that was cached)\n// only when the cache has room for it. It will ignore it otherwise.\nfunc (b *BoundedCachedCompressors) ReleaseZlibWriter(w *zlib.Writer) {\n\t// forget the unmanaged ones\n\tif len(b.zlibWriters) < b.writersCapacity {\n\t\tb.zlibWriters <- w\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/compressor_pools.go",
    "content": "package restful\n\n// Copyright 2015 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\nimport (\n\t\"bytes\"\n\t\"compress/gzip\"\n\t\"compress/zlib\"\n\t\"sync\"\n)\n\n// SyncPoolCompessors is a CompressorProvider that use the standard sync.Pool.\ntype SyncPoolCompessors struct {\n\tGzipWriterPool *sync.Pool\n\tGzipReaderPool *sync.Pool\n\tZlibWriterPool *sync.Pool\n}\n\n// NewSyncPoolCompessors returns a new (\"empty\") SyncPoolCompessors.\nfunc NewSyncPoolCompessors() *SyncPoolCompessors {\n\treturn &SyncPoolCompessors{\n\t\tGzipWriterPool: &sync.Pool{\n\t\t\tNew: func() interface{} { return newGzipWriter() },\n\t\t},\n\t\tGzipReaderPool: &sync.Pool{\n\t\t\tNew: func() interface{} { return newGzipReader() },\n\t\t},\n\t\tZlibWriterPool: &sync.Pool{\n\t\t\tNew: func() interface{} { return newZlibWriter() },\n\t\t},\n\t}\n}\n\nfunc (s *SyncPoolCompessors) AcquireGzipWriter() *gzip.Writer {\n\treturn s.GzipWriterPool.Get().(*gzip.Writer)\n}\n\nfunc (s *SyncPoolCompessors) ReleaseGzipWriter(w *gzip.Writer) {\n\ts.GzipWriterPool.Put(w)\n}\n\nfunc (s *SyncPoolCompessors) AcquireGzipReader() *gzip.Reader {\n\treturn s.GzipReaderPool.Get().(*gzip.Reader)\n}\n\nfunc (s *SyncPoolCompessors) ReleaseGzipReader(r *gzip.Reader) {\n\ts.GzipReaderPool.Put(r)\n}\n\nfunc (s *SyncPoolCompessors) AcquireZlibWriter() *zlib.Writer {\n\treturn s.ZlibWriterPool.Get().(*zlib.Writer)\n}\n\nfunc (s *SyncPoolCompessors) ReleaseZlibWriter(w *zlib.Writer) {\n\ts.ZlibWriterPool.Put(w)\n}\n\nfunc newGzipWriter() *gzip.Writer {\n\t// create with an empty bytes writer; it will be replaced before using the gzipWriter\n\twriter, err := gzip.NewWriterLevel(new(bytes.Buffer), gzip.BestSpeed)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn writer\n}\n\nfunc newGzipReader() *gzip.Reader {\n\t// create with an empty reader (but with GZIP header); it will be replaced before using the gzipReader\n\t// we can safely use currentCompressProvider because it is set on package initialization.\n\tw := currentCompressorProvider.AcquireGzipWriter()\n\tdefer currentCompressorProvider.ReleaseGzipWriter(w)\n\tb := new(bytes.Buffer)\n\tw.Reset(b)\n\tw.Flush()\n\tw.Close()\n\treader, err := gzip.NewReader(bytes.NewReader(b.Bytes()))\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn reader\n}\n\nfunc newZlibWriter() *zlib.Writer {\n\twriter, err := zlib.NewWriterLevel(new(bytes.Buffer), gzip.BestSpeed)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn writer\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/compressors.go",
    "content": "package restful\n\n// Copyright 2015 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\nimport (\n\t\"compress/gzip\"\n\t\"compress/zlib\"\n)\n\n// CompressorProvider describes a component that can provider compressors for the std methods.\ntype CompressorProvider interface {\n\t// Returns a *gzip.Writer which needs to be released later.\n\t// Before using it, call Reset().\n\tAcquireGzipWriter() *gzip.Writer\n\n\t// Releases an acquired *gzip.Writer.\n\tReleaseGzipWriter(w *gzip.Writer)\n\n\t// Returns a *gzip.Reader which needs to be released later.\n\tAcquireGzipReader() *gzip.Reader\n\n\t// Releases an acquired *gzip.Reader.\n\tReleaseGzipReader(w *gzip.Reader)\n\n\t// Returns a *zlib.Writer which needs to be released later.\n\t// Before using it, call Reset().\n\tAcquireZlibWriter() *zlib.Writer\n\n\t// Releases an acquired *zlib.Writer.\n\tReleaseZlibWriter(w *zlib.Writer)\n}\n\n// DefaultCompressorProvider is the actual provider of compressors (zlib or gzip).\nvar currentCompressorProvider CompressorProvider\n\nfunc init() {\n\tcurrentCompressorProvider = NewSyncPoolCompessors()\n}\n\n// CurrentCompressorProvider returns the current CompressorProvider.\n// It is initialized using a SyncPoolCompessors.\nfunc CurrentCompressorProvider() CompressorProvider {\n\treturn currentCompressorProvider\n}\n\n// SetCompressorProvider sets the actual provider of compressors (zlib or gzip).\nfunc SetCompressorProvider(p CompressorProvider) {\n\tif p == nil {\n\t\tpanic(\"cannot set compressor provider to nil\")\n\t}\n\tcurrentCompressorProvider = p\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/constants.go",
    "content": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\nconst (\n\tMIME_XML   = \"application/xml\"          // Accept or Content-Type used in Consumes() and/or Produces()\n\tMIME_JSON  = \"application/json\"         // Accept or Content-Type used in Consumes() and/or Produces()\n\tMIME_ZIP   = \"application/zip\"          // Accept or Content-Type used in Consumes() and/or Produces()\n\tMIME_OCTET = \"application/octet-stream\" // If Content-Type is not present in request, use the default\n\n\tHEADER_Allow                         = \"Allow\"\n\tHEADER_Accept                        = \"Accept\"\n\tHEADER_Origin                        = \"Origin\"\n\tHEADER_ContentType                   = \"Content-Type\"\n\tHEADER_ContentDisposition            = \"Content-Disposition\"\n\tHEADER_LastModified                  = \"Last-Modified\"\n\tHEADER_AcceptEncoding                = \"Accept-Encoding\"\n\tHEADER_ContentEncoding               = \"Content-Encoding\"\n\tHEADER_AccessControlExposeHeaders    = \"Access-Control-Expose-Headers\"\n\tHEADER_AccessControlRequestMethod    = \"Access-Control-Request-Method\"\n\tHEADER_AccessControlRequestHeaders   = \"Access-Control-Request-Headers\"\n\tHEADER_AccessControlAllowMethods     = \"Access-Control-Allow-Methods\"\n\tHEADER_AccessControlAllowOrigin      = \"Access-Control-Allow-Origin\"\n\tHEADER_AccessControlAllowCredentials = \"Access-Control-Allow-Credentials\"\n\tHEADER_AccessControlAllowHeaders     = \"Access-Control-Allow-Headers\"\n\tHEADER_AccessControlMaxAge           = \"Access-Control-Max-Age\"\n\n\tENCODING_GZIP    = \"gzip\"\n\tENCODING_DEFLATE = \"deflate\"\n)\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/container.go",
    "content": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"os\"\n\t\"runtime\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"github.com/emicklei/go-restful/v3/log\"\n)\n\n// Container holds a collection of WebServices and a http.ServeMux to dispatch http requests.\n// The requests are further dispatched to routes of WebServices using a RouteSelector\ntype Container struct {\n\twebServicesLock        sync.RWMutex\n\twebServices            []*WebService\n\tServeMux               *http.ServeMux\n\tisRegisteredOnRoot     bool\n\tcontainerFilters       []FilterFunction\n\tdoNotRecover           bool // default is true\n\trecoverHandleFunc      RecoverHandleFunction\n\tserviceErrorHandleFunc ServiceErrorHandleFunction\n\trouter                 RouteSelector // default is a CurlyRouter (RouterJSR311 is a slower alternative)\n\tcontentEncodingEnabled bool          // default is false\n}\n\n// NewContainer creates a new Container using a new ServeMux and default router (CurlyRouter)\nfunc NewContainer() *Container {\n\treturn &Container{\n\t\twebServices:            []*WebService{},\n\t\tServeMux:               http.NewServeMux(),\n\t\tisRegisteredOnRoot:     false,\n\t\tcontainerFilters:       []FilterFunction{},\n\t\tdoNotRecover:           true,\n\t\trecoverHandleFunc:      logStackOnRecover,\n\t\tserviceErrorHandleFunc: writeServiceError,\n\t\trouter:                 CurlyRouter{},\n\t\tcontentEncodingEnabled: false}\n}\n\n// RecoverHandleFunction declares functions that can be used to handle a panic situation.\n// The first argument is what recover() returns. The second must be used to communicate an error response.\ntype RecoverHandleFunction func(interface{}, http.ResponseWriter)\n\n// RecoverHandler changes the default function (logStackOnRecover) to be called\n// when a panic is detected. DoNotRecover must be have its default value (=false).\nfunc (c *Container) RecoverHandler(handler RecoverHandleFunction) {\n\tc.recoverHandleFunc = handler\n}\n\n// ServiceErrorHandleFunction declares functions that can be used to handle a service error situation.\n// The first argument is the service error, the second is the request that resulted in the error and\n// the third must be used to communicate an error response.\ntype ServiceErrorHandleFunction func(ServiceError, *Request, *Response)\n\n// ServiceErrorHandler changes the default function (writeServiceError) to be called\n// when a ServiceError is detected.\nfunc (c *Container) ServiceErrorHandler(handler ServiceErrorHandleFunction) {\n\tc.serviceErrorHandleFunc = handler\n}\n\n// DoNotRecover controls whether panics will be caught to return HTTP 500.\n// If set to true, Route functions are responsible for handling any error situation.\n// Default value is true.\nfunc (c *Container) DoNotRecover(doNot bool) {\n\tc.doNotRecover = doNot\n}\n\n// Router changes the default Router (currently CurlyRouter)\nfunc (c *Container) Router(aRouter RouteSelector) {\n\tc.router = aRouter\n}\n\n// EnableContentEncoding (default=false) allows for GZIP or DEFLATE encoding of responses.\nfunc (c *Container) EnableContentEncoding(enabled bool) {\n\tc.contentEncodingEnabled = enabled\n}\n\n// Add a WebService to the Container. It will detect duplicate root paths and exit in that case.\nfunc (c *Container) Add(service *WebService) *Container {\n\tc.webServicesLock.Lock()\n\tdefer c.webServicesLock.Unlock()\n\n\t// if rootPath was not set then lazy initialize it\n\tif len(service.rootPath) == 0 {\n\t\tservice.Path(\"/\")\n\t}\n\n\t// cannot have duplicate root paths\n\tfor _, each := range c.webServices {\n\t\tif each.RootPath() == service.RootPath() {\n\t\t\tlog.Printf(\"WebService with duplicate root path detected:['%v']\", each)\n\t\t\tos.Exit(1)\n\t\t}\n\t}\n\n\t// If not registered on root then add specific mapping\n\tif !c.isRegisteredOnRoot {\n\t\tc.isRegisteredOnRoot = c.addHandler(service, c.ServeMux)\n\t}\n\tc.webServices = append(c.webServices, service)\n\treturn c\n}\n\n// addHandler may set a new HandleFunc for the serveMux\n// this function must run inside the critical region protected by the webServicesLock.\n// returns true if the function was registered on root (\"/\")\nfunc (c *Container) addHandler(service *WebService, serveMux *http.ServeMux) bool {\n\tpattern := fixedPrefixPath(service.RootPath())\n\t// check if root path registration is needed\n\tif \"/\" == pattern || \"\" == pattern {\n\t\tserveMux.HandleFunc(\"/\", c.dispatch)\n\t\treturn true\n\t}\n\t// detect if registration already exists\n\talreadyMapped := false\n\tfor _, each := range c.webServices {\n\t\tif each.RootPath() == service.RootPath() {\n\t\t\talreadyMapped = true\n\t\t\tbreak\n\t\t}\n\t}\n\tif !alreadyMapped {\n\t\tserveMux.HandleFunc(pattern, c.dispatch)\n\t\tif !strings.HasSuffix(pattern, \"/\") {\n\t\t\tserveMux.HandleFunc(pattern+\"/\", c.dispatch)\n\t\t}\n\t}\n\treturn false\n}\n\nfunc (c *Container) Remove(ws *WebService) error {\n\tif c.ServeMux == http.DefaultServeMux {\n\t\terrMsg := fmt.Sprintf(\"cannot remove a WebService from a Container using the DefaultServeMux: ['%v']\", ws)\n\t\tlog.Print(errMsg)\n\t\treturn errors.New(errMsg)\n\t}\n\tc.webServicesLock.Lock()\n\tdefer c.webServicesLock.Unlock()\n\t// build a new ServeMux and re-register all WebServices\n\tnewServeMux := http.NewServeMux()\n\tnewServices := []*WebService{}\n\tnewIsRegisteredOnRoot := false\n\tfor _, each := range c.webServices {\n\t\tif each.rootPath != ws.rootPath {\n\t\t\t// If not registered on root then add specific mapping\n\t\t\tif !newIsRegisteredOnRoot {\n\t\t\t\tnewIsRegisteredOnRoot = c.addHandler(each, newServeMux)\n\t\t\t}\n\t\t\tnewServices = append(newServices, each)\n\t\t}\n\t}\n\tc.webServices, c.ServeMux, c.isRegisteredOnRoot = newServices, newServeMux, newIsRegisteredOnRoot\n\treturn nil\n}\n\n// logStackOnRecover is the default RecoverHandleFunction and is called\n// when DoNotRecover is false and the recoverHandleFunc is not set for the container.\n// Default implementation logs the stacktrace and writes the stacktrace on the response.\n// This may be a security issue as it exposes sourcecode information.\nfunc logStackOnRecover(panicReason interface{}, httpWriter http.ResponseWriter) {\n\tvar buffer bytes.Buffer\n\tbuffer.WriteString(fmt.Sprintf(\"recover from panic situation: - %v\\r\\n\", panicReason))\n\tfor i := 2; ; i += 1 {\n\t\t_, file, line, ok := runtime.Caller(i)\n\t\tif !ok {\n\t\t\tbreak\n\t\t}\n\t\tbuffer.WriteString(fmt.Sprintf(\"    %s:%d\\r\\n\", file, line))\n\t}\n\tlog.Print(buffer.String())\n\thttpWriter.WriteHeader(http.StatusInternalServerError)\n\thttpWriter.Write(buffer.Bytes())\n}\n\n// writeServiceError is the default ServiceErrorHandleFunction and is called\n// when a ServiceError is returned during route selection. Default implementation\n// calls resp.WriteErrorString(err.Code, err.Message)\nfunc writeServiceError(err ServiceError, req *Request, resp *Response) {\n\tfor header, values := range err.Header {\n\t\tfor _, value := range values {\n\t\t\tresp.Header().Add(header, value)\n\t\t}\n\t}\n\tresp.WriteErrorString(err.Code, err.Message)\n}\n\n// Dispatch the incoming Http Request to a matching WebService.\nfunc (c *Container) Dispatch(httpWriter http.ResponseWriter, httpRequest *http.Request) {\n\tif httpWriter == nil {\n\t\tpanic(\"httpWriter cannot be nil\")\n\t}\n\tif httpRequest == nil {\n\t\tpanic(\"httpRequest cannot be nil\")\n\t}\n\tc.dispatch(httpWriter, httpRequest)\n}\n\n// Dispatch the incoming Http Request to a matching WebService.\nfunc (c *Container) dispatch(httpWriter http.ResponseWriter, httpRequest *http.Request) {\n\t// so we can assign a compressing one later\n\twriter := httpWriter\n\n\t// CompressingResponseWriter should be closed after all operations are done\n\tdefer func() {\n\t\tif compressWriter, ok := writer.(*CompressingResponseWriter); ok {\n\t\t\tcompressWriter.Close()\n\t\t}\n\t}()\n\n\t// Instal panic recovery unless told otherwise\n\tif !c.doNotRecover { // catch all for 500 response\n\t\tdefer func() {\n\t\t\tif r := recover(); r != nil {\n\t\t\t\tc.recoverHandleFunc(r, writer)\n\t\t\t\treturn\n\t\t\t}\n\t\t}()\n\t}\n\n\t// Find best match Route ; err is non nil if no match was found\n\tvar webService *WebService\n\tvar route *Route\n\tvar err error\n\tfunc() {\n\t\tc.webServicesLock.RLock()\n\t\tdefer c.webServicesLock.RUnlock()\n\t\twebService, route, err = c.router.SelectRoute(\n\t\t\tc.webServices,\n\t\t\thttpRequest)\n\t}()\n\tif err != nil {\n\t\t// a non-200 response (may be compressed) has already been written\n\t\t// run container filters anyway ; they should not touch the response...\n\t\tchain := FilterChain{Filters: c.containerFilters, Target: func(req *Request, resp *Response) {\n\t\t\tswitch err.(type) {\n\t\t\tcase ServiceError:\n\t\t\t\tser := err.(ServiceError)\n\t\t\t\tc.serviceErrorHandleFunc(ser, req, resp)\n\t\t\t}\n\t\t\t// TODO\n\t\t}}\n\t\tchain.ProcessFilter(NewRequest(httpRequest), NewResponse(writer))\n\t\treturn\n\t}\n\n\t// Unless httpWriter is already an CompressingResponseWriter see if we need to install one\n\tif _, isCompressing := httpWriter.(*CompressingResponseWriter); !isCompressing {\n\t\t// Detect if compression is needed\n\t\t// assume without compression, test for override\n\t\tcontentEncodingEnabled := c.contentEncodingEnabled\n\t\tif route != nil && route.contentEncodingEnabled != nil {\n\t\t\tcontentEncodingEnabled = *route.contentEncodingEnabled\n\t\t}\n\t\tif contentEncodingEnabled {\n\t\t\tdoCompress, encoding := wantsCompressedResponse(httpRequest, httpWriter)\n\t\t\tif doCompress {\n\t\t\t\tvar err error\n\t\t\t\twriter, err = NewCompressingResponseWriter(httpWriter, encoding)\n\t\t\t\tif err != nil {\n\t\t\t\t\tlog.Print(\"unable to install compressor: \", err)\n\t\t\t\t\thttpWriter.WriteHeader(http.StatusInternalServerError)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tpathProcessor, routerProcessesPath := c.router.(PathProcessor)\n\tif !routerProcessesPath {\n\t\tpathProcessor = defaultPathProcessor{}\n\t}\n\tpathParams := pathProcessor.ExtractParameters(route, webService, httpRequest.URL.Path)\n\twrappedRequest, wrappedResponse := route.wrapRequestResponse(writer, httpRequest, pathParams)\n\t// pass through filters (if any)\n\tif size := len(c.containerFilters) + len(webService.filters) + len(route.Filters); size > 0 {\n\t\t// compose filter chain\n\t\tallFilters := make([]FilterFunction, 0, size)\n\t\tallFilters = append(allFilters, c.containerFilters...)\n\t\tallFilters = append(allFilters, webService.filters...)\n\t\tallFilters = append(allFilters, route.Filters...)\n\t\tchain := FilterChain{\n\t\t\tFilters:       allFilters,\n\t\t\tTarget:        route.Function,\n\t\t\tParameterDocs: route.ParameterDocs,\n\t\t\tOperation:     route.Operation,\n\t\t}\n\t\tchain.ProcessFilter(wrappedRequest, wrappedResponse)\n\t} else {\n\t\t// no filters, handle request by route\n\t\troute.Function(wrappedRequest, wrappedResponse)\n\t}\n}\n\n// fixedPrefixPath returns the fixed part of the partspec ; it may include template vars {}\nfunc fixedPrefixPath(pathspec string) string {\n\tvarBegin := strings.Index(pathspec, \"{\")\n\tif -1 == varBegin {\n\t\treturn pathspec\n\t}\n\treturn pathspec[:varBegin]\n}\n\n// ServeHTTP implements net/http.Handler therefore a Container can be a Handler in a http.Server\nfunc (c *Container) ServeHTTP(httpWriter http.ResponseWriter, httpRequest *http.Request) {\n\t// Skip, if content encoding is disabled\n\tif !c.contentEncodingEnabled {\n\t\tc.ServeMux.ServeHTTP(httpWriter, httpRequest)\n\t\treturn\n\t}\n\t// content encoding is enabled\n\n\t// Skip, if httpWriter is already an CompressingResponseWriter\n\tif _, ok := httpWriter.(*CompressingResponseWriter); ok {\n\t\tc.ServeMux.ServeHTTP(httpWriter, httpRequest)\n\t\treturn\n\t}\n\n\twriter := httpWriter\n\t// CompressingResponseWriter should be closed after all operations are done\n\tdefer func() {\n\t\tif compressWriter, ok := writer.(*CompressingResponseWriter); ok {\n\t\t\tcompressWriter.Close()\n\t\t}\n\t}()\n\n\tdoCompress, encoding := wantsCompressedResponse(httpRequest, httpWriter)\n\tif doCompress {\n\t\tvar err error\n\t\twriter, err = NewCompressingResponseWriter(httpWriter, encoding)\n\t\tif err != nil {\n\t\t\tlog.Print(\"unable to install compressor: \", err)\n\t\t\thttpWriter.WriteHeader(http.StatusInternalServerError)\n\t\t\treturn\n\t\t}\n\t}\n\n\tc.ServeMux.ServeHTTP(writer, httpRequest)\n}\n\n// Handle registers the handler for the given pattern. If a handler already exists for pattern, Handle panics.\nfunc (c *Container) Handle(pattern string, handler http.Handler) {\n\tc.ServeMux.Handle(pattern, http.HandlerFunc(func(httpWriter http.ResponseWriter, httpRequest *http.Request) {\n\t\t// Skip, if httpWriter is already an CompressingResponseWriter\n\t\tif _, ok := httpWriter.(*CompressingResponseWriter); ok {\n\t\t\thandler.ServeHTTP(httpWriter, httpRequest)\n\t\t\treturn\n\t\t}\n\n\t\twriter := httpWriter\n\n\t\t// CompressingResponseWriter should be closed after all operations are done\n\t\tdefer func() {\n\t\t\tif compressWriter, ok := writer.(*CompressingResponseWriter); ok {\n\t\t\t\tcompressWriter.Close()\n\t\t\t}\n\t\t}()\n\n\t\tif c.contentEncodingEnabled {\n\t\t\tdoCompress, encoding := wantsCompressedResponse(httpRequest, httpWriter)\n\t\t\tif doCompress {\n\t\t\t\tvar err error\n\t\t\t\twriter, err = NewCompressingResponseWriter(httpWriter, encoding)\n\t\t\t\tif err != nil {\n\t\t\t\t\tlog.Print(\"unable to install compressor: \", err)\n\t\t\t\t\thttpWriter.WriteHeader(http.StatusInternalServerError)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\thandler.ServeHTTP(writer, httpRequest)\n\t}))\n}\n\n// HandleWithFilter registers the handler for the given pattern.\n// Container's filter chain is applied for handler.\n// If a handler already exists for pattern, HandleWithFilter panics.\nfunc (c *Container) HandleWithFilter(pattern string, handler http.Handler) {\n\tf := func(httpResponse http.ResponseWriter, httpRequest *http.Request) {\n\t\tif len(c.containerFilters) == 0 {\n\t\t\thandler.ServeHTTP(httpResponse, httpRequest)\n\t\t\treturn\n\t\t}\n\n\t\tchain := FilterChain{Filters: c.containerFilters, Target: func(req *Request, resp *Response) {\n\t\t\thandler.ServeHTTP(resp, req.Request)\n\t\t}}\n\t\tchain.ProcessFilter(NewRequest(httpRequest), NewResponse(httpResponse))\n\t}\n\n\tc.Handle(pattern, http.HandlerFunc(f))\n}\n\n// Filter appends a container FilterFunction. These are called before dispatching\n// a http.Request to a WebService from the container\nfunc (c *Container) Filter(filter FilterFunction) {\n\tc.containerFilters = append(c.containerFilters, filter)\n}\n\n// RegisteredWebServices returns the collections of added WebServices\nfunc (c *Container) RegisteredWebServices() []*WebService {\n\tc.webServicesLock.RLock()\n\tdefer c.webServicesLock.RUnlock()\n\tresult := make([]*WebService, len(c.webServices))\n\tfor ix := range c.webServices {\n\t\tresult[ix] = c.webServices[ix]\n\t}\n\treturn result\n}\n\n// computeAllowedMethods returns a list of HTTP methods that are valid for a Request\nfunc (c *Container) computeAllowedMethods(req *Request) []string {\n\t// Go through all RegisteredWebServices() and all its Routes to collect the options\n\tmethods := []string{}\n\trequestPath := req.Request.URL.Path\n\tfor _, ws := range c.RegisteredWebServices() {\n\t\tmatches := ws.pathExpr.Matcher.FindStringSubmatch(requestPath)\n\t\tif matches != nil {\n\t\t\tfinalMatch := matches[len(matches)-1]\n\t\t\tfor _, rt := range ws.Routes() {\n\t\t\t\tmatches := rt.pathExpr.Matcher.FindStringSubmatch(finalMatch)\n\t\t\t\tif matches != nil {\n\t\t\t\t\tlastMatch := matches[len(matches)-1]\n\t\t\t\t\tif lastMatch == \"\" || lastMatch == \"/\" { // do not include if value is neither empty nor ‘/’.\n\t\t\t\t\t\tmethods = append(methods, rt.Method)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// methods = append(methods, \"OPTIONS\")  not sure about this\n\treturn methods\n}\n\n// newBasicRequestResponse creates a pair of Request,Response from its http versions.\n// It is basic because no parameter or (produces) content-type information is given.\nfunc newBasicRequestResponse(httpWriter http.ResponseWriter, httpRequest *http.Request) (*Request, *Response) {\n\tresp := NewResponse(httpWriter)\n\tresp.requestAccept = httpRequest.Header.Get(HEADER_Accept)\n\treturn NewRequest(httpRequest), resp\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/cors_filter.go",
    "content": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\nimport (\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// CrossOriginResourceSharing is used to create a Container Filter that implements CORS.\n// Cross-origin resource sharing (CORS) is a mechanism that allows JavaScript on a web page\n// to make XMLHttpRequests to another domain, not the domain the JavaScript originated from.\n//\n// http://en.wikipedia.org/wiki/Cross-origin_resource_sharing\n// http://enable-cors.org/server.html\n// http://www.html5rocks.com/en/tutorials/cors/#toc-handling-a-not-so-simple-request\ntype CrossOriginResourceSharing struct {\n\tExposeHeaders []string // list of Header names\n\n\t// AllowedHeaders is alist of Header names. Checking is case-insensitive.\n\t// The list may contain the special wildcard string \".*\" ; all is allowed\n\tAllowedHeaders []string\n\n\t// AllowedDomains is a list of allowed values for Http Origin.\n\t// The list may contain the special wildcard string \".*\" ; all is allowed\n\t// If empty all are allowed.\n\tAllowedDomains []string\n\n\t// AllowedDomainFunc is optional and is a function that will do the check\n\t// when the origin is not part of the AllowedDomains and it does not contain the wildcard \".*\".\n\tAllowedDomainFunc func(origin string) bool\n\n\t// AllowedMethods is either empty or has a list of http methods names. Checking is case-insensitive.\n\tAllowedMethods []string\n\tMaxAge         int // number of seconds before requiring new Options request\n\tCookiesAllowed bool\n\tContainer      *Container\n\n\tallowedOriginPatterns []*regexp.Regexp // internal field for origin regexp check.\n}\n\n// Filter is a filter function that implements the CORS flow as documented on http://enable-cors.org/server.html\n// and http://www.html5rocks.com/static/images/cors_server_flowchart.png\nfunc (c CrossOriginResourceSharing) Filter(req *Request, resp *Response, chain *FilterChain) {\n\torigin := req.Request.Header.Get(HEADER_Origin)\n\tif len(origin) == 0 {\n\t\tif trace {\n\t\t\ttraceLogger.Print(\"no Http header Origin set\")\n\t\t}\n\t\tchain.ProcessFilter(req, resp)\n\t\treturn\n\t}\n\tif !c.isOriginAllowed(origin) { // check whether this origin is allowed\n\t\tif trace {\n\t\t\ttraceLogger.Printf(\"HTTP Origin:%s is not part of %v, neither matches any part of %v\", origin, c.AllowedDomains, c.allowedOriginPatterns)\n\t\t}\n\t\tchain.ProcessFilter(req, resp)\n\t\treturn\n\t}\n\tif req.Request.Method != \"OPTIONS\" {\n\t\tc.doActualRequest(req, resp)\n\t\tchain.ProcessFilter(req, resp)\n\t\treturn\n\t}\n\tif acrm := req.Request.Header.Get(HEADER_AccessControlRequestMethod); acrm != \"\" {\n\t\tc.doPreflightRequest(req, resp)\n\t} else {\n\t\tc.doActualRequest(req, resp)\n\t\tchain.ProcessFilter(req, resp)\n\t\treturn\n\t}\n}\n\nfunc (c CrossOriginResourceSharing) doActualRequest(req *Request, resp *Response) {\n\tc.setOptionsHeaders(req, resp)\n\t// continue processing the response\n}\n\nfunc (c *CrossOriginResourceSharing) doPreflightRequest(req *Request, resp *Response) {\n\tif len(c.AllowedMethods) == 0 {\n\t\tif c.Container == nil {\n\t\t\tc.AllowedMethods = DefaultContainer.computeAllowedMethods(req)\n\t\t} else {\n\t\t\tc.AllowedMethods = c.Container.computeAllowedMethods(req)\n\t\t}\n\t}\n\n\tacrm := req.Request.Header.Get(HEADER_AccessControlRequestMethod)\n\tif !c.isValidAccessControlRequestMethod(acrm, c.AllowedMethods) {\n\t\tif trace {\n\t\t\ttraceLogger.Printf(\"Http header %s:%s is not in %v\",\n\t\t\t\tHEADER_AccessControlRequestMethod,\n\t\t\t\tacrm,\n\t\t\t\tc.AllowedMethods)\n\t\t}\n\t\treturn\n\t}\n\tacrhs := req.Request.Header.Get(HEADER_AccessControlRequestHeaders)\n\tif len(acrhs) > 0 {\n\t\tfor _, each := range strings.Split(acrhs, \",\") {\n\t\t\tif !c.isValidAccessControlRequestHeader(strings.Trim(each, \" \")) {\n\t\t\t\tif trace {\n\t\t\t\t\ttraceLogger.Printf(\"Http header %s:%s is not in %v\",\n\t\t\t\t\t\tHEADER_AccessControlRequestHeaders,\n\t\t\t\t\t\tacrhs,\n\t\t\t\t\t\tc.AllowedHeaders)\n\t\t\t\t}\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}\n\tresp.AddHeader(HEADER_AccessControlAllowMethods, strings.Join(c.AllowedMethods, \",\"))\n\tresp.AddHeader(HEADER_AccessControlAllowHeaders, acrhs)\n\tc.setOptionsHeaders(req, resp)\n\n\t// return http 200 response, no body\n}\n\nfunc (c CrossOriginResourceSharing) setOptionsHeaders(req *Request, resp *Response) {\n\tc.checkAndSetExposeHeaders(resp)\n\tc.setAllowOriginHeader(req, resp)\n\tc.checkAndSetAllowCredentials(resp)\n\tif c.MaxAge > 0 {\n\t\tresp.AddHeader(HEADER_AccessControlMaxAge, strconv.Itoa(c.MaxAge))\n\t}\n}\n\nfunc (c CrossOriginResourceSharing) isOriginAllowed(origin string) bool {\n\tif len(origin) == 0 {\n\t\treturn false\n\t}\n\tlowerOrigin := strings.ToLower(origin)\n\tif len(c.AllowedDomains) == 0 {\n\t\tif c.AllowedDomainFunc != nil {\n\t\t\treturn c.AllowedDomainFunc(lowerOrigin)\n\t\t}\n\t\treturn true\n\t}\n\n\t// exact match on each allowed domain\n\tfor _, domain := range c.AllowedDomains {\n\t\tif domain == \".*\" || strings.ToLower(domain) == lowerOrigin {\n\t\t\treturn true\n\t\t}\n\t}\n\tif c.AllowedDomainFunc != nil {\n\t\treturn c.AllowedDomainFunc(origin)\n\t}\n\treturn false\n}\n\nfunc (c CrossOriginResourceSharing) setAllowOriginHeader(req *Request, resp *Response) {\n\torigin := req.Request.Header.Get(HEADER_Origin)\n\tif c.isOriginAllowed(origin) {\n\t\tresp.AddHeader(HEADER_AccessControlAllowOrigin, origin)\n\t}\n}\n\nfunc (c CrossOriginResourceSharing) checkAndSetExposeHeaders(resp *Response) {\n\tif len(c.ExposeHeaders) > 0 {\n\t\tresp.AddHeader(HEADER_AccessControlExposeHeaders, strings.Join(c.ExposeHeaders, \",\"))\n\t}\n}\n\nfunc (c CrossOriginResourceSharing) checkAndSetAllowCredentials(resp *Response) {\n\tif c.CookiesAllowed {\n\t\tresp.AddHeader(HEADER_AccessControlAllowCredentials, \"true\")\n\t}\n}\n\nfunc (c CrossOriginResourceSharing) isValidAccessControlRequestMethod(method string, allowedMethods []string) bool {\n\tfor _, each := range allowedMethods {\n\t\tif each == method {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc (c CrossOriginResourceSharing) isValidAccessControlRequestHeader(header string) bool {\n\tfor _, each := range c.AllowedHeaders {\n\t\tif strings.ToLower(each) == strings.ToLower(header) {\n\t\t\treturn true\n\t\t}\n\t\tif each == \"*\" {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/coverage.sh",
    "content": "go test -coverprofile=coverage.out\ngo tool cover -html=coverage.out"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/curly.go",
    "content": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\nimport (\n\t\"net/http\"\n\t\"regexp\"\n\t\"sort\"\n\t\"strings\"\n)\n\n// CurlyRouter expects Routes with paths that contain zero or more parameters in curly brackets.\ntype CurlyRouter struct{}\n\n// SelectRoute is part of the Router interface and returns the best match\n// for the WebService and its Route for the given Request.\nfunc (c CurlyRouter) SelectRoute(\n\twebServices []*WebService,\n\thttpRequest *http.Request) (selectedService *WebService, selected *Route, err error) {\n\n\trequestTokens := tokenizePath(httpRequest.URL.Path)\n\n\tdetectedService := c.detectWebService(requestTokens, webServices)\n\tif detectedService == nil {\n\t\tif trace {\n\t\t\ttraceLogger.Printf(\"no WebService was found to match URL path:%s\\n\", httpRequest.URL.Path)\n\t\t}\n\t\treturn nil, nil, NewError(http.StatusNotFound, \"404: Page Not Found\")\n\t}\n\tcandidateRoutes := c.selectRoutes(detectedService, requestTokens)\n\tif len(candidateRoutes) == 0 {\n\t\tif trace {\n\t\t\ttraceLogger.Printf(\"no Route in WebService with path %s was found to match URL path:%s\\n\", detectedService.rootPath, httpRequest.URL.Path)\n\t\t}\n\t\treturn detectedService, nil, NewError(http.StatusNotFound, \"404: Page Not Found\")\n\t}\n\tselectedRoute, err := c.detectRoute(candidateRoutes, httpRequest)\n\tif selectedRoute == nil {\n\t\treturn detectedService, nil, err\n\t}\n\treturn detectedService, selectedRoute, nil\n}\n\n// selectRoutes return a collection of Route from a WebService that matches the path tokens from the request.\nfunc (c CurlyRouter) selectRoutes(ws *WebService, requestTokens []string) sortableCurlyRoutes {\n\tcandidates := make(sortableCurlyRoutes, 0, 8)\n\tfor _, each := range ws.routes {\n\t\tmatches, paramCount, staticCount := c.matchesRouteByPathTokens(each.pathParts, requestTokens, each.hasCustomVerb)\n\t\tif matches {\n\t\t\tcandidates.add(curlyRoute{each, paramCount, staticCount}) // TODO make sure Routes() return pointers?\n\t\t}\n\t}\n\tsort.Sort(candidates)\n\treturn candidates\n}\n\n// matchesRouteByPathTokens computes whether it matches, howmany parameters do match and what the number of static path elements are.\nfunc (c CurlyRouter) matchesRouteByPathTokens(routeTokens, requestTokens []string, routeHasCustomVerb bool) (matches bool, paramCount int, staticCount int) {\n\tif len(routeTokens) < len(requestTokens) {\n\t\t// proceed in matching only if last routeToken is wildcard\n\t\tcount := len(routeTokens)\n\t\tif count == 0 || !strings.HasSuffix(routeTokens[count-1], \"*}\") {\n\t\t\treturn false, 0, 0\n\t\t}\n\t\t// proceed\n\t}\n\tfor i, routeToken := range routeTokens {\n\t\tif i == len(requestTokens) {\n\t\t\t// reached end of request path\n\t\t\treturn false, 0, 0\n\t\t}\n\t\trequestToken := requestTokens[i]\n\t\tif routeHasCustomVerb && hasCustomVerb(routeToken){\n\t\t\tif !isMatchCustomVerb(routeToken, requestToken) {\n\t\t\t\treturn false, 0, 0\n\t\t\t}\n\t\t\tstaticCount++\n\t\t\trequestToken = removeCustomVerb(requestToken)\n\t\t\trouteToken = removeCustomVerb(routeToken)\n\t\t}\n\n\t\tif strings.HasPrefix(routeToken, \"{\") {\n\t\t\tparamCount++\n\t\t\tif colon := strings.Index(routeToken, \":\"); colon != -1 {\n\t\t\t\t// match by regex\n\t\t\t\tmatchesToken, matchesRemainder := c.regularMatchesPathToken(routeToken, colon, requestToken)\n\t\t\t\tif !matchesToken {\n\t\t\t\t\treturn false, 0, 0\n\t\t\t\t}\n\t\t\t\tif matchesRemainder {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t} else { // no { prefix\n\t\t\tif requestToken != routeToken {\n\t\t\t\treturn false, 0, 0\n\t\t\t}\n\t\t\tstaticCount++\n\t\t}\n\t}\n\treturn true, paramCount, staticCount\n}\n\n// regularMatchesPathToken tests whether the regular expression part of routeToken matches the requestToken or all remaining tokens\n// format routeToken is {someVar:someExpression}, e.g. {zipcode:[\\d][\\d][\\d][\\d][A-Z][A-Z]}\nfunc (c CurlyRouter) regularMatchesPathToken(routeToken string, colon int, requestToken string) (matchesToken bool, matchesRemainder bool) {\n\tregPart := routeToken[colon+1 : len(routeToken)-1]\n\tif regPart == \"*\" {\n\t\tif trace {\n\t\t\ttraceLogger.Printf(\"wildcard parameter detected in route token %s that matches %s\\n\", routeToken, requestToken)\n\t\t}\n\t\treturn true, true\n\t}\n\tmatched, err := regexp.MatchString(regPart, requestToken)\n\treturn (matched && err == nil), false\n}\n\nvar jsr311Router = RouterJSR311{}\n\n// detectRoute selectes from a list of Route the first match by inspecting both the Accept and Content-Type\n// headers of the Request. See also RouterJSR311 in jsr311.go\nfunc (c CurlyRouter) detectRoute(candidateRoutes sortableCurlyRoutes, httpRequest *http.Request) (*Route, error) {\n\t// tracing is done inside detectRoute\n\treturn jsr311Router.detectRoute(candidateRoutes.routes(), httpRequest)\n}\n\n// detectWebService returns the best matching webService given the list of path tokens.\n// see also computeWebserviceScore\nfunc (c CurlyRouter) detectWebService(requestTokens []string, webServices []*WebService) *WebService {\n\tvar best *WebService\n\tscore := -1\n\tfor _, each := range webServices {\n\t\tmatches, eachScore := c.computeWebserviceScore(requestTokens, each.pathExpr.tokens)\n\t\tif matches && (eachScore > score) {\n\t\t\tbest = each\n\t\t\tscore = eachScore\n\t\t}\n\t}\n\treturn best\n}\n\n// computeWebserviceScore returns whether tokens match and\n// the weighted score of the longest matching consecutive tokens from the beginning.\nfunc (c CurlyRouter) computeWebserviceScore(requestTokens []string, tokens []string) (bool, int) {\n\tif len(tokens) > len(requestTokens) {\n\t\treturn false, 0\n\t}\n\tscore := 0\n\tfor i := 0; i < len(tokens); i++ {\n\t\teach := requestTokens[i]\n\t\tother := tokens[i]\n\t\tif len(each) == 0 && len(other) == 0 {\n\t\t\tscore++\n\t\t\tcontinue\n\t\t}\n\t\tif len(other) > 0 && strings.HasPrefix(other, \"{\") {\n\t\t\t// no empty match\n\t\t\tif len(each) == 0 {\n\t\t\t\treturn false, score\n\t\t\t}\n\t\t\tscore += 1\n\t\t} else {\n\t\t\t// not a parameter\n\t\t\tif each != other {\n\t\t\t\treturn false, score\n\t\t\t}\n\t\t\tscore += (len(tokens) - i) * 10 //fuzzy\n\t\t}\n\t}\n\treturn true, score\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/curly_route.go",
    "content": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\n// curlyRoute exits for sorting Routes by the CurlyRouter based on number of parameters and number of static path elements.\ntype curlyRoute struct {\n\troute       Route\n\tparamCount  int\n\tstaticCount int\n}\n\n// sortableCurlyRoutes orders by most parameters and path elements first.\ntype sortableCurlyRoutes []curlyRoute\n\nfunc (s *sortableCurlyRoutes) add(route curlyRoute) {\n\t*s = append(*s, route)\n}\n\nfunc (s sortableCurlyRoutes) routes() (routes []Route) {\n\troutes = make([]Route, 0, len(s))\n\tfor _, each := range s {\n\t\troutes = append(routes, each.route) // TODO change return type\n\t}\n\treturn routes\n}\n\nfunc (s sortableCurlyRoutes) Len() int {\n\treturn len(s)\n}\nfunc (s sortableCurlyRoutes) Swap(i, j int) {\n\ts[i], s[j] = s[j], s[i]\n}\nfunc (s sortableCurlyRoutes) Less(i, j int) bool {\n\ta := s[j]\n\tb := s[i]\n\n\t// primary key\n\tif a.staticCount < b.staticCount {\n\t\treturn true\n\t}\n\tif a.staticCount > b.staticCount {\n\t\treturn false\n\t}\n\t// secundary key\n\tif a.paramCount < b.paramCount {\n\t\treturn true\n\t}\n\tif a.paramCount > b.paramCount {\n\t\treturn false\n\t}\n\treturn a.route.Path < b.route.Path\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/custom_verb.go",
    "content": "package restful\n\nimport (\n\t\"fmt\"\n\t\"regexp\"\n)\n\nvar (\n\tcustomVerbReg = regexp.MustCompile(\":([A-Za-z]+)$\")\n)\n\nfunc hasCustomVerb(routeToken string) bool {\n\treturn customVerbReg.MatchString(routeToken)\n}\n\nfunc isMatchCustomVerb(routeToken string, pathToken string) bool {\n\trs := customVerbReg.FindStringSubmatch(routeToken)\n\tif len(rs) < 2 {\n\t\treturn false\n\t}\n\n\tcustomVerb := rs[1]\n\tspecificVerbReg := regexp.MustCompile(fmt.Sprintf(\":%s$\", customVerb))\n\treturn specificVerbReg.MatchString(pathToken)\n}\n\nfunc removeCustomVerb(str string) string {\n\treturn customVerbReg.ReplaceAllString(str, \"\")\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/doc.go",
    "content": "/*\nPackage restful , a lean package for creating REST-style WebServices without magic.\n\nWebServices and Routes\n\nA WebService has a collection of Route objects that dispatch incoming Http Requests to a function calls.\nTypically, a WebService has a root path (e.g. /users) and defines common MIME types for its routes.\nWebServices must be added to a container (see below) in order to handler Http requests from a server.\n\nA Route is defined by a HTTP method, an URL path and (optionally) the MIME types it consumes (Content-Type) and produces (Accept).\nThis package has the logic to find the best matching Route and if found, call its Function.\n\n\tws := new(restful.WebService)\n\tws.\n\t\tPath(\"/users\").\n\t\tConsumes(restful.MIME_JSON, restful.MIME_XML).\n\t\tProduces(restful.MIME_JSON, restful.MIME_XML)\n\n\tws.Route(ws.GET(\"/{user-id}\").To(u.findUser))  // u is a UserResource\n\n\t...\n\n\t// GET http://localhost:8080/users/1\n\tfunc (u UserResource) findUser(request *restful.Request, response *restful.Response) {\n\t\tid := request.PathParameter(\"user-id\")\n\t\t...\n\t}\n\nThe (*Request, *Response) arguments provide functions for reading information from the request and writing information back to the response.\n\nSee the example https://github.com/emicklei/go-restful/blob/v3/examples/user-resource/restful-user-resource.go with a full implementation.\n\nRegular expression matching Routes\n\nA Route parameter can be specified using the format \"uri/{var[:regexp]}\" or the special version \"uri/{var:*}\" for matching the tail of the path.\nFor example, /persons/{name:[A-Z][A-Z]} can be used to restrict values for the parameter \"name\" to only contain capital alphabetic characters.\nRegular expressions must use the standard Go syntax as described in the regexp package. (https://code.google.com/p/re2/wiki/Syntax)\nThis feature requires the use of a CurlyRouter.\n\nContainers\n\nA Container holds a collection of WebServices, Filters and a http.ServeMux for multiplexing http requests.\nUsing the statements \"restful.Add(...) and restful.Filter(...)\" will register WebServices and Filters to the Default Container.\nThe Default container of go-restful uses the http.DefaultServeMux.\nYou can create your own Container and create a new http.Server for that particular container.\n\n\tcontainer := restful.NewContainer()\n\tserver := &http.Server{Addr: \":8081\", Handler: container}\n\nFilters\n\nA filter dynamically intercepts requests and responses to transform or use the information contained in the requests or responses.\nYou can use filters to perform generic logging, measurement, authentication, redirect, set response headers etc.\nIn the restful package there are three hooks into the request,response flow where filters can be added.\nEach filter must define a FilterFunction:\n\n\tfunc (req *restful.Request, resp *restful.Response, chain *restful.FilterChain)\n\nUse the following statement to pass the request,response pair to the next filter or RouteFunction\n\n\tchain.ProcessFilter(req, resp)\n\nContainer Filters\n\nThese are processed before any registered WebService.\n\n\t// install a (global) filter for the default container (processed before any webservice)\n\trestful.Filter(globalLogging)\n\nWebService Filters\n\nThese are processed before any Route of a WebService.\n\n\t// install a webservice filter (processed before any route)\n\tws.Filter(webserviceLogging).Filter(measureTime)\n\n\nRoute Filters\n\nThese are processed before calling the function associated with the Route.\n\n\t// install 2 chained route filters (processed before calling findUser)\n\tws.Route(ws.GET(\"/{user-id}\").Filter(routeLogging).Filter(NewCountFilter().routeCounter).To(findUser))\n\nSee the example https://github.com/emicklei/go-restful/blob/v3/examples/filters/restful-filters.go with full implementations.\n\nResponse Encoding\n\nTwo encodings are supported: gzip and deflate. To enable this for all responses:\n\n\trestful.DefaultContainer.EnableContentEncoding(true)\n\nIf a Http request includes the Accept-Encoding header then the response content will be compressed using the specified encoding.\nAlternatively, you can create a Filter that performs the encoding and install it per WebService or Route.\n\nSee the example https://github.com/emicklei/go-restful/blob/v3/examples/encoding/restful-encoding-filter.go\n\nOPTIONS support\n\nBy installing a pre-defined container filter, your Webservice(s) can respond to the OPTIONS Http request.\n\n\tFilter(OPTIONSFilter())\n\nCORS\n\nBy installing the filter of a CrossOriginResourceSharing (CORS), your WebService(s) can handle CORS requests.\n\n\tcors := CrossOriginResourceSharing{ExposeHeaders: []string{\"X-My-Header\"}, CookiesAllowed: false, Container: DefaultContainer}\n\tFilter(cors.Filter)\n\nError Handling\n\nUnexpected things happen. If a request cannot be processed because of a failure, your service needs to tell via the response what happened and why.\nFor this reason HTTP status codes exist and it is important to use the correct code in every exceptional situation.\n\n\t400: Bad Request\n\nIf path or query parameters are not valid (content or type) then use http.StatusBadRequest.\n\n\t404: Not Found\n\nDespite a valid URI, the resource requested may not be available\n\n\t500: Internal Server Error\n\nIf the application logic could not process the request (or write the response) then use http.StatusInternalServerError.\n\n\t405: Method Not Allowed\n\nThe request has a valid URL but the method (GET,PUT,POST,...) is not allowed.\n\n\t406: Not Acceptable\n\nThe request does not have or has an unknown Accept Header set for this operation.\n\n\t415: Unsupported Media Type\n\nThe request does not have or has an unknown Content-Type Header set for this operation.\n\nServiceError\n\nIn addition to setting the correct (error) Http status code, you can choose to write a ServiceError message on the response.\n\nPerformance options\n\nThis package has several options that affect the performance of your service. It is important to understand them and how you can change it.\n\n\trestful.DefaultContainer.DoNotRecover(false)\n\nDoNotRecover controls whether panics will be caught to return HTTP 500.\nIf set to false, the container will recover from panics.\nDefault value is true\n\n\trestful.SetCompressorProvider(NewBoundedCachedCompressors(20, 20))\n\nIf content encoding is enabled then the default strategy for getting new gzip/zlib writers and readers is to use a sync.Pool.\nBecause writers are expensive structures, performance is even more improved when using a preloaded cache. You can also inject your own implementation.\n\nTrouble shooting\n\nThis package has the means to produce detail logging of the complete Http request matching process and filter invocation.\nEnabling this feature requires you to set an implementation of restful.StdLogger (e.g. log.Logger) instance such as:\n\n\trestful.TraceLogger(log.New(os.Stdout, \"[restful] \", log.LstdFlags|log.Lshortfile))\n\nLogging\n\nThe restful.SetLogger() method allows you to override the logger used by the package. By default restful\nuses the standard library `log` package and logs to stdout. Different logging packages are supported as\nlong as they conform to `StdLogger` interface defined in the `log` sub-package, writing an adapter for your\npreferred package is simple.\n\nResources\n\n[project]: https://github.com/emicklei/go-restful\n\n[examples]: https://github.com/emicklei/go-restful/blob/master/examples\n\n[design]:  http://ernestmicklei.com/2012/11/11/go-restful-api-design/\n\n[showcases]: https://github.com/emicklei/mora, https://github.com/emicklei/landskape\n\n(c) 2012-2015, http://ernestmicklei.com. MIT License\n*/\npackage restful\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/entity_accessors.go",
    "content": "package restful\n\n// Copyright 2015 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\nimport (\n\t\"encoding/xml\"\n\t\"strings\"\n\t\"sync\"\n)\n\n// EntityReaderWriter can read and write values using an encoding such as JSON,XML.\ntype EntityReaderWriter interface {\n\t// Read a serialized version of the value from the request.\n\t// The Request may have a decompressing reader. Depends on Content-Encoding.\n\tRead(req *Request, v interface{}) error\n\n\t// Write a serialized version of the value on the response.\n\t// The Response may have a compressing writer. Depends on Accept-Encoding.\n\t// status should be a valid Http Status code\n\tWrite(resp *Response, status int, v interface{}) error\n}\n\n// entityAccessRegistry is a singleton\nvar entityAccessRegistry = &entityReaderWriters{\n\tprotection: new(sync.RWMutex),\n\taccessors:  map[string]EntityReaderWriter{},\n}\n\n// entityReaderWriters associates MIME to an EntityReaderWriter\ntype entityReaderWriters struct {\n\tprotection *sync.RWMutex\n\taccessors  map[string]EntityReaderWriter\n}\n\nfunc init() {\n\tRegisterEntityAccessor(MIME_JSON, NewEntityAccessorJSON(MIME_JSON))\n\tRegisterEntityAccessor(MIME_XML, NewEntityAccessorXML(MIME_XML))\n}\n\n// RegisterEntityAccessor add/overrides the ReaderWriter for encoding content with this MIME type.\nfunc RegisterEntityAccessor(mime string, erw EntityReaderWriter) {\n\tentityAccessRegistry.protection.Lock()\n\tdefer entityAccessRegistry.protection.Unlock()\n\tentityAccessRegistry.accessors[mime] = erw\n}\n\n// NewEntityAccessorJSON returns a new EntityReaderWriter for accessing JSON content.\n// This package is already initialized with such an accessor using the MIME_JSON contentType.\nfunc NewEntityAccessorJSON(contentType string) EntityReaderWriter {\n\treturn entityJSONAccess{ContentType: contentType}\n}\n\n// NewEntityAccessorXML returns a new EntityReaderWriter for accessing XML content.\n// This package is already initialized with such an accessor using the MIME_XML contentType.\nfunc NewEntityAccessorXML(contentType string) EntityReaderWriter {\n\treturn entityXMLAccess{ContentType: contentType}\n}\n\n// accessorAt returns the registered ReaderWriter for this MIME type.\nfunc (r *entityReaderWriters) accessorAt(mime string) (EntityReaderWriter, bool) {\n\tr.protection.RLock()\n\tdefer r.protection.RUnlock()\n\ter, ok := r.accessors[mime]\n\tif !ok {\n\t\t// retry with reverse lookup\n\t\t// more expensive but we are in an exceptional situation anyway\n\t\tfor k, v := range r.accessors {\n\t\t\tif strings.Contains(mime, k) {\n\t\t\t\treturn v, true\n\t\t\t}\n\t\t}\n\t}\n\treturn er, ok\n}\n\n// entityXMLAccess is a EntityReaderWriter for XML encoding\ntype entityXMLAccess struct {\n\t// This is used for setting the Content-Type header when writing\n\tContentType string\n}\n\n// Read unmarshalls the value from XML\nfunc (e entityXMLAccess) Read(req *Request, v interface{}) error {\n\treturn xml.NewDecoder(req.Request.Body).Decode(v)\n}\n\n// Write marshalls the value to JSON and set the Content-Type Header.\nfunc (e entityXMLAccess) Write(resp *Response, status int, v interface{}) error {\n\treturn writeXML(resp, status, e.ContentType, v)\n}\n\n// writeXML marshalls the value to JSON and set the Content-Type Header.\nfunc writeXML(resp *Response, status int, contentType string, v interface{}) error {\n\tif v == nil {\n\t\tresp.WriteHeader(status)\n\t\t// do not write a nil representation\n\t\treturn nil\n\t}\n\tif resp.prettyPrint {\n\t\t// pretty output must be created and written explicitly\n\t\toutput, err := xml.MarshalIndent(v, \" \", \" \")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tresp.Header().Set(HEADER_ContentType, contentType)\n\t\tresp.WriteHeader(status)\n\t\t_, err = resp.Write([]byte(xml.Header))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = resp.Write(output)\n\t\treturn err\n\t}\n\t// not-so-pretty\n\tresp.Header().Set(HEADER_ContentType, contentType)\n\tresp.WriteHeader(status)\n\treturn xml.NewEncoder(resp).Encode(v)\n}\n\n// entityJSONAccess is a EntityReaderWriter for JSON encoding\ntype entityJSONAccess struct {\n\t// This is used for setting the Content-Type header when writing\n\tContentType string\n}\n\n// Read unmarshalls the value from JSON\nfunc (e entityJSONAccess) Read(req *Request, v interface{}) error {\n\tdecoder := NewDecoder(req.Request.Body)\n\tdecoder.UseNumber()\n\treturn decoder.Decode(v)\n}\n\n// Write marshalls the value to JSON and set the Content-Type Header.\nfunc (e entityJSONAccess) Write(resp *Response, status int, v interface{}) error {\n\treturn writeJSON(resp, status, e.ContentType, v)\n}\n\n// write marshalls the value to JSON and set the Content-Type Header.\nfunc writeJSON(resp *Response, status int, contentType string, v interface{}) error {\n\tif v == nil {\n\t\tresp.WriteHeader(status)\n\t\t// do not write a nil representation\n\t\treturn nil\n\t}\n\tif resp.prettyPrint {\n\t\t// pretty output must be created and written explicitly\n\t\toutput, err := MarshalIndent(v, \"\", \" \")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tresp.Header().Set(HEADER_ContentType, contentType)\n\t\tresp.WriteHeader(status)\n\t\t_, err = resp.Write(output)\n\t\treturn err\n\t}\n\t// not-so-pretty\n\tresp.Header().Set(HEADER_ContentType, contentType)\n\tresp.WriteHeader(status)\n\treturn NewEncoder(resp).Encode(v)\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/extensions.go",
    "content": "package restful\n\n// Copyright 2021 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\n// ExtensionProperties provides storage of vendor extensions for entities\ntype ExtensionProperties struct {\n\t// Extensions vendor extensions used to describe extra functionality\n\t// (https://swagger.io/docs/specification/2-0/swagger-extensions/)\n\tExtensions map[string]interface{}\n}\n\n// AddExtension adds or updates a key=value pair to the extension map.\nfunc (ep *ExtensionProperties) AddExtension(key string, value interface{}) {\n\tif ep.Extensions == nil {\n\t\tep.Extensions = map[string]interface{}{key: value}\n\t} else {\n\t\tep.Extensions[key] = value\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/filter.go",
    "content": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\n// FilterChain is a request scoped object to process one or more filters before calling the target RouteFunction.\ntype FilterChain struct {\n\tFilters       []FilterFunction // ordered list of FilterFunction\n\tIndex         int              // index into filters that is currently in progress\n\tTarget        RouteFunction    // function to call after passing all filters\n\tParameterDocs []*Parameter     // the parameter docs for the route\n\tOperation     string           // the name of the operation\n}\n\n// ProcessFilter passes the request,response pair through the next of Filters.\n// Each filter can decide to proceed to the next Filter or handle the Response itself.\nfunc (f *FilterChain) ProcessFilter(request *Request, response *Response) {\n\tif f.Index < len(f.Filters) {\n\t\tf.Index++\n\t\tf.Filters[f.Index-1](request, response, f)\n\t} else {\n\t\tf.Target(request, response)\n\t}\n}\n\n// FilterFunction definitions must call ProcessFilter on the FilterChain to pass on the control and eventually call the RouteFunction\ntype FilterFunction func(*Request, *Response, *FilterChain)\n\n// NoBrowserCacheFilter is a filter function to set HTTP headers that disable browser caching\n// See examples/restful-no-cache-filter.go for usage\nfunc NoBrowserCacheFilter(req *Request, resp *Response, chain *FilterChain) {\n\tresp.Header().Set(\"Cache-Control\", \"no-cache, no-store, must-revalidate\") // HTTP 1.1.\n\tresp.Header().Set(\"Pragma\", \"no-cache\")                                   // HTTP 1.0.\n\tresp.Header().Set(\"Expires\", \"0\")                                         // Proxies.\n\tchain.ProcessFilter(req, resp)\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/filter_adapter.go",
    "content": "package restful\n\nimport (\n\t\"net/http\"\n)\n\n// HttpMiddlewareHandler is a function that takes a http.Handler and returns a http.Handler\ntype HttpMiddlewareHandler func(http.Handler) http.Handler\n\n// HttpMiddlewareHandlerToFilter converts a HttpMiddlewareHandler to a FilterFunction.\nfunc HttpMiddlewareHandlerToFilter(middleware HttpMiddlewareHandler) FilterFunction {\n\treturn func(req *Request, resp *Response, chain *FilterChain) {\n\t\tnext := http.HandlerFunc(func(rw http.ResponseWriter, r *http.Request) {\n\t\t\treq.Request = r\n\t\t\tresp.ResponseWriter = rw\n\t\t\tchain.ProcessFilter(req, resp)\n\t\t})\n\n\t\tmiddleware(next).ServeHTTP(resp.ResponseWriter, req.Request)\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/json.go",
    "content": "// +build !jsoniter\n\npackage restful\n\nimport \"encoding/json\"\n\nvar (\n\tMarshalIndent = json.MarshalIndent\n\tNewDecoder    = json.NewDecoder\n\tNewEncoder    = json.NewEncoder\n)\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/jsoniter.go",
    "content": "// +build jsoniter\n\npackage restful\n\nimport \"github.com/json-iterator/go\"\n\nvar (\n\tjson          = jsoniter.ConfigCompatibleWithStandardLibrary\n\tMarshalIndent = json.MarshalIndent\n\tNewDecoder    = json.NewDecoder\n\tNewEncoder    = json.NewEncoder\n)\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/jsr311.go",
    "content": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"sort\"\n\t\"strings\"\n)\n\n// RouterJSR311 implements the flow for matching Requests to Routes (and consequently Resource Functions)\n// as specified by the JSR311 http://jsr311.java.net/nonav/releases/1.1/spec/spec.html.\n// RouterJSR311 implements the Router interface.\n// Concept of locators is not implemented.\ntype RouterJSR311 struct{}\n\n// SelectRoute is part of the Router interface and returns the best match\n// for the WebService and its Route for the given Request.\nfunc (r RouterJSR311) SelectRoute(\n\twebServices []*WebService,\n\thttpRequest *http.Request) (selectedService *WebService, selectedRoute *Route, err error) {\n\n\t// Identify the root resource class (WebService)\n\tdispatcher, finalMatch, err := r.detectDispatcher(httpRequest.URL.Path, webServices)\n\tif err != nil {\n\t\treturn nil, nil, NewError(http.StatusNotFound, \"\")\n\t}\n\t// Obtain the set of candidate methods (Routes)\n\troutes := r.selectRoutes(dispatcher, finalMatch)\n\tif len(routes) == 0 {\n\t\treturn dispatcher, nil, NewError(http.StatusNotFound, \"404: Page Not Found\")\n\t}\n\n\t// Identify the method (Route) that will handle the request\n\troute, ok := r.detectRoute(routes, httpRequest)\n\treturn dispatcher, route, ok\n}\n\n// ExtractParameters is used to obtain the path parameters from the route using the same matching\n// engine as the JSR 311 router.\nfunc (r RouterJSR311) ExtractParameters(route *Route, webService *WebService, urlPath string) map[string]string {\n\twebServiceExpr := webService.pathExpr\n\twebServiceMatches := webServiceExpr.Matcher.FindStringSubmatch(urlPath)\n\tpathParameters := r.extractParams(webServiceExpr, webServiceMatches)\n\trouteExpr := route.pathExpr\n\trouteMatches := routeExpr.Matcher.FindStringSubmatch(webServiceMatches[len(webServiceMatches)-1])\n\trouteParams := r.extractParams(routeExpr, routeMatches)\n\tfor key, value := range routeParams {\n\t\tpathParameters[key] = value\n\t}\n\treturn pathParameters\n}\n\nfunc (RouterJSR311) extractParams(pathExpr *pathExpression, matches []string) map[string]string {\n\tparams := map[string]string{}\n\tfor i := 1; i < len(matches); i++ {\n\t\tif len(pathExpr.VarNames) >= i {\n\t\t\tparams[pathExpr.VarNames[i-1]] = matches[i]\n\t\t}\n\t}\n\treturn params\n}\n\n// http://jsr311.java.net/nonav/releases/1.1/spec/spec3.html#x3-360003.7.2\nfunc (r RouterJSR311) detectRoute(routes []Route, httpRequest *http.Request) (*Route, error) {\n\tcandidates := make([]*Route, 0, 8)\n\tfor i, each := range routes {\n\t\tok := true\n\t\tfor _, fn := range each.If {\n\t\t\tif !fn(httpRequest) {\n\t\t\t\tok = false\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif ok {\n\t\t\tcandidates = append(candidates, &routes[i])\n\t\t}\n\t}\n\tif len(candidates) == 0 {\n\t\tif trace {\n\t\t\ttraceLogger.Printf(\"no Route found (from %d) that passes conditional checks\", len(routes))\n\t\t}\n\t\treturn nil, NewError(http.StatusNotFound, \"404: Not Found\")\n\t}\n\n\t// http method\n\tprevious := candidates\n\tcandidates = candidates[:0]\n\tfor _, each := range previous {\n\t\tif httpRequest.Method == each.Method {\n\t\t\tcandidates = append(candidates, each)\n\t\t}\n\t}\n\tif len(candidates) == 0 {\n\t\tif trace {\n\t\t\ttraceLogger.Printf(\"no Route found (in %d routes) that matches HTTP method %s\\n\", len(previous), httpRequest.Method)\n\t\t}\n\t\tallowed := []string{}\n\tallowedLoop:\n\t\tfor _, candidate := range previous {\n\t\t\tfor _, method := range allowed {\n\t\t\t\tif method == candidate.Method {\n\t\t\t\t\tcontinue allowedLoop\n\t\t\t\t}\n\t\t\t}\n\t\t\tallowed = append(allowed, candidate.Method)\n\t\t}\n\t\theader := http.Header{\"Allow\": []string{strings.Join(allowed, \", \")}}\n\t\treturn nil, NewErrorWithHeader(http.StatusMethodNotAllowed, \"405: Method Not Allowed\", header)\n\t}\n\n\t// content-type\n\tcontentType := httpRequest.Header.Get(HEADER_ContentType)\n\tprevious = candidates\n\tcandidates = candidates[:0]\n\tfor _, each := range previous {\n\t\tif each.matchesContentType(contentType) {\n\t\t\tcandidates = append(candidates, each)\n\t\t}\n\t}\n\tif len(candidates) == 0 {\n\t\tif trace {\n\t\t\ttraceLogger.Printf(\"no Route found (from %d) that matches HTTP Content-Type: %s\\n\", len(previous), contentType)\n\t\t}\n\t\tif httpRequest.ContentLength > 0 {\n\t\t\treturn nil, NewError(http.StatusUnsupportedMediaType, \"415: Unsupported Media Type\")\n\t\t}\n\t}\n\n\t// accept\n\tprevious = candidates\n\tcandidates = candidates[:0]\n\taccept := httpRequest.Header.Get(HEADER_Accept)\n\tif len(accept) == 0 {\n\t\taccept = \"*/*\"\n\t}\n\tfor _, each := range previous {\n\t\tif each.matchesAccept(accept) {\n\t\t\tcandidates = append(candidates, each)\n\t\t}\n\t}\n\tif len(candidates) == 0 {\n\t\tif trace {\n\t\t\ttraceLogger.Printf(\"no Route found (from %d) that matches HTTP Accept: %s\\n\", len(previous), accept)\n\t\t}\n\t\tavailable := []string{}\n\t\tfor _, candidate := range previous {\n\t\t\tavailable = append(available, candidate.Produces...)\n\t\t}\n\t\t// if POST,PUT,PATCH without body\n\t\tmethod, length := httpRequest.Method, httpRequest.Header.Get(\"Content-Length\")\n\t\tif (method == http.MethodPost ||\n\t\t\tmethod == http.MethodPut ||\n\t\t\tmethod == http.MethodPatch) && length == \"\" {\n\t\t\treturn nil, NewError(\n\t\t\t\thttp.StatusUnsupportedMediaType,\n\t\t\t\tfmt.Sprintf(\"415: Unsupported Media Type\\n\\nAvailable representations: %s\", strings.Join(available, \", \")),\n\t\t\t)\n\t\t}\n\t\treturn nil, NewError(\n\t\t\thttp.StatusNotAcceptable,\n\t\t\tfmt.Sprintf(\"406: Not Acceptable\\n\\nAvailable representations: %s\", strings.Join(available, \", \")),\n\t\t)\n\t}\n\t// return r.bestMatchByMedia(outputMediaOk, contentType, accept), nil\n\treturn candidates[0], nil\n}\n\n// http://jsr311.java.net/nonav/releases/1.1/spec/spec3.html#x3-360003.7.2\n// n/m > n/* > */*\nfunc (r RouterJSR311) bestMatchByMedia(routes []Route, contentType string, accept string) *Route {\n\t// TODO\n\treturn &routes[0]\n}\n\n// http://jsr311.java.net/nonav/releases/1.1/spec/spec3.html#x3-360003.7.2  (step 2)\nfunc (r RouterJSR311) selectRoutes(dispatcher *WebService, pathRemainder string) []Route {\n\tfiltered := &sortableRouteCandidates{}\n\tfor _, each := range dispatcher.Routes() {\n\t\tpathExpr := each.pathExpr\n\t\tmatches := pathExpr.Matcher.FindStringSubmatch(pathRemainder)\n\t\tif matches != nil {\n\t\t\tlastMatch := matches[len(matches)-1]\n\t\t\tif len(lastMatch) == 0 || lastMatch == \"/\" { // do not include if value is neither empty nor ‘/’.\n\t\t\t\tfiltered.candidates = append(filtered.candidates,\n\t\t\t\t\trouteCandidate{each, len(matches) - 1, pathExpr.LiteralCount, pathExpr.VarCount})\n\t\t\t}\n\t\t}\n\t}\n\tif len(filtered.candidates) == 0 {\n\t\tif trace {\n\t\t\ttraceLogger.Printf(\"WebService on path %s has no routes that match URL path remainder:%s\\n\", dispatcher.rootPath, pathRemainder)\n\t\t}\n\t\treturn []Route{}\n\t}\n\tsort.Sort(sort.Reverse(filtered))\n\n\t// select other routes from candidates whoes expression matches rmatch\n\tmatchingRoutes := []Route{filtered.candidates[0].route}\n\tfor c := 1; c < len(filtered.candidates); c++ {\n\t\teach := filtered.candidates[c]\n\t\tif each.route.pathExpr.Matcher.MatchString(pathRemainder) {\n\t\t\tmatchingRoutes = append(matchingRoutes, each.route)\n\t\t}\n\t}\n\treturn matchingRoutes\n}\n\n// http://jsr311.java.net/nonav/releases/1.1/spec/spec3.html#x3-360003.7.2 (step 1)\nfunc (r RouterJSR311) detectDispatcher(requestPath string, dispatchers []*WebService) (*WebService, string, error) {\n\tfiltered := &sortableDispatcherCandidates{}\n\tfor _, each := range dispatchers {\n\t\tmatches := each.pathExpr.Matcher.FindStringSubmatch(requestPath)\n\t\tif matches != nil {\n\t\t\tfiltered.candidates = append(filtered.candidates,\n\t\t\t\tdispatcherCandidate{each, matches[len(matches)-1], len(matches), each.pathExpr.LiteralCount, each.pathExpr.VarCount})\n\t\t}\n\t}\n\tif len(filtered.candidates) == 0 {\n\t\tif trace {\n\t\t\ttraceLogger.Printf(\"no WebService was found to match URL path:%s\\n\", requestPath)\n\t\t}\n\t\treturn nil, \"\", errors.New(\"not found\")\n\t}\n\tsort.Sort(sort.Reverse(filtered))\n\treturn filtered.candidates[0].dispatcher, filtered.candidates[0].finalMatch, nil\n}\n\n// Types and functions to support the sorting of Routes\n\ntype routeCandidate struct {\n\troute           Route\n\tmatchesCount    int // the number of capturing groups\n\tliteralCount    int // the number of literal characters (means those not resulting from template variable substitution)\n\tnonDefaultCount int // the number of capturing groups with non-default regular expressions (i.e. not ‘([^  /]+?)’)\n}\n\nfunc (r routeCandidate) expressionToMatch() string {\n\treturn r.route.pathExpr.Source\n}\n\nfunc (r routeCandidate) String() string {\n\treturn fmt.Sprintf(\"(m=%d,l=%d,n=%d)\", r.matchesCount, r.literalCount, r.nonDefaultCount)\n}\n\ntype sortableRouteCandidates struct {\n\tcandidates []routeCandidate\n}\n\nfunc (rcs *sortableRouteCandidates) Len() int {\n\treturn len(rcs.candidates)\n}\nfunc (rcs *sortableRouteCandidates) Swap(i, j int) {\n\trcs.candidates[i], rcs.candidates[j] = rcs.candidates[j], rcs.candidates[i]\n}\nfunc (rcs *sortableRouteCandidates) Less(i, j int) bool {\n\tci := rcs.candidates[i]\n\tcj := rcs.candidates[j]\n\t// primary key\n\tif ci.literalCount < cj.literalCount {\n\t\treturn true\n\t}\n\tif ci.literalCount > cj.literalCount {\n\t\treturn false\n\t}\n\t// secundary key\n\tif ci.matchesCount < cj.matchesCount {\n\t\treturn true\n\t}\n\tif ci.matchesCount > cj.matchesCount {\n\t\treturn false\n\t}\n\t// tertiary key\n\tif ci.nonDefaultCount < cj.nonDefaultCount {\n\t\treturn true\n\t}\n\tif ci.nonDefaultCount > cj.nonDefaultCount {\n\t\treturn false\n\t}\n\t// quaternary key (\"source\" is interpreted as Path)\n\treturn ci.route.Path < cj.route.Path\n}\n\n// Types and functions to support the sorting of Dispatchers\n\ntype dispatcherCandidate struct {\n\tdispatcher      *WebService\n\tfinalMatch      string\n\tmatchesCount    int // the number of capturing groups\n\tliteralCount    int // the number of literal characters (means those not resulting from template variable substitution)\n\tnonDefaultCount int // the number of capturing groups with non-default regular expressions (i.e. not ‘([^  /]+?)’)\n}\ntype sortableDispatcherCandidates struct {\n\tcandidates []dispatcherCandidate\n}\n\nfunc (dc *sortableDispatcherCandidates) Len() int {\n\treturn len(dc.candidates)\n}\nfunc (dc *sortableDispatcherCandidates) Swap(i, j int) {\n\tdc.candidates[i], dc.candidates[j] = dc.candidates[j], dc.candidates[i]\n}\nfunc (dc *sortableDispatcherCandidates) Less(i, j int) bool {\n\tci := dc.candidates[i]\n\tcj := dc.candidates[j]\n\t// primary key\n\tif ci.matchesCount < cj.matchesCount {\n\t\treturn true\n\t}\n\tif ci.matchesCount > cj.matchesCount {\n\t\treturn false\n\t}\n\t// secundary key\n\tif ci.literalCount < cj.literalCount {\n\t\treturn true\n\t}\n\tif ci.literalCount > cj.literalCount {\n\t\treturn false\n\t}\n\t// tertiary key\n\treturn ci.nonDefaultCount < cj.nonDefaultCount\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/log/log.go",
    "content": "package log\n\nimport (\n\tstdlog \"log\"\n\t\"os\"\n)\n\n// StdLogger corresponds to a minimal subset of the interface satisfied by stdlib log.Logger\ntype StdLogger interface {\n\tPrint(v ...interface{})\n\tPrintf(format string, v ...interface{})\n}\n\nvar Logger StdLogger\n\nfunc init() {\n\t// default Logger\n\tSetLogger(stdlog.New(os.Stderr, \"[restful] \", stdlog.LstdFlags|stdlog.Lshortfile))\n}\n\n// SetLogger sets the logger for this package\nfunc SetLogger(customLogger StdLogger) {\n\tLogger = customLogger\n}\n\n// Print delegates to the Logger\nfunc Print(v ...interface{}) {\n\tLogger.Print(v...)\n}\n\n// Printf delegates to the Logger\nfunc Printf(format string, v ...interface{}) {\n\tLogger.Printf(format, v...)\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/logger.go",
    "content": "package restful\n\n// Copyright 2014 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\nimport (\n\t\"github.com/emicklei/go-restful/v3/log\"\n)\n\nvar trace bool = false\nvar traceLogger log.StdLogger\n\nfunc init() {\n\ttraceLogger = log.Logger // use the package logger by default\n}\n\n// TraceLogger enables detailed logging of Http request matching and filter invocation. Default no logger is set.\n// You may call EnableTracing() directly to enable trace logging to the package-wide logger.\nfunc TraceLogger(logger log.StdLogger) {\n\ttraceLogger = logger\n\tEnableTracing(logger != nil)\n}\n\n// SetLogger exposes the setter for the global logger on the top-level package\nfunc SetLogger(customLogger log.StdLogger) {\n\tlog.SetLogger(customLogger)\n}\n\n// EnableTracing can be used to Trace logging on and off.\nfunc EnableTracing(enabled bool) {\n\ttrace = enabled\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/mime.go",
    "content": "package restful\n\nimport (\n\t\"strconv\"\n\t\"strings\"\n)\n\ntype mime struct {\n\tmedia   string\n\tquality float64\n}\n\n// insertMime adds a mime to a list and keeps it sorted by quality.\nfunc insertMime(l []mime, e mime) []mime {\n\tfor i, each := range l {\n\t\t// if current mime has lower quality then insert before\n\t\tif e.quality > each.quality {\n\t\t\tleft := append([]mime{}, l[0:i]...)\n\t\t\treturn append(append(left, e), l[i:]...)\n\t\t}\n\t}\n\treturn append(l, e)\n}\n\nconst qFactorWeightingKey = \"q\"\n\n// sortedMimes returns a list of mime sorted (desc) by its specified quality.\n// e.g. text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3\nfunc sortedMimes(accept string) (sorted []mime) {\n\tfor _, each := range strings.Split(accept, \",\") {\n\t\ttypeAndQuality := strings.Split(strings.Trim(each, \" \"), \";\")\n\t\tif len(typeAndQuality) == 1 {\n\t\t\tsorted = insertMime(sorted, mime{typeAndQuality[0], 1.0})\n\t\t} else {\n\t\t\t// take factor\n\t\t\tqAndWeight := strings.Split(typeAndQuality[1], \"=\")\n\t\t\tif len(qAndWeight) == 2 && strings.Trim(qAndWeight[0], \" \") == qFactorWeightingKey {\n\t\t\t\tf, err := strconv.ParseFloat(qAndWeight[1], 64)\n\t\t\t\tif err != nil {\n\t\t\t\t\ttraceLogger.Printf(\"unable to parse quality in %s, %v\", each, err)\n\t\t\t\t} else {\n\t\t\t\t\tsorted = insertMime(sorted, mime{typeAndQuality[0], f})\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsorted = insertMime(sorted, mime{typeAndQuality[0], 1.0})\n\t\t\t}\n\t\t}\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/options_filter.go",
    "content": "package restful\n\nimport \"strings\"\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\n// OPTIONSFilter is a filter function that inspects the Http Request for the OPTIONS method\n// and provides the response with a set of allowed methods for the request URL Path.\n// As for any filter, you can also install it for a particular WebService within a Container.\n// Note: this filter is not needed when using CrossOriginResourceSharing (for CORS).\nfunc (c *Container) OPTIONSFilter(req *Request, resp *Response, chain *FilterChain) {\n\tif \"OPTIONS\" != req.Request.Method {\n\t\tchain.ProcessFilter(req, resp)\n\t\treturn\n\t}\n\n\tarchs := req.Request.Header.Get(HEADER_AccessControlRequestHeaders)\n\tmethods := strings.Join(c.computeAllowedMethods(req), \",\")\n\torigin := req.Request.Header.Get(HEADER_Origin)\n\n\tresp.AddHeader(HEADER_Allow, methods)\n\tresp.AddHeader(HEADER_AccessControlAllowOrigin, origin)\n\tresp.AddHeader(HEADER_AccessControlAllowHeaders, archs)\n\tresp.AddHeader(HEADER_AccessControlAllowMethods, methods)\n}\n\n// OPTIONSFilter is a filter function that inspects the Http Request for the OPTIONS method\n// and provides the response with a set of allowed methods for the request URL Path.\n// Note: this filter is not needed when using CrossOriginResourceSharing (for CORS).\nfunc OPTIONSFilter() FilterFunction {\n\treturn DefaultContainer.OPTIONSFilter\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/parameter.go",
    "content": "package restful\n\nimport \"sort\"\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\nconst (\n\t// PathParameterKind = indicator of Request parameter type \"path\"\n\tPathParameterKind = iota\n\n\t// QueryParameterKind = indicator of Request parameter type \"query\"\n\tQueryParameterKind\n\n\t// BodyParameterKind = indicator of Request parameter type \"body\"\n\tBodyParameterKind\n\n\t// HeaderParameterKind = indicator of Request parameter type \"header\"\n\tHeaderParameterKind\n\n\t// FormParameterKind = indicator of Request parameter type \"form\"\n\tFormParameterKind\n\n\t// MultiPartFormParameterKind = indicator of Request parameter type \"multipart/form-data\"\n\tMultiPartFormParameterKind\n\n\t// CollectionFormatCSV comma separated values `foo,bar`\n\tCollectionFormatCSV = CollectionFormat(\"csv\")\n\n\t// CollectionFormatSSV space separated values `foo bar`\n\tCollectionFormatSSV = CollectionFormat(\"ssv\")\n\n\t// CollectionFormatTSV tab separated values `foo\\tbar`\n\tCollectionFormatTSV = CollectionFormat(\"tsv\")\n\n\t// CollectionFormatPipes pipe separated values `foo|bar`\n\tCollectionFormatPipes = CollectionFormat(\"pipes\")\n\n\t// CollectionFormatMulti corresponds to multiple parameter instances instead of multiple values for a single\n\t// instance `foo=bar&foo=baz`. This is valid only for QueryParameters and FormParameters\n\tCollectionFormatMulti = CollectionFormat(\"multi\")\n)\n\ntype CollectionFormat string\n\nfunc (cf CollectionFormat) String() string {\n\treturn string(cf)\n}\n\n// Parameter is for documententing the parameter used in a Http Request\n// ParameterData kinds are Path,Query and Body\ntype Parameter struct {\n\tdata *ParameterData\n}\n\n// ParameterData represents the state of a Parameter.\n// It is made public to make it accessible to e.g. the Swagger package.\ntype ParameterData struct {\n\tExtensionProperties\n\tName, Description, DataType, DataFormat string\n\tKind                                    int\n\tRequired                                bool\n\t// AllowableValues is deprecated. Use PossibleValues instead\n\tAllowableValues  map[string]string\n\tPossibleValues   []string\n\tAllowMultiple    bool\n\tAllowEmptyValue  bool\n\tDefaultValue     string\n\tCollectionFormat string\n\tPattern          string\n\tMinimum          *float64\n\tMaximum          *float64\n\tMinLength        *int64\n\tMaxLength        *int64\n\tMinItems         *int64\n\tMaxItems         *int64\n\tUniqueItems      bool\n}\n\n// Data returns the state of the Parameter\nfunc (p *Parameter) Data() ParameterData {\n\treturn *p.data\n}\n\n// Kind returns the parameter type indicator (see const for valid values)\nfunc (p *Parameter) Kind() int {\n\treturn p.data.Kind\n}\n\nfunc (p *Parameter) bePath() *Parameter {\n\tp.data.Kind = PathParameterKind\n\treturn p\n}\nfunc (p *Parameter) beQuery() *Parameter {\n\tp.data.Kind = QueryParameterKind\n\treturn p\n}\nfunc (p *Parameter) beBody() *Parameter {\n\tp.data.Kind = BodyParameterKind\n\treturn p\n}\n\nfunc (p *Parameter) beHeader() *Parameter {\n\tp.data.Kind = HeaderParameterKind\n\treturn p\n}\n\nfunc (p *Parameter) beForm() *Parameter {\n\tp.data.Kind = FormParameterKind\n\treturn p\n}\n\nfunc (p *Parameter) beMultiPartForm() *Parameter {\n\tp.data.Kind = MultiPartFormParameterKind\n\treturn p\n}\n\n// Required sets the required field and returns the receiver\nfunc (p *Parameter) Required(required bool) *Parameter {\n\tp.data.Required = required\n\treturn p\n}\n\n// AllowMultiple sets the allowMultiple field and returns the receiver\nfunc (p *Parameter) AllowMultiple(multiple bool) *Parameter {\n\tp.data.AllowMultiple = multiple\n\treturn p\n}\n\n// AddExtension adds or updates a key=value pair to the extension map\nfunc (p *Parameter) AddExtension(key string, value interface{}) *Parameter {\n\tp.data.AddExtension(key, value)\n\treturn p\n}\n\n// AllowEmptyValue sets the AllowEmptyValue field and returns the receiver\nfunc (p *Parameter) AllowEmptyValue(multiple bool) *Parameter {\n\tp.data.AllowEmptyValue = multiple\n\treturn p\n}\n\n// AllowableValues is deprecated. Use PossibleValues instead. Both will be set.\nfunc (p *Parameter) AllowableValues(values map[string]string) *Parameter {\n\tp.data.AllowableValues = values\n\n\tallowableSortedKeys := make([]string, 0, len(values))\n\tfor k := range values {\n\t\tallowableSortedKeys = append(allowableSortedKeys, k)\n\t}\n\tsort.Strings(allowableSortedKeys)\n\n\tp.data.PossibleValues = make([]string, 0, len(values))\n\tfor _, k := range allowableSortedKeys {\n\t\tp.data.PossibleValues = append(p.data.PossibleValues, values[k])\n\t}\n\treturn p\n}\n\n// PossibleValues sets the possible values field and returns the receiver\nfunc (p *Parameter) PossibleValues(values []string) *Parameter {\n\tp.data.PossibleValues = values\n\treturn p\n}\n\n// DataType sets the dataType field and returns the receiver\nfunc (p *Parameter) DataType(typeName string) *Parameter {\n\tp.data.DataType = typeName\n\treturn p\n}\n\n// DataFormat sets the dataFormat field for Swagger UI\nfunc (p *Parameter) DataFormat(formatName string) *Parameter {\n\tp.data.DataFormat = formatName\n\treturn p\n}\n\n// DefaultValue sets the default value field and returns the receiver\nfunc (p *Parameter) DefaultValue(stringRepresentation string) *Parameter {\n\tp.data.DefaultValue = stringRepresentation\n\treturn p\n}\n\n// Description sets the description value field and returns the receiver\nfunc (p *Parameter) Description(doc string) *Parameter {\n\tp.data.Description = doc\n\treturn p\n}\n\n// CollectionFormat sets the collection format for an array type\nfunc (p *Parameter) CollectionFormat(format CollectionFormat) *Parameter {\n\tp.data.CollectionFormat = format.String()\n\treturn p\n}\n\n// Pattern sets the pattern field and returns the receiver\nfunc (p *Parameter) Pattern(pattern string) *Parameter {\n\tp.data.Pattern = pattern\n\treturn p\n}\n\n// Minimum sets the minimum field and returns the receiver\nfunc (p *Parameter) Minimum(minimum float64) *Parameter {\n\tp.data.Minimum = &minimum\n\treturn p\n}\n\n// Maximum sets the maximum field and returns the receiver\nfunc (p *Parameter) Maximum(maximum float64) *Parameter {\n\tp.data.Maximum = &maximum\n\treturn p\n}\n\n// MinLength sets the minLength field and returns the receiver\nfunc (p *Parameter) MinLength(minLength int64) *Parameter {\n\tp.data.MinLength = &minLength\n\treturn p\n}\n\n// MaxLength sets the maxLength field and returns the receiver\nfunc (p *Parameter) MaxLength(maxLength int64) *Parameter {\n\tp.data.MaxLength = &maxLength\n\treturn p\n}\n\n// MinItems sets the minItems field and returns the receiver\nfunc (p *Parameter) MinItems(minItems int64) *Parameter {\n\tp.data.MinItems = &minItems\n\treturn p\n}\n\n// MaxItems sets the maxItems field and returns the receiver\nfunc (p *Parameter) MaxItems(maxItems int64) *Parameter {\n\tp.data.MaxItems = &maxItems\n\treturn p\n}\n\n// UniqueItems sets the uniqueItems field and returns the receiver\nfunc (p *Parameter) UniqueItems(uniqueItems bool) *Parameter {\n\tp.data.UniqueItems = uniqueItems\n\treturn p\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/path_expression.go",
    "content": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"regexp\"\n\t\"strings\"\n)\n\n// PathExpression holds a compiled path expression (RegExp) needed to match against\n// Http request paths and to extract path parameter values.\ntype pathExpression struct {\n\tLiteralCount int      // the number of literal characters (means those not resulting from template variable substitution)\n\tVarNames     []string // the names of parameters (enclosed by {}) in the path\n\tVarCount     int      // the number of named parameters (enclosed by {}) in the path\n\tMatcher      *regexp.Regexp\n\tSource       string // Path as defined by the RouteBuilder\n\ttokens       []string\n}\n\n// NewPathExpression creates a PathExpression from the input URL path.\n// Returns an error if the path is invalid.\nfunc newPathExpression(path string) (*pathExpression, error) {\n\texpression, literalCount, varNames, varCount, tokens := templateToRegularExpression(path)\n\tcompiled, err := regexp.Compile(expression)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &pathExpression{literalCount, varNames, varCount, compiled, expression, tokens}, nil\n}\n\n// http://jsr311.java.net/nonav/releases/1.1/spec/spec3.html#x3-370003.7.3\nfunc templateToRegularExpression(template string) (expression string, literalCount int, varNames []string, varCount int, tokens []string) {\n\tvar buffer bytes.Buffer\n\tbuffer.WriteString(\"^\")\n\t//tokens = strings.Split(template, \"/\")\n\ttokens = tokenizePath(template)\n\tfor _, each := range tokens {\n\t\tif each == \"\" {\n\t\t\tcontinue\n\t\t}\n\t\tbuffer.WriteString(\"/\")\n\t\tif strings.HasPrefix(each, \"{\") {\n\t\t\t// check for regular expression in variable\n\t\t\tcolon := strings.Index(each, \":\")\n\t\t\tvar varName string\n\t\t\tif colon != -1 {\n\t\t\t\t// extract expression\n\t\t\t\tvarName = strings.TrimSpace(each[1:colon])\n\t\t\t\tparamExpr := strings.TrimSpace(each[colon+1 : len(each)-1])\n\t\t\t\tif paramExpr == \"*\" { // special case\n\t\t\t\t\tbuffer.WriteString(\"(.*)\")\n\t\t\t\t} else {\n\t\t\t\t\tbuffer.WriteString(fmt.Sprintf(\"(%s)\", paramExpr)) // between colon and closing moustache\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// plain var\n\t\t\t\tvarName = strings.TrimSpace(each[1 : len(each)-1])\n\t\t\t\tbuffer.WriteString(\"([^/]+?)\")\n\t\t\t}\n\t\t\tvarNames = append(varNames, varName)\n\t\t\tvarCount += 1\n\t\t} else {\n\t\t\tliteralCount += len(each)\n\t\t\tencoded := each // TODO URI encode\n\t\t\tbuffer.WriteString(regexp.QuoteMeta(encoded))\n\t\t}\n\t}\n\treturn strings.TrimRight(buffer.String(), \"/\") + \"(/.*)?$\", literalCount, varNames, varCount, tokens\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/path_processor.go",
    "content": "package restful\n\nimport (\n\t\"bytes\"\n\t\"strings\"\n)\n\n// Copyright 2018 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\n// PathProcessor is extra behaviour that a Router can provide to extract path parameters from the path.\n// If a Router does not implement this interface then the default behaviour will be used.\ntype PathProcessor interface {\n\t// ExtractParameters gets the path parameters defined in the route and webService from the urlPath\n\tExtractParameters(route *Route, webService *WebService, urlPath string) map[string]string\n}\n\ntype defaultPathProcessor struct{}\n\n// Extract the parameters from the request url path\nfunc (d defaultPathProcessor) ExtractParameters(r *Route, _ *WebService, urlPath string) map[string]string {\n\turlParts := tokenizePath(urlPath)\n\tpathParameters := map[string]string{}\n\tfor i, key := range r.pathParts {\n\t\tvar value string\n\t\tif i >= len(urlParts) {\n\t\t\tvalue = \"\"\n\t\t} else {\n\t\t\tvalue = urlParts[i]\n\t\t}\n\t\tif r.hasCustomVerb && hasCustomVerb(key) {\n\t\t\tkey = removeCustomVerb(key)\n\t\t\tvalue = removeCustomVerb(value)\n\t\t}\n\n\t\tif strings.Index(key, \"{\") > -1 { // path-parameter\n\t\t\tif colon := strings.Index(key, \":\"); colon != -1 {\n\t\t\t\t// extract by regex\n\t\t\t\tregPart := key[colon+1 : len(key)-1]\n\t\t\t\tkeyPart := key[1:colon]\n\t\t\t\tif regPart == \"*\" {\n\t\t\t\t\tpathParameters[keyPart] = untokenizePath(i, urlParts)\n\t\t\t\t\tbreak\n\t\t\t\t} else {\n\t\t\t\t\tpathParameters[keyPart] = value\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// without enclosing {}\n\t\t\t\tstartIndex := strings.Index(key, \"{\")\n\t\t\t\tendKeyIndex := strings.Index(key, \"}\")\n\n\t\t\t\tsuffixLength := len(key) - endKeyIndex - 1\n\t\t\t\tendValueIndex := len(value) - suffixLength\n\n\t\t\t\tpathParameters[key[startIndex+1:endKeyIndex]] = value[startIndex:endValueIndex]\n\t\t\t}\n\t\t}\n\t}\n\treturn pathParameters\n}\n\n// Untokenize back into an URL path using the slash separator\nfunc untokenizePath(offset int, parts []string) string {\n\tvar buffer bytes.Buffer\n\tfor p := offset; p < len(parts); p++ {\n\t\tbuffer.WriteString(parts[p])\n\t\t// do not end\n\t\tif p < len(parts)-1 {\n\t\t\tbuffer.WriteString(\"/\")\n\t\t}\n\t}\n\treturn buffer.String()\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/request.go",
    "content": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\nimport (\n\t\"compress/zlib\"\n\t\"net/http\"\n)\n\nvar defaultRequestContentType string\n\n// Request is a wrapper for a http Request that provides convenience methods\ntype Request struct {\n\tRequest        *http.Request\n\tpathParameters map[string]string\n\tattributes     map[string]interface{} // for storing request-scoped values\n\tselectedRoute  *Route                 // is nil when no route was matched\n}\n\nfunc NewRequest(httpRequest *http.Request) *Request {\n\treturn &Request{\n\t\tRequest:        httpRequest,\n\t\tpathParameters: map[string]string{},\n\t\tattributes:     map[string]interface{}{},\n\t} // empty parameters, attributes\n}\n\n// If ContentType is missing or */* is given then fall back to this type, otherwise\n// a \"Unable to unmarshal content of type:\" response is returned.\n// Valid values are restful.MIME_JSON and restful.MIME_XML\n// Example:\n//\n//\trestful.DefaultRequestContentType(restful.MIME_JSON)\nfunc DefaultRequestContentType(mime string) {\n\tdefaultRequestContentType = mime\n}\n\n// PathParameter accesses the Path parameter value by its name\nfunc (r *Request) PathParameter(name string) string {\n\treturn r.pathParameters[name]\n}\n\n// PathParameters accesses the Path parameter values\nfunc (r *Request) PathParameters() map[string]string {\n\treturn r.pathParameters\n}\n\n// QueryParameter returns the (first) Query parameter value by its name\nfunc (r *Request) QueryParameter(name string) string {\n\treturn r.Request.URL.Query().Get(name)\n}\n\n// QueryParameters returns the all the query parameters values by name\nfunc (r *Request) QueryParameters(name string) []string {\n\treturn r.Request.URL.Query()[name]\n}\n\n// BodyParameter parses the body of the request (once for typically a POST or a PUT) and returns the value of the given name or an error.\nfunc (r *Request) BodyParameter(name string) (string, error) {\n\terr := r.Request.ParseForm()\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\treturn r.Request.PostFormValue(name), nil\n}\n\n// HeaderParameter returns the HTTP Header value of a Header name or empty if missing\nfunc (r *Request) HeaderParameter(name string) string {\n\treturn r.Request.Header.Get(name)\n}\n\n// ReadEntity checks the Accept header and reads the content into the entityPointer.\nfunc (r *Request) ReadEntity(entityPointer interface{}) (err error) {\n\tcontentType := r.Request.Header.Get(HEADER_ContentType)\n\tcontentEncoding := r.Request.Header.Get(HEADER_ContentEncoding)\n\n\t// check if the request body needs decompression\n\tif ENCODING_GZIP == contentEncoding {\n\t\tgzipReader := currentCompressorProvider.AcquireGzipReader()\n\t\tdefer currentCompressorProvider.ReleaseGzipReader(gzipReader)\n\t\tgzipReader.Reset(r.Request.Body)\n\t\tr.Request.Body = gzipReader\n\t} else if ENCODING_DEFLATE == contentEncoding {\n\t\tzlibReader, err := zlib.NewReader(r.Request.Body)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tr.Request.Body = zlibReader\n\t}\n\n\t// lookup the EntityReader, use defaultRequestContentType if needed and provided\n\tentityReader, ok := entityAccessRegistry.accessorAt(contentType)\n\tif !ok {\n\t\tif len(defaultRequestContentType) != 0 {\n\t\t\tentityReader, ok = entityAccessRegistry.accessorAt(defaultRequestContentType)\n\t\t}\n\t\tif !ok {\n\t\t\treturn NewError(http.StatusBadRequest, \"Unable to unmarshal content of type:\"+contentType)\n\t\t}\n\t}\n\treturn entityReader.Read(r, entityPointer)\n}\n\n// SetAttribute adds or replaces the attribute with the given value.\nfunc (r *Request) SetAttribute(name string, value interface{}) {\n\tr.attributes[name] = value\n}\n\n// Attribute returns the value associated to the given name. Returns nil if absent.\nfunc (r Request) Attribute(name string) interface{} {\n\treturn r.attributes[name]\n}\n\n// SelectedRoutePath root path + route path that matched the request, e.g. /meetings/{id}/attendees\n// If no route was matched then return an empty string.\nfunc (r Request) SelectedRoutePath() string {\n\tif r.selectedRoute == nil {\n\t\treturn \"\"\n\t}\n\t// skip creating an accessor\n\treturn r.selectedRoute.Path\n}\n\n// SelectedRoute returns a reader to access the selected Route by the container\n// Returns nil if no route was matched.\nfunc (r Request) SelectedRoute() RouteReader {\n\tif r.selectedRoute == nil {\n\t\treturn nil\n\t}\n\treturn routeAccessor{route: r.selectedRoute}\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/response.go",
    "content": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\nimport (\n\t\"bufio\"\n\t\"errors\"\n\t\"net\"\n\t\"net/http\"\n)\n\n// DefaultResponseMimeType is DEPRECATED, use DefaultResponseContentType(mime)\nvar DefaultResponseMimeType string\n\n//PrettyPrintResponses controls the indentation feature of XML and JSON serialization\nvar PrettyPrintResponses = true\n\n// Response is a wrapper on the actual http ResponseWriter\n// It provides several convenience methods to prepare and write response content.\ntype Response struct {\n\thttp.ResponseWriter\n\trequestAccept string        // mime-type what the Http Request says it wants to receive\n\trouteProduces []string      // mime-types what the Route says it can produce\n\tstatusCode    int           // HTTP status code that has been written explicitly (if zero then net/http has written 200)\n\tcontentLength int           // number of bytes written for the response body\n\tprettyPrint   bool          // controls the indentation feature of XML and JSON serialization. It is initialized using var PrettyPrintResponses.\n\terr           error         // err property is kept when WriteError is called\n\thijacker      http.Hijacker // if underlying ResponseWriter supports it\n}\n\n// NewResponse creates a new response based on a http ResponseWriter.\nfunc NewResponse(httpWriter http.ResponseWriter) *Response {\n\thijacker, _ := httpWriter.(http.Hijacker)\n\treturn &Response{ResponseWriter: httpWriter, routeProduces: []string{}, statusCode: http.StatusOK, prettyPrint: PrettyPrintResponses, hijacker: hijacker}\n}\n\n// DefaultResponseContentType set a default.\n// If Accept header matching fails, fall back to this type.\n// Valid values are restful.MIME_JSON and restful.MIME_XML\n// Example:\n// \trestful.DefaultResponseContentType(restful.MIME_JSON)\nfunc DefaultResponseContentType(mime string) {\n\tDefaultResponseMimeType = mime\n}\n\n// InternalServerError writes the StatusInternalServerError header.\n// DEPRECATED, use WriteErrorString(http.StatusInternalServerError,reason)\nfunc (r Response) InternalServerError() Response {\n\tr.WriteHeader(http.StatusInternalServerError)\n\treturn r\n}\n\n// Hijack implements the http.Hijacker interface.  This expands\n// the Response to fulfill http.Hijacker if the underlying\n// http.ResponseWriter supports it.\nfunc (r *Response) Hijack() (net.Conn, *bufio.ReadWriter, error) {\n\tif r.hijacker == nil {\n\t\treturn nil, nil, errors.New(\"http.Hijacker not implemented by underlying http.ResponseWriter\")\n\t}\n\treturn r.hijacker.Hijack()\n}\n\n// PrettyPrint changes whether this response must produce pretty (line-by-line, indented) JSON or XML output.\nfunc (r *Response) PrettyPrint(bePretty bool) {\n\tr.prettyPrint = bePretty\n}\n\n// AddHeader is a shortcut for .Header().Add(header,value)\nfunc (r Response) AddHeader(header string, value string) Response {\n\tr.Header().Add(header, value)\n\treturn r\n}\n\n// SetRequestAccepts tells the response what Mime-type(s) the HTTP request said it wants to accept. Exposed for testing.\nfunc (r *Response) SetRequestAccepts(mime string) {\n\tr.requestAccept = mime\n}\n\n// EntityWriter returns the registered EntityWriter that the entity (requested resource)\n// can write according to what the request wants (Accept) and what the Route can produce or what the restful defaults say.\n// If called before WriteEntity and WriteHeader then a false return value can be used to write a 406: Not Acceptable.\nfunc (r *Response) EntityWriter() (EntityReaderWriter, bool) {\n\tsorted := sortedMimes(r.requestAccept)\n\tfor _, eachAccept := range sorted {\n\t\tfor _, eachProduce := range r.routeProduces {\n\t\t\tif eachProduce == eachAccept.media {\n\t\t\t\tif w, ok := entityAccessRegistry.accessorAt(eachAccept.media); ok {\n\t\t\t\t\treturn w, true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif eachAccept.media == \"*/*\" {\n\t\t\tfor _, each := range r.routeProduces {\n\t\t\t\tif w, ok := entityAccessRegistry.accessorAt(each); ok {\n\t\t\t\t\treturn w, true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// if requestAccept is empty\n\twriter, ok := entityAccessRegistry.accessorAt(r.requestAccept)\n\tif !ok {\n\t\t// if not registered then fallback to the defaults (if set)\n\t\tif DefaultResponseMimeType == MIME_JSON {\n\t\t\treturn entityAccessRegistry.accessorAt(MIME_JSON)\n\t\t}\n\t\tif DefaultResponseMimeType == MIME_XML {\n\t\t\treturn entityAccessRegistry.accessorAt(MIME_XML)\n\t\t}\n\t\tif DefaultResponseMimeType == MIME_ZIP {\n\t\t\treturn entityAccessRegistry.accessorAt(MIME_ZIP)\n\t\t}\n\t\t// Fallback to whatever the route says it can produce.\n\t\t// https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html\n\t\tfor _, each := range r.routeProduces {\n\t\t\tif w, ok := entityAccessRegistry.accessorAt(each); ok {\n\t\t\t\treturn w, true\n\t\t\t}\n\t\t}\n\t\tif trace {\n\t\t\ttraceLogger.Printf(\"no registered EntityReaderWriter found for %s\", r.requestAccept)\n\t\t}\n\t}\n\treturn writer, ok\n}\n\n// WriteEntity calls WriteHeaderAndEntity with Http Status OK (200)\nfunc (r *Response) WriteEntity(value interface{}) error {\n\treturn r.WriteHeaderAndEntity(http.StatusOK, value)\n}\n\n// WriteHeaderAndEntity marshals the value using the representation denoted by the Accept Header and the registered EntityWriters.\n// If no Accept header is specified (or */*) then respond with the Content-Type as specified by the first in the Route.Produces.\n// If an Accept header is specified then respond with the Content-Type as specified by the first in the Route.Produces that is matched with the Accept header.\n// If the value is nil then no response is send except for the Http status. You may want to call WriteHeader(http.StatusNotFound) instead.\n// If there is no writer available that can represent the value in the requested MIME type then Http Status NotAcceptable is written.\n// Current implementation ignores any q-parameters in the Accept Header.\n// Returns an error if the value could not be written on the response.\nfunc (r *Response) WriteHeaderAndEntity(status int, value interface{}) error {\n\twriter, ok := r.EntityWriter()\n\tif !ok {\n\t\tr.WriteHeader(http.StatusNotAcceptable)\n\t\treturn nil\n\t}\n\treturn writer.Write(r, status, value)\n}\n\n// WriteAsXml is a convenience method for writing a value in xml (requires Xml tags on the value)\n// It uses the standard encoding/xml package for marshalling the value ; not using a registered EntityReaderWriter.\nfunc (r *Response) WriteAsXml(value interface{}) error {\n\treturn writeXML(r, http.StatusOK, MIME_XML, value)\n}\n\n// WriteHeaderAndXml is a convenience method for writing a status and value in xml (requires Xml tags on the value)\n// It uses the standard encoding/xml package for marshalling the value ; not using a registered EntityReaderWriter.\nfunc (r *Response) WriteHeaderAndXml(status int, value interface{}) error {\n\treturn writeXML(r, status, MIME_XML, value)\n}\n\n// WriteAsJson is a convenience method for writing a value in json.\n// It uses the standard encoding/json package for marshalling the value ; not using a registered EntityReaderWriter.\nfunc (r *Response) WriteAsJson(value interface{}) error {\n\treturn writeJSON(r, http.StatusOK, MIME_JSON, value)\n}\n\n// WriteJson is a convenience method for writing a value in Json with a given Content-Type.\n// It uses the standard encoding/json package for marshalling the value ; not using a registered EntityReaderWriter.\nfunc (r *Response) WriteJson(value interface{}, contentType string) error {\n\treturn writeJSON(r, http.StatusOK, contentType, value)\n}\n\n// WriteHeaderAndJson is a convenience method for writing the status and a value in Json with a given Content-Type.\n// It uses the standard encoding/json package for marshalling the value ; not using a registered EntityReaderWriter.\nfunc (r *Response) WriteHeaderAndJson(status int, value interface{}, contentType string) error {\n\treturn writeJSON(r, status, contentType, value)\n}\n\n// WriteError writes the http status and the error string on the response. err can be nil.\n// Return an error if writing was not successful.\nfunc (r *Response) WriteError(httpStatus int, err error) (writeErr error) {\n\tr.err = err\n\tif err == nil {\n\t\twriteErr = r.WriteErrorString(httpStatus, \"\")\n\t} else {\n\t\twriteErr = r.WriteErrorString(httpStatus, err.Error())\n\t}\n\treturn writeErr\n}\n\n// WriteServiceError is a convenience method for a responding with a status and a ServiceError\nfunc (r *Response) WriteServiceError(httpStatus int, err ServiceError) error {\n\tr.err = err\n\treturn r.WriteHeaderAndEntity(httpStatus, err)\n}\n\n// WriteErrorString is a convenience method for an error status with the actual error\nfunc (r *Response) WriteErrorString(httpStatus int, errorReason string) error {\n\tif r.err == nil {\n\t\t// if not called from WriteError\n\t\tr.err = errors.New(errorReason)\n\t}\n\tr.WriteHeader(httpStatus)\n\tif _, err := r.Write([]byte(errorReason)); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// Flush implements http.Flusher interface, which sends any buffered data to the client.\nfunc (r *Response) Flush() {\n\tif f, ok := r.ResponseWriter.(http.Flusher); ok {\n\t\tf.Flush()\n\t} else if trace {\n\t\ttraceLogger.Printf(\"ResponseWriter %v doesn't support Flush\", r)\n\t}\n}\n\n// WriteHeader is overridden to remember the Status Code that has been written.\n// Changes to the Header of the response have no effect after this.\nfunc (r *Response) WriteHeader(httpStatus int) {\n\tr.statusCode = httpStatus\n\tr.ResponseWriter.WriteHeader(httpStatus)\n}\n\n// StatusCode returns the code that has been written using WriteHeader.\nfunc (r Response) StatusCode() int {\n\tif 0 == r.statusCode {\n\t\t// no status code has been written yet; assume OK\n\t\treturn http.StatusOK\n\t}\n\treturn r.statusCode\n}\n\n// Write writes the data to the connection as part of an HTTP reply.\n// Write is part of http.ResponseWriter interface.\nfunc (r *Response) Write(bytes []byte) (int, error) {\n\twritten, err := r.ResponseWriter.Write(bytes)\n\tr.contentLength += written\n\treturn written, err\n}\n\n// ContentLength returns the number of bytes written for the response content.\n// Note that this value is only correct if all data is written through the Response using its Write* methods.\n// Data written directly using the underlying http.ResponseWriter is not accounted for.\nfunc (r Response) ContentLength() int {\n\treturn r.contentLength\n}\n\n// CloseNotify is part of http.CloseNotifier interface\nfunc (r Response) CloseNotify() <-chan bool {\n\treturn r.ResponseWriter.(http.CloseNotifier).CloseNotify()\n}\n\n// Error returns the err created by WriteError\nfunc (r Response) Error() error {\n\treturn r.err\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/route.go",
    "content": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\nimport (\n\t\"net/http\"\n\t\"strings\"\n)\n\n// RouteFunction declares the signature of a function that can be bound to a Route.\ntype RouteFunction func(*Request, *Response)\n\n// RouteSelectionConditionFunction declares the signature of a function that\n// can be used to add extra conditional logic when selecting whether the route\n// matches the HTTP request.\ntype RouteSelectionConditionFunction func(httpRequest *http.Request) bool\n\n// Route binds a HTTP Method,Path,Consumes combination to a RouteFunction.\ntype Route struct {\n\tExtensionProperties\n\tMethod   string\n\tProduces []string\n\tConsumes []string\n\tPath     string // webservice root path + described path\n\tFunction RouteFunction\n\tFilters  []FilterFunction\n\tIf       []RouteSelectionConditionFunction\n\n\t// cached values for dispatching\n\trelativePath string\n\tpathParts    []string\n\tpathExpr     *pathExpression // cached compilation of relativePath as RegExp\n\n\t// documentation\n\tDoc                     string\n\tNotes                   string\n\tOperation               string\n\tParameterDocs           []*Parameter\n\tResponseErrors          map[int]ResponseError\n\tDefaultResponse         *ResponseError\n\tReadSample, WriteSample interface{}   // structs that model an example request or response payload\n\tWriteSamples            []interface{} // if more than one return types is possible (oneof) then this will contain multiple values\n\n\t// Extra information used to store custom information about the route.\n\tMetadata map[string]interface{}\n\n\t// marks a route as deprecated\n\tDeprecated bool\n\n\t//Overrides the container.contentEncodingEnabled\n\tcontentEncodingEnabled *bool\n\n\t// indicate route path has custom verb\n\thasCustomVerb bool\n\n\t// if a request does not include a content-type header then\n\t// depending on the method, it may return a 415 Unsupported Media\n\t// Must have uppercase HTTP Method names such as GET,HEAD,OPTIONS,...\n\tallowedMethodsWithoutContentType []string\n}\n\n// Initialize for Route\nfunc (r *Route) postBuild() {\n\tr.pathParts = tokenizePath(r.Path)\n\tr.hasCustomVerb = hasCustomVerb(r.Path)\n}\n\n// Create Request and Response from their http versions\nfunc (r *Route) wrapRequestResponse(httpWriter http.ResponseWriter, httpRequest *http.Request, pathParams map[string]string) (*Request, *Response) {\n\twrappedRequest := NewRequest(httpRequest)\n\twrappedRequest.pathParameters = pathParams\n\twrappedRequest.selectedRoute = r\n\twrappedResponse := NewResponse(httpWriter)\n\twrappedResponse.requestAccept = httpRequest.Header.Get(HEADER_Accept)\n\twrappedResponse.routeProduces = r.Produces\n\treturn wrappedRequest, wrappedResponse\n}\n\nfunc stringTrimSpaceCutset(r rune) bool {\n\treturn r == ' '\n}\n\n// Return whether the mimeType matches to what this Route can produce.\nfunc (r Route) matchesAccept(mimeTypesWithQuality string) bool {\n\tremaining := mimeTypesWithQuality\n\tfor {\n\t\tvar mimeType string\n\t\tif end := strings.Index(remaining, \",\"); end == -1 {\n\t\t\tmimeType, remaining = remaining, \"\"\n\t\t} else {\n\t\t\tmimeType, remaining = remaining[:end], remaining[end+1:]\n\t\t}\n\t\tif quality := strings.Index(mimeType, \";\"); quality != -1 {\n\t\t\tmimeType = mimeType[:quality]\n\t\t}\n\t\tmimeType = strings.TrimFunc(mimeType, stringTrimSpaceCutset)\n\t\tif mimeType == \"*/*\" {\n\t\t\treturn true\n\t\t}\n\t\tfor _, producibleType := range r.Produces {\n\t\t\tif producibleType == \"*/*\" || producibleType == mimeType {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\tif len(remaining) == 0 {\n\t\t\treturn false\n\t\t}\n\t}\n}\n\n// Return whether this Route can consume content with a type specified by mimeTypes (can be empty).\nfunc (r Route) matchesContentType(mimeTypes string) bool {\n\n\tif len(r.Consumes) == 0 {\n\t\t// did not specify what it can consume ;  any media type (“*/*”) is assumed\n\t\treturn true\n\t}\n\n\tif len(mimeTypes) == 0 {\n\t\t// idempotent methods with (most-likely or guaranteed) empty content match missing Content-Type\n\t\tm := r.Method\n\t\t// if route specifies less or non-idempotent methods then use that\n\t\tif len(r.allowedMethodsWithoutContentType) > 0 {\n\t\t\tfor _, each := range r.allowedMethodsWithoutContentType {\n\t\t\t\tif m == each {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif m == \"GET\" || m == \"HEAD\" || m == \"OPTIONS\" || m == \"DELETE\" || m == \"TRACE\" {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\t// proceed with default\n\t\tmimeTypes = MIME_OCTET\n\t}\n\n\tremaining := mimeTypes\n\tfor {\n\t\tvar mimeType string\n\t\tif end := strings.Index(remaining, \",\"); end == -1 {\n\t\t\tmimeType, remaining = remaining, \"\"\n\t\t} else {\n\t\t\tmimeType, remaining = remaining[:end], remaining[end+1:]\n\t\t}\n\t\tif quality := strings.Index(mimeType, \";\"); quality != -1 {\n\t\t\tmimeType = mimeType[:quality]\n\t\t}\n\t\tmimeType = strings.TrimFunc(mimeType, stringTrimSpaceCutset)\n\t\tfor _, consumeableType := range r.Consumes {\n\t\t\tif consumeableType == \"*/*\" || consumeableType == mimeType {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\tif len(remaining) == 0 {\n\t\t\treturn false\n\t\t}\n\t}\n}\n\n// Tokenize an URL path using the slash separator ; the result does not have empty tokens\nfunc tokenizePath(path string) []string {\n\tif \"/\" == path {\n\t\treturn nil\n\t}\n\tif TrimRightSlashEnabled {\n\t\t// 3.9.0\n\t\treturn strings.Split(strings.Trim(path, \"/\"), \"/\")\n\t} else {\n\t\t// 3.10.2\n\t\treturn strings.Split(strings.TrimLeft(path, \"/\"), \"/\")\n\t}\n}\n\n// for debugging\nfunc (r *Route) String() string {\n\treturn r.Method + \" \" + r.Path\n}\n\n// EnableContentEncoding (default=false) allows for GZIP or DEFLATE encoding of responses. Overrides the container.contentEncodingEnabled value.\nfunc (r *Route) EnableContentEncoding(enabled bool) {\n\tr.contentEncodingEnabled = &enabled\n}\n\n// TrimRightSlashEnabled controls whether\n// - path on route building is using path.Join\n// - the path of the incoming request is trimmed of its slash suffux.\n// Value of true matches the behavior of <= 3.9.0\nvar TrimRightSlashEnabled = true\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/route_builder.go",
    "content": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"path\"\n\t\"reflect\"\n\t\"runtime\"\n\t\"strings\"\n\t\"sync/atomic\"\n\n\t\"github.com/emicklei/go-restful/v3/log\"\n)\n\n// RouteBuilder is a helper to construct Routes.\ntype RouteBuilder struct {\n\trootPath                         string\n\tcurrentPath                      string\n\tproduces                         []string\n\tconsumes                         []string\n\thttpMethod                       string        // required\n\tfunction                         RouteFunction // required\n\tfilters                          []FilterFunction\n\tconditions                       []RouteSelectionConditionFunction\n\tallowedMethodsWithoutContentType []string // see Route\n\n\ttypeNameHandleFunc TypeNameHandleFunction // required\n\n\t// documentation\n\tdoc                    string\n\tnotes                  string\n\toperation              string\n\treadSample             interface{}\n\twriteSamples           []interface{}\n\tparameters             []*Parameter\n\terrorMap               map[int]ResponseError\n\tdefaultResponse        *ResponseError\n\tmetadata               map[string]interface{}\n\textensions             map[string]interface{}\n\tdeprecated             bool\n\tcontentEncodingEnabled *bool\n}\n\n// Do evaluates each argument with the RouteBuilder itself.\n// This allows you to follow DRY principles without breaking the fluent programming style.\n// Example:\n//\n//\tws.Route(ws.DELETE(\"/{name}\").To(t.deletePerson).Do(Returns200, Returns500))\n//\n//\tfunc Returns500(b *RouteBuilder) {\n//\t\tb.Returns(500, \"Internal Server Error\", restful.ServiceError{})\n//\t}\nfunc (b *RouteBuilder) Do(oneArgBlocks ...func(*RouteBuilder)) *RouteBuilder {\n\tfor _, each := range oneArgBlocks {\n\t\teach(b)\n\t}\n\treturn b\n}\n\n// To bind the route to a function.\n// If this route is matched with the incoming Http Request then call this function with the *Request,*Response pair. Required.\nfunc (b *RouteBuilder) To(function RouteFunction) *RouteBuilder {\n\tb.function = function\n\treturn b\n}\n\n// Method specifies what HTTP method to match. Required.\nfunc (b *RouteBuilder) Method(method string) *RouteBuilder {\n\tb.httpMethod = method\n\treturn b\n}\n\n// Produces specifies what MIME types can be produced ; the matched one will appear in the Content-Type Http header.\nfunc (b *RouteBuilder) Produces(mimeTypes ...string) *RouteBuilder {\n\tb.produces = mimeTypes\n\treturn b\n}\n\n// Consumes specifies what MIME types can be consumes ; the Accept Http header must matched any of these\nfunc (b *RouteBuilder) Consumes(mimeTypes ...string) *RouteBuilder {\n\tb.consumes = mimeTypes\n\treturn b\n}\n\n// Path specifies the relative (w.r.t WebService root path) URL path to match. Default is \"/\".\nfunc (b *RouteBuilder) Path(subPath string) *RouteBuilder {\n\tb.currentPath = subPath\n\treturn b\n}\n\n// Doc tells what this route is all about. Optional.\nfunc (b *RouteBuilder) Doc(documentation string) *RouteBuilder {\n\tb.doc = documentation\n\treturn b\n}\n\n// Notes is a verbose explanation of the operation behavior. Optional.\nfunc (b *RouteBuilder) Notes(notes string) *RouteBuilder {\n\tb.notes = notes\n\treturn b\n}\n\n// Reads tells what resource type will be read from the request payload. Optional.\n// A parameter of type \"body\" is added ,required is set to true and the dataType is set to the qualified name of the sample's type.\nfunc (b *RouteBuilder) Reads(sample interface{}, optionalDescription ...string) *RouteBuilder {\n\tfn := b.typeNameHandleFunc\n\tif fn == nil {\n\t\tfn = reflectTypeName\n\t}\n\ttypeAsName := fn(sample)\n\tdescription := \"\"\n\tif len(optionalDescription) > 0 {\n\t\tdescription = optionalDescription[0]\n\t}\n\tb.readSample = sample\n\tbodyParameter := &Parameter{&ParameterData{Name: \"body\", Description: description}}\n\tbodyParameter.beBody()\n\tbodyParameter.Required(true)\n\tbodyParameter.DataType(typeAsName)\n\tb.Param(bodyParameter)\n\treturn b\n}\n\n// ParameterNamed returns a Parameter already known to the RouteBuilder. Returns nil if not.\n// Use this to modify or extend information for the Parameter (through its Data()).\nfunc (b RouteBuilder) ParameterNamed(name string) (p *Parameter) {\n\tfor _, each := range b.parameters {\n\t\tif each.Data().Name == name {\n\t\t\treturn each\n\t\t}\n\t}\n\treturn p\n}\n\n// Writes tells which one of the resource types will be written as the response payload. Optional.\nfunc (b *RouteBuilder) Writes(samples ...interface{}) *RouteBuilder {\n\tb.writeSamples = samples // oneof\n\treturn b\n}\n\n// Param allows you to document the parameters of the Route. It adds a new Parameter (does not check for duplicates).\nfunc (b *RouteBuilder) Param(parameter *Parameter) *RouteBuilder {\n\tif b.parameters == nil {\n\t\tb.parameters = []*Parameter{}\n\t}\n\tb.parameters = append(b.parameters, parameter)\n\treturn b\n}\n\n// Operation allows you to document what the actual method/function call is of the Route.\n// Unless called, the operation name is derived from the RouteFunction set using To(..).\nfunc (b *RouteBuilder) Operation(name string) *RouteBuilder {\n\tb.operation = name\n\treturn b\n}\n\n// ReturnsError is deprecated, use Returns instead.\nfunc (b *RouteBuilder) ReturnsError(code int, message string, model interface{}) *RouteBuilder {\n\tlog.Print(\"ReturnsError is deprecated, use Returns instead.\")\n\treturn b.Returns(code, message, model)\n}\n\n// Returns allows you to document what responses (errors or regular) can be expected.\n// The model parameter is optional ; either pass a struct instance or use nil if not applicable.\nfunc (b *RouteBuilder) Returns(code int, message string, model interface{}) *RouteBuilder {\n\terr := ResponseError{\n\t\tCode:      code,\n\t\tMessage:   message,\n\t\tModel:     model,\n\t\tIsDefault: false, // this field is deprecated, use default response instead.\n\t}\n\t// lazy init because there is no NewRouteBuilder (yet)\n\tif b.errorMap == nil {\n\t\tb.errorMap = map[int]ResponseError{}\n\t}\n\tb.errorMap[code] = err\n\treturn b\n}\n\n// ReturnsWithHeaders is similar to Returns, but can specify response headers\nfunc (b *RouteBuilder) ReturnsWithHeaders(code int, message string, model interface{}, headers map[string]Header) *RouteBuilder {\n\tb.Returns(code, message, model)\n\terr := b.errorMap[code]\n\terr.Headers = headers\n\tb.errorMap[code] = err\n\treturn b\n}\n\n// DefaultReturns is a special Returns call that sets the default of the response.\nfunc (b *RouteBuilder) DefaultReturns(message string, model interface{}) *RouteBuilder {\n\tb.defaultResponse = &ResponseError{\n\t\tMessage: message,\n\t\tModel:   model,\n\t}\n\treturn b\n}\n\n// Metadata adds or updates a key=value pair to the metadata map.\nfunc (b *RouteBuilder) Metadata(key string, value interface{}) *RouteBuilder {\n\tif b.metadata == nil {\n\t\tb.metadata = map[string]interface{}{}\n\t}\n\tb.metadata[key] = value\n\treturn b\n}\n\n// AddExtension adds or updates a key=value pair to the extensions map.\nfunc (b *RouteBuilder) AddExtension(key string, value interface{}) *RouteBuilder {\n\tif b.extensions == nil {\n\t\tb.extensions = map[string]interface{}{}\n\t}\n\tb.extensions[key] = value\n\treturn b\n}\n\n// Deprecate sets the value of deprecated to true.  Deprecated routes have a special UI treatment to warn against use\nfunc (b *RouteBuilder) Deprecate() *RouteBuilder {\n\tb.deprecated = true\n\treturn b\n}\n\n// AllowedMethodsWithoutContentType overrides the default list GET,HEAD,OPTIONS,DELETE,TRACE\n// If a request does not include a content-type header then\n// depending on the method, it may return a 415 Unsupported Media.\n// Must have uppercase HTTP Method names such as GET,HEAD,OPTIONS,...\nfunc (b *RouteBuilder) AllowedMethodsWithoutContentType(methods []string) *RouteBuilder {\n\tb.allowedMethodsWithoutContentType = methods\n\treturn b\n}\n\n// ResponseError represents a response; not necessarily an error.\ntype ResponseError struct {\n\tExtensionProperties\n\tCode      int\n\tMessage   string\n\tModel     interface{}\n\tHeaders   map[string]Header\n\tIsDefault bool\n}\n\n// Header describes a header for a response of the API\n//\n// For more information: http://goo.gl/8us55a#headerObject\ntype Header struct {\n\t*Items\n\tDescription string\n}\n\n// Items describe swagger simple schemas for headers\ntype Items struct {\n\tType             string\n\tFormat           string\n\tItems            *Items\n\tCollectionFormat string\n\tDefault          interface{}\n}\n\nfunc (b *RouteBuilder) servicePath(path string) *RouteBuilder {\n\tb.rootPath = path\n\treturn b\n}\n\n// Filter appends a FilterFunction to the end of filters for this Route to build.\nfunc (b *RouteBuilder) Filter(filter FilterFunction) *RouteBuilder {\n\tb.filters = append(b.filters, filter)\n\treturn b\n}\n\n// If sets a condition function that controls matching the Route based on custom logic.\n// The condition function is provided the HTTP request and should return true if the route\n// should be considered.\n//\n// Efficiency note: the condition function is called before checking the method, produces, and\n// consumes criteria, so that the correct HTTP status code can be returned.\n//\n// Lifecycle note: no filter functions have been called prior to calling the condition function,\n// so the condition function should not depend on any context that might be set up by container\n// or route filters.\nfunc (b *RouteBuilder) If(condition RouteSelectionConditionFunction) *RouteBuilder {\n\tb.conditions = append(b.conditions, condition)\n\treturn b\n}\n\n// ContentEncodingEnabled allows you to override the Containers value for auto-compressing this route response.\nfunc (b *RouteBuilder) ContentEncodingEnabled(enabled bool) *RouteBuilder {\n\tb.contentEncodingEnabled = &enabled\n\treturn b\n}\n\n// If no specific Route path then set to rootPath\n// If no specific Produces then set to rootProduces\n// If no specific Consumes then set to rootConsumes\nfunc (b *RouteBuilder) copyDefaults(rootProduces, rootConsumes []string) {\n\tif len(b.produces) == 0 {\n\t\tb.produces = rootProduces\n\t}\n\tif len(b.consumes) == 0 {\n\t\tb.consumes = rootConsumes\n\t}\n}\n\n// typeNameHandler sets the function that will convert types to strings in the parameter\n// and model definitions.\nfunc (b *RouteBuilder) typeNameHandler(handler TypeNameHandleFunction) *RouteBuilder {\n\tb.typeNameHandleFunc = handler\n\treturn b\n}\n\n// Build creates a new Route using the specification details collected by the RouteBuilder\nfunc (b *RouteBuilder) Build() Route {\n\tpathExpr, err := newPathExpression(b.currentPath)\n\tif err != nil {\n\t\tlog.Printf(\"Invalid path:%s because:%v\", b.currentPath, err)\n\t\tos.Exit(1)\n\t}\n\tif b.function == nil {\n\t\tlog.Printf(\"No function specified for route:\" + b.currentPath)\n\t\tos.Exit(1)\n\t}\n\toperationName := b.operation\n\tif len(operationName) == 0 && b.function != nil {\n\t\t// extract from definition\n\t\toperationName = nameOfFunction(b.function)\n\t}\n\troute := Route{\n\t\tMethod:                           b.httpMethod,\n\t\tPath:                             concatPath(b.rootPath, b.currentPath),\n\t\tProduces:                         b.produces,\n\t\tConsumes:                         b.consumes,\n\t\tFunction:                         b.function,\n\t\tFilters:                          b.filters,\n\t\tIf:                               b.conditions,\n\t\trelativePath:                     b.currentPath,\n\t\tpathExpr:                         pathExpr,\n\t\tDoc:                              b.doc,\n\t\tNotes:                            b.notes,\n\t\tOperation:                        operationName,\n\t\tParameterDocs:                    b.parameters,\n\t\tResponseErrors:                   b.errorMap,\n\t\tDefaultResponse:                  b.defaultResponse,\n\t\tReadSample:                       b.readSample,\n\t\tWriteSamples:                     b.writeSamples,\n\t\tMetadata:                         b.metadata,\n\t\tDeprecated:                       b.deprecated,\n\t\tcontentEncodingEnabled:           b.contentEncodingEnabled,\n\t\tallowedMethodsWithoutContentType: b.allowedMethodsWithoutContentType,\n\t}\n\t// set WriteSample if one specified\n\tif len(b.writeSamples) == 1 {\n\t\troute.WriteSample = b.writeSamples[0]\n\t}\n\troute.Extensions = b.extensions\n\troute.postBuild()\n\treturn route\n}\n\n// merge two paths using the current (package global) merge path strategy.\nfunc concatPath(rootPath, routePath string) string {\n\n\tif TrimRightSlashEnabled {\n\t\treturn strings.TrimRight(rootPath, \"/\") + \"/\" + strings.TrimLeft(routePath, \"/\")\n\t} else {\n\t\treturn path.Join(rootPath, routePath)\n\t}\n}\n\nvar anonymousFuncCount int32\n\n// nameOfFunction returns the short name of the function f for documentation.\n// It uses a runtime feature for debugging ; its value may change for later Go versions.\nfunc nameOfFunction(f interface{}) string {\n\tfun := runtime.FuncForPC(reflect.ValueOf(f).Pointer())\n\ttokenized := strings.Split(fun.Name(), \".\")\n\tlast := tokenized[len(tokenized)-1]\n\tlast = strings.TrimSuffix(last, \")·fm\") // < Go 1.5\n\tlast = strings.TrimSuffix(last, \")-fm\") // Go 1.5\n\tlast = strings.TrimSuffix(last, \"·fm\")  // < Go 1.5\n\tlast = strings.TrimSuffix(last, \"-fm\")  // Go 1.5\n\tif last == \"func1\" {                    // this could mean conflicts in API docs\n\t\tval := atomic.AddInt32(&anonymousFuncCount, 1)\n\t\tlast = \"func\" + fmt.Sprintf(\"%d\", val)\n\t\tatomic.StoreInt32(&anonymousFuncCount, val)\n\t}\n\treturn last\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/route_reader.go",
    "content": "package restful\n\n// Copyright 2021 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\ntype RouteReader interface {\n\tMethod() string\n\tConsumes() []string\n\tPath() string\n\tDoc() string\n\tNotes() string\n\tOperation() string\n\tParameterDocs() []*Parameter\n\t// Returns a copy\n\tMetadata() map[string]interface{}\n\tDeprecated() bool\n}\n\ntype routeAccessor struct {\n\troute *Route\n}\n\nfunc (r routeAccessor) Method() string {\n\treturn r.route.Method\n}\nfunc (r routeAccessor) Consumes() []string {\n\treturn r.route.Consumes[:]\n}\nfunc (r routeAccessor) Path() string {\n\treturn r.route.Path\n}\nfunc (r routeAccessor) Doc() string {\n\treturn r.route.Doc\n}\nfunc (r routeAccessor) Notes() string {\n\treturn r.route.Notes\n}\nfunc (r routeAccessor) Operation() string {\n\treturn r.route.Operation\n}\nfunc (r routeAccessor) ParameterDocs() []*Parameter {\n\treturn r.route.ParameterDocs[:]\n}\n\n// Returns a copy\nfunc (r routeAccessor) Metadata() map[string]interface{} {\n\treturn copyMap(r.route.Metadata)\n}\nfunc (r routeAccessor) Deprecated() bool {\n\treturn r.route.Deprecated\n}\n\n// https://stackoverflow.com/questions/23057785/how-to-copy-a-map\nfunc copyMap(m map[string]interface{}) map[string]interface{} {\n\tcp := make(map[string]interface{})\n\tfor k, v := range m {\n\t\tvm, ok := v.(map[string]interface{})\n\t\tif ok {\n\t\t\tcp[k] = copyMap(vm)\n\t\t} else {\n\t\t\tcp[k] = v\n\t\t}\n\t}\n\treturn cp\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/router.go",
    "content": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\nimport \"net/http\"\n\n// A RouteSelector finds the best matching Route given the input HTTP Request\n// RouteSelectors can optionally also implement the PathProcessor interface to also calculate the\n// path parameters after the route has been selected.\ntype RouteSelector interface {\n\n\t// SelectRoute finds a Route given the input HTTP Request and a list of WebServices.\n\t// It returns a selected Route and its containing WebService or an error indicating\n\t// a problem.\n\tSelectRoute(\n\t\twebServices []*WebService,\n\t\thttpRequest *http.Request) (selectedService *WebService, selected *Route, err error)\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/service_error.go",
    "content": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n)\n\n// ServiceError is a transport object to pass information about a non-Http error occurred in a WebService while processing a request.\ntype ServiceError struct {\n\tCode    int\n\tMessage string\n\tHeader  http.Header\n}\n\n// NewError returns a ServiceError using the code and reason\nfunc NewError(code int, message string) ServiceError {\n\treturn ServiceError{Code: code, Message: message}\n}\n\n// NewErrorWithHeader returns a ServiceError using the code, reason and header\nfunc NewErrorWithHeader(code int, message string, header http.Header) ServiceError {\n\treturn ServiceError{Code: code, Message: message, Header: header}\n}\n\n// Error returns a text representation of the service error\nfunc (s ServiceError) Error() string {\n\treturn fmt.Sprintf(\"[ServiceError:%v] %v\", s.Code, s.Message)\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/web_service.go",
    "content": "package restful\n\nimport (\n\t\"errors\"\n\t\"os\"\n\t\"reflect\"\n\t\"sync\"\n\n\t\"github.com/emicklei/go-restful/v3/log\"\n)\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\n// WebService holds a collection of Route values that bind a Http Method + URL Path to a function.\ntype WebService struct {\n\trootPath       string\n\tpathExpr       *pathExpression // cached compilation of rootPath as RegExp\n\troutes         []Route\n\tproduces       []string\n\tconsumes       []string\n\tpathParameters []*Parameter\n\tfilters        []FilterFunction\n\tdocumentation  string\n\tapiVersion     string\n\n\ttypeNameHandleFunc TypeNameHandleFunction\n\n\tdynamicRoutes bool\n\n\t// protects 'routes' if dynamic routes are enabled\n\troutesLock sync.RWMutex\n}\n\nfunc (w *WebService) SetDynamicRoutes(enable bool) {\n\tw.dynamicRoutes = enable\n}\n\n// TypeNameHandleFunction declares functions that can handle translating the name of a sample object\n// into the restful documentation for the service.\ntype TypeNameHandleFunction func(sample interface{}) string\n\n// TypeNameHandler sets the function that will convert types to strings in the parameter\n// and model definitions. If not set, the web service will invoke\n// reflect.TypeOf(object).String().\nfunc (w *WebService) TypeNameHandler(handler TypeNameHandleFunction) *WebService {\n\tw.typeNameHandleFunc = handler\n\treturn w\n}\n\n// reflectTypeName is the default TypeNameHandleFunction and for a given object\n// returns the name that Go identifies it with (e.g. \"string\" or \"v1.Object\") via\n// the reflection API.\nfunc reflectTypeName(sample interface{}) string {\n\treturn reflect.TypeOf(sample).String()\n}\n\n// compilePathExpression ensures that the path is compiled into a RegEx for those routers that need it.\nfunc (w *WebService) compilePathExpression() {\n\tcompiled, err := newPathExpression(w.rootPath)\n\tif err != nil {\n\t\tlog.Printf(\"invalid path:%s because:%v\", w.rootPath, err)\n\t\tos.Exit(1)\n\t}\n\tw.pathExpr = compiled\n}\n\n// ApiVersion sets the API version for documentation purposes.\nfunc (w *WebService) ApiVersion(apiVersion string) *WebService {\n\tw.apiVersion = apiVersion\n\treturn w\n}\n\n// Version returns the API version for documentation purposes.\nfunc (w *WebService) Version() string { return w.apiVersion }\n\n// Path specifies the root URL template path of the WebService.\n// All Routes will be relative to this path.\nfunc (w *WebService) Path(root string) *WebService {\n\tw.rootPath = root\n\tif len(w.rootPath) == 0 {\n\t\tw.rootPath = \"/\"\n\t}\n\tw.compilePathExpression()\n\treturn w\n}\n\n// Param adds a PathParameter to document parameters used in the root path.\nfunc (w *WebService) Param(parameter *Parameter) *WebService {\n\tif w.pathParameters == nil {\n\t\tw.pathParameters = []*Parameter{}\n\t}\n\tw.pathParameters = append(w.pathParameters, parameter)\n\treturn w\n}\n\n// PathParameter creates a new Parameter of kind Path for documentation purposes.\n// It is initialized as required with string as its DataType.\nfunc (w *WebService) PathParameter(name, description string) *Parameter {\n\treturn PathParameter(name, description)\n}\n\n// PathParameter creates a new Parameter of kind Path for documentation purposes.\n// It is initialized as required with string as its DataType.\nfunc PathParameter(name, description string) *Parameter {\n\tp := &Parameter{&ParameterData{Name: name, Description: description, Required: true, DataType: \"string\"}}\n\tp.bePath()\n\treturn p\n}\n\n// QueryParameter creates a new Parameter of kind Query for documentation purposes.\n// It is initialized as not required with string as its DataType.\nfunc (w *WebService) QueryParameter(name, description string) *Parameter {\n\treturn QueryParameter(name, description)\n}\n\n// QueryParameter creates a new Parameter of kind Query for documentation purposes.\n// It is initialized as not required with string as its DataType.\nfunc QueryParameter(name, description string) *Parameter {\n\tp := &Parameter{&ParameterData{Name: name, Description: description, Required: false, DataType: \"string\", CollectionFormat: CollectionFormatCSV.String()}}\n\tp.beQuery()\n\treturn p\n}\n\n// BodyParameter creates a new Parameter of kind Body for documentation purposes.\n// It is initialized as required without a DataType.\nfunc (w *WebService) BodyParameter(name, description string) *Parameter {\n\treturn BodyParameter(name, description)\n}\n\n// BodyParameter creates a new Parameter of kind Body for documentation purposes.\n// It is initialized as required without a DataType.\nfunc BodyParameter(name, description string) *Parameter {\n\tp := &Parameter{&ParameterData{Name: name, Description: description, Required: true}}\n\tp.beBody()\n\treturn p\n}\n\n// HeaderParameter creates a new Parameter of kind (Http) Header for documentation purposes.\n// It is initialized as not required with string as its DataType.\nfunc (w *WebService) HeaderParameter(name, description string) *Parameter {\n\treturn HeaderParameter(name, description)\n}\n\n// HeaderParameter creates a new Parameter of kind (Http) Header for documentation purposes.\n// It is initialized as not required with string as its DataType.\nfunc HeaderParameter(name, description string) *Parameter {\n\tp := &Parameter{&ParameterData{Name: name, Description: description, Required: false, DataType: \"string\"}}\n\tp.beHeader()\n\treturn p\n}\n\n// FormParameter creates a new Parameter of kind Form (using application/x-www-form-urlencoded) for documentation purposes.\n// It is initialized as required with string as its DataType.\nfunc (w *WebService) FormParameter(name, description string) *Parameter {\n\treturn FormParameter(name, description)\n}\n\n// FormParameter creates a new Parameter of kind Form (using application/x-www-form-urlencoded) for documentation purposes.\n// It is initialized as required with string as its DataType.\nfunc FormParameter(name, description string) *Parameter {\n\tp := &Parameter{&ParameterData{Name: name, Description: description, Required: false, DataType: \"string\"}}\n\tp.beForm()\n\treturn p\n}\n\n// MultiPartFormParameter creates a new Parameter of kind Form (using multipart/form-data) for documentation purposes.\n// It is initialized as required with string as its DataType.\nfunc (w *WebService) MultiPartFormParameter(name, description string) *Parameter {\n\treturn MultiPartFormParameter(name, description)\n}\n\nfunc MultiPartFormParameter(name, description string) *Parameter {\n\tp := &Parameter{&ParameterData{Name: name, Description: description, Required: false, DataType: \"string\"}}\n\tp.beMultiPartForm()\n\treturn p\n}\n\n// Route creates a new Route using the RouteBuilder and add to the ordered list of Routes.\nfunc (w *WebService) Route(builder *RouteBuilder) *WebService {\n\tw.routesLock.Lock()\n\tdefer w.routesLock.Unlock()\n\tbuilder.copyDefaults(w.produces, w.consumes)\n\tw.routes = append(w.routes, builder.Build())\n\treturn w\n}\n\n// RemoveRoute removes the specified route, looks for something that matches 'path' and 'method'\nfunc (w *WebService) RemoveRoute(path, method string) error {\n    if !w.dynamicRoutes {\n        return errors.New(\"dynamic routes are not enabled.\")\n    }\n    w.routesLock.Lock()\n    defer w.routesLock.Unlock()\n    newRoutes := []Route{}\n    for _, route := range w.routes {\n        if route.Method == method && route.Path == path {\n            continue\n        }\n        newRoutes = append(newRoutes, route)\n    }\n    w.routes = newRoutes\n    return nil\n}\n\n// Method creates a new RouteBuilder and initialize its http method\nfunc (w *WebService) Method(httpMethod string) *RouteBuilder {\n\treturn new(RouteBuilder).typeNameHandler(w.typeNameHandleFunc).servicePath(w.rootPath).Method(httpMethod)\n}\n\n// Produces specifies that this WebService can produce one or more MIME types.\n// Http requests must have one of these values set for the Accept header.\nfunc (w *WebService) Produces(contentTypes ...string) *WebService {\n\tw.produces = contentTypes\n\treturn w\n}\n\n// Consumes specifies that this WebService can consume one or more MIME types.\n// Http requests must have one of these values set for the Content-Type header.\nfunc (w *WebService) Consumes(accepts ...string) *WebService {\n\tw.consumes = accepts\n\treturn w\n}\n\n// Routes returns the Routes associated with this WebService\nfunc (w *WebService) Routes() []Route {\n\tif !w.dynamicRoutes {\n\t\treturn w.routes\n\t}\n\t// Make a copy of the array to prevent concurrency problems\n\tw.routesLock.RLock()\n\tdefer w.routesLock.RUnlock()\n\tresult := make([]Route, len(w.routes))\n\tfor ix := range w.routes {\n\t\tresult[ix] = w.routes[ix]\n\t}\n\treturn result\n}\n\n// RootPath returns the RootPath associated with this WebService. Default \"/\"\nfunc (w *WebService) RootPath() string {\n\treturn w.rootPath\n}\n\n// PathParameters return the path parameter names for (shared among its Routes)\nfunc (w *WebService) PathParameters() []*Parameter {\n\treturn w.pathParameters\n}\n\n// Filter adds a filter function to the chain of filters applicable to all its Routes\nfunc (w *WebService) Filter(filter FilterFunction) *WebService {\n\tw.filters = append(w.filters, filter)\n\treturn w\n}\n\n// Doc is used to set the documentation of this service.\nfunc (w *WebService) Doc(plainText string) *WebService {\n\tw.documentation = plainText\n\treturn w\n}\n\n// Documentation returns it.\nfunc (w *WebService) Documentation() string {\n\treturn w.documentation\n}\n\n/*\n\tConvenience methods\n*/\n\n// HEAD is a shortcut for .Method(\"HEAD\").Path(subPath)\nfunc (w *WebService) HEAD(subPath string) *RouteBuilder {\n\treturn new(RouteBuilder).typeNameHandler(w.typeNameHandleFunc).servicePath(w.rootPath).Method(\"HEAD\").Path(subPath)\n}\n\n// GET is a shortcut for .Method(\"GET\").Path(subPath)\nfunc (w *WebService) GET(subPath string) *RouteBuilder {\n\treturn new(RouteBuilder).typeNameHandler(w.typeNameHandleFunc).servicePath(w.rootPath).Method(\"GET\").Path(subPath)\n}\n\n// POST is a shortcut for .Method(\"POST\").Path(subPath)\nfunc (w *WebService) POST(subPath string) *RouteBuilder {\n\treturn new(RouteBuilder).typeNameHandler(w.typeNameHandleFunc).servicePath(w.rootPath).Method(\"POST\").Path(subPath)\n}\n\n// PUT is a shortcut for .Method(\"PUT\").Path(subPath)\nfunc (w *WebService) PUT(subPath string) *RouteBuilder {\n\treturn new(RouteBuilder).typeNameHandler(w.typeNameHandleFunc).servicePath(w.rootPath).Method(\"PUT\").Path(subPath)\n}\n\n// PATCH is a shortcut for .Method(\"PATCH\").Path(subPath)\nfunc (w *WebService) PATCH(subPath string) *RouteBuilder {\n\treturn new(RouteBuilder).typeNameHandler(w.typeNameHandleFunc).servicePath(w.rootPath).Method(\"PATCH\").Path(subPath)\n}\n\n// DELETE is a shortcut for .Method(\"DELETE\").Path(subPath)\nfunc (w *WebService) DELETE(subPath string) *RouteBuilder {\n\treturn new(RouteBuilder).typeNameHandler(w.typeNameHandleFunc).servicePath(w.rootPath).Method(\"DELETE\").Path(subPath)\n}\n\n// OPTIONS is a shortcut for .Method(\"OPTIONS\").Path(subPath)\nfunc (w *WebService) OPTIONS(subPath string) *RouteBuilder {\n\treturn new(RouteBuilder).typeNameHandler(w.typeNameHandleFunc).servicePath(w.rootPath).Method(\"OPTIONS\").Path(subPath)\n}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/web_service_container.go",
    "content": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a license\n// that can be found in the LICENSE file.\n\nimport (\n\t\"net/http\"\n)\n\n// DefaultContainer is a restful.Container that uses http.DefaultServeMux\nvar DefaultContainer *Container\n\nfunc init() {\n\tDefaultContainer = NewContainer()\n\tDefaultContainer.ServeMux = http.DefaultServeMux\n}\n\n// If set the true then panics will not be caught to return HTTP 500.\n// In that case, Route functions are responsible for handling any error situation.\n// Default value is false = recover from panics. This has performance implications.\n// OBSOLETE ; use restful.DefaultContainer.DoNotRecover(true)\nvar DoNotRecover = false\n\n// Add registers a new WebService add it to the DefaultContainer.\nfunc Add(service *WebService) {\n\tDefaultContainer.Add(service)\n}\n\n// Filter appends a container FilterFunction from the DefaultContainer.\n// These are called before dispatching a http.Request to a WebService.\nfunc Filter(filter FilterFunction) {\n\tDefaultContainer.Filter(filter)\n}\n\n// RegisteredWebServices returns the collections of WebServices from the DefaultContainer\nfunc RegisteredWebServices() []*WebService {\n\treturn DefaultContainer.RegisteredWebServices()\n}\n"
  },
  {
    "path": "vendor/github.com/fxamacker/cbor/v2/.gitignore",
    "content": "# Binaries for programs and plugins\n*.exe\n*.exe~\n*.dll\n*.so\n*.dylib\n\n# Test binary, build with `go test -c`\n*.test\n\n# Output of the go coverage tool, specifically when used with LiteIDE\n*.out\n"
  },
  {
    "path": "vendor/github.com/fxamacker/cbor/v2/.golangci.yml",
    "content": "# Do not delete linter settings. Linters like gocritic can be enabled on the command line.\n\nlinters-settings:\n  depguard:\n    rules:\n      prevent_unmaintained_packages:\n        list-mode: strict\n        files:\n          - $all\n          - \"!$test\"\n        allow:\n          - $gostd\n          - github.com/x448/float16\n        deny:\n          - pkg: io/ioutil\n            desc: \"replaced by io and os packages since Go 1.16: https://tip.golang.org/doc/go1.16#ioutil\"\n  dupl:\n    threshold: 100\n  funlen:\n    lines: 100\n    statements: 50\n  goconst:\n    ignore-tests: true\n    min-len: 2\n    min-occurrences: 3\n  gocritic:\n    enabled-tags:\n      - diagnostic\n      - experimental\n      - opinionated\n      - performance\n      - style\n    disabled-checks:\n      - commentedOutCode\n      - dupImport # https://github.com/go-critic/go-critic/issues/845\n      - ifElseChain\n      - octalLiteral\n      - paramTypeCombine\n      - whyNoLint\n  gofmt:\n    simplify: false\n  goimports:\n    local-prefixes: github.com/fxamacker/cbor\n  golint:\n    min-confidence: 0\n  govet:\n    check-shadowing: true\n  lll:\n    line-length: 140\n  maligned:\n    suggest-new: true\n  misspell:\n    locale: US\n  staticcheck:\n    checks: [\"all\"]\n\nlinters:\n  disable-all: true\n  enable:\n    - asciicheck\n    - bidichk\n    - depguard\n    - errcheck\n    - exportloopref\n    - goconst\n    - gocritic\n    - gocyclo\n    - gofmt\n    - goimports\n    - goprintffuncname\n    - gosec\n    - gosimple\n    - govet\n    - ineffassign\n    - misspell\n    - nilerr\n    - revive\n    - staticcheck\n    - stylecheck\n    - typecheck\n    - unconvert\n    - unused\n\nissues:\n  # max-issues-per-linter default is 50.  Set to 0 to disable limit.\n  max-issues-per-linter: 0\n  # max-same-issues default is 3.  Set to 0 to disable limit.\n  max-same-issues: 0\n\n  exclude-rules:\n    - path: decode.go\n      text: \"string ` overflows ` has (\\\\d+) occurrences, make it a constant\"\n    - path: decode.go\n      text: \"string ` \\\\(range is \\\\[` has (\\\\d+) occurrences, make it a constant\"\n    - path: decode.go\n      text: \"string `, ` has (\\\\d+) occurrences, make it a constant\"\n    - path: decode.go\n      text: \"string ` overflows Go's int64` has (\\\\d+) occurrences, make it a constant\"\n    - path: decode.go\n      text: \"string `\\\\]\\\\)` has (\\\\d+) occurrences, make it a constant\"\n    - path: valid.go\n      text: \"string ` for type ` has (\\\\d+) occurrences, make it a constant\"\n    - path: valid.go\n      text: \"string `cbor: ` has (\\\\d+) occurrences, make it a constant\"\n"
  },
  {
    "path": "vendor/github.com/fxamacker/cbor/v2/CODE_OF_CONDUCT.md",
    "content": "\n# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nWe as members, contributors, and leaders pledge to make participation in our\ncommunity a harassment-free experience for everyone, regardless of age, body\nsize, visible or invisible disability, ethnicity, sex characteristics, gender\nidentity and expression, level of experience, education, socio-economic status,\nnationality, personal appearance, race, caste, color, religion, or sexual\nidentity and orientation.\n\nWe pledge to act and interact in ways that contribute to an open, welcoming,\ndiverse, inclusive, and healthy community.\n\n## Our Standards\n\nExamples of behavior that contributes to a positive environment for our\ncommunity include:\n\n* Demonstrating empathy and kindness toward other people\n* Being respectful of differing opinions, viewpoints, and experiences\n* Giving and gracefully accepting constructive feedback\n* Accepting responsibility and apologizing to those affected by our mistakes,\n  and learning from the experience\n* Focusing on what is best not just for us as individuals, but for the overall\n  community\n\nExamples of unacceptable behavior include:\n\n* The use of sexualized language or imagery, and sexual attention or advances of\n  any kind\n* Trolling, insulting or derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or email address,\n  without their explicit permission\n* Other conduct which could reasonably be considered inappropriate in a\n  professional setting\n\n## Enforcement Responsibilities\n\nCommunity leaders are responsible for clarifying and enforcing our standards of\nacceptable behavior and will take appropriate and fair corrective action in\nresponse to any behavior that they deem inappropriate, threatening, offensive,\nor harmful.\n\nCommunity leaders have the right and responsibility to remove, edit, or reject\ncomments, commits, code, wiki edits, issues, and other contributions that are\nnot aligned to this Code of Conduct, and will communicate reasons for moderation\ndecisions when appropriate.\n\n## Scope\n\nThis Code of Conduct applies within all community spaces, and also applies when\nan individual is officially representing the community in public spaces.\nExamples of representing our community include using an official e-mail address,\nposting via an official social media account, or acting as an appointed\nrepresentative at an online or offline event.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be\nreported to the community leaders responsible for enforcement at\nfaye.github@gmail.com.\nAll complaints will be reviewed and investigated promptly and fairly.\n\nAll community leaders are obligated to respect the privacy and security of the\nreporter of any incident.\n\n## Enforcement Guidelines\n\nCommunity leaders will follow these Community Impact Guidelines in determining\nthe consequences for any action they deem in violation of this Code of Conduct:\n\n### 1. Correction\n\n**Community Impact**: Use of inappropriate language or other behavior deemed\nunprofessional or unwelcome in the community.\n\n**Consequence**: A private, written warning from community leaders, providing\nclarity around the nature of the violation and an explanation of why the\nbehavior was inappropriate. A public apology may be requested.\n\n### 2. Warning\n\n**Community Impact**: A violation through a single incident or series of\nactions.\n\n**Consequence**: A warning with consequences for continued behavior. No\ninteraction with the people involved, including unsolicited interaction with\nthose enforcing the Code of Conduct, for a specified period of time. This\nincludes avoiding interactions in community spaces as well as external channels\nlike social media. Violating these terms may lead to a temporary or permanent\nban.\n\n### 3. Temporary Ban\n\n**Community Impact**: A serious violation of community standards, including\nsustained inappropriate behavior.\n\n**Consequence**: A temporary ban from any sort of interaction or public\ncommunication with the community for a specified period of time. No public or\nprivate interaction with the people involved, including unsolicited interaction\nwith those enforcing the Code of Conduct, is allowed during this period.\nViolating these terms may lead to a permanent ban.\n\n### 4. Permanent Ban\n\n**Community Impact**: Demonstrating a pattern of violation of community\nstandards, including sustained inappropriate behavior, harassment of an\nindividual, or aggression toward or disparagement of classes of individuals.\n\n**Consequence**: A permanent ban from any sort of public interaction within the\ncommunity.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant][homepage],\nversion 2.1, available at\n[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].\n\nCommunity Impact Guidelines were inspired by\n[Mozilla's code of conduct enforcement ladder][Mozilla CoC].\n\nFor answers to common questions about this code of conduct, see the FAQ at\n[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at\n[https://www.contributor-covenant.org/translations][translations].\n\n[homepage]: https://www.contributor-covenant.org\n[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html\n[Mozilla CoC]: https://github.com/mozilla/diversity\n[FAQ]: https://www.contributor-covenant.org/faq\n[translations]: https://www.contributor-covenant.org/translations\n"
  },
  {
    "path": "vendor/github.com/fxamacker/cbor/v2/CONTRIBUTING.md",
    "content": "# How to contribute\n\nYou can contribute by using the library, opening issues, or opening pull requests.\n\n## Bug reports and security vulnerabilities\n\nMost issues are tracked publicly on [GitHub](https://github.com/fxamacker/cbor/issues). \n\nTo report security vulnerabilities, please email faye.github@gmail.com and allow time for the problem to be resolved before disclosing it to the public.  For more info, see [Security Policy](https://github.com/fxamacker/cbor#security-policy).\n\nPlease do not send data that might contain personally identifiable information, even if you think you have permission.  That type of support requires payment and a signed contract where I'm indemnified, held harmless, and defended by you for any data you send to me.\n\n## Pull requests\n\nPlease [create an issue](https://github.com/fxamacker/cbor/issues/new/choose) before you begin work on a PR.  The improvement may have already been considered, etc.\n\nPull requests have signing requirements and must not be anonymous.  Exceptions are usually made for docs and CI scripts.\n\nSee the [Pull Request Template](https://github.com/fxamacker/cbor/blob/master/.github/pull_request_template.md) for details.\n\nPull requests have a greater chance of being approved if:\n- it does not reduce speed, increase memory use, reduce security, etc. for people not using the new option or feature.\n- it has > 97% code coverage.\n\n## Describe your issue\n\nClearly describe the issue:\n* If it's a bug, please provide: **version of this library** and **Go** (`go version`), **unmodified error message**, and describe **how to reproduce it**.  Also state **what you expected to happen** instead of the error.\n* If you propose a change or addition, try to give an example how the improved code could look like or how to use it.\n* If you found a compilation error, please confirm you're using a supported version of Go. If you are, then provide the output of `go version` first, followed by the complete error message.\n\n## Please don't\n\nPlease don't send data containing personally identifiable information, even if you think you have permission.  That type of support requires payment and a contract where I'm indemnified, held harmless, and defended for any data you send to me.\n\nPlease don't send CBOR data larger than 1024 bytes by email. If you want to send crash-producing CBOR data > 1024 bytes by email, please get my permission before sending it to me.\n\n## Credits\n\n- This guide used nlohmann/json contribution guidelines for inspiration as suggested in issue #22.\n- Special thanks to @lukseven for pointing out the contribution guidelines didn't mention signing requirements.\n"
  },
  {
    "path": "vendor/github.com/fxamacker/cbor/v2/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2019-present Faye Amacker\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE."
  },
  {
    "path": "vendor/github.com/fxamacker/cbor/v2/README.md",
    "content": "# CBOR Codec in Go\n\n<!-- [![](https://github.com/fxamacker/images/raw/master/cbor/v2.5.0/fxamacker_cbor_banner.png)](#cbor-library-in-go) -->\n\n[fxamacker/cbor](https://github.com/fxamacker/cbor) is a library for encoding and decoding [CBOR](https://www.rfc-editor.org/info/std94) and [CBOR Sequences](https://www.rfc-editor.org/rfc/rfc8742.html).\n\nCBOR is a [trusted alternative](https://www.rfc-editor.org/rfc/rfc8949.html#name-comparison-of-other-binary-) to JSON, MessagePack, Protocol Buffers, etc.&nbsp; CBOR is an Internet&nbsp;Standard defined by [IETF&nbsp;STD&nbsp;94 (RFC&nbsp;8949)](https://www.rfc-editor.org/info/std94) and is designed to be relevant for decades.\n\n`fxamacker/cbor` is used in projects by Arm Ltd., Cisco, EdgeX&nbsp;Foundry, Flow Foundation, Fraunhofer&#8209;AISEC, Kubernetes, Let's&nbsp;Encrypt (ISRG), Linux&nbsp;Foundation, Microsoft, Mozilla, Oasis&nbsp;Protocol, Tailscale, Teleport, [etc](https://github.com/fxamacker/cbor#who-uses-fxamackercbor).\n\nSee [Quick&nbsp;Start](#quick-start) and [Releases](https://github.com/fxamacker/cbor/releases/).  🆕 `UnmarshalFirst` and `DiagnoseFirst` can decode CBOR Sequences.  `cbor.MarshalToBuffer()` and `UserBufferEncMode` accepts user-specified buffer.\n\n## fxamacker/cbor\n\n[![](https://github.com/fxamacker/cbor/workflows/ci/badge.svg)](https://github.com/fxamacker/cbor/actions?query=workflow%3Aci)\n[![](https://github.com/fxamacker/cbor/workflows/cover%20%E2%89%A596%25/badge.svg)](https://github.com/fxamacker/cbor/actions?query=workflow%3A%22cover+%E2%89%A596%25%22)\n[![CodeQL](https://github.com/fxamacker/cbor/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/fxamacker/cbor/actions/workflows/codeql-analysis.yml)\n[![](https://img.shields.io/badge/fuzzing-passing-44c010)](#fuzzing-and-code-coverage)\n[![Go Report Card](https://goreportcard.com/badge/github.com/fxamacker/cbor)](https://goreportcard.com/report/github.com/fxamacker/cbor)\n\n`fxamacker/cbor` is a CBOR codec in full conformance with [IETF STD&nbsp;94 (RFC&nbsp;8949)](https://www.rfc-editor.org/info/std94). It also supports CBOR Sequences ([RFC&nbsp;8742](https://www.rfc-editor.org/rfc/rfc8742.html)) and Extended Diagnostic Notation ([Appendix G of RFC&nbsp;8610](https://www.rfc-editor.org/rfc/rfc8610.html#appendix-G)).\n\nFeatures include full support for CBOR tags, [Core Deterministic Encoding](https://www.rfc-editor.org/rfc/rfc8949.html#name-core-deterministic-encoding), duplicate map key detection, etc.\n\nDesign balances trade-offs between security, speed, concurrency, encoded data size, usability, etc.\n\n<details><summary>Highlights</summary><p/>\n\n__🚀&nbsp; Speed__\n\nEncoding and decoding is fast without using Go's `unsafe` package.  Slower settings are opt-in.  Default limits allow very fast and memory efficient rejection of malformed CBOR data.\n\n__🔒&nbsp; Security__\n\nDecoder has configurable limits that defend against malicious inputs.  Duplicate map key detection is supported.  By contrast, `encoding/gob` is [not designed to be hardened against adversarial inputs](https://pkg.go.dev/encoding/gob#hdr-Security).\n\nCodec passed multiple confidential security assessments in 2022.  No vulnerabilities found in subset of codec in a [nonconfidential security assessment](https://github.com/veraison/go-cose/blob/v1.0.0-rc.1/reports/NCC_Microsoft-go-cose-Report_2022-05-26_v1.0.pdf) prepared by NCC&nbsp;Group for Microsoft&nbsp;Corporation.\n\n__🗜️&nbsp; Data Size__\n\nStruct tags (`toarray`, `keyasint`, `omitempty`) automatically reduce size of encoded structs. Encoding optionally shrinks float64→32→16 when values fit.\n\n__:jigsaw:&nbsp; Usability__\n\nAPI is mostly same as `encoding/json` plus interfaces that simplify concurrency for CBOR options.  Encoding and decoding modes can be created at startup and reused by any goroutines.\n\nPresets include Core Deterministic Encoding, Preferred Serialization, CTAP2 Canonical CBOR, etc.\n\n__📆&nbsp;  Extensibility__\n\nFeatures include CBOR [extension points](https://www.rfc-editor.org/rfc/rfc8949.html#section-7.1) (e.g. CBOR tags) and extensive settings.  API has interfaces that allow users to create custom encoding and decoding without modifying this library.\n\n<hr/>\n\n</details>\n\n### Secure Decoding with Configurable Settings\n\n`fxamacker/cbor` has configurable limits, etc. that defend against malicious CBOR data.\n\nBy contrast, `encoding/gob` is [not designed to be hardened against adversarial inputs](https://pkg.go.dev/encoding/gob#hdr-Security).\n\n<details><summary>Example decoding with encoding/gob 💥 fatal error (out of memory)</summary><p/>\n\n```Go\n// Example of encoding/gob having \"fatal error: runtime: out of memory\"\n// while decoding 181 bytes.\npackage main\nimport (\n\t\"bytes\"\n\t\"encoding/gob\"\n\t\"encoding/hex\"\n\t\"fmt\"\n)\n\n// Example data is from https://github.com/golang/go/issues/24446\n// (shortened to 181 bytes).\nconst data = \"4dffb503010102303001ff30000109010130010800010130010800010130\" +\n\t\"01ffb80001014a01ffb60001014b01ff860001013001ff860001013001ff\" +\n\t\"860001013001ff860001013001ffb80000001eff850401010e3030303030\" +\n\t\"30303030303030303001ff3000010c0104000016ffb70201010830303030\" +\n\t\"3030303001ff3000010c000030ffb6040405fcff00303030303030303030\" +\n\t\"303030303030303030303030303030303030303030303030303030303030\" +\n\t\"30\"\n\ntype X struct {\n\tJ *X\n\tK map[string]int\n}\n\nfunc main() {\n\traw, _ := hex.DecodeString(data)\n\tdecoder := gob.NewDecoder(bytes.NewReader(raw))\n\n\tvar x X\n\tdecoder.Decode(&x) // fatal error: runtime: out of memory\n\tfmt.Println(\"Decoding finished.\")\n}\n```\n\n<hr/>\n\n</details>\n\n`fxamacker/cbor` is fast at rejecting malformed CBOR data.  E.g. attempts to  \ndecode 10 bytes of malicious CBOR data to `[]byte` (with default settings):\n\n| Codec | Speed (ns/op) | Memory | Allocs |\n| :---- | ------------: | -----: | -----: |\n| fxamacker/cbor 2.5.0 | 44 ± 5% | 32 B/op | 2 allocs/op |\n| ugorji/go 1.2.11 | 5353261 ± 4% | 67111321 B/op |  13 allocs/op |\n\n<details><summary>Benchmark details</summary><p/>\n\nLatest comparison used:\n- Input: `[]byte{0x9B, 0x00, 0x00, 0x42, 0xFA, 0x42, 0xFA, 0x42, 0xFA, 0x42}`\n- go1.19.10, linux/amd64, i5-13600K (disabled all e-cores, DDR4 @2933)\n- go test -bench=. -benchmem -count=20\n\n#### Prior comparisons\n\n| Codec | Speed (ns/op) | Memory | Allocs |\n| :---- | ------------: | -----: | -----: |\n| fxamacker/cbor 2.5.0-beta2 | 44.33 ± 2% | 32 B/op | 2 allocs/op |\n| fxamacker/cbor 0.1.0 - 2.4.0 | ~44.68 ± 6% | 32 B/op |  2 allocs/op |\n| ugorji/go 1.2.10 | 5524792.50 ± 3% | 67110491 B/op |  12 allocs/op |\n| ugorji/go 1.1.0 - 1.2.6 | 💥 runtime: | out of memory: | cannot allocate |\n\n- Input: `[]byte{0x9B, 0x00, 0x00, 0x42, 0xFA, 0x42, 0xFA, 0x42, 0xFA, 0x42}`\n- go1.19.6, linux/amd64, i5-13600K (DDR4)\n- go test -bench=. -benchmem -count=20\n\n<hr/>\n\n</details>\n\n### Smaller Encodings with Struct Tags\n\nStruct tags (`toarray`, `keyasint`, `omitempty`) reduce encoded size of structs.\n\n<details><summary>Example encoding 3-level nested Go struct to 1 byte CBOR</summary><p/>\n\nhttps://go.dev/play/p/YxwvfPdFQG2\n\n```Go\n// Example encoding nested struct (with omitempty tag)\n// - encoding/json:  18 byte JSON\n// - fxamacker/cbor:  1 byte CBOR\npackage main\n\nimport (\n\t\"encoding/hex\"\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"github.com/fxamacker/cbor/v2\"\n)\n\ntype GrandChild struct {\n\tQuux int `json:\",omitempty\"`\n}\n\ntype Child struct {\n\tBaz int        `json:\",omitempty\"`\n\tQux GrandChild `json:\",omitempty\"`\n}\n\ntype Parent struct {\n\tFoo Child `json:\",omitempty\"`\n\tBar int   `json:\",omitempty\"`\n}\n\nfunc cb() {\n\tresults, _ := cbor.Marshal(Parent{})\n\tfmt.Println(\"hex(CBOR): \" + hex.EncodeToString(results))\n\n\ttext, _ := cbor.Diagnose(results) // Diagnostic Notation\n\tfmt.Println(\"DN: \" + text)\n}\n\nfunc js() {\n\tresults, _ := json.Marshal(Parent{})\n\tfmt.Println(\"hex(JSON): \" + hex.EncodeToString(results))\n\n\ttext := string(results) // JSON\n\tfmt.Println(\"JSON: \" + text)\n}\n\nfunc main() {\n\tcb()\n\tfmt.Println(\"-------------\")\n\tjs()\n}\n```\n\nOutput (DN is Diagnostic Notation):\n```\nhex(CBOR): a0\nDN: {}\n-------------\nhex(JSON): 7b22466f6f223a7b22517578223a7b7d7d7d\nJSON: {\"Foo\":{\"Qux\":{}}}\n```\n\n<hr/>\n\n</details>\n\nExample using different struct tags together:\n\n![alt text](https://github.com/fxamacker/images/raw/master/cbor/v2.3.0/cbor_struct_tags_api.svg?sanitize=1 \"CBOR API and Go Struct Tags\")\n\nAPI is mostly same as `encoding/json`, plus interfaces that simplify concurrency for CBOR options.\n\n## Quick Start\n\n__Install__: `go get github.com/fxamacker/cbor/v2` and `import \"github.com/fxamacker/cbor/v2\"`.\n\n### Key Points\n\nThis library can encode and decode CBOR (RFC 8949) and CBOR Sequences (RFC 8742).\n\n- __CBOR data item__ is a single piece of CBOR data and its structure may contain 0 or more nested data items.\n- __CBOR sequence__ is a concatenation of 0 or more encoded CBOR data items.\n\nConfigurable limits and options can be used to balance trade-offs.\n\n- Encoding and decoding modes are created from options (settings).\n- Modes can be created at startup and reused.\n- Modes are safe for concurrent use.\n\n### Default Mode\n\nPackage level functions only use this library's default settings.  \nThey provide the \"default mode\" of encoding and decoding.\n\n```go\n// API matches encoding/json for Marshal, Unmarshal, Encode, Decode, etc.\nb, err = cbor.Marshal(v)        // encode v to []byte b\nerr = cbor.Unmarshal(b, &v)     // decode []byte b to v\ndecoder = cbor.NewDecoder(r)    // create decoder with io.Reader r\nerr = decoder.Decode(&v)        // decode a CBOR data item to v\n\n// v2.7.0 added MarshalToBuffer() and UserBufferEncMode interface.\nerr = cbor.MarshalToBuffer(v, b) // encode v to b instead of using built-in buf pool.\n\n// v2.5.0 added new functions that return remaining bytes.\n\n// UnmarshalFirst decodes first CBOR data item and returns remaining bytes.\nrest, err = cbor.UnmarshalFirst(b, &v)   // decode []byte b to v\n\n// DiagnoseFirst translates first CBOR data item to text and returns remaining bytes.\ntext, rest, err = cbor.DiagnoseFirst(b)  // decode []byte b to Diagnostic Notation text\n\n// NOTE: Unmarshal returns ExtraneousDataError if there are remaining bytes,\n// but new funcs UnmarshalFirst and DiagnoseFirst do not.\n```\n\n__IMPORTANT__: 👉  CBOR settings allow trade-offs between speed, security, encoding size, etc.\n\n- Different CBOR libraries may use different default settings.\n- CBOR-based formats or protocols usually require specific settings.\n\nFor example, WebAuthn uses \"CTAP2 Canonical CBOR\" which is available as a preset.\n\n### Presets\n\nPresets can be used as-is or as a starting point for custom settings.\n\n```go\n// EncOptions is a struct of encoder settings.\nfunc CoreDetEncOptions() EncOptions              // RFC 8949 Core Deterministic Encoding\nfunc PreferredUnsortedEncOptions() EncOptions    // RFC 8949 Preferred Serialization\nfunc CanonicalEncOptions() EncOptions            // RFC 7049 Canonical CBOR\nfunc CTAP2EncOptions() EncOptions                // FIDO2 CTAP2 Canonical CBOR\n```\n\nPresets are used to create custom modes.\n\n### Custom Modes\n\nModes are created from settings. Once created, modes have immutable settings.\n\n💡 Create the mode at startup and reuse it. It is safe for concurrent use.\n\n```Go\n// Create encoding mode.\nopts := cbor.CoreDetEncOptions()   // use preset options as a starting point\nopts.Time = cbor.TimeUnix          // change any settings if needed\nem, err := opts.EncMode()          // create an immutable encoding mode\n\n// Reuse the encoding mode. It is safe for concurrent use.\n\n// API matches encoding/json.\nb, err := em.Marshal(v)            // encode v to []byte b\nencoder := em.NewEncoder(w)        // create encoder with io.Writer w\nerr := encoder.Encode(v)           // encode v to io.Writer w\n```\n\nDefault mode and custom modes automatically apply struct tags.\n\n### User Specified Buffer for Encoding (v2.7.0)\n\n`UserBufferEncMode` interface extends `EncMode` interface to add `MarshalToBuffer()`. It accepts a user-specified buffer instead of using built-in buffer pool.\n\n```Go\nem, err := myEncOptions.UserBufferEncMode() // create UserBufferEncMode mode\n\nvar buf bytes.Buffer\nerr = em.MarshalToBuffer(v, &buf) // encode v to provided buf\n```\n\n### Struct Tags\n\nStruct tags (`toarray`, `keyasint`, `omitempty`) reduce encoded size of structs.\n\n<details><summary>Example encoding 3-level nested Go struct to 1 byte CBOR</summary><p/>\n\nhttps://go.dev/play/p/YxwvfPdFQG2\n\n```Go\n// Example encoding nested struct (with omitempty tag)\n// - encoding/json:  18 byte JSON\n// - fxamacker/cbor:  1 byte CBOR\npackage main\n\nimport (\n\t\"encoding/hex\"\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"github.com/fxamacker/cbor/v2\"\n)\n\ntype GrandChild struct {\n\tQuux int `json:\",omitempty\"`\n}\n\ntype Child struct {\n\tBaz int        `json:\",omitempty\"`\n\tQux GrandChild `json:\",omitempty\"`\n}\n\ntype Parent struct {\n\tFoo Child `json:\",omitempty\"`\n\tBar int   `json:\",omitempty\"`\n}\n\nfunc cb() {\n\tresults, _ := cbor.Marshal(Parent{})\n\tfmt.Println(\"hex(CBOR): \" + hex.EncodeToString(results))\n\n\ttext, _ := cbor.Diagnose(results) // Diagnostic Notation\n\tfmt.Println(\"DN: \" + text)\n}\n\nfunc js() {\n\tresults, _ := json.Marshal(Parent{})\n\tfmt.Println(\"hex(JSON): \" + hex.EncodeToString(results))\n\n\ttext := string(results) // JSON\n\tfmt.Println(\"JSON: \" + text)\n}\n\nfunc main() {\n\tcb()\n\tfmt.Println(\"-------------\")\n\tjs()\n}\n```\n\nOutput (DN is Diagnostic Notation):\n```\nhex(CBOR): a0\nDN: {}\n-------------\nhex(JSON): 7b22466f6f223a7b22517578223a7b7d7d7d\nJSON: {\"Foo\":{\"Qux\":{}}}\n```\n\n<hr/>\n\n</details>\n\n<details><summary>Example using several struct tags</summary><p/>\n\t\n![alt text](https://github.com/fxamacker/images/raw/master/cbor/v2.3.0/cbor_struct_tags_api.svg?sanitize=1 \"CBOR API and Go Struct Tags\")\n\n</details>\n\nStruct tags simplify use of CBOR-based protocols that require CBOR arrays or maps with integer keys.\n\n### CBOR Tags\n\nCBOR tags are specified in a `TagSet`.\n\nCustom modes can be created with a `TagSet` to handle CBOR tags.\n \n```go\nem, err := opts.EncMode()                  // no CBOR tags\nem, err := opts.EncModeWithTags(ts)        // immutable CBOR tags\nem, err := opts.EncModeWithSharedTags(ts)  // mutable shared CBOR tags\n```\n\n`TagSet` and modes using it are safe for concurrent use.  Equivalent API is available for `DecMode`.\n\n<details><summary>Example using TagSet and TagOptions</summary><p/>\n\n```go\n// Use signedCWT struct defined in \"Decoding CWT\" example.\n\n// Create TagSet (safe for concurrency).\ntags := cbor.NewTagSet()\n// Register tag COSE_Sign1 18 with signedCWT type.\ntags.Add(\t\n\tcbor.TagOptions{EncTag: cbor.EncTagRequired, DecTag: cbor.DecTagRequired}, \n\treflect.TypeOf(signedCWT{}), \n\t18)\n\n// Create DecMode with immutable tags.\ndm, _ := cbor.DecOptions{}.DecModeWithTags(tags)\n\n// Unmarshal to signedCWT with tag support.\nvar v signedCWT\nif err := dm.Unmarshal(data, &v); err != nil {\n\treturn err\n}\n\n// Create EncMode with immutable tags.\nem, _ := cbor.EncOptions{}.EncModeWithTags(tags)\n\n// Marshal signedCWT with tag number.\nif data, err := cbor.Marshal(v); err != nil {\n\treturn err\n}\n```\n\n</details>\n\n### Functions and Interfaces\n\n<details><summary>Functions and interfaces at a glance</summary><p/>\n\nCommon functions with same API as `encoding/json`:  \n- `Marshal`, `Unmarshal`\n- `NewEncoder`, `(*Encoder).Encode`\n- `NewDecoder`, `(*Decoder).Decode`\n\nNOTE: `Unmarshal` will return `ExtraneousDataError` if there are remaining bytes\nbecause RFC 8949 treats CBOR data item with remaining bytes as malformed.\n- 💡 Use `UnmarshalFirst` to decode first CBOR data item and return any remaining bytes.\n\nOther useful functions: \n- `Diagnose`, `DiagnoseFirst` produce human-readable [Extended Diagnostic Notation](https://www.rfc-editor.org/rfc/rfc8610.html#appendix-G) from CBOR data.\n- `UnmarshalFirst` decodes first CBOR data item and return any remaining bytes.\n- `Wellformed` returns true if the the CBOR data item is well-formed.\n\nInterfaces identical or comparable to Go `encoding` packages include:  \n`Marshaler`, `Unmarshaler`, `BinaryMarshaler`, and `BinaryUnmarshaler`.\n\nThe `RawMessage` type can be used to delay CBOR decoding or precompute CBOR encoding.\n\n</details>\n\n### Security Tips\n\n🔒 Use Go's `io.LimitReader` to limit size when decoding very large or indefinite size data.\n\nDefault limits may need to be increased for systems handling very large data (e.g. blockchains).\n\n`DecOptions` can be used to modify default limits for `MaxArrayElements`, `MaxMapPairs`, and `MaxNestedLevels`.\n\n## Status\n\nv2.7.0 (June 23, 2024) adds features and improvements that help large projects (e.g. Kubernetes) use CBOR as an alternative to JSON and Protocol Buffers. Other improvements include speedups, improved memory use, bug fixes, new serialization options, etc.   It passed fuzz tests (5+ billion executions) and is production quality.\n\nFor more details, see [release notes](https://github.com/fxamacker/cbor/releases).\n\n### Prior Release\n\n[v2.6.0](https://github.com/fxamacker/cbor/releases/tag/v2.6.0) (February 2024) adds important new features, optimizations, and bug fixes. It is especially useful to systems that need to convert data between CBOR and JSON.  New options and optimizations improve handling of bignum, integers, maps, and strings.\n\nv2.5.0 was released on Sunday, August 13, 2023 with new features and important bug fixes.  It is fuzz tested and production quality after extended beta [v2.5.0-beta](https://github.com/fxamacker/cbor/releases/tag/v2.5.0-beta) (Dec 2022) -> [v2.5.0](https://github.com/fxamacker/cbor/releases/tag/v2.5.0) (Aug 2023).\n\n__IMPORTANT__:  👉 Before upgrading from v2.4 or older release, please read the notable changes highlighted in the release notes.  v2.5.0 is a large release with bug fixes to error handling for extraneous data in `Unmarshal`, etc. that should be reviewed before upgrading.\n\nSee [v2.5.0 release notes](https://github.com/fxamacker/cbor/releases/tag/v2.5.0) for list of new features, improvements, and bug fixes.\n\nSee [\"Version and API Changes\"](https://github.com/fxamacker/cbor#versions-and-api-changes) section for more info about version numbering, etc.\n\n<!--\n<details><summary>👉 Benchmark Comparison: v2.4.0 vs v2.5.0</summary><p/>\n\nTODO: Update to v2.4.0 vs 2.5.0 (not beta2).\n\nComparison of v2.4.0 vs v2.5.0-beta2 provided by @448 (edited to fit width).\n\nPR [#382](https://github.com/fxamacker/cbor/pull/382) returns buffer to pool in `Encode()`. It adds a bit of overhead to `Encode()` but `NewEncoder().Encode()` is a lot faster and uses less memory as shown here:\n\n```\n$ benchstat bench-v2.4.0.log bench-f9e6291.log \ngoos: linux\ngoarch: amd64\npkg: github.com/fxamacker/cbor/v2\ncpu: 12th Gen Intel(R) Core(TM) i7-12700H\n                                                     │ bench-v2.4.0.log │  bench-f9e6291.log                  │\n                                                     │      sec/op      │   sec/op     vs base                │\nNewEncoderEncode/Go_bool_to_CBOR_bool-20                   236.70n ± 2%   58.04n ± 1%  -75.48% (p=0.000 n=10)\nNewEncoderEncode/Go_uint64_to_CBOR_positive_int-20         238.00n ± 2%   63.93n ± 1%  -73.14% (p=0.000 n=10)\nNewEncoderEncode/Go_int64_to_CBOR_negative_int-20          238.65n ± 2%   64.88n ± 1%  -72.81% (p=0.000 n=10)\nNewEncoderEncode/Go_float64_to_CBOR_float-20               242.00n ± 2%   63.00n ± 1%  -73.97% (p=0.000 n=10)\nNewEncoderEncode/Go_[]uint8_to_CBOR_bytes-20               245.60n ± 1%   68.55n ± 1%  -72.09% (p=0.000 n=10)\nNewEncoderEncode/Go_string_to_CBOR_text-20                 243.20n ± 3%   68.39n ± 1%  -71.88% (p=0.000 n=10)\nNewEncoderEncode/Go_[]int_to_CBOR_array-20                 563.0n ± 2%    378.3n ± 0%  -32.81% (p=0.000 n=10)\nNewEncoderEncode/Go_map[string]string_to_CBOR_map-20       2.043µ ± 2%    1.906µ ± 2%   -6.75% (p=0.000 n=10)\ngeomean                                                    349.7n         122.7n       -64.92%\n\n                                                     │ bench-v2.4.0.log │    bench-f9e6291.log                │\n                                                     │       B/op       │    B/op     vs base                 │\nNewEncoderEncode/Go_bool_to_CBOR_bool-20                     128.0 ± 0%     0.0 ± 0%  -100.00% (p=0.000 n=10)\nNewEncoderEncode/Go_uint64_to_CBOR_positive_int-20           128.0 ± 0%     0.0 ± 0%  -100.00% (p=0.000 n=10)\nNewEncoderEncode/Go_int64_to_CBOR_negative_int-20            128.0 ± 0%     0.0 ± 0%  -100.00% (p=0.000 n=10)\nNewEncoderEncode/Go_float64_to_CBOR_float-20                 128.0 ± 0%     0.0 ± 0%  -100.00% (p=0.000 n=10)\nNewEncoderEncode/Go_[]uint8_to_CBOR_bytes-20                 128.0 ± 0%     0.0 ± 0%  -100.00% (p=0.000 n=10)\nNewEncoderEncode/Go_string_to_CBOR_text-20                   128.0 ± 0%     0.0 ± 0%  -100.00% (p=0.000 n=10)\nNewEncoderEncode/Go_[]int_to_CBOR_array-20                   128.0 ± 0%     0.0 ± 0%  -100.00% (p=0.000 n=10)\nNewEncoderEncode/Go_map[string]string_to_CBOR_map-20         544.0 ± 0%   416.0 ± 0%   -23.53% (p=0.000 n=10)\ngeomean                                                      153.4                    ?                       ¹ ²\n¹ summaries must be >0 to compute geomean\n² ratios must be >0 to compute geomean\n\n                                                     │ bench-v2.4.0.log │    bench-f9e6291.log                │\n                                                     │    allocs/op     │ allocs/op   vs base                 │\nNewEncoderEncode/Go_bool_to_CBOR_bool-20                     2.000 ± 0%   0.000 ± 0%  -100.00% (p=0.000 n=10)\nNewEncoderEncode/Go_uint64_to_CBOR_positive_int-20           2.000 ± 0%   0.000 ± 0%  -100.00% (p=0.000 n=10)\nNewEncoderEncode/Go_int64_to_CBOR_negative_int-20            2.000 ± 0%   0.000 ± 0%  -100.00% (p=0.000 n=10)\nNewEncoderEncode/Go_float64_to_CBOR_float-20                 2.000 ± 0%   0.000 ± 0%  -100.00% (p=0.000 n=10)\nNewEncoderEncode/Go_[]uint8_to_CBOR_bytes-20                 2.000 ± 0%   0.000 ± 0%  -100.00% (p=0.000 n=10)\nNewEncoderEncode/Go_string_to_CBOR_text-20                   2.000 ± 0%   0.000 ± 0%  -100.00% (p=0.000 n=10)\nNewEncoderEncode/Go_[]int_to_CBOR_array-20                   2.000 ± 0%   0.000 ± 0%  -100.00% (p=0.000 n=10)\nNewEncoderEncode/Go_map[string]string_to_CBOR_map-20         28.00 ± 0%   26.00 ± 0%    -7.14% (p=0.000 n=10)\ngeomean                                                      2.782                    ?                       ¹ ²\n¹ summaries must be >0 to compute geomean\n² ratios must be >0 to compute geomean\n```\n\n</details>\n-->\n\n## Who uses fxamacker/cbor\n\n`fxamacker/cbor` is used in projects by Arm Ltd., Berlin Institute of Health at Charité, Chainlink, Cisco, Confidential Computing Consortium, ConsenSys, Dapper&nbsp;Labs, EdgeX&nbsp;Foundry, F5, FIDO Alliance, Fraunhofer&#8209;AISEC, Kubernetes, Let's Encrypt (ISRG), Linux&nbsp;Foundation, Matrix.org, Microsoft, Mozilla, National&nbsp;Cybersecurity&nbsp;Agency&nbsp;of&nbsp;France (govt), Netherlands (govt), Oasis Protocol, Smallstep, Tailscale, Taurus SA, Teleport, TIBCO, and others.\n\n`fxamacker/cbor` passed multiple confidential security assessments.  A [nonconfidential security assessment](https://github.com/veraison/go-cose/blob/v1.0.0-rc.1/reports/NCC_Microsoft-go-cose-Report_2022-05-26_v1.0.pdf) (prepared by NCC Group for Microsoft Corporation) includes a subset of fxamacker/cbor v2.4.0 in its scope.\n\n## Standards\n\n`fxamacker/cbor` is a CBOR codec in full conformance with [IETF STD&nbsp;94 (RFC&nbsp;8949)](https://www.rfc-editor.org/info/std94). It also supports CBOR Sequences ([RFC&nbsp;8742](https://www.rfc-editor.org/rfc/rfc8742.html)) and Extended Diagnostic Notation ([Appendix G of RFC&nbsp;8610](https://www.rfc-editor.org/rfc/rfc8610.html#appendix-G)).\n\nNotable CBOR features include:\n\n| CBOR Feature  | Description  |\n| :--- | :--- |\n| CBOR tags | API supports built-in and user-defined tags.  |\n| Preferred serialization | Integers encode to fewest bytes. Optional float64 → float32 → float16. |\n| Map key sorting | Unsorted, length-first (Canonical CBOR), and bytewise-lexicographic (CTAP2). |\n| Duplicate map keys | Always forbid for encoding and option to allow/forbid for decoding.   |\n| Indefinite length data | Option to allow/forbid for encoding and decoding. |\n| Well-formedness | Always checked and enforced. |\n| Basic validity checks | Optionally check UTF-8 validity and duplicate map keys. |\n| Security considerations | Prevent integer overflow and resource exhaustion (RFC 8949 Section 10). |\n\nKnown limitations are noted in the [Limitations section](#limitations). \n\nGo nil values for slices, maps, pointers, etc. are encoded as CBOR null.  Empty slices, maps, etc. are encoded as empty CBOR arrays and maps.\n\nDecoder checks for all required well-formedness errors, including all \"subkinds\" of syntax errors and too little data.\n\nAfter well-formedness is verified, basic validity errors are handled as follows:\n\n* Invalid UTF-8 string: Decoder has option to check and return invalid UTF-8 string error. This check is enabled by default.\n* Duplicate keys in a map: Decoder has options to ignore or enforce rejection of duplicate map keys.\n\nWhen decoding well-formed CBOR arrays and maps, decoder saves the first error it encounters and continues with the next item.  Options to handle this differently may be added in the future.\n\nBy default, decoder treats time values of floating-point NaN and Infinity as if they are CBOR Null or CBOR Undefined.\n\n__Click to expand topic:__\n\n<details>\n <summary>Duplicate Map Keys</summary><p>\n\nThis library provides options for fast detection and rejection of duplicate map keys based on applying a Go-specific data model to CBOR's extended generic data model in order to determine duplicate vs distinct map keys. Detection relies on whether the CBOR map key would be a duplicate \"key\" when decoded and applied to the user-provided Go map or struct. \n\n`DupMapKeyQuiet` turns off detection of duplicate map keys. It tries to use a \"keep fastest\" method by choosing either \"keep first\" or \"keep last\" depending on the Go data type.\n\n`DupMapKeyEnforcedAPF` enforces detection and rejection of duplidate map keys. Decoding stops immediately and returns `DupMapKeyError` when the first duplicate key is detected. The error includes the duplicate map key and the index number. \n\nAPF suffix means \"Allow Partial Fill\" so the destination map or struct can contain some decoded values at the time of error. It is the caller's responsibility to respond to the `DupMapKeyError` by discarding the partially filled result if that's required by their protocol.\n\n</details>\n\n<details>\n <summary>Tag Validity</summary><p>\n\nThis library checks tag validity for built-in tags (currently tag numbers 0, 1, 2, 3, and 55799):\n\n* Inadmissible type for tag content \n* Inadmissible value for tag content\n\nUnknown tag data items (not tag number 0, 1, 2, 3, or 55799) are handled in two ways:\n\n* When decoding into an empty interface, unknown tag data item will be decoded into `cbor.Tag` data type, which contains tag number and tag content.  The tag content will be decoded into the default Go data type for the CBOR data type.\n* When decoding into other Go types, unknown tag data item is decoded into the specified Go type.  If Go type is registered with a tag number, the tag number can optionally be verified.\n\nDecoder also has an option to forbid tag data items (treat any tag data item as error) which is specified by protocols such as CTAP2 Canonical CBOR.  \n\nFor more information, see [decoding options](#decoding-options-1) and [tag options](#tag-options).\n\n</details>\n\n## Limitations\n\nIf any of these limitations prevent you from using this library, please open an issue along with a link to your project.\n\n* CBOR `Undefined` (0xf7) value decodes to Go's `nil` value.  CBOR `Null` (0xf6) more closely matches Go's `nil`.\n* CBOR map keys with data types not supported by Go for map keys are ignored and an error is returned after continuing to decode remaining items.  \n* When decoding registered CBOR tag data to interface type, decoder creates a pointer to registered Go type matching CBOR tag number.  Requiring a pointer for this is a Go limitation. \n\n## Fuzzing and Code Coverage\n\n__Code coverage__ is always 95% or higher (with `go test -cover`) when tagging a release.\n\n__Coverage-guided fuzzing__ must pass billions of execs using before tagging a release.  Fuzzing is done using nonpublic code which may eventually get merged into this project.  Until then, reports like OpenSSF&nbsp;Scorecard can't detect fuzz tests being used by this project.\n\n<hr>\n\n## Versions and API Changes\nThis project uses [Semantic Versioning](https://semver.org), so the API is always backwards compatible unless the major version number changes.  \n\nThese functions have signatures identical to encoding/json and their API will continue to match `encoding/json` even after major new releases:  \n`Marshal`, `Unmarshal`, `NewEncoder`, `NewDecoder`, `(*Encoder).Encode`, and `(*Decoder).Decode`.\n\nExclusions from SemVer:\n- Newly added API documented as \"subject to change\".\n- Newly added API in the master branch that has never been tagged in non-beta release.\n- If function parameters are unchanged, bug fixes that change behavior (e.g. return error for edge case was missed in prior version).  We try to highlight these in the release notes and add extended beta period.  E.g. [v2.5.0-beta](https://github.com/fxamacker/cbor/releases/tag/v2.5.0-beta) (Dec 2022) -> [v2.5.0](https://github.com/fxamacker/cbor/releases/tag/v2.5.0) (Aug 2023).\n\nThis project avoids breaking changes to behavior of encoding and decoding functions unless required to improve conformance with supported RFCs (e.g. RFC 8949, RFC 8742, etc.)  Visible changes that don't improve conformance to standards are typically made available as new opt-in settings or new functions.\n\n## Code of Conduct \n\nThis project has adopted the [Contributor Covenant Code of Conduct](CODE_OF_CONDUCT.md).  Contact [faye.github@gmail.com](mailto:faye.github@gmail.com) with any questions or comments.\n\n## Contributing\n\nPlease open an issue before beginning work on a PR.  The improvement may have already been considered, etc.\n\nFor more info, see [How to Contribute](CONTRIBUTING.md).\n\n## Security Policy\n\nSecurity fixes are provided for the latest released version of fxamacker/cbor.\n\nFor the full text of the Security Policy, see [SECURITY.md](SECURITY.md).\n\n## Acknowledgements\n\nMany thanks to all the contributors on this project!\n\nI'm especially grateful to Bastian Müller and Dieter Shirley for suggesting and collaborating on CBOR stream mode, and much more.\n\nI'm very grateful to Stefan Tatschner, Yawning Angel, Jernej Kos, x448, ZenGround0, and Jakob Borg for their contributions or support in the very early days.\n\nBig thanks to Ben Luddy for his contributions in v2.6.0 and v2.7.0.\n\nThis library clearly wouldn't be possible without Carsten Bormann authoring CBOR RFCs.\n\nSpecial thanks to Laurence Lundblade and Jeffrey Yasskin for their help on IETF mailing list or at [7049bis](https://github.com/cbor-wg/CBORbis).\n\nHuge thanks to The Go Authors for creating a fun and practical programming language with batteries included!\n\nThis library uses `x448/float16` which used to be included.  As a standalone package, `x448/float16` is useful to other projects as well.\n\n## License\n\nCopyright © 2019-2024 [Faye Amacker](https://github.com/fxamacker).\n\nfxamacker/cbor is licensed under the MIT License.  See [LICENSE](LICENSE) for the full license text.\n\n<hr>\n"
  },
  {
    "path": "vendor/github.com/fxamacker/cbor/v2/SECURITY.md",
    "content": "# Security Policy\n\nSecurity fixes are provided for the latest released version of fxamacker/cbor.\n\nIf the security vulnerability is already known to the public, then you can open an issue as a bug report.\n\nTo report security vulnerabilities not yet known to the public, please email faye.github@gmail.com and allow time for the problem to be resolved before reporting it to the public.\n"
  },
  {
    "path": "vendor/github.com/fxamacker/cbor/v2/bytestring.go",
    "content": "// Copyright (c) Faye Amacker. All rights reserved.\n// Licensed under the MIT License. See LICENSE in the project root for license information.\n\npackage cbor\n\nimport (\n\t\"errors\"\n)\n\n// ByteString represents CBOR byte string (major type 2). ByteString can be used\n// when using a Go []byte is not possible or convenient. For example, Go doesn't\n// allow []byte as map key, so ByteString can be used to support data formats\n// having CBOR map with byte string keys. ByteString can also be used to\n// encode invalid UTF-8 string as CBOR byte string.\n// See DecOption.MapKeyByteStringMode for more details.\ntype ByteString string\n\n// Bytes returns bytes representing ByteString.\nfunc (bs ByteString) Bytes() []byte {\n\treturn []byte(bs)\n}\n\n// MarshalCBOR encodes ByteString as CBOR byte string (major type 2).\nfunc (bs ByteString) MarshalCBOR() ([]byte, error) {\n\te := getEncodeBuffer()\n\tdefer putEncodeBuffer(e)\n\n\t// Encode length\n\tencodeHead(e, byte(cborTypeByteString), uint64(len(bs)))\n\n\t// Encode data\n\tbuf := make([]byte, e.Len()+len(bs))\n\tn := copy(buf, e.Bytes())\n\tcopy(buf[n:], bs)\n\n\treturn buf, nil\n}\n\n// UnmarshalCBOR decodes CBOR byte string (major type 2) to ByteString.\n// Decoding CBOR null and CBOR undefined sets ByteString to be empty.\nfunc (bs *ByteString) UnmarshalCBOR(data []byte) error {\n\tif bs == nil {\n\t\treturn errors.New(\"cbor.ByteString: UnmarshalCBOR on nil pointer\")\n\t}\n\n\t// Decoding CBOR null and CBOR undefined to ByteString resets data.\n\t// This behavior is similar to decoding CBOR null and CBOR undefined to []byte.\n\tif len(data) == 1 && (data[0] == 0xf6 || data[0] == 0xf7) {\n\t\t*bs = \"\"\n\t\treturn nil\n\t}\n\n\td := decoder{data: data, dm: defaultDecMode}\n\n\t// Check if CBOR data type is byte string\n\tif typ := d.nextCBORType(); typ != cborTypeByteString {\n\t\treturn &UnmarshalTypeError{CBORType: typ.String(), GoType: typeByteString.String()}\n\t}\n\n\tb, _ := d.parseByteString()\n\t*bs = ByteString(b)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/fxamacker/cbor/v2/cache.go",
    "content": "// Copyright (c) Faye Amacker. All rights reserved.\n// Licensed under the MIT License. See LICENSE in the project root for license information.\n\npackage cbor\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n)\n\ntype encodeFuncs struct {\n\tef  encodeFunc\n\tief isEmptyFunc\n}\n\nvar (\n\tdecodingStructTypeCache sync.Map // map[reflect.Type]*decodingStructType\n\tencodingStructTypeCache sync.Map // map[reflect.Type]*encodingStructType\n\tencodeFuncCache         sync.Map // map[reflect.Type]encodeFuncs\n\ttypeInfoCache           sync.Map // map[reflect.Type]*typeInfo\n)\n\ntype specialType int\n\nconst (\n\tspecialTypeNone specialType = iota\n\tspecialTypeUnmarshalerIface\n\tspecialTypeEmptyIface\n\tspecialTypeIface\n\tspecialTypeTag\n\tspecialTypeTime\n)\n\ntype typeInfo struct {\n\telemTypeInfo *typeInfo\n\tkeyTypeInfo  *typeInfo\n\ttyp          reflect.Type\n\tkind         reflect.Kind\n\tnonPtrType   reflect.Type\n\tnonPtrKind   reflect.Kind\n\tspclType     specialType\n}\n\nfunc newTypeInfo(t reflect.Type) *typeInfo {\n\ttInfo := typeInfo{typ: t, kind: t.Kind()}\n\n\tfor t.Kind() == reflect.Ptr {\n\t\tt = t.Elem()\n\t}\n\n\tk := t.Kind()\n\n\ttInfo.nonPtrType = t\n\ttInfo.nonPtrKind = k\n\n\tif k == reflect.Interface {\n\t\tif t.NumMethod() == 0 {\n\t\t\ttInfo.spclType = specialTypeEmptyIface\n\t\t} else {\n\t\t\ttInfo.spclType = specialTypeIface\n\t\t}\n\t} else if t == typeTag {\n\t\ttInfo.spclType = specialTypeTag\n\t} else if t == typeTime {\n\t\ttInfo.spclType = specialTypeTime\n\t} else if reflect.PtrTo(t).Implements(typeUnmarshaler) {\n\t\ttInfo.spclType = specialTypeUnmarshalerIface\n\t}\n\n\tswitch k {\n\tcase reflect.Array, reflect.Slice:\n\t\ttInfo.elemTypeInfo = getTypeInfo(t.Elem())\n\tcase reflect.Map:\n\t\ttInfo.keyTypeInfo = getTypeInfo(t.Key())\n\t\ttInfo.elemTypeInfo = getTypeInfo(t.Elem())\n\t}\n\n\treturn &tInfo\n}\n\ntype decodingStructType struct {\n\tfields             fields\n\tfieldIndicesByName map[string]int\n\terr                error\n\ttoArray            bool\n}\n\n// The stdlib errors.Join was introduced in Go 1.20, and we still support Go 1.17, so instead,\n// here's a very basic implementation of an aggregated error.\ntype multierror []error\n\nfunc (m multierror) Error() string {\n\tvar sb strings.Builder\n\tfor i, err := range m {\n\t\tsb.WriteString(err.Error())\n\t\tif i < len(m)-1 {\n\t\t\tsb.WriteString(\", \")\n\t\t}\n\t}\n\treturn sb.String()\n}\n\nfunc getDecodingStructType(t reflect.Type) *decodingStructType {\n\tif v, _ := decodingStructTypeCache.Load(t); v != nil {\n\t\treturn v.(*decodingStructType)\n\t}\n\n\tflds, structOptions := getFields(t)\n\n\ttoArray := hasToArrayOption(structOptions)\n\n\tvar errs []error\n\tfor i := 0; i < len(flds); i++ {\n\t\tif flds[i].keyAsInt {\n\t\t\tnameAsInt, numErr := strconv.Atoi(flds[i].name)\n\t\t\tif numErr != nil {\n\t\t\t\terrs = append(errs, errors.New(\"cbor: failed to parse field name \\\"\"+flds[i].name+\"\\\" to int (\"+numErr.Error()+\")\"))\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tflds[i].nameAsInt = int64(nameAsInt)\n\t\t}\n\n\t\tflds[i].typInfo = getTypeInfo(flds[i].typ)\n\t}\n\n\tfieldIndicesByName := make(map[string]int, len(flds))\n\tfor i, fld := range flds {\n\t\tif _, ok := fieldIndicesByName[fld.name]; ok {\n\t\t\terrs = append(errs, fmt.Errorf(\"cbor: two or more fields of %v have the same name %q\", t, fld.name))\n\t\t\tcontinue\n\t\t}\n\t\tfieldIndicesByName[fld.name] = i\n\t}\n\n\tvar err error\n\t{\n\t\tvar multi multierror\n\t\tfor _, each := range errs {\n\t\t\tif each != nil {\n\t\t\t\tmulti = append(multi, each)\n\t\t\t}\n\t\t}\n\t\tif len(multi) == 1 {\n\t\t\terr = multi[0]\n\t\t} else if len(multi) > 1 {\n\t\t\terr = multi\n\t\t}\n\t}\n\n\tstructType := &decodingStructType{\n\t\tfields:             flds,\n\t\tfieldIndicesByName: fieldIndicesByName,\n\t\terr:                err,\n\t\ttoArray:            toArray,\n\t}\n\tdecodingStructTypeCache.Store(t, structType)\n\treturn structType\n}\n\ntype encodingStructType struct {\n\tfields             fields\n\tbytewiseFields     fields\n\tlengthFirstFields  fields\n\tomitEmptyFieldsIdx []int\n\terr                error\n\ttoArray            bool\n}\n\nfunc (st *encodingStructType) getFields(em *encMode) fields {\n\tswitch em.sort {\n\tcase SortNone, SortFastShuffle:\n\t\treturn st.fields\n\tcase SortLengthFirst:\n\t\treturn st.lengthFirstFields\n\tdefault:\n\t\treturn st.bytewiseFields\n\t}\n}\n\ntype bytewiseFieldSorter struct {\n\tfields fields\n}\n\nfunc (x *bytewiseFieldSorter) Len() int {\n\treturn len(x.fields)\n}\n\nfunc (x *bytewiseFieldSorter) Swap(i, j int) {\n\tx.fields[i], x.fields[j] = x.fields[j], x.fields[i]\n}\n\nfunc (x *bytewiseFieldSorter) Less(i, j int) bool {\n\treturn bytes.Compare(x.fields[i].cborName, x.fields[j].cborName) <= 0\n}\n\ntype lengthFirstFieldSorter struct {\n\tfields fields\n}\n\nfunc (x *lengthFirstFieldSorter) Len() int {\n\treturn len(x.fields)\n}\n\nfunc (x *lengthFirstFieldSorter) Swap(i, j int) {\n\tx.fields[i], x.fields[j] = x.fields[j], x.fields[i]\n}\n\nfunc (x *lengthFirstFieldSorter) Less(i, j int) bool {\n\tif len(x.fields[i].cborName) != len(x.fields[j].cborName) {\n\t\treturn len(x.fields[i].cborName) < len(x.fields[j].cborName)\n\t}\n\treturn bytes.Compare(x.fields[i].cborName, x.fields[j].cborName) <= 0\n}\n\nfunc getEncodingStructType(t reflect.Type) (*encodingStructType, error) {\n\tif v, _ := encodingStructTypeCache.Load(t); v != nil {\n\t\tstructType := v.(*encodingStructType)\n\t\treturn structType, structType.err\n\t}\n\n\tflds, structOptions := getFields(t)\n\n\tif hasToArrayOption(structOptions) {\n\t\treturn getEncodingStructToArrayType(t, flds)\n\t}\n\n\tvar err error\n\tvar hasKeyAsInt bool\n\tvar hasKeyAsStr bool\n\tvar omitEmptyIdx []int\n\te := getEncodeBuffer()\n\tfor i := 0; i < len(flds); i++ {\n\t\t// Get field's encodeFunc\n\t\tflds[i].ef, flds[i].ief = getEncodeFunc(flds[i].typ)\n\t\tif flds[i].ef == nil {\n\t\t\terr = &UnsupportedTypeError{t}\n\t\t\tbreak\n\t\t}\n\n\t\t// Encode field name\n\t\tif flds[i].keyAsInt {\n\t\t\tnameAsInt, numErr := strconv.Atoi(flds[i].name)\n\t\t\tif numErr != nil {\n\t\t\t\terr = errors.New(\"cbor: failed to parse field name \\\"\" + flds[i].name + \"\\\" to int (\" + numErr.Error() + \")\")\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tflds[i].nameAsInt = int64(nameAsInt)\n\t\t\tif nameAsInt >= 0 {\n\t\t\t\tencodeHead(e, byte(cborTypePositiveInt), uint64(nameAsInt))\n\t\t\t} else {\n\t\t\t\tn := nameAsInt*(-1) - 1\n\t\t\t\tencodeHead(e, byte(cborTypeNegativeInt), uint64(n))\n\t\t\t}\n\t\t\tflds[i].cborName = make([]byte, e.Len())\n\t\t\tcopy(flds[i].cborName, e.Bytes())\n\t\t\te.Reset()\n\n\t\t\thasKeyAsInt = true\n\t\t} else {\n\t\t\tencodeHead(e, byte(cborTypeTextString), uint64(len(flds[i].name)))\n\t\t\tflds[i].cborName = make([]byte, e.Len()+len(flds[i].name))\n\t\t\tn := copy(flds[i].cborName, e.Bytes())\n\t\t\tcopy(flds[i].cborName[n:], flds[i].name)\n\t\t\te.Reset()\n\n\t\t\t// If cborName contains a text string, then cborNameByteString contains a\n\t\t\t// string that has the byte string major type but is otherwise identical to\n\t\t\t// cborName.\n\t\t\tflds[i].cborNameByteString = make([]byte, len(flds[i].cborName))\n\t\t\tcopy(flds[i].cborNameByteString, flds[i].cborName)\n\t\t\t// Reset encoded CBOR type to byte string, preserving the \"additional\n\t\t\t// information\" bits:\n\t\t\tflds[i].cborNameByteString[0] = byte(cborTypeByteString) |\n\t\t\t\tgetAdditionalInformation(flds[i].cborNameByteString[0])\n\n\t\t\thasKeyAsStr = true\n\t\t}\n\n\t\t// Check if field can be omitted when empty\n\t\tif flds[i].omitEmpty {\n\t\t\tomitEmptyIdx = append(omitEmptyIdx, i)\n\t\t}\n\t}\n\tputEncodeBuffer(e)\n\n\tif err != nil {\n\t\tstructType := &encodingStructType{err: err}\n\t\tencodingStructTypeCache.Store(t, structType)\n\t\treturn structType, structType.err\n\t}\n\n\t// Sort fields by canonical order\n\tbytewiseFields := make(fields, len(flds))\n\tcopy(bytewiseFields, flds)\n\tsort.Sort(&bytewiseFieldSorter{bytewiseFields})\n\n\tlengthFirstFields := bytewiseFields\n\tif hasKeyAsInt && hasKeyAsStr {\n\t\tlengthFirstFields = make(fields, len(flds))\n\t\tcopy(lengthFirstFields, flds)\n\t\tsort.Sort(&lengthFirstFieldSorter{lengthFirstFields})\n\t}\n\n\tstructType := &encodingStructType{\n\t\tfields:             flds,\n\t\tbytewiseFields:     bytewiseFields,\n\t\tlengthFirstFields:  lengthFirstFields,\n\t\tomitEmptyFieldsIdx: omitEmptyIdx,\n\t}\n\n\tencodingStructTypeCache.Store(t, structType)\n\treturn structType, structType.err\n}\n\nfunc getEncodingStructToArrayType(t reflect.Type, flds fields) (*encodingStructType, error) {\n\tfor i := 0; i < len(flds); i++ {\n\t\t// Get field's encodeFunc\n\t\tflds[i].ef, flds[i].ief = getEncodeFunc(flds[i].typ)\n\t\tif flds[i].ef == nil {\n\t\t\tstructType := &encodingStructType{err: &UnsupportedTypeError{t}}\n\t\t\tencodingStructTypeCache.Store(t, structType)\n\t\t\treturn structType, structType.err\n\t\t}\n\t}\n\n\tstructType := &encodingStructType{\n\t\tfields:  flds,\n\t\ttoArray: true,\n\t}\n\tencodingStructTypeCache.Store(t, structType)\n\treturn structType, structType.err\n}\n\nfunc getEncodeFunc(t reflect.Type) (encodeFunc, isEmptyFunc) {\n\tif v, _ := encodeFuncCache.Load(t); v != nil {\n\t\tfs := v.(encodeFuncs)\n\t\treturn fs.ef, fs.ief\n\t}\n\tef, ief := getEncodeFuncInternal(t)\n\tencodeFuncCache.Store(t, encodeFuncs{ef, ief})\n\treturn ef, ief\n}\n\nfunc getTypeInfo(t reflect.Type) *typeInfo {\n\tif v, _ := typeInfoCache.Load(t); v != nil {\n\t\treturn v.(*typeInfo)\n\t}\n\ttInfo := newTypeInfo(t)\n\ttypeInfoCache.Store(t, tInfo)\n\treturn tInfo\n}\n\nfunc hasToArrayOption(tag string) bool {\n\ts := \",toarray\"\n\tidx := strings.Index(tag, s)\n\treturn idx >= 0 && (len(tag) == idx+len(s) || tag[idx+len(s)] == ',')\n}\n"
  },
  {
    "path": "vendor/github.com/fxamacker/cbor/v2/common.go",
    "content": "// Copyright (c) Faye Amacker. All rights reserved.\n// Licensed under the MIT License. See LICENSE in the project root for license information.\n\npackage cbor\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n)\n\ntype cborType uint8\n\nconst (\n\tcborTypePositiveInt cborType = 0x00\n\tcborTypeNegativeInt cborType = 0x20\n\tcborTypeByteString  cborType = 0x40\n\tcborTypeTextString  cborType = 0x60\n\tcborTypeArray       cborType = 0x80\n\tcborTypeMap         cborType = 0xa0\n\tcborTypeTag         cborType = 0xc0\n\tcborTypePrimitives  cborType = 0xe0\n)\n\nfunc (t cborType) String() string {\n\tswitch t {\n\tcase cborTypePositiveInt:\n\t\treturn \"positive integer\"\n\tcase cborTypeNegativeInt:\n\t\treturn \"negative integer\"\n\tcase cborTypeByteString:\n\t\treturn \"byte string\"\n\tcase cborTypeTextString:\n\t\treturn \"UTF-8 text string\"\n\tcase cborTypeArray:\n\t\treturn \"array\"\n\tcase cborTypeMap:\n\t\treturn \"map\"\n\tcase cborTypeTag:\n\t\treturn \"tag\"\n\tcase cborTypePrimitives:\n\t\treturn \"primitives\"\n\tdefault:\n\t\treturn \"Invalid type \" + strconv.Itoa(int(t))\n\t}\n}\n\ntype additionalInformation uint8\n\nconst (\n\tmaxAdditionalInformationWithoutArgument = 23\n\tadditionalInformationWith1ByteArgument  = 24\n\tadditionalInformationWith2ByteArgument  = 25\n\tadditionalInformationWith4ByteArgument  = 26\n\tadditionalInformationWith8ByteArgument  = 27\n\n\t// For major type 7.\n\tadditionalInformationAsFalse     = 20\n\tadditionalInformationAsTrue      = 21\n\tadditionalInformationAsNull      = 22\n\tadditionalInformationAsUndefined = 23\n\tadditionalInformationAsFloat16   = 25\n\tadditionalInformationAsFloat32   = 26\n\tadditionalInformationAsFloat64   = 27\n\n\t// For major type 2, 3, 4, 5.\n\tadditionalInformationAsIndefiniteLengthFlag = 31\n)\n\nconst (\n\tmaxSimpleValueInAdditionalInformation = 23\n\tminSimpleValueIn1ByteArgument         = 32\n)\n\nfunc (ai additionalInformation) isIndefiniteLength() bool {\n\treturn ai == additionalInformationAsIndefiniteLengthFlag\n}\n\nconst (\n\t// From RFC 8949 Section 3:\n\t//   \"The initial byte of each encoded data item contains both information about the major type\n\t//   (the high-order 3 bits, described in Section 3.1) and additional information\n\t//   (the low-order 5 bits).\"\n\n\t// typeMask is used to extract major type in initial byte of encoded data item.\n\ttypeMask = 0xe0\n\n\t// additionalInformationMask is used to extract additional information in initial byte of encoded data item.\n\tadditionalInformationMask = 0x1f\n)\n\nfunc getType(raw byte) cborType {\n\treturn cborType(raw & typeMask)\n}\n\nfunc getAdditionalInformation(raw byte) byte {\n\treturn raw & additionalInformationMask\n}\n\nfunc isBreakFlag(raw byte) bool {\n\treturn raw == cborBreakFlag\n}\n\nfunc parseInitialByte(b byte) (t cborType, ai byte) {\n\treturn getType(b), getAdditionalInformation(b)\n}\n\nconst (\n\ttagNumRFC3339Time                    = 0\n\ttagNumEpochTime                      = 1\n\ttagNumUnsignedBignum                 = 2\n\ttagNumNegativeBignum                 = 3\n\ttagNumExpectedLaterEncodingBase64URL = 21\n\ttagNumExpectedLaterEncodingBase64    = 22\n\ttagNumExpectedLaterEncodingBase16    = 23\n\ttagNumSelfDescribedCBOR              = 55799\n)\n\nconst (\n\tcborBreakFlag                          = byte(0xff)\n\tcborByteStringWithIndefiniteLengthHead = byte(0x5f)\n\tcborTextStringWithIndefiniteLengthHead = byte(0x7f)\n\tcborArrayWithIndefiniteLengthHead      = byte(0x9f)\n\tcborMapWithIndefiniteLengthHead        = byte(0xbf)\n)\n\nvar (\n\tcborFalse            = []byte{0xf4}\n\tcborTrue             = []byte{0xf5}\n\tcborNil              = []byte{0xf6}\n\tcborNaN              = []byte{0xf9, 0x7e, 0x00}\n\tcborPositiveInfinity = []byte{0xf9, 0x7c, 0x00}\n\tcborNegativeInfinity = []byte{0xf9, 0xfc, 0x00}\n)\n\n// validBuiltinTag checks that supported built-in tag numbers are followed by expected content types.\nfunc validBuiltinTag(tagNum uint64, contentHead byte) error {\n\tt := getType(contentHead)\n\tswitch tagNum {\n\tcase tagNumRFC3339Time:\n\t\t// Tag content (date/time text string in RFC 3339 format) must be string type.\n\t\tif t != cborTypeTextString {\n\t\t\treturn newInadmissibleTagContentTypeError(\n\t\t\t\ttagNumRFC3339Time,\n\t\t\t\t\"text string\",\n\t\t\t\tt.String())\n\t\t}\n\t\treturn nil\n\n\tcase tagNumEpochTime:\n\t\t// Tag content (epoch date/time) must be uint, int, or float type.\n\t\tif t != cborTypePositiveInt && t != cborTypeNegativeInt && (contentHead < 0xf9 || contentHead > 0xfb) {\n\t\t\treturn newInadmissibleTagContentTypeError(\n\t\t\t\ttagNumEpochTime,\n\t\t\t\t\"integer or floating-point number\",\n\t\t\t\tt.String())\n\t\t}\n\t\treturn nil\n\n\tcase tagNumUnsignedBignum, tagNumNegativeBignum:\n\t\t// Tag content (bignum) must be byte type.\n\t\tif t != cborTypeByteString {\n\t\t\treturn newInadmissibleTagContentTypeErrorf(\n\t\t\t\tfmt.Sprintf(\n\t\t\t\t\t\"tag number %d or %d must be followed by byte string, got %s\",\n\t\t\t\t\ttagNumUnsignedBignum,\n\t\t\t\t\ttagNumNegativeBignum,\n\t\t\t\t\tt.String(),\n\t\t\t\t))\n\t\t}\n\t\treturn nil\n\n\tcase tagNumExpectedLaterEncodingBase64URL, tagNumExpectedLaterEncodingBase64, tagNumExpectedLaterEncodingBase16:\n\t\t// From RFC 8949 3.4.5.2:\n\t\t//   The data item tagged can be a byte string or any other data item. In the latter\n\t\t//   case, the tag applies to all of the byte string data items contained in the data\n\t\t//   item, except for those contained in a nested data item tagged with an expected\n\t\t//   conversion.\n\t\treturn nil\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/fxamacker/cbor/v2/decode.go",
    "content": "// Copyright (c) Faye Amacker. All rights reserved.\n// Licensed under the MIT License. See LICENSE in the project root for license information.\n\npackage cbor\n\nimport (\n\t\"encoding\"\n\t\"encoding/base64\"\n\t\"encoding/binary\"\n\t\"encoding/hex\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"math/big\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\t\"unicode/utf8\"\n\n\t\"github.com/x448/float16\"\n)\n\n// Unmarshal parses the CBOR-encoded data into the value pointed to by v\n// using default decoding options.  If v is nil, not a pointer, or\n// a nil pointer, Unmarshal returns an error.\n//\n// To unmarshal CBOR into a value implementing the Unmarshaler interface,\n// Unmarshal calls that value's UnmarshalCBOR method with a valid\n// CBOR value.\n//\n// To unmarshal CBOR byte string into a value implementing the\n// encoding.BinaryUnmarshaler interface, Unmarshal calls that value's\n// UnmarshalBinary method with decoded CBOR byte string.\n//\n// To unmarshal CBOR into a pointer, Unmarshal sets the pointer to nil\n// if CBOR data is null (0xf6) or undefined (0xf7).  Otherwise, Unmarshal\n// unmarshals CBOR into the value pointed to by the pointer.  If the\n// pointer is nil, Unmarshal creates a new value for it to point to.\n//\n// To unmarshal CBOR into an empty interface value, Unmarshal uses the\n// following rules:\n//\n//\tCBOR booleans decode to bool.\n//\tCBOR positive integers decode to uint64.\n//\tCBOR negative integers decode to int64 (big.Int if value overflows).\n//\tCBOR floating points decode to float64.\n//\tCBOR byte strings decode to []byte.\n//\tCBOR text strings decode to string.\n//\tCBOR arrays decode to []interface{}.\n//\tCBOR maps decode to map[interface{}]interface{}.\n//\tCBOR null and undefined values decode to nil.\n//\tCBOR times (tag 0 and 1) decode to time.Time.\n//\tCBOR bignums (tag 2 and 3) decode to big.Int.\n//\tCBOR tags with an unrecognized number decode to cbor.Tag\n//\n// To unmarshal a CBOR array into a slice, Unmarshal allocates a new slice\n// if the CBOR array is empty or slice capacity is less than CBOR array length.\n// Otherwise Unmarshal overwrites existing elements, and sets slice length\n// to CBOR array length.\n//\n// To unmarshal a CBOR array into a Go array, Unmarshal decodes CBOR array\n// elements into Go array elements.  If the Go array is smaller than the\n// CBOR array, the extra CBOR array elements are discarded.  If the CBOR\n// array is smaller than the Go array, the extra Go array elements are\n// set to zero values.\n//\n// To unmarshal a CBOR array into a struct, struct must have a special field \"_\"\n// with struct tag `cbor:\",toarray\"`.  Go array elements are decoded into struct\n// fields.  Any \"omitempty\" struct field tag option is ignored in this case.\n//\n// To unmarshal a CBOR map into a map, Unmarshal allocates a new map only if the\n// map is nil.  Otherwise Unmarshal reuses the existing map and keeps existing\n// entries.  Unmarshal stores key-value pairs from the CBOR map into Go map.\n// See DecOptions.DupMapKey to enable duplicate map key detection.\n//\n// To unmarshal a CBOR map into a struct, Unmarshal matches CBOR map keys to the\n// keys in the following priority:\n//\n//  1. \"cbor\" key in struct field tag,\n//  2. \"json\" key in struct field tag,\n//  3. struct field name.\n//\n// Unmarshal tries an exact match for field name, then a case-insensitive match.\n// Map key-value pairs without corresponding struct fields are ignored.  See\n// DecOptions.ExtraReturnErrors to return error at unknown field.\n//\n// To unmarshal a CBOR text string into a time.Time value, Unmarshal parses text\n// string formatted in RFC3339.  To unmarshal a CBOR integer/float into a\n// time.Time value, Unmarshal creates an unix time with integer/float as seconds\n// and fractional seconds since January 1, 1970 UTC. As a special case, Infinite\n// and NaN float values decode to time.Time's zero value.\n//\n// To unmarshal CBOR null (0xf6) and undefined (0xf7) values into a\n// slice/map/pointer, Unmarshal sets Go value to nil.  Because null is often\n// used to mean \"not present\", unmarshalling CBOR null and undefined value\n// into any other Go type has no effect and returns no error.\n//\n// Unmarshal supports CBOR tag 55799 (self-describe CBOR), tag 0 and 1 (time),\n// and tag 2 and 3 (bignum).\n//\n// Unmarshal returns ExtraneousDataError error (without decoding into v)\n// if there are any remaining bytes following the first valid CBOR data item.\n// See UnmarshalFirst, if you want to unmarshal only the first\n// CBOR data item without ExtraneousDataError caused by remaining bytes.\nfunc Unmarshal(data []byte, v interface{}) error {\n\treturn defaultDecMode.Unmarshal(data, v)\n}\n\n// UnmarshalFirst parses the first CBOR data item into the value pointed to by v\n// using default decoding options.  Any remaining bytes are returned in rest.\n//\n// If v is nil, not a pointer, or a nil pointer, UnmarshalFirst returns an error.\n//\n// See the documentation for Unmarshal for details.\nfunc UnmarshalFirst(data []byte, v interface{}) (rest []byte, err error) {\n\treturn defaultDecMode.UnmarshalFirst(data, v)\n}\n\n// Valid checks whether data is a well-formed encoded CBOR data item and\n// that it complies with default restrictions such as MaxNestedLevels,\n// MaxArrayElements, MaxMapPairs, etc.\n//\n// If there are any remaining bytes after the CBOR data item,\n// an ExtraneousDataError is returned.\n//\n// WARNING: Valid doesn't check if encoded CBOR data item is valid (i.e. validity)\n// and RFC 8949 distinctly defines what is \"Valid\" and what is \"Well-formed\".\n//\n// Deprecated: Valid is kept for compatibility and should not be used.\n// Use Wellformed instead because it has a more appropriate name.\nfunc Valid(data []byte) error {\n\treturn defaultDecMode.Valid(data)\n}\n\n// Wellformed checks whether data is a well-formed encoded CBOR data item and\n// that it complies with default restrictions such as MaxNestedLevels,\n// MaxArrayElements, MaxMapPairs, etc.\n//\n// If there are any remaining bytes after the CBOR data item,\n// an ExtraneousDataError is returned.\nfunc Wellformed(data []byte) error {\n\treturn defaultDecMode.Wellformed(data)\n}\n\n// Unmarshaler is the interface implemented by types that wish to unmarshal\n// CBOR data themselves.  The input is a valid CBOR value. UnmarshalCBOR\n// must copy the CBOR data if it needs to use it after returning.\ntype Unmarshaler interface {\n\tUnmarshalCBOR([]byte) error\n}\n\n// InvalidUnmarshalError describes an invalid argument passed to Unmarshal.\ntype InvalidUnmarshalError struct {\n\ts string\n}\n\nfunc (e *InvalidUnmarshalError) Error() string {\n\treturn e.s\n}\n\n// UnmarshalTypeError describes a CBOR value that can't be decoded to a Go type.\ntype UnmarshalTypeError struct {\n\tCBORType        string // type of CBOR value\n\tGoType          string // type of Go value it could not be decoded into\n\tStructFieldName string // name of the struct field holding the Go value (optional)\n\terrorMsg        string // additional error message (optional)\n}\n\nfunc (e *UnmarshalTypeError) Error() string {\n\tvar s string\n\tif e.StructFieldName != \"\" {\n\t\ts = \"cbor: cannot unmarshal \" + e.CBORType + \" into Go struct field \" + e.StructFieldName + \" of type \" + e.GoType\n\t} else {\n\t\ts = \"cbor: cannot unmarshal \" + e.CBORType + \" into Go value of type \" + e.GoType\n\t}\n\tif e.errorMsg != \"\" {\n\t\ts += \" (\" + e.errorMsg + \")\"\n\t}\n\treturn s\n}\n\n// InvalidMapKeyTypeError describes invalid Go map key type when decoding CBOR map.\n// For example, Go doesn't allow slice as map key.\ntype InvalidMapKeyTypeError struct {\n\tGoType string\n}\n\nfunc (e *InvalidMapKeyTypeError) Error() string {\n\treturn \"cbor: invalid map key type: \" + e.GoType\n}\n\n// DupMapKeyError describes detected duplicate map key in CBOR map.\ntype DupMapKeyError struct {\n\tKey   interface{}\n\tIndex int\n}\n\nfunc (e *DupMapKeyError) Error() string {\n\treturn fmt.Sprintf(\"cbor: found duplicate map key \\\"%v\\\" at map element index %d\", e.Key, e.Index)\n}\n\n// UnknownFieldError describes detected unknown field in CBOR map when decoding to Go struct.\ntype UnknownFieldError struct {\n\tIndex int\n}\n\nfunc (e *UnknownFieldError) Error() string {\n\treturn fmt.Sprintf(\"cbor: found unknown field at map element index %d\", e.Index)\n}\n\n// UnacceptableDataItemError is returned when unmarshaling a CBOR input that contains a data item\n// that is not acceptable to a specific CBOR-based application protocol (\"invalid or unexpected\" as\n// described in RFC 8949 Section 5 Paragraph 3).\ntype UnacceptableDataItemError struct {\n\tCBORType string\n\tMessage  string\n}\n\nfunc (e UnacceptableDataItemError) Error() string {\n\treturn fmt.Sprintf(\"cbor: data item of cbor type %s is not accepted by protocol: %s\", e.CBORType, e.Message)\n}\n\n// ByteStringExpectedFormatError is returned when unmarshaling CBOR byte string fails when\n// using non-default ByteStringExpectedFormat decoding option that makes decoder expect\n// a specified format such as base64, hex, etc.\ntype ByteStringExpectedFormatError struct {\n\texpectedFormatOption ByteStringExpectedFormatMode\n\terr                  error\n}\n\nfunc newByteStringExpectedFormatError(expectedFormatOption ByteStringExpectedFormatMode, err error) *ByteStringExpectedFormatError {\n\treturn &ByteStringExpectedFormatError{expectedFormatOption, err}\n}\n\nfunc (e *ByteStringExpectedFormatError) Error() string {\n\tswitch e.expectedFormatOption {\n\tcase ByteStringExpectedBase64URL:\n\t\treturn fmt.Sprintf(\"cbor: failed to decode base64url from byte string: %s\", e.err)\n\n\tcase ByteStringExpectedBase64:\n\t\treturn fmt.Sprintf(\"cbor: failed to decode base64 from byte string: %s\", e.err)\n\n\tcase ByteStringExpectedBase16:\n\t\treturn fmt.Sprintf(\"cbor: failed to decode hex from byte string: %s\", e.err)\n\n\tdefault:\n\t\treturn fmt.Sprintf(\"cbor: failed to decode byte string in expected format %d: %s\", e.expectedFormatOption, e.err)\n\t}\n}\n\nfunc (e *ByteStringExpectedFormatError) Unwrap() error {\n\treturn e.err\n}\n\n// InadmissibleTagContentTypeError is returned when unmarshaling built-in CBOR tags\n// fails because of inadmissible type for tag content. Currently, the built-in\n// CBOR tags in this codec are tags 0-3 and 21-23.\n// See \"Tag validity\" in RFC 8949 Section 5.3.2.\ntype InadmissibleTagContentTypeError struct {\n\ts                      string\n\ttagNum                 int\n\texpectedTagContentType string\n\tgotTagContentType      string\n}\n\nfunc newInadmissibleTagContentTypeError(\n\ttagNum int,\n\texpectedTagContentType string,\n\tgotTagContentType string,\n) *InadmissibleTagContentTypeError {\n\treturn &InadmissibleTagContentTypeError{\n\t\ttagNum:                 tagNum,\n\t\texpectedTagContentType: expectedTagContentType,\n\t\tgotTagContentType:      gotTagContentType,\n\t}\n}\n\nfunc newInadmissibleTagContentTypeErrorf(s string) *InadmissibleTagContentTypeError {\n\treturn &InadmissibleTagContentTypeError{s: \"cbor: \" + s} //nolint:goconst // ignore \"cbor\"\n}\n\nfunc (e *InadmissibleTagContentTypeError) Error() string {\n\tif e.s == \"\" {\n\t\treturn fmt.Sprintf(\n\t\t\t\"cbor: tag number %d must be followed by %s, got %s\",\n\t\t\te.tagNum,\n\t\t\te.expectedTagContentType,\n\t\t\te.gotTagContentType,\n\t\t)\n\t}\n\treturn e.s\n}\n\n// DupMapKeyMode specifies how to enforce duplicate map key. Two map keys are considered duplicates if:\n//  1. When decoding into a struct, both keys match the same struct field. The keys are also\n//     considered duplicates if neither matches any field and decoding to interface{} would produce\n//     equal (==) values for both keys.\n//  2. When decoding into a map, both keys are equal (==) when decoded into values of the\n//     destination map's key type.\ntype DupMapKeyMode int\n\nconst (\n\t// DupMapKeyQuiet doesn't enforce duplicate map key. Decoder quietly (no error)\n\t// uses faster of \"keep first\" or \"keep last\" depending on Go data type and other factors.\n\tDupMapKeyQuiet DupMapKeyMode = iota\n\n\t// DupMapKeyEnforcedAPF enforces detection and rejection of duplicate map keys.\n\t// APF means \"Allow Partial Fill\" and the destination map or struct can be partially filled.\n\t// If a duplicate map key is detected, DupMapKeyError is returned without further decoding\n\t// of the map. It's the caller's responsibility to respond to DupMapKeyError by\n\t// discarding the partially filled result if their protocol requires it.\n\t// WARNING: using DupMapKeyEnforcedAPF will decrease performance and increase memory use.\n\tDupMapKeyEnforcedAPF\n\n\tmaxDupMapKeyMode\n)\n\nfunc (dmkm DupMapKeyMode) valid() bool {\n\treturn dmkm >= 0 && dmkm < maxDupMapKeyMode\n}\n\n// IndefLengthMode specifies whether to allow indefinite length items.\ntype IndefLengthMode int\n\nconst (\n\t// IndefLengthAllowed allows indefinite length items.\n\tIndefLengthAllowed IndefLengthMode = iota\n\n\t// IndefLengthForbidden disallows indefinite length items.\n\tIndefLengthForbidden\n\n\tmaxIndefLengthMode\n)\n\nfunc (m IndefLengthMode) valid() bool {\n\treturn m >= 0 && m < maxIndefLengthMode\n}\n\n// TagsMode specifies whether to allow CBOR tags.\ntype TagsMode int\n\nconst (\n\t// TagsAllowed allows CBOR tags.\n\tTagsAllowed TagsMode = iota\n\n\t// TagsForbidden disallows CBOR tags.\n\tTagsForbidden\n\n\tmaxTagsMode\n)\n\nfunc (tm TagsMode) valid() bool {\n\treturn tm >= 0 && tm < maxTagsMode\n}\n\n// IntDecMode specifies which Go type (int64, uint64, or big.Int) should\n// be used when decoding CBOR integers (major type 0 and 1) to Go interface{}.\ntype IntDecMode int\n\nconst (\n\t// IntDecConvertNone affects how CBOR integers (major type 0 and 1) decode to Go interface{}.\n\t// It decodes CBOR unsigned integer (major type 0) to:\n\t// - uint64\n\t// It decodes CBOR negative integer (major type 1) to:\n\t// - int64 if value fits\n\t// - big.Int or *big.Int (see BigIntDecMode) if value doesn't fit into int64\n\tIntDecConvertNone IntDecMode = iota\n\n\t// IntDecConvertSigned affects how CBOR integers (major type 0 and 1) decode to Go interface{}.\n\t// It decodes CBOR integers (major type 0 and 1) to:\n\t// - int64 if value fits\n\t// - big.Int or *big.Int (see BigIntDecMode) if value < math.MinInt64\n\t// - return UnmarshalTypeError if value > math.MaxInt64\n\t// Deprecated: IntDecConvertSigned should not be used.\n\t// Please use other options, such as IntDecConvertSignedOrError, IntDecConvertSignedOrBigInt, IntDecConvertNone.\n\tIntDecConvertSigned\n\n\t// IntDecConvertSignedOrFail affects how CBOR integers (major type 0 and 1) decode to Go interface{}.\n\t// It decodes CBOR integers (major type 0 and 1) to:\n\t// - int64 if value fits\n\t// - return UnmarshalTypeError if value doesn't fit into int64\n\tIntDecConvertSignedOrFail\n\n\t// IntDecConvertSigned affects how CBOR integers (major type 0 and 1) decode to Go interface{}.\n\t// It makes CBOR integers (major type 0 and 1) decode to:\n\t// - int64 if value fits\n\t// - big.Int or *big.Int (see BigIntDecMode) if value doesn't fit into int64\n\tIntDecConvertSignedOrBigInt\n\n\tmaxIntDec\n)\n\nfunc (idm IntDecMode) valid() bool {\n\treturn idm >= 0 && idm < maxIntDec\n}\n\n// MapKeyByteStringMode specifies how to decode CBOR byte string (major type 2)\n// as Go map key when decoding CBOR map key into an empty Go interface value.\n// Specifically, this option applies when decoding CBOR map into\n// - Go empty interface, or\n// - Go map with empty interface as key type.\n// The CBOR map key types handled by this option are\n// - byte string\n// - tagged byte string\n// - nested tagged byte string\ntype MapKeyByteStringMode int\n\nconst (\n\t// MapKeyByteStringAllowed allows CBOR byte string to be decoded as Go map key.\n\t// Since Go doesn't allow []byte as map key, CBOR byte string is decoded to\n\t// ByteString which has underlying string type.\n\t// This is the default setting.\n\tMapKeyByteStringAllowed MapKeyByteStringMode = iota\n\n\t// MapKeyByteStringForbidden forbids CBOR byte string being decoded as Go map key.\n\t// Attempting to decode CBOR byte string as map key into empty interface value\n\t// returns a decoding error.\n\tMapKeyByteStringForbidden\n\n\tmaxMapKeyByteStringMode\n)\n\nfunc (mkbsm MapKeyByteStringMode) valid() bool {\n\treturn mkbsm >= 0 && mkbsm < maxMapKeyByteStringMode\n}\n\n// ExtraDecErrorCond specifies extra conditions that should be treated as errors.\ntype ExtraDecErrorCond uint\n\n// ExtraDecErrorNone indicates no extra error condition.\nconst ExtraDecErrorNone ExtraDecErrorCond = 0\n\nconst (\n\t// ExtraDecErrorUnknownField indicates error condition when destination\n\t// Go struct doesn't have a field matching a CBOR map key.\n\tExtraDecErrorUnknownField ExtraDecErrorCond = 1 << iota\n\n\tmaxExtraDecError\n)\n\nfunc (ec ExtraDecErrorCond) valid() bool {\n\treturn ec < maxExtraDecError\n}\n\n// UTF8Mode option specifies if decoder should\n// decode CBOR Text containing invalid UTF-8 string.\ntype UTF8Mode int\n\nconst (\n\t// UTF8RejectInvalid rejects CBOR Text containing\n\t// invalid UTF-8 string.\n\tUTF8RejectInvalid UTF8Mode = iota\n\n\t// UTF8DecodeInvalid allows decoding CBOR Text containing\n\t// invalid UTF-8 string.\n\tUTF8DecodeInvalid\n\n\tmaxUTF8Mode\n)\n\nfunc (um UTF8Mode) valid() bool {\n\treturn um >= 0 && um < maxUTF8Mode\n}\n\n// FieldNameMatchingMode specifies how string keys in CBOR maps are matched to Go struct field names.\ntype FieldNameMatchingMode int\n\nconst (\n\t// FieldNameMatchingPreferCaseSensitive prefers to decode map items into struct fields whose names (or tag\n\t// names) exactly match the item's key. If there is no such field, a map item will be decoded into a field whose\n\t// name is a case-insensitive match for the item's key.\n\tFieldNameMatchingPreferCaseSensitive FieldNameMatchingMode = iota\n\n\t// FieldNameMatchingCaseSensitive decodes map items only into a struct field whose name (or tag name) is an\n\t// exact match for the item's key.\n\tFieldNameMatchingCaseSensitive\n\n\tmaxFieldNameMatchingMode\n)\n\nfunc (fnmm FieldNameMatchingMode) valid() bool {\n\treturn fnmm >= 0 && fnmm < maxFieldNameMatchingMode\n}\n\n// BigIntDecMode specifies how to decode CBOR bignum to Go interface{}.\ntype BigIntDecMode int\n\nconst (\n\t// BigIntDecodeValue makes CBOR bignum decode to big.Int (instead of *big.Int)\n\t// when unmarshalling into a Go interface{}.\n\tBigIntDecodeValue BigIntDecMode = iota\n\n\t// BigIntDecodePointer makes CBOR bignum decode to *big.Int when\n\t// unmarshalling into a Go interface{}.\n\tBigIntDecodePointer\n\n\tmaxBigIntDecMode\n)\n\nfunc (bidm BigIntDecMode) valid() bool {\n\treturn bidm >= 0 && bidm < maxBigIntDecMode\n}\n\n// ByteStringToStringMode specifies the behavior when decoding a CBOR byte string into a Go string.\ntype ByteStringToStringMode int\n\nconst (\n\t// ByteStringToStringForbidden generates an error on an attempt to decode a CBOR byte string into a Go string.\n\tByteStringToStringForbidden ByteStringToStringMode = iota\n\n\t// ByteStringToStringAllowed permits decoding a CBOR byte string into a Go string.\n\tByteStringToStringAllowed\n\n\t// ByteStringToStringAllowedWithExpectedLaterEncoding permits decoding a CBOR byte string\n\t// into a Go string. Also, if the byte string is enclosed (directly or indirectly) by one of\n\t// the \"expected later encoding\" tags (numbers 21 through 23), the destination string will\n\t// be populated by applying the designated text encoding to the contents of the input byte\n\t// string.\n\tByteStringToStringAllowedWithExpectedLaterEncoding\n\n\tmaxByteStringToStringMode\n)\n\nfunc (bstsm ByteStringToStringMode) valid() bool {\n\treturn bstsm >= 0 && bstsm < maxByteStringToStringMode\n}\n\n// FieldNameByteStringMode specifies the behavior when decoding a CBOR byte string map key as a Go struct field name.\ntype FieldNameByteStringMode int\n\nconst (\n\t// FieldNameByteStringForbidden generates an error on an attempt to decode a CBOR byte string map key as a Go struct field name.\n\tFieldNameByteStringForbidden FieldNameByteStringMode = iota\n\n\t// FieldNameByteStringAllowed permits CBOR byte string map keys to be recognized as Go struct field names.\n\tFieldNameByteStringAllowed\n\n\tmaxFieldNameByteStringMode\n)\n\nfunc (fnbsm FieldNameByteStringMode) valid() bool {\n\treturn fnbsm >= 0 && fnbsm < maxFieldNameByteStringMode\n}\n\n// UnrecognizedTagToAnyMode specifies how to decode unrecognized CBOR tag into an empty interface (any).\n// Currently, recognized CBOR tag numbers are 0, 1, 2, 3, or registered by TagSet.\ntype UnrecognizedTagToAnyMode int\n\nconst (\n\t// UnrecognizedTagNumAndContentToAny decodes CBOR tag number and tag content to cbor.Tag\n\t// when decoding unrecognized CBOR tag into an empty interface.\n\tUnrecognizedTagNumAndContentToAny UnrecognizedTagToAnyMode = iota\n\n\t// UnrecognizedTagContentToAny decodes only CBOR tag content (into its default type)\n\t// when decoding unrecognized CBOR tag into an empty interface.\n\tUnrecognizedTagContentToAny\n\n\tmaxUnrecognizedTagToAny\n)\n\nfunc (uttam UnrecognizedTagToAnyMode) valid() bool {\n\treturn uttam >= 0 && uttam < maxUnrecognizedTagToAny\n}\n\n// TimeTagToAnyMode specifies how to decode CBOR tag 0 and 1 into an empty interface (any).\n// Based on the specified mode, Unmarshal can return a time.Time value or a time string in a specific format.\ntype TimeTagToAnyMode int\n\nconst (\n\t// TimeTagToTime decodes CBOR tag 0 and 1 into a time.Time value\n\t// when decoding tag 0 or 1 into an empty interface.\n\tTimeTagToTime TimeTagToAnyMode = iota\n\n\t// TimeTagToRFC3339 decodes CBOR tag 0 and 1 into a time string in RFC3339 format\n\t// when decoding tag 0 or 1 into an empty interface.\n\tTimeTagToRFC3339\n\n\t// TimeTagToRFC3339Nano decodes CBOR tag 0 and 1 into a time string in RFC3339Nano format\n\t// when decoding tag 0 or 1 into an empty interface.\n\tTimeTagToRFC3339Nano\n\n\tmaxTimeTagToAnyMode\n)\n\nfunc (tttam TimeTagToAnyMode) valid() bool {\n\treturn tttam >= 0 && tttam < maxTimeTagToAnyMode\n}\n\n// SimpleValueRegistry is a registry of unmarshaling behaviors for each possible CBOR simple value\n// number (0...23 and 32...255).\ntype SimpleValueRegistry struct {\n\trejected [256]bool\n}\n\n// WithRejectedSimpleValue registers the given simple value as rejected. If the simple value is\n// encountered in a CBOR input during unmarshaling, an UnacceptableDataItemError is returned.\nfunc WithRejectedSimpleValue(sv SimpleValue) func(*SimpleValueRegistry) error {\n\treturn func(r *SimpleValueRegistry) error {\n\t\tif sv >= 24 && sv <= 31 {\n\t\t\treturn fmt.Errorf(\"cbor: cannot set analog for reserved simple value %d\", sv)\n\t\t}\n\t\tr.rejected[sv] = true\n\t\treturn nil\n\t}\n}\n\n// Creates a new SimpleValueRegistry. The registry state is initialized by executing the provided\n// functions in order against a registry that is pre-populated with the defaults for all well-formed\n// simple value numbers.\nfunc NewSimpleValueRegistryFromDefaults(fns ...func(*SimpleValueRegistry) error) (*SimpleValueRegistry, error) {\n\tvar r SimpleValueRegistry\n\tfor _, fn := range fns {\n\t\tif err := fn(&r); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn &r, nil\n}\n\n// NaNMode specifies how to decode floating-point values (major type 7, additional information 25\n// through 27) representing NaN (not-a-number).\ntype NaNMode int\n\nconst (\n\t// NaNDecodeAllowed will decode NaN values to Go float32 or float64.\n\tNaNDecodeAllowed NaNMode = iota\n\n\t// NaNDecodeForbidden will return an UnacceptableDataItemError on an attempt to decode a NaN value.\n\tNaNDecodeForbidden\n\n\tmaxNaNDecode\n)\n\nfunc (ndm NaNMode) valid() bool {\n\treturn ndm >= 0 && ndm < maxNaNDecode\n}\n\n// InfMode specifies how to decode floating-point values (major type 7, additional information 25\n// through 27) representing positive or negative infinity.\ntype InfMode int\n\nconst (\n\t// InfDecodeAllowed will decode infinite values to Go float32 or float64.\n\tInfDecodeAllowed InfMode = iota\n\n\t// InfDecodeForbidden will return an UnacceptableDataItemError on an attempt to decode an\n\t// infinite value.\n\tInfDecodeForbidden\n\n\tmaxInfDecode\n)\n\nfunc (idm InfMode) valid() bool {\n\treturn idm >= 0 && idm < maxInfDecode\n}\n\n// ByteStringToTimeMode specifies the behavior when decoding a CBOR byte string into a Go time.Time.\ntype ByteStringToTimeMode int\n\nconst (\n\t// ByteStringToTimeForbidden generates an error on an attempt to decode a CBOR byte string into a Go time.Time.\n\tByteStringToTimeForbidden ByteStringToTimeMode = iota\n\n\t// ByteStringToTimeAllowed permits decoding a CBOR byte string into a Go time.Time.\n\tByteStringToTimeAllowed\n\n\tmaxByteStringToTimeMode\n)\n\nfunc (bttm ByteStringToTimeMode) valid() bool {\n\treturn bttm >= 0 && bttm < maxByteStringToTimeMode\n}\n\n// ByteStringExpectedFormatMode specifies how to decode CBOR byte string into Go byte slice\n// when the byte string is NOT enclosed in CBOR tag 21, 22, or 23.  An error is returned if\n// the CBOR byte string does not contain the expected format (e.g. base64) specified.\n// For tags 21-23, see \"Expected Later Encoding for CBOR-to-JSON Converters\"\n// in RFC 8949 Section 3.4.5.2.\ntype ByteStringExpectedFormatMode int\n\nconst (\n\t// ByteStringExpectedFormatNone copies the unmodified CBOR byte string into Go byte slice\n\t// if the byte string is not tagged by CBOR tag 21-23.\n\tByteStringExpectedFormatNone ByteStringExpectedFormatMode = iota\n\n\t// ByteStringExpectedBase64URL expects CBOR byte strings to contain base64url-encoded bytes\n\t// if the byte string is not tagged by CBOR tag 21-23.  The decoder will attempt to decode\n\t// the base64url-encoded bytes into Go slice.\n\tByteStringExpectedBase64URL\n\n\t// ByteStringExpectedBase64 expects CBOR byte strings to contain base64-encoded bytes\n\t// if the byte string is not tagged by CBOR tag 21-23.  The decoder will attempt to decode\n\t// the base64-encoded bytes into Go slice.\n\tByteStringExpectedBase64\n\n\t// ByteStringExpectedBase16 expects CBOR byte strings to contain base16-encoded bytes\n\t// if the byte string is not tagged by CBOR tag 21-23.  The decoder will attempt to decode\n\t// the base16-encoded bytes into Go slice.\n\tByteStringExpectedBase16\n\n\tmaxByteStringExpectedFormatMode\n)\n\nfunc (bsefm ByteStringExpectedFormatMode) valid() bool {\n\treturn bsefm >= 0 && bsefm < maxByteStringExpectedFormatMode\n}\n\n// BignumTagMode specifies whether or not the \"bignum\" tags 2 and 3 (RFC 8949 Section 3.4.3) can be\n// decoded.\ntype BignumTagMode int\n\nconst (\n\t// BignumTagAllowed allows bignum tags to be decoded.\n\tBignumTagAllowed BignumTagMode = iota\n\n\t// BignumTagForbidden produces an UnacceptableDataItemError during Unmarshal if a bignum tag\n\t// is encountered in the input.\n\tBignumTagForbidden\n\n\tmaxBignumTag\n)\n\nfunc (btm BignumTagMode) valid() bool {\n\treturn btm >= 0 && btm < maxBignumTag\n}\n\n// BinaryUnmarshalerMode specifies how to decode into types that implement\n// encoding.BinaryUnmarshaler.\ntype BinaryUnmarshalerMode int\n\nconst (\n\t// BinaryUnmarshalerByteString will invoke UnmarshalBinary on the contents of a CBOR byte\n\t// string when decoding into a value that implements BinaryUnmarshaler.\n\tBinaryUnmarshalerByteString BinaryUnmarshalerMode = iota\n\n\t// BinaryUnmarshalerNone does not recognize BinaryUnmarshaler implementations during decode.\n\tBinaryUnmarshalerNone\n\n\tmaxBinaryUnmarshalerMode\n)\n\nfunc (bum BinaryUnmarshalerMode) valid() bool {\n\treturn bum >= 0 && bum < maxBinaryUnmarshalerMode\n}\n\n// DecOptions specifies decoding options.\ntype DecOptions struct {\n\t// DupMapKey specifies whether to enforce duplicate map key.\n\tDupMapKey DupMapKeyMode\n\n\t// TimeTag specifies whether or not untagged data items, or tags other\n\t// than tag 0 and tag 1, can be decoded to time.Time. If tag 0 or tag 1\n\t// appears in an input, the type of its content is always validated as\n\t// specified in RFC 8949. That behavior is not controlled by this\n\t// option. The behavior of the supported modes are:\n\t//\n\t//   DecTagIgnored (default): Untagged text strings and text strings\n\t//   enclosed in tags other than 0 and 1 are decoded as though enclosed\n\t//   in tag 0. Untagged unsigned integers, negative integers, and\n\t//   floating-point numbers (or those enclosed in tags other than 0 and\n\t//   1) are decoded as though enclosed in tag 1. Decoding a tag other\n\t//   than 0 or 1 enclosing simple values null or undefined into a\n\t//   time.Time does not modify the destination value.\n\t//\n\t//   DecTagOptional: Untagged text strings are decoded as though\n\t//   enclosed in tag 0. Untagged unsigned integers, negative integers,\n\t//   and floating-point numbers are decoded as though enclosed in tag\n\t//   1. Tags other than 0 and 1 will produce an error on attempts to\n\t//   decode them into a time.Time.\n\t//\n\t//   DecTagRequired: Only tags 0 and 1 can be decoded to time.Time. Any\n\t//   other input will produce an error.\n\tTimeTag DecTagMode\n\n\t// MaxNestedLevels specifies the max nested levels allowed for any combination of CBOR array, maps, and tags.\n\t// Default is 32 levels and it can be set to [4, 65535]. Note that higher maximum levels of nesting can\n\t// require larger amounts of stack to deserialize. Don't increase this higher than you require.\n\tMaxNestedLevels int\n\n\t// MaxArrayElements specifies the max number of elements for CBOR arrays.\n\t// Default is 128*1024=131072 and it can be set to [16, 2147483647]\n\tMaxArrayElements int\n\n\t// MaxMapPairs specifies the max number of key-value pairs for CBOR maps.\n\t// Default is 128*1024=131072 and it can be set to [16, 2147483647]\n\tMaxMapPairs int\n\n\t// IndefLength specifies whether to allow indefinite length CBOR items.\n\tIndefLength IndefLengthMode\n\n\t// TagsMd specifies whether to allow CBOR tags (major type 6).\n\tTagsMd TagsMode\n\n\t// IntDec specifies which Go integer type (int64 or uint64) to use\n\t// when decoding CBOR int (major type 0 and 1) to Go interface{}.\n\tIntDec IntDecMode\n\n\t// MapKeyByteString specifies how to decode CBOR byte string as map key\n\t// when decoding CBOR map with byte string key into an empty interface value.\n\t// By default, an error is returned when attempting to decode CBOR byte string\n\t// as map key because Go doesn't allow []byte as map key.\n\tMapKeyByteString MapKeyByteStringMode\n\n\t// ExtraReturnErrors specifies extra conditions that should be treated as errors.\n\tExtraReturnErrors ExtraDecErrorCond\n\n\t// DefaultMapType specifies Go map type to create and decode to\n\t// when unmarshalling CBOR into an empty interface value.\n\t// By default, unmarshal uses map[interface{}]interface{}.\n\tDefaultMapType reflect.Type\n\n\t// UTF8 specifies if decoder should decode CBOR Text containing invalid UTF-8.\n\t// By default, unmarshal rejects CBOR text containing invalid UTF-8.\n\tUTF8 UTF8Mode\n\n\t// FieldNameMatching specifies how string keys in CBOR maps are matched to Go struct field names.\n\tFieldNameMatching FieldNameMatchingMode\n\n\t// BigIntDec specifies how to decode CBOR bignum to Go interface{}.\n\tBigIntDec BigIntDecMode\n\n\t// DefaultByteStringType is the Go type that should be produced when decoding a CBOR byte\n\t// string into an empty interface value. Types to which a []byte is convertible are valid\n\t// for this option, except for array and pointer-to-array types. If nil, the default is\n\t// []byte.\n\tDefaultByteStringType reflect.Type\n\n\t// ByteStringToString specifies the behavior when decoding a CBOR byte string into a Go string.\n\tByteStringToString ByteStringToStringMode\n\n\t// FieldNameByteString specifies the behavior when decoding a CBOR byte string map key as a\n\t// Go struct field name.\n\tFieldNameByteString FieldNameByteStringMode\n\n\t// UnrecognizedTagToAny specifies how to decode unrecognized CBOR tag into an empty interface.\n\t// Currently, recognized CBOR tag numbers are 0, 1, 2, 3, or registered by TagSet.\n\tUnrecognizedTagToAny UnrecognizedTagToAnyMode\n\n\t// TimeTagToAny specifies how to decode CBOR tag 0 and 1 into an empty interface (any).\n\t// Based on the specified mode, Unmarshal can return a time.Time value or a time string in a specific format.\n\tTimeTagToAny TimeTagToAnyMode\n\n\t// SimpleValues is an immutable mapping from each CBOR simple value to a corresponding\n\t// unmarshal behavior. If nil, the simple values false, true, null, and undefined are mapped\n\t// to the Go analog values false, true, nil, and nil, respectively, and all other simple\n\t// values N (except the reserved simple values 24 through 31) are mapped to\n\t// cbor.SimpleValue(N). In other words, all well-formed simple values can be decoded.\n\t//\n\t// Users may provide a custom SimpleValueRegistry constructed via\n\t// NewSimpleValueRegistryFromDefaults.\n\tSimpleValues *SimpleValueRegistry\n\n\t// NaN specifies how to decode floating-point values (major type 7, additional information\n\t// 25 through 27) representing NaN (not-a-number).\n\tNaN NaNMode\n\n\t// Inf specifies how to decode floating-point values (major type 7, additional information\n\t// 25 through 27) representing positive or negative infinity.\n\tInf InfMode\n\n\t// ByteStringToTime specifies how to decode CBOR byte string into Go time.Time.\n\tByteStringToTime ByteStringToTimeMode\n\n\t// ByteStringExpectedFormat specifies how to decode CBOR byte string into Go byte slice\n\t// when the byte string is NOT enclosed in CBOR tag 21, 22, or 23.  An error is returned if\n\t// the CBOR byte string does not contain the expected format (e.g. base64) specified.\n\t// For tags 21-23, see \"Expected Later Encoding for CBOR-to-JSON Converters\"\n\t// in RFC 8949 Section 3.4.5.2.\n\tByteStringExpectedFormat ByteStringExpectedFormatMode\n\n\t// BignumTag specifies whether or not the \"bignum\" tags 2 and 3 (RFC 8949 Section 3.4.3) can\n\t// be decoded. Unlike BigIntDec, this option applies to all bignum tags encountered in a\n\t// CBOR input, independent of the type of the destination value of a particular Unmarshal\n\t// operation.\n\tBignumTag BignumTagMode\n\n\t// BinaryUnmarshaler specifies how to decode into types that implement\n\t// encoding.BinaryUnmarshaler.\n\tBinaryUnmarshaler BinaryUnmarshalerMode\n}\n\n// DecMode returns DecMode with immutable options and no tags (safe for concurrency).\nfunc (opts DecOptions) DecMode() (DecMode, error) { //nolint:gocritic // ignore hugeParam\n\treturn opts.decMode()\n}\n\n// validForTags checks that the provided tag set is compatible with these options and returns a\n// non-nil error if and only if the provided tag set is incompatible.\nfunc (opts DecOptions) validForTags(tags TagSet) error { //nolint:gocritic // ignore hugeParam\n\tif opts.TagsMd == TagsForbidden {\n\t\treturn errors.New(\"cbor: cannot create DecMode with TagSet when TagsMd is TagsForbidden\")\n\t}\n\tif tags == nil {\n\t\treturn errors.New(\"cbor: cannot create DecMode with nil value as TagSet\")\n\t}\n\tif opts.ByteStringToString == ByteStringToStringAllowedWithExpectedLaterEncoding ||\n\t\topts.ByteStringExpectedFormat != ByteStringExpectedFormatNone {\n\t\tfor _, tagNum := range []uint64{\n\t\t\ttagNumExpectedLaterEncodingBase64URL,\n\t\t\ttagNumExpectedLaterEncodingBase64,\n\t\t\ttagNumExpectedLaterEncodingBase16,\n\t\t} {\n\t\t\tif rt := tags.getTypeFromTagNum([]uint64{tagNum}); rt != nil {\n\t\t\t\treturn fmt.Errorf(\"cbor: DecMode with non-default StringExpectedEncoding or ByteSliceExpectedEncoding treats tag %d as built-in and conflicts with the provided TagSet's registration of %v\", tagNum, rt)\n\t\t\t}\n\t\t}\n\n\t}\n\treturn nil\n}\n\n// DecModeWithTags returns DecMode with options and tags that are both immutable (safe for concurrency).\nfunc (opts DecOptions) DecModeWithTags(tags TagSet) (DecMode, error) { //nolint:gocritic // ignore hugeParam\n\tif err := opts.validForTags(tags); err != nil {\n\t\treturn nil, err\n\t}\n\tdm, err := opts.decMode()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Copy tags\n\tts := tagSet(make(map[reflect.Type]*tagItem))\n\tsyncTags := tags.(*syncTagSet)\n\tsyncTags.RLock()\n\tfor contentType, tag := range syncTags.t {\n\t\tif tag.opts.DecTag != DecTagIgnored {\n\t\t\tts[contentType] = tag\n\t\t}\n\t}\n\tsyncTags.RUnlock()\n\n\tif len(ts) > 0 {\n\t\tdm.tags = ts\n\t}\n\n\treturn dm, nil\n}\n\n// DecModeWithSharedTags returns DecMode with immutable options and mutable shared tags (safe for concurrency).\nfunc (opts DecOptions) DecModeWithSharedTags(tags TagSet) (DecMode, error) { //nolint:gocritic // ignore hugeParam\n\tif err := opts.validForTags(tags); err != nil {\n\t\treturn nil, err\n\t}\n\tdm, err := opts.decMode()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdm.tags = tags\n\treturn dm, nil\n}\n\nconst (\n\tdefaultMaxArrayElements = 131072\n\tminMaxArrayElements     = 16\n\tmaxMaxArrayElements     = 2147483647\n\n\tdefaultMaxMapPairs = 131072\n\tminMaxMapPairs     = 16\n\tmaxMaxMapPairs     = 2147483647\n\n\tdefaultMaxNestedLevels = 32\n\tminMaxNestedLevels     = 4\n\tmaxMaxNestedLevels     = 65535\n)\n\nvar defaultSimpleValues = func() *SimpleValueRegistry {\n\tregistry, err := NewSimpleValueRegistryFromDefaults()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn registry\n}()\n\n//nolint:gocyclo // Each option comes with some manageable boilerplate\nfunc (opts DecOptions) decMode() (*decMode, error) { //nolint:gocritic // ignore hugeParam\n\tif !opts.DupMapKey.valid() {\n\t\treturn nil, errors.New(\"cbor: invalid DupMapKey \" + strconv.Itoa(int(opts.DupMapKey)))\n\t}\n\n\tif !opts.TimeTag.valid() {\n\t\treturn nil, errors.New(\"cbor: invalid TimeTag \" + strconv.Itoa(int(opts.TimeTag)))\n\t}\n\n\tif !opts.IndefLength.valid() {\n\t\treturn nil, errors.New(\"cbor: invalid IndefLength \" + strconv.Itoa(int(opts.IndefLength)))\n\t}\n\n\tif !opts.TagsMd.valid() {\n\t\treturn nil, errors.New(\"cbor: invalid TagsMd \" + strconv.Itoa(int(opts.TagsMd)))\n\t}\n\n\tif !opts.IntDec.valid() {\n\t\treturn nil, errors.New(\"cbor: invalid IntDec \" + strconv.Itoa(int(opts.IntDec)))\n\t}\n\n\tif !opts.MapKeyByteString.valid() {\n\t\treturn nil, errors.New(\"cbor: invalid MapKeyByteString \" + strconv.Itoa(int(opts.MapKeyByteString)))\n\t}\n\n\tif opts.MaxNestedLevels == 0 {\n\t\topts.MaxNestedLevels = defaultMaxNestedLevels\n\t} else if opts.MaxNestedLevels < minMaxNestedLevels || opts.MaxNestedLevels > maxMaxNestedLevels {\n\t\treturn nil, errors.New(\"cbor: invalid MaxNestedLevels \" + strconv.Itoa(opts.MaxNestedLevels) +\n\t\t\t\" (range is [\" + strconv.Itoa(minMaxNestedLevels) + \", \" + strconv.Itoa(maxMaxNestedLevels) + \"])\")\n\t}\n\n\tif opts.MaxArrayElements == 0 {\n\t\topts.MaxArrayElements = defaultMaxArrayElements\n\t} else if opts.MaxArrayElements < minMaxArrayElements || opts.MaxArrayElements > maxMaxArrayElements {\n\t\treturn nil, errors.New(\"cbor: invalid MaxArrayElements \" + strconv.Itoa(opts.MaxArrayElements) +\n\t\t\t\" (range is [\" + strconv.Itoa(minMaxArrayElements) + \", \" + strconv.Itoa(maxMaxArrayElements) + \"])\")\n\t}\n\n\tif opts.MaxMapPairs == 0 {\n\t\topts.MaxMapPairs = defaultMaxMapPairs\n\t} else if opts.MaxMapPairs < minMaxMapPairs || opts.MaxMapPairs > maxMaxMapPairs {\n\t\treturn nil, errors.New(\"cbor: invalid MaxMapPairs \" + strconv.Itoa(opts.MaxMapPairs) +\n\t\t\t\" (range is [\" + strconv.Itoa(minMaxMapPairs) + \", \" + strconv.Itoa(maxMaxMapPairs) + \"])\")\n\t}\n\n\tif !opts.ExtraReturnErrors.valid() {\n\t\treturn nil, errors.New(\"cbor: invalid ExtraReturnErrors \" + strconv.Itoa(int(opts.ExtraReturnErrors)))\n\t}\n\n\tif opts.DefaultMapType != nil && opts.DefaultMapType.Kind() != reflect.Map {\n\t\treturn nil, fmt.Errorf(\"cbor: invalid DefaultMapType %s\", opts.DefaultMapType)\n\t}\n\n\tif !opts.UTF8.valid() {\n\t\treturn nil, errors.New(\"cbor: invalid UTF8 \" + strconv.Itoa(int(opts.UTF8)))\n\t}\n\n\tif !opts.FieldNameMatching.valid() {\n\t\treturn nil, errors.New(\"cbor: invalid FieldNameMatching \" + strconv.Itoa(int(opts.FieldNameMatching)))\n\t}\n\n\tif !opts.BigIntDec.valid() {\n\t\treturn nil, errors.New(\"cbor: invalid BigIntDec \" + strconv.Itoa(int(opts.BigIntDec)))\n\t}\n\n\tif opts.DefaultByteStringType != nil &&\n\t\topts.DefaultByteStringType.Kind() != reflect.String &&\n\t\t(opts.DefaultByteStringType.Kind() != reflect.Slice || opts.DefaultByteStringType.Elem().Kind() != reflect.Uint8) {\n\t\treturn nil, fmt.Errorf(\"cbor: invalid DefaultByteStringType: %s is not of kind string or []uint8\", opts.DefaultByteStringType)\n\t}\n\n\tif !opts.ByteStringToString.valid() {\n\t\treturn nil, errors.New(\"cbor: invalid ByteStringToString \" + strconv.Itoa(int(opts.ByteStringToString)))\n\t}\n\n\tif !opts.FieldNameByteString.valid() {\n\t\treturn nil, errors.New(\"cbor: invalid FieldNameByteString \" + strconv.Itoa(int(opts.FieldNameByteString)))\n\t}\n\n\tif !opts.UnrecognizedTagToAny.valid() {\n\t\treturn nil, errors.New(\"cbor: invalid UnrecognizedTagToAnyMode \" + strconv.Itoa(int(opts.UnrecognizedTagToAny)))\n\t}\n\tsimpleValues := opts.SimpleValues\n\tif simpleValues == nil {\n\t\tsimpleValues = defaultSimpleValues\n\t}\n\n\tif !opts.TimeTagToAny.valid() {\n\t\treturn nil, errors.New(\"cbor: invalid TimeTagToAny \" + strconv.Itoa(int(opts.TimeTagToAny)))\n\t}\n\n\tif !opts.NaN.valid() {\n\t\treturn nil, errors.New(\"cbor: invalid NaNDec \" + strconv.Itoa(int(opts.NaN)))\n\t}\n\n\tif !opts.Inf.valid() {\n\t\treturn nil, errors.New(\"cbor: invalid InfDec \" + strconv.Itoa(int(opts.Inf)))\n\t}\n\n\tif !opts.ByteStringToTime.valid() {\n\t\treturn nil, errors.New(\"cbor: invalid ByteStringToTime \" + strconv.Itoa(int(opts.ByteStringToTime)))\n\t}\n\n\tif !opts.ByteStringExpectedFormat.valid() {\n\t\treturn nil, errors.New(\"cbor: invalid ByteStringExpectedFormat \" + strconv.Itoa(int(opts.ByteStringExpectedFormat)))\n\t}\n\n\tif !opts.BignumTag.valid() {\n\t\treturn nil, errors.New(\"cbor: invalid BignumTag \" + strconv.Itoa(int(opts.BignumTag)))\n\t}\n\n\tif !opts.BinaryUnmarshaler.valid() {\n\t\treturn nil, errors.New(\"cbor: invalid BinaryUnmarshaler \" + strconv.Itoa(int(opts.BinaryUnmarshaler)))\n\t}\n\n\tdm := decMode{\n\t\tdupMapKey:                opts.DupMapKey,\n\t\ttimeTag:                  opts.TimeTag,\n\t\tmaxNestedLevels:          opts.MaxNestedLevels,\n\t\tmaxArrayElements:         opts.MaxArrayElements,\n\t\tmaxMapPairs:              opts.MaxMapPairs,\n\t\tindefLength:              opts.IndefLength,\n\t\ttagsMd:                   opts.TagsMd,\n\t\tintDec:                   opts.IntDec,\n\t\tmapKeyByteString:         opts.MapKeyByteString,\n\t\textraReturnErrors:        opts.ExtraReturnErrors,\n\t\tdefaultMapType:           opts.DefaultMapType,\n\t\tutf8:                     opts.UTF8,\n\t\tfieldNameMatching:        opts.FieldNameMatching,\n\t\tbigIntDec:                opts.BigIntDec,\n\t\tdefaultByteStringType:    opts.DefaultByteStringType,\n\t\tbyteStringToString:       opts.ByteStringToString,\n\t\tfieldNameByteString:      opts.FieldNameByteString,\n\t\tunrecognizedTagToAny:     opts.UnrecognizedTagToAny,\n\t\ttimeTagToAny:             opts.TimeTagToAny,\n\t\tsimpleValues:             simpleValues,\n\t\tnanDec:                   opts.NaN,\n\t\tinfDec:                   opts.Inf,\n\t\tbyteStringToTime:         opts.ByteStringToTime,\n\t\tbyteStringExpectedFormat: opts.ByteStringExpectedFormat,\n\t\tbignumTag:                opts.BignumTag,\n\t\tbinaryUnmarshaler:        opts.BinaryUnmarshaler,\n\t}\n\n\treturn &dm, nil\n}\n\n// DecMode is the main interface for CBOR decoding.\ntype DecMode interface {\n\t// Unmarshal parses the CBOR-encoded data into the value pointed to by v\n\t// using the decoding mode.  If v is nil, not a pointer, or a nil pointer,\n\t// Unmarshal returns an error.\n\t//\n\t// See the documentation for Unmarshal for details.\n\tUnmarshal(data []byte, v interface{}) error\n\n\t// UnmarshalFirst parses the first CBOR data item into the value pointed to by v\n\t// using the decoding mode.  Any remaining bytes are returned in rest.\n\t//\n\t// If v is nil, not a pointer, or a nil pointer, UnmarshalFirst returns an error.\n\t//\n\t// See the documentation for Unmarshal for details.\n\tUnmarshalFirst(data []byte, v interface{}) (rest []byte, err error)\n\n\t// Valid checks whether data is a well-formed encoded CBOR data item and\n\t// that it complies with configurable restrictions such as MaxNestedLevels,\n\t// MaxArrayElements, MaxMapPairs, etc.\n\t//\n\t// If there are any remaining bytes after the CBOR data item,\n\t// an ExtraneousDataError is returned.\n\t//\n\t// WARNING: Valid doesn't check if encoded CBOR data item is valid (i.e. validity)\n\t// and RFC 8949 distinctly defines what is \"Valid\" and what is \"Well-formed\".\n\t//\n\t// Deprecated: Valid is kept for compatibility and should not be used.\n\t// Use Wellformed instead because it has a more appropriate name.\n\tValid(data []byte) error\n\n\t// Wellformed checks whether data is a well-formed encoded CBOR data item and\n\t// that it complies with configurable restrictions such as MaxNestedLevels,\n\t// MaxArrayElements, MaxMapPairs, etc.\n\t//\n\t// If there are any remaining bytes after the CBOR data item,\n\t// an ExtraneousDataError is returned.\n\tWellformed(data []byte) error\n\n\t// NewDecoder returns a new decoder that reads from r using dm DecMode.\n\tNewDecoder(r io.Reader) *Decoder\n\n\t// DecOptions returns user specified options used to create this DecMode.\n\tDecOptions() DecOptions\n}\n\ntype decMode struct {\n\ttags                     tagProvider\n\tdupMapKey                DupMapKeyMode\n\ttimeTag                  DecTagMode\n\tmaxNestedLevels          int\n\tmaxArrayElements         int\n\tmaxMapPairs              int\n\tindefLength              IndefLengthMode\n\ttagsMd                   TagsMode\n\tintDec                   IntDecMode\n\tmapKeyByteString         MapKeyByteStringMode\n\textraReturnErrors        ExtraDecErrorCond\n\tdefaultMapType           reflect.Type\n\tutf8                     UTF8Mode\n\tfieldNameMatching        FieldNameMatchingMode\n\tbigIntDec                BigIntDecMode\n\tdefaultByteStringType    reflect.Type\n\tbyteStringToString       ByteStringToStringMode\n\tfieldNameByteString      FieldNameByteStringMode\n\tunrecognizedTagToAny     UnrecognizedTagToAnyMode\n\ttimeTagToAny             TimeTagToAnyMode\n\tsimpleValues             *SimpleValueRegistry\n\tnanDec                   NaNMode\n\tinfDec                   InfMode\n\tbyteStringToTime         ByteStringToTimeMode\n\tbyteStringExpectedFormat ByteStringExpectedFormatMode\n\tbignumTag                BignumTagMode\n\tbinaryUnmarshaler        BinaryUnmarshalerMode\n}\n\nvar defaultDecMode, _ = DecOptions{}.decMode()\n\n// DecOptions returns user specified options used to create this DecMode.\nfunc (dm *decMode) DecOptions() DecOptions {\n\tsimpleValues := dm.simpleValues\n\tif simpleValues == defaultSimpleValues {\n\t\t// Users can't explicitly set this to defaultSimpleValues. It must have been nil in\n\t\t// the original DecOptions.\n\t\tsimpleValues = nil\n\t}\n\n\treturn DecOptions{\n\t\tDupMapKey:                dm.dupMapKey,\n\t\tTimeTag:                  dm.timeTag,\n\t\tMaxNestedLevels:          dm.maxNestedLevels,\n\t\tMaxArrayElements:         dm.maxArrayElements,\n\t\tMaxMapPairs:              dm.maxMapPairs,\n\t\tIndefLength:              dm.indefLength,\n\t\tTagsMd:                   dm.tagsMd,\n\t\tIntDec:                   dm.intDec,\n\t\tMapKeyByteString:         dm.mapKeyByteString,\n\t\tExtraReturnErrors:        dm.extraReturnErrors,\n\t\tDefaultMapType:           dm.defaultMapType,\n\t\tUTF8:                     dm.utf8,\n\t\tFieldNameMatching:        dm.fieldNameMatching,\n\t\tBigIntDec:                dm.bigIntDec,\n\t\tDefaultByteStringType:    dm.defaultByteStringType,\n\t\tByteStringToString:       dm.byteStringToString,\n\t\tFieldNameByteString:      dm.fieldNameByteString,\n\t\tUnrecognizedTagToAny:     dm.unrecognizedTagToAny,\n\t\tTimeTagToAny:             dm.timeTagToAny,\n\t\tSimpleValues:             simpleValues,\n\t\tNaN:                      dm.nanDec,\n\t\tInf:                      dm.infDec,\n\t\tByteStringToTime:         dm.byteStringToTime,\n\t\tByteStringExpectedFormat: dm.byteStringExpectedFormat,\n\t\tBignumTag:                dm.bignumTag,\n\t\tBinaryUnmarshaler:        dm.binaryUnmarshaler,\n\t}\n}\n\n// Unmarshal parses the CBOR-encoded data into the value pointed to by v\n// using dm decoding mode.  If v is nil, not a pointer, or a nil pointer,\n// Unmarshal returns an error.\n//\n// See the documentation for Unmarshal for details.\nfunc (dm *decMode) Unmarshal(data []byte, v interface{}) error {\n\td := decoder{data: data, dm: dm}\n\n\t// Check well-formedness.\n\toff := d.off                      // Save offset before data validation\n\terr := d.wellformed(false, false) // don't allow any extra data after valid data item.\n\td.off = off                       // Restore offset\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn d.value(v)\n}\n\n// UnmarshalFirst parses the first CBOR data item into the value pointed to by v\n// using dm decoding mode.  Any remaining bytes are returned in rest.\n//\n// If v is nil, not a pointer, or a nil pointer, UnmarshalFirst returns an error.\n//\n// See the documentation for Unmarshal for details.\nfunc (dm *decMode) UnmarshalFirst(data []byte, v interface{}) (rest []byte, err error) {\n\td := decoder{data: data, dm: dm}\n\n\t// check well-formedness.\n\toff := d.off                    // Save offset before data validation\n\terr = d.wellformed(true, false) // allow extra data after well-formed data item\n\td.off = off                     // Restore offset\n\n\t// If it is well-formed, parse the value. This is structured like this to allow\n\t// better test coverage\n\tif err == nil {\n\t\terr = d.value(v)\n\t}\n\n\t// If either wellformed or value returned an error, do not return rest bytes\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Return the rest of the data slice (which might be len 0)\n\treturn d.data[d.off:], nil\n}\n\n// Valid checks whether data is a well-formed encoded CBOR data item and\n// that it complies with configurable restrictions such as MaxNestedLevels,\n// MaxArrayElements, MaxMapPairs, etc.\n//\n// If there are any remaining bytes after the CBOR data item,\n// an ExtraneousDataError is returned.\n//\n// WARNING: Valid doesn't check if encoded CBOR data item is valid (i.e. validity)\n// and RFC 8949 distinctly defines what is \"Valid\" and what is \"Well-formed\".\n//\n// Deprecated: Valid is kept for compatibility and should not be used.\n// Use Wellformed instead because it has a more appropriate name.\nfunc (dm *decMode) Valid(data []byte) error {\n\treturn dm.Wellformed(data)\n}\n\n// Wellformed checks whether data is a well-formed encoded CBOR data item and\n// that it complies with configurable restrictions such as MaxNestedLevels,\n// MaxArrayElements, MaxMapPairs, etc.\n//\n// If there are any remaining bytes after the CBOR data item,\n// an ExtraneousDataError is returned.\nfunc (dm *decMode) Wellformed(data []byte) error {\n\td := decoder{data: data, dm: dm}\n\treturn d.wellformed(false, false)\n}\n\n// NewDecoder returns a new decoder that reads from r using dm DecMode.\nfunc (dm *decMode) NewDecoder(r io.Reader) *Decoder {\n\treturn &Decoder{r: r, d: decoder{dm: dm}}\n}\n\ntype decoder struct {\n\tdata []byte\n\toff  int // next read offset in data\n\tdm   *decMode\n\n\t// expectedLaterEncodingTags stores a stack of encountered \"Expected Later Encoding\" tags,\n\t// if any.\n\t//\n\t// The \"Expected Later Encoding\" tags (21 to 23) are valid for any data item. When decoding\n\t// byte strings, the effective encoding comes from the tag nearest to the byte string being\n\t// decoded. For example, the effective encoding of the byte string 21(22(h'41')) would be\n\t// controlled by tag 22,and in the data item 23(h'42', 22([21(h'43')])]) the effective\n\t// encoding of the byte strings h'42' and h'43' would be controlled by tag 23 and 21,\n\t// respectively.\n\texpectedLaterEncodingTags []uint64\n}\n\n// value decodes CBOR data item into the value pointed to by v.\n// If CBOR data item fails to be decoded into v,\n// error is returned and offset is moved to the next CBOR data item.\n// Precondition: d.data contains at least one well-formed CBOR data item.\nfunc (d *decoder) value(v interface{}) error {\n\t// v can't be nil, non-pointer, or nil pointer value.\n\tif v == nil {\n\t\treturn &InvalidUnmarshalError{\"cbor: Unmarshal(nil)\"}\n\t}\n\trv := reflect.ValueOf(v)\n\tif rv.Kind() != reflect.Ptr {\n\t\treturn &InvalidUnmarshalError{\"cbor: Unmarshal(non-pointer \" + rv.Type().String() + \")\"}\n\t} else if rv.IsNil() {\n\t\treturn &InvalidUnmarshalError{\"cbor: Unmarshal(nil \" + rv.Type().String() + \")\"}\n\t}\n\trv = rv.Elem()\n\treturn d.parseToValue(rv, getTypeInfo(rv.Type()))\n}\n\n// parseToValue decodes CBOR data to value.  It assumes data is well-formed,\n// and does not perform bounds checking.\nfunc (d *decoder) parseToValue(v reflect.Value, tInfo *typeInfo) error { //nolint:gocyclo\n\n\t// Decode CBOR nil or CBOR undefined to pointer value by setting pointer value to nil.\n\tif d.nextCBORNil() && v.Kind() == reflect.Ptr {\n\t\td.skip()\n\t\tv.Set(reflect.Zero(v.Type()))\n\t\treturn nil\n\t}\n\n\tif tInfo.spclType == specialTypeIface {\n\t\tif !v.IsNil() {\n\t\t\t// Use value type\n\t\t\tv = v.Elem()\n\t\t\ttInfo = getTypeInfo(v.Type())\n\t\t} else { //nolint:gocritic\n\t\t\t// Create and use registered type if CBOR data is registered tag\n\t\t\tif d.dm.tags != nil && d.nextCBORType() == cborTypeTag {\n\n\t\t\t\toff := d.off\n\t\t\t\tvar tagNums []uint64\n\t\t\t\tfor d.nextCBORType() == cborTypeTag {\n\t\t\t\t\t_, _, tagNum := d.getHead()\n\t\t\t\t\ttagNums = append(tagNums, tagNum)\n\t\t\t\t}\n\t\t\t\td.off = off\n\n\t\t\t\tregisteredType := d.dm.tags.getTypeFromTagNum(tagNums)\n\t\t\t\tif registeredType != nil {\n\t\t\t\t\tif registeredType.Implements(tInfo.nonPtrType) ||\n\t\t\t\t\t\treflect.PtrTo(registeredType).Implements(tInfo.nonPtrType) {\n\t\t\t\t\t\tv.Set(reflect.New(registeredType))\n\t\t\t\t\t\tv = v.Elem()\n\t\t\t\t\t\ttInfo = getTypeInfo(registeredType)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Create new value for the pointer v to point to.\n\t// At this point, CBOR value is not nil/undefined if v is a pointer.\n\tfor v.Kind() == reflect.Ptr {\n\t\tif v.IsNil() {\n\t\t\tif !v.CanSet() {\n\t\t\t\td.skip()\n\t\t\t\treturn errors.New(\"cbor: cannot set new value for \" + v.Type().String())\n\t\t\t}\n\t\t\tv.Set(reflect.New(v.Type().Elem()))\n\t\t}\n\t\tv = v.Elem()\n\t}\n\n\t// Strip self-described CBOR tag number.\n\tfor d.nextCBORType() == cborTypeTag {\n\t\toff := d.off\n\t\t_, _, tagNum := d.getHead()\n\t\tif tagNum != tagNumSelfDescribedCBOR {\n\t\t\td.off = off\n\t\t\tbreak\n\t\t}\n\t}\n\n\t// Check validity of supported built-in tags.\n\toff := d.off\n\tfor d.nextCBORType() == cborTypeTag {\n\t\t_, _, tagNum := d.getHead()\n\t\tif err := validBuiltinTag(tagNum, d.data[d.off]); err != nil {\n\t\t\td.skip()\n\t\t\treturn err\n\t\t}\n\t}\n\td.off = off\n\n\tif tInfo.spclType != specialTypeNone {\n\t\tswitch tInfo.spclType {\n\t\tcase specialTypeEmptyIface:\n\t\t\tiv, err := d.parse(false) // Skipped self-described CBOR tag number already.\n\t\t\tif iv != nil {\n\t\t\t\tv.Set(reflect.ValueOf(iv))\n\t\t\t}\n\t\t\treturn err\n\n\t\tcase specialTypeTag:\n\t\t\treturn d.parseToTag(v)\n\n\t\tcase specialTypeTime:\n\t\t\tif d.nextCBORNil() {\n\t\t\t\t// Decoding CBOR null and undefined to time.Time is no-op.\n\t\t\t\td.skip()\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\ttm, ok, err := d.parseToTime()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif ok {\n\t\t\t\tv.Set(reflect.ValueOf(tm))\n\t\t\t}\n\t\t\treturn nil\n\n\t\tcase specialTypeUnmarshalerIface:\n\t\t\treturn d.parseToUnmarshaler(v)\n\t\t}\n\t}\n\n\t// Check registered tag number\n\tif tagItem := d.getRegisteredTagItem(tInfo.nonPtrType); tagItem != nil {\n\t\tt := d.nextCBORType()\n\t\tif t != cborTypeTag {\n\t\t\tif tagItem.opts.DecTag == DecTagRequired {\n\t\t\t\td.skip() // Required tag number is absent, skip entire tag\n\t\t\t\treturn &UnmarshalTypeError{\n\t\t\t\t\tCBORType: t.String(),\n\t\t\t\t\tGoType:   tInfo.typ.String(),\n\t\t\t\t\terrorMsg: \"expect CBOR tag value\"}\n\t\t\t}\n\t\t} else if err := d.validRegisteredTagNums(tagItem); err != nil {\n\t\t\td.skip() // Skip tag content\n\t\t\treturn err\n\t\t}\n\t}\n\n\tt := d.nextCBORType()\n\n\tswitch t {\n\tcase cborTypePositiveInt:\n\t\t_, _, val := d.getHead()\n\t\treturn fillPositiveInt(t, val, v)\n\n\tcase cborTypeNegativeInt:\n\t\t_, _, val := d.getHead()\n\t\tif val > math.MaxInt64 {\n\t\t\t// CBOR negative integer overflows int64, use big.Int to store value.\n\t\t\tbi := new(big.Int)\n\t\t\tbi.SetUint64(val)\n\t\t\tbi.Add(bi, big.NewInt(1))\n\t\t\tbi.Neg(bi)\n\n\t\t\tif tInfo.nonPtrType == typeBigInt {\n\t\t\t\tv.Set(reflect.ValueOf(*bi))\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\treturn &UnmarshalTypeError{\n\t\t\t\tCBORType: t.String(),\n\t\t\t\tGoType:   tInfo.nonPtrType.String(),\n\t\t\t\terrorMsg: bi.String() + \" overflows Go's int64\",\n\t\t\t}\n\t\t}\n\t\tnValue := int64(-1) ^ int64(val)\n\t\treturn fillNegativeInt(t, nValue, v)\n\n\tcase cborTypeByteString:\n\t\tb, copied := d.parseByteString()\n\t\tb, converted, err := d.applyByteStringTextConversion(b, v.Type())\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcopied = copied || converted\n\t\treturn fillByteString(t, b, !copied, v, d.dm.byteStringToString, d.dm.binaryUnmarshaler)\n\n\tcase cborTypeTextString:\n\t\tb, err := d.parseTextString()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn fillTextString(t, b, v)\n\n\tcase cborTypePrimitives:\n\t\t_, ai, val := d.getHead()\n\t\tswitch ai {\n\t\tcase additionalInformationAsFloat16:\n\t\t\tf := float64(float16.Frombits(uint16(val)).Float32())\n\t\t\treturn fillFloat(t, f, v)\n\n\t\tcase additionalInformationAsFloat32:\n\t\t\tf := float64(math.Float32frombits(uint32(val)))\n\t\t\treturn fillFloat(t, f, v)\n\n\t\tcase additionalInformationAsFloat64:\n\t\t\tf := math.Float64frombits(val)\n\t\t\treturn fillFloat(t, f, v)\n\n\t\tdefault: // ai <= 24\n\t\t\tif d.dm.simpleValues.rejected[SimpleValue(val)] {\n\t\t\t\treturn &UnacceptableDataItemError{\n\t\t\t\t\tCBORType: t.String(),\n\t\t\t\t\tMessage:  \"simple value \" + strconv.FormatInt(int64(val), 10) + \" is not recognized\",\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tswitch ai {\n\t\t\tcase additionalInformationAsFalse,\n\t\t\t\tadditionalInformationAsTrue:\n\t\t\t\treturn fillBool(t, ai == additionalInformationAsTrue, v)\n\n\t\t\tcase additionalInformationAsNull,\n\t\t\t\tadditionalInformationAsUndefined:\n\t\t\t\treturn fillNil(t, v)\n\n\t\t\tdefault:\n\t\t\t\treturn fillPositiveInt(t, val, v)\n\t\t\t}\n\t\t}\n\n\tcase cborTypeTag:\n\t\t_, _, tagNum := d.getHead()\n\t\tswitch tagNum {\n\t\tcase tagNumUnsignedBignum:\n\t\t\t// Bignum (tag 2) can be decoded to uint, int, float, slice, array, or big.Int.\n\t\t\tb, copied := d.parseByteString()\n\t\t\tbi := new(big.Int).SetBytes(b)\n\n\t\t\tif tInfo.nonPtrType == typeBigInt {\n\t\t\t\tv.Set(reflect.ValueOf(*bi))\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tif tInfo.nonPtrKind == reflect.Slice || tInfo.nonPtrKind == reflect.Array {\n\t\t\t\treturn fillByteString(t, b, !copied, v, ByteStringToStringForbidden, d.dm.binaryUnmarshaler)\n\t\t\t}\n\t\t\tif bi.IsUint64() {\n\t\t\t\treturn fillPositiveInt(t, bi.Uint64(), v)\n\t\t\t}\n\t\t\treturn &UnmarshalTypeError{\n\t\t\t\tCBORType: t.String(),\n\t\t\t\tGoType:   tInfo.nonPtrType.String(),\n\t\t\t\terrorMsg: bi.String() + \" overflows \" + v.Type().String(),\n\t\t\t}\n\n\t\tcase tagNumNegativeBignum:\n\t\t\t// Bignum (tag 3) can be decoded to int, float, slice, array, or big.Int.\n\t\t\tb, copied := d.parseByteString()\n\t\t\tbi := new(big.Int).SetBytes(b)\n\t\t\tbi.Add(bi, big.NewInt(1))\n\t\t\tbi.Neg(bi)\n\n\t\t\tif tInfo.nonPtrType == typeBigInt {\n\t\t\t\tv.Set(reflect.ValueOf(*bi))\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tif tInfo.nonPtrKind == reflect.Slice || tInfo.nonPtrKind == reflect.Array {\n\t\t\t\treturn fillByteString(t, b, !copied, v, ByteStringToStringForbidden, d.dm.binaryUnmarshaler)\n\t\t\t}\n\t\t\tif bi.IsInt64() {\n\t\t\t\treturn fillNegativeInt(t, bi.Int64(), v)\n\t\t\t}\n\t\t\treturn &UnmarshalTypeError{\n\t\t\t\tCBORType: t.String(),\n\t\t\t\tGoType:   tInfo.nonPtrType.String(),\n\t\t\t\terrorMsg: bi.String() + \" overflows \" + v.Type().String(),\n\t\t\t}\n\n\t\tcase tagNumExpectedLaterEncodingBase64URL, tagNumExpectedLaterEncodingBase64, tagNumExpectedLaterEncodingBase16:\n\t\t\t// If conversion for interoperability with text encodings is not configured,\n\t\t\t// treat tags 21-23 as unregistered tags.\n\t\t\tif d.dm.byteStringToString == ByteStringToStringAllowedWithExpectedLaterEncoding || d.dm.byteStringExpectedFormat != ByteStringExpectedFormatNone {\n\t\t\t\td.expectedLaterEncodingTags = append(d.expectedLaterEncodingTags, tagNum)\n\t\t\t\tdefer func() {\n\t\t\t\t\td.expectedLaterEncodingTags = d.expectedLaterEncodingTags[:len(d.expectedLaterEncodingTags)-1]\n\t\t\t\t}()\n\t\t\t}\n\t\t}\n\n\t\treturn d.parseToValue(v, tInfo)\n\n\tcase cborTypeArray:\n\t\tif tInfo.nonPtrKind == reflect.Slice {\n\t\t\treturn d.parseArrayToSlice(v, tInfo)\n\t\t} else if tInfo.nonPtrKind == reflect.Array {\n\t\t\treturn d.parseArrayToArray(v, tInfo)\n\t\t} else if tInfo.nonPtrKind == reflect.Struct {\n\t\t\treturn d.parseArrayToStruct(v, tInfo)\n\t\t}\n\t\td.skip()\n\t\treturn &UnmarshalTypeError{CBORType: t.String(), GoType: tInfo.nonPtrType.String()}\n\n\tcase cborTypeMap:\n\t\tif tInfo.nonPtrKind == reflect.Struct {\n\t\t\treturn d.parseMapToStruct(v, tInfo)\n\t\t} else if tInfo.nonPtrKind == reflect.Map {\n\t\t\treturn d.parseMapToMap(v, tInfo)\n\t\t}\n\t\td.skip()\n\t\treturn &UnmarshalTypeError{CBORType: t.String(), GoType: tInfo.nonPtrType.String()}\n\t}\n\n\treturn nil\n}\n\nfunc (d *decoder) parseToTag(v reflect.Value) error {\n\tif d.nextCBORNil() {\n\t\t// Decoding CBOR null and undefined to cbor.Tag is no-op.\n\t\td.skip()\n\t\treturn nil\n\t}\n\n\tt := d.nextCBORType()\n\tif t != cborTypeTag {\n\t\td.skip()\n\t\treturn &UnmarshalTypeError{CBORType: t.String(), GoType: typeTag.String()}\n\t}\n\n\t// Unmarshal tag number\n\t_, _, num := d.getHead()\n\n\t// Unmarshal tag content\n\tcontent, err := d.parse(false)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tv.Set(reflect.ValueOf(Tag{num, content}))\n\treturn nil\n}\n\n// parseToTime decodes the current data item as a time.Time. The bool return value is false if and\n// only if the destination value should remain unmodified.\nfunc (d *decoder) parseToTime() (time.Time, bool, error) {\n\t// Verify that tag number or absence of tag number is acceptable to specified timeTag.\n\tif t := d.nextCBORType(); t == cborTypeTag {\n\t\tif d.dm.timeTag == DecTagIgnored {\n\t\t\t// Skip all enclosing tags\n\t\t\tfor t == cborTypeTag {\n\t\t\t\td.getHead()\n\t\t\t\tt = d.nextCBORType()\n\t\t\t}\n\t\t\tif d.nextCBORNil() {\n\t\t\t\td.skip()\n\t\t\t\treturn time.Time{}, false, nil\n\t\t\t}\n\t\t} else {\n\t\t\t// Read tag number\n\t\t\t_, _, tagNum := d.getHead()\n\t\t\tif tagNum != 0 && tagNum != 1 {\n\t\t\t\td.skip() // skip tag content\n\t\t\t\treturn time.Time{}, false, errors.New(\"cbor: wrong tag number for time.Time, got \" + strconv.Itoa(int(tagNum)) + \", expect 0 or 1\")\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif d.dm.timeTag == DecTagRequired {\n\t\t\td.skip()\n\t\t\treturn time.Time{}, false, &UnmarshalTypeError{CBORType: t.String(), GoType: typeTime.String(), errorMsg: \"expect CBOR tag value\"}\n\t\t}\n\t}\n\n\tswitch t := d.nextCBORType(); t {\n\tcase cborTypeByteString:\n\t\tif d.dm.byteStringToTime == ByteStringToTimeAllowed {\n\t\t\tb, _ := d.parseByteString()\n\t\t\tt, err := time.Parse(time.RFC3339, string(b))\n\t\t\tif err != nil {\n\t\t\t\treturn time.Time{}, false, fmt.Errorf(\"cbor: cannot set %q for time.Time: %w\", string(b), err)\n\t\t\t}\n\t\t\treturn t, true, nil\n\t\t}\n\t\treturn time.Time{}, false, &UnmarshalTypeError{CBORType: t.String(), GoType: typeTime.String()}\n\n\tcase cborTypeTextString:\n\t\ts, err := d.parseTextString()\n\t\tif err != nil {\n\t\t\treturn time.Time{}, false, err\n\t\t}\n\t\tt, err := time.Parse(time.RFC3339, string(s))\n\t\tif err != nil {\n\t\t\treturn time.Time{}, false, errors.New(\"cbor: cannot set \" + string(s) + \" for time.Time: \" + err.Error())\n\t\t}\n\t\treturn t, true, nil\n\n\tcase cborTypePositiveInt:\n\t\t_, _, val := d.getHead()\n\t\tif val > math.MaxInt64 {\n\t\t\treturn time.Time{}, false, &UnmarshalTypeError{\n\t\t\t\tCBORType: t.String(),\n\t\t\t\tGoType:   typeTime.String(),\n\t\t\t\terrorMsg: fmt.Sprintf(\"%d overflows Go's int64\", val),\n\t\t\t}\n\t\t}\n\t\treturn time.Unix(int64(val), 0), true, nil\n\n\tcase cborTypeNegativeInt:\n\t\t_, _, val := d.getHead()\n\t\tif val > math.MaxInt64 {\n\t\t\tif val == math.MaxUint64 {\n\t\t\t\t// Maximum absolute value representable by negative integer is 2^64,\n\t\t\t\t// not 2^64-1, so it overflows uint64.\n\t\t\t\treturn time.Time{}, false, &UnmarshalTypeError{\n\t\t\t\t\tCBORType: t.String(),\n\t\t\t\t\tGoType:   typeTime.String(),\n\t\t\t\t\terrorMsg: \"-18446744073709551616 overflows Go's int64\",\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn time.Time{}, false, &UnmarshalTypeError{\n\t\t\t\tCBORType: t.String(),\n\t\t\t\tGoType:   typeTime.String(),\n\t\t\t\terrorMsg: fmt.Sprintf(\"-%d overflows Go's int64\", val+1),\n\t\t\t}\n\t\t}\n\t\treturn time.Unix(int64(-1)^int64(val), 0), true, nil\n\n\tcase cborTypePrimitives:\n\t\t_, ai, val := d.getHead()\n\t\tvar f float64\n\t\tswitch ai {\n\t\tcase additionalInformationAsFloat16:\n\t\t\tf = float64(float16.Frombits(uint16(val)).Float32())\n\n\t\tcase additionalInformationAsFloat32:\n\t\t\tf = float64(math.Float32frombits(uint32(val)))\n\n\t\tcase additionalInformationAsFloat64:\n\t\t\tf = math.Float64frombits(val)\n\n\t\tdefault:\n\t\t\treturn time.Time{}, false, &UnmarshalTypeError{CBORType: t.String(), GoType: typeTime.String()}\n\t\t}\n\n\t\tif math.IsNaN(f) || math.IsInf(f, 0) {\n\t\t\t// https://www.rfc-editor.org/rfc/rfc8949.html#section-3.4.2-6\n\t\t\treturn time.Time{}, true, nil\n\t\t}\n\t\tseconds, fractional := math.Modf(f)\n\t\treturn time.Unix(int64(seconds), int64(fractional*1e9)), true, nil\n\n\tdefault:\n\t\treturn time.Time{}, false, &UnmarshalTypeError{CBORType: t.String(), GoType: typeTime.String()}\n\t}\n}\n\n// parseToUnmarshaler parses CBOR data to value implementing Unmarshaler interface.\n// It assumes data is well-formed, and does not perform bounds checking.\nfunc (d *decoder) parseToUnmarshaler(v reflect.Value) error {\n\tif d.nextCBORNil() && v.Kind() == reflect.Ptr && v.IsNil() {\n\t\td.skip()\n\t\treturn nil\n\t}\n\n\tif v.Kind() != reflect.Ptr && v.CanAddr() {\n\t\tv = v.Addr()\n\t}\n\tif u, ok := v.Interface().(Unmarshaler); ok {\n\t\tstart := d.off\n\t\td.skip()\n\t\treturn u.UnmarshalCBOR(d.data[start:d.off])\n\t}\n\td.skip()\n\treturn errors.New(\"cbor: failed to assert \" + v.Type().String() + \" as cbor.Unmarshaler\")\n}\n\n// parse parses CBOR data and returns value in default Go type.\n// It assumes data is well-formed, and does not perform bounds checking.\nfunc (d *decoder) parse(skipSelfDescribedTag bool) (interface{}, error) { //nolint:gocyclo\n\t// Strip self-described CBOR tag number.\n\tif skipSelfDescribedTag {\n\t\tfor d.nextCBORType() == cborTypeTag {\n\t\t\toff := d.off\n\t\t\t_, _, tagNum := d.getHead()\n\t\t\tif tagNum != tagNumSelfDescribedCBOR {\n\t\t\t\td.off = off\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check validity of supported built-in tags.\n\toff := d.off\n\tfor d.nextCBORType() == cborTypeTag {\n\t\t_, _, tagNum := d.getHead()\n\t\tif err := validBuiltinTag(tagNum, d.data[d.off]); err != nil {\n\t\t\td.skip()\n\t\t\treturn nil, err\n\t\t}\n\t}\n\td.off = off\n\n\tt := d.nextCBORType()\n\tswitch t {\n\tcase cborTypePositiveInt:\n\t\t_, _, val := d.getHead()\n\n\t\tswitch d.dm.intDec {\n\t\tcase IntDecConvertNone:\n\t\t\treturn val, nil\n\n\t\tcase IntDecConvertSigned, IntDecConvertSignedOrFail:\n\t\t\tif val > math.MaxInt64 {\n\t\t\t\treturn nil, &UnmarshalTypeError{\n\t\t\t\t\tCBORType: t.String(),\n\t\t\t\t\tGoType:   reflect.TypeOf(int64(0)).String(),\n\t\t\t\t\terrorMsg: strconv.FormatUint(val, 10) + \" overflows Go's int64\",\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn int64(val), nil\n\n\t\tcase IntDecConvertSignedOrBigInt:\n\t\t\tif val > math.MaxInt64 {\n\t\t\t\tbi := new(big.Int).SetUint64(val)\n\t\t\t\tif d.dm.bigIntDec == BigIntDecodePointer {\n\t\t\t\t\treturn bi, nil\n\t\t\t\t}\n\t\t\t\treturn *bi, nil\n\t\t\t}\n\n\t\t\treturn int64(val), nil\n\n\t\tdefault:\n\t\t\t// not reachable\n\t\t}\n\n\tcase cborTypeNegativeInt:\n\t\t_, _, val := d.getHead()\n\n\t\tif val > math.MaxInt64 {\n\t\t\t// CBOR negative integer value overflows Go int64, use big.Int instead.\n\t\t\tbi := new(big.Int).SetUint64(val)\n\t\t\tbi.Add(bi, big.NewInt(1))\n\t\t\tbi.Neg(bi)\n\n\t\t\tif d.dm.intDec == IntDecConvertSignedOrFail {\n\t\t\t\treturn nil, &UnmarshalTypeError{\n\t\t\t\t\tCBORType: t.String(),\n\t\t\t\t\tGoType:   reflect.TypeOf(int64(0)).String(),\n\t\t\t\t\terrorMsg: bi.String() + \" overflows Go's int64\",\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif d.dm.bigIntDec == BigIntDecodePointer {\n\t\t\t\treturn bi, nil\n\t\t\t}\n\t\t\treturn *bi, nil\n\t\t}\n\n\t\tnValue := int64(-1) ^ int64(val)\n\t\treturn nValue, nil\n\n\tcase cborTypeByteString:\n\t\tb, copied := d.parseByteString()\n\t\tvar effectiveByteStringType = d.dm.defaultByteStringType\n\t\tif effectiveByteStringType == nil {\n\t\t\teffectiveByteStringType = typeByteSlice\n\t\t}\n\t\tb, converted, err := d.applyByteStringTextConversion(b, effectiveByteStringType)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tcopied = copied || converted\n\n\t\tswitch effectiveByteStringType {\n\t\tcase typeByteSlice:\n\t\t\tif copied {\n\t\t\t\treturn b, nil\n\t\t\t}\n\t\t\tclone := make([]byte, len(b))\n\t\t\tcopy(clone, b)\n\t\t\treturn clone, nil\n\n\t\tcase typeString:\n\t\t\treturn string(b), nil\n\n\t\tdefault:\n\t\t\tif copied || d.dm.defaultByteStringType.Kind() == reflect.String {\n\t\t\t\t// Avoid an unnecessary copy since the conversion to string must\n\t\t\t\t// copy the underlying bytes.\n\t\t\t\treturn reflect.ValueOf(b).Convert(d.dm.defaultByteStringType).Interface(), nil\n\t\t\t}\n\t\t\tclone := make([]byte, len(b))\n\t\t\tcopy(clone, b)\n\t\t\treturn reflect.ValueOf(clone).Convert(d.dm.defaultByteStringType).Interface(), nil\n\t\t}\n\n\tcase cborTypeTextString:\n\t\tb, err := d.parseTextString()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn string(b), nil\n\n\tcase cborTypeTag:\n\t\ttagOff := d.off\n\t\t_, _, tagNum := d.getHead()\n\t\tcontentOff := d.off\n\n\t\tswitch tagNum {\n\t\tcase tagNumRFC3339Time, tagNumEpochTime:\n\t\t\td.off = tagOff\n\t\t\ttm, _, err := d.parseToTime()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tswitch d.dm.timeTagToAny {\n\t\t\tcase TimeTagToTime:\n\t\t\t\treturn tm, nil\n\n\t\t\tcase TimeTagToRFC3339:\n\t\t\t\tif tagNum == 1 {\n\t\t\t\t\ttm = tm.UTC()\n\t\t\t\t}\n\t\t\t\t// Call time.MarshalText() to format decoded time to RFC3339 format,\n\t\t\t\t// and return error on time value that cannot be represented in\n\t\t\t\t// RFC3339 format. E.g. year cannot exceed 9999, etc.\n\t\t\t\ttext, err := tm.Truncate(time.Second).MarshalText()\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, fmt.Errorf(\"cbor: decoded time cannot be represented in RFC3339 format: %v\", err)\n\t\t\t\t}\n\t\t\t\treturn string(text), nil\n\n\t\t\tcase TimeTagToRFC3339Nano:\n\t\t\t\tif tagNum == 1 {\n\t\t\t\t\ttm = tm.UTC()\n\t\t\t\t}\n\t\t\t\t// Call time.MarshalText() to format decoded time to RFC3339 format,\n\t\t\t\t// and return error on time value that cannot be represented in\n\t\t\t\t// RFC3339 format with sub-second precision.\n\t\t\t\ttext, err := tm.MarshalText()\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, fmt.Errorf(\"cbor: decoded time cannot be represented in RFC3339 format with sub-second precision: %v\", err)\n\t\t\t\t}\n\t\t\t\treturn string(text), nil\n\n\t\t\tdefault:\n\t\t\t\t// not reachable\n\t\t\t}\n\n\t\tcase tagNumUnsignedBignum:\n\t\t\tb, _ := d.parseByteString()\n\t\t\tbi := new(big.Int).SetBytes(b)\n\n\t\t\tif d.dm.bigIntDec == BigIntDecodePointer {\n\t\t\t\treturn bi, nil\n\t\t\t}\n\t\t\treturn *bi, nil\n\n\t\tcase tagNumNegativeBignum:\n\t\t\tb, _ := d.parseByteString()\n\t\t\tbi := new(big.Int).SetBytes(b)\n\t\t\tbi.Add(bi, big.NewInt(1))\n\t\t\tbi.Neg(bi)\n\n\t\t\tif d.dm.bigIntDec == BigIntDecodePointer {\n\t\t\t\treturn bi, nil\n\t\t\t}\n\t\t\treturn *bi, nil\n\n\t\tcase tagNumExpectedLaterEncodingBase64URL, tagNumExpectedLaterEncodingBase64, tagNumExpectedLaterEncodingBase16:\n\t\t\t// If conversion for interoperability with text encodings is not configured,\n\t\t\t// treat tags 21-23 as unregistered tags.\n\t\t\tif d.dm.byteStringToString == ByteStringToStringAllowedWithExpectedLaterEncoding ||\n\t\t\t\td.dm.byteStringExpectedFormat != ByteStringExpectedFormatNone {\n\t\t\t\td.expectedLaterEncodingTags = append(d.expectedLaterEncodingTags, tagNum)\n\t\t\t\tdefer func() {\n\t\t\t\t\td.expectedLaterEncodingTags = d.expectedLaterEncodingTags[:len(d.expectedLaterEncodingTags)-1]\n\t\t\t\t}()\n\t\t\t\treturn d.parse(false)\n\t\t\t}\n\t\t}\n\n\t\tif d.dm.tags != nil {\n\t\t\t// Parse to specified type if tag number is registered.\n\t\t\ttagNums := []uint64{tagNum}\n\t\t\tfor d.nextCBORType() == cborTypeTag {\n\t\t\t\t_, _, num := d.getHead()\n\t\t\t\ttagNums = append(tagNums, num)\n\t\t\t}\n\t\t\tregisteredType := d.dm.tags.getTypeFromTagNum(tagNums)\n\t\t\tif registeredType != nil {\n\t\t\t\td.off = tagOff\n\t\t\t\trv := reflect.New(registeredType)\n\t\t\t\tif err := d.parseToValue(rv.Elem(), getTypeInfo(registeredType)); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\treturn rv.Elem().Interface(), nil\n\t\t\t}\n\t\t}\n\n\t\t// Parse tag content\n\t\td.off = contentOff\n\t\tcontent, err := d.parse(false)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif d.dm.unrecognizedTagToAny == UnrecognizedTagContentToAny {\n\t\t\treturn content, nil\n\t\t}\n\t\treturn Tag{tagNum, content}, nil\n\n\tcase cborTypePrimitives:\n\t\t_, ai, val := d.getHead()\n\t\tif ai <= 24 && d.dm.simpleValues.rejected[SimpleValue(val)] {\n\t\t\treturn nil, &UnacceptableDataItemError{\n\t\t\t\tCBORType: t.String(),\n\t\t\t\tMessage:  \"simple value \" + strconv.FormatInt(int64(val), 10) + \" is not recognized\",\n\t\t\t}\n\t\t}\n\t\tif ai < 20 || ai == 24 {\n\t\t\treturn SimpleValue(val), nil\n\t\t}\n\n\t\tswitch ai {\n\t\tcase additionalInformationAsFalse,\n\t\t\tadditionalInformationAsTrue:\n\t\t\treturn (ai == additionalInformationAsTrue), nil\n\n\t\tcase additionalInformationAsNull,\n\t\t\tadditionalInformationAsUndefined:\n\t\t\treturn nil, nil\n\n\t\tcase additionalInformationAsFloat16:\n\t\t\tf := float64(float16.Frombits(uint16(val)).Float32())\n\t\t\treturn f, nil\n\n\t\tcase additionalInformationAsFloat32:\n\t\t\tf := float64(math.Float32frombits(uint32(val)))\n\t\t\treturn f, nil\n\n\t\tcase additionalInformationAsFloat64:\n\t\t\tf := math.Float64frombits(val)\n\t\t\treturn f, nil\n\t\t}\n\n\tcase cborTypeArray:\n\t\treturn d.parseArray()\n\n\tcase cborTypeMap:\n\t\tif d.dm.defaultMapType != nil {\n\t\t\tm := reflect.New(d.dm.defaultMapType)\n\t\t\terr := d.parseToValue(m, getTypeInfo(m.Elem().Type()))\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\treturn m.Elem().Interface(), nil\n\t\t}\n\t\treturn d.parseMap()\n\t}\n\n\treturn nil, nil\n}\n\n// parseByteString parses a CBOR encoded byte string. The returned byte slice\n// may be backed directly by the input. The second return value will be true if\n// and only if the slice is backed by a copy of the input. Callers are\n// responsible for making a copy if necessary.\nfunc (d *decoder) parseByteString() ([]byte, bool) {\n\t_, _, val, indefiniteLength := d.getHeadWithIndefiniteLengthFlag()\n\tif !indefiniteLength {\n\t\tb := d.data[d.off : d.off+int(val)]\n\t\td.off += int(val)\n\t\treturn b, false\n\t}\n\t// Process indefinite length string chunks.\n\tb := []byte{}\n\tfor !d.foundBreak() {\n\t\t_, _, val = d.getHead()\n\t\tb = append(b, d.data[d.off:d.off+int(val)]...)\n\t\td.off += int(val)\n\t}\n\treturn b, true\n}\n\n// applyByteStringTextConversion converts bytes read from a byte string to or from a configured text\n// encoding. If no transformation was performed (because it was not required), the original byte\n// slice is returned and the bool return value is false. Otherwise, a new slice containing the\n// converted bytes is returned along with the bool value true.\nfunc (d *decoder) applyByteStringTextConversion(\n\tsrc []byte,\n\tdstType reflect.Type,\n) (\n\tdst []byte,\n\ttransformed bool,\n\terr error,\n) {\n\tswitch dstType.Kind() {\n\tcase reflect.String:\n\t\tif d.dm.byteStringToString != ByteStringToStringAllowedWithExpectedLaterEncoding || len(d.expectedLaterEncodingTags) == 0 {\n\t\t\treturn src, false, nil\n\t\t}\n\n\t\tswitch d.expectedLaterEncodingTags[len(d.expectedLaterEncodingTags)-1] {\n\t\tcase tagNumExpectedLaterEncodingBase64URL:\n\t\t\tencoded := make([]byte, base64.RawURLEncoding.EncodedLen(len(src)))\n\t\t\tbase64.RawURLEncoding.Encode(encoded, src)\n\t\t\treturn encoded, true, nil\n\n\t\tcase tagNumExpectedLaterEncodingBase64:\n\t\t\tencoded := make([]byte, base64.StdEncoding.EncodedLen(len(src)))\n\t\t\tbase64.StdEncoding.Encode(encoded, src)\n\t\t\treturn encoded, true, nil\n\n\t\tcase tagNumExpectedLaterEncodingBase16:\n\t\t\tencoded := make([]byte, hex.EncodedLen(len(src)))\n\t\t\thex.Encode(encoded, src)\n\t\t\treturn encoded, true, nil\n\n\t\tdefault:\n\t\t\t// If this happens, there is a bug: the decoder has pushed an invalid\n\t\t\t// \"expected later encoding\" tag to the stack.\n\t\t\tpanic(fmt.Sprintf(\"unrecognized expected later encoding tag: %d\", d.expectedLaterEncodingTags))\n\t\t}\n\n\tcase reflect.Slice:\n\t\tif dstType.Elem().Kind() != reflect.Uint8 || len(d.expectedLaterEncodingTags) > 0 {\n\t\t\t// Either the destination is not a slice of bytes, or the encoder that\n\t\t\t// produced the input indicated an expected text encoding tag and therefore\n\t\t\t// the content of the byte string has NOT been text encoded.\n\t\t\treturn src, false, nil\n\t\t}\n\n\t\tswitch d.dm.byteStringExpectedFormat {\n\t\tcase ByteStringExpectedBase64URL:\n\t\t\tdecoded := make([]byte, base64.RawURLEncoding.DecodedLen(len(src)))\n\t\t\tn, err := base64.RawURLEncoding.Decode(decoded, src)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, false, newByteStringExpectedFormatError(ByteStringExpectedBase64URL, err)\n\t\t\t}\n\t\t\treturn decoded[:n], true, nil\n\n\t\tcase ByteStringExpectedBase64:\n\t\t\tdecoded := make([]byte, base64.StdEncoding.DecodedLen(len(src)))\n\t\t\tn, err := base64.StdEncoding.Decode(decoded, src)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, false, newByteStringExpectedFormatError(ByteStringExpectedBase64, err)\n\t\t\t}\n\t\t\treturn decoded[:n], true, nil\n\n\t\tcase ByteStringExpectedBase16:\n\t\t\tdecoded := make([]byte, hex.DecodedLen(len(src)))\n\t\t\tn, err := hex.Decode(decoded, src)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, false, newByteStringExpectedFormatError(ByteStringExpectedBase16, err)\n\t\t\t}\n\t\t\treturn decoded[:n], true, nil\n\t\t}\n\t}\n\n\treturn src, false, nil\n}\n\n// parseTextString parses CBOR encoded text string.  It returns a byte slice\n// to prevent creating an extra copy of string.  Caller should wrap returned\n// byte slice as string when needed.\nfunc (d *decoder) parseTextString() ([]byte, error) {\n\t_, _, val, indefiniteLength := d.getHeadWithIndefiniteLengthFlag()\n\tif !indefiniteLength {\n\t\tb := d.data[d.off : d.off+int(val)]\n\t\td.off += int(val)\n\t\tif d.dm.utf8 == UTF8RejectInvalid && !utf8.Valid(b) {\n\t\t\treturn nil, &SemanticError{\"cbor: invalid UTF-8 string\"}\n\t\t}\n\t\treturn b, nil\n\t}\n\t// Process indefinite length string chunks.\n\tb := []byte{}\n\tfor !d.foundBreak() {\n\t\t_, _, val = d.getHead()\n\t\tx := d.data[d.off : d.off+int(val)]\n\t\td.off += int(val)\n\t\tif d.dm.utf8 == UTF8RejectInvalid && !utf8.Valid(x) {\n\t\t\tfor !d.foundBreak() {\n\t\t\t\td.skip() // Skip remaining chunk on error\n\t\t\t}\n\t\t\treturn nil, &SemanticError{\"cbor: invalid UTF-8 string\"}\n\t\t}\n\t\tb = append(b, x...)\n\t}\n\treturn b, nil\n}\n\nfunc (d *decoder) parseArray() ([]interface{}, error) {\n\t_, _, val, indefiniteLength := d.getHeadWithIndefiniteLengthFlag()\n\thasSize := !indefiniteLength\n\tcount := int(val)\n\tif !hasSize {\n\t\tcount = d.numOfItemsUntilBreak() // peek ahead to get array size to preallocate slice for better performance\n\t}\n\tv := make([]interface{}, count)\n\tvar e interface{}\n\tvar err, lastErr error\n\tfor i := 0; (hasSize && i < count) || (!hasSize && !d.foundBreak()); i++ {\n\t\tif e, lastErr = d.parse(true); lastErr != nil {\n\t\t\tif err == nil {\n\t\t\t\terr = lastErr\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tv[i] = e\n\t}\n\treturn v, err\n}\n\nfunc (d *decoder) parseArrayToSlice(v reflect.Value, tInfo *typeInfo) error {\n\t_, _, val, indefiniteLength := d.getHeadWithIndefiniteLengthFlag()\n\thasSize := !indefiniteLength\n\tcount := int(val)\n\tif !hasSize {\n\t\tcount = d.numOfItemsUntilBreak() // peek ahead to get array size to preallocate slice for better performance\n\t}\n\tif v.IsNil() || v.Cap() < count || count == 0 {\n\t\tv.Set(reflect.MakeSlice(tInfo.nonPtrType, count, count))\n\t}\n\tv.SetLen(count)\n\tvar err error\n\tfor i := 0; (hasSize && i < count) || (!hasSize && !d.foundBreak()); i++ {\n\t\tif lastErr := d.parseToValue(v.Index(i), tInfo.elemTypeInfo); lastErr != nil {\n\t\t\tif err == nil {\n\t\t\t\terr = lastErr\n\t\t\t}\n\t\t}\n\t}\n\treturn err\n}\n\nfunc (d *decoder) parseArrayToArray(v reflect.Value, tInfo *typeInfo) error {\n\t_, _, val, indefiniteLength := d.getHeadWithIndefiniteLengthFlag()\n\thasSize := !indefiniteLength\n\tcount := int(val)\n\tgi := 0\n\tvLen := v.Len()\n\tvar err error\n\tfor ci := 0; (hasSize && ci < count) || (!hasSize && !d.foundBreak()); ci++ {\n\t\tif gi < vLen {\n\t\t\t// Read CBOR array element and set array element\n\t\t\tif lastErr := d.parseToValue(v.Index(gi), tInfo.elemTypeInfo); lastErr != nil {\n\t\t\t\tif err == nil {\n\t\t\t\t\terr = lastErr\n\t\t\t\t}\n\t\t\t}\n\t\t\tgi++\n\t\t} else {\n\t\t\td.skip() // Skip remaining CBOR array element\n\t\t}\n\t}\n\t// Set remaining Go array elements to zero values.\n\tif gi < vLen {\n\t\tzeroV := reflect.Zero(tInfo.elemTypeInfo.typ)\n\t\tfor ; gi < vLen; gi++ {\n\t\t\tv.Index(gi).Set(zeroV)\n\t\t}\n\t}\n\treturn err\n}\n\nfunc (d *decoder) parseMap() (interface{}, error) {\n\t_, _, val, indefiniteLength := d.getHeadWithIndefiniteLengthFlag()\n\thasSize := !indefiniteLength\n\tcount := int(val)\n\tm := make(map[interface{}]interface{})\n\tvar k, e interface{}\n\tvar err, lastErr error\n\tkeyCount := 0\n\tfor i := 0; (hasSize && i < count) || (!hasSize && !d.foundBreak()); i++ {\n\t\t// Parse CBOR map key.\n\t\tif k, lastErr = d.parse(true); lastErr != nil {\n\t\t\tif err == nil {\n\t\t\t\terr = lastErr\n\t\t\t}\n\t\t\td.skip()\n\t\t\tcontinue\n\t\t}\n\n\t\t// Detect if CBOR map key can be used as Go map key.\n\t\trv := reflect.ValueOf(k)\n\t\tif !isHashableValue(rv) {\n\t\t\tvar converted bool\n\t\t\tif d.dm.mapKeyByteString == MapKeyByteStringAllowed {\n\t\t\t\tk, converted = convertByteSliceToByteString(k)\n\t\t\t}\n\t\t\tif !converted {\n\t\t\t\tif err == nil {\n\t\t\t\t\terr = &InvalidMapKeyTypeError{rv.Type().String()}\n\t\t\t\t}\n\t\t\t\td.skip()\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\t// Parse CBOR map value.\n\t\tif e, lastErr = d.parse(true); lastErr != nil {\n\t\t\tif err == nil {\n\t\t\t\terr = lastErr\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\t// Add key-value pair to Go map.\n\t\tm[k] = e\n\n\t\t// Detect duplicate map key.\n\t\tif d.dm.dupMapKey == DupMapKeyEnforcedAPF {\n\t\t\tnewKeyCount := len(m)\n\t\t\tif newKeyCount == keyCount {\n\t\t\t\tm[k] = nil\n\t\t\t\terr = &DupMapKeyError{k, i}\n\t\t\t\ti++\n\t\t\t\t// skip the rest of the map\n\t\t\t\tfor ; (hasSize && i < count) || (!hasSize && !d.foundBreak()); i++ {\n\t\t\t\t\td.skip() // Skip map key\n\t\t\t\t\td.skip() // Skip map value\n\t\t\t\t}\n\t\t\t\treturn m, err\n\t\t\t}\n\t\t\tkeyCount = newKeyCount\n\t\t}\n\t}\n\treturn m, err\n}\n\nfunc (d *decoder) parseMapToMap(v reflect.Value, tInfo *typeInfo) error { //nolint:gocyclo\n\t_, _, val, indefiniteLength := d.getHeadWithIndefiniteLengthFlag()\n\thasSize := !indefiniteLength\n\tcount := int(val)\n\tif v.IsNil() {\n\t\tmapsize := count\n\t\tif !hasSize {\n\t\t\tmapsize = 0\n\t\t}\n\t\tv.Set(reflect.MakeMapWithSize(tInfo.nonPtrType, mapsize))\n\t}\n\tkeyType, eleType := tInfo.keyTypeInfo.typ, tInfo.elemTypeInfo.typ\n\treuseKey, reuseEle := isImmutableKind(tInfo.keyTypeInfo.kind), isImmutableKind(tInfo.elemTypeInfo.kind)\n\tvar keyValue, eleValue, zeroKeyValue, zeroEleValue reflect.Value\n\tkeyIsInterfaceType := keyType == typeIntf // If key type is interface{}, need to check if key value is hashable.\n\tvar err, lastErr error\n\tkeyCount := v.Len()\n\tvar existingKeys map[interface{}]bool // Store existing map keys, used for detecting duplicate map key.\n\tif d.dm.dupMapKey == DupMapKeyEnforcedAPF {\n\t\texistingKeys = make(map[interface{}]bool, keyCount)\n\t\tif keyCount > 0 {\n\t\t\tvKeys := v.MapKeys()\n\t\t\tfor i := 0; i < len(vKeys); i++ {\n\t\t\t\texistingKeys[vKeys[i].Interface()] = true\n\t\t\t}\n\t\t}\n\t}\n\tfor i := 0; (hasSize && i < count) || (!hasSize && !d.foundBreak()); i++ {\n\t\t// Parse CBOR map key.\n\t\tif !keyValue.IsValid() {\n\t\t\tkeyValue = reflect.New(keyType).Elem()\n\t\t} else if !reuseKey {\n\t\t\tif !zeroKeyValue.IsValid() {\n\t\t\t\tzeroKeyValue = reflect.Zero(keyType)\n\t\t\t}\n\t\t\tkeyValue.Set(zeroKeyValue)\n\t\t}\n\t\tif lastErr = d.parseToValue(keyValue, tInfo.keyTypeInfo); lastErr != nil {\n\t\t\tif err == nil {\n\t\t\t\terr = lastErr\n\t\t\t}\n\t\t\td.skip()\n\t\t\tcontinue\n\t\t}\n\n\t\t// Detect if CBOR map key can be used as Go map key.\n\t\tif keyIsInterfaceType && keyValue.Elem().IsValid() {\n\t\t\tif !isHashableValue(keyValue.Elem()) {\n\t\t\t\tvar converted bool\n\t\t\t\tif d.dm.mapKeyByteString == MapKeyByteStringAllowed {\n\t\t\t\t\tvar k interface{}\n\t\t\t\t\tk, converted = convertByteSliceToByteString(keyValue.Elem().Interface())\n\t\t\t\t\tif converted {\n\t\t\t\t\t\tkeyValue.Set(reflect.ValueOf(k))\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif !converted {\n\t\t\t\t\tif err == nil {\n\t\t\t\t\t\terr = &InvalidMapKeyTypeError{keyValue.Elem().Type().String()}\n\t\t\t\t\t}\n\t\t\t\t\td.skip()\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Parse CBOR map value.\n\t\tif !eleValue.IsValid() {\n\t\t\teleValue = reflect.New(eleType).Elem()\n\t\t} else if !reuseEle {\n\t\t\tif !zeroEleValue.IsValid() {\n\t\t\t\tzeroEleValue = reflect.Zero(eleType)\n\t\t\t}\n\t\t\teleValue.Set(zeroEleValue)\n\t\t}\n\t\tif lastErr := d.parseToValue(eleValue, tInfo.elemTypeInfo); lastErr != nil {\n\t\t\tif err == nil {\n\t\t\t\terr = lastErr\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\t// Add key-value pair to Go map.\n\t\tv.SetMapIndex(keyValue, eleValue)\n\n\t\t// Detect duplicate map key.\n\t\tif d.dm.dupMapKey == DupMapKeyEnforcedAPF {\n\t\t\tnewKeyCount := v.Len()\n\t\t\tif newKeyCount == keyCount {\n\t\t\t\tkvi := keyValue.Interface()\n\t\t\t\tif !existingKeys[kvi] {\n\t\t\t\t\tv.SetMapIndex(keyValue, reflect.New(eleType).Elem())\n\t\t\t\t\terr = &DupMapKeyError{kvi, i}\n\t\t\t\t\ti++\n\t\t\t\t\t// skip the rest of the map\n\t\t\t\t\tfor ; (hasSize && i < count) || (!hasSize && !d.foundBreak()); i++ {\n\t\t\t\t\t\td.skip() // skip map key\n\t\t\t\t\t\td.skip() // skip map value\n\t\t\t\t\t}\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tdelete(existingKeys, kvi)\n\t\t\t}\n\t\t\tkeyCount = newKeyCount\n\t\t}\n\t}\n\treturn err\n}\n\nfunc (d *decoder) parseArrayToStruct(v reflect.Value, tInfo *typeInfo) error {\n\tstructType := getDecodingStructType(tInfo.nonPtrType)\n\tif structType.err != nil {\n\t\treturn structType.err\n\t}\n\n\tif !structType.toArray {\n\t\tt := d.nextCBORType()\n\t\td.skip()\n\t\treturn &UnmarshalTypeError{\n\t\t\tCBORType: t.String(),\n\t\t\tGoType:   tInfo.nonPtrType.String(),\n\t\t\terrorMsg: \"cannot decode CBOR array to struct without toarray option\",\n\t\t}\n\t}\n\n\tstart := d.off\n\t_, _, val, indefiniteLength := d.getHeadWithIndefiniteLengthFlag()\n\thasSize := !indefiniteLength\n\tcount := int(val)\n\tif !hasSize {\n\t\tcount = d.numOfItemsUntilBreak() // peek ahead to get array size\n\t}\n\tif count != len(structType.fields) {\n\t\td.off = start\n\t\td.skip()\n\t\treturn &UnmarshalTypeError{\n\t\t\tCBORType: cborTypeArray.String(),\n\t\t\tGoType:   tInfo.typ.String(),\n\t\t\terrorMsg: \"cannot decode CBOR array to struct with different number of elements\",\n\t\t}\n\t}\n\tvar err, lastErr error\n\tfor i := 0; (hasSize && i < count) || (!hasSize && !d.foundBreak()); i++ {\n\t\tf := structType.fields[i]\n\n\t\t// Get field value by index\n\t\tvar fv reflect.Value\n\t\tif len(f.idx) == 1 {\n\t\t\tfv = v.Field(f.idx[0])\n\t\t} else {\n\t\t\tfv, lastErr = getFieldValue(v, f.idx, func(v reflect.Value) (reflect.Value, error) {\n\t\t\t\t// Return a new value for embedded field null pointer to point to, or return error.\n\t\t\t\tif !v.CanSet() {\n\t\t\t\t\treturn reflect.Value{}, errors.New(\"cbor: cannot set embedded pointer to unexported struct: \" + v.Type().String())\n\t\t\t\t}\n\t\t\t\tv.Set(reflect.New(v.Type().Elem()))\n\t\t\t\treturn v, nil\n\t\t\t})\n\t\t\tif lastErr != nil && err == nil {\n\t\t\t\terr = lastErr\n\t\t\t}\n\t\t\tif !fv.IsValid() {\n\t\t\t\td.skip()\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\tif lastErr = d.parseToValue(fv, f.typInfo); lastErr != nil {\n\t\t\tif err == nil {\n\t\t\t\tif typeError, ok := lastErr.(*UnmarshalTypeError); ok {\n\t\t\t\t\ttypeError.StructFieldName = tInfo.typ.String() + \".\" + f.name\n\t\t\t\t\terr = typeError\n\t\t\t\t} else {\n\t\t\t\t\terr = lastErr\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn err\n}\n\n// parseMapToStruct needs to be fast so gocyclo can be ignored for now.\nfunc (d *decoder) parseMapToStruct(v reflect.Value, tInfo *typeInfo) error { //nolint:gocyclo\n\tstructType := getDecodingStructType(tInfo.nonPtrType)\n\tif structType.err != nil {\n\t\treturn structType.err\n\t}\n\n\tif structType.toArray {\n\t\tt := d.nextCBORType()\n\t\td.skip()\n\t\treturn &UnmarshalTypeError{\n\t\t\tCBORType: t.String(),\n\t\t\tGoType:   tInfo.nonPtrType.String(),\n\t\t\terrorMsg: \"cannot decode CBOR map to struct with toarray option\",\n\t\t}\n\t}\n\n\tvar err, lastErr error\n\n\t// Get CBOR map size\n\t_, _, val, indefiniteLength := d.getHeadWithIndefiniteLengthFlag()\n\thasSize := !indefiniteLength\n\tcount := int(val)\n\n\t// Keeps track of matched struct fields\n\tvar foundFldIdx []bool\n\t{\n\t\tconst maxStackFields = 128\n\t\tif nfields := len(structType.fields); nfields <= maxStackFields {\n\t\t\t// For structs with typical field counts, expect that this can be\n\t\t\t// stack-allocated.\n\t\t\tvar a [maxStackFields]bool\n\t\t\tfoundFldIdx = a[:nfields]\n\t\t} else {\n\t\t\tfoundFldIdx = make([]bool, len(structType.fields))\n\t\t}\n\t}\n\n\t// Keeps track of CBOR map keys to detect duplicate map key\n\tkeyCount := 0\n\tvar mapKeys map[interface{}]struct{}\n\n\terrOnUnknownField := (d.dm.extraReturnErrors & ExtraDecErrorUnknownField) > 0\n\nMapEntryLoop:\n\tfor j := 0; (hasSize && j < count) || (!hasSize && !d.foundBreak()); j++ {\n\t\tvar f *field\n\n\t\t// If duplicate field detection is enabled and the key at index j did not match any\n\t\t// field, k will hold the map key.\n\t\tvar k interface{}\n\n\t\tt := d.nextCBORType()\n\t\tif t == cborTypeTextString || (t == cborTypeByteString && d.dm.fieldNameByteString == FieldNameByteStringAllowed) {\n\t\t\tvar keyBytes []byte\n\t\t\tif t == cborTypeTextString {\n\t\t\t\tkeyBytes, lastErr = d.parseTextString()\n\t\t\t\tif lastErr != nil {\n\t\t\t\t\tif err == nil {\n\t\t\t\t\t\terr = lastErr\n\t\t\t\t\t}\n\t\t\t\t\td.skip() // skip value\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t} else { // cborTypeByteString\n\t\t\t\tkeyBytes, _ = d.parseByteString()\n\t\t\t}\n\n\t\t\t// Check for exact match on field name.\n\t\t\tif i, ok := structType.fieldIndicesByName[string(keyBytes)]; ok {\n\t\t\t\tfld := structType.fields[i]\n\n\t\t\t\tif !foundFldIdx[i] {\n\t\t\t\t\tf = fld\n\t\t\t\t\tfoundFldIdx[i] = true\n\t\t\t\t} else if d.dm.dupMapKey == DupMapKeyEnforcedAPF {\n\t\t\t\t\terr = &DupMapKeyError{fld.name, j}\n\t\t\t\t\td.skip() // skip value\n\t\t\t\t\tj++\n\t\t\t\t\t// skip the rest of the map\n\t\t\t\t\tfor ; (hasSize && j < count) || (!hasSize && !d.foundBreak()); j++ {\n\t\t\t\t\t\td.skip()\n\t\t\t\t\t\td.skip()\n\t\t\t\t\t}\n\t\t\t\t\treturn err\n\t\t\t\t} else {\n\t\t\t\t\t// discard repeated match\n\t\t\t\t\td.skip()\n\t\t\t\t\tcontinue MapEntryLoop\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Find field with case-insensitive match\n\t\t\tif f == nil && d.dm.fieldNameMatching == FieldNameMatchingPreferCaseSensitive {\n\t\t\t\tkeyLen := len(keyBytes)\n\t\t\t\tkeyString := string(keyBytes)\n\t\t\t\tfor i := 0; i < len(structType.fields); i++ {\n\t\t\t\t\tfld := structType.fields[i]\n\t\t\t\t\tif len(fld.name) == keyLen && strings.EqualFold(fld.name, keyString) {\n\t\t\t\t\t\tif !foundFldIdx[i] {\n\t\t\t\t\t\t\tf = fld\n\t\t\t\t\t\t\tfoundFldIdx[i] = true\n\t\t\t\t\t\t} else if d.dm.dupMapKey == DupMapKeyEnforcedAPF {\n\t\t\t\t\t\t\terr = &DupMapKeyError{keyString, j}\n\t\t\t\t\t\t\td.skip() // skip value\n\t\t\t\t\t\t\tj++\n\t\t\t\t\t\t\t// skip the rest of the map\n\t\t\t\t\t\t\tfor ; (hasSize && j < count) || (!hasSize && !d.foundBreak()); j++ {\n\t\t\t\t\t\t\t\td.skip()\n\t\t\t\t\t\t\t\td.skip()\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn err\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// discard repeated match\n\t\t\t\t\t\t\td.skip()\n\t\t\t\t\t\t\tcontinue MapEntryLoop\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif d.dm.dupMapKey == DupMapKeyEnforcedAPF && f == nil {\n\t\t\t\tk = string(keyBytes)\n\t\t\t}\n\t\t} else if t <= cborTypeNegativeInt { // uint/int\n\t\t\tvar nameAsInt int64\n\n\t\t\tif t == cborTypePositiveInt {\n\t\t\t\t_, _, val := d.getHead()\n\t\t\t\tnameAsInt = int64(val)\n\t\t\t} else {\n\t\t\t\t_, _, val := d.getHead()\n\t\t\t\tif val > math.MaxInt64 {\n\t\t\t\t\tif err == nil {\n\t\t\t\t\t\terr = &UnmarshalTypeError{\n\t\t\t\t\t\t\tCBORType: t.String(),\n\t\t\t\t\t\t\tGoType:   reflect.TypeOf(int64(0)).String(),\n\t\t\t\t\t\t\terrorMsg: \"-1-\" + strconv.FormatUint(val, 10) + \" overflows Go's int64\",\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\td.skip() // skip value\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tnameAsInt = int64(-1) ^ int64(val)\n\t\t\t}\n\n\t\t\t// Find field\n\t\t\tfor i := 0; i < len(structType.fields); i++ {\n\t\t\t\tfld := structType.fields[i]\n\t\t\t\tif fld.keyAsInt && fld.nameAsInt == nameAsInt {\n\t\t\t\t\tif !foundFldIdx[i] {\n\t\t\t\t\t\tf = fld\n\t\t\t\t\t\tfoundFldIdx[i] = true\n\t\t\t\t\t} else if d.dm.dupMapKey == DupMapKeyEnforcedAPF {\n\t\t\t\t\t\terr = &DupMapKeyError{nameAsInt, j}\n\t\t\t\t\t\td.skip() // skip value\n\t\t\t\t\t\tj++\n\t\t\t\t\t\t// skip the rest of the map\n\t\t\t\t\t\tfor ; (hasSize && j < count) || (!hasSize && !d.foundBreak()); j++ {\n\t\t\t\t\t\t\td.skip()\n\t\t\t\t\t\t\td.skip()\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn err\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// discard repeated match\n\t\t\t\t\t\td.skip()\n\t\t\t\t\t\tcontinue MapEntryLoop\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif d.dm.dupMapKey == DupMapKeyEnforcedAPF && f == nil {\n\t\t\t\tk = nameAsInt\n\t\t\t}\n\t\t} else {\n\t\t\tif err == nil {\n\t\t\t\terr = &UnmarshalTypeError{\n\t\t\t\t\tCBORType: t.String(),\n\t\t\t\t\tGoType:   reflect.TypeOf(\"\").String(),\n\t\t\t\t\terrorMsg: \"map key is of type \" + t.String() + \" and cannot be used to match struct field name\",\n\t\t\t\t}\n\t\t\t}\n\t\t\tif d.dm.dupMapKey == DupMapKeyEnforcedAPF {\n\t\t\t\t// parse key\n\t\t\t\tk, lastErr = d.parse(true)\n\t\t\t\tif lastErr != nil {\n\t\t\t\t\td.skip() // skip value\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\t// Detect if CBOR map key can be used as Go map key.\n\t\t\t\tif !isHashableValue(reflect.ValueOf(k)) {\n\t\t\t\t\td.skip() // skip value\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\td.skip() // skip key\n\t\t\t}\n\t\t}\n\n\t\tif f == nil {\n\t\t\tif errOnUnknownField {\n\t\t\t\terr = &UnknownFieldError{j}\n\t\t\t\td.skip() // Skip value\n\t\t\t\tj++\n\t\t\t\t// skip the rest of the map\n\t\t\t\tfor ; (hasSize && j < count) || (!hasSize && !d.foundBreak()); j++ {\n\t\t\t\t\td.skip()\n\t\t\t\t\td.skip()\n\t\t\t\t}\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\t// Two map keys that match the same struct field are immediately considered\n\t\t\t// duplicates. This check detects duplicates between two map keys that do\n\t\t\t// not match a struct field. If unknown field errors are enabled, then this\n\t\t\t// check is never reached.\n\t\t\tif d.dm.dupMapKey == DupMapKeyEnforcedAPF {\n\t\t\t\tif mapKeys == nil {\n\t\t\t\t\tmapKeys = make(map[interface{}]struct{}, 1)\n\t\t\t\t}\n\t\t\t\tmapKeys[k] = struct{}{}\n\t\t\t\tnewKeyCount := len(mapKeys)\n\t\t\t\tif newKeyCount == keyCount {\n\t\t\t\t\terr = &DupMapKeyError{k, j}\n\t\t\t\t\td.skip() // skip value\n\t\t\t\t\tj++\n\t\t\t\t\t// skip the rest of the map\n\t\t\t\t\tfor ; (hasSize && j < count) || (!hasSize && !d.foundBreak()); j++ {\n\t\t\t\t\t\td.skip()\n\t\t\t\t\t\td.skip()\n\t\t\t\t\t}\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tkeyCount = newKeyCount\n\t\t\t}\n\n\t\t\td.skip() // Skip value\n\t\t\tcontinue\n\t\t}\n\n\t\t// Get field value by index\n\t\tvar fv reflect.Value\n\t\tif len(f.idx) == 1 {\n\t\t\tfv = v.Field(f.idx[0])\n\t\t} else {\n\t\t\tfv, lastErr = getFieldValue(v, f.idx, func(v reflect.Value) (reflect.Value, error) {\n\t\t\t\t// Return a new value for embedded field null pointer to point to, or return error.\n\t\t\t\tif !v.CanSet() {\n\t\t\t\t\treturn reflect.Value{}, errors.New(\"cbor: cannot set embedded pointer to unexported struct: \" + v.Type().String())\n\t\t\t\t}\n\t\t\t\tv.Set(reflect.New(v.Type().Elem()))\n\t\t\t\treturn v, nil\n\t\t\t})\n\t\t\tif lastErr != nil && err == nil {\n\t\t\t\terr = lastErr\n\t\t\t}\n\t\t\tif !fv.IsValid() {\n\t\t\t\td.skip()\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\tif lastErr = d.parseToValue(fv, f.typInfo); lastErr != nil {\n\t\t\tif err == nil {\n\t\t\t\tif typeError, ok := lastErr.(*UnmarshalTypeError); ok {\n\t\t\t\t\ttypeError.StructFieldName = tInfo.nonPtrType.String() + \".\" + f.name\n\t\t\t\t\terr = typeError\n\t\t\t\t} else {\n\t\t\t\t\terr = lastErr\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn err\n}\n\n// validRegisteredTagNums verifies that tag numbers match registered tag numbers of type t.\n// validRegisteredTagNums assumes next CBOR data type is tag.  It scans all tag numbers, and stops at tag content.\nfunc (d *decoder) validRegisteredTagNums(registeredTag *tagItem) error {\n\t// Scan until next cbor data is tag content.\n\ttagNums := make([]uint64, 0, 1)\n\tfor d.nextCBORType() == cborTypeTag {\n\t\t_, _, val := d.getHead()\n\t\ttagNums = append(tagNums, val)\n\t}\n\n\tif !registeredTag.equalTagNum(tagNums) {\n\t\treturn &WrongTagError{registeredTag.contentType, registeredTag.num, tagNums}\n\t}\n\treturn nil\n}\n\nfunc (d *decoder) getRegisteredTagItem(vt reflect.Type) *tagItem {\n\tif d.dm.tags != nil {\n\t\treturn d.dm.tags.getTagItemFromType(vt)\n\t}\n\treturn nil\n}\n\n// skip moves data offset to the next item.  skip assumes data is well-formed,\n// and does not perform bounds checking.\nfunc (d *decoder) skip() {\n\tt, _, val, indefiniteLength := d.getHeadWithIndefiniteLengthFlag()\n\n\tif indefiniteLength {\n\t\tswitch t {\n\t\tcase cborTypeByteString, cborTypeTextString, cborTypeArray, cborTypeMap:\n\t\t\tfor {\n\t\t\t\tif isBreakFlag(d.data[d.off]) {\n\t\t\t\t\td.off++\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\td.skip()\n\t\t\t}\n\t\t}\n\t}\n\n\tswitch t {\n\tcase cborTypeByteString, cborTypeTextString:\n\t\td.off += int(val)\n\n\tcase cborTypeArray:\n\t\tfor i := 0; i < int(val); i++ {\n\t\t\td.skip()\n\t\t}\n\n\tcase cborTypeMap:\n\t\tfor i := 0; i < int(val)*2; i++ {\n\t\t\td.skip()\n\t\t}\n\n\tcase cborTypeTag:\n\t\td.skip()\n\t}\n}\n\nfunc (d *decoder) getHeadWithIndefiniteLengthFlag() (\n\tt cborType,\n\tai byte,\n\tval uint64,\n\tindefiniteLength bool,\n) {\n\tt, ai, val = d.getHead()\n\tindefiniteLength = additionalInformation(ai).isIndefiniteLength()\n\treturn\n}\n\n// getHead assumes data is well-formed, and does not perform bounds checking.\nfunc (d *decoder) getHead() (t cborType, ai byte, val uint64) {\n\tt, ai = parseInitialByte(d.data[d.off])\n\tval = uint64(ai)\n\td.off++\n\n\tif ai <= maxAdditionalInformationWithoutArgument {\n\t\treturn\n\t}\n\n\tif ai == additionalInformationWith1ByteArgument {\n\t\tval = uint64(d.data[d.off])\n\t\td.off++\n\t\treturn\n\t}\n\n\tif ai == additionalInformationWith2ByteArgument {\n\t\tconst argumentSize = 2\n\t\tval = uint64(binary.BigEndian.Uint16(d.data[d.off : d.off+argumentSize]))\n\t\td.off += argumentSize\n\t\treturn\n\t}\n\n\tif ai == additionalInformationWith4ByteArgument {\n\t\tconst argumentSize = 4\n\t\tval = uint64(binary.BigEndian.Uint32(d.data[d.off : d.off+argumentSize]))\n\t\td.off += argumentSize\n\t\treturn\n\t}\n\n\tif ai == additionalInformationWith8ByteArgument {\n\t\tconst argumentSize = 8\n\t\tval = binary.BigEndian.Uint64(d.data[d.off : d.off+argumentSize])\n\t\td.off += argumentSize\n\t\treturn\n\t}\n\treturn\n}\n\nfunc (d *decoder) numOfItemsUntilBreak() int {\n\tsavedOff := d.off\n\ti := 0\n\tfor !d.foundBreak() {\n\t\td.skip()\n\t\ti++\n\t}\n\td.off = savedOff\n\treturn i\n}\n\n// foundBreak returns true if next byte is CBOR break code and moves cursor by 1,\n// otherwise it returns false.\n// foundBreak assumes data is well-formed, and does not perform bounds checking.\nfunc (d *decoder) foundBreak() bool {\n\tif isBreakFlag(d.data[d.off]) {\n\t\td.off++\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (d *decoder) reset(data []byte) {\n\td.data = data\n\td.off = 0\n\td.expectedLaterEncodingTags = d.expectedLaterEncodingTags[:0]\n}\n\nfunc (d *decoder) nextCBORType() cborType {\n\treturn getType(d.data[d.off])\n}\n\nfunc (d *decoder) nextCBORNil() bool {\n\treturn d.data[d.off] == 0xf6 || d.data[d.off] == 0xf7\n}\n\nvar (\n\ttypeIntf              = reflect.TypeOf([]interface{}(nil)).Elem()\n\ttypeTime              = reflect.TypeOf(time.Time{})\n\ttypeBigInt            = reflect.TypeOf(big.Int{})\n\ttypeUnmarshaler       = reflect.TypeOf((*Unmarshaler)(nil)).Elem()\n\ttypeBinaryUnmarshaler = reflect.TypeOf((*encoding.BinaryUnmarshaler)(nil)).Elem()\n\ttypeString            = reflect.TypeOf(\"\")\n\ttypeByteSlice         = reflect.TypeOf([]byte(nil))\n)\n\nfunc fillNil(_ cborType, v reflect.Value) error {\n\tswitch v.Kind() {\n\tcase reflect.Slice, reflect.Map, reflect.Interface, reflect.Ptr:\n\t\tv.Set(reflect.Zero(v.Type()))\n\t\treturn nil\n\t}\n\treturn nil\n}\n\nfunc fillPositiveInt(t cborType, val uint64, v reflect.Value) error {\n\tswitch v.Kind() {\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\tif val > math.MaxInt64 {\n\t\t\treturn &UnmarshalTypeError{\n\t\t\t\tCBORType: t.String(),\n\t\t\t\tGoType:   v.Type().String(),\n\t\t\t\terrorMsg: strconv.FormatUint(val, 10) + \" overflows \" + v.Type().String(),\n\t\t\t}\n\t\t}\n\t\tif v.OverflowInt(int64(val)) {\n\t\t\treturn &UnmarshalTypeError{\n\t\t\t\tCBORType: t.String(),\n\t\t\t\tGoType:   v.Type().String(),\n\t\t\t\terrorMsg: strconv.FormatUint(val, 10) + \" overflows \" + v.Type().String(),\n\t\t\t}\n\t\t}\n\t\tv.SetInt(int64(val))\n\t\treturn nil\n\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:\n\t\tif v.OverflowUint(val) {\n\t\t\treturn &UnmarshalTypeError{\n\t\t\t\tCBORType: t.String(),\n\t\t\t\tGoType:   v.Type().String(),\n\t\t\t\terrorMsg: strconv.FormatUint(val, 10) + \" overflows \" + v.Type().String(),\n\t\t\t}\n\t\t}\n\t\tv.SetUint(val)\n\t\treturn nil\n\n\tcase reflect.Float32, reflect.Float64:\n\t\tf := float64(val)\n\t\tv.SetFloat(f)\n\t\treturn nil\n\t}\n\n\tif v.Type() == typeBigInt {\n\t\ti := new(big.Int).SetUint64(val)\n\t\tv.Set(reflect.ValueOf(*i))\n\t\treturn nil\n\t}\n\treturn &UnmarshalTypeError{CBORType: t.String(), GoType: v.Type().String()}\n}\n\nfunc fillNegativeInt(t cborType, val int64, v reflect.Value) error {\n\tswitch v.Kind() {\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\tif v.OverflowInt(val) {\n\t\t\treturn &UnmarshalTypeError{\n\t\t\t\tCBORType: t.String(),\n\t\t\t\tGoType:   v.Type().String(),\n\t\t\t\terrorMsg: strconv.FormatInt(val, 10) + \" overflows \" + v.Type().String(),\n\t\t\t}\n\t\t}\n\t\tv.SetInt(val)\n\t\treturn nil\n\n\tcase reflect.Float32, reflect.Float64:\n\t\tf := float64(val)\n\t\tv.SetFloat(f)\n\t\treturn nil\n\t}\n\tif v.Type() == typeBigInt {\n\t\ti := new(big.Int).SetInt64(val)\n\t\tv.Set(reflect.ValueOf(*i))\n\t\treturn nil\n\t}\n\treturn &UnmarshalTypeError{CBORType: t.String(), GoType: v.Type().String()}\n}\n\nfunc fillBool(t cborType, val bool, v reflect.Value) error {\n\tif v.Kind() == reflect.Bool {\n\t\tv.SetBool(val)\n\t\treturn nil\n\t}\n\treturn &UnmarshalTypeError{CBORType: t.String(), GoType: v.Type().String()}\n}\n\nfunc fillFloat(t cborType, val float64, v reflect.Value) error {\n\tswitch v.Kind() {\n\tcase reflect.Float32, reflect.Float64:\n\t\tif v.OverflowFloat(val) {\n\t\t\treturn &UnmarshalTypeError{\n\t\t\t\tCBORType: t.String(),\n\t\t\t\tGoType:   v.Type().String(),\n\t\t\t\terrorMsg: strconv.FormatFloat(val, 'E', -1, 64) + \" overflows \" + v.Type().String(),\n\t\t\t}\n\t\t}\n\t\tv.SetFloat(val)\n\t\treturn nil\n\t}\n\treturn &UnmarshalTypeError{CBORType: t.String(), GoType: v.Type().String()}\n}\n\nfunc fillByteString(t cborType, val []byte, shared bool, v reflect.Value, bsts ByteStringToStringMode, bum BinaryUnmarshalerMode) error {\n\tif bum == BinaryUnmarshalerByteString && reflect.PtrTo(v.Type()).Implements(typeBinaryUnmarshaler) {\n\t\tif v.CanAddr() {\n\t\t\tv = v.Addr()\n\t\t\tif u, ok := v.Interface().(encoding.BinaryUnmarshaler); ok {\n\t\t\t\t// The contract of BinaryUnmarshaler forbids\n\t\t\t\t// retaining the input bytes, so no copying is\n\t\t\t\t// required even if val is shared.\n\t\t\t\treturn u.UnmarshalBinary(val)\n\t\t\t}\n\t\t}\n\t\treturn errors.New(\"cbor: cannot set new value for \" + v.Type().String())\n\t}\n\tif bsts != ByteStringToStringForbidden && v.Kind() == reflect.String {\n\t\tv.SetString(string(val))\n\t\treturn nil\n\t}\n\tif v.Kind() == reflect.Slice && v.Type().Elem().Kind() == reflect.Uint8 {\n\t\tsrc := val\n\t\tif shared {\n\t\t\t// SetBytes shares the underlying bytes of the source slice.\n\t\t\tsrc = make([]byte, len(val))\n\t\t\tcopy(src, val)\n\t\t}\n\t\tv.SetBytes(src)\n\t\treturn nil\n\t}\n\tif v.Kind() == reflect.Array && v.Type().Elem().Kind() == reflect.Uint8 {\n\t\tvLen := v.Len()\n\t\ti := 0\n\t\tfor ; i < vLen && i < len(val); i++ {\n\t\t\tv.Index(i).SetUint(uint64(val[i]))\n\t\t}\n\t\t// Set remaining Go array elements to zero values.\n\t\tif i < vLen {\n\t\t\tzeroV := reflect.Zero(reflect.TypeOf(byte(0)))\n\t\t\tfor ; i < vLen; i++ {\n\t\t\t\tv.Index(i).Set(zeroV)\n\t\t\t}\n\t\t}\n\t\treturn nil\n\t}\n\treturn &UnmarshalTypeError{CBORType: t.String(), GoType: v.Type().String()}\n}\n\nfunc fillTextString(t cborType, val []byte, v reflect.Value) error {\n\tif v.Kind() == reflect.String {\n\t\tv.SetString(string(val))\n\t\treturn nil\n\t}\n\treturn &UnmarshalTypeError{CBORType: t.String(), GoType: v.Type().String()}\n}\n\nfunc isImmutableKind(k reflect.Kind) bool {\n\tswitch k {\n\tcase reflect.Bool,\n\t\treflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,\n\t\treflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64,\n\t\treflect.Float32, reflect.Float64,\n\t\treflect.String:\n\t\treturn true\n\n\tdefault:\n\t\treturn false\n\t}\n}\n\nfunc isHashableValue(rv reflect.Value) bool {\n\tswitch rv.Kind() {\n\tcase reflect.Slice, reflect.Map, reflect.Func:\n\t\treturn false\n\n\tcase reflect.Struct:\n\t\tswitch rv.Type() {\n\t\tcase typeTag:\n\t\t\ttag := rv.Interface().(Tag)\n\t\t\treturn isHashableValue(reflect.ValueOf(tag.Content))\n\t\tcase typeBigInt:\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// convertByteSliceToByteString converts []byte to ByteString if\n// - v is []byte type, or\n// - v is Tag type and tag content type is []byte\n// This function also handles nested tags.\n// CBOR data is already verified to be well-formed before this function is used,\n// so the recursion won't exceed max nested levels.\nfunc convertByteSliceToByteString(v interface{}) (interface{}, bool) {\n\tswitch v := v.(type) {\n\tcase []byte:\n\t\treturn ByteString(v), true\n\n\tcase Tag:\n\t\tcontent, converted := convertByteSliceToByteString(v.Content)\n\t\tif converted {\n\t\t\treturn Tag{Number: v.Number, Content: content}, true\n\t\t}\n\t}\n\treturn v, false\n}\n"
  },
  {
    "path": "vendor/github.com/fxamacker/cbor/v2/diagnose.go",
    "content": "// Copyright (c) Faye Amacker. All rights reserved.\n// Licensed under the MIT License. See LICENSE in the project root for license information.\n\npackage cbor\n\nimport (\n\t\"bytes\"\n\t\"encoding/base32\"\n\t\"encoding/base64\"\n\t\"encoding/hex\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"math/big\"\n\t\"strconv\"\n\t\"unicode/utf16\"\n\t\"unicode/utf8\"\n\n\t\"github.com/x448/float16\"\n)\n\n// DiagMode is the main interface for CBOR diagnostic notation.\ntype DiagMode interface {\n\t// Diagnose returns extended diagnostic notation (EDN) of CBOR data items using this DiagMode.\n\tDiagnose([]byte) (string, error)\n\n\t// DiagnoseFirst returns extended diagnostic notation (EDN) of the first CBOR data item using the DiagMode. Any remaining bytes are returned in rest.\n\tDiagnoseFirst([]byte) (string, []byte, error)\n\n\t// DiagOptions returns user specified options used to create this DiagMode.\n\tDiagOptions() DiagOptions\n}\n\n// ByteStringEncoding specifies the base encoding that byte strings are notated.\ntype ByteStringEncoding uint8\n\nconst (\n\t// ByteStringBase16Encoding encodes byte strings in base16, without padding.\n\tByteStringBase16Encoding ByteStringEncoding = iota\n\n\t// ByteStringBase32Encoding encodes byte strings in base32, without padding.\n\tByteStringBase32Encoding\n\n\t// ByteStringBase32HexEncoding encodes byte strings in base32hex, without padding.\n\tByteStringBase32HexEncoding\n\n\t// ByteStringBase64Encoding encodes byte strings in base64url, without padding.\n\tByteStringBase64Encoding\n\n\tmaxByteStringEncoding\n)\n\nfunc (bse ByteStringEncoding) valid() error {\n\tif bse >= maxByteStringEncoding {\n\t\treturn errors.New(\"cbor: invalid ByteStringEncoding \" + strconv.Itoa(int(bse)))\n\t}\n\treturn nil\n}\n\n// DiagOptions specifies Diag options.\ntype DiagOptions struct {\n\t// ByteStringEncoding specifies the base encoding that byte strings are notated.\n\t// Default is ByteStringBase16Encoding.\n\tByteStringEncoding ByteStringEncoding\n\n\t// ByteStringHexWhitespace specifies notating with whitespace in byte string\n\t// when ByteStringEncoding is ByteStringBase16Encoding.\n\tByteStringHexWhitespace bool\n\n\t// ByteStringText specifies notating with text in byte string\n\t// if it is a valid UTF-8 text.\n\tByteStringText bool\n\n\t// ByteStringEmbeddedCBOR specifies notating embedded CBOR in byte string\n\t// if it is a valid CBOR bytes.\n\tByteStringEmbeddedCBOR bool\n\n\t// CBORSequence specifies notating CBOR sequences.\n\t// otherwise, it returns an error if there are more bytes after the first CBOR.\n\tCBORSequence bool\n\n\t// FloatPrecisionIndicator specifies appending a suffix to indicate float precision.\n\t// Refer to https://www.rfc-editor.org/rfc/rfc8949.html#name-encoding-indicators.\n\tFloatPrecisionIndicator bool\n\n\t// MaxNestedLevels specifies the max nested levels allowed for any combination of CBOR array, maps, and tags.\n\t// Default is 32 levels and it can be set to [4, 65535]. Note that higher maximum levels of nesting can\n\t// require larger amounts of stack to deserialize. Don't increase this higher than you require.\n\tMaxNestedLevels int\n\n\t// MaxArrayElements specifies the max number of elements for CBOR arrays.\n\t// Default is 128*1024=131072 and it can be set to [16, 2147483647]\n\tMaxArrayElements int\n\n\t// MaxMapPairs specifies the max number of key-value pairs for CBOR maps.\n\t// Default is 128*1024=131072 and it can be set to [16, 2147483647]\n\tMaxMapPairs int\n}\n\n// DiagMode returns a DiagMode with immutable options.\nfunc (opts DiagOptions) DiagMode() (DiagMode, error) {\n\treturn opts.diagMode()\n}\n\nfunc (opts DiagOptions) diagMode() (*diagMode, error) {\n\tif err := opts.ByteStringEncoding.valid(); err != nil {\n\t\treturn nil, err\n\t}\n\n\tdecMode, err := DecOptions{\n\t\tMaxNestedLevels:  opts.MaxNestedLevels,\n\t\tMaxArrayElements: opts.MaxArrayElements,\n\t\tMaxMapPairs:      opts.MaxMapPairs,\n\t}.decMode()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &diagMode{\n\t\tbyteStringEncoding:      opts.ByteStringEncoding,\n\t\tbyteStringHexWhitespace: opts.ByteStringHexWhitespace,\n\t\tbyteStringText:          opts.ByteStringText,\n\t\tbyteStringEmbeddedCBOR:  opts.ByteStringEmbeddedCBOR,\n\t\tcborSequence:            opts.CBORSequence,\n\t\tfloatPrecisionIndicator: opts.FloatPrecisionIndicator,\n\t\tdecMode:                 decMode,\n\t}, nil\n}\n\ntype diagMode struct {\n\tbyteStringEncoding      ByteStringEncoding\n\tbyteStringHexWhitespace bool\n\tbyteStringText          bool\n\tbyteStringEmbeddedCBOR  bool\n\tcborSequence            bool\n\tfloatPrecisionIndicator bool\n\tdecMode                 *decMode\n}\n\n// DiagOptions returns user specified options used to create this DiagMode.\nfunc (dm *diagMode) DiagOptions() DiagOptions {\n\treturn DiagOptions{\n\t\tByteStringEncoding:      dm.byteStringEncoding,\n\t\tByteStringHexWhitespace: dm.byteStringHexWhitespace,\n\t\tByteStringText:          dm.byteStringText,\n\t\tByteStringEmbeddedCBOR:  dm.byteStringEmbeddedCBOR,\n\t\tCBORSequence:            dm.cborSequence,\n\t\tFloatPrecisionIndicator: dm.floatPrecisionIndicator,\n\t\tMaxNestedLevels:         dm.decMode.maxNestedLevels,\n\t\tMaxArrayElements:        dm.decMode.maxArrayElements,\n\t\tMaxMapPairs:             dm.decMode.maxMapPairs,\n\t}\n}\n\n// Diagnose returns extended diagnostic notation (EDN) of CBOR data items using the DiagMode.\nfunc (dm *diagMode) Diagnose(data []byte) (string, error) {\n\treturn newDiagnose(data, dm.decMode, dm).diag(dm.cborSequence)\n}\n\n// DiagnoseFirst returns extended diagnostic notation (EDN) of the first CBOR data item using the DiagMode. Any remaining bytes are returned in rest.\nfunc (dm *diagMode) DiagnoseFirst(data []byte) (diagNotation string, rest []byte, err error) {\n\treturn newDiagnose(data, dm.decMode, dm).diagFirst()\n}\n\nvar defaultDiagMode, _ = DiagOptions{}.diagMode()\n\n// Diagnose returns extended diagnostic notation (EDN) of CBOR data items\n// using the default diagnostic mode.\n//\n// Refer to https://www.rfc-editor.org/rfc/rfc8949.html#name-diagnostic-notation.\nfunc Diagnose(data []byte) (string, error) {\n\treturn defaultDiagMode.Diagnose(data)\n}\n\n// Diagnose returns extended diagnostic notation (EDN) of the first CBOR data item using the DiagMode. Any remaining bytes are returned in rest.\nfunc DiagnoseFirst(data []byte) (diagNotation string, rest []byte, err error) {\n\treturn defaultDiagMode.DiagnoseFirst(data)\n}\n\ntype diagnose struct {\n\tdm *diagMode\n\td  *decoder\n\tw  *bytes.Buffer\n}\n\nfunc newDiagnose(data []byte, decm *decMode, diagm *diagMode) *diagnose {\n\treturn &diagnose{\n\t\tdm: diagm,\n\t\td:  &decoder{data: data, dm: decm},\n\t\tw:  &bytes.Buffer{},\n\t}\n}\n\nfunc (di *diagnose) diag(cborSequence bool) (string, error) {\n\t// CBOR Sequence\n\tfirstItem := true\n\tfor {\n\t\tswitch err := di.wellformed(cborSequence); err {\n\t\tcase nil:\n\t\t\tif !firstItem {\n\t\t\t\tdi.w.WriteString(\", \")\n\t\t\t}\n\t\t\tfirstItem = false\n\t\t\tif itemErr := di.item(); itemErr != nil {\n\t\t\t\treturn di.w.String(), itemErr\n\t\t\t}\n\n\t\tcase io.EOF:\n\t\t\tif firstItem {\n\t\t\t\treturn di.w.String(), err\n\t\t\t}\n\t\t\treturn di.w.String(), nil\n\n\t\tdefault:\n\t\t\treturn di.w.String(), err\n\t\t}\n\t}\n}\n\nfunc (di *diagnose) diagFirst() (diagNotation string, rest []byte, err error) {\n\terr = di.wellformed(true)\n\tif err == nil {\n\t\terr = di.item()\n\t}\n\n\tif err == nil {\n\t\t// Return EDN and the rest of the data slice (which might be len 0)\n\t\treturn di.w.String(), di.d.data[di.d.off:], nil\n\t}\n\n\treturn di.w.String(), nil, err\n}\n\nfunc (di *diagnose) wellformed(allowExtraData bool) error {\n\toff := di.d.off\n\terr := di.d.wellformed(allowExtraData, false)\n\tdi.d.off = off\n\treturn err\n}\n\nfunc (di *diagnose) item() error { //nolint:gocyclo\n\tinitialByte := di.d.data[di.d.off]\n\tswitch initialByte {\n\tcase cborByteStringWithIndefiniteLengthHead,\n\t\tcborTextStringWithIndefiniteLengthHead: // indefinite-length byte/text string\n\t\tdi.d.off++\n\t\tif isBreakFlag(di.d.data[di.d.off]) {\n\t\t\tdi.d.off++\n\t\t\tswitch initialByte {\n\t\t\tcase cborByteStringWithIndefiniteLengthHead:\n\t\t\t\t// indefinite-length bytes with no chunks.\n\t\t\t\tdi.w.WriteString(`''_`)\n\t\t\t\treturn nil\n\t\t\tcase cborTextStringWithIndefiniteLengthHead:\n\t\t\t\t// indefinite-length text with no chunks.\n\t\t\t\tdi.w.WriteString(`\"\"_`)\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\n\t\tdi.w.WriteString(\"(_ \")\n\n\t\ti := 0\n\t\tfor !di.d.foundBreak() {\n\t\t\tif i > 0 {\n\t\t\t\tdi.w.WriteString(\", \")\n\t\t\t}\n\n\t\t\ti++\n\t\t\t// wellformedIndefiniteString() already checked that the next item is a byte/text string.\n\t\t\tif err := di.item(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\tdi.w.WriteByte(')')\n\t\treturn nil\n\n\tcase cborArrayWithIndefiniteLengthHead: // indefinite-length array\n\t\tdi.d.off++\n\t\tdi.w.WriteString(\"[_ \")\n\n\t\ti := 0\n\t\tfor !di.d.foundBreak() {\n\t\t\tif i > 0 {\n\t\t\t\tdi.w.WriteString(\", \")\n\t\t\t}\n\n\t\t\ti++\n\t\t\tif err := di.item(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\tdi.w.WriteByte(']')\n\t\treturn nil\n\n\tcase cborMapWithIndefiniteLengthHead: // indefinite-length map\n\t\tdi.d.off++\n\t\tdi.w.WriteString(\"{_ \")\n\n\t\ti := 0\n\t\tfor !di.d.foundBreak() {\n\t\t\tif i > 0 {\n\t\t\t\tdi.w.WriteString(\", \")\n\t\t\t}\n\n\t\t\ti++\n\t\t\t// key\n\t\t\tif err := di.item(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tdi.w.WriteString(\": \")\n\n\t\t\t// value\n\t\t\tif err := di.item(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\tdi.w.WriteByte('}')\n\t\treturn nil\n\t}\n\n\tt := di.d.nextCBORType()\n\tswitch t {\n\tcase cborTypePositiveInt:\n\t\t_, _, val := di.d.getHead()\n\t\tdi.w.WriteString(strconv.FormatUint(val, 10))\n\t\treturn nil\n\n\tcase cborTypeNegativeInt:\n\t\t_, _, val := di.d.getHead()\n\t\tif val > math.MaxInt64 {\n\t\t\t// CBOR negative integer overflows int64, use big.Int to store value.\n\t\t\tbi := new(big.Int)\n\t\t\tbi.SetUint64(val)\n\t\t\tbi.Add(bi, big.NewInt(1))\n\t\t\tbi.Neg(bi)\n\t\t\tdi.w.WriteString(bi.String())\n\t\t\treturn nil\n\t\t}\n\n\t\tnValue := int64(-1) ^ int64(val)\n\t\tdi.w.WriteString(strconv.FormatInt(nValue, 10))\n\t\treturn nil\n\n\tcase cborTypeByteString:\n\t\tb, _ := di.d.parseByteString()\n\t\treturn di.encodeByteString(b)\n\n\tcase cborTypeTextString:\n\t\tb, err := di.d.parseTextString()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn di.encodeTextString(string(b), '\"')\n\n\tcase cborTypeArray:\n\t\t_, _, val := di.d.getHead()\n\t\tcount := int(val)\n\t\tdi.w.WriteByte('[')\n\n\t\tfor i := 0; i < count; i++ {\n\t\t\tif i > 0 {\n\t\t\t\tdi.w.WriteString(\", \")\n\t\t\t}\n\t\t\tif err := di.item(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tdi.w.WriteByte(']')\n\t\treturn nil\n\n\tcase cborTypeMap:\n\t\t_, _, val := di.d.getHead()\n\t\tcount := int(val)\n\t\tdi.w.WriteByte('{')\n\n\t\tfor i := 0; i < count; i++ {\n\t\t\tif i > 0 {\n\t\t\t\tdi.w.WriteString(\", \")\n\t\t\t}\n\t\t\t// key\n\t\t\tif err := di.item(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdi.w.WriteString(\": \")\n\t\t\t// value\n\t\t\tif err := di.item(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tdi.w.WriteByte('}')\n\t\treturn nil\n\n\tcase cborTypeTag:\n\t\t_, _, tagNum := di.d.getHead()\n\t\tswitch tagNum {\n\t\tcase tagNumUnsignedBignum:\n\t\t\tif nt := di.d.nextCBORType(); nt != cborTypeByteString {\n\t\t\t\treturn newInadmissibleTagContentTypeError(\n\t\t\t\t\ttagNumUnsignedBignum,\n\t\t\t\t\t\"byte string\",\n\t\t\t\t\tnt.String())\n\t\t\t}\n\n\t\t\tb, _ := di.d.parseByteString()\n\t\t\tbi := new(big.Int).SetBytes(b)\n\t\t\tdi.w.WriteString(bi.String())\n\t\t\treturn nil\n\n\t\tcase tagNumNegativeBignum:\n\t\t\tif nt := di.d.nextCBORType(); nt != cborTypeByteString {\n\t\t\t\treturn newInadmissibleTagContentTypeError(\n\t\t\t\t\ttagNumNegativeBignum,\n\t\t\t\t\t\"byte string\",\n\t\t\t\t\tnt.String(),\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tb, _ := di.d.parseByteString()\n\t\t\tbi := new(big.Int).SetBytes(b)\n\t\t\tbi.Add(bi, big.NewInt(1))\n\t\t\tbi.Neg(bi)\n\t\t\tdi.w.WriteString(bi.String())\n\t\t\treturn nil\n\n\t\tdefault:\n\t\t\tdi.w.WriteString(strconv.FormatUint(tagNum, 10))\n\t\t\tdi.w.WriteByte('(')\n\t\t\tif err := di.item(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdi.w.WriteByte(')')\n\t\t\treturn nil\n\t\t}\n\n\tcase cborTypePrimitives:\n\t\t_, ai, val := di.d.getHead()\n\t\tswitch ai {\n\t\tcase additionalInformationAsFalse:\n\t\t\tdi.w.WriteString(\"false\")\n\t\t\treturn nil\n\n\t\tcase additionalInformationAsTrue:\n\t\t\tdi.w.WriteString(\"true\")\n\t\t\treturn nil\n\n\t\tcase additionalInformationAsNull:\n\t\t\tdi.w.WriteString(\"null\")\n\t\t\treturn nil\n\n\t\tcase additionalInformationAsUndefined:\n\t\t\tdi.w.WriteString(\"undefined\")\n\t\t\treturn nil\n\n\t\tcase additionalInformationAsFloat16,\n\t\t\tadditionalInformationAsFloat32,\n\t\t\tadditionalInformationAsFloat64:\n\t\t\treturn di.encodeFloat(ai, val)\n\n\t\tdefault:\n\t\t\tdi.w.WriteString(\"simple(\")\n\t\t\tdi.w.WriteString(strconv.FormatUint(val, 10))\n\t\t\tdi.w.WriteByte(')')\n\t\t\treturn nil\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// writeU16 format a rune as \"\\uxxxx\"\nfunc (di *diagnose) writeU16(val rune) {\n\tdi.w.WriteString(\"\\\\u\")\n\tvar in [2]byte\n\tin[0] = byte(val >> 8)\n\tin[1] = byte(val)\n\tsz := hex.EncodedLen(len(in))\n\tdi.w.Grow(sz)\n\tdst := di.w.Bytes()[di.w.Len() : di.w.Len()+sz]\n\thex.Encode(dst, in[:])\n\tdi.w.Write(dst)\n}\n\nvar rawBase32Encoding = base32.StdEncoding.WithPadding(base32.NoPadding)\nvar rawBase32HexEncoding = base32.HexEncoding.WithPadding(base32.NoPadding)\n\nfunc (di *diagnose) encodeByteString(val []byte) error {\n\tif len(val) > 0 {\n\t\tif di.dm.byteStringText && utf8.Valid(val) {\n\t\t\treturn di.encodeTextString(string(val), '\\'')\n\t\t}\n\n\t\tif di.dm.byteStringEmbeddedCBOR {\n\t\t\tdi2 := newDiagnose(val, di.dm.decMode, di.dm)\n\t\t\t// should always notating embedded CBOR sequence.\n\t\t\tif str, err := di2.diag(true); err == nil {\n\t\t\t\tdi.w.WriteString(\"<<\")\n\t\t\t\tdi.w.WriteString(str)\n\t\t\t\tdi.w.WriteString(\">>\")\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t}\n\n\tswitch di.dm.byteStringEncoding {\n\tcase ByteStringBase16Encoding:\n\t\tdi.w.WriteString(\"h'\")\n\t\tif di.dm.byteStringHexWhitespace {\n\t\t\tsz := hex.EncodedLen(len(val))\n\t\t\tif len(val) > 0 {\n\t\t\t\tsz += len(val) - 1\n\t\t\t}\n\t\t\tdi.w.Grow(sz)\n\n\t\t\tdst := di.w.Bytes()[di.w.Len():]\n\t\t\tfor i := range val {\n\t\t\t\tif i > 0 {\n\t\t\t\t\tdst = append(dst, ' ')\n\t\t\t\t}\n\t\t\t\thex.Encode(dst[len(dst):len(dst)+2], val[i:i+1])\n\t\t\t\tdst = dst[:len(dst)+2]\n\t\t\t}\n\t\t\tdi.w.Write(dst)\n\t\t} else {\n\t\t\tsz := hex.EncodedLen(len(val))\n\t\t\tdi.w.Grow(sz)\n\t\t\tdst := di.w.Bytes()[di.w.Len() : di.w.Len()+sz]\n\t\t\thex.Encode(dst, val)\n\t\t\tdi.w.Write(dst)\n\t\t}\n\t\tdi.w.WriteByte('\\'')\n\t\treturn nil\n\n\tcase ByteStringBase32Encoding:\n\t\tdi.w.WriteString(\"b32'\")\n\t\tsz := rawBase32Encoding.EncodedLen(len(val))\n\t\tdi.w.Grow(sz)\n\t\tdst := di.w.Bytes()[di.w.Len() : di.w.Len()+sz]\n\t\trawBase32Encoding.Encode(dst, val)\n\t\tdi.w.Write(dst)\n\t\tdi.w.WriteByte('\\'')\n\t\treturn nil\n\n\tcase ByteStringBase32HexEncoding:\n\t\tdi.w.WriteString(\"h32'\")\n\t\tsz := rawBase32HexEncoding.EncodedLen(len(val))\n\t\tdi.w.Grow(sz)\n\t\tdst := di.w.Bytes()[di.w.Len() : di.w.Len()+sz]\n\t\trawBase32HexEncoding.Encode(dst, val)\n\t\tdi.w.Write(dst)\n\t\tdi.w.WriteByte('\\'')\n\t\treturn nil\n\n\tcase ByteStringBase64Encoding:\n\t\tdi.w.WriteString(\"b64'\")\n\t\tsz := base64.RawURLEncoding.EncodedLen(len(val))\n\t\tdi.w.Grow(sz)\n\t\tdst := di.w.Bytes()[di.w.Len() : di.w.Len()+sz]\n\t\tbase64.RawURLEncoding.Encode(dst, val)\n\t\tdi.w.Write(dst)\n\t\tdi.w.WriteByte('\\'')\n\t\treturn nil\n\n\tdefault:\n\t\t// It should not be possible for users to construct a *diagMode with an invalid byte\n\t\t// string encoding.\n\t\tpanic(fmt.Sprintf(\"diagmode has invalid ByteStringEncoding %v\", di.dm.byteStringEncoding))\n\t}\n}\n\nconst utf16SurrSelf = rune(0x10000)\n\n// quote should be either `'` or `\"`\nfunc (di *diagnose) encodeTextString(val string, quote byte) error {\n\tdi.w.WriteByte(quote)\n\n\tfor i := 0; i < len(val); {\n\t\tif b := val[i]; b < utf8.RuneSelf {\n\t\t\tswitch {\n\t\t\tcase b == '\\t', b == '\\n', b == '\\r', b == '\\\\', b == quote:\n\t\t\t\tdi.w.WriteByte('\\\\')\n\n\t\t\t\tswitch b {\n\t\t\t\tcase '\\t':\n\t\t\t\t\tb = 't'\n\t\t\t\tcase '\\n':\n\t\t\t\t\tb = 'n'\n\t\t\t\tcase '\\r':\n\t\t\t\t\tb = 'r'\n\t\t\t\t}\n\t\t\t\tdi.w.WriteByte(b)\n\n\t\t\tcase b >= ' ' && b <= '~':\n\t\t\t\tdi.w.WriteByte(b)\n\n\t\t\tdefault:\n\t\t\t\tdi.writeU16(rune(b))\n\t\t\t}\n\n\t\t\ti++\n\t\t\tcontinue\n\t\t}\n\n\t\tc, size := utf8.DecodeRuneInString(val[i:])\n\t\tswitch {\n\t\tcase c == utf8.RuneError:\n\t\t\treturn &SemanticError{\"cbor: invalid UTF-8 string\"}\n\n\t\tcase c < utf16SurrSelf:\n\t\t\tdi.writeU16(c)\n\n\t\tdefault:\n\t\t\tc1, c2 := utf16.EncodeRune(c)\n\t\t\tdi.writeU16(c1)\n\t\t\tdi.writeU16(c2)\n\t\t}\n\n\t\ti += size\n\t}\n\n\tdi.w.WriteByte(quote)\n\treturn nil\n}\n\nfunc (di *diagnose) encodeFloat(ai byte, val uint64) error {\n\tf64 := float64(0)\n\tswitch ai {\n\tcase additionalInformationAsFloat16:\n\t\tf16 := float16.Frombits(uint16(val))\n\t\tswitch {\n\t\tcase f16.IsNaN():\n\t\t\tdi.w.WriteString(\"NaN\")\n\t\t\treturn nil\n\t\tcase f16.IsInf(1):\n\t\t\tdi.w.WriteString(\"Infinity\")\n\t\t\treturn nil\n\t\tcase f16.IsInf(-1):\n\t\t\tdi.w.WriteString(\"-Infinity\")\n\t\t\treturn nil\n\t\tdefault:\n\t\t\tf64 = float64(f16.Float32())\n\t\t}\n\n\tcase additionalInformationAsFloat32:\n\t\tf32 := math.Float32frombits(uint32(val))\n\t\tswitch {\n\t\tcase f32 != f32:\n\t\t\tdi.w.WriteString(\"NaN\")\n\t\t\treturn nil\n\t\tcase f32 > math.MaxFloat32:\n\t\t\tdi.w.WriteString(\"Infinity\")\n\t\t\treturn nil\n\t\tcase f32 < -math.MaxFloat32:\n\t\t\tdi.w.WriteString(\"-Infinity\")\n\t\t\treturn nil\n\t\tdefault:\n\t\t\tf64 = float64(f32)\n\t\t}\n\n\tcase additionalInformationAsFloat64:\n\t\tf64 = math.Float64frombits(val)\n\t\tswitch {\n\t\tcase f64 != f64:\n\t\t\tdi.w.WriteString(\"NaN\")\n\t\t\treturn nil\n\t\tcase f64 > math.MaxFloat64:\n\t\t\tdi.w.WriteString(\"Infinity\")\n\t\t\treturn nil\n\t\tcase f64 < -math.MaxFloat64:\n\t\t\tdi.w.WriteString(\"-Infinity\")\n\t\t\treturn nil\n\t\t}\n\t}\n\t// Use ES6 number to string conversion which should match most JSON generators.\n\t// Inspired by https://github.com/golang/go/blob/4df10fba1687a6d4f51d7238a403f8f2298f6a16/src/encoding/json/encode.go#L585\n\tconst bitSize = 64\n\tb := make([]byte, 0, 32)\n\tif abs := math.Abs(f64); abs != 0 && (abs < 1e-6 || abs >= 1e21) {\n\t\tb = strconv.AppendFloat(b, f64, 'e', -1, bitSize)\n\t\t// clean up e-09 to e-9\n\t\tn := len(b)\n\t\tif n >= 4 && string(b[n-4:n-1]) == \"e-0\" {\n\t\t\tb = append(b[:n-2], b[n-1])\n\t\t}\n\t} else {\n\t\tb = strconv.AppendFloat(b, f64, 'f', -1, bitSize)\n\t}\n\n\t// add decimal point and trailing zero if needed\n\tif bytes.IndexByte(b, '.') < 0 {\n\t\tif i := bytes.IndexByte(b, 'e'); i < 0 {\n\t\t\tb = append(b, '.', '0')\n\t\t} else {\n\t\t\tb = append(b[:i+2], b[i:]...)\n\t\t\tb[i] = '.'\n\t\t\tb[i+1] = '0'\n\t\t}\n\t}\n\n\tdi.w.WriteString(string(b))\n\n\tif di.dm.floatPrecisionIndicator {\n\t\tswitch ai {\n\t\tcase additionalInformationAsFloat16:\n\t\t\tdi.w.WriteString(\"_1\")\n\t\t\treturn nil\n\n\t\tcase additionalInformationAsFloat32:\n\t\t\tdi.w.WriteString(\"_2\")\n\t\t\treturn nil\n\n\t\tcase additionalInformationAsFloat64:\n\t\t\tdi.w.WriteString(\"_3\")\n\t\t\treturn nil\n\t\t}\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/fxamacker/cbor/v2/doc.go",
    "content": "// Copyright (c) Faye Amacker. All rights reserved.\n// Licensed under the MIT License. See LICENSE in the project root for license information.\n\n/*\nPackage cbor is a modern CBOR codec (RFC 8949 & RFC 7049) with CBOR tags,\nGo struct tags (toarray/keyasint/omitempty), Core Deterministic Encoding,\nCTAP2, Canonical CBOR, float64->32->16, and duplicate map key detection.\n\nEncoding options allow \"preferred serialization\" by encoding integers and floats\nto their smallest forms (e.g. float16) when values fit.\n\nStruct tags like \"keyasint\", \"toarray\" and \"omitempty\" make CBOR data smaller\nand easier to use with structs.\n\nFor example, \"toarray\" tag makes struct fields encode to CBOR array elements.  And\n\"keyasint\" makes a field encode to an element of CBOR map with specified int key.\n\nLatest docs can be viewed at https://github.com/fxamacker/cbor#cbor-library-in-go\n\n# Basics\n\nThe Quick Start guide is at https://github.com/fxamacker/cbor#quick-start\n\nFunction signatures identical to encoding/json include:\n\n\tMarshal, Unmarshal, NewEncoder, NewDecoder, (*Encoder).Encode, (*Decoder).Decode.\n\nStandard interfaces include:\n\n\tBinaryMarshaler, BinaryUnmarshaler, Marshaler, and Unmarshaler.\n\nCustom encoding and decoding is possible by implementing standard interfaces for\nuser-defined Go types.\n\nCodec functions are available at package-level (using defaults options) or by\ncreating modes from options at runtime.\n\n\"Mode\" in this API means definite way of encoding (EncMode) or decoding (DecMode).\n\nEncMode and DecMode interfaces are created from EncOptions or DecOptions structs.\n\n\tem, err := cbor.EncOptions{...}.EncMode()\n\tem, err := cbor.CanonicalEncOptions().EncMode()\n\tem, err := cbor.CTAP2EncOptions().EncMode()\n\nModes use immutable options to avoid side-effects and simplify concurrency. Behavior of\nmodes won't accidentally change at runtime after they're created.\n\nModes are intended to be reused and are safe for concurrent use.\n\nEncMode and DecMode Interfaces\n\n\t    // EncMode interface uses immutable options and is safe for concurrent use.\n\t    type EncMode interface {\n\t\tMarshal(v interface{}) ([]byte, error)\n\t\tNewEncoder(w io.Writer) *Encoder\n\t\tEncOptions() EncOptions  // returns copy of options\n\t    }\n\n\t    // DecMode interface uses immutable options and is safe for concurrent use.\n\t    type DecMode interface {\n\t\tUnmarshal(data []byte, v interface{}) error\n\t\tNewDecoder(r io.Reader) *Decoder\n\t\tDecOptions() DecOptions  // returns copy of options\n\t    }\n\nUsing Default Encoding Mode\n\n\tb, err := cbor.Marshal(v)\n\n\tencoder := cbor.NewEncoder(w)\n\terr = encoder.Encode(v)\n\nUsing Default Decoding Mode\n\n\terr := cbor.Unmarshal(b, &v)\n\n\tdecoder := cbor.NewDecoder(r)\n\terr = decoder.Decode(&v)\n\nCreating and Using Encoding Modes\n\n\t// Create EncOptions using either struct literal or a function.\n\topts := cbor.CanonicalEncOptions()\n\n\t// If needed, modify encoding options\n\topts.Time = cbor.TimeUnix\n\n\t// Create reusable EncMode interface with immutable options, safe for concurrent use.\n\tem, err := opts.EncMode()\n\n\t// Use EncMode like encoding/json, with same function signatures.\n\tb, err := em.Marshal(v)\n\t// or\n\tencoder := em.NewEncoder(w)\n\terr := encoder.Encode(v)\n\n\t// NOTE: Both em.Marshal(v) and encoder.Encode(v) use encoding options\n\t// specified during creation of em (encoding mode).\n\n# CBOR Options\n\nPredefined Encoding Options: https://github.com/fxamacker/cbor#predefined-encoding-options\n\nEncoding Options: https://github.com/fxamacker/cbor#encoding-options\n\nDecoding Options: https://github.com/fxamacker/cbor#decoding-options\n\n# Struct Tags\n\nStruct tags like `cbor:\"name,omitempty\"` and `json:\"name,omitempty\"` work as expected.\nIf both struct tags are specified then `cbor` is used.\n\nStruct tags like \"keyasint\", \"toarray\", and \"omitempty\" make it easy to use\nvery compact formats like COSE and CWT (CBOR Web Tokens) with structs.\n\nFor example, \"toarray\" makes struct fields encode to array elements.  And \"keyasint\"\nmakes struct fields encode to elements of CBOR map with int keys.\n\nhttps://raw.githubusercontent.com/fxamacker/images/master/cbor/v2.0.0/cbor_easy_api.png\n\nStruct tags are listed at https://github.com/fxamacker/cbor#struct-tags-1\n\n# Tests and Fuzzing\n\nOver 375 tests are included in this package. Cover-guided fuzzing is handled by\na private fuzzer that replaced fxamacker/cbor-fuzz years ago.\n*/\npackage cbor\n"
  },
  {
    "path": "vendor/github.com/fxamacker/cbor/v2/encode.go",
    "content": "// Copyright (c) Faye Amacker. All rights reserved.\n// Licensed under the MIT License. See LICENSE in the project root for license information.\n\npackage cbor\n\nimport (\n\t\"bytes\"\n\t\"encoding\"\n\t\"encoding/binary\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"math/big\"\n\t\"math/rand\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strconv\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/x448/float16\"\n)\n\n// Marshal returns the CBOR encoding of v using default encoding options.\n// See EncOptions for encoding options.\n//\n// Marshal uses the following encoding rules:\n//\n// If value implements the Marshaler interface, Marshal calls its\n// MarshalCBOR method.\n//\n// If value implements encoding.BinaryMarshaler, Marhsal calls its\n// MarshalBinary method and encode it as CBOR byte string.\n//\n// Boolean values encode as CBOR booleans (type 7).\n//\n// Positive integer values encode as CBOR positive integers (type 0).\n//\n// Negative integer values encode as CBOR negative integers (type 1).\n//\n// Floating point values encode as CBOR floating points (type 7).\n//\n// String values encode as CBOR text strings (type 3).\n//\n// []byte values encode as CBOR byte strings (type 2).\n//\n// Array and slice values encode as CBOR arrays (type 4).\n//\n// Map values encode as CBOR maps (type 5).\n//\n// Struct values encode as CBOR maps (type 5).  Each exported struct field\n// becomes a pair with field name encoded as CBOR text string (type 3) and\n// field value encoded based on its type.  See struct tag option \"keyasint\"\n// to encode field name as CBOR integer (type 0 and 1).  Also see struct\n// tag option \"toarray\" for special field \"_\" to encode struct values as\n// CBOR array (type 4).\n//\n// Marshal supports format string stored under the \"cbor\" key in the struct\n// field's tag.  CBOR format string can specify the name of the field,\n// \"omitempty\" and \"keyasint\" options, and special case \"-\" for field omission.\n// If \"cbor\" key is absent, Marshal uses \"json\" key.\n//\n// Struct field name is treated as integer if it has \"keyasint\" option in\n// its format string.  The format string must specify an integer as its\n// field name.\n//\n// Special struct field \"_\" is used to specify struct level options, such as\n// \"toarray\". \"toarray\" option enables Go struct to be encoded as CBOR array.\n// \"omitempty\" is disabled by \"toarray\" to ensure that the same number\n// of elements are encoded every time.\n//\n// Anonymous struct fields are marshaled as if their exported fields\n// were fields in the outer struct.  Marshal follows the same struct fields\n// visibility rules used by JSON encoding package.\n//\n// time.Time values encode as text strings specified in RFC3339 or numerical\n// representation of seconds since January 1, 1970 UTC depending on\n// EncOptions.Time setting.  Also See EncOptions.TimeTag to encode\n// time.Time as CBOR tag with tag number 0 or 1.\n//\n// big.Int values encode as CBOR integers (type 0 and 1) if values fit.\n// Otherwise, big.Int values encode as CBOR bignums (tag 2 and 3).  See\n// EncOptions.BigIntConvert to always encode big.Int values as CBOR\n// bignums.\n//\n// Pointer values encode as the value pointed to.\n//\n// Interface values encode as the value stored in the interface.\n//\n// Nil slice/map/pointer/interface values encode as CBOR nulls (type 7).\n//\n// Values of other types cannot be encoded in CBOR.  Attempting\n// to encode such a value causes Marshal to return an UnsupportedTypeError.\nfunc Marshal(v interface{}) ([]byte, error) {\n\treturn defaultEncMode.Marshal(v)\n}\n\n// MarshalToBuffer encodes v into provided buffer (instead of using built-in buffer pool)\n// and uses default encoding options.\n//\n// NOTE: Unlike Marshal, the buffer provided to MarshalToBuffer can contain\n// partially encoded data if error is returned.\n//\n// See Marshal for more details.\nfunc MarshalToBuffer(v interface{}, buf *bytes.Buffer) error {\n\treturn defaultEncMode.MarshalToBuffer(v, buf)\n}\n\n// Marshaler is the interface implemented by types that can marshal themselves\n// into valid CBOR.\ntype Marshaler interface {\n\tMarshalCBOR() ([]byte, error)\n}\n\n// MarshalerError represents error from checking encoded CBOR data item\n// returned from MarshalCBOR for well-formedness and some very limited tag validation.\ntype MarshalerError struct {\n\ttyp reflect.Type\n\terr error\n}\n\nfunc (e *MarshalerError) Error() string {\n\treturn \"cbor: error calling MarshalCBOR for type \" +\n\t\te.typ.String() +\n\t\t\": \" + e.err.Error()\n}\n\nfunc (e *MarshalerError) Unwrap() error {\n\treturn e.err\n}\n\n// UnsupportedTypeError is returned by Marshal when attempting to encode value\n// of an unsupported type.\ntype UnsupportedTypeError struct {\n\tType reflect.Type\n}\n\nfunc (e *UnsupportedTypeError) Error() string {\n\treturn \"cbor: unsupported type: \" + e.Type.String()\n}\n\n// UnsupportedValueError is returned by Marshal when attempting to encode an\n// unsupported value.\ntype UnsupportedValueError struct {\n\tmsg string\n}\n\nfunc (e *UnsupportedValueError) Error() string {\n\treturn \"cbor: unsupported value: \" + e.msg\n}\n\n// SortMode identifies supported sorting order.\ntype SortMode int\n\nconst (\n\t// SortNone encodes map pairs and struct fields in an arbitrary order.\n\tSortNone SortMode = 0\n\n\t// SortLengthFirst causes map keys or struct fields to be sorted such that:\n\t//     - If two keys have different lengths, the shorter one sorts earlier;\n\t//     - If two keys have the same length, the one with the lower value in\n\t//       (byte-wise) lexical order sorts earlier.\n\t// It is used in \"Canonical CBOR\" encoding in RFC 7049 3.9.\n\tSortLengthFirst SortMode = 1\n\n\t// SortBytewiseLexical causes map keys or struct fields to be sorted in the\n\t// bytewise lexicographic order of their deterministic CBOR encodings.\n\t// It is used in \"CTAP2 Canonical CBOR\" and \"Core Deterministic Encoding\"\n\t// in RFC 7049bis.\n\tSortBytewiseLexical SortMode = 2\n\n\t// SortShuffle encodes map pairs and struct fields in a shuffled\n\t// order. This mode does not guarantee an unbiased permutation, but it\n\t// does guarantee that the runtime of the shuffle algorithm used will be\n\t// constant.\n\tSortFastShuffle SortMode = 3\n\n\t// SortCanonical is used in \"Canonical CBOR\" encoding in RFC 7049 3.9.\n\tSortCanonical SortMode = SortLengthFirst\n\n\t// SortCTAP2 is used in \"CTAP2 Canonical CBOR\".\n\tSortCTAP2 SortMode = SortBytewiseLexical\n\n\t// SortCoreDeterministic is used in \"Core Deterministic Encoding\" in RFC 7049bis.\n\tSortCoreDeterministic SortMode = SortBytewiseLexical\n\n\tmaxSortMode SortMode = 4\n)\n\nfunc (sm SortMode) valid() bool {\n\treturn sm >= 0 && sm < maxSortMode\n}\n\n// StringMode specifies how to encode Go string values.\ntype StringMode int\n\nconst (\n\t// StringToTextString encodes Go string to CBOR text string (major type 3).\n\tStringToTextString StringMode = iota\n\n\t// StringToByteString encodes Go string to CBOR byte string (major type 2).\n\tStringToByteString\n)\n\nfunc (st StringMode) cborType() (cborType, error) {\n\tswitch st {\n\tcase StringToTextString:\n\t\treturn cborTypeTextString, nil\n\n\tcase StringToByteString:\n\t\treturn cborTypeByteString, nil\n\t}\n\treturn 0, errors.New(\"cbor: invalid StringType \" + strconv.Itoa(int(st)))\n}\n\n// ShortestFloatMode specifies which floating-point format should\n// be used as the shortest possible format for CBOR encoding.\n// It is not used for encoding Infinity and NaN values.\ntype ShortestFloatMode int\n\nconst (\n\t// ShortestFloatNone makes float values encode without any conversion.\n\t// This is the default for ShortestFloatMode in v1.\n\t// E.g. a float32 in Go will encode to CBOR float32.  And\n\t// a float64 in Go will encode to CBOR float64.\n\tShortestFloatNone ShortestFloatMode = iota\n\n\t// ShortestFloat16 specifies float16 as the shortest form that preserves value.\n\t// E.g. if float64 can convert to float32 while preserving value, then\n\t// encoding will also try to convert float32 to float16.  So a float64 might\n\t// encode as CBOR float64, float32 or float16 depending on the value.\n\tShortestFloat16\n\n\tmaxShortestFloat\n)\n\nfunc (sfm ShortestFloatMode) valid() bool {\n\treturn sfm >= 0 && sfm < maxShortestFloat\n}\n\n// NaNConvertMode specifies how to encode NaN and overrides ShortestFloatMode.\n// ShortestFloatMode is not used for encoding Infinity and NaN values.\ntype NaNConvertMode int\n\nconst (\n\t// NaNConvert7e00 always encodes NaN to 0xf97e00 (CBOR float16 = 0x7e00).\n\tNaNConvert7e00 NaNConvertMode = iota\n\n\t// NaNConvertNone never modifies or converts NaN to other representations\n\t// (float64 NaN stays float64, etc. even if it can use float16 without losing\n\t// any bits).\n\tNaNConvertNone\n\n\t// NaNConvertPreserveSignal converts NaN to the smallest form that preserves\n\t// value (quiet bit + payload) as described in RFC 7049bis Draft 12.\n\tNaNConvertPreserveSignal\n\n\t// NaNConvertQuiet always forces quiet bit = 1 and shortest form that preserves\n\t// NaN payload.\n\tNaNConvertQuiet\n\n\t// NaNConvertReject returns UnsupportedValueError on attempts to encode a NaN value.\n\tNaNConvertReject\n\n\tmaxNaNConvert\n)\n\nfunc (ncm NaNConvertMode) valid() bool {\n\treturn ncm >= 0 && ncm < maxNaNConvert\n}\n\n// InfConvertMode specifies how to encode Infinity and overrides ShortestFloatMode.\n// ShortestFloatMode is not used for encoding Infinity and NaN values.\ntype InfConvertMode int\n\nconst (\n\t// InfConvertFloat16 always converts Inf to lossless IEEE binary16 (float16).\n\tInfConvertFloat16 InfConvertMode = iota\n\n\t// InfConvertNone never converts (used by CTAP2 Canonical CBOR).\n\tInfConvertNone\n\n\t// InfConvertReject returns UnsupportedValueError on attempts to encode an infinite value.\n\tInfConvertReject\n\n\tmaxInfConvert\n)\n\nfunc (icm InfConvertMode) valid() bool {\n\treturn icm >= 0 && icm < maxInfConvert\n}\n\n// TimeMode specifies how to encode time.Time values.\ntype TimeMode int\n\nconst (\n\t// TimeUnix causes time.Time to be encoded as epoch time in integer with second precision.\n\tTimeUnix TimeMode = iota\n\n\t// TimeUnixMicro causes time.Time to be encoded as epoch time in float-point rounded to microsecond precision.\n\tTimeUnixMicro\n\n\t// TimeUnixDynamic causes time.Time to be encoded as integer if time.Time doesn't have fractional seconds,\n\t// otherwise float-point rounded to microsecond precision.\n\tTimeUnixDynamic\n\n\t// TimeRFC3339 causes time.Time to be encoded as RFC3339 formatted string with second precision.\n\tTimeRFC3339\n\n\t// TimeRFC3339Nano causes time.Time to be encoded as RFC3339 formatted string with nanosecond precision.\n\tTimeRFC3339Nano\n\n\tmaxTimeMode\n)\n\nfunc (tm TimeMode) valid() bool {\n\treturn tm >= 0 && tm < maxTimeMode\n}\n\n// BigIntConvertMode specifies how to encode big.Int values.\ntype BigIntConvertMode int\n\nconst (\n\t// BigIntConvertShortest makes big.Int encode to CBOR integer if value fits.\n\t// E.g. if big.Int value can be converted to CBOR integer while preserving\n\t// value, encoder will encode it to CBOR integer (major type 0 or 1).\n\tBigIntConvertShortest BigIntConvertMode = iota\n\n\t// BigIntConvertNone makes big.Int encode to CBOR bignum (tag 2 or 3) without\n\t// converting it to another CBOR type.\n\tBigIntConvertNone\n\n\t// BigIntConvertReject returns an UnsupportedTypeError instead of marshaling a big.Int.\n\tBigIntConvertReject\n\n\tmaxBigIntConvert\n)\n\nfunc (bim BigIntConvertMode) valid() bool {\n\treturn bim >= 0 && bim < maxBigIntConvert\n}\n\n// NilContainersMode specifies how to encode nil slices and maps.\ntype NilContainersMode int\n\nconst (\n\t// NilContainerAsNull encodes nil slices and maps as CBOR null.\n\t// This is the default.\n\tNilContainerAsNull NilContainersMode = iota\n\n\t// NilContainerAsEmpty encodes nil slices and maps as\n\t// empty container (CBOR bytestring, array, or map).\n\tNilContainerAsEmpty\n\n\tmaxNilContainersMode\n)\n\nfunc (m NilContainersMode) valid() bool {\n\treturn m >= 0 && m < maxNilContainersMode\n}\n\n// OmitEmptyMode specifies how to encode struct fields with omitempty tag.\n// The default behavior omits if field value would encode as empty CBOR value.\ntype OmitEmptyMode int\n\nconst (\n\t// OmitEmptyCBORValue specifies that struct fields tagged with \"omitempty\"\n\t// should be omitted from encoding if the field would be encoded as an empty\n\t// CBOR value, such as CBOR false, 0, 0.0, nil, empty byte, empty string,\n\t// empty array, or empty map.\n\tOmitEmptyCBORValue OmitEmptyMode = iota\n\n\t// OmitEmptyGoValue specifies that struct fields tagged with \"omitempty\"\n\t// should be omitted from encoding if the field has an empty Go value,\n\t// defined as false, 0, 0.0, a nil pointer, a nil interface value, and\n\t// any empty array, slice, map, or string.\n\t// This behavior is the same as the current (aka v1) encoding/json package\n\t// included in Go.\n\tOmitEmptyGoValue\n\n\tmaxOmitEmptyMode\n)\n\nfunc (om OmitEmptyMode) valid() bool {\n\treturn om >= 0 && om < maxOmitEmptyMode\n}\n\n// FieldNameMode specifies the CBOR type to use when encoding struct field names.\ntype FieldNameMode int\n\nconst (\n\t// FieldNameToTextString encodes struct fields to CBOR text string (major type 3).\n\tFieldNameToTextString FieldNameMode = iota\n\n\t// FieldNameToTextString encodes struct fields to CBOR byte string (major type 2).\n\tFieldNameToByteString\n\n\tmaxFieldNameMode\n)\n\nfunc (fnm FieldNameMode) valid() bool {\n\treturn fnm >= 0 && fnm < maxFieldNameMode\n}\n\n// ByteSliceLaterFormatMode specifies which later format conversion hint (CBOR tag 21-23)\n// to include (if any) when encoding Go byte slice to CBOR byte string. The encoder will\n// always encode unmodified bytes from the byte slice and just wrap it within\n// CBOR tag 21, 22, or 23 if specified.\n// See \"Expected Later Encoding for CBOR-to-JSON Converters\" in RFC 8949 Section 3.4.5.2.\ntype ByteSliceLaterFormatMode int\n\nconst (\n\t// ByteSliceLaterFormatNone encodes unmodified bytes from Go byte slice to CBOR byte string (major type 2)\n\t// without adding CBOR tag 21, 22, or 23.\n\tByteSliceLaterFormatNone ByteSliceLaterFormatMode = iota\n\n\t// ByteSliceLaterFormatBase64URL encodes unmodified bytes from Go byte slice to CBOR byte string (major type 2)\n\t// inside CBOR tag 21 (expected later conversion to base64url encoding, see RFC 8949 Section 3.4.5.2).\n\tByteSliceLaterFormatBase64URL\n\n\t// ByteSliceLaterFormatBase64 encodes unmodified bytes from Go byte slice to CBOR byte string (major type 2)\n\t// inside CBOR tag 22 (expected later conversion to base64 encoding, see RFC 8949 Section 3.4.5.2).\n\tByteSliceLaterFormatBase64\n\n\t// ByteSliceLaterFormatBase16 encodes unmodified bytes from Go byte slice to CBOR byte string (major type 2)\n\t// inside CBOR tag 23 (expected later conversion to base16 encoding, see RFC 8949 Section 3.4.5.2).\n\tByteSliceLaterFormatBase16\n)\n\nfunc (bsefm ByteSliceLaterFormatMode) encodingTag() (uint64, error) {\n\tswitch bsefm {\n\tcase ByteSliceLaterFormatNone:\n\t\treturn 0, nil\n\n\tcase ByteSliceLaterFormatBase64URL:\n\t\treturn tagNumExpectedLaterEncodingBase64URL, nil\n\n\tcase ByteSliceLaterFormatBase64:\n\t\treturn tagNumExpectedLaterEncodingBase64, nil\n\n\tcase ByteSliceLaterFormatBase16:\n\t\treturn tagNumExpectedLaterEncodingBase16, nil\n\t}\n\treturn 0, errors.New(\"cbor: invalid ByteSliceLaterFormat \" + strconv.Itoa(int(bsefm)))\n}\n\n// ByteArrayMode specifies how to encode byte arrays.\ntype ByteArrayMode int\n\nconst (\n\t// ByteArrayToByteSlice encodes byte arrays the same way that a byte slice with identical\n\t// length and contents is encoded.\n\tByteArrayToByteSlice ByteArrayMode = iota\n\n\t// ByteArrayToArray encodes byte arrays to the CBOR array type with one unsigned integer\n\t// item for each byte in the array.\n\tByteArrayToArray\n\n\tmaxByteArrayMode\n)\n\nfunc (bam ByteArrayMode) valid() bool {\n\treturn bam >= 0 && bam < maxByteArrayMode\n}\n\n// BinaryMarshalerMode specifies how to encode types that implement encoding.BinaryMarshaler.\ntype BinaryMarshalerMode int\n\nconst (\n\t// BinaryMarshalerByteString encodes the output of MarshalBinary to a CBOR byte string.\n\tBinaryMarshalerByteString BinaryMarshalerMode = iota\n\n\t// BinaryMarshalerNone does not recognize BinaryMarshaler implementations during encode.\n\tBinaryMarshalerNone\n\n\tmaxBinaryMarshalerMode\n)\n\nfunc (bmm BinaryMarshalerMode) valid() bool {\n\treturn bmm >= 0 && bmm < maxBinaryMarshalerMode\n}\n\n// EncOptions specifies encoding options.\ntype EncOptions struct {\n\t// Sort specifies sorting order.\n\tSort SortMode\n\n\t// ShortestFloat specifies the shortest floating-point encoding that preserves\n\t// the value being encoded.\n\tShortestFloat ShortestFloatMode\n\n\t// NaNConvert specifies how to encode NaN and it overrides ShortestFloatMode.\n\tNaNConvert NaNConvertMode\n\n\t// InfConvert specifies how to encode Inf and it overrides ShortestFloatMode.\n\tInfConvert InfConvertMode\n\n\t// BigIntConvert specifies how to encode big.Int values.\n\tBigIntConvert BigIntConvertMode\n\n\t// Time specifies how to encode time.Time.\n\tTime TimeMode\n\n\t// TimeTag allows time.Time to be encoded with a tag number.\n\t// RFC3339 format gets tag number 0, and numeric epoch time tag number 1.\n\tTimeTag EncTagMode\n\n\t// IndefLength specifies whether to allow indefinite length CBOR items.\n\tIndefLength IndefLengthMode\n\n\t// NilContainers specifies how to encode nil slices and maps.\n\tNilContainers NilContainersMode\n\n\t// TagsMd specifies whether to allow CBOR tags (major type 6).\n\tTagsMd TagsMode\n\n\t// OmitEmptyMode specifies how to encode struct fields with omitempty tag.\n\tOmitEmpty OmitEmptyMode\n\n\t// String specifies which CBOR type to use when encoding Go strings.\n\t// - CBOR text string (major type 3) is default\n\t// - CBOR byte string (major type 2)\n\tString StringMode\n\n\t// FieldName specifies the CBOR type to use when encoding struct field names.\n\tFieldName FieldNameMode\n\n\t// ByteSliceLaterFormat specifies which later format conversion hint (CBOR tag 21-23)\n\t// to include (if any) when encoding Go byte slice to CBOR byte string. The encoder will\n\t// always encode unmodified bytes from the byte slice and just wrap it within\n\t// CBOR tag 21, 22, or 23 if specified.\n\t// See \"Expected Later Encoding for CBOR-to-JSON Converters\" in RFC 8949 Section 3.4.5.2.\n\tByteSliceLaterFormat ByteSliceLaterFormatMode\n\n\t// ByteArray specifies how to encode byte arrays.\n\tByteArray ByteArrayMode\n\n\t// BinaryMarshaler specifies how to encode types that implement encoding.BinaryMarshaler.\n\tBinaryMarshaler BinaryMarshalerMode\n}\n\n// CanonicalEncOptions returns EncOptions for \"Canonical CBOR\" encoding,\n// defined in RFC 7049 Section 3.9 with the following rules:\n//\n//  1. \"Integers must be as small as possible.\"\n//  2. \"The expression of lengths in major types 2 through 5 must be as short as possible.\"\n//  3. The keys in every map must be sorted in length-first sorting order.\n//     See SortLengthFirst for details.\n//  4. \"Indefinite-length items must be made into definite-length items.\"\n//  5. \"If a protocol allows for IEEE floats, then additional canonicalization rules might\n//     need to be added.  One example rule might be to have all floats start as a 64-bit\n//     float, then do a test conversion to a 32-bit float; if the result is the same numeric\n//     value, use the shorter value and repeat the process with a test conversion to a\n//     16-bit float.  (This rule selects 16-bit float for positive and negative Infinity\n//     as well.)  Also, there are many representations for NaN.  If NaN is an allowed value,\n//     it must always be represented as 0xf97e00.\"\nfunc CanonicalEncOptions() EncOptions {\n\treturn EncOptions{\n\t\tSort:          SortCanonical,\n\t\tShortestFloat: ShortestFloat16,\n\t\tNaNConvert:    NaNConvert7e00,\n\t\tInfConvert:    InfConvertFloat16,\n\t\tIndefLength:   IndefLengthForbidden,\n\t}\n}\n\n// CTAP2EncOptions returns EncOptions for \"CTAP2 Canonical CBOR\" encoding,\n// defined in CTAP specification, with the following rules:\n//\n//  1. \"Integers must be encoded as small as possible.\"\n//  2. \"The representations of any floating-point values are not changed.\"\n//  3. \"The expression of lengths in major types 2 through 5 must be as short as possible.\"\n//  4. \"Indefinite-length items must be made into definite-length items.\"\"\n//  5. The keys in every map must be sorted in bytewise lexicographic order.\n//     See SortBytewiseLexical for details.\n//  6. \"Tags as defined in Section 2.4 in [RFC7049] MUST NOT be present.\"\nfunc CTAP2EncOptions() EncOptions {\n\treturn EncOptions{\n\t\tSort:          SortCTAP2,\n\t\tShortestFloat: ShortestFloatNone,\n\t\tNaNConvert:    NaNConvertNone,\n\t\tInfConvert:    InfConvertNone,\n\t\tIndefLength:   IndefLengthForbidden,\n\t\tTagsMd:        TagsForbidden,\n\t}\n}\n\n// CoreDetEncOptions returns EncOptions for \"Core Deterministic\" encoding,\n// defined in RFC 7049bis with the following rules:\n//\n//  1. \"Preferred serialization MUST be used. In particular, this means that arguments\n//     (see Section 3) for integers, lengths in major types 2 through 5, and tags MUST\n//     be as short as possible\"\n//     \"Floating point values also MUST use the shortest form that preserves the value\"\n//  2. \"Indefinite-length items MUST NOT appear.\"\n//  3. \"The keys in every map MUST be sorted in the bytewise lexicographic order of\n//     their deterministic encodings.\"\nfunc CoreDetEncOptions() EncOptions {\n\treturn EncOptions{\n\t\tSort:          SortCoreDeterministic,\n\t\tShortestFloat: ShortestFloat16,\n\t\tNaNConvert:    NaNConvert7e00,\n\t\tInfConvert:    InfConvertFloat16,\n\t\tIndefLength:   IndefLengthForbidden,\n\t}\n}\n\n// PreferredUnsortedEncOptions returns EncOptions for \"Preferred Serialization\" encoding,\n// defined in RFC 7049bis with the following rules:\n//\n//  1. \"The preferred serialization always uses the shortest form of representing the argument\n//     (Section 3);\"\n//  2. \"it also uses the shortest floating-point encoding that preserves the value being\n//     encoded (see Section 5.5).\"\n//     \"The preferred encoding for a floating-point value is the shortest floating-point encoding\n//     that preserves its value, e.g., 0xf94580 for the number 5.5, and 0xfa45ad9c00 for the\n//     number 5555.5, unless the CBOR-based protocol specifically excludes the use of the shorter\n//     floating-point encodings. For NaN values, a shorter encoding is preferred if zero-padding\n//     the shorter significand towards the right reconstitutes the original NaN value (for many\n//     applications, the single NaN encoding 0xf97e00 will suffice).\"\n//  3. \"Definite length encoding is preferred whenever the length is known at the time the\n//     serialization of the item starts.\"\nfunc PreferredUnsortedEncOptions() EncOptions {\n\treturn EncOptions{\n\t\tSort:          SortNone,\n\t\tShortestFloat: ShortestFloat16,\n\t\tNaNConvert:    NaNConvert7e00,\n\t\tInfConvert:    InfConvertFloat16,\n\t}\n}\n\n// EncMode returns EncMode with immutable options and no tags (safe for concurrency).\nfunc (opts EncOptions) EncMode() (EncMode, error) { //nolint:gocritic // ignore hugeParam\n\treturn opts.encMode()\n}\n\n// UserBufferEncMode returns UserBufferEncMode with immutable options and no tags (safe for concurrency).\nfunc (opts EncOptions) UserBufferEncMode() (UserBufferEncMode, error) { //nolint:gocritic // ignore hugeParam\n\treturn opts.encMode()\n}\n\n// EncModeWithTags returns EncMode with options and tags that are both immutable (safe for concurrency).\nfunc (opts EncOptions) EncModeWithTags(tags TagSet) (EncMode, error) { //nolint:gocritic // ignore hugeParam\n\treturn opts.UserBufferEncModeWithTags(tags)\n}\n\n// UserBufferEncModeWithTags returns UserBufferEncMode with options and tags that are both immutable (safe for concurrency).\nfunc (opts EncOptions) UserBufferEncModeWithTags(tags TagSet) (UserBufferEncMode, error) { //nolint:gocritic // ignore hugeParam\n\tif opts.TagsMd == TagsForbidden {\n\t\treturn nil, errors.New(\"cbor: cannot create EncMode with TagSet when TagsMd is TagsForbidden\")\n\t}\n\tif tags == nil {\n\t\treturn nil, errors.New(\"cbor: cannot create EncMode with nil value as TagSet\")\n\t}\n\tem, err := opts.encMode()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\t// Copy tags\n\tts := tagSet(make(map[reflect.Type]*tagItem))\n\tsyncTags := tags.(*syncTagSet)\n\tsyncTags.RLock()\n\tfor contentType, tag := range syncTags.t {\n\t\tif tag.opts.EncTag != EncTagNone {\n\t\t\tts[contentType] = tag\n\t\t}\n\t}\n\tsyncTags.RUnlock()\n\tif len(ts) > 0 {\n\t\tem.tags = ts\n\t}\n\treturn em, nil\n}\n\n// EncModeWithSharedTags returns EncMode with immutable options and mutable shared tags (safe for concurrency).\nfunc (opts EncOptions) EncModeWithSharedTags(tags TagSet) (EncMode, error) { //nolint:gocritic // ignore hugeParam\n\treturn opts.UserBufferEncModeWithSharedTags(tags)\n}\n\n// UserBufferEncModeWithSharedTags returns UserBufferEncMode with immutable options and mutable shared tags (safe for concurrency).\nfunc (opts EncOptions) UserBufferEncModeWithSharedTags(tags TagSet) (UserBufferEncMode, error) { //nolint:gocritic // ignore hugeParam\n\tif opts.TagsMd == TagsForbidden {\n\t\treturn nil, errors.New(\"cbor: cannot create EncMode with TagSet when TagsMd is TagsForbidden\")\n\t}\n\tif tags == nil {\n\t\treturn nil, errors.New(\"cbor: cannot create EncMode with nil value as TagSet\")\n\t}\n\tem, err := opts.encMode()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tem.tags = tags\n\treturn em, nil\n}\n\nfunc (opts EncOptions) encMode() (*encMode, error) { //nolint:gocritic // ignore hugeParam\n\tif !opts.Sort.valid() {\n\t\treturn nil, errors.New(\"cbor: invalid SortMode \" + strconv.Itoa(int(opts.Sort)))\n\t}\n\tif !opts.ShortestFloat.valid() {\n\t\treturn nil, errors.New(\"cbor: invalid ShortestFloatMode \" + strconv.Itoa(int(opts.ShortestFloat)))\n\t}\n\tif !opts.NaNConvert.valid() {\n\t\treturn nil, errors.New(\"cbor: invalid NaNConvertMode \" + strconv.Itoa(int(opts.NaNConvert)))\n\t}\n\tif !opts.InfConvert.valid() {\n\t\treturn nil, errors.New(\"cbor: invalid InfConvertMode \" + strconv.Itoa(int(opts.InfConvert)))\n\t}\n\tif !opts.BigIntConvert.valid() {\n\t\treturn nil, errors.New(\"cbor: invalid BigIntConvertMode \" + strconv.Itoa(int(opts.BigIntConvert)))\n\t}\n\tif !opts.Time.valid() {\n\t\treturn nil, errors.New(\"cbor: invalid TimeMode \" + strconv.Itoa(int(opts.Time)))\n\t}\n\tif !opts.TimeTag.valid() {\n\t\treturn nil, errors.New(\"cbor: invalid TimeTag \" + strconv.Itoa(int(opts.TimeTag)))\n\t}\n\tif !opts.IndefLength.valid() {\n\t\treturn nil, errors.New(\"cbor: invalid IndefLength \" + strconv.Itoa(int(opts.IndefLength)))\n\t}\n\tif !opts.NilContainers.valid() {\n\t\treturn nil, errors.New(\"cbor: invalid NilContainers \" + strconv.Itoa(int(opts.NilContainers)))\n\t}\n\tif !opts.TagsMd.valid() {\n\t\treturn nil, errors.New(\"cbor: invalid TagsMd \" + strconv.Itoa(int(opts.TagsMd)))\n\t}\n\tif opts.TagsMd == TagsForbidden && opts.TimeTag == EncTagRequired {\n\t\treturn nil, errors.New(\"cbor: cannot set TagsMd to TagsForbidden when TimeTag is EncTagRequired\")\n\t}\n\tif !opts.OmitEmpty.valid() {\n\t\treturn nil, errors.New(\"cbor: invalid OmitEmpty \" + strconv.Itoa(int(opts.OmitEmpty)))\n\t}\n\tstringMajorType, err := opts.String.cborType()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif !opts.FieldName.valid() {\n\t\treturn nil, errors.New(\"cbor: invalid FieldName \" + strconv.Itoa(int(opts.FieldName)))\n\t}\n\tbyteSliceLaterEncodingTag, err := opts.ByteSliceLaterFormat.encodingTag()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif !opts.ByteArray.valid() {\n\t\treturn nil, errors.New(\"cbor: invalid ByteArray \" + strconv.Itoa(int(opts.ByteArray)))\n\t}\n\tif !opts.BinaryMarshaler.valid() {\n\t\treturn nil, errors.New(\"cbor: invalid BinaryMarshaler \" + strconv.Itoa(int(opts.BinaryMarshaler)))\n\t}\n\tem := encMode{\n\t\tsort:                      opts.Sort,\n\t\tshortestFloat:             opts.ShortestFloat,\n\t\tnanConvert:                opts.NaNConvert,\n\t\tinfConvert:                opts.InfConvert,\n\t\tbigIntConvert:             opts.BigIntConvert,\n\t\ttime:                      opts.Time,\n\t\ttimeTag:                   opts.TimeTag,\n\t\tindefLength:               opts.IndefLength,\n\t\tnilContainers:             opts.NilContainers,\n\t\ttagsMd:                    opts.TagsMd,\n\t\tomitEmpty:                 opts.OmitEmpty,\n\t\tstringType:                opts.String,\n\t\tstringMajorType:           stringMajorType,\n\t\tfieldName:                 opts.FieldName,\n\t\tbyteSliceLaterFormat:      opts.ByteSliceLaterFormat,\n\t\tbyteSliceLaterEncodingTag: byteSliceLaterEncodingTag,\n\t\tbyteArray:                 opts.ByteArray,\n\t\tbinaryMarshaler:           opts.BinaryMarshaler,\n\t}\n\treturn &em, nil\n}\n\n// EncMode is the main interface for CBOR encoding.\ntype EncMode interface {\n\tMarshal(v interface{}) ([]byte, error)\n\tNewEncoder(w io.Writer) *Encoder\n\tEncOptions() EncOptions\n}\n\n// UserBufferEncMode is an interface for CBOR encoding, which extends EncMode by\n// adding MarshalToBuffer to support user specified buffer rather than encoding\n// into the built-in buffer pool.\ntype UserBufferEncMode interface {\n\tEncMode\n\tMarshalToBuffer(v interface{}, buf *bytes.Buffer) error\n\n\t// This private method is to prevent users implementing\n\t// this interface and so future additions to it will\n\t// not be breaking changes.\n\t// See https://go.dev/blog/module-compatibility\n\tunexport()\n}\n\ntype encMode struct {\n\ttags                      tagProvider\n\tsort                      SortMode\n\tshortestFloat             ShortestFloatMode\n\tnanConvert                NaNConvertMode\n\tinfConvert                InfConvertMode\n\tbigIntConvert             BigIntConvertMode\n\ttime                      TimeMode\n\ttimeTag                   EncTagMode\n\tindefLength               IndefLengthMode\n\tnilContainers             NilContainersMode\n\ttagsMd                    TagsMode\n\tomitEmpty                 OmitEmptyMode\n\tstringType                StringMode\n\tstringMajorType           cborType\n\tfieldName                 FieldNameMode\n\tbyteSliceLaterFormat      ByteSliceLaterFormatMode\n\tbyteSliceLaterEncodingTag uint64\n\tbyteArray                 ByteArrayMode\n\tbinaryMarshaler           BinaryMarshalerMode\n}\n\nvar defaultEncMode, _ = EncOptions{}.encMode()\n\n// These four decoding modes are used by getMarshalerDecMode.\n// maxNestedLevels, maxArrayElements, and maxMapPairs are\n// set to max allowed limits to avoid rejecting Marshaler\n// output that would have been the allowable output of a\n// non-Marshaler object that exceeds default limits.\nvar (\n\tmarshalerForbidIndefLengthForbidTagsDecMode = decMode{\n\t\tmaxNestedLevels:  maxMaxNestedLevels,\n\t\tmaxArrayElements: maxMaxArrayElements,\n\t\tmaxMapPairs:      maxMaxMapPairs,\n\t\tindefLength:      IndefLengthForbidden,\n\t\ttagsMd:           TagsForbidden,\n\t}\n\n\tmarshalerAllowIndefLengthForbidTagsDecMode = decMode{\n\t\tmaxNestedLevels:  maxMaxNestedLevels,\n\t\tmaxArrayElements: maxMaxArrayElements,\n\t\tmaxMapPairs:      maxMaxMapPairs,\n\t\tindefLength:      IndefLengthAllowed,\n\t\ttagsMd:           TagsForbidden,\n\t}\n\n\tmarshalerForbidIndefLengthAllowTagsDecMode = decMode{\n\t\tmaxNestedLevels:  maxMaxNestedLevels,\n\t\tmaxArrayElements: maxMaxArrayElements,\n\t\tmaxMapPairs:      maxMaxMapPairs,\n\t\tindefLength:      IndefLengthForbidden,\n\t\ttagsMd:           TagsAllowed,\n\t}\n\n\tmarshalerAllowIndefLengthAllowTagsDecMode = decMode{\n\t\tmaxNestedLevels:  maxMaxNestedLevels,\n\t\tmaxArrayElements: maxMaxArrayElements,\n\t\tmaxMapPairs:      maxMaxMapPairs,\n\t\tindefLength:      IndefLengthAllowed,\n\t\ttagsMd:           TagsAllowed,\n\t}\n)\n\n// getMarshalerDecMode returns one of four existing decoding modes\n// which can be reused (safe for parallel use) for the purpose of\n// checking if data returned by Marshaler is well-formed.\nfunc getMarshalerDecMode(indefLength IndefLengthMode, tagsMd TagsMode) *decMode {\n\tswitch {\n\tcase indefLength == IndefLengthAllowed && tagsMd == TagsAllowed:\n\t\treturn &marshalerAllowIndefLengthAllowTagsDecMode\n\n\tcase indefLength == IndefLengthAllowed && tagsMd == TagsForbidden:\n\t\treturn &marshalerAllowIndefLengthForbidTagsDecMode\n\n\tcase indefLength == IndefLengthForbidden && tagsMd == TagsAllowed:\n\t\treturn &marshalerForbidIndefLengthAllowTagsDecMode\n\n\tcase indefLength == IndefLengthForbidden && tagsMd == TagsForbidden:\n\t\treturn &marshalerForbidIndefLengthForbidTagsDecMode\n\n\tdefault:\n\t\t// This should never happen, unless we add new options to\n\t\t// IndefLengthMode or TagsMode without updating this function.\n\t\treturn &decMode{\n\t\t\tmaxNestedLevels:  maxMaxNestedLevels,\n\t\t\tmaxArrayElements: maxMaxArrayElements,\n\t\t\tmaxMapPairs:      maxMaxMapPairs,\n\t\t\tindefLength:      indefLength,\n\t\t\ttagsMd:           tagsMd,\n\t\t}\n\t}\n}\n\n// EncOptions returns user specified options used to create this EncMode.\nfunc (em *encMode) EncOptions() EncOptions {\n\treturn EncOptions{\n\t\tSort:                 em.sort,\n\t\tShortestFloat:        em.shortestFloat,\n\t\tNaNConvert:           em.nanConvert,\n\t\tInfConvert:           em.infConvert,\n\t\tBigIntConvert:        em.bigIntConvert,\n\t\tTime:                 em.time,\n\t\tTimeTag:              em.timeTag,\n\t\tIndefLength:          em.indefLength,\n\t\tNilContainers:        em.nilContainers,\n\t\tTagsMd:               em.tagsMd,\n\t\tOmitEmpty:            em.omitEmpty,\n\t\tString:               em.stringType,\n\t\tFieldName:            em.fieldName,\n\t\tByteSliceLaterFormat: em.byteSliceLaterFormat,\n\t\tByteArray:            em.byteArray,\n\t\tBinaryMarshaler:      em.binaryMarshaler,\n\t}\n}\n\nfunc (em *encMode) unexport() {}\n\nfunc (em *encMode) encTagBytes(t reflect.Type) []byte {\n\tif em.tags != nil {\n\t\tif tagItem := em.tags.getTagItemFromType(t); tagItem != nil {\n\t\t\treturn tagItem.cborTagNum\n\t\t}\n\t}\n\treturn nil\n}\n\n// Marshal returns the CBOR encoding of v using em encoding mode.\n//\n// See the documentation for Marshal for details.\nfunc (em *encMode) Marshal(v interface{}) ([]byte, error) {\n\te := getEncodeBuffer()\n\n\tif err := encode(e, em, reflect.ValueOf(v)); err != nil {\n\t\tputEncodeBuffer(e)\n\t\treturn nil, err\n\t}\n\n\tbuf := make([]byte, e.Len())\n\tcopy(buf, e.Bytes())\n\n\tputEncodeBuffer(e)\n\treturn buf, nil\n}\n\n// MarshalToBuffer encodes v into provided buffer (instead of using built-in buffer pool)\n// and uses em encoding mode.\n//\n// NOTE: Unlike Marshal, the buffer provided to MarshalToBuffer can contain\n// partially encoded data if error is returned.\n//\n// See Marshal for more details.\nfunc (em *encMode) MarshalToBuffer(v interface{}, buf *bytes.Buffer) error {\n\tif buf == nil {\n\t\treturn fmt.Errorf(\"cbor: encoding buffer provided by user is nil\")\n\t}\n\treturn encode(buf, em, reflect.ValueOf(v))\n}\n\n// NewEncoder returns a new encoder that writes to w using em EncMode.\nfunc (em *encMode) NewEncoder(w io.Writer) *Encoder {\n\treturn &Encoder{w: w, em: em}\n}\n\n// encodeBufferPool caches unused bytes.Buffer objects for later reuse.\nvar encodeBufferPool = sync.Pool{\n\tNew: func() interface{} {\n\t\te := new(bytes.Buffer)\n\t\te.Grow(32) // TODO: make this configurable\n\t\treturn e\n\t},\n}\n\nfunc getEncodeBuffer() *bytes.Buffer {\n\treturn encodeBufferPool.Get().(*bytes.Buffer)\n}\n\nfunc putEncodeBuffer(e *bytes.Buffer) {\n\te.Reset()\n\tencodeBufferPool.Put(e)\n}\n\ntype encodeFunc func(e *bytes.Buffer, em *encMode, v reflect.Value) error\ntype isEmptyFunc func(em *encMode, v reflect.Value) (empty bool, err error)\n\nfunc encode(e *bytes.Buffer, em *encMode, v reflect.Value) error {\n\tif !v.IsValid() {\n\t\t// v is zero value\n\t\te.Write(cborNil)\n\t\treturn nil\n\t}\n\tvt := v.Type()\n\tf, _ := getEncodeFunc(vt)\n\tif f == nil {\n\t\treturn &UnsupportedTypeError{vt}\n\t}\n\n\treturn f(e, em, v)\n}\n\nfunc encodeBool(e *bytes.Buffer, em *encMode, v reflect.Value) error {\n\tif b := em.encTagBytes(v.Type()); b != nil {\n\t\te.Write(b)\n\t}\n\tb := cborFalse\n\tif v.Bool() {\n\t\tb = cborTrue\n\t}\n\te.Write(b)\n\treturn nil\n}\n\nfunc encodeInt(e *bytes.Buffer, em *encMode, v reflect.Value) error {\n\tif b := em.encTagBytes(v.Type()); b != nil {\n\t\te.Write(b)\n\t}\n\ti := v.Int()\n\tif i >= 0 {\n\t\tencodeHead(e, byte(cborTypePositiveInt), uint64(i))\n\t\treturn nil\n\t}\n\ti = i*(-1) - 1\n\tencodeHead(e, byte(cborTypeNegativeInt), uint64(i))\n\treturn nil\n}\n\nfunc encodeUint(e *bytes.Buffer, em *encMode, v reflect.Value) error {\n\tif b := em.encTagBytes(v.Type()); b != nil {\n\t\te.Write(b)\n\t}\n\tencodeHead(e, byte(cborTypePositiveInt), v.Uint())\n\treturn nil\n}\n\nfunc encodeFloat(e *bytes.Buffer, em *encMode, v reflect.Value) error {\n\tif b := em.encTagBytes(v.Type()); b != nil {\n\t\te.Write(b)\n\t}\n\tf64 := v.Float()\n\tif math.IsNaN(f64) {\n\t\treturn encodeNaN(e, em, v)\n\t}\n\tif math.IsInf(f64, 0) {\n\t\treturn encodeInf(e, em, v)\n\t}\n\tfopt := em.shortestFloat\n\tif v.Kind() == reflect.Float64 && (fopt == ShortestFloatNone || cannotFitFloat32(f64)) {\n\t\t// Encode float64\n\t\t// Don't use encodeFloat64() because it cannot be inlined.\n\t\tconst argumentSize = 8\n\t\tconst headSize = 1 + argumentSize\n\t\tvar scratch [headSize]byte\n\t\tscratch[0] = byte(cborTypePrimitives) | byte(additionalInformationAsFloat64)\n\t\tbinary.BigEndian.PutUint64(scratch[1:], math.Float64bits(f64))\n\t\te.Write(scratch[:])\n\t\treturn nil\n\t}\n\n\tf32 := float32(f64)\n\tif fopt == ShortestFloat16 {\n\t\tvar f16 float16.Float16\n\t\tp := float16.PrecisionFromfloat32(f32)\n\t\tif p == float16.PrecisionExact {\n\t\t\t// Roundtrip float32->float16->float32 test isn't needed.\n\t\t\tf16 = float16.Fromfloat32(f32)\n\t\t} else if p == float16.PrecisionUnknown {\n\t\t\t// Try roundtrip float32->float16->float32 to determine if float32 can fit into float16.\n\t\t\tf16 = float16.Fromfloat32(f32)\n\t\t\tif f16.Float32() == f32 {\n\t\t\t\tp = float16.PrecisionExact\n\t\t\t}\n\t\t}\n\t\tif p == float16.PrecisionExact {\n\t\t\t// Encode float16\n\t\t\t// Don't use encodeFloat16() because it cannot be inlined.\n\t\t\tconst argumentSize = 2\n\t\t\tconst headSize = 1 + argumentSize\n\t\t\tvar scratch [headSize]byte\n\t\t\tscratch[0] = byte(cborTypePrimitives) | additionalInformationAsFloat16\n\t\t\tbinary.BigEndian.PutUint16(scratch[1:], uint16(f16))\n\t\t\te.Write(scratch[:])\n\t\t\treturn nil\n\t\t}\n\t}\n\n\t// Encode float32\n\t// Don't use encodeFloat32() because it cannot be inlined.\n\tconst argumentSize = 4\n\tconst headSize = 1 + argumentSize\n\tvar scratch [headSize]byte\n\tscratch[0] = byte(cborTypePrimitives) | additionalInformationAsFloat32\n\tbinary.BigEndian.PutUint32(scratch[1:], math.Float32bits(f32))\n\te.Write(scratch[:])\n\treturn nil\n}\n\nfunc encodeInf(e *bytes.Buffer, em *encMode, v reflect.Value) error {\n\tf64 := v.Float()\n\tswitch em.infConvert {\n\tcase InfConvertReject:\n\t\treturn &UnsupportedValueError{msg: \"floating-point infinity\"}\n\n\tcase InfConvertFloat16:\n\t\tif f64 > 0 {\n\t\t\te.Write(cborPositiveInfinity)\n\t\t} else {\n\t\t\te.Write(cborNegativeInfinity)\n\t\t}\n\t\treturn nil\n\t}\n\tif v.Kind() == reflect.Float64 {\n\t\treturn encodeFloat64(e, f64)\n\t}\n\treturn encodeFloat32(e, float32(f64))\n}\n\nfunc encodeNaN(e *bytes.Buffer, em *encMode, v reflect.Value) error {\n\tswitch em.nanConvert {\n\tcase NaNConvert7e00:\n\t\te.Write(cborNaN)\n\t\treturn nil\n\n\tcase NaNConvertNone:\n\t\tif v.Kind() == reflect.Float64 {\n\t\t\treturn encodeFloat64(e, v.Float())\n\t\t}\n\t\tf32 := float32NaNFromReflectValue(v)\n\t\treturn encodeFloat32(e, f32)\n\n\tcase NaNConvertReject:\n\t\treturn &UnsupportedValueError{msg: \"floating-point NaN\"}\n\n\tdefault: // NaNConvertPreserveSignal, NaNConvertQuiet\n\t\tif v.Kind() == reflect.Float64 {\n\t\t\tf64 := v.Float()\n\t\t\tf64bits := math.Float64bits(f64)\n\t\t\tif em.nanConvert == NaNConvertQuiet && f64bits&(1<<51) == 0 {\n\t\t\t\tf64bits |= 1 << 51 // Set quiet bit = 1\n\t\t\t\tf64 = math.Float64frombits(f64bits)\n\t\t\t}\n\t\t\t// The lower 29 bits are dropped when converting from float64 to float32.\n\t\t\tif f64bits&0x1fffffff != 0 {\n\t\t\t\t// Encode NaN as float64 because dropped coef bits from float64 to float32 are not all 0s.\n\t\t\t\treturn encodeFloat64(e, f64)\n\t\t\t}\n\t\t\t// Create float32 from float64 manually because float32(f64) always turns on NaN's quiet bits.\n\t\t\tsign := uint32(f64bits>>32) & (1 << 31)\n\t\t\texp := uint32(0x7f800000)\n\t\t\tcoef := uint32((f64bits & 0xfffffffffffff) >> 29)\n\t\t\tf32bits := sign | exp | coef\n\t\t\tf32 := math.Float32frombits(f32bits)\n\t\t\t// The lower 13 bits are dropped when converting from float32 to float16.\n\t\t\tif f32bits&0x1fff != 0 {\n\t\t\t\t// Encode NaN as float32 because dropped coef bits from float32 to float16 are not all 0s.\n\t\t\t\treturn encodeFloat32(e, f32)\n\t\t\t}\n\t\t\t// Encode NaN as float16\n\t\t\tf16, _ := float16.FromNaN32ps(f32) // Ignore err because it only returns error when f32 is not a NaN.\n\t\t\treturn encodeFloat16(e, f16)\n\t\t}\n\n\t\tf32 := float32NaNFromReflectValue(v)\n\t\tf32bits := math.Float32bits(f32)\n\t\tif em.nanConvert == NaNConvertQuiet && f32bits&(1<<22) == 0 {\n\t\t\tf32bits |= 1 << 22 // Set quiet bit = 1\n\t\t\tf32 = math.Float32frombits(f32bits)\n\t\t}\n\t\t// The lower 13 bits are dropped coef bits when converting from float32 to float16.\n\t\tif f32bits&0x1fff != 0 {\n\t\t\t// Encode NaN as float32 because dropped coef bits from float32 to float16 are not all 0s.\n\t\t\treturn encodeFloat32(e, f32)\n\t\t}\n\t\tf16, _ := float16.FromNaN32ps(f32) // Ignore err because it only returns error when f32 is not a NaN.\n\t\treturn encodeFloat16(e, f16)\n\t}\n}\n\nfunc encodeFloat16(e *bytes.Buffer, f16 float16.Float16) error {\n\tconst argumentSize = 2\n\tconst headSize = 1 + argumentSize\n\tvar scratch [headSize]byte\n\tscratch[0] = byte(cborTypePrimitives) | additionalInformationAsFloat16\n\tbinary.BigEndian.PutUint16(scratch[1:], uint16(f16))\n\te.Write(scratch[:])\n\treturn nil\n}\n\nfunc encodeFloat32(e *bytes.Buffer, f32 float32) error {\n\tconst argumentSize = 4\n\tconst headSize = 1 + argumentSize\n\tvar scratch [headSize]byte\n\tscratch[0] = byte(cborTypePrimitives) | additionalInformationAsFloat32\n\tbinary.BigEndian.PutUint32(scratch[1:], math.Float32bits(f32))\n\te.Write(scratch[:])\n\treturn nil\n}\n\nfunc encodeFloat64(e *bytes.Buffer, f64 float64) error {\n\tconst argumentSize = 8\n\tconst headSize = 1 + argumentSize\n\tvar scratch [headSize]byte\n\tscratch[0] = byte(cborTypePrimitives) | additionalInformationAsFloat64\n\tbinary.BigEndian.PutUint64(scratch[1:], math.Float64bits(f64))\n\te.Write(scratch[:])\n\treturn nil\n}\n\nfunc encodeByteString(e *bytes.Buffer, em *encMode, v reflect.Value) error {\n\tvk := v.Kind()\n\tif vk == reflect.Slice && v.IsNil() && em.nilContainers == NilContainerAsNull {\n\t\te.Write(cborNil)\n\t\treturn nil\n\t}\n\tif vk == reflect.Slice && v.Type().Elem().Kind() == reflect.Uint8 && em.byteSliceLaterEncodingTag != 0 {\n\t\tencodeHead(e, byte(cborTypeTag), em.byteSliceLaterEncodingTag)\n\t}\n\tif b := em.encTagBytes(v.Type()); b != nil {\n\t\te.Write(b)\n\t}\n\tslen := v.Len()\n\tif slen == 0 {\n\t\treturn e.WriteByte(byte(cborTypeByteString))\n\t}\n\tencodeHead(e, byte(cborTypeByteString), uint64(slen))\n\tif vk == reflect.Array {\n\t\tfor i := 0; i < slen; i++ {\n\t\t\te.WriteByte(byte(v.Index(i).Uint()))\n\t\t}\n\t\treturn nil\n\t}\n\te.Write(v.Bytes())\n\treturn nil\n}\n\nfunc encodeString(e *bytes.Buffer, em *encMode, v reflect.Value) error {\n\tif b := em.encTagBytes(v.Type()); b != nil {\n\t\te.Write(b)\n\t}\n\ts := v.String()\n\tencodeHead(e, byte(em.stringMajorType), uint64(len(s)))\n\te.WriteString(s)\n\treturn nil\n}\n\ntype arrayEncodeFunc struct {\n\tf encodeFunc\n}\n\nfunc (ae arrayEncodeFunc) encode(e *bytes.Buffer, em *encMode, v reflect.Value) error {\n\tif em.byteArray == ByteArrayToByteSlice && v.Type().Elem().Kind() == reflect.Uint8 {\n\t\treturn encodeByteString(e, em, v)\n\t}\n\tif v.Kind() == reflect.Slice && v.IsNil() && em.nilContainers == NilContainerAsNull {\n\t\te.Write(cborNil)\n\t\treturn nil\n\t}\n\tif b := em.encTagBytes(v.Type()); b != nil {\n\t\te.Write(b)\n\t}\n\talen := v.Len()\n\tif alen == 0 {\n\t\treturn e.WriteByte(byte(cborTypeArray))\n\t}\n\tencodeHead(e, byte(cborTypeArray), uint64(alen))\n\tfor i := 0; i < alen; i++ {\n\t\tif err := ae.f(e, em, v.Index(i)); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// encodeKeyValueFunc encodes key/value pairs in map (v).\n// If kvs is provided (having the same length as v), length of encoded key and value are stored in kvs.\n// kvs is used for canonical encoding of map.\ntype encodeKeyValueFunc func(e *bytes.Buffer, em *encMode, v reflect.Value, kvs []keyValue) error\n\ntype mapEncodeFunc struct {\n\te encodeKeyValueFunc\n}\n\nfunc (me mapEncodeFunc) encode(e *bytes.Buffer, em *encMode, v reflect.Value) error {\n\tif v.IsNil() && em.nilContainers == NilContainerAsNull {\n\t\te.Write(cborNil)\n\t\treturn nil\n\t}\n\tif b := em.encTagBytes(v.Type()); b != nil {\n\t\te.Write(b)\n\t}\n\tmlen := v.Len()\n\tif mlen == 0 {\n\t\treturn e.WriteByte(byte(cborTypeMap))\n\t}\n\n\tencodeHead(e, byte(cborTypeMap), uint64(mlen))\n\tif em.sort == SortNone || em.sort == SortFastShuffle || mlen <= 1 {\n\t\treturn me.e(e, em, v, nil)\n\t}\n\n\tkvsp := getKeyValues(v.Len()) // for sorting keys\n\tdefer putKeyValues(kvsp)\n\tkvs := *kvsp\n\n\tkvBeginOffset := e.Len()\n\tif err := me.e(e, em, v, kvs); err != nil {\n\t\treturn err\n\t}\n\tkvTotalLen := e.Len() - kvBeginOffset\n\n\t// Use the capacity at the tail of the encode buffer as a staging area to rearrange the\n\t// encoded pairs into sorted order.\n\te.Grow(kvTotalLen)\n\ttmp := e.Bytes()[e.Len() : e.Len()+kvTotalLen] // Can use e.AvailableBuffer() in Go 1.21+.\n\tdst := e.Bytes()[kvBeginOffset:]\n\n\tif em.sort == SortBytewiseLexical {\n\t\tsort.Sort(&bytewiseKeyValueSorter{kvs: kvs, data: dst})\n\t} else {\n\t\tsort.Sort(&lengthFirstKeyValueSorter{kvs: kvs, data: dst})\n\t}\n\n\t// This is where the encoded bytes are actually rearranged in the output buffer to reflect\n\t// the desired order.\n\tsortedOffset := 0\n\tfor _, kv := range kvs {\n\t\tcopy(tmp[sortedOffset:], dst[kv.offset:kv.nextOffset])\n\t\tsortedOffset += kv.nextOffset - kv.offset\n\t}\n\tcopy(dst, tmp[:kvTotalLen])\n\n\treturn nil\n\n}\n\n// keyValue is the position of an encoded pair in a buffer. All offsets are zero-based and relative\n// to the first byte of the first encoded pair.\ntype keyValue struct {\n\toffset      int\n\tvalueOffset int\n\tnextOffset  int\n}\n\ntype bytewiseKeyValueSorter struct {\n\tkvs  []keyValue\n\tdata []byte\n}\n\nfunc (x *bytewiseKeyValueSorter) Len() int {\n\treturn len(x.kvs)\n}\n\nfunc (x *bytewiseKeyValueSorter) Swap(i, j int) {\n\tx.kvs[i], x.kvs[j] = x.kvs[j], x.kvs[i]\n}\n\nfunc (x *bytewiseKeyValueSorter) Less(i, j int) bool {\n\tkvi, kvj := x.kvs[i], x.kvs[j]\n\treturn bytes.Compare(x.data[kvi.offset:kvi.valueOffset], x.data[kvj.offset:kvj.valueOffset]) <= 0\n}\n\ntype lengthFirstKeyValueSorter struct {\n\tkvs  []keyValue\n\tdata []byte\n}\n\nfunc (x *lengthFirstKeyValueSorter) Len() int {\n\treturn len(x.kvs)\n}\n\nfunc (x *lengthFirstKeyValueSorter) Swap(i, j int) {\n\tx.kvs[i], x.kvs[j] = x.kvs[j], x.kvs[i]\n}\n\nfunc (x *lengthFirstKeyValueSorter) Less(i, j int) bool {\n\tkvi, kvj := x.kvs[i], x.kvs[j]\n\tif keyLengthDifference := (kvi.valueOffset - kvi.offset) - (kvj.valueOffset - kvj.offset); keyLengthDifference != 0 {\n\t\treturn keyLengthDifference < 0\n\t}\n\treturn bytes.Compare(x.data[kvi.offset:kvi.valueOffset], x.data[kvj.offset:kvj.valueOffset]) <= 0\n}\n\nvar keyValuePool = sync.Pool{}\n\nfunc getKeyValues(length int) *[]keyValue {\n\tv := keyValuePool.Get()\n\tif v == nil {\n\t\ty := make([]keyValue, length)\n\t\treturn &y\n\t}\n\tx := v.(*[]keyValue)\n\tif cap(*x) >= length {\n\t\t*x = (*x)[:length]\n\t\treturn x\n\t}\n\t// []keyValue from the pool does not have enough capacity.\n\t// Return it back to the pool and create a new one.\n\tkeyValuePool.Put(x)\n\ty := make([]keyValue, length)\n\treturn &y\n}\n\nfunc putKeyValues(x *[]keyValue) {\n\t*x = (*x)[:0]\n\tkeyValuePool.Put(x)\n}\n\nfunc encodeStructToArray(e *bytes.Buffer, em *encMode, v reflect.Value) (err error) {\n\tstructType, err := getEncodingStructType(v.Type())\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif b := em.encTagBytes(v.Type()); b != nil {\n\t\te.Write(b)\n\t}\n\n\tflds := structType.fields\n\n\tencodeHead(e, byte(cborTypeArray), uint64(len(flds)))\n\tfor i := 0; i < len(flds); i++ {\n\t\tf := flds[i]\n\n\t\tvar fv reflect.Value\n\t\tif len(f.idx) == 1 {\n\t\t\tfv = v.Field(f.idx[0])\n\t\t} else {\n\t\t\t// Get embedded field value.  No error is expected.\n\t\t\tfv, _ = getFieldValue(v, f.idx, func(reflect.Value) (reflect.Value, error) {\n\t\t\t\t// Write CBOR nil for null pointer to embedded struct\n\t\t\t\te.Write(cborNil)\n\t\t\t\treturn reflect.Value{}, nil\n\t\t\t})\n\t\t\tif !fv.IsValid() {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\tif err := f.ef(e, em, fv); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc encodeStruct(e *bytes.Buffer, em *encMode, v reflect.Value) (err error) {\n\tstructType, err := getEncodingStructType(v.Type())\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tflds := structType.getFields(em)\n\n\tstart := 0\n\tif em.sort == SortFastShuffle && len(flds) > 0 {\n\t\tstart = rand.Intn(len(flds)) //nolint:gosec // Don't need a CSPRNG for deck cutting.\n\t}\n\n\tif b := em.encTagBytes(v.Type()); b != nil {\n\t\te.Write(b)\n\t}\n\n\t// Encode head with struct field count.\n\t// Head is rewritten later if actual encoded field count is different from struct field count.\n\tencodedHeadLen := encodeHead(e, byte(cborTypeMap), uint64(len(flds)))\n\n\tkvbegin := e.Len()\n\tkvcount := 0\n\tfor offset := 0; offset < len(flds); offset++ {\n\t\tf := flds[(start+offset)%len(flds)]\n\n\t\tvar fv reflect.Value\n\t\tif len(f.idx) == 1 {\n\t\t\tfv = v.Field(f.idx[0])\n\t\t} else {\n\t\t\t// Get embedded field value.  No error is expected.\n\t\t\tfv, _ = getFieldValue(v, f.idx, func(reflect.Value) (reflect.Value, error) {\n\t\t\t\t// Skip null pointer to embedded struct\n\t\t\t\treturn reflect.Value{}, nil\n\t\t\t})\n\t\t\tif !fv.IsValid() {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\t\tif f.omitEmpty {\n\t\t\tempty, err := f.ief(em, fv)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif empty {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\tif !f.keyAsInt && em.fieldName == FieldNameToByteString {\n\t\t\te.Write(f.cborNameByteString)\n\t\t} else { // int or text string\n\t\t\te.Write(f.cborName)\n\t\t}\n\n\t\tif err := f.ef(e, em, fv); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tkvcount++\n\t}\n\n\tif len(flds) == kvcount {\n\t\t// Encoded element count in head is the same as actual element count.\n\t\treturn nil\n\t}\n\n\t// Overwrite the bytes that were reserved for the head before encoding the map entries.\n\tvar actualHeadLen int\n\t{\n\t\theadbuf := *bytes.NewBuffer(e.Bytes()[kvbegin-encodedHeadLen : kvbegin-encodedHeadLen : kvbegin])\n\t\tactualHeadLen = encodeHead(&headbuf, byte(cborTypeMap), uint64(kvcount))\n\t}\n\n\tif actualHeadLen == encodedHeadLen {\n\t\t// The bytes reserved for the encoded head were exactly the right size, so the\n\t\t// encoded entries are already in their final positions.\n\t\treturn nil\n\t}\n\n\t// We reserved more bytes than needed for the encoded head, based on the number of fields\n\t// encoded. The encoded entries are offset to the right by the number of excess reserved\n\t// bytes. Shift the entries left to remove the gap.\n\texcessReservedBytes := encodedHeadLen - actualHeadLen\n\tdst := e.Bytes()[kvbegin-excessReservedBytes : e.Len()-excessReservedBytes]\n\tsrc := e.Bytes()[kvbegin:e.Len()]\n\tcopy(dst, src)\n\n\t// After shifting, the excess bytes are at the end of the output buffer and they are\n\t// garbage.\n\te.Truncate(e.Len() - excessReservedBytes)\n\treturn nil\n}\n\nfunc encodeIntf(e *bytes.Buffer, em *encMode, v reflect.Value) error {\n\tif v.IsNil() {\n\t\te.Write(cborNil)\n\t\treturn nil\n\t}\n\treturn encode(e, em, v.Elem())\n}\n\nfunc encodeTime(e *bytes.Buffer, em *encMode, v reflect.Value) error {\n\tt := v.Interface().(time.Time)\n\tif t.IsZero() {\n\t\te.Write(cborNil) // Even if tag is required, encode as CBOR null.\n\t\treturn nil\n\t}\n\tif em.timeTag == EncTagRequired {\n\t\ttagNumber := 1\n\t\tif em.time == TimeRFC3339 || em.time == TimeRFC3339Nano {\n\t\t\ttagNumber = 0\n\t\t}\n\t\tencodeHead(e, byte(cborTypeTag), uint64(tagNumber))\n\t}\n\tswitch em.time {\n\tcase TimeUnix:\n\t\tsecs := t.Unix()\n\t\treturn encodeInt(e, em, reflect.ValueOf(secs))\n\n\tcase TimeUnixMicro:\n\t\tt = t.UTC().Round(time.Microsecond)\n\t\tf := float64(t.UnixNano()) / 1e9\n\t\treturn encodeFloat(e, em, reflect.ValueOf(f))\n\n\tcase TimeUnixDynamic:\n\t\tt = t.UTC().Round(time.Microsecond)\n\t\tsecs, nsecs := t.Unix(), uint64(t.Nanosecond())\n\t\tif nsecs == 0 {\n\t\t\treturn encodeInt(e, em, reflect.ValueOf(secs))\n\t\t}\n\t\tf := float64(secs) + float64(nsecs)/1e9\n\t\treturn encodeFloat(e, em, reflect.ValueOf(f))\n\n\tcase TimeRFC3339:\n\t\ts := t.Format(time.RFC3339)\n\t\treturn encodeString(e, em, reflect.ValueOf(s))\n\n\tdefault: // TimeRFC3339Nano\n\t\ts := t.Format(time.RFC3339Nano)\n\t\treturn encodeString(e, em, reflect.ValueOf(s))\n\t}\n}\n\nfunc encodeBigInt(e *bytes.Buffer, em *encMode, v reflect.Value) error {\n\tif em.bigIntConvert == BigIntConvertReject {\n\t\treturn &UnsupportedTypeError{Type: typeBigInt}\n\t}\n\n\tvbi := v.Interface().(big.Int)\n\tsign := vbi.Sign()\n\tbi := new(big.Int).SetBytes(vbi.Bytes()) // bi is absolute value of v\n\tif sign < 0 {\n\t\t// For negative number, convert to CBOR encoded number (-v-1).\n\t\tbi.Sub(bi, big.NewInt(1))\n\t}\n\n\tif em.bigIntConvert == BigIntConvertShortest {\n\t\tif bi.IsUint64() {\n\t\t\tif sign >= 0 {\n\t\t\t\t// Encode as CBOR pos int (major type 0)\n\t\t\t\tencodeHead(e, byte(cborTypePositiveInt), bi.Uint64())\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\t// Encode as CBOR neg int (major type 1)\n\t\t\tencodeHead(e, byte(cborTypeNegativeInt), bi.Uint64())\n\t\t\treturn nil\n\t\t}\n\t}\n\n\ttagNum := 2\n\tif sign < 0 {\n\t\ttagNum = 3\n\t}\n\t// Write tag number\n\tencodeHead(e, byte(cborTypeTag), uint64(tagNum))\n\t// Write bignum byte string\n\tb := bi.Bytes()\n\tencodeHead(e, byte(cborTypeByteString), uint64(len(b)))\n\te.Write(b)\n\treturn nil\n}\n\ntype binaryMarshalerEncoder struct {\n\talternateEncode  encodeFunc\n\talternateIsEmpty isEmptyFunc\n}\n\nfunc (bme binaryMarshalerEncoder) encode(e *bytes.Buffer, em *encMode, v reflect.Value) error {\n\tif em.binaryMarshaler != BinaryMarshalerByteString {\n\t\treturn bme.alternateEncode(e, em, v)\n\t}\n\n\tvt := v.Type()\n\tm, ok := v.Interface().(encoding.BinaryMarshaler)\n\tif !ok {\n\t\tpv := reflect.New(vt)\n\t\tpv.Elem().Set(v)\n\t\tm = pv.Interface().(encoding.BinaryMarshaler)\n\t}\n\tdata, err := m.MarshalBinary()\n\tif err != nil {\n\t\treturn err\n\t}\n\tif b := em.encTagBytes(vt); b != nil {\n\t\te.Write(b)\n\t}\n\tencodeHead(e, byte(cborTypeByteString), uint64(len(data)))\n\te.Write(data)\n\treturn nil\n}\n\nfunc (bme binaryMarshalerEncoder) isEmpty(em *encMode, v reflect.Value) (bool, error) {\n\tif em.binaryMarshaler != BinaryMarshalerByteString {\n\t\treturn bme.alternateIsEmpty(em, v)\n\t}\n\n\tm, ok := v.Interface().(encoding.BinaryMarshaler)\n\tif !ok {\n\t\tpv := reflect.New(v.Type())\n\t\tpv.Elem().Set(v)\n\t\tm = pv.Interface().(encoding.BinaryMarshaler)\n\t}\n\tdata, err := m.MarshalBinary()\n\tif err != nil {\n\t\treturn false, err\n\t}\n\treturn len(data) == 0, nil\n}\n\nfunc encodeMarshalerType(e *bytes.Buffer, em *encMode, v reflect.Value) error {\n\tif em.tagsMd == TagsForbidden && v.Type() == typeRawTag {\n\t\treturn errors.New(\"cbor: cannot encode cbor.RawTag when TagsMd is TagsForbidden\")\n\t}\n\tm, ok := v.Interface().(Marshaler)\n\tif !ok {\n\t\tpv := reflect.New(v.Type())\n\t\tpv.Elem().Set(v)\n\t\tm = pv.Interface().(Marshaler)\n\t}\n\tdata, err := m.MarshalCBOR()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Verify returned CBOR data item from MarshalCBOR() is well-formed and passes tag validity for builtin tags 0-3.\n\td := decoder{data: data, dm: getMarshalerDecMode(em.indefLength, em.tagsMd)}\n\terr = d.wellformed(false, true)\n\tif err != nil {\n\t\treturn &MarshalerError{typ: v.Type(), err: err}\n\t}\n\n\te.Write(data)\n\treturn nil\n}\n\nfunc encodeTag(e *bytes.Buffer, em *encMode, v reflect.Value) error {\n\tif em.tagsMd == TagsForbidden {\n\t\treturn errors.New(\"cbor: cannot encode cbor.Tag when TagsMd is TagsForbidden\")\n\t}\n\n\tt := v.Interface().(Tag)\n\n\tif t.Number == 0 && t.Content == nil {\n\t\t// Marshal uninitialized cbor.Tag\n\t\te.Write(cborNil)\n\t\treturn nil\n\t}\n\n\t// Marshal tag number\n\tencodeHead(e, byte(cborTypeTag), t.Number)\n\n\tvem := *em // shallow copy\n\n\t// For built-in tags, disable settings that may introduce tag validity errors when\n\t// marshaling certain Content values.\n\tswitch t.Number {\n\tcase tagNumRFC3339Time:\n\t\tvem.stringType = StringToTextString\n\t\tvem.stringMajorType = cborTypeTextString\n\tcase tagNumUnsignedBignum, tagNumNegativeBignum:\n\t\tvem.byteSliceLaterFormat = ByteSliceLaterFormatNone\n\t\tvem.byteSliceLaterEncodingTag = 0\n\t}\n\n\t// Marshal tag content\n\treturn encode(e, &vem, reflect.ValueOf(t.Content))\n}\n\n// encodeHead writes CBOR head of specified type t and returns number of bytes written.\nfunc encodeHead(e *bytes.Buffer, t byte, n uint64) int {\n\tif n <= maxAdditionalInformationWithoutArgument {\n\t\tconst headSize = 1\n\t\te.WriteByte(t | byte(n))\n\t\treturn headSize\n\t}\n\n\tif n <= math.MaxUint8 {\n\t\tconst headSize = 2\n\t\tscratch := [headSize]byte{\n\t\t\tt | byte(additionalInformationWith1ByteArgument),\n\t\t\tbyte(n),\n\t\t}\n\t\te.Write(scratch[:])\n\t\treturn headSize\n\t}\n\n\tif n <= math.MaxUint16 {\n\t\tconst headSize = 3\n\t\tvar scratch [headSize]byte\n\t\tscratch[0] = t | byte(additionalInformationWith2ByteArgument)\n\t\tbinary.BigEndian.PutUint16(scratch[1:], uint16(n))\n\t\te.Write(scratch[:])\n\t\treturn headSize\n\t}\n\n\tif n <= math.MaxUint32 {\n\t\tconst headSize = 5\n\t\tvar scratch [headSize]byte\n\t\tscratch[0] = t | byte(additionalInformationWith4ByteArgument)\n\t\tbinary.BigEndian.PutUint32(scratch[1:], uint32(n))\n\t\te.Write(scratch[:])\n\t\treturn headSize\n\t}\n\n\tconst headSize = 9\n\tvar scratch [headSize]byte\n\tscratch[0] = t | byte(additionalInformationWith8ByteArgument)\n\tbinary.BigEndian.PutUint64(scratch[1:], n)\n\te.Write(scratch[:])\n\treturn headSize\n}\n\nvar (\n\ttypeMarshaler       = reflect.TypeOf((*Marshaler)(nil)).Elem()\n\ttypeBinaryMarshaler = reflect.TypeOf((*encoding.BinaryMarshaler)(nil)).Elem()\n\ttypeRawMessage      = reflect.TypeOf(RawMessage(nil))\n\ttypeByteString      = reflect.TypeOf(ByteString(\"\"))\n)\n\nfunc getEncodeFuncInternal(t reflect.Type) (ef encodeFunc, ief isEmptyFunc) {\n\tk := t.Kind()\n\tif k == reflect.Ptr {\n\t\treturn getEncodeIndirectValueFunc(t), isEmptyPtr\n\t}\n\tswitch t {\n\tcase typeSimpleValue:\n\t\treturn encodeMarshalerType, isEmptyUint\n\n\tcase typeTag:\n\t\treturn encodeTag, alwaysNotEmpty\n\n\tcase typeTime:\n\t\treturn encodeTime, alwaysNotEmpty\n\n\tcase typeBigInt:\n\t\treturn encodeBigInt, alwaysNotEmpty\n\n\tcase typeRawMessage:\n\t\treturn encodeMarshalerType, isEmptySlice\n\n\tcase typeByteString:\n\t\treturn encodeMarshalerType, isEmptyString\n\t}\n\tif reflect.PtrTo(t).Implements(typeMarshaler) {\n\t\treturn encodeMarshalerType, alwaysNotEmpty\n\t}\n\tif reflect.PtrTo(t).Implements(typeBinaryMarshaler) {\n\t\tdefer func() {\n\t\t\t// capture encoding method used for modes that disable BinaryMarshaler\n\t\t\tbme := binaryMarshalerEncoder{\n\t\t\t\talternateEncode:  ef,\n\t\t\t\talternateIsEmpty: ief,\n\t\t\t}\n\t\t\tef = bme.encode\n\t\t\tief = bme.isEmpty\n\t\t}()\n\t}\n\tswitch k {\n\tcase reflect.Bool:\n\t\treturn encodeBool, isEmptyBool\n\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn encodeInt, isEmptyInt\n\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:\n\t\treturn encodeUint, isEmptyUint\n\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn encodeFloat, isEmptyFloat\n\n\tcase reflect.String:\n\t\treturn encodeString, isEmptyString\n\n\tcase reflect.Slice:\n\t\tif t.Elem().Kind() == reflect.Uint8 {\n\t\t\treturn encodeByteString, isEmptySlice\n\t\t}\n\t\tfallthrough\n\n\tcase reflect.Array:\n\t\tf, _ := getEncodeFunc(t.Elem())\n\t\tif f == nil {\n\t\t\treturn nil, nil\n\t\t}\n\t\treturn arrayEncodeFunc{f: f}.encode, isEmptySlice\n\n\tcase reflect.Map:\n\t\tf := getEncodeMapFunc(t)\n\t\tif f == nil {\n\t\t\treturn nil, nil\n\t\t}\n\t\treturn f, isEmptyMap\n\n\tcase reflect.Struct:\n\t\t// Get struct's special field \"_\" tag options\n\t\tif f, ok := t.FieldByName(\"_\"); ok {\n\t\t\ttag := f.Tag.Get(\"cbor\")\n\t\t\tif tag != \"-\" {\n\t\t\t\tif hasToArrayOption(tag) {\n\t\t\t\t\treturn encodeStructToArray, isEmptyStruct\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn encodeStruct, isEmptyStruct\n\n\tcase reflect.Interface:\n\t\treturn encodeIntf, isEmptyIntf\n\t}\n\treturn nil, nil\n}\n\nfunc getEncodeIndirectValueFunc(t reflect.Type) encodeFunc {\n\tfor t.Kind() == reflect.Ptr {\n\t\tt = t.Elem()\n\t}\n\tf, _ := getEncodeFunc(t)\n\tif f == nil {\n\t\treturn nil\n\t}\n\treturn func(e *bytes.Buffer, em *encMode, v reflect.Value) error {\n\t\tfor v.Kind() == reflect.Ptr && !v.IsNil() {\n\t\t\tv = v.Elem()\n\t\t}\n\t\tif v.Kind() == reflect.Ptr && v.IsNil() {\n\t\t\te.Write(cborNil)\n\t\t\treturn nil\n\t\t}\n\t\treturn f(e, em, v)\n\t}\n}\n\nfunc alwaysNotEmpty(_ *encMode, _ reflect.Value) (empty bool, err error) {\n\treturn false, nil\n}\n\nfunc isEmptyBool(_ *encMode, v reflect.Value) (bool, error) {\n\treturn !v.Bool(), nil\n}\n\nfunc isEmptyInt(_ *encMode, v reflect.Value) (bool, error) {\n\treturn v.Int() == 0, nil\n}\n\nfunc isEmptyUint(_ *encMode, v reflect.Value) (bool, error) {\n\treturn v.Uint() == 0, nil\n}\n\nfunc isEmptyFloat(_ *encMode, v reflect.Value) (bool, error) {\n\treturn v.Float() == 0.0, nil\n}\n\nfunc isEmptyString(_ *encMode, v reflect.Value) (bool, error) {\n\treturn v.Len() == 0, nil\n}\n\nfunc isEmptySlice(_ *encMode, v reflect.Value) (bool, error) {\n\treturn v.Len() == 0, nil\n}\n\nfunc isEmptyMap(_ *encMode, v reflect.Value) (bool, error) {\n\treturn v.Len() == 0, nil\n}\n\nfunc isEmptyPtr(_ *encMode, v reflect.Value) (bool, error) {\n\treturn v.IsNil(), nil\n}\n\nfunc isEmptyIntf(_ *encMode, v reflect.Value) (bool, error) {\n\treturn v.IsNil(), nil\n}\n\nfunc isEmptyStruct(em *encMode, v reflect.Value) (bool, error) {\n\tstructType, err := getEncodingStructType(v.Type())\n\tif err != nil {\n\t\treturn false, err\n\t}\n\n\tif em.omitEmpty == OmitEmptyGoValue {\n\t\treturn false, nil\n\t}\n\n\tif structType.toArray {\n\t\treturn len(structType.fields) == 0, nil\n\t}\n\n\tif len(structType.fields) > len(structType.omitEmptyFieldsIdx) {\n\t\treturn false, nil\n\t}\n\n\tfor _, i := range structType.omitEmptyFieldsIdx {\n\t\tf := structType.fields[i]\n\n\t\t// Get field value\n\t\tvar fv reflect.Value\n\t\tif len(f.idx) == 1 {\n\t\t\tfv = v.Field(f.idx[0])\n\t\t} else {\n\t\t\t// Get embedded field value.  No error is expected.\n\t\t\tfv, _ = getFieldValue(v, f.idx, func(reflect.Value) (reflect.Value, error) {\n\t\t\t\t// Skip null pointer to embedded struct\n\t\t\t\treturn reflect.Value{}, nil\n\t\t\t})\n\t\t\tif !fv.IsValid() {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\tempty, err := f.ief(em, fv)\n\t\tif err != nil {\n\t\t\treturn false, err\n\t\t}\n\t\tif !empty {\n\t\t\treturn false, nil\n\t\t}\n\t}\n\treturn true, nil\n}\n\nfunc cannotFitFloat32(f64 float64) bool {\n\tf32 := float32(f64)\n\treturn float64(f32) != f64\n}\n\n// float32NaNFromReflectValue extracts float32 NaN from reflect.Value while preserving NaN's quiet bit.\nfunc float32NaNFromReflectValue(v reflect.Value) float32 {\n\t// Keith Randall's workaround for issue https://github.com/golang/go/issues/36400\n\tp := reflect.New(v.Type())\n\tp.Elem().Set(v)\n\tf32 := p.Convert(reflect.TypeOf((*float32)(nil))).Elem().Interface().(float32)\n\treturn f32\n}\n"
  },
  {
    "path": "vendor/github.com/fxamacker/cbor/v2/encode_map.go",
    "content": "// Copyright (c) Faye Amacker. All rights reserved.\n// Licensed under the MIT License. See LICENSE in the project root for license information.\n\n//go:build go1.20\n\npackage cbor\n\nimport (\n\t\"bytes\"\n\t\"reflect\"\n\t\"sync\"\n)\n\ntype mapKeyValueEncodeFunc struct {\n\tkf, ef       encodeFunc\n\tkpool, vpool sync.Pool\n}\n\nfunc (me *mapKeyValueEncodeFunc) encodeKeyValues(e *bytes.Buffer, em *encMode, v reflect.Value, kvs []keyValue) error {\n\titerk := me.kpool.Get().(*reflect.Value)\n\tdefer func() {\n\t\titerk.SetZero()\n\t\tme.kpool.Put(iterk)\n\t}()\n\titerv := me.vpool.Get().(*reflect.Value)\n\tdefer func() {\n\t\titerv.SetZero()\n\t\tme.vpool.Put(iterv)\n\t}()\n\n\tif kvs == nil {\n\t\tfor i, iter := 0, v.MapRange(); iter.Next(); i++ {\n\t\t\titerk.SetIterKey(iter)\n\t\t\titerv.SetIterValue(iter)\n\n\t\t\tif err := me.kf(e, em, *iterk); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := me.ef(e, em, *iterv); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\treturn nil\n\t}\n\n\tinitial := e.Len()\n\tfor i, iter := 0, v.MapRange(); iter.Next(); i++ {\n\t\titerk.SetIterKey(iter)\n\t\titerv.SetIterValue(iter)\n\n\t\toffset := e.Len()\n\t\tif err := me.kf(e, em, *iterk); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvalueOffset := e.Len()\n\t\tif err := me.ef(e, em, *iterv); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tkvs[i] = keyValue{\n\t\t\toffset:      offset - initial,\n\t\t\tvalueOffset: valueOffset - initial,\n\t\t\tnextOffset:  e.Len() - initial,\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc getEncodeMapFunc(t reflect.Type) encodeFunc {\n\tkf, _ := getEncodeFunc(t.Key())\n\tef, _ := getEncodeFunc(t.Elem())\n\tif kf == nil || ef == nil {\n\t\treturn nil\n\t}\n\tmkv := &mapKeyValueEncodeFunc{\n\t\tkf: kf,\n\t\tef: ef,\n\t\tkpool: sync.Pool{\n\t\t\tNew: func() interface{} {\n\t\t\t\trk := reflect.New(t.Key()).Elem()\n\t\t\t\treturn &rk\n\t\t\t},\n\t\t},\n\t\tvpool: sync.Pool{\n\t\t\tNew: func() interface{} {\n\t\t\t\trv := reflect.New(t.Elem()).Elem()\n\t\t\t\treturn &rv\n\t\t\t},\n\t\t},\n\t}\n\treturn mapEncodeFunc{\n\t\te: mkv.encodeKeyValues,\n\t}.encode\n}\n"
  },
  {
    "path": "vendor/github.com/fxamacker/cbor/v2/encode_map_go117.go",
    "content": "// Copyright (c) Faye Amacker. All rights reserved.\n// Licensed under the MIT License. See LICENSE in the project root for license information.\n\n//go:build !go1.20\n\npackage cbor\n\nimport (\n\t\"bytes\"\n\t\"reflect\"\n)\n\ntype mapKeyValueEncodeFunc struct {\n\tkf, ef encodeFunc\n}\n\nfunc (me *mapKeyValueEncodeFunc) encodeKeyValues(e *bytes.Buffer, em *encMode, v reflect.Value, kvs []keyValue) error {\n\tif kvs == nil {\n\t\tfor i, iter := 0, v.MapRange(); iter.Next(); i++ {\n\t\t\tif err := me.kf(e, em, iter.Key()); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := me.ef(e, em, iter.Value()); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\treturn nil\n\t}\n\n\tinitial := e.Len()\n\tfor i, iter := 0, v.MapRange(); iter.Next(); i++ {\n\t\toffset := e.Len()\n\t\tif err := me.kf(e, em, iter.Key()); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvalueOffset := e.Len()\n\t\tif err := me.ef(e, em, iter.Value()); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tkvs[i] = keyValue{\n\t\t\toffset:      offset - initial,\n\t\t\tvalueOffset: valueOffset - initial,\n\t\t\tnextOffset:  e.Len() - initial,\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc getEncodeMapFunc(t reflect.Type) encodeFunc {\n\tkf, _ := getEncodeFunc(t.Key())\n\tef, _ := getEncodeFunc(t.Elem())\n\tif kf == nil || ef == nil {\n\t\treturn nil\n\t}\n\tmkv := &mapKeyValueEncodeFunc{kf: kf, ef: ef}\n\treturn mapEncodeFunc{\n\t\te: mkv.encodeKeyValues,\n\t}.encode\n}\n"
  },
  {
    "path": "vendor/github.com/fxamacker/cbor/v2/simplevalue.go",
    "content": "package cbor\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n)\n\n// SimpleValue represents CBOR simple value.\n// CBOR simple value is:\n//   - an extension point like CBOR tag.\n//   - a subset of CBOR major type 7 that isn't floating-point.\n//   - \"identified by a number between 0 and 255, but distinct from that number itself\".\n//     For example, \"a simple value 2 is not equivalent to an integer 2\" as a CBOR map key.\n//\n// CBOR simple values identified by 20..23 are: \"false\", \"true\" , \"null\", and \"undefined\".\n// Other CBOR simple values are currently unassigned/reserved by IANA.\ntype SimpleValue uint8\n\nvar (\n\ttypeSimpleValue = reflect.TypeOf(SimpleValue(0))\n)\n\n// MarshalCBOR encodes SimpleValue as CBOR simple value (major type 7).\nfunc (sv SimpleValue) MarshalCBOR() ([]byte, error) {\n\t// RFC 8949 3.3. Floating-Point Numbers and Values with No Content says:\n\t// \"An encoder MUST NOT issue two-byte sequences that start with 0xf8\n\t// (major type 7, additional information 24) and continue with a byte\n\t// less than 0x20 (32 decimal). Such sequences are not well-formed.\n\t// (This implies that an encoder cannot encode false, true, null, or\n\t// undefined in two-byte sequences and that only the one-byte variants\n\t// of these are well-formed; more generally speaking, each simple value\n\t// only has a single representation variant).\"\n\n\tswitch {\n\tcase sv <= maxSimpleValueInAdditionalInformation:\n\t\treturn []byte{byte(cborTypePrimitives) | byte(sv)}, nil\n\n\tcase sv >= minSimpleValueIn1ByteArgument:\n\t\treturn []byte{byte(cborTypePrimitives) | additionalInformationWith1ByteArgument, byte(sv)}, nil\n\n\tdefault:\n\t\treturn nil, &UnsupportedValueError{msg: fmt.Sprintf(\"SimpleValue(%d)\", sv)}\n\t}\n}\n\n// UnmarshalCBOR decodes CBOR simple value (major type 7) to SimpleValue.\nfunc (sv *SimpleValue) UnmarshalCBOR(data []byte) error {\n\tif sv == nil {\n\t\treturn errors.New(\"cbor.SimpleValue: UnmarshalCBOR on nil pointer\")\n\t}\n\n\td := decoder{data: data, dm: defaultDecMode}\n\n\ttyp, ai, val := d.getHead()\n\n\tif typ != cborTypePrimitives {\n\t\treturn &UnmarshalTypeError{CBORType: typ.String(), GoType: \"SimpleValue\"}\n\t}\n\tif ai > additionalInformationWith1ByteArgument {\n\t\treturn &UnmarshalTypeError{CBORType: typ.String(), GoType: \"SimpleValue\", errorMsg: \"not simple values\"}\n\t}\n\n\t// It is safe to cast val to uint8 here because\n\t// - data is already verified to be well-formed CBOR simple value and\n\t// - val is <= math.MaxUint8.\n\t*sv = SimpleValue(val)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/fxamacker/cbor/v2/stream.go",
    "content": "// Copyright (c) Faye Amacker. All rights reserved.\n// Licensed under the MIT License. See LICENSE in the project root for license information.\n\npackage cbor\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"io\"\n\t\"reflect\"\n)\n\n// Decoder reads and decodes CBOR values from io.Reader.\ntype Decoder struct {\n\tr         io.Reader\n\td         decoder\n\tbuf       []byte\n\toff       int // next read offset in buf\n\tbytesRead int\n}\n\n// NewDecoder returns a new decoder that reads and decodes from r using\n// the default decoding options.\nfunc NewDecoder(r io.Reader) *Decoder {\n\treturn defaultDecMode.NewDecoder(r)\n}\n\n// Decode reads CBOR value and decodes it into the value pointed to by v.\nfunc (dec *Decoder) Decode(v interface{}) error {\n\t_, err := dec.readNext()\n\tif err != nil {\n\t\t// Return validation error or read error.\n\t\treturn err\n\t}\n\n\tdec.d.reset(dec.buf[dec.off:])\n\terr = dec.d.value(v)\n\n\t// Increment dec.off even if decoding err is not nil because\n\t// dec.d.off points to the next CBOR data item if current\n\t// CBOR data item is valid but failed to be decoded into v.\n\t// This allows next CBOR data item to be decoded in next\n\t// call to this function.\n\tdec.off += dec.d.off\n\tdec.bytesRead += dec.d.off\n\n\treturn err\n}\n\n// Skip skips to the next CBOR data item (if there is any),\n// otherwise it returns error such as io.EOF, io.UnexpectedEOF, etc.\nfunc (dec *Decoder) Skip() error {\n\tn, err := dec.readNext()\n\tif err != nil {\n\t\t// Return validation error or read error.\n\t\treturn err\n\t}\n\n\tdec.off += n\n\tdec.bytesRead += n\n\treturn nil\n}\n\n// NumBytesRead returns the number of bytes read.\nfunc (dec *Decoder) NumBytesRead() int {\n\treturn dec.bytesRead\n}\n\n// Buffered returns a reader for data remaining in Decoder's buffer.\n// Returned reader is valid until the next call to Decode or Skip.\nfunc (dec *Decoder) Buffered() io.Reader {\n\treturn bytes.NewReader(dec.buf[dec.off:])\n}\n\n// readNext() reads next CBOR data item from Reader to buffer.\n// It returns the size of next CBOR data item.\n// It also returns validation error or read error if any.\nfunc (dec *Decoder) readNext() (int, error) {\n\tvar readErr error\n\tvar validErr error\n\n\tfor {\n\t\t// Process any unread data in dec.buf.\n\t\tif dec.off < len(dec.buf) {\n\t\t\tdec.d.reset(dec.buf[dec.off:])\n\t\t\toff := dec.off // Save offset before data validation\n\t\t\tvalidErr = dec.d.wellformed(true, false)\n\t\t\tdec.off = off // Restore offset\n\n\t\t\tif validErr == nil {\n\t\t\t\treturn dec.d.off, nil\n\t\t\t}\n\n\t\t\tif validErr != io.ErrUnexpectedEOF {\n\t\t\t\treturn 0, validErr\n\t\t\t}\n\n\t\t\t// Process last read error on io.ErrUnexpectedEOF.\n\t\t\tif readErr != nil {\n\t\t\t\tif readErr == io.EOF {\n\t\t\t\t\t// current CBOR data item is incomplete.\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\treturn 0, readErr\n\t\t\t}\n\t\t}\n\n\t\t// More data is needed and there was no read error.\n\t\tvar n int\n\t\tfor n == 0 {\n\t\t\tn, readErr = dec.read()\n\t\t\tif n == 0 && readErr != nil {\n\t\t\t\t// No more data can be read and read error is encountered.\n\t\t\t\t// At this point, validErr is either nil or io.ErrUnexpectedEOF.\n\t\t\t\tif readErr == io.EOF {\n\t\t\t\t\tif validErr == io.ErrUnexpectedEOF {\n\t\t\t\t\t\t// current CBOR data item is incomplete.\n\t\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn 0, readErr\n\t\t\t}\n\t\t}\n\n\t\t// At this point, dec.buf contains new data from last read (n > 0).\n\t}\n}\n\n// read() reads data from Reader to buffer.\n// It returns number of bytes read and any read error encountered.\n// Postconditions:\n// - dec.buf contains previously unread data and new data.\n// - dec.off is 0.\nfunc (dec *Decoder) read() (int, error) {\n\t// Grow buf if needed.\n\tconst minRead = 512\n\tif cap(dec.buf)-len(dec.buf)+dec.off < minRead {\n\t\toldUnreadBuf := dec.buf[dec.off:]\n\t\tdec.buf = make([]byte, len(dec.buf)-dec.off, 2*cap(dec.buf)+minRead)\n\t\tdec.overwriteBuf(oldUnreadBuf)\n\t}\n\n\t// Copy unread data over read data and reset off to 0.\n\tif dec.off > 0 {\n\t\tdec.overwriteBuf(dec.buf[dec.off:])\n\t}\n\n\t// Read from reader and reslice buf.\n\tn, err := dec.r.Read(dec.buf[len(dec.buf):cap(dec.buf)])\n\tdec.buf = dec.buf[0 : len(dec.buf)+n]\n\treturn n, err\n}\n\nfunc (dec *Decoder) overwriteBuf(newBuf []byte) {\n\tn := copy(dec.buf, newBuf)\n\tdec.buf = dec.buf[:n]\n\tdec.off = 0\n}\n\n// Encoder writes CBOR values to io.Writer.\ntype Encoder struct {\n\tw          io.Writer\n\tem         *encMode\n\tindefTypes []cborType\n}\n\n// NewEncoder returns a new encoder that writes to w using the default encoding options.\nfunc NewEncoder(w io.Writer) *Encoder {\n\treturn defaultEncMode.NewEncoder(w)\n}\n\n// Encode writes the CBOR encoding of v.\nfunc (enc *Encoder) Encode(v interface{}) error {\n\tif len(enc.indefTypes) > 0 && v != nil {\n\t\tindefType := enc.indefTypes[len(enc.indefTypes)-1]\n\t\tif indefType == cborTypeTextString {\n\t\t\tk := reflect.TypeOf(v).Kind()\n\t\t\tif k != reflect.String {\n\t\t\t\treturn errors.New(\"cbor: cannot encode item type \" + k.String() + \" for indefinite-length text string\")\n\t\t\t}\n\t\t} else if indefType == cborTypeByteString {\n\t\t\tt := reflect.TypeOf(v)\n\t\t\tk := t.Kind()\n\t\t\tif (k != reflect.Array && k != reflect.Slice) || t.Elem().Kind() != reflect.Uint8 {\n\t\t\t\treturn errors.New(\"cbor: cannot encode item type \" + k.String() + \" for indefinite-length byte string\")\n\t\t\t}\n\t\t}\n\t}\n\n\tbuf := getEncodeBuffer()\n\n\terr := encode(buf, enc.em, reflect.ValueOf(v))\n\tif err == nil {\n\t\t_, err = enc.w.Write(buf.Bytes())\n\t}\n\n\tputEncodeBuffer(buf)\n\treturn err\n}\n\n// StartIndefiniteByteString starts byte string encoding of indefinite length.\n// Subsequent calls of (*Encoder).Encode() encodes definite length byte strings\n// (\"chunks\") as one contiguous string until EndIndefinite is called.\nfunc (enc *Encoder) StartIndefiniteByteString() error {\n\treturn enc.startIndefinite(cborTypeByteString)\n}\n\n// StartIndefiniteTextString starts text string encoding of indefinite length.\n// Subsequent calls of (*Encoder).Encode() encodes definite length text strings\n// (\"chunks\") as one contiguous string until EndIndefinite is called.\nfunc (enc *Encoder) StartIndefiniteTextString() error {\n\treturn enc.startIndefinite(cborTypeTextString)\n}\n\n// StartIndefiniteArray starts array encoding of indefinite length.\n// Subsequent calls of (*Encoder).Encode() encodes elements of the array\n// until EndIndefinite is called.\nfunc (enc *Encoder) StartIndefiniteArray() error {\n\treturn enc.startIndefinite(cborTypeArray)\n}\n\n// StartIndefiniteMap starts array encoding of indefinite length.\n// Subsequent calls of (*Encoder).Encode() encodes elements of the map\n// until EndIndefinite is called.\nfunc (enc *Encoder) StartIndefiniteMap() error {\n\treturn enc.startIndefinite(cborTypeMap)\n}\n\n// EndIndefinite closes last opened indefinite length value.\nfunc (enc *Encoder) EndIndefinite() error {\n\tif len(enc.indefTypes) == 0 {\n\t\treturn errors.New(\"cbor: cannot encode \\\"break\\\" code outside indefinite length values\")\n\t}\n\t_, err := enc.w.Write([]byte{cborBreakFlag})\n\tif err == nil {\n\t\tenc.indefTypes = enc.indefTypes[:len(enc.indefTypes)-1]\n\t}\n\treturn err\n}\n\nvar cborIndefHeader = map[cborType][]byte{\n\tcborTypeByteString: {cborByteStringWithIndefiniteLengthHead},\n\tcborTypeTextString: {cborTextStringWithIndefiniteLengthHead},\n\tcborTypeArray:      {cborArrayWithIndefiniteLengthHead},\n\tcborTypeMap:        {cborMapWithIndefiniteLengthHead},\n}\n\nfunc (enc *Encoder) startIndefinite(typ cborType) error {\n\tif enc.em.indefLength == IndefLengthForbidden {\n\t\treturn &IndefiniteLengthError{typ}\n\t}\n\t_, err := enc.w.Write(cborIndefHeader[typ])\n\tif err == nil {\n\t\tenc.indefTypes = append(enc.indefTypes, typ)\n\t}\n\treturn err\n}\n\n// RawMessage is a raw encoded CBOR value.\ntype RawMessage []byte\n\n// MarshalCBOR returns m or CBOR nil if m is nil.\nfunc (m RawMessage) MarshalCBOR() ([]byte, error) {\n\tif len(m) == 0 {\n\t\treturn cborNil, nil\n\t}\n\treturn m, nil\n}\n\n// UnmarshalCBOR creates a copy of data and saves to *m.\nfunc (m *RawMessage) UnmarshalCBOR(data []byte) error {\n\tif m == nil {\n\t\treturn errors.New(\"cbor.RawMessage: UnmarshalCBOR on nil pointer\")\n\t}\n\t*m = append((*m)[0:0], data...)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/fxamacker/cbor/v2/structfields.go",
    "content": "// Copyright (c) Faye Amacker. All rights reserved.\n// Licensed under the MIT License. See LICENSE in the project root for license information.\n\npackage cbor\n\nimport (\n\t\"reflect\"\n\t\"sort\"\n\t\"strings\"\n)\n\ntype field struct {\n\tname               string\n\tnameAsInt          int64 // used to decoder to match field name with CBOR int\n\tcborName           []byte\n\tcborNameByteString []byte // major type 2 name encoding iff cborName has major type 3\n\tidx                []int\n\ttyp                reflect.Type\n\tef                 encodeFunc\n\tief                isEmptyFunc\n\ttypInfo            *typeInfo // used to decoder to reuse type info\n\ttagged             bool      // used to choose dominant field (at the same level tagged fields dominate untagged fields)\n\tomitEmpty          bool      // used to skip empty field\n\tkeyAsInt           bool      // used to encode/decode field name as int\n}\n\ntype fields []*field\n\n// indexFieldSorter sorts fields by field idx at each level, breaking ties with idx depth.\ntype indexFieldSorter struct {\n\tfields fields\n}\n\nfunc (x *indexFieldSorter) Len() int {\n\treturn len(x.fields)\n}\n\nfunc (x *indexFieldSorter) Swap(i, j int) {\n\tx.fields[i], x.fields[j] = x.fields[j], x.fields[i]\n}\n\nfunc (x *indexFieldSorter) Less(i, j int) bool {\n\tiIdx, jIdx := x.fields[i].idx, x.fields[j].idx\n\tfor k := 0; k < len(iIdx) && k < len(jIdx); k++ {\n\t\tif iIdx[k] != jIdx[k] {\n\t\t\treturn iIdx[k] < jIdx[k]\n\t\t}\n\t}\n\treturn len(iIdx) <= len(jIdx)\n}\n\n// nameLevelAndTagFieldSorter sorts fields by field name, idx depth, and presence of tag.\ntype nameLevelAndTagFieldSorter struct {\n\tfields fields\n}\n\nfunc (x *nameLevelAndTagFieldSorter) Len() int {\n\treturn len(x.fields)\n}\n\nfunc (x *nameLevelAndTagFieldSorter) Swap(i, j int) {\n\tx.fields[i], x.fields[j] = x.fields[j], x.fields[i]\n}\n\nfunc (x *nameLevelAndTagFieldSorter) Less(i, j int) bool {\n\tfi, fj := x.fields[i], x.fields[j]\n\tif fi.name != fj.name {\n\t\treturn fi.name < fj.name\n\t}\n\tif len(fi.idx) != len(fj.idx) {\n\t\treturn len(fi.idx) < len(fj.idx)\n\t}\n\tif fi.tagged != fj.tagged {\n\t\treturn fi.tagged\n\t}\n\treturn i < j // Field i and j have the same name, depth, and tagged status. Nothing else matters.\n}\n\n// getFields returns visible fields of struct type t following visibility rules for JSON encoding.\nfunc getFields(t reflect.Type) (flds fields, structOptions string) {\n\t// Get special field \"_\" tag options\n\tif f, ok := t.FieldByName(\"_\"); ok {\n\t\ttag := f.Tag.Get(\"cbor\")\n\t\tif tag != \"-\" {\n\t\t\tstructOptions = tag\n\t\t}\n\t}\n\n\t// nTypes contains next level anonymous fields' types and indexes\n\t// (there can be multiple fields of the same type at the same level)\n\tflds, nTypes := appendFields(t, nil, nil, nil)\n\n\tif len(nTypes) > 0 {\n\n\t\tvar cTypes map[reflect.Type][][]int      // current level anonymous fields' types and indexes\n\t\tvTypes := map[reflect.Type]bool{t: true} // visited field types at less nested levels\n\n\t\tfor len(nTypes) > 0 {\n\t\t\tcTypes, nTypes = nTypes, nil\n\n\t\t\tfor t, idx := range cTypes {\n\t\t\t\t// If there are multiple anonymous fields of the same struct type at the same level, all are ignored.\n\t\t\t\tif len(idx) > 1 {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\t// Anonymous field of the same type at deeper nested level is ignored.\n\t\t\t\tif vTypes[t] {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tvTypes[t] = true\n\n\t\t\t\tflds, nTypes = appendFields(t, idx[0], flds, nTypes)\n\t\t\t}\n\t\t}\n\t}\n\n\tsort.Sort(&nameLevelAndTagFieldSorter{flds})\n\n\t// Keep visible fields.\n\tj := 0 // index of next unique field\n\tfor i := 0; i < len(flds); {\n\t\tname := flds[i].name\n\t\tif i == len(flds)-1 || // last field\n\t\t\tname != flds[i+1].name || // field i has unique field name\n\t\t\tlen(flds[i].idx) < len(flds[i+1].idx) || // field i is at a less nested level than field i+1\n\t\t\t(flds[i].tagged && !flds[i+1].tagged) { // field i is tagged while field i+1 is not\n\t\t\tflds[j] = flds[i]\n\t\t\tj++\n\t\t}\n\n\t\t// Skip fields with the same field name.\n\t\tfor i++; i < len(flds) && name == flds[i].name; i++ { //nolint:revive\n\t\t}\n\t}\n\tif j != len(flds) {\n\t\tflds = flds[:j]\n\t}\n\n\t// Sort fields by field index\n\tsort.Sort(&indexFieldSorter{flds})\n\n\treturn flds, structOptions\n}\n\n// appendFields appends type t's exportable fields to flds and anonymous struct fields to nTypes .\nfunc appendFields(\n\tt reflect.Type,\n\tidx []int,\n\tflds fields,\n\tnTypes map[reflect.Type][][]int,\n) (\n\t_flds fields,\n\t_nTypes map[reflect.Type][][]int,\n) {\n\tfor i := 0; i < t.NumField(); i++ {\n\t\tf := t.Field(i)\n\n\t\tft := f.Type\n\t\tfor ft.Kind() == reflect.Ptr {\n\t\t\tft = ft.Elem()\n\t\t}\n\n\t\tif !isFieldExportable(f, ft.Kind()) {\n\t\t\tcontinue\n\t\t}\n\n\t\ttag := f.Tag.Get(\"cbor\")\n\t\tif tag == \"\" {\n\t\t\ttag = f.Tag.Get(\"json\")\n\t\t}\n\t\tif tag == \"-\" {\n\t\t\tcontinue\n\t\t}\n\n\t\ttagged := tag != \"\"\n\n\t\t// Parse field tag options\n\t\tvar tagFieldName string\n\t\tvar omitempty, keyasint bool\n\t\tfor j := 0; tag != \"\"; j++ {\n\t\t\tvar token string\n\t\t\tidx := strings.IndexByte(tag, ',')\n\t\t\tif idx == -1 {\n\t\t\t\ttoken, tag = tag, \"\"\n\t\t\t} else {\n\t\t\t\ttoken, tag = tag[:idx], tag[idx+1:]\n\t\t\t}\n\t\t\tif j == 0 {\n\t\t\t\ttagFieldName = token\n\t\t\t} else {\n\t\t\t\tswitch token {\n\t\t\t\tcase \"omitempty\":\n\t\t\t\t\tomitempty = true\n\t\t\t\tcase \"keyasint\":\n\t\t\t\t\tkeyasint = true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfieldName := tagFieldName\n\t\tif tagFieldName == \"\" {\n\t\t\tfieldName = f.Name\n\t\t}\n\n\t\tfIdx := make([]int, len(idx)+1)\n\t\tcopy(fIdx, idx)\n\t\tfIdx[len(fIdx)-1] = i\n\n\t\tif !f.Anonymous || ft.Kind() != reflect.Struct || tagFieldName != \"\" {\n\t\t\tflds = append(flds, &field{\n\t\t\t\tname:      fieldName,\n\t\t\t\tidx:       fIdx,\n\t\t\t\ttyp:       f.Type,\n\t\t\t\tomitEmpty: omitempty,\n\t\t\t\tkeyAsInt:  keyasint,\n\t\t\t\ttagged:    tagged})\n\t\t} else {\n\t\t\tif nTypes == nil {\n\t\t\t\tnTypes = make(map[reflect.Type][][]int)\n\t\t\t}\n\t\t\tnTypes[ft] = append(nTypes[ft], fIdx)\n\t\t}\n\t}\n\n\treturn flds, nTypes\n}\n\n// isFieldExportable returns true if f is an exportable (regular or anonymous) field or\n// a nonexportable anonymous field of struct type.\n// Nonexportable anonymous field of struct type can contain exportable fields.\nfunc isFieldExportable(f reflect.StructField, fk reflect.Kind) bool { //nolint:gocritic // ignore hugeParam\n\texportable := f.PkgPath == \"\"\n\treturn exportable || (f.Anonymous && fk == reflect.Struct)\n}\n\ntype embeddedFieldNullPtrFunc func(reflect.Value) (reflect.Value, error)\n\n// getFieldValue returns field value of struct v by index.  When encountering null pointer\n// to anonymous (embedded) struct field, f is called with the last traversed field value.\nfunc getFieldValue(v reflect.Value, idx []int, f embeddedFieldNullPtrFunc) (fv reflect.Value, err error) {\n\tfv = v\n\tfor i, n := range idx {\n\t\tfv = fv.Field(n)\n\n\t\tif i < len(idx)-1 {\n\t\t\tif fv.Kind() == reflect.Ptr && fv.Type().Elem().Kind() == reflect.Struct {\n\t\t\t\tif fv.IsNil() {\n\t\t\t\t\t// Null pointer to embedded struct field\n\t\t\t\t\tfv, err = f(fv)\n\t\t\t\t\tif err != nil || !fv.IsValid() {\n\t\t\t\t\t\treturn fv, err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfv = fv.Elem()\n\t\t\t}\n\t\t}\n\t}\n\treturn fv, nil\n}\n"
  },
  {
    "path": "vendor/github.com/fxamacker/cbor/v2/tag.go",
    "content": "package cbor\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"sync\"\n)\n\n// Tag represents CBOR tag data, including tag number and unmarshaled tag content. Marshaling and\n// unmarshaling of tag content is subject to any encode and decode options that would apply to\n// enclosed data item if it were to appear outside of a tag.\ntype Tag struct {\n\tNumber  uint64\n\tContent interface{}\n}\n\n// RawTag represents CBOR tag data, including tag number and raw tag content.\n// RawTag implements Unmarshaler and Marshaler interfaces.\ntype RawTag struct {\n\tNumber  uint64\n\tContent RawMessage\n}\n\n// UnmarshalCBOR sets *t with tag number and raw tag content copied from data.\nfunc (t *RawTag) UnmarshalCBOR(data []byte) error {\n\tif t == nil {\n\t\treturn errors.New(\"cbor.RawTag: UnmarshalCBOR on nil pointer\")\n\t}\n\n\t// Decoding CBOR null and undefined to cbor.RawTag is no-op.\n\tif len(data) == 1 && (data[0] == 0xf6 || data[0] == 0xf7) {\n\t\treturn nil\n\t}\n\n\td := decoder{data: data, dm: defaultDecMode}\n\n\t// Unmarshal tag number.\n\ttyp, _, num := d.getHead()\n\tif typ != cborTypeTag {\n\t\treturn &UnmarshalTypeError{CBORType: typ.String(), GoType: typeRawTag.String()}\n\t}\n\tt.Number = num\n\n\t// Unmarshal tag content.\n\tc := d.data[d.off:]\n\tt.Content = make([]byte, len(c))\n\tcopy(t.Content, c)\n\treturn nil\n}\n\n// MarshalCBOR returns CBOR encoding of t.\nfunc (t RawTag) MarshalCBOR() ([]byte, error) {\n\tif t.Number == 0 && len(t.Content) == 0 {\n\t\t// Marshal uninitialized cbor.RawTag\n\t\tb := make([]byte, len(cborNil))\n\t\tcopy(b, cborNil)\n\t\treturn b, nil\n\t}\n\n\te := getEncodeBuffer()\n\n\tencodeHead(e, byte(cborTypeTag), t.Number)\n\n\tcontent := t.Content\n\tif len(content) == 0 {\n\t\tcontent = cborNil\n\t}\n\n\tbuf := make([]byte, len(e.Bytes())+len(content))\n\tn := copy(buf, e.Bytes())\n\tcopy(buf[n:], content)\n\n\tputEncodeBuffer(e)\n\treturn buf, nil\n}\n\n// DecTagMode specifies how decoder handles tag number.\ntype DecTagMode int\n\nconst (\n\t// DecTagIgnored makes decoder ignore tag number (skips if present).\n\tDecTagIgnored DecTagMode = iota\n\n\t// DecTagOptional makes decoder verify tag number if it's present.\n\tDecTagOptional\n\n\t// DecTagRequired makes decoder verify tag number and tag number must be present.\n\tDecTagRequired\n\n\tmaxDecTagMode\n)\n\nfunc (dtm DecTagMode) valid() bool {\n\treturn dtm >= 0 && dtm < maxDecTagMode\n}\n\n// EncTagMode specifies how encoder handles tag number.\ntype EncTagMode int\n\nconst (\n\t// EncTagNone makes encoder not encode tag number.\n\tEncTagNone EncTagMode = iota\n\n\t// EncTagRequired makes encoder encode tag number.\n\tEncTagRequired\n\n\tmaxEncTagMode\n)\n\nfunc (etm EncTagMode) valid() bool {\n\treturn etm >= 0 && etm < maxEncTagMode\n}\n\n// TagOptions specifies how encoder and decoder handle tag number.\ntype TagOptions struct {\n\tDecTag DecTagMode\n\tEncTag EncTagMode\n}\n\n// TagSet is an interface to add and remove tag info.  It is used by EncMode and DecMode\n// to provide CBOR tag support.\ntype TagSet interface {\n\t// Add adds given tag number(s), content type, and tag options to TagSet.\n\tAdd(opts TagOptions, contentType reflect.Type, num uint64, nestedNum ...uint64) error\n\n\t// Remove removes given tag content type from TagSet.\n\tRemove(contentType reflect.Type)\n\n\ttagProvider\n}\n\ntype tagProvider interface {\n\tgetTagItemFromType(t reflect.Type) *tagItem\n\tgetTypeFromTagNum(num []uint64) reflect.Type\n}\n\ntype tagItem struct {\n\tnum         []uint64\n\tcborTagNum  []byte\n\tcontentType reflect.Type\n\topts        TagOptions\n}\n\nfunc (t *tagItem) equalTagNum(num []uint64) bool {\n\t// Fast path to compare 1 tag number\n\tif len(t.num) == 1 && len(num) == 1 && t.num[0] == num[0] {\n\t\treturn true\n\t}\n\n\tif len(t.num) != len(num) {\n\t\treturn false\n\t}\n\n\tfor i := 0; i < len(t.num); i++ {\n\t\tif t.num[i] != num[i] {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n\ntype (\n\ttagSet map[reflect.Type]*tagItem\n\n\tsyncTagSet struct {\n\t\tsync.RWMutex\n\t\tt tagSet\n\t}\n)\n\nfunc (t tagSet) getTagItemFromType(typ reflect.Type) *tagItem {\n\treturn t[typ]\n}\n\nfunc (t tagSet) getTypeFromTagNum(num []uint64) reflect.Type {\n\tfor typ, tag := range t {\n\t\tif tag.equalTagNum(num) {\n\t\t\treturn typ\n\t\t}\n\t}\n\treturn nil\n}\n\n// NewTagSet returns TagSet (safe for concurrency).\nfunc NewTagSet() TagSet {\n\treturn &syncTagSet{t: make(map[reflect.Type]*tagItem)}\n}\n\n// Add adds given tag number(s), content type, and tag options to TagSet.\nfunc (t *syncTagSet) Add(opts TagOptions, contentType reflect.Type, num uint64, nestedNum ...uint64) error {\n\tif contentType == nil {\n\t\treturn errors.New(\"cbor: cannot add nil content type to TagSet\")\n\t}\n\tfor contentType.Kind() == reflect.Ptr {\n\t\tcontentType = contentType.Elem()\n\t}\n\ttag, err := newTagItem(opts, contentType, num, nestedNum...)\n\tif err != nil {\n\t\treturn err\n\t}\n\tt.Lock()\n\tdefer t.Unlock()\n\tfor typ, ti := range t.t {\n\t\tif typ == contentType {\n\t\t\treturn errors.New(\"cbor: content type \" + contentType.String() + \" already exists in TagSet\")\n\t\t}\n\t\tif ti.equalTagNum(tag.num) {\n\t\t\treturn fmt.Errorf(\"cbor: tag number %v already exists in TagSet\", tag.num)\n\t\t}\n\t}\n\tt.t[contentType] = tag\n\treturn nil\n}\n\n// Remove removes given tag content type from TagSet.\nfunc (t *syncTagSet) Remove(contentType reflect.Type) {\n\tfor contentType.Kind() == reflect.Ptr {\n\t\tcontentType = contentType.Elem()\n\t}\n\tt.Lock()\n\tdelete(t.t, contentType)\n\tt.Unlock()\n}\n\nfunc (t *syncTagSet) getTagItemFromType(typ reflect.Type) *tagItem {\n\tt.RLock()\n\tti := t.t[typ]\n\tt.RUnlock()\n\treturn ti\n}\n\nfunc (t *syncTagSet) getTypeFromTagNum(num []uint64) reflect.Type {\n\tt.RLock()\n\trt := t.t.getTypeFromTagNum(num)\n\tt.RUnlock()\n\treturn rt\n}\n\nfunc newTagItem(opts TagOptions, contentType reflect.Type, num uint64, nestedNum ...uint64) (*tagItem, error) {\n\tif opts.DecTag == DecTagIgnored && opts.EncTag == EncTagNone {\n\t\treturn nil, errors.New(\"cbor: cannot add tag with DecTagIgnored and EncTagNone options to TagSet\")\n\t}\n\tif contentType.PkgPath() == \"\" || contentType.Kind() == reflect.Interface {\n\t\treturn nil, errors.New(\"cbor: can only add named types to TagSet, got \" + contentType.String())\n\t}\n\tif contentType == typeTime {\n\t\treturn nil, errors.New(\"cbor: cannot add time.Time to TagSet, use EncOptions.TimeTag and DecOptions.TimeTag instead\")\n\t}\n\tif contentType == typeBigInt {\n\t\treturn nil, errors.New(\"cbor: cannot add big.Int to TagSet, it's built-in and supported automatically\")\n\t}\n\tif contentType == typeTag {\n\t\treturn nil, errors.New(\"cbor: cannot add cbor.Tag to TagSet\")\n\t}\n\tif contentType == typeRawTag {\n\t\treturn nil, errors.New(\"cbor: cannot add cbor.RawTag to TagSet\")\n\t}\n\tif num == 0 || num == 1 {\n\t\treturn nil, errors.New(\"cbor: cannot add tag number 0 or 1 to TagSet, use EncOptions.TimeTag and DecOptions.TimeTag instead\")\n\t}\n\tif num == 2 || num == 3 {\n\t\treturn nil, errors.New(\"cbor: cannot add tag number 2 or 3 to TagSet, it's built-in and supported automatically\")\n\t}\n\tif num == tagNumSelfDescribedCBOR {\n\t\treturn nil, errors.New(\"cbor: cannot add tag number 55799 to TagSet, it's built-in and ignored automatically\")\n\t}\n\n\tte := tagItem{num: []uint64{num}, opts: opts, contentType: contentType}\n\tte.num = append(te.num, nestedNum...)\n\n\t// Cache encoded tag numbers\n\te := getEncodeBuffer()\n\tfor _, n := range te.num {\n\t\tencodeHead(e, byte(cborTypeTag), n)\n\t}\n\tte.cborTagNum = make([]byte, e.Len())\n\tcopy(te.cborTagNum, e.Bytes())\n\tputEncodeBuffer(e)\n\n\treturn &te, nil\n}\n\nvar (\n\ttypeTag    = reflect.TypeOf(Tag{})\n\ttypeRawTag = reflect.TypeOf(RawTag{})\n)\n\n// WrongTagError describes mismatch between CBOR tag and registered tag.\ntype WrongTagError struct {\n\tRegisteredType   reflect.Type\n\tRegisteredTagNum []uint64\n\tTagNum           []uint64\n}\n\nfunc (e *WrongTagError) Error() string {\n\treturn fmt.Sprintf(\"cbor: wrong tag number for %s, got %v, expected %v\", e.RegisteredType.String(), e.TagNum, e.RegisteredTagNum)\n}\n"
  },
  {
    "path": "vendor/github.com/fxamacker/cbor/v2/valid.go",
    "content": "// Copyright (c) Faye Amacker. All rights reserved.\n// Licensed under the MIT License. See LICENSE in the project root for license information.\n\npackage cbor\n\nimport (\n\t\"encoding/binary\"\n\t\"errors\"\n\t\"io\"\n\t\"math\"\n\t\"strconv\"\n\n\t\"github.com/x448/float16\"\n)\n\n// SyntaxError is a description of a CBOR syntax error.\ntype SyntaxError struct {\n\tmsg string\n}\n\nfunc (e *SyntaxError) Error() string { return e.msg }\n\n// SemanticError is a description of a CBOR semantic error.\ntype SemanticError struct {\n\tmsg string\n}\n\nfunc (e *SemanticError) Error() string { return e.msg }\n\n// MaxNestedLevelError indicates exceeded max nested level of any combination of CBOR arrays/maps/tags.\ntype MaxNestedLevelError struct {\n\tmaxNestedLevels int\n}\n\nfunc (e *MaxNestedLevelError) Error() string {\n\treturn \"cbor: exceeded max nested level \" + strconv.Itoa(e.maxNestedLevels)\n}\n\n// MaxArrayElementsError indicates exceeded max number of elements for CBOR arrays.\ntype MaxArrayElementsError struct {\n\tmaxArrayElements int\n}\n\nfunc (e *MaxArrayElementsError) Error() string {\n\treturn \"cbor: exceeded max number of elements \" + strconv.Itoa(e.maxArrayElements) + \" for CBOR array\"\n}\n\n// MaxMapPairsError indicates exceeded max number of key-value pairs for CBOR maps.\ntype MaxMapPairsError struct {\n\tmaxMapPairs int\n}\n\nfunc (e *MaxMapPairsError) Error() string {\n\treturn \"cbor: exceeded max number of key-value pairs \" + strconv.Itoa(e.maxMapPairs) + \" for CBOR map\"\n}\n\n// IndefiniteLengthError indicates found disallowed indefinite length items.\ntype IndefiniteLengthError struct {\n\tt cborType\n}\n\nfunc (e *IndefiniteLengthError) Error() string {\n\treturn \"cbor: indefinite-length \" + e.t.String() + \" isn't allowed\"\n}\n\n// TagsMdError indicates found disallowed CBOR tags.\ntype TagsMdError struct {\n}\n\nfunc (e *TagsMdError) Error() string {\n\treturn \"cbor: CBOR tag isn't allowed\"\n}\n\n// ExtraneousDataError indicates found extraneous data following well-formed CBOR data item.\ntype ExtraneousDataError struct {\n\tnumOfBytes int // number of bytes of extraneous data\n\tindex      int // location of extraneous data\n}\n\nfunc (e *ExtraneousDataError) Error() string {\n\treturn \"cbor: \" + strconv.Itoa(e.numOfBytes) + \" bytes of extraneous data starting at index \" + strconv.Itoa(e.index)\n}\n\n// wellformed checks whether the CBOR data item is well-formed.\n// allowExtraData indicates if extraneous data is allowed after the CBOR data item.\n// - use allowExtraData = true when using Decoder.Decode()\n// - use allowExtraData = false when using Unmarshal()\nfunc (d *decoder) wellformed(allowExtraData bool, checkBuiltinTags bool) error {\n\tif len(d.data) == d.off {\n\t\treturn io.EOF\n\t}\n\t_, err := d.wellformedInternal(0, checkBuiltinTags)\n\tif err == nil {\n\t\tif !allowExtraData && d.off != len(d.data) {\n\t\t\terr = &ExtraneousDataError{len(d.data) - d.off, d.off}\n\t\t}\n\t}\n\treturn err\n}\n\n// wellformedInternal checks data's well-formedness and returns max depth and error.\nfunc (d *decoder) wellformedInternal(depth int, checkBuiltinTags bool) (int, error) { //nolint:gocyclo\n\tt, _, val, indefiniteLength, err := d.wellformedHeadWithIndefiniteLengthFlag()\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\tswitch t {\n\tcase cborTypeByteString, cborTypeTextString:\n\t\tif indefiniteLength {\n\t\t\tif d.dm.indefLength == IndefLengthForbidden {\n\t\t\t\treturn 0, &IndefiniteLengthError{t}\n\t\t\t}\n\t\t\treturn d.wellformedIndefiniteString(t, depth, checkBuiltinTags)\n\t\t}\n\t\tvalInt := int(val)\n\t\tif valInt < 0 {\n\t\t\t// Detect integer overflow\n\t\t\treturn 0, errors.New(\"cbor: \" + t.String() + \" length \" + strconv.FormatUint(val, 10) + \" is too large, causing integer overflow\")\n\t\t}\n\t\tif len(d.data)-d.off < valInt { // valInt+off may overflow integer\n\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t}\n\t\td.off += valInt\n\n\tcase cborTypeArray, cborTypeMap:\n\t\tdepth++\n\t\tif depth > d.dm.maxNestedLevels {\n\t\t\treturn 0, &MaxNestedLevelError{d.dm.maxNestedLevels}\n\t\t}\n\n\t\tif indefiniteLength {\n\t\t\tif d.dm.indefLength == IndefLengthForbidden {\n\t\t\t\treturn 0, &IndefiniteLengthError{t}\n\t\t\t}\n\t\t\treturn d.wellformedIndefiniteArrayOrMap(t, depth, checkBuiltinTags)\n\t\t}\n\n\t\tvalInt := int(val)\n\t\tif valInt < 0 {\n\t\t\t// Detect integer overflow\n\t\t\treturn 0, errors.New(\"cbor: \" + t.String() + \" length \" + strconv.FormatUint(val, 10) + \" is too large, it would cause integer overflow\")\n\t\t}\n\n\t\tif t == cborTypeArray {\n\t\t\tif valInt > d.dm.maxArrayElements {\n\t\t\t\treturn 0, &MaxArrayElementsError{d.dm.maxArrayElements}\n\t\t\t}\n\t\t} else {\n\t\t\tif valInt > d.dm.maxMapPairs {\n\t\t\t\treturn 0, &MaxMapPairsError{d.dm.maxMapPairs}\n\t\t\t}\n\t\t}\n\n\t\tcount := 1\n\t\tif t == cborTypeMap {\n\t\t\tcount = 2\n\t\t}\n\t\tmaxDepth := depth\n\t\tfor j := 0; j < count; j++ {\n\t\t\tfor i := 0; i < valInt; i++ {\n\t\t\t\tvar dpt int\n\t\t\t\tif dpt, err = d.wellformedInternal(depth, checkBuiltinTags); err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\tif dpt > maxDepth {\n\t\t\t\t\tmaxDepth = dpt // Save max depth\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdepth = maxDepth\n\n\tcase cborTypeTag:\n\t\tif d.dm.tagsMd == TagsForbidden {\n\t\t\treturn 0, &TagsMdError{}\n\t\t}\n\n\t\ttagNum := val\n\n\t\t// Scan nested tag numbers to avoid recursion.\n\t\tfor {\n\t\t\tif len(d.data) == d.off { // Tag number must be followed by tag content.\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif checkBuiltinTags {\n\t\t\t\terr = validBuiltinTag(tagNum, d.data[d.off])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t}\n\t\t\tif d.dm.bignumTag == BignumTagForbidden && (tagNum == 2 || tagNum == 3) {\n\t\t\t\treturn 0, &UnacceptableDataItemError{\n\t\t\t\t\tCBORType: cborTypeTag.String(),\n\t\t\t\t\tMessage:  \"bignum\",\n\t\t\t\t}\n\t\t\t}\n\t\t\tif getType(d.data[d.off]) != cborTypeTag {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif _, _, tagNum, err = d.wellformedHead(); err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\tdepth++\n\t\t\tif depth > d.dm.maxNestedLevels {\n\t\t\t\treturn 0, &MaxNestedLevelError{d.dm.maxNestedLevels}\n\t\t\t}\n\t\t}\n\t\t// Check tag content.\n\t\treturn d.wellformedInternal(depth, checkBuiltinTags)\n\t}\n\n\treturn depth, nil\n}\n\n// wellformedIndefiniteString checks indefinite length byte/text string's well-formedness and returns max depth and error.\nfunc (d *decoder) wellformedIndefiniteString(t cborType, depth int, checkBuiltinTags bool) (int, error) {\n\tvar err error\n\tfor {\n\t\tif len(d.data) == d.off {\n\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t}\n\t\tif isBreakFlag(d.data[d.off]) {\n\t\t\td.off++\n\t\t\tbreak\n\t\t}\n\t\t// Peek ahead to get next type and indefinite length status.\n\t\tnt, ai := parseInitialByte(d.data[d.off])\n\t\tif t != nt {\n\t\t\treturn 0, &SyntaxError{\"cbor: wrong element type \" + nt.String() + \" for indefinite-length \" + t.String()}\n\t\t}\n\t\tif additionalInformation(ai).isIndefiniteLength() {\n\t\t\treturn 0, &SyntaxError{\"cbor: indefinite-length \" + t.String() + \" chunk is not definite-length\"}\n\t\t}\n\t\tif depth, err = d.wellformedInternal(depth, checkBuiltinTags); err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t}\n\treturn depth, nil\n}\n\n// wellformedIndefiniteArrayOrMap checks indefinite length array/map's well-formedness and returns max depth and error.\nfunc (d *decoder) wellformedIndefiniteArrayOrMap(t cborType, depth int, checkBuiltinTags bool) (int, error) {\n\tvar err error\n\tmaxDepth := depth\n\ti := 0\n\tfor {\n\t\tif len(d.data) == d.off {\n\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t}\n\t\tif isBreakFlag(d.data[d.off]) {\n\t\t\td.off++\n\t\t\tbreak\n\t\t}\n\t\tvar dpt int\n\t\tif dpt, err = d.wellformedInternal(depth, checkBuiltinTags); err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\tif dpt > maxDepth {\n\t\t\tmaxDepth = dpt\n\t\t}\n\t\ti++\n\t\tif t == cborTypeArray {\n\t\t\tif i > d.dm.maxArrayElements {\n\t\t\t\treturn 0, &MaxArrayElementsError{d.dm.maxArrayElements}\n\t\t\t}\n\t\t} else {\n\t\t\tif i%2 == 0 && i/2 > d.dm.maxMapPairs {\n\t\t\t\treturn 0, &MaxMapPairsError{d.dm.maxMapPairs}\n\t\t\t}\n\t\t}\n\t}\n\tif t == cborTypeMap && i%2 == 1 {\n\t\treturn 0, &SyntaxError{\"cbor: unexpected \\\"break\\\" code\"}\n\t}\n\treturn maxDepth, nil\n}\n\nfunc (d *decoder) wellformedHeadWithIndefiniteLengthFlag() (\n\tt cborType,\n\tai byte,\n\tval uint64,\n\tindefiniteLength bool,\n\terr error,\n) {\n\tt, ai, val, err = d.wellformedHead()\n\tif err != nil {\n\t\treturn\n\t}\n\tindefiniteLength = additionalInformation(ai).isIndefiniteLength()\n\treturn\n}\n\nfunc (d *decoder) wellformedHead() (t cborType, ai byte, val uint64, err error) {\n\tdataLen := len(d.data) - d.off\n\tif dataLen == 0 {\n\t\treturn 0, 0, 0, io.ErrUnexpectedEOF\n\t}\n\n\tt, ai = parseInitialByte(d.data[d.off])\n\tval = uint64(ai)\n\td.off++\n\tdataLen--\n\n\tif ai <= maxAdditionalInformationWithoutArgument {\n\t\treturn t, ai, val, nil\n\t}\n\n\tif ai == additionalInformationWith1ByteArgument {\n\t\tconst argumentSize = 1\n\t\tif dataLen < argumentSize {\n\t\t\treturn 0, 0, 0, io.ErrUnexpectedEOF\n\t\t}\n\t\tval = uint64(d.data[d.off])\n\t\td.off++\n\t\tif t == cborTypePrimitives && val < 32 {\n\t\t\treturn 0, 0, 0, &SyntaxError{\"cbor: invalid simple value \" + strconv.Itoa(int(val)) + \" for type \" + t.String()}\n\t\t}\n\t\treturn t, ai, val, nil\n\t}\n\n\tif ai == additionalInformationWith2ByteArgument {\n\t\tconst argumentSize = 2\n\t\tif dataLen < argumentSize {\n\t\t\treturn 0, 0, 0, io.ErrUnexpectedEOF\n\t\t}\n\t\tval = uint64(binary.BigEndian.Uint16(d.data[d.off : d.off+argumentSize]))\n\t\td.off += argumentSize\n\t\tif t == cborTypePrimitives {\n\t\t\tif err := d.acceptableFloat(float64(float16.Frombits(uint16(val)).Float32())); err != nil {\n\t\t\t\treturn 0, 0, 0, err\n\t\t\t}\n\t\t}\n\t\treturn t, ai, val, nil\n\t}\n\n\tif ai == additionalInformationWith4ByteArgument {\n\t\tconst argumentSize = 4\n\t\tif dataLen < argumentSize {\n\t\t\treturn 0, 0, 0, io.ErrUnexpectedEOF\n\t\t}\n\t\tval = uint64(binary.BigEndian.Uint32(d.data[d.off : d.off+argumentSize]))\n\t\td.off += argumentSize\n\t\tif t == cborTypePrimitives {\n\t\t\tif err := d.acceptableFloat(float64(math.Float32frombits(uint32(val)))); err != nil {\n\t\t\t\treturn 0, 0, 0, err\n\t\t\t}\n\t\t}\n\t\treturn t, ai, val, nil\n\t}\n\n\tif ai == additionalInformationWith8ByteArgument {\n\t\tconst argumentSize = 8\n\t\tif dataLen < argumentSize {\n\t\t\treturn 0, 0, 0, io.ErrUnexpectedEOF\n\t\t}\n\t\tval = binary.BigEndian.Uint64(d.data[d.off : d.off+argumentSize])\n\t\td.off += argumentSize\n\t\tif t == cborTypePrimitives {\n\t\t\tif err := d.acceptableFloat(math.Float64frombits(val)); err != nil {\n\t\t\t\treturn 0, 0, 0, err\n\t\t\t}\n\t\t}\n\t\treturn t, ai, val, nil\n\t}\n\n\tif additionalInformation(ai).isIndefiniteLength() {\n\t\tswitch t {\n\t\tcase cborTypePositiveInt, cborTypeNegativeInt, cborTypeTag:\n\t\t\treturn 0, 0, 0, &SyntaxError{\"cbor: invalid additional information \" + strconv.Itoa(int(ai)) + \" for type \" + t.String()}\n\t\tcase cborTypePrimitives: // 0xff (break code) should not be outside wellformedIndefinite().\n\t\t\treturn 0, 0, 0, &SyntaxError{\"cbor: unexpected \\\"break\\\" code\"}\n\t\t}\n\t\treturn t, ai, val, nil\n\t}\n\n\t// ai == 28, 29, 30\n\treturn 0, 0, 0, &SyntaxError{\"cbor: invalid additional information \" + strconv.Itoa(int(ai)) + \" for type \" + t.String()}\n}\n\nfunc (d *decoder) acceptableFloat(f float64) error {\n\tswitch {\n\tcase d.dm.nanDec == NaNDecodeForbidden && math.IsNaN(f):\n\t\treturn &UnacceptableDataItemError{\n\t\t\tCBORType: cborTypePrimitives.String(),\n\t\t\tMessage:  \"floating-point NaN\",\n\t\t}\n\tcase d.dm.infDec == InfDecodeForbidden && math.IsInf(f, 0):\n\t\treturn &UnacceptableDataItemError{\n\t\t\tCBORType: cborTypePrimitives.String(),\n\t\t\tMessage:  \"floating-point infinity\",\n\t\t}\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/.golangci.yaml",
    "content": "run:\n  timeout: 1m\n  tests: true\n\nlinters:\n  disable-all: true\n  enable:\n    - asciicheck\n    - errcheck\n    - forcetypeassert\n    - gocritic\n    - gofmt\n    - goimports\n    - gosimple\n    - govet\n    - ineffassign\n    - misspell\n    - revive\n    - staticcheck\n    - typecheck\n    - unused\n\nissues:\n  exclude-use-default: false\n  max-issues-per-linter: 0\n  max-same-issues: 10\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/CHANGELOG.md",
    "content": "# CHANGELOG\n\n## v1.0.0-rc1\n\nThis is the first logged release.  Major changes (including breaking changes)\nhave occurred since earlier tags.\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/CONTRIBUTING.md",
    "content": "# Contributing\n\nLogr is open to pull-requests, provided they fit within the intended scope of\nthe project.  Specifically, this library aims to be VERY small and minimalist,\nwith no external dependencies.\n\n## Compatibility\n\nThis project intends to follow [semantic versioning](http://semver.org) and\nis very strict about compatibility.  Any proposed changes MUST follow those\nrules.\n\n## Performance\n\nAs a logging library, logr must be as light-weight as possible.  Any proposed\ncode change must include results of running the [benchmark](./benchmark)\nbefore and after the change.\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/LICENSE",
    "content": "                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/README.md",
    "content": "# A minimal logging API for Go\n\n[![Go Reference](https://pkg.go.dev/badge/github.com/go-logr/logr.svg)](https://pkg.go.dev/github.com/go-logr/logr)\n[![Go Report Card](https://goreportcard.com/badge/github.com/go-logr/logr)](https://goreportcard.com/report/github.com/go-logr/logr)\n[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/go-logr/logr/badge)](https://securityscorecards.dev/viewer/?platform=github.com&org=go-logr&repo=logr)\n\nlogr offers an(other) opinion on how Go programs and libraries can do logging\nwithout becoming coupled to a particular logging implementation.  This is not\nan implementation of logging - it is an API.  In fact it is two APIs with two\ndifferent sets of users.\n\nThe `Logger` type is intended for application and library authors.  It provides\na relatively small API which can be used everywhere you want to emit logs.  It\ndefers the actual act of writing logs (to files, to stdout, or whatever) to the\n`LogSink` interface.\n\nThe `LogSink` interface is intended for logging library implementers.  It is a\npure interface which can be implemented by logging frameworks to provide the actual logging\nfunctionality.\n\nThis decoupling allows application and library developers to write code in\nterms of `logr.Logger` (which has very low dependency fan-out) while the\nimplementation of logging is managed \"up stack\" (e.g. in or near `main()`.)\nApplication developers can then switch out implementations as necessary.\n\nMany people assert that libraries should not be logging, and as such efforts\nlike this are pointless.  Those people are welcome to convince the authors of\nthe tens-of-thousands of libraries that *DO* write logs that they are all\nwrong.  In the meantime, logr takes a more practical approach.\n\n## Typical usage\n\nSomewhere, early in an application's life, it will make a decision about which\nlogging library (implementation) it actually wants to use.  Something like:\n\n```\n    func main() {\n        // ... other setup code ...\n\n        // Create the \"root\" logger.  We have chosen the \"logimpl\" implementation,\n        // which takes some initial parameters and returns a logr.Logger.\n        logger := logimpl.New(param1, param2)\n\n        // ... other setup code ...\n```\n\nMost apps will call into other libraries, create structures to govern the flow,\netc.  The `logr.Logger` object can be passed to these other libraries, stored\nin structs, or even used as a package-global variable, if needed.  For example:\n\n```\n    app := createTheAppObject(logger)\n    app.Run()\n```\n\nOutside of this early setup, no other packages need to know about the choice of\nimplementation.  They write logs in terms of the `logr.Logger` that they\nreceived:\n\n```\n    type appObject struct {\n        // ... other fields ...\n        logger logr.Logger\n        // ... other fields ...\n    }\n\n    func (app *appObject) Run() {\n        app.logger.Info(\"starting up\", \"timestamp\", time.Now())\n\n        // ... app code ...\n```\n\n## Background\n\nIf the Go standard library had defined an interface for logging, this project\nprobably would not be needed.  Alas, here we are.\n\nWhen the Go developers started developing such an interface with\n[slog](https://github.com/golang/go/issues/56345), they adopted some of the\nlogr design but also left out some parts and changed others:\n\n| Feature | logr | slog |\n|---------|------|------|\n| High-level API | `Logger` (passed by value) | `Logger` (passed by [pointer](https://github.com/golang/go/issues/59126)) |\n| Low-level API | `LogSink` | `Handler` |\n| Stack unwinding | done by `LogSink` | done by `Logger` |\n| Skipping helper functions | `WithCallDepth`, `WithCallStackHelper` | [not supported by Logger](https://github.com/golang/go/issues/59145) |\n| Generating a value for logging on demand | `Marshaler` | `LogValuer` |\n| Log levels | >= 0, higher meaning \"less important\" | positive and negative, with 0 for \"info\" and higher meaning \"more important\" |\n| Error log entries | always logged, don't have a verbosity level | normal log entries with level >= `LevelError` |\n| Passing logger via context | `NewContext`, `FromContext` | no API |\n| Adding a name to a logger | `WithName` | no API |\n| Modify verbosity of log entries in a call chain | `V` | no API |\n| Grouping of key/value pairs | not supported | `WithGroup`, `GroupValue` |\n| Pass context for extracting additional values | no API | API variants like `InfoCtx` |\n\nThe high-level slog API is explicitly meant to be one of many different APIs\nthat can be layered on top of a shared `slog.Handler`. logr is one such\nalternative API, with [interoperability](#slog-interoperability) provided by\nsome conversion functions.\n\n### Inspiration\n\nBefore you consider this package, please read [this blog post by the\ninimitable Dave Cheney][warning-makes-no-sense].  We really appreciate what\nhe has to say, and it largely aligns with our own experiences.\n\n### Differences from Dave's ideas\n\nThe main differences are:\n\n1. Dave basically proposes doing away with the notion of a logging API in favor\nof `fmt.Printf()`.  We disagree, especially when you consider things like output\nlocations, timestamps, file and line decorations, and structured logging.  This\npackage restricts the logging API to just 2 types of logs: info and error.\n\nInfo logs are things you want to tell the user which are not errors.  Error\nlogs are, well, errors.  If your code receives an `error` from a subordinate\nfunction call and is logging that `error` *and not returning it*, use error\nlogs.\n\n2. Verbosity-levels on info logs.  This gives developers a chance to indicate\narbitrary grades of importance for info logs, without assigning names with\nsemantic meaning such as \"warning\", \"trace\", and \"debug.\"  Superficially this\nmay feel very similar, but the primary difference is the lack of semantics.\nBecause verbosity is a numerical value, it's safe to assume that an app running\nwith higher verbosity means more (and less important) logs will be generated.\n\n## Implementations (non-exhaustive)\n\nThere are implementations for the following logging libraries:\n\n- **a function** (can bridge to non-structured libraries): [funcr](https://github.com/go-logr/logr/tree/master/funcr)\n- **a testing.T** (for use in Go tests, with JSON-like output): [testr](https://github.com/go-logr/logr/tree/master/testr)\n- **github.com/google/glog**: [glogr](https://github.com/go-logr/glogr)\n- **k8s.io/klog** (for Kubernetes): [klogr](https://git.k8s.io/klog/klogr)\n- **a testing.T** (with klog-like text output): [ktesting](https://git.k8s.io/klog/ktesting)\n- **go.uber.org/zap**: [zapr](https://github.com/go-logr/zapr)\n- **log** (the Go standard library logger): [stdr](https://github.com/go-logr/stdr)\n- **github.com/sirupsen/logrus**: [logrusr](https://github.com/bombsimon/logrusr)\n- **github.com/wojas/genericr**: [genericr](https://github.com/wojas/genericr) (makes it easy to implement your own backend)\n- **logfmt** (Heroku style [logging](https://www.brandur.org/logfmt)): [logfmtr](https://github.com/iand/logfmtr)\n- **github.com/rs/zerolog**: [zerologr](https://github.com/go-logr/zerologr)\n- **github.com/go-kit/log**: [gokitlogr](https://github.com/tonglil/gokitlogr) (also compatible with github.com/go-kit/kit/log since v0.12.0)\n- **bytes.Buffer** (writing to a buffer): [bufrlogr](https://github.com/tonglil/buflogr) (useful for ensuring values were logged, like during testing)\n\n## slog interoperability\n\nInteroperability goes both ways, using the `logr.Logger` API with a `slog.Handler`\nand using the `slog.Logger` API with a `logr.LogSink`. `FromSlogHandler` and\n`ToSlogHandler` convert between a `logr.Logger` and a `slog.Handler`.\nAs usual, `slog.New` can be used to wrap such a `slog.Handler` in the high-level\nslog API.\n\n### Using a `logr.LogSink` as backend for slog\n\nIdeally, a logr sink implementation should support both logr and slog by\nimplementing both the normal logr interface(s) and `SlogSink`.  Because\nof a conflict in the parameters of the common `Enabled` method, it is [not\npossible to implement both slog.Handler and logr.Sink in the same\ntype](https://github.com/golang/go/issues/59110).\n\nIf both are supported, log calls can go from the high-level APIs to the backend\nwithout the need to convert parameters. `FromSlogHandler` and `ToSlogHandler` can\nconvert back and forth without adding additional wrappers, with one exception:\nwhen `Logger.V` was used to adjust the verbosity for a `slog.Handler`, then\n`ToSlogHandler` has to use a wrapper which adjusts the verbosity for future\nlog calls.\n\nSuch an implementation should also support values that implement specific\ninterfaces from both packages for logging (`logr.Marshaler`, `slog.LogValuer`,\n`slog.GroupValue`). logr does not convert those.\n\nNot supporting slog has several drawbacks:\n- Recording source code locations works correctly if the handler gets called\n  through `slog.Logger`, but may be wrong in other cases. That's because a\n  `logr.Sink` does its own stack unwinding instead of using the program counter\n  provided by the high-level API.\n- slog levels <= 0 can be mapped to logr levels by negating the level without a\n  loss of information. But all slog levels > 0 (e.g. `slog.LevelWarning` as\n  used by `slog.Logger.Warn`) must be mapped to 0 before calling the sink\n  because logr does not support \"more important than info\" levels.\n- The slog group concept is supported by prefixing each key in a key/value\n  pair with the group names, separated by a dot. For structured output like\n  JSON it would be better to group the key/value pairs inside an object.\n- Special slog values and interfaces don't work as expected.\n- The overhead is likely to be higher.\n\nThese drawbacks are severe enough that applications using a mixture of slog and\nlogr should switch to a different backend.\n\n### Using a `slog.Handler` as backend for logr\n\nUsing a plain `slog.Handler` without support for logr works better than the\nother direction:\n- All logr verbosity levels can be mapped 1:1 to their corresponding slog level\n  by negating them.\n- Stack unwinding is done by the `SlogSink` and the resulting program\n  counter is passed to the `slog.Handler`.\n- Names added via `Logger.WithName` are gathered and recorded in an additional\n  attribute with `logger` as key and the names separated by slash as value.\n- `Logger.Error` is turned into a log record with `slog.LevelError` as level\n  and an additional attribute with `err` as key, if an error was provided.\n\nThe main drawback is that `logr.Marshaler` will not be supported. Types should\nideally support both `logr.Marshaler` and `slog.Valuer`. If compatibility\nwith logr implementations without slog support is not important, then\n`slog.Valuer` is sufficient.\n\n### Context support for slog\n\nStoring a logger in a `context.Context` is not supported by\nslog. `NewContextWithSlogLogger` and `FromContextAsSlogLogger` can be\nused to fill this gap. They store and retrieve a `slog.Logger` pointer\nunder the same context key that is also used by `NewContext` and\n`FromContext` for `logr.Logger` value.\n\nWhen `NewContextWithSlogLogger` is followed by `FromContext`, the latter will\nautomatically convert the `slog.Logger` to a\n`logr.Logger`. `FromContextAsSlogLogger` does the same for the other direction.\n\nWith this approach, binaries which use either slog or logr are as efficient as\npossible with no unnecessary allocations. This is also why the API stores a\n`slog.Logger` pointer: when storing a `slog.Handler`, creating a `slog.Logger`\non retrieval would need to allocate one.\n\nThe downside is that switching back and forth needs more allocations. Because\nlogr is the API that is already in use by different packages, in particular\nKubernetes, the recommendation is to use the `logr.Logger` API in code which\nuses contextual logging.\n\nAn alternative to adding values to a logger and storing that logger in the\ncontext is to store the values in the context and to configure a logging\nbackend to extract those values when emitting log entries. This only works when\nlog calls are passed the context, which is not supported by the logr API.\n\nWith the slog API, it is possible, but not\nrequired. https://github.com/veqryn/slog-context is a package for slog which\nprovides additional support code for this approach. It also contains wrappers\nfor the context functions in logr, so developers who prefer to not use the logr\nAPIs directly can use those instead and the resulting code will still be\ninteroperable with logr.\n\n## FAQ\n\n### Conceptual\n\n#### Why structured logging?\n\n- **Structured logs are more easily queryable**: Since you've got\n  key-value pairs, it's much easier to query your structured logs for\n  particular values by filtering on the contents of a particular key --\n  think searching request logs for error codes, Kubernetes reconcilers for\n  the name and namespace of the reconciled object, etc.\n\n- **Structured logging makes it easier to have cross-referenceable logs**:\n  Similarly to searchability, if you maintain conventions around your\n  keys, it becomes easy to gather all log lines related to a particular\n  concept.\n\n- **Structured logs allow better dimensions of filtering**: if you have\n  structure to your logs, you've got more precise control over how much\n  information is logged -- you might choose in a particular configuration\n  to log certain keys but not others, only log lines where a certain key\n  matches a certain value, etc., instead of just having v-levels and names\n  to key off of.\n\n- **Structured logs better represent structured data**: sometimes, the\n  data that you want to log is inherently structured (think tuple-link\n  objects.)  Structured logs allow you to preserve that structure when\n  outputting.\n\n#### Why V-levels?\n\n**V-levels give operators an easy way to control the chattiness of log\noperations**.  V-levels provide a way for a given package to distinguish\nthe relative importance or verbosity of a given log message.  Then, if\na particular logger or package is logging too many messages, the user\nof the package can simply change the v-levels for that library.\n\n#### Why not named levels, like Info/Warning/Error?\n\nRead [Dave Cheney's post][warning-makes-no-sense].  Then read [Differences\nfrom Dave's ideas](#differences-from-daves-ideas).\n\n#### Why not allow format strings, too?\n\n**Format strings negate many of the benefits of structured logs**:\n\n- They're not easily searchable without resorting to fuzzy searching,\n  regular expressions, etc.\n\n- They don't store structured data well, since contents are flattened into\n  a string.\n\n- They're not cross-referenceable.\n\n- They don't compress easily, since the message is not constant.\n\n(Unless you turn positional parameters into key-value pairs with numerical\nkeys, at which point you've gotten key-value logging with meaningless\nkeys.)\n\n### Practical\n\n#### Why key-value pairs, and not a map?\n\nKey-value pairs are *much* easier to optimize, especially around\nallocations.  Zap (a structured logger that inspired logr's interface) has\n[performance measurements](https://github.com/uber-go/zap#performance)\nthat show this quite nicely.\n\nWhile the interface ends up being a little less obvious, you get\npotentially better performance, plus avoid making users type\n`map[string]string{}` every time they want to log.\n\n#### What if my V-levels differ between libraries?\n\nThat's fine.  Control your V-levels on a per-logger basis, and use the\n`WithName` method to pass different loggers to different libraries.\n\nGenerally, you should take care to ensure that you have relatively\nconsistent V-levels within a given logger, however, as this makes deciding\non what verbosity of logs to request easier.\n\n#### But I really want to use a format string!\n\nThat's not actually a question.  Assuming your question is \"how do\nI convert my mental model of logging with format strings to logging with\nconstant messages\":\n\n1. Figure out what the error actually is, as you'd write in a TL;DR style,\n   and use that as a message.\n\n2. For every place you'd write a format specifier, look to the word before\n   it, and add that as a key value pair.\n\nFor instance, consider the following examples (all taken from spots in the\nKubernetes codebase):\n\n- `klog.V(4).Infof(\"Client is returning errors: code %v, error %v\",\n  responseCode, err)` becomes `logger.Error(err, \"client returned an\n  error\", \"code\", responseCode)`\n\n- `klog.V(4).Infof(\"Got a Retry-After %ds response for attempt %d to %v\",\n  seconds, retries, url)` becomes `logger.V(4).Info(\"got a retry-after\n  response when requesting url\", \"attempt\", retries, \"after\n  seconds\", seconds, \"url\", url)`\n\nIf you *really* must use a format string, use it in a key's value, and\ncall `fmt.Sprintf` yourself.  For instance: `log.Printf(\"unable to\nreflect over type %T\")` becomes `logger.Info(\"unable to reflect over\ntype\", \"type\", fmt.Sprintf(\"%T\"))`.  In general though, the cases where\nthis is necessary should be few and far between.\n\n#### How do I choose my V-levels?\n\nThis is basically the only hard constraint: increase V-levels to denote\nmore verbose or more debug-y logs.\n\nOtherwise, you can start out with `0` as \"you always want to see this\",\n`1` as \"common logging that you might *possibly* want to turn off\", and\n`10` as \"I would like to performance-test your log collection stack.\"\n\nThen gradually choose levels in between as you need them, working your way\ndown from 10 (for debug and trace style logs) and up from 1 (for chattier\ninfo-type logs). For reference, slog pre-defines -4 for debug logs\n(corresponds to 4 in logr), which matches what is\n[recommended for Kubernetes](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-instrumentation/logging.md#what-method-to-use).\n\n#### How do I choose my keys?\n\nKeys are fairly flexible, and can hold more or less any string\nvalue. For best compatibility with implementations and consistency\nwith existing code in other projects, there are a few conventions you\nshould consider.\n\n- Make your keys human-readable.\n- Constant keys are generally a good idea.\n- Be consistent across your codebase.\n- Keys should naturally match parts of the message string.\n- Use lower case for simple keys and\n  [lowerCamelCase](https://en.wiktionary.org/wiki/lowerCamelCase) for\n  more complex ones. Kubernetes is one example of a project that has\n  [adopted that\n  convention](https://github.com/kubernetes/community/blob/HEAD/contributors/devel/sig-instrumentation/migration-to-structured-logging.md#name-arguments).\n\nWhile key names are mostly unrestricted (and spaces are acceptable),\nit's generally a good idea to stick to printable ascii characters, or at\nleast match the general character set of your log lines.\n\n#### Why should keys be constant values?\n\nThe point of structured logging is to make later log processing easier.  Your\nkeys are, effectively, the schema of each log message.  If you use different\nkeys across instances of the same log line, you will make your structured logs\nmuch harder to use.  `Sprintf()` is for values, not for keys!\n\n#### Why is this not a pure interface?\n\nThe Logger type is implemented as a struct in order to allow the Go compiler to\noptimize things like high-V `Info` logs that are not triggered.  Not all of\nthese implementations are implemented yet, but this structure was suggested as\na way to ensure they *can* be implemented.  All of the real work is behind the\n`LogSink` interface.\n\n[warning-makes-no-sense]: http://dave.cheney.net/2015/11/05/lets-talk-about-logging\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/SECURITY.md",
    "content": "# Security Policy\n\nIf you have discovered a security vulnerability in this project, please report it\nprivately. **Do not disclose it as a public issue.** This gives us time to work with you\nto fix the issue before public exposure, reducing the chance that the exploit will be\nused before a patch is released.\n\nYou may submit the report in the following ways:\n\n- send an email to go-logr-security@googlegroups.com\n- send us a [private vulnerability report](https://github.com/go-logr/logr/security/advisories/new)\n\nPlease provide the following information in your report:\n\n- A description of the vulnerability and its impact\n- How to reproduce the issue\n\nWe ask that you give us 90 days to work on a fix before public exposure.\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/context.go",
    "content": "/*\nCopyright 2023 The logr Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage logr\n\n// contextKey is how we find Loggers in a context.Context. With Go < 1.21,\n// the value is always a Logger value. With Go >= 1.21, the value can be a\n// Logger value or a slog.Logger pointer.\ntype contextKey struct{}\n\n// notFoundError exists to carry an IsNotFound method.\ntype notFoundError struct{}\n\nfunc (notFoundError) Error() string {\n\treturn \"no logr.Logger was present\"\n}\n\nfunc (notFoundError) IsNotFound() bool {\n\treturn true\n}\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/context_noslog.go",
    "content": "//go:build !go1.21\n// +build !go1.21\n\n/*\nCopyright 2019 The logr Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage logr\n\nimport (\n\t\"context\"\n)\n\n// FromContext returns a Logger from ctx or an error if no Logger is found.\nfunc FromContext(ctx context.Context) (Logger, error) {\n\tif v, ok := ctx.Value(contextKey{}).(Logger); ok {\n\t\treturn v, nil\n\t}\n\n\treturn Logger{}, notFoundError{}\n}\n\n// FromContextOrDiscard returns a Logger from ctx.  If no Logger is found, this\n// returns a Logger that discards all log messages.\nfunc FromContextOrDiscard(ctx context.Context) Logger {\n\tif v, ok := ctx.Value(contextKey{}).(Logger); ok {\n\t\treturn v\n\t}\n\n\treturn Discard()\n}\n\n// NewContext returns a new Context, derived from ctx, which carries the\n// provided Logger.\nfunc NewContext(ctx context.Context, logger Logger) context.Context {\n\treturn context.WithValue(ctx, contextKey{}, logger)\n}\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/context_slog.go",
    "content": "//go:build go1.21\n// +build go1.21\n\n/*\nCopyright 2019 The logr Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage logr\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"log/slog\"\n)\n\n// FromContext returns a Logger from ctx or an error if no Logger is found.\nfunc FromContext(ctx context.Context) (Logger, error) {\n\tv := ctx.Value(contextKey{})\n\tif v == nil {\n\t\treturn Logger{}, notFoundError{}\n\t}\n\n\tswitch v := v.(type) {\n\tcase Logger:\n\t\treturn v, nil\n\tcase *slog.Logger:\n\t\treturn FromSlogHandler(v.Handler()), nil\n\tdefault:\n\t\t// Not reached.\n\t\tpanic(fmt.Sprintf(\"unexpected value type for logr context key: %T\", v))\n\t}\n}\n\n// FromContextAsSlogLogger returns a slog.Logger from ctx or nil if no such Logger is found.\nfunc FromContextAsSlogLogger(ctx context.Context) *slog.Logger {\n\tv := ctx.Value(contextKey{})\n\tif v == nil {\n\t\treturn nil\n\t}\n\n\tswitch v := v.(type) {\n\tcase Logger:\n\t\treturn slog.New(ToSlogHandler(v))\n\tcase *slog.Logger:\n\t\treturn v\n\tdefault:\n\t\t// Not reached.\n\t\tpanic(fmt.Sprintf(\"unexpected value type for logr context key: %T\", v))\n\t}\n}\n\n// FromContextOrDiscard returns a Logger from ctx.  If no Logger is found, this\n// returns a Logger that discards all log messages.\nfunc FromContextOrDiscard(ctx context.Context) Logger {\n\tif logger, err := FromContext(ctx); err == nil {\n\t\treturn logger\n\t}\n\treturn Discard()\n}\n\n// NewContext returns a new Context, derived from ctx, which carries the\n// provided Logger.\nfunc NewContext(ctx context.Context, logger Logger) context.Context {\n\treturn context.WithValue(ctx, contextKey{}, logger)\n}\n\n// NewContextWithSlogLogger returns a new Context, derived from ctx, which carries the\n// provided slog.Logger.\nfunc NewContextWithSlogLogger(ctx context.Context, logger *slog.Logger) context.Context {\n\treturn context.WithValue(ctx, contextKey{}, logger)\n}\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/discard.go",
    "content": "/*\nCopyright 2020 The logr Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage logr\n\n// Discard returns a Logger that discards all messages logged to it.  It can be\n// used whenever the caller is not interested in the logs.  Logger instances\n// produced by this function always compare as equal.\nfunc Discard() Logger {\n\treturn New(nil)\n}\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/logr.go",
    "content": "/*\nCopyright 2019 The logr Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// This design derives from Dave Cheney's blog:\n//     http://dave.cheney.net/2015/11/05/lets-talk-about-logging\n\n// Package logr defines a general-purpose logging API and abstract interfaces\n// to back that API.  Packages in the Go ecosystem can depend on this package,\n// while callers can implement logging with whatever backend is appropriate.\n//\n// # Usage\n//\n// Logging is done using a Logger instance.  Logger is a concrete type with\n// methods, which defers the actual logging to a LogSink interface.  The main\n// methods of Logger are Info() and Error().  Arguments to Info() and Error()\n// are key/value pairs rather than printf-style formatted strings, emphasizing\n// \"structured logging\".\n//\n// With Go's standard log package, we might write:\n//\n//\tlog.Printf(\"setting target value %s\", targetValue)\n//\n// With logr's structured logging, we'd write:\n//\n//\tlogger.Info(\"setting target\", \"value\", targetValue)\n//\n// Errors are much the same.  Instead of:\n//\n//\tlog.Printf(\"failed to open the pod bay door for user %s: %v\", user, err)\n//\n// We'd write:\n//\n//\tlogger.Error(err, \"failed to open the pod bay door\", \"user\", user)\n//\n// Info() and Error() are very similar, but they are separate methods so that\n// LogSink implementations can choose to do things like attach additional\n// information (such as stack traces) on calls to Error(). Error() messages are\n// always logged, regardless of the current verbosity.  If there is no error\n// instance available, passing nil is valid.\n//\n// # Verbosity\n//\n// Often we want to log information only when the application in \"verbose\n// mode\".  To write log lines that are more verbose, Logger has a V() method.\n// The higher the V-level of a log line, the less critical it is considered.\n// Log-lines with V-levels that are not enabled (as per the LogSink) will not\n// be written.  Level V(0) is the default, and logger.V(0).Info() has the same\n// meaning as logger.Info().  Negative V-levels have the same meaning as V(0).\n// Error messages do not have a verbosity level and are always logged.\n//\n// Where we might have written:\n//\n//\tif flVerbose >= 2 {\n//\t    log.Printf(\"an unusual thing happened\")\n//\t}\n//\n// We can write:\n//\n//\tlogger.V(2).Info(\"an unusual thing happened\")\n//\n// # Logger Names\n//\n// Logger instances can have name strings so that all messages logged through\n// that instance have additional context.  For example, you might want to add\n// a subsystem name:\n//\n//\tlogger.WithName(\"compactor\").Info(\"started\", \"time\", time.Now())\n//\n// The WithName() method returns a new Logger, which can be passed to\n// constructors or other functions for further use.  Repeated use of WithName()\n// will accumulate name \"segments\".  These name segments will be joined in some\n// way by the LogSink implementation.  It is strongly recommended that name\n// segments contain simple identifiers (letters, digits, and hyphen), and do\n// not contain characters that could muddle the log output or confuse the\n// joining operation (e.g. whitespace, commas, periods, slashes, brackets,\n// quotes, etc).\n//\n// # Saved Values\n//\n// Logger instances can store any number of key/value pairs, which will be\n// logged alongside all messages logged through that instance.  For example,\n// you might want to create a Logger instance per managed object:\n//\n// With the standard log package, we might write:\n//\n//\tlog.Printf(\"decided to set field foo to value %q for object %s/%s\",\n//\t    targetValue, object.Namespace, object.Name)\n//\n// With logr we'd write:\n//\n//\t// Elsewhere: set up the logger to log the object name.\n//\tobj.logger = mainLogger.WithValues(\n//\t    \"name\", obj.name, \"namespace\", obj.namespace)\n//\n//\t// later on...\n//\tobj.logger.Info(\"setting foo\", \"value\", targetValue)\n//\n// # Best Practices\n//\n// Logger has very few hard rules, with the goal that LogSink implementations\n// might have a lot of freedom to differentiate.  There are, however, some\n// things to consider.\n//\n// The log message consists of a constant message attached to the log line.\n// This should generally be a simple description of what's occurring, and should\n// never be a format string.  Variable information can then be attached using\n// named values.\n//\n// Keys are arbitrary strings, but should generally be constant values.  Values\n// may be any Go value, but how the value is formatted is determined by the\n// LogSink implementation.\n//\n// Logger instances are meant to be passed around by value. Code that receives\n// such a value can call its methods without having to check whether the\n// instance is ready for use.\n//\n// The zero logger (= Logger{}) is identical to Discard() and discards all log\n// entries. Code that receives a Logger by value can simply call it, the methods\n// will never crash. For cases where passing a logger is optional, a pointer to Logger\n// should be used.\n//\n// # Key Naming Conventions\n//\n// Keys are not strictly required to conform to any specification or regex, but\n// it is recommended that they:\n//   - be human-readable and meaningful (not auto-generated or simple ordinals)\n//   - be constant (not dependent on input data)\n//   - contain only printable characters\n//   - not contain whitespace or punctuation\n//   - use lower case for simple keys and lowerCamelCase for more complex ones\n//\n// These guidelines help ensure that log data is processed properly regardless\n// of the log implementation.  For example, log implementations will try to\n// output JSON data or will store data for later database (e.g. SQL) queries.\n//\n// While users are generally free to use key names of their choice, it's\n// generally best to avoid using the following keys, as they're frequently used\n// by implementations:\n//   - \"caller\": the calling information (file/line) of a particular log line\n//   - \"error\": the underlying error value in the `Error` method\n//   - \"level\": the log level\n//   - \"logger\": the name of the associated logger\n//   - \"msg\": the log message\n//   - \"stacktrace\": the stack trace associated with a particular log line or\n//     error (often from the `Error` message)\n//   - \"ts\": the timestamp for a log line\n//\n// Implementations are encouraged to make use of these keys to represent the\n// above concepts, when necessary (for example, in a pure-JSON output form, it\n// would be necessary to represent at least message and timestamp as ordinary\n// named values).\n//\n// # Break Glass\n//\n// Implementations may choose to give callers access to the underlying\n// logging implementation.  The recommended pattern for this is:\n//\n//\t// Underlier exposes access to the underlying logging implementation.\n//\t// Since callers only have a logr.Logger, they have to know which\n//\t// implementation is in use, so this interface is less of an abstraction\n//\t// and more of way to test type conversion.\n//\ttype Underlier interface {\n//\t    GetUnderlying() <underlying-type>\n//\t}\n//\n// Logger grants access to the sink to enable type assertions like this:\n//\n//\tfunc DoSomethingWithImpl(log logr.Logger) {\n//\t    if underlier, ok := log.GetSink().(impl.Underlier); ok {\n//\t       implLogger := underlier.GetUnderlying()\n//\t       ...\n//\t    }\n//\t}\n//\n// Custom `With*` functions can be implemented by copying the complete\n// Logger struct and replacing the sink in the copy:\n//\n//\t// WithFooBar changes the foobar parameter in the log sink and returns a\n//\t// new logger with that modified sink.  It does nothing for loggers where\n//\t// the sink doesn't support that parameter.\n//\tfunc WithFoobar(log logr.Logger, foobar int) logr.Logger {\n//\t   if foobarLogSink, ok := log.GetSink().(FoobarSink); ok {\n//\t      log = log.WithSink(foobarLogSink.WithFooBar(foobar))\n//\t   }\n//\t   return log\n//\t}\n//\n// Don't use New to construct a new Logger with a LogSink retrieved from an\n// existing Logger. Source code attribution might not work correctly and\n// unexported fields in Logger get lost.\n//\n// Beware that the same LogSink instance may be shared by different logger\n// instances. Calling functions that modify the LogSink will affect all of\n// those.\npackage logr\n\n// New returns a new Logger instance.  This is primarily used by libraries\n// implementing LogSink, rather than end users.  Passing a nil sink will create\n// a Logger which discards all log lines.\nfunc New(sink LogSink) Logger {\n\tlogger := Logger{}\n\tlogger.setSink(sink)\n\tif sink != nil {\n\t\tsink.Init(runtimeInfo)\n\t}\n\treturn logger\n}\n\n// setSink stores the sink and updates any related fields. It mutates the\n// logger and thus is only safe to use for loggers that are not currently being\n// used concurrently.\nfunc (l *Logger) setSink(sink LogSink) {\n\tl.sink = sink\n}\n\n// GetSink returns the stored sink.\nfunc (l Logger) GetSink() LogSink {\n\treturn l.sink\n}\n\n// WithSink returns a copy of the logger with the new sink.\nfunc (l Logger) WithSink(sink LogSink) Logger {\n\tl.setSink(sink)\n\treturn l\n}\n\n// Logger is an interface to an abstract logging implementation.  This is a\n// concrete type for performance reasons, but all the real work is passed on to\n// a LogSink.  Implementations of LogSink should provide their own constructors\n// that return Logger, not LogSink.\n//\n// The underlying sink can be accessed through GetSink and be modified through\n// WithSink. This enables the implementation of custom extensions (see \"Break\n// Glass\" in the package documentation). Normally the sink should be used only\n// indirectly.\ntype Logger struct {\n\tsink  LogSink\n\tlevel int\n}\n\n// Enabled tests whether this Logger is enabled.  For example, commandline\n// flags might be used to set the logging verbosity and disable some info logs.\nfunc (l Logger) Enabled() bool {\n\t// Some implementations of LogSink look at the caller in Enabled (e.g.\n\t// different verbosity levels per package or file), but we only pass one\n\t// CallDepth in (via Init).  This means that all calls from Logger to the\n\t// LogSink's Enabled, Info, and Error methods must have the same number of\n\t// frames.  In other words, Logger methods can't call other Logger methods\n\t// which call these LogSink methods unless we do it the same in all paths.\n\treturn l.sink != nil && l.sink.Enabled(l.level)\n}\n\n// Info logs a non-error message with the given key/value pairs as context.\n//\n// The msg argument should be used to add some constant description to the log\n// line.  The key/value pairs can then be used to add additional variable\n// information.  The key/value pairs must alternate string keys and arbitrary\n// values.\nfunc (l Logger) Info(msg string, keysAndValues ...any) {\n\tif l.sink == nil {\n\t\treturn\n\t}\n\tif l.sink.Enabled(l.level) { // see comment in Enabled\n\t\tif withHelper, ok := l.sink.(CallStackHelperLogSink); ok {\n\t\t\twithHelper.GetCallStackHelper()()\n\t\t}\n\t\tl.sink.Info(l.level, msg, keysAndValues...)\n\t}\n}\n\n// Error logs an error, with the given message and key/value pairs as context.\n// It functions similarly to Info, but may have unique behavior, and should be\n// preferred for logging errors (see the package documentations for more\n// information). The log message will always be emitted, regardless of\n// verbosity level.\n//\n// The msg argument should be used to add context to any underlying error,\n// while the err argument should be used to attach the actual error that\n// triggered this log line, if present. The err parameter is optional\n// and nil may be passed instead of an error instance.\nfunc (l Logger) Error(err error, msg string, keysAndValues ...any) {\n\tif l.sink == nil {\n\t\treturn\n\t}\n\tif withHelper, ok := l.sink.(CallStackHelperLogSink); ok {\n\t\twithHelper.GetCallStackHelper()()\n\t}\n\tl.sink.Error(err, msg, keysAndValues...)\n}\n\n// V returns a new Logger instance for a specific verbosity level, relative to\n// this Logger.  In other words, V-levels are additive.  A higher verbosity\n// level means a log message is less important.  Negative V-levels are treated\n// as 0.\nfunc (l Logger) V(level int) Logger {\n\tif l.sink == nil {\n\t\treturn l\n\t}\n\tif level < 0 {\n\t\tlevel = 0\n\t}\n\tl.level += level\n\treturn l\n}\n\n// GetV returns the verbosity level of the logger. If the logger's LogSink is\n// nil as in the Discard logger, this will always return 0.\nfunc (l Logger) GetV() int {\n\t// 0 if l.sink nil because of the if check in V above.\n\treturn l.level\n}\n\n// WithValues returns a new Logger instance with additional key/value pairs.\n// See Info for documentation on how key/value pairs work.\nfunc (l Logger) WithValues(keysAndValues ...any) Logger {\n\tif l.sink == nil {\n\t\treturn l\n\t}\n\tl.setSink(l.sink.WithValues(keysAndValues...))\n\treturn l\n}\n\n// WithName returns a new Logger instance with the specified name element added\n// to the Logger's name.  Successive calls with WithName append additional\n// suffixes to the Logger's name.  It's strongly recommended that name segments\n// contain only letters, digits, and hyphens (see the package documentation for\n// more information).\nfunc (l Logger) WithName(name string) Logger {\n\tif l.sink == nil {\n\t\treturn l\n\t}\n\tl.setSink(l.sink.WithName(name))\n\treturn l\n}\n\n// WithCallDepth returns a Logger instance that offsets the call stack by the\n// specified number of frames when logging call site information, if possible.\n// This is useful for users who have helper functions between the \"real\" call\n// site and the actual calls to Logger methods.  If depth is 0 the attribution\n// should be to the direct caller of this function.  If depth is 1 the\n// attribution should skip 1 call frame, and so on.  Successive calls to this\n// are additive.\n//\n// If the underlying log implementation supports a WithCallDepth(int) method,\n// it will be called and the result returned.  If the implementation does not\n// support CallDepthLogSink, the original Logger will be returned.\n//\n// To skip one level, WithCallStackHelper() should be used instead of\n// WithCallDepth(1) because it works with implementions that support the\n// CallDepthLogSink and/or CallStackHelperLogSink interfaces.\nfunc (l Logger) WithCallDepth(depth int) Logger {\n\tif l.sink == nil {\n\t\treturn l\n\t}\n\tif withCallDepth, ok := l.sink.(CallDepthLogSink); ok {\n\t\tl.setSink(withCallDepth.WithCallDepth(depth))\n\t}\n\treturn l\n}\n\n// WithCallStackHelper returns a new Logger instance that skips the direct\n// caller when logging call site information, if possible.  This is useful for\n// users who have helper functions between the \"real\" call site and the actual\n// calls to Logger methods and want to support loggers which depend on marking\n// each individual helper function, like loggers based on testing.T.\n//\n// In addition to using that new logger instance, callers also must call the\n// returned function.\n//\n// If the underlying log implementation supports a WithCallDepth(int) method,\n// WithCallDepth(1) will be called to produce a new logger. If it supports a\n// WithCallStackHelper() method, that will be also called. If the\n// implementation does not support either of these, the original Logger will be\n// returned.\nfunc (l Logger) WithCallStackHelper() (func(), Logger) {\n\tif l.sink == nil {\n\t\treturn func() {}, l\n\t}\n\tvar helper func()\n\tif withCallDepth, ok := l.sink.(CallDepthLogSink); ok {\n\t\tl.setSink(withCallDepth.WithCallDepth(1))\n\t}\n\tif withHelper, ok := l.sink.(CallStackHelperLogSink); ok {\n\t\thelper = withHelper.GetCallStackHelper()\n\t} else {\n\t\thelper = func() {}\n\t}\n\treturn helper, l\n}\n\n// IsZero returns true if this logger is an uninitialized zero value\nfunc (l Logger) IsZero() bool {\n\treturn l.sink == nil\n}\n\n// RuntimeInfo holds information that the logr \"core\" library knows which\n// LogSinks might want to know.\ntype RuntimeInfo struct {\n\t// CallDepth is the number of call frames the logr library adds between the\n\t// end-user and the LogSink.  LogSink implementations which choose to print\n\t// the original logging site (e.g. file & line) should climb this many\n\t// additional frames to find it.\n\tCallDepth int\n}\n\n// runtimeInfo is a static global.  It must not be changed at run time.\nvar runtimeInfo = RuntimeInfo{\n\tCallDepth: 1,\n}\n\n// LogSink represents a logging implementation.  End-users will generally not\n// interact with this type.\ntype LogSink interface {\n\t// Init receives optional information about the logr library for LogSink\n\t// implementations that need it.\n\tInit(info RuntimeInfo)\n\n\t// Enabled tests whether this LogSink is enabled at the specified V-level.\n\t// For example, commandline flags might be used to set the logging\n\t// verbosity and disable some info logs.\n\tEnabled(level int) bool\n\n\t// Info logs a non-error message with the given key/value pairs as context.\n\t// The level argument is provided for optional logging.  This method will\n\t// only be called when Enabled(level) is true. See Logger.Info for more\n\t// details.\n\tInfo(level int, msg string, keysAndValues ...any)\n\n\t// Error logs an error, with the given message and key/value pairs as\n\t// context.  See Logger.Error for more details.\n\tError(err error, msg string, keysAndValues ...any)\n\n\t// WithValues returns a new LogSink with additional key/value pairs.  See\n\t// Logger.WithValues for more details.\n\tWithValues(keysAndValues ...any) LogSink\n\n\t// WithName returns a new LogSink with the specified name appended.  See\n\t// Logger.WithName for more details.\n\tWithName(name string) LogSink\n}\n\n// CallDepthLogSink represents a LogSink that knows how to climb the call stack\n// to identify the original call site and can offset the depth by a specified\n// number of frames.  This is useful for users who have helper functions\n// between the \"real\" call site and the actual calls to Logger methods.\n// Implementations that log information about the call site (such as file,\n// function, or line) would otherwise log information about the intermediate\n// helper functions.\n//\n// This is an optional interface and implementations are not required to\n// support it.\ntype CallDepthLogSink interface {\n\t// WithCallDepth returns a LogSink that will offset the call\n\t// stack by the specified number of frames when logging call\n\t// site information.\n\t//\n\t// If depth is 0, the LogSink should skip exactly the number\n\t// of call frames defined in RuntimeInfo.CallDepth when Info\n\t// or Error are called, i.e. the attribution should be to the\n\t// direct caller of Logger.Info or Logger.Error.\n\t//\n\t// If depth is 1 the attribution should skip 1 call frame, and so on.\n\t// Successive calls to this are additive.\n\tWithCallDepth(depth int) LogSink\n}\n\n// CallStackHelperLogSink represents a LogSink that knows how to climb\n// the call stack to identify the original call site and can skip\n// intermediate helper functions if they mark themselves as\n// helper. Go's testing package uses that approach.\n//\n// This is useful for users who have helper functions between the\n// \"real\" call site and the actual calls to Logger methods.\n// Implementations that log information about the call site (such as\n// file, function, or line) would otherwise log information about the\n// intermediate helper functions.\n//\n// This is an optional interface and implementations are not required\n// to support it. Implementations that choose to support this must not\n// simply implement it as WithCallDepth(1), because\n// Logger.WithCallStackHelper will call both methods if they are\n// present. This should only be implemented for LogSinks that actually\n// need it, as with testing.T.\ntype CallStackHelperLogSink interface {\n\t// GetCallStackHelper returns a function that must be called\n\t// to mark the direct caller as helper function when logging\n\t// call site information.\n\tGetCallStackHelper() func()\n}\n\n// Marshaler is an optional interface that logged values may choose to\n// implement. Loggers with structured output, such as JSON, should\n// log the object return by the MarshalLog method instead of the\n// original value.\ntype Marshaler interface {\n\t// MarshalLog can be used to:\n\t//   - ensure that structs are not logged as strings when the original\n\t//     value has a String method: return a different type without a\n\t//     String method\n\t//   - select which fields of a complex type should get logged:\n\t//     return a simpler struct with fewer fields\n\t//   - log unexported fields: return a different struct\n\t//     with exported fields\n\t//\n\t// It may return any value of any type.\n\tMarshalLog() any\n}\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/sloghandler.go",
    "content": "//go:build go1.21\n// +build go1.21\n\n/*\nCopyright 2023 The logr Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage logr\n\nimport (\n\t\"context\"\n\t\"log/slog\"\n)\n\ntype slogHandler struct {\n\t// May be nil, in which case all logs get discarded.\n\tsink LogSink\n\t// Non-nil if sink is non-nil and implements SlogSink.\n\tslogSink SlogSink\n\n\t// groupPrefix collects values from WithGroup calls. It gets added as\n\t// prefix to value keys when handling a log record.\n\tgroupPrefix string\n\n\t// levelBias can be set when constructing the handler to influence the\n\t// slog.Level of log records. A positive levelBias reduces the\n\t// slog.Level value. slog has no API to influence this value after the\n\t// handler got created, so it can only be set indirectly through\n\t// Logger.V.\n\tlevelBias slog.Level\n}\n\nvar _ slog.Handler = &slogHandler{}\n\n// groupSeparator is used to concatenate WithGroup names and attribute keys.\nconst groupSeparator = \".\"\n\n// GetLevel is used for black box unit testing.\nfunc (l *slogHandler) GetLevel() slog.Level {\n\treturn l.levelBias\n}\n\nfunc (l *slogHandler) Enabled(_ context.Context, level slog.Level) bool {\n\treturn l.sink != nil && (level >= slog.LevelError || l.sink.Enabled(l.levelFromSlog(level)))\n}\n\nfunc (l *slogHandler) Handle(ctx context.Context, record slog.Record) error {\n\tif l.slogSink != nil {\n\t\t// Only adjust verbosity level of log entries < slog.LevelError.\n\t\tif record.Level < slog.LevelError {\n\t\t\trecord.Level -= l.levelBias\n\t\t}\n\t\treturn l.slogSink.Handle(ctx, record)\n\t}\n\n\t// No need to check for nil sink here because Handle will only be called\n\t// when Enabled returned true.\n\n\tkvList := make([]any, 0, 2*record.NumAttrs())\n\trecord.Attrs(func(attr slog.Attr) bool {\n\t\tkvList = attrToKVs(attr, l.groupPrefix, kvList)\n\t\treturn true\n\t})\n\tif record.Level >= slog.LevelError {\n\t\tl.sinkWithCallDepth().Error(nil, record.Message, kvList...)\n\t} else {\n\t\tlevel := l.levelFromSlog(record.Level)\n\t\tl.sinkWithCallDepth().Info(level, record.Message, kvList...)\n\t}\n\treturn nil\n}\n\n// sinkWithCallDepth adjusts the stack unwinding so that when Error or Info\n// are called by Handle, code in slog gets skipped.\n//\n// This offset currently (Go 1.21.0) works for calls through\n// slog.New(ToSlogHandler(...)).  There's no guarantee that the call\n// chain won't change. Wrapping the handler will also break unwinding. It's\n// still better than not adjusting at all....\n//\n// This cannot be done when constructing the handler because FromSlogHandler needs\n// access to the original sink without this adjustment. A second copy would\n// work, but then WithAttrs would have to be called for both of them.\nfunc (l *slogHandler) sinkWithCallDepth() LogSink {\n\tif sink, ok := l.sink.(CallDepthLogSink); ok {\n\t\treturn sink.WithCallDepth(2)\n\t}\n\treturn l.sink\n}\n\nfunc (l *slogHandler) WithAttrs(attrs []slog.Attr) slog.Handler {\n\tif l.sink == nil || len(attrs) == 0 {\n\t\treturn l\n\t}\n\n\tclone := *l\n\tif l.slogSink != nil {\n\t\tclone.slogSink = l.slogSink.WithAttrs(attrs)\n\t\tclone.sink = clone.slogSink\n\t} else {\n\t\tkvList := make([]any, 0, 2*len(attrs))\n\t\tfor _, attr := range attrs {\n\t\t\tkvList = attrToKVs(attr, l.groupPrefix, kvList)\n\t\t}\n\t\tclone.sink = l.sink.WithValues(kvList...)\n\t}\n\treturn &clone\n}\n\nfunc (l *slogHandler) WithGroup(name string) slog.Handler {\n\tif l.sink == nil {\n\t\treturn l\n\t}\n\tif name == \"\" {\n\t\t// slog says to inline empty groups\n\t\treturn l\n\t}\n\tclone := *l\n\tif l.slogSink != nil {\n\t\tclone.slogSink = l.slogSink.WithGroup(name)\n\t\tclone.sink = clone.slogSink\n\t} else {\n\t\tclone.groupPrefix = addPrefix(clone.groupPrefix, name)\n\t}\n\treturn &clone\n}\n\n// attrToKVs appends a slog.Attr to a logr-style kvList.  It handle slog Groups\n// and other details of slog.\nfunc attrToKVs(attr slog.Attr, groupPrefix string, kvList []any) []any {\n\tattrVal := attr.Value.Resolve()\n\tif attrVal.Kind() == slog.KindGroup {\n\t\tgroupVal := attrVal.Group()\n\t\tgrpKVs := make([]any, 0, 2*len(groupVal))\n\t\tprefix := groupPrefix\n\t\tif attr.Key != \"\" {\n\t\t\tprefix = addPrefix(groupPrefix, attr.Key)\n\t\t}\n\t\tfor _, attr := range groupVal {\n\t\t\tgrpKVs = attrToKVs(attr, prefix, grpKVs)\n\t\t}\n\t\tkvList = append(kvList, grpKVs...)\n\t} else if attr.Key != \"\" {\n\t\tkvList = append(kvList, addPrefix(groupPrefix, attr.Key), attrVal.Any())\n\t}\n\n\treturn kvList\n}\n\nfunc addPrefix(prefix, name string) string {\n\tif prefix == \"\" {\n\t\treturn name\n\t}\n\tif name == \"\" {\n\t\treturn prefix\n\t}\n\treturn prefix + groupSeparator + name\n}\n\n// levelFromSlog adjusts the level by the logger's verbosity and negates it.\n// It ensures that the result is >= 0. This is necessary because the result is\n// passed to a LogSink and that API did not historically document whether\n// levels could be negative or what that meant.\n//\n// Some example usage:\n//\n//\tlogrV0 := getMyLogger()\n//\tlogrV2 := logrV0.V(2)\n//\tslogV2 := slog.New(logr.ToSlogHandler(logrV2))\n//\tslogV2.Debug(\"msg\") // =~ logrV2.V(4) =~ logrV0.V(6)\n//\tslogV2.Info(\"msg\")  // =~  logrV2.V(0) =~ logrV0.V(2)\n//\tslogv2.Warn(\"msg\")  // =~ logrV2.V(-4) =~ logrV0.V(0)\nfunc (l *slogHandler) levelFromSlog(level slog.Level) int {\n\tresult := -level\n\tresult += l.levelBias // in case the original Logger had a V level\n\tif result < 0 {\n\t\tresult = 0 // because LogSink doesn't expect negative V levels\n\t}\n\treturn int(result)\n}\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/slogr.go",
    "content": "//go:build go1.21\n// +build go1.21\n\n/*\nCopyright 2023 The logr Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage logr\n\nimport (\n\t\"context\"\n\t\"log/slog\"\n)\n\n// FromSlogHandler returns a Logger which writes to the slog.Handler.\n//\n// The logr verbosity level is mapped to slog levels such that V(0) becomes\n// slog.LevelInfo and V(4) becomes slog.LevelDebug.\nfunc FromSlogHandler(handler slog.Handler) Logger {\n\tif handler, ok := handler.(*slogHandler); ok {\n\t\tif handler.sink == nil {\n\t\t\treturn Discard()\n\t\t}\n\t\treturn New(handler.sink).V(int(handler.levelBias))\n\t}\n\treturn New(&slogSink{handler: handler})\n}\n\n// ToSlogHandler returns a slog.Handler which writes to the same sink as the Logger.\n//\n// The returned logger writes all records with level >= slog.LevelError as\n// error log entries with LogSink.Error, regardless of the verbosity level of\n// the Logger:\n//\n//\tlogger := <some Logger with 0 as verbosity level>\n//\tslog.New(ToSlogHandler(logger.V(10))).Error(...) -> logSink.Error(...)\n//\n// The level of all other records gets reduced by the verbosity\n// level of the Logger and the result is negated. If it happens\n// to be negative, then it gets replaced by zero because a LogSink\n// is not expected to handled negative levels:\n//\n//\tslog.New(ToSlogHandler(logger)).Debug(...) -> logger.GetSink().Info(level=4, ...)\n//\tslog.New(ToSlogHandler(logger)).Warning(...) -> logger.GetSink().Info(level=0, ...)\n//\tslog.New(ToSlogHandler(logger)).Info(...) -> logger.GetSink().Info(level=0, ...)\n//\tslog.New(ToSlogHandler(logger.V(4))).Info(...) -> logger.GetSink().Info(level=4, ...)\nfunc ToSlogHandler(logger Logger) slog.Handler {\n\tif sink, ok := logger.GetSink().(*slogSink); ok && logger.GetV() == 0 {\n\t\treturn sink.handler\n\t}\n\n\thandler := &slogHandler{sink: logger.GetSink(), levelBias: slog.Level(logger.GetV())}\n\tif slogSink, ok := handler.sink.(SlogSink); ok {\n\t\thandler.slogSink = slogSink\n\t}\n\treturn handler\n}\n\n// SlogSink is an optional interface that a LogSink can implement to support\n// logging through the slog.Logger or slog.Handler APIs better. It then should\n// also support special slog values like slog.Group. When used as a\n// slog.Handler, the advantages are:\n//\n//   - stack unwinding gets avoided in favor of logging the pre-recorded PC,\n//     as intended by slog\n//   - proper grouping of key/value pairs via WithGroup\n//   - verbosity levels > slog.LevelInfo can be recorded\n//   - less overhead\n//\n// Both APIs (Logger and slog.Logger/Handler) then are supported equally\n// well. Developers can pick whatever API suits them better and/or mix\n// packages which use either API in the same binary with a common logging\n// implementation.\n//\n// This interface is necessary because the type implementing the LogSink\n// interface cannot also implement the slog.Handler interface due to the\n// different prototype of the common Enabled method.\n//\n// An implementation could support both interfaces in two different types, but then\n// additional interfaces would be needed to convert between those types in FromSlogHandler\n// and ToSlogHandler.\ntype SlogSink interface {\n\tLogSink\n\n\tHandle(ctx context.Context, record slog.Record) error\n\tWithAttrs(attrs []slog.Attr) SlogSink\n\tWithGroup(name string) SlogSink\n}\n"
  },
  {
    "path": "vendor/github.com/go-logr/logr/slogsink.go",
    "content": "//go:build go1.21\n// +build go1.21\n\n/*\nCopyright 2023 The logr Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage logr\n\nimport (\n\t\"context\"\n\t\"log/slog\"\n\t\"runtime\"\n\t\"time\"\n)\n\nvar (\n\t_ LogSink          = &slogSink{}\n\t_ CallDepthLogSink = &slogSink{}\n\t_ Underlier        = &slogSink{}\n)\n\n// Underlier is implemented by the LogSink returned by NewFromLogHandler.\ntype Underlier interface {\n\t// GetUnderlying returns the Handler used by the LogSink.\n\tGetUnderlying() slog.Handler\n}\n\nconst (\n\t// nameKey is used to log the `WithName` values as an additional attribute.\n\tnameKey = \"logger\"\n\n\t// errKey is used to log the error parameter of Error as an additional attribute.\n\terrKey = \"err\"\n)\n\ntype slogSink struct {\n\tcallDepth int\n\tname      string\n\thandler   slog.Handler\n}\n\nfunc (l *slogSink) Init(info RuntimeInfo) {\n\tl.callDepth = info.CallDepth\n}\n\nfunc (l *slogSink) GetUnderlying() slog.Handler {\n\treturn l.handler\n}\n\nfunc (l *slogSink) WithCallDepth(depth int) LogSink {\n\tnewLogger := *l\n\tnewLogger.callDepth += depth\n\treturn &newLogger\n}\n\nfunc (l *slogSink) Enabled(level int) bool {\n\treturn l.handler.Enabled(context.Background(), slog.Level(-level))\n}\n\nfunc (l *slogSink) Info(level int, msg string, kvList ...interface{}) {\n\tl.log(nil, msg, slog.Level(-level), kvList...)\n}\n\nfunc (l *slogSink) Error(err error, msg string, kvList ...interface{}) {\n\tl.log(err, msg, slog.LevelError, kvList...)\n}\n\nfunc (l *slogSink) log(err error, msg string, level slog.Level, kvList ...interface{}) {\n\tvar pcs [1]uintptr\n\t// skip runtime.Callers, this function, Info/Error, and all helper functions above that.\n\truntime.Callers(3+l.callDepth, pcs[:])\n\n\trecord := slog.NewRecord(time.Now(), level, msg, pcs[0])\n\tif l.name != \"\" {\n\t\trecord.AddAttrs(slog.String(nameKey, l.name))\n\t}\n\tif err != nil {\n\t\trecord.AddAttrs(slog.Any(errKey, err))\n\t}\n\trecord.Add(kvList...)\n\t_ = l.handler.Handle(context.Background(), record)\n}\n\nfunc (l slogSink) WithName(name string) LogSink {\n\tif l.name != \"\" {\n\t\tl.name += \"/\"\n\t}\n\tl.name += name\n\treturn &l\n}\n\nfunc (l slogSink) WithValues(kvList ...interface{}) LogSink {\n\tl.handler = l.handler.WithAttrs(kvListToAttrs(kvList...))\n\treturn &l\n}\n\nfunc kvListToAttrs(kvList ...interface{}) []slog.Attr {\n\t// We don't need the record itself, only its Add method.\n\trecord := slog.NewRecord(time.Time{}, 0, \"\", 0)\n\trecord.Add(kvList...)\n\tattrs := make([]slog.Attr, 0, record.NumAttrs())\n\trecord.Attrs(func(attr slog.Attr) bool {\n\t\tattrs = append(attrs, attr)\n\t\treturn true\n\t})\n\treturn attrs\n}\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonpointer/.editorconfig",
    "content": "# top-most EditorConfig file\nroot = true\n\n# Unix-style newlines with a newline ending every file\n[*]\nend_of_line = lf\ninsert_final_newline = true\nindent_style = space\nindent_size = 2\ntrim_trailing_whitespace = true\n\n# Set default charset\n[*.{js,py,go,scala,rb,java,html,css,less,sass,md}]\ncharset = utf-8\n\n# Tab indentation (no size specified)\n[*.go]\nindent_style = tab\n\n[*.md]\ntrim_trailing_whitespace = false\n\n# Matches the exact files either package.json or .travis.yml\n[{package.json,.travis.yml}]\nindent_style = space\nindent_size = 2\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonpointer/.gitignore",
    "content": "secrets.yml\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonpointer/.golangci.yml",
    "content": "linters-settings:\n  govet:\n    check-shadowing: true\n  golint:\n    min-confidence: 0\n  gocyclo:\n    min-complexity: 45\n  maligned:\n    suggest-new: true\n  dupl:\n    threshold: 200\n  goconst:\n    min-len: 2\n    min-occurrences: 3\n\nlinters:\n  enable-all: true\n  disable:\n    - maligned\n    - unparam\n    - lll\n    - gochecknoinits\n    - gochecknoglobals\n    - funlen\n    - godox\n    - gocognit\n    - whitespace\n    - wsl\n    - wrapcheck\n    - testpackage\n    - nlreturn\n    - gomnd\n    - exhaustivestruct\n    - goerr113\n    - errorlint\n    - nestif\n    - godot\n    - gofumpt\n    - paralleltest\n    - tparallel\n    - thelper\n    - ifshort\n    - exhaustruct\n    - varnamelen\n    - gci\n    - depguard\n    - errchkjson\n    - inamedparam\n    - nonamedreturns\n    - musttag\n    - ireturn\n    - forcetypeassert\n    - cyclop\n    # deprecated linters\n    - deadcode\n    - interfacer\n    - scopelint\n    - varcheck\n    - structcheck\n    - golint\n    - nosnakecase\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonpointer/CODE_OF_CONDUCT.md",
    "content": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as\ncontributors and maintainers pledge to making participation in our project and\nour community a harassment-free experience for everyone, regardless of age, body\nsize, disability, ethnicity, gender identity and expression, level of experience,\nnationality, personal appearance, race, religion, or sexual identity and\norientation.\n\n## Our Standards\n\nExamples of behavior that contributes to creating a positive environment\ninclude:\n\n* Using welcoming and inclusive language\n* Being respectful of differing viewpoints and experiences\n* Gracefully accepting constructive criticism\n* Focusing on what is best for the community\n* Showing empathy towards other community members\n\nExamples of unacceptable behavior by participants include:\n\n* The use of sexualized language or imagery and unwelcome sexual attention or\nadvances\n* Trolling, insulting/derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or electronic\n  address, without explicit permission\n* Other conduct which could reasonably be considered inappropriate in a\n  professional setting\n\n## Our Responsibilities\n\nProject maintainers are responsible for clarifying the standards of acceptable\nbehavior and are expected to take appropriate and fair corrective action in\nresponse to any instances of unacceptable behavior.\n\nProject maintainers have the right and responsibility to remove, edit, or\nreject comments, commits, code, wiki edits, issues, and other contributions\nthat are not aligned to this Code of Conduct, or to ban temporarily or\npermanently any contributor for other behaviors that they deem inappropriate,\nthreatening, offensive, or harmful.\n\n## Scope\n\nThis Code of Conduct applies both within project spaces and in public spaces\nwhen an individual is representing the project or its community. Examples of\nrepresenting a project or community include using an official project e-mail\naddress, posting via an official social media account, or acting as an appointed\nrepresentative at an online or offline event. Representation of a project may be\nfurther defined and clarified by project maintainers.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be\nreported by contacting the project team at ivan+abuse@flanders.co.nz. All\ncomplaints will be reviewed and investigated and will result in a response that\nis deemed necessary and appropriate to the circumstances. The project team is\nobligated to maintain confidentiality with regard to the reporter of an incident.\nFurther details of specific enforcement policies may be posted separately.\n\nProject maintainers who do not follow or enforce the Code of Conduct in good\nfaith may face temporary or permanent repercussions as determined by other\nmembers of the project's leadership.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,\navailable at [http://contributor-covenant.org/version/1/4][version]\n\n[homepage]: http://contributor-covenant.org\n[version]: http://contributor-covenant.org/version/1/4/\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonpointer/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonpointer/README.md",
    "content": "# gojsonpointer [![Build Status](https://github.com/go-openapi/jsonpointer/actions/workflows/go-test.yml/badge.svg)](https://github.com/go-openapi/jsonpointer/actions?query=workflow%3A\"go+test\") [![codecov](https://codecov.io/gh/go-openapi/jsonpointer/branch/master/graph/badge.svg)](https://codecov.io/gh/go-openapi/jsonpointer)\n\n[![Slack Status](https://slackin.goswagger.io/badge.svg)](https://slackin.goswagger.io)\n[![license](http://img.shields.io/badge/license-Apache%20v2-orange.svg)](https://raw.githubusercontent.com/go-openapi/jsonpointer/master/LICENSE)\n[![Go Reference](https://pkg.go.dev/badge/github.com/go-openapi/jsonpointer.svg)](https://pkg.go.dev/github.com/go-openapi/jsonpointer)\n[![Go Report Card](https://goreportcard.com/badge/github.com/go-openapi/jsonpointer)](https://goreportcard.com/report/github.com/go-openapi/jsonpointer)\n\nAn implementation of JSON Pointer - Go language\n\n## Status\nCompleted YES\n\nTested YES\n\n## References\nhttp://tools.ietf.org/html/draft-ietf-appsawg-json-pointer-07\n\n### Note\nThe 4.Evaluation part of the previous reference, starting with 'If the currently referenced value is a JSON array, the reference token MUST contain either...' is not implemented.\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonpointer/pointer.go",
    "content": "// Copyright 2013 sigu-399 ( https://github.com/sigu-399 )\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//   http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// author       sigu-399\n// author-github  https://github.com/sigu-399\n// author-mail    sigu.399@gmail.com\n//\n// repository-name  jsonpointer\n// repository-desc  An implementation of JSON Pointer - Go language\n//\n// description    Main and unique file.\n//\n// created        25-02-2013\n\npackage jsonpointer\n\nimport (\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/go-openapi/swag\"\n)\n\nconst (\n\temptyPointer     = ``\n\tpointerSeparator = `/`\n\n\tinvalidStart = `JSON pointer must be empty or start with a \"` + pointerSeparator\n\tnotFound     = `Can't find the pointer in the document`\n)\n\nvar jsonPointableType = reflect.TypeOf(new(JSONPointable)).Elem()\nvar jsonSetableType = reflect.TypeOf(new(JSONSetable)).Elem()\n\n// JSONPointable is an interface for structs to implement when they need to customize the\n// json pointer process\ntype JSONPointable interface {\n\tJSONLookup(string) (any, error)\n}\n\n// JSONSetable is an interface for structs to implement when they need to customize the\n// json pointer process\ntype JSONSetable interface {\n\tJSONSet(string, any) error\n}\n\n// New creates a new json pointer for the given string\nfunc New(jsonPointerString string) (Pointer, error) {\n\n\tvar p Pointer\n\terr := p.parse(jsonPointerString)\n\treturn p, err\n\n}\n\n// Pointer the json pointer reprsentation\ntype Pointer struct {\n\treferenceTokens []string\n}\n\n// \"Constructor\", parses the given string JSON pointer\nfunc (p *Pointer) parse(jsonPointerString string) error {\n\n\tvar err error\n\n\tif jsonPointerString != emptyPointer {\n\t\tif !strings.HasPrefix(jsonPointerString, pointerSeparator) {\n\t\t\terr = errors.New(invalidStart)\n\t\t} else {\n\t\t\treferenceTokens := strings.Split(jsonPointerString, pointerSeparator)\n\t\t\tp.referenceTokens = append(p.referenceTokens, referenceTokens[1:]...)\n\t\t}\n\t}\n\n\treturn err\n}\n\n// Get uses the pointer to retrieve a value from a JSON document\nfunc (p *Pointer) Get(document any) (any, reflect.Kind, error) {\n\treturn p.get(document, swag.DefaultJSONNameProvider)\n}\n\n// Set uses the pointer to set a value from a JSON document\nfunc (p *Pointer) Set(document any, value any) (any, error) {\n\treturn document, p.set(document, value, swag.DefaultJSONNameProvider)\n}\n\n// GetForToken gets a value for a json pointer token 1 level deep\nfunc GetForToken(document any, decodedToken string) (any, reflect.Kind, error) {\n\treturn getSingleImpl(document, decodedToken, swag.DefaultJSONNameProvider)\n}\n\n// SetForToken gets a value for a json pointer token 1 level deep\nfunc SetForToken(document any, decodedToken string, value any) (any, error) {\n\treturn document, setSingleImpl(document, value, decodedToken, swag.DefaultJSONNameProvider)\n}\n\nfunc isNil(input any) bool {\n\tif input == nil {\n\t\treturn true\n\t}\n\n\tkind := reflect.TypeOf(input).Kind()\n\tswitch kind { //nolint:exhaustive\n\tcase reflect.Ptr, reflect.Map, reflect.Slice, reflect.Chan:\n\t\treturn reflect.ValueOf(input).IsNil()\n\tdefault:\n\t\treturn false\n\t}\n}\n\nfunc getSingleImpl(node any, decodedToken string, nameProvider *swag.NameProvider) (any, reflect.Kind, error) {\n\trValue := reflect.Indirect(reflect.ValueOf(node))\n\tkind := rValue.Kind()\n\tif isNil(node) {\n\t\treturn nil, kind, fmt.Errorf(\"nil value has not field %q\", decodedToken)\n\t}\n\n\tswitch typed := node.(type) {\n\tcase JSONPointable:\n\t\tr, err := typed.JSONLookup(decodedToken)\n\t\tif err != nil {\n\t\t\treturn nil, kind, err\n\t\t}\n\t\treturn r, kind, nil\n\tcase *any: // case of a pointer to interface, that is not resolved by reflect.Indirect\n\t\treturn getSingleImpl(*typed, decodedToken, nameProvider)\n\t}\n\n\tswitch kind { //nolint:exhaustive\n\tcase reflect.Struct:\n\t\tnm, ok := nameProvider.GetGoNameForType(rValue.Type(), decodedToken)\n\t\tif !ok {\n\t\t\treturn nil, kind, fmt.Errorf(\"object has no field %q\", decodedToken)\n\t\t}\n\t\tfld := rValue.FieldByName(nm)\n\t\treturn fld.Interface(), kind, nil\n\n\tcase reflect.Map:\n\t\tkv := reflect.ValueOf(decodedToken)\n\t\tmv := rValue.MapIndex(kv)\n\n\t\tif mv.IsValid() {\n\t\t\treturn mv.Interface(), kind, nil\n\t\t}\n\t\treturn nil, kind, fmt.Errorf(\"object has no key %q\", decodedToken)\n\n\tcase reflect.Slice:\n\t\ttokenIndex, err := strconv.Atoi(decodedToken)\n\t\tif err != nil {\n\t\t\treturn nil, kind, err\n\t\t}\n\t\tsLength := rValue.Len()\n\t\tif tokenIndex < 0 || tokenIndex >= sLength {\n\t\t\treturn nil, kind, fmt.Errorf(\"index out of bounds array[0,%d] index '%d'\", sLength-1, tokenIndex)\n\t\t}\n\n\t\telem := rValue.Index(tokenIndex)\n\t\treturn elem.Interface(), kind, nil\n\n\tdefault:\n\t\treturn nil, kind, fmt.Errorf(\"invalid token reference %q\", decodedToken)\n\t}\n\n}\n\nfunc setSingleImpl(node, data any, decodedToken string, nameProvider *swag.NameProvider) error {\n\trValue := reflect.Indirect(reflect.ValueOf(node))\n\n\tif ns, ok := node.(JSONSetable); ok { // pointer impl\n\t\treturn ns.JSONSet(decodedToken, data)\n\t}\n\n\tif rValue.Type().Implements(jsonSetableType) {\n\t\treturn node.(JSONSetable).JSONSet(decodedToken, data)\n\t}\n\n\tswitch rValue.Kind() { //nolint:exhaustive\n\tcase reflect.Struct:\n\t\tnm, ok := nameProvider.GetGoNameForType(rValue.Type(), decodedToken)\n\t\tif !ok {\n\t\t\treturn fmt.Errorf(\"object has no field %q\", decodedToken)\n\t\t}\n\t\tfld := rValue.FieldByName(nm)\n\t\tif fld.IsValid() {\n\t\t\tfld.Set(reflect.ValueOf(data))\n\t\t}\n\t\treturn nil\n\n\tcase reflect.Map:\n\t\tkv := reflect.ValueOf(decodedToken)\n\t\trValue.SetMapIndex(kv, reflect.ValueOf(data))\n\t\treturn nil\n\n\tcase reflect.Slice:\n\t\ttokenIndex, err := strconv.Atoi(decodedToken)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsLength := rValue.Len()\n\t\tif tokenIndex < 0 || tokenIndex >= sLength {\n\t\t\treturn fmt.Errorf(\"index out of bounds array[0,%d] index '%d'\", sLength, tokenIndex)\n\t\t}\n\n\t\telem := rValue.Index(tokenIndex)\n\t\tif !elem.CanSet() {\n\t\t\treturn fmt.Errorf(\"can't set slice index %s to %v\", decodedToken, data)\n\t\t}\n\t\telem.Set(reflect.ValueOf(data))\n\t\treturn nil\n\n\tdefault:\n\t\treturn fmt.Errorf(\"invalid token reference %q\", decodedToken)\n\t}\n\n}\n\nfunc (p *Pointer) get(node any, nameProvider *swag.NameProvider) (any, reflect.Kind, error) {\n\n\tif nameProvider == nil {\n\t\tnameProvider = swag.DefaultJSONNameProvider\n\t}\n\n\tkind := reflect.Invalid\n\n\t// Full document when empty\n\tif len(p.referenceTokens) == 0 {\n\t\treturn node, kind, nil\n\t}\n\n\tfor _, token := range p.referenceTokens {\n\n\t\tdecodedToken := Unescape(token)\n\n\t\tr, knd, err := getSingleImpl(node, decodedToken, nameProvider)\n\t\tif err != nil {\n\t\t\treturn nil, knd, err\n\t\t}\n\t\tnode = r\n\t}\n\n\trValue := reflect.ValueOf(node)\n\tkind = rValue.Kind()\n\n\treturn node, kind, nil\n}\n\nfunc (p *Pointer) set(node, data any, nameProvider *swag.NameProvider) error {\n\tknd := reflect.ValueOf(node).Kind()\n\n\tif knd != reflect.Ptr && knd != reflect.Struct && knd != reflect.Map && knd != reflect.Slice && knd != reflect.Array {\n\t\treturn errors.New(\"only structs, pointers, maps and slices are supported for setting values\")\n\t}\n\n\tif nameProvider == nil {\n\t\tnameProvider = swag.DefaultJSONNameProvider\n\t}\n\n\t// Full document when empty\n\tif len(p.referenceTokens) == 0 {\n\t\treturn nil\n\t}\n\n\tlastI := len(p.referenceTokens) - 1\n\tfor i, token := range p.referenceTokens {\n\t\tisLastToken := i == lastI\n\t\tdecodedToken := Unescape(token)\n\n\t\tif isLastToken {\n\n\t\t\treturn setSingleImpl(node, data, decodedToken, nameProvider)\n\t\t}\n\n\t\trValue := reflect.Indirect(reflect.ValueOf(node))\n\t\tkind := rValue.Kind()\n\n\t\tif rValue.Type().Implements(jsonPointableType) {\n\t\t\tr, err := node.(JSONPointable).JSONLookup(decodedToken)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tfld := reflect.ValueOf(r)\n\t\t\tif fld.CanAddr() && fld.Kind() != reflect.Interface && fld.Kind() != reflect.Map && fld.Kind() != reflect.Slice && fld.Kind() != reflect.Ptr {\n\t\t\t\tnode = fld.Addr().Interface()\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tnode = r\n\t\t\tcontinue\n\t\t}\n\n\t\tswitch kind { //nolint:exhaustive\n\t\tcase reflect.Struct:\n\t\t\tnm, ok := nameProvider.GetGoNameForType(rValue.Type(), decodedToken)\n\t\t\tif !ok {\n\t\t\t\treturn fmt.Errorf(\"object has no field %q\", decodedToken)\n\t\t\t}\n\t\t\tfld := rValue.FieldByName(nm)\n\t\t\tif fld.CanAddr() && fld.Kind() != reflect.Interface && fld.Kind() != reflect.Map && fld.Kind() != reflect.Slice && fld.Kind() != reflect.Ptr {\n\t\t\t\tnode = fld.Addr().Interface()\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tnode = fld.Interface()\n\n\t\tcase reflect.Map:\n\t\t\tkv := reflect.ValueOf(decodedToken)\n\t\t\tmv := rValue.MapIndex(kv)\n\n\t\t\tif !mv.IsValid() {\n\t\t\t\treturn fmt.Errorf(\"object has no key %q\", decodedToken)\n\t\t\t}\n\t\t\tif mv.CanAddr() && mv.Kind() != reflect.Interface && mv.Kind() != reflect.Map && mv.Kind() != reflect.Slice && mv.Kind() != reflect.Ptr {\n\t\t\t\tnode = mv.Addr().Interface()\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tnode = mv.Interface()\n\n\t\tcase reflect.Slice:\n\t\t\ttokenIndex, err := strconv.Atoi(decodedToken)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tsLength := rValue.Len()\n\t\t\tif tokenIndex < 0 || tokenIndex >= sLength {\n\t\t\t\treturn fmt.Errorf(\"index out of bounds array[0,%d] index '%d'\", sLength, tokenIndex)\n\t\t\t}\n\n\t\t\telem := rValue.Index(tokenIndex)\n\t\t\tif elem.CanAddr() && elem.Kind() != reflect.Interface && elem.Kind() != reflect.Map && elem.Kind() != reflect.Slice && elem.Kind() != reflect.Ptr {\n\t\t\t\tnode = elem.Addr().Interface()\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tnode = elem.Interface()\n\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\"invalid token reference %q\", decodedToken)\n\t\t}\n\n\t}\n\n\treturn nil\n}\n\n// DecodedTokens returns the decoded tokens\nfunc (p *Pointer) DecodedTokens() []string {\n\tresult := make([]string, 0, len(p.referenceTokens))\n\tfor _, t := range p.referenceTokens {\n\t\tresult = append(result, Unescape(t))\n\t}\n\treturn result\n}\n\n// IsEmpty returns true if this is an empty json pointer\n// this indicates that it points to the root document\nfunc (p *Pointer) IsEmpty() bool {\n\treturn len(p.referenceTokens) == 0\n}\n\n// Pointer to string representation function\nfunc (p *Pointer) String() string {\n\n\tif len(p.referenceTokens) == 0 {\n\t\treturn emptyPointer\n\t}\n\n\tpointerString := pointerSeparator + strings.Join(p.referenceTokens, pointerSeparator)\n\n\treturn pointerString\n}\n\nfunc (p *Pointer) Offset(document string) (int64, error) {\n\tdec := json.NewDecoder(strings.NewReader(document))\n\tvar offset int64\n\tfor _, ttk := range p.DecodedTokens() {\n\t\ttk, err := dec.Token()\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\tswitch tk := tk.(type) {\n\t\tcase json.Delim:\n\t\t\tswitch tk {\n\t\t\tcase '{':\n\t\t\t\toffset, err = offsetSingleObject(dec, ttk)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\tcase '[':\n\t\t\t\toffset, err = offsetSingleArray(dec, ttk)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\treturn 0, fmt.Errorf(\"invalid token %#v\", tk)\n\t\t\t}\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"invalid token %#v\", tk)\n\t\t}\n\t}\n\treturn offset, nil\n}\n\nfunc offsetSingleObject(dec *json.Decoder, decodedToken string) (int64, error) {\n\tfor dec.More() {\n\t\toffset := dec.InputOffset()\n\t\ttk, err := dec.Token()\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\tswitch tk := tk.(type) {\n\t\tcase json.Delim:\n\t\t\tswitch tk {\n\t\t\tcase '{':\n\t\t\t\tif err = drainSingle(dec); err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\tcase '[':\n\t\t\t\tif err = drainSingle(dec); err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t}\n\t\tcase string:\n\t\t\tif tk == decodedToken {\n\t\t\t\treturn offset, nil\n\t\t\t}\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"invalid token %#v\", tk)\n\t\t}\n\t}\n\treturn 0, fmt.Errorf(\"token reference %q not found\", decodedToken)\n}\n\nfunc offsetSingleArray(dec *json.Decoder, decodedToken string) (int64, error) {\n\tidx, err := strconv.Atoi(decodedToken)\n\tif err != nil {\n\t\treturn 0, fmt.Errorf(\"token reference %q is not a number: %v\", decodedToken, err)\n\t}\n\tvar i int\n\tfor i = 0; i < idx && dec.More(); i++ {\n\t\ttk, err := dec.Token()\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\n\t\tif delim, isDelim := tk.(json.Delim); isDelim {\n\t\t\tswitch delim {\n\t\t\tcase '{':\n\t\t\t\tif err = drainSingle(dec); err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\tcase '[':\n\t\t\t\tif err = drainSingle(dec); err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif !dec.More() {\n\t\treturn 0, fmt.Errorf(\"token reference %q not found\", decodedToken)\n\t}\n\treturn dec.InputOffset(), nil\n}\n\n// drainSingle drains a single level of object or array.\n// The decoder has to guarantee the beginning delim (i.e. '{' or '[') has been consumed.\nfunc drainSingle(dec *json.Decoder) error {\n\tfor dec.More() {\n\t\ttk, err := dec.Token()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif delim, isDelim := tk.(json.Delim); isDelim {\n\t\t\tswitch delim {\n\t\t\tcase '{':\n\t\t\t\tif err = drainSingle(dec); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\tcase '[':\n\t\t\t\tif err = drainSingle(dec); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Consumes the ending delim\n\tif _, err := dec.Token(); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// Specific JSON pointer encoding here\n// ~0 => ~\n// ~1 => /\n// ... and vice versa\n\nconst (\n\tencRefTok0 = `~0`\n\tencRefTok1 = `~1`\n\tdecRefTok0 = `~`\n\tdecRefTok1 = `/`\n)\n\n// Unescape unescapes a json pointer reference token string to the original representation\nfunc Unescape(token string) string {\n\tstep1 := strings.ReplaceAll(token, encRefTok1, decRefTok1)\n\tstep2 := strings.ReplaceAll(step1, encRefTok0, decRefTok0)\n\treturn step2\n}\n\n// Escape escapes a pointer reference token string\nfunc Escape(token string) string {\n\tstep1 := strings.ReplaceAll(token, decRefTok0, encRefTok0)\n\tstep2 := strings.ReplaceAll(step1, decRefTok1, encRefTok1)\n\treturn step2\n}\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonreference/.gitignore",
    "content": "secrets.yml\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonreference/.golangci.yml",
    "content": "linters-settings:\n  govet:\n    check-shadowing: true\n  gocyclo:\n    min-complexity: 30\n  maligned:\n    suggest-new: true\n  dupl:\n    threshold: 100\n  goconst:\n    min-len: 2\n    min-occurrences: 4\n  paralleltest:\n    ignore-missing: true\nlinters:\n  enable-all: true\n  disable:\n    - maligned\n    - lll\n    - gochecknoglobals\n    - godox\n    - gocognit\n    - whitespace\n    - wsl\n    - funlen\n    - gochecknoglobals\n    - gochecknoinits\n    - scopelint\n    - wrapcheck\n    - exhaustivestruct\n    - exhaustive\n    - nlreturn\n    - testpackage\n    - gci\n    - gofumpt\n    - goerr113\n    - gomnd\n    - tparallel\n    - nestif\n    - godot\n    - errorlint\n    - varcheck\n    - interfacer\n    - deadcode\n    - golint\n    - ifshort\n    - structcheck\n    - nosnakecase\n    - varnamelen\n    - exhaustruct\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonreference/CODE_OF_CONDUCT.md",
    "content": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as\ncontributors and maintainers pledge to making participation in our project and\nour community a harassment-free experience for everyone, regardless of age, body\nsize, disability, ethnicity, gender identity and expression, level of experience,\nnationality, personal appearance, race, religion, or sexual identity and\norientation.\n\n## Our Standards\n\nExamples of behavior that contributes to creating a positive environment\ninclude:\n\n* Using welcoming and inclusive language\n* Being respectful of differing viewpoints and experiences\n* Gracefully accepting constructive criticism\n* Focusing on what is best for the community\n* Showing empathy towards other community members\n\nExamples of unacceptable behavior by participants include:\n\n* The use of sexualized language or imagery and unwelcome sexual attention or\nadvances\n* Trolling, insulting/derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or electronic\n  address, without explicit permission\n* Other conduct which could reasonably be considered inappropriate in a\n  professional setting\n\n## Our Responsibilities\n\nProject maintainers are responsible for clarifying the standards of acceptable\nbehavior and are expected to take appropriate and fair corrective action in\nresponse to any instances of unacceptable behavior.\n\nProject maintainers have the right and responsibility to remove, edit, or\nreject comments, commits, code, wiki edits, issues, and other contributions\nthat are not aligned to this Code of Conduct, or to ban temporarily or\npermanently any contributor for other behaviors that they deem inappropriate,\nthreatening, offensive, or harmful.\n\n## Scope\n\nThis Code of Conduct applies both within project spaces and in public spaces\nwhen an individual is representing the project or its community. Examples of\nrepresenting a project or community include using an official project e-mail\naddress, posting via an official social media account, or acting as an appointed\nrepresentative at an online or offline event. Representation of a project may be\nfurther defined and clarified by project maintainers.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be\nreported by contacting the project team at ivan+abuse@flanders.co.nz. All\ncomplaints will be reviewed and investigated and will result in a response that\nis deemed necessary and appropriate to the circumstances. The project team is\nobligated to maintain confidentiality with regard to the reporter of an incident.\nFurther details of specific enforcement policies may be posted separately.\n\nProject maintainers who do not follow or enforce the Code of Conduct in good\nfaith may face temporary or permanent repercussions as determined by other\nmembers of the project's leadership.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,\navailable at [http://contributor-covenant.org/version/1/4][version]\n\n[homepage]: http://contributor-covenant.org\n[version]: http://contributor-covenant.org/version/1/4/\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonreference/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonreference/README.md",
    "content": "# gojsonreference [![Build Status](https://travis-ci.org/go-openapi/jsonreference.svg?branch=master)](https://travis-ci.org/go-openapi/jsonreference) [![codecov](https://codecov.io/gh/go-openapi/jsonreference/branch/master/graph/badge.svg)](https://codecov.io/gh/go-openapi/jsonreference) [![Slack Status](https://slackin.goswagger.io/badge.svg)](https://slackin.goswagger.io)\n\n[![license](http://img.shields.io/badge/license-Apache%20v2-orange.svg)](https://raw.githubusercontent.com/go-openapi/jsonreference/master/LICENSE) [![GoDoc](https://godoc.org/github.com/go-openapi/jsonreference?status.svg)](http://godoc.org/github.com/go-openapi/jsonreference)\nAn implementation of JSON Reference - Go language\n\n## Status\nFeature complete. Stable API\n\n## Dependencies\nhttps://github.com/go-openapi/jsonpointer\n\n## References\nhttp://tools.ietf.org/html/draft-ietf-appsawg-json-pointer-07\n\nhttp://tools.ietf.org/html/draft-pbryan-zyp-json-ref-03\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonreference/internal/normalize_url.go",
    "content": "package internal\n\nimport (\n\t\"net/url\"\n\t\"regexp\"\n\t\"strings\"\n)\n\nconst (\n\tdefaultHTTPPort  = \":80\"\n\tdefaultHTTPSPort = \":443\"\n)\n\n// Regular expressions used by the normalizations\nvar rxPort = regexp.MustCompile(`(:\\d+)/?$`)\nvar rxDupSlashes = regexp.MustCompile(`/{2,}`)\n\n// NormalizeURL will normalize the specified URL\n// This was added to replace a previous call to the no longer maintained purell library:\n// The call that was used looked like the following:\n//\n//\turl.Parse(purell.NormalizeURL(parsed, purell.FlagsSafe|purell.FlagRemoveDuplicateSlashes))\n//\n// To explain all that was included in the call above, purell.FlagsSafe was really just the following:\n//   - FlagLowercaseScheme\n//   - FlagLowercaseHost\n//   - FlagRemoveDefaultPort\n//   - FlagRemoveDuplicateSlashes (and this was mixed in with the |)\n//\n// This also normalizes the URL into its urlencoded form by removing RawPath and RawFragment.\nfunc NormalizeURL(u *url.URL) {\n\tlowercaseScheme(u)\n\tlowercaseHost(u)\n\tremoveDefaultPort(u)\n\tremoveDuplicateSlashes(u)\n\n\tu.RawPath = \"\"\n\tu.RawFragment = \"\"\n}\n\nfunc lowercaseScheme(u *url.URL) {\n\tif len(u.Scheme) > 0 {\n\t\tu.Scheme = strings.ToLower(u.Scheme)\n\t}\n}\n\nfunc lowercaseHost(u *url.URL) {\n\tif len(u.Host) > 0 {\n\t\tu.Host = strings.ToLower(u.Host)\n\t}\n}\n\nfunc removeDefaultPort(u *url.URL) {\n\tif len(u.Host) > 0 {\n\t\tscheme := strings.ToLower(u.Scheme)\n\t\tu.Host = rxPort.ReplaceAllStringFunc(u.Host, func(val string) string {\n\t\t\tif (scheme == \"http\" && val == defaultHTTPPort) || (scheme == \"https\" && val == defaultHTTPSPort) {\n\t\t\t\treturn \"\"\n\t\t\t}\n\t\t\treturn val\n\t\t})\n\t}\n}\n\nfunc removeDuplicateSlashes(u *url.URL) {\n\tif len(u.Path) > 0 {\n\t\tu.Path = rxDupSlashes.ReplaceAllString(u.Path, \"/\")\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonreference/reference.go",
    "content": "// Copyright 2013 sigu-399 ( https://github.com/sigu-399 )\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//   http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// author       sigu-399\n// author-github  https://github.com/sigu-399\n// author-mail    sigu.399@gmail.com\n//\n// repository-name  jsonreference\n// repository-desc  An implementation of JSON Reference - Go language\n//\n// description    Main and unique file.\n//\n// created        26-02-2013\n\npackage jsonreference\n\nimport (\n\t\"errors\"\n\t\"net/url\"\n\t\"strings\"\n\n\t\"github.com/go-openapi/jsonpointer\"\n\t\"github.com/go-openapi/jsonreference/internal\"\n)\n\nconst (\n\tfragmentRune = `#`\n)\n\n// New creates a new reference for the given string\nfunc New(jsonReferenceString string) (Ref, error) {\n\n\tvar r Ref\n\terr := r.parse(jsonReferenceString)\n\treturn r, err\n\n}\n\n// MustCreateRef parses the ref string and panics when it's invalid.\n// Use the New method for a version that returns an error\nfunc MustCreateRef(ref string) Ref {\n\tr, err := New(ref)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn r\n}\n\n// Ref represents a json reference object\ntype Ref struct {\n\treferenceURL     *url.URL\n\treferencePointer jsonpointer.Pointer\n\n\tHasFullURL      bool\n\tHasURLPathOnly  bool\n\tHasFragmentOnly bool\n\tHasFileScheme   bool\n\tHasFullFilePath bool\n}\n\n// GetURL gets the URL for this reference\nfunc (r *Ref) GetURL() *url.URL {\n\treturn r.referenceURL\n}\n\n// GetPointer gets the json pointer for this reference\nfunc (r *Ref) GetPointer() *jsonpointer.Pointer {\n\treturn &r.referencePointer\n}\n\n// String returns the best version of the url for this reference\nfunc (r *Ref) String() string {\n\n\tif r.referenceURL != nil {\n\t\treturn r.referenceURL.String()\n\t}\n\n\tif r.HasFragmentOnly {\n\t\treturn fragmentRune + r.referencePointer.String()\n\t}\n\n\treturn r.referencePointer.String()\n}\n\n// IsRoot returns true if this reference is a root document\nfunc (r *Ref) IsRoot() bool {\n\treturn r.referenceURL != nil &&\n\t\t!r.IsCanonical() &&\n\t\t!r.HasURLPathOnly &&\n\t\tr.referenceURL.Fragment == \"\"\n}\n\n// IsCanonical returns true when this pointer starts with http(s):// or file://\nfunc (r *Ref) IsCanonical() bool {\n\treturn (r.HasFileScheme && r.HasFullFilePath) || (!r.HasFileScheme && r.HasFullURL)\n}\n\n// \"Constructor\", parses the given string JSON reference\nfunc (r *Ref) parse(jsonReferenceString string) error {\n\n\tparsed, err := url.Parse(jsonReferenceString)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tinternal.NormalizeURL(parsed)\n\n\tr.referenceURL = parsed\n\trefURL := r.referenceURL\n\n\tif refURL.Scheme != \"\" && refURL.Host != \"\" {\n\t\tr.HasFullURL = true\n\t} else {\n\t\tif refURL.Path != \"\" {\n\t\t\tr.HasURLPathOnly = true\n\t\t} else if refURL.RawQuery == \"\" && refURL.Fragment != \"\" {\n\t\t\tr.HasFragmentOnly = true\n\t\t}\n\t}\n\n\tr.HasFileScheme = refURL.Scheme == \"file\"\n\tr.HasFullFilePath = strings.HasPrefix(refURL.Path, \"/\")\n\n\t// invalid json-pointer error means url has no json-pointer fragment. simply ignore error\n\tr.referencePointer, _ = jsonpointer.New(refURL.Fragment)\n\n\treturn nil\n}\n\n// Inherits creates a new reference from a parent and a child\n// If the child cannot inherit from the parent, an error is returned\nfunc (r *Ref) Inherits(child Ref) (*Ref, error) {\n\tchildURL := child.GetURL()\n\tparentURL := r.GetURL()\n\tif childURL == nil {\n\t\treturn nil, errors.New(\"child url is nil\")\n\t}\n\tif parentURL == nil {\n\t\treturn &child, nil\n\t}\n\n\tref, err := New(parentURL.ResolveReference(childURL).String())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &ref, nil\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/AUTHORS",
    "content": "# This is the official list of GoGo authors for copyright purposes.\n# This file is distinct from the CONTRIBUTORS file, which\n# lists people.  For example, employees are listed in CONTRIBUTORS,\n# but not in AUTHORS, because the employer holds the copyright.\n\n# Names should be added to this file as one of\n#     Organization's name\n#     Individual's name <submission email address>\n#     Individual's name <submission email address> <email2> <emailN>\n\n# Please keep the list sorted.\n\nSendgrid, Inc\nVastech SA (PTY) LTD\nWalter Schulze <awalterschulze@gmail.com>\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/CONTRIBUTORS",
    "content": "Anton Povarov <anton.povarov@gmail.com>\nBrian Goff <cpuguy83@gmail.com>\nClayton Coleman <ccoleman@redhat.com>\nDenis Smirnov <denis.smirnov.91@gmail.com>\nDongYun Kang <ceram1000@gmail.com>\nDwayne Schultz <dschultz@pivotal.io>\nGeorg Apitz <gapitz@pivotal.io>\nGustav Paul <gustav.paul@gmail.com>\nJohan Brandhorst <johan.brandhorst@gmail.com>\nJohn Shahid <jvshahid@gmail.com>\nJohn Tuley <john@tuley.org>\nLaurent <laurent@adyoulike.com>\nPatrick Lee <patrick@dropbox.com>\nPeter Edge <peter.edge@gmail.com>\nRoger Johansson <rogeralsing@gmail.com>\nSam Nguyen <sam.nguyen@sendgrid.com>\nSergio Arbeo <serabe@gmail.com>\nStephen J Day <stephen.day@docker.com>\nTamir Duberstein <tamird@gmail.com>\nTodd Eisenberger <teisenberger@dropbox.com>\nTormod Erevik Lea <tormodlea@gmail.com>\nVyacheslav Kim <kane@sendgrid.com>\nWalter Schulze <awalterschulze@gmail.com>\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/LICENSE",
    "content": "Copyright (c) 2013, The GoGo Authors. All rights reserved.\n\nProtocol Buffers for Go with Gadgets\n\nGo support for Protocol Buffers - Google's data interchange format\n\nCopyright 2010 The Go Authors.  All rights reserved.\nhttps://github.com/golang/protobuf\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n    * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n    * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n    * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/Makefile",
    "content": "# Go support for Protocol Buffers - Google's data interchange format\n#\n# Copyright 2010 The Go Authors.  All rights reserved.\n# https://github.com/golang/protobuf\n#\n# Redistribution and use in source and binary forms, with or without\n# modification, are permitted provided that the following conditions are\n# met:\n#\n#     * Redistributions of source code must retain the above copyright\n# notice, this list of conditions and the following disclaimer.\n#     * Redistributions in binary form must reproduce the above\n# copyright notice, this list of conditions and the following disclaimer\n# in the documentation and/or other materials provided with the\n# distribution.\n#     * Neither the name of Google Inc. nor the names of its\n# contributors may be used to endorse or promote products derived from\n# this software without specific prior written permission.\n#\n# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n# \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\ninstall:\n\tgo install\n\ntest: install generate-test-pbs\n\tgo test\n\n\ngenerate-test-pbs:\n\tmake install\n\tmake -C test_proto\n\tmake -C proto3_proto\n\tmake\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/clone.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2011 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n// Protocol buffer deep copy and merge.\n// TODO: RawMessage.\n\npackage proto\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"reflect\"\n\t\"strings\"\n)\n\n// Clone returns a deep copy of a protocol buffer.\nfunc Clone(src Message) Message {\n\tin := reflect.ValueOf(src)\n\tif in.IsNil() {\n\t\treturn src\n\t}\n\tout := reflect.New(in.Type().Elem())\n\tdst := out.Interface().(Message)\n\tMerge(dst, src)\n\treturn dst\n}\n\n// Merger is the interface representing objects that can merge messages of the same type.\ntype Merger interface {\n\t// Merge merges src into this message.\n\t// Required and optional fields that are set in src will be set to that value in dst.\n\t// Elements of repeated fields will be appended.\n\t//\n\t// Merge may panic if called with a different argument type than the receiver.\n\tMerge(src Message)\n}\n\n// generatedMerger is the custom merge method that generated protos will have.\n// We must add this method since a generate Merge method will conflict with\n// many existing protos that have a Merge data field already defined.\ntype generatedMerger interface {\n\tXXX_Merge(src Message)\n}\n\n// Merge merges src into dst.\n// Required and optional fields that are set in src will be set to that value in dst.\n// Elements of repeated fields will be appended.\n// Merge panics if src and dst are not the same type, or if dst is nil.\nfunc Merge(dst, src Message) {\n\tif m, ok := dst.(Merger); ok {\n\t\tm.Merge(src)\n\t\treturn\n\t}\n\n\tin := reflect.ValueOf(src)\n\tout := reflect.ValueOf(dst)\n\tif out.IsNil() {\n\t\tpanic(\"proto: nil destination\")\n\t}\n\tif in.Type() != out.Type() {\n\t\tpanic(fmt.Sprintf(\"proto.Merge(%T, %T) type mismatch\", dst, src))\n\t}\n\tif in.IsNil() {\n\t\treturn // Merge from nil src is a noop\n\t}\n\tif m, ok := dst.(generatedMerger); ok {\n\t\tm.XXX_Merge(src)\n\t\treturn\n\t}\n\tmergeStruct(out.Elem(), in.Elem())\n}\n\nfunc mergeStruct(out, in reflect.Value) {\n\tsprop := GetProperties(in.Type())\n\tfor i := 0; i < in.NumField(); i++ {\n\t\tf := in.Type().Field(i)\n\t\tif strings.HasPrefix(f.Name, \"XXX_\") {\n\t\t\tcontinue\n\t\t}\n\t\tmergeAny(out.Field(i), in.Field(i), false, sprop.Prop[i])\n\t}\n\n\tif emIn, ok := in.Addr().Interface().(extensionsBytes); ok {\n\t\temOut := out.Addr().Interface().(extensionsBytes)\n\t\tbIn := emIn.GetExtensions()\n\t\tbOut := emOut.GetExtensions()\n\t\t*bOut = append(*bOut, *bIn...)\n\t} else if emIn, err := extendable(in.Addr().Interface()); err == nil {\n\t\temOut, _ := extendable(out.Addr().Interface())\n\t\tmIn, muIn := emIn.extensionsRead()\n\t\tif mIn != nil {\n\t\t\tmOut := emOut.extensionsWrite()\n\t\t\tmuIn.Lock()\n\t\t\tmergeExtension(mOut, mIn)\n\t\t\tmuIn.Unlock()\n\t\t}\n\t}\n\n\tuf := in.FieldByName(\"XXX_unrecognized\")\n\tif !uf.IsValid() {\n\t\treturn\n\t}\n\tuin := uf.Bytes()\n\tif len(uin) > 0 {\n\t\tout.FieldByName(\"XXX_unrecognized\").SetBytes(append([]byte(nil), uin...))\n\t}\n}\n\n// mergeAny performs a merge between two values of the same type.\n// viaPtr indicates whether the values were indirected through a pointer (implying proto2).\n// prop is set if this is a struct field (it may be nil).\nfunc mergeAny(out, in reflect.Value, viaPtr bool, prop *Properties) {\n\tif in.Type() == protoMessageType {\n\t\tif !in.IsNil() {\n\t\t\tif out.IsNil() {\n\t\t\t\tout.Set(reflect.ValueOf(Clone(in.Interface().(Message))))\n\t\t\t} else {\n\t\t\t\tMerge(out.Interface().(Message), in.Interface().(Message))\n\t\t\t}\n\t\t}\n\t\treturn\n\t}\n\tswitch in.Kind() {\n\tcase reflect.Bool, reflect.Float32, reflect.Float64, reflect.Int32, reflect.Int64,\n\t\treflect.String, reflect.Uint32, reflect.Uint64:\n\t\tif !viaPtr && isProto3Zero(in) {\n\t\t\treturn\n\t\t}\n\t\tout.Set(in)\n\tcase reflect.Interface:\n\t\t// Probably a oneof field; copy non-nil values.\n\t\tif in.IsNil() {\n\t\t\treturn\n\t\t}\n\t\t// Allocate destination if it is not set, or set to a different type.\n\t\t// Otherwise we will merge as normal.\n\t\tif out.IsNil() || out.Elem().Type() != in.Elem().Type() {\n\t\t\tout.Set(reflect.New(in.Elem().Elem().Type())) // interface -> *T -> T -> new(T)\n\t\t}\n\t\tmergeAny(out.Elem(), in.Elem(), false, nil)\n\tcase reflect.Map:\n\t\tif in.Len() == 0 {\n\t\t\treturn\n\t\t}\n\t\tif out.IsNil() {\n\t\t\tout.Set(reflect.MakeMap(in.Type()))\n\t\t}\n\t\t// For maps with value types of *T or []byte we need to deep copy each value.\n\t\telemKind := in.Type().Elem().Kind()\n\t\tfor _, key := range in.MapKeys() {\n\t\t\tvar val reflect.Value\n\t\t\tswitch elemKind {\n\t\t\tcase reflect.Ptr:\n\t\t\t\tval = reflect.New(in.Type().Elem().Elem())\n\t\t\t\tmergeAny(val, in.MapIndex(key), false, nil)\n\t\t\tcase reflect.Slice:\n\t\t\t\tval = in.MapIndex(key)\n\t\t\t\tval = reflect.ValueOf(append([]byte{}, val.Bytes()...))\n\t\t\tdefault:\n\t\t\t\tval = in.MapIndex(key)\n\t\t\t}\n\t\t\tout.SetMapIndex(key, val)\n\t\t}\n\tcase reflect.Ptr:\n\t\tif in.IsNil() {\n\t\t\treturn\n\t\t}\n\t\tif out.IsNil() {\n\t\t\tout.Set(reflect.New(in.Elem().Type()))\n\t\t}\n\t\tmergeAny(out.Elem(), in.Elem(), true, nil)\n\tcase reflect.Slice:\n\t\tif in.IsNil() {\n\t\t\treturn\n\t\t}\n\t\tif in.Type().Elem().Kind() == reflect.Uint8 {\n\t\t\t// []byte is a scalar bytes field, not a repeated field.\n\n\t\t\t// Edge case: if this is in a proto3 message, a zero length\n\t\t\t// bytes field is considered the zero value, and should not\n\t\t\t// be merged.\n\t\t\tif prop != nil && prop.proto3 && in.Len() == 0 {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Make a deep copy.\n\t\t\t// Append to []byte{} instead of []byte(nil) so that we never end up\n\t\t\t// with a nil result.\n\t\t\tout.SetBytes(append([]byte{}, in.Bytes()...))\n\t\t\treturn\n\t\t}\n\t\tn := in.Len()\n\t\tif out.IsNil() {\n\t\t\tout.Set(reflect.MakeSlice(in.Type(), 0, n))\n\t\t}\n\t\tswitch in.Type().Elem().Kind() {\n\t\tcase reflect.Bool, reflect.Float32, reflect.Float64, reflect.Int32, reflect.Int64,\n\t\t\treflect.String, reflect.Uint32, reflect.Uint64:\n\t\t\tout.Set(reflect.AppendSlice(out, in))\n\t\tdefault:\n\t\t\tfor i := 0; i < n; i++ {\n\t\t\t\tx := reflect.Indirect(reflect.New(in.Type().Elem()))\n\t\t\t\tmergeAny(x, in.Index(i), false, nil)\n\t\t\t\tout.Set(reflect.Append(out, x))\n\t\t\t}\n\t\t}\n\tcase reflect.Struct:\n\t\tmergeStruct(out, in)\n\tdefault:\n\t\t// unknown type, so not a protocol buffer\n\t\tlog.Printf(\"proto: don't know how to copy %v\", in)\n\t}\n}\n\nfunc mergeExtension(out, in map[int32]Extension) {\n\tfor extNum, eIn := range in {\n\t\teOut := Extension{desc: eIn.desc}\n\t\tif eIn.value != nil {\n\t\t\tv := reflect.New(reflect.TypeOf(eIn.value)).Elem()\n\t\t\tmergeAny(v, reflect.ValueOf(eIn.value), false, nil)\n\t\t\teOut.value = v.Interface()\n\t\t}\n\t\tif eIn.enc != nil {\n\t\t\teOut.enc = make([]byte, len(eIn.enc))\n\t\t\tcopy(eOut.enc, eIn.enc)\n\t\t}\n\n\t\tout[extNum] = eOut\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/custom_gogo.go",
    "content": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2018, The GoGo Authors. All rights reserved.\n// http://github.com/gogo/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\nimport \"reflect\"\n\ntype custom interface {\n\tMarshal() ([]byte, error)\n\tUnmarshal(data []byte) error\n\tSize() int\n}\n\nvar customType = reflect.TypeOf((*custom)(nil)).Elem()\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/decode.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2010 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\n/*\n * Routines for decoding protocol buffer data to construct in-memory representations.\n */\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n)\n\n// errOverflow is returned when an integer is too large to be represented.\nvar errOverflow = errors.New(\"proto: integer overflow\")\n\n// ErrInternalBadWireType is returned by generated code when an incorrect\n// wire type is encountered. It does not get returned to user code.\nvar ErrInternalBadWireType = errors.New(\"proto: internal error: bad wiretype for oneof\")\n\n// DecodeVarint reads a varint-encoded integer from the slice.\n// It returns the integer and the number of bytes consumed, or\n// zero if there is not enough.\n// This is the format for the\n// int32, int64, uint32, uint64, bool, and enum\n// protocol buffer types.\nfunc DecodeVarint(buf []byte) (x uint64, n int) {\n\tfor shift := uint(0); shift < 64; shift += 7 {\n\t\tif n >= len(buf) {\n\t\t\treturn 0, 0\n\t\t}\n\t\tb := uint64(buf[n])\n\t\tn++\n\t\tx |= (b & 0x7F) << shift\n\t\tif (b & 0x80) == 0 {\n\t\t\treturn x, n\n\t\t}\n\t}\n\n\t// The number is too large to represent in a 64-bit value.\n\treturn 0, 0\n}\n\nfunc (p *Buffer) decodeVarintSlow() (x uint64, err error) {\n\ti := p.index\n\tl := len(p.buf)\n\n\tfor shift := uint(0); shift < 64; shift += 7 {\n\t\tif i >= l {\n\t\t\terr = io.ErrUnexpectedEOF\n\t\t\treturn\n\t\t}\n\t\tb := p.buf[i]\n\t\ti++\n\t\tx |= (uint64(b) & 0x7F) << shift\n\t\tif b < 0x80 {\n\t\t\tp.index = i\n\t\t\treturn\n\t\t}\n\t}\n\n\t// The number is too large to represent in a 64-bit value.\n\terr = errOverflow\n\treturn\n}\n\n// DecodeVarint reads a varint-encoded integer from the Buffer.\n// This is the format for the\n// int32, int64, uint32, uint64, bool, and enum\n// protocol buffer types.\nfunc (p *Buffer) DecodeVarint() (x uint64, err error) {\n\ti := p.index\n\tbuf := p.buf\n\n\tif i >= len(buf) {\n\t\treturn 0, io.ErrUnexpectedEOF\n\t} else if buf[i] < 0x80 {\n\t\tp.index++\n\t\treturn uint64(buf[i]), nil\n\t} else if len(buf)-i < 10 {\n\t\treturn p.decodeVarintSlow()\n\t}\n\n\tvar b uint64\n\t// we already checked the first byte\n\tx = uint64(buf[i]) - 0x80\n\ti++\n\n\tb = uint64(buf[i])\n\ti++\n\tx += b << 7\n\tif b&0x80 == 0 {\n\t\tgoto done\n\t}\n\tx -= 0x80 << 7\n\n\tb = uint64(buf[i])\n\ti++\n\tx += b << 14\n\tif b&0x80 == 0 {\n\t\tgoto done\n\t}\n\tx -= 0x80 << 14\n\n\tb = uint64(buf[i])\n\ti++\n\tx += b << 21\n\tif b&0x80 == 0 {\n\t\tgoto done\n\t}\n\tx -= 0x80 << 21\n\n\tb = uint64(buf[i])\n\ti++\n\tx += b << 28\n\tif b&0x80 == 0 {\n\t\tgoto done\n\t}\n\tx -= 0x80 << 28\n\n\tb = uint64(buf[i])\n\ti++\n\tx += b << 35\n\tif b&0x80 == 0 {\n\t\tgoto done\n\t}\n\tx -= 0x80 << 35\n\n\tb = uint64(buf[i])\n\ti++\n\tx += b << 42\n\tif b&0x80 == 0 {\n\t\tgoto done\n\t}\n\tx -= 0x80 << 42\n\n\tb = uint64(buf[i])\n\ti++\n\tx += b << 49\n\tif b&0x80 == 0 {\n\t\tgoto done\n\t}\n\tx -= 0x80 << 49\n\n\tb = uint64(buf[i])\n\ti++\n\tx += b << 56\n\tif b&0x80 == 0 {\n\t\tgoto done\n\t}\n\tx -= 0x80 << 56\n\n\tb = uint64(buf[i])\n\ti++\n\tx += b << 63\n\tif b&0x80 == 0 {\n\t\tgoto done\n\t}\n\n\treturn 0, errOverflow\n\ndone:\n\tp.index = i\n\treturn x, nil\n}\n\n// DecodeFixed64 reads a 64-bit integer from the Buffer.\n// This is the format for the\n// fixed64, sfixed64, and double protocol buffer types.\nfunc (p *Buffer) DecodeFixed64() (x uint64, err error) {\n\t// x, err already 0\n\ti := p.index + 8\n\tif i < 0 || i > len(p.buf) {\n\t\terr = io.ErrUnexpectedEOF\n\t\treturn\n\t}\n\tp.index = i\n\n\tx = uint64(p.buf[i-8])\n\tx |= uint64(p.buf[i-7]) << 8\n\tx |= uint64(p.buf[i-6]) << 16\n\tx |= uint64(p.buf[i-5]) << 24\n\tx |= uint64(p.buf[i-4]) << 32\n\tx |= uint64(p.buf[i-3]) << 40\n\tx |= uint64(p.buf[i-2]) << 48\n\tx |= uint64(p.buf[i-1]) << 56\n\treturn\n}\n\n// DecodeFixed32 reads a 32-bit integer from the Buffer.\n// This is the format for the\n// fixed32, sfixed32, and float protocol buffer types.\nfunc (p *Buffer) DecodeFixed32() (x uint64, err error) {\n\t// x, err already 0\n\ti := p.index + 4\n\tif i < 0 || i > len(p.buf) {\n\t\terr = io.ErrUnexpectedEOF\n\t\treturn\n\t}\n\tp.index = i\n\n\tx = uint64(p.buf[i-4])\n\tx |= uint64(p.buf[i-3]) << 8\n\tx |= uint64(p.buf[i-2]) << 16\n\tx |= uint64(p.buf[i-1]) << 24\n\treturn\n}\n\n// DecodeZigzag64 reads a zigzag-encoded 64-bit integer\n// from the Buffer.\n// This is the format used for the sint64 protocol buffer type.\nfunc (p *Buffer) DecodeZigzag64() (x uint64, err error) {\n\tx, err = p.DecodeVarint()\n\tif err != nil {\n\t\treturn\n\t}\n\tx = (x >> 1) ^ uint64((int64(x&1)<<63)>>63)\n\treturn\n}\n\n// DecodeZigzag32 reads a zigzag-encoded 32-bit integer\n// from  the Buffer.\n// This is the format used for the sint32 protocol buffer type.\nfunc (p *Buffer) DecodeZigzag32() (x uint64, err error) {\n\tx, err = p.DecodeVarint()\n\tif err != nil {\n\t\treturn\n\t}\n\tx = uint64((uint32(x) >> 1) ^ uint32((int32(x&1)<<31)>>31))\n\treturn\n}\n\n// DecodeRawBytes reads a count-delimited byte buffer from the Buffer.\n// This is the format used for the bytes protocol buffer\n// type and for embedded messages.\nfunc (p *Buffer) DecodeRawBytes(alloc bool) (buf []byte, err error) {\n\tn, err := p.DecodeVarint()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tnb := int(n)\n\tif nb < 0 {\n\t\treturn nil, fmt.Errorf(\"proto: bad byte length %d\", nb)\n\t}\n\tend := p.index + nb\n\tif end < p.index || end > len(p.buf) {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\n\tif !alloc {\n\t\t// todo: check if can get more uses of alloc=false\n\t\tbuf = p.buf[p.index:end]\n\t\tp.index += nb\n\t\treturn\n\t}\n\n\tbuf = make([]byte, nb)\n\tcopy(buf, p.buf[p.index:])\n\tp.index += nb\n\treturn\n}\n\n// DecodeStringBytes reads an encoded string from the Buffer.\n// This is the format used for the proto2 string type.\nfunc (p *Buffer) DecodeStringBytes() (s string, err error) {\n\tbuf, err := p.DecodeRawBytes(false)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn string(buf), nil\n}\n\n// Unmarshaler is the interface representing objects that can\n// unmarshal themselves.  The argument points to data that may be\n// overwritten, so implementations should not keep references to the\n// buffer.\n// Unmarshal implementations should not clear the receiver.\n// Any unmarshaled data should be merged into the receiver.\n// Callers of Unmarshal that do not want to retain existing data\n// should Reset the receiver before calling Unmarshal.\ntype Unmarshaler interface {\n\tUnmarshal([]byte) error\n}\n\n// newUnmarshaler is the interface representing objects that can\n// unmarshal themselves. The semantics are identical to Unmarshaler.\n//\n// This exists to support protoc-gen-go generated messages.\n// The proto package will stop type-asserting to this interface in the future.\n//\n// DO NOT DEPEND ON THIS.\ntype newUnmarshaler interface {\n\tXXX_Unmarshal([]byte) error\n}\n\n// Unmarshal parses the protocol buffer representation in buf and places the\n// decoded result in pb.  If the struct underlying pb does not match\n// the data in buf, the results can be unpredictable.\n//\n// Unmarshal resets pb before starting to unmarshal, so any\n// existing data in pb is always removed. Use UnmarshalMerge\n// to preserve and append to existing data.\nfunc Unmarshal(buf []byte, pb Message) error {\n\tpb.Reset()\n\tif u, ok := pb.(newUnmarshaler); ok {\n\t\treturn u.XXX_Unmarshal(buf)\n\t}\n\tif u, ok := pb.(Unmarshaler); ok {\n\t\treturn u.Unmarshal(buf)\n\t}\n\treturn NewBuffer(buf).Unmarshal(pb)\n}\n\n// UnmarshalMerge parses the protocol buffer representation in buf and\n// writes the decoded result to pb.  If the struct underlying pb does not match\n// the data in buf, the results can be unpredictable.\n//\n// UnmarshalMerge merges into existing data in pb.\n// Most code should use Unmarshal instead.\nfunc UnmarshalMerge(buf []byte, pb Message) error {\n\tif u, ok := pb.(newUnmarshaler); ok {\n\t\treturn u.XXX_Unmarshal(buf)\n\t}\n\tif u, ok := pb.(Unmarshaler); ok {\n\t\t// NOTE: The history of proto have unfortunately been inconsistent\n\t\t// whether Unmarshaler should or should not implicitly clear itself.\n\t\t// Some implementations do, most do not.\n\t\t// Thus, calling this here may or may not do what people want.\n\t\t//\n\t\t// See https://github.com/golang/protobuf/issues/424\n\t\treturn u.Unmarshal(buf)\n\t}\n\treturn NewBuffer(buf).Unmarshal(pb)\n}\n\n// DecodeMessage reads a count-delimited message from the Buffer.\nfunc (p *Buffer) DecodeMessage(pb Message) error {\n\tenc, err := p.DecodeRawBytes(false)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn NewBuffer(enc).Unmarshal(pb)\n}\n\n// DecodeGroup reads a tag-delimited group from the Buffer.\n// StartGroup tag is already consumed. This function consumes\n// EndGroup tag.\nfunc (p *Buffer) DecodeGroup(pb Message) error {\n\tb := p.buf[p.index:]\n\tx, y := findEndGroup(b)\n\tif x < 0 {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\terr := Unmarshal(b[:x], pb)\n\tp.index += y\n\treturn err\n}\n\n// Unmarshal parses the protocol buffer representation in the\n// Buffer and places the decoded result in pb.  If the struct\n// underlying pb does not match the data in the buffer, the results can be\n// unpredictable.\n//\n// Unlike proto.Unmarshal, this does not reset pb before starting to unmarshal.\nfunc (p *Buffer) Unmarshal(pb Message) error {\n\t// If the object can unmarshal itself, let it.\n\tif u, ok := pb.(newUnmarshaler); ok {\n\t\terr := u.XXX_Unmarshal(p.buf[p.index:])\n\t\tp.index = len(p.buf)\n\t\treturn err\n\t}\n\tif u, ok := pb.(Unmarshaler); ok {\n\t\t// NOTE: The history of proto have unfortunately been inconsistent\n\t\t// whether Unmarshaler should or should not implicitly clear itself.\n\t\t// Some implementations do, most do not.\n\t\t// Thus, calling this here may or may not do what people want.\n\t\t//\n\t\t// See https://github.com/golang/protobuf/issues/424\n\t\terr := u.Unmarshal(p.buf[p.index:])\n\t\tp.index = len(p.buf)\n\t\treturn err\n\t}\n\n\t// Slow workaround for messages that aren't Unmarshalers.\n\t// This includes some hand-coded .pb.go files and\n\t// bootstrap protos.\n\t// TODO: fix all of those and then add Unmarshal to\n\t// the Message interface. Then:\n\t// The cast above and code below can be deleted.\n\t// The old unmarshaler can be deleted.\n\t// Clients can call Unmarshal directly (can already do that, actually).\n\tvar info InternalMessageInfo\n\terr := info.Unmarshal(pb, p.buf[p.index:])\n\tp.index = len(p.buf)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/deprecated.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2018 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\nimport \"errors\"\n\n// Deprecated: do not use.\ntype Stats struct{ Emalloc, Dmalloc, Encode, Decode, Chit, Cmiss, Size uint64 }\n\n// Deprecated: do not use.\nfunc GetStats() Stats { return Stats{} }\n\n// Deprecated: do not use.\nfunc MarshalMessageSet(interface{}) ([]byte, error) {\n\treturn nil, errors.New(\"proto: not implemented\")\n}\n\n// Deprecated: do not use.\nfunc UnmarshalMessageSet([]byte, interface{}) error {\n\treturn errors.New(\"proto: not implemented\")\n}\n\n// Deprecated: do not use.\nfunc MarshalMessageSetJSON(interface{}) ([]byte, error) {\n\treturn nil, errors.New(\"proto: not implemented\")\n}\n\n// Deprecated: do not use.\nfunc UnmarshalMessageSetJSON([]byte, interface{}) error {\n\treturn errors.New(\"proto: not implemented\")\n}\n\n// Deprecated: do not use.\nfunc RegisterMessageSetType(Message, int32, string) {}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/discard.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2017 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n)\n\ntype generatedDiscarder interface {\n\tXXX_DiscardUnknown()\n}\n\n// DiscardUnknown recursively discards all unknown fields from this message\n// and all embedded messages.\n//\n// When unmarshaling a message with unrecognized fields, the tags and values\n// of such fields are preserved in the Message. This allows a later call to\n// marshal to be able to produce a message that continues to have those\n// unrecognized fields. To avoid this, DiscardUnknown is used to\n// explicitly clear the unknown fields after unmarshaling.\n//\n// For proto2 messages, the unknown fields of message extensions are only\n// discarded from messages that have been accessed via GetExtension.\nfunc DiscardUnknown(m Message) {\n\tif m, ok := m.(generatedDiscarder); ok {\n\t\tm.XXX_DiscardUnknown()\n\t\treturn\n\t}\n\t// TODO: Dynamically populate a InternalMessageInfo for legacy messages,\n\t// but the master branch has no implementation for InternalMessageInfo,\n\t// so it would be more work to replicate that approach.\n\tdiscardLegacy(m)\n}\n\n// DiscardUnknown recursively discards all unknown fields.\nfunc (a *InternalMessageInfo) DiscardUnknown(m Message) {\n\tdi := atomicLoadDiscardInfo(&a.discard)\n\tif di == nil {\n\t\tdi = getDiscardInfo(reflect.TypeOf(m).Elem())\n\t\tatomicStoreDiscardInfo(&a.discard, di)\n\t}\n\tdi.discard(toPointer(&m))\n}\n\ntype discardInfo struct {\n\ttyp reflect.Type\n\n\tinitialized int32 // 0: only typ is valid, 1: everything is valid\n\tlock        sync.Mutex\n\n\tfields       []discardFieldInfo\n\tunrecognized field\n}\n\ntype discardFieldInfo struct {\n\tfield   field // Offset of field, guaranteed to be valid\n\tdiscard func(src pointer)\n}\n\nvar (\n\tdiscardInfoMap  = map[reflect.Type]*discardInfo{}\n\tdiscardInfoLock sync.Mutex\n)\n\nfunc getDiscardInfo(t reflect.Type) *discardInfo {\n\tdiscardInfoLock.Lock()\n\tdefer discardInfoLock.Unlock()\n\tdi := discardInfoMap[t]\n\tif di == nil {\n\t\tdi = &discardInfo{typ: t}\n\t\tdiscardInfoMap[t] = di\n\t}\n\treturn di\n}\n\nfunc (di *discardInfo) discard(src pointer) {\n\tif src.isNil() {\n\t\treturn // Nothing to do.\n\t}\n\n\tif atomic.LoadInt32(&di.initialized) == 0 {\n\t\tdi.computeDiscardInfo()\n\t}\n\n\tfor _, fi := range di.fields {\n\t\tsfp := src.offset(fi.field)\n\t\tfi.discard(sfp)\n\t}\n\n\t// For proto2 messages, only discard unknown fields in message extensions\n\t// that have been accessed via GetExtension.\n\tif em, err := extendable(src.asPointerTo(di.typ).Interface()); err == nil {\n\t\t// Ignore lock since DiscardUnknown is not concurrency safe.\n\t\temm, _ := em.extensionsRead()\n\t\tfor _, mx := range emm {\n\t\t\tif m, ok := mx.value.(Message); ok {\n\t\t\t\tDiscardUnknown(m)\n\t\t\t}\n\t\t}\n\t}\n\n\tif di.unrecognized.IsValid() {\n\t\t*src.offset(di.unrecognized).toBytes() = nil\n\t}\n}\n\nfunc (di *discardInfo) computeDiscardInfo() {\n\tdi.lock.Lock()\n\tdefer di.lock.Unlock()\n\tif di.initialized != 0 {\n\t\treturn\n\t}\n\tt := di.typ\n\tn := t.NumField()\n\n\tfor i := 0; i < n; i++ {\n\t\tf := t.Field(i)\n\t\tif strings.HasPrefix(f.Name, \"XXX_\") {\n\t\t\tcontinue\n\t\t}\n\n\t\tdfi := discardFieldInfo{field: toField(&f)}\n\t\ttf := f.Type\n\n\t\t// Unwrap tf to get its most basic type.\n\t\tvar isPointer, isSlice bool\n\t\tif tf.Kind() == reflect.Slice && tf.Elem().Kind() != reflect.Uint8 {\n\t\t\tisSlice = true\n\t\t\ttf = tf.Elem()\n\t\t}\n\t\tif tf.Kind() == reflect.Ptr {\n\t\t\tisPointer = true\n\t\t\ttf = tf.Elem()\n\t\t}\n\t\tif isPointer && isSlice && tf.Kind() != reflect.Struct {\n\t\t\tpanic(fmt.Sprintf(\"%v.%s cannot be a slice of pointers to primitive types\", t, f.Name))\n\t\t}\n\n\t\tswitch tf.Kind() {\n\t\tcase reflect.Struct:\n\t\t\tswitch {\n\t\t\tcase !isPointer:\n\t\t\t\tpanic(fmt.Sprintf(\"%v.%s cannot be a direct struct value\", t, f.Name))\n\t\t\tcase isSlice: // E.g., []*pb.T\n\t\t\t\tdiscardInfo := getDiscardInfo(tf)\n\t\t\t\tdfi.discard = func(src pointer) {\n\t\t\t\t\tsps := src.getPointerSlice()\n\t\t\t\t\tfor _, sp := range sps {\n\t\t\t\t\t\tif !sp.isNil() {\n\t\t\t\t\t\t\tdiscardInfo.discard(sp)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault: // E.g., *pb.T\n\t\t\t\tdiscardInfo := getDiscardInfo(tf)\n\t\t\t\tdfi.discard = func(src pointer) {\n\t\t\t\t\tsp := src.getPointer()\n\t\t\t\t\tif !sp.isNil() {\n\t\t\t\t\t\tdiscardInfo.discard(sp)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase reflect.Map:\n\t\t\tswitch {\n\t\t\tcase isPointer || isSlice:\n\t\t\t\tpanic(fmt.Sprintf(\"%v.%s cannot be a pointer to a map or a slice of map values\", t, f.Name))\n\t\t\tdefault: // E.g., map[K]V\n\t\t\t\tif tf.Elem().Kind() == reflect.Ptr { // Proto struct (e.g., *T)\n\t\t\t\t\tdfi.discard = func(src pointer) {\n\t\t\t\t\t\tsm := src.asPointerTo(tf).Elem()\n\t\t\t\t\t\tif sm.Len() == 0 {\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor _, key := range sm.MapKeys() {\n\t\t\t\t\t\t\tval := sm.MapIndex(key)\n\t\t\t\t\t\t\tDiscardUnknown(val.Interface().(Message))\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tdfi.discard = func(pointer) {} // Noop\n\t\t\t\t}\n\t\t\t}\n\t\tcase reflect.Interface:\n\t\t\t// Must be oneof field.\n\t\t\tswitch {\n\t\t\tcase isPointer || isSlice:\n\t\t\t\tpanic(fmt.Sprintf(\"%v.%s cannot be a pointer to a interface or a slice of interface values\", t, f.Name))\n\t\t\tdefault: // E.g., interface{}\n\t\t\t\t// TODO: Make this faster?\n\t\t\t\tdfi.discard = func(src pointer) {\n\t\t\t\t\tsu := src.asPointerTo(tf).Elem()\n\t\t\t\t\tif !su.IsNil() {\n\t\t\t\t\t\tsv := su.Elem().Elem().Field(0)\n\t\t\t\t\t\tif sv.Kind() == reflect.Ptr && sv.IsNil() {\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t\tswitch sv.Type().Kind() {\n\t\t\t\t\t\tcase reflect.Ptr: // Proto struct (e.g., *T)\n\t\t\t\t\t\t\tDiscardUnknown(sv.Interface().(Message))\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tcontinue\n\t\t}\n\t\tdi.fields = append(di.fields, dfi)\n\t}\n\n\tdi.unrecognized = invalidField\n\tif f, ok := t.FieldByName(\"XXX_unrecognized\"); ok {\n\t\tif f.Type != reflect.TypeOf([]byte{}) {\n\t\t\tpanic(\"expected XXX_unrecognized to be of type []byte\")\n\t\t}\n\t\tdi.unrecognized = toField(&f)\n\t}\n\n\tatomic.StoreInt32(&di.initialized, 1)\n}\n\nfunc discardLegacy(m Message) {\n\tv := reflect.ValueOf(m)\n\tif v.Kind() != reflect.Ptr || v.IsNil() {\n\t\treturn\n\t}\n\tv = v.Elem()\n\tif v.Kind() != reflect.Struct {\n\t\treturn\n\t}\n\tt := v.Type()\n\n\tfor i := 0; i < v.NumField(); i++ {\n\t\tf := t.Field(i)\n\t\tif strings.HasPrefix(f.Name, \"XXX_\") {\n\t\t\tcontinue\n\t\t}\n\t\tvf := v.Field(i)\n\t\ttf := f.Type\n\n\t\t// Unwrap tf to get its most basic type.\n\t\tvar isPointer, isSlice bool\n\t\tif tf.Kind() == reflect.Slice && tf.Elem().Kind() != reflect.Uint8 {\n\t\t\tisSlice = true\n\t\t\ttf = tf.Elem()\n\t\t}\n\t\tif tf.Kind() == reflect.Ptr {\n\t\t\tisPointer = true\n\t\t\ttf = tf.Elem()\n\t\t}\n\t\tif isPointer && isSlice && tf.Kind() != reflect.Struct {\n\t\t\tpanic(fmt.Sprintf(\"%T.%s cannot be a slice of pointers to primitive types\", m, f.Name))\n\t\t}\n\n\t\tswitch tf.Kind() {\n\t\tcase reflect.Struct:\n\t\t\tswitch {\n\t\t\tcase !isPointer:\n\t\t\t\tpanic(fmt.Sprintf(\"%T.%s cannot be a direct struct value\", m, f.Name))\n\t\t\tcase isSlice: // E.g., []*pb.T\n\t\t\t\tfor j := 0; j < vf.Len(); j++ {\n\t\t\t\t\tdiscardLegacy(vf.Index(j).Interface().(Message))\n\t\t\t\t}\n\t\t\tdefault: // E.g., *pb.T\n\t\t\t\tdiscardLegacy(vf.Interface().(Message))\n\t\t\t}\n\t\tcase reflect.Map:\n\t\t\tswitch {\n\t\t\tcase isPointer || isSlice:\n\t\t\t\tpanic(fmt.Sprintf(\"%T.%s cannot be a pointer to a map or a slice of map values\", m, f.Name))\n\t\t\tdefault: // E.g., map[K]V\n\t\t\t\ttv := vf.Type().Elem()\n\t\t\t\tif tv.Kind() == reflect.Ptr && tv.Implements(protoMessageType) { // Proto struct (e.g., *T)\n\t\t\t\t\tfor _, key := range vf.MapKeys() {\n\t\t\t\t\t\tval := vf.MapIndex(key)\n\t\t\t\t\t\tdiscardLegacy(val.Interface().(Message))\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase reflect.Interface:\n\t\t\t// Must be oneof field.\n\t\t\tswitch {\n\t\t\tcase isPointer || isSlice:\n\t\t\t\tpanic(fmt.Sprintf(\"%T.%s cannot be a pointer to a interface or a slice of interface values\", m, f.Name))\n\t\t\tdefault: // E.g., test_proto.isCommunique_Union interface\n\t\t\t\tif !vf.IsNil() && f.Tag.Get(\"protobuf_oneof\") != \"\" {\n\t\t\t\t\tvf = vf.Elem() // E.g., *test_proto.Communique_Msg\n\t\t\t\t\tif !vf.IsNil() {\n\t\t\t\t\t\tvf = vf.Elem()   // E.g., test_proto.Communique_Msg\n\t\t\t\t\t\tvf = vf.Field(0) // E.g., Proto struct (e.g., *T) or primitive value\n\t\t\t\t\t\tif vf.Kind() == reflect.Ptr {\n\t\t\t\t\t\t\tdiscardLegacy(vf.Interface().(Message))\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif vf := v.FieldByName(\"XXX_unrecognized\"); vf.IsValid() {\n\t\tif vf.Type() != reflect.TypeOf([]byte{}) {\n\t\t\tpanic(\"expected XXX_unrecognized to be of type []byte\")\n\t\t}\n\t\tvf.Set(reflect.ValueOf([]byte(nil)))\n\t}\n\n\t// For proto2 messages, only discard unknown fields in message extensions\n\t// that have been accessed via GetExtension.\n\tif em, err := extendable(m); err == nil {\n\t\t// Ignore lock since discardLegacy is not concurrency safe.\n\t\temm, _ := em.extensionsRead()\n\t\tfor _, mx := range emm {\n\t\t\tif m, ok := mx.value.(Message); ok {\n\t\t\t\tdiscardLegacy(m)\n\t\t\t}\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/duration.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2016 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\n// This file implements conversions between google.protobuf.Duration\n// and time.Duration.\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"time\"\n)\n\nconst (\n\t// Range of a Duration in seconds, as specified in\n\t// google/protobuf/duration.proto. This is about 10,000 years in seconds.\n\tmaxSeconds = int64(10000 * 365.25 * 24 * 60 * 60)\n\tminSeconds = -maxSeconds\n)\n\n// validateDuration determines whether the Duration is valid according to the\n// definition in google/protobuf/duration.proto. A valid Duration\n// may still be too large to fit into a time.Duration (the range of Duration\n// is about 10,000 years, and the range of time.Duration is about 290).\nfunc validateDuration(d *duration) error {\n\tif d == nil {\n\t\treturn errors.New(\"duration: nil Duration\")\n\t}\n\tif d.Seconds < minSeconds || d.Seconds > maxSeconds {\n\t\treturn fmt.Errorf(\"duration: %#v: seconds out of range\", d)\n\t}\n\tif d.Nanos <= -1e9 || d.Nanos >= 1e9 {\n\t\treturn fmt.Errorf(\"duration: %#v: nanos out of range\", d)\n\t}\n\t// Seconds and Nanos must have the same sign, unless d.Nanos is zero.\n\tif (d.Seconds < 0 && d.Nanos > 0) || (d.Seconds > 0 && d.Nanos < 0) {\n\t\treturn fmt.Errorf(\"duration: %#v: seconds and nanos have different signs\", d)\n\t}\n\treturn nil\n}\n\n// DurationFromProto converts a Duration to a time.Duration. DurationFromProto\n// returns an error if the Duration is invalid or is too large to be\n// represented in a time.Duration.\nfunc durationFromProto(p *duration) (time.Duration, error) {\n\tif err := validateDuration(p); err != nil {\n\t\treturn 0, err\n\t}\n\td := time.Duration(p.Seconds) * time.Second\n\tif int64(d/time.Second) != p.Seconds {\n\t\treturn 0, fmt.Errorf(\"duration: %#v is out of range for time.Duration\", p)\n\t}\n\tif p.Nanos != 0 {\n\t\td += time.Duration(p.Nanos)\n\t\tif (d < 0) != (p.Nanos < 0) {\n\t\t\treturn 0, fmt.Errorf(\"duration: %#v is out of range for time.Duration\", p)\n\t\t}\n\t}\n\treturn d, nil\n}\n\n// DurationProto converts a time.Duration to a Duration.\nfunc durationProto(d time.Duration) *duration {\n\tnanos := d.Nanoseconds()\n\tsecs := nanos / 1e9\n\tnanos -= secs * 1e9\n\treturn &duration{\n\t\tSeconds: secs,\n\t\tNanos:   int32(nanos),\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/duration_gogo.go",
    "content": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2016, The GoGo Authors. All rights reserved.\n// http://github.com/gogo/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\nimport (\n\t\"reflect\"\n\t\"time\"\n)\n\nvar durationType = reflect.TypeOf((*time.Duration)(nil)).Elem()\n\ntype duration struct {\n\tSeconds int64 `protobuf:\"varint,1,opt,name=seconds,proto3\" json:\"seconds,omitempty\"`\n\tNanos   int32 `protobuf:\"varint,2,opt,name=nanos,proto3\" json:\"nanos,omitempty\"`\n}\n\nfunc (m *duration) Reset()       { *m = duration{} }\nfunc (*duration) ProtoMessage()  {}\nfunc (*duration) String() string { return \"duration<string>\" }\n\nfunc init() {\n\tRegisterType((*duration)(nil), \"gogo.protobuf.proto.duration\")\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/encode.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2010 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\n/*\n * Routines for encoding data into the wire format for protocol buffers.\n */\n\nimport (\n\t\"errors\"\n\t\"reflect\"\n)\n\nvar (\n\t// errRepeatedHasNil is the error returned if Marshal is called with\n\t// a struct with a repeated field containing a nil element.\n\terrRepeatedHasNil = errors.New(\"proto: repeated field has nil element\")\n\n\t// errOneofHasNil is the error returned if Marshal is called with\n\t// a struct with a oneof field containing a nil element.\n\terrOneofHasNil = errors.New(\"proto: oneof field has nil value\")\n\n\t// ErrNil is the error returned if Marshal is called with nil.\n\tErrNil = errors.New(\"proto: Marshal called with nil\")\n\n\t// ErrTooLarge is the error returned if Marshal is called with a\n\t// message that encodes to >2GB.\n\tErrTooLarge = errors.New(\"proto: message encodes to over 2 GB\")\n)\n\n// The fundamental encoders that put bytes on the wire.\n// Those that take integer types all accept uint64 and are\n// therefore of type valueEncoder.\n\nconst maxVarintBytes = 10 // maximum length of a varint\n\n// EncodeVarint returns the varint encoding of x.\n// This is the format for the\n// int32, int64, uint32, uint64, bool, and enum\n// protocol buffer types.\n// Not used by the package itself, but helpful to clients\n// wishing to use the same encoding.\nfunc EncodeVarint(x uint64) []byte {\n\tvar buf [maxVarintBytes]byte\n\tvar n int\n\tfor n = 0; x > 127; n++ {\n\t\tbuf[n] = 0x80 | uint8(x&0x7F)\n\t\tx >>= 7\n\t}\n\tbuf[n] = uint8(x)\n\tn++\n\treturn buf[0:n]\n}\n\n// EncodeVarint writes a varint-encoded integer to the Buffer.\n// This is the format for the\n// int32, int64, uint32, uint64, bool, and enum\n// protocol buffer types.\nfunc (p *Buffer) EncodeVarint(x uint64) error {\n\tfor x >= 1<<7 {\n\t\tp.buf = append(p.buf, uint8(x&0x7f|0x80))\n\t\tx >>= 7\n\t}\n\tp.buf = append(p.buf, uint8(x))\n\treturn nil\n}\n\n// SizeVarint returns the varint encoding size of an integer.\nfunc SizeVarint(x uint64) int {\n\tswitch {\n\tcase x < 1<<7:\n\t\treturn 1\n\tcase x < 1<<14:\n\t\treturn 2\n\tcase x < 1<<21:\n\t\treturn 3\n\tcase x < 1<<28:\n\t\treturn 4\n\tcase x < 1<<35:\n\t\treturn 5\n\tcase x < 1<<42:\n\t\treturn 6\n\tcase x < 1<<49:\n\t\treturn 7\n\tcase x < 1<<56:\n\t\treturn 8\n\tcase x < 1<<63:\n\t\treturn 9\n\t}\n\treturn 10\n}\n\n// EncodeFixed64 writes a 64-bit integer to the Buffer.\n// This is the format for the\n// fixed64, sfixed64, and double protocol buffer types.\nfunc (p *Buffer) EncodeFixed64(x uint64) error {\n\tp.buf = append(p.buf,\n\t\tuint8(x),\n\t\tuint8(x>>8),\n\t\tuint8(x>>16),\n\t\tuint8(x>>24),\n\t\tuint8(x>>32),\n\t\tuint8(x>>40),\n\t\tuint8(x>>48),\n\t\tuint8(x>>56))\n\treturn nil\n}\n\n// EncodeFixed32 writes a 32-bit integer to the Buffer.\n// This is the format for the\n// fixed32, sfixed32, and float protocol buffer types.\nfunc (p *Buffer) EncodeFixed32(x uint64) error {\n\tp.buf = append(p.buf,\n\t\tuint8(x),\n\t\tuint8(x>>8),\n\t\tuint8(x>>16),\n\t\tuint8(x>>24))\n\treturn nil\n}\n\n// EncodeZigzag64 writes a zigzag-encoded 64-bit integer\n// to the Buffer.\n// This is the format used for the sint64 protocol buffer type.\nfunc (p *Buffer) EncodeZigzag64(x uint64) error {\n\t// use signed number to get arithmetic right shift.\n\treturn p.EncodeVarint(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\n\n// EncodeZigzag32 writes a zigzag-encoded 32-bit integer\n// to the Buffer.\n// This is the format used for the sint32 protocol buffer type.\nfunc (p *Buffer) EncodeZigzag32(x uint64) error {\n\t// use signed number to get arithmetic right shift.\n\treturn p.EncodeVarint(uint64((uint32(x) << 1) ^ uint32((int32(x) >> 31))))\n}\n\n// EncodeRawBytes writes a count-delimited byte buffer to the Buffer.\n// This is the format used for the bytes protocol buffer\n// type and for embedded messages.\nfunc (p *Buffer) EncodeRawBytes(b []byte) error {\n\tp.EncodeVarint(uint64(len(b)))\n\tp.buf = append(p.buf, b...)\n\treturn nil\n}\n\n// EncodeStringBytes writes an encoded string to the Buffer.\n// This is the format used for the proto2 string type.\nfunc (p *Buffer) EncodeStringBytes(s string) error {\n\tp.EncodeVarint(uint64(len(s)))\n\tp.buf = append(p.buf, s...)\n\treturn nil\n}\n\n// Marshaler is the interface representing objects that can marshal themselves.\ntype Marshaler interface {\n\tMarshal() ([]byte, error)\n}\n\n// EncodeMessage writes the protocol buffer to the Buffer,\n// prefixed by a varint-encoded length.\nfunc (p *Buffer) EncodeMessage(pb Message) error {\n\tsiz := Size(pb)\n\tsizVar := SizeVarint(uint64(siz))\n\tp.grow(siz + sizVar)\n\tp.EncodeVarint(uint64(siz))\n\treturn p.Marshal(pb)\n}\n\n// All protocol buffer fields are nillable, but be careful.\nfunc isNil(v reflect.Value) bool {\n\tswitch v.Kind() {\n\tcase reflect.Interface, reflect.Map, reflect.Ptr, reflect.Slice:\n\t\treturn v.IsNil()\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/encode_gogo.go",
    "content": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2013, The GoGo Authors. All rights reserved.\n// http://github.com/gogo/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\nfunc NewRequiredNotSetError(field string) *RequiredNotSetError {\n\treturn &RequiredNotSetError{field}\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/equal.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2011 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n// Protocol buffer comparison.\n\npackage proto\n\nimport (\n\t\"bytes\"\n\t\"log\"\n\t\"reflect\"\n\t\"strings\"\n)\n\n/*\nEqual returns true iff protocol buffers a and b are equal.\nThe arguments must both be pointers to protocol buffer structs.\n\nEquality is defined in this way:\n  - Two messages are equal iff they are the same type,\n    corresponding fields are equal, unknown field sets\n    are equal, and extensions sets are equal.\n  - Two set scalar fields are equal iff their values are equal.\n    If the fields are of a floating-point type, remember that\n    NaN != x for all x, including NaN. If the message is defined\n    in a proto3 .proto file, fields are not \"set\"; specifically,\n    zero length proto3 \"bytes\" fields are equal (nil == {}).\n  - Two repeated fields are equal iff their lengths are the same,\n    and their corresponding elements are equal. Note a \"bytes\" field,\n    although represented by []byte, is not a repeated field and the\n    rule for the scalar fields described above applies.\n  - Two unset fields are equal.\n  - Two unknown field sets are equal if their current\n    encoded state is equal.\n  - Two extension sets are equal iff they have corresponding\n    elements that are pairwise equal.\n  - Two map fields are equal iff their lengths are the same,\n    and they contain the same set of elements. Zero-length map\n    fields are equal.\n  - Every other combination of things are not equal.\n\nThe return value is undefined if a and b are not protocol buffers.\n*/\nfunc Equal(a, b Message) bool {\n\tif a == nil || b == nil {\n\t\treturn a == b\n\t}\n\tv1, v2 := reflect.ValueOf(a), reflect.ValueOf(b)\n\tif v1.Type() != v2.Type() {\n\t\treturn false\n\t}\n\tif v1.Kind() == reflect.Ptr {\n\t\tif v1.IsNil() {\n\t\t\treturn v2.IsNil()\n\t\t}\n\t\tif v2.IsNil() {\n\t\t\treturn false\n\t\t}\n\t\tv1, v2 = v1.Elem(), v2.Elem()\n\t}\n\tif v1.Kind() != reflect.Struct {\n\t\treturn false\n\t}\n\treturn equalStruct(v1, v2)\n}\n\n// v1 and v2 are known to have the same type.\nfunc equalStruct(v1, v2 reflect.Value) bool {\n\tsprop := GetProperties(v1.Type())\n\tfor i := 0; i < v1.NumField(); i++ {\n\t\tf := v1.Type().Field(i)\n\t\tif strings.HasPrefix(f.Name, \"XXX_\") {\n\t\t\tcontinue\n\t\t}\n\t\tf1, f2 := v1.Field(i), v2.Field(i)\n\t\tif f.Type.Kind() == reflect.Ptr {\n\t\t\tif n1, n2 := f1.IsNil(), f2.IsNil(); n1 && n2 {\n\t\t\t\t// both unset\n\t\t\t\tcontinue\n\t\t\t} else if n1 != n2 {\n\t\t\t\t// set/unset mismatch\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tf1, f2 = f1.Elem(), f2.Elem()\n\t\t}\n\t\tif !equalAny(f1, f2, sprop.Prop[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif em1 := v1.FieldByName(\"XXX_InternalExtensions\"); em1.IsValid() {\n\t\tem2 := v2.FieldByName(\"XXX_InternalExtensions\")\n\t\tif !equalExtensions(v1.Type(), em1.Interface().(XXX_InternalExtensions), em2.Interface().(XXX_InternalExtensions)) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif em1 := v1.FieldByName(\"XXX_extensions\"); em1.IsValid() {\n\t\tem2 := v2.FieldByName(\"XXX_extensions\")\n\t\tif !equalExtMap(v1.Type(), em1.Interface().(map[int32]Extension), em2.Interface().(map[int32]Extension)) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tuf := v1.FieldByName(\"XXX_unrecognized\")\n\tif !uf.IsValid() {\n\t\treturn true\n\t}\n\n\tu1 := uf.Bytes()\n\tu2 := v2.FieldByName(\"XXX_unrecognized\").Bytes()\n\treturn bytes.Equal(u1, u2)\n}\n\n// v1 and v2 are known to have the same type.\n// prop may be nil.\nfunc equalAny(v1, v2 reflect.Value, prop *Properties) bool {\n\tif v1.Type() == protoMessageType {\n\t\tm1, _ := v1.Interface().(Message)\n\t\tm2, _ := v2.Interface().(Message)\n\t\treturn Equal(m1, m2)\n\t}\n\tswitch v1.Kind() {\n\tcase reflect.Bool:\n\t\treturn v1.Bool() == v2.Bool()\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn v1.Float() == v2.Float()\n\tcase reflect.Int32, reflect.Int64:\n\t\treturn v1.Int() == v2.Int()\n\tcase reflect.Interface:\n\t\t// Probably a oneof field; compare the inner values.\n\t\tn1, n2 := v1.IsNil(), v2.IsNil()\n\t\tif n1 || n2 {\n\t\t\treturn n1 == n2\n\t\t}\n\t\te1, e2 := v1.Elem(), v2.Elem()\n\t\tif e1.Type() != e2.Type() {\n\t\t\treturn false\n\t\t}\n\t\treturn equalAny(e1, e2, nil)\n\tcase reflect.Map:\n\t\tif v1.Len() != v2.Len() {\n\t\t\treturn false\n\t\t}\n\t\tfor _, key := range v1.MapKeys() {\n\t\t\tval2 := v2.MapIndex(key)\n\t\t\tif !val2.IsValid() {\n\t\t\t\t// This key was not found in the second map.\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !equalAny(v1.MapIndex(key), val2, nil) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\tcase reflect.Ptr:\n\t\t// Maps may have nil values in them, so check for nil.\n\t\tif v1.IsNil() && v2.IsNil() {\n\t\t\treturn true\n\t\t}\n\t\tif v1.IsNil() != v2.IsNil() {\n\t\t\treturn false\n\t\t}\n\t\treturn equalAny(v1.Elem(), v2.Elem(), prop)\n\tcase reflect.Slice:\n\t\tif v1.Type().Elem().Kind() == reflect.Uint8 {\n\t\t\t// short circuit: []byte\n\n\t\t\t// Edge case: if this is in a proto3 message, a zero length\n\t\t\t// bytes field is considered the zero value.\n\t\t\tif prop != nil && prop.proto3 && v1.Len() == 0 && v2.Len() == 0 {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif v1.IsNil() != v2.IsNil() {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn bytes.Equal(v1.Interface().([]byte), v2.Interface().([]byte))\n\t\t}\n\n\t\tif v1.Len() != v2.Len() {\n\t\t\treturn false\n\t\t}\n\t\tfor i := 0; i < v1.Len(); i++ {\n\t\t\tif !equalAny(v1.Index(i), v2.Index(i), prop) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\tcase reflect.String:\n\t\treturn v1.Interface().(string) == v2.Interface().(string)\n\tcase reflect.Struct:\n\t\treturn equalStruct(v1, v2)\n\tcase reflect.Uint32, reflect.Uint64:\n\t\treturn v1.Uint() == v2.Uint()\n\t}\n\n\t// unknown type, so not a protocol buffer\n\tlog.Printf(\"proto: don't know how to compare %v\", v1)\n\treturn false\n}\n\n// base is the struct type that the extensions are based on.\n// x1 and x2 are InternalExtensions.\nfunc equalExtensions(base reflect.Type, x1, x2 XXX_InternalExtensions) bool {\n\tem1, _ := x1.extensionsRead()\n\tem2, _ := x2.extensionsRead()\n\treturn equalExtMap(base, em1, em2)\n}\n\nfunc equalExtMap(base reflect.Type, em1, em2 map[int32]Extension) bool {\n\tif len(em1) != len(em2) {\n\t\treturn false\n\t}\n\n\tfor extNum, e1 := range em1 {\n\t\te2, ok := em2[extNum]\n\t\tif !ok {\n\t\t\treturn false\n\t\t}\n\n\t\tm1, m2 := e1.value, e2.value\n\n\t\tif m1 == nil && m2 == nil {\n\t\t\t// Both have only encoded form.\n\t\t\tif bytes.Equal(e1.enc, e2.enc) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\t// The bytes are different, but the extensions might still be\n\t\t\t// equal. We need to decode them to compare.\n\t\t}\n\n\t\tif m1 != nil && m2 != nil {\n\t\t\t// Both are unencoded.\n\t\t\tif !equalAny(reflect.ValueOf(m1), reflect.ValueOf(m2), nil) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\t// At least one is encoded. To do a semantically correct comparison\n\t\t// we need to unmarshal them first.\n\t\tvar desc *ExtensionDesc\n\t\tif m := extensionMaps[base]; m != nil {\n\t\t\tdesc = m[extNum]\n\t\t}\n\t\tif desc == nil {\n\t\t\t// If both have only encoded form and the bytes are the same,\n\t\t\t// it is handled above. We get here when the bytes are different.\n\t\t\t// We don't know how to decode it, so just compare them as byte\n\t\t\t// slices.\n\t\t\tlog.Printf(\"proto: don't know how to compare extension %d of %v\", extNum, base)\n\t\t\treturn false\n\t\t}\n\t\tvar err error\n\t\tif m1 == nil {\n\t\t\tm1, err = decodeExtension(e1.enc, desc)\n\t\t}\n\t\tif m2 == nil && err == nil {\n\t\t\tm2, err = decodeExtension(e2.enc, desc)\n\t\t}\n\t\tif err != nil {\n\t\t\t// The encoded form is invalid.\n\t\t\tlog.Printf(\"proto: badly encoded extension %d of %v: %v\", extNum, base, err)\n\t\t\treturn false\n\t\t}\n\t\tif !equalAny(reflect.ValueOf(m1), reflect.ValueOf(m2), nil) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/extensions.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2010 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\n/*\n * Types and routines for supporting protocol buffer extensions.\n */\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"sync\"\n)\n\n// ErrMissingExtension is the error returned by GetExtension if the named extension is not in the message.\nvar ErrMissingExtension = errors.New(\"proto: missing extension\")\n\n// ExtensionRange represents a range of message extensions for a protocol buffer.\n// Used in code generated by the protocol compiler.\ntype ExtensionRange struct {\n\tStart, End int32 // both inclusive\n}\n\n// extendableProto is an interface implemented by any protocol buffer generated by the current\n// proto compiler that may be extended.\ntype extendableProto interface {\n\tMessage\n\tExtensionRangeArray() []ExtensionRange\n\textensionsWrite() map[int32]Extension\n\textensionsRead() (map[int32]Extension, sync.Locker)\n}\n\n// extendableProtoV1 is an interface implemented by a protocol buffer generated by the previous\n// version of the proto compiler that may be extended.\ntype extendableProtoV1 interface {\n\tMessage\n\tExtensionRangeArray() []ExtensionRange\n\tExtensionMap() map[int32]Extension\n}\n\n// extensionAdapter is a wrapper around extendableProtoV1 that implements extendableProto.\ntype extensionAdapter struct {\n\textendableProtoV1\n}\n\nfunc (e extensionAdapter) extensionsWrite() map[int32]Extension {\n\treturn e.ExtensionMap()\n}\n\nfunc (e extensionAdapter) extensionsRead() (map[int32]Extension, sync.Locker) {\n\treturn e.ExtensionMap(), notLocker{}\n}\n\n// notLocker is a sync.Locker whose Lock and Unlock methods are nops.\ntype notLocker struct{}\n\nfunc (n notLocker) Lock()   {}\nfunc (n notLocker) Unlock() {}\n\n// extendable returns the extendableProto interface for the given generated proto message.\n// If the proto message has the old extension format, it returns a wrapper that implements\n// the extendableProto interface.\nfunc extendable(p interface{}) (extendableProto, error) {\n\tswitch p := p.(type) {\n\tcase extendableProto:\n\t\tif isNilPtr(p) {\n\t\t\treturn nil, fmt.Errorf(\"proto: nil %T is not extendable\", p)\n\t\t}\n\t\treturn p, nil\n\tcase extendableProtoV1:\n\t\tif isNilPtr(p) {\n\t\t\treturn nil, fmt.Errorf(\"proto: nil %T is not extendable\", p)\n\t\t}\n\t\treturn extensionAdapter{p}, nil\n\tcase extensionsBytes:\n\t\treturn slowExtensionAdapter{p}, nil\n\t}\n\t// Don't allocate a specific error containing %T:\n\t// this is the hot path for Clone and MarshalText.\n\treturn nil, errNotExtendable\n}\n\nvar errNotExtendable = errors.New(\"proto: not an extendable proto.Message\")\n\nfunc isNilPtr(x interface{}) bool {\n\tv := reflect.ValueOf(x)\n\treturn v.Kind() == reflect.Ptr && v.IsNil()\n}\n\n// XXX_InternalExtensions is an internal representation of proto extensions.\n//\n// Each generated message struct type embeds an anonymous XXX_InternalExtensions field,\n// thus gaining the unexported 'extensions' method, which can be called only from the proto package.\n//\n// The methods of XXX_InternalExtensions are not concurrency safe in general,\n// but calls to logically read-only methods such as has and get may be executed concurrently.\ntype XXX_InternalExtensions struct {\n\t// The struct must be indirect so that if a user inadvertently copies a\n\t// generated message and its embedded XXX_InternalExtensions, they\n\t// avoid the mayhem of a copied mutex.\n\t//\n\t// The mutex serializes all logically read-only operations to p.extensionMap.\n\t// It is up to the client to ensure that write operations to p.extensionMap are\n\t// mutually exclusive with other accesses.\n\tp *struct {\n\t\tmu           sync.Mutex\n\t\textensionMap map[int32]Extension\n\t}\n}\n\n// extensionsWrite returns the extension map, creating it on first use.\nfunc (e *XXX_InternalExtensions) extensionsWrite() map[int32]Extension {\n\tif e.p == nil {\n\t\te.p = new(struct {\n\t\t\tmu           sync.Mutex\n\t\t\textensionMap map[int32]Extension\n\t\t})\n\t\te.p.extensionMap = make(map[int32]Extension)\n\t}\n\treturn e.p.extensionMap\n}\n\n// extensionsRead returns the extensions map for read-only use.  It may be nil.\n// The caller must hold the returned mutex's lock when accessing Elements within the map.\nfunc (e *XXX_InternalExtensions) extensionsRead() (map[int32]Extension, sync.Locker) {\n\tif e.p == nil {\n\t\treturn nil, nil\n\t}\n\treturn e.p.extensionMap, &e.p.mu\n}\n\n// ExtensionDesc represents an extension specification.\n// Used in generated code from the protocol compiler.\ntype ExtensionDesc struct {\n\tExtendedType  Message     // nil pointer to the type that is being extended\n\tExtensionType interface{} // nil pointer to the extension type\n\tField         int32       // field number\n\tName          string      // fully-qualified name of extension, for text formatting\n\tTag           string      // protobuf tag style\n\tFilename      string      // name of the file in which the extension is defined\n}\n\nfunc (ed *ExtensionDesc) repeated() bool {\n\tt := reflect.TypeOf(ed.ExtensionType)\n\treturn t.Kind() == reflect.Slice && t.Elem().Kind() != reflect.Uint8\n}\n\n// Extension represents an extension in a message.\ntype Extension struct {\n\t// When an extension is stored in a message using SetExtension\n\t// only desc and value are set. When the message is marshaled\n\t// enc will be set to the encoded form of the message.\n\t//\n\t// When a message is unmarshaled and contains extensions, each\n\t// extension will have only enc set. When such an extension is\n\t// accessed using GetExtension (or GetExtensions) desc and value\n\t// will be set.\n\tdesc  *ExtensionDesc\n\tvalue interface{}\n\tenc   []byte\n}\n\n// SetRawExtension is for testing only.\nfunc SetRawExtension(base Message, id int32, b []byte) {\n\tif ebase, ok := base.(extensionsBytes); ok {\n\t\tclearExtension(base, id)\n\t\text := ebase.GetExtensions()\n\t\t*ext = append(*ext, b...)\n\t\treturn\n\t}\n\tepb, err := extendable(base)\n\tif err != nil {\n\t\treturn\n\t}\n\textmap := epb.extensionsWrite()\n\textmap[id] = Extension{enc: b}\n}\n\n// isExtensionField returns true iff the given field number is in an extension range.\nfunc isExtensionField(pb extendableProto, field int32) bool {\n\tfor _, er := range pb.ExtensionRangeArray() {\n\t\tif er.Start <= field && field <= er.End {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// checkExtensionTypes checks that the given extension is valid for pb.\nfunc checkExtensionTypes(pb extendableProto, extension *ExtensionDesc) error {\n\tvar pbi interface{} = pb\n\t// Check the extended type.\n\tif ea, ok := pbi.(extensionAdapter); ok {\n\t\tpbi = ea.extendableProtoV1\n\t}\n\tif ea, ok := pbi.(slowExtensionAdapter); ok {\n\t\tpbi = ea.extensionsBytes\n\t}\n\tif a, b := reflect.TypeOf(pbi), reflect.TypeOf(extension.ExtendedType); a != b {\n\t\treturn fmt.Errorf(\"proto: bad extended type; %v does not extend %v\", b, a)\n\t}\n\t// Check the range.\n\tif !isExtensionField(pb, extension.Field) {\n\t\treturn errors.New(\"proto: bad extension number; not in declared ranges\")\n\t}\n\treturn nil\n}\n\n// extPropKey is sufficient to uniquely identify an extension.\ntype extPropKey struct {\n\tbase  reflect.Type\n\tfield int32\n}\n\nvar extProp = struct {\n\tsync.RWMutex\n\tm map[extPropKey]*Properties\n}{\n\tm: make(map[extPropKey]*Properties),\n}\n\nfunc extensionProperties(ed *ExtensionDesc) *Properties {\n\tkey := extPropKey{base: reflect.TypeOf(ed.ExtendedType), field: ed.Field}\n\n\textProp.RLock()\n\tif prop, ok := extProp.m[key]; ok {\n\t\textProp.RUnlock()\n\t\treturn prop\n\t}\n\textProp.RUnlock()\n\n\textProp.Lock()\n\tdefer extProp.Unlock()\n\t// Check again.\n\tif prop, ok := extProp.m[key]; ok {\n\t\treturn prop\n\t}\n\n\tprop := new(Properties)\n\tprop.Init(reflect.TypeOf(ed.ExtensionType), \"unknown_name\", ed.Tag, nil)\n\textProp.m[key] = prop\n\treturn prop\n}\n\n// HasExtension returns whether the given extension is present in pb.\nfunc HasExtension(pb Message, extension *ExtensionDesc) bool {\n\tif epb, doki := pb.(extensionsBytes); doki {\n\t\text := epb.GetExtensions()\n\t\tbuf := *ext\n\t\to := 0\n\t\tfor o < len(buf) {\n\t\t\ttag, n := DecodeVarint(buf[o:])\n\t\t\tfieldNum := int32(tag >> 3)\n\t\t\tif int32(fieldNum) == extension.Field {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\twireType := int(tag & 0x7)\n\t\t\to += n\n\t\t\tl, err := size(buf[o:], wireType)\n\t\t\tif err != nil {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\to += l\n\t\t}\n\t\treturn false\n\t}\n\t// TODO: Check types, field numbers, etc.?\n\tepb, err := extendable(pb)\n\tif err != nil {\n\t\treturn false\n\t}\n\textmap, mu := epb.extensionsRead()\n\tif extmap == nil {\n\t\treturn false\n\t}\n\tmu.Lock()\n\t_, ok := extmap[extension.Field]\n\tmu.Unlock()\n\treturn ok\n}\n\n// ClearExtension removes the given extension from pb.\nfunc ClearExtension(pb Message, extension *ExtensionDesc) {\n\tclearExtension(pb, extension.Field)\n}\n\nfunc clearExtension(pb Message, fieldNum int32) {\n\tif epb, ok := pb.(extensionsBytes); ok {\n\t\toffset := 0\n\t\tfor offset != -1 {\n\t\t\toffset = deleteExtension(epb, fieldNum, offset)\n\t\t}\n\t\treturn\n\t}\n\tepb, err := extendable(pb)\n\tif err != nil {\n\t\treturn\n\t}\n\t// TODO: Check types, field numbers, etc.?\n\textmap := epb.extensionsWrite()\n\tdelete(extmap, fieldNum)\n}\n\n// GetExtension retrieves a proto2 extended field from pb.\n//\n// If the descriptor is type complete (i.e., ExtensionDesc.ExtensionType is non-nil),\n// then GetExtension parses the encoded field and returns a Go value of the specified type.\n// If the field is not present, then the default value is returned (if one is specified),\n// otherwise ErrMissingExtension is reported.\n//\n// If the descriptor is not type complete (i.e., ExtensionDesc.ExtensionType is nil),\n// then GetExtension returns the raw encoded bytes of the field extension.\nfunc GetExtension(pb Message, extension *ExtensionDesc) (interface{}, error) {\n\tif epb, doki := pb.(extensionsBytes); doki {\n\t\text := epb.GetExtensions()\n\t\treturn decodeExtensionFromBytes(extension, *ext)\n\t}\n\n\tepb, err := extendable(pb)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif extension.ExtendedType != nil {\n\t\t// can only check type if this is a complete descriptor\n\t\tif cerr := checkExtensionTypes(epb, extension); cerr != nil {\n\t\t\treturn nil, cerr\n\t\t}\n\t}\n\n\temap, mu := epb.extensionsRead()\n\tif emap == nil {\n\t\treturn defaultExtensionValue(extension)\n\t}\n\tmu.Lock()\n\tdefer mu.Unlock()\n\te, ok := emap[extension.Field]\n\tif !ok {\n\t\t// defaultExtensionValue returns the default value or\n\t\t// ErrMissingExtension if there is no default.\n\t\treturn defaultExtensionValue(extension)\n\t}\n\n\tif e.value != nil {\n\t\t// Already decoded. Check the descriptor, though.\n\t\tif e.desc != extension {\n\t\t\t// This shouldn't happen. If it does, it means that\n\t\t\t// GetExtension was called twice with two different\n\t\t\t// descriptors with the same field number.\n\t\t\treturn nil, errors.New(\"proto: descriptor conflict\")\n\t\t}\n\t\treturn e.value, nil\n\t}\n\n\tif extension.ExtensionType == nil {\n\t\t// incomplete descriptor\n\t\treturn e.enc, nil\n\t}\n\n\tv, err := decodeExtension(e.enc, extension)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Remember the decoded version and drop the encoded version.\n\t// That way it is safe to mutate what we return.\n\te.value = v\n\te.desc = extension\n\te.enc = nil\n\temap[extension.Field] = e\n\treturn e.value, nil\n}\n\n// defaultExtensionValue returns the default value for extension.\n// If no default for an extension is defined ErrMissingExtension is returned.\nfunc defaultExtensionValue(extension *ExtensionDesc) (interface{}, error) {\n\tif extension.ExtensionType == nil {\n\t\t// incomplete descriptor, so no default\n\t\treturn nil, ErrMissingExtension\n\t}\n\n\tt := reflect.TypeOf(extension.ExtensionType)\n\tprops := extensionProperties(extension)\n\n\tsf, _, err := fieldDefault(t, props)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif sf == nil || sf.value == nil {\n\t\t// There is no default value.\n\t\treturn nil, ErrMissingExtension\n\t}\n\n\tif t.Kind() != reflect.Ptr {\n\t\t// We do not need to return a Ptr, we can directly return sf.value.\n\t\treturn sf.value, nil\n\t}\n\n\t// We need to return an interface{} that is a pointer to sf.value.\n\tvalue := reflect.New(t).Elem()\n\tvalue.Set(reflect.New(value.Type().Elem()))\n\tif sf.kind == reflect.Int32 {\n\t\t// We may have an int32 or an enum, but the underlying data is int32.\n\t\t// Since we can't set an int32 into a non int32 reflect.value directly\n\t\t// set it as a int32.\n\t\tvalue.Elem().SetInt(int64(sf.value.(int32)))\n\t} else {\n\t\tvalue.Elem().Set(reflect.ValueOf(sf.value))\n\t}\n\treturn value.Interface(), nil\n}\n\n// decodeExtension decodes an extension encoded in b.\nfunc decodeExtension(b []byte, extension *ExtensionDesc) (interface{}, error) {\n\tt := reflect.TypeOf(extension.ExtensionType)\n\tunmarshal := typeUnmarshaler(t, extension.Tag)\n\n\t// t is a pointer to a struct, pointer to basic type or a slice.\n\t// Allocate space to store the pointer/slice.\n\tvalue := reflect.New(t).Elem()\n\n\tvar err error\n\tfor {\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\twire := int(x) & 7\n\n\t\tb, err = unmarshal(b, valToPointer(value.Addr()), wire)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif len(b) == 0 {\n\t\t\tbreak\n\t\t}\n\t}\n\treturn value.Interface(), nil\n}\n\n// GetExtensions returns a slice of the extensions present in pb that are also listed in es.\n// The returned slice has the same length as es; missing extensions will appear as nil elements.\nfunc GetExtensions(pb Message, es []*ExtensionDesc) (extensions []interface{}, err error) {\n\tepb, err := extendable(pb)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\textensions = make([]interface{}, len(es))\n\tfor i, e := range es {\n\t\textensions[i], err = GetExtension(epb, e)\n\t\tif err == ErrMissingExtension {\n\t\t\terr = nil\n\t\t}\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t}\n\treturn\n}\n\n// ExtensionDescs returns a new slice containing pb's extension descriptors, in undefined order.\n// For non-registered extensions, ExtensionDescs returns an incomplete descriptor containing\n// just the Field field, which defines the extension's field number.\nfunc ExtensionDescs(pb Message) ([]*ExtensionDesc, error) {\n\tepb, err := extendable(pb)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tregisteredExtensions := RegisteredExtensions(pb)\n\n\temap, mu := epb.extensionsRead()\n\tif emap == nil {\n\t\treturn nil, nil\n\t}\n\tmu.Lock()\n\tdefer mu.Unlock()\n\textensions := make([]*ExtensionDesc, 0, len(emap))\n\tfor extid, e := range emap {\n\t\tdesc := e.desc\n\t\tif desc == nil {\n\t\t\tdesc = registeredExtensions[extid]\n\t\t\tif desc == nil {\n\t\t\t\tdesc = &ExtensionDesc{Field: extid}\n\t\t\t}\n\t\t}\n\n\t\textensions = append(extensions, desc)\n\t}\n\treturn extensions, nil\n}\n\n// SetExtension sets the specified extension of pb to the specified value.\nfunc SetExtension(pb Message, extension *ExtensionDesc, value interface{}) error {\n\tif epb, ok := pb.(extensionsBytes); ok {\n\t\tClearExtension(pb, extension)\n\t\tnewb, err := encodeExtension(extension, value)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbb := epb.GetExtensions()\n\t\t*bb = append(*bb, newb...)\n\t\treturn nil\n\t}\n\tepb, err := extendable(pb)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif err := checkExtensionTypes(epb, extension); err != nil {\n\t\treturn err\n\t}\n\ttyp := reflect.TypeOf(extension.ExtensionType)\n\tif typ != reflect.TypeOf(value) {\n\t\treturn fmt.Errorf(\"proto: bad extension value type. got: %T, want: %T\", value, extension.ExtensionType)\n\t}\n\t// nil extension values need to be caught early, because the\n\t// encoder can't distinguish an ErrNil due to a nil extension\n\t// from an ErrNil due to a missing field. Extensions are\n\t// always optional, so the encoder would just swallow the error\n\t// and drop all the extensions from the encoded message.\n\tif reflect.ValueOf(value).IsNil() {\n\t\treturn fmt.Errorf(\"proto: SetExtension called with nil value of type %T\", value)\n\t}\n\n\textmap := epb.extensionsWrite()\n\textmap[extension.Field] = Extension{desc: extension, value: value}\n\treturn nil\n}\n\n// ClearAllExtensions clears all extensions from pb.\nfunc ClearAllExtensions(pb Message) {\n\tif epb, doki := pb.(extensionsBytes); doki {\n\t\text := epb.GetExtensions()\n\t\t*ext = []byte{}\n\t\treturn\n\t}\n\tepb, err := extendable(pb)\n\tif err != nil {\n\t\treturn\n\t}\n\tm := epb.extensionsWrite()\n\tfor k := range m {\n\t\tdelete(m, k)\n\t}\n}\n\n// A global registry of extensions.\n// The generated code will register the generated descriptors by calling RegisterExtension.\n\nvar extensionMaps = make(map[reflect.Type]map[int32]*ExtensionDesc)\n\n// RegisterExtension is called from the generated code.\nfunc RegisterExtension(desc *ExtensionDesc) {\n\tst := reflect.TypeOf(desc.ExtendedType).Elem()\n\tm := extensionMaps[st]\n\tif m == nil {\n\t\tm = make(map[int32]*ExtensionDesc)\n\t\textensionMaps[st] = m\n\t}\n\tif _, ok := m[desc.Field]; ok {\n\t\tpanic(\"proto: duplicate extension registered: \" + st.String() + \" \" + strconv.Itoa(int(desc.Field)))\n\t}\n\tm[desc.Field] = desc\n}\n\n// RegisteredExtensions returns a map of the registered extensions of a\n// protocol buffer struct, indexed by the extension number.\n// The argument pb should be a nil pointer to the struct type.\nfunc RegisteredExtensions(pb Message) map[int32]*ExtensionDesc {\n\treturn extensionMaps[reflect.TypeOf(pb).Elem()]\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/extensions_gogo.go",
    "content": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2013, The GoGo Authors. All rights reserved.\n// http://github.com/gogo/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strings\"\n\t\"sync\"\n)\n\ntype extensionsBytes interface {\n\tMessage\n\tExtensionRangeArray() []ExtensionRange\n\tGetExtensions() *[]byte\n}\n\ntype slowExtensionAdapter struct {\n\textensionsBytes\n}\n\nfunc (s slowExtensionAdapter) extensionsWrite() map[int32]Extension {\n\tpanic(\"Please report a bug to github.com/gogo/protobuf if you see this message: Writing extensions is not supported for extensions stored in a byte slice field.\")\n}\n\nfunc (s slowExtensionAdapter) extensionsRead() (map[int32]Extension, sync.Locker) {\n\tb := s.GetExtensions()\n\tm, err := BytesToExtensionsMap(*b)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn m, notLocker{}\n}\n\nfunc GetBoolExtension(pb Message, extension *ExtensionDesc, ifnotset bool) bool {\n\tif reflect.ValueOf(pb).IsNil() {\n\t\treturn ifnotset\n\t}\n\tvalue, err := GetExtension(pb, extension)\n\tif err != nil {\n\t\treturn ifnotset\n\t}\n\tif value == nil {\n\t\treturn ifnotset\n\t}\n\tif value.(*bool) == nil {\n\t\treturn ifnotset\n\t}\n\treturn *(value.(*bool))\n}\n\nfunc (this *Extension) Equal(that *Extension) bool {\n\tif err := this.Encode(); err != nil {\n\t\treturn false\n\t}\n\tif err := that.Encode(); err != nil {\n\t\treturn false\n\t}\n\treturn bytes.Equal(this.enc, that.enc)\n}\n\nfunc (this *Extension) Compare(that *Extension) int {\n\tif err := this.Encode(); err != nil {\n\t\treturn 1\n\t}\n\tif err := that.Encode(); err != nil {\n\t\treturn -1\n\t}\n\treturn bytes.Compare(this.enc, that.enc)\n}\n\nfunc SizeOfInternalExtension(m extendableProto) (n int) {\n\tinfo := getMarshalInfo(reflect.TypeOf(m))\n\treturn info.sizeV1Extensions(m.extensionsWrite())\n}\n\ntype sortableMapElem struct {\n\tfield int32\n\text   Extension\n}\n\nfunc newSortableExtensionsFromMap(m map[int32]Extension) sortableExtensions {\n\ts := make(sortableExtensions, 0, len(m))\n\tfor k, v := range m {\n\t\ts = append(s, &sortableMapElem{field: k, ext: v})\n\t}\n\treturn s\n}\n\ntype sortableExtensions []*sortableMapElem\n\nfunc (this sortableExtensions) Len() int { return len(this) }\n\nfunc (this sortableExtensions) Swap(i, j int) { this[i], this[j] = this[j], this[i] }\n\nfunc (this sortableExtensions) Less(i, j int) bool { return this[i].field < this[j].field }\n\nfunc (this sortableExtensions) String() string {\n\tsort.Sort(this)\n\tss := make([]string, len(this))\n\tfor i := range this {\n\t\tss[i] = fmt.Sprintf(\"%d: %v\", this[i].field, this[i].ext)\n\t}\n\treturn \"map[\" + strings.Join(ss, \",\") + \"]\"\n}\n\nfunc StringFromInternalExtension(m extendableProto) string {\n\treturn StringFromExtensionsMap(m.extensionsWrite())\n}\n\nfunc StringFromExtensionsMap(m map[int32]Extension) string {\n\treturn newSortableExtensionsFromMap(m).String()\n}\n\nfunc StringFromExtensionsBytes(ext []byte) string {\n\tm, err := BytesToExtensionsMap(ext)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn StringFromExtensionsMap(m)\n}\n\nfunc EncodeInternalExtension(m extendableProto, data []byte) (n int, err error) {\n\treturn EncodeExtensionMap(m.extensionsWrite(), data)\n}\n\nfunc EncodeInternalExtensionBackwards(m extendableProto, data []byte) (n int, err error) {\n\treturn EncodeExtensionMapBackwards(m.extensionsWrite(), data)\n}\n\nfunc EncodeExtensionMap(m map[int32]Extension, data []byte) (n int, err error) {\n\to := 0\n\tfor _, e := range m {\n\t\tif err := e.Encode(); err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\tn := copy(data[o:], e.enc)\n\t\tif n != len(e.enc) {\n\t\t\treturn 0, io.ErrShortBuffer\n\t\t}\n\t\to += n\n\t}\n\treturn o, nil\n}\n\nfunc EncodeExtensionMapBackwards(m map[int32]Extension, data []byte) (n int, err error) {\n\to := 0\n\tend := len(data)\n\tfor _, e := range m {\n\t\tif err := e.Encode(); err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\tn := copy(data[end-len(e.enc):], e.enc)\n\t\tif n != len(e.enc) {\n\t\t\treturn 0, io.ErrShortBuffer\n\t\t}\n\t\tend -= n\n\t\to += n\n\t}\n\treturn o, nil\n}\n\nfunc GetRawExtension(m map[int32]Extension, id int32) ([]byte, error) {\n\te := m[id]\n\tif err := e.Encode(); err != nil {\n\t\treturn nil, err\n\t}\n\treturn e.enc, nil\n}\n\nfunc size(buf []byte, wire int) (int, error) {\n\tswitch wire {\n\tcase WireVarint:\n\t\t_, n := DecodeVarint(buf)\n\t\treturn n, nil\n\tcase WireFixed64:\n\t\treturn 8, nil\n\tcase WireBytes:\n\t\tv, n := DecodeVarint(buf)\n\t\treturn int(v) + n, nil\n\tcase WireFixed32:\n\t\treturn 4, nil\n\tcase WireStartGroup:\n\t\toffset := 0\n\t\tfor {\n\t\t\tu, n := DecodeVarint(buf[offset:])\n\t\t\tfwire := int(u & 0x7)\n\t\t\toffset += n\n\t\t\tif fwire == WireEndGroup {\n\t\t\t\treturn offset, nil\n\t\t\t}\n\t\t\ts, err := size(buf[offset:], wire)\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\toffset += s\n\t\t}\n\t}\n\treturn 0, fmt.Errorf(\"proto: can't get size for unknown wire type %d\", wire)\n}\n\nfunc BytesToExtensionsMap(buf []byte) (map[int32]Extension, error) {\n\tm := make(map[int32]Extension)\n\ti := 0\n\tfor i < len(buf) {\n\t\ttag, n := DecodeVarint(buf[i:])\n\t\tif n <= 0 {\n\t\t\treturn nil, fmt.Errorf(\"unable to decode varint\")\n\t\t}\n\t\tfieldNum := int32(tag >> 3)\n\t\twireType := int(tag & 0x7)\n\t\tl, err := size(buf[i+n:], wireType)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tend := i + int(l) + n\n\t\tm[int32(fieldNum)] = Extension{enc: buf[i:end]}\n\t\ti = end\n\t}\n\treturn m, nil\n}\n\nfunc NewExtension(e []byte) Extension {\n\tee := Extension{enc: make([]byte, len(e))}\n\tcopy(ee.enc, e)\n\treturn ee\n}\n\nfunc AppendExtension(e Message, tag int32, buf []byte) {\n\tif ee, eok := e.(extensionsBytes); eok {\n\t\text := ee.GetExtensions()\n\t\t*ext = append(*ext, buf...)\n\t\treturn\n\t}\n\tif ee, eok := e.(extendableProto); eok {\n\t\tm := ee.extensionsWrite()\n\t\text := m[int32(tag)] // may be missing\n\t\text.enc = append(ext.enc, buf...)\n\t\tm[int32(tag)] = ext\n\t}\n}\n\nfunc encodeExtension(extension *ExtensionDesc, value interface{}) ([]byte, error) {\n\tu := getMarshalInfo(reflect.TypeOf(extension.ExtendedType))\n\tei := u.getExtElemInfo(extension)\n\tv := value\n\tp := toAddrPointer(&v, ei.isptr)\n\tsiz := ei.sizer(p, SizeVarint(ei.wiretag))\n\tbuf := make([]byte, 0, siz)\n\treturn ei.marshaler(buf, p, ei.wiretag, false)\n}\n\nfunc decodeExtensionFromBytes(extension *ExtensionDesc, buf []byte) (interface{}, error) {\n\to := 0\n\tfor o < len(buf) {\n\t\ttag, n := DecodeVarint((buf)[o:])\n\t\tfieldNum := int32(tag >> 3)\n\t\twireType := int(tag & 0x7)\n\t\tif o+n > len(buf) {\n\t\t\treturn nil, fmt.Errorf(\"unable to decode extension\")\n\t\t}\n\t\tl, err := size((buf)[o+n:], wireType)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif int32(fieldNum) == extension.Field {\n\t\t\tif o+n+l > len(buf) {\n\t\t\t\treturn nil, fmt.Errorf(\"unable to decode extension\")\n\t\t\t}\n\t\t\tv, err := decodeExtension((buf)[o:o+n+l], extension)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\treturn v, nil\n\t\t}\n\t\to += n + l\n\t}\n\treturn defaultExtensionValue(extension)\n}\n\nfunc (this *Extension) Encode() error {\n\tif this.enc == nil {\n\t\tvar err error\n\t\tthis.enc, err = encodeExtension(this.desc, this.value)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (this Extension) GoString() string {\n\tif err := this.Encode(); err != nil {\n\t\treturn fmt.Sprintf(\"error encoding extension: %v\", err)\n\t}\n\treturn fmt.Sprintf(\"proto.NewExtension(%#v)\", this.enc)\n}\n\nfunc SetUnsafeExtension(pb Message, fieldNum int32, value interface{}) error {\n\ttyp := reflect.TypeOf(pb).Elem()\n\text, ok := extensionMaps[typ]\n\tif !ok {\n\t\treturn fmt.Errorf(\"proto: bad extended type; %s is not extendable\", typ.String())\n\t}\n\tdesc, ok := ext[fieldNum]\n\tif !ok {\n\t\treturn errors.New(\"proto: bad extension number; not in declared ranges\")\n\t}\n\treturn SetExtension(pb, desc, value)\n}\n\nfunc GetUnsafeExtension(pb Message, fieldNum int32) (interface{}, error) {\n\ttyp := reflect.TypeOf(pb).Elem()\n\text, ok := extensionMaps[typ]\n\tif !ok {\n\t\treturn nil, fmt.Errorf(\"proto: bad extended type; %s is not extendable\", typ.String())\n\t}\n\tdesc, ok := ext[fieldNum]\n\tif !ok {\n\t\treturn nil, fmt.Errorf(\"unregistered field number %d\", fieldNum)\n\t}\n\treturn GetExtension(pb, desc)\n}\n\nfunc NewUnsafeXXX_InternalExtensions(m map[int32]Extension) XXX_InternalExtensions {\n\tx := &XXX_InternalExtensions{\n\t\tp: new(struct {\n\t\t\tmu           sync.Mutex\n\t\t\textensionMap map[int32]Extension\n\t\t}),\n\t}\n\tx.p.extensionMap = m\n\treturn *x\n}\n\nfunc GetUnsafeExtensionsMap(extendable Message) map[int32]Extension {\n\tpb := extendable.(extendableProto)\n\treturn pb.extensionsWrite()\n}\n\nfunc deleteExtension(pb extensionsBytes, theFieldNum int32, offset int) int {\n\text := pb.GetExtensions()\n\tfor offset < len(*ext) {\n\t\ttag, n1 := DecodeVarint((*ext)[offset:])\n\t\tfieldNum := int32(tag >> 3)\n\t\twireType := int(tag & 0x7)\n\t\tn2, err := size((*ext)[offset+n1:], wireType)\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t\tnewOffset := offset + n1 + n2\n\t\tif fieldNum == theFieldNum {\n\t\t\t*ext = append((*ext)[:offset], (*ext)[newOffset:]...)\n\t\t\treturn offset\n\t\t}\n\t\toffset = newOffset\n\t}\n\treturn -1\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/lib.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2010 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n/*\nPackage proto converts data structures to and from the wire format of\nprotocol buffers.  It works in concert with the Go source code generated\nfor .proto files by the protocol compiler.\n\nA summary of the properties of the protocol buffer interface\nfor a protocol buffer variable v:\n\n  - Names are turned from camel_case to CamelCase for export.\n  - There are no methods on v to set fields; just treat\n\tthem as structure fields.\n  - There are getters that return a field's value if set,\n\tand return the field's default value if unset.\n\tThe getters work even if the receiver is a nil message.\n  - The zero value for a struct is its correct initialization state.\n\tAll desired fields must be set before marshaling.\n  - A Reset() method will restore a protobuf struct to its zero state.\n  - Non-repeated fields are pointers to the values; nil means unset.\n\tThat is, optional or required field int32 f becomes F *int32.\n  - Repeated fields are slices.\n  - Helper functions are available to aid the setting of fields.\n\tmsg.Foo = proto.String(\"hello\") // set field\n  - Constants are defined to hold the default values of all fields that\n\thave them.  They have the form Default_StructName_FieldName.\n\tBecause the getter methods handle defaulted values,\n\tdirect use of these constants should be rare.\n  - Enums are given type names and maps from names to values.\n\tEnum values are prefixed by the enclosing message's name, or by the\n\tenum's type name if it is a top-level enum. Enum types have a String\n\tmethod, and a Enum method to assist in message construction.\n  - Nested messages, groups and enums have type names prefixed with the name of\n\tthe surrounding message type.\n  - Extensions are given descriptor names that start with E_,\n\tfollowed by an underscore-delimited list of the nested messages\n\tthat contain it (if any) followed by the CamelCased name of the\n\textension field itself.  HasExtension, ClearExtension, GetExtension\n\tand SetExtension are functions for manipulating extensions.\n  - Oneof field sets are given a single field in their message,\n\twith distinguished wrapper types for each possible field value.\n  - Marshal and Unmarshal are functions to encode and decode the wire format.\n\nWhen the .proto file specifies `syntax=\"proto3\"`, there are some differences:\n\n  - Non-repeated fields of non-message type are values instead of pointers.\n  - Enum types do not get an Enum method.\n\nThe simplest way to describe this is to see an example.\nGiven file test.proto, containing\n\n\tpackage example;\n\n\tenum FOO { X = 17; }\n\n\tmessage Test {\n\t  required string label = 1;\n\t  optional int32 type = 2 [default=77];\n\t  repeated int64 reps = 3;\n\t  optional group OptionalGroup = 4 {\n\t    required string RequiredField = 5;\n\t  }\n\t  oneof union {\n\t    int32 number = 6;\n\t    string name = 7;\n\t  }\n\t}\n\nThe resulting file, test.pb.go, is:\n\n\tpackage example\n\n\timport proto \"github.com/gogo/protobuf/proto\"\n\timport math \"math\"\n\n\ttype FOO int32\n\tconst (\n\t\tFOO_X FOO = 17\n\t)\n\tvar FOO_name = map[int32]string{\n\t\t17: \"X\",\n\t}\n\tvar FOO_value = map[string]int32{\n\t\t\"X\": 17,\n\t}\n\n\tfunc (x FOO) Enum() *FOO {\n\t\tp := new(FOO)\n\t\t*p = x\n\t\treturn p\n\t}\n\tfunc (x FOO) String() string {\n\t\treturn proto.EnumName(FOO_name, int32(x))\n\t}\n\tfunc (x *FOO) UnmarshalJSON(data []byte) error {\n\t\tvalue, err := proto.UnmarshalJSONEnum(FOO_value, data)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t*x = FOO(value)\n\t\treturn nil\n\t}\n\n\ttype Test struct {\n\t\tLabel         *string             `protobuf:\"bytes,1,req,name=label\" json:\"label,omitempty\"`\n\t\tType          *int32              `protobuf:\"varint,2,opt,name=type,def=77\" json:\"type,omitempty\"`\n\t\tReps          []int64             `protobuf:\"varint,3,rep,name=reps\" json:\"reps,omitempty\"`\n\t\tOptionalgroup *Test_OptionalGroup `protobuf:\"group,4,opt,name=OptionalGroup\" json:\"optionalgroup,omitempty\"`\n\t\t// Types that are valid to be assigned to Union:\n\t\t//\t*Test_Number\n\t\t//\t*Test_Name\n\t\tUnion            isTest_Union `protobuf_oneof:\"union\"`\n\t\tXXX_unrecognized []byte       `json:\"-\"`\n\t}\n\tfunc (m *Test) Reset()         { *m = Test{} }\n\tfunc (m *Test) String() string { return proto.CompactTextString(m) }\n\tfunc (*Test) ProtoMessage() {}\n\n\ttype isTest_Union interface {\n\t\tisTest_Union()\n\t}\n\n\ttype Test_Number struct {\n\t\tNumber int32 `protobuf:\"varint,6,opt,name=number\"`\n\t}\n\ttype Test_Name struct {\n\t\tName string `protobuf:\"bytes,7,opt,name=name\"`\n\t}\n\n\tfunc (*Test_Number) isTest_Union() {}\n\tfunc (*Test_Name) isTest_Union()   {}\n\n\tfunc (m *Test) GetUnion() isTest_Union {\n\t\tif m != nil {\n\t\t\treturn m.Union\n\t\t}\n\t\treturn nil\n\t}\n\tconst Default_Test_Type int32 = 77\n\n\tfunc (m *Test) GetLabel() string {\n\t\tif m != nil && m.Label != nil {\n\t\t\treturn *m.Label\n\t\t}\n\t\treturn \"\"\n\t}\n\n\tfunc (m *Test) GetType() int32 {\n\t\tif m != nil && m.Type != nil {\n\t\t\treturn *m.Type\n\t\t}\n\t\treturn Default_Test_Type\n\t}\n\n\tfunc (m *Test) GetOptionalgroup() *Test_OptionalGroup {\n\t\tif m != nil {\n\t\t\treturn m.Optionalgroup\n\t\t}\n\t\treturn nil\n\t}\n\n\ttype Test_OptionalGroup struct {\n\t\tRequiredField *string `protobuf:\"bytes,5,req\" json:\"RequiredField,omitempty\"`\n\t}\n\tfunc (m *Test_OptionalGroup) Reset()         { *m = Test_OptionalGroup{} }\n\tfunc (m *Test_OptionalGroup) String() string { return proto.CompactTextString(m) }\n\n\tfunc (m *Test_OptionalGroup) GetRequiredField() string {\n\t\tif m != nil && m.RequiredField != nil {\n\t\t\treturn *m.RequiredField\n\t\t}\n\t\treturn \"\"\n\t}\n\n\tfunc (m *Test) GetNumber() int32 {\n\t\tif x, ok := m.GetUnion().(*Test_Number); ok {\n\t\t\treturn x.Number\n\t\t}\n\t\treturn 0\n\t}\n\n\tfunc (m *Test) GetName() string {\n\t\tif x, ok := m.GetUnion().(*Test_Name); ok {\n\t\t\treturn x.Name\n\t\t}\n\t\treturn \"\"\n\t}\n\n\tfunc init() {\n\t\tproto.RegisterEnum(\"example.FOO\", FOO_name, FOO_value)\n\t}\n\nTo create and play with a Test object:\n\n\tpackage main\n\n\timport (\n\t\t\"log\"\n\n\t\t\"github.com/gogo/protobuf/proto\"\n\t\tpb \"./example.pb\"\n\t)\n\n\tfunc main() {\n\t\ttest := &pb.Test{\n\t\t\tLabel: proto.String(\"hello\"),\n\t\t\tType:  proto.Int32(17),\n\t\t\tReps:  []int64{1, 2, 3},\n\t\t\tOptionalgroup: &pb.Test_OptionalGroup{\n\t\t\t\tRequiredField: proto.String(\"good bye\"),\n\t\t\t},\n\t\t\tUnion: &pb.Test_Name{\"fred\"},\n\t\t}\n\t\tdata, err := proto.Marshal(test)\n\t\tif err != nil {\n\t\t\tlog.Fatal(\"marshaling error: \", err)\n\t\t}\n\t\tnewTest := &pb.Test{}\n\t\terr = proto.Unmarshal(data, newTest)\n\t\tif err != nil {\n\t\t\tlog.Fatal(\"unmarshaling error: \", err)\n\t\t}\n\t\t// Now test and newTest contain the same data.\n\t\tif test.GetLabel() != newTest.GetLabel() {\n\t\t\tlog.Fatalf(\"data mismatch %q != %q\", test.GetLabel(), newTest.GetLabel())\n\t\t}\n\t\t// Use a type switch to determine which oneof was set.\n\t\tswitch u := test.Union.(type) {\n\t\tcase *pb.Test_Number: // u.Number contains the number.\n\t\tcase *pb.Test_Name: // u.Name contains the string.\n\t\t}\n\t\t// etc.\n\t}\n*/\npackage proto\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"log\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strconv\"\n\t\"sync\"\n)\n\n// RequiredNotSetError is an error type returned by either Marshal or Unmarshal.\n// Marshal reports this when a required field is not initialized.\n// Unmarshal reports this when a required field is missing from the wire data.\ntype RequiredNotSetError struct{ field string }\n\nfunc (e *RequiredNotSetError) Error() string {\n\tif e.field == \"\" {\n\t\treturn fmt.Sprintf(\"proto: required field not set\")\n\t}\n\treturn fmt.Sprintf(\"proto: required field %q not set\", e.field)\n}\nfunc (e *RequiredNotSetError) RequiredNotSet() bool {\n\treturn true\n}\n\ntype invalidUTF8Error struct{ field string }\n\nfunc (e *invalidUTF8Error) Error() string {\n\tif e.field == \"\" {\n\t\treturn \"proto: invalid UTF-8 detected\"\n\t}\n\treturn fmt.Sprintf(\"proto: field %q contains invalid UTF-8\", e.field)\n}\nfunc (e *invalidUTF8Error) InvalidUTF8() bool {\n\treturn true\n}\n\n// errInvalidUTF8 is a sentinel error to identify fields with invalid UTF-8.\n// This error should not be exposed to the external API as such errors should\n// be recreated with the field information.\nvar errInvalidUTF8 = &invalidUTF8Error{}\n\n// isNonFatal reports whether the error is either a RequiredNotSet error\n// or a InvalidUTF8 error.\nfunc isNonFatal(err error) bool {\n\tif re, ok := err.(interface{ RequiredNotSet() bool }); ok && re.RequiredNotSet() {\n\t\treturn true\n\t}\n\tif re, ok := err.(interface{ InvalidUTF8() bool }); ok && re.InvalidUTF8() {\n\t\treturn true\n\t}\n\treturn false\n}\n\ntype nonFatal struct{ E error }\n\n// Merge merges err into nf and reports whether it was successful.\n// Otherwise it returns false for any fatal non-nil errors.\nfunc (nf *nonFatal) Merge(err error) (ok bool) {\n\tif err == nil {\n\t\treturn true // not an error\n\t}\n\tif !isNonFatal(err) {\n\t\treturn false // fatal error\n\t}\n\tif nf.E == nil {\n\t\tnf.E = err // store first instance of non-fatal error\n\t}\n\treturn true\n}\n\n// Message is implemented by generated protocol buffer messages.\ntype Message interface {\n\tReset()\n\tString() string\n\tProtoMessage()\n}\n\n// A Buffer is a buffer manager for marshaling and unmarshaling\n// protocol buffers.  It may be reused between invocations to\n// reduce memory usage.  It is not necessary to use a Buffer;\n// the global functions Marshal and Unmarshal create a\n// temporary Buffer and are fine for most applications.\ntype Buffer struct {\n\tbuf   []byte // encode/decode byte stream\n\tindex int    // read point\n\n\tdeterministic bool\n}\n\n// NewBuffer allocates a new Buffer and initializes its internal data to\n// the contents of the argument slice.\nfunc NewBuffer(e []byte) *Buffer {\n\treturn &Buffer{buf: e}\n}\n\n// Reset resets the Buffer, ready for marshaling a new protocol buffer.\nfunc (p *Buffer) Reset() {\n\tp.buf = p.buf[0:0] // for reading/writing\n\tp.index = 0        // for reading\n}\n\n// SetBuf replaces the internal buffer with the slice,\n// ready for unmarshaling the contents of the slice.\nfunc (p *Buffer) SetBuf(s []byte) {\n\tp.buf = s\n\tp.index = 0\n}\n\n// Bytes returns the contents of the Buffer.\nfunc (p *Buffer) Bytes() []byte { return p.buf }\n\n// SetDeterministic sets whether to use deterministic serialization.\n//\n// Deterministic serialization guarantees that for a given binary, equal\n// messages will always be serialized to the same bytes. This implies:\n//\n//   - Repeated serialization of a message will return the same bytes.\n//   - Different processes of the same binary (which may be executing on\n//     different machines) will serialize equal messages to the same bytes.\n//\n// Note that the deterministic serialization is NOT canonical across\n// languages. It is not guaranteed to remain stable over time. It is unstable\n// across different builds with schema changes due to unknown fields.\n// Users who need canonical serialization (e.g., persistent storage in a\n// canonical form, fingerprinting, etc.) should define their own\n// canonicalization specification and implement their own serializer rather\n// than relying on this API.\n//\n// If deterministic serialization is requested, map entries will be sorted\n// by keys in lexographical order. This is an implementation detail and\n// subject to change.\nfunc (p *Buffer) SetDeterministic(deterministic bool) {\n\tp.deterministic = deterministic\n}\n\n/*\n * Helper routines for simplifying the creation of optional fields of basic type.\n */\n\n// Bool is a helper routine that allocates a new bool value\n// to store v and returns a pointer to it.\nfunc Bool(v bool) *bool {\n\treturn &v\n}\n\n// Int32 is a helper routine that allocates a new int32 value\n// to store v and returns a pointer to it.\nfunc Int32(v int32) *int32 {\n\treturn &v\n}\n\n// Int is a helper routine that allocates a new int32 value\n// to store v and returns a pointer to it, but unlike Int32\n// its argument value is an int.\nfunc Int(v int) *int32 {\n\tp := new(int32)\n\t*p = int32(v)\n\treturn p\n}\n\n// Int64 is a helper routine that allocates a new int64 value\n// to store v and returns a pointer to it.\nfunc Int64(v int64) *int64 {\n\treturn &v\n}\n\n// Float32 is a helper routine that allocates a new float32 value\n// to store v and returns a pointer to it.\nfunc Float32(v float32) *float32 {\n\treturn &v\n}\n\n// Float64 is a helper routine that allocates a new float64 value\n// to store v and returns a pointer to it.\nfunc Float64(v float64) *float64 {\n\treturn &v\n}\n\n// Uint32 is a helper routine that allocates a new uint32 value\n// to store v and returns a pointer to it.\nfunc Uint32(v uint32) *uint32 {\n\treturn &v\n}\n\n// Uint64 is a helper routine that allocates a new uint64 value\n// to store v and returns a pointer to it.\nfunc Uint64(v uint64) *uint64 {\n\treturn &v\n}\n\n// String is a helper routine that allocates a new string value\n// to store v and returns a pointer to it.\nfunc String(v string) *string {\n\treturn &v\n}\n\n// EnumName is a helper function to simplify printing protocol buffer enums\n// by name.  Given an enum map and a value, it returns a useful string.\nfunc EnumName(m map[int32]string, v int32) string {\n\ts, ok := m[v]\n\tif ok {\n\t\treturn s\n\t}\n\treturn strconv.Itoa(int(v))\n}\n\n// UnmarshalJSONEnum is a helper function to simplify recovering enum int values\n// from their JSON-encoded representation. Given a map from the enum's symbolic\n// names to its int values, and a byte buffer containing the JSON-encoded\n// value, it returns an int32 that can be cast to the enum type by the caller.\n//\n// The function can deal with both JSON representations, numeric and symbolic.\nfunc UnmarshalJSONEnum(m map[string]int32, data []byte, enumName string) (int32, error) {\n\tif data[0] == '\"' {\n\t\t// New style: enums are strings.\n\t\tvar repr string\n\t\tif err := json.Unmarshal(data, &repr); err != nil {\n\t\t\treturn -1, err\n\t\t}\n\t\tval, ok := m[repr]\n\t\tif !ok {\n\t\t\treturn 0, fmt.Errorf(\"unrecognized enum %s value %q\", enumName, repr)\n\t\t}\n\t\treturn val, nil\n\t}\n\t// Old style: enums are ints.\n\tvar val int32\n\tif err := json.Unmarshal(data, &val); err != nil {\n\t\treturn 0, fmt.Errorf(\"cannot unmarshal %#q into enum %s\", data, enumName)\n\t}\n\treturn val, nil\n}\n\n// DebugPrint dumps the encoded data in b in a debugging format with a header\n// including the string s. Used in testing but made available for general debugging.\nfunc (p *Buffer) DebugPrint(s string, b []byte) {\n\tvar u uint64\n\n\tobuf := p.buf\n\tsindex := p.index\n\tp.buf = b\n\tp.index = 0\n\tdepth := 0\n\n\tfmt.Printf(\"\\n--- %s ---\\n\", s)\n\nout:\n\tfor {\n\t\tfor i := 0; i < depth; i++ {\n\t\t\tfmt.Print(\"  \")\n\t\t}\n\n\t\tindex := p.index\n\t\tif index == len(p.buf) {\n\t\t\tbreak\n\t\t}\n\n\t\top, err := p.DecodeVarint()\n\t\tif err != nil {\n\t\t\tfmt.Printf(\"%3d: fetching op err %v\\n\", index, err)\n\t\t\tbreak out\n\t\t}\n\t\ttag := op >> 3\n\t\twire := op & 7\n\n\t\tswitch wire {\n\t\tdefault:\n\t\t\tfmt.Printf(\"%3d: t=%3d unknown wire=%d\\n\",\n\t\t\t\tindex, tag, wire)\n\t\t\tbreak out\n\n\t\tcase WireBytes:\n\t\t\tvar r []byte\n\n\t\t\tr, err = p.DecodeRawBytes(false)\n\t\t\tif err != nil {\n\t\t\t\tbreak out\n\t\t\t}\n\t\t\tfmt.Printf(\"%3d: t=%3d bytes [%d]\", index, tag, len(r))\n\t\t\tif len(r) <= 6 {\n\t\t\t\tfor i := 0; i < len(r); i++ {\n\t\t\t\t\tfmt.Printf(\" %.2x\", r[i])\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor i := 0; i < 3; i++ {\n\t\t\t\t\tfmt.Printf(\" %.2x\", r[i])\n\t\t\t\t}\n\t\t\t\tfmt.Printf(\" ..\")\n\t\t\t\tfor i := len(r) - 3; i < len(r); i++ {\n\t\t\t\t\tfmt.Printf(\" %.2x\", r[i])\n\t\t\t\t}\n\t\t\t}\n\t\t\tfmt.Printf(\"\\n\")\n\n\t\tcase WireFixed32:\n\t\t\tu, err = p.DecodeFixed32()\n\t\t\tif err != nil {\n\t\t\t\tfmt.Printf(\"%3d: t=%3d fix32 err %v\\n\", index, tag, err)\n\t\t\t\tbreak out\n\t\t\t}\n\t\t\tfmt.Printf(\"%3d: t=%3d fix32 %d\\n\", index, tag, u)\n\n\t\tcase WireFixed64:\n\t\t\tu, err = p.DecodeFixed64()\n\t\t\tif err != nil {\n\t\t\t\tfmt.Printf(\"%3d: t=%3d fix64 err %v\\n\", index, tag, err)\n\t\t\t\tbreak out\n\t\t\t}\n\t\t\tfmt.Printf(\"%3d: t=%3d fix64 %d\\n\", index, tag, u)\n\n\t\tcase WireVarint:\n\t\t\tu, err = p.DecodeVarint()\n\t\t\tif err != nil {\n\t\t\t\tfmt.Printf(\"%3d: t=%3d varint err %v\\n\", index, tag, err)\n\t\t\t\tbreak out\n\t\t\t}\n\t\t\tfmt.Printf(\"%3d: t=%3d varint %d\\n\", index, tag, u)\n\n\t\tcase WireStartGroup:\n\t\t\tfmt.Printf(\"%3d: t=%3d start\\n\", index, tag)\n\t\t\tdepth++\n\n\t\tcase WireEndGroup:\n\t\t\tdepth--\n\t\t\tfmt.Printf(\"%3d: t=%3d end\\n\", index, tag)\n\t\t}\n\t}\n\n\tif depth != 0 {\n\t\tfmt.Printf(\"%3d: start-end not balanced %d\\n\", p.index, depth)\n\t}\n\tfmt.Printf(\"\\n\")\n\n\tp.buf = obuf\n\tp.index = sindex\n}\n\n// SetDefaults sets unset protocol buffer fields to their default values.\n// It only modifies fields that are both unset and have defined defaults.\n// It recursively sets default values in any non-nil sub-messages.\nfunc SetDefaults(pb Message) {\n\tsetDefaults(reflect.ValueOf(pb), true, false)\n}\n\n// v is a struct.\nfunc setDefaults(v reflect.Value, recur, zeros bool) {\n\tif v.Kind() == reflect.Ptr {\n\t\tv = v.Elem()\n\t}\n\n\tdefaultMu.RLock()\n\tdm, ok := defaults[v.Type()]\n\tdefaultMu.RUnlock()\n\tif !ok {\n\t\tdm = buildDefaultMessage(v.Type())\n\t\tdefaultMu.Lock()\n\t\tdefaults[v.Type()] = dm\n\t\tdefaultMu.Unlock()\n\t}\n\n\tfor _, sf := range dm.scalars {\n\t\tf := v.Field(sf.index)\n\t\tif !f.IsNil() {\n\t\t\t// field already set\n\t\t\tcontinue\n\t\t}\n\t\tdv := sf.value\n\t\tif dv == nil && !zeros {\n\t\t\t// no explicit default, and don't want to set zeros\n\t\t\tcontinue\n\t\t}\n\t\tfptr := f.Addr().Interface() // **T\n\t\t// TODO: Consider batching the allocations we do here.\n\t\tswitch sf.kind {\n\t\tcase reflect.Bool:\n\t\t\tb := new(bool)\n\t\t\tif dv != nil {\n\t\t\t\t*b = dv.(bool)\n\t\t\t}\n\t\t\t*(fptr.(**bool)) = b\n\t\tcase reflect.Float32:\n\t\t\tf := new(float32)\n\t\t\tif dv != nil {\n\t\t\t\t*f = dv.(float32)\n\t\t\t}\n\t\t\t*(fptr.(**float32)) = f\n\t\tcase reflect.Float64:\n\t\t\tf := new(float64)\n\t\t\tif dv != nil {\n\t\t\t\t*f = dv.(float64)\n\t\t\t}\n\t\t\t*(fptr.(**float64)) = f\n\t\tcase reflect.Int32:\n\t\t\t// might be an enum\n\t\t\tif ft := f.Type(); ft != int32PtrType {\n\t\t\t\t// enum\n\t\t\t\tf.Set(reflect.New(ft.Elem()))\n\t\t\t\tif dv != nil {\n\t\t\t\t\tf.Elem().SetInt(int64(dv.(int32)))\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// int32 field\n\t\t\t\ti := new(int32)\n\t\t\t\tif dv != nil {\n\t\t\t\t\t*i = dv.(int32)\n\t\t\t\t}\n\t\t\t\t*(fptr.(**int32)) = i\n\t\t\t}\n\t\tcase reflect.Int64:\n\t\t\ti := new(int64)\n\t\t\tif dv != nil {\n\t\t\t\t*i = dv.(int64)\n\t\t\t}\n\t\t\t*(fptr.(**int64)) = i\n\t\tcase reflect.String:\n\t\t\ts := new(string)\n\t\t\tif dv != nil {\n\t\t\t\t*s = dv.(string)\n\t\t\t}\n\t\t\t*(fptr.(**string)) = s\n\t\tcase reflect.Uint8:\n\t\t\t// exceptional case: []byte\n\t\t\tvar b []byte\n\t\t\tif dv != nil {\n\t\t\t\tdb := dv.([]byte)\n\t\t\t\tb = make([]byte, len(db))\n\t\t\t\tcopy(b, db)\n\t\t\t} else {\n\t\t\t\tb = []byte{}\n\t\t\t}\n\t\t\t*(fptr.(*[]byte)) = b\n\t\tcase reflect.Uint32:\n\t\t\tu := new(uint32)\n\t\t\tif dv != nil {\n\t\t\t\t*u = dv.(uint32)\n\t\t\t}\n\t\t\t*(fptr.(**uint32)) = u\n\t\tcase reflect.Uint64:\n\t\t\tu := new(uint64)\n\t\t\tif dv != nil {\n\t\t\t\t*u = dv.(uint64)\n\t\t\t}\n\t\t\t*(fptr.(**uint64)) = u\n\t\tdefault:\n\t\t\tlog.Printf(\"proto: can't set default for field %v (sf.kind=%v)\", f, sf.kind)\n\t\t}\n\t}\n\n\tfor _, ni := range dm.nested {\n\t\tf := v.Field(ni)\n\t\t// f is *T or T or []*T or []T\n\t\tswitch f.Kind() {\n\t\tcase reflect.Struct:\n\t\t\tsetDefaults(f, recur, zeros)\n\n\t\tcase reflect.Ptr:\n\t\t\tif f.IsNil() {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tsetDefaults(f, recur, zeros)\n\n\t\tcase reflect.Slice:\n\t\t\tfor i := 0; i < f.Len(); i++ {\n\t\t\t\te := f.Index(i)\n\t\t\t\tif e.Kind() == reflect.Ptr && e.IsNil() {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tsetDefaults(e, recur, zeros)\n\t\t\t}\n\n\t\tcase reflect.Map:\n\t\t\tfor _, k := range f.MapKeys() {\n\t\t\t\te := f.MapIndex(k)\n\t\t\t\tif e.IsNil() {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tsetDefaults(e, recur, zeros)\n\t\t\t}\n\t\t}\n\t}\n}\n\nvar (\n\t// defaults maps a protocol buffer struct type to a slice of the fields,\n\t// with its scalar fields set to their proto-declared non-zero default values.\n\tdefaultMu sync.RWMutex\n\tdefaults  = make(map[reflect.Type]defaultMessage)\n\n\tint32PtrType = reflect.TypeOf((*int32)(nil))\n)\n\n// defaultMessage represents information about the default values of a message.\ntype defaultMessage struct {\n\tscalars []scalarField\n\tnested  []int // struct field index of nested messages\n}\n\ntype scalarField struct {\n\tindex int          // struct field index\n\tkind  reflect.Kind // element type (the T in *T or []T)\n\tvalue interface{}  // the proto-declared default value, or nil\n}\n\n// t is a struct type.\nfunc buildDefaultMessage(t reflect.Type) (dm defaultMessage) {\n\tsprop := GetProperties(t)\n\tfor _, prop := range sprop.Prop {\n\t\tfi, ok := sprop.decoderTags.get(prop.Tag)\n\t\tif !ok {\n\t\t\t// XXX_unrecognized\n\t\t\tcontinue\n\t\t}\n\t\tft := t.Field(fi).Type\n\n\t\tsf, nested, err := fieldDefault(ft, prop)\n\t\tswitch {\n\t\tcase err != nil:\n\t\t\tlog.Print(err)\n\t\tcase nested:\n\t\t\tdm.nested = append(dm.nested, fi)\n\t\tcase sf != nil:\n\t\t\tsf.index = fi\n\t\t\tdm.scalars = append(dm.scalars, *sf)\n\t\t}\n\t}\n\n\treturn dm\n}\n\n// fieldDefault returns the scalarField for field type ft.\n// sf will be nil if the field can not have a default.\n// nestedMessage will be true if this is a nested message.\n// Note that sf.index is not set on return.\nfunc fieldDefault(ft reflect.Type, prop *Properties) (sf *scalarField, nestedMessage bool, err error) {\n\tvar canHaveDefault bool\n\tswitch ft.Kind() {\n\tcase reflect.Struct:\n\t\tnestedMessage = true // non-nullable\n\n\tcase reflect.Ptr:\n\t\tif ft.Elem().Kind() == reflect.Struct {\n\t\t\tnestedMessage = true\n\t\t} else {\n\t\t\tcanHaveDefault = true // proto2 scalar field\n\t\t}\n\n\tcase reflect.Slice:\n\t\tswitch ft.Elem().Kind() {\n\t\tcase reflect.Ptr, reflect.Struct:\n\t\t\tnestedMessage = true // repeated message\n\t\tcase reflect.Uint8:\n\t\t\tcanHaveDefault = true // bytes field\n\t\t}\n\n\tcase reflect.Map:\n\t\tif ft.Elem().Kind() == reflect.Ptr {\n\t\t\tnestedMessage = true // map with message values\n\t\t}\n\t}\n\n\tif !canHaveDefault {\n\t\tif nestedMessage {\n\t\t\treturn nil, true, nil\n\t\t}\n\t\treturn nil, false, nil\n\t}\n\n\t// We now know that ft is a pointer or slice.\n\tsf = &scalarField{kind: ft.Elem().Kind()}\n\n\t// scalar fields without defaults\n\tif !prop.HasDefault {\n\t\treturn sf, false, nil\n\t}\n\n\t// a scalar field: either *T or []byte\n\tswitch ft.Elem().Kind() {\n\tcase reflect.Bool:\n\t\tx, err := strconv.ParseBool(prop.Default)\n\t\tif err != nil {\n\t\t\treturn nil, false, fmt.Errorf(\"proto: bad default bool %q: %v\", prop.Default, err)\n\t\t}\n\t\tsf.value = x\n\tcase reflect.Float32:\n\t\tx, err := strconv.ParseFloat(prop.Default, 32)\n\t\tif err != nil {\n\t\t\treturn nil, false, fmt.Errorf(\"proto: bad default float32 %q: %v\", prop.Default, err)\n\t\t}\n\t\tsf.value = float32(x)\n\tcase reflect.Float64:\n\t\tx, err := strconv.ParseFloat(prop.Default, 64)\n\t\tif err != nil {\n\t\t\treturn nil, false, fmt.Errorf(\"proto: bad default float64 %q: %v\", prop.Default, err)\n\t\t}\n\t\tsf.value = x\n\tcase reflect.Int32:\n\t\tx, err := strconv.ParseInt(prop.Default, 10, 32)\n\t\tif err != nil {\n\t\t\treturn nil, false, fmt.Errorf(\"proto: bad default int32 %q: %v\", prop.Default, err)\n\t\t}\n\t\tsf.value = int32(x)\n\tcase reflect.Int64:\n\t\tx, err := strconv.ParseInt(prop.Default, 10, 64)\n\t\tif err != nil {\n\t\t\treturn nil, false, fmt.Errorf(\"proto: bad default int64 %q: %v\", prop.Default, err)\n\t\t}\n\t\tsf.value = x\n\tcase reflect.String:\n\t\tsf.value = prop.Default\n\tcase reflect.Uint8:\n\t\t// []byte (not *uint8)\n\t\tsf.value = []byte(prop.Default)\n\tcase reflect.Uint32:\n\t\tx, err := strconv.ParseUint(prop.Default, 10, 32)\n\t\tif err != nil {\n\t\t\treturn nil, false, fmt.Errorf(\"proto: bad default uint32 %q: %v\", prop.Default, err)\n\t\t}\n\t\tsf.value = uint32(x)\n\tcase reflect.Uint64:\n\t\tx, err := strconv.ParseUint(prop.Default, 10, 64)\n\t\tif err != nil {\n\t\t\treturn nil, false, fmt.Errorf(\"proto: bad default uint64 %q: %v\", prop.Default, err)\n\t\t}\n\t\tsf.value = x\n\tdefault:\n\t\treturn nil, false, fmt.Errorf(\"proto: unhandled def kind %v\", ft.Elem().Kind())\n\t}\n\n\treturn sf, false, nil\n}\n\n// mapKeys returns a sort.Interface to be used for sorting the map keys.\n// Map fields may have key types of non-float scalars, strings and enums.\nfunc mapKeys(vs []reflect.Value) sort.Interface {\n\ts := mapKeySorter{vs: vs}\n\n\t// Type specialization per https://developers.google.com/protocol-buffers/docs/proto#maps.\n\tif len(vs) == 0 {\n\t\treturn s\n\t}\n\tswitch vs[0].Kind() {\n\tcase reflect.Int32, reflect.Int64:\n\t\ts.less = func(a, b reflect.Value) bool { return a.Int() < b.Int() }\n\tcase reflect.Uint32, reflect.Uint64:\n\t\ts.less = func(a, b reflect.Value) bool { return a.Uint() < b.Uint() }\n\tcase reflect.Bool:\n\t\ts.less = func(a, b reflect.Value) bool { return !a.Bool() && b.Bool() } // false < true\n\tcase reflect.String:\n\t\ts.less = func(a, b reflect.Value) bool { return a.String() < b.String() }\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"unsupported map key type: %v\", vs[0].Kind()))\n\t}\n\n\treturn s\n}\n\ntype mapKeySorter struct {\n\tvs   []reflect.Value\n\tless func(a, b reflect.Value) bool\n}\n\nfunc (s mapKeySorter) Len() int      { return len(s.vs) }\nfunc (s mapKeySorter) Swap(i, j int) { s.vs[i], s.vs[j] = s.vs[j], s.vs[i] }\nfunc (s mapKeySorter) Less(i, j int) bool {\n\treturn s.less(s.vs[i], s.vs[j])\n}\n\n// isProto3Zero reports whether v is a zero proto3 value.\nfunc isProto3Zero(v reflect.Value) bool {\n\tswitch v.Kind() {\n\tcase reflect.Bool:\n\t\treturn !v.Bool()\n\tcase reflect.Int32, reflect.Int64:\n\t\treturn v.Int() == 0\n\tcase reflect.Uint32, reflect.Uint64:\n\t\treturn v.Uint() == 0\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn v.Float() == 0\n\tcase reflect.String:\n\t\treturn v.String() == \"\"\n\t}\n\treturn false\n}\n\nconst (\n\t// ProtoPackageIsVersion3 is referenced from generated protocol buffer files\n\t// to assert that that code is compatible with this version of the proto package.\n\tGoGoProtoPackageIsVersion3 = true\n\n\t// ProtoPackageIsVersion2 is referenced from generated protocol buffer files\n\t// to assert that that code is compatible with this version of the proto package.\n\tGoGoProtoPackageIsVersion2 = true\n\n\t// ProtoPackageIsVersion1 is referenced from generated protocol buffer files\n\t// to assert that that code is compatible with this version of the proto package.\n\tGoGoProtoPackageIsVersion1 = true\n)\n\n// InternalMessageInfo is a type used internally by generated .pb.go files.\n// This type is not intended to be used by non-generated code.\n// This type is not subject to any compatibility guarantee.\ntype InternalMessageInfo struct {\n\tmarshal   *marshalInfo\n\tunmarshal *unmarshalInfo\n\tmerge     *mergeInfo\n\tdiscard   *discardInfo\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/lib_gogo.go",
    "content": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2013, The GoGo Authors. All rights reserved.\n// http://github.com/gogo/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\nimport (\n\t\"encoding/json\"\n\t\"strconv\"\n)\n\ntype Sizer interface {\n\tSize() int\n}\n\ntype ProtoSizer interface {\n\tProtoSize() int\n}\n\nfunc MarshalJSONEnum(m map[int32]string, value int32) ([]byte, error) {\n\ts, ok := m[value]\n\tif !ok {\n\t\ts = strconv.Itoa(int(value))\n\t}\n\treturn json.Marshal(s)\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/message_set.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2010 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\n/*\n * Support for message sets.\n */\n\nimport (\n\t\"errors\"\n)\n\n// errNoMessageTypeID occurs when a protocol buffer does not have a message type ID.\n// A message type ID is required for storing a protocol buffer in a message set.\nvar errNoMessageTypeID = errors.New(\"proto does not have a message type ID\")\n\n// The first two types (_MessageSet_Item and messageSet)\n// model what the protocol compiler produces for the following protocol message:\n//   message MessageSet {\n//     repeated group Item = 1 {\n//       required int32 type_id = 2;\n//       required string message = 3;\n//     };\n//   }\n// That is the MessageSet wire format. We can't use a proto to generate these\n// because that would introduce a circular dependency between it and this package.\n\ntype _MessageSet_Item struct {\n\tTypeId  *int32 `protobuf:\"varint,2,req,name=type_id\"`\n\tMessage []byte `protobuf:\"bytes,3,req,name=message\"`\n}\n\ntype messageSet struct {\n\tItem             []*_MessageSet_Item `protobuf:\"group,1,rep\"`\n\tXXX_unrecognized []byte\n\t// TODO: caching?\n}\n\n// Make sure messageSet is a Message.\nvar _ Message = (*messageSet)(nil)\n\n// messageTypeIder is an interface satisfied by a protocol buffer type\n// that may be stored in a MessageSet.\ntype messageTypeIder interface {\n\tMessageTypeId() int32\n}\n\nfunc (ms *messageSet) find(pb Message) *_MessageSet_Item {\n\tmti, ok := pb.(messageTypeIder)\n\tif !ok {\n\t\treturn nil\n\t}\n\tid := mti.MessageTypeId()\n\tfor _, item := range ms.Item {\n\t\tif *item.TypeId == id {\n\t\t\treturn item\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (ms *messageSet) Has(pb Message) bool {\n\treturn ms.find(pb) != nil\n}\n\nfunc (ms *messageSet) Unmarshal(pb Message) error {\n\tif item := ms.find(pb); item != nil {\n\t\treturn Unmarshal(item.Message, pb)\n\t}\n\tif _, ok := pb.(messageTypeIder); !ok {\n\t\treturn errNoMessageTypeID\n\t}\n\treturn nil // TODO: return error instead?\n}\n\nfunc (ms *messageSet) Marshal(pb Message) error {\n\tmsg, err := Marshal(pb)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif item := ms.find(pb); item != nil {\n\t\t// reuse existing item\n\t\titem.Message = msg\n\t\treturn nil\n\t}\n\n\tmti, ok := pb.(messageTypeIder)\n\tif !ok {\n\t\treturn errNoMessageTypeID\n\t}\n\n\tmtid := mti.MessageTypeId()\n\tms.Item = append(ms.Item, &_MessageSet_Item{\n\t\tTypeId:  &mtid,\n\t\tMessage: msg,\n\t})\n\treturn nil\n}\n\nfunc (ms *messageSet) Reset()         { *ms = messageSet{} }\nfunc (ms *messageSet) String() string { return CompactTextString(ms) }\nfunc (*messageSet) ProtoMessage()     {}\n\n// Support for the message_set_wire_format message option.\n\nfunc skipVarint(buf []byte) []byte {\n\ti := 0\n\tfor ; buf[i]&0x80 != 0; i++ {\n\t}\n\treturn buf[i+1:]\n}\n\n// unmarshalMessageSet decodes the extension map encoded in buf in the message set wire format.\n// It is called by Unmarshal methods on protocol buffer messages with the message_set_wire_format option.\nfunc unmarshalMessageSet(buf []byte, exts interface{}) error {\n\tvar m map[int32]Extension\n\tswitch exts := exts.(type) {\n\tcase *XXX_InternalExtensions:\n\t\tm = exts.extensionsWrite()\n\tcase map[int32]Extension:\n\t\tm = exts\n\tdefault:\n\t\treturn errors.New(\"proto: not an extension map\")\n\t}\n\n\tms := new(messageSet)\n\tif err := Unmarshal(buf, ms); err != nil {\n\t\treturn err\n\t}\n\tfor _, item := range ms.Item {\n\t\tid := *item.TypeId\n\t\tmsg := item.Message\n\n\t\t// Restore wire type and field number varint, plus length varint.\n\t\t// Be careful to preserve duplicate items.\n\t\tb := EncodeVarint(uint64(id)<<3 | WireBytes)\n\t\tif ext, ok := m[id]; ok {\n\t\t\t// Existing data; rip off the tag and length varint\n\t\t\t// so we join the new data correctly.\n\t\t\t// We can assume that ext.enc is set because we are unmarshaling.\n\t\t\to := ext.enc[len(b):]   // skip wire type and field number\n\t\t\t_, n := DecodeVarint(o) // calculate length of length varint\n\t\t\to = o[n:]               // skip length varint\n\t\t\tmsg = append(o, msg...) // join old data and new data\n\t\t}\n\t\tb = append(b, EncodeVarint(uint64(len(msg)))...)\n\t\tb = append(b, msg...)\n\n\t\tm[id] = Extension{enc: b}\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/pointer_reflect.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2012 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n// +build purego appengine js\n\n// This file contains an implementation of proto field accesses using package reflect.\n// It is slower than the code in pointer_unsafe.go but it avoids package unsafe and can\n// be used on App Engine.\n\npackage proto\n\nimport (\n\t\"reflect\"\n\t\"sync\"\n)\n\nconst unsafeAllowed = false\n\n// A field identifies a field in a struct, accessible from a pointer.\n// In this implementation, a field is identified by the sequence of field indices\n// passed to reflect's FieldByIndex.\ntype field []int\n\n// toField returns a field equivalent to the given reflect field.\nfunc toField(f *reflect.StructField) field {\n\treturn f.Index\n}\n\n// invalidField is an invalid field identifier.\nvar invalidField = field(nil)\n\n// zeroField is a noop when calling pointer.offset.\nvar zeroField = field([]int{})\n\n// IsValid reports whether the field identifier is valid.\nfunc (f field) IsValid() bool { return f != nil }\n\n// The pointer type is for the table-driven decoder.\n// The implementation here uses a reflect.Value of pointer type to\n// create a generic pointer. In pointer_unsafe.go we use unsafe\n// instead of reflect to implement the same (but faster) interface.\ntype pointer struct {\n\tv reflect.Value\n}\n\n// toPointer converts an interface of pointer type to a pointer\n// that points to the same target.\nfunc toPointer(i *Message) pointer {\n\treturn pointer{v: reflect.ValueOf(*i)}\n}\n\n// toAddrPointer converts an interface to a pointer that points to\n// the interface data.\nfunc toAddrPointer(i *interface{}, isptr bool) pointer {\n\tv := reflect.ValueOf(*i)\n\tu := reflect.New(v.Type())\n\tu.Elem().Set(v)\n\treturn pointer{v: u}\n}\n\n// valToPointer converts v to a pointer.  v must be of pointer type.\nfunc valToPointer(v reflect.Value) pointer {\n\treturn pointer{v: v}\n}\n\n// offset converts from a pointer to a structure to a pointer to\n// one of its fields.\nfunc (p pointer) offset(f field) pointer {\n\treturn pointer{v: p.v.Elem().FieldByIndex(f).Addr()}\n}\n\nfunc (p pointer) isNil() bool {\n\treturn p.v.IsNil()\n}\n\n// grow updates the slice s in place to make it one element longer.\n// s must be addressable.\n// Returns the (addressable) new element.\nfunc grow(s reflect.Value) reflect.Value {\n\tn, m := s.Len(), s.Cap()\n\tif n < m {\n\t\ts.SetLen(n + 1)\n\t} else {\n\t\ts.Set(reflect.Append(s, reflect.Zero(s.Type().Elem())))\n\t}\n\treturn s.Index(n)\n}\n\nfunc (p pointer) toInt64() *int64 {\n\treturn p.v.Interface().(*int64)\n}\nfunc (p pointer) toInt64Ptr() **int64 {\n\treturn p.v.Interface().(**int64)\n}\nfunc (p pointer) toInt64Slice() *[]int64 {\n\treturn p.v.Interface().(*[]int64)\n}\n\nvar int32ptr = reflect.TypeOf((*int32)(nil))\n\nfunc (p pointer) toInt32() *int32 {\n\treturn p.v.Convert(int32ptr).Interface().(*int32)\n}\n\n// The toInt32Ptr/Slice methods don't work because of enums.\n// Instead, we must use set/get methods for the int32ptr/slice case.\n/*\n\tfunc (p pointer) toInt32Ptr() **int32 {\n\t\treturn p.v.Interface().(**int32)\n}\n\tfunc (p pointer) toInt32Slice() *[]int32 {\n\t\treturn p.v.Interface().(*[]int32)\n}\n*/\nfunc (p pointer) getInt32Ptr() *int32 {\n\tif p.v.Type().Elem().Elem() == reflect.TypeOf(int32(0)) {\n\t\t// raw int32 type\n\t\treturn p.v.Elem().Interface().(*int32)\n\t}\n\t// an enum\n\treturn p.v.Elem().Convert(int32PtrType).Interface().(*int32)\n}\nfunc (p pointer) setInt32Ptr(v int32) {\n\t// Allocate value in a *int32. Possibly convert that to a *enum.\n\t// Then assign it to a **int32 or **enum.\n\t// Note: we can convert *int32 to *enum, but we can't convert\n\t// **int32 to **enum!\n\tp.v.Elem().Set(reflect.ValueOf(&v).Convert(p.v.Type().Elem()))\n}\n\n// getInt32Slice copies []int32 from p as a new slice.\n// This behavior differs from the implementation in pointer_unsafe.go.\nfunc (p pointer) getInt32Slice() []int32 {\n\tif p.v.Type().Elem().Elem() == reflect.TypeOf(int32(0)) {\n\t\t// raw int32 type\n\t\treturn p.v.Elem().Interface().([]int32)\n\t}\n\t// an enum\n\t// Allocate a []int32, then assign []enum's values into it.\n\t// Note: we can't convert []enum to []int32.\n\tslice := p.v.Elem()\n\ts := make([]int32, slice.Len())\n\tfor i := 0; i < slice.Len(); i++ {\n\t\ts[i] = int32(slice.Index(i).Int())\n\t}\n\treturn s\n}\n\n// setInt32Slice copies []int32 into p as a new slice.\n// This behavior differs from the implementation in pointer_unsafe.go.\nfunc (p pointer) setInt32Slice(v []int32) {\n\tif p.v.Type().Elem().Elem() == reflect.TypeOf(int32(0)) {\n\t\t// raw int32 type\n\t\tp.v.Elem().Set(reflect.ValueOf(v))\n\t\treturn\n\t}\n\t// an enum\n\t// Allocate a []enum, then assign []int32's values into it.\n\t// Note: we can't convert []enum to []int32.\n\tslice := reflect.MakeSlice(p.v.Type().Elem(), len(v), cap(v))\n\tfor i, x := range v {\n\t\tslice.Index(i).SetInt(int64(x))\n\t}\n\tp.v.Elem().Set(slice)\n}\nfunc (p pointer) appendInt32Slice(v int32) {\n\tgrow(p.v.Elem()).SetInt(int64(v))\n}\n\nfunc (p pointer) toUint64() *uint64 {\n\treturn p.v.Interface().(*uint64)\n}\nfunc (p pointer) toUint64Ptr() **uint64 {\n\treturn p.v.Interface().(**uint64)\n}\nfunc (p pointer) toUint64Slice() *[]uint64 {\n\treturn p.v.Interface().(*[]uint64)\n}\nfunc (p pointer) toUint32() *uint32 {\n\treturn p.v.Interface().(*uint32)\n}\nfunc (p pointer) toUint32Ptr() **uint32 {\n\treturn p.v.Interface().(**uint32)\n}\nfunc (p pointer) toUint32Slice() *[]uint32 {\n\treturn p.v.Interface().(*[]uint32)\n}\nfunc (p pointer) toBool() *bool {\n\treturn p.v.Interface().(*bool)\n}\nfunc (p pointer) toBoolPtr() **bool {\n\treturn p.v.Interface().(**bool)\n}\nfunc (p pointer) toBoolSlice() *[]bool {\n\treturn p.v.Interface().(*[]bool)\n}\nfunc (p pointer) toFloat64() *float64 {\n\treturn p.v.Interface().(*float64)\n}\nfunc (p pointer) toFloat64Ptr() **float64 {\n\treturn p.v.Interface().(**float64)\n}\nfunc (p pointer) toFloat64Slice() *[]float64 {\n\treturn p.v.Interface().(*[]float64)\n}\nfunc (p pointer) toFloat32() *float32 {\n\treturn p.v.Interface().(*float32)\n}\nfunc (p pointer) toFloat32Ptr() **float32 {\n\treturn p.v.Interface().(**float32)\n}\nfunc (p pointer) toFloat32Slice() *[]float32 {\n\treturn p.v.Interface().(*[]float32)\n}\nfunc (p pointer) toString() *string {\n\treturn p.v.Interface().(*string)\n}\nfunc (p pointer) toStringPtr() **string {\n\treturn p.v.Interface().(**string)\n}\nfunc (p pointer) toStringSlice() *[]string {\n\treturn p.v.Interface().(*[]string)\n}\nfunc (p pointer) toBytes() *[]byte {\n\treturn p.v.Interface().(*[]byte)\n}\nfunc (p pointer) toBytesSlice() *[][]byte {\n\treturn p.v.Interface().(*[][]byte)\n}\nfunc (p pointer) toExtensions() *XXX_InternalExtensions {\n\treturn p.v.Interface().(*XXX_InternalExtensions)\n}\nfunc (p pointer) toOldExtensions() *map[int32]Extension {\n\treturn p.v.Interface().(*map[int32]Extension)\n}\nfunc (p pointer) getPointer() pointer {\n\treturn pointer{v: p.v.Elem()}\n}\nfunc (p pointer) setPointer(q pointer) {\n\tp.v.Elem().Set(q.v)\n}\nfunc (p pointer) appendPointer(q pointer) {\n\tgrow(p.v.Elem()).Set(q.v)\n}\n\n// getPointerSlice copies []*T from p as a new []pointer.\n// This behavior differs from the implementation in pointer_unsafe.go.\nfunc (p pointer) getPointerSlice() []pointer {\n\tif p.v.IsNil() {\n\t\treturn nil\n\t}\n\tn := p.v.Elem().Len()\n\ts := make([]pointer, n)\n\tfor i := 0; i < n; i++ {\n\t\ts[i] = pointer{v: p.v.Elem().Index(i)}\n\t}\n\treturn s\n}\n\n// setPointerSlice copies []pointer into p as a new []*T.\n// This behavior differs from the implementation in pointer_unsafe.go.\nfunc (p pointer) setPointerSlice(v []pointer) {\n\tif v == nil {\n\t\tp.v.Elem().Set(reflect.New(p.v.Elem().Type()).Elem())\n\t\treturn\n\t}\n\ts := reflect.MakeSlice(p.v.Elem().Type(), 0, len(v))\n\tfor _, p := range v {\n\t\ts = reflect.Append(s, p.v)\n\t}\n\tp.v.Elem().Set(s)\n}\n\n// getInterfacePointer returns a pointer that points to the\n// interface data of the interface pointed by p.\nfunc (p pointer) getInterfacePointer() pointer {\n\tif p.v.Elem().IsNil() {\n\t\treturn pointer{v: p.v.Elem()}\n\t}\n\treturn pointer{v: p.v.Elem().Elem().Elem().Field(0).Addr()} // *interface -> interface -> *struct -> struct\n}\n\nfunc (p pointer) asPointerTo(t reflect.Type) reflect.Value {\n\t// TODO: check that p.v.Type().Elem() == t?\n\treturn p.v\n}\n\nfunc atomicLoadUnmarshalInfo(p **unmarshalInfo) *unmarshalInfo {\n\tatomicLock.Lock()\n\tdefer atomicLock.Unlock()\n\treturn *p\n}\nfunc atomicStoreUnmarshalInfo(p **unmarshalInfo, v *unmarshalInfo) {\n\tatomicLock.Lock()\n\tdefer atomicLock.Unlock()\n\t*p = v\n}\nfunc atomicLoadMarshalInfo(p **marshalInfo) *marshalInfo {\n\tatomicLock.Lock()\n\tdefer atomicLock.Unlock()\n\treturn *p\n}\nfunc atomicStoreMarshalInfo(p **marshalInfo, v *marshalInfo) {\n\tatomicLock.Lock()\n\tdefer atomicLock.Unlock()\n\t*p = v\n}\nfunc atomicLoadMergeInfo(p **mergeInfo) *mergeInfo {\n\tatomicLock.Lock()\n\tdefer atomicLock.Unlock()\n\treturn *p\n}\nfunc atomicStoreMergeInfo(p **mergeInfo, v *mergeInfo) {\n\tatomicLock.Lock()\n\tdefer atomicLock.Unlock()\n\t*p = v\n}\nfunc atomicLoadDiscardInfo(p **discardInfo) *discardInfo {\n\tatomicLock.Lock()\n\tdefer atomicLock.Unlock()\n\treturn *p\n}\nfunc atomicStoreDiscardInfo(p **discardInfo, v *discardInfo) {\n\tatomicLock.Lock()\n\tdefer atomicLock.Unlock()\n\t*p = v\n}\n\nvar atomicLock sync.Mutex\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/pointer_reflect_gogo.go",
    "content": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2018, The GoGo Authors. All rights reserved.\n// http://github.com/gogo/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n// +build purego appengine js\n\n// This file contains an implementation of proto field accesses using package reflect.\n// It is slower than the code in pointer_unsafe.go but it avoids package unsafe and can\n// be used on App Engine.\n\npackage proto\n\nimport (\n\t\"reflect\"\n)\n\n// TODO: untested, so probably incorrect.\n\nfunc (p pointer) getRef() pointer {\n\treturn pointer{v: p.v.Addr()}\n}\n\nfunc (p pointer) appendRef(v pointer, typ reflect.Type) {\n\tslice := p.getSlice(typ)\n\telem := v.asPointerTo(typ).Elem()\n\tnewSlice := reflect.Append(slice, elem)\n\tslice.Set(newSlice)\n}\n\nfunc (p pointer) getSlice(typ reflect.Type) reflect.Value {\n\tsliceTyp := reflect.SliceOf(typ)\n\tslice := p.asPointerTo(sliceTyp)\n\tslice = slice.Elem()\n\treturn slice\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/pointer_unsafe.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2012 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n// +build !purego,!appengine,!js\n\n// This file contains the implementation of the proto field accesses using package unsafe.\n\npackage proto\n\nimport (\n\t\"reflect\"\n\t\"sync/atomic\"\n\t\"unsafe\"\n)\n\nconst unsafeAllowed = true\n\n// A field identifies a field in a struct, accessible from a pointer.\n// In this implementation, a field is identified by its byte offset from the start of the struct.\ntype field uintptr\n\n// toField returns a field equivalent to the given reflect field.\nfunc toField(f *reflect.StructField) field {\n\treturn field(f.Offset)\n}\n\n// invalidField is an invalid field identifier.\nconst invalidField = ^field(0)\n\n// zeroField is a noop when calling pointer.offset.\nconst zeroField = field(0)\n\n// IsValid reports whether the field identifier is valid.\nfunc (f field) IsValid() bool {\n\treturn f != invalidField\n}\n\n// The pointer type below is for the new table-driven encoder/decoder.\n// The implementation here uses unsafe.Pointer to create a generic pointer.\n// In pointer_reflect.go we use reflect instead of unsafe to implement\n// the same (but slower) interface.\ntype pointer struct {\n\tp unsafe.Pointer\n}\n\n// size of pointer\nvar ptrSize = unsafe.Sizeof(uintptr(0))\n\n// toPointer converts an interface of pointer type to a pointer\n// that points to the same target.\nfunc toPointer(i *Message) pointer {\n\t// Super-tricky - read pointer out of data word of interface value.\n\t// Saves ~25ns over the equivalent:\n\t// return valToPointer(reflect.ValueOf(*i))\n\treturn pointer{p: (*[2]unsafe.Pointer)(unsafe.Pointer(i))[1]}\n}\n\n// toAddrPointer converts an interface to a pointer that points to\n// the interface data.\nfunc toAddrPointer(i *interface{}, isptr bool) pointer {\n\t// Super-tricky - read or get the address of data word of interface value.\n\tif isptr {\n\t\t// The interface is of pointer type, thus it is a direct interface.\n\t\t// The data word is the pointer data itself. We take its address.\n\t\treturn pointer{p: unsafe.Pointer(uintptr(unsafe.Pointer(i)) + ptrSize)}\n\t}\n\t// The interface is not of pointer type. The data word is the pointer\n\t// to the data.\n\treturn pointer{p: (*[2]unsafe.Pointer)(unsafe.Pointer(i))[1]}\n}\n\n// valToPointer converts v to a pointer. v must be of pointer type.\nfunc valToPointer(v reflect.Value) pointer {\n\treturn pointer{p: unsafe.Pointer(v.Pointer())}\n}\n\n// offset converts from a pointer to a structure to a pointer to\n// one of its fields.\nfunc (p pointer) offset(f field) pointer {\n\t// For safety, we should panic if !f.IsValid, however calling panic causes\n\t// this to no longer be inlineable, which is a serious performance cost.\n\t/*\n\t\tif !f.IsValid() {\n\t\t\tpanic(\"invalid field\")\n\t\t}\n\t*/\n\treturn pointer{p: unsafe.Pointer(uintptr(p.p) + uintptr(f))}\n}\n\nfunc (p pointer) isNil() bool {\n\treturn p.p == nil\n}\n\nfunc (p pointer) toInt64() *int64 {\n\treturn (*int64)(p.p)\n}\nfunc (p pointer) toInt64Ptr() **int64 {\n\treturn (**int64)(p.p)\n}\nfunc (p pointer) toInt64Slice() *[]int64 {\n\treturn (*[]int64)(p.p)\n}\nfunc (p pointer) toInt32() *int32 {\n\treturn (*int32)(p.p)\n}\n\n// See pointer_reflect.go for why toInt32Ptr/Slice doesn't exist.\n/*\n\tfunc (p pointer) toInt32Ptr() **int32 {\n\t\treturn (**int32)(p.p)\n\t}\n\tfunc (p pointer) toInt32Slice() *[]int32 {\n\t\treturn (*[]int32)(p.p)\n\t}\n*/\nfunc (p pointer) getInt32Ptr() *int32 {\n\treturn *(**int32)(p.p)\n}\nfunc (p pointer) setInt32Ptr(v int32) {\n\t*(**int32)(p.p) = &v\n}\n\n// getInt32Slice loads a []int32 from p.\n// The value returned is aliased with the original slice.\n// This behavior differs from the implementation in pointer_reflect.go.\nfunc (p pointer) getInt32Slice() []int32 {\n\treturn *(*[]int32)(p.p)\n}\n\n// setInt32Slice stores a []int32 to p.\n// The value set is aliased with the input slice.\n// This behavior differs from the implementation in pointer_reflect.go.\nfunc (p pointer) setInt32Slice(v []int32) {\n\t*(*[]int32)(p.p) = v\n}\n\n// TODO: Can we get rid of appendInt32Slice and use setInt32Slice instead?\nfunc (p pointer) appendInt32Slice(v int32) {\n\ts := (*[]int32)(p.p)\n\t*s = append(*s, v)\n}\n\nfunc (p pointer) toUint64() *uint64 {\n\treturn (*uint64)(p.p)\n}\nfunc (p pointer) toUint64Ptr() **uint64 {\n\treturn (**uint64)(p.p)\n}\nfunc (p pointer) toUint64Slice() *[]uint64 {\n\treturn (*[]uint64)(p.p)\n}\nfunc (p pointer) toUint32() *uint32 {\n\treturn (*uint32)(p.p)\n}\nfunc (p pointer) toUint32Ptr() **uint32 {\n\treturn (**uint32)(p.p)\n}\nfunc (p pointer) toUint32Slice() *[]uint32 {\n\treturn (*[]uint32)(p.p)\n}\nfunc (p pointer) toBool() *bool {\n\treturn (*bool)(p.p)\n}\nfunc (p pointer) toBoolPtr() **bool {\n\treturn (**bool)(p.p)\n}\nfunc (p pointer) toBoolSlice() *[]bool {\n\treturn (*[]bool)(p.p)\n}\nfunc (p pointer) toFloat64() *float64 {\n\treturn (*float64)(p.p)\n}\nfunc (p pointer) toFloat64Ptr() **float64 {\n\treturn (**float64)(p.p)\n}\nfunc (p pointer) toFloat64Slice() *[]float64 {\n\treturn (*[]float64)(p.p)\n}\nfunc (p pointer) toFloat32() *float32 {\n\treturn (*float32)(p.p)\n}\nfunc (p pointer) toFloat32Ptr() **float32 {\n\treturn (**float32)(p.p)\n}\nfunc (p pointer) toFloat32Slice() *[]float32 {\n\treturn (*[]float32)(p.p)\n}\nfunc (p pointer) toString() *string {\n\treturn (*string)(p.p)\n}\nfunc (p pointer) toStringPtr() **string {\n\treturn (**string)(p.p)\n}\nfunc (p pointer) toStringSlice() *[]string {\n\treturn (*[]string)(p.p)\n}\nfunc (p pointer) toBytes() *[]byte {\n\treturn (*[]byte)(p.p)\n}\nfunc (p pointer) toBytesSlice() *[][]byte {\n\treturn (*[][]byte)(p.p)\n}\nfunc (p pointer) toExtensions() *XXX_InternalExtensions {\n\treturn (*XXX_InternalExtensions)(p.p)\n}\nfunc (p pointer) toOldExtensions() *map[int32]Extension {\n\treturn (*map[int32]Extension)(p.p)\n}\n\n// getPointerSlice loads []*T from p as a []pointer.\n// The value returned is aliased with the original slice.\n// This behavior differs from the implementation in pointer_reflect.go.\nfunc (p pointer) getPointerSlice() []pointer {\n\t// Super-tricky - p should point to a []*T where T is a\n\t// message type. We load it as []pointer.\n\treturn *(*[]pointer)(p.p)\n}\n\n// setPointerSlice stores []pointer into p as a []*T.\n// The value set is aliased with the input slice.\n// This behavior differs from the implementation in pointer_reflect.go.\nfunc (p pointer) setPointerSlice(v []pointer) {\n\t// Super-tricky - p should point to a []*T where T is a\n\t// message type. We store it as []pointer.\n\t*(*[]pointer)(p.p) = v\n}\n\n// getPointer loads the pointer at p and returns it.\nfunc (p pointer) getPointer() pointer {\n\treturn pointer{p: *(*unsafe.Pointer)(p.p)}\n}\n\n// setPointer stores the pointer q at p.\nfunc (p pointer) setPointer(q pointer) {\n\t*(*unsafe.Pointer)(p.p) = q.p\n}\n\n// append q to the slice pointed to by p.\nfunc (p pointer) appendPointer(q pointer) {\n\ts := (*[]unsafe.Pointer)(p.p)\n\t*s = append(*s, q.p)\n}\n\n// getInterfacePointer returns a pointer that points to the\n// interface data of the interface pointed by p.\nfunc (p pointer) getInterfacePointer() pointer {\n\t// Super-tricky - read pointer out of data word of interface value.\n\treturn pointer{p: (*(*[2]unsafe.Pointer)(p.p))[1]}\n}\n\n// asPointerTo returns a reflect.Value that is a pointer to an\n// object of type t stored at p.\nfunc (p pointer) asPointerTo(t reflect.Type) reflect.Value {\n\treturn reflect.NewAt(t, p.p)\n}\n\nfunc atomicLoadUnmarshalInfo(p **unmarshalInfo) *unmarshalInfo {\n\treturn (*unmarshalInfo)(atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(p))))\n}\nfunc atomicStoreUnmarshalInfo(p **unmarshalInfo, v *unmarshalInfo) {\n\tatomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(p)), unsafe.Pointer(v))\n}\nfunc atomicLoadMarshalInfo(p **marshalInfo) *marshalInfo {\n\treturn (*marshalInfo)(atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(p))))\n}\nfunc atomicStoreMarshalInfo(p **marshalInfo, v *marshalInfo) {\n\tatomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(p)), unsafe.Pointer(v))\n}\nfunc atomicLoadMergeInfo(p **mergeInfo) *mergeInfo {\n\treturn (*mergeInfo)(atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(p))))\n}\nfunc atomicStoreMergeInfo(p **mergeInfo, v *mergeInfo) {\n\tatomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(p)), unsafe.Pointer(v))\n}\nfunc atomicLoadDiscardInfo(p **discardInfo) *discardInfo {\n\treturn (*discardInfo)(atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(p))))\n}\nfunc atomicStoreDiscardInfo(p **discardInfo, v *discardInfo) {\n\tatomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(p)), unsafe.Pointer(v))\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/pointer_unsafe_gogo.go",
    "content": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2018, The GoGo Authors. All rights reserved.\n// http://github.com/gogo/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n// +build !purego,!appengine,!js\n\n// This file contains the implementation of the proto field accesses using package unsafe.\n\npackage proto\n\nimport (\n\t\"reflect\"\n\t\"unsafe\"\n)\n\nfunc (p pointer) getRef() pointer {\n\treturn pointer{p: (unsafe.Pointer)(&p.p)}\n}\n\nfunc (p pointer) appendRef(v pointer, typ reflect.Type) {\n\tslice := p.getSlice(typ)\n\telem := v.asPointerTo(typ).Elem()\n\tnewSlice := reflect.Append(slice, elem)\n\tslice.Set(newSlice)\n}\n\nfunc (p pointer) getSlice(typ reflect.Type) reflect.Value {\n\tsliceTyp := reflect.SliceOf(typ)\n\tslice := p.asPointerTo(sliceTyp)\n\tslice = slice.Elem()\n\treturn slice\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/properties.go",
    "content": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2013, The GoGo Authors. All rights reserved.\n// http://github.com/gogo/protobuf\n//\n// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2010 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\n/*\n * Routines for encoding data into the wire format for protocol buffers.\n */\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n)\n\nconst debug bool = false\n\n// Constants that identify the encoding of a value on the wire.\nconst (\n\tWireVarint     = 0\n\tWireFixed64    = 1\n\tWireBytes      = 2\n\tWireStartGroup = 3\n\tWireEndGroup   = 4\n\tWireFixed32    = 5\n)\n\n// tagMap is an optimization over map[int]int for typical protocol buffer\n// use-cases. Encoded protocol buffers are often in tag order with small tag\n// numbers.\ntype tagMap struct {\n\tfastTags []int\n\tslowTags map[int]int\n}\n\n// tagMapFastLimit is the upper bound on the tag number that will be stored in\n// the tagMap slice rather than its map.\nconst tagMapFastLimit = 1024\n\nfunc (p *tagMap) get(t int) (int, bool) {\n\tif t > 0 && t < tagMapFastLimit {\n\t\tif t >= len(p.fastTags) {\n\t\t\treturn 0, false\n\t\t}\n\t\tfi := p.fastTags[t]\n\t\treturn fi, fi >= 0\n\t}\n\tfi, ok := p.slowTags[t]\n\treturn fi, ok\n}\n\nfunc (p *tagMap) put(t int, fi int) {\n\tif t > 0 && t < tagMapFastLimit {\n\t\tfor len(p.fastTags) < t+1 {\n\t\t\tp.fastTags = append(p.fastTags, -1)\n\t\t}\n\t\tp.fastTags[t] = fi\n\t\treturn\n\t}\n\tif p.slowTags == nil {\n\t\tp.slowTags = make(map[int]int)\n\t}\n\tp.slowTags[t] = fi\n}\n\n// StructProperties represents properties for all the fields of a struct.\n// decoderTags and decoderOrigNames should only be used by the decoder.\ntype StructProperties struct {\n\tProp             []*Properties  // properties for each field\n\treqCount         int            // required count\n\tdecoderTags      tagMap         // map from proto tag to struct field number\n\tdecoderOrigNames map[string]int // map from original name to struct field number\n\torder            []int          // list of struct field numbers in tag order\n\n\t// OneofTypes contains information about the oneof fields in this message.\n\t// It is keyed by the original name of a field.\n\tOneofTypes map[string]*OneofProperties\n}\n\n// OneofProperties represents information about a specific field in a oneof.\ntype OneofProperties struct {\n\tType  reflect.Type // pointer to generated struct type for this oneof field\n\tField int          // struct field number of the containing oneof in the message\n\tProp  *Properties\n}\n\n// Implement the sorting interface so we can sort the fields in tag order, as recommended by the spec.\n// See encode.go, (*Buffer).enc_struct.\n\nfunc (sp *StructProperties) Len() int { return len(sp.order) }\nfunc (sp *StructProperties) Less(i, j int) bool {\n\treturn sp.Prop[sp.order[i]].Tag < sp.Prop[sp.order[j]].Tag\n}\nfunc (sp *StructProperties) Swap(i, j int) { sp.order[i], sp.order[j] = sp.order[j], sp.order[i] }\n\n// Properties represents the protocol-specific behavior of a single struct field.\ntype Properties struct {\n\tName     string // name of the field, for error messages\n\tOrigName string // original name before protocol compiler (always set)\n\tJSONName string // name to use for JSON; determined by protoc\n\tWire     string\n\tWireType int\n\tTag      int\n\tRequired bool\n\tOptional bool\n\tRepeated bool\n\tPacked   bool   // relevant for repeated primitives only\n\tEnum     string // set for enum types only\n\tproto3   bool   // whether this is known to be a proto3 field\n\toneof    bool   // whether this is a oneof field\n\n\tDefault     string // default value\n\tHasDefault  bool   // whether an explicit default was provided\n\tCustomType  string\n\tCastType    string\n\tStdTime     bool\n\tStdDuration bool\n\tWktPointer  bool\n\n\tstype reflect.Type      // set for struct types only\n\tctype reflect.Type      // set for custom types only\n\tsprop *StructProperties // set for struct types only\n\n\tmtype      reflect.Type // set for map types only\n\tMapKeyProp *Properties  // set for map types only\n\tMapValProp *Properties  // set for map types only\n}\n\n// String formats the properties in the protobuf struct field tag style.\nfunc (p *Properties) String() string {\n\ts := p.Wire\n\ts += \",\"\n\ts += strconv.Itoa(p.Tag)\n\tif p.Required {\n\t\ts += \",req\"\n\t}\n\tif p.Optional {\n\t\ts += \",opt\"\n\t}\n\tif p.Repeated {\n\t\ts += \",rep\"\n\t}\n\tif p.Packed {\n\t\ts += \",packed\"\n\t}\n\ts += \",name=\" + p.OrigName\n\tif p.JSONName != p.OrigName {\n\t\ts += \",json=\" + p.JSONName\n\t}\n\tif p.proto3 {\n\t\ts += \",proto3\"\n\t}\n\tif p.oneof {\n\t\ts += \",oneof\"\n\t}\n\tif len(p.Enum) > 0 {\n\t\ts += \",enum=\" + p.Enum\n\t}\n\tif p.HasDefault {\n\t\ts += \",def=\" + p.Default\n\t}\n\treturn s\n}\n\n// Parse populates p by parsing a string in the protobuf struct field tag style.\nfunc (p *Properties) Parse(s string) {\n\t// \"bytes,49,opt,name=foo,def=hello!\"\n\tfields := strings.Split(s, \",\") // breaks def=, but handled below.\n\tif len(fields) < 2 {\n\t\tlog.Printf(\"proto: tag has too few fields: %q\", s)\n\t\treturn\n\t}\n\n\tp.Wire = fields[0]\n\tswitch p.Wire {\n\tcase \"varint\":\n\t\tp.WireType = WireVarint\n\tcase \"fixed32\":\n\t\tp.WireType = WireFixed32\n\tcase \"fixed64\":\n\t\tp.WireType = WireFixed64\n\tcase \"zigzag32\":\n\t\tp.WireType = WireVarint\n\tcase \"zigzag64\":\n\t\tp.WireType = WireVarint\n\tcase \"bytes\", \"group\":\n\t\tp.WireType = WireBytes\n\t\t// no numeric converter for non-numeric types\n\tdefault:\n\t\tlog.Printf(\"proto: tag has unknown wire type: %q\", s)\n\t\treturn\n\t}\n\n\tvar err error\n\tp.Tag, err = strconv.Atoi(fields[1])\n\tif err != nil {\n\t\treturn\n\t}\n\nouter:\n\tfor i := 2; i < len(fields); i++ {\n\t\tf := fields[i]\n\t\tswitch {\n\t\tcase f == \"req\":\n\t\t\tp.Required = true\n\t\tcase f == \"opt\":\n\t\t\tp.Optional = true\n\t\tcase f == \"rep\":\n\t\t\tp.Repeated = true\n\t\tcase f == \"packed\":\n\t\t\tp.Packed = true\n\t\tcase strings.HasPrefix(f, \"name=\"):\n\t\t\tp.OrigName = f[5:]\n\t\tcase strings.HasPrefix(f, \"json=\"):\n\t\t\tp.JSONName = f[5:]\n\t\tcase strings.HasPrefix(f, \"enum=\"):\n\t\t\tp.Enum = f[5:]\n\t\tcase f == \"proto3\":\n\t\t\tp.proto3 = true\n\t\tcase f == \"oneof\":\n\t\t\tp.oneof = true\n\t\tcase strings.HasPrefix(f, \"def=\"):\n\t\t\tp.HasDefault = true\n\t\t\tp.Default = f[4:] // rest of string\n\t\t\tif i+1 < len(fields) {\n\t\t\t\t// Commas aren't escaped, and def is always last.\n\t\t\t\tp.Default += \",\" + strings.Join(fields[i+1:], \",\")\n\t\t\t\tbreak outer\n\t\t\t}\n\t\tcase strings.HasPrefix(f, \"embedded=\"):\n\t\t\tp.OrigName = strings.Split(f, \"=\")[1]\n\t\tcase strings.HasPrefix(f, \"customtype=\"):\n\t\t\tp.CustomType = strings.Split(f, \"=\")[1]\n\t\tcase strings.HasPrefix(f, \"casttype=\"):\n\t\t\tp.CastType = strings.Split(f, \"=\")[1]\n\t\tcase f == \"stdtime\":\n\t\t\tp.StdTime = true\n\t\tcase f == \"stdduration\":\n\t\t\tp.StdDuration = true\n\t\tcase f == \"wktptr\":\n\t\t\tp.WktPointer = true\n\t\t}\n\t}\n}\n\nvar protoMessageType = reflect.TypeOf((*Message)(nil)).Elem()\n\n// setFieldProps initializes the field properties for submessages and maps.\nfunc (p *Properties) setFieldProps(typ reflect.Type, f *reflect.StructField, lockGetProp bool) {\n\tisMap := typ.Kind() == reflect.Map\n\tif len(p.CustomType) > 0 && !isMap {\n\t\tp.ctype = typ\n\t\tp.setTag(lockGetProp)\n\t\treturn\n\t}\n\tif p.StdTime && !isMap {\n\t\tp.setTag(lockGetProp)\n\t\treturn\n\t}\n\tif p.StdDuration && !isMap {\n\t\tp.setTag(lockGetProp)\n\t\treturn\n\t}\n\tif p.WktPointer && !isMap {\n\t\tp.setTag(lockGetProp)\n\t\treturn\n\t}\n\tswitch t1 := typ; t1.Kind() {\n\tcase reflect.Struct:\n\t\tp.stype = typ\n\tcase reflect.Ptr:\n\t\tif t1.Elem().Kind() == reflect.Struct {\n\t\t\tp.stype = t1.Elem()\n\t\t}\n\tcase reflect.Slice:\n\t\tswitch t2 := t1.Elem(); t2.Kind() {\n\t\tcase reflect.Ptr:\n\t\t\tswitch t3 := t2.Elem(); t3.Kind() {\n\t\t\tcase reflect.Struct:\n\t\t\t\tp.stype = t3\n\t\t\t}\n\t\tcase reflect.Struct:\n\t\t\tp.stype = t2\n\t\t}\n\n\tcase reflect.Map:\n\n\t\tp.mtype = t1\n\t\tp.MapKeyProp = &Properties{}\n\t\tp.MapKeyProp.init(reflect.PtrTo(p.mtype.Key()), \"Key\", f.Tag.Get(\"protobuf_key\"), nil, lockGetProp)\n\t\tp.MapValProp = &Properties{}\n\t\tvtype := p.mtype.Elem()\n\t\tif vtype.Kind() != reflect.Ptr && vtype.Kind() != reflect.Slice {\n\t\t\t// The value type is not a message (*T) or bytes ([]byte),\n\t\t\t// so we need encoders for the pointer to this type.\n\t\t\tvtype = reflect.PtrTo(vtype)\n\t\t}\n\n\t\tp.MapValProp.CustomType = p.CustomType\n\t\tp.MapValProp.StdDuration = p.StdDuration\n\t\tp.MapValProp.StdTime = p.StdTime\n\t\tp.MapValProp.WktPointer = p.WktPointer\n\t\tp.MapValProp.init(vtype, \"Value\", f.Tag.Get(\"protobuf_val\"), nil, lockGetProp)\n\t}\n\tp.setTag(lockGetProp)\n}\n\nfunc (p *Properties) setTag(lockGetProp bool) {\n\tif p.stype != nil {\n\t\tif lockGetProp {\n\t\t\tp.sprop = GetProperties(p.stype)\n\t\t} else {\n\t\t\tp.sprop = getPropertiesLocked(p.stype)\n\t\t}\n\t}\n}\n\nvar (\n\tmarshalerType = reflect.TypeOf((*Marshaler)(nil)).Elem()\n)\n\n// Init populates the properties from a protocol buffer struct tag.\nfunc (p *Properties) Init(typ reflect.Type, name, tag string, f *reflect.StructField) {\n\tp.init(typ, name, tag, f, true)\n}\n\nfunc (p *Properties) init(typ reflect.Type, name, tag string, f *reflect.StructField, lockGetProp bool) {\n\t// \"bytes,49,opt,def=hello!\"\n\tp.Name = name\n\tp.OrigName = name\n\tif tag == \"\" {\n\t\treturn\n\t}\n\tp.Parse(tag)\n\tp.setFieldProps(typ, f, lockGetProp)\n}\n\nvar (\n\tpropertiesMu  sync.RWMutex\n\tpropertiesMap = make(map[reflect.Type]*StructProperties)\n)\n\n// GetProperties returns the list of properties for the type represented by t.\n// t must represent a generated struct type of a protocol message.\nfunc GetProperties(t reflect.Type) *StructProperties {\n\tif t.Kind() != reflect.Struct {\n\t\tpanic(\"proto: type must have kind struct\")\n\t}\n\n\t// Most calls to GetProperties in a long-running program will be\n\t// retrieving details for types we have seen before.\n\tpropertiesMu.RLock()\n\tsprop, ok := propertiesMap[t]\n\tpropertiesMu.RUnlock()\n\tif ok {\n\t\treturn sprop\n\t}\n\n\tpropertiesMu.Lock()\n\tsprop = getPropertiesLocked(t)\n\tpropertiesMu.Unlock()\n\treturn sprop\n}\n\ntype (\n\toneofFuncsIface interface {\n\t\tXXX_OneofFuncs() (func(Message, *Buffer) error, func(Message, int, int, *Buffer) (bool, error), func(Message) int, []interface{})\n\t}\n\toneofWrappersIface interface {\n\t\tXXX_OneofWrappers() []interface{}\n\t}\n)\n\n// getPropertiesLocked requires that propertiesMu is held.\nfunc getPropertiesLocked(t reflect.Type) *StructProperties {\n\tif prop, ok := propertiesMap[t]; ok {\n\t\treturn prop\n\t}\n\n\tprop := new(StructProperties)\n\t// in case of recursive protos, fill this in now.\n\tpropertiesMap[t] = prop\n\n\t// build properties\n\tprop.Prop = make([]*Properties, t.NumField())\n\tprop.order = make([]int, t.NumField())\n\n\tisOneofMessage := false\n\tfor i := 0; i < t.NumField(); i++ {\n\t\tf := t.Field(i)\n\t\tp := new(Properties)\n\t\tname := f.Name\n\t\tp.init(f.Type, name, f.Tag.Get(\"protobuf\"), &f, false)\n\n\t\toneof := f.Tag.Get(\"protobuf_oneof\") // special case\n\t\tif oneof != \"\" {\n\t\t\tisOneofMessage = true\n\t\t\t// Oneof fields don't use the traditional protobuf tag.\n\t\t\tp.OrigName = oneof\n\t\t}\n\t\tprop.Prop[i] = p\n\t\tprop.order[i] = i\n\t\tif debug {\n\t\t\tprint(i, \" \", f.Name, \" \", t.String(), \" \")\n\t\t\tif p.Tag > 0 {\n\t\t\t\tprint(p.String())\n\t\t\t}\n\t\t\tprint(\"\\n\")\n\t\t}\n\t}\n\n\t// Re-order prop.order.\n\tsort.Sort(prop)\n\n\tif isOneofMessage {\n\t\tvar oots []interface{}\n\t\tswitch m := reflect.Zero(reflect.PtrTo(t)).Interface().(type) {\n\t\tcase oneofFuncsIface:\n\t\t\t_, _, _, oots = m.XXX_OneofFuncs()\n\t\tcase oneofWrappersIface:\n\t\t\toots = m.XXX_OneofWrappers()\n\t\t}\n\t\tif len(oots) > 0 {\n\t\t\t// Interpret oneof metadata.\n\t\t\tprop.OneofTypes = make(map[string]*OneofProperties)\n\t\t\tfor _, oot := range oots {\n\t\t\t\toop := &OneofProperties{\n\t\t\t\t\tType: reflect.ValueOf(oot).Type(), // *T\n\t\t\t\t\tProp: new(Properties),\n\t\t\t\t}\n\t\t\t\tsft := oop.Type.Elem().Field(0)\n\t\t\t\toop.Prop.Name = sft.Name\n\t\t\t\toop.Prop.Parse(sft.Tag.Get(\"protobuf\"))\n\t\t\t\t// There will be exactly one interface field that\n\t\t\t\t// this new value is assignable to.\n\t\t\t\tfor i := 0; i < t.NumField(); i++ {\n\t\t\t\t\tf := t.Field(i)\n\t\t\t\t\tif f.Type.Kind() != reflect.Interface {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\tif !oop.Type.AssignableTo(f.Type) {\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\toop.Field = i\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tprop.OneofTypes[oop.Prop.OrigName] = oop\n\t\t\t}\n\t\t}\n\t}\n\n\t// build required counts\n\t// build tags\n\treqCount := 0\n\tprop.decoderOrigNames = make(map[string]int)\n\tfor i, p := range prop.Prop {\n\t\tif strings.HasPrefix(p.Name, \"XXX_\") {\n\t\t\t// Internal fields should not appear in tags/origNames maps.\n\t\t\t// They are handled specially when encoding and decoding.\n\t\t\tcontinue\n\t\t}\n\t\tif p.Required {\n\t\t\treqCount++\n\t\t}\n\t\tprop.decoderTags.put(p.Tag, i)\n\t\tprop.decoderOrigNames[p.OrigName] = i\n\t}\n\tprop.reqCount = reqCount\n\n\treturn prop\n}\n\n// A global registry of enum types.\n// The generated code will register the generated maps by calling RegisterEnum.\n\nvar enumValueMaps = make(map[string]map[string]int32)\nvar enumStringMaps = make(map[string]map[int32]string)\n\n// RegisterEnum is called from the generated code to install the enum descriptor\n// maps into the global table to aid parsing text format protocol buffers.\nfunc RegisterEnum(typeName string, unusedNameMap map[int32]string, valueMap map[string]int32) {\n\tif _, ok := enumValueMaps[typeName]; ok {\n\t\tpanic(\"proto: duplicate enum registered: \" + typeName)\n\t}\n\tenumValueMaps[typeName] = valueMap\n\tif _, ok := enumStringMaps[typeName]; ok {\n\t\tpanic(\"proto: duplicate enum registered: \" + typeName)\n\t}\n\tenumStringMaps[typeName] = unusedNameMap\n}\n\n// EnumValueMap returns the mapping from names to integers of the\n// enum type enumType, or a nil if not found.\nfunc EnumValueMap(enumType string) map[string]int32 {\n\treturn enumValueMaps[enumType]\n}\n\n// A registry of all linked message types.\n// The string is a fully-qualified proto name (\"pkg.Message\").\nvar (\n\tprotoTypedNils = make(map[string]Message)      // a map from proto names to typed nil pointers\n\tprotoMapTypes  = make(map[string]reflect.Type) // a map from proto names to map types\n\trevProtoTypes  = make(map[reflect.Type]string)\n)\n\n// RegisterType is called from generated code and maps from the fully qualified\n// proto name to the type (pointer to struct) of the protocol buffer.\nfunc RegisterType(x Message, name string) {\n\tif _, ok := protoTypedNils[name]; ok {\n\t\t// TODO: Some day, make this a panic.\n\t\tlog.Printf(\"proto: duplicate proto type registered: %s\", name)\n\t\treturn\n\t}\n\tt := reflect.TypeOf(x)\n\tif v := reflect.ValueOf(x); v.Kind() == reflect.Ptr && v.Pointer() == 0 {\n\t\t// Generated code always calls RegisterType with nil x.\n\t\t// This check is just for extra safety.\n\t\tprotoTypedNils[name] = x\n\t} else {\n\t\tprotoTypedNils[name] = reflect.Zero(t).Interface().(Message)\n\t}\n\trevProtoTypes[t] = name\n}\n\n// RegisterMapType is called from generated code and maps from the fully qualified\n// proto name to the native map type of the proto map definition.\nfunc RegisterMapType(x interface{}, name string) {\n\tif reflect.TypeOf(x).Kind() != reflect.Map {\n\t\tpanic(fmt.Sprintf(\"RegisterMapType(%T, %q); want map\", x, name))\n\t}\n\tif _, ok := protoMapTypes[name]; ok {\n\t\tlog.Printf(\"proto: duplicate proto type registered: %s\", name)\n\t\treturn\n\t}\n\tt := reflect.TypeOf(x)\n\tprotoMapTypes[name] = t\n\trevProtoTypes[t] = name\n}\n\n// MessageName returns the fully-qualified proto name for the given message type.\nfunc MessageName(x Message) string {\n\ttype xname interface {\n\t\tXXX_MessageName() string\n\t}\n\tif m, ok := x.(xname); ok {\n\t\treturn m.XXX_MessageName()\n\t}\n\treturn revProtoTypes[reflect.TypeOf(x)]\n}\n\n// MessageType returns the message type (pointer to struct) for a named message.\n// The type is not guaranteed to implement proto.Message if the name refers to a\n// map entry.\nfunc MessageType(name string) reflect.Type {\n\tif t, ok := protoTypedNils[name]; ok {\n\t\treturn reflect.TypeOf(t)\n\t}\n\treturn protoMapTypes[name]\n}\n\n// A registry of all linked proto files.\nvar (\n\tprotoFiles = make(map[string][]byte) // file name => fileDescriptor\n)\n\n// RegisterFile is called from generated code and maps from the\n// full file name of a .proto file to its compressed FileDescriptorProto.\nfunc RegisterFile(filename string, fileDescriptor []byte) {\n\tprotoFiles[filename] = fileDescriptor\n}\n\n// FileDescriptor returns the compressed FileDescriptorProto for a .proto file.\nfunc FileDescriptor(filename string) []byte { return protoFiles[filename] }\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/properties_gogo.go",
    "content": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2018, The GoGo Authors. All rights reserved.\n// http://github.com/gogo/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\nimport (\n\t\"reflect\"\n)\n\nvar sizerType = reflect.TypeOf((*Sizer)(nil)).Elem()\nvar protosizerType = reflect.TypeOf((*ProtoSizer)(nil)).Elem()\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/skip_gogo.go",
    "content": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2013, The GoGo Authors. All rights reserved.\n// http://github.com/gogo/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\nimport (\n\t\"fmt\"\n\t\"io\"\n)\n\nfunc Skip(data []byte) (n int, err error) {\n\tl := len(data)\n\tindex := 0\n\tfor index < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif index >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := data[index]\n\t\t\tindex++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor {\n\t\t\t\tif index >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tindex++\n\t\t\t\tif data[index-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn index, nil\n\t\tcase 1:\n\t\t\tindex += 8\n\t\t\treturn index, nil\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif index >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := data[index]\n\t\t\t\tindex++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tindex += length\n\t\t\treturn index, nil\n\t\tcase 3:\n\t\t\tfor {\n\t\t\t\tvar innerWire uint64\n\t\t\t\tvar start int = index\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif index >= l {\n\t\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := data[index]\n\t\t\t\t\tindex++\n\t\t\t\t\tinnerWire |= (uint64(b) & 0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tinnerWireType := int(innerWire & 0x7)\n\t\t\t\tif innerWireType == 4 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tnext, err := Skip(data[start:])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\tindex = start + next\n\t\t\t}\n\t\t\treturn index, nil\n\t\tcase 4:\n\t\t\treturn index, nil\n\t\tcase 5:\n\t\t\tindex += 4\n\t\t\treturn index, nil\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t}\n\tpanic(\"unreachable\")\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/table_marshal.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2016 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"math\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"unicode/utf8\"\n)\n\n// a sizer takes a pointer to a field and the size of its tag, computes the size of\n// the encoded data.\ntype sizer func(pointer, int) int\n\n// a marshaler takes a byte slice, a pointer to a field, and its tag (in wire format),\n// marshals the field to the end of the slice, returns the slice and error (if any).\ntype marshaler func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error)\n\n// marshalInfo is the information used for marshaling a message.\ntype marshalInfo struct {\n\ttyp          reflect.Type\n\tfields       []*marshalFieldInfo\n\tunrecognized field                      // offset of XXX_unrecognized\n\textensions   field                      // offset of XXX_InternalExtensions\n\tv1extensions field                      // offset of XXX_extensions\n\tsizecache    field                      // offset of XXX_sizecache\n\tinitialized  int32                      // 0 -- only typ is set, 1 -- fully initialized\n\tmessageset   bool                       // uses message set wire format\n\thasmarshaler bool                       // has custom marshaler\n\tsync.RWMutex                            // protect extElems map, also for initialization\n\textElems     map[int32]*marshalElemInfo // info of extension elements\n\n\thassizer      bool // has custom sizer\n\thasprotosizer bool // has custom protosizer\n\n\tbytesExtensions field // offset of XXX_extensions where the field type is []byte\n}\n\n// marshalFieldInfo is the information used for marshaling a field of a message.\ntype marshalFieldInfo struct {\n\tfield      field\n\twiretag    uint64 // tag in wire format\n\ttagsize    int    // size of tag in wire format\n\tsizer      sizer\n\tmarshaler  marshaler\n\tisPointer  bool\n\trequired   bool                              // field is required\n\tname       string                            // name of the field, for error reporting\n\toneofElems map[reflect.Type]*marshalElemInfo // info of oneof elements\n}\n\n// marshalElemInfo is the information used for marshaling an extension or oneof element.\ntype marshalElemInfo struct {\n\twiretag   uint64 // tag in wire format\n\ttagsize   int    // size of tag in wire format\n\tsizer     sizer\n\tmarshaler marshaler\n\tisptr     bool // elem is pointer typed, thus interface of this type is a direct interface (extension only)\n}\n\nvar (\n\tmarshalInfoMap  = map[reflect.Type]*marshalInfo{}\n\tmarshalInfoLock sync.Mutex\n\n\tuint8SliceType = reflect.TypeOf(([]uint8)(nil)).Kind()\n)\n\n// getMarshalInfo returns the information to marshal a given type of message.\n// The info it returns may not necessarily initialized.\n// t is the type of the message (NOT the pointer to it).\nfunc getMarshalInfo(t reflect.Type) *marshalInfo {\n\tmarshalInfoLock.Lock()\n\tu, ok := marshalInfoMap[t]\n\tif !ok {\n\t\tu = &marshalInfo{typ: t}\n\t\tmarshalInfoMap[t] = u\n\t}\n\tmarshalInfoLock.Unlock()\n\treturn u\n}\n\n// Size is the entry point from generated code,\n// and should be ONLY called by generated code.\n// It computes the size of encoded data of msg.\n// a is a pointer to a place to store cached marshal info.\nfunc (a *InternalMessageInfo) Size(msg Message) int {\n\tu := getMessageMarshalInfo(msg, a)\n\tptr := toPointer(&msg)\n\tif ptr.isNil() {\n\t\t// We get here if msg is a typed nil ((*SomeMessage)(nil)),\n\t\t// so it satisfies the interface, and msg == nil wouldn't\n\t\t// catch it. We don't want crash in this case.\n\t\treturn 0\n\t}\n\treturn u.size(ptr)\n}\n\n// Marshal is the entry point from generated code,\n// and should be ONLY called by generated code.\n// It marshals msg to the end of b.\n// a is a pointer to a place to store cached marshal info.\nfunc (a *InternalMessageInfo) Marshal(b []byte, msg Message, deterministic bool) ([]byte, error) {\n\tu := getMessageMarshalInfo(msg, a)\n\tptr := toPointer(&msg)\n\tif ptr.isNil() {\n\t\t// We get here if msg is a typed nil ((*SomeMessage)(nil)),\n\t\t// so it satisfies the interface, and msg == nil wouldn't\n\t\t// catch it. We don't want crash in this case.\n\t\treturn b, ErrNil\n\t}\n\treturn u.marshal(b, ptr, deterministic)\n}\n\nfunc getMessageMarshalInfo(msg interface{}, a *InternalMessageInfo) *marshalInfo {\n\t// u := a.marshal, but atomically.\n\t// We use an atomic here to ensure memory consistency.\n\tu := atomicLoadMarshalInfo(&a.marshal)\n\tif u == nil {\n\t\t// Get marshal information from type of message.\n\t\tt := reflect.ValueOf(msg).Type()\n\t\tif t.Kind() != reflect.Ptr {\n\t\t\tpanic(fmt.Sprintf(\"cannot handle non-pointer message type %v\", t))\n\t\t}\n\t\tu = getMarshalInfo(t.Elem())\n\t\t// Store it in the cache for later users.\n\t\t// a.marshal = u, but atomically.\n\t\tatomicStoreMarshalInfo(&a.marshal, u)\n\t}\n\treturn u\n}\n\n// size is the main function to compute the size of the encoded data of a message.\n// ptr is the pointer to the message.\nfunc (u *marshalInfo) size(ptr pointer) int {\n\tif atomic.LoadInt32(&u.initialized) == 0 {\n\t\tu.computeMarshalInfo()\n\t}\n\n\t// If the message can marshal itself, let it do it, for compatibility.\n\t// NOTE: This is not efficient.\n\tif u.hasmarshaler {\n\t\t// Uses the message's Size method if available\n\t\tif u.hassizer {\n\t\t\ts := ptr.asPointerTo(u.typ).Interface().(Sizer)\n\t\t\treturn s.Size()\n\t\t}\n\t\t// Uses the message's ProtoSize method if available\n\t\tif u.hasprotosizer {\n\t\t\ts := ptr.asPointerTo(u.typ).Interface().(ProtoSizer)\n\t\t\treturn s.ProtoSize()\n\t\t}\n\n\t\tm := ptr.asPointerTo(u.typ).Interface().(Marshaler)\n\t\tb, _ := m.Marshal()\n\t\treturn len(b)\n\t}\n\n\tn := 0\n\tfor _, f := range u.fields {\n\t\tif f.isPointer && ptr.offset(f.field).getPointer().isNil() {\n\t\t\t// nil pointer always marshals to nothing\n\t\t\tcontinue\n\t\t}\n\t\tn += f.sizer(ptr.offset(f.field), f.tagsize)\n\t}\n\tif u.extensions.IsValid() {\n\t\te := ptr.offset(u.extensions).toExtensions()\n\t\tif u.messageset {\n\t\t\tn += u.sizeMessageSet(e)\n\t\t} else {\n\t\t\tn += u.sizeExtensions(e)\n\t\t}\n\t}\n\tif u.v1extensions.IsValid() {\n\t\tm := *ptr.offset(u.v1extensions).toOldExtensions()\n\t\tn += u.sizeV1Extensions(m)\n\t}\n\tif u.bytesExtensions.IsValid() {\n\t\ts := *ptr.offset(u.bytesExtensions).toBytes()\n\t\tn += len(s)\n\t}\n\tif u.unrecognized.IsValid() {\n\t\ts := *ptr.offset(u.unrecognized).toBytes()\n\t\tn += len(s)\n\t}\n\n\t// cache the result for use in marshal\n\tif u.sizecache.IsValid() {\n\t\tatomic.StoreInt32(ptr.offset(u.sizecache).toInt32(), int32(n))\n\t}\n\treturn n\n}\n\n// cachedsize gets the size from cache. If there is no cache (i.e. message is not generated),\n// fall back to compute the size.\nfunc (u *marshalInfo) cachedsize(ptr pointer) int {\n\tif u.sizecache.IsValid() {\n\t\treturn int(atomic.LoadInt32(ptr.offset(u.sizecache).toInt32()))\n\t}\n\treturn u.size(ptr)\n}\n\n// marshal is the main function to marshal a message. It takes a byte slice and appends\n// the encoded data to the end of the slice, returns the slice and error (if any).\n// ptr is the pointer to the message.\n// If deterministic is true, map is marshaled in deterministic order.\nfunc (u *marshalInfo) marshal(b []byte, ptr pointer, deterministic bool) ([]byte, error) {\n\tif atomic.LoadInt32(&u.initialized) == 0 {\n\t\tu.computeMarshalInfo()\n\t}\n\n\t// If the message can marshal itself, let it do it, for compatibility.\n\t// NOTE: This is not efficient.\n\tif u.hasmarshaler {\n\t\tm := ptr.asPointerTo(u.typ).Interface().(Marshaler)\n\t\tb1, err := m.Marshal()\n\t\tb = append(b, b1...)\n\t\treturn b, err\n\t}\n\n\tvar err, errLater error\n\t// The old marshaler encodes extensions at beginning.\n\tif u.extensions.IsValid() {\n\t\te := ptr.offset(u.extensions).toExtensions()\n\t\tif u.messageset {\n\t\t\tb, err = u.appendMessageSet(b, e, deterministic)\n\t\t} else {\n\t\t\tb, err = u.appendExtensions(b, e, deterministic)\n\t\t}\n\t\tif err != nil {\n\t\t\treturn b, err\n\t\t}\n\t}\n\tif u.v1extensions.IsValid() {\n\t\tm := *ptr.offset(u.v1extensions).toOldExtensions()\n\t\tb, err = u.appendV1Extensions(b, m, deterministic)\n\t\tif err != nil {\n\t\t\treturn b, err\n\t\t}\n\t}\n\tif u.bytesExtensions.IsValid() {\n\t\ts := *ptr.offset(u.bytesExtensions).toBytes()\n\t\tb = append(b, s...)\n\t}\n\tfor _, f := range u.fields {\n\t\tif f.required {\n\t\t\tif f.isPointer && ptr.offset(f.field).getPointer().isNil() {\n\t\t\t\t// Required field is not set.\n\t\t\t\t// We record the error but keep going, to give a complete marshaling.\n\t\t\t\tif errLater == nil {\n\t\t\t\t\terrLater = &RequiredNotSetError{f.name}\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\t\tif f.isPointer && ptr.offset(f.field).getPointer().isNil() {\n\t\t\t// nil pointer always marshals to nothing\n\t\t\tcontinue\n\t\t}\n\t\tb, err = f.marshaler(b, ptr.offset(f.field), f.wiretag, deterministic)\n\t\tif err != nil {\n\t\t\tif err1, ok := err.(*RequiredNotSetError); ok {\n\t\t\t\t// Required field in submessage is not set.\n\t\t\t\t// We record the error but keep going, to give a complete marshaling.\n\t\t\t\tif errLater == nil {\n\t\t\t\t\terrLater = &RequiredNotSetError{f.name + \".\" + err1.field}\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif err == errRepeatedHasNil {\n\t\t\t\terr = errors.New(\"proto: repeated field \" + f.name + \" has nil element\")\n\t\t\t}\n\t\t\tif err == errInvalidUTF8 {\n\t\t\t\tif errLater == nil {\n\t\t\t\t\tfullName := revProtoTypes[reflect.PtrTo(u.typ)] + \".\" + f.name\n\t\t\t\t\terrLater = &invalidUTF8Error{fullName}\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn b, err\n\t\t}\n\t}\n\tif u.unrecognized.IsValid() {\n\t\ts := *ptr.offset(u.unrecognized).toBytes()\n\t\tb = append(b, s...)\n\t}\n\treturn b, errLater\n}\n\n// computeMarshalInfo initializes the marshal info.\nfunc (u *marshalInfo) computeMarshalInfo() {\n\tu.Lock()\n\tdefer u.Unlock()\n\tif u.initialized != 0 { // non-atomic read is ok as it is protected by the lock\n\t\treturn\n\t}\n\n\tt := u.typ\n\tu.unrecognized = invalidField\n\tu.extensions = invalidField\n\tu.v1extensions = invalidField\n\tu.bytesExtensions = invalidField\n\tu.sizecache = invalidField\n\tisOneofMessage := false\n\n\tif reflect.PtrTo(t).Implements(sizerType) {\n\t\tu.hassizer = true\n\t}\n\tif reflect.PtrTo(t).Implements(protosizerType) {\n\t\tu.hasprotosizer = true\n\t}\n\t// If the message can marshal itself, let it do it, for compatibility.\n\t// NOTE: This is not efficient.\n\tif reflect.PtrTo(t).Implements(marshalerType) {\n\t\tu.hasmarshaler = true\n\t\tatomic.StoreInt32(&u.initialized, 1)\n\t\treturn\n\t}\n\n\tn := t.NumField()\n\n\t// deal with XXX fields first\n\tfor i := 0; i < t.NumField(); i++ {\n\t\tf := t.Field(i)\n\t\tif f.Tag.Get(\"protobuf_oneof\") != \"\" {\n\t\t\tisOneofMessage = true\n\t\t}\n\t\tif !strings.HasPrefix(f.Name, \"XXX_\") {\n\t\t\tcontinue\n\t\t}\n\t\tswitch f.Name {\n\t\tcase \"XXX_sizecache\":\n\t\t\tu.sizecache = toField(&f)\n\t\tcase \"XXX_unrecognized\":\n\t\t\tu.unrecognized = toField(&f)\n\t\tcase \"XXX_InternalExtensions\":\n\t\t\tu.extensions = toField(&f)\n\t\t\tu.messageset = f.Tag.Get(\"protobuf_messageset\") == \"1\"\n\t\tcase \"XXX_extensions\":\n\t\t\tif f.Type.Kind() == reflect.Map {\n\t\t\t\tu.v1extensions = toField(&f)\n\t\t\t} else {\n\t\t\t\tu.bytesExtensions = toField(&f)\n\t\t\t}\n\t\tcase \"XXX_NoUnkeyedLiteral\":\n\t\t\t// nothing to do\n\t\tdefault:\n\t\t\tpanic(\"unknown XXX field: \" + f.Name)\n\t\t}\n\t\tn--\n\t}\n\n\t// get oneof implementers\n\tvar oneofImplementers []interface{}\n\t// gogo: isOneofMessage is needed for embedded oneof messages, without a marshaler and unmarshaler\n\tif isOneofMessage {\n\t\tswitch m := reflect.Zero(reflect.PtrTo(t)).Interface().(type) {\n\t\tcase oneofFuncsIface:\n\t\t\t_, _, _, oneofImplementers = m.XXX_OneofFuncs()\n\t\tcase oneofWrappersIface:\n\t\t\toneofImplementers = m.XXX_OneofWrappers()\n\t\t}\n\t}\n\n\t// normal fields\n\tfields := make([]marshalFieldInfo, n) // batch allocation\n\tu.fields = make([]*marshalFieldInfo, 0, n)\n\tfor i, j := 0, 0; i < t.NumField(); i++ {\n\t\tf := t.Field(i)\n\n\t\tif strings.HasPrefix(f.Name, \"XXX_\") {\n\t\t\tcontinue\n\t\t}\n\t\tfield := &fields[j]\n\t\tj++\n\t\tfield.name = f.Name\n\t\tu.fields = append(u.fields, field)\n\t\tif f.Tag.Get(\"protobuf_oneof\") != \"\" {\n\t\t\tfield.computeOneofFieldInfo(&f, oneofImplementers)\n\t\t\tcontinue\n\t\t}\n\t\tif f.Tag.Get(\"protobuf\") == \"\" {\n\t\t\t// field has no tag (not in generated message), ignore it\n\t\t\tu.fields = u.fields[:len(u.fields)-1]\n\t\t\tj--\n\t\t\tcontinue\n\t\t}\n\t\tfield.computeMarshalFieldInfo(&f)\n\t}\n\n\t// fields are marshaled in tag order on the wire.\n\tsort.Sort(byTag(u.fields))\n\n\tatomic.StoreInt32(&u.initialized, 1)\n}\n\n// helper for sorting fields by tag\ntype byTag []*marshalFieldInfo\n\nfunc (a byTag) Len() int           { return len(a) }\nfunc (a byTag) Swap(i, j int)      { a[i], a[j] = a[j], a[i] }\nfunc (a byTag) Less(i, j int) bool { return a[i].wiretag < a[j].wiretag }\n\n// getExtElemInfo returns the information to marshal an extension element.\n// The info it returns is initialized.\nfunc (u *marshalInfo) getExtElemInfo(desc *ExtensionDesc) *marshalElemInfo {\n\t// get from cache first\n\tu.RLock()\n\te, ok := u.extElems[desc.Field]\n\tu.RUnlock()\n\tif ok {\n\t\treturn e\n\t}\n\n\tt := reflect.TypeOf(desc.ExtensionType) // pointer or slice to basic type or struct\n\ttags := strings.Split(desc.Tag, \",\")\n\ttag, err := strconv.Atoi(tags[1])\n\tif err != nil {\n\t\tpanic(\"tag is not an integer\")\n\t}\n\twt := wiretype(tags[0])\n\tsizr, marshalr := typeMarshaler(t, tags, false, false)\n\te = &marshalElemInfo{\n\t\twiretag:   uint64(tag)<<3 | wt,\n\t\ttagsize:   SizeVarint(uint64(tag) << 3),\n\t\tsizer:     sizr,\n\t\tmarshaler: marshalr,\n\t\tisptr:     t.Kind() == reflect.Ptr,\n\t}\n\n\t// update cache\n\tu.Lock()\n\tif u.extElems == nil {\n\t\tu.extElems = make(map[int32]*marshalElemInfo)\n\t}\n\tu.extElems[desc.Field] = e\n\tu.Unlock()\n\treturn e\n}\n\n// computeMarshalFieldInfo fills up the information to marshal a field.\nfunc (fi *marshalFieldInfo) computeMarshalFieldInfo(f *reflect.StructField) {\n\t// parse protobuf tag of the field.\n\t// tag has format of \"bytes,49,opt,name=foo,def=hello!\"\n\ttags := strings.Split(f.Tag.Get(\"protobuf\"), \",\")\n\tif tags[0] == \"\" {\n\t\treturn\n\t}\n\ttag, err := strconv.Atoi(tags[1])\n\tif err != nil {\n\t\tpanic(\"tag is not an integer\")\n\t}\n\twt := wiretype(tags[0])\n\tif tags[2] == \"req\" {\n\t\tfi.required = true\n\t}\n\tfi.setTag(f, tag, wt)\n\tfi.setMarshaler(f, tags)\n}\n\nfunc (fi *marshalFieldInfo) computeOneofFieldInfo(f *reflect.StructField, oneofImplementers []interface{}) {\n\tfi.field = toField(f)\n\tfi.wiretag = math.MaxInt32 // Use a large tag number, make oneofs sorted at the end. This tag will not appear on the wire.\n\tfi.isPointer = true\n\tfi.sizer, fi.marshaler = makeOneOfMarshaler(fi, f)\n\tfi.oneofElems = make(map[reflect.Type]*marshalElemInfo)\n\n\tityp := f.Type // interface type\n\tfor _, o := range oneofImplementers {\n\t\tt := reflect.TypeOf(o)\n\t\tif !t.Implements(ityp) {\n\t\t\tcontinue\n\t\t}\n\t\tsf := t.Elem().Field(0) // oneof implementer is a struct with a single field\n\t\ttags := strings.Split(sf.Tag.Get(\"protobuf\"), \",\")\n\t\ttag, err := strconv.Atoi(tags[1])\n\t\tif err != nil {\n\t\t\tpanic(\"tag is not an integer\")\n\t\t}\n\t\twt := wiretype(tags[0])\n\t\tsizr, marshalr := typeMarshaler(sf.Type, tags, false, true) // oneof should not omit any zero value\n\t\tfi.oneofElems[t.Elem()] = &marshalElemInfo{\n\t\t\twiretag:   uint64(tag)<<3 | wt,\n\t\t\ttagsize:   SizeVarint(uint64(tag) << 3),\n\t\t\tsizer:     sizr,\n\t\t\tmarshaler: marshalr,\n\t\t}\n\t}\n}\n\n// wiretype returns the wire encoding of the type.\nfunc wiretype(encoding string) uint64 {\n\tswitch encoding {\n\tcase \"fixed32\":\n\t\treturn WireFixed32\n\tcase \"fixed64\":\n\t\treturn WireFixed64\n\tcase \"varint\", \"zigzag32\", \"zigzag64\":\n\t\treturn WireVarint\n\tcase \"bytes\":\n\t\treturn WireBytes\n\tcase \"group\":\n\t\treturn WireStartGroup\n\t}\n\tpanic(\"unknown wire type \" + encoding)\n}\n\n// setTag fills up the tag (in wire format) and its size in the info of a field.\nfunc (fi *marshalFieldInfo) setTag(f *reflect.StructField, tag int, wt uint64) {\n\tfi.field = toField(f)\n\tfi.wiretag = uint64(tag)<<3 | wt\n\tfi.tagsize = SizeVarint(uint64(tag) << 3)\n}\n\n// setMarshaler fills up the sizer and marshaler in the info of a field.\nfunc (fi *marshalFieldInfo) setMarshaler(f *reflect.StructField, tags []string) {\n\tswitch f.Type.Kind() {\n\tcase reflect.Map:\n\t\t// map field\n\t\tfi.isPointer = true\n\t\tfi.sizer, fi.marshaler = makeMapMarshaler(f)\n\t\treturn\n\tcase reflect.Ptr, reflect.Slice:\n\t\tfi.isPointer = true\n\t}\n\tfi.sizer, fi.marshaler = typeMarshaler(f.Type, tags, true, false)\n}\n\n// typeMarshaler returns the sizer and marshaler of a given field.\n// t is the type of the field.\n// tags is the generated \"protobuf\" tag of the field.\n// If nozero is true, zero value is not marshaled to the wire.\n// If oneof is true, it is a oneof field.\nfunc typeMarshaler(t reflect.Type, tags []string, nozero, oneof bool) (sizer, marshaler) {\n\tencoding := tags[0]\n\n\tpointer := false\n\tslice := false\n\tif t.Kind() == reflect.Slice && t.Elem().Kind() != reflect.Uint8 {\n\t\tslice = true\n\t\tt = t.Elem()\n\t}\n\tif t.Kind() == reflect.Ptr {\n\t\tpointer = true\n\t\tt = t.Elem()\n\t}\n\n\tpacked := false\n\tproto3 := false\n\tctype := false\n\tisTime := false\n\tisDuration := false\n\tisWktPointer := false\n\tvalidateUTF8 := true\n\tfor i := 2; i < len(tags); i++ {\n\t\tif tags[i] == \"packed\" {\n\t\t\tpacked = true\n\t\t}\n\t\tif tags[i] == \"proto3\" {\n\t\t\tproto3 = true\n\t\t}\n\t\tif strings.HasPrefix(tags[i], \"customtype=\") {\n\t\t\tctype = true\n\t\t}\n\t\tif tags[i] == \"stdtime\" {\n\t\t\tisTime = true\n\t\t}\n\t\tif tags[i] == \"stdduration\" {\n\t\t\tisDuration = true\n\t\t}\n\t\tif tags[i] == \"wktptr\" {\n\t\t\tisWktPointer = true\n\t\t}\n\t}\n\tvalidateUTF8 = validateUTF8 && proto3\n\tif !proto3 && !pointer && !slice {\n\t\tnozero = false\n\t}\n\n\tif ctype {\n\t\tif reflect.PtrTo(t).Implements(customType) {\n\t\t\tif slice {\n\t\t\t\treturn makeMessageRefSliceMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\tif pointer {\n\t\t\t\treturn makeCustomPtrMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\treturn makeCustomMarshaler(getMarshalInfo(t))\n\t\t} else {\n\t\t\tpanic(fmt.Sprintf(\"custom type: type: %v, does not implement the proto.custom interface\", t))\n\t\t}\n\t}\n\n\tif isTime {\n\t\tif pointer {\n\t\t\tif slice {\n\t\t\t\treturn makeTimePtrSliceMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\treturn makeTimePtrMarshaler(getMarshalInfo(t))\n\t\t}\n\t\tif slice {\n\t\t\treturn makeTimeSliceMarshaler(getMarshalInfo(t))\n\t\t}\n\t\treturn makeTimeMarshaler(getMarshalInfo(t))\n\t}\n\n\tif isDuration {\n\t\tif pointer {\n\t\t\tif slice {\n\t\t\t\treturn makeDurationPtrSliceMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\treturn makeDurationPtrMarshaler(getMarshalInfo(t))\n\t\t}\n\t\tif slice {\n\t\t\treturn makeDurationSliceMarshaler(getMarshalInfo(t))\n\t\t}\n\t\treturn makeDurationMarshaler(getMarshalInfo(t))\n\t}\n\n\tif isWktPointer {\n\t\tswitch t.Kind() {\n\t\tcase reflect.Float64:\n\t\t\tif pointer {\n\t\t\t\tif slice {\n\t\t\t\t\treturn makeStdDoubleValuePtrSliceMarshaler(getMarshalInfo(t))\n\t\t\t\t}\n\t\t\t\treturn makeStdDoubleValuePtrMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn makeStdDoubleValueSliceMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\treturn makeStdDoubleValueMarshaler(getMarshalInfo(t))\n\t\tcase reflect.Float32:\n\t\t\tif pointer {\n\t\t\t\tif slice {\n\t\t\t\t\treturn makeStdFloatValuePtrSliceMarshaler(getMarshalInfo(t))\n\t\t\t\t}\n\t\t\t\treturn makeStdFloatValuePtrMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn makeStdFloatValueSliceMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\treturn makeStdFloatValueMarshaler(getMarshalInfo(t))\n\t\tcase reflect.Int64:\n\t\t\tif pointer {\n\t\t\t\tif slice {\n\t\t\t\t\treturn makeStdInt64ValuePtrSliceMarshaler(getMarshalInfo(t))\n\t\t\t\t}\n\t\t\t\treturn makeStdInt64ValuePtrMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn makeStdInt64ValueSliceMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\treturn makeStdInt64ValueMarshaler(getMarshalInfo(t))\n\t\tcase reflect.Uint64:\n\t\t\tif pointer {\n\t\t\t\tif slice {\n\t\t\t\t\treturn makeStdUInt64ValuePtrSliceMarshaler(getMarshalInfo(t))\n\t\t\t\t}\n\t\t\t\treturn makeStdUInt64ValuePtrMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn makeStdUInt64ValueSliceMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\treturn makeStdUInt64ValueMarshaler(getMarshalInfo(t))\n\t\tcase reflect.Int32:\n\t\t\tif pointer {\n\t\t\t\tif slice {\n\t\t\t\t\treturn makeStdInt32ValuePtrSliceMarshaler(getMarshalInfo(t))\n\t\t\t\t}\n\t\t\t\treturn makeStdInt32ValuePtrMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn makeStdInt32ValueSliceMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\treturn makeStdInt32ValueMarshaler(getMarshalInfo(t))\n\t\tcase reflect.Uint32:\n\t\t\tif pointer {\n\t\t\t\tif slice {\n\t\t\t\t\treturn makeStdUInt32ValuePtrSliceMarshaler(getMarshalInfo(t))\n\t\t\t\t}\n\t\t\t\treturn makeStdUInt32ValuePtrMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn makeStdUInt32ValueSliceMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\treturn makeStdUInt32ValueMarshaler(getMarshalInfo(t))\n\t\tcase reflect.Bool:\n\t\t\tif pointer {\n\t\t\t\tif slice {\n\t\t\t\t\treturn makeStdBoolValuePtrSliceMarshaler(getMarshalInfo(t))\n\t\t\t\t}\n\t\t\t\treturn makeStdBoolValuePtrMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn makeStdBoolValueSliceMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\treturn makeStdBoolValueMarshaler(getMarshalInfo(t))\n\t\tcase reflect.String:\n\t\t\tif pointer {\n\t\t\t\tif slice {\n\t\t\t\t\treturn makeStdStringValuePtrSliceMarshaler(getMarshalInfo(t))\n\t\t\t\t}\n\t\t\t\treturn makeStdStringValuePtrMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn makeStdStringValueSliceMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\treturn makeStdStringValueMarshaler(getMarshalInfo(t))\n\t\tcase uint8SliceType:\n\t\t\tif pointer {\n\t\t\t\tif slice {\n\t\t\t\t\treturn makeStdBytesValuePtrSliceMarshaler(getMarshalInfo(t))\n\t\t\t\t}\n\t\t\t\treturn makeStdBytesValuePtrMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn makeStdBytesValueSliceMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\treturn makeStdBytesValueMarshaler(getMarshalInfo(t))\n\t\tdefault:\n\t\t\tpanic(fmt.Sprintf(\"unknown wktpointer type %#v\", t))\n\t\t}\n\t}\n\n\tswitch t.Kind() {\n\tcase reflect.Bool:\n\t\tif pointer {\n\t\t\treturn sizeBoolPtr, appendBoolPtr\n\t\t}\n\t\tif slice {\n\t\t\tif packed {\n\t\t\t\treturn sizeBoolPackedSlice, appendBoolPackedSlice\n\t\t\t}\n\t\t\treturn sizeBoolSlice, appendBoolSlice\n\t\t}\n\t\tif nozero {\n\t\t\treturn sizeBoolValueNoZero, appendBoolValueNoZero\n\t\t}\n\t\treturn sizeBoolValue, appendBoolValue\n\tcase reflect.Uint32:\n\t\tswitch encoding {\n\t\tcase \"fixed32\":\n\t\t\tif pointer {\n\t\t\t\treturn sizeFixed32Ptr, appendFixed32Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\tif packed {\n\t\t\t\t\treturn sizeFixed32PackedSlice, appendFixed32PackedSlice\n\t\t\t\t}\n\t\t\t\treturn sizeFixed32Slice, appendFixed32Slice\n\t\t\t}\n\t\t\tif nozero {\n\t\t\t\treturn sizeFixed32ValueNoZero, appendFixed32ValueNoZero\n\t\t\t}\n\t\t\treturn sizeFixed32Value, appendFixed32Value\n\t\tcase \"varint\":\n\t\t\tif pointer {\n\t\t\t\treturn sizeVarint32Ptr, appendVarint32Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\tif packed {\n\t\t\t\t\treturn sizeVarint32PackedSlice, appendVarint32PackedSlice\n\t\t\t\t}\n\t\t\t\treturn sizeVarint32Slice, appendVarint32Slice\n\t\t\t}\n\t\t\tif nozero {\n\t\t\t\treturn sizeVarint32ValueNoZero, appendVarint32ValueNoZero\n\t\t\t}\n\t\t\treturn sizeVarint32Value, appendVarint32Value\n\t\t}\n\tcase reflect.Int32:\n\t\tswitch encoding {\n\t\tcase \"fixed32\":\n\t\t\tif pointer {\n\t\t\t\treturn sizeFixedS32Ptr, appendFixedS32Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\tif packed {\n\t\t\t\t\treturn sizeFixedS32PackedSlice, appendFixedS32PackedSlice\n\t\t\t\t}\n\t\t\t\treturn sizeFixedS32Slice, appendFixedS32Slice\n\t\t\t}\n\t\t\tif nozero {\n\t\t\t\treturn sizeFixedS32ValueNoZero, appendFixedS32ValueNoZero\n\t\t\t}\n\t\t\treturn sizeFixedS32Value, appendFixedS32Value\n\t\tcase \"varint\":\n\t\t\tif pointer {\n\t\t\t\treturn sizeVarintS32Ptr, appendVarintS32Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\tif packed {\n\t\t\t\t\treturn sizeVarintS32PackedSlice, appendVarintS32PackedSlice\n\t\t\t\t}\n\t\t\t\treturn sizeVarintS32Slice, appendVarintS32Slice\n\t\t\t}\n\t\t\tif nozero {\n\t\t\t\treturn sizeVarintS32ValueNoZero, appendVarintS32ValueNoZero\n\t\t\t}\n\t\t\treturn sizeVarintS32Value, appendVarintS32Value\n\t\tcase \"zigzag32\":\n\t\t\tif pointer {\n\t\t\t\treturn sizeZigzag32Ptr, appendZigzag32Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\tif packed {\n\t\t\t\t\treturn sizeZigzag32PackedSlice, appendZigzag32PackedSlice\n\t\t\t\t}\n\t\t\t\treturn sizeZigzag32Slice, appendZigzag32Slice\n\t\t\t}\n\t\t\tif nozero {\n\t\t\t\treturn sizeZigzag32ValueNoZero, appendZigzag32ValueNoZero\n\t\t\t}\n\t\t\treturn sizeZigzag32Value, appendZigzag32Value\n\t\t}\n\tcase reflect.Uint64:\n\t\tswitch encoding {\n\t\tcase \"fixed64\":\n\t\t\tif pointer {\n\t\t\t\treturn sizeFixed64Ptr, appendFixed64Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\tif packed {\n\t\t\t\t\treturn sizeFixed64PackedSlice, appendFixed64PackedSlice\n\t\t\t\t}\n\t\t\t\treturn sizeFixed64Slice, appendFixed64Slice\n\t\t\t}\n\t\t\tif nozero {\n\t\t\t\treturn sizeFixed64ValueNoZero, appendFixed64ValueNoZero\n\t\t\t}\n\t\t\treturn sizeFixed64Value, appendFixed64Value\n\t\tcase \"varint\":\n\t\t\tif pointer {\n\t\t\t\treturn sizeVarint64Ptr, appendVarint64Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\tif packed {\n\t\t\t\t\treturn sizeVarint64PackedSlice, appendVarint64PackedSlice\n\t\t\t\t}\n\t\t\t\treturn sizeVarint64Slice, appendVarint64Slice\n\t\t\t}\n\t\t\tif nozero {\n\t\t\t\treturn sizeVarint64ValueNoZero, appendVarint64ValueNoZero\n\t\t\t}\n\t\t\treturn sizeVarint64Value, appendVarint64Value\n\t\t}\n\tcase reflect.Int64:\n\t\tswitch encoding {\n\t\tcase \"fixed64\":\n\t\t\tif pointer {\n\t\t\t\treturn sizeFixedS64Ptr, appendFixedS64Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\tif packed {\n\t\t\t\t\treturn sizeFixedS64PackedSlice, appendFixedS64PackedSlice\n\t\t\t\t}\n\t\t\t\treturn sizeFixedS64Slice, appendFixedS64Slice\n\t\t\t}\n\t\t\tif nozero {\n\t\t\t\treturn sizeFixedS64ValueNoZero, appendFixedS64ValueNoZero\n\t\t\t}\n\t\t\treturn sizeFixedS64Value, appendFixedS64Value\n\t\tcase \"varint\":\n\t\t\tif pointer {\n\t\t\t\treturn sizeVarintS64Ptr, appendVarintS64Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\tif packed {\n\t\t\t\t\treturn sizeVarintS64PackedSlice, appendVarintS64PackedSlice\n\t\t\t\t}\n\t\t\t\treturn sizeVarintS64Slice, appendVarintS64Slice\n\t\t\t}\n\t\t\tif nozero {\n\t\t\t\treturn sizeVarintS64ValueNoZero, appendVarintS64ValueNoZero\n\t\t\t}\n\t\t\treturn sizeVarintS64Value, appendVarintS64Value\n\t\tcase \"zigzag64\":\n\t\t\tif pointer {\n\t\t\t\treturn sizeZigzag64Ptr, appendZigzag64Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\tif packed {\n\t\t\t\t\treturn sizeZigzag64PackedSlice, appendZigzag64PackedSlice\n\t\t\t\t}\n\t\t\t\treturn sizeZigzag64Slice, appendZigzag64Slice\n\t\t\t}\n\t\t\tif nozero {\n\t\t\t\treturn sizeZigzag64ValueNoZero, appendZigzag64ValueNoZero\n\t\t\t}\n\t\t\treturn sizeZigzag64Value, appendZigzag64Value\n\t\t}\n\tcase reflect.Float32:\n\t\tif pointer {\n\t\t\treturn sizeFloat32Ptr, appendFloat32Ptr\n\t\t}\n\t\tif slice {\n\t\t\tif packed {\n\t\t\t\treturn sizeFloat32PackedSlice, appendFloat32PackedSlice\n\t\t\t}\n\t\t\treturn sizeFloat32Slice, appendFloat32Slice\n\t\t}\n\t\tif nozero {\n\t\t\treturn sizeFloat32ValueNoZero, appendFloat32ValueNoZero\n\t\t}\n\t\treturn sizeFloat32Value, appendFloat32Value\n\tcase reflect.Float64:\n\t\tif pointer {\n\t\t\treturn sizeFloat64Ptr, appendFloat64Ptr\n\t\t}\n\t\tif slice {\n\t\t\tif packed {\n\t\t\t\treturn sizeFloat64PackedSlice, appendFloat64PackedSlice\n\t\t\t}\n\t\t\treturn sizeFloat64Slice, appendFloat64Slice\n\t\t}\n\t\tif nozero {\n\t\t\treturn sizeFloat64ValueNoZero, appendFloat64ValueNoZero\n\t\t}\n\t\treturn sizeFloat64Value, appendFloat64Value\n\tcase reflect.String:\n\t\tif validateUTF8 {\n\t\t\tif pointer {\n\t\t\t\treturn sizeStringPtr, appendUTF8StringPtr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn sizeStringSlice, appendUTF8StringSlice\n\t\t\t}\n\t\t\tif nozero {\n\t\t\t\treturn sizeStringValueNoZero, appendUTF8StringValueNoZero\n\t\t\t}\n\t\t\treturn sizeStringValue, appendUTF8StringValue\n\t\t}\n\t\tif pointer {\n\t\t\treturn sizeStringPtr, appendStringPtr\n\t\t}\n\t\tif slice {\n\t\t\treturn sizeStringSlice, appendStringSlice\n\t\t}\n\t\tif nozero {\n\t\t\treturn sizeStringValueNoZero, appendStringValueNoZero\n\t\t}\n\t\treturn sizeStringValue, appendStringValue\n\tcase reflect.Slice:\n\t\tif slice {\n\t\t\treturn sizeBytesSlice, appendBytesSlice\n\t\t}\n\t\tif oneof {\n\t\t\t// Oneof bytes field may also have \"proto3\" tag.\n\t\t\t// We want to marshal it as a oneof field. Do this\n\t\t\t// check before the proto3 check.\n\t\t\treturn sizeBytesOneof, appendBytesOneof\n\t\t}\n\t\tif proto3 {\n\t\t\treturn sizeBytes3, appendBytes3\n\t\t}\n\t\treturn sizeBytes, appendBytes\n\tcase reflect.Struct:\n\t\tswitch encoding {\n\t\tcase \"group\":\n\t\t\tif slice {\n\t\t\t\treturn makeGroupSliceMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t\treturn makeGroupMarshaler(getMarshalInfo(t))\n\t\tcase \"bytes\":\n\t\t\tif pointer {\n\t\t\t\tif slice {\n\t\t\t\t\treturn makeMessageSliceMarshaler(getMarshalInfo(t))\n\t\t\t\t}\n\t\t\t\treturn makeMessageMarshaler(getMarshalInfo(t))\n\t\t\t} else {\n\t\t\t\tif slice {\n\t\t\t\t\treturn makeMessageRefSliceMarshaler(getMarshalInfo(t))\n\t\t\t\t}\n\t\t\t\treturn makeMessageRefMarshaler(getMarshalInfo(t))\n\t\t\t}\n\t\t}\n\t}\n\tpanic(fmt.Sprintf(\"unknown or mismatched type: type: %v, wire type: %v\", t, encoding))\n}\n\n// Below are functions to size/marshal a specific type of a field.\n// They are stored in the field's info, and called by function pointers.\n// They have type sizer or marshaler.\n\nfunc sizeFixed32Value(_ pointer, tagsize int) int {\n\treturn 4 + tagsize\n}\nfunc sizeFixed32ValueNoZero(ptr pointer, tagsize int) int {\n\tv := *ptr.toUint32()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn 4 + tagsize\n}\nfunc sizeFixed32Ptr(ptr pointer, tagsize int) int {\n\tp := *ptr.toUint32Ptr()\n\tif p == nil {\n\t\treturn 0\n\t}\n\treturn 4 + tagsize\n}\nfunc sizeFixed32Slice(ptr pointer, tagsize int) int {\n\ts := *ptr.toUint32Slice()\n\treturn (4 + tagsize) * len(s)\n}\nfunc sizeFixed32PackedSlice(ptr pointer, tagsize int) int {\n\ts := *ptr.toUint32Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\treturn 4*len(s) + SizeVarint(uint64(4*len(s))) + tagsize\n}\nfunc sizeFixedS32Value(_ pointer, tagsize int) int {\n\treturn 4 + tagsize\n}\nfunc sizeFixedS32ValueNoZero(ptr pointer, tagsize int) int {\n\tv := *ptr.toInt32()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn 4 + tagsize\n}\nfunc sizeFixedS32Ptr(ptr pointer, tagsize int) int {\n\tp := ptr.getInt32Ptr()\n\tif p == nil {\n\t\treturn 0\n\t}\n\treturn 4 + tagsize\n}\nfunc sizeFixedS32Slice(ptr pointer, tagsize int) int {\n\ts := ptr.getInt32Slice()\n\treturn (4 + tagsize) * len(s)\n}\nfunc sizeFixedS32PackedSlice(ptr pointer, tagsize int) int {\n\ts := ptr.getInt32Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\treturn 4*len(s) + SizeVarint(uint64(4*len(s))) + tagsize\n}\nfunc sizeFloat32Value(_ pointer, tagsize int) int {\n\treturn 4 + tagsize\n}\nfunc sizeFloat32ValueNoZero(ptr pointer, tagsize int) int {\n\tv := math.Float32bits(*ptr.toFloat32())\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn 4 + tagsize\n}\nfunc sizeFloat32Ptr(ptr pointer, tagsize int) int {\n\tp := *ptr.toFloat32Ptr()\n\tif p == nil {\n\t\treturn 0\n\t}\n\treturn 4 + tagsize\n}\nfunc sizeFloat32Slice(ptr pointer, tagsize int) int {\n\ts := *ptr.toFloat32Slice()\n\treturn (4 + tagsize) * len(s)\n}\nfunc sizeFloat32PackedSlice(ptr pointer, tagsize int) int {\n\ts := *ptr.toFloat32Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\treturn 4*len(s) + SizeVarint(uint64(4*len(s))) + tagsize\n}\nfunc sizeFixed64Value(_ pointer, tagsize int) int {\n\treturn 8 + tagsize\n}\nfunc sizeFixed64ValueNoZero(ptr pointer, tagsize int) int {\n\tv := *ptr.toUint64()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn 8 + tagsize\n}\nfunc sizeFixed64Ptr(ptr pointer, tagsize int) int {\n\tp := *ptr.toUint64Ptr()\n\tif p == nil {\n\t\treturn 0\n\t}\n\treturn 8 + tagsize\n}\nfunc sizeFixed64Slice(ptr pointer, tagsize int) int {\n\ts := *ptr.toUint64Slice()\n\treturn (8 + tagsize) * len(s)\n}\nfunc sizeFixed64PackedSlice(ptr pointer, tagsize int) int {\n\ts := *ptr.toUint64Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\treturn 8*len(s) + SizeVarint(uint64(8*len(s))) + tagsize\n}\nfunc sizeFixedS64Value(_ pointer, tagsize int) int {\n\treturn 8 + tagsize\n}\nfunc sizeFixedS64ValueNoZero(ptr pointer, tagsize int) int {\n\tv := *ptr.toInt64()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn 8 + tagsize\n}\nfunc sizeFixedS64Ptr(ptr pointer, tagsize int) int {\n\tp := *ptr.toInt64Ptr()\n\tif p == nil {\n\t\treturn 0\n\t}\n\treturn 8 + tagsize\n}\nfunc sizeFixedS64Slice(ptr pointer, tagsize int) int {\n\ts := *ptr.toInt64Slice()\n\treturn (8 + tagsize) * len(s)\n}\nfunc sizeFixedS64PackedSlice(ptr pointer, tagsize int) int {\n\ts := *ptr.toInt64Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\treturn 8*len(s) + SizeVarint(uint64(8*len(s))) + tagsize\n}\nfunc sizeFloat64Value(_ pointer, tagsize int) int {\n\treturn 8 + tagsize\n}\nfunc sizeFloat64ValueNoZero(ptr pointer, tagsize int) int {\n\tv := math.Float64bits(*ptr.toFloat64())\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn 8 + tagsize\n}\nfunc sizeFloat64Ptr(ptr pointer, tagsize int) int {\n\tp := *ptr.toFloat64Ptr()\n\tif p == nil {\n\t\treturn 0\n\t}\n\treturn 8 + tagsize\n}\nfunc sizeFloat64Slice(ptr pointer, tagsize int) int {\n\ts := *ptr.toFloat64Slice()\n\treturn (8 + tagsize) * len(s)\n}\nfunc sizeFloat64PackedSlice(ptr pointer, tagsize int) int {\n\ts := *ptr.toFloat64Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\treturn 8*len(s) + SizeVarint(uint64(8*len(s))) + tagsize\n}\nfunc sizeVarint32Value(ptr pointer, tagsize int) int {\n\tv := *ptr.toUint32()\n\treturn SizeVarint(uint64(v)) + tagsize\n}\nfunc sizeVarint32ValueNoZero(ptr pointer, tagsize int) int {\n\tv := *ptr.toUint32()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn SizeVarint(uint64(v)) + tagsize\n}\nfunc sizeVarint32Ptr(ptr pointer, tagsize int) int {\n\tp := *ptr.toUint32Ptr()\n\tif p == nil {\n\t\treturn 0\n\t}\n\treturn SizeVarint(uint64(*p)) + tagsize\n}\nfunc sizeVarint32Slice(ptr pointer, tagsize int) int {\n\ts := *ptr.toUint32Slice()\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64(v)) + tagsize\n\t}\n\treturn n\n}\nfunc sizeVarint32PackedSlice(ptr pointer, tagsize int) int {\n\ts := *ptr.toUint32Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64(v))\n\t}\n\treturn n + SizeVarint(uint64(n)) + tagsize\n}\nfunc sizeVarintS32Value(ptr pointer, tagsize int) int {\n\tv := *ptr.toInt32()\n\treturn SizeVarint(uint64(v)) + tagsize\n}\nfunc sizeVarintS32ValueNoZero(ptr pointer, tagsize int) int {\n\tv := *ptr.toInt32()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn SizeVarint(uint64(v)) + tagsize\n}\nfunc sizeVarintS32Ptr(ptr pointer, tagsize int) int {\n\tp := ptr.getInt32Ptr()\n\tif p == nil {\n\t\treturn 0\n\t}\n\treturn SizeVarint(uint64(*p)) + tagsize\n}\nfunc sizeVarintS32Slice(ptr pointer, tagsize int) int {\n\ts := ptr.getInt32Slice()\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64(v)) + tagsize\n\t}\n\treturn n\n}\nfunc sizeVarintS32PackedSlice(ptr pointer, tagsize int) int {\n\ts := ptr.getInt32Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64(v))\n\t}\n\treturn n + SizeVarint(uint64(n)) + tagsize\n}\nfunc sizeVarint64Value(ptr pointer, tagsize int) int {\n\tv := *ptr.toUint64()\n\treturn SizeVarint(v) + tagsize\n}\nfunc sizeVarint64ValueNoZero(ptr pointer, tagsize int) int {\n\tv := *ptr.toUint64()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn SizeVarint(v) + tagsize\n}\nfunc sizeVarint64Ptr(ptr pointer, tagsize int) int {\n\tp := *ptr.toUint64Ptr()\n\tif p == nil {\n\t\treturn 0\n\t}\n\treturn SizeVarint(*p) + tagsize\n}\nfunc sizeVarint64Slice(ptr pointer, tagsize int) int {\n\ts := *ptr.toUint64Slice()\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(v) + tagsize\n\t}\n\treturn n\n}\nfunc sizeVarint64PackedSlice(ptr pointer, tagsize int) int {\n\ts := *ptr.toUint64Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(v)\n\t}\n\treturn n + SizeVarint(uint64(n)) + tagsize\n}\nfunc sizeVarintS64Value(ptr pointer, tagsize int) int {\n\tv := *ptr.toInt64()\n\treturn SizeVarint(uint64(v)) + tagsize\n}\nfunc sizeVarintS64ValueNoZero(ptr pointer, tagsize int) int {\n\tv := *ptr.toInt64()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn SizeVarint(uint64(v)) + tagsize\n}\nfunc sizeVarintS64Ptr(ptr pointer, tagsize int) int {\n\tp := *ptr.toInt64Ptr()\n\tif p == nil {\n\t\treturn 0\n\t}\n\treturn SizeVarint(uint64(*p)) + tagsize\n}\nfunc sizeVarintS64Slice(ptr pointer, tagsize int) int {\n\ts := *ptr.toInt64Slice()\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64(v)) + tagsize\n\t}\n\treturn n\n}\nfunc sizeVarintS64PackedSlice(ptr pointer, tagsize int) int {\n\ts := *ptr.toInt64Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64(v))\n\t}\n\treturn n + SizeVarint(uint64(n)) + tagsize\n}\nfunc sizeZigzag32Value(ptr pointer, tagsize int) int {\n\tv := *ptr.toInt32()\n\treturn SizeVarint(uint64((uint32(v)<<1)^uint32((int32(v)>>31)))) + tagsize\n}\nfunc sizeZigzag32ValueNoZero(ptr pointer, tagsize int) int {\n\tv := *ptr.toInt32()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn SizeVarint(uint64((uint32(v)<<1)^uint32((int32(v)>>31)))) + tagsize\n}\nfunc sizeZigzag32Ptr(ptr pointer, tagsize int) int {\n\tp := ptr.getInt32Ptr()\n\tif p == nil {\n\t\treturn 0\n\t}\n\tv := *p\n\treturn SizeVarint(uint64((uint32(v)<<1)^uint32((int32(v)>>31)))) + tagsize\n}\nfunc sizeZigzag32Slice(ptr pointer, tagsize int) int {\n\ts := ptr.getInt32Slice()\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64((uint32(v)<<1)^uint32((int32(v)>>31)))) + tagsize\n\t}\n\treturn n\n}\nfunc sizeZigzag32PackedSlice(ptr pointer, tagsize int) int {\n\ts := ptr.getInt32Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64((uint32(v) << 1) ^ uint32((int32(v) >> 31))))\n\t}\n\treturn n + SizeVarint(uint64(n)) + tagsize\n}\nfunc sizeZigzag64Value(ptr pointer, tagsize int) int {\n\tv := *ptr.toInt64()\n\treturn SizeVarint(uint64(v<<1)^uint64((int64(v)>>63))) + tagsize\n}\nfunc sizeZigzag64ValueNoZero(ptr pointer, tagsize int) int {\n\tv := *ptr.toInt64()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn SizeVarint(uint64(v<<1)^uint64((int64(v)>>63))) + tagsize\n}\nfunc sizeZigzag64Ptr(ptr pointer, tagsize int) int {\n\tp := *ptr.toInt64Ptr()\n\tif p == nil {\n\t\treturn 0\n\t}\n\tv := *p\n\treturn SizeVarint(uint64(v<<1)^uint64((int64(v)>>63))) + tagsize\n}\nfunc sizeZigzag64Slice(ptr pointer, tagsize int) int {\n\ts := *ptr.toInt64Slice()\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64(v<<1)^uint64((int64(v)>>63))) + tagsize\n\t}\n\treturn n\n}\nfunc sizeZigzag64PackedSlice(ptr pointer, tagsize int) int {\n\ts := *ptr.toInt64Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64(v<<1) ^ uint64((int64(v) >> 63)))\n\t}\n\treturn n + SizeVarint(uint64(n)) + tagsize\n}\nfunc sizeBoolValue(_ pointer, tagsize int) int {\n\treturn 1 + tagsize\n}\nfunc sizeBoolValueNoZero(ptr pointer, tagsize int) int {\n\tv := *ptr.toBool()\n\tif !v {\n\t\treturn 0\n\t}\n\treturn 1 + tagsize\n}\nfunc sizeBoolPtr(ptr pointer, tagsize int) int {\n\tp := *ptr.toBoolPtr()\n\tif p == nil {\n\t\treturn 0\n\t}\n\treturn 1 + tagsize\n}\nfunc sizeBoolSlice(ptr pointer, tagsize int) int {\n\ts := *ptr.toBoolSlice()\n\treturn (1 + tagsize) * len(s)\n}\nfunc sizeBoolPackedSlice(ptr pointer, tagsize int) int {\n\ts := *ptr.toBoolSlice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\treturn len(s) + SizeVarint(uint64(len(s))) + tagsize\n}\nfunc sizeStringValue(ptr pointer, tagsize int) int {\n\tv := *ptr.toString()\n\treturn len(v) + SizeVarint(uint64(len(v))) + tagsize\n}\nfunc sizeStringValueNoZero(ptr pointer, tagsize int) int {\n\tv := *ptr.toString()\n\tif v == \"\" {\n\t\treturn 0\n\t}\n\treturn len(v) + SizeVarint(uint64(len(v))) + tagsize\n}\nfunc sizeStringPtr(ptr pointer, tagsize int) int {\n\tp := *ptr.toStringPtr()\n\tif p == nil {\n\t\treturn 0\n\t}\n\tv := *p\n\treturn len(v) + SizeVarint(uint64(len(v))) + tagsize\n}\nfunc sizeStringSlice(ptr pointer, tagsize int) int {\n\ts := *ptr.toStringSlice()\n\tn := 0\n\tfor _, v := range s {\n\t\tn += len(v) + SizeVarint(uint64(len(v))) + tagsize\n\t}\n\treturn n\n}\nfunc sizeBytes(ptr pointer, tagsize int) int {\n\tv := *ptr.toBytes()\n\tif v == nil {\n\t\treturn 0\n\t}\n\treturn len(v) + SizeVarint(uint64(len(v))) + tagsize\n}\nfunc sizeBytes3(ptr pointer, tagsize int) int {\n\tv := *ptr.toBytes()\n\tif len(v) == 0 {\n\t\treturn 0\n\t}\n\treturn len(v) + SizeVarint(uint64(len(v))) + tagsize\n}\nfunc sizeBytesOneof(ptr pointer, tagsize int) int {\n\tv := *ptr.toBytes()\n\treturn len(v) + SizeVarint(uint64(len(v))) + tagsize\n}\nfunc sizeBytesSlice(ptr pointer, tagsize int) int {\n\ts := *ptr.toBytesSlice()\n\tn := 0\n\tfor _, v := range s {\n\t\tn += len(v) + SizeVarint(uint64(len(v))) + tagsize\n\t}\n\treturn n\n}\n\n// appendFixed32 appends an encoded fixed32 to b.\nfunc appendFixed32(b []byte, v uint32) []byte {\n\tb = append(b,\n\t\tbyte(v),\n\t\tbyte(v>>8),\n\t\tbyte(v>>16),\n\t\tbyte(v>>24))\n\treturn b\n}\n\n// appendFixed64 appends an encoded fixed64 to b.\nfunc appendFixed64(b []byte, v uint64) []byte {\n\tb = append(b,\n\t\tbyte(v),\n\t\tbyte(v>>8),\n\t\tbyte(v>>16),\n\t\tbyte(v>>24),\n\t\tbyte(v>>32),\n\t\tbyte(v>>40),\n\t\tbyte(v>>48),\n\t\tbyte(v>>56))\n\treturn b\n}\n\n// appendVarint appends an encoded varint to b.\nfunc appendVarint(b []byte, v uint64) []byte {\n\t// TODO: make 1-byte (maybe 2-byte) case inline-able, once we\n\t// have non-leaf inliner.\n\tswitch {\n\tcase v < 1<<7:\n\t\tb = append(b, byte(v))\n\tcase v < 1<<14:\n\t\tb = append(b,\n\t\t\tbyte(v&0x7f|0x80),\n\t\t\tbyte(v>>7))\n\tcase v < 1<<21:\n\t\tb = append(b,\n\t\t\tbyte(v&0x7f|0x80),\n\t\t\tbyte((v>>7)&0x7f|0x80),\n\t\t\tbyte(v>>14))\n\tcase v < 1<<28:\n\t\tb = append(b,\n\t\t\tbyte(v&0x7f|0x80),\n\t\t\tbyte((v>>7)&0x7f|0x80),\n\t\t\tbyte((v>>14)&0x7f|0x80),\n\t\t\tbyte(v>>21))\n\tcase v < 1<<35:\n\t\tb = append(b,\n\t\t\tbyte(v&0x7f|0x80),\n\t\t\tbyte((v>>7)&0x7f|0x80),\n\t\t\tbyte((v>>14)&0x7f|0x80),\n\t\t\tbyte((v>>21)&0x7f|0x80),\n\t\t\tbyte(v>>28))\n\tcase v < 1<<42:\n\t\tb = append(b,\n\t\t\tbyte(v&0x7f|0x80),\n\t\t\tbyte((v>>7)&0x7f|0x80),\n\t\t\tbyte((v>>14)&0x7f|0x80),\n\t\t\tbyte((v>>21)&0x7f|0x80),\n\t\t\tbyte((v>>28)&0x7f|0x80),\n\t\t\tbyte(v>>35))\n\tcase v < 1<<49:\n\t\tb = append(b,\n\t\t\tbyte(v&0x7f|0x80),\n\t\t\tbyte((v>>7)&0x7f|0x80),\n\t\t\tbyte((v>>14)&0x7f|0x80),\n\t\t\tbyte((v>>21)&0x7f|0x80),\n\t\t\tbyte((v>>28)&0x7f|0x80),\n\t\t\tbyte((v>>35)&0x7f|0x80),\n\t\t\tbyte(v>>42))\n\tcase v < 1<<56:\n\t\tb = append(b,\n\t\t\tbyte(v&0x7f|0x80),\n\t\t\tbyte((v>>7)&0x7f|0x80),\n\t\t\tbyte((v>>14)&0x7f|0x80),\n\t\t\tbyte((v>>21)&0x7f|0x80),\n\t\t\tbyte((v>>28)&0x7f|0x80),\n\t\t\tbyte((v>>35)&0x7f|0x80),\n\t\t\tbyte((v>>42)&0x7f|0x80),\n\t\t\tbyte(v>>49))\n\tcase v < 1<<63:\n\t\tb = append(b,\n\t\t\tbyte(v&0x7f|0x80),\n\t\t\tbyte((v>>7)&0x7f|0x80),\n\t\t\tbyte((v>>14)&0x7f|0x80),\n\t\t\tbyte((v>>21)&0x7f|0x80),\n\t\t\tbyte((v>>28)&0x7f|0x80),\n\t\t\tbyte((v>>35)&0x7f|0x80),\n\t\t\tbyte((v>>42)&0x7f|0x80),\n\t\t\tbyte((v>>49)&0x7f|0x80),\n\t\t\tbyte(v>>56))\n\tdefault:\n\t\tb = append(b,\n\t\t\tbyte(v&0x7f|0x80),\n\t\t\tbyte((v>>7)&0x7f|0x80),\n\t\t\tbyte((v>>14)&0x7f|0x80),\n\t\t\tbyte((v>>21)&0x7f|0x80),\n\t\t\tbyte((v>>28)&0x7f|0x80),\n\t\t\tbyte((v>>35)&0x7f|0x80),\n\t\t\tbyte((v>>42)&0x7f|0x80),\n\t\t\tbyte((v>>49)&0x7f|0x80),\n\t\t\tbyte((v>>56)&0x7f|0x80),\n\t\t\t1)\n\t}\n\treturn b\n}\n\nfunc appendFixed32Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toUint32()\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed32(b, v)\n\treturn b, nil\n}\nfunc appendFixed32ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toUint32()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed32(b, v)\n\treturn b, nil\n}\nfunc appendFixed32Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tp := *ptr.toUint32Ptr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed32(b, *p)\n\treturn b, nil\n}\nfunc appendFixed32Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toUint32Slice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendFixed32(b, v)\n\t}\n\treturn b, nil\n}\nfunc appendFixed32PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toUint32Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag&^7|WireBytes)\n\tb = appendVarint(b, uint64(4*len(s)))\n\tfor _, v := range s {\n\t\tb = appendFixed32(b, v)\n\t}\n\treturn b, nil\n}\nfunc appendFixedS32Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toInt32()\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed32(b, uint32(v))\n\treturn b, nil\n}\nfunc appendFixedS32ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toInt32()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed32(b, uint32(v))\n\treturn b, nil\n}\nfunc appendFixedS32Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tp := ptr.getInt32Ptr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed32(b, uint32(*p))\n\treturn b, nil\n}\nfunc appendFixedS32Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := ptr.getInt32Slice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendFixed32(b, uint32(v))\n\t}\n\treturn b, nil\n}\nfunc appendFixedS32PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := ptr.getInt32Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag&^7|WireBytes)\n\tb = appendVarint(b, uint64(4*len(s)))\n\tfor _, v := range s {\n\t\tb = appendFixed32(b, uint32(v))\n\t}\n\treturn b, nil\n}\nfunc appendFloat32Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := math.Float32bits(*ptr.toFloat32())\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed32(b, v)\n\treturn b, nil\n}\nfunc appendFloat32ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := math.Float32bits(*ptr.toFloat32())\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed32(b, v)\n\treturn b, nil\n}\nfunc appendFloat32Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tp := *ptr.toFloat32Ptr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed32(b, math.Float32bits(*p))\n\treturn b, nil\n}\nfunc appendFloat32Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toFloat32Slice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendFixed32(b, math.Float32bits(v))\n\t}\n\treturn b, nil\n}\nfunc appendFloat32PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toFloat32Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag&^7|WireBytes)\n\tb = appendVarint(b, uint64(4*len(s)))\n\tfor _, v := range s {\n\t\tb = appendFixed32(b, math.Float32bits(v))\n\t}\n\treturn b, nil\n}\nfunc appendFixed64Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toUint64()\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed64(b, v)\n\treturn b, nil\n}\nfunc appendFixed64ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toUint64()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed64(b, v)\n\treturn b, nil\n}\nfunc appendFixed64Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tp := *ptr.toUint64Ptr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed64(b, *p)\n\treturn b, nil\n}\nfunc appendFixed64Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toUint64Slice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendFixed64(b, v)\n\t}\n\treturn b, nil\n}\nfunc appendFixed64PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toUint64Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag&^7|WireBytes)\n\tb = appendVarint(b, uint64(8*len(s)))\n\tfor _, v := range s {\n\t\tb = appendFixed64(b, v)\n\t}\n\treturn b, nil\n}\nfunc appendFixedS64Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toInt64()\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed64(b, uint64(v))\n\treturn b, nil\n}\nfunc appendFixedS64ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toInt64()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed64(b, uint64(v))\n\treturn b, nil\n}\nfunc appendFixedS64Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tp := *ptr.toInt64Ptr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed64(b, uint64(*p))\n\treturn b, nil\n}\nfunc appendFixedS64Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toInt64Slice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendFixed64(b, uint64(v))\n\t}\n\treturn b, nil\n}\nfunc appendFixedS64PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toInt64Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag&^7|WireBytes)\n\tb = appendVarint(b, uint64(8*len(s)))\n\tfor _, v := range s {\n\t\tb = appendFixed64(b, uint64(v))\n\t}\n\treturn b, nil\n}\nfunc appendFloat64Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := math.Float64bits(*ptr.toFloat64())\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed64(b, v)\n\treturn b, nil\n}\nfunc appendFloat64ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := math.Float64bits(*ptr.toFloat64())\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed64(b, v)\n\treturn b, nil\n}\nfunc appendFloat64Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tp := *ptr.toFloat64Ptr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendFixed64(b, math.Float64bits(*p))\n\treturn b, nil\n}\nfunc appendFloat64Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toFloat64Slice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendFixed64(b, math.Float64bits(v))\n\t}\n\treturn b, nil\n}\nfunc appendFloat64PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toFloat64Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag&^7|WireBytes)\n\tb = appendVarint(b, uint64(8*len(s)))\n\tfor _, v := range s {\n\t\tb = appendFixed64(b, math.Float64bits(v))\n\t}\n\treturn b, nil\n}\nfunc appendVarint32Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toUint32()\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(v))\n\treturn b, nil\n}\nfunc appendVarint32ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toUint32()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(v))\n\treturn b, nil\n}\nfunc appendVarint32Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tp := *ptr.toUint32Ptr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(*p))\n\treturn b, nil\n}\nfunc appendVarint32Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toUint32Slice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendVarint(b, uint64(v))\n\t}\n\treturn b, nil\n}\nfunc appendVarint32PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toUint32Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag&^7|WireBytes)\n\t// compute size\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64(v))\n\t}\n\tb = appendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = appendVarint(b, uint64(v))\n\t}\n\treturn b, nil\n}\nfunc appendVarintS32Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toInt32()\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(v))\n\treturn b, nil\n}\nfunc appendVarintS32ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toInt32()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(v))\n\treturn b, nil\n}\nfunc appendVarintS32Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tp := ptr.getInt32Ptr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(*p))\n\treturn b, nil\n}\nfunc appendVarintS32Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := ptr.getInt32Slice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendVarint(b, uint64(v))\n\t}\n\treturn b, nil\n}\nfunc appendVarintS32PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := ptr.getInt32Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag&^7|WireBytes)\n\t// compute size\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64(v))\n\t}\n\tb = appendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = appendVarint(b, uint64(v))\n\t}\n\treturn b, nil\n}\nfunc appendVarint64Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toUint64()\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, v)\n\treturn b, nil\n}\nfunc appendVarint64ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toUint64()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, v)\n\treturn b, nil\n}\nfunc appendVarint64Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tp := *ptr.toUint64Ptr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, *p)\n\treturn b, nil\n}\nfunc appendVarint64Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toUint64Slice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendVarint(b, v)\n\t}\n\treturn b, nil\n}\nfunc appendVarint64PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toUint64Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag&^7|WireBytes)\n\t// compute size\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(v)\n\t}\n\tb = appendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = appendVarint(b, v)\n\t}\n\treturn b, nil\n}\nfunc appendVarintS64Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toInt64()\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(v))\n\treturn b, nil\n}\nfunc appendVarintS64ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toInt64()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(v))\n\treturn b, nil\n}\nfunc appendVarintS64Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tp := *ptr.toInt64Ptr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(*p))\n\treturn b, nil\n}\nfunc appendVarintS64Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toInt64Slice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendVarint(b, uint64(v))\n\t}\n\treturn b, nil\n}\nfunc appendVarintS64PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toInt64Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag&^7|WireBytes)\n\t// compute size\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64(v))\n\t}\n\tb = appendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = appendVarint(b, uint64(v))\n\t}\n\treturn b, nil\n}\nfunc appendZigzag32Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toInt32()\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64((uint32(v)<<1)^uint32((int32(v)>>31))))\n\treturn b, nil\n}\nfunc appendZigzag32ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toInt32()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64((uint32(v)<<1)^uint32((int32(v)>>31))))\n\treturn b, nil\n}\nfunc appendZigzag32Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tp := ptr.getInt32Ptr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tv := *p\n\tb = appendVarint(b, uint64((uint32(v)<<1)^uint32((int32(v)>>31))))\n\treturn b, nil\n}\nfunc appendZigzag32Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := ptr.getInt32Slice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendVarint(b, uint64((uint32(v)<<1)^uint32((int32(v)>>31))))\n\t}\n\treturn b, nil\n}\nfunc appendZigzag32PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := ptr.getInt32Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag&^7|WireBytes)\n\t// compute size\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64((uint32(v) << 1) ^ uint32((int32(v) >> 31))))\n\t}\n\tb = appendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = appendVarint(b, uint64((uint32(v)<<1)^uint32((int32(v)>>31))))\n\t}\n\treturn b, nil\n}\nfunc appendZigzag64Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toInt64()\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(v<<1)^uint64((int64(v)>>63)))\n\treturn b, nil\n}\nfunc appendZigzag64ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toInt64()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(v<<1)^uint64((int64(v)>>63)))\n\treturn b, nil\n}\nfunc appendZigzag64Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tp := *ptr.toInt64Ptr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tv := *p\n\tb = appendVarint(b, uint64(v<<1)^uint64((int64(v)>>63)))\n\treturn b, nil\n}\nfunc appendZigzag64Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toInt64Slice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendVarint(b, uint64(v<<1)^uint64((int64(v)>>63)))\n\t}\n\treturn b, nil\n}\nfunc appendZigzag64PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toInt64Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag&^7|WireBytes)\n\t// compute size\n\tn := 0\n\tfor _, v := range s {\n\t\tn += SizeVarint(uint64(v<<1) ^ uint64((int64(v) >> 63)))\n\t}\n\tb = appendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = appendVarint(b, uint64(v<<1)^uint64((int64(v)>>63)))\n\t}\n\treturn b, nil\n}\nfunc appendBoolValue(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toBool()\n\tb = appendVarint(b, wiretag)\n\tif v {\n\t\tb = append(b, 1)\n\t} else {\n\t\tb = append(b, 0)\n\t}\n\treturn b, nil\n}\nfunc appendBoolValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toBool()\n\tif !v {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = append(b, 1)\n\treturn b, nil\n}\n\nfunc appendBoolPtr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tp := *ptr.toBoolPtr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tif *p {\n\t\tb = append(b, 1)\n\t} else {\n\t\tb = append(b, 0)\n\t}\n\treturn b, nil\n}\nfunc appendBoolSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toBoolSlice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tif v {\n\t\t\tb = append(b, 1)\n\t\t} else {\n\t\t\tb = append(b, 0)\n\t\t}\n\t}\n\treturn b, nil\n}\nfunc appendBoolPackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toBoolSlice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag&^7|WireBytes)\n\tb = appendVarint(b, uint64(len(s)))\n\tfor _, v := range s {\n\t\tif v {\n\t\t\tb = append(b, 1)\n\t\t} else {\n\t\t\tb = append(b, 0)\n\t\t}\n\t}\n\treturn b, nil\n}\nfunc appendStringValue(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toString()\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(len(v)))\n\tb = append(b, v...)\n\treturn b, nil\n}\nfunc appendStringValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toString()\n\tif v == \"\" {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(len(v)))\n\tb = append(b, v...)\n\treturn b, nil\n}\nfunc appendStringPtr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tp := *ptr.toStringPtr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tv := *p\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(len(v)))\n\tb = append(b, v...)\n\treturn b, nil\n}\nfunc appendStringSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toStringSlice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendVarint(b, uint64(len(v)))\n\t\tb = append(b, v...)\n\t}\n\treturn b, nil\n}\nfunc appendUTF8StringValue(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tvar invalidUTF8 bool\n\tv := *ptr.toString()\n\tif !utf8.ValidString(v) {\n\t\tinvalidUTF8 = true\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(len(v)))\n\tb = append(b, v...)\n\tif invalidUTF8 {\n\t\treturn b, errInvalidUTF8\n\t}\n\treturn b, nil\n}\nfunc appendUTF8StringValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tvar invalidUTF8 bool\n\tv := *ptr.toString()\n\tif v == \"\" {\n\t\treturn b, nil\n\t}\n\tif !utf8.ValidString(v) {\n\t\tinvalidUTF8 = true\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(len(v)))\n\tb = append(b, v...)\n\tif invalidUTF8 {\n\t\treturn b, errInvalidUTF8\n\t}\n\treturn b, nil\n}\nfunc appendUTF8StringPtr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tvar invalidUTF8 bool\n\tp := *ptr.toStringPtr()\n\tif p == nil {\n\t\treturn b, nil\n\t}\n\tv := *p\n\tif !utf8.ValidString(v) {\n\t\tinvalidUTF8 = true\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(len(v)))\n\tb = append(b, v...)\n\tif invalidUTF8 {\n\t\treturn b, errInvalidUTF8\n\t}\n\treturn b, nil\n}\nfunc appendUTF8StringSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tvar invalidUTF8 bool\n\ts := *ptr.toStringSlice()\n\tfor _, v := range s {\n\t\tif !utf8.ValidString(v) {\n\t\t\tinvalidUTF8 = true\n\t\t}\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendVarint(b, uint64(len(v)))\n\t\tb = append(b, v...)\n\t}\n\tif invalidUTF8 {\n\t\treturn b, errInvalidUTF8\n\t}\n\treturn b, nil\n}\nfunc appendBytes(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toBytes()\n\tif v == nil {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(len(v)))\n\tb = append(b, v...)\n\treturn b, nil\n}\nfunc appendBytes3(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toBytes()\n\tif len(v) == 0 {\n\t\treturn b, nil\n\t}\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(len(v)))\n\tb = append(b, v...)\n\treturn b, nil\n}\nfunc appendBytesOneof(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\tv := *ptr.toBytes()\n\tb = appendVarint(b, wiretag)\n\tb = appendVarint(b, uint64(len(v)))\n\tb = append(b, v...)\n\treturn b, nil\n}\nfunc appendBytesSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) {\n\ts := *ptr.toBytesSlice()\n\tfor _, v := range s {\n\t\tb = appendVarint(b, wiretag)\n\t\tb = appendVarint(b, uint64(len(v)))\n\t\tb = append(b, v...)\n\t}\n\treturn b, nil\n}\n\n// makeGroupMarshaler returns the sizer and marshaler for a group.\n// u is the marshal info of the underlying message.\nfunc makeGroupMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tp := ptr.getPointer()\n\t\t\tif p.isNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\treturn u.size(p) + 2*tagsize\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tp := ptr.getPointer()\n\t\t\tif p.isNil() {\n\t\t\t\treturn b, nil\n\t\t\t}\n\t\t\tvar err error\n\t\t\tb = appendVarint(b, wiretag) // start group\n\t\t\tb, err = u.marshal(b, p, deterministic)\n\t\t\tb = appendVarint(b, wiretag+(WireEndGroup-WireStartGroup)) // end group\n\t\t\treturn b, err\n\t\t}\n}\n\n// makeGroupSliceMarshaler returns the sizer and marshaler for a group slice.\n// u is the marshal info of the underlying message.\nfunc makeGroupSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getPointerSlice()\n\t\t\tn := 0\n\t\t\tfor _, v := range s {\n\t\t\t\tif v.isNil() {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tn += u.size(v) + 2*tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getPointerSlice()\n\t\t\tvar err error\n\t\t\tvar nerr nonFatal\n\t\t\tfor _, v := range s {\n\t\t\t\tif v.isNil() {\n\t\t\t\t\treturn b, errRepeatedHasNil\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag) // start group\n\t\t\t\tb, err = u.marshal(b, v, deterministic)\n\t\t\t\tb = appendVarint(b, wiretag+(WireEndGroup-WireStartGroup)) // end group\n\t\t\t\tif !nerr.Merge(err) {\n\t\t\t\t\tif err == ErrNil {\n\t\t\t\t\t\terr = errRepeatedHasNil\n\t\t\t\t\t}\n\t\t\t\t\treturn b, err\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn b, nerr.E\n\t\t}\n}\n\n// makeMessageMarshaler returns the sizer and marshaler for a message field.\n// u is the marshal info of the message.\nfunc makeMessageMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tp := ptr.getPointer()\n\t\t\tif p.isNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tsiz := u.size(p)\n\t\t\treturn siz + SizeVarint(uint64(siz)) + tagsize\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tp := ptr.getPointer()\n\t\t\tif p.isNil() {\n\t\t\t\treturn b, nil\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tsiz := u.cachedsize(p)\n\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\treturn u.marshal(b, p, deterministic)\n\t\t}\n}\n\n// makeMessageSliceMarshaler returns the sizer and marshaler for a message slice.\n// u is the marshal info of the message.\nfunc makeMessageSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getPointerSlice()\n\t\t\tn := 0\n\t\t\tfor _, v := range s {\n\t\t\t\tif v.isNil() {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tsiz := u.size(v)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getPointerSlice()\n\t\t\tvar err error\n\t\t\tvar nerr nonFatal\n\t\t\tfor _, v := range s {\n\t\t\t\tif v.isNil() {\n\t\t\t\t\treturn b, errRepeatedHasNil\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tsiz := u.cachedsize(v)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb, err = u.marshal(b, v, deterministic)\n\n\t\t\t\tif !nerr.Merge(err) {\n\t\t\t\t\tif err == ErrNil {\n\t\t\t\t\t\terr = errRepeatedHasNil\n\t\t\t\t\t}\n\t\t\t\t\treturn b, err\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn b, nerr.E\n\t\t}\n}\n\n// makeMapMarshaler returns the sizer and marshaler for a map field.\n// f is the pointer to the reflect data structure of the field.\nfunc makeMapMarshaler(f *reflect.StructField) (sizer, marshaler) {\n\t// figure out key and value type\n\tt := f.Type\n\tkeyType := t.Key()\n\tvalType := t.Elem()\n\ttags := strings.Split(f.Tag.Get(\"protobuf\"), \",\")\n\tkeyTags := strings.Split(f.Tag.Get(\"protobuf_key\"), \",\")\n\tvalTags := strings.Split(f.Tag.Get(\"protobuf_val\"), \",\")\n\tstdOptions := false\n\tfor _, t := range tags {\n\t\tif strings.HasPrefix(t, \"customtype=\") {\n\t\t\tvalTags = append(valTags, t)\n\t\t}\n\t\tif t == \"stdtime\" {\n\t\t\tvalTags = append(valTags, t)\n\t\t\tstdOptions = true\n\t\t}\n\t\tif t == \"stdduration\" {\n\t\t\tvalTags = append(valTags, t)\n\t\t\tstdOptions = true\n\t\t}\n\t\tif t == \"wktptr\" {\n\t\t\tvalTags = append(valTags, t)\n\t\t}\n\t}\n\tkeySizer, keyMarshaler := typeMarshaler(keyType, keyTags, false, false) // don't omit zero value in map\n\tvalSizer, valMarshaler := typeMarshaler(valType, valTags, false, false) // don't omit zero value in map\n\tkeyWireTag := 1<<3 | wiretype(keyTags[0])\n\tvalWireTag := 2<<3 | wiretype(valTags[0])\n\n\t// We create an interface to get the addresses of the map key and value.\n\t// If value is pointer-typed, the interface is a direct interface, the\n\t// idata itself is the value. Otherwise, the idata is the pointer to the\n\t// value.\n\t// Key cannot be pointer-typed.\n\tvalIsPtr := valType.Kind() == reflect.Ptr\n\n\t// If value is a message with nested maps, calling\n\t// valSizer in marshal may be quadratic. We should use\n\t// cached version in marshal (but not in size).\n\t// If value is not message type, we don't have size cache,\n\t// but it cannot be nested either. Just use valSizer.\n\tvalCachedSizer := valSizer\n\tif valIsPtr && !stdOptions && valType.Elem().Kind() == reflect.Struct {\n\t\tu := getMarshalInfo(valType.Elem())\n\t\tvalCachedSizer = func(ptr pointer, tagsize int) int {\n\t\t\t// Same as message sizer, but use cache.\n\t\t\tp := ptr.getPointer()\n\t\t\tif p.isNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tsiz := u.cachedsize(p)\n\t\t\treturn siz + SizeVarint(uint64(siz)) + tagsize\n\t\t}\n\t}\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tm := ptr.asPointerTo(t).Elem() // the map\n\t\t\tn := 0\n\t\t\tfor _, k := range m.MapKeys() {\n\t\t\t\tki := k.Interface()\n\t\t\t\tvi := m.MapIndex(k).Interface()\n\t\t\t\tkaddr := toAddrPointer(&ki, false)             // pointer to key\n\t\t\t\tvaddr := toAddrPointer(&vi, valIsPtr)          // pointer to value\n\t\t\t\tsiz := keySizer(kaddr, 1) + valSizer(vaddr, 1) // tag of key = 1 (size=1), tag of val = 2 (size=1)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, tag uint64, deterministic bool) ([]byte, error) {\n\t\t\tm := ptr.asPointerTo(t).Elem() // the map\n\t\t\tvar err error\n\t\t\tkeys := m.MapKeys()\n\t\t\tif len(keys) > 1 && deterministic {\n\t\t\t\tsort.Sort(mapKeys(keys))\n\t\t\t}\n\n\t\t\tvar nerr nonFatal\n\t\t\tfor _, k := range keys {\n\t\t\t\tki := k.Interface()\n\t\t\t\tvi := m.MapIndex(k).Interface()\n\t\t\t\tkaddr := toAddrPointer(&ki, false)    // pointer to key\n\t\t\t\tvaddr := toAddrPointer(&vi, valIsPtr) // pointer to value\n\t\t\t\tb = appendVarint(b, tag)\n\t\t\t\tsiz := keySizer(kaddr, 1) + valCachedSizer(vaddr, 1) // tag of key = 1 (size=1), tag of val = 2 (size=1)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb, err = keyMarshaler(b, kaddr, keyWireTag, deterministic)\n\t\t\t\tif !nerr.Merge(err) {\n\t\t\t\t\treturn b, err\n\t\t\t\t}\n\t\t\t\tb, err = valMarshaler(b, vaddr, valWireTag, deterministic)\n\t\t\t\tif err != ErrNil && !nerr.Merge(err) { // allow nil value in map\n\t\t\t\t\treturn b, err\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn b, nerr.E\n\t\t}\n}\n\n// makeOneOfMarshaler returns the sizer and marshaler for a oneof field.\n// fi is the marshal info of the field.\n// f is the pointer to the reflect data structure of the field.\nfunc makeOneOfMarshaler(fi *marshalFieldInfo, f *reflect.StructField) (sizer, marshaler) {\n\t// Oneof field is an interface. We need to get the actual data type on the fly.\n\tt := f.Type\n\treturn func(ptr pointer, _ int) int {\n\t\t\tp := ptr.getInterfacePointer()\n\t\t\tif p.isNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tv := ptr.asPointerTo(t).Elem().Elem().Elem() // *interface -> interface -> *struct -> struct\n\t\t\ttelem := v.Type()\n\t\t\te := fi.oneofElems[telem]\n\t\t\treturn e.sizer(p, e.tagsize)\n\t\t},\n\t\tfunc(b []byte, ptr pointer, _ uint64, deterministic bool) ([]byte, error) {\n\t\t\tp := ptr.getInterfacePointer()\n\t\t\tif p.isNil() {\n\t\t\t\treturn b, nil\n\t\t\t}\n\t\t\tv := ptr.asPointerTo(t).Elem().Elem().Elem() // *interface -> interface -> *struct -> struct\n\t\t\ttelem := v.Type()\n\t\t\tif telem.Field(0).Type.Kind() == reflect.Ptr && p.getPointer().isNil() {\n\t\t\t\treturn b, errOneofHasNil\n\t\t\t}\n\t\t\te := fi.oneofElems[telem]\n\t\t\treturn e.marshaler(b, p, e.wiretag, deterministic)\n\t\t}\n}\n\n// sizeExtensions computes the size of encoded data for a XXX_InternalExtensions field.\nfunc (u *marshalInfo) sizeExtensions(ext *XXX_InternalExtensions) int {\n\tm, mu := ext.extensionsRead()\n\tif m == nil {\n\t\treturn 0\n\t}\n\tmu.Lock()\n\n\tn := 0\n\tfor _, e := range m {\n\t\tif e.value == nil || e.desc == nil {\n\t\t\t// Extension is only in its encoded form.\n\t\t\tn += len(e.enc)\n\t\t\tcontinue\n\t\t}\n\n\t\t// We don't skip extensions that have an encoded form set,\n\t\t// because the extension value may have been mutated after\n\t\t// the last time this function was called.\n\t\tei := u.getExtElemInfo(e.desc)\n\t\tv := e.value\n\t\tp := toAddrPointer(&v, ei.isptr)\n\t\tn += ei.sizer(p, ei.tagsize)\n\t}\n\tmu.Unlock()\n\treturn n\n}\n\n// appendExtensions marshals a XXX_InternalExtensions field to the end of byte slice b.\nfunc (u *marshalInfo) appendExtensions(b []byte, ext *XXX_InternalExtensions, deterministic bool) ([]byte, error) {\n\tm, mu := ext.extensionsRead()\n\tif m == nil {\n\t\treturn b, nil\n\t}\n\tmu.Lock()\n\tdefer mu.Unlock()\n\n\tvar err error\n\tvar nerr nonFatal\n\n\t// Fast-path for common cases: zero or one extensions.\n\t// Don't bother sorting the keys.\n\tif len(m) <= 1 {\n\t\tfor _, e := range m {\n\t\t\tif e.value == nil || e.desc == nil {\n\t\t\t\t// Extension is only in its encoded form.\n\t\t\t\tb = append(b, e.enc...)\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// We don't skip extensions that have an encoded form set,\n\t\t\t// because the extension value may have been mutated after\n\t\t\t// the last time this function was called.\n\n\t\t\tei := u.getExtElemInfo(e.desc)\n\t\t\tv := e.value\n\t\t\tp := toAddrPointer(&v, ei.isptr)\n\t\t\tb, err = ei.marshaler(b, p, ei.wiretag, deterministic)\n\t\t\tif !nerr.Merge(err) {\n\t\t\t\treturn b, err\n\t\t\t}\n\t\t}\n\t\treturn b, nerr.E\n\t}\n\n\t// Sort the keys to provide a deterministic encoding.\n\t// Not sure this is required, but the old code does it.\n\tkeys := make([]int, 0, len(m))\n\tfor k := range m {\n\t\tkeys = append(keys, int(k))\n\t}\n\tsort.Ints(keys)\n\n\tfor _, k := range keys {\n\t\te := m[int32(k)]\n\t\tif e.value == nil || e.desc == nil {\n\t\t\t// Extension is only in its encoded form.\n\t\t\tb = append(b, e.enc...)\n\t\t\tcontinue\n\t\t}\n\n\t\t// We don't skip extensions that have an encoded form set,\n\t\t// because the extension value may have been mutated after\n\t\t// the last time this function was called.\n\n\t\tei := u.getExtElemInfo(e.desc)\n\t\tv := e.value\n\t\tp := toAddrPointer(&v, ei.isptr)\n\t\tb, err = ei.marshaler(b, p, ei.wiretag, deterministic)\n\t\tif !nerr.Merge(err) {\n\t\t\treturn b, err\n\t\t}\n\t}\n\treturn b, nerr.E\n}\n\n// message set format is:\n//   message MessageSet {\n//     repeated group Item = 1 {\n//       required int32 type_id = 2;\n//       required string message = 3;\n//     };\n//   }\n\n// sizeMessageSet computes the size of encoded data for a XXX_InternalExtensions field\n// in message set format (above).\nfunc (u *marshalInfo) sizeMessageSet(ext *XXX_InternalExtensions) int {\n\tm, mu := ext.extensionsRead()\n\tif m == nil {\n\t\treturn 0\n\t}\n\tmu.Lock()\n\n\tn := 0\n\tfor id, e := range m {\n\t\tn += 2                          // start group, end group. tag = 1 (size=1)\n\t\tn += SizeVarint(uint64(id)) + 1 // type_id, tag = 2 (size=1)\n\n\t\tif e.value == nil || e.desc == nil {\n\t\t\t// Extension is only in its encoded form.\n\t\t\tmsgWithLen := skipVarint(e.enc) // skip old tag, but leave the length varint\n\t\t\tsiz := len(msgWithLen)\n\t\t\tn += siz + 1 // message, tag = 3 (size=1)\n\t\t\tcontinue\n\t\t}\n\n\t\t// We don't skip extensions that have an encoded form set,\n\t\t// because the extension value may have been mutated after\n\t\t// the last time this function was called.\n\n\t\tei := u.getExtElemInfo(e.desc)\n\t\tv := e.value\n\t\tp := toAddrPointer(&v, ei.isptr)\n\t\tn += ei.sizer(p, 1) // message, tag = 3 (size=1)\n\t}\n\tmu.Unlock()\n\treturn n\n}\n\n// appendMessageSet marshals a XXX_InternalExtensions field in message set format (above)\n// to the end of byte slice b.\nfunc (u *marshalInfo) appendMessageSet(b []byte, ext *XXX_InternalExtensions, deterministic bool) ([]byte, error) {\n\tm, mu := ext.extensionsRead()\n\tif m == nil {\n\t\treturn b, nil\n\t}\n\tmu.Lock()\n\tdefer mu.Unlock()\n\n\tvar err error\n\tvar nerr nonFatal\n\n\t// Fast-path for common cases: zero or one extensions.\n\t// Don't bother sorting the keys.\n\tif len(m) <= 1 {\n\t\tfor id, e := range m {\n\t\t\tb = append(b, 1<<3|WireStartGroup)\n\t\t\tb = append(b, 2<<3|WireVarint)\n\t\t\tb = appendVarint(b, uint64(id))\n\n\t\t\tif e.value == nil || e.desc == nil {\n\t\t\t\t// Extension is only in its encoded form.\n\t\t\t\tmsgWithLen := skipVarint(e.enc) // skip old tag, but leave the length varint\n\t\t\t\tb = append(b, 3<<3|WireBytes)\n\t\t\t\tb = append(b, msgWithLen...)\n\t\t\t\tb = append(b, 1<<3|WireEndGroup)\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// We don't skip extensions that have an encoded form set,\n\t\t\t// because the extension value may have been mutated after\n\t\t\t// the last time this function was called.\n\n\t\t\tei := u.getExtElemInfo(e.desc)\n\t\t\tv := e.value\n\t\t\tp := toAddrPointer(&v, ei.isptr)\n\t\t\tb, err = ei.marshaler(b, p, 3<<3|WireBytes, deterministic)\n\t\t\tif !nerr.Merge(err) {\n\t\t\t\treturn b, err\n\t\t\t}\n\t\t\tb = append(b, 1<<3|WireEndGroup)\n\t\t}\n\t\treturn b, nerr.E\n\t}\n\n\t// Sort the keys to provide a deterministic encoding.\n\tkeys := make([]int, 0, len(m))\n\tfor k := range m {\n\t\tkeys = append(keys, int(k))\n\t}\n\tsort.Ints(keys)\n\n\tfor _, id := range keys {\n\t\te := m[int32(id)]\n\t\tb = append(b, 1<<3|WireStartGroup)\n\t\tb = append(b, 2<<3|WireVarint)\n\t\tb = appendVarint(b, uint64(id))\n\n\t\tif e.value == nil || e.desc == nil {\n\t\t\t// Extension is only in its encoded form.\n\t\t\tmsgWithLen := skipVarint(e.enc) // skip old tag, but leave the length varint\n\t\t\tb = append(b, 3<<3|WireBytes)\n\t\t\tb = append(b, msgWithLen...)\n\t\t\tb = append(b, 1<<3|WireEndGroup)\n\t\t\tcontinue\n\t\t}\n\n\t\t// We don't skip extensions that have an encoded form set,\n\t\t// because the extension value may have been mutated after\n\t\t// the last time this function was called.\n\n\t\tei := u.getExtElemInfo(e.desc)\n\t\tv := e.value\n\t\tp := toAddrPointer(&v, ei.isptr)\n\t\tb, err = ei.marshaler(b, p, 3<<3|WireBytes, deterministic)\n\t\tb = append(b, 1<<3|WireEndGroup)\n\t\tif !nerr.Merge(err) {\n\t\t\treturn b, err\n\t\t}\n\t}\n\treturn b, nerr.E\n}\n\n// sizeV1Extensions computes the size of encoded data for a V1-API extension field.\nfunc (u *marshalInfo) sizeV1Extensions(m map[int32]Extension) int {\n\tif m == nil {\n\t\treturn 0\n\t}\n\n\tn := 0\n\tfor _, e := range m {\n\t\tif e.value == nil || e.desc == nil {\n\t\t\t// Extension is only in its encoded form.\n\t\t\tn += len(e.enc)\n\t\t\tcontinue\n\t\t}\n\n\t\t// We don't skip extensions that have an encoded form set,\n\t\t// because the extension value may have been mutated after\n\t\t// the last time this function was called.\n\n\t\tei := u.getExtElemInfo(e.desc)\n\t\tv := e.value\n\t\tp := toAddrPointer(&v, ei.isptr)\n\t\tn += ei.sizer(p, ei.tagsize)\n\t}\n\treturn n\n}\n\n// appendV1Extensions marshals a V1-API extension field to the end of byte slice b.\nfunc (u *marshalInfo) appendV1Extensions(b []byte, m map[int32]Extension, deterministic bool) ([]byte, error) {\n\tif m == nil {\n\t\treturn b, nil\n\t}\n\n\t// Sort the keys to provide a deterministic encoding.\n\tkeys := make([]int, 0, len(m))\n\tfor k := range m {\n\t\tkeys = append(keys, int(k))\n\t}\n\tsort.Ints(keys)\n\n\tvar err error\n\tvar nerr nonFatal\n\tfor _, k := range keys {\n\t\te := m[int32(k)]\n\t\tif e.value == nil || e.desc == nil {\n\t\t\t// Extension is only in its encoded form.\n\t\t\tb = append(b, e.enc...)\n\t\t\tcontinue\n\t\t}\n\n\t\t// We don't skip extensions that have an encoded form set,\n\t\t// because the extension value may have been mutated after\n\t\t// the last time this function was called.\n\n\t\tei := u.getExtElemInfo(e.desc)\n\t\tv := e.value\n\t\tp := toAddrPointer(&v, ei.isptr)\n\t\tb, err = ei.marshaler(b, p, ei.wiretag, deterministic)\n\t\tif !nerr.Merge(err) {\n\t\t\treturn b, err\n\t\t}\n\t}\n\treturn b, nerr.E\n}\n\n// newMarshaler is the interface representing objects that can marshal themselves.\n//\n// This exists to support protoc-gen-go generated messages.\n// The proto package will stop type-asserting to this interface in the future.\n//\n// DO NOT DEPEND ON THIS.\ntype newMarshaler interface {\n\tXXX_Size() int\n\tXXX_Marshal(b []byte, deterministic bool) ([]byte, error)\n}\n\n// Size returns the encoded size of a protocol buffer message.\n// This is the main entry point.\nfunc Size(pb Message) int {\n\tif m, ok := pb.(newMarshaler); ok {\n\t\treturn m.XXX_Size()\n\t}\n\tif m, ok := pb.(Marshaler); ok {\n\t\t// If the message can marshal itself, let it do it, for compatibility.\n\t\t// NOTE: This is not efficient.\n\t\tb, _ := m.Marshal()\n\t\treturn len(b)\n\t}\n\t// in case somehow we didn't generate the wrapper\n\tif pb == nil {\n\t\treturn 0\n\t}\n\tvar info InternalMessageInfo\n\treturn info.Size(pb)\n}\n\n// Marshal takes a protocol buffer message\n// and encodes it into the wire format, returning the data.\n// This is the main entry point.\nfunc Marshal(pb Message) ([]byte, error) {\n\tif m, ok := pb.(newMarshaler); ok {\n\t\tsiz := m.XXX_Size()\n\t\tb := make([]byte, 0, siz)\n\t\treturn m.XXX_Marshal(b, false)\n\t}\n\tif m, ok := pb.(Marshaler); ok {\n\t\t// If the message can marshal itself, let it do it, for compatibility.\n\t\t// NOTE: This is not efficient.\n\t\treturn m.Marshal()\n\t}\n\t// in case somehow we didn't generate the wrapper\n\tif pb == nil {\n\t\treturn nil, ErrNil\n\t}\n\tvar info InternalMessageInfo\n\tsiz := info.Size(pb)\n\tb := make([]byte, 0, siz)\n\treturn info.Marshal(b, pb, false)\n}\n\n// Marshal takes a protocol buffer message\n// and encodes it into the wire format, writing the result to the\n// Buffer.\n// This is an alternative entry point. It is not necessary to use\n// a Buffer for most applications.\nfunc (p *Buffer) Marshal(pb Message) error {\n\tvar err error\n\tif p.deterministic {\n\t\tif _, ok := pb.(Marshaler); ok {\n\t\t\treturn fmt.Errorf(\"proto: deterministic not supported by the Marshal method of %T\", pb)\n\t\t}\n\t}\n\tif m, ok := pb.(newMarshaler); ok {\n\t\tsiz := m.XXX_Size()\n\t\tp.grow(siz) // make sure buf has enough capacity\n\t\tpp := p.buf[len(p.buf) : len(p.buf) : len(p.buf)+siz]\n\t\tpp, err = m.XXX_Marshal(pp, p.deterministic)\n\t\tp.buf = append(p.buf, pp...)\n\t\treturn err\n\t}\n\tif m, ok := pb.(Marshaler); ok {\n\t\t// If the message can marshal itself, let it do it, for compatibility.\n\t\t// NOTE: This is not efficient.\n\t\tvar b []byte\n\t\tb, err = m.Marshal()\n\t\tp.buf = append(p.buf, b...)\n\t\treturn err\n\t}\n\t// in case somehow we didn't generate the wrapper\n\tif pb == nil {\n\t\treturn ErrNil\n\t}\n\tvar info InternalMessageInfo\n\tsiz := info.Size(pb)\n\tp.grow(siz) // make sure buf has enough capacity\n\tp.buf, err = info.Marshal(p.buf, pb, p.deterministic)\n\treturn err\n}\n\n// grow grows the buffer's capacity, if necessary, to guarantee space for\n// another n bytes. After grow(n), at least n bytes can be written to the\n// buffer without another allocation.\nfunc (p *Buffer) grow(n int) {\n\tneed := len(p.buf) + n\n\tif need <= cap(p.buf) {\n\t\treturn\n\t}\n\tnewCap := len(p.buf) * 2\n\tif newCap < need {\n\t\tnewCap = need\n\t}\n\tp.buf = append(make([]byte, 0, newCap), p.buf...)\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/table_marshal_gogo.go",
    "content": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2018, The GoGo Authors. All rights reserved.\n// http://github.com/gogo/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\nimport (\n\t\"reflect\"\n\t\"time\"\n)\n\n// makeMessageRefMarshaler differs a bit from makeMessageMarshaler\n// It marshal a message T instead of a *T\nfunc makeMessageRefMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tsiz := u.size(ptr)\n\t\t\treturn siz + SizeVarint(uint64(siz)) + tagsize\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tsiz := u.cachedsize(ptr)\n\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\treturn u.marshal(b, ptr, deterministic)\n\t\t}\n}\n\n// makeMessageRefSliceMarshaler differs quite a lot from makeMessageSliceMarshaler\n// It marshals a slice of messages []T instead of []*T\nfunc makeMessageRefSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\te := elem.Interface()\n\t\t\t\tv := toAddrPointer(&e, false)\n\t\t\t\tsiz := u.size(v)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tvar err, errreq error\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\te := elem.Interface()\n\t\t\t\tv := toAddrPointer(&e, false)\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tsiz := u.size(v)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb, err = u.marshal(b, v, deterministic)\n\n\t\t\t\tif err != nil {\n\t\t\t\t\tif _, ok := err.(*RequiredNotSetError); ok {\n\t\t\t\t\t\t// Required field in submessage is not set.\n\t\t\t\t\t\t// We record the error but keep going, to give a complete marshaling.\n\t\t\t\t\t\tif errreq == nil {\n\t\t\t\t\t\t\terrreq = err\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\tif err == ErrNil {\n\t\t\t\t\t\terr = errRepeatedHasNil\n\t\t\t\t\t}\n\t\t\t\t\treturn b, err\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn b, errreq\n\t\t}\n}\n\nfunc makeCustomPtrMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tm := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(custom)\n\t\t\tsiz := m.Size()\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn b, nil\n\t\t\t}\n\t\t\tm := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(custom)\n\t\t\tsiz := m.Size()\n\t\t\tbuf, err := m.Marshal()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeCustomMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tm := ptr.asPointerTo(u.typ).Interface().(custom)\n\t\t\tsiz := m.Size()\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tm := ptr.asPointerTo(u.typ).Interface().(custom)\n\t\t\tsiz := m.Size()\n\t\t\tbuf, err := m.Marshal()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeTimeMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tt := ptr.asPointerTo(u.typ).Interface().(*time.Time)\n\t\t\tts, err := timestampProto(*t)\n\t\t\tif err != nil {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tsiz := Size(ts)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tt := ptr.asPointerTo(u.typ).Interface().(*time.Time)\n\t\t\tts, err := timestampProto(*t)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tbuf, err := Marshal(ts)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeTimePtrMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tt := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*time.Time)\n\t\t\tts, err := timestampProto(*t)\n\t\t\tif err != nil {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tsiz := Size(ts)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn b, nil\n\t\t\t}\n\t\t\tt := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*time.Time)\n\t\t\tts, err := timestampProto(*t)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tbuf, err := Marshal(ts)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeTimeSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(time.Time)\n\t\t\t\tts, err := timestampProto(t)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0\n\t\t\t\t}\n\t\t\t\tsiz := Size(ts)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(time.Time)\n\t\t\t\tts, err := timestampProto(t)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tsiz := Size(ts)\n\t\t\t\tbuf, err := Marshal(ts)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeTimePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(*time.Time)\n\t\t\t\tts, err := timestampProto(*t)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0\n\t\t\t\t}\n\t\t\t\tsiz := Size(ts)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(*time.Time)\n\t\t\t\tts, err := timestampProto(*t)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tsiz := Size(ts)\n\t\t\t\tbuf, err := Marshal(ts)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeDurationMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\td := ptr.asPointerTo(u.typ).Interface().(*time.Duration)\n\t\t\tdur := durationProto(*d)\n\t\t\tsiz := Size(dur)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\td := ptr.asPointerTo(u.typ).Interface().(*time.Duration)\n\t\t\tdur := durationProto(*d)\n\t\t\tbuf, err := Marshal(dur)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeDurationPtrMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\td := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*time.Duration)\n\t\t\tdur := durationProto(*d)\n\t\t\tsiz := Size(dur)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn b, nil\n\t\t\t}\n\t\t\td := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*time.Duration)\n\t\t\tdur := durationProto(*d)\n\t\t\tbuf, err := Marshal(dur)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeDurationSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\td := elem.Interface().(time.Duration)\n\t\t\t\tdur := durationProto(d)\n\t\t\t\tsiz := Size(dur)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\td := elem.Interface().(time.Duration)\n\t\t\t\tdur := durationProto(d)\n\t\t\t\tsiz := Size(dur)\n\t\t\t\tbuf, err := Marshal(dur)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeDurationPtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\td := elem.Interface().(*time.Duration)\n\t\t\t\tdur := durationProto(*d)\n\t\t\t\tsiz := Size(dur)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\td := elem.Interface().(*time.Duration)\n\t\t\t\tdur := durationProto(*d)\n\t\t\t\tsiz := Size(dur)\n\t\t\t\tbuf, err := Marshal(dur)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/table_merge.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2016 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n)\n\n// Merge merges the src message into dst.\n// This assumes that dst and src of the same type and are non-nil.\nfunc (a *InternalMessageInfo) Merge(dst, src Message) {\n\tmi := atomicLoadMergeInfo(&a.merge)\n\tif mi == nil {\n\t\tmi = getMergeInfo(reflect.TypeOf(dst).Elem())\n\t\tatomicStoreMergeInfo(&a.merge, mi)\n\t}\n\tmi.merge(toPointer(&dst), toPointer(&src))\n}\n\ntype mergeInfo struct {\n\ttyp reflect.Type\n\n\tinitialized int32 // 0: only typ is valid, 1: everything is valid\n\tlock        sync.Mutex\n\n\tfields       []mergeFieldInfo\n\tunrecognized field // Offset of XXX_unrecognized\n}\n\ntype mergeFieldInfo struct {\n\tfield field // Offset of field, guaranteed to be valid\n\n\t// isPointer reports whether the value in the field is a pointer.\n\t// This is true for the following situations:\n\t//\t* Pointer to struct\n\t//\t* Pointer to basic type (proto2 only)\n\t//\t* Slice (first value in slice header is a pointer)\n\t//\t* String (first value in string header is a pointer)\n\tisPointer bool\n\n\t// basicWidth reports the width of the field assuming that it is directly\n\t// embedded in the struct (as is the case for basic types in proto3).\n\t// The possible values are:\n\t// \t0: invalid\n\t//\t1: bool\n\t//\t4: int32, uint32, float32\n\t//\t8: int64, uint64, float64\n\tbasicWidth int\n\n\t// Where dst and src are pointers to the types being merged.\n\tmerge func(dst, src pointer)\n}\n\nvar (\n\tmergeInfoMap  = map[reflect.Type]*mergeInfo{}\n\tmergeInfoLock sync.Mutex\n)\n\nfunc getMergeInfo(t reflect.Type) *mergeInfo {\n\tmergeInfoLock.Lock()\n\tdefer mergeInfoLock.Unlock()\n\tmi := mergeInfoMap[t]\n\tif mi == nil {\n\t\tmi = &mergeInfo{typ: t}\n\t\tmergeInfoMap[t] = mi\n\t}\n\treturn mi\n}\n\n// merge merges src into dst assuming they are both of type *mi.typ.\nfunc (mi *mergeInfo) merge(dst, src pointer) {\n\tif dst.isNil() {\n\t\tpanic(\"proto: nil destination\")\n\t}\n\tif src.isNil() {\n\t\treturn // Nothing to do.\n\t}\n\n\tif atomic.LoadInt32(&mi.initialized) == 0 {\n\t\tmi.computeMergeInfo()\n\t}\n\n\tfor _, fi := range mi.fields {\n\t\tsfp := src.offset(fi.field)\n\n\t\t// As an optimization, we can avoid the merge function call cost\n\t\t// if we know for sure that the source will have no effect\n\t\t// by checking if it is the zero value.\n\t\tif unsafeAllowed {\n\t\t\tif fi.isPointer && sfp.getPointer().isNil() { // Could be slice or string\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif fi.basicWidth > 0 {\n\t\t\t\tswitch {\n\t\t\t\tcase fi.basicWidth == 1 && !*sfp.toBool():\n\t\t\t\t\tcontinue\n\t\t\t\tcase fi.basicWidth == 4 && *sfp.toUint32() == 0:\n\t\t\t\t\tcontinue\n\t\t\t\tcase fi.basicWidth == 8 && *sfp.toUint64() == 0:\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdfp := dst.offset(fi.field)\n\t\tfi.merge(dfp, sfp)\n\t}\n\n\t// TODO: Make this faster?\n\tout := dst.asPointerTo(mi.typ).Elem()\n\tin := src.asPointerTo(mi.typ).Elem()\n\tif emIn, err := extendable(in.Addr().Interface()); err == nil {\n\t\temOut, _ := extendable(out.Addr().Interface())\n\t\tmIn, muIn := emIn.extensionsRead()\n\t\tif mIn != nil {\n\t\t\tmOut := emOut.extensionsWrite()\n\t\t\tmuIn.Lock()\n\t\t\tmergeExtension(mOut, mIn)\n\t\t\tmuIn.Unlock()\n\t\t}\n\t}\n\n\tif mi.unrecognized.IsValid() {\n\t\tif b := *src.offset(mi.unrecognized).toBytes(); len(b) > 0 {\n\t\t\t*dst.offset(mi.unrecognized).toBytes() = append([]byte(nil), b...)\n\t\t}\n\t}\n}\n\nfunc (mi *mergeInfo) computeMergeInfo() {\n\tmi.lock.Lock()\n\tdefer mi.lock.Unlock()\n\tif mi.initialized != 0 {\n\t\treturn\n\t}\n\tt := mi.typ\n\tn := t.NumField()\n\n\tprops := GetProperties(t)\n\tfor i := 0; i < n; i++ {\n\t\tf := t.Field(i)\n\t\tif strings.HasPrefix(f.Name, \"XXX_\") {\n\t\t\tcontinue\n\t\t}\n\n\t\tmfi := mergeFieldInfo{field: toField(&f)}\n\t\ttf := f.Type\n\n\t\t// As an optimization, we can avoid the merge function call cost\n\t\t// if we know for sure that the source will have no effect\n\t\t// by checking if it is the zero value.\n\t\tif unsafeAllowed {\n\t\t\tswitch tf.Kind() {\n\t\t\tcase reflect.Ptr, reflect.Slice, reflect.String:\n\t\t\t\t// As a special case, we assume slices and strings are pointers\n\t\t\t\t// since we know that the first field in the SliceSlice or\n\t\t\t\t// StringHeader is a data pointer.\n\t\t\t\tmfi.isPointer = true\n\t\t\tcase reflect.Bool:\n\t\t\t\tmfi.basicWidth = 1\n\t\t\tcase reflect.Int32, reflect.Uint32, reflect.Float32:\n\t\t\t\tmfi.basicWidth = 4\n\t\t\tcase reflect.Int64, reflect.Uint64, reflect.Float64:\n\t\t\t\tmfi.basicWidth = 8\n\t\t\t}\n\t\t}\n\n\t\t// Unwrap tf to get at its most basic type.\n\t\tvar isPointer, isSlice bool\n\t\tif tf.Kind() == reflect.Slice && tf.Elem().Kind() != reflect.Uint8 {\n\t\t\tisSlice = true\n\t\t\ttf = tf.Elem()\n\t\t}\n\t\tif tf.Kind() == reflect.Ptr {\n\t\t\tisPointer = true\n\t\t\ttf = tf.Elem()\n\t\t}\n\t\tif isPointer && isSlice && tf.Kind() != reflect.Struct {\n\t\t\tpanic(\"both pointer and slice for basic type in \" + tf.Name())\n\t\t}\n\n\t\tswitch tf.Kind() {\n\t\tcase reflect.Int32:\n\t\t\tswitch {\n\t\t\tcase isSlice: // E.g., []int32\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\t// NOTE: toInt32Slice is not defined (see pointer_reflect.go).\n\t\t\t\t\t/*\n\t\t\t\t\t\tsfsp := src.toInt32Slice()\n\t\t\t\t\t\tif *sfsp != nil {\n\t\t\t\t\t\t\tdfsp := dst.toInt32Slice()\n\t\t\t\t\t\t\t*dfsp = append(*dfsp, *sfsp...)\n\t\t\t\t\t\t\tif *dfsp == nil {\n\t\t\t\t\t\t\t\t*dfsp = []int64{}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t*/\n\t\t\t\t\tsfs := src.getInt32Slice()\n\t\t\t\t\tif sfs != nil {\n\t\t\t\t\t\tdfs := dst.getInt32Slice()\n\t\t\t\t\t\tdfs = append(dfs, sfs...)\n\t\t\t\t\t\tif dfs == nil {\n\t\t\t\t\t\t\tdfs = []int32{}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdst.setInt32Slice(dfs)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tcase isPointer: // E.g., *int32\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\t// NOTE: toInt32Ptr is not defined (see pointer_reflect.go).\n\t\t\t\t\t/*\n\t\t\t\t\t\tsfpp := src.toInt32Ptr()\n\t\t\t\t\t\tif *sfpp != nil {\n\t\t\t\t\t\t\tdfpp := dst.toInt32Ptr()\n\t\t\t\t\t\t\tif *dfpp == nil {\n\t\t\t\t\t\t\t\t*dfpp = Int32(**sfpp)\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t**dfpp = **sfpp\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t*/\n\t\t\t\t\tsfp := src.getInt32Ptr()\n\t\t\t\t\tif sfp != nil {\n\t\t\t\t\t\tdfp := dst.getInt32Ptr()\n\t\t\t\t\t\tif dfp == nil {\n\t\t\t\t\t\t\tdst.setInt32Ptr(*sfp)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t*dfp = *sfp\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault: // E.g., int32\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tif v := *src.toInt32(); v != 0 {\n\t\t\t\t\t\t*dst.toInt32() = v\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase reflect.Int64:\n\t\t\tswitch {\n\t\t\tcase isSlice: // E.g., []int64\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsfsp := src.toInt64Slice()\n\t\t\t\t\tif *sfsp != nil {\n\t\t\t\t\t\tdfsp := dst.toInt64Slice()\n\t\t\t\t\t\t*dfsp = append(*dfsp, *sfsp...)\n\t\t\t\t\t\tif *dfsp == nil {\n\t\t\t\t\t\t\t*dfsp = []int64{}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tcase isPointer: // E.g., *int64\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsfpp := src.toInt64Ptr()\n\t\t\t\t\tif *sfpp != nil {\n\t\t\t\t\t\tdfpp := dst.toInt64Ptr()\n\t\t\t\t\t\tif *dfpp == nil {\n\t\t\t\t\t\t\t*dfpp = Int64(**sfpp)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t**dfpp = **sfpp\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault: // E.g., int64\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tif v := *src.toInt64(); v != 0 {\n\t\t\t\t\t\t*dst.toInt64() = v\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase reflect.Uint32:\n\t\t\tswitch {\n\t\t\tcase isSlice: // E.g., []uint32\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsfsp := src.toUint32Slice()\n\t\t\t\t\tif *sfsp != nil {\n\t\t\t\t\t\tdfsp := dst.toUint32Slice()\n\t\t\t\t\t\t*dfsp = append(*dfsp, *sfsp...)\n\t\t\t\t\t\tif *dfsp == nil {\n\t\t\t\t\t\t\t*dfsp = []uint32{}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tcase isPointer: // E.g., *uint32\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsfpp := src.toUint32Ptr()\n\t\t\t\t\tif *sfpp != nil {\n\t\t\t\t\t\tdfpp := dst.toUint32Ptr()\n\t\t\t\t\t\tif *dfpp == nil {\n\t\t\t\t\t\t\t*dfpp = Uint32(**sfpp)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t**dfpp = **sfpp\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault: // E.g., uint32\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tif v := *src.toUint32(); v != 0 {\n\t\t\t\t\t\t*dst.toUint32() = v\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase reflect.Uint64:\n\t\t\tswitch {\n\t\t\tcase isSlice: // E.g., []uint64\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsfsp := src.toUint64Slice()\n\t\t\t\t\tif *sfsp != nil {\n\t\t\t\t\t\tdfsp := dst.toUint64Slice()\n\t\t\t\t\t\t*dfsp = append(*dfsp, *sfsp...)\n\t\t\t\t\t\tif *dfsp == nil {\n\t\t\t\t\t\t\t*dfsp = []uint64{}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tcase isPointer: // E.g., *uint64\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsfpp := src.toUint64Ptr()\n\t\t\t\t\tif *sfpp != nil {\n\t\t\t\t\t\tdfpp := dst.toUint64Ptr()\n\t\t\t\t\t\tif *dfpp == nil {\n\t\t\t\t\t\t\t*dfpp = Uint64(**sfpp)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t**dfpp = **sfpp\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault: // E.g., uint64\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tif v := *src.toUint64(); v != 0 {\n\t\t\t\t\t\t*dst.toUint64() = v\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase reflect.Float32:\n\t\t\tswitch {\n\t\t\tcase isSlice: // E.g., []float32\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsfsp := src.toFloat32Slice()\n\t\t\t\t\tif *sfsp != nil {\n\t\t\t\t\t\tdfsp := dst.toFloat32Slice()\n\t\t\t\t\t\t*dfsp = append(*dfsp, *sfsp...)\n\t\t\t\t\t\tif *dfsp == nil {\n\t\t\t\t\t\t\t*dfsp = []float32{}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tcase isPointer: // E.g., *float32\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsfpp := src.toFloat32Ptr()\n\t\t\t\t\tif *sfpp != nil {\n\t\t\t\t\t\tdfpp := dst.toFloat32Ptr()\n\t\t\t\t\t\tif *dfpp == nil {\n\t\t\t\t\t\t\t*dfpp = Float32(**sfpp)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t**dfpp = **sfpp\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault: // E.g., float32\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tif v := *src.toFloat32(); v != 0 {\n\t\t\t\t\t\t*dst.toFloat32() = v\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase reflect.Float64:\n\t\t\tswitch {\n\t\t\tcase isSlice: // E.g., []float64\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsfsp := src.toFloat64Slice()\n\t\t\t\t\tif *sfsp != nil {\n\t\t\t\t\t\tdfsp := dst.toFloat64Slice()\n\t\t\t\t\t\t*dfsp = append(*dfsp, *sfsp...)\n\t\t\t\t\t\tif *dfsp == nil {\n\t\t\t\t\t\t\t*dfsp = []float64{}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tcase isPointer: // E.g., *float64\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsfpp := src.toFloat64Ptr()\n\t\t\t\t\tif *sfpp != nil {\n\t\t\t\t\t\tdfpp := dst.toFloat64Ptr()\n\t\t\t\t\t\tif *dfpp == nil {\n\t\t\t\t\t\t\t*dfpp = Float64(**sfpp)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t**dfpp = **sfpp\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault: // E.g., float64\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tif v := *src.toFloat64(); v != 0 {\n\t\t\t\t\t\t*dst.toFloat64() = v\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase reflect.Bool:\n\t\t\tswitch {\n\t\t\tcase isSlice: // E.g., []bool\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsfsp := src.toBoolSlice()\n\t\t\t\t\tif *sfsp != nil {\n\t\t\t\t\t\tdfsp := dst.toBoolSlice()\n\t\t\t\t\t\t*dfsp = append(*dfsp, *sfsp...)\n\t\t\t\t\t\tif *dfsp == nil {\n\t\t\t\t\t\t\t*dfsp = []bool{}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tcase isPointer: // E.g., *bool\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsfpp := src.toBoolPtr()\n\t\t\t\t\tif *sfpp != nil {\n\t\t\t\t\t\tdfpp := dst.toBoolPtr()\n\t\t\t\t\t\tif *dfpp == nil {\n\t\t\t\t\t\t\t*dfpp = Bool(**sfpp)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t**dfpp = **sfpp\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault: // E.g., bool\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tif v := *src.toBool(); v {\n\t\t\t\t\t\t*dst.toBool() = v\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase reflect.String:\n\t\t\tswitch {\n\t\t\tcase isSlice: // E.g., []string\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsfsp := src.toStringSlice()\n\t\t\t\t\tif *sfsp != nil {\n\t\t\t\t\t\tdfsp := dst.toStringSlice()\n\t\t\t\t\t\t*dfsp = append(*dfsp, *sfsp...)\n\t\t\t\t\t\tif *dfsp == nil {\n\t\t\t\t\t\t\t*dfsp = []string{}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tcase isPointer: // E.g., *string\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsfpp := src.toStringPtr()\n\t\t\t\t\tif *sfpp != nil {\n\t\t\t\t\t\tdfpp := dst.toStringPtr()\n\t\t\t\t\t\tif *dfpp == nil {\n\t\t\t\t\t\t\t*dfpp = String(**sfpp)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t**dfpp = **sfpp\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault: // E.g., string\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tif v := *src.toString(); v != \"\" {\n\t\t\t\t\t\t*dst.toString() = v\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase reflect.Slice:\n\t\t\tisProto3 := props.Prop[i].proto3\n\t\t\tswitch {\n\t\t\tcase isPointer:\n\t\t\t\tpanic(\"bad pointer in byte slice case in \" + tf.Name())\n\t\t\tcase tf.Elem().Kind() != reflect.Uint8:\n\t\t\t\tpanic(\"bad element kind in byte slice case in \" + tf.Name())\n\t\t\tcase isSlice: // E.g., [][]byte\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsbsp := src.toBytesSlice()\n\t\t\t\t\tif *sbsp != nil {\n\t\t\t\t\t\tdbsp := dst.toBytesSlice()\n\t\t\t\t\t\tfor _, sb := range *sbsp {\n\t\t\t\t\t\t\tif sb == nil {\n\t\t\t\t\t\t\t\t*dbsp = append(*dbsp, nil)\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t*dbsp = append(*dbsp, append([]byte{}, sb...))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif *dbsp == nil {\n\t\t\t\t\t\t\t*dbsp = [][]byte{}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault: // E.g., []byte\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsbp := src.toBytes()\n\t\t\t\t\tif *sbp != nil {\n\t\t\t\t\t\tdbp := dst.toBytes()\n\t\t\t\t\t\tif !isProto3 || len(*sbp) > 0 {\n\t\t\t\t\t\t\t*dbp = append([]byte{}, *sbp...)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase reflect.Struct:\n\t\t\tswitch {\n\t\t\tcase isSlice && !isPointer: // E.g. []pb.T\n\t\t\t\tmergeInfo := getMergeInfo(tf)\n\t\t\t\tzero := reflect.Zero(tf)\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\t// TODO: Make this faster?\n\t\t\t\t\tdstsp := dst.asPointerTo(f.Type)\n\t\t\t\t\tdsts := dstsp.Elem()\n\t\t\t\t\tsrcs := src.asPointerTo(f.Type).Elem()\n\t\t\t\t\tfor i := 0; i < srcs.Len(); i++ {\n\t\t\t\t\t\tdsts = reflect.Append(dsts, zero)\n\t\t\t\t\t\tsrcElement := srcs.Index(i).Addr()\n\t\t\t\t\t\tdstElement := dsts.Index(dsts.Len() - 1).Addr()\n\t\t\t\t\t\tmergeInfo.merge(valToPointer(dstElement), valToPointer(srcElement))\n\t\t\t\t\t}\n\t\t\t\t\tif dsts.IsNil() {\n\t\t\t\t\t\tdsts = reflect.MakeSlice(f.Type, 0, 0)\n\t\t\t\t\t}\n\t\t\t\t\tdstsp.Elem().Set(dsts)\n\t\t\t\t}\n\t\t\tcase !isPointer:\n\t\t\t\tmergeInfo := getMergeInfo(tf)\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tmergeInfo.merge(dst, src)\n\t\t\t\t}\n\t\t\tcase isSlice: // E.g., []*pb.T\n\t\t\t\tmergeInfo := getMergeInfo(tf)\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsps := src.getPointerSlice()\n\t\t\t\t\tif sps != nil {\n\t\t\t\t\t\tdps := dst.getPointerSlice()\n\t\t\t\t\t\tfor _, sp := range sps {\n\t\t\t\t\t\t\tvar dp pointer\n\t\t\t\t\t\t\tif !sp.isNil() {\n\t\t\t\t\t\t\t\tdp = valToPointer(reflect.New(tf))\n\t\t\t\t\t\t\t\tmergeInfo.merge(dp, sp)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdps = append(dps, dp)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif dps == nil {\n\t\t\t\t\t\t\tdps = []pointer{}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdst.setPointerSlice(dps)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault: // E.g., *pb.T\n\t\t\t\tmergeInfo := getMergeInfo(tf)\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsp := src.getPointer()\n\t\t\t\t\tif !sp.isNil() {\n\t\t\t\t\t\tdp := dst.getPointer()\n\t\t\t\t\t\tif dp.isNil() {\n\t\t\t\t\t\t\tdp = valToPointer(reflect.New(tf))\n\t\t\t\t\t\t\tdst.setPointer(dp)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmergeInfo.merge(dp, sp)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase reflect.Map:\n\t\t\tswitch {\n\t\t\tcase isPointer || isSlice:\n\t\t\t\tpanic(\"bad pointer or slice in map case in \" + tf.Name())\n\t\t\tdefault: // E.g., map[K]V\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsm := src.asPointerTo(tf).Elem()\n\t\t\t\t\tif sm.Len() == 0 {\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tdm := dst.asPointerTo(tf).Elem()\n\t\t\t\t\tif dm.IsNil() {\n\t\t\t\t\t\tdm.Set(reflect.MakeMap(tf))\n\t\t\t\t\t}\n\n\t\t\t\t\tswitch tf.Elem().Kind() {\n\t\t\t\t\tcase reflect.Ptr: // Proto struct (e.g., *T)\n\t\t\t\t\t\tfor _, key := range sm.MapKeys() {\n\t\t\t\t\t\t\tval := sm.MapIndex(key)\n\t\t\t\t\t\t\tval = reflect.ValueOf(Clone(val.Interface().(Message)))\n\t\t\t\t\t\t\tdm.SetMapIndex(key, val)\n\t\t\t\t\t\t}\n\t\t\t\t\tcase reflect.Slice: // E.g. Bytes type (e.g., []byte)\n\t\t\t\t\t\tfor _, key := range sm.MapKeys() {\n\t\t\t\t\t\t\tval := sm.MapIndex(key)\n\t\t\t\t\t\t\tval = reflect.ValueOf(append([]byte{}, val.Bytes()...))\n\t\t\t\t\t\t\tdm.SetMapIndex(key, val)\n\t\t\t\t\t\t}\n\t\t\t\t\tdefault: // Basic type (e.g., string)\n\t\t\t\t\t\tfor _, key := range sm.MapKeys() {\n\t\t\t\t\t\t\tval := sm.MapIndex(key)\n\t\t\t\t\t\t\tdm.SetMapIndex(key, val)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase reflect.Interface:\n\t\t\t// Must be oneof field.\n\t\t\tswitch {\n\t\t\tcase isPointer || isSlice:\n\t\t\t\tpanic(\"bad pointer or slice in interface case in \" + tf.Name())\n\t\t\tdefault: // E.g., interface{}\n\t\t\t\t// TODO: Make this faster?\n\t\t\t\tmfi.merge = func(dst, src pointer) {\n\t\t\t\t\tsu := src.asPointerTo(tf).Elem()\n\t\t\t\t\tif !su.IsNil() {\n\t\t\t\t\t\tdu := dst.asPointerTo(tf).Elem()\n\t\t\t\t\t\ttyp := su.Elem().Type()\n\t\t\t\t\t\tif du.IsNil() || du.Elem().Type() != typ {\n\t\t\t\t\t\t\tdu.Set(reflect.New(typ.Elem())) // Initialize interface if empty\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsv := su.Elem().Elem().Field(0)\n\t\t\t\t\t\tif sv.Kind() == reflect.Ptr && sv.IsNil() {\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdv := du.Elem().Elem().Field(0)\n\t\t\t\t\t\tif dv.Kind() == reflect.Ptr && dv.IsNil() {\n\t\t\t\t\t\t\tdv.Set(reflect.New(sv.Type().Elem())) // Initialize proto message if empty\n\t\t\t\t\t\t}\n\t\t\t\t\t\tswitch sv.Type().Kind() {\n\t\t\t\t\t\tcase reflect.Ptr: // Proto struct (e.g., *T)\n\t\t\t\t\t\t\tMerge(dv.Interface().(Message), sv.Interface().(Message))\n\t\t\t\t\t\tcase reflect.Slice: // E.g. Bytes type (e.g., []byte)\n\t\t\t\t\t\t\tdv.Set(reflect.ValueOf(append([]byte{}, sv.Bytes()...)))\n\t\t\t\t\t\tdefault: // Basic type (e.g., string)\n\t\t\t\t\t\t\tdv.Set(sv)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(fmt.Sprintf(\"merger not found for type:%s\", tf))\n\t\t}\n\t\tmi.fields = append(mi.fields, mfi)\n\t}\n\n\tmi.unrecognized = invalidField\n\tif f, ok := t.FieldByName(\"XXX_unrecognized\"); ok {\n\t\tif f.Type != reflect.TypeOf([]byte{}) {\n\t\t\tpanic(\"expected XXX_unrecognized to be of type []byte\")\n\t\t}\n\t\tmi.unrecognized = toField(&f)\n\t}\n\n\tatomic.StoreInt32(&mi.initialized, 1)\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/table_unmarshal.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2016 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"unicode/utf8\"\n)\n\n// Unmarshal is the entry point from the generated .pb.go files.\n// This function is not intended to be used by non-generated code.\n// This function is not subject to any compatibility guarantee.\n// msg contains a pointer to a protocol buffer struct.\n// b is the data to be unmarshaled into the protocol buffer.\n// a is a pointer to a place to store cached unmarshal information.\nfunc (a *InternalMessageInfo) Unmarshal(msg Message, b []byte) error {\n\t// Load the unmarshal information for this message type.\n\t// The atomic load ensures memory consistency.\n\tu := atomicLoadUnmarshalInfo(&a.unmarshal)\n\tif u == nil {\n\t\t// Slow path: find unmarshal info for msg, update a with it.\n\t\tu = getUnmarshalInfo(reflect.TypeOf(msg).Elem())\n\t\tatomicStoreUnmarshalInfo(&a.unmarshal, u)\n\t}\n\t// Then do the unmarshaling.\n\terr := u.unmarshal(toPointer(&msg), b)\n\treturn err\n}\n\ntype unmarshalInfo struct {\n\ttyp reflect.Type // type of the protobuf struct\n\n\t// 0 = only typ field is initialized\n\t// 1 = completely initialized\n\tinitialized     int32\n\tlock            sync.Mutex                    // prevents double initialization\n\tdense           []unmarshalFieldInfo          // fields indexed by tag #\n\tsparse          map[uint64]unmarshalFieldInfo // fields indexed by tag #\n\treqFields       []string                      // names of required fields\n\treqMask         uint64                        // 1<<len(reqFields)-1\n\tunrecognized    field                         // offset of []byte to put unrecognized data (or invalidField if we should throw it away)\n\textensions      field                         // offset of extensions field (of type proto.XXX_InternalExtensions), or invalidField if it does not exist\n\toldExtensions   field                         // offset of old-form extensions field (of type map[int]Extension)\n\textensionRanges []ExtensionRange              // if non-nil, implies extensions field is valid\n\tisMessageSet    bool                          // if true, implies extensions field is valid\n\n\tbytesExtensions field // offset of XXX_extensions with type []byte\n}\n\n// An unmarshaler takes a stream of bytes and a pointer to a field of a message.\n// It decodes the field, stores it at f, and returns the unused bytes.\n// w is the wire encoding.\n// b is the data after the tag and wire encoding have been read.\ntype unmarshaler func(b []byte, f pointer, w int) ([]byte, error)\n\ntype unmarshalFieldInfo struct {\n\t// location of the field in the proto message structure.\n\tfield field\n\n\t// function to unmarshal the data for the field.\n\tunmarshal unmarshaler\n\n\t// if a required field, contains a single set bit at this field's index in the required field list.\n\treqMask uint64\n\n\tname string // name of the field, for error reporting\n}\n\nvar (\n\tunmarshalInfoMap  = map[reflect.Type]*unmarshalInfo{}\n\tunmarshalInfoLock sync.Mutex\n)\n\n// getUnmarshalInfo returns the data structure which can be\n// subsequently used to unmarshal a message of the given type.\n// t is the type of the message (note: not pointer to message).\nfunc getUnmarshalInfo(t reflect.Type) *unmarshalInfo {\n\t// It would be correct to return a new unmarshalInfo\n\t// unconditionally. We would end up allocating one\n\t// per occurrence of that type as a message or submessage.\n\t// We use a cache here just to reduce memory usage.\n\tunmarshalInfoLock.Lock()\n\tdefer unmarshalInfoLock.Unlock()\n\tu := unmarshalInfoMap[t]\n\tif u == nil {\n\t\tu = &unmarshalInfo{typ: t}\n\t\t// Note: we just set the type here. The rest of the fields\n\t\t// will be initialized on first use.\n\t\tunmarshalInfoMap[t] = u\n\t}\n\treturn u\n}\n\n// unmarshal does the main work of unmarshaling a message.\n// u provides type information used to unmarshal the message.\n// m is a pointer to a protocol buffer message.\n// b is a byte stream to unmarshal into m.\n// This is top routine used when recursively unmarshaling submessages.\nfunc (u *unmarshalInfo) unmarshal(m pointer, b []byte) error {\n\tif atomic.LoadInt32(&u.initialized) == 0 {\n\t\tu.computeUnmarshalInfo()\n\t}\n\tif u.isMessageSet {\n\t\treturn unmarshalMessageSet(b, m.offset(u.extensions).toExtensions())\n\t}\n\tvar reqMask uint64 // bitmask of required fields we've seen.\n\tvar errLater error\n\tfor len(b) > 0 {\n\t\t// Read tag and wire type.\n\t\t// Special case 1 and 2 byte varints.\n\t\tvar x uint64\n\t\tif b[0] < 128 {\n\t\t\tx = uint64(b[0])\n\t\t\tb = b[1:]\n\t\t} else if len(b) >= 2 && b[1] < 128 {\n\t\t\tx = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\t\tb = b[2:]\n\t\t} else {\n\t\t\tvar n int\n\t\t\tx, n = decodeVarint(b)\n\t\t\tif n == 0 {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb = b[n:]\n\t\t}\n\t\ttag := x >> 3\n\t\twire := int(x) & 7\n\n\t\t// Dispatch on the tag to one of the unmarshal* functions below.\n\t\tvar f unmarshalFieldInfo\n\t\tif tag < uint64(len(u.dense)) {\n\t\t\tf = u.dense[tag]\n\t\t} else {\n\t\t\tf = u.sparse[tag]\n\t\t}\n\t\tif fn := f.unmarshal; fn != nil {\n\t\t\tvar err error\n\t\t\tb, err = fn(b, m.offset(f.field), wire)\n\t\t\tif err == nil {\n\t\t\t\treqMask |= f.reqMask\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif r, ok := err.(*RequiredNotSetError); ok {\n\t\t\t\t// Remember this error, but keep parsing. We need to produce\n\t\t\t\t// a full parse even if a required field is missing.\n\t\t\t\tif errLater == nil {\n\t\t\t\t\terrLater = r\n\t\t\t\t}\n\t\t\t\treqMask |= f.reqMask\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif err != errInternalBadWireType {\n\t\t\t\tif err == errInvalidUTF8 {\n\t\t\t\t\tif errLater == nil {\n\t\t\t\t\t\tfullName := revProtoTypes[reflect.PtrTo(u.typ)] + \".\" + f.name\n\t\t\t\t\t\terrLater = &invalidUTF8Error{fullName}\n\t\t\t\t\t}\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\treturn err\n\t\t\t}\n\t\t\t// Fragments with bad wire type are treated as unknown fields.\n\t\t}\n\n\t\t// Unknown tag.\n\t\tif !u.unrecognized.IsValid() {\n\t\t\t// Don't keep unrecognized data; just skip it.\n\t\t\tvar err error\n\t\t\tb, err = skipField(b, wire)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\t// Keep unrecognized data around.\n\t\t// maybe in extensions, maybe in the unrecognized field.\n\t\tz := m.offset(u.unrecognized).toBytes()\n\t\tvar emap map[int32]Extension\n\t\tvar e Extension\n\t\tfor _, r := range u.extensionRanges {\n\t\t\tif uint64(r.Start) <= tag && tag <= uint64(r.End) {\n\t\t\t\tif u.extensions.IsValid() {\n\t\t\t\t\tmp := m.offset(u.extensions).toExtensions()\n\t\t\t\t\temap = mp.extensionsWrite()\n\t\t\t\t\te = emap[int32(tag)]\n\t\t\t\t\tz = &e.enc\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tif u.oldExtensions.IsValid() {\n\t\t\t\t\tp := m.offset(u.oldExtensions).toOldExtensions()\n\t\t\t\t\temap = *p\n\t\t\t\t\tif emap == nil {\n\t\t\t\t\t\temap = map[int32]Extension{}\n\t\t\t\t\t\t*p = emap\n\t\t\t\t\t}\n\t\t\t\t\te = emap[int32(tag)]\n\t\t\t\t\tz = &e.enc\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tif u.bytesExtensions.IsValid() {\n\t\t\t\t\tz = m.offset(u.bytesExtensions).toBytes()\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tpanic(\"no extensions field available\")\n\t\t\t}\n\t\t}\n\t\t// Use wire type to skip data.\n\t\tvar err error\n\t\tb0 := b\n\t\tb, err = skipField(b, wire)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t*z = encodeVarint(*z, tag<<3|uint64(wire))\n\t\t*z = append(*z, b0[:len(b0)-len(b)]...)\n\n\t\tif emap != nil {\n\t\t\temap[int32(tag)] = e\n\t\t}\n\t}\n\tif reqMask != u.reqMask && errLater == nil {\n\t\t// A required field of this message is missing.\n\t\tfor _, n := range u.reqFields {\n\t\t\tif reqMask&1 == 0 {\n\t\t\t\terrLater = &RequiredNotSetError{n}\n\t\t\t}\n\t\t\treqMask >>= 1\n\t\t}\n\t}\n\treturn errLater\n}\n\n// computeUnmarshalInfo fills in u with information for use\n// in unmarshaling protocol buffers of type u.typ.\nfunc (u *unmarshalInfo) computeUnmarshalInfo() {\n\tu.lock.Lock()\n\tdefer u.lock.Unlock()\n\tif u.initialized != 0 {\n\t\treturn\n\t}\n\tt := u.typ\n\tn := t.NumField()\n\n\t// Set up the \"not found\" value for the unrecognized byte buffer.\n\t// This is the default for proto3.\n\tu.unrecognized = invalidField\n\tu.extensions = invalidField\n\tu.oldExtensions = invalidField\n\tu.bytesExtensions = invalidField\n\n\t// List of the generated type and offset for each oneof field.\n\ttype oneofField struct {\n\t\tityp  reflect.Type // interface type of oneof field\n\t\tfield field        // offset in containing message\n\t}\n\tvar oneofFields []oneofField\n\n\tfor i := 0; i < n; i++ {\n\t\tf := t.Field(i)\n\t\tif f.Name == \"XXX_unrecognized\" {\n\t\t\t// The byte slice used to hold unrecognized input is special.\n\t\t\tif f.Type != reflect.TypeOf(([]byte)(nil)) {\n\t\t\t\tpanic(\"bad type for XXX_unrecognized field: \" + f.Type.Name())\n\t\t\t}\n\t\t\tu.unrecognized = toField(&f)\n\t\t\tcontinue\n\t\t}\n\t\tif f.Name == \"XXX_InternalExtensions\" {\n\t\t\t// Ditto here.\n\t\t\tif f.Type != reflect.TypeOf(XXX_InternalExtensions{}) {\n\t\t\t\tpanic(\"bad type for XXX_InternalExtensions field: \" + f.Type.Name())\n\t\t\t}\n\t\t\tu.extensions = toField(&f)\n\t\t\tif f.Tag.Get(\"protobuf_messageset\") == \"1\" {\n\t\t\t\tu.isMessageSet = true\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif f.Name == \"XXX_extensions\" {\n\t\t\t// An older form of the extensions field.\n\t\t\tif f.Type == reflect.TypeOf((map[int32]Extension)(nil)) {\n\t\t\t\tu.oldExtensions = toField(&f)\n\t\t\t\tcontinue\n\t\t\t} else if f.Type == reflect.TypeOf(([]byte)(nil)) {\n\t\t\t\tu.bytesExtensions = toField(&f)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tpanic(\"bad type for XXX_extensions field: \" + f.Type.Name())\n\t\t}\n\t\tif f.Name == \"XXX_NoUnkeyedLiteral\" || f.Name == \"XXX_sizecache\" {\n\t\t\tcontinue\n\t\t}\n\n\t\toneof := f.Tag.Get(\"protobuf_oneof\")\n\t\tif oneof != \"\" {\n\t\t\toneofFields = append(oneofFields, oneofField{f.Type, toField(&f)})\n\t\t\t// The rest of oneof processing happens below.\n\t\t\tcontinue\n\t\t}\n\n\t\ttags := f.Tag.Get(\"protobuf\")\n\t\ttagArray := strings.Split(tags, \",\")\n\t\tif len(tagArray) < 2 {\n\t\t\tpanic(\"protobuf tag not enough fields in \" + t.Name() + \".\" + f.Name + \": \" + tags)\n\t\t}\n\t\ttag, err := strconv.Atoi(tagArray[1])\n\t\tif err != nil {\n\t\t\tpanic(\"protobuf tag field not an integer: \" + tagArray[1])\n\t\t}\n\n\t\tname := \"\"\n\t\tfor _, tag := range tagArray[3:] {\n\t\t\tif strings.HasPrefix(tag, \"name=\") {\n\t\t\t\tname = tag[5:]\n\t\t\t}\n\t\t}\n\n\t\t// Extract unmarshaling function from the field (its type and tags).\n\t\tunmarshal := fieldUnmarshaler(&f)\n\n\t\t// Required field?\n\t\tvar reqMask uint64\n\t\tif tagArray[2] == \"req\" {\n\t\t\tbit := len(u.reqFields)\n\t\t\tu.reqFields = append(u.reqFields, name)\n\t\t\treqMask = uint64(1) << uint(bit)\n\t\t\t// TODO: if we have more than 64 required fields, we end up\n\t\t\t// not verifying that all required fields are present.\n\t\t\t// Fix this, perhaps using a count of required fields?\n\t\t}\n\n\t\t// Store the info in the correct slot in the message.\n\t\tu.setTag(tag, toField(&f), unmarshal, reqMask, name)\n\t}\n\n\t// Find any types associated with oneof fields.\n\t// gogo: len(oneofFields) > 0 is needed for embedded oneof messages, without a marshaler and unmarshaler\n\tif len(oneofFields) > 0 {\n\t\tvar oneofImplementers []interface{}\n\t\tswitch m := reflect.Zero(reflect.PtrTo(t)).Interface().(type) {\n\t\tcase oneofFuncsIface:\n\t\t\t_, _, _, oneofImplementers = m.XXX_OneofFuncs()\n\t\tcase oneofWrappersIface:\n\t\t\toneofImplementers = m.XXX_OneofWrappers()\n\t\t}\n\t\tfor _, v := range oneofImplementers {\n\t\t\ttptr := reflect.TypeOf(v) // *Msg_X\n\t\t\ttyp := tptr.Elem()        // Msg_X\n\n\t\t\tf := typ.Field(0) // oneof implementers have one field\n\t\t\tbaseUnmarshal := fieldUnmarshaler(&f)\n\t\t\ttags := strings.Split(f.Tag.Get(\"protobuf\"), \",\")\n\t\t\tfieldNum, err := strconv.Atoi(tags[1])\n\t\t\tif err != nil {\n\t\t\t\tpanic(\"protobuf tag field not an integer: \" + tags[1])\n\t\t\t}\n\t\t\tvar name string\n\t\t\tfor _, tag := range tags {\n\t\t\t\tif strings.HasPrefix(tag, \"name=\") {\n\t\t\t\t\tname = strings.TrimPrefix(tag, \"name=\")\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Find the oneof field that this struct implements.\n\t\t\t// Might take O(n^2) to process all of the oneofs, but who cares.\n\t\t\tfor _, of := range oneofFields {\n\t\t\t\tif tptr.Implements(of.ityp) {\n\t\t\t\t\t// We have found the corresponding interface for this struct.\n\t\t\t\t\t// That lets us know where this struct should be stored\n\t\t\t\t\t// when we encounter it during unmarshaling.\n\t\t\t\t\tunmarshal := makeUnmarshalOneof(typ, of.ityp, baseUnmarshal)\n\t\t\t\t\tu.setTag(fieldNum, of.field, unmarshal, 0, name)\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t}\n\n\t// Get extension ranges, if any.\n\tfn := reflect.Zero(reflect.PtrTo(t)).MethodByName(\"ExtensionRangeArray\")\n\tif fn.IsValid() {\n\t\tif !u.extensions.IsValid() && !u.oldExtensions.IsValid() && !u.bytesExtensions.IsValid() {\n\t\t\tpanic(\"a message with extensions, but no extensions field in \" + t.Name())\n\t\t}\n\t\tu.extensionRanges = fn.Call(nil)[0].Interface().([]ExtensionRange)\n\t}\n\n\t// Explicitly disallow tag 0. This will ensure we flag an error\n\t// when decoding a buffer of all zeros. Without this code, we\n\t// would decode and skip an all-zero buffer of even length.\n\t// [0 0] is [tag=0/wiretype=varint varint-encoded-0].\n\tu.setTag(0, zeroField, func(b []byte, f pointer, w int) ([]byte, error) {\n\t\treturn nil, fmt.Errorf(\"proto: %s: illegal tag 0 (wire type %d)\", t, w)\n\t}, 0, \"\")\n\n\t// Set mask for required field check.\n\tu.reqMask = uint64(1)<<uint(len(u.reqFields)) - 1\n\n\tatomic.StoreInt32(&u.initialized, 1)\n}\n\n// setTag stores the unmarshal information for the given tag.\n// tag = tag # for field\n// field/unmarshal = unmarshal info for that field.\n// reqMask = if required, bitmask for field position in required field list. 0 otherwise.\n// name = short name of the field.\nfunc (u *unmarshalInfo) setTag(tag int, field field, unmarshal unmarshaler, reqMask uint64, name string) {\n\ti := unmarshalFieldInfo{field: field, unmarshal: unmarshal, reqMask: reqMask, name: name}\n\tn := u.typ.NumField()\n\tif tag >= 0 && (tag < 16 || tag < 2*n) { // TODO: what are the right numbers here?\n\t\tfor len(u.dense) <= tag {\n\t\t\tu.dense = append(u.dense, unmarshalFieldInfo{})\n\t\t}\n\t\tu.dense[tag] = i\n\t\treturn\n\t}\n\tif u.sparse == nil {\n\t\tu.sparse = map[uint64]unmarshalFieldInfo{}\n\t}\n\tu.sparse[uint64(tag)] = i\n}\n\n// fieldUnmarshaler returns an unmarshaler for the given field.\nfunc fieldUnmarshaler(f *reflect.StructField) unmarshaler {\n\tif f.Type.Kind() == reflect.Map {\n\t\treturn makeUnmarshalMap(f)\n\t}\n\treturn typeUnmarshaler(f.Type, f.Tag.Get(\"protobuf\"))\n}\n\n// typeUnmarshaler returns an unmarshaler for the given field type / field tag pair.\nfunc typeUnmarshaler(t reflect.Type, tags string) unmarshaler {\n\ttagArray := strings.Split(tags, \",\")\n\tencoding := tagArray[0]\n\tname := \"unknown\"\n\tctype := false\n\tisTime := false\n\tisDuration := false\n\tisWktPointer := false\n\tproto3 := false\n\tvalidateUTF8 := true\n\tfor _, tag := range tagArray[3:] {\n\t\tif strings.HasPrefix(tag, \"name=\") {\n\t\t\tname = tag[5:]\n\t\t}\n\t\tif tag == \"proto3\" {\n\t\t\tproto3 = true\n\t\t}\n\t\tif strings.HasPrefix(tag, \"customtype=\") {\n\t\t\tctype = true\n\t\t}\n\t\tif tag == \"stdtime\" {\n\t\t\tisTime = true\n\t\t}\n\t\tif tag == \"stdduration\" {\n\t\t\tisDuration = true\n\t\t}\n\t\tif tag == \"wktptr\" {\n\t\t\tisWktPointer = true\n\t\t}\n\t}\n\tvalidateUTF8 = validateUTF8 && proto3\n\n\t// Figure out packaging (pointer, slice, or both)\n\tslice := false\n\tpointer := false\n\tif t.Kind() == reflect.Slice && t.Elem().Kind() != reflect.Uint8 {\n\t\tslice = true\n\t\tt = t.Elem()\n\t}\n\tif t.Kind() == reflect.Ptr {\n\t\tpointer = true\n\t\tt = t.Elem()\n\t}\n\n\tif ctype {\n\t\tif reflect.PtrTo(t).Implements(customType) {\n\t\t\tif slice {\n\t\t\t\treturn makeUnmarshalCustomSlice(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\tif pointer {\n\t\t\t\treturn makeUnmarshalCustomPtr(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\treturn makeUnmarshalCustom(getUnmarshalInfo(t), name)\n\t\t} else {\n\t\t\tpanic(fmt.Sprintf(\"custom type: type: %v, does not implement the proto.custom interface\", t))\n\t\t}\n\t}\n\n\tif isTime {\n\t\tif pointer {\n\t\t\tif slice {\n\t\t\t\treturn makeUnmarshalTimePtrSlice(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\treturn makeUnmarshalTimePtr(getUnmarshalInfo(t), name)\n\t\t}\n\t\tif slice {\n\t\t\treturn makeUnmarshalTimeSlice(getUnmarshalInfo(t), name)\n\t\t}\n\t\treturn makeUnmarshalTime(getUnmarshalInfo(t), name)\n\t}\n\n\tif isDuration {\n\t\tif pointer {\n\t\t\tif slice {\n\t\t\t\treturn makeUnmarshalDurationPtrSlice(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\treturn makeUnmarshalDurationPtr(getUnmarshalInfo(t), name)\n\t\t}\n\t\tif slice {\n\t\t\treturn makeUnmarshalDurationSlice(getUnmarshalInfo(t), name)\n\t\t}\n\t\treturn makeUnmarshalDuration(getUnmarshalInfo(t), name)\n\t}\n\n\tif isWktPointer {\n\t\tswitch t.Kind() {\n\t\tcase reflect.Float64:\n\t\t\tif pointer {\n\t\t\t\tif slice {\n\t\t\t\t\treturn makeStdDoubleValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t\t}\n\t\t\t\treturn makeStdDoubleValuePtrUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn makeStdDoubleValueSliceUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\treturn makeStdDoubleValueUnmarshaler(getUnmarshalInfo(t), name)\n\t\tcase reflect.Float32:\n\t\t\tif pointer {\n\t\t\t\tif slice {\n\t\t\t\t\treturn makeStdFloatValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t\t}\n\t\t\t\treturn makeStdFloatValuePtrUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn makeStdFloatValueSliceUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\treturn makeStdFloatValueUnmarshaler(getUnmarshalInfo(t), name)\n\t\tcase reflect.Int64:\n\t\t\tif pointer {\n\t\t\t\tif slice {\n\t\t\t\t\treturn makeStdInt64ValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t\t}\n\t\t\t\treturn makeStdInt64ValuePtrUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn makeStdInt64ValueSliceUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\treturn makeStdInt64ValueUnmarshaler(getUnmarshalInfo(t), name)\n\t\tcase reflect.Uint64:\n\t\t\tif pointer {\n\t\t\t\tif slice {\n\t\t\t\t\treturn makeStdUInt64ValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t\t}\n\t\t\t\treturn makeStdUInt64ValuePtrUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn makeStdUInt64ValueSliceUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\treturn makeStdUInt64ValueUnmarshaler(getUnmarshalInfo(t), name)\n\t\tcase reflect.Int32:\n\t\t\tif pointer {\n\t\t\t\tif slice {\n\t\t\t\t\treturn makeStdInt32ValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t\t}\n\t\t\t\treturn makeStdInt32ValuePtrUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn makeStdInt32ValueSliceUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\treturn makeStdInt32ValueUnmarshaler(getUnmarshalInfo(t), name)\n\t\tcase reflect.Uint32:\n\t\t\tif pointer {\n\t\t\t\tif slice {\n\t\t\t\t\treturn makeStdUInt32ValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t\t}\n\t\t\t\treturn makeStdUInt32ValuePtrUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn makeStdUInt32ValueSliceUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\treturn makeStdUInt32ValueUnmarshaler(getUnmarshalInfo(t), name)\n\t\tcase reflect.Bool:\n\t\t\tif pointer {\n\t\t\t\tif slice {\n\t\t\t\t\treturn makeStdBoolValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t\t}\n\t\t\t\treturn makeStdBoolValuePtrUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn makeStdBoolValueSliceUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\treturn makeStdBoolValueUnmarshaler(getUnmarshalInfo(t), name)\n\t\tcase reflect.String:\n\t\t\tif pointer {\n\t\t\t\tif slice {\n\t\t\t\t\treturn makeStdStringValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t\t}\n\t\t\t\treturn makeStdStringValuePtrUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn makeStdStringValueSliceUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\treturn makeStdStringValueUnmarshaler(getUnmarshalInfo(t), name)\n\t\tcase uint8SliceType:\n\t\t\tif pointer {\n\t\t\t\tif slice {\n\t\t\t\t\treturn makeStdBytesValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t\t}\n\t\t\t\treturn makeStdBytesValuePtrUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn makeStdBytesValueSliceUnmarshaler(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\treturn makeStdBytesValueUnmarshaler(getUnmarshalInfo(t), name)\n\t\tdefault:\n\t\t\tpanic(fmt.Sprintf(\"unknown wktpointer type %#v\", t))\n\t\t}\n\t}\n\n\t// We'll never have both pointer and slice for basic types.\n\tif pointer && slice && t.Kind() != reflect.Struct {\n\t\tpanic(\"both pointer and slice for basic type in \" + t.Name())\n\t}\n\n\tswitch t.Kind() {\n\tcase reflect.Bool:\n\t\tif pointer {\n\t\t\treturn unmarshalBoolPtr\n\t\t}\n\t\tif slice {\n\t\t\treturn unmarshalBoolSlice\n\t\t}\n\t\treturn unmarshalBoolValue\n\tcase reflect.Int32:\n\t\tswitch encoding {\n\t\tcase \"fixed32\":\n\t\t\tif pointer {\n\t\t\t\treturn unmarshalFixedS32Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn unmarshalFixedS32Slice\n\t\t\t}\n\t\t\treturn unmarshalFixedS32Value\n\t\tcase \"varint\":\n\t\t\t// this could be int32 or enum\n\t\t\tif pointer {\n\t\t\t\treturn unmarshalInt32Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn unmarshalInt32Slice\n\t\t\t}\n\t\t\treturn unmarshalInt32Value\n\t\tcase \"zigzag32\":\n\t\t\tif pointer {\n\t\t\t\treturn unmarshalSint32Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn unmarshalSint32Slice\n\t\t\t}\n\t\t\treturn unmarshalSint32Value\n\t\t}\n\tcase reflect.Int64:\n\t\tswitch encoding {\n\t\tcase \"fixed64\":\n\t\t\tif pointer {\n\t\t\t\treturn unmarshalFixedS64Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn unmarshalFixedS64Slice\n\t\t\t}\n\t\t\treturn unmarshalFixedS64Value\n\t\tcase \"varint\":\n\t\t\tif pointer {\n\t\t\t\treturn unmarshalInt64Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn unmarshalInt64Slice\n\t\t\t}\n\t\t\treturn unmarshalInt64Value\n\t\tcase \"zigzag64\":\n\t\t\tif pointer {\n\t\t\t\treturn unmarshalSint64Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn unmarshalSint64Slice\n\t\t\t}\n\t\t\treturn unmarshalSint64Value\n\t\t}\n\tcase reflect.Uint32:\n\t\tswitch encoding {\n\t\tcase \"fixed32\":\n\t\t\tif pointer {\n\t\t\t\treturn unmarshalFixed32Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn unmarshalFixed32Slice\n\t\t\t}\n\t\t\treturn unmarshalFixed32Value\n\t\tcase \"varint\":\n\t\t\tif pointer {\n\t\t\t\treturn unmarshalUint32Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn unmarshalUint32Slice\n\t\t\t}\n\t\t\treturn unmarshalUint32Value\n\t\t}\n\tcase reflect.Uint64:\n\t\tswitch encoding {\n\t\tcase \"fixed64\":\n\t\t\tif pointer {\n\t\t\t\treturn unmarshalFixed64Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn unmarshalFixed64Slice\n\t\t\t}\n\t\t\treturn unmarshalFixed64Value\n\t\tcase \"varint\":\n\t\t\tif pointer {\n\t\t\t\treturn unmarshalUint64Ptr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn unmarshalUint64Slice\n\t\t\t}\n\t\t\treturn unmarshalUint64Value\n\t\t}\n\tcase reflect.Float32:\n\t\tif pointer {\n\t\t\treturn unmarshalFloat32Ptr\n\t\t}\n\t\tif slice {\n\t\t\treturn unmarshalFloat32Slice\n\t\t}\n\t\treturn unmarshalFloat32Value\n\tcase reflect.Float64:\n\t\tif pointer {\n\t\t\treturn unmarshalFloat64Ptr\n\t\t}\n\t\tif slice {\n\t\t\treturn unmarshalFloat64Slice\n\t\t}\n\t\treturn unmarshalFloat64Value\n\tcase reflect.Map:\n\t\tpanic(\"map type in typeUnmarshaler in \" + t.Name())\n\tcase reflect.Slice:\n\t\tif pointer {\n\t\t\tpanic(\"bad pointer in slice case in \" + t.Name())\n\t\t}\n\t\tif slice {\n\t\t\treturn unmarshalBytesSlice\n\t\t}\n\t\treturn unmarshalBytesValue\n\tcase reflect.String:\n\t\tif validateUTF8 {\n\t\t\tif pointer {\n\t\t\t\treturn unmarshalUTF8StringPtr\n\t\t\t}\n\t\t\tif slice {\n\t\t\t\treturn unmarshalUTF8StringSlice\n\t\t\t}\n\t\t\treturn unmarshalUTF8StringValue\n\t\t}\n\t\tif pointer {\n\t\t\treturn unmarshalStringPtr\n\t\t}\n\t\tif slice {\n\t\t\treturn unmarshalStringSlice\n\t\t}\n\t\treturn unmarshalStringValue\n\tcase reflect.Struct:\n\t\t// message or group field\n\t\tif !pointer {\n\t\t\tswitch encoding {\n\t\t\tcase \"bytes\":\n\t\t\t\tif slice {\n\t\t\t\t\treturn makeUnmarshalMessageSlice(getUnmarshalInfo(t), name)\n\t\t\t\t}\n\t\t\t\treturn makeUnmarshalMessage(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t}\n\t\tswitch encoding {\n\t\tcase \"bytes\":\n\t\t\tif slice {\n\t\t\t\treturn makeUnmarshalMessageSlicePtr(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\treturn makeUnmarshalMessagePtr(getUnmarshalInfo(t), name)\n\t\tcase \"group\":\n\t\t\tif slice {\n\t\t\t\treturn makeUnmarshalGroupSlicePtr(getUnmarshalInfo(t), name)\n\t\t\t}\n\t\t\treturn makeUnmarshalGroupPtr(getUnmarshalInfo(t), name)\n\t\t}\n\t}\n\tpanic(fmt.Sprintf(\"unmarshaler not found type:%s encoding:%s\", t, encoding))\n}\n\n// Below are all the unmarshalers for individual fields of various types.\n\nfunc unmarshalInt64Value(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := int64(x)\n\t*f.toInt64() = v\n\treturn b, nil\n}\n\nfunc unmarshalInt64Ptr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := int64(x)\n\t*f.toInt64Ptr() = &v\n\treturn b, nil\n}\n\nfunc unmarshalInt64Slice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w == WireBytes { // packed\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tres := b[x:]\n\t\tb = b[:x]\n\t\tfor len(b) > 0 {\n\t\t\tx, n = decodeVarint(b)\n\t\t\tif n == 0 {\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb = b[n:]\n\t\t\tv := int64(x)\n\t\t\ts := f.toInt64Slice()\n\t\t\t*s = append(*s, v)\n\t\t}\n\t\treturn res, nil\n\t}\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := int64(x)\n\ts := f.toInt64Slice()\n\t*s = append(*s, v)\n\treturn b, nil\n}\n\nfunc unmarshalSint64Value(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := int64(x>>1) ^ int64(x)<<63>>63\n\t*f.toInt64() = v\n\treturn b, nil\n}\n\nfunc unmarshalSint64Ptr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := int64(x>>1) ^ int64(x)<<63>>63\n\t*f.toInt64Ptr() = &v\n\treturn b, nil\n}\n\nfunc unmarshalSint64Slice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w == WireBytes { // packed\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tres := b[x:]\n\t\tb = b[:x]\n\t\tfor len(b) > 0 {\n\t\t\tx, n = decodeVarint(b)\n\t\t\tif n == 0 {\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb = b[n:]\n\t\t\tv := int64(x>>1) ^ int64(x)<<63>>63\n\t\t\ts := f.toInt64Slice()\n\t\t\t*s = append(*s, v)\n\t\t}\n\t\treturn res, nil\n\t}\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := int64(x>>1) ^ int64(x)<<63>>63\n\ts := f.toInt64Slice()\n\t*s = append(*s, v)\n\treturn b, nil\n}\n\nfunc unmarshalUint64Value(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := uint64(x)\n\t*f.toUint64() = v\n\treturn b, nil\n}\n\nfunc unmarshalUint64Ptr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := uint64(x)\n\t*f.toUint64Ptr() = &v\n\treturn b, nil\n}\n\nfunc unmarshalUint64Slice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w == WireBytes { // packed\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tres := b[x:]\n\t\tb = b[:x]\n\t\tfor len(b) > 0 {\n\t\t\tx, n = decodeVarint(b)\n\t\t\tif n == 0 {\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb = b[n:]\n\t\t\tv := uint64(x)\n\t\t\ts := f.toUint64Slice()\n\t\t\t*s = append(*s, v)\n\t\t}\n\t\treturn res, nil\n\t}\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := uint64(x)\n\ts := f.toUint64Slice()\n\t*s = append(*s, v)\n\treturn b, nil\n}\n\nfunc unmarshalInt32Value(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := int32(x)\n\t*f.toInt32() = v\n\treturn b, nil\n}\n\nfunc unmarshalInt32Ptr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := int32(x)\n\tf.setInt32Ptr(v)\n\treturn b, nil\n}\n\nfunc unmarshalInt32Slice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w == WireBytes { // packed\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tres := b[x:]\n\t\tb = b[:x]\n\t\tfor len(b) > 0 {\n\t\t\tx, n = decodeVarint(b)\n\t\t\tif n == 0 {\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb = b[n:]\n\t\t\tv := int32(x)\n\t\t\tf.appendInt32Slice(v)\n\t\t}\n\t\treturn res, nil\n\t}\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := int32(x)\n\tf.appendInt32Slice(v)\n\treturn b, nil\n}\n\nfunc unmarshalSint32Value(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := int32(x>>1) ^ int32(x)<<31>>31\n\t*f.toInt32() = v\n\treturn b, nil\n}\n\nfunc unmarshalSint32Ptr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := int32(x>>1) ^ int32(x)<<31>>31\n\tf.setInt32Ptr(v)\n\treturn b, nil\n}\n\nfunc unmarshalSint32Slice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w == WireBytes { // packed\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tres := b[x:]\n\t\tb = b[:x]\n\t\tfor len(b) > 0 {\n\t\t\tx, n = decodeVarint(b)\n\t\t\tif n == 0 {\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb = b[n:]\n\t\t\tv := int32(x>>1) ^ int32(x)<<31>>31\n\t\t\tf.appendInt32Slice(v)\n\t\t}\n\t\treturn res, nil\n\t}\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := int32(x>>1) ^ int32(x)<<31>>31\n\tf.appendInt32Slice(v)\n\treturn b, nil\n}\n\nfunc unmarshalUint32Value(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := uint32(x)\n\t*f.toUint32() = v\n\treturn b, nil\n}\n\nfunc unmarshalUint32Ptr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := uint32(x)\n\t*f.toUint32Ptr() = &v\n\treturn b, nil\n}\n\nfunc unmarshalUint32Slice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w == WireBytes { // packed\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tres := b[x:]\n\t\tb = b[:x]\n\t\tfor len(b) > 0 {\n\t\t\tx, n = decodeVarint(b)\n\t\t\tif n == 0 {\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb = b[n:]\n\t\t\tv := uint32(x)\n\t\t\ts := f.toUint32Slice()\n\t\t\t*s = append(*s, v)\n\t\t}\n\t\treturn res, nil\n\t}\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tv := uint32(x)\n\ts := f.toUint32Slice()\n\t*s = append(*s, v)\n\treturn b, nil\n}\n\nfunc unmarshalFixed64Value(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireFixed64 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 8 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56\n\t*f.toUint64() = v\n\treturn b[8:], nil\n}\n\nfunc unmarshalFixed64Ptr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireFixed64 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 8 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56\n\t*f.toUint64Ptr() = &v\n\treturn b[8:], nil\n}\n\nfunc unmarshalFixed64Slice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w == WireBytes { // packed\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tres := b[x:]\n\t\tb = b[:x]\n\t\tfor len(b) > 0 {\n\t\t\tif len(b) < 8 {\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tv := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56\n\t\t\ts := f.toUint64Slice()\n\t\t\t*s = append(*s, v)\n\t\t\tb = b[8:]\n\t\t}\n\t\treturn res, nil\n\t}\n\tif w != WireFixed64 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 8 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56\n\ts := f.toUint64Slice()\n\t*s = append(*s, v)\n\treturn b[8:], nil\n}\n\nfunc unmarshalFixedS64Value(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireFixed64 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 8 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := int64(b[0]) | int64(b[1])<<8 | int64(b[2])<<16 | int64(b[3])<<24 | int64(b[4])<<32 | int64(b[5])<<40 | int64(b[6])<<48 | int64(b[7])<<56\n\t*f.toInt64() = v\n\treturn b[8:], nil\n}\n\nfunc unmarshalFixedS64Ptr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireFixed64 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 8 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := int64(b[0]) | int64(b[1])<<8 | int64(b[2])<<16 | int64(b[3])<<24 | int64(b[4])<<32 | int64(b[5])<<40 | int64(b[6])<<48 | int64(b[7])<<56\n\t*f.toInt64Ptr() = &v\n\treturn b[8:], nil\n}\n\nfunc unmarshalFixedS64Slice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w == WireBytes { // packed\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tres := b[x:]\n\t\tb = b[:x]\n\t\tfor len(b) > 0 {\n\t\t\tif len(b) < 8 {\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tv := int64(b[0]) | int64(b[1])<<8 | int64(b[2])<<16 | int64(b[3])<<24 | int64(b[4])<<32 | int64(b[5])<<40 | int64(b[6])<<48 | int64(b[7])<<56\n\t\t\ts := f.toInt64Slice()\n\t\t\t*s = append(*s, v)\n\t\t\tb = b[8:]\n\t\t}\n\t\treturn res, nil\n\t}\n\tif w != WireFixed64 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 8 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := int64(b[0]) | int64(b[1])<<8 | int64(b[2])<<16 | int64(b[3])<<24 | int64(b[4])<<32 | int64(b[5])<<40 | int64(b[6])<<48 | int64(b[7])<<56\n\ts := f.toInt64Slice()\n\t*s = append(*s, v)\n\treturn b[8:], nil\n}\n\nfunc unmarshalFixed32Value(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireFixed32 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 4 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24\n\t*f.toUint32() = v\n\treturn b[4:], nil\n}\n\nfunc unmarshalFixed32Ptr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireFixed32 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 4 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24\n\t*f.toUint32Ptr() = &v\n\treturn b[4:], nil\n}\n\nfunc unmarshalFixed32Slice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w == WireBytes { // packed\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tres := b[x:]\n\t\tb = b[:x]\n\t\tfor len(b) > 0 {\n\t\t\tif len(b) < 4 {\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tv := uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24\n\t\t\ts := f.toUint32Slice()\n\t\t\t*s = append(*s, v)\n\t\t\tb = b[4:]\n\t\t}\n\t\treturn res, nil\n\t}\n\tif w != WireFixed32 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 4 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24\n\ts := f.toUint32Slice()\n\t*s = append(*s, v)\n\treturn b[4:], nil\n}\n\nfunc unmarshalFixedS32Value(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireFixed32 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 4 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := int32(b[0]) | int32(b[1])<<8 | int32(b[2])<<16 | int32(b[3])<<24\n\t*f.toInt32() = v\n\treturn b[4:], nil\n}\n\nfunc unmarshalFixedS32Ptr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireFixed32 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 4 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := int32(b[0]) | int32(b[1])<<8 | int32(b[2])<<16 | int32(b[3])<<24\n\tf.setInt32Ptr(v)\n\treturn b[4:], nil\n}\n\nfunc unmarshalFixedS32Slice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w == WireBytes { // packed\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tres := b[x:]\n\t\tb = b[:x]\n\t\tfor len(b) > 0 {\n\t\t\tif len(b) < 4 {\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tv := int32(b[0]) | int32(b[1])<<8 | int32(b[2])<<16 | int32(b[3])<<24\n\t\t\tf.appendInt32Slice(v)\n\t\t\tb = b[4:]\n\t\t}\n\t\treturn res, nil\n\t}\n\tif w != WireFixed32 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 4 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := int32(b[0]) | int32(b[1])<<8 | int32(b[2])<<16 | int32(b[3])<<24\n\tf.appendInt32Slice(v)\n\treturn b[4:], nil\n}\n\nfunc unmarshalBoolValue(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\t// Note: any length varint is allowed, even though any sane\n\t// encoder will use one byte.\n\t// See https://github.com/golang/protobuf/issues/76\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\t// TODO: check if x>1? Tests seem to indicate no.\n\tv := x != 0\n\t*f.toBool() = v\n\treturn b[n:], nil\n}\n\nfunc unmarshalBoolPtr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := x != 0\n\t*f.toBoolPtr() = &v\n\treturn b[n:], nil\n}\n\nfunc unmarshalBoolSlice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w == WireBytes { // packed\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tres := b[x:]\n\t\tb = b[:x]\n\t\tfor len(b) > 0 {\n\t\t\tx, n = decodeVarint(b)\n\t\t\tif n == 0 {\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tv := x != 0\n\t\t\ts := f.toBoolSlice()\n\t\t\t*s = append(*s, v)\n\t\t\tb = b[n:]\n\t\t}\n\t\treturn res, nil\n\t}\n\tif w != WireVarint {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := x != 0\n\ts := f.toBoolSlice()\n\t*s = append(*s, v)\n\treturn b[n:], nil\n}\n\nfunc unmarshalFloat64Value(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireFixed64 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 8 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := math.Float64frombits(uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56)\n\t*f.toFloat64() = v\n\treturn b[8:], nil\n}\n\nfunc unmarshalFloat64Ptr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireFixed64 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 8 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := math.Float64frombits(uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56)\n\t*f.toFloat64Ptr() = &v\n\treturn b[8:], nil\n}\n\nfunc unmarshalFloat64Slice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w == WireBytes { // packed\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tres := b[x:]\n\t\tb = b[:x]\n\t\tfor len(b) > 0 {\n\t\t\tif len(b) < 8 {\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tv := math.Float64frombits(uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56)\n\t\t\ts := f.toFloat64Slice()\n\t\t\t*s = append(*s, v)\n\t\t\tb = b[8:]\n\t\t}\n\t\treturn res, nil\n\t}\n\tif w != WireFixed64 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 8 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := math.Float64frombits(uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56)\n\ts := f.toFloat64Slice()\n\t*s = append(*s, v)\n\treturn b[8:], nil\n}\n\nfunc unmarshalFloat32Value(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireFixed32 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 4 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := math.Float32frombits(uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24)\n\t*f.toFloat32() = v\n\treturn b[4:], nil\n}\n\nfunc unmarshalFloat32Ptr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireFixed32 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 4 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := math.Float32frombits(uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24)\n\t*f.toFloat32Ptr() = &v\n\treturn b[4:], nil\n}\n\nfunc unmarshalFloat32Slice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w == WireBytes { // packed\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tres := b[x:]\n\t\tb = b[:x]\n\t\tfor len(b) > 0 {\n\t\t\tif len(b) < 4 {\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tv := math.Float32frombits(uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24)\n\t\t\ts := f.toFloat32Slice()\n\t\t\t*s = append(*s, v)\n\t\t\tb = b[4:]\n\t\t}\n\t\treturn res, nil\n\t}\n\tif w != WireFixed32 {\n\t\treturn b, errInternalBadWireType\n\t}\n\tif len(b) < 4 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := math.Float32frombits(uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24)\n\ts := f.toFloat32Slice()\n\t*s = append(*s, v)\n\treturn b[4:], nil\n}\n\nfunc unmarshalStringValue(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireBytes {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tif x > uint64(len(b)) {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := string(b[:x])\n\t*f.toString() = v\n\treturn b[x:], nil\n}\n\nfunc unmarshalStringPtr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireBytes {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tif x > uint64(len(b)) {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := string(b[:x])\n\t*f.toStringPtr() = &v\n\treturn b[x:], nil\n}\n\nfunc unmarshalStringSlice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireBytes {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tif x > uint64(len(b)) {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := string(b[:x])\n\ts := f.toStringSlice()\n\t*s = append(*s, v)\n\treturn b[x:], nil\n}\n\nfunc unmarshalUTF8StringValue(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireBytes {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tif x > uint64(len(b)) {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := string(b[:x])\n\t*f.toString() = v\n\tif !utf8.ValidString(v) {\n\t\treturn b[x:], errInvalidUTF8\n\t}\n\treturn b[x:], nil\n}\n\nfunc unmarshalUTF8StringPtr(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireBytes {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tif x > uint64(len(b)) {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := string(b[:x])\n\t*f.toStringPtr() = &v\n\tif !utf8.ValidString(v) {\n\t\treturn b[x:], errInvalidUTF8\n\t}\n\treturn b[x:], nil\n}\n\nfunc unmarshalUTF8StringSlice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireBytes {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tif x > uint64(len(b)) {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := string(b[:x])\n\ts := f.toStringSlice()\n\t*s = append(*s, v)\n\tif !utf8.ValidString(v) {\n\t\treturn b[x:], errInvalidUTF8\n\t}\n\treturn b[x:], nil\n}\n\nvar emptyBuf [0]byte\n\nfunc unmarshalBytesValue(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireBytes {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tif x > uint64(len(b)) {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\t// The use of append here is a trick which avoids the zeroing\n\t// that would be required if we used a make/copy pair.\n\t// We append to emptyBuf instead of nil because we want\n\t// a non-nil result even when the length is 0.\n\tv := append(emptyBuf[:], b[:x]...)\n\t*f.toBytes() = v\n\treturn b[x:], nil\n}\n\nfunc unmarshalBytesSlice(b []byte, f pointer, w int) ([]byte, error) {\n\tif w != WireBytes {\n\t\treturn b, errInternalBadWireType\n\t}\n\tx, n := decodeVarint(b)\n\tif n == 0 {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tb = b[n:]\n\tif x > uint64(len(b)) {\n\t\treturn nil, io.ErrUnexpectedEOF\n\t}\n\tv := append(emptyBuf[:], b[:x]...)\n\ts := f.toBytesSlice()\n\t*s = append(*s, v)\n\treturn b[x:], nil\n}\n\nfunc makeUnmarshalMessagePtr(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn b, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\t// First read the message field to see if something is there.\n\t\t// The semantics of multiple submessages are weird.  Instead of\n\t\t// the last one winning (as it is for all other fields), multiple\n\t\t// submessages are merged.\n\t\tv := f.getPointer()\n\t\tif v.isNil() {\n\t\t\tv = valToPointer(reflect.New(sub.typ))\n\t\t\tf.setPointer(v)\n\t\t}\n\t\terr := sub.unmarshal(v, b[:x])\n\t\tif err != nil {\n\t\t\tif r, ok := err.(*RequiredNotSetError); ok {\n\t\t\t\tr.field = name + \".\" + r.field\n\t\t\t} else {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t\treturn b[x:], err\n\t}\n}\n\nfunc makeUnmarshalMessageSlicePtr(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn b, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tv := valToPointer(reflect.New(sub.typ))\n\t\terr := sub.unmarshal(v, b[:x])\n\t\tif err != nil {\n\t\t\tif r, ok := err.(*RequiredNotSetError); ok {\n\t\t\t\tr.field = name + \".\" + r.field\n\t\t\t} else {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t\tf.appendPointer(v)\n\t\treturn b[x:], err\n\t}\n}\n\nfunc makeUnmarshalGroupPtr(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireStartGroup {\n\t\t\treturn b, errInternalBadWireType\n\t\t}\n\t\tx, y := findEndGroup(b)\n\t\tif x < 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tv := f.getPointer()\n\t\tif v.isNil() {\n\t\t\tv = valToPointer(reflect.New(sub.typ))\n\t\t\tf.setPointer(v)\n\t\t}\n\t\terr := sub.unmarshal(v, b[:x])\n\t\tif err != nil {\n\t\t\tif r, ok := err.(*RequiredNotSetError); ok {\n\t\t\t\tr.field = name + \".\" + r.field\n\t\t\t} else {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t\treturn b[y:], err\n\t}\n}\n\nfunc makeUnmarshalGroupSlicePtr(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireStartGroup {\n\t\t\treturn b, errInternalBadWireType\n\t\t}\n\t\tx, y := findEndGroup(b)\n\t\tif x < 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tv := valToPointer(reflect.New(sub.typ))\n\t\terr := sub.unmarshal(v, b[:x])\n\t\tif err != nil {\n\t\t\tif r, ok := err.(*RequiredNotSetError); ok {\n\t\t\t\tr.field = name + \".\" + r.field\n\t\t\t} else {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t\tf.appendPointer(v)\n\t\treturn b[y:], err\n\t}\n}\n\nfunc makeUnmarshalMap(f *reflect.StructField) unmarshaler {\n\tt := f.Type\n\tkt := t.Key()\n\tvt := t.Elem()\n\ttagArray := strings.Split(f.Tag.Get(\"protobuf\"), \",\")\n\tvalTags := strings.Split(f.Tag.Get(\"protobuf_val\"), \",\")\n\tfor _, t := range tagArray {\n\t\tif strings.HasPrefix(t, \"customtype=\") {\n\t\t\tvalTags = append(valTags, t)\n\t\t}\n\t\tif t == \"stdtime\" {\n\t\t\tvalTags = append(valTags, t)\n\t\t}\n\t\tif t == \"stdduration\" {\n\t\t\tvalTags = append(valTags, t)\n\t\t}\n\t\tif t == \"wktptr\" {\n\t\t\tvalTags = append(valTags, t)\n\t\t}\n\t}\n\tunmarshalKey := typeUnmarshaler(kt, f.Tag.Get(\"protobuf_key\"))\n\tunmarshalVal := typeUnmarshaler(vt, strings.Join(valTags, \",\"))\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\t// The map entry is a submessage. Figure out how big it is.\n\t\tif w != WireBytes {\n\t\t\treturn nil, fmt.Errorf(\"proto: bad wiretype for map field: got %d want %d\", w, WireBytes)\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tr := b[x:] // unused data to return\n\t\tb = b[:x]  // data for map entry\n\n\t\t// Note: we could use #keys * #values ~= 200 functions\n\t\t// to do map decoding without reflection. Probably not worth it.\n\t\t// Maps will be somewhat slow. Oh well.\n\n\t\t// Read key and value from data.\n\t\tvar nerr nonFatal\n\t\tk := reflect.New(kt)\n\t\tv := reflect.New(vt)\n\t\tfor len(b) > 0 {\n\t\t\tx, n := decodeVarint(b)\n\t\t\tif n == 0 {\n\t\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\twire := int(x) & 7\n\t\t\tb = b[n:]\n\n\t\t\tvar err error\n\t\t\tswitch x >> 3 {\n\t\t\tcase 1:\n\t\t\t\tb, err = unmarshalKey(b, valToPointer(k), wire)\n\t\t\tcase 2:\n\t\t\t\tb, err = unmarshalVal(b, valToPointer(v), wire)\n\t\t\tdefault:\n\t\t\t\terr = errInternalBadWireType // skip unknown tag\n\t\t\t}\n\n\t\t\tif nerr.Merge(err) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif err != errInternalBadWireType {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\t// Skip past unknown fields.\n\t\t\tb, err = skipField(b, wire)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\n\t\t// Get map, allocate if needed.\n\t\tm := f.asPointerTo(t).Elem() // an addressable map[K]T\n\t\tif m.IsNil() {\n\t\t\tm.Set(reflect.MakeMap(t))\n\t\t}\n\n\t\t// Insert into map.\n\t\tm.SetMapIndex(k.Elem(), v.Elem())\n\n\t\treturn r, nerr.E\n\t}\n}\n\n// makeUnmarshalOneof makes an unmarshaler for oneof fields.\n// for:\n// message Msg {\n//   oneof F {\n//     int64 X = 1;\n//     float64 Y = 2;\n//   }\n// }\n// typ is the type of the concrete entry for a oneof case (e.g. Msg_X).\n// ityp is the interface type of the oneof field (e.g. isMsg_F).\n// unmarshal is the unmarshaler for the base type of the oneof case (e.g. int64).\n// Note that this function will be called once for each case in the oneof.\nfunc makeUnmarshalOneof(typ, ityp reflect.Type, unmarshal unmarshaler) unmarshaler {\n\tsf := typ.Field(0)\n\tfield0 := toField(&sf)\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\t// Allocate holder for value.\n\t\tv := reflect.New(typ)\n\n\t\t// Unmarshal data into holder.\n\t\t// We unmarshal into the first field of the holder object.\n\t\tvar err error\n\t\tvar nerr nonFatal\n\t\tb, err = unmarshal(b, valToPointer(v).offset(field0), w)\n\t\tif !nerr.Merge(err) {\n\t\t\treturn nil, err\n\t\t}\n\n\t\t// Write pointer to holder into target field.\n\t\tf.asPointerTo(ityp).Elem().Set(v)\n\n\t\treturn b, nerr.E\n\t}\n}\n\n// Error used by decode internally.\nvar errInternalBadWireType = errors.New(\"proto: internal error: bad wiretype\")\n\n// skipField skips past a field of type wire and returns the remaining bytes.\nfunc skipField(b []byte, wire int) ([]byte, error) {\n\tswitch wire {\n\tcase WireVarint:\n\t\t_, k := decodeVarint(b)\n\t\tif k == 0 {\n\t\t\treturn b, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[k:]\n\tcase WireFixed32:\n\t\tif len(b) < 4 {\n\t\t\treturn b, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[4:]\n\tcase WireFixed64:\n\t\tif len(b) < 8 {\n\t\t\treturn b, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[8:]\n\tcase WireBytes:\n\t\tm, k := decodeVarint(b)\n\t\tif k == 0 || uint64(len(b)-k) < m {\n\t\t\treturn b, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[uint64(k)+m:]\n\tcase WireStartGroup:\n\t\t_, i := findEndGroup(b)\n\t\tif i == -1 {\n\t\t\treturn b, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[i:]\n\tdefault:\n\t\treturn b, fmt.Errorf(\"proto: can't skip unknown wire type %d\", wire)\n\t}\n\treturn b, nil\n}\n\n// findEndGroup finds the index of the next EndGroup tag.\n// Groups may be nested, so the \"next\" EndGroup tag is the first\n// unpaired EndGroup.\n// findEndGroup returns the indexes of the start and end of the EndGroup tag.\n// Returns (-1,-1) if it can't find one.\nfunc findEndGroup(b []byte) (int, int) {\n\tdepth := 1\n\ti := 0\n\tfor {\n\t\tx, n := decodeVarint(b[i:])\n\t\tif n == 0 {\n\t\t\treturn -1, -1\n\t\t}\n\t\tj := i\n\t\ti += n\n\t\tswitch x & 7 {\n\t\tcase WireVarint:\n\t\t\t_, k := decodeVarint(b[i:])\n\t\t\tif k == 0 {\n\t\t\t\treturn -1, -1\n\t\t\t}\n\t\t\ti += k\n\t\tcase WireFixed32:\n\t\t\tif len(b)-4 < i {\n\t\t\t\treturn -1, -1\n\t\t\t}\n\t\t\ti += 4\n\t\tcase WireFixed64:\n\t\t\tif len(b)-8 < i {\n\t\t\t\treturn -1, -1\n\t\t\t}\n\t\t\ti += 8\n\t\tcase WireBytes:\n\t\t\tm, k := decodeVarint(b[i:])\n\t\t\tif k == 0 {\n\t\t\t\treturn -1, -1\n\t\t\t}\n\t\t\ti += k\n\t\t\tif uint64(len(b)-i) < m {\n\t\t\t\treturn -1, -1\n\t\t\t}\n\t\t\ti += int(m)\n\t\tcase WireStartGroup:\n\t\t\tdepth++\n\t\tcase WireEndGroup:\n\t\t\tdepth--\n\t\t\tif depth == 0 {\n\t\t\t\treturn j, i\n\t\t\t}\n\t\tdefault:\n\t\t\treturn -1, -1\n\t\t}\n\t}\n}\n\n// encodeVarint appends a varint-encoded integer to b and returns the result.\nfunc encodeVarint(b []byte, x uint64) []byte {\n\tfor x >= 1<<7 {\n\t\tb = append(b, byte(x&0x7f|0x80))\n\t\tx >>= 7\n\t}\n\treturn append(b, byte(x))\n}\n\n// decodeVarint reads a varint-encoded integer from b.\n// Returns the decoded integer and the number of bytes read.\n// If there is an error, it returns 0,0.\nfunc decodeVarint(b []byte) (uint64, int) {\n\tvar x, y uint64\n\tif len(b) == 0 {\n\t\tgoto bad\n\t}\n\tx = uint64(b[0])\n\tif x < 0x80 {\n\t\treturn x, 1\n\t}\n\tx -= 0x80\n\n\tif len(b) <= 1 {\n\t\tgoto bad\n\t}\n\ty = uint64(b[1])\n\tx += y << 7\n\tif y < 0x80 {\n\t\treturn x, 2\n\t}\n\tx -= 0x80 << 7\n\n\tif len(b) <= 2 {\n\t\tgoto bad\n\t}\n\ty = uint64(b[2])\n\tx += y << 14\n\tif y < 0x80 {\n\t\treturn x, 3\n\t}\n\tx -= 0x80 << 14\n\n\tif len(b) <= 3 {\n\t\tgoto bad\n\t}\n\ty = uint64(b[3])\n\tx += y << 21\n\tif y < 0x80 {\n\t\treturn x, 4\n\t}\n\tx -= 0x80 << 21\n\n\tif len(b) <= 4 {\n\t\tgoto bad\n\t}\n\ty = uint64(b[4])\n\tx += y << 28\n\tif y < 0x80 {\n\t\treturn x, 5\n\t}\n\tx -= 0x80 << 28\n\n\tif len(b) <= 5 {\n\t\tgoto bad\n\t}\n\ty = uint64(b[5])\n\tx += y << 35\n\tif y < 0x80 {\n\t\treturn x, 6\n\t}\n\tx -= 0x80 << 35\n\n\tif len(b) <= 6 {\n\t\tgoto bad\n\t}\n\ty = uint64(b[6])\n\tx += y << 42\n\tif y < 0x80 {\n\t\treturn x, 7\n\t}\n\tx -= 0x80 << 42\n\n\tif len(b) <= 7 {\n\t\tgoto bad\n\t}\n\ty = uint64(b[7])\n\tx += y << 49\n\tif y < 0x80 {\n\t\treturn x, 8\n\t}\n\tx -= 0x80 << 49\n\n\tif len(b) <= 8 {\n\t\tgoto bad\n\t}\n\ty = uint64(b[8])\n\tx += y << 56\n\tif y < 0x80 {\n\t\treturn x, 9\n\t}\n\tx -= 0x80 << 56\n\n\tif len(b) <= 9 {\n\t\tgoto bad\n\t}\n\ty = uint64(b[9])\n\tx += y << 63\n\tif y < 2 {\n\t\treturn x, 10\n\t}\n\nbad:\n\treturn 0, 0\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/table_unmarshal_gogo.go",
    "content": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2018, The GoGo Authors. All rights reserved.\n// http://github.com/gogo/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\nimport (\n\t\"io\"\n\t\"reflect\"\n)\n\nfunc makeUnmarshalMessage(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\t// First read the message field to see if something is there.\n\t\t// The semantics of multiple submessages are weird.  Instead of\n\t\t// the last one winning (as it is for all other fields), multiple\n\t\t// submessages are merged.\n\t\tv := f // gogo: changed from v := f.getPointer()\n\t\tif v.isNil() {\n\t\t\tv = valToPointer(reflect.New(sub.typ))\n\t\t\tf.setPointer(v)\n\t\t}\n\t\terr := sub.unmarshal(v, b[:x])\n\t\tif err != nil {\n\t\t\tif r, ok := err.(*RequiredNotSetError); ok {\n\t\t\t\tr.field = name + \".\" + r.field\n\t\t\t} else {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t\treturn b[x:], err\n\t}\n}\n\nfunc makeUnmarshalMessageSlice(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tv := valToPointer(reflect.New(sub.typ))\n\t\terr := sub.unmarshal(v, b[:x])\n\t\tif err != nil {\n\t\t\tif r, ok := err.(*RequiredNotSetError); ok {\n\t\t\t\tr.field = name + \".\" + r.field\n\t\t\t} else {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t\tf.appendRef(v, sub.typ) // gogo: changed from f.appendPointer(v)\n\t\treturn b[x:], err\n\t}\n}\n\nfunc makeUnmarshalCustomPtr(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\n\t\ts := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem()\n\t\ts.Set(reflect.New(sub.typ))\n\t\tm := s.Interface().(custom)\n\t\tif err := m.Unmarshal(b[:x]); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeUnmarshalCustomSlice(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := reflect.New(sub.typ)\n\t\tc := m.Interface().(custom)\n\t\tif err := c.Unmarshal(b[:x]); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tv := valToPointer(m)\n\t\tf.appendRef(v, sub.typ)\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeUnmarshalCustom(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\n\t\tm := f.asPointerTo(sub.typ).Interface().(custom)\n\t\tif err := m.Unmarshal(b[:x]); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeUnmarshalTime(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &timestamp{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tt, err := timestampFromProto(m)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(sub.typ).Elem()\n\t\ts.Set(reflect.ValueOf(t))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeUnmarshalTimePtr(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &timestamp{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tt, err := timestampFromProto(m)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem()\n\t\ts.Set(reflect.ValueOf(&t))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeUnmarshalTimePtrSlice(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &timestamp{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tt, err := timestampFromProto(m)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(reflect.PtrTo(sub.typ))\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(&t))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeUnmarshalTimeSlice(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &timestamp{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tt, err := timestampFromProto(m)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(sub.typ)\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(t))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeUnmarshalDurationPtr(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &duration{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\td, err := durationFromProto(m)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem()\n\t\ts.Set(reflect.ValueOf(&d))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeUnmarshalDuration(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &duration{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\td, err := durationFromProto(m)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(sub.typ).Elem()\n\t\ts.Set(reflect.ValueOf(d))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeUnmarshalDurationPtrSlice(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &duration{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\td, err := durationFromProto(m)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(reflect.PtrTo(sub.typ))\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(&d))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeUnmarshalDurationSlice(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &duration{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\td, err := durationFromProto(m)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(sub.typ)\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(d))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/text.go",
    "content": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2013, The GoGo Authors. All rights reserved.\n// http://github.com/gogo/protobuf\n//\n// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2010 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\n// Functions for writing the text protocol buffer format.\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"encoding\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"log\"\n\t\"math\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n)\n\nvar (\n\tnewline         = []byte(\"\\n\")\n\tspaces          = []byte(\"                                        \")\n\tendBraceNewline = []byte(\"}\\n\")\n\tbackslashN      = []byte{'\\\\', 'n'}\n\tbackslashR      = []byte{'\\\\', 'r'}\n\tbackslashT      = []byte{'\\\\', 't'}\n\tbackslashDQ     = []byte{'\\\\', '\"'}\n\tbackslashBS     = []byte{'\\\\', '\\\\'}\n\tposInf          = []byte(\"inf\")\n\tnegInf          = []byte(\"-inf\")\n\tnan             = []byte(\"nan\")\n)\n\ntype writer interface {\n\tio.Writer\n\tWriteByte(byte) error\n}\n\n// textWriter is an io.Writer that tracks its indentation level.\ntype textWriter struct {\n\tind      int\n\tcomplete bool // if the current position is a complete line\n\tcompact  bool // whether to write out as a one-liner\n\tw        writer\n}\n\nfunc (w *textWriter) WriteString(s string) (n int, err error) {\n\tif !strings.Contains(s, \"\\n\") {\n\t\tif !w.compact && w.complete {\n\t\t\tw.writeIndent()\n\t\t}\n\t\tw.complete = false\n\t\treturn io.WriteString(w.w, s)\n\t}\n\t// WriteString is typically called without newlines, so this\n\t// codepath and its copy are rare.  We copy to avoid\n\t// duplicating all of Write's logic here.\n\treturn w.Write([]byte(s))\n}\n\nfunc (w *textWriter) Write(p []byte) (n int, err error) {\n\tnewlines := bytes.Count(p, newline)\n\tif newlines == 0 {\n\t\tif !w.compact && w.complete {\n\t\t\tw.writeIndent()\n\t\t}\n\t\tn, err = w.w.Write(p)\n\t\tw.complete = false\n\t\treturn n, err\n\t}\n\n\tfrags := bytes.SplitN(p, newline, newlines+1)\n\tif w.compact {\n\t\tfor i, frag := range frags {\n\t\t\tif i > 0 {\n\t\t\t\tif err := w.w.WriteByte(' '); err != nil {\n\t\t\t\t\treturn n, err\n\t\t\t\t}\n\t\t\t\tn++\n\t\t\t}\n\t\t\tnn, err := w.w.Write(frag)\n\t\t\tn += nn\n\t\t\tif err != nil {\n\t\t\t\treturn n, err\n\t\t\t}\n\t\t}\n\t\treturn n, nil\n\t}\n\n\tfor i, frag := range frags {\n\t\tif w.complete {\n\t\t\tw.writeIndent()\n\t\t}\n\t\tnn, err := w.w.Write(frag)\n\t\tn += nn\n\t\tif err != nil {\n\t\t\treturn n, err\n\t\t}\n\t\tif i+1 < len(frags) {\n\t\t\tif err := w.w.WriteByte('\\n'); err != nil {\n\t\t\t\treturn n, err\n\t\t\t}\n\t\t\tn++\n\t\t}\n\t}\n\tw.complete = len(frags[len(frags)-1]) == 0\n\treturn n, nil\n}\n\nfunc (w *textWriter) WriteByte(c byte) error {\n\tif w.compact && c == '\\n' {\n\t\tc = ' '\n\t}\n\tif !w.compact && w.complete {\n\t\tw.writeIndent()\n\t}\n\terr := w.w.WriteByte(c)\n\tw.complete = c == '\\n'\n\treturn err\n}\n\nfunc (w *textWriter) indent() { w.ind++ }\n\nfunc (w *textWriter) unindent() {\n\tif w.ind == 0 {\n\t\tlog.Print(\"proto: textWriter unindented too far\")\n\t\treturn\n\t}\n\tw.ind--\n}\n\nfunc writeName(w *textWriter, props *Properties) error {\n\tif _, err := w.WriteString(props.OrigName); err != nil {\n\t\treturn err\n\t}\n\tif props.Wire != \"group\" {\n\t\treturn w.WriteByte(':')\n\t}\n\treturn nil\n}\n\nfunc requiresQuotes(u string) bool {\n\t// When type URL contains any characters except [0-9A-Za-z./\\-]*, it must be quoted.\n\tfor _, ch := range u {\n\t\tswitch {\n\t\tcase ch == '.' || ch == '/' || ch == '_':\n\t\t\tcontinue\n\t\tcase '0' <= ch && ch <= '9':\n\t\t\tcontinue\n\t\tcase 'A' <= ch && ch <= 'Z':\n\t\t\tcontinue\n\t\tcase 'a' <= ch && ch <= 'z':\n\t\t\tcontinue\n\t\tdefault:\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// isAny reports whether sv is a google.protobuf.Any message\nfunc isAny(sv reflect.Value) bool {\n\ttype wkt interface {\n\t\tXXX_WellKnownType() string\n\t}\n\tt, ok := sv.Addr().Interface().(wkt)\n\treturn ok && t.XXX_WellKnownType() == \"Any\"\n}\n\n// writeProto3Any writes an expanded google.protobuf.Any message.\n//\n// It returns (false, nil) if sv value can't be unmarshaled (e.g. because\n// required messages are not linked in).\n//\n// It returns (true, error) when sv was written in expanded format or an error\n// was encountered.\nfunc (tm *TextMarshaler) writeProto3Any(w *textWriter, sv reflect.Value) (bool, error) {\n\tturl := sv.FieldByName(\"TypeUrl\")\n\tval := sv.FieldByName(\"Value\")\n\tif !turl.IsValid() || !val.IsValid() {\n\t\treturn true, errors.New(\"proto: invalid google.protobuf.Any message\")\n\t}\n\n\tb, ok := val.Interface().([]byte)\n\tif !ok {\n\t\treturn true, errors.New(\"proto: invalid google.protobuf.Any message\")\n\t}\n\n\tparts := strings.Split(turl.String(), \"/\")\n\tmt := MessageType(parts[len(parts)-1])\n\tif mt == nil {\n\t\treturn false, nil\n\t}\n\tm := reflect.New(mt.Elem())\n\tif err := Unmarshal(b, m.Interface().(Message)); err != nil {\n\t\treturn false, nil\n\t}\n\tw.Write([]byte(\"[\"))\n\tu := turl.String()\n\tif requiresQuotes(u) {\n\t\twriteString(w, u)\n\t} else {\n\t\tw.Write([]byte(u))\n\t}\n\tif w.compact {\n\t\tw.Write([]byte(\"]:<\"))\n\t} else {\n\t\tw.Write([]byte(\"]: <\\n\"))\n\t\tw.ind++\n\t}\n\tif err := tm.writeStruct(w, m.Elem()); err != nil {\n\t\treturn true, err\n\t}\n\tif w.compact {\n\t\tw.Write([]byte(\"> \"))\n\t} else {\n\t\tw.ind--\n\t\tw.Write([]byte(\">\\n\"))\n\t}\n\treturn true, nil\n}\n\nfunc (tm *TextMarshaler) writeStruct(w *textWriter, sv reflect.Value) error {\n\tif tm.ExpandAny && isAny(sv) {\n\t\tif canExpand, err := tm.writeProto3Any(w, sv); canExpand {\n\t\t\treturn err\n\t\t}\n\t}\n\tst := sv.Type()\n\tsprops := GetProperties(st)\n\tfor i := 0; i < sv.NumField(); i++ {\n\t\tfv := sv.Field(i)\n\t\tprops := sprops.Prop[i]\n\t\tname := st.Field(i).Name\n\n\t\tif name == \"XXX_NoUnkeyedLiteral\" {\n\t\t\tcontinue\n\t\t}\n\n\t\tif strings.HasPrefix(name, \"XXX_\") {\n\t\t\t// There are two XXX_ fields:\n\t\t\t//   XXX_unrecognized []byte\n\t\t\t//   XXX_extensions   map[int32]proto.Extension\n\t\t\t// The first is handled here;\n\t\t\t// the second is handled at the bottom of this function.\n\t\t\tif name == \"XXX_unrecognized\" && !fv.IsNil() {\n\t\t\t\tif err := writeUnknownStruct(w, fv.Interface().([]byte)); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif fv.Kind() == reflect.Ptr && fv.IsNil() {\n\t\t\t// Field not filled in. This could be an optional field or\n\t\t\t// a required field that wasn't filled in. Either way, there\n\t\t\t// isn't anything we can show for it.\n\t\t\tcontinue\n\t\t}\n\t\tif fv.Kind() == reflect.Slice && fv.IsNil() {\n\t\t\t// Repeated field that is empty, or a bytes field that is unused.\n\t\t\tcontinue\n\t\t}\n\n\t\tif props.Repeated && fv.Kind() == reflect.Slice {\n\t\t\t// Repeated field.\n\t\t\tfor j := 0; j < fv.Len(); j++ {\n\t\t\t\tif err := writeName(w, props); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tif !w.compact {\n\t\t\t\t\tif err := w.WriteByte(' '); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tv := fv.Index(j)\n\t\t\t\tif v.Kind() == reflect.Ptr && v.IsNil() {\n\t\t\t\t\t// A nil message in a repeated field is not valid,\n\t\t\t\t\t// but we can handle that more gracefully than panicking.\n\t\t\t\t\tif _, err := w.Write([]byte(\"<nil>\\n\")); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif len(props.Enum) > 0 {\n\t\t\t\t\tif err := tm.writeEnum(w, v, props); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t} else if err := tm.writeAny(w, v, props); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tif err := w.WriteByte('\\n'); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif fv.Kind() == reflect.Map {\n\t\t\t// Map fields are rendered as a repeated struct with key/value fields.\n\t\t\tkeys := fv.MapKeys()\n\t\t\tsort.Sort(mapKeys(keys))\n\t\t\tfor _, key := range keys {\n\t\t\t\tval := fv.MapIndex(key)\n\t\t\t\tif err := writeName(w, props); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tif !w.compact {\n\t\t\t\t\tif err := w.WriteByte(' '); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// open struct\n\t\t\t\tif err := w.WriteByte('<'); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tif !w.compact {\n\t\t\t\t\tif err := w.WriteByte('\\n'); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tw.indent()\n\t\t\t\t// key\n\t\t\t\tif _, err := w.WriteString(\"key:\"); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tif !w.compact {\n\t\t\t\t\tif err := w.WriteByte(' '); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif err := tm.writeAny(w, key, props.MapKeyProp); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tif err := w.WriteByte('\\n'); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\t// nil values aren't legal, but we can avoid panicking because of them.\n\t\t\t\tif val.Kind() != reflect.Ptr || !val.IsNil() {\n\t\t\t\t\t// value\n\t\t\t\t\tif _, err := w.WriteString(\"value:\"); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif !w.compact {\n\t\t\t\t\t\tif err := w.WriteByte(' '); err != nil {\n\t\t\t\t\t\t\treturn err\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif err := tm.writeAny(w, val, props.MapValProp); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif err := w.WriteByte('\\n'); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// close struct\n\t\t\t\tw.unindent()\n\t\t\t\tif err := w.WriteByte('>'); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tif err := w.WriteByte('\\n'); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif props.proto3 && fv.Kind() == reflect.Slice && fv.Len() == 0 {\n\t\t\t// empty bytes field\n\t\t\tcontinue\n\t\t}\n\t\tif props.proto3 && fv.Kind() != reflect.Ptr && fv.Kind() != reflect.Slice {\n\t\t\t// proto3 non-repeated scalar field; skip if zero value\n\t\t\tif isProto3Zero(fv) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\tif fv.Kind() == reflect.Interface {\n\t\t\t// Check if it is a oneof.\n\t\t\tif st.Field(i).Tag.Get(\"protobuf_oneof\") != \"\" {\n\t\t\t\t// fv is nil, or holds a pointer to generated struct.\n\t\t\t\t// That generated struct has exactly one field,\n\t\t\t\t// which has a protobuf struct tag.\n\t\t\t\tif fv.IsNil() {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tinner := fv.Elem().Elem() // interface -> *T -> T\n\t\t\t\ttag := inner.Type().Field(0).Tag.Get(\"protobuf\")\n\t\t\t\tprops = new(Properties) // Overwrite the outer props var, but not its pointee.\n\t\t\t\tprops.Parse(tag)\n\t\t\t\t// Write the value in the oneof, not the oneof itself.\n\t\t\t\tfv = inner.Field(0)\n\n\t\t\t\t// Special case to cope with malformed messages gracefully:\n\t\t\t\t// If the value in the oneof is a nil pointer, don't panic\n\t\t\t\t// in writeAny.\n\t\t\t\tif fv.Kind() == reflect.Ptr && fv.IsNil() {\n\t\t\t\t\t// Use errors.New so writeAny won't render quotes.\n\t\t\t\t\tmsg := errors.New(\"/* nil */\")\n\t\t\t\t\tfv = reflect.ValueOf(&msg).Elem()\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif err := writeName(w, props); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif !w.compact {\n\t\t\tif err := w.WriteByte(' '); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\tif len(props.Enum) > 0 {\n\t\t\tif err := tm.writeEnum(w, fv, props); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t} else if err := tm.writeAny(w, fv, props); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif err := w.WriteByte('\\n'); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\t// Extensions (the XXX_extensions field).\n\tpv := sv\n\tif pv.CanAddr() {\n\t\tpv = sv.Addr()\n\t} else {\n\t\tpv = reflect.New(sv.Type())\n\t\tpv.Elem().Set(sv)\n\t}\n\tif _, err := extendable(pv.Interface()); err == nil {\n\t\tif err := tm.writeExtensions(w, pv); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn nil\n}\n\nvar textMarshalerType = reflect.TypeOf((*encoding.TextMarshaler)(nil)).Elem()\n\n// writeAny writes an arbitrary field.\nfunc (tm *TextMarshaler) writeAny(w *textWriter, v reflect.Value, props *Properties) error {\n\tv = reflect.Indirect(v)\n\n\tif props != nil {\n\t\tif len(props.CustomType) > 0 {\n\t\t\tcustom, ok := v.Interface().(Marshaler)\n\t\t\tif ok {\n\t\t\t\tdata, err := custom.Marshal()\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tif err := writeString(w, string(data)); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\treturn nil\n\t\t\t}\n\t\t} else if len(props.CastType) > 0 {\n\t\t\tif _, ok := v.Interface().(interface {\n\t\t\t\tString() string\n\t\t\t}); ok {\n\t\t\t\tswitch v.Kind() {\n\t\t\t\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,\n\t\t\t\t\treflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:\n\t\t\t\t\t_, err := fmt.Fprintf(w, \"%d\", v.Interface())\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t} else if props.StdTime {\n\t\t\tt, ok := v.Interface().(time.Time)\n\t\t\tif !ok {\n\t\t\t\treturn fmt.Errorf(\"stdtime is not time.Time, but %T\", v.Interface())\n\t\t\t}\n\t\t\ttproto, err := timestampProto(t)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tpropsCopy := *props // Make a copy so that this is goroutine-safe\n\t\t\tpropsCopy.StdTime = false\n\t\t\terr = tm.writeAny(w, reflect.ValueOf(tproto), &propsCopy)\n\t\t\treturn err\n\t\t} else if props.StdDuration {\n\t\t\td, ok := v.Interface().(time.Duration)\n\t\t\tif !ok {\n\t\t\t\treturn fmt.Errorf(\"stdtime is not time.Duration, but %T\", v.Interface())\n\t\t\t}\n\t\t\tdproto := durationProto(d)\n\t\t\tpropsCopy := *props // Make a copy so that this is goroutine-safe\n\t\t\tpropsCopy.StdDuration = false\n\t\t\terr := tm.writeAny(w, reflect.ValueOf(dproto), &propsCopy)\n\t\t\treturn err\n\t\t}\n\t}\n\n\t// Floats have special cases.\n\tif v.Kind() == reflect.Float32 || v.Kind() == reflect.Float64 {\n\t\tx := v.Float()\n\t\tvar b []byte\n\t\tswitch {\n\t\tcase math.IsInf(x, 1):\n\t\t\tb = posInf\n\t\tcase math.IsInf(x, -1):\n\t\t\tb = negInf\n\t\tcase math.IsNaN(x):\n\t\t\tb = nan\n\t\t}\n\t\tif b != nil {\n\t\t\t_, err := w.Write(b)\n\t\t\treturn err\n\t\t}\n\t\t// Other values are handled below.\n\t}\n\n\t// We don't attempt to serialise every possible value type; only those\n\t// that can occur in protocol buffers.\n\tswitch v.Kind() {\n\tcase reflect.Slice:\n\t\t// Should only be a []byte; repeated fields are handled in writeStruct.\n\t\tif err := writeString(w, string(v.Bytes())); err != nil {\n\t\t\treturn err\n\t\t}\n\tcase reflect.String:\n\t\tif err := writeString(w, v.String()); err != nil {\n\t\t\treturn err\n\t\t}\n\tcase reflect.Struct:\n\t\t// Required/optional group/message.\n\t\tvar bra, ket byte = '<', '>'\n\t\tif props != nil && props.Wire == \"group\" {\n\t\t\tbra, ket = '{', '}'\n\t\t}\n\t\tif err := w.WriteByte(bra); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif !w.compact {\n\t\t\tif err := w.WriteByte('\\n'); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tw.indent()\n\t\tif v.CanAddr() {\n\t\t\t// Calling v.Interface on a struct causes the reflect package to\n\t\t\t// copy the entire struct. This is racy with the new Marshaler\n\t\t\t// since we atomically update the XXX_sizecache.\n\t\t\t//\n\t\t\t// Thus, we retrieve a pointer to the struct if possible to avoid\n\t\t\t// a race since v.Interface on the pointer doesn't copy the struct.\n\t\t\t//\n\t\t\t// If v is not addressable, then we are not worried about a race\n\t\t\t// since it implies that the binary Marshaler cannot possibly be\n\t\t\t// mutating this value.\n\t\t\tv = v.Addr()\n\t\t}\n\t\tif v.Type().Implements(textMarshalerType) {\n\t\t\ttext, err := v.Interface().(encoding.TextMarshaler).MarshalText()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif _, err = w.Write(text); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t} else {\n\t\t\tif v.Kind() == reflect.Ptr {\n\t\t\t\tv = v.Elem()\n\t\t\t}\n\t\t\tif err := tm.writeStruct(w, v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tw.unindent()\n\t\tif err := w.WriteByte(ket); err != nil {\n\t\t\treturn err\n\t\t}\n\tdefault:\n\t\t_, err := fmt.Fprint(w, v.Interface())\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// equivalent to C's isprint.\nfunc isprint(c byte) bool {\n\treturn c >= 0x20 && c < 0x7f\n}\n\n// writeString writes a string in the protocol buffer text format.\n// It is similar to strconv.Quote except we don't use Go escape sequences,\n// we treat the string as a byte sequence, and we use octal escapes.\n// These differences are to maintain interoperability with the other\n// languages' implementations of the text format.\nfunc writeString(w *textWriter, s string) error {\n\t// use WriteByte here to get any needed indent\n\tif err := w.WriteByte('\"'); err != nil {\n\t\treturn err\n\t}\n\t// Loop over the bytes, not the runes.\n\tfor i := 0; i < len(s); i++ {\n\t\tvar err error\n\t\t// Divergence from C++: we don't escape apostrophes.\n\t\t// There's no need to escape them, and the C++ parser\n\t\t// copes with a naked apostrophe.\n\t\tswitch c := s[i]; c {\n\t\tcase '\\n':\n\t\t\t_, err = w.w.Write(backslashN)\n\t\tcase '\\r':\n\t\t\t_, err = w.w.Write(backslashR)\n\t\tcase '\\t':\n\t\t\t_, err = w.w.Write(backslashT)\n\t\tcase '\"':\n\t\t\t_, err = w.w.Write(backslashDQ)\n\t\tcase '\\\\':\n\t\t\t_, err = w.w.Write(backslashBS)\n\t\tdefault:\n\t\t\tif isprint(c) {\n\t\t\t\terr = w.w.WriteByte(c)\n\t\t\t} else {\n\t\t\t\t_, err = fmt.Fprintf(w.w, \"\\\\%03o\", c)\n\t\t\t}\n\t\t}\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn w.WriteByte('\"')\n}\n\nfunc writeUnknownStruct(w *textWriter, data []byte) (err error) {\n\tif !w.compact {\n\t\tif _, err := fmt.Fprintf(w, \"/* %d unknown bytes */\\n\", len(data)); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tb := NewBuffer(data)\n\tfor b.index < len(b.buf) {\n\t\tx, err := b.DecodeVarint()\n\t\tif err != nil {\n\t\t\t_, ferr := fmt.Fprintf(w, \"/* %v */\\n\", err)\n\t\t\treturn ferr\n\t\t}\n\t\twire, tag := x&7, x>>3\n\t\tif wire == WireEndGroup {\n\t\t\tw.unindent()\n\t\t\tif _, werr := w.Write(endBraceNewline); werr != nil {\n\t\t\t\treturn werr\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif _, ferr := fmt.Fprint(w, tag); ferr != nil {\n\t\t\treturn ferr\n\t\t}\n\t\tif wire != WireStartGroup {\n\t\t\tif err = w.WriteByte(':'); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif !w.compact || wire == WireStartGroup {\n\t\t\tif err = w.WriteByte(' '); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tswitch wire {\n\t\tcase WireBytes:\n\t\t\tbuf, e := b.DecodeRawBytes(false)\n\t\t\tif e == nil {\n\t\t\t\t_, err = fmt.Fprintf(w, \"%q\", buf)\n\t\t\t} else {\n\t\t\t\t_, err = fmt.Fprintf(w, \"/* %v */\", e)\n\t\t\t}\n\t\tcase WireFixed32:\n\t\t\tx, err = b.DecodeFixed32()\n\t\t\terr = writeUnknownInt(w, x, err)\n\t\tcase WireFixed64:\n\t\t\tx, err = b.DecodeFixed64()\n\t\t\terr = writeUnknownInt(w, x, err)\n\t\tcase WireStartGroup:\n\t\t\terr = w.WriteByte('{')\n\t\t\tw.indent()\n\t\tcase WireVarint:\n\t\t\tx, err = b.DecodeVarint()\n\t\t\terr = writeUnknownInt(w, x, err)\n\t\tdefault:\n\t\t\t_, err = fmt.Fprintf(w, \"/* unknown wire type %d */\", wire)\n\t\t}\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := w.WriteByte('\\n'); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc writeUnknownInt(w *textWriter, x uint64, err error) error {\n\tif err == nil {\n\t\t_, err = fmt.Fprint(w, x)\n\t} else {\n\t\t_, err = fmt.Fprintf(w, \"/* %v */\", err)\n\t}\n\treturn err\n}\n\ntype int32Slice []int32\n\nfunc (s int32Slice) Len() int           { return len(s) }\nfunc (s int32Slice) Less(i, j int) bool { return s[i] < s[j] }\nfunc (s int32Slice) Swap(i, j int)      { s[i], s[j] = s[j], s[i] }\n\n// writeExtensions writes all the extensions in pv.\n// pv is assumed to be a pointer to a protocol message struct that is extendable.\nfunc (tm *TextMarshaler) writeExtensions(w *textWriter, pv reflect.Value) error {\n\temap := extensionMaps[pv.Type().Elem()]\n\te := pv.Interface().(Message)\n\n\tvar m map[int32]Extension\n\tvar mu sync.Locker\n\tif em, ok := e.(extensionsBytes); ok {\n\t\teb := em.GetExtensions()\n\t\tvar err error\n\t\tm, err = BytesToExtensionsMap(*eb)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmu = notLocker{}\n\t} else if _, ok := e.(extendableProto); ok {\n\t\tep, _ := extendable(e)\n\t\tm, mu = ep.extensionsRead()\n\t\tif m == nil {\n\t\t\treturn nil\n\t\t}\n\t}\n\n\t// Order the extensions by ID.\n\t// This isn't strictly necessary, but it will give us\n\t// canonical output, which will also make testing easier.\n\n\tmu.Lock()\n\tids := make([]int32, 0, len(m))\n\tfor id := range m {\n\t\tids = append(ids, id)\n\t}\n\tsort.Sort(int32Slice(ids))\n\tmu.Unlock()\n\n\tfor _, extNum := range ids {\n\t\text := m[extNum]\n\t\tvar desc *ExtensionDesc\n\t\tif emap != nil {\n\t\t\tdesc = emap[extNum]\n\t\t}\n\t\tif desc == nil {\n\t\t\t// Unknown extension.\n\t\t\tif err := writeUnknownStruct(w, ext.enc); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\tpb, err := GetExtension(e, desc)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"failed getting extension: %v\", err)\n\t\t}\n\n\t\t// Repeated extensions will appear as a slice.\n\t\tif !desc.repeated() {\n\t\t\tif err := tm.writeExtension(w, desc.Name, pb); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t} else {\n\t\t\tv := reflect.ValueOf(pb)\n\t\t\tfor i := 0; i < v.Len(); i++ {\n\t\t\t\tif err := tm.writeExtension(w, desc.Name, v.Index(i).Interface()); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (tm *TextMarshaler) writeExtension(w *textWriter, name string, pb interface{}) error {\n\tif _, err := fmt.Fprintf(w, \"[%s]:\", name); err != nil {\n\t\treturn err\n\t}\n\tif !w.compact {\n\t\tif err := w.WriteByte(' '); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := tm.writeAny(w, reflect.ValueOf(pb), nil); err != nil {\n\t\treturn err\n\t}\n\tif err := w.WriteByte('\\n'); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc (w *textWriter) writeIndent() {\n\tif !w.complete {\n\t\treturn\n\t}\n\tremain := w.ind * 2\n\tfor remain > 0 {\n\t\tn := remain\n\t\tif n > len(spaces) {\n\t\t\tn = len(spaces)\n\t\t}\n\t\tw.w.Write(spaces[:n])\n\t\tremain -= n\n\t}\n\tw.complete = false\n}\n\n// TextMarshaler is a configurable text format marshaler.\ntype TextMarshaler struct {\n\tCompact   bool // use compact text format (one line).\n\tExpandAny bool // expand google.protobuf.Any messages of known types\n}\n\n// Marshal writes a given protocol buffer in text format.\n// The only errors returned are from w.\nfunc (tm *TextMarshaler) Marshal(w io.Writer, pb Message) error {\n\tval := reflect.ValueOf(pb)\n\tif pb == nil || val.IsNil() {\n\t\tw.Write([]byte(\"<nil>\"))\n\t\treturn nil\n\t}\n\tvar bw *bufio.Writer\n\tww, ok := w.(writer)\n\tif !ok {\n\t\tbw = bufio.NewWriter(w)\n\t\tww = bw\n\t}\n\taw := &textWriter{\n\t\tw:        ww,\n\t\tcomplete: true,\n\t\tcompact:  tm.Compact,\n\t}\n\n\tif etm, ok := pb.(encoding.TextMarshaler); ok {\n\t\ttext, err := etm.MarshalText()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif _, err = aw.Write(text); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif bw != nil {\n\t\t\treturn bw.Flush()\n\t\t}\n\t\treturn nil\n\t}\n\t// Dereference the received pointer so we don't have outer < and >.\n\tv := reflect.Indirect(val)\n\tif err := tm.writeStruct(aw, v); err != nil {\n\t\treturn err\n\t}\n\tif bw != nil {\n\t\treturn bw.Flush()\n\t}\n\treturn nil\n}\n\n// Text is the same as Marshal, but returns the string directly.\nfunc (tm *TextMarshaler) Text(pb Message) string {\n\tvar buf bytes.Buffer\n\ttm.Marshal(&buf, pb)\n\treturn buf.String()\n}\n\nvar (\n\tdefaultTextMarshaler = TextMarshaler{}\n\tcompactTextMarshaler = TextMarshaler{Compact: true}\n)\n\n// TODO: consider removing some of the Marshal functions below.\n\n// MarshalText writes a given protocol buffer in text format.\n// The only errors returned are from w.\nfunc MarshalText(w io.Writer, pb Message) error { return defaultTextMarshaler.Marshal(w, pb) }\n\n// MarshalTextString is the same as MarshalText, but returns the string directly.\nfunc MarshalTextString(pb Message) string { return defaultTextMarshaler.Text(pb) }\n\n// CompactText writes a given protocol buffer in compact text format (one line).\nfunc CompactText(w io.Writer, pb Message) error { return compactTextMarshaler.Marshal(w, pb) }\n\n// CompactTextString is the same as CompactText, but returns the string directly.\nfunc CompactTextString(pb Message) string { return compactTextMarshaler.Text(pb) }\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/text_gogo.go",
    "content": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2013, The GoGo Authors. All rights reserved.\n// http://github.com/gogo/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n)\n\nfunc (tm *TextMarshaler) writeEnum(w *textWriter, v reflect.Value, props *Properties) error {\n\tm, ok := enumStringMaps[props.Enum]\n\tif !ok {\n\t\tif err := tm.writeAny(w, v, props); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tkey := int32(0)\n\tif v.Kind() == reflect.Ptr {\n\t\tkey = int32(v.Elem().Int())\n\t} else {\n\t\tkey = int32(v.Int())\n\t}\n\ts, ok := m[key]\n\tif !ok {\n\t\tif err := tm.writeAny(w, v, props); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\t_, err := fmt.Fprint(w, s)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/text_parser.go",
    "content": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2013, The GoGo Authors. All rights reserved.\n// http://github.com/gogo/protobuf\n//\n// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2010 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\n// Functions for parsing the Text protocol buffer format.\n// TODO: message sets.\n\nimport (\n\t\"encoding\"\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\t\"unicode/utf8\"\n)\n\n// Error string emitted when deserializing Any and fields are already set\nconst anyRepeatedlyUnpacked = \"Any message unpacked multiple times, or %q already set\"\n\ntype ParseError struct {\n\tMessage string\n\tLine    int // 1-based line number\n\tOffset  int // 0-based byte offset from start of input\n}\n\nfunc (p *ParseError) Error() string {\n\tif p.Line == 1 {\n\t\t// show offset only for first line\n\t\treturn fmt.Sprintf(\"line 1.%d: %v\", p.Offset, p.Message)\n\t}\n\treturn fmt.Sprintf(\"line %d: %v\", p.Line, p.Message)\n}\n\ntype token struct {\n\tvalue    string\n\terr      *ParseError\n\tline     int    // line number\n\toffset   int    // byte number from start of input, not start of line\n\tunquoted string // the unquoted version of value, if it was a quoted string\n}\n\nfunc (t *token) String() string {\n\tif t.err == nil {\n\t\treturn fmt.Sprintf(\"%q (line=%d, offset=%d)\", t.value, t.line, t.offset)\n\t}\n\treturn fmt.Sprintf(\"parse error: %v\", t.err)\n}\n\ntype textParser struct {\n\ts            string // remaining input\n\tdone         bool   // whether the parsing is finished (success or error)\n\tbacked       bool   // whether back() was called\n\toffset, line int\n\tcur          token\n}\n\nfunc newTextParser(s string) *textParser {\n\tp := new(textParser)\n\tp.s = s\n\tp.line = 1\n\tp.cur.line = 1\n\treturn p\n}\n\nfunc (p *textParser) errorf(format string, a ...interface{}) *ParseError {\n\tpe := &ParseError{fmt.Sprintf(format, a...), p.cur.line, p.cur.offset}\n\tp.cur.err = pe\n\tp.done = true\n\treturn pe\n}\n\n// Numbers and identifiers are matched by [-+._A-Za-z0-9]\nfunc isIdentOrNumberChar(c byte) bool {\n\tswitch {\n\tcase 'A' <= c && c <= 'Z', 'a' <= c && c <= 'z':\n\t\treturn true\n\tcase '0' <= c && c <= '9':\n\t\treturn true\n\t}\n\tswitch c {\n\tcase '-', '+', '.', '_':\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc isWhitespace(c byte) bool {\n\tswitch c {\n\tcase ' ', '\\t', '\\n', '\\r':\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc isQuote(c byte) bool {\n\tswitch c {\n\tcase '\"', '\\'':\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (p *textParser) skipWhitespace() {\n\ti := 0\n\tfor i < len(p.s) && (isWhitespace(p.s[i]) || p.s[i] == '#') {\n\t\tif p.s[i] == '#' {\n\t\t\t// comment; skip to end of line or input\n\t\t\tfor i < len(p.s) && p.s[i] != '\\n' {\n\t\t\t\ti++\n\t\t\t}\n\t\t\tif i == len(p.s) {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif p.s[i] == '\\n' {\n\t\t\tp.line++\n\t\t}\n\t\ti++\n\t}\n\tp.offset += i\n\tp.s = p.s[i:len(p.s)]\n\tif len(p.s) == 0 {\n\t\tp.done = true\n\t}\n}\n\nfunc (p *textParser) advance() {\n\t// Skip whitespace\n\tp.skipWhitespace()\n\tif p.done {\n\t\treturn\n\t}\n\n\t// Start of non-whitespace\n\tp.cur.err = nil\n\tp.cur.offset, p.cur.line = p.offset, p.line\n\tp.cur.unquoted = \"\"\n\tswitch p.s[0] {\n\tcase '<', '>', '{', '}', ':', '[', ']', ';', ',', '/':\n\t\t// Single symbol\n\t\tp.cur.value, p.s = p.s[0:1], p.s[1:len(p.s)]\n\tcase '\"', '\\'':\n\t\t// Quoted string\n\t\ti := 1\n\t\tfor i < len(p.s) && p.s[i] != p.s[0] && p.s[i] != '\\n' {\n\t\t\tif p.s[i] == '\\\\' && i+1 < len(p.s) {\n\t\t\t\t// skip escaped char\n\t\t\t\ti++\n\t\t\t}\n\t\t\ti++\n\t\t}\n\t\tif i >= len(p.s) || p.s[i] != p.s[0] {\n\t\t\tp.errorf(\"unmatched quote\")\n\t\t\treturn\n\t\t}\n\t\tunq, err := unquoteC(p.s[1:i], rune(p.s[0]))\n\t\tif err != nil {\n\t\t\tp.errorf(\"invalid quoted string %s: %v\", p.s[0:i+1], err)\n\t\t\treturn\n\t\t}\n\t\tp.cur.value, p.s = p.s[0:i+1], p.s[i+1:len(p.s)]\n\t\tp.cur.unquoted = unq\n\tdefault:\n\t\ti := 0\n\t\tfor i < len(p.s) && isIdentOrNumberChar(p.s[i]) {\n\t\t\ti++\n\t\t}\n\t\tif i == 0 {\n\t\t\tp.errorf(\"unexpected byte %#x\", p.s[0])\n\t\t\treturn\n\t\t}\n\t\tp.cur.value, p.s = p.s[0:i], p.s[i:len(p.s)]\n\t}\n\tp.offset += len(p.cur.value)\n}\n\nvar (\n\terrBadUTF8 = errors.New(\"proto: bad UTF-8\")\n)\n\nfunc unquoteC(s string, quote rune) (string, error) {\n\t// This is based on C++'s tokenizer.cc.\n\t// Despite its name, this is *not* parsing C syntax.\n\t// For instance, \"\\0\" is an invalid quoted string.\n\n\t// Avoid allocation in trivial cases.\n\tsimple := true\n\tfor _, r := range s {\n\t\tif r == '\\\\' || r == quote {\n\t\t\tsimple = false\n\t\t\tbreak\n\t\t}\n\t}\n\tif simple {\n\t\treturn s, nil\n\t}\n\n\tbuf := make([]byte, 0, 3*len(s)/2)\n\tfor len(s) > 0 {\n\t\tr, n := utf8.DecodeRuneInString(s)\n\t\tif r == utf8.RuneError && n == 1 {\n\t\t\treturn \"\", errBadUTF8\n\t\t}\n\t\ts = s[n:]\n\t\tif r != '\\\\' {\n\t\t\tif r < utf8.RuneSelf {\n\t\t\t\tbuf = append(buf, byte(r))\n\t\t\t} else {\n\t\t\t\tbuf = append(buf, string(r)...)\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\tch, tail, err := unescape(s)\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\tbuf = append(buf, ch...)\n\t\ts = tail\n\t}\n\treturn string(buf), nil\n}\n\nfunc unescape(s string) (ch string, tail string, err error) {\n\tr, n := utf8.DecodeRuneInString(s)\n\tif r == utf8.RuneError && n == 1 {\n\t\treturn \"\", \"\", errBadUTF8\n\t}\n\ts = s[n:]\n\tswitch r {\n\tcase 'a':\n\t\treturn \"\\a\", s, nil\n\tcase 'b':\n\t\treturn \"\\b\", s, nil\n\tcase 'f':\n\t\treturn \"\\f\", s, nil\n\tcase 'n':\n\t\treturn \"\\n\", s, nil\n\tcase 'r':\n\t\treturn \"\\r\", s, nil\n\tcase 't':\n\t\treturn \"\\t\", s, nil\n\tcase 'v':\n\t\treturn \"\\v\", s, nil\n\tcase '?':\n\t\treturn \"?\", s, nil // trigraph workaround\n\tcase '\\'', '\"', '\\\\':\n\t\treturn string(r), s, nil\n\tcase '0', '1', '2', '3', '4', '5', '6', '7':\n\t\tif len(s) < 2 {\n\t\t\treturn \"\", \"\", fmt.Errorf(`\\%c requires 2 following digits`, r)\n\t\t}\n\t\tss := string(r) + s[:2]\n\t\ts = s[2:]\n\t\ti, err := strconv.ParseUint(ss, 8, 8)\n\t\tif err != nil {\n\t\t\treturn \"\", \"\", fmt.Errorf(`\\%s contains non-octal digits`, ss)\n\t\t}\n\t\treturn string([]byte{byte(i)}), s, nil\n\tcase 'x', 'X', 'u', 'U':\n\t\tvar n int\n\t\tswitch r {\n\t\tcase 'x', 'X':\n\t\t\tn = 2\n\t\tcase 'u':\n\t\t\tn = 4\n\t\tcase 'U':\n\t\t\tn = 8\n\t\t}\n\t\tif len(s) < n {\n\t\t\treturn \"\", \"\", fmt.Errorf(`\\%c requires %d following digits`, r, n)\n\t\t}\n\t\tss := s[:n]\n\t\ts = s[n:]\n\t\ti, err := strconv.ParseUint(ss, 16, 64)\n\t\tif err != nil {\n\t\t\treturn \"\", \"\", fmt.Errorf(`\\%c%s contains non-hexadecimal digits`, r, ss)\n\t\t}\n\t\tif r == 'x' || r == 'X' {\n\t\t\treturn string([]byte{byte(i)}), s, nil\n\t\t}\n\t\tif i > utf8.MaxRune {\n\t\t\treturn \"\", \"\", fmt.Errorf(`\\%c%s is not a valid Unicode code point`, r, ss)\n\t\t}\n\t\treturn string(rune(i)), s, nil\n\t}\n\treturn \"\", \"\", fmt.Errorf(`unknown escape \\%c`, r)\n}\n\n// Back off the parser by one token. Can only be done between calls to next().\n// It makes the next advance() a no-op.\nfunc (p *textParser) back() { p.backed = true }\n\n// Advances the parser and returns the new current token.\nfunc (p *textParser) next() *token {\n\tif p.backed || p.done {\n\t\tp.backed = false\n\t\treturn &p.cur\n\t}\n\tp.advance()\n\tif p.done {\n\t\tp.cur.value = \"\"\n\t} else if len(p.cur.value) > 0 && isQuote(p.cur.value[0]) {\n\t\t// Look for multiple quoted strings separated by whitespace,\n\t\t// and concatenate them.\n\t\tcat := p.cur\n\t\tfor {\n\t\t\tp.skipWhitespace()\n\t\t\tif p.done || !isQuote(p.s[0]) {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tp.advance()\n\t\t\tif p.cur.err != nil {\n\t\t\t\treturn &p.cur\n\t\t\t}\n\t\t\tcat.value += \" \" + p.cur.value\n\t\t\tcat.unquoted += p.cur.unquoted\n\t\t}\n\t\tp.done = false // parser may have seen EOF, but we want to return cat\n\t\tp.cur = cat\n\t}\n\treturn &p.cur\n}\n\nfunc (p *textParser) consumeToken(s string) error {\n\ttok := p.next()\n\tif tok.err != nil {\n\t\treturn tok.err\n\t}\n\tif tok.value != s {\n\t\tp.back()\n\t\treturn p.errorf(\"expected %q, found %q\", s, tok.value)\n\t}\n\treturn nil\n}\n\n// Return a RequiredNotSetError indicating which required field was not set.\nfunc (p *textParser) missingRequiredFieldError(sv reflect.Value) *RequiredNotSetError {\n\tst := sv.Type()\n\tsprops := GetProperties(st)\n\tfor i := 0; i < st.NumField(); i++ {\n\t\tif !isNil(sv.Field(i)) {\n\t\t\tcontinue\n\t\t}\n\n\t\tprops := sprops.Prop[i]\n\t\tif props.Required {\n\t\t\treturn &RequiredNotSetError{fmt.Sprintf(\"%v.%v\", st, props.OrigName)}\n\t\t}\n\t}\n\treturn &RequiredNotSetError{fmt.Sprintf(\"%v.<unknown field name>\", st)} // should not happen\n}\n\n// Returns the index in the struct for the named field, as well as the parsed tag properties.\nfunc structFieldByName(sprops *StructProperties, name string) (int, *Properties, bool) {\n\ti, ok := sprops.decoderOrigNames[name]\n\tif ok {\n\t\treturn i, sprops.Prop[i], true\n\t}\n\treturn -1, nil, false\n}\n\n// Consume a ':' from the input stream (if the next token is a colon),\n// returning an error if a colon is needed but not present.\nfunc (p *textParser) checkForColon(props *Properties, typ reflect.Type) *ParseError {\n\ttok := p.next()\n\tif tok.err != nil {\n\t\treturn tok.err\n\t}\n\tif tok.value != \":\" {\n\t\t// Colon is optional when the field is a group or message.\n\t\tneedColon := true\n\t\tswitch props.Wire {\n\t\tcase \"group\":\n\t\t\tneedColon = false\n\t\tcase \"bytes\":\n\t\t\t// A \"bytes\" field is either a message, a string, or a repeated field;\n\t\t\t// those three become *T, *string and []T respectively, so we can check for\n\t\t\t// this field being a pointer to a non-string.\n\t\t\tif typ.Kind() == reflect.Ptr {\n\t\t\t\t// *T or *string\n\t\t\t\tif typ.Elem().Kind() == reflect.String {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t} else if typ.Kind() == reflect.Slice {\n\t\t\t\t// []T or []*T\n\t\t\t\tif typ.Elem().Kind() != reflect.Ptr {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t} else if typ.Kind() == reflect.String {\n\t\t\t\t// The proto3 exception is for a string field,\n\t\t\t\t// which requires a colon.\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tneedColon = false\n\t\t}\n\t\tif needColon {\n\t\t\treturn p.errorf(\"expected ':', found %q\", tok.value)\n\t\t}\n\t\tp.back()\n\t}\n\treturn nil\n}\n\nfunc (p *textParser) readStruct(sv reflect.Value, terminator string) error {\n\tst := sv.Type()\n\tsprops := GetProperties(st)\n\treqCount := sprops.reqCount\n\tvar reqFieldErr error\n\tfieldSet := make(map[string]bool)\n\t// A struct is a sequence of \"name: value\", terminated by one of\n\t// '>' or '}', or the end of the input.  A name may also be\n\t// \"[extension]\" or \"[type/url]\".\n\t//\n\t// The whole struct can also be an expanded Any message, like:\n\t// [type/url] < ... struct contents ... >\n\tfor {\n\t\ttok := p.next()\n\t\tif tok.err != nil {\n\t\t\treturn tok.err\n\t\t}\n\t\tif tok.value == terminator {\n\t\t\tbreak\n\t\t}\n\t\tif tok.value == \"[\" {\n\t\t\t// Looks like an extension or an Any.\n\t\t\t//\n\t\t\t// TODO: Check whether we need to handle\n\t\t\t// namespace rooted names (e.g. \".something.Foo\").\n\t\t\textName, err := p.consumeExtName()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tif s := strings.LastIndex(extName, \"/\"); s >= 0 {\n\t\t\t\t// If it contains a slash, it's an Any type URL.\n\t\t\t\tmessageName := extName[s+1:]\n\t\t\t\tmt := MessageType(messageName)\n\t\t\t\tif mt == nil {\n\t\t\t\t\treturn p.errorf(\"unrecognized message %q in google.protobuf.Any\", messageName)\n\t\t\t\t}\n\t\t\t\ttok = p.next()\n\t\t\t\tif tok.err != nil {\n\t\t\t\t\treturn tok.err\n\t\t\t\t}\n\t\t\t\t// consume an optional colon\n\t\t\t\tif tok.value == \":\" {\n\t\t\t\t\ttok = p.next()\n\t\t\t\t\tif tok.err != nil {\n\t\t\t\t\t\treturn tok.err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tvar terminator string\n\t\t\t\tswitch tok.value {\n\t\t\t\tcase \"<\":\n\t\t\t\t\tterminator = \">\"\n\t\t\t\tcase \"{\":\n\t\t\t\t\tterminator = \"}\"\n\t\t\t\tdefault:\n\t\t\t\t\treturn p.errorf(\"expected '{' or '<', found %q\", tok.value)\n\t\t\t\t}\n\t\t\t\tv := reflect.New(mt.Elem())\n\t\t\t\tif pe := p.readStruct(v.Elem(), terminator); pe != nil {\n\t\t\t\t\treturn pe\n\t\t\t\t}\n\t\t\t\tb, err := Marshal(v.Interface().(Message))\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn p.errorf(\"failed to marshal message of type %q: %v\", messageName, err)\n\t\t\t\t}\n\t\t\t\tif fieldSet[\"type_url\"] {\n\t\t\t\t\treturn p.errorf(anyRepeatedlyUnpacked, \"type_url\")\n\t\t\t\t}\n\t\t\t\tif fieldSet[\"value\"] {\n\t\t\t\t\treturn p.errorf(anyRepeatedlyUnpacked, \"value\")\n\t\t\t\t}\n\t\t\t\tsv.FieldByName(\"TypeUrl\").SetString(extName)\n\t\t\t\tsv.FieldByName(\"Value\").SetBytes(b)\n\t\t\t\tfieldSet[\"type_url\"] = true\n\t\t\t\tfieldSet[\"value\"] = true\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tvar desc *ExtensionDesc\n\t\t\t// This could be faster, but it's functional.\n\t\t\t// TODO: Do something smarter than a linear scan.\n\t\t\tfor _, d := range RegisteredExtensions(reflect.New(st).Interface().(Message)) {\n\t\t\t\tif d.Name == extName {\n\t\t\t\t\tdesc = d\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif desc == nil {\n\t\t\t\treturn p.errorf(\"unrecognized extension %q\", extName)\n\t\t\t}\n\n\t\t\tprops := &Properties{}\n\t\t\tprops.Parse(desc.Tag)\n\n\t\t\ttyp := reflect.TypeOf(desc.ExtensionType)\n\t\t\tif err := p.checkForColon(props, typ); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\trep := desc.repeated()\n\n\t\t\t// Read the extension structure, and set it in\n\t\t\t// the value we're constructing.\n\t\t\tvar ext reflect.Value\n\t\t\tif !rep {\n\t\t\t\text = reflect.New(typ).Elem()\n\t\t\t} else {\n\t\t\t\text = reflect.New(typ.Elem()).Elem()\n\t\t\t}\n\t\t\tif err := p.readAny(ext, props); err != nil {\n\t\t\t\tif _, ok := err.(*RequiredNotSetError); !ok {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\treqFieldErr = err\n\t\t\t}\n\t\t\tep := sv.Addr().Interface().(Message)\n\t\t\tif !rep {\n\t\t\t\tSetExtension(ep, desc, ext.Interface())\n\t\t\t} else {\n\t\t\t\told, err := GetExtension(ep, desc)\n\t\t\t\tvar sl reflect.Value\n\t\t\t\tif err == nil {\n\t\t\t\t\tsl = reflect.ValueOf(old) // existing slice\n\t\t\t\t} else {\n\t\t\t\t\tsl = reflect.MakeSlice(typ, 0, 1)\n\t\t\t\t}\n\t\t\t\tsl = reflect.Append(sl, ext)\n\t\t\t\tSetExtension(ep, desc, sl.Interface())\n\t\t\t}\n\t\t\tif err := p.consumeOptionalSeparator(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\t// This is a normal, non-extension field.\n\t\tname := tok.value\n\t\tvar dst reflect.Value\n\t\tfi, props, ok := structFieldByName(sprops, name)\n\t\tif ok {\n\t\t\tdst = sv.Field(fi)\n\t\t} else if oop, ok := sprops.OneofTypes[name]; ok {\n\t\t\t// It is a oneof.\n\t\t\tprops = oop.Prop\n\t\t\tnv := reflect.New(oop.Type.Elem())\n\t\t\tdst = nv.Elem().Field(0)\n\t\t\tfield := sv.Field(oop.Field)\n\t\t\tif !field.IsNil() {\n\t\t\t\treturn p.errorf(\"field '%s' would overwrite already parsed oneof '%s'\", name, sv.Type().Field(oop.Field).Name)\n\t\t\t}\n\t\t\tfield.Set(nv)\n\t\t}\n\t\tif !dst.IsValid() {\n\t\t\treturn p.errorf(\"unknown field name %q in %v\", name, st)\n\t\t}\n\n\t\tif dst.Kind() == reflect.Map {\n\t\t\t// Consume any colon.\n\t\t\tif err := p.checkForColon(props, dst.Type()); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\t// Construct the map if it doesn't already exist.\n\t\t\tif dst.IsNil() {\n\t\t\t\tdst.Set(reflect.MakeMap(dst.Type()))\n\t\t\t}\n\t\t\tkey := reflect.New(dst.Type().Key()).Elem()\n\t\t\tval := reflect.New(dst.Type().Elem()).Elem()\n\n\t\t\t// The map entry should be this sequence of tokens:\n\t\t\t//\t< key : KEY value : VALUE >\n\t\t\t// However, implementations may omit key or value, and technically\n\t\t\t// we should support them in any order.  See b/28924776 for a time\n\t\t\t// this went wrong.\n\n\t\t\ttok := p.next()\n\t\t\tvar terminator string\n\t\t\tswitch tok.value {\n\t\t\tcase \"<\":\n\t\t\t\tterminator = \">\"\n\t\t\tcase \"{\":\n\t\t\t\tterminator = \"}\"\n\t\t\tdefault:\n\t\t\t\treturn p.errorf(\"expected '{' or '<', found %q\", tok.value)\n\t\t\t}\n\t\t\tfor {\n\t\t\t\ttok := p.next()\n\t\t\t\tif tok.err != nil {\n\t\t\t\t\treturn tok.err\n\t\t\t\t}\n\t\t\t\tif tok.value == terminator {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tswitch tok.value {\n\t\t\t\tcase \"key\":\n\t\t\t\t\tif err := p.consumeToken(\":\"); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif err := p.readAny(key, props.MapKeyProp); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif err := p.consumeOptionalSeparator(); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\tcase \"value\":\n\t\t\t\t\tif err := p.checkForColon(props.MapValProp, dst.Type().Elem()); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif err := p.readAny(val, props.MapValProp); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif err := p.consumeOptionalSeparator(); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tp.back()\n\t\t\t\t\treturn p.errorf(`expected \"key\", \"value\", or %q, found %q`, terminator, tok.value)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdst.SetMapIndex(key, val)\n\t\t\tcontinue\n\t\t}\n\n\t\t// Check that it's not already set if it's not a repeated field.\n\t\tif !props.Repeated && fieldSet[name] {\n\t\t\treturn p.errorf(\"non-repeated field %q was repeated\", name)\n\t\t}\n\n\t\tif err := p.checkForColon(props, dst.Type()); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t// Parse into the field.\n\t\tfieldSet[name] = true\n\t\tif err := p.readAny(dst, props); err != nil {\n\t\t\tif _, ok := err.(*RequiredNotSetError); !ok {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\treqFieldErr = err\n\t\t}\n\t\tif props.Required {\n\t\t\treqCount--\n\t\t}\n\n\t\tif err := p.consumeOptionalSeparator(); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t}\n\n\tif reqCount > 0 {\n\t\treturn p.missingRequiredFieldError(sv)\n\t}\n\treturn reqFieldErr\n}\n\n// consumeExtName consumes extension name or expanded Any type URL and the\n// following ']'. It returns the name or URL consumed.\nfunc (p *textParser) consumeExtName() (string, error) {\n\ttok := p.next()\n\tif tok.err != nil {\n\t\treturn \"\", tok.err\n\t}\n\n\t// If extension name or type url is quoted, it's a single token.\n\tif len(tok.value) > 2 && isQuote(tok.value[0]) && tok.value[len(tok.value)-1] == tok.value[0] {\n\t\tname, err := unquoteC(tok.value[1:len(tok.value)-1], rune(tok.value[0]))\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\treturn name, p.consumeToken(\"]\")\n\t}\n\n\t// Consume everything up to \"]\"\n\tvar parts []string\n\tfor tok.value != \"]\" {\n\t\tparts = append(parts, tok.value)\n\t\ttok = p.next()\n\t\tif tok.err != nil {\n\t\t\treturn \"\", p.errorf(\"unrecognized type_url or extension name: %s\", tok.err)\n\t\t}\n\t\tif p.done && tok.value != \"]\" {\n\t\t\treturn \"\", p.errorf(\"unclosed type_url or extension name\")\n\t\t}\n\t}\n\treturn strings.Join(parts, \"\"), nil\n}\n\n// consumeOptionalSeparator consumes an optional semicolon or comma.\n// It is used in readStruct to provide backward compatibility.\nfunc (p *textParser) consumeOptionalSeparator() error {\n\ttok := p.next()\n\tif tok.err != nil {\n\t\treturn tok.err\n\t}\n\tif tok.value != \";\" && tok.value != \",\" {\n\t\tp.back()\n\t}\n\treturn nil\n}\n\nfunc (p *textParser) readAny(v reflect.Value, props *Properties) error {\n\ttok := p.next()\n\tif tok.err != nil {\n\t\treturn tok.err\n\t}\n\tif tok.value == \"\" {\n\t\treturn p.errorf(\"unexpected EOF\")\n\t}\n\tif len(props.CustomType) > 0 {\n\t\tif props.Repeated {\n\t\t\tt := reflect.TypeOf(v.Interface())\n\t\t\tif t.Kind() == reflect.Slice {\n\t\t\t\ttc := reflect.TypeOf(new(Marshaler))\n\t\t\t\tok := t.Elem().Implements(tc.Elem())\n\t\t\t\tif ok {\n\t\t\t\t\tfv := v\n\t\t\t\t\tflen := fv.Len()\n\t\t\t\t\tif flen == fv.Cap() {\n\t\t\t\t\t\tnav := reflect.MakeSlice(v.Type(), flen, 2*flen+1)\n\t\t\t\t\t\treflect.Copy(nav, fv)\n\t\t\t\t\t\tfv.Set(nav)\n\t\t\t\t\t}\n\t\t\t\t\tfv.SetLen(flen + 1)\n\n\t\t\t\t\t// Read one.\n\t\t\t\t\tp.back()\n\t\t\t\t\treturn p.readAny(fv.Index(flen), props)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif reflect.TypeOf(v.Interface()).Kind() == reflect.Ptr {\n\t\t\tcustom := reflect.New(props.ctype.Elem()).Interface().(Unmarshaler)\n\t\t\terr := custom.Unmarshal([]byte(tok.unquoted))\n\t\t\tif err != nil {\n\t\t\t\treturn p.errorf(\"%v %v: %v\", err, v.Type(), tok.value)\n\t\t\t}\n\t\t\tv.Set(reflect.ValueOf(custom))\n\t\t} else {\n\t\t\tcustom := reflect.New(reflect.TypeOf(v.Interface())).Interface().(Unmarshaler)\n\t\t\terr := custom.Unmarshal([]byte(tok.unquoted))\n\t\t\tif err != nil {\n\t\t\t\treturn p.errorf(\"%v %v: %v\", err, v.Type(), tok.value)\n\t\t\t}\n\t\t\tv.Set(reflect.Indirect(reflect.ValueOf(custom)))\n\t\t}\n\t\treturn nil\n\t}\n\tif props.StdTime {\n\t\tfv := v\n\t\tp.back()\n\t\tprops.StdTime = false\n\t\ttproto := &timestamp{}\n\t\terr := p.readAny(reflect.ValueOf(tproto).Elem(), props)\n\t\tprops.StdTime = true\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttim, err := timestampFromProto(tproto)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif props.Repeated {\n\t\t\tt := reflect.TypeOf(v.Interface())\n\t\t\tif t.Kind() == reflect.Slice {\n\t\t\t\tif t.Elem().Kind() == reflect.Ptr {\n\t\t\t\t\tts := fv.Interface().([]*time.Time)\n\t\t\t\t\tts = append(ts, &tim)\n\t\t\t\t\tfv.Set(reflect.ValueOf(ts))\n\t\t\t\t\treturn nil\n\t\t\t\t} else {\n\t\t\t\t\tts := fv.Interface().([]time.Time)\n\t\t\t\t\tts = append(ts, tim)\n\t\t\t\t\tfv.Set(reflect.ValueOf(ts))\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif reflect.TypeOf(v.Interface()).Kind() == reflect.Ptr {\n\t\t\tv.Set(reflect.ValueOf(&tim))\n\t\t} else {\n\t\t\tv.Set(reflect.Indirect(reflect.ValueOf(&tim)))\n\t\t}\n\t\treturn nil\n\t}\n\tif props.StdDuration {\n\t\tfv := v\n\t\tp.back()\n\t\tprops.StdDuration = false\n\t\tdproto := &duration{}\n\t\terr := p.readAny(reflect.ValueOf(dproto).Elem(), props)\n\t\tprops.StdDuration = true\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdur, err := durationFromProto(dproto)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif props.Repeated {\n\t\t\tt := reflect.TypeOf(v.Interface())\n\t\t\tif t.Kind() == reflect.Slice {\n\t\t\t\tif t.Elem().Kind() == reflect.Ptr {\n\t\t\t\t\tds := fv.Interface().([]*time.Duration)\n\t\t\t\t\tds = append(ds, &dur)\n\t\t\t\t\tfv.Set(reflect.ValueOf(ds))\n\t\t\t\t\treturn nil\n\t\t\t\t} else {\n\t\t\t\t\tds := fv.Interface().([]time.Duration)\n\t\t\t\t\tds = append(ds, dur)\n\t\t\t\t\tfv.Set(reflect.ValueOf(ds))\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif reflect.TypeOf(v.Interface()).Kind() == reflect.Ptr {\n\t\t\tv.Set(reflect.ValueOf(&dur))\n\t\t} else {\n\t\t\tv.Set(reflect.Indirect(reflect.ValueOf(&dur)))\n\t\t}\n\t\treturn nil\n\t}\n\tswitch fv := v; fv.Kind() {\n\tcase reflect.Slice:\n\t\tat := v.Type()\n\t\tif at.Elem().Kind() == reflect.Uint8 {\n\t\t\t// Special case for []byte\n\t\t\tif tok.value[0] != '\"' && tok.value[0] != '\\'' {\n\t\t\t\t// Deliberately written out here, as the error after\n\t\t\t\t// this switch statement would write \"invalid []byte: ...\",\n\t\t\t\t// which is not as user-friendly.\n\t\t\t\treturn p.errorf(\"invalid string: %v\", tok.value)\n\t\t\t}\n\t\t\tbytes := []byte(tok.unquoted)\n\t\t\tfv.Set(reflect.ValueOf(bytes))\n\t\t\treturn nil\n\t\t}\n\t\t// Repeated field.\n\t\tif tok.value == \"[\" {\n\t\t\t// Repeated field with list notation, like [1,2,3].\n\t\t\tfor {\n\t\t\t\tfv.Set(reflect.Append(fv, reflect.New(at.Elem()).Elem()))\n\t\t\t\terr := p.readAny(fv.Index(fv.Len()-1), props)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tntok := p.next()\n\t\t\t\tif ntok.err != nil {\n\t\t\t\t\treturn ntok.err\n\t\t\t\t}\n\t\t\t\tif ntok.value == \"]\" {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tif ntok.value != \",\" {\n\t\t\t\t\treturn p.errorf(\"Expected ']' or ',' found %q\", ntok.value)\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\t\t// One value of the repeated field.\n\t\tp.back()\n\t\tfv.Set(reflect.Append(fv, reflect.New(at.Elem()).Elem()))\n\t\treturn p.readAny(fv.Index(fv.Len()-1), props)\n\tcase reflect.Bool:\n\t\t// true/1/t/True or false/f/0/False.\n\t\tswitch tok.value {\n\t\tcase \"true\", \"1\", \"t\", \"True\":\n\t\t\tfv.SetBool(true)\n\t\t\treturn nil\n\t\tcase \"false\", \"0\", \"f\", \"False\":\n\t\t\tfv.SetBool(false)\n\t\t\treturn nil\n\t\t}\n\tcase reflect.Float32, reflect.Float64:\n\t\tv := tok.value\n\t\t// Ignore 'f' for compatibility with output generated by C++, but don't\n\t\t// remove 'f' when the value is \"-inf\" or \"inf\".\n\t\tif strings.HasSuffix(v, \"f\") && tok.value != \"-inf\" && tok.value != \"inf\" {\n\t\t\tv = v[:len(v)-1]\n\t\t}\n\t\tif f, err := strconv.ParseFloat(v, fv.Type().Bits()); err == nil {\n\t\t\tfv.SetFloat(f)\n\t\t\treturn nil\n\t\t}\n\tcase reflect.Int8:\n\t\tif x, err := strconv.ParseInt(tok.value, 0, 8); err == nil {\n\t\t\tfv.SetInt(x)\n\t\t\treturn nil\n\t\t}\n\tcase reflect.Int16:\n\t\tif x, err := strconv.ParseInt(tok.value, 0, 16); err == nil {\n\t\t\tfv.SetInt(x)\n\t\t\treturn nil\n\t\t}\n\tcase reflect.Int32:\n\t\tif x, err := strconv.ParseInt(tok.value, 0, 32); err == nil {\n\t\t\tfv.SetInt(x)\n\t\t\treturn nil\n\t\t}\n\n\t\tif len(props.Enum) == 0 {\n\t\t\tbreak\n\t\t}\n\t\tm, ok := enumValueMaps[props.Enum]\n\t\tif !ok {\n\t\t\tbreak\n\t\t}\n\t\tx, ok := m[tok.value]\n\t\tif !ok {\n\t\t\tbreak\n\t\t}\n\t\tfv.SetInt(int64(x))\n\t\treturn nil\n\tcase reflect.Int64:\n\t\tif x, err := strconv.ParseInt(tok.value, 0, 64); err == nil {\n\t\t\tfv.SetInt(x)\n\t\t\treturn nil\n\t\t}\n\n\tcase reflect.Ptr:\n\t\t// A basic field (indirected through pointer), or a repeated message/group\n\t\tp.back()\n\t\tfv.Set(reflect.New(fv.Type().Elem()))\n\t\treturn p.readAny(fv.Elem(), props)\n\tcase reflect.String:\n\t\tif tok.value[0] == '\"' || tok.value[0] == '\\'' {\n\t\t\tfv.SetString(tok.unquoted)\n\t\t\treturn nil\n\t\t}\n\tcase reflect.Struct:\n\t\tvar terminator string\n\t\tswitch tok.value {\n\t\tcase \"{\":\n\t\t\tterminator = \"}\"\n\t\tcase \"<\":\n\t\t\tterminator = \">\"\n\t\tdefault:\n\t\t\treturn p.errorf(\"expected '{' or '<', found %q\", tok.value)\n\t\t}\n\t\t// TODO: Handle nested messages which implement encoding.TextUnmarshaler.\n\t\treturn p.readStruct(fv, terminator)\n\tcase reflect.Uint8:\n\t\tif x, err := strconv.ParseUint(tok.value, 0, 8); err == nil {\n\t\t\tfv.SetUint(x)\n\t\t\treturn nil\n\t\t}\n\tcase reflect.Uint16:\n\t\tif x, err := strconv.ParseUint(tok.value, 0, 16); err == nil {\n\t\t\tfv.SetUint(x)\n\t\t\treturn nil\n\t\t}\n\tcase reflect.Uint32:\n\t\tif x, err := strconv.ParseUint(tok.value, 0, 32); err == nil {\n\t\t\tfv.SetUint(uint64(x))\n\t\t\treturn nil\n\t\t}\n\tcase reflect.Uint64:\n\t\tif x, err := strconv.ParseUint(tok.value, 0, 64); err == nil {\n\t\t\tfv.SetUint(x)\n\t\t\treturn nil\n\t\t}\n\t}\n\treturn p.errorf(\"invalid %v: %v\", v.Type(), tok.value)\n}\n\n// UnmarshalText reads a protocol buffer in Text format. UnmarshalText resets pb\n// before starting to unmarshal, so any existing data in pb is always removed.\n// If a required field is not set and no other error occurs,\n// UnmarshalText returns *RequiredNotSetError.\nfunc UnmarshalText(s string, pb Message) error {\n\tif um, ok := pb.(encoding.TextUnmarshaler); ok {\n\t\treturn um.UnmarshalText([]byte(s))\n\t}\n\tpb.Reset()\n\tv := reflect.ValueOf(pb)\n\treturn newTextParser(s).readStruct(v.Elem(), \"\")\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/timestamp.go",
    "content": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2016 The Go Authors.  All rights reserved.\n// https://github.com/golang/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\n// This file implements operations on google.protobuf.Timestamp.\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"time\"\n)\n\nconst (\n\t// Seconds field of the earliest valid Timestamp.\n\t// This is time.Date(1, 1, 1, 0, 0, 0, 0, time.UTC).Unix().\n\tminValidSeconds = -62135596800\n\t// Seconds field just after the latest valid Timestamp.\n\t// This is time.Date(10000, 1, 1, 0, 0, 0, 0, time.UTC).Unix().\n\tmaxValidSeconds = 253402300800\n)\n\n// validateTimestamp determines whether a Timestamp is valid.\n// A valid timestamp represents a time in the range\n// [0001-01-01, 10000-01-01) and has a Nanos field\n// in the range [0, 1e9).\n//\n// If the Timestamp is valid, validateTimestamp returns nil.\n// Otherwise, it returns an error that describes\n// the problem.\n//\n// Every valid Timestamp can be represented by a time.Time, but the converse is not true.\nfunc validateTimestamp(ts *timestamp) error {\n\tif ts == nil {\n\t\treturn errors.New(\"timestamp: nil Timestamp\")\n\t}\n\tif ts.Seconds < minValidSeconds {\n\t\treturn fmt.Errorf(\"timestamp: %#v before 0001-01-01\", ts)\n\t}\n\tif ts.Seconds >= maxValidSeconds {\n\t\treturn fmt.Errorf(\"timestamp: %#v after 10000-01-01\", ts)\n\t}\n\tif ts.Nanos < 0 || ts.Nanos >= 1e9 {\n\t\treturn fmt.Errorf(\"timestamp: %#v: nanos not in range [0, 1e9)\", ts)\n\t}\n\treturn nil\n}\n\n// TimestampFromProto converts a google.protobuf.Timestamp proto to a time.Time.\n// It returns an error if the argument is invalid.\n//\n// Unlike most Go functions, if Timestamp returns an error, the first return value\n// is not the zero time.Time. Instead, it is the value obtained from the\n// time.Unix function when passed the contents of the Timestamp, in the UTC\n// locale. This may or may not be a meaningful time; many invalid Timestamps\n// do map to valid time.Times.\n//\n// A nil Timestamp returns an error. The first return value in that case is\n// undefined.\nfunc timestampFromProto(ts *timestamp) (time.Time, error) {\n\t// Don't return the zero value on error, because corresponds to a valid\n\t// timestamp. Instead return whatever time.Unix gives us.\n\tvar t time.Time\n\tif ts == nil {\n\t\tt = time.Unix(0, 0).UTC() // treat nil like the empty Timestamp\n\t} else {\n\t\tt = time.Unix(ts.Seconds, int64(ts.Nanos)).UTC()\n\t}\n\treturn t, validateTimestamp(ts)\n}\n\n// TimestampProto converts the time.Time to a google.protobuf.Timestamp proto.\n// It returns an error if the resulting Timestamp is invalid.\nfunc timestampProto(t time.Time) (*timestamp, error) {\n\tseconds := t.Unix()\n\tnanos := int32(t.Sub(time.Unix(seconds, 0)))\n\tts := &timestamp{\n\t\tSeconds: seconds,\n\t\tNanos:   nanos,\n\t}\n\tif err := validateTimestamp(ts); err != nil {\n\t\treturn nil, err\n\t}\n\treturn ts, nil\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/timestamp_gogo.go",
    "content": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2016, The GoGo Authors. All rights reserved.\n// http://github.com/gogo/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\nimport (\n\t\"reflect\"\n\t\"time\"\n)\n\nvar timeType = reflect.TypeOf((*time.Time)(nil)).Elem()\n\ntype timestamp struct {\n\tSeconds int64 `protobuf:\"varint,1,opt,name=seconds,proto3\" json:\"seconds,omitempty\"`\n\tNanos   int32 `protobuf:\"varint,2,opt,name=nanos,proto3\" json:\"nanos,omitempty\"`\n}\n\nfunc (m *timestamp) Reset()       { *m = timestamp{} }\nfunc (*timestamp) ProtoMessage()  {}\nfunc (*timestamp) String() string { return \"timestamp<string>\" }\n\nfunc init() {\n\tRegisterType((*timestamp)(nil), \"gogo.protobuf.proto.timestamp\")\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/wrappers.go",
    "content": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2018, The GoGo Authors. All rights reserved.\n// http://github.com/gogo/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\nimport (\n\t\"io\"\n\t\"reflect\"\n)\n\nfunc makeStdDoubleValueMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tt := ptr.asPointerTo(u.typ).Interface().(*float64)\n\t\t\tv := &float64Value{*t}\n\t\t\tsiz := Size(v)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tt := ptr.asPointerTo(u.typ).Interface().(*float64)\n\t\t\tv := &float64Value{*t}\n\t\t\tbuf, err := Marshal(v)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdDoubleValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tt := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*float64)\n\t\t\tv := &float64Value{*t}\n\t\t\tsiz := Size(v)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn b, nil\n\t\t\t}\n\t\t\tt := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*float64)\n\t\t\tv := &float64Value{*t}\n\t\t\tbuf, err := Marshal(v)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdDoubleValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(float64)\n\t\t\t\tv := &float64Value{t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(float64)\n\t\t\t\tv := &float64Value{t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tbuf, err := Marshal(v)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdDoubleValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(*float64)\n\t\t\t\tv := &float64Value{*t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(*float64)\n\t\t\t\tv := &float64Value{*t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tbuf, err := Marshal(v)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdDoubleValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &float64Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(sub.typ).Elem()\n\t\ts.Set(reflect.ValueOf(m.Value))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdDoubleValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &float64Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem()\n\t\ts.Set(reflect.ValueOf(&m.Value))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdDoubleValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &float64Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(reflect.PtrTo(sub.typ))\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(&m.Value))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdDoubleValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &float64Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(sub.typ)\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(m.Value))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdFloatValueMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tt := ptr.asPointerTo(u.typ).Interface().(*float32)\n\t\t\tv := &float32Value{*t}\n\t\t\tsiz := Size(v)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tt := ptr.asPointerTo(u.typ).Interface().(*float32)\n\t\t\tv := &float32Value{*t}\n\t\t\tbuf, err := Marshal(v)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdFloatValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tt := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*float32)\n\t\t\tv := &float32Value{*t}\n\t\t\tsiz := Size(v)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn b, nil\n\t\t\t}\n\t\t\tt := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*float32)\n\t\t\tv := &float32Value{*t}\n\t\t\tbuf, err := Marshal(v)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdFloatValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(float32)\n\t\t\t\tv := &float32Value{t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(float32)\n\t\t\t\tv := &float32Value{t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tbuf, err := Marshal(v)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdFloatValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(*float32)\n\t\t\t\tv := &float32Value{*t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(*float32)\n\t\t\t\tv := &float32Value{*t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tbuf, err := Marshal(v)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdFloatValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &float32Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(sub.typ).Elem()\n\t\ts.Set(reflect.ValueOf(m.Value))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdFloatValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &float32Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem()\n\t\ts.Set(reflect.ValueOf(&m.Value))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdFloatValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &float32Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(reflect.PtrTo(sub.typ))\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(&m.Value))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdFloatValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &float32Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(sub.typ)\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(m.Value))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdInt64ValueMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tt := ptr.asPointerTo(u.typ).Interface().(*int64)\n\t\t\tv := &int64Value{*t}\n\t\t\tsiz := Size(v)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tt := ptr.asPointerTo(u.typ).Interface().(*int64)\n\t\t\tv := &int64Value{*t}\n\t\t\tbuf, err := Marshal(v)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdInt64ValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tt := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*int64)\n\t\t\tv := &int64Value{*t}\n\t\t\tsiz := Size(v)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn b, nil\n\t\t\t}\n\t\t\tt := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*int64)\n\t\t\tv := &int64Value{*t}\n\t\t\tbuf, err := Marshal(v)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdInt64ValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(int64)\n\t\t\t\tv := &int64Value{t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(int64)\n\t\t\t\tv := &int64Value{t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tbuf, err := Marshal(v)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdInt64ValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(*int64)\n\t\t\t\tv := &int64Value{*t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(*int64)\n\t\t\t\tv := &int64Value{*t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tbuf, err := Marshal(v)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdInt64ValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &int64Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(sub.typ).Elem()\n\t\ts.Set(reflect.ValueOf(m.Value))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdInt64ValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &int64Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem()\n\t\ts.Set(reflect.ValueOf(&m.Value))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdInt64ValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &int64Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(reflect.PtrTo(sub.typ))\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(&m.Value))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdInt64ValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &int64Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(sub.typ)\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(m.Value))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdUInt64ValueMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tt := ptr.asPointerTo(u.typ).Interface().(*uint64)\n\t\t\tv := &uint64Value{*t}\n\t\t\tsiz := Size(v)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tt := ptr.asPointerTo(u.typ).Interface().(*uint64)\n\t\t\tv := &uint64Value{*t}\n\t\t\tbuf, err := Marshal(v)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdUInt64ValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tt := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*uint64)\n\t\t\tv := &uint64Value{*t}\n\t\t\tsiz := Size(v)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn b, nil\n\t\t\t}\n\t\t\tt := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*uint64)\n\t\t\tv := &uint64Value{*t}\n\t\t\tbuf, err := Marshal(v)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdUInt64ValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(uint64)\n\t\t\t\tv := &uint64Value{t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(uint64)\n\t\t\t\tv := &uint64Value{t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tbuf, err := Marshal(v)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdUInt64ValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(*uint64)\n\t\t\t\tv := &uint64Value{*t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(*uint64)\n\t\t\t\tv := &uint64Value{*t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tbuf, err := Marshal(v)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdUInt64ValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &uint64Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(sub.typ).Elem()\n\t\ts.Set(reflect.ValueOf(m.Value))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdUInt64ValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &uint64Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem()\n\t\ts.Set(reflect.ValueOf(&m.Value))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdUInt64ValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &uint64Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(reflect.PtrTo(sub.typ))\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(&m.Value))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdUInt64ValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &uint64Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(sub.typ)\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(m.Value))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdInt32ValueMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tt := ptr.asPointerTo(u.typ).Interface().(*int32)\n\t\t\tv := &int32Value{*t}\n\t\t\tsiz := Size(v)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tt := ptr.asPointerTo(u.typ).Interface().(*int32)\n\t\t\tv := &int32Value{*t}\n\t\t\tbuf, err := Marshal(v)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdInt32ValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tt := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*int32)\n\t\t\tv := &int32Value{*t}\n\t\t\tsiz := Size(v)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn b, nil\n\t\t\t}\n\t\t\tt := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*int32)\n\t\t\tv := &int32Value{*t}\n\t\t\tbuf, err := Marshal(v)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdInt32ValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(int32)\n\t\t\t\tv := &int32Value{t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(int32)\n\t\t\t\tv := &int32Value{t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tbuf, err := Marshal(v)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdInt32ValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(*int32)\n\t\t\t\tv := &int32Value{*t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(*int32)\n\t\t\t\tv := &int32Value{*t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tbuf, err := Marshal(v)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdInt32ValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &int32Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(sub.typ).Elem()\n\t\ts.Set(reflect.ValueOf(m.Value))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdInt32ValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &int32Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem()\n\t\ts.Set(reflect.ValueOf(&m.Value))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdInt32ValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &int32Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(reflect.PtrTo(sub.typ))\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(&m.Value))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdInt32ValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &int32Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(sub.typ)\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(m.Value))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdUInt32ValueMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tt := ptr.asPointerTo(u.typ).Interface().(*uint32)\n\t\t\tv := &uint32Value{*t}\n\t\t\tsiz := Size(v)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tt := ptr.asPointerTo(u.typ).Interface().(*uint32)\n\t\t\tv := &uint32Value{*t}\n\t\t\tbuf, err := Marshal(v)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdUInt32ValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tt := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*uint32)\n\t\t\tv := &uint32Value{*t}\n\t\t\tsiz := Size(v)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn b, nil\n\t\t\t}\n\t\t\tt := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*uint32)\n\t\t\tv := &uint32Value{*t}\n\t\t\tbuf, err := Marshal(v)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdUInt32ValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(uint32)\n\t\t\t\tv := &uint32Value{t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(uint32)\n\t\t\t\tv := &uint32Value{t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tbuf, err := Marshal(v)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdUInt32ValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(*uint32)\n\t\t\t\tv := &uint32Value{*t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(*uint32)\n\t\t\t\tv := &uint32Value{*t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tbuf, err := Marshal(v)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdUInt32ValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &uint32Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(sub.typ).Elem()\n\t\ts.Set(reflect.ValueOf(m.Value))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdUInt32ValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &uint32Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem()\n\t\ts.Set(reflect.ValueOf(&m.Value))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdUInt32ValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &uint32Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(reflect.PtrTo(sub.typ))\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(&m.Value))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdUInt32ValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &uint32Value{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(sub.typ)\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(m.Value))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdBoolValueMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tt := ptr.asPointerTo(u.typ).Interface().(*bool)\n\t\t\tv := &boolValue{*t}\n\t\t\tsiz := Size(v)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tt := ptr.asPointerTo(u.typ).Interface().(*bool)\n\t\t\tv := &boolValue{*t}\n\t\t\tbuf, err := Marshal(v)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdBoolValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tt := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*bool)\n\t\t\tv := &boolValue{*t}\n\t\t\tsiz := Size(v)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn b, nil\n\t\t\t}\n\t\t\tt := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*bool)\n\t\t\tv := &boolValue{*t}\n\t\t\tbuf, err := Marshal(v)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdBoolValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(bool)\n\t\t\t\tv := &boolValue{t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(bool)\n\t\t\t\tv := &boolValue{t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tbuf, err := Marshal(v)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdBoolValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(*bool)\n\t\t\t\tv := &boolValue{*t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(*bool)\n\t\t\t\tv := &boolValue{*t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tbuf, err := Marshal(v)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdBoolValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &boolValue{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(sub.typ).Elem()\n\t\ts.Set(reflect.ValueOf(m.Value))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdBoolValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &boolValue{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem()\n\t\ts.Set(reflect.ValueOf(&m.Value))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdBoolValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &boolValue{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(reflect.PtrTo(sub.typ))\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(&m.Value))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdBoolValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &boolValue{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(sub.typ)\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(m.Value))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdStringValueMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tt := ptr.asPointerTo(u.typ).Interface().(*string)\n\t\t\tv := &stringValue{*t}\n\t\t\tsiz := Size(v)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tt := ptr.asPointerTo(u.typ).Interface().(*string)\n\t\t\tv := &stringValue{*t}\n\t\t\tbuf, err := Marshal(v)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdStringValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tt := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*string)\n\t\t\tv := &stringValue{*t}\n\t\t\tsiz := Size(v)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn b, nil\n\t\t\t}\n\t\t\tt := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*string)\n\t\t\tv := &stringValue{*t}\n\t\t\tbuf, err := Marshal(v)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdStringValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(string)\n\t\t\t\tv := &stringValue{t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(string)\n\t\t\t\tv := &stringValue{t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tbuf, err := Marshal(v)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdStringValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(*string)\n\t\t\t\tv := &stringValue{*t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(*string)\n\t\t\t\tv := &stringValue{*t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tbuf, err := Marshal(v)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdStringValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &stringValue{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(sub.typ).Elem()\n\t\ts.Set(reflect.ValueOf(m.Value))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdStringValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &stringValue{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem()\n\t\ts.Set(reflect.ValueOf(&m.Value))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdStringValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &stringValue{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(reflect.PtrTo(sub.typ))\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(&m.Value))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdStringValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &stringValue{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(sub.typ)\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(m.Value))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdBytesValueMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tt := ptr.asPointerTo(u.typ).Interface().(*[]byte)\n\t\t\tv := &bytesValue{*t}\n\t\t\tsiz := Size(v)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tt := ptr.asPointerTo(u.typ).Interface().(*[]byte)\n\t\t\tv := &bytesValue{*t}\n\t\t\tbuf, err := Marshal(v)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdBytesValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tt := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*[]byte)\n\t\t\tv := &bytesValue{*t}\n\t\t\tsiz := Size(v)\n\t\t\treturn tagsize + SizeVarint(uint64(siz)) + siz\n\t\t}, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\tif ptr.isNil() {\n\t\t\t\treturn b, nil\n\t\t\t}\n\t\t\tt := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*[]byte)\n\t\t\tv := &bytesValue{*t}\n\t\t\tbuf, err := Marshal(v)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tb = appendVarint(b, wiretag)\n\t\t\tb = appendVarint(b, uint64(len(buf)))\n\t\t\tb = append(b, buf...)\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdBytesValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().([]byte)\n\t\t\t\tv := &bytesValue{t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(u.typ)\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().([]byte)\n\t\t\t\tv := &bytesValue{t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tbuf, err := Marshal(v)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdBytesValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) {\n\treturn func(ptr pointer, tagsize int) int {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tn := 0\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(*[]byte)\n\t\t\t\tv := &bytesValue{*t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tn += siz + SizeVarint(uint64(siz)) + tagsize\n\t\t\t}\n\t\t\treturn n\n\t\t},\n\t\tfunc(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) {\n\t\t\ts := ptr.getSlice(reflect.PtrTo(u.typ))\n\t\t\tfor i := 0; i < s.Len(); i++ {\n\t\t\t\telem := s.Index(i)\n\t\t\t\tt := elem.Interface().(*[]byte)\n\t\t\t\tv := &bytesValue{*t}\n\t\t\t\tsiz := Size(v)\n\t\t\t\tbuf, err := Marshal(v)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tb = appendVarint(b, wiretag)\n\t\t\t\tb = appendVarint(b, uint64(siz))\n\t\t\t\tb = append(b, buf...)\n\t\t\t}\n\n\t\t\treturn b, nil\n\t\t}\n}\n\nfunc makeStdBytesValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &bytesValue{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(sub.typ).Elem()\n\t\ts.Set(reflect.ValueOf(m.Value))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdBytesValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &bytesValue{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ts := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem()\n\t\ts.Set(reflect.ValueOf(&m.Value))\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdBytesValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &bytesValue{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(reflect.PtrTo(sub.typ))\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(&m.Value))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n\nfunc makeStdBytesValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler {\n\treturn func(b []byte, f pointer, w int) ([]byte, error) {\n\t\tif w != WireBytes {\n\t\t\treturn nil, errInternalBadWireType\n\t\t}\n\t\tx, n := decodeVarint(b)\n\t\tif n == 0 {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tb = b[n:]\n\t\tif x > uint64(len(b)) {\n\t\t\treturn nil, io.ErrUnexpectedEOF\n\t\t}\n\t\tm := &bytesValue{}\n\t\tif err := Unmarshal(b[:x], m); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tslice := f.getSlice(sub.typ)\n\t\tnewSlice := reflect.Append(slice, reflect.ValueOf(m.Value))\n\t\tslice.Set(newSlice)\n\t\treturn b[x:], nil\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/wrappers_gogo.go",
    "content": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2018, The GoGo Authors. All rights reserved.\n// http://github.com/gogo/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage proto\n\ntype float64Value struct {\n\tValue float64 `protobuf:\"fixed64,1,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (m *float64Value) Reset()       { *m = float64Value{} }\nfunc (*float64Value) ProtoMessage()  {}\nfunc (*float64Value) String() string { return \"float64<string>\" }\n\ntype float32Value struct {\n\tValue float32 `protobuf:\"fixed32,1,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (m *float32Value) Reset()       { *m = float32Value{} }\nfunc (*float32Value) ProtoMessage()  {}\nfunc (*float32Value) String() string { return \"float32<string>\" }\n\ntype int64Value struct {\n\tValue int64 `protobuf:\"varint,1,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (m *int64Value) Reset()       { *m = int64Value{} }\nfunc (*int64Value) ProtoMessage()  {}\nfunc (*int64Value) String() string { return \"int64<string>\" }\n\ntype uint64Value struct {\n\tValue uint64 `protobuf:\"varint,1,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (m *uint64Value) Reset()       { *m = uint64Value{} }\nfunc (*uint64Value) ProtoMessage()  {}\nfunc (*uint64Value) String() string { return \"uint64<string>\" }\n\ntype int32Value struct {\n\tValue int32 `protobuf:\"varint,1,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (m *int32Value) Reset()       { *m = int32Value{} }\nfunc (*int32Value) ProtoMessage()  {}\nfunc (*int32Value) String() string { return \"int32<string>\" }\n\ntype uint32Value struct {\n\tValue uint32 `protobuf:\"varint,1,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (m *uint32Value) Reset()       { *m = uint32Value{} }\nfunc (*uint32Value) ProtoMessage()  {}\nfunc (*uint32Value) String() string { return \"uint32<string>\" }\n\ntype boolValue struct {\n\tValue bool `protobuf:\"varint,1,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (m *boolValue) Reset()       { *m = boolValue{} }\nfunc (*boolValue) ProtoMessage()  {}\nfunc (*boolValue) String() string { return \"bool<string>\" }\n\ntype stringValue struct {\n\tValue string `protobuf:\"bytes,1,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (m *stringValue) Reset()       { *m = stringValue{} }\nfunc (*stringValue) ProtoMessage()  {}\nfunc (*stringValue) String() string { return \"string<string>\" }\n\ntype bytesValue struct {\n\tValue []byte `protobuf:\"bytes,1,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (m *bytesValue) Reset()       { *m = bytesValue{} }\nfunc (*bytesValue) ProtoMessage()  {}\nfunc (*bytesValue) String() string { return \"[]byte<string>\" }\n\nfunc init() {\n\tRegisterType((*float64Value)(nil), \"gogo.protobuf.proto.DoubleValue\")\n\tRegisterType((*float32Value)(nil), \"gogo.protobuf.proto.FloatValue\")\n\tRegisterType((*int64Value)(nil), \"gogo.protobuf.proto.Int64Value\")\n\tRegisterType((*uint64Value)(nil), \"gogo.protobuf.proto.UInt64Value\")\n\tRegisterType((*int32Value)(nil), \"gogo.protobuf.proto.Int32Value\")\n\tRegisterType((*uint32Value)(nil), \"gogo.protobuf.proto.UInt32Value\")\n\tRegisterType((*boolValue)(nil), \"gogo.protobuf.proto.BoolValue\")\n\tRegisterType((*stringValue)(nil), \"gogo.protobuf.proto.StringValue\")\n\tRegisterType((*bytesValue)(nil), \"gogo.protobuf.proto.BytesValue\")\n}\n"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/sortkeys/sortkeys.go",
    "content": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2013, The GoGo Authors. All rights reserved.\n// http://github.com/gogo/protobuf\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\npackage sortkeys\n\nimport (\n\t\"sort\"\n)\n\nfunc Strings(l []string) {\n\tsort.Strings(l)\n}\n\nfunc Float64s(l []float64) {\n\tsort.Float64s(l)\n}\n\nfunc Float32s(l []float32) {\n\tsort.Sort(Float32Slice(l))\n}\n\nfunc Int64s(l []int64) {\n\tsort.Sort(Int64Slice(l))\n}\n\nfunc Int32s(l []int32) {\n\tsort.Sort(Int32Slice(l))\n}\n\nfunc Uint64s(l []uint64) {\n\tsort.Sort(Uint64Slice(l))\n}\n\nfunc Uint32s(l []uint32) {\n\tsort.Sort(Uint32Slice(l))\n}\n\nfunc Bools(l []bool) {\n\tsort.Sort(BoolSlice(l))\n}\n\ntype BoolSlice []bool\n\nfunc (p BoolSlice) Len() int           { return len(p) }\nfunc (p BoolSlice) Less(i, j int) bool { return p[j] }\nfunc (p BoolSlice) Swap(i, j int)      { p[i], p[j] = p[j], p[i] }\n\ntype Int64Slice []int64\n\nfunc (p Int64Slice) Len() int           { return len(p) }\nfunc (p Int64Slice) Less(i, j int) bool { return p[i] < p[j] }\nfunc (p Int64Slice) Swap(i, j int)      { p[i], p[j] = p[j], p[i] }\n\ntype Int32Slice []int32\n\nfunc (p Int32Slice) Len() int           { return len(p) }\nfunc (p Int32Slice) Less(i, j int) bool { return p[i] < p[j] }\nfunc (p Int32Slice) Swap(i, j int)      { p[i], p[j] = p[j], p[i] }\n\ntype Uint64Slice []uint64\n\nfunc (p Uint64Slice) Len() int           { return len(p) }\nfunc (p Uint64Slice) Less(i, j int) bool { return p[i] < p[j] }\nfunc (p Uint64Slice) Swap(i, j int)      { p[i], p[j] = p[j], p[i] }\n\ntype Uint32Slice []uint32\n\nfunc (p Uint32Slice) Len() int           { return len(p) }\nfunc (p Uint32Slice) Less(i, j int) bool { return p[i] < p[j] }\nfunc (p Uint32Slice) Swap(i, j int)      { p[i], p[j] = p[j], p[i] }\n\ntype Float32Slice []float32\n\nfunc (p Float32Slice) Len() int           { return len(p) }\nfunc (p Float32Slice) Less(i, j int) bool { return p[i] < p[j] }\nfunc (p Float32Slice) Swap(i, j int)      { p[i], p[j] = p[j], p[i] }\n"
  },
  {
    "path": "vendor/github.com/golang/glog/LICENSE",
    "content": "Apache License\nVersion 2.0, January 2004\nhttp://www.apache.org/licenses/\n\nTERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n1. Definitions.\n\n\"License\" shall mean the terms and conditions for use, reproduction, and\ndistribution as defined by Sections 1 through 9 of this document.\n\n\"Licensor\" shall mean the copyright owner or entity authorized by the copyright\nowner that is granting the License.\n\n\"Legal Entity\" shall mean the union of the acting entity and all other entities\nthat control, are controlled by, or are under common control with that entity.\nFor the purposes of this definition, \"control\" means (i) the power, direct or\nindirect, to cause the direction or management of such entity, whether by\ncontract or otherwise, or (ii) ownership of fifty percent (50%) or more of the\noutstanding shares, or (iii) beneficial ownership of such entity.\n\n\"You\" (or \"Your\") shall mean an individual or Legal Entity exercising\npermissions granted by this License.\n\n\"Source\" form shall mean the preferred form for making modifications, including\nbut not limited to software source code, documentation source, and configuration\nfiles.\n\n\"Object\" form shall mean any form resulting from mechanical transformation or\ntranslation of a Source form, including but not limited to compiled object code,\ngenerated documentation, and conversions to other media types.\n\n\"Work\" shall mean the work of authorship, whether in Source or Object form, made\navailable under the License, as indicated by a copyright notice that is included\nin or attached to the work (an example is provided in the Appendix below).\n\n\"Derivative Works\" shall mean any work, whether in Source or Object form, that\nis based on (or derived from) the Work and for which the editorial revisions,\nannotations, elaborations, or other modifications represent, as a whole, an\noriginal work of authorship. For the purposes of this License, Derivative Works\nshall not include works that remain separable from, or merely link (or bind by\nname) to the interfaces of, the Work and Derivative Works thereof.\n\n\"Contribution\" shall mean any work of authorship, including the original version\nof the Work and any modifications or additions to that Work or Derivative Works\nthereof, that is intentionally submitted to Licensor for inclusion in the Work\nby the copyright owner or by an individual or Legal Entity authorized to submit\non behalf of the copyright owner. For the purposes of this definition,\n\"submitted\" means any form of electronic, verbal, or written communication sent\nto the Licensor or its representatives, including but not limited to\ncommunication on electronic mailing lists, source code control systems, and\nissue tracking systems that are managed by, or on behalf of, the Licensor for\nthe purpose of discussing and improving the Work, but excluding communication\nthat is conspicuously marked or otherwise designated in writing by the copyright\nowner as \"Not a Contribution.\"\n\n\"Contributor\" shall mean Licensor and any individual or Legal Entity on behalf\nof whom a Contribution has been received by Licensor and subsequently\nincorporated within the Work.\n\n2. Grant of Copyright License.\n\nSubject to the terms and conditions of this License, each Contributor hereby\ngrants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,\nirrevocable copyright license to reproduce, prepare Derivative Works of,\npublicly display, publicly perform, sublicense, and distribute the Work and such\nDerivative Works in Source or Object form.\n\n3. Grant of Patent License.\n\nSubject to the terms and conditions of this License, each Contributor hereby\ngrants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,\nirrevocable (except as stated in this section) patent license to make, have\nmade, use, offer to sell, sell, import, and otherwise transfer the Work, where\nsuch license applies only to those patent claims licensable by such Contributor\nthat are necessarily infringed by their Contribution(s) alone or by combination\nof their Contribution(s) with the Work to which such Contribution(s) was\nsubmitted. If You institute patent litigation against any entity (including a\ncross-claim or counterclaim in a lawsuit) alleging that the Work or a\nContribution incorporated within the Work constitutes direct or contributory\npatent infringement, then any patent licenses granted to You under this License\nfor that Work shall terminate as of the date such litigation is filed.\n\n4. Redistribution.\n\nYou may reproduce and distribute copies of the Work or Derivative Works thereof\nin any medium, with or without modifications, and in Source or Object form,\nprovided that You meet the following conditions:\n\nYou must give any other recipients of the Work or Derivative Works a copy of\nthis License; and\nYou must cause any modified files to carry prominent notices stating that You\nchanged the files; and\nYou must retain, in the Source form of any Derivative Works that You distribute,\nall copyright, patent, trademark, and attribution notices from the Source form\nof the Work, excluding those notices that do not pertain to any part of the\nDerivative Works; and\nIf the Work includes a \"NOTICE\" text file as part of its distribution, then any\nDerivative Works that You distribute must include a readable copy of the\nattribution notices contained within such NOTICE file, excluding those notices\nthat do not pertain to any part of the Derivative Works, in at least one of the\nfollowing places: within a NOTICE text file distributed as part of the\nDerivative Works; within the Source form or documentation, if provided along\nwith the Derivative Works; or, within a display generated by the Derivative\nWorks, if and wherever such third-party notices normally appear. The contents of\nthe NOTICE file are for informational purposes only and do not modify the\nLicense. You may add Your own attribution notices within Derivative Works that\nYou distribute, alongside or as an addendum to the NOTICE text from the Work,\nprovided that such additional attribution notices cannot be construed as\nmodifying the License.\nYou may add Your own copyright statement to Your modifications and may provide\nadditional or different license terms and conditions for use, reproduction, or\ndistribution of Your modifications, or for any such Derivative Works as a whole,\nprovided Your use, reproduction, and distribution of the Work otherwise complies\nwith the conditions stated in this License.\n\n5. Submission of Contributions.\n\nUnless You explicitly state otherwise, any Contribution intentionally submitted\nfor inclusion in the Work by You to the Licensor shall be under the terms and\nconditions of this License, without any additional terms or conditions.\nNotwithstanding the above, nothing herein shall supersede or modify the terms of\nany separate license agreement you may have executed with Licensor regarding\nsuch Contributions.\n\n6. Trademarks.\n\nThis License does not grant permission to use the trade names, trademarks,\nservice marks, or product names of the Licensor, except as required for\nreasonable and customary use in describing the origin of the Work and\nreproducing the content of the NOTICE file.\n\n7. Disclaimer of Warranty.\n\nUnless required by applicable law or agreed to in writing, Licensor provides the\nWork (and each Contributor provides its Contributions) on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,\nincluding, without limitation, any warranties or conditions of TITLE,\nNON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are\nsolely responsible for determining the appropriateness of using or\nredistributing the Work and assume any risks associated with Your exercise of\npermissions under this License.\n\n8. Limitation of Liability.\n\nIn no event and under no legal theory, whether in tort (including negligence),\ncontract, or otherwise, unless required by applicable law (such as deliberate\nand grossly negligent acts) or agreed to in writing, shall any Contributor be\nliable to You for damages, including any direct, indirect, special, incidental,\nor consequential damages of any character arising as a result of this License or\nout of the use or inability to use the Work (including but not limited to\ndamages for loss of goodwill, work stoppage, computer failure or malfunction, or\nany and all other commercial damages or losses), even if such Contributor has\nbeen advised of the possibility of such damages.\n\n9. Accepting Warranty or Additional Liability.\n\nWhile redistributing the Work or Derivative Works thereof, You may choose to\noffer, and charge a fee for, acceptance of support, warranty, indemnity, or\nother liability obligations and/or rights consistent with this License. However,\nin accepting such obligations, You may act only on Your own behalf and on Your\nsole responsibility, not on behalf of any other Contributor, and only if You\nagree to indemnify, defend, and hold each Contributor harmless for any liability\nincurred by, or claims asserted against, such Contributor by reason of your\naccepting any such warranty or additional liability.\n\nEND OF TERMS AND CONDITIONS\n\nAPPENDIX: How to apply the Apache License to your work\n\nTo apply the Apache License to your work, attach the following boilerplate\nnotice, with the fields enclosed by brackets \"[]\" replaced with your own\nidentifying information. (Don't include the brackets!) The text should be\nenclosed in the appropriate comment syntax for the file format. We also\nrecommend that a file or class name and description of purpose be included on\nthe same \"printed page\" as the copyright notice for easier identification within\nthird-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/golang/glog/README.md",
    "content": "# glog\n\n[![PkgGoDev](https://pkg.go.dev/badge/github.com/golang/glog)](https://pkg.go.dev/github.com/golang/glog)\n\nLeveled execution logs for Go.\n\nThis is an efficient pure Go implementation of leveled logs in the\nmanner of the open source C++ package [_glog_](https://github.com/google/glog).\n\nBy binding methods to booleans it is possible to use the log package without paying the expense of evaluating the arguments to the log. Through the `-vmodule` flag, the package also provides fine-grained\ncontrol over logging at the file level.\n\nThe comment from `glog.go` introduces the ideas:\n\nPackage _glog_ implements logging analogous to the Google-internal C++ INFO/ERROR/V setup.  It provides the functions Info, Warning, Error, Fatal, plus formatting variants such as Infof. It also provides V-style loggingcontrolled by the `-v` and `-vmodule=file=2` flags.\n\t\nBasic examples:\n\n```go\nglog.Info(\"Prepare to repel boarders\")\n\t\nglog.Fatalf(\"Initialization failed: %s\", err)\n```\n\t\nSee the documentation for the V function for an explanation of these examples:\n\n```go\nif glog.V(2) {\n\tglog.Info(\"Starting transaction...\")\n}\nglog.V(2).Infoln(\"Processed\", nItems, \"elements\")\n```\n\nThe repository contains an open source version of the log package used inside Google. The master copy of the source lives inside Google, not here. The code in this repo is for export only and is not itself under development. Feature requests will be ignored.\n\nSend bug reports to golang-nuts@googlegroups.com.\n"
  },
  {
    "path": "vendor/github.com/golang/glog/glog.go",
    "content": "// Go support for leveled logs, analogous to https://github.com/google/glog.\n//\n// Copyright 2023 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Package glog implements logging analogous to the Google-internal C++ INFO/ERROR/V setup.\n// It provides functions that have a name matched by regex:\n//\n//\t(Info|Warning|Error|Fatal)(Context)?(Depth)?(f)?\n//\n// If Context is present, function takes context.Context argument. The\n// context is used to pass through the Trace Context to log sinks that can make use\n// of it.\n// It is recommended to use the context variant of the functions over the non-context\n// variants if a context is available to make sure the Trace Contexts are present\n// in logs.\n//\n// If Depth is present, this function calls log from a different depth in the call stack.\n// This enables a callee to emit logs that use the callsite information of its caller\n// or any other callers in the stack. When depth == 0, the original callee's line\n// information is emitted. When depth > 0, depth frames are skipped in the call stack\n// and the final frame is treated like the original callee to Info.\n//\n// If 'f' is present, function formats according to a format specifier.\n//\n// This package also provides V-style logging controlled by the -v and -vmodule=file=2 flags.\n//\n// Basic examples:\n//\n//\tglog.Info(\"Prepare to repel boarders\")\n//\n//\tglog.Fatalf(\"Initialization failed: %s\", err)\n//\n// See the documentation for the V function for an explanation of these examples:\n//\n//\tif glog.V(2) {\n//\t\tglog.Info(\"Starting transaction...\")\n//\t}\n//\n//\tglog.V(2).Infoln(\"Processed\", nItems, \"elements\")\n//\n// Log output is buffered and written periodically using Flush. Programs\n// should call Flush before exiting to guarantee all log output is written.\n//\n// By default, all log statements write to files in a temporary directory.\n// This package provides several flags that modify this behavior.\n// As a result, flag.Parse must be called before any logging is done.\n//\n//\t-logtostderr=false\n//\t\tLogs are written to standard error instead of to files.\n//\t-alsologtostderr=false\n//\t\tLogs are written to standard error as well as to files.\n//\t-stderrthreshold=ERROR\n//\t\tLog events at or above this severity are logged to standard\n//\t\terror as well as to files.\n//\t-log_dir=\"\"\n//\t\tLog files will be written to this directory instead of the\n//\t\tdefault temporary directory.\n//\n// Other flags provide aids to debugging.\n//\n//\t-log_backtrace_at=\"\"\n//\t\tA comma-separated list of file and line numbers holding a logging\n//\t\tstatement, such as\n//\t\t\t-log_backtrace_at=gopherflakes.go:234\n//\t\tA stack trace will be written to the Info log whenever execution\n//\t\thits one of these statements. (Unlike with -vmodule, the \".go\"\n//\t\tmust be present.)\n//\t-v=0\n//\t\tEnable V-leveled logging at the specified level.\n//\t-vmodule=\"\"\n//\t\tThe syntax of the argument is a comma-separated list of pattern=N,\n//\t\twhere pattern is a literal file name (minus the \".go\" suffix) or\n//\t\t\"glob\" pattern and N is a V level. For instance,\n//\t\t\t-vmodule=gopher*=3\n//\t\tsets the V level to 3 in all Go files whose names begin with \"gopher\",\n//\t\tand\n//\t\t\t-vmodule=/path/to/glog/glog_test=1\n//\t\tsets the V level to 1 in the Go file /path/to/glog/glog_test.go.\n//\t\tIf a glob pattern contains a slash, it is matched against the full path,\n//\t\tand the file name. Otherwise, the pattern is\n//\t\tmatched only against the file's basename.  When both -vmodule and -v\n//\t\tare specified, the -vmodule values take precedence for the specified\n//\t\tmodules.\npackage glog\n\n// This file contains the parts of the log package that are shared among all\n// implementations (file, envelope, and appengine).\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\tstdLog \"log\"\n\t\"os\"\n\t\"reflect\"\n\t\"runtime\"\n\t\"runtime/pprof\"\n\t\"strconv\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\t\"github.com/golang/glog/internal/logsink\"\n\t\"github.com/golang/glog/internal/stackdump\"\n)\n\nvar timeNow = time.Now // Stubbed out for testing.\n\n// MaxSize is the maximum size of a log file in bytes.\nvar MaxSize uint64 = 1024 * 1024 * 1800\n\n// ErrNoLog is the error we return if no log file has yet been created\n// for the specified log type.\nvar ErrNoLog = errors.New(\"log file not yet created\")\n\n// OutputStats tracks the number of output lines and bytes written.\ntype OutputStats struct {\n\tlines int64\n\tbytes int64\n}\n\n// Lines returns the number of lines written.\nfunc (s *OutputStats) Lines() int64 {\n\treturn atomic.LoadInt64(&s.lines)\n}\n\n// Bytes returns the number of bytes written.\nfunc (s *OutputStats) Bytes() int64 {\n\treturn atomic.LoadInt64(&s.bytes)\n}\n\n// Stats tracks the number of lines of output and number of bytes\n// per severity level. Values must be read with atomic.LoadInt64.\nvar Stats struct {\n\tInfo, Warning, Error OutputStats\n}\n\nvar severityStats = [...]*OutputStats{\n\tlogsink.Info:    &Stats.Info,\n\tlogsink.Warning: &Stats.Warning,\n\tlogsink.Error:   &Stats.Error,\n\tlogsink.Fatal:   nil,\n}\n\n// Level specifies a level of verbosity for V logs.  The -v flag is of type\n// Level and should be modified only through the flag.Value interface.\ntype Level int32\n\nvar metaPool sync.Pool // Pool of *logsink.Meta.\n\n// metaPoolGet returns a *logsink.Meta from metaPool as both an interface and a\n// pointer, allocating a new one if necessary.  (Returning the interface value\n// directly avoids an allocation if there was an existing pointer in the pool.)\nfunc metaPoolGet() (any, *logsink.Meta) {\n\tif metai := metaPool.Get(); metai != nil {\n\t\treturn metai, metai.(*logsink.Meta)\n\t}\n\tmeta := new(logsink.Meta)\n\treturn meta, meta\n}\n\ntype stack bool\n\nconst (\n\tnoStack   = stack(false)\n\twithStack = stack(true)\n)\n\nfunc appendBacktrace(depth int, format string, args []any) (string, []any) {\n\t// Capture a backtrace as a stackdump.Stack (both text and PC slice).\n\t// Structured log sinks can extract the backtrace in whichever format they\n\t// prefer (PCs or text), and Text sinks will include it as just another part\n\t// of the log message.\n\t//\n\t// Use depth instead of depth+1 so that the backtrace always includes the\n\t// log function itself - otherwise the reason for the trace appearing in the\n\t// log may not be obvious to the reader.\n\tdump := stackdump.Caller(depth)\n\n\t// Add an arg and an entry in the format string for the stack dump.\n\t//\n\t// Copy the \"args\" slice to avoid a rare but serious aliasing bug\n\t// (corrupting the caller's slice if they passed it to a non-Fatal call\n\t// using \"...\").\n\tformat = format + \"\\n\\n%v\\n\"\n\targs = append(append([]any(nil), args...), dump)\n\n\treturn format, args\n}\n\n// logf acts as ctxlogf, but doesn't expect a context.\nfunc logf(depth int, severity logsink.Severity, verbose bool, stack stack, format string, args ...any) {\n\tctxlogf(nil, depth+1, severity, verbose, stack, format, args...)\n}\n\n// ctxlogf writes a log message for a log function call (or log function wrapper)\n// at the given depth in the current goroutine's stack.\nfunc ctxlogf(ctx context.Context, depth int, severity logsink.Severity, verbose bool, stack stack, format string, args ...any) {\n\tnow := timeNow()\n\t_, file, line, ok := runtime.Caller(depth + 1)\n\tif !ok {\n\t\tfile = \"???\"\n\t\tline = 1\n\t}\n\n\tif stack == withStack || backtraceAt(file, line) {\n\t\tformat, args = appendBacktrace(depth+1, format, args)\n\t}\n\n\tmetai, meta := metaPoolGet()\n\t*meta = logsink.Meta{\n\t\tContext:  ctx,\n\t\tTime:     now,\n\t\tFile:     file,\n\t\tLine:     line,\n\t\tDepth:    depth + 1,\n\t\tSeverity: severity,\n\t\tVerbose:  verbose,\n\t\tThread:   int64(pid),\n\t}\n\tsinkf(meta, format, args...)\n\t// Clear pointer fields so they can be garbage collected early.\n\tmeta.Context = nil\n\tmeta.Stack = nil\n\tmetaPool.Put(metai)\n}\n\nfunc sinkf(meta *logsink.Meta, format string, args ...any) {\n\tmeta.Depth++\n\tn, err := logsink.Printf(meta, format, args...)\n\tif stats := severityStats[meta.Severity]; stats != nil {\n\t\tatomic.AddInt64(&stats.lines, 1)\n\t\tatomic.AddInt64(&stats.bytes, int64(n))\n\t}\n\n\tif err != nil {\n\t\tlogsink.Printf(meta, \"glog: exiting because of error: %s\", err)\n\t\tsinks.file.Flush()\n\t\tos.Exit(2)\n\t}\n}\n\n// CopyStandardLogTo arranges for messages written to the Go \"log\" package's\n// default logs to also appear in the Google logs for the named and lower\n// severities.  Subsequent changes to the standard log's default output location\n// or format may break this behavior.\n//\n// Valid names are \"INFO\", \"WARNING\", \"ERROR\", and \"FATAL\".  If the name is not\n// recognized, CopyStandardLogTo panics.\nfunc CopyStandardLogTo(name string) {\n\tsev, err := logsink.ParseSeverity(name)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"log.CopyStandardLogTo(%q): %v\", name, err))\n\t}\n\t// Set a log format that captures the user's file and line:\n\t//   d.go:23: message\n\tstdLog.SetFlags(stdLog.Lshortfile)\n\tstdLog.SetOutput(logBridge(sev))\n}\n\n// NewStandardLogger returns a Logger that writes to the Google logs for the\n// named and lower severities.\n//\n// Valid names are \"INFO\", \"WARNING\", \"ERROR\", and \"FATAL\". If the name is not\n// recognized, NewStandardLogger panics.\nfunc NewStandardLogger(name string) *stdLog.Logger {\n\tsev, err := logsink.ParseSeverity(name)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"log.NewStandardLogger(%q): %v\", name, err))\n\t}\n\treturn stdLog.New(logBridge(sev), \"\", stdLog.Lshortfile)\n}\n\n// logBridge provides the Write method that enables CopyStandardLogTo to connect\n// Go's standard logs to the logs provided by this package.\ntype logBridge logsink.Severity\n\n// Write parses the standard logging line and passes its components to the\n// logger for severity(lb).\nfunc (lb logBridge) Write(b []byte) (n int, err error) {\n\tvar (\n\t\tfile = \"???\"\n\t\tline = 1\n\t\ttext string\n\t)\n\t// Split \"d.go:23: message\" into \"d.go\", \"23\", and \"message\".\n\tif parts := bytes.SplitN(b, []byte{':'}, 3); len(parts) != 3 || len(parts[0]) < 1 || len(parts[2]) < 1 {\n\t\ttext = fmt.Sprintf(\"bad log format: %s\", b)\n\t} else {\n\t\tfile = string(parts[0])\n\t\ttext = string(parts[2][1:]) // skip leading space\n\t\tline, err = strconv.Atoi(string(parts[1]))\n\t\tif err != nil {\n\t\t\ttext = fmt.Sprintf(\"bad line number: %s\", b)\n\t\t\tline = 1\n\t\t}\n\t}\n\n\t// The depth below hard-codes details of how stdlog gets here.  The alternative would be to walk\n\t// up the stack looking for src/log/log.go but that seems like it would be\n\t// unfortunately slow.\n\tconst stdLogDepth = 4\n\n\tmetai, meta := metaPoolGet()\n\t*meta = logsink.Meta{\n\t\tTime:     timeNow(),\n\t\tFile:     file,\n\t\tLine:     line,\n\t\tDepth:    stdLogDepth,\n\t\tSeverity: logsink.Severity(lb),\n\t\tThread:   int64(pid),\n\t}\n\n\tformat := \"%s\"\n\targs := []any{text}\n\tif backtraceAt(file, line) {\n\t\tformat, args = appendBacktrace(meta.Depth, format, args)\n\t}\n\n\tsinkf(meta, format, args...)\n\tmetaPool.Put(metai)\n\n\treturn len(b), nil\n}\n\n// defaultFormat returns a fmt.Printf format specifier that formats its\n// arguments as if they were passed to fmt.Print.\nfunc defaultFormat(args []any) string {\n\tn := len(args)\n\tswitch n {\n\tcase 0:\n\t\treturn \"\"\n\tcase 1:\n\t\treturn \"%v\"\n\t}\n\n\tb := make([]byte, 0, n*3-1)\n\twasString := true // Suppress leading space.\n\tfor _, arg := range args {\n\t\tisString := arg != nil && reflect.TypeOf(arg).Kind() == reflect.String\n\t\tif wasString || isString {\n\t\t\tb = append(b, \"%v\"...)\n\t\t} else {\n\t\t\tb = append(b, \" %v\"...)\n\t\t}\n\t\twasString = isString\n\t}\n\treturn string(b)\n}\n\n// lnFormat returns a fmt.Printf format specifier that formats its arguments\n// as if they were passed to fmt.Println.\nfunc lnFormat(args []any) string {\n\tif len(args) == 0 {\n\t\treturn \"\\n\"\n\t}\n\n\tb := make([]byte, 0, len(args)*3)\n\tfor range args {\n\t\tb = append(b, \"%v \"...)\n\t}\n\tb[len(b)-1] = '\\n' // Replace the last space with a newline.\n\treturn string(b)\n}\n\n// Verbose is a boolean type that implements Infof (like Printf) etc.\n// See the documentation of V for more information.\ntype Verbose bool\n\n// V reports whether verbosity at the call site is at least the requested level.\n// The returned value is a boolean of type Verbose, which implements Info, Infoln\n// and Infof. These methods will write to the Info log if called.\n// Thus, one may write either\n//\n//\tif glog.V(2) { glog.Info(\"log this\") }\n//\n// or\n//\n//\tglog.V(2).Info(\"log this\")\n//\n// The second form is shorter but the first is cheaper if logging is off because it does\n// not evaluate its arguments.\n//\n// Whether an individual call to V generates a log record depends on the setting of\n// the -v and --vmodule flags; both are off by default. If the level in the call to\n// V is at most the value of -v, or of -vmodule for the source file containing the\n// call, the V call will log.\nfunc V(level Level) Verbose {\n\treturn VDepth(1, level)\n}\n\n// VDepth acts as V but uses depth to determine which call frame to check vmodule for.\n// VDepth(0, level) is the same as V(level).\nfunc VDepth(depth int, level Level) Verbose {\n\treturn Verbose(verboseEnabled(depth+1, level))\n}\n\n// Info is equivalent to the global Info function, guarded by the value of v.\n// See the documentation of V for usage.\nfunc (v Verbose) Info(args ...any) {\n\tv.InfoDepth(1, args...)\n}\n\n// InfoDepth is equivalent to the global InfoDepth function, guarded by the value of v.\n// See the documentation of V for usage.\nfunc (v Verbose) InfoDepth(depth int, args ...any) {\n\tif v {\n\t\tlogf(depth+1, logsink.Info, true, noStack, defaultFormat(args), args...)\n\t}\n}\n\n// InfoDepthf is equivalent to the global InfoDepthf function, guarded by the value of v.\n// See the documentation of V for usage.\nfunc (v Verbose) InfoDepthf(depth int, format string, args ...any) {\n\tif v {\n\t\tlogf(depth+1, logsink.Info, true, noStack, format, args...)\n\t}\n}\n\n// Infoln is equivalent to the global Infoln function, guarded by the value of v.\n// See the documentation of V for usage.\nfunc (v Verbose) Infoln(args ...any) {\n\tif v {\n\t\tlogf(1, logsink.Info, true, noStack, lnFormat(args), args...)\n\t}\n}\n\n// Infof is equivalent to the global Infof function, guarded by the value of v.\n// See the documentation of V for usage.\nfunc (v Verbose) Infof(format string, args ...any) {\n\tif v {\n\t\tlogf(1, logsink.Info, true, noStack, format, args...)\n\t}\n}\n\n// InfoContext is equivalent to the global InfoContext function, guarded by the value of v.\n// See the documentation of V for usage.\nfunc (v Verbose) InfoContext(ctx context.Context, args ...any) {\n\tv.InfoContextDepth(ctx, 1, args...)\n}\n\n// InfoContextf is equivalent to the global InfoContextf function, guarded by the value of v.\n// See the documentation of V for usage.\nfunc (v Verbose) InfoContextf(ctx context.Context, format string, args ...any) {\n\tif v {\n\t\tctxlogf(ctx, 1, logsink.Info, true, noStack, format, args...)\n\t}\n}\n\n// InfoContextDepth is equivalent to the global InfoContextDepth function, guarded by the value of v.\n// See the documentation of V for usage.\nfunc (v Verbose) InfoContextDepth(ctx context.Context, depth int, args ...any) {\n\tif v {\n\t\tctxlogf(ctx, depth+1, logsink.Info, true, noStack, defaultFormat(args), args...)\n\t}\n}\n\n// InfoContextDepthf is equivalent to the global InfoContextDepthf function, guarded by the value of v.\n// See the documentation of V for usage.\nfunc (v Verbose) InfoContextDepthf(ctx context.Context, depth int, format string, args ...any) {\n\tif v {\n\t\tctxlogf(ctx, depth+1, logsink.Info, true, noStack, format, args...)\n\t}\n}\n\n// Info logs to the INFO log.\n// Arguments are handled in the manner of fmt.Print; a newline is appended if missing.\nfunc Info(args ...any) {\n\tInfoDepth(1, args...)\n}\n\n// InfoDepth calls Info from a different depth in the call stack.\n// This enables a callee to emit logs that use the callsite information of its caller\n// or any other callers in the stack. When depth == 0, the original callee's line\n// information is emitted. When depth > 0, depth frames are skipped in the call stack\n// and the final frame is treated like the original callee to Info.\nfunc InfoDepth(depth int, args ...any) {\n\tlogf(depth+1, logsink.Info, false, noStack, defaultFormat(args), args...)\n}\n\n// InfoDepthf acts as InfoDepth but with format string.\nfunc InfoDepthf(depth int, format string, args ...any) {\n\tlogf(depth+1, logsink.Info, false, noStack, format, args...)\n}\n\n// Infoln logs to the INFO log.\n// Arguments are handled in the manner of fmt.Println; a newline is appended if missing.\nfunc Infoln(args ...any) {\n\tlogf(1, logsink.Info, false, noStack, lnFormat(args), args...)\n}\n\n// Infof logs to the INFO log.\n// Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\nfunc Infof(format string, args ...any) {\n\tlogf(1, logsink.Info, false, noStack, format, args...)\n}\n\n// InfoContext is like [Info], but with an extra [context.Context] parameter. The\n// context is used to pass the Trace Context to log sinks.\nfunc InfoContext(ctx context.Context, args ...any) {\n\tInfoContextDepth(ctx, 1, args...)\n}\n\n// InfoContextf is like [Infof], but with an extra [context.Context] parameter. The\n// context is used to pass the Trace Context to log sinks.\nfunc InfoContextf(ctx context.Context, format string, args ...any) {\n\tctxlogf(ctx, 1, logsink.Info, false, noStack, format, args...)\n}\n\n// InfoContextDepth is like [InfoDepth], but with an extra [context.Context] parameter. The\n// context is used to pass the Trace Context to log sinks.\nfunc InfoContextDepth(ctx context.Context, depth int, args ...any) {\n\tctxlogf(ctx, depth+1, logsink.Info, false, noStack, defaultFormat(args), args...)\n}\n\n// InfoContextDepthf is like [InfoDepthf], but with an extra [context.Context] parameter. The\n// context is used to pass the Trace Context to log sinks.\nfunc InfoContextDepthf(ctx context.Context, depth int, format string, args ...any) {\n\tctxlogf(ctx, depth+1, logsink.Info, false, noStack, format, args...)\n}\n\n// Warning logs to the WARNING and INFO logs.\n// Arguments are handled in the manner of fmt.Print; a newline is appended if missing.\nfunc Warning(args ...any) {\n\tWarningDepth(1, args...)\n}\n\n// WarningDepth acts as Warning but uses depth to determine which call frame to log.\n// WarningDepth(0, \"msg\") is the same as Warning(\"msg\").\nfunc WarningDepth(depth int, args ...any) {\n\tlogf(depth+1, logsink.Warning, false, noStack, defaultFormat(args), args...)\n}\n\n// WarningDepthf acts as Warningf but uses depth to determine which call frame to log.\n// WarningDepthf(0, \"msg\") is the same as Warningf(\"msg\").\nfunc WarningDepthf(depth int, format string, args ...any) {\n\tlogf(depth+1, logsink.Warning, false, noStack, format, args...)\n}\n\n// Warningln logs to the WARNING and INFO logs.\n// Arguments are handled in the manner of fmt.Println; a newline is appended if missing.\nfunc Warningln(args ...any) {\n\tlogf(1, logsink.Warning, false, noStack, lnFormat(args), args...)\n}\n\n// Warningf logs to the WARNING and INFO logs.\n// Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\nfunc Warningf(format string, args ...any) {\n\tlogf(1, logsink.Warning, false, noStack, format, args...)\n}\n\n// WarningContext is like [Warning], but with an extra [context.Context] parameter. The\n// context is used to pass the Trace Context to log sinks.\nfunc WarningContext(ctx context.Context, args ...any) {\n\tWarningContextDepth(ctx, 1, args...)\n}\n\n// WarningContextf is like [Warningf], but with an extra [context.Context] parameter. The\n// context is used to pass the Trace Context to log sinks.\nfunc WarningContextf(ctx context.Context, format string, args ...any) {\n\tctxlogf(ctx, 1, logsink.Warning, false, noStack, format, args...)\n}\n\n// WarningContextDepth is like [WarningDepth], but with an extra [context.Context] parameter. The\n// context is used to pass the Trace Context to log sinks.\nfunc WarningContextDepth(ctx context.Context, depth int, args ...any) {\n\tctxlogf(ctx, depth+1, logsink.Warning, false, noStack, defaultFormat(args), args...)\n}\n\n// WarningContextDepthf is like [WarningDepthf], but with an extra [context.Context] parameter. The\n// context is used to pass the Trace Context to log sinks.\nfunc WarningContextDepthf(ctx context.Context, depth int, format string, args ...any) {\n\tctxlogf(ctx, depth+1, logsink.Warning, false, noStack, format, args...)\n}\n\n// Error logs to the ERROR, WARNING, and INFO logs.\n// Arguments are handled in the manner of fmt.Print; a newline is appended if missing.\nfunc Error(args ...any) {\n\tErrorDepth(1, args...)\n}\n\n// ErrorDepth acts as Error but uses depth to determine which call frame to log.\n// ErrorDepth(0, \"msg\") is the same as Error(\"msg\").\nfunc ErrorDepth(depth int, args ...any) {\n\tlogf(depth+1, logsink.Error, false, noStack, defaultFormat(args), args...)\n}\n\n// ErrorDepthf acts as Errorf but uses depth to determine which call frame to log.\n// ErrorDepthf(0, \"msg\") is the same as Errorf(\"msg\").\nfunc ErrorDepthf(depth int, format string, args ...any) {\n\tlogf(depth+1, logsink.Error, false, noStack, format, args...)\n}\n\n// Errorln logs to the ERROR, WARNING, and INFO logs.\n// Arguments are handled in the manner of fmt.Println; a newline is appended if missing.\nfunc Errorln(args ...any) {\n\tlogf(1, logsink.Error, false, noStack, lnFormat(args), args...)\n}\n\n// Errorf logs to the ERROR, WARNING, and INFO logs.\n// Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\nfunc Errorf(format string, args ...any) {\n\tlogf(1, logsink.Error, false, noStack, format, args...)\n}\n\n// ErrorContext is like [Error], but with an extra [context.Context] parameter. The\n// context is used to pass the Trace Context to log sinks.\nfunc ErrorContext(ctx context.Context, args ...any) {\n\tErrorContextDepth(ctx, 1, args...)\n}\n\n// ErrorContextf is like [Errorf], but with an extra [context.Context] parameter. The\n// context is used to pass the Trace Context to log sinks.\nfunc ErrorContextf(ctx context.Context, format string, args ...any) {\n\tctxlogf(ctx, 1, logsink.Error, false, noStack, format, args...)\n}\n\n// ErrorContextDepth is like [ErrorDepth], but with an extra [context.Context] parameter. The\n// context is used to pass the Trace Context to log sinks.\nfunc ErrorContextDepth(ctx context.Context, depth int, args ...any) {\n\tctxlogf(ctx, depth+1, logsink.Error, false, noStack, defaultFormat(args), args...)\n}\n\n// ErrorContextDepthf is like [ErrorDepthf], but with an extra [context.Context] parameter. The\n// context is used to pass the Trace Context to log sinks.\nfunc ErrorContextDepthf(ctx context.Context, depth int, format string, args ...any) {\n\tctxlogf(ctx, depth+1, logsink.Error, false, noStack, format, args...)\n}\n\nfunc ctxfatalf(ctx context.Context, depth int, format string, args ...any) {\n\tctxlogf(ctx, depth+1, logsink.Fatal, false, withStack, format, args...)\n\tsinks.file.Flush()\n\n\terr := abortProcess() // Should not return.\n\n\t// Failed to abort the process using signals.  Dump a stack trace and exit.\n\tErrorf(\"abortProcess returned unexpectedly: %v\", err)\n\tsinks.file.Flush()\n\tpprof.Lookup(\"goroutine\").WriteTo(os.Stderr, 1)\n\tos.Exit(2) // Exit with the same code as the default SIGABRT handler.\n}\n\nfunc fatalf(depth int, format string, args ...any) {\n\tctxfatalf(nil, depth+1, format, args...)\n}\n\n// Fatal logs to the FATAL, ERROR, WARNING, and INFO logs,\n// including a stack trace of all running goroutines, then calls os.Exit(2).\n// Arguments are handled in the manner of fmt.Print; a newline is appended if missing.\nfunc Fatal(args ...any) {\n\tFatalDepth(1, args...)\n}\n\n// FatalDepth acts as Fatal but uses depth to determine which call frame to log.\n// FatalDepth(0, \"msg\") is the same as Fatal(\"msg\").\nfunc FatalDepth(depth int, args ...any) {\n\tfatalf(depth+1, defaultFormat(args), args...)\n}\n\n// FatalDepthf acts as Fatalf but uses depth to determine which call frame to log.\n// FatalDepthf(0, \"msg\") is the same as Fatalf(\"msg\").\nfunc FatalDepthf(depth int, format string, args ...any) {\n\tfatalf(depth+1, format, args...)\n}\n\n// Fatalln logs to the FATAL, ERROR, WARNING, and INFO logs,\n// including a stack trace of all running goroutines, then calls os.Exit(2).\n// Arguments are handled in the manner of fmt.Println; a newline is appended if missing.\nfunc Fatalln(args ...any) {\n\tfatalf(1, lnFormat(args), args...)\n}\n\n// Fatalf logs to the FATAL, ERROR, WARNING, and INFO logs,\n// including a stack trace of all running goroutines, then calls os.Exit(2).\n// Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\nfunc Fatalf(format string, args ...any) {\n\tfatalf(1, format, args...)\n}\n\n// FatalContext is like [Fatal], but with an extra [context.Context] parameter. The\n// context is used to pass the Trace Context to log sinks.\nfunc FatalContext(ctx context.Context, args ...any) {\n\tFatalContextDepth(ctx, 1, args...)\n}\n\n// FatalContextf is like [Fatalf], but with an extra [context.Context] parameter. The\n// context is used to pass the Trace Context to log sinks.\nfunc FatalContextf(ctx context.Context, format string, args ...any) {\n\tctxfatalf(ctx, 1, format, args...)\n}\n\n// FatalContextDepth is like [FatalDepth], but with an extra [context.Context] parameter. The\n// context is used to pass the Trace Context to log sinks.\nfunc FatalContextDepth(ctx context.Context, depth int, args ...any) {\n\tctxfatalf(ctx, depth+1, defaultFormat(args), args...)\n}\n\n// FatalContextDepthf is like [FatalDepthf], but with an extra [context.Context] parameter.\nfunc FatalContextDepthf(ctx context.Context, depth int, format string, args ...any) {\n\tctxfatalf(ctx, depth+1, format, args...)\n}\n\nfunc ctxexitf(ctx context.Context, depth int, format string, args ...any) {\n\tctxlogf(ctx, depth+1, logsink.Fatal, false, noStack, format, args...)\n\tsinks.file.Flush()\n\tos.Exit(1)\n}\n\nfunc exitf(depth int, format string, args ...any) {\n\tctxexitf(nil, depth+1, format, args...)\n}\n\n// Exit logs to the FATAL, ERROR, WARNING, and INFO logs, then calls os.Exit(1).\n// Arguments are handled in the manner of fmt.Print; a newline is appended if missing.\nfunc Exit(args ...any) {\n\tExitDepth(1, args...)\n}\n\n// ExitDepth acts as Exit but uses depth to determine which call frame to log.\n// ExitDepth(0, \"msg\") is the same as Exit(\"msg\").\nfunc ExitDepth(depth int, args ...any) {\n\texitf(depth+1, defaultFormat(args), args...)\n}\n\n// ExitDepthf acts as Exitf but uses depth to determine which call frame to log.\n// ExitDepthf(0, \"msg\") is the same as Exitf(\"msg\").\nfunc ExitDepthf(depth int, format string, args ...any) {\n\texitf(depth+1, format, args...)\n}\n\n// Exitln logs to the FATAL, ERROR, WARNING, and INFO logs, then calls os.Exit(1).\nfunc Exitln(args ...any) {\n\texitf(1, lnFormat(args), args...)\n}\n\n// Exitf logs to the FATAL, ERROR, WARNING, and INFO logs, then calls os.Exit(1).\n// Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\nfunc Exitf(format string, args ...any) {\n\texitf(1, format, args...)\n}\n\n// ExitContext is like [Exit], but with an extra [context.Context] parameter. The\n// context is used to pass the Trace Context to log sinks.\nfunc ExitContext(ctx context.Context, args ...any) {\n\tExitContextDepth(ctx, 1, args...)\n}\n\n// ExitContextf is like [Exitf], but with an extra [context.Context] parameter. The\n// context is used to pass the Trace Context to log sinks.\nfunc ExitContextf(ctx context.Context, format string, args ...any) {\n\tctxexitf(ctx, 1, format, args...)\n}\n\n// ExitContextDepth is like [ExitDepth], but with an extra [context.Context] parameter. The\n// context is used to pass the Trace Context to log sinks.\nfunc ExitContextDepth(ctx context.Context, depth int, args ...any) {\n\tctxexitf(ctx, depth+1, defaultFormat(args), args...)\n}\n\n// ExitContextDepthf is like [ExitDepthf], but with an extra [context.Context] parameter. The\n// context is used to pass the Trace Context to log sinks.\nfunc ExitContextDepthf(ctx context.Context, depth int, format string, args ...any) {\n\tctxexitf(ctx, depth+1, format, args...)\n}\n"
  },
  {
    "path": "vendor/github.com/golang/glog/glog_file.go",
    "content": "// Go support for leveled logs, analogous to https://github.com/google/glog.\n//\n// Copyright 2023 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// File I/O for logs.\n\npackage glog\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"errors\"\n\t\"flag\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"runtime\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/golang/glog/internal/logsink\"\n)\n\n// logDirs lists the candidate directories for new log files.\nvar logDirs []string\n\nvar (\n\t// If non-empty, overrides the choice of directory in which to write logs.\n\t// See createLogDirs for the full list of possible destinations.\n\tlogDir      = flag.String(\"log_dir\", \"\", \"If non-empty, write log files in this directory\")\n\tlogLink     = flag.String(\"log_link\", \"\", \"If non-empty, add symbolic links in this directory to the log files\")\n\tlogBufLevel = flag.Int(\"logbuflevel\", int(logsink.Info), \"Buffer log messages logged at this level or lower\"+\n\t\t\" (-1 means don't buffer; 0 means buffer INFO only; ...). Has limited applicability on non-prod platforms.\")\n)\n\nfunc createLogDirs() {\n\tif *logDir != \"\" {\n\t\tlogDirs = append(logDirs, *logDir)\n\t}\n\tlogDirs = append(logDirs, os.TempDir())\n}\n\nvar (\n\tpid      = os.Getpid()\n\tprogram  = filepath.Base(os.Args[0])\n\thost     = \"unknownhost\"\n\tuserName = \"unknownuser\"\n)\n\nfunc init() {\n\th, err := os.Hostname()\n\tif err == nil {\n\t\thost = shortHostname(h)\n\t}\n\n\tif u := lookupUser(); u != \"\" {\n\t\tuserName = u\n\t}\n\t// Sanitize userName since it is used to construct file paths.\n\tuserName = strings.Map(func(r rune) rune {\n\t\tswitch {\n\t\tcase r >= 'a' && r <= 'z':\n\t\tcase r >= 'A' && r <= 'Z':\n\t\tcase r >= '0' && r <= '9':\n\t\tdefault:\n\t\t\treturn '_'\n\t\t}\n\t\treturn r\n\t}, userName)\n}\n\n// shortHostname returns its argument, truncating at the first period.\n// For instance, given \"www.google.com\" it returns \"www\".\nfunc shortHostname(hostname string) string {\n\tif i := strings.Index(hostname, \".\"); i >= 0 {\n\t\treturn hostname[:i]\n\t}\n\treturn hostname\n}\n\n// logName returns a new log file name containing tag, with start time t, and\n// the name for the symlink for tag.\nfunc logName(tag string, t time.Time) (name, link string) {\n\tname = fmt.Sprintf(\"%s.%s.%s.log.%s.%04d%02d%02d-%02d%02d%02d.%d\",\n\t\tprogram,\n\t\thost,\n\t\tuserName,\n\t\ttag,\n\t\tt.Year(),\n\t\tt.Month(),\n\t\tt.Day(),\n\t\tt.Hour(),\n\t\tt.Minute(),\n\t\tt.Second(),\n\t\tpid)\n\treturn name, program + \".\" + tag\n}\n\nvar onceLogDirs sync.Once\n\n// create creates a new log file and returns the file and its filename, which\n// contains tag (\"INFO\", \"FATAL\", etc.) and t.  If the file is created\n// successfully, create also attempts to update the symlink for that tag, ignoring\n// errors.\nfunc create(tag string, t time.Time, dir string) (f *os.File, filename string, err error) {\n\tif dir != \"\" {\n\t\tf, name, err := createInDir(dir, tag, t)\n\t\tif err == nil {\n\t\t\treturn f, name, err\n\t\t}\n\t\treturn nil, \"\", fmt.Errorf(\"log: cannot create log: %v\", err)\n\t}\n\n\tonceLogDirs.Do(createLogDirs)\n\tif len(logDirs) == 0 {\n\t\treturn nil, \"\", errors.New(\"log: no log dirs\")\n\t}\n\tvar lastErr error\n\tfor _, dir := range logDirs {\n\t\tf, name, err := createInDir(dir, tag, t)\n\t\tif err == nil {\n\t\t\treturn f, name, err\n\t\t}\n\t\tlastErr = err\n\t}\n\treturn nil, \"\", fmt.Errorf(\"log: cannot create log: %v\", lastErr)\n}\n\nfunc createInDir(dir, tag string, t time.Time) (f *os.File, name string, err error) {\n\tname, link := logName(tag, t)\n\tfname := filepath.Join(dir, name)\n\t// O_EXCL is important here, as it prevents a vulnerability. The general idea is that logs often\n\t// live in an insecure directory (like /tmp), so an unprivileged attacker could create fname in\n\t// advance as a symlink to a file the logging process can access, but the attacker cannot. O_EXCL\n\t// fails the open if it already exists, thus prevent our this code from opening the existing file\n\t// the attacker points us to.\n\tf, err = os.OpenFile(fname, os.O_RDWR|os.O_CREATE|os.O_EXCL, 0666)\n\tif err == nil {\n\t\tsymlink := filepath.Join(dir, link)\n\t\tos.Remove(symlink)        // ignore err\n\t\tos.Symlink(name, symlink) // ignore err\n\t\tif *logLink != \"\" {\n\t\t\tlsymlink := filepath.Join(*logLink, link)\n\t\t\tos.Remove(lsymlink)         // ignore err\n\t\t\tos.Symlink(fname, lsymlink) // ignore err\n\t\t}\n\t\treturn f, fname, nil\n\t}\n\treturn nil, \"\", err\n}\n\n// flushSyncWriter is the interface satisfied by logging destinations.\ntype flushSyncWriter interface {\n\tFlush() error\n\tSync() error\n\tio.Writer\n\tfilenames() []string\n}\n\nvar sinks struct {\n\tstderr stderrSink\n\tfile   fileSink\n}\n\nfunc init() {\n\t// Register stderr first: that way if we crash during file-writing at least\n\t// the log will have gone somewhere.\n\tif shouldRegisterStderrSink() {\n\t\tlogsink.TextSinks = append(logsink.TextSinks, &sinks.stderr)\n\t}\n\tlogsink.TextSinks = append(logsink.TextSinks, &sinks.file)\n\n\tsinks.file.flushChan = make(chan logsink.Severity, 1)\n\tgo sinks.file.flushDaemon()\n}\n\n// stderrSink is a logsink.Text that writes log entries to stderr\n// if they meet certain conditions.\ntype stderrSink struct {\n\tmu sync.Mutex\n\tw  io.Writer // if nil Emit uses os.Stderr directly\n}\n\n// Enabled implements logsink.Text.Enabled.  It returns true if any of the\n// various stderr flags are enabled for logs of the given severity, if the log\n// message is from the standard \"log\" package, or if google.Init has not yet run\n// (and hence file logging is not yet initialized).\nfunc (s *stderrSink) Enabled(m *logsink.Meta) bool {\n\treturn toStderr || alsoToStderr || m.Severity >= stderrThreshold.get()\n}\n\n// Emit implements logsink.Text.Emit.\nfunc (s *stderrSink) Emit(m *logsink.Meta, data []byte) (n int, err error) {\n\ts.mu.Lock()\n\tdefer s.mu.Unlock()\n\tw := s.w\n\tif w == nil {\n\t\tw = os.Stderr\n\t}\n\tdn, err := w.Write(data)\n\tn += dn\n\treturn n, err\n}\n\n// severityWriters is an array of flushSyncWriter with a value for each\n// logsink.Severity.\ntype severityWriters [4]flushSyncWriter\n\n// fileSink is a logsink.Text that prints to a set of Google log files.\ntype fileSink struct {\n\tmu sync.Mutex\n\t// file holds writer for each of the log types.\n\tfile      severityWriters\n\tflushChan chan logsink.Severity\n}\n\n// Enabled implements logsink.Text.Enabled.  It returns true if google.Init\n// has run and both --disable_log_to_disk and --logtostderr are false.\nfunc (s *fileSink) Enabled(m *logsink.Meta) bool {\n\treturn !toStderr\n}\n\n// Emit implements logsink.Text.Emit\nfunc (s *fileSink) Emit(m *logsink.Meta, data []byte) (n int, err error) {\n\ts.mu.Lock()\n\tdefer s.mu.Unlock()\n\n\tif err = s.createMissingFiles(m.Severity); err != nil {\n\t\treturn 0, err\n\t}\n\tfor sev := m.Severity; sev >= logsink.Info; sev-- {\n\t\tif _, fErr := s.file[sev].Write(data); fErr != nil && err == nil {\n\t\t\terr = fErr // Take the first error.\n\t\t}\n\t}\n\tn = len(data)\n\tif int(m.Severity) > *logBufLevel {\n\t\tselect {\n\t\tcase s.flushChan <- m.Severity:\n\t\tdefault:\n\t\t}\n\t}\n\n\treturn n, err\n}\n\n// syncBuffer joins a bufio.Writer to its underlying file, providing access to the\n// file's Sync method and providing a wrapper for the Write method that provides log\n// file rotation. There are conflicting methods, so the file cannot be embedded.\n// s.mu is held for all its methods.\ntype syncBuffer struct {\n\tsink *fileSink\n\t*bufio.Writer\n\tfile   *os.File\n\tnames  []string\n\tsev    logsink.Severity\n\tnbytes uint64 // The number of bytes written to this file\n\tmadeAt time.Time\n}\n\nfunc (sb *syncBuffer) Sync() error {\n\treturn sb.file.Sync()\n}\n\nfunc (sb *syncBuffer) Write(p []byte) (n int, err error) {\n\t// Rotate the file if it is too large, but ensure we only do so,\n\t// if rotate doesn't create a conflicting filename.\n\tif sb.nbytes+uint64(len(p)) >= MaxSize {\n\t\tnow := timeNow()\n\t\tif now.After(sb.madeAt.Add(1*time.Second)) || now.Second() != sb.madeAt.Second() {\n\t\t\tif err := sb.rotateFile(now); err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t}\n\t}\n\tn, err = sb.Writer.Write(p)\n\tsb.nbytes += uint64(n)\n\treturn n, err\n}\n\nfunc (sb *syncBuffer) filenames() []string {\n\treturn sb.names\n}\n\nconst footer = \"\\nCONTINUED IN NEXT FILE\\n\"\n\n// rotateFile closes the syncBuffer's file and starts a new one.\nfunc (sb *syncBuffer) rotateFile(now time.Time) error {\n\tvar err error\n\tpn := \"<none>\"\n\tfile, name, err := create(sb.sev.String(), now, \"\")\n\tsb.madeAt = now\n\n\tif sb.file != nil {\n\t\t// The current log file becomes the previous log at the end of\n\t\t// this block, so save its name for use in the header of the next\n\t\t// file.\n\t\tpn = sb.file.Name()\n\t\tsb.Flush()\n\t\t// If there's an existing file, write a footer with the name of\n\t\t// the next file in the chain, followed by the constant string\n\t\t// \\nCONTINUED IN NEXT FILE\\n to make continuation detection simple.\n\t\tsb.file.Write([]byte(\"Next log: \"))\n\t\tsb.file.Write([]byte(name))\n\t\tsb.file.Write([]byte(footer))\n\t\tsb.file.Close()\n\t}\n\n\tsb.file = file\n\tsb.names = append(sb.names, name)\n\tsb.nbytes = 0\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tsb.Writer = bufio.NewWriterSize(sb.file, bufferSize)\n\n\t// Write header.\n\tvar buf bytes.Buffer\n\tfmt.Fprintf(&buf, \"Log file created at: %s\\n\", now.Format(\"2006/01/02 15:04:05\"))\n\tfmt.Fprintf(&buf, \"Running on machine: %s\\n\", host)\n\tfmt.Fprintf(&buf, \"Binary: Built with %s %s for %s/%s\\n\", runtime.Compiler, runtime.Version(), runtime.GOOS, runtime.GOARCH)\n\tfmt.Fprintf(&buf, \"Previous log: %s\\n\", pn)\n\tfmt.Fprintf(&buf, \"Log line format: [IWEF]mmdd hh:mm:ss.uuuuuu threadid file:line] msg\\n\")\n\tn, err := sb.file.Write(buf.Bytes())\n\tsb.nbytes += uint64(n)\n\treturn err\n}\n\n// bufferSize sizes the buffer associated with each log file. It's large\n// so that log records can accumulate without the logging thread blocking\n// on disk I/O. The flushDaemon will block instead.\nconst bufferSize = 256 * 1024\n\n// createMissingFiles creates all the log files for severity from infoLog up to\n// upTo that have not already been created.\n// s.mu is held.\nfunc (s *fileSink) createMissingFiles(upTo logsink.Severity) error {\n\tif s.file[upTo] != nil {\n\t\treturn nil\n\t}\n\tnow := time.Now()\n\t// Files are created in increasing severity order, so we can be assured that\n\t// if a high severity logfile exists, then so do all of lower severity.\n\tfor sev := logsink.Info; sev <= upTo; sev++ {\n\t\tif s.file[sev] != nil {\n\t\t\tcontinue\n\t\t}\n\t\tsb := &syncBuffer{\n\t\t\tsink: s,\n\t\t\tsev:  sev,\n\t\t}\n\t\tif err := sb.rotateFile(now); err != nil {\n\t\t\treturn err\n\t\t}\n\t\ts.file[sev] = sb\n\t}\n\treturn nil\n}\n\n// flushDaemon periodically flushes the log file buffers.\nfunc (s *fileSink) flushDaemon() {\n\ttick := time.NewTicker(30 * time.Second)\n\tdefer tick.Stop()\n\tfor {\n\t\tselect {\n\t\tcase <-tick.C:\n\t\t\ts.Flush()\n\t\tcase sev := <-s.flushChan:\n\t\t\ts.flush(sev)\n\t\t}\n\t}\n}\n\n// Flush flushes all pending log I/O.\nfunc Flush() {\n\tsinks.file.Flush()\n}\n\n// Flush flushes all the logs and attempts to \"sync\" their data to disk.\nfunc (s *fileSink) Flush() error {\n\treturn s.flush(logsink.Info)\n}\n\n// flush flushes all logs of severity threshold or greater.\nfunc (s *fileSink) flush(threshold logsink.Severity) error {\n\tvar firstErr error\n\tupdateErr := func(err error) {\n\t\tif err != nil && firstErr == nil {\n\t\t\tfirstErr = err\n\t\t}\n\t}\n\n\t// Remember where we flushed, so we can call sync without holding\n\t// the lock.\n\tvar files []flushSyncWriter\n\tfunc() {\n\t\ts.mu.Lock()\n\t\tdefer s.mu.Unlock()\n\t\t// Flush from fatal down, in case there's trouble flushing.\n\t\tfor sev := logsink.Fatal; sev >= threshold; sev-- {\n\t\t\tif file := s.file[sev]; file != nil {\n\t\t\t\tupdateErr(file.Flush())\n\t\t\t\tfiles = append(files, file)\n\t\t\t}\n\t\t}\n\t}()\n\n\tfor _, file := range files {\n\t\tupdateErr(file.Sync())\n\t}\n\n\treturn firstErr\n}\n\n// Names returns the names of the log files holding the FATAL, ERROR,\n// WARNING, or INFO logs. Returns ErrNoLog if the log for the given\n// level doesn't exist (e.g. because no messages of that level have been\n// written). This may return multiple names if the log type requested\n// has rolled over.\nfunc Names(s string) ([]string, error) {\n\tseverity, err := logsink.ParseSeverity(s)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tsinks.file.mu.Lock()\n\tdefer sinks.file.mu.Unlock()\n\tf := sinks.file.file[severity]\n\tif f == nil {\n\t\treturn nil, ErrNoLog\n\t}\n\n\treturn f.filenames(), nil\n}\n"
  },
  {
    "path": "vendor/github.com/golang/glog/glog_file_linux.go",
    "content": "// Go support for leveled logs, analogous to https://github.com/google/glog.\n//\n// Copyright 2023 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build linux\n\npackage glog\n\nimport (\n\t\"errors\"\n\t\"runtime\"\n\t\"syscall\"\n)\n\n// abortProcess attempts to kill the current process in a way that will dump the\n// currently-running goroutines someplace useful (like stderr).\n//\n// It does this by sending SIGABRT to the current thread.\n//\n// If successful, abortProcess does not return.\nfunc abortProcess() error {\n\truntime.LockOSThread()\n\tif err := syscall.Tgkill(syscall.Getpid(), syscall.Gettid(), syscall.SIGABRT); err != nil {\n\t\treturn err\n\t}\n\treturn errors.New(\"log: killed current thread with SIGABRT, but still running\")\n}\n"
  },
  {
    "path": "vendor/github.com/golang/glog/glog_file_nonwindows.go",
    "content": "//go:build !windows\n\npackage glog\n\nimport \"os/user\"\n\n// shouldRegisterStderrSink determines whether we should register a log sink that writes to stderr.\n// Today, this always returns true on non-Windows platforms, as it specifically checks for a\n// condition that is only present on Windows.\nfunc shouldRegisterStderrSink() bool {\n\treturn true\n}\n\nfunc lookupUser() string {\n\tif current, err := user.Current(); err == nil {\n\t\treturn current.Username\n\t}\n\treturn \"\"\n}\n"
  },
  {
    "path": "vendor/github.com/golang/glog/glog_file_other.go",
    "content": "// Go support for leveled logs, analogous to https://github.com/google/glog.\n//\n// Copyright 2023 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build !(unix || windows)\n\npackage glog\n\nimport (\n\t\"fmt\"\n\t\"runtime\"\n)\n\n// abortProcess returns an error on platforms that presumably don't support signals.\nfunc abortProcess() error {\n\treturn fmt.Errorf(\"not sending SIGABRT (%s/%s does not support signals), falling back\", runtime.GOOS, runtime.GOARCH)\n\n}\n"
  },
  {
    "path": "vendor/github.com/golang/glog/glog_file_posix.go",
    "content": "// Go support for leveled logs, analogous to https://github.com/google/glog.\n//\n// Copyright 2023 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build (unix || windows) && !linux\n\npackage glog\n\nimport (\n\t\"os\"\n\t\"syscall\"\n\t\"time\"\n)\n\n// abortProcess attempts to kill the current process in a way that will dump the\n// currently-running goroutines someplace useful (like stderr).\n//\n// It does this by sending SIGABRT to the current process. Unfortunately, the\n// signal may or may not be delivered to the current thread; in order to do that\n// portably, we would need to add a cgo dependency and call pthread_kill.\n//\n// If successful, abortProcess does not return.\nfunc abortProcess() error {\n\tp, err := os.FindProcess(os.Getpid())\n\tif err != nil {\n\t\treturn err\n\t}\n\tif err := p.Signal(syscall.SIGABRT); err != nil {\n\t\treturn err\n\t}\n\n\t// Sent the signal.  Now we wait for it to arrive and any SIGABRT handlers to\n\t// run (and eventually terminate the process themselves).\n\t//\n\t// We could just \"select{}\" here, but there's an outside chance that would\n\t// trigger the runtime's deadlock detector if there happen not to be any\n\t// background goroutines running.  So we'll sleep a while first to give\n\t// the signal some time.\n\ttime.Sleep(10 * time.Second)\n\tselect {}\n}\n"
  },
  {
    "path": "vendor/github.com/golang/glog/glog_file_windows.go",
    "content": "//go:build windows\n\npackage glog\n\nimport (\n\t\"os\"\n\t\"syscall\"\n)\n\n// shouldRegisterStderrSink determines whether we should register a log sink that writes to stderr.\n// Today, this checks if stderr is \"valid\", in that it maps to a non-NULL Handle.\n// Windows Services are spawned without Stdout and Stderr, so any attempt to use them equates to\n// referencing an invalid file Handle.\n// os.Stderr's FD is derived from a call to `syscall.GetStdHandle(syscall.STD_ERROR_HANDLE)`.\n// Documentation[1] for the GetStdHandle function indicates the return value may be NULL if the\n// application lacks the standard handle, so consider Stderr valid if its FD is non-NULL.\n// [1]: https://learn.microsoft.com/en-us/windows/console/getstdhandle\nfunc shouldRegisterStderrSink() bool {\n\treturn os.Stderr.Fd() != 0\n}\n\n// This follows the logic in the standard library's user.Current() function, except\n// that it leaves out the potentially expensive calls required to look up the user's\n// display name in Active Directory.\nfunc lookupUser() string {\n\ttoken, err := syscall.OpenCurrentProcessToken()\n\tif err != nil {\n\t\treturn \"\"\n\t}\n\tdefer token.Close()\n\ttokenUser, err := token.GetTokenUser()\n\tif err != nil {\n\t\treturn \"\"\n\t}\n\tusername, _, accountType, err := tokenUser.User.Sid.LookupAccount(\"\")\n\tif err != nil {\n\t\treturn \"\"\n\t}\n\tif accountType != syscall.SidTypeUser {\n\t\treturn \"\"\n\t}\n\treturn username\n}\n"
  },
  {
    "path": "vendor/github.com/golang/glog/glog_flags.go",
    "content": "// Go support for leveled logs, analogous to https://github.com/google/glog.\n//\n// Copyright 2023 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage glog\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"flag\"\n\t\"fmt\"\n\t\"path/filepath\"\n\t\"runtime\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n\n\t\"github.com/golang/glog/internal/logsink\"\n)\n\n// modulePat contains a filter for the -vmodule flag.\n// It holds a verbosity level and a file pattern to match.\ntype modulePat struct {\n\tpattern string\n\tliteral bool // The pattern is a literal string\n\tfull    bool // The pattern wants to match the full path\n\tlevel   Level\n}\n\n// match reports whether the file matches the pattern. It uses a string\n// comparison if the pattern contains no metacharacters.\nfunc (m *modulePat) match(full, file string) bool {\n\tif m.literal {\n\t\tif m.full {\n\t\t\treturn full == m.pattern\n\t\t}\n\t\treturn file == m.pattern\n\t}\n\tif m.full {\n\t\tmatch, _ := filepath.Match(m.pattern, full)\n\t\treturn match\n\t}\n\tmatch, _ := filepath.Match(m.pattern, file)\n\treturn match\n}\n\n// isLiteral reports whether the pattern is a literal string, that is, has no metacharacters\n// that require filepath.Match to be called to match the pattern.\nfunc isLiteral(pattern string) bool {\n\treturn !strings.ContainsAny(pattern, `\\*?[]`)\n}\n\n// isFull reports whether the pattern matches the full file path, that is,\n// whether it contains /.\nfunc isFull(pattern string) bool {\n\treturn strings.ContainsRune(pattern, '/')\n}\n\n// verboseFlags represents the setting of the -v and -vmodule flags.\ntype verboseFlags struct {\n\t// moduleLevelCache is a sync.Map storing the -vmodule Level for each V()\n\t// call site, identified by PC. If there is no matching -vmodule filter,\n\t// the cached value is exactly v. moduleLevelCache is replaced with a new\n\t// Map whenever the -vmodule or -v flag changes state.\n\tmoduleLevelCache atomic.Value\n\n\t// mu guards all fields below.\n\tmu sync.Mutex\n\n\t// v stores the value of the -v flag.  It may be read safely using\n\t// sync.LoadInt32, but is only modified under mu.\n\tv Level\n\n\t// module stores the parsed -vmodule flag.\n\tmodule []modulePat\n\n\t// moduleLength caches len(module).  If greater than zero, it\n\t// means vmodule is enabled. It may be read safely using sync.LoadInt32, but\n\t// is only modified under mu.\n\tmoduleLength int32\n}\n\n// NOTE: For compatibility with the open-sourced v1 version of this\n// package (github.com/golang/glog) we need to retain that flag.Level\n// implements the flag.Value interface. See also go/log-vs-glog.\n\n// String is part of the flag.Value interface.\nfunc (l *Level) String() string {\n\treturn strconv.FormatInt(int64(l.Get().(Level)), 10)\n}\n\n// Get is part of the flag.Value interface.\nfunc (l *Level) Get() any {\n\tif l == &vflags.v {\n\t\t// l is the value registered for the -v flag.\n\t\treturn Level(atomic.LoadInt32((*int32)(l)))\n\t}\n\treturn *l\n}\n\n// Set is part of the flag.Value interface.\nfunc (l *Level) Set(value string) error {\n\tv, err := strconv.Atoi(value)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif l == &vflags.v {\n\t\t// l is the value registered for the -v flag.\n\t\tvflags.mu.Lock()\n\t\tdefer vflags.mu.Unlock()\n\t\tvflags.moduleLevelCache.Store(&sync.Map{})\n\t\tatomic.StoreInt32((*int32)(l), int32(v))\n\t\treturn nil\n\t}\n\t*l = Level(v)\n\treturn nil\n}\n\n// vModuleFlag is the flag.Value for the --vmodule flag.\ntype vModuleFlag struct{ *verboseFlags }\n\nfunc (f vModuleFlag) String() string {\n\t// Do not panic on the zero value.\n\t// https://groups.google.com/g/golang-nuts/c/Atlr8uAjn6U/m/iId17Td5BQAJ.\n\tif f.verboseFlags == nil {\n\t\treturn \"\"\n\t}\n\tf.mu.Lock()\n\tdefer f.mu.Unlock()\n\n\tvar b bytes.Buffer\n\tfor i, f := range f.module {\n\t\tif i > 0 {\n\t\t\tb.WriteRune(',')\n\t\t}\n\t\tfmt.Fprintf(&b, \"%s=%d\", f.pattern, f.level)\n\t}\n\treturn b.String()\n}\n\n// Get returns nil for this flag type since the struct is not exported.\nfunc (f vModuleFlag) Get() any { return nil }\n\nvar errVmoduleSyntax = errors.New(\"syntax error: expect comma-separated list of filename=N\")\n\n// Syntax: -vmodule=recordio=2,foo/bar/baz=1,gfs*=3\nfunc (f vModuleFlag) Set(value string) error {\n\tvar filter []modulePat\n\tfor _, pat := range strings.Split(value, \",\") {\n\t\tif len(pat) == 0 {\n\t\t\t// Empty strings such as from a trailing comma can be ignored.\n\t\t\tcontinue\n\t\t}\n\t\tpatLev := strings.Split(pat, \"=\")\n\t\tif len(patLev) != 2 || len(patLev[0]) == 0 || len(patLev[1]) == 0 {\n\t\t\treturn errVmoduleSyntax\n\t\t}\n\t\tpattern := patLev[0]\n\t\tv, err := strconv.Atoi(patLev[1])\n\t\tif err != nil {\n\t\t\treturn errors.New(\"syntax error: expect comma-separated list of filename=N\")\n\t\t}\n\t\t// TODO: check syntax of filter?\n\t\tfilter = append(filter, modulePat{pattern, isLiteral(pattern), isFull(pattern), Level(v)})\n\t}\n\n\tf.mu.Lock()\n\tdefer f.mu.Unlock()\n\tf.module = filter\n\tatomic.StoreInt32((*int32)(&f.moduleLength), int32(len(f.module)))\n\tf.moduleLevelCache.Store(&sync.Map{})\n\treturn nil\n}\n\nfunc (f *verboseFlags) levelForPC(pc uintptr) Level {\n\tif level, ok := f.moduleLevelCache.Load().(*sync.Map).Load(pc); ok {\n\t\treturn level.(Level)\n\t}\n\n\tf.mu.Lock()\n\tdefer f.mu.Unlock()\n\tlevel := Level(f.v)\n\tfn := runtime.FuncForPC(pc)\n\tfile, _ := fn.FileLine(pc)\n\t// The file is something like /a/b/c/d.go. We want just the d for\n\t// regular matches, /a/b/c/d for full matches.\n\tfile = strings.TrimSuffix(file, \".go\")\n\tfull := file\n\tif slash := strings.LastIndex(file, \"/\"); slash >= 0 {\n\t\tfile = file[slash+1:]\n\t}\n\tfor _, filter := range f.module {\n\t\tif filter.match(full, file) {\n\t\t\tlevel = filter.level\n\t\t\tbreak // Use the first matching level.\n\t\t}\n\t}\n\tf.moduleLevelCache.Load().(*sync.Map).Store(pc, level)\n\treturn level\n}\n\nfunc (f *verboseFlags) enabled(callerDepth int, level Level) bool {\n\tif atomic.LoadInt32(&f.moduleLength) == 0 {\n\t\t// No vmodule values specified, so compare against v level.\n\t\treturn Level(atomic.LoadInt32((*int32)(&f.v))) >= level\n\t}\n\n\tpcs := [1]uintptr{}\n\tif runtime.Callers(callerDepth+2, pcs[:]) < 1 {\n\t\treturn false\n\t}\n\tframe, _ := runtime.CallersFrames(pcs[:]).Next()\n\treturn f.levelForPC(frame.Entry) >= level\n}\n\n// traceLocation represents an entry in the -log_backtrace_at flag.\ntype traceLocation struct {\n\tfile string\n\tline int\n}\n\nvar errTraceSyntax = errors.New(\"syntax error: expect file.go:234\")\n\nfunc parseTraceLocation(value string) (traceLocation, error) {\n\tfields := strings.Split(value, \":\")\n\tif len(fields) != 2 {\n\t\treturn traceLocation{}, errTraceSyntax\n\t}\n\tfile, lineStr := fields[0], fields[1]\n\tif !strings.Contains(file, \".\") {\n\t\treturn traceLocation{}, errTraceSyntax\n\t}\n\tline, err := strconv.Atoi(lineStr)\n\tif err != nil {\n\t\treturn traceLocation{}, errTraceSyntax\n\t}\n\tif line < 0 {\n\t\treturn traceLocation{}, errors.New(\"negative value for line\")\n\t}\n\treturn traceLocation{file, line}, nil\n}\n\n// match reports whether the specified file and line matches the trace location.\n// The argument file name is the full path, not the basename specified in the flag.\nfunc (t traceLocation) match(file string, line int) bool {\n\tif t.line != line {\n\t\treturn false\n\t}\n\tif i := strings.LastIndex(file, \"/\"); i >= 0 {\n\t\tfile = file[i+1:]\n\t}\n\treturn t.file == file\n}\n\nfunc (t traceLocation) String() string {\n\treturn fmt.Sprintf(\"%s:%d\", t.file, t.line)\n}\n\n// traceLocations represents the -log_backtrace_at flag.\n// Syntax: -log_backtrace_at=recordio.go:234,sstable.go:456\n// Note that unlike vmodule the file extension is included here.\ntype traceLocations struct {\n\tmu      sync.Mutex\n\tlocsLen int32 // Safe for atomic read without mu.\n\tlocs    []traceLocation\n}\n\nfunc (t *traceLocations) String() string {\n\tt.mu.Lock()\n\tdefer t.mu.Unlock()\n\n\tvar buf bytes.Buffer\n\tfor i, tl := range t.locs {\n\t\tif i > 0 {\n\t\t\tbuf.WriteString(\",\")\n\t\t}\n\t\tbuf.WriteString(tl.String())\n\t}\n\treturn buf.String()\n}\n\n// Get always returns nil for this flag type since the struct is not exported\nfunc (t *traceLocations) Get() any { return nil }\n\nfunc (t *traceLocations) Set(value string) error {\n\tvar locs []traceLocation\n\tfor _, s := range strings.Split(value, \",\") {\n\t\tif s == \"\" {\n\t\t\tcontinue\n\t\t}\n\t\tloc, err := parseTraceLocation(s)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlocs = append(locs, loc)\n\t}\n\n\tt.mu.Lock()\n\tdefer t.mu.Unlock()\n\tatomic.StoreInt32(&t.locsLen, int32(len(locs)))\n\tt.locs = locs\n\treturn nil\n}\n\nfunc (t *traceLocations) match(file string, line int) bool {\n\tif atomic.LoadInt32(&t.locsLen) == 0 {\n\t\treturn false\n\t}\n\n\tt.mu.Lock()\n\tdefer t.mu.Unlock()\n\tfor _, tl := range t.locs {\n\t\tif tl.match(file, line) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// severityFlag is an atomic flag.Value implementation for logsink.Severity.\ntype severityFlag int32\n\nfunc (s *severityFlag) get() logsink.Severity {\n\treturn logsink.Severity(atomic.LoadInt32((*int32)(s)))\n}\nfunc (s *severityFlag) String() string { return strconv.FormatInt(int64(*s), 10) }\nfunc (s *severityFlag) Get() any       { return s.get() }\nfunc (s *severityFlag) Set(value string) error {\n\tthreshold, err := logsink.ParseSeverity(value)\n\tif err != nil {\n\t\t// Not a severity name.  Try a raw number.\n\t\tv, err := strconv.Atoi(value)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tthreshold = logsink.Severity(v)\n\t\tif threshold < logsink.Info || threshold > logsink.Fatal {\n\t\t\treturn fmt.Errorf(\"Severity %d out of range (min %d, max %d).\", v, logsink.Info, logsink.Fatal)\n\t\t}\n\t}\n\tatomic.StoreInt32((*int32)(s), int32(threshold))\n\treturn nil\n}\n\nvar (\n\tvflags verboseFlags // The -v and -vmodule flags.\n\n\tlogBacktraceAt traceLocations // The -log_backtrace_at flag.\n\n\t// Boolean flags. Not handled atomically because the flag.Value interface\n\t// does not let us avoid the =true, and that shorthand is necessary for\n\t// compatibility. TODO: does this matter enough to fix? Seems unlikely.\n\ttoStderr     bool // The -logtostderr flag.\n\talsoToStderr bool // The -alsologtostderr flag.\n\n\tstderrThreshold severityFlag // The -stderrthreshold flag.\n)\n\n// verboseEnabled returns whether the caller at the given depth should emit\n// verbose logs at the given level, with depth 0 identifying the caller of\n// verboseEnabled.\nfunc verboseEnabled(callerDepth int, level Level) bool {\n\treturn vflags.enabled(callerDepth+1, level)\n}\n\n// backtraceAt returns whether the logging call at the given function and line\n// should also emit a backtrace of the current call stack.\nfunc backtraceAt(file string, line int) bool {\n\treturn logBacktraceAt.match(file, line)\n}\n\nfunc init() {\n\tvflags.moduleLevelCache.Store(&sync.Map{})\n\n\tflag.Var(&vflags.v, \"v\", \"log level for V logs\")\n\tflag.Var(vModuleFlag{&vflags}, \"vmodule\", \"comma-separated list of pattern=N settings for file-filtered logging\")\n\n\tflag.Var(&logBacktraceAt, \"log_backtrace_at\", \"when logging hits line file:N, emit a stack trace\")\n\n\tstderrThreshold = severityFlag(logsink.Error)\n\n\tflag.BoolVar(&toStderr, \"logtostderr\", false, \"log to standard error instead of files\")\n\tflag.BoolVar(&alsoToStderr, \"alsologtostderr\", false, \"log to standard error as well as files\")\n\tflag.Var(&stderrThreshold, \"stderrthreshold\", \"logs at or above this threshold go to stderr\")\n}\n"
  },
  {
    "path": "vendor/github.com/golang/glog/internal/logsink/logsink.go",
    "content": "// Copyright 2023 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage logsink\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/golang/glog/internal/stackdump\"\n)\n\n// MaxLogMessageLen is the limit on length of a formatted log message, including\n// the standard line prefix and trailing newline.\n//\n// Chosen to match C++ glog.\nconst MaxLogMessageLen = 15000\n\n// A Severity is a severity at which a message can be logged.\ntype Severity int8\n\n// These constants identify the log levels in order of increasing severity.\n// A message written to a high-severity log file is also written to each\n// lower-severity log file.\nconst (\n\tInfo Severity = iota\n\tWarning\n\tError\n\n\t// Fatal contains logs written immediately before the process terminates.\n\t//\n\t// Sink implementations should not terminate the process themselves: the log\n\t// package will perform any necessary cleanup and terminate the process as\n\t// appropriate.\n\tFatal\n)\n\nfunc (s Severity) String() string {\n\tswitch s {\n\tcase Info:\n\t\treturn \"INFO\"\n\tcase Warning:\n\t\treturn \"WARNING\"\n\tcase Error:\n\t\treturn \"ERROR\"\n\tcase Fatal:\n\t\treturn \"FATAL\"\n\t}\n\treturn fmt.Sprintf(\"%T(%d)\", s, s)\n}\n\n// ParseSeverity returns the case-insensitive Severity value for the given string.\nfunc ParseSeverity(name string) (Severity, error) {\n\tname = strings.ToUpper(name)\n\tfor s := Info; s <= Fatal; s++ {\n\t\tif s.String() == name {\n\t\t\treturn s, nil\n\t\t}\n\t}\n\treturn -1, fmt.Errorf(\"logsink: invalid severity %q\", name)\n}\n\n// Meta is metadata about a logging call.\ntype Meta struct {\n\t// The context with which the log call was made (or nil). If set, the context\n\t// is only valid during the logsink.Structured.Printf call, it should not be\n\t// retained.\n\tContext context.Context\n\n\t// Time is the time at which the log call was made.\n\tTime time.Time\n\n\t// File is the source file from which the log entry originates.\n\tFile string\n\t// Line is the line offset within the source file.\n\tLine int\n\t// Depth is the number of stack frames between the logsink and the log call.\n\tDepth int\n\n\tSeverity Severity\n\n\t// Verbose indicates whether the call was made via \"log.V\".  Log entries below\n\t// the current verbosity threshold are not sent to the sink.\n\tVerbose bool\n\n\t// Thread ID. This can be populated with a thread ID from another source,\n\t// such as a system we are importing logs from. In the normal case, this\n\t// will be set to the process ID (PID), since Go doesn't have threads.\n\tThread int64\n\n\t// Stack trace starting in the logging function. May be nil.\n\t// A logsink should implement the StackWanter interface to request this.\n\t//\n\t// Even if WantStack returns false, this field may be set (e.g. if another\n\t// sink wants a stack trace).\n\tStack *stackdump.Stack\n}\n\n// Structured is a logging destination that accepts structured data as input.\ntype Structured interface {\n\t// Printf formats according to a fmt.Printf format specifier and writes a log\n\t// entry.  The precise result of formatting depends on the sink, but should\n\t// aim for consistency with fmt.Printf.\n\t//\n\t// Printf returns the number of bytes occupied by the log entry, which\n\t// may not be equal to the total number of bytes written.\n\t//\n\t// Printf returns any error encountered *if* it is severe enough that the log\n\t// package should terminate the process.\n\t//\n\t// The sink must not modify the *Meta parameter, nor reference it after\n\t// Printf has returned: it may be reused in subsequent calls.\n\tPrintf(meta *Meta, format string, a ...any) (n int, err error)\n}\n\n// StackWanter can be implemented by a logsink.Structured to indicate that it\n// wants a stack trace to accompany at least some of the log messages it receives.\ntype StackWanter interface {\n\t// WantStack returns true if the sink requires a stack trace for a log message\n\t// with this metadata.\n\t//\n\t// NOTE: Returning true implies that meta.Stack will be non-nil. Returning\n\t// false does NOT imply that meta.Stack will be nil.\n\tWantStack(meta *Meta) bool\n}\n\n// Text is a logging destination that accepts pre-formatted log lines (instead of\n// structured data).\ntype Text interface {\n\t// Enabled returns whether this sink should output messages for the given\n\t// Meta.  If the sink returns false for a given Meta, the Printf function will\n\t// not call Emit on it for the corresponding log message.\n\tEnabled(*Meta) bool\n\n\t// Emit writes a pre-formatted text log entry (including any applicable\n\t// header) to the log.  It returns the number of bytes occupied by the entry\n\t// (which may differ from the length of the passed-in slice).\n\t//\n\t// Emit returns any error encountered *if* it is severe enough that the log\n\t// package should terminate the process.\n\t//\n\t// The sink must not modify the *Meta parameter, nor reference it after\n\t// Printf has returned: it may be reused in subsequent calls.\n\t//\n\t// NOTE: When developing a text sink, keep in mind the surface in which the\n\t// logs will be displayed, and whether it's important that the sink be\n\t// resistent to tampering in the style of b/211428300. Standard text sinks\n\t// (like `stderrSink`) do not protect against this (e.g. by escaping\n\t// characters) because the cases where they would show user-influenced bytes\n\t// are vanishingly small.\n\tEmit(*Meta, []byte) (n int, err error)\n}\n\n// bufs is a pool of *bytes.Buffer used in formatting log entries.\nvar bufs sync.Pool // Pool of *bytes.Buffer.\n\n// textPrintf formats a text log entry and emits it to all specified Text sinks.\n//\n// The returned n is the maximum across all Emit calls.\n// The returned err is the first non-nil error encountered.\n// Sinks that are disabled by configuration should return (0, nil).\nfunc textPrintf(m *Meta, textSinks []Text, format string, args ...any) (n int, err error) {\n\t// We expect at most file, stderr, and perhaps syslog.  If there are more,\n\t// we'll end up allocating - no big deal.\n\tconst maxExpectedTextSinks = 3\n\tvar noAllocSinks [maxExpectedTextSinks]Text\n\n\tsinks := noAllocSinks[:0]\n\tfor _, s := range textSinks {\n\t\tif s.Enabled(m) {\n\t\t\tsinks = append(sinks, s)\n\t\t}\n\t}\n\tif len(sinks) == 0 && m.Severity != Fatal {\n\t\treturn 0, nil // No TextSinks specified; don't bother formatting.\n\t}\n\n\tbufi := bufs.Get()\n\tvar buf *bytes.Buffer\n\tif bufi == nil {\n\t\tbuf = bytes.NewBuffer(nil)\n\t\tbufi = buf\n\t} else {\n\t\tbuf = bufi.(*bytes.Buffer)\n\t\tbuf.Reset()\n\t}\n\n\t// Lmmdd hh:mm:ss.uuuuuu PID/GID file:line]\n\t//\n\t// The \"PID\" entry arguably ought to be TID for consistency with other\n\t// environments, but TID is not meaningful in a Go program due to the\n\t// multiplexing of goroutines across threads.\n\t//\n\t// Avoid Fprintf, for speed. The format is so simple that we can do it quickly by hand.\n\t// It's worth about 3X. Fprintf is hard.\n\tconst severityChar = \"IWEF\"\n\tbuf.WriteByte(severityChar[m.Severity])\n\n\t_, month, day := m.Time.Date()\n\thour, minute, second := m.Time.Clock()\n\ttwoDigits(buf, int(month))\n\ttwoDigits(buf, day)\n\tbuf.WriteByte(' ')\n\ttwoDigits(buf, hour)\n\tbuf.WriteByte(':')\n\ttwoDigits(buf, minute)\n\tbuf.WriteByte(':')\n\ttwoDigits(buf, second)\n\tbuf.WriteByte('.')\n\tnDigits(buf, 6, uint64(m.Time.Nanosecond()/1000), '0')\n\tbuf.WriteByte(' ')\n\n\tnDigits(buf, 7, uint64(m.Thread), ' ')\n\tbuf.WriteByte(' ')\n\n\t{\n\t\tfile := m.File\n\t\tif i := strings.LastIndex(file, \"/\"); i >= 0 {\n\t\t\tfile = file[i+1:]\n\t\t}\n\t\tbuf.WriteString(file)\n\t}\n\n\tbuf.WriteByte(':')\n\t{\n\t\tvar tmp [19]byte\n\t\tbuf.Write(strconv.AppendInt(tmp[:0], int64(m.Line), 10))\n\t}\n\tbuf.WriteString(\"] \")\n\n\tmsgStart := buf.Len()\n\tfmt.Fprintf(buf, format, args...)\n\tif buf.Len() > MaxLogMessageLen-1 {\n\t\tbuf.Truncate(MaxLogMessageLen - 1)\n\t}\n\tmsgEnd := buf.Len()\n\tif b := buf.Bytes(); b[len(b)-1] != '\\n' {\n\t\tbuf.WriteByte('\\n')\n\t}\n\n\tfor _, s := range sinks {\n\t\tsn, sErr := s.Emit(m, buf.Bytes())\n\t\tif sn > n {\n\t\t\tn = sn\n\t\t}\n\t\tif sErr != nil && err == nil {\n\t\t\terr = sErr\n\t\t}\n\t}\n\n\tif m.Severity == Fatal {\n\t\tsavedM := *m\n\t\tfatalMessageStore(savedEntry{\n\t\t\tmeta: &savedM,\n\t\t\tmsg:  buf.Bytes()[msgStart:msgEnd],\n\t\t})\n\t} else {\n\t\tbufs.Put(bufi)\n\t}\n\treturn n, err\n}\n\nconst digits = \"0123456789\"\n\n// twoDigits formats a zero-prefixed two-digit integer to buf.\nfunc twoDigits(buf *bytes.Buffer, d int) {\n\tbuf.WriteByte(digits[(d/10)%10])\n\tbuf.WriteByte(digits[d%10])\n}\n\n// nDigits formats an n-digit integer to buf, padding with pad on the left. It\n// assumes d != 0.\nfunc nDigits(buf *bytes.Buffer, n int, d uint64, pad byte) {\n\tvar tmp [20]byte\n\n\tcutoff := len(tmp) - n\n\tj := len(tmp) - 1\n\tfor ; d > 0; j-- {\n\t\ttmp[j] = digits[d%10]\n\t\td /= 10\n\t}\n\tfor ; j >= cutoff; j-- {\n\t\ttmp[j] = pad\n\t}\n\tj++\n\tbuf.Write(tmp[j:])\n}\n\n// Printf writes a log entry to all registered TextSinks in this package, then\n// to all registered StructuredSinks.\n//\n// The returned n is the maximum across all Emit and Printf calls.\n// The returned err is the first non-nil error encountered.\n// Sinks that are disabled by configuration should return (0, nil).\nfunc Printf(m *Meta, format string, args ...any) (n int, err error) {\n\tm.Depth++\n\tn, err = textPrintf(m, TextSinks, format, args...)\n\n\tfor _, sink := range StructuredSinks {\n\t\t// TODO: Support TextSinks that implement StackWanter?\n\t\tif sw, ok := sink.(StackWanter); ok && sw.WantStack(m) {\n\t\t\tif m.Stack == nil {\n\t\t\t\t// First, try to find a stacktrace in args, otherwise generate one.\n\t\t\t\tfor _, arg := range args {\n\t\t\t\t\tif stack, ok := arg.(stackdump.Stack); ok {\n\t\t\t\t\t\tm.Stack = &stack\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif m.Stack == nil {\n\t\t\t\t\tstack := stackdump.Caller( /* skipDepth = */ m.Depth)\n\t\t\t\t\tm.Stack = &stack\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tsn, sErr := sink.Printf(m, format, args...)\n\t\tif sn > n {\n\t\t\tn = sn\n\t\t}\n\t\tif sErr != nil && err == nil {\n\t\t\terr = sErr\n\t\t}\n\t}\n\treturn n, err\n}\n\n// The sets of sinks to which logs should be written.\n//\n// These must only be modified during package init, and are read-only thereafter.\nvar (\n\t// StructuredSinks is the set of Structured sink instances to which logs\n\t// should be written.\n\tStructuredSinks []Structured\n\n\t// TextSinks is the set of Text sink instances to which logs should be\n\t// written.\n\t//\n\t// These are registered separately from Structured sink implementations to\n\t// avoid the need to repeat the work of formatting a message for each Text\n\t// sink that writes it.  The package-level Printf function writes to both sets\n\t// independenty, so a given log destination should only register a Structured\n\t// *or* a Text sink (not both).\n\tTextSinks []Text\n)\n\ntype savedEntry struct {\n\tmeta *Meta\n\tmsg  []byte\n}\n\n// StructuredTextWrapper is a Structured sink which forwards logs to a set of Text sinks.\n//\n// The purpose of this sink is to allow applications to intercept logging calls before they are\n// serialized and sent to Text sinks. For example, if one needs to redact PII from logging\n// arguments before they reach STDERR, one solution would be to do the redacting in a Structured\n// sink that forwards logs to a StructuredTextWrapper instance, and make STDERR a child of that\n// StructuredTextWrapper instance. This is how one could set this up in their application:\n//\n// func init() {\n//\n//\twrapper := logsink.StructuredTextWrapper{TextSinks: logsink.TextSinks}\n//\t// sanitizersink will intercept logs and remove PII\n//\tsanitizer := sanitizersink{Sink: &wrapper}\n//\tlogsink.StructuredSinks = append(logsink.StructuredSinks, &sanitizer)\n//\tlogsink.TextSinks = nil\n//\n// }\ntype StructuredTextWrapper struct {\n\t// TextSinks is the set of Text sinks that should receive logs from this\n\t// StructuredTextWrapper instance.\n\tTextSinks []Text\n}\n\n// Printf forwards logs to all Text sinks registered in the StructuredTextWrapper.\nfunc (w *StructuredTextWrapper) Printf(meta *Meta, format string, args ...any) (n int, err error) {\n\treturn textPrintf(meta, w.TextSinks, format, args...)\n}\n"
  },
  {
    "path": "vendor/github.com/golang/glog/internal/logsink/logsink_fatal.go",
    "content": "package logsink\n\nimport (\n\t\"sync/atomic\"\n\t\"unsafe\"\n)\n\nfunc fatalMessageStore(e savedEntry) {\n\t// Only put a new one in if we haven't assigned before.\n\tatomic.CompareAndSwapPointer(&fatalMessage, nil, unsafe.Pointer(&e))\n}\n\nvar fatalMessage unsafe.Pointer // savedEntry stored with CompareAndSwapPointer\n\n// FatalMessage returns the Meta and message contents of the first message\n// logged with Fatal severity, or false if none has occurred.\nfunc FatalMessage() (*Meta, []byte, bool) {\n\te := (*savedEntry)(atomic.LoadPointer(&fatalMessage))\n\tif e == nil {\n\t\treturn nil, nil, false\n\t}\n\treturn e.meta, e.msg, true\n}\n\n// DoNotUseRacyFatalMessage is FatalMessage, but worse.\n//\n//go:norace\n//go:nosplit\nfunc DoNotUseRacyFatalMessage() (*Meta, []byte, bool) {\n\te := (*savedEntry)(fatalMessage)\n\tif e == nil {\n\t\treturn nil, nil, false\n\t}\n\treturn e.meta, e.msg, true\n}\n"
  },
  {
    "path": "vendor/github.com/golang/glog/internal/stackdump/stackdump.go",
    "content": "// Copyright 2023 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Package stackdump provides wrappers for runtime.Stack and runtime.Callers\n// with uniform support for skipping caller frames.\n//\n// ⚠ Unlike the functions in the runtime package, these may allocate a\n// non-trivial quantity of memory: use them with care. ⚠\npackage stackdump\n\nimport (\n\t\"bytes\"\n\t\"runtime\"\n)\n\n// runtimeStackSelfFrames is 1 if runtime.Stack includes the call to\n// runtime.Stack itself or 0 if it does not.\n//\n// As of 2016-04-27, the gccgo compiler includes runtime.Stack but the gc\n// compiler does not.\nvar runtimeStackSelfFrames = func() int {\n\tfor n := 1 << 10; n < 1<<20; n *= 2 {\n\t\tbuf := make([]byte, n)\n\t\tn := runtime.Stack(buf, false)\n\t\tif bytes.Contains(buf[:n], []byte(\"runtime.Stack\")) {\n\t\t\treturn 1\n\t\t} else if n < len(buf) || bytes.Count(buf, []byte(\"\\n\")) >= 3 {\n\t\t\treturn 0\n\t\t}\n\t}\n\treturn 0\n}()\n\n// Stack is a stack dump for a single goroutine.\ntype Stack struct {\n\t// Text is a representation of the stack dump in a human-readable format.\n\tText []byte\n\n\t// PC is a representation of the stack dump using raw program counter values.\n\tPC []uintptr\n}\n\nfunc (s Stack) String() string { return string(s.Text) }\n\n// Caller returns the Stack dump for the calling goroutine, starting skipDepth\n// frames before the caller of Caller.  (Caller(0) provides a dump starting at\n// the caller of this function.)\nfunc Caller(skipDepth int) Stack {\n\treturn Stack{\n\t\tText: CallerText(skipDepth + 1),\n\t\tPC:   CallerPC(skipDepth + 1),\n\t}\n}\n\n// CallerText returns a textual dump of the stack starting skipDepth frames before\n// the caller.  (CallerText(0) provides a dump starting at the caller of this\n// function.)\nfunc CallerText(skipDepth int) []byte {\n\tfor n := 1 << 10; ; n *= 2 {\n\t\tbuf := make([]byte, n)\n\t\tn := runtime.Stack(buf, false)\n\t\tif n < len(buf) {\n\t\t\treturn pruneFrames(skipDepth+1+runtimeStackSelfFrames, buf[:n])\n\t\t}\n\t}\n}\n\n// CallerPC returns a dump of the program counters of the stack starting\n// skipDepth frames before the caller.  (CallerPC(0) provides a dump starting at\n// the caller of this function.)\nfunc CallerPC(skipDepth int) []uintptr {\n\tfor n := 1 << 8; ; n *= 2 {\n\t\tbuf := make([]uintptr, n)\n\t\tn := runtime.Callers(skipDepth+2, buf)\n\t\tif n < len(buf) {\n\t\t\treturn buf[:n]\n\t\t}\n\t}\n}\n\n// pruneFrames removes the topmost skipDepth frames of the first goroutine in a\n// textual stack dump.  It overwrites the passed-in slice.\n//\n// If there are fewer than skipDepth frames in the first goroutine's stack,\n// pruneFrames prunes it to an empty stack and leaves the remaining contents\n// intact.\nfunc pruneFrames(skipDepth int, stack []byte) []byte {\n\theaderLen := 0\n\tfor i, c := range stack {\n\t\tif c == '\\n' {\n\t\t\theaderLen = i + 1\n\t\t\tbreak\n\t\t}\n\t}\n\tif headerLen == 0 {\n\t\treturn stack // No header line - not a well-formed stack trace.\n\t}\n\n\tskipLen := headerLen\n\tskipNewlines := skipDepth * 2\n\tfor ; skipLen < len(stack) && skipNewlines > 0; skipLen++ {\n\t\tc := stack[skipLen]\n\t\tif c != '\\n' {\n\t\t\tcontinue\n\t\t}\n\t\tskipNewlines--\n\t\tskipLen++\n\t\tif skipNewlines == 0 || skipLen == len(stack) || stack[skipLen] == '\\n' {\n\t\t\tbreak\n\t\t}\n\t}\n\n\tpruned := stack[skipLen-headerLen:]\n\tcopy(pruned, stack[:headerLen])\n\treturn pruned\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/AUTHORS",
    "content": "# This source code refers to The Go Authors for copyright purposes.\n# The master list of authors is in the main Go distribution,\n# visible at http://tip.golang.org/AUTHORS.\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/CONTRIBUTORS",
    "content": "# This source code was written by the Go contributors.\n# The master list of contributors is in the main Go distribution,\n# visible at http://tip.golang.org/CONTRIBUTORS.\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/LICENSE",
    "content": "Copyright 2010 The Go Authors.  All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n    * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n    * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n    * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/proto/buffer.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\n\t\"google.golang.org/protobuf/encoding/prototext\"\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/runtime/protoimpl\"\n)\n\nconst (\n\tWireVarint     = 0\n\tWireFixed32    = 5\n\tWireFixed64    = 1\n\tWireBytes      = 2\n\tWireStartGroup = 3\n\tWireEndGroup   = 4\n)\n\n// EncodeVarint returns the varint encoded bytes of v.\nfunc EncodeVarint(v uint64) []byte {\n\treturn protowire.AppendVarint(nil, v)\n}\n\n// SizeVarint returns the length of the varint encoded bytes of v.\n// This is equal to len(EncodeVarint(v)).\nfunc SizeVarint(v uint64) int {\n\treturn protowire.SizeVarint(v)\n}\n\n// DecodeVarint parses a varint encoded integer from b,\n// returning the integer value and the length of the varint.\n// It returns (0, 0) if there is a parse error.\nfunc DecodeVarint(b []byte) (uint64, int) {\n\tv, n := protowire.ConsumeVarint(b)\n\tif n < 0 {\n\t\treturn 0, 0\n\t}\n\treturn v, n\n}\n\n// Buffer is a buffer for encoding and decoding the protobuf wire format.\n// It may be reused between invocations to reduce memory usage.\ntype Buffer struct {\n\tbuf           []byte\n\tidx           int\n\tdeterministic bool\n}\n\n// NewBuffer allocates a new Buffer initialized with buf,\n// where the contents of buf are considered the unread portion of the buffer.\nfunc NewBuffer(buf []byte) *Buffer {\n\treturn &Buffer{buf: buf}\n}\n\n// SetDeterministic specifies whether to use deterministic serialization.\n//\n// Deterministic serialization guarantees that for a given binary, equal\n// messages will always be serialized to the same bytes. This implies:\n//\n//   - Repeated serialization of a message will return the same bytes.\n//   - Different processes of the same binary (which may be executing on\n//     different machines) will serialize equal messages to the same bytes.\n//\n// Note that the deterministic serialization is NOT canonical across\n// languages. It is not guaranteed to remain stable over time. It is unstable\n// across different builds with schema changes due to unknown fields.\n// Users who need canonical serialization (e.g., persistent storage in a\n// canonical form, fingerprinting, etc.) should define their own\n// canonicalization specification and implement their own serializer rather\n// than relying on this API.\n//\n// If deterministic serialization is requested, map entries will be sorted\n// by keys in lexographical order. This is an implementation detail and\n// subject to change.\nfunc (b *Buffer) SetDeterministic(deterministic bool) {\n\tb.deterministic = deterministic\n}\n\n// SetBuf sets buf as the internal buffer,\n// where the contents of buf are considered the unread portion of the buffer.\nfunc (b *Buffer) SetBuf(buf []byte) {\n\tb.buf = buf\n\tb.idx = 0\n}\n\n// Reset clears the internal buffer of all written and unread data.\nfunc (b *Buffer) Reset() {\n\tb.buf = b.buf[:0]\n\tb.idx = 0\n}\n\n// Bytes returns the internal buffer.\nfunc (b *Buffer) Bytes() []byte {\n\treturn b.buf\n}\n\n// Unread returns the unread portion of the buffer.\nfunc (b *Buffer) Unread() []byte {\n\treturn b.buf[b.idx:]\n}\n\n// Marshal appends the wire-format encoding of m to the buffer.\nfunc (b *Buffer) Marshal(m Message) error {\n\tvar err error\n\tb.buf, err = marshalAppend(b.buf, m, b.deterministic)\n\treturn err\n}\n\n// Unmarshal parses the wire-format message in the buffer and\n// places the decoded results in m.\n// It does not reset m before unmarshaling.\nfunc (b *Buffer) Unmarshal(m Message) error {\n\terr := UnmarshalMerge(b.Unread(), m)\n\tb.idx = len(b.buf)\n\treturn err\n}\n\ntype unknownFields struct{ XXX_unrecognized protoimpl.UnknownFields }\n\nfunc (m *unknownFields) String() string { panic(\"not implemented\") }\nfunc (m *unknownFields) Reset()         { panic(\"not implemented\") }\nfunc (m *unknownFields) ProtoMessage()  { panic(\"not implemented\") }\n\n// DebugPrint dumps the encoded bytes of b with a header and footer including s\n// to stdout. This is only intended for debugging.\nfunc (*Buffer) DebugPrint(s string, b []byte) {\n\tm := MessageReflect(new(unknownFields))\n\tm.SetUnknown(b)\n\tb, _ = prototext.MarshalOptions{AllowPartial: true, Indent: \"\\t\"}.Marshal(m.Interface())\n\tfmt.Printf(\"==== %s ====\\n%s==== %s ====\\n\", s, b, s)\n}\n\n// EncodeVarint appends an unsigned varint encoding to the buffer.\nfunc (b *Buffer) EncodeVarint(v uint64) error {\n\tb.buf = protowire.AppendVarint(b.buf, v)\n\treturn nil\n}\n\n// EncodeZigzag32 appends a 32-bit zig-zag varint encoding to the buffer.\nfunc (b *Buffer) EncodeZigzag32(v uint64) error {\n\treturn b.EncodeVarint(uint64((uint32(v) << 1) ^ uint32((int32(v) >> 31))))\n}\n\n// EncodeZigzag64 appends a 64-bit zig-zag varint encoding to the buffer.\nfunc (b *Buffer) EncodeZigzag64(v uint64) error {\n\treturn b.EncodeVarint(uint64((uint64(v) << 1) ^ uint64((int64(v) >> 63))))\n}\n\n// EncodeFixed32 appends a 32-bit little-endian integer to the buffer.\nfunc (b *Buffer) EncodeFixed32(v uint64) error {\n\tb.buf = protowire.AppendFixed32(b.buf, uint32(v))\n\treturn nil\n}\n\n// EncodeFixed64 appends a 64-bit little-endian integer to the buffer.\nfunc (b *Buffer) EncodeFixed64(v uint64) error {\n\tb.buf = protowire.AppendFixed64(b.buf, uint64(v))\n\treturn nil\n}\n\n// EncodeRawBytes appends a length-prefixed raw bytes to the buffer.\nfunc (b *Buffer) EncodeRawBytes(v []byte) error {\n\tb.buf = protowire.AppendBytes(b.buf, v)\n\treturn nil\n}\n\n// EncodeStringBytes appends a length-prefixed raw bytes to the buffer.\n// It does not validate whether v contains valid UTF-8.\nfunc (b *Buffer) EncodeStringBytes(v string) error {\n\tb.buf = protowire.AppendString(b.buf, v)\n\treturn nil\n}\n\n// EncodeMessage appends a length-prefixed encoded message to the buffer.\nfunc (b *Buffer) EncodeMessage(m Message) error {\n\tvar err error\n\tb.buf = protowire.AppendVarint(b.buf, uint64(Size(m)))\n\tb.buf, err = marshalAppend(b.buf, m, b.deterministic)\n\treturn err\n}\n\n// DecodeVarint consumes an encoded unsigned varint from the buffer.\nfunc (b *Buffer) DecodeVarint() (uint64, error) {\n\tv, n := protowire.ConsumeVarint(b.buf[b.idx:])\n\tif n < 0 {\n\t\treturn 0, protowire.ParseError(n)\n\t}\n\tb.idx += n\n\treturn uint64(v), nil\n}\n\n// DecodeZigzag32 consumes an encoded 32-bit zig-zag varint from the buffer.\nfunc (b *Buffer) DecodeZigzag32() (uint64, error) {\n\tv, err := b.DecodeVarint()\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn uint64((uint32(v) >> 1) ^ uint32((int32(v&1)<<31)>>31)), nil\n}\n\n// DecodeZigzag64 consumes an encoded 64-bit zig-zag varint from the buffer.\nfunc (b *Buffer) DecodeZigzag64() (uint64, error) {\n\tv, err := b.DecodeVarint()\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn uint64((uint64(v) >> 1) ^ uint64((int64(v&1)<<63)>>63)), nil\n}\n\n// DecodeFixed32 consumes a 32-bit little-endian integer from the buffer.\nfunc (b *Buffer) DecodeFixed32() (uint64, error) {\n\tv, n := protowire.ConsumeFixed32(b.buf[b.idx:])\n\tif n < 0 {\n\t\treturn 0, protowire.ParseError(n)\n\t}\n\tb.idx += n\n\treturn uint64(v), nil\n}\n\n// DecodeFixed64 consumes a 64-bit little-endian integer from the buffer.\nfunc (b *Buffer) DecodeFixed64() (uint64, error) {\n\tv, n := protowire.ConsumeFixed64(b.buf[b.idx:])\n\tif n < 0 {\n\t\treturn 0, protowire.ParseError(n)\n\t}\n\tb.idx += n\n\treturn uint64(v), nil\n}\n\n// DecodeRawBytes consumes a length-prefixed raw bytes from the buffer.\n// If alloc is specified, it returns a copy the raw bytes\n// rather than a sub-slice of the buffer.\nfunc (b *Buffer) DecodeRawBytes(alloc bool) ([]byte, error) {\n\tv, n := protowire.ConsumeBytes(b.buf[b.idx:])\n\tif n < 0 {\n\t\treturn nil, protowire.ParseError(n)\n\t}\n\tb.idx += n\n\tif alloc {\n\t\tv = append([]byte(nil), v...)\n\t}\n\treturn v, nil\n}\n\n// DecodeStringBytes consumes a length-prefixed raw bytes from the buffer.\n// It does not validate whether the raw bytes contain valid UTF-8.\nfunc (b *Buffer) DecodeStringBytes() (string, error) {\n\tv, n := protowire.ConsumeString(b.buf[b.idx:])\n\tif n < 0 {\n\t\treturn \"\", protowire.ParseError(n)\n\t}\n\tb.idx += n\n\treturn v, nil\n}\n\n// DecodeMessage consumes a length-prefixed message from the buffer.\n// It does not reset m before unmarshaling.\nfunc (b *Buffer) DecodeMessage(m Message) error {\n\tv, err := b.DecodeRawBytes(false)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn UnmarshalMerge(v, m)\n}\n\n// DecodeGroup consumes a message group from the buffer.\n// It assumes that the start group marker has already been consumed and\n// consumes all bytes until (and including the end group marker).\n// It does not reset m before unmarshaling.\nfunc (b *Buffer) DecodeGroup(m Message) error {\n\tv, n, err := consumeGroup(b.buf[b.idx:])\n\tif err != nil {\n\t\treturn err\n\t}\n\tb.idx += n\n\treturn UnmarshalMerge(v, m)\n}\n\n// consumeGroup parses b until it finds an end group marker, returning\n// the raw bytes of the message (excluding the end group marker) and the\n// the total length of the message (including the end group marker).\nfunc consumeGroup(b []byte) ([]byte, int, error) {\n\tb0 := b\n\tdepth := 1 // assume this follows a start group marker\n\tfor {\n\t\t_, wtyp, tagLen := protowire.ConsumeTag(b)\n\t\tif tagLen < 0 {\n\t\t\treturn nil, 0, protowire.ParseError(tagLen)\n\t\t}\n\t\tb = b[tagLen:]\n\n\t\tvar valLen int\n\t\tswitch wtyp {\n\t\tcase protowire.VarintType:\n\t\t\t_, valLen = protowire.ConsumeVarint(b)\n\t\tcase protowire.Fixed32Type:\n\t\t\t_, valLen = protowire.ConsumeFixed32(b)\n\t\tcase protowire.Fixed64Type:\n\t\t\t_, valLen = protowire.ConsumeFixed64(b)\n\t\tcase protowire.BytesType:\n\t\t\t_, valLen = protowire.ConsumeBytes(b)\n\t\tcase protowire.StartGroupType:\n\t\t\tdepth++\n\t\tcase protowire.EndGroupType:\n\t\t\tdepth--\n\t\tdefault:\n\t\t\treturn nil, 0, errors.New(\"proto: cannot parse reserved wire type\")\n\t\t}\n\t\tif valLen < 0 {\n\t\t\treturn nil, 0, protowire.ParseError(valLen)\n\t\t}\n\t\tb = b[valLen:]\n\n\t\tif depth == 0 {\n\t\t\treturn b0[:len(b0)-len(b)-tagLen], len(b0) - len(b), nil\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/proto/defaults.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\nimport (\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\n// SetDefaults sets unpopulated scalar fields to their default values.\n// Fields within a oneof are not set even if they have a default value.\n// SetDefaults is recursively called upon any populated message fields.\nfunc SetDefaults(m Message) {\n\tif m != nil {\n\t\tsetDefaults(MessageReflect(m))\n\t}\n}\n\nfunc setDefaults(m protoreflect.Message) {\n\tfds := m.Descriptor().Fields()\n\tfor i := 0; i < fds.Len(); i++ {\n\t\tfd := fds.Get(i)\n\t\tif !m.Has(fd) {\n\t\t\tif fd.HasDefault() && fd.ContainingOneof() == nil {\n\t\t\t\tv := fd.Default()\n\t\t\t\tif fd.Kind() == protoreflect.BytesKind {\n\t\t\t\t\tv = protoreflect.ValueOf(append([]byte(nil), v.Bytes()...)) // copy the default bytes\n\t\t\t\t}\n\t\t\t\tm.Set(fd, v)\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t}\n\n\tm.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool {\n\t\tswitch {\n\t\t// Handle singular message.\n\t\tcase fd.Cardinality() != protoreflect.Repeated:\n\t\t\tif fd.Message() != nil {\n\t\t\t\tsetDefaults(m.Get(fd).Message())\n\t\t\t}\n\t\t// Handle list of messages.\n\t\tcase fd.IsList():\n\t\t\tif fd.Message() != nil {\n\t\t\t\tls := m.Get(fd).List()\n\t\t\t\tfor i := 0; i < ls.Len(); i++ {\n\t\t\t\t\tsetDefaults(ls.Get(i).Message())\n\t\t\t\t}\n\t\t\t}\n\t\t// Handle map of messages.\n\t\tcase fd.IsMap():\n\t\t\tif fd.MapValue().Message() != nil {\n\t\t\t\tms := m.Get(fd).Map()\n\t\t\t\tms.Range(func(_ protoreflect.MapKey, v protoreflect.Value) bool {\n\t\t\t\t\tsetDefaults(v.Message())\n\t\t\t\t\treturn true\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\treturn true\n\t})\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/proto/deprecated.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\nimport (\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\n\tprotoV2 \"google.golang.org/protobuf/proto\"\n)\n\nvar (\n\t// Deprecated: No longer returned.\n\tErrNil = errors.New(\"proto: Marshal called with nil\")\n\n\t// Deprecated: No longer returned.\n\tErrTooLarge = errors.New(\"proto: message encodes to over 2 GB\")\n\n\t// Deprecated: No longer returned.\n\tErrInternalBadWireType = errors.New(\"proto: internal error: bad wiretype for oneof\")\n)\n\n// Deprecated: Do not use.\ntype Stats struct{ Emalloc, Dmalloc, Encode, Decode, Chit, Cmiss, Size uint64 }\n\n// Deprecated: Do not use.\nfunc GetStats() Stats { return Stats{} }\n\n// Deprecated: Do not use.\nfunc MarshalMessageSet(interface{}) ([]byte, error) {\n\treturn nil, errors.New(\"proto: not implemented\")\n}\n\n// Deprecated: Do not use.\nfunc UnmarshalMessageSet([]byte, interface{}) error {\n\treturn errors.New(\"proto: not implemented\")\n}\n\n// Deprecated: Do not use.\nfunc MarshalMessageSetJSON(interface{}) ([]byte, error) {\n\treturn nil, errors.New(\"proto: not implemented\")\n}\n\n// Deprecated: Do not use.\nfunc UnmarshalMessageSetJSON([]byte, interface{}) error {\n\treturn errors.New(\"proto: not implemented\")\n}\n\n// Deprecated: Do not use.\nfunc RegisterMessageSetType(Message, int32, string) {}\n\n// Deprecated: Do not use.\nfunc EnumName(m map[int32]string, v int32) string {\n\ts, ok := m[v]\n\tif ok {\n\t\treturn s\n\t}\n\treturn strconv.Itoa(int(v))\n}\n\n// Deprecated: Do not use.\nfunc UnmarshalJSONEnum(m map[string]int32, data []byte, enumName string) (int32, error) {\n\tif data[0] == '\"' {\n\t\t// New style: enums are strings.\n\t\tvar repr string\n\t\tif err := json.Unmarshal(data, &repr); err != nil {\n\t\t\treturn -1, err\n\t\t}\n\t\tval, ok := m[repr]\n\t\tif !ok {\n\t\t\treturn 0, fmt.Errorf(\"unrecognized enum %s value %q\", enumName, repr)\n\t\t}\n\t\treturn val, nil\n\t}\n\t// Old style: enums are ints.\n\tvar val int32\n\tif err := json.Unmarshal(data, &val); err != nil {\n\t\treturn 0, fmt.Errorf(\"cannot unmarshal %#q into enum %s\", data, enumName)\n\t}\n\treturn val, nil\n}\n\n// Deprecated: Do not use; this type existed for intenal-use only.\ntype InternalMessageInfo struct{}\n\n// Deprecated: Do not use; this method existed for intenal-use only.\nfunc (*InternalMessageInfo) DiscardUnknown(m Message) {\n\tDiscardUnknown(m)\n}\n\n// Deprecated: Do not use; this method existed for intenal-use only.\nfunc (*InternalMessageInfo) Marshal(b []byte, m Message, deterministic bool) ([]byte, error) {\n\treturn protoV2.MarshalOptions{Deterministic: deterministic}.MarshalAppend(b, MessageV2(m))\n}\n\n// Deprecated: Do not use; this method existed for intenal-use only.\nfunc (*InternalMessageInfo) Merge(dst, src Message) {\n\tprotoV2.Merge(MessageV2(dst), MessageV2(src))\n}\n\n// Deprecated: Do not use; this method existed for intenal-use only.\nfunc (*InternalMessageInfo) Size(m Message) int {\n\treturn protoV2.Size(MessageV2(m))\n}\n\n// Deprecated: Do not use; this method existed for intenal-use only.\nfunc (*InternalMessageInfo) Unmarshal(m Message, b []byte) error {\n\treturn protoV2.UnmarshalOptions{Merge: true}.Unmarshal(b, MessageV2(m))\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/proto/discard.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\nimport (\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\n// DiscardUnknown recursively discards all unknown fields from this message\n// and all embedded messages.\n//\n// When unmarshaling a message with unrecognized fields, the tags and values\n// of such fields are preserved in the Message. This allows a later call to\n// marshal to be able to produce a message that continues to have those\n// unrecognized fields. To avoid this, DiscardUnknown is used to\n// explicitly clear the unknown fields after unmarshaling.\nfunc DiscardUnknown(m Message) {\n\tif m != nil {\n\t\tdiscardUnknown(MessageReflect(m))\n\t}\n}\n\nfunc discardUnknown(m protoreflect.Message) {\n\tm.Range(func(fd protoreflect.FieldDescriptor, val protoreflect.Value) bool {\n\t\tswitch {\n\t\t// Handle singular message.\n\t\tcase fd.Cardinality() != protoreflect.Repeated:\n\t\t\tif fd.Message() != nil {\n\t\t\t\tdiscardUnknown(m.Get(fd).Message())\n\t\t\t}\n\t\t// Handle list of messages.\n\t\tcase fd.IsList():\n\t\t\tif fd.Message() != nil {\n\t\t\t\tls := m.Get(fd).List()\n\t\t\t\tfor i := 0; i < ls.Len(); i++ {\n\t\t\t\t\tdiscardUnknown(ls.Get(i).Message())\n\t\t\t\t}\n\t\t\t}\n\t\t// Handle map of messages.\n\t\tcase fd.IsMap():\n\t\t\tif fd.MapValue().Message() != nil {\n\t\t\t\tms := m.Get(fd).Map()\n\t\t\t\tms.Range(func(_ protoreflect.MapKey, v protoreflect.Value) bool {\n\t\t\t\t\tdiscardUnknown(v.Message())\n\t\t\t\t\treturn true\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\treturn true\n\t})\n\n\t// Discard unknown fields.\n\tif len(m.GetUnknown()) > 0 {\n\t\tm.SetUnknown(nil)\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/proto/extensions.go",
    "content": "// Copyright 2010 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/proto\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/reflect/protoregistry\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n\t\"google.golang.org/protobuf/runtime/protoimpl\"\n)\n\ntype (\n\t// ExtensionDesc represents an extension descriptor and\n\t// is used to interact with an extension field in a message.\n\t//\n\t// Variables of this type are generated in code by protoc-gen-go.\n\tExtensionDesc = protoimpl.ExtensionInfo\n\n\t// ExtensionRange represents a range of message extensions.\n\t// Used in code generated by protoc-gen-go.\n\tExtensionRange = protoiface.ExtensionRangeV1\n\n\t// Deprecated: Do not use; this is an internal type.\n\tExtension = protoimpl.ExtensionFieldV1\n\n\t// Deprecated: Do not use; this is an internal type.\n\tXXX_InternalExtensions = protoimpl.ExtensionFields\n)\n\n// ErrMissingExtension reports whether the extension was not present.\nvar ErrMissingExtension = errors.New(\"proto: missing extension\")\n\nvar errNotExtendable = errors.New(\"proto: not an extendable proto.Message\")\n\n// HasExtension reports whether the extension field is present in m\n// either as an explicitly populated field or as an unknown field.\nfunc HasExtension(m Message, xt *ExtensionDesc) (has bool) {\n\tmr := MessageReflect(m)\n\tif mr == nil || !mr.IsValid() {\n\t\treturn false\n\t}\n\n\t// Check whether any populated known field matches the field number.\n\txtd := xt.TypeDescriptor()\n\tif isValidExtension(mr.Descriptor(), xtd) {\n\t\thas = mr.Has(xtd)\n\t} else {\n\t\tmr.Range(func(fd protoreflect.FieldDescriptor, _ protoreflect.Value) bool {\n\t\t\thas = int32(fd.Number()) == xt.Field\n\t\t\treturn !has\n\t\t})\n\t}\n\n\t// Check whether any unknown field matches the field number.\n\tfor b := mr.GetUnknown(); !has && len(b) > 0; {\n\t\tnum, _, n := protowire.ConsumeField(b)\n\t\thas = int32(num) == xt.Field\n\t\tb = b[n:]\n\t}\n\treturn has\n}\n\n// ClearExtension removes the extension field from m\n// either as an explicitly populated field or as an unknown field.\nfunc ClearExtension(m Message, xt *ExtensionDesc) {\n\tmr := MessageReflect(m)\n\tif mr == nil || !mr.IsValid() {\n\t\treturn\n\t}\n\n\txtd := xt.TypeDescriptor()\n\tif isValidExtension(mr.Descriptor(), xtd) {\n\t\tmr.Clear(xtd)\n\t} else {\n\t\tmr.Range(func(fd protoreflect.FieldDescriptor, _ protoreflect.Value) bool {\n\t\t\tif int32(fd.Number()) == xt.Field {\n\t\t\t\tmr.Clear(fd)\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn true\n\t\t})\n\t}\n\tclearUnknown(mr, fieldNum(xt.Field))\n}\n\n// ClearAllExtensions clears all extensions from m.\n// This includes populated fields and unknown fields in the extension range.\nfunc ClearAllExtensions(m Message) {\n\tmr := MessageReflect(m)\n\tif mr == nil || !mr.IsValid() {\n\t\treturn\n\t}\n\n\tmr.Range(func(fd protoreflect.FieldDescriptor, _ protoreflect.Value) bool {\n\t\tif fd.IsExtension() {\n\t\t\tmr.Clear(fd)\n\t\t}\n\t\treturn true\n\t})\n\tclearUnknown(mr, mr.Descriptor().ExtensionRanges())\n}\n\n// GetExtension retrieves a proto2 extended field from m.\n//\n// If the descriptor is type complete (i.e., ExtensionDesc.ExtensionType is non-nil),\n// then GetExtension parses the encoded field and returns a Go value of the specified type.\n// If the field is not present, then the default value is returned (if one is specified),\n// otherwise ErrMissingExtension is reported.\n//\n// If the descriptor is type incomplete (i.e., ExtensionDesc.ExtensionType is nil),\n// then GetExtension returns the raw encoded bytes for the extension field.\nfunc GetExtension(m Message, xt *ExtensionDesc) (interface{}, error) {\n\tmr := MessageReflect(m)\n\tif mr == nil || !mr.IsValid() || mr.Descriptor().ExtensionRanges().Len() == 0 {\n\t\treturn nil, errNotExtendable\n\t}\n\n\t// Retrieve the unknown fields for this extension field.\n\tvar bo protoreflect.RawFields\n\tfor bi := mr.GetUnknown(); len(bi) > 0; {\n\t\tnum, _, n := protowire.ConsumeField(bi)\n\t\tif int32(num) == xt.Field {\n\t\t\tbo = append(bo, bi[:n]...)\n\t\t}\n\t\tbi = bi[n:]\n\t}\n\n\t// For type incomplete descriptors, only retrieve the unknown fields.\n\tif xt.ExtensionType == nil {\n\t\treturn []byte(bo), nil\n\t}\n\n\t// If the extension field only exists as unknown fields, unmarshal it.\n\t// This is rarely done since proto.Unmarshal eagerly unmarshals extensions.\n\txtd := xt.TypeDescriptor()\n\tif !isValidExtension(mr.Descriptor(), xtd) {\n\t\treturn nil, fmt.Errorf(\"proto: bad extended type; %T does not extend %T\", xt.ExtendedType, m)\n\t}\n\tif !mr.Has(xtd) && len(bo) > 0 {\n\t\tm2 := mr.New()\n\t\tif err := (proto.UnmarshalOptions{\n\t\t\tResolver: extensionResolver{xt},\n\t\t}.Unmarshal(bo, m2.Interface())); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif m2.Has(xtd) {\n\t\t\tmr.Set(xtd, m2.Get(xtd))\n\t\t\tclearUnknown(mr, fieldNum(xt.Field))\n\t\t}\n\t}\n\n\t// Check whether the message has the extension field set or a default.\n\tvar pv protoreflect.Value\n\tswitch {\n\tcase mr.Has(xtd):\n\t\tpv = mr.Get(xtd)\n\tcase xtd.HasDefault():\n\t\tpv = xtd.Default()\n\tdefault:\n\t\treturn nil, ErrMissingExtension\n\t}\n\n\tv := xt.InterfaceOf(pv)\n\trv := reflect.ValueOf(v)\n\tif isScalarKind(rv.Kind()) {\n\t\trv2 := reflect.New(rv.Type())\n\t\trv2.Elem().Set(rv)\n\t\tv = rv2.Interface()\n\t}\n\treturn v, nil\n}\n\n// extensionResolver is a custom extension resolver that stores a single\n// extension type that takes precedence over the global registry.\ntype extensionResolver struct{ xt protoreflect.ExtensionType }\n\nfunc (r extensionResolver) FindExtensionByName(field protoreflect.FullName) (protoreflect.ExtensionType, error) {\n\tif xtd := r.xt.TypeDescriptor(); xtd.FullName() == field {\n\t\treturn r.xt, nil\n\t}\n\treturn protoregistry.GlobalTypes.FindExtensionByName(field)\n}\n\nfunc (r extensionResolver) FindExtensionByNumber(message protoreflect.FullName, field protoreflect.FieldNumber) (protoreflect.ExtensionType, error) {\n\tif xtd := r.xt.TypeDescriptor(); xtd.ContainingMessage().FullName() == message && xtd.Number() == field {\n\t\treturn r.xt, nil\n\t}\n\treturn protoregistry.GlobalTypes.FindExtensionByNumber(message, field)\n}\n\n// GetExtensions returns a list of the extensions values present in m,\n// corresponding with the provided list of extension descriptors, xts.\n// If an extension is missing in m, the corresponding value is nil.\nfunc GetExtensions(m Message, xts []*ExtensionDesc) ([]interface{}, error) {\n\tmr := MessageReflect(m)\n\tif mr == nil || !mr.IsValid() {\n\t\treturn nil, errNotExtendable\n\t}\n\n\tvs := make([]interface{}, len(xts))\n\tfor i, xt := range xts {\n\t\tv, err := GetExtension(m, xt)\n\t\tif err != nil {\n\t\t\tif err == ErrMissingExtension {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn vs, err\n\t\t}\n\t\tvs[i] = v\n\t}\n\treturn vs, nil\n}\n\n// SetExtension sets an extension field in m to the provided value.\nfunc SetExtension(m Message, xt *ExtensionDesc, v interface{}) error {\n\tmr := MessageReflect(m)\n\tif mr == nil || !mr.IsValid() || mr.Descriptor().ExtensionRanges().Len() == 0 {\n\t\treturn errNotExtendable\n\t}\n\n\trv := reflect.ValueOf(v)\n\tif reflect.TypeOf(v) != reflect.TypeOf(xt.ExtensionType) {\n\t\treturn fmt.Errorf(\"proto: bad extension value type. got: %T, want: %T\", v, xt.ExtensionType)\n\t}\n\tif rv.Kind() == reflect.Ptr {\n\t\tif rv.IsNil() {\n\t\t\treturn fmt.Errorf(\"proto: SetExtension called with nil value of type %T\", v)\n\t\t}\n\t\tif isScalarKind(rv.Elem().Kind()) {\n\t\t\tv = rv.Elem().Interface()\n\t\t}\n\t}\n\n\txtd := xt.TypeDescriptor()\n\tif !isValidExtension(mr.Descriptor(), xtd) {\n\t\treturn fmt.Errorf(\"proto: bad extended type; %T does not extend %T\", xt.ExtendedType, m)\n\t}\n\tmr.Set(xtd, xt.ValueOf(v))\n\tclearUnknown(mr, fieldNum(xt.Field))\n\treturn nil\n}\n\n// SetRawExtension inserts b into the unknown fields of m.\n//\n// Deprecated: Use Message.ProtoReflect.SetUnknown instead.\nfunc SetRawExtension(m Message, fnum int32, b []byte) {\n\tmr := MessageReflect(m)\n\tif mr == nil || !mr.IsValid() {\n\t\treturn\n\t}\n\n\t// Verify that the raw field is valid.\n\tfor b0 := b; len(b0) > 0; {\n\t\tnum, _, n := protowire.ConsumeField(b0)\n\t\tif int32(num) != fnum {\n\t\t\tpanic(fmt.Sprintf(\"mismatching field number: got %d, want %d\", num, fnum))\n\t\t}\n\t\tb0 = b0[n:]\n\t}\n\n\tClearExtension(m, &ExtensionDesc{Field: fnum})\n\tmr.SetUnknown(append(mr.GetUnknown(), b...))\n}\n\n// ExtensionDescs returns a list of extension descriptors found in m,\n// containing descriptors for both populated extension fields in m and\n// also unknown fields of m that are in the extension range.\n// For the later case, an type incomplete descriptor is provided where only\n// the ExtensionDesc.Field field is populated.\n// The order of the extension descriptors is undefined.\nfunc ExtensionDescs(m Message) ([]*ExtensionDesc, error) {\n\tmr := MessageReflect(m)\n\tif mr == nil || !mr.IsValid() || mr.Descriptor().ExtensionRanges().Len() == 0 {\n\t\treturn nil, errNotExtendable\n\t}\n\n\t// Collect a set of known extension descriptors.\n\textDescs := make(map[protoreflect.FieldNumber]*ExtensionDesc)\n\tmr.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool {\n\t\tif fd.IsExtension() {\n\t\t\txt := fd.(protoreflect.ExtensionTypeDescriptor)\n\t\t\tif xd, ok := xt.Type().(*ExtensionDesc); ok {\n\t\t\t\textDescs[fd.Number()] = xd\n\t\t\t}\n\t\t}\n\t\treturn true\n\t})\n\n\t// Collect a set of unknown extension descriptors.\n\textRanges := mr.Descriptor().ExtensionRanges()\n\tfor b := mr.GetUnknown(); len(b) > 0; {\n\t\tnum, _, n := protowire.ConsumeField(b)\n\t\tif extRanges.Has(num) && extDescs[num] == nil {\n\t\t\textDescs[num] = nil\n\t\t}\n\t\tb = b[n:]\n\t}\n\n\t// Transpose the set of descriptors into a list.\n\tvar xts []*ExtensionDesc\n\tfor num, xt := range extDescs {\n\t\tif xt == nil {\n\t\t\txt = &ExtensionDesc{Field: int32(num)}\n\t\t}\n\t\txts = append(xts, xt)\n\t}\n\treturn xts, nil\n}\n\n// isValidExtension reports whether xtd is a valid extension descriptor for md.\nfunc isValidExtension(md protoreflect.MessageDescriptor, xtd protoreflect.ExtensionTypeDescriptor) bool {\n\treturn xtd.ContainingMessage() == md && md.ExtensionRanges().Has(xtd.Number())\n}\n\n// isScalarKind reports whether k is a protobuf scalar kind (except bytes).\n// This function exists for historical reasons since the representation of\n// scalars differs between v1 and v2, where v1 uses *T and v2 uses T.\nfunc isScalarKind(k reflect.Kind) bool {\n\tswitch k {\n\tcase reflect.Bool, reflect.Int32, reflect.Int64, reflect.Uint32, reflect.Uint64, reflect.Float32, reflect.Float64, reflect.String:\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\n// clearUnknown removes unknown fields from m where remover.Has reports true.\nfunc clearUnknown(m protoreflect.Message, remover interface {\n\tHas(protoreflect.FieldNumber) bool\n}) {\n\tvar bo protoreflect.RawFields\n\tfor bi := m.GetUnknown(); len(bi) > 0; {\n\t\tnum, _, n := protowire.ConsumeField(bi)\n\t\tif !remover.Has(num) {\n\t\t\tbo = append(bo, bi[:n]...)\n\t\t}\n\t\tbi = bi[n:]\n\t}\n\tif bi := m.GetUnknown(); len(bi) != len(bo) {\n\t\tm.SetUnknown(bo)\n\t}\n}\n\ntype fieldNum protoreflect.FieldNumber\n\nfunc (n1 fieldNum) Has(n2 protoreflect.FieldNumber) bool {\n\treturn protoreflect.FieldNumber(n1) == n2\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/proto/properties.go",
    "content": "// Copyright 2010 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/runtime/protoimpl\"\n)\n\n// StructProperties represents protocol buffer type information for a\n// generated protobuf message in the open-struct API.\n//\n// Deprecated: Do not use.\ntype StructProperties struct {\n\t// Prop are the properties for each field.\n\t//\n\t// Fields belonging to a oneof are stored in OneofTypes instead, with a\n\t// single Properties representing the parent oneof held here.\n\t//\n\t// The order of Prop matches the order of fields in the Go struct.\n\t// Struct fields that are not related to protobufs have a \"XXX_\" prefix\n\t// in the Properties.Name and must be ignored by the user.\n\tProp []*Properties\n\n\t// OneofTypes contains information about the oneof fields in this message.\n\t// It is keyed by the protobuf field name.\n\tOneofTypes map[string]*OneofProperties\n}\n\n// Properties represents the type information for a protobuf message field.\n//\n// Deprecated: Do not use.\ntype Properties struct {\n\t// Name is a placeholder name with little meaningful semantic value.\n\t// If the name has an \"XXX_\" prefix, the entire Properties must be ignored.\n\tName string\n\t// OrigName is the protobuf field name or oneof name.\n\tOrigName string\n\t// JSONName is the JSON name for the protobuf field.\n\tJSONName string\n\t// Enum is a placeholder name for enums.\n\t// For historical reasons, this is neither the Go name for the enum,\n\t// nor the protobuf name for the enum.\n\tEnum string // Deprecated: Do not use.\n\t// Weak contains the full name of the weakly referenced message.\n\tWeak string\n\t// Wire is a string representation of the wire type.\n\tWire string\n\t// WireType is the protobuf wire type for the field.\n\tWireType int\n\t// Tag is the protobuf field number.\n\tTag int\n\t// Required reports whether this is a required field.\n\tRequired bool\n\t// Optional reports whether this is a optional field.\n\tOptional bool\n\t// Repeated reports whether this is a repeated field.\n\tRepeated bool\n\t// Packed reports whether this is a packed repeated field of scalars.\n\tPacked bool\n\t// Proto3 reports whether this field operates under the proto3 syntax.\n\tProto3 bool\n\t// Oneof reports whether this field belongs within a oneof.\n\tOneof bool\n\n\t// Default is the default value in string form.\n\tDefault string\n\t// HasDefault reports whether the field has a default value.\n\tHasDefault bool\n\n\t// MapKeyProp is the properties for the key field for a map field.\n\tMapKeyProp *Properties\n\t// MapValProp is the properties for the value field for a map field.\n\tMapValProp *Properties\n}\n\n// OneofProperties represents the type information for a protobuf oneof.\n//\n// Deprecated: Do not use.\ntype OneofProperties struct {\n\t// Type is a pointer to the generated wrapper type for the field value.\n\t// This is nil for messages that are not in the open-struct API.\n\tType reflect.Type\n\t// Field is the index into StructProperties.Prop for the containing oneof.\n\tField int\n\t// Prop is the properties for the field.\n\tProp *Properties\n}\n\n// String formats the properties in the protobuf struct field tag style.\nfunc (p *Properties) String() string {\n\ts := p.Wire\n\ts += \",\" + strconv.Itoa(p.Tag)\n\tif p.Required {\n\t\ts += \",req\"\n\t}\n\tif p.Optional {\n\t\ts += \",opt\"\n\t}\n\tif p.Repeated {\n\t\ts += \",rep\"\n\t}\n\tif p.Packed {\n\t\ts += \",packed\"\n\t}\n\ts += \",name=\" + p.OrigName\n\tif p.JSONName != \"\" {\n\t\ts += \",json=\" + p.JSONName\n\t}\n\tif len(p.Enum) > 0 {\n\t\ts += \",enum=\" + p.Enum\n\t}\n\tif len(p.Weak) > 0 {\n\t\ts += \",weak=\" + p.Weak\n\t}\n\tif p.Proto3 {\n\t\ts += \",proto3\"\n\t}\n\tif p.Oneof {\n\t\ts += \",oneof\"\n\t}\n\tif p.HasDefault {\n\t\ts += \",def=\" + p.Default\n\t}\n\treturn s\n}\n\n// Parse populates p by parsing a string in the protobuf struct field tag style.\nfunc (p *Properties) Parse(tag string) {\n\t// For example: \"bytes,49,opt,name=foo,def=hello!\"\n\tfor len(tag) > 0 {\n\t\ti := strings.IndexByte(tag, ',')\n\t\tif i < 0 {\n\t\t\ti = len(tag)\n\t\t}\n\t\tswitch s := tag[:i]; {\n\t\tcase strings.HasPrefix(s, \"name=\"):\n\t\t\tp.OrigName = s[len(\"name=\"):]\n\t\tcase strings.HasPrefix(s, \"json=\"):\n\t\t\tp.JSONName = s[len(\"json=\"):]\n\t\tcase strings.HasPrefix(s, \"enum=\"):\n\t\t\tp.Enum = s[len(\"enum=\"):]\n\t\tcase strings.HasPrefix(s, \"weak=\"):\n\t\t\tp.Weak = s[len(\"weak=\"):]\n\t\tcase strings.Trim(s, \"0123456789\") == \"\":\n\t\t\tn, _ := strconv.ParseUint(s, 10, 32)\n\t\t\tp.Tag = int(n)\n\t\tcase s == \"opt\":\n\t\t\tp.Optional = true\n\t\tcase s == \"req\":\n\t\t\tp.Required = true\n\t\tcase s == \"rep\":\n\t\t\tp.Repeated = true\n\t\tcase s == \"varint\" || s == \"zigzag32\" || s == \"zigzag64\":\n\t\t\tp.Wire = s\n\t\t\tp.WireType = WireVarint\n\t\tcase s == \"fixed32\":\n\t\t\tp.Wire = s\n\t\t\tp.WireType = WireFixed32\n\t\tcase s == \"fixed64\":\n\t\t\tp.Wire = s\n\t\t\tp.WireType = WireFixed64\n\t\tcase s == \"bytes\":\n\t\t\tp.Wire = s\n\t\t\tp.WireType = WireBytes\n\t\tcase s == \"group\":\n\t\t\tp.Wire = s\n\t\t\tp.WireType = WireStartGroup\n\t\tcase s == \"packed\":\n\t\t\tp.Packed = true\n\t\tcase s == \"proto3\":\n\t\t\tp.Proto3 = true\n\t\tcase s == \"oneof\":\n\t\t\tp.Oneof = true\n\t\tcase strings.HasPrefix(s, \"def=\"):\n\t\t\t// The default tag is special in that everything afterwards is the\n\t\t\t// default regardless of the presence of commas.\n\t\t\tp.HasDefault = true\n\t\t\tp.Default, i = tag[len(\"def=\"):], len(tag)\n\t\t}\n\t\ttag = strings.TrimPrefix(tag[i:], \",\")\n\t}\n}\n\n// Init populates the properties from a protocol buffer struct tag.\n//\n// Deprecated: Do not use.\nfunc (p *Properties) Init(typ reflect.Type, name, tag string, f *reflect.StructField) {\n\tp.Name = name\n\tp.OrigName = name\n\tif tag == \"\" {\n\t\treturn\n\t}\n\tp.Parse(tag)\n\n\tif typ != nil && typ.Kind() == reflect.Map {\n\t\tp.MapKeyProp = new(Properties)\n\t\tp.MapKeyProp.Init(nil, \"Key\", f.Tag.Get(\"protobuf_key\"), nil)\n\t\tp.MapValProp = new(Properties)\n\t\tp.MapValProp.Init(nil, \"Value\", f.Tag.Get(\"protobuf_val\"), nil)\n\t}\n}\n\nvar propertiesCache sync.Map // map[reflect.Type]*StructProperties\n\n// GetProperties returns the list of properties for the type represented by t,\n// which must be a generated protocol buffer message in the open-struct API,\n// where protobuf message fields are represented by exported Go struct fields.\n//\n// Deprecated: Use protobuf reflection instead.\nfunc GetProperties(t reflect.Type) *StructProperties {\n\tif p, ok := propertiesCache.Load(t); ok {\n\t\treturn p.(*StructProperties)\n\t}\n\tp, _ := propertiesCache.LoadOrStore(t, newProperties(t))\n\treturn p.(*StructProperties)\n}\n\nfunc newProperties(t reflect.Type) *StructProperties {\n\tif t.Kind() != reflect.Struct {\n\t\tpanic(fmt.Sprintf(\"%v is not a generated message in the open-struct API\", t))\n\t}\n\n\tvar hasOneof bool\n\tprop := new(StructProperties)\n\n\t// Construct a list of properties for each field in the struct.\n\tfor i := 0; i < t.NumField(); i++ {\n\t\tp := new(Properties)\n\t\tf := t.Field(i)\n\t\ttagField := f.Tag.Get(\"protobuf\")\n\t\tp.Init(f.Type, f.Name, tagField, &f)\n\n\t\ttagOneof := f.Tag.Get(\"protobuf_oneof\")\n\t\tif tagOneof != \"\" {\n\t\t\thasOneof = true\n\t\t\tp.OrigName = tagOneof\n\t\t}\n\n\t\t// Rename unrelated struct fields with the \"XXX_\" prefix since so much\n\t\t// user code simply checks for this to exclude special fields.\n\t\tif tagField == \"\" && tagOneof == \"\" && !strings.HasPrefix(p.Name, \"XXX_\") {\n\t\t\tp.Name = \"XXX_\" + p.Name\n\t\t\tp.OrigName = \"XXX_\" + p.OrigName\n\t\t} else if p.Weak != \"\" {\n\t\t\tp.Name = p.OrigName // avoid possible \"XXX_\" prefix on weak field\n\t\t}\n\n\t\tprop.Prop = append(prop.Prop, p)\n\t}\n\n\t// Construct a mapping of oneof field names to properties.\n\tif hasOneof {\n\t\tvar oneofWrappers []interface{}\n\t\tif fn, ok := reflect.PtrTo(t).MethodByName(\"XXX_OneofFuncs\"); ok {\n\t\t\toneofWrappers = fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))})[3].Interface().([]interface{})\n\t\t}\n\t\tif fn, ok := reflect.PtrTo(t).MethodByName(\"XXX_OneofWrappers\"); ok {\n\t\t\toneofWrappers = fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))})[0].Interface().([]interface{})\n\t\t}\n\t\tif m, ok := reflect.Zero(reflect.PtrTo(t)).Interface().(protoreflect.ProtoMessage); ok {\n\t\t\tif m, ok := m.ProtoReflect().(interface{ ProtoMessageInfo() *protoimpl.MessageInfo }); ok {\n\t\t\t\toneofWrappers = m.ProtoMessageInfo().OneofWrappers\n\t\t\t}\n\t\t}\n\n\t\tprop.OneofTypes = make(map[string]*OneofProperties)\n\t\tfor _, wrapper := range oneofWrappers {\n\t\t\tp := &OneofProperties{\n\t\t\t\tType: reflect.ValueOf(wrapper).Type(), // *T\n\t\t\t\tProp: new(Properties),\n\t\t\t}\n\t\t\tf := p.Type.Elem().Field(0)\n\t\t\tp.Prop.Name = f.Name\n\t\t\tp.Prop.Parse(f.Tag.Get(\"protobuf\"))\n\n\t\t\t// Determine the struct field that contains this oneof.\n\t\t\t// Each wrapper is assignable to exactly one parent field.\n\t\t\tvar foundOneof bool\n\t\t\tfor i := 0; i < t.NumField() && !foundOneof; i++ {\n\t\t\t\tif p.Type.AssignableTo(t.Field(i).Type) {\n\t\t\t\t\tp.Field = i\n\t\t\t\t\tfoundOneof = true\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !foundOneof {\n\t\t\t\tpanic(fmt.Sprintf(\"%v is not a generated message in the open-struct API\", t))\n\t\t\t}\n\t\t\tprop.OneofTypes[p.Prop.OrigName] = p\n\t\t}\n\t}\n\n\treturn prop\n}\n\nfunc (sp *StructProperties) Len() int           { return len(sp.Prop) }\nfunc (sp *StructProperties) Less(i, j int) bool { return false }\nfunc (sp *StructProperties) Swap(i, j int)      { return }\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/proto/proto.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package proto provides functionality for handling protocol buffer messages.\n// In particular, it provides marshaling and unmarshaling between a protobuf\n// message and the binary wire format.\n//\n// See https://developers.google.com/protocol-buffers/docs/gotutorial for\n// more information.\n//\n// Deprecated: Use the \"google.golang.org/protobuf/proto\" package instead.\npackage proto\n\nimport (\n\tprotoV2 \"google.golang.org/protobuf/proto\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n\t\"google.golang.org/protobuf/runtime/protoimpl\"\n)\n\nconst (\n\tProtoPackageIsVersion1 = true\n\tProtoPackageIsVersion2 = true\n\tProtoPackageIsVersion3 = true\n\tProtoPackageIsVersion4 = true\n)\n\n// GeneratedEnum is any enum type generated by protoc-gen-go\n// which is a named int32 kind.\n// This type exists for documentation purposes.\ntype GeneratedEnum interface{}\n\n// GeneratedMessage is any message type generated by protoc-gen-go\n// which is a pointer to a named struct kind.\n// This type exists for documentation purposes.\ntype GeneratedMessage interface{}\n\n// Message is a protocol buffer message.\n//\n// This is the v1 version of the message interface and is marginally better\n// than an empty interface as it lacks any method to programatically interact\n// with the contents of the message.\n//\n// A v2 message is declared in \"google.golang.org/protobuf/proto\".Message and\n// exposes protobuf reflection as a first-class feature of the interface.\n//\n// To convert a v1 message to a v2 message, use the MessageV2 function.\n// To convert a v2 message to a v1 message, use the MessageV1 function.\ntype Message = protoiface.MessageV1\n\n// MessageV1 converts either a v1 or v2 message to a v1 message.\n// It returns nil if m is nil.\nfunc MessageV1(m GeneratedMessage) protoiface.MessageV1 {\n\treturn protoimpl.X.ProtoMessageV1Of(m)\n}\n\n// MessageV2 converts either a v1 or v2 message to a v2 message.\n// It returns nil if m is nil.\nfunc MessageV2(m GeneratedMessage) protoV2.Message {\n\treturn protoimpl.X.ProtoMessageV2Of(m)\n}\n\n// MessageReflect returns a reflective view for a message.\n// It returns nil if m is nil.\nfunc MessageReflect(m Message) protoreflect.Message {\n\treturn protoimpl.X.MessageOf(m)\n}\n\n// Marshaler is implemented by messages that can marshal themselves.\n// This interface is used by the following functions: Size, Marshal,\n// Buffer.Marshal, and Buffer.EncodeMessage.\n//\n// Deprecated: Do not implement.\ntype Marshaler interface {\n\t// Marshal formats the encoded bytes of the message.\n\t// It should be deterministic and emit valid protobuf wire data.\n\t// The caller takes ownership of the returned buffer.\n\tMarshal() ([]byte, error)\n}\n\n// Unmarshaler is implemented by messages that can unmarshal themselves.\n// This interface is used by the following functions: Unmarshal, UnmarshalMerge,\n// Buffer.Unmarshal, Buffer.DecodeMessage, and Buffer.DecodeGroup.\n//\n// Deprecated: Do not implement.\ntype Unmarshaler interface {\n\t// Unmarshal parses the encoded bytes of the protobuf wire input.\n\t// The provided buffer is only valid for during method call.\n\t// It should not reset the receiver message.\n\tUnmarshal([]byte) error\n}\n\n// Merger is implemented by messages that can merge themselves.\n// This interface is used by the following functions: Clone and Merge.\n//\n// Deprecated: Do not implement.\ntype Merger interface {\n\t// Merge merges the contents of src into the receiver message.\n\t// It clones all data structures in src such that it aliases no mutable\n\t// memory referenced by src.\n\tMerge(src Message)\n}\n\n// RequiredNotSetError is an error type returned when\n// marshaling or unmarshaling a message with missing required fields.\ntype RequiredNotSetError struct {\n\terr error\n}\n\nfunc (e *RequiredNotSetError) Error() string {\n\tif e.err != nil {\n\t\treturn e.err.Error()\n\t}\n\treturn \"proto: required field not set\"\n}\nfunc (e *RequiredNotSetError) RequiredNotSet() bool {\n\treturn true\n}\n\nfunc checkRequiredNotSet(m protoV2.Message) error {\n\tif err := protoV2.CheckInitialized(m); err != nil {\n\t\treturn &RequiredNotSetError{err: err}\n\t}\n\treturn nil\n}\n\n// Clone returns a deep copy of src.\nfunc Clone(src Message) Message {\n\treturn MessageV1(protoV2.Clone(MessageV2(src)))\n}\n\n// Merge merges src into dst, which must be messages of the same type.\n//\n// Populated scalar fields in src are copied to dst, while populated\n// singular messages in src are merged into dst by recursively calling Merge.\n// The elements of every list field in src is appended to the corresponded\n// list fields in dst. The entries of every map field in src is copied into\n// the corresponding map field in dst, possibly replacing existing entries.\n// The unknown fields of src are appended to the unknown fields of dst.\nfunc Merge(dst, src Message) {\n\tprotoV2.Merge(MessageV2(dst), MessageV2(src))\n}\n\n// Equal reports whether two messages are equal.\n// If two messages marshal to the same bytes under deterministic serialization,\n// then Equal is guaranteed to report true.\n//\n// Two messages are equal if they are the same protobuf message type,\n// have the same set of populated known and extension field values,\n// and the same set of unknown fields values.\n//\n// Scalar values are compared with the equivalent of the == operator in Go,\n// except bytes values which are compared using bytes.Equal and\n// floating point values which specially treat NaNs as equal.\n// Message values are compared by recursively calling Equal.\n// Lists are equal if each element value is also equal.\n// Maps are equal if they have the same set of keys, where the pair of values\n// for each key is also equal.\nfunc Equal(x, y Message) bool {\n\treturn protoV2.Equal(MessageV2(x), MessageV2(y))\n}\n\nfunc isMessageSet(md protoreflect.MessageDescriptor) bool {\n\tms, ok := md.(interface{ IsMessageSet() bool })\n\treturn ok && ms.IsMessageSet()\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/proto/registry.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\nimport (\n\t\"bytes\"\n\t\"compress/gzip\"\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"reflect\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"google.golang.org/protobuf/reflect/protodesc\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/reflect/protoregistry\"\n\t\"google.golang.org/protobuf/runtime/protoimpl\"\n)\n\n// filePath is the path to the proto source file.\ntype filePath = string // e.g., \"google/protobuf/descriptor.proto\"\n\n// fileDescGZIP is the compressed contents of the encoded FileDescriptorProto.\ntype fileDescGZIP = []byte\n\nvar fileCache sync.Map // map[filePath]fileDescGZIP\n\n// RegisterFile is called from generated code to register the compressed\n// FileDescriptorProto with the file path for a proto source file.\n//\n// Deprecated: Use protoregistry.GlobalFiles.RegisterFile instead.\nfunc RegisterFile(s filePath, d fileDescGZIP) {\n\t// Decompress the descriptor.\n\tzr, err := gzip.NewReader(bytes.NewReader(d))\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"proto: invalid compressed file descriptor: %v\", err))\n\t}\n\tb, err := ioutil.ReadAll(zr)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"proto: invalid compressed file descriptor: %v\", err))\n\t}\n\n\t// Construct a protoreflect.FileDescriptor from the raw descriptor.\n\t// Note that DescBuilder.Build automatically registers the constructed\n\t// file descriptor with the v2 registry.\n\tprotoimpl.DescBuilder{RawDescriptor: b}.Build()\n\n\t// Locally cache the raw descriptor form for the file.\n\tfileCache.Store(s, d)\n}\n\n// FileDescriptor returns the compressed FileDescriptorProto given the file path\n// for a proto source file. It returns nil if not found.\n//\n// Deprecated: Use protoregistry.GlobalFiles.FindFileByPath instead.\nfunc FileDescriptor(s filePath) fileDescGZIP {\n\tif v, ok := fileCache.Load(s); ok {\n\t\treturn v.(fileDescGZIP)\n\t}\n\n\t// Find the descriptor in the v2 registry.\n\tvar b []byte\n\tif fd, _ := protoregistry.GlobalFiles.FindFileByPath(s); fd != nil {\n\t\tb, _ = Marshal(protodesc.ToFileDescriptorProto(fd))\n\t}\n\n\t// Locally cache the raw descriptor form for the file.\n\tif len(b) > 0 {\n\t\tv, _ := fileCache.LoadOrStore(s, protoimpl.X.CompressGZIP(b))\n\t\treturn v.(fileDescGZIP)\n\t}\n\treturn nil\n}\n\n// enumName is the name of an enum. For historical reasons, the enum name is\n// neither the full Go name nor the full protobuf name of the enum.\n// The name is the dot-separated combination of just the proto package that the\n// enum is declared within followed by the Go type name of the generated enum.\ntype enumName = string // e.g., \"my.proto.package.GoMessage_GoEnum\"\n\n// enumsByName maps enum values by name to their numeric counterpart.\ntype enumsByName = map[string]int32\n\n// enumsByNumber maps enum values by number to their name counterpart.\ntype enumsByNumber = map[int32]string\n\nvar enumCache sync.Map     // map[enumName]enumsByName\nvar numFilesCache sync.Map // map[protoreflect.FullName]int\n\n// RegisterEnum is called from the generated code to register the mapping of\n// enum value names to enum numbers for the enum identified by s.\n//\n// Deprecated: Use protoregistry.GlobalTypes.RegisterEnum instead.\nfunc RegisterEnum(s enumName, _ enumsByNumber, m enumsByName) {\n\tif _, ok := enumCache.Load(s); ok {\n\t\tpanic(\"proto: duplicate enum registered: \" + s)\n\t}\n\tenumCache.Store(s, m)\n\n\t// This does not forward registration to the v2 registry since this API\n\t// lacks sufficient information to construct a complete v2 enum descriptor.\n}\n\n// EnumValueMap returns the mapping from enum value names to enum numbers for\n// the enum of the given name. It returns nil if not found.\n//\n// Deprecated: Use protoregistry.GlobalTypes.FindEnumByName instead.\nfunc EnumValueMap(s enumName) enumsByName {\n\tif v, ok := enumCache.Load(s); ok {\n\t\treturn v.(enumsByName)\n\t}\n\n\t// Check whether the cache is stale. If the number of files in the current\n\t// package differs, then it means that some enums may have been recently\n\t// registered upstream that we do not know about.\n\tvar protoPkg protoreflect.FullName\n\tif i := strings.LastIndexByte(s, '.'); i >= 0 {\n\t\tprotoPkg = protoreflect.FullName(s[:i])\n\t}\n\tv, _ := numFilesCache.Load(protoPkg)\n\tnumFiles, _ := v.(int)\n\tif protoregistry.GlobalFiles.NumFilesByPackage(protoPkg) == numFiles {\n\t\treturn nil // cache is up-to-date; was not found earlier\n\t}\n\n\t// Update the enum cache for all enums declared in the given proto package.\n\tnumFiles = 0\n\tprotoregistry.GlobalFiles.RangeFilesByPackage(protoPkg, func(fd protoreflect.FileDescriptor) bool {\n\t\twalkEnums(fd, func(ed protoreflect.EnumDescriptor) {\n\t\t\tname := protoimpl.X.LegacyEnumName(ed)\n\t\t\tif _, ok := enumCache.Load(name); !ok {\n\t\t\t\tm := make(enumsByName)\n\t\t\t\tevs := ed.Values()\n\t\t\t\tfor i := evs.Len() - 1; i >= 0; i-- {\n\t\t\t\t\tev := evs.Get(i)\n\t\t\t\t\tm[string(ev.Name())] = int32(ev.Number())\n\t\t\t\t}\n\t\t\t\tenumCache.LoadOrStore(name, m)\n\t\t\t}\n\t\t})\n\t\tnumFiles++\n\t\treturn true\n\t})\n\tnumFilesCache.Store(protoPkg, numFiles)\n\n\t// Check cache again for enum map.\n\tif v, ok := enumCache.Load(s); ok {\n\t\treturn v.(enumsByName)\n\t}\n\treturn nil\n}\n\n// walkEnums recursively walks all enums declared in d.\nfunc walkEnums(d interface {\n\tEnums() protoreflect.EnumDescriptors\n\tMessages() protoreflect.MessageDescriptors\n}, f func(protoreflect.EnumDescriptor)) {\n\teds := d.Enums()\n\tfor i := eds.Len() - 1; i >= 0; i-- {\n\t\tf(eds.Get(i))\n\t}\n\tmds := d.Messages()\n\tfor i := mds.Len() - 1; i >= 0; i-- {\n\t\twalkEnums(mds.Get(i), f)\n\t}\n}\n\n// messageName is the full name of protobuf message.\ntype messageName = string\n\nvar messageTypeCache sync.Map // map[messageName]reflect.Type\n\n// RegisterType is called from generated code to register the message Go type\n// for a message of the given name.\n//\n// Deprecated: Use protoregistry.GlobalTypes.RegisterMessage instead.\nfunc RegisterType(m Message, s messageName) {\n\tmt := protoimpl.X.LegacyMessageTypeOf(m, protoreflect.FullName(s))\n\tif err := protoregistry.GlobalTypes.RegisterMessage(mt); err != nil {\n\t\tpanic(err)\n\t}\n\tmessageTypeCache.Store(s, reflect.TypeOf(m))\n}\n\n// RegisterMapType is called from generated code to register the Go map type\n// for a protobuf message representing a map entry.\n//\n// Deprecated: Do not use.\nfunc RegisterMapType(m interface{}, s messageName) {\n\tt := reflect.TypeOf(m)\n\tif t.Kind() != reflect.Map {\n\t\tpanic(fmt.Sprintf(\"invalid map kind: %v\", t))\n\t}\n\tif _, ok := messageTypeCache.Load(s); ok {\n\t\tpanic(fmt.Errorf(\"proto: duplicate proto message registered: %s\", s))\n\t}\n\tmessageTypeCache.Store(s, t)\n}\n\n// MessageType returns the message type for a named message.\n// It returns nil if not found.\n//\n// Deprecated: Use protoregistry.GlobalTypes.FindMessageByName instead.\nfunc MessageType(s messageName) reflect.Type {\n\tif v, ok := messageTypeCache.Load(s); ok {\n\t\treturn v.(reflect.Type)\n\t}\n\n\t// Derive the message type from the v2 registry.\n\tvar t reflect.Type\n\tif mt, _ := protoregistry.GlobalTypes.FindMessageByName(protoreflect.FullName(s)); mt != nil {\n\t\tt = messageGoType(mt)\n\t}\n\n\t// If we could not get a concrete type, it is possible that it is a\n\t// pseudo-message for a map entry.\n\tif t == nil {\n\t\td, _ := protoregistry.GlobalFiles.FindDescriptorByName(protoreflect.FullName(s))\n\t\tif md, _ := d.(protoreflect.MessageDescriptor); md != nil && md.IsMapEntry() {\n\t\t\tkt := goTypeForField(md.Fields().ByNumber(1))\n\t\t\tvt := goTypeForField(md.Fields().ByNumber(2))\n\t\t\tt = reflect.MapOf(kt, vt)\n\t\t}\n\t}\n\n\t// Locally cache the message type for the given name.\n\tif t != nil {\n\t\tv, _ := messageTypeCache.LoadOrStore(s, t)\n\t\treturn v.(reflect.Type)\n\t}\n\treturn nil\n}\n\nfunc goTypeForField(fd protoreflect.FieldDescriptor) reflect.Type {\n\tswitch k := fd.Kind(); k {\n\tcase protoreflect.EnumKind:\n\t\tif et, _ := protoregistry.GlobalTypes.FindEnumByName(fd.Enum().FullName()); et != nil {\n\t\t\treturn enumGoType(et)\n\t\t}\n\t\treturn reflect.TypeOf(protoreflect.EnumNumber(0))\n\tcase protoreflect.MessageKind, protoreflect.GroupKind:\n\t\tif mt, _ := protoregistry.GlobalTypes.FindMessageByName(fd.Message().FullName()); mt != nil {\n\t\t\treturn messageGoType(mt)\n\t\t}\n\t\treturn reflect.TypeOf((*protoreflect.Message)(nil)).Elem()\n\tdefault:\n\t\treturn reflect.TypeOf(fd.Default().Interface())\n\t}\n}\n\nfunc enumGoType(et protoreflect.EnumType) reflect.Type {\n\treturn reflect.TypeOf(et.New(0))\n}\n\nfunc messageGoType(mt protoreflect.MessageType) reflect.Type {\n\treturn reflect.TypeOf(MessageV1(mt.Zero().Interface()))\n}\n\n// MessageName returns the full protobuf name for the given message type.\n//\n// Deprecated: Use protoreflect.MessageDescriptor.FullName instead.\nfunc MessageName(m Message) messageName {\n\tif m == nil {\n\t\treturn \"\"\n\t}\n\tif m, ok := m.(interface{ XXX_MessageName() messageName }); ok {\n\t\treturn m.XXX_MessageName()\n\t}\n\treturn messageName(protoimpl.X.MessageDescriptorOf(m).FullName())\n}\n\n// RegisterExtension is called from the generated code to register\n// the extension descriptor.\n//\n// Deprecated: Use protoregistry.GlobalTypes.RegisterExtension instead.\nfunc RegisterExtension(d *ExtensionDesc) {\n\tif err := protoregistry.GlobalTypes.RegisterExtension(d); err != nil {\n\t\tpanic(err)\n\t}\n}\n\ntype extensionsByNumber = map[int32]*ExtensionDesc\n\nvar extensionCache sync.Map // map[messageName]extensionsByNumber\n\n// RegisteredExtensions returns a map of the registered extensions for the\n// provided protobuf message, indexed by the extension field number.\n//\n// Deprecated: Use protoregistry.GlobalTypes.RangeExtensionsByMessage instead.\nfunc RegisteredExtensions(m Message) extensionsByNumber {\n\t// Check whether the cache is stale. If the number of extensions for\n\t// the given message differs, then it means that some extensions were\n\t// recently registered upstream that we do not know about.\n\ts := MessageName(m)\n\tv, _ := extensionCache.Load(s)\n\txs, _ := v.(extensionsByNumber)\n\tif protoregistry.GlobalTypes.NumExtensionsByMessage(protoreflect.FullName(s)) == len(xs) {\n\t\treturn xs // cache is up-to-date\n\t}\n\n\t// Cache is stale, re-compute the extensions map.\n\txs = make(extensionsByNumber)\n\tprotoregistry.GlobalTypes.RangeExtensionsByMessage(protoreflect.FullName(s), func(xt protoreflect.ExtensionType) bool {\n\t\tif xd, ok := xt.(*ExtensionDesc); ok {\n\t\t\txs[int32(xt.TypeDescriptor().Number())] = xd\n\t\t} else {\n\t\t\t// TODO: This implies that the protoreflect.ExtensionType is a\n\t\t\t// custom type not generated by protoc-gen-go. We could try and\n\t\t\t// convert the type to an ExtensionDesc.\n\t\t}\n\t\treturn true\n\t})\n\textensionCache.Store(s, xs)\n\treturn xs\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/proto/text_decode.go",
    "content": "// Copyright 2010 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\nimport (\n\t\"encoding\"\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\t\"unicode/utf8\"\n\n\t\"google.golang.org/protobuf/encoding/prototext\"\n\tprotoV2 \"google.golang.org/protobuf/proto\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/reflect/protoregistry\"\n)\n\nconst wrapTextUnmarshalV2 = false\n\n// ParseError is returned by UnmarshalText.\ntype ParseError struct {\n\tMessage string\n\n\t// Deprecated: Do not use.\n\tLine, Offset int\n}\n\nfunc (e *ParseError) Error() string {\n\tif wrapTextUnmarshalV2 {\n\t\treturn e.Message\n\t}\n\tif e.Line == 1 {\n\t\treturn fmt.Sprintf(\"line 1.%d: %v\", e.Offset, e.Message)\n\t}\n\treturn fmt.Sprintf(\"line %d: %v\", e.Line, e.Message)\n}\n\n// UnmarshalText parses a proto text formatted string into m.\nfunc UnmarshalText(s string, m Message) error {\n\tif u, ok := m.(encoding.TextUnmarshaler); ok {\n\t\treturn u.UnmarshalText([]byte(s))\n\t}\n\n\tm.Reset()\n\tmi := MessageV2(m)\n\n\tif wrapTextUnmarshalV2 {\n\t\terr := prototext.UnmarshalOptions{\n\t\t\tAllowPartial: true,\n\t\t}.Unmarshal([]byte(s), mi)\n\t\tif err != nil {\n\t\t\treturn &ParseError{Message: err.Error()}\n\t\t}\n\t\treturn checkRequiredNotSet(mi)\n\t} else {\n\t\tif err := newTextParser(s).unmarshalMessage(mi.ProtoReflect(), \"\"); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn checkRequiredNotSet(mi)\n\t}\n}\n\ntype textParser struct {\n\ts            string // remaining input\n\tdone         bool   // whether the parsing is finished (success or error)\n\tbacked       bool   // whether back() was called\n\toffset, line int\n\tcur          token\n}\n\ntype token struct {\n\tvalue    string\n\terr      *ParseError\n\tline     int    // line number\n\toffset   int    // byte number from start of input, not start of line\n\tunquoted string // the unquoted version of value, if it was a quoted string\n}\n\nfunc newTextParser(s string) *textParser {\n\tp := new(textParser)\n\tp.s = s\n\tp.line = 1\n\tp.cur.line = 1\n\treturn p\n}\n\nfunc (p *textParser) unmarshalMessage(m protoreflect.Message, terminator string) (err error) {\n\tmd := m.Descriptor()\n\tfds := md.Fields()\n\n\t// A struct is a sequence of \"name: value\", terminated by one of\n\t// '>' or '}', or the end of the input.  A name may also be\n\t// \"[extension]\" or \"[type/url]\".\n\t//\n\t// The whole struct can also be an expanded Any message, like:\n\t// [type/url] < ... struct contents ... >\n\tseen := make(map[protoreflect.FieldNumber]bool)\n\tfor {\n\t\ttok := p.next()\n\t\tif tok.err != nil {\n\t\t\treturn tok.err\n\t\t}\n\t\tif tok.value == terminator {\n\t\t\tbreak\n\t\t}\n\t\tif tok.value == \"[\" {\n\t\t\tif err := p.unmarshalExtensionOrAny(m, seen); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\t// This is a normal, non-extension field.\n\t\tname := protoreflect.Name(tok.value)\n\t\tfd := fds.ByName(name)\n\t\tswitch {\n\t\tcase fd == nil:\n\t\t\tgd := fds.ByName(protoreflect.Name(strings.ToLower(string(name))))\n\t\t\tif gd != nil && gd.Kind() == protoreflect.GroupKind && gd.Message().Name() == name {\n\t\t\t\tfd = gd\n\t\t\t}\n\t\tcase fd.Kind() == protoreflect.GroupKind && fd.Message().Name() != name:\n\t\t\tfd = nil\n\t\tcase fd.IsWeak() && fd.Message().IsPlaceholder():\n\t\t\tfd = nil\n\t\t}\n\t\tif fd == nil {\n\t\t\ttypeName := string(md.FullName())\n\t\t\tif m, ok := m.Interface().(Message); ok {\n\t\t\t\tt := reflect.TypeOf(m)\n\t\t\t\tif t.Kind() == reflect.Ptr {\n\t\t\t\t\ttypeName = t.Elem().String()\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn p.errorf(\"unknown field name %q in %v\", name, typeName)\n\t\t}\n\t\tif od := fd.ContainingOneof(); od != nil && m.WhichOneof(od) != nil {\n\t\t\treturn p.errorf(\"field '%s' would overwrite already parsed oneof '%s'\", name, od.Name())\n\t\t}\n\t\tif fd.Cardinality() != protoreflect.Repeated && seen[fd.Number()] {\n\t\t\treturn p.errorf(\"non-repeated field %q was repeated\", fd.Name())\n\t\t}\n\t\tseen[fd.Number()] = true\n\n\t\t// Consume any colon.\n\t\tif err := p.checkForColon(fd); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t// Parse into the field.\n\t\tv := m.Get(fd)\n\t\tif !m.Has(fd) && (fd.IsList() || fd.IsMap() || fd.Message() != nil) {\n\t\t\tv = m.Mutable(fd)\n\t\t}\n\t\tif v, err = p.unmarshalValue(v, fd); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tm.Set(fd, v)\n\n\t\tif err := p.consumeOptionalSeparator(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (p *textParser) unmarshalExtensionOrAny(m protoreflect.Message, seen map[protoreflect.FieldNumber]bool) error {\n\tname, err := p.consumeExtensionOrAnyName()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// If it contains a slash, it's an Any type URL.\n\tif slashIdx := strings.LastIndex(name, \"/\"); slashIdx >= 0 {\n\t\ttok := p.next()\n\t\tif tok.err != nil {\n\t\t\treturn tok.err\n\t\t}\n\t\t// consume an optional colon\n\t\tif tok.value == \":\" {\n\t\t\ttok = p.next()\n\t\t\tif tok.err != nil {\n\t\t\t\treturn tok.err\n\t\t\t}\n\t\t}\n\n\t\tvar terminator string\n\t\tswitch tok.value {\n\t\tcase \"<\":\n\t\t\tterminator = \">\"\n\t\tcase \"{\":\n\t\t\tterminator = \"}\"\n\t\tdefault:\n\t\t\treturn p.errorf(\"expected '{' or '<', found %q\", tok.value)\n\t\t}\n\n\t\tmt, err := protoregistry.GlobalTypes.FindMessageByURL(name)\n\t\tif err != nil {\n\t\t\treturn p.errorf(\"unrecognized message %q in google.protobuf.Any\", name[slashIdx+len(\"/\"):])\n\t\t}\n\t\tm2 := mt.New()\n\t\tif err := p.unmarshalMessage(m2, terminator); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tb, err := protoV2.Marshal(m2.Interface())\n\t\tif err != nil {\n\t\t\treturn p.errorf(\"failed to marshal message of type %q: %v\", name[slashIdx+len(\"/\"):], err)\n\t\t}\n\n\t\turlFD := m.Descriptor().Fields().ByName(\"type_url\")\n\t\tvalFD := m.Descriptor().Fields().ByName(\"value\")\n\t\tif seen[urlFD.Number()] {\n\t\t\treturn p.errorf(\"Any message unpacked multiple times, or %q already set\", urlFD.Name())\n\t\t}\n\t\tif seen[valFD.Number()] {\n\t\t\treturn p.errorf(\"Any message unpacked multiple times, or %q already set\", valFD.Name())\n\t\t}\n\t\tm.Set(urlFD, protoreflect.ValueOfString(name))\n\t\tm.Set(valFD, protoreflect.ValueOfBytes(b))\n\t\tseen[urlFD.Number()] = true\n\t\tseen[valFD.Number()] = true\n\t\treturn nil\n\t}\n\n\txname := protoreflect.FullName(name)\n\txt, _ := protoregistry.GlobalTypes.FindExtensionByName(xname)\n\tif xt == nil && isMessageSet(m.Descriptor()) {\n\t\txt, _ = protoregistry.GlobalTypes.FindExtensionByName(xname.Append(\"message_set_extension\"))\n\t}\n\tif xt == nil {\n\t\treturn p.errorf(\"unrecognized extension %q\", name)\n\t}\n\tfd := xt.TypeDescriptor()\n\tif fd.ContainingMessage().FullName() != m.Descriptor().FullName() {\n\t\treturn p.errorf(\"extension field %q does not extend message %q\", name, m.Descriptor().FullName())\n\t}\n\n\tif err := p.checkForColon(fd); err != nil {\n\t\treturn err\n\t}\n\n\tv := m.Get(fd)\n\tif !m.Has(fd) && (fd.IsList() || fd.IsMap() || fd.Message() != nil) {\n\t\tv = m.Mutable(fd)\n\t}\n\tv, err = p.unmarshalValue(v, fd)\n\tif err != nil {\n\t\treturn err\n\t}\n\tm.Set(fd, v)\n\treturn p.consumeOptionalSeparator()\n}\n\nfunc (p *textParser) unmarshalValue(v protoreflect.Value, fd protoreflect.FieldDescriptor) (protoreflect.Value, error) {\n\ttok := p.next()\n\tif tok.err != nil {\n\t\treturn v, tok.err\n\t}\n\tif tok.value == \"\" {\n\t\treturn v, p.errorf(\"unexpected EOF\")\n\t}\n\n\tswitch {\n\tcase fd.IsList():\n\t\tlv := v.List()\n\t\tvar err error\n\t\tif tok.value == \"[\" {\n\t\t\t// Repeated field with list notation, like [1,2,3].\n\t\t\tfor {\n\t\t\t\tvv := lv.NewElement()\n\t\t\t\tvv, err = p.unmarshalSingularValue(vv, fd)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn v, err\n\t\t\t\t}\n\t\t\t\tlv.Append(vv)\n\n\t\t\t\ttok := p.next()\n\t\t\t\tif tok.err != nil {\n\t\t\t\t\treturn v, tok.err\n\t\t\t\t}\n\t\t\t\tif tok.value == \"]\" {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tif tok.value != \",\" {\n\t\t\t\t\treturn v, p.errorf(\"Expected ']' or ',' found %q\", tok.value)\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn v, nil\n\t\t}\n\n\t\t// One value of the repeated field.\n\t\tp.back()\n\t\tvv := lv.NewElement()\n\t\tvv, err = p.unmarshalSingularValue(vv, fd)\n\t\tif err != nil {\n\t\t\treturn v, err\n\t\t}\n\t\tlv.Append(vv)\n\t\treturn v, nil\n\tcase fd.IsMap():\n\t\t// The map entry should be this sequence of tokens:\n\t\t//\t< key : KEY value : VALUE >\n\t\t// However, implementations may omit key or value, and technically\n\t\t// we should support them in any order.\n\t\tvar terminator string\n\t\tswitch tok.value {\n\t\tcase \"<\":\n\t\t\tterminator = \">\"\n\t\tcase \"{\":\n\t\t\tterminator = \"}\"\n\t\tdefault:\n\t\t\treturn v, p.errorf(\"expected '{' or '<', found %q\", tok.value)\n\t\t}\n\n\t\tkeyFD := fd.MapKey()\n\t\tvalFD := fd.MapValue()\n\n\t\tmv := v.Map()\n\t\tkv := keyFD.Default()\n\t\tvv := mv.NewValue()\n\t\tfor {\n\t\t\ttok := p.next()\n\t\t\tif tok.err != nil {\n\t\t\t\treturn v, tok.err\n\t\t\t}\n\t\t\tif tok.value == terminator {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tvar err error\n\t\t\tswitch tok.value {\n\t\t\tcase \"key\":\n\t\t\t\tif err := p.consumeToken(\":\"); err != nil {\n\t\t\t\t\treturn v, err\n\t\t\t\t}\n\t\t\t\tif kv, err = p.unmarshalSingularValue(kv, keyFD); err != nil {\n\t\t\t\t\treturn v, err\n\t\t\t\t}\n\t\t\t\tif err := p.consumeOptionalSeparator(); err != nil {\n\t\t\t\t\treturn v, err\n\t\t\t\t}\n\t\t\tcase \"value\":\n\t\t\t\tif err := p.checkForColon(valFD); err != nil {\n\t\t\t\t\treturn v, err\n\t\t\t\t}\n\t\t\t\tif vv, err = p.unmarshalSingularValue(vv, valFD); err != nil {\n\t\t\t\t\treturn v, err\n\t\t\t\t}\n\t\t\t\tif err := p.consumeOptionalSeparator(); err != nil {\n\t\t\t\t\treturn v, err\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\tp.back()\n\t\t\t\treturn v, p.errorf(`expected \"key\", \"value\", or %q, found %q`, terminator, tok.value)\n\t\t\t}\n\t\t}\n\t\tmv.Set(kv.MapKey(), vv)\n\t\treturn v, nil\n\tdefault:\n\t\tp.back()\n\t\treturn p.unmarshalSingularValue(v, fd)\n\t}\n}\n\nfunc (p *textParser) unmarshalSingularValue(v protoreflect.Value, fd protoreflect.FieldDescriptor) (protoreflect.Value, error) {\n\ttok := p.next()\n\tif tok.err != nil {\n\t\treturn v, tok.err\n\t}\n\tif tok.value == \"\" {\n\t\treturn v, p.errorf(\"unexpected EOF\")\n\t}\n\n\tswitch fd.Kind() {\n\tcase protoreflect.BoolKind:\n\t\tswitch tok.value {\n\t\tcase \"true\", \"1\", \"t\", \"True\":\n\t\t\treturn protoreflect.ValueOfBool(true), nil\n\t\tcase \"false\", \"0\", \"f\", \"False\":\n\t\t\treturn protoreflect.ValueOfBool(false), nil\n\t\t}\n\tcase protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind:\n\t\tif x, err := strconv.ParseInt(tok.value, 0, 32); err == nil {\n\t\t\treturn protoreflect.ValueOfInt32(int32(x)), nil\n\t\t}\n\n\t\t// The C++ parser accepts large positive hex numbers that uses\n\t\t// two's complement arithmetic to represent negative numbers.\n\t\t// This feature is here for backwards compatibility with C++.\n\t\tif strings.HasPrefix(tok.value, \"0x\") {\n\t\t\tif x, err := strconv.ParseUint(tok.value, 0, 32); err == nil {\n\t\t\t\treturn protoreflect.ValueOfInt32(int32(-(int64(^x) + 1))), nil\n\t\t\t}\n\t\t}\n\tcase protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind:\n\t\tif x, err := strconv.ParseInt(tok.value, 0, 64); err == nil {\n\t\t\treturn protoreflect.ValueOfInt64(int64(x)), nil\n\t\t}\n\n\t\t// The C++ parser accepts large positive hex numbers that uses\n\t\t// two's complement arithmetic to represent negative numbers.\n\t\t// This feature is here for backwards compatibility with C++.\n\t\tif strings.HasPrefix(tok.value, \"0x\") {\n\t\t\tif x, err := strconv.ParseUint(tok.value, 0, 64); err == nil {\n\t\t\t\treturn protoreflect.ValueOfInt64(int64(-(int64(^x) + 1))), nil\n\t\t\t}\n\t\t}\n\tcase protoreflect.Uint32Kind, protoreflect.Fixed32Kind:\n\t\tif x, err := strconv.ParseUint(tok.value, 0, 32); err == nil {\n\t\t\treturn protoreflect.ValueOfUint32(uint32(x)), nil\n\t\t}\n\tcase protoreflect.Uint64Kind, protoreflect.Fixed64Kind:\n\t\tif x, err := strconv.ParseUint(tok.value, 0, 64); err == nil {\n\t\t\treturn protoreflect.ValueOfUint64(uint64(x)), nil\n\t\t}\n\tcase protoreflect.FloatKind:\n\t\t// Ignore 'f' for compatibility with output generated by C++,\n\t\t// but don't remove 'f' when the value is \"-inf\" or \"inf\".\n\t\tv := tok.value\n\t\tif strings.HasSuffix(v, \"f\") && v != \"-inf\" && v != \"inf\" {\n\t\t\tv = v[:len(v)-len(\"f\")]\n\t\t}\n\t\tif x, err := strconv.ParseFloat(v, 32); err == nil {\n\t\t\treturn protoreflect.ValueOfFloat32(float32(x)), nil\n\t\t}\n\tcase protoreflect.DoubleKind:\n\t\t// Ignore 'f' for compatibility with output generated by C++,\n\t\t// but don't remove 'f' when the value is \"-inf\" or \"inf\".\n\t\tv := tok.value\n\t\tif strings.HasSuffix(v, \"f\") && v != \"-inf\" && v != \"inf\" {\n\t\t\tv = v[:len(v)-len(\"f\")]\n\t\t}\n\t\tif x, err := strconv.ParseFloat(v, 64); err == nil {\n\t\t\treturn protoreflect.ValueOfFloat64(float64(x)), nil\n\t\t}\n\tcase protoreflect.StringKind:\n\t\tif isQuote(tok.value[0]) {\n\t\t\treturn protoreflect.ValueOfString(tok.unquoted), nil\n\t\t}\n\tcase protoreflect.BytesKind:\n\t\tif isQuote(tok.value[0]) {\n\t\t\treturn protoreflect.ValueOfBytes([]byte(tok.unquoted)), nil\n\t\t}\n\tcase protoreflect.EnumKind:\n\t\tif x, err := strconv.ParseInt(tok.value, 0, 32); err == nil {\n\t\t\treturn protoreflect.ValueOfEnum(protoreflect.EnumNumber(x)), nil\n\t\t}\n\t\tvd := fd.Enum().Values().ByName(protoreflect.Name(tok.value))\n\t\tif vd != nil {\n\t\t\treturn protoreflect.ValueOfEnum(vd.Number()), nil\n\t\t}\n\tcase protoreflect.MessageKind, protoreflect.GroupKind:\n\t\tvar terminator string\n\t\tswitch tok.value {\n\t\tcase \"{\":\n\t\t\tterminator = \"}\"\n\t\tcase \"<\":\n\t\t\tterminator = \">\"\n\t\tdefault:\n\t\t\treturn v, p.errorf(\"expected '{' or '<', found %q\", tok.value)\n\t\t}\n\t\terr := p.unmarshalMessage(v.Message(), terminator)\n\t\treturn v, err\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"invalid kind %v\", fd.Kind()))\n\t}\n\treturn v, p.errorf(\"invalid %v: %v\", fd.Kind(), tok.value)\n}\n\n// Consume a ':' from the input stream (if the next token is a colon),\n// returning an error if a colon is needed but not present.\nfunc (p *textParser) checkForColon(fd protoreflect.FieldDescriptor) *ParseError {\n\ttok := p.next()\n\tif tok.err != nil {\n\t\treturn tok.err\n\t}\n\tif tok.value != \":\" {\n\t\tif fd.Message() == nil {\n\t\t\treturn p.errorf(\"expected ':', found %q\", tok.value)\n\t\t}\n\t\tp.back()\n\t}\n\treturn nil\n}\n\n// consumeExtensionOrAnyName consumes an extension name or an Any type URL and\n// the following ']'. It returns the name or URL consumed.\nfunc (p *textParser) consumeExtensionOrAnyName() (string, error) {\n\ttok := p.next()\n\tif tok.err != nil {\n\t\treturn \"\", tok.err\n\t}\n\n\t// If extension name or type url is quoted, it's a single token.\n\tif len(tok.value) > 2 && isQuote(tok.value[0]) && tok.value[len(tok.value)-1] == tok.value[0] {\n\t\tname, err := unquoteC(tok.value[1:len(tok.value)-1], rune(tok.value[0]))\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\treturn name, p.consumeToken(\"]\")\n\t}\n\n\t// Consume everything up to \"]\"\n\tvar parts []string\n\tfor tok.value != \"]\" {\n\t\tparts = append(parts, tok.value)\n\t\ttok = p.next()\n\t\tif tok.err != nil {\n\t\t\treturn \"\", p.errorf(\"unrecognized type_url or extension name: %s\", tok.err)\n\t\t}\n\t\tif p.done && tok.value != \"]\" {\n\t\t\treturn \"\", p.errorf(\"unclosed type_url or extension name\")\n\t\t}\n\t}\n\treturn strings.Join(parts, \"\"), nil\n}\n\n// consumeOptionalSeparator consumes an optional semicolon or comma.\n// It is used in unmarshalMessage to provide backward compatibility.\nfunc (p *textParser) consumeOptionalSeparator() error {\n\ttok := p.next()\n\tif tok.err != nil {\n\t\treturn tok.err\n\t}\n\tif tok.value != \";\" && tok.value != \",\" {\n\t\tp.back()\n\t}\n\treturn nil\n}\n\nfunc (p *textParser) errorf(format string, a ...interface{}) *ParseError {\n\tpe := &ParseError{fmt.Sprintf(format, a...), p.cur.line, p.cur.offset}\n\tp.cur.err = pe\n\tp.done = true\n\treturn pe\n}\n\nfunc (p *textParser) skipWhitespace() {\n\ti := 0\n\tfor i < len(p.s) && (isWhitespace(p.s[i]) || p.s[i] == '#') {\n\t\tif p.s[i] == '#' {\n\t\t\t// comment; skip to end of line or input\n\t\t\tfor i < len(p.s) && p.s[i] != '\\n' {\n\t\t\t\ti++\n\t\t\t}\n\t\t\tif i == len(p.s) {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif p.s[i] == '\\n' {\n\t\t\tp.line++\n\t\t}\n\t\ti++\n\t}\n\tp.offset += i\n\tp.s = p.s[i:len(p.s)]\n\tif len(p.s) == 0 {\n\t\tp.done = true\n\t}\n}\n\nfunc (p *textParser) advance() {\n\t// Skip whitespace\n\tp.skipWhitespace()\n\tif p.done {\n\t\treturn\n\t}\n\n\t// Start of non-whitespace\n\tp.cur.err = nil\n\tp.cur.offset, p.cur.line = p.offset, p.line\n\tp.cur.unquoted = \"\"\n\tswitch p.s[0] {\n\tcase '<', '>', '{', '}', ':', '[', ']', ';', ',', '/':\n\t\t// Single symbol\n\t\tp.cur.value, p.s = p.s[0:1], p.s[1:len(p.s)]\n\tcase '\"', '\\'':\n\t\t// Quoted string\n\t\ti := 1\n\t\tfor i < len(p.s) && p.s[i] != p.s[0] && p.s[i] != '\\n' {\n\t\t\tif p.s[i] == '\\\\' && i+1 < len(p.s) {\n\t\t\t\t// skip escaped char\n\t\t\t\ti++\n\t\t\t}\n\t\t\ti++\n\t\t}\n\t\tif i >= len(p.s) || p.s[i] != p.s[0] {\n\t\t\tp.errorf(\"unmatched quote\")\n\t\t\treturn\n\t\t}\n\t\tunq, err := unquoteC(p.s[1:i], rune(p.s[0]))\n\t\tif err != nil {\n\t\t\tp.errorf(\"invalid quoted string %s: %v\", p.s[0:i+1], err)\n\t\t\treturn\n\t\t}\n\t\tp.cur.value, p.s = p.s[0:i+1], p.s[i+1:len(p.s)]\n\t\tp.cur.unquoted = unq\n\tdefault:\n\t\ti := 0\n\t\tfor i < len(p.s) && isIdentOrNumberChar(p.s[i]) {\n\t\t\ti++\n\t\t}\n\t\tif i == 0 {\n\t\t\tp.errorf(\"unexpected byte %#x\", p.s[0])\n\t\t\treturn\n\t\t}\n\t\tp.cur.value, p.s = p.s[0:i], p.s[i:len(p.s)]\n\t}\n\tp.offset += len(p.cur.value)\n}\n\n// Back off the parser by one token. Can only be done between calls to next().\n// It makes the next advance() a no-op.\nfunc (p *textParser) back() { p.backed = true }\n\n// Advances the parser and returns the new current token.\nfunc (p *textParser) next() *token {\n\tif p.backed || p.done {\n\t\tp.backed = false\n\t\treturn &p.cur\n\t}\n\tp.advance()\n\tif p.done {\n\t\tp.cur.value = \"\"\n\t} else if len(p.cur.value) > 0 && isQuote(p.cur.value[0]) {\n\t\t// Look for multiple quoted strings separated by whitespace,\n\t\t// and concatenate them.\n\t\tcat := p.cur\n\t\tfor {\n\t\t\tp.skipWhitespace()\n\t\t\tif p.done || !isQuote(p.s[0]) {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tp.advance()\n\t\t\tif p.cur.err != nil {\n\t\t\t\treturn &p.cur\n\t\t\t}\n\t\t\tcat.value += \" \" + p.cur.value\n\t\t\tcat.unquoted += p.cur.unquoted\n\t\t}\n\t\tp.done = false // parser may have seen EOF, but we want to return cat\n\t\tp.cur = cat\n\t}\n\treturn &p.cur\n}\n\nfunc (p *textParser) consumeToken(s string) error {\n\ttok := p.next()\n\tif tok.err != nil {\n\t\treturn tok.err\n\t}\n\tif tok.value != s {\n\t\tp.back()\n\t\treturn p.errorf(\"expected %q, found %q\", s, tok.value)\n\t}\n\treturn nil\n}\n\nvar errBadUTF8 = errors.New(\"proto: bad UTF-8\")\n\nfunc unquoteC(s string, quote rune) (string, error) {\n\t// This is based on C++'s tokenizer.cc.\n\t// Despite its name, this is *not* parsing C syntax.\n\t// For instance, \"\\0\" is an invalid quoted string.\n\n\t// Avoid allocation in trivial cases.\n\tsimple := true\n\tfor _, r := range s {\n\t\tif r == '\\\\' || r == quote {\n\t\t\tsimple = false\n\t\t\tbreak\n\t\t}\n\t}\n\tif simple {\n\t\treturn s, nil\n\t}\n\n\tbuf := make([]byte, 0, 3*len(s)/2)\n\tfor len(s) > 0 {\n\t\tr, n := utf8.DecodeRuneInString(s)\n\t\tif r == utf8.RuneError && n == 1 {\n\t\t\treturn \"\", errBadUTF8\n\t\t}\n\t\ts = s[n:]\n\t\tif r != '\\\\' {\n\t\t\tif r < utf8.RuneSelf {\n\t\t\t\tbuf = append(buf, byte(r))\n\t\t\t} else {\n\t\t\t\tbuf = append(buf, string(r)...)\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\tch, tail, err := unescape(s)\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\tbuf = append(buf, ch...)\n\t\ts = tail\n\t}\n\treturn string(buf), nil\n}\n\nfunc unescape(s string) (ch string, tail string, err error) {\n\tr, n := utf8.DecodeRuneInString(s)\n\tif r == utf8.RuneError && n == 1 {\n\t\treturn \"\", \"\", errBadUTF8\n\t}\n\ts = s[n:]\n\tswitch r {\n\tcase 'a':\n\t\treturn \"\\a\", s, nil\n\tcase 'b':\n\t\treturn \"\\b\", s, nil\n\tcase 'f':\n\t\treturn \"\\f\", s, nil\n\tcase 'n':\n\t\treturn \"\\n\", s, nil\n\tcase 'r':\n\t\treturn \"\\r\", s, nil\n\tcase 't':\n\t\treturn \"\\t\", s, nil\n\tcase 'v':\n\t\treturn \"\\v\", s, nil\n\tcase '?':\n\t\treturn \"?\", s, nil // trigraph workaround\n\tcase '\\'', '\"', '\\\\':\n\t\treturn string(r), s, nil\n\tcase '0', '1', '2', '3', '4', '5', '6', '7':\n\t\tif len(s) < 2 {\n\t\t\treturn \"\", \"\", fmt.Errorf(`\\%c requires 2 following digits`, r)\n\t\t}\n\t\tss := string(r) + s[:2]\n\t\ts = s[2:]\n\t\ti, err := strconv.ParseUint(ss, 8, 8)\n\t\tif err != nil {\n\t\t\treturn \"\", \"\", fmt.Errorf(`\\%s contains non-octal digits`, ss)\n\t\t}\n\t\treturn string([]byte{byte(i)}), s, nil\n\tcase 'x', 'X', 'u', 'U':\n\t\tvar n int\n\t\tswitch r {\n\t\tcase 'x', 'X':\n\t\t\tn = 2\n\t\tcase 'u':\n\t\t\tn = 4\n\t\tcase 'U':\n\t\t\tn = 8\n\t\t}\n\t\tif len(s) < n {\n\t\t\treturn \"\", \"\", fmt.Errorf(`\\%c requires %d following digits`, r, n)\n\t\t}\n\t\tss := s[:n]\n\t\ts = s[n:]\n\t\ti, err := strconv.ParseUint(ss, 16, 64)\n\t\tif err != nil {\n\t\t\treturn \"\", \"\", fmt.Errorf(`\\%c%s contains non-hexadecimal digits`, r, ss)\n\t\t}\n\t\tif r == 'x' || r == 'X' {\n\t\t\treturn string([]byte{byte(i)}), s, nil\n\t\t}\n\t\tif i > utf8.MaxRune {\n\t\t\treturn \"\", \"\", fmt.Errorf(`\\%c%s is not a valid Unicode code point`, r, ss)\n\t\t}\n\t\treturn string(rune(i)), s, nil\n\t}\n\treturn \"\", \"\", fmt.Errorf(`unknown escape \\%c`, r)\n}\n\nfunc isIdentOrNumberChar(c byte) bool {\n\tswitch {\n\tcase 'A' <= c && c <= 'Z', 'a' <= c && c <= 'z':\n\t\treturn true\n\tcase '0' <= c && c <= '9':\n\t\treturn true\n\t}\n\tswitch c {\n\tcase '-', '+', '.', '_':\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc isWhitespace(c byte) bool {\n\tswitch c {\n\tcase ' ', '\\t', '\\n', '\\r':\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc isQuote(c byte) bool {\n\tswitch c {\n\tcase '\"', '\\'':\n\t\treturn true\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/proto/text_encode.go",
    "content": "// Copyright 2010 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\nimport (\n\t\"bytes\"\n\t\"encoding\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"google.golang.org/protobuf/encoding/prototext\"\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/proto\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/reflect/protoregistry\"\n)\n\nconst wrapTextMarshalV2 = false\n\n// TextMarshaler is a configurable text format marshaler.\ntype TextMarshaler struct {\n\tCompact   bool // use compact text format (one line)\n\tExpandAny bool // expand google.protobuf.Any messages of known types\n}\n\n// Marshal writes the proto text format of m to w.\nfunc (tm *TextMarshaler) Marshal(w io.Writer, m Message) error {\n\tb, err := tm.marshal(m)\n\tif len(b) > 0 {\n\t\tif _, err := w.Write(b); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn err\n}\n\n// Text returns a proto text formatted string of m.\nfunc (tm *TextMarshaler) Text(m Message) string {\n\tb, _ := tm.marshal(m)\n\treturn string(b)\n}\n\nfunc (tm *TextMarshaler) marshal(m Message) ([]byte, error) {\n\tmr := MessageReflect(m)\n\tif mr == nil || !mr.IsValid() {\n\t\treturn []byte(\"<nil>\"), nil\n\t}\n\n\tif wrapTextMarshalV2 {\n\t\tif m, ok := m.(encoding.TextMarshaler); ok {\n\t\t\treturn m.MarshalText()\n\t\t}\n\n\t\topts := prototext.MarshalOptions{\n\t\t\tAllowPartial: true,\n\t\t\tEmitUnknown:  true,\n\t\t}\n\t\tif !tm.Compact {\n\t\t\topts.Indent = \"  \"\n\t\t}\n\t\tif !tm.ExpandAny {\n\t\t\topts.Resolver = (*protoregistry.Types)(nil)\n\t\t}\n\t\treturn opts.Marshal(mr.Interface())\n\t} else {\n\t\tw := &textWriter{\n\t\t\tcompact:   tm.Compact,\n\t\t\texpandAny: tm.ExpandAny,\n\t\t\tcomplete:  true,\n\t\t}\n\n\t\tif m, ok := m.(encoding.TextMarshaler); ok {\n\t\t\tb, err := m.MarshalText()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tw.Write(b)\n\t\t\treturn w.buf, nil\n\t\t}\n\n\t\terr := w.writeMessage(mr)\n\t\treturn w.buf, err\n\t}\n}\n\nvar (\n\tdefaultTextMarshaler = TextMarshaler{}\n\tcompactTextMarshaler = TextMarshaler{Compact: true}\n)\n\n// MarshalText writes the proto text format of m to w.\nfunc MarshalText(w io.Writer, m Message) error { return defaultTextMarshaler.Marshal(w, m) }\n\n// MarshalTextString returns a proto text formatted string of m.\nfunc MarshalTextString(m Message) string { return defaultTextMarshaler.Text(m) }\n\n// CompactText writes the compact proto text format of m to w.\nfunc CompactText(w io.Writer, m Message) error { return compactTextMarshaler.Marshal(w, m) }\n\n// CompactTextString returns a compact proto text formatted string of m.\nfunc CompactTextString(m Message) string { return compactTextMarshaler.Text(m) }\n\nvar (\n\tnewline         = []byte(\"\\n\")\n\tendBraceNewline = []byte(\"}\\n\")\n\tposInf          = []byte(\"inf\")\n\tnegInf          = []byte(\"-inf\")\n\tnan             = []byte(\"nan\")\n)\n\n// textWriter is an io.Writer that tracks its indentation level.\ntype textWriter struct {\n\tcompact   bool // same as TextMarshaler.Compact\n\texpandAny bool // same as TextMarshaler.ExpandAny\n\tcomplete  bool // whether the current position is a complete line\n\tindent    int  // indentation level; never negative\n\tbuf       []byte\n}\n\nfunc (w *textWriter) Write(p []byte) (n int, _ error) {\n\tnewlines := bytes.Count(p, newline)\n\tif newlines == 0 {\n\t\tif !w.compact && w.complete {\n\t\t\tw.writeIndent()\n\t\t}\n\t\tw.buf = append(w.buf, p...)\n\t\tw.complete = false\n\t\treturn len(p), nil\n\t}\n\n\tfrags := bytes.SplitN(p, newline, newlines+1)\n\tif w.compact {\n\t\tfor i, frag := range frags {\n\t\t\tif i > 0 {\n\t\t\t\tw.buf = append(w.buf, ' ')\n\t\t\t\tn++\n\t\t\t}\n\t\t\tw.buf = append(w.buf, frag...)\n\t\t\tn += len(frag)\n\t\t}\n\t\treturn n, nil\n\t}\n\n\tfor i, frag := range frags {\n\t\tif w.complete {\n\t\t\tw.writeIndent()\n\t\t}\n\t\tw.buf = append(w.buf, frag...)\n\t\tn += len(frag)\n\t\tif i+1 < len(frags) {\n\t\t\tw.buf = append(w.buf, '\\n')\n\t\t\tn++\n\t\t}\n\t}\n\tw.complete = len(frags[len(frags)-1]) == 0\n\treturn n, nil\n}\n\nfunc (w *textWriter) WriteByte(c byte) error {\n\tif w.compact && c == '\\n' {\n\t\tc = ' '\n\t}\n\tif !w.compact && w.complete {\n\t\tw.writeIndent()\n\t}\n\tw.buf = append(w.buf, c)\n\tw.complete = c == '\\n'\n\treturn nil\n}\n\nfunc (w *textWriter) writeName(fd protoreflect.FieldDescriptor) {\n\tif !w.compact && w.complete {\n\t\tw.writeIndent()\n\t}\n\tw.complete = false\n\n\tif fd.Kind() != protoreflect.GroupKind {\n\t\tw.buf = append(w.buf, fd.Name()...)\n\t\tw.WriteByte(':')\n\t} else {\n\t\t// Use message type name for group field name.\n\t\tw.buf = append(w.buf, fd.Message().Name()...)\n\t}\n\n\tif !w.compact {\n\t\tw.WriteByte(' ')\n\t}\n}\n\nfunc requiresQuotes(u string) bool {\n\t// When type URL contains any characters except [0-9A-Za-z./\\-]*, it must be quoted.\n\tfor _, ch := range u {\n\t\tswitch {\n\t\tcase ch == '.' || ch == '/' || ch == '_':\n\t\t\tcontinue\n\t\tcase '0' <= ch && ch <= '9':\n\t\t\tcontinue\n\t\tcase 'A' <= ch && ch <= 'Z':\n\t\t\tcontinue\n\t\tcase 'a' <= ch && ch <= 'z':\n\t\t\tcontinue\n\t\tdefault:\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// writeProto3Any writes an expanded google.protobuf.Any message.\n//\n// It returns (false, nil) if sv value can't be unmarshaled (e.g. because\n// required messages are not linked in).\n//\n// It returns (true, error) when sv was written in expanded format or an error\n// was encountered.\nfunc (w *textWriter) writeProto3Any(m protoreflect.Message) (bool, error) {\n\tmd := m.Descriptor()\n\tfdURL := md.Fields().ByName(\"type_url\")\n\tfdVal := md.Fields().ByName(\"value\")\n\n\turl := m.Get(fdURL).String()\n\tmt, err := protoregistry.GlobalTypes.FindMessageByURL(url)\n\tif err != nil {\n\t\treturn false, nil\n\t}\n\n\tb := m.Get(fdVal).Bytes()\n\tm2 := mt.New()\n\tif err := proto.Unmarshal(b, m2.Interface()); err != nil {\n\t\treturn false, nil\n\t}\n\tw.Write([]byte(\"[\"))\n\tif requiresQuotes(url) {\n\t\tw.writeQuotedString(url)\n\t} else {\n\t\tw.Write([]byte(url))\n\t}\n\tif w.compact {\n\t\tw.Write([]byte(\"]:<\"))\n\t} else {\n\t\tw.Write([]byte(\"]: <\\n\"))\n\t\tw.indent++\n\t}\n\tif err := w.writeMessage(m2); err != nil {\n\t\treturn true, err\n\t}\n\tif w.compact {\n\t\tw.Write([]byte(\"> \"))\n\t} else {\n\t\tw.indent--\n\t\tw.Write([]byte(\">\\n\"))\n\t}\n\treturn true, nil\n}\n\nfunc (w *textWriter) writeMessage(m protoreflect.Message) error {\n\tmd := m.Descriptor()\n\tif w.expandAny && md.FullName() == \"google.protobuf.Any\" {\n\t\tif canExpand, err := w.writeProto3Any(m); canExpand {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tfds := md.Fields()\n\tfor i := 0; i < fds.Len(); {\n\t\tfd := fds.Get(i)\n\t\tif od := fd.ContainingOneof(); od != nil {\n\t\t\tfd = m.WhichOneof(od)\n\t\t\ti += od.Fields().Len()\n\t\t} else {\n\t\t\ti++\n\t\t}\n\t\tif fd == nil || !m.Has(fd) {\n\t\t\tcontinue\n\t\t}\n\n\t\tswitch {\n\t\tcase fd.IsList():\n\t\t\tlv := m.Get(fd).List()\n\t\t\tfor j := 0; j < lv.Len(); j++ {\n\t\t\t\tw.writeName(fd)\n\t\t\t\tv := lv.Get(j)\n\t\t\t\tif err := w.writeSingularValue(v, fd); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tw.WriteByte('\\n')\n\t\t\t}\n\t\tcase fd.IsMap():\n\t\t\tkfd := fd.MapKey()\n\t\t\tvfd := fd.MapValue()\n\t\t\tmv := m.Get(fd).Map()\n\n\t\t\ttype entry struct{ key, val protoreflect.Value }\n\t\t\tvar entries []entry\n\t\t\tmv.Range(func(k protoreflect.MapKey, v protoreflect.Value) bool {\n\t\t\t\tentries = append(entries, entry{k.Value(), v})\n\t\t\t\treturn true\n\t\t\t})\n\t\t\tsort.Slice(entries, func(i, j int) bool {\n\t\t\t\tswitch kfd.Kind() {\n\t\t\t\tcase protoreflect.BoolKind:\n\t\t\t\t\treturn !entries[i].key.Bool() && entries[j].key.Bool()\n\t\t\t\tcase protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind, protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind:\n\t\t\t\t\treturn entries[i].key.Int() < entries[j].key.Int()\n\t\t\t\tcase protoreflect.Uint32Kind, protoreflect.Fixed32Kind, protoreflect.Uint64Kind, protoreflect.Fixed64Kind:\n\t\t\t\t\treturn entries[i].key.Uint() < entries[j].key.Uint()\n\t\t\t\tcase protoreflect.StringKind:\n\t\t\t\t\treturn entries[i].key.String() < entries[j].key.String()\n\t\t\t\tdefault:\n\t\t\t\t\tpanic(\"invalid kind\")\n\t\t\t\t}\n\t\t\t})\n\t\t\tfor _, entry := range entries {\n\t\t\t\tw.writeName(fd)\n\t\t\t\tw.WriteByte('<')\n\t\t\t\tif !w.compact {\n\t\t\t\t\tw.WriteByte('\\n')\n\t\t\t\t}\n\t\t\t\tw.indent++\n\t\t\t\tw.writeName(kfd)\n\t\t\t\tif err := w.writeSingularValue(entry.key, kfd); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tw.WriteByte('\\n')\n\t\t\t\tw.writeName(vfd)\n\t\t\t\tif err := w.writeSingularValue(entry.val, vfd); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tw.WriteByte('\\n')\n\t\t\t\tw.indent--\n\t\t\t\tw.WriteByte('>')\n\t\t\t\tw.WriteByte('\\n')\n\t\t\t}\n\t\tdefault:\n\t\t\tw.writeName(fd)\n\t\t\tif err := w.writeSingularValue(m.Get(fd), fd); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tw.WriteByte('\\n')\n\t\t}\n\t}\n\n\tif b := m.GetUnknown(); len(b) > 0 {\n\t\tw.writeUnknownFields(b)\n\t}\n\treturn w.writeExtensions(m)\n}\n\nfunc (w *textWriter) writeSingularValue(v protoreflect.Value, fd protoreflect.FieldDescriptor) error {\n\tswitch fd.Kind() {\n\tcase protoreflect.FloatKind, protoreflect.DoubleKind:\n\t\tswitch vf := v.Float(); {\n\t\tcase math.IsInf(vf, +1):\n\t\t\tw.Write(posInf)\n\t\tcase math.IsInf(vf, -1):\n\t\t\tw.Write(negInf)\n\t\tcase math.IsNaN(vf):\n\t\t\tw.Write(nan)\n\t\tdefault:\n\t\t\tfmt.Fprint(w, v.Interface())\n\t\t}\n\tcase protoreflect.StringKind:\n\t\t// NOTE: This does not validate UTF-8 for historical reasons.\n\t\tw.writeQuotedString(string(v.String()))\n\tcase protoreflect.BytesKind:\n\t\tw.writeQuotedString(string(v.Bytes()))\n\tcase protoreflect.MessageKind, protoreflect.GroupKind:\n\t\tvar bra, ket byte = '<', '>'\n\t\tif fd.Kind() == protoreflect.GroupKind {\n\t\t\tbra, ket = '{', '}'\n\t\t}\n\t\tw.WriteByte(bra)\n\t\tif !w.compact {\n\t\t\tw.WriteByte('\\n')\n\t\t}\n\t\tw.indent++\n\t\tm := v.Message()\n\t\tif m2, ok := m.Interface().(encoding.TextMarshaler); ok {\n\t\t\tb, err := m2.MarshalText()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tw.Write(b)\n\t\t} else {\n\t\t\tw.writeMessage(m)\n\t\t}\n\t\tw.indent--\n\t\tw.WriteByte(ket)\n\tcase protoreflect.EnumKind:\n\t\tif ev := fd.Enum().Values().ByNumber(v.Enum()); ev != nil {\n\t\t\tfmt.Fprint(w, ev.Name())\n\t\t} else {\n\t\t\tfmt.Fprint(w, v.Enum())\n\t\t}\n\tdefault:\n\t\tfmt.Fprint(w, v.Interface())\n\t}\n\treturn nil\n}\n\n// writeQuotedString writes a quoted string in the protocol buffer text format.\nfunc (w *textWriter) writeQuotedString(s string) {\n\tw.WriteByte('\"')\n\tfor i := 0; i < len(s); i++ {\n\t\tswitch c := s[i]; c {\n\t\tcase '\\n':\n\t\t\tw.buf = append(w.buf, `\\n`...)\n\t\tcase '\\r':\n\t\t\tw.buf = append(w.buf, `\\r`...)\n\t\tcase '\\t':\n\t\t\tw.buf = append(w.buf, `\\t`...)\n\t\tcase '\"':\n\t\t\tw.buf = append(w.buf, `\\\"`...)\n\t\tcase '\\\\':\n\t\t\tw.buf = append(w.buf, `\\\\`...)\n\t\tdefault:\n\t\t\tif isPrint := c >= 0x20 && c < 0x7f; isPrint {\n\t\t\t\tw.buf = append(w.buf, c)\n\t\t\t} else {\n\t\t\t\tw.buf = append(w.buf, fmt.Sprintf(`\\%03o`, c)...)\n\t\t\t}\n\t\t}\n\t}\n\tw.WriteByte('\"')\n}\n\nfunc (w *textWriter) writeUnknownFields(b []byte) {\n\tif !w.compact {\n\t\tfmt.Fprintf(w, \"/* %d unknown bytes */\\n\", len(b))\n\t}\n\n\tfor len(b) > 0 {\n\t\tnum, wtyp, n := protowire.ConsumeTag(b)\n\t\tif n < 0 {\n\t\t\treturn\n\t\t}\n\t\tb = b[n:]\n\n\t\tif wtyp == protowire.EndGroupType {\n\t\t\tw.indent--\n\t\t\tw.Write(endBraceNewline)\n\t\t\tcontinue\n\t\t}\n\t\tfmt.Fprint(w, num)\n\t\tif wtyp != protowire.StartGroupType {\n\t\t\tw.WriteByte(':')\n\t\t}\n\t\tif !w.compact || wtyp == protowire.StartGroupType {\n\t\t\tw.WriteByte(' ')\n\t\t}\n\t\tswitch wtyp {\n\t\tcase protowire.VarintType:\n\t\t\tv, n := protowire.ConsumeVarint(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tb = b[n:]\n\t\t\tfmt.Fprint(w, v)\n\t\tcase protowire.Fixed32Type:\n\t\t\tv, n := protowire.ConsumeFixed32(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tb = b[n:]\n\t\t\tfmt.Fprint(w, v)\n\t\tcase protowire.Fixed64Type:\n\t\t\tv, n := protowire.ConsumeFixed64(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tb = b[n:]\n\t\t\tfmt.Fprint(w, v)\n\t\tcase protowire.BytesType:\n\t\t\tv, n := protowire.ConsumeBytes(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tb = b[n:]\n\t\t\tfmt.Fprintf(w, \"%q\", v)\n\t\tcase protowire.StartGroupType:\n\t\t\tw.WriteByte('{')\n\t\t\tw.indent++\n\t\tdefault:\n\t\t\tfmt.Fprintf(w, \"/* unknown wire type %d */\", wtyp)\n\t\t}\n\t\tw.WriteByte('\\n')\n\t}\n}\n\n// writeExtensions writes all the extensions in m.\nfunc (w *textWriter) writeExtensions(m protoreflect.Message) error {\n\tmd := m.Descriptor()\n\tif md.ExtensionRanges().Len() == 0 {\n\t\treturn nil\n\t}\n\n\ttype ext struct {\n\t\tdesc protoreflect.FieldDescriptor\n\t\tval  protoreflect.Value\n\t}\n\tvar exts []ext\n\tm.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool {\n\t\tif fd.IsExtension() {\n\t\t\texts = append(exts, ext{fd, v})\n\t\t}\n\t\treturn true\n\t})\n\tsort.Slice(exts, func(i, j int) bool {\n\t\treturn exts[i].desc.Number() < exts[j].desc.Number()\n\t})\n\n\tfor _, ext := range exts {\n\t\t// For message set, use the name of the message as the extension name.\n\t\tname := string(ext.desc.FullName())\n\t\tif isMessageSet(ext.desc.ContainingMessage()) {\n\t\t\tname = strings.TrimSuffix(name, \".message_set_extension\")\n\t\t}\n\n\t\tif !ext.desc.IsList() {\n\t\t\tif err := w.writeSingularExtension(name, ext.val, ext.desc); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t} else {\n\t\t\tlv := ext.val.List()\n\t\t\tfor i := 0; i < lv.Len(); i++ {\n\t\t\t\tif err := w.writeSingularExtension(name, lv.Get(i), ext.desc); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (w *textWriter) writeSingularExtension(name string, v protoreflect.Value, fd protoreflect.FieldDescriptor) error {\n\tfmt.Fprintf(w, \"[%s]:\", name)\n\tif !w.compact {\n\t\tw.WriteByte(' ')\n\t}\n\tif err := w.writeSingularValue(v, fd); err != nil {\n\t\treturn err\n\t}\n\tw.WriteByte('\\n')\n\treturn nil\n}\n\nfunc (w *textWriter) writeIndent() {\n\tif !w.complete {\n\t\treturn\n\t}\n\tfor i := 0; i < w.indent*2; i++ {\n\t\tw.buf = append(w.buf, ' ')\n\t}\n\tw.complete = false\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/proto/wire.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\nimport (\n\tprotoV2 \"google.golang.org/protobuf/proto\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n)\n\n// Size returns the size in bytes of the wire-format encoding of m.\nfunc Size(m Message) int {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tmi := MessageV2(m)\n\treturn protoV2.Size(mi)\n}\n\n// Marshal returns the wire-format encoding of m.\nfunc Marshal(m Message) ([]byte, error) {\n\tb, err := marshalAppend(nil, m, false)\n\tif b == nil {\n\t\tb = zeroBytes\n\t}\n\treturn b, err\n}\n\nvar zeroBytes = make([]byte, 0, 0)\n\nfunc marshalAppend(buf []byte, m Message, deterministic bool) ([]byte, error) {\n\tif m == nil {\n\t\treturn nil, ErrNil\n\t}\n\tmi := MessageV2(m)\n\tnbuf, err := protoV2.MarshalOptions{\n\t\tDeterministic: deterministic,\n\t\tAllowPartial:  true,\n\t}.MarshalAppend(buf, mi)\n\tif err != nil {\n\t\treturn buf, err\n\t}\n\tif len(buf) == len(nbuf) {\n\t\tif !mi.ProtoReflect().IsValid() {\n\t\t\treturn buf, ErrNil\n\t\t}\n\t}\n\treturn nbuf, checkRequiredNotSet(mi)\n}\n\n// Unmarshal parses a wire-format message in b and places the decoded results in m.\n//\n// Unmarshal resets m before starting to unmarshal, so any existing data in m is always\n// removed. Use UnmarshalMerge to preserve and append to existing data.\nfunc Unmarshal(b []byte, m Message) error {\n\tm.Reset()\n\treturn UnmarshalMerge(b, m)\n}\n\n// UnmarshalMerge parses a wire-format message in b and places the decoded results in m.\nfunc UnmarshalMerge(b []byte, m Message) error {\n\tmi := MessageV2(m)\n\tout, err := protoV2.UnmarshalOptions{\n\t\tAllowPartial: true,\n\t\tMerge:        true,\n\t}.UnmarshalState(protoiface.UnmarshalInput{\n\t\tBuf:     b,\n\t\tMessage: mi.ProtoReflect(),\n\t})\n\tif err != nil {\n\t\treturn err\n\t}\n\tif out.Flags&protoiface.UnmarshalInitialized > 0 {\n\t\treturn nil\n\t}\n\treturn checkRequiredNotSet(mi)\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/proto/wrappers.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\n// Bool stores v in a new bool value and returns a pointer to it.\nfunc Bool(v bool) *bool { return &v }\n\n// Int stores v in a new int32 value and returns a pointer to it.\n//\n// Deprecated: Use Int32 instead.\nfunc Int(v int) *int32 { return Int32(int32(v)) }\n\n// Int32 stores v in a new int32 value and returns a pointer to it.\nfunc Int32(v int32) *int32 { return &v }\n\n// Int64 stores v in a new int64 value and returns a pointer to it.\nfunc Int64(v int64) *int64 { return &v }\n\n// Uint32 stores v in a new uint32 value and returns a pointer to it.\nfunc Uint32(v uint32) *uint32 { return &v }\n\n// Uint64 stores v in a new uint64 value and returns a pointer to it.\nfunc Uint64(v uint64) *uint64 { return &v }\n\n// Float32 stores v in a new float32 value and returns a pointer to it.\nfunc Float32(v float32) *float32 { return &v }\n\n// Float64 stores v in a new float64 value and returns a pointer to it.\nfunc Float64(v float64) *float64 { return &v }\n\n// String stores v in a new string value and returns a pointer to it.\nfunc String(v string) *string { return &v }\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/ptypes/any/any.pb.go",
    "content": "// Code generated by protoc-gen-go. DO NOT EDIT.\n// source: github.com/golang/protobuf/ptypes/any/any.proto\n\npackage any\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n\tprotoimpl \"google.golang.org/protobuf/runtime/protoimpl\"\n\tanypb \"google.golang.org/protobuf/types/known/anypb\"\n\treflect \"reflect\"\n)\n\n// Symbols defined in public import of google/protobuf/any.proto.\n\ntype Any = anypb.Any\n\nvar File_github_com_golang_protobuf_ptypes_any_any_proto protoreflect.FileDescriptor\n\nvar file_github_com_golang_protobuf_ptypes_any_any_proto_rawDesc = []byte{\n\t0x0a, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c,\n\t0x61, 0x6e, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x74, 0x79,\n\t0x70, 0x65, 0x73, 0x2f, 0x61, 0x6e, 0x79, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74,\n\t0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,\n\t0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x42, 0x2b, 0x5a, 0x29,\n\t0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, 0x61, 0x6e,\n\t0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x74, 0x79, 0x70, 0x65,\n\t0x73, 0x2f, 0x61, 0x6e, 0x79, 0x3b, 0x61, 0x6e, 0x79, 0x50, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f,\n\t0x74, 0x6f, 0x33,\n}\n\nvar file_github_com_golang_protobuf_ptypes_any_any_proto_goTypes = []interface{}{}\nvar file_github_com_golang_protobuf_ptypes_any_any_proto_depIdxs = []int32{\n\t0, // [0:0] is the sub-list for method output_type\n\t0, // [0:0] is the sub-list for method input_type\n\t0, // [0:0] is the sub-list for extension type_name\n\t0, // [0:0] is the sub-list for extension extendee\n\t0, // [0:0] is the sub-list for field type_name\n}\n\nfunc init() { file_github_com_golang_protobuf_ptypes_any_any_proto_init() }\nfunc file_github_com_golang_protobuf_ptypes_any_any_proto_init() {\n\tif File_github_com_golang_protobuf_ptypes_any_any_proto != nil {\n\t\treturn\n\t}\n\ttype x struct{}\n\tout := protoimpl.TypeBuilder{\n\t\tFile: protoimpl.DescBuilder{\n\t\t\tGoPackagePath: reflect.TypeOf(x{}).PkgPath(),\n\t\t\tRawDescriptor: file_github_com_golang_protobuf_ptypes_any_any_proto_rawDesc,\n\t\t\tNumEnums:      0,\n\t\t\tNumMessages:   0,\n\t\t\tNumExtensions: 0,\n\t\t\tNumServices:   0,\n\t\t},\n\t\tGoTypes:           file_github_com_golang_protobuf_ptypes_any_any_proto_goTypes,\n\t\tDependencyIndexes: file_github_com_golang_protobuf_ptypes_any_any_proto_depIdxs,\n\t}.Build()\n\tFile_github_com_golang_protobuf_ptypes_any_any_proto = out.File\n\tfile_github_com_golang_protobuf_ptypes_any_any_proto_rawDesc = nil\n\tfile_github_com_golang_protobuf_ptypes_any_any_proto_goTypes = nil\n\tfile_github_com_golang_protobuf_ptypes_any_any_proto_depIdxs = nil\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/ptypes/any.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage ptypes\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\n\t\"github.com/golang/protobuf/proto\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/reflect/protoregistry\"\n\n\tanypb \"github.com/golang/protobuf/ptypes/any\"\n)\n\nconst urlPrefix = \"type.googleapis.com/\"\n\n// AnyMessageName returns the message name contained in an anypb.Any message.\n// Most type assertions should use the Is function instead.\n//\n// Deprecated: Call the any.MessageName method instead.\nfunc AnyMessageName(any *anypb.Any) (string, error) {\n\tname, err := anyMessageName(any)\n\treturn string(name), err\n}\nfunc anyMessageName(any *anypb.Any) (protoreflect.FullName, error) {\n\tif any == nil {\n\t\treturn \"\", fmt.Errorf(\"message is nil\")\n\t}\n\tname := protoreflect.FullName(any.TypeUrl)\n\tif i := strings.LastIndex(any.TypeUrl, \"/\"); i >= 0 {\n\t\tname = name[i+len(\"/\"):]\n\t}\n\tif !name.IsValid() {\n\t\treturn \"\", fmt.Errorf(\"message type url %q is invalid\", any.TypeUrl)\n\t}\n\treturn name, nil\n}\n\n// MarshalAny marshals the given message m into an anypb.Any message.\n//\n// Deprecated: Call the anypb.New function instead.\nfunc MarshalAny(m proto.Message) (*anypb.Any, error) {\n\tswitch dm := m.(type) {\n\tcase DynamicAny:\n\t\tm = dm.Message\n\tcase *DynamicAny:\n\t\tif dm == nil {\n\t\t\treturn nil, proto.ErrNil\n\t\t}\n\t\tm = dm.Message\n\t}\n\tb, err := proto.Marshal(m)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &anypb.Any{TypeUrl: urlPrefix + proto.MessageName(m), Value: b}, nil\n}\n\n// Empty returns a new message of the type specified in an anypb.Any message.\n// It returns protoregistry.NotFound if the corresponding message type could not\n// be resolved in the global registry.\n//\n// Deprecated: Use protoregistry.GlobalTypes.FindMessageByName instead\n// to resolve the message name and create a new instance of it.\nfunc Empty(any *anypb.Any) (proto.Message, error) {\n\tname, err := anyMessageName(any)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tmt, err := protoregistry.GlobalTypes.FindMessageByName(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn proto.MessageV1(mt.New().Interface()), nil\n}\n\n// UnmarshalAny unmarshals the encoded value contained in the anypb.Any message\n// into the provided message m. It returns an error if the target message\n// does not match the type in the Any message or if an unmarshal error occurs.\n//\n// The target message m may be a *DynamicAny message. If the underlying message\n// type could not be resolved, then this returns protoregistry.NotFound.\n//\n// Deprecated: Call the any.UnmarshalTo method instead.\nfunc UnmarshalAny(any *anypb.Any, m proto.Message) error {\n\tif dm, ok := m.(*DynamicAny); ok {\n\t\tif dm.Message == nil {\n\t\t\tvar err error\n\t\t\tdm.Message, err = Empty(any)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tm = dm.Message\n\t}\n\n\tanyName, err := AnyMessageName(any)\n\tif err != nil {\n\t\treturn err\n\t}\n\tmsgName := proto.MessageName(m)\n\tif anyName != msgName {\n\t\treturn fmt.Errorf(\"mismatched message type: got %q want %q\", anyName, msgName)\n\t}\n\treturn proto.Unmarshal(any.Value, m)\n}\n\n// Is reports whether the Any message contains a message of the specified type.\n//\n// Deprecated: Call the any.MessageIs method instead.\nfunc Is(any *anypb.Any, m proto.Message) bool {\n\tif any == nil || m == nil {\n\t\treturn false\n\t}\n\tname := proto.MessageName(m)\n\tif !strings.HasSuffix(any.TypeUrl, name) {\n\t\treturn false\n\t}\n\treturn len(any.TypeUrl) == len(name) || any.TypeUrl[len(any.TypeUrl)-len(name)-1] == '/'\n}\n\n// DynamicAny is a value that can be passed to UnmarshalAny to automatically\n// allocate a proto.Message for the type specified in an anypb.Any message.\n// The allocated message is stored in the embedded proto.Message.\n//\n// Example:\n//\n//\tvar x ptypes.DynamicAny\n//\tif err := ptypes.UnmarshalAny(a, &x); err != nil { ... }\n//\tfmt.Printf(\"unmarshaled message: %v\", x.Message)\n//\n// Deprecated: Use the any.UnmarshalNew method instead to unmarshal\n// the any message contents into a new instance of the underlying message.\ntype DynamicAny struct{ proto.Message }\n\nfunc (m DynamicAny) String() string {\n\tif m.Message == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn m.Message.String()\n}\nfunc (m DynamicAny) Reset() {\n\tif m.Message == nil {\n\t\treturn\n\t}\n\tm.Message.Reset()\n}\nfunc (m DynamicAny) ProtoMessage() {\n\treturn\n}\nfunc (m DynamicAny) ProtoReflect() protoreflect.Message {\n\tif m.Message == nil {\n\t\treturn nil\n\t}\n\treturn dynamicAny{proto.MessageReflect(m.Message)}\n}\n\ntype dynamicAny struct{ protoreflect.Message }\n\nfunc (m dynamicAny) Type() protoreflect.MessageType {\n\treturn dynamicAnyType{m.Message.Type()}\n}\nfunc (m dynamicAny) New() protoreflect.Message {\n\treturn dynamicAnyType{m.Message.Type()}.New()\n}\nfunc (m dynamicAny) Interface() protoreflect.ProtoMessage {\n\treturn DynamicAny{proto.MessageV1(m.Message.Interface())}\n}\n\ntype dynamicAnyType struct{ protoreflect.MessageType }\n\nfunc (t dynamicAnyType) New() protoreflect.Message {\n\treturn dynamicAny{t.MessageType.New()}\n}\nfunc (t dynamicAnyType) Zero() protoreflect.Message {\n\treturn dynamicAny{t.MessageType.Zero()}\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/ptypes/doc.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package ptypes provides functionality for interacting with well-known types.\n//\n// Deprecated: Well-known types have specialized functionality directly\n// injected into the generated packages for each message type.\n// See the deprecation notice for each function for the suggested alternative.\npackage ptypes\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/ptypes/duration/duration.pb.go",
    "content": "// Code generated by protoc-gen-go. DO NOT EDIT.\n// source: github.com/golang/protobuf/ptypes/duration/duration.proto\n\npackage duration\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n\tprotoimpl \"google.golang.org/protobuf/runtime/protoimpl\"\n\tdurationpb \"google.golang.org/protobuf/types/known/durationpb\"\n\treflect \"reflect\"\n)\n\n// Symbols defined in public import of google/protobuf/duration.proto.\n\ntype Duration = durationpb.Duration\n\nvar File_github_com_golang_protobuf_ptypes_duration_duration_proto protoreflect.FileDescriptor\n\nvar file_github_com_golang_protobuf_ptypes_duration_duration_proto_rawDesc = []byte{\n\t0x0a, 0x39, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c,\n\t0x61, 0x6e, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x74, 0x79,\n\t0x70, 0x65, 0x73, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x64, 0x75, 0x72,\n\t0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f,\n\t0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72,\n\t0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x42, 0x35, 0x5a, 0x33, 0x67,\n\t0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67,\n\t0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x74, 0x79, 0x70, 0x65, 0x73,\n\t0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3b, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69,\n\t0x6f, 0x6e, 0x50, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,\n}\n\nvar file_github_com_golang_protobuf_ptypes_duration_duration_proto_goTypes = []interface{}{}\nvar file_github_com_golang_protobuf_ptypes_duration_duration_proto_depIdxs = []int32{\n\t0, // [0:0] is the sub-list for method output_type\n\t0, // [0:0] is the sub-list for method input_type\n\t0, // [0:0] is the sub-list for extension type_name\n\t0, // [0:0] is the sub-list for extension extendee\n\t0, // [0:0] is the sub-list for field type_name\n}\n\nfunc init() { file_github_com_golang_protobuf_ptypes_duration_duration_proto_init() }\nfunc file_github_com_golang_protobuf_ptypes_duration_duration_proto_init() {\n\tif File_github_com_golang_protobuf_ptypes_duration_duration_proto != nil {\n\t\treturn\n\t}\n\ttype x struct{}\n\tout := protoimpl.TypeBuilder{\n\t\tFile: protoimpl.DescBuilder{\n\t\t\tGoPackagePath: reflect.TypeOf(x{}).PkgPath(),\n\t\t\tRawDescriptor: file_github_com_golang_protobuf_ptypes_duration_duration_proto_rawDesc,\n\t\t\tNumEnums:      0,\n\t\t\tNumMessages:   0,\n\t\t\tNumExtensions: 0,\n\t\t\tNumServices:   0,\n\t\t},\n\t\tGoTypes:           file_github_com_golang_protobuf_ptypes_duration_duration_proto_goTypes,\n\t\tDependencyIndexes: file_github_com_golang_protobuf_ptypes_duration_duration_proto_depIdxs,\n\t}.Build()\n\tFile_github_com_golang_protobuf_ptypes_duration_duration_proto = out.File\n\tfile_github_com_golang_protobuf_ptypes_duration_duration_proto_rawDesc = nil\n\tfile_github_com_golang_protobuf_ptypes_duration_duration_proto_goTypes = nil\n\tfile_github_com_golang_protobuf_ptypes_duration_duration_proto_depIdxs = nil\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/ptypes/duration.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage ptypes\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"time\"\n\n\tdurationpb \"github.com/golang/protobuf/ptypes/duration\"\n)\n\n// Range of google.protobuf.Duration as specified in duration.proto.\n// This is about 10,000 years in seconds.\nconst (\n\tmaxSeconds = int64(10000 * 365.25 * 24 * 60 * 60)\n\tminSeconds = -maxSeconds\n)\n\n// Duration converts a durationpb.Duration to a time.Duration.\n// Duration returns an error if dur is invalid or overflows a time.Duration.\n//\n// Deprecated: Call the dur.AsDuration and dur.CheckValid methods instead.\nfunc Duration(dur *durationpb.Duration) (time.Duration, error) {\n\tif err := validateDuration(dur); err != nil {\n\t\treturn 0, err\n\t}\n\td := time.Duration(dur.Seconds) * time.Second\n\tif int64(d/time.Second) != dur.Seconds {\n\t\treturn 0, fmt.Errorf(\"duration: %v is out of range for time.Duration\", dur)\n\t}\n\tif dur.Nanos != 0 {\n\t\td += time.Duration(dur.Nanos) * time.Nanosecond\n\t\tif (d < 0) != (dur.Nanos < 0) {\n\t\t\treturn 0, fmt.Errorf(\"duration: %v is out of range for time.Duration\", dur)\n\t\t}\n\t}\n\treturn d, nil\n}\n\n// DurationProto converts a time.Duration to a durationpb.Duration.\n//\n// Deprecated: Call the durationpb.New function instead.\nfunc DurationProto(d time.Duration) *durationpb.Duration {\n\tnanos := d.Nanoseconds()\n\tsecs := nanos / 1e9\n\tnanos -= secs * 1e9\n\treturn &durationpb.Duration{\n\t\tSeconds: int64(secs),\n\t\tNanos:   int32(nanos),\n\t}\n}\n\n// validateDuration determines whether the durationpb.Duration is valid\n// according to the definition in google/protobuf/duration.proto.\n// A valid durpb.Duration may still be too large to fit into a time.Duration\n// Note that the range of durationpb.Duration is about 10,000 years,\n// while the range of time.Duration is about 290 years.\nfunc validateDuration(dur *durationpb.Duration) error {\n\tif dur == nil {\n\t\treturn errors.New(\"duration: nil Duration\")\n\t}\n\tif dur.Seconds < minSeconds || dur.Seconds > maxSeconds {\n\t\treturn fmt.Errorf(\"duration: %v: seconds out of range\", dur)\n\t}\n\tif dur.Nanos <= -1e9 || dur.Nanos >= 1e9 {\n\t\treturn fmt.Errorf(\"duration: %v: nanos out of range\", dur)\n\t}\n\t// Seconds and Nanos must have the same sign, unless d.Nanos is zero.\n\tif (dur.Seconds < 0 && dur.Nanos > 0) || (dur.Seconds > 0 && dur.Nanos < 0) {\n\t\treturn fmt.Errorf(\"duration: %v: seconds and nanos have different signs\", dur)\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.pb.go",
    "content": "// Code generated by protoc-gen-go. DO NOT EDIT.\n// source: github.com/golang/protobuf/ptypes/timestamp/timestamp.proto\n\npackage timestamp\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n\tprotoimpl \"google.golang.org/protobuf/runtime/protoimpl\"\n\ttimestamppb \"google.golang.org/protobuf/types/known/timestamppb\"\n\treflect \"reflect\"\n)\n\n// Symbols defined in public import of google/protobuf/timestamp.proto.\n\ntype Timestamp = timestamppb.Timestamp\n\nvar File_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto protoreflect.FileDescriptor\n\nvar file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_rawDesc = []byte{\n\t0x0a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c,\n\t0x61, 0x6e, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x74, 0x79,\n\t0x70, 0x65, 0x73, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2f, 0x74, 0x69,\n\t0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67,\n\t0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74,\n\t0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x42, 0x37,\n\t0x5a, 0x35, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c,\n\t0x61, 0x6e, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x74, 0x79,\n\t0x70, 0x65, 0x73, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x3b, 0x74, 0x69,\n\t0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x50, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,\n\t0x33,\n}\n\nvar file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_goTypes = []interface{}{}\nvar file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_depIdxs = []int32{\n\t0, // [0:0] is the sub-list for method output_type\n\t0, // [0:0] is the sub-list for method input_type\n\t0, // [0:0] is the sub-list for extension type_name\n\t0, // [0:0] is the sub-list for extension extendee\n\t0, // [0:0] is the sub-list for field type_name\n}\n\nfunc init() { file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_init() }\nfunc file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_init() {\n\tif File_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto != nil {\n\t\treturn\n\t}\n\ttype x struct{}\n\tout := protoimpl.TypeBuilder{\n\t\tFile: protoimpl.DescBuilder{\n\t\t\tGoPackagePath: reflect.TypeOf(x{}).PkgPath(),\n\t\t\tRawDescriptor: file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_rawDesc,\n\t\t\tNumEnums:      0,\n\t\t\tNumMessages:   0,\n\t\t\tNumExtensions: 0,\n\t\t\tNumServices:   0,\n\t\t},\n\t\tGoTypes:           file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_goTypes,\n\t\tDependencyIndexes: file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_depIdxs,\n\t}.Build()\n\tFile_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto = out.File\n\tfile_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_rawDesc = nil\n\tfile_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_goTypes = nil\n\tfile_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_depIdxs = nil\n}\n"
  },
  {
    "path": "vendor/github.com/golang/protobuf/ptypes/timestamp.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage ptypes\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"time\"\n\n\ttimestamppb \"github.com/golang/protobuf/ptypes/timestamp\"\n)\n\n// Range of google.protobuf.Duration as specified in timestamp.proto.\nconst (\n\t// Seconds field of the earliest valid Timestamp.\n\t// This is time.Date(1, 1, 1, 0, 0, 0, 0, time.UTC).Unix().\n\tminValidSeconds = -62135596800\n\t// Seconds field just after the latest valid Timestamp.\n\t// This is time.Date(10000, 1, 1, 0, 0, 0, 0, time.UTC).Unix().\n\tmaxValidSeconds = 253402300800\n)\n\n// Timestamp converts a timestamppb.Timestamp to a time.Time.\n// It returns an error if the argument is invalid.\n//\n// Unlike most Go functions, if Timestamp returns an error, the first return\n// value is not the zero time.Time. Instead, it is the value obtained from the\n// time.Unix function when passed the contents of the Timestamp, in the UTC\n// locale. This may or may not be a meaningful time; many invalid Timestamps\n// do map to valid time.Times.\n//\n// A nil Timestamp returns an error. The first return value in that case is\n// undefined.\n//\n// Deprecated: Call the ts.AsTime and ts.CheckValid methods instead.\nfunc Timestamp(ts *timestamppb.Timestamp) (time.Time, error) {\n\t// Don't return the zero value on error, because corresponds to a valid\n\t// timestamp. Instead return whatever time.Unix gives us.\n\tvar t time.Time\n\tif ts == nil {\n\t\tt = time.Unix(0, 0).UTC() // treat nil like the empty Timestamp\n\t} else {\n\t\tt = time.Unix(ts.Seconds, int64(ts.Nanos)).UTC()\n\t}\n\treturn t, validateTimestamp(ts)\n}\n\n// TimestampNow returns a google.protobuf.Timestamp for the current time.\n//\n// Deprecated: Call the timestamppb.Now function instead.\nfunc TimestampNow() *timestamppb.Timestamp {\n\tts, err := TimestampProto(time.Now())\n\tif err != nil {\n\t\tpanic(\"ptypes: time.Now() out of Timestamp range\")\n\t}\n\treturn ts\n}\n\n// TimestampProto converts the time.Time to a google.protobuf.Timestamp proto.\n// It returns an error if the resulting Timestamp is invalid.\n//\n// Deprecated: Call the timestamppb.New function instead.\nfunc TimestampProto(t time.Time) (*timestamppb.Timestamp, error) {\n\tts := &timestamppb.Timestamp{\n\t\tSeconds: t.Unix(),\n\t\tNanos:   int32(t.Nanosecond()),\n\t}\n\tif err := validateTimestamp(ts); err != nil {\n\t\treturn nil, err\n\t}\n\treturn ts, nil\n}\n\n// TimestampString returns the RFC 3339 string for valid Timestamps.\n// For invalid Timestamps, it returns an error message in parentheses.\n//\n// Deprecated: Call the ts.AsTime method instead,\n// followed by a call to the Format method on the time.Time value.\nfunc TimestampString(ts *timestamppb.Timestamp) string {\n\tt, err := Timestamp(ts)\n\tif err != nil {\n\t\treturn fmt.Sprintf(\"(%v)\", err)\n\t}\n\treturn t.Format(time.RFC3339Nano)\n}\n\n// validateTimestamp determines whether a Timestamp is valid.\n// A valid timestamp represents a time in the range [0001-01-01, 10000-01-01)\n// and has a Nanos field in the range [0, 1e9).\n//\n// If the Timestamp is valid, validateTimestamp returns nil.\n// Otherwise, it returns an error that describes the problem.\n//\n// Every valid Timestamp can be represented by a time.Time,\n// but the converse is not true.\nfunc validateTimestamp(ts *timestamppb.Timestamp) error {\n\tif ts == nil {\n\t\treturn errors.New(\"timestamp: nil Timestamp\")\n\t}\n\tif ts.Seconds < minValidSeconds {\n\t\treturn fmt.Errorf(\"timestamp: %v before 0001-01-01\", ts)\n\t}\n\tif ts.Seconds >= maxValidSeconds {\n\t\treturn fmt.Errorf(\"timestamp: %v after 10000-01-01\", ts)\n\t}\n\tif ts.Nanos < 0 || ts.Nanos >= 1e9 {\n\t\treturn fmt.Errorf(\"timestamp: %v: nanos not in range [0, 1e9)\", ts)\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/gnostic-models/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n\n"
  },
  {
    "path": "vendor/github.com/google/gnostic-models/compiler/README.md",
    "content": "# Compiler support code\n\nThis directory contains compiler support code used by Gnostic and Gnostic\nextensions.\n"
  },
  {
    "path": "vendor/github.com/google/gnostic-models/compiler/context.go",
    "content": "// Copyright 2017 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage compiler\n\nimport (\n\tyaml \"gopkg.in/yaml.v3\"\n)\n\n// Context contains state of the compiler as it traverses a document.\ntype Context struct {\n\tParent            *Context\n\tName              string\n\tNode              *yaml.Node\n\tExtensionHandlers *[]ExtensionHandler\n}\n\n// NewContextWithExtensions returns a new object representing the compiler state\nfunc NewContextWithExtensions(name string, node *yaml.Node, parent *Context, extensionHandlers *[]ExtensionHandler) *Context {\n\treturn &Context{Name: name, Node: node, Parent: parent, ExtensionHandlers: extensionHandlers}\n}\n\n// NewContext returns a new object representing the compiler state\nfunc NewContext(name string, node *yaml.Node, parent *Context) *Context {\n\tif parent != nil {\n\t\treturn &Context{Name: name, Node: node, Parent: parent, ExtensionHandlers: parent.ExtensionHandlers}\n\t}\n\treturn &Context{Name: name, Parent: parent, ExtensionHandlers: nil}\n}\n\n// Description returns a text description of the compiler state\nfunc (context *Context) Description() string {\n\tname := context.Name\n\tif context.Parent != nil {\n\t\tname = context.Parent.Description() + \".\" + name\n\t}\n\treturn name\n}\n"
  },
  {
    "path": "vendor/github.com/google/gnostic-models/compiler/error.go",
    "content": "// Copyright 2017 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage compiler\n\nimport \"fmt\"\n\n// Error represents compiler errors and their location in the document.\ntype Error struct {\n\tContext *Context\n\tMessage string\n}\n\n// NewError creates an Error.\nfunc NewError(context *Context, message string) *Error {\n\treturn &Error{Context: context, Message: message}\n}\n\nfunc (err *Error) locationDescription() string {\n\tif err.Context.Node != nil {\n\t\treturn fmt.Sprintf(\"[%d,%d] %s\", err.Context.Node.Line, err.Context.Node.Column, err.Context.Description())\n\t}\n\treturn err.Context.Description()\n}\n\n// Error returns the string value of an Error.\nfunc (err *Error) Error() string {\n\tif err.Context == nil {\n\t\treturn err.Message\n\t}\n\treturn err.locationDescription() + \" \" + err.Message\n}\n\n// ErrorGroup is a container for groups of Error values.\ntype ErrorGroup struct {\n\tErrors []error\n}\n\n// NewErrorGroupOrNil returns a new ErrorGroup for a slice of errors or nil if the slice is empty.\nfunc NewErrorGroupOrNil(errors []error) error {\n\tif len(errors) == 0 {\n\t\treturn nil\n\t} else if len(errors) == 1 {\n\t\treturn errors[0]\n\t} else {\n\t\treturn &ErrorGroup{Errors: errors}\n\t}\n}\n\nfunc (group *ErrorGroup) Error() string {\n\tresult := \"\"\n\tfor i, err := range group.Errors {\n\t\tif i > 0 {\n\t\t\tresult += \"\\n\"\n\t\t}\n\t\tresult += err.Error()\n\t}\n\treturn result\n}\n"
  },
  {
    "path": "vendor/github.com/google/gnostic-models/compiler/extensions.go",
    "content": "// Copyright 2017 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage compiler\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"os/exec\"\n\t\"strings\"\n\n\t\"github.com/golang/protobuf/proto\"\n\t\"github.com/golang/protobuf/ptypes/any\"\n\tyaml \"gopkg.in/yaml.v3\"\n\n\textensions \"github.com/google/gnostic-models/extensions\"\n)\n\n// ExtensionHandler describes a binary that is called by the compiler to handle specification extensions.\ntype ExtensionHandler struct {\n\tName string\n}\n\n// CallExtension calls a binary extension handler.\nfunc CallExtension(context *Context, in *yaml.Node, extensionName string) (handled bool, response *any.Any, err error) {\n\tif context == nil || context.ExtensionHandlers == nil {\n\t\treturn false, nil, nil\n\t}\n\thandled = false\n\tfor _, handler := range *(context.ExtensionHandlers) {\n\t\tresponse, err = handler.handle(in, extensionName)\n\t\tif response == nil {\n\t\t\tcontinue\n\t\t} else {\n\t\t\thandled = true\n\t\t\tbreak\n\t\t}\n\t}\n\treturn handled, response, err\n}\n\nfunc (extensionHandlers *ExtensionHandler) handle(in *yaml.Node, extensionName string) (*any.Any, error) {\n\tif extensionHandlers.Name != \"\" {\n\t\tyamlData, _ := yaml.Marshal(in)\n\t\trequest := &extensions.ExtensionHandlerRequest{\n\t\t\tCompilerVersion: &extensions.Version{\n\t\t\t\tMajor: 0,\n\t\t\t\tMinor: 1,\n\t\t\t\tPatch: 0,\n\t\t\t},\n\t\t\tWrapper: &extensions.Wrapper{\n\t\t\t\tVersion:       \"unknown\", // TODO: set this to the type/version of spec being parsed.\n\t\t\t\tYaml:          string(yamlData),\n\t\t\t\tExtensionName: extensionName,\n\t\t\t},\n\t\t}\n\t\trequestBytes, _ := proto.Marshal(request)\n\t\tcmd := exec.Command(extensionHandlers.Name)\n\t\tcmd.Stdin = bytes.NewReader(requestBytes)\n\t\toutput, err := cmd.Output()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tresponse := &extensions.ExtensionHandlerResponse{}\n\t\terr = proto.Unmarshal(output, response)\n\t\tif err != nil || !response.Handled {\n\t\t\treturn nil, err\n\t\t}\n\t\tif len(response.Errors) != 0 {\n\t\t\treturn nil, fmt.Errorf(\"Errors when parsing: %+v for field %s by vendor extension handler %s. Details %+v\", in, extensionName, extensionHandlers.Name, strings.Join(response.Errors, \",\"))\n\t\t}\n\t\treturn response.Value, nil\n\t}\n\treturn nil, nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/gnostic-models/compiler/helpers.go",
    "content": "// Copyright 2017 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage compiler\n\nimport (\n\t\"fmt\"\n\t\"regexp\"\n\t\"sort\"\n\t\"strconv\"\n\n\t\"gopkg.in/yaml.v3\"\n\n\t\"github.com/google/gnostic-models/jsonschema\"\n)\n\n// compiler helper functions, usually called from generated code\n\n// UnpackMap gets a *yaml.Node if possible.\nfunc UnpackMap(in *yaml.Node) (*yaml.Node, bool) {\n\tif in == nil {\n\t\treturn nil, false\n\t}\n\treturn in, true\n}\n\n// SortedKeysForMap returns the sorted keys of a yamlv2.MapSlice.\nfunc SortedKeysForMap(m *yaml.Node) []string {\n\tkeys := make([]string, 0)\n\tif m.Kind == yaml.MappingNode {\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tkeys = append(keys, m.Content[i].Value)\n\t\t}\n\t}\n\tsort.Strings(keys)\n\treturn keys\n}\n\n// MapHasKey returns true if a yamlv2.MapSlice contains a specified key.\nfunc MapHasKey(m *yaml.Node, key string) bool {\n\tif m == nil {\n\t\treturn false\n\t}\n\tif m.Kind == yaml.MappingNode {\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\titemKey := m.Content[i].Value\n\t\t\tif key == itemKey {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t}\n\treturn false\n}\n\n// MapValueForKey gets the value of a map value for a specified key.\nfunc MapValueForKey(m *yaml.Node, key string) *yaml.Node {\n\tif m == nil {\n\t\treturn nil\n\t}\n\tif m.Kind == yaml.MappingNode {\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\titemKey := m.Content[i].Value\n\t\t\tif key == itemKey {\n\t\t\t\treturn m.Content[i+1]\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\n// ConvertInterfaceArrayToStringArray converts an array of interfaces to an array of strings, if possible.\nfunc ConvertInterfaceArrayToStringArray(interfaceArray []interface{}) []string {\n\tstringArray := make([]string, 0)\n\tfor _, item := range interfaceArray {\n\t\tv, ok := item.(string)\n\t\tif ok {\n\t\t\tstringArray = append(stringArray, v)\n\t\t}\n\t}\n\treturn stringArray\n}\n\n// SequenceNodeForNode returns a node if it is a SequenceNode.\nfunc SequenceNodeForNode(node *yaml.Node) (*yaml.Node, bool) {\n\tif node.Kind != yaml.SequenceNode {\n\t\treturn nil, false\n\t}\n\treturn node, true\n}\n\n// BoolForScalarNode returns the bool value of a node.\nfunc BoolForScalarNode(node *yaml.Node) (bool, bool) {\n\tif node == nil {\n\t\treturn false, false\n\t}\n\tif node.Kind == yaml.DocumentNode {\n\t\treturn BoolForScalarNode(node.Content[0])\n\t}\n\tif node.Kind != yaml.ScalarNode {\n\t\treturn false, false\n\t}\n\tif node.Tag != \"!!bool\" {\n\t\treturn false, false\n\t}\n\tv, err := strconv.ParseBool(node.Value)\n\tif err != nil {\n\t\treturn false, false\n\t}\n\treturn v, true\n}\n\n// IntForScalarNode returns the integer value of a node.\nfunc IntForScalarNode(node *yaml.Node) (int64, bool) {\n\tif node == nil {\n\t\treturn 0, false\n\t}\n\tif node.Kind == yaml.DocumentNode {\n\t\treturn IntForScalarNode(node.Content[0])\n\t}\n\tif node.Kind != yaml.ScalarNode {\n\t\treturn 0, false\n\t}\n\tif node.Tag != \"!!int\" {\n\t\treturn 0, false\n\t}\n\tv, err := strconv.ParseInt(node.Value, 10, 64)\n\tif err != nil {\n\t\treturn 0, false\n\t}\n\treturn v, true\n}\n\n// FloatForScalarNode returns the float value of a node.\nfunc FloatForScalarNode(node *yaml.Node) (float64, bool) {\n\tif node == nil {\n\t\treturn 0.0, false\n\t}\n\tif node.Kind == yaml.DocumentNode {\n\t\treturn FloatForScalarNode(node.Content[0])\n\t}\n\tif node.Kind != yaml.ScalarNode {\n\t\treturn 0.0, false\n\t}\n\tif (node.Tag != \"!!int\") && (node.Tag != \"!!float\") {\n\t\treturn 0.0, false\n\t}\n\tv, err := strconv.ParseFloat(node.Value, 64)\n\tif err != nil {\n\t\treturn 0.0, false\n\t}\n\treturn v, true\n}\n\n// StringForScalarNode returns the string value of a node.\nfunc StringForScalarNode(node *yaml.Node) (string, bool) {\n\tif node == nil {\n\t\treturn \"\", false\n\t}\n\tif node.Kind == yaml.DocumentNode {\n\t\treturn StringForScalarNode(node.Content[0])\n\t}\n\tswitch node.Kind {\n\tcase yaml.ScalarNode:\n\t\tswitch node.Tag {\n\t\tcase \"!!int\":\n\t\t\treturn node.Value, true\n\t\tcase \"!!str\":\n\t\t\treturn node.Value, true\n\t\tcase \"!!timestamp\":\n\t\t\treturn node.Value, true\n\t\tcase \"!!null\":\n\t\t\treturn \"\", true\n\t\tdefault:\n\t\t\treturn \"\", false\n\t\t}\n\tdefault:\n\t\treturn \"\", false\n\t}\n}\n\n// StringArrayForSequenceNode converts a sequence node to an array of strings, if possible.\nfunc StringArrayForSequenceNode(node *yaml.Node) []string {\n\tstringArray := make([]string, 0)\n\tfor _, item := range node.Content {\n\t\tv, ok := StringForScalarNode(item)\n\t\tif ok {\n\t\t\tstringArray = append(stringArray, v)\n\t\t}\n\t}\n\treturn stringArray\n}\n\n// MissingKeysInMap identifies which keys from a list of required keys are not in a map.\nfunc MissingKeysInMap(m *yaml.Node, requiredKeys []string) []string {\n\tmissingKeys := make([]string, 0)\n\tfor _, k := range requiredKeys {\n\t\tif !MapHasKey(m, k) {\n\t\t\tmissingKeys = append(missingKeys, k)\n\t\t}\n\t}\n\treturn missingKeys\n}\n\n// InvalidKeysInMap returns keys in a map that don't match a list of allowed keys and patterns.\nfunc InvalidKeysInMap(m *yaml.Node, allowedKeys []string, allowedPatterns []*regexp.Regexp) []string {\n\tinvalidKeys := make([]string, 0)\n\tif m == nil || m.Kind != yaml.MappingNode {\n\t\treturn invalidKeys\n\t}\n\tfor i := 0; i < len(m.Content); i += 2 {\n\t\tkey := m.Content[i].Value\n\t\tfound := false\n\t\t// does the key match an allowed key?\n\t\tfor _, allowedKey := range allowedKeys {\n\t\t\tif key == allowedKey {\n\t\t\t\tfound = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif !found {\n\t\t\t// does the key match an allowed pattern?\n\t\t\tfor _, allowedPattern := range allowedPatterns {\n\t\t\t\tif allowedPattern.MatchString(key) {\n\t\t\t\t\tfound = true\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !found {\n\t\t\t\tinvalidKeys = append(invalidKeys, key)\n\t\t\t}\n\t\t}\n\t}\n\treturn invalidKeys\n}\n\n// NewNullNode creates a new Null node.\nfunc NewNullNode() *yaml.Node {\n\tnode := &yaml.Node{\n\t\tKind: yaml.ScalarNode,\n\t\tTag:  \"!!null\",\n\t}\n\treturn node\n}\n\n// NewMappingNode creates a new Mapping node.\nfunc NewMappingNode() *yaml.Node {\n\treturn &yaml.Node{\n\t\tKind:    yaml.MappingNode,\n\t\tContent: make([]*yaml.Node, 0),\n\t}\n}\n\n// NewSequenceNode creates a new Sequence node.\nfunc NewSequenceNode() *yaml.Node {\n\tnode := &yaml.Node{\n\t\tKind:    yaml.SequenceNode,\n\t\tContent: make([]*yaml.Node, 0),\n\t}\n\treturn node\n}\n\n// NewScalarNodeForString creates a new node to hold a string.\nfunc NewScalarNodeForString(s string) *yaml.Node {\n\treturn &yaml.Node{\n\t\tKind:  yaml.ScalarNode,\n\t\tTag:   \"!!str\",\n\t\tValue: s,\n\t}\n}\n\n// NewSequenceNodeForStringArray creates a new node to hold an array of strings.\nfunc NewSequenceNodeForStringArray(strings []string) *yaml.Node {\n\tnode := &yaml.Node{\n\t\tKind:    yaml.SequenceNode,\n\t\tContent: make([]*yaml.Node, 0),\n\t}\n\tfor _, s := range strings {\n\t\tnode.Content = append(node.Content, NewScalarNodeForString(s))\n\t}\n\treturn node\n}\n\n// NewScalarNodeForBool creates a new node to hold a bool.\nfunc NewScalarNodeForBool(b bool) *yaml.Node {\n\treturn &yaml.Node{\n\t\tKind:  yaml.ScalarNode,\n\t\tTag:   \"!!bool\",\n\t\tValue: fmt.Sprintf(\"%t\", b),\n\t}\n}\n\n// NewScalarNodeForFloat creates a new node to hold a float.\nfunc NewScalarNodeForFloat(f float64) *yaml.Node {\n\treturn &yaml.Node{\n\t\tKind:  yaml.ScalarNode,\n\t\tTag:   \"!!float\",\n\t\tValue: fmt.Sprintf(\"%g\", f),\n\t}\n}\n\n// NewScalarNodeForInt creates a new node to hold an integer.\nfunc NewScalarNodeForInt(i int64) *yaml.Node {\n\treturn &yaml.Node{\n\t\tKind:  yaml.ScalarNode,\n\t\tTag:   \"!!int\",\n\t\tValue: fmt.Sprintf(\"%d\", i),\n\t}\n}\n\n// PluralProperties returns the string \"properties\" pluralized.\nfunc PluralProperties(count int) string {\n\tif count == 1 {\n\t\treturn \"property\"\n\t}\n\treturn \"properties\"\n}\n\n// StringArrayContainsValue returns true if a string array contains a specified value.\nfunc StringArrayContainsValue(array []string, value string) bool {\n\tfor _, item := range array {\n\t\tif item == value {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// StringArrayContainsValues returns true if a string array contains all of a list of specified values.\nfunc StringArrayContainsValues(array []string, values []string) bool {\n\tfor _, value := range values {\n\t\tif !StringArrayContainsValue(array, value) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// StringValue returns the string value of an item.\nfunc StringValue(item interface{}) (value string, ok bool) {\n\tvalue, ok = item.(string)\n\tif ok {\n\t\treturn value, ok\n\t}\n\tintValue, ok := item.(int)\n\tif ok {\n\t\treturn strconv.Itoa(intValue), true\n\t}\n\treturn \"\", false\n}\n\n// Description returns a human-readable represention of an item.\nfunc Description(item interface{}) string {\n\tvalue, ok := item.(*yaml.Node)\n\tif ok {\n\t\treturn jsonschema.Render(value)\n\t}\n\treturn fmt.Sprintf(\"%+v\", item)\n}\n\n// Display returns a description of a node for use in error messages.\nfunc Display(node *yaml.Node) string {\n\tswitch node.Kind {\n\tcase yaml.ScalarNode:\n\t\tswitch node.Tag {\n\t\tcase \"!!str\":\n\t\t\treturn fmt.Sprintf(\"%s (string)\", node.Value)\n\t\t}\n\t}\n\treturn fmt.Sprintf(\"%+v (%T)\", node, node)\n}\n\n// Marshal creates a yaml version of a structure in our preferred style\nfunc Marshal(in *yaml.Node) []byte {\n\tclearStyle(in)\n\t//bytes, _ := yaml.Marshal(&yaml.Node{Kind: yaml.DocumentNode, Content: []*yaml.Node{in}})\n\tbytes, _ := yaml.Marshal(in)\n\n\treturn bytes\n}\n\nfunc clearStyle(node *yaml.Node) {\n\tnode.Style = 0\n\tfor _, c := range node.Content {\n\t\tclearStyle(c)\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/google/gnostic-models/compiler/main.go",
    "content": "// Copyright 2017 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Package compiler provides support functions to generated compiler code.\npackage compiler\n"
  },
  {
    "path": "vendor/github.com/google/gnostic-models/compiler/reader.go",
    "content": "// Copyright 2017 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage compiler\n\nimport (\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"log\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"path/filepath\"\n\t\"strings\"\n\t\"sync\"\n\n\tyaml \"gopkg.in/yaml.v3\"\n)\n\nvar verboseReader = false\n\nvar fileCache map[string][]byte\nvar infoCache map[string]*yaml.Node\n\nvar fileCacheEnable = true\nvar infoCacheEnable = true\n\n// These locks are used to synchronize accesses to the fileCache and infoCache\n// maps (above). They are global state and can throw thread-related errors\n// when modified from separate goroutines. The general strategy is to protect\n// all public functions in this file with mutex Lock() calls. As a result, to\n// avoid deadlock, these public functions should not call other public\n// functions, so some public functions have private equivalents.\n// In the future, we might consider replacing the maps with sync.Map and\n// eliminating these mutexes.\nvar fileCacheMutex sync.Mutex\nvar infoCacheMutex sync.Mutex\n\nfunc initializeFileCache() {\n\tif fileCache == nil {\n\t\tfileCache = make(map[string][]byte, 0)\n\t}\n}\n\nfunc initializeInfoCache() {\n\tif infoCache == nil {\n\t\tinfoCache = make(map[string]*yaml.Node, 0)\n\t}\n}\n\n// EnableFileCache turns on file caching.\nfunc EnableFileCache() {\n\tfileCacheMutex.Lock()\n\tdefer fileCacheMutex.Unlock()\n\tfileCacheEnable = true\n}\n\n// EnableInfoCache turns on parsed info caching.\nfunc EnableInfoCache() {\n\tinfoCacheMutex.Lock()\n\tdefer infoCacheMutex.Unlock()\n\tinfoCacheEnable = true\n}\n\n// DisableFileCache turns off file caching.\nfunc DisableFileCache() {\n\tfileCacheMutex.Lock()\n\tdefer fileCacheMutex.Unlock()\n\tfileCacheEnable = false\n}\n\n// DisableInfoCache turns off parsed info caching.\nfunc DisableInfoCache() {\n\tinfoCacheMutex.Lock()\n\tdefer infoCacheMutex.Unlock()\n\tinfoCacheEnable = false\n}\n\n// RemoveFromFileCache removes an entry from the file cache.\nfunc RemoveFromFileCache(fileurl string) {\n\tfileCacheMutex.Lock()\n\tdefer fileCacheMutex.Unlock()\n\tif !fileCacheEnable {\n\t\treturn\n\t}\n\tinitializeFileCache()\n\tdelete(fileCache, fileurl)\n}\n\n// RemoveFromInfoCache removes an entry from the info cache.\nfunc RemoveFromInfoCache(filename string) {\n\tinfoCacheMutex.Lock()\n\tdefer infoCacheMutex.Unlock()\n\tif !infoCacheEnable {\n\t\treturn\n\t}\n\tinitializeInfoCache()\n\tdelete(infoCache, filename)\n}\n\n// GetInfoCache returns the info cache map.\nfunc GetInfoCache() map[string]*yaml.Node {\n\tinfoCacheMutex.Lock()\n\tdefer infoCacheMutex.Unlock()\n\tif infoCache == nil {\n\t\tinitializeInfoCache()\n\t}\n\treturn infoCache\n}\n\n// ClearFileCache clears the file cache.\nfunc ClearFileCache() {\n\tfileCacheMutex.Lock()\n\tdefer fileCacheMutex.Unlock()\n\tfileCache = make(map[string][]byte, 0)\n}\n\n// ClearInfoCache clears the info cache.\nfunc ClearInfoCache() {\n\tinfoCacheMutex.Lock()\n\tdefer infoCacheMutex.Unlock()\n\tinfoCache = make(map[string]*yaml.Node)\n}\n\n// ClearCaches clears all caches.\nfunc ClearCaches() {\n\tClearFileCache()\n\tClearInfoCache()\n}\n\n// FetchFile gets a specified file from the local filesystem or a remote location.\nfunc FetchFile(fileurl string) ([]byte, error) {\n\tfileCacheMutex.Lock()\n\tdefer fileCacheMutex.Unlock()\n\treturn fetchFile(fileurl)\n}\n\nfunc fetchFile(fileurl string) ([]byte, error) {\n\tvar bytes []byte\n\tinitializeFileCache()\n\tif fileCacheEnable {\n\t\tbytes, ok := fileCache[fileurl]\n\t\tif ok {\n\t\t\tif verboseReader {\n\t\t\t\tlog.Printf(\"Cache hit %s\", fileurl)\n\t\t\t}\n\t\t\treturn bytes, nil\n\t\t}\n\t\tif verboseReader {\n\t\t\tlog.Printf(\"Fetching %s\", fileurl)\n\t\t}\n\t}\n\tresponse, err := http.Get(fileurl)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer response.Body.Close()\n\tif response.StatusCode != 200 {\n\t\treturn nil, fmt.Errorf(\"Error downloading %s: %s\", fileurl, response.Status)\n\t}\n\tbytes, err = ioutil.ReadAll(response.Body)\n\tif fileCacheEnable && err == nil {\n\t\tfileCache[fileurl] = bytes\n\t}\n\treturn bytes, err\n}\n\n// ReadBytesForFile reads the bytes of a file.\nfunc ReadBytesForFile(filename string) ([]byte, error) {\n\tfileCacheMutex.Lock()\n\tdefer fileCacheMutex.Unlock()\n\treturn readBytesForFile(filename)\n}\n\nfunc readBytesForFile(filename string) ([]byte, error) {\n\t// is the filename a url?\n\tfileurl, _ := url.Parse(filename)\n\tif fileurl.Scheme != \"\" {\n\t\t// yes, fetch it\n\t\tbytes, err := fetchFile(filename)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn bytes, nil\n\t}\n\t// no, it's a local filename\n\tbytes, err := ioutil.ReadFile(filename)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn bytes, nil\n}\n\n// ReadInfoFromBytes unmarshals a file as a *yaml.Node.\nfunc ReadInfoFromBytes(filename string, bytes []byte) (*yaml.Node, error) {\n\tinfoCacheMutex.Lock()\n\tdefer infoCacheMutex.Unlock()\n\treturn readInfoFromBytes(filename, bytes)\n}\n\nfunc readInfoFromBytes(filename string, bytes []byte) (*yaml.Node, error) {\n\tinitializeInfoCache()\n\tif infoCacheEnable {\n\t\tcachedInfo, ok := infoCache[filename]\n\t\tif ok {\n\t\t\tif verboseReader {\n\t\t\t\tlog.Printf(\"Cache hit info for file %s\", filename)\n\t\t\t}\n\t\t\treturn cachedInfo, nil\n\t\t}\n\t\tif verboseReader {\n\t\t\tlog.Printf(\"Reading info for file %s\", filename)\n\t\t}\n\t}\n\tvar info yaml.Node\n\terr := yaml.Unmarshal(bytes, &info)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif infoCacheEnable && len(filename) > 0 {\n\t\tinfoCache[filename] = &info\n\t}\n\treturn &info, nil\n}\n\n// ReadInfoForRef reads a file and return the fragment needed to resolve a $ref.\nfunc ReadInfoForRef(basefile string, ref string) (*yaml.Node, error) {\n\tfileCacheMutex.Lock()\n\tdefer fileCacheMutex.Unlock()\n\tinfoCacheMutex.Lock()\n\tdefer infoCacheMutex.Unlock()\n\tinitializeInfoCache()\n\tif infoCacheEnable {\n\t\tinfo, ok := infoCache[ref]\n\t\tif ok {\n\t\t\tif verboseReader {\n\t\t\t\tlog.Printf(\"Cache hit for ref %s#%s\", basefile, ref)\n\t\t\t}\n\t\t\treturn info, nil\n\t\t}\n\t\tif verboseReader {\n\t\t\tlog.Printf(\"Reading info for ref %s#%s\", basefile, ref)\n\t\t}\n\t}\n\tbasedir, _ := filepath.Split(basefile)\n\tparts := strings.Split(ref, \"#\")\n\tvar filename string\n\tif parts[0] != \"\" {\n\t\tfilename = parts[0]\n\t\tif _, err := url.ParseRequestURI(parts[0]); err != nil {\n\t\t\t// It is not an URL, so the file is local\n\t\t\tfilename = basedir + parts[0]\n\t\t}\n\t} else {\n\t\tfilename = basefile\n\t}\n\tbytes, err := readBytesForFile(filename)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tinfo, err := readInfoFromBytes(filename, bytes)\n\tif info != nil && info.Kind == yaml.DocumentNode {\n\t\tinfo = info.Content[0]\n\t}\n\tif err != nil {\n\t\tlog.Printf(\"File error: %v\\n\", err)\n\t} else {\n\t\tif info == nil {\n\t\t\treturn nil, NewError(nil, fmt.Sprintf(\"could not resolve %s\", ref))\n\t\t}\n\t\tif len(parts) > 1 {\n\t\t\tpath := strings.Split(parts[1], \"/\")\n\t\t\tfor i, key := range path {\n\t\t\t\tif i > 0 {\n\t\t\t\t\tm := info\n\t\t\t\t\tif true {\n\t\t\t\t\t\tfound := false\n\t\t\t\t\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\t\t\t\t\tif m.Content[i].Value == key {\n\t\t\t\t\t\t\t\tinfo = m.Content[i+1]\n\t\t\t\t\t\t\t\tfound = true\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif !found {\n\t\t\t\t\t\t\tinfoCache[ref] = nil\n\t\t\t\t\t\t\treturn nil, NewError(nil, fmt.Sprintf(\"could not resolve %s\", ref))\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tif infoCacheEnable {\n\t\tinfoCache[ref] = info\n\t}\n\treturn info, nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/gnostic-models/extensions/README.md",
    "content": "# Extensions\n\n**Extension Support is experimental.**\n\nThis directory contains support code for building Gnostic extensio handlers and\nassociated examples.\n\nExtension handlers can be used to compile vendor or specification extensions\ninto protocol buffer structures.\n\nLike plugins, extension handlers are built as separate executables. Extension\nbodies are written to extension handlers as serialized\nExtensionHandlerRequests.\n"
  },
  {
    "path": "vendor/github.com/google/gnostic-models/extensions/extension.pb.go",
    "content": "// Copyright 2017 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Code generated by protoc-gen-go. DO NOT EDIT.\n// versions:\n// \tprotoc-gen-go v1.27.1\n// \tprotoc        v3.19.3\n// source: extensions/extension.proto\n\npackage gnostic_extension_v1\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n\tprotoimpl \"google.golang.org/protobuf/runtime/protoimpl\"\n\tanypb \"google.golang.org/protobuf/types/known/anypb\"\n\treflect \"reflect\"\n\tsync \"sync\"\n)\n\nconst (\n\t// Verify that this generated code is sufficiently up-to-date.\n\t_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)\n\t// Verify that runtime/protoimpl is sufficiently up-to-date.\n\t_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)\n)\n\n// The version number of Gnostic.\ntype Version struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tMajor int32 `protobuf:\"varint,1,opt,name=major,proto3\" json:\"major,omitempty\"`\n\tMinor int32 `protobuf:\"varint,2,opt,name=minor,proto3\" json:\"minor,omitempty\"`\n\tPatch int32 `protobuf:\"varint,3,opt,name=patch,proto3\" json:\"patch,omitempty\"`\n\t// A suffix for alpha, beta or rc release, e.g., \"alpha-1\", \"rc2\". It should\n\t// be empty for mainline stable releases.\n\tSuffix string `protobuf:\"bytes,4,opt,name=suffix,proto3\" json:\"suffix,omitempty\"`\n}\n\nfunc (x *Version) Reset() {\n\t*x = Version{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_extensions_extension_proto_msgTypes[0]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Version) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Version) ProtoMessage() {}\n\nfunc (x *Version) ProtoReflect() protoreflect.Message {\n\tmi := &file_extensions_extension_proto_msgTypes[0]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Version.ProtoReflect.Descriptor instead.\nfunc (*Version) Descriptor() ([]byte, []int) {\n\treturn file_extensions_extension_proto_rawDescGZIP(), []int{0}\n}\n\nfunc (x *Version) GetMajor() int32 {\n\tif x != nil {\n\t\treturn x.Major\n\t}\n\treturn 0\n}\n\nfunc (x *Version) GetMinor() int32 {\n\tif x != nil {\n\t\treturn x.Minor\n\t}\n\treturn 0\n}\n\nfunc (x *Version) GetPatch() int32 {\n\tif x != nil {\n\t\treturn x.Patch\n\t}\n\treturn 0\n}\n\nfunc (x *Version) GetSuffix() string {\n\tif x != nil {\n\t\treturn x.Suffix\n\t}\n\treturn \"\"\n}\n\n// An encoded Request is written to the ExtensionHandler's stdin.\ntype ExtensionHandlerRequest struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// The extension to process.\n\tWrapper *Wrapper `protobuf:\"bytes,1,opt,name=wrapper,proto3\" json:\"wrapper,omitempty\"`\n\t// The version number of Gnostic.\n\tCompilerVersion *Version `protobuf:\"bytes,2,opt,name=compiler_version,json=compilerVersion,proto3\" json:\"compiler_version,omitempty\"`\n}\n\nfunc (x *ExtensionHandlerRequest) Reset() {\n\t*x = ExtensionHandlerRequest{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_extensions_extension_proto_msgTypes[1]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ExtensionHandlerRequest) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ExtensionHandlerRequest) ProtoMessage() {}\n\nfunc (x *ExtensionHandlerRequest) ProtoReflect() protoreflect.Message {\n\tmi := &file_extensions_extension_proto_msgTypes[1]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ExtensionHandlerRequest.ProtoReflect.Descriptor instead.\nfunc (*ExtensionHandlerRequest) Descriptor() ([]byte, []int) {\n\treturn file_extensions_extension_proto_rawDescGZIP(), []int{1}\n}\n\nfunc (x *ExtensionHandlerRequest) GetWrapper() *Wrapper {\n\tif x != nil {\n\t\treturn x.Wrapper\n\t}\n\treturn nil\n}\n\nfunc (x *ExtensionHandlerRequest) GetCompilerVersion() *Version {\n\tif x != nil {\n\t\treturn x.CompilerVersion\n\t}\n\treturn nil\n}\n\n// The extensions writes an encoded ExtensionHandlerResponse to stdout.\ntype ExtensionHandlerResponse struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// true if the extension is handled by the extension handler; false otherwise\n\tHandled bool `protobuf:\"varint,1,opt,name=handled,proto3\" json:\"handled,omitempty\"`\n\t// Error message(s).  If non-empty, the extension handling failed.\n\t// The extension handler process should exit with status code zero\n\t// even if it reports an error in this way.\n\t//\n\t// This should be used to indicate errors which prevent the extension from\n\t// operating as intended.  Errors which indicate a problem in gnostic\n\t// itself -- such as the input Document being unparseable -- should be\n\t// reported by writing a message to stderr and exiting with a non-zero\n\t// status code.\n\tErrors []string `protobuf:\"bytes,2,rep,name=errors,proto3\" json:\"errors,omitempty\"`\n\t// text output\n\tValue *anypb.Any `protobuf:\"bytes,3,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *ExtensionHandlerResponse) Reset() {\n\t*x = ExtensionHandlerResponse{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_extensions_extension_proto_msgTypes[2]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ExtensionHandlerResponse) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ExtensionHandlerResponse) ProtoMessage() {}\n\nfunc (x *ExtensionHandlerResponse) ProtoReflect() protoreflect.Message {\n\tmi := &file_extensions_extension_proto_msgTypes[2]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ExtensionHandlerResponse.ProtoReflect.Descriptor instead.\nfunc (*ExtensionHandlerResponse) Descriptor() ([]byte, []int) {\n\treturn file_extensions_extension_proto_rawDescGZIP(), []int{2}\n}\n\nfunc (x *ExtensionHandlerResponse) GetHandled() bool {\n\tif x != nil {\n\t\treturn x.Handled\n\t}\n\treturn false\n}\n\nfunc (x *ExtensionHandlerResponse) GetErrors() []string {\n\tif x != nil {\n\t\treturn x.Errors\n\t}\n\treturn nil\n}\n\nfunc (x *ExtensionHandlerResponse) GetValue() *anypb.Any {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\ntype Wrapper struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// version of the OpenAPI specification in which this extension was written.\n\tVersion string `protobuf:\"bytes,1,opt,name=version,proto3\" json:\"version,omitempty\"`\n\t// Name of the extension.\n\tExtensionName string `protobuf:\"bytes,2,opt,name=extension_name,json=extensionName,proto3\" json:\"extension_name,omitempty\"`\n\t// YAML-formatted extension value.\n\tYaml string `protobuf:\"bytes,3,opt,name=yaml,proto3\" json:\"yaml,omitempty\"`\n}\n\nfunc (x *Wrapper) Reset() {\n\t*x = Wrapper{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_extensions_extension_proto_msgTypes[3]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Wrapper) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Wrapper) ProtoMessage() {}\n\nfunc (x *Wrapper) ProtoReflect() protoreflect.Message {\n\tmi := &file_extensions_extension_proto_msgTypes[3]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Wrapper.ProtoReflect.Descriptor instead.\nfunc (*Wrapper) Descriptor() ([]byte, []int) {\n\treturn file_extensions_extension_proto_rawDescGZIP(), []int{3}\n}\n\nfunc (x *Wrapper) GetVersion() string {\n\tif x != nil {\n\t\treturn x.Version\n\t}\n\treturn \"\"\n}\n\nfunc (x *Wrapper) GetExtensionName() string {\n\tif x != nil {\n\t\treturn x.ExtensionName\n\t}\n\treturn \"\"\n}\n\nfunc (x *Wrapper) GetYaml() string {\n\tif x != nil {\n\t\treturn x.Yaml\n\t}\n\treturn \"\"\n}\n\nvar File_extensions_extension_proto protoreflect.FileDescriptor\n\nvar file_extensions_extension_proto_rawDesc = []byte{\n\t0x0a, 0x1a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x65, 0x78, 0x74,\n\t0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x67, 0x6e,\n\t0x6f, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e,\n\t0x76, 0x31, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f,\n\t0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x63, 0x0a,\n\t0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, 0x6a, 0x6f,\n\t0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x12, 0x14,\n\t0x0a, 0x05, 0x6d, 0x69, 0x6e, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6d,\n\t0x69, 0x6e, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20,\n\t0x01, 0x28, 0x05, 0x52, 0x05, 0x70, 0x61, 0x74, 0x63, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75,\n\t0x66, 0x66, 0x69, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, 0x66, 0x66,\n\t0x69, 0x78, 0x22, 0x9c, 0x01, 0x0a, 0x17, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,\n\t0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37,\n\t0x0a, 0x07, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,\n\t0x1d, 0x2e, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73,\n\t0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x52, 0x07,\n\t0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x70, 0x69,\n\t0x6c, 0x65, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28,\n\t0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x65, 0x78, 0x74, 0x65,\n\t0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,\n\t0x52, 0x0f, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,\n\t0x6e, 0x22, 0x78, 0x0a, 0x18, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x61,\n\t0x6e, 0x64, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a,\n\t0x07, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07,\n\t0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72,\n\t0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12,\n\t0x2a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14,\n\t0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,\n\t0x2e, 0x41, 0x6e, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x5e, 0x0a, 0x07, 0x57,\n\t0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f,\n\t0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,\n\t0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61,\n\t0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73,\n\t0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x79, 0x61, 0x6d, 0x6c, 0x18,\n\t0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x79, 0x61, 0x6d, 0x6c, 0x42, 0x4d, 0x0a, 0x0e, 0x6f,\n\t0x72, 0x67, 0x2e, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x76, 0x31, 0x42, 0x10, 0x47,\n\t0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50,\n\t0x01, 0x5a, 0x21, 0x2e, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x3b,\n\t0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,\n\t0x6e, 0x5f, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x47, 0x4e, 0x58, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,\n\t0x6f, 0x33,\n}\n\nvar (\n\tfile_extensions_extension_proto_rawDescOnce sync.Once\n\tfile_extensions_extension_proto_rawDescData = file_extensions_extension_proto_rawDesc\n)\n\nfunc file_extensions_extension_proto_rawDescGZIP() []byte {\n\tfile_extensions_extension_proto_rawDescOnce.Do(func() {\n\t\tfile_extensions_extension_proto_rawDescData = protoimpl.X.CompressGZIP(file_extensions_extension_proto_rawDescData)\n\t})\n\treturn file_extensions_extension_proto_rawDescData\n}\n\nvar file_extensions_extension_proto_msgTypes = make([]protoimpl.MessageInfo, 4)\nvar file_extensions_extension_proto_goTypes = []interface{}{\n\t(*Version)(nil),                  // 0: gnostic.extension.v1.Version\n\t(*ExtensionHandlerRequest)(nil),  // 1: gnostic.extension.v1.ExtensionHandlerRequest\n\t(*ExtensionHandlerResponse)(nil), // 2: gnostic.extension.v1.ExtensionHandlerResponse\n\t(*Wrapper)(nil),                  // 3: gnostic.extension.v1.Wrapper\n\t(*anypb.Any)(nil),                // 4: google.protobuf.Any\n}\nvar file_extensions_extension_proto_depIdxs = []int32{\n\t3, // 0: gnostic.extension.v1.ExtensionHandlerRequest.wrapper:type_name -> gnostic.extension.v1.Wrapper\n\t0, // 1: gnostic.extension.v1.ExtensionHandlerRequest.compiler_version:type_name -> gnostic.extension.v1.Version\n\t4, // 2: gnostic.extension.v1.ExtensionHandlerResponse.value:type_name -> google.protobuf.Any\n\t3, // [3:3] is the sub-list for method output_type\n\t3, // [3:3] is the sub-list for method input_type\n\t3, // [3:3] is the sub-list for extension type_name\n\t3, // [3:3] is the sub-list for extension extendee\n\t0, // [0:3] is the sub-list for field type_name\n}\n\nfunc init() { file_extensions_extension_proto_init() }\nfunc file_extensions_extension_proto_init() {\n\tif File_extensions_extension_proto != nil {\n\t\treturn\n\t}\n\tif !protoimpl.UnsafeEnabled {\n\t\tfile_extensions_extension_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Version); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_extensions_extension_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*ExtensionHandlerRequest); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_extensions_extension_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*ExtensionHandlerResponse); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_extensions_extension_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Wrapper); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t}\n\ttype x struct{}\n\tout := protoimpl.TypeBuilder{\n\t\tFile: protoimpl.DescBuilder{\n\t\t\tGoPackagePath: reflect.TypeOf(x{}).PkgPath(),\n\t\t\tRawDescriptor: file_extensions_extension_proto_rawDesc,\n\t\t\tNumEnums:      0,\n\t\t\tNumMessages:   4,\n\t\t\tNumExtensions: 0,\n\t\t\tNumServices:   0,\n\t\t},\n\t\tGoTypes:           file_extensions_extension_proto_goTypes,\n\t\tDependencyIndexes: file_extensions_extension_proto_depIdxs,\n\t\tMessageInfos:      file_extensions_extension_proto_msgTypes,\n\t}.Build()\n\tFile_extensions_extension_proto = out.File\n\tfile_extensions_extension_proto_rawDesc = nil\n\tfile_extensions_extension_proto_goTypes = nil\n\tfile_extensions_extension_proto_depIdxs = nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/gnostic-models/extensions/extension.proto",
    "content": "// Copyright 2017 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nsyntax = \"proto3\";\n\npackage gnostic.extension.v1;\n\nimport \"google/protobuf/any.proto\";\n\n// This option lets the proto compiler generate Java code inside the package\n// name (see below) instead of inside an outer class. It creates a simpler\n// developer experience by reducing one-level of name nesting and be\n// consistent with most programming languages that don't support outer classes.\noption java_multiple_files = true;\n\n// The Java outer classname should be the filename in UpperCamelCase. This\n// class is only used to hold proto descriptor, so developers don't need to\n// work with it directly.\noption java_outer_classname = \"GnosticExtension\";\n\n// The Java package name must be proto package name with proper prefix.\noption java_package = \"org.gnostic.v1\";\n\n// A reasonable prefix for the Objective-C symbols generated from the package.\n// It should at a minimum be 3 characters long, all uppercase, and convention\n// is to use an abbreviation of the package name. Something short, but\n// hopefully unique enough to not conflict with things that may come along in\n// the future. 'GPB' is reserved for the protocol buffer implementation itself.\n//\n// \"Gnostic Extension\"\noption objc_class_prefix = \"GNX\";\n\n// The Go package name.\noption go_package = \"./extensions;gnostic_extension_v1\";\n\n// The version number of Gnostic.\nmessage Version {\n  int32 major = 1;\n  int32 minor = 2;\n  int32 patch = 3;\n  // A suffix for alpha, beta or rc release, e.g., \"alpha-1\", \"rc2\". It should\n  // be empty for mainline stable releases.\n  string suffix = 4;\n}\n\n// An encoded Request is written to the ExtensionHandler's stdin.\nmessage ExtensionHandlerRequest {\n\n  // The extension to process.\n  Wrapper wrapper = 1;\n\n  // The version number of Gnostic.\n  Version compiler_version = 2;\n}\n\n// The extensions writes an encoded ExtensionHandlerResponse to stdout.\nmessage ExtensionHandlerResponse {\n\n  // true if the extension is handled by the extension handler; false otherwise\n  bool handled = 1;\n\n  // Error message(s).  If non-empty, the extension handling failed.\n  // The extension handler process should exit with status code zero\n  // even if it reports an error in this way.\n  //\n  // This should be used to indicate errors which prevent the extension from\n  // operating as intended.  Errors which indicate a problem in gnostic\n  // itself -- such as the input Document being unparseable -- should be\n  // reported by writing a message to stderr and exiting with a non-zero\n  // status code.\n  repeated string errors = 2;\n\n  // text output\n  google.protobuf.Any value = 3;\n}\n\nmessage Wrapper {\n  // version of the OpenAPI specification in which this extension was written.\n  string version = 1;\n\n  // Name of the extension.\n  string extension_name = 2;\n\n  // YAML-formatted extension value.\n  string yaml = 3;\n}\n"
  },
  {
    "path": "vendor/github.com/google/gnostic-models/extensions/extensions.go",
    "content": "// Copyright 2017 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage gnostic_extension_v1\n\nimport (\n\t\"io/ioutil\"\n\t\"log\"\n\t\"os\"\n\n\t\"github.com/golang/protobuf/proto\"\n\t\"github.com/golang/protobuf/ptypes\"\n)\n\ntype extensionHandler func(name string, yamlInput string) (bool, proto.Message, error)\n\n// Main implements the main program of an extension handler.\nfunc Main(handler extensionHandler) {\n\t// unpack the request\n\tdata, err := ioutil.ReadAll(os.Stdin)\n\tif err != nil {\n\t\tlog.Println(\"File error:\", err.Error())\n\t\tos.Exit(1)\n\t}\n\tif len(data) == 0 {\n\t\tlog.Println(\"No input data.\")\n\t\tos.Exit(1)\n\t}\n\trequest := &ExtensionHandlerRequest{}\n\terr = proto.Unmarshal(data, request)\n\tif err != nil {\n\t\tlog.Println(\"Input error:\", err.Error())\n\t\tos.Exit(1)\n\t}\n\t// call the handler\n\thandled, output, err := handler(request.Wrapper.ExtensionName, request.Wrapper.Yaml)\n\t// respond with the output of the handler\n\tresponse := &ExtensionHandlerResponse{\n\t\tHandled: false, // default assumption\n\t\tErrors:  make([]string, 0),\n\t}\n\tif err != nil {\n\t\tresponse.Errors = append(response.Errors, err.Error())\n\t} else if handled {\n\t\tresponse.Handled = true\n\t\tresponse.Value, err = ptypes.MarshalAny(output)\n\t\tif err != nil {\n\t\t\tresponse.Errors = append(response.Errors, err.Error())\n\t\t}\n\t}\n\tresponseBytes, _ := proto.Marshal(response)\n\tos.Stdout.Write(responseBytes)\n}\n"
  },
  {
    "path": "vendor/github.com/google/gnostic-models/jsonschema/README.md",
    "content": "# jsonschema\n\nThis directory contains code for reading, writing, and manipulating JSON\nschemas.\n"
  },
  {
    "path": "vendor/github.com/google/gnostic-models/jsonschema/base.go",
    "content": "// Copyright 2017 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// THIS FILE IS AUTOMATICALLY GENERATED.\n\npackage jsonschema\n\nimport (\n\t\"encoding/base64\"\n)\n\nfunc baseSchemaBytes() ([]byte, error){\n\treturn base64.StdEncoding.DecodeString(\n`ewogICAgImlkIjogImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDQvc2NoZW1hIyIsCiAgICAi\nJHNjaGVtYSI6ICJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMiLAogICAgImRl\nc2NyaXB0aW9uIjogIkNvcmUgc2NoZW1hIG1ldGEtc2NoZW1hIiwKICAgICJkZWZpbml0aW9ucyI6IHsK\nICAgICAgICAic2NoZW1hQXJyYXkiOiB7CiAgICAgICAgICAgICJ0eXBlIjogImFycmF5IiwKICAgICAg\nICAgICAgIm1pbkl0ZW1zIjogMSwKICAgICAgICAgICAgIml0ZW1zIjogeyAiJHJlZiI6ICIjIiB9CiAg\nICAgICAgfSwKICAgICAgICAicG9zaXRpdmVJbnRlZ2VyIjogewogICAgICAgICAgICAidHlwZSI6ICJp\nbnRlZ2VyIiwKICAgICAgICAgICAgIm1pbmltdW0iOiAwCiAgICAgICAgfSwKICAgICAgICAicG9zaXRp\ndmVJbnRlZ2VyRGVmYXVsdDAiOiB7CiAgICAgICAgICAgICJhbGxPZiI6IFsgeyAiJHJlZiI6ICIjL2Rl\nZmluaXRpb25zL3Bvc2l0aXZlSW50ZWdlciIgfSwgeyAiZGVmYXVsdCI6IDAgfSBdCiAgICAgICAgfSwK\nICAgICAgICAic2ltcGxlVHlwZXMiOiB7CiAgICAgICAgICAgICJlbnVtIjogWyAiYXJyYXkiLCAiYm9v\nbGVhbiIsICJpbnRlZ2VyIiwgIm51bGwiLCAibnVtYmVyIiwgIm9iamVjdCIsICJzdHJpbmciIF0KICAg\nICAgICB9LAogICAgICAgICJzdHJpbmdBcnJheSI6IHsKICAgICAgICAgICAgInR5cGUiOiAiYXJyYXki\nLAogICAgICAgICAgICAiaXRlbXMiOiB7ICJ0eXBlIjogInN0cmluZyIgfSwKICAgICAgICAgICAgIm1p\nbkl0ZW1zIjogMSwKICAgICAgICAgICAgInVuaXF1ZUl0ZW1zIjogdHJ1ZQogICAgICAgIH0KICAgIH0s\nCiAgICAidHlwZSI6ICJvYmplY3QiLAogICAgInByb3BlcnRpZXMiOiB7CiAgICAgICAgImlkIjogewog\nICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAgICAgICAiZm9ybWF0IjogInVyaSIKICAg\nICAgICB9LAogICAgICAgICIkc2NoZW1hIjogewogICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAog\nICAgICAgICAgICAiZm9ybWF0IjogInVyaSIKICAgICAgICB9LAogICAgICAgICJ0aXRsZSI6IHsKICAg\nICAgICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgICAgIH0sCiAgICAgICAgImRlc2NyaXB0aW9uIjog\newogICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciCiAgICAgICAgfSwKICAgICAgICAiZGVmYXVsdCI6\nIHt9LAogICAgICAgICJtdWx0aXBsZU9mIjogewogICAgICAgICAgICAidHlwZSI6ICJudW1iZXIiLAog\nICAgICAgICAgICAibWluaW11bSI6IDAsCiAgICAgICAgICAgICJleGNsdXNpdmVNaW5pbXVtIjogdHJ1\nZQogICAgICAgIH0sCiAgICAgICAgIm1heGltdW0iOiB7CiAgICAgICAgICAgICJ0eXBlIjogIm51bWJl\nciIKICAgICAgICB9LAogICAgICAgICJleGNsdXNpdmVNYXhpbXVtIjogewogICAgICAgICAgICAidHlw\nZSI6ICJib29sZWFuIiwKICAgICAgICAgICAgImRlZmF1bHQiOiBmYWxzZQogICAgICAgIH0sCiAgICAg\nICAgIm1pbmltdW0iOiB7CiAgICAgICAgICAgICJ0eXBlIjogIm51bWJlciIKICAgICAgICB9LAogICAg\nICAgICJleGNsdXNpdmVNaW5pbXVtIjogewogICAgICAgICAgICAidHlwZSI6ICJib29sZWFuIiwKICAg\nICAgICAgICAgImRlZmF1bHQiOiBmYWxzZQogICAgICAgIH0sCiAgICAgICAgIm1heExlbmd0aCI6IHsg\nIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9wb3NpdGl2ZUludGVnZXIiIH0sCiAgICAgICAgIm1pbkxlbmd0\naCI6IHsgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9wb3NpdGl2ZUludGVnZXJEZWZhdWx0MCIgfSwKICAg\nICAgICAicGF0dGVybiI6IHsKICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKICAgICAgICAgICAg\nImZvcm1hdCI6ICJyZWdleCIKICAgICAgICB9LAogICAgICAgICJhZGRpdGlvbmFsSXRlbXMiOiB7CiAg\nICAgICAgICAgICJhbnlPZiI6IFsKICAgICAgICAgICAgICAgIHsgInR5cGUiOiAiYm9vbGVhbiIgfSwK\nICAgICAgICAgICAgICAgIHsgIiRyZWYiOiAiIyIgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAi\nZGVmYXVsdCI6IHt9CiAgICAgICAgfSwKICAgICAgICAiaXRlbXMiOiB7CiAgICAgICAgICAgICJhbnlP\nZiI6IFsKICAgICAgICAgICAgICAgIHsgIiRyZWYiOiAiIyIgfSwKICAgICAgICAgICAgICAgIHsgIiRy\nZWYiOiAiIy9kZWZpbml0aW9ucy9zY2hlbWFBcnJheSIgfQogICAgICAgICAgICBdLAogICAgICAgICAg\nICAiZGVmYXVsdCI6IHt9CiAgICAgICAgfSwKICAgICAgICAibWF4SXRlbXMiOiB7ICIkcmVmIjogIiMv\nZGVmaW5pdGlvbnMvcG9zaXRpdmVJbnRlZ2VyIiB9LAogICAgICAgICJtaW5JdGVtcyI6IHsgIiRyZWYi\nOiAiIy9kZWZpbml0aW9ucy9wb3NpdGl2ZUludGVnZXJEZWZhdWx0MCIgfSwKICAgICAgICAidW5pcXVl\nSXRlbXMiOiB7CiAgICAgICAgICAgICJ0eXBlIjogImJvb2xlYW4iLAogICAgICAgICAgICAiZGVmYXVs\ndCI6IGZhbHNlCiAgICAgICAgfSwKICAgICAgICAibWF4UHJvcGVydGllcyI6IHsgIiRyZWYiOiAiIy9k\nZWZpbml0aW9ucy9wb3NpdGl2ZUludGVnZXIiIH0sCiAgICAgICAgIm1pblByb3BlcnRpZXMiOiB7ICIk\ncmVmIjogIiMvZGVmaW5pdGlvbnMvcG9zaXRpdmVJbnRlZ2VyRGVmYXVsdDAiIH0sCiAgICAgICAgInJl\ncXVpcmVkIjogeyAiJHJlZiI6ICIjL2RlZmluaXRpb25zL3N0cmluZ0FycmF5IiB9LAogICAgICAgICJh\nZGRpdGlvbmFsUHJvcGVydGllcyI6IHsKICAgICAgICAgICAgImFueU9mIjogWwogICAgICAgICAgICAg\nICAgeyAidHlwZSI6ICJib29sZWFuIiB9LAogICAgICAgICAgICAgICAgeyAiJHJlZiI6ICIjIiB9CiAg\nICAgICAgICAgIF0sCiAgICAgICAgICAgICJkZWZhdWx0Ijoge30KICAgICAgICB9LAogICAgICAgICJk\nZWZpbml0aW9ucyI6IHsKICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAgICAgImFk\nZGl0aW9uYWxQcm9wZXJ0aWVzIjogeyAiJHJlZiI6ICIjIiB9LAogICAgICAgICAgICAiZGVmYXVsdCI6\nIHt9CiAgICAgICAgfSwKICAgICAgICAicHJvcGVydGllcyI6IHsKICAgICAgICAgICAgInR5cGUiOiAi\nb2JqZWN0IiwKICAgICAgICAgICAgImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjogeyAiJHJlZiI6ICIjIiB9\nLAogICAgICAgICAgICAiZGVmYXVsdCI6IHt9CiAgICAgICAgfSwKICAgICAgICAicGF0dGVyblByb3Bl\ncnRpZXMiOiB7CiAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICJhZGRpdGlv\nbmFsUHJvcGVydGllcyI6IHsgIiRyZWYiOiAiIyIgfSwKICAgICAgICAgICAgImRlZmF1bHQiOiB7fQog\nICAgICAgIH0sCiAgICAgICAgImRlcGVuZGVuY2llcyI6IHsKICAgICAgICAgICAgInR5cGUiOiAib2Jq\nZWN0IiwKICAgICAgICAgICAgImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjogewogICAgICAgICAgICAgICAg\nImFueU9mIjogWwogICAgICAgICAgICAgICAgICAgIHsgIiRyZWYiOiAiIyIgfSwKICAgICAgICAgICAg\nICAgICAgICB7ICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvc3RyaW5nQXJyYXkiIH0KICAgICAgICAgICAg\nICAgIF0KICAgICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgImVudW0iOiB7CiAgICAgICAgICAg\nICJ0eXBlIjogImFycmF5IiwKICAgICAgICAgICAgIm1pbkl0ZW1zIjogMSwKICAgICAgICAgICAgInVu\naXF1ZUl0ZW1zIjogdHJ1ZQogICAgICAgIH0sCiAgICAgICAgInR5cGUiOiB7CiAgICAgICAgICAgICJh\nbnlPZiI6IFsKICAgICAgICAgICAgICAgIHsgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9zaW1wbGVUeXBl\ncyIgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJhcnJheSIs\nCiAgICAgICAgICAgICAgICAgICAgIml0ZW1zIjogeyAiJHJlZiI6ICIjL2RlZmluaXRpb25zL3NpbXBs\nZVR5cGVzIiB9LAogICAgICAgICAgICAgICAgICAgICJtaW5JdGVtcyI6IDEsCiAgICAgICAgICAgICAg\nICAgICAgInVuaXF1ZUl0ZW1zIjogdHJ1ZQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICBdCiAg\nICAgICAgfSwKICAgICAgICAiYWxsT2YiOiB7ICIkcmVmIjogIiMvZGVmaW5pdGlvbnMvc2NoZW1hQXJy\nYXkiIH0sCiAgICAgICAgImFueU9mIjogeyAiJHJlZiI6ICIjL2RlZmluaXRpb25zL3NjaGVtYUFycmF5\nIiB9LAogICAgICAgICJvbmVPZiI6IHsgIiRyZWYiOiAiIy9kZWZpbml0aW9ucy9zY2hlbWFBcnJheSIg\nfSwKICAgICAgICAibm90IjogeyAiJHJlZiI6ICIjIiB9CiAgICB9LAogICAgImRlcGVuZGVuY2llcyI6\nIHsKICAgICAgICAiZXhjbHVzaXZlTWF4aW11bSI6IFsgIm1heGltdW0iIF0sCiAgICAgICAgImV4Y2x1\nc2l2ZU1pbmltdW0iOiBbICJtaW5pbXVtIiBdCiAgICB9LAogICAgImRlZmF1bHQiOiB7fQp9Cg==`)}\n"
  },
  {
    "path": "vendor/github.com/google/gnostic-models/jsonschema/display.go",
    "content": "// Copyright 2017 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage jsonschema\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n)\n\n//\n// DISPLAY\n// The following methods display Schemas.\n//\n\n// Description returns a string representation of a string or string array.\nfunc (s *StringOrStringArray) Description() string {\n\tif s.String != nil {\n\t\treturn *s.String\n\t}\n\tif s.StringArray != nil {\n\t\treturn strings.Join(*s.StringArray, \", \")\n\t}\n\treturn \"\"\n}\n\n// Returns a string representation of a Schema.\nfunc (schema *Schema) String() string {\n\treturn schema.describeSchema(\"\")\n}\n\n// Helper: Returns a string representation of a Schema indented by a specified string.\nfunc (schema *Schema) describeSchema(indent string) string {\n\tresult := \"\"\n\tif schema.Schema != nil {\n\t\tresult += indent + \"$schema: \" + *(schema.Schema) + \"\\n\"\n\t}\n\tif schema.ID != nil {\n\t\tresult += indent + \"id: \" + *(schema.ID) + \"\\n\"\n\t}\n\tif schema.MultipleOf != nil {\n\t\tresult += indent + fmt.Sprintf(\"multipleOf: %+v\\n\", *(schema.MultipleOf))\n\t}\n\tif schema.Maximum != nil {\n\t\tresult += indent + fmt.Sprintf(\"maximum: %+v\\n\", *(schema.Maximum))\n\t}\n\tif schema.ExclusiveMaximum != nil {\n\t\tresult += indent + fmt.Sprintf(\"exclusiveMaximum: %+v\\n\", *(schema.ExclusiveMaximum))\n\t}\n\tif schema.Minimum != nil {\n\t\tresult += indent + fmt.Sprintf(\"minimum: %+v\\n\", *(schema.Minimum))\n\t}\n\tif schema.ExclusiveMinimum != nil {\n\t\tresult += indent + fmt.Sprintf(\"exclusiveMinimum: %+v\\n\", *(schema.ExclusiveMinimum))\n\t}\n\tif schema.MaxLength != nil {\n\t\tresult += indent + fmt.Sprintf(\"maxLength: %+v\\n\", *(schema.MaxLength))\n\t}\n\tif schema.MinLength != nil {\n\t\tresult += indent + fmt.Sprintf(\"minLength: %+v\\n\", *(schema.MinLength))\n\t}\n\tif schema.Pattern != nil {\n\t\tresult += indent + fmt.Sprintf(\"pattern: %+v\\n\", *(schema.Pattern))\n\t}\n\tif schema.AdditionalItems != nil {\n\t\ts := schema.AdditionalItems.Schema\n\t\tif s != nil {\n\t\t\tresult += indent + \"additionalItems:\\n\"\n\t\t\tresult += s.describeSchema(indent + \"  \")\n\t\t} else {\n\t\t\tb := *(schema.AdditionalItems.Boolean)\n\t\t\tresult += indent + fmt.Sprintf(\"additionalItems: %+v\\n\", b)\n\t\t}\n\t}\n\tif schema.Items != nil {\n\t\tresult += indent + \"items:\\n\"\n\t\titems := schema.Items\n\t\tif items.SchemaArray != nil {\n\t\t\tfor i, s := range *(items.SchemaArray) {\n\t\t\t\tresult += indent + \"  \" + fmt.Sprintf(\"%d\", i) + \":\\n\"\n\t\t\t\tresult += s.describeSchema(indent + \"  \" + \"  \")\n\t\t\t}\n\t\t} else if items.Schema != nil {\n\t\t\tresult += items.Schema.describeSchema(indent + \"  \" + \"  \")\n\t\t}\n\t}\n\tif schema.MaxItems != nil {\n\t\tresult += indent + fmt.Sprintf(\"maxItems: %+v\\n\", *(schema.MaxItems))\n\t}\n\tif schema.MinItems != nil {\n\t\tresult += indent + fmt.Sprintf(\"minItems: %+v\\n\", *(schema.MinItems))\n\t}\n\tif schema.UniqueItems != nil {\n\t\tresult += indent + fmt.Sprintf(\"uniqueItems: %+v\\n\", *(schema.UniqueItems))\n\t}\n\tif schema.MaxProperties != nil {\n\t\tresult += indent + fmt.Sprintf(\"maxProperties: %+v\\n\", *(schema.MaxProperties))\n\t}\n\tif schema.MinProperties != nil {\n\t\tresult += indent + fmt.Sprintf(\"minProperties: %+v\\n\", *(schema.MinProperties))\n\t}\n\tif schema.Required != nil {\n\t\tresult += indent + fmt.Sprintf(\"required: %+v\\n\", *(schema.Required))\n\t}\n\tif schema.AdditionalProperties != nil {\n\t\ts := schema.AdditionalProperties.Schema\n\t\tif s != nil {\n\t\t\tresult += indent + \"additionalProperties:\\n\"\n\t\t\tresult += s.describeSchema(indent + \"  \")\n\t\t} else {\n\t\t\tb := *(schema.AdditionalProperties.Boolean)\n\t\t\tresult += indent + fmt.Sprintf(\"additionalProperties: %+v\\n\", b)\n\t\t}\n\t}\n\tif schema.Properties != nil {\n\t\tresult += indent + \"properties:\\n\"\n\t\tfor _, pair := range *(schema.Properties) {\n\t\t\tname := pair.Name\n\t\t\ts := pair.Value\n\t\t\tresult += indent + \"  \" + name + \":\\n\"\n\t\t\tresult += s.describeSchema(indent + \"  \" + \"  \")\n\t\t}\n\t}\n\tif schema.PatternProperties != nil {\n\t\tresult += indent + \"patternProperties:\\n\"\n\t\tfor _, pair := range *(schema.PatternProperties) {\n\t\t\tname := pair.Name\n\t\t\ts := pair.Value\n\t\t\tresult += indent + \"  \" + name + \":\\n\"\n\t\t\tresult += s.describeSchema(indent + \"  \" + \"  \")\n\t\t}\n\t}\n\tif schema.Dependencies != nil {\n\t\tresult += indent + \"dependencies:\\n\"\n\t\tfor _, pair := range *(schema.Dependencies) {\n\t\t\tname := pair.Name\n\t\t\tschemaOrStringArray := pair.Value\n\t\t\ts := schemaOrStringArray.Schema\n\t\t\tif s != nil {\n\t\t\t\tresult += indent + \"  \" + name + \":\\n\"\n\t\t\t\tresult += s.describeSchema(indent + \"  \" + \"  \")\n\t\t\t} else {\n\t\t\t\ta := schemaOrStringArray.StringArray\n\t\t\t\tif a != nil {\n\t\t\t\t\tresult += indent + \"  \" + name + \":\\n\"\n\t\t\t\t\tfor _, s2 := range *a {\n\t\t\t\t\t\tresult += indent + \"  \" + \"  \" + s2 + \"\\n\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t}\n\tif schema.Enumeration != nil {\n\t\tresult += indent + \"enumeration:\\n\"\n\t\tfor _, value := range *(schema.Enumeration) {\n\t\t\tif value.String != nil {\n\t\t\t\tresult += indent + \"  \" + fmt.Sprintf(\"%+v\\n\", *value.String)\n\t\t\t} else {\n\t\t\t\tresult += indent + \"  \" + fmt.Sprintf(\"%+v\\n\", *value.Bool)\n\t\t\t}\n\t\t}\n\t}\n\tif schema.Type != nil {\n\t\tresult += indent + fmt.Sprintf(\"type: %+v\\n\", schema.Type.Description())\n\t}\n\tif schema.AllOf != nil {\n\t\tresult += indent + \"allOf:\\n\"\n\t\tfor _, s := range *(schema.AllOf) {\n\t\t\tresult += s.describeSchema(indent + \"  \")\n\t\t\tresult += indent + \"-\\n\"\n\t\t}\n\t}\n\tif schema.AnyOf != nil {\n\t\tresult += indent + \"anyOf:\\n\"\n\t\tfor _, s := range *(schema.AnyOf) {\n\t\t\tresult += s.describeSchema(indent + \"  \")\n\t\t\tresult += indent + \"-\\n\"\n\t\t}\n\t}\n\tif schema.OneOf != nil {\n\t\tresult += indent + \"oneOf:\\n\"\n\t\tfor _, s := range *(schema.OneOf) {\n\t\t\tresult += s.describeSchema(indent + \"  \")\n\t\t\tresult += indent + \"-\\n\"\n\t\t}\n\t}\n\tif schema.Not != nil {\n\t\tresult += indent + \"not:\\n\"\n\t\tresult += schema.Not.describeSchema(indent + \"  \")\n\t}\n\tif schema.Definitions != nil {\n\t\tresult += indent + \"definitions:\\n\"\n\t\tfor _, pair := range *(schema.Definitions) {\n\t\t\tname := pair.Name\n\t\t\ts := pair.Value\n\t\t\tresult += indent + \"  \" + name + \":\\n\"\n\t\t\tresult += s.describeSchema(indent + \"  \" + \"  \")\n\t\t}\n\t}\n\tif schema.Title != nil {\n\t\tresult += indent + \"title: \" + *(schema.Title) + \"\\n\"\n\t}\n\tif schema.Description != nil {\n\t\tresult += indent + \"description: \" + *(schema.Description) + \"\\n\"\n\t}\n\tif schema.Default != nil {\n\t\tresult += indent + \"default:\\n\"\n\t\tresult += indent + fmt.Sprintf(\"  %+v\\n\", *(schema.Default))\n\t}\n\tif schema.Format != nil {\n\t\tresult += indent + \"format: \" + *(schema.Format) + \"\\n\"\n\t}\n\tif schema.Ref != nil {\n\t\tresult += indent + \"$ref: \" + *(schema.Ref) + \"\\n\"\n\t}\n\treturn result\n}\n"
  },
  {
    "path": "vendor/github.com/google/gnostic-models/jsonschema/models.go",
    "content": "// Copyright 2017 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Package jsonschema supports the reading, writing, and manipulation\n// of JSON Schemas.\npackage jsonschema\n\nimport \"gopkg.in/yaml.v3\"\n\n// The Schema struct models a JSON Schema and, because schemas are\n// defined hierarchically, contains many references to itself.\n// All fields are pointers and are nil if the associated values\n// are not specified.\ntype Schema struct {\n\tSchema *string // $schema\n\tID     *string // id keyword used for $ref resolution scope\n\tRef    *string // $ref, i.e. JSON Pointers\n\n\t// http://json-schema.org/latest/json-schema-validation.html\n\t// 5.1.  Validation keywords for numeric instances (number and integer)\n\tMultipleOf       *SchemaNumber\n\tMaximum          *SchemaNumber\n\tExclusiveMaximum *bool\n\tMinimum          *SchemaNumber\n\tExclusiveMinimum *bool\n\n\t// 5.2.  Validation keywords for strings\n\tMaxLength *int64\n\tMinLength *int64\n\tPattern   *string\n\n\t// 5.3.  Validation keywords for arrays\n\tAdditionalItems *SchemaOrBoolean\n\tItems           *SchemaOrSchemaArray\n\tMaxItems        *int64\n\tMinItems        *int64\n\tUniqueItems     *bool\n\n\t// 5.4.  Validation keywords for objects\n\tMaxProperties        *int64\n\tMinProperties        *int64\n\tRequired             *[]string\n\tAdditionalProperties *SchemaOrBoolean\n\tProperties           *[]*NamedSchema\n\tPatternProperties    *[]*NamedSchema\n\tDependencies         *[]*NamedSchemaOrStringArray\n\n\t// 5.5.  Validation keywords for any instance type\n\tEnumeration *[]SchemaEnumValue\n\tType        *StringOrStringArray\n\tAllOf       *[]*Schema\n\tAnyOf       *[]*Schema\n\tOneOf       *[]*Schema\n\tNot         *Schema\n\tDefinitions *[]*NamedSchema\n\n\t// 6.  Metadata keywords\n\tTitle       *string\n\tDescription *string\n\tDefault     *yaml.Node\n\n\t// 7.  Semantic validation with \"format\"\n\tFormat *string\n}\n\n// These helper structs represent \"combination\" types that generally can\n// have values of one type or another. All are used to represent parts\n// of Schemas.\n\n// SchemaNumber represents a value that can be either an Integer or a Float.\ntype SchemaNumber struct {\n\tInteger *int64\n\tFloat   *float64\n}\n\n// NewSchemaNumberWithInteger creates and returns a new object\nfunc NewSchemaNumberWithInteger(i int64) *SchemaNumber {\n\tresult := &SchemaNumber{}\n\tresult.Integer = &i\n\treturn result\n}\n\n// NewSchemaNumberWithFloat creates and returns a new object\nfunc NewSchemaNumberWithFloat(f float64) *SchemaNumber {\n\tresult := &SchemaNumber{}\n\tresult.Float = &f\n\treturn result\n}\n\n// SchemaOrBoolean represents a value that can be either a Schema or a Boolean.\ntype SchemaOrBoolean struct {\n\tSchema  *Schema\n\tBoolean *bool\n}\n\n// NewSchemaOrBooleanWithSchema creates and returns a new object\nfunc NewSchemaOrBooleanWithSchema(s *Schema) *SchemaOrBoolean {\n\tresult := &SchemaOrBoolean{}\n\tresult.Schema = s\n\treturn result\n}\n\n// NewSchemaOrBooleanWithBoolean creates and returns a new object\nfunc NewSchemaOrBooleanWithBoolean(b bool) *SchemaOrBoolean {\n\tresult := &SchemaOrBoolean{}\n\tresult.Boolean = &b\n\treturn result\n}\n\n// StringOrStringArray represents a value that can be either\n// a String or an Array of Strings.\ntype StringOrStringArray struct {\n\tString      *string\n\tStringArray *[]string\n}\n\n// NewStringOrStringArrayWithString creates and returns a new object\nfunc NewStringOrStringArrayWithString(s string) *StringOrStringArray {\n\tresult := &StringOrStringArray{}\n\tresult.String = &s\n\treturn result\n}\n\n// NewStringOrStringArrayWithStringArray creates and returns a new object\nfunc NewStringOrStringArrayWithStringArray(a []string) *StringOrStringArray {\n\tresult := &StringOrStringArray{}\n\tresult.StringArray = &a\n\treturn result\n}\n\n// SchemaOrStringArray represents a value that can be either\n// a Schema or an Array of Strings.\ntype SchemaOrStringArray struct {\n\tSchema      *Schema\n\tStringArray *[]string\n}\n\n// SchemaOrSchemaArray represents a value that can be either\n// a Schema or an Array of Schemas.\ntype SchemaOrSchemaArray struct {\n\tSchema      *Schema\n\tSchemaArray *[]*Schema\n}\n\n// NewSchemaOrSchemaArrayWithSchema creates and returns a new object\nfunc NewSchemaOrSchemaArrayWithSchema(s *Schema) *SchemaOrSchemaArray {\n\tresult := &SchemaOrSchemaArray{}\n\tresult.Schema = s\n\treturn result\n}\n\n// NewSchemaOrSchemaArrayWithSchemaArray creates and returns a new object\nfunc NewSchemaOrSchemaArrayWithSchemaArray(a []*Schema) *SchemaOrSchemaArray {\n\tresult := &SchemaOrSchemaArray{}\n\tresult.SchemaArray = &a\n\treturn result\n}\n\n// SchemaEnumValue represents a value that can be part of an\n// enumeration in a Schema.\ntype SchemaEnumValue struct {\n\tString *string\n\tBool   *bool\n}\n\n// NamedSchema is a name-value pair that is used to emulate maps\n// with ordered keys.\ntype NamedSchema struct {\n\tName  string\n\tValue *Schema\n}\n\n// NewNamedSchema creates and returns a new object\nfunc NewNamedSchema(name string, value *Schema) *NamedSchema {\n\treturn &NamedSchema{Name: name, Value: value}\n}\n\n// NamedSchemaOrStringArray is a name-value pair that is used\n// to emulate maps with ordered keys.\ntype NamedSchemaOrStringArray struct {\n\tName  string\n\tValue *SchemaOrStringArray\n}\n\n// Access named subschemas by name\n\nfunc namedSchemaArrayElementWithName(array *[]*NamedSchema, name string) *Schema {\n\tif array == nil {\n\t\treturn nil\n\t}\n\tfor _, pair := range *array {\n\t\tif pair.Name == name {\n\t\t\treturn pair.Value\n\t\t}\n\t}\n\treturn nil\n}\n\n// PropertyWithName returns the selected element.\nfunc (s *Schema) PropertyWithName(name string) *Schema {\n\treturn namedSchemaArrayElementWithName(s.Properties, name)\n}\n\n// PatternPropertyWithName returns the selected element.\nfunc (s *Schema) PatternPropertyWithName(name string) *Schema {\n\treturn namedSchemaArrayElementWithName(s.PatternProperties, name)\n}\n\n// DefinitionWithName returns the selected element.\nfunc (s *Schema) DefinitionWithName(name string) *Schema {\n\treturn namedSchemaArrayElementWithName(s.Definitions, name)\n}\n\n// AddProperty adds a named property.\nfunc (s *Schema) AddProperty(name string, property *Schema) {\n\t*s.Properties = append(*s.Properties, NewNamedSchema(name, property))\n}\n"
  },
  {
    "path": "vendor/github.com/google/gnostic-models/jsonschema/operations.go",
    "content": "// Copyright 2017 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage jsonschema\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"strings\"\n)\n\n//\n// OPERATIONS\n// The following methods perform operations on Schemas.\n//\n\n// IsEmpty returns true if no members of the Schema are specified.\nfunc (schema *Schema) IsEmpty() bool {\n\treturn (schema.Schema == nil) &&\n\t\t(schema.ID == nil) &&\n\t\t(schema.MultipleOf == nil) &&\n\t\t(schema.Maximum == nil) &&\n\t\t(schema.ExclusiveMaximum == nil) &&\n\t\t(schema.Minimum == nil) &&\n\t\t(schema.ExclusiveMinimum == nil) &&\n\t\t(schema.MaxLength == nil) &&\n\t\t(schema.MinLength == nil) &&\n\t\t(schema.Pattern == nil) &&\n\t\t(schema.AdditionalItems == nil) &&\n\t\t(schema.Items == nil) &&\n\t\t(schema.MaxItems == nil) &&\n\t\t(schema.MinItems == nil) &&\n\t\t(schema.UniqueItems == nil) &&\n\t\t(schema.MaxProperties == nil) &&\n\t\t(schema.MinProperties == nil) &&\n\t\t(schema.Required == nil) &&\n\t\t(schema.AdditionalProperties == nil) &&\n\t\t(schema.Properties == nil) &&\n\t\t(schema.PatternProperties == nil) &&\n\t\t(schema.Dependencies == nil) &&\n\t\t(schema.Enumeration == nil) &&\n\t\t(schema.Type == nil) &&\n\t\t(schema.AllOf == nil) &&\n\t\t(schema.AnyOf == nil) &&\n\t\t(schema.OneOf == nil) &&\n\t\t(schema.Not == nil) &&\n\t\t(schema.Definitions == nil) &&\n\t\t(schema.Title == nil) &&\n\t\t(schema.Description == nil) &&\n\t\t(schema.Default == nil) &&\n\t\t(schema.Format == nil) &&\n\t\t(schema.Ref == nil)\n}\n\n// IsEqual returns true if two schemas are equal.\nfunc (schema *Schema) IsEqual(schema2 *Schema) bool {\n\treturn schema.String() == schema2.String()\n}\n\n// SchemaOperation represents a function that can be applied to a Schema.\ntype SchemaOperation func(schema *Schema, context string)\n\n// Applies a specified function to a Schema and all of the Schemas that it contains.\nfunc (schema *Schema) applyToSchemas(operation SchemaOperation, context string) {\n\n\tif schema.AdditionalItems != nil {\n\t\ts := schema.AdditionalItems.Schema\n\t\tif s != nil {\n\t\t\ts.applyToSchemas(operation, \"AdditionalItems\")\n\t\t}\n\t}\n\n\tif schema.Items != nil {\n\t\tif schema.Items.SchemaArray != nil {\n\t\t\tfor _, s := range *(schema.Items.SchemaArray) {\n\t\t\t\ts.applyToSchemas(operation, \"Items.SchemaArray\")\n\t\t\t}\n\t\t} else if schema.Items.Schema != nil {\n\t\t\tschema.Items.Schema.applyToSchemas(operation, \"Items.Schema\")\n\t\t}\n\t}\n\n\tif schema.AdditionalProperties != nil {\n\t\ts := schema.AdditionalProperties.Schema\n\t\tif s != nil {\n\t\t\ts.applyToSchemas(operation, \"AdditionalProperties\")\n\t\t}\n\t}\n\n\tif schema.Properties != nil {\n\t\tfor _, pair := range *(schema.Properties) {\n\t\t\ts := pair.Value\n\t\t\ts.applyToSchemas(operation, \"Properties\")\n\t\t}\n\t}\n\tif schema.PatternProperties != nil {\n\t\tfor _, pair := range *(schema.PatternProperties) {\n\t\t\ts := pair.Value\n\t\t\ts.applyToSchemas(operation, \"PatternProperties\")\n\t\t}\n\t}\n\n\tif schema.Dependencies != nil {\n\t\tfor _, pair := range *(schema.Dependencies) {\n\t\t\tschemaOrStringArray := pair.Value\n\t\t\ts := schemaOrStringArray.Schema\n\t\t\tif s != nil {\n\t\t\t\ts.applyToSchemas(operation, \"Dependencies\")\n\t\t\t}\n\t\t}\n\t}\n\n\tif schema.AllOf != nil {\n\t\tfor _, s := range *(schema.AllOf) {\n\t\t\ts.applyToSchemas(operation, \"AllOf\")\n\t\t}\n\t}\n\tif schema.AnyOf != nil {\n\t\tfor _, s := range *(schema.AnyOf) {\n\t\t\ts.applyToSchemas(operation, \"AnyOf\")\n\t\t}\n\t}\n\tif schema.OneOf != nil {\n\t\tfor _, s := range *(schema.OneOf) {\n\t\t\ts.applyToSchemas(operation, \"OneOf\")\n\t\t}\n\t}\n\tif schema.Not != nil {\n\t\tschema.Not.applyToSchemas(operation, \"Not\")\n\t}\n\n\tif schema.Definitions != nil {\n\t\tfor _, pair := range *(schema.Definitions) {\n\t\t\ts := pair.Value\n\t\t\ts.applyToSchemas(operation, \"Definitions\")\n\t\t}\n\t}\n\n\toperation(schema, context)\n}\n\n// CopyProperties copies all non-nil properties from the source Schema to the schema Schema.\nfunc (schema *Schema) CopyProperties(source *Schema) {\n\tif source.Schema != nil {\n\t\tschema.Schema = source.Schema\n\t}\n\tif source.ID != nil {\n\t\tschema.ID = source.ID\n\t}\n\tif source.MultipleOf != nil {\n\t\tschema.MultipleOf = source.MultipleOf\n\t}\n\tif source.Maximum != nil {\n\t\tschema.Maximum = source.Maximum\n\t}\n\tif source.ExclusiveMaximum != nil {\n\t\tschema.ExclusiveMaximum = source.ExclusiveMaximum\n\t}\n\tif source.Minimum != nil {\n\t\tschema.Minimum = source.Minimum\n\t}\n\tif source.ExclusiveMinimum != nil {\n\t\tschema.ExclusiveMinimum = source.ExclusiveMinimum\n\t}\n\tif source.MaxLength != nil {\n\t\tschema.MaxLength = source.MaxLength\n\t}\n\tif source.MinLength != nil {\n\t\tschema.MinLength = source.MinLength\n\t}\n\tif source.Pattern != nil {\n\t\tschema.Pattern = source.Pattern\n\t}\n\tif source.AdditionalItems != nil {\n\t\tschema.AdditionalItems = source.AdditionalItems\n\t}\n\tif source.Items != nil {\n\t\tschema.Items = source.Items\n\t}\n\tif source.MaxItems != nil {\n\t\tschema.MaxItems = source.MaxItems\n\t}\n\tif source.MinItems != nil {\n\t\tschema.MinItems = source.MinItems\n\t}\n\tif source.UniqueItems != nil {\n\t\tschema.UniqueItems = source.UniqueItems\n\t}\n\tif source.MaxProperties != nil {\n\t\tschema.MaxProperties = source.MaxProperties\n\t}\n\tif source.MinProperties != nil {\n\t\tschema.MinProperties = source.MinProperties\n\t}\n\tif source.Required != nil {\n\t\tschema.Required = source.Required\n\t}\n\tif source.AdditionalProperties != nil {\n\t\tschema.AdditionalProperties = source.AdditionalProperties\n\t}\n\tif source.Properties != nil {\n\t\tschema.Properties = source.Properties\n\t}\n\tif source.PatternProperties != nil {\n\t\tschema.PatternProperties = source.PatternProperties\n\t}\n\tif source.Dependencies != nil {\n\t\tschema.Dependencies = source.Dependencies\n\t}\n\tif source.Enumeration != nil {\n\t\tschema.Enumeration = source.Enumeration\n\t}\n\tif source.Type != nil {\n\t\tschema.Type = source.Type\n\t}\n\tif source.AllOf != nil {\n\t\tschema.AllOf = source.AllOf\n\t}\n\tif source.AnyOf != nil {\n\t\tschema.AnyOf = source.AnyOf\n\t}\n\tif source.OneOf != nil {\n\t\tschema.OneOf = source.OneOf\n\t}\n\tif source.Not != nil {\n\t\tschema.Not = source.Not\n\t}\n\tif source.Definitions != nil {\n\t\tschema.Definitions = source.Definitions\n\t}\n\tif source.Title != nil {\n\t\tschema.Title = source.Title\n\t}\n\tif source.Description != nil {\n\t\tschema.Description = source.Description\n\t}\n\tif source.Default != nil {\n\t\tschema.Default = source.Default\n\t}\n\tif source.Format != nil {\n\t\tschema.Format = source.Format\n\t}\n\tif source.Ref != nil {\n\t\tschema.Ref = source.Ref\n\t}\n}\n\n// TypeIs returns true if the Type of a Schema includes the specified type\nfunc (schema *Schema) TypeIs(typeName string) bool {\n\tif schema.Type != nil {\n\t\t// the schema Type is either a string or an array of strings\n\t\tif schema.Type.String != nil {\n\t\t\treturn (*(schema.Type.String) == typeName)\n\t\t} else if schema.Type.StringArray != nil {\n\t\t\tfor _, n := range *(schema.Type.StringArray) {\n\t\t\t\tif n == typeName {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false\n}\n\n// ResolveRefs resolves \"$ref\" elements in a Schema and its children.\n// But if a reference refers to an object type, is inside a oneOf, or contains a oneOf,\n// the reference is kept and we expect downstream tools to separately model these\n// referenced schemas.\nfunc (schema *Schema) ResolveRefs() {\n\trootSchema := schema\n\tcount := 1\n\tfor count > 0 {\n\t\tcount = 0\n\t\tschema.applyToSchemas(\n\t\t\tfunc(schema *Schema, context string) {\n\t\t\t\tif schema.Ref != nil {\n\t\t\t\t\tresolvedRef, err := rootSchema.resolveJSONPointer(*(schema.Ref))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\tlog.Printf(\"%+v\", err)\n\t\t\t\t\t} else if resolvedRef.TypeIs(\"object\") {\n\t\t\t\t\t\t// don't substitute for objects, we'll model the referenced schema with a class\n\t\t\t\t\t} else if context == \"OneOf\" {\n\t\t\t\t\t\t// don't substitute for references inside oneOf declarations\n\t\t\t\t\t} else if resolvedRef.OneOf != nil {\n\t\t\t\t\t\t// don't substitute for references that contain oneOf declarations\n\t\t\t\t\t} else if resolvedRef.AdditionalProperties != nil {\n\t\t\t\t\t\t// don't substitute for references that look like objects\n\t\t\t\t\t} else {\n\t\t\t\t\t\tschema.Ref = nil\n\t\t\t\t\t\tschema.CopyProperties(resolvedRef)\n\t\t\t\t\t\tcount++\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, \"\")\n\t}\n}\n\n// resolveJSONPointer resolves JSON pointers.\n// This current implementation is very crude and custom for OpenAPI 2.0 schemas.\n// It panics for any pointer that it is unable to resolve.\nfunc (schema *Schema) resolveJSONPointer(ref string) (result *Schema, err error) {\n\tparts := strings.Split(ref, \"#\")\n\tif len(parts) == 2 {\n\t\tdocumentName := parts[0] + \"#\"\n\t\tif documentName == \"#\" && schema.ID != nil {\n\t\t\tdocumentName = *(schema.ID)\n\t\t}\n\t\tpath := parts[1]\n\t\tdocument := schemas[documentName]\n\t\tpathParts := strings.Split(path, \"/\")\n\n\t\t// we currently do a very limited (hard-coded) resolution of certain paths and log errors for missed cases\n\t\tif len(pathParts) == 1 {\n\t\t\treturn document, nil\n\t\t} else if len(pathParts) == 3 {\n\t\t\tswitch pathParts[1] {\n\t\t\tcase \"definitions\":\n\t\t\t\tdictionary := document.Definitions\n\t\t\t\tfor _, pair := range *dictionary {\n\t\t\t\t\tif pair.Name == pathParts[2] {\n\t\t\t\t\t\tresult = pair.Value\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tcase \"properties\":\n\t\t\t\tdictionary := document.Properties\n\t\t\t\tfor _, pair := range *dictionary {\n\t\t\t\t\tif pair.Name == pathParts[2] {\n\t\t\t\t\t\tresult = pair.Value\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\tif result == nil {\n\t\treturn nil, fmt.Errorf(\"unresolved pointer: %+v\", ref)\n\t}\n\treturn result, nil\n}\n\n// ResolveAllOfs replaces \"allOf\" elements by merging their properties into the parent Schema.\nfunc (schema *Schema) ResolveAllOfs() {\n\tschema.applyToSchemas(\n\t\tfunc(schema *Schema, context string) {\n\t\t\tif schema.AllOf != nil {\n\t\t\t\tfor _, allOf := range *(schema.AllOf) {\n\t\t\t\t\tschema.CopyProperties(allOf)\n\t\t\t\t}\n\t\t\t\tschema.AllOf = nil\n\t\t\t}\n\t\t}, \"resolveAllOfs\")\n}\n\n// ResolveAnyOfs replaces all \"anyOf\" elements with \"oneOf\".\nfunc (schema *Schema) ResolveAnyOfs() {\n\tschema.applyToSchemas(\n\t\tfunc(schema *Schema, context string) {\n\t\t\tif schema.AnyOf != nil {\n\t\t\t\tschema.OneOf = schema.AnyOf\n\t\t\t\tschema.AnyOf = nil\n\t\t\t}\n\t\t}, \"resolveAnyOfs\")\n}\n\n// return a pointer to a copy of a passed-in string\nfunc stringptr(input string) (output *string) {\n\treturn &input\n}\n\n// CopyOfficialSchemaProperty copies a named property from the official JSON Schema definition\nfunc (schema *Schema) CopyOfficialSchemaProperty(name string) {\n\t*schema.Properties = append(*schema.Properties,\n\t\tNewNamedSchema(name,\n\t\t\t&Schema{Ref: stringptr(\"http://json-schema.org/draft-04/schema#/properties/\" + name)}))\n}\n\n// CopyOfficialSchemaProperties copies named properties from the official JSON Schema definition\nfunc (schema *Schema) CopyOfficialSchemaProperties(names []string) {\n\tfor _, name := range names {\n\t\tschema.CopyOfficialSchemaProperty(name)\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/google/gnostic-models/jsonschema/reader.go",
    "content": "// Copyright 2017 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:generate go run generate-base.go\n\npackage jsonschema\n\nimport (\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"strconv\"\n\n\t\"gopkg.in/yaml.v3\"\n)\n\n// This is a global map of all known Schemas.\n// It is initialized when the first Schema is created and inserted.\nvar schemas map[string]*Schema\n\n// NewBaseSchema builds a schema object from an embedded json representation.\nfunc NewBaseSchema() (schema *Schema, err error) {\n\tb, err := baseSchemaBytes()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tvar node yaml.Node\n\terr = yaml.Unmarshal(b, &node)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewSchemaFromObject(&node), nil\n}\n\n// NewSchemaFromFile reads a schema from a file.\n// Currently this assumes that schemas are stored in the source distribution of this project.\nfunc NewSchemaFromFile(filename string) (schema *Schema, err error) {\n\tfile, err := ioutil.ReadFile(filename)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tvar node yaml.Node\n\terr = yaml.Unmarshal(file, &node)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewSchemaFromObject(&node), nil\n}\n\n// NewSchemaFromObject constructs a schema from a parsed JSON object.\n// Due to the complexity of the schema representation, this is a\n// custom reader and not the standard Go JSON reader (encoding/json).\nfunc NewSchemaFromObject(jsonData *yaml.Node) *Schema {\n\tswitch jsonData.Kind {\n\tcase yaml.DocumentNode:\n\t\treturn NewSchemaFromObject(jsonData.Content[0])\n\tcase yaml.MappingNode:\n\t\tschema := &Schema{}\n\n\t\tfor i := 0; i < len(jsonData.Content); i += 2 {\n\t\t\tk := jsonData.Content[i].Value\n\t\t\tv := jsonData.Content[i+1]\n\n\t\t\tswitch k {\n\t\t\tcase \"$schema\":\n\t\t\t\tschema.Schema = schema.stringValue(v)\n\t\t\tcase \"id\":\n\t\t\t\tschema.ID = schema.stringValue(v)\n\n\t\t\tcase \"multipleOf\":\n\t\t\t\tschema.MultipleOf = schema.numberValue(v)\n\t\t\tcase \"maximum\":\n\t\t\t\tschema.Maximum = schema.numberValue(v)\n\t\t\tcase \"exclusiveMaximum\":\n\t\t\t\tschema.ExclusiveMaximum = schema.boolValue(v)\n\t\t\tcase \"minimum\":\n\t\t\t\tschema.Minimum = schema.numberValue(v)\n\t\t\tcase \"exclusiveMinimum\":\n\t\t\t\tschema.ExclusiveMinimum = schema.boolValue(v)\n\n\t\t\tcase \"maxLength\":\n\t\t\t\tschema.MaxLength = schema.intValue(v)\n\t\t\tcase \"minLength\":\n\t\t\t\tschema.MinLength = schema.intValue(v)\n\t\t\tcase \"pattern\":\n\t\t\t\tschema.Pattern = schema.stringValue(v)\n\n\t\t\tcase \"additionalItems\":\n\t\t\t\tschema.AdditionalItems = schema.schemaOrBooleanValue(v)\n\t\t\tcase \"items\":\n\t\t\t\tschema.Items = schema.schemaOrSchemaArrayValue(v)\n\t\t\tcase \"maxItems\":\n\t\t\t\tschema.MaxItems = schema.intValue(v)\n\t\t\tcase \"minItems\":\n\t\t\t\tschema.MinItems = schema.intValue(v)\n\t\t\tcase \"uniqueItems\":\n\t\t\t\tschema.UniqueItems = schema.boolValue(v)\n\n\t\t\tcase \"maxProperties\":\n\t\t\t\tschema.MaxProperties = schema.intValue(v)\n\t\t\tcase \"minProperties\":\n\t\t\t\tschema.MinProperties = schema.intValue(v)\n\t\t\tcase \"required\":\n\t\t\t\tschema.Required = schema.arrayOfStringsValue(v)\n\t\t\tcase \"additionalProperties\":\n\t\t\t\tschema.AdditionalProperties = schema.schemaOrBooleanValue(v)\n\t\t\tcase \"properties\":\n\t\t\t\tschema.Properties = schema.mapOfSchemasValue(v)\n\t\t\tcase \"patternProperties\":\n\t\t\t\tschema.PatternProperties = schema.mapOfSchemasValue(v)\n\t\t\tcase \"dependencies\":\n\t\t\t\tschema.Dependencies = schema.mapOfSchemasOrStringArraysValue(v)\n\n\t\t\tcase \"enum\":\n\t\t\t\tschema.Enumeration = schema.arrayOfEnumValuesValue(v)\n\n\t\t\tcase \"type\":\n\t\t\t\tschema.Type = schema.stringOrStringArrayValue(v)\n\t\t\tcase \"allOf\":\n\t\t\t\tschema.AllOf = schema.arrayOfSchemasValue(v)\n\t\t\tcase \"anyOf\":\n\t\t\t\tschema.AnyOf = schema.arrayOfSchemasValue(v)\n\t\t\tcase \"oneOf\":\n\t\t\t\tschema.OneOf = schema.arrayOfSchemasValue(v)\n\t\t\tcase \"not\":\n\t\t\t\tschema.Not = NewSchemaFromObject(v)\n\t\t\tcase \"definitions\":\n\t\t\t\tschema.Definitions = schema.mapOfSchemasValue(v)\n\n\t\t\tcase \"title\":\n\t\t\t\tschema.Title = schema.stringValue(v)\n\t\t\tcase \"description\":\n\t\t\t\tschema.Description = schema.stringValue(v)\n\n\t\t\tcase \"default\":\n\t\t\t\tschema.Default = v\n\n\t\t\tcase \"format\":\n\t\t\t\tschema.Format = schema.stringValue(v)\n\t\t\tcase \"$ref\":\n\t\t\t\tschema.Ref = schema.stringValue(v)\n\t\t\tdefault:\n\t\t\t\tfmt.Printf(\"UNSUPPORTED (%s)\\n\", k)\n\t\t\t}\n\t\t}\n\n\t\t// insert schema in global map\n\t\tif schema.ID != nil {\n\t\t\tif schemas == nil {\n\t\t\t\tschemas = make(map[string]*Schema, 0)\n\t\t\t}\n\t\t\tschemas[*(schema.ID)] = schema\n\t\t}\n\t\treturn schema\n\n\tdefault:\n\t\tfmt.Printf(\"schemaValue: unexpected node %+v\\n\", jsonData)\n\t\treturn nil\n\t}\n\n\treturn nil\n}\n\n//\n// BUILDERS\n// The following methods build elements of Schemas from interface{} values.\n// Each returns nil if it is unable to build the desired element.\n//\n\n// Gets the string value of an interface{} value if possible.\nfunc (schema *Schema) stringValue(v *yaml.Node) *string {\n\tswitch v.Kind {\n\tcase yaml.ScalarNode:\n\t\treturn &v.Value\n\tdefault:\n\t\tfmt.Printf(\"stringValue: unexpected node %+v\\n\", v)\n\t}\n\treturn nil\n}\n\n// Gets the numeric value of an interface{} value if possible.\nfunc (schema *Schema) numberValue(v *yaml.Node) *SchemaNumber {\n\tnumber := &SchemaNumber{}\n\tswitch v.Kind {\n\tcase yaml.ScalarNode:\n\t\tswitch v.Tag {\n\t\tcase \"!!float\":\n\t\t\tv2, _ := strconv.ParseFloat(v.Value, 64)\n\t\t\tnumber.Float = &v2\n\t\t\treturn number\n\t\tcase \"!!int\":\n\t\t\tv2, _ := strconv.ParseInt(v.Value, 10, 64)\n\t\t\tnumber.Integer = &v2\n\t\t\treturn number\n\t\tdefault:\n\t\t\tfmt.Printf(\"stringValue: unexpected node %+v\\n\", v)\n\t\t}\n\tdefault:\n\t\tfmt.Printf(\"stringValue: unexpected node %+v\\n\", v)\n\t}\n\treturn nil\n}\n\n// Gets the integer value of an interface{} value if possible.\nfunc (schema *Schema) intValue(v *yaml.Node) *int64 {\n\tswitch v.Kind {\n\tcase yaml.ScalarNode:\n\t\tswitch v.Tag {\n\t\tcase \"!!float\":\n\t\t\tv2, _ := strconv.ParseFloat(v.Value, 64)\n\t\t\tv3 := int64(v2)\n\t\t\treturn &v3\n\t\tcase \"!!int\":\n\t\t\tv2, _ := strconv.ParseInt(v.Value, 10, 64)\n\t\t\treturn &v2\n\t\tdefault:\n\t\t\tfmt.Printf(\"intValue: unexpected node %+v\\n\", v)\n\t\t}\n\tdefault:\n\t\tfmt.Printf(\"intValue: unexpected node %+v\\n\", v)\n\t}\n\treturn nil\n}\n\n// Gets the bool value of an interface{} value if possible.\nfunc (schema *Schema) boolValue(v *yaml.Node) *bool {\n\tswitch v.Kind {\n\tcase yaml.ScalarNode:\n\t\tswitch v.Tag {\n\t\tcase \"!!bool\":\n\t\t\tv2, _ := strconv.ParseBool(v.Value)\n\t\t\treturn &v2\n\t\tdefault:\n\t\t\tfmt.Printf(\"boolValue: unexpected node %+v\\n\", v)\n\t\t}\n\tdefault:\n\t\tfmt.Printf(\"boolValue: unexpected node %+v\\n\", v)\n\t}\n\treturn nil\n}\n\n// Gets a map of Schemas from an interface{} value if possible.\nfunc (schema *Schema) mapOfSchemasValue(v *yaml.Node) *[]*NamedSchema {\n\tswitch v.Kind {\n\tcase yaml.MappingNode:\n\t\tm := make([]*NamedSchema, 0)\n\t\tfor i := 0; i < len(v.Content); i += 2 {\n\t\t\tk2 := v.Content[i].Value\n\t\t\tv2 := v.Content[i+1]\n\t\t\tpair := &NamedSchema{Name: k2, Value: NewSchemaFromObject(v2)}\n\t\t\tm = append(m, pair)\n\t\t}\n\t\treturn &m\n\tdefault:\n\t\tfmt.Printf(\"mapOfSchemasValue: unexpected node %+v\\n\", v)\n\t}\n\treturn nil\n}\n\n// Gets an array of Schemas from an interface{} value if possible.\nfunc (schema *Schema) arrayOfSchemasValue(v *yaml.Node) *[]*Schema {\n\tswitch v.Kind {\n\tcase yaml.SequenceNode:\n\t\tm := make([]*Schema, 0)\n\t\tfor _, v2 := range v.Content {\n\t\t\tswitch v2.Kind {\n\t\t\tcase yaml.MappingNode:\n\t\t\t\ts := NewSchemaFromObject(v2)\n\t\t\t\tm = append(m, s)\n\t\t\tdefault:\n\t\t\t\tfmt.Printf(\"arrayOfSchemasValue: unexpected node %+v\\n\", v2)\n\t\t\t}\n\t\t}\n\t\treturn &m\n\tcase yaml.MappingNode:\n\t\tm := make([]*Schema, 0)\n\t\ts := NewSchemaFromObject(v)\n\t\tm = append(m, s)\n\t\treturn &m\n\tdefault:\n\t\tfmt.Printf(\"arrayOfSchemasValue: unexpected node %+v\\n\", v)\n\t}\n\treturn nil\n}\n\n// Gets a Schema or an array of Schemas from an interface{} value if possible.\nfunc (schema *Schema) schemaOrSchemaArrayValue(v *yaml.Node) *SchemaOrSchemaArray {\n\tswitch v.Kind {\n\tcase yaml.SequenceNode:\n\t\tm := make([]*Schema, 0)\n\t\tfor _, v2 := range v.Content {\n\t\t\tswitch v2.Kind {\n\t\t\tcase yaml.MappingNode:\n\t\t\t\ts := NewSchemaFromObject(v2)\n\t\t\t\tm = append(m, s)\n\t\t\tdefault:\n\t\t\t\tfmt.Printf(\"schemaOrSchemaArrayValue: unexpected node %+v\\n\", v2)\n\t\t\t}\n\t\t}\n\t\treturn &SchemaOrSchemaArray{SchemaArray: &m}\n\tcase yaml.MappingNode:\n\t\ts := NewSchemaFromObject(v)\n\t\treturn &SchemaOrSchemaArray{Schema: s}\n\tdefault:\n\t\tfmt.Printf(\"schemaOrSchemaArrayValue: unexpected node %+v\\n\", v)\n\t}\n\treturn nil\n}\n\n// Gets an array of strings from an interface{} value if possible.\nfunc (schema *Schema) arrayOfStringsValue(v *yaml.Node) *[]string {\n\tswitch v.Kind {\n\tcase yaml.ScalarNode:\n\t\ta := []string{v.Value}\n\t\treturn &a\n\tcase yaml.SequenceNode:\n\t\ta := make([]string, 0)\n\t\tfor _, v2 := range v.Content {\n\t\t\tswitch v2.Kind {\n\t\t\tcase yaml.ScalarNode:\n\t\t\t\ta = append(a, v2.Value)\n\t\t\tdefault:\n\t\t\t\tfmt.Printf(\"arrayOfStringsValue: unexpected node %+v\\n\", v2)\n\t\t\t}\n\t\t}\n\t\treturn &a\n\tdefault:\n\t\tfmt.Printf(\"arrayOfStringsValue: unexpected node %+v\\n\", v)\n\t}\n\treturn nil\n}\n\n// Gets a string or an array of strings from an interface{} value if possible.\nfunc (schema *Schema) stringOrStringArrayValue(v *yaml.Node) *StringOrStringArray {\n\tswitch v.Kind {\n\tcase yaml.ScalarNode:\n\t\ts := &StringOrStringArray{}\n\t\ts.String = &v.Value\n\t\treturn s\n\tcase yaml.SequenceNode:\n\t\ta := make([]string, 0)\n\t\tfor _, v2 := range v.Content {\n\t\t\tswitch v2.Kind {\n\t\t\tcase yaml.ScalarNode:\n\t\t\t\ta = append(a, v2.Value)\n\t\t\tdefault:\n\t\t\t\tfmt.Printf(\"arrayOfStringsValue: unexpected node %+v\\n\", v2)\n\t\t\t}\n\t\t}\n\t\ts := &StringOrStringArray{}\n\t\ts.StringArray = &a\n\t\treturn s\n\tdefault:\n\t\tfmt.Printf(\"arrayOfStringsValue: unexpected node %+v\\n\", v)\n\t}\n\treturn nil\n}\n\n// Gets an array of enum values from an interface{} value if possible.\nfunc (schema *Schema) arrayOfEnumValuesValue(v *yaml.Node) *[]SchemaEnumValue {\n\ta := make([]SchemaEnumValue, 0)\n\tswitch v.Kind {\n\tcase yaml.SequenceNode:\n\t\tfor _, v2 := range v.Content {\n\t\t\tswitch v2.Kind {\n\t\t\tcase yaml.ScalarNode:\n\t\t\t\tswitch v2.Tag {\n\t\t\t\tcase \"!!str\":\n\t\t\t\t\ta = append(a, SchemaEnumValue{String: &v2.Value})\n\t\t\t\tcase \"!!bool\":\n\t\t\t\t\tv3, _ := strconv.ParseBool(v2.Value)\n\t\t\t\t\ta = append(a, SchemaEnumValue{Bool: &v3})\n\t\t\t\tdefault:\n\t\t\t\t\tfmt.Printf(\"arrayOfEnumValuesValue: unexpected type %s\\n\", v2.Tag)\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\tfmt.Printf(\"arrayOfEnumValuesValue: unexpected node %+v\\n\", v2)\n\t\t\t}\n\t\t}\n\tdefault:\n\t\tfmt.Printf(\"arrayOfEnumValuesValue: unexpected node %+v\\n\", v)\n\t}\n\treturn &a\n}\n\n// Gets a map of schemas or string arrays from an interface{} value if possible.\nfunc (schema *Schema) mapOfSchemasOrStringArraysValue(v *yaml.Node) *[]*NamedSchemaOrStringArray {\n\tm := make([]*NamedSchemaOrStringArray, 0)\n\tswitch v.Kind {\n\tcase yaml.MappingNode:\n\t\tfor i := 0; i < len(v.Content); i += 2 {\n\t\t\tk2 := v.Content[i].Value\n\t\t\tv2 := v.Content[i+1]\n\t\t\tswitch v2.Kind {\n\t\t\tcase yaml.SequenceNode:\n\t\t\t\ta := make([]string, 0)\n\t\t\t\tfor _, v3 := range v2.Content {\n\t\t\t\t\tswitch v3.Kind {\n\t\t\t\t\tcase yaml.ScalarNode:\n\t\t\t\t\t\ta = append(a, v3.Value)\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tfmt.Printf(\"mapOfSchemasOrStringArraysValue: unexpected node %+v\\n\", v3)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ts := &SchemaOrStringArray{}\n\t\t\t\ts.StringArray = &a\n\t\t\t\tpair := &NamedSchemaOrStringArray{Name: k2, Value: s}\n\t\t\t\tm = append(m, pair)\n\t\t\tdefault:\n\t\t\t\tfmt.Printf(\"mapOfSchemasOrStringArraysValue: unexpected node %+v\\n\", v2)\n\t\t\t}\n\t\t}\n\tdefault:\n\t\tfmt.Printf(\"mapOfSchemasOrStringArraysValue: unexpected node %+v\\n\", v)\n\t}\n\treturn &m\n}\n\n// Gets a schema or a boolean value from an interface{} value if possible.\nfunc (schema *Schema) schemaOrBooleanValue(v *yaml.Node) *SchemaOrBoolean {\n\tschemaOrBoolean := &SchemaOrBoolean{}\n\tswitch v.Kind {\n\tcase yaml.ScalarNode:\n\t\tv2, _ := strconv.ParseBool(v.Value)\n\t\tschemaOrBoolean.Boolean = &v2\n\tcase yaml.MappingNode:\n\t\tschemaOrBoolean.Schema = NewSchemaFromObject(v)\n\tdefault:\n\t\tfmt.Printf(\"schemaOrBooleanValue: unexpected node %+v\\n\", v)\n\t}\n\treturn schemaOrBoolean\n}\n"
  },
  {
    "path": "vendor/github.com/google/gnostic-models/jsonschema/schema.json",
    "content": "{\n    \"id\": \"http://json-schema.org/draft-04/schema#\",\n    \"$schema\": \"http://json-schema.org/draft-04/schema#\",\n    \"description\": \"Core schema meta-schema\",\n    \"definitions\": {\n        \"schemaArray\": {\n            \"type\": \"array\",\n            \"minItems\": 1,\n            \"items\": { \"$ref\": \"#\" }\n        },\n        \"positiveInteger\": {\n            \"type\": \"integer\",\n            \"minimum\": 0\n        },\n        \"positiveIntegerDefault0\": {\n            \"allOf\": [ { \"$ref\": \"#/definitions/positiveInteger\" }, { \"default\": 0 } ]\n        },\n        \"simpleTypes\": {\n            \"enum\": [ \"array\", \"boolean\", \"integer\", \"null\", \"number\", \"object\", \"string\" ]\n        },\n        \"stringArray\": {\n            \"type\": \"array\",\n            \"items\": { \"type\": \"string\" },\n            \"minItems\": 1,\n            \"uniqueItems\": true\n        }\n    },\n    \"type\": \"object\",\n    \"properties\": {\n        \"id\": {\n            \"type\": \"string\",\n            \"format\": \"uri\"\n        },\n        \"$schema\": {\n            \"type\": \"string\",\n            \"format\": \"uri\"\n        },\n        \"title\": {\n            \"type\": \"string\"\n        },\n        \"description\": {\n            \"type\": \"string\"\n        },\n        \"default\": {},\n        \"multipleOf\": {\n            \"type\": \"number\",\n            \"minimum\": 0,\n            \"exclusiveMinimum\": true\n        },\n        \"maximum\": {\n            \"type\": \"number\"\n        },\n        \"exclusiveMaximum\": {\n            \"type\": \"boolean\",\n            \"default\": false\n        },\n        \"minimum\": {\n            \"type\": \"number\"\n        },\n        \"exclusiveMinimum\": {\n            \"type\": \"boolean\",\n            \"default\": false\n        },\n        \"maxLength\": { \"$ref\": \"#/definitions/positiveInteger\" },\n        \"minLength\": { \"$ref\": \"#/definitions/positiveIntegerDefault0\" },\n        \"pattern\": {\n            \"type\": \"string\",\n            \"format\": \"regex\"\n        },\n        \"additionalItems\": {\n            \"anyOf\": [\n                { \"type\": \"boolean\" },\n                { \"$ref\": \"#\" }\n            ],\n            \"default\": {}\n        },\n        \"items\": {\n            \"anyOf\": [\n                { \"$ref\": \"#\" },\n                { \"$ref\": \"#/definitions/schemaArray\" }\n            ],\n            \"default\": {}\n        },\n        \"maxItems\": { \"$ref\": \"#/definitions/positiveInteger\" },\n        \"minItems\": { \"$ref\": \"#/definitions/positiveIntegerDefault0\" },\n        \"uniqueItems\": {\n            \"type\": \"boolean\",\n            \"default\": false\n        },\n        \"maxProperties\": { \"$ref\": \"#/definitions/positiveInteger\" },\n        \"minProperties\": { \"$ref\": \"#/definitions/positiveIntegerDefault0\" },\n        \"required\": { \"$ref\": \"#/definitions/stringArray\" },\n        \"additionalProperties\": {\n            \"anyOf\": [\n                { \"type\": \"boolean\" },\n                { \"$ref\": \"#\" }\n            ],\n            \"default\": {}\n        },\n        \"definitions\": {\n            \"type\": \"object\",\n            \"additionalProperties\": { \"$ref\": \"#\" },\n            \"default\": {}\n        },\n        \"properties\": {\n            \"type\": \"object\",\n            \"additionalProperties\": { \"$ref\": \"#\" },\n            \"default\": {}\n        },\n        \"patternProperties\": {\n            \"type\": \"object\",\n            \"additionalProperties\": { \"$ref\": \"#\" },\n            \"default\": {}\n        },\n        \"dependencies\": {\n            \"type\": \"object\",\n            \"additionalProperties\": {\n                \"anyOf\": [\n                    { \"$ref\": \"#\" },\n                    { \"$ref\": \"#/definitions/stringArray\" }\n                ]\n            }\n        },\n        \"enum\": {\n            \"type\": \"array\",\n            \"minItems\": 1,\n            \"uniqueItems\": true\n        },\n        \"type\": {\n            \"anyOf\": [\n                { \"$ref\": \"#/definitions/simpleTypes\" },\n                {\n                    \"type\": \"array\",\n                    \"items\": { \"$ref\": \"#/definitions/simpleTypes\" },\n                    \"minItems\": 1,\n                    \"uniqueItems\": true\n                }\n            ]\n        },\n        \"allOf\": { \"$ref\": \"#/definitions/schemaArray\" },\n        \"anyOf\": { \"$ref\": \"#/definitions/schemaArray\" },\n        \"oneOf\": { \"$ref\": \"#/definitions/schemaArray\" },\n        \"not\": { \"$ref\": \"#\" }\n    },\n    \"dependencies\": {\n        \"exclusiveMaximum\": [ \"maximum\" ],\n        \"exclusiveMinimum\": [ \"minimum\" ]\n    },\n    \"default\": {}\n}\n"
  },
  {
    "path": "vendor/github.com/google/gnostic-models/jsonschema/writer.go",
    "content": "// Copyright 2017 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage jsonschema\n\nimport (\n\t\"fmt\"\n\n\t\"gopkg.in/yaml.v3\"\n)\n\nconst indentation = \"  \"\n\nfunc renderMappingNode(node *yaml.Node, indent string) (result string) {\n\tresult = \"{\\n\"\n\tinnerIndent := indent + indentation\n\tfor i := 0; i < len(node.Content); i += 2 {\n\t\t// first print the key\n\t\tkey := node.Content[i].Value\n\t\tresult += fmt.Sprintf(\"%s\\\"%+v\\\": \", innerIndent, key)\n\t\t// then the value\n\t\tvalue := node.Content[i+1]\n\t\tswitch value.Kind {\n\t\tcase yaml.ScalarNode:\n\t\t\tresult += \"\\\"\" + value.Value + \"\\\"\"\n\t\tcase yaml.MappingNode:\n\t\t\tresult += renderMappingNode(value, innerIndent)\n\t\tcase yaml.SequenceNode:\n\t\t\tresult += renderSequenceNode(value, innerIndent)\n\t\tdefault:\n\t\t\tresult += fmt.Sprintf(\"???MapItem(Key:%+v, Value:%T)\", value, value)\n\t\t}\n\t\tif i < len(node.Content)-2 {\n\t\t\tresult += \",\"\n\t\t}\n\t\tresult += \"\\n\"\n\t}\n\n\tresult += indent + \"}\"\n\treturn result\n}\n\nfunc renderSequenceNode(node *yaml.Node, indent string) (result string) {\n\tresult = \"[\\n\"\n\tinnerIndent := indent + indentation\n\tfor i := 0; i < len(node.Content); i++ {\n\t\titem := node.Content[i]\n\t\tswitch item.Kind {\n\t\tcase yaml.ScalarNode:\n\t\t\tresult += innerIndent + \"\\\"\" + item.Value + \"\\\"\"\n\t\tcase yaml.MappingNode:\n\t\t\tresult += innerIndent + renderMappingNode(item, innerIndent) + \"\"\n\t\tdefault:\n\t\t\tresult += innerIndent + fmt.Sprintf(\"???ArrayItem(%+v)\", item)\n\t\t}\n\t\tif i < len(node.Content)-1 {\n\t\t\tresult += \",\"\n\t\t}\n\t\tresult += \"\\n\"\n\t}\n\tresult += indent + \"]\"\n\treturn result\n}\n\nfunc renderStringArray(array []string, indent string) (result string) {\n\tresult = \"[\\n\"\n\tinnerIndent := indent + indentation\n\tfor i, item := range array {\n\t\tresult += innerIndent + \"\\\"\" + item + \"\\\"\"\n\t\tif i < len(array)-1 {\n\t\t\tresult += \",\"\n\t\t}\n\t\tresult += \"\\n\"\n\t}\n\tresult += indent + \"]\"\n\treturn result\n}\n\n// Render renders a yaml.Node as JSON\nfunc Render(node *yaml.Node) string {\n\tif node.Kind == yaml.DocumentNode {\n\t\tif len(node.Content) == 1 {\n\t\t\treturn Render(node.Content[0])\n\t\t}\n\t} else if node.Kind == yaml.MappingNode {\n\t\treturn renderMappingNode(node, \"\") + \"\\n\"\n\t} else if node.Kind == yaml.SequenceNode {\n\t\treturn renderSequenceNode(node, \"\") + \"\\n\"\n\t}\n\treturn \"\"\n}\n\nfunc (object *SchemaNumber) nodeValue() *yaml.Node {\n\tif object.Integer != nil {\n\t\treturn nodeForInt64(*object.Integer)\n\t} else if object.Float != nil {\n\t\treturn nodeForFloat64(*object.Float)\n\t} else {\n\t\treturn nil\n\t}\n}\n\nfunc (object *SchemaOrBoolean) nodeValue() *yaml.Node {\n\tif object.Schema != nil {\n\t\treturn object.Schema.nodeValue()\n\t} else if object.Boolean != nil {\n\t\treturn nodeForBoolean(*object.Boolean)\n\t} else {\n\t\treturn nil\n\t}\n}\n\nfunc nodeForStringArray(array []string) *yaml.Node {\n\tcontent := make([]*yaml.Node, 0)\n\tfor _, item := range array {\n\t\tcontent = append(content, nodeForString(item))\n\t}\n\treturn nodeForSequence(content)\n}\n\nfunc nodeForSchemaArray(array []*Schema) *yaml.Node {\n\tcontent := make([]*yaml.Node, 0)\n\tfor _, item := range array {\n\t\tcontent = append(content, item.nodeValue())\n\t}\n\treturn nodeForSequence(content)\n}\n\nfunc (object *StringOrStringArray) nodeValue() *yaml.Node {\n\tif object.String != nil {\n\t\treturn nodeForString(*object.String)\n\t} else if object.StringArray != nil {\n\t\treturn nodeForStringArray(*(object.StringArray))\n\t} else {\n\t\treturn nil\n\t}\n}\n\nfunc (object *SchemaOrStringArray) nodeValue() *yaml.Node {\n\tif object.Schema != nil {\n\t\treturn object.Schema.nodeValue()\n\t} else if object.StringArray != nil {\n\t\treturn nodeForStringArray(*(object.StringArray))\n\t} else {\n\t\treturn nil\n\t}\n}\n\nfunc (object *SchemaOrSchemaArray) nodeValue() *yaml.Node {\n\tif object.Schema != nil {\n\t\treturn object.Schema.nodeValue()\n\t} else if object.SchemaArray != nil {\n\t\treturn nodeForSchemaArray(*(object.SchemaArray))\n\t} else {\n\t\treturn nil\n\t}\n}\n\nfunc (object *SchemaEnumValue) nodeValue() *yaml.Node {\n\tif object.String != nil {\n\t\treturn nodeForString(*object.String)\n\t} else if object.Bool != nil {\n\t\treturn nodeForBoolean(*object.Bool)\n\t} else {\n\t\treturn nil\n\t}\n}\n\nfunc nodeForNamedSchemaArray(array *[]*NamedSchema) *yaml.Node {\n\tcontent := make([]*yaml.Node, 0)\n\tfor _, pair := range *(array) {\n\t\tcontent = appendPair(content, pair.Name, pair.Value.nodeValue())\n\t}\n\treturn nodeForMapping(content)\n}\n\nfunc nodeForNamedSchemaOrStringArray(array *[]*NamedSchemaOrStringArray) *yaml.Node {\n\tcontent := make([]*yaml.Node, 0)\n\tfor _, pair := range *(array) {\n\t\tcontent = appendPair(content, pair.Name, pair.Value.nodeValue())\n\t}\n\treturn nodeForMapping(content)\n}\n\nfunc nodeForSchemaEnumArray(array *[]SchemaEnumValue) *yaml.Node {\n\tcontent := make([]*yaml.Node, 0)\n\tfor _, item := range *array {\n\t\tcontent = append(content, item.nodeValue())\n\t}\n\treturn nodeForSequence(content)\n}\n\nfunc nodeForMapping(content []*yaml.Node) *yaml.Node {\n\treturn &yaml.Node{\n\t\tKind:    yaml.MappingNode,\n\t\tContent: content,\n\t}\n}\n\nfunc nodeForSequence(content []*yaml.Node) *yaml.Node {\n\treturn &yaml.Node{\n\t\tKind:    yaml.SequenceNode,\n\t\tContent: content,\n\t}\n}\n\nfunc nodeForString(value string) *yaml.Node {\n\treturn &yaml.Node{\n\t\tKind:  yaml.ScalarNode,\n\t\tTag:   \"!!str\",\n\t\tValue: value,\n\t}\n}\n\nfunc nodeForBoolean(value bool) *yaml.Node {\n\treturn &yaml.Node{\n\t\tKind:  yaml.ScalarNode,\n\t\tTag:   \"!!bool\",\n\t\tValue: fmt.Sprintf(\"%t\", value),\n\t}\n}\n\nfunc nodeForInt64(value int64) *yaml.Node {\n\treturn &yaml.Node{\n\t\tKind:  yaml.ScalarNode,\n\t\tTag:   \"!!int\",\n\t\tValue: fmt.Sprintf(\"%d\", value),\n\t}\n}\n\nfunc nodeForFloat64(value float64) *yaml.Node {\n\treturn &yaml.Node{\n\t\tKind:  yaml.ScalarNode,\n\t\tTag:   \"!!float\",\n\t\tValue: fmt.Sprintf(\"%f\", value),\n\t}\n}\n\nfunc appendPair(nodes []*yaml.Node, name string, value *yaml.Node) []*yaml.Node {\n\tnodes = append(nodes, nodeForString(name))\n\tnodes = append(nodes, value)\n\treturn nodes\n}\n\nfunc (schema *Schema) nodeValue() *yaml.Node {\n\tn := &yaml.Node{Kind: yaml.MappingNode}\n\tcontent := make([]*yaml.Node, 0)\n\tif schema.Title != nil {\n\t\tcontent = appendPair(content, \"title\", nodeForString(*schema.Title))\n\t}\n\tif schema.ID != nil {\n\t\tcontent = appendPair(content, \"id\", nodeForString(*schema.ID))\n\t}\n\tif schema.Schema != nil {\n\t\tcontent = appendPair(content, \"$schema\", nodeForString(*schema.Schema))\n\t}\n\tif schema.Type != nil {\n\t\tcontent = appendPair(content, \"type\", schema.Type.nodeValue())\n\t}\n\tif schema.Items != nil {\n\t\tcontent = appendPair(content, \"items\", schema.Items.nodeValue())\n\t}\n\tif schema.Description != nil {\n\t\tcontent = appendPair(content, \"description\", nodeForString(*schema.Description))\n\t}\n\tif schema.Required != nil {\n\t\tcontent = appendPair(content, \"required\", nodeForStringArray(*schema.Required))\n\t}\n\tif schema.AdditionalProperties != nil {\n\t\tcontent = appendPair(content, \"additionalProperties\", schema.AdditionalProperties.nodeValue())\n\t}\n\tif schema.PatternProperties != nil {\n\t\tcontent = appendPair(content, \"patternProperties\", nodeForNamedSchemaArray(schema.PatternProperties))\n\t}\n\tif schema.Properties != nil {\n\t\tcontent = appendPair(content, \"properties\", nodeForNamedSchemaArray(schema.Properties))\n\t}\n\tif schema.Dependencies != nil {\n\t\tcontent = appendPair(content, \"dependencies\", nodeForNamedSchemaOrStringArray(schema.Dependencies))\n\t}\n\tif schema.Ref != nil {\n\t\tcontent = appendPair(content, \"$ref\", nodeForString(*schema.Ref))\n\t}\n\tif schema.MultipleOf != nil {\n\t\tcontent = appendPair(content, \"multipleOf\", schema.MultipleOf.nodeValue())\n\t}\n\tif schema.Maximum != nil {\n\t\tcontent = appendPair(content, \"maximum\", schema.Maximum.nodeValue())\n\t}\n\tif schema.ExclusiveMaximum != nil {\n\t\tcontent = appendPair(content, \"exclusiveMaximum\", nodeForBoolean(*schema.ExclusiveMaximum))\n\t}\n\tif schema.Minimum != nil {\n\t\tcontent = appendPair(content, \"minimum\", schema.Minimum.nodeValue())\n\t}\n\tif schema.ExclusiveMinimum != nil {\n\t\tcontent = appendPair(content, \"exclusiveMinimum\", nodeForBoolean(*schema.ExclusiveMinimum))\n\t}\n\tif schema.MaxLength != nil {\n\t\tcontent = appendPair(content, \"maxLength\", nodeForInt64(*schema.MaxLength))\n\t}\n\tif schema.MinLength != nil {\n\t\tcontent = appendPair(content, \"minLength\", nodeForInt64(*schema.MinLength))\n\t}\n\tif schema.Pattern != nil {\n\t\tcontent = appendPair(content, \"pattern\", nodeForString(*schema.Pattern))\n\t}\n\tif schema.AdditionalItems != nil {\n\t\tcontent = appendPair(content, \"additionalItems\", schema.AdditionalItems.nodeValue())\n\t}\n\tif schema.MaxItems != nil {\n\t\tcontent = appendPair(content, \"maxItems\", nodeForInt64(*schema.MaxItems))\n\t}\n\tif schema.MinItems != nil {\n\t\tcontent = appendPair(content, \"minItems\", nodeForInt64(*schema.MinItems))\n\t}\n\tif schema.UniqueItems != nil {\n\t\tcontent = appendPair(content, \"uniqueItems\", nodeForBoolean(*schema.UniqueItems))\n\t}\n\tif schema.MaxProperties != nil {\n\t\tcontent = appendPair(content, \"maxProperties\", nodeForInt64(*schema.MaxProperties))\n\t}\n\tif schema.MinProperties != nil {\n\t\tcontent = appendPair(content, \"minProperties\", nodeForInt64(*schema.MinProperties))\n\t}\n\tif schema.Enumeration != nil {\n\t\tcontent = appendPair(content, \"enum\", nodeForSchemaEnumArray(schema.Enumeration))\n\t}\n\tif schema.AllOf != nil {\n\t\tcontent = appendPair(content, \"allOf\", nodeForSchemaArray(*schema.AllOf))\n\t}\n\tif schema.AnyOf != nil {\n\t\tcontent = appendPair(content, \"anyOf\", nodeForSchemaArray(*schema.AnyOf))\n\t}\n\tif schema.OneOf != nil {\n\t\tcontent = appendPair(content, \"oneOf\", nodeForSchemaArray(*schema.OneOf))\n\t}\n\tif schema.Not != nil {\n\t\tcontent = appendPair(content, \"not\", schema.Not.nodeValue())\n\t}\n\tif schema.Definitions != nil {\n\t\tcontent = appendPair(content, \"definitions\", nodeForNamedSchemaArray(schema.Definitions))\n\t}\n\tif schema.Default != nil {\n\t\t// m = append(m, yaml.MapItem{Key: \"default\", Value: *schema.Default})\n\t}\n\tif schema.Format != nil {\n\t\tcontent = appendPair(content, \"format\", nodeForString(*schema.Format))\n\t}\n\tn.Content = content\n\treturn n\n}\n\n// JSONString returns a json representation of a schema.\nfunc (schema *Schema) JSONString() string {\n\tnode := schema.nodeValue()\n\treturn Render(node)\n}\n"
  },
  {
    "path": "vendor/github.com/google/gnostic-models/openapiv2/OpenAPIv2.go",
    "content": "// Copyright 2020 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// THIS FILE IS AUTOMATICALLY GENERATED.\n\npackage openapi_v2\n\nimport (\n\t\"fmt\"\n\t\"regexp\"\n\t\"strings\"\n\n\t\"gopkg.in/yaml.v3\"\n\n\t\"github.com/google/gnostic-models/compiler\"\n)\n\n// Version returns the package name (and OpenAPI version).\nfunc Version() string {\n\treturn \"openapi_v2\"\n}\n\n// NewAdditionalPropertiesItem creates an object of type AdditionalPropertiesItem if possible, returning an error if not.\nfunc NewAdditionalPropertiesItem(in *yaml.Node, context *compiler.Context) (*AdditionalPropertiesItem, error) {\n\terrors := make([]error, 0)\n\tx := &AdditionalPropertiesItem{}\n\tmatched := false\n\t// Schema schema = 1;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewSchema(m, compiler.NewContext(\"schema\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &AdditionalPropertiesItem_Schema{Schema: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\t// bool boolean = 2;\n\tboolValue, ok := compiler.BoolForScalarNode(in)\n\tif ok {\n\t\tx.Oneof = &AdditionalPropertiesItem_Boolean{Boolean: boolValue}\n\t\tmatched = true\n\t}\n\tif matched {\n\t\t// since the oneof matched one of its possibilities, discard any matching errors\n\t\terrors = make([]error, 0)\n\t} else {\n\t\tmessage := fmt.Sprintf(\"contains an invalid AdditionalPropertiesItem\")\n\t\terr := compiler.NewError(context, message)\n\t\terrors = []error{err}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewAny creates an object of type Any if possible, returning an error if not.\nfunc NewAny(in *yaml.Node, context *compiler.Context) (*Any, error) {\n\terrors := make([]error, 0)\n\tx := &Any{}\n\tbytes := compiler.Marshal(in)\n\tx.Yaml = string(bytes)\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewApiKeySecurity creates an object of type ApiKeySecurity if possible, returning an error if not.\nfunc NewApiKeySecurity(in *yaml.Node, context *compiler.Context) (*ApiKeySecurity, error) {\n\terrors := make([]error, 0)\n\tx := &ApiKeySecurity{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"in\", \"name\", \"type\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"description\", \"in\", \"name\", \"type\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string type = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"type\")\n\t\tif v1 != nil {\n\t\t\tx.Type, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [apiKey]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"apiKey\"}, x.Type) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string name = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"name\")\n\t\tif v2 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string in = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"in\")\n\t\tif v3 != nil {\n\t\t\tx.In, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for in: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [header query]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"header\", \"query\"}, x.In) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for in: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"description\")\n\t\tif v4 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 5;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewBasicAuthenticationSecurity creates an object of type BasicAuthenticationSecurity if possible, returning an error if not.\nfunc NewBasicAuthenticationSecurity(in *yaml.Node, context *compiler.Context) (*BasicAuthenticationSecurity, error) {\n\terrors := make([]error, 0)\n\tx := &BasicAuthenticationSecurity{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"type\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"description\", \"type\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string type = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"type\")\n\t\tif v1 != nil {\n\t\t\tx.Type, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [basic]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"basic\"}, x.Type) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"description\")\n\t\tif v2 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 3;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewBodyParameter creates an object of type BodyParameter if possible, returning an error if not.\nfunc NewBodyParameter(in *yaml.Node, context *compiler.Context) (*BodyParameter, error) {\n\terrors := make([]error, 0)\n\tx := &BodyParameter{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"in\", \"name\", \"schema\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"description\", \"in\", \"name\", \"required\", \"schema\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string description = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"description\")\n\t\tif v1 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string name = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"name\")\n\t\tif v2 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string in = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"in\")\n\t\tif v3 != nil {\n\t\t\tx.In, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for in: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [body]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"body\"}, x.In) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for in: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool required = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"required\")\n\t\tif v4 != nil {\n\t\t\tx.Required, ok = compiler.BoolForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for required: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Schema schema = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"schema\")\n\t\tif v5 != nil {\n\t\t\tvar err error\n\t\t\tx.Schema, err = NewSchema(v5, compiler.NewContext(\"schema\", v5, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 6;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewContact creates an object of type Contact if possible, returning an error if not.\nfunc NewContact(in *yaml.Node, context *compiler.Context) (*Contact, error) {\n\terrors := make([]error, 0)\n\tx := &Contact{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"email\", \"name\", \"url\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string url = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"url\")\n\t\tif v2 != nil {\n\t\t\tx.Url, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for url: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string email = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"email\")\n\t\tif v3 != nil {\n\t\t\tx.Email, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for email: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 4;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewDefault creates an object of type Default if possible, returning an error if not.\nfunc NewDefault(in *yaml.Node, context *compiler.Context) (*Default, error) {\n\terrors := make([]error, 0)\n\tx := &Default{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedAny additional_properties = 1;\n\t\t// MAP: Any\n\t\tx.AdditionalProperties = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedAny{}\n\t\t\t\tpair.Name = k\n\t\t\t\tresult := &Any{}\n\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\tif handled {\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewDefinitions creates an object of type Definitions if possible, returning an error if not.\nfunc NewDefinitions(in *yaml.Node, context *compiler.Context) (*Definitions, error) {\n\terrors := make([]error, 0)\n\tx := &Definitions{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedSchema additional_properties = 1;\n\t\t// MAP: Schema\n\t\tx.AdditionalProperties = make([]*NamedSchema, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedSchema{}\n\t\t\t\tpair.Name = k\n\t\t\t\tvar err error\n\t\t\t\tpair.Value, err = NewSchema(v, compiler.NewContext(k, v, context))\n\t\t\t\tif err != nil {\n\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewDocument creates an object of type Document if possible, returning an error if not.\nfunc NewDocument(in *yaml.Node, context *compiler.Context) (*Document, error) {\n\terrors := make([]error, 0)\n\tx := &Document{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"info\", \"paths\", \"swagger\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"basePath\", \"consumes\", \"definitions\", \"externalDocs\", \"host\", \"info\", \"parameters\", \"paths\", \"produces\", \"responses\", \"schemes\", \"security\", \"securityDefinitions\", \"swagger\", \"tags\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string swagger = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"swagger\")\n\t\tif v1 != nil {\n\t\t\tx.Swagger, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for swagger: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [2.0]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"2.0\"}, x.Swagger) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for swagger: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Info info = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"info\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Info, err = NewInfo(v2, compiler.NewContext(\"info\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// string host = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"host\")\n\t\tif v3 != nil {\n\t\t\tx.Host, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for host: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string base_path = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"basePath\")\n\t\tif v4 != nil {\n\t\t\tx.BasePath, ok = compiler.StringForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for basePath: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated string schemes = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"schemes\")\n\t\tif v5 != nil {\n\t\t\tv, ok := compiler.SequenceNodeForNode(v5)\n\t\t\tif ok {\n\t\t\t\tx.Schemes = compiler.StringArrayForSequenceNode(v)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for schemes: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [http https ws wss]\n\t\t\tif ok && !compiler.StringArrayContainsValues([]string{\"http\", \"https\", \"ws\", \"wss\"}, x.Schemes) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for schemes: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated string consumes = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"consumes\")\n\t\tif v6 != nil {\n\t\t\tv, ok := compiler.SequenceNodeForNode(v6)\n\t\t\tif ok {\n\t\t\t\tx.Consumes = compiler.StringArrayForSequenceNode(v)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for consumes: %s\", compiler.Display(v6))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated string produces = 7;\n\t\tv7 := compiler.MapValueForKey(m, \"produces\")\n\t\tif v7 != nil {\n\t\t\tv, ok := compiler.SequenceNodeForNode(v7)\n\t\t\tif ok {\n\t\t\t\tx.Produces = compiler.StringArrayForSequenceNode(v)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for produces: %s\", compiler.Display(v7))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Paths paths = 8;\n\t\tv8 := compiler.MapValueForKey(m, \"paths\")\n\t\tif v8 != nil {\n\t\t\tvar err error\n\t\t\tx.Paths, err = NewPaths(v8, compiler.NewContext(\"paths\", v8, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Definitions definitions = 9;\n\t\tv9 := compiler.MapValueForKey(m, \"definitions\")\n\t\tif v9 != nil {\n\t\t\tvar err error\n\t\t\tx.Definitions, err = NewDefinitions(v9, compiler.NewContext(\"definitions\", v9, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// ParameterDefinitions parameters = 10;\n\t\tv10 := compiler.MapValueForKey(m, \"parameters\")\n\t\tif v10 != nil {\n\t\t\tvar err error\n\t\t\tx.Parameters, err = NewParameterDefinitions(v10, compiler.NewContext(\"parameters\", v10, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// ResponseDefinitions responses = 11;\n\t\tv11 := compiler.MapValueForKey(m, \"responses\")\n\t\tif v11 != nil {\n\t\t\tvar err error\n\t\t\tx.Responses, err = NewResponseDefinitions(v11, compiler.NewContext(\"responses\", v11, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated SecurityRequirement security = 12;\n\t\tv12 := compiler.MapValueForKey(m, \"security\")\n\t\tif v12 != nil {\n\t\t\t// repeated SecurityRequirement\n\t\t\tx.Security = make([]*SecurityRequirement, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v12)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewSecurityRequirement(item, compiler.NewContext(\"security\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Security = append(x.Security, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// SecurityDefinitions security_definitions = 13;\n\t\tv13 := compiler.MapValueForKey(m, \"securityDefinitions\")\n\t\tif v13 != nil {\n\t\t\tvar err error\n\t\t\tx.SecurityDefinitions, err = NewSecurityDefinitions(v13, compiler.NewContext(\"securityDefinitions\", v13, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated Tag tags = 14;\n\t\tv14 := compiler.MapValueForKey(m, \"tags\")\n\t\tif v14 != nil {\n\t\t\t// repeated Tag\n\t\t\tx.Tags = make([]*Tag, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v14)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewTag(item, compiler.NewContext(\"tags\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Tags = append(x.Tags, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// ExternalDocs external_docs = 15;\n\t\tv15 := compiler.MapValueForKey(m, \"externalDocs\")\n\t\tif v15 != nil {\n\t\t\tvar err error\n\t\t\tx.ExternalDocs, err = NewExternalDocs(v15, compiler.NewContext(\"externalDocs\", v15, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 16;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewExamples creates an object of type Examples if possible, returning an error if not.\nfunc NewExamples(in *yaml.Node, context *compiler.Context) (*Examples, error) {\n\terrors := make([]error, 0)\n\tx := &Examples{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedAny additional_properties = 1;\n\t\t// MAP: Any\n\t\tx.AdditionalProperties = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedAny{}\n\t\t\t\tpair.Name = k\n\t\t\t\tresult := &Any{}\n\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\tif handled {\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewExternalDocs creates an object of type ExternalDocs if possible, returning an error if not.\nfunc NewExternalDocs(in *yaml.Node, context *compiler.Context) (*ExternalDocs, error) {\n\terrors := make([]error, 0)\n\tx := &ExternalDocs{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"url\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"description\", \"url\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string description = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"description\")\n\t\tif v1 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string url = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"url\")\n\t\tif v2 != nil {\n\t\t\tx.Url, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for url: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 3;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewFileSchema creates an object of type FileSchema if possible, returning an error if not.\nfunc NewFileSchema(in *yaml.Node, context *compiler.Context) (*FileSchema, error) {\n\terrors := make([]error, 0)\n\tx := &FileSchema{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"type\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"default\", \"description\", \"example\", \"externalDocs\", \"format\", \"readOnly\", \"required\", \"title\", \"type\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string format = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"format\")\n\t\tif v1 != nil {\n\t\t\tx.Format, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for format: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string title = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"title\")\n\t\tif v2 != nil {\n\t\t\tx.Title, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for title: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"description\")\n\t\tif v3 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Any default = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"default\")\n\t\tif v4 != nil {\n\t\t\tvar err error\n\t\t\tx.Default, err = NewAny(v4, compiler.NewContext(\"default\", v4, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated string required = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"required\")\n\t\tif v5 != nil {\n\t\t\tv, ok := compiler.SequenceNodeForNode(v5)\n\t\t\tif ok {\n\t\t\t\tx.Required = compiler.StringArrayForSequenceNode(v)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for required: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string type = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"type\")\n\t\tif v6 != nil {\n\t\t\tx.Type, ok = compiler.StringForScalarNode(v6)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v6))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [file]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"file\"}, x.Type) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v6))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool read_only = 7;\n\t\tv7 := compiler.MapValueForKey(m, \"readOnly\")\n\t\tif v7 != nil {\n\t\t\tx.ReadOnly, ok = compiler.BoolForScalarNode(v7)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for readOnly: %s\", compiler.Display(v7))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// ExternalDocs external_docs = 8;\n\t\tv8 := compiler.MapValueForKey(m, \"externalDocs\")\n\t\tif v8 != nil {\n\t\t\tvar err error\n\t\t\tx.ExternalDocs, err = NewExternalDocs(v8, compiler.NewContext(\"externalDocs\", v8, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Any example = 9;\n\t\tv9 := compiler.MapValueForKey(m, \"example\")\n\t\tif v9 != nil {\n\t\t\tvar err error\n\t\t\tx.Example, err = NewAny(v9, compiler.NewContext(\"example\", v9, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 10;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewFormDataParameterSubSchema creates an object of type FormDataParameterSubSchema if possible, returning an error if not.\nfunc NewFormDataParameterSubSchema(in *yaml.Node, context *compiler.Context) (*FormDataParameterSubSchema, error) {\n\terrors := make([]error, 0)\n\tx := &FormDataParameterSubSchema{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"allowEmptyValue\", \"collectionFormat\", \"default\", \"description\", \"enum\", \"exclusiveMaximum\", \"exclusiveMinimum\", \"format\", \"in\", \"items\", \"maxItems\", \"maxLength\", \"maximum\", \"minItems\", \"minLength\", \"minimum\", \"multipleOf\", \"name\", \"pattern\", \"required\", \"type\", \"uniqueItems\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// bool required = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"required\")\n\t\tif v1 != nil {\n\t\t\tx.Required, ok = compiler.BoolForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for required: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string in = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"in\")\n\t\tif v2 != nil {\n\t\t\tx.In, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for in: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [formData]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"formData\"}, x.In) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for in: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"description\")\n\t\tif v3 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string name = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"name\")\n\t\tif v4 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool allow_empty_value = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"allowEmptyValue\")\n\t\tif v5 != nil {\n\t\t\tx.AllowEmptyValue, ok = compiler.BoolForScalarNode(v5)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for allowEmptyValue: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string type = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"type\")\n\t\tif v6 != nil {\n\t\t\tx.Type, ok = compiler.StringForScalarNode(v6)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v6))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [string number boolean integer array file]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"string\", \"number\", \"boolean\", \"integer\", \"array\", \"file\"}, x.Type) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v6))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string format = 7;\n\t\tv7 := compiler.MapValueForKey(m, \"format\")\n\t\tif v7 != nil {\n\t\t\tx.Format, ok = compiler.StringForScalarNode(v7)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for format: %s\", compiler.Display(v7))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// PrimitivesItems items = 8;\n\t\tv8 := compiler.MapValueForKey(m, \"items\")\n\t\tif v8 != nil {\n\t\t\tvar err error\n\t\t\tx.Items, err = NewPrimitivesItems(v8, compiler.NewContext(\"items\", v8, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// string collection_format = 9;\n\t\tv9 := compiler.MapValueForKey(m, \"collectionFormat\")\n\t\tif v9 != nil {\n\t\t\tx.CollectionFormat, ok = compiler.StringForScalarNode(v9)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for collectionFormat: %s\", compiler.Display(v9))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [csv ssv tsv pipes multi]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"csv\", \"ssv\", \"tsv\", \"pipes\", \"multi\"}, x.CollectionFormat) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for collectionFormat: %s\", compiler.Display(v9))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Any default = 10;\n\t\tv10 := compiler.MapValueForKey(m, \"default\")\n\t\tif v10 != nil {\n\t\t\tvar err error\n\t\t\tx.Default, err = NewAny(v10, compiler.NewContext(\"default\", v10, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// float maximum = 11;\n\t\tv11 := compiler.MapValueForKey(m, \"maximum\")\n\t\tif v11 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v11)\n\t\t\tif ok {\n\t\t\t\tx.Maximum = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maximum: %s\", compiler.Display(v11))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool exclusive_maximum = 12;\n\t\tv12 := compiler.MapValueForKey(m, \"exclusiveMaximum\")\n\t\tif v12 != nil {\n\t\t\tx.ExclusiveMaximum, ok = compiler.BoolForScalarNode(v12)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for exclusiveMaximum: %s\", compiler.Display(v12))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// float minimum = 13;\n\t\tv13 := compiler.MapValueForKey(m, \"minimum\")\n\t\tif v13 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v13)\n\t\t\tif ok {\n\t\t\t\tx.Minimum = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minimum: %s\", compiler.Display(v13))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool exclusive_minimum = 14;\n\t\tv14 := compiler.MapValueForKey(m, \"exclusiveMinimum\")\n\t\tif v14 != nil {\n\t\t\tx.ExclusiveMinimum, ok = compiler.BoolForScalarNode(v14)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for exclusiveMinimum: %s\", compiler.Display(v14))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 max_length = 15;\n\t\tv15 := compiler.MapValueForKey(m, \"maxLength\")\n\t\tif v15 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v15)\n\t\t\tif ok {\n\t\t\t\tx.MaxLength = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maxLength: %s\", compiler.Display(v15))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 min_length = 16;\n\t\tv16 := compiler.MapValueForKey(m, \"minLength\")\n\t\tif v16 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v16)\n\t\t\tif ok {\n\t\t\t\tx.MinLength = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minLength: %s\", compiler.Display(v16))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string pattern = 17;\n\t\tv17 := compiler.MapValueForKey(m, \"pattern\")\n\t\tif v17 != nil {\n\t\t\tx.Pattern, ok = compiler.StringForScalarNode(v17)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for pattern: %s\", compiler.Display(v17))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 max_items = 18;\n\t\tv18 := compiler.MapValueForKey(m, \"maxItems\")\n\t\tif v18 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v18)\n\t\t\tif ok {\n\t\t\t\tx.MaxItems = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maxItems: %s\", compiler.Display(v18))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 min_items = 19;\n\t\tv19 := compiler.MapValueForKey(m, \"minItems\")\n\t\tif v19 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v19)\n\t\t\tif ok {\n\t\t\t\tx.MinItems = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minItems: %s\", compiler.Display(v19))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool unique_items = 20;\n\t\tv20 := compiler.MapValueForKey(m, \"uniqueItems\")\n\t\tif v20 != nil {\n\t\t\tx.UniqueItems, ok = compiler.BoolForScalarNode(v20)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for uniqueItems: %s\", compiler.Display(v20))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated Any enum = 21;\n\t\tv21 := compiler.MapValueForKey(m, \"enum\")\n\t\tif v21 != nil {\n\t\t\t// repeated Any\n\t\t\tx.Enum = make([]*Any, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v21)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewAny(item, compiler.NewContext(\"enum\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Enum = append(x.Enum, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// float multiple_of = 22;\n\t\tv22 := compiler.MapValueForKey(m, \"multipleOf\")\n\t\tif v22 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v22)\n\t\t\tif ok {\n\t\t\t\tx.MultipleOf = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for multipleOf: %s\", compiler.Display(v22))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 23;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewHeader creates an object of type Header if possible, returning an error if not.\nfunc NewHeader(in *yaml.Node, context *compiler.Context) (*Header, error) {\n\terrors := make([]error, 0)\n\tx := &Header{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"type\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"collectionFormat\", \"default\", \"description\", \"enum\", \"exclusiveMaximum\", \"exclusiveMinimum\", \"format\", \"items\", \"maxItems\", \"maxLength\", \"maximum\", \"minItems\", \"minLength\", \"minimum\", \"multipleOf\", \"pattern\", \"type\", \"uniqueItems\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string type = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"type\")\n\t\tif v1 != nil {\n\t\t\tx.Type, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [string number integer boolean array]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"string\", \"number\", \"integer\", \"boolean\", \"array\"}, x.Type) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string format = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"format\")\n\t\tif v2 != nil {\n\t\t\tx.Format, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for format: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// PrimitivesItems items = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"items\")\n\t\tif v3 != nil {\n\t\t\tvar err error\n\t\t\tx.Items, err = NewPrimitivesItems(v3, compiler.NewContext(\"items\", v3, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// string collection_format = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"collectionFormat\")\n\t\tif v4 != nil {\n\t\t\tx.CollectionFormat, ok = compiler.StringForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for collectionFormat: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [csv ssv tsv pipes]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"csv\", \"ssv\", \"tsv\", \"pipes\"}, x.CollectionFormat) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for collectionFormat: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Any default = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"default\")\n\t\tif v5 != nil {\n\t\t\tvar err error\n\t\t\tx.Default, err = NewAny(v5, compiler.NewContext(\"default\", v5, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// float maximum = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"maximum\")\n\t\tif v6 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v6)\n\t\t\tif ok {\n\t\t\t\tx.Maximum = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maximum: %s\", compiler.Display(v6))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool exclusive_maximum = 7;\n\t\tv7 := compiler.MapValueForKey(m, \"exclusiveMaximum\")\n\t\tif v7 != nil {\n\t\t\tx.ExclusiveMaximum, ok = compiler.BoolForScalarNode(v7)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for exclusiveMaximum: %s\", compiler.Display(v7))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// float minimum = 8;\n\t\tv8 := compiler.MapValueForKey(m, \"minimum\")\n\t\tif v8 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v8)\n\t\t\tif ok {\n\t\t\t\tx.Minimum = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minimum: %s\", compiler.Display(v8))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool exclusive_minimum = 9;\n\t\tv9 := compiler.MapValueForKey(m, \"exclusiveMinimum\")\n\t\tif v9 != nil {\n\t\t\tx.ExclusiveMinimum, ok = compiler.BoolForScalarNode(v9)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for exclusiveMinimum: %s\", compiler.Display(v9))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 max_length = 10;\n\t\tv10 := compiler.MapValueForKey(m, \"maxLength\")\n\t\tif v10 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v10)\n\t\t\tif ok {\n\t\t\t\tx.MaxLength = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maxLength: %s\", compiler.Display(v10))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 min_length = 11;\n\t\tv11 := compiler.MapValueForKey(m, \"minLength\")\n\t\tif v11 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v11)\n\t\t\tif ok {\n\t\t\t\tx.MinLength = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minLength: %s\", compiler.Display(v11))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string pattern = 12;\n\t\tv12 := compiler.MapValueForKey(m, \"pattern\")\n\t\tif v12 != nil {\n\t\t\tx.Pattern, ok = compiler.StringForScalarNode(v12)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for pattern: %s\", compiler.Display(v12))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 max_items = 13;\n\t\tv13 := compiler.MapValueForKey(m, \"maxItems\")\n\t\tif v13 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v13)\n\t\t\tif ok {\n\t\t\t\tx.MaxItems = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maxItems: %s\", compiler.Display(v13))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 min_items = 14;\n\t\tv14 := compiler.MapValueForKey(m, \"minItems\")\n\t\tif v14 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v14)\n\t\t\tif ok {\n\t\t\t\tx.MinItems = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minItems: %s\", compiler.Display(v14))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool unique_items = 15;\n\t\tv15 := compiler.MapValueForKey(m, \"uniqueItems\")\n\t\tif v15 != nil {\n\t\t\tx.UniqueItems, ok = compiler.BoolForScalarNode(v15)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for uniqueItems: %s\", compiler.Display(v15))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated Any enum = 16;\n\t\tv16 := compiler.MapValueForKey(m, \"enum\")\n\t\tif v16 != nil {\n\t\t\t// repeated Any\n\t\t\tx.Enum = make([]*Any, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v16)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewAny(item, compiler.NewContext(\"enum\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Enum = append(x.Enum, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// float multiple_of = 17;\n\t\tv17 := compiler.MapValueForKey(m, \"multipleOf\")\n\t\tif v17 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v17)\n\t\t\tif ok {\n\t\t\t\tx.MultipleOf = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for multipleOf: %s\", compiler.Display(v17))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 18;\n\t\tv18 := compiler.MapValueForKey(m, \"description\")\n\t\tif v18 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v18)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v18))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 19;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewHeaderParameterSubSchema creates an object of type HeaderParameterSubSchema if possible, returning an error if not.\nfunc NewHeaderParameterSubSchema(in *yaml.Node, context *compiler.Context) (*HeaderParameterSubSchema, error) {\n\terrors := make([]error, 0)\n\tx := &HeaderParameterSubSchema{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"collectionFormat\", \"default\", \"description\", \"enum\", \"exclusiveMaximum\", \"exclusiveMinimum\", \"format\", \"in\", \"items\", \"maxItems\", \"maxLength\", \"maximum\", \"minItems\", \"minLength\", \"minimum\", \"multipleOf\", \"name\", \"pattern\", \"required\", \"type\", \"uniqueItems\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// bool required = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"required\")\n\t\tif v1 != nil {\n\t\t\tx.Required, ok = compiler.BoolForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for required: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string in = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"in\")\n\t\tif v2 != nil {\n\t\t\tx.In, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for in: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [header]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"header\"}, x.In) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for in: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"description\")\n\t\tif v3 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string name = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"name\")\n\t\tif v4 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string type = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"type\")\n\t\tif v5 != nil {\n\t\t\tx.Type, ok = compiler.StringForScalarNode(v5)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [string number boolean integer array]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"string\", \"number\", \"boolean\", \"integer\", \"array\"}, x.Type) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string format = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"format\")\n\t\tif v6 != nil {\n\t\t\tx.Format, ok = compiler.StringForScalarNode(v6)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for format: %s\", compiler.Display(v6))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// PrimitivesItems items = 7;\n\t\tv7 := compiler.MapValueForKey(m, \"items\")\n\t\tif v7 != nil {\n\t\t\tvar err error\n\t\t\tx.Items, err = NewPrimitivesItems(v7, compiler.NewContext(\"items\", v7, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// string collection_format = 8;\n\t\tv8 := compiler.MapValueForKey(m, \"collectionFormat\")\n\t\tif v8 != nil {\n\t\t\tx.CollectionFormat, ok = compiler.StringForScalarNode(v8)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for collectionFormat: %s\", compiler.Display(v8))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [csv ssv tsv pipes]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"csv\", \"ssv\", \"tsv\", \"pipes\"}, x.CollectionFormat) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for collectionFormat: %s\", compiler.Display(v8))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Any default = 9;\n\t\tv9 := compiler.MapValueForKey(m, \"default\")\n\t\tif v9 != nil {\n\t\t\tvar err error\n\t\t\tx.Default, err = NewAny(v9, compiler.NewContext(\"default\", v9, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// float maximum = 10;\n\t\tv10 := compiler.MapValueForKey(m, \"maximum\")\n\t\tif v10 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v10)\n\t\t\tif ok {\n\t\t\t\tx.Maximum = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maximum: %s\", compiler.Display(v10))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool exclusive_maximum = 11;\n\t\tv11 := compiler.MapValueForKey(m, \"exclusiveMaximum\")\n\t\tif v11 != nil {\n\t\t\tx.ExclusiveMaximum, ok = compiler.BoolForScalarNode(v11)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for exclusiveMaximum: %s\", compiler.Display(v11))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// float minimum = 12;\n\t\tv12 := compiler.MapValueForKey(m, \"minimum\")\n\t\tif v12 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v12)\n\t\t\tif ok {\n\t\t\t\tx.Minimum = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minimum: %s\", compiler.Display(v12))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool exclusive_minimum = 13;\n\t\tv13 := compiler.MapValueForKey(m, \"exclusiveMinimum\")\n\t\tif v13 != nil {\n\t\t\tx.ExclusiveMinimum, ok = compiler.BoolForScalarNode(v13)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for exclusiveMinimum: %s\", compiler.Display(v13))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 max_length = 14;\n\t\tv14 := compiler.MapValueForKey(m, \"maxLength\")\n\t\tif v14 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v14)\n\t\t\tif ok {\n\t\t\t\tx.MaxLength = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maxLength: %s\", compiler.Display(v14))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 min_length = 15;\n\t\tv15 := compiler.MapValueForKey(m, \"minLength\")\n\t\tif v15 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v15)\n\t\t\tif ok {\n\t\t\t\tx.MinLength = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minLength: %s\", compiler.Display(v15))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string pattern = 16;\n\t\tv16 := compiler.MapValueForKey(m, \"pattern\")\n\t\tif v16 != nil {\n\t\t\tx.Pattern, ok = compiler.StringForScalarNode(v16)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for pattern: %s\", compiler.Display(v16))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 max_items = 17;\n\t\tv17 := compiler.MapValueForKey(m, \"maxItems\")\n\t\tif v17 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v17)\n\t\t\tif ok {\n\t\t\t\tx.MaxItems = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maxItems: %s\", compiler.Display(v17))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 min_items = 18;\n\t\tv18 := compiler.MapValueForKey(m, \"minItems\")\n\t\tif v18 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v18)\n\t\t\tif ok {\n\t\t\t\tx.MinItems = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minItems: %s\", compiler.Display(v18))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool unique_items = 19;\n\t\tv19 := compiler.MapValueForKey(m, \"uniqueItems\")\n\t\tif v19 != nil {\n\t\t\tx.UniqueItems, ok = compiler.BoolForScalarNode(v19)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for uniqueItems: %s\", compiler.Display(v19))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated Any enum = 20;\n\t\tv20 := compiler.MapValueForKey(m, \"enum\")\n\t\tif v20 != nil {\n\t\t\t// repeated Any\n\t\t\tx.Enum = make([]*Any, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v20)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewAny(item, compiler.NewContext(\"enum\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Enum = append(x.Enum, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// float multiple_of = 21;\n\t\tv21 := compiler.MapValueForKey(m, \"multipleOf\")\n\t\tif v21 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v21)\n\t\t\tif ok {\n\t\t\t\tx.MultipleOf = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for multipleOf: %s\", compiler.Display(v21))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 22;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewHeaders creates an object of type Headers if possible, returning an error if not.\nfunc NewHeaders(in *yaml.Node, context *compiler.Context) (*Headers, error) {\n\terrors := make([]error, 0)\n\tx := &Headers{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedHeader additional_properties = 1;\n\t\t// MAP: Header\n\t\tx.AdditionalProperties = make([]*NamedHeader, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedHeader{}\n\t\t\t\tpair.Name = k\n\t\t\t\tvar err error\n\t\t\t\tpair.Value, err = NewHeader(v, compiler.NewContext(k, v, context))\n\t\t\t\tif err != nil {\n\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewInfo creates an object of type Info if possible, returning an error if not.\nfunc NewInfo(in *yaml.Node, context *compiler.Context) (*Info, error) {\n\terrors := make([]error, 0)\n\tx := &Info{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"title\", \"version\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"contact\", \"description\", \"license\", \"termsOfService\", \"title\", \"version\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string title = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"title\")\n\t\tif v1 != nil {\n\t\t\tx.Title, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for title: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string version = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"version\")\n\t\tif v2 != nil {\n\t\t\tx.Version, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for version: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"description\")\n\t\tif v3 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string terms_of_service = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"termsOfService\")\n\t\tif v4 != nil {\n\t\t\tx.TermsOfService, ok = compiler.StringForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for termsOfService: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Contact contact = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"contact\")\n\t\tif v5 != nil {\n\t\t\tvar err error\n\t\t\tx.Contact, err = NewContact(v5, compiler.NewContext(\"contact\", v5, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// License license = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"license\")\n\t\tif v6 != nil {\n\t\t\tvar err error\n\t\t\tx.License, err = NewLicense(v6, compiler.NewContext(\"license\", v6, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 7;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewItemsItem creates an object of type ItemsItem if possible, returning an error if not.\nfunc NewItemsItem(in *yaml.Node, context *compiler.Context) (*ItemsItem, error) {\n\terrors := make([]error, 0)\n\tx := &ItemsItem{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value for item array: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tx.Schema = make([]*Schema, 0)\n\t\ty, err := NewSchema(m, compiler.NewContext(\"<array>\", m, context))\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tx.Schema = append(x.Schema, y)\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewJsonReference creates an object of type JsonReference if possible, returning an error if not.\nfunc NewJsonReference(in *yaml.Node, context *compiler.Context) (*JsonReference, error) {\n\terrors := make([]error, 0)\n\tx := &JsonReference{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"$ref\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string _ref = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"$ref\")\n\t\tif v1 != nil {\n\t\t\tx.XRef, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for $ref: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"description\")\n\t\tif v2 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewLicense creates an object of type License if possible, returning an error if not.\nfunc NewLicense(in *yaml.Node, context *compiler.Context) (*License, error) {\n\terrors := make([]error, 0)\n\tx := &License{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"name\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"name\", \"url\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string url = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"url\")\n\t\tif v2 != nil {\n\t\t\tx.Url, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for url: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 3;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedAny creates an object of type NamedAny if possible, returning an error if not.\nfunc NewNamedAny(in *yaml.Node, context *compiler.Context) (*NamedAny, error) {\n\terrors := make([]error, 0)\n\tx := &NamedAny{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Any value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewAny(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedHeader creates an object of type NamedHeader if possible, returning an error if not.\nfunc NewNamedHeader(in *yaml.Node, context *compiler.Context) (*NamedHeader, error) {\n\terrors := make([]error, 0)\n\tx := &NamedHeader{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Header value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewHeader(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedParameter creates an object of type NamedParameter if possible, returning an error if not.\nfunc NewNamedParameter(in *yaml.Node, context *compiler.Context) (*NamedParameter, error) {\n\terrors := make([]error, 0)\n\tx := &NamedParameter{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Parameter value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewParameter(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedPathItem creates an object of type NamedPathItem if possible, returning an error if not.\nfunc NewNamedPathItem(in *yaml.Node, context *compiler.Context) (*NamedPathItem, error) {\n\terrors := make([]error, 0)\n\tx := &NamedPathItem{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// PathItem value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewPathItem(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedResponse creates an object of type NamedResponse if possible, returning an error if not.\nfunc NewNamedResponse(in *yaml.Node, context *compiler.Context) (*NamedResponse, error) {\n\terrors := make([]error, 0)\n\tx := &NamedResponse{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Response value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewResponse(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedResponseValue creates an object of type NamedResponseValue if possible, returning an error if not.\nfunc NewNamedResponseValue(in *yaml.Node, context *compiler.Context) (*NamedResponseValue, error) {\n\terrors := make([]error, 0)\n\tx := &NamedResponseValue{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// ResponseValue value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewResponseValue(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedSchema creates an object of type NamedSchema if possible, returning an error if not.\nfunc NewNamedSchema(in *yaml.Node, context *compiler.Context) (*NamedSchema, error) {\n\terrors := make([]error, 0)\n\tx := &NamedSchema{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Schema value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewSchema(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedSecurityDefinitionsItem creates an object of type NamedSecurityDefinitionsItem if possible, returning an error if not.\nfunc NewNamedSecurityDefinitionsItem(in *yaml.Node, context *compiler.Context) (*NamedSecurityDefinitionsItem, error) {\n\terrors := make([]error, 0)\n\tx := &NamedSecurityDefinitionsItem{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// SecurityDefinitionsItem value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewSecurityDefinitionsItem(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedString creates an object of type NamedString if possible, returning an error if not.\nfunc NewNamedString(in *yaml.Node, context *compiler.Context) (*NamedString, error) {\n\terrors := make([]error, 0)\n\tx := &NamedString{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tx.Value, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for value: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedStringArray creates an object of type NamedStringArray if possible, returning an error if not.\nfunc NewNamedStringArray(in *yaml.Node, context *compiler.Context) (*NamedStringArray, error) {\n\terrors := make([]error, 0)\n\tx := &NamedStringArray{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// StringArray value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewStringArray(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNonBodyParameter creates an object of type NonBodyParameter if possible, returning an error if not.\nfunc NewNonBodyParameter(in *yaml.Node, context *compiler.Context) (*NonBodyParameter, error) {\n\terrors := make([]error, 0)\n\tx := &NonBodyParameter{}\n\tmatched := false\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"in\", \"name\", \"type\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// HeaderParameterSubSchema header_parameter_sub_schema = 1;\n\t\t{\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewHeaderParameterSubSchema(m, compiler.NewContext(\"headerParameterSubSchema\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &NonBodyParameter_HeaderParameterSubSchema{HeaderParameterSubSchema: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t\t// FormDataParameterSubSchema form_data_parameter_sub_schema = 2;\n\t\t{\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewFormDataParameterSubSchema(m, compiler.NewContext(\"formDataParameterSubSchema\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &NonBodyParameter_FormDataParameterSubSchema{FormDataParameterSubSchema: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t\t// QueryParameterSubSchema query_parameter_sub_schema = 3;\n\t\t{\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewQueryParameterSubSchema(m, compiler.NewContext(\"queryParameterSubSchema\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &NonBodyParameter_QueryParameterSubSchema{QueryParameterSubSchema: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t\t// PathParameterSubSchema path_parameter_sub_schema = 4;\n\t\t{\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewPathParameterSubSchema(m, compiler.NewContext(\"pathParameterSubSchema\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &NonBodyParameter_PathParameterSubSchema{PathParameterSubSchema: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\tif matched {\n\t\t// since the oneof matched one of its possibilities, discard any matching errors\n\t\terrors = make([]error, 0)\n\t} else {\n\t\tmessage := fmt.Sprintf(\"contains an invalid NonBodyParameter\")\n\t\terr := compiler.NewError(context, message)\n\t\terrors = []error{err}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewOauth2AccessCodeSecurity creates an object of type Oauth2AccessCodeSecurity if possible, returning an error if not.\nfunc NewOauth2AccessCodeSecurity(in *yaml.Node, context *compiler.Context) (*Oauth2AccessCodeSecurity, error) {\n\terrors := make([]error, 0)\n\tx := &Oauth2AccessCodeSecurity{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"authorizationUrl\", \"flow\", \"tokenUrl\", \"type\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"authorizationUrl\", \"description\", \"flow\", \"scopes\", \"tokenUrl\", \"type\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string type = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"type\")\n\t\tif v1 != nil {\n\t\t\tx.Type, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [oauth2]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"oauth2\"}, x.Type) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string flow = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"flow\")\n\t\tif v2 != nil {\n\t\t\tx.Flow, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for flow: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [accessCode]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"accessCode\"}, x.Flow) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for flow: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Oauth2Scopes scopes = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"scopes\")\n\t\tif v3 != nil {\n\t\t\tvar err error\n\t\t\tx.Scopes, err = NewOauth2Scopes(v3, compiler.NewContext(\"scopes\", v3, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// string authorization_url = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"authorizationUrl\")\n\t\tif v4 != nil {\n\t\t\tx.AuthorizationUrl, ok = compiler.StringForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for authorizationUrl: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string token_url = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"tokenUrl\")\n\t\tif v5 != nil {\n\t\t\tx.TokenUrl, ok = compiler.StringForScalarNode(v5)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for tokenUrl: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"description\")\n\t\tif v6 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v6)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v6))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 7;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewOauth2ApplicationSecurity creates an object of type Oauth2ApplicationSecurity if possible, returning an error if not.\nfunc NewOauth2ApplicationSecurity(in *yaml.Node, context *compiler.Context) (*Oauth2ApplicationSecurity, error) {\n\terrors := make([]error, 0)\n\tx := &Oauth2ApplicationSecurity{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"flow\", \"tokenUrl\", \"type\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"description\", \"flow\", \"scopes\", \"tokenUrl\", \"type\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string type = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"type\")\n\t\tif v1 != nil {\n\t\t\tx.Type, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [oauth2]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"oauth2\"}, x.Type) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string flow = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"flow\")\n\t\tif v2 != nil {\n\t\t\tx.Flow, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for flow: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [application]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"application\"}, x.Flow) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for flow: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Oauth2Scopes scopes = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"scopes\")\n\t\tif v3 != nil {\n\t\t\tvar err error\n\t\t\tx.Scopes, err = NewOauth2Scopes(v3, compiler.NewContext(\"scopes\", v3, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// string token_url = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"tokenUrl\")\n\t\tif v4 != nil {\n\t\t\tx.TokenUrl, ok = compiler.StringForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for tokenUrl: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"description\")\n\t\tif v5 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v5)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 6;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewOauth2ImplicitSecurity creates an object of type Oauth2ImplicitSecurity if possible, returning an error if not.\nfunc NewOauth2ImplicitSecurity(in *yaml.Node, context *compiler.Context) (*Oauth2ImplicitSecurity, error) {\n\terrors := make([]error, 0)\n\tx := &Oauth2ImplicitSecurity{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"authorizationUrl\", \"flow\", \"type\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"authorizationUrl\", \"description\", \"flow\", \"scopes\", \"type\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string type = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"type\")\n\t\tif v1 != nil {\n\t\t\tx.Type, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [oauth2]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"oauth2\"}, x.Type) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string flow = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"flow\")\n\t\tif v2 != nil {\n\t\t\tx.Flow, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for flow: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [implicit]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"implicit\"}, x.Flow) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for flow: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Oauth2Scopes scopes = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"scopes\")\n\t\tif v3 != nil {\n\t\t\tvar err error\n\t\t\tx.Scopes, err = NewOauth2Scopes(v3, compiler.NewContext(\"scopes\", v3, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// string authorization_url = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"authorizationUrl\")\n\t\tif v4 != nil {\n\t\t\tx.AuthorizationUrl, ok = compiler.StringForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for authorizationUrl: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"description\")\n\t\tif v5 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v5)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 6;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewOauth2PasswordSecurity creates an object of type Oauth2PasswordSecurity if possible, returning an error if not.\nfunc NewOauth2PasswordSecurity(in *yaml.Node, context *compiler.Context) (*Oauth2PasswordSecurity, error) {\n\terrors := make([]error, 0)\n\tx := &Oauth2PasswordSecurity{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"flow\", \"tokenUrl\", \"type\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"description\", \"flow\", \"scopes\", \"tokenUrl\", \"type\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string type = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"type\")\n\t\tif v1 != nil {\n\t\t\tx.Type, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [oauth2]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"oauth2\"}, x.Type) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string flow = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"flow\")\n\t\tif v2 != nil {\n\t\t\tx.Flow, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for flow: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [password]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"password\"}, x.Flow) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for flow: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Oauth2Scopes scopes = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"scopes\")\n\t\tif v3 != nil {\n\t\t\tvar err error\n\t\t\tx.Scopes, err = NewOauth2Scopes(v3, compiler.NewContext(\"scopes\", v3, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// string token_url = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"tokenUrl\")\n\t\tif v4 != nil {\n\t\t\tx.TokenUrl, ok = compiler.StringForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for tokenUrl: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"description\")\n\t\tif v5 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v5)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 6;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewOauth2Scopes creates an object of type Oauth2Scopes if possible, returning an error if not.\nfunc NewOauth2Scopes(in *yaml.Node, context *compiler.Context) (*Oauth2Scopes, error) {\n\terrors := make([]error, 0)\n\tx := &Oauth2Scopes{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedString additional_properties = 1;\n\t\t// MAP: string\n\t\tx.AdditionalProperties = make([]*NamedString, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedString{}\n\t\t\t\tpair.Name = k\n\t\t\t\tpair.Value, _ = compiler.StringForScalarNode(v)\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewOperation creates an object of type Operation if possible, returning an error if not.\nfunc NewOperation(in *yaml.Node, context *compiler.Context) (*Operation, error) {\n\terrors := make([]error, 0)\n\tx := &Operation{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"responses\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"consumes\", \"deprecated\", \"description\", \"externalDocs\", \"operationId\", \"parameters\", \"produces\", \"responses\", \"schemes\", \"security\", \"summary\", \"tags\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// repeated string tags = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"tags\")\n\t\tif v1 != nil {\n\t\t\tv, ok := compiler.SequenceNodeForNode(v1)\n\t\t\tif ok {\n\t\t\t\tx.Tags = compiler.StringArrayForSequenceNode(v)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for tags: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string summary = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"summary\")\n\t\tif v2 != nil {\n\t\t\tx.Summary, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for summary: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"description\")\n\t\tif v3 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// ExternalDocs external_docs = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"externalDocs\")\n\t\tif v4 != nil {\n\t\t\tvar err error\n\t\t\tx.ExternalDocs, err = NewExternalDocs(v4, compiler.NewContext(\"externalDocs\", v4, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// string operation_id = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"operationId\")\n\t\tif v5 != nil {\n\t\t\tx.OperationId, ok = compiler.StringForScalarNode(v5)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for operationId: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated string produces = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"produces\")\n\t\tif v6 != nil {\n\t\t\tv, ok := compiler.SequenceNodeForNode(v6)\n\t\t\tif ok {\n\t\t\t\tx.Produces = compiler.StringArrayForSequenceNode(v)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for produces: %s\", compiler.Display(v6))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated string consumes = 7;\n\t\tv7 := compiler.MapValueForKey(m, \"consumes\")\n\t\tif v7 != nil {\n\t\t\tv, ok := compiler.SequenceNodeForNode(v7)\n\t\t\tif ok {\n\t\t\t\tx.Consumes = compiler.StringArrayForSequenceNode(v)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for consumes: %s\", compiler.Display(v7))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated ParametersItem parameters = 8;\n\t\tv8 := compiler.MapValueForKey(m, \"parameters\")\n\t\tif v8 != nil {\n\t\t\t// repeated ParametersItem\n\t\t\tx.Parameters = make([]*ParametersItem, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v8)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewParametersItem(item, compiler.NewContext(\"parameters\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Parameters = append(x.Parameters, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Responses responses = 9;\n\t\tv9 := compiler.MapValueForKey(m, \"responses\")\n\t\tif v9 != nil {\n\t\t\tvar err error\n\t\t\tx.Responses, err = NewResponses(v9, compiler.NewContext(\"responses\", v9, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated string schemes = 10;\n\t\tv10 := compiler.MapValueForKey(m, \"schemes\")\n\t\tif v10 != nil {\n\t\t\tv, ok := compiler.SequenceNodeForNode(v10)\n\t\t\tif ok {\n\t\t\t\tx.Schemes = compiler.StringArrayForSequenceNode(v)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for schemes: %s\", compiler.Display(v10))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [http https ws wss]\n\t\t\tif ok && !compiler.StringArrayContainsValues([]string{\"http\", \"https\", \"ws\", \"wss\"}, x.Schemes) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for schemes: %s\", compiler.Display(v10))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool deprecated = 11;\n\t\tv11 := compiler.MapValueForKey(m, \"deprecated\")\n\t\tif v11 != nil {\n\t\t\tx.Deprecated, ok = compiler.BoolForScalarNode(v11)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for deprecated: %s\", compiler.Display(v11))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated SecurityRequirement security = 12;\n\t\tv12 := compiler.MapValueForKey(m, \"security\")\n\t\tif v12 != nil {\n\t\t\t// repeated SecurityRequirement\n\t\t\tx.Security = make([]*SecurityRequirement, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v12)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewSecurityRequirement(item, compiler.NewContext(\"security\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Security = append(x.Security, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 13;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewParameter creates an object of type Parameter if possible, returning an error if not.\nfunc NewParameter(in *yaml.Node, context *compiler.Context) (*Parameter, error) {\n\terrors := make([]error, 0)\n\tx := &Parameter{}\n\tmatched := false\n\t// BodyParameter body_parameter = 1;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewBodyParameter(m, compiler.NewContext(\"bodyParameter\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &Parameter_BodyParameter{BodyParameter: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\t// NonBodyParameter non_body_parameter = 2;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewNonBodyParameter(m, compiler.NewContext(\"nonBodyParameter\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &Parameter_NonBodyParameter{NonBodyParameter: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\tif matched {\n\t\t// since the oneof matched one of its possibilities, discard any matching errors\n\t\terrors = make([]error, 0)\n\t} else {\n\t\tmessage := fmt.Sprintf(\"contains an invalid Parameter\")\n\t\terr := compiler.NewError(context, message)\n\t\terrors = []error{err}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewParameterDefinitions creates an object of type ParameterDefinitions if possible, returning an error if not.\nfunc NewParameterDefinitions(in *yaml.Node, context *compiler.Context) (*ParameterDefinitions, error) {\n\terrors := make([]error, 0)\n\tx := &ParameterDefinitions{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedParameter additional_properties = 1;\n\t\t// MAP: Parameter\n\t\tx.AdditionalProperties = make([]*NamedParameter, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedParameter{}\n\t\t\t\tpair.Name = k\n\t\t\t\tvar err error\n\t\t\t\tpair.Value, err = NewParameter(v, compiler.NewContext(k, v, context))\n\t\t\t\tif err != nil {\n\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewParametersItem creates an object of type ParametersItem if possible, returning an error if not.\nfunc NewParametersItem(in *yaml.Node, context *compiler.Context) (*ParametersItem, error) {\n\terrors := make([]error, 0)\n\tx := &ParametersItem{}\n\tmatched := false\n\t// Parameter parameter = 1;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewParameter(m, compiler.NewContext(\"parameter\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &ParametersItem_Parameter{Parameter: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\t// JsonReference json_reference = 2;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewJsonReference(m, compiler.NewContext(\"jsonReference\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &ParametersItem_JsonReference{JsonReference: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\tif matched {\n\t\t// since the oneof matched one of its possibilities, discard any matching errors\n\t\terrors = make([]error, 0)\n\t} else {\n\t\tmessage := fmt.Sprintf(\"contains an invalid ParametersItem\")\n\t\terr := compiler.NewError(context, message)\n\t\terrors = []error{err}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewPathItem creates an object of type PathItem if possible, returning an error if not.\nfunc NewPathItem(in *yaml.Node, context *compiler.Context) (*PathItem, error) {\n\terrors := make([]error, 0)\n\tx := &PathItem{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"$ref\", \"delete\", \"get\", \"head\", \"options\", \"parameters\", \"patch\", \"post\", \"put\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string _ref = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"$ref\")\n\t\tif v1 != nil {\n\t\t\tx.XRef, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for $ref: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Operation get = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"get\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Get, err = NewOperation(v2, compiler.NewContext(\"get\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Operation put = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"put\")\n\t\tif v3 != nil {\n\t\t\tvar err error\n\t\t\tx.Put, err = NewOperation(v3, compiler.NewContext(\"put\", v3, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Operation post = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"post\")\n\t\tif v4 != nil {\n\t\t\tvar err error\n\t\t\tx.Post, err = NewOperation(v4, compiler.NewContext(\"post\", v4, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Operation delete = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"delete\")\n\t\tif v5 != nil {\n\t\t\tvar err error\n\t\t\tx.Delete, err = NewOperation(v5, compiler.NewContext(\"delete\", v5, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Operation options = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"options\")\n\t\tif v6 != nil {\n\t\t\tvar err error\n\t\t\tx.Options, err = NewOperation(v6, compiler.NewContext(\"options\", v6, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Operation head = 7;\n\t\tv7 := compiler.MapValueForKey(m, \"head\")\n\t\tif v7 != nil {\n\t\t\tvar err error\n\t\t\tx.Head, err = NewOperation(v7, compiler.NewContext(\"head\", v7, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Operation patch = 8;\n\t\tv8 := compiler.MapValueForKey(m, \"patch\")\n\t\tif v8 != nil {\n\t\t\tvar err error\n\t\t\tx.Patch, err = NewOperation(v8, compiler.NewContext(\"patch\", v8, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated ParametersItem parameters = 9;\n\t\tv9 := compiler.MapValueForKey(m, \"parameters\")\n\t\tif v9 != nil {\n\t\t\t// repeated ParametersItem\n\t\t\tx.Parameters = make([]*ParametersItem, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v9)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewParametersItem(item, compiler.NewContext(\"parameters\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Parameters = append(x.Parameters, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 10;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewPathParameterSubSchema creates an object of type PathParameterSubSchema if possible, returning an error if not.\nfunc NewPathParameterSubSchema(in *yaml.Node, context *compiler.Context) (*PathParameterSubSchema, error) {\n\terrors := make([]error, 0)\n\tx := &PathParameterSubSchema{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"required\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"collectionFormat\", \"default\", \"description\", \"enum\", \"exclusiveMaximum\", \"exclusiveMinimum\", \"format\", \"in\", \"items\", \"maxItems\", \"maxLength\", \"maximum\", \"minItems\", \"minLength\", \"minimum\", \"multipleOf\", \"name\", \"pattern\", \"required\", \"type\", \"uniqueItems\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// bool required = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"required\")\n\t\tif v1 != nil {\n\t\t\tx.Required, ok = compiler.BoolForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for required: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string in = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"in\")\n\t\tif v2 != nil {\n\t\t\tx.In, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for in: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [path]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"path\"}, x.In) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for in: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"description\")\n\t\tif v3 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string name = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"name\")\n\t\tif v4 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string type = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"type\")\n\t\tif v5 != nil {\n\t\t\tx.Type, ok = compiler.StringForScalarNode(v5)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [string number boolean integer array]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"string\", \"number\", \"boolean\", \"integer\", \"array\"}, x.Type) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string format = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"format\")\n\t\tif v6 != nil {\n\t\t\tx.Format, ok = compiler.StringForScalarNode(v6)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for format: %s\", compiler.Display(v6))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// PrimitivesItems items = 7;\n\t\tv7 := compiler.MapValueForKey(m, \"items\")\n\t\tif v7 != nil {\n\t\t\tvar err error\n\t\t\tx.Items, err = NewPrimitivesItems(v7, compiler.NewContext(\"items\", v7, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// string collection_format = 8;\n\t\tv8 := compiler.MapValueForKey(m, \"collectionFormat\")\n\t\tif v8 != nil {\n\t\t\tx.CollectionFormat, ok = compiler.StringForScalarNode(v8)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for collectionFormat: %s\", compiler.Display(v8))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [csv ssv tsv pipes]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"csv\", \"ssv\", \"tsv\", \"pipes\"}, x.CollectionFormat) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for collectionFormat: %s\", compiler.Display(v8))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Any default = 9;\n\t\tv9 := compiler.MapValueForKey(m, \"default\")\n\t\tif v9 != nil {\n\t\t\tvar err error\n\t\t\tx.Default, err = NewAny(v9, compiler.NewContext(\"default\", v9, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// float maximum = 10;\n\t\tv10 := compiler.MapValueForKey(m, \"maximum\")\n\t\tif v10 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v10)\n\t\t\tif ok {\n\t\t\t\tx.Maximum = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maximum: %s\", compiler.Display(v10))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool exclusive_maximum = 11;\n\t\tv11 := compiler.MapValueForKey(m, \"exclusiveMaximum\")\n\t\tif v11 != nil {\n\t\t\tx.ExclusiveMaximum, ok = compiler.BoolForScalarNode(v11)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for exclusiveMaximum: %s\", compiler.Display(v11))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// float minimum = 12;\n\t\tv12 := compiler.MapValueForKey(m, \"minimum\")\n\t\tif v12 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v12)\n\t\t\tif ok {\n\t\t\t\tx.Minimum = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minimum: %s\", compiler.Display(v12))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool exclusive_minimum = 13;\n\t\tv13 := compiler.MapValueForKey(m, \"exclusiveMinimum\")\n\t\tif v13 != nil {\n\t\t\tx.ExclusiveMinimum, ok = compiler.BoolForScalarNode(v13)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for exclusiveMinimum: %s\", compiler.Display(v13))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 max_length = 14;\n\t\tv14 := compiler.MapValueForKey(m, \"maxLength\")\n\t\tif v14 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v14)\n\t\t\tif ok {\n\t\t\t\tx.MaxLength = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maxLength: %s\", compiler.Display(v14))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 min_length = 15;\n\t\tv15 := compiler.MapValueForKey(m, \"minLength\")\n\t\tif v15 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v15)\n\t\t\tif ok {\n\t\t\t\tx.MinLength = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minLength: %s\", compiler.Display(v15))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string pattern = 16;\n\t\tv16 := compiler.MapValueForKey(m, \"pattern\")\n\t\tif v16 != nil {\n\t\t\tx.Pattern, ok = compiler.StringForScalarNode(v16)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for pattern: %s\", compiler.Display(v16))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 max_items = 17;\n\t\tv17 := compiler.MapValueForKey(m, \"maxItems\")\n\t\tif v17 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v17)\n\t\t\tif ok {\n\t\t\t\tx.MaxItems = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maxItems: %s\", compiler.Display(v17))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 min_items = 18;\n\t\tv18 := compiler.MapValueForKey(m, \"minItems\")\n\t\tif v18 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v18)\n\t\t\tif ok {\n\t\t\t\tx.MinItems = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minItems: %s\", compiler.Display(v18))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool unique_items = 19;\n\t\tv19 := compiler.MapValueForKey(m, \"uniqueItems\")\n\t\tif v19 != nil {\n\t\t\tx.UniqueItems, ok = compiler.BoolForScalarNode(v19)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for uniqueItems: %s\", compiler.Display(v19))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated Any enum = 20;\n\t\tv20 := compiler.MapValueForKey(m, \"enum\")\n\t\tif v20 != nil {\n\t\t\t// repeated Any\n\t\t\tx.Enum = make([]*Any, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v20)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewAny(item, compiler.NewContext(\"enum\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Enum = append(x.Enum, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// float multiple_of = 21;\n\t\tv21 := compiler.MapValueForKey(m, \"multipleOf\")\n\t\tif v21 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v21)\n\t\t\tif ok {\n\t\t\t\tx.MultipleOf = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for multipleOf: %s\", compiler.Display(v21))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 22;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewPaths creates an object of type Paths if possible, returning an error if not.\nfunc NewPaths(in *yaml.Node, context *compiler.Context) (*Paths, error) {\n\terrors := make([]error, 0)\n\tx := &Paths{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0, pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 1;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// repeated NamedPathItem path = 2;\n\t\t// MAP: PathItem ^/\n\t\tx.Path = make([]*NamedPathItem, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"/\") {\n\t\t\t\t\tpair := &NamedPathItem{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tvar err error\n\t\t\t\t\tpair.Value, err = NewPathItem(v, compiler.NewContext(k, v, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Path = append(x.Path, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewPrimitivesItems creates an object of type PrimitivesItems if possible, returning an error if not.\nfunc NewPrimitivesItems(in *yaml.Node, context *compiler.Context) (*PrimitivesItems, error) {\n\terrors := make([]error, 0)\n\tx := &PrimitivesItems{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"collectionFormat\", \"default\", \"enum\", \"exclusiveMaximum\", \"exclusiveMinimum\", \"format\", \"items\", \"maxItems\", \"maxLength\", \"maximum\", \"minItems\", \"minLength\", \"minimum\", \"multipleOf\", \"pattern\", \"type\", \"uniqueItems\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string type = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"type\")\n\t\tif v1 != nil {\n\t\t\tx.Type, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [string number integer boolean array]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"string\", \"number\", \"integer\", \"boolean\", \"array\"}, x.Type) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string format = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"format\")\n\t\tif v2 != nil {\n\t\t\tx.Format, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for format: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// PrimitivesItems items = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"items\")\n\t\tif v3 != nil {\n\t\t\tvar err error\n\t\t\tx.Items, err = NewPrimitivesItems(v3, compiler.NewContext(\"items\", v3, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// string collection_format = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"collectionFormat\")\n\t\tif v4 != nil {\n\t\t\tx.CollectionFormat, ok = compiler.StringForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for collectionFormat: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [csv ssv tsv pipes]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"csv\", \"ssv\", \"tsv\", \"pipes\"}, x.CollectionFormat) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for collectionFormat: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Any default = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"default\")\n\t\tif v5 != nil {\n\t\t\tvar err error\n\t\t\tx.Default, err = NewAny(v5, compiler.NewContext(\"default\", v5, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// float maximum = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"maximum\")\n\t\tif v6 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v6)\n\t\t\tif ok {\n\t\t\t\tx.Maximum = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maximum: %s\", compiler.Display(v6))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool exclusive_maximum = 7;\n\t\tv7 := compiler.MapValueForKey(m, \"exclusiveMaximum\")\n\t\tif v7 != nil {\n\t\t\tx.ExclusiveMaximum, ok = compiler.BoolForScalarNode(v7)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for exclusiveMaximum: %s\", compiler.Display(v7))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// float minimum = 8;\n\t\tv8 := compiler.MapValueForKey(m, \"minimum\")\n\t\tif v8 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v8)\n\t\t\tif ok {\n\t\t\t\tx.Minimum = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minimum: %s\", compiler.Display(v8))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool exclusive_minimum = 9;\n\t\tv9 := compiler.MapValueForKey(m, \"exclusiveMinimum\")\n\t\tif v9 != nil {\n\t\t\tx.ExclusiveMinimum, ok = compiler.BoolForScalarNode(v9)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for exclusiveMinimum: %s\", compiler.Display(v9))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 max_length = 10;\n\t\tv10 := compiler.MapValueForKey(m, \"maxLength\")\n\t\tif v10 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v10)\n\t\t\tif ok {\n\t\t\t\tx.MaxLength = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maxLength: %s\", compiler.Display(v10))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 min_length = 11;\n\t\tv11 := compiler.MapValueForKey(m, \"minLength\")\n\t\tif v11 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v11)\n\t\t\tif ok {\n\t\t\t\tx.MinLength = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minLength: %s\", compiler.Display(v11))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string pattern = 12;\n\t\tv12 := compiler.MapValueForKey(m, \"pattern\")\n\t\tif v12 != nil {\n\t\t\tx.Pattern, ok = compiler.StringForScalarNode(v12)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for pattern: %s\", compiler.Display(v12))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 max_items = 13;\n\t\tv13 := compiler.MapValueForKey(m, \"maxItems\")\n\t\tif v13 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v13)\n\t\t\tif ok {\n\t\t\t\tx.MaxItems = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maxItems: %s\", compiler.Display(v13))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 min_items = 14;\n\t\tv14 := compiler.MapValueForKey(m, \"minItems\")\n\t\tif v14 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v14)\n\t\t\tif ok {\n\t\t\t\tx.MinItems = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minItems: %s\", compiler.Display(v14))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool unique_items = 15;\n\t\tv15 := compiler.MapValueForKey(m, \"uniqueItems\")\n\t\tif v15 != nil {\n\t\t\tx.UniqueItems, ok = compiler.BoolForScalarNode(v15)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for uniqueItems: %s\", compiler.Display(v15))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated Any enum = 16;\n\t\tv16 := compiler.MapValueForKey(m, \"enum\")\n\t\tif v16 != nil {\n\t\t\t// repeated Any\n\t\t\tx.Enum = make([]*Any, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v16)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewAny(item, compiler.NewContext(\"enum\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Enum = append(x.Enum, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// float multiple_of = 17;\n\t\tv17 := compiler.MapValueForKey(m, \"multipleOf\")\n\t\tif v17 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v17)\n\t\t\tif ok {\n\t\t\t\tx.MultipleOf = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for multipleOf: %s\", compiler.Display(v17))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 18;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewProperties creates an object of type Properties if possible, returning an error if not.\nfunc NewProperties(in *yaml.Node, context *compiler.Context) (*Properties, error) {\n\terrors := make([]error, 0)\n\tx := &Properties{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedSchema additional_properties = 1;\n\t\t// MAP: Schema\n\t\tx.AdditionalProperties = make([]*NamedSchema, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedSchema{}\n\t\t\t\tpair.Name = k\n\t\t\t\tvar err error\n\t\t\t\tpair.Value, err = NewSchema(v, compiler.NewContext(k, v, context))\n\t\t\t\tif err != nil {\n\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewQueryParameterSubSchema creates an object of type QueryParameterSubSchema if possible, returning an error if not.\nfunc NewQueryParameterSubSchema(in *yaml.Node, context *compiler.Context) (*QueryParameterSubSchema, error) {\n\terrors := make([]error, 0)\n\tx := &QueryParameterSubSchema{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"allowEmptyValue\", \"collectionFormat\", \"default\", \"description\", \"enum\", \"exclusiveMaximum\", \"exclusiveMinimum\", \"format\", \"in\", \"items\", \"maxItems\", \"maxLength\", \"maximum\", \"minItems\", \"minLength\", \"minimum\", \"multipleOf\", \"name\", \"pattern\", \"required\", \"type\", \"uniqueItems\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// bool required = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"required\")\n\t\tif v1 != nil {\n\t\t\tx.Required, ok = compiler.BoolForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for required: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string in = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"in\")\n\t\tif v2 != nil {\n\t\t\tx.In, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for in: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [query]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"query\"}, x.In) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for in: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"description\")\n\t\tif v3 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string name = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"name\")\n\t\tif v4 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool allow_empty_value = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"allowEmptyValue\")\n\t\tif v5 != nil {\n\t\t\tx.AllowEmptyValue, ok = compiler.BoolForScalarNode(v5)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for allowEmptyValue: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string type = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"type\")\n\t\tif v6 != nil {\n\t\t\tx.Type, ok = compiler.StringForScalarNode(v6)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v6))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [string number boolean integer array]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"string\", \"number\", \"boolean\", \"integer\", \"array\"}, x.Type) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v6))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string format = 7;\n\t\tv7 := compiler.MapValueForKey(m, \"format\")\n\t\tif v7 != nil {\n\t\t\tx.Format, ok = compiler.StringForScalarNode(v7)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for format: %s\", compiler.Display(v7))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// PrimitivesItems items = 8;\n\t\tv8 := compiler.MapValueForKey(m, \"items\")\n\t\tif v8 != nil {\n\t\t\tvar err error\n\t\t\tx.Items, err = NewPrimitivesItems(v8, compiler.NewContext(\"items\", v8, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// string collection_format = 9;\n\t\tv9 := compiler.MapValueForKey(m, \"collectionFormat\")\n\t\tif v9 != nil {\n\t\t\tx.CollectionFormat, ok = compiler.StringForScalarNode(v9)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for collectionFormat: %s\", compiler.Display(v9))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t\t// check for valid enum values\n\t\t\t// [csv ssv tsv pipes multi]\n\t\t\tif ok && !compiler.StringArrayContainsValue([]string{\"csv\", \"ssv\", \"tsv\", \"pipes\", \"multi\"}, x.CollectionFormat) {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for collectionFormat: %s\", compiler.Display(v9))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Any default = 10;\n\t\tv10 := compiler.MapValueForKey(m, \"default\")\n\t\tif v10 != nil {\n\t\t\tvar err error\n\t\t\tx.Default, err = NewAny(v10, compiler.NewContext(\"default\", v10, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// float maximum = 11;\n\t\tv11 := compiler.MapValueForKey(m, \"maximum\")\n\t\tif v11 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v11)\n\t\t\tif ok {\n\t\t\t\tx.Maximum = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maximum: %s\", compiler.Display(v11))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool exclusive_maximum = 12;\n\t\tv12 := compiler.MapValueForKey(m, \"exclusiveMaximum\")\n\t\tif v12 != nil {\n\t\t\tx.ExclusiveMaximum, ok = compiler.BoolForScalarNode(v12)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for exclusiveMaximum: %s\", compiler.Display(v12))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// float minimum = 13;\n\t\tv13 := compiler.MapValueForKey(m, \"minimum\")\n\t\tif v13 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v13)\n\t\t\tif ok {\n\t\t\t\tx.Minimum = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minimum: %s\", compiler.Display(v13))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool exclusive_minimum = 14;\n\t\tv14 := compiler.MapValueForKey(m, \"exclusiveMinimum\")\n\t\tif v14 != nil {\n\t\t\tx.ExclusiveMinimum, ok = compiler.BoolForScalarNode(v14)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for exclusiveMinimum: %s\", compiler.Display(v14))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 max_length = 15;\n\t\tv15 := compiler.MapValueForKey(m, \"maxLength\")\n\t\tif v15 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v15)\n\t\t\tif ok {\n\t\t\t\tx.MaxLength = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maxLength: %s\", compiler.Display(v15))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 min_length = 16;\n\t\tv16 := compiler.MapValueForKey(m, \"minLength\")\n\t\tif v16 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v16)\n\t\t\tif ok {\n\t\t\t\tx.MinLength = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minLength: %s\", compiler.Display(v16))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string pattern = 17;\n\t\tv17 := compiler.MapValueForKey(m, \"pattern\")\n\t\tif v17 != nil {\n\t\t\tx.Pattern, ok = compiler.StringForScalarNode(v17)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for pattern: %s\", compiler.Display(v17))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 max_items = 18;\n\t\tv18 := compiler.MapValueForKey(m, \"maxItems\")\n\t\tif v18 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v18)\n\t\t\tif ok {\n\t\t\t\tx.MaxItems = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maxItems: %s\", compiler.Display(v18))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 min_items = 19;\n\t\tv19 := compiler.MapValueForKey(m, \"minItems\")\n\t\tif v19 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v19)\n\t\t\tif ok {\n\t\t\t\tx.MinItems = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minItems: %s\", compiler.Display(v19))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool unique_items = 20;\n\t\tv20 := compiler.MapValueForKey(m, \"uniqueItems\")\n\t\tif v20 != nil {\n\t\t\tx.UniqueItems, ok = compiler.BoolForScalarNode(v20)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for uniqueItems: %s\", compiler.Display(v20))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated Any enum = 21;\n\t\tv21 := compiler.MapValueForKey(m, \"enum\")\n\t\tif v21 != nil {\n\t\t\t// repeated Any\n\t\t\tx.Enum = make([]*Any, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v21)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewAny(item, compiler.NewContext(\"enum\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Enum = append(x.Enum, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// float multiple_of = 22;\n\t\tv22 := compiler.MapValueForKey(m, \"multipleOf\")\n\t\tif v22 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v22)\n\t\t\tif ok {\n\t\t\t\tx.MultipleOf = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for multipleOf: %s\", compiler.Display(v22))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 23;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewResponse creates an object of type Response if possible, returning an error if not.\nfunc NewResponse(in *yaml.Node, context *compiler.Context) (*Response, error) {\n\terrors := make([]error, 0)\n\tx := &Response{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"description\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"description\", \"examples\", \"headers\", \"schema\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string description = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"description\")\n\t\tif v1 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// SchemaItem schema = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"schema\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Schema, err = NewSchemaItem(v2, compiler.NewContext(\"schema\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Headers headers = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"headers\")\n\t\tif v3 != nil {\n\t\t\tvar err error\n\t\t\tx.Headers, err = NewHeaders(v3, compiler.NewContext(\"headers\", v3, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Examples examples = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"examples\")\n\t\tif v4 != nil {\n\t\t\tvar err error\n\t\t\tx.Examples, err = NewExamples(v4, compiler.NewContext(\"examples\", v4, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 5;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewResponseDefinitions creates an object of type ResponseDefinitions if possible, returning an error if not.\nfunc NewResponseDefinitions(in *yaml.Node, context *compiler.Context) (*ResponseDefinitions, error) {\n\terrors := make([]error, 0)\n\tx := &ResponseDefinitions{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedResponse additional_properties = 1;\n\t\t// MAP: Response\n\t\tx.AdditionalProperties = make([]*NamedResponse, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedResponse{}\n\t\t\t\tpair.Name = k\n\t\t\t\tvar err error\n\t\t\t\tpair.Value, err = NewResponse(v, compiler.NewContext(k, v, context))\n\t\t\t\tif err != nil {\n\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewResponseValue creates an object of type ResponseValue if possible, returning an error if not.\nfunc NewResponseValue(in *yaml.Node, context *compiler.Context) (*ResponseValue, error) {\n\terrors := make([]error, 0)\n\tx := &ResponseValue{}\n\tmatched := false\n\t// Response response = 1;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewResponse(m, compiler.NewContext(\"response\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &ResponseValue_Response{Response: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\t// JsonReference json_reference = 2;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewJsonReference(m, compiler.NewContext(\"jsonReference\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &ResponseValue_JsonReference{JsonReference: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\tif matched {\n\t\t// since the oneof matched one of its possibilities, discard any matching errors\n\t\terrors = make([]error, 0)\n\t} else {\n\t\tmessage := fmt.Sprintf(\"contains an invalid ResponseValue\")\n\t\terr := compiler.NewError(context, message)\n\t\terrors = []error{err}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewResponses creates an object of type Responses if possible, returning an error if not.\nfunc NewResponses(in *yaml.Node, context *compiler.Context) (*Responses, error) {\n\terrors := make([]error, 0)\n\tx := &Responses{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{}\n\t\tallowedPatterns := []*regexp.Regexp{pattern2, pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// repeated NamedResponseValue response_code = 1;\n\t\t// MAP: ResponseValue ^([0-9]{3})$|^(default)$\n\t\tx.ResponseCode = make([]*NamedResponseValue, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif pattern2.MatchString(k) {\n\t\t\t\t\tpair := &NamedResponseValue{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tvar err error\n\t\t\t\t\tpair.Value, err = NewResponseValue(v, compiler.NewContext(k, v, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.ResponseCode = append(x.ResponseCode, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 2;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewSchema creates an object of type Schema if possible, returning an error if not.\nfunc NewSchema(in *yaml.Node, context *compiler.Context) (*Schema, error) {\n\terrors := make([]error, 0)\n\tx := &Schema{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"$ref\", \"additionalProperties\", \"allOf\", \"default\", \"description\", \"discriminator\", \"enum\", \"example\", \"exclusiveMaximum\", \"exclusiveMinimum\", \"externalDocs\", \"format\", \"items\", \"maxItems\", \"maxLength\", \"maxProperties\", \"maximum\", \"minItems\", \"minLength\", \"minProperties\", \"minimum\", \"multipleOf\", \"pattern\", \"properties\", \"readOnly\", \"required\", \"title\", \"type\", \"uniqueItems\", \"xml\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string _ref = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"$ref\")\n\t\tif v1 != nil {\n\t\t\tx.XRef, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for $ref: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string format = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"format\")\n\t\tif v2 != nil {\n\t\t\tx.Format, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for format: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string title = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"title\")\n\t\tif v3 != nil {\n\t\t\tx.Title, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for title: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"description\")\n\t\tif v4 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Any default = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"default\")\n\t\tif v5 != nil {\n\t\t\tvar err error\n\t\t\tx.Default, err = NewAny(v5, compiler.NewContext(\"default\", v5, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// float multiple_of = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"multipleOf\")\n\t\tif v6 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v6)\n\t\t\tif ok {\n\t\t\t\tx.MultipleOf = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for multipleOf: %s\", compiler.Display(v6))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// float maximum = 7;\n\t\tv7 := compiler.MapValueForKey(m, \"maximum\")\n\t\tif v7 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v7)\n\t\t\tif ok {\n\t\t\t\tx.Maximum = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maximum: %s\", compiler.Display(v7))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool exclusive_maximum = 8;\n\t\tv8 := compiler.MapValueForKey(m, \"exclusiveMaximum\")\n\t\tif v8 != nil {\n\t\t\tx.ExclusiveMaximum, ok = compiler.BoolForScalarNode(v8)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for exclusiveMaximum: %s\", compiler.Display(v8))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// float minimum = 9;\n\t\tv9 := compiler.MapValueForKey(m, \"minimum\")\n\t\tif v9 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v9)\n\t\t\tif ok {\n\t\t\t\tx.Minimum = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minimum: %s\", compiler.Display(v9))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool exclusive_minimum = 10;\n\t\tv10 := compiler.MapValueForKey(m, \"exclusiveMinimum\")\n\t\tif v10 != nil {\n\t\t\tx.ExclusiveMinimum, ok = compiler.BoolForScalarNode(v10)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for exclusiveMinimum: %s\", compiler.Display(v10))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 max_length = 11;\n\t\tv11 := compiler.MapValueForKey(m, \"maxLength\")\n\t\tif v11 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v11)\n\t\t\tif ok {\n\t\t\t\tx.MaxLength = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maxLength: %s\", compiler.Display(v11))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 min_length = 12;\n\t\tv12 := compiler.MapValueForKey(m, \"minLength\")\n\t\tif v12 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v12)\n\t\t\tif ok {\n\t\t\t\tx.MinLength = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minLength: %s\", compiler.Display(v12))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string pattern = 13;\n\t\tv13 := compiler.MapValueForKey(m, \"pattern\")\n\t\tif v13 != nil {\n\t\t\tx.Pattern, ok = compiler.StringForScalarNode(v13)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for pattern: %s\", compiler.Display(v13))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 max_items = 14;\n\t\tv14 := compiler.MapValueForKey(m, \"maxItems\")\n\t\tif v14 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v14)\n\t\t\tif ok {\n\t\t\t\tx.MaxItems = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maxItems: %s\", compiler.Display(v14))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 min_items = 15;\n\t\tv15 := compiler.MapValueForKey(m, \"minItems\")\n\t\tif v15 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v15)\n\t\t\tif ok {\n\t\t\t\tx.MinItems = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minItems: %s\", compiler.Display(v15))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool unique_items = 16;\n\t\tv16 := compiler.MapValueForKey(m, \"uniqueItems\")\n\t\tif v16 != nil {\n\t\t\tx.UniqueItems, ok = compiler.BoolForScalarNode(v16)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for uniqueItems: %s\", compiler.Display(v16))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 max_properties = 17;\n\t\tv17 := compiler.MapValueForKey(m, \"maxProperties\")\n\t\tif v17 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v17)\n\t\t\tif ok {\n\t\t\t\tx.MaxProperties = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maxProperties: %s\", compiler.Display(v17))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 min_properties = 18;\n\t\tv18 := compiler.MapValueForKey(m, \"minProperties\")\n\t\tif v18 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v18)\n\t\t\tif ok {\n\t\t\t\tx.MinProperties = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minProperties: %s\", compiler.Display(v18))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated string required = 19;\n\t\tv19 := compiler.MapValueForKey(m, \"required\")\n\t\tif v19 != nil {\n\t\t\tv, ok := compiler.SequenceNodeForNode(v19)\n\t\t\tif ok {\n\t\t\t\tx.Required = compiler.StringArrayForSequenceNode(v)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for required: %s\", compiler.Display(v19))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated Any enum = 20;\n\t\tv20 := compiler.MapValueForKey(m, \"enum\")\n\t\tif v20 != nil {\n\t\t\t// repeated Any\n\t\t\tx.Enum = make([]*Any, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v20)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewAny(item, compiler.NewContext(\"enum\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Enum = append(x.Enum, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// AdditionalPropertiesItem additional_properties = 21;\n\t\tv21 := compiler.MapValueForKey(m, \"additionalProperties\")\n\t\tif v21 != nil {\n\t\t\tvar err error\n\t\t\tx.AdditionalProperties, err = NewAdditionalPropertiesItem(v21, compiler.NewContext(\"additionalProperties\", v21, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// TypeItem type = 22;\n\t\tv22 := compiler.MapValueForKey(m, \"type\")\n\t\tif v22 != nil {\n\t\t\tvar err error\n\t\t\tx.Type, err = NewTypeItem(v22, compiler.NewContext(\"type\", v22, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// ItemsItem items = 23;\n\t\tv23 := compiler.MapValueForKey(m, \"items\")\n\t\tif v23 != nil {\n\t\t\tvar err error\n\t\t\tx.Items, err = NewItemsItem(v23, compiler.NewContext(\"items\", v23, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated Schema all_of = 24;\n\t\tv24 := compiler.MapValueForKey(m, \"allOf\")\n\t\tif v24 != nil {\n\t\t\t// repeated Schema\n\t\t\tx.AllOf = make([]*Schema, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v24)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewSchema(item, compiler.NewContext(\"allOf\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.AllOf = append(x.AllOf, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Properties properties = 25;\n\t\tv25 := compiler.MapValueForKey(m, \"properties\")\n\t\tif v25 != nil {\n\t\t\tvar err error\n\t\t\tx.Properties, err = NewProperties(v25, compiler.NewContext(\"properties\", v25, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// string discriminator = 26;\n\t\tv26 := compiler.MapValueForKey(m, \"discriminator\")\n\t\tif v26 != nil {\n\t\t\tx.Discriminator, ok = compiler.StringForScalarNode(v26)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for discriminator: %s\", compiler.Display(v26))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool read_only = 27;\n\t\tv27 := compiler.MapValueForKey(m, \"readOnly\")\n\t\tif v27 != nil {\n\t\t\tx.ReadOnly, ok = compiler.BoolForScalarNode(v27)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for readOnly: %s\", compiler.Display(v27))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Xml xml = 28;\n\t\tv28 := compiler.MapValueForKey(m, \"xml\")\n\t\tif v28 != nil {\n\t\t\tvar err error\n\t\t\tx.Xml, err = NewXml(v28, compiler.NewContext(\"xml\", v28, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// ExternalDocs external_docs = 29;\n\t\tv29 := compiler.MapValueForKey(m, \"externalDocs\")\n\t\tif v29 != nil {\n\t\t\tvar err error\n\t\t\tx.ExternalDocs, err = NewExternalDocs(v29, compiler.NewContext(\"externalDocs\", v29, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Any example = 30;\n\t\tv30 := compiler.MapValueForKey(m, \"example\")\n\t\tif v30 != nil {\n\t\t\tvar err error\n\t\t\tx.Example, err = NewAny(v30, compiler.NewContext(\"example\", v30, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 31;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewSchemaItem creates an object of type SchemaItem if possible, returning an error if not.\nfunc NewSchemaItem(in *yaml.Node, context *compiler.Context) (*SchemaItem, error) {\n\terrors := make([]error, 0)\n\tx := &SchemaItem{}\n\tmatched := false\n\t// Schema schema = 1;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewSchema(m, compiler.NewContext(\"schema\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &SchemaItem_Schema{Schema: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\t// FileSchema file_schema = 2;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewFileSchema(m, compiler.NewContext(\"fileSchema\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &SchemaItem_FileSchema{FileSchema: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\tif matched {\n\t\t// since the oneof matched one of its possibilities, discard any matching errors\n\t\terrors = make([]error, 0)\n\t} else {\n\t\tmessage := fmt.Sprintf(\"contains an invalid SchemaItem\")\n\t\terr := compiler.NewError(context, message)\n\t\terrors = []error{err}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewSecurityDefinitions creates an object of type SecurityDefinitions if possible, returning an error if not.\nfunc NewSecurityDefinitions(in *yaml.Node, context *compiler.Context) (*SecurityDefinitions, error) {\n\terrors := make([]error, 0)\n\tx := &SecurityDefinitions{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedSecurityDefinitionsItem additional_properties = 1;\n\t\t// MAP: SecurityDefinitionsItem\n\t\tx.AdditionalProperties = make([]*NamedSecurityDefinitionsItem, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedSecurityDefinitionsItem{}\n\t\t\t\tpair.Name = k\n\t\t\t\tvar err error\n\t\t\t\tpair.Value, err = NewSecurityDefinitionsItem(v, compiler.NewContext(k, v, context))\n\t\t\t\tif err != nil {\n\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewSecurityDefinitionsItem creates an object of type SecurityDefinitionsItem if possible, returning an error if not.\nfunc NewSecurityDefinitionsItem(in *yaml.Node, context *compiler.Context) (*SecurityDefinitionsItem, error) {\n\terrors := make([]error, 0)\n\tx := &SecurityDefinitionsItem{}\n\tmatched := false\n\t// BasicAuthenticationSecurity basic_authentication_security = 1;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewBasicAuthenticationSecurity(m, compiler.NewContext(\"basicAuthenticationSecurity\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &SecurityDefinitionsItem_BasicAuthenticationSecurity{BasicAuthenticationSecurity: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\t// ApiKeySecurity api_key_security = 2;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewApiKeySecurity(m, compiler.NewContext(\"apiKeySecurity\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &SecurityDefinitionsItem_ApiKeySecurity{ApiKeySecurity: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\t// Oauth2ImplicitSecurity oauth2_implicit_security = 3;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewOauth2ImplicitSecurity(m, compiler.NewContext(\"oauth2ImplicitSecurity\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &SecurityDefinitionsItem_Oauth2ImplicitSecurity{Oauth2ImplicitSecurity: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\t// Oauth2PasswordSecurity oauth2_password_security = 4;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewOauth2PasswordSecurity(m, compiler.NewContext(\"oauth2PasswordSecurity\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &SecurityDefinitionsItem_Oauth2PasswordSecurity{Oauth2PasswordSecurity: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\t// Oauth2ApplicationSecurity oauth2_application_security = 5;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewOauth2ApplicationSecurity(m, compiler.NewContext(\"oauth2ApplicationSecurity\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &SecurityDefinitionsItem_Oauth2ApplicationSecurity{Oauth2ApplicationSecurity: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\t// Oauth2AccessCodeSecurity oauth2_access_code_security = 6;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewOauth2AccessCodeSecurity(m, compiler.NewContext(\"oauth2AccessCodeSecurity\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &SecurityDefinitionsItem_Oauth2AccessCodeSecurity{Oauth2AccessCodeSecurity: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\tif matched {\n\t\t// since the oneof matched one of its possibilities, discard any matching errors\n\t\terrors = make([]error, 0)\n\t} else {\n\t\tmessage := fmt.Sprintf(\"contains an invalid SecurityDefinitionsItem\")\n\t\terr := compiler.NewError(context, message)\n\t\terrors = []error{err}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewSecurityRequirement creates an object of type SecurityRequirement if possible, returning an error if not.\nfunc NewSecurityRequirement(in *yaml.Node, context *compiler.Context) (*SecurityRequirement, error) {\n\terrors := make([]error, 0)\n\tx := &SecurityRequirement{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedStringArray additional_properties = 1;\n\t\t// MAP: StringArray\n\t\tx.AdditionalProperties = make([]*NamedStringArray, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedStringArray{}\n\t\t\t\tpair.Name = k\n\t\t\t\tvar err error\n\t\t\t\tpair.Value, err = NewStringArray(v, compiler.NewContext(k, v, context))\n\t\t\t\tif err != nil {\n\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewStringArray creates an object of type StringArray if possible, returning an error if not.\nfunc NewStringArray(in *yaml.Node, context *compiler.Context) (*StringArray, error) {\n\terrors := make([]error, 0)\n\tx := &StringArray{}\n\tx.Value = make([]string, 0)\n\tfor _, node := range in.Content {\n\t\ts, _ := compiler.StringForScalarNode(node)\n\t\tx.Value = append(x.Value, s)\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewTag creates an object of type Tag if possible, returning an error if not.\nfunc NewTag(in *yaml.Node, context *compiler.Context) (*Tag, error) {\n\terrors := make([]error, 0)\n\tx := &Tag{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"name\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"description\", \"externalDocs\", \"name\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"description\")\n\t\tif v2 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// ExternalDocs external_docs = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"externalDocs\")\n\t\tif v3 != nil {\n\t\t\tvar err error\n\t\t\tx.ExternalDocs, err = NewExternalDocs(v3, compiler.NewContext(\"externalDocs\", v3, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 4;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewTypeItem creates an object of type TypeItem if possible, returning an error if not.\nfunc NewTypeItem(in *yaml.Node, context *compiler.Context) (*TypeItem, error) {\n\terrors := make([]error, 0)\n\tx := &TypeItem{}\n\tv1 := in\n\tswitch v1.Kind {\n\tcase yaml.ScalarNode:\n\t\tx.Value = make([]string, 0)\n\t\tx.Value = append(x.Value, v1.Value)\n\tcase yaml.SequenceNode:\n\t\tx.Value = make([]string, 0)\n\t\tfor _, v := range v1.Content {\n\t\t\tvalue := v.Value\n\t\t\tok := v.Kind == yaml.ScalarNode\n\t\t\tif ok {\n\t\t\t\tx.Value = append(x.Value, value)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for string array element: %+v (%T)\", value, value)\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\tdefault:\n\t\tmessage := fmt.Sprintf(\"has unexpected value for string array: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewVendorExtension creates an object of type VendorExtension if possible, returning an error if not.\nfunc NewVendorExtension(in *yaml.Node, context *compiler.Context) (*VendorExtension, error) {\n\terrors := make([]error, 0)\n\tx := &VendorExtension{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedAny additional_properties = 1;\n\t\t// MAP: Any\n\t\tx.AdditionalProperties = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedAny{}\n\t\t\t\tpair.Name = k\n\t\t\t\tresult := &Any{}\n\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\tif handled {\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewXml creates an object of type Xml if possible, returning an error if not.\nfunc NewXml(in *yaml.Node, context *compiler.Context) (*Xml, error) {\n\terrors := make([]error, 0)\n\tx := &Xml{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"attribute\", \"name\", \"namespace\", \"prefix\", \"wrapped\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string namespace = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"namespace\")\n\t\tif v2 != nil {\n\t\t\tx.Namespace, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for namespace: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string prefix = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"prefix\")\n\t\tif v3 != nil {\n\t\t\tx.Prefix, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for prefix: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool attribute = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"attribute\")\n\t\tif v4 != nil {\n\t\t\tx.Attribute, ok = compiler.BoolForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for attribute: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool wrapped = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"wrapped\")\n\t\tif v5 != nil {\n\t\t\tx.Wrapped, ok = compiler.BoolForScalarNode(v5)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for wrapped: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny vendor_extension = 6;\n\t\t// MAP: Any ^x-\n\t\tx.VendorExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.VendorExtension = append(x.VendorExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside AdditionalPropertiesItem objects.\nfunc (m *AdditionalPropertiesItem) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\t{\n\t\tp, ok := m.Oneof.(*AdditionalPropertiesItem_Schema)\n\t\tif ok {\n\t\t\t_, err := p.Schema.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Any objects.\nfunc (m *Any) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside ApiKeySecurity objects.\nfunc (m *ApiKeySecurity) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside BasicAuthenticationSecurity objects.\nfunc (m *BasicAuthenticationSecurity) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside BodyParameter objects.\nfunc (m *BodyParameter) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Schema != nil {\n\t\t_, err := m.Schema.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Contact objects.\nfunc (m *Contact) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Default objects.\nfunc (m *Default) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Definitions objects.\nfunc (m *Definitions) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Document objects.\nfunc (m *Document) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Info != nil {\n\t\t_, err := m.Info.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Paths != nil {\n\t\t_, err := m.Paths.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Definitions != nil {\n\t\t_, err := m.Definitions.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Parameters != nil {\n\t\t_, err := m.Parameters.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Responses != nil {\n\t\t_, err := m.Responses.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.Security {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tif m.SecurityDefinitions != nil {\n\t\t_, err := m.SecurityDefinitions.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.Tags {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tif m.ExternalDocs != nil {\n\t\t_, err := m.ExternalDocs.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Examples objects.\nfunc (m *Examples) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside ExternalDocs objects.\nfunc (m *ExternalDocs) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside FileSchema objects.\nfunc (m *FileSchema) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Default != nil {\n\t\t_, err := m.Default.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.ExternalDocs != nil {\n\t\t_, err := m.ExternalDocs.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Example != nil {\n\t\t_, err := m.Example.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside FormDataParameterSubSchema objects.\nfunc (m *FormDataParameterSubSchema) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Items != nil {\n\t\t_, err := m.Items.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Default != nil {\n\t\t_, err := m.Default.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.Enum {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Header objects.\nfunc (m *Header) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Items != nil {\n\t\t_, err := m.Items.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Default != nil {\n\t\t_, err := m.Default.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.Enum {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside HeaderParameterSubSchema objects.\nfunc (m *HeaderParameterSubSchema) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Items != nil {\n\t\t_, err := m.Items.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Default != nil {\n\t\t_, err := m.Default.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.Enum {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Headers objects.\nfunc (m *Headers) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Info objects.\nfunc (m *Info) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Contact != nil {\n\t\t_, err := m.Contact.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.License != nil {\n\t\t_, err := m.License.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside ItemsItem objects.\nfunc (m *ItemsItem) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.Schema {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside JsonReference objects.\nfunc (m *JsonReference) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.XRef != \"\" {\n\t\tinfo, err := compiler.ReadInfoForRef(root, m.XRef)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif info != nil {\n\t\t\treplacement, err := NewJsonReference(info, nil)\n\t\t\tif err == nil {\n\t\t\t\t*m = *replacement\n\t\t\t\treturn m.ResolveReferences(root)\n\t\t\t}\n\t\t}\n\t\treturn info, nil\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside License objects.\nfunc (m *License) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedAny objects.\nfunc (m *NamedAny) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedHeader objects.\nfunc (m *NamedHeader) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedParameter objects.\nfunc (m *NamedParameter) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedPathItem objects.\nfunc (m *NamedPathItem) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedResponse objects.\nfunc (m *NamedResponse) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedResponseValue objects.\nfunc (m *NamedResponseValue) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedSchema objects.\nfunc (m *NamedSchema) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedSecurityDefinitionsItem objects.\nfunc (m *NamedSecurityDefinitionsItem) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedString objects.\nfunc (m *NamedString) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedStringArray objects.\nfunc (m *NamedStringArray) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NonBodyParameter objects.\nfunc (m *NonBodyParameter) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\t{\n\t\tp, ok := m.Oneof.(*NonBodyParameter_HeaderParameterSubSchema)\n\t\tif ok {\n\t\t\t_, err := p.HeaderParameterSubSchema.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*NonBodyParameter_FormDataParameterSubSchema)\n\t\tif ok {\n\t\t\t_, err := p.FormDataParameterSubSchema.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*NonBodyParameter_QueryParameterSubSchema)\n\t\tif ok {\n\t\t\t_, err := p.QueryParameterSubSchema.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*NonBodyParameter_PathParameterSubSchema)\n\t\tif ok {\n\t\t\t_, err := p.PathParameterSubSchema.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Oauth2AccessCodeSecurity objects.\nfunc (m *Oauth2AccessCodeSecurity) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Scopes != nil {\n\t\t_, err := m.Scopes.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Oauth2ApplicationSecurity objects.\nfunc (m *Oauth2ApplicationSecurity) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Scopes != nil {\n\t\t_, err := m.Scopes.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Oauth2ImplicitSecurity objects.\nfunc (m *Oauth2ImplicitSecurity) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Scopes != nil {\n\t\t_, err := m.Scopes.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Oauth2PasswordSecurity objects.\nfunc (m *Oauth2PasswordSecurity) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Scopes != nil {\n\t\t_, err := m.Scopes.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Oauth2Scopes objects.\nfunc (m *Oauth2Scopes) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Operation objects.\nfunc (m *Operation) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.ExternalDocs != nil {\n\t\t_, err := m.ExternalDocs.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.Parameters {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tif m.Responses != nil {\n\t\t_, err := m.Responses.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.Security {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Parameter objects.\nfunc (m *Parameter) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\t{\n\t\tp, ok := m.Oneof.(*Parameter_BodyParameter)\n\t\tif ok {\n\t\t\t_, err := p.BodyParameter.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*Parameter_NonBodyParameter)\n\t\tif ok {\n\t\t\t_, err := p.NonBodyParameter.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside ParameterDefinitions objects.\nfunc (m *ParameterDefinitions) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside ParametersItem objects.\nfunc (m *ParametersItem) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\t{\n\t\tp, ok := m.Oneof.(*ParametersItem_Parameter)\n\t\tif ok {\n\t\t\t_, err := p.Parameter.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*ParametersItem_JsonReference)\n\t\tif ok {\n\t\t\tinfo, err := p.JsonReference.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t} else if info != nil {\n\t\t\t\tn, err := NewParametersItem(info, nil)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t} else if n != nil {\n\t\t\t\t\t*m = *n\n\t\t\t\t\treturn nil, nil\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside PathItem objects.\nfunc (m *PathItem) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.XRef != \"\" {\n\t\tinfo, err := compiler.ReadInfoForRef(root, m.XRef)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif info != nil {\n\t\t\treplacement, err := NewPathItem(info, nil)\n\t\t\tif err == nil {\n\t\t\t\t*m = *replacement\n\t\t\t\treturn m.ResolveReferences(root)\n\t\t\t}\n\t\t}\n\t\treturn info, nil\n\t}\n\tif m.Get != nil {\n\t\t_, err := m.Get.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Put != nil {\n\t\t_, err := m.Put.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Post != nil {\n\t\t_, err := m.Post.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Delete != nil {\n\t\t_, err := m.Delete.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Options != nil {\n\t\t_, err := m.Options.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Head != nil {\n\t\t_, err := m.Head.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Patch != nil {\n\t\t_, err := m.Patch.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.Parameters {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside PathParameterSubSchema objects.\nfunc (m *PathParameterSubSchema) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Items != nil {\n\t\t_, err := m.Items.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Default != nil {\n\t\t_, err := m.Default.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.Enum {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Paths objects.\nfunc (m *Paths) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tfor _, item := range m.Path {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside PrimitivesItems objects.\nfunc (m *PrimitivesItems) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Items != nil {\n\t\t_, err := m.Items.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Default != nil {\n\t\t_, err := m.Default.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.Enum {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Properties objects.\nfunc (m *Properties) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside QueryParameterSubSchema objects.\nfunc (m *QueryParameterSubSchema) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Items != nil {\n\t\t_, err := m.Items.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Default != nil {\n\t\t_, err := m.Default.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.Enum {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Response objects.\nfunc (m *Response) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Schema != nil {\n\t\t_, err := m.Schema.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Headers != nil {\n\t\t_, err := m.Headers.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Examples != nil {\n\t\t_, err := m.Examples.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside ResponseDefinitions objects.\nfunc (m *ResponseDefinitions) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside ResponseValue objects.\nfunc (m *ResponseValue) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\t{\n\t\tp, ok := m.Oneof.(*ResponseValue_Response)\n\t\tif ok {\n\t\t\t_, err := p.Response.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*ResponseValue_JsonReference)\n\t\tif ok {\n\t\t\tinfo, err := p.JsonReference.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t} else if info != nil {\n\t\t\t\tn, err := NewResponseValue(info, nil)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t} else if n != nil {\n\t\t\t\t\t*m = *n\n\t\t\t\t\treturn nil, nil\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Responses objects.\nfunc (m *Responses) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.ResponseCode {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Schema objects.\nfunc (m *Schema) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.XRef != \"\" {\n\t\tinfo, err := compiler.ReadInfoForRef(root, m.XRef)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif info != nil {\n\t\t\treplacement, err := NewSchema(info, nil)\n\t\t\tif err == nil {\n\t\t\t\t*m = *replacement\n\t\t\t\treturn m.ResolveReferences(root)\n\t\t\t}\n\t\t}\n\t\treturn info, nil\n\t}\n\tif m.Default != nil {\n\t\t_, err := m.Default.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.Enum {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tif m.AdditionalProperties != nil {\n\t\t_, err := m.AdditionalProperties.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Type != nil {\n\t\t_, err := m.Type.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Items != nil {\n\t\t_, err := m.Items.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.AllOf {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tif m.Properties != nil {\n\t\t_, err := m.Properties.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Xml != nil {\n\t\t_, err := m.Xml.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.ExternalDocs != nil {\n\t\t_, err := m.ExternalDocs.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Example != nil {\n\t\t_, err := m.Example.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside SchemaItem objects.\nfunc (m *SchemaItem) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\t{\n\t\tp, ok := m.Oneof.(*SchemaItem_Schema)\n\t\tif ok {\n\t\t\t_, err := p.Schema.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*SchemaItem_FileSchema)\n\t\tif ok {\n\t\t\t_, err := p.FileSchema.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside SecurityDefinitions objects.\nfunc (m *SecurityDefinitions) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside SecurityDefinitionsItem objects.\nfunc (m *SecurityDefinitionsItem) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\t{\n\t\tp, ok := m.Oneof.(*SecurityDefinitionsItem_BasicAuthenticationSecurity)\n\t\tif ok {\n\t\t\t_, err := p.BasicAuthenticationSecurity.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*SecurityDefinitionsItem_ApiKeySecurity)\n\t\tif ok {\n\t\t\t_, err := p.ApiKeySecurity.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*SecurityDefinitionsItem_Oauth2ImplicitSecurity)\n\t\tif ok {\n\t\t\t_, err := p.Oauth2ImplicitSecurity.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*SecurityDefinitionsItem_Oauth2PasswordSecurity)\n\t\tif ok {\n\t\t\t_, err := p.Oauth2PasswordSecurity.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*SecurityDefinitionsItem_Oauth2ApplicationSecurity)\n\t\tif ok {\n\t\t\t_, err := p.Oauth2ApplicationSecurity.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*SecurityDefinitionsItem_Oauth2AccessCodeSecurity)\n\t\tif ok {\n\t\t\t_, err := p.Oauth2AccessCodeSecurity.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside SecurityRequirement objects.\nfunc (m *SecurityRequirement) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside StringArray objects.\nfunc (m *StringArray) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Tag objects.\nfunc (m *Tag) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.ExternalDocs != nil {\n\t\t_, err := m.ExternalDocs.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside TypeItem objects.\nfunc (m *TypeItem) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside VendorExtension objects.\nfunc (m *VendorExtension) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Xml objects.\nfunc (m *Xml) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.VendorExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ToRawInfo returns a description of AdditionalPropertiesItem suitable for JSON or YAML export.\nfunc (m *AdditionalPropertiesItem) ToRawInfo() *yaml.Node {\n\t// ONE OF WRAPPER\n\t// AdditionalPropertiesItem\n\t// {Name:schema Type:Schema StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv0 := m.GetSchema()\n\tif v0 != nil {\n\t\treturn v0.ToRawInfo()\n\t}\n\t// {Name:boolean Type:bool StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tif v1, ok := m.GetOneof().(*AdditionalPropertiesItem_Boolean); ok {\n\t\treturn compiler.NewScalarNodeForBool(v1.Boolean)\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of Any suitable for JSON or YAML export.\nfunc (m *Any) ToRawInfo() *yaml.Node {\n\tvar err error\n\tvar node yaml.Node\n\terr = yaml.Unmarshal([]byte(m.Yaml), &node)\n\tif err == nil {\n\t\tif node.Kind == yaml.DocumentNode {\n\t\t\treturn node.Content[0]\n\t\t}\n\t\treturn &node\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of ApiKeySecurity suitable for JSON or YAML export.\nfunc (m *ApiKeySecurity) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"type\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Type))\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"in\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.In))\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of BasicAuthenticationSecurity suitable for JSON or YAML export.\nfunc (m *BasicAuthenticationSecurity) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"type\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Type))\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of BodyParameter suitable for JSON or YAML export.\nfunc (m *BodyParameter) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"in\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.In))\n\tif m.Required != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"required\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Required))\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"schema\"))\n\tinfo.Content = append(info.Content, m.Schema.ToRawInfo())\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Contact suitable for JSON or YAML export.\nfunc (m *Contact) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\tif m.Url != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"url\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Url))\n\t}\n\tif m.Email != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"email\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Email))\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Default suitable for JSON or YAML export.\nfunc (m *Default) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Definitions suitable for JSON or YAML export.\nfunc (m *Definitions) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Document suitable for JSON or YAML export.\nfunc (m *Document) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"swagger\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Swagger))\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"info\"))\n\tinfo.Content = append(info.Content, m.Info.ToRawInfo())\n\tif m.Host != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"host\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Host))\n\t}\n\tif m.BasePath != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"basePath\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.BasePath))\n\t}\n\tif len(m.Schemes) != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"schemes\"))\n\t\tinfo.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.Schemes))\n\t}\n\tif len(m.Consumes) != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"consumes\"))\n\t\tinfo.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.Consumes))\n\t}\n\tif len(m.Produces) != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"produces\"))\n\t\tinfo.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.Produces))\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"paths\"))\n\tinfo.Content = append(info.Content, m.Paths.ToRawInfo())\n\tif m.Definitions != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"definitions\"))\n\t\tinfo.Content = append(info.Content, m.Definitions.ToRawInfo())\n\t}\n\tif m.Parameters != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"parameters\"))\n\t\tinfo.Content = append(info.Content, m.Parameters.ToRawInfo())\n\t}\n\tif m.Responses != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"responses\"))\n\t\tinfo.Content = append(info.Content, m.Responses.ToRawInfo())\n\t}\n\tif len(m.Security) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Security {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"security\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif m.SecurityDefinitions != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"securityDefinitions\"))\n\t\tinfo.Content = append(info.Content, m.SecurityDefinitions.ToRawInfo())\n\t}\n\tif len(m.Tags) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Tags {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"tags\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif m.ExternalDocs != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"externalDocs\"))\n\t\tinfo.Content = append(info.Content, m.ExternalDocs.ToRawInfo())\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Examples suitable for JSON or YAML export.\nfunc (m *Examples) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of ExternalDocs suitable for JSON or YAML export.\nfunc (m *ExternalDocs) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"url\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Url))\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of FileSchema suitable for JSON or YAML export.\nfunc (m *FileSchema) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Format != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"format\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Format))\n\t}\n\tif m.Title != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"title\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Title))\n\t}\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.Default != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"default\"))\n\t\tinfo.Content = append(info.Content, m.Default.ToRawInfo())\n\t}\n\tif len(m.Required) != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"required\"))\n\t\tinfo.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.Required))\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"type\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Type))\n\tif m.ReadOnly != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"readOnly\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ReadOnly))\n\t}\n\tif m.ExternalDocs != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"externalDocs\"))\n\t\tinfo.Content = append(info.Content, m.ExternalDocs.ToRawInfo())\n\t}\n\tif m.Example != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"example\"))\n\t\tinfo.Content = append(info.Content, m.Example.ToRawInfo())\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of FormDataParameterSubSchema suitable for JSON or YAML export.\nfunc (m *FormDataParameterSubSchema) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Required != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"required\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Required))\n\t}\n\tif m.In != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"in\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.In))\n\t}\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\tif m.AllowEmptyValue != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"allowEmptyValue\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.AllowEmptyValue))\n\t}\n\tif m.Type != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"type\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Type))\n\t}\n\tif m.Format != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"format\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Format))\n\t}\n\tif m.Items != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"items\"))\n\t\tinfo.Content = append(info.Content, m.Items.ToRawInfo())\n\t}\n\tif m.CollectionFormat != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"collectionFormat\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.CollectionFormat))\n\t}\n\tif m.Default != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"default\"))\n\t\tinfo.Content = append(info.Content, m.Default.ToRawInfo())\n\t}\n\tif m.Maximum != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maximum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.Maximum))\n\t}\n\tif m.ExclusiveMaximum != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"exclusiveMaximum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ExclusiveMaximum))\n\t}\n\tif m.Minimum != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minimum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.Minimum))\n\t}\n\tif m.ExclusiveMinimum != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"exclusiveMinimum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ExclusiveMinimum))\n\t}\n\tif m.MaxLength != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maxLength\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MaxLength))\n\t}\n\tif m.MinLength != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minLength\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MinLength))\n\t}\n\tif m.Pattern != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"pattern\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Pattern))\n\t}\n\tif m.MaxItems != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maxItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MaxItems))\n\t}\n\tif m.MinItems != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MinItems))\n\t}\n\tif m.UniqueItems != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"uniqueItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.UniqueItems))\n\t}\n\tif len(m.Enum) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Enum {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"enum\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif m.MultipleOf != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"multipleOf\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.MultipleOf))\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Header suitable for JSON or YAML export.\nfunc (m *Header) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"type\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Type))\n\tif m.Format != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"format\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Format))\n\t}\n\tif m.Items != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"items\"))\n\t\tinfo.Content = append(info.Content, m.Items.ToRawInfo())\n\t}\n\tif m.CollectionFormat != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"collectionFormat\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.CollectionFormat))\n\t}\n\tif m.Default != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"default\"))\n\t\tinfo.Content = append(info.Content, m.Default.ToRawInfo())\n\t}\n\tif m.Maximum != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maximum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.Maximum))\n\t}\n\tif m.ExclusiveMaximum != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"exclusiveMaximum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ExclusiveMaximum))\n\t}\n\tif m.Minimum != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minimum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.Minimum))\n\t}\n\tif m.ExclusiveMinimum != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"exclusiveMinimum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ExclusiveMinimum))\n\t}\n\tif m.MaxLength != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maxLength\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MaxLength))\n\t}\n\tif m.MinLength != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minLength\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MinLength))\n\t}\n\tif m.Pattern != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"pattern\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Pattern))\n\t}\n\tif m.MaxItems != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maxItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MaxItems))\n\t}\n\tif m.MinItems != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MinItems))\n\t}\n\tif m.UniqueItems != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"uniqueItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.UniqueItems))\n\t}\n\tif len(m.Enum) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Enum {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"enum\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif m.MultipleOf != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"multipleOf\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.MultipleOf))\n\t}\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of HeaderParameterSubSchema suitable for JSON or YAML export.\nfunc (m *HeaderParameterSubSchema) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Required != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"required\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Required))\n\t}\n\tif m.In != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"in\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.In))\n\t}\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\tif m.Type != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"type\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Type))\n\t}\n\tif m.Format != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"format\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Format))\n\t}\n\tif m.Items != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"items\"))\n\t\tinfo.Content = append(info.Content, m.Items.ToRawInfo())\n\t}\n\tif m.CollectionFormat != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"collectionFormat\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.CollectionFormat))\n\t}\n\tif m.Default != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"default\"))\n\t\tinfo.Content = append(info.Content, m.Default.ToRawInfo())\n\t}\n\tif m.Maximum != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maximum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.Maximum))\n\t}\n\tif m.ExclusiveMaximum != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"exclusiveMaximum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ExclusiveMaximum))\n\t}\n\tif m.Minimum != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minimum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.Minimum))\n\t}\n\tif m.ExclusiveMinimum != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"exclusiveMinimum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ExclusiveMinimum))\n\t}\n\tif m.MaxLength != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maxLength\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MaxLength))\n\t}\n\tif m.MinLength != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minLength\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MinLength))\n\t}\n\tif m.Pattern != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"pattern\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Pattern))\n\t}\n\tif m.MaxItems != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maxItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MaxItems))\n\t}\n\tif m.MinItems != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MinItems))\n\t}\n\tif m.UniqueItems != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"uniqueItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.UniqueItems))\n\t}\n\tif len(m.Enum) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Enum {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"enum\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif m.MultipleOf != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"multipleOf\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.MultipleOf))\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Headers suitable for JSON or YAML export.\nfunc (m *Headers) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Info suitable for JSON or YAML export.\nfunc (m *Info) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"title\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Title))\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"version\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Version))\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.TermsOfService != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"termsOfService\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.TermsOfService))\n\t}\n\tif m.Contact != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"contact\"))\n\t\tinfo.Content = append(info.Content, m.Contact.ToRawInfo())\n\t}\n\tif m.License != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"license\"))\n\t\tinfo.Content = append(info.Content, m.License.ToRawInfo())\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of ItemsItem suitable for JSON or YAML export.\nfunc (m *ItemsItem) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif len(m.Schema) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Schema {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"schema\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of JsonReference suitable for JSON or YAML export.\nfunc (m *JsonReference) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"$ref\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.XRef))\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of License suitable for JSON or YAML export.\nfunc (m *License) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\tif m.Url != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"url\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Url))\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedAny suitable for JSON or YAML export.\nfunc (m *NamedAny) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\tif m.Value != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"value\"))\n\t\tinfo.Content = append(info.Content, m.Value.ToRawInfo())\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedHeader suitable for JSON or YAML export.\nfunc (m *NamedHeader) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:Header StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedParameter suitable for JSON or YAML export.\nfunc (m *NamedParameter) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:Parameter StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedPathItem suitable for JSON or YAML export.\nfunc (m *NamedPathItem) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:PathItem StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedResponse suitable for JSON or YAML export.\nfunc (m *NamedResponse) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:Response StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedResponseValue suitable for JSON or YAML export.\nfunc (m *NamedResponseValue) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:ResponseValue StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedSchema suitable for JSON or YAML export.\nfunc (m *NamedSchema) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:Schema StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedSecurityDefinitionsItem suitable for JSON or YAML export.\nfunc (m *NamedSecurityDefinitionsItem) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:SecurityDefinitionsItem StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedString suitable for JSON or YAML export.\nfunc (m *NamedString) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\tif m.Value != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"value\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Value))\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedStringArray suitable for JSON or YAML export.\nfunc (m *NamedStringArray) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:StringArray StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of NonBodyParameter suitable for JSON or YAML export.\nfunc (m *NonBodyParameter) ToRawInfo() *yaml.Node {\n\t// ONE OF WRAPPER\n\t// NonBodyParameter\n\t// {Name:headerParameterSubSchema Type:HeaderParameterSubSchema StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv0 := m.GetHeaderParameterSubSchema()\n\tif v0 != nil {\n\t\treturn v0.ToRawInfo()\n\t}\n\t// {Name:formDataParameterSubSchema Type:FormDataParameterSubSchema StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv1 := m.GetFormDataParameterSubSchema()\n\tif v1 != nil {\n\t\treturn v1.ToRawInfo()\n\t}\n\t// {Name:queryParameterSubSchema Type:QueryParameterSubSchema StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv2 := m.GetQueryParameterSubSchema()\n\tif v2 != nil {\n\t\treturn v2.ToRawInfo()\n\t}\n\t// {Name:pathParameterSubSchema Type:PathParameterSubSchema StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv3 := m.GetPathParameterSubSchema()\n\tif v3 != nil {\n\t\treturn v3.ToRawInfo()\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of Oauth2AccessCodeSecurity suitable for JSON or YAML export.\nfunc (m *Oauth2AccessCodeSecurity) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"type\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Type))\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"flow\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Flow))\n\tif m.Scopes != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"scopes\"))\n\t\tinfo.Content = append(info.Content, m.Scopes.ToRawInfo())\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"authorizationUrl\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.AuthorizationUrl))\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"tokenUrl\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.TokenUrl))\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Oauth2ApplicationSecurity suitable for JSON or YAML export.\nfunc (m *Oauth2ApplicationSecurity) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"type\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Type))\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"flow\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Flow))\n\tif m.Scopes != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"scopes\"))\n\t\tinfo.Content = append(info.Content, m.Scopes.ToRawInfo())\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"tokenUrl\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.TokenUrl))\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Oauth2ImplicitSecurity suitable for JSON or YAML export.\nfunc (m *Oauth2ImplicitSecurity) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"type\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Type))\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"flow\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Flow))\n\tif m.Scopes != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"scopes\"))\n\t\tinfo.Content = append(info.Content, m.Scopes.ToRawInfo())\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"authorizationUrl\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.AuthorizationUrl))\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Oauth2PasswordSecurity suitable for JSON or YAML export.\nfunc (m *Oauth2PasswordSecurity) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"type\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Type))\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"flow\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Flow))\n\tif m.Scopes != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"scopes\"))\n\t\tinfo.Content = append(info.Content, m.Scopes.ToRawInfo())\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"tokenUrl\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.TokenUrl))\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Oauth2Scopes suitable for JSON or YAML export.\nfunc (m *Oauth2Scopes) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// &{Name:additionalProperties Type:NamedString StringEnumValues:[] MapType:string Repeated:true Pattern: Implicit:true Description:}\n\treturn info\n}\n\n// ToRawInfo returns a description of Operation suitable for JSON or YAML export.\nfunc (m *Operation) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif len(m.Tags) != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"tags\"))\n\t\tinfo.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.Tags))\n\t}\n\tif m.Summary != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"summary\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Summary))\n\t}\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.ExternalDocs != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"externalDocs\"))\n\t\tinfo.Content = append(info.Content, m.ExternalDocs.ToRawInfo())\n\t}\n\tif m.OperationId != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"operationId\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.OperationId))\n\t}\n\tif len(m.Produces) != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"produces\"))\n\t\tinfo.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.Produces))\n\t}\n\tif len(m.Consumes) != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"consumes\"))\n\t\tinfo.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.Consumes))\n\t}\n\tif len(m.Parameters) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Parameters {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"parameters\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"responses\"))\n\tinfo.Content = append(info.Content, m.Responses.ToRawInfo())\n\tif len(m.Schemes) != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"schemes\"))\n\t\tinfo.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.Schemes))\n\t}\n\tif m.Deprecated != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"deprecated\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Deprecated))\n\t}\n\tif len(m.Security) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Security {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"security\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Parameter suitable for JSON or YAML export.\nfunc (m *Parameter) ToRawInfo() *yaml.Node {\n\t// ONE OF WRAPPER\n\t// Parameter\n\t// {Name:bodyParameter Type:BodyParameter StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv0 := m.GetBodyParameter()\n\tif v0 != nil {\n\t\treturn v0.ToRawInfo()\n\t}\n\t// {Name:nonBodyParameter Type:NonBodyParameter StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv1 := m.GetNonBodyParameter()\n\tif v1 != nil {\n\t\treturn v1.ToRawInfo()\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of ParameterDefinitions suitable for JSON or YAML export.\nfunc (m *ParameterDefinitions) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of ParametersItem suitable for JSON or YAML export.\nfunc (m *ParametersItem) ToRawInfo() *yaml.Node {\n\t// ONE OF WRAPPER\n\t// ParametersItem\n\t// {Name:parameter Type:Parameter StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv0 := m.GetParameter()\n\tif v0 != nil {\n\t\treturn v0.ToRawInfo()\n\t}\n\t// {Name:jsonReference Type:JsonReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv1 := m.GetJsonReference()\n\tif v1 != nil {\n\t\treturn v1.ToRawInfo()\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of PathItem suitable for JSON or YAML export.\nfunc (m *PathItem) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.XRef != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"$ref\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.XRef))\n\t}\n\tif m.Get != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"get\"))\n\t\tinfo.Content = append(info.Content, m.Get.ToRawInfo())\n\t}\n\tif m.Put != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"put\"))\n\t\tinfo.Content = append(info.Content, m.Put.ToRawInfo())\n\t}\n\tif m.Post != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"post\"))\n\t\tinfo.Content = append(info.Content, m.Post.ToRawInfo())\n\t}\n\tif m.Delete != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"delete\"))\n\t\tinfo.Content = append(info.Content, m.Delete.ToRawInfo())\n\t}\n\tif m.Options != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"options\"))\n\t\tinfo.Content = append(info.Content, m.Options.ToRawInfo())\n\t}\n\tif m.Head != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"head\"))\n\t\tinfo.Content = append(info.Content, m.Head.ToRawInfo())\n\t}\n\tif m.Patch != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"patch\"))\n\t\tinfo.Content = append(info.Content, m.Patch.ToRawInfo())\n\t}\n\tif len(m.Parameters) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Parameters {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"parameters\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of PathParameterSubSchema suitable for JSON or YAML export.\nfunc (m *PathParameterSubSchema) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"required\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Required))\n\tif m.In != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"in\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.In))\n\t}\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\tif m.Type != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"type\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Type))\n\t}\n\tif m.Format != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"format\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Format))\n\t}\n\tif m.Items != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"items\"))\n\t\tinfo.Content = append(info.Content, m.Items.ToRawInfo())\n\t}\n\tif m.CollectionFormat != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"collectionFormat\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.CollectionFormat))\n\t}\n\tif m.Default != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"default\"))\n\t\tinfo.Content = append(info.Content, m.Default.ToRawInfo())\n\t}\n\tif m.Maximum != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maximum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.Maximum))\n\t}\n\tif m.ExclusiveMaximum != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"exclusiveMaximum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ExclusiveMaximum))\n\t}\n\tif m.Minimum != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minimum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.Minimum))\n\t}\n\tif m.ExclusiveMinimum != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"exclusiveMinimum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ExclusiveMinimum))\n\t}\n\tif m.MaxLength != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maxLength\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MaxLength))\n\t}\n\tif m.MinLength != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minLength\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MinLength))\n\t}\n\tif m.Pattern != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"pattern\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Pattern))\n\t}\n\tif m.MaxItems != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maxItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MaxItems))\n\t}\n\tif m.MinItems != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MinItems))\n\t}\n\tif m.UniqueItems != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"uniqueItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.UniqueItems))\n\t}\n\tif len(m.Enum) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Enum {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"enum\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif m.MultipleOf != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"multipleOf\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.MultipleOf))\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Paths suitable for JSON or YAML export.\nfunc (m *Paths) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\tif m.Path != nil {\n\t\tfor _, item := range m.Path {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of PrimitivesItems suitable for JSON or YAML export.\nfunc (m *PrimitivesItems) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Type != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"type\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Type))\n\t}\n\tif m.Format != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"format\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Format))\n\t}\n\tif m.Items != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"items\"))\n\t\tinfo.Content = append(info.Content, m.Items.ToRawInfo())\n\t}\n\tif m.CollectionFormat != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"collectionFormat\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.CollectionFormat))\n\t}\n\tif m.Default != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"default\"))\n\t\tinfo.Content = append(info.Content, m.Default.ToRawInfo())\n\t}\n\tif m.Maximum != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maximum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.Maximum))\n\t}\n\tif m.ExclusiveMaximum != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"exclusiveMaximum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ExclusiveMaximum))\n\t}\n\tif m.Minimum != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minimum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.Minimum))\n\t}\n\tif m.ExclusiveMinimum != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"exclusiveMinimum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ExclusiveMinimum))\n\t}\n\tif m.MaxLength != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maxLength\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MaxLength))\n\t}\n\tif m.MinLength != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minLength\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MinLength))\n\t}\n\tif m.Pattern != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"pattern\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Pattern))\n\t}\n\tif m.MaxItems != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maxItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MaxItems))\n\t}\n\tif m.MinItems != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MinItems))\n\t}\n\tif m.UniqueItems != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"uniqueItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.UniqueItems))\n\t}\n\tif len(m.Enum) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Enum {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"enum\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif m.MultipleOf != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"multipleOf\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.MultipleOf))\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Properties suitable for JSON or YAML export.\nfunc (m *Properties) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of QueryParameterSubSchema suitable for JSON or YAML export.\nfunc (m *QueryParameterSubSchema) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Required != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"required\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Required))\n\t}\n\tif m.In != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"in\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.In))\n\t}\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\tif m.AllowEmptyValue != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"allowEmptyValue\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.AllowEmptyValue))\n\t}\n\tif m.Type != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"type\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Type))\n\t}\n\tif m.Format != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"format\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Format))\n\t}\n\tif m.Items != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"items\"))\n\t\tinfo.Content = append(info.Content, m.Items.ToRawInfo())\n\t}\n\tif m.CollectionFormat != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"collectionFormat\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.CollectionFormat))\n\t}\n\tif m.Default != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"default\"))\n\t\tinfo.Content = append(info.Content, m.Default.ToRawInfo())\n\t}\n\tif m.Maximum != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maximum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.Maximum))\n\t}\n\tif m.ExclusiveMaximum != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"exclusiveMaximum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ExclusiveMaximum))\n\t}\n\tif m.Minimum != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minimum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.Minimum))\n\t}\n\tif m.ExclusiveMinimum != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"exclusiveMinimum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ExclusiveMinimum))\n\t}\n\tif m.MaxLength != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maxLength\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MaxLength))\n\t}\n\tif m.MinLength != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minLength\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MinLength))\n\t}\n\tif m.Pattern != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"pattern\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Pattern))\n\t}\n\tif m.MaxItems != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maxItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MaxItems))\n\t}\n\tif m.MinItems != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MinItems))\n\t}\n\tif m.UniqueItems != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"uniqueItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.UniqueItems))\n\t}\n\tif len(m.Enum) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Enum {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"enum\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif m.MultipleOf != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"multipleOf\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.MultipleOf))\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Response suitable for JSON or YAML export.\nfunc (m *Response) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\tif m.Schema != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"schema\"))\n\t\tinfo.Content = append(info.Content, m.Schema.ToRawInfo())\n\t}\n\tif m.Headers != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"headers\"))\n\t\tinfo.Content = append(info.Content, m.Headers.ToRawInfo())\n\t}\n\tif m.Examples != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"examples\"))\n\t\tinfo.Content = append(info.Content, m.Examples.ToRawInfo())\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of ResponseDefinitions suitable for JSON or YAML export.\nfunc (m *ResponseDefinitions) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of ResponseValue suitable for JSON or YAML export.\nfunc (m *ResponseValue) ToRawInfo() *yaml.Node {\n\t// ONE OF WRAPPER\n\t// ResponseValue\n\t// {Name:response Type:Response StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv0 := m.GetResponse()\n\tif v0 != nil {\n\t\treturn v0.ToRawInfo()\n\t}\n\t// {Name:jsonReference Type:JsonReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv1 := m.GetJsonReference()\n\tif v1 != nil {\n\t\treturn v1.ToRawInfo()\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of Responses suitable for JSON or YAML export.\nfunc (m *Responses) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.ResponseCode != nil {\n\t\tfor _, item := range m.ResponseCode {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Schema suitable for JSON or YAML export.\nfunc (m *Schema) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.XRef != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"$ref\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.XRef))\n\t}\n\tif m.Format != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"format\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Format))\n\t}\n\tif m.Title != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"title\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Title))\n\t}\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.Default != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"default\"))\n\t\tinfo.Content = append(info.Content, m.Default.ToRawInfo())\n\t}\n\tif m.MultipleOf != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"multipleOf\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.MultipleOf))\n\t}\n\tif m.Maximum != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maximum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.Maximum))\n\t}\n\tif m.ExclusiveMaximum != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"exclusiveMaximum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ExclusiveMaximum))\n\t}\n\tif m.Minimum != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minimum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.Minimum))\n\t}\n\tif m.ExclusiveMinimum != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"exclusiveMinimum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ExclusiveMinimum))\n\t}\n\tif m.MaxLength != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maxLength\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MaxLength))\n\t}\n\tif m.MinLength != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minLength\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MinLength))\n\t}\n\tif m.Pattern != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"pattern\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Pattern))\n\t}\n\tif m.MaxItems != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maxItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MaxItems))\n\t}\n\tif m.MinItems != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MinItems))\n\t}\n\tif m.UniqueItems != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"uniqueItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.UniqueItems))\n\t}\n\tif m.MaxProperties != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maxProperties\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MaxProperties))\n\t}\n\tif m.MinProperties != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minProperties\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MinProperties))\n\t}\n\tif len(m.Required) != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"required\"))\n\t\tinfo.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.Required))\n\t}\n\tif len(m.Enum) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Enum {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"enum\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"additionalProperties\"))\n\t\tinfo.Content = append(info.Content, m.AdditionalProperties.ToRawInfo())\n\t}\n\tif m.Type != nil {\n\t\tif len(m.Type.Value) == 1 {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"type\"))\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Type.Value[0]))\n\t\t} else {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"type\"))\n\t\t\tinfo.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.Type.Value))\n\t\t}\n\t}\n\tif m.Items != nil {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Items.Schema {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tif len(items.Content) == 1 {\n\t\t\titems = items.Content[0]\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"items\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif len(m.AllOf) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.AllOf {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"allOf\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif m.Properties != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"properties\"))\n\t\tinfo.Content = append(info.Content, m.Properties.ToRawInfo())\n\t}\n\tif m.Discriminator != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"discriminator\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Discriminator))\n\t}\n\tif m.ReadOnly != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"readOnly\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ReadOnly))\n\t}\n\tif m.Xml != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"xml\"))\n\t\tinfo.Content = append(info.Content, m.Xml.ToRawInfo())\n\t}\n\tif m.ExternalDocs != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"externalDocs\"))\n\t\tinfo.Content = append(info.Content, m.ExternalDocs.ToRawInfo())\n\t}\n\tif m.Example != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"example\"))\n\t\tinfo.Content = append(info.Content, m.Example.ToRawInfo())\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of SchemaItem suitable for JSON or YAML export.\nfunc (m *SchemaItem) ToRawInfo() *yaml.Node {\n\t// ONE OF WRAPPER\n\t// SchemaItem\n\t// {Name:schema Type:Schema StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv0 := m.GetSchema()\n\tif v0 != nil {\n\t\treturn v0.ToRawInfo()\n\t}\n\t// {Name:fileSchema Type:FileSchema StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv1 := m.GetFileSchema()\n\tif v1 != nil {\n\t\treturn v1.ToRawInfo()\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of SecurityDefinitions suitable for JSON or YAML export.\nfunc (m *SecurityDefinitions) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of SecurityDefinitionsItem suitable for JSON or YAML export.\nfunc (m *SecurityDefinitionsItem) ToRawInfo() *yaml.Node {\n\t// ONE OF WRAPPER\n\t// SecurityDefinitionsItem\n\t// {Name:basicAuthenticationSecurity Type:BasicAuthenticationSecurity StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv0 := m.GetBasicAuthenticationSecurity()\n\tif v0 != nil {\n\t\treturn v0.ToRawInfo()\n\t}\n\t// {Name:apiKeySecurity Type:ApiKeySecurity StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv1 := m.GetApiKeySecurity()\n\tif v1 != nil {\n\t\treturn v1.ToRawInfo()\n\t}\n\t// {Name:oauth2ImplicitSecurity Type:Oauth2ImplicitSecurity StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv2 := m.GetOauth2ImplicitSecurity()\n\tif v2 != nil {\n\t\treturn v2.ToRawInfo()\n\t}\n\t// {Name:oauth2PasswordSecurity Type:Oauth2PasswordSecurity StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv3 := m.GetOauth2PasswordSecurity()\n\tif v3 != nil {\n\t\treturn v3.ToRawInfo()\n\t}\n\t// {Name:oauth2ApplicationSecurity Type:Oauth2ApplicationSecurity StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv4 := m.GetOauth2ApplicationSecurity()\n\tif v4 != nil {\n\t\treturn v4.ToRawInfo()\n\t}\n\t// {Name:oauth2AccessCodeSecurity Type:Oauth2AccessCodeSecurity StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv5 := m.GetOauth2AccessCodeSecurity()\n\tif v5 != nil {\n\t\treturn v5.ToRawInfo()\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of SecurityRequirement suitable for JSON or YAML export.\nfunc (m *SecurityRequirement) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of StringArray suitable for JSON or YAML export.\nfunc (m *StringArray) ToRawInfo() *yaml.Node {\n\treturn compiler.NewSequenceNodeForStringArray(m.Value)\n}\n\n// ToRawInfo returns a description of Tag suitable for JSON or YAML export.\nfunc (m *Tag) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.ExternalDocs != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"externalDocs\"))\n\t\tinfo.Content = append(info.Content, m.ExternalDocs.ToRawInfo())\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of TypeItem suitable for JSON or YAML export.\nfunc (m *TypeItem) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif len(m.Value) != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"value\"))\n\t\tinfo.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.Value))\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of VendorExtension suitable for JSON or YAML export.\nfunc (m *VendorExtension) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Xml suitable for JSON or YAML export.\nfunc (m *Xml) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\tif m.Namespace != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"namespace\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Namespace))\n\t}\n\tif m.Prefix != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"prefix\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Prefix))\n\t}\n\tif m.Attribute != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"attribute\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Attribute))\n\t}\n\tif m.Wrapped != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"wrapped\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Wrapped))\n\t}\n\tif m.VendorExtension != nil {\n\t\tfor _, item := range m.VendorExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\nvar (\n\tpattern0 = regexp.MustCompile(\"^x-\")\n\tpattern1 = regexp.MustCompile(\"^/\")\n\tpattern2 = regexp.MustCompile(\"^([0-9]{3})$|^(default)$\")\n)\n"
  },
  {
    "path": "vendor/github.com/google/gnostic-models/openapiv2/OpenAPIv2.pb.go",
    "content": "// Copyright 2020 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// THIS FILE IS AUTOMATICALLY GENERATED.\n\n// Code generated by protoc-gen-go. DO NOT EDIT.\n// versions:\n// \tprotoc-gen-go v1.27.1\n// \tprotoc        v3.19.3\n// source: openapiv2/OpenAPIv2.proto\n\npackage openapi_v2\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n\tprotoimpl \"google.golang.org/protobuf/runtime/protoimpl\"\n\tanypb \"google.golang.org/protobuf/types/known/anypb\"\n\treflect \"reflect\"\n\tsync \"sync\"\n)\n\nconst (\n\t// Verify that this generated code is sufficiently up-to-date.\n\t_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)\n\t// Verify that runtime/protoimpl is sufficiently up-to-date.\n\t_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)\n)\n\ntype AdditionalPropertiesItem struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Types that are assignable to Oneof:\n\t//\t*AdditionalPropertiesItem_Schema\n\t//\t*AdditionalPropertiesItem_Boolean\n\tOneof isAdditionalPropertiesItem_Oneof `protobuf_oneof:\"oneof\"`\n}\n\nfunc (x *AdditionalPropertiesItem) Reset() {\n\t*x = AdditionalPropertiesItem{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[0]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *AdditionalPropertiesItem) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*AdditionalPropertiesItem) ProtoMessage() {}\n\nfunc (x *AdditionalPropertiesItem) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[0]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use AdditionalPropertiesItem.ProtoReflect.Descriptor instead.\nfunc (*AdditionalPropertiesItem) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{0}\n}\n\nfunc (m *AdditionalPropertiesItem) GetOneof() isAdditionalPropertiesItem_Oneof {\n\tif m != nil {\n\t\treturn m.Oneof\n\t}\n\treturn nil\n}\n\nfunc (x *AdditionalPropertiesItem) GetSchema() *Schema {\n\tif x, ok := x.GetOneof().(*AdditionalPropertiesItem_Schema); ok {\n\t\treturn x.Schema\n\t}\n\treturn nil\n}\n\nfunc (x *AdditionalPropertiesItem) GetBoolean() bool {\n\tif x, ok := x.GetOneof().(*AdditionalPropertiesItem_Boolean); ok {\n\t\treturn x.Boolean\n\t}\n\treturn false\n}\n\ntype isAdditionalPropertiesItem_Oneof interface {\n\tisAdditionalPropertiesItem_Oneof()\n}\n\ntype AdditionalPropertiesItem_Schema struct {\n\tSchema *Schema `protobuf:\"bytes,1,opt,name=schema,proto3,oneof\"`\n}\n\ntype AdditionalPropertiesItem_Boolean struct {\n\tBoolean bool `protobuf:\"varint,2,opt,name=boolean,proto3,oneof\"`\n}\n\nfunc (*AdditionalPropertiesItem_Schema) isAdditionalPropertiesItem_Oneof() {}\n\nfunc (*AdditionalPropertiesItem_Boolean) isAdditionalPropertiesItem_Oneof() {}\n\ntype Any struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tValue *anypb.Any `protobuf:\"bytes,1,opt,name=value,proto3\" json:\"value,omitempty\"`\n\tYaml  string     `protobuf:\"bytes,2,opt,name=yaml,proto3\" json:\"yaml,omitempty\"`\n}\n\nfunc (x *Any) Reset() {\n\t*x = Any{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[1]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Any) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Any) ProtoMessage() {}\n\nfunc (x *Any) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[1]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Any.ProtoReflect.Descriptor instead.\nfunc (*Any) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{1}\n}\n\nfunc (x *Any) GetValue() *anypb.Any {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\nfunc (x *Any) GetYaml() string {\n\tif x != nil {\n\t\treturn x.Yaml\n\t}\n\treturn \"\"\n}\n\ntype ApiKeySecurity struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tType            string      `protobuf:\"bytes,1,opt,name=type,proto3\" json:\"type,omitempty\"`\n\tName            string      `protobuf:\"bytes,2,opt,name=name,proto3\" json:\"name,omitempty\"`\n\tIn              string      `protobuf:\"bytes,3,opt,name=in,proto3\" json:\"in,omitempty\"`\n\tDescription     string      `protobuf:\"bytes,4,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tVendorExtension []*NamedAny `protobuf:\"bytes,5,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *ApiKeySecurity) Reset() {\n\t*x = ApiKeySecurity{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[2]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ApiKeySecurity) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ApiKeySecurity) ProtoMessage() {}\n\nfunc (x *ApiKeySecurity) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[2]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ApiKeySecurity.ProtoReflect.Descriptor instead.\nfunc (*ApiKeySecurity) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{2}\n}\n\nfunc (x *ApiKeySecurity) GetType() string {\n\tif x != nil {\n\t\treturn x.Type\n\t}\n\treturn \"\"\n}\n\nfunc (x *ApiKeySecurity) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *ApiKeySecurity) GetIn() string {\n\tif x != nil {\n\t\treturn x.In\n\t}\n\treturn \"\"\n}\n\nfunc (x *ApiKeySecurity) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *ApiKeySecurity) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\ntype BasicAuthenticationSecurity struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tType            string      `protobuf:\"bytes,1,opt,name=type,proto3\" json:\"type,omitempty\"`\n\tDescription     string      `protobuf:\"bytes,2,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tVendorExtension []*NamedAny `protobuf:\"bytes,3,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *BasicAuthenticationSecurity) Reset() {\n\t*x = BasicAuthenticationSecurity{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[3]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *BasicAuthenticationSecurity) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*BasicAuthenticationSecurity) ProtoMessage() {}\n\nfunc (x *BasicAuthenticationSecurity) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[3]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use BasicAuthenticationSecurity.ProtoReflect.Descriptor instead.\nfunc (*BasicAuthenticationSecurity) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{3}\n}\n\nfunc (x *BasicAuthenticationSecurity) GetType() string {\n\tif x != nil {\n\t\treturn x.Type\n\t}\n\treturn \"\"\n}\n\nfunc (x *BasicAuthenticationSecurity) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *BasicAuthenticationSecurity) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\ntype BodyParameter struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// A brief description of the parameter. This could contain examples of use.  GitHub Flavored Markdown is allowed.\n\tDescription string `protobuf:\"bytes,1,opt,name=description,proto3\" json:\"description,omitempty\"`\n\t// The name of the parameter.\n\tName string `protobuf:\"bytes,2,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Determines the location of the parameter.\n\tIn string `protobuf:\"bytes,3,opt,name=in,proto3\" json:\"in,omitempty\"`\n\t// Determines whether or not this parameter is required or optional.\n\tRequired        bool        `protobuf:\"varint,4,opt,name=required,proto3\" json:\"required,omitempty\"`\n\tSchema          *Schema     `protobuf:\"bytes,5,opt,name=schema,proto3\" json:\"schema,omitempty\"`\n\tVendorExtension []*NamedAny `protobuf:\"bytes,6,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *BodyParameter) Reset() {\n\t*x = BodyParameter{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[4]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *BodyParameter) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*BodyParameter) ProtoMessage() {}\n\nfunc (x *BodyParameter) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[4]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use BodyParameter.ProtoReflect.Descriptor instead.\nfunc (*BodyParameter) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{4}\n}\n\nfunc (x *BodyParameter) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *BodyParameter) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *BodyParameter) GetIn() string {\n\tif x != nil {\n\t\treturn x.In\n\t}\n\treturn \"\"\n}\n\nfunc (x *BodyParameter) GetRequired() bool {\n\tif x != nil {\n\t\treturn x.Required\n\t}\n\treturn false\n}\n\nfunc (x *BodyParameter) GetSchema() *Schema {\n\tif x != nil {\n\t\treturn x.Schema\n\t}\n\treturn nil\n}\n\nfunc (x *BodyParameter) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\n// Contact information for the owners of the API.\ntype Contact struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// The identifying name of the contact person/organization.\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// The URL pointing to the contact information.\n\tUrl string `protobuf:\"bytes,2,opt,name=url,proto3\" json:\"url,omitempty\"`\n\t// The email address of the contact person/organization.\n\tEmail           string      `protobuf:\"bytes,3,opt,name=email,proto3\" json:\"email,omitempty\"`\n\tVendorExtension []*NamedAny `protobuf:\"bytes,4,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *Contact) Reset() {\n\t*x = Contact{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[5]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Contact) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Contact) ProtoMessage() {}\n\nfunc (x *Contact) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[5]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Contact.ProtoReflect.Descriptor instead.\nfunc (*Contact) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{5}\n}\n\nfunc (x *Contact) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *Contact) GetUrl() string {\n\tif x != nil {\n\t\treturn x.Url\n\t}\n\treturn \"\"\n}\n\nfunc (x *Contact) GetEmail() string {\n\tif x != nil {\n\t\treturn x.Email\n\t}\n\treturn \"\"\n}\n\nfunc (x *Contact) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\ntype Default struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedAny `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *Default) Reset() {\n\t*x = Default{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[6]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Default) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Default) ProtoMessage() {}\n\nfunc (x *Default) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[6]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Default.ProtoReflect.Descriptor instead.\nfunc (*Default) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{6}\n}\n\nfunc (x *Default) GetAdditionalProperties() []*NamedAny {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\n// One or more JSON objects describing the schemas being consumed and produced by the API.\ntype Definitions struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedSchema `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *Definitions) Reset() {\n\t*x = Definitions{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[7]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Definitions) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Definitions) ProtoMessage() {}\n\nfunc (x *Definitions) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[7]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Definitions.ProtoReflect.Descriptor instead.\nfunc (*Definitions) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{7}\n}\n\nfunc (x *Definitions) GetAdditionalProperties() []*NamedSchema {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\ntype Document struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// The Swagger version of this document.\n\tSwagger string `protobuf:\"bytes,1,opt,name=swagger,proto3\" json:\"swagger,omitempty\"`\n\tInfo    *Info  `protobuf:\"bytes,2,opt,name=info,proto3\" json:\"info,omitempty\"`\n\t// The host (name or ip) of the API. Example: 'swagger.io'\n\tHost string `protobuf:\"bytes,3,opt,name=host,proto3\" json:\"host,omitempty\"`\n\t// The base path to the API. Example: '/api'.\n\tBasePath string `protobuf:\"bytes,4,opt,name=base_path,json=basePath,proto3\" json:\"base_path,omitempty\"`\n\t// The transfer protocol of the API.\n\tSchemes []string `protobuf:\"bytes,5,rep,name=schemes,proto3\" json:\"schemes,omitempty\"`\n\t// A list of MIME types accepted by the API.\n\tConsumes []string `protobuf:\"bytes,6,rep,name=consumes,proto3\" json:\"consumes,omitempty\"`\n\t// A list of MIME types the API can produce.\n\tProduces            []string               `protobuf:\"bytes,7,rep,name=produces,proto3\" json:\"produces,omitempty\"`\n\tPaths               *Paths                 `protobuf:\"bytes,8,opt,name=paths,proto3\" json:\"paths,omitempty\"`\n\tDefinitions         *Definitions           `protobuf:\"bytes,9,opt,name=definitions,proto3\" json:\"definitions,omitempty\"`\n\tParameters          *ParameterDefinitions  `protobuf:\"bytes,10,opt,name=parameters,proto3\" json:\"parameters,omitempty\"`\n\tResponses           *ResponseDefinitions   `protobuf:\"bytes,11,opt,name=responses,proto3\" json:\"responses,omitempty\"`\n\tSecurity            []*SecurityRequirement `protobuf:\"bytes,12,rep,name=security,proto3\" json:\"security,omitempty\"`\n\tSecurityDefinitions *SecurityDefinitions   `protobuf:\"bytes,13,opt,name=security_definitions,json=securityDefinitions,proto3\" json:\"security_definitions,omitempty\"`\n\tTags                []*Tag                 `protobuf:\"bytes,14,rep,name=tags,proto3\" json:\"tags,omitempty\"`\n\tExternalDocs        *ExternalDocs          `protobuf:\"bytes,15,opt,name=external_docs,json=externalDocs,proto3\" json:\"external_docs,omitempty\"`\n\tVendorExtension     []*NamedAny            `protobuf:\"bytes,16,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *Document) Reset() {\n\t*x = Document{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[8]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Document) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Document) ProtoMessage() {}\n\nfunc (x *Document) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[8]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Document.ProtoReflect.Descriptor instead.\nfunc (*Document) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{8}\n}\n\nfunc (x *Document) GetSwagger() string {\n\tif x != nil {\n\t\treturn x.Swagger\n\t}\n\treturn \"\"\n}\n\nfunc (x *Document) GetInfo() *Info {\n\tif x != nil {\n\t\treturn x.Info\n\t}\n\treturn nil\n}\n\nfunc (x *Document) GetHost() string {\n\tif x != nil {\n\t\treturn x.Host\n\t}\n\treturn \"\"\n}\n\nfunc (x *Document) GetBasePath() string {\n\tif x != nil {\n\t\treturn x.BasePath\n\t}\n\treturn \"\"\n}\n\nfunc (x *Document) GetSchemes() []string {\n\tif x != nil {\n\t\treturn x.Schemes\n\t}\n\treturn nil\n}\n\nfunc (x *Document) GetConsumes() []string {\n\tif x != nil {\n\t\treturn x.Consumes\n\t}\n\treturn nil\n}\n\nfunc (x *Document) GetProduces() []string {\n\tif x != nil {\n\t\treturn x.Produces\n\t}\n\treturn nil\n}\n\nfunc (x *Document) GetPaths() *Paths {\n\tif x != nil {\n\t\treturn x.Paths\n\t}\n\treturn nil\n}\n\nfunc (x *Document) GetDefinitions() *Definitions {\n\tif x != nil {\n\t\treturn x.Definitions\n\t}\n\treturn nil\n}\n\nfunc (x *Document) GetParameters() *ParameterDefinitions {\n\tif x != nil {\n\t\treturn x.Parameters\n\t}\n\treturn nil\n}\n\nfunc (x *Document) GetResponses() *ResponseDefinitions {\n\tif x != nil {\n\t\treturn x.Responses\n\t}\n\treturn nil\n}\n\nfunc (x *Document) GetSecurity() []*SecurityRequirement {\n\tif x != nil {\n\t\treturn x.Security\n\t}\n\treturn nil\n}\n\nfunc (x *Document) GetSecurityDefinitions() *SecurityDefinitions {\n\tif x != nil {\n\t\treturn x.SecurityDefinitions\n\t}\n\treturn nil\n}\n\nfunc (x *Document) GetTags() []*Tag {\n\tif x != nil {\n\t\treturn x.Tags\n\t}\n\treturn nil\n}\n\nfunc (x *Document) GetExternalDocs() *ExternalDocs {\n\tif x != nil {\n\t\treturn x.ExternalDocs\n\t}\n\treturn nil\n}\n\nfunc (x *Document) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\ntype Examples struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedAny `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *Examples) Reset() {\n\t*x = Examples{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[9]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Examples) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Examples) ProtoMessage() {}\n\nfunc (x *Examples) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[9]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Examples.ProtoReflect.Descriptor instead.\nfunc (*Examples) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{9}\n}\n\nfunc (x *Examples) GetAdditionalProperties() []*NamedAny {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\n// information about external documentation\ntype ExternalDocs struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tDescription     string      `protobuf:\"bytes,1,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tUrl             string      `protobuf:\"bytes,2,opt,name=url,proto3\" json:\"url,omitempty\"`\n\tVendorExtension []*NamedAny `protobuf:\"bytes,3,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *ExternalDocs) Reset() {\n\t*x = ExternalDocs{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[10]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ExternalDocs) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ExternalDocs) ProtoMessage() {}\n\nfunc (x *ExternalDocs) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[10]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ExternalDocs.ProtoReflect.Descriptor instead.\nfunc (*ExternalDocs) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{10}\n}\n\nfunc (x *ExternalDocs) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *ExternalDocs) GetUrl() string {\n\tif x != nil {\n\t\treturn x.Url\n\t}\n\treturn \"\"\n}\n\nfunc (x *ExternalDocs) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\n// A deterministic version of a JSON Schema object.\ntype FileSchema struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tFormat          string        `protobuf:\"bytes,1,opt,name=format,proto3\" json:\"format,omitempty\"`\n\tTitle           string        `protobuf:\"bytes,2,opt,name=title,proto3\" json:\"title,omitempty\"`\n\tDescription     string        `protobuf:\"bytes,3,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tDefault         *Any          `protobuf:\"bytes,4,opt,name=default,proto3\" json:\"default,omitempty\"`\n\tRequired        []string      `protobuf:\"bytes,5,rep,name=required,proto3\" json:\"required,omitempty\"`\n\tType            string        `protobuf:\"bytes,6,opt,name=type,proto3\" json:\"type,omitempty\"`\n\tReadOnly        bool          `protobuf:\"varint,7,opt,name=read_only,json=readOnly,proto3\" json:\"read_only,omitempty\"`\n\tExternalDocs    *ExternalDocs `protobuf:\"bytes,8,opt,name=external_docs,json=externalDocs,proto3\" json:\"external_docs,omitempty\"`\n\tExample         *Any          `protobuf:\"bytes,9,opt,name=example,proto3\" json:\"example,omitempty\"`\n\tVendorExtension []*NamedAny   `protobuf:\"bytes,10,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *FileSchema) Reset() {\n\t*x = FileSchema{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[11]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *FileSchema) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*FileSchema) ProtoMessage() {}\n\nfunc (x *FileSchema) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[11]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use FileSchema.ProtoReflect.Descriptor instead.\nfunc (*FileSchema) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{11}\n}\n\nfunc (x *FileSchema) GetFormat() string {\n\tif x != nil {\n\t\treturn x.Format\n\t}\n\treturn \"\"\n}\n\nfunc (x *FileSchema) GetTitle() string {\n\tif x != nil {\n\t\treturn x.Title\n\t}\n\treturn \"\"\n}\n\nfunc (x *FileSchema) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *FileSchema) GetDefault() *Any {\n\tif x != nil {\n\t\treturn x.Default\n\t}\n\treturn nil\n}\n\nfunc (x *FileSchema) GetRequired() []string {\n\tif x != nil {\n\t\treturn x.Required\n\t}\n\treturn nil\n}\n\nfunc (x *FileSchema) GetType() string {\n\tif x != nil {\n\t\treturn x.Type\n\t}\n\treturn \"\"\n}\n\nfunc (x *FileSchema) GetReadOnly() bool {\n\tif x != nil {\n\t\treturn x.ReadOnly\n\t}\n\treturn false\n}\n\nfunc (x *FileSchema) GetExternalDocs() *ExternalDocs {\n\tif x != nil {\n\t\treturn x.ExternalDocs\n\t}\n\treturn nil\n}\n\nfunc (x *FileSchema) GetExample() *Any {\n\tif x != nil {\n\t\treturn x.Example\n\t}\n\treturn nil\n}\n\nfunc (x *FileSchema) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\ntype FormDataParameterSubSchema struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Determines whether or not this parameter is required or optional.\n\tRequired bool `protobuf:\"varint,1,opt,name=required,proto3\" json:\"required,omitempty\"`\n\t// Determines the location of the parameter.\n\tIn string `protobuf:\"bytes,2,opt,name=in,proto3\" json:\"in,omitempty\"`\n\t// A brief description of the parameter. This could contain examples of use.  GitHub Flavored Markdown is allowed.\n\tDescription string `protobuf:\"bytes,3,opt,name=description,proto3\" json:\"description,omitempty\"`\n\t// The name of the parameter.\n\tName string `protobuf:\"bytes,4,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// allows sending a parameter by name only or with an empty value.\n\tAllowEmptyValue  bool             `protobuf:\"varint,5,opt,name=allow_empty_value,json=allowEmptyValue,proto3\" json:\"allow_empty_value,omitempty\"`\n\tType             string           `protobuf:\"bytes,6,opt,name=type,proto3\" json:\"type,omitempty\"`\n\tFormat           string           `protobuf:\"bytes,7,opt,name=format,proto3\" json:\"format,omitempty\"`\n\tItems            *PrimitivesItems `protobuf:\"bytes,8,opt,name=items,proto3\" json:\"items,omitempty\"`\n\tCollectionFormat string           `protobuf:\"bytes,9,opt,name=collection_format,json=collectionFormat,proto3\" json:\"collection_format,omitempty\"`\n\tDefault          *Any             `protobuf:\"bytes,10,opt,name=default,proto3\" json:\"default,omitempty\"`\n\tMaximum          float64          `protobuf:\"fixed64,11,opt,name=maximum,proto3\" json:\"maximum,omitempty\"`\n\tExclusiveMaximum bool             `protobuf:\"varint,12,opt,name=exclusive_maximum,json=exclusiveMaximum,proto3\" json:\"exclusive_maximum,omitempty\"`\n\tMinimum          float64          `protobuf:\"fixed64,13,opt,name=minimum,proto3\" json:\"minimum,omitempty\"`\n\tExclusiveMinimum bool             `protobuf:\"varint,14,opt,name=exclusive_minimum,json=exclusiveMinimum,proto3\" json:\"exclusive_minimum,omitempty\"`\n\tMaxLength        int64            `protobuf:\"varint,15,opt,name=max_length,json=maxLength,proto3\" json:\"max_length,omitempty\"`\n\tMinLength        int64            `protobuf:\"varint,16,opt,name=min_length,json=minLength,proto3\" json:\"min_length,omitempty\"`\n\tPattern          string           `protobuf:\"bytes,17,opt,name=pattern,proto3\" json:\"pattern,omitempty\"`\n\tMaxItems         int64            `protobuf:\"varint,18,opt,name=max_items,json=maxItems,proto3\" json:\"max_items,omitempty\"`\n\tMinItems         int64            `protobuf:\"varint,19,opt,name=min_items,json=minItems,proto3\" json:\"min_items,omitempty\"`\n\tUniqueItems      bool             `protobuf:\"varint,20,opt,name=unique_items,json=uniqueItems,proto3\" json:\"unique_items,omitempty\"`\n\tEnum             []*Any           `protobuf:\"bytes,21,rep,name=enum,proto3\" json:\"enum,omitempty\"`\n\tMultipleOf       float64          `protobuf:\"fixed64,22,opt,name=multiple_of,json=multipleOf,proto3\" json:\"multiple_of,omitempty\"`\n\tVendorExtension  []*NamedAny      `protobuf:\"bytes,23,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *FormDataParameterSubSchema) Reset() {\n\t*x = FormDataParameterSubSchema{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[12]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *FormDataParameterSubSchema) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*FormDataParameterSubSchema) ProtoMessage() {}\n\nfunc (x *FormDataParameterSubSchema) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[12]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use FormDataParameterSubSchema.ProtoReflect.Descriptor instead.\nfunc (*FormDataParameterSubSchema) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{12}\n}\n\nfunc (x *FormDataParameterSubSchema) GetRequired() bool {\n\tif x != nil {\n\t\treturn x.Required\n\t}\n\treturn false\n}\n\nfunc (x *FormDataParameterSubSchema) GetIn() string {\n\tif x != nil {\n\t\treturn x.In\n\t}\n\treturn \"\"\n}\n\nfunc (x *FormDataParameterSubSchema) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *FormDataParameterSubSchema) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *FormDataParameterSubSchema) GetAllowEmptyValue() bool {\n\tif x != nil {\n\t\treturn x.AllowEmptyValue\n\t}\n\treturn false\n}\n\nfunc (x *FormDataParameterSubSchema) GetType() string {\n\tif x != nil {\n\t\treturn x.Type\n\t}\n\treturn \"\"\n}\n\nfunc (x *FormDataParameterSubSchema) GetFormat() string {\n\tif x != nil {\n\t\treturn x.Format\n\t}\n\treturn \"\"\n}\n\nfunc (x *FormDataParameterSubSchema) GetItems() *PrimitivesItems {\n\tif x != nil {\n\t\treturn x.Items\n\t}\n\treturn nil\n}\n\nfunc (x *FormDataParameterSubSchema) GetCollectionFormat() string {\n\tif x != nil {\n\t\treturn x.CollectionFormat\n\t}\n\treturn \"\"\n}\n\nfunc (x *FormDataParameterSubSchema) GetDefault() *Any {\n\tif x != nil {\n\t\treturn x.Default\n\t}\n\treturn nil\n}\n\nfunc (x *FormDataParameterSubSchema) GetMaximum() float64 {\n\tif x != nil {\n\t\treturn x.Maximum\n\t}\n\treturn 0\n}\n\nfunc (x *FormDataParameterSubSchema) GetExclusiveMaximum() bool {\n\tif x != nil {\n\t\treturn x.ExclusiveMaximum\n\t}\n\treturn false\n}\n\nfunc (x *FormDataParameterSubSchema) GetMinimum() float64 {\n\tif x != nil {\n\t\treturn x.Minimum\n\t}\n\treturn 0\n}\n\nfunc (x *FormDataParameterSubSchema) GetExclusiveMinimum() bool {\n\tif x != nil {\n\t\treturn x.ExclusiveMinimum\n\t}\n\treturn false\n}\n\nfunc (x *FormDataParameterSubSchema) GetMaxLength() int64 {\n\tif x != nil {\n\t\treturn x.MaxLength\n\t}\n\treturn 0\n}\n\nfunc (x *FormDataParameterSubSchema) GetMinLength() int64 {\n\tif x != nil {\n\t\treturn x.MinLength\n\t}\n\treturn 0\n}\n\nfunc (x *FormDataParameterSubSchema) GetPattern() string {\n\tif x != nil {\n\t\treturn x.Pattern\n\t}\n\treturn \"\"\n}\n\nfunc (x *FormDataParameterSubSchema) GetMaxItems() int64 {\n\tif x != nil {\n\t\treturn x.MaxItems\n\t}\n\treturn 0\n}\n\nfunc (x *FormDataParameterSubSchema) GetMinItems() int64 {\n\tif x != nil {\n\t\treturn x.MinItems\n\t}\n\treturn 0\n}\n\nfunc (x *FormDataParameterSubSchema) GetUniqueItems() bool {\n\tif x != nil {\n\t\treturn x.UniqueItems\n\t}\n\treturn false\n}\n\nfunc (x *FormDataParameterSubSchema) GetEnum() []*Any {\n\tif x != nil {\n\t\treturn x.Enum\n\t}\n\treturn nil\n}\n\nfunc (x *FormDataParameterSubSchema) GetMultipleOf() float64 {\n\tif x != nil {\n\t\treturn x.MultipleOf\n\t}\n\treturn 0\n}\n\nfunc (x *FormDataParameterSubSchema) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\ntype Header struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tType             string           `protobuf:\"bytes,1,opt,name=type,proto3\" json:\"type,omitempty\"`\n\tFormat           string           `protobuf:\"bytes,2,opt,name=format,proto3\" json:\"format,omitempty\"`\n\tItems            *PrimitivesItems `protobuf:\"bytes,3,opt,name=items,proto3\" json:\"items,omitempty\"`\n\tCollectionFormat string           `protobuf:\"bytes,4,opt,name=collection_format,json=collectionFormat,proto3\" json:\"collection_format,omitempty\"`\n\tDefault          *Any             `protobuf:\"bytes,5,opt,name=default,proto3\" json:\"default,omitempty\"`\n\tMaximum          float64          `protobuf:\"fixed64,6,opt,name=maximum,proto3\" json:\"maximum,omitempty\"`\n\tExclusiveMaximum bool             `protobuf:\"varint,7,opt,name=exclusive_maximum,json=exclusiveMaximum,proto3\" json:\"exclusive_maximum,omitempty\"`\n\tMinimum          float64          `protobuf:\"fixed64,8,opt,name=minimum,proto3\" json:\"minimum,omitempty\"`\n\tExclusiveMinimum bool             `protobuf:\"varint,9,opt,name=exclusive_minimum,json=exclusiveMinimum,proto3\" json:\"exclusive_minimum,omitempty\"`\n\tMaxLength        int64            `protobuf:\"varint,10,opt,name=max_length,json=maxLength,proto3\" json:\"max_length,omitempty\"`\n\tMinLength        int64            `protobuf:\"varint,11,opt,name=min_length,json=minLength,proto3\" json:\"min_length,omitempty\"`\n\tPattern          string           `protobuf:\"bytes,12,opt,name=pattern,proto3\" json:\"pattern,omitempty\"`\n\tMaxItems         int64            `protobuf:\"varint,13,opt,name=max_items,json=maxItems,proto3\" json:\"max_items,omitempty\"`\n\tMinItems         int64            `protobuf:\"varint,14,opt,name=min_items,json=minItems,proto3\" json:\"min_items,omitempty\"`\n\tUniqueItems      bool             `protobuf:\"varint,15,opt,name=unique_items,json=uniqueItems,proto3\" json:\"unique_items,omitempty\"`\n\tEnum             []*Any           `protobuf:\"bytes,16,rep,name=enum,proto3\" json:\"enum,omitempty\"`\n\tMultipleOf       float64          `protobuf:\"fixed64,17,opt,name=multiple_of,json=multipleOf,proto3\" json:\"multiple_of,omitempty\"`\n\tDescription      string           `protobuf:\"bytes,18,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tVendorExtension  []*NamedAny      `protobuf:\"bytes,19,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *Header) Reset() {\n\t*x = Header{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[13]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Header) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Header) ProtoMessage() {}\n\nfunc (x *Header) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[13]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Header.ProtoReflect.Descriptor instead.\nfunc (*Header) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{13}\n}\n\nfunc (x *Header) GetType() string {\n\tif x != nil {\n\t\treturn x.Type\n\t}\n\treturn \"\"\n}\n\nfunc (x *Header) GetFormat() string {\n\tif x != nil {\n\t\treturn x.Format\n\t}\n\treturn \"\"\n}\n\nfunc (x *Header) GetItems() *PrimitivesItems {\n\tif x != nil {\n\t\treturn x.Items\n\t}\n\treturn nil\n}\n\nfunc (x *Header) GetCollectionFormat() string {\n\tif x != nil {\n\t\treturn x.CollectionFormat\n\t}\n\treturn \"\"\n}\n\nfunc (x *Header) GetDefault() *Any {\n\tif x != nil {\n\t\treturn x.Default\n\t}\n\treturn nil\n}\n\nfunc (x *Header) GetMaximum() float64 {\n\tif x != nil {\n\t\treturn x.Maximum\n\t}\n\treturn 0\n}\n\nfunc (x *Header) GetExclusiveMaximum() bool {\n\tif x != nil {\n\t\treturn x.ExclusiveMaximum\n\t}\n\treturn false\n}\n\nfunc (x *Header) GetMinimum() float64 {\n\tif x != nil {\n\t\treturn x.Minimum\n\t}\n\treturn 0\n}\n\nfunc (x *Header) GetExclusiveMinimum() bool {\n\tif x != nil {\n\t\treturn x.ExclusiveMinimum\n\t}\n\treturn false\n}\n\nfunc (x *Header) GetMaxLength() int64 {\n\tif x != nil {\n\t\treturn x.MaxLength\n\t}\n\treturn 0\n}\n\nfunc (x *Header) GetMinLength() int64 {\n\tif x != nil {\n\t\treturn x.MinLength\n\t}\n\treturn 0\n}\n\nfunc (x *Header) GetPattern() string {\n\tif x != nil {\n\t\treturn x.Pattern\n\t}\n\treturn \"\"\n}\n\nfunc (x *Header) GetMaxItems() int64 {\n\tif x != nil {\n\t\treturn x.MaxItems\n\t}\n\treturn 0\n}\n\nfunc (x *Header) GetMinItems() int64 {\n\tif x != nil {\n\t\treturn x.MinItems\n\t}\n\treturn 0\n}\n\nfunc (x *Header) GetUniqueItems() bool {\n\tif x != nil {\n\t\treturn x.UniqueItems\n\t}\n\treturn false\n}\n\nfunc (x *Header) GetEnum() []*Any {\n\tif x != nil {\n\t\treturn x.Enum\n\t}\n\treturn nil\n}\n\nfunc (x *Header) GetMultipleOf() float64 {\n\tif x != nil {\n\t\treturn x.MultipleOf\n\t}\n\treturn 0\n}\n\nfunc (x *Header) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *Header) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\ntype HeaderParameterSubSchema struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Determines whether or not this parameter is required or optional.\n\tRequired bool `protobuf:\"varint,1,opt,name=required,proto3\" json:\"required,omitempty\"`\n\t// Determines the location of the parameter.\n\tIn string `protobuf:\"bytes,2,opt,name=in,proto3\" json:\"in,omitempty\"`\n\t// A brief description of the parameter. This could contain examples of use.  GitHub Flavored Markdown is allowed.\n\tDescription string `protobuf:\"bytes,3,opt,name=description,proto3\" json:\"description,omitempty\"`\n\t// The name of the parameter.\n\tName             string           `protobuf:\"bytes,4,opt,name=name,proto3\" json:\"name,omitempty\"`\n\tType             string           `protobuf:\"bytes,5,opt,name=type,proto3\" json:\"type,omitempty\"`\n\tFormat           string           `protobuf:\"bytes,6,opt,name=format,proto3\" json:\"format,omitempty\"`\n\tItems            *PrimitivesItems `protobuf:\"bytes,7,opt,name=items,proto3\" json:\"items,omitempty\"`\n\tCollectionFormat string           `protobuf:\"bytes,8,opt,name=collection_format,json=collectionFormat,proto3\" json:\"collection_format,omitempty\"`\n\tDefault          *Any             `protobuf:\"bytes,9,opt,name=default,proto3\" json:\"default,omitempty\"`\n\tMaximum          float64          `protobuf:\"fixed64,10,opt,name=maximum,proto3\" json:\"maximum,omitempty\"`\n\tExclusiveMaximum bool             `protobuf:\"varint,11,opt,name=exclusive_maximum,json=exclusiveMaximum,proto3\" json:\"exclusive_maximum,omitempty\"`\n\tMinimum          float64          `protobuf:\"fixed64,12,opt,name=minimum,proto3\" json:\"minimum,omitempty\"`\n\tExclusiveMinimum bool             `protobuf:\"varint,13,opt,name=exclusive_minimum,json=exclusiveMinimum,proto3\" json:\"exclusive_minimum,omitempty\"`\n\tMaxLength        int64            `protobuf:\"varint,14,opt,name=max_length,json=maxLength,proto3\" json:\"max_length,omitempty\"`\n\tMinLength        int64            `protobuf:\"varint,15,opt,name=min_length,json=minLength,proto3\" json:\"min_length,omitempty\"`\n\tPattern          string           `protobuf:\"bytes,16,opt,name=pattern,proto3\" json:\"pattern,omitempty\"`\n\tMaxItems         int64            `protobuf:\"varint,17,opt,name=max_items,json=maxItems,proto3\" json:\"max_items,omitempty\"`\n\tMinItems         int64            `protobuf:\"varint,18,opt,name=min_items,json=minItems,proto3\" json:\"min_items,omitempty\"`\n\tUniqueItems      bool             `protobuf:\"varint,19,opt,name=unique_items,json=uniqueItems,proto3\" json:\"unique_items,omitempty\"`\n\tEnum             []*Any           `protobuf:\"bytes,20,rep,name=enum,proto3\" json:\"enum,omitempty\"`\n\tMultipleOf       float64          `protobuf:\"fixed64,21,opt,name=multiple_of,json=multipleOf,proto3\" json:\"multiple_of,omitempty\"`\n\tVendorExtension  []*NamedAny      `protobuf:\"bytes,22,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *HeaderParameterSubSchema) Reset() {\n\t*x = HeaderParameterSubSchema{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[14]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *HeaderParameterSubSchema) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*HeaderParameterSubSchema) ProtoMessage() {}\n\nfunc (x *HeaderParameterSubSchema) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[14]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use HeaderParameterSubSchema.ProtoReflect.Descriptor instead.\nfunc (*HeaderParameterSubSchema) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{14}\n}\n\nfunc (x *HeaderParameterSubSchema) GetRequired() bool {\n\tif x != nil {\n\t\treturn x.Required\n\t}\n\treturn false\n}\n\nfunc (x *HeaderParameterSubSchema) GetIn() string {\n\tif x != nil {\n\t\treturn x.In\n\t}\n\treturn \"\"\n}\n\nfunc (x *HeaderParameterSubSchema) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *HeaderParameterSubSchema) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *HeaderParameterSubSchema) GetType() string {\n\tif x != nil {\n\t\treturn x.Type\n\t}\n\treturn \"\"\n}\n\nfunc (x *HeaderParameterSubSchema) GetFormat() string {\n\tif x != nil {\n\t\treturn x.Format\n\t}\n\treturn \"\"\n}\n\nfunc (x *HeaderParameterSubSchema) GetItems() *PrimitivesItems {\n\tif x != nil {\n\t\treturn x.Items\n\t}\n\treturn nil\n}\n\nfunc (x *HeaderParameterSubSchema) GetCollectionFormat() string {\n\tif x != nil {\n\t\treturn x.CollectionFormat\n\t}\n\treturn \"\"\n}\n\nfunc (x *HeaderParameterSubSchema) GetDefault() *Any {\n\tif x != nil {\n\t\treturn x.Default\n\t}\n\treturn nil\n}\n\nfunc (x *HeaderParameterSubSchema) GetMaximum() float64 {\n\tif x != nil {\n\t\treturn x.Maximum\n\t}\n\treturn 0\n}\n\nfunc (x *HeaderParameterSubSchema) GetExclusiveMaximum() bool {\n\tif x != nil {\n\t\treturn x.ExclusiveMaximum\n\t}\n\treturn false\n}\n\nfunc (x *HeaderParameterSubSchema) GetMinimum() float64 {\n\tif x != nil {\n\t\treturn x.Minimum\n\t}\n\treturn 0\n}\n\nfunc (x *HeaderParameterSubSchema) GetExclusiveMinimum() bool {\n\tif x != nil {\n\t\treturn x.ExclusiveMinimum\n\t}\n\treturn false\n}\n\nfunc (x *HeaderParameterSubSchema) GetMaxLength() int64 {\n\tif x != nil {\n\t\treturn x.MaxLength\n\t}\n\treturn 0\n}\n\nfunc (x *HeaderParameterSubSchema) GetMinLength() int64 {\n\tif x != nil {\n\t\treturn x.MinLength\n\t}\n\treturn 0\n}\n\nfunc (x *HeaderParameterSubSchema) GetPattern() string {\n\tif x != nil {\n\t\treturn x.Pattern\n\t}\n\treturn \"\"\n}\n\nfunc (x *HeaderParameterSubSchema) GetMaxItems() int64 {\n\tif x != nil {\n\t\treturn x.MaxItems\n\t}\n\treturn 0\n}\n\nfunc (x *HeaderParameterSubSchema) GetMinItems() int64 {\n\tif x != nil {\n\t\treturn x.MinItems\n\t}\n\treturn 0\n}\n\nfunc (x *HeaderParameterSubSchema) GetUniqueItems() bool {\n\tif x != nil {\n\t\treturn x.UniqueItems\n\t}\n\treturn false\n}\n\nfunc (x *HeaderParameterSubSchema) GetEnum() []*Any {\n\tif x != nil {\n\t\treturn x.Enum\n\t}\n\treturn nil\n}\n\nfunc (x *HeaderParameterSubSchema) GetMultipleOf() float64 {\n\tif x != nil {\n\t\treturn x.MultipleOf\n\t}\n\treturn 0\n}\n\nfunc (x *HeaderParameterSubSchema) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\ntype Headers struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedHeader `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *Headers) Reset() {\n\t*x = Headers{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[15]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Headers) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Headers) ProtoMessage() {}\n\nfunc (x *Headers) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[15]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Headers.ProtoReflect.Descriptor instead.\nfunc (*Headers) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{15}\n}\n\nfunc (x *Headers) GetAdditionalProperties() []*NamedHeader {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\n// General information about the API.\ntype Info struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// A unique and precise title of the API.\n\tTitle string `protobuf:\"bytes,1,opt,name=title,proto3\" json:\"title,omitempty\"`\n\t// A semantic version number of the API.\n\tVersion string `protobuf:\"bytes,2,opt,name=version,proto3\" json:\"version,omitempty\"`\n\t// A longer description of the API. Should be different from the title.  GitHub Flavored Markdown is allowed.\n\tDescription string `protobuf:\"bytes,3,opt,name=description,proto3\" json:\"description,omitempty\"`\n\t// The terms of service for the API.\n\tTermsOfService  string      `protobuf:\"bytes,4,opt,name=terms_of_service,json=termsOfService,proto3\" json:\"terms_of_service,omitempty\"`\n\tContact         *Contact    `protobuf:\"bytes,5,opt,name=contact,proto3\" json:\"contact,omitempty\"`\n\tLicense         *License    `protobuf:\"bytes,6,opt,name=license,proto3\" json:\"license,omitempty\"`\n\tVendorExtension []*NamedAny `protobuf:\"bytes,7,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *Info) Reset() {\n\t*x = Info{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[16]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Info) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Info) ProtoMessage() {}\n\nfunc (x *Info) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[16]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Info.ProtoReflect.Descriptor instead.\nfunc (*Info) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{16}\n}\n\nfunc (x *Info) GetTitle() string {\n\tif x != nil {\n\t\treturn x.Title\n\t}\n\treturn \"\"\n}\n\nfunc (x *Info) GetVersion() string {\n\tif x != nil {\n\t\treturn x.Version\n\t}\n\treturn \"\"\n}\n\nfunc (x *Info) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *Info) GetTermsOfService() string {\n\tif x != nil {\n\t\treturn x.TermsOfService\n\t}\n\treturn \"\"\n}\n\nfunc (x *Info) GetContact() *Contact {\n\tif x != nil {\n\t\treturn x.Contact\n\t}\n\treturn nil\n}\n\nfunc (x *Info) GetLicense() *License {\n\tif x != nil {\n\t\treturn x.License\n\t}\n\treturn nil\n}\n\nfunc (x *Info) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\ntype ItemsItem struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tSchema []*Schema `protobuf:\"bytes,1,rep,name=schema,proto3\" json:\"schema,omitempty\"`\n}\n\nfunc (x *ItemsItem) Reset() {\n\t*x = ItemsItem{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[17]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ItemsItem) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ItemsItem) ProtoMessage() {}\n\nfunc (x *ItemsItem) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[17]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ItemsItem.ProtoReflect.Descriptor instead.\nfunc (*ItemsItem) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{17}\n}\n\nfunc (x *ItemsItem) GetSchema() []*Schema {\n\tif x != nil {\n\t\treturn x.Schema\n\t}\n\treturn nil\n}\n\ntype JsonReference struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tXRef        string `protobuf:\"bytes,1,opt,name=_ref,json=Ref,proto3\" json:\"_ref,omitempty\"`\n\tDescription string `protobuf:\"bytes,2,opt,name=description,proto3\" json:\"description,omitempty\"`\n}\n\nfunc (x *JsonReference) Reset() {\n\t*x = JsonReference{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[18]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *JsonReference) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*JsonReference) ProtoMessage() {}\n\nfunc (x *JsonReference) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[18]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use JsonReference.ProtoReflect.Descriptor instead.\nfunc (*JsonReference) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{18}\n}\n\nfunc (x *JsonReference) GetXRef() string {\n\tif x != nil {\n\t\treturn x.XRef\n\t}\n\treturn \"\"\n}\n\nfunc (x *JsonReference) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\ntype License struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// The name of the license type. It's encouraged to use an OSI compatible license.\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// The URL pointing to the license.\n\tUrl             string      `protobuf:\"bytes,2,opt,name=url,proto3\" json:\"url,omitempty\"`\n\tVendorExtension []*NamedAny `protobuf:\"bytes,3,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *License) Reset() {\n\t*x = License{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[19]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *License) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*License) ProtoMessage() {}\n\nfunc (x *License) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[19]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use License.ProtoReflect.Descriptor instead.\nfunc (*License) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{19}\n}\n\nfunc (x *License) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *License) GetUrl() string {\n\tif x != nil {\n\t\treturn x.Url\n\t}\n\treturn \"\"\n}\n\nfunc (x *License) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of Any as ordered (name,value) pairs.\ntype NamedAny struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *Any `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedAny) Reset() {\n\t*x = NamedAny{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[20]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedAny) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedAny) ProtoMessage() {}\n\nfunc (x *NamedAny) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[20]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedAny.ProtoReflect.Descriptor instead.\nfunc (*NamedAny) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{20}\n}\n\nfunc (x *NamedAny) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedAny) GetValue() *Any {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of Header as ordered (name,value) pairs.\ntype NamedHeader struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *Header `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedHeader) Reset() {\n\t*x = NamedHeader{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[21]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedHeader) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedHeader) ProtoMessage() {}\n\nfunc (x *NamedHeader) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[21]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedHeader.ProtoReflect.Descriptor instead.\nfunc (*NamedHeader) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{21}\n}\n\nfunc (x *NamedHeader) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedHeader) GetValue() *Header {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of Parameter as ordered (name,value) pairs.\ntype NamedParameter struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *Parameter `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedParameter) Reset() {\n\t*x = NamedParameter{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[22]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedParameter) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedParameter) ProtoMessage() {}\n\nfunc (x *NamedParameter) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[22]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedParameter.ProtoReflect.Descriptor instead.\nfunc (*NamedParameter) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{22}\n}\n\nfunc (x *NamedParameter) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedParameter) GetValue() *Parameter {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of PathItem as ordered (name,value) pairs.\ntype NamedPathItem struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *PathItem `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedPathItem) Reset() {\n\t*x = NamedPathItem{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[23]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedPathItem) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedPathItem) ProtoMessage() {}\n\nfunc (x *NamedPathItem) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[23]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedPathItem.ProtoReflect.Descriptor instead.\nfunc (*NamedPathItem) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{23}\n}\n\nfunc (x *NamedPathItem) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedPathItem) GetValue() *PathItem {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of Response as ordered (name,value) pairs.\ntype NamedResponse struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *Response `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedResponse) Reset() {\n\t*x = NamedResponse{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[24]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedResponse) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedResponse) ProtoMessage() {}\n\nfunc (x *NamedResponse) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[24]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedResponse.ProtoReflect.Descriptor instead.\nfunc (*NamedResponse) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{24}\n}\n\nfunc (x *NamedResponse) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedResponse) GetValue() *Response {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of ResponseValue as ordered (name,value) pairs.\ntype NamedResponseValue struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *ResponseValue `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedResponseValue) Reset() {\n\t*x = NamedResponseValue{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[25]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedResponseValue) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedResponseValue) ProtoMessage() {}\n\nfunc (x *NamedResponseValue) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[25]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedResponseValue.ProtoReflect.Descriptor instead.\nfunc (*NamedResponseValue) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{25}\n}\n\nfunc (x *NamedResponseValue) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedResponseValue) GetValue() *ResponseValue {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of Schema as ordered (name,value) pairs.\ntype NamedSchema struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *Schema `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedSchema) Reset() {\n\t*x = NamedSchema{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[26]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedSchema) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedSchema) ProtoMessage() {}\n\nfunc (x *NamedSchema) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[26]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedSchema.ProtoReflect.Descriptor instead.\nfunc (*NamedSchema) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{26}\n}\n\nfunc (x *NamedSchema) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedSchema) GetValue() *Schema {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of SecurityDefinitionsItem as ordered (name,value) pairs.\ntype NamedSecurityDefinitionsItem struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *SecurityDefinitionsItem `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedSecurityDefinitionsItem) Reset() {\n\t*x = NamedSecurityDefinitionsItem{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[27]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedSecurityDefinitionsItem) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedSecurityDefinitionsItem) ProtoMessage() {}\n\nfunc (x *NamedSecurityDefinitionsItem) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[27]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedSecurityDefinitionsItem.ProtoReflect.Descriptor instead.\nfunc (*NamedSecurityDefinitionsItem) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{27}\n}\n\nfunc (x *NamedSecurityDefinitionsItem) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedSecurityDefinitionsItem) GetValue() *SecurityDefinitionsItem {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of string as ordered (name,value) pairs.\ntype NamedString struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue string `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedString) Reset() {\n\t*x = NamedString{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[28]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedString) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedString) ProtoMessage() {}\n\nfunc (x *NamedString) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[28]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedString.ProtoReflect.Descriptor instead.\nfunc (*NamedString) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{28}\n}\n\nfunc (x *NamedString) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedString) GetValue() string {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn \"\"\n}\n\n// Automatically-generated message used to represent maps of StringArray as ordered (name,value) pairs.\ntype NamedStringArray struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *StringArray `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedStringArray) Reset() {\n\t*x = NamedStringArray{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[29]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedStringArray) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedStringArray) ProtoMessage() {}\n\nfunc (x *NamedStringArray) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[29]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedStringArray.ProtoReflect.Descriptor instead.\nfunc (*NamedStringArray) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{29}\n}\n\nfunc (x *NamedStringArray) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedStringArray) GetValue() *StringArray {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\ntype NonBodyParameter struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Types that are assignable to Oneof:\n\t//\t*NonBodyParameter_HeaderParameterSubSchema\n\t//\t*NonBodyParameter_FormDataParameterSubSchema\n\t//\t*NonBodyParameter_QueryParameterSubSchema\n\t//\t*NonBodyParameter_PathParameterSubSchema\n\tOneof isNonBodyParameter_Oneof `protobuf_oneof:\"oneof\"`\n}\n\nfunc (x *NonBodyParameter) Reset() {\n\t*x = NonBodyParameter{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[30]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NonBodyParameter) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NonBodyParameter) ProtoMessage() {}\n\nfunc (x *NonBodyParameter) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[30]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NonBodyParameter.ProtoReflect.Descriptor instead.\nfunc (*NonBodyParameter) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{30}\n}\n\nfunc (m *NonBodyParameter) GetOneof() isNonBodyParameter_Oneof {\n\tif m != nil {\n\t\treturn m.Oneof\n\t}\n\treturn nil\n}\n\nfunc (x *NonBodyParameter) GetHeaderParameterSubSchema() *HeaderParameterSubSchema {\n\tif x, ok := x.GetOneof().(*NonBodyParameter_HeaderParameterSubSchema); ok {\n\t\treturn x.HeaderParameterSubSchema\n\t}\n\treturn nil\n}\n\nfunc (x *NonBodyParameter) GetFormDataParameterSubSchema() *FormDataParameterSubSchema {\n\tif x, ok := x.GetOneof().(*NonBodyParameter_FormDataParameterSubSchema); ok {\n\t\treturn x.FormDataParameterSubSchema\n\t}\n\treturn nil\n}\n\nfunc (x *NonBodyParameter) GetQueryParameterSubSchema() *QueryParameterSubSchema {\n\tif x, ok := x.GetOneof().(*NonBodyParameter_QueryParameterSubSchema); ok {\n\t\treturn x.QueryParameterSubSchema\n\t}\n\treturn nil\n}\n\nfunc (x *NonBodyParameter) GetPathParameterSubSchema() *PathParameterSubSchema {\n\tif x, ok := x.GetOneof().(*NonBodyParameter_PathParameterSubSchema); ok {\n\t\treturn x.PathParameterSubSchema\n\t}\n\treturn nil\n}\n\ntype isNonBodyParameter_Oneof interface {\n\tisNonBodyParameter_Oneof()\n}\n\ntype NonBodyParameter_HeaderParameterSubSchema struct {\n\tHeaderParameterSubSchema *HeaderParameterSubSchema `protobuf:\"bytes,1,opt,name=header_parameter_sub_schema,json=headerParameterSubSchema,proto3,oneof\"`\n}\n\ntype NonBodyParameter_FormDataParameterSubSchema struct {\n\tFormDataParameterSubSchema *FormDataParameterSubSchema `protobuf:\"bytes,2,opt,name=form_data_parameter_sub_schema,json=formDataParameterSubSchema,proto3,oneof\"`\n}\n\ntype NonBodyParameter_QueryParameterSubSchema struct {\n\tQueryParameterSubSchema *QueryParameterSubSchema `protobuf:\"bytes,3,opt,name=query_parameter_sub_schema,json=queryParameterSubSchema,proto3,oneof\"`\n}\n\ntype NonBodyParameter_PathParameterSubSchema struct {\n\tPathParameterSubSchema *PathParameterSubSchema `protobuf:\"bytes,4,opt,name=path_parameter_sub_schema,json=pathParameterSubSchema,proto3,oneof\"`\n}\n\nfunc (*NonBodyParameter_HeaderParameterSubSchema) isNonBodyParameter_Oneof() {}\n\nfunc (*NonBodyParameter_FormDataParameterSubSchema) isNonBodyParameter_Oneof() {}\n\nfunc (*NonBodyParameter_QueryParameterSubSchema) isNonBodyParameter_Oneof() {}\n\nfunc (*NonBodyParameter_PathParameterSubSchema) isNonBodyParameter_Oneof() {}\n\ntype Oauth2AccessCodeSecurity struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tType             string        `protobuf:\"bytes,1,opt,name=type,proto3\" json:\"type,omitempty\"`\n\tFlow             string        `protobuf:\"bytes,2,opt,name=flow,proto3\" json:\"flow,omitempty\"`\n\tScopes           *Oauth2Scopes `protobuf:\"bytes,3,opt,name=scopes,proto3\" json:\"scopes,omitempty\"`\n\tAuthorizationUrl string        `protobuf:\"bytes,4,opt,name=authorization_url,json=authorizationUrl,proto3\" json:\"authorization_url,omitempty\"`\n\tTokenUrl         string        `protobuf:\"bytes,5,opt,name=token_url,json=tokenUrl,proto3\" json:\"token_url,omitempty\"`\n\tDescription      string        `protobuf:\"bytes,6,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tVendorExtension  []*NamedAny   `protobuf:\"bytes,7,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *Oauth2AccessCodeSecurity) Reset() {\n\t*x = Oauth2AccessCodeSecurity{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[31]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Oauth2AccessCodeSecurity) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Oauth2AccessCodeSecurity) ProtoMessage() {}\n\nfunc (x *Oauth2AccessCodeSecurity) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[31]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Oauth2AccessCodeSecurity.ProtoReflect.Descriptor instead.\nfunc (*Oauth2AccessCodeSecurity) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{31}\n}\n\nfunc (x *Oauth2AccessCodeSecurity) GetType() string {\n\tif x != nil {\n\t\treturn x.Type\n\t}\n\treturn \"\"\n}\n\nfunc (x *Oauth2AccessCodeSecurity) GetFlow() string {\n\tif x != nil {\n\t\treturn x.Flow\n\t}\n\treturn \"\"\n}\n\nfunc (x *Oauth2AccessCodeSecurity) GetScopes() *Oauth2Scopes {\n\tif x != nil {\n\t\treturn x.Scopes\n\t}\n\treturn nil\n}\n\nfunc (x *Oauth2AccessCodeSecurity) GetAuthorizationUrl() string {\n\tif x != nil {\n\t\treturn x.AuthorizationUrl\n\t}\n\treturn \"\"\n}\n\nfunc (x *Oauth2AccessCodeSecurity) GetTokenUrl() string {\n\tif x != nil {\n\t\treturn x.TokenUrl\n\t}\n\treturn \"\"\n}\n\nfunc (x *Oauth2AccessCodeSecurity) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *Oauth2AccessCodeSecurity) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\ntype Oauth2ApplicationSecurity struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tType            string        `protobuf:\"bytes,1,opt,name=type,proto3\" json:\"type,omitempty\"`\n\tFlow            string        `protobuf:\"bytes,2,opt,name=flow,proto3\" json:\"flow,omitempty\"`\n\tScopes          *Oauth2Scopes `protobuf:\"bytes,3,opt,name=scopes,proto3\" json:\"scopes,omitempty\"`\n\tTokenUrl        string        `protobuf:\"bytes,4,opt,name=token_url,json=tokenUrl,proto3\" json:\"token_url,omitempty\"`\n\tDescription     string        `protobuf:\"bytes,5,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tVendorExtension []*NamedAny   `protobuf:\"bytes,6,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *Oauth2ApplicationSecurity) Reset() {\n\t*x = Oauth2ApplicationSecurity{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[32]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Oauth2ApplicationSecurity) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Oauth2ApplicationSecurity) ProtoMessage() {}\n\nfunc (x *Oauth2ApplicationSecurity) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[32]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Oauth2ApplicationSecurity.ProtoReflect.Descriptor instead.\nfunc (*Oauth2ApplicationSecurity) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{32}\n}\n\nfunc (x *Oauth2ApplicationSecurity) GetType() string {\n\tif x != nil {\n\t\treturn x.Type\n\t}\n\treturn \"\"\n}\n\nfunc (x *Oauth2ApplicationSecurity) GetFlow() string {\n\tif x != nil {\n\t\treturn x.Flow\n\t}\n\treturn \"\"\n}\n\nfunc (x *Oauth2ApplicationSecurity) GetScopes() *Oauth2Scopes {\n\tif x != nil {\n\t\treturn x.Scopes\n\t}\n\treturn nil\n}\n\nfunc (x *Oauth2ApplicationSecurity) GetTokenUrl() string {\n\tif x != nil {\n\t\treturn x.TokenUrl\n\t}\n\treturn \"\"\n}\n\nfunc (x *Oauth2ApplicationSecurity) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *Oauth2ApplicationSecurity) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\ntype Oauth2ImplicitSecurity struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tType             string        `protobuf:\"bytes,1,opt,name=type,proto3\" json:\"type,omitempty\"`\n\tFlow             string        `protobuf:\"bytes,2,opt,name=flow,proto3\" json:\"flow,omitempty\"`\n\tScopes           *Oauth2Scopes `protobuf:\"bytes,3,opt,name=scopes,proto3\" json:\"scopes,omitempty\"`\n\tAuthorizationUrl string        `protobuf:\"bytes,4,opt,name=authorization_url,json=authorizationUrl,proto3\" json:\"authorization_url,omitempty\"`\n\tDescription      string        `protobuf:\"bytes,5,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tVendorExtension  []*NamedAny   `protobuf:\"bytes,6,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *Oauth2ImplicitSecurity) Reset() {\n\t*x = Oauth2ImplicitSecurity{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[33]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Oauth2ImplicitSecurity) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Oauth2ImplicitSecurity) ProtoMessage() {}\n\nfunc (x *Oauth2ImplicitSecurity) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[33]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Oauth2ImplicitSecurity.ProtoReflect.Descriptor instead.\nfunc (*Oauth2ImplicitSecurity) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{33}\n}\n\nfunc (x *Oauth2ImplicitSecurity) GetType() string {\n\tif x != nil {\n\t\treturn x.Type\n\t}\n\treturn \"\"\n}\n\nfunc (x *Oauth2ImplicitSecurity) GetFlow() string {\n\tif x != nil {\n\t\treturn x.Flow\n\t}\n\treturn \"\"\n}\n\nfunc (x *Oauth2ImplicitSecurity) GetScopes() *Oauth2Scopes {\n\tif x != nil {\n\t\treturn x.Scopes\n\t}\n\treturn nil\n}\n\nfunc (x *Oauth2ImplicitSecurity) GetAuthorizationUrl() string {\n\tif x != nil {\n\t\treturn x.AuthorizationUrl\n\t}\n\treturn \"\"\n}\n\nfunc (x *Oauth2ImplicitSecurity) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *Oauth2ImplicitSecurity) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\ntype Oauth2PasswordSecurity struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tType            string        `protobuf:\"bytes,1,opt,name=type,proto3\" json:\"type,omitempty\"`\n\tFlow            string        `protobuf:\"bytes,2,opt,name=flow,proto3\" json:\"flow,omitempty\"`\n\tScopes          *Oauth2Scopes `protobuf:\"bytes,3,opt,name=scopes,proto3\" json:\"scopes,omitempty\"`\n\tTokenUrl        string        `protobuf:\"bytes,4,opt,name=token_url,json=tokenUrl,proto3\" json:\"token_url,omitempty\"`\n\tDescription     string        `protobuf:\"bytes,5,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tVendorExtension []*NamedAny   `protobuf:\"bytes,6,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *Oauth2PasswordSecurity) Reset() {\n\t*x = Oauth2PasswordSecurity{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[34]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Oauth2PasswordSecurity) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Oauth2PasswordSecurity) ProtoMessage() {}\n\nfunc (x *Oauth2PasswordSecurity) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[34]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Oauth2PasswordSecurity.ProtoReflect.Descriptor instead.\nfunc (*Oauth2PasswordSecurity) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{34}\n}\n\nfunc (x *Oauth2PasswordSecurity) GetType() string {\n\tif x != nil {\n\t\treturn x.Type\n\t}\n\treturn \"\"\n}\n\nfunc (x *Oauth2PasswordSecurity) GetFlow() string {\n\tif x != nil {\n\t\treturn x.Flow\n\t}\n\treturn \"\"\n}\n\nfunc (x *Oauth2PasswordSecurity) GetScopes() *Oauth2Scopes {\n\tif x != nil {\n\t\treturn x.Scopes\n\t}\n\treturn nil\n}\n\nfunc (x *Oauth2PasswordSecurity) GetTokenUrl() string {\n\tif x != nil {\n\t\treturn x.TokenUrl\n\t}\n\treturn \"\"\n}\n\nfunc (x *Oauth2PasswordSecurity) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *Oauth2PasswordSecurity) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\ntype Oauth2Scopes struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedString `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *Oauth2Scopes) Reset() {\n\t*x = Oauth2Scopes{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[35]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Oauth2Scopes) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Oauth2Scopes) ProtoMessage() {}\n\nfunc (x *Oauth2Scopes) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[35]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Oauth2Scopes.ProtoReflect.Descriptor instead.\nfunc (*Oauth2Scopes) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{35}\n}\n\nfunc (x *Oauth2Scopes) GetAdditionalProperties() []*NamedString {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\ntype Operation struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tTags []string `protobuf:\"bytes,1,rep,name=tags,proto3\" json:\"tags,omitempty\"`\n\t// A brief summary of the operation.\n\tSummary string `protobuf:\"bytes,2,opt,name=summary,proto3\" json:\"summary,omitempty\"`\n\t// A longer description of the operation, GitHub Flavored Markdown is allowed.\n\tDescription  string        `protobuf:\"bytes,3,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tExternalDocs *ExternalDocs `protobuf:\"bytes,4,opt,name=external_docs,json=externalDocs,proto3\" json:\"external_docs,omitempty\"`\n\t// A unique identifier of the operation.\n\tOperationId string `protobuf:\"bytes,5,opt,name=operation_id,json=operationId,proto3\" json:\"operation_id,omitempty\"`\n\t// A list of MIME types the API can produce.\n\tProduces []string `protobuf:\"bytes,6,rep,name=produces,proto3\" json:\"produces,omitempty\"`\n\t// A list of MIME types the API can consume.\n\tConsumes []string `protobuf:\"bytes,7,rep,name=consumes,proto3\" json:\"consumes,omitempty\"`\n\t// The parameters needed to send a valid API call.\n\tParameters []*ParametersItem `protobuf:\"bytes,8,rep,name=parameters,proto3\" json:\"parameters,omitempty\"`\n\tResponses  *Responses        `protobuf:\"bytes,9,opt,name=responses,proto3\" json:\"responses,omitempty\"`\n\t// The transfer protocol of the API.\n\tSchemes         []string               `protobuf:\"bytes,10,rep,name=schemes,proto3\" json:\"schemes,omitempty\"`\n\tDeprecated      bool                   `protobuf:\"varint,11,opt,name=deprecated,proto3\" json:\"deprecated,omitempty\"`\n\tSecurity        []*SecurityRequirement `protobuf:\"bytes,12,rep,name=security,proto3\" json:\"security,omitempty\"`\n\tVendorExtension []*NamedAny            `protobuf:\"bytes,13,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *Operation) Reset() {\n\t*x = Operation{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[36]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Operation) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Operation) ProtoMessage() {}\n\nfunc (x *Operation) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[36]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Operation.ProtoReflect.Descriptor instead.\nfunc (*Operation) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{36}\n}\n\nfunc (x *Operation) GetTags() []string {\n\tif x != nil {\n\t\treturn x.Tags\n\t}\n\treturn nil\n}\n\nfunc (x *Operation) GetSummary() string {\n\tif x != nil {\n\t\treturn x.Summary\n\t}\n\treturn \"\"\n}\n\nfunc (x *Operation) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *Operation) GetExternalDocs() *ExternalDocs {\n\tif x != nil {\n\t\treturn x.ExternalDocs\n\t}\n\treturn nil\n}\n\nfunc (x *Operation) GetOperationId() string {\n\tif x != nil {\n\t\treturn x.OperationId\n\t}\n\treturn \"\"\n}\n\nfunc (x *Operation) GetProduces() []string {\n\tif x != nil {\n\t\treturn x.Produces\n\t}\n\treturn nil\n}\n\nfunc (x *Operation) GetConsumes() []string {\n\tif x != nil {\n\t\treturn x.Consumes\n\t}\n\treturn nil\n}\n\nfunc (x *Operation) GetParameters() []*ParametersItem {\n\tif x != nil {\n\t\treturn x.Parameters\n\t}\n\treturn nil\n}\n\nfunc (x *Operation) GetResponses() *Responses {\n\tif x != nil {\n\t\treturn x.Responses\n\t}\n\treturn nil\n}\n\nfunc (x *Operation) GetSchemes() []string {\n\tif x != nil {\n\t\treturn x.Schemes\n\t}\n\treturn nil\n}\n\nfunc (x *Operation) GetDeprecated() bool {\n\tif x != nil {\n\t\treturn x.Deprecated\n\t}\n\treturn false\n}\n\nfunc (x *Operation) GetSecurity() []*SecurityRequirement {\n\tif x != nil {\n\t\treturn x.Security\n\t}\n\treturn nil\n}\n\nfunc (x *Operation) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\ntype Parameter struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Types that are assignable to Oneof:\n\t//\t*Parameter_BodyParameter\n\t//\t*Parameter_NonBodyParameter\n\tOneof isParameter_Oneof `protobuf_oneof:\"oneof\"`\n}\n\nfunc (x *Parameter) Reset() {\n\t*x = Parameter{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[37]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Parameter) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Parameter) ProtoMessage() {}\n\nfunc (x *Parameter) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[37]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Parameter.ProtoReflect.Descriptor instead.\nfunc (*Parameter) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{37}\n}\n\nfunc (m *Parameter) GetOneof() isParameter_Oneof {\n\tif m != nil {\n\t\treturn m.Oneof\n\t}\n\treturn nil\n}\n\nfunc (x *Parameter) GetBodyParameter() *BodyParameter {\n\tif x, ok := x.GetOneof().(*Parameter_BodyParameter); ok {\n\t\treturn x.BodyParameter\n\t}\n\treturn nil\n}\n\nfunc (x *Parameter) GetNonBodyParameter() *NonBodyParameter {\n\tif x, ok := x.GetOneof().(*Parameter_NonBodyParameter); ok {\n\t\treturn x.NonBodyParameter\n\t}\n\treturn nil\n}\n\ntype isParameter_Oneof interface {\n\tisParameter_Oneof()\n}\n\ntype Parameter_BodyParameter struct {\n\tBodyParameter *BodyParameter `protobuf:\"bytes,1,opt,name=body_parameter,json=bodyParameter,proto3,oneof\"`\n}\n\ntype Parameter_NonBodyParameter struct {\n\tNonBodyParameter *NonBodyParameter `protobuf:\"bytes,2,opt,name=non_body_parameter,json=nonBodyParameter,proto3,oneof\"`\n}\n\nfunc (*Parameter_BodyParameter) isParameter_Oneof() {}\n\nfunc (*Parameter_NonBodyParameter) isParameter_Oneof() {}\n\n// One or more JSON representations for parameters\ntype ParameterDefinitions struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedParameter `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *ParameterDefinitions) Reset() {\n\t*x = ParameterDefinitions{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[38]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ParameterDefinitions) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ParameterDefinitions) ProtoMessage() {}\n\nfunc (x *ParameterDefinitions) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[38]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ParameterDefinitions.ProtoReflect.Descriptor instead.\nfunc (*ParameterDefinitions) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{38}\n}\n\nfunc (x *ParameterDefinitions) GetAdditionalProperties() []*NamedParameter {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\ntype ParametersItem struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Types that are assignable to Oneof:\n\t//\t*ParametersItem_Parameter\n\t//\t*ParametersItem_JsonReference\n\tOneof isParametersItem_Oneof `protobuf_oneof:\"oneof\"`\n}\n\nfunc (x *ParametersItem) Reset() {\n\t*x = ParametersItem{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[39]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ParametersItem) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ParametersItem) ProtoMessage() {}\n\nfunc (x *ParametersItem) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[39]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ParametersItem.ProtoReflect.Descriptor instead.\nfunc (*ParametersItem) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{39}\n}\n\nfunc (m *ParametersItem) GetOneof() isParametersItem_Oneof {\n\tif m != nil {\n\t\treturn m.Oneof\n\t}\n\treturn nil\n}\n\nfunc (x *ParametersItem) GetParameter() *Parameter {\n\tif x, ok := x.GetOneof().(*ParametersItem_Parameter); ok {\n\t\treturn x.Parameter\n\t}\n\treturn nil\n}\n\nfunc (x *ParametersItem) GetJsonReference() *JsonReference {\n\tif x, ok := x.GetOneof().(*ParametersItem_JsonReference); ok {\n\t\treturn x.JsonReference\n\t}\n\treturn nil\n}\n\ntype isParametersItem_Oneof interface {\n\tisParametersItem_Oneof()\n}\n\ntype ParametersItem_Parameter struct {\n\tParameter *Parameter `protobuf:\"bytes,1,opt,name=parameter,proto3,oneof\"`\n}\n\ntype ParametersItem_JsonReference struct {\n\tJsonReference *JsonReference `protobuf:\"bytes,2,opt,name=json_reference,json=jsonReference,proto3,oneof\"`\n}\n\nfunc (*ParametersItem_Parameter) isParametersItem_Oneof() {}\n\nfunc (*ParametersItem_JsonReference) isParametersItem_Oneof() {}\n\ntype PathItem struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tXRef    string     `protobuf:\"bytes,1,opt,name=_ref,json=Ref,proto3\" json:\"_ref,omitempty\"`\n\tGet     *Operation `protobuf:\"bytes,2,opt,name=get,proto3\" json:\"get,omitempty\"`\n\tPut     *Operation `protobuf:\"bytes,3,opt,name=put,proto3\" json:\"put,omitempty\"`\n\tPost    *Operation `protobuf:\"bytes,4,opt,name=post,proto3\" json:\"post,omitempty\"`\n\tDelete  *Operation `protobuf:\"bytes,5,opt,name=delete,proto3\" json:\"delete,omitempty\"`\n\tOptions *Operation `protobuf:\"bytes,6,opt,name=options,proto3\" json:\"options,omitempty\"`\n\tHead    *Operation `protobuf:\"bytes,7,opt,name=head,proto3\" json:\"head,omitempty\"`\n\tPatch   *Operation `protobuf:\"bytes,8,opt,name=patch,proto3\" json:\"patch,omitempty\"`\n\t// The parameters needed to send a valid API call.\n\tParameters      []*ParametersItem `protobuf:\"bytes,9,rep,name=parameters,proto3\" json:\"parameters,omitempty\"`\n\tVendorExtension []*NamedAny       `protobuf:\"bytes,10,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *PathItem) Reset() {\n\t*x = PathItem{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[40]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *PathItem) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*PathItem) ProtoMessage() {}\n\nfunc (x *PathItem) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[40]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use PathItem.ProtoReflect.Descriptor instead.\nfunc (*PathItem) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{40}\n}\n\nfunc (x *PathItem) GetXRef() string {\n\tif x != nil {\n\t\treturn x.XRef\n\t}\n\treturn \"\"\n}\n\nfunc (x *PathItem) GetGet() *Operation {\n\tif x != nil {\n\t\treturn x.Get\n\t}\n\treturn nil\n}\n\nfunc (x *PathItem) GetPut() *Operation {\n\tif x != nil {\n\t\treturn x.Put\n\t}\n\treturn nil\n}\n\nfunc (x *PathItem) GetPost() *Operation {\n\tif x != nil {\n\t\treturn x.Post\n\t}\n\treturn nil\n}\n\nfunc (x *PathItem) GetDelete() *Operation {\n\tif x != nil {\n\t\treturn x.Delete\n\t}\n\treturn nil\n}\n\nfunc (x *PathItem) GetOptions() *Operation {\n\tif x != nil {\n\t\treturn x.Options\n\t}\n\treturn nil\n}\n\nfunc (x *PathItem) GetHead() *Operation {\n\tif x != nil {\n\t\treturn x.Head\n\t}\n\treturn nil\n}\n\nfunc (x *PathItem) GetPatch() *Operation {\n\tif x != nil {\n\t\treturn x.Patch\n\t}\n\treturn nil\n}\n\nfunc (x *PathItem) GetParameters() []*ParametersItem {\n\tif x != nil {\n\t\treturn x.Parameters\n\t}\n\treturn nil\n}\n\nfunc (x *PathItem) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\ntype PathParameterSubSchema struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Determines whether or not this parameter is required or optional.\n\tRequired bool `protobuf:\"varint,1,opt,name=required,proto3\" json:\"required,omitempty\"`\n\t// Determines the location of the parameter.\n\tIn string `protobuf:\"bytes,2,opt,name=in,proto3\" json:\"in,omitempty\"`\n\t// A brief description of the parameter. This could contain examples of use.  GitHub Flavored Markdown is allowed.\n\tDescription string `protobuf:\"bytes,3,opt,name=description,proto3\" json:\"description,omitempty\"`\n\t// The name of the parameter.\n\tName             string           `protobuf:\"bytes,4,opt,name=name,proto3\" json:\"name,omitempty\"`\n\tType             string           `protobuf:\"bytes,5,opt,name=type,proto3\" json:\"type,omitempty\"`\n\tFormat           string           `protobuf:\"bytes,6,opt,name=format,proto3\" json:\"format,omitempty\"`\n\tItems            *PrimitivesItems `protobuf:\"bytes,7,opt,name=items,proto3\" json:\"items,omitempty\"`\n\tCollectionFormat string           `protobuf:\"bytes,8,opt,name=collection_format,json=collectionFormat,proto3\" json:\"collection_format,omitempty\"`\n\tDefault          *Any             `protobuf:\"bytes,9,opt,name=default,proto3\" json:\"default,omitempty\"`\n\tMaximum          float64          `protobuf:\"fixed64,10,opt,name=maximum,proto3\" json:\"maximum,omitempty\"`\n\tExclusiveMaximum bool             `protobuf:\"varint,11,opt,name=exclusive_maximum,json=exclusiveMaximum,proto3\" json:\"exclusive_maximum,omitempty\"`\n\tMinimum          float64          `protobuf:\"fixed64,12,opt,name=minimum,proto3\" json:\"minimum,omitempty\"`\n\tExclusiveMinimum bool             `protobuf:\"varint,13,opt,name=exclusive_minimum,json=exclusiveMinimum,proto3\" json:\"exclusive_minimum,omitempty\"`\n\tMaxLength        int64            `protobuf:\"varint,14,opt,name=max_length,json=maxLength,proto3\" json:\"max_length,omitempty\"`\n\tMinLength        int64            `protobuf:\"varint,15,opt,name=min_length,json=minLength,proto3\" json:\"min_length,omitempty\"`\n\tPattern          string           `protobuf:\"bytes,16,opt,name=pattern,proto3\" json:\"pattern,omitempty\"`\n\tMaxItems         int64            `protobuf:\"varint,17,opt,name=max_items,json=maxItems,proto3\" json:\"max_items,omitempty\"`\n\tMinItems         int64            `protobuf:\"varint,18,opt,name=min_items,json=minItems,proto3\" json:\"min_items,omitempty\"`\n\tUniqueItems      bool             `protobuf:\"varint,19,opt,name=unique_items,json=uniqueItems,proto3\" json:\"unique_items,omitempty\"`\n\tEnum             []*Any           `protobuf:\"bytes,20,rep,name=enum,proto3\" json:\"enum,omitempty\"`\n\tMultipleOf       float64          `protobuf:\"fixed64,21,opt,name=multiple_of,json=multipleOf,proto3\" json:\"multiple_of,omitempty\"`\n\tVendorExtension  []*NamedAny      `protobuf:\"bytes,22,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *PathParameterSubSchema) Reset() {\n\t*x = PathParameterSubSchema{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[41]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *PathParameterSubSchema) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*PathParameterSubSchema) ProtoMessage() {}\n\nfunc (x *PathParameterSubSchema) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[41]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use PathParameterSubSchema.ProtoReflect.Descriptor instead.\nfunc (*PathParameterSubSchema) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{41}\n}\n\nfunc (x *PathParameterSubSchema) GetRequired() bool {\n\tif x != nil {\n\t\treturn x.Required\n\t}\n\treturn false\n}\n\nfunc (x *PathParameterSubSchema) GetIn() string {\n\tif x != nil {\n\t\treturn x.In\n\t}\n\treturn \"\"\n}\n\nfunc (x *PathParameterSubSchema) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *PathParameterSubSchema) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *PathParameterSubSchema) GetType() string {\n\tif x != nil {\n\t\treturn x.Type\n\t}\n\treturn \"\"\n}\n\nfunc (x *PathParameterSubSchema) GetFormat() string {\n\tif x != nil {\n\t\treturn x.Format\n\t}\n\treturn \"\"\n}\n\nfunc (x *PathParameterSubSchema) GetItems() *PrimitivesItems {\n\tif x != nil {\n\t\treturn x.Items\n\t}\n\treturn nil\n}\n\nfunc (x *PathParameterSubSchema) GetCollectionFormat() string {\n\tif x != nil {\n\t\treturn x.CollectionFormat\n\t}\n\treturn \"\"\n}\n\nfunc (x *PathParameterSubSchema) GetDefault() *Any {\n\tif x != nil {\n\t\treturn x.Default\n\t}\n\treturn nil\n}\n\nfunc (x *PathParameterSubSchema) GetMaximum() float64 {\n\tif x != nil {\n\t\treturn x.Maximum\n\t}\n\treturn 0\n}\n\nfunc (x *PathParameterSubSchema) GetExclusiveMaximum() bool {\n\tif x != nil {\n\t\treturn x.ExclusiveMaximum\n\t}\n\treturn false\n}\n\nfunc (x *PathParameterSubSchema) GetMinimum() float64 {\n\tif x != nil {\n\t\treturn x.Minimum\n\t}\n\treturn 0\n}\n\nfunc (x *PathParameterSubSchema) GetExclusiveMinimum() bool {\n\tif x != nil {\n\t\treturn x.ExclusiveMinimum\n\t}\n\treturn false\n}\n\nfunc (x *PathParameterSubSchema) GetMaxLength() int64 {\n\tif x != nil {\n\t\treturn x.MaxLength\n\t}\n\treturn 0\n}\n\nfunc (x *PathParameterSubSchema) GetMinLength() int64 {\n\tif x != nil {\n\t\treturn x.MinLength\n\t}\n\treturn 0\n}\n\nfunc (x *PathParameterSubSchema) GetPattern() string {\n\tif x != nil {\n\t\treturn x.Pattern\n\t}\n\treturn \"\"\n}\n\nfunc (x *PathParameterSubSchema) GetMaxItems() int64 {\n\tif x != nil {\n\t\treturn x.MaxItems\n\t}\n\treturn 0\n}\n\nfunc (x *PathParameterSubSchema) GetMinItems() int64 {\n\tif x != nil {\n\t\treturn x.MinItems\n\t}\n\treturn 0\n}\n\nfunc (x *PathParameterSubSchema) GetUniqueItems() bool {\n\tif x != nil {\n\t\treturn x.UniqueItems\n\t}\n\treturn false\n}\n\nfunc (x *PathParameterSubSchema) GetEnum() []*Any {\n\tif x != nil {\n\t\treturn x.Enum\n\t}\n\treturn nil\n}\n\nfunc (x *PathParameterSubSchema) GetMultipleOf() float64 {\n\tif x != nil {\n\t\treturn x.MultipleOf\n\t}\n\treturn 0\n}\n\nfunc (x *PathParameterSubSchema) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\n// Relative paths to the individual endpoints. They must be relative to the 'basePath'.\ntype Paths struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tVendorExtension []*NamedAny      `protobuf:\"bytes,1,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n\tPath            []*NamedPathItem `protobuf:\"bytes,2,rep,name=path,proto3\" json:\"path,omitempty\"`\n}\n\nfunc (x *Paths) Reset() {\n\t*x = Paths{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[42]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Paths) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Paths) ProtoMessage() {}\n\nfunc (x *Paths) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[42]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Paths.ProtoReflect.Descriptor instead.\nfunc (*Paths) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{42}\n}\n\nfunc (x *Paths) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\nfunc (x *Paths) GetPath() []*NamedPathItem {\n\tif x != nil {\n\t\treturn x.Path\n\t}\n\treturn nil\n}\n\ntype PrimitivesItems struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tType             string           `protobuf:\"bytes,1,opt,name=type,proto3\" json:\"type,omitempty\"`\n\tFormat           string           `protobuf:\"bytes,2,opt,name=format,proto3\" json:\"format,omitempty\"`\n\tItems            *PrimitivesItems `protobuf:\"bytes,3,opt,name=items,proto3\" json:\"items,omitempty\"`\n\tCollectionFormat string           `protobuf:\"bytes,4,opt,name=collection_format,json=collectionFormat,proto3\" json:\"collection_format,omitempty\"`\n\tDefault          *Any             `protobuf:\"bytes,5,opt,name=default,proto3\" json:\"default,omitempty\"`\n\tMaximum          float64          `protobuf:\"fixed64,6,opt,name=maximum,proto3\" json:\"maximum,omitempty\"`\n\tExclusiveMaximum bool             `protobuf:\"varint,7,opt,name=exclusive_maximum,json=exclusiveMaximum,proto3\" json:\"exclusive_maximum,omitempty\"`\n\tMinimum          float64          `protobuf:\"fixed64,8,opt,name=minimum,proto3\" json:\"minimum,omitempty\"`\n\tExclusiveMinimum bool             `protobuf:\"varint,9,opt,name=exclusive_minimum,json=exclusiveMinimum,proto3\" json:\"exclusive_minimum,omitempty\"`\n\tMaxLength        int64            `protobuf:\"varint,10,opt,name=max_length,json=maxLength,proto3\" json:\"max_length,omitempty\"`\n\tMinLength        int64            `protobuf:\"varint,11,opt,name=min_length,json=minLength,proto3\" json:\"min_length,omitempty\"`\n\tPattern          string           `protobuf:\"bytes,12,opt,name=pattern,proto3\" json:\"pattern,omitempty\"`\n\tMaxItems         int64            `protobuf:\"varint,13,opt,name=max_items,json=maxItems,proto3\" json:\"max_items,omitempty\"`\n\tMinItems         int64            `protobuf:\"varint,14,opt,name=min_items,json=minItems,proto3\" json:\"min_items,omitempty\"`\n\tUniqueItems      bool             `protobuf:\"varint,15,opt,name=unique_items,json=uniqueItems,proto3\" json:\"unique_items,omitempty\"`\n\tEnum             []*Any           `protobuf:\"bytes,16,rep,name=enum,proto3\" json:\"enum,omitempty\"`\n\tMultipleOf       float64          `protobuf:\"fixed64,17,opt,name=multiple_of,json=multipleOf,proto3\" json:\"multiple_of,omitempty\"`\n\tVendorExtension  []*NamedAny      `protobuf:\"bytes,18,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *PrimitivesItems) Reset() {\n\t*x = PrimitivesItems{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[43]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *PrimitivesItems) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*PrimitivesItems) ProtoMessage() {}\n\nfunc (x *PrimitivesItems) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[43]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use PrimitivesItems.ProtoReflect.Descriptor instead.\nfunc (*PrimitivesItems) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{43}\n}\n\nfunc (x *PrimitivesItems) GetType() string {\n\tif x != nil {\n\t\treturn x.Type\n\t}\n\treturn \"\"\n}\n\nfunc (x *PrimitivesItems) GetFormat() string {\n\tif x != nil {\n\t\treturn x.Format\n\t}\n\treturn \"\"\n}\n\nfunc (x *PrimitivesItems) GetItems() *PrimitivesItems {\n\tif x != nil {\n\t\treturn x.Items\n\t}\n\treturn nil\n}\n\nfunc (x *PrimitivesItems) GetCollectionFormat() string {\n\tif x != nil {\n\t\treturn x.CollectionFormat\n\t}\n\treturn \"\"\n}\n\nfunc (x *PrimitivesItems) GetDefault() *Any {\n\tif x != nil {\n\t\treturn x.Default\n\t}\n\treturn nil\n}\n\nfunc (x *PrimitivesItems) GetMaximum() float64 {\n\tif x != nil {\n\t\treturn x.Maximum\n\t}\n\treturn 0\n}\n\nfunc (x *PrimitivesItems) GetExclusiveMaximum() bool {\n\tif x != nil {\n\t\treturn x.ExclusiveMaximum\n\t}\n\treturn false\n}\n\nfunc (x *PrimitivesItems) GetMinimum() float64 {\n\tif x != nil {\n\t\treturn x.Minimum\n\t}\n\treturn 0\n}\n\nfunc (x *PrimitivesItems) GetExclusiveMinimum() bool {\n\tif x != nil {\n\t\treturn x.ExclusiveMinimum\n\t}\n\treturn false\n}\n\nfunc (x *PrimitivesItems) GetMaxLength() int64 {\n\tif x != nil {\n\t\treturn x.MaxLength\n\t}\n\treturn 0\n}\n\nfunc (x *PrimitivesItems) GetMinLength() int64 {\n\tif x != nil {\n\t\treturn x.MinLength\n\t}\n\treturn 0\n}\n\nfunc (x *PrimitivesItems) GetPattern() string {\n\tif x != nil {\n\t\treturn x.Pattern\n\t}\n\treturn \"\"\n}\n\nfunc (x *PrimitivesItems) GetMaxItems() int64 {\n\tif x != nil {\n\t\treturn x.MaxItems\n\t}\n\treturn 0\n}\n\nfunc (x *PrimitivesItems) GetMinItems() int64 {\n\tif x != nil {\n\t\treturn x.MinItems\n\t}\n\treturn 0\n}\n\nfunc (x *PrimitivesItems) GetUniqueItems() bool {\n\tif x != nil {\n\t\treturn x.UniqueItems\n\t}\n\treturn false\n}\n\nfunc (x *PrimitivesItems) GetEnum() []*Any {\n\tif x != nil {\n\t\treturn x.Enum\n\t}\n\treturn nil\n}\n\nfunc (x *PrimitivesItems) GetMultipleOf() float64 {\n\tif x != nil {\n\t\treturn x.MultipleOf\n\t}\n\treturn 0\n}\n\nfunc (x *PrimitivesItems) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\ntype Properties struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedSchema `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *Properties) Reset() {\n\t*x = Properties{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[44]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Properties) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Properties) ProtoMessage() {}\n\nfunc (x *Properties) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[44]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Properties.ProtoReflect.Descriptor instead.\nfunc (*Properties) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{44}\n}\n\nfunc (x *Properties) GetAdditionalProperties() []*NamedSchema {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\ntype QueryParameterSubSchema struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Determines whether or not this parameter is required or optional.\n\tRequired bool `protobuf:\"varint,1,opt,name=required,proto3\" json:\"required,omitempty\"`\n\t// Determines the location of the parameter.\n\tIn string `protobuf:\"bytes,2,opt,name=in,proto3\" json:\"in,omitempty\"`\n\t// A brief description of the parameter. This could contain examples of use.  GitHub Flavored Markdown is allowed.\n\tDescription string `protobuf:\"bytes,3,opt,name=description,proto3\" json:\"description,omitempty\"`\n\t// The name of the parameter.\n\tName string `protobuf:\"bytes,4,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// allows sending a parameter by name only or with an empty value.\n\tAllowEmptyValue  bool             `protobuf:\"varint,5,opt,name=allow_empty_value,json=allowEmptyValue,proto3\" json:\"allow_empty_value,omitempty\"`\n\tType             string           `protobuf:\"bytes,6,opt,name=type,proto3\" json:\"type,omitempty\"`\n\tFormat           string           `protobuf:\"bytes,7,opt,name=format,proto3\" json:\"format,omitempty\"`\n\tItems            *PrimitivesItems `protobuf:\"bytes,8,opt,name=items,proto3\" json:\"items,omitempty\"`\n\tCollectionFormat string           `protobuf:\"bytes,9,opt,name=collection_format,json=collectionFormat,proto3\" json:\"collection_format,omitempty\"`\n\tDefault          *Any             `protobuf:\"bytes,10,opt,name=default,proto3\" json:\"default,omitempty\"`\n\tMaximum          float64          `protobuf:\"fixed64,11,opt,name=maximum,proto3\" json:\"maximum,omitempty\"`\n\tExclusiveMaximum bool             `protobuf:\"varint,12,opt,name=exclusive_maximum,json=exclusiveMaximum,proto3\" json:\"exclusive_maximum,omitempty\"`\n\tMinimum          float64          `protobuf:\"fixed64,13,opt,name=minimum,proto3\" json:\"minimum,omitempty\"`\n\tExclusiveMinimum bool             `protobuf:\"varint,14,opt,name=exclusive_minimum,json=exclusiveMinimum,proto3\" json:\"exclusive_minimum,omitempty\"`\n\tMaxLength        int64            `protobuf:\"varint,15,opt,name=max_length,json=maxLength,proto3\" json:\"max_length,omitempty\"`\n\tMinLength        int64            `protobuf:\"varint,16,opt,name=min_length,json=minLength,proto3\" json:\"min_length,omitempty\"`\n\tPattern          string           `protobuf:\"bytes,17,opt,name=pattern,proto3\" json:\"pattern,omitempty\"`\n\tMaxItems         int64            `protobuf:\"varint,18,opt,name=max_items,json=maxItems,proto3\" json:\"max_items,omitempty\"`\n\tMinItems         int64            `protobuf:\"varint,19,opt,name=min_items,json=minItems,proto3\" json:\"min_items,omitempty\"`\n\tUniqueItems      bool             `protobuf:\"varint,20,opt,name=unique_items,json=uniqueItems,proto3\" json:\"unique_items,omitempty\"`\n\tEnum             []*Any           `protobuf:\"bytes,21,rep,name=enum,proto3\" json:\"enum,omitempty\"`\n\tMultipleOf       float64          `protobuf:\"fixed64,22,opt,name=multiple_of,json=multipleOf,proto3\" json:\"multiple_of,omitempty\"`\n\tVendorExtension  []*NamedAny      `protobuf:\"bytes,23,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *QueryParameterSubSchema) Reset() {\n\t*x = QueryParameterSubSchema{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[45]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *QueryParameterSubSchema) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*QueryParameterSubSchema) ProtoMessage() {}\n\nfunc (x *QueryParameterSubSchema) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[45]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use QueryParameterSubSchema.ProtoReflect.Descriptor instead.\nfunc (*QueryParameterSubSchema) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{45}\n}\n\nfunc (x *QueryParameterSubSchema) GetRequired() bool {\n\tif x != nil {\n\t\treturn x.Required\n\t}\n\treturn false\n}\n\nfunc (x *QueryParameterSubSchema) GetIn() string {\n\tif x != nil {\n\t\treturn x.In\n\t}\n\treturn \"\"\n}\n\nfunc (x *QueryParameterSubSchema) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *QueryParameterSubSchema) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *QueryParameterSubSchema) GetAllowEmptyValue() bool {\n\tif x != nil {\n\t\treturn x.AllowEmptyValue\n\t}\n\treturn false\n}\n\nfunc (x *QueryParameterSubSchema) GetType() string {\n\tif x != nil {\n\t\treturn x.Type\n\t}\n\treturn \"\"\n}\n\nfunc (x *QueryParameterSubSchema) GetFormat() string {\n\tif x != nil {\n\t\treturn x.Format\n\t}\n\treturn \"\"\n}\n\nfunc (x *QueryParameterSubSchema) GetItems() *PrimitivesItems {\n\tif x != nil {\n\t\treturn x.Items\n\t}\n\treturn nil\n}\n\nfunc (x *QueryParameterSubSchema) GetCollectionFormat() string {\n\tif x != nil {\n\t\treturn x.CollectionFormat\n\t}\n\treturn \"\"\n}\n\nfunc (x *QueryParameterSubSchema) GetDefault() *Any {\n\tif x != nil {\n\t\treturn x.Default\n\t}\n\treturn nil\n}\n\nfunc (x *QueryParameterSubSchema) GetMaximum() float64 {\n\tif x != nil {\n\t\treturn x.Maximum\n\t}\n\treturn 0\n}\n\nfunc (x *QueryParameterSubSchema) GetExclusiveMaximum() bool {\n\tif x != nil {\n\t\treturn x.ExclusiveMaximum\n\t}\n\treturn false\n}\n\nfunc (x *QueryParameterSubSchema) GetMinimum() float64 {\n\tif x != nil {\n\t\treturn x.Minimum\n\t}\n\treturn 0\n}\n\nfunc (x *QueryParameterSubSchema) GetExclusiveMinimum() bool {\n\tif x != nil {\n\t\treturn x.ExclusiveMinimum\n\t}\n\treturn false\n}\n\nfunc (x *QueryParameterSubSchema) GetMaxLength() int64 {\n\tif x != nil {\n\t\treturn x.MaxLength\n\t}\n\treturn 0\n}\n\nfunc (x *QueryParameterSubSchema) GetMinLength() int64 {\n\tif x != nil {\n\t\treturn x.MinLength\n\t}\n\treturn 0\n}\n\nfunc (x *QueryParameterSubSchema) GetPattern() string {\n\tif x != nil {\n\t\treturn x.Pattern\n\t}\n\treturn \"\"\n}\n\nfunc (x *QueryParameterSubSchema) GetMaxItems() int64 {\n\tif x != nil {\n\t\treturn x.MaxItems\n\t}\n\treturn 0\n}\n\nfunc (x *QueryParameterSubSchema) GetMinItems() int64 {\n\tif x != nil {\n\t\treturn x.MinItems\n\t}\n\treturn 0\n}\n\nfunc (x *QueryParameterSubSchema) GetUniqueItems() bool {\n\tif x != nil {\n\t\treturn x.UniqueItems\n\t}\n\treturn false\n}\n\nfunc (x *QueryParameterSubSchema) GetEnum() []*Any {\n\tif x != nil {\n\t\treturn x.Enum\n\t}\n\treturn nil\n}\n\nfunc (x *QueryParameterSubSchema) GetMultipleOf() float64 {\n\tif x != nil {\n\t\treturn x.MultipleOf\n\t}\n\treturn 0\n}\n\nfunc (x *QueryParameterSubSchema) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\ntype Response struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tDescription     string      `protobuf:\"bytes,1,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tSchema          *SchemaItem `protobuf:\"bytes,2,opt,name=schema,proto3\" json:\"schema,omitempty\"`\n\tHeaders         *Headers    `protobuf:\"bytes,3,opt,name=headers,proto3\" json:\"headers,omitempty\"`\n\tExamples        *Examples   `protobuf:\"bytes,4,opt,name=examples,proto3\" json:\"examples,omitempty\"`\n\tVendorExtension []*NamedAny `protobuf:\"bytes,5,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *Response) Reset() {\n\t*x = Response{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[46]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Response) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Response) ProtoMessage() {}\n\nfunc (x *Response) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[46]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Response.ProtoReflect.Descriptor instead.\nfunc (*Response) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{46}\n}\n\nfunc (x *Response) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *Response) GetSchema() *SchemaItem {\n\tif x != nil {\n\t\treturn x.Schema\n\t}\n\treturn nil\n}\n\nfunc (x *Response) GetHeaders() *Headers {\n\tif x != nil {\n\t\treturn x.Headers\n\t}\n\treturn nil\n}\n\nfunc (x *Response) GetExamples() *Examples {\n\tif x != nil {\n\t\treturn x.Examples\n\t}\n\treturn nil\n}\n\nfunc (x *Response) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\n// One or more JSON representations for responses\ntype ResponseDefinitions struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedResponse `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *ResponseDefinitions) Reset() {\n\t*x = ResponseDefinitions{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[47]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ResponseDefinitions) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ResponseDefinitions) ProtoMessage() {}\n\nfunc (x *ResponseDefinitions) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[47]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ResponseDefinitions.ProtoReflect.Descriptor instead.\nfunc (*ResponseDefinitions) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{47}\n}\n\nfunc (x *ResponseDefinitions) GetAdditionalProperties() []*NamedResponse {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\ntype ResponseValue struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Types that are assignable to Oneof:\n\t//\t*ResponseValue_Response\n\t//\t*ResponseValue_JsonReference\n\tOneof isResponseValue_Oneof `protobuf_oneof:\"oneof\"`\n}\n\nfunc (x *ResponseValue) Reset() {\n\t*x = ResponseValue{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[48]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ResponseValue) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ResponseValue) ProtoMessage() {}\n\nfunc (x *ResponseValue) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[48]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ResponseValue.ProtoReflect.Descriptor instead.\nfunc (*ResponseValue) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{48}\n}\n\nfunc (m *ResponseValue) GetOneof() isResponseValue_Oneof {\n\tif m != nil {\n\t\treturn m.Oneof\n\t}\n\treturn nil\n}\n\nfunc (x *ResponseValue) GetResponse() *Response {\n\tif x, ok := x.GetOneof().(*ResponseValue_Response); ok {\n\t\treturn x.Response\n\t}\n\treturn nil\n}\n\nfunc (x *ResponseValue) GetJsonReference() *JsonReference {\n\tif x, ok := x.GetOneof().(*ResponseValue_JsonReference); ok {\n\t\treturn x.JsonReference\n\t}\n\treturn nil\n}\n\ntype isResponseValue_Oneof interface {\n\tisResponseValue_Oneof()\n}\n\ntype ResponseValue_Response struct {\n\tResponse *Response `protobuf:\"bytes,1,opt,name=response,proto3,oneof\"`\n}\n\ntype ResponseValue_JsonReference struct {\n\tJsonReference *JsonReference `protobuf:\"bytes,2,opt,name=json_reference,json=jsonReference,proto3,oneof\"`\n}\n\nfunc (*ResponseValue_Response) isResponseValue_Oneof() {}\n\nfunc (*ResponseValue_JsonReference) isResponseValue_Oneof() {}\n\n// Response objects names can either be any valid HTTP status code or 'default'.\ntype Responses struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tResponseCode    []*NamedResponseValue `protobuf:\"bytes,1,rep,name=response_code,json=responseCode,proto3\" json:\"response_code,omitempty\"`\n\tVendorExtension []*NamedAny           `protobuf:\"bytes,2,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *Responses) Reset() {\n\t*x = Responses{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[49]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Responses) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Responses) ProtoMessage() {}\n\nfunc (x *Responses) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[49]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Responses.ProtoReflect.Descriptor instead.\nfunc (*Responses) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{49}\n}\n\nfunc (x *Responses) GetResponseCode() []*NamedResponseValue {\n\tif x != nil {\n\t\treturn x.ResponseCode\n\t}\n\treturn nil\n}\n\nfunc (x *Responses) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\n// A deterministic version of a JSON Schema object.\ntype Schema struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tXRef                 string                    `protobuf:\"bytes,1,opt,name=_ref,json=Ref,proto3\" json:\"_ref,omitempty\"`\n\tFormat               string                    `protobuf:\"bytes,2,opt,name=format,proto3\" json:\"format,omitempty\"`\n\tTitle                string                    `protobuf:\"bytes,3,opt,name=title,proto3\" json:\"title,omitempty\"`\n\tDescription          string                    `protobuf:\"bytes,4,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tDefault              *Any                      `protobuf:\"bytes,5,opt,name=default,proto3\" json:\"default,omitempty\"`\n\tMultipleOf           float64                   `protobuf:\"fixed64,6,opt,name=multiple_of,json=multipleOf,proto3\" json:\"multiple_of,omitempty\"`\n\tMaximum              float64                   `protobuf:\"fixed64,7,opt,name=maximum,proto3\" json:\"maximum,omitempty\"`\n\tExclusiveMaximum     bool                      `protobuf:\"varint,8,opt,name=exclusive_maximum,json=exclusiveMaximum,proto3\" json:\"exclusive_maximum,omitempty\"`\n\tMinimum              float64                   `protobuf:\"fixed64,9,opt,name=minimum,proto3\" json:\"minimum,omitempty\"`\n\tExclusiveMinimum     bool                      `protobuf:\"varint,10,opt,name=exclusive_minimum,json=exclusiveMinimum,proto3\" json:\"exclusive_minimum,omitempty\"`\n\tMaxLength            int64                     `protobuf:\"varint,11,opt,name=max_length,json=maxLength,proto3\" json:\"max_length,omitempty\"`\n\tMinLength            int64                     `protobuf:\"varint,12,opt,name=min_length,json=minLength,proto3\" json:\"min_length,omitempty\"`\n\tPattern              string                    `protobuf:\"bytes,13,opt,name=pattern,proto3\" json:\"pattern,omitempty\"`\n\tMaxItems             int64                     `protobuf:\"varint,14,opt,name=max_items,json=maxItems,proto3\" json:\"max_items,omitempty\"`\n\tMinItems             int64                     `protobuf:\"varint,15,opt,name=min_items,json=minItems,proto3\" json:\"min_items,omitempty\"`\n\tUniqueItems          bool                      `protobuf:\"varint,16,opt,name=unique_items,json=uniqueItems,proto3\" json:\"unique_items,omitempty\"`\n\tMaxProperties        int64                     `protobuf:\"varint,17,opt,name=max_properties,json=maxProperties,proto3\" json:\"max_properties,omitempty\"`\n\tMinProperties        int64                     `protobuf:\"varint,18,opt,name=min_properties,json=minProperties,proto3\" json:\"min_properties,omitempty\"`\n\tRequired             []string                  `protobuf:\"bytes,19,rep,name=required,proto3\" json:\"required,omitempty\"`\n\tEnum                 []*Any                    `protobuf:\"bytes,20,rep,name=enum,proto3\" json:\"enum,omitempty\"`\n\tAdditionalProperties *AdditionalPropertiesItem `protobuf:\"bytes,21,opt,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n\tType                 *TypeItem                 `protobuf:\"bytes,22,opt,name=type,proto3\" json:\"type,omitempty\"`\n\tItems                *ItemsItem                `protobuf:\"bytes,23,opt,name=items,proto3\" json:\"items,omitempty\"`\n\tAllOf                []*Schema                 `protobuf:\"bytes,24,rep,name=all_of,json=allOf,proto3\" json:\"all_of,omitempty\"`\n\tProperties           *Properties               `protobuf:\"bytes,25,opt,name=properties,proto3\" json:\"properties,omitempty\"`\n\tDiscriminator        string                    `protobuf:\"bytes,26,opt,name=discriminator,proto3\" json:\"discriminator,omitempty\"`\n\tReadOnly             bool                      `protobuf:\"varint,27,opt,name=read_only,json=readOnly,proto3\" json:\"read_only,omitempty\"`\n\tXml                  *Xml                      `protobuf:\"bytes,28,opt,name=xml,proto3\" json:\"xml,omitempty\"`\n\tExternalDocs         *ExternalDocs             `protobuf:\"bytes,29,opt,name=external_docs,json=externalDocs,proto3\" json:\"external_docs,omitempty\"`\n\tExample              *Any                      `protobuf:\"bytes,30,opt,name=example,proto3\" json:\"example,omitempty\"`\n\tVendorExtension      []*NamedAny               `protobuf:\"bytes,31,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *Schema) Reset() {\n\t*x = Schema{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[50]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Schema) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Schema) ProtoMessage() {}\n\nfunc (x *Schema) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[50]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Schema.ProtoReflect.Descriptor instead.\nfunc (*Schema) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{50}\n}\n\nfunc (x *Schema) GetXRef() string {\n\tif x != nil {\n\t\treturn x.XRef\n\t}\n\treturn \"\"\n}\n\nfunc (x *Schema) GetFormat() string {\n\tif x != nil {\n\t\treturn x.Format\n\t}\n\treturn \"\"\n}\n\nfunc (x *Schema) GetTitle() string {\n\tif x != nil {\n\t\treturn x.Title\n\t}\n\treturn \"\"\n}\n\nfunc (x *Schema) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *Schema) GetDefault() *Any {\n\tif x != nil {\n\t\treturn x.Default\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetMultipleOf() float64 {\n\tif x != nil {\n\t\treturn x.MultipleOf\n\t}\n\treturn 0\n}\n\nfunc (x *Schema) GetMaximum() float64 {\n\tif x != nil {\n\t\treturn x.Maximum\n\t}\n\treturn 0\n}\n\nfunc (x *Schema) GetExclusiveMaximum() bool {\n\tif x != nil {\n\t\treturn x.ExclusiveMaximum\n\t}\n\treturn false\n}\n\nfunc (x *Schema) GetMinimum() float64 {\n\tif x != nil {\n\t\treturn x.Minimum\n\t}\n\treturn 0\n}\n\nfunc (x *Schema) GetExclusiveMinimum() bool {\n\tif x != nil {\n\t\treturn x.ExclusiveMinimum\n\t}\n\treturn false\n}\n\nfunc (x *Schema) GetMaxLength() int64 {\n\tif x != nil {\n\t\treturn x.MaxLength\n\t}\n\treturn 0\n}\n\nfunc (x *Schema) GetMinLength() int64 {\n\tif x != nil {\n\t\treturn x.MinLength\n\t}\n\treturn 0\n}\n\nfunc (x *Schema) GetPattern() string {\n\tif x != nil {\n\t\treturn x.Pattern\n\t}\n\treturn \"\"\n}\n\nfunc (x *Schema) GetMaxItems() int64 {\n\tif x != nil {\n\t\treturn x.MaxItems\n\t}\n\treturn 0\n}\n\nfunc (x *Schema) GetMinItems() int64 {\n\tif x != nil {\n\t\treturn x.MinItems\n\t}\n\treturn 0\n}\n\nfunc (x *Schema) GetUniqueItems() bool {\n\tif x != nil {\n\t\treturn x.UniqueItems\n\t}\n\treturn false\n}\n\nfunc (x *Schema) GetMaxProperties() int64 {\n\tif x != nil {\n\t\treturn x.MaxProperties\n\t}\n\treturn 0\n}\n\nfunc (x *Schema) GetMinProperties() int64 {\n\tif x != nil {\n\t\treturn x.MinProperties\n\t}\n\treturn 0\n}\n\nfunc (x *Schema) GetRequired() []string {\n\tif x != nil {\n\t\treturn x.Required\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetEnum() []*Any {\n\tif x != nil {\n\t\treturn x.Enum\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetAdditionalProperties() *AdditionalPropertiesItem {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetType() *TypeItem {\n\tif x != nil {\n\t\treturn x.Type\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetItems() *ItemsItem {\n\tif x != nil {\n\t\treturn x.Items\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetAllOf() []*Schema {\n\tif x != nil {\n\t\treturn x.AllOf\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetProperties() *Properties {\n\tif x != nil {\n\t\treturn x.Properties\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetDiscriminator() string {\n\tif x != nil {\n\t\treturn x.Discriminator\n\t}\n\treturn \"\"\n}\n\nfunc (x *Schema) GetReadOnly() bool {\n\tif x != nil {\n\t\treturn x.ReadOnly\n\t}\n\treturn false\n}\n\nfunc (x *Schema) GetXml() *Xml {\n\tif x != nil {\n\t\treturn x.Xml\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetExternalDocs() *ExternalDocs {\n\tif x != nil {\n\t\treturn x.ExternalDocs\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetExample() *Any {\n\tif x != nil {\n\t\treturn x.Example\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\ntype SchemaItem struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Types that are assignable to Oneof:\n\t//\t*SchemaItem_Schema\n\t//\t*SchemaItem_FileSchema\n\tOneof isSchemaItem_Oneof `protobuf_oneof:\"oneof\"`\n}\n\nfunc (x *SchemaItem) Reset() {\n\t*x = SchemaItem{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[51]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *SchemaItem) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*SchemaItem) ProtoMessage() {}\n\nfunc (x *SchemaItem) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[51]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use SchemaItem.ProtoReflect.Descriptor instead.\nfunc (*SchemaItem) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{51}\n}\n\nfunc (m *SchemaItem) GetOneof() isSchemaItem_Oneof {\n\tif m != nil {\n\t\treturn m.Oneof\n\t}\n\treturn nil\n}\n\nfunc (x *SchemaItem) GetSchema() *Schema {\n\tif x, ok := x.GetOneof().(*SchemaItem_Schema); ok {\n\t\treturn x.Schema\n\t}\n\treturn nil\n}\n\nfunc (x *SchemaItem) GetFileSchema() *FileSchema {\n\tif x, ok := x.GetOneof().(*SchemaItem_FileSchema); ok {\n\t\treturn x.FileSchema\n\t}\n\treturn nil\n}\n\ntype isSchemaItem_Oneof interface {\n\tisSchemaItem_Oneof()\n}\n\ntype SchemaItem_Schema struct {\n\tSchema *Schema `protobuf:\"bytes,1,opt,name=schema,proto3,oneof\"`\n}\n\ntype SchemaItem_FileSchema struct {\n\tFileSchema *FileSchema `protobuf:\"bytes,2,opt,name=file_schema,json=fileSchema,proto3,oneof\"`\n}\n\nfunc (*SchemaItem_Schema) isSchemaItem_Oneof() {}\n\nfunc (*SchemaItem_FileSchema) isSchemaItem_Oneof() {}\n\ntype SecurityDefinitions struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedSecurityDefinitionsItem `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *SecurityDefinitions) Reset() {\n\t*x = SecurityDefinitions{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[52]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *SecurityDefinitions) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*SecurityDefinitions) ProtoMessage() {}\n\nfunc (x *SecurityDefinitions) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[52]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use SecurityDefinitions.ProtoReflect.Descriptor instead.\nfunc (*SecurityDefinitions) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{52}\n}\n\nfunc (x *SecurityDefinitions) GetAdditionalProperties() []*NamedSecurityDefinitionsItem {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\ntype SecurityDefinitionsItem struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Types that are assignable to Oneof:\n\t//\t*SecurityDefinitionsItem_BasicAuthenticationSecurity\n\t//\t*SecurityDefinitionsItem_ApiKeySecurity\n\t//\t*SecurityDefinitionsItem_Oauth2ImplicitSecurity\n\t//\t*SecurityDefinitionsItem_Oauth2PasswordSecurity\n\t//\t*SecurityDefinitionsItem_Oauth2ApplicationSecurity\n\t//\t*SecurityDefinitionsItem_Oauth2AccessCodeSecurity\n\tOneof isSecurityDefinitionsItem_Oneof `protobuf_oneof:\"oneof\"`\n}\n\nfunc (x *SecurityDefinitionsItem) Reset() {\n\t*x = SecurityDefinitionsItem{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[53]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *SecurityDefinitionsItem) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*SecurityDefinitionsItem) ProtoMessage() {}\n\nfunc (x *SecurityDefinitionsItem) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[53]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use SecurityDefinitionsItem.ProtoReflect.Descriptor instead.\nfunc (*SecurityDefinitionsItem) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{53}\n}\n\nfunc (m *SecurityDefinitionsItem) GetOneof() isSecurityDefinitionsItem_Oneof {\n\tif m != nil {\n\t\treturn m.Oneof\n\t}\n\treturn nil\n}\n\nfunc (x *SecurityDefinitionsItem) GetBasicAuthenticationSecurity() *BasicAuthenticationSecurity {\n\tif x, ok := x.GetOneof().(*SecurityDefinitionsItem_BasicAuthenticationSecurity); ok {\n\t\treturn x.BasicAuthenticationSecurity\n\t}\n\treturn nil\n}\n\nfunc (x *SecurityDefinitionsItem) GetApiKeySecurity() *ApiKeySecurity {\n\tif x, ok := x.GetOneof().(*SecurityDefinitionsItem_ApiKeySecurity); ok {\n\t\treturn x.ApiKeySecurity\n\t}\n\treturn nil\n}\n\nfunc (x *SecurityDefinitionsItem) GetOauth2ImplicitSecurity() *Oauth2ImplicitSecurity {\n\tif x, ok := x.GetOneof().(*SecurityDefinitionsItem_Oauth2ImplicitSecurity); ok {\n\t\treturn x.Oauth2ImplicitSecurity\n\t}\n\treturn nil\n}\n\nfunc (x *SecurityDefinitionsItem) GetOauth2PasswordSecurity() *Oauth2PasswordSecurity {\n\tif x, ok := x.GetOneof().(*SecurityDefinitionsItem_Oauth2PasswordSecurity); ok {\n\t\treturn x.Oauth2PasswordSecurity\n\t}\n\treturn nil\n}\n\nfunc (x *SecurityDefinitionsItem) GetOauth2ApplicationSecurity() *Oauth2ApplicationSecurity {\n\tif x, ok := x.GetOneof().(*SecurityDefinitionsItem_Oauth2ApplicationSecurity); ok {\n\t\treturn x.Oauth2ApplicationSecurity\n\t}\n\treturn nil\n}\n\nfunc (x *SecurityDefinitionsItem) GetOauth2AccessCodeSecurity() *Oauth2AccessCodeSecurity {\n\tif x, ok := x.GetOneof().(*SecurityDefinitionsItem_Oauth2AccessCodeSecurity); ok {\n\t\treturn x.Oauth2AccessCodeSecurity\n\t}\n\treturn nil\n}\n\ntype isSecurityDefinitionsItem_Oneof interface {\n\tisSecurityDefinitionsItem_Oneof()\n}\n\ntype SecurityDefinitionsItem_BasicAuthenticationSecurity struct {\n\tBasicAuthenticationSecurity *BasicAuthenticationSecurity `protobuf:\"bytes,1,opt,name=basic_authentication_security,json=basicAuthenticationSecurity,proto3,oneof\"`\n}\n\ntype SecurityDefinitionsItem_ApiKeySecurity struct {\n\tApiKeySecurity *ApiKeySecurity `protobuf:\"bytes,2,opt,name=api_key_security,json=apiKeySecurity,proto3,oneof\"`\n}\n\ntype SecurityDefinitionsItem_Oauth2ImplicitSecurity struct {\n\tOauth2ImplicitSecurity *Oauth2ImplicitSecurity `protobuf:\"bytes,3,opt,name=oauth2_implicit_security,json=oauth2ImplicitSecurity,proto3,oneof\"`\n}\n\ntype SecurityDefinitionsItem_Oauth2PasswordSecurity struct {\n\tOauth2PasswordSecurity *Oauth2PasswordSecurity `protobuf:\"bytes,4,opt,name=oauth2_password_security,json=oauth2PasswordSecurity,proto3,oneof\"`\n}\n\ntype SecurityDefinitionsItem_Oauth2ApplicationSecurity struct {\n\tOauth2ApplicationSecurity *Oauth2ApplicationSecurity `protobuf:\"bytes,5,opt,name=oauth2_application_security,json=oauth2ApplicationSecurity,proto3,oneof\"`\n}\n\ntype SecurityDefinitionsItem_Oauth2AccessCodeSecurity struct {\n\tOauth2AccessCodeSecurity *Oauth2AccessCodeSecurity `protobuf:\"bytes,6,opt,name=oauth2_access_code_security,json=oauth2AccessCodeSecurity,proto3,oneof\"`\n}\n\nfunc (*SecurityDefinitionsItem_BasicAuthenticationSecurity) isSecurityDefinitionsItem_Oneof() {}\n\nfunc (*SecurityDefinitionsItem_ApiKeySecurity) isSecurityDefinitionsItem_Oneof() {}\n\nfunc (*SecurityDefinitionsItem_Oauth2ImplicitSecurity) isSecurityDefinitionsItem_Oneof() {}\n\nfunc (*SecurityDefinitionsItem_Oauth2PasswordSecurity) isSecurityDefinitionsItem_Oneof() {}\n\nfunc (*SecurityDefinitionsItem_Oauth2ApplicationSecurity) isSecurityDefinitionsItem_Oneof() {}\n\nfunc (*SecurityDefinitionsItem_Oauth2AccessCodeSecurity) isSecurityDefinitionsItem_Oneof() {}\n\ntype SecurityRequirement struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedStringArray `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *SecurityRequirement) Reset() {\n\t*x = SecurityRequirement{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[54]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *SecurityRequirement) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*SecurityRequirement) ProtoMessage() {}\n\nfunc (x *SecurityRequirement) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[54]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use SecurityRequirement.ProtoReflect.Descriptor instead.\nfunc (*SecurityRequirement) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{54}\n}\n\nfunc (x *SecurityRequirement) GetAdditionalProperties() []*NamedStringArray {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\ntype StringArray struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tValue []string `protobuf:\"bytes,1,rep,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *StringArray) Reset() {\n\t*x = StringArray{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[55]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *StringArray) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*StringArray) ProtoMessage() {}\n\nfunc (x *StringArray) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[55]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use StringArray.ProtoReflect.Descriptor instead.\nfunc (*StringArray) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{55}\n}\n\nfunc (x *StringArray) GetValue() []string {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\ntype Tag struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tName            string        `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\tDescription     string        `protobuf:\"bytes,2,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tExternalDocs    *ExternalDocs `protobuf:\"bytes,3,opt,name=external_docs,json=externalDocs,proto3\" json:\"external_docs,omitempty\"`\n\tVendorExtension []*NamedAny   `protobuf:\"bytes,4,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *Tag) Reset() {\n\t*x = Tag{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[56]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Tag) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Tag) ProtoMessage() {}\n\nfunc (x *Tag) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[56]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Tag.ProtoReflect.Descriptor instead.\nfunc (*Tag) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{56}\n}\n\nfunc (x *Tag) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *Tag) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *Tag) GetExternalDocs() *ExternalDocs {\n\tif x != nil {\n\t\treturn x.ExternalDocs\n\t}\n\treturn nil\n}\n\nfunc (x *Tag) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\ntype TypeItem struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tValue []string `protobuf:\"bytes,1,rep,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *TypeItem) Reset() {\n\t*x = TypeItem{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[57]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *TypeItem) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*TypeItem) ProtoMessage() {}\n\nfunc (x *TypeItem) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[57]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use TypeItem.ProtoReflect.Descriptor instead.\nfunc (*TypeItem) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{57}\n}\n\nfunc (x *TypeItem) GetValue() []string {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Any property starting with x- is valid.\ntype VendorExtension struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedAny `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *VendorExtension) Reset() {\n\t*x = VendorExtension{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[58]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *VendorExtension) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*VendorExtension) ProtoMessage() {}\n\nfunc (x *VendorExtension) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[58]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use VendorExtension.ProtoReflect.Descriptor instead.\nfunc (*VendorExtension) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{58}\n}\n\nfunc (x *VendorExtension) GetAdditionalProperties() []*NamedAny {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\ntype Xml struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tName            string      `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\tNamespace       string      `protobuf:\"bytes,2,opt,name=namespace,proto3\" json:\"namespace,omitempty\"`\n\tPrefix          string      `protobuf:\"bytes,3,opt,name=prefix,proto3\" json:\"prefix,omitempty\"`\n\tAttribute       bool        `protobuf:\"varint,4,opt,name=attribute,proto3\" json:\"attribute,omitempty\"`\n\tWrapped         bool        `protobuf:\"varint,5,opt,name=wrapped,proto3\" json:\"wrapped,omitempty\"`\n\tVendorExtension []*NamedAny `protobuf:\"bytes,6,rep,name=vendor_extension,json=vendorExtension,proto3\" json:\"vendor_extension,omitempty\"`\n}\n\nfunc (x *Xml) Reset() {\n\t*x = Xml{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[59]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Xml) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Xml) ProtoMessage() {}\n\nfunc (x *Xml) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv2_OpenAPIv2_proto_msgTypes[59]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Xml.ProtoReflect.Descriptor instead.\nfunc (*Xml) Descriptor() ([]byte, []int) {\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescGZIP(), []int{59}\n}\n\nfunc (x *Xml) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *Xml) GetNamespace() string {\n\tif x != nil {\n\t\treturn x.Namespace\n\t}\n\treturn \"\"\n}\n\nfunc (x *Xml) GetPrefix() string {\n\tif x != nil {\n\t\treturn x.Prefix\n\t}\n\treturn \"\"\n}\n\nfunc (x *Xml) GetAttribute() bool {\n\tif x != nil {\n\t\treturn x.Attribute\n\t}\n\treturn false\n}\n\nfunc (x *Xml) GetWrapped() bool {\n\tif x != nil {\n\t\treturn x.Wrapped\n\t}\n\treturn false\n}\n\nfunc (x *Xml) GetVendorExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.VendorExtension\n\t}\n\treturn nil\n}\n\nvar File_openapiv2_OpenAPIv2_proto protoreflect.FileDescriptor\n\nvar file_openapiv2_OpenAPIv2_proto_rawDesc = []byte{\n\t0x0a, 0x19, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2f, 0x4f, 0x70, 0x65, 0x6e,\n\t0x41, 0x50, 0x49, 0x76, 0x32, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x6f, 0x70, 0x65,\n\t0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f,\n\t0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f,\n\t0x74, 0x6f, 0x22, 0x6d, 0x0a, 0x18, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c,\n\t0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x2c,\n\t0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12,\n\t0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x63, 0x68, 0x65,\n\t0x6d, 0x61, 0x48, 0x00, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x1a, 0x0a, 0x07,\n\t0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52,\n\t0x07, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x6f, 0x6e, 0x65, 0x6f,\n\t0x66, 0x22, 0x45, 0x0a, 0x03, 0x41, 0x6e, 0x79, 0x12, 0x2a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,\n\t0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,\n\t0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x05, 0x76,\n\t0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x79, 0x61, 0x6d, 0x6c, 0x18, 0x02, 0x20, 0x01,\n\t0x28, 0x09, 0x52, 0x04, 0x79, 0x61, 0x6d, 0x6c, 0x22, 0xab, 0x01, 0x0a, 0x0e, 0x41, 0x70, 0x69,\n\t0x4b, 0x65, 0x79, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74,\n\t0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12,\n\t0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e,\n\t0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x02, 0x69, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,\n\t0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,\n\t0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x10, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f,\n\t0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32,\n\t0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d,\n\t0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x0f, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x45, 0x78, 0x74,\n\t0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x94, 0x01, 0x0a, 0x1b, 0x42, 0x61, 0x73, 0x69, 0x63,\n\t0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65,\n\t0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01,\n\t0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65,\n\t0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x10,\n\t0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,\n\t0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x0f, 0x76, 0x65,\n\t0x6e, 0x64, 0x6f, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xde, 0x01,\n\t0x0a, 0x0d, 0x42, 0x6f, 0x64, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12,\n\t0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01,\n\t0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,\n\t0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28,\n\t0x09, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65,\n\t0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65,\n\t0x64, 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28,\n\t0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x53,\n\t0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x3f, 0x0a,\n\t0x10, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,\n\t0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x0f, 0x76,\n\t0x65, 0x6e, 0x64, 0x6f, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x86,\n\t0x01, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,\n\t0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10,\n\t0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c,\n\t0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x3f, 0x0a, 0x10, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72,\n\t0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b,\n\t0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61,\n\t0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x0f, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x45, 0x78,\n\t0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x54, 0x0a, 0x07, 0x44, 0x65, 0x66, 0x61, 0x75,\n\t0x6c, 0x74, 0x12, 0x49, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c,\n\t0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,\n\t0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e,\n\t0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f,\n\t0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0x5b, 0x0a,\n\t0x0b, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4c, 0x0a, 0x15,\n\t0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65,\n\t0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x70,\n\t0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x53, 0x63,\n\t0x68, 0x65, 0x6d, 0x61, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c,\n\t0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0xe8, 0x05, 0x0a, 0x08, 0x44,\n\t0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x77, 0x61, 0x67, 0x67,\n\t0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x77, 0x61, 0x67, 0x67, 0x65,\n\t0x72, 0x12, 0x24, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,\n\t0x10, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x66,\n\t0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18,\n\t0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x62,\n\t0x61, 0x73, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,\n\t0x62, 0x61, 0x73, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x63, 0x68, 0x65,\n\t0x6d, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x63, 0x68, 0x65, 0x6d,\n\t0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x73, 0x18, 0x06,\n\t0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x73, 0x12, 0x1a,\n\t0x0a, 0x08, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09,\n\t0x52, 0x08, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x05, 0x70, 0x61,\n\t0x74, 0x68, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x70, 0x65, 0x6e,\n\t0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x73, 0x52, 0x05, 0x70, 0x61,\n\t0x74, 0x68, 0x73, 0x12, 0x39, 0x0a, 0x0b, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f,\n\t0x6e, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61,\n\t0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e,\n\t0x73, 0x52, 0x0b, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x40,\n\t0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x01,\n\t0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e,\n\t0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74,\n\t0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73,\n\t0x12, 0x3d, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x0b, 0x20,\n\t0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32,\n\t0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74,\n\t0x69, 0x6f, 0x6e, 0x73, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x12,\n\t0x3b, 0x0a, 0x08, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0c, 0x20, 0x03, 0x28,\n\t0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x53,\n\t0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65,\n\t0x6e, 0x74, 0x52, 0x08, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x12, 0x52, 0x0a, 0x14,\n\t0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74,\n\t0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x65,\n\t0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79,\n\t0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x13, 0x73, 0x65, 0x63,\n\t0x75, 0x72, 0x69, 0x74, 0x79, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73,\n\t0x12, 0x23, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f,\n\t0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x67, 0x52,\n\t0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x3d, 0x0a, 0x0d, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61,\n\t0x6c, 0x5f, 0x64, 0x6f, 0x63, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f,\n\t0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e,\n\t0x61, 0x6c, 0x44, 0x6f, 0x63, 0x73, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c,\n\t0x44, 0x6f, 0x63, 0x73, 0x12, 0x3f, 0x0a, 0x10, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x65,\n\t0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14,\n\t0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65,\n\t0x64, 0x41, 0x6e, 0x79, 0x52, 0x0f, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x45, 0x78, 0x74, 0x65,\n\t0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x55, 0x0a, 0x08, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65,\n\t0x73, 0x12, 0x49, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f,\n\t0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,\n\t0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61,\n\t0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e,\n\t0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0x83, 0x01, 0x0a,\n\t0x0c, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x63, 0x73, 0x12, 0x20, 0x0a,\n\t0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01,\n\t0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12,\n\t0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72,\n\t0x6c, 0x12, 0x3f, 0x0a, 0x10, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x65, 0x78, 0x74, 0x65,\n\t0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70,\n\t0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e,\n\t0x79, 0x52, 0x0f, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,\n\t0x6f, 0x6e, 0x22, 0xff, 0x02, 0x0a, 0x0a, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d,\n\t0x61, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,\n\t0x09, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74,\n\t0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12,\n\t0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03,\n\t0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,\n\t0x6e, 0x12, 0x29, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x01,\n\t0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e,\n\t0x41, 0x6e, 0x79, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x1a, 0x0a, 0x08,\n\t0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08,\n\t0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65,\n\t0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09,\n\t0x72, 0x65, 0x61, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52,\n\t0x08, 0x72, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x3d, 0x0a, 0x0d, 0x65, 0x78, 0x74,\n\t0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x6f, 0x63, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b,\n\t0x32, 0x18, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x78,\n\t0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x63, 0x73, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65,\n\t0x72, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x63, 0x73, 0x12, 0x29, 0x0a, 0x07, 0x65, 0x78, 0x61, 0x6d,\n\t0x70, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x70, 0x65, 0x6e,\n\t0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x07, 0x65, 0x78, 0x61, 0x6d,\n\t0x70, 0x6c, 0x65, 0x12, 0x3f, 0x0a, 0x10, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x65, 0x78,\n\t0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e,\n\t0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64,\n\t0x41, 0x6e, 0x79, 0x52, 0x0f, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e,\n\t0x73, 0x69, 0x6f, 0x6e, 0x22, 0xab, 0x06, 0x0a, 0x1a, 0x46, 0x6f, 0x72, 0x6d, 0x44, 0x61, 0x74,\n\t0x61, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x75, 0x62, 0x53, 0x63, 0x68,\n\t0x65, 0x6d, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18,\n\t0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12,\n\t0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x6e, 0x12,\n\t0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03,\n\t0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,\n\t0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x65,\n\t0x6d, 0x70, 0x74, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08,\n\t0x52, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x56, 0x61, 0x6c, 0x75,\n\t0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18,\n\t0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x31, 0x0a,\n\t0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f,\n\t0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x69, 0x6d, 0x69, 0x74,\n\t0x69, 0x76, 0x65, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73,\n\t0x12, 0x2b, 0x0a, 0x11, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66,\n\t0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x6f, 0x6c,\n\t0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x29, 0x0a,\n\t0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f,\n\t0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x79, 0x52,\n\t0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x69,\n\t0x6d, 0x75, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d,\n\t0x75, 0x6d, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x5f,\n\t0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x65,\n\t0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x12,\n\t0x18, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x01,\n\t0x52, 0x07, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x78, 0x63,\n\t0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x0e,\n\t0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x4d,\n\t0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65,\n\t0x6e, 0x67, 0x74, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x4c,\n\t0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e,\n\t0x67, 0x74, 0x68, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x4c, 0x65,\n\t0x6e, 0x67, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18,\n\t0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x1b,\n\t0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28,\n\t0x03, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d,\n\t0x69, 0x6e, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08,\n\t0x6d, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x6e, 0x69, 0x71,\n\t0x75, 0x65, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b,\n\t0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x23, 0x0a, 0x04, 0x65,\n\t0x6e, 0x75, 0x6d, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x70, 0x65, 0x6e,\n\t0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, 0x65, 0x6e, 0x75, 0x6d,\n\t0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x6f, 0x66, 0x18,\n\t0x16, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x4f,\n\t0x66, 0x12, 0x3f, 0x0a, 0x10, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x65, 0x78, 0x74, 0x65,\n\t0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x17, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70,\n\t0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e,\n\t0x79, 0x52, 0x0f, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,\n\t0x6f, 0x6e, 0x22, 0xab, 0x05, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a,\n\t0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70,\n\t0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,\n\t0x09, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x31, 0x0a, 0x05, 0x69, 0x74, 0x65,\n\t0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61,\n\t0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x73,\n\t0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x2b, 0x0a, 0x11,\n\t0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61,\n\t0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74,\n\t0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x29, 0x0a, 0x07, 0x64, 0x65, 0x66,\n\t0x61, 0x75, 0x6c, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x70, 0x65,\n\t0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x07, 0x64, 0x65, 0x66,\n\t0x61, 0x75, 0x6c, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x18,\n\t0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x2b,\n\t0x0a, 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x61, 0x78, 0x69,\n\t0x6d, 0x75, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75,\n\t0x73, 0x69, 0x76, 0x65, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x6d,\n\t0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x6d, 0x69,\n\t0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69,\n\t0x76, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08,\n\t0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6e, 0x69, 0x6d,\n\t0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68,\n\t0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74,\n\t0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18,\n\t0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68,\n\t0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28,\n\t0x09, 0x52, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61,\n\t0x78, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6d,\n\t0x61, 0x78, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x69,\n\t0x74, 0x65, 0x6d, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x49,\n\t0x74, 0x65, 0x6d, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x5f, 0x69,\n\t0x74, 0x65, 0x6d, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x75, 0x6e, 0x69, 0x71,\n\t0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x23, 0x0a, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x18,\n\t0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x32, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x1f, 0x0a, 0x0b,\n\t0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x6f, 0x66, 0x18, 0x11, 0x20, 0x01, 0x28,\n\t0x01, 0x52, 0x0a, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x4f, 0x66, 0x12, 0x20, 0x0a,\n\t0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x12, 0x20, 0x01,\n\t0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12,\n\t0x3f, 0x0a, 0x10, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73,\n\t0x69, 0x6f, 0x6e, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e,\n\t0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52,\n\t0x0f, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,\n\t0x22, 0xfd, 0x05, 0x0a, 0x18, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d,\n\t0x65, 0x74, 0x65, 0x72, 0x53, 0x75, 0x62, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x1a, 0x0a,\n\t0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52,\n\t0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18,\n\t0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73,\n\t0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,\n\t0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e,\n\t0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,\n\t0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74,\n\t0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x06, 0x20,\n\t0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x31, 0x0a, 0x05, 0x69,\n\t0x74, 0x65, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65,\n\t0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76,\n\t0x65, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x2b,\n\t0x0a, 0x11, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6f, 0x72,\n\t0x6d, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x6f, 0x6c, 0x6c, 0x65,\n\t0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x29, 0x0a, 0x07, 0x64,\n\t0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f,\n\t0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x07, 0x64,\n\t0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75,\n\t0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d,\n\t0x12, 0x2b, 0x0a, 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x61,\n\t0x78, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x65, 0x78, 0x63,\n\t0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x18, 0x0a,\n\t0x07, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07,\n\t0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75,\n\t0x73, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x0d, 0x20, 0x01,\n\t0x28, 0x08, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6e,\n\t0x69, 0x6d, 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67,\n\t0x74, 0x68, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x6e,\n\t0x67, 0x74, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74,\n\t0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x67,\n\t0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x10, 0x20,\n\t0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x1b, 0x0a, 0x09,\n\t0x6d, 0x61, 0x78, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52,\n\t0x08, 0x6d, 0x61, 0x78, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e,\n\t0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6d, 0x69,\n\t0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65,\n\t0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x75, 0x6e,\n\t0x69, 0x71, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x23, 0x0a, 0x04, 0x65, 0x6e, 0x75,\n\t0x6d, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x1f,\n\t0x0a, 0x0b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x6f, 0x66, 0x18, 0x15, 0x20,\n\t0x01, 0x28, 0x01, 0x52, 0x0a, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x4f, 0x66, 0x12,\n\t0x3f, 0x0a, 0x10, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73,\n\t0x69, 0x6f, 0x6e, 0x18, 0x16, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e,\n\t0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52,\n\t0x0f, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,\n\t0x22, 0x57, 0x0a, 0x07, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x4c, 0x0a, 0x15, 0x61,\n\t0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,\n\t0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x70, 0x65,\n\t0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x48, 0x65, 0x61,\n\t0x64, 0x65, 0x72, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50,\n\t0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0xa1, 0x02, 0x0a, 0x04, 0x49, 0x6e,\n\t0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,\n\t0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73,\n\t0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69,\n\t0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,\n\t0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,\n\t0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x65, 0x72, 0x6d, 0x73, 0x5f, 0x6f, 0x66,\n\t0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e,\n\t0x74, 0x65, 0x72, 0x6d, 0x73, 0x4f, 0x66, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x2d,\n\t0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32,\n\t0x13, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e,\n\t0x74, 0x61, 0x63, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x12, 0x2d, 0x0a,\n\t0x07, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13,\n\t0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x63, 0x65,\n\t0x6e, 0x73, 0x65, 0x52, 0x07, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x10,\n\t0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,\n\t0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x0f, 0x76, 0x65,\n\t0x6e, 0x64, 0x6f, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x37, 0x0a,\n\t0x09, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x63,\n\t0x68, 0x65, 0x6d, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x70, 0x65,\n\t0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x06,\n\t0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x22, 0x44, 0x0a, 0x0d, 0x4a, 0x73, 0x6f, 0x6e, 0x52, 0x65,\n\t0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x11, 0x0a, 0x04, 0x5f, 0x72, 0x65, 0x66, 0x18,\n\t0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x52, 0x65, 0x66, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65,\n\t0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x70, 0x0a, 0x07,\n\t0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,\n\t0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75,\n\t0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x3f, 0x0a,\n\t0x10, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,\n\t0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x0f, 0x76,\n\t0x65, 0x6e, 0x64, 0x6f, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x45,\n\t0x0a, 0x08, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,\n\t0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x25,\n\t0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e,\n\t0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x05,\n\t0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x4b, 0x0a, 0x0b, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x48, 0x65,\n\t0x61, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,\n\t0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,\n\t0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c,\n\t0x75, 0x65, 0x22, 0x51, 0x0a, 0x0e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d,\n\t0x65, 0x74, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,\n\t0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,\n\t0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x05,\n\t0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x4f, 0x0a, 0x0d, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x50, 0x61,\n\t0x74, 0x68, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01,\n\t0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x05, 0x76, 0x61,\n\t0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e,\n\t0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x49, 0x74, 0x65, 0x6d, 0x52,\n\t0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x4f, 0x0a, 0x0d, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x52,\n\t0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,\n\t0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x05, 0x76,\n\t0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65,\n\t0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,\n\t0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x59, 0x0a, 0x12, 0x4e, 0x61, 0x6d, 0x65, 0x64,\n\t0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a,\n\t0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,\n\t0x65, 0x12, 0x2f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,\n\t0x32, 0x19, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65,\n\t0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c,\n\t0x75, 0x65, 0x22, 0x4b, 0x0a, 0x0b, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d,\n\t0x61, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,\n\t0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76,\n\t0x32, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22,\n\t0x6d, 0x0a, 0x1c, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79,\n\t0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x12,\n\t0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e,\n\t0x61, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,\n\t0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e,\n\t0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69,\n\t0x6f, 0x6e, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x37,\n\t0x0a, 0x0b, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x12, 0x0a,\n\t0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,\n\t0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,\n\t0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x55, 0x0a, 0x10, 0x4e, 0x61, 0x6d, 0x65, 0x64,\n\t0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e,\n\t0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,\n\t0x2d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17,\n\t0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x72, 0x69,\n\t0x6e, 0x67, 0x41, 0x72, 0x72, 0x61, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb5,\n\t0x03, 0x0a, 0x10, 0x4e, 0x6f, 0x6e, 0x42, 0x6f, 0x64, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65,\n\t0x74, 0x65, 0x72, 0x12, 0x65, 0x0a, 0x1b, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x70, 0x61,\n\t0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x73, 0x63, 0x68, 0x65,\n\t0x6d, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61,\n\t0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61,\n\t0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x75, 0x62, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x48, 0x00,\n\t0x52, 0x18, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65,\n\t0x72, 0x53, 0x75, 0x62, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x6c, 0x0a, 0x1e, 0x66, 0x6f,\n\t0x72, 0x6d, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65,\n\t0x72, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x02, 0x20, 0x01,\n\t0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e,\n\t0x46, 0x6f, 0x72, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65,\n\t0x72, 0x53, 0x75, 0x62, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x48, 0x00, 0x52, 0x1a, 0x66, 0x6f,\n\t0x72, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53,\n\t0x75, 0x62, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x62, 0x0a, 0x1a, 0x71, 0x75, 0x65, 0x72,\n\t0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x75, 0x62, 0x5f,\n\t0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f,\n\t0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50,\n\t0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x75, 0x62, 0x53, 0x63, 0x68, 0x65, 0x6d,\n\t0x61, 0x48, 0x00, 0x52, 0x17, 0x71, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65,\n\t0x74, 0x65, 0x72, 0x53, 0x75, 0x62, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x5f, 0x0a, 0x19,\n\t0x70, 0x61, 0x74, 0x68, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x73,\n\t0x75, 0x62, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32,\n\t0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x61, 0x74,\n\t0x68, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x75, 0x62, 0x53, 0x63, 0x68,\n\t0x65, 0x6d, 0x61, 0x48, 0x00, 0x52, 0x16, 0x70, 0x61, 0x74, 0x68, 0x50, 0x61, 0x72, 0x61, 0x6d,\n\t0x65, 0x74, 0x65, 0x72, 0x53, 0x75, 0x62, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x42, 0x07, 0x0a,\n\t0x05, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x22, 0xa1, 0x02, 0x0a, 0x18, 0x4f, 0x61, 0x75, 0x74, 0x68,\n\t0x32, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x53, 0x65, 0x63, 0x75, 0x72,\n\t0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,\n\t0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x18,\n\t0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x30, 0x0a, 0x06, 0x73,\n\t0x63, 0x6f, 0x70, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x70,\n\t0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x53,\n\t0x63, 0x6f, 0x70, 0x65, 0x73, 0x52, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x2b, 0x0a,\n\t0x11, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x75,\n\t0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72,\n\t0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f,\n\t0x6b, 0x65, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74,\n\t0x6f, 0x6b, 0x65, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72,\n\t0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65,\n\t0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x10, 0x76, 0x65, 0x6e,\n\t0x64, 0x6f, 0x72, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20,\n\t0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32,\n\t0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x0f, 0x76, 0x65, 0x6e, 0x64, 0x6f,\n\t0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xf5, 0x01, 0x0a, 0x19, 0x4f,\n\t0x61, 0x75, 0x74, 0x68, 0x32, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,\n\t0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65,\n\t0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04,\n\t0x66, 0x6c, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x6c, 0x6f, 0x77,\n\t0x12, 0x30, 0x0a, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,\n\t0x32, 0x18, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x61,\n\t0x75, 0x74, 0x68, 0x32, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x52, 0x06, 0x73, 0x63, 0x6f, 0x70,\n\t0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18,\n\t0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x55, 0x72, 0x6c, 0x12,\n\t0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05,\n\t0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,\n\t0x6e, 0x12, 0x3f, 0x0a, 0x10, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x65, 0x78, 0x74, 0x65,\n\t0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70,\n\t0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e,\n\t0x79, 0x52, 0x0f, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,\n\t0x6f, 0x6e, 0x22, 0x82, 0x02, 0x0a, 0x16, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x49, 0x6d, 0x70,\n\t0x6c, 0x69, 0x63, 0x69, 0x74, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a,\n\t0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70,\n\t0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x04, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x30, 0x0a, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x18,\n\t0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x32, 0x2e, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x52,\n\t0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x75, 0x74, 0x68, 0x6f,\n\t0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01,\n\t0x28, 0x09, 0x52, 0x10, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f,\n\t0x6e, 0x55, 0x72, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,\n\t0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72,\n\t0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x10, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72,\n\t0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b,\n\t0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61,\n\t0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x0f, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x45, 0x78,\n\t0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xf2, 0x01, 0x0a, 0x16, 0x4f, 0x61, 0x75, 0x74,\n\t0x68, 0x32, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69,\n\t0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,\n\t0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x02,\n\t0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x30, 0x0a, 0x06, 0x73, 0x63,\n\t0x6f, 0x70, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x70, 0x65,\n\t0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x53, 0x63,\n\t0x6f, 0x70, 0x65, 0x73, 0x52, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09,\n\t0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x08, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73,\n\t0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,\n\t0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x10, 0x76,\n\t0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18,\n\t0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x0f, 0x76, 0x65, 0x6e,\n\t0x64, 0x6f, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x5c, 0x0a, 0x0c,\n\t0x4f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x15,\n\t0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65,\n\t0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x70,\n\t0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x53, 0x74,\n\t0x72, 0x69, 0x6e, 0x67, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c,\n\t0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0x9e, 0x04, 0x0a, 0x09, 0x4f,\n\t0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73,\n\t0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x18, 0x0a, 0x07,\n\t0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73,\n\t0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,\n\t0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73,\n\t0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x0a, 0x0d, 0x65, 0x78, 0x74, 0x65,\n\t0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x6f, 0x63, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32,\n\t0x18, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x78, 0x74,\n\t0x65, 0x72, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x63, 0x73, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x72,\n\t0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x63, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61,\n\t0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f,\n\t0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72,\n\t0x6f, 0x64, 0x75, 0x63, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72,\n\t0x6f, 0x64, 0x75, 0x63, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d,\n\t0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d,\n\t0x65, 0x73, 0x12, 0x3a, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73,\n\t0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x32, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x49, 0x74,\n\t0x65, 0x6d, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x33,\n\t0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28,\n\t0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x52,\n\t0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e,\n\t0x73, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x73, 0x18, 0x0a,\n\t0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x73, 0x12, 0x1e, 0x0a,\n\t0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28,\n\t0x08, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x3b, 0x0a,\n\t0x08, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32,\n\t0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x63,\n\t0x75, 0x72, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74,\n\t0x52, 0x08, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x12, 0x3f, 0x0a, 0x10, 0x76, 0x65,\n\t0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0d,\n\t0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76,\n\t0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x0f, 0x76, 0x65, 0x6e, 0x64,\n\t0x6f, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xa6, 0x01, 0x0a, 0x09,\n\t0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x42, 0x0a, 0x0e, 0x62, 0x6f, 0x64,\n\t0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28,\n\t0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x42,\n\t0x6f, 0x64, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0d,\n\t0x62, 0x6f, 0x64, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x4c, 0x0a,\n\t0x12, 0x6e, 0x6f, 0x6e, 0x5f, 0x62, 0x6f, 0x64, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65,\n\t0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x70, 0x65, 0x6e,\n\t0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x6f, 0x6e, 0x42, 0x6f, 0x64, 0x79, 0x50, 0x61,\n\t0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, 0x6e, 0x6f, 0x6e, 0x42, 0x6f,\n\t0x64, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x42, 0x07, 0x0a, 0x05, 0x6f,\n\t0x6e, 0x65, 0x6f, 0x66, 0x22, 0x67, 0x0a, 0x14, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65,\n\t0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4f, 0x0a, 0x15,\n\t0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65,\n\t0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x70,\n\t0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x50, 0x61,\n\t0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f,\n\t0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0x94, 0x01,\n\t0x0a, 0x0e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x49, 0x74, 0x65, 0x6d,\n\t0x12, 0x35, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20,\n\t0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32,\n\t0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x09, 0x70, 0x61,\n\t0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x42, 0x0a, 0x0e, 0x6a, 0x73, 0x6f, 0x6e, 0x5f,\n\t0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,\n\t0x19, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4a, 0x73, 0x6f,\n\t0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x6a, 0x73,\n\t0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x6f,\n\t0x6e, 0x65, 0x6f, 0x66, 0x22, 0xcf, 0x03, 0x0a, 0x08, 0x50, 0x61, 0x74, 0x68, 0x49, 0x74, 0x65,\n\t0x6d, 0x12, 0x11, 0x0a, 0x04, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x03, 0x52, 0x65, 0x66, 0x12, 0x27, 0x0a, 0x03, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,\n\t0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4f,\n\t0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x67, 0x65, 0x74, 0x12, 0x27, 0x0a,\n\t0x03, 0x70, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65,\n\t0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f,\n\t0x6e, 0x52, 0x03, 0x70, 0x75, 0x74, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x18, 0x04,\n\t0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76,\n\t0x32, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x70, 0x6f, 0x73,\n\t0x74, 0x12, 0x2d, 0x0a, 0x06, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,\n\t0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4f,\n\t0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65,\n\t0x12, 0x2f, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28,\n\t0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4f,\n\t0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,\n\t0x73, 0x12, 0x29, 0x0a, 0x04, 0x68, 0x65, 0x61, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32,\n\t0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x70, 0x65,\n\t0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x68, 0x65, 0x61, 0x64, 0x12, 0x2b, 0x0a, 0x05,\n\t0x70, 0x61, 0x74, 0x63, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70,\n\t0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69,\n\t0x6f, 0x6e, 0x52, 0x05, 0x70, 0x61, 0x74, 0x63, 0x68, 0x12, 0x3a, 0x0a, 0x0a, 0x70, 0x61, 0x72,\n\t0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e,\n\t0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d,\n\t0x65, 0x74, 0x65, 0x72, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d,\n\t0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x3f, 0x0a, 0x10, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f,\n\t0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32,\n\t0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d,\n\t0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x0f, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x45, 0x78, 0x74,\n\t0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xfb, 0x05, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x68, 0x50,\n\t0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x75, 0x62, 0x53, 0x63, 0x68, 0x65, 0x6d,\n\t0x61, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x01, 0x20,\n\t0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x0e, 0x0a,\n\t0x02, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x20, 0x0a,\n\t0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01,\n\t0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12,\n\t0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e,\n\t0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,\n\t0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61,\n\t0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12,\n\t0x31, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b,\n\t0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x69, 0x6d,\n\t0x69, 0x74, 0x69, 0x76, 0x65, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x05, 0x69, 0x74, 0x65,\n\t0x6d, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,\n\t0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63,\n\t0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12,\n\t0x29, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b,\n\t0x32, 0x0f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e,\n\t0x79, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61,\n\t0x78, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x6d, 0x61, 0x78,\n\t0x69, 0x6d, 0x75, 0x6d, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76,\n\t0x65, 0x5f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52,\n\t0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75,\n\t0x6d, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x0c, 0x20, 0x01,\n\t0x28, 0x01, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x2b, 0x0a, 0x11, 0x65,\n\t0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d,\n\t0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76,\n\t0x65, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f,\n\t0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x61,\n\t0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x5f, 0x6c,\n\t0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x69, 0x6e,\n\t0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72,\n\t0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e,\n\t0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x11, 0x20,\n\t0x01, 0x28, 0x03, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1b, 0x0a,\n\t0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03,\n\t0x52, 0x08, 0x6d, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x6e,\n\t0x69, 0x71, 0x75, 0x65, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08,\n\t0x52, 0x0b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x23, 0x0a,\n\t0x04, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x70,\n\t0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, 0x65, 0x6e,\n\t0x75, 0x6d, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x6f,\n\t0x66, 0x18, 0x15, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c,\n\t0x65, 0x4f, 0x66, 0x12, 0x3f, 0x0a, 0x10, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x65, 0x78,\n\t0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x16, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e,\n\t0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64,\n\t0x41, 0x6e, 0x79, 0x52, 0x0f, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e,\n\t0x73, 0x69, 0x6f, 0x6e, 0x22, 0x77, 0x0a, 0x05, 0x50, 0x61, 0x74, 0x68, 0x73, 0x12, 0x3f, 0x0a,\n\t0x10, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,\n\t0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x0f, 0x76,\n\t0x65, 0x6e, 0x64, 0x6f, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2d,\n\t0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f,\n\t0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x50,\n\t0x61, 0x74, 0x68, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x92, 0x05,\n\t0x0a, 0x0f, 0x50, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x73, 0x49, 0x74, 0x65, 0x6d,\n\t0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18,\n\t0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x31, 0x0a,\n\t0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f,\n\t0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x69, 0x6d, 0x69, 0x74,\n\t0x69, 0x76, 0x65, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73,\n\t0x12, 0x2b, 0x0a, 0x11, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66,\n\t0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x6f, 0x6c,\n\t0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x29, 0x0a,\n\t0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f,\n\t0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x79, 0x52,\n\t0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x69,\n\t0x6d, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d,\n\t0x75, 0x6d, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x5f,\n\t0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x65,\n\t0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x12,\n\t0x18, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01,\n\t0x52, 0x07, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x78, 0x63,\n\t0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x09,\n\t0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x4d,\n\t0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65,\n\t0x6e, 0x67, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x4c,\n\t0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e,\n\t0x67, 0x74, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x4c, 0x65,\n\t0x6e, 0x67, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18,\n\t0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x1b,\n\t0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28,\n\t0x03, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d,\n\t0x69, 0x6e, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08,\n\t0x6d, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x6e, 0x69, 0x71,\n\t0x75, 0x65, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b,\n\t0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x23, 0x0a, 0x04, 0x65,\n\t0x6e, 0x75, 0x6d, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x70, 0x65, 0x6e,\n\t0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, 0x65, 0x6e, 0x75, 0x6d,\n\t0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x6f, 0x66, 0x18,\n\t0x11, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x4f,\n\t0x66, 0x12, 0x3f, 0x0a, 0x10, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x65, 0x78, 0x74, 0x65,\n\t0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70,\n\t0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e,\n\t0x79, 0x52, 0x0f, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,\n\t0x6f, 0x6e, 0x22, 0x5a, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73,\n\t0x12, 0x4c, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70,\n\t0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,\n\t0x17, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d,\n\t0x65, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69,\n\t0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0xa8,\n\t0x06, 0x0a, 0x17, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65,\n\t0x72, 0x53, 0x75, 0x62, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65,\n\t0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65,\n\t0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01,\n\t0x28, 0x09, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,\n\t0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73,\n\t0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,\n\t0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x11,\n\t0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75,\n\t0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x45, 0x6d,\n\t0x70, 0x74, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65,\n\t0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06,\n\t0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f,\n\t0x72, 0x6d, 0x61, 0x74, 0x12, 0x31, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x08, 0x20,\n\t0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32,\n\t0x2e, 0x50, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x73,\n\t0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x6f, 0x6c, 0x6c, 0x65,\n\t0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01,\n\t0x28, 0x09, 0x52, 0x10, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f,\n\t0x72, 0x6d, 0x61, 0x74, 0x12, 0x29, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18,\n\t0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x32, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12,\n\t0x18, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x01,\n\t0x52, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x78, 0x63,\n\t0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x0c,\n\t0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x4d,\n\t0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75,\n\t0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d,\n\t0x12, 0x2b, 0x0a, 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x69,\n\t0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x65, 0x78, 0x63,\n\t0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x1d, 0x0a,\n\t0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28,\n\t0x03, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x1d, 0x0a, 0x0a,\n\t0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03,\n\t0x52, 0x09, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x70,\n\t0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61,\n\t0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x69, 0x74, 0x65,\n\t0x6d, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x49, 0x74, 0x65,\n\t0x6d, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18,\n\t0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12,\n\t0x21, 0x0a, 0x0c, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18,\n\t0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x74, 0x65,\n\t0x6d, 0x73, 0x12, 0x23, 0x0a, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b,\n\t0x32, 0x0f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e,\n\t0x79, 0x52, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x75, 0x6c, 0x74, 0x69,\n\t0x70, 0x6c, 0x65, 0x5f, 0x6f, 0x66, 0x18, 0x16, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x6d, 0x75,\n\t0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x4f, 0x66, 0x12, 0x3f, 0x0a, 0x10, 0x76, 0x65, 0x6e, 0x64,\n\t0x6f, 0x72, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x17, 0x20, 0x03,\n\t0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e,\n\t0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x0f, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72,\n\t0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xfe, 0x01, 0x0a, 0x08, 0x52, 0x65,\n\t0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,\n\t0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73,\n\t0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65,\n\t0x6d, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61,\n\t0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, 0x74, 0x65, 0x6d,\n\t0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x2d, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64,\n\t0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x70, 0x65, 0x6e,\n\t0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x52, 0x07,\n\t0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x30, 0x0a, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x70,\n\t0x6c, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e,\n\t0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x52,\n\t0x08, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x10, 0x76, 0x65, 0x6e,\n\t0x64, 0x6f, 0x72, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20,\n\t0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32,\n\t0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x0f, 0x76, 0x65, 0x6e, 0x64, 0x6f,\n\t0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x65, 0x0a, 0x13, 0x52, 0x65,\n\t0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e,\n\t0x73, 0x12, 0x4e, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f,\n\t0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,\n\t0x32, 0x19, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61,\n\t0x6d, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x14, 0x61, 0x64, 0x64,\n\t0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65,\n\t0x73, 0x22, 0x90, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x61,\n\t0x6c, 0x75, 0x65, 0x12, 0x32, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18,\n\t0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x08, 0x72,\n\t0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x0e, 0x6a, 0x73, 0x6f, 0x6e, 0x5f,\n\t0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,\n\t0x19, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4a, 0x73, 0x6f,\n\t0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x6a, 0x73,\n\t0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x6f,\n\t0x6e, 0x65, 0x6f, 0x66, 0x22, 0x91, 0x01, 0x0a, 0x09, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,\n\t0x65, 0x73, 0x12, 0x43, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x63,\n\t0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x70, 0x65, 0x6e,\n\t0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70,\n\t0x6f, 0x6e, 0x73, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f,\n\t0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x3f, 0x0a, 0x10, 0x76, 0x65, 0x6e, 0x64, 0x6f,\n\t0x72, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28,\n\t0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e,\n\t0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x0f, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x45,\n\t0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xaf, 0x09, 0x0a, 0x06, 0x53, 0x63, 0x68,\n\t0x65, 0x6d, 0x61, 0x12, 0x11, 0x0a, 0x04, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28,\n\t0x09, 0x52, 0x03, 0x52, 0x65, 0x66, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74,\n\t0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x14,\n\t0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74,\n\t0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,\n\t0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72,\n\t0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c,\n\t0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c,\n\t0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x6f, 0x66,\n\t0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65,\n\t0x4f, 0x66, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x07, 0x20,\n\t0x01, 0x28, 0x01, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x2b, 0x0a, 0x11,\n\t0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75,\n\t0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69,\n\t0x76, 0x65, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x69, 0x6e,\n\t0x69, 0x6d, 0x75, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x69,\n\t0x6d, 0x75, 0x6d, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65,\n\t0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10,\n\t0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d,\n\t0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0b,\n\t0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12,\n\t0x1d, 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0c, 0x20,\n\t0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x18,\n\t0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f,\n\t0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6d, 0x61, 0x78,\n\t0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x69, 0x74, 0x65,\n\t0x6d, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x49, 0x74, 0x65,\n\t0x6d, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x5f, 0x69, 0x74, 0x65,\n\t0x6d, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65,\n\t0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x72, 0x6f,\n\t0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6d,\n\t0x61, 0x78, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e,\n\t0x6d, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x12,\n\t0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6d, 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,\n\t0x69, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18,\n\t0x13, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12,\n\t0x23, 0x0a, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e,\n\t0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04,\n\t0x65, 0x6e, 0x75, 0x6d, 0x12, 0x59, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e,\n\t0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x15, 0x20,\n\t0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32,\n\t0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65,\n\t0x72, 0x74, 0x69, 0x65, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74,\n\t0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12,\n\t0x28, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e,\n\t0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x49,\n\t0x74, 0x65, 0x6d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2b, 0x0a, 0x05, 0x69, 0x74, 0x65,\n\t0x6d, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61,\n\t0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x52,\n\t0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x06, 0x61, 0x6c, 0x6c, 0x5f, 0x6f, 0x66,\n\t0x18, 0x18, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x32, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x05, 0x61, 0x6c, 0x6c, 0x4f,\n\t0x66, 0x12, 0x36, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18,\n\t0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x0a, 0x70,\n\t0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x69, 0x73,\n\t0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09,\n\t0x52, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x12,\n\t0x1b, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x1b, 0x20, 0x01,\n\t0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x21, 0x0a, 0x03,\n\t0x78, 0x6d, 0x6c, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x70, 0x65, 0x6e,\n\t0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x58, 0x6d, 0x6c, 0x52, 0x03, 0x78, 0x6d, 0x6c, 0x12,\n\t0x3d, 0x0a, 0x0d, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x6f, 0x63, 0x73,\n\t0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x32, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x63, 0x73,\n\t0x52, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x63, 0x73, 0x12, 0x29,\n\t0x0a, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32,\n\t0x0f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x6e, 0x79,\n\t0x52, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x3f, 0x0a, 0x10, 0x76, 0x65, 0x6e,\n\t0x64, 0x6f, 0x72, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x1f, 0x20,\n\t0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32,\n\t0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x0f, 0x76, 0x65, 0x6e, 0x64, 0x6f,\n\t0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x7e, 0x0a, 0x0a, 0x53, 0x63,\n\t0x68, 0x65, 0x6d, 0x61, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x2c, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65,\n\t0x6d, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61,\n\t0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x48, 0x00, 0x52, 0x06,\n\t0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x39, 0x0a, 0x0b, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73,\n\t0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x70,\n\t0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x63, 0x68,\n\t0x65, 0x6d, 0x61, 0x48, 0x00, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d,\n\t0x61, 0x42, 0x07, 0x0a, 0x05, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x22, 0x74, 0x0a, 0x13, 0x53, 0x65,\n\t0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e,\n\t0x73, 0x12, 0x5d, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f,\n\t0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,\n\t0x32, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61,\n\t0x6d, 0x65, 0x64, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x44, 0x65, 0x66, 0x69, 0x6e,\n\t0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69,\n\t0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73,\n\t0x22, 0xe9, 0x04, 0x0a, 0x17, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x44, 0x65, 0x66,\n\t0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x6d, 0x0a, 0x1d,\n\t0x62, 0x61, 0x73, 0x69, 0x63, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61,\n\t0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20,\n\t0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32,\n\t0x2e, 0x42, 0x61, 0x73, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61,\n\t0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x48, 0x00, 0x52, 0x1b,\n\t0x62, 0x61, 0x73, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74,\n\t0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x12, 0x46, 0x0a, 0x10, 0x61,\n\t0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x18,\n\t0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x32, 0x2e, 0x41, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74,\n\t0x79, 0x48, 0x00, 0x52, 0x0e, 0x61, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x63, 0x75, 0x72,\n\t0x69, 0x74, 0x79, 0x12, 0x5e, 0x0a, 0x18, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x5f, 0x69, 0x6d,\n\t0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x18,\n\t0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x32, 0x2e, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x49, 0x6d, 0x70, 0x6c, 0x69, 0x63, 0x69,\n\t0x74, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x48, 0x00, 0x52, 0x16, 0x6f, 0x61, 0x75,\n\t0x74, 0x68, 0x32, 0x49, 0x6d, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x53, 0x65, 0x63, 0x75, 0x72,\n\t0x69, 0x74, 0x79, 0x12, 0x5e, 0x0a, 0x18, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x5f, 0x70, 0x61,\n\t0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x18,\n\t0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x32, 0x2e, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72,\n\t0x64, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x48, 0x00, 0x52, 0x16, 0x6f, 0x61, 0x75,\n\t0x74, 0x68, 0x32, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x65, 0x63, 0x75, 0x72,\n\t0x69, 0x74, 0x79, 0x12, 0x67, 0x0a, 0x1b, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x5f, 0x61, 0x70,\n\t0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69,\n\t0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61,\n\t0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x41, 0x70, 0x70, 0x6c,\n\t0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x48,\n\t0x00, 0x52, 0x19, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,\n\t0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x12, 0x65, 0x0a, 0x1b,\n\t0x6f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f,\n\t0x64, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28,\n\t0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4f,\n\t0x61, 0x75, 0x74, 0x68, 0x32, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x53,\n\t0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x48, 0x00, 0x52, 0x18, 0x6f, 0x61, 0x75, 0x74, 0x68,\n\t0x32, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x53, 0x65, 0x63, 0x75, 0x72,\n\t0x69, 0x74, 0x79, 0x42, 0x07, 0x0a, 0x05, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x22, 0x68, 0x0a, 0x13,\n\t0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d,\n\t0x65, 0x6e, 0x74, 0x12, 0x51, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61,\n\t0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03,\n\t0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e,\n\t0x4e, 0x61, 0x6d, 0x65, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x41, 0x72, 0x72, 0x61, 0x79,\n\t0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70,\n\t0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0x23, 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67,\n\t0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01,\n\t0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xbb, 0x01, 0x0a, 0x03,\n\t0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,\n\t0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72,\n\t0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65,\n\t0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x0a, 0x0d, 0x65, 0x78, 0x74,\n\t0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x6f, 0x63, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,\n\t0x32, 0x18, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x78,\n\t0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x63, 0x73, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65,\n\t0x72, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x63, 0x73, 0x12, 0x3f, 0x0a, 0x10, 0x76, 0x65, 0x6e, 0x64,\n\t0x6f, 0x72, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x03,\n\t0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e,\n\t0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x0f, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72,\n\t0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x20, 0x0a, 0x08, 0x54, 0x79, 0x70,\n\t0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01,\n\t0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x5c, 0x0a, 0x0f, 0x56,\n\t0x65, 0x6e, 0x64, 0x6f, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x49,\n\t0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f,\n\t0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e,\n\t0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64,\n\t0x41, 0x6e, 0x79, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50,\n\t0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0xc8, 0x01, 0x0a, 0x03, 0x58, 0x6d,\n\t0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61,\n\t0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70,\n\t0x61, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x03, 0x20,\n\t0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x61,\n\t0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09,\n\t0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x72, 0x61,\n\t0x70, 0x70, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x77, 0x72, 0x61, 0x70,\n\t0x70, 0x65, 0x64, 0x12, 0x3f, 0x0a, 0x10, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x65, 0x78,\n\t0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e,\n\t0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64,\n\t0x41, 0x6e, 0x79, 0x52, 0x0f, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e,\n\t0x73, 0x69, 0x6f, 0x6e, 0x42, 0x3e, 0x0a, 0x0e, 0x6f, 0x72, 0x67, 0x2e, 0x6f, 0x70, 0x65, 0x6e,\n\t0x61, 0x70, 0x69, 0x5f, 0x76, 0x32, 0x42, 0x0c, 0x4f, 0x70, 0x65, 0x6e, 0x41, 0x50, 0x49, 0x50,\n\t0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x16, 0x2e, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,\n\t0x69, 0x76, 0x32, 0x3b, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x32, 0xa2, 0x02,\n\t0x03, 0x4f, 0x41, 0x53, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,\n}\n\nvar (\n\tfile_openapiv2_OpenAPIv2_proto_rawDescOnce sync.Once\n\tfile_openapiv2_OpenAPIv2_proto_rawDescData = file_openapiv2_OpenAPIv2_proto_rawDesc\n)\n\nfunc file_openapiv2_OpenAPIv2_proto_rawDescGZIP() []byte {\n\tfile_openapiv2_OpenAPIv2_proto_rawDescOnce.Do(func() {\n\t\tfile_openapiv2_OpenAPIv2_proto_rawDescData = protoimpl.X.CompressGZIP(file_openapiv2_OpenAPIv2_proto_rawDescData)\n\t})\n\treturn file_openapiv2_OpenAPIv2_proto_rawDescData\n}\n\nvar file_openapiv2_OpenAPIv2_proto_msgTypes = make([]protoimpl.MessageInfo, 60)\nvar file_openapiv2_OpenAPIv2_proto_goTypes = []interface{}{\n\t(*AdditionalPropertiesItem)(nil),     // 0: openapi.v2.AdditionalPropertiesItem\n\t(*Any)(nil),                          // 1: openapi.v2.Any\n\t(*ApiKeySecurity)(nil),               // 2: openapi.v2.ApiKeySecurity\n\t(*BasicAuthenticationSecurity)(nil),  // 3: openapi.v2.BasicAuthenticationSecurity\n\t(*BodyParameter)(nil),                // 4: openapi.v2.BodyParameter\n\t(*Contact)(nil),                      // 5: openapi.v2.Contact\n\t(*Default)(nil),                      // 6: openapi.v2.Default\n\t(*Definitions)(nil),                  // 7: openapi.v2.Definitions\n\t(*Document)(nil),                     // 8: openapi.v2.Document\n\t(*Examples)(nil),                     // 9: openapi.v2.Examples\n\t(*ExternalDocs)(nil),                 // 10: openapi.v2.ExternalDocs\n\t(*FileSchema)(nil),                   // 11: openapi.v2.FileSchema\n\t(*FormDataParameterSubSchema)(nil),   // 12: openapi.v2.FormDataParameterSubSchema\n\t(*Header)(nil),                       // 13: openapi.v2.Header\n\t(*HeaderParameterSubSchema)(nil),     // 14: openapi.v2.HeaderParameterSubSchema\n\t(*Headers)(nil),                      // 15: openapi.v2.Headers\n\t(*Info)(nil),                         // 16: openapi.v2.Info\n\t(*ItemsItem)(nil),                    // 17: openapi.v2.ItemsItem\n\t(*JsonReference)(nil),                // 18: openapi.v2.JsonReference\n\t(*License)(nil),                      // 19: openapi.v2.License\n\t(*NamedAny)(nil),                     // 20: openapi.v2.NamedAny\n\t(*NamedHeader)(nil),                  // 21: openapi.v2.NamedHeader\n\t(*NamedParameter)(nil),               // 22: openapi.v2.NamedParameter\n\t(*NamedPathItem)(nil),                // 23: openapi.v2.NamedPathItem\n\t(*NamedResponse)(nil),                // 24: openapi.v2.NamedResponse\n\t(*NamedResponseValue)(nil),           // 25: openapi.v2.NamedResponseValue\n\t(*NamedSchema)(nil),                  // 26: openapi.v2.NamedSchema\n\t(*NamedSecurityDefinitionsItem)(nil), // 27: openapi.v2.NamedSecurityDefinitionsItem\n\t(*NamedString)(nil),                  // 28: openapi.v2.NamedString\n\t(*NamedStringArray)(nil),             // 29: openapi.v2.NamedStringArray\n\t(*NonBodyParameter)(nil),             // 30: openapi.v2.NonBodyParameter\n\t(*Oauth2AccessCodeSecurity)(nil),     // 31: openapi.v2.Oauth2AccessCodeSecurity\n\t(*Oauth2ApplicationSecurity)(nil),    // 32: openapi.v2.Oauth2ApplicationSecurity\n\t(*Oauth2ImplicitSecurity)(nil),       // 33: openapi.v2.Oauth2ImplicitSecurity\n\t(*Oauth2PasswordSecurity)(nil),       // 34: openapi.v2.Oauth2PasswordSecurity\n\t(*Oauth2Scopes)(nil),                 // 35: openapi.v2.Oauth2Scopes\n\t(*Operation)(nil),                    // 36: openapi.v2.Operation\n\t(*Parameter)(nil),                    // 37: openapi.v2.Parameter\n\t(*ParameterDefinitions)(nil),         // 38: openapi.v2.ParameterDefinitions\n\t(*ParametersItem)(nil),               // 39: openapi.v2.ParametersItem\n\t(*PathItem)(nil),                     // 40: openapi.v2.PathItem\n\t(*PathParameterSubSchema)(nil),       // 41: openapi.v2.PathParameterSubSchema\n\t(*Paths)(nil),                        // 42: openapi.v2.Paths\n\t(*PrimitivesItems)(nil),              // 43: openapi.v2.PrimitivesItems\n\t(*Properties)(nil),                   // 44: openapi.v2.Properties\n\t(*QueryParameterSubSchema)(nil),      // 45: openapi.v2.QueryParameterSubSchema\n\t(*Response)(nil),                     // 46: openapi.v2.Response\n\t(*ResponseDefinitions)(nil),          // 47: openapi.v2.ResponseDefinitions\n\t(*ResponseValue)(nil),                // 48: openapi.v2.ResponseValue\n\t(*Responses)(nil),                    // 49: openapi.v2.Responses\n\t(*Schema)(nil),                       // 50: openapi.v2.Schema\n\t(*SchemaItem)(nil),                   // 51: openapi.v2.SchemaItem\n\t(*SecurityDefinitions)(nil),          // 52: openapi.v2.SecurityDefinitions\n\t(*SecurityDefinitionsItem)(nil),      // 53: openapi.v2.SecurityDefinitionsItem\n\t(*SecurityRequirement)(nil),          // 54: openapi.v2.SecurityRequirement\n\t(*StringArray)(nil),                  // 55: openapi.v2.StringArray\n\t(*Tag)(nil),                          // 56: openapi.v2.Tag\n\t(*TypeItem)(nil),                     // 57: openapi.v2.TypeItem\n\t(*VendorExtension)(nil),              // 58: openapi.v2.VendorExtension\n\t(*Xml)(nil),                          // 59: openapi.v2.Xml\n\t(*anypb.Any)(nil),                    // 60: google.protobuf.Any\n}\nvar file_openapiv2_OpenAPIv2_proto_depIdxs = []int32{\n\t50,  // 0: openapi.v2.AdditionalPropertiesItem.schema:type_name -> openapi.v2.Schema\n\t60,  // 1: openapi.v2.Any.value:type_name -> google.protobuf.Any\n\t20,  // 2: openapi.v2.ApiKeySecurity.vendor_extension:type_name -> openapi.v2.NamedAny\n\t20,  // 3: openapi.v2.BasicAuthenticationSecurity.vendor_extension:type_name -> openapi.v2.NamedAny\n\t50,  // 4: openapi.v2.BodyParameter.schema:type_name -> openapi.v2.Schema\n\t20,  // 5: openapi.v2.BodyParameter.vendor_extension:type_name -> openapi.v2.NamedAny\n\t20,  // 6: openapi.v2.Contact.vendor_extension:type_name -> openapi.v2.NamedAny\n\t20,  // 7: openapi.v2.Default.additional_properties:type_name -> openapi.v2.NamedAny\n\t26,  // 8: openapi.v2.Definitions.additional_properties:type_name -> openapi.v2.NamedSchema\n\t16,  // 9: openapi.v2.Document.info:type_name -> openapi.v2.Info\n\t42,  // 10: openapi.v2.Document.paths:type_name -> openapi.v2.Paths\n\t7,   // 11: openapi.v2.Document.definitions:type_name -> openapi.v2.Definitions\n\t38,  // 12: openapi.v2.Document.parameters:type_name -> openapi.v2.ParameterDefinitions\n\t47,  // 13: openapi.v2.Document.responses:type_name -> openapi.v2.ResponseDefinitions\n\t54,  // 14: openapi.v2.Document.security:type_name -> openapi.v2.SecurityRequirement\n\t52,  // 15: openapi.v2.Document.security_definitions:type_name -> openapi.v2.SecurityDefinitions\n\t56,  // 16: openapi.v2.Document.tags:type_name -> openapi.v2.Tag\n\t10,  // 17: openapi.v2.Document.external_docs:type_name -> openapi.v2.ExternalDocs\n\t20,  // 18: openapi.v2.Document.vendor_extension:type_name -> openapi.v2.NamedAny\n\t20,  // 19: openapi.v2.Examples.additional_properties:type_name -> openapi.v2.NamedAny\n\t20,  // 20: openapi.v2.ExternalDocs.vendor_extension:type_name -> openapi.v2.NamedAny\n\t1,   // 21: openapi.v2.FileSchema.default:type_name -> openapi.v2.Any\n\t10,  // 22: openapi.v2.FileSchema.external_docs:type_name -> openapi.v2.ExternalDocs\n\t1,   // 23: openapi.v2.FileSchema.example:type_name -> openapi.v2.Any\n\t20,  // 24: openapi.v2.FileSchema.vendor_extension:type_name -> openapi.v2.NamedAny\n\t43,  // 25: openapi.v2.FormDataParameterSubSchema.items:type_name -> openapi.v2.PrimitivesItems\n\t1,   // 26: openapi.v2.FormDataParameterSubSchema.default:type_name -> openapi.v2.Any\n\t1,   // 27: openapi.v2.FormDataParameterSubSchema.enum:type_name -> openapi.v2.Any\n\t20,  // 28: openapi.v2.FormDataParameterSubSchema.vendor_extension:type_name -> openapi.v2.NamedAny\n\t43,  // 29: openapi.v2.Header.items:type_name -> openapi.v2.PrimitivesItems\n\t1,   // 30: openapi.v2.Header.default:type_name -> openapi.v2.Any\n\t1,   // 31: openapi.v2.Header.enum:type_name -> openapi.v2.Any\n\t20,  // 32: openapi.v2.Header.vendor_extension:type_name -> openapi.v2.NamedAny\n\t43,  // 33: openapi.v2.HeaderParameterSubSchema.items:type_name -> openapi.v2.PrimitivesItems\n\t1,   // 34: openapi.v2.HeaderParameterSubSchema.default:type_name -> openapi.v2.Any\n\t1,   // 35: openapi.v2.HeaderParameterSubSchema.enum:type_name -> openapi.v2.Any\n\t20,  // 36: openapi.v2.HeaderParameterSubSchema.vendor_extension:type_name -> openapi.v2.NamedAny\n\t21,  // 37: openapi.v2.Headers.additional_properties:type_name -> openapi.v2.NamedHeader\n\t5,   // 38: openapi.v2.Info.contact:type_name -> openapi.v2.Contact\n\t19,  // 39: openapi.v2.Info.license:type_name -> openapi.v2.License\n\t20,  // 40: openapi.v2.Info.vendor_extension:type_name -> openapi.v2.NamedAny\n\t50,  // 41: openapi.v2.ItemsItem.schema:type_name -> openapi.v2.Schema\n\t20,  // 42: openapi.v2.License.vendor_extension:type_name -> openapi.v2.NamedAny\n\t1,   // 43: openapi.v2.NamedAny.value:type_name -> openapi.v2.Any\n\t13,  // 44: openapi.v2.NamedHeader.value:type_name -> openapi.v2.Header\n\t37,  // 45: openapi.v2.NamedParameter.value:type_name -> openapi.v2.Parameter\n\t40,  // 46: openapi.v2.NamedPathItem.value:type_name -> openapi.v2.PathItem\n\t46,  // 47: openapi.v2.NamedResponse.value:type_name -> openapi.v2.Response\n\t48,  // 48: openapi.v2.NamedResponseValue.value:type_name -> openapi.v2.ResponseValue\n\t50,  // 49: openapi.v2.NamedSchema.value:type_name -> openapi.v2.Schema\n\t53,  // 50: openapi.v2.NamedSecurityDefinitionsItem.value:type_name -> openapi.v2.SecurityDefinitionsItem\n\t55,  // 51: openapi.v2.NamedStringArray.value:type_name -> openapi.v2.StringArray\n\t14,  // 52: openapi.v2.NonBodyParameter.header_parameter_sub_schema:type_name -> openapi.v2.HeaderParameterSubSchema\n\t12,  // 53: openapi.v2.NonBodyParameter.form_data_parameter_sub_schema:type_name -> openapi.v2.FormDataParameterSubSchema\n\t45,  // 54: openapi.v2.NonBodyParameter.query_parameter_sub_schema:type_name -> openapi.v2.QueryParameterSubSchema\n\t41,  // 55: openapi.v2.NonBodyParameter.path_parameter_sub_schema:type_name -> openapi.v2.PathParameterSubSchema\n\t35,  // 56: openapi.v2.Oauth2AccessCodeSecurity.scopes:type_name -> openapi.v2.Oauth2Scopes\n\t20,  // 57: openapi.v2.Oauth2AccessCodeSecurity.vendor_extension:type_name -> openapi.v2.NamedAny\n\t35,  // 58: openapi.v2.Oauth2ApplicationSecurity.scopes:type_name -> openapi.v2.Oauth2Scopes\n\t20,  // 59: openapi.v2.Oauth2ApplicationSecurity.vendor_extension:type_name -> openapi.v2.NamedAny\n\t35,  // 60: openapi.v2.Oauth2ImplicitSecurity.scopes:type_name -> openapi.v2.Oauth2Scopes\n\t20,  // 61: openapi.v2.Oauth2ImplicitSecurity.vendor_extension:type_name -> openapi.v2.NamedAny\n\t35,  // 62: openapi.v2.Oauth2PasswordSecurity.scopes:type_name -> openapi.v2.Oauth2Scopes\n\t20,  // 63: openapi.v2.Oauth2PasswordSecurity.vendor_extension:type_name -> openapi.v2.NamedAny\n\t28,  // 64: openapi.v2.Oauth2Scopes.additional_properties:type_name -> openapi.v2.NamedString\n\t10,  // 65: openapi.v2.Operation.external_docs:type_name -> openapi.v2.ExternalDocs\n\t39,  // 66: openapi.v2.Operation.parameters:type_name -> openapi.v2.ParametersItem\n\t49,  // 67: openapi.v2.Operation.responses:type_name -> openapi.v2.Responses\n\t54,  // 68: openapi.v2.Operation.security:type_name -> openapi.v2.SecurityRequirement\n\t20,  // 69: openapi.v2.Operation.vendor_extension:type_name -> openapi.v2.NamedAny\n\t4,   // 70: openapi.v2.Parameter.body_parameter:type_name -> openapi.v2.BodyParameter\n\t30,  // 71: openapi.v2.Parameter.non_body_parameter:type_name -> openapi.v2.NonBodyParameter\n\t22,  // 72: openapi.v2.ParameterDefinitions.additional_properties:type_name -> openapi.v2.NamedParameter\n\t37,  // 73: openapi.v2.ParametersItem.parameter:type_name -> openapi.v2.Parameter\n\t18,  // 74: openapi.v2.ParametersItem.json_reference:type_name -> openapi.v2.JsonReference\n\t36,  // 75: openapi.v2.PathItem.get:type_name -> openapi.v2.Operation\n\t36,  // 76: openapi.v2.PathItem.put:type_name -> openapi.v2.Operation\n\t36,  // 77: openapi.v2.PathItem.post:type_name -> openapi.v2.Operation\n\t36,  // 78: openapi.v2.PathItem.delete:type_name -> openapi.v2.Operation\n\t36,  // 79: openapi.v2.PathItem.options:type_name -> openapi.v2.Operation\n\t36,  // 80: openapi.v2.PathItem.head:type_name -> openapi.v2.Operation\n\t36,  // 81: openapi.v2.PathItem.patch:type_name -> openapi.v2.Operation\n\t39,  // 82: openapi.v2.PathItem.parameters:type_name -> openapi.v2.ParametersItem\n\t20,  // 83: openapi.v2.PathItem.vendor_extension:type_name -> openapi.v2.NamedAny\n\t43,  // 84: openapi.v2.PathParameterSubSchema.items:type_name -> openapi.v2.PrimitivesItems\n\t1,   // 85: openapi.v2.PathParameterSubSchema.default:type_name -> openapi.v2.Any\n\t1,   // 86: openapi.v2.PathParameterSubSchema.enum:type_name -> openapi.v2.Any\n\t20,  // 87: openapi.v2.PathParameterSubSchema.vendor_extension:type_name -> openapi.v2.NamedAny\n\t20,  // 88: openapi.v2.Paths.vendor_extension:type_name -> openapi.v2.NamedAny\n\t23,  // 89: openapi.v2.Paths.path:type_name -> openapi.v2.NamedPathItem\n\t43,  // 90: openapi.v2.PrimitivesItems.items:type_name -> openapi.v2.PrimitivesItems\n\t1,   // 91: openapi.v2.PrimitivesItems.default:type_name -> openapi.v2.Any\n\t1,   // 92: openapi.v2.PrimitivesItems.enum:type_name -> openapi.v2.Any\n\t20,  // 93: openapi.v2.PrimitivesItems.vendor_extension:type_name -> openapi.v2.NamedAny\n\t26,  // 94: openapi.v2.Properties.additional_properties:type_name -> openapi.v2.NamedSchema\n\t43,  // 95: openapi.v2.QueryParameterSubSchema.items:type_name -> openapi.v2.PrimitivesItems\n\t1,   // 96: openapi.v2.QueryParameterSubSchema.default:type_name -> openapi.v2.Any\n\t1,   // 97: openapi.v2.QueryParameterSubSchema.enum:type_name -> openapi.v2.Any\n\t20,  // 98: openapi.v2.QueryParameterSubSchema.vendor_extension:type_name -> openapi.v2.NamedAny\n\t51,  // 99: openapi.v2.Response.schema:type_name -> openapi.v2.SchemaItem\n\t15,  // 100: openapi.v2.Response.headers:type_name -> openapi.v2.Headers\n\t9,   // 101: openapi.v2.Response.examples:type_name -> openapi.v2.Examples\n\t20,  // 102: openapi.v2.Response.vendor_extension:type_name -> openapi.v2.NamedAny\n\t24,  // 103: openapi.v2.ResponseDefinitions.additional_properties:type_name -> openapi.v2.NamedResponse\n\t46,  // 104: openapi.v2.ResponseValue.response:type_name -> openapi.v2.Response\n\t18,  // 105: openapi.v2.ResponseValue.json_reference:type_name -> openapi.v2.JsonReference\n\t25,  // 106: openapi.v2.Responses.response_code:type_name -> openapi.v2.NamedResponseValue\n\t20,  // 107: openapi.v2.Responses.vendor_extension:type_name -> openapi.v2.NamedAny\n\t1,   // 108: openapi.v2.Schema.default:type_name -> openapi.v2.Any\n\t1,   // 109: openapi.v2.Schema.enum:type_name -> openapi.v2.Any\n\t0,   // 110: openapi.v2.Schema.additional_properties:type_name -> openapi.v2.AdditionalPropertiesItem\n\t57,  // 111: openapi.v2.Schema.type:type_name -> openapi.v2.TypeItem\n\t17,  // 112: openapi.v2.Schema.items:type_name -> openapi.v2.ItemsItem\n\t50,  // 113: openapi.v2.Schema.all_of:type_name -> openapi.v2.Schema\n\t44,  // 114: openapi.v2.Schema.properties:type_name -> openapi.v2.Properties\n\t59,  // 115: openapi.v2.Schema.xml:type_name -> openapi.v2.Xml\n\t10,  // 116: openapi.v2.Schema.external_docs:type_name -> openapi.v2.ExternalDocs\n\t1,   // 117: openapi.v2.Schema.example:type_name -> openapi.v2.Any\n\t20,  // 118: openapi.v2.Schema.vendor_extension:type_name -> openapi.v2.NamedAny\n\t50,  // 119: openapi.v2.SchemaItem.schema:type_name -> openapi.v2.Schema\n\t11,  // 120: openapi.v2.SchemaItem.file_schema:type_name -> openapi.v2.FileSchema\n\t27,  // 121: openapi.v2.SecurityDefinitions.additional_properties:type_name -> openapi.v2.NamedSecurityDefinitionsItem\n\t3,   // 122: openapi.v2.SecurityDefinitionsItem.basic_authentication_security:type_name -> openapi.v2.BasicAuthenticationSecurity\n\t2,   // 123: openapi.v2.SecurityDefinitionsItem.api_key_security:type_name -> openapi.v2.ApiKeySecurity\n\t33,  // 124: openapi.v2.SecurityDefinitionsItem.oauth2_implicit_security:type_name -> openapi.v2.Oauth2ImplicitSecurity\n\t34,  // 125: openapi.v2.SecurityDefinitionsItem.oauth2_password_security:type_name -> openapi.v2.Oauth2PasswordSecurity\n\t32,  // 126: openapi.v2.SecurityDefinitionsItem.oauth2_application_security:type_name -> openapi.v2.Oauth2ApplicationSecurity\n\t31,  // 127: openapi.v2.SecurityDefinitionsItem.oauth2_access_code_security:type_name -> openapi.v2.Oauth2AccessCodeSecurity\n\t29,  // 128: openapi.v2.SecurityRequirement.additional_properties:type_name -> openapi.v2.NamedStringArray\n\t10,  // 129: openapi.v2.Tag.external_docs:type_name -> openapi.v2.ExternalDocs\n\t20,  // 130: openapi.v2.Tag.vendor_extension:type_name -> openapi.v2.NamedAny\n\t20,  // 131: openapi.v2.VendorExtension.additional_properties:type_name -> openapi.v2.NamedAny\n\t20,  // 132: openapi.v2.Xml.vendor_extension:type_name -> openapi.v2.NamedAny\n\t133, // [133:133] is the sub-list for method output_type\n\t133, // [133:133] is the sub-list for method input_type\n\t133, // [133:133] is the sub-list for extension type_name\n\t133, // [133:133] is the sub-list for extension extendee\n\t0,   // [0:133] is the sub-list for field type_name\n}\n\nfunc init() { file_openapiv2_OpenAPIv2_proto_init() }\nfunc file_openapiv2_OpenAPIv2_proto_init() {\n\tif File_openapiv2_OpenAPIv2_proto != nil {\n\t\treturn\n\t}\n\tif !protoimpl.UnsafeEnabled {\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*AdditionalPropertiesItem); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Any); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*ApiKeySecurity); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*BasicAuthenticationSecurity); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*BodyParameter); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Contact); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Default); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Definitions); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Document); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Examples); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*ExternalDocs); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*FileSchema); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*FormDataParameterSubSchema); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Header); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*HeaderParameterSubSchema); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Headers); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Info); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*ItemsItem); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*JsonReference); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*License); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedAny); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedHeader); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedParameter); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedPathItem); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedResponse); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedResponseValue); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedSchema); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedSecurityDefinitionsItem); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedString); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedStringArray); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NonBodyParameter); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Oauth2AccessCodeSecurity); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Oauth2ApplicationSecurity); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Oauth2ImplicitSecurity); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Oauth2PasswordSecurity); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Oauth2Scopes); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Operation); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Parameter); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*ParameterDefinitions); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*ParametersItem); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*PathItem); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*PathParameterSubSchema); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Paths); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*PrimitivesItems); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Properties); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*QueryParameterSubSchema); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Response); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*ResponseDefinitions); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*ResponseValue); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Responses); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Schema); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*SchemaItem); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*SecurityDefinitions); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*SecurityDefinitionsItem); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*SecurityRequirement); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*StringArray); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Tag); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*TypeItem); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*VendorExtension); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv2_OpenAPIv2_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Xml); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t}\n\tfile_openapiv2_OpenAPIv2_proto_msgTypes[0].OneofWrappers = []interface{}{\n\t\t(*AdditionalPropertiesItem_Schema)(nil),\n\t\t(*AdditionalPropertiesItem_Boolean)(nil),\n\t}\n\tfile_openapiv2_OpenAPIv2_proto_msgTypes[30].OneofWrappers = []interface{}{\n\t\t(*NonBodyParameter_HeaderParameterSubSchema)(nil),\n\t\t(*NonBodyParameter_FormDataParameterSubSchema)(nil),\n\t\t(*NonBodyParameter_QueryParameterSubSchema)(nil),\n\t\t(*NonBodyParameter_PathParameterSubSchema)(nil),\n\t}\n\tfile_openapiv2_OpenAPIv2_proto_msgTypes[37].OneofWrappers = []interface{}{\n\t\t(*Parameter_BodyParameter)(nil),\n\t\t(*Parameter_NonBodyParameter)(nil),\n\t}\n\tfile_openapiv2_OpenAPIv2_proto_msgTypes[39].OneofWrappers = []interface{}{\n\t\t(*ParametersItem_Parameter)(nil),\n\t\t(*ParametersItem_JsonReference)(nil),\n\t}\n\tfile_openapiv2_OpenAPIv2_proto_msgTypes[48].OneofWrappers = []interface{}{\n\t\t(*ResponseValue_Response)(nil),\n\t\t(*ResponseValue_JsonReference)(nil),\n\t}\n\tfile_openapiv2_OpenAPIv2_proto_msgTypes[51].OneofWrappers = []interface{}{\n\t\t(*SchemaItem_Schema)(nil),\n\t\t(*SchemaItem_FileSchema)(nil),\n\t}\n\tfile_openapiv2_OpenAPIv2_proto_msgTypes[53].OneofWrappers = []interface{}{\n\t\t(*SecurityDefinitionsItem_BasicAuthenticationSecurity)(nil),\n\t\t(*SecurityDefinitionsItem_ApiKeySecurity)(nil),\n\t\t(*SecurityDefinitionsItem_Oauth2ImplicitSecurity)(nil),\n\t\t(*SecurityDefinitionsItem_Oauth2PasswordSecurity)(nil),\n\t\t(*SecurityDefinitionsItem_Oauth2ApplicationSecurity)(nil),\n\t\t(*SecurityDefinitionsItem_Oauth2AccessCodeSecurity)(nil),\n\t}\n\ttype x struct{}\n\tout := protoimpl.TypeBuilder{\n\t\tFile: protoimpl.DescBuilder{\n\t\t\tGoPackagePath: reflect.TypeOf(x{}).PkgPath(),\n\t\t\tRawDescriptor: file_openapiv2_OpenAPIv2_proto_rawDesc,\n\t\t\tNumEnums:      0,\n\t\t\tNumMessages:   60,\n\t\t\tNumExtensions: 0,\n\t\t\tNumServices:   0,\n\t\t},\n\t\tGoTypes:           file_openapiv2_OpenAPIv2_proto_goTypes,\n\t\tDependencyIndexes: file_openapiv2_OpenAPIv2_proto_depIdxs,\n\t\tMessageInfos:      file_openapiv2_OpenAPIv2_proto_msgTypes,\n\t}.Build()\n\tFile_openapiv2_OpenAPIv2_proto = out.File\n\tfile_openapiv2_OpenAPIv2_proto_rawDesc = nil\n\tfile_openapiv2_OpenAPIv2_proto_goTypes = nil\n\tfile_openapiv2_OpenAPIv2_proto_depIdxs = nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/gnostic-models/openapiv2/OpenAPIv2.proto",
    "content": "// Copyright 2020 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// THIS FILE IS AUTOMATICALLY GENERATED.\n\nsyntax = \"proto3\";\n\npackage openapi.v2;\n\nimport \"google/protobuf/any.proto\";\n\n// This option lets the proto compiler generate Java code inside the package\n// name (see below) instead of inside an outer class. It creates a simpler\n// developer experience by reducing one-level of name nesting and be\n// consistent with most programming languages that don't support outer classes.\noption java_multiple_files = true;\n\n// The Java outer classname should be the filename in UpperCamelCase. This\n// class is only used to hold proto descriptor, so developers don't need to\n// work with it directly.\noption java_outer_classname = \"OpenAPIProto\";\n\n// The Java package name must be proto package name with proper prefix.\noption java_package = \"org.openapi_v2\";\n\n// A reasonable prefix for the Objective-C symbols generated from the package.\n// It should at a minimum be 3 characters long, all uppercase, and convention\n// is to use an abbreviation of the package name. Something short, but\n// hopefully unique enough to not conflict with things that may come along in\n// the future. 'GPB' is reserved for the protocol buffer implementation itself.\noption objc_class_prefix = \"OAS\";\n\n// The Go package name.\noption go_package = \"./openapiv2;openapi_v2\";\n\nmessage AdditionalPropertiesItem {\n  oneof oneof {\n    Schema schema = 1;\n    bool boolean = 2;\n  }\n}\n\nmessage Any {\n  google.protobuf.Any value = 1;\n  string yaml = 2;\n}\n\nmessage ApiKeySecurity {\n  string type = 1;\n  string name = 2;\n  string in = 3;\n  string description = 4;\n  repeated NamedAny vendor_extension = 5;\n}\n\nmessage BasicAuthenticationSecurity {\n  string type = 1;\n  string description = 2;\n  repeated NamedAny vendor_extension = 3;\n}\n\nmessage BodyParameter {\n  // A brief description of the parameter. This could contain examples of use.  GitHub Flavored Markdown is allowed.\n  string description = 1;\n  // The name of the parameter.\n  string name = 2;\n  // Determines the location of the parameter.\n  string in = 3;\n  // Determines whether or not this parameter is required or optional.\n  bool required = 4;\n  Schema schema = 5;\n  repeated NamedAny vendor_extension = 6;\n}\n\n// Contact information for the owners of the API.\nmessage Contact {\n  // The identifying name of the contact person/organization.\n  string name = 1;\n  // The URL pointing to the contact information.\n  string url = 2;\n  // The email address of the contact person/organization.\n  string email = 3;\n  repeated NamedAny vendor_extension = 4;\n}\n\nmessage Default {\n  repeated NamedAny additional_properties = 1;\n}\n\n// One or more JSON objects describing the schemas being consumed and produced by the API.\nmessage Definitions {\n  repeated NamedSchema additional_properties = 1;\n}\n\nmessage Document {\n  // The Swagger version of this document.\n  string swagger = 1;\n  Info info = 2;\n  // The host (name or ip) of the API. Example: 'swagger.io'\n  string host = 3;\n  // The base path to the API. Example: '/api'.\n  string base_path = 4;\n  // The transfer protocol of the API.\n  repeated string schemes = 5;\n  // A list of MIME types accepted by the API.\n  repeated string consumes = 6;\n  // A list of MIME types the API can produce.\n  repeated string produces = 7;\n  Paths paths = 8;\n  Definitions definitions = 9;\n  ParameterDefinitions parameters = 10;\n  ResponseDefinitions responses = 11;\n  repeated SecurityRequirement security = 12;\n  SecurityDefinitions security_definitions = 13;\n  repeated Tag tags = 14;\n  ExternalDocs external_docs = 15;\n  repeated NamedAny vendor_extension = 16;\n}\n\nmessage Examples {\n  repeated NamedAny additional_properties = 1;\n}\n\n// information about external documentation\nmessage ExternalDocs {\n  string description = 1;\n  string url = 2;\n  repeated NamedAny vendor_extension = 3;\n}\n\n// A deterministic version of a JSON Schema object.\nmessage FileSchema {\n  string format = 1;\n  string title = 2;\n  string description = 3;\n  Any default = 4;\n  repeated string required = 5;\n  string type = 6;\n  bool read_only = 7;\n  ExternalDocs external_docs = 8;\n  Any example = 9;\n  repeated NamedAny vendor_extension = 10;\n}\n\nmessage FormDataParameterSubSchema {\n  // Determines whether or not this parameter is required or optional.\n  bool required = 1;\n  // Determines the location of the parameter.\n  string in = 2;\n  // A brief description of the parameter. This could contain examples of use.  GitHub Flavored Markdown is allowed.\n  string description = 3;\n  // The name of the parameter.\n  string name = 4;\n  // allows sending a parameter by name only or with an empty value.\n  bool allow_empty_value = 5;\n  string type = 6;\n  string format = 7;\n  PrimitivesItems items = 8;\n  string collection_format = 9;\n  Any default = 10;\n  double maximum = 11;\n  bool exclusive_maximum = 12;\n  double minimum = 13;\n  bool exclusive_minimum = 14;\n  int64 max_length = 15;\n  int64 min_length = 16;\n  string pattern = 17;\n  int64 max_items = 18;\n  int64 min_items = 19;\n  bool unique_items = 20;\n  repeated Any enum = 21;\n  double multiple_of = 22;\n  repeated NamedAny vendor_extension = 23;\n}\n\nmessage Header {\n  string type = 1;\n  string format = 2;\n  PrimitivesItems items = 3;\n  string collection_format = 4;\n  Any default = 5;\n  double maximum = 6;\n  bool exclusive_maximum = 7;\n  double minimum = 8;\n  bool exclusive_minimum = 9;\n  int64 max_length = 10;\n  int64 min_length = 11;\n  string pattern = 12;\n  int64 max_items = 13;\n  int64 min_items = 14;\n  bool unique_items = 15;\n  repeated Any enum = 16;\n  double multiple_of = 17;\n  string description = 18;\n  repeated NamedAny vendor_extension = 19;\n}\n\nmessage HeaderParameterSubSchema {\n  // Determines whether or not this parameter is required or optional.\n  bool required = 1;\n  // Determines the location of the parameter.\n  string in = 2;\n  // A brief description of the parameter. This could contain examples of use.  GitHub Flavored Markdown is allowed.\n  string description = 3;\n  // The name of the parameter.\n  string name = 4;\n  string type = 5;\n  string format = 6;\n  PrimitivesItems items = 7;\n  string collection_format = 8;\n  Any default = 9;\n  double maximum = 10;\n  bool exclusive_maximum = 11;\n  double minimum = 12;\n  bool exclusive_minimum = 13;\n  int64 max_length = 14;\n  int64 min_length = 15;\n  string pattern = 16;\n  int64 max_items = 17;\n  int64 min_items = 18;\n  bool unique_items = 19;\n  repeated Any enum = 20;\n  double multiple_of = 21;\n  repeated NamedAny vendor_extension = 22;\n}\n\nmessage Headers {\n  repeated NamedHeader additional_properties = 1;\n}\n\n// General information about the API.\nmessage Info {\n  // A unique and precise title of the API.\n  string title = 1;\n  // A semantic version number of the API.\n  string version = 2;\n  // A longer description of the API. Should be different from the title.  GitHub Flavored Markdown is allowed.\n  string description = 3;\n  // The terms of service for the API.\n  string terms_of_service = 4;\n  Contact contact = 5;\n  License license = 6;\n  repeated NamedAny vendor_extension = 7;\n}\n\nmessage ItemsItem {\n  repeated Schema schema = 1;\n}\n\nmessage JsonReference {\n  string _ref = 1;\n  string description = 2;\n}\n\nmessage License {\n  // The name of the license type. It's encouraged to use an OSI compatible license.\n  string name = 1;\n  // The URL pointing to the license.\n  string url = 2;\n  repeated NamedAny vendor_extension = 3;\n}\n\n// Automatically-generated message used to represent maps of Any as ordered (name,value) pairs.\nmessage NamedAny {\n  // Map key\n  string name = 1;\n  // Mapped value\n  Any value = 2;\n}\n\n// Automatically-generated message used to represent maps of Header as ordered (name,value) pairs.\nmessage NamedHeader {\n  // Map key\n  string name = 1;\n  // Mapped value\n  Header value = 2;\n}\n\n// Automatically-generated message used to represent maps of Parameter as ordered (name,value) pairs.\nmessage NamedParameter {\n  // Map key\n  string name = 1;\n  // Mapped value\n  Parameter value = 2;\n}\n\n// Automatically-generated message used to represent maps of PathItem as ordered (name,value) pairs.\nmessage NamedPathItem {\n  // Map key\n  string name = 1;\n  // Mapped value\n  PathItem value = 2;\n}\n\n// Automatically-generated message used to represent maps of Response as ordered (name,value) pairs.\nmessage NamedResponse {\n  // Map key\n  string name = 1;\n  // Mapped value\n  Response value = 2;\n}\n\n// Automatically-generated message used to represent maps of ResponseValue as ordered (name,value) pairs.\nmessage NamedResponseValue {\n  // Map key\n  string name = 1;\n  // Mapped value\n  ResponseValue value = 2;\n}\n\n// Automatically-generated message used to represent maps of Schema as ordered (name,value) pairs.\nmessage NamedSchema {\n  // Map key\n  string name = 1;\n  // Mapped value\n  Schema value = 2;\n}\n\n// Automatically-generated message used to represent maps of SecurityDefinitionsItem as ordered (name,value) pairs.\nmessage NamedSecurityDefinitionsItem {\n  // Map key\n  string name = 1;\n  // Mapped value\n  SecurityDefinitionsItem value = 2;\n}\n\n// Automatically-generated message used to represent maps of string as ordered (name,value) pairs.\nmessage NamedString {\n  // Map key\n  string name = 1;\n  // Mapped value\n  string value = 2;\n}\n\n// Automatically-generated message used to represent maps of StringArray as ordered (name,value) pairs.\nmessage NamedStringArray {\n  // Map key\n  string name = 1;\n  // Mapped value\n  StringArray value = 2;\n}\n\nmessage NonBodyParameter {\n  oneof oneof {\n    HeaderParameterSubSchema header_parameter_sub_schema = 1;\n    FormDataParameterSubSchema form_data_parameter_sub_schema = 2;\n    QueryParameterSubSchema query_parameter_sub_schema = 3;\n    PathParameterSubSchema path_parameter_sub_schema = 4;\n  }\n}\n\nmessage Oauth2AccessCodeSecurity {\n  string type = 1;\n  string flow = 2;\n  Oauth2Scopes scopes = 3;\n  string authorization_url = 4;\n  string token_url = 5;\n  string description = 6;\n  repeated NamedAny vendor_extension = 7;\n}\n\nmessage Oauth2ApplicationSecurity {\n  string type = 1;\n  string flow = 2;\n  Oauth2Scopes scopes = 3;\n  string token_url = 4;\n  string description = 5;\n  repeated NamedAny vendor_extension = 6;\n}\n\nmessage Oauth2ImplicitSecurity {\n  string type = 1;\n  string flow = 2;\n  Oauth2Scopes scopes = 3;\n  string authorization_url = 4;\n  string description = 5;\n  repeated NamedAny vendor_extension = 6;\n}\n\nmessage Oauth2PasswordSecurity {\n  string type = 1;\n  string flow = 2;\n  Oauth2Scopes scopes = 3;\n  string token_url = 4;\n  string description = 5;\n  repeated NamedAny vendor_extension = 6;\n}\n\nmessage Oauth2Scopes {\n  repeated NamedString additional_properties = 1;\n}\n\nmessage Operation {\n  repeated string tags = 1;\n  // A brief summary of the operation.\n  string summary = 2;\n  // A longer description of the operation, GitHub Flavored Markdown is allowed.\n  string description = 3;\n  ExternalDocs external_docs = 4;\n  // A unique identifier of the operation.\n  string operation_id = 5;\n  // A list of MIME types the API can produce.\n  repeated string produces = 6;\n  // A list of MIME types the API can consume.\n  repeated string consumes = 7;\n  // The parameters needed to send a valid API call.\n  repeated ParametersItem parameters = 8;\n  Responses responses = 9;\n  // The transfer protocol of the API.\n  repeated string schemes = 10;\n  bool deprecated = 11;\n  repeated SecurityRequirement security = 12;\n  repeated NamedAny vendor_extension = 13;\n}\n\nmessage Parameter {\n  oneof oneof {\n    BodyParameter body_parameter = 1;\n    NonBodyParameter non_body_parameter = 2;\n  }\n}\n\n// One or more JSON representations for parameters\nmessage ParameterDefinitions {\n  repeated NamedParameter additional_properties = 1;\n}\n\nmessage ParametersItem {\n  oneof oneof {\n    Parameter parameter = 1;\n    JsonReference json_reference = 2;\n  }\n}\n\nmessage PathItem {\n  string _ref = 1;\n  Operation get = 2;\n  Operation put = 3;\n  Operation post = 4;\n  Operation delete = 5;\n  Operation options = 6;\n  Operation head = 7;\n  Operation patch = 8;\n  // The parameters needed to send a valid API call.\n  repeated ParametersItem parameters = 9;\n  repeated NamedAny vendor_extension = 10;\n}\n\nmessage PathParameterSubSchema {\n  // Determines whether or not this parameter is required or optional.\n  bool required = 1;\n  // Determines the location of the parameter.\n  string in = 2;\n  // A brief description of the parameter. This could contain examples of use.  GitHub Flavored Markdown is allowed.\n  string description = 3;\n  // The name of the parameter.\n  string name = 4;\n  string type = 5;\n  string format = 6;\n  PrimitivesItems items = 7;\n  string collection_format = 8;\n  Any default = 9;\n  double maximum = 10;\n  bool exclusive_maximum = 11;\n  double minimum = 12;\n  bool exclusive_minimum = 13;\n  int64 max_length = 14;\n  int64 min_length = 15;\n  string pattern = 16;\n  int64 max_items = 17;\n  int64 min_items = 18;\n  bool unique_items = 19;\n  repeated Any enum = 20;\n  double multiple_of = 21;\n  repeated NamedAny vendor_extension = 22;\n}\n\n// Relative paths to the individual endpoints. They must be relative to the 'basePath'.\nmessage Paths {\n  repeated NamedAny vendor_extension = 1;\n  repeated NamedPathItem path = 2;\n}\n\nmessage PrimitivesItems {\n  string type = 1;\n  string format = 2;\n  PrimitivesItems items = 3;\n  string collection_format = 4;\n  Any default = 5;\n  double maximum = 6;\n  bool exclusive_maximum = 7;\n  double minimum = 8;\n  bool exclusive_minimum = 9;\n  int64 max_length = 10;\n  int64 min_length = 11;\n  string pattern = 12;\n  int64 max_items = 13;\n  int64 min_items = 14;\n  bool unique_items = 15;\n  repeated Any enum = 16;\n  double multiple_of = 17;\n  repeated NamedAny vendor_extension = 18;\n}\n\nmessage Properties {\n  repeated NamedSchema additional_properties = 1;\n}\n\nmessage QueryParameterSubSchema {\n  // Determines whether or not this parameter is required or optional.\n  bool required = 1;\n  // Determines the location of the parameter.\n  string in = 2;\n  // A brief description of the parameter. This could contain examples of use.  GitHub Flavored Markdown is allowed.\n  string description = 3;\n  // The name of the parameter.\n  string name = 4;\n  // allows sending a parameter by name only or with an empty value.\n  bool allow_empty_value = 5;\n  string type = 6;\n  string format = 7;\n  PrimitivesItems items = 8;\n  string collection_format = 9;\n  Any default = 10;\n  double maximum = 11;\n  bool exclusive_maximum = 12;\n  double minimum = 13;\n  bool exclusive_minimum = 14;\n  int64 max_length = 15;\n  int64 min_length = 16;\n  string pattern = 17;\n  int64 max_items = 18;\n  int64 min_items = 19;\n  bool unique_items = 20;\n  repeated Any enum = 21;\n  double multiple_of = 22;\n  repeated NamedAny vendor_extension = 23;\n}\n\nmessage Response {\n  string description = 1;\n  SchemaItem schema = 2;\n  Headers headers = 3;\n  Examples examples = 4;\n  repeated NamedAny vendor_extension = 5;\n}\n\n// One or more JSON representations for responses\nmessage ResponseDefinitions {\n  repeated NamedResponse additional_properties = 1;\n}\n\nmessage ResponseValue {\n  oneof oneof {\n    Response response = 1;\n    JsonReference json_reference = 2;\n  }\n}\n\n// Response objects names can either be any valid HTTP status code or 'default'.\nmessage Responses {\n  repeated NamedResponseValue response_code = 1;\n  repeated NamedAny vendor_extension = 2;\n}\n\n// A deterministic version of a JSON Schema object.\nmessage Schema {\n  string _ref = 1;\n  string format = 2;\n  string title = 3;\n  string description = 4;\n  Any default = 5;\n  double multiple_of = 6;\n  double maximum = 7;\n  bool exclusive_maximum = 8;\n  double minimum = 9;\n  bool exclusive_minimum = 10;\n  int64 max_length = 11;\n  int64 min_length = 12;\n  string pattern = 13;\n  int64 max_items = 14;\n  int64 min_items = 15;\n  bool unique_items = 16;\n  int64 max_properties = 17;\n  int64 min_properties = 18;\n  repeated string required = 19;\n  repeated Any enum = 20;\n  AdditionalPropertiesItem additional_properties = 21;\n  TypeItem type = 22;\n  ItemsItem items = 23;\n  repeated Schema all_of = 24;\n  Properties properties = 25;\n  string discriminator = 26;\n  bool read_only = 27;\n  Xml xml = 28;\n  ExternalDocs external_docs = 29;\n  Any example = 30;\n  repeated NamedAny vendor_extension = 31;\n}\n\nmessage SchemaItem {\n  oneof oneof {\n    Schema schema = 1;\n    FileSchema file_schema = 2;\n  }\n}\n\nmessage SecurityDefinitions {\n  repeated NamedSecurityDefinitionsItem additional_properties = 1;\n}\n\nmessage SecurityDefinitionsItem {\n  oneof oneof {\n    BasicAuthenticationSecurity basic_authentication_security = 1;\n    ApiKeySecurity api_key_security = 2;\n    Oauth2ImplicitSecurity oauth2_implicit_security = 3;\n    Oauth2PasswordSecurity oauth2_password_security = 4;\n    Oauth2ApplicationSecurity oauth2_application_security = 5;\n    Oauth2AccessCodeSecurity oauth2_access_code_security = 6;\n  }\n}\n\nmessage SecurityRequirement {\n  repeated NamedStringArray additional_properties = 1;\n}\n\nmessage StringArray {\n  repeated string value = 1;\n}\n\nmessage Tag {\n  string name = 1;\n  string description = 2;\n  ExternalDocs external_docs = 3;\n  repeated NamedAny vendor_extension = 4;\n}\n\nmessage TypeItem {\n  repeated string value = 1;\n}\n\n// Any property starting with x- is valid.\nmessage VendorExtension {\n  repeated NamedAny additional_properties = 1;\n}\n\nmessage Xml {\n  string name = 1;\n  string namespace = 2;\n  string prefix = 3;\n  bool attribute = 4;\n  bool wrapped = 5;\n  repeated NamedAny vendor_extension = 6;\n}\n\n"
  },
  {
    "path": "vendor/github.com/google/gnostic-models/openapiv2/README.md",
    "content": "# OpenAPI v2 Protocol Buffer Models\n\nThis directory contains a Protocol Buffer-language model and related code for\nsupporting OpenAPI v2.\n\nGnostic applications and plugins can use OpenAPIv2.proto to generate Protocol\nBuffer support code for their preferred languages.\n\nOpenAPIv2.go is used by Gnostic to read JSON and YAML OpenAPI descriptions into\nthe Protocol Buffer-based datastructures generated from OpenAPIv2.proto.\n\nOpenAPIv2.proto and OpenAPIv2.go are generated by the Gnostic compiler\ngenerator, and OpenAPIv2.pb.go is generated by protoc, the Protocol Buffer\ncompiler, and protoc-gen-go, the Protocol Buffer Go code generation plugin.\n"
  },
  {
    "path": "vendor/github.com/google/gnostic-models/openapiv2/document.go",
    "content": "// Copyright 2020 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage openapi_v2\n\nimport (\n\t\"gopkg.in/yaml.v3\"\n\n\t\"github.com/google/gnostic-models/compiler\"\n)\n\n// ParseDocument reads an OpenAPI v2 description from a YAML/JSON representation.\nfunc ParseDocument(b []byte) (*Document, error) {\n\tinfo, err := compiler.ReadInfoFromBytes(\"\", b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\troot := info.Content[0]\n\treturn NewDocument(root, compiler.NewContextWithExtensions(\"$root\", root, nil, nil))\n}\n\n// YAMLValue produces a serialized YAML representation of the document.\nfunc (d *Document) YAMLValue(comment string) ([]byte, error) {\n\trawInfo := d.ToRawInfo()\n\trawInfo = &yaml.Node{\n\t\tKind:        yaml.DocumentNode,\n\t\tContent:     []*yaml.Node{rawInfo},\n\t\tHeadComment: comment,\n\t}\n\treturn yaml.Marshal(rawInfo)\n}\n"
  },
  {
    "path": "vendor/github.com/google/gnostic-models/openapiv2/openapi-2.0.json",
    "content": "{\n  \"title\": \"A JSON Schema for Swagger 2.0 API.\",\n  \"id\": \"http://swagger.io/v2/schema.json#\",\n  \"$schema\": \"http://json-schema.org/draft-04/schema#\",\n  \"type\": \"object\",\n  \"required\": [\n    \"swagger\",\n    \"info\",\n    \"paths\"\n  ],\n  \"additionalProperties\": false,\n  \"patternProperties\": {\n    \"^x-\": {\n      \"$ref\": \"#/definitions/vendorExtension\"\n    }\n  },\n  \"properties\": {\n    \"swagger\": {\n      \"type\": \"string\",\n      \"enum\": [\n        \"2.0\"\n      ],\n      \"description\": \"The Swagger version of this document.\"\n    },\n    \"info\": {\n      \"$ref\": \"#/definitions/info\"\n    },\n    \"host\": {\n      \"type\": \"string\",\n      \"pattern\": \"^[^{}/ :\\\\\\\\]+(?::\\\\d+)?$\",\n      \"description\": \"The host (name or ip) of the API. Example: 'swagger.io'\"\n    },\n    \"basePath\": {\n      \"type\": \"string\",\n      \"pattern\": \"^/\",\n      \"description\": \"The base path to the API. Example: '/api'.\"\n    },\n    \"schemes\": {\n      \"$ref\": \"#/definitions/schemesList\"\n    },\n    \"consumes\": {\n      \"description\": \"A list of MIME types accepted by the API.\",\n      \"allOf\": [\n        {\n          \"$ref\": \"#/definitions/mediaTypeList\"\n        }\n      ]\n    },\n    \"produces\": {\n      \"description\": \"A list of MIME types the API can produce.\",\n      \"allOf\": [\n        {\n          \"$ref\": \"#/definitions/mediaTypeList\"\n        }\n      ]\n    },\n    \"paths\": {\n      \"$ref\": \"#/definitions/paths\"\n    },\n    \"definitions\": {\n      \"$ref\": \"#/definitions/definitions\"\n    },\n    \"parameters\": {\n      \"$ref\": \"#/definitions/parameterDefinitions\"\n    },\n    \"responses\": {\n      \"$ref\": \"#/definitions/responseDefinitions\"\n    },\n    \"security\": {\n      \"$ref\": \"#/definitions/security\"\n    },\n    \"securityDefinitions\": {\n      \"$ref\": \"#/definitions/securityDefinitions\"\n    },\n    \"tags\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"$ref\": \"#/definitions/tag\"\n      },\n      \"uniqueItems\": true\n    },\n    \"externalDocs\": {\n      \"$ref\": \"#/definitions/externalDocs\"\n    }\n  },\n  \"definitions\": {\n    \"info\": {\n      \"type\": \"object\",\n      \"description\": \"General information about the API.\",\n      \"required\": [\n        \"version\",\n        \"title\"\n      ],\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      },\n      \"properties\": {\n        \"title\": {\n          \"type\": \"string\",\n          \"description\": \"A unique and precise title of the API.\"\n        },\n        \"version\": {\n          \"type\": \"string\",\n          \"description\": \"A semantic version number of the API.\"\n        },\n        \"description\": {\n          \"type\": \"string\",\n          \"description\": \"A longer description of the API. Should be different from the title.  GitHub Flavored Markdown is allowed.\"\n        },\n        \"termsOfService\": {\n          \"type\": \"string\",\n          \"description\": \"The terms of service for the API.\"\n        },\n        \"contact\": {\n          \"$ref\": \"#/definitions/contact\"\n        },\n        \"license\": {\n          \"$ref\": \"#/definitions/license\"\n        }\n      }\n    },\n    \"contact\": {\n      \"type\": \"object\",\n      \"description\": \"Contact information for the owners of the API.\",\n      \"additionalProperties\": false,\n      \"properties\": {\n        \"name\": {\n          \"type\": \"string\",\n          \"description\": \"The identifying name of the contact person/organization.\"\n        },\n        \"url\": {\n          \"type\": \"string\",\n          \"description\": \"The URL pointing to the contact information.\",\n          \"format\": \"uri\"\n        },\n        \"email\": {\n          \"type\": \"string\",\n          \"description\": \"The email address of the contact person/organization.\",\n          \"format\": \"email\"\n        }\n      },\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      }\n    },\n    \"license\": {\n      \"type\": \"object\",\n      \"required\": [\n        \"name\"\n      ],\n      \"additionalProperties\": false,\n      \"properties\": {\n        \"name\": {\n          \"type\": \"string\",\n          \"description\": \"The name of the license type. It's encouraged to use an OSI compatible license.\"\n        },\n        \"url\": {\n          \"type\": \"string\",\n          \"description\": \"The URL pointing to the license.\",\n          \"format\": \"uri\"\n        }\n      },\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      }\n    },\n    \"paths\": {\n      \"type\": \"object\",\n      \"description\": \"Relative paths to the individual endpoints. They must be relative to the 'basePath'.\",\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        },\n        \"^/\": {\n          \"$ref\": \"#/definitions/pathItem\"\n        }\n      },\n      \"additionalProperties\": false\n    },\n    \"definitions\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"$ref\": \"#/definitions/schema\"\n      },\n      \"description\": \"One or more JSON objects describing the schemas being consumed and produced by the API.\"\n    },\n    \"parameterDefinitions\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"$ref\": \"#/definitions/parameter\"\n      },\n      \"description\": \"One or more JSON representations for parameters\"\n    },\n    \"responseDefinitions\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"$ref\": \"#/definitions/response\"\n      },\n      \"description\": \"One or more JSON representations for responses\"\n    },\n    \"externalDocs\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"description\": \"information about external documentation\",\n      \"required\": [\n        \"url\"\n      ],\n      \"properties\": {\n        \"description\": {\n          \"type\": \"string\"\n        },\n        \"url\": {\n          \"type\": \"string\",\n          \"format\": \"uri\"\n        }\n      },\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      }\n    },\n    \"examples\": {\n      \"type\": \"object\",\n      \"additionalProperties\": true\n    },\n    \"mimeType\": {\n      \"type\": \"string\",\n      \"description\": \"The MIME type of the HTTP message.\"\n    },\n    \"operation\": {\n      \"type\": \"object\",\n      \"required\": [\n        \"responses\"\n      ],\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      },\n      \"properties\": {\n        \"tags\": {\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"string\"\n          },\n          \"uniqueItems\": true\n        },\n        \"summary\": {\n          \"type\": \"string\",\n          \"description\": \"A brief summary of the operation.\"\n        },\n        \"description\": {\n          \"type\": \"string\",\n          \"description\": \"A longer description of the operation, GitHub Flavored Markdown is allowed.\"\n        },\n        \"externalDocs\": {\n          \"$ref\": \"#/definitions/externalDocs\"\n        },\n        \"operationId\": {\n          \"type\": \"string\",\n          \"description\": \"A unique identifier of the operation.\"\n        },\n        \"produces\": {\n          \"description\": \"A list of MIME types the API can produce.\",\n          \"allOf\": [\n            {\n              \"$ref\": \"#/definitions/mediaTypeList\"\n            }\n          ]\n        },\n        \"consumes\": {\n          \"description\": \"A list of MIME types the API can consume.\",\n          \"allOf\": [\n            {\n              \"$ref\": \"#/definitions/mediaTypeList\"\n            }\n          ]\n        },\n        \"parameters\": {\n          \"$ref\": \"#/definitions/parametersList\"\n        },\n        \"responses\": {\n          \"$ref\": \"#/definitions/responses\"\n        },\n        \"schemes\": {\n          \"$ref\": \"#/definitions/schemesList\"\n        },\n        \"deprecated\": {\n          \"type\": \"boolean\",\n          \"default\": false\n        },\n        \"security\": {\n          \"$ref\": \"#/definitions/security\"\n        }\n      }\n    },\n    \"pathItem\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      },\n      \"properties\": {\n        \"$ref\": {\n          \"type\": \"string\"\n        },\n        \"get\": {\n          \"$ref\": \"#/definitions/operation\"\n        },\n        \"put\": {\n          \"$ref\": \"#/definitions/operation\"\n        },\n        \"post\": {\n          \"$ref\": \"#/definitions/operation\"\n        },\n        \"delete\": {\n          \"$ref\": \"#/definitions/operation\"\n        },\n        \"options\": {\n          \"$ref\": \"#/definitions/operation\"\n        },\n        \"head\": {\n          \"$ref\": \"#/definitions/operation\"\n        },\n        \"patch\": {\n          \"$ref\": \"#/definitions/operation\"\n        },\n        \"parameters\": {\n          \"$ref\": \"#/definitions/parametersList\"\n        }\n      }\n    },\n    \"responses\": {\n      \"type\": \"object\",\n      \"description\": \"Response objects names can either be any valid HTTP status code or 'default'.\",\n      \"minProperties\": 1,\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^([0-9]{3})$|^(default)$\": {\n          \"$ref\": \"#/definitions/responseValue\"\n        },\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      },\n      \"not\": {\n        \"type\": \"object\",\n        \"additionalProperties\": false,\n        \"patternProperties\": {\n          \"^x-\": {\n            \"$ref\": \"#/definitions/vendorExtension\"\n          }\n        }\n      }\n    },\n    \"responseValue\": {\n      \"oneOf\": [\n        {\n          \"$ref\": \"#/definitions/response\"\n        },\n        {\n          \"$ref\": \"#/definitions/jsonReference\"\n        }\n      ]\n    },\n    \"response\": {\n      \"type\": \"object\",\n      \"required\": [\n        \"description\"\n      ],\n      \"properties\": {\n        \"description\": {\n          \"type\": \"string\"\n        },\n        \"schema\": {\n          \"oneOf\": [\n            {\n              \"$ref\": \"#/definitions/schema\"\n            },\n            {\n              \"$ref\": \"#/definitions/fileSchema\"\n            }\n          ]\n        },\n        \"headers\": {\n          \"$ref\": \"#/definitions/headers\"\n        },\n        \"examples\": {\n          \"$ref\": \"#/definitions/examples\"\n        }\n      },\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      }\n    },\n    \"headers\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"$ref\": \"#/definitions/header\"\n      }\n    },\n    \"header\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"type\"\n      ],\n      \"properties\": {\n        \"type\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"string\",\n            \"number\",\n            \"integer\",\n            \"boolean\",\n            \"array\"\n          ]\n        },\n        \"format\": {\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"$ref\": \"#/definitions/primitivesItems\"\n        },\n        \"collectionFormat\": {\n          \"$ref\": \"#/definitions/collectionFormat\"\n        },\n        \"default\": {\n          \"$ref\": \"#/definitions/default\"\n        },\n        \"maximum\": {\n          \"$ref\": \"#/definitions/maximum\"\n        },\n        \"exclusiveMaximum\": {\n          \"$ref\": \"#/definitions/exclusiveMaximum\"\n        },\n        \"minimum\": {\n          \"$ref\": \"#/definitions/minimum\"\n        },\n        \"exclusiveMinimum\": {\n          \"$ref\": \"#/definitions/exclusiveMinimum\"\n        },\n        \"maxLength\": {\n          \"$ref\": \"#/definitions/maxLength\"\n        },\n        \"minLength\": {\n          \"$ref\": \"#/definitions/minLength\"\n        },\n        \"pattern\": {\n          \"$ref\": \"#/definitions/pattern\"\n        },\n        \"maxItems\": {\n          \"$ref\": \"#/definitions/maxItems\"\n        },\n        \"minItems\": {\n          \"$ref\": \"#/definitions/minItems\"\n        },\n        \"uniqueItems\": {\n          \"$ref\": \"#/definitions/uniqueItems\"\n        },\n        \"enum\": {\n          \"$ref\": \"#/definitions/enum\"\n        },\n        \"multipleOf\": {\n          \"$ref\": \"#/definitions/multipleOf\"\n        },\n        \"description\": {\n          \"type\": \"string\"\n        }\n      },\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      }\n    },\n    \"vendorExtension\": {\n      \"description\": \"Any property starting with x- is valid.\",\n      \"additionalProperties\": true,\n      \"additionalItems\": true\n    },\n    \"bodyParameter\": {\n      \"type\": \"object\",\n      \"required\": [\n        \"name\",\n        \"in\",\n        \"schema\"\n      ],\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      },\n      \"properties\": {\n        \"description\": {\n          \"type\": \"string\",\n          \"description\": \"A brief description of the parameter. This could contain examples of use.  GitHub Flavored Markdown is allowed.\"\n        },\n        \"name\": {\n          \"type\": \"string\",\n          \"description\": \"The name of the parameter.\"\n        },\n        \"in\": {\n          \"type\": \"string\",\n          \"description\": \"Determines the location of the parameter.\",\n          \"enum\": [\n            \"body\"\n          ]\n        },\n        \"required\": {\n          \"type\": \"boolean\",\n          \"description\": \"Determines whether or not this parameter is required or optional.\",\n          \"default\": false\n        },\n        \"schema\": {\n          \"$ref\": \"#/definitions/schema\"\n        }\n      },\n      \"additionalProperties\": false\n    },\n    \"headerParameterSubSchema\": {\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      },\n      \"properties\": {\n        \"required\": {\n          \"type\": \"boolean\",\n          \"description\": \"Determines whether or not this parameter is required or optional.\",\n          \"default\": false\n        },\n        \"in\": {\n          \"type\": \"string\",\n          \"description\": \"Determines the location of the parameter.\",\n          \"enum\": [\n            \"header\"\n          ]\n        },\n        \"description\": {\n          \"type\": \"string\",\n          \"description\": \"A brief description of the parameter. This could contain examples of use.  GitHub Flavored Markdown is allowed.\"\n        },\n        \"name\": {\n          \"type\": \"string\",\n          \"description\": \"The name of the parameter.\"\n        },\n        \"type\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"string\",\n            \"number\",\n            \"boolean\",\n            \"integer\",\n            \"array\"\n          ]\n        },\n        \"format\": {\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"$ref\": \"#/definitions/primitivesItems\"\n        },\n        \"collectionFormat\": {\n          \"$ref\": \"#/definitions/collectionFormat\"\n        },\n        \"default\": {\n          \"$ref\": \"#/definitions/default\"\n        },\n        \"maximum\": {\n          \"$ref\": \"#/definitions/maximum\"\n        },\n        \"exclusiveMaximum\": {\n          \"$ref\": \"#/definitions/exclusiveMaximum\"\n        },\n        \"minimum\": {\n          \"$ref\": \"#/definitions/minimum\"\n        },\n        \"exclusiveMinimum\": {\n          \"$ref\": \"#/definitions/exclusiveMinimum\"\n        },\n        \"maxLength\": {\n          \"$ref\": \"#/definitions/maxLength\"\n        },\n        \"minLength\": {\n          \"$ref\": \"#/definitions/minLength\"\n        },\n        \"pattern\": {\n          \"$ref\": \"#/definitions/pattern\"\n        },\n        \"maxItems\": {\n          \"$ref\": \"#/definitions/maxItems\"\n        },\n        \"minItems\": {\n          \"$ref\": \"#/definitions/minItems\"\n        },\n        \"uniqueItems\": {\n          \"$ref\": \"#/definitions/uniqueItems\"\n        },\n        \"enum\": {\n          \"$ref\": \"#/definitions/enum\"\n        },\n        \"multipleOf\": {\n          \"$ref\": \"#/definitions/multipleOf\"\n        }\n      }\n    },\n    \"queryParameterSubSchema\": {\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      },\n      \"properties\": {\n        \"required\": {\n          \"type\": \"boolean\",\n          \"description\": \"Determines whether or not this parameter is required or optional.\",\n          \"default\": false\n        },\n        \"in\": {\n          \"type\": \"string\",\n          \"description\": \"Determines the location of the parameter.\",\n          \"enum\": [\n            \"query\"\n          ]\n        },\n        \"description\": {\n          \"type\": \"string\",\n          \"description\": \"A brief description of the parameter. This could contain examples of use.  GitHub Flavored Markdown is allowed.\"\n        },\n        \"name\": {\n          \"type\": \"string\",\n          \"description\": \"The name of the parameter.\"\n        },\n        \"allowEmptyValue\": {\n          \"type\": \"boolean\",\n          \"default\": false,\n          \"description\": \"allows sending a parameter by name only or with an empty value.\"\n        },\n        \"type\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"string\",\n            \"number\",\n            \"boolean\",\n            \"integer\",\n            \"array\"\n          ]\n        },\n        \"format\": {\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"$ref\": \"#/definitions/primitivesItems\"\n        },\n        \"collectionFormat\": {\n          \"$ref\": \"#/definitions/collectionFormatWithMulti\"\n        },\n        \"default\": {\n          \"$ref\": \"#/definitions/default\"\n        },\n        \"maximum\": {\n          \"$ref\": \"#/definitions/maximum\"\n        },\n        \"exclusiveMaximum\": {\n          \"$ref\": \"#/definitions/exclusiveMaximum\"\n        },\n        \"minimum\": {\n          \"$ref\": \"#/definitions/minimum\"\n        },\n        \"exclusiveMinimum\": {\n          \"$ref\": \"#/definitions/exclusiveMinimum\"\n        },\n        \"maxLength\": {\n          \"$ref\": \"#/definitions/maxLength\"\n        },\n        \"minLength\": {\n          \"$ref\": \"#/definitions/minLength\"\n        },\n        \"pattern\": {\n          \"$ref\": \"#/definitions/pattern\"\n        },\n        \"maxItems\": {\n          \"$ref\": \"#/definitions/maxItems\"\n        },\n        \"minItems\": {\n          \"$ref\": \"#/definitions/minItems\"\n        },\n        \"uniqueItems\": {\n          \"$ref\": \"#/definitions/uniqueItems\"\n        },\n        \"enum\": {\n          \"$ref\": \"#/definitions/enum\"\n        },\n        \"multipleOf\": {\n          \"$ref\": \"#/definitions/multipleOf\"\n        }\n      }\n    },\n    \"formDataParameterSubSchema\": {\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      },\n      \"properties\": {\n        \"required\": {\n          \"type\": \"boolean\",\n          \"description\": \"Determines whether or not this parameter is required or optional.\",\n          \"default\": false\n        },\n        \"in\": {\n          \"type\": \"string\",\n          \"description\": \"Determines the location of the parameter.\",\n          \"enum\": [\n            \"formData\"\n          ]\n        },\n        \"description\": {\n          \"type\": \"string\",\n          \"description\": \"A brief description of the parameter. This could contain examples of use.  GitHub Flavored Markdown is allowed.\"\n        },\n        \"name\": {\n          \"type\": \"string\",\n          \"description\": \"The name of the parameter.\"\n        },\n        \"allowEmptyValue\": {\n          \"type\": \"boolean\",\n          \"default\": false,\n          \"description\": \"allows sending a parameter by name only or with an empty value.\"\n        },\n        \"type\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"string\",\n            \"number\",\n            \"boolean\",\n            \"integer\",\n            \"array\",\n            \"file\"\n          ]\n        },\n        \"format\": {\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"$ref\": \"#/definitions/primitivesItems\"\n        },\n        \"collectionFormat\": {\n          \"$ref\": \"#/definitions/collectionFormatWithMulti\"\n        },\n        \"default\": {\n          \"$ref\": \"#/definitions/default\"\n        },\n        \"maximum\": {\n          \"$ref\": \"#/definitions/maximum\"\n        },\n        \"exclusiveMaximum\": {\n          \"$ref\": \"#/definitions/exclusiveMaximum\"\n        },\n        \"minimum\": {\n          \"$ref\": \"#/definitions/minimum\"\n        },\n        \"exclusiveMinimum\": {\n          \"$ref\": \"#/definitions/exclusiveMinimum\"\n        },\n        \"maxLength\": {\n          \"$ref\": \"#/definitions/maxLength\"\n        },\n        \"minLength\": {\n          \"$ref\": \"#/definitions/minLength\"\n        },\n        \"pattern\": {\n          \"$ref\": \"#/definitions/pattern\"\n        },\n        \"maxItems\": {\n          \"$ref\": \"#/definitions/maxItems\"\n        },\n        \"minItems\": {\n          \"$ref\": \"#/definitions/minItems\"\n        },\n        \"uniqueItems\": {\n          \"$ref\": \"#/definitions/uniqueItems\"\n        },\n        \"enum\": {\n          \"$ref\": \"#/definitions/enum\"\n        },\n        \"multipleOf\": {\n          \"$ref\": \"#/definitions/multipleOf\"\n        }\n      }\n    },\n    \"pathParameterSubSchema\": {\n      \"additionalProperties\": false,\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      },\n      \"required\": [\n        \"required\"\n      ],\n      \"properties\": {\n        \"required\": {\n          \"type\": \"boolean\",\n          \"enum\": [\n            true\n          ],\n          \"description\": \"Determines whether or not this parameter is required or optional.\"\n        },\n        \"in\": {\n          \"type\": \"string\",\n          \"description\": \"Determines the location of the parameter.\",\n          \"enum\": [\n            \"path\"\n          ]\n        },\n        \"description\": {\n          \"type\": \"string\",\n          \"description\": \"A brief description of the parameter. This could contain examples of use.  GitHub Flavored Markdown is allowed.\"\n        },\n        \"name\": {\n          \"type\": \"string\",\n          \"description\": \"The name of the parameter.\"\n        },\n        \"type\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"string\",\n            \"number\",\n            \"boolean\",\n            \"integer\",\n            \"array\"\n          ]\n        },\n        \"format\": {\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"$ref\": \"#/definitions/primitivesItems\"\n        },\n        \"collectionFormat\": {\n          \"$ref\": \"#/definitions/collectionFormat\"\n        },\n        \"default\": {\n          \"$ref\": \"#/definitions/default\"\n        },\n        \"maximum\": {\n          \"$ref\": \"#/definitions/maximum\"\n        },\n        \"exclusiveMaximum\": {\n          \"$ref\": \"#/definitions/exclusiveMaximum\"\n        },\n        \"minimum\": {\n          \"$ref\": \"#/definitions/minimum\"\n        },\n        \"exclusiveMinimum\": {\n          \"$ref\": \"#/definitions/exclusiveMinimum\"\n        },\n        \"maxLength\": {\n          \"$ref\": \"#/definitions/maxLength\"\n        },\n        \"minLength\": {\n          \"$ref\": \"#/definitions/minLength\"\n        },\n        \"pattern\": {\n          \"$ref\": \"#/definitions/pattern\"\n        },\n        \"maxItems\": {\n          \"$ref\": \"#/definitions/maxItems\"\n        },\n        \"minItems\": {\n          \"$ref\": \"#/definitions/minItems\"\n        },\n        \"uniqueItems\": {\n          \"$ref\": \"#/definitions/uniqueItems\"\n        },\n        \"enum\": {\n          \"$ref\": \"#/definitions/enum\"\n        },\n        \"multipleOf\": {\n          \"$ref\": \"#/definitions/multipleOf\"\n        }\n      }\n    },\n    \"nonBodyParameter\": {\n      \"type\": \"object\",\n      \"required\": [\n        \"name\",\n        \"in\",\n        \"type\"\n      ],\n      \"oneOf\": [\n        {\n          \"$ref\": \"#/definitions/headerParameterSubSchema\"\n        },\n        {\n          \"$ref\": \"#/definitions/formDataParameterSubSchema\"\n        },\n        {\n          \"$ref\": \"#/definitions/queryParameterSubSchema\"\n        },\n        {\n          \"$ref\": \"#/definitions/pathParameterSubSchema\"\n        }\n      ]\n    },\n    \"parameter\": {\n      \"oneOf\": [\n        {\n          \"$ref\": \"#/definitions/bodyParameter\"\n        },\n        {\n          \"$ref\": \"#/definitions/nonBodyParameter\"\n        }\n      ]\n    },\n    \"schema\": {\n      \"type\": \"object\",\n      \"description\": \"A deterministic version of a JSON Schema object.\",\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      },\n      \"properties\": {\n        \"$ref\": {\n          \"type\": \"string\"\n        },\n        \"format\": {\n          \"type\": \"string\"\n        },\n        \"title\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/title\"\n        },\n        \"description\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/description\"\n        },\n        \"default\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/default\"\n        },\n        \"multipleOf\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/multipleOf\"\n        },\n        \"maximum\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/maximum\"\n        },\n        \"exclusiveMaximum\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/exclusiveMaximum\"\n        },\n        \"minimum\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/minimum\"\n        },\n        \"exclusiveMinimum\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/exclusiveMinimum\"\n        },\n        \"maxLength\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/definitions/positiveInteger\"\n        },\n        \"minLength\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0\"\n        },\n        \"pattern\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/pattern\"\n        },\n        \"maxItems\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/definitions/positiveInteger\"\n        },\n        \"minItems\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0\"\n        },\n        \"uniqueItems\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/uniqueItems\"\n        },\n        \"maxProperties\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/definitions/positiveInteger\"\n        },\n        \"minProperties\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0\"\n        },\n        \"required\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/definitions/stringArray\"\n        },\n        \"enum\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/enum\"\n        },\n        \"additionalProperties\": {\n          \"oneOf\": [\n            {\n              \"$ref\": \"#/definitions/schema\"\n            },\n            {\n              \"type\": \"boolean\"\n            }\n          ],\n          \"default\": {}\n        },\n        \"type\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/type\"\n        },\n        \"items\": {\n          \"anyOf\": [\n            {\n              \"$ref\": \"#/definitions/schema\"\n            },\n            {\n              \"type\": \"array\",\n              \"minItems\": 1,\n              \"items\": {\n                \"$ref\": \"#/definitions/schema\"\n              }\n            }\n          ],\n          \"default\": {}\n        },\n        \"allOf\": {\n          \"type\": \"array\",\n          \"minItems\": 1,\n          \"items\": {\n            \"$ref\": \"#/definitions/schema\"\n          }\n        },\n        \"properties\": {\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"$ref\": \"#/definitions/schema\"\n          },\n          \"default\": {}\n        },\n        \"discriminator\": {\n          \"type\": \"string\"\n        },\n        \"readOnly\": {\n          \"type\": \"boolean\",\n          \"default\": false\n        },\n        \"xml\": {\n          \"$ref\": \"#/definitions/xml\"\n        },\n        \"externalDocs\": {\n          \"$ref\": \"#/definitions/externalDocs\"\n        },\n        \"example\": {}\n      },\n      \"additionalProperties\": false\n    },\n    \"fileSchema\": {\n      \"type\": \"object\",\n      \"description\": \"A deterministic version of a JSON Schema object.\",\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      },\n      \"required\": [\n        \"type\"\n      ],\n      \"properties\": {\n        \"format\": {\n          \"type\": \"string\"\n        },\n        \"title\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/title\"\n        },\n        \"description\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/description\"\n        },\n        \"default\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/default\"\n        },\n        \"required\": {\n          \"$ref\": \"http://json-schema.org/draft-04/schema#/definitions/stringArray\"\n        },\n        \"type\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"file\"\n          ]\n        },\n        \"readOnly\": {\n          \"type\": \"boolean\",\n          \"default\": false\n        },\n        \"externalDocs\": {\n          \"$ref\": \"#/definitions/externalDocs\"\n        },\n        \"example\": {}\n      },\n      \"additionalProperties\": false\n    },\n    \"primitivesItems\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"properties\": {\n        \"type\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"string\",\n            \"number\",\n            \"integer\",\n            \"boolean\",\n            \"array\"\n          ]\n        },\n        \"format\": {\n          \"type\": \"string\"\n        },\n        \"items\": {\n          \"$ref\": \"#/definitions/primitivesItems\"\n        },\n        \"collectionFormat\": {\n          \"$ref\": \"#/definitions/collectionFormat\"\n        },\n        \"default\": {\n          \"$ref\": \"#/definitions/default\"\n        },\n        \"maximum\": {\n          \"$ref\": \"#/definitions/maximum\"\n        },\n        \"exclusiveMaximum\": {\n          \"$ref\": \"#/definitions/exclusiveMaximum\"\n        },\n        \"minimum\": {\n          \"$ref\": \"#/definitions/minimum\"\n        },\n        \"exclusiveMinimum\": {\n          \"$ref\": \"#/definitions/exclusiveMinimum\"\n        },\n        \"maxLength\": {\n          \"$ref\": \"#/definitions/maxLength\"\n        },\n        \"minLength\": {\n          \"$ref\": \"#/definitions/minLength\"\n        },\n        \"pattern\": {\n          \"$ref\": \"#/definitions/pattern\"\n        },\n        \"maxItems\": {\n          \"$ref\": \"#/definitions/maxItems\"\n        },\n        \"minItems\": {\n          \"$ref\": \"#/definitions/minItems\"\n        },\n        \"uniqueItems\": {\n          \"$ref\": \"#/definitions/uniqueItems\"\n        },\n        \"enum\": {\n          \"$ref\": \"#/definitions/enum\"\n        },\n        \"multipleOf\": {\n          \"$ref\": \"#/definitions/multipleOf\"\n        }\n      },\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      }\n    },\n    \"security\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"$ref\": \"#/definitions/securityRequirement\"\n      },\n      \"uniqueItems\": true\n    },\n    \"securityRequirement\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"type\": \"array\",\n        \"items\": {\n          \"type\": \"string\"\n        },\n        \"uniqueItems\": true\n      }\n    },\n    \"xml\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"properties\": {\n        \"name\": {\n          \"type\": \"string\"\n        },\n        \"namespace\": {\n          \"type\": \"string\"\n        },\n        \"prefix\": {\n          \"type\": \"string\"\n        },\n        \"attribute\": {\n          \"type\": \"boolean\",\n          \"default\": false\n        },\n        \"wrapped\": {\n          \"type\": \"boolean\",\n          \"default\": false\n        }\n      },\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      }\n    },\n    \"tag\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"name\"\n      ],\n      \"properties\": {\n        \"name\": {\n          \"type\": \"string\"\n        },\n        \"description\": {\n          \"type\": \"string\"\n        },\n        \"externalDocs\": {\n          \"$ref\": \"#/definitions/externalDocs\"\n        }\n      },\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      }\n    },\n    \"securityDefinitions\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"oneOf\": [\n          {\n            \"$ref\": \"#/definitions/basicAuthenticationSecurity\"\n          },\n          {\n            \"$ref\": \"#/definitions/apiKeySecurity\"\n          },\n          {\n            \"$ref\": \"#/definitions/oauth2ImplicitSecurity\"\n          },\n          {\n            \"$ref\": \"#/definitions/oauth2PasswordSecurity\"\n          },\n          {\n            \"$ref\": \"#/definitions/oauth2ApplicationSecurity\"\n          },\n          {\n            \"$ref\": \"#/definitions/oauth2AccessCodeSecurity\"\n          }\n        ]\n      }\n    },\n    \"basicAuthenticationSecurity\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"type\"\n      ],\n      \"properties\": {\n        \"type\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"basic\"\n          ]\n        },\n        \"description\": {\n          \"type\": \"string\"\n        }\n      },\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      }\n    },\n    \"apiKeySecurity\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"type\",\n        \"name\",\n        \"in\"\n      ],\n      \"properties\": {\n        \"type\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"apiKey\"\n          ]\n        },\n        \"name\": {\n          \"type\": \"string\"\n        },\n        \"in\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"header\",\n            \"query\"\n          ]\n        },\n        \"description\": {\n          \"type\": \"string\"\n        }\n      },\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      }\n    },\n    \"oauth2ImplicitSecurity\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"type\",\n        \"flow\",\n        \"authorizationUrl\"\n      ],\n      \"properties\": {\n        \"type\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"oauth2\"\n          ]\n        },\n        \"flow\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"implicit\"\n          ]\n        },\n        \"scopes\": {\n          \"$ref\": \"#/definitions/oauth2Scopes\"\n        },\n        \"authorizationUrl\": {\n          \"type\": \"string\",\n          \"format\": \"uri\"\n        },\n        \"description\": {\n          \"type\": \"string\"\n        }\n      },\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      }\n    },\n    \"oauth2PasswordSecurity\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"type\",\n        \"flow\",\n        \"tokenUrl\"\n      ],\n      \"properties\": {\n        \"type\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"oauth2\"\n          ]\n        },\n        \"flow\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"password\"\n          ]\n        },\n        \"scopes\": {\n          \"$ref\": \"#/definitions/oauth2Scopes\"\n        },\n        \"tokenUrl\": {\n          \"type\": \"string\",\n          \"format\": \"uri\"\n        },\n        \"description\": {\n          \"type\": \"string\"\n        }\n      },\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      }\n    },\n    \"oauth2ApplicationSecurity\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"type\",\n        \"flow\",\n        \"tokenUrl\"\n      ],\n      \"properties\": {\n        \"type\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"oauth2\"\n          ]\n        },\n        \"flow\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"application\"\n          ]\n        },\n        \"scopes\": {\n          \"$ref\": \"#/definitions/oauth2Scopes\"\n        },\n        \"tokenUrl\": {\n          \"type\": \"string\",\n          \"format\": \"uri\"\n        },\n        \"description\": {\n          \"type\": \"string\"\n        }\n      },\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      }\n    },\n    \"oauth2AccessCodeSecurity\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"type\",\n        \"flow\",\n        \"authorizationUrl\",\n        \"tokenUrl\"\n      ],\n      \"properties\": {\n        \"type\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"oauth2\"\n          ]\n        },\n        \"flow\": {\n          \"type\": \"string\",\n          \"enum\": [\n            \"accessCode\"\n          ]\n        },\n        \"scopes\": {\n          \"$ref\": \"#/definitions/oauth2Scopes\"\n        },\n        \"authorizationUrl\": {\n          \"type\": \"string\",\n          \"format\": \"uri\"\n        },\n        \"tokenUrl\": {\n          \"type\": \"string\",\n          \"format\": \"uri\"\n        },\n        \"description\": {\n          \"type\": \"string\"\n        }\n      },\n      \"patternProperties\": {\n        \"^x-\": {\n          \"$ref\": \"#/definitions/vendorExtension\"\n        }\n      }\n    },\n    \"oauth2Scopes\": {\n      \"type\": \"object\",\n      \"additionalProperties\": {\n        \"type\": \"string\"\n      }\n    },\n    \"mediaTypeList\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"$ref\": \"#/definitions/mimeType\"\n      },\n      \"uniqueItems\": true\n    },\n    \"parametersList\": {\n      \"type\": \"array\",\n      \"description\": \"The parameters needed to send a valid API call.\",\n      \"additionalItems\": false,\n      \"items\": {\n        \"oneOf\": [\n          {\n            \"$ref\": \"#/definitions/parameter\"\n          },\n          {\n            \"$ref\": \"#/definitions/jsonReference\"\n          }\n        ]\n      },\n      \"uniqueItems\": true\n    },\n    \"schemesList\": {\n      \"type\": \"array\",\n      \"description\": \"The transfer protocol of the API.\",\n      \"items\": {\n        \"type\": \"string\",\n        \"enum\": [\n          \"http\",\n          \"https\",\n          \"ws\",\n          \"wss\"\n        ]\n      },\n      \"uniqueItems\": true\n    },\n    \"collectionFormat\": {\n      \"type\": \"string\",\n      \"enum\": [\n        \"csv\",\n        \"ssv\",\n        \"tsv\",\n        \"pipes\"\n      ],\n      \"default\": \"csv\"\n    },\n    \"collectionFormatWithMulti\": {\n      \"type\": \"string\",\n      \"enum\": [\n        \"csv\",\n        \"ssv\",\n        \"tsv\",\n        \"pipes\",\n        \"multi\"\n      ],\n      \"default\": \"csv\"\n    },\n    \"title\": {\n      \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/title\"\n    },\n    \"description\": {\n      \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/description\"\n    },\n    \"default\": {\n      \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/default\"\n    },\n    \"multipleOf\": {\n      \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/multipleOf\"\n    },\n    \"maximum\": {\n      \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/maximum\"\n    },\n    \"exclusiveMaximum\": {\n      \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/exclusiveMaximum\"\n    },\n    \"minimum\": {\n      \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/minimum\"\n    },\n    \"exclusiveMinimum\": {\n      \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/exclusiveMinimum\"\n    },\n    \"maxLength\": {\n      \"$ref\": \"http://json-schema.org/draft-04/schema#/definitions/positiveInteger\"\n    },\n    \"minLength\": {\n      \"$ref\": \"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0\"\n    },\n    \"pattern\": {\n      \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/pattern\"\n    },\n    \"maxItems\": {\n      \"$ref\": \"http://json-schema.org/draft-04/schema#/definitions/positiveInteger\"\n    },\n    \"minItems\": {\n      \"$ref\": \"http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0\"\n    },\n    \"uniqueItems\": {\n      \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/uniqueItems\"\n    },\n    \"enum\": {\n      \"$ref\": \"http://json-schema.org/draft-04/schema#/properties/enum\"\n    },\n    \"jsonReference\": {\n      \"type\": \"object\",\n      \"required\": [\n        \"$ref\"\n      ],\n      \"additionalProperties\": false,\n      \"properties\": {\n        \"$ref\": {\n          \"type\": \"string\"\n        },\n        \"description\": {\n          \"type\": \"string\"\n        }\n      }\n    }\n  }\n}"
  },
  {
    "path": "vendor/github.com/google/gnostic-models/openapiv3/OpenAPIv3.go",
    "content": "// Copyright 2020 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// THIS FILE IS AUTOMATICALLY GENERATED.\n\npackage openapi_v3\n\nimport (\n\t\"fmt\"\n\t\"regexp\"\n\t\"strings\"\n\n\t\"gopkg.in/yaml.v3\"\n\n\t\"github.com/google/gnostic-models/compiler\"\n)\n\n// Version returns the package name (and OpenAPI version).\nfunc Version() string {\n\treturn \"openapi_v3\"\n}\n\n// NewAdditionalPropertiesItem creates an object of type AdditionalPropertiesItem if possible, returning an error if not.\nfunc NewAdditionalPropertiesItem(in *yaml.Node, context *compiler.Context) (*AdditionalPropertiesItem, error) {\n\terrors := make([]error, 0)\n\tx := &AdditionalPropertiesItem{}\n\tmatched := false\n\t// SchemaOrReference schema_or_reference = 1;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewSchemaOrReference(m, compiler.NewContext(\"schemaOrReference\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &AdditionalPropertiesItem_SchemaOrReference{SchemaOrReference: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\t// bool boolean = 2;\n\tboolValue, ok := compiler.BoolForScalarNode(in)\n\tif ok {\n\t\tx.Oneof = &AdditionalPropertiesItem_Boolean{Boolean: boolValue}\n\t\tmatched = true\n\t}\n\tif matched {\n\t\t// since the oneof matched one of its possibilities, discard any matching errors\n\t\terrors = make([]error, 0)\n\t} else {\n\t\tmessage := fmt.Sprintf(\"contains an invalid AdditionalPropertiesItem\")\n\t\terr := compiler.NewError(context, message)\n\t\terrors = []error{err}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewAny creates an object of type Any if possible, returning an error if not.\nfunc NewAny(in *yaml.Node, context *compiler.Context) (*Any, error) {\n\terrors := make([]error, 0)\n\tx := &Any{}\n\tbytes := compiler.Marshal(in)\n\tx.Yaml = string(bytes)\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewAnyOrExpression creates an object of type AnyOrExpression if possible, returning an error if not.\nfunc NewAnyOrExpression(in *yaml.Node, context *compiler.Context) (*AnyOrExpression, error) {\n\terrors := make([]error, 0)\n\tx := &AnyOrExpression{}\n\tmatched := false\n\t// Any any = 1;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewAny(m, compiler.NewContext(\"any\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &AnyOrExpression_Any{Any: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\t// Expression expression = 2;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewExpression(m, compiler.NewContext(\"expression\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &AnyOrExpression_Expression{Expression: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\tif matched {\n\t\t// since the oneof matched one of its possibilities, discard any matching errors\n\t\terrors = make([]error, 0)\n\t} else {\n\t\tmessage := fmt.Sprintf(\"contains an invalid AnyOrExpression\")\n\t\terr := compiler.NewError(context, message)\n\t\terrors = []error{err}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewCallback creates an object of type Callback if possible, returning an error if not.\nfunc NewCallback(in *yaml.Node, context *compiler.Context) (*Callback, error) {\n\terrors := make([]error, 0)\n\tx := &Callback{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{}\n\t\tallowedPatterns := []*regexp.Regexp{pattern0, pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// repeated NamedPathItem path = 1;\n\t\t// MAP: PathItem ^\n\t\tx.Path = make([]*NamedPathItem, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif true {\n\t\t\t\t\tpair := &NamedPathItem{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tvar err error\n\t\t\t\t\tpair.Value, err = NewPathItem(v, compiler.NewContext(k, v, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Path = append(x.Path, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 2;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewCallbackOrReference creates an object of type CallbackOrReference if possible, returning an error if not.\nfunc NewCallbackOrReference(in *yaml.Node, context *compiler.Context) (*CallbackOrReference, error) {\n\terrors := make([]error, 0)\n\tx := &CallbackOrReference{}\n\tmatched := false\n\t// Callback callback = 1;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewCallback(m, compiler.NewContext(\"callback\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &CallbackOrReference_Callback{Callback: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\t// Reference reference = 2;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewReference(m, compiler.NewContext(\"reference\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &CallbackOrReference_Reference{Reference: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\tif matched {\n\t\t// since the oneof matched one of its possibilities, discard any matching errors\n\t\terrors = make([]error, 0)\n\t} else {\n\t\tmessage := fmt.Sprintf(\"contains an invalid CallbackOrReference\")\n\t\terr := compiler.NewError(context, message)\n\t\terrors = []error{err}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewCallbacksOrReferences creates an object of type CallbacksOrReferences if possible, returning an error if not.\nfunc NewCallbacksOrReferences(in *yaml.Node, context *compiler.Context) (*CallbacksOrReferences, error) {\n\terrors := make([]error, 0)\n\tx := &CallbacksOrReferences{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedCallbackOrReference additional_properties = 1;\n\t\t// MAP: CallbackOrReference\n\t\tx.AdditionalProperties = make([]*NamedCallbackOrReference, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedCallbackOrReference{}\n\t\t\t\tpair.Name = k\n\t\t\t\tvar err error\n\t\t\t\tpair.Value, err = NewCallbackOrReference(v, compiler.NewContext(k, v, context))\n\t\t\t\tif err != nil {\n\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewComponents creates an object of type Components if possible, returning an error if not.\nfunc NewComponents(in *yaml.Node, context *compiler.Context) (*Components, error) {\n\terrors := make([]error, 0)\n\tx := &Components{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"callbacks\", \"examples\", \"headers\", \"links\", \"parameters\", \"requestBodies\", \"responses\", \"schemas\", \"securitySchemes\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// SchemasOrReferences schemas = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"schemas\")\n\t\tif v1 != nil {\n\t\t\tvar err error\n\t\t\tx.Schemas, err = NewSchemasOrReferences(v1, compiler.NewContext(\"schemas\", v1, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// ResponsesOrReferences responses = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"responses\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Responses, err = NewResponsesOrReferences(v2, compiler.NewContext(\"responses\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// ParametersOrReferences parameters = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"parameters\")\n\t\tif v3 != nil {\n\t\t\tvar err error\n\t\t\tx.Parameters, err = NewParametersOrReferences(v3, compiler.NewContext(\"parameters\", v3, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// ExamplesOrReferences examples = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"examples\")\n\t\tif v4 != nil {\n\t\t\tvar err error\n\t\t\tx.Examples, err = NewExamplesOrReferences(v4, compiler.NewContext(\"examples\", v4, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// RequestBodiesOrReferences request_bodies = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"requestBodies\")\n\t\tif v5 != nil {\n\t\t\tvar err error\n\t\t\tx.RequestBodies, err = NewRequestBodiesOrReferences(v5, compiler.NewContext(\"requestBodies\", v5, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// HeadersOrReferences headers = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"headers\")\n\t\tif v6 != nil {\n\t\t\tvar err error\n\t\t\tx.Headers, err = NewHeadersOrReferences(v6, compiler.NewContext(\"headers\", v6, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// SecuritySchemesOrReferences security_schemes = 7;\n\t\tv7 := compiler.MapValueForKey(m, \"securitySchemes\")\n\t\tif v7 != nil {\n\t\t\tvar err error\n\t\t\tx.SecuritySchemes, err = NewSecuritySchemesOrReferences(v7, compiler.NewContext(\"securitySchemes\", v7, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// LinksOrReferences links = 8;\n\t\tv8 := compiler.MapValueForKey(m, \"links\")\n\t\tif v8 != nil {\n\t\t\tvar err error\n\t\t\tx.Links, err = NewLinksOrReferences(v8, compiler.NewContext(\"links\", v8, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// CallbacksOrReferences callbacks = 9;\n\t\tv9 := compiler.MapValueForKey(m, \"callbacks\")\n\t\tif v9 != nil {\n\t\t\tvar err error\n\t\t\tx.Callbacks, err = NewCallbacksOrReferences(v9, compiler.NewContext(\"callbacks\", v9, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 10;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewContact creates an object of type Contact if possible, returning an error if not.\nfunc NewContact(in *yaml.Node, context *compiler.Context) (*Contact, error) {\n\terrors := make([]error, 0)\n\tx := &Contact{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"email\", \"name\", \"url\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string url = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"url\")\n\t\tif v2 != nil {\n\t\t\tx.Url, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for url: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string email = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"email\")\n\t\tif v3 != nil {\n\t\t\tx.Email, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for email: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 4;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewDefaultType creates an object of type DefaultType if possible, returning an error if not.\nfunc NewDefaultType(in *yaml.Node, context *compiler.Context) (*DefaultType, error) {\n\terrors := make([]error, 0)\n\tx := &DefaultType{}\n\tmatched := false\n\tswitch in.Tag {\n\tcase \"!!bool\":\n\t\tvar v bool\n\t\tv, matched = compiler.BoolForScalarNode(in)\n\t\tx.Oneof = &DefaultType_Boolean{Boolean: v}\n\tcase \"!!str\":\n\t\tvar v string\n\t\tv, matched = compiler.StringForScalarNode(in)\n\t\tx.Oneof = &DefaultType_String_{String_: v}\n\tcase \"!!float\":\n\t\tvar v float64\n\t\tv, matched = compiler.FloatForScalarNode(in)\n\t\tx.Oneof = &DefaultType_Number{Number: v}\n\tcase \"!!int\":\n\t\tvar v int64\n\t\tv, matched = compiler.IntForScalarNode(in)\n\t\tx.Oneof = &DefaultType_Number{Number: float64(v)}\n\t}\n\tif matched {\n\t\t// since the oneof matched one of its possibilities, discard any matching errors\n\t\terrors = make([]error, 0)\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewDiscriminator creates an object of type Discriminator if possible, returning an error if not.\nfunc NewDiscriminator(in *yaml.Node, context *compiler.Context) (*Discriminator, error) {\n\terrors := make([]error, 0)\n\tx := &Discriminator{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"propertyName\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"mapping\", \"propertyName\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string property_name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"propertyName\")\n\t\tif v1 != nil {\n\t\t\tx.PropertyName, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for propertyName: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Strings mapping = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"mapping\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Mapping, err = NewStrings(v2, compiler.NewContext(\"mapping\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 3;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewDocument creates an object of type Document if possible, returning an error if not.\nfunc NewDocument(in *yaml.Node, context *compiler.Context) (*Document, error) {\n\terrors := make([]error, 0)\n\tx := &Document{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"info\", \"openapi\", \"paths\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"components\", \"externalDocs\", \"info\", \"openapi\", \"paths\", \"security\", \"servers\", \"tags\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string openapi = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"openapi\")\n\t\tif v1 != nil {\n\t\t\tx.Openapi, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for openapi: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Info info = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"info\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Info, err = NewInfo(v2, compiler.NewContext(\"info\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated Server servers = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"servers\")\n\t\tif v3 != nil {\n\t\t\t// repeated Server\n\t\t\tx.Servers = make([]*Server, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v3)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewServer(item, compiler.NewContext(\"servers\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Servers = append(x.Servers, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Paths paths = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"paths\")\n\t\tif v4 != nil {\n\t\t\tvar err error\n\t\t\tx.Paths, err = NewPaths(v4, compiler.NewContext(\"paths\", v4, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Components components = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"components\")\n\t\tif v5 != nil {\n\t\t\tvar err error\n\t\t\tx.Components, err = NewComponents(v5, compiler.NewContext(\"components\", v5, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated SecurityRequirement security = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"security\")\n\t\tif v6 != nil {\n\t\t\t// repeated SecurityRequirement\n\t\t\tx.Security = make([]*SecurityRequirement, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v6)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewSecurityRequirement(item, compiler.NewContext(\"security\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Security = append(x.Security, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// repeated Tag tags = 7;\n\t\tv7 := compiler.MapValueForKey(m, \"tags\")\n\t\tif v7 != nil {\n\t\t\t// repeated Tag\n\t\t\tx.Tags = make([]*Tag, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v7)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewTag(item, compiler.NewContext(\"tags\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Tags = append(x.Tags, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// ExternalDocs external_docs = 8;\n\t\tv8 := compiler.MapValueForKey(m, \"externalDocs\")\n\t\tif v8 != nil {\n\t\t\tvar err error\n\t\t\tx.ExternalDocs, err = NewExternalDocs(v8, compiler.NewContext(\"externalDocs\", v8, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 9;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewEncoding creates an object of type Encoding if possible, returning an error if not.\nfunc NewEncoding(in *yaml.Node, context *compiler.Context) (*Encoding, error) {\n\terrors := make([]error, 0)\n\tx := &Encoding{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"allowReserved\", \"contentType\", \"explode\", \"headers\", \"style\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string content_type = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"contentType\")\n\t\tif v1 != nil {\n\t\t\tx.ContentType, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for contentType: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// HeadersOrReferences headers = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"headers\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Headers, err = NewHeadersOrReferences(v2, compiler.NewContext(\"headers\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// string style = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"style\")\n\t\tif v3 != nil {\n\t\t\tx.Style, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for style: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool explode = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"explode\")\n\t\tif v4 != nil {\n\t\t\tx.Explode, ok = compiler.BoolForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for explode: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool allow_reserved = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"allowReserved\")\n\t\tif v5 != nil {\n\t\t\tx.AllowReserved, ok = compiler.BoolForScalarNode(v5)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for allowReserved: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 6;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewEncodings creates an object of type Encodings if possible, returning an error if not.\nfunc NewEncodings(in *yaml.Node, context *compiler.Context) (*Encodings, error) {\n\terrors := make([]error, 0)\n\tx := &Encodings{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedEncoding additional_properties = 1;\n\t\t// MAP: Encoding\n\t\tx.AdditionalProperties = make([]*NamedEncoding, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedEncoding{}\n\t\t\t\tpair.Name = k\n\t\t\t\tvar err error\n\t\t\t\tpair.Value, err = NewEncoding(v, compiler.NewContext(k, v, context))\n\t\t\t\tif err != nil {\n\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewExample creates an object of type Example if possible, returning an error if not.\nfunc NewExample(in *yaml.Node, context *compiler.Context) (*Example, error) {\n\terrors := make([]error, 0)\n\tx := &Example{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"description\", \"externalValue\", \"summary\", \"value\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string summary = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"summary\")\n\t\tif v1 != nil {\n\t\t\tx.Summary, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for summary: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"description\")\n\t\tif v2 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Any value = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"value\")\n\t\tif v3 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewAny(v3, compiler.NewContext(\"value\", v3, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// string external_value = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"externalValue\")\n\t\tif v4 != nil {\n\t\t\tx.ExternalValue, ok = compiler.StringForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for externalValue: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 5;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewExampleOrReference creates an object of type ExampleOrReference if possible, returning an error if not.\nfunc NewExampleOrReference(in *yaml.Node, context *compiler.Context) (*ExampleOrReference, error) {\n\terrors := make([]error, 0)\n\tx := &ExampleOrReference{}\n\tmatched := false\n\t// Example example = 1;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewExample(m, compiler.NewContext(\"example\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &ExampleOrReference_Example{Example: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\t// Reference reference = 2;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewReference(m, compiler.NewContext(\"reference\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &ExampleOrReference_Reference{Reference: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\tif matched {\n\t\t// since the oneof matched one of its possibilities, discard any matching errors\n\t\terrors = make([]error, 0)\n\t} else {\n\t\tmessage := fmt.Sprintf(\"contains an invalid ExampleOrReference\")\n\t\terr := compiler.NewError(context, message)\n\t\terrors = []error{err}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewExamplesOrReferences creates an object of type ExamplesOrReferences if possible, returning an error if not.\nfunc NewExamplesOrReferences(in *yaml.Node, context *compiler.Context) (*ExamplesOrReferences, error) {\n\terrors := make([]error, 0)\n\tx := &ExamplesOrReferences{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedExampleOrReference additional_properties = 1;\n\t\t// MAP: ExampleOrReference\n\t\tx.AdditionalProperties = make([]*NamedExampleOrReference, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedExampleOrReference{}\n\t\t\t\tpair.Name = k\n\t\t\t\tvar err error\n\t\t\t\tpair.Value, err = NewExampleOrReference(v, compiler.NewContext(k, v, context))\n\t\t\t\tif err != nil {\n\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewExpression creates an object of type Expression if possible, returning an error if not.\nfunc NewExpression(in *yaml.Node, context *compiler.Context) (*Expression, error) {\n\terrors := make([]error, 0)\n\tx := &Expression{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedAny additional_properties = 1;\n\t\t// MAP: Any\n\t\tx.AdditionalProperties = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedAny{}\n\t\t\t\tpair.Name = k\n\t\t\t\tresult := &Any{}\n\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\tif handled {\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewExternalDocs creates an object of type ExternalDocs if possible, returning an error if not.\nfunc NewExternalDocs(in *yaml.Node, context *compiler.Context) (*ExternalDocs, error) {\n\terrors := make([]error, 0)\n\tx := &ExternalDocs{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"url\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"description\", \"url\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string description = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"description\")\n\t\tif v1 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string url = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"url\")\n\t\tif v2 != nil {\n\t\t\tx.Url, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for url: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 3;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewHeader creates an object of type Header if possible, returning an error if not.\nfunc NewHeader(in *yaml.Node, context *compiler.Context) (*Header, error) {\n\terrors := make([]error, 0)\n\tx := &Header{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"allowEmptyValue\", \"allowReserved\", \"content\", \"deprecated\", \"description\", \"example\", \"examples\", \"explode\", \"required\", \"schema\", \"style\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string description = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"description\")\n\t\tif v1 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool required = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"required\")\n\t\tif v2 != nil {\n\t\t\tx.Required, ok = compiler.BoolForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for required: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool deprecated = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"deprecated\")\n\t\tif v3 != nil {\n\t\t\tx.Deprecated, ok = compiler.BoolForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for deprecated: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool allow_empty_value = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"allowEmptyValue\")\n\t\tif v4 != nil {\n\t\t\tx.AllowEmptyValue, ok = compiler.BoolForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for allowEmptyValue: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string style = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"style\")\n\t\tif v5 != nil {\n\t\t\tx.Style, ok = compiler.StringForScalarNode(v5)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for style: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool explode = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"explode\")\n\t\tif v6 != nil {\n\t\t\tx.Explode, ok = compiler.BoolForScalarNode(v6)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for explode: %s\", compiler.Display(v6))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool allow_reserved = 7;\n\t\tv7 := compiler.MapValueForKey(m, \"allowReserved\")\n\t\tif v7 != nil {\n\t\t\tx.AllowReserved, ok = compiler.BoolForScalarNode(v7)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for allowReserved: %s\", compiler.Display(v7))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// SchemaOrReference schema = 8;\n\t\tv8 := compiler.MapValueForKey(m, \"schema\")\n\t\tif v8 != nil {\n\t\t\tvar err error\n\t\t\tx.Schema, err = NewSchemaOrReference(v8, compiler.NewContext(\"schema\", v8, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Any example = 9;\n\t\tv9 := compiler.MapValueForKey(m, \"example\")\n\t\tif v9 != nil {\n\t\t\tvar err error\n\t\t\tx.Example, err = NewAny(v9, compiler.NewContext(\"example\", v9, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// ExamplesOrReferences examples = 10;\n\t\tv10 := compiler.MapValueForKey(m, \"examples\")\n\t\tif v10 != nil {\n\t\t\tvar err error\n\t\t\tx.Examples, err = NewExamplesOrReferences(v10, compiler.NewContext(\"examples\", v10, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// MediaTypes content = 11;\n\t\tv11 := compiler.MapValueForKey(m, \"content\")\n\t\tif v11 != nil {\n\t\t\tvar err error\n\t\t\tx.Content, err = NewMediaTypes(v11, compiler.NewContext(\"content\", v11, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 12;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewHeaderOrReference creates an object of type HeaderOrReference if possible, returning an error if not.\nfunc NewHeaderOrReference(in *yaml.Node, context *compiler.Context) (*HeaderOrReference, error) {\n\terrors := make([]error, 0)\n\tx := &HeaderOrReference{}\n\tmatched := false\n\t// Header header = 1;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewHeader(m, compiler.NewContext(\"header\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &HeaderOrReference_Header{Header: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\t// Reference reference = 2;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewReference(m, compiler.NewContext(\"reference\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &HeaderOrReference_Reference{Reference: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\tif matched {\n\t\t// since the oneof matched one of its possibilities, discard any matching errors\n\t\terrors = make([]error, 0)\n\t} else {\n\t\tmessage := fmt.Sprintf(\"contains an invalid HeaderOrReference\")\n\t\terr := compiler.NewError(context, message)\n\t\terrors = []error{err}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewHeadersOrReferences creates an object of type HeadersOrReferences if possible, returning an error if not.\nfunc NewHeadersOrReferences(in *yaml.Node, context *compiler.Context) (*HeadersOrReferences, error) {\n\terrors := make([]error, 0)\n\tx := &HeadersOrReferences{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedHeaderOrReference additional_properties = 1;\n\t\t// MAP: HeaderOrReference\n\t\tx.AdditionalProperties = make([]*NamedHeaderOrReference, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedHeaderOrReference{}\n\t\t\t\tpair.Name = k\n\t\t\t\tvar err error\n\t\t\t\tpair.Value, err = NewHeaderOrReference(v, compiler.NewContext(k, v, context))\n\t\t\t\tif err != nil {\n\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewInfo creates an object of type Info if possible, returning an error if not.\nfunc NewInfo(in *yaml.Node, context *compiler.Context) (*Info, error) {\n\terrors := make([]error, 0)\n\tx := &Info{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"title\", \"version\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"contact\", \"description\", \"license\", \"summary\", \"termsOfService\", \"title\", \"version\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string title = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"title\")\n\t\tif v1 != nil {\n\t\t\tx.Title, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for title: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"description\")\n\t\tif v2 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string terms_of_service = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"termsOfService\")\n\t\tif v3 != nil {\n\t\t\tx.TermsOfService, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for termsOfService: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Contact contact = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"contact\")\n\t\tif v4 != nil {\n\t\t\tvar err error\n\t\t\tx.Contact, err = NewContact(v4, compiler.NewContext(\"contact\", v4, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// License license = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"license\")\n\t\tif v5 != nil {\n\t\t\tvar err error\n\t\t\tx.License, err = NewLicense(v5, compiler.NewContext(\"license\", v5, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// string version = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"version\")\n\t\tif v6 != nil {\n\t\t\tx.Version, ok = compiler.StringForScalarNode(v6)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for version: %s\", compiler.Display(v6))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string summary = 7;\n\t\tv7 := compiler.MapValueForKey(m, \"summary\")\n\t\tif v7 != nil {\n\t\t\tx.Summary, ok = compiler.StringForScalarNode(v7)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for summary: %s\", compiler.Display(v7))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 8;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewItemsItem creates an object of type ItemsItem if possible, returning an error if not.\nfunc NewItemsItem(in *yaml.Node, context *compiler.Context) (*ItemsItem, error) {\n\terrors := make([]error, 0)\n\tx := &ItemsItem{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value for item array: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tx.SchemaOrReference = make([]*SchemaOrReference, 0)\n\t\ty, err := NewSchemaOrReference(m, compiler.NewContext(\"<array>\", m, context))\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tx.SchemaOrReference = append(x.SchemaOrReference, y)\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewLicense creates an object of type License if possible, returning an error if not.\nfunc NewLicense(in *yaml.Node, context *compiler.Context) (*License, error) {\n\terrors := make([]error, 0)\n\tx := &License{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"name\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"name\", \"url\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string url = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"url\")\n\t\tif v2 != nil {\n\t\t\tx.Url, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for url: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 3;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewLink creates an object of type Link if possible, returning an error if not.\nfunc NewLink(in *yaml.Node, context *compiler.Context) (*Link, error) {\n\terrors := make([]error, 0)\n\tx := &Link{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"description\", \"operationId\", \"operationRef\", \"parameters\", \"requestBody\", \"server\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string operation_ref = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"operationRef\")\n\t\tif v1 != nil {\n\t\t\tx.OperationRef, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for operationRef: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string operation_id = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"operationId\")\n\t\tif v2 != nil {\n\t\t\tx.OperationId, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for operationId: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// AnyOrExpression parameters = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"parameters\")\n\t\tif v3 != nil {\n\t\t\tvar err error\n\t\t\tx.Parameters, err = NewAnyOrExpression(v3, compiler.NewContext(\"parameters\", v3, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// AnyOrExpression request_body = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"requestBody\")\n\t\tif v4 != nil {\n\t\t\tvar err error\n\t\t\tx.RequestBody, err = NewAnyOrExpression(v4, compiler.NewContext(\"requestBody\", v4, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// string description = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"description\")\n\t\tif v5 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v5)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Server server = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"server\")\n\t\tif v6 != nil {\n\t\t\tvar err error\n\t\t\tx.Server, err = NewServer(v6, compiler.NewContext(\"server\", v6, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 7;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewLinkOrReference creates an object of type LinkOrReference if possible, returning an error if not.\nfunc NewLinkOrReference(in *yaml.Node, context *compiler.Context) (*LinkOrReference, error) {\n\terrors := make([]error, 0)\n\tx := &LinkOrReference{}\n\tmatched := false\n\t// Link link = 1;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewLink(m, compiler.NewContext(\"link\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &LinkOrReference_Link{Link: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\t// Reference reference = 2;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewReference(m, compiler.NewContext(\"reference\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &LinkOrReference_Reference{Reference: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\tif matched {\n\t\t// since the oneof matched one of its possibilities, discard any matching errors\n\t\terrors = make([]error, 0)\n\t} else {\n\t\tmessage := fmt.Sprintf(\"contains an invalid LinkOrReference\")\n\t\terr := compiler.NewError(context, message)\n\t\terrors = []error{err}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewLinksOrReferences creates an object of type LinksOrReferences if possible, returning an error if not.\nfunc NewLinksOrReferences(in *yaml.Node, context *compiler.Context) (*LinksOrReferences, error) {\n\terrors := make([]error, 0)\n\tx := &LinksOrReferences{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedLinkOrReference additional_properties = 1;\n\t\t// MAP: LinkOrReference\n\t\tx.AdditionalProperties = make([]*NamedLinkOrReference, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedLinkOrReference{}\n\t\t\t\tpair.Name = k\n\t\t\t\tvar err error\n\t\t\t\tpair.Value, err = NewLinkOrReference(v, compiler.NewContext(k, v, context))\n\t\t\t\tif err != nil {\n\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewMediaType creates an object of type MediaType if possible, returning an error if not.\nfunc NewMediaType(in *yaml.Node, context *compiler.Context) (*MediaType, error) {\n\terrors := make([]error, 0)\n\tx := &MediaType{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"encoding\", \"example\", \"examples\", \"schema\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// SchemaOrReference schema = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"schema\")\n\t\tif v1 != nil {\n\t\t\tvar err error\n\t\t\tx.Schema, err = NewSchemaOrReference(v1, compiler.NewContext(\"schema\", v1, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Any example = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"example\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Example, err = NewAny(v2, compiler.NewContext(\"example\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// ExamplesOrReferences examples = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"examples\")\n\t\tif v3 != nil {\n\t\t\tvar err error\n\t\t\tx.Examples, err = NewExamplesOrReferences(v3, compiler.NewContext(\"examples\", v3, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Encodings encoding = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"encoding\")\n\t\tif v4 != nil {\n\t\t\tvar err error\n\t\t\tx.Encoding, err = NewEncodings(v4, compiler.NewContext(\"encoding\", v4, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 5;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewMediaTypes creates an object of type MediaTypes if possible, returning an error if not.\nfunc NewMediaTypes(in *yaml.Node, context *compiler.Context) (*MediaTypes, error) {\n\terrors := make([]error, 0)\n\tx := &MediaTypes{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedMediaType additional_properties = 1;\n\t\t// MAP: MediaType\n\t\tx.AdditionalProperties = make([]*NamedMediaType, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedMediaType{}\n\t\t\t\tpair.Name = k\n\t\t\t\tvar err error\n\t\t\t\tpair.Value, err = NewMediaType(v, compiler.NewContext(k, v, context))\n\t\t\t\tif err != nil {\n\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedAny creates an object of type NamedAny if possible, returning an error if not.\nfunc NewNamedAny(in *yaml.Node, context *compiler.Context) (*NamedAny, error) {\n\terrors := make([]error, 0)\n\tx := &NamedAny{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Any value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewAny(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedCallbackOrReference creates an object of type NamedCallbackOrReference if possible, returning an error if not.\nfunc NewNamedCallbackOrReference(in *yaml.Node, context *compiler.Context) (*NamedCallbackOrReference, error) {\n\terrors := make([]error, 0)\n\tx := &NamedCallbackOrReference{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// CallbackOrReference value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewCallbackOrReference(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedEncoding creates an object of type NamedEncoding if possible, returning an error if not.\nfunc NewNamedEncoding(in *yaml.Node, context *compiler.Context) (*NamedEncoding, error) {\n\terrors := make([]error, 0)\n\tx := &NamedEncoding{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Encoding value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewEncoding(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedExampleOrReference creates an object of type NamedExampleOrReference if possible, returning an error if not.\nfunc NewNamedExampleOrReference(in *yaml.Node, context *compiler.Context) (*NamedExampleOrReference, error) {\n\terrors := make([]error, 0)\n\tx := &NamedExampleOrReference{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// ExampleOrReference value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewExampleOrReference(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedHeaderOrReference creates an object of type NamedHeaderOrReference if possible, returning an error if not.\nfunc NewNamedHeaderOrReference(in *yaml.Node, context *compiler.Context) (*NamedHeaderOrReference, error) {\n\terrors := make([]error, 0)\n\tx := &NamedHeaderOrReference{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// HeaderOrReference value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewHeaderOrReference(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedLinkOrReference creates an object of type NamedLinkOrReference if possible, returning an error if not.\nfunc NewNamedLinkOrReference(in *yaml.Node, context *compiler.Context) (*NamedLinkOrReference, error) {\n\terrors := make([]error, 0)\n\tx := &NamedLinkOrReference{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// LinkOrReference value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewLinkOrReference(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedMediaType creates an object of type NamedMediaType if possible, returning an error if not.\nfunc NewNamedMediaType(in *yaml.Node, context *compiler.Context) (*NamedMediaType, error) {\n\terrors := make([]error, 0)\n\tx := &NamedMediaType{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// MediaType value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewMediaType(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedParameterOrReference creates an object of type NamedParameterOrReference if possible, returning an error if not.\nfunc NewNamedParameterOrReference(in *yaml.Node, context *compiler.Context) (*NamedParameterOrReference, error) {\n\terrors := make([]error, 0)\n\tx := &NamedParameterOrReference{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// ParameterOrReference value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewParameterOrReference(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedPathItem creates an object of type NamedPathItem if possible, returning an error if not.\nfunc NewNamedPathItem(in *yaml.Node, context *compiler.Context) (*NamedPathItem, error) {\n\terrors := make([]error, 0)\n\tx := &NamedPathItem{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// PathItem value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewPathItem(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedRequestBodyOrReference creates an object of type NamedRequestBodyOrReference if possible, returning an error if not.\nfunc NewNamedRequestBodyOrReference(in *yaml.Node, context *compiler.Context) (*NamedRequestBodyOrReference, error) {\n\terrors := make([]error, 0)\n\tx := &NamedRequestBodyOrReference{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// RequestBodyOrReference value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewRequestBodyOrReference(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedResponseOrReference creates an object of type NamedResponseOrReference if possible, returning an error if not.\nfunc NewNamedResponseOrReference(in *yaml.Node, context *compiler.Context) (*NamedResponseOrReference, error) {\n\terrors := make([]error, 0)\n\tx := &NamedResponseOrReference{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// ResponseOrReference value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewResponseOrReference(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedSchemaOrReference creates an object of type NamedSchemaOrReference if possible, returning an error if not.\nfunc NewNamedSchemaOrReference(in *yaml.Node, context *compiler.Context) (*NamedSchemaOrReference, error) {\n\terrors := make([]error, 0)\n\tx := &NamedSchemaOrReference{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// SchemaOrReference value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewSchemaOrReference(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedSecuritySchemeOrReference creates an object of type NamedSecuritySchemeOrReference if possible, returning an error if not.\nfunc NewNamedSecuritySchemeOrReference(in *yaml.Node, context *compiler.Context) (*NamedSecuritySchemeOrReference, error) {\n\terrors := make([]error, 0)\n\tx := &NamedSecuritySchemeOrReference{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// SecuritySchemeOrReference value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewSecuritySchemeOrReference(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedServerVariable creates an object of type NamedServerVariable if possible, returning an error if not.\nfunc NewNamedServerVariable(in *yaml.Node, context *compiler.Context) (*NamedServerVariable, error) {\n\terrors := make([]error, 0)\n\tx := &NamedServerVariable{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// ServerVariable value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewServerVariable(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedString creates an object of type NamedString if possible, returning an error if not.\nfunc NewNamedString(in *yaml.Node, context *compiler.Context) (*NamedString, error) {\n\terrors := make([]error, 0)\n\tx := &NamedString{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tx.Value, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for value: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewNamedStringArray creates an object of type NamedStringArray if possible, returning an error if not.\nfunc NewNamedStringArray(in *yaml.Node, context *compiler.Context) (*NamedStringArray, error) {\n\terrors := make([]error, 0)\n\tx := &NamedStringArray{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"name\", \"value\"}\n\t\tvar allowedPatterns []*regexp.Regexp\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// StringArray value = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"value\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Value, err = NewStringArray(v2, compiler.NewContext(\"value\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewOauthFlow creates an object of type OauthFlow if possible, returning an error if not.\nfunc NewOauthFlow(in *yaml.Node, context *compiler.Context) (*OauthFlow, error) {\n\terrors := make([]error, 0)\n\tx := &OauthFlow{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"authorizationUrl\", \"refreshUrl\", \"scopes\", \"tokenUrl\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string authorization_url = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"authorizationUrl\")\n\t\tif v1 != nil {\n\t\t\tx.AuthorizationUrl, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for authorizationUrl: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string token_url = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"tokenUrl\")\n\t\tif v2 != nil {\n\t\t\tx.TokenUrl, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for tokenUrl: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string refresh_url = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"refreshUrl\")\n\t\tif v3 != nil {\n\t\t\tx.RefreshUrl, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for refreshUrl: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Strings scopes = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"scopes\")\n\t\tif v4 != nil {\n\t\t\tvar err error\n\t\t\tx.Scopes, err = NewStrings(v4, compiler.NewContext(\"scopes\", v4, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 5;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewOauthFlows creates an object of type OauthFlows if possible, returning an error if not.\nfunc NewOauthFlows(in *yaml.Node, context *compiler.Context) (*OauthFlows, error) {\n\terrors := make([]error, 0)\n\tx := &OauthFlows{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"authorizationCode\", \"clientCredentials\", \"implicit\", \"password\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// OauthFlow implicit = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"implicit\")\n\t\tif v1 != nil {\n\t\t\tvar err error\n\t\t\tx.Implicit, err = NewOauthFlow(v1, compiler.NewContext(\"implicit\", v1, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// OauthFlow password = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"password\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Password, err = NewOauthFlow(v2, compiler.NewContext(\"password\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// OauthFlow client_credentials = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"clientCredentials\")\n\t\tif v3 != nil {\n\t\t\tvar err error\n\t\t\tx.ClientCredentials, err = NewOauthFlow(v3, compiler.NewContext(\"clientCredentials\", v3, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// OauthFlow authorization_code = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"authorizationCode\")\n\t\tif v4 != nil {\n\t\t\tvar err error\n\t\t\tx.AuthorizationCode, err = NewOauthFlow(v4, compiler.NewContext(\"authorizationCode\", v4, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 5;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewObject creates an object of type Object if possible, returning an error if not.\nfunc NewObject(in *yaml.Node, context *compiler.Context) (*Object, error) {\n\terrors := make([]error, 0)\n\tx := &Object{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedAny additional_properties = 1;\n\t\t// MAP: Any\n\t\tx.AdditionalProperties = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedAny{}\n\t\t\t\tpair.Name = k\n\t\t\t\tresult := &Any{}\n\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\tif handled {\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewOperation creates an object of type Operation if possible, returning an error if not.\nfunc NewOperation(in *yaml.Node, context *compiler.Context) (*Operation, error) {\n\terrors := make([]error, 0)\n\tx := &Operation{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"responses\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"callbacks\", \"deprecated\", \"description\", \"externalDocs\", \"operationId\", \"parameters\", \"requestBody\", \"responses\", \"security\", \"servers\", \"summary\", \"tags\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// repeated string tags = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"tags\")\n\t\tif v1 != nil {\n\t\t\tv, ok := compiler.SequenceNodeForNode(v1)\n\t\t\tif ok {\n\t\t\t\tx.Tags = compiler.StringArrayForSequenceNode(v)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for tags: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string summary = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"summary\")\n\t\tif v2 != nil {\n\t\t\tx.Summary, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for summary: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"description\")\n\t\tif v3 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// ExternalDocs external_docs = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"externalDocs\")\n\t\tif v4 != nil {\n\t\t\tvar err error\n\t\t\tx.ExternalDocs, err = NewExternalDocs(v4, compiler.NewContext(\"externalDocs\", v4, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// string operation_id = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"operationId\")\n\t\tif v5 != nil {\n\t\t\tx.OperationId, ok = compiler.StringForScalarNode(v5)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for operationId: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated ParameterOrReference parameters = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"parameters\")\n\t\tif v6 != nil {\n\t\t\t// repeated ParameterOrReference\n\t\t\tx.Parameters = make([]*ParameterOrReference, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v6)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewParameterOrReference(item, compiler.NewContext(\"parameters\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Parameters = append(x.Parameters, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// RequestBodyOrReference request_body = 7;\n\t\tv7 := compiler.MapValueForKey(m, \"requestBody\")\n\t\tif v7 != nil {\n\t\t\tvar err error\n\t\t\tx.RequestBody, err = NewRequestBodyOrReference(v7, compiler.NewContext(\"requestBody\", v7, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Responses responses = 8;\n\t\tv8 := compiler.MapValueForKey(m, \"responses\")\n\t\tif v8 != nil {\n\t\t\tvar err error\n\t\t\tx.Responses, err = NewResponses(v8, compiler.NewContext(\"responses\", v8, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// CallbacksOrReferences callbacks = 9;\n\t\tv9 := compiler.MapValueForKey(m, \"callbacks\")\n\t\tif v9 != nil {\n\t\t\tvar err error\n\t\t\tx.Callbacks, err = NewCallbacksOrReferences(v9, compiler.NewContext(\"callbacks\", v9, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// bool deprecated = 10;\n\t\tv10 := compiler.MapValueForKey(m, \"deprecated\")\n\t\tif v10 != nil {\n\t\t\tx.Deprecated, ok = compiler.BoolForScalarNode(v10)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for deprecated: %s\", compiler.Display(v10))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated SecurityRequirement security = 11;\n\t\tv11 := compiler.MapValueForKey(m, \"security\")\n\t\tif v11 != nil {\n\t\t\t// repeated SecurityRequirement\n\t\t\tx.Security = make([]*SecurityRequirement, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v11)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewSecurityRequirement(item, compiler.NewContext(\"security\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Security = append(x.Security, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// repeated Server servers = 12;\n\t\tv12 := compiler.MapValueForKey(m, \"servers\")\n\t\tif v12 != nil {\n\t\t\t// repeated Server\n\t\t\tx.Servers = make([]*Server, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v12)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewServer(item, compiler.NewContext(\"servers\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Servers = append(x.Servers, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 13;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewParameter creates an object of type Parameter if possible, returning an error if not.\nfunc NewParameter(in *yaml.Node, context *compiler.Context) (*Parameter, error) {\n\terrors := make([]error, 0)\n\tx := &Parameter{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"in\", \"name\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"allowEmptyValue\", \"allowReserved\", \"content\", \"deprecated\", \"description\", \"example\", \"examples\", \"explode\", \"in\", \"name\", \"required\", \"schema\", \"style\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string in = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"in\")\n\t\tif v2 != nil {\n\t\t\tx.In, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for in: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"description\")\n\t\tif v3 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool required = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"required\")\n\t\tif v4 != nil {\n\t\t\tx.Required, ok = compiler.BoolForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for required: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool deprecated = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"deprecated\")\n\t\tif v5 != nil {\n\t\t\tx.Deprecated, ok = compiler.BoolForScalarNode(v5)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for deprecated: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool allow_empty_value = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"allowEmptyValue\")\n\t\tif v6 != nil {\n\t\t\tx.AllowEmptyValue, ok = compiler.BoolForScalarNode(v6)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for allowEmptyValue: %s\", compiler.Display(v6))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string style = 7;\n\t\tv7 := compiler.MapValueForKey(m, \"style\")\n\t\tif v7 != nil {\n\t\t\tx.Style, ok = compiler.StringForScalarNode(v7)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for style: %s\", compiler.Display(v7))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool explode = 8;\n\t\tv8 := compiler.MapValueForKey(m, \"explode\")\n\t\tif v8 != nil {\n\t\t\tx.Explode, ok = compiler.BoolForScalarNode(v8)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for explode: %s\", compiler.Display(v8))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool allow_reserved = 9;\n\t\tv9 := compiler.MapValueForKey(m, \"allowReserved\")\n\t\tif v9 != nil {\n\t\t\tx.AllowReserved, ok = compiler.BoolForScalarNode(v9)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for allowReserved: %s\", compiler.Display(v9))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// SchemaOrReference schema = 10;\n\t\tv10 := compiler.MapValueForKey(m, \"schema\")\n\t\tif v10 != nil {\n\t\t\tvar err error\n\t\t\tx.Schema, err = NewSchemaOrReference(v10, compiler.NewContext(\"schema\", v10, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Any example = 11;\n\t\tv11 := compiler.MapValueForKey(m, \"example\")\n\t\tif v11 != nil {\n\t\t\tvar err error\n\t\t\tx.Example, err = NewAny(v11, compiler.NewContext(\"example\", v11, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// ExamplesOrReferences examples = 12;\n\t\tv12 := compiler.MapValueForKey(m, \"examples\")\n\t\tif v12 != nil {\n\t\t\tvar err error\n\t\t\tx.Examples, err = NewExamplesOrReferences(v12, compiler.NewContext(\"examples\", v12, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// MediaTypes content = 13;\n\t\tv13 := compiler.MapValueForKey(m, \"content\")\n\t\tif v13 != nil {\n\t\t\tvar err error\n\t\t\tx.Content, err = NewMediaTypes(v13, compiler.NewContext(\"content\", v13, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 14;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewParameterOrReference creates an object of type ParameterOrReference if possible, returning an error if not.\nfunc NewParameterOrReference(in *yaml.Node, context *compiler.Context) (*ParameterOrReference, error) {\n\terrors := make([]error, 0)\n\tx := &ParameterOrReference{}\n\tmatched := false\n\t// Parameter parameter = 1;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewParameter(m, compiler.NewContext(\"parameter\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &ParameterOrReference_Parameter{Parameter: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\t// Reference reference = 2;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewReference(m, compiler.NewContext(\"reference\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &ParameterOrReference_Reference{Reference: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\tif matched {\n\t\t// since the oneof matched one of its possibilities, discard any matching errors\n\t\terrors = make([]error, 0)\n\t} else {\n\t\tmessage := fmt.Sprintf(\"contains an invalid ParameterOrReference\")\n\t\terr := compiler.NewError(context, message)\n\t\terrors = []error{err}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewParametersOrReferences creates an object of type ParametersOrReferences if possible, returning an error if not.\nfunc NewParametersOrReferences(in *yaml.Node, context *compiler.Context) (*ParametersOrReferences, error) {\n\terrors := make([]error, 0)\n\tx := &ParametersOrReferences{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedParameterOrReference additional_properties = 1;\n\t\t// MAP: ParameterOrReference\n\t\tx.AdditionalProperties = make([]*NamedParameterOrReference, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedParameterOrReference{}\n\t\t\t\tpair.Name = k\n\t\t\t\tvar err error\n\t\t\t\tpair.Value, err = NewParameterOrReference(v, compiler.NewContext(k, v, context))\n\t\t\t\tif err != nil {\n\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewPathItem creates an object of type PathItem if possible, returning an error if not.\nfunc NewPathItem(in *yaml.Node, context *compiler.Context) (*PathItem, error) {\n\terrors := make([]error, 0)\n\tx := &PathItem{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"$ref\", \"delete\", \"description\", \"get\", \"head\", \"options\", \"parameters\", \"patch\", \"post\", \"put\", \"servers\", \"summary\", \"trace\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string _ref = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"$ref\")\n\t\tif v1 != nil {\n\t\t\tx.XRef, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for $ref: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string summary = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"summary\")\n\t\tif v2 != nil {\n\t\t\tx.Summary, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for summary: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"description\")\n\t\tif v3 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Operation get = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"get\")\n\t\tif v4 != nil {\n\t\t\tvar err error\n\t\t\tx.Get, err = NewOperation(v4, compiler.NewContext(\"get\", v4, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Operation put = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"put\")\n\t\tif v5 != nil {\n\t\t\tvar err error\n\t\t\tx.Put, err = NewOperation(v5, compiler.NewContext(\"put\", v5, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Operation post = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"post\")\n\t\tif v6 != nil {\n\t\t\tvar err error\n\t\t\tx.Post, err = NewOperation(v6, compiler.NewContext(\"post\", v6, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Operation delete = 7;\n\t\tv7 := compiler.MapValueForKey(m, \"delete\")\n\t\tif v7 != nil {\n\t\t\tvar err error\n\t\t\tx.Delete, err = NewOperation(v7, compiler.NewContext(\"delete\", v7, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Operation options = 8;\n\t\tv8 := compiler.MapValueForKey(m, \"options\")\n\t\tif v8 != nil {\n\t\t\tvar err error\n\t\t\tx.Options, err = NewOperation(v8, compiler.NewContext(\"options\", v8, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Operation head = 9;\n\t\tv9 := compiler.MapValueForKey(m, \"head\")\n\t\tif v9 != nil {\n\t\t\tvar err error\n\t\t\tx.Head, err = NewOperation(v9, compiler.NewContext(\"head\", v9, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Operation patch = 10;\n\t\tv10 := compiler.MapValueForKey(m, \"patch\")\n\t\tif v10 != nil {\n\t\t\tvar err error\n\t\t\tx.Patch, err = NewOperation(v10, compiler.NewContext(\"patch\", v10, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Operation trace = 11;\n\t\tv11 := compiler.MapValueForKey(m, \"trace\")\n\t\tif v11 != nil {\n\t\t\tvar err error\n\t\t\tx.Trace, err = NewOperation(v11, compiler.NewContext(\"trace\", v11, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated Server servers = 12;\n\t\tv12 := compiler.MapValueForKey(m, \"servers\")\n\t\tif v12 != nil {\n\t\t\t// repeated Server\n\t\t\tx.Servers = make([]*Server, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v12)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewServer(item, compiler.NewContext(\"servers\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Servers = append(x.Servers, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// repeated ParameterOrReference parameters = 13;\n\t\tv13 := compiler.MapValueForKey(m, \"parameters\")\n\t\tif v13 != nil {\n\t\t\t// repeated ParameterOrReference\n\t\t\tx.Parameters = make([]*ParameterOrReference, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v13)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewParameterOrReference(item, compiler.NewContext(\"parameters\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Parameters = append(x.Parameters, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 14;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewPaths creates an object of type Paths if possible, returning an error if not.\nfunc NewPaths(in *yaml.Node, context *compiler.Context) (*Paths, error) {\n\terrors := make([]error, 0)\n\tx := &Paths{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{}\n\t\tallowedPatterns := []*regexp.Regexp{pattern2, pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// repeated NamedPathItem path = 1;\n\t\t// MAP: PathItem ^/\n\t\tx.Path = make([]*NamedPathItem, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"/\") {\n\t\t\t\t\tpair := &NamedPathItem{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tvar err error\n\t\t\t\t\tpair.Value, err = NewPathItem(v, compiler.NewContext(k, v, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Path = append(x.Path, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 2;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewProperties creates an object of type Properties if possible, returning an error if not.\nfunc NewProperties(in *yaml.Node, context *compiler.Context) (*Properties, error) {\n\terrors := make([]error, 0)\n\tx := &Properties{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedSchemaOrReference additional_properties = 1;\n\t\t// MAP: SchemaOrReference\n\t\tx.AdditionalProperties = make([]*NamedSchemaOrReference, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedSchemaOrReference{}\n\t\t\t\tpair.Name = k\n\t\t\t\tvar err error\n\t\t\t\tpair.Value, err = NewSchemaOrReference(v, compiler.NewContext(k, v, context))\n\t\t\t\tif err != nil {\n\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewReference creates an object of type Reference if possible, returning an error if not.\nfunc NewReference(in *yaml.Node, context *compiler.Context) (*Reference, error) {\n\terrors := make([]error, 0)\n\tx := &Reference{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"$ref\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string _ref = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"$ref\")\n\t\tif v1 != nil {\n\t\t\tx.XRef, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for $ref: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string summary = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"summary\")\n\t\tif v2 != nil {\n\t\t\tx.Summary, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for summary: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"description\")\n\t\tif v3 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewRequestBodiesOrReferences creates an object of type RequestBodiesOrReferences if possible, returning an error if not.\nfunc NewRequestBodiesOrReferences(in *yaml.Node, context *compiler.Context) (*RequestBodiesOrReferences, error) {\n\terrors := make([]error, 0)\n\tx := &RequestBodiesOrReferences{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedRequestBodyOrReference additional_properties = 1;\n\t\t// MAP: RequestBodyOrReference\n\t\tx.AdditionalProperties = make([]*NamedRequestBodyOrReference, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedRequestBodyOrReference{}\n\t\t\t\tpair.Name = k\n\t\t\t\tvar err error\n\t\t\t\tpair.Value, err = NewRequestBodyOrReference(v, compiler.NewContext(k, v, context))\n\t\t\t\tif err != nil {\n\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewRequestBody creates an object of type RequestBody if possible, returning an error if not.\nfunc NewRequestBody(in *yaml.Node, context *compiler.Context) (*RequestBody, error) {\n\terrors := make([]error, 0)\n\tx := &RequestBody{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"content\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"content\", \"description\", \"required\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string description = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"description\")\n\t\tif v1 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// MediaTypes content = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"content\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Content, err = NewMediaTypes(v2, compiler.NewContext(\"content\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// bool required = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"required\")\n\t\tif v3 != nil {\n\t\t\tx.Required, ok = compiler.BoolForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for required: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 4;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewRequestBodyOrReference creates an object of type RequestBodyOrReference if possible, returning an error if not.\nfunc NewRequestBodyOrReference(in *yaml.Node, context *compiler.Context) (*RequestBodyOrReference, error) {\n\terrors := make([]error, 0)\n\tx := &RequestBodyOrReference{}\n\tmatched := false\n\t// RequestBody request_body = 1;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewRequestBody(m, compiler.NewContext(\"requestBody\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &RequestBodyOrReference_RequestBody{RequestBody: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\t// Reference reference = 2;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewReference(m, compiler.NewContext(\"reference\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &RequestBodyOrReference_Reference{Reference: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\tif matched {\n\t\t// since the oneof matched one of its possibilities, discard any matching errors\n\t\terrors = make([]error, 0)\n\t} else {\n\t\tmessage := fmt.Sprintf(\"contains an invalid RequestBodyOrReference\")\n\t\terr := compiler.NewError(context, message)\n\t\terrors = []error{err}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewResponse creates an object of type Response if possible, returning an error if not.\nfunc NewResponse(in *yaml.Node, context *compiler.Context) (*Response, error) {\n\terrors := make([]error, 0)\n\tx := &Response{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"description\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"content\", \"description\", \"headers\", \"links\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string description = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"description\")\n\t\tif v1 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// HeadersOrReferences headers = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"headers\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Headers, err = NewHeadersOrReferences(v2, compiler.NewContext(\"headers\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// MediaTypes content = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"content\")\n\t\tif v3 != nil {\n\t\t\tvar err error\n\t\t\tx.Content, err = NewMediaTypes(v3, compiler.NewContext(\"content\", v3, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// LinksOrReferences links = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"links\")\n\t\tif v4 != nil {\n\t\t\tvar err error\n\t\t\tx.Links, err = NewLinksOrReferences(v4, compiler.NewContext(\"links\", v4, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 5;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewResponseOrReference creates an object of type ResponseOrReference if possible, returning an error if not.\nfunc NewResponseOrReference(in *yaml.Node, context *compiler.Context) (*ResponseOrReference, error) {\n\terrors := make([]error, 0)\n\tx := &ResponseOrReference{}\n\tmatched := false\n\t// Response response = 1;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewResponse(m, compiler.NewContext(\"response\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &ResponseOrReference_Response{Response: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\t// Reference reference = 2;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewReference(m, compiler.NewContext(\"reference\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &ResponseOrReference_Reference{Reference: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\tif matched {\n\t\t// since the oneof matched one of its possibilities, discard any matching errors\n\t\terrors = make([]error, 0)\n\t} else {\n\t\tmessage := fmt.Sprintf(\"contains an invalid ResponseOrReference\")\n\t\terr := compiler.NewError(context, message)\n\t\terrors = []error{err}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewResponses creates an object of type Responses if possible, returning an error if not.\nfunc NewResponses(in *yaml.Node, context *compiler.Context) (*Responses, error) {\n\terrors := make([]error, 0)\n\tx := &Responses{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"default\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern3, pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// ResponseOrReference default = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"default\")\n\t\tif v1 != nil {\n\t\t\tvar err error\n\t\t\tx.Default, err = NewResponseOrReference(v1, compiler.NewContext(\"default\", v1, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated NamedResponseOrReference response_or_reference = 2;\n\t\t// MAP: ResponseOrReference ^([0-9X]{3})$\n\t\tx.ResponseOrReference = make([]*NamedResponseOrReference, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif pattern3.MatchString(k) {\n\t\t\t\t\tpair := &NamedResponseOrReference{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tvar err error\n\t\t\t\t\tpair.Value, err = NewResponseOrReference(v, compiler.NewContext(k, v, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.ResponseOrReference = append(x.ResponseOrReference, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 3;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewResponsesOrReferences creates an object of type ResponsesOrReferences if possible, returning an error if not.\nfunc NewResponsesOrReferences(in *yaml.Node, context *compiler.Context) (*ResponsesOrReferences, error) {\n\terrors := make([]error, 0)\n\tx := &ResponsesOrReferences{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedResponseOrReference additional_properties = 1;\n\t\t// MAP: ResponseOrReference\n\t\tx.AdditionalProperties = make([]*NamedResponseOrReference, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedResponseOrReference{}\n\t\t\t\tpair.Name = k\n\t\t\t\tvar err error\n\t\t\t\tpair.Value, err = NewResponseOrReference(v, compiler.NewContext(k, v, context))\n\t\t\t\tif err != nil {\n\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewSchema creates an object of type Schema if possible, returning an error if not.\nfunc NewSchema(in *yaml.Node, context *compiler.Context) (*Schema, error) {\n\terrors := make([]error, 0)\n\tx := &Schema{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"additionalProperties\", \"allOf\", \"anyOf\", \"default\", \"deprecated\", \"description\", \"discriminator\", \"enum\", \"example\", \"exclusiveMaximum\", \"exclusiveMinimum\", \"externalDocs\", \"format\", \"items\", \"maxItems\", \"maxLength\", \"maxProperties\", \"maximum\", \"minItems\", \"minLength\", \"minProperties\", \"minimum\", \"multipleOf\", \"not\", \"nullable\", \"oneOf\", \"pattern\", \"properties\", \"readOnly\", \"required\", \"title\", \"type\", \"uniqueItems\", \"writeOnly\", \"xml\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// bool nullable = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"nullable\")\n\t\tif v1 != nil {\n\t\t\tx.Nullable, ok = compiler.BoolForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for nullable: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Discriminator discriminator = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"discriminator\")\n\t\tif v2 != nil {\n\t\t\tvar err error\n\t\t\tx.Discriminator, err = NewDiscriminator(v2, compiler.NewContext(\"discriminator\", v2, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// bool read_only = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"readOnly\")\n\t\tif v3 != nil {\n\t\t\tx.ReadOnly, ok = compiler.BoolForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for readOnly: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool write_only = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"writeOnly\")\n\t\tif v4 != nil {\n\t\t\tx.WriteOnly, ok = compiler.BoolForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for writeOnly: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// Xml xml = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"xml\")\n\t\tif v5 != nil {\n\t\t\tvar err error\n\t\t\tx.Xml, err = NewXml(v5, compiler.NewContext(\"xml\", v5, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// ExternalDocs external_docs = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"externalDocs\")\n\t\tif v6 != nil {\n\t\t\tvar err error\n\t\t\tx.ExternalDocs, err = NewExternalDocs(v6, compiler.NewContext(\"externalDocs\", v6, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Any example = 7;\n\t\tv7 := compiler.MapValueForKey(m, \"example\")\n\t\tif v7 != nil {\n\t\t\tvar err error\n\t\t\tx.Example, err = NewAny(v7, compiler.NewContext(\"example\", v7, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// bool deprecated = 8;\n\t\tv8 := compiler.MapValueForKey(m, \"deprecated\")\n\t\tif v8 != nil {\n\t\t\tx.Deprecated, ok = compiler.BoolForScalarNode(v8)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for deprecated: %s\", compiler.Display(v8))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string title = 9;\n\t\tv9 := compiler.MapValueForKey(m, \"title\")\n\t\tif v9 != nil {\n\t\t\tx.Title, ok = compiler.StringForScalarNode(v9)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for title: %s\", compiler.Display(v9))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// float multiple_of = 10;\n\t\tv10 := compiler.MapValueForKey(m, \"multipleOf\")\n\t\tif v10 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v10)\n\t\t\tif ok {\n\t\t\t\tx.MultipleOf = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for multipleOf: %s\", compiler.Display(v10))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// float maximum = 11;\n\t\tv11 := compiler.MapValueForKey(m, \"maximum\")\n\t\tif v11 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v11)\n\t\t\tif ok {\n\t\t\t\tx.Maximum = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maximum: %s\", compiler.Display(v11))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool exclusive_maximum = 12;\n\t\tv12 := compiler.MapValueForKey(m, \"exclusiveMaximum\")\n\t\tif v12 != nil {\n\t\t\tx.ExclusiveMaximum, ok = compiler.BoolForScalarNode(v12)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for exclusiveMaximum: %s\", compiler.Display(v12))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// float minimum = 13;\n\t\tv13 := compiler.MapValueForKey(m, \"minimum\")\n\t\tif v13 != nil {\n\t\t\tv, ok := compiler.FloatForScalarNode(v13)\n\t\t\tif ok {\n\t\t\t\tx.Minimum = v\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minimum: %s\", compiler.Display(v13))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool exclusive_minimum = 14;\n\t\tv14 := compiler.MapValueForKey(m, \"exclusiveMinimum\")\n\t\tif v14 != nil {\n\t\t\tx.ExclusiveMinimum, ok = compiler.BoolForScalarNode(v14)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for exclusiveMinimum: %s\", compiler.Display(v14))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 max_length = 15;\n\t\tv15 := compiler.MapValueForKey(m, \"maxLength\")\n\t\tif v15 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v15)\n\t\t\tif ok {\n\t\t\t\tx.MaxLength = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maxLength: %s\", compiler.Display(v15))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 min_length = 16;\n\t\tv16 := compiler.MapValueForKey(m, \"minLength\")\n\t\tif v16 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v16)\n\t\t\tif ok {\n\t\t\t\tx.MinLength = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minLength: %s\", compiler.Display(v16))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string pattern = 17;\n\t\tv17 := compiler.MapValueForKey(m, \"pattern\")\n\t\tif v17 != nil {\n\t\t\tx.Pattern, ok = compiler.StringForScalarNode(v17)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for pattern: %s\", compiler.Display(v17))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 max_items = 18;\n\t\tv18 := compiler.MapValueForKey(m, \"maxItems\")\n\t\tif v18 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v18)\n\t\t\tif ok {\n\t\t\t\tx.MaxItems = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maxItems: %s\", compiler.Display(v18))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 min_items = 19;\n\t\tv19 := compiler.MapValueForKey(m, \"minItems\")\n\t\tif v19 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v19)\n\t\t\tif ok {\n\t\t\t\tx.MinItems = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minItems: %s\", compiler.Display(v19))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool unique_items = 20;\n\t\tv20 := compiler.MapValueForKey(m, \"uniqueItems\")\n\t\tif v20 != nil {\n\t\t\tx.UniqueItems, ok = compiler.BoolForScalarNode(v20)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for uniqueItems: %s\", compiler.Display(v20))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 max_properties = 21;\n\t\tv21 := compiler.MapValueForKey(m, \"maxProperties\")\n\t\tif v21 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v21)\n\t\t\tif ok {\n\t\t\t\tx.MaxProperties = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for maxProperties: %s\", compiler.Display(v21))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// int64 min_properties = 22;\n\t\tv22 := compiler.MapValueForKey(m, \"minProperties\")\n\t\tif v22 != nil {\n\t\t\tt, ok := compiler.IntForScalarNode(v22)\n\t\t\tif ok {\n\t\t\t\tx.MinProperties = int64(t)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for minProperties: %s\", compiler.Display(v22))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated string required = 23;\n\t\tv23 := compiler.MapValueForKey(m, \"required\")\n\t\tif v23 != nil {\n\t\t\tv, ok := compiler.SequenceNodeForNode(v23)\n\t\t\tif ok {\n\t\t\t\tx.Required = compiler.StringArrayForSequenceNode(v)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for required: %s\", compiler.Display(v23))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated Any enum = 24;\n\t\tv24 := compiler.MapValueForKey(m, \"enum\")\n\t\tif v24 != nil {\n\t\t\t// repeated Any\n\t\t\tx.Enum = make([]*Any, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v24)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewAny(item, compiler.NewContext(\"enum\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.Enum = append(x.Enum, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// string type = 25;\n\t\tv25 := compiler.MapValueForKey(m, \"type\")\n\t\tif v25 != nil {\n\t\t\tx.Type, ok = compiler.StringForScalarNode(v25)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v25))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated SchemaOrReference all_of = 26;\n\t\tv26 := compiler.MapValueForKey(m, \"allOf\")\n\t\tif v26 != nil {\n\t\t\t// repeated SchemaOrReference\n\t\t\tx.AllOf = make([]*SchemaOrReference, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v26)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewSchemaOrReference(item, compiler.NewContext(\"allOf\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.AllOf = append(x.AllOf, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// repeated SchemaOrReference one_of = 27;\n\t\tv27 := compiler.MapValueForKey(m, \"oneOf\")\n\t\tif v27 != nil {\n\t\t\t// repeated SchemaOrReference\n\t\t\tx.OneOf = make([]*SchemaOrReference, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v27)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewSchemaOrReference(item, compiler.NewContext(\"oneOf\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.OneOf = append(x.OneOf, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// repeated SchemaOrReference any_of = 28;\n\t\tv28 := compiler.MapValueForKey(m, \"anyOf\")\n\t\tif v28 != nil {\n\t\t\t// repeated SchemaOrReference\n\t\t\tx.AnyOf = make([]*SchemaOrReference, 0)\n\t\t\ta, ok := compiler.SequenceNodeForNode(v28)\n\t\t\tif ok {\n\t\t\t\tfor _, item := range a.Content {\n\t\t\t\t\ty, err := NewSchemaOrReference(item, compiler.NewContext(\"anyOf\", item, context))\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t}\n\t\t\t\t\tx.AnyOf = append(x.AnyOf, y)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Schema not = 29;\n\t\tv29 := compiler.MapValueForKey(m, \"not\")\n\t\tif v29 != nil {\n\t\t\tvar err error\n\t\t\tx.Not, err = NewSchema(v29, compiler.NewContext(\"not\", v29, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// ItemsItem items = 30;\n\t\tv30 := compiler.MapValueForKey(m, \"items\")\n\t\tif v30 != nil {\n\t\t\tvar err error\n\t\t\tx.Items, err = NewItemsItem(v30, compiler.NewContext(\"items\", v30, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// Properties properties = 31;\n\t\tv31 := compiler.MapValueForKey(m, \"properties\")\n\t\tif v31 != nil {\n\t\t\tvar err error\n\t\t\tx.Properties, err = NewProperties(v31, compiler.NewContext(\"properties\", v31, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// AdditionalPropertiesItem additional_properties = 32;\n\t\tv32 := compiler.MapValueForKey(m, \"additionalProperties\")\n\t\tif v32 != nil {\n\t\t\tvar err error\n\t\t\tx.AdditionalProperties, err = NewAdditionalPropertiesItem(v32, compiler.NewContext(\"additionalProperties\", v32, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// DefaultType default = 33;\n\t\tv33 := compiler.MapValueForKey(m, \"default\")\n\t\tif v33 != nil {\n\t\t\tvar err error\n\t\t\tx.Default, err = NewDefaultType(v33, compiler.NewContext(\"default\", v33, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// string description = 34;\n\t\tv34 := compiler.MapValueForKey(m, \"description\")\n\t\tif v34 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v34)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v34))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string format = 35;\n\t\tv35 := compiler.MapValueForKey(m, \"format\")\n\t\tif v35 != nil {\n\t\t\tx.Format, ok = compiler.StringForScalarNode(v35)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for format: %s\", compiler.Display(v35))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 36;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewSchemaOrReference creates an object of type SchemaOrReference if possible, returning an error if not.\nfunc NewSchemaOrReference(in *yaml.Node, context *compiler.Context) (*SchemaOrReference, error) {\n\terrors := make([]error, 0)\n\tx := &SchemaOrReference{}\n\tmatched := false\n\t// Schema schema = 1;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewSchema(m, compiler.NewContext(\"schema\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &SchemaOrReference_Schema{Schema: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\t// Reference reference = 2;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewReference(m, compiler.NewContext(\"reference\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &SchemaOrReference_Reference{Reference: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\tif matched {\n\t\t// since the oneof matched one of its possibilities, discard any matching errors\n\t\terrors = make([]error, 0)\n\t} else {\n\t\tmessage := fmt.Sprintf(\"contains an invalid SchemaOrReference\")\n\t\terr := compiler.NewError(context, message)\n\t\terrors = []error{err}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewSchemasOrReferences creates an object of type SchemasOrReferences if possible, returning an error if not.\nfunc NewSchemasOrReferences(in *yaml.Node, context *compiler.Context) (*SchemasOrReferences, error) {\n\terrors := make([]error, 0)\n\tx := &SchemasOrReferences{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedSchemaOrReference additional_properties = 1;\n\t\t// MAP: SchemaOrReference\n\t\tx.AdditionalProperties = make([]*NamedSchemaOrReference, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedSchemaOrReference{}\n\t\t\t\tpair.Name = k\n\t\t\t\tvar err error\n\t\t\t\tpair.Value, err = NewSchemaOrReference(v, compiler.NewContext(k, v, context))\n\t\t\t\tif err != nil {\n\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewSecurityRequirement creates an object of type SecurityRequirement if possible, returning an error if not.\nfunc NewSecurityRequirement(in *yaml.Node, context *compiler.Context) (*SecurityRequirement, error) {\n\terrors := make([]error, 0)\n\tx := &SecurityRequirement{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedStringArray additional_properties = 1;\n\t\t// MAP: StringArray\n\t\tx.AdditionalProperties = make([]*NamedStringArray, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedStringArray{}\n\t\t\t\tpair.Name = k\n\t\t\t\tvar err error\n\t\t\t\tpair.Value, err = NewStringArray(v, compiler.NewContext(k, v, context))\n\t\t\t\tif err != nil {\n\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewSecurityScheme creates an object of type SecurityScheme if possible, returning an error if not.\nfunc NewSecurityScheme(in *yaml.Node, context *compiler.Context) (*SecurityScheme, error) {\n\terrors := make([]error, 0)\n\tx := &SecurityScheme{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"type\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"bearerFormat\", \"description\", \"flows\", \"in\", \"name\", \"openIdConnectUrl\", \"scheme\", \"type\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string type = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"type\")\n\t\tif v1 != nil {\n\t\t\tx.Type, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for type: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"description\")\n\t\tif v2 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string name = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"name\")\n\t\tif v3 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string in = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"in\")\n\t\tif v4 != nil {\n\t\t\tx.In, ok = compiler.StringForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for in: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string scheme = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"scheme\")\n\t\tif v5 != nil {\n\t\t\tx.Scheme, ok = compiler.StringForScalarNode(v5)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for scheme: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string bearer_format = 6;\n\t\tv6 := compiler.MapValueForKey(m, \"bearerFormat\")\n\t\tif v6 != nil {\n\t\t\tx.BearerFormat, ok = compiler.StringForScalarNode(v6)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for bearerFormat: %s\", compiler.Display(v6))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// OauthFlows flows = 7;\n\t\tv7 := compiler.MapValueForKey(m, \"flows\")\n\t\tif v7 != nil {\n\t\t\tvar err error\n\t\t\tx.Flows, err = NewOauthFlows(v7, compiler.NewContext(\"flows\", v7, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// string open_id_connect_url = 8;\n\t\tv8 := compiler.MapValueForKey(m, \"openIdConnectUrl\")\n\t\tif v8 != nil {\n\t\t\tx.OpenIdConnectUrl, ok = compiler.StringForScalarNode(v8)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for openIdConnectUrl: %s\", compiler.Display(v8))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 9;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewSecuritySchemeOrReference creates an object of type SecuritySchemeOrReference if possible, returning an error if not.\nfunc NewSecuritySchemeOrReference(in *yaml.Node, context *compiler.Context) (*SecuritySchemeOrReference, error) {\n\terrors := make([]error, 0)\n\tx := &SecuritySchemeOrReference{}\n\tmatched := false\n\t// SecurityScheme security_scheme = 1;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewSecurityScheme(m, compiler.NewContext(\"securityScheme\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &SecuritySchemeOrReference_SecurityScheme{SecurityScheme: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\t// Reference reference = 2;\n\t{\n\t\tm, ok := compiler.UnpackMap(in)\n\t\tif ok {\n\t\t\t// errors might be ok here, they mean we just don't have the right subtype\n\t\t\tt, matchingError := NewReference(m, compiler.NewContext(\"reference\", m, context))\n\t\t\tif matchingError == nil {\n\t\t\t\tx.Oneof = &SecuritySchemeOrReference_Reference{Reference: t}\n\t\t\t\tmatched = true\n\t\t\t} else {\n\t\t\t\terrors = append(errors, matchingError)\n\t\t\t}\n\t\t}\n\t}\n\tif matched {\n\t\t// since the oneof matched one of its possibilities, discard any matching errors\n\t\terrors = make([]error, 0)\n\t} else {\n\t\tmessage := fmt.Sprintf(\"contains an invalid SecuritySchemeOrReference\")\n\t\terr := compiler.NewError(context, message)\n\t\terrors = []error{err}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewSecuritySchemesOrReferences creates an object of type SecuritySchemesOrReferences if possible, returning an error if not.\nfunc NewSecuritySchemesOrReferences(in *yaml.Node, context *compiler.Context) (*SecuritySchemesOrReferences, error) {\n\terrors := make([]error, 0)\n\tx := &SecuritySchemesOrReferences{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedSecuritySchemeOrReference additional_properties = 1;\n\t\t// MAP: SecuritySchemeOrReference\n\t\tx.AdditionalProperties = make([]*NamedSecuritySchemeOrReference, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedSecuritySchemeOrReference{}\n\t\t\t\tpair.Name = k\n\t\t\t\tvar err error\n\t\t\t\tpair.Value, err = NewSecuritySchemeOrReference(v, compiler.NewContext(k, v, context))\n\t\t\t\tif err != nil {\n\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewServer creates an object of type Server if possible, returning an error if not.\nfunc NewServer(in *yaml.Node, context *compiler.Context) (*Server, error) {\n\terrors := make([]error, 0)\n\tx := &Server{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"url\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"description\", \"url\", \"variables\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string url = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"url\")\n\t\tif v1 != nil {\n\t\t\tx.Url, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for url: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"description\")\n\t\tif v2 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// ServerVariables variables = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"variables\")\n\t\tif v3 != nil {\n\t\t\tvar err error\n\t\t\tx.Variables, err = NewServerVariables(v3, compiler.NewContext(\"variables\", v3, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 4;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewServerVariable creates an object of type ServerVariable if possible, returning an error if not.\nfunc NewServerVariable(in *yaml.Node, context *compiler.Context) (*ServerVariable, error) {\n\terrors := make([]error, 0)\n\tx := &ServerVariable{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"default\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"default\", \"description\", \"enum\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// repeated string enum = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"enum\")\n\t\tif v1 != nil {\n\t\t\tv, ok := compiler.SequenceNodeForNode(v1)\n\t\t\tif ok {\n\t\t\t\tx.Enum = compiler.StringArrayForSequenceNode(v)\n\t\t\t} else {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for enum: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string default = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"default\")\n\t\tif v2 != nil {\n\t\t\tx.Default, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for default: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"description\")\n\t\tif v3 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 4;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewServerVariables creates an object of type ServerVariables if possible, returning an error if not.\nfunc NewServerVariables(in *yaml.Node, context *compiler.Context) (*ServerVariables, error) {\n\terrors := make([]error, 0)\n\tx := &ServerVariables{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedServerVariable additional_properties = 1;\n\t\t// MAP: ServerVariable\n\t\tx.AdditionalProperties = make([]*NamedServerVariable, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedServerVariable{}\n\t\t\t\tpair.Name = k\n\t\t\t\tvar err error\n\t\t\t\tpair.Value, err = NewServerVariable(v, compiler.NewContext(k, v, context))\n\t\t\t\tif err != nil {\n\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t}\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewSpecificationExtension creates an object of type SpecificationExtension if possible, returning an error if not.\nfunc NewSpecificationExtension(in *yaml.Node, context *compiler.Context) (*SpecificationExtension, error) {\n\terrors := make([]error, 0)\n\tx := &SpecificationExtension{}\n\tmatched := false\n\tswitch in.Tag {\n\tcase \"!!bool\":\n\t\tvar v bool\n\t\tv, matched = compiler.BoolForScalarNode(in)\n\t\tx.Oneof = &SpecificationExtension_Boolean{Boolean: v}\n\tcase \"!!str\":\n\t\tvar v string\n\t\tv, matched = compiler.StringForScalarNode(in)\n\t\tx.Oneof = &SpecificationExtension_String_{String_: v}\n\tcase \"!!float\":\n\t\tvar v float64\n\t\tv, matched = compiler.FloatForScalarNode(in)\n\t\tx.Oneof = &SpecificationExtension_Number{Number: v}\n\tcase \"!!int\":\n\t\tvar v int64\n\t\tv, matched = compiler.IntForScalarNode(in)\n\t\tx.Oneof = &SpecificationExtension_Number{Number: float64(v)}\n\t}\n\tif matched {\n\t\t// since the oneof matched one of its possibilities, discard any matching errors\n\t\terrors = make([]error, 0)\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewStringArray creates an object of type StringArray if possible, returning an error if not.\nfunc NewStringArray(in *yaml.Node, context *compiler.Context) (*StringArray, error) {\n\terrors := make([]error, 0)\n\tx := &StringArray{}\n\tx.Value = make([]string, 0)\n\tfor _, node := range in.Content {\n\t\ts, _ := compiler.StringForScalarNode(node)\n\t\tx.Value = append(x.Value, s)\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewStrings creates an object of type Strings if possible, returning an error if not.\nfunc NewStrings(in *yaml.Node, context *compiler.Context) (*Strings, error) {\n\terrors := make([]error, 0)\n\tx := &Strings{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\t// repeated NamedString additional_properties = 1;\n\t\t// MAP: string\n\t\tx.AdditionalProperties = make([]*NamedString, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tpair := &NamedString{}\n\t\t\t\tpair.Name = k\n\t\t\t\tpair.Value, _ = compiler.StringForScalarNode(v)\n\t\t\t\tx.AdditionalProperties = append(x.AdditionalProperties, pair)\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewTag creates an object of type Tag if possible, returning an error if not.\nfunc NewTag(in *yaml.Node, context *compiler.Context) (*Tag, error) {\n\terrors := make([]error, 0)\n\tx := &Tag{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\trequiredKeys := []string{\"name\"}\n\t\tmissingKeys := compiler.MissingKeysInMap(m, requiredKeys)\n\t\tif len(missingKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"is missing required %s: %+v\", compiler.PluralProperties(len(missingKeys)), strings.Join(missingKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\tallowedKeys := []string{\"description\", \"externalDocs\", \"name\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string description = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"description\")\n\t\tif v2 != nil {\n\t\t\tx.Description, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for description: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// ExternalDocs external_docs = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"externalDocs\")\n\t\tif v3 != nil {\n\t\t\tvar err error\n\t\t\tx.ExternalDocs, err = NewExternalDocs(v3, compiler.NewContext(\"externalDocs\", v3, context))\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 4;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// NewXml creates an object of type Xml if possible, returning an error if not.\nfunc NewXml(in *yaml.Node, context *compiler.Context) (*Xml, error) {\n\terrors := make([]error, 0)\n\tx := &Xml{}\n\tm, ok := compiler.UnpackMap(in)\n\tif !ok {\n\t\tmessage := fmt.Sprintf(\"has unexpected value: %+v (%T)\", in, in)\n\t\terrors = append(errors, compiler.NewError(context, message))\n\t} else {\n\t\tallowedKeys := []string{\"attribute\", \"name\", \"namespace\", \"prefix\", \"wrapped\"}\n\t\tallowedPatterns := []*regexp.Regexp{pattern1}\n\t\tinvalidKeys := compiler.InvalidKeysInMap(m, allowedKeys, allowedPatterns)\n\t\tif len(invalidKeys) > 0 {\n\t\t\tmessage := fmt.Sprintf(\"has invalid %s: %+v\", compiler.PluralProperties(len(invalidKeys)), strings.Join(invalidKeys, \", \"))\n\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t}\n\t\t// string name = 1;\n\t\tv1 := compiler.MapValueForKey(m, \"name\")\n\t\tif v1 != nil {\n\t\t\tx.Name, ok = compiler.StringForScalarNode(v1)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for name: %s\", compiler.Display(v1))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string namespace = 2;\n\t\tv2 := compiler.MapValueForKey(m, \"namespace\")\n\t\tif v2 != nil {\n\t\t\tx.Namespace, ok = compiler.StringForScalarNode(v2)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for namespace: %s\", compiler.Display(v2))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// string prefix = 3;\n\t\tv3 := compiler.MapValueForKey(m, \"prefix\")\n\t\tif v3 != nil {\n\t\t\tx.Prefix, ok = compiler.StringForScalarNode(v3)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for prefix: %s\", compiler.Display(v3))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool attribute = 4;\n\t\tv4 := compiler.MapValueForKey(m, \"attribute\")\n\t\tif v4 != nil {\n\t\t\tx.Attribute, ok = compiler.BoolForScalarNode(v4)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for attribute: %s\", compiler.Display(v4))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// bool wrapped = 5;\n\t\tv5 := compiler.MapValueForKey(m, \"wrapped\")\n\t\tif v5 != nil {\n\t\t\tx.Wrapped, ok = compiler.BoolForScalarNode(v5)\n\t\t\tif !ok {\n\t\t\t\tmessage := fmt.Sprintf(\"has unexpected value for wrapped: %s\", compiler.Display(v5))\n\t\t\t\terrors = append(errors, compiler.NewError(context, message))\n\t\t\t}\n\t\t}\n\t\t// repeated NamedAny specification_extension = 6;\n\t\t// MAP: Any ^x-\n\t\tx.SpecificationExtension = make([]*NamedAny, 0)\n\t\tfor i := 0; i < len(m.Content); i += 2 {\n\t\t\tk, ok := compiler.StringForScalarNode(m.Content[i])\n\t\t\tif ok {\n\t\t\t\tv := m.Content[i+1]\n\t\t\t\tif strings.HasPrefix(k, \"x-\") {\n\t\t\t\t\tpair := &NamedAny{}\n\t\t\t\t\tpair.Name = k\n\t\t\t\t\tresult := &Any{}\n\t\t\t\t\thandled, resultFromExt, err := compiler.CallExtension(context, v, k)\n\t\t\t\t\tif handled {\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbytes := compiler.Marshal(v)\n\t\t\t\t\t\t\tresult.Yaml = string(bytes)\n\t\t\t\t\t\t\tresult.Value = resultFromExt\n\t\t\t\t\t\t\tpair.Value = result\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpair.Value, err = NewAny(v, compiler.NewContext(k, v, context))\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\terrors = append(errors, err)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tx.SpecificationExtension = append(x.SpecificationExtension, pair)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn x, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside AdditionalPropertiesItem objects.\nfunc (m *AdditionalPropertiesItem) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\t{\n\t\tp, ok := m.Oneof.(*AdditionalPropertiesItem_SchemaOrReference)\n\t\tif ok {\n\t\t\t_, err := p.SchemaOrReference.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Any objects.\nfunc (m *Any) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside AnyOrExpression objects.\nfunc (m *AnyOrExpression) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\t{\n\t\tp, ok := m.Oneof.(*AnyOrExpression_Any)\n\t\tif ok {\n\t\t\t_, err := p.Any.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*AnyOrExpression_Expression)\n\t\tif ok {\n\t\t\t_, err := p.Expression.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Callback objects.\nfunc (m *Callback) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.Path {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside CallbackOrReference objects.\nfunc (m *CallbackOrReference) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\t{\n\t\tp, ok := m.Oneof.(*CallbackOrReference_Callback)\n\t\tif ok {\n\t\t\t_, err := p.Callback.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*CallbackOrReference_Reference)\n\t\tif ok {\n\t\t\t_, err := p.Reference.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside CallbacksOrReferences objects.\nfunc (m *CallbacksOrReferences) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Components objects.\nfunc (m *Components) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Schemas != nil {\n\t\t_, err := m.Schemas.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Responses != nil {\n\t\t_, err := m.Responses.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Parameters != nil {\n\t\t_, err := m.Parameters.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Examples != nil {\n\t\t_, err := m.Examples.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.RequestBodies != nil {\n\t\t_, err := m.RequestBodies.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Headers != nil {\n\t\t_, err := m.Headers.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.SecuritySchemes != nil {\n\t\t_, err := m.SecuritySchemes.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Links != nil {\n\t\t_, err := m.Links.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Callbacks != nil {\n\t\t_, err := m.Callbacks.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Contact objects.\nfunc (m *Contact) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside DefaultType objects.\nfunc (m *DefaultType) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Discriminator objects.\nfunc (m *Discriminator) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Mapping != nil {\n\t\t_, err := m.Mapping.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Document objects.\nfunc (m *Document) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Info != nil {\n\t\t_, err := m.Info.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.Servers {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tif m.Paths != nil {\n\t\t_, err := m.Paths.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Components != nil {\n\t\t_, err := m.Components.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.Security {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tfor _, item := range m.Tags {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tif m.ExternalDocs != nil {\n\t\t_, err := m.ExternalDocs.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Encoding objects.\nfunc (m *Encoding) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Headers != nil {\n\t\t_, err := m.Headers.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Encodings objects.\nfunc (m *Encodings) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Example objects.\nfunc (m *Example) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside ExampleOrReference objects.\nfunc (m *ExampleOrReference) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\t{\n\t\tp, ok := m.Oneof.(*ExampleOrReference_Example)\n\t\tif ok {\n\t\t\t_, err := p.Example.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*ExampleOrReference_Reference)\n\t\tif ok {\n\t\t\t_, err := p.Reference.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside ExamplesOrReferences objects.\nfunc (m *ExamplesOrReferences) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Expression objects.\nfunc (m *Expression) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside ExternalDocs objects.\nfunc (m *ExternalDocs) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Header objects.\nfunc (m *Header) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Schema != nil {\n\t\t_, err := m.Schema.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Example != nil {\n\t\t_, err := m.Example.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Examples != nil {\n\t\t_, err := m.Examples.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Content != nil {\n\t\t_, err := m.Content.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside HeaderOrReference objects.\nfunc (m *HeaderOrReference) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\t{\n\t\tp, ok := m.Oneof.(*HeaderOrReference_Header)\n\t\tif ok {\n\t\t\t_, err := p.Header.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*HeaderOrReference_Reference)\n\t\tif ok {\n\t\t\t_, err := p.Reference.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside HeadersOrReferences objects.\nfunc (m *HeadersOrReferences) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Info objects.\nfunc (m *Info) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Contact != nil {\n\t\t_, err := m.Contact.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.License != nil {\n\t\t_, err := m.License.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside ItemsItem objects.\nfunc (m *ItemsItem) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.SchemaOrReference {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside License objects.\nfunc (m *License) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Link objects.\nfunc (m *Link) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Parameters != nil {\n\t\t_, err := m.Parameters.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.RequestBody != nil {\n\t\t_, err := m.RequestBody.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Server != nil {\n\t\t_, err := m.Server.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside LinkOrReference objects.\nfunc (m *LinkOrReference) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\t{\n\t\tp, ok := m.Oneof.(*LinkOrReference_Link)\n\t\tif ok {\n\t\t\t_, err := p.Link.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*LinkOrReference_Reference)\n\t\tif ok {\n\t\t\t_, err := p.Reference.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside LinksOrReferences objects.\nfunc (m *LinksOrReferences) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside MediaType objects.\nfunc (m *MediaType) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Schema != nil {\n\t\t_, err := m.Schema.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Example != nil {\n\t\t_, err := m.Example.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Examples != nil {\n\t\t_, err := m.Examples.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Encoding != nil {\n\t\t_, err := m.Encoding.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside MediaTypes objects.\nfunc (m *MediaTypes) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedAny objects.\nfunc (m *NamedAny) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedCallbackOrReference objects.\nfunc (m *NamedCallbackOrReference) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedEncoding objects.\nfunc (m *NamedEncoding) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedExampleOrReference objects.\nfunc (m *NamedExampleOrReference) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedHeaderOrReference objects.\nfunc (m *NamedHeaderOrReference) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedLinkOrReference objects.\nfunc (m *NamedLinkOrReference) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedMediaType objects.\nfunc (m *NamedMediaType) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedParameterOrReference objects.\nfunc (m *NamedParameterOrReference) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedPathItem objects.\nfunc (m *NamedPathItem) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedRequestBodyOrReference objects.\nfunc (m *NamedRequestBodyOrReference) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedResponseOrReference objects.\nfunc (m *NamedResponseOrReference) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedSchemaOrReference objects.\nfunc (m *NamedSchemaOrReference) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedSecuritySchemeOrReference objects.\nfunc (m *NamedSecuritySchemeOrReference) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedServerVariable objects.\nfunc (m *NamedServerVariable) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedString objects.\nfunc (m *NamedString) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside NamedStringArray objects.\nfunc (m *NamedStringArray) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Value != nil {\n\t\t_, err := m.Value.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside OauthFlow objects.\nfunc (m *OauthFlow) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Scopes != nil {\n\t\t_, err := m.Scopes.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside OauthFlows objects.\nfunc (m *OauthFlows) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Implicit != nil {\n\t\t_, err := m.Implicit.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Password != nil {\n\t\t_, err := m.Password.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.ClientCredentials != nil {\n\t\t_, err := m.ClientCredentials.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.AuthorizationCode != nil {\n\t\t_, err := m.AuthorizationCode.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Object objects.\nfunc (m *Object) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Operation objects.\nfunc (m *Operation) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.ExternalDocs != nil {\n\t\t_, err := m.ExternalDocs.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.Parameters {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tif m.RequestBody != nil {\n\t\t_, err := m.RequestBody.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Responses != nil {\n\t\t_, err := m.Responses.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Callbacks != nil {\n\t\t_, err := m.Callbacks.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.Security {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tfor _, item := range m.Servers {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Parameter objects.\nfunc (m *Parameter) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Schema != nil {\n\t\t_, err := m.Schema.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Example != nil {\n\t\t_, err := m.Example.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Examples != nil {\n\t\t_, err := m.Examples.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Content != nil {\n\t\t_, err := m.Content.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside ParameterOrReference objects.\nfunc (m *ParameterOrReference) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\t{\n\t\tp, ok := m.Oneof.(*ParameterOrReference_Parameter)\n\t\tif ok {\n\t\t\t_, err := p.Parameter.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*ParameterOrReference_Reference)\n\t\tif ok {\n\t\t\t_, err := p.Reference.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside ParametersOrReferences objects.\nfunc (m *ParametersOrReferences) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside PathItem objects.\nfunc (m *PathItem) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.XRef != \"\" {\n\t\tinfo, err := compiler.ReadInfoForRef(root, m.XRef)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif info != nil {\n\t\t\treplacement, err := NewPathItem(info, nil)\n\t\t\tif err == nil {\n\t\t\t\t*m = *replacement\n\t\t\t\treturn m.ResolveReferences(root)\n\t\t\t}\n\t\t}\n\t\treturn info, nil\n\t}\n\tif m.Get != nil {\n\t\t_, err := m.Get.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Put != nil {\n\t\t_, err := m.Put.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Post != nil {\n\t\t_, err := m.Post.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Delete != nil {\n\t\t_, err := m.Delete.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Options != nil {\n\t\t_, err := m.Options.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Head != nil {\n\t\t_, err := m.Head.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Patch != nil {\n\t\t_, err := m.Patch.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Trace != nil {\n\t\t_, err := m.Trace.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.Servers {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tfor _, item := range m.Parameters {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Paths objects.\nfunc (m *Paths) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.Path {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Properties objects.\nfunc (m *Properties) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Reference objects.\nfunc (m *Reference) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.XRef != \"\" {\n\t\tinfo, err := compiler.ReadInfoForRef(root, m.XRef)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif info != nil {\n\t\t\treplacement, err := NewReference(info, nil)\n\t\t\tif err == nil {\n\t\t\t\t*m = *replacement\n\t\t\t\treturn m.ResolveReferences(root)\n\t\t\t}\n\t\t}\n\t\treturn info, nil\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside RequestBodiesOrReferences objects.\nfunc (m *RequestBodiesOrReferences) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside RequestBody objects.\nfunc (m *RequestBody) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Content != nil {\n\t\t_, err := m.Content.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside RequestBodyOrReference objects.\nfunc (m *RequestBodyOrReference) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\t{\n\t\tp, ok := m.Oneof.(*RequestBodyOrReference_RequestBody)\n\t\tif ok {\n\t\t\t_, err := p.RequestBody.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*RequestBodyOrReference_Reference)\n\t\tif ok {\n\t\t\t_, err := p.Reference.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Response objects.\nfunc (m *Response) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Headers != nil {\n\t\t_, err := m.Headers.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Content != nil {\n\t\t_, err := m.Content.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Links != nil {\n\t\t_, err := m.Links.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside ResponseOrReference objects.\nfunc (m *ResponseOrReference) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\t{\n\t\tp, ok := m.Oneof.(*ResponseOrReference_Response)\n\t\tif ok {\n\t\t\t_, err := p.Response.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*ResponseOrReference_Reference)\n\t\tif ok {\n\t\t\t_, err := p.Reference.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Responses objects.\nfunc (m *Responses) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Default != nil {\n\t\t_, err := m.Default.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.ResponseOrReference {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside ResponsesOrReferences objects.\nfunc (m *ResponsesOrReferences) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Schema objects.\nfunc (m *Schema) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Discriminator != nil {\n\t\t_, err := m.Discriminator.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Xml != nil {\n\t\t_, err := m.Xml.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.ExternalDocs != nil {\n\t\t_, err := m.ExternalDocs.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Example != nil {\n\t\t_, err := m.Example.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.Enum {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tfor _, item := range m.AllOf {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tfor _, item := range m.OneOf {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tfor _, item := range m.AnyOf {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\tif m.Not != nil {\n\t\t_, err := m.Not.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Items != nil {\n\t\t_, err := m.Items.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Properties != nil {\n\t\t_, err := m.Properties.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.AdditionalProperties != nil {\n\t\t_, err := m.AdditionalProperties.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tif m.Default != nil {\n\t\t_, err := m.Default.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside SchemaOrReference objects.\nfunc (m *SchemaOrReference) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\t{\n\t\tp, ok := m.Oneof.(*SchemaOrReference_Schema)\n\t\tif ok {\n\t\t\t_, err := p.Schema.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*SchemaOrReference_Reference)\n\t\tif ok {\n\t\t\t_, err := p.Reference.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside SchemasOrReferences objects.\nfunc (m *SchemasOrReferences) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside SecurityRequirement objects.\nfunc (m *SecurityRequirement) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside SecurityScheme objects.\nfunc (m *SecurityScheme) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Flows != nil {\n\t\t_, err := m.Flows.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside SecuritySchemeOrReference objects.\nfunc (m *SecuritySchemeOrReference) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\t{\n\t\tp, ok := m.Oneof.(*SecuritySchemeOrReference_SecurityScheme)\n\t\tif ok {\n\t\t\t_, err := p.SecurityScheme.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\t{\n\t\tp, ok := m.Oneof.(*SecuritySchemeOrReference_Reference)\n\t\tif ok {\n\t\t\t_, err := p.Reference.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside SecuritySchemesOrReferences objects.\nfunc (m *SecuritySchemesOrReferences) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Server objects.\nfunc (m *Server) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.Variables != nil {\n\t\t_, err := m.Variables.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside ServerVariable objects.\nfunc (m *ServerVariable) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside ServerVariables objects.\nfunc (m *ServerVariables) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside SpecificationExtension objects.\nfunc (m *SpecificationExtension) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside StringArray objects.\nfunc (m *StringArray) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Strings objects.\nfunc (m *Strings) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.AdditionalProperties {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Tag objects.\nfunc (m *Tag) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tif m.ExternalDocs != nil {\n\t\t_, err := m.ExternalDocs.ResolveReferences(root)\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t}\n\t}\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ResolveReferences resolves references found inside Xml objects.\nfunc (m *Xml) ResolveReferences(root string) (*yaml.Node, error) {\n\terrors := make([]error, 0)\n\tfor _, item := range m.SpecificationExtension {\n\t\tif item != nil {\n\t\t\t_, err := item.ResolveReferences(root)\n\t\t\tif err != nil {\n\t\t\t\terrors = append(errors, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, compiler.NewErrorGroupOrNil(errors)\n}\n\n// ToRawInfo returns a description of AdditionalPropertiesItem suitable for JSON or YAML export.\nfunc (m *AdditionalPropertiesItem) ToRawInfo() *yaml.Node {\n\t// ONE OF WRAPPER\n\t// AdditionalPropertiesItem\n\t// {Name:schemaOrReference Type:SchemaOrReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv0 := m.GetSchemaOrReference()\n\tif v0 != nil {\n\t\treturn v0.ToRawInfo()\n\t}\n\t// {Name:boolean Type:bool StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tif v1, ok := m.GetOneof().(*AdditionalPropertiesItem_Boolean); ok {\n\t\treturn compiler.NewScalarNodeForBool(v1.Boolean)\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of Any suitable for JSON or YAML export.\nfunc (m *Any) ToRawInfo() *yaml.Node {\n\tvar err error\n\tvar node yaml.Node\n\terr = yaml.Unmarshal([]byte(m.Yaml), &node)\n\tif err == nil {\n\t\tif node.Kind == yaml.DocumentNode {\n\t\t\treturn node.Content[0]\n\t\t}\n\t\treturn &node\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of AnyOrExpression suitable for JSON or YAML export.\nfunc (m *AnyOrExpression) ToRawInfo() *yaml.Node {\n\t// ONE OF WRAPPER\n\t// AnyOrExpression\n\t// {Name:any Type:Any StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv0 := m.GetAny()\n\tif v0 != nil {\n\t\treturn v0.ToRawInfo()\n\t}\n\t// {Name:expression Type:Expression StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv1 := m.GetExpression()\n\tif v1 != nil {\n\t\treturn v1.ToRawInfo()\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of Callback suitable for JSON or YAML export.\nfunc (m *Callback) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Path != nil {\n\t\tfor _, item := range m.Path {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of CallbackOrReference suitable for JSON or YAML export.\nfunc (m *CallbackOrReference) ToRawInfo() *yaml.Node {\n\t// ONE OF WRAPPER\n\t// CallbackOrReference\n\t// {Name:callback Type:Callback StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv0 := m.GetCallback()\n\tif v0 != nil {\n\t\treturn v0.ToRawInfo()\n\t}\n\t// {Name:reference Type:Reference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv1 := m.GetReference()\n\tif v1 != nil {\n\t\treturn v1.ToRawInfo()\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of CallbacksOrReferences suitable for JSON or YAML export.\nfunc (m *CallbacksOrReferences) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Components suitable for JSON or YAML export.\nfunc (m *Components) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Schemas != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"schemas\"))\n\t\tinfo.Content = append(info.Content, m.Schemas.ToRawInfo())\n\t}\n\tif m.Responses != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"responses\"))\n\t\tinfo.Content = append(info.Content, m.Responses.ToRawInfo())\n\t}\n\tif m.Parameters != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"parameters\"))\n\t\tinfo.Content = append(info.Content, m.Parameters.ToRawInfo())\n\t}\n\tif m.Examples != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"examples\"))\n\t\tinfo.Content = append(info.Content, m.Examples.ToRawInfo())\n\t}\n\tif m.RequestBodies != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"requestBodies\"))\n\t\tinfo.Content = append(info.Content, m.RequestBodies.ToRawInfo())\n\t}\n\tif m.Headers != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"headers\"))\n\t\tinfo.Content = append(info.Content, m.Headers.ToRawInfo())\n\t}\n\tif m.SecuritySchemes != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"securitySchemes\"))\n\t\tinfo.Content = append(info.Content, m.SecuritySchemes.ToRawInfo())\n\t}\n\tif m.Links != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"links\"))\n\t\tinfo.Content = append(info.Content, m.Links.ToRawInfo())\n\t}\n\tif m.Callbacks != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"callbacks\"))\n\t\tinfo.Content = append(info.Content, m.Callbacks.ToRawInfo())\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Contact suitable for JSON or YAML export.\nfunc (m *Contact) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\tif m.Url != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"url\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Url))\n\t}\n\tif m.Email != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"email\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Email))\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of DefaultType suitable for JSON or YAML export.\nfunc (m *DefaultType) ToRawInfo() *yaml.Node {\n\t// ONE OF WRAPPER\n\t// DefaultType\n\t// {Name:number Type:float StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tif v0, ok := m.GetOneof().(*DefaultType_Number); ok {\n\t\treturn compiler.NewScalarNodeForFloat(v0.Number)\n\t}\n\t// {Name:boolean Type:bool StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tif v1, ok := m.GetOneof().(*DefaultType_Boolean); ok {\n\t\treturn compiler.NewScalarNodeForBool(v1.Boolean)\n\t}\n\t// {Name:string Type:string StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tif v2, ok := m.GetOneof().(*DefaultType_String_); ok {\n\t\treturn compiler.NewScalarNodeForString(v2.String_)\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of Discriminator suitable for JSON or YAML export.\nfunc (m *Discriminator) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"propertyName\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.PropertyName))\n\tif m.Mapping != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"mapping\"))\n\t\tinfo.Content = append(info.Content, m.Mapping.ToRawInfo())\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Document suitable for JSON or YAML export.\nfunc (m *Document) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"openapi\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Openapi))\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"info\"))\n\tinfo.Content = append(info.Content, m.Info.ToRawInfo())\n\tif len(m.Servers) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Servers {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"servers\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"paths\"))\n\tinfo.Content = append(info.Content, m.Paths.ToRawInfo())\n\tif m.Components != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"components\"))\n\t\tinfo.Content = append(info.Content, m.Components.ToRawInfo())\n\t}\n\tif len(m.Security) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Security {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"security\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif len(m.Tags) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Tags {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"tags\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif m.ExternalDocs != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"externalDocs\"))\n\t\tinfo.Content = append(info.Content, m.ExternalDocs.ToRawInfo())\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Encoding suitable for JSON or YAML export.\nfunc (m *Encoding) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.ContentType != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"contentType\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.ContentType))\n\t}\n\tif m.Headers != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"headers\"))\n\t\tinfo.Content = append(info.Content, m.Headers.ToRawInfo())\n\t}\n\tif m.Style != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"style\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Style))\n\t}\n\tif m.Explode != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"explode\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Explode))\n\t}\n\tif m.AllowReserved != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"allowReserved\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.AllowReserved))\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Encodings suitable for JSON or YAML export.\nfunc (m *Encodings) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Example suitable for JSON or YAML export.\nfunc (m *Example) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Summary != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"summary\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Summary))\n\t}\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.Value != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"value\"))\n\t\tinfo.Content = append(info.Content, m.Value.ToRawInfo())\n\t}\n\tif m.ExternalValue != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"externalValue\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.ExternalValue))\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of ExampleOrReference suitable for JSON or YAML export.\nfunc (m *ExampleOrReference) ToRawInfo() *yaml.Node {\n\t// ONE OF WRAPPER\n\t// ExampleOrReference\n\t// {Name:example Type:Example StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv0 := m.GetExample()\n\tif v0 != nil {\n\t\treturn v0.ToRawInfo()\n\t}\n\t// {Name:reference Type:Reference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv1 := m.GetReference()\n\tif v1 != nil {\n\t\treturn v1.ToRawInfo()\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of ExamplesOrReferences suitable for JSON or YAML export.\nfunc (m *ExamplesOrReferences) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Expression suitable for JSON or YAML export.\nfunc (m *Expression) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of ExternalDocs suitable for JSON or YAML export.\nfunc (m *ExternalDocs) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"url\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Url))\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Header suitable for JSON or YAML export.\nfunc (m *Header) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.Required != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"required\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Required))\n\t}\n\tif m.Deprecated != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"deprecated\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Deprecated))\n\t}\n\tif m.AllowEmptyValue != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"allowEmptyValue\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.AllowEmptyValue))\n\t}\n\tif m.Style != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"style\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Style))\n\t}\n\tif m.Explode != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"explode\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Explode))\n\t}\n\tif m.AllowReserved != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"allowReserved\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.AllowReserved))\n\t}\n\tif m.Schema != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"schema\"))\n\t\tinfo.Content = append(info.Content, m.Schema.ToRawInfo())\n\t}\n\tif m.Example != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"example\"))\n\t\tinfo.Content = append(info.Content, m.Example.ToRawInfo())\n\t}\n\tif m.Examples != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"examples\"))\n\t\tinfo.Content = append(info.Content, m.Examples.ToRawInfo())\n\t}\n\tif m.Content != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"content\"))\n\t\tinfo.Content = append(info.Content, m.Content.ToRawInfo())\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of HeaderOrReference suitable for JSON or YAML export.\nfunc (m *HeaderOrReference) ToRawInfo() *yaml.Node {\n\t// ONE OF WRAPPER\n\t// HeaderOrReference\n\t// {Name:header Type:Header StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv0 := m.GetHeader()\n\tif v0 != nil {\n\t\treturn v0.ToRawInfo()\n\t}\n\t// {Name:reference Type:Reference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv1 := m.GetReference()\n\tif v1 != nil {\n\t\treturn v1.ToRawInfo()\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of HeadersOrReferences suitable for JSON or YAML export.\nfunc (m *HeadersOrReferences) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Info suitable for JSON or YAML export.\nfunc (m *Info) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"title\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Title))\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.TermsOfService != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"termsOfService\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.TermsOfService))\n\t}\n\tif m.Contact != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"contact\"))\n\t\tinfo.Content = append(info.Content, m.Contact.ToRawInfo())\n\t}\n\tif m.License != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"license\"))\n\t\tinfo.Content = append(info.Content, m.License.ToRawInfo())\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"version\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Version))\n\tif m.Summary != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"summary\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Summary))\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of ItemsItem suitable for JSON or YAML export.\nfunc (m *ItemsItem) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif len(m.SchemaOrReference) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.SchemaOrReference {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"schemaOrReference\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of License suitable for JSON or YAML export.\nfunc (m *License) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\tif m.Url != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"url\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Url))\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Link suitable for JSON or YAML export.\nfunc (m *Link) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.OperationRef != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"operationRef\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.OperationRef))\n\t}\n\tif m.OperationId != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"operationId\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.OperationId))\n\t}\n\tif m.Parameters != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"parameters\"))\n\t\tinfo.Content = append(info.Content, m.Parameters.ToRawInfo())\n\t}\n\tif m.RequestBody != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"requestBody\"))\n\t\tinfo.Content = append(info.Content, m.RequestBody.ToRawInfo())\n\t}\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.Server != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"server\"))\n\t\tinfo.Content = append(info.Content, m.Server.ToRawInfo())\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of LinkOrReference suitable for JSON or YAML export.\nfunc (m *LinkOrReference) ToRawInfo() *yaml.Node {\n\t// ONE OF WRAPPER\n\t// LinkOrReference\n\t// {Name:link Type:Link StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv0 := m.GetLink()\n\tif v0 != nil {\n\t\treturn v0.ToRawInfo()\n\t}\n\t// {Name:reference Type:Reference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv1 := m.GetReference()\n\tif v1 != nil {\n\t\treturn v1.ToRawInfo()\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of LinksOrReferences suitable for JSON or YAML export.\nfunc (m *LinksOrReferences) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of MediaType suitable for JSON or YAML export.\nfunc (m *MediaType) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Schema != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"schema\"))\n\t\tinfo.Content = append(info.Content, m.Schema.ToRawInfo())\n\t}\n\tif m.Example != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"example\"))\n\t\tinfo.Content = append(info.Content, m.Example.ToRawInfo())\n\t}\n\tif m.Examples != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"examples\"))\n\t\tinfo.Content = append(info.Content, m.Examples.ToRawInfo())\n\t}\n\tif m.Encoding != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"encoding\"))\n\t\tinfo.Content = append(info.Content, m.Encoding.ToRawInfo())\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of MediaTypes suitable for JSON or YAML export.\nfunc (m *MediaTypes) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedAny suitable for JSON or YAML export.\nfunc (m *NamedAny) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\tif m.Value != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"value\"))\n\t\tinfo.Content = append(info.Content, m.Value.ToRawInfo())\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedCallbackOrReference suitable for JSON or YAML export.\nfunc (m *NamedCallbackOrReference) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:CallbackOrReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedEncoding suitable for JSON or YAML export.\nfunc (m *NamedEncoding) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:Encoding StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedExampleOrReference suitable for JSON or YAML export.\nfunc (m *NamedExampleOrReference) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:ExampleOrReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedHeaderOrReference suitable for JSON or YAML export.\nfunc (m *NamedHeaderOrReference) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:HeaderOrReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedLinkOrReference suitable for JSON or YAML export.\nfunc (m *NamedLinkOrReference) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:LinkOrReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedMediaType suitable for JSON or YAML export.\nfunc (m *NamedMediaType) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:MediaType StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedParameterOrReference suitable for JSON or YAML export.\nfunc (m *NamedParameterOrReference) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:ParameterOrReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedPathItem suitable for JSON or YAML export.\nfunc (m *NamedPathItem) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:PathItem StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedRequestBodyOrReference suitable for JSON or YAML export.\nfunc (m *NamedRequestBodyOrReference) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:RequestBodyOrReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedResponseOrReference suitable for JSON or YAML export.\nfunc (m *NamedResponseOrReference) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:ResponseOrReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedSchemaOrReference suitable for JSON or YAML export.\nfunc (m *NamedSchemaOrReference) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:SchemaOrReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedSecuritySchemeOrReference suitable for JSON or YAML export.\nfunc (m *NamedSecuritySchemeOrReference) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:SecuritySchemeOrReference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedServerVariable suitable for JSON or YAML export.\nfunc (m *NamedServerVariable) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:ServerVariable StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedString suitable for JSON or YAML export.\nfunc (m *NamedString) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\tif m.Value != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"value\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Value))\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of NamedStringArray suitable for JSON or YAML export.\nfunc (m *NamedStringArray) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\t// &{Name:value Type:StringArray StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:Mapped value}\n\treturn info\n}\n\n// ToRawInfo returns a description of OauthFlow suitable for JSON or YAML export.\nfunc (m *OauthFlow) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AuthorizationUrl != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"authorizationUrl\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.AuthorizationUrl))\n\t}\n\tif m.TokenUrl != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"tokenUrl\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.TokenUrl))\n\t}\n\tif m.RefreshUrl != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"refreshUrl\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.RefreshUrl))\n\t}\n\tif m.Scopes != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"scopes\"))\n\t\tinfo.Content = append(info.Content, m.Scopes.ToRawInfo())\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of OauthFlows suitable for JSON or YAML export.\nfunc (m *OauthFlows) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Implicit != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"implicit\"))\n\t\tinfo.Content = append(info.Content, m.Implicit.ToRawInfo())\n\t}\n\tif m.Password != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"password\"))\n\t\tinfo.Content = append(info.Content, m.Password.ToRawInfo())\n\t}\n\tif m.ClientCredentials != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"clientCredentials\"))\n\t\tinfo.Content = append(info.Content, m.ClientCredentials.ToRawInfo())\n\t}\n\tif m.AuthorizationCode != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"authorizationCode\"))\n\t\tinfo.Content = append(info.Content, m.AuthorizationCode.ToRawInfo())\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Object suitable for JSON or YAML export.\nfunc (m *Object) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Operation suitable for JSON or YAML export.\nfunc (m *Operation) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif len(m.Tags) != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"tags\"))\n\t\tinfo.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.Tags))\n\t}\n\tif m.Summary != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"summary\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Summary))\n\t}\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.ExternalDocs != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"externalDocs\"))\n\t\tinfo.Content = append(info.Content, m.ExternalDocs.ToRawInfo())\n\t}\n\tif m.OperationId != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"operationId\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.OperationId))\n\t}\n\tif len(m.Parameters) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Parameters {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"parameters\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif m.RequestBody != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"requestBody\"))\n\t\tinfo.Content = append(info.Content, m.RequestBody.ToRawInfo())\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"responses\"))\n\tinfo.Content = append(info.Content, m.Responses.ToRawInfo())\n\tif m.Callbacks != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"callbacks\"))\n\t\tinfo.Content = append(info.Content, m.Callbacks.ToRawInfo())\n\t}\n\tif m.Deprecated != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"deprecated\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Deprecated))\n\t}\n\tif len(m.Security) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Security {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"security\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif len(m.Servers) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Servers {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"servers\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Parameter suitable for JSON or YAML export.\nfunc (m *Parameter) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"in\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.In))\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.Required != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"required\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Required))\n\t}\n\tif m.Deprecated != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"deprecated\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Deprecated))\n\t}\n\tif m.AllowEmptyValue != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"allowEmptyValue\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.AllowEmptyValue))\n\t}\n\tif m.Style != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"style\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Style))\n\t}\n\tif m.Explode != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"explode\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Explode))\n\t}\n\tif m.AllowReserved != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"allowReserved\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.AllowReserved))\n\t}\n\tif m.Schema != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"schema\"))\n\t\tinfo.Content = append(info.Content, m.Schema.ToRawInfo())\n\t}\n\tif m.Example != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"example\"))\n\t\tinfo.Content = append(info.Content, m.Example.ToRawInfo())\n\t}\n\tif m.Examples != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"examples\"))\n\t\tinfo.Content = append(info.Content, m.Examples.ToRawInfo())\n\t}\n\tif m.Content != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"content\"))\n\t\tinfo.Content = append(info.Content, m.Content.ToRawInfo())\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of ParameterOrReference suitable for JSON or YAML export.\nfunc (m *ParameterOrReference) ToRawInfo() *yaml.Node {\n\t// ONE OF WRAPPER\n\t// ParameterOrReference\n\t// {Name:parameter Type:Parameter StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv0 := m.GetParameter()\n\tif v0 != nil {\n\t\treturn v0.ToRawInfo()\n\t}\n\t// {Name:reference Type:Reference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv1 := m.GetReference()\n\tif v1 != nil {\n\t\treturn v1.ToRawInfo()\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of ParametersOrReferences suitable for JSON or YAML export.\nfunc (m *ParametersOrReferences) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of PathItem suitable for JSON or YAML export.\nfunc (m *PathItem) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.XRef != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"$ref\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.XRef))\n\t}\n\tif m.Summary != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"summary\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Summary))\n\t}\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.Get != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"get\"))\n\t\tinfo.Content = append(info.Content, m.Get.ToRawInfo())\n\t}\n\tif m.Put != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"put\"))\n\t\tinfo.Content = append(info.Content, m.Put.ToRawInfo())\n\t}\n\tif m.Post != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"post\"))\n\t\tinfo.Content = append(info.Content, m.Post.ToRawInfo())\n\t}\n\tif m.Delete != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"delete\"))\n\t\tinfo.Content = append(info.Content, m.Delete.ToRawInfo())\n\t}\n\tif m.Options != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"options\"))\n\t\tinfo.Content = append(info.Content, m.Options.ToRawInfo())\n\t}\n\tif m.Head != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"head\"))\n\t\tinfo.Content = append(info.Content, m.Head.ToRawInfo())\n\t}\n\tif m.Patch != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"patch\"))\n\t\tinfo.Content = append(info.Content, m.Patch.ToRawInfo())\n\t}\n\tif m.Trace != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"trace\"))\n\t\tinfo.Content = append(info.Content, m.Trace.ToRawInfo())\n\t}\n\tif len(m.Servers) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Servers {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"servers\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif len(m.Parameters) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Parameters {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"parameters\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Paths suitable for JSON or YAML export.\nfunc (m *Paths) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Path != nil {\n\t\tfor _, item := range m.Path {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Properties suitable for JSON or YAML export.\nfunc (m *Properties) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Reference suitable for JSON or YAML export.\nfunc (m *Reference) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"$ref\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.XRef))\n\tif m.Summary != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"summary\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Summary))\n\t}\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of RequestBodiesOrReferences suitable for JSON or YAML export.\nfunc (m *RequestBodiesOrReferences) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of RequestBody suitable for JSON or YAML export.\nfunc (m *RequestBody) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"content\"))\n\tinfo.Content = append(info.Content, m.Content.ToRawInfo())\n\tif m.Required != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"required\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Required))\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of RequestBodyOrReference suitable for JSON or YAML export.\nfunc (m *RequestBodyOrReference) ToRawInfo() *yaml.Node {\n\t// ONE OF WRAPPER\n\t// RequestBodyOrReference\n\t// {Name:requestBody Type:RequestBody StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv0 := m.GetRequestBody()\n\tif v0 != nil {\n\t\treturn v0.ToRawInfo()\n\t}\n\t// {Name:reference Type:Reference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv1 := m.GetReference()\n\tif v1 != nil {\n\t\treturn v1.ToRawInfo()\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of Response suitable for JSON or YAML export.\nfunc (m *Response) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\tif m.Headers != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"headers\"))\n\t\tinfo.Content = append(info.Content, m.Headers.ToRawInfo())\n\t}\n\tif m.Content != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"content\"))\n\t\tinfo.Content = append(info.Content, m.Content.ToRawInfo())\n\t}\n\tif m.Links != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"links\"))\n\t\tinfo.Content = append(info.Content, m.Links.ToRawInfo())\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of ResponseOrReference suitable for JSON or YAML export.\nfunc (m *ResponseOrReference) ToRawInfo() *yaml.Node {\n\t// ONE OF WRAPPER\n\t// ResponseOrReference\n\t// {Name:response Type:Response StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv0 := m.GetResponse()\n\tif v0 != nil {\n\t\treturn v0.ToRawInfo()\n\t}\n\t// {Name:reference Type:Reference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv1 := m.GetReference()\n\tif v1 != nil {\n\t\treturn v1.ToRawInfo()\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of Responses suitable for JSON or YAML export.\nfunc (m *Responses) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Default != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"default\"))\n\t\tinfo.Content = append(info.Content, m.Default.ToRawInfo())\n\t}\n\tif m.ResponseOrReference != nil {\n\t\tfor _, item := range m.ResponseOrReference {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of ResponsesOrReferences suitable for JSON or YAML export.\nfunc (m *ResponsesOrReferences) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Schema suitable for JSON or YAML export.\nfunc (m *Schema) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Nullable != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"nullable\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Nullable))\n\t}\n\tif m.Discriminator != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"discriminator\"))\n\t\tinfo.Content = append(info.Content, m.Discriminator.ToRawInfo())\n\t}\n\tif m.ReadOnly != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"readOnly\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ReadOnly))\n\t}\n\tif m.WriteOnly != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"writeOnly\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.WriteOnly))\n\t}\n\tif m.Xml != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"xml\"))\n\t\tinfo.Content = append(info.Content, m.Xml.ToRawInfo())\n\t}\n\tif m.ExternalDocs != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"externalDocs\"))\n\t\tinfo.Content = append(info.Content, m.ExternalDocs.ToRawInfo())\n\t}\n\tif m.Example != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"example\"))\n\t\tinfo.Content = append(info.Content, m.Example.ToRawInfo())\n\t}\n\tif m.Deprecated != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"deprecated\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Deprecated))\n\t}\n\tif m.Title != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"title\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Title))\n\t}\n\tif m.MultipleOf != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"multipleOf\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.MultipleOf))\n\t}\n\tif m.Maximum != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maximum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.Maximum))\n\t}\n\tif m.ExclusiveMaximum != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"exclusiveMaximum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ExclusiveMaximum))\n\t}\n\tif m.Minimum != 0.0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minimum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForFloat(m.Minimum))\n\t}\n\tif m.ExclusiveMinimum != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"exclusiveMinimum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.ExclusiveMinimum))\n\t}\n\tif m.MaxLength != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maxLength\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MaxLength))\n\t}\n\tif m.MinLength != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minLength\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MinLength))\n\t}\n\tif m.Pattern != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"pattern\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Pattern))\n\t}\n\tif m.MaxItems != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maxItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MaxItems))\n\t}\n\tif m.MinItems != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MinItems))\n\t}\n\tif m.UniqueItems != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"uniqueItems\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.UniqueItems))\n\t}\n\tif m.MaxProperties != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"maxProperties\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MaxProperties))\n\t}\n\tif m.MinProperties != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"minProperties\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForInt(m.MinProperties))\n\t}\n\tif len(m.Required) != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"required\"))\n\t\tinfo.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.Required))\n\t}\n\tif len(m.Enum) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Enum {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"enum\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif m.Type != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"type\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Type))\n\t}\n\tif len(m.AllOf) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.AllOf {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"allOf\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif len(m.OneOf) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.OneOf {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"oneOf\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif len(m.AnyOf) != 0 {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.AnyOf {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"anyOf\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif m.Not != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"not\"))\n\t\tinfo.Content = append(info.Content, m.Not.ToRawInfo())\n\t}\n\tif m.Items != nil {\n\t\titems := compiler.NewSequenceNode()\n\t\tfor _, item := range m.Items.SchemaOrReference {\n\t\t\titems.Content = append(items.Content, item.ToRawInfo())\n\t\t}\n\t\tif len(items.Content) == 1 {\n\t\t\titems = items.Content[0]\n\t\t}\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"items\"))\n\t\tinfo.Content = append(info.Content, items)\n\t}\n\tif m.Properties != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"properties\"))\n\t\tinfo.Content = append(info.Content, m.Properties.ToRawInfo())\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"additionalProperties\"))\n\t\tinfo.Content = append(info.Content, m.AdditionalProperties.ToRawInfo())\n\t}\n\tif m.Default != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"default\"))\n\t\tinfo.Content = append(info.Content, m.Default.ToRawInfo())\n\t}\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.Format != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"format\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Format))\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of SchemaOrReference suitable for JSON or YAML export.\nfunc (m *SchemaOrReference) ToRawInfo() *yaml.Node {\n\t// ONE OF WRAPPER\n\t// SchemaOrReference\n\t// {Name:schema Type:Schema StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv0 := m.GetSchema()\n\tif v0 != nil {\n\t\treturn v0.ToRawInfo()\n\t}\n\t// {Name:reference Type:Reference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv1 := m.GetReference()\n\tif v1 != nil {\n\t\treturn v1.ToRawInfo()\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of SchemasOrReferences suitable for JSON or YAML export.\nfunc (m *SchemasOrReferences) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of SecurityRequirement suitable for JSON or YAML export.\nfunc (m *SecurityRequirement) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of SecurityScheme suitable for JSON or YAML export.\nfunc (m *SecurityScheme) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"type\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Type))\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\tif m.In != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"in\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.In))\n\t}\n\tif m.Scheme != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"scheme\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Scheme))\n\t}\n\tif m.BearerFormat != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"bearerFormat\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.BearerFormat))\n\t}\n\tif m.Flows != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"flows\"))\n\t\tinfo.Content = append(info.Content, m.Flows.ToRawInfo())\n\t}\n\tif m.OpenIdConnectUrl != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"openIdConnectUrl\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.OpenIdConnectUrl))\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of SecuritySchemeOrReference suitable for JSON or YAML export.\nfunc (m *SecuritySchemeOrReference) ToRawInfo() *yaml.Node {\n\t// ONE OF WRAPPER\n\t// SecuritySchemeOrReference\n\t// {Name:securityScheme Type:SecurityScheme StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv0 := m.GetSecurityScheme()\n\tif v0 != nil {\n\t\treturn v0.ToRawInfo()\n\t}\n\t// {Name:reference Type:Reference StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tv1 := m.GetReference()\n\tif v1 != nil {\n\t\treturn v1.ToRawInfo()\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of SecuritySchemesOrReferences suitable for JSON or YAML export.\nfunc (m *SecuritySchemesOrReferences) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Server suitable for JSON or YAML export.\nfunc (m *Server) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"url\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Url))\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.Variables != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"variables\"))\n\t\tinfo.Content = append(info.Content, m.Variables.ToRawInfo())\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of ServerVariable suitable for JSON or YAML export.\nfunc (m *ServerVariable) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif len(m.Enum) != 0 {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"enum\"))\n\t\tinfo.Content = append(info.Content, compiler.NewSequenceNodeForStringArray(m.Enum))\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"default\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Default))\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of ServerVariables suitable for JSON or YAML export.\nfunc (m *ServerVariables) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.AdditionalProperties != nil {\n\t\tfor _, item := range m.AdditionalProperties {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of SpecificationExtension suitable for JSON or YAML export.\nfunc (m *SpecificationExtension) ToRawInfo() *yaml.Node {\n\t// ONE OF WRAPPER\n\t// SpecificationExtension\n\t// {Name:number Type:float StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tif v0, ok := m.GetOneof().(*SpecificationExtension_Number); ok {\n\t\treturn compiler.NewScalarNodeForFloat(v0.Number)\n\t}\n\t// {Name:boolean Type:bool StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tif v1, ok := m.GetOneof().(*SpecificationExtension_Boolean); ok {\n\t\treturn compiler.NewScalarNodeForBool(v1.Boolean)\n\t}\n\t// {Name:string Type:string StringEnumValues:[] MapType: Repeated:false Pattern: Implicit:false Description:}\n\tif v2, ok := m.GetOneof().(*SpecificationExtension_String_); ok {\n\t\treturn compiler.NewScalarNodeForString(v2.String_)\n\t}\n\treturn compiler.NewNullNode()\n}\n\n// ToRawInfo returns a description of StringArray suitable for JSON or YAML export.\nfunc (m *StringArray) ToRawInfo() *yaml.Node {\n\treturn compiler.NewSequenceNodeForStringArray(m.Value)\n}\n\n// ToRawInfo returns a description of Strings suitable for JSON or YAML export.\nfunc (m *Strings) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// &{Name:additionalProperties Type:NamedString StringEnumValues:[] MapType:string Repeated:true Pattern: Implicit:true Description:}\n\treturn info\n}\n\n// ToRawInfo returns a description of Tag suitable for JSON or YAML export.\nfunc (m *Tag) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\t// always include this required field.\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\tif m.Description != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"description\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Description))\n\t}\n\tif m.ExternalDocs != nil {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"externalDocs\"))\n\t\tinfo.Content = append(info.Content, m.ExternalDocs.ToRawInfo())\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\n// ToRawInfo returns a description of Xml suitable for JSON or YAML export.\nfunc (m *Xml) ToRawInfo() *yaml.Node {\n\tinfo := compiler.NewMappingNode()\n\tif m == nil {\n\t\treturn info\n\t}\n\tif m.Name != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"name\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Name))\n\t}\n\tif m.Namespace != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"namespace\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Namespace))\n\t}\n\tif m.Prefix != \"\" {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"prefix\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(m.Prefix))\n\t}\n\tif m.Attribute != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"attribute\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Attribute))\n\t}\n\tif m.Wrapped != false {\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(\"wrapped\"))\n\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForBool(m.Wrapped))\n\t}\n\tif m.SpecificationExtension != nil {\n\t\tfor _, item := range m.SpecificationExtension {\n\t\t\tinfo.Content = append(info.Content, compiler.NewScalarNodeForString(item.Name))\n\t\t\tinfo.Content = append(info.Content, item.Value.ToRawInfo())\n\t\t}\n\t}\n\treturn info\n}\n\nvar (\n\tpattern0 = regexp.MustCompile(\"^\")\n\tpattern1 = regexp.MustCompile(\"^x-\")\n\tpattern2 = regexp.MustCompile(\"^/\")\n\tpattern3 = regexp.MustCompile(\"^([0-9X]{3})$\")\n)\n"
  },
  {
    "path": "vendor/github.com/google/gnostic-models/openapiv3/OpenAPIv3.pb.go",
    "content": "// Copyright 2020 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// THIS FILE IS AUTOMATICALLY GENERATED.\n\n// Code generated by protoc-gen-go. DO NOT EDIT.\n// versions:\n// \tprotoc-gen-go v1.27.1\n// \tprotoc        v3.19.3\n// source: openapiv3/OpenAPIv3.proto\n\npackage openapi_v3\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n\tprotoimpl \"google.golang.org/protobuf/runtime/protoimpl\"\n\tanypb \"google.golang.org/protobuf/types/known/anypb\"\n\treflect \"reflect\"\n\tsync \"sync\"\n)\n\nconst (\n\t// Verify that this generated code is sufficiently up-to-date.\n\t_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)\n\t// Verify that runtime/protoimpl is sufficiently up-to-date.\n\t_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)\n)\n\ntype AdditionalPropertiesItem struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Types that are assignable to Oneof:\n\t//\t*AdditionalPropertiesItem_SchemaOrReference\n\t//\t*AdditionalPropertiesItem_Boolean\n\tOneof isAdditionalPropertiesItem_Oneof `protobuf_oneof:\"oneof\"`\n}\n\nfunc (x *AdditionalPropertiesItem) Reset() {\n\t*x = AdditionalPropertiesItem{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[0]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *AdditionalPropertiesItem) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*AdditionalPropertiesItem) ProtoMessage() {}\n\nfunc (x *AdditionalPropertiesItem) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[0]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use AdditionalPropertiesItem.ProtoReflect.Descriptor instead.\nfunc (*AdditionalPropertiesItem) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{0}\n}\n\nfunc (m *AdditionalPropertiesItem) GetOneof() isAdditionalPropertiesItem_Oneof {\n\tif m != nil {\n\t\treturn m.Oneof\n\t}\n\treturn nil\n}\n\nfunc (x *AdditionalPropertiesItem) GetSchemaOrReference() *SchemaOrReference {\n\tif x, ok := x.GetOneof().(*AdditionalPropertiesItem_SchemaOrReference); ok {\n\t\treturn x.SchemaOrReference\n\t}\n\treturn nil\n}\n\nfunc (x *AdditionalPropertiesItem) GetBoolean() bool {\n\tif x, ok := x.GetOneof().(*AdditionalPropertiesItem_Boolean); ok {\n\t\treturn x.Boolean\n\t}\n\treturn false\n}\n\ntype isAdditionalPropertiesItem_Oneof interface {\n\tisAdditionalPropertiesItem_Oneof()\n}\n\ntype AdditionalPropertiesItem_SchemaOrReference struct {\n\tSchemaOrReference *SchemaOrReference `protobuf:\"bytes,1,opt,name=schema_or_reference,json=schemaOrReference,proto3,oneof\"`\n}\n\ntype AdditionalPropertiesItem_Boolean struct {\n\tBoolean bool `protobuf:\"varint,2,opt,name=boolean,proto3,oneof\"`\n}\n\nfunc (*AdditionalPropertiesItem_SchemaOrReference) isAdditionalPropertiesItem_Oneof() {}\n\nfunc (*AdditionalPropertiesItem_Boolean) isAdditionalPropertiesItem_Oneof() {}\n\ntype Any struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tValue *anypb.Any `protobuf:\"bytes,1,opt,name=value,proto3\" json:\"value,omitempty\"`\n\tYaml  string     `protobuf:\"bytes,2,opt,name=yaml,proto3\" json:\"yaml,omitempty\"`\n}\n\nfunc (x *Any) Reset() {\n\t*x = Any{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[1]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Any) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Any) ProtoMessage() {}\n\nfunc (x *Any) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[1]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Any.ProtoReflect.Descriptor instead.\nfunc (*Any) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{1}\n}\n\nfunc (x *Any) GetValue() *anypb.Any {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\nfunc (x *Any) GetYaml() string {\n\tif x != nil {\n\t\treturn x.Yaml\n\t}\n\treturn \"\"\n}\n\ntype AnyOrExpression struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Types that are assignable to Oneof:\n\t//\t*AnyOrExpression_Any\n\t//\t*AnyOrExpression_Expression\n\tOneof isAnyOrExpression_Oneof `protobuf_oneof:\"oneof\"`\n}\n\nfunc (x *AnyOrExpression) Reset() {\n\t*x = AnyOrExpression{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[2]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *AnyOrExpression) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*AnyOrExpression) ProtoMessage() {}\n\nfunc (x *AnyOrExpression) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[2]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use AnyOrExpression.ProtoReflect.Descriptor instead.\nfunc (*AnyOrExpression) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{2}\n}\n\nfunc (m *AnyOrExpression) GetOneof() isAnyOrExpression_Oneof {\n\tif m != nil {\n\t\treturn m.Oneof\n\t}\n\treturn nil\n}\n\nfunc (x *AnyOrExpression) GetAny() *Any {\n\tif x, ok := x.GetOneof().(*AnyOrExpression_Any); ok {\n\t\treturn x.Any\n\t}\n\treturn nil\n}\n\nfunc (x *AnyOrExpression) GetExpression() *Expression {\n\tif x, ok := x.GetOneof().(*AnyOrExpression_Expression); ok {\n\t\treturn x.Expression\n\t}\n\treturn nil\n}\n\ntype isAnyOrExpression_Oneof interface {\n\tisAnyOrExpression_Oneof()\n}\n\ntype AnyOrExpression_Any struct {\n\tAny *Any `protobuf:\"bytes,1,opt,name=any,proto3,oneof\"`\n}\n\ntype AnyOrExpression_Expression struct {\n\tExpression *Expression `protobuf:\"bytes,2,opt,name=expression,proto3,oneof\"`\n}\n\nfunc (*AnyOrExpression_Any) isAnyOrExpression_Oneof() {}\n\nfunc (*AnyOrExpression_Expression) isAnyOrExpression_Oneof() {}\n\n// A map of possible out-of band callbacks related to the parent operation. Each value in the map is a Path Item Object that describes a set of requests that may be initiated by the API provider and the expected responses. The key value used to identify the callback object is an expression, evaluated at runtime, that identifies a URL to use for the callback operation.\ntype Callback struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tPath                   []*NamedPathItem `protobuf:\"bytes,1,rep,name=path,proto3\" json:\"path,omitempty\"`\n\tSpecificationExtension []*NamedAny      `protobuf:\"bytes,2,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *Callback) Reset() {\n\t*x = Callback{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[3]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Callback) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Callback) ProtoMessage() {}\n\nfunc (x *Callback) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[3]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Callback.ProtoReflect.Descriptor instead.\nfunc (*Callback) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{3}\n}\n\nfunc (x *Callback) GetPath() []*NamedPathItem {\n\tif x != nil {\n\t\treturn x.Path\n\t}\n\treturn nil\n}\n\nfunc (x *Callback) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\ntype CallbackOrReference struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Types that are assignable to Oneof:\n\t//\t*CallbackOrReference_Callback\n\t//\t*CallbackOrReference_Reference\n\tOneof isCallbackOrReference_Oneof `protobuf_oneof:\"oneof\"`\n}\n\nfunc (x *CallbackOrReference) Reset() {\n\t*x = CallbackOrReference{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[4]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *CallbackOrReference) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*CallbackOrReference) ProtoMessage() {}\n\nfunc (x *CallbackOrReference) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[4]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use CallbackOrReference.ProtoReflect.Descriptor instead.\nfunc (*CallbackOrReference) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{4}\n}\n\nfunc (m *CallbackOrReference) GetOneof() isCallbackOrReference_Oneof {\n\tif m != nil {\n\t\treturn m.Oneof\n\t}\n\treturn nil\n}\n\nfunc (x *CallbackOrReference) GetCallback() *Callback {\n\tif x, ok := x.GetOneof().(*CallbackOrReference_Callback); ok {\n\t\treturn x.Callback\n\t}\n\treturn nil\n}\n\nfunc (x *CallbackOrReference) GetReference() *Reference {\n\tif x, ok := x.GetOneof().(*CallbackOrReference_Reference); ok {\n\t\treturn x.Reference\n\t}\n\treturn nil\n}\n\ntype isCallbackOrReference_Oneof interface {\n\tisCallbackOrReference_Oneof()\n}\n\ntype CallbackOrReference_Callback struct {\n\tCallback *Callback `protobuf:\"bytes,1,opt,name=callback,proto3,oneof\"`\n}\n\ntype CallbackOrReference_Reference struct {\n\tReference *Reference `protobuf:\"bytes,2,opt,name=reference,proto3,oneof\"`\n}\n\nfunc (*CallbackOrReference_Callback) isCallbackOrReference_Oneof() {}\n\nfunc (*CallbackOrReference_Reference) isCallbackOrReference_Oneof() {}\n\ntype CallbacksOrReferences struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedCallbackOrReference `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *CallbacksOrReferences) Reset() {\n\t*x = CallbacksOrReferences{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[5]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *CallbacksOrReferences) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*CallbacksOrReferences) ProtoMessage() {}\n\nfunc (x *CallbacksOrReferences) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[5]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use CallbacksOrReferences.ProtoReflect.Descriptor instead.\nfunc (*CallbacksOrReferences) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{5}\n}\n\nfunc (x *CallbacksOrReferences) GetAdditionalProperties() []*NamedCallbackOrReference {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\n// Holds a set of reusable objects for different aspects of the OAS. All objects defined within the components object will have no effect on the API unless they are explicitly referenced from properties outside the components object.\ntype Components struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tSchemas                *SchemasOrReferences         `protobuf:\"bytes,1,opt,name=schemas,proto3\" json:\"schemas,omitempty\"`\n\tResponses              *ResponsesOrReferences       `protobuf:\"bytes,2,opt,name=responses,proto3\" json:\"responses,omitempty\"`\n\tParameters             *ParametersOrReferences      `protobuf:\"bytes,3,opt,name=parameters,proto3\" json:\"parameters,omitempty\"`\n\tExamples               *ExamplesOrReferences        `protobuf:\"bytes,4,opt,name=examples,proto3\" json:\"examples,omitempty\"`\n\tRequestBodies          *RequestBodiesOrReferences   `protobuf:\"bytes,5,opt,name=request_bodies,json=requestBodies,proto3\" json:\"request_bodies,omitempty\"`\n\tHeaders                *HeadersOrReferences         `protobuf:\"bytes,6,opt,name=headers,proto3\" json:\"headers,omitempty\"`\n\tSecuritySchemes        *SecuritySchemesOrReferences `protobuf:\"bytes,7,opt,name=security_schemes,json=securitySchemes,proto3\" json:\"security_schemes,omitempty\"`\n\tLinks                  *LinksOrReferences           `protobuf:\"bytes,8,opt,name=links,proto3\" json:\"links,omitempty\"`\n\tCallbacks              *CallbacksOrReferences       `protobuf:\"bytes,9,opt,name=callbacks,proto3\" json:\"callbacks,omitempty\"`\n\tSpecificationExtension []*NamedAny                  `protobuf:\"bytes,10,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *Components) Reset() {\n\t*x = Components{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[6]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Components) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Components) ProtoMessage() {}\n\nfunc (x *Components) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[6]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Components.ProtoReflect.Descriptor instead.\nfunc (*Components) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{6}\n}\n\nfunc (x *Components) GetSchemas() *SchemasOrReferences {\n\tif x != nil {\n\t\treturn x.Schemas\n\t}\n\treturn nil\n}\n\nfunc (x *Components) GetResponses() *ResponsesOrReferences {\n\tif x != nil {\n\t\treturn x.Responses\n\t}\n\treturn nil\n}\n\nfunc (x *Components) GetParameters() *ParametersOrReferences {\n\tif x != nil {\n\t\treturn x.Parameters\n\t}\n\treturn nil\n}\n\nfunc (x *Components) GetExamples() *ExamplesOrReferences {\n\tif x != nil {\n\t\treturn x.Examples\n\t}\n\treturn nil\n}\n\nfunc (x *Components) GetRequestBodies() *RequestBodiesOrReferences {\n\tif x != nil {\n\t\treturn x.RequestBodies\n\t}\n\treturn nil\n}\n\nfunc (x *Components) GetHeaders() *HeadersOrReferences {\n\tif x != nil {\n\t\treturn x.Headers\n\t}\n\treturn nil\n}\n\nfunc (x *Components) GetSecuritySchemes() *SecuritySchemesOrReferences {\n\tif x != nil {\n\t\treturn x.SecuritySchemes\n\t}\n\treturn nil\n}\n\nfunc (x *Components) GetLinks() *LinksOrReferences {\n\tif x != nil {\n\t\treturn x.Links\n\t}\n\treturn nil\n}\n\nfunc (x *Components) GetCallbacks() *CallbacksOrReferences {\n\tif x != nil {\n\t\treturn x.Callbacks\n\t}\n\treturn nil\n}\n\nfunc (x *Components) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\n// Contact information for the exposed API.\ntype Contact struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tName                   string      `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\tUrl                    string      `protobuf:\"bytes,2,opt,name=url,proto3\" json:\"url,omitempty\"`\n\tEmail                  string      `protobuf:\"bytes,3,opt,name=email,proto3\" json:\"email,omitempty\"`\n\tSpecificationExtension []*NamedAny `protobuf:\"bytes,4,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *Contact) Reset() {\n\t*x = Contact{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[7]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Contact) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Contact) ProtoMessage() {}\n\nfunc (x *Contact) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[7]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Contact.ProtoReflect.Descriptor instead.\nfunc (*Contact) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{7}\n}\n\nfunc (x *Contact) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *Contact) GetUrl() string {\n\tif x != nil {\n\t\treturn x.Url\n\t}\n\treturn \"\"\n}\n\nfunc (x *Contact) GetEmail() string {\n\tif x != nil {\n\t\treturn x.Email\n\t}\n\treturn \"\"\n}\n\nfunc (x *Contact) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\ntype DefaultType struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Types that are assignable to Oneof:\n\t//\t*DefaultType_Number\n\t//\t*DefaultType_Boolean\n\t//\t*DefaultType_String_\n\tOneof isDefaultType_Oneof `protobuf_oneof:\"oneof\"`\n}\n\nfunc (x *DefaultType) Reset() {\n\t*x = DefaultType{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[8]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *DefaultType) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*DefaultType) ProtoMessage() {}\n\nfunc (x *DefaultType) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[8]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use DefaultType.ProtoReflect.Descriptor instead.\nfunc (*DefaultType) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{8}\n}\n\nfunc (m *DefaultType) GetOneof() isDefaultType_Oneof {\n\tif m != nil {\n\t\treturn m.Oneof\n\t}\n\treturn nil\n}\n\nfunc (x *DefaultType) GetNumber() float64 {\n\tif x, ok := x.GetOneof().(*DefaultType_Number); ok {\n\t\treturn x.Number\n\t}\n\treturn 0\n}\n\nfunc (x *DefaultType) GetBoolean() bool {\n\tif x, ok := x.GetOneof().(*DefaultType_Boolean); ok {\n\t\treturn x.Boolean\n\t}\n\treturn false\n}\n\nfunc (x *DefaultType) GetString_() string {\n\tif x, ok := x.GetOneof().(*DefaultType_String_); ok {\n\t\treturn x.String_\n\t}\n\treturn \"\"\n}\n\ntype isDefaultType_Oneof interface {\n\tisDefaultType_Oneof()\n}\n\ntype DefaultType_Number struct {\n\tNumber float64 `protobuf:\"fixed64,1,opt,name=number,proto3,oneof\"`\n}\n\ntype DefaultType_Boolean struct {\n\tBoolean bool `protobuf:\"varint,2,opt,name=boolean,proto3,oneof\"`\n}\n\ntype DefaultType_String_ struct {\n\tString_ string `protobuf:\"bytes,3,opt,name=string,proto3,oneof\"`\n}\n\nfunc (*DefaultType_Number) isDefaultType_Oneof() {}\n\nfunc (*DefaultType_Boolean) isDefaultType_Oneof() {}\n\nfunc (*DefaultType_String_) isDefaultType_Oneof() {}\n\n// When request bodies or response payloads may be one of a number of different schemas, a `discriminator` object can be used to aid in serialization, deserialization, and validation.  The discriminator is a specific object in a schema which is used to inform the consumer of the specification of an alternative schema based on the value associated with it.  When using the discriminator, _inline_ schemas will not be considered.\ntype Discriminator struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tPropertyName           string      `protobuf:\"bytes,1,opt,name=property_name,json=propertyName,proto3\" json:\"property_name,omitempty\"`\n\tMapping                *Strings    `protobuf:\"bytes,2,opt,name=mapping,proto3\" json:\"mapping,omitempty\"`\n\tSpecificationExtension []*NamedAny `protobuf:\"bytes,3,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *Discriminator) Reset() {\n\t*x = Discriminator{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[9]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Discriminator) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Discriminator) ProtoMessage() {}\n\nfunc (x *Discriminator) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[9]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Discriminator.ProtoReflect.Descriptor instead.\nfunc (*Discriminator) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{9}\n}\n\nfunc (x *Discriminator) GetPropertyName() string {\n\tif x != nil {\n\t\treturn x.PropertyName\n\t}\n\treturn \"\"\n}\n\nfunc (x *Discriminator) GetMapping() *Strings {\n\tif x != nil {\n\t\treturn x.Mapping\n\t}\n\treturn nil\n}\n\nfunc (x *Discriminator) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\ntype Document struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tOpenapi                string                 `protobuf:\"bytes,1,opt,name=openapi,proto3\" json:\"openapi,omitempty\"`\n\tInfo                   *Info                  `protobuf:\"bytes,2,opt,name=info,proto3\" json:\"info,omitempty\"`\n\tServers                []*Server              `protobuf:\"bytes,3,rep,name=servers,proto3\" json:\"servers,omitempty\"`\n\tPaths                  *Paths                 `protobuf:\"bytes,4,opt,name=paths,proto3\" json:\"paths,omitempty\"`\n\tComponents             *Components            `protobuf:\"bytes,5,opt,name=components,proto3\" json:\"components,omitempty\"`\n\tSecurity               []*SecurityRequirement `protobuf:\"bytes,6,rep,name=security,proto3\" json:\"security,omitempty\"`\n\tTags                   []*Tag                 `protobuf:\"bytes,7,rep,name=tags,proto3\" json:\"tags,omitempty\"`\n\tExternalDocs           *ExternalDocs          `protobuf:\"bytes,8,opt,name=external_docs,json=externalDocs,proto3\" json:\"external_docs,omitempty\"`\n\tSpecificationExtension []*NamedAny            `protobuf:\"bytes,9,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *Document) Reset() {\n\t*x = Document{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[10]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Document) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Document) ProtoMessage() {}\n\nfunc (x *Document) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[10]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Document.ProtoReflect.Descriptor instead.\nfunc (*Document) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{10}\n}\n\nfunc (x *Document) GetOpenapi() string {\n\tif x != nil {\n\t\treturn x.Openapi\n\t}\n\treturn \"\"\n}\n\nfunc (x *Document) GetInfo() *Info {\n\tif x != nil {\n\t\treturn x.Info\n\t}\n\treturn nil\n}\n\nfunc (x *Document) GetServers() []*Server {\n\tif x != nil {\n\t\treturn x.Servers\n\t}\n\treturn nil\n}\n\nfunc (x *Document) GetPaths() *Paths {\n\tif x != nil {\n\t\treturn x.Paths\n\t}\n\treturn nil\n}\n\nfunc (x *Document) GetComponents() *Components {\n\tif x != nil {\n\t\treturn x.Components\n\t}\n\treturn nil\n}\n\nfunc (x *Document) GetSecurity() []*SecurityRequirement {\n\tif x != nil {\n\t\treturn x.Security\n\t}\n\treturn nil\n}\n\nfunc (x *Document) GetTags() []*Tag {\n\tif x != nil {\n\t\treturn x.Tags\n\t}\n\treturn nil\n}\n\nfunc (x *Document) GetExternalDocs() *ExternalDocs {\n\tif x != nil {\n\t\treturn x.ExternalDocs\n\t}\n\treturn nil\n}\n\nfunc (x *Document) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\n// A single encoding definition applied to a single schema property.\ntype Encoding struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tContentType            string               `protobuf:\"bytes,1,opt,name=content_type,json=contentType,proto3\" json:\"content_type,omitempty\"`\n\tHeaders                *HeadersOrReferences `protobuf:\"bytes,2,opt,name=headers,proto3\" json:\"headers,omitempty\"`\n\tStyle                  string               `protobuf:\"bytes,3,opt,name=style,proto3\" json:\"style,omitempty\"`\n\tExplode                bool                 `protobuf:\"varint,4,opt,name=explode,proto3\" json:\"explode,omitempty\"`\n\tAllowReserved          bool                 `protobuf:\"varint,5,opt,name=allow_reserved,json=allowReserved,proto3\" json:\"allow_reserved,omitempty\"`\n\tSpecificationExtension []*NamedAny          `protobuf:\"bytes,6,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *Encoding) Reset() {\n\t*x = Encoding{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[11]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Encoding) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Encoding) ProtoMessage() {}\n\nfunc (x *Encoding) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[11]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Encoding.ProtoReflect.Descriptor instead.\nfunc (*Encoding) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{11}\n}\n\nfunc (x *Encoding) GetContentType() string {\n\tif x != nil {\n\t\treturn x.ContentType\n\t}\n\treturn \"\"\n}\n\nfunc (x *Encoding) GetHeaders() *HeadersOrReferences {\n\tif x != nil {\n\t\treturn x.Headers\n\t}\n\treturn nil\n}\n\nfunc (x *Encoding) GetStyle() string {\n\tif x != nil {\n\t\treturn x.Style\n\t}\n\treturn \"\"\n}\n\nfunc (x *Encoding) GetExplode() bool {\n\tif x != nil {\n\t\treturn x.Explode\n\t}\n\treturn false\n}\n\nfunc (x *Encoding) GetAllowReserved() bool {\n\tif x != nil {\n\t\treturn x.AllowReserved\n\t}\n\treturn false\n}\n\nfunc (x *Encoding) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\ntype Encodings struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedEncoding `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *Encodings) Reset() {\n\t*x = Encodings{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[12]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Encodings) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Encodings) ProtoMessage() {}\n\nfunc (x *Encodings) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[12]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Encodings.ProtoReflect.Descriptor instead.\nfunc (*Encodings) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{12}\n}\n\nfunc (x *Encodings) GetAdditionalProperties() []*NamedEncoding {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\ntype Example struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tSummary                string      `protobuf:\"bytes,1,opt,name=summary,proto3\" json:\"summary,omitempty\"`\n\tDescription            string      `protobuf:\"bytes,2,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tValue                  *Any        `protobuf:\"bytes,3,opt,name=value,proto3\" json:\"value,omitempty\"`\n\tExternalValue          string      `protobuf:\"bytes,4,opt,name=external_value,json=externalValue,proto3\" json:\"external_value,omitempty\"`\n\tSpecificationExtension []*NamedAny `protobuf:\"bytes,5,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *Example) Reset() {\n\t*x = Example{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[13]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Example) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Example) ProtoMessage() {}\n\nfunc (x *Example) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[13]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Example.ProtoReflect.Descriptor instead.\nfunc (*Example) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{13}\n}\n\nfunc (x *Example) GetSummary() string {\n\tif x != nil {\n\t\treturn x.Summary\n\t}\n\treturn \"\"\n}\n\nfunc (x *Example) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *Example) GetValue() *Any {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\nfunc (x *Example) GetExternalValue() string {\n\tif x != nil {\n\t\treturn x.ExternalValue\n\t}\n\treturn \"\"\n}\n\nfunc (x *Example) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\ntype ExampleOrReference struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Types that are assignable to Oneof:\n\t//\t*ExampleOrReference_Example\n\t//\t*ExampleOrReference_Reference\n\tOneof isExampleOrReference_Oneof `protobuf_oneof:\"oneof\"`\n}\n\nfunc (x *ExampleOrReference) Reset() {\n\t*x = ExampleOrReference{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[14]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ExampleOrReference) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ExampleOrReference) ProtoMessage() {}\n\nfunc (x *ExampleOrReference) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[14]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ExampleOrReference.ProtoReflect.Descriptor instead.\nfunc (*ExampleOrReference) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{14}\n}\n\nfunc (m *ExampleOrReference) GetOneof() isExampleOrReference_Oneof {\n\tif m != nil {\n\t\treturn m.Oneof\n\t}\n\treturn nil\n}\n\nfunc (x *ExampleOrReference) GetExample() *Example {\n\tif x, ok := x.GetOneof().(*ExampleOrReference_Example); ok {\n\t\treturn x.Example\n\t}\n\treturn nil\n}\n\nfunc (x *ExampleOrReference) GetReference() *Reference {\n\tif x, ok := x.GetOneof().(*ExampleOrReference_Reference); ok {\n\t\treturn x.Reference\n\t}\n\treturn nil\n}\n\ntype isExampleOrReference_Oneof interface {\n\tisExampleOrReference_Oneof()\n}\n\ntype ExampleOrReference_Example struct {\n\tExample *Example `protobuf:\"bytes,1,opt,name=example,proto3,oneof\"`\n}\n\ntype ExampleOrReference_Reference struct {\n\tReference *Reference `protobuf:\"bytes,2,opt,name=reference,proto3,oneof\"`\n}\n\nfunc (*ExampleOrReference_Example) isExampleOrReference_Oneof() {}\n\nfunc (*ExampleOrReference_Reference) isExampleOrReference_Oneof() {}\n\ntype ExamplesOrReferences struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedExampleOrReference `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *ExamplesOrReferences) Reset() {\n\t*x = ExamplesOrReferences{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[15]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ExamplesOrReferences) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ExamplesOrReferences) ProtoMessage() {}\n\nfunc (x *ExamplesOrReferences) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[15]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ExamplesOrReferences.ProtoReflect.Descriptor instead.\nfunc (*ExamplesOrReferences) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{15}\n}\n\nfunc (x *ExamplesOrReferences) GetAdditionalProperties() []*NamedExampleOrReference {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\ntype Expression struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedAny `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *Expression) Reset() {\n\t*x = Expression{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[16]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Expression) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Expression) ProtoMessage() {}\n\nfunc (x *Expression) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[16]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Expression.ProtoReflect.Descriptor instead.\nfunc (*Expression) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{16}\n}\n\nfunc (x *Expression) GetAdditionalProperties() []*NamedAny {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\n// Allows referencing an external resource for extended documentation.\ntype ExternalDocs struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tDescription            string      `protobuf:\"bytes,1,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tUrl                    string      `protobuf:\"bytes,2,opt,name=url,proto3\" json:\"url,omitempty\"`\n\tSpecificationExtension []*NamedAny `protobuf:\"bytes,3,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *ExternalDocs) Reset() {\n\t*x = ExternalDocs{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[17]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ExternalDocs) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ExternalDocs) ProtoMessage() {}\n\nfunc (x *ExternalDocs) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[17]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ExternalDocs.ProtoReflect.Descriptor instead.\nfunc (*ExternalDocs) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{17}\n}\n\nfunc (x *ExternalDocs) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *ExternalDocs) GetUrl() string {\n\tif x != nil {\n\t\treturn x.Url\n\t}\n\treturn \"\"\n}\n\nfunc (x *ExternalDocs) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\n// The Header Object follows the structure of the Parameter Object with the following changes:  1. `name` MUST NOT be specified, it is given in the corresponding `headers` map. 1. `in` MUST NOT be specified, it is implicitly in `header`. 1. All traits that are affected by the location MUST be applicable to a location of `header` (for example, `style`).\ntype Header struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tDescription            string                `protobuf:\"bytes,1,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tRequired               bool                  `protobuf:\"varint,2,opt,name=required,proto3\" json:\"required,omitempty\"`\n\tDeprecated             bool                  `protobuf:\"varint,3,opt,name=deprecated,proto3\" json:\"deprecated,omitempty\"`\n\tAllowEmptyValue        bool                  `protobuf:\"varint,4,opt,name=allow_empty_value,json=allowEmptyValue,proto3\" json:\"allow_empty_value,omitempty\"`\n\tStyle                  string                `protobuf:\"bytes,5,opt,name=style,proto3\" json:\"style,omitempty\"`\n\tExplode                bool                  `protobuf:\"varint,6,opt,name=explode,proto3\" json:\"explode,omitempty\"`\n\tAllowReserved          bool                  `protobuf:\"varint,7,opt,name=allow_reserved,json=allowReserved,proto3\" json:\"allow_reserved,omitempty\"`\n\tSchema                 *SchemaOrReference    `protobuf:\"bytes,8,opt,name=schema,proto3\" json:\"schema,omitempty\"`\n\tExample                *Any                  `protobuf:\"bytes,9,opt,name=example,proto3\" json:\"example,omitempty\"`\n\tExamples               *ExamplesOrReferences `protobuf:\"bytes,10,opt,name=examples,proto3\" json:\"examples,omitempty\"`\n\tContent                *MediaTypes           `protobuf:\"bytes,11,opt,name=content,proto3\" json:\"content,omitempty\"`\n\tSpecificationExtension []*NamedAny           `protobuf:\"bytes,12,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *Header) Reset() {\n\t*x = Header{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[18]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Header) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Header) ProtoMessage() {}\n\nfunc (x *Header) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[18]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Header.ProtoReflect.Descriptor instead.\nfunc (*Header) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{18}\n}\n\nfunc (x *Header) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *Header) GetRequired() bool {\n\tif x != nil {\n\t\treturn x.Required\n\t}\n\treturn false\n}\n\nfunc (x *Header) GetDeprecated() bool {\n\tif x != nil {\n\t\treturn x.Deprecated\n\t}\n\treturn false\n}\n\nfunc (x *Header) GetAllowEmptyValue() bool {\n\tif x != nil {\n\t\treturn x.AllowEmptyValue\n\t}\n\treturn false\n}\n\nfunc (x *Header) GetStyle() string {\n\tif x != nil {\n\t\treturn x.Style\n\t}\n\treturn \"\"\n}\n\nfunc (x *Header) GetExplode() bool {\n\tif x != nil {\n\t\treturn x.Explode\n\t}\n\treturn false\n}\n\nfunc (x *Header) GetAllowReserved() bool {\n\tif x != nil {\n\t\treturn x.AllowReserved\n\t}\n\treturn false\n}\n\nfunc (x *Header) GetSchema() *SchemaOrReference {\n\tif x != nil {\n\t\treturn x.Schema\n\t}\n\treturn nil\n}\n\nfunc (x *Header) GetExample() *Any {\n\tif x != nil {\n\t\treturn x.Example\n\t}\n\treturn nil\n}\n\nfunc (x *Header) GetExamples() *ExamplesOrReferences {\n\tif x != nil {\n\t\treturn x.Examples\n\t}\n\treturn nil\n}\n\nfunc (x *Header) GetContent() *MediaTypes {\n\tif x != nil {\n\t\treturn x.Content\n\t}\n\treturn nil\n}\n\nfunc (x *Header) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\ntype HeaderOrReference struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Types that are assignable to Oneof:\n\t//\t*HeaderOrReference_Header\n\t//\t*HeaderOrReference_Reference\n\tOneof isHeaderOrReference_Oneof `protobuf_oneof:\"oneof\"`\n}\n\nfunc (x *HeaderOrReference) Reset() {\n\t*x = HeaderOrReference{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[19]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *HeaderOrReference) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*HeaderOrReference) ProtoMessage() {}\n\nfunc (x *HeaderOrReference) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[19]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use HeaderOrReference.ProtoReflect.Descriptor instead.\nfunc (*HeaderOrReference) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{19}\n}\n\nfunc (m *HeaderOrReference) GetOneof() isHeaderOrReference_Oneof {\n\tif m != nil {\n\t\treturn m.Oneof\n\t}\n\treturn nil\n}\n\nfunc (x *HeaderOrReference) GetHeader() *Header {\n\tif x, ok := x.GetOneof().(*HeaderOrReference_Header); ok {\n\t\treturn x.Header\n\t}\n\treturn nil\n}\n\nfunc (x *HeaderOrReference) GetReference() *Reference {\n\tif x, ok := x.GetOneof().(*HeaderOrReference_Reference); ok {\n\t\treturn x.Reference\n\t}\n\treturn nil\n}\n\ntype isHeaderOrReference_Oneof interface {\n\tisHeaderOrReference_Oneof()\n}\n\ntype HeaderOrReference_Header struct {\n\tHeader *Header `protobuf:\"bytes,1,opt,name=header,proto3,oneof\"`\n}\n\ntype HeaderOrReference_Reference struct {\n\tReference *Reference `protobuf:\"bytes,2,opt,name=reference,proto3,oneof\"`\n}\n\nfunc (*HeaderOrReference_Header) isHeaderOrReference_Oneof() {}\n\nfunc (*HeaderOrReference_Reference) isHeaderOrReference_Oneof() {}\n\ntype HeadersOrReferences struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedHeaderOrReference `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *HeadersOrReferences) Reset() {\n\t*x = HeadersOrReferences{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[20]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *HeadersOrReferences) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*HeadersOrReferences) ProtoMessage() {}\n\nfunc (x *HeadersOrReferences) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[20]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use HeadersOrReferences.ProtoReflect.Descriptor instead.\nfunc (*HeadersOrReferences) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{20}\n}\n\nfunc (x *HeadersOrReferences) GetAdditionalProperties() []*NamedHeaderOrReference {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\n// The object provides metadata about the API. The metadata MAY be used by the clients if needed, and MAY be presented in editing or documentation generation tools for convenience.\ntype Info struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tTitle                  string      `protobuf:\"bytes,1,opt,name=title,proto3\" json:\"title,omitempty\"`\n\tDescription            string      `protobuf:\"bytes,2,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tTermsOfService         string      `protobuf:\"bytes,3,opt,name=terms_of_service,json=termsOfService,proto3\" json:\"terms_of_service,omitempty\"`\n\tContact                *Contact    `protobuf:\"bytes,4,opt,name=contact,proto3\" json:\"contact,omitempty\"`\n\tLicense                *License    `protobuf:\"bytes,5,opt,name=license,proto3\" json:\"license,omitempty\"`\n\tVersion                string      `protobuf:\"bytes,6,opt,name=version,proto3\" json:\"version,omitempty\"`\n\tSpecificationExtension []*NamedAny `protobuf:\"bytes,7,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n\tSummary                string      `protobuf:\"bytes,8,opt,name=summary,proto3\" json:\"summary,omitempty\"`\n}\n\nfunc (x *Info) Reset() {\n\t*x = Info{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[21]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Info) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Info) ProtoMessage() {}\n\nfunc (x *Info) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[21]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Info.ProtoReflect.Descriptor instead.\nfunc (*Info) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{21}\n}\n\nfunc (x *Info) GetTitle() string {\n\tif x != nil {\n\t\treturn x.Title\n\t}\n\treturn \"\"\n}\n\nfunc (x *Info) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *Info) GetTermsOfService() string {\n\tif x != nil {\n\t\treturn x.TermsOfService\n\t}\n\treturn \"\"\n}\n\nfunc (x *Info) GetContact() *Contact {\n\tif x != nil {\n\t\treturn x.Contact\n\t}\n\treturn nil\n}\n\nfunc (x *Info) GetLicense() *License {\n\tif x != nil {\n\t\treturn x.License\n\t}\n\treturn nil\n}\n\nfunc (x *Info) GetVersion() string {\n\tif x != nil {\n\t\treturn x.Version\n\t}\n\treturn \"\"\n}\n\nfunc (x *Info) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\nfunc (x *Info) GetSummary() string {\n\tif x != nil {\n\t\treturn x.Summary\n\t}\n\treturn \"\"\n}\n\ntype ItemsItem struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tSchemaOrReference []*SchemaOrReference `protobuf:\"bytes,1,rep,name=schema_or_reference,json=schemaOrReference,proto3\" json:\"schema_or_reference,omitempty\"`\n}\n\nfunc (x *ItemsItem) Reset() {\n\t*x = ItemsItem{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[22]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ItemsItem) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ItemsItem) ProtoMessage() {}\n\nfunc (x *ItemsItem) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[22]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ItemsItem.ProtoReflect.Descriptor instead.\nfunc (*ItemsItem) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{22}\n}\n\nfunc (x *ItemsItem) GetSchemaOrReference() []*SchemaOrReference {\n\tif x != nil {\n\t\treturn x.SchemaOrReference\n\t}\n\treturn nil\n}\n\n// License information for the exposed API.\ntype License struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tName                   string      `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\tUrl                    string      `protobuf:\"bytes,2,opt,name=url,proto3\" json:\"url,omitempty\"`\n\tSpecificationExtension []*NamedAny `protobuf:\"bytes,3,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *License) Reset() {\n\t*x = License{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[23]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *License) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*License) ProtoMessage() {}\n\nfunc (x *License) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[23]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use License.ProtoReflect.Descriptor instead.\nfunc (*License) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{23}\n}\n\nfunc (x *License) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *License) GetUrl() string {\n\tif x != nil {\n\t\treturn x.Url\n\t}\n\treturn \"\"\n}\n\nfunc (x *License) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\n// The `Link object` represents a possible design-time link for a response. The presence of a link does not guarantee the caller's ability to successfully invoke it, rather it provides a known relationship and traversal mechanism between responses and other operations.  Unlike _dynamic_ links (i.e. links provided **in** the response payload), the OAS linking mechanism does not require link information in the runtime response.  For computing links, and providing instructions to execute them, a runtime expression is used for accessing values in an operation and using them as parameters while invoking the linked operation.\ntype Link struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tOperationRef           string           `protobuf:\"bytes,1,opt,name=operation_ref,json=operationRef,proto3\" json:\"operation_ref,omitempty\"`\n\tOperationId            string           `protobuf:\"bytes,2,opt,name=operation_id,json=operationId,proto3\" json:\"operation_id,omitempty\"`\n\tParameters             *AnyOrExpression `protobuf:\"bytes,3,opt,name=parameters,proto3\" json:\"parameters,omitempty\"`\n\tRequestBody            *AnyOrExpression `protobuf:\"bytes,4,opt,name=request_body,json=requestBody,proto3\" json:\"request_body,omitempty\"`\n\tDescription            string           `protobuf:\"bytes,5,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tServer                 *Server          `protobuf:\"bytes,6,opt,name=server,proto3\" json:\"server,omitempty\"`\n\tSpecificationExtension []*NamedAny      `protobuf:\"bytes,7,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *Link) Reset() {\n\t*x = Link{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[24]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Link) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Link) ProtoMessage() {}\n\nfunc (x *Link) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[24]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Link.ProtoReflect.Descriptor instead.\nfunc (*Link) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{24}\n}\n\nfunc (x *Link) GetOperationRef() string {\n\tif x != nil {\n\t\treturn x.OperationRef\n\t}\n\treturn \"\"\n}\n\nfunc (x *Link) GetOperationId() string {\n\tif x != nil {\n\t\treturn x.OperationId\n\t}\n\treturn \"\"\n}\n\nfunc (x *Link) GetParameters() *AnyOrExpression {\n\tif x != nil {\n\t\treturn x.Parameters\n\t}\n\treturn nil\n}\n\nfunc (x *Link) GetRequestBody() *AnyOrExpression {\n\tif x != nil {\n\t\treturn x.RequestBody\n\t}\n\treturn nil\n}\n\nfunc (x *Link) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *Link) GetServer() *Server {\n\tif x != nil {\n\t\treturn x.Server\n\t}\n\treturn nil\n}\n\nfunc (x *Link) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\ntype LinkOrReference struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Types that are assignable to Oneof:\n\t//\t*LinkOrReference_Link\n\t//\t*LinkOrReference_Reference\n\tOneof isLinkOrReference_Oneof `protobuf_oneof:\"oneof\"`\n}\n\nfunc (x *LinkOrReference) Reset() {\n\t*x = LinkOrReference{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[25]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *LinkOrReference) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*LinkOrReference) ProtoMessage() {}\n\nfunc (x *LinkOrReference) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[25]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use LinkOrReference.ProtoReflect.Descriptor instead.\nfunc (*LinkOrReference) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{25}\n}\n\nfunc (m *LinkOrReference) GetOneof() isLinkOrReference_Oneof {\n\tif m != nil {\n\t\treturn m.Oneof\n\t}\n\treturn nil\n}\n\nfunc (x *LinkOrReference) GetLink() *Link {\n\tif x, ok := x.GetOneof().(*LinkOrReference_Link); ok {\n\t\treturn x.Link\n\t}\n\treturn nil\n}\n\nfunc (x *LinkOrReference) GetReference() *Reference {\n\tif x, ok := x.GetOneof().(*LinkOrReference_Reference); ok {\n\t\treturn x.Reference\n\t}\n\treturn nil\n}\n\ntype isLinkOrReference_Oneof interface {\n\tisLinkOrReference_Oneof()\n}\n\ntype LinkOrReference_Link struct {\n\tLink *Link `protobuf:\"bytes,1,opt,name=link,proto3,oneof\"`\n}\n\ntype LinkOrReference_Reference struct {\n\tReference *Reference `protobuf:\"bytes,2,opt,name=reference,proto3,oneof\"`\n}\n\nfunc (*LinkOrReference_Link) isLinkOrReference_Oneof() {}\n\nfunc (*LinkOrReference_Reference) isLinkOrReference_Oneof() {}\n\ntype LinksOrReferences struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedLinkOrReference `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *LinksOrReferences) Reset() {\n\t*x = LinksOrReferences{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[26]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *LinksOrReferences) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*LinksOrReferences) ProtoMessage() {}\n\nfunc (x *LinksOrReferences) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[26]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use LinksOrReferences.ProtoReflect.Descriptor instead.\nfunc (*LinksOrReferences) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{26}\n}\n\nfunc (x *LinksOrReferences) GetAdditionalProperties() []*NamedLinkOrReference {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\n// Each Media Type Object provides schema and examples for the media type identified by its key.\ntype MediaType struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tSchema                 *SchemaOrReference    `protobuf:\"bytes,1,opt,name=schema,proto3\" json:\"schema,omitempty\"`\n\tExample                *Any                  `protobuf:\"bytes,2,opt,name=example,proto3\" json:\"example,omitempty\"`\n\tExamples               *ExamplesOrReferences `protobuf:\"bytes,3,opt,name=examples,proto3\" json:\"examples,omitempty\"`\n\tEncoding               *Encodings            `protobuf:\"bytes,4,opt,name=encoding,proto3\" json:\"encoding,omitempty\"`\n\tSpecificationExtension []*NamedAny           `protobuf:\"bytes,5,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *MediaType) Reset() {\n\t*x = MediaType{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[27]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *MediaType) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*MediaType) ProtoMessage() {}\n\nfunc (x *MediaType) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[27]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use MediaType.ProtoReflect.Descriptor instead.\nfunc (*MediaType) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{27}\n}\n\nfunc (x *MediaType) GetSchema() *SchemaOrReference {\n\tif x != nil {\n\t\treturn x.Schema\n\t}\n\treturn nil\n}\n\nfunc (x *MediaType) GetExample() *Any {\n\tif x != nil {\n\t\treturn x.Example\n\t}\n\treturn nil\n}\n\nfunc (x *MediaType) GetExamples() *ExamplesOrReferences {\n\tif x != nil {\n\t\treturn x.Examples\n\t}\n\treturn nil\n}\n\nfunc (x *MediaType) GetEncoding() *Encodings {\n\tif x != nil {\n\t\treturn x.Encoding\n\t}\n\treturn nil\n}\n\nfunc (x *MediaType) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\ntype MediaTypes struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedMediaType `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *MediaTypes) Reset() {\n\t*x = MediaTypes{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[28]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *MediaTypes) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*MediaTypes) ProtoMessage() {}\n\nfunc (x *MediaTypes) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[28]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use MediaTypes.ProtoReflect.Descriptor instead.\nfunc (*MediaTypes) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{28}\n}\n\nfunc (x *MediaTypes) GetAdditionalProperties() []*NamedMediaType {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of Any as ordered (name,value) pairs.\ntype NamedAny struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *Any `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedAny) Reset() {\n\t*x = NamedAny{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[29]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedAny) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedAny) ProtoMessage() {}\n\nfunc (x *NamedAny) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[29]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedAny.ProtoReflect.Descriptor instead.\nfunc (*NamedAny) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{29}\n}\n\nfunc (x *NamedAny) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedAny) GetValue() *Any {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of CallbackOrReference as ordered (name,value) pairs.\ntype NamedCallbackOrReference struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *CallbackOrReference `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedCallbackOrReference) Reset() {\n\t*x = NamedCallbackOrReference{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[30]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedCallbackOrReference) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedCallbackOrReference) ProtoMessage() {}\n\nfunc (x *NamedCallbackOrReference) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[30]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedCallbackOrReference.ProtoReflect.Descriptor instead.\nfunc (*NamedCallbackOrReference) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{30}\n}\n\nfunc (x *NamedCallbackOrReference) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedCallbackOrReference) GetValue() *CallbackOrReference {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of Encoding as ordered (name,value) pairs.\ntype NamedEncoding struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *Encoding `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedEncoding) Reset() {\n\t*x = NamedEncoding{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[31]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedEncoding) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedEncoding) ProtoMessage() {}\n\nfunc (x *NamedEncoding) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[31]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedEncoding.ProtoReflect.Descriptor instead.\nfunc (*NamedEncoding) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{31}\n}\n\nfunc (x *NamedEncoding) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedEncoding) GetValue() *Encoding {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of ExampleOrReference as ordered (name,value) pairs.\ntype NamedExampleOrReference struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *ExampleOrReference `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedExampleOrReference) Reset() {\n\t*x = NamedExampleOrReference{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[32]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedExampleOrReference) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedExampleOrReference) ProtoMessage() {}\n\nfunc (x *NamedExampleOrReference) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[32]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedExampleOrReference.ProtoReflect.Descriptor instead.\nfunc (*NamedExampleOrReference) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{32}\n}\n\nfunc (x *NamedExampleOrReference) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedExampleOrReference) GetValue() *ExampleOrReference {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of HeaderOrReference as ordered (name,value) pairs.\ntype NamedHeaderOrReference struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *HeaderOrReference `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedHeaderOrReference) Reset() {\n\t*x = NamedHeaderOrReference{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[33]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedHeaderOrReference) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedHeaderOrReference) ProtoMessage() {}\n\nfunc (x *NamedHeaderOrReference) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[33]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedHeaderOrReference.ProtoReflect.Descriptor instead.\nfunc (*NamedHeaderOrReference) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{33}\n}\n\nfunc (x *NamedHeaderOrReference) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedHeaderOrReference) GetValue() *HeaderOrReference {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of LinkOrReference as ordered (name,value) pairs.\ntype NamedLinkOrReference struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *LinkOrReference `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedLinkOrReference) Reset() {\n\t*x = NamedLinkOrReference{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[34]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedLinkOrReference) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedLinkOrReference) ProtoMessage() {}\n\nfunc (x *NamedLinkOrReference) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[34]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedLinkOrReference.ProtoReflect.Descriptor instead.\nfunc (*NamedLinkOrReference) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{34}\n}\n\nfunc (x *NamedLinkOrReference) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedLinkOrReference) GetValue() *LinkOrReference {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of MediaType as ordered (name,value) pairs.\ntype NamedMediaType struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *MediaType `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedMediaType) Reset() {\n\t*x = NamedMediaType{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[35]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedMediaType) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedMediaType) ProtoMessage() {}\n\nfunc (x *NamedMediaType) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[35]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedMediaType.ProtoReflect.Descriptor instead.\nfunc (*NamedMediaType) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{35}\n}\n\nfunc (x *NamedMediaType) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedMediaType) GetValue() *MediaType {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of ParameterOrReference as ordered (name,value) pairs.\ntype NamedParameterOrReference struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *ParameterOrReference `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedParameterOrReference) Reset() {\n\t*x = NamedParameterOrReference{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[36]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedParameterOrReference) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedParameterOrReference) ProtoMessage() {}\n\nfunc (x *NamedParameterOrReference) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[36]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedParameterOrReference.ProtoReflect.Descriptor instead.\nfunc (*NamedParameterOrReference) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{36}\n}\n\nfunc (x *NamedParameterOrReference) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedParameterOrReference) GetValue() *ParameterOrReference {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of PathItem as ordered (name,value) pairs.\ntype NamedPathItem struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *PathItem `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedPathItem) Reset() {\n\t*x = NamedPathItem{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[37]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedPathItem) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedPathItem) ProtoMessage() {}\n\nfunc (x *NamedPathItem) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[37]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedPathItem.ProtoReflect.Descriptor instead.\nfunc (*NamedPathItem) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{37}\n}\n\nfunc (x *NamedPathItem) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedPathItem) GetValue() *PathItem {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of RequestBodyOrReference as ordered (name,value) pairs.\ntype NamedRequestBodyOrReference struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *RequestBodyOrReference `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedRequestBodyOrReference) Reset() {\n\t*x = NamedRequestBodyOrReference{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[38]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedRequestBodyOrReference) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedRequestBodyOrReference) ProtoMessage() {}\n\nfunc (x *NamedRequestBodyOrReference) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[38]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedRequestBodyOrReference.ProtoReflect.Descriptor instead.\nfunc (*NamedRequestBodyOrReference) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{38}\n}\n\nfunc (x *NamedRequestBodyOrReference) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedRequestBodyOrReference) GetValue() *RequestBodyOrReference {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of ResponseOrReference as ordered (name,value) pairs.\ntype NamedResponseOrReference struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *ResponseOrReference `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedResponseOrReference) Reset() {\n\t*x = NamedResponseOrReference{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[39]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedResponseOrReference) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedResponseOrReference) ProtoMessage() {}\n\nfunc (x *NamedResponseOrReference) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[39]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedResponseOrReference.ProtoReflect.Descriptor instead.\nfunc (*NamedResponseOrReference) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{39}\n}\n\nfunc (x *NamedResponseOrReference) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedResponseOrReference) GetValue() *ResponseOrReference {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of SchemaOrReference as ordered (name,value) pairs.\ntype NamedSchemaOrReference struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *SchemaOrReference `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedSchemaOrReference) Reset() {\n\t*x = NamedSchemaOrReference{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[40]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedSchemaOrReference) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedSchemaOrReference) ProtoMessage() {}\n\nfunc (x *NamedSchemaOrReference) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[40]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedSchemaOrReference.ProtoReflect.Descriptor instead.\nfunc (*NamedSchemaOrReference) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{40}\n}\n\nfunc (x *NamedSchemaOrReference) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedSchemaOrReference) GetValue() *SchemaOrReference {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of SecuritySchemeOrReference as ordered (name,value) pairs.\ntype NamedSecuritySchemeOrReference struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *SecuritySchemeOrReference `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedSecuritySchemeOrReference) Reset() {\n\t*x = NamedSecuritySchemeOrReference{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[41]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedSecuritySchemeOrReference) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedSecuritySchemeOrReference) ProtoMessage() {}\n\nfunc (x *NamedSecuritySchemeOrReference) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[41]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedSecuritySchemeOrReference.ProtoReflect.Descriptor instead.\nfunc (*NamedSecuritySchemeOrReference) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{41}\n}\n\nfunc (x *NamedSecuritySchemeOrReference) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedSecuritySchemeOrReference) GetValue() *SecuritySchemeOrReference {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of ServerVariable as ordered (name,value) pairs.\ntype NamedServerVariable struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *ServerVariable `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedServerVariable) Reset() {\n\t*x = NamedServerVariable{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[42]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedServerVariable) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedServerVariable) ProtoMessage() {}\n\nfunc (x *NamedServerVariable) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[42]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedServerVariable.ProtoReflect.Descriptor instead.\nfunc (*NamedServerVariable) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{42}\n}\n\nfunc (x *NamedServerVariable) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedServerVariable) GetValue() *ServerVariable {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Automatically-generated message used to represent maps of string as ordered (name,value) pairs.\ntype NamedString struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue string `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedString) Reset() {\n\t*x = NamedString{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[43]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedString) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedString) ProtoMessage() {}\n\nfunc (x *NamedString) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[43]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedString.ProtoReflect.Descriptor instead.\nfunc (*NamedString) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{43}\n}\n\nfunc (x *NamedString) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedString) GetValue() string {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn \"\"\n}\n\n// Automatically-generated message used to represent maps of StringArray as ordered (name,value) pairs.\ntype NamedStringArray struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Map key\n\tName string `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\t// Mapped value\n\tValue *StringArray `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *NamedStringArray) Reset() {\n\t*x = NamedStringArray{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[44]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *NamedStringArray) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*NamedStringArray) ProtoMessage() {}\n\nfunc (x *NamedStringArray) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[44]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use NamedStringArray.ProtoReflect.Descriptor instead.\nfunc (*NamedStringArray) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{44}\n}\n\nfunc (x *NamedStringArray) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *NamedStringArray) GetValue() *StringArray {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\n// Configuration details for a supported OAuth Flow\ntype OauthFlow struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAuthorizationUrl       string      `protobuf:\"bytes,1,opt,name=authorization_url,json=authorizationUrl,proto3\" json:\"authorization_url,omitempty\"`\n\tTokenUrl               string      `protobuf:\"bytes,2,opt,name=token_url,json=tokenUrl,proto3\" json:\"token_url,omitempty\"`\n\tRefreshUrl             string      `protobuf:\"bytes,3,opt,name=refresh_url,json=refreshUrl,proto3\" json:\"refresh_url,omitempty\"`\n\tScopes                 *Strings    `protobuf:\"bytes,4,opt,name=scopes,proto3\" json:\"scopes,omitempty\"`\n\tSpecificationExtension []*NamedAny `protobuf:\"bytes,5,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *OauthFlow) Reset() {\n\t*x = OauthFlow{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[45]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *OauthFlow) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*OauthFlow) ProtoMessage() {}\n\nfunc (x *OauthFlow) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[45]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use OauthFlow.ProtoReflect.Descriptor instead.\nfunc (*OauthFlow) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{45}\n}\n\nfunc (x *OauthFlow) GetAuthorizationUrl() string {\n\tif x != nil {\n\t\treturn x.AuthorizationUrl\n\t}\n\treturn \"\"\n}\n\nfunc (x *OauthFlow) GetTokenUrl() string {\n\tif x != nil {\n\t\treturn x.TokenUrl\n\t}\n\treturn \"\"\n}\n\nfunc (x *OauthFlow) GetRefreshUrl() string {\n\tif x != nil {\n\t\treturn x.RefreshUrl\n\t}\n\treturn \"\"\n}\n\nfunc (x *OauthFlow) GetScopes() *Strings {\n\tif x != nil {\n\t\treturn x.Scopes\n\t}\n\treturn nil\n}\n\nfunc (x *OauthFlow) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\n// Allows configuration of the supported OAuth Flows.\ntype OauthFlows struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tImplicit               *OauthFlow  `protobuf:\"bytes,1,opt,name=implicit,proto3\" json:\"implicit,omitempty\"`\n\tPassword               *OauthFlow  `protobuf:\"bytes,2,opt,name=password,proto3\" json:\"password,omitempty\"`\n\tClientCredentials      *OauthFlow  `protobuf:\"bytes,3,opt,name=client_credentials,json=clientCredentials,proto3\" json:\"client_credentials,omitempty\"`\n\tAuthorizationCode      *OauthFlow  `protobuf:\"bytes,4,opt,name=authorization_code,json=authorizationCode,proto3\" json:\"authorization_code,omitempty\"`\n\tSpecificationExtension []*NamedAny `protobuf:\"bytes,5,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *OauthFlows) Reset() {\n\t*x = OauthFlows{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[46]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *OauthFlows) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*OauthFlows) ProtoMessage() {}\n\nfunc (x *OauthFlows) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[46]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use OauthFlows.ProtoReflect.Descriptor instead.\nfunc (*OauthFlows) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{46}\n}\n\nfunc (x *OauthFlows) GetImplicit() *OauthFlow {\n\tif x != nil {\n\t\treturn x.Implicit\n\t}\n\treturn nil\n}\n\nfunc (x *OauthFlows) GetPassword() *OauthFlow {\n\tif x != nil {\n\t\treturn x.Password\n\t}\n\treturn nil\n}\n\nfunc (x *OauthFlows) GetClientCredentials() *OauthFlow {\n\tif x != nil {\n\t\treturn x.ClientCredentials\n\t}\n\treturn nil\n}\n\nfunc (x *OauthFlows) GetAuthorizationCode() *OauthFlow {\n\tif x != nil {\n\t\treturn x.AuthorizationCode\n\t}\n\treturn nil\n}\n\nfunc (x *OauthFlows) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\ntype Object struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedAny `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *Object) Reset() {\n\t*x = Object{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[47]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Object) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Object) ProtoMessage() {}\n\nfunc (x *Object) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[47]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Object.ProtoReflect.Descriptor instead.\nfunc (*Object) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{47}\n}\n\nfunc (x *Object) GetAdditionalProperties() []*NamedAny {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\n// Describes a single API operation on a path.\ntype Operation struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tTags                   []string                `protobuf:\"bytes,1,rep,name=tags,proto3\" json:\"tags,omitempty\"`\n\tSummary                string                  `protobuf:\"bytes,2,opt,name=summary,proto3\" json:\"summary,omitempty\"`\n\tDescription            string                  `protobuf:\"bytes,3,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tExternalDocs           *ExternalDocs           `protobuf:\"bytes,4,opt,name=external_docs,json=externalDocs,proto3\" json:\"external_docs,omitempty\"`\n\tOperationId            string                  `protobuf:\"bytes,5,opt,name=operation_id,json=operationId,proto3\" json:\"operation_id,omitempty\"`\n\tParameters             []*ParameterOrReference `protobuf:\"bytes,6,rep,name=parameters,proto3\" json:\"parameters,omitempty\"`\n\tRequestBody            *RequestBodyOrReference `protobuf:\"bytes,7,opt,name=request_body,json=requestBody,proto3\" json:\"request_body,omitempty\"`\n\tResponses              *Responses              `protobuf:\"bytes,8,opt,name=responses,proto3\" json:\"responses,omitempty\"`\n\tCallbacks              *CallbacksOrReferences  `protobuf:\"bytes,9,opt,name=callbacks,proto3\" json:\"callbacks,omitempty\"`\n\tDeprecated             bool                    `protobuf:\"varint,10,opt,name=deprecated,proto3\" json:\"deprecated,omitempty\"`\n\tSecurity               []*SecurityRequirement  `protobuf:\"bytes,11,rep,name=security,proto3\" json:\"security,omitempty\"`\n\tServers                []*Server               `protobuf:\"bytes,12,rep,name=servers,proto3\" json:\"servers,omitempty\"`\n\tSpecificationExtension []*NamedAny             `protobuf:\"bytes,13,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *Operation) Reset() {\n\t*x = Operation{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[48]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Operation) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Operation) ProtoMessage() {}\n\nfunc (x *Operation) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[48]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Operation.ProtoReflect.Descriptor instead.\nfunc (*Operation) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{48}\n}\n\nfunc (x *Operation) GetTags() []string {\n\tif x != nil {\n\t\treturn x.Tags\n\t}\n\treturn nil\n}\n\nfunc (x *Operation) GetSummary() string {\n\tif x != nil {\n\t\treturn x.Summary\n\t}\n\treturn \"\"\n}\n\nfunc (x *Operation) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *Operation) GetExternalDocs() *ExternalDocs {\n\tif x != nil {\n\t\treturn x.ExternalDocs\n\t}\n\treturn nil\n}\n\nfunc (x *Operation) GetOperationId() string {\n\tif x != nil {\n\t\treturn x.OperationId\n\t}\n\treturn \"\"\n}\n\nfunc (x *Operation) GetParameters() []*ParameterOrReference {\n\tif x != nil {\n\t\treturn x.Parameters\n\t}\n\treturn nil\n}\n\nfunc (x *Operation) GetRequestBody() *RequestBodyOrReference {\n\tif x != nil {\n\t\treturn x.RequestBody\n\t}\n\treturn nil\n}\n\nfunc (x *Operation) GetResponses() *Responses {\n\tif x != nil {\n\t\treturn x.Responses\n\t}\n\treturn nil\n}\n\nfunc (x *Operation) GetCallbacks() *CallbacksOrReferences {\n\tif x != nil {\n\t\treturn x.Callbacks\n\t}\n\treturn nil\n}\n\nfunc (x *Operation) GetDeprecated() bool {\n\tif x != nil {\n\t\treturn x.Deprecated\n\t}\n\treturn false\n}\n\nfunc (x *Operation) GetSecurity() []*SecurityRequirement {\n\tif x != nil {\n\t\treturn x.Security\n\t}\n\treturn nil\n}\n\nfunc (x *Operation) GetServers() []*Server {\n\tif x != nil {\n\t\treturn x.Servers\n\t}\n\treturn nil\n}\n\nfunc (x *Operation) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\n// Describes a single operation parameter.  A unique parameter is defined by a combination of a name and location.\ntype Parameter struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tName                   string                `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\tIn                     string                `protobuf:\"bytes,2,opt,name=in,proto3\" json:\"in,omitempty\"`\n\tDescription            string                `protobuf:\"bytes,3,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tRequired               bool                  `protobuf:\"varint,4,opt,name=required,proto3\" json:\"required,omitempty\"`\n\tDeprecated             bool                  `protobuf:\"varint,5,opt,name=deprecated,proto3\" json:\"deprecated,omitempty\"`\n\tAllowEmptyValue        bool                  `protobuf:\"varint,6,opt,name=allow_empty_value,json=allowEmptyValue,proto3\" json:\"allow_empty_value,omitempty\"`\n\tStyle                  string                `protobuf:\"bytes,7,opt,name=style,proto3\" json:\"style,omitempty\"`\n\tExplode                bool                  `protobuf:\"varint,8,opt,name=explode,proto3\" json:\"explode,omitempty\"`\n\tAllowReserved          bool                  `protobuf:\"varint,9,opt,name=allow_reserved,json=allowReserved,proto3\" json:\"allow_reserved,omitempty\"`\n\tSchema                 *SchemaOrReference    `protobuf:\"bytes,10,opt,name=schema,proto3\" json:\"schema,omitempty\"`\n\tExample                *Any                  `protobuf:\"bytes,11,opt,name=example,proto3\" json:\"example,omitempty\"`\n\tExamples               *ExamplesOrReferences `protobuf:\"bytes,12,opt,name=examples,proto3\" json:\"examples,omitempty\"`\n\tContent                *MediaTypes           `protobuf:\"bytes,13,opt,name=content,proto3\" json:\"content,omitempty\"`\n\tSpecificationExtension []*NamedAny           `protobuf:\"bytes,14,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *Parameter) Reset() {\n\t*x = Parameter{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[49]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Parameter) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Parameter) ProtoMessage() {}\n\nfunc (x *Parameter) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[49]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Parameter.ProtoReflect.Descriptor instead.\nfunc (*Parameter) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{49}\n}\n\nfunc (x *Parameter) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *Parameter) GetIn() string {\n\tif x != nil {\n\t\treturn x.In\n\t}\n\treturn \"\"\n}\n\nfunc (x *Parameter) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *Parameter) GetRequired() bool {\n\tif x != nil {\n\t\treturn x.Required\n\t}\n\treturn false\n}\n\nfunc (x *Parameter) GetDeprecated() bool {\n\tif x != nil {\n\t\treturn x.Deprecated\n\t}\n\treturn false\n}\n\nfunc (x *Parameter) GetAllowEmptyValue() bool {\n\tif x != nil {\n\t\treturn x.AllowEmptyValue\n\t}\n\treturn false\n}\n\nfunc (x *Parameter) GetStyle() string {\n\tif x != nil {\n\t\treturn x.Style\n\t}\n\treturn \"\"\n}\n\nfunc (x *Parameter) GetExplode() bool {\n\tif x != nil {\n\t\treturn x.Explode\n\t}\n\treturn false\n}\n\nfunc (x *Parameter) GetAllowReserved() bool {\n\tif x != nil {\n\t\treturn x.AllowReserved\n\t}\n\treturn false\n}\n\nfunc (x *Parameter) GetSchema() *SchemaOrReference {\n\tif x != nil {\n\t\treturn x.Schema\n\t}\n\treturn nil\n}\n\nfunc (x *Parameter) GetExample() *Any {\n\tif x != nil {\n\t\treturn x.Example\n\t}\n\treturn nil\n}\n\nfunc (x *Parameter) GetExamples() *ExamplesOrReferences {\n\tif x != nil {\n\t\treturn x.Examples\n\t}\n\treturn nil\n}\n\nfunc (x *Parameter) GetContent() *MediaTypes {\n\tif x != nil {\n\t\treturn x.Content\n\t}\n\treturn nil\n}\n\nfunc (x *Parameter) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\ntype ParameterOrReference struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Types that are assignable to Oneof:\n\t//\t*ParameterOrReference_Parameter\n\t//\t*ParameterOrReference_Reference\n\tOneof isParameterOrReference_Oneof `protobuf_oneof:\"oneof\"`\n}\n\nfunc (x *ParameterOrReference) Reset() {\n\t*x = ParameterOrReference{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[50]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ParameterOrReference) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ParameterOrReference) ProtoMessage() {}\n\nfunc (x *ParameterOrReference) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[50]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ParameterOrReference.ProtoReflect.Descriptor instead.\nfunc (*ParameterOrReference) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{50}\n}\n\nfunc (m *ParameterOrReference) GetOneof() isParameterOrReference_Oneof {\n\tif m != nil {\n\t\treturn m.Oneof\n\t}\n\treturn nil\n}\n\nfunc (x *ParameterOrReference) GetParameter() *Parameter {\n\tif x, ok := x.GetOneof().(*ParameterOrReference_Parameter); ok {\n\t\treturn x.Parameter\n\t}\n\treturn nil\n}\n\nfunc (x *ParameterOrReference) GetReference() *Reference {\n\tif x, ok := x.GetOneof().(*ParameterOrReference_Reference); ok {\n\t\treturn x.Reference\n\t}\n\treturn nil\n}\n\ntype isParameterOrReference_Oneof interface {\n\tisParameterOrReference_Oneof()\n}\n\ntype ParameterOrReference_Parameter struct {\n\tParameter *Parameter `protobuf:\"bytes,1,opt,name=parameter,proto3,oneof\"`\n}\n\ntype ParameterOrReference_Reference struct {\n\tReference *Reference `protobuf:\"bytes,2,opt,name=reference,proto3,oneof\"`\n}\n\nfunc (*ParameterOrReference_Parameter) isParameterOrReference_Oneof() {}\n\nfunc (*ParameterOrReference_Reference) isParameterOrReference_Oneof() {}\n\ntype ParametersOrReferences struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedParameterOrReference `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *ParametersOrReferences) Reset() {\n\t*x = ParametersOrReferences{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[51]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ParametersOrReferences) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ParametersOrReferences) ProtoMessage() {}\n\nfunc (x *ParametersOrReferences) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[51]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ParametersOrReferences.ProtoReflect.Descriptor instead.\nfunc (*ParametersOrReferences) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{51}\n}\n\nfunc (x *ParametersOrReferences) GetAdditionalProperties() []*NamedParameterOrReference {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\n// Describes the operations available on a single path. A Path Item MAY be empty, due to ACL constraints. The path itself is still exposed to the documentation viewer but they will not know which operations and parameters are available.\ntype PathItem struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tXRef                   string                  `protobuf:\"bytes,1,opt,name=_ref,json=Ref,proto3\" json:\"_ref,omitempty\"`\n\tSummary                string                  `protobuf:\"bytes,2,opt,name=summary,proto3\" json:\"summary,omitempty\"`\n\tDescription            string                  `protobuf:\"bytes,3,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tGet                    *Operation              `protobuf:\"bytes,4,opt,name=get,proto3\" json:\"get,omitempty\"`\n\tPut                    *Operation              `protobuf:\"bytes,5,opt,name=put,proto3\" json:\"put,omitempty\"`\n\tPost                   *Operation              `protobuf:\"bytes,6,opt,name=post,proto3\" json:\"post,omitempty\"`\n\tDelete                 *Operation              `protobuf:\"bytes,7,opt,name=delete,proto3\" json:\"delete,omitempty\"`\n\tOptions                *Operation              `protobuf:\"bytes,8,opt,name=options,proto3\" json:\"options,omitempty\"`\n\tHead                   *Operation              `protobuf:\"bytes,9,opt,name=head,proto3\" json:\"head,omitempty\"`\n\tPatch                  *Operation              `protobuf:\"bytes,10,opt,name=patch,proto3\" json:\"patch,omitempty\"`\n\tTrace                  *Operation              `protobuf:\"bytes,11,opt,name=trace,proto3\" json:\"trace,omitempty\"`\n\tServers                []*Server               `protobuf:\"bytes,12,rep,name=servers,proto3\" json:\"servers,omitempty\"`\n\tParameters             []*ParameterOrReference `protobuf:\"bytes,13,rep,name=parameters,proto3\" json:\"parameters,omitempty\"`\n\tSpecificationExtension []*NamedAny             `protobuf:\"bytes,14,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *PathItem) Reset() {\n\t*x = PathItem{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[52]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *PathItem) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*PathItem) ProtoMessage() {}\n\nfunc (x *PathItem) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[52]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use PathItem.ProtoReflect.Descriptor instead.\nfunc (*PathItem) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{52}\n}\n\nfunc (x *PathItem) GetXRef() string {\n\tif x != nil {\n\t\treturn x.XRef\n\t}\n\treturn \"\"\n}\n\nfunc (x *PathItem) GetSummary() string {\n\tif x != nil {\n\t\treturn x.Summary\n\t}\n\treturn \"\"\n}\n\nfunc (x *PathItem) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *PathItem) GetGet() *Operation {\n\tif x != nil {\n\t\treturn x.Get\n\t}\n\treturn nil\n}\n\nfunc (x *PathItem) GetPut() *Operation {\n\tif x != nil {\n\t\treturn x.Put\n\t}\n\treturn nil\n}\n\nfunc (x *PathItem) GetPost() *Operation {\n\tif x != nil {\n\t\treturn x.Post\n\t}\n\treturn nil\n}\n\nfunc (x *PathItem) GetDelete() *Operation {\n\tif x != nil {\n\t\treturn x.Delete\n\t}\n\treturn nil\n}\n\nfunc (x *PathItem) GetOptions() *Operation {\n\tif x != nil {\n\t\treturn x.Options\n\t}\n\treturn nil\n}\n\nfunc (x *PathItem) GetHead() *Operation {\n\tif x != nil {\n\t\treturn x.Head\n\t}\n\treturn nil\n}\n\nfunc (x *PathItem) GetPatch() *Operation {\n\tif x != nil {\n\t\treturn x.Patch\n\t}\n\treturn nil\n}\n\nfunc (x *PathItem) GetTrace() *Operation {\n\tif x != nil {\n\t\treturn x.Trace\n\t}\n\treturn nil\n}\n\nfunc (x *PathItem) GetServers() []*Server {\n\tif x != nil {\n\t\treturn x.Servers\n\t}\n\treturn nil\n}\n\nfunc (x *PathItem) GetParameters() []*ParameterOrReference {\n\tif x != nil {\n\t\treturn x.Parameters\n\t}\n\treturn nil\n}\n\nfunc (x *PathItem) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\n// Holds the relative paths to the individual endpoints and their operations. The path is appended to the URL from the `Server Object` in order to construct the full URL.  The Paths MAY be empty, due to ACL constraints.\ntype Paths struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tPath                   []*NamedPathItem `protobuf:\"bytes,1,rep,name=path,proto3\" json:\"path,omitempty\"`\n\tSpecificationExtension []*NamedAny      `protobuf:\"bytes,2,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *Paths) Reset() {\n\t*x = Paths{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[53]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Paths) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Paths) ProtoMessage() {}\n\nfunc (x *Paths) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[53]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Paths.ProtoReflect.Descriptor instead.\nfunc (*Paths) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{53}\n}\n\nfunc (x *Paths) GetPath() []*NamedPathItem {\n\tif x != nil {\n\t\treturn x.Path\n\t}\n\treturn nil\n}\n\nfunc (x *Paths) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\ntype Properties struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedSchemaOrReference `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *Properties) Reset() {\n\t*x = Properties{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[54]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Properties) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Properties) ProtoMessage() {}\n\nfunc (x *Properties) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[54]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Properties.ProtoReflect.Descriptor instead.\nfunc (*Properties) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{54}\n}\n\nfunc (x *Properties) GetAdditionalProperties() []*NamedSchemaOrReference {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\n// A simple object to allow referencing other components in the specification, internally and externally.  The Reference Object is defined by JSON Reference and follows the same structure, behavior and rules.   For this specification, reference resolution is accomplished as defined by the JSON Reference specification and not by the JSON Schema specification.\ntype Reference struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tXRef        string `protobuf:\"bytes,1,opt,name=_ref,json=Ref,proto3\" json:\"_ref,omitempty\"`\n\tSummary     string `protobuf:\"bytes,2,opt,name=summary,proto3\" json:\"summary,omitempty\"`\n\tDescription string `protobuf:\"bytes,3,opt,name=description,proto3\" json:\"description,omitempty\"`\n}\n\nfunc (x *Reference) Reset() {\n\t*x = Reference{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[55]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Reference) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Reference) ProtoMessage() {}\n\nfunc (x *Reference) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[55]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Reference.ProtoReflect.Descriptor instead.\nfunc (*Reference) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{55}\n}\n\nfunc (x *Reference) GetXRef() string {\n\tif x != nil {\n\t\treturn x.XRef\n\t}\n\treturn \"\"\n}\n\nfunc (x *Reference) GetSummary() string {\n\tif x != nil {\n\t\treturn x.Summary\n\t}\n\treturn \"\"\n}\n\nfunc (x *Reference) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\ntype RequestBodiesOrReferences struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedRequestBodyOrReference `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *RequestBodiesOrReferences) Reset() {\n\t*x = RequestBodiesOrReferences{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[56]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *RequestBodiesOrReferences) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*RequestBodiesOrReferences) ProtoMessage() {}\n\nfunc (x *RequestBodiesOrReferences) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[56]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use RequestBodiesOrReferences.ProtoReflect.Descriptor instead.\nfunc (*RequestBodiesOrReferences) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{56}\n}\n\nfunc (x *RequestBodiesOrReferences) GetAdditionalProperties() []*NamedRequestBodyOrReference {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\n// Describes a single request body.\ntype RequestBody struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tDescription            string      `protobuf:\"bytes,1,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tContent                *MediaTypes `protobuf:\"bytes,2,opt,name=content,proto3\" json:\"content,omitempty\"`\n\tRequired               bool        `protobuf:\"varint,3,opt,name=required,proto3\" json:\"required,omitempty\"`\n\tSpecificationExtension []*NamedAny `protobuf:\"bytes,4,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *RequestBody) Reset() {\n\t*x = RequestBody{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[57]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *RequestBody) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*RequestBody) ProtoMessage() {}\n\nfunc (x *RequestBody) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[57]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use RequestBody.ProtoReflect.Descriptor instead.\nfunc (*RequestBody) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{57}\n}\n\nfunc (x *RequestBody) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *RequestBody) GetContent() *MediaTypes {\n\tif x != nil {\n\t\treturn x.Content\n\t}\n\treturn nil\n}\n\nfunc (x *RequestBody) GetRequired() bool {\n\tif x != nil {\n\t\treturn x.Required\n\t}\n\treturn false\n}\n\nfunc (x *RequestBody) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\ntype RequestBodyOrReference struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Types that are assignable to Oneof:\n\t//\t*RequestBodyOrReference_RequestBody\n\t//\t*RequestBodyOrReference_Reference\n\tOneof isRequestBodyOrReference_Oneof `protobuf_oneof:\"oneof\"`\n}\n\nfunc (x *RequestBodyOrReference) Reset() {\n\t*x = RequestBodyOrReference{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[58]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *RequestBodyOrReference) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*RequestBodyOrReference) ProtoMessage() {}\n\nfunc (x *RequestBodyOrReference) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[58]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use RequestBodyOrReference.ProtoReflect.Descriptor instead.\nfunc (*RequestBodyOrReference) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{58}\n}\n\nfunc (m *RequestBodyOrReference) GetOneof() isRequestBodyOrReference_Oneof {\n\tif m != nil {\n\t\treturn m.Oneof\n\t}\n\treturn nil\n}\n\nfunc (x *RequestBodyOrReference) GetRequestBody() *RequestBody {\n\tif x, ok := x.GetOneof().(*RequestBodyOrReference_RequestBody); ok {\n\t\treturn x.RequestBody\n\t}\n\treturn nil\n}\n\nfunc (x *RequestBodyOrReference) GetReference() *Reference {\n\tif x, ok := x.GetOneof().(*RequestBodyOrReference_Reference); ok {\n\t\treturn x.Reference\n\t}\n\treturn nil\n}\n\ntype isRequestBodyOrReference_Oneof interface {\n\tisRequestBodyOrReference_Oneof()\n}\n\ntype RequestBodyOrReference_RequestBody struct {\n\tRequestBody *RequestBody `protobuf:\"bytes,1,opt,name=request_body,json=requestBody,proto3,oneof\"`\n}\n\ntype RequestBodyOrReference_Reference struct {\n\tReference *Reference `protobuf:\"bytes,2,opt,name=reference,proto3,oneof\"`\n}\n\nfunc (*RequestBodyOrReference_RequestBody) isRequestBodyOrReference_Oneof() {}\n\nfunc (*RequestBodyOrReference_Reference) isRequestBodyOrReference_Oneof() {}\n\n// Describes a single response from an API Operation, including design-time, static  `links` to operations based on the response.\ntype Response struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tDescription            string               `protobuf:\"bytes,1,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tHeaders                *HeadersOrReferences `protobuf:\"bytes,2,opt,name=headers,proto3\" json:\"headers,omitempty\"`\n\tContent                *MediaTypes          `protobuf:\"bytes,3,opt,name=content,proto3\" json:\"content,omitempty\"`\n\tLinks                  *LinksOrReferences   `protobuf:\"bytes,4,opt,name=links,proto3\" json:\"links,omitempty\"`\n\tSpecificationExtension []*NamedAny          `protobuf:\"bytes,5,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *Response) Reset() {\n\t*x = Response{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[59]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Response) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Response) ProtoMessage() {}\n\nfunc (x *Response) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[59]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Response.ProtoReflect.Descriptor instead.\nfunc (*Response) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{59}\n}\n\nfunc (x *Response) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *Response) GetHeaders() *HeadersOrReferences {\n\tif x != nil {\n\t\treturn x.Headers\n\t}\n\treturn nil\n}\n\nfunc (x *Response) GetContent() *MediaTypes {\n\tif x != nil {\n\t\treturn x.Content\n\t}\n\treturn nil\n}\n\nfunc (x *Response) GetLinks() *LinksOrReferences {\n\tif x != nil {\n\t\treturn x.Links\n\t}\n\treturn nil\n}\n\nfunc (x *Response) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\ntype ResponseOrReference struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Types that are assignable to Oneof:\n\t//\t*ResponseOrReference_Response\n\t//\t*ResponseOrReference_Reference\n\tOneof isResponseOrReference_Oneof `protobuf_oneof:\"oneof\"`\n}\n\nfunc (x *ResponseOrReference) Reset() {\n\t*x = ResponseOrReference{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[60]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ResponseOrReference) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ResponseOrReference) ProtoMessage() {}\n\nfunc (x *ResponseOrReference) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[60]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ResponseOrReference.ProtoReflect.Descriptor instead.\nfunc (*ResponseOrReference) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{60}\n}\n\nfunc (m *ResponseOrReference) GetOneof() isResponseOrReference_Oneof {\n\tif m != nil {\n\t\treturn m.Oneof\n\t}\n\treturn nil\n}\n\nfunc (x *ResponseOrReference) GetResponse() *Response {\n\tif x, ok := x.GetOneof().(*ResponseOrReference_Response); ok {\n\t\treturn x.Response\n\t}\n\treturn nil\n}\n\nfunc (x *ResponseOrReference) GetReference() *Reference {\n\tif x, ok := x.GetOneof().(*ResponseOrReference_Reference); ok {\n\t\treturn x.Reference\n\t}\n\treturn nil\n}\n\ntype isResponseOrReference_Oneof interface {\n\tisResponseOrReference_Oneof()\n}\n\ntype ResponseOrReference_Response struct {\n\tResponse *Response `protobuf:\"bytes,1,opt,name=response,proto3,oneof\"`\n}\n\ntype ResponseOrReference_Reference struct {\n\tReference *Reference `protobuf:\"bytes,2,opt,name=reference,proto3,oneof\"`\n}\n\nfunc (*ResponseOrReference_Response) isResponseOrReference_Oneof() {}\n\nfunc (*ResponseOrReference_Reference) isResponseOrReference_Oneof() {}\n\n// A container for the expected responses of an operation. The container maps a HTTP response code to the expected response.  The documentation is not necessarily expected to cover all possible HTTP response codes because they may not be known in advance. However, documentation is expected to cover a successful operation response and any known errors.  The `default` MAY be used as a default response object for all HTTP codes  that are not covered individually by the specification.  The `Responses Object` MUST contain at least one response code, and it  SHOULD be the response for a successful operation call.\ntype Responses struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tDefault                *ResponseOrReference        `protobuf:\"bytes,1,opt,name=default,proto3\" json:\"default,omitempty\"`\n\tResponseOrReference    []*NamedResponseOrReference `protobuf:\"bytes,2,rep,name=response_or_reference,json=responseOrReference,proto3\" json:\"response_or_reference,omitempty\"`\n\tSpecificationExtension []*NamedAny                 `protobuf:\"bytes,3,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *Responses) Reset() {\n\t*x = Responses{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[61]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Responses) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Responses) ProtoMessage() {}\n\nfunc (x *Responses) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[61]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Responses.ProtoReflect.Descriptor instead.\nfunc (*Responses) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{61}\n}\n\nfunc (x *Responses) GetDefault() *ResponseOrReference {\n\tif x != nil {\n\t\treturn x.Default\n\t}\n\treturn nil\n}\n\nfunc (x *Responses) GetResponseOrReference() []*NamedResponseOrReference {\n\tif x != nil {\n\t\treturn x.ResponseOrReference\n\t}\n\treturn nil\n}\n\nfunc (x *Responses) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\ntype ResponsesOrReferences struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedResponseOrReference `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *ResponsesOrReferences) Reset() {\n\t*x = ResponsesOrReferences{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[62]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ResponsesOrReferences) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ResponsesOrReferences) ProtoMessage() {}\n\nfunc (x *ResponsesOrReferences) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[62]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ResponsesOrReferences.ProtoReflect.Descriptor instead.\nfunc (*ResponsesOrReferences) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{62}\n}\n\nfunc (x *ResponsesOrReferences) GetAdditionalProperties() []*NamedResponseOrReference {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\n// The Schema Object allows the definition of input and output data types. These types can be objects, but also primitives and arrays. This object is an extended subset of the JSON Schema Specification Wright Draft 00.  For more information about the properties, see JSON Schema Core and JSON Schema Validation. Unless stated otherwise, the property definitions follow the JSON Schema.\ntype Schema struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tNullable               bool                      `protobuf:\"varint,1,opt,name=nullable,proto3\" json:\"nullable,omitempty\"`\n\tDiscriminator          *Discriminator            `protobuf:\"bytes,2,opt,name=discriminator,proto3\" json:\"discriminator,omitempty\"`\n\tReadOnly               bool                      `protobuf:\"varint,3,opt,name=read_only,json=readOnly,proto3\" json:\"read_only,omitempty\"`\n\tWriteOnly              bool                      `protobuf:\"varint,4,opt,name=write_only,json=writeOnly,proto3\" json:\"write_only,omitempty\"`\n\tXml                    *Xml                      `protobuf:\"bytes,5,opt,name=xml,proto3\" json:\"xml,omitempty\"`\n\tExternalDocs           *ExternalDocs             `protobuf:\"bytes,6,opt,name=external_docs,json=externalDocs,proto3\" json:\"external_docs,omitempty\"`\n\tExample                *Any                      `protobuf:\"bytes,7,opt,name=example,proto3\" json:\"example,omitempty\"`\n\tDeprecated             bool                      `protobuf:\"varint,8,opt,name=deprecated,proto3\" json:\"deprecated,omitempty\"`\n\tTitle                  string                    `protobuf:\"bytes,9,opt,name=title,proto3\" json:\"title,omitempty\"`\n\tMultipleOf             float64                   `protobuf:\"fixed64,10,opt,name=multiple_of,json=multipleOf,proto3\" json:\"multiple_of,omitempty\"`\n\tMaximum                float64                   `protobuf:\"fixed64,11,opt,name=maximum,proto3\" json:\"maximum,omitempty\"`\n\tExclusiveMaximum       bool                      `protobuf:\"varint,12,opt,name=exclusive_maximum,json=exclusiveMaximum,proto3\" json:\"exclusive_maximum,omitempty\"`\n\tMinimum                float64                   `protobuf:\"fixed64,13,opt,name=minimum,proto3\" json:\"minimum,omitempty\"`\n\tExclusiveMinimum       bool                      `protobuf:\"varint,14,opt,name=exclusive_minimum,json=exclusiveMinimum,proto3\" json:\"exclusive_minimum,omitempty\"`\n\tMaxLength              int64                     `protobuf:\"varint,15,opt,name=max_length,json=maxLength,proto3\" json:\"max_length,omitempty\"`\n\tMinLength              int64                     `protobuf:\"varint,16,opt,name=min_length,json=minLength,proto3\" json:\"min_length,omitempty\"`\n\tPattern                string                    `protobuf:\"bytes,17,opt,name=pattern,proto3\" json:\"pattern,omitempty\"`\n\tMaxItems               int64                     `protobuf:\"varint,18,opt,name=max_items,json=maxItems,proto3\" json:\"max_items,omitempty\"`\n\tMinItems               int64                     `protobuf:\"varint,19,opt,name=min_items,json=minItems,proto3\" json:\"min_items,omitempty\"`\n\tUniqueItems            bool                      `protobuf:\"varint,20,opt,name=unique_items,json=uniqueItems,proto3\" json:\"unique_items,omitempty\"`\n\tMaxProperties          int64                     `protobuf:\"varint,21,opt,name=max_properties,json=maxProperties,proto3\" json:\"max_properties,omitempty\"`\n\tMinProperties          int64                     `protobuf:\"varint,22,opt,name=min_properties,json=minProperties,proto3\" json:\"min_properties,omitempty\"`\n\tRequired               []string                  `protobuf:\"bytes,23,rep,name=required,proto3\" json:\"required,omitempty\"`\n\tEnum                   []*Any                    `protobuf:\"bytes,24,rep,name=enum,proto3\" json:\"enum,omitempty\"`\n\tType                   string                    `protobuf:\"bytes,25,opt,name=type,proto3\" json:\"type,omitempty\"`\n\tAllOf                  []*SchemaOrReference      `protobuf:\"bytes,26,rep,name=all_of,json=allOf,proto3\" json:\"all_of,omitempty\"`\n\tOneOf                  []*SchemaOrReference      `protobuf:\"bytes,27,rep,name=one_of,json=oneOf,proto3\" json:\"one_of,omitempty\"`\n\tAnyOf                  []*SchemaOrReference      `protobuf:\"bytes,28,rep,name=any_of,json=anyOf,proto3\" json:\"any_of,omitempty\"`\n\tNot                    *Schema                   `protobuf:\"bytes,29,opt,name=not,proto3\" json:\"not,omitempty\"`\n\tItems                  *ItemsItem                `protobuf:\"bytes,30,opt,name=items,proto3\" json:\"items,omitempty\"`\n\tProperties             *Properties               `protobuf:\"bytes,31,opt,name=properties,proto3\" json:\"properties,omitempty\"`\n\tAdditionalProperties   *AdditionalPropertiesItem `protobuf:\"bytes,32,opt,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n\tDefault                *DefaultType              `protobuf:\"bytes,33,opt,name=default,proto3\" json:\"default,omitempty\"`\n\tDescription            string                    `protobuf:\"bytes,34,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tFormat                 string                    `protobuf:\"bytes,35,opt,name=format,proto3\" json:\"format,omitempty\"`\n\tSpecificationExtension []*NamedAny               `protobuf:\"bytes,36,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *Schema) Reset() {\n\t*x = Schema{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[63]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Schema) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Schema) ProtoMessage() {}\n\nfunc (x *Schema) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[63]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Schema.ProtoReflect.Descriptor instead.\nfunc (*Schema) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{63}\n}\n\nfunc (x *Schema) GetNullable() bool {\n\tif x != nil {\n\t\treturn x.Nullable\n\t}\n\treturn false\n}\n\nfunc (x *Schema) GetDiscriminator() *Discriminator {\n\tif x != nil {\n\t\treturn x.Discriminator\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetReadOnly() bool {\n\tif x != nil {\n\t\treturn x.ReadOnly\n\t}\n\treturn false\n}\n\nfunc (x *Schema) GetWriteOnly() bool {\n\tif x != nil {\n\t\treturn x.WriteOnly\n\t}\n\treturn false\n}\n\nfunc (x *Schema) GetXml() *Xml {\n\tif x != nil {\n\t\treturn x.Xml\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetExternalDocs() *ExternalDocs {\n\tif x != nil {\n\t\treturn x.ExternalDocs\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetExample() *Any {\n\tif x != nil {\n\t\treturn x.Example\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetDeprecated() bool {\n\tif x != nil {\n\t\treturn x.Deprecated\n\t}\n\treturn false\n}\n\nfunc (x *Schema) GetTitle() string {\n\tif x != nil {\n\t\treturn x.Title\n\t}\n\treturn \"\"\n}\n\nfunc (x *Schema) GetMultipleOf() float64 {\n\tif x != nil {\n\t\treturn x.MultipleOf\n\t}\n\treturn 0\n}\n\nfunc (x *Schema) GetMaximum() float64 {\n\tif x != nil {\n\t\treturn x.Maximum\n\t}\n\treturn 0\n}\n\nfunc (x *Schema) GetExclusiveMaximum() bool {\n\tif x != nil {\n\t\treturn x.ExclusiveMaximum\n\t}\n\treturn false\n}\n\nfunc (x *Schema) GetMinimum() float64 {\n\tif x != nil {\n\t\treturn x.Minimum\n\t}\n\treturn 0\n}\n\nfunc (x *Schema) GetExclusiveMinimum() bool {\n\tif x != nil {\n\t\treturn x.ExclusiveMinimum\n\t}\n\treturn false\n}\n\nfunc (x *Schema) GetMaxLength() int64 {\n\tif x != nil {\n\t\treturn x.MaxLength\n\t}\n\treturn 0\n}\n\nfunc (x *Schema) GetMinLength() int64 {\n\tif x != nil {\n\t\treturn x.MinLength\n\t}\n\treturn 0\n}\n\nfunc (x *Schema) GetPattern() string {\n\tif x != nil {\n\t\treturn x.Pattern\n\t}\n\treturn \"\"\n}\n\nfunc (x *Schema) GetMaxItems() int64 {\n\tif x != nil {\n\t\treturn x.MaxItems\n\t}\n\treturn 0\n}\n\nfunc (x *Schema) GetMinItems() int64 {\n\tif x != nil {\n\t\treturn x.MinItems\n\t}\n\treturn 0\n}\n\nfunc (x *Schema) GetUniqueItems() bool {\n\tif x != nil {\n\t\treturn x.UniqueItems\n\t}\n\treturn false\n}\n\nfunc (x *Schema) GetMaxProperties() int64 {\n\tif x != nil {\n\t\treturn x.MaxProperties\n\t}\n\treturn 0\n}\n\nfunc (x *Schema) GetMinProperties() int64 {\n\tif x != nil {\n\t\treturn x.MinProperties\n\t}\n\treturn 0\n}\n\nfunc (x *Schema) GetRequired() []string {\n\tif x != nil {\n\t\treturn x.Required\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetEnum() []*Any {\n\tif x != nil {\n\t\treturn x.Enum\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetType() string {\n\tif x != nil {\n\t\treturn x.Type\n\t}\n\treturn \"\"\n}\n\nfunc (x *Schema) GetAllOf() []*SchemaOrReference {\n\tif x != nil {\n\t\treturn x.AllOf\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetOneOf() []*SchemaOrReference {\n\tif x != nil {\n\t\treturn x.OneOf\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetAnyOf() []*SchemaOrReference {\n\tif x != nil {\n\t\treturn x.AnyOf\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetNot() *Schema {\n\tif x != nil {\n\t\treturn x.Not\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetItems() *ItemsItem {\n\tif x != nil {\n\t\treturn x.Items\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetProperties() *Properties {\n\tif x != nil {\n\t\treturn x.Properties\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetAdditionalProperties() *AdditionalPropertiesItem {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetDefault() *DefaultType {\n\tif x != nil {\n\t\treturn x.Default\n\t}\n\treturn nil\n}\n\nfunc (x *Schema) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *Schema) GetFormat() string {\n\tif x != nil {\n\t\treturn x.Format\n\t}\n\treturn \"\"\n}\n\nfunc (x *Schema) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\ntype SchemaOrReference struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Types that are assignable to Oneof:\n\t//\t*SchemaOrReference_Schema\n\t//\t*SchemaOrReference_Reference\n\tOneof isSchemaOrReference_Oneof `protobuf_oneof:\"oneof\"`\n}\n\nfunc (x *SchemaOrReference) Reset() {\n\t*x = SchemaOrReference{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[64]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *SchemaOrReference) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*SchemaOrReference) ProtoMessage() {}\n\nfunc (x *SchemaOrReference) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[64]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use SchemaOrReference.ProtoReflect.Descriptor instead.\nfunc (*SchemaOrReference) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{64}\n}\n\nfunc (m *SchemaOrReference) GetOneof() isSchemaOrReference_Oneof {\n\tif m != nil {\n\t\treturn m.Oneof\n\t}\n\treturn nil\n}\n\nfunc (x *SchemaOrReference) GetSchema() *Schema {\n\tif x, ok := x.GetOneof().(*SchemaOrReference_Schema); ok {\n\t\treturn x.Schema\n\t}\n\treturn nil\n}\n\nfunc (x *SchemaOrReference) GetReference() *Reference {\n\tif x, ok := x.GetOneof().(*SchemaOrReference_Reference); ok {\n\t\treturn x.Reference\n\t}\n\treturn nil\n}\n\ntype isSchemaOrReference_Oneof interface {\n\tisSchemaOrReference_Oneof()\n}\n\ntype SchemaOrReference_Schema struct {\n\tSchema *Schema `protobuf:\"bytes,1,opt,name=schema,proto3,oneof\"`\n}\n\ntype SchemaOrReference_Reference struct {\n\tReference *Reference `protobuf:\"bytes,2,opt,name=reference,proto3,oneof\"`\n}\n\nfunc (*SchemaOrReference_Schema) isSchemaOrReference_Oneof() {}\n\nfunc (*SchemaOrReference_Reference) isSchemaOrReference_Oneof() {}\n\ntype SchemasOrReferences struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedSchemaOrReference `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *SchemasOrReferences) Reset() {\n\t*x = SchemasOrReferences{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[65]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *SchemasOrReferences) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*SchemasOrReferences) ProtoMessage() {}\n\nfunc (x *SchemasOrReferences) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[65]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use SchemasOrReferences.ProtoReflect.Descriptor instead.\nfunc (*SchemasOrReferences) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{65}\n}\n\nfunc (x *SchemasOrReferences) GetAdditionalProperties() []*NamedSchemaOrReference {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\n// Lists the required security schemes to execute this operation. The name used for each property MUST correspond to a security scheme declared in the Security Schemes under the Components Object.  Security Requirement Objects that contain multiple schemes require that all schemes MUST be satisfied for a request to be authorized. This enables support for scenarios where multiple query parameters or HTTP headers are required to convey security information.  When a list of Security Requirement Objects is defined on the OpenAPI Object or Operation Object, only one of the Security Requirement Objects in the list needs to be satisfied to authorize the request.\ntype SecurityRequirement struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedStringArray `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *SecurityRequirement) Reset() {\n\t*x = SecurityRequirement{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[66]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *SecurityRequirement) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*SecurityRequirement) ProtoMessage() {}\n\nfunc (x *SecurityRequirement) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[66]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use SecurityRequirement.ProtoReflect.Descriptor instead.\nfunc (*SecurityRequirement) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{66}\n}\n\nfunc (x *SecurityRequirement) GetAdditionalProperties() []*NamedStringArray {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\n// Defines a security scheme that can be used by the operations. Supported schemes are HTTP authentication, an API key (either as a header, a cookie parameter or as a query parameter), mutual TLS (use of a client certificate), OAuth2's common flows (implicit, password, application and access code) as defined in RFC6749, and OpenID Connect.   Please note that currently (2019) the implicit flow is about to be deprecated OAuth 2.0 Security Best Current Practice. Recommended for most use case is Authorization Code Grant flow with PKCE.\ntype SecurityScheme struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tType                   string      `protobuf:\"bytes,1,opt,name=type,proto3\" json:\"type,omitempty\"`\n\tDescription            string      `protobuf:\"bytes,2,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tName                   string      `protobuf:\"bytes,3,opt,name=name,proto3\" json:\"name,omitempty\"`\n\tIn                     string      `protobuf:\"bytes,4,opt,name=in,proto3\" json:\"in,omitempty\"`\n\tScheme                 string      `protobuf:\"bytes,5,opt,name=scheme,proto3\" json:\"scheme,omitempty\"`\n\tBearerFormat           string      `protobuf:\"bytes,6,opt,name=bearer_format,json=bearerFormat,proto3\" json:\"bearer_format,omitempty\"`\n\tFlows                  *OauthFlows `protobuf:\"bytes,7,opt,name=flows,proto3\" json:\"flows,omitempty\"`\n\tOpenIdConnectUrl       string      `protobuf:\"bytes,8,opt,name=open_id_connect_url,json=openIdConnectUrl,proto3\" json:\"open_id_connect_url,omitempty\"`\n\tSpecificationExtension []*NamedAny `protobuf:\"bytes,9,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *SecurityScheme) Reset() {\n\t*x = SecurityScheme{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[67]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *SecurityScheme) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*SecurityScheme) ProtoMessage() {}\n\nfunc (x *SecurityScheme) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[67]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use SecurityScheme.ProtoReflect.Descriptor instead.\nfunc (*SecurityScheme) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{67}\n}\n\nfunc (x *SecurityScheme) GetType() string {\n\tif x != nil {\n\t\treturn x.Type\n\t}\n\treturn \"\"\n}\n\nfunc (x *SecurityScheme) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *SecurityScheme) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *SecurityScheme) GetIn() string {\n\tif x != nil {\n\t\treturn x.In\n\t}\n\treturn \"\"\n}\n\nfunc (x *SecurityScheme) GetScheme() string {\n\tif x != nil {\n\t\treturn x.Scheme\n\t}\n\treturn \"\"\n}\n\nfunc (x *SecurityScheme) GetBearerFormat() string {\n\tif x != nil {\n\t\treturn x.BearerFormat\n\t}\n\treturn \"\"\n}\n\nfunc (x *SecurityScheme) GetFlows() *OauthFlows {\n\tif x != nil {\n\t\treturn x.Flows\n\t}\n\treturn nil\n}\n\nfunc (x *SecurityScheme) GetOpenIdConnectUrl() string {\n\tif x != nil {\n\t\treturn x.OpenIdConnectUrl\n\t}\n\treturn \"\"\n}\n\nfunc (x *SecurityScheme) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\ntype SecuritySchemeOrReference struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Types that are assignable to Oneof:\n\t//\t*SecuritySchemeOrReference_SecurityScheme\n\t//\t*SecuritySchemeOrReference_Reference\n\tOneof isSecuritySchemeOrReference_Oneof `protobuf_oneof:\"oneof\"`\n}\n\nfunc (x *SecuritySchemeOrReference) Reset() {\n\t*x = SecuritySchemeOrReference{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[68]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *SecuritySchemeOrReference) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*SecuritySchemeOrReference) ProtoMessage() {}\n\nfunc (x *SecuritySchemeOrReference) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[68]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use SecuritySchemeOrReference.ProtoReflect.Descriptor instead.\nfunc (*SecuritySchemeOrReference) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{68}\n}\n\nfunc (m *SecuritySchemeOrReference) GetOneof() isSecuritySchemeOrReference_Oneof {\n\tif m != nil {\n\t\treturn m.Oneof\n\t}\n\treturn nil\n}\n\nfunc (x *SecuritySchemeOrReference) GetSecurityScheme() *SecurityScheme {\n\tif x, ok := x.GetOneof().(*SecuritySchemeOrReference_SecurityScheme); ok {\n\t\treturn x.SecurityScheme\n\t}\n\treturn nil\n}\n\nfunc (x *SecuritySchemeOrReference) GetReference() *Reference {\n\tif x, ok := x.GetOneof().(*SecuritySchemeOrReference_Reference); ok {\n\t\treturn x.Reference\n\t}\n\treturn nil\n}\n\ntype isSecuritySchemeOrReference_Oneof interface {\n\tisSecuritySchemeOrReference_Oneof()\n}\n\ntype SecuritySchemeOrReference_SecurityScheme struct {\n\tSecurityScheme *SecurityScheme `protobuf:\"bytes,1,opt,name=security_scheme,json=securityScheme,proto3,oneof\"`\n}\n\ntype SecuritySchemeOrReference_Reference struct {\n\tReference *Reference `protobuf:\"bytes,2,opt,name=reference,proto3,oneof\"`\n}\n\nfunc (*SecuritySchemeOrReference_SecurityScheme) isSecuritySchemeOrReference_Oneof() {}\n\nfunc (*SecuritySchemeOrReference_Reference) isSecuritySchemeOrReference_Oneof() {}\n\ntype SecuritySchemesOrReferences struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedSecuritySchemeOrReference `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *SecuritySchemesOrReferences) Reset() {\n\t*x = SecuritySchemesOrReferences{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[69]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *SecuritySchemesOrReferences) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*SecuritySchemesOrReferences) ProtoMessage() {}\n\nfunc (x *SecuritySchemesOrReferences) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[69]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use SecuritySchemesOrReferences.ProtoReflect.Descriptor instead.\nfunc (*SecuritySchemesOrReferences) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{69}\n}\n\nfunc (x *SecuritySchemesOrReferences) GetAdditionalProperties() []*NamedSecuritySchemeOrReference {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\n// An object representing a Server.\ntype Server struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tUrl                    string           `protobuf:\"bytes,1,opt,name=url,proto3\" json:\"url,omitempty\"`\n\tDescription            string           `protobuf:\"bytes,2,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tVariables              *ServerVariables `protobuf:\"bytes,3,opt,name=variables,proto3\" json:\"variables,omitempty\"`\n\tSpecificationExtension []*NamedAny      `protobuf:\"bytes,4,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *Server) Reset() {\n\t*x = Server{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[70]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Server) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Server) ProtoMessage() {}\n\nfunc (x *Server) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[70]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Server.ProtoReflect.Descriptor instead.\nfunc (*Server) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{70}\n}\n\nfunc (x *Server) GetUrl() string {\n\tif x != nil {\n\t\treturn x.Url\n\t}\n\treturn \"\"\n}\n\nfunc (x *Server) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *Server) GetVariables() *ServerVariables {\n\tif x != nil {\n\t\treturn x.Variables\n\t}\n\treturn nil\n}\n\nfunc (x *Server) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\n// An object representing a Server Variable for server URL template substitution.\ntype ServerVariable struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tEnum                   []string    `protobuf:\"bytes,1,rep,name=enum,proto3\" json:\"enum,omitempty\"`\n\tDefault                string      `protobuf:\"bytes,2,opt,name=default,proto3\" json:\"default,omitempty\"`\n\tDescription            string      `protobuf:\"bytes,3,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tSpecificationExtension []*NamedAny `protobuf:\"bytes,4,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *ServerVariable) Reset() {\n\t*x = ServerVariable{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[71]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ServerVariable) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ServerVariable) ProtoMessage() {}\n\nfunc (x *ServerVariable) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[71]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ServerVariable.ProtoReflect.Descriptor instead.\nfunc (*ServerVariable) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{71}\n}\n\nfunc (x *ServerVariable) GetEnum() []string {\n\tif x != nil {\n\t\treturn x.Enum\n\t}\n\treturn nil\n}\n\nfunc (x *ServerVariable) GetDefault() string {\n\tif x != nil {\n\t\treturn x.Default\n\t}\n\treturn \"\"\n}\n\nfunc (x *ServerVariable) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *ServerVariable) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\ntype ServerVariables struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedServerVariable `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *ServerVariables) Reset() {\n\t*x = ServerVariables{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[72]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *ServerVariables) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ServerVariables) ProtoMessage() {}\n\nfunc (x *ServerVariables) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[72]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ServerVariables.ProtoReflect.Descriptor instead.\nfunc (*ServerVariables) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{72}\n}\n\nfunc (x *ServerVariables) GetAdditionalProperties() []*NamedServerVariable {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\n// Any property starting with x- is valid.\ntype SpecificationExtension struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Types that are assignable to Oneof:\n\t//\t*SpecificationExtension_Number\n\t//\t*SpecificationExtension_Boolean\n\t//\t*SpecificationExtension_String_\n\tOneof isSpecificationExtension_Oneof `protobuf_oneof:\"oneof\"`\n}\n\nfunc (x *SpecificationExtension) Reset() {\n\t*x = SpecificationExtension{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[73]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *SpecificationExtension) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*SpecificationExtension) ProtoMessage() {}\n\nfunc (x *SpecificationExtension) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[73]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use SpecificationExtension.ProtoReflect.Descriptor instead.\nfunc (*SpecificationExtension) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{73}\n}\n\nfunc (m *SpecificationExtension) GetOneof() isSpecificationExtension_Oneof {\n\tif m != nil {\n\t\treturn m.Oneof\n\t}\n\treturn nil\n}\n\nfunc (x *SpecificationExtension) GetNumber() float64 {\n\tif x, ok := x.GetOneof().(*SpecificationExtension_Number); ok {\n\t\treturn x.Number\n\t}\n\treturn 0\n}\n\nfunc (x *SpecificationExtension) GetBoolean() bool {\n\tif x, ok := x.GetOneof().(*SpecificationExtension_Boolean); ok {\n\t\treturn x.Boolean\n\t}\n\treturn false\n}\n\nfunc (x *SpecificationExtension) GetString_() string {\n\tif x, ok := x.GetOneof().(*SpecificationExtension_String_); ok {\n\t\treturn x.String_\n\t}\n\treturn \"\"\n}\n\ntype isSpecificationExtension_Oneof interface {\n\tisSpecificationExtension_Oneof()\n}\n\ntype SpecificationExtension_Number struct {\n\tNumber float64 `protobuf:\"fixed64,1,opt,name=number,proto3,oneof\"`\n}\n\ntype SpecificationExtension_Boolean struct {\n\tBoolean bool `protobuf:\"varint,2,opt,name=boolean,proto3,oneof\"`\n}\n\ntype SpecificationExtension_String_ struct {\n\tString_ string `protobuf:\"bytes,3,opt,name=string,proto3,oneof\"`\n}\n\nfunc (*SpecificationExtension_Number) isSpecificationExtension_Oneof() {}\n\nfunc (*SpecificationExtension_Boolean) isSpecificationExtension_Oneof() {}\n\nfunc (*SpecificationExtension_String_) isSpecificationExtension_Oneof() {}\n\ntype StringArray struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tValue []string `protobuf:\"bytes,1,rep,name=value,proto3\" json:\"value,omitempty\"`\n}\n\nfunc (x *StringArray) Reset() {\n\t*x = StringArray{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[74]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *StringArray) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*StringArray) ProtoMessage() {}\n\nfunc (x *StringArray) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[74]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use StringArray.ProtoReflect.Descriptor instead.\nfunc (*StringArray) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{74}\n}\n\nfunc (x *StringArray) GetValue() []string {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\ntype Strings struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tAdditionalProperties []*NamedString `protobuf:\"bytes,1,rep,name=additional_properties,json=additionalProperties,proto3\" json:\"additional_properties,omitempty\"`\n}\n\nfunc (x *Strings) Reset() {\n\t*x = Strings{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[75]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Strings) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Strings) ProtoMessage() {}\n\nfunc (x *Strings) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[75]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Strings.ProtoReflect.Descriptor instead.\nfunc (*Strings) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{75}\n}\n\nfunc (x *Strings) GetAdditionalProperties() []*NamedString {\n\tif x != nil {\n\t\treturn x.AdditionalProperties\n\t}\n\treturn nil\n}\n\n// Adds metadata to a single tag that is used by the Operation Object. It is not mandatory to have a Tag Object per tag defined in the Operation Object instances.\ntype Tag struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tName                   string        `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\tDescription            string        `protobuf:\"bytes,2,opt,name=description,proto3\" json:\"description,omitempty\"`\n\tExternalDocs           *ExternalDocs `protobuf:\"bytes,3,opt,name=external_docs,json=externalDocs,proto3\" json:\"external_docs,omitempty\"`\n\tSpecificationExtension []*NamedAny   `protobuf:\"bytes,4,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *Tag) Reset() {\n\t*x = Tag{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[76]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Tag) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Tag) ProtoMessage() {}\n\nfunc (x *Tag) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[76]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Tag.ProtoReflect.Descriptor instead.\nfunc (*Tag) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{76}\n}\n\nfunc (x *Tag) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *Tag) GetDescription() string {\n\tif x != nil {\n\t\treturn x.Description\n\t}\n\treturn \"\"\n}\n\nfunc (x *Tag) GetExternalDocs() *ExternalDocs {\n\tif x != nil {\n\t\treturn x.ExternalDocs\n\t}\n\treturn nil\n}\n\nfunc (x *Tag) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\n// A metadata object that allows for more fine-tuned XML model definitions.  When using arrays, XML element names are *not* inferred (for singular/plural forms) and the `name` property SHOULD be used to add that information. See examples for expected behavior.\ntype Xml struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tName                   string      `protobuf:\"bytes,1,opt,name=name,proto3\" json:\"name,omitempty\"`\n\tNamespace              string      `protobuf:\"bytes,2,opt,name=namespace,proto3\" json:\"namespace,omitempty\"`\n\tPrefix                 string      `protobuf:\"bytes,3,opt,name=prefix,proto3\" json:\"prefix,omitempty\"`\n\tAttribute              bool        `protobuf:\"varint,4,opt,name=attribute,proto3\" json:\"attribute,omitempty\"`\n\tWrapped                bool        `protobuf:\"varint,5,opt,name=wrapped,proto3\" json:\"wrapped,omitempty\"`\n\tSpecificationExtension []*NamedAny `protobuf:\"bytes,6,rep,name=specification_extension,json=specificationExtension,proto3\" json:\"specification_extension,omitempty\"`\n}\n\nfunc (x *Xml) Reset() {\n\t*x = Xml{}\n\tif protoimpl.UnsafeEnabled {\n\t\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[77]\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tms.StoreMessageInfo(mi)\n\t}\n}\n\nfunc (x *Xml) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Xml) ProtoMessage() {}\n\nfunc (x *Xml) ProtoReflect() protoreflect.Message {\n\tmi := &file_openapiv3_OpenAPIv3_proto_msgTypes[77]\n\tif protoimpl.UnsafeEnabled && x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Xml.ProtoReflect.Descriptor instead.\nfunc (*Xml) Descriptor() ([]byte, []int) {\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescGZIP(), []int{77}\n}\n\nfunc (x *Xml) GetName() string {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *Xml) GetNamespace() string {\n\tif x != nil {\n\t\treturn x.Namespace\n\t}\n\treturn \"\"\n}\n\nfunc (x *Xml) GetPrefix() string {\n\tif x != nil {\n\t\treturn x.Prefix\n\t}\n\treturn \"\"\n}\n\nfunc (x *Xml) GetAttribute() bool {\n\tif x != nil {\n\t\treturn x.Attribute\n\t}\n\treturn false\n}\n\nfunc (x *Xml) GetWrapped() bool {\n\tif x != nil {\n\t\treturn x.Wrapped\n\t}\n\treturn false\n}\n\nfunc (x *Xml) GetSpecificationExtension() []*NamedAny {\n\tif x != nil {\n\t\treturn x.SpecificationExtension\n\t}\n\treturn nil\n}\n\nvar File_openapiv3_OpenAPIv3_proto protoreflect.FileDescriptor\n\nvar file_openapiv3_OpenAPIv3_proto_rawDesc = []byte{\n\t0x0a, 0x19, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x33, 0x2f, 0x4f, 0x70, 0x65, 0x6e,\n\t0x41, 0x50, 0x49, 0x76, 0x33, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x6f, 0x70, 0x65,\n\t0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f,\n\t0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f,\n\t0x74, 0x6f, 0x22, 0x90, 0x01, 0x0a, 0x18, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61,\n\t0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x12,\n\t0x4f, 0x0a, 0x13, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x66,\n\t0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f,\n\t0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61,\n\t0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, 0x11, 0x73,\n\t0x63, 0x68, 0x65, 0x6d, 0x61, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,\n\t0x12, 0x1a, 0x0a, 0x07, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28,\n\t0x08, 0x48, 0x00, 0x52, 0x07, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x42, 0x07, 0x0a, 0x05,\n\t0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x22, 0x45, 0x0a, 0x03, 0x41, 0x6e, 0x79, 0x12, 0x2a, 0x0a, 0x05,\n\t0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f,\n\t0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e,\n\t0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x79, 0x61, 0x6d, 0x6c,\n\t0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x79, 0x61, 0x6d, 0x6c, 0x22, 0x79, 0x0a, 0x0f,\n\t0x41, 0x6e, 0x79, 0x4f, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12,\n\t0x23, 0x0a, 0x03, 0x61, 0x6e, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f,\n\t0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x6e, 0x79, 0x48, 0x00, 0x52,\n\t0x03, 0x61, 0x6e, 0x79, 0x12, 0x38, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69,\n\t0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61,\n\t0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e,\n\t0x48, 0x00, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x07,\n\t0x0a, 0x05, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x22, 0x88, 0x01, 0x0a, 0x08, 0x43, 0x61, 0x6c, 0x6c,\n\t0x62, 0x61, 0x63, 0x6b, 0x12, 0x2d, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x03,\n\t0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e,\n\t0x4e, 0x61, 0x6d, 0x65, 0x64, 0x50, 0x61, 0x74, 0x68, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x70,\n\t0x61, 0x74, 0x68, 0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61,\n\t0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02,\n\t0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76,\n\t0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x73, 0x70, 0x65, 0x63,\n\t0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,\n\t0x6f, 0x6e, 0x22, 0x89, 0x01, 0x0a, 0x13, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x4f,\n\t0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x32, 0x0a, 0x08, 0x63, 0x61,\n\t0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f,\n\t0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61,\n\t0x63, 0x6b, 0x48, 0x00, 0x52, 0x08, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x35,\n\t0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,\n\t0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x52,\n\t0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65,\n\t0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x22, 0x72,\n\t0x0a, 0x15, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x4f, 0x72, 0x52, 0x65, 0x66,\n\t0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x59, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74,\n\t0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73,\n\t0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63,\n\t0x6b, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x14, 0x61, 0x64,\n\t0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69,\n\t0x65, 0x73, 0x22, 0xac, 0x05, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74,\n\t0x73, 0x12, 0x39, 0x0a, 0x07, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01,\n\t0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e,\n\t0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,\n\t0x63, 0x65, 0x73, 0x52, 0x07, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x12, 0x3f, 0x0a, 0x09,\n\t0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,\n\t0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x73,\n\t0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,\n\t0x65, 0x73, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x12, 0x42, 0x0a,\n\t0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28,\n\t0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x50,\n\t0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72,\n\t0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72,\n\t0x73, 0x12, 0x3c, 0x0a, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x04, 0x20,\n\t0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33,\n\t0x2e, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72,\n\t0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12,\n\t0x4c, 0x0a, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x6f, 0x64, 0x69, 0x65,\n\t0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x6f, 0x64, 0x69,\n\t0x65, 0x73, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x0d,\n\t0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x12, 0x39, 0x0a,\n\t0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f,\n\t0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x48, 0x65, 0x61, 0x64,\n\t0x65, 0x72, 0x73, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52,\n\t0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x52, 0x0a, 0x10, 0x73, 0x65, 0x63, 0x75,\n\t0x72, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01,\n\t0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e,\n\t0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x73, 0x4f,\n\t0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x0f, 0x73, 0x65, 0x63,\n\t0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x73, 0x12, 0x33, 0x0a, 0x05,\n\t0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70,\n\t0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x4f, 0x72,\n\t0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x05, 0x6c, 0x69, 0x6e, 0x6b,\n\t0x73, 0x12, 0x3f, 0x0a, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x09,\n\t0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76,\n\t0x33, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x4f, 0x72, 0x52, 0x65, 0x66,\n\t0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63,\n\t0x6b, 0x73, 0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,\n\t0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20,\n\t0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33,\n\t0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x73, 0x70, 0x65, 0x63, 0x69,\n\t0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,\n\t0x6e, 0x22, 0x94, 0x01, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x12, 0x12, 0x0a,\n\t0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,\n\t0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,\n\t0x75, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01,\n\t0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65,\n\t0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e,\n\t0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65,\n\t0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79,\n\t0x52, 0x16, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45,\n\t0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x66, 0x0a, 0x0b, 0x44, 0x65, 0x66, 0x61,\n\t0x75, 0x6c, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65,\n\t0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65,\n\t0x72, 0x12, 0x1a, 0x0a, 0x07, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x18, 0x02, 0x20, 0x01,\n\t0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x12, 0x18, 0x0a,\n\t0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52,\n\t0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x07, 0x0a, 0x05, 0x6f, 0x6e, 0x65, 0x6f, 0x66,\n\t0x22, 0xb2, 0x01, 0x0a, 0x0d, 0x44, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74,\n\t0x6f, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x6e,\n\t0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x70, 0x65,\n\t0x72, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x07, 0x6d, 0x61, 0x70, 0x70, 0x69,\n\t0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61,\n\t0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x07, 0x6d,\n\t0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66,\n\t0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,\n\t0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x73,\n\t0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65,\n\t0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xc9, 0x03, 0x0a, 0x08, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65,\n\t0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20,\n\t0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x12, 0x24, 0x0a, 0x04,\n\t0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x70, 0x65,\n\t0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e,\n\t0x66, 0x6f, 0x12, 0x2c, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20,\n\t0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33,\n\t0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73,\n\t0x12, 0x27, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32,\n\t0x11, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x50, 0x61, 0x74,\n\t0x68, 0x73, 0x52, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x12, 0x36, 0x0a, 0x0a, 0x63, 0x6f, 0x6d,\n\t0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e,\n\t0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f,\n\t0x6e, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74,\n\t0x73, 0x12, 0x3b, 0x0a, 0x08, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20,\n\t0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33,\n\t0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65,\n\t0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x12, 0x23,\n\t0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f,\n\t0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x61, 0x67, 0x52, 0x04, 0x74,\n\t0x61, 0x67, 0x73, 0x12, 0x3d, 0x0a, 0x0d, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f,\n\t0x64, 0x6f, 0x63, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x70, 0x65,\n\t0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c,\n\t0x44, 0x6f, 0x63, 0x73, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x44, 0x6f,\n\t0x63, 0x73, 0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,\n\t0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20,\n\t0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33,\n\t0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x73, 0x70, 0x65, 0x63, 0x69,\n\t0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,\n\t0x6e, 0x22, 0x8e, 0x02, 0x0a, 0x08, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x21,\n\t0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01,\n\t0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70,\n\t0x65, 0x12, 0x39, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01,\n\t0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e,\n\t0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,\n\t0x63, 0x65, 0x73, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x14, 0x0a, 0x05,\n\t0x73, 0x74, 0x79, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x79,\n\t0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20,\n\t0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0e,\n\t0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x05,\n\t0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x65, 0x72,\n\t0x76, 0x65, 0x64, 0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61,\n\t0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06,\n\t0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76,\n\t0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x73, 0x70, 0x65, 0x63,\n\t0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,\n\t0x6f, 0x6e, 0x22, 0x5b, 0x0a, 0x09, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x12,\n\t0x4e, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x72,\n\t0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19,\n\t0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65,\n\t0x64, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74,\n\t0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22,\n\t0xe2, 0x01, 0x0a, 0x07, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73,\n\t0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75,\n\t0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,\n\t0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63,\n\t0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,\n\t0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x33, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x25,\n\t0x0a, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65,\n\t0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c,\n\t0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69,\n\t0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,\n\t0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x73, 0x70,\n\t0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e,\n\t0x73, 0x69, 0x6f, 0x6e, 0x22, 0x85, 0x01, 0x0a, 0x12, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65,\n\t0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x2f, 0x0a, 0x07, 0x65,\n\t0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f,\n\t0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c,\n\t0x65, 0x48, 0x00, 0x52, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x35, 0x0a, 0x09,\n\t0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,\n\t0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x66,\n\t0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65,\n\t0x6e, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x22, 0x70, 0x0a, 0x14,\n\t0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65,\n\t0x6e, 0x63, 0x65, 0x73, 0x12, 0x58, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e,\n\t0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20,\n\t0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33,\n\t0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x4f, 0x72, 0x52,\n\t0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69,\n\t0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0x57,\n\t0x0a, 0x0a, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x49, 0x0a, 0x15,\n\t0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65,\n\t0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70,\n\t0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e,\n\t0x79, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f,\n\t0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0x91, 0x01, 0x0a, 0x0c, 0x45, 0x78, 0x74, 0x65,\n\t0x72, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x63, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63,\n\t0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64,\n\t0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72,\n\t0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x4d, 0x0a, 0x17,\n\t0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78,\n\t0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e,\n\t0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64,\n\t0x41, 0x6e, 0x79, 0x52, 0x16, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69,\n\t0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x8a, 0x04, 0x0a, 0x06,\n\t0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,\n\t0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73,\n\t0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75,\n\t0x69, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75,\n\t0x69, 0x72, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74,\n\t0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63,\n\t0x61, 0x74, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x65, 0x6d,\n\t0x70, 0x74, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52,\n\t0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65,\n\t0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x05, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x64,\n\t0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x64, 0x65,\n\t0x12, 0x25, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76,\n\t0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x52,\n\t0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x35, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d,\n\t0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4f, 0x72, 0x52, 0x65, 0x66,\n\t0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x29,\n\t0x0a, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32,\n\t0x0f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x6e, 0x79,\n\t0x52, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x3c, 0x0a, 0x08, 0x65, 0x78, 0x61,\n\t0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x70,\n\t0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65,\n\t0x73, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x08, 0x65,\n\t0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65,\n\t0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61,\n\t0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x73,\n\t0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65,\n\t0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e,\n\t0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65,\n\t0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79,\n\t0x52, 0x16, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45,\n\t0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x81, 0x01, 0x0a, 0x11, 0x48, 0x65, 0x61,\n\t0x64, 0x65, 0x72, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x2c,\n\t0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12,\n\t0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x48, 0x65, 0x61, 0x64,\n\t0x65, 0x72, 0x48, 0x00, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x35, 0x0a, 0x09,\n\t0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,\n\t0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x66,\n\t0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65,\n\t0x6e, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x22, 0x6e, 0x0a, 0x13,\n\t0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,\n\t0x63, 0x65, 0x73, 0x12, 0x57, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61,\n\t0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03,\n\t0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e,\n\t0x4e, 0x61, 0x6d, 0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4f, 0x72, 0x52, 0x65, 0x66,\n\t0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e,\n\t0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0xc9, 0x02, 0x0a,\n\t0x04, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01,\n\t0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64,\n\t0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,\n\t0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a,\n\t0x10, 0x74, 0x65, 0x72, 0x6d, 0x73, 0x5f, 0x6f, 0x66, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,\n\t0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x65, 0x72, 0x6d, 0x73, 0x4f, 0x66,\n\t0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x2d, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x61,\n\t0x63, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61,\n\t0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x07, 0x63,\n\t0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x12, 0x2d, 0x0a, 0x07, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73,\n\t0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x6c, 0x69,\n\t0x63, 0x65, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,\n\t0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12,\n\t0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,\n\t0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b,\n\t0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61,\n\t0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63,\n\t0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18,\n\t0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x22, 0x5a, 0x0a, 0x09, 0x49, 0x74, 0x65, 0x6d,\n\t0x73, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x4d, 0x0a, 0x13, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f,\n\t0x6f, 0x72, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x03,\n\t0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e,\n\t0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,\n\t0x65, 0x52, 0x11, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72,\n\t0x65, 0x6e, 0x63, 0x65, 0x22, 0x7e, 0x0a, 0x07, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x12,\n\t0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e,\n\t0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,\n\t0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69,\n\t0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,\n\t0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x73, 0x70,\n\t0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e,\n\t0x73, 0x69, 0x6f, 0x6e, 0x22, 0xe8, 0x02, 0x0a, 0x04, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x23, 0x0a,\n\t0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x01,\n\t0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,\n\t0x65, 0x66, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f,\n\t0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74,\n\t0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x3b, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74,\n\t0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e,\n\t0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x6e, 0x79, 0x4f, 0x72, 0x45, 0x78, 0x70, 0x72,\n\t0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65,\n\t0x72, 0x73, 0x12, 0x3e, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x6f,\n\t0x64, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61,\n\t0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x6e, 0x79, 0x4f, 0x72, 0x45, 0x78, 0x70, 0x72, 0x65,\n\t0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x6f,\n\t0x64, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,\n\t0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,\n\t0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x06,\n\t0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76,\n\t0x33, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,\n\t0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,\n\t0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28,\n\t0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e,\n\t0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69,\n\t0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22,\n\t0x79, 0x0a, 0x0f, 0x4c, 0x69, 0x6e, 0x6b, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,\n\t0x63, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,\n\t0x32, 0x10, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x69,\n\t0x6e, 0x6b, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x35, 0x0a, 0x09, 0x72, 0x65,\n\t0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e,\n\t0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72,\n\t0x65, 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,\n\t0x65, 0x42, 0x07, 0x0a, 0x05, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x22, 0x6a, 0x0a, 0x11, 0x4c, 0x69,\n\t0x6e, 0x6b, 0x73, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12,\n\t0x55, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x72,\n\t0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20,\n\t0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65,\n\t0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,\n\t0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70,\n\t0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0xad, 0x02, 0x0a, 0x09, 0x4d, 0x65, 0x64, 0x69, 0x61,\n\t0x54, 0x79, 0x70, 0x65, 0x12, 0x35, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x01,\n\t0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76,\n\t0x33, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65,\n\t0x6e, 0x63, 0x65, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x29, 0x0a, 0x07, 0x65,\n\t0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f,\n\t0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x07, 0x65,\n\t0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x3c, 0x0a, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c,\n\t0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61,\n\t0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x4f, 0x72,\n\t0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x08, 0x65, 0x78, 0x61, 0x6d,\n\t0x70, 0x6c, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x08, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67,\n\t0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x33, 0x2e, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x08, 0x65,\n\t0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69,\n\t0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,\n\t0x6f, 0x6e, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61,\n\t0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16,\n\t0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74,\n\t0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x5d, 0x0a, 0x0a, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54,\n\t0x79, 0x70, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e,\n\t0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20,\n\t0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33,\n\t0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52,\n\t0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65,\n\t0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0x45, 0x0a, 0x08, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e,\n\t0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,\n\t0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76,\n\t0x33, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x65, 0x0a, 0x18,\n\t0x4e, 0x61, 0x6d, 0x65, 0x64, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x4f, 0x72, 0x52,\n\t0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,\n\t0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x05,\n\t0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70,\n\t0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63,\n\t0x6b, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x05, 0x76, 0x61,\n\t0x6c, 0x75, 0x65, 0x22, 0x4f, 0x0a, 0x0d, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x45, 0x6e, 0x63, 0x6f,\n\t0x64, 0x69, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,\n\t0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,\n\t0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x33, 0x2e, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x05, 0x76,\n\t0x61, 0x6c, 0x75, 0x65, 0x22, 0x63, 0x0a, 0x17, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x45, 0x78, 0x61,\n\t0x6d, 0x70, 0x6c, 0x65, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12,\n\t0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e,\n\t0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,\n\t0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e,\n\t0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,\n\t0x63, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x61, 0x0a, 0x16, 0x4e, 0x61, 0x6d,\n\t0x65, 0x64, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65,\n\t0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,\n\t0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,\n\t0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x33, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65,\n\t0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x5d, 0x0a, 0x14,\n\t0x4e, 0x61, 0x6d, 0x65, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72,\n\t0x65, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,\n\t0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,\n\t0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72,\n\t0x65, 0x6e, 0x63, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x51, 0x0a, 0x0e, 0x4e,\n\t0x61, 0x6d, 0x65, 0x64, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a,\n\t0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,\n\t0x65, 0x12, 0x2b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,\n\t0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x65,\n\t0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x67,\n\t0x0a, 0x19, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72,\n\t0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e,\n\t0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,\n\t0x36, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20,\n\t0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x50, 0x61, 0x72, 0x61,\n\t0x6d, 0x65, 0x74, 0x65, 0x72, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,\n\t0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x4f, 0x0a, 0x0d, 0x4e, 0x61, 0x6d, 0x65, 0x64,\n\t0x50, 0x61, 0x74, 0x68, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,\n\t0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x05,\n\t0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70,\n\t0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x49, 0x74, 0x65,\n\t0x6d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x6b, 0x0a, 0x1b, 0x4e, 0x61, 0x6d, 0x65,\n\t0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x6f, 0x64, 0x79, 0x4f, 0x72, 0x52, 0x65,\n\t0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,\n\t0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x05, 0x76,\n\t0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x65,\n\t0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42,\n\t0x6f, 0x64, 0x79, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x05,\n\t0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x65, 0x0a, 0x18, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x52, 0x65,\n\t0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,\n\t0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,\n\t0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76,\n\t0x33, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65,\n\t0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x61, 0x0a, 0x16,\n\t0x4e, 0x61, 0x6d, 0x65, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4f, 0x72, 0x52, 0x65, 0x66,\n\t0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01,\n\t0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x05, 0x76, 0x61,\n\t0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e,\n\t0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4f, 0x72, 0x52,\n\t0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22,\n\t0x71, 0x0a, 0x1e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79,\n\t0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,\n\t0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,\n\t0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76,\n\t0x33, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65,\n\t0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c,\n\t0x75, 0x65, 0x22, 0x5b, 0x0a, 0x13, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65,\n\t0x72, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,\n\t0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a,\n\t0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f,\n\t0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,\n\t0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22,\n\t0x37, 0x0a, 0x0b, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x12,\n\t0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61,\n\t0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,\n\t0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x55, 0x0a, 0x10, 0x4e, 0x61, 0x6d, 0x65,\n\t0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04,\n\t0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65,\n\t0x12, 0x2d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,\n\t0x17, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x74, 0x72,\n\t0x69, 0x6e, 0x67, 0x41, 0x72, 0x72, 0x61, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22,\n\t0xf2, 0x01, 0x0a, 0x09, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x2b, 0x0a,\n\t0x11, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x75,\n\t0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72,\n\t0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f,\n\t0x6b, 0x65, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74,\n\t0x6f, 0x6b, 0x65, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x66, 0x72, 0x65,\n\t0x73, 0x68, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65,\n\t0x66, 0x72, 0x65, 0x73, 0x68, 0x55, 0x72, 0x6c, 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x63, 0x6f, 0x70,\n\t0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61,\n\t0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x06, 0x73,\n\t0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69,\n\t0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,\n\t0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x73, 0x70,\n\t0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e,\n\t0x73, 0x69, 0x6f, 0x6e, 0x22, 0xcd, 0x02, 0x0a, 0x0a, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x46, 0x6c,\n\t0x6f, 0x77, 0x73, 0x12, 0x31, 0x0a, 0x08, 0x69, 0x6d, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x18,\n\t0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x33, 0x2e, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x08, 0x69, 0x6d,\n\t0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x12, 0x31, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f,\n\t0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61,\n\t0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x46, 0x6c, 0x6f, 0x77, 0x52,\n\t0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x44, 0x0a, 0x12, 0x63, 0x6c, 0x69,\n\t0x65, 0x6e, 0x74, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x18,\n\t0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x33, 0x2e, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x11, 0x63, 0x6c,\n\t0x69, 0x65, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12,\n\t0x44, 0x0a, 0x12, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e,\n\t0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70,\n\t0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x46, 0x6c,\n\t0x6f, 0x77, 0x52, 0x11, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f,\n\t0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69,\n\t0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,\n\t0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x73, 0x70,\n\t0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e,\n\t0x73, 0x69, 0x6f, 0x6e, 0x22, 0x53, 0x0a, 0x06, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x49,\n\t0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f,\n\t0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e,\n\t0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64,\n\t0x41, 0x6e, 0x79, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50,\n\t0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0x96, 0x05, 0x0a, 0x09, 0x4f, 0x70,\n\t0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18,\n\t0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73,\n\t0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75,\n\t0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,\n\t0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63,\n\t0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x0a, 0x0d, 0x65, 0x78, 0x74, 0x65, 0x72,\n\t0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x6f, 0x63, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18,\n\t0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x45, 0x78, 0x74, 0x65,\n\t0x72, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x63, 0x73, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e,\n\t0x61, 0x6c, 0x44, 0x6f, 0x63, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74,\n\t0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70,\n\t0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x0a, 0x70, 0x61, 0x72,\n\t0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e,\n\t0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d,\n\t0x65, 0x74, 0x65, 0x72, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52,\n\t0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x45, 0x0a, 0x0c, 0x72,\n\t0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28,\n\t0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x52,\n\t0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x6f, 0x64, 0x79, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65,\n\t0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x6f,\n\t0x64, 0x79, 0x12, 0x33, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18,\n\t0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x33, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x52, 0x09, 0x72, 0x65,\n\t0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x62,\n\t0x61, 0x63, 0x6b, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x70, 0x65,\n\t0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b,\n\t0x73, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x09, 0x63,\n\t0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72,\n\t0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x64, 0x65,\n\t0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x3b, 0x0a, 0x08, 0x73, 0x65, 0x63, 0x75,\n\t0x72, 0x69, 0x74, 0x79, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x65,\n\t0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79,\n\t0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x73, 0x65, 0x63,\n\t0x75, 0x72, 0x69, 0x74, 0x79, 0x12, 0x2c, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73,\n\t0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76,\n\t0x65, 0x72, 0x73, 0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61,\n\t0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0d,\n\t0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76,\n\t0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x73, 0x70, 0x65, 0x63,\n\t0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,\n\t0x6f, 0x6e, 0x22, 0xb1, 0x04, 0x0a, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72,\n\t0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,\n\t0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,\n\t0x52, 0x02, 0x69, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,\n\t0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72,\n\t0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72,\n\t0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72,\n\t0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64,\n\t0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74,\n\t0x65, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x65, 0x6d, 0x70, 0x74,\n\t0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x61,\n\t0x6c, 0x6c, 0x6f, 0x77, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14,\n\t0x0a, 0x05, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73,\n\t0x74, 0x79, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x64, 0x65, 0x18,\n\t0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x64, 0x65, 0x12, 0x25,\n\t0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64,\n\t0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73,\n\t0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x35, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18,\n\t0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x33, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72,\n\t0x65, 0x6e, 0x63, 0x65, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x29, 0x0a, 0x07,\n\t0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e,\n\t0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x07,\n\t0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x3c, 0x0a, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x70,\n\t0x6c, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e,\n\t0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x4f,\n\t0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x08, 0x65, 0x78, 0x61,\n\t0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74,\n\t0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x07,\n\t0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69,\n\t0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,\n\t0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61,\n\t0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16,\n\t0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74,\n\t0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x8d, 0x01, 0x0a, 0x14, 0x50, 0x61, 0x72, 0x61, 0x6d,\n\t0x65, 0x74, 0x65, 0x72, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12,\n\t0x35, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01,\n\t0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e,\n\t0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x09, 0x70, 0x61, 0x72,\n\t0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x35, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65,\n\t0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e,\n\t0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,\n\t0x48, 0x00, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x07, 0x0a,\n\t0x05, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x22, 0x74, 0x0a, 0x16, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65,\n\t0x74, 0x65, 0x72, 0x73, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73,\n\t0x12, 0x5a, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70,\n\t0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,\n\t0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d,\n\t0x65, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4f, 0x72, 0x52, 0x65, 0x66,\n\t0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e,\n\t0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0xfa, 0x04, 0x0a,\n\t0x08, 0x50, 0x61, 0x74, 0x68, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x11, 0x0a, 0x04, 0x5f, 0x72, 0x65,\n\t0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x52, 0x65, 0x66, 0x12, 0x18, 0x0a, 0x07,\n\t0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73,\n\t0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,\n\t0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73,\n\t0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x03, 0x67, 0x65, 0x74, 0x18,\n\t0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x33, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x67, 0x65,\n\t0x74, 0x12, 0x27, 0x0a, 0x03, 0x70, 0x75, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15,\n\t0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4f, 0x70, 0x65, 0x72,\n\t0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x70, 0x75, 0x74, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x6f,\n\t0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61,\n\t0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,\n\t0x04, 0x70, 0x6f, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x18,\n\t0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x33, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x64, 0x65,\n\t0x6c, 0x65, 0x74, 0x65, 0x12, 0x2f, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18,\n\t0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x33, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x6f, 0x70,\n\t0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x29, 0x0a, 0x04, 0x68, 0x65, 0x61, 0x64, 0x18, 0x09, 0x20,\n\t0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33,\n\t0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x68, 0x65, 0x61, 0x64,\n\t0x12, 0x2b, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x63, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32,\n\t0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4f, 0x70, 0x65,\n\t0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x70, 0x61, 0x74, 0x63, 0x68, 0x12, 0x2b, 0x0a,\n\t0x05, 0x74, 0x72, 0x61, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f,\n\t0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74,\n\t0x69, 0x6f, 0x6e, 0x52, 0x05, 0x74, 0x72, 0x61, 0x63, 0x65, 0x12, 0x2c, 0x0a, 0x07, 0x73, 0x65,\n\t0x72, 0x76, 0x65, 0x72, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x70,\n\t0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52,\n\t0x07, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x12, 0x40, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61,\n\t0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f,\n\t0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65,\n\t0x74, 0x65, 0x72, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0a,\n\t0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70,\n\t0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65,\n\t0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70,\n\t0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e,\n\t0x79, 0x52, 0x16, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,\n\t0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x85, 0x01, 0x0a, 0x05, 0x50, 0x61,\n\t0x74, 0x68, 0x73, 0x12, 0x2d, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28,\n\t0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e,\n\t0x61, 0x6d, 0x65, 0x64, 0x50, 0x61, 0x74, 0x68, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x70, 0x61,\n\t0x74, 0x68, 0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,\n\t0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20,\n\t0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33,\n\t0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x73, 0x70, 0x65, 0x63, 0x69,\n\t0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,\n\t0x6e, 0x22, 0x65, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12,\n\t0x57, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x72,\n\t0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22,\n\t0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65,\n\t0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,\n\t0x63, 0x65, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72,\n\t0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0x5a, 0x0a, 0x09, 0x52, 0x65, 0x66, 0x65,\n\t0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x11, 0x0a, 0x04, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20,\n\t0x01, 0x28, 0x09, 0x52, 0x03, 0x52, 0x65, 0x66, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d,\n\t0x61, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61,\n\t0x72, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,\n\t0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,\n\t0x74, 0x69, 0x6f, 0x6e, 0x22, 0x79, 0x0a, 0x19, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42,\n\t0x6f, 0x64, 0x69, 0x65, 0x73, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,\n\t0x73, 0x12, 0x5c, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f,\n\t0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,\n\t0x32, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61,\n\t0x6d, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x6f, 0x64, 0x79, 0x4f, 0x72,\n\t0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74,\n\t0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22,\n\t0xcc, 0x01, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x6f, 0x64, 0x79, 0x12,\n\t0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01,\n\t0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,\n\t0x6e, 0x12, 0x30, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01,\n\t0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e,\n\t0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74,\n\t0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18,\n\t0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12,\n\t0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,\n\t0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b,\n\t0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61,\n\t0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63,\n\t0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x96,\n\t0x01, 0x0a, 0x16, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x6f, 0x64, 0x79, 0x4f, 0x72,\n\t0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3c, 0x0a, 0x0c, 0x72, 0x65, 0x71,\n\t0x75, 0x65, 0x73, 0x74, 0x5f, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,\n\t0x17, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x71,\n\t0x75, 0x65, 0x73, 0x74, 0x42, 0x6f, 0x64, 0x79, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75,\n\t0x65, 0x73, 0x74, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x35, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72,\n\t0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65,\n\t0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,\n\t0x65, 0x48, 0x00, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x07,\n\t0x0a, 0x05, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x22, 0x9d, 0x02, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70,\n\t0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,\n\t0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72,\n\t0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72,\n\t0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x33, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x4f, 0x72, 0x52, 0x65,\n\t0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72,\n\t0x73, 0x12, 0x30, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01,\n\t0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e,\n\t0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74,\n\t0x65, 0x6e, 0x74, 0x12, 0x33, 0x0a, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x04, 0x20, 0x01,\n\t0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e,\n\t0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,\n\t0x73, 0x52, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63,\n\t0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73,\n\t0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e,\n\t0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52,\n\t0x16, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78,\n\t0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x89, 0x01, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x70,\n\t0x6f, 0x6e, 0x73, 0x65, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12,\n\t0x32, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,\n\t0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x52,\n\t0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f,\n\t0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,\n\t0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52,\n\t0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x6f, 0x6e,\n\t0x65, 0x6f, 0x66, 0x22, 0xef, 0x01, 0x0a, 0x09, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,\n\t0x73, 0x12, 0x39, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01,\n\t0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e,\n\t0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65,\n\t0x6e, 0x63, 0x65, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x58, 0x0a, 0x15,\n\t0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x66, 0x65,\n\t0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70,\n\t0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x52, 0x65,\n\t0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,\n\t0x65, 0x52, 0x13, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4f, 0x72, 0x52, 0x65, 0x66,\n\t0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66,\n\t0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,\n\t0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x73,\n\t0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65,\n\t0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x72, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,\n\t0x65, 0x73, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x59,\n\t0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f,\n\t0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e,\n\t0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64,\n\t0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65,\n\t0x6e, 0x63, 0x65, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50,\n\t0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0xaf, 0x0b, 0x0a, 0x06, 0x53, 0x63,\n\t0x68, 0x65, 0x6d, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65,\n\t0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65,\n\t0x12, 0x3f, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f,\n\t0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x33, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74,\n\t0x6f, 0x72, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f,\n\t0x72, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x03,\n\t0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x1d,\n\t0x0a, 0x0a, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x04, 0x20, 0x01,\n\t0x28, 0x08, 0x52, 0x09, 0x77, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x21, 0x0a,\n\t0x03, 0x78, 0x6d, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x70, 0x65,\n\t0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x58, 0x6d, 0x6c, 0x52, 0x03, 0x78, 0x6d, 0x6c,\n\t0x12, 0x3d, 0x0a, 0x0d, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x6f, 0x63,\n\t0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x33, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x63,\n\t0x73, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x63, 0x73, 0x12,\n\t0x29, 0x0a, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b,\n\t0x32, 0x0f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x6e,\n\t0x79, 0x52, 0x07, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65,\n\t0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a,\n\t0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69,\n\t0x74, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65,\n\t0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x6f, 0x66, 0x18,\n\t0x0a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x4f,\n\t0x66, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x0b, 0x20, 0x01,\n\t0x28, 0x01, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x2b, 0x0a, 0x11, 0x65,\n\t0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d,\n\t0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76,\n\t0x65, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x69,\n\t0x6d, 0x75, 0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x69, 0x6d,\n\t0x75, 0x6d, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x5f,\n\t0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x65,\n\t0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x12,\n\t0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0f, 0x20,\n\t0x01, 0x28, 0x03, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x1d,\n\t0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x10, 0x20, 0x01,\n\t0x28, 0x03, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x18, 0x0a,\n\t0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,\n\t0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x69,\n\t0x74, 0x65, 0x6d, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x49,\n\t0x74, 0x65, 0x6d, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x69, 0x74, 0x65, 0x6d,\n\t0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x49, 0x74, 0x65, 0x6d,\n\t0x73, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x5f, 0x69, 0x74, 0x65, 0x6d,\n\t0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49,\n\t0x74, 0x65, 0x6d, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x72, 0x6f, 0x70,\n\t0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6d, 0x61,\n\t0x78, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x6d,\n\t0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x16, 0x20,\n\t0x01, 0x28, 0x03, 0x52, 0x0d, 0x6d, 0x69, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69,\n\t0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x17,\n\t0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x23,\n\t0x0a, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x18, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f,\n\t0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, 0x65,\n\t0x6e, 0x75, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28,\n\t0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x34, 0x0a, 0x06, 0x61, 0x6c, 0x6c, 0x5f, 0x6f,\n\t0x66, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4f, 0x72, 0x52, 0x65, 0x66,\n\t0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x05, 0x61, 0x6c, 0x6c, 0x4f, 0x66, 0x12, 0x34, 0x0a,\n\t0x06, 0x6f, 0x6e, 0x65, 0x5f, 0x6f, 0x66, 0x18, 0x1b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e,\n\t0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d,\n\t0x61, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x05, 0x6f, 0x6e,\n\t0x65, 0x4f, 0x66, 0x12, 0x34, 0x0a, 0x06, 0x61, 0x6e, 0x79, 0x5f, 0x6f, 0x66, 0x18, 0x1c, 0x20,\n\t0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33,\n\t0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,\n\t0x63, 0x65, 0x52, 0x05, 0x61, 0x6e, 0x79, 0x4f, 0x66, 0x12, 0x24, 0x0a, 0x03, 0x6e, 0x6f, 0x74,\n\t0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x33, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x03, 0x6e, 0x6f, 0x74, 0x12,\n\t0x2b, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15,\n\t0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x49, 0x74, 0x65, 0x6d,\n\t0x73, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x36, 0x0a, 0x0a,\n\t0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b,\n\t0x32, 0x16, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x50, 0x72,\n\t0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,\n\t0x74, 0x69, 0x65, 0x73, 0x12, 0x59, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e,\n\t0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x20, 0x20,\n\t0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33,\n\t0x2e, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65,\n\t0x72, 0x74, 0x69, 0x65, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74,\n\t0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12,\n\t0x31, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b,\n\t0x32, 0x17, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x44, 0x65,\n\t0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75,\n\t0x6c, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,\n\t0x6e, 0x18, 0x22, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,\n\t0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x23,\n\t0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x4d, 0x0a, 0x17,\n\t0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78,\n\t0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x24, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e,\n\t0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64,\n\t0x41, 0x6e, 0x79, 0x52, 0x16, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69,\n\t0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x81, 0x01, 0x0a, 0x11,\n\t0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,\n\t0x65, 0x12, 0x2c, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28,\n\t0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x53,\n\t0x63, 0x68, 0x65, 0x6d, 0x61, 0x48, 0x00, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12,\n\t0x35, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01,\n\t0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e,\n\t0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, 0x09, 0x72, 0x65, 0x66,\n\t0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x22,\n\t0x6e, 0x0a, 0x13, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65,\n\t0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x57, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69,\n\t0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18,\n\t0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4f, 0x72,\n\t0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74,\n\t0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22,\n\t0x68, 0x0a, 0x13, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x69,\n\t0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x51, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69,\n\t0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18,\n\t0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e,\n\t0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x41, 0x72,\n\t0x72, 0x61, 0x79, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50,\n\t0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0xd3, 0x02, 0x0a, 0x0e, 0x53, 0x65,\n\t0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04,\n\t0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65,\n\t0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18,\n\t0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,\n\t0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,\n\t0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01,\n\t0x28, 0x09, 0x52, 0x02, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65,\n\t0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x23,\n\t0x0a, 0x0d, 0x62, 0x65, 0x61, 0x72, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18,\n\t0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x65, 0x61, 0x72, 0x65, 0x72, 0x46, 0x6f, 0x72,\n\t0x6d, 0x61, 0x74, 0x12, 0x2c, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x07, 0x20, 0x01,\n\t0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e,\n\t0x4f, 0x61, 0x75, 0x74, 0x68, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x77,\n\t0x73, 0x12, 0x2d, 0x0a, 0x13, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x69, 0x64, 0x5f, 0x63, 0x6f, 0x6e,\n\t0x6e, 0x65, 0x63, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10,\n\t0x6f, 0x70, 0x65, 0x6e, 0x49, 0x64, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x55, 0x72, 0x6c,\n\t0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,\n\t0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x03, 0x28,\n\t0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e,\n\t0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69,\n\t0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22,\n\t0xa2, 0x01, 0x0a, 0x19, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x63, 0x68, 0x65,\n\t0x6d, 0x65, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x45, 0x0a,\n\t0x0f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65,\n\t0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x63, 0x68, 0x65,\n\t0x6d, 0x65, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x63,\n\t0x68, 0x65, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,\n\t0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x48, 0x00,\n\t0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x6f,\n\t0x6e, 0x65, 0x6f, 0x66, 0x22, 0x7e, 0x0a, 0x1b, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79,\n\t0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x73, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,\n\t0x63, 0x65, 0x73, 0x12, 0x5f, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61,\n\t0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03,\n\t0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e,\n\t0x4e, 0x61, 0x6d, 0x65, 0x64, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x63, 0x68,\n\t0x65, 0x6d, 0x65, 0x4f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x14,\n\t0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72,\n\t0x74, 0x69, 0x65, 0x73, 0x22, 0xc6, 0x01, 0x0a, 0x06, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12,\n\t0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72,\n\t0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,\n\t0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,\n\t0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x09, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73,\n\t0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69,\n\t0x2e, 0x76, 0x33, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62,\n\t0x6c, 0x65, 0x73, 0x52, 0x09, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x4d,\n\t0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f,\n\t0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32,\n\t0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d,\n\t0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61,\n\t0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xaf, 0x01,\n\t0x0a, 0x0e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65,\n\t0x12, 0x12, 0x0a, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04,\n\t0x65, 0x6e, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18,\n\t0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x20,\n\t0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20,\n\t0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,\n\t0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,\n\t0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28,\n\t0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e,\n\t0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69,\n\t0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22,\n\t0x67, 0x0a, 0x0f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c,\n\t0x65, 0x73, 0x12, 0x54, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c,\n\t0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,\n\t0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e,\n\t0x61, 0x6d, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62,\n\t0x6c, 0x65, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72,\n\t0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0x71, 0x0a, 0x16, 0x53, 0x70, 0x65, 0x63,\n\t0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,\n\t0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01,\n\t0x28, 0x01, 0x48, 0x00, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x07,\n\t0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52,\n\t0x07, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x12, 0x18, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69,\n\t0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x72, 0x69,\n\t0x6e, 0x67, 0x42, 0x07, 0x0a, 0x05, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x22, 0x23, 0x0a, 0x0b, 0x53,\n\t0x74, 0x72, 0x69, 0x6e, 0x67, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,\n\t0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,\n\t0x22, 0x57, 0x0a, 0x07, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4c, 0x0a, 0x15, 0x61,\n\t0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72,\n\t0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x70, 0x65,\n\t0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x53, 0x74, 0x72,\n\t0x69, 0x6e, 0x67, 0x52, 0x14, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50,\n\t0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0xc9, 0x01, 0x0a, 0x03, 0x54, 0x61,\n\t0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,\n\t0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63,\n\t0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x0a, 0x0d, 0x65, 0x78, 0x74, 0x65, 0x72,\n\t0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x6f, 0x63, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18,\n\t0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x45, 0x78, 0x74, 0x65,\n\t0x72, 0x6e, 0x61, 0x6c, 0x44, 0x6f, 0x63, 0x73, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e,\n\t0x61, 0x6c, 0x44, 0x6f, 0x63, 0x73, 0x12, 0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66,\n\t0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,\n\t0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70,\n\t0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x73,\n\t0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65,\n\t0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xd6, 0x01, 0x0a, 0x03, 0x58, 0x6d, 0x6c, 0x12, 0x12, 0x0a,\n\t0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,\n\t0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02,\n\t0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12,\n\t0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x69,\n\t0x62, 0x75, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x74, 0x74, 0x72,\n\t0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x64,\n\t0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x64, 0x12,\n\t0x4d, 0x0a, 0x17, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,\n\t0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b,\n\t0x32, 0x14, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x61,\n\t0x6d, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x52, 0x16, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63,\n\t0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x3e,\n\t0x0a, 0x0e, 0x6f, 0x72, 0x67, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x33,\n\t0x42, 0x0c, 0x4f, 0x70, 0x65, 0x6e, 0x41, 0x50, 0x49, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01,\n\t0x5a, 0x16, 0x2e, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x33, 0x3b, 0x6f, 0x70,\n\t0x65, 0x6e, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x33, 0xa2, 0x02, 0x03, 0x4f, 0x41, 0x53, 0x62, 0x06,\n\t0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,\n}\n\nvar (\n\tfile_openapiv3_OpenAPIv3_proto_rawDescOnce sync.Once\n\tfile_openapiv3_OpenAPIv3_proto_rawDescData = file_openapiv3_OpenAPIv3_proto_rawDesc\n)\n\nfunc file_openapiv3_OpenAPIv3_proto_rawDescGZIP() []byte {\n\tfile_openapiv3_OpenAPIv3_proto_rawDescOnce.Do(func() {\n\t\tfile_openapiv3_OpenAPIv3_proto_rawDescData = protoimpl.X.CompressGZIP(file_openapiv3_OpenAPIv3_proto_rawDescData)\n\t})\n\treturn file_openapiv3_OpenAPIv3_proto_rawDescData\n}\n\nvar file_openapiv3_OpenAPIv3_proto_msgTypes = make([]protoimpl.MessageInfo, 78)\nvar file_openapiv3_OpenAPIv3_proto_goTypes = []interface{}{\n\t(*AdditionalPropertiesItem)(nil),       // 0: openapi.v3.AdditionalPropertiesItem\n\t(*Any)(nil),                            // 1: openapi.v3.Any\n\t(*AnyOrExpression)(nil),                // 2: openapi.v3.AnyOrExpression\n\t(*Callback)(nil),                       // 3: openapi.v3.Callback\n\t(*CallbackOrReference)(nil),            // 4: openapi.v3.CallbackOrReference\n\t(*CallbacksOrReferences)(nil),          // 5: openapi.v3.CallbacksOrReferences\n\t(*Components)(nil),                     // 6: openapi.v3.Components\n\t(*Contact)(nil),                        // 7: openapi.v3.Contact\n\t(*DefaultType)(nil),                    // 8: openapi.v3.DefaultType\n\t(*Discriminator)(nil),                  // 9: openapi.v3.Discriminator\n\t(*Document)(nil),                       // 10: openapi.v3.Document\n\t(*Encoding)(nil),                       // 11: openapi.v3.Encoding\n\t(*Encodings)(nil),                      // 12: openapi.v3.Encodings\n\t(*Example)(nil),                        // 13: openapi.v3.Example\n\t(*ExampleOrReference)(nil),             // 14: openapi.v3.ExampleOrReference\n\t(*ExamplesOrReferences)(nil),           // 15: openapi.v3.ExamplesOrReferences\n\t(*Expression)(nil),                     // 16: openapi.v3.Expression\n\t(*ExternalDocs)(nil),                   // 17: openapi.v3.ExternalDocs\n\t(*Header)(nil),                         // 18: openapi.v3.Header\n\t(*HeaderOrReference)(nil),              // 19: openapi.v3.HeaderOrReference\n\t(*HeadersOrReferences)(nil),            // 20: openapi.v3.HeadersOrReferences\n\t(*Info)(nil),                           // 21: openapi.v3.Info\n\t(*ItemsItem)(nil),                      // 22: openapi.v3.ItemsItem\n\t(*License)(nil),                        // 23: openapi.v3.License\n\t(*Link)(nil),                           // 24: openapi.v3.Link\n\t(*LinkOrReference)(nil),                // 25: openapi.v3.LinkOrReference\n\t(*LinksOrReferences)(nil),              // 26: openapi.v3.LinksOrReferences\n\t(*MediaType)(nil),                      // 27: openapi.v3.MediaType\n\t(*MediaTypes)(nil),                     // 28: openapi.v3.MediaTypes\n\t(*NamedAny)(nil),                       // 29: openapi.v3.NamedAny\n\t(*NamedCallbackOrReference)(nil),       // 30: openapi.v3.NamedCallbackOrReference\n\t(*NamedEncoding)(nil),                  // 31: openapi.v3.NamedEncoding\n\t(*NamedExampleOrReference)(nil),        // 32: openapi.v3.NamedExampleOrReference\n\t(*NamedHeaderOrReference)(nil),         // 33: openapi.v3.NamedHeaderOrReference\n\t(*NamedLinkOrReference)(nil),           // 34: openapi.v3.NamedLinkOrReference\n\t(*NamedMediaType)(nil),                 // 35: openapi.v3.NamedMediaType\n\t(*NamedParameterOrReference)(nil),      // 36: openapi.v3.NamedParameterOrReference\n\t(*NamedPathItem)(nil),                  // 37: openapi.v3.NamedPathItem\n\t(*NamedRequestBodyOrReference)(nil),    // 38: openapi.v3.NamedRequestBodyOrReference\n\t(*NamedResponseOrReference)(nil),       // 39: openapi.v3.NamedResponseOrReference\n\t(*NamedSchemaOrReference)(nil),         // 40: openapi.v3.NamedSchemaOrReference\n\t(*NamedSecuritySchemeOrReference)(nil), // 41: openapi.v3.NamedSecuritySchemeOrReference\n\t(*NamedServerVariable)(nil),            // 42: openapi.v3.NamedServerVariable\n\t(*NamedString)(nil),                    // 43: openapi.v3.NamedString\n\t(*NamedStringArray)(nil),               // 44: openapi.v3.NamedStringArray\n\t(*OauthFlow)(nil),                      // 45: openapi.v3.OauthFlow\n\t(*OauthFlows)(nil),                     // 46: openapi.v3.OauthFlows\n\t(*Object)(nil),                         // 47: openapi.v3.Object\n\t(*Operation)(nil),                      // 48: openapi.v3.Operation\n\t(*Parameter)(nil),                      // 49: openapi.v3.Parameter\n\t(*ParameterOrReference)(nil),           // 50: openapi.v3.ParameterOrReference\n\t(*ParametersOrReferences)(nil),         // 51: openapi.v3.ParametersOrReferences\n\t(*PathItem)(nil),                       // 52: openapi.v3.PathItem\n\t(*Paths)(nil),                          // 53: openapi.v3.Paths\n\t(*Properties)(nil),                     // 54: openapi.v3.Properties\n\t(*Reference)(nil),                      // 55: openapi.v3.Reference\n\t(*RequestBodiesOrReferences)(nil),      // 56: openapi.v3.RequestBodiesOrReferences\n\t(*RequestBody)(nil),                    // 57: openapi.v3.RequestBody\n\t(*RequestBodyOrReference)(nil),         // 58: openapi.v3.RequestBodyOrReference\n\t(*Response)(nil),                       // 59: openapi.v3.Response\n\t(*ResponseOrReference)(nil),            // 60: openapi.v3.ResponseOrReference\n\t(*Responses)(nil),                      // 61: openapi.v3.Responses\n\t(*ResponsesOrReferences)(nil),          // 62: openapi.v3.ResponsesOrReferences\n\t(*Schema)(nil),                         // 63: openapi.v3.Schema\n\t(*SchemaOrReference)(nil),              // 64: openapi.v3.SchemaOrReference\n\t(*SchemasOrReferences)(nil),            // 65: openapi.v3.SchemasOrReferences\n\t(*SecurityRequirement)(nil),            // 66: openapi.v3.SecurityRequirement\n\t(*SecurityScheme)(nil),                 // 67: openapi.v3.SecurityScheme\n\t(*SecuritySchemeOrReference)(nil),      // 68: openapi.v3.SecuritySchemeOrReference\n\t(*SecuritySchemesOrReferences)(nil),    // 69: openapi.v3.SecuritySchemesOrReferences\n\t(*Server)(nil),                         // 70: openapi.v3.Server\n\t(*ServerVariable)(nil),                 // 71: openapi.v3.ServerVariable\n\t(*ServerVariables)(nil),                // 72: openapi.v3.ServerVariables\n\t(*SpecificationExtension)(nil),         // 73: openapi.v3.SpecificationExtension\n\t(*StringArray)(nil),                    // 74: openapi.v3.StringArray\n\t(*Strings)(nil),                        // 75: openapi.v3.Strings\n\t(*Tag)(nil),                            // 76: openapi.v3.Tag\n\t(*Xml)(nil),                            // 77: openapi.v3.Xml\n\t(*anypb.Any)(nil),                      // 78: google.protobuf.Any\n}\nvar file_openapiv3_OpenAPIv3_proto_depIdxs = []int32{\n\t64,  // 0: openapi.v3.AdditionalPropertiesItem.schema_or_reference:type_name -> openapi.v3.SchemaOrReference\n\t78,  // 1: openapi.v3.Any.value:type_name -> google.protobuf.Any\n\t1,   // 2: openapi.v3.AnyOrExpression.any:type_name -> openapi.v3.Any\n\t16,  // 3: openapi.v3.AnyOrExpression.expression:type_name -> openapi.v3.Expression\n\t37,  // 4: openapi.v3.Callback.path:type_name -> openapi.v3.NamedPathItem\n\t29,  // 5: openapi.v3.Callback.specification_extension:type_name -> openapi.v3.NamedAny\n\t3,   // 6: openapi.v3.CallbackOrReference.callback:type_name -> openapi.v3.Callback\n\t55,  // 7: openapi.v3.CallbackOrReference.reference:type_name -> openapi.v3.Reference\n\t30,  // 8: openapi.v3.CallbacksOrReferences.additional_properties:type_name -> openapi.v3.NamedCallbackOrReference\n\t65,  // 9: openapi.v3.Components.schemas:type_name -> openapi.v3.SchemasOrReferences\n\t62,  // 10: openapi.v3.Components.responses:type_name -> openapi.v3.ResponsesOrReferences\n\t51,  // 11: openapi.v3.Components.parameters:type_name -> openapi.v3.ParametersOrReferences\n\t15,  // 12: openapi.v3.Components.examples:type_name -> openapi.v3.ExamplesOrReferences\n\t56,  // 13: openapi.v3.Components.request_bodies:type_name -> openapi.v3.RequestBodiesOrReferences\n\t20,  // 14: openapi.v3.Components.headers:type_name -> openapi.v3.HeadersOrReferences\n\t69,  // 15: openapi.v3.Components.security_schemes:type_name -> openapi.v3.SecuritySchemesOrReferences\n\t26,  // 16: openapi.v3.Components.links:type_name -> openapi.v3.LinksOrReferences\n\t5,   // 17: openapi.v3.Components.callbacks:type_name -> openapi.v3.CallbacksOrReferences\n\t29,  // 18: openapi.v3.Components.specification_extension:type_name -> openapi.v3.NamedAny\n\t29,  // 19: openapi.v3.Contact.specification_extension:type_name -> openapi.v3.NamedAny\n\t75,  // 20: openapi.v3.Discriminator.mapping:type_name -> openapi.v3.Strings\n\t29,  // 21: openapi.v3.Discriminator.specification_extension:type_name -> openapi.v3.NamedAny\n\t21,  // 22: openapi.v3.Document.info:type_name -> openapi.v3.Info\n\t70,  // 23: openapi.v3.Document.servers:type_name -> openapi.v3.Server\n\t53,  // 24: openapi.v3.Document.paths:type_name -> openapi.v3.Paths\n\t6,   // 25: openapi.v3.Document.components:type_name -> openapi.v3.Components\n\t66,  // 26: openapi.v3.Document.security:type_name -> openapi.v3.SecurityRequirement\n\t76,  // 27: openapi.v3.Document.tags:type_name -> openapi.v3.Tag\n\t17,  // 28: openapi.v3.Document.external_docs:type_name -> openapi.v3.ExternalDocs\n\t29,  // 29: openapi.v3.Document.specification_extension:type_name -> openapi.v3.NamedAny\n\t20,  // 30: openapi.v3.Encoding.headers:type_name -> openapi.v3.HeadersOrReferences\n\t29,  // 31: openapi.v3.Encoding.specification_extension:type_name -> openapi.v3.NamedAny\n\t31,  // 32: openapi.v3.Encodings.additional_properties:type_name -> openapi.v3.NamedEncoding\n\t1,   // 33: openapi.v3.Example.value:type_name -> openapi.v3.Any\n\t29,  // 34: openapi.v3.Example.specification_extension:type_name -> openapi.v3.NamedAny\n\t13,  // 35: openapi.v3.ExampleOrReference.example:type_name -> openapi.v3.Example\n\t55,  // 36: openapi.v3.ExampleOrReference.reference:type_name -> openapi.v3.Reference\n\t32,  // 37: openapi.v3.ExamplesOrReferences.additional_properties:type_name -> openapi.v3.NamedExampleOrReference\n\t29,  // 38: openapi.v3.Expression.additional_properties:type_name -> openapi.v3.NamedAny\n\t29,  // 39: openapi.v3.ExternalDocs.specification_extension:type_name -> openapi.v3.NamedAny\n\t64,  // 40: openapi.v3.Header.schema:type_name -> openapi.v3.SchemaOrReference\n\t1,   // 41: openapi.v3.Header.example:type_name -> openapi.v3.Any\n\t15,  // 42: openapi.v3.Header.examples:type_name -> openapi.v3.ExamplesOrReferences\n\t28,  // 43: openapi.v3.Header.content:type_name -> openapi.v3.MediaTypes\n\t29,  // 44: openapi.v3.Header.specification_extension:type_name -> openapi.v3.NamedAny\n\t18,  // 45: openapi.v3.HeaderOrReference.header:type_name -> openapi.v3.Header\n\t55,  // 46: openapi.v3.HeaderOrReference.reference:type_name -> openapi.v3.Reference\n\t33,  // 47: openapi.v3.HeadersOrReferences.additional_properties:type_name -> openapi.v3.NamedHeaderOrReference\n\t7,   // 48: openapi.v3.Info.contact:type_name -> openapi.v3.Contact\n\t23,  // 49: openapi.v3.Info.license:type_name -> openapi.v3.License\n\t29,  // 50: openapi.v3.Info.specification_extension:type_name -> openapi.v3.NamedAny\n\t64,  // 51: openapi.v3.ItemsItem.schema_or_reference:type_name -> openapi.v3.SchemaOrReference\n\t29,  // 52: openapi.v3.License.specification_extension:type_name -> openapi.v3.NamedAny\n\t2,   // 53: openapi.v3.Link.parameters:type_name -> openapi.v3.AnyOrExpression\n\t2,   // 54: openapi.v3.Link.request_body:type_name -> openapi.v3.AnyOrExpression\n\t70,  // 55: openapi.v3.Link.server:type_name -> openapi.v3.Server\n\t29,  // 56: openapi.v3.Link.specification_extension:type_name -> openapi.v3.NamedAny\n\t24,  // 57: openapi.v3.LinkOrReference.link:type_name -> openapi.v3.Link\n\t55,  // 58: openapi.v3.LinkOrReference.reference:type_name -> openapi.v3.Reference\n\t34,  // 59: openapi.v3.LinksOrReferences.additional_properties:type_name -> openapi.v3.NamedLinkOrReference\n\t64,  // 60: openapi.v3.MediaType.schema:type_name -> openapi.v3.SchemaOrReference\n\t1,   // 61: openapi.v3.MediaType.example:type_name -> openapi.v3.Any\n\t15,  // 62: openapi.v3.MediaType.examples:type_name -> openapi.v3.ExamplesOrReferences\n\t12,  // 63: openapi.v3.MediaType.encoding:type_name -> openapi.v3.Encodings\n\t29,  // 64: openapi.v3.MediaType.specification_extension:type_name -> openapi.v3.NamedAny\n\t35,  // 65: openapi.v3.MediaTypes.additional_properties:type_name -> openapi.v3.NamedMediaType\n\t1,   // 66: openapi.v3.NamedAny.value:type_name -> openapi.v3.Any\n\t4,   // 67: openapi.v3.NamedCallbackOrReference.value:type_name -> openapi.v3.CallbackOrReference\n\t11,  // 68: openapi.v3.NamedEncoding.value:type_name -> openapi.v3.Encoding\n\t14,  // 69: openapi.v3.NamedExampleOrReference.value:type_name -> openapi.v3.ExampleOrReference\n\t19,  // 70: openapi.v3.NamedHeaderOrReference.value:type_name -> openapi.v3.HeaderOrReference\n\t25,  // 71: openapi.v3.NamedLinkOrReference.value:type_name -> openapi.v3.LinkOrReference\n\t27,  // 72: openapi.v3.NamedMediaType.value:type_name -> openapi.v3.MediaType\n\t50,  // 73: openapi.v3.NamedParameterOrReference.value:type_name -> openapi.v3.ParameterOrReference\n\t52,  // 74: openapi.v3.NamedPathItem.value:type_name -> openapi.v3.PathItem\n\t58,  // 75: openapi.v3.NamedRequestBodyOrReference.value:type_name -> openapi.v3.RequestBodyOrReference\n\t60,  // 76: openapi.v3.NamedResponseOrReference.value:type_name -> openapi.v3.ResponseOrReference\n\t64,  // 77: openapi.v3.NamedSchemaOrReference.value:type_name -> openapi.v3.SchemaOrReference\n\t68,  // 78: openapi.v3.NamedSecuritySchemeOrReference.value:type_name -> openapi.v3.SecuritySchemeOrReference\n\t71,  // 79: openapi.v3.NamedServerVariable.value:type_name -> openapi.v3.ServerVariable\n\t74,  // 80: openapi.v3.NamedStringArray.value:type_name -> openapi.v3.StringArray\n\t75,  // 81: openapi.v3.OauthFlow.scopes:type_name -> openapi.v3.Strings\n\t29,  // 82: openapi.v3.OauthFlow.specification_extension:type_name -> openapi.v3.NamedAny\n\t45,  // 83: openapi.v3.OauthFlows.implicit:type_name -> openapi.v3.OauthFlow\n\t45,  // 84: openapi.v3.OauthFlows.password:type_name -> openapi.v3.OauthFlow\n\t45,  // 85: openapi.v3.OauthFlows.client_credentials:type_name -> openapi.v3.OauthFlow\n\t45,  // 86: openapi.v3.OauthFlows.authorization_code:type_name -> openapi.v3.OauthFlow\n\t29,  // 87: openapi.v3.OauthFlows.specification_extension:type_name -> openapi.v3.NamedAny\n\t29,  // 88: openapi.v3.Object.additional_properties:type_name -> openapi.v3.NamedAny\n\t17,  // 89: openapi.v3.Operation.external_docs:type_name -> openapi.v3.ExternalDocs\n\t50,  // 90: openapi.v3.Operation.parameters:type_name -> openapi.v3.ParameterOrReference\n\t58,  // 91: openapi.v3.Operation.request_body:type_name -> openapi.v3.RequestBodyOrReference\n\t61,  // 92: openapi.v3.Operation.responses:type_name -> openapi.v3.Responses\n\t5,   // 93: openapi.v3.Operation.callbacks:type_name -> openapi.v3.CallbacksOrReferences\n\t66,  // 94: openapi.v3.Operation.security:type_name -> openapi.v3.SecurityRequirement\n\t70,  // 95: openapi.v3.Operation.servers:type_name -> openapi.v3.Server\n\t29,  // 96: openapi.v3.Operation.specification_extension:type_name -> openapi.v3.NamedAny\n\t64,  // 97: openapi.v3.Parameter.schema:type_name -> openapi.v3.SchemaOrReference\n\t1,   // 98: openapi.v3.Parameter.example:type_name -> openapi.v3.Any\n\t15,  // 99: openapi.v3.Parameter.examples:type_name -> openapi.v3.ExamplesOrReferences\n\t28,  // 100: openapi.v3.Parameter.content:type_name -> openapi.v3.MediaTypes\n\t29,  // 101: openapi.v3.Parameter.specification_extension:type_name -> openapi.v3.NamedAny\n\t49,  // 102: openapi.v3.ParameterOrReference.parameter:type_name -> openapi.v3.Parameter\n\t55,  // 103: openapi.v3.ParameterOrReference.reference:type_name -> openapi.v3.Reference\n\t36,  // 104: openapi.v3.ParametersOrReferences.additional_properties:type_name -> openapi.v3.NamedParameterOrReference\n\t48,  // 105: openapi.v3.PathItem.get:type_name -> openapi.v3.Operation\n\t48,  // 106: openapi.v3.PathItem.put:type_name -> openapi.v3.Operation\n\t48,  // 107: openapi.v3.PathItem.post:type_name -> openapi.v3.Operation\n\t48,  // 108: openapi.v3.PathItem.delete:type_name -> openapi.v3.Operation\n\t48,  // 109: openapi.v3.PathItem.options:type_name -> openapi.v3.Operation\n\t48,  // 110: openapi.v3.PathItem.head:type_name -> openapi.v3.Operation\n\t48,  // 111: openapi.v3.PathItem.patch:type_name -> openapi.v3.Operation\n\t48,  // 112: openapi.v3.PathItem.trace:type_name -> openapi.v3.Operation\n\t70,  // 113: openapi.v3.PathItem.servers:type_name -> openapi.v3.Server\n\t50,  // 114: openapi.v3.PathItem.parameters:type_name -> openapi.v3.ParameterOrReference\n\t29,  // 115: openapi.v3.PathItem.specification_extension:type_name -> openapi.v3.NamedAny\n\t37,  // 116: openapi.v3.Paths.path:type_name -> openapi.v3.NamedPathItem\n\t29,  // 117: openapi.v3.Paths.specification_extension:type_name -> openapi.v3.NamedAny\n\t40,  // 118: openapi.v3.Properties.additional_properties:type_name -> openapi.v3.NamedSchemaOrReference\n\t38,  // 119: openapi.v3.RequestBodiesOrReferences.additional_properties:type_name -> openapi.v3.NamedRequestBodyOrReference\n\t28,  // 120: openapi.v3.RequestBody.content:type_name -> openapi.v3.MediaTypes\n\t29,  // 121: openapi.v3.RequestBody.specification_extension:type_name -> openapi.v3.NamedAny\n\t57,  // 122: openapi.v3.RequestBodyOrReference.request_body:type_name -> openapi.v3.RequestBody\n\t55,  // 123: openapi.v3.RequestBodyOrReference.reference:type_name -> openapi.v3.Reference\n\t20,  // 124: openapi.v3.Response.headers:type_name -> openapi.v3.HeadersOrReferences\n\t28,  // 125: openapi.v3.Response.content:type_name -> openapi.v3.MediaTypes\n\t26,  // 126: openapi.v3.Response.links:type_name -> openapi.v3.LinksOrReferences\n\t29,  // 127: openapi.v3.Response.specification_extension:type_name -> openapi.v3.NamedAny\n\t59,  // 128: openapi.v3.ResponseOrReference.response:type_name -> openapi.v3.Response\n\t55,  // 129: openapi.v3.ResponseOrReference.reference:type_name -> openapi.v3.Reference\n\t60,  // 130: openapi.v3.Responses.default:type_name -> openapi.v3.ResponseOrReference\n\t39,  // 131: openapi.v3.Responses.response_or_reference:type_name -> openapi.v3.NamedResponseOrReference\n\t29,  // 132: openapi.v3.Responses.specification_extension:type_name -> openapi.v3.NamedAny\n\t39,  // 133: openapi.v3.ResponsesOrReferences.additional_properties:type_name -> openapi.v3.NamedResponseOrReference\n\t9,   // 134: openapi.v3.Schema.discriminator:type_name -> openapi.v3.Discriminator\n\t77,  // 135: openapi.v3.Schema.xml:type_name -> openapi.v3.Xml\n\t17,  // 136: openapi.v3.Schema.external_docs:type_name -> openapi.v3.ExternalDocs\n\t1,   // 137: openapi.v3.Schema.example:type_name -> openapi.v3.Any\n\t1,   // 138: openapi.v3.Schema.enum:type_name -> openapi.v3.Any\n\t64,  // 139: openapi.v3.Schema.all_of:type_name -> openapi.v3.SchemaOrReference\n\t64,  // 140: openapi.v3.Schema.one_of:type_name -> openapi.v3.SchemaOrReference\n\t64,  // 141: openapi.v3.Schema.any_of:type_name -> openapi.v3.SchemaOrReference\n\t63,  // 142: openapi.v3.Schema.not:type_name -> openapi.v3.Schema\n\t22,  // 143: openapi.v3.Schema.items:type_name -> openapi.v3.ItemsItem\n\t54,  // 144: openapi.v3.Schema.properties:type_name -> openapi.v3.Properties\n\t0,   // 145: openapi.v3.Schema.additional_properties:type_name -> openapi.v3.AdditionalPropertiesItem\n\t8,   // 146: openapi.v3.Schema.default:type_name -> openapi.v3.DefaultType\n\t29,  // 147: openapi.v3.Schema.specification_extension:type_name -> openapi.v3.NamedAny\n\t63,  // 148: openapi.v3.SchemaOrReference.schema:type_name -> openapi.v3.Schema\n\t55,  // 149: openapi.v3.SchemaOrReference.reference:type_name -> openapi.v3.Reference\n\t40,  // 150: openapi.v3.SchemasOrReferences.additional_properties:type_name -> openapi.v3.NamedSchemaOrReference\n\t44,  // 151: openapi.v3.SecurityRequirement.additional_properties:type_name -> openapi.v3.NamedStringArray\n\t46,  // 152: openapi.v3.SecurityScheme.flows:type_name -> openapi.v3.OauthFlows\n\t29,  // 153: openapi.v3.SecurityScheme.specification_extension:type_name -> openapi.v3.NamedAny\n\t67,  // 154: openapi.v3.SecuritySchemeOrReference.security_scheme:type_name -> openapi.v3.SecurityScheme\n\t55,  // 155: openapi.v3.SecuritySchemeOrReference.reference:type_name -> openapi.v3.Reference\n\t41,  // 156: openapi.v3.SecuritySchemesOrReferences.additional_properties:type_name -> openapi.v3.NamedSecuritySchemeOrReference\n\t72,  // 157: openapi.v3.Server.variables:type_name -> openapi.v3.ServerVariables\n\t29,  // 158: openapi.v3.Server.specification_extension:type_name -> openapi.v3.NamedAny\n\t29,  // 159: openapi.v3.ServerVariable.specification_extension:type_name -> openapi.v3.NamedAny\n\t42,  // 160: openapi.v3.ServerVariables.additional_properties:type_name -> openapi.v3.NamedServerVariable\n\t43,  // 161: openapi.v3.Strings.additional_properties:type_name -> openapi.v3.NamedString\n\t17,  // 162: openapi.v3.Tag.external_docs:type_name -> openapi.v3.ExternalDocs\n\t29,  // 163: openapi.v3.Tag.specification_extension:type_name -> openapi.v3.NamedAny\n\t29,  // 164: openapi.v3.Xml.specification_extension:type_name -> openapi.v3.NamedAny\n\t165, // [165:165] is the sub-list for method output_type\n\t165, // [165:165] is the sub-list for method input_type\n\t165, // [165:165] is the sub-list for extension type_name\n\t165, // [165:165] is the sub-list for extension extendee\n\t0,   // [0:165] is the sub-list for field type_name\n}\n\nfunc init() { file_openapiv3_OpenAPIv3_proto_init() }\nfunc file_openapiv3_OpenAPIv3_proto_init() {\n\tif File_openapiv3_OpenAPIv3_proto != nil {\n\t\treturn\n\t}\n\tif !protoimpl.UnsafeEnabled {\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*AdditionalPropertiesItem); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Any); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*AnyOrExpression); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Callback); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*CallbackOrReference); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*CallbacksOrReferences); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Components); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Contact); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*DefaultType); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Discriminator); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Document); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Encoding); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Encodings); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Example); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*ExampleOrReference); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*ExamplesOrReferences); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Expression); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*ExternalDocs); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Header); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*HeaderOrReference); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*HeadersOrReferences); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Info); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*ItemsItem); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*License); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Link); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*LinkOrReference); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*LinksOrReferences); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*MediaType); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*MediaTypes); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedAny); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedCallbackOrReference); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedEncoding); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedExampleOrReference); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedHeaderOrReference); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedLinkOrReference); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedMediaType); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedParameterOrReference); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedPathItem); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedRequestBodyOrReference); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedResponseOrReference); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedSchemaOrReference); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedSecuritySchemeOrReference); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedServerVariable); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedString); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*NamedStringArray); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*OauthFlow); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*OauthFlows); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Object); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Operation); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Parameter); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*ParameterOrReference); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*ParametersOrReferences); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*PathItem); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Paths); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Properties); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Reference); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*RequestBodiesOrReferences); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*RequestBody); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*RequestBodyOrReference); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Response); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*ResponseOrReference); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Responses); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*ResponsesOrReferences); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Schema); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*SchemaOrReference); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*SchemasOrReferences); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*SecurityRequirement); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*SecurityScheme); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*SecuritySchemeOrReference); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*SecuritySchemesOrReferences); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Server); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*ServerVariable); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*ServerVariables); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*SpecificationExtension); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*StringArray); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Strings); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Tag); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tfile_openapiv3_OpenAPIv3_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} {\n\t\t\tswitch v := v.(*Xml); i {\n\t\t\tcase 0:\n\t\t\t\treturn &v.state\n\t\t\tcase 1:\n\t\t\t\treturn &v.sizeCache\n\t\t\tcase 2:\n\t\t\t\treturn &v.unknownFields\n\t\t\tdefault:\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t}\n\tfile_openapiv3_OpenAPIv3_proto_msgTypes[0].OneofWrappers = []interface{}{\n\t\t(*AdditionalPropertiesItem_SchemaOrReference)(nil),\n\t\t(*AdditionalPropertiesItem_Boolean)(nil),\n\t}\n\tfile_openapiv3_OpenAPIv3_proto_msgTypes[2].OneofWrappers = []interface{}{\n\t\t(*AnyOrExpression_Any)(nil),\n\t\t(*AnyOrExpression_Expression)(nil),\n\t}\n\tfile_openapiv3_OpenAPIv3_proto_msgTypes[4].OneofWrappers = []interface{}{\n\t\t(*CallbackOrReference_Callback)(nil),\n\t\t(*CallbackOrReference_Reference)(nil),\n\t}\n\tfile_openapiv3_OpenAPIv3_proto_msgTypes[8].OneofWrappers = []interface{}{\n\t\t(*DefaultType_Number)(nil),\n\t\t(*DefaultType_Boolean)(nil),\n\t\t(*DefaultType_String_)(nil),\n\t}\n\tfile_openapiv3_OpenAPIv3_proto_msgTypes[14].OneofWrappers = []interface{}{\n\t\t(*ExampleOrReference_Example)(nil),\n\t\t(*ExampleOrReference_Reference)(nil),\n\t}\n\tfile_openapiv3_OpenAPIv3_proto_msgTypes[19].OneofWrappers = []interface{}{\n\t\t(*HeaderOrReference_Header)(nil),\n\t\t(*HeaderOrReference_Reference)(nil),\n\t}\n\tfile_openapiv3_OpenAPIv3_proto_msgTypes[25].OneofWrappers = []interface{}{\n\t\t(*LinkOrReference_Link)(nil),\n\t\t(*LinkOrReference_Reference)(nil),\n\t}\n\tfile_openapiv3_OpenAPIv3_proto_msgTypes[50].OneofWrappers = []interface{}{\n\t\t(*ParameterOrReference_Parameter)(nil),\n\t\t(*ParameterOrReference_Reference)(nil),\n\t}\n\tfile_openapiv3_OpenAPIv3_proto_msgTypes[58].OneofWrappers = []interface{}{\n\t\t(*RequestBodyOrReference_RequestBody)(nil),\n\t\t(*RequestBodyOrReference_Reference)(nil),\n\t}\n\tfile_openapiv3_OpenAPIv3_proto_msgTypes[60].OneofWrappers = []interface{}{\n\t\t(*ResponseOrReference_Response)(nil),\n\t\t(*ResponseOrReference_Reference)(nil),\n\t}\n\tfile_openapiv3_OpenAPIv3_proto_msgTypes[64].OneofWrappers = []interface{}{\n\t\t(*SchemaOrReference_Schema)(nil),\n\t\t(*SchemaOrReference_Reference)(nil),\n\t}\n\tfile_openapiv3_OpenAPIv3_proto_msgTypes[68].OneofWrappers = []interface{}{\n\t\t(*SecuritySchemeOrReference_SecurityScheme)(nil),\n\t\t(*SecuritySchemeOrReference_Reference)(nil),\n\t}\n\tfile_openapiv3_OpenAPIv3_proto_msgTypes[73].OneofWrappers = []interface{}{\n\t\t(*SpecificationExtension_Number)(nil),\n\t\t(*SpecificationExtension_Boolean)(nil),\n\t\t(*SpecificationExtension_String_)(nil),\n\t}\n\ttype x struct{}\n\tout := protoimpl.TypeBuilder{\n\t\tFile: protoimpl.DescBuilder{\n\t\t\tGoPackagePath: reflect.TypeOf(x{}).PkgPath(),\n\t\t\tRawDescriptor: file_openapiv3_OpenAPIv3_proto_rawDesc,\n\t\t\tNumEnums:      0,\n\t\t\tNumMessages:   78,\n\t\t\tNumExtensions: 0,\n\t\t\tNumServices:   0,\n\t\t},\n\t\tGoTypes:           file_openapiv3_OpenAPIv3_proto_goTypes,\n\t\tDependencyIndexes: file_openapiv3_OpenAPIv3_proto_depIdxs,\n\t\tMessageInfos:      file_openapiv3_OpenAPIv3_proto_msgTypes,\n\t}.Build()\n\tFile_openapiv3_OpenAPIv3_proto = out.File\n\tfile_openapiv3_OpenAPIv3_proto_rawDesc = nil\n\tfile_openapiv3_OpenAPIv3_proto_goTypes = nil\n\tfile_openapiv3_OpenAPIv3_proto_depIdxs = nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/gnostic-models/openapiv3/OpenAPIv3.proto",
    "content": "// Copyright 2020 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// THIS FILE IS AUTOMATICALLY GENERATED.\n\nsyntax = \"proto3\";\n\npackage openapi.v3;\n\nimport \"google/protobuf/any.proto\";\n\n// This option lets the proto compiler generate Java code inside the package\n// name (see below) instead of inside an outer class. It creates a simpler\n// developer experience by reducing one-level of name nesting and be\n// consistent with most programming languages that don't support outer classes.\noption java_multiple_files = true;\n\n// The Java outer classname should be the filename in UpperCamelCase. This\n// class is only used to hold proto descriptor, so developers don't need to\n// work with it directly.\noption java_outer_classname = \"OpenAPIProto\";\n\n// The Java package name must be proto package name with proper prefix.\noption java_package = \"org.openapi_v3\";\n\n// A reasonable prefix for the Objective-C symbols generated from the package.\n// It should at a minimum be 3 characters long, all uppercase, and convention\n// is to use an abbreviation of the package name. Something short, but\n// hopefully unique enough to not conflict with things that may come along in\n// the future. 'GPB' is reserved for the protocol buffer implementation itself.\noption objc_class_prefix = \"OAS\";\n\n// The Go package name.\noption go_package = \"./openapiv3;openapi_v3\";\n\nmessage AdditionalPropertiesItem {\n  oneof oneof {\n    SchemaOrReference schema_or_reference = 1;\n    bool boolean = 2;\n  }\n}\n\nmessage Any {\n  google.protobuf.Any value = 1;\n  string yaml = 2;\n}\n\nmessage AnyOrExpression {\n  oneof oneof {\n    Any any = 1;\n    Expression expression = 2;\n  }\n}\n\n// A map of possible out-of band callbacks related to the parent operation. Each value in the map is a Path Item Object that describes a set of requests that may be initiated by the API provider and the expected responses. The key value used to identify the callback object is an expression, evaluated at runtime, that identifies a URL to use for the callback operation.\nmessage Callback {\n  repeated NamedPathItem path = 1;\n  repeated NamedAny specification_extension = 2;\n}\n\nmessage CallbackOrReference {\n  oneof oneof {\n    Callback callback = 1;\n    Reference reference = 2;\n  }\n}\n\nmessage CallbacksOrReferences {\n  repeated NamedCallbackOrReference additional_properties = 1;\n}\n\n// Holds a set of reusable objects for different aspects of the OAS. All objects defined within the components object will have no effect on the API unless they are explicitly referenced from properties outside the components object.\nmessage Components {\n  SchemasOrReferences schemas = 1;\n  ResponsesOrReferences responses = 2;\n  ParametersOrReferences parameters = 3;\n  ExamplesOrReferences examples = 4;\n  RequestBodiesOrReferences request_bodies = 5;\n  HeadersOrReferences headers = 6;\n  SecuritySchemesOrReferences security_schemes = 7;\n  LinksOrReferences links = 8;\n  CallbacksOrReferences callbacks = 9;\n  repeated NamedAny specification_extension = 10;\n}\n\n// Contact information for the exposed API.\nmessage Contact {\n  string name = 1;\n  string url = 2;\n  string email = 3;\n  repeated NamedAny specification_extension = 4;\n}\n\nmessage DefaultType {\n  oneof oneof {\n    double number = 1;\n    bool boolean = 2;\n    string string = 3;\n  }\n}\n\n// When request bodies or response payloads may be one of a number of different schemas, a `discriminator` object can be used to aid in serialization, deserialization, and validation.  The discriminator is a specific object in a schema which is used to inform the consumer of the specification of an alternative schema based on the value associated with it.  When using the discriminator, _inline_ schemas will not be considered.\nmessage Discriminator {\n  string property_name = 1;\n  Strings mapping = 2;\n  repeated NamedAny specification_extension = 3;\n}\n\nmessage Document {\n  string openapi = 1;\n  Info info = 2;\n  repeated Server servers = 3;\n  Paths paths = 4;\n  Components components = 5;\n  repeated SecurityRequirement security = 6;\n  repeated Tag tags = 7;\n  ExternalDocs external_docs = 8;\n  repeated NamedAny specification_extension = 9;\n}\n\n// A single encoding definition applied to a single schema property.\nmessage Encoding {\n  string content_type = 1;\n  HeadersOrReferences headers = 2;\n  string style = 3;\n  bool explode = 4;\n  bool allow_reserved = 5;\n  repeated NamedAny specification_extension = 6;\n}\n\nmessage Encodings {\n  repeated NamedEncoding additional_properties = 1;\n}\n\nmessage Example {\n  string summary = 1;\n  string description = 2;\n  Any value = 3;\n  string external_value = 4;\n  repeated NamedAny specification_extension = 5;\n}\n\nmessage ExampleOrReference {\n  oneof oneof {\n    Example example = 1;\n    Reference reference = 2;\n  }\n}\n\nmessage ExamplesOrReferences {\n  repeated NamedExampleOrReference additional_properties = 1;\n}\n\nmessage Expression {\n  repeated NamedAny additional_properties = 1;\n}\n\n// Allows referencing an external resource for extended documentation.\nmessage ExternalDocs {\n  string description = 1;\n  string url = 2;\n  repeated NamedAny specification_extension = 3;\n}\n\n// The Header Object follows the structure of the Parameter Object with the following changes:  1. `name` MUST NOT be specified, it is given in the corresponding `headers` map. 1. `in` MUST NOT be specified, it is implicitly in `header`. 1. All traits that are affected by the location MUST be applicable to a location of `header` (for example, `style`).\nmessage Header {\n  string description = 1;\n  bool required = 2;\n  bool deprecated = 3;\n  bool allow_empty_value = 4;\n  string style = 5;\n  bool explode = 6;\n  bool allow_reserved = 7;\n  SchemaOrReference schema = 8;\n  Any example = 9;\n  ExamplesOrReferences examples = 10;\n  MediaTypes content = 11;\n  repeated NamedAny specification_extension = 12;\n}\n\nmessage HeaderOrReference {\n  oneof oneof {\n    Header header = 1;\n    Reference reference = 2;\n  }\n}\n\nmessage HeadersOrReferences {\n  repeated NamedHeaderOrReference additional_properties = 1;\n}\n\n// The object provides metadata about the API. The metadata MAY be used by the clients if needed, and MAY be presented in editing or documentation generation tools for convenience.\nmessage Info {\n  string title = 1;\n  string description = 2;\n  string terms_of_service = 3;\n  Contact contact = 4;\n  License license = 5;\n  string version = 6;\n  repeated NamedAny specification_extension = 7;\n  string summary = 8;\n}\n\nmessage ItemsItem {\n  repeated SchemaOrReference schema_or_reference = 1;\n}\n\n// License information for the exposed API.\nmessage License {\n  string name = 1;\n  string url = 2;\n  repeated NamedAny specification_extension = 3;\n}\n\n// The `Link object` represents a possible design-time link for a response. The presence of a link does not guarantee the caller's ability to successfully invoke it, rather it provides a known relationship and traversal mechanism between responses and other operations.  Unlike _dynamic_ links (i.e. links provided **in** the response payload), the OAS linking mechanism does not require link information in the runtime response.  For computing links, and providing instructions to execute them, a runtime expression is used for accessing values in an operation and using them as parameters while invoking the linked operation.\nmessage Link {\n  string operation_ref = 1;\n  string operation_id = 2;\n  AnyOrExpression parameters = 3;\n  AnyOrExpression request_body = 4;\n  string description = 5;\n  Server server = 6;\n  repeated NamedAny specification_extension = 7;\n}\n\nmessage LinkOrReference {\n  oneof oneof {\n    Link link = 1;\n    Reference reference = 2;\n  }\n}\n\nmessage LinksOrReferences {\n  repeated NamedLinkOrReference additional_properties = 1;\n}\n\n// Each Media Type Object provides schema and examples for the media type identified by its key.\nmessage MediaType {\n  SchemaOrReference schema = 1;\n  Any example = 2;\n  ExamplesOrReferences examples = 3;\n  Encodings encoding = 4;\n  repeated NamedAny specification_extension = 5;\n}\n\nmessage MediaTypes {\n  repeated NamedMediaType additional_properties = 1;\n}\n\n// Automatically-generated message used to represent maps of Any as ordered (name,value) pairs.\nmessage NamedAny {\n  // Map key\n  string name = 1;\n  // Mapped value\n  Any value = 2;\n}\n\n// Automatically-generated message used to represent maps of CallbackOrReference as ordered (name,value) pairs.\nmessage NamedCallbackOrReference {\n  // Map key\n  string name = 1;\n  // Mapped value\n  CallbackOrReference value = 2;\n}\n\n// Automatically-generated message used to represent maps of Encoding as ordered (name,value) pairs.\nmessage NamedEncoding {\n  // Map key\n  string name = 1;\n  // Mapped value\n  Encoding value = 2;\n}\n\n// Automatically-generated message used to represent maps of ExampleOrReference as ordered (name,value) pairs.\nmessage NamedExampleOrReference {\n  // Map key\n  string name = 1;\n  // Mapped value\n  ExampleOrReference value = 2;\n}\n\n// Automatically-generated message used to represent maps of HeaderOrReference as ordered (name,value) pairs.\nmessage NamedHeaderOrReference {\n  // Map key\n  string name = 1;\n  // Mapped value\n  HeaderOrReference value = 2;\n}\n\n// Automatically-generated message used to represent maps of LinkOrReference as ordered (name,value) pairs.\nmessage NamedLinkOrReference {\n  // Map key\n  string name = 1;\n  // Mapped value\n  LinkOrReference value = 2;\n}\n\n// Automatically-generated message used to represent maps of MediaType as ordered (name,value) pairs.\nmessage NamedMediaType {\n  // Map key\n  string name = 1;\n  // Mapped value\n  MediaType value = 2;\n}\n\n// Automatically-generated message used to represent maps of ParameterOrReference as ordered (name,value) pairs.\nmessage NamedParameterOrReference {\n  // Map key\n  string name = 1;\n  // Mapped value\n  ParameterOrReference value = 2;\n}\n\n// Automatically-generated message used to represent maps of PathItem as ordered (name,value) pairs.\nmessage NamedPathItem {\n  // Map key\n  string name = 1;\n  // Mapped value\n  PathItem value = 2;\n}\n\n// Automatically-generated message used to represent maps of RequestBodyOrReference as ordered (name,value) pairs.\nmessage NamedRequestBodyOrReference {\n  // Map key\n  string name = 1;\n  // Mapped value\n  RequestBodyOrReference value = 2;\n}\n\n// Automatically-generated message used to represent maps of ResponseOrReference as ordered (name,value) pairs.\nmessage NamedResponseOrReference {\n  // Map key\n  string name = 1;\n  // Mapped value\n  ResponseOrReference value = 2;\n}\n\n// Automatically-generated message used to represent maps of SchemaOrReference as ordered (name,value) pairs.\nmessage NamedSchemaOrReference {\n  // Map key\n  string name = 1;\n  // Mapped value\n  SchemaOrReference value = 2;\n}\n\n// Automatically-generated message used to represent maps of SecuritySchemeOrReference as ordered (name,value) pairs.\nmessage NamedSecuritySchemeOrReference {\n  // Map key\n  string name = 1;\n  // Mapped value\n  SecuritySchemeOrReference value = 2;\n}\n\n// Automatically-generated message used to represent maps of ServerVariable as ordered (name,value) pairs.\nmessage NamedServerVariable {\n  // Map key\n  string name = 1;\n  // Mapped value\n  ServerVariable value = 2;\n}\n\n// Automatically-generated message used to represent maps of string as ordered (name,value) pairs.\nmessage NamedString {\n  // Map key\n  string name = 1;\n  // Mapped value\n  string value = 2;\n}\n\n// Automatically-generated message used to represent maps of StringArray as ordered (name,value) pairs.\nmessage NamedStringArray {\n  // Map key\n  string name = 1;\n  // Mapped value\n  StringArray value = 2;\n}\n\n// Configuration details for a supported OAuth Flow\nmessage OauthFlow {\n  string authorization_url = 1;\n  string token_url = 2;\n  string refresh_url = 3;\n  Strings scopes = 4;\n  repeated NamedAny specification_extension = 5;\n}\n\n// Allows configuration of the supported OAuth Flows.\nmessage OauthFlows {\n  OauthFlow implicit = 1;\n  OauthFlow password = 2;\n  OauthFlow client_credentials = 3;\n  OauthFlow authorization_code = 4;\n  repeated NamedAny specification_extension = 5;\n}\n\nmessage Object {\n  repeated NamedAny additional_properties = 1;\n}\n\n// Describes a single API operation on a path.\nmessage Operation {\n  repeated string tags = 1;\n  string summary = 2;\n  string description = 3;\n  ExternalDocs external_docs = 4;\n  string operation_id = 5;\n  repeated ParameterOrReference parameters = 6;\n  RequestBodyOrReference request_body = 7;\n  Responses responses = 8;\n  CallbacksOrReferences callbacks = 9;\n  bool deprecated = 10;\n  repeated SecurityRequirement security = 11;\n  repeated Server servers = 12;\n  repeated NamedAny specification_extension = 13;\n}\n\n// Describes a single operation parameter.  A unique parameter is defined by a combination of a name and location.\nmessage Parameter {\n  string name = 1;\n  string in = 2;\n  string description = 3;\n  bool required = 4;\n  bool deprecated = 5;\n  bool allow_empty_value = 6;\n  string style = 7;\n  bool explode = 8;\n  bool allow_reserved = 9;\n  SchemaOrReference schema = 10;\n  Any example = 11;\n  ExamplesOrReferences examples = 12;\n  MediaTypes content = 13;\n  repeated NamedAny specification_extension = 14;\n}\n\nmessage ParameterOrReference {\n  oneof oneof {\n    Parameter parameter = 1;\n    Reference reference = 2;\n  }\n}\n\nmessage ParametersOrReferences {\n  repeated NamedParameterOrReference additional_properties = 1;\n}\n\n// Describes the operations available on a single path. A Path Item MAY be empty, due to ACL constraints. The path itself is still exposed to the documentation viewer but they will not know which operations and parameters are available.\nmessage PathItem {\n  string _ref = 1;\n  string summary = 2;\n  string description = 3;\n  Operation get = 4;\n  Operation put = 5;\n  Operation post = 6;\n  Operation delete = 7;\n  Operation options = 8;\n  Operation head = 9;\n  Operation patch = 10;\n  Operation trace = 11;\n  repeated Server servers = 12;\n  repeated ParameterOrReference parameters = 13;\n  repeated NamedAny specification_extension = 14;\n}\n\n// Holds the relative paths to the individual endpoints and their operations. The path is appended to the URL from the `Server Object` in order to construct the full URL.  The Paths MAY be empty, due to ACL constraints.\nmessage Paths {\n  repeated NamedPathItem path = 1;\n  repeated NamedAny specification_extension = 2;\n}\n\nmessage Properties {\n  repeated NamedSchemaOrReference additional_properties = 1;\n}\n\n// A simple object to allow referencing other components in the specification, internally and externally.  The Reference Object is defined by JSON Reference and follows the same structure, behavior and rules.   For this specification, reference resolution is accomplished as defined by the JSON Reference specification and not by the JSON Schema specification.\nmessage Reference {\n  string _ref = 1;\n  string summary = 2;\n  string description = 3;\n}\n\nmessage RequestBodiesOrReferences {\n  repeated NamedRequestBodyOrReference additional_properties = 1;\n}\n\n// Describes a single request body.\nmessage RequestBody {\n  string description = 1;\n  MediaTypes content = 2;\n  bool required = 3;\n  repeated NamedAny specification_extension = 4;\n}\n\nmessage RequestBodyOrReference {\n  oneof oneof {\n    RequestBody request_body = 1;\n    Reference reference = 2;\n  }\n}\n\n// Describes a single response from an API Operation, including design-time, static  `links` to operations based on the response.\nmessage Response {\n  string description = 1;\n  HeadersOrReferences headers = 2;\n  MediaTypes content = 3;\n  LinksOrReferences links = 4;\n  repeated NamedAny specification_extension = 5;\n}\n\nmessage ResponseOrReference {\n  oneof oneof {\n    Response response = 1;\n    Reference reference = 2;\n  }\n}\n\n// A container for the expected responses of an operation. The container maps a HTTP response code to the expected response.  The documentation is not necessarily expected to cover all possible HTTP response codes because they may not be known in advance. However, documentation is expected to cover a successful operation response and any known errors.  The `default` MAY be used as a default response object for all HTTP codes  that are not covered individually by the specification.  The `Responses Object` MUST contain at least one response code, and it  SHOULD be the response for a successful operation call.\nmessage Responses {\n  ResponseOrReference default = 1;\n  repeated NamedResponseOrReference response_or_reference = 2;\n  repeated NamedAny specification_extension = 3;\n}\n\nmessage ResponsesOrReferences {\n  repeated NamedResponseOrReference additional_properties = 1;\n}\n\n// The Schema Object allows the definition of input and output data types. These types can be objects, but also primitives and arrays. This object is an extended subset of the JSON Schema Specification Wright Draft 00.  For more information about the properties, see JSON Schema Core and JSON Schema Validation. Unless stated otherwise, the property definitions follow the JSON Schema.\nmessage Schema {\n  bool nullable = 1;\n  Discriminator discriminator = 2;\n  bool read_only = 3;\n  bool write_only = 4;\n  Xml xml = 5;\n  ExternalDocs external_docs = 6;\n  Any example = 7;\n  bool deprecated = 8;\n  string title = 9;\n  double multiple_of = 10;\n  double maximum = 11;\n  bool exclusive_maximum = 12;\n  double minimum = 13;\n  bool exclusive_minimum = 14;\n  int64 max_length = 15;\n  int64 min_length = 16;\n  string pattern = 17;\n  int64 max_items = 18;\n  int64 min_items = 19;\n  bool unique_items = 20;\n  int64 max_properties = 21;\n  int64 min_properties = 22;\n  repeated string required = 23;\n  repeated Any enum = 24;\n  string type = 25;\n  repeated SchemaOrReference all_of = 26;\n  repeated SchemaOrReference one_of = 27;\n  repeated SchemaOrReference any_of = 28;\n  Schema not = 29;\n  ItemsItem items = 30;\n  Properties properties = 31;\n  AdditionalPropertiesItem additional_properties = 32;\n  DefaultType default = 33;\n  string description = 34;\n  string format = 35;\n  repeated NamedAny specification_extension = 36;\n}\n\nmessage SchemaOrReference {\n  oneof oneof {\n    Schema schema = 1;\n    Reference reference = 2;\n  }\n}\n\nmessage SchemasOrReferences {\n  repeated NamedSchemaOrReference additional_properties = 1;\n}\n\n// Lists the required security schemes to execute this operation. The name used for each property MUST correspond to a security scheme declared in the Security Schemes under the Components Object.  Security Requirement Objects that contain multiple schemes require that all schemes MUST be satisfied for a request to be authorized. This enables support for scenarios where multiple query parameters or HTTP headers are required to convey security information.  When a list of Security Requirement Objects is defined on the OpenAPI Object or Operation Object, only one of the Security Requirement Objects in the list needs to be satisfied to authorize the request.\nmessage SecurityRequirement {\n  repeated NamedStringArray additional_properties = 1;\n}\n\n// Defines a security scheme that can be used by the operations. Supported schemes are HTTP authentication, an API key (either as a header, a cookie parameter or as a query parameter), mutual TLS (use of a client certificate), OAuth2's common flows (implicit, password, application and access code) as defined in RFC6749, and OpenID Connect.   Please note that currently (2019) the implicit flow is about to be deprecated OAuth 2.0 Security Best Current Practice. Recommended for most use case is Authorization Code Grant flow with PKCE.\nmessage SecurityScheme {\n  string type = 1;\n  string description = 2;\n  string name = 3;\n  string in = 4;\n  string scheme = 5;\n  string bearer_format = 6;\n  OauthFlows flows = 7;\n  string open_id_connect_url = 8;\n  repeated NamedAny specification_extension = 9;\n}\n\nmessage SecuritySchemeOrReference {\n  oneof oneof {\n    SecurityScheme security_scheme = 1;\n    Reference reference = 2;\n  }\n}\n\nmessage SecuritySchemesOrReferences {\n  repeated NamedSecuritySchemeOrReference additional_properties = 1;\n}\n\n// An object representing a Server.\nmessage Server {\n  string url = 1;\n  string description = 2;\n  ServerVariables variables = 3;\n  repeated NamedAny specification_extension = 4;\n}\n\n// An object representing a Server Variable for server URL template substitution.\nmessage ServerVariable {\n  repeated string enum = 1;\n  string default = 2;\n  string description = 3;\n  repeated NamedAny specification_extension = 4;\n}\n\nmessage ServerVariables {\n  repeated NamedServerVariable additional_properties = 1;\n}\n\n// Any property starting with x- is valid.\nmessage SpecificationExtension {\n  oneof oneof {\n    double number = 1;\n    bool boolean = 2;\n    string string = 3;\n  }\n}\n\nmessage StringArray {\n  repeated string value = 1;\n}\n\nmessage Strings {\n  repeated NamedString additional_properties = 1;\n}\n\n// Adds metadata to a single tag that is used by the Operation Object. It is not mandatory to have a Tag Object per tag defined in the Operation Object instances.\nmessage Tag {\n  string name = 1;\n  string description = 2;\n  ExternalDocs external_docs = 3;\n  repeated NamedAny specification_extension = 4;\n}\n\n// A metadata object that allows for more fine-tuned XML model definitions.  When using arrays, XML element names are *not* inferred (for singular/plural forms) and the `name` property SHOULD be used to add that information. See examples for expected behavior.\nmessage Xml {\n  string name = 1;\n  string namespace = 2;\n  string prefix = 3;\n  bool attribute = 4;\n  bool wrapped = 5;\n  repeated NamedAny specification_extension = 6;\n}\n\n"
  },
  {
    "path": "vendor/github.com/google/gnostic-models/openapiv3/README.md",
    "content": "# OpenAPI v3 Protocol Buffer Models\n\nThis directory contains a Protocol Buffer-language model and related code for\nsupporting OpenAPI v3.\n\nGnostic applications and plugins can use OpenAPIv3.proto to generate Protocol\nBuffer support code for their preferred languages.\n\nOpenAPIv3.go is used by Gnostic to read JSON and YAML OpenAPI descriptions into\nthe Protocol Buffer-based datastructures generated from OpenAPIv3.proto.\n\nOpenAPIv3.proto and OpenAPIv3.go are generated by the Gnostic compiler\ngenerator, and OpenAPIv3.pb.go is generated by protoc, the Protocol Buffer\ncompiler, and protoc-gen-go, the Protocol Buffer Go code generation plugin.\n\nopenapi-3.1.json is a JSON schema for OpenAPI 3.1 that is automatically\ngenerated from the OpenAPI 3.1 specification. It is not an official JSON Schema\nfor OpenAPI.\n\nThe schema-generator directory contains support code which generates\nopenapi-3.1.json from the OpenAPI 3.1 specification document (Markdown).\n"
  },
  {
    "path": "vendor/github.com/google/gnostic-models/openapiv3/document.go",
    "content": "// Copyright 2020 Google LLC. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage openapi_v3\n\nimport (\n\t\"gopkg.in/yaml.v3\"\n\n\t\"github.com/google/gnostic-models/compiler\"\n)\n\n// ParseDocument reads an OpenAPI v3 description from a YAML/JSON representation.\nfunc ParseDocument(b []byte) (*Document, error) {\n\tinfo, err := compiler.ReadInfoFromBytes(\"\", b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\troot := info.Content[0]\n\treturn NewDocument(root, compiler.NewContextWithExtensions(\"$root\", root, nil, nil))\n}\n\n// YAMLValue produces a serialized YAML representation of the document.\nfunc (d *Document) YAMLValue(comment string) ([]byte, error) {\n\trawInfo := d.ToRawInfo()\n\trawInfo = &yaml.Node{\n\t\tKind:        yaml.DocumentNode,\n\t\tContent:     []*yaml.Node{rawInfo},\n\t\tHeadComment: comment,\n\t}\n\treturn yaml.Marshal(rawInfo)\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-cmp/LICENSE",
    "content": "Copyright (c) 2017 The Go Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/github.com/google/go-cmp/cmp/compare.go",
    "content": "// Copyright 2017, The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package cmp determines equality of values.\n//\n// This package is intended to be a more powerful and safer alternative to\n// [reflect.DeepEqual] for comparing whether two values are semantically equal.\n// It is intended to only be used in tests, as performance is not a goal and\n// it may panic if it cannot compare the values. Its propensity towards\n// panicking means that its unsuitable for production environments where a\n// spurious panic may be fatal.\n//\n// The primary features of cmp are:\n//\n//   - When the default behavior of equality does not suit the test's needs,\n//     custom equality functions can override the equality operation.\n//     For example, an equality function may report floats as equal so long as\n//     they are within some tolerance of each other.\n//\n//   - Types with an Equal method (e.g., [time.Time.Equal]) may use that method\n//     to determine equality. This allows package authors to determine\n//     the equality operation for the types that they define.\n//\n//   - If no custom equality functions are used and no Equal method is defined,\n//     equality is determined by recursively comparing the primitive kinds on\n//     both values, much like [reflect.DeepEqual]. Unlike [reflect.DeepEqual],\n//     unexported fields are not compared by default; they result in panics\n//     unless suppressed by using an [Ignore] option\n//     (see [github.com/google/go-cmp/cmp/cmpopts.IgnoreUnexported])\n//     or explicitly compared using the [Exporter] option.\npackage cmp\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n\n\t\"github.com/google/go-cmp/cmp/internal/diff\"\n\t\"github.com/google/go-cmp/cmp/internal/function\"\n\t\"github.com/google/go-cmp/cmp/internal/value\"\n)\n\n// TODO(≥go1.18): Use any instead of interface{}.\n\n// Equal reports whether x and y are equal by recursively applying the\n// following rules in the given order to x and y and all of their sub-values:\n//\n//   - Let S be the set of all [Ignore], [Transformer], and [Comparer] options that\n//     remain after applying all path filters, value filters, and type filters.\n//     If at least one [Ignore] exists in S, then the comparison is ignored.\n//     If the number of [Transformer] and [Comparer] options in S is non-zero,\n//     then Equal panics because it is ambiguous which option to use.\n//     If S contains a single [Transformer], then use that to transform\n//     the current values and recursively call Equal on the output values.\n//     If S contains a single [Comparer], then use that to compare the current values.\n//     Otherwise, evaluation proceeds to the next rule.\n//\n//   - If the values have an Equal method of the form \"(T) Equal(T) bool\" or\n//     \"(T) Equal(I) bool\" where T is assignable to I, then use the result of\n//     x.Equal(y) even if x or y is nil. Otherwise, no such method exists and\n//     evaluation proceeds to the next rule.\n//\n//   - Lastly, try to compare x and y based on their basic kinds.\n//     Simple kinds like booleans, integers, floats, complex numbers, strings,\n//     and channels are compared using the equivalent of the == operator in Go.\n//     Functions are only equal if they are both nil, otherwise they are unequal.\n//\n// Structs are equal if recursively calling Equal on all fields report equal.\n// If a struct contains unexported fields, Equal panics unless an [Ignore] option\n// (e.g., [github.com/google/go-cmp/cmp/cmpopts.IgnoreUnexported]) ignores that field\n// or the [Exporter] option explicitly permits comparing the unexported field.\n//\n// Slices are equal if they are both nil or both non-nil, where recursively\n// calling Equal on all non-ignored slice or array elements report equal.\n// Empty non-nil slices and nil slices are not equal; to equate empty slices,\n// consider using [github.com/google/go-cmp/cmp/cmpopts.EquateEmpty].\n//\n// Maps are equal if they are both nil or both non-nil, where recursively\n// calling Equal on all non-ignored map entries report equal.\n// Map keys are equal according to the == operator.\n// To use custom comparisons for map keys, consider using\n// [github.com/google/go-cmp/cmp/cmpopts.SortMaps].\n// Empty non-nil maps and nil maps are not equal; to equate empty maps,\n// consider using [github.com/google/go-cmp/cmp/cmpopts.EquateEmpty].\n//\n// Pointers and interfaces are equal if they are both nil or both non-nil,\n// where they have the same underlying concrete type and recursively\n// calling Equal on the underlying values reports equal.\n//\n// Before recursing into a pointer, slice element, or map, the current path\n// is checked to detect whether the address has already been visited.\n// If there is a cycle, then the pointed at values are considered equal\n// only if both addresses were previously visited in the same path step.\nfunc Equal(x, y interface{}, opts ...Option) bool {\n\ts := newState(opts)\n\ts.compareAny(rootStep(x, y))\n\treturn s.result.Equal()\n}\n\n// Diff returns a human-readable report of the differences between two values:\n// y - x. It returns an empty string if and only if Equal returns true for the\n// same input values and options.\n//\n// The output is displayed as a literal in pseudo-Go syntax.\n// At the start of each line, a \"-\" prefix indicates an element removed from x,\n// a \"+\" prefix to indicates an element added from y, and the lack of a prefix\n// indicates an element common to both x and y. If possible, the output\n// uses fmt.Stringer.String or error.Error methods to produce more humanly\n// readable outputs. In such cases, the string is prefixed with either an\n// 's' or 'e' character, respectively, to indicate that the method was called.\n//\n// Do not depend on this output being stable. If you need the ability to\n// programmatically interpret the difference, consider using a custom Reporter.\nfunc Diff(x, y interface{}, opts ...Option) string {\n\ts := newState(opts)\n\n\t// Optimization: If there are no other reporters, we can optimize for the\n\t// common case where the result is equal (and thus no reported difference).\n\t// This avoids the expensive construction of a difference tree.\n\tif len(s.reporters) == 0 {\n\t\ts.compareAny(rootStep(x, y))\n\t\tif s.result.Equal() {\n\t\t\treturn \"\"\n\t\t}\n\t\ts.result = diff.Result{} // Reset results\n\t}\n\n\tr := new(defaultReporter)\n\ts.reporters = append(s.reporters, reporter{r})\n\ts.compareAny(rootStep(x, y))\n\td := r.String()\n\tif (d == \"\") != s.result.Equal() {\n\t\tpanic(\"inconsistent difference and equality results\")\n\t}\n\treturn d\n}\n\n// rootStep constructs the first path step. If x and y have differing types,\n// then they are stored within an empty interface type.\nfunc rootStep(x, y interface{}) PathStep {\n\tvx := reflect.ValueOf(x)\n\tvy := reflect.ValueOf(y)\n\n\t// If the inputs are different types, auto-wrap them in an empty interface\n\t// so that they have the same parent type.\n\tvar t reflect.Type\n\tif !vx.IsValid() || !vy.IsValid() || vx.Type() != vy.Type() {\n\t\tt = anyType\n\t\tif vx.IsValid() {\n\t\t\tvvx := reflect.New(t).Elem()\n\t\t\tvvx.Set(vx)\n\t\t\tvx = vvx\n\t\t}\n\t\tif vy.IsValid() {\n\t\t\tvvy := reflect.New(t).Elem()\n\t\t\tvvy.Set(vy)\n\t\t\tvy = vvy\n\t\t}\n\t} else {\n\t\tt = vx.Type()\n\t}\n\n\treturn &pathStep{t, vx, vy}\n}\n\ntype state struct {\n\t// These fields represent the \"comparison state\".\n\t// Calling statelessCompare must not result in observable changes to these.\n\tresult    diff.Result // The current result of comparison\n\tcurPath   Path        // The current path in the value tree\n\tcurPtrs   pointerPath // The current set of visited pointers\n\treporters []reporter  // Optional reporters\n\n\t// recChecker checks for infinite cycles applying the same set of\n\t// transformers upon the output of itself.\n\trecChecker recChecker\n\n\t// dynChecker triggers pseudo-random checks for option correctness.\n\t// It is safe for statelessCompare to mutate this value.\n\tdynChecker dynChecker\n\n\t// These fields, once set by processOption, will not change.\n\texporters []exporter // List of exporters for structs with unexported fields\n\topts      Options    // List of all fundamental and filter options\n}\n\nfunc newState(opts []Option) *state {\n\t// Always ensure a validator option exists to validate the inputs.\n\ts := &state{opts: Options{validator{}}}\n\ts.curPtrs.Init()\n\ts.processOption(Options(opts))\n\treturn s\n}\n\nfunc (s *state) processOption(opt Option) {\n\tswitch opt := opt.(type) {\n\tcase nil:\n\tcase Options:\n\t\tfor _, o := range opt {\n\t\t\ts.processOption(o)\n\t\t}\n\tcase coreOption:\n\t\ttype filtered interface {\n\t\t\tisFiltered() bool\n\t\t}\n\t\tif fopt, ok := opt.(filtered); ok && !fopt.isFiltered() {\n\t\t\tpanic(fmt.Sprintf(\"cannot use an unfiltered option: %v\", opt))\n\t\t}\n\t\ts.opts = append(s.opts, opt)\n\tcase exporter:\n\t\ts.exporters = append(s.exporters, opt)\n\tcase reporter:\n\t\ts.reporters = append(s.reporters, opt)\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"unknown option %T\", opt))\n\t}\n}\n\n// statelessCompare compares two values and returns the result.\n// This function is stateless in that it does not alter the current result,\n// or output to any registered reporters.\nfunc (s *state) statelessCompare(step PathStep) diff.Result {\n\t// We do not save and restore curPath and curPtrs because all of the\n\t// compareX methods should properly push and pop from them.\n\t// It is an implementation bug if the contents of the paths differ from\n\t// when calling this function to when returning from it.\n\n\toldResult, oldReporters := s.result, s.reporters\n\ts.result = diff.Result{} // Reset result\n\ts.reporters = nil        // Remove reporters to avoid spurious printouts\n\ts.compareAny(step)\n\tres := s.result\n\ts.result, s.reporters = oldResult, oldReporters\n\treturn res\n}\n\nfunc (s *state) compareAny(step PathStep) {\n\t// Update the path stack.\n\ts.curPath.push(step)\n\tdefer s.curPath.pop()\n\tfor _, r := range s.reporters {\n\t\tr.PushStep(step)\n\t\tdefer r.PopStep()\n\t}\n\ts.recChecker.Check(s.curPath)\n\n\t// Cycle-detection for slice elements (see NOTE in compareSlice).\n\tt := step.Type()\n\tvx, vy := step.Values()\n\tif si, ok := step.(SliceIndex); ok && si.isSlice && vx.IsValid() && vy.IsValid() {\n\t\tpx, py := vx.Addr(), vy.Addr()\n\t\tif eq, visited := s.curPtrs.Push(px, py); visited {\n\t\t\ts.report(eq, reportByCycle)\n\t\t\treturn\n\t\t}\n\t\tdefer s.curPtrs.Pop(px, py)\n\t}\n\n\t// Rule 1: Check whether an option applies on this node in the value tree.\n\tif s.tryOptions(t, vx, vy) {\n\t\treturn\n\t}\n\n\t// Rule 2: Check whether the type has a valid Equal method.\n\tif s.tryMethod(t, vx, vy) {\n\t\treturn\n\t}\n\n\t// Rule 3: Compare based on the underlying kind.\n\tswitch t.Kind() {\n\tcase reflect.Bool:\n\t\ts.report(vx.Bool() == vy.Bool(), 0)\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\ts.report(vx.Int() == vy.Int(), 0)\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\ts.report(vx.Uint() == vy.Uint(), 0)\n\tcase reflect.Float32, reflect.Float64:\n\t\ts.report(vx.Float() == vy.Float(), 0)\n\tcase reflect.Complex64, reflect.Complex128:\n\t\ts.report(vx.Complex() == vy.Complex(), 0)\n\tcase reflect.String:\n\t\ts.report(vx.String() == vy.String(), 0)\n\tcase reflect.Chan, reflect.UnsafePointer:\n\t\ts.report(vx.Pointer() == vy.Pointer(), 0)\n\tcase reflect.Func:\n\t\ts.report(vx.IsNil() && vy.IsNil(), 0)\n\tcase reflect.Struct:\n\t\ts.compareStruct(t, vx, vy)\n\tcase reflect.Slice, reflect.Array:\n\t\ts.compareSlice(t, vx, vy)\n\tcase reflect.Map:\n\t\ts.compareMap(t, vx, vy)\n\tcase reflect.Ptr:\n\t\ts.comparePtr(t, vx, vy)\n\tcase reflect.Interface:\n\t\ts.compareInterface(t, vx, vy)\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"%v kind not handled\", t.Kind()))\n\t}\n}\n\nfunc (s *state) tryOptions(t reflect.Type, vx, vy reflect.Value) bool {\n\t// Evaluate all filters and apply the remaining options.\n\tif opt := s.opts.filter(s, t, vx, vy); opt != nil {\n\t\topt.apply(s, vx, vy)\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (s *state) tryMethod(t reflect.Type, vx, vy reflect.Value) bool {\n\t// Check if this type even has an Equal method.\n\tm, ok := t.MethodByName(\"Equal\")\n\tif !ok || !function.IsType(m.Type, function.EqualAssignable) {\n\t\treturn false\n\t}\n\n\teq := s.callTTBFunc(m.Func, vx, vy)\n\ts.report(eq, reportByMethod)\n\treturn true\n}\n\nfunc (s *state) callTRFunc(f, v reflect.Value, step Transform) reflect.Value {\n\tif !s.dynChecker.Next() {\n\t\treturn f.Call([]reflect.Value{v})[0]\n\t}\n\n\t// Run the function twice and ensure that we get the same results back.\n\t// We run in goroutines so that the race detector (if enabled) can detect\n\t// unsafe mutations to the input.\n\tc := make(chan reflect.Value)\n\tgo detectRaces(c, f, v)\n\tgot := <-c\n\twant := f.Call([]reflect.Value{v})[0]\n\tif step.vx, step.vy = got, want; !s.statelessCompare(step).Equal() {\n\t\t// To avoid false-positives with non-reflexive equality operations,\n\t\t// we sanity check whether a value is equal to itself.\n\t\tif step.vx, step.vy = want, want; !s.statelessCompare(step).Equal() {\n\t\t\treturn want\n\t\t}\n\t\tpanic(fmt.Sprintf(\"non-deterministic function detected: %s\", function.NameOf(f)))\n\t}\n\treturn want\n}\n\nfunc (s *state) callTTBFunc(f, x, y reflect.Value) bool {\n\tif !s.dynChecker.Next() {\n\t\treturn f.Call([]reflect.Value{x, y})[0].Bool()\n\t}\n\n\t// Swapping the input arguments is sufficient to check that\n\t// f is symmetric and deterministic.\n\t// We run in goroutines so that the race detector (if enabled) can detect\n\t// unsafe mutations to the input.\n\tc := make(chan reflect.Value)\n\tgo detectRaces(c, f, y, x)\n\tgot := <-c\n\twant := f.Call([]reflect.Value{x, y})[0].Bool()\n\tif !got.IsValid() || got.Bool() != want {\n\t\tpanic(fmt.Sprintf(\"non-deterministic or non-symmetric function detected: %s\", function.NameOf(f)))\n\t}\n\treturn want\n}\n\nfunc detectRaces(c chan<- reflect.Value, f reflect.Value, vs ...reflect.Value) {\n\tvar ret reflect.Value\n\tdefer func() {\n\t\trecover() // Ignore panics, let the other call to f panic instead\n\t\tc <- ret\n\t}()\n\tret = f.Call(vs)[0]\n}\n\nfunc (s *state) compareStruct(t reflect.Type, vx, vy reflect.Value) {\n\tvar addr bool\n\tvar vax, vay reflect.Value // Addressable versions of vx and vy\n\n\tvar mayForce, mayForceInit bool\n\tstep := StructField{&structField{}}\n\tfor i := 0; i < t.NumField(); i++ {\n\t\tstep.typ = t.Field(i).Type\n\t\tstep.vx = vx.Field(i)\n\t\tstep.vy = vy.Field(i)\n\t\tstep.name = t.Field(i).Name\n\t\tstep.idx = i\n\t\tstep.unexported = !isExported(step.name)\n\t\tif step.unexported {\n\t\t\tif step.name == \"_\" {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\t// Defer checking of unexported fields until later to give an\n\t\t\t// Ignore a chance to ignore the field.\n\t\t\tif !vax.IsValid() || !vay.IsValid() {\n\t\t\t\t// For retrieveUnexportedField to work, the parent struct must\n\t\t\t\t// be addressable. Create a new copy of the values if\n\t\t\t\t// necessary to make them addressable.\n\t\t\t\taddr = vx.CanAddr() || vy.CanAddr()\n\t\t\t\tvax = makeAddressable(vx)\n\t\t\t\tvay = makeAddressable(vy)\n\t\t\t}\n\t\t\tif !mayForceInit {\n\t\t\t\tfor _, xf := range s.exporters {\n\t\t\t\t\tmayForce = mayForce || xf(t)\n\t\t\t\t}\n\t\t\t\tmayForceInit = true\n\t\t\t}\n\t\t\tstep.mayForce = mayForce\n\t\t\tstep.paddr = addr\n\t\t\tstep.pvx = vax\n\t\t\tstep.pvy = vay\n\t\t\tstep.field = t.Field(i)\n\t\t}\n\t\ts.compareAny(step)\n\t}\n}\n\nfunc (s *state) compareSlice(t reflect.Type, vx, vy reflect.Value) {\n\tisSlice := t.Kind() == reflect.Slice\n\tif isSlice && (vx.IsNil() || vy.IsNil()) {\n\t\ts.report(vx.IsNil() && vy.IsNil(), 0)\n\t\treturn\n\t}\n\n\t// NOTE: It is incorrect to call curPtrs.Push on the slice header pointer\n\t// since slices represents a list of pointers, rather than a single pointer.\n\t// The pointer checking logic must be handled on a per-element basis\n\t// in compareAny.\n\t//\n\t// A slice header (see reflect.SliceHeader) in Go is a tuple of a starting\n\t// pointer P, a length N, and a capacity C. Supposing each slice element has\n\t// a memory size of M, then the slice is equivalent to the list of pointers:\n\t//\t[P+i*M for i in range(N)]\n\t//\n\t// For example, v[:0] and v[:1] are slices with the same starting pointer,\n\t// but they are clearly different values. Using the slice pointer alone\n\t// violates the assumption that equal pointers implies equal values.\n\n\tstep := SliceIndex{&sliceIndex{pathStep: pathStep{typ: t.Elem()}, isSlice: isSlice}}\n\twithIndexes := func(ix, iy int) SliceIndex {\n\t\tif ix >= 0 {\n\t\t\tstep.vx, step.xkey = vx.Index(ix), ix\n\t\t} else {\n\t\t\tstep.vx, step.xkey = reflect.Value{}, -1\n\t\t}\n\t\tif iy >= 0 {\n\t\t\tstep.vy, step.ykey = vy.Index(iy), iy\n\t\t} else {\n\t\t\tstep.vy, step.ykey = reflect.Value{}, -1\n\t\t}\n\t\treturn step\n\t}\n\n\t// Ignore options are able to ignore missing elements in a slice.\n\t// However, detecting these reliably requires an optimal differencing\n\t// algorithm, for which diff.Difference is not.\n\t//\n\t// Instead, we first iterate through both slices to detect which elements\n\t// would be ignored if standing alone. The index of non-discarded elements\n\t// are stored in a separate slice, which diffing is then performed on.\n\tvar indexesX, indexesY []int\n\tvar ignoredX, ignoredY []bool\n\tfor ix := 0; ix < vx.Len(); ix++ {\n\t\tignored := s.statelessCompare(withIndexes(ix, -1)).NumDiff == 0\n\t\tif !ignored {\n\t\t\tindexesX = append(indexesX, ix)\n\t\t}\n\t\tignoredX = append(ignoredX, ignored)\n\t}\n\tfor iy := 0; iy < vy.Len(); iy++ {\n\t\tignored := s.statelessCompare(withIndexes(-1, iy)).NumDiff == 0\n\t\tif !ignored {\n\t\t\tindexesY = append(indexesY, iy)\n\t\t}\n\t\tignoredY = append(ignoredY, ignored)\n\t}\n\n\t// Compute an edit-script for slices vx and vy (excluding ignored elements).\n\tedits := diff.Difference(len(indexesX), len(indexesY), func(ix, iy int) diff.Result {\n\t\treturn s.statelessCompare(withIndexes(indexesX[ix], indexesY[iy]))\n\t})\n\n\t// Replay the ignore-scripts and the edit-script.\n\tvar ix, iy int\n\tfor ix < vx.Len() || iy < vy.Len() {\n\t\tvar e diff.EditType\n\t\tswitch {\n\t\tcase ix < len(ignoredX) && ignoredX[ix]:\n\t\t\te = diff.UniqueX\n\t\tcase iy < len(ignoredY) && ignoredY[iy]:\n\t\t\te = diff.UniqueY\n\t\tdefault:\n\t\t\te, edits = edits[0], edits[1:]\n\t\t}\n\t\tswitch e {\n\t\tcase diff.UniqueX:\n\t\t\ts.compareAny(withIndexes(ix, -1))\n\t\t\tix++\n\t\tcase diff.UniqueY:\n\t\t\ts.compareAny(withIndexes(-1, iy))\n\t\t\tiy++\n\t\tdefault:\n\t\t\ts.compareAny(withIndexes(ix, iy))\n\t\t\tix++\n\t\t\tiy++\n\t\t}\n\t}\n}\n\nfunc (s *state) compareMap(t reflect.Type, vx, vy reflect.Value) {\n\tif vx.IsNil() || vy.IsNil() {\n\t\ts.report(vx.IsNil() && vy.IsNil(), 0)\n\t\treturn\n\t}\n\n\t// Cycle-detection for maps.\n\tif eq, visited := s.curPtrs.Push(vx, vy); visited {\n\t\ts.report(eq, reportByCycle)\n\t\treturn\n\t}\n\tdefer s.curPtrs.Pop(vx, vy)\n\n\t// We combine and sort the two map keys so that we can perform the\n\t// comparisons in a deterministic order.\n\tstep := MapIndex{&mapIndex{pathStep: pathStep{typ: t.Elem()}}}\n\tfor _, k := range value.SortKeys(append(vx.MapKeys(), vy.MapKeys()...)) {\n\t\tstep.vx = vx.MapIndex(k)\n\t\tstep.vy = vy.MapIndex(k)\n\t\tstep.key = k\n\t\tif !step.vx.IsValid() && !step.vy.IsValid() {\n\t\t\t// It is possible for both vx and vy to be invalid if the\n\t\t\t// key contained a NaN value in it.\n\t\t\t//\n\t\t\t// Even with the ability to retrieve NaN keys in Go 1.12,\n\t\t\t// there still isn't a sensible way to compare the values since\n\t\t\t// a NaN key may map to multiple unordered values.\n\t\t\t// The most reasonable way to compare NaNs would be to compare the\n\t\t\t// set of values. However, this is impossible to do efficiently\n\t\t\t// since set equality is provably an O(n^2) operation given only\n\t\t\t// an Equal function. If we had a Less function or Hash function,\n\t\t\t// this could be done in O(n*log(n)) or O(n), respectively.\n\t\t\t//\n\t\t\t// Rather than adding complex logic to deal with NaNs, make it\n\t\t\t// the user's responsibility to compare such obscure maps.\n\t\t\tconst help = \"consider providing a Comparer to compare the map\"\n\t\t\tpanic(fmt.Sprintf(\"%#v has map key with NaNs\\n%s\", s.curPath, help))\n\t\t}\n\t\ts.compareAny(step)\n\t}\n}\n\nfunc (s *state) comparePtr(t reflect.Type, vx, vy reflect.Value) {\n\tif vx.IsNil() || vy.IsNil() {\n\t\ts.report(vx.IsNil() && vy.IsNil(), 0)\n\t\treturn\n\t}\n\n\t// Cycle-detection for pointers.\n\tif eq, visited := s.curPtrs.Push(vx, vy); visited {\n\t\ts.report(eq, reportByCycle)\n\t\treturn\n\t}\n\tdefer s.curPtrs.Pop(vx, vy)\n\n\tvx, vy = vx.Elem(), vy.Elem()\n\ts.compareAny(Indirect{&indirect{pathStep{t.Elem(), vx, vy}}})\n}\n\nfunc (s *state) compareInterface(t reflect.Type, vx, vy reflect.Value) {\n\tif vx.IsNil() || vy.IsNil() {\n\t\ts.report(vx.IsNil() && vy.IsNil(), 0)\n\t\treturn\n\t}\n\tvx, vy = vx.Elem(), vy.Elem()\n\tif vx.Type() != vy.Type() {\n\t\ts.report(false, 0)\n\t\treturn\n\t}\n\ts.compareAny(TypeAssertion{&typeAssertion{pathStep{vx.Type(), vx, vy}}})\n}\n\nfunc (s *state) report(eq bool, rf resultFlags) {\n\tif rf&reportByIgnore == 0 {\n\t\tif eq {\n\t\t\ts.result.NumSame++\n\t\t\trf |= reportEqual\n\t\t} else {\n\t\t\ts.result.NumDiff++\n\t\t\trf |= reportUnequal\n\t\t}\n\t}\n\tfor _, r := range s.reporters {\n\t\tr.Report(Result{flags: rf})\n\t}\n}\n\n// recChecker tracks the state needed to periodically perform checks that\n// user provided transformers are not stuck in an infinitely recursive cycle.\ntype recChecker struct{ next int }\n\n// Check scans the Path for any recursive transformers and panics when any\n// recursive transformers are detected. Note that the presence of a\n// recursive Transformer does not necessarily imply an infinite cycle.\n// As such, this check only activates after some minimal number of path steps.\nfunc (rc *recChecker) Check(p Path) {\n\tconst minLen = 1 << 16\n\tif rc.next == 0 {\n\t\trc.next = minLen\n\t}\n\tif len(p) < rc.next {\n\t\treturn\n\t}\n\trc.next <<= 1\n\n\t// Check whether the same transformer has appeared at least twice.\n\tvar ss []string\n\tm := map[Option]int{}\n\tfor _, ps := range p {\n\t\tif t, ok := ps.(Transform); ok {\n\t\t\tt := t.Option()\n\t\t\tif m[t] == 1 { // Transformer was used exactly once before\n\t\t\t\ttf := t.(*transformer).fnc.Type()\n\t\t\t\tss = append(ss, fmt.Sprintf(\"%v: %v => %v\", t, tf.In(0), tf.Out(0)))\n\t\t\t}\n\t\t\tm[t]++\n\t\t}\n\t}\n\tif len(ss) > 0 {\n\t\tconst warning = \"recursive set of Transformers detected\"\n\t\tconst help = \"consider using cmpopts.AcyclicTransformer\"\n\t\tset := strings.Join(ss, \"\\n\\t\")\n\t\tpanic(fmt.Sprintf(\"%s:\\n\\t%s\\n%s\", warning, set, help))\n\t}\n}\n\n// dynChecker tracks the state needed to periodically perform checks that\n// user provided functions are symmetric and deterministic.\n// The zero value is safe for immediate use.\ntype dynChecker struct{ curr, next int }\n\n// Next increments the state and reports whether a check should be performed.\n//\n// Checks occur every Nth function call, where N is a triangular number:\n//\n//\t0 1 3 6 10 15 21 28 36 45 55 66 78 91 105 120 136 153 171 190 ...\n//\n// See https://en.wikipedia.org/wiki/Triangular_number\n//\n// This sequence ensures that the cost of checks drops significantly as\n// the number of functions calls grows larger.\nfunc (dc *dynChecker) Next() bool {\n\tok := dc.curr == dc.next\n\tif ok {\n\t\tdc.curr = 0\n\t\tdc.next++\n\t}\n\tdc.curr++\n\treturn ok\n}\n\n// makeAddressable returns a value that is always addressable.\n// It returns the input verbatim if it is already addressable,\n// otherwise it creates a new value and returns an addressable copy.\nfunc makeAddressable(v reflect.Value) reflect.Value {\n\tif v.CanAddr() {\n\t\treturn v\n\t}\n\tvc := reflect.New(v.Type()).Elem()\n\tvc.Set(v)\n\treturn vc\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-cmp/cmp/export.go",
    "content": "// Copyright 2017, The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage cmp\n\nimport (\n\t\"reflect\"\n\t\"unsafe\"\n)\n\n// retrieveUnexportedField uses unsafe to forcibly retrieve any field from\n// a struct such that the value has read-write permissions.\n//\n// The parent struct, v, must be addressable, while f must be a StructField\n// describing the field to retrieve. If addr is false,\n// then the returned value will be shallowed copied to be non-addressable.\nfunc retrieveUnexportedField(v reflect.Value, f reflect.StructField, addr bool) reflect.Value {\n\tve := reflect.NewAt(f.Type, unsafe.Pointer(uintptr(unsafe.Pointer(v.UnsafeAddr()))+f.Offset)).Elem()\n\tif !addr {\n\t\t// A field is addressable if and only if the struct is addressable.\n\t\t// If the original parent value was not addressable, shallow copy the\n\t\t// value to make it non-addressable to avoid leaking an implementation\n\t\t// detail of how forcibly exporting a field works.\n\t\tif ve.Kind() == reflect.Interface && ve.IsNil() {\n\t\t\treturn reflect.Zero(f.Type)\n\t\t}\n\t\treturn reflect.ValueOf(ve.Interface()).Convert(f.Type)\n\t}\n\treturn ve\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-cmp/cmp/internal/diff/debug_disable.go",
    "content": "// Copyright 2017, The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build !cmp_debug\n// +build !cmp_debug\n\npackage diff\n\nvar debug debugger\n\ntype debugger struct{}\n\nfunc (debugger) Begin(_, _ int, f EqualFunc, _, _ *EditScript) EqualFunc {\n\treturn f\n}\nfunc (debugger) Update() {}\nfunc (debugger) Finish() {}\n"
  },
  {
    "path": "vendor/github.com/google/go-cmp/cmp/internal/diff/debug_enable.go",
    "content": "// Copyright 2017, The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build cmp_debug\n// +build cmp_debug\n\npackage diff\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n)\n\n// The algorithm can be seen running in real-time by enabling debugging:\n//\tgo test -tags=cmp_debug -v\n//\n// Example output:\n//\t=== RUN   TestDifference/#34\n//\t┌───────────────────────────────┐\n//\t│ \\ · · · · · · · · · · · · · · │\n//\t│ · # · · · · · · · · · · · · · │\n//\t│ · \\ · · · · · · · · · · · · · │\n//\t│ · · \\ · · · · · · · · · · · · │\n//\t│ · · · X # · · · · · · · · · · │\n//\t│ · · · # \\ · · · · · · · · · · │\n//\t│ · · · · · # # · · · · · · · · │\n//\t│ · · · · · # \\ · · · · · · · · │\n//\t│ · · · · · · · \\ · · · · · · · │\n//\t│ · · · · · · · · \\ · · · · · · │\n//\t│ · · · · · · · · · \\ · · · · · │\n//\t│ · · · · · · · · · · \\ · · # · │\n//\t│ · · · · · · · · · · · \\ # # · │\n//\t│ · · · · · · · · · · · # # # · │\n//\t│ · · · · · · · · · · # # # # · │\n//\t│ · · · · · · · · · # # # # # · │\n//\t│ · · · · · · · · · · · · · · \\ │\n//\t└───────────────────────────────┘\n//\t[.Y..M.XY......YXYXY.|]\n//\n// The grid represents the edit-graph where the horizontal axis represents\n// list X and the vertical axis represents list Y. The start of the two lists\n// is the top-left, while the ends are the bottom-right. The '·' represents\n// an unexplored node in the graph. The '\\' indicates that the two symbols\n// from list X and Y are equal. The 'X' indicates that two symbols are similar\n// (but not exactly equal) to each other. The '#' indicates that the two symbols\n// are different (and not similar). The algorithm traverses this graph trying to\n// make the paths starting in the top-left and the bottom-right connect.\n//\n// The series of '.', 'X', 'Y', and 'M' characters at the bottom represents\n// the currently established path from the forward and reverse searches,\n// separated by a '|' character.\n\nconst (\n\tupdateDelay  = 100 * time.Millisecond\n\tfinishDelay  = 500 * time.Millisecond\n\tansiTerminal = true // ANSI escape codes used to move terminal cursor\n)\n\nvar debug debugger\n\ntype debugger struct {\n\tsync.Mutex\n\tp1, p2           EditScript\n\tfwdPath, revPath *EditScript\n\tgrid             []byte\n\tlines            int\n}\n\nfunc (dbg *debugger) Begin(nx, ny int, f EqualFunc, p1, p2 *EditScript) EqualFunc {\n\tdbg.Lock()\n\tdbg.fwdPath, dbg.revPath = p1, p2\n\ttop := \"┌─\" + strings.Repeat(\"──\", nx) + \"┐\\n\"\n\trow := \"│ \" + strings.Repeat(\"· \", nx) + \"│\\n\"\n\tbtm := \"└─\" + strings.Repeat(\"──\", nx) + \"┘\\n\"\n\tdbg.grid = []byte(top + strings.Repeat(row, ny) + btm)\n\tdbg.lines = strings.Count(dbg.String(), \"\\n\")\n\tfmt.Print(dbg)\n\n\t// Wrap the EqualFunc so that we can intercept each result.\n\treturn func(ix, iy int) (r Result) {\n\t\tcell := dbg.grid[len(top)+iy*len(row):][len(\"│ \")+len(\"· \")*ix:][:len(\"·\")]\n\t\tfor i := range cell {\n\t\t\tcell[i] = 0 // Zero out the multiple bytes of UTF-8 middle-dot\n\t\t}\n\t\tswitch r = f(ix, iy); {\n\t\tcase r.Equal():\n\t\t\tcell[0] = '\\\\'\n\t\tcase r.Similar():\n\t\t\tcell[0] = 'X'\n\t\tdefault:\n\t\t\tcell[0] = '#'\n\t\t}\n\t\treturn\n\t}\n}\n\nfunc (dbg *debugger) Update() {\n\tdbg.print(updateDelay)\n}\n\nfunc (dbg *debugger) Finish() {\n\tdbg.print(finishDelay)\n\tdbg.Unlock()\n}\n\nfunc (dbg *debugger) String() string {\n\tdbg.p1, dbg.p2 = *dbg.fwdPath, dbg.p2[:0]\n\tfor i := len(*dbg.revPath) - 1; i >= 0; i-- {\n\t\tdbg.p2 = append(dbg.p2, (*dbg.revPath)[i])\n\t}\n\treturn fmt.Sprintf(\"%s[%v|%v]\\n\\n\", dbg.grid, dbg.p1, dbg.p2)\n}\n\nfunc (dbg *debugger) print(d time.Duration) {\n\tif ansiTerminal {\n\t\tfmt.Printf(\"\\x1b[%dA\", dbg.lines) // Reset terminal cursor\n\t}\n\tfmt.Print(dbg)\n\ttime.Sleep(d)\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-cmp/cmp/internal/diff/diff.go",
    "content": "// Copyright 2017, The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package diff implements an algorithm for producing edit-scripts.\n// The edit-script is a sequence of operations needed to transform one list\n// of symbols into another (or vice-versa). The edits allowed are insertions,\n// deletions, and modifications. The summation of all edits is called the\n// Levenshtein distance as this problem is well-known in computer science.\n//\n// This package prioritizes performance over accuracy. That is, the run time\n// is more important than obtaining a minimal Levenshtein distance.\npackage diff\n\nimport (\n\t\"math/rand\"\n\t\"time\"\n\n\t\"github.com/google/go-cmp/cmp/internal/flags\"\n)\n\n// EditType represents a single operation within an edit-script.\ntype EditType uint8\n\nconst (\n\t// Identity indicates that a symbol pair is identical in both list X and Y.\n\tIdentity EditType = iota\n\t// UniqueX indicates that a symbol only exists in X and not Y.\n\tUniqueX\n\t// UniqueY indicates that a symbol only exists in Y and not X.\n\tUniqueY\n\t// Modified indicates that a symbol pair is a modification of each other.\n\tModified\n)\n\n// EditScript represents the series of differences between two lists.\ntype EditScript []EditType\n\n// String returns a human-readable string representing the edit-script where\n// Identity, UniqueX, UniqueY, and Modified are represented by the\n// '.', 'X', 'Y', and 'M' characters, respectively.\nfunc (es EditScript) String() string {\n\tb := make([]byte, len(es))\n\tfor i, e := range es {\n\t\tswitch e {\n\t\tcase Identity:\n\t\t\tb[i] = '.'\n\t\tcase UniqueX:\n\t\t\tb[i] = 'X'\n\t\tcase UniqueY:\n\t\t\tb[i] = 'Y'\n\t\tcase Modified:\n\t\t\tb[i] = 'M'\n\t\tdefault:\n\t\t\tpanic(\"invalid edit-type\")\n\t\t}\n\t}\n\treturn string(b)\n}\n\n// stats returns a histogram of the number of each type of edit operation.\nfunc (es EditScript) stats() (s struct{ NI, NX, NY, NM int }) {\n\tfor _, e := range es {\n\t\tswitch e {\n\t\tcase Identity:\n\t\t\ts.NI++\n\t\tcase UniqueX:\n\t\t\ts.NX++\n\t\tcase UniqueY:\n\t\t\ts.NY++\n\t\tcase Modified:\n\t\t\ts.NM++\n\t\tdefault:\n\t\t\tpanic(\"invalid edit-type\")\n\t\t}\n\t}\n\treturn\n}\n\n// Dist is the Levenshtein distance and is guaranteed to be 0 if and only if\n// lists X and Y are equal.\nfunc (es EditScript) Dist() int { return len(es) - es.stats().NI }\n\n// LenX is the length of the X list.\nfunc (es EditScript) LenX() int { return len(es) - es.stats().NY }\n\n// LenY is the length of the Y list.\nfunc (es EditScript) LenY() int { return len(es) - es.stats().NX }\n\n// EqualFunc reports whether the symbols at indexes ix and iy are equal.\n// When called by Difference, the index is guaranteed to be within nx and ny.\ntype EqualFunc func(ix int, iy int) Result\n\n// Result is the result of comparison.\n// NumSame is the number of sub-elements that are equal.\n// NumDiff is the number of sub-elements that are not equal.\ntype Result struct{ NumSame, NumDiff int }\n\n// BoolResult returns a Result that is either Equal or not Equal.\nfunc BoolResult(b bool) Result {\n\tif b {\n\t\treturn Result{NumSame: 1} // Equal, Similar\n\t} else {\n\t\treturn Result{NumDiff: 2} // Not Equal, not Similar\n\t}\n}\n\n// Equal indicates whether the symbols are equal. Two symbols are equal\n// if and only if NumDiff == 0. If Equal, then they are also Similar.\nfunc (r Result) Equal() bool { return r.NumDiff == 0 }\n\n// Similar indicates whether two symbols are similar and may be represented\n// by using the Modified type. As a special case, we consider binary comparisons\n// (i.e., those that return Result{1, 0} or Result{0, 1}) to be similar.\n//\n// The exact ratio of NumSame to NumDiff to determine similarity may change.\nfunc (r Result) Similar() bool {\n\t// Use NumSame+1 to offset NumSame so that binary comparisons are similar.\n\treturn r.NumSame+1 >= r.NumDiff\n}\n\nvar randBool = rand.New(rand.NewSource(time.Now().Unix())).Intn(2) == 0\n\n// Difference reports whether two lists of lengths nx and ny are equal\n// given the definition of equality provided as f.\n//\n// This function returns an edit-script, which is a sequence of operations\n// needed to convert one list into the other. The following invariants for\n// the edit-script are maintained:\n//   - eq == (es.Dist()==0)\n//   - nx == es.LenX()\n//   - ny == es.LenY()\n//\n// This algorithm is not guaranteed to be an optimal solution (i.e., one that\n// produces an edit-script with a minimal Levenshtein distance). This algorithm\n// favors performance over optimality. The exact output is not guaranteed to\n// be stable and may change over time.\nfunc Difference(nx, ny int, f EqualFunc) (es EditScript) {\n\t// This algorithm is based on traversing what is known as an \"edit-graph\".\n\t// See Figure 1 from \"An O(ND) Difference Algorithm and Its Variations\"\n\t// by Eugene W. Myers. Since D can be as large as N itself, this is\n\t// effectively O(N^2). Unlike the algorithm from that paper, we are not\n\t// interested in the optimal path, but at least some \"decent\" path.\n\t//\n\t// For example, let X and Y be lists of symbols:\n\t//\tX = [A B C A B B A]\n\t//\tY = [C B A B A C]\n\t//\n\t// The edit-graph can be drawn as the following:\n\t//\t   A B C A B B A\n\t//\t  ┌─────────────┐\n\t//\tC │_|_|\\|_|_|_|_│ 0\n\t//\tB │_|\\|_|_|\\|\\|_│ 1\n\t//\tA │\\|_|_|\\|_|_|\\│ 2\n\t//\tB │_|\\|_|_|\\|\\|_│ 3\n\t//\tA │\\|_|_|\\|_|_|\\│ 4\n\t//\tC │ | |\\| | | | │ 5\n\t//\t  └─────────────┘ 6\n\t//\t   0 1 2 3 4 5 6 7\n\t//\n\t// List X is written along the horizontal axis, while list Y is written\n\t// along the vertical axis. At any point on this grid, if the symbol in\n\t// list X matches the corresponding symbol in list Y, then a '\\' is drawn.\n\t// The goal of any minimal edit-script algorithm is to find a path from the\n\t// top-left corner to the bottom-right corner, while traveling through the\n\t// fewest horizontal or vertical edges.\n\t// A horizontal edge is equivalent to inserting a symbol from list X.\n\t// A vertical edge is equivalent to inserting a symbol from list Y.\n\t// A diagonal edge is equivalent to a matching symbol between both X and Y.\n\n\t// Invariants:\n\t//   - 0 ≤ fwdPath.X ≤ (fwdFrontier.X, revFrontier.X) ≤ revPath.X ≤ nx\n\t//   - 0 ≤ fwdPath.Y ≤ (fwdFrontier.Y, revFrontier.Y) ≤ revPath.Y ≤ ny\n\t//\n\t// In general:\n\t//   - fwdFrontier.X < revFrontier.X\n\t//   - fwdFrontier.Y < revFrontier.Y\n\t//\n\t// Unless, it is time for the algorithm to terminate.\n\tfwdPath := path{+1, point{0, 0}, make(EditScript, 0, (nx+ny)/2)}\n\trevPath := path{-1, point{nx, ny}, make(EditScript, 0)}\n\tfwdFrontier := fwdPath.point // Forward search frontier\n\trevFrontier := revPath.point // Reverse search frontier\n\n\t// Search budget bounds the cost of searching for better paths.\n\t// The longest sequence of non-matching symbols that can be tolerated is\n\t// approximately the square-root of the search budget.\n\tsearchBudget := 4 * (nx + ny) // O(n)\n\n\t// Running the tests with the \"cmp_debug\" build tag prints a visualization\n\t// of the algorithm running in real-time. This is educational for\n\t// understanding how the algorithm works. See debug_enable.go.\n\tf = debug.Begin(nx, ny, f, &fwdPath.es, &revPath.es)\n\n\t// The algorithm below is a greedy, meet-in-the-middle algorithm for\n\t// computing sub-optimal edit-scripts between two lists.\n\t//\n\t// The algorithm is approximately as follows:\n\t//   - Searching for differences switches back-and-forth between\n\t//     a search that starts at the beginning (the top-left corner), and\n\t//     a search that starts at the end (the bottom-right corner).\n\t//     The goal of the search is connect with the search\n\t//     from the opposite corner.\n\t//   - As we search, we build a path in a greedy manner,\n\t//     where the first match seen is added to the path (this is sub-optimal,\n\t//     but provides a decent result in practice). When matches are found,\n\t//     we try the next pair of symbols in the lists and follow all matches\n\t//     as far as possible.\n\t//   - When searching for matches, we search along a diagonal going through\n\t//     through the \"frontier\" point. If no matches are found,\n\t//     we advance the frontier towards the opposite corner.\n\t//   - This algorithm terminates when either the X coordinates or the\n\t//     Y coordinates of the forward and reverse frontier points ever intersect.\n\n\t// This algorithm is correct even if searching only in the forward direction\n\t// or in the reverse direction. We do both because it is commonly observed\n\t// that two lists commonly differ because elements were added to the front\n\t// or end of the other list.\n\t//\n\t// Non-deterministically start with either the forward or reverse direction\n\t// to introduce some deliberate instability so that we have the flexibility\n\t// to change this algorithm in the future.\n\tif flags.Deterministic || randBool {\n\t\tgoto forwardSearch\n\t} else {\n\t\tgoto reverseSearch\n\t}\n\nforwardSearch:\n\t{\n\t\t// Forward search from the beginning.\n\t\tif fwdFrontier.X >= revFrontier.X || fwdFrontier.Y >= revFrontier.Y || searchBudget == 0 {\n\t\t\tgoto finishSearch\n\t\t}\n\t\tfor stop1, stop2, i := false, false, 0; !(stop1 && stop2) && searchBudget > 0; i++ {\n\t\t\t// Search in a diagonal pattern for a match.\n\t\t\tz := zigzag(i)\n\t\t\tp := point{fwdFrontier.X + z, fwdFrontier.Y - z}\n\t\t\tswitch {\n\t\t\tcase p.X >= revPath.X || p.Y < fwdPath.Y:\n\t\t\t\tstop1 = true // Hit top-right corner\n\t\t\tcase p.Y >= revPath.Y || p.X < fwdPath.X:\n\t\t\t\tstop2 = true // Hit bottom-left corner\n\t\t\tcase f(p.X, p.Y).Equal():\n\t\t\t\t// Match found, so connect the path to this point.\n\t\t\t\tfwdPath.connect(p, f)\n\t\t\t\tfwdPath.append(Identity)\n\t\t\t\t// Follow sequence of matches as far as possible.\n\t\t\t\tfor fwdPath.X < revPath.X && fwdPath.Y < revPath.Y {\n\t\t\t\t\tif !f(fwdPath.X, fwdPath.Y).Equal() {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tfwdPath.append(Identity)\n\t\t\t\t}\n\t\t\t\tfwdFrontier = fwdPath.point\n\t\t\t\tstop1, stop2 = true, true\n\t\t\tdefault:\n\t\t\t\tsearchBudget-- // Match not found\n\t\t\t}\n\t\t\tdebug.Update()\n\t\t}\n\t\t// Advance the frontier towards reverse point.\n\t\tif revPath.X-fwdFrontier.X >= revPath.Y-fwdFrontier.Y {\n\t\t\tfwdFrontier.X++\n\t\t} else {\n\t\t\tfwdFrontier.Y++\n\t\t}\n\t\tgoto reverseSearch\n\t}\n\nreverseSearch:\n\t{\n\t\t// Reverse search from the end.\n\t\tif fwdFrontier.X >= revFrontier.X || fwdFrontier.Y >= revFrontier.Y || searchBudget == 0 {\n\t\t\tgoto finishSearch\n\t\t}\n\t\tfor stop1, stop2, i := false, false, 0; !(stop1 && stop2) && searchBudget > 0; i++ {\n\t\t\t// Search in a diagonal pattern for a match.\n\t\t\tz := zigzag(i)\n\t\t\tp := point{revFrontier.X - z, revFrontier.Y + z}\n\t\t\tswitch {\n\t\t\tcase fwdPath.X >= p.X || revPath.Y < p.Y:\n\t\t\t\tstop1 = true // Hit bottom-left corner\n\t\t\tcase fwdPath.Y >= p.Y || revPath.X < p.X:\n\t\t\t\tstop2 = true // Hit top-right corner\n\t\t\tcase f(p.X-1, p.Y-1).Equal():\n\t\t\t\t// Match found, so connect the path to this point.\n\t\t\t\trevPath.connect(p, f)\n\t\t\t\trevPath.append(Identity)\n\t\t\t\t// Follow sequence of matches as far as possible.\n\t\t\t\tfor fwdPath.X < revPath.X && fwdPath.Y < revPath.Y {\n\t\t\t\t\tif !f(revPath.X-1, revPath.Y-1).Equal() {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\trevPath.append(Identity)\n\t\t\t\t}\n\t\t\t\trevFrontier = revPath.point\n\t\t\t\tstop1, stop2 = true, true\n\t\t\tdefault:\n\t\t\t\tsearchBudget-- // Match not found\n\t\t\t}\n\t\t\tdebug.Update()\n\t\t}\n\t\t// Advance the frontier towards forward point.\n\t\tif revFrontier.X-fwdPath.X >= revFrontier.Y-fwdPath.Y {\n\t\t\trevFrontier.X--\n\t\t} else {\n\t\t\trevFrontier.Y--\n\t\t}\n\t\tgoto forwardSearch\n\t}\n\nfinishSearch:\n\t// Join the forward and reverse paths and then append the reverse path.\n\tfwdPath.connect(revPath.point, f)\n\tfor i := len(revPath.es) - 1; i >= 0; i-- {\n\t\tt := revPath.es[i]\n\t\trevPath.es = revPath.es[:i]\n\t\tfwdPath.append(t)\n\t}\n\tdebug.Finish()\n\treturn fwdPath.es\n}\n\ntype path struct {\n\tdir   int // +1 if forward, -1 if reverse\n\tpoint     // Leading point of the EditScript path\n\tes    EditScript\n}\n\n// connect appends any necessary Identity, Modified, UniqueX, or UniqueY types\n// to the edit-script to connect p.point to dst.\nfunc (p *path) connect(dst point, f EqualFunc) {\n\tif p.dir > 0 {\n\t\t// Connect in forward direction.\n\t\tfor dst.X > p.X && dst.Y > p.Y {\n\t\t\tswitch r := f(p.X, p.Y); {\n\t\t\tcase r.Equal():\n\t\t\t\tp.append(Identity)\n\t\t\tcase r.Similar():\n\t\t\t\tp.append(Modified)\n\t\t\tcase dst.X-p.X >= dst.Y-p.Y:\n\t\t\t\tp.append(UniqueX)\n\t\t\tdefault:\n\t\t\t\tp.append(UniqueY)\n\t\t\t}\n\t\t}\n\t\tfor dst.X > p.X {\n\t\t\tp.append(UniqueX)\n\t\t}\n\t\tfor dst.Y > p.Y {\n\t\t\tp.append(UniqueY)\n\t\t}\n\t} else {\n\t\t// Connect in reverse direction.\n\t\tfor p.X > dst.X && p.Y > dst.Y {\n\t\t\tswitch r := f(p.X-1, p.Y-1); {\n\t\t\tcase r.Equal():\n\t\t\t\tp.append(Identity)\n\t\t\tcase r.Similar():\n\t\t\t\tp.append(Modified)\n\t\t\tcase p.Y-dst.Y >= p.X-dst.X:\n\t\t\t\tp.append(UniqueY)\n\t\t\tdefault:\n\t\t\t\tp.append(UniqueX)\n\t\t\t}\n\t\t}\n\t\tfor p.X > dst.X {\n\t\t\tp.append(UniqueX)\n\t\t}\n\t\tfor p.Y > dst.Y {\n\t\t\tp.append(UniqueY)\n\t\t}\n\t}\n}\n\nfunc (p *path) append(t EditType) {\n\tp.es = append(p.es, t)\n\tswitch t {\n\tcase Identity, Modified:\n\t\tp.add(p.dir, p.dir)\n\tcase UniqueX:\n\t\tp.add(p.dir, 0)\n\tcase UniqueY:\n\t\tp.add(0, p.dir)\n\t}\n\tdebug.Update()\n}\n\ntype point struct{ X, Y int }\n\nfunc (p *point) add(dx, dy int) { p.X += dx; p.Y += dy }\n\n// zigzag maps a consecutive sequence of integers to a zig-zag sequence.\n//\n//\t[0 1 2 3 4 5 ...] => [0 -1 +1 -2 +2 ...]\nfunc zigzag(x int) int {\n\tif x&1 != 0 {\n\t\tx = ^x\n\t}\n\treturn x >> 1\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-cmp/cmp/internal/flags/flags.go",
    "content": "// Copyright 2019, The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage flags\n\n// Deterministic controls whether the output of Diff should be deterministic.\n// This is only used for testing.\nvar Deterministic bool\n"
  },
  {
    "path": "vendor/github.com/google/go-cmp/cmp/internal/function/func.go",
    "content": "// Copyright 2017, The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package function provides functionality for identifying function types.\npackage function\n\nimport (\n\t\"reflect\"\n\t\"regexp\"\n\t\"runtime\"\n\t\"strings\"\n)\n\ntype funcType int\n\nconst (\n\t_ funcType = iota\n\n\ttbFunc  // func(T) bool\n\tttbFunc // func(T, T) bool\n\ttrbFunc // func(T, R) bool\n\ttibFunc // func(T, I) bool\n\ttrFunc  // func(T) R\n\n\tEqual             = ttbFunc // func(T, T) bool\n\tEqualAssignable   = tibFunc // func(T, I) bool; encapsulates func(T, T) bool\n\tTransformer       = trFunc  // func(T) R\n\tValueFilter       = ttbFunc // func(T, T) bool\n\tLess              = ttbFunc // func(T, T) bool\n\tValuePredicate    = tbFunc  // func(T) bool\n\tKeyValuePredicate = trbFunc // func(T, R) bool\n)\n\nvar boolType = reflect.TypeOf(true)\n\n// IsType reports whether the reflect.Type is of the specified function type.\nfunc IsType(t reflect.Type, ft funcType) bool {\n\tif t == nil || t.Kind() != reflect.Func || t.IsVariadic() {\n\t\treturn false\n\t}\n\tni, no := t.NumIn(), t.NumOut()\n\tswitch ft {\n\tcase tbFunc: // func(T) bool\n\t\tif ni == 1 && no == 1 && t.Out(0) == boolType {\n\t\t\treturn true\n\t\t}\n\tcase ttbFunc: // func(T, T) bool\n\t\tif ni == 2 && no == 1 && t.In(0) == t.In(1) && t.Out(0) == boolType {\n\t\t\treturn true\n\t\t}\n\tcase trbFunc: // func(T, R) bool\n\t\tif ni == 2 && no == 1 && t.Out(0) == boolType {\n\t\t\treturn true\n\t\t}\n\tcase tibFunc: // func(T, I) bool\n\t\tif ni == 2 && no == 1 && t.In(0).AssignableTo(t.In(1)) && t.Out(0) == boolType {\n\t\t\treturn true\n\t\t}\n\tcase trFunc: // func(T) R\n\t\tif ni == 1 && no == 1 {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nvar lastIdentRx = regexp.MustCompile(`[_\\p{L}][_\\p{L}\\p{N}]*$`)\n\n// NameOf returns the name of the function value.\nfunc NameOf(v reflect.Value) string {\n\tfnc := runtime.FuncForPC(v.Pointer())\n\tif fnc == nil {\n\t\treturn \"<unknown>\"\n\t}\n\tfullName := fnc.Name() // e.g., \"long/path/name/mypkg.(*MyType).(long/path/name/mypkg.myMethod)-fm\"\n\n\t// Method closures have a \"-fm\" suffix.\n\tfullName = strings.TrimSuffix(fullName, \"-fm\")\n\n\tvar name string\n\tfor len(fullName) > 0 {\n\t\tinParen := strings.HasSuffix(fullName, \")\")\n\t\tfullName = strings.TrimSuffix(fullName, \")\")\n\n\t\ts := lastIdentRx.FindString(fullName)\n\t\tif s == \"\" {\n\t\t\tbreak\n\t\t}\n\t\tname = s + \".\" + name\n\t\tfullName = strings.TrimSuffix(fullName, s)\n\n\t\tif i := strings.LastIndexByte(fullName, '('); inParen && i >= 0 {\n\t\t\tfullName = fullName[:i]\n\t\t}\n\t\tfullName = strings.TrimSuffix(fullName, \".\")\n\t}\n\treturn strings.TrimSuffix(name, \".\")\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-cmp/cmp/internal/value/name.go",
    "content": "// Copyright 2020, The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage value\n\nimport (\n\t\"reflect\"\n\t\"strconv\"\n)\n\nvar anyType = reflect.TypeOf((*interface{})(nil)).Elem()\n\n// TypeString is nearly identical to reflect.Type.String,\n// but has an additional option to specify that full type names be used.\nfunc TypeString(t reflect.Type, qualified bool) string {\n\treturn string(appendTypeName(nil, t, qualified, false))\n}\n\nfunc appendTypeName(b []byte, t reflect.Type, qualified, elideFunc bool) []byte {\n\t// BUG: Go reflection provides no way to disambiguate two named types\n\t// of the same name and within the same package,\n\t// but declared within the namespace of different functions.\n\n\t// Use the \"any\" alias instead of \"interface{}\" for better readability.\n\tif t == anyType {\n\t\treturn append(b, \"any\"...)\n\t}\n\n\t// Named type.\n\tif t.Name() != \"\" {\n\t\tif qualified && t.PkgPath() != \"\" {\n\t\t\tb = append(b, '\"')\n\t\t\tb = append(b, t.PkgPath()...)\n\t\t\tb = append(b, '\"')\n\t\t\tb = append(b, '.')\n\t\t\tb = append(b, t.Name()...)\n\t\t} else {\n\t\t\tb = append(b, t.String()...)\n\t\t}\n\t\treturn b\n\t}\n\n\t// Unnamed type.\n\tswitch k := t.Kind(); k {\n\tcase reflect.Bool, reflect.String, reflect.UnsafePointer,\n\t\treflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,\n\t\treflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr,\n\t\treflect.Float32, reflect.Float64, reflect.Complex64, reflect.Complex128:\n\t\tb = append(b, k.String()...)\n\tcase reflect.Chan:\n\t\tif t.ChanDir() == reflect.RecvDir {\n\t\t\tb = append(b, \"<-\"...)\n\t\t}\n\t\tb = append(b, \"chan\"...)\n\t\tif t.ChanDir() == reflect.SendDir {\n\t\t\tb = append(b, \"<-\"...)\n\t\t}\n\t\tb = append(b, ' ')\n\t\tb = appendTypeName(b, t.Elem(), qualified, false)\n\tcase reflect.Func:\n\t\tif !elideFunc {\n\t\t\tb = append(b, \"func\"...)\n\t\t}\n\t\tb = append(b, '(')\n\t\tfor i := 0; i < t.NumIn(); i++ {\n\t\t\tif i > 0 {\n\t\t\t\tb = append(b, \", \"...)\n\t\t\t}\n\t\t\tif i == t.NumIn()-1 && t.IsVariadic() {\n\t\t\t\tb = append(b, \"...\"...)\n\t\t\t\tb = appendTypeName(b, t.In(i).Elem(), qualified, false)\n\t\t\t} else {\n\t\t\t\tb = appendTypeName(b, t.In(i), qualified, false)\n\t\t\t}\n\t\t}\n\t\tb = append(b, ')')\n\t\tswitch t.NumOut() {\n\t\tcase 0:\n\t\t\t// Do nothing\n\t\tcase 1:\n\t\t\tb = append(b, ' ')\n\t\t\tb = appendTypeName(b, t.Out(0), qualified, false)\n\t\tdefault:\n\t\t\tb = append(b, \" (\"...)\n\t\t\tfor i := 0; i < t.NumOut(); i++ {\n\t\t\t\tif i > 0 {\n\t\t\t\t\tb = append(b, \", \"...)\n\t\t\t\t}\n\t\t\t\tb = appendTypeName(b, t.Out(i), qualified, false)\n\t\t\t}\n\t\t\tb = append(b, ')')\n\t\t}\n\tcase reflect.Struct:\n\t\tb = append(b, \"struct{ \"...)\n\t\tfor i := 0; i < t.NumField(); i++ {\n\t\t\tif i > 0 {\n\t\t\t\tb = append(b, \"; \"...)\n\t\t\t}\n\t\t\tsf := t.Field(i)\n\t\t\tif !sf.Anonymous {\n\t\t\t\tif qualified && sf.PkgPath != \"\" {\n\t\t\t\t\tb = append(b, '\"')\n\t\t\t\t\tb = append(b, sf.PkgPath...)\n\t\t\t\t\tb = append(b, '\"')\n\t\t\t\t\tb = append(b, '.')\n\t\t\t\t}\n\t\t\t\tb = append(b, sf.Name...)\n\t\t\t\tb = append(b, ' ')\n\t\t\t}\n\t\t\tb = appendTypeName(b, sf.Type, qualified, false)\n\t\t\tif sf.Tag != \"\" {\n\t\t\t\tb = append(b, ' ')\n\t\t\t\tb = strconv.AppendQuote(b, string(sf.Tag))\n\t\t\t}\n\t\t}\n\t\tif b[len(b)-1] == ' ' {\n\t\t\tb = b[:len(b)-1]\n\t\t} else {\n\t\t\tb = append(b, ' ')\n\t\t}\n\t\tb = append(b, '}')\n\tcase reflect.Slice, reflect.Array:\n\t\tb = append(b, '[')\n\t\tif k == reflect.Array {\n\t\t\tb = strconv.AppendUint(b, uint64(t.Len()), 10)\n\t\t}\n\t\tb = append(b, ']')\n\t\tb = appendTypeName(b, t.Elem(), qualified, false)\n\tcase reflect.Map:\n\t\tb = append(b, \"map[\"...)\n\t\tb = appendTypeName(b, t.Key(), qualified, false)\n\t\tb = append(b, ']')\n\t\tb = appendTypeName(b, t.Elem(), qualified, false)\n\tcase reflect.Ptr:\n\t\tb = append(b, '*')\n\t\tb = appendTypeName(b, t.Elem(), qualified, false)\n\tcase reflect.Interface:\n\t\tb = append(b, \"interface{ \"...)\n\t\tfor i := 0; i < t.NumMethod(); i++ {\n\t\t\tif i > 0 {\n\t\t\t\tb = append(b, \"; \"...)\n\t\t\t}\n\t\t\tm := t.Method(i)\n\t\t\tif qualified && m.PkgPath != \"\" {\n\t\t\t\tb = append(b, '\"')\n\t\t\t\tb = append(b, m.PkgPath...)\n\t\t\t\tb = append(b, '\"')\n\t\t\t\tb = append(b, '.')\n\t\t\t}\n\t\t\tb = append(b, m.Name...)\n\t\t\tb = appendTypeName(b, m.Type, qualified, true)\n\t\t}\n\t\tif b[len(b)-1] == ' ' {\n\t\t\tb = b[:len(b)-1]\n\t\t} else {\n\t\t\tb = append(b, ' ')\n\t\t}\n\t\tb = append(b, '}')\n\tdefault:\n\t\tpanic(\"invalid kind: \" + k.String())\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-cmp/cmp/internal/value/pointer.go",
    "content": "// Copyright 2018, The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage value\n\nimport (\n\t\"reflect\"\n\t\"unsafe\"\n)\n\n// Pointer is an opaque typed pointer and is guaranteed to be comparable.\ntype Pointer struct {\n\tp unsafe.Pointer\n\tt reflect.Type\n}\n\n// PointerOf returns a Pointer from v, which must be a\n// reflect.Ptr, reflect.Slice, or reflect.Map.\nfunc PointerOf(v reflect.Value) Pointer {\n\t// The proper representation of a pointer is unsafe.Pointer,\n\t// which is necessary if the GC ever uses a moving collector.\n\treturn Pointer{unsafe.Pointer(v.Pointer()), v.Type()}\n}\n\n// IsNil reports whether the pointer is nil.\nfunc (p Pointer) IsNil() bool {\n\treturn p.p == nil\n}\n\n// Uintptr returns the pointer as a uintptr.\nfunc (p Pointer) Uintptr() uintptr {\n\treturn uintptr(p.p)\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-cmp/cmp/internal/value/sort.go",
    "content": "// Copyright 2017, The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage value\n\nimport (\n\t\"fmt\"\n\t\"math\"\n\t\"reflect\"\n\t\"sort\"\n)\n\n// SortKeys sorts a list of map keys, deduplicating keys if necessary.\n// The type of each value must be comparable.\nfunc SortKeys(vs []reflect.Value) []reflect.Value {\n\tif len(vs) == 0 {\n\t\treturn vs\n\t}\n\n\t// Sort the map keys.\n\tsort.SliceStable(vs, func(i, j int) bool { return isLess(vs[i], vs[j]) })\n\n\t// Deduplicate keys (fails for NaNs).\n\tvs2 := vs[:1]\n\tfor _, v := range vs[1:] {\n\t\tif isLess(vs2[len(vs2)-1], v) {\n\t\t\tvs2 = append(vs2, v)\n\t\t}\n\t}\n\treturn vs2\n}\n\n// isLess is a generic function for sorting arbitrary map keys.\n// The inputs must be of the same type and must be comparable.\nfunc isLess(x, y reflect.Value) bool {\n\tswitch x.Type().Kind() {\n\tcase reflect.Bool:\n\t\treturn !x.Bool() && y.Bool()\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn x.Int() < y.Int()\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn x.Uint() < y.Uint()\n\tcase reflect.Float32, reflect.Float64:\n\t\t// NOTE: This does not sort -0 as less than +0\n\t\t// since Go maps treat -0 and +0 as equal keys.\n\t\tfx, fy := x.Float(), y.Float()\n\t\treturn fx < fy || math.IsNaN(fx) && !math.IsNaN(fy)\n\tcase reflect.Complex64, reflect.Complex128:\n\t\tcx, cy := x.Complex(), y.Complex()\n\t\trx, ix, ry, iy := real(cx), imag(cx), real(cy), imag(cy)\n\t\tif rx == ry || (math.IsNaN(rx) && math.IsNaN(ry)) {\n\t\t\treturn ix < iy || math.IsNaN(ix) && !math.IsNaN(iy)\n\t\t}\n\t\treturn rx < ry || math.IsNaN(rx) && !math.IsNaN(ry)\n\tcase reflect.Ptr, reflect.UnsafePointer, reflect.Chan:\n\t\treturn x.Pointer() < y.Pointer()\n\tcase reflect.String:\n\t\treturn x.String() < y.String()\n\tcase reflect.Array:\n\t\tfor i := 0; i < x.Len(); i++ {\n\t\t\tif isLess(x.Index(i), y.Index(i)) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif isLess(y.Index(i), x.Index(i)) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn false\n\tcase reflect.Struct:\n\t\tfor i := 0; i < x.NumField(); i++ {\n\t\t\tif isLess(x.Field(i), y.Field(i)) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif isLess(y.Field(i), x.Field(i)) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn false\n\tcase reflect.Interface:\n\t\tvx, vy := x.Elem(), y.Elem()\n\t\tif !vx.IsValid() || !vy.IsValid() {\n\t\t\treturn !vx.IsValid() && vy.IsValid()\n\t\t}\n\t\ttx, ty := vx.Type(), vy.Type()\n\t\tif tx == ty {\n\t\t\treturn isLess(x.Elem(), y.Elem())\n\t\t}\n\t\tif tx.Kind() != ty.Kind() {\n\t\t\treturn vx.Kind() < vy.Kind()\n\t\t}\n\t\tif tx.String() != ty.String() {\n\t\t\treturn tx.String() < ty.String()\n\t\t}\n\t\tif tx.PkgPath() != ty.PkgPath() {\n\t\t\treturn tx.PkgPath() < ty.PkgPath()\n\t\t}\n\t\t// This can happen in rare situations, so we fallback to just comparing\n\t\t// the unique pointer for a reflect.Type. This guarantees deterministic\n\t\t// ordering within a program, but it is obviously not stable.\n\t\treturn reflect.ValueOf(vx.Type()).Pointer() < reflect.ValueOf(vy.Type()).Pointer()\n\tdefault:\n\t\t// Must be Func, Map, or Slice; which are not comparable.\n\t\tpanic(fmt.Sprintf(\"%T is not comparable\", x.Type()))\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-cmp/cmp/options.go",
    "content": "// Copyright 2017, The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage cmp\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"strings\"\n\n\t\"github.com/google/go-cmp/cmp/internal/function\"\n)\n\n// Option configures for specific behavior of [Equal] and [Diff]. In particular,\n// the fundamental Option functions ([Ignore], [Transformer], and [Comparer]),\n// configure how equality is determined.\n//\n// The fundamental options may be composed with filters ([FilterPath] and\n// [FilterValues]) to control the scope over which they are applied.\n//\n// The [github.com/google/go-cmp/cmp/cmpopts] package provides helper functions\n// for creating options that may be used with [Equal] and [Diff].\ntype Option interface {\n\t// filter applies all filters and returns the option that remains.\n\t// Each option may only read s.curPath and call s.callTTBFunc.\n\t//\n\t// An Options is returned only if multiple comparers or transformers\n\t// can apply simultaneously and will only contain values of those types\n\t// or sub-Options containing values of those types.\n\tfilter(s *state, t reflect.Type, vx, vy reflect.Value) applicableOption\n}\n\n// applicableOption represents the following types:\n//\n//\tFundamental: ignore | validator | *comparer | *transformer\n//\tGrouping:    Options\ntype applicableOption interface {\n\tOption\n\n\t// apply executes the option, which may mutate s or panic.\n\tapply(s *state, vx, vy reflect.Value)\n}\n\n// coreOption represents the following types:\n//\n//\tFundamental: ignore | validator | *comparer | *transformer\n//\tFilters:     *pathFilter | *valuesFilter\ntype coreOption interface {\n\tOption\n\tisCore()\n}\n\ntype core struct{}\n\nfunc (core) isCore() {}\n\n// Options is a list of [Option] values that also satisfies the [Option] interface.\n// Helper comparison packages may return an Options value when packing multiple\n// [Option] values into a single [Option]. When this package processes an Options,\n// it will be implicitly expanded into a flat list.\n//\n// Applying a filter on an Options is equivalent to applying that same filter\n// on all individual options held within.\ntype Options []Option\n\nfunc (opts Options) filter(s *state, t reflect.Type, vx, vy reflect.Value) (out applicableOption) {\n\tfor _, opt := range opts {\n\t\tswitch opt := opt.filter(s, t, vx, vy); opt.(type) {\n\t\tcase ignore:\n\t\t\treturn ignore{} // Only ignore can short-circuit evaluation\n\t\tcase validator:\n\t\t\tout = validator{} // Takes precedence over comparer or transformer\n\t\tcase *comparer, *transformer, Options:\n\t\t\tswitch out.(type) {\n\t\t\tcase nil:\n\t\t\t\tout = opt\n\t\t\tcase validator:\n\t\t\t\t// Keep validator\n\t\t\tcase *comparer, *transformer, Options:\n\t\t\t\tout = Options{out, opt} // Conflicting comparers or transformers\n\t\t\t}\n\t\t}\n\t}\n\treturn out\n}\n\nfunc (opts Options) apply(s *state, _, _ reflect.Value) {\n\tconst warning = \"ambiguous set of applicable options\"\n\tconst help = \"consider using filters to ensure at most one Comparer or Transformer may apply\"\n\tvar ss []string\n\tfor _, opt := range flattenOptions(nil, opts) {\n\t\tss = append(ss, fmt.Sprint(opt))\n\t}\n\tset := strings.Join(ss, \"\\n\\t\")\n\tpanic(fmt.Sprintf(\"%s at %#v:\\n\\t%s\\n%s\", warning, s.curPath, set, help))\n}\n\nfunc (opts Options) String() string {\n\tvar ss []string\n\tfor _, opt := range opts {\n\t\tss = append(ss, fmt.Sprint(opt))\n\t}\n\treturn fmt.Sprintf(\"Options{%s}\", strings.Join(ss, \", \"))\n}\n\n// FilterPath returns a new [Option] where opt is only evaluated if filter f\n// returns true for the current [Path] in the value tree.\n//\n// This filter is called even if a slice element or map entry is missing and\n// provides an opportunity to ignore such cases. The filter function must be\n// symmetric such that the filter result is identical regardless of whether the\n// missing value is from x or y.\n//\n// The option passed in may be an [Ignore], [Transformer], [Comparer], [Options], or\n// a previously filtered [Option].\nfunc FilterPath(f func(Path) bool, opt Option) Option {\n\tif f == nil {\n\t\tpanic(\"invalid path filter function\")\n\t}\n\tif opt := normalizeOption(opt); opt != nil {\n\t\treturn &pathFilter{fnc: f, opt: opt}\n\t}\n\treturn nil\n}\n\ntype pathFilter struct {\n\tcore\n\tfnc func(Path) bool\n\topt Option\n}\n\nfunc (f pathFilter) filter(s *state, t reflect.Type, vx, vy reflect.Value) applicableOption {\n\tif f.fnc(s.curPath) {\n\t\treturn f.opt.filter(s, t, vx, vy)\n\t}\n\treturn nil\n}\n\nfunc (f pathFilter) String() string {\n\treturn fmt.Sprintf(\"FilterPath(%s, %v)\", function.NameOf(reflect.ValueOf(f.fnc)), f.opt)\n}\n\n// FilterValues returns a new [Option] where opt is only evaluated if filter f,\n// which is a function of the form \"func(T, T) bool\", returns true for the\n// current pair of values being compared. If either value is invalid or\n// the type of the values is not assignable to T, then this filter implicitly\n// returns false.\n//\n// The filter function must be\n// symmetric (i.e., agnostic to the order of the inputs) and\n// deterministic (i.e., produces the same result when given the same inputs).\n// If T is an interface, it is possible that f is called with two values with\n// different concrete types that both implement T.\n//\n// The option passed in may be an [Ignore], [Transformer], [Comparer], [Options], or\n// a previously filtered [Option].\nfunc FilterValues(f interface{}, opt Option) Option {\n\tv := reflect.ValueOf(f)\n\tif !function.IsType(v.Type(), function.ValueFilter) || v.IsNil() {\n\t\tpanic(fmt.Sprintf(\"invalid values filter function: %T\", f))\n\t}\n\tif opt := normalizeOption(opt); opt != nil {\n\t\tvf := &valuesFilter{fnc: v, opt: opt}\n\t\tif ti := v.Type().In(0); ti.Kind() != reflect.Interface || ti.NumMethod() > 0 {\n\t\t\tvf.typ = ti\n\t\t}\n\t\treturn vf\n\t}\n\treturn nil\n}\n\ntype valuesFilter struct {\n\tcore\n\ttyp reflect.Type  // T\n\tfnc reflect.Value // func(T, T) bool\n\topt Option\n}\n\nfunc (f valuesFilter) filter(s *state, t reflect.Type, vx, vy reflect.Value) applicableOption {\n\tif !vx.IsValid() || !vx.CanInterface() || !vy.IsValid() || !vy.CanInterface() {\n\t\treturn nil\n\t}\n\tif (f.typ == nil || t.AssignableTo(f.typ)) && s.callTTBFunc(f.fnc, vx, vy) {\n\t\treturn f.opt.filter(s, t, vx, vy)\n\t}\n\treturn nil\n}\n\nfunc (f valuesFilter) String() string {\n\treturn fmt.Sprintf(\"FilterValues(%s, %v)\", function.NameOf(f.fnc), f.opt)\n}\n\n// Ignore is an [Option] that causes all comparisons to be ignored.\n// This value is intended to be combined with [FilterPath] or [FilterValues].\n// It is an error to pass an unfiltered Ignore option to [Equal].\nfunc Ignore() Option { return ignore{} }\n\ntype ignore struct{ core }\n\nfunc (ignore) isFiltered() bool                                                     { return false }\nfunc (ignore) filter(_ *state, _ reflect.Type, _, _ reflect.Value) applicableOption { return ignore{} }\nfunc (ignore) apply(s *state, _, _ reflect.Value)                                   { s.report(true, reportByIgnore) }\nfunc (ignore) String() string                                                       { return \"Ignore()\" }\n\n// validator is a sentinel Option type to indicate that some options could not\n// be evaluated due to unexported fields, missing slice elements, or\n// missing map entries. Both values are validator only for unexported fields.\ntype validator struct{ core }\n\nfunc (validator) filter(_ *state, _ reflect.Type, vx, vy reflect.Value) applicableOption {\n\tif !vx.IsValid() || !vy.IsValid() {\n\t\treturn validator{}\n\t}\n\tif !vx.CanInterface() || !vy.CanInterface() {\n\t\treturn validator{}\n\t}\n\treturn nil\n}\nfunc (validator) apply(s *state, vx, vy reflect.Value) {\n\t// Implies missing slice element or map entry.\n\tif !vx.IsValid() || !vy.IsValid() {\n\t\ts.report(vx.IsValid() == vy.IsValid(), 0)\n\t\treturn\n\t}\n\n\t// Unable to Interface implies unexported field without visibility access.\n\tif !vx.CanInterface() || !vy.CanInterface() {\n\t\thelp := \"consider using a custom Comparer; if you control the implementation of type, you can also consider using an Exporter, AllowUnexported, or cmpopts.IgnoreUnexported\"\n\t\tvar name string\n\t\tif t := s.curPath.Index(-2).Type(); t.Name() != \"\" {\n\t\t\t// Named type with unexported fields.\n\t\t\tname = fmt.Sprintf(\"%q.%v\", t.PkgPath(), t.Name()) // e.g., \"path/to/package\".MyType\n\t\t\tif _, ok := reflect.New(t).Interface().(error); ok {\n\t\t\t\thelp = \"consider using cmpopts.EquateErrors to compare error values\"\n\t\t\t} else if t.Comparable() {\n\t\t\t\thelp = \"consider using cmpopts.EquateComparable to compare comparable Go types\"\n\t\t\t}\n\t\t} else {\n\t\t\t// Unnamed type with unexported fields. Derive PkgPath from field.\n\t\t\tvar pkgPath string\n\t\t\tfor i := 0; i < t.NumField() && pkgPath == \"\"; i++ {\n\t\t\t\tpkgPath = t.Field(i).PkgPath\n\t\t\t}\n\t\t\tname = fmt.Sprintf(\"%q.(%v)\", pkgPath, t.String()) // e.g., \"path/to/package\".(struct { a int })\n\t\t}\n\t\tpanic(fmt.Sprintf(\"cannot handle unexported field at %#v:\\n\\t%v\\n%s\", s.curPath, name, help))\n\t}\n\n\tpanic(\"not reachable\")\n}\n\n// identRx represents a valid identifier according to the Go specification.\nconst identRx = `[_\\p{L}][_\\p{L}\\p{N}]*`\n\nvar identsRx = regexp.MustCompile(`^` + identRx + `(\\.` + identRx + `)*$`)\n\n// Transformer returns an [Option] that applies a transformation function that\n// converts values of a certain type into that of another.\n//\n// The transformer f must be a function \"func(T) R\" that converts values of\n// type T to those of type R and is implicitly filtered to input values\n// assignable to T. The transformer must not mutate T in any way.\n//\n// To help prevent some cases of infinite recursive cycles applying the\n// same transform to the output of itself (e.g., in the case where the\n// input and output types are the same), an implicit filter is added such that\n// a transformer is applicable only if that exact transformer is not already\n// in the tail of the [Path] since the last non-[Transform] step.\n// For situations where the implicit filter is still insufficient,\n// consider using [github.com/google/go-cmp/cmp/cmpopts.AcyclicTransformer],\n// which adds a filter to prevent the transformer from\n// being recursively applied upon itself.\n//\n// The name is a user provided label that is used as the [Transform.Name] in the\n// transformation [PathStep] (and eventually shown in the [Diff] output).\n// The name must be a valid identifier or qualified identifier in Go syntax.\n// If empty, an arbitrary name is used.\nfunc Transformer(name string, f interface{}) Option {\n\tv := reflect.ValueOf(f)\n\tif !function.IsType(v.Type(), function.Transformer) || v.IsNil() {\n\t\tpanic(fmt.Sprintf(\"invalid transformer function: %T\", f))\n\t}\n\tif name == \"\" {\n\t\tname = function.NameOf(v)\n\t\tif !identsRx.MatchString(name) {\n\t\t\tname = \"λ\" // Lambda-symbol as placeholder name\n\t\t}\n\t} else if !identsRx.MatchString(name) {\n\t\tpanic(fmt.Sprintf(\"invalid name: %q\", name))\n\t}\n\ttr := &transformer{name: name, fnc: reflect.ValueOf(f)}\n\tif ti := v.Type().In(0); ti.Kind() != reflect.Interface || ti.NumMethod() > 0 {\n\t\ttr.typ = ti\n\t}\n\treturn tr\n}\n\ntype transformer struct {\n\tcore\n\tname string\n\ttyp  reflect.Type  // T\n\tfnc  reflect.Value // func(T) R\n}\n\nfunc (tr *transformer) isFiltered() bool { return tr.typ != nil }\n\nfunc (tr *transformer) filter(s *state, t reflect.Type, _, _ reflect.Value) applicableOption {\n\tfor i := len(s.curPath) - 1; i >= 0; i-- {\n\t\tif t, ok := s.curPath[i].(Transform); !ok {\n\t\t\tbreak // Hit most recent non-Transform step\n\t\t} else if tr == t.trans {\n\t\t\treturn nil // Cannot directly use same Transform\n\t\t}\n\t}\n\tif tr.typ == nil || t.AssignableTo(tr.typ) {\n\t\treturn tr\n\t}\n\treturn nil\n}\n\nfunc (tr *transformer) apply(s *state, vx, vy reflect.Value) {\n\tstep := Transform{&transform{pathStep{typ: tr.fnc.Type().Out(0)}, tr}}\n\tvvx := s.callTRFunc(tr.fnc, vx, step)\n\tvvy := s.callTRFunc(tr.fnc, vy, step)\n\tstep.vx, step.vy = vvx, vvy\n\ts.compareAny(step)\n}\n\nfunc (tr transformer) String() string {\n\treturn fmt.Sprintf(\"Transformer(%s, %s)\", tr.name, function.NameOf(tr.fnc))\n}\n\n// Comparer returns an [Option] that determines whether two values are equal\n// to each other.\n//\n// The comparer f must be a function \"func(T, T) bool\" and is implicitly\n// filtered to input values assignable to T. If T is an interface, it is\n// possible that f is called with two values of different concrete types that\n// both implement T.\n//\n// The equality function must be:\n//   - Symmetric: equal(x, y) == equal(y, x)\n//   - Deterministic: equal(x, y) == equal(x, y)\n//   - Pure: equal(x, y) does not modify x or y\nfunc Comparer(f interface{}) Option {\n\tv := reflect.ValueOf(f)\n\tif !function.IsType(v.Type(), function.Equal) || v.IsNil() {\n\t\tpanic(fmt.Sprintf(\"invalid comparer function: %T\", f))\n\t}\n\tcm := &comparer{fnc: v}\n\tif ti := v.Type().In(0); ti.Kind() != reflect.Interface || ti.NumMethod() > 0 {\n\t\tcm.typ = ti\n\t}\n\treturn cm\n}\n\ntype comparer struct {\n\tcore\n\ttyp reflect.Type  // T\n\tfnc reflect.Value // func(T, T) bool\n}\n\nfunc (cm *comparer) isFiltered() bool { return cm.typ != nil }\n\nfunc (cm *comparer) filter(_ *state, t reflect.Type, _, _ reflect.Value) applicableOption {\n\tif cm.typ == nil || t.AssignableTo(cm.typ) {\n\t\treturn cm\n\t}\n\treturn nil\n}\n\nfunc (cm *comparer) apply(s *state, vx, vy reflect.Value) {\n\teq := s.callTTBFunc(cm.fnc, vx, vy)\n\ts.report(eq, reportByFunc)\n}\n\nfunc (cm comparer) String() string {\n\treturn fmt.Sprintf(\"Comparer(%s)\", function.NameOf(cm.fnc))\n}\n\n// Exporter returns an [Option] that specifies whether [Equal] is allowed to\n// introspect into the unexported fields of certain struct types.\n//\n// Users of this option must understand that comparing on unexported fields\n// from external packages is not safe since changes in the internal\n// implementation of some external package may cause the result of [Equal]\n// to unexpectedly change. However, it may be valid to use this option on types\n// defined in an internal package where the semantic meaning of an unexported\n// field is in the control of the user.\n//\n// In many cases, a custom [Comparer] should be used instead that defines\n// equality as a function of the public API of a type rather than the underlying\n// unexported implementation.\n//\n// For example, the [reflect.Type] documentation defines equality to be determined\n// by the == operator on the interface (essentially performing a shallow pointer\n// comparison) and most attempts to compare *[regexp.Regexp] types are interested\n// in only checking that the regular expression strings are equal.\n// Both of these are accomplished using [Comparer] options:\n//\n//\tComparer(func(x, y reflect.Type) bool { return x == y })\n//\tComparer(func(x, y *regexp.Regexp) bool { return x.String() == y.String() })\n//\n// In other cases, the [github.com/google/go-cmp/cmp/cmpopts.IgnoreUnexported]\n// option can be used to ignore all unexported fields on specified struct types.\nfunc Exporter(f func(reflect.Type) bool) Option {\n\treturn exporter(f)\n}\n\ntype exporter func(reflect.Type) bool\n\nfunc (exporter) filter(_ *state, _ reflect.Type, _, _ reflect.Value) applicableOption {\n\tpanic(\"not implemented\")\n}\n\n// AllowUnexported returns an [Option] that allows [Equal] to forcibly introspect\n// unexported fields of the specified struct types.\n//\n// See [Exporter] for the proper use of this option.\nfunc AllowUnexported(types ...interface{}) Option {\n\tm := make(map[reflect.Type]bool)\n\tfor _, typ := range types {\n\t\tt := reflect.TypeOf(typ)\n\t\tif t.Kind() != reflect.Struct {\n\t\t\tpanic(fmt.Sprintf(\"invalid struct type: %T\", typ))\n\t\t}\n\t\tm[t] = true\n\t}\n\treturn exporter(func(t reflect.Type) bool { return m[t] })\n}\n\n// Result represents the comparison result for a single node and\n// is provided by cmp when calling Report (see [Reporter]).\ntype Result struct {\n\t_     [0]func() // Make Result incomparable\n\tflags resultFlags\n}\n\n// Equal reports whether the node was determined to be equal or not.\n// As a special case, ignored nodes are considered equal.\nfunc (r Result) Equal() bool {\n\treturn r.flags&(reportEqual|reportByIgnore) != 0\n}\n\n// ByIgnore reports whether the node is equal because it was ignored.\n// This never reports true if [Result.Equal] reports false.\nfunc (r Result) ByIgnore() bool {\n\treturn r.flags&reportByIgnore != 0\n}\n\n// ByMethod reports whether the Equal method determined equality.\nfunc (r Result) ByMethod() bool {\n\treturn r.flags&reportByMethod != 0\n}\n\n// ByFunc reports whether a [Comparer] function determined equality.\nfunc (r Result) ByFunc() bool {\n\treturn r.flags&reportByFunc != 0\n}\n\n// ByCycle reports whether a reference cycle was detected.\nfunc (r Result) ByCycle() bool {\n\treturn r.flags&reportByCycle != 0\n}\n\ntype resultFlags uint\n\nconst (\n\t_ resultFlags = (1 << iota) / 2\n\n\treportEqual\n\treportUnequal\n\treportByIgnore\n\treportByMethod\n\treportByFunc\n\treportByCycle\n)\n\n// Reporter is an [Option] that can be passed to [Equal]. When [Equal] traverses\n// the value trees, it calls PushStep as it descends into each node in the\n// tree and PopStep as it ascend out of the node. The leaves of the tree are\n// either compared (determined to be equal or not equal) or ignored and reported\n// as such by calling the Report method.\nfunc Reporter(r interface {\n\t// PushStep is called when a tree-traversal operation is performed.\n\t// The PathStep itself is only valid until the step is popped.\n\t// The PathStep.Values are valid for the duration of the entire traversal\n\t// and must not be mutated.\n\t//\n\t// Equal always calls PushStep at the start to provide an operation-less\n\t// PathStep used to report the root values.\n\t//\n\t// Within a slice, the exact set of inserted, removed, or modified elements\n\t// is unspecified and may change in future implementations.\n\t// The entries of a map are iterated through in an unspecified order.\n\tPushStep(PathStep)\n\n\t// Report is called exactly once on leaf nodes to report whether the\n\t// comparison identified the node as equal, unequal, or ignored.\n\t// A leaf node is one that is immediately preceded by and followed by\n\t// a pair of PushStep and PopStep calls.\n\tReport(Result)\n\n\t// PopStep ascends back up the value tree.\n\t// There is always a matching pop call for every push call.\n\tPopStep()\n}) Option {\n\treturn reporter{r}\n}\n\ntype reporter struct{ reporterIface }\ntype reporterIface interface {\n\tPushStep(PathStep)\n\tReport(Result)\n\tPopStep()\n}\n\nfunc (reporter) filter(_ *state, _ reflect.Type, _, _ reflect.Value) applicableOption {\n\tpanic(\"not implemented\")\n}\n\n// normalizeOption normalizes the input options such that all Options groups\n// are flattened and groups with a single element are reduced to that element.\n// Only coreOptions and Options containing coreOptions are allowed.\nfunc normalizeOption(src Option) Option {\n\tswitch opts := flattenOptions(nil, Options{src}); len(opts) {\n\tcase 0:\n\t\treturn nil\n\tcase 1:\n\t\treturn opts[0]\n\tdefault:\n\t\treturn opts\n\t}\n}\n\n// flattenOptions copies all options in src to dst as a flat list.\n// Only coreOptions and Options containing coreOptions are allowed.\nfunc flattenOptions(dst, src Options) Options {\n\tfor _, opt := range src {\n\t\tswitch opt := opt.(type) {\n\t\tcase nil:\n\t\t\tcontinue\n\t\tcase Options:\n\t\t\tdst = flattenOptions(dst, opt)\n\t\tcase coreOption:\n\t\t\tdst = append(dst, opt)\n\t\tdefault:\n\t\t\tpanic(fmt.Sprintf(\"invalid option type: %T\", opt))\n\t\t}\n\t}\n\treturn dst\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-cmp/cmp/path.go",
    "content": "// Copyright 2017, The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage cmp\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n\t\"unicode\"\n\t\"unicode/utf8\"\n\n\t\"github.com/google/go-cmp/cmp/internal/value\"\n)\n\n// Path is a list of [PathStep] describing the sequence of operations to get\n// from some root type to the current position in the value tree.\n// The first Path element is always an operation-less [PathStep] that exists\n// simply to identify the initial type.\n//\n// When traversing structs with embedded structs, the embedded struct will\n// always be accessed as a field before traversing the fields of the\n// embedded struct themselves. That is, an exported field from the\n// embedded struct will never be accessed directly from the parent struct.\ntype Path []PathStep\n\n// PathStep is a union-type for specific operations to traverse\n// a value's tree structure. Users of this package never need to implement\n// these types as values of this type will be returned by this package.\n//\n// Implementations of this interface:\n//   - [StructField]\n//   - [SliceIndex]\n//   - [MapIndex]\n//   - [Indirect]\n//   - [TypeAssertion]\n//   - [Transform]\ntype PathStep interface {\n\tString() string\n\n\t// Type is the resulting type after performing the path step.\n\tType() reflect.Type\n\n\t// Values is the resulting values after performing the path step.\n\t// The type of each valid value is guaranteed to be identical to Type.\n\t//\n\t// In some cases, one or both may be invalid or have restrictions:\n\t//   - For StructField, both are not interface-able if the current field\n\t//     is unexported and the struct type is not explicitly permitted by\n\t//     an Exporter to traverse unexported fields.\n\t//   - For SliceIndex, one may be invalid if an element is missing from\n\t//     either the x or y slice.\n\t//   - For MapIndex, one may be invalid if an entry is missing from\n\t//     either the x or y map.\n\t//\n\t// The provided values must not be mutated.\n\tValues() (vx, vy reflect.Value)\n}\n\nvar (\n\t_ PathStep = StructField{}\n\t_ PathStep = SliceIndex{}\n\t_ PathStep = MapIndex{}\n\t_ PathStep = Indirect{}\n\t_ PathStep = TypeAssertion{}\n\t_ PathStep = Transform{}\n)\n\nfunc (pa *Path) push(s PathStep) {\n\t*pa = append(*pa, s)\n}\n\nfunc (pa *Path) pop() {\n\t*pa = (*pa)[:len(*pa)-1]\n}\n\n// Last returns the last [PathStep] in the Path.\n// If the path is empty, this returns a non-nil [PathStep]\n// that reports a nil [PathStep.Type].\nfunc (pa Path) Last() PathStep {\n\treturn pa.Index(-1)\n}\n\n// Index returns the ith step in the Path and supports negative indexing.\n// A negative index starts counting from the tail of the Path such that -1\n// refers to the last step, -2 refers to the second-to-last step, and so on.\n// If index is invalid, this returns a non-nil [PathStep]\n// that reports a nil [PathStep.Type].\nfunc (pa Path) Index(i int) PathStep {\n\tif i < 0 {\n\t\ti = len(pa) + i\n\t}\n\tif i < 0 || i >= len(pa) {\n\t\treturn pathStep{}\n\t}\n\treturn pa[i]\n}\n\n// String returns the simplified path to a node.\n// The simplified path only contains struct field accesses.\n//\n// For example:\n//\n//\tMyMap.MySlices.MyField\nfunc (pa Path) String() string {\n\tvar ss []string\n\tfor _, s := range pa {\n\t\tif _, ok := s.(StructField); ok {\n\t\t\tss = append(ss, s.String())\n\t\t}\n\t}\n\treturn strings.TrimPrefix(strings.Join(ss, \"\"), \".\")\n}\n\n// GoString returns the path to a specific node using Go syntax.\n//\n// For example:\n//\n//\t(*root.MyMap[\"key\"].(*mypkg.MyStruct).MySlices)[2][3].MyField\nfunc (pa Path) GoString() string {\n\tvar ssPre, ssPost []string\n\tvar numIndirect int\n\tfor i, s := range pa {\n\t\tvar nextStep PathStep\n\t\tif i+1 < len(pa) {\n\t\t\tnextStep = pa[i+1]\n\t\t}\n\t\tswitch s := s.(type) {\n\t\tcase Indirect:\n\t\t\tnumIndirect++\n\t\t\tpPre, pPost := \"(\", \")\"\n\t\t\tswitch nextStep.(type) {\n\t\t\tcase Indirect:\n\t\t\t\tcontinue // Next step is indirection, so let them batch up\n\t\t\tcase StructField:\n\t\t\t\tnumIndirect-- // Automatic indirection on struct fields\n\t\t\tcase nil:\n\t\t\t\tpPre, pPost = \"\", \"\" // Last step; no need for parenthesis\n\t\t\t}\n\t\t\tif numIndirect > 0 {\n\t\t\t\tssPre = append(ssPre, pPre+strings.Repeat(\"*\", numIndirect))\n\t\t\t\tssPost = append(ssPost, pPost)\n\t\t\t}\n\t\t\tnumIndirect = 0\n\t\t\tcontinue\n\t\tcase Transform:\n\t\t\tssPre = append(ssPre, s.trans.name+\"(\")\n\t\t\tssPost = append(ssPost, \")\")\n\t\t\tcontinue\n\t\t}\n\t\tssPost = append(ssPost, s.String())\n\t}\n\tfor i, j := 0, len(ssPre)-1; i < j; i, j = i+1, j-1 {\n\t\tssPre[i], ssPre[j] = ssPre[j], ssPre[i]\n\t}\n\treturn strings.Join(ssPre, \"\") + strings.Join(ssPost, \"\")\n}\n\ntype pathStep struct {\n\ttyp    reflect.Type\n\tvx, vy reflect.Value\n}\n\nfunc (ps pathStep) Type() reflect.Type             { return ps.typ }\nfunc (ps pathStep) Values() (vx, vy reflect.Value) { return ps.vx, ps.vy }\nfunc (ps pathStep) String() string {\n\tif ps.typ == nil {\n\t\treturn \"<nil>\"\n\t}\n\ts := value.TypeString(ps.typ, false)\n\tif s == \"\" || strings.ContainsAny(s, \"{}\\n\") {\n\t\treturn \"root\" // Type too simple or complex to print\n\t}\n\treturn fmt.Sprintf(\"{%s}\", s)\n}\n\n// StructField is a [PathStep] that represents a struct field access\n// on a field called [StructField.Name].\ntype StructField struct{ *structField }\ntype structField struct {\n\tpathStep\n\tname string\n\tidx  int\n\n\t// These fields are used for forcibly accessing an unexported field.\n\t// pvx, pvy, and field are only valid if unexported is true.\n\tunexported bool\n\tmayForce   bool                // Forcibly allow visibility\n\tpaddr      bool                // Was parent addressable?\n\tpvx, pvy   reflect.Value       // Parent values (always addressable)\n\tfield      reflect.StructField // Field information\n}\n\nfunc (sf StructField) Type() reflect.Type { return sf.typ }\nfunc (sf StructField) Values() (vx, vy reflect.Value) {\n\tif !sf.unexported {\n\t\treturn sf.vx, sf.vy // CanInterface reports true\n\t}\n\n\t// Forcibly obtain read-write access to an unexported struct field.\n\tif sf.mayForce {\n\t\tvx = retrieveUnexportedField(sf.pvx, sf.field, sf.paddr)\n\t\tvy = retrieveUnexportedField(sf.pvy, sf.field, sf.paddr)\n\t\treturn vx, vy // CanInterface reports true\n\t}\n\treturn sf.vx, sf.vy // CanInterface reports false\n}\nfunc (sf StructField) String() string { return fmt.Sprintf(\".%s\", sf.name) }\n\n// Name is the field name.\nfunc (sf StructField) Name() string { return sf.name }\n\n// Index is the index of the field in the parent struct type.\n// See [reflect.Type.Field].\nfunc (sf StructField) Index() int { return sf.idx }\n\n// SliceIndex is a [PathStep] that represents an index operation on\n// a slice or array at some index [SliceIndex.Key].\ntype SliceIndex struct{ *sliceIndex }\ntype sliceIndex struct {\n\tpathStep\n\txkey, ykey int\n\tisSlice    bool // False for reflect.Array\n}\n\nfunc (si SliceIndex) Type() reflect.Type             { return si.typ }\nfunc (si SliceIndex) Values() (vx, vy reflect.Value) { return si.vx, si.vy }\nfunc (si SliceIndex) String() string {\n\tswitch {\n\tcase si.xkey == si.ykey:\n\t\treturn fmt.Sprintf(\"[%d]\", si.xkey)\n\tcase si.ykey == -1:\n\t\t// [5->?] means \"I don't know where X[5] went\"\n\t\treturn fmt.Sprintf(\"[%d->?]\", si.xkey)\n\tcase si.xkey == -1:\n\t\t// [?->3] means \"I don't know where Y[3] came from\"\n\t\treturn fmt.Sprintf(\"[?->%d]\", si.ykey)\n\tdefault:\n\t\t// [5->3] means \"X[5] moved to Y[3]\"\n\t\treturn fmt.Sprintf(\"[%d->%d]\", si.xkey, si.ykey)\n\t}\n}\n\n// Key is the index key; it may return -1 if in a split state\nfunc (si SliceIndex) Key() int {\n\tif si.xkey != si.ykey {\n\t\treturn -1\n\t}\n\treturn si.xkey\n}\n\n// SplitKeys are the indexes for indexing into slices in the\n// x and y values, respectively. These indexes may differ due to the\n// insertion or removal of an element in one of the slices, causing\n// all of the indexes to be shifted. If an index is -1, then that\n// indicates that the element does not exist in the associated slice.\n//\n// [SliceIndex.Key] is guaranteed to return -1 if and only if the indexes\n// returned by SplitKeys are not the same. SplitKeys will never return -1 for\n// both indexes.\nfunc (si SliceIndex) SplitKeys() (ix, iy int) { return si.xkey, si.ykey }\n\n// MapIndex is a [PathStep] that represents an index operation on a map at some index Key.\ntype MapIndex struct{ *mapIndex }\ntype mapIndex struct {\n\tpathStep\n\tkey reflect.Value\n}\n\nfunc (mi MapIndex) Type() reflect.Type             { return mi.typ }\nfunc (mi MapIndex) Values() (vx, vy reflect.Value) { return mi.vx, mi.vy }\nfunc (mi MapIndex) String() string                 { return fmt.Sprintf(\"[%#v]\", mi.key) }\n\n// Key is the value of the map key.\nfunc (mi MapIndex) Key() reflect.Value { return mi.key }\n\n// Indirect is a [PathStep] that represents pointer indirection on the parent type.\ntype Indirect struct{ *indirect }\ntype indirect struct {\n\tpathStep\n}\n\nfunc (in Indirect) Type() reflect.Type             { return in.typ }\nfunc (in Indirect) Values() (vx, vy reflect.Value) { return in.vx, in.vy }\nfunc (in Indirect) String() string                 { return \"*\" }\n\n// TypeAssertion is a [PathStep] that represents a type assertion on an interface.\ntype TypeAssertion struct{ *typeAssertion }\ntype typeAssertion struct {\n\tpathStep\n}\n\nfunc (ta TypeAssertion) Type() reflect.Type             { return ta.typ }\nfunc (ta TypeAssertion) Values() (vx, vy reflect.Value) { return ta.vx, ta.vy }\nfunc (ta TypeAssertion) String() string                 { return fmt.Sprintf(\".(%v)\", value.TypeString(ta.typ, false)) }\n\n// Transform is a [PathStep] that represents a transformation\n// from the parent type to the current type.\ntype Transform struct{ *transform }\ntype transform struct {\n\tpathStep\n\ttrans *transformer\n}\n\nfunc (tf Transform) Type() reflect.Type             { return tf.typ }\nfunc (tf Transform) Values() (vx, vy reflect.Value) { return tf.vx, tf.vy }\nfunc (tf Transform) String() string                 { return fmt.Sprintf(\"%s()\", tf.trans.name) }\n\n// Name is the name of the [Transformer].\nfunc (tf Transform) Name() string { return tf.trans.name }\n\n// Func is the function pointer to the transformer function.\nfunc (tf Transform) Func() reflect.Value { return tf.trans.fnc }\n\n// Option returns the originally constructed [Transformer] option.\n// The == operator can be used to detect the exact option used.\nfunc (tf Transform) Option() Option { return tf.trans }\n\n// pointerPath represents a dual-stack of pointers encountered when\n// recursively traversing the x and y values. This data structure supports\n// detection of cycles and determining whether the cycles are equal.\n// In Go, cycles can occur via pointers, slices, and maps.\n//\n// The pointerPath uses a map to represent a stack; where descension into a\n// pointer pushes the address onto the stack, and ascension from a pointer\n// pops the address from the stack. Thus, when traversing into a pointer from\n// reflect.Ptr, reflect.Slice element, or reflect.Map, we can detect cycles\n// by checking whether the pointer has already been visited. The cycle detection\n// uses a separate stack for the x and y values.\n//\n// If a cycle is detected we need to determine whether the two pointers\n// should be considered equal. The definition of equality chosen by Equal\n// requires two graphs to have the same structure. To determine this, both the\n// x and y values must have a cycle where the previous pointers were also\n// encountered together as a pair.\n//\n// Semantically, this is equivalent to augmenting Indirect, SliceIndex, and\n// MapIndex with pointer information for the x and y values.\n// Suppose px and py are two pointers to compare, we then search the\n// Path for whether px was ever encountered in the Path history of x, and\n// similarly so with py. If either side has a cycle, the comparison is only\n// equal if both px and py have a cycle resulting from the same PathStep.\n//\n// Using a map as a stack is more performant as we can perform cycle detection\n// in O(1) instead of O(N) where N is len(Path).\ntype pointerPath struct {\n\t// mx is keyed by x pointers, where the value is the associated y pointer.\n\tmx map[value.Pointer]value.Pointer\n\t// my is keyed by y pointers, where the value is the associated x pointer.\n\tmy map[value.Pointer]value.Pointer\n}\n\nfunc (p *pointerPath) Init() {\n\tp.mx = make(map[value.Pointer]value.Pointer)\n\tp.my = make(map[value.Pointer]value.Pointer)\n}\n\n// Push indicates intent to descend into pointers vx and vy where\n// visited reports whether either has been seen before. If visited before,\n// equal reports whether both pointers were encountered together.\n// Pop must be called if and only if the pointers were never visited.\n//\n// The pointers vx and vy must be a reflect.Ptr, reflect.Slice, or reflect.Map\n// and be non-nil.\nfunc (p pointerPath) Push(vx, vy reflect.Value) (equal, visited bool) {\n\tpx := value.PointerOf(vx)\n\tpy := value.PointerOf(vy)\n\t_, ok1 := p.mx[px]\n\t_, ok2 := p.my[py]\n\tif ok1 || ok2 {\n\t\tequal = p.mx[px] == py && p.my[py] == px // Pointers paired together\n\t\treturn equal, true\n\t}\n\tp.mx[px] = py\n\tp.my[py] = px\n\treturn false, false\n}\n\n// Pop ascends from pointers vx and vy.\nfunc (p pointerPath) Pop(vx, vy reflect.Value) {\n\tdelete(p.mx, value.PointerOf(vx))\n\tdelete(p.my, value.PointerOf(vy))\n}\n\n// isExported reports whether the identifier is exported.\nfunc isExported(id string) bool {\n\tr, _ := utf8.DecodeRuneInString(id)\n\treturn unicode.IsUpper(r)\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-cmp/cmp/report.go",
    "content": "// Copyright 2017, The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage cmp\n\n// defaultReporter implements the reporter interface.\n//\n// As Equal serially calls the PushStep, Report, and PopStep methods, the\n// defaultReporter constructs a tree-based representation of the compared value\n// and the result of each comparison (see valueNode).\n//\n// When the String method is called, the FormatDiff method transforms the\n// valueNode tree into a textNode tree, which is a tree-based representation\n// of the textual output (see textNode).\n//\n// Lastly, the textNode.String method produces the final report as a string.\ntype defaultReporter struct {\n\troot *valueNode\n\tcurr *valueNode\n}\n\nfunc (r *defaultReporter) PushStep(ps PathStep) {\n\tr.curr = r.curr.PushStep(ps)\n\tif r.root == nil {\n\t\tr.root = r.curr\n\t}\n}\nfunc (r *defaultReporter) Report(rs Result) {\n\tr.curr.Report(rs)\n}\nfunc (r *defaultReporter) PopStep() {\n\tr.curr = r.curr.PopStep()\n}\n\n// String provides a full report of the differences detected as a structured\n// literal in pseudo-Go syntax. String may only be called after the entire tree\n// has been traversed.\nfunc (r *defaultReporter) String() string {\n\tassert(r.root != nil && r.curr == nil)\n\tif r.root.NumDiff == 0 {\n\t\treturn \"\"\n\t}\n\tptrs := new(pointerReferences)\n\ttext := formatOptions{}.FormatDiff(r.root, ptrs)\n\tresolveReferences(text)\n\treturn text.String()\n}\n\nfunc assert(ok bool) {\n\tif !ok {\n\t\tpanic(\"assertion failure\")\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-cmp/cmp/report_compare.go",
    "content": "// Copyright 2019, The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage cmp\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n)\n\n// numContextRecords is the number of surrounding equal records to print.\nconst numContextRecords = 2\n\ntype diffMode byte\n\nconst (\n\tdiffUnknown   diffMode = 0\n\tdiffIdentical diffMode = ' '\n\tdiffRemoved   diffMode = '-'\n\tdiffInserted  diffMode = '+'\n)\n\ntype typeMode int\n\nconst (\n\t// emitType always prints the type.\n\temitType typeMode = iota\n\t// elideType never prints the type.\n\telideType\n\t// autoType prints the type only for composite kinds\n\t// (i.e., structs, slices, arrays, and maps).\n\tautoType\n)\n\ntype formatOptions struct {\n\t// DiffMode controls the output mode of FormatDiff.\n\t//\n\t// If diffUnknown,   then produce a diff of the x and y values.\n\t// If diffIdentical, then emit values as if they were equal.\n\t// If diffRemoved,   then only emit x values (ignoring y values).\n\t// If diffInserted,  then only emit y values (ignoring x values).\n\tDiffMode diffMode\n\n\t// TypeMode controls whether to print the type for the current node.\n\t//\n\t// As a general rule of thumb, we always print the type of the next node\n\t// after an interface, and always elide the type of the next node after\n\t// a slice or map node.\n\tTypeMode typeMode\n\n\t// formatValueOptions are options specific to printing reflect.Values.\n\tformatValueOptions\n}\n\nfunc (opts formatOptions) WithDiffMode(d diffMode) formatOptions {\n\topts.DiffMode = d\n\treturn opts\n}\nfunc (opts formatOptions) WithTypeMode(t typeMode) formatOptions {\n\topts.TypeMode = t\n\treturn opts\n}\nfunc (opts formatOptions) WithVerbosity(level int) formatOptions {\n\topts.VerbosityLevel = level\n\topts.LimitVerbosity = true\n\treturn opts\n}\nfunc (opts formatOptions) verbosity() uint {\n\tswitch {\n\tcase opts.VerbosityLevel < 0:\n\t\treturn 0\n\tcase opts.VerbosityLevel > 16:\n\t\treturn 16 // some reasonable maximum to avoid shift overflow\n\tdefault:\n\t\treturn uint(opts.VerbosityLevel)\n\t}\n}\n\nconst maxVerbosityPreset = 6\n\n// verbosityPreset modifies the verbosity settings given an index\n// between 0 and maxVerbosityPreset, inclusive.\nfunc verbosityPreset(opts formatOptions, i int) formatOptions {\n\topts.VerbosityLevel = int(opts.verbosity()) + 2*i\n\tif i > 0 {\n\t\topts.AvoidStringer = true\n\t}\n\tif i >= maxVerbosityPreset {\n\t\topts.PrintAddresses = true\n\t\topts.QualifiedNames = true\n\t}\n\treturn opts\n}\n\n// FormatDiff converts a valueNode tree into a textNode tree, where the later\n// is a textual representation of the differences detected in the former.\nfunc (opts formatOptions) FormatDiff(v *valueNode, ptrs *pointerReferences) (out textNode) {\n\tif opts.DiffMode == diffIdentical {\n\t\topts = opts.WithVerbosity(1)\n\t} else if opts.verbosity() < 3 {\n\t\topts = opts.WithVerbosity(3)\n\t}\n\n\t// Check whether we have specialized formatting for this node.\n\t// This is not necessary, but helpful for producing more readable outputs.\n\tif opts.CanFormatDiffSlice(v) {\n\t\treturn opts.FormatDiffSlice(v)\n\t}\n\n\tvar parentKind reflect.Kind\n\tif v.parent != nil && v.parent.TransformerName == \"\" {\n\t\tparentKind = v.parent.Type.Kind()\n\t}\n\n\t// For leaf nodes, format the value based on the reflect.Values alone.\n\t// As a special case, treat equal []byte as a leaf nodes.\n\tisBytes := v.Type.Kind() == reflect.Slice && v.Type.Elem() == byteType\n\tisEqualBytes := isBytes && v.NumDiff+v.NumIgnored+v.NumTransformed == 0\n\tif v.MaxDepth == 0 || isEqualBytes {\n\t\tswitch opts.DiffMode {\n\t\tcase diffUnknown, diffIdentical:\n\t\t\t// Format Equal.\n\t\t\tif v.NumDiff == 0 {\n\t\t\t\toutx := opts.FormatValue(v.ValueX, parentKind, ptrs)\n\t\t\t\touty := opts.FormatValue(v.ValueY, parentKind, ptrs)\n\t\t\t\tif v.NumIgnored > 0 && v.NumSame == 0 {\n\t\t\t\t\treturn textEllipsis\n\t\t\t\t} else if outx.Len() < outy.Len() {\n\t\t\t\t\treturn outx\n\t\t\t\t} else {\n\t\t\t\t\treturn outy\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Format unequal.\n\t\t\tassert(opts.DiffMode == diffUnknown)\n\t\t\tvar list textList\n\t\t\toutx := opts.WithTypeMode(elideType).FormatValue(v.ValueX, parentKind, ptrs)\n\t\t\touty := opts.WithTypeMode(elideType).FormatValue(v.ValueY, parentKind, ptrs)\n\t\t\tfor i := 0; i <= maxVerbosityPreset && outx != nil && outy != nil && outx.Equal(outy); i++ {\n\t\t\t\topts2 := verbosityPreset(opts, i).WithTypeMode(elideType)\n\t\t\t\toutx = opts2.FormatValue(v.ValueX, parentKind, ptrs)\n\t\t\t\touty = opts2.FormatValue(v.ValueY, parentKind, ptrs)\n\t\t\t}\n\t\t\tif outx != nil {\n\t\t\t\tlist = append(list, textRecord{Diff: '-', Value: outx})\n\t\t\t}\n\t\t\tif outy != nil {\n\t\t\t\tlist = append(list, textRecord{Diff: '+', Value: outy})\n\t\t\t}\n\t\t\treturn opts.WithTypeMode(emitType).FormatType(v.Type, list)\n\t\tcase diffRemoved:\n\t\t\treturn opts.FormatValue(v.ValueX, parentKind, ptrs)\n\t\tcase diffInserted:\n\t\t\treturn opts.FormatValue(v.ValueY, parentKind, ptrs)\n\t\tdefault:\n\t\t\tpanic(\"invalid diff mode\")\n\t\t}\n\t}\n\n\t// Register slice element to support cycle detection.\n\tif parentKind == reflect.Slice {\n\t\tptrRefs := ptrs.PushPair(v.ValueX, v.ValueY, opts.DiffMode, true)\n\t\tdefer ptrs.Pop()\n\t\tdefer func() { out = wrapTrunkReferences(ptrRefs, out) }()\n\t}\n\n\t// Descend into the child value node.\n\tif v.TransformerName != \"\" {\n\t\tout := opts.WithTypeMode(emitType).FormatDiff(v.Value, ptrs)\n\t\tout = &textWrap{Prefix: \"Inverse(\" + v.TransformerName + \", \", Value: out, Suffix: \")\"}\n\t\treturn opts.FormatType(v.Type, out)\n\t} else {\n\t\tswitch k := v.Type.Kind(); k {\n\t\tcase reflect.Struct, reflect.Array, reflect.Slice:\n\t\t\tout = opts.formatDiffList(v.Records, k, ptrs)\n\t\t\tout = opts.FormatType(v.Type, out)\n\t\tcase reflect.Map:\n\t\t\t// Register map to support cycle detection.\n\t\t\tptrRefs := ptrs.PushPair(v.ValueX, v.ValueY, opts.DiffMode, false)\n\t\t\tdefer ptrs.Pop()\n\n\t\t\tout = opts.formatDiffList(v.Records, k, ptrs)\n\t\t\tout = wrapTrunkReferences(ptrRefs, out)\n\t\t\tout = opts.FormatType(v.Type, out)\n\t\tcase reflect.Ptr:\n\t\t\t// Register pointer to support cycle detection.\n\t\t\tptrRefs := ptrs.PushPair(v.ValueX, v.ValueY, opts.DiffMode, false)\n\t\t\tdefer ptrs.Pop()\n\n\t\t\tout = opts.FormatDiff(v.Value, ptrs)\n\t\t\tout = wrapTrunkReferences(ptrRefs, out)\n\t\t\tout = &textWrap{Prefix: \"&\", Value: out}\n\t\tcase reflect.Interface:\n\t\t\tout = opts.WithTypeMode(emitType).FormatDiff(v.Value, ptrs)\n\t\tdefault:\n\t\t\tpanic(fmt.Sprintf(\"%v cannot have children\", k))\n\t\t}\n\t\treturn out\n\t}\n}\n\nfunc (opts formatOptions) formatDiffList(recs []reportRecord, k reflect.Kind, ptrs *pointerReferences) textNode {\n\t// Derive record name based on the data structure kind.\n\tvar name string\n\tvar formatKey func(reflect.Value) string\n\tswitch k {\n\tcase reflect.Struct:\n\t\tname = \"field\"\n\t\topts = opts.WithTypeMode(autoType)\n\t\tformatKey = func(v reflect.Value) string { return v.String() }\n\tcase reflect.Slice, reflect.Array:\n\t\tname = \"element\"\n\t\topts = opts.WithTypeMode(elideType)\n\t\tformatKey = func(reflect.Value) string { return \"\" }\n\tcase reflect.Map:\n\t\tname = \"entry\"\n\t\topts = opts.WithTypeMode(elideType)\n\t\tformatKey = func(v reflect.Value) string { return formatMapKey(v, false, ptrs) }\n\t}\n\n\tmaxLen := -1\n\tif opts.LimitVerbosity {\n\t\tif opts.DiffMode == diffIdentical {\n\t\t\tmaxLen = ((1 << opts.verbosity()) >> 1) << 2 // 0, 4, 8, 16, 32, etc...\n\t\t} else {\n\t\t\tmaxLen = (1 << opts.verbosity()) << 1 // 2, 4, 8, 16, 32, 64, etc...\n\t\t}\n\t\topts.VerbosityLevel--\n\t}\n\n\t// Handle unification.\n\tswitch opts.DiffMode {\n\tcase diffIdentical, diffRemoved, diffInserted:\n\t\tvar list textList\n\t\tvar deferredEllipsis bool // Add final \"...\" to indicate records were dropped\n\t\tfor _, r := range recs {\n\t\t\tif len(list) == maxLen {\n\t\t\t\tdeferredEllipsis = true\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\t// Elide struct fields that are zero value.\n\t\t\tif k == reflect.Struct {\n\t\t\t\tvar isZero bool\n\t\t\t\tswitch opts.DiffMode {\n\t\t\t\tcase diffIdentical:\n\t\t\t\t\tisZero = r.Value.ValueX.IsZero() || r.Value.ValueY.IsZero()\n\t\t\t\tcase diffRemoved:\n\t\t\t\t\tisZero = r.Value.ValueX.IsZero()\n\t\t\t\tcase diffInserted:\n\t\t\t\t\tisZero = r.Value.ValueY.IsZero()\n\t\t\t\t}\n\t\t\t\tif isZero {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Elide ignored nodes.\n\t\t\tif r.Value.NumIgnored > 0 && r.Value.NumSame+r.Value.NumDiff == 0 {\n\t\t\t\tdeferredEllipsis = !(k == reflect.Slice || k == reflect.Array)\n\t\t\t\tif !deferredEllipsis {\n\t\t\t\t\tlist.AppendEllipsis(diffStats{})\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif out := opts.FormatDiff(r.Value, ptrs); out != nil {\n\t\t\t\tlist = append(list, textRecord{Key: formatKey(r.Key), Value: out})\n\t\t\t}\n\t\t}\n\t\tif deferredEllipsis {\n\t\t\tlist.AppendEllipsis(diffStats{})\n\t\t}\n\t\treturn &textWrap{Prefix: \"{\", Value: list, Suffix: \"}\"}\n\tcase diffUnknown:\n\tdefault:\n\t\tpanic(\"invalid diff mode\")\n\t}\n\n\t// Handle differencing.\n\tvar numDiffs int\n\tvar list textList\n\tvar keys []reflect.Value // invariant: len(list) == len(keys)\n\tgroups := coalesceAdjacentRecords(name, recs)\n\tmaxGroup := diffStats{Name: name}\n\tfor i, ds := range groups {\n\t\tif maxLen >= 0 && numDiffs >= maxLen {\n\t\t\tmaxGroup = maxGroup.Append(ds)\n\t\t\tcontinue\n\t\t}\n\n\t\t// Handle equal records.\n\t\tif ds.NumDiff() == 0 {\n\t\t\t// Compute the number of leading and trailing records to print.\n\t\t\tvar numLo, numHi int\n\t\t\tnumEqual := ds.NumIgnored + ds.NumIdentical\n\t\t\tfor numLo < numContextRecords && numLo+numHi < numEqual && i != 0 {\n\t\t\t\tif r := recs[numLo].Value; r.NumIgnored > 0 && r.NumSame+r.NumDiff == 0 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tnumLo++\n\t\t\t}\n\t\t\tfor numHi < numContextRecords && numLo+numHi < numEqual && i != len(groups)-1 {\n\t\t\t\tif r := recs[numEqual-numHi-1].Value; r.NumIgnored > 0 && r.NumSame+r.NumDiff == 0 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tnumHi++\n\t\t\t}\n\t\t\tif numEqual-(numLo+numHi) == 1 && ds.NumIgnored == 0 {\n\t\t\t\tnumHi++ // Avoid pointless coalescing of a single equal record\n\t\t\t}\n\n\t\t\t// Format the equal values.\n\t\t\tfor _, r := range recs[:numLo] {\n\t\t\t\tout := opts.WithDiffMode(diffIdentical).FormatDiff(r.Value, ptrs)\n\t\t\t\tlist = append(list, textRecord{Key: formatKey(r.Key), Value: out})\n\t\t\t\tkeys = append(keys, r.Key)\n\t\t\t}\n\t\t\tif numEqual > numLo+numHi {\n\t\t\t\tds.NumIdentical -= numLo + numHi\n\t\t\t\tlist.AppendEllipsis(ds)\n\t\t\t\tfor len(keys) < len(list) {\n\t\t\t\t\tkeys = append(keys, reflect.Value{})\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor _, r := range recs[numEqual-numHi : numEqual] {\n\t\t\t\tout := opts.WithDiffMode(diffIdentical).FormatDiff(r.Value, ptrs)\n\t\t\t\tlist = append(list, textRecord{Key: formatKey(r.Key), Value: out})\n\t\t\t\tkeys = append(keys, r.Key)\n\t\t\t}\n\t\t\trecs = recs[numEqual:]\n\t\t\tcontinue\n\t\t}\n\n\t\t// Handle unequal records.\n\t\tfor _, r := range recs[:ds.NumDiff()] {\n\t\t\tswitch {\n\t\t\tcase opts.CanFormatDiffSlice(r.Value):\n\t\t\t\tout := opts.FormatDiffSlice(r.Value)\n\t\t\t\tlist = append(list, textRecord{Key: formatKey(r.Key), Value: out})\n\t\t\t\tkeys = append(keys, r.Key)\n\t\t\tcase r.Value.NumChildren == r.Value.MaxDepth:\n\t\t\t\toutx := opts.WithDiffMode(diffRemoved).FormatDiff(r.Value, ptrs)\n\t\t\t\touty := opts.WithDiffMode(diffInserted).FormatDiff(r.Value, ptrs)\n\t\t\t\tfor i := 0; i <= maxVerbosityPreset && outx != nil && outy != nil && outx.Equal(outy); i++ {\n\t\t\t\t\topts2 := verbosityPreset(opts, i)\n\t\t\t\t\toutx = opts2.WithDiffMode(diffRemoved).FormatDiff(r.Value, ptrs)\n\t\t\t\t\touty = opts2.WithDiffMode(diffInserted).FormatDiff(r.Value, ptrs)\n\t\t\t\t}\n\t\t\t\tif outx != nil {\n\t\t\t\t\tlist = append(list, textRecord{Diff: diffRemoved, Key: formatKey(r.Key), Value: outx})\n\t\t\t\t\tkeys = append(keys, r.Key)\n\t\t\t\t}\n\t\t\t\tif outy != nil {\n\t\t\t\t\tlist = append(list, textRecord{Diff: diffInserted, Key: formatKey(r.Key), Value: outy})\n\t\t\t\t\tkeys = append(keys, r.Key)\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\tout := opts.FormatDiff(r.Value, ptrs)\n\t\t\t\tlist = append(list, textRecord{Key: formatKey(r.Key), Value: out})\n\t\t\t\tkeys = append(keys, r.Key)\n\t\t\t}\n\t\t}\n\t\trecs = recs[ds.NumDiff():]\n\t\tnumDiffs += ds.NumDiff()\n\t}\n\tif maxGroup.IsZero() {\n\t\tassert(len(recs) == 0)\n\t} else {\n\t\tlist.AppendEllipsis(maxGroup)\n\t\tfor len(keys) < len(list) {\n\t\t\tkeys = append(keys, reflect.Value{})\n\t\t}\n\t}\n\tassert(len(list) == len(keys))\n\n\t// For maps, the default formatting logic uses fmt.Stringer which may\n\t// produce ambiguous output. Avoid calling String to disambiguate.\n\tif k == reflect.Map {\n\t\tvar ambiguous bool\n\t\tseenKeys := map[string]reflect.Value{}\n\t\tfor i, currKey := range keys {\n\t\t\tif currKey.IsValid() {\n\t\t\t\tstrKey := list[i].Key\n\t\t\t\tprevKey, seen := seenKeys[strKey]\n\t\t\t\tif seen && prevKey.CanInterface() && currKey.CanInterface() {\n\t\t\t\t\tambiguous = prevKey.Interface() != currKey.Interface()\n\t\t\t\t\tif ambiguous {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tseenKeys[strKey] = currKey\n\t\t\t}\n\t\t}\n\t\tif ambiguous {\n\t\t\tfor i, k := range keys {\n\t\t\t\tif k.IsValid() {\n\t\t\t\t\tlist[i].Key = formatMapKey(k, true, ptrs)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn &textWrap{Prefix: \"{\", Value: list, Suffix: \"}\"}\n}\n\n// coalesceAdjacentRecords coalesces the list of records into groups of\n// adjacent equal, or unequal counts.\nfunc coalesceAdjacentRecords(name string, recs []reportRecord) (groups []diffStats) {\n\tvar prevCase int // Arbitrary index into which case last occurred\n\tlastStats := func(i int) *diffStats {\n\t\tif prevCase != i {\n\t\t\tgroups = append(groups, diffStats{Name: name})\n\t\t\tprevCase = i\n\t\t}\n\t\treturn &groups[len(groups)-1]\n\t}\n\tfor _, r := range recs {\n\t\tswitch rv := r.Value; {\n\t\tcase rv.NumIgnored > 0 && rv.NumSame+rv.NumDiff == 0:\n\t\t\tlastStats(1).NumIgnored++\n\t\tcase rv.NumDiff == 0:\n\t\t\tlastStats(1).NumIdentical++\n\t\tcase rv.NumDiff > 0 && !rv.ValueY.IsValid():\n\t\t\tlastStats(2).NumRemoved++\n\t\tcase rv.NumDiff > 0 && !rv.ValueX.IsValid():\n\t\t\tlastStats(2).NumInserted++\n\t\tdefault:\n\t\t\tlastStats(2).NumModified++\n\t\t}\n\t}\n\treturn groups\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-cmp/cmp/report_references.go",
    "content": "// Copyright 2020, The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage cmp\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n\n\t\"github.com/google/go-cmp/cmp/internal/flags\"\n\t\"github.com/google/go-cmp/cmp/internal/value\"\n)\n\nconst (\n\tpointerDelimPrefix = \"⟪\"\n\tpointerDelimSuffix = \"⟫\"\n)\n\n// formatPointer prints the address of the pointer.\nfunc formatPointer(p value.Pointer, withDelims bool) string {\n\tv := p.Uintptr()\n\tif flags.Deterministic {\n\t\tv = 0xdeadf00f // Only used for stable testing purposes\n\t}\n\tif withDelims {\n\t\treturn pointerDelimPrefix + formatHex(uint64(v)) + pointerDelimSuffix\n\t}\n\treturn formatHex(uint64(v))\n}\n\n// pointerReferences is a stack of pointers visited so far.\ntype pointerReferences [][2]value.Pointer\n\nfunc (ps *pointerReferences) PushPair(vx, vy reflect.Value, d diffMode, deref bool) (pp [2]value.Pointer) {\n\tif deref && vx.IsValid() {\n\t\tvx = vx.Addr()\n\t}\n\tif deref && vy.IsValid() {\n\t\tvy = vy.Addr()\n\t}\n\tswitch d {\n\tcase diffUnknown, diffIdentical:\n\t\tpp = [2]value.Pointer{value.PointerOf(vx), value.PointerOf(vy)}\n\tcase diffRemoved:\n\t\tpp = [2]value.Pointer{value.PointerOf(vx), value.Pointer{}}\n\tcase diffInserted:\n\t\tpp = [2]value.Pointer{value.Pointer{}, value.PointerOf(vy)}\n\t}\n\t*ps = append(*ps, pp)\n\treturn pp\n}\n\nfunc (ps *pointerReferences) Push(v reflect.Value) (p value.Pointer, seen bool) {\n\tp = value.PointerOf(v)\n\tfor _, pp := range *ps {\n\t\tif p == pp[0] || p == pp[1] {\n\t\t\treturn p, true\n\t\t}\n\t}\n\t*ps = append(*ps, [2]value.Pointer{p, p})\n\treturn p, false\n}\n\nfunc (ps *pointerReferences) Pop() {\n\t*ps = (*ps)[:len(*ps)-1]\n}\n\n// trunkReferences is metadata for a textNode indicating that the sub-tree\n// represents the value for either pointer in a pair of references.\ntype trunkReferences struct{ pp [2]value.Pointer }\n\n// trunkReference is metadata for a textNode indicating that the sub-tree\n// represents the value for the given pointer reference.\ntype trunkReference struct{ p value.Pointer }\n\n// leafReference is metadata for a textNode indicating that the value is\n// truncated as it refers to another part of the tree (i.e., a trunk).\ntype leafReference struct{ p value.Pointer }\n\nfunc wrapTrunkReferences(pp [2]value.Pointer, s textNode) textNode {\n\tswitch {\n\tcase pp[0].IsNil():\n\t\treturn &textWrap{Value: s, Metadata: trunkReference{pp[1]}}\n\tcase pp[1].IsNil():\n\t\treturn &textWrap{Value: s, Metadata: trunkReference{pp[0]}}\n\tcase pp[0] == pp[1]:\n\t\treturn &textWrap{Value: s, Metadata: trunkReference{pp[0]}}\n\tdefault:\n\t\treturn &textWrap{Value: s, Metadata: trunkReferences{pp}}\n\t}\n}\nfunc wrapTrunkReference(p value.Pointer, printAddress bool, s textNode) textNode {\n\tvar prefix string\n\tif printAddress {\n\t\tprefix = formatPointer(p, true)\n\t}\n\treturn &textWrap{Prefix: prefix, Value: s, Metadata: trunkReference{p}}\n}\nfunc makeLeafReference(p value.Pointer, printAddress bool) textNode {\n\tout := &textWrap{Prefix: \"(\", Value: textEllipsis, Suffix: \")\"}\n\tvar prefix string\n\tif printAddress {\n\t\tprefix = formatPointer(p, true)\n\t}\n\treturn &textWrap{Prefix: prefix, Value: out, Metadata: leafReference{p}}\n}\n\n// resolveReferences walks the textNode tree searching for any leaf reference\n// metadata and resolves each against the corresponding trunk references.\n// Since pointer addresses in memory are not particularly readable to the user,\n// it replaces each pointer value with an arbitrary and unique reference ID.\nfunc resolveReferences(s textNode) {\n\tvar walkNodes func(textNode, func(textNode))\n\twalkNodes = func(s textNode, f func(textNode)) {\n\t\tf(s)\n\t\tswitch s := s.(type) {\n\t\tcase *textWrap:\n\t\t\twalkNodes(s.Value, f)\n\t\tcase textList:\n\t\t\tfor _, r := range s {\n\t\t\t\twalkNodes(r.Value, f)\n\t\t\t}\n\t\t}\n\t}\n\n\t// Collect all trunks and leaves with reference metadata.\n\tvar trunks, leaves []*textWrap\n\twalkNodes(s, func(s textNode) {\n\t\tif s, ok := s.(*textWrap); ok {\n\t\t\tswitch s.Metadata.(type) {\n\t\t\tcase leafReference:\n\t\t\t\tleaves = append(leaves, s)\n\t\t\tcase trunkReference, trunkReferences:\n\t\t\t\ttrunks = append(trunks, s)\n\t\t\t}\n\t\t}\n\t})\n\n\t// No leaf references to resolve.\n\tif len(leaves) == 0 {\n\t\treturn\n\t}\n\n\t// Collect the set of all leaf references to resolve.\n\tleafPtrs := make(map[value.Pointer]bool)\n\tfor _, leaf := range leaves {\n\t\tleafPtrs[leaf.Metadata.(leafReference).p] = true\n\t}\n\n\t// Collect the set of trunk pointers that are always paired together.\n\t// This allows us to assign a single ID to both pointers for brevity.\n\t// If a pointer in a pair ever occurs by itself or as a different pair,\n\t// then the pair is broken.\n\tpairedTrunkPtrs := make(map[value.Pointer]value.Pointer)\n\tunpair := func(p value.Pointer) {\n\t\tif !pairedTrunkPtrs[p].IsNil() {\n\t\t\tpairedTrunkPtrs[pairedTrunkPtrs[p]] = value.Pointer{} // invalidate other half\n\t\t}\n\t\tpairedTrunkPtrs[p] = value.Pointer{} // invalidate this half\n\t}\n\tfor _, trunk := range trunks {\n\t\tswitch p := trunk.Metadata.(type) {\n\t\tcase trunkReference:\n\t\t\tunpair(p.p) // standalone pointer cannot be part of a pair\n\t\tcase trunkReferences:\n\t\t\tp0, ok0 := pairedTrunkPtrs[p.pp[0]]\n\t\t\tp1, ok1 := pairedTrunkPtrs[p.pp[1]]\n\t\t\tswitch {\n\t\t\tcase !ok0 && !ok1:\n\t\t\t\t// Register the newly seen pair.\n\t\t\t\tpairedTrunkPtrs[p.pp[0]] = p.pp[1]\n\t\t\t\tpairedTrunkPtrs[p.pp[1]] = p.pp[0]\n\t\t\tcase ok0 && ok1 && p0 == p.pp[1] && p1 == p.pp[0]:\n\t\t\t\t// Exact pair already seen; do nothing.\n\t\t\tdefault:\n\t\t\t\t// Pair conflicts with some other pair; break all pairs.\n\t\t\t\tunpair(p.pp[0])\n\t\t\t\tunpair(p.pp[1])\n\t\t\t}\n\t\t}\n\t}\n\n\t// Correlate each pointer referenced by leaves to a unique identifier,\n\t// and print the IDs for each trunk that matches those pointers.\n\tvar nextID uint\n\tptrIDs := make(map[value.Pointer]uint)\n\tnewID := func() uint {\n\t\tid := nextID\n\t\tnextID++\n\t\treturn id\n\t}\n\tfor _, trunk := range trunks {\n\t\tswitch p := trunk.Metadata.(type) {\n\t\tcase trunkReference:\n\t\t\tif print := leafPtrs[p.p]; print {\n\t\t\t\tid, ok := ptrIDs[p.p]\n\t\t\t\tif !ok {\n\t\t\t\t\tid = newID()\n\t\t\t\t\tptrIDs[p.p] = id\n\t\t\t\t}\n\t\t\t\ttrunk.Prefix = updateReferencePrefix(trunk.Prefix, formatReference(id))\n\t\t\t}\n\t\tcase trunkReferences:\n\t\t\tprint0 := leafPtrs[p.pp[0]]\n\t\t\tprint1 := leafPtrs[p.pp[1]]\n\t\t\tif print0 || print1 {\n\t\t\t\tid0, ok0 := ptrIDs[p.pp[0]]\n\t\t\t\tid1, ok1 := ptrIDs[p.pp[1]]\n\t\t\t\tisPair := pairedTrunkPtrs[p.pp[0]] == p.pp[1] && pairedTrunkPtrs[p.pp[1]] == p.pp[0]\n\t\t\t\tif isPair {\n\t\t\t\t\tvar id uint\n\t\t\t\t\tassert(ok0 == ok1) // must be seen together or not at all\n\t\t\t\t\tif ok0 {\n\t\t\t\t\t\tassert(id0 == id1) // must have the same ID\n\t\t\t\t\t\tid = id0\n\t\t\t\t\t} else {\n\t\t\t\t\t\tid = newID()\n\t\t\t\t\t\tptrIDs[p.pp[0]] = id\n\t\t\t\t\t\tptrIDs[p.pp[1]] = id\n\t\t\t\t\t}\n\t\t\t\t\ttrunk.Prefix = updateReferencePrefix(trunk.Prefix, formatReference(id))\n\t\t\t\t} else {\n\t\t\t\t\tif print0 && !ok0 {\n\t\t\t\t\t\tid0 = newID()\n\t\t\t\t\t\tptrIDs[p.pp[0]] = id0\n\t\t\t\t\t}\n\t\t\t\t\tif print1 && !ok1 {\n\t\t\t\t\t\tid1 = newID()\n\t\t\t\t\t\tptrIDs[p.pp[1]] = id1\n\t\t\t\t\t}\n\t\t\t\t\tswitch {\n\t\t\t\t\tcase print0 && print1:\n\t\t\t\t\t\ttrunk.Prefix = updateReferencePrefix(trunk.Prefix, formatReference(id0)+\",\"+formatReference(id1))\n\t\t\t\t\tcase print0:\n\t\t\t\t\t\ttrunk.Prefix = updateReferencePrefix(trunk.Prefix, formatReference(id0))\n\t\t\t\t\tcase print1:\n\t\t\t\t\t\ttrunk.Prefix = updateReferencePrefix(trunk.Prefix, formatReference(id1))\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Update all leaf references with the unique identifier.\n\tfor _, leaf := range leaves {\n\t\tif id, ok := ptrIDs[leaf.Metadata.(leafReference).p]; ok {\n\t\t\tleaf.Prefix = updateReferencePrefix(leaf.Prefix, formatReference(id))\n\t\t}\n\t}\n}\n\nfunc formatReference(id uint) string {\n\treturn fmt.Sprintf(\"ref#%d\", id)\n}\n\nfunc updateReferencePrefix(prefix, ref string) string {\n\tif prefix == \"\" {\n\t\treturn pointerDelimPrefix + ref + pointerDelimSuffix\n\t}\n\tsuffix := strings.TrimPrefix(prefix, pointerDelimPrefix)\n\treturn pointerDelimPrefix + ref + \": \" + suffix\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-cmp/cmp/report_reflect.go",
    "content": "// Copyright 2019, The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage cmp\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\t\"unicode\"\n\t\"unicode/utf8\"\n\n\t\"github.com/google/go-cmp/cmp/internal/value\"\n)\n\nvar (\n\tanyType    = reflect.TypeOf((*interface{})(nil)).Elem()\n\tstringType = reflect.TypeOf((*string)(nil)).Elem()\n\tbytesType  = reflect.TypeOf((*[]byte)(nil)).Elem()\n\tbyteType   = reflect.TypeOf((*byte)(nil)).Elem()\n)\n\ntype formatValueOptions struct {\n\t// AvoidStringer controls whether to avoid calling custom stringer\n\t// methods like error.Error or fmt.Stringer.String.\n\tAvoidStringer bool\n\n\t// PrintAddresses controls whether to print the address of all pointers,\n\t// slice elements, and maps.\n\tPrintAddresses bool\n\n\t// QualifiedNames controls whether FormatType uses the fully qualified name\n\t// (including the full package path as opposed to just the package name).\n\tQualifiedNames bool\n\n\t// VerbosityLevel controls the amount of output to produce.\n\t// A higher value produces more output. A value of zero or lower produces\n\t// no output (represented using an ellipsis).\n\t// If LimitVerbosity is false, then the level is treated as infinite.\n\tVerbosityLevel int\n\n\t// LimitVerbosity specifies that formatting should respect VerbosityLevel.\n\tLimitVerbosity bool\n}\n\n// FormatType prints the type as if it were wrapping s.\n// This may return s as-is depending on the current type and TypeMode mode.\nfunc (opts formatOptions) FormatType(t reflect.Type, s textNode) textNode {\n\t// Check whether to emit the type or not.\n\tswitch opts.TypeMode {\n\tcase autoType:\n\t\tswitch t.Kind() {\n\t\tcase reflect.Struct, reflect.Slice, reflect.Array, reflect.Map:\n\t\t\tif s.Equal(textNil) {\n\t\t\t\treturn s\n\t\t\t}\n\t\tdefault:\n\t\t\treturn s\n\t\t}\n\t\tif opts.DiffMode == diffIdentical {\n\t\t\treturn s // elide type for identical nodes\n\t\t}\n\tcase elideType:\n\t\treturn s\n\t}\n\n\t// Determine the type label, applying special handling for unnamed types.\n\ttypeName := value.TypeString(t, opts.QualifiedNames)\n\tif t.Name() == \"\" {\n\t\t// According to Go grammar, certain type literals contain symbols that\n\t\t// do not strongly bind to the next lexicographical token (e.g., *T).\n\t\tswitch t.Kind() {\n\t\tcase reflect.Chan, reflect.Func, reflect.Ptr:\n\t\t\ttypeName = \"(\" + typeName + \")\"\n\t\t}\n\t}\n\treturn &textWrap{Prefix: typeName, Value: wrapParens(s)}\n}\n\n// wrapParens wraps s with a set of parenthesis, but avoids it if the\n// wrapped node itself is already surrounded by a pair of parenthesis or braces.\n// It handles unwrapping one level of pointer-reference nodes.\nfunc wrapParens(s textNode) textNode {\n\tvar refNode *textWrap\n\tif s2, ok := s.(*textWrap); ok {\n\t\t// Unwrap a single pointer reference node.\n\t\tswitch s2.Metadata.(type) {\n\t\tcase leafReference, trunkReference, trunkReferences:\n\t\t\trefNode = s2\n\t\t\tif s3, ok := refNode.Value.(*textWrap); ok {\n\t\t\t\ts2 = s3\n\t\t\t}\n\t\t}\n\n\t\t// Already has delimiters that make parenthesis unnecessary.\n\t\thasParens := strings.HasPrefix(s2.Prefix, \"(\") && strings.HasSuffix(s2.Suffix, \")\")\n\t\thasBraces := strings.HasPrefix(s2.Prefix, \"{\") && strings.HasSuffix(s2.Suffix, \"}\")\n\t\tif hasParens || hasBraces {\n\t\t\treturn s\n\t\t}\n\t}\n\tif refNode != nil {\n\t\trefNode.Value = &textWrap{Prefix: \"(\", Value: refNode.Value, Suffix: \")\"}\n\t\treturn s\n\t}\n\treturn &textWrap{Prefix: \"(\", Value: s, Suffix: \")\"}\n}\n\n// FormatValue prints the reflect.Value, taking extra care to avoid descending\n// into pointers already in ptrs. As pointers are visited, ptrs is also updated.\nfunc (opts formatOptions) FormatValue(v reflect.Value, parentKind reflect.Kind, ptrs *pointerReferences) (out textNode) {\n\tif !v.IsValid() {\n\t\treturn nil\n\t}\n\tt := v.Type()\n\n\t// Check slice element for cycles.\n\tif parentKind == reflect.Slice {\n\t\tptrRef, visited := ptrs.Push(v.Addr())\n\t\tif visited {\n\t\t\treturn makeLeafReference(ptrRef, false)\n\t\t}\n\t\tdefer ptrs.Pop()\n\t\tdefer func() { out = wrapTrunkReference(ptrRef, false, out) }()\n\t}\n\n\t// Check whether there is an Error or String method to call.\n\tif !opts.AvoidStringer && v.CanInterface() {\n\t\t// Avoid calling Error or String methods on nil receivers since many\n\t\t// implementations crash when doing so.\n\t\tif (t.Kind() != reflect.Ptr && t.Kind() != reflect.Interface) || !v.IsNil() {\n\t\t\tvar prefix, strVal string\n\t\t\tfunc() {\n\t\t\t\t// Swallow and ignore any panics from String or Error.\n\t\t\t\tdefer func() { recover() }()\n\t\t\t\tswitch v := v.Interface().(type) {\n\t\t\t\tcase error:\n\t\t\t\t\tstrVal = v.Error()\n\t\t\t\t\tprefix = \"e\"\n\t\t\t\tcase fmt.Stringer:\n\t\t\t\t\tstrVal = v.String()\n\t\t\t\t\tprefix = \"s\"\n\t\t\t\t}\n\t\t\t}()\n\t\t\tif prefix != \"\" {\n\t\t\t\treturn opts.formatString(prefix, strVal)\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check whether to explicitly wrap the result with the type.\n\tvar skipType bool\n\tdefer func() {\n\t\tif !skipType {\n\t\t\tout = opts.FormatType(t, out)\n\t\t}\n\t}()\n\n\tswitch t.Kind() {\n\tcase reflect.Bool:\n\t\treturn textLine(fmt.Sprint(v.Bool()))\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn textLine(fmt.Sprint(v.Int()))\n\tcase reflect.Uint, reflect.Uint16, reflect.Uint32, reflect.Uint64:\n\t\treturn textLine(fmt.Sprint(v.Uint()))\n\tcase reflect.Uint8:\n\t\tif parentKind == reflect.Slice || parentKind == reflect.Array {\n\t\t\treturn textLine(formatHex(v.Uint()))\n\t\t}\n\t\treturn textLine(fmt.Sprint(v.Uint()))\n\tcase reflect.Uintptr:\n\t\treturn textLine(formatHex(v.Uint()))\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn textLine(fmt.Sprint(v.Float()))\n\tcase reflect.Complex64, reflect.Complex128:\n\t\treturn textLine(fmt.Sprint(v.Complex()))\n\tcase reflect.String:\n\t\treturn opts.formatString(\"\", v.String())\n\tcase reflect.UnsafePointer, reflect.Chan, reflect.Func:\n\t\treturn textLine(formatPointer(value.PointerOf(v), true))\n\tcase reflect.Struct:\n\t\tvar list textList\n\t\tv := makeAddressable(v) // needed for retrieveUnexportedField\n\t\tmaxLen := v.NumField()\n\t\tif opts.LimitVerbosity {\n\t\t\tmaxLen = ((1 << opts.verbosity()) >> 1) << 2 // 0, 4, 8, 16, 32, etc...\n\t\t\topts.VerbosityLevel--\n\t\t}\n\t\tfor i := 0; i < v.NumField(); i++ {\n\t\t\tvv := v.Field(i)\n\t\t\tif vv.IsZero() {\n\t\t\t\tcontinue // Elide fields with zero values\n\t\t\t}\n\t\t\tif len(list) == maxLen {\n\t\t\t\tlist.AppendEllipsis(diffStats{})\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tsf := t.Field(i)\n\t\t\tif !isExported(sf.Name) {\n\t\t\t\tvv = retrieveUnexportedField(v, sf, true)\n\t\t\t}\n\t\t\ts := opts.WithTypeMode(autoType).FormatValue(vv, t.Kind(), ptrs)\n\t\t\tlist = append(list, textRecord{Key: sf.Name, Value: s})\n\t\t}\n\t\treturn &textWrap{Prefix: \"{\", Value: list, Suffix: \"}\"}\n\tcase reflect.Slice:\n\t\tif v.IsNil() {\n\t\t\treturn textNil\n\t\t}\n\n\t\t// Check whether this is a []byte of text data.\n\t\tif t.Elem() == byteType {\n\t\t\tb := v.Bytes()\n\t\t\tisPrintSpace := func(r rune) bool { return unicode.IsPrint(r) || unicode.IsSpace(r) }\n\t\t\tif len(b) > 0 && utf8.Valid(b) && len(bytes.TrimFunc(b, isPrintSpace)) == 0 {\n\t\t\t\tout = opts.formatString(\"\", string(b))\n\t\t\t\tskipType = true\n\t\t\t\treturn opts.FormatType(t, out)\n\t\t\t}\n\t\t}\n\n\t\tfallthrough\n\tcase reflect.Array:\n\t\tmaxLen := v.Len()\n\t\tif opts.LimitVerbosity {\n\t\t\tmaxLen = ((1 << opts.verbosity()) >> 1) << 2 // 0, 4, 8, 16, 32, etc...\n\t\t\topts.VerbosityLevel--\n\t\t}\n\t\tvar list textList\n\t\tfor i := 0; i < v.Len(); i++ {\n\t\t\tif len(list) == maxLen {\n\t\t\t\tlist.AppendEllipsis(diffStats{})\n\t\t\t\tbreak\n\t\t\t}\n\t\t\ts := opts.WithTypeMode(elideType).FormatValue(v.Index(i), t.Kind(), ptrs)\n\t\t\tlist = append(list, textRecord{Value: s})\n\t\t}\n\n\t\tout = &textWrap{Prefix: \"{\", Value: list, Suffix: \"}\"}\n\t\tif t.Kind() == reflect.Slice && opts.PrintAddresses {\n\t\t\theader := fmt.Sprintf(\"ptr:%v, len:%d, cap:%d\", formatPointer(value.PointerOf(v), false), v.Len(), v.Cap())\n\t\t\tout = &textWrap{Prefix: pointerDelimPrefix + header + pointerDelimSuffix, Value: out}\n\t\t}\n\t\treturn out\n\tcase reflect.Map:\n\t\tif v.IsNil() {\n\t\t\treturn textNil\n\t\t}\n\n\t\t// Check pointer for cycles.\n\t\tptrRef, visited := ptrs.Push(v)\n\t\tif visited {\n\t\t\treturn makeLeafReference(ptrRef, opts.PrintAddresses)\n\t\t}\n\t\tdefer ptrs.Pop()\n\n\t\tmaxLen := v.Len()\n\t\tif opts.LimitVerbosity {\n\t\t\tmaxLen = ((1 << opts.verbosity()) >> 1) << 2 // 0, 4, 8, 16, 32, etc...\n\t\t\topts.VerbosityLevel--\n\t\t}\n\t\tvar list textList\n\t\tfor _, k := range value.SortKeys(v.MapKeys()) {\n\t\t\tif len(list) == maxLen {\n\t\t\t\tlist.AppendEllipsis(diffStats{})\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tsk := formatMapKey(k, false, ptrs)\n\t\t\tsv := opts.WithTypeMode(elideType).FormatValue(v.MapIndex(k), t.Kind(), ptrs)\n\t\t\tlist = append(list, textRecord{Key: sk, Value: sv})\n\t\t}\n\n\t\tout = &textWrap{Prefix: \"{\", Value: list, Suffix: \"}\"}\n\t\tout = wrapTrunkReference(ptrRef, opts.PrintAddresses, out)\n\t\treturn out\n\tcase reflect.Ptr:\n\t\tif v.IsNil() {\n\t\t\treturn textNil\n\t\t}\n\n\t\t// Check pointer for cycles.\n\t\tptrRef, visited := ptrs.Push(v)\n\t\tif visited {\n\t\t\tout = makeLeafReference(ptrRef, opts.PrintAddresses)\n\t\t\treturn &textWrap{Prefix: \"&\", Value: out}\n\t\t}\n\t\tdefer ptrs.Pop()\n\n\t\t// Skip the name only if this is an unnamed pointer type.\n\t\t// Otherwise taking the address of a value does not reproduce\n\t\t// the named pointer type.\n\t\tif v.Type().Name() == \"\" {\n\t\t\tskipType = true // Let the underlying value print the type instead\n\t\t}\n\t\tout = opts.FormatValue(v.Elem(), t.Kind(), ptrs)\n\t\tout = wrapTrunkReference(ptrRef, opts.PrintAddresses, out)\n\t\tout = &textWrap{Prefix: \"&\", Value: out}\n\t\treturn out\n\tcase reflect.Interface:\n\t\tif v.IsNil() {\n\t\t\treturn textNil\n\t\t}\n\t\t// Interfaces accept different concrete types,\n\t\t// so configure the underlying value to explicitly print the type.\n\t\treturn opts.WithTypeMode(emitType).FormatValue(v.Elem(), t.Kind(), ptrs)\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"%v kind not handled\", v.Kind()))\n\t}\n}\n\nfunc (opts formatOptions) formatString(prefix, s string) textNode {\n\tmaxLen := len(s)\n\tmaxLines := strings.Count(s, \"\\n\") + 1\n\tif opts.LimitVerbosity {\n\t\tmaxLen = (1 << opts.verbosity()) << 5   // 32, 64, 128, 256, etc...\n\t\tmaxLines = (1 << opts.verbosity()) << 2 //  4, 8, 16, 32, 64, etc...\n\t}\n\n\t// For multiline strings, use the triple-quote syntax,\n\t// but only use it when printing removed or inserted nodes since\n\t// we only want the extra verbosity for those cases.\n\tlines := strings.Split(strings.TrimSuffix(s, \"\\n\"), \"\\n\")\n\tisTripleQuoted := len(lines) >= 4 && (opts.DiffMode == '-' || opts.DiffMode == '+')\n\tfor i := 0; i < len(lines) && isTripleQuoted; i++ {\n\t\tlines[i] = strings.TrimPrefix(strings.TrimSuffix(lines[i], \"\\r\"), \"\\r\") // trim leading/trailing carriage returns for legacy Windows endline support\n\t\tisPrintable := func(r rune) bool {\n\t\t\treturn unicode.IsPrint(r) || r == '\\t' // specially treat tab as printable\n\t\t}\n\t\tline := lines[i]\n\t\tisTripleQuoted = !strings.HasPrefix(strings.TrimPrefix(line, prefix), `\"\"\"`) && !strings.HasPrefix(line, \"...\") && strings.TrimFunc(line, isPrintable) == \"\" && len(line) <= maxLen\n\t}\n\tif isTripleQuoted {\n\t\tvar list textList\n\t\tlist = append(list, textRecord{Diff: opts.DiffMode, Value: textLine(prefix + `\"\"\"`), ElideComma: true})\n\t\tfor i, line := range lines {\n\t\t\tif numElided := len(lines) - i; i == maxLines-1 && numElided > 1 {\n\t\t\t\tcomment := commentString(fmt.Sprintf(\"%d elided lines\", numElided))\n\t\t\t\tlist = append(list, textRecord{Diff: opts.DiffMode, Value: textEllipsis, ElideComma: true, Comment: comment})\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tlist = append(list, textRecord{Diff: opts.DiffMode, Value: textLine(line), ElideComma: true})\n\t\t}\n\t\tlist = append(list, textRecord{Diff: opts.DiffMode, Value: textLine(prefix + `\"\"\"`), ElideComma: true})\n\t\treturn &textWrap{Prefix: \"(\", Value: list, Suffix: \")\"}\n\t}\n\n\t// Format the string as a single-line quoted string.\n\tif len(s) > maxLen+len(textEllipsis) {\n\t\treturn textLine(prefix + formatString(s[:maxLen]) + string(textEllipsis))\n\t}\n\treturn textLine(prefix + formatString(s))\n}\n\n// formatMapKey formats v as if it were a map key.\n// The result is guaranteed to be a single line.\nfunc formatMapKey(v reflect.Value, disambiguate bool, ptrs *pointerReferences) string {\n\tvar opts formatOptions\n\topts.DiffMode = diffIdentical\n\topts.TypeMode = elideType\n\topts.PrintAddresses = disambiguate\n\topts.AvoidStringer = disambiguate\n\topts.QualifiedNames = disambiguate\n\topts.VerbosityLevel = maxVerbosityPreset\n\topts.LimitVerbosity = true\n\ts := opts.FormatValue(v, reflect.Map, ptrs).String()\n\treturn strings.TrimSpace(s)\n}\n\n// formatString prints s as a double-quoted or backtick-quoted string.\nfunc formatString(s string) string {\n\t// Use quoted string if it the same length as a raw string literal.\n\t// Otherwise, attempt to use the raw string form.\n\tqs := strconv.Quote(s)\n\tif len(qs) == 1+len(s)+1 {\n\t\treturn qs\n\t}\n\n\t// Disallow newlines to ensure output is a single line.\n\t// Only allow printable runes for readability purposes.\n\trawInvalid := func(r rune) bool {\n\t\treturn r == '`' || r == '\\n' || !(unicode.IsPrint(r) || r == '\\t')\n\t}\n\tif utf8.ValidString(s) && strings.IndexFunc(s, rawInvalid) < 0 {\n\t\treturn \"`\" + s + \"`\"\n\t}\n\treturn qs\n}\n\n// formatHex prints u as a hexadecimal integer in Go notation.\nfunc formatHex(u uint64) string {\n\tvar f string\n\tswitch {\n\tcase u <= 0xff:\n\t\tf = \"0x%02x\"\n\tcase u <= 0xffff:\n\t\tf = \"0x%04x\"\n\tcase u <= 0xffffff:\n\t\tf = \"0x%06x\"\n\tcase u <= 0xffffffff:\n\t\tf = \"0x%08x\"\n\tcase u <= 0xffffffffff:\n\t\tf = \"0x%010x\"\n\tcase u <= 0xffffffffffff:\n\t\tf = \"0x%012x\"\n\tcase u <= 0xffffffffffffff:\n\t\tf = \"0x%014x\"\n\tcase u <= 0xffffffffffffffff:\n\t\tf = \"0x%016x\"\n\t}\n\treturn fmt.Sprintf(f, u)\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-cmp/cmp/report_slices.go",
    "content": "// Copyright 2019, The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage cmp\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"math\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\t\"unicode\"\n\t\"unicode/utf8\"\n\n\t\"github.com/google/go-cmp/cmp/internal/diff\"\n)\n\n// CanFormatDiffSlice reports whether we support custom formatting for nodes\n// that are slices of primitive kinds or strings.\nfunc (opts formatOptions) CanFormatDiffSlice(v *valueNode) bool {\n\tswitch {\n\tcase opts.DiffMode != diffUnknown:\n\t\treturn false // Must be formatting in diff mode\n\tcase v.NumDiff == 0:\n\t\treturn false // No differences detected\n\tcase !v.ValueX.IsValid() || !v.ValueY.IsValid():\n\t\treturn false // Both values must be valid\n\tcase v.NumIgnored > 0:\n\t\treturn false // Some ignore option was used\n\tcase v.NumTransformed > 0:\n\t\treturn false // Some transform option was used\n\tcase v.NumCompared > 1:\n\t\treturn false // More than one comparison was used\n\tcase v.NumCompared == 1 && v.Type.Name() != \"\":\n\t\t// The need for cmp to check applicability of options on every element\n\t\t// in a slice is a significant performance detriment for large []byte.\n\t\t// The workaround is to specify Comparer(bytes.Equal),\n\t\t// which enables cmp to compare []byte more efficiently.\n\t\t// If they differ, we still want to provide batched diffing.\n\t\t// The logic disallows named types since they tend to have their own\n\t\t// String method, with nicer formatting than what this provides.\n\t\treturn false\n\t}\n\n\t// Check whether this is an interface with the same concrete types.\n\tt := v.Type\n\tvx, vy := v.ValueX, v.ValueY\n\tif t.Kind() == reflect.Interface && !vx.IsNil() && !vy.IsNil() && vx.Elem().Type() == vy.Elem().Type() {\n\t\tvx, vy = vx.Elem(), vy.Elem()\n\t\tt = vx.Type()\n\t}\n\n\t// Check whether we provide specialized diffing for this type.\n\tswitch t.Kind() {\n\tcase reflect.String:\n\tcase reflect.Array, reflect.Slice:\n\t\t// Only slices of primitive types have specialized handling.\n\t\tswitch t.Elem().Kind() {\n\t\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,\n\t\t\treflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr,\n\t\t\treflect.Bool, reflect.Float32, reflect.Float64, reflect.Complex64, reflect.Complex128:\n\t\tdefault:\n\t\t\treturn false\n\t\t}\n\n\t\t// Both slice values have to be non-empty.\n\t\tif t.Kind() == reflect.Slice && (vx.Len() == 0 || vy.Len() == 0) {\n\t\t\treturn false\n\t\t}\n\n\t\t// If a sufficient number of elements already differ,\n\t\t// use specialized formatting even if length requirement is not met.\n\t\tif v.NumDiff > v.NumSame {\n\t\t\treturn true\n\t\t}\n\tdefault:\n\t\treturn false\n\t}\n\n\t// Use specialized string diffing for longer slices or strings.\n\tconst minLength = 32\n\treturn vx.Len() >= minLength && vy.Len() >= minLength\n}\n\n// FormatDiffSlice prints a diff for the slices (or strings) represented by v.\n// This provides custom-tailored logic to make printing of differences in\n// textual strings and slices of primitive kinds more readable.\nfunc (opts formatOptions) FormatDiffSlice(v *valueNode) textNode {\n\tassert(opts.DiffMode == diffUnknown)\n\tt, vx, vy := v.Type, v.ValueX, v.ValueY\n\tif t.Kind() == reflect.Interface {\n\t\tvx, vy = vx.Elem(), vy.Elem()\n\t\tt = vx.Type()\n\t\topts = opts.WithTypeMode(emitType)\n\t}\n\n\t// Auto-detect the type of the data.\n\tvar sx, sy string\n\tvar ssx, ssy []string\n\tvar isString, isMostlyText, isPureLinedText, isBinary bool\n\tswitch {\n\tcase t.Kind() == reflect.String:\n\t\tsx, sy = vx.String(), vy.String()\n\t\tisString = true\n\tcase t.Kind() == reflect.Slice && t.Elem() == byteType:\n\t\tsx, sy = string(vx.Bytes()), string(vy.Bytes())\n\t\tisString = true\n\tcase t.Kind() == reflect.Array:\n\t\t// Arrays need to be addressable for slice operations to work.\n\t\tvx2, vy2 := reflect.New(t).Elem(), reflect.New(t).Elem()\n\t\tvx2.Set(vx)\n\t\tvy2.Set(vy)\n\t\tvx, vy = vx2, vy2\n\t}\n\tif isString {\n\t\tvar numTotalRunes, numValidRunes, numLines, lastLineIdx, maxLineLen int\n\t\tfor i, r := range sx + sy {\n\t\t\tnumTotalRunes++\n\t\t\tif (unicode.IsPrint(r) || unicode.IsSpace(r)) && r != utf8.RuneError {\n\t\t\t\tnumValidRunes++\n\t\t\t}\n\t\t\tif r == '\\n' {\n\t\t\t\tif maxLineLen < i-lastLineIdx {\n\t\t\t\t\tmaxLineLen = i - lastLineIdx\n\t\t\t\t}\n\t\t\t\tlastLineIdx = i + 1\n\t\t\t\tnumLines++\n\t\t\t}\n\t\t}\n\t\tisPureText := numValidRunes == numTotalRunes\n\t\tisMostlyText = float64(numValidRunes) > math.Floor(0.90*float64(numTotalRunes))\n\t\tisPureLinedText = isPureText && numLines >= 4 && maxLineLen <= 1024\n\t\tisBinary = !isMostlyText\n\n\t\t// Avoid diffing by lines if it produces a significantly more complex\n\t\t// edit script than diffing by bytes.\n\t\tif isPureLinedText {\n\t\t\tssx = strings.Split(sx, \"\\n\")\n\t\t\tssy = strings.Split(sy, \"\\n\")\n\t\t\tesLines := diff.Difference(len(ssx), len(ssy), func(ix, iy int) diff.Result {\n\t\t\t\treturn diff.BoolResult(ssx[ix] == ssy[iy])\n\t\t\t})\n\t\t\tesBytes := diff.Difference(len(sx), len(sy), func(ix, iy int) diff.Result {\n\t\t\t\treturn diff.BoolResult(sx[ix] == sy[iy])\n\t\t\t})\n\t\t\tefficiencyLines := float64(esLines.Dist()) / float64(len(esLines))\n\t\t\tefficiencyBytes := float64(esBytes.Dist()) / float64(len(esBytes))\n\t\t\tquotedLength := len(strconv.Quote(sx + sy))\n\t\t\tunquotedLength := len(sx) + len(sy)\n\t\t\tescapeExpansionRatio := float64(quotedLength) / float64(unquotedLength)\n\t\t\tisPureLinedText = efficiencyLines < 4*efficiencyBytes || escapeExpansionRatio > 1.1\n\t\t}\n\t}\n\n\t// Format the string into printable records.\n\tvar list textList\n\tvar delim string\n\tswitch {\n\t// If the text appears to be multi-lined text,\n\t// then perform differencing across individual lines.\n\tcase isPureLinedText:\n\t\tlist = opts.formatDiffSlice(\n\t\t\treflect.ValueOf(ssx), reflect.ValueOf(ssy), 1, \"line\",\n\t\t\tfunc(v reflect.Value, d diffMode) textRecord {\n\t\t\t\ts := formatString(v.Index(0).String())\n\t\t\t\treturn textRecord{Diff: d, Value: textLine(s)}\n\t\t\t},\n\t\t)\n\t\tdelim = \"\\n\"\n\n\t\t// If possible, use a custom triple-quote (\"\"\") syntax for printing\n\t\t// differences in a string literal. This format is more readable,\n\t\t// but has edge-cases where differences are visually indistinguishable.\n\t\t// This format is avoided under the following conditions:\n\t\t//   - A line starts with `\"\"\"`\n\t\t//   - A line starts with \"...\"\n\t\t//   - A line contains non-printable characters\n\t\t//   - Adjacent different lines differ only by whitespace\n\t\t//\n\t\t// For example:\n\t\t//\n\t\t//\t\t\"\"\"\n\t\t//\t\t... // 3 identical lines\n\t\t//\t\tfoo\n\t\t//\t\tbar\n\t\t//\t-\tbaz\n\t\t//\t+\tBAZ\n\t\t//\t\t\"\"\"\n\t\tisTripleQuoted := true\n\t\tprevRemoveLines := map[string]bool{}\n\t\tprevInsertLines := map[string]bool{}\n\t\tvar list2 textList\n\t\tlist2 = append(list2, textRecord{Value: textLine(`\"\"\"`), ElideComma: true})\n\t\tfor _, r := range list {\n\t\t\tif !r.Value.Equal(textEllipsis) {\n\t\t\t\tline, _ := strconv.Unquote(string(r.Value.(textLine)))\n\t\t\t\tline = strings.TrimPrefix(strings.TrimSuffix(line, \"\\r\"), \"\\r\") // trim leading/trailing carriage returns for legacy Windows endline support\n\t\t\t\tnormLine := strings.Map(func(r rune) rune {\n\t\t\t\t\tif unicode.IsSpace(r) {\n\t\t\t\t\t\treturn -1 // drop whitespace to avoid visually indistinguishable output\n\t\t\t\t\t}\n\t\t\t\t\treturn r\n\t\t\t\t}, line)\n\t\t\t\tisPrintable := func(r rune) bool {\n\t\t\t\t\treturn unicode.IsPrint(r) || r == '\\t' // specially treat tab as printable\n\t\t\t\t}\n\t\t\t\tisTripleQuoted = !strings.HasPrefix(line, `\"\"\"`) && !strings.HasPrefix(line, \"...\") && strings.TrimFunc(line, isPrintable) == \"\"\n\t\t\t\tswitch r.Diff {\n\t\t\t\tcase diffRemoved:\n\t\t\t\t\tisTripleQuoted = isTripleQuoted && !prevInsertLines[normLine]\n\t\t\t\t\tprevRemoveLines[normLine] = true\n\t\t\t\tcase diffInserted:\n\t\t\t\t\tisTripleQuoted = isTripleQuoted && !prevRemoveLines[normLine]\n\t\t\t\t\tprevInsertLines[normLine] = true\n\t\t\t\t}\n\t\t\t\tif !isTripleQuoted {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tr.Value = textLine(line)\n\t\t\t\tr.ElideComma = true\n\t\t\t}\n\t\t\tif !(r.Diff == diffRemoved || r.Diff == diffInserted) { // start a new non-adjacent difference group\n\t\t\t\tprevRemoveLines = map[string]bool{}\n\t\t\t\tprevInsertLines = map[string]bool{}\n\t\t\t}\n\t\t\tlist2 = append(list2, r)\n\t\t}\n\t\tif r := list2[len(list2)-1]; r.Diff == diffIdentical && len(r.Value.(textLine)) == 0 {\n\t\t\tlist2 = list2[:len(list2)-1] // elide single empty line at the end\n\t\t}\n\t\tlist2 = append(list2, textRecord{Value: textLine(`\"\"\"`), ElideComma: true})\n\t\tif isTripleQuoted {\n\t\t\tvar out textNode = &textWrap{Prefix: \"(\", Value: list2, Suffix: \")\"}\n\t\t\tswitch t.Kind() {\n\t\t\tcase reflect.String:\n\t\t\t\tif t != stringType {\n\t\t\t\t\tout = opts.FormatType(t, out)\n\t\t\t\t}\n\t\t\tcase reflect.Slice:\n\t\t\t\t// Always emit type for slices since the triple-quote syntax\n\t\t\t\t// looks like a string (not a slice).\n\t\t\t\topts = opts.WithTypeMode(emitType)\n\t\t\t\tout = opts.FormatType(t, out)\n\t\t\t}\n\t\t\treturn out\n\t\t}\n\n\t// If the text appears to be single-lined text,\n\t// then perform differencing in approximately fixed-sized chunks.\n\t// The output is printed as quoted strings.\n\tcase isMostlyText:\n\t\tlist = opts.formatDiffSlice(\n\t\t\treflect.ValueOf(sx), reflect.ValueOf(sy), 64, \"byte\",\n\t\t\tfunc(v reflect.Value, d diffMode) textRecord {\n\t\t\t\ts := formatString(v.String())\n\t\t\t\treturn textRecord{Diff: d, Value: textLine(s)}\n\t\t\t},\n\t\t)\n\n\t// If the text appears to be binary data,\n\t// then perform differencing in approximately fixed-sized chunks.\n\t// The output is inspired by hexdump.\n\tcase isBinary:\n\t\tlist = opts.formatDiffSlice(\n\t\t\treflect.ValueOf(sx), reflect.ValueOf(sy), 16, \"byte\",\n\t\t\tfunc(v reflect.Value, d diffMode) textRecord {\n\t\t\t\tvar ss []string\n\t\t\t\tfor i := 0; i < v.Len(); i++ {\n\t\t\t\t\tss = append(ss, formatHex(v.Index(i).Uint()))\n\t\t\t\t}\n\t\t\t\ts := strings.Join(ss, \", \")\n\t\t\t\tcomment := commentString(fmt.Sprintf(\"%c|%v|\", d, formatASCII(v.String())))\n\t\t\t\treturn textRecord{Diff: d, Value: textLine(s), Comment: comment}\n\t\t\t},\n\t\t)\n\n\t// For all other slices of primitive types,\n\t// then perform differencing in approximately fixed-sized chunks.\n\t// The size of each chunk depends on the width of the element kind.\n\tdefault:\n\t\tvar chunkSize int\n\t\tif t.Elem().Kind() == reflect.Bool {\n\t\t\tchunkSize = 16\n\t\t} else {\n\t\t\tswitch t.Elem().Bits() {\n\t\t\tcase 8:\n\t\t\t\tchunkSize = 16\n\t\t\tcase 16:\n\t\t\t\tchunkSize = 12\n\t\t\tcase 32:\n\t\t\t\tchunkSize = 8\n\t\t\tdefault:\n\t\t\t\tchunkSize = 8\n\t\t\t}\n\t\t}\n\t\tlist = opts.formatDiffSlice(\n\t\t\tvx, vy, chunkSize, t.Elem().Kind().String(),\n\t\t\tfunc(v reflect.Value, d diffMode) textRecord {\n\t\t\t\tvar ss []string\n\t\t\t\tfor i := 0; i < v.Len(); i++ {\n\t\t\t\t\tswitch t.Elem().Kind() {\n\t\t\t\t\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\t\t\t\t\tss = append(ss, fmt.Sprint(v.Index(i).Int()))\n\t\t\t\t\tcase reflect.Uint, reflect.Uint16, reflect.Uint32, reflect.Uint64:\n\t\t\t\t\t\tss = append(ss, fmt.Sprint(v.Index(i).Uint()))\n\t\t\t\t\tcase reflect.Uint8, reflect.Uintptr:\n\t\t\t\t\t\tss = append(ss, formatHex(v.Index(i).Uint()))\n\t\t\t\t\tcase reflect.Bool, reflect.Float32, reflect.Float64, reflect.Complex64, reflect.Complex128:\n\t\t\t\t\t\tss = append(ss, fmt.Sprint(v.Index(i).Interface()))\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ts := strings.Join(ss, \", \")\n\t\t\t\treturn textRecord{Diff: d, Value: textLine(s)}\n\t\t\t},\n\t\t)\n\t}\n\n\t// Wrap the output with appropriate type information.\n\tvar out textNode = &textWrap{Prefix: \"{\", Value: list, Suffix: \"}\"}\n\tif !isMostlyText {\n\t\t// The \"{...}\" byte-sequence literal is not valid Go syntax for strings.\n\t\t// Emit the type for extra clarity (e.g. \"string{...}\").\n\t\tif t.Kind() == reflect.String {\n\t\t\topts = opts.WithTypeMode(emitType)\n\t\t}\n\t\treturn opts.FormatType(t, out)\n\t}\n\tswitch t.Kind() {\n\tcase reflect.String:\n\t\tout = &textWrap{Prefix: \"strings.Join(\", Value: out, Suffix: fmt.Sprintf(\", %q)\", delim)}\n\t\tif t != stringType {\n\t\t\tout = opts.FormatType(t, out)\n\t\t}\n\tcase reflect.Slice:\n\t\tout = &textWrap{Prefix: \"bytes.Join(\", Value: out, Suffix: fmt.Sprintf(\", %q)\", delim)}\n\t\tif t != bytesType {\n\t\t\tout = opts.FormatType(t, out)\n\t\t}\n\t}\n\treturn out\n}\n\n// formatASCII formats s as an ASCII string.\n// This is useful for printing binary strings in a semi-legible way.\nfunc formatASCII(s string) string {\n\tb := bytes.Repeat([]byte{'.'}, len(s))\n\tfor i := 0; i < len(s); i++ {\n\t\tif ' ' <= s[i] && s[i] <= '~' {\n\t\t\tb[i] = s[i]\n\t\t}\n\t}\n\treturn string(b)\n}\n\nfunc (opts formatOptions) formatDiffSlice(\n\tvx, vy reflect.Value, chunkSize int, name string,\n\tmakeRec func(reflect.Value, diffMode) textRecord,\n) (list textList) {\n\teq := func(ix, iy int) bool {\n\t\treturn vx.Index(ix).Interface() == vy.Index(iy).Interface()\n\t}\n\tes := diff.Difference(vx.Len(), vy.Len(), func(ix, iy int) diff.Result {\n\t\treturn diff.BoolResult(eq(ix, iy))\n\t})\n\n\tappendChunks := func(v reflect.Value, d diffMode) int {\n\t\tn0 := v.Len()\n\t\tfor v.Len() > 0 {\n\t\t\tn := chunkSize\n\t\t\tif n > v.Len() {\n\t\t\t\tn = v.Len()\n\t\t\t}\n\t\t\tlist = append(list, makeRec(v.Slice(0, n), d))\n\t\t\tv = v.Slice(n, v.Len())\n\t\t}\n\t\treturn n0 - v.Len()\n\t}\n\n\tvar numDiffs int\n\tmaxLen := -1\n\tif opts.LimitVerbosity {\n\t\tmaxLen = (1 << opts.verbosity()) << 2 // 4, 8, 16, 32, 64, etc...\n\t\topts.VerbosityLevel--\n\t}\n\n\tgroups := coalesceAdjacentEdits(name, es)\n\tgroups = coalesceInterveningIdentical(groups, chunkSize/4)\n\tgroups = cleanupSurroundingIdentical(groups, eq)\n\tmaxGroup := diffStats{Name: name}\n\tfor i, ds := range groups {\n\t\tif maxLen >= 0 && numDiffs >= maxLen {\n\t\t\tmaxGroup = maxGroup.Append(ds)\n\t\t\tcontinue\n\t\t}\n\n\t\t// Print equal.\n\t\tif ds.NumDiff() == 0 {\n\t\t\t// Compute the number of leading and trailing equal bytes to print.\n\t\t\tvar numLo, numHi int\n\t\t\tnumEqual := ds.NumIgnored + ds.NumIdentical\n\t\t\tfor numLo < chunkSize*numContextRecords && numLo+numHi < numEqual && i != 0 {\n\t\t\t\tnumLo++\n\t\t\t}\n\t\t\tfor numHi < chunkSize*numContextRecords && numLo+numHi < numEqual && i != len(groups)-1 {\n\t\t\t\tnumHi++\n\t\t\t}\n\t\t\tif numEqual-(numLo+numHi) <= chunkSize && ds.NumIgnored == 0 {\n\t\t\t\tnumHi = numEqual - numLo // Avoid pointless coalescing of single equal row\n\t\t\t}\n\n\t\t\t// Print the equal bytes.\n\t\t\tappendChunks(vx.Slice(0, numLo), diffIdentical)\n\t\t\tif numEqual > numLo+numHi {\n\t\t\t\tds.NumIdentical -= numLo + numHi\n\t\t\t\tlist.AppendEllipsis(ds)\n\t\t\t}\n\t\t\tappendChunks(vx.Slice(numEqual-numHi, numEqual), diffIdentical)\n\t\t\tvx = vx.Slice(numEqual, vx.Len())\n\t\t\tvy = vy.Slice(numEqual, vy.Len())\n\t\t\tcontinue\n\t\t}\n\n\t\t// Print unequal.\n\t\tlen0 := len(list)\n\t\tnx := appendChunks(vx.Slice(0, ds.NumIdentical+ds.NumRemoved+ds.NumModified), diffRemoved)\n\t\tvx = vx.Slice(nx, vx.Len())\n\t\tny := appendChunks(vy.Slice(0, ds.NumIdentical+ds.NumInserted+ds.NumModified), diffInserted)\n\t\tvy = vy.Slice(ny, vy.Len())\n\t\tnumDiffs += len(list) - len0\n\t}\n\tif maxGroup.IsZero() {\n\t\tassert(vx.Len() == 0 && vy.Len() == 0)\n\t} else {\n\t\tlist.AppendEllipsis(maxGroup)\n\t}\n\treturn list\n}\n\n// coalesceAdjacentEdits coalesces the list of edits into groups of adjacent\n// equal or unequal counts.\n//\n// Example:\n//\n//\tInput:  \"..XXY...Y\"\n//\tOutput: [\n//\t\t{NumIdentical: 2},\n//\t\t{NumRemoved: 2, NumInserted 1},\n//\t\t{NumIdentical: 3},\n//\t\t{NumInserted: 1},\n//\t]\nfunc coalesceAdjacentEdits(name string, es diff.EditScript) (groups []diffStats) {\n\tvar prevMode byte\n\tlastStats := func(mode byte) *diffStats {\n\t\tif prevMode != mode {\n\t\t\tgroups = append(groups, diffStats{Name: name})\n\t\t\tprevMode = mode\n\t\t}\n\t\treturn &groups[len(groups)-1]\n\t}\n\tfor _, e := range es {\n\t\tswitch e {\n\t\tcase diff.Identity:\n\t\t\tlastStats('=').NumIdentical++\n\t\tcase diff.UniqueX:\n\t\t\tlastStats('!').NumRemoved++\n\t\tcase diff.UniqueY:\n\t\t\tlastStats('!').NumInserted++\n\t\tcase diff.Modified:\n\t\t\tlastStats('!').NumModified++\n\t\t}\n\t}\n\treturn groups\n}\n\n// coalesceInterveningIdentical coalesces sufficiently short (<= windowSize)\n// equal groups into adjacent unequal groups that currently result in a\n// dual inserted/removed printout. This acts as a high-pass filter to smooth\n// out high-frequency changes within the windowSize.\n//\n// Example:\n//\n//\tWindowSize: 16,\n//\tInput: [\n//\t\t{NumIdentical: 61},              // group 0\n//\t\t{NumRemoved: 3, NumInserted: 1}, // group 1\n//\t\t{NumIdentical: 6},               // ├── coalesce\n//\t\t{NumInserted: 2},                // ├── coalesce\n//\t\t{NumIdentical: 1},               // ├── coalesce\n//\t\t{NumRemoved: 9},                 // └── coalesce\n//\t\t{NumIdentical: 64},              // group 2\n//\t\t{NumRemoved: 3, NumInserted: 1}, // group 3\n//\t\t{NumIdentical: 6},               // ├── coalesce\n//\t\t{NumInserted: 2},                // ├── coalesce\n//\t\t{NumIdentical: 1},               // ├── coalesce\n//\t\t{NumRemoved: 7},                 // ├── coalesce\n//\t\t{NumIdentical: 1},               // ├── coalesce\n//\t\t{NumRemoved: 2},                 // └── coalesce\n//\t\t{NumIdentical: 63},              // group 4\n//\t]\n//\tOutput: [\n//\t\t{NumIdentical: 61},\n//\t\t{NumIdentical: 7, NumRemoved: 12, NumInserted: 3},\n//\t\t{NumIdentical: 64},\n//\t\t{NumIdentical: 8, NumRemoved: 12, NumInserted: 3},\n//\t\t{NumIdentical: 63},\n//\t]\nfunc coalesceInterveningIdentical(groups []diffStats, windowSize int) []diffStats {\n\tgroups, groupsOrig := groups[:0], groups\n\tfor i, ds := range groupsOrig {\n\t\tif len(groups) >= 2 && ds.NumDiff() > 0 {\n\t\t\tprev := &groups[len(groups)-2] // Unequal group\n\t\t\tcurr := &groups[len(groups)-1] // Equal group\n\t\t\tnext := &groupsOrig[i]         // Unequal group\n\t\t\thadX, hadY := prev.NumRemoved > 0, prev.NumInserted > 0\n\t\t\thasX, hasY := next.NumRemoved > 0, next.NumInserted > 0\n\t\t\tif ((hadX || hasX) && (hadY || hasY)) && curr.NumIdentical <= windowSize {\n\t\t\t\t*prev = prev.Append(*curr).Append(*next)\n\t\t\t\tgroups = groups[:len(groups)-1] // Truncate off equal group\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\t\tgroups = append(groups, ds)\n\t}\n\treturn groups\n}\n\n// cleanupSurroundingIdentical scans through all unequal groups, and\n// moves any leading sequence of equal elements to the preceding equal group and\n// moves and trailing sequence of equal elements to the succeeding equal group.\n//\n// This is necessary since coalesceInterveningIdentical may coalesce edit groups\n// together such that leading/trailing spans of equal elements becomes possible.\n// Note that this can occur even with an optimal diffing algorithm.\n//\n// Example:\n//\n//\tInput: [\n//\t\t{NumIdentical: 61},\n//\t\t{NumIdentical: 1 , NumRemoved: 11, NumInserted: 2}, // assume 3 leading identical elements\n//\t\t{NumIdentical: 67},\n//\t\t{NumIdentical: 7, NumRemoved: 12, NumInserted: 3},  // assume 10 trailing identical elements\n//\t\t{NumIdentical: 54},\n//\t]\n//\tOutput: [\n//\t\t{NumIdentical: 64}, // incremented by 3\n//\t\t{NumRemoved: 9},\n//\t\t{NumIdentical: 67},\n//\t\t{NumRemoved: 9},\n//\t\t{NumIdentical: 64}, // incremented by 10\n//\t]\nfunc cleanupSurroundingIdentical(groups []diffStats, eq func(i, j int) bool) []diffStats {\n\tvar ix, iy int // indexes into sequence x and y\n\tfor i, ds := range groups {\n\t\t// Handle equal group.\n\t\tif ds.NumDiff() == 0 {\n\t\t\tix += ds.NumIdentical\n\t\t\tiy += ds.NumIdentical\n\t\t\tcontinue\n\t\t}\n\n\t\t// Handle unequal group.\n\t\tnx := ds.NumIdentical + ds.NumRemoved + ds.NumModified\n\t\tny := ds.NumIdentical + ds.NumInserted + ds.NumModified\n\t\tvar numLeadingIdentical, numTrailingIdentical int\n\t\tfor j := 0; j < nx && j < ny && eq(ix+j, iy+j); j++ {\n\t\t\tnumLeadingIdentical++\n\t\t}\n\t\tfor j := 0; j < nx && j < ny && eq(ix+nx-1-j, iy+ny-1-j); j++ {\n\t\t\tnumTrailingIdentical++\n\t\t}\n\t\tif numIdentical := numLeadingIdentical + numTrailingIdentical; numIdentical > 0 {\n\t\t\tif numLeadingIdentical > 0 {\n\t\t\t\t// Remove leading identical span from this group and\n\t\t\t\t// insert it into the preceding group.\n\t\t\t\tif i-1 >= 0 {\n\t\t\t\t\tgroups[i-1].NumIdentical += numLeadingIdentical\n\t\t\t\t} else {\n\t\t\t\t\t// No preceding group exists, so prepend a new group,\n\t\t\t\t\t// but do so after we finish iterating over all groups.\n\t\t\t\t\tdefer func() {\n\t\t\t\t\t\tgroups = append([]diffStats{{Name: groups[0].Name, NumIdentical: numLeadingIdentical}}, groups...)\n\t\t\t\t\t}()\n\t\t\t\t}\n\t\t\t\t// Increment indexes since the preceding group would have handled this.\n\t\t\t\tix += numLeadingIdentical\n\t\t\t\tiy += numLeadingIdentical\n\t\t\t}\n\t\t\tif numTrailingIdentical > 0 {\n\t\t\t\t// Remove trailing identical span from this group and\n\t\t\t\t// insert it into the succeeding group.\n\t\t\t\tif i+1 < len(groups) {\n\t\t\t\t\tgroups[i+1].NumIdentical += numTrailingIdentical\n\t\t\t\t} else {\n\t\t\t\t\t// No succeeding group exists, so append a new group,\n\t\t\t\t\t// but do so after we finish iterating over all groups.\n\t\t\t\t\tdefer func() {\n\t\t\t\t\t\tgroups = append(groups, diffStats{Name: groups[len(groups)-1].Name, NumIdentical: numTrailingIdentical})\n\t\t\t\t\t}()\n\t\t\t\t}\n\t\t\t\t// Do not increment indexes since the succeeding group will handle this.\n\t\t\t}\n\n\t\t\t// Update this group since some identical elements were removed.\n\t\t\tnx -= numIdentical\n\t\t\tny -= numIdentical\n\t\t\tgroups[i] = diffStats{Name: ds.Name, NumRemoved: nx, NumInserted: ny}\n\t\t}\n\t\tix += nx\n\t\tiy += ny\n\t}\n\treturn groups\n}\n"
  },
  {
    "path": "vendor/github.com/google/go-cmp/cmp/report_text.go",
    "content": "// Copyright 2019, The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage cmp\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"math/rand\"\n\t\"strings\"\n\t\"time\"\n\t\"unicode/utf8\"\n\n\t\"github.com/google/go-cmp/cmp/internal/flags\"\n)\n\nvar randBool = rand.New(rand.NewSource(time.Now().Unix())).Intn(2) == 0\n\nconst maxColumnLength = 80\n\ntype indentMode int\n\nfunc (n indentMode) appendIndent(b []byte, d diffMode) []byte {\n\t// The output of Diff is documented as being unstable to provide future\n\t// flexibility in changing the output for more humanly readable reports.\n\t// This logic intentionally introduces instability to the exact output\n\t// so that users can detect accidental reliance on stability early on,\n\t// rather than much later when an actual change to the format occurs.\n\tif flags.Deterministic || randBool {\n\t\t// Use regular spaces (U+0020).\n\t\tswitch d {\n\t\tcase diffUnknown, diffIdentical:\n\t\t\tb = append(b, \"  \"...)\n\t\tcase diffRemoved:\n\t\t\tb = append(b, \"- \"...)\n\t\tcase diffInserted:\n\t\t\tb = append(b, \"+ \"...)\n\t\t}\n\t} else {\n\t\t// Use non-breaking spaces (U+00a0).\n\t\tswitch d {\n\t\tcase diffUnknown, diffIdentical:\n\t\t\tb = append(b, \"  \"...)\n\t\tcase diffRemoved:\n\t\t\tb = append(b, \"- \"...)\n\t\tcase diffInserted:\n\t\t\tb = append(b, \"+ \"...)\n\t\t}\n\t}\n\treturn repeatCount(n).appendChar(b, '\\t')\n}\n\ntype repeatCount int\n\nfunc (n repeatCount) appendChar(b []byte, c byte) []byte {\n\tfor ; n > 0; n-- {\n\t\tb = append(b, c)\n\t}\n\treturn b\n}\n\n// textNode is a simplified tree-based representation of structured text.\n// Possible node types are textWrap, textList, or textLine.\ntype textNode interface {\n\t// Len reports the length in bytes of a single-line version of the tree.\n\t// Nested textRecord.Diff and textRecord.Comment fields are ignored.\n\tLen() int\n\t// Equal reports whether the two trees are structurally identical.\n\t// Nested textRecord.Diff and textRecord.Comment fields are compared.\n\tEqual(textNode) bool\n\t// String returns the string representation of the text tree.\n\t// It is not guaranteed that len(x.String()) == x.Len(),\n\t// nor that x.String() == y.String() implies that x.Equal(y).\n\tString() string\n\n\t// formatCompactTo formats the contents of the tree as a single-line string\n\t// to the provided buffer. Any nested textRecord.Diff and textRecord.Comment\n\t// fields are ignored.\n\t//\n\t// However, not all nodes in the tree should be collapsed as a single-line.\n\t// If a node can be collapsed as a single-line, it is replaced by a textLine\n\t// node. Since the top-level node cannot replace itself, this also returns\n\t// the current node itself.\n\t//\n\t// This does not mutate the receiver.\n\tformatCompactTo([]byte, diffMode) ([]byte, textNode)\n\t// formatExpandedTo formats the contents of the tree as a multi-line string\n\t// to the provided buffer. In order for column alignment to operate well,\n\t// formatCompactTo must be called before calling formatExpandedTo.\n\tformatExpandedTo([]byte, diffMode, indentMode) []byte\n}\n\n// textWrap is a wrapper that concatenates a prefix and/or a suffix\n// to the underlying node.\ntype textWrap struct {\n\tPrefix   string      // e.g., \"bytes.Buffer{\"\n\tValue    textNode    // textWrap | textList | textLine\n\tSuffix   string      // e.g., \"}\"\n\tMetadata interface{} // arbitrary metadata; has no effect on formatting\n}\n\nfunc (s *textWrap) Len() int {\n\treturn len(s.Prefix) + s.Value.Len() + len(s.Suffix)\n}\nfunc (s1 *textWrap) Equal(s2 textNode) bool {\n\tif s2, ok := s2.(*textWrap); ok {\n\t\treturn s1.Prefix == s2.Prefix && s1.Value.Equal(s2.Value) && s1.Suffix == s2.Suffix\n\t}\n\treturn false\n}\nfunc (s *textWrap) String() string {\n\tvar d diffMode\n\tvar n indentMode\n\t_, s2 := s.formatCompactTo(nil, d)\n\tb := n.appendIndent(nil, d)      // Leading indent\n\tb = s2.formatExpandedTo(b, d, n) // Main body\n\tb = append(b, '\\n')              // Trailing newline\n\treturn string(b)\n}\nfunc (s *textWrap) formatCompactTo(b []byte, d diffMode) ([]byte, textNode) {\n\tn0 := len(b) // Original buffer length\n\tb = append(b, s.Prefix...)\n\tb, s.Value = s.Value.formatCompactTo(b, d)\n\tb = append(b, s.Suffix...)\n\tif _, ok := s.Value.(textLine); ok {\n\t\treturn b, textLine(b[n0:])\n\t}\n\treturn b, s\n}\nfunc (s *textWrap) formatExpandedTo(b []byte, d diffMode, n indentMode) []byte {\n\tb = append(b, s.Prefix...)\n\tb = s.Value.formatExpandedTo(b, d, n)\n\tb = append(b, s.Suffix...)\n\treturn b\n}\n\n// textList is a comma-separated list of textWrap or textLine nodes.\n// The list may be formatted as multi-lines or single-line at the discretion\n// of the textList.formatCompactTo method.\ntype textList []textRecord\ntype textRecord struct {\n\tDiff       diffMode     // e.g., 0 or '-' or '+'\n\tKey        string       // e.g., \"MyField\"\n\tValue      textNode     // textWrap | textLine\n\tElideComma bool         // avoid trailing comma\n\tComment    fmt.Stringer // e.g., \"6 identical fields\"\n}\n\n// AppendEllipsis appends a new ellipsis node to the list if none already\n// exists at the end. If cs is non-zero it coalesces the statistics with the\n// previous diffStats.\nfunc (s *textList) AppendEllipsis(ds diffStats) {\n\thasStats := !ds.IsZero()\n\tif len(*s) == 0 || !(*s)[len(*s)-1].Value.Equal(textEllipsis) {\n\t\tif hasStats {\n\t\t\t*s = append(*s, textRecord{Value: textEllipsis, ElideComma: true, Comment: ds})\n\t\t} else {\n\t\t\t*s = append(*s, textRecord{Value: textEllipsis, ElideComma: true})\n\t\t}\n\t\treturn\n\t}\n\tif hasStats {\n\t\t(*s)[len(*s)-1].Comment = (*s)[len(*s)-1].Comment.(diffStats).Append(ds)\n\t}\n}\n\nfunc (s textList) Len() (n int) {\n\tfor i, r := range s {\n\t\tn += len(r.Key)\n\t\tif r.Key != \"\" {\n\t\t\tn += len(\": \")\n\t\t}\n\t\tn += r.Value.Len()\n\t\tif i < len(s)-1 {\n\t\t\tn += len(\", \")\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (s1 textList) Equal(s2 textNode) bool {\n\tif s2, ok := s2.(textList); ok {\n\t\tif len(s1) != len(s2) {\n\t\t\treturn false\n\t\t}\n\t\tfor i := range s1 {\n\t\t\tr1, r2 := s1[i], s2[i]\n\t\t\tif !(r1.Diff == r2.Diff && r1.Key == r2.Key && r1.Value.Equal(r2.Value) && r1.Comment == r2.Comment) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (s textList) String() string {\n\treturn (&textWrap{Prefix: \"{\", Value: s, Suffix: \"}\"}).String()\n}\n\nfunc (s textList) formatCompactTo(b []byte, d diffMode) ([]byte, textNode) {\n\ts = append(textList(nil), s...) // Avoid mutating original\n\n\t// Determine whether we can collapse this list as a single line.\n\tn0 := len(b) // Original buffer length\n\tvar multiLine bool\n\tfor i, r := range s {\n\t\tif r.Diff == diffInserted || r.Diff == diffRemoved {\n\t\t\tmultiLine = true\n\t\t}\n\t\tb = append(b, r.Key...)\n\t\tif r.Key != \"\" {\n\t\t\tb = append(b, \": \"...)\n\t\t}\n\t\tb, s[i].Value = r.Value.formatCompactTo(b, d|r.Diff)\n\t\tif _, ok := s[i].Value.(textLine); !ok {\n\t\t\tmultiLine = true\n\t\t}\n\t\tif r.Comment != nil {\n\t\t\tmultiLine = true\n\t\t}\n\t\tif i < len(s)-1 {\n\t\t\tb = append(b, \", \"...)\n\t\t}\n\t}\n\t// Force multi-lined output when printing a removed/inserted node that\n\t// is sufficiently long.\n\tif (d == diffInserted || d == diffRemoved) && len(b[n0:]) > maxColumnLength {\n\t\tmultiLine = true\n\t}\n\tif !multiLine {\n\t\treturn b, textLine(b[n0:])\n\t}\n\treturn b, s\n}\n\nfunc (s textList) formatExpandedTo(b []byte, d diffMode, n indentMode) []byte {\n\talignKeyLens := s.alignLens(\n\t\tfunc(r textRecord) bool {\n\t\t\t_, isLine := r.Value.(textLine)\n\t\t\treturn r.Key == \"\" || !isLine\n\t\t},\n\t\tfunc(r textRecord) int { return utf8.RuneCountInString(r.Key) },\n\t)\n\talignValueLens := s.alignLens(\n\t\tfunc(r textRecord) bool {\n\t\t\t_, isLine := r.Value.(textLine)\n\t\t\treturn !isLine || r.Value.Equal(textEllipsis) || r.Comment == nil\n\t\t},\n\t\tfunc(r textRecord) int { return utf8.RuneCount(r.Value.(textLine)) },\n\t)\n\n\t// Format lists of simple lists in a batched form.\n\t// If the list is sequence of only textLine values,\n\t// then batch multiple values on a single line.\n\tvar isSimple bool\n\tfor _, r := range s {\n\t\t_, isLine := r.Value.(textLine)\n\t\tisSimple = r.Diff == 0 && r.Key == \"\" && isLine && r.Comment == nil\n\t\tif !isSimple {\n\t\t\tbreak\n\t\t}\n\t}\n\tif isSimple {\n\t\tn++\n\t\tvar batch []byte\n\t\temitBatch := func() {\n\t\t\tif len(batch) > 0 {\n\t\t\t\tb = n.appendIndent(append(b, '\\n'), d)\n\t\t\t\tb = append(b, bytes.TrimRight(batch, \" \")...)\n\t\t\t\tbatch = batch[:0]\n\t\t\t}\n\t\t}\n\t\tfor _, r := range s {\n\t\t\tline := r.Value.(textLine)\n\t\t\tif len(batch)+len(line)+len(\", \") > maxColumnLength {\n\t\t\t\temitBatch()\n\t\t\t}\n\t\t\tbatch = append(batch, line...)\n\t\t\tbatch = append(batch, \", \"...)\n\t\t}\n\t\temitBatch()\n\t\tn--\n\t\treturn n.appendIndent(append(b, '\\n'), d)\n\t}\n\n\t// Format the list as a multi-lined output.\n\tn++\n\tfor i, r := range s {\n\t\tb = n.appendIndent(append(b, '\\n'), d|r.Diff)\n\t\tif r.Key != \"\" {\n\t\t\tb = append(b, r.Key+\": \"...)\n\t\t}\n\t\tb = alignKeyLens[i].appendChar(b, ' ')\n\n\t\tb = r.Value.formatExpandedTo(b, d|r.Diff, n)\n\t\tif !r.ElideComma {\n\t\t\tb = append(b, ',')\n\t\t}\n\t\tb = alignValueLens[i].appendChar(b, ' ')\n\n\t\tif r.Comment != nil {\n\t\t\tb = append(b, \" // \"+r.Comment.String()...)\n\t\t}\n\t}\n\tn--\n\n\treturn n.appendIndent(append(b, '\\n'), d)\n}\n\nfunc (s textList) alignLens(\n\tskipFunc func(textRecord) bool,\n\tlenFunc func(textRecord) int,\n) []repeatCount {\n\tvar startIdx, endIdx, maxLen int\n\tlens := make([]repeatCount, len(s))\n\tfor i, r := range s {\n\t\tif skipFunc(r) {\n\t\t\tfor j := startIdx; j < endIdx && j < len(s); j++ {\n\t\t\t\tlens[j] = repeatCount(maxLen - lenFunc(s[j]))\n\t\t\t}\n\t\t\tstartIdx, endIdx, maxLen = i+1, i+1, 0\n\t\t} else {\n\t\t\tif maxLen < lenFunc(r) {\n\t\t\t\tmaxLen = lenFunc(r)\n\t\t\t}\n\t\t\tendIdx = i + 1\n\t\t}\n\t}\n\tfor j := startIdx; j < endIdx && j < len(s); j++ {\n\t\tlens[j] = repeatCount(maxLen - lenFunc(s[j]))\n\t}\n\treturn lens\n}\n\n// textLine is a single-line segment of text and is always a leaf node\n// in the textNode tree.\ntype textLine []byte\n\nvar (\n\ttextNil      = textLine(\"nil\")\n\ttextEllipsis = textLine(\"...\")\n)\n\nfunc (s textLine) Len() int {\n\treturn len(s)\n}\nfunc (s1 textLine) Equal(s2 textNode) bool {\n\tif s2, ok := s2.(textLine); ok {\n\t\treturn bytes.Equal([]byte(s1), []byte(s2))\n\t}\n\treturn false\n}\nfunc (s textLine) String() string {\n\treturn string(s)\n}\nfunc (s textLine) formatCompactTo(b []byte, d diffMode) ([]byte, textNode) {\n\treturn append(b, s...), s\n}\nfunc (s textLine) formatExpandedTo(b []byte, _ diffMode, _ indentMode) []byte {\n\treturn append(b, s...)\n}\n\ntype diffStats struct {\n\tName         string\n\tNumIgnored   int\n\tNumIdentical int\n\tNumRemoved   int\n\tNumInserted  int\n\tNumModified  int\n}\n\nfunc (s diffStats) IsZero() bool {\n\ts.Name = \"\"\n\treturn s == diffStats{}\n}\n\nfunc (s diffStats) NumDiff() int {\n\treturn s.NumRemoved + s.NumInserted + s.NumModified\n}\n\nfunc (s diffStats) Append(ds diffStats) diffStats {\n\tassert(s.Name == ds.Name)\n\ts.NumIgnored += ds.NumIgnored\n\ts.NumIdentical += ds.NumIdentical\n\ts.NumRemoved += ds.NumRemoved\n\ts.NumInserted += ds.NumInserted\n\ts.NumModified += ds.NumModified\n\treturn s\n}\n\n// String prints a humanly-readable summary of coalesced records.\n//\n// Example:\n//\n//\tdiffStats{Name: \"Field\", NumIgnored: 5}.String() => \"5 ignored fields\"\nfunc (s diffStats) String() string {\n\tvar ss []string\n\tvar sum int\n\tlabels := [...]string{\"ignored\", \"identical\", \"removed\", \"inserted\", \"modified\"}\n\tcounts := [...]int{s.NumIgnored, s.NumIdentical, s.NumRemoved, s.NumInserted, s.NumModified}\n\tfor i, n := range counts {\n\t\tif n > 0 {\n\t\t\tss = append(ss, fmt.Sprintf(\"%d %v\", n, labels[i]))\n\t\t}\n\t\tsum += n\n\t}\n\n\t// Pluralize the name (adjusting for some obscure English grammar rules).\n\tname := s.Name\n\tif sum > 1 {\n\t\tname += \"s\"\n\t\tif strings.HasSuffix(name, \"ys\") {\n\t\t\tname = name[:len(name)-2] + \"ies\" // e.g., \"entrys\" => \"entries\"\n\t\t}\n\t}\n\n\t// Format the list according to English grammar (with Oxford comma).\n\tswitch n := len(ss); n {\n\tcase 0:\n\t\treturn \"\"\n\tcase 1, 2:\n\t\treturn strings.Join(ss, \" and \") + \" \" + name\n\tdefault:\n\t\treturn strings.Join(ss[:n-1], \", \") + \", and \" + ss[n-1] + \" \" + name\n\t}\n}\n\ntype commentString string\n\nfunc (s commentString) String() string { return string(s) }\n"
  },
  {
    "path": "vendor/github.com/google/go-cmp/cmp/report_value.go",
    "content": "// Copyright 2019, The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage cmp\n\nimport \"reflect\"\n\n// valueNode represents a single node within a report, which is a\n// structured representation of the value tree, containing information\n// regarding which nodes are equal or not.\ntype valueNode struct {\n\tparent *valueNode\n\n\tType   reflect.Type\n\tValueX reflect.Value\n\tValueY reflect.Value\n\n\t// NumSame is the number of leaf nodes that are equal.\n\t// All descendants are equal only if NumDiff is 0.\n\tNumSame int\n\t// NumDiff is the number of leaf nodes that are not equal.\n\tNumDiff int\n\t// NumIgnored is the number of leaf nodes that are ignored.\n\tNumIgnored int\n\t// NumCompared is the number of leaf nodes that were compared\n\t// using an Equal method or Comparer function.\n\tNumCompared int\n\t// NumTransformed is the number of non-leaf nodes that were transformed.\n\tNumTransformed int\n\t// NumChildren is the number of transitive descendants of this node.\n\t// This counts from zero; thus, leaf nodes have no descendants.\n\tNumChildren int\n\t// MaxDepth is the maximum depth of the tree. This counts from zero;\n\t// thus, leaf nodes have a depth of zero.\n\tMaxDepth int\n\n\t// Records is a list of struct fields, slice elements, or map entries.\n\tRecords []reportRecord // If populated, implies Value is not populated\n\n\t// Value is the result of a transformation, pointer indirect, of\n\t// type assertion.\n\tValue *valueNode // If populated, implies Records is not populated\n\n\t// TransformerName is the name of the transformer.\n\tTransformerName string // If non-empty, implies Value is populated\n}\ntype reportRecord struct {\n\tKey   reflect.Value // Invalid for slice element\n\tValue *valueNode\n}\n\nfunc (parent *valueNode) PushStep(ps PathStep) (child *valueNode) {\n\tvx, vy := ps.Values()\n\tchild = &valueNode{parent: parent, Type: ps.Type(), ValueX: vx, ValueY: vy}\n\tswitch s := ps.(type) {\n\tcase StructField:\n\t\tassert(parent.Value == nil)\n\t\tparent.Records = append(parent.Records, reportRecord{Key: reflect.ValueOf(s.Name()), Value: child})\n\tcase SliceIndex:\n\t\tassert(parent.Value == nil)\n\t\tparent.Records = append(parent.Records, reportRecord{Value: child})\n\tcase MapIndex:\n\t\tassert(parent.Value == nil)\n\t\tparent.Records = append(parent.Records, reportRecord{Key: s.Key(), Value: child})\n\tcase Indirect:\n\t\tassert(parent.Value == nil && parent.Records == nil)\n\t\tparent.Value = child\n\tcase TypeAssertion:\n\t\tassert(parent.Value == nil && parent.Records == nil)\n\t\tparent.Value = child\n\tcase Transform:\n\t\tassert(parent.Value == nil && parent.Records == nil)\n\t\tparent.Value = child\n\t\tparent.TransformerName = s.Name()\n\t\tparent.NumTransformed++\n\tdefault:\n\t\tassert(parent == nil) // Must be the root step\n\t}\n\treturn child\n}\n\nfunc (r *valueNode) Report(rs Result) {\n\tassert(r.MaxDepth == 0) // May only be called on leaf nodes\n\n\tif rs.ByIgnore() {\n\t\tr.NumIgnored++\n\t} else {\n\t\tif rs.Equal() {\n\t\t\tr.NumSame++\n\t\t} else {\n\t\t\tr.NumDiff++\n\t\t}\n\t}\n\tassert(r.NumSame+r.NumDiff+r.NumIgnored == 1)\n\n\tif rs.ByMethod() {\n\t\tr.NumCompared++\n\t}\n\tif rs.ByFunc() {\n\t\tr.NumCompared++\n\t}\n\tassert(r.NumCompared <= 1)\n}\n\nfunc (child *valueNode) PopStep() (parent *valueNode) {\n\tif child.parent == nil {\n\t\treturn nil\n\t}\n\tparent = child.parent\n\tparent.NumSame += child.NumSame\n\tparent.NumDiff += child.NumDiff\n\tparent.NumIgnored += child.NumIgnored\n\tparent.NumCompared += child.NumCompared\n\tparent.NumTransformed += child.NumTransformed\n\tparent.NumChildren += child.NumChildren + 1\n\tif parent.MaxDepth < child.MaxDepth+1 {\n\t\tparent.MaxDepth = child.MaxDepth + 1\n\t}\n\treturn parent\n}\n"
  },
  {
    "path": "vendor/github.com/google/gofuzz/.travis.yml",
    "content": "language: go\n\ngo:\n  - 1.11.x\n  - 1.12.x\n  - 1.13.x\n  - master\n\nscript:\n  - go test -cover\n"
  },
  {
    "path": "vendor/github.com/google/gofuzz/CONTRIBUTING.md",
    "content": "# How to contribute #\n\nWe'd love to accept your patches and contributions to this project.  There are\njust a few small guidelines you need to follow.\n\n\n## Contributor License Agreement ##\n\nContributions to any Google project must be accompanied by a Contributor\nLicense Agreement.  This is not a copyright **assignment**, it simply gives\nGoogle permission to use and redistribute your contributions as part of the\nproject.\n\n  * If you are an individual writing original source code and you're sure you\n    own the intellectual property, then you'll need to sign an [individual\n    CLA][].\n\n  * If you work for a company that wants to allow you to contribute your work,\n    then you'll need to sign a [corporate CLA][].\n\nYou generally only need to submit a CLA once, so if you've already submitted\none (even if it was for a different project), you probably don't need to do it\nagain.\n\n[individual CLA]: https://developers.google.com/open-source/cla/individual\n[corporate CLA]: https://developers.google.com/open-source/cla/corporate\n\n\n## Submitting a patch ##\n\n  1. It's generally best to start by opening a new issue describing the bug or\n     feature you're intending to fix.  Even if you think it's relatively minor,\n     it's helpful to know what people are working on.  Mention in the initial\n     issue that you are planning to work on that bug or feature so that it can\n     be assigned to you.\n\n  1. Follow the normal process of [forking][] the project, and setup a new\n     branch to work in.  It's important that each group of changes be done in\n     separate branches in order to ensure that a pull request only includes the\n     commits related to that bug or feature.\n\n  1. Go makes it very simple to ensure properly formatted code, so always run\n     `go fmt` on your code before committing it.  You should also run\n     [golint][] over your code.  As noted in the [golint readme][], it's not\n     strictly necessary that your code be completely \"lint-free\", but this will\n     help you find common style issues.\n\n  1. Any significant changes should almost always be accompanied by tests.  The\n     project already has good test coverage, so look at some of the existing\n     tests if you're unsure how to go about it.  [gocov][] and [gocov-html][]\n     are invaluable tools for seeing which parts of your code aren't being\n     exercised by your tests.\n\n  1. Do your best to have [well-formed commit messages][] for each change.\n     This provides consistency throughout the project, and ensures that commit\n     messages are able to be formatted properly by various git tools.\n\n  1. Finally, push the commits to your fork and submit a [pull request][].\n\n[forking]: https://help.github.com/articles/fork-a-repo\n[golint]: https://github.com/golang/lint\n[golint readme]: https://github.com/golang/lint/blob/master/README\n[gocov]: https://github.com/axw/gocov\n[gocov-html]: https://github.com/matm/gocov-html\n[well-formed commit messages]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html\n[squash]: http://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits\n[pull request]: https://help.github.com/articles/creating-a-pull-request\n"
  },
  {
    "path": "vendor/github.com/google/gofuzz/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/google/gofuzz/README.md",
    "content": "gofuzz\n======\n\ngofuzz is a library for populating go objects with random values.\n\n[![GoDoc](https://godoc.org/github.com/google/gofuzz?status.svg)](https://godoc.org/github.com/google/gofuzz)\n[![Travis](https://travis-ci.org/google/gofuzz.svg?branch=master)](https://travis-ci.org/google/gofuzz)\n\nThis is useful for testing:\n\n* Do your project's objects really serialize/unserialize correctly in all cases?\n* Is there an incorrectly formatted object that will cause your project to panic?\n\nImport with ```import \"github.com/google/gofuzz\"```\n\nYou can use it on single variables:\n```go\nf := fuzz.New()\nvar myInt int\nf.Fuzz(&myInt) // myInt gets a random value.\n```\n\nYou can use it on maps:\n```go\nf := fuzz.New().NilChance(0).NumElements(1, 1)\nvar myMap map[ComplexKeyType]string\nf.Fuzz(&myMap) // myMap will have exactly one element.\n```\n\nCustomize the chance of getting a nil pointer:\n```go\nf := fuzz.New().NilChance(.5)\nvar fancyStruct struct {\n  A, B, C, D *string\n}\nf.Fuzz(&fancyStruct) // About half the pointers should be set.\n```\n\nYou can even customize the randomization completely if needed:\n```go\ntype MyEnum string\nconst (\n        A MyEnum = \"A\"\n        B MyEnum = \"B\"\n)\ntype MyInfo struct {\n        Type MyEnum\n        AInfo *string\n        BInfo *string\n}\n\nf := fuzz.New().NilChance(0).Funcs(\n        func(e *MyInfo, c fuzz.Continue) {\n                switch c.Intn(2) {\n                case 0:\n                        e.Type = A\n                        c.Fuzz(&e.AInfo)\n                case 1:\n                        e.Type = B\n                        c.Fuzz(&e.BInfo)\n                }\n        },\n)\n\nvar myObject MyInfo\nf.Fuzz(&myObject) // Type will correspond to whether A or B info is set.\n```\n\nSee more examples in ```example_test.go```.\n\nYou can use this library for easier [go-fuzz](https://github.com/dvyukov/go-fuzz)ing.\ngo-fuzz provides the user a byte-slice, which should be converted to different inputs\nfor the tested function. This library can help convert the byte slice. Consider for\nexample a fuzz test for a the function `mypackage.MyFunc` that takes an int arguments:\n```go\n// +build gofuzz\npackage mypackage\n\nimport fuzz \"github.com/google/gofuzz\"\n\nfunc Fuzz(data []byte) int {\n        var i int\n        fuzz.NewFromGoFuzz(data).Fuzz(&i)\n        MyFunc(i)\n        return 0\n}\n```\n\nHappy testing!\n"
  },
  {
    "path": "vendor/github.com/google/gofuzz/bytesource/bytesource.go",
    "content": "/*\nCopyright 2014 Google Inc. All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package bytesource provides a rand.Source64 that is determined by a slice of bytes.\npackage bytesource\n\nimport (\n\t\"bytes\"\n\t\"encoding/binary\"\n\t\"io\"\n\t\"math/rand\"\n)\n\n// ByteSource implements rand.Source64 determined by a slice of bytes. The random numbers are\n// generated from each 8 bytes in the slice, until the last bytes are consumed, from which a\n// fallback pseudo random source is created in case more random numbers are required.\n// It also exposes a `bytes.Reader` API, which lets callers consume the bytes directly.\ntype ByteSource struct {\n\t*bytes.Reader\n\tfallback rand.Source\n}\n\n// New returns a new ByteSource from a given slice of bytes.\nfunc New(input []byte) *ByteSource {\n\ts := &ByteSource{\n\t\tReader:   bytes.NewReader(input),\n\t\tfallback: rand.NewSource(0),\n\t}\n\tif len(input) > 0 {\n\t\ts.fallback = rand.NewSource(int64(s.consumeUint64()))\n\t}\n\treturn s\n}\n\nfunc (s *ByteSource) Uint64() uint64 {\n\t// Return from input if it was not exhausted.\n\tif s.Len() > 0 {\n\t\treturn s.consumeUint64()\n\t}\n\n\t// Input was exhausted, return random number from fallback (in this case fallback should not be\n\t// nil). Try first having a Uint64 output (Should work in current rand implementation),\n\t// otherwise return a conversion of Int63.\n\tif s64, ok := s.fallback.(rand.Source64); ok {\n\t\treturn s64.Uint64()\n\t}\n\treturn uint64(s.fallback.Int63())\n}\n\nfunc (s *ByteSource) Int63() int64 {\n\treturn int64(s.Uint64() >> 1)\n}\n\nfunc (s *ByteSource) Seed(seed int64) {\n\ts.fallback = rand.NewSource(seed)\n\ts.Reader = bytes.NewReader(nil)\n}\n\n// consumeUint64 reads 8 bytes from the input and convert them to a uint64. It assumes that the the\n// bytes reader is not empty.\nfunc (s *ByteSource) consumeUint64() uint64 {\n\tvar bytes [8]byte\n\t_, err := s.Read(bytes[:])\n\tif err != nil && err != io.EOF {\n\t\tpanic(\"failed reading source\") // Should not happen.\n\t}\n\treturn binary.BigEndian.Uint64(bytes[:])\n}\n"
  },
  {
    "path": "vendor/github.com/google/gofuzz/doc.go",
    "content": "/*\nCopyright 2014 Google Inc. All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package fuzz is a library for populating go objects with random values.\npackage fuzz\n"
  },
  {
    "path": "vendor/github.com/google/gofuzz/fuzz.go",
    "content": "/*\nCopyright 2014 Google Inc. All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fuzz\n\nimport (\n\t\"fmt\"\n\t\"math/rand\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"time\"\n\n\t\"github.com/google/gofuzz/bytesource\"\n\t\"strings\"\n)\n\n// fuzzFuncMap is a map from a type to a fuzzFunc that handles that type.\ntype fuzzFuncMap map[reflect.Type]reflect.Value\n\n// Fuzzer knows how to fill any object with random fields.\ntype Fuzzer struct {\n\tfuzzFuncs         fuzzFuncMap\n\tdefaultFuzzFuncs  fuzzFuncMap\n\tr                 *rand.Rand\n\tnilChance         float64\n\tminElements       int\n\tmaxElements       int\n\tmaxDepth          int\n\tskipFieldPatterns []*regexp.Regexp\n}\n\n// New returns a new Fuzzer. Customize your Fuzzer further by calling Funcs,\n// RandSource, NilChance, or NumElements in any order.\nfunc New() *Fuzzer {\n\treturn NewWithSeed(time.Now().UnixNano())\n}\n\nfunc NewWithSeed(seed int64) *Fuzzer {\n\tf := &Fuzzer{\n\t\tdefaultFuzzFuncs: fuzzFuncMap{\n\t\t\treflect.TypeOf(&time.Time{}): reflect.ValueOf(fuzzTime),\n\t\t},\n\n\t\tfuzzFuncs:   fuzzFuncMap{},\n\t\tr:           rand.New(rand.NewSource(seed)),\n\t\tnilChance:   .2,\n\t\tminElements: 1,\n\t\tmaxElements: 10,\n\t\tmaxDepth:    100,\n\t}\n\treturn f\n}\n\n// NewFromGoFuzz is a helper function that enables using gofuzz (this\n// project) with go-fuzz (https://github.com/dvyukov/go-fuzz) for continuous\n// fuzzing. Essentially, it enables translating the fuzzing bytes from\n// go-fuzz to any Go object using this library.\n//\n// This implementation promises a constant translation from a given slice of\n// bytes to the fuzzed objects. This promise will remain over future\n// versions of Go and of this library.\n//\n// Note: the returned Fuzzer should not be shared between multiple goroutines,\n// as its deterministic output will no longer be available.\n//\n// Example: use go-fuzz to test the function `MyFunc(int)` in the package\n// `mypackage`. Add the file: \"mypacakge_fuzz.go\" with the content:\n//\n// // +build gofuzz\n// package mypacakge\n// import fuzz \"github.com/google/gofuzz\"\n// func Fuzz(data []byte) int {\n// \tvar i int\n// \tfuzz.NewFromGoFuzz(data).Fuzz(&i)\n// \tMyFunc(i)\n// \treturn 0\n// }\nfunc NewFromGoFuzz(data []byte) *Fuzzer {\n\treturn New().RandSource(bytesource.New(data))\n}\n\n// Funcs adds each entry in fuzzFuncs as a custom fuzzing function.\n//\n// Each entry in fuzzFuncs must be a function taking two parameters.\n// The first parameter must be a pointer or map. It is the variable that\n// function will fill with random data. The second parameter must be a\n// fuzz.Continue, which will provide a source of randomness and a way\n// to automatically continue fuzzing smaller pieces of the first parameter.\n//\n// These functions are called sensibly, e.g., if you wanted custom string\n// fuzzing, the function `func(s *string, c fuzz.Continue)` would get\n// called and passed the address of strings. Maps and pointers will always\n// be made/new'd for you, ignoring the NilChange option. For slices, it\n// doesn't make much sense to  pre-create them--Fuzzer doesn't know how\n// long you want your slice--so take a pointer to a slice, and make it\n// yourself. (If you don't want your map/pointer type pre-made, take a\n// pointer to it, and make it yourself.) See the examples for a range of\n// custom functions.\nfunc (f *Fuzzer) Funcs(fuzzFuncs ...interface{}) *Fuzzer {\n\tfor i := range fuzzFuncs {\n\t\tv := reflect.ValueOf(fuzzFuncs[i])\n\t\tif v.Kind() != reflect.Func {\n\t\t\tpanic(\"Need only funcs!\")\n\t\t}\n\t\tt := v.Type()\n\t\tif t.NumIn() != 2 || t.NumOut() != 0 {\n\t\t\tpanic(\"Need 2 in and 0 out params!\")\n\t\t}\n\t\targT := t.In(0)\n\t\tswitch argT.Kind() {\n\t\tcase reflect.Ptr, reflect.Map:\n\t\tdefault:\n\t\t\tpanic(\"fuzzFunc must take pointer or map type\")\n\t\t}\n\t\tif t.In(1) != reflect.TypeOf(Continue{}) {\n\t\t\tpanic(\"fuzzFunc's second parameter must be type fuzz.Continue\")\n\t\t}\n\t\tf.fuzzFuncs[argT] = v\n\t}\n\treturn f\n}\n\n// RandSource causes f to get values from the given source of randomness.\n// Use if you want deterministic fuzzing.\nfunc (f *Fuzzer) RandSource(s rand.Source) *Fuzzer {\n\tf.r = rand.New(s)\n\treturn f\n}\n\n// NilChance sets the probability of creating a nil pointer, map, or slice to\n// 'p'. 'p' should be between 0 (no nils) and 1 (all nils), inclusive.\nfunc (f *Fuzzer) NilChance(p float64) *Fuzzer {\n\tif p < 0 || p > 1 {\n\t\tpanic(\"p should be between 0 and 1, inclusive.\")\n\t}\n\tf.nilChance = p\n\treturn f\n}\n\n// NumElements sets the minimum and maximum number of elements that will be\n// added to a non-nil map or slice.\nfunc (f *Fuzzer) NumElements(atLeast, atMost int) *Fuzzer {\n\tif atLeast > atMost {\n\t\tpanic(\"atLeast must be <= atMost\")\n\t}\n\tif atLeast < 0 {\n\t\tpanic(\"atLeast must be >= 0\")\n\t}\n\tf.minElements = atLeast\n\tf.maxElements = atMost\n\treturn f\n}\n\nfunc (f *Fuzzer) genElementCount() int {\n\tif f.minElements == f.maxElements {\n\t\treturn f.minElements\n\t}\n\treturn f.minElements + f.r.Intn(f.maxElements-f.minElements+1)\n}\n\nfunc (f *Fuzzer) genShouldFill() bool {\n\treturn f.r.Float64() >= f.nilChance\n}\n\n// MaxDepth sets the maximum number of recursive fuzz calls that will be made\n// before stopping.  This includes struct members, pointers, and map and slice\n// elements.\nfunc (f *Fuzzer) MaxDepth(d int) *Fuzzer {\n\tf.maxDepth = d\n\treturn f\n}\n\n// Skip fields which match the supplied pattern. Call this multiple times if needed\n// This is useful to skip XXX_ fields generated by protobuf\nfunc (f *Fuzzer) SkipFieldsWithPattern(pattern *regexp.Regexp) *Fuzzer {\n\tf.skipFieldPatterns = append(f.skipFieldPatterns, pattern)\n\treturn f\n}\n\n// Fuzz recursively fills all of obj's fields with something random.  First\n// this tries to find a custom fuzz function (see Funcs).  If there is no\n// custom function this tests whether the object implements fuzz.Interface and,\n// if so, calls Fuzz on it to fuzz itself.  If that fails, this will see if\n// there is a default fuzz function provided by this package.  If all of that\n// fails, this will generate random values for all primitive fields and then\n// recurse for all non-primitives.\n//\n// This is safe for cyclic or tree-like structs, up to a limit.  Use the\n// MaxDepth method to adjust how deep you need it to recurse.\n//\n// obj must be a pointer. Only exported (public) fields can be set (thanks,\n// golang :/ ) Intended for tests, so will panic on bad input or unimplemented\n// fields.\nfunc (f *Fuzzer) Fuzz(obj interface{}) {\n\tv := reflect.ValueOf(obj)\n\tif v.Kind() != reflect.Ptr {\n\t\tpanic(\"needed ptr!\")\n\t}\n\tv = v.Elem()\n\tf.fuzzWithContext(v, 0)\n}\n\n// FuzzNoCustom is just like Fuzz, except that any custom fuzz function for\n// obj's type will not be called and obj will not be tested for fuzz.Interface\n// conformance.  This applies only to obj and not other instances of obj's\n// type.\n// Not safe for cyclic or tree-like structs!\n// obj must be a pointer. Only exported (public) fields can be set (thanks, golang :/ )\n// Intended for tests, so will panic on bad input or unimplemented fields.\nfunc (f *Fuzzer) FuzzNoCustom(obj interface{}) {\n\tv := reflect.ValueOf(obj)\n\tif v.Kind() != reflect.Ptr {\n\t\tpanic(\"needed ptr!\")\n\t}\n\tv = v.Elem()\n\tf.fuzzWithContext(v, flagNoCustomFuzz)\n}\n\nconst (\n\t// Do not try to find a custom fuzz function.  Does not apply recursively.\n\tflagNoCustomFuzz uint64 = 1 << iota\n)\n\nfunc (f *Fuzzer) fuzzWithContext(v reflect.Value, flags uint64) {\n\tfc := &fuzzerContext{fuzzer: f}\n\tfc.doFuzz(v, flags)\n}\n\n// fuzzerContext carries context about a single fuzzing run, which lets Fuzzer\n// be thread-safe.\ntype fuzzerContext struct {\n\tfuzzer   *Fuzzer\n\tcurDepth int\n}\n\nfunc (fc *fuzzerContext) doFuzz(v reflect.Value, flags uint64) {\n\tif fc.curDepth >= fc.fuzzer.maxDepth {\n\t\treturn\n\t}\n\tfc.curDepth++\n\tdefer func() { fc.curDepth-- }()\n\n\tif !v.CanSet() {\n\t\treturn\n\t}\n\n\tif flags&flagNoCustomFuzz == 0 {\n\t\t// Check for both pointer and non-pointer custom functions.\n\t\tif v.CanAddr() && fc.tryCustom(v.Addr()) {\n\t\t\treturn\n\t\t}\n\t\tif fc.tryCustom(v) {\n\t\t\treturn\n\t\t}\n\t}\n\n\tif fn, ok := fillFuncMap[v.Kind()]; ok {\n\t\tfn(v, fc.fuzzer.r)\n\t\treturn\n\t}\n\n\tswitch v.Kind() {\n\tcase reflect.Map:\n\t\tif fc.fuzzer.genShouldFill() {\n\t\t\tv.Set(reflect.MakeMap(v.Type()))\n\t\t\tn := fc.fuzzer.genElementCount()\n\t\t\tfor i := 0; i < n; i++ {\n\t\t\t\tkey := reflect.New(v.Type().Key()).Elem()\n\t\t\t\tfc.doFuzz(key, 0)\n\t\t\t\tval := reflect.New(v.Type().Elem()).Elem()\n\t\t\t\tfc.doFuzz(val, 0)\n\t\t\t\tv.SetMapIndex(key, val)\n\t\t\t}\n\t\t\treturn\n\t\t}\n\t\tv.Set(reflect.Zero(v.Type()))\n\tcase reflect.Ptr:\n\t\tif fc.fuzzer.genShouldFill() {\n\t\t\tv.Set(reflect.New(v.Type().Elem()))\n\t\t\tfc.doFuzz(v.Elem(), 0)\n\t\t\treturn\n\t\t}\n\t\tv.Set(reflect.Zero(v.Type()))\n\tcase reflect.Slice:\n\t\tif fc.fuzzer.genShouldFill() {\n\t\t\tn := fc.fuzzer.genElementCount()\n\t\t\tv.Set(reflect.MakeSlice(v.Type(), n, n))\n\t\t\tfor i := 0; i < n; i++ {\n\t\t\t\tfc.doFuzz(v.Index(i), 0)\n\t\t\t}\n\t\t\treturn\n\t\t}\n\t\tv.Set(reflect.Zero(v.Type()))\n\tcase reflect.Array:\n\t\tif fc.fuzzer.genShouldFill() {\n\t\t\tn := v.Len()\n\t\t\tfor i := 0; i < n; i++ {\n\t\t\t\tfc.doFuzz(v.Index(i), 0)\n\t\t\t}\n\t\t\treturn\n\t\t}\n\t\tv.Set(reflect.Zero(v.Type()))\n\tcase reflect.Struct:\n\t\tfor i := 0; i < v.NumField(); i++ {\n\t\t\tskipField := false\n\t\t\tfieldName := v.Type().Field(i).Name\n\t\t\tfor _, pattern := range fc.fuzzer.skipFieldPatterns {\n\t\t\t\tif pattern.MatchString(fieldName) {\n\t\t\t\t\tskipField = true\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !skipField {\n\t\t\t\tfc.doFuzz(v.Field(i), 0)\n\t\t\t}\n\t\t}\n\tcase reflect.Chan:\n\t\tfallthrough\n\tcase reflect.Func:\n\t\tfallthrough\n\tcase reflect.Interface:\n\t\tfallthrough\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"Can't handle %#v\", v.Interface()))\n\t}\n}\n\n// tryCustom searches for custom handlers, and returns true iff it finds a match\n// and successfully randomizes v.\nfunc (fc *fuzzerContext) tryCustom(v reflect.Value) bool {\n\t// First: see if we have a fuzz function for it.\n\tdoCustom, ok := fc.fuzzer.fuzzFuncs[v.Type()]\n\tif !ok {\n\t\t// Second: see if it can fuzz itself.\n\t\tif v.CanInterface() {\n\t\t\tintf := v.Interface()\n\t\t\tif fuzzable, ok := intf.(Interface); ok {\n\t\t\t\tfuzzable.Fuzz(Continue{fc: fc, Rand: fc.fuzzer.r})\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\t// Finally: see if there is a default fuzz function.\n\t\tdoCustom, ok = fc.fuzzer.defaultFuzzFuncs[v.Type()]\n\t\tif !ok {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tswitch v.Kind() {\n\tcase reflect.Ptr:\n\t\tif v.IsNil() {\n\t\t\tif !v.CanSet() {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tv.Set(reflect.New(v.Type().Elem()))\n\t\t}\n\tcase reflect.Map:\n\t\tif v.IsNil() {\n\t\t\tif !v.CanSet() {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tv.Set(reflect.MakeMap(v.Type()))\n\t\t}\n\tdefault:\n\t\treturn false\n\t}\n\n\tdoCustom.Call([]reflect.Value{v, reflect.ValueOf(Continue{\n\t\tfc:   fc,\n\t\tRand: fc.fuzzer.r,\n\t})})\n\treturn true\n}\n\n// Interface represents an object that knows how to fuzz itself.  Any time we\n// find a type that implements this interface we will delegate the act of\n// fuzzing itself.\ntype Interface interface {\n\tFuzz(c Continue)\n}\n\n// Continue can be passed to custom fuzzing functions to allow them to use\n// the correct source of randomness and to continue fuzzing their members.\ntype Continue struct {\n\tfc *fuzzerContext\n\n\t// For convenience, Continue implements rand.Rand via embedding.\n\t// Use this for generating any randomness if you want your fuzzing\n\t// to be repeatable for a given seed.\n\t*rand.Rand\n}\n\n// Fuzz continues fuzzing obj. obj must be a pointer.\nfunc (c Continue) Fuzz(obj interface{}) {\n\tv := reflect.ValueOf(obj)\n\tif v.Kind() != reflect.Ptr {\n\t\tpanic(\"needed ptr!\")\n\t}\n\tv = v.Elem()\n\tc.fc.doFuzz(v, 0)\n}\n\n// FuzzNoCustom continues fuzzing obj, except that any custom fuzz function for\n// obj's type will not be called and obj will not be tested for fuzz.Interface\n// conformance.  This applies only to obj and not other instances of obj's\n// type.\nfunc (c Continue) FuzzNoCustom(obj interface{}) {\n\tv := reflect.ValueOf(obj)\n\tif v.Kind() != reflect.Ptr {\n\t\tpanic(\"needed ptr!\")\n\t}\n\tv = v.Elem()\n\tc.fc.doFuzz(v, flagNoCustomFuzz)\n}\n\n// RandString makes a random string up to 20 characters long. The returned string\n// may include a variety of (valid) UTF-8 encodings.\nfunc (c Continue) RandString() string {\n\treturn randString(c.Rand)\n}\n\n// RandUint64 makes random 64 bit numbers.\n// Weirdly, rand doesn't have a function that gives you 64 random bits.\nfunc (c Continue) RandUint64() uint64 {\n\treturn randUint64(c.Rand)\n}\n\n// RandBool returns true or false randomly.\nfunc (c Continue) RandBool() bool {\n\treturn randBool(c.Rand)\n}\n\nfunc fuzzInt(v reflect.Value, r *rand.Rand) {\n\tv.SetInt(int64(randUint64(r)))\n}\n\nfunc fuzzUint(v reflect.Value, r *rand.Rand) {\n\tv.SetUint(randUint64(r))\n}\n\nfunc fuzzTime(t *time.Time, c Continue) {\n\tvar sec, nsec int64\n\t// Allow for about 1000 years of random time values, which keeps things\n\t// like JSON parsing reasonably happy.\n\tsec = c.Rand.Int63n(1000 * 365 * 24 * 60 * 60)\n\tc.Fuzz(&nsec)\n\t*t = time.Unix(sec, nsec)\n}\n\nvar fillFuncMap = map[reflect.Kind]func(reflect.Value, *rand.Rand){\n\treflect.Bool: func(v reflect.Value, r *rand.Rand) {\n\t\tv.SetBool(randBool(r))\n\t},\n\treflect.Int:     fuzzInt,\n\treflect.Int8:    fuzzInt,\n\treflect.Int16:   fuzzInt,\n\treflect.Int32:   fuzzInt,\n\treflect.Int64:   fuzzInt,\n\treflect.Uint:    fuzzUint,\n\treflect.Uint8:   fuzzUint,\n\treflect.Uint16:  fuzzUint,\n\treflect.Uint32:  fuzzUint,\n\treflect.Uint64:  fuzzUint,\n\treflect.Uintptr: fuzzUint,\n\treflect.Float32: func(v reflect.Value, r *rand.Rand) {\n\t\tv.SetFloat(float64(r.Float32()))\n\t},\n\treflect.Float64: func(v reflect.Value, r *rand.Rand) {\n\t\tv.SetFloat(r.Float64())\n\t},\n\treflect.Complex64: func(v reflect.Value, r *rand.Rand) {\n\t\tv.SetComplex(complex128(complex(r.Float32(), r.Float32())))\n\t},\n\treflect.Complex128: func(v reflect.Value, r *rand.Rand) {\n\t\tv.SetComplex(complex(r.Float64(), r.Float64()))\n\t},\n\treflect.String: func(v reflect.Value, r *rand.Rand) {\n\t\tv.SetString(randString(r))\n\t},\n\treflect.UnsafePointer: func(v reflect.Value, r *rand.Rand) {\n\t\tpanic(\"unimplemented\")\n\t},\n}\n\n// randBool returns true or false randomly.\nfunc randBool(r *rand.Rand) bool {\n\treturn r.Int31()&(1<<30) == 0\n}\n\ntype int63nPicker interface {\n\tInt63n(int64) int64\n}\n\n// UnicodeRange describes a sequential range of unicode characters.\n// Last must be numerically greater than First.\ntype UnicodeRange struct {\n\tFirst, Last rune\n}\n\n// UnicodeRanges describes an arbitrary number of sequential ranges of unicode characters.\n// To be useful, each range must have at least one character (First <= Last) and\n// there must be at least one range.\ntype UnicodeRanges []UnicodeRange\n\n// choose returns a random unicode character from the given range, using the\n// given randomness source.\nfunc (ur UnicodeRange) choose(r int63nPicker) rune {\n\tcount := int64(ur.Last - ur.First + 1)\n\treturn ur.First + rune(r.Int63n(count))\n}\n\n// CustomStringFuzzFunc constructs a FuzzFunc which produces random strings.\n// Each character is selected from the range ur. If there are no characters\n// in the range (cr.Last < cr.First), this will panic.\nfunc (ur UnicodeRange) CustomStringFuzzFunc() func(s *string, c Continue) {\n\tur.check()\n\treturn func(s *string, c Continue) {\n\t\t*s = ur.randString(c.Rand)\n\t}\n}\n\n// check is a function that used to check whether the first of ur(UnicodeRange)\n// is greater than the last one.\nfunc (ur UnicodeRange) check() {\n\tif ur.Last < ur.First {\n\t\tpanic(\"The last encoding must be greater than the first one.\")\n\t}\n}\n\n// randString of UnicodeRange makes a random string up to 20 characters long.\n// Each character is selected form ur(UnicodeRange).\nfunc (ur UnicodeRange) randString(r *rand.Rand) string {\n\tn := r.Intn(20)\n\tsb := strings.Builder{}\n\tsb.Grow(n)\n\tfor i := 0; i < n; i++ {\n\t\tsb.WriteRune(ur.choose(r))\n\t}\n\treturn sb.String()\n}\n\n// defaultUnicodeRanges sets a default unicode range when user do not set\n// CustomStringFuzzFunc() but wants fuzz string.\nvar defaultUnicodeRanges = UnicodeRanges{\n\t{' ', '~'},           // ASCII characters\n\t{'\\u00a0', '\\u02af'}, // Multi-byte encoded characters\n\t{'\\u4e00', '\\u9fff'}, // Common CJK (even longer encodings)\n}\n\n// CustomStringFuzzFunc constructs a FuzzFunc which produces random strings.\n// Each character is selected from one of the ranges of ur(UnicodeRanges).\n// Each range has an equal probability of being chosen. If there are no ranges,\n// or a selected range has no characters (.Last < .First), this will panic.\n// Do not modify any of the ranges in ur after calling this function.\nfunc (ur UnicodeRanges) CustomStringFuzzFunc() func(s *string, c Continue) {\n\t// Check unicode ranges slice is empty.\n\tif len(ur) == 0 {\n\t\tpanic(\"UnicodeRanges is empty.\")\n\t}\n\t// if not empty, each range should be checked.\n\tfor i := range ur {\n\t\tur[i].check()\n\t}\n\treturn func(s *string, c Continue) {\n\t\t*s = ur.randString(c.Rand)\n\t}\n}\n\n// randString of UnicodeRanges makes a random string up to 20 characters long.\n// Each character is selected form one of the ranges of ur(UnicodeRanges),\n// and each range has an equal probability of being chosen.\nfunc (ur UnicodeRanges) randString(r *rand.Rand) string {\n\tn := r.Intn(20)\n\tsb := strings.Builder{}\n\tsb.Grow(n)\n\tfor i := 0; i < n; i++ {\n\t\tsb.WriteRune(ur[r.Intn(len(ur))].choose(r))\n\t}\n\treturn sb.String()\n}\n\n// randString makes a random string up to 20 characters long. The returned string\n// may include a variety of (valid) UTF-8 encodings.\nfunc randString(r *rand.Rand) string {\n\treturn defaultUnicodeRanges.randString(r)\n}\n\n// randUint64 makes random 64 bit numbers.\n// Weirdly, rand doesn't have a function that gives you 64 random bits.\nfunc randUint64(r *rand.Rand) uint64 {\n\treturn uint64(r.Uint32())<<32 | uint64(r.Uint32())\n}\n"
  },
  {
    "path": "vendor/github.com/google/uuid/CHANGELOG.md",
    "content": "# Changelog\n\n## [1.6.0](https://github.com/google/uuid/compare/v1.5.0...v1.6.0) (2024-01-16)\n\n\n### Features\n\n* add Max UUID constant ([#149](https://github.com/google/uuid/issues/149)) ([c58770e](https://github.com/google/uuid/commit/c58770eb495f55fe2ced6284f93c5158a62e53e3))\n\n\n### Bug Fixes\n\n* fix typo in version 7 uuid documentation ([#153](https://github.com/google/uuid/issues/153)) ([016b199](https://github.com/google/uuid/commit/016b199544692f745ffc8867b914129ecb47ef06))\n* Monotonicity in UUIDv7 ([#150](https://github.com/google/uuid/issues/150)) ([a2b2b32](https://github.com/google/uuid/commit/a2b2b32373ff0b1a312b7fdf6d38a977099698a6))\n\n## [1.5.0](https://github.com/google/uuid/compare/v1.4.0...v1.5.0) (2023-12-12)\n\n\n### Features\n\n* Validate UUID without creating new UUID ([#141](https://github.com/google/uuid/issues/141)) ([9ee7366](https://github.com/google/uuid/commit/9ee7366e66c9ad96bab89139418a713dc584ae29))\n\n## [1.4.0](https://github.com/google/uuid/compare/v1.3.1...v1.4.0) (2023-10-26)\n\n\n### Features\n\n* UUIDs slice type with Strings() convenience method ([#133](https://github.com/google/uuid/issues/133)) ([cd5fbbd](https://github.com/google/uuid/commit/cd5fbbdd02f3e3467ac18940e07e062be1f864b4))\n\n### Fixes\n\n* Clarify that Parse's job is to parse but not necessarily validate strings. (Documents current behavior)\n\n## [1.3.1](https://github.com/google/uuid/compare/v1.3.0...v1.3.1) (2023-08-18)\n\n\n### Bug Fixes\n\n* Use .EqualFold() to parse urn prefixed UUIDs ([#118](https://github.com/google/uuid/issues/118)) ([574e687](https://github.com/google/uuid/commit/574e6874943741fb99d41764c705173ada5293f0))\n\n## Changelog\n"
  },
  {
    "path": "vendor/github.com/google/uuid/CONTRIBUTING.md",
    "content": "# How to contribute\n\nWe definitely welcome patches and contribution to this project!\n\n### Tips\n\nCommits must be formatted according to the [Conventional Commits Specification](https://www.conventionalcommits.org).\n\nAlways try to include a test case! If it is not possible or not necessary,\nplease explain why in the pull request description.\n\n### Releasing\n\nCommits that would precipitate a SemVer change, as described in the Conventional\nCommits Specification, will trigger [`release-please`](https://github.com/google-github-actions/release-please-action)\nto create a release candidate pull request. Once submitted, `release-please`\nwill create a release.\n\nFor tips on how to work with `release-please`, see its documentation.\n\n### Legal requirements\n\nIn order to protect both you and ourselves, you will need to sign the\n[Contributor License Agreement](https://cla.developers.google.com/clas).\n\nYou may have already signed it for other Google projects.\n"
  },
  {
    "path": "vendor/github.com/google/uuid/CONTRIBUTORS",
    "content": "Paul Borman <borman@google.com>\nbmatsuo\nshawnps\ntheory\njboverfelt\ndsymonds\ncd1\nwallclockbuilder\ndansouza\n"
  },
  {
    "path": "vendor/github.com/google/uuid/LICENSE",
    "content": "Copyright (c) 2009,2014 Google Inc. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/github.com/google/uuid/README.md",
    "content": "# uuid\nThe uuid package generates and inspects UUIDs based on\n[RFC 4122](https://datatracker.ietf.org/doc/html/rfc4122)\nand DCE 1.1: Authentication and Security Services. \n\nThis package is based on the github.com/pborman/uuid package (previously named\ncode.google.com/p/go-uuid).  It differs from these earlier packages in that\na UUID is a 16 byte array rather than a byte slice.  One loss due to this\nchange is the ability to represent an invalid UUID (vs a NIL UUID).\n\n###### Install\n```sh\ngo get github.com/google/uuid\n```\n\n###### Documentation \n[![Go Reference](https://pkg.go.dev/badge/github.com/google/uuid.svg)](https://pkg.go.dev/github.com/google/uuid)\n\nFull `go doc` style documentation for the package can be viewed online without\ninstalling this package by using the GoDoc site here: \nhttp://pkg.go.dev/github.com/google/uuid\n"
  },
  {
    "path": "vendor/github.com/google/uuid/dce.go",
    "content": "// Copyright 2016 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage uuid\n\nimport (\n\t\"encoding/binary\"\n\t\"fmt\"\n\t\"os\"\n)\n\n// A Domain represents a Version 2 domain\ntype Domain byte\n\n// Domain constants for DCE Security (Version 2) UUIDs.\nconst (\n\tPerson = Domain(0)\n\tGroup  = Domain(1)\n\tOrg    = Domain(2)\n)\n\n// NewDCESecurity returns a DCE Security (Version 2) UUID.\n//\n// The domain should be one of Person, Group or Org.\n// On a POSIX system the id should be the users UID for the Person\n// domain and the users GID for the Group.  The meaning of id for\n// the domain Org or on non-POSIX systems is site defined.\n//\n// For a given domain/id pair the same token may be returned for up to\n// 7 minutes and 10 seconds.\nfunc NewDCESecurity(domain Domain, id uint32) (UUID, error) {\n\tuuid, err := NewUUID()\n\tif err == nil {\n\t\tuuid[6] = (uuid[6] & 0x0f) | 0x20 // Version 2\n\t\tuuid[9] = byte(domain)\n\t\tbinary.BigEndian.PutUint32(uuid[0:], id)\n\t}\n\treturn uuid, err\n}\n\n// NewDCEPerson returns a DCE Security (Version 2) UUID in the person\n// domain with the id returned by os.Getuid.\n//\n//  NewDCESecurity(Person, uint32(os.Getuid()))\nfunc NewDCEPerson() (UUID, error) {\n\treturn NewDCESecurity(Person, uint32(os.Getuid()))\n}\n\n// NewDCEGroup returns a DCE Security (Version 2) UUID in the group\n// domain with the id returned by os.Getgid.\n//\n//  NewDCESecurity(Group, uint32(os.Getgid()))\nfunc NewDCEGroup() (UUID, error) {\n\treturn NewDCESecurity(Group, uint32(os.Getgid()))\n}\n\n// Domain returns the domain for a Version 2 UUID.  Domains are only defined\n// for Version 2 UUIDs.\nfunc (uuid UUID) Domain() Domain {\n\treturn Domain(uuid[9])\n}\n\n// ID returns the id for a Version 2 UUID. IDs are only defined for Version 2\n// UUIDs.\nfunc (uuid UUID) ID() uint32 {\n\treturn binary.BigEndian.Uint32(uuid[0:4])\n}\n\nfunc (d Domain) String() string {\n\tswitch d {\n\tcase Person:\n\t\treturn \"Person\"\n\tcase Group:\n\t\treturn \"Group\"\n\tcase Org:\n\t\treturn \"Org\"\n\t}\n\treturn fmt.Sprintf(\"Domain%d\", int(d))\n}\n"
  },
  {
    "path": "vendor/github.com/google/uuid/doc.go",
    "content": "// Copyright 2016 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package uuid generates and inspects UUIDs.\n//\n// UUIDs are based on RFC 4122 and DCE 1.1: Authentication and Security\n// Services.\n//\n// A UUID is a 16 byte (128 bit) array.  UUIDs may be used as keys to\n// maps or compared directly.\npackage uuid\n"
  },
  {
    "path": "vendor/github.com/google/uuid/hash.go",
    "content": "// Copyright 2016 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage uuid\n\nimport (\n\t\"crypto/md5\"\n\t\"crypto/sha1\"\n\t\"hash\"\n)\n\n// Well known namespace IDs and UUIDs\nvar (\n\tNameSpaceDNS  = Must(Parse(\"6ba7b810-9dad-11d1-80b4-00c04fd430c8\"))\n\tNameSpaceURL  = Must(Parse(\"6ba7b811-9dad-11d1-80b4-00c04fd430c8\"))\n\tNameSpaceOID  = Must(Parse(\"6ba7b812-9dad-11d1-80b4-00c04fd430c8\"))\n\tNameSpaceX500 = Must(Parse(\"6ba7b814-9dad-11d1-80b4-00c04fd430c8\"))\n\tNil           UUID // empty UUID, all zeros\n\n\t// The Max UUID is special form of UUID that is specified to have all 128 bits set to 1.\n\tMax = UUID{\n\t\t0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n\t\t0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,\n\t}\n)\n\n// NewHash returns a new UUID derived from the hash of space concatenated with\n// data generated by h.  The hash should be at least 16 byte in length.  The\n// first 16 bytes of the hash are used to form the UUID.  The version of the\n// UUID will be the lower 4 bits of version.  NewHash is used to implement\n// NewMD5 and NewSHA1.\nfunc NewHash(h hash.Hash, space UUID, data []byte, version int) UUID {\n\th.Reset()\n\th.Write(space[:]) //nolint:errcheck\n\th.Write(data)     //nolint:errcheck\n\ts := h.Sum(nil)\n\tvar uuid UUID\n\tcopy(uuid[:], s)\n\tuuid[6] = (uuid[6] & 0x0f) | uint8((version&0xf)<<4)\n\tuuid[8] = (uuid[8] & 0x3f) | 0x80 // RFC 4122 variant\n\treturn uuid\n}\n\n// NewMD5 returns a new MD5 (Version 3) UUID based on the\n// supplied name space and data.  It is the same as calling:\n//\n//  NewHash(md5.New(), space, data, 3)\nfunc NewMD5(space UUID, data []byte) UUID {\n\treturn NewHash(md5.New(), space, data, 3)\n}\n\n// NewSHA1 returns a new SHA1 (Version 5) UUID based on the\n// supplied name space and data.  It is the same as calling:\n//\n//  NewHash(sha1.New(), space, data, 5)\nfunc NewSHA1(space UUID, data []byte) UUID {\n\treturn NewHash(sha1.New(), space, data, 5)\n}\n"
  },
  {
    "path": "vendor/github.com/google/uuid/marshal.go",
    "content": "// Copyright 2016 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage uuid\n\nimport \"fmt\"\n\n// MarshalText implements encoding.TextMarshaler.\nfunc (uuid UUID) MarshalText() ([]byte, error) {\n\tvar js [36]byte\n\tencodeHex(js[:], uuid)\n\treturn js[:], nil\n}\n\n// UnmarshalText implements encoding.TextUnmarshaler.\nfunc (uuid *UUID) UnmarshalText(data []byte) error {\n\tid, err := ParseBytes(data)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*uuid = id\n\treturn nil\n}\n\n// MarshalBinary implements encoding.BinaryMarshaler.\nfunc (uuid UUID) MarshalBinary() ([]byte, error) {\n\treturn uuid[:], nil\n}\n\n// UnmarshalBinary implements encoding.BinaryUnmarshaler.\nfunc (uuid *UUID) UnmarshalBinary(data []byte) error {\n\tif len(data) != 16 {\n\t\treturn fmt.Errorf(\"invalid UUID (got %d bytes)\", len(data))\n\t}\n\tcopy(uuid[:], data)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/uuid/node.go",
    "content": "// Copyright 2016 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage uuid\n\nimport (\n\t\"sync\"\n)\n\nvar (\n\tnodeMu sync.Mutex\n\tifname string  // name of interface being used\n\tnodeID [6]byte // hardware for version 1 UUIDs\n\tzeroID [6]byte // nodeID with only 0's\n)\n\n// NodeInterface returns the name of the interface from which the NodeID was\n// derived.  The interface \"user\" is returned if the NodeID was set by\n// SetNodeID.\nfunc NodeInterface() string {\n\tdefer nodeMu.Unlock()\n\tnodeMu.Lock()\n\treturn ifname\n}\n\n// SetNodeInterface selects the hardware address to be used for Version 1 UUIDs.\n// If name is \"\" then the first usable interface found will be used or a random\n// Node ID will be generated.  If a named interface cannot be found then false\n// is returned.\n//\n// SetNodeInterface never fails when name is \"\".\nfunc SetNodeInterface(name string) bool {\n\tdefer nodeMu.Unlock()\n\tnodeMu.Lock()\n\treturn setNodeInterface(name)\n}\n\nfunc setNodeInterface(name string) bool {\n\tiname, addr := getHardwareInterface(name) // null implementation for js\n\tif iname != \"\" && addr != nil {\n\t\tifname = iname\n\t\tcopy(nodeID[:], addr)\n\t\treturn true\n\t}\n\n\t// We found no interfaces with a valid hardware address.  If name\n\t// does not specify a specific interface generate a random Node ID\n\t// (section 4.1.6)\n\tif name == \"\" {\n\t\tifname = \"random\"\n\t\trandomBits(nodeID[:])\n\t\treturn true\n\t}\n\treturn false\n}\n\n// NodeID returns a slice of a copy of the current Node ID, setting the Node ID\n// if not already set.\nfunc NodeID() []byte {\n\tdefer nodeMu.Unlock()\n\tnodeMu.Lock()\n\tif nodeID == zeroID {\n\t\tsetNodeInterface(\"\")\n\t}\n\tnid := nodeID\n\treturn nid[:]\n}\n\n// SetNodeID sets the Node ID to be used for Version 1 UUIDs.  The first 6 bytes\n// of id are used.  If id is less than 6 bytes then false is returned and the\n// Node ID is not set.\nfunc SetNodeID(id []byte) bool {\n\tif len(id) < 6 {\n\t\treturn false\n\t}\n\tdefer nodeMu.Unlock()\n\tnodeMu.Lock()\n\tcopy(nodeID[:], id)\n\tifname = \"user\"\n\treturn true\n}\n\n// NodeID returns the 6 byte node id encoded in uuid.  It returns nil if uuid is\n// not valid.  The NodeID is only well defined for version 1 and 2 UUIDs.\nfunc (uuid UUID) NodeID() []byte {\n\tvar node [6]byte\n\tcopy(node[:], uuid[10:])\n\treturn node[:]\n}\n"
  },
  {
    "path": "vendor/github.com/google/uuid/node_js.go",
    "content": "// Copyright 2017 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build js\n\npackage uuid\n\n// getHardwareInterface returns nil values for the JS version of the code.\n// This removes the \"net\" dependency, because it is not used in the browser.\n// Using the \"net\" library inflates the size of the transpiled JS code by 673k bytes.\nfunc getHardwareInterface(name string) (string, []byte) { return \"\", nil }\n"
  },
  {
    "path": "vendor/github.com/google/uuid/node_net.go",
    "content": "// Copyright 2017 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// +build !js\n\npackage uuid\n\nimport \"net\"\n\nvar interfaces []net.Interface // cached list of interfaces\n\n// getHardwareInterface returns the name and hardware address of interface name.\n// If name is \"\" then the name and hardware address of one of the system's\n// interfaces is returned.  If no interfaces are found (name does not exist or\n// there are no interfaces) then \"\", nil is returned.\n//\n// Only addresses of at least 6 bytes are returned.\nfunc getHardwareInterface(name string) (string, []byte) {\n\tif interfaces == nil {\n\t\tvar err error\n\t\tinterfaces, err = net.Interfaces()\n\t\tif err != nil {\n\t\t\treturn \"\", nil\n\t\t}\n\t}\n\tfor _, ifs := range interfaces {\n\t\tif len(ifs.HardwareAddr) >= 6 && (name == \"\" || name == ifs.Name) {\n\t\t\treturn ifs.Name, ifs.HardwareAddr\n\t\t}\n\t}\n\treturn \"\", nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/uuid/null.go",
    "content": "// Copyright 2021 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage uuid\n\nimport (\n\t\"bytes\"\n\t\"database/sql/driver\"\n\t\"encoding/json\"\n\t\"fmt\"\n)\n\nvar jsonNull = []byte(\"null\")\n\n// NullUUID represents a UUID that may be null.\n// NullUUID implements the SQL driver.Scanner interface so\n// it can be used as a scan destination:\n//\n//  var u uuid.NullUUID\n//  err := db.QueryRow(\"SELECT name FROM foo WHERE id=?\", id).Scan(&u)\n//  ...\n//  if u.Valid {\n//     // use u.UUID\n//  } else {\n//     // NULL value\n//  }\n//\ntype NullUUID struct {\n\tUUID  UUID\n\tValid bool // Valid is true if UUID is not NULL\n}\n\n// Scan implements the SQL driver.Scanner interface.\nfunc (nu *NullUUID) Scan(value interface{}) error {\n\tif value == nil {\n\t\tnu.UUID, nu.Valid = Nil, false\n\t\treturn nil\n\t}\n\n\terr := nu.UUID.Scan(value)\n\tif err != nil {\n\t\tnu.Valid = false\n\t\treturn err\n\t}\n\n\tnu.Valid = true\n\treturn nil\n}\n\n// Value implements the driver Valuer interface.\nfunc (nu NullUUID) Value() (driver.Value, error) {\n\tif !nu.Valid {\n\t\treturn nil, nil\n\t}\n\t// Delegate to UUID Value function\n\treturn nu.UUID.Value()\n}\n\n// MarshalBinary implements encoding.BinaryMarshaler.\nfunc (nu NullUUID) MarshalBinary() ([]byte, error) {\n\tif nu.Valid {\n\t\treturn nu.UUID[:], nil\n\t}\n\n\treturn []byte(nil), nil\n}\n\n// UnmarshalBinary implements encoding.BinaryUnmarshaler.\nfunc (nu *NullUUID) UnmarshalBinary(data []byte) error {\n\tif len(data) != 16 {\n\t\treturn fmt.Errorf(\"invalid UUID (got %d bytes)\", len(data))\n\t}\n\tcopy(nu.UUID[:], data)\n\tnu.Valid = true\n\treturn nil\n}\n\n// MarshalText implements encoding.TextMarshaler.\nfunc (nu NullUUID) MarshalText() ([]byte, error) {\n\tif nu.Valid {\n\t\treturn nu.UUID.MarshalText()\n\t}\n\n\treturn jsonNull, nil\n}\n\n// UnmarshalText implements encoding.TextUnmarshaler.\nfunc (nu *NullUUID) UnmarshalText(data []byte) error {\n\tid, err := ParseBytes(data)\n\tif err != nil {\n\t\tnu.Valid = false\n\t\treturn err\n\t}\n\tnu.UUID = id\n\tnu.Valid = true\n\treturn nil\n}\n\n// MarshalJSON implements json.Marshaler.\nfunc (nu NullUUID) MarshalJSON() ([]byte, error) {\n\tif nu.Valid {\n\t\treturn json.Marshal(nu.UUID)\n\t}\n\n\treturn jsonNull, nil\n}\n\n// UnmarshalJSON implements json.Unmarshaler.\nfunc (nu *NullUUID) UnmarshalJSON(data []byte) error {\n\tif bytes.Equal(data, jsonNull) {\n\t\t*nu = NullUUID{}\n\t\treturn nil // valid null UUID\n\t}\n\terr := json.Unmarshal(data, &nu.UUID)\n\tnu.Valid = err == nil\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/google/uuid/sql.go",
    "content": "// Copyright 2016 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage uuid\n\nimport (\n\t\"database/sql/driver\"\n\t\"fmt\"\n)\n\n// Scan implements sql.Scanner so UUIDs can be read from databases transparently.\n// Currently, database types that map to string and []byte are supported. Please\n// consult database-specific driver documentation for matching types.\nfunc (uuid *UUID) Scan(src interface{}) error {\n\tswitch src := src.(type) {\n\tcase nil:\n\t\treturn nil\n\n\tcase string:\n\t\t// if an empty UUID comes from a table, we return a null UUID\n\t\tif src == \"\" {\n\t\t\treturn nil\n\t\t}\n\n\t\t// see Parse for required string format\n\t\tu, err := Parse(src)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"Scan: %v\", err)\n\t\t}\n\n\t\t*uuid = u\n\n\tcase []byte:\n\t\t// if an empty UUID comes from a table, we return a null UUID\n\t\tif len(src) == 0 {\n\t\t\treturn nil\n\t\t}\n\n\t\t// assumes a simple slice of bytes if 16 bytes\n\t\t// otherwise attempts to parse\n\t\tif len(src) != 16 {\n\t\t\treturn uuid.Scan(string(src))\n\t\t}\n\t\tcopy((*uuid)[:], src)\n\n\tdefault:\n\t\treturn fmt.Errorf(\"Scan: unable to scan type %T into UUID\", src)\n\t}\n\n\treturn nil\n}\n\n// Value implements sql.Valuer so that UUIDs can be written to databases\n// transparently. Currently, UUIDs map to strings. Please consult\n// database-specific driver documentation for matching types.\nfunc (uuid UUID) Value() (driver.Value, error) {\n\treturn uuid.String(), nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/uuid/time.go",
    "content": "// Copyright 2016 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage uuid\n\nimport (\n\t\"encoding/binary\"\n\t\"sync\"\n\t\"time\"\n)\n\n// A Time represents a time as the number of 100's of nanoseconds since 15 Oct\n// 1582.\ntype Time int64\n\nconst (\n\tlillian    = 2299160          // Julian day of 15 Oct 1582\n\tunix       = 2440587          // Julian day of 1 Jan 1970\n\tepoch      = unix - lillian   // Days between epochs\n\tg1582      = epoch * 86400    // seconds between epochs\n\tg1582ns100 = g1582 * 10000000 // 100s of a nanoseconds between epochs\n)\n\nvar (\n\ttimeMu   sync.Mutex\n\tlasttime uint64 // last time we returned\n\tclockSeq uint16 // clock sequence for this run\n\n\ttimeNow = time.Now // for testing\n)\n\n// UnixTime converts t the number of seconds and nanoseconds using the Unix\n// epoch of 1 Jan 1970.\nfunc (t Time) UnixTime() (sec, nsec int64) {\n\tsec = int64(t - g1582ns100)\n\tnsec = (sec % 10000000) * 100\n\tsec /= 10000000\n\treturn sec, nsec\n}\n\n// GetTime returns the current Time (100s of nanoseconds since 15 Oct 1582) and\n// clock sequence as well as adjusting the clock sequence as needed.  An error\n// is returned if the current time cannot be determined.\nfunc GetTime() (Time, uint16, error) {\n\tdefer timeMu.Unlock()\n\ttimeMu.Lock()\n\treturn getTime()\n}\n\nfunc getTime() (Time, uint16, error) {\n\tt := timeNow()\n\n\t// If we don't have a clock sequence already, set one.\n\tif clockSeq == 0 {\n\t\tsetClockSequence(-1)\n\t}\n\tnow := uint64(t.UnixNano()/100) + g1582ns100\n\n\t// If time has gone backwards with this clock sequence then we\n\t// increment the clock sequence\n\tif now <= lasttime {\n\t\tclockSeq = ((clockSeq + 1) & 0x3fff) | 0x8000\n\t}\n\tlasttime = now\n\treturn Time(now), clockSeq, nil\n}\n\n// ClockSequence returns the current clock sequence, generating one if not\n// already set.  The clock sequence is only used for Version 1 UUIDs.\n//\n// The uuid package does not use global static storage for the clock sequence or\n// the last time a UUID was generated.  Unless SetClockSequence is used, a new\n// random clock sequence is generated the first time a clock sequence is\n// requested by ClockSequence, GetTime, or NewUUID.  (section 4.2.1.1)\nfunc ClockSequence() int {\n\tdefer timeMu.Unlock()\n\ttimeMu.Lock()\n\treturn clockSequence()\n}\n\nfunc clockSequence() int {\n\tif clockSeq == 0 {\n\t\tsetClockSequence(-1)\n\t}\n\treturn int(clockSeq & 0x3fff)\n}\n\n// SetClockSequence sets the clock sequence to the lower 14 bits of seq.  Setting to\n// -1 causes a new sequence to be generated.\nfunc SetClockSequence(seq int) {\n\tdefer timeMu.Unlock()\n\ttimeMu.Lock()\n\tsetClockSequence(seq)\n}\n\nfunc setClockSequence(seq int) {\n\tif seq == -1 {\n\t\tvar b [2]byte\n\t\trandomBits(b[:]) // clock sequence\n\t\tseq = int(b[0])<<8 | int(b[1])\n\t}\n\toldSeq := clockSeq\n\tclockSeq = uint16(seq&0x3fff) | 0x8000 // Set our variant\n\tif oldSeq != clockSeq {\n\t\tlasttime = 0\n\t}\n}\n\n// Time returns the time in 100s of nanoseconds since 15 Oct 1582 encoded in\n// uuid.  The time is only defined for version 1, 2, 6 and 7 UUIDs.\nfunc (uuid UUID) Time() Time {\n\tvar t Time\n\tswitch uuid.Version() {\n\tcase 6:\n\t\ttime := binary.BigEndian.Uint64(uuid[:8]) // Ignore uuid[6] version b0110\n\t\tt = Time(time)\n\tcase 7:\n\t\ttime := binary.BigEndian.Uint64(uuid[:8])\n\t\tt = Time((time>>16)*10000 + g1582ns100)\n\tdefault: // forward compatible\n\t\ttime := int64(binary.BigEndian.Uint32(uuid[0:4]))\n\t\ttime |= int64(binary.BigEndian.Uint16(uuid[4:6])) << 32\n\t\ttime |= int64(binary.BigEndian.Uint16(uuid[6:8])&0xfff) << 48\n\t\tt = Time(time)\n\t}\n\treturn t\n}\n\n// ClockSequence returns the clock sequence encoded in uuid.\n// The clock sequence is only well defined for version 1 and 2 UUIDs.\nfunc (uuid UUID) ClockSequence() int {\n\treturn int(binary.BigEndian.Uint16(uuid[8:10])) & 0x3fff\n}\n"
  },
  {
    "path": "vendor/github.com/google/uuid/util.go",
    "content": "// Copyright 2016 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage uuid\n\nimport (\n\t\"io\"\n)\n\n// randomBits completely fills slice b with random data.\nfunc randomBits(b []byte) {\n\tif _, err := io.ReadFull(rander, b); err != nil {\n\t\tpanic(err.Error()) // rand should never fail\n\t}\n}\n\n// xvalues returns the value of a byte as a hexadecimal digit or 255.\nvar xvalues = [256]byte{\n\t255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n\t255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n\t255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n\t0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 255, 255, 255, 255, 255, 255,\n\t255, 10, 11, 12, 13, 14, 15, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n\t255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n\t255, 10, 11, 12, 13, 14, 15, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n\t255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n\t255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n\t255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n\t255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n\t255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n\t255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n\t255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n\t255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n\t255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,\n}\n\n// xtob converts hex characters x1 and x2 into a byte.\nfunc xtob(x1, x2 byte) (byte, bool) {\n\tb1 := xvalues[x1]\n\tb2 := xvalues[x2]\n\treturn (b1 << 4) | b2, b1 != 255 && b2 != 255\n}\n"
  },
  {
    "path": "vendor/github.com/google/uuid/uuid.go",
    "content": "// Copyright 2018 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage uuid\n\nimport (\n\t\"bytes\"\n\t\"crypto/rand\"\n\t\"encoding/hex\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"strings\"\n\t\"sync\"\n)\n\n// A UUID is a 128 bit (16 byte) Universal Unique IDentifier as defined in RFC\n// 4122.\ntype UUID [16]byte\n\n// A Version represents a UUID's version.\ntype Version byte\n\n// A Variant represents a UUID's variant.\ntype Variant byte\n\n// Constants returned by Variant.\nconst (\n\tInvalid   = Variant(iota) // Invalid UUID\n\tRFC4122                   // The variant specified in RFC4122\n\tReserved                  // Reserved, NCS backward compatibility.\n\tMicrosoft                 // Reserved, Microsoft Corporation backward compatibility.\n\tFuture                    // Reserved for future definition.\n)\n\nconst randPoolSize = 16 * 16\n\nvar (\n\trander      = rand.Reader // random function\n\tpoolEnabled = false\n\tpoolMu      sync.Mutex\n\tpoolPos     = randPoolSize     // protected with poolMu\n\tpool        [randPoolSize]byte // protected with poolMu\n)\n\ntype invalidLengthError struct{ len int }\n\nfunc (err invalidLengthError) Error() string {\n\treturn fmt.Sprintf(\"invalid UUID length: %d\", err.len)\n}\n\n// IsInvalidLengthError is matcher function for custom error invalidLengthError\nfunc IsInvalidLengthError(err error) bool {\n\t_, ok := err.(invalidLengthError)\n\treturn ok\n}\n\n// Parse decodes s into a UUID or returns an error if it cannot be parsed.  Both\n// the standard UUID forms defined in RFC 4122\n// (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx and\n// urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) are decoded.  In addition,\n// Parse accepts non-standard strings such as the raw hex encoding\n// xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx and 38 byte \"Microsoft style\" encodings,\n// e.g.  {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}.  Only the middle 36 bytes are\n// examined in the latter case.  Parse should not be used to validate strings as\n// it parses non-standard encodings as indicated above.\nfunc Parse(s string) (UUID, error) {\n\tvar uuid UUID\n\tswitch len(s) {\n\t// xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n\tcase 36:\n\n\t// urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n\tcase 36 + 9:\n\t\tif !strings.EqualFold(s[:9], \"urn:uuid:\") {\n\t\t\treturn uuid, fmt.Errorf(\"invalid urn prefix: %q\", s[:9])\n\t\t}\n\t\ts = s[9:]\n\n\t// {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}\n\tcase 36 + 2:\n\t\ts = s[1:]\n\n\t// xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n\tcase 32:\n\t\tvar ok bool\n\t\tfor i := range uuid {\n\t\t\tuuid[i], ok = xtob(s[i*2], s[i*2+1])\n\t\t\tif !ok {\n\t\t\t\treturn uuid, errors.New(\"invalid UUID format\")\n\t\t\t}\n\t\t}\n\t\treturn uuid, nil\n\tdefault:\n\t\treturn uuid, invalidLengthError{len(s)}\n\t}\n\t// s is now at least 36 bytes long\n\t// it must be of the form  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n\tif s[8] != '-' || s[13] != '-' || s[18] != '-' || s[23] != '-' {\n\t\treturn uuid, errors.New(\"invalid UUID format\")\n\t}\n\tfor i, x := range [16]int{\n\t\t0, 2, 4, 6,\n\t\t9, 11,\n\t\t14, 16,\n\t\t19, 21,\n\t\t24, 26, 28, 30, 32, 34,\n\t} {\n\t\tv, ok := xtob(s[x], s[x+1])\n\t\tif !ok {\n\t\t\treturn uuid, errors.New(\"invalid UUID format\")\n\t\t}\n\t\tuuid[i] = v\n\t}\n\treturn uuid, nil\n}\n\n// ParseBytes is like Parse, except it parses a byte slice instead of a string.\nfunc ParseBytes(b []byte) (UUID, error) {\n\tvar uuid UUID\n\tswitch len(b) {\n\tcase 36: // xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n\tcase 36 + 9: // urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n\t\tif !bytes.EqualFold(b[:9], []byte(\"urn:uuid:\")) {\n\t\t\treturn uuid, fmt.Errorf(\"invalid urn prefix: %q\", b[:9])\n\t\t}\n\t\tb = b[9:]\n\tcase 36 + 2: // {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}\n\t\tb = b[1:]\n\tcase 32: // xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n\t\tvar ok bool\n\t\tfor i := 0; i < 32; i += 2 {\n\t\t\tuuid[i/2], ok = xtob(b[i], b[i+1])\n\t\t\tif !ok {\n\t\t\t\treturn uuid, errors.New(\"invalid UUID format\")\n\t\t\t}\n\t\t}\n\t\treturn uuid, nil\n\tdefault:\n\t\treturn uuid, invalidLengthError{len(b)}\n\t}\n\t// s is now at least 36 bytes long\n\t// it must be of the form  xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n\tif b[8] != '-' || b[13] != '-' || b[18] != '-' || b[23] != '-' {\n\t\treturn uuid, errors.New(\"invalid UUID format\")\n\t}\n\tfor i, x := range [16]int{\n\t\t0, 2, 4, 6,\n\t\t9, 11,\n\t\t14, 16,\n\t\t19, 21,\n\t\t24, 26, 28, 30, 32, 34,\n\t} {\n\t\tv, ok := xtob(b[x], b[x+1])\n\t\tif !ok {\n\t\t\treturn uuid, errors.New(\"invalid UUID format\")\n\t\t}\n\t\tuuid[i] = v\n\t}\n\treturn uuid, nil\n}\n\n// MustParse is like Parse but panics if the string cannot be parsed.\n// It simplifies safe initialization of global variables holding compiled UUIDs.\nfunc MustParse(s string) UUID {\n\tuuid, err := Parse(s)\n\tif err != nil {\n\t\tpanic(`uuid: Parse(` + s + `): ` + err.Error())\n\t}\n\treturn uuid\n}\n\n// FromBytes creates a new UUID from a byte slice. Returns an error if the slice\n// does not have a length of 16. The bytes are copied from the slice.\nfunc FromBytes(b []byte) (uuid UUID, err error) {\n\terr = uuid.UnmarshalBinary(b)\n\treturn uuid, err\n}\n\n// Must returns uuid if err is nil and panics otherwise.\nfunc Must(uuid UUID, err error) UUID {\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn uuid\n}\n\n// Validate returns an error if s is not a properly formatted UUID in one of the following formats:\n//   xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n//   urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n//   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n//   {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}\n// It returns an error if the format is invalid, otherwise nil.\nfunc Validate(s string) error {\n\tswitch len(s) {\n\t// Standard UUID format\n\tcase 36:\n\n\t// UUID with \"urn:uuid:\" prefix\n\tcase 36 + 9:\n\t\tif !strings.EqualFold(s[:9], \"urn:uuid:\") {\n\t\t\treturn fmt.Errorf(\"invalid urn prefix: %q\", s[:9])\n\t\t}\n\t\ts = s[9:]\n\n\t// UUID enclosed in braces\n\tcase 36 + 2:\n\t\tif s[0] != '{' || s[len(s)-1] != '}' {\n\t\t\treturn fmt.Errorf(\"invalid bracketed UUID format\")\n\t\t}\n\t\ts = s[1 : len(s)-1]\n\n\t// UUID without hyphens\n\tcase 32:\n\t\tfor i := 0; i < len(s); i += 2 {\n\t\t\t_, ok := xtob(s[i], s[i+1])\n\t\t\tif !ok {\n\t\t\t\treturn errors.New(\"invalid UUID format\")\n\t\t\t}\n\t\t}\n\n\tdefault:\n\t\treturn invalidLengthError{len(s)}\n\t}\n\n\t// Check for standard UUID format\n\tif len(s) == 36 {\n\t\tif s[8] != '-' || s[13] != '-' || s[18] != '-' || s[23] != '-' {\n\t\t\treturn errors.New(\"invalid UUID format\")\n\t\t}\n\t\tfor _, x := range []int{0, 2, 4, 6, 9, 11, 14, 16, 19, 21, 24, 26, 28, 30, 32, 34} {\n\t\t\tif _, ok := xtob(s[x], s[x+1]); !ok {\n\t\t\t\treturn errors.New(\"invalid UUID format\")\n\t\t\t}\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// String returns the string form of uuid, xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n// , or \"\" if uuid is invalid.\nfunc (uuid UUID) String() string {\n\tvar buf [36]byte\n\tencodeHex(buf[:], uuid)\n\treturn string(buf[:])\n}\n\n// URN returns the RFC 2141 URN form of uuid,\n// urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,  or \"\" if uuid is invalid.\nfunc (uuid UUID) URN() string {\n\tvar buf [36 + 9]byte\n\tcopy(buf[:], \"urn:uuid:\")\n\tencodeHex(buf[9:], uuid)\n\treturn string(buf[:])\n}\n\nfunc encodeHex(dst []byte, uuid UUID) {\n\thex.Encode(dst, uuid[:4])\n\tdst[8] = '-'\n\thex.Encode(dst[9:13], uuid[4:6])\n\tdst[13] = '-'\n\thex.Encode(dst[14:18], uuid[6:8])\n\tdst[18] = '-'\n\thex.Encode(dst[19:23], uuid[8:10])\n\tdst[23] = '-'\n\thex.Encode(dst[24:], uuid[10:])\n}\n\n// Variant returns the variant encoded in uuid.\nfunc (uuid UUID) Variant() Variant {\n\tswitch {\n\tcase (uuid[8] & 0xc0) == 0x80:\n\t\treturn RFC4122\n\tcase (uuid[8] & 0xe0) == 0xc0:\n\t\treturn Microsoft\n\tcase (uuid[8] & 0xe0) == 0xe0:\n\t\treturn Future\n\tdefault:\n\t\treturn Reserved\n\t}\n}\n\n// Version returns the version of uuid.\nfunc (uuid UUID) Version() Version {\n\treturn Version(uuid[6] >> 4)\n}\n\nfunc (v Version) String() string {\n\tif v > 15 {\n\t\treturn fmt.Sprintf(\"BAD_VERSION_%d\", v)\n\t}\n\treturn fmt.Sprintf(\"VERSION_%d\", v)\n}\n\nfunc (v Variant) String() string {\n\tswitch v {\n\tcase RFC4122:\n\t\treturn \"RFC4122\"\n\tcase Reserved:\n\t\treturn \"Reserved\"\n\tcase Microsoft:\n\t\treturn \"Microsoft\"\n\tcase Future:\n\t\treturn \"Future\"\n\tcase Invalid:\n\t\treturn \"Invalid\"\n\t}\n\treturn fmt.Sprintf(\"BadVariant%d\", int(v))\n}\n\n// SetRand sets the random number generator to r, which implements io.Reader.\n// If r.Read returns an error when the package requests random data then\n// a panic will be issued.\n//\n// Calling SetRand with nil sets the random number generator to the default\n// generator.\nfunc SetRand(r io.Reader) {\n\tif r == nil {\n\t\trander = rand.Reader\n\t\treturn\n\t}\n\trander = r\n}\n\n// EnableRandPool enables internal randomness pool used for Random\n// (Version 4) UUID generation. The pool contains random bytes read from\n// the random number generator on demand in batches. Enabling the pool\n// may improve the UUID generation throughput significantly.\n//\n// Since the pool is stored on the Go heap, this feature may be a bad fit\n// for security sensitive applications.\n//\n// Both EnableRandPool and DisableRandPool are not thread-safe and should\n// only be called when there is no possibility that New or any other\n// UUID Version 4 generation function will be called concurrently.\nfunc EnableRandPool() {\n\tpoolEnabled = true\n}\n\n// DisableRandPool disables the randomness pool if it was previously\n// enabled with EnableRandPool.\n//\n// Both EnableRandPool and DisableRandPool are not thread-safe and should\n// only be called when there is no possibility that New or any other\n// UUID Version 4 generation function will be called concurrently.\nfunc DisableRandPool() {\n\tpoolEnabled = false\n\tdefer poolMu.Unlock()\n\tpoolMu.Lock()\n\tpoolPos = randPoolSize\n}\n\n// UUIDs is a slice of UUID types.\ntype UUIDs []UUID\n\n// Strings returns a string slice containing the string form of each UUID in uuids.\nfunc (uuids UUIDs) Strings() []string {\n\tvar uuidStrs = make([]string, len(uuids))\n\tfor i, uuid := range uuids {\n\t\tuuidStrs[i] = uuid.String()\n\t}\n\treturn uuidStrs\n}\n"
  },
  {
    "path": "vendor/github.com/google/uuid/version1.go",
    "content": "// Copyright 2016 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage uuid\n\nimport (\n\t\"encoding/binary\"\n)\n\n// NewUUID returns a Version 1 UUID based on the current NodeID and clock\n// sequence, and the current time.  If the NodeID has not been set by SetNodeID\n// or SetNodeInterface then it will be set automatically.  If the NodeID cannot\n// be set NewUUID returns nil.  If clock sequence has not been set by\n// SetClockSequence then it will be set automatically.  If GetTime fails to\n// return the current NewUUID returns nil and an error.\n//\n// In most cases, New should be used.\nfunc NewUUID() (UUID, error) {\n\tvar uuid UUID\n\tnow, seq, err := GetTime()\n\tif err != nil {\n\t\treturn uuid, err\n\t}\n\n\ttimeLow := uint32(now & 0xffffffff)\n\ttimeMid := uint16((now >> 32) & 0xffff)\n\ttimeHi := uint16((now >> 48) & 0x0fff)\n\ttimeHi |= 0x1000 // Version 1\n\n\tbinary.BigEndian.PutUint32(uuid[0:], timeLow)\n\tbinary.BigEndian.PutUint16(uuid[4:], timeMid)\n\tbinary.BigEndian.PutUint16(uuid[6:], timeHi)\n\tbinary.BigEndian.PutUint16(uuid[8:], seq)\n\n\tnodeMu.Lock()\n\tif nodeID == zeroID {\n\t\tsetNodeInterface(\"\")\n\t}\n\tcopy(uuid[10:], nodeID[:])\n\tnodeMu.Unlock()\n\n\treturn uuid, nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/uuid/version4.go",
    "content": "// Copyright 2016 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage uuid\n\nimport \"io\"\n\n// New creates a new random UUID or panics.  New is equivalent to\n// the expression\n//\n//    uuid.Must(uuid.NewRandom())\nfunc New() UUID {\n\treturn Must(NewRandom())\n}\n\n// NewString creates a new random UUID and returns it as a string or panics.\n// NewString is equivalent to the expression\n//\n//    uuid.New().String()\nfunc NewString() string {\n\treturn Must(NewRandom()).String()\n}\n\n// NewRandom returns a Random (Version 4) UUID.\n//\n// The strength of the UUIDs is based on the strength of the crypto/rand\n// package.\n//\n// Uses the randomness pool if it was enabled with EnableRandPool.\n//\n// A note about uniqueness derived from the UUID Wikipedia entry:\n//\n//  Randomly generated UUIDs have 122 random bits.  One's annual risk of being\n//  hit by a meteorite is estimated to be one chance in 17 billion, that\n//  means the probability is about 0.00000000006 (6 × 10−11),\n//  equivalent to the odds of creating a few tens of trillions of UUIDs in a\n//  year and having one duplicate.\nfunc NewRandom() (UUID, error) {\n\tif !poolEnabled {\n\t\treturn NewRandomFromReader(rander)\n\t}\n\treturn newRandomFromPool()\n}\n\n// NewRandomFromReader returns a UUID based on bytes read from a given io.Reader.\nfunc NewRandomFromReader(r io.Reader) (UUID, error) {\n\tvar uuid UUID\n\t_, err := io.ReadFull(r, uuid[:])\n\tif err != nil {\n\t\treturn Nil, err\n\t}\n\tuuid[6] = (uuid[6] & 0x0f) | 0x40 // Version 4\n\tuuid[8] = (uuid[8] & 0x3f) | 0x80 // Variant is 10\n\treturn uuid, nil\n}\n\nfunc newRandomFromPool() (UUID, error) {\n\tvar uuid UUID\n\tpoolMu.Lock()\n\tif poolPos == randPoolSize {\n\t\t_, err := io.ReadFull(rander, pool[:])\n\t\tif err != nil {\n\t\t\tpoolMu.Unlock()\n\t\t\treturn Nil, err\n\t\t}\n\t\tpoolPos = 0\n\t}\n\tcopy(uuid[:], pool[poolPos:(poolPos+16)])\n\tpoolPos += 16\n\tpoolMu.Unlock()\n\n\tuuid[6] = (uuid[6] & 0x0f) | 0x40 // Version 4\n\tuuid[8] = (uuid[8] & 0x3f) | 0x80 // Variant is 10\n\treturn uuid, nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/uuid/version6.go",
    "content": "// Copyright 2023 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage uuid\n\nimport \"encoding/binary\"\n\n// UUID version 6 is a field-compatible version of UUIDv1, reordered for improved DB locality.\n// It is expected that UUIDv6 will primarily be used in contexts where there are existing v1 UUIDs.\n// Systems that do not involve legacy UUIDv1 SHOULD consider using UUIDv7 instead.\n//\n// see https://datatracker.ietf.org/doc/html/draft-peabody-dispatch-new-uuid-format-03#uuidv6\n//\n// NewV6 returns a Version 6 UUID based on the current NodeID and clock\n// sequence, and the current time. If the NodeID has not been set by SetNodeID\n// or SetNodeInterface then it will be set automatically. If the NodeID cannot\n// be set NewV6 set NodeID is random bits automatically . If clock sequence has not been set by\n// SetClockSequence then it will be set automatically. If GetTime fails to\n// return the current NewV6 returns Nil and an error.\nfunc NewV6() (UUID, error) {\n\tvar uuid UUID\n\tnow, seq, err := GetTime()\n\tif err != nil {\n\t\treturn uuid, err\n\t}\n\n\t/*\n\t    0                   1                   2                   3\n\t    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1\n\t   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n\t   |                           time_high                           |\n\t   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n\t   |           time_mid            |      time_low_and_version     |\n\t   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n\t   |clk_seq_hi_res |  clk_seq_low  |         node (0-1)            |\n\t   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n\t   |                         node (2-5)                            |\n\t   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n\t*/\n\n\tbinary.BigEndian.PutUint64(uuid[0:], uint64(now))\n\tbinary.BigEndian.PutUint16(uuid[8:], seq)\n\n\tuuid[6] = 0x60 | (uuid[6] & 0x0F)\n\tuuid[8] = 0x80 | (uuid[8] & 0x3F)\n\n\tnodeMu.Lock()\n\tif nodeID == zeroID {\n\t\tsetNodeInterface(\"\")\n\t}\n\tcopy(uuid[10:], nodeID[:])\n\tnodeMu.Unlock()\n\n\treturn uuid, nil\n}\n"
  },
  {
    "path": "vendor/github.com/google/uuid/version7.go",
    "content": "// Copyright 2023 Google Inc.  All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage uuid\n\nimport (\n\t\"io\"\n)\n\n// UUID version 7 features a time-ordered value field derived from the widely\n// implemented and well known Unix Epoch timestamp source,\n// the number of milliseconds seconds since midnight 1 Jan 1970 UTC, leap seconds excluded.\n// As well as improved entropy characteristics over versions 1 or 6.\n//\n// see https://datatracker.ietf.org/doc/html/draft-peabody-dispatch-new-uuid-format-03#name-uuid-version-7\n//\n// Implementations SHOULD utilize UUID version 7 over UUID version 1 and 6 if possible.\n//\n// NewV7 returns a Version 7 UUID based on the current time(Unix Epoch).\n// Uses the randomness pool if it was enabled with EnableRandPool.\n// On error, NewV7 returns Nil and an error\nfunc NewV7() (UUID, error) {\n\tuuid, err := NewRandom()\n\tif err != nil {\n\t\treturn uuid, err\n\t}\n\tmakeV7(uuid[:])\n\treturn uuid, nil\n}\n\n// NewV7FromReader returns a Version 7 UUID based on the current time(Unix Epoch).\n// it use NewRandomFromReader fill random bits.\n// On error, NewV7FromReader returns Nil and an error.\nfunc NewV7FromReader(r io.Reader) (UUID, error) {\n\tuuid, err := NewRandomFromReader(r)\n\tif err != nil {\n\t\treturn uuid, err\n\t}\n\n\tmakeV7(uuid[:])\n\treturn uuid, nil\n}\n\n// makeV7 fill 48 bits time (uuid[0] - uuid[5]), set version b0111 (uuid[6])\n// uuid[8] already has the right version number (Variant is 10)\n// see function NewV7 and NewV7FromReader\nfunc makeV7(uuid []byte) {\n\t/*\n\t\t 0                   1                   2                   3\n\t\t 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1\n\t\t+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n\t\t|                           unix_ts_ms                          |\n\t\t+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n\t\t|          unix_ts_ms           |  ver  |  rand_a (12 bit seq)  |\n\t\t+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n\t\t|var|                        rand_b                             |\n\t\t+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n\t\t|                            rand_b                             |\n\t\t+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\n\t*/\n\t_ = uuid[15] // bounds check\n\n\tt, s := getV7Time()\n\n\tuuid[0] = byte(t >> 40)\n\tuuid[1] = byte(t >> 32)\n\tuuid[2] = byte(t >> 24)\n\tuuid[3] = byte(t >> 16)\n\tuuid[4] = byte(t >> 8)\n\tuuid[5] = byte(t)\n\n\tuuid[6] = 0x70 | (0x0F & byte(s>>8))\n\tuuid[7] = byte(s)\n}\n\n// lastV7time is the last time we returned stored as:\n//\n//\t52 bits of time in milliseconds since epoch\n//\t12 bits of (fractional nanoseconds) >> 8\nvar lastV7time int64\n\nconst nanoPerMilli = 1000000\n\n// getV7Time returns the time in milliseconds and nanoseconds / 256.\n// The returned (milli << 12 + seq) is guarenteed to be greater than\n// (milli << 12 + seq) returned by any previous call to getV7Time.\nfunc getV7Time() (milli, seq int64) {\n\ttimeMu.Lock()\n\tdefer timeMu.Unlock()\n\n\tnano := timeNow().UnixNano()\n\tmilli = nano / nanoPerMilli\n\t// Sequence number is between 0 and 3906 (nanoPerMilli>>8)\n\tseq = (nano - milli*nanoPerMilli) >> 8\n\tnow := milli<<12 + seq\n\tif now <= lastV7time {\n\t\tnow = lastV7time + 1\n\t\tmilli = now >> 12\n\t\tseq = now & 0xfff\n\t}\n\tlastV7time = now\n\treturn milli, seq\n}\n"
  },
  {
    "path": "vendor/github.com/inconshreveable/mousetrap/LICENSE",
    "content": "                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright 2022 Alan Shreve (@inconshreveable)\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/inconshreveable/mousetrap/README.md",
    "content": "# mousetrap\n\nmousetrap is a tiny library that answers a single question.\n\nOn a Windows machine, was the process invoked by someone double clicking on\nthe executable file while browsing in explorer?\n\n### Motivation\n\nWindows developers unfamiliar with command line tools will often \"double-click\"\nthe executable for a tool. Because most CLI tools print the help and then exit\nwhen invoked without arguments, this is often very frustrating for those users.\n\nmousetrap provides a way to detect these invocations so that you can provide\nmore helpful behavior and instructions on how to run the CLI tool. To see what\nthis looks like, both from an organizational and a technical perspective, see\nhttps://inconshreveable.com/09-09-2014/sweat-the-small-stuff/\n\n### The interface\n\nThe library exposes a single interface:\n\n    func StartedByExplorer() (bool)\n"
  },
  {
    "path": "vendor/github.com/inconshreveable/mousetrap/trap_others.go",
    "content": "//go:build !windows\n// +build !windows\n\npackage mousetrap\n\n// StartedByExplorer returns true if the program was invoked by the user\n// double-clicking on the executable from explorer.exe\n//\n// It is conservative and returns false if any of the internal calls fail.\n// It does not guarantee that the program was run from a terminal. It only can tell you\n// whether it was launched from explorer.exe\n//\n// On non-Windows platforms, it always returns false.\nfunc StartedByExplorer() bool {\n\treturn false\n}\n"
  },
  {
    "path": "vendor/github.com/inconshreveable/mousetrap/trap_windows.go",
    "content": "package mousetrap\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc getProcessEntry(pid int) (*syscall.ProcessEntry32, error) {\n\tsnapshot, err := syscall.CreateToolhelp32Snapshot(syscall.TH32CS_SNAPPROCESS, 0)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer syscall.CloseHandle(snapshot)\n\tvar procEntry syscall.ProcessEntry32\n\tprocEntry.Size = uint32(unsafe.Sizeof(procEntry))\n\tif err = syscall.Process32First(snapshot, &procEntry); err != nil {\n\t\treturn nil, err\n\t}\n\tfor {\n\t\tif procEntry.ProcessID == uint32(pid) {\n\t\t\treturn &procEntry, nil\n\t\t}\n\t\terr = syscall.Process32Next(snapshot, &procEntry)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n}\n\n// StartedByExplorer returns true if the program was invoked by the user double-clicking\n// on the executable from explorer.exe\n//\n// It is conservative and returns false if any of the internal calls fail.\n// It does not guarantee that the program was run from a terminal. It only can tell you\n// whether it was launched from explorer.exe\nfunc StartedByExplorer() bool {\n\tpe, err := getProcessEntry(syscall.Getppid())\n\tif err != nil {\n\t\treturn false\n\t}\n\treturn \"explorer.exe\" == syscall.UTF16ToString(pe.ExeFile[:])\n}\n"
  },
  {
    "path": "vendor/github.com/josharian/intern/README.md",
    "content": "Docs: https://godoc.org/github.com/josharian/intern\n\nSee also [Go issue 5160](https://golang.org/issue/5160).\n\nLicense: MIT\n"
  },
  {
    "path": "vendor/github.com/josharian/intern/intern.go",
    "content": "// Package intern interns strings.\n// Interning is best effort only.\n// Interned strings may be removed automatically\n// at any time without notification.\n// All functions may be called concurrently\n// with themselves and each other.\npackage intern\n\nimport \"sync\"\n\nvar (\n\tpool sync.Pool = sync.Pool{\n\t\tNew: func() interface{} {\n\t\t\treturn make(map[string]string)\n\t\t},\n\t}\n)\n\n// String returns s, interned.\nfunc String(s string) string {\n\tm := pool.Get().(map[string]string)\n\tc, ok := m[s]\n\tif ok {\n\t\tpool.Put(m)\n\t\treturn c\n\t}\n\tm[s] = s\n\tpool.Put(m)\n\treturn s\n}\n\n// Bytes returns b converted to a string, interned.\nfunc Bytes(b []byte) string {\n\tm := pool.Get().(map[string]string)\n\tc, ok := m[string(b)]\n\tif ok {\n\t\tpool.Put(m)\n\t\treturn c\n\t}\n\ts := string(b)\n\tm[s] = s\n\tpool.Put(m)\n\treturn s\n}\n"
  },
  {
    "path": "vendor/github.com/josharian/intern/license.md",
    "content": "MIT License\n\nCopyright (c) 2019 Josh Bleecher Snyder\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "vendor/github.com/mailru/easyjson/LICENSE",
    "content": "Copyright (c) 2016 Mail.Ru Group\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "vendor/github.com/mailru/easyjson/buffer/pool.go",
    "content": "// Package buffer implements a buffer for serialization, consisting of a chain of []byte-s to\n// reduce copying and to allow reuse of individual chunks.\npackage buffer\n\nimport (\n\t\"io\"\n\t\"net\"\n\t\"sync\"\n)\n\n// PoolConfig contains configuration for the allocation and reuse strategy.\ntype PoolConfig struct {\n\tStartSize  int // Minimum chunk size that is allocated.\n\tPooledSize int // Minimum chunk size that is reused, reusing chunks too small will result in overhead.\n\tMaxSize    int // Maximum chunk size that will be allocated.\n}\n\nvar config = PoolConfig{\n\tStartSize:  128,\n\tPooledSize: 512,\n\tMaxSize:    32768,\n}\n\n// Reuse pool: chunk size -> pool.\nvar buffers = map[int]*sync.Pool{}\n\nfunc initBuffers() {\n\tfor l := config.PooledSize; l <= config.MaxSize; l *= 2 {\n\t\tbuffers[l] = new(sync.Pool)\n\t}\n}\n\nfunc init() {\n\tinitBuffers()\n}\n\n// Init sets up a non-default pooling and allocation strategy. Should be run before serialization is done.\nfunc Init(cfg PoolConfig) {\n\tconfig = cfg\n\tinitBuffers()\n}\n\n// putBuf puts a chunk to reuse pool if it can be reused.\nfunc putBuf(buf []byte) {\n\tsize := cap(buf)\n\tif size < config.PooledSize {\n\t\treturn\n\t}\n\tif c := buffers[size]; c != nil {\n\t\tc.Put(buf[:0])\n\t}\n}\n\n// getBuf gets a chunk from reuse pool or creates a new one if reuse failed.\nfunc getBuf(size int) []byte {\n\tif size >= config.PooledSize {\n\t\tif c := buffers[size]; c != nil {\n\t\t\tv := c.Get()\n\t\t\tif v != nil {\n\t\t\t\treturn v.([]byte)\n\t\t\t}\n\t\t}\n\t}\n\treturn make([]byte, 0, size)\n}\n\n// Buffer is a buffer optimized for serialization without extra copying.\ntype Buffer struct {\n\n\t// Buf is the current chunk that can be used for serialization.\n\tBuf []byte\n\n\ttoPool []byte\n\tbufs   [][]byte\n}\n\n// EnsureSpace makes sure that the current chunk contains at least s free bytes,\n// possibly creating a new chunk.\nfunc (b *Buffer) EnsureSpace(s int) {\n\tif cap(b.Buf)-len(b.Buf) < s {\n\t\tb.ensureSpaceSlow(s)\n\t}\n}\n\nfunc (b *Buffer) ensureSpaceSlow(s int) {\n\tl := len(b.Buf)\n\tif l > 0 {\n\t\tif cap(b.toPool) != cap(b.Buf) {\n\t\t\t// Chunk was reallocated, toPool can be pooled.\n\t\t\tputBuf(b.toPool)\n\t\t}\n\t\tif cap(b.bufs) == 0 {\n\t\t\tb.bufs = make([][]byte, 0, 8)\n\t\t}\n\t\tb.bufs = append(b.bufs, b.Buf)\n\t\tl = cap(b.toPool) * 2\n\t} else {\n\t\tl = config.StartSize\n\t}\n\n\tif l > config.MaxSize {\n\t\tl = config.MaxSize\n\t}\n\tb.Buf = getBuf(l)\n\tb.toPool = b.Buf\n}\n\n// AppendByte appends a single byte to buffer.\nfunc (b *Buffer) AppendByte(data byte) {\n\tb.EnsureSpace(1)\n\tb.Buf = append(b.Buf, data)\n}\n\n// AppendBytes appends a byte slice to buffer.\nfunc (b *Buffer) AppendBytes(data []byte) {\n\tif len(data) <= cap(b.Buf)-len(b.Buf) {\n\t\tb.Buf = append(b.Buf, data...) // fast path\n\t} else {\n\t\tb.appendBytesSlow(data)\n\t}\n}\n\nfunc (b *Buffer) appendBytesSlow(data []byte) {\n\tfor len(data) > 0 {\n\t\tb.EnsureSpace(1)\n\n\t\tsz := cap(b.Buf) - len(b.Buf)\n\t\tif sz > len(data) {\n\t\t\tsz = len(data)\n\t\t}\n\n\t\tb.Buf = append(b.Buf, data[:sz]...)\n\t\tdata = data[sz:]\n\t}\n}\n\n// AppendString appends a string to buffer.\nfunc (b *Buffer) AppendString(data string) {\n\tif len(data) <= cap(b.Buf)-len(b.Buf) {\n\t\tb.Buf = append(b.Buf, data...) // fast path\n\t} else {\n\t\tb.appendStringSlow(data)\n\t}\n}\n\nfunc (b *Buffer) appendStringSlow(data string) {\n\tfor len(data) > 0 {\n\t\tb.EnsureSpace(1)\n\n\t\tsz := cap(b.Buf) - len(b.Buf)\n\t\tif sz > len(data) {\n\t\t\tsz = len(data)\n\t\t}\n\n\t\tb.Buf = append(b.Buf, data[:sz]...)\n\t\tdata = data[sz:]\n\t}\n}\n\n// Size computes the size of a buffer by adding sizes of every chunk.\nfunc (b *Buffer) Size() int {\n\tsize := len(b.Buf)\n\tfor _, buf := range b.bufs {\n\t\tsize += len(buf)\n\t}\n\treturn size\n}\n\n// DumpTo outputs the contents of a buffer to a writer and resets the buffer.\nfunc (b *Buffer) DumpTo(w io.Writer) (written int, err error) {\n\tbufs := net.Buffers(b.bufs)\n\tif len(b.Buf) > 0 {\n\t\tbufs = append(bufs, b.Buf)\n\t}\n\tn, err := bufs.WriteTo(w)\n\n\tfor _, buf := range b.bufs {\n\t\tputBuf(buf)\n\t}\n\tputBuf(b.toPool)\n\n\tb.bufs = nil\n\tb.Buf = nil\n\tb.toPool = nil\n\n\treturn int(n), err\n}\n\n// BuildBytes creates a single byte slice with all the contents of the buffer. Data is\n// copied if it does not fit in a single chunk. You can optionally provide one byte\n// slice as argument that it will try to reuse.\nfunc (b *Buffer) BuildBytes(reuse ...[]byte) []byte {\n\tif len(b.bufs) == 0 {\n\t\tret := b.Buf\n\t\tb.toPool = nil\n\t\tb.Buf = nil\n\t\treturn ret\n\t}\n\n\tvar ret []byte\n\tsize := b.Size()\n\n\t// If we got a buffer as argument and it is big enough, reuse it.\n\tif len(reuse) == 1 && cap(reuse[0]) >= size {\n\t\tret = reuse[0][:0]\n\t} else {\n\t\tret = make([]byte, 0, size)\n\t}\n\tfor _, buf := range b.bufs {\n\t\tret = append(ret, buf...)\n\t\tputBuf(buf)\n\t}\n\n\tret = append(ret, b.Buf...)\n\tputBuf(b.toPool)\n\n\tb.bufs = nil\n\tb.toPool = nil\n\tb.Buf = nil\n\n\treturn ret\n}\n\ntype readCloser struct {\n\toffset int\n\tbufs   [][]byte\n}\n\nfunc (r *readCloser) Read(p []byte) (n int, err error) {\n\tfor _, buf := range r.bufs {\n\t\t// Copy as much as we can.\n\t\tx := copy(p[n:], buf[r.offset:])\n\t\tn += x // Increment how much we filled.\n\n\t\t// Did we empty the whole buffer?\n\t\tif r.offset+x == len(buf) {\n\t\t\t// On to the next buffer.\n\t\t\tr.offset = 0\n\t\t\tr.bufs = r.bufs[1:]\n\n\t\t\t// We can release this buffer.\n\t\t\tputBuf(buf)\n\t\t} else {\n\t\t\tr.offset += x\n\t\t}\n\n\t\tif n == len(p) {\n\t\t\tbreak\n\t\t}\n\t}\n\t// No buffers left or nothing read?\n\tif len(r.bufs) == 0 {\n\t\terr = io.EOF\n\t}\n\treturn\n}\n\nfunc (r *readCloser) Close() error {\n\t// Release all remaining buffers.\n\tfor _, buf := range r.bufs {\n\t\tputBuf(buf)\n\t}\n\t// In case Close gets called multiple times.\n\tr.bufs = nil\n\n\treturn nil\n}\n\n// ReadCloser creates an io.ReadCloser with all the contents of the buffer.\nfunc (b *Buffer) ReadCloser() io.ReadCloser {\n\tret := &readCloser{0, append(b.bufs, b.Buf)}\n\n\tb.bufs = nil\n\tb.toPool = nil\n\tb.Buf = nil\n\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/github.com/mailru/easyjson/jlexer/bytestostr.go",
    "content": "// This file will only be included to the build if neither\n// easyjson_nounsafe nor appengine build tag is set. See README notes\n// for more details.\n\n//+build !easyjson_nounsafe\n//+build !appengine\n\npackage jlexer\n\nimport (\n\t\"reflect\"\n\t\"unsafe\"\n)\n\n// bytesToStr creates a string pointing at the slice to avoid copying.\n//\n// Warning: the string returned by the function should be used with care, as the whole input data\n// chunk may be either blocked from being freed by GC because of a single string or the buffer.Data\n// may be garbage-collected even when the string exists.\nfunc bytesToStr(data []byte) string {\n\th := (*reflect.SliceHeader)(unsafe.Pointer(&data))\n\tshdr := reflect.StringHeader{Data: h.Data, Len: h.Len}\n\treturn *(*string)(unsafe.Pointer(&shdr))\n}\n"
  },
  {
    "path": "vendor/github.com/mailru/easyjson/jlexer/bytestostr_nounsafe.go",
    "content": "// This file is included to the build if any of the buildtags below\n// are defined. Refer to README notes for more details.\n\n//+build easyjson_nounsafe appengine\n\npackage jlexer\n\n// bytesToStr creates a string normally from []byte\n//\n// Note that this method is roughly 1.5x slower than using the 'unsafe' method.\nfunc bytesToStr(data []byte) string {\n\treturn string(data)\n}\n"
  },
  {
    "path": "vendor/github.com/mailru/easyjson/jlexer/error.go",
    "content": "package jlexer\n\nimport \"fmt\"\n\n// LexerError implements the error interface and represents all possible errors that can be\n// generated during parsing the JSON data.\ntype LexerError struct {\n\tReason string\n\tOffset int\n\tData   string\n}\n\nfunc (l *LexerError) Error() string {\n\treturn fmt.Sprintf(\"parse error: %s near offset %d of '%s'\", l.Reason, l.Offset, l.Data)\n}\n"
  },
  {
    "path": "vendor/github.com/mailru/easyjson/jlexer/lexer.go",
    "content": "// Package jlexer contains a JSON lexer implementation.\n//\n// It is expected that it is mostly used with generated parser code, so the interface is tuned\n// for a parser that knows what kind of data is expected.\npackage jlexer\n\nimport (\n\t\"bytes\"\n\t\"encoding/base64\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\t\"unicode\"\n\t\"unicode/utf16\"\n\t\"unicode/utf8\"\n\n\t\"github.com/josharian/intern\"\n)\n\n// tokenKind determines type of a token.\ntype tokenKind byte\n\nconst (\n\ttokenUndef  tokenKind = iota // No token.\n\ttokenDelim                   // Delimiter: one of '{', '}', '[' or ']'.\n\ttokenString                  // A string literal, e.g. \"abc\\u1234\"\n\ttokenNumber                  // Number literal, e.g. 1.5e5\n\ttokenBool                    // Boolean literal: true or false.\n\ttokenNull                    // null keyword.\n)\n\n// token describes a single token: type, position in the input and value.\ntype token struct {\n\tkind tokenKind // Type of a token.\n\n\tboolValue       bool   // Value if a boolean literal token.\n\tbyteValueCloned bool   // true if byteValue was allocated and does not refer to original json body\n\tbyteValue       []byte // Raw value of a token.\n\tdelimValue      byte\n}\n\n// Lexer is a JSON lexer: it iterates over JSON tokens in a byte slice.\ntype Lexer struct {\n\tData []byte // Input data given to the lexer.\n\n\tstart int   // Start of the current token.\n\tpos   int   // Current unscanned position in the input stream.\n\ttoken token // Last scanned token, if token.kind != tokenUndef.\n\n\tfirstElement bool // Whether current element is the first in array or an object.\n\twantSep      byte // A comma or a colon character, which need to occur before a token.\n\n\tUseMultipleErrors bool          // If we want to use multiple errors.\n\tfatalError        error         // Fatal error occurred during lexing. It is usually a syntax error.\n\tmultipleErrors    []*LexerError // Semantic errors occurred during lexing. Marshalling will be continued after finding this errors.\n}\n\n// FetchToken scans the input for the next token.\nfunc (r *Lexer) FetchToken() {\n\tr.token.kind = tokenUndef\n\tr.start = r.pos\n\n\t// Check if r.Data has r.pos element\n\t// If it doesn't, it mean corrupted input data\n\tif len(r.Data) < r.pos {\n\t\tr.errParse(\"Unexpected end of data\")\n\t\treturn\n\t}\n\t// Determine the type of a token by skipping whitespace and reading the\n\t// first character.\n\tfor _, c := range r.Data[r.pos:] {\n\t\tswitch c {\n\t\tcase ':', ',':\n\t\t\tif r.wantSep == c {\n\t\t\t\tr.pos++\n\t\t\t\tr.start++\n\t\t\t\tr.wantSep = 0\n\t\t\t} else {\n\t\t\t\tr.errSyntax()\n\t\t\t}\n\n\t\tcase ' ', '\\t', '\\r', '\\n':\n\t\t\tr.pos++\n\t\t\tr.start++\n\n\t\tcase '\"':\n\t\t\tif r.wantSep != 0 {\n\t\t\t\tr.errSyntax()\n\t\t\t}\n\n\t\t\tr.token.kind = tokenString\n\t\t\tr.fetchString()\n\t\t\treturn\n\n\t\tcase '{', '[':\n\t\t\tif r.wantSep != 0 {\n\t\t\t\tr.errSyntax()\n\t\t\t}\n\t\t\tr.firstElement = true\n\t\t\tr.token.kind = tokenDelim\n\t\t\tr.token.delimValue = r.Data[r.pos]\n\t\t\tr.pos++\n\t\t\treturn\n\n\t\tcase '}', ']':\n\t\t\tif !r.firstElement && (r.wantSep != ',') {\n\t\t\t\tr.errSyntax()\n\t\t\t}\n\t\t\tr.wantSep = 0\n\t\t\tr.token.kind = tokenDelim\n\t\t\tr.token.delimValue = r.Data[r.pos]\n\t\t\tr.pos++\n\t\t\treturn\n\n\t\tcase '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-':\n\t\t\tif r.wantSep != 0 {\n\t\t\t\tr.errSyntax()\n\t\t\t}\n\t\t\tr.token.kind = tokenNumber\n\t\t\tr.fetchNumber()\n\t\t\treturn\n\n\t\tcase 'n':\n\t\t\tif r.wantSep != 0 {\n\t\t\t\tr.errSyntax()\n\t\t\t}\n\n\t\t\tr.token.kind = tokenNull\n\t\t\tr.fetchNull()\n\t\t\treturn\n\n\t\tcase 't':\n\t\t\tif r.wantSep != 0 {\n\t\t\t\tr.errSyntax()\n\t\t\t}\n\n\t\t\tr.token.kind = tokenBool\n\t\t\tr.token.boolValue = true\n\t\t\tr.fetchTrue()\n\t\t\treturn\n\n\t\tcase 'f':\n\t\t\tif r.wantSep != 0 {\n\t\t\t\tr.errSyntax()\n\t\t\t}\n\n\t\t\tr.token.kind = tokenBool\n\t\t\tr.token.boolValue = false\n\t\t\tr.fetchFalse()\n\t\t\treturn\n\n\t\tdefault:\n\t\t\tr.errSyntax()\n\t\t\treturn\n\t\t}\n\t}\n\tr.fatalError = io.EOF\n\treturn\n}\n\n// isTokenEnd returns true if the char can follow a non-delimiter token\nfunc isTokenEnd(c byte) bool {\n\treturn c == ' ' || c == '\\t' || c == '\\r' || c == '\\n' || c == '[' || c == ']' || c == '{' || c == '}' || c == ',' || c == ':'\n}\n\n// fetchNull fetches and checks remaining bytes of null keyword.\nfunc (r *Lexer) fetchNull() {\n\tr.pos += 4\n\tif r.pos > len(r.Data) ||\n\t\tr.Data[r.pos-3] != 'u' ||\n\t\tr.Data[r.pos-2] != 'l' ||\n\t\tr.Data[r.pos-1] != 'l' ||\n\t\t(r.pos != len(r.Data) && !isTokenEnd(r.Data[r.pos])) {\n\n\t\tr.pos -= 4\n\t\tr.errSyntax()\n\t}\n}\n\n// fetchTrue fetches and checks remaining bytes of true keyword.\nfunc (r *Lexer) fetchTrue() {\n\tr.pos += 4\n\tif r.pos > len(r.Data) ||\n\t\tr.Data[r.pos-3] != 'r' ||\n\t\tr.Data[r.pos-2] != 'u' ||\n\t\tr.Data[r.pos-1] != 'e' ||\n\t\t(r.pos != len(r.Data) && !isTokenEnd(r.Data[r.pos])) {\n\n\t\tr.pos -= 4\n\t\tr.errSyntax()\n\t}\n}\n\n// fetchFalse fetches and checks remaining bytes of false keyword.\nfunc (r *Lexer) fetchFalse() {\n\tr.pos += 5\n\tif r.pos > len(r.Data) ||\n\t\tr.Data[r.pos-4] != 'a' ||\n\t\tr.Data[r.pos-3] != 'l' ||\n\t\tr.Data[r.pos-2] != 's' ||\n\t\tr.Data[r.pos-1] != 'e' ||\n\t\t(r.pos != len(r.Data) && !isTokenEnd(r.Data[r.pos])) {\n\n\t\tr.pos -= 5\n\t\tr.errSyntax()\n\t}\n}\n\n// fetchNumber scans a number literal token.\nfunc (r *Lexer) fetchNumber() {\n\thasE := false\n\tafterE := false\n\thasDot := false\n\n\tr.pos++\n\tfor i, c := range r.Data[r.pos:] {\n\t\tswitch {\n\t\tcase c >= '0' && c <= '9':\n\t\t\tafterE = false\n\t\tcase c == '.' && !hasDot:\n\t\t\thasDot = true\n\t\tcase (c == 'e' || c == 'E') && !hasE:\n\t\t\thasE = true\n\t\t\thasDot = true\n\t\t\tafterE = true\n\t\tcase (c == '+' || c == '-') && afterE:\n\t\t\tafterE = false\n\t\tdefault:\n\t\t\tr.pos += i\n\t\t\tif !isTokenEnd(c) {\n\t\t\t\tr.errSyntax()\n\t\t\t} else {\n\t\t\t\tr.token.byteValue = r.Data[r.start:r.pos]\n\t\t\t}\n\t\t\treturn\n\t\t}\n\t}\n\n\tr.pos = len(r.Data)\n\tr.token.byteValue = r.Data[r.start:]\n}\n\n// findStringLen tries to scan into the string literal for ending quote char to determine required size.\n// The size will be exact if no escapes are present and may be inexact if there are escaped chars.\nfunc findStringLen(data []byte) (isValid bool, length int) {\n\tfor {\n\t\tidx := bytes.IndexByte(data, '\"')\n\t\tif idx == -1 {\n\t\t\treturn false, len(data)\n\t\t}\n\t\tif idx == 0 || (idx > 0 && data[idx-1] != '\\\\') {\n\t\t\treturn true, length + idx\n\t\t}\n\n\t\t// count \\\\\\\\\\\\\\ sequences. even number of slashes means quote is not really escaped\n\t\tcnt := 1\n\t\tfor idx-cnt-1 >= 0 && data[idx-cnt-1] == '\\\\' {\n\t\t\tcnt++\n\t\t}\n\t\tif cnt%2 == 0 {\n\t\t\treturn true, length + idx\n\t\t}\n\n\t\tlength += idx + 1\n\t\tdata = data[idx+1:]\n\t}\n}\n\n// unescapeStringToken performs unescaping of string token.\n// if no escaping is needed, original string is returned, otherwise - a new one allocated\nfunc (r *Lexer) unescapeStringToken() (err error) {\n\tdata := r.token.byteValue\n\tvar unescapedData []byte\n\n\tfor {\n\t\ti := bytes.IndexByte(data, '\\\\')\n\t\tif i == -1 {\n\t\t\tbreak\n\t\t}\n\n\t\tescapedRune, escapedBytes, err := decodeEscape(data[i:])\n\t\tif err != nil {\n\t\t\tr.errParse(err.Error())\n\t\t\treturn err\n\t\t}\n\n\t\tif unescapedData == nil {\n\t\t\tunescapedData = make([]byte, 0, len(r.token.byteValue))\n\t\t}\n\n\t\tvar d [4]byte\n\t\ts := utf8.EncodeRune(d[:], escapedRune)\n\t\tunescapedData = append(unescapedData, data[:i]...)\n\t\tunescapedData = append(unescapedData, d[:s]...)\n\n\t\tdata = data[i+escapedBytes:]\n\t}\n\n\tif unescapedData != nil {\n\t\tr.token.byteValue = append(unescapedData, data...)\n\t\tr.token.byteValueCloned = true\n\t}\n\treturn\n}\n\n// getu4 decodes \\uXXXX from the beginning of s, returning the hex value,\n// or it returns -1.\nfunc getu4(s []byte) rune {\n\tif len(s) < 6 || s[0] != '\\\\' || s[1] != 'u' {\n\t\treturn -1\n\t}\n\tvar val rune\n\tfor i := 2; i < len(s) && i < 6; i++ {\n\t\tvar v byte\n\t\tc := s[i]\n\t\tswitch c {\n\t\tcase '0', '1', '2', '3', '4', '5', '6', '7', '8', '9':\n\t\t\tv = c - '0'\n\t\tcase 'a', 'b', 'c', 'd', 'e', 'f':\n\t\t\tv = c - 'a' + 10\n\t\tcase 'A', 'B', 'C', 'D', 'E', 'F':\n\t\t\tv = c - 'A' + 10\n\t\tdefault:\n\t\t\treturn -1\n\t\t}\n\n\t\tval <<= 4\n\t\tval |= rune(v)\n\t}\n\treturn val\n}\n\n// decodeEscape processes a single escape sequence and returns number of bytes processed.\nfunc decodeEscape(data []byte) (decoded rune, bytesProcessed int, err error) {\n\tif len(data) < 2 {\n\t\treturn 0, 0, errors.New(\"incorrect escape symbol \\\\ at the end of token\")\n\t}\n\n\tc := data[1]\n\tswitch c {\n\tcase '\"', '/', '\\\\':\n\t\treturn rune(c), 2, nil\n\tcase 'b':\n\t\treturn '\\b', 2, nil\n\tcase 'f':\n\t\treturn '\\f', 2, nil\n\tcase 'n':\n\t\treturn '\\n', 2, nil\n\tcase 'r':\n\t\treturn '\\r', 2, nil\n\tcase 't':\n\t\treturn '\\t', 2, nil\n\tcase 'u':\n\t\trr := getu4(data)\n\t\tif rr < 0 {\n\t\t\treturn 0, 0, errors.New(\"incorrectly escaped \\\\uXXXX sequence\")\n\t\t}\n\n\t\tread := 6\n\t\tif utf16.IsSurrogate(rr) {\n\t\t\trr1 := getu4(data[read:])\n\t\t\tif dec := utf16.DecodeRune(rr, rr1); dec != unicode.ReplacementChar {\n\t\t\t\tread += 6\n\t\t\t\trr = dec\n\t\t\t} else {\n\t\t\t\trr = unicode.ReplacementChar\n\t\t\t}\n\t\t}\n\t\treturn rr, read, nil\n\t}\n\n\treturn 0, 0, errors.New(\"incorrectly escaped bytes\")\n}\n\n// fetchString scans a string literal token.\nfunc (r *Lexer) fetchString() {\n\tr.pos++\n\tdata := r.Data[r.pos:]\n\n\tisValid, length := findStringLen(data)\n\tif !isValid {\n\t\tr.pos += length\n\t\tr.errParse(\"unterminated string literal\")\n\t\treturn\n\t}\n\tr.token.byteValue = data[:length]\n\tr.pos += length + 1 // skip closing '\"' as well\n}\n\n// scanToken scans the next token if no token is currently available in the lexer.\nfunc (r *Lexer) scanToken() {\n\tif r.token.kind != tokenUndef || r.fatalError != nil {\n\t\treturn\n\t}\n\n\tr.FetchToken()\n}\n\n// consume resets the current token to allow scanning the next one.\nfunc (r *Lexer) consume() {\n\tr.token.kind = tokenUndef\n\tr.token.byteValueCloned = false\n\tr.token.delimValue = 0\n}\n\n// Ok returns true if no error (including io.EOF) was encountered during scanning.\nfunc (r *Lexer) Ok() bool {\n\treturn r.fatalError == nil\n}\n\nconst maxErrorContextLen = 13\n\nfunc (r *Lexer) errParse(what string) {\n\tif r.fatalError == nil {\n\t\tvar str string\n\t\tif len(r.Data)-r.pos <= maxErrorContextLen {\n\t\t\tstr = string(r.Data)\n\t\t} else {\n\t\t\tstr = string(r.Data[r.pos:r.pos+maxErrorContextLen-3]) + \"...\"\n\t\t}\n\t\tr.fatalError = &LexerError{\n\t\t\tReason: what,\n\t\t\tOffset: r.pos,\n\t\t\tData:   str,\n\t\t}\n\t}\n}\n\nfunc (r *Lexer) errSyntax() {\n\tr.errParse(\"syntax error\")\n}\n\nfunc (r *Lexer) errInvalidToken(expected string) {\n\tif r.fatalError != nil {\n\t\treturn\n\t}\n\tif r.UseMultipleErrors {\n\t\tr.pos = r.start\n\t\tr.consume()\n\t\tr.SkipRecursive()\n\t\tswitch expected {\n\t\tcase \"[\":\n\t\t\tr.token.delimValue = ']'\n\t\t\tr.token.kind = tokenDelim\n\t\tcase \"{\":\n\t\t\tr.token.delimValue = '}'\n\t\t\tr.token.kind = tokenDelim\n\t\t}\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tReason: fmt.Sprintf(\"expected %s\", expected),\n\t\t\tOffset: r.start,\n\t\t\tData:   string(r.Data[r.start:r.pos]),\n\t\t})\n\t\treturn\n\t}\n\n\tvar str string\n\tif len(r.token.byteValue) <= maxErrorContextLen {\n\t\tstr = string(r.token.byteValue)\n\t} else {\n\t\tstr = string(r.token.byteValue[:maxErrorContextLen-3]) + \"...\"\n\t}\n\tr.fatalError = &LexerError{\n\t\tReason: fmt.Sprintf(\"expected %s\", expected),\n\t\tOffset: r.pos,\n\t\tData:   str,\n\t}\n}\n\nfunc (r *Lexer) GetPos() int {\n\treturn r.pos\n}\n\n// Delim consumes a token and verifies that it is the given delimiter.\nfunc (r *Lexer) Delim(c byte) {\n\tif r.token.kind == tokenUndef && r.Ok() {\n\t\tr.FetchToken()\n\t}\n\n\tif !r.Ok() || r.token.delimValue != c {\n\t\tr.consume() // errInvalidToken can change token if UseMultipleErrors is enabled.\n\t\tr.errInvalidToken(string([]byte{c}))\n\t} else {\n\t\tr.consume()\n\t}\n}\n\n// IsDelim returns true if there was no scanning error and next token is the given delimiter.\nfunc (r *Lexer) IsDelim(c byte) bool {\n\tif r.token.kind == tokenUndef && r.Ok() {\n\t\tr.FetchToken()\n\t}\n\treturn !r.Ok() || r.token.delimValue == c\n}\n\n// Null verifies that the next token is null and consumes it.\nfunc (r *Lexer) Null() {\n\tif r.token.kind == tokenUndef && r.Ok() {\n\t\tr.FetchToken()\n\t}\n\tif !r.Ok() || r.token.kind != tokenNull {\n\t\tr.errInvalidToken(\"null\")\n\t}\n\tr.consume()\n}\n\n// IsNull returns true if the next token is a null keyword.\nfunc (r *Lexer) IsNull() bool {\n\tif r.token.kind == tokenUndef && r.Ok() {\n\t\tr.FetchToken()\n\t}\n\treturn r.Ok() && r.token.kind == tokenNull\n}\n\n// Skip skips a single token.\nfunc (r *Lexer) Skip() {\n\tif r.token.kind == tokenUndef && r.Ok() {\n\t\tr.FetchToken()\n\t}\n\tr.consume()\n}\n\n// SkipRecursive skips next array or object completely, or just skips a single token if not\n// an array/object.\n//\n// Note: no syntax validation is performed on the skipped data.\nfunc (r *Lexer) SkipRecursive() {\n\tr.scanToken()\n\tvar start, end byte\n\tstartPos := r.start\n\n\tswitch r.token.delimValue {\n\tcase '{':\n\t\tstart, end = '{', '}'\n\tcase '[':\n\t\tstart, end = '[', ']'\n\tdefault:\n\t\tr.consume()\n\t\treturn\n\t}\n\n\tr.consume()\n\n\tlevel := 1\n\tinQuotes := false\n\twasEscape := false\n\n\tfor i, c := range r.Data[r.pos:] {\n\t\tswitch {\n\t\tcase c == start && !inQuotes:\n\t\t\tlevel++\n\t\tcase c == end && !inQuotes:\n\t\t\tlevel--\n\t\t\tif level == 0 {\n\t\t\t\tr.pos += i + 1\n\t\t\t\tif !json.Valid(r.Data[startPos:r.pos]) {\n\t\t\t\t\tr.pos = len(r.Data)\n\t\t\t\t\tr.fatalError = &LexerError{\n\t\t\t\t\t\tReason: \"skipped array/object json value is invalid\",\n\t\t\t\t\t\tOffset: r.pos,\n\t\t\t\t\t\tData:   string(r.Data[r.pos:]),\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn\n\t\t\t}\n\t\tcase c == '\\\\' && inQuotes:\n\t\t\twasEscape = !wasEscape\n\t\t\tcontinue\n\t\tcase c == '\"' && inQuotes:\n\t\t\tinQuotes = wasEscape\n\t\tcase c == '\"':\n\t\t\tinQuotes = true\n\t\t}\n\t\twasEscape = false\n\t}\n\tr.pos = len(r.Data)\n\tr.fatalError = &LexerError{\n\t\tReason: \"EOF reached while skipping array/object or token\",\n\t\tOffset: r.pos,\n\t\tData:   string(r.Data[r.pos:]),\n\t}\n}\n\n// Raw fetches the next item recursively as a data slice\nfunc (r *Lexer) Raw() []byte {\n\tr.SkipRecursive()\n\tif !r.Ok() {\n\t\treturn nil\n\t}\n\treturn r.Data[r.start:r.pos]\n}\n\n// IsStart returns whether the lexer is positioned at the start\n// of an input string.\nfunc (r *Lexer) IsStart() bool {\n\treturn r.pos == 0\n}\n\n// Consumed reads all remaining bytes from the input, publishing an error if\n// there is anything but whitespace remaining.\nfunc (r *Lexer) Consumed() {\n\tif r.pos > len(r.Data) || !r.Ok() {\n\t\treturn\n\t}\n\n\tfor _, c := range r.Data[r.pos:] {\n\t\tif c != ' ' && c != '\\t' && c != '\\r' && c != '\\n' {\n\t\t\tr.AddError(&LexerError{\n\t\t\t\tReason: \"invalid character '\" + string(c) + \"' after top-level value\",\n\t\t\t\tOffset: r.pos,\n\t\t\t\tData:   string(r.Data[r.pos:]),\n\t\t\t})\n\t\t\treturn\n\t\t}\n\n\t\tr.pos++\n\t\tr.start++\n\t}\n}\n\nfunc (r *Lexer) unsafeString(skipUnescape bool) (string, []byte) {\n\tif r.token.kind == tokenUndef && r.Ok() {\n\t\tr.FetchToken()\n\t}\n\tif !r.Ok() || r.token.kind != tokenString {\n\t\tr.errInvalidToken(\"string\")\n\t\treturn \"\", nil\n\t}\n\tif !skipUnescape {\n\t\tif err := r.unescapeStringToken(); err != nil {\n\t\t\tr.errInvalidToken(\"string\")\n\t\t\treturn \"\", nil\n\t\t}\n\t}\n\n\tbytes := r.token.byteValue\n\tret := bytesToStr(r.token.byteValue)\n\tr.consume()\n\treturn ret, bytes\n}\n\n// UnsafeString returns the string value if the token is a string literal.\n//\n// Warning: returned string may point to the input buffer, so the string should not outlive\n// the input buffer. Intended pattern of usage is as an argument to a switch statement.\nfunc (r *Lexer) UnsafeString() string {\n\tret, _ := r.unsafeString(false)\n\treturn ret\n}\n\n// UnsafeBytes returns the byte slice if the token is a string literal.\nfunc (r *Lexer) UnsafeBytes() []byte {\n\t_, ret := r.unsafeString(false)\n\treturn ret\n}\n\n// UnsafeFieldName returns current member name string token\nfunc (r *Lexer) UnsafeFieldName(skipUnescape bool) string {\n\tret, _ := r.unsafeString(skipUnescape)\n\treturn ret\n}\n\n// String reads a string literal.\nfunc (r *Lexer) String() string {\n\tif r.token.kind == tokenUndef && r.Ok() {\n\t\tr.FetchToken()\n\t}\n\tif !r.Ok() || r.token.kind != tokenString {\n\t\tr.errInvalidToken(\"string\")\n\t\treturn \"\"\n\t}\n\tif err := r.unescapeStringToken(); err != nil {\n\t\tr.errInvalidToken(\"string\")\n\t\treturn \"\"\n\t}\n\tvar ret string\n\tif r.token.byteValueCloned {\n\t\tret = bytesToStr(r.token.byteValue)\n\t} else {\n\t\tret = string(r.token.byteValue)\n\t}\n\tr.consume()\n\treturn ret\n}\n\n// StringIntern reads a string literal, and performs string interning on it.\nfunc (r *Lexer) StringIntern() string {\n\tif r.token.kind == tokenUndef && r.Ok() {\n\t\tr.FetchToken()\n\t}\n\tif !r.Ok() || r.token.kind != tokenString {\n\t\tr.errInvalidToken(\"string\")\n\t\treturn \"\"\n\t}\n\tif err := r.unescapeStringToken(); err != nil {\n\t\tr.errInvalidToken(\"string\")\n\t\treturn \"\"\n\t}\n\tret := intern.Bytes(r.token.byteValue)\n\tr.consume()\n\treturn ret\n}\n\n// Bytes reads a string literal and base64 decodes it into a byte slice.\nfunc (r *Lexer) Bytes() []byte {\n\tif r.token.kind == tokenUndef && r.Ok() {\n\t\tr.FetchToken()\n\t}\n\tif !r.Ok() || r.token.kind != tokenString {\n\t\tr.errInvalidToken(\"string\")\n\t\treturn nil\n\t}\n\tif err := r.unescapeStringToken(); err != nil {\n\t\tr.errInvalidToken(\"string\")\n\t\treturn nil\n\t}\n\tret := make([]byte, base64.StdEncoding.DecodedLen(len(r.token.byteValue)))\n\tn, err := base64.StdEncoding.Decode(ret, r.token.byteValue)\n\tif err != nil {\n\t\tr.fatalError = &LexerError{\n\t\t\tReason: err.Error(),\n\t\t}\n\t\treturn nil\n\t}\n\n\tr.consume()\n\treturn ret[:n]\n}\n\n// Bool reads a true or false boolean keyword.\nfunc (r *Lexer) Bool() bool {\n\tif r.token.kind == tokenUndef && r.Ok() {\n\t\tr.FetchToken()\n\t}\n\tif !r.Ok() || r.token.kind != tokenBool {\n\t\tr.errInvalidToken(\"bool\")\n\t\treturn false\n\t}\n\tret := r.token.boolValue\n\tr.consume()\n\treturn ret\n}\n\nfunc (r *Lexer) number() string {\n\tif r.token.kind == tokenUndef && r.Ok() {\n\t\tr.FetchToken()\n\t}\n\tif !r.Ok() || r.token.kind != tokenNumber {\n\t\tr.errInvalidToken(\"number\")\n\t\treturn \"\"\n\t}\n\tret := bytesToStr(r.token.byteValue)\n\tr.consume()\n\treturn ret\n}\n\nfunc (r *Lexer) Uint8() uint8 {\n\ts := r.number()\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseUint(s, 10, 8)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   s,\n\t\t})\n\t}\n\treturn uint8(n)\n}\n\nfunc (r *Lexer) Uint16() uint16 {\n\ts := r.number()\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseUint(s, 10, 16)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   s,\n\t\t})\n\t}\n\treturn uint16(n)\n}\n\nfunc (r *Lexer) Uint32() uint32 {\n\ts := r.number()\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseUint(s, 10, 32)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   s,\n\t\t})\n\t}\n\treturn uint32(n)\n}\n\nfunc (r *Lexer) Uint64() uint64 {\n\ts := r.number()\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseUint(s, 10, 64)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   s,\n\t\t})\n\t}\n\treturn n\n}\n\nfunc (r *Lexer) Uint() uint {\n\treturn uint(r.Uint64())\n}\n\nfunc (r *Lexer) Int8() int8 {\n\ts := r.number()\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseInt(s, 10, 8)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   s,\n\t\t})\n\t}\n\treturn int8(n)\n}\n\nfunc (r *Lexer) Int16() int16 {\n\ts := r.number()\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseInt(s, 10, 16)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   s,\n\t\t})\n\t}\n\treturn int16(n)\n}\n\nfunc (r *Lexer) Int32() int32 {\n\ts := r.number()\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseInt(s, 10, 32)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   s,\n\t\t})\n\t}\n\treturn int32(n)\n}\n\nfunc (r *Lexer) Int64() int64 {\n\ts := r.number()\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseInt(s, 10, 64)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   s,\n\t\t})\n\t}\n\treturn n\n}\n\nfunc (r *Lexer) Int() int {\n\treturn int(r.Int64())\n}\n\nfunc (r *Lexer) Uint8Str() uint8 {\n\ts, b := r.unsafeString(false)\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseUint(s, 10, 8)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   string(b),\n\t\t})\n\t}\n\treturn uint8(n)\n}\n\nfunc (r *Lexer) Uint16Str() uint16 {\n\ts, b := r.unsafeString(false)\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseUint(s, 10, 16)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   string(b),\n\t\t})\n\t}\n\treturn uint16(n)\n}\n\nfunc (r *Lexer) Uint32Str() uint32 {\n\ts, b := r.unsafeString(false)\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseUint(s, 10, 32)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   string(b),\n\t\t})\n\t}\n\treturn uint32(n)\n}\n\nfunc (r *Lexer) Uint64Str() uint64 {\n\ts, b := r.unsafeString(false)\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseUint(s, 10, 64)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   string(b),\n\t\t})\n\t}\n\treturn n\n}\n\nfunc (r *Lexer) UintStr() uint {\n\treturn uint(r.Uint64Str())\n}\n\nfunc (r *Lexer) UintptrStr() uintptr {\n\treturn uintptr(r.Uint64Str())\n}\n\nfunc (r *Lexer) Int8Str() int8 {\n\ts, b := r.unsafeString(false)\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseInt(s, 10, 8)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   string(b),\n\t\t})\n\t}\n\treturn int8(n)\n}\n\nfunc (r *Lexer) Int16Str() int16 {\n\ts, b := r.unsafeString(false)\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseInt(s, 10, 16)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   string(b),\n\t\t})\n\t}\n\treturn int16(n)\n}\n\nfunc (r *Lexer) Int32Str() int32 {\n\ts, b := r.unsafeString(false)\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseInt(s, 10, 32)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   string(b),\n\t\t})\n\t}\n\treturn int32(n)\n}\n\nfunc (r *Lexer) Int64Str() int64 {\n\ts, b := r.unsafeString(false)\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseInt(s, 10, 64)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   string(b),\n\t\t})\n\t}\n\treturn n\n}\n\nfunc (r *Lexer) IntStr() int {\n\treturn int(r.Int64Str())\n}\n\nfunc (r *Lexer) Float32() float32 {\n\ts := r.number()\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseFloat(s, 32)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   s,\n\t\t})\n\t}\n\treturn float32(n)\n}\n\nfunc (r *Lexer) Float32Str() float32 {\n\ts, b := r.unsafeString(false)\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\tn, err := strconv.ParseFloat(s, 32)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   string(b),\n\t\t})\n\t}\n\treturn float32(n)\n}\n\nfunc (r *Lexer) Float64() float64 {\n\ts := r.number()\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\n\tn, err := strconv.ParseFloat(s, 64)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   s,\n\t\t})\n\t}\n\treturn n\n}\n\nfunc (r *Lexer) Float64Str() float64 {\n\ts, b := r.unsafeString(false)\n\tif !r.Ok() {\n\t\treturn 0\n\t}\n\tn, err := strconv.ParseFloat(s, 64)\n\tif err != nil {\n\t\tr.addNonfatalError(&LexerError{\n\t\t\tOffset: r.start,\n\t\t\tReason: err.Error(),\n\t\t\tData:   string(b),\n\t\t})\n\t}\n\treturn n\n}\n\nfunc (r *Lexer) Error() error {\n\treturn r.fatalError\n}\n\nfunc (r *Lexer) AddError(e error) {\n\tif r.fatalError == nil {\n\t\tr.fatalError = e\n\t}\n}\n\nfunc (r *Lexer) AddNonFatalError(e error) {\n\tr.addNonfatalError(&LexerError{\n\t\tOffset: r.start,\n\t\tData:   string(r.Data[r.start:r.pos]),\n\t\tReason: e.Error(),\n\t})\n}\n\nfunc (r *Lexer) addNonfatalError(err *LexerError) {\n\tif r.UseMultipleErrors {\n\t\t// We don't want to add errors with the same offset.\n\t\tif len(r.multipleErrors) != 0 && r.multipleErrors[len(r.multipleErrors)-1].Offset == err.Offset {\n\t\t\treturn\n\t\t}\n\t\tr.multipleErrors = append(r.multipleErrors, err)\n\t\treturn\n\t}\n\tr.fatalError = err\n}\n\nfunc (r *Lexer) GetNonFatalErrors() []*LexerError {\n\treturn r.multipleErrors\n}\n\n// JsonNumber fetches and json.Number from 'encoding/json' package.\n// Both int, float or string, contains them are valid values\nfunc (r *Lexer) JsonNumber() json.Number {\n\tif r.token.kind == tokenUndef && r.Ok() {\n\t\tr.FetchToken()\n\t}\n\tif !r.Ok() {\n\t\tr.errInvalidToken(\"json.Number\")\n\t\treturn json.Number(\"\")\n\t}\n\n\tswitch r.token.kind {\n\tcase tokenString:\n\t\treturn json.Number(r.String())\n\tcase tokenNumber:\n\t\treturn json.Number(r.Raw())\n\tcase tokenNull:\n\t\tr.Null()\n\t\treturn json.Number(\"\")\n\tdefault:\n\t\tr.errSyntax()\n\t\treturn json.Number(\"\")\n\t}\n}\n\n// Interface fetches an interface{} analogous to the 'encoding/json' package.\nfunc (r *Lexer) Interface() interface{} {\n\tif r.token.kind == tokenUndef && r.Ok() {\n\t\tr.FetchToken()\n\t}\n\n\tif !r.Ok() {\n\t\treturn nil\n\t}\n\tswitch r.token.kind {\n\tcase tokenString:\n\t\treturn r.String()\n\tcase tokenNumber:\n\t\treturn r.Float64()\n\tcase tokenBool:\n\t\treturn r.Bool()\n\tcase tokenNull:\n\t\tr.Null()\n\t\treturn nil\n\t}\n\n\tif r.token.delimValue == '{' {\n\t\tr.consume()\n\n\t\tret := map[string]interface{}{}\n\t\tfor !r.IsDelim('}') {\n\t\t\tkey := r.String()\n\t\t\tr.WantColon()\n\t\t\tret[key] = r.Interface()\n\t\t\tr.WantComma()\n\t\t}\n\t\tr.Delim('}')\n\n\t\tif r.Ok() {\n\t\t\treturn ret\n\t\t} else {\n\t\t\treturn nil\n\t\t}\n\t} else if r.token.delimValue == '[' {\n\t\tr.consume()\n\n\t\tret := []interface{}{}\n\t\tfor !r.IsDelim(']') {\n\t\t\tret = append(ret, r.Interface())\n\t\t\tr.WantComma()\n\t\t}\n\t\tr.Delim(']')\n\n\t\tif r.Ok() {\n\t\t\treturn ret\n\t\t} else {\n\t\t\treturn nil\n\t\t}\n\t}\n\tr.errSyntax()\n\treturn nil\n}\n\n// WantComma requires a comma to be present before fetching next token.\nfunc (r *Lexer) WantComma() {\n\tr.wantSep = ','\n\tr.firstElement = false\n}\n\n// WantColon requires a colon to be present before fetching next token.\nfunc (r *Lexer) WantColon() {\n\tr.wantSep = ':'\n\tr.firstElement = false\n}\n"
  },
  {
    "path": "vendor/github.com/mailru/easyjson/jwriter/writer.go",
    "content": "// Package jwriter contains a JSON writer.\npackage jwriter\n\nimport (\n\t\"io\"\n\t\"strconv\"\n\t\"unicode/utf8\"\n\n\t\"github.com/mailru/easyjson/buffer\"\n)\n\n// Flags describe various encoding options. The behavior may be actually implemented in the encoder, but\n// Flags field in Writer is used to set and pass them around.\ntype Flags int\n\nconst (\n\tNilMapAsEmpty   Flags = 1 << iota // Encode nil map as '{}' rather than 'null'.\n\tNilSliceAsEmpty                   // Encode nil slice as '[]' rather than 'null'.\n)\n\n// Writer is a JSON writer.\ntype Writer struct {\n\tFlags Flags\n\n\tError        error\n\tBuffer       buffer.Buffer\n\tNoEscapeHTML bool\n}\n\n// Size returns the size of the data that was written out.\nfunc (w *Writer) Size() int {\n\treturn w.Buffer.Size()\n}\n\n// DumpTo outputs the data to given io.Writer, resetting the buffer.\nfunc (w *Writer) DumpTo(out io.Writer) (written int, err error) {\n\treturn w.Buffer.DumpTo(out)\n}\n\n// BuildBytes returns writer data as a single byte slice. You can optionally provide one byte slice\n// as argument that it will try to reuse.\nfunc (w *Writer) BuildBytes(reuse ...[]byte) ([]byte, error) {\n\tif w.Error != nil {\n\t\treturn nil, w.Error\n\t}\n\n\treturn w.Buffer.BuildBytes(reuse...), nil\n}\n\n// ReadCloser returns an io.ReadCloser that can be used to read the data.\n// ReadCloser also resets the buffer.\nfunc (w *Writer) ReadCloser() (io.ReadCloser, error) {\n\tif w.Error != nil {\n\t\treturn nil, w.Error\n\t}\n\n\treturn w.Buffer.ReadCloser(), nil\n}\n\n// RawByte appends raw binary data to the buffer.\nfunc (w *Writer) RawByte(c byte) {\n\tw.Buffer.AppendByte(c)\n}\n\n// RawByte appends raw binary data to the buffer.\nfunc (w *Writer) RawString(s string) {\n\tw.Buffer.AppendString(s)\n}\n\n// Raw appends raw binary data to the buffer or sets the error if it is given. Useful for\n// calling with results of MarshalJSON-like functions.\nfunc (w *Writer) Raw(data []byte, err error) {\n\tswitch {\n\tcase w.Error != nil:\n\t\treturn\n\tcase err != nil:\n\t\tw.Error = err\n\tcase len(data) > 0:\n\t\tw.Buffer.AppendBytes(data)\n\tdefault:\n\t\tw.RawString(\"null\")\n\t}\n}\n\n// RawText encloses raw binary data in quotes and appends in to the buffer.\n// Useful for calling with results of MarshalText-like functions.\nfunc (w *Writer) RawText(data []byte, err error) {\n\tswitch {\n\tcase w.Error != nil:\n\t\treturn\n\tcase err != nil:\n\t\tw.Error = err\n\tcase len(data) > 0:\n\t\tw.String(string(data))\n\tdefault:\n\t\tw.RawString(\"null\")\n\t}\n}\n\n// Base64Bytes appends data to the buffer after base64 encoding it\nfunc (w *Writer) Base64Bytes(data []byte) {\n\tif data == nil {\n\t\tw.Buffer.AppendString(\"null\")\n\t\treturn\n\t}\n\tw.Buffer.AppendByte('\"')\n\tw.base64(data)\n\tw.Buffer.AppendByte('\"')\n}\n\nfunc (w *Writer) Uint8(n uint8) {\n\tw.Buffer.EnsureSpace(3)\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)\n}\n\nfunc (w *Writer) Uint16(n uint16) {\n\tw.Buffer.EnsureSpace(5)\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)\n}\n\nfunc (w *Writer) Uint32(n uint32) {\n\tw.Buffer.EnsureSpace(10)\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)\n}\n\nfunc (w *Writer) Uint(n uint) {\n\tw.Buffer.EnsureSpace(20)\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)\n}\n\nfunc (w *Writer) Uint64(n uint64) {\n\tw.Buffer.EnsureSpace(20)\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, n, 10)\n}\n\nfunc (w *Writer) Int8(n int8) {\n\tw.Buffer.EnsureSpace(4)\n\tw.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, int64(n), 10)\n}\n\nfunc (w *Writer) Int16(n int16) {\n\tw.Buffer.EnsureSpace(6)\n\tw.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, int64(n), 10)\n}\n\nfunc (w *Writer) Int32(n int32) {\n\tw.Buffer.EnsureSpace(11)\n\tw.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, int64(n), 10)\n}\n\nfunc (w *Writer) Int(n int) {\n\tw.Buffer.EnsureSpace(21)\n\tw.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, int64(n), 10)\n}\n\nfunc (w *Writer) Int64(n int64) {\n\tw.Buffer.EnsureSpace(21)\n\tw.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, n, 10)\n}\n\nfunc (w *Writer) Uint8Str(n uint8) {\n\tw.Buffer.EnsureSpace(3)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) Uint16Str(n uint16) {\n\tw.Buffer.EnsureSpace(5)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) Uint32Str(n uint32) {\n\tw.Buffer.EnsureSpace(10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) UintStr(n uint) {\n\tw.Buffer.EnsureSpace(20)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) Uint64Str(n uint64) {\n\tw.Buffer.EnsureSpace(20)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, n, 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) UintptrStr(n uintptr) {\n\tw.Buffer.EnsureSpace(20)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) Int8Str(n int8) {\n\tw.Buffer.EnsureSpace(4)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, int64(n), 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) Int16Str(n int16) {\n\tw.Buffer.EnsureSpace(6)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, int64(n), 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) Int32Str(n int32) {\n\tw.Buffer.EnsureSpace(11)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, int64(n), 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) IntStr(n int) {\n\tw.Buffer.EnsureSpace(21)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, int64(n), 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) Int64Str(n int64) {\n\tw.Buffer.EnsureSpace(21)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, n, 10)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) Float32(n float32) {\n\tw.Buffer.EnsureSpace(20)\n\tw.Buffer.Buf = strconv.AppendFloat(w.Buffer.Buf, float64(n), 'g', -1, 32)\n}\n\nfunc (w *Writer) Float32Str(n float32) {\n\tw.Buffer.EnsureSpace(20)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendFloat(w.Buffer.Buf, float64(n), 'g', -1, 32)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) Float64(n float64) {\n\tw.Buffer.EnsureSpace(20)\n\tw.Buffer.Buf = strconv.AppendFloat(w.Buffer.Buf, n, 'g', -1, 64)\n}\n\nfunc (w *Writer) Float64Str(n float64) {\n\tw.Buffer.EnsureSpace(20)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n\tw.Buffer.Buf = strconv.AppendFloat(w.Buffer.Buf, float64(n), 'g', -1, 64)\n\tw.Buffer.Buf = append(w.Buffer.Buf, '\"')\n}\n\nfunc (w *Writer) Bool(v bool) {\n\tw.Buffer.EnsureSpace(5)\n\tif v {\n\t\tw.Buffer.Buf = append(w.Buffer.Buf, \"true\"...)\n\t} else {\n\t\tw.Buffer.Buf = append(w.Buffer.Buf, \"false\"...)\n\t}\n}\n\nconst chars = \"0123456789abcdef\"\n\nfunc getTable(falseValues ...int) [128]bool {\n\ttable := [128]bool{}\n\n\tfor i := 0; i < 128; i++ {\n\t\ttable[i] = true\n\t}\n\n\tfor _, v := range falseValues {\n\t\ttable[v] = false\n\t}\n\n\treturn table\n}\n\nvar (\n\thtmlEscapeTable   = getTable(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, '\"', '&', '<', '>', '\\\\')\n\thtmlNoEscapeTable = getTable(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, '\"', '\\\\')\n)\n\nfunc (w *Writer) String(s string) {\n\tw.Buffer.AppendByte('\"')\n\n\t// Portions of the string that contain no escapes are appended as\n\t// byte slices.\n\n\tp := 0 // last non-escape symbol\n\n\tescapeTable := &htmlEscapeTable\n\tif w.NoEscapeHTML {\n\t\tescapeTable = &htmlNoEscapeTable\n\t}\n\n\tfor i := 0; i < len(s); {\n\t\tc := s[i]\n\n\t\tif c < utf8.RuneSelf {\n\t\t\tif escapeTable[c] {\n\t\t\t\t// single-width character, no escaping is required\n\t\t\t\ti++\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tw.Buffer.AppendString(s[p:i])\n\t\t\tswitch c {\n\t\t\tcase '\\t':\n\t\t\t\tw.Buffer.AppendString(`\\t`)\n\t\t\tcase '\\r':\n\t\t\t\tw.Buffer.AppendString(`\\r`)\n\t\t\tcase '\\n':\n\t\t\t\tw.Buffer.AppendString(`\\n`)\n\t\t\tcase '\\\\':\n\t\t\t\tw.Buffer.AppendString(`\\\\`)\n\t\t\tcase '\"':\n\t\t\t\tw.Buffer.AppendString(`\\\"`)\n\t\t\tdefault:\n\t\t\t\tw.Buffer.AppendString(`\\u00`)\n\t\t\t\tw.Buffer.AppendByte(chars[c>>4])\n\t\t\t\tw.Buffer.AppendByte(chars[c&0xf])\n\t\t\t}\n\n\t\t\ti++\n\t\t\tp = i\n\t\t\tcontinue\n\t\t}\n\n\t\t// broken utf\n\t\truneValue, runeWidth := utf8.DecodeRuneInString(s[i:])\n\t\tif runeValue == utf8.RuneError && runeWidth == 1 {\n\t\t\tw.Buffer.AppendString(s[p:i])\n\t\t\tw.Buffer.AppendString(`\\ufffd`)\n\t\t\ti++\n\t\t\tp = i\n\t\t\tcontinue\n\t\t}\n\n\t\t// jsonp stuff - tab separator and line separator\n\t\tif runeValue == '\\u2028' || runeValue == '\\u2029' {\n\t\t\tw.Buffer.AppendString(s[p:i])\n\t\t\tw.Buffer.AppendString(`\\u202`)\n\t\t\tw.Buffer.AppendByte(chars[runeValue&0xf])\n\t\t\ti += runeWidth\n\t\t\tp = i\n\t\t\tcontinue\n\t\t}\n\t\ti += runeWidth\n\t}\n\tw.Buffer.AppendString(s[p:])\n\tw.Buffer.AppendByte('\"')\n}\n\nconst encode = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\"\nconst padChar = '='\n\nfunc (w *Writer) base64(in []byte) {\n\n\tif len(in) == 0 {\n\t\treturn\n\t}\n\n\tw.Buffer.EnsureSpace(((len(in)-1)/3 + 1) * 4)\n\n\tsi := 0\n\tn := (len(in) / 3) * 3\n\n\tfor si < n {\n\t\t// Convert 3x 8bit source bytes into 4 bytes\n\t\tval := uint(in[si+0])<<16 | uint(in[si+1])<<8 | uint(in[si+2])\n\n\t\tw.Buffer.Buf = append(w.Buffer.Buf, encode[val>>18&0x3F], encode[val>>12&0x3F], encode[val>>6&0x3F], encode[val&0x3F])\n\n\t\tsi += 3\n\t}\n\n\tremain := len(in) - si\n\tif remain == 0 {\n\t\treturn\n\t}\n\n\t// Add the remaining small block\n\tval := uint(in[si+0]) << 16\n\tif remain == 2 {\n\t\tval |= uint(in[si+1]) << 8\n\t}\n\n\tw.Buffer.Buf = append(w.Buffer.Buf, encode[val>>18&0x3F], encode[val>>12&0x3F])\n\n\tswitch remain {\n\tcase 2:\n\t\tw.Buffer.Buf = append(w.Buffer.Buf, encode[val>>6&0x3F], byte(padChar))\n\tcase 1:\n\t\tw.Buffer.Buf = append(w.Buffer.Buf, byte(padChar), byte(padChar))\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/modern-go/concurrent/.gitignore",
    "content": "/coverage.txt\n"
  },
  {
    "path": "vendor/github.com/modern-go/concurrent/.travis.yml",
    "content": "language: go\n\ngo:\n  - 1.8.x\n  - 1.x\n\nbefore_install:\n  - go get -t -v ./...\n\nscript:\n  - ./test.sh\n\nafter_success:\n  - bash <(curl -s https://codecov.io/bash)\n"
  },
  {
    "path": "vendor/github.com/modern-go/concurrent/LICENSE",
    "content": "                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/github.com/modern-go/concurrent/README.md",
    "content": "# concurrent\n\n[![Sourcegraph](https://sourcegraph.com/github.com/modern-go/concurrent/-/badge.svg)](https://sourcegraph.com/github.com/modern-go/concurrent?badge)\n[![GoDoc](http://img.shields.io/badge/go-documentation-blue.svg?style=flat-square)](http://godoc.org/github.com/modern-go/concurrent)\n[![Build Status](https://travis-ci.org/modern-go/concurrent.svg?branch=master)](https://travis-ci.org/modern-go/concurrent)\n[![codecov](https://codecov.io/gh/modern-go/concurrent/branch/master/graph/badge.svg)](https://codecov.io/gh/modern-go/concurrent)\n[![rcard](https://goreportcard.com/badge/github.com/modern-go/concurrent)](https://goreportcard.com/report/github.com/modern-go/concurrent)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://raw.githubusercontent.com/modern-go/concurrent/master/LICENSE)\n\n* concurrent.Map: backport sync.Map for go below 1.9\n* concurrent.Executor: goroutine with explicit ownership and cancellable\n\n# concurrent.Map\n\nbecause sync.Map is only available in go 1.9, we can use concurrent.Map to make code portable\n\n```go\nm := concurrent.NewMap()\nm.Store(\"hello\", \"world\")\nelem, found := m.Load(\"hello\")\n// elem will be \"world\"\n// found will be true\n```\n\n# concurrent.Executor\n\n```go\nexecutor := concurrent.NewUnboundedExecutor()\nexecutor.Go(func(ctx context.Context) {\n    everyMillisecond := time.NewTicker(time.Millisecond)\n    for {\n        select {\n        case <-ctx.Done():\n            fmt.Println(\"goroutine exited\")\n            return\n        case <-everyMillisecond.C:\n            // do something\n        }\n    }\n})\ntime.Sleep(time.Second)\nexecutor.StopAndWaitForever()\nfmt.Println(\"executor stopped\")\n```\n\nattach goroutine to executor instance, so that we can\n\n* cancel it by stop the executor with Stop/StopAndWait/StopAndWaitForever\n* handle panic by callback: the default behavior will no longer crash your application"
  },
  {
    "path": "vendor/github.com/modern-go/concurrent/executor.go",
    "content": "package concurrent\n\nimport \"context\"\n\n// Executor replace go keyword to start a new goroutine\n// the goroutine should cancel itself if the context passed in has been cancelled\n// the goroutine started by the executor, is owned by the executor\n// we can cancel all executors owned by the executor just by stop the executor itself\n// however Executor interface does not Stop method, the one starting and owning executor\n// should use the concrete type of executor, instead of this interface.\ntype Executor interface {\n\t// Go starts a new goroutine controlled by the context\n\tGo(handler func(ctx context.Context))\n}\n"
  },
  {
    "path": "vendor/github.com/modern-go/concurrent/go_above_19.go",
    "content": "//+build go1.9\n\npackage concurrent\n\nimport \"sync\"\n\n// Map is a wrapper for sync.Map introduced in go1.9\ntype Map struct {\n\tsync.Map\n}\n\n// NewMap creates a thread safe Map\nfunc NewMap() *Map {\n\treturn &Map{}\n}\n"
  },
  {
    "path": "vendor/github.com/modern-go/concurrent/go_below_19.go",
    "content": "//+build !go1.9\n\npackage concurrent\n\nimport \"sync\"\n\n// Map implements a thread safe map for go version below 1.9 using mutex\ntype Map struct {\n\tlock sync.RWMutex\n\tdata map[interface{}]interface{}\n}\n\n// NewMap creates a thread safe map\nfunc NewMap() *Map {\n\treturn &Map{\n\t\tdata: make(map[interface{}]interface{}, 32),\n\t}\n}\n\n// Load is same as sync.Map Load\nfunc (m *Map) Load(key interface{}) (elem interface{}, found bool) {\n\tm.lock.RLock()\n\telem, found = m.data[key]\n\tm.lock.RUnlock()\n\treturn\n}\n\n// Load is same as sync.Map Store\nfunc (m *Map) Store(key interface{}, elem interface{}) {\n\tm.lock.Lock()\n\tm.data[key] = elem\n\tm.lock.Unlock()\n}\n"
  },
  {
    "path": "vendor/github.com/modern-go/concurrent/log.go",
    "content": "package concurrent\n\nimport (\n\t\"os\"\n\t\"log\"\n\t\"io/ioutil\"\n)\n\n// ErrorLogger is used to print out error, can be set to writer other than stderr\nvar ErrorLogger = log.New(os.Stderr, \"\", 0)\n\n// InfoLogger is used to print informational message, default to off\nvar InfoLogger = log.New(ioutil.Discard, \"\", 0)"
  },
  {
    "path": "vendor/github.com/modern-go/concurrent/test.sh",
    "content": "#!/usr/bin/env bash\n\nset -e\necho \"\" > coverage.txt\n\nfor d in $(go list ./... | grep -v vendor); do\n    go test -coverprofile=profile.out -coverpkg=github.com/modern-go/concurrent $d\n    if [ -f profile.out ]; then\n        cat profile.out >> coverage.txt\n        rm profile.out\n    fi\ndone\n"
  },
  {
    "path": "vendor/github.com/modern-go/concurrent/unbounded_executor.go",
    "content": "package concurrent\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"runtime\"\n\t\"runtime/debug\"\n\t\"sync\"\n\t\"time\"\n\t\"reflect\"\n)\n\n// HandlePanic logs goroutine panic by default\nvar HandlePanic = func(recovered interface{}, funcName string) {\n\tErrorLogger.Println(fmt.Sprintf(\"%s panic: %v\", funcName, recovered))\n\tErrorLogger.Println(string(debug.Stack()))\n}\n\n// UnboundedExecutor is a executor without limits on counts of alive goroutines\n// it tracks the goroutine started by it, and can cancel them when shutdown\ntype UnboundedExecutor struct {\n\tctx                   context.Context\n\tcancel                context.CancelFunc\n\tactiveGoroutinesMutex *sync.Mutex\n\tactiveGoroutines      map[string]int\n\tHandlePanic           func(recovered interface{}, funcName string)\n}\n\n// GlobalUnboundedExecutor has the life cycle of the program itself\n// any goroutine want to be shutdown before main exit can be started from this executor\n// GlobalUnboundedExecutor expects the main function to call stop\n// it does not magically knows the main function exits\nvar GlobalUnboundedExecutor = NewUnboundedExecutor()\n\n// NewUnboundedExecutor creates a new UnboundedExecutor,\n// UnboundedExecutor can not be created by &UnboundedExecutor{}\n// HandlePanic can be set with a callback to override global HandlePanic\nfunc NewUnboundedExecutor() *UnboundedExecutor {\n\tctx, cancel := context.WithCancel(context.TODO())\n\treturn &UnboundedExecutor{\n\t\tctx:                   ctx,\n\t\tcancel:                cancel,\n\t\tactiveGoroutinesMutex: &sync.Mutex{},\n\t\tactiveGoroutines:      map[string]int{},\n\t}\n}\n\n// Go starts a new goroutine and tracks its lifecycle.\n// Panic will be recovered and logged automatically, except for StopSignal\nfunc (executor *UnboundedExecutor) Go(handler func(ctx context.Context)) {\n\tpc := reflect.ValueOf(handler).Pointer()\n\tf := runtime.FuncForPC(pc)\n\tfuncName := f.Name()\n\tfile, line := f.FileLine(pc)\n\texecutor.activeGoroutinesMutex.Lock()\n\tdefer executor.activeGoroutinesMutex.Unlock()\n\tstartFrom := fmt.Sprintf(\"%s:%d\", file, line)\n\texecutor.activeGoroutines[startFrom] += 1\n\tgo func() {\n\t\tdefer func() {\n\t\t\trecovered := recover()\n\t\t\t// if you want to quit a goroutine without trigger HandlePanic\n\t\t\t// use runtime.Goexit() to quit\n\t\t\tif recovered != nil {\n\t\t\t\tif executor.HandlePanic == nil {\n\t\t\t\t\tHandlePanic(recovered, funcName)\n\t\t\t\t} else {\n\t\t\t\t\texecutor.HandlePanic(recovered, funcName)\n\t\t\t\t}\n\t\t\t}\n\t\t\texecutor.activeGoroutinesMutex.Lock()\n\t\t\texecutor.activeGoroutines[startFrom] -= 1\n\t\t\texecutor.activeGoroutinesMutex.Unlock()\n\t\t}()\n\t\thandler(executor.ctx)\n\t}()\n}\n\n// Stop cancel all goroutines started by this executor without wait\nfunc (executor *UnboundedExecutor) Stop() {\n\texecutor.cancel()\n}\n\n// StopAndWaitForever cancel all goroutines started by this executor and\n// wait until all goroutines exited\nfunc (executor *UnboundedExecutor) StopAndWaitForever() {\n\texecutor.StopAndWait(context.Background())\n}\n\n// StopAndWait cancel all goroutines started by this executor and wait.\n// Wait can be cancelled by the context passed in.\nfunc (executor *UnboundedExecutor) StopAndWait(ctx context.Context) {\n\texecutor.cancel()\n\tfor {\n\t\toneHundredMilliseconds := time.NewTimer(time.Millisecond * 100)\n\t\tselect {\n\t\tcase <-oneHundredMilliseconds.C:\n\t\t\tif executor.checkNoActiveGoroutines() {\n\t\t\t\treturn\n\t\t\t}\n\t\tcase <-ctx.Done():\n\t\t\treturn\n\t\t}\n\t}\n}\n\nfunc (executor *UnboundedExecutor) checkNoActiveGoroutines() bool {\n\texecutor.activeGoroutinesMutex.Lock()\n\tdefer executor.activeGoroutinesMutex.Unlock()\n\tfor startFrom, count := range executor.activeGoroutines {\n\t\tif count > 0 {\n\t\t\tInfoLogger.Println(\"UnboundedExecutor is still waiting goroutines to quit\",\n\t\t\t\t\"startFrom\", startFrom,\n\t\t\t\t\"count\", count)\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "vendor/github.com/munnerz/goautoneg/LICENSE",
    "content": "Copyright (c) 2011, Open Knowledge Foundation Ltd.\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n    Redistributions of source code must retain the above copyright\n    notice, this list of conditions and the following disclaimer.\n\n    Redistributions in binary form must reproduce the above copyright\n    notice, this list of conditions and the following disclaimer in\n    the documentation and/or other materials provided with the\n    distribution.\n\n    Neither the name of the Open Knowledge Foundation Ltd. nor the\n    names of its contributors may be used to endorse or promote\n    products derived from this software without specific prior written\n    permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nHOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/github.com/munnerz/goautoneg/Makefile",
    "content": "include $(GOROOT)/src/Make.inc\n\nTARG=bitbucket.org/ww/goautoneg\nGOFILES=autoneg.go\n\ninclude $(GOROOT)/src/Make.pkg\n\nformat:\n\tgofmt -w *.go\n\ndocs:\n\tgomake clean\n\tgodoc ${TARG} > README.txt\n"
  },
  {
    "path": "vendor/github.com/munnerz/goautoneg/README.txt",
    "content": "PACKAGE\n\npackage goautoneg\nimport \"bitbucket.org/ww/goautoneg\"\n\nHTTP Content-Type Autonegotiation.\n\nThe functions in this package implement the behaviour specified in\nhttp://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html\n\nCopyright (c) 2011, Open Knowledge Foundation Ltd.\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n    Redistributions of source code must retain the above copyright\n    notice, this list of conditions and the following disclaimer.\n\n    Redistributions in binary form must reproduce the above copyright\n    notice, this list of conditions and the following disclaimer in\n    the documentation and/or other materials provided with the\n    distribution.\n\n    Neither the name of the Open Knowledge Foundation Ltd. nor the\n    names of its contributors may be used to endorse or promote\n    products derived from this software without specific prior written\n    permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nHOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n\nFUNCTIONS\n\nfunc Negotiate(header string, alternatives []string) (content_type string)\nNegotiate the most appropriate content_type given the accept header\nand a list of alternatives.\n\nfunc ParseAccept(header string) (accept []Accept)\nParse an Accept Header string returning a sorted list\nof clauses\n\n\nTYPES\n\ntype Accept struct {\n    Type, SubType string\n    Q             float32\n    Params        map[string]string\n}\nStructure to represent a clause in an HTTP Accept Header\n\n\nSUBDIRECTORIES\n\n\t.hg\n"
  },
  {
    "path": "vendor/github.com/munnerz/goautoneg/autoneg.go",
    "content": "/*\nHTTP Content-Type Autonegotiation.\n\nThe functions in this package implement the behaviour specified in\nhttp://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html\n\nCopyright (c) 2011, Open Knowledge Foundation Ltd.\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n    Redistributions of source code must retain the above copyright\n    notice, this list of conditions and the following disclaimer.\n\n    Redistributions in binary form must reproduce the above copyright\n    notice, this list of conditions and the following disclaimer in\n    the documentation and/or other materials provided with the\n    distribution.\n\n    Neither the name of the Open Knowledge Foundation Ltd. nor the\n    names of its contributors may be used to endorse or promote\n    products derived from this software without specific prior written\n    permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nHOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n\npackage goautoneg\n\nimport (\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// Structure to represent a clause in an HTTP Accept Header\ntype Accept struct {\n\tType, SubType string\n\tQ             float64\n\tParams        map[string]string\n}\n\n// acceptSlice is defined to implement sort interface.\ntype acceptSlice []Accept\n\nfunc (slice acceptSlice) Len() int {\n\treturn len(slice)\n}\n\nfunc (slice acceptSlice) Less(i, j int) bool {\n\tai, aj := slice[i], slice[j]\n\tif ai.Q > aj.Q {\n\t\treturn true\n\t}\n\tif ai.Type != \"*\" && aj.Type == \"*\" {\n\t\treturn true\n\t}\n\tif ai.SubType != \"*\" && aj.SubType == \"*\" {\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (slice acceptSlice) Swap(i, j int) {\n\tslice[i], slice[j] = slice[j], slice[i]\n}\n\nfunc stringTrimSpaceCutset(r rune) bool {\n\treturn r == ' '\n}\n\nfunc nextSplitElement(s, sep string) (item string, remaining string) {\n\tif index := strings.Index(s, sep); index != -1 {\n\t\treturn s[:index], s[index+1:]\n\t}\n\treturn s, \"\"\n}\n\n// Parse an Accept Header string returning a sorted list\n// of clauses\nfunc ParseAccept(header string) acceptSlice {\n\tpartsCount := 0\n\tremaining := header\n\tfor len(remaining) > 0 {\n\t\tpartsCount++\n\t\t_, remaining = nextSplitElement(remaining, \",\")\n\t}\n\taccept := make(acceptSlice, 0, partsCount)\n\n\tremaining = header\n\tvar part string\n\tfor len(remaining) > 0 {\n\t\tpart, remaining = nextSplitElement(remaining, \",\")\n\t\tpart = strings.TrimFunc(part, stringTrimSpaceCutset)\n\n\t\ta := Accept{\n\t\t\tQ: 1.0,\n\t\t}\n\n\t\tsp, remainingPart := nextSplitElement(part, \";\")\n\n\t\tsp0, spRemaining := nextSplitElement(sp, \"/\")\n\t\ta.Type = strings.TrimFunc(sp0, stringTrimSpaceCutset)\n\n\t\tswitch {\n\t\tcase len(spRemaining) == 0:\n\t\t\tif a.Type == \"*\" {\n\t\t\t\ta.SubType = \"*\"\n\t\t\t} else {\n\t\t\t\tcontinue\n\t\t\t}\n\t\tdefault:\n\t\t\tvar sp1 string\n\t\t\tsp1, spRemaining = nextSplitElement(spRemaining, \"/\")\n\t\t\tif len(spRemaining) > 0 {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\ta.SubType = strings.TrimFunc(sp1, stringTrimSpaceCutset)\n\t\t}\n\n\t\tif len(remainingPart) == 0 {\n\t\t\taccept = append(accept, a)\n\t\t\tcontinue\n\t\t}\n\n\t\ta.Params = make(map[string]string)\n\t\tfor len(remainingPart) > 0 {\n\t\t\tsp, remainingPart = nextSplitElement(remainingPart, \";\")\n\t\t\tsp0, spRemaining = nextSplitElement(sp, \"=\")\n\t\t\tif len(spRemaining) == 0 {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tvar sp1 string\n\t\t\tsp1, spRemaining = nextSplitElement(spRemaining, \"=\")\n\t\t\tif len(spRemaining) != 0 {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\ttoken := strings.TrimFunc(sp0, stringTrimSpaceCutset)\n\t\t\tif token == \"q\" {\n\t\t\t\ta.Q, _ = strconv.ParseFloat(sp1, 32)\n\t\t\t} else {\n\t\t\t\ta.Params[token] = strings.TrimFunc(sp1, stringTrimSpaceCutset)\n\t\t\t}\n\t\t}\n\n\t\taccept = append(accept, a)\n\t}\n\n\tsort.Sort(accept)\n\treturn accept\n}\n\n// Negotiate the most appropriate content_type given the accept header\n// and a list of alternatives.\nfunc Negotiate(header string, alternatives []string) (content_type string) {\n\tasp := make([][]string, 0, len(alternatives))\n\tfor _, ctype := range alternatives {\n\t\tasp = append(asp, strings.SplitN(ctype, \"/\", 2))\n\t}\n\tfor _, clause := range ParseAccept(header) {\n\t\tfor i, ctsp := range asp {\n\t\t\tif clause.Type == ctsp[0] && clause.SubType == ctsp[1] {\n\t\t\t\tcontent_type = alternatives[i]\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif clause.Type == ctsp[0] && clause.SubType == \"*\" {\n\t\t\t\tcontent_type = alternatives[i]\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif clause.Type == \"*\" && clause.SubType == \"*\" {\n\t\t\t\tcontent_type = alternatives[i]\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/github.com/pkg/errors/.gitignore",
    "content": "# Compiled Object files, Static and Dynamic libs (Shared Objects)\n*.o\n*.a\n*.so\n\n# Folders\n_obj\n_test\n\n# Architecture specific extensions/prefixes\n*.[568vq]\n[568vq].out\n\n*.cgo1.go\n*.cgo2.c\n_cgo_defun.c\n_cgo_gotypes.go\n_cgo_export.*\n\n_testmain.go\n\n*.exe\n*.test\n*.prof\n"
  },
  {
    "path": "vendor/github.com/pkg/errors/.travis.yml",
    "content": "language: go\ngo_import_path: github.com/pkg/errors\ngo:\n  - 1.11.x\n  - 1.12.x\n  - 1.13.x\n  - tip\n\nscript:\n  - make check\n"
  },
  {
    "path": "vendor/github.com/pkg/errors/LICENSE",
    "content": "Copyright (c) 2015, Dave Cheney <dave@cheney.net>\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n  list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n  this list of conditions and the following disclaimer in the documentation\n  and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/github.com/pkg/errors/Makefile",
    "content": "PKGS := github.com/pkg/errors\nSRCDIRS := $(shell go list -f '{{.Dir}}' $(PKGS))\nGO := go\n\ncheck: test vet gofmt misspell unconvert staticcheck ineffassign unparam\n\ntest: \n\t$(GO) test $(PKGS)\n\nvet: | test\n\t$(GO) vet $(PKGS)\n\nstaticcheck:\n\t$(GO) get honnef.co/go/tools/cmd/staticcheck\n\tstaticcheck -checks all $(PKGS)\n\nmisspell:\n\t$(GO) get github.com/client9/misspell/cmd/misspell\n\tmisspell \\\n\t\t-locale GB \\\n\t\t-error \\\n\t\t*.md *.go\n\nunconvert:\n\t$(GO) get github.com/mdempsky/unconvert\n\tunconvert -v $(PKGS)\n\nineffassign:\n\t$(GO) get github.com/gordonklaus/ineffassign\n\tfind $(SRCDIRS) -name '*.go' | xargs ineffassign\n\npedantic: check errcheck\n\nunparam:\n\t$(GO) get mvdan.cc/unparam\n\tunparam ./...\n\nerrcheck:\n\t$(GO) get github.com/kisielk/errcheck\n\terrcheck $(PKGS)\n\ngofmt:  \n\t@echo Checking code is gofmted\n\t@test -z \"$(shell gofmt -s -l -d -e $(SRCDIRS) | tee /dev/stderr)\"\n"
  },
  {
    "path": "vendor/github.com/pkg/errors/README.md",
    "content": "# errors [![Travis-CI](https://travis-ci.org/pkg/errors.svg)](https://travis-ci.org/pkg/errors) [![AppVeyor](https://ci.appveyor.com/api/projects/status/b98mptawhudj53ep/branch/master?svg=true)](https://ci.appveyor.com/project/davecheney/errors/branch/master) [![GoDoc](https://godoc.org/github.com/pkg/errors?status.svg)](http://godoc.org/github.com/pkg/errors) [![Report card](https://goreportcard.com/badge/github.com/pkg/errors)](https://goreportcard.com/report/github.com/pkg/errors) [![Sourcegraph](https://sourcegraph.com/github.com/pkg/errors/-/badge.svg)](https://sourcegraph.com/github.com/pkg/errors?badge)\n\nPackage errors provides simple error handling primitives.\n\n`go get github.com/pkg/errors`\n\nThe traditional error handling idiom in Go is roughly akin to\n```go\nif err != nil {\n        return err\n}\n```\nwhich applied recursively up the call stack results in error reports without context or debugging information. The errors package allows programmers to add context to the failure path in their code in a way that does not destroy the original value of the error.\n\n## Adding context to an error\n\nThe errors.Wrap function returns a new error that adds context to the original error. For example\n```go\n_, err := ioutil.ReadAll(r)\nif err != nil {\n        return errors.Wrap(err, \"read failed\")\n}\n```\n## Retrieving the cause of an error\n\nUsing `errors.Wrap` constructs a stack of errors, adding context to the preceding error. Depending on the nature of the error it may be necessary to reverse the operation of errors.Wrap to retrieve the original error for inspection. Any error value which implements this interface can be inspected by `errors.Cause`.\n```go\ntype causer interface {\n        Cause() error\n}\n```\n`errors.Cause` will recursively retrieve the topmost error which does not implement `causer`, which is assumed to be the original cause. For example:\n```go\nswitch err := errors.Cause(err).(type) {\ncase *MyError:\n        // handle specifically\ndefault:\n        // unknown error\n}\n```\n\n[Read the package documentation for more information](https://godoc.org/github.com/pkg/errors).\n\n## Roadmap\n\nWith the upcoming [Go2 error proposals](https://go.googlesource.com/proposal/+/master/design/go2draft.md) this package is moving into maintenance mode. The roadmap for a 1.0 release is as follows:\n\n- 0.9. Remove pre Go 1.9 and Go 1.10 support, address outstanding pull requests (if possible)\n- 1.0. Final release.\n\n## Contributing\n\nBecause of the Go2 errors changes, this package is not accepting proposals for new functionality. With that said, we welcome pull requests, bug fixes and issue reports. \n\nBefore sending a PR, please discuss your change by raising an issue.\n\n## License\n\nBSD-2-Clause\n"
  },
  {
    "path": "vendor/github.com/pkg/errors/appveyor.yml",
    "content": "version: build-{build}.{branch}\n\nclone_folder: C:\\gopath\\src\\github.com\\pkg\\errors\nshallow_clone: true # for startup speed\n\nenvironment:\n  GOPATH: C:\\gopath\n\nplatform:\n  - x64\n\n# http://www.appveyor.com/docs/installed-software\ninstall:\n  # some helpful output for debugging builds\n  - go version\n  - go env\n  # pre-installed MinGW at C:\\MinGW is 32bit only\n  # but MSYS2 at C:\\msys64 has mingw64\n  - set PATH=C:\\msys64\\mingw64\\bin;%PATH%\n  - gcc --version\n  - g++ --version\n\nbuild_script:\n  - go install -v ./...\n\ntest_script:\n  - set PATH=C:\\gopath\\bin;%PATH%\n  - go test -v ./...\n\n#artifacts:\n#  - path: '%GOPATH%\\bin\\*.exe'\ndeploy: off\n"
  },
  {
    "path": "vendor/github.com/pkg/errors/errors.go",
    "content": "// Package errors provides simple error handling primitives.\n//\n// The traditional error handling idiom in Go is roughly akin to\n//\n//     if err != nil {\n//             return err\n//     }\n//\n// which when applied recursively up the call stack results in error reports\n// without context or debugging information. The errors package allows\n// programmers to add context to the failure path in their code in a way\n// that does not destroy the original value of the error.\n//\n// Adding context to an error\n//\n// The errors.Wrap function returns a new error that adds context to the\n// original error by recording a stack trace at the point Wrap is called,\n// together with the supplied message. For example\n//\n//     _, err := ioutil.ReadAll(r)\n//     if err != nil {\n//             return errors.Wrap(err, \"read failed\")\n//     }\n//\n// If additional control is required, the errors.WithStack and\n// errors.WithMessage functions destructure errors.Wrap into its component\n// operations: annotating an error with a stack trace and with a message,\n// respectively.\n//\n// Retrieving the cause of an error\n//\n// Using errors.Wrap constructs a stack of errors, adding context to the\n// preceding error. Depending on the nature of the error it may be necessary\n// to reverse the operation of errors.Wrap to retrieve the original error\n// for inspection. Any error value which implements this interface\n//\n//     type causer interface {\n//             Cause() error\n//     }\n//\n// can be inspected by errors.Cause. errors.Cause will recursively retrieve\n// the topmost error that does not implement causer, which is assumed to be\n// the original cause. For example:\n//\n//     switch err := errors.Cause(err).(type) {\n//     case *MyError:\n//             // handle specifically\n//     default:\n//             // unknown error\n//     }\n//\n// Although the causer interface is not exported by this package, it is\n// considered a part of its stable public interface.\n//\n// Formatted printing of errors\n//\n// All error values returned from this package implement fmt.Formatter and can\n// be formatted by the fmt package. The following verbs are supported:\n//\n//     %s    print the error. If the error has a Cause it will be\n//           printed recursively.\n//     %v    see %s\n//     %+v   extended format. Each Frame of the error's StackTrace will\n//           be printed in detail.\n//\n// Retrieving the stack trace of an error or wrapper\n//\n// New, Errorf, Wrap, and Wrapf record a stack trace at the point they are\n// invoked. This information can be retrieved with the following interface:\n//\n//     type stackTracer interface {\n//             StackTrace() errors.StackTrace\n//     }\n//\n// The returned errors.StackTrace type is defined as\n//\n//     type StackTrace []Frame\n//\n// The Frame type represents a call site in the stack trace. Frame supports\n// the fmt.Formatter interface that can be used for printing information about\n// the stack trace of this error. For example:\n//\n//     if err, ok := err.(stackTracer); ok {\n//             for _, f := range err.StackTrace() {\n//                     fmt.Printf(\"%+s:%d\\n\", f, f)\n//             }\n//     }\n//\n// Although the stackTracer interface is not exported by this package, it is\n// considered a part of its stable public interface.\n//\n// See the documentation for Frame.Format for more details.\npackage errors\n\nimport (\n\t\"fmt\"\n\t\"io\"\n)\n\n// New returns an error with the supplied message.\n// New also records the stack trace at the point it was called.\nfunc New(message string) error {\n\treturn &fundamental{\n\t\tmsg:   message,\n\t\tstack: callers(),\n\t}\n}\n\n// Errorf formats according to a format specifier and returns the string\n// as a value that satisfies error.\n// Errorf also records the stack trace at the point it was called.\nfunc Errorf(format string, args ...interface{}) error {\n\treturn &fundamental{\n\t\tmsg:   fmt.Sprintf(format, args...),\n\t\tstack: callers(),\n\t}\n}\n\n// fundamental is an error that has a message and a stack, but no caller.\ntype fundamental struct {\n\tmsg string\n\t*stack\n}\n\nfunc (f *fundamental) Error() string { return f.msg }\n\nfunc (f *fundamental) Format(s fmt.State, verb rune) {\n\tswitch verb {\n\tcase 'v':\n\t\tif s.Flag('+') {\n\t\t\tio.WriteString(s, f.msg)\n\t\t\tf.stack.Format(s, verb)\n\t\t\treturn\n\t\t}\n\t\tfallthrough\n\tcase 's':\n\t\tio.WriteString(s, f.msg)\n\tcase 'q':\n\t\tfmt.Fprintf(s, \"%q\", f.msg)\n\t}\n}\n\n// WithStack annotates err with a stack trace at the point WithStack was called.\n// If err is nil, WithStack returns nil.\nfunc WithStack(err error) error {\n\tif err == nil {\n\t\treturn nil\n\t}\n\treturn &withStack{\n\t\terr,\n\t\tcallers(),\n\t}\n}\n\ntype withStack struct {\n\terror\n\t*stack\n}\n\nfunc (w *withStack) Cause() error { return w.error }\n\n// Unwrap provides compatibility for Go 1.13 error chains.\nfunc (w *withStack) Unwrap() error { return w.error }\n\nfunc (w *withStack) Format(s fmt.State, verb rune) {\n\tswitch verb {\n\tcase 'v':\n\t\tif s.Flag('+') {\n\t\t\tfmt.Fprintf(s, \"%+v\", w.Cause())\n\t\t\tw.stack.Format(s, verb)\n\t\t\treturn\n\t\t}\n\t\tfallthrough\n\tcase 's':\n\t\tio.WriteString(s, w.Error())\n\tcase 'q':\n\t\tfmt.Fprintf(s, \"%q\", w.Error())\n\t}\n}\n\n// Wrap returns an error annotating err with a stack trace\n// at the point Wrap is called, and the supplied message.\n// If err is nil, Wrap returns nil.\nfunc Wrap(err error, message string) error {\n\tif err == nil {\n\t\treturn nil\n\t}\n\terr = &withMessage{\n\t\tcause: err,\n\t\tmsg:   message,\n\t}\n\treturn &withStack{\n\t\terr,\n\t\tcallers(),\n\t}\n}\n\n// Wrapf returns an error annotating err with a stack trace\n// at the point Wrapf is called, and the format specifier.\n// If err is nil, Wrapf returns nil.\nfunc Wrapf(err error, format string, args ...interface{}) error {\n\tif err == nil {\n\t\treturn nil\n\t}\n\terr = &withMessage{\n\t\tcause: err,\n\t\tmsg:   fmt.Sprintf(format, args...),\n\t}\n\treturn &withStack{\n\t\terr,\n\t\tcallers(),\n\t}\n}\n\n// WithMessage annotates err with a new message.\n// If err is nil, WithMessage returns nil.\nfunc WithMessage(err error, message string) error {\n\tif err == nil {\n\t\treturn nil\n\t}\n\treturn &withMessage{\n\t\tcause: err,\n\t\tmsg:   message,\n\t}\n}\n\n// WithMessagef annotates err with the format specifier.\n// If err is nil, WithMessagef returns nil.\nfunc WithMessagef(err error, format string, args ...interface{}) error {\n\tif err == nil {\n\t\treturn nil\n\t}\n\treturn &withMessage{\n\t\tcause: err,\n\t\tmsg:   fmt.Sprintf(format, args...),\n\t}\n}\n\ntype withMessage struct {\n\tcause error\n\tmsg   string\n}\n\nfunc (w *withMessage) Error() string { return w.msg + \": \" + w.cause.Error() }\nfunc (w *withMessage) Cause() error  { return w.cause }\n\n// Unwrap provides compatibility for Go 1.13 error chains.\nfunc (w *withMessage) Unwrap() error { return w.cause }\n\nfunc (w *withMessage) Format(s fmt.State, verb rune) {\n\tswitch verb {\n\tcase 'v':\n\t\tif s.Flag('+') {\n\t\t\tfmt.Fprintf(s, \"%+v\\n\", w.Cause())\n\t\t\tio.WriteString(s, w.msg)\n\t\t\treturn\n\t\t}\n\t\tfallthrough\n\tcase 's', 'q':\n\t\tio.WriteString(s, w.Error())\n\t}\n}\n\n// Cause returns the underlying cause of the error, if possible.\n// An error value has a cause if it implements the following\n// interface:\n//\n//     type causer interface {\n//            Cause() error\n//     }\n//\n// If the error does not implement Cause, the original error will\n// be returned. If the error is nil, nil will be returned without further\n// investigation.\nfunc Cause(err error) error {\n\ttype causer interface {\n\t\tCause() error\n\t}\n\n\tfor err != nil {\n\t\tcause, ok := err.(causer)\n\t\tif !ok {\n\t\t\tbreak\n\t\t}\n\t\terr = cause.Cause()\n\t}\n\treturn err\n}\n"
  },
  {
    "path": "vendor/github.com/pkg/errors/go113.go",
    "content": "// +build go1.13\n\npackage errors\n\nimport (\n\tstderrors \"errors\"\n)\n\n// Is reports whether any error in err's chain matches target.\n//\n// The chain consists of err itself followed by the sequence of errors obtained by\n// repeatedly calling Unwrap.\n//\n// An error is considered to match a target if it is equal to that target or if\n// it implements a method Is(error) bool such that Is(target) returns true.\nfunc Is(err, target error) bool { return stderrors.Is(err, target) }\n\n// As finds the first error in err's chain that matches target, and if so, sets\n// target to that error value and returns true.\n//\n// The chain consists of err itself followed by the sequence of errors obtained by\n// repeatedly calling Unwrap.\n//\n// An error matches target if the error's concrete value is assignable to the value\n// pointed to by target, or if the error has a method As(interface{}) bool such that\n// As(target) returns true. In the latter case, the As method is responsible for\n// setting target.\n//\n// As will panic if target is not a non-nil pointer to either a type that implements\n// error, or to any interface type. As returns false if err is nil.\nfunc As(err error, target interface{}) bool { return stderrors.As(err, target) }\n\n// Unwrap returns the result of calling the Unwrap method on err, if err's\n// type contains an Unwrap method returning error.\n// Otherwise, Unwrap returns nil.\nfunc Unwrap(err error) error {\n\treturn stderrors.Unwrap(err)\n}\n"
  },
  {
    "path": "vendor/github.com/pkg/errors/stack.go",
    "content": "package errors\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"path\"\n\t\"runtime\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// Frame represents a program counter inside a stack frame.\n// For historical reasons if Frame is interpreted as a uintptr\n// its value represents the program counter + 1.\ntype Frame uintptr\n\n// pc returns the program counter for this frame;\n// multiple frames may have the same PC value.\nfunc (f Frame) pc() uintptr { return uintptr(f) - 1 }\n\n// file returns the full path to the file that contains the\n// function for this Frame's pc.\nfunc (f Frame) file() string {\n\tfn := runtime.FuncForPC(f.pc())\n\tif fn == nil {\n\t\treturn \"unknown\"\n\t}\n\tfile, _ := fn.FileLine(f.pc())\n\treturn file\n}\n\n// line returns the line number of source code of the\n// function for this Frame's pc.\nfunc (f Frame) line() int {\n\tfn := runtime.FuncForPC(f.pc())\n\tif fn == nil {\n\t\treturn 0\n\t}\n\t_, line := fn.FileLine(f.pc())\n\treturn line\n}\n\n// name returns the name of this function, if known.\nfunc (f Frame) name() string {\n\tfn := runtime.FuncForPC(f.pc())\n\tif fn == nil {\n\t\treturn \"unknown\"\n\t}\n\treturn fn.Name()\n}\n\n// Format formats the frame according to the fmt.Formatter interface.\n//\n//    %s    source file\n//    %d    source line\n//    %n    function name\n//    %v    equivalent to %s:%d\n//\n// Format accepts flags that alter the printing of some verbs, as follows:\n//\n//    %+s   function name and path of source file relative to the compile time\n//          GOPATH separated by \\n\\t (<funcname>\\n\\t<path>)\n//    %+v   equivalent to %+s:%d\nfunc (f Frame) Format(s fmt.State, verb rune) {\n\tswitch verb {\n\tcase 's':\n\t\tswitch {\n\t\tcase s.Flag('+'):\n\t\t\tio.WriteString(s, f.name())\n\t\t\tio.WriteString(s, \"\\n\\t\")\n\t\t\tio.WriteString(s, f.file())\n\t\tdefault:\n\t\t\tio.WriteString(s, path.Base(f.file()))\n\t\t}\n\tcase 'd':\n\t\tio.WriteString(s, strconv.Itoa(f.line()))\n\tcase 'n':\n\t\tio.WriteString(s, funcname(f.name()))\n\tcase 'v':\n\t\tf.Format(s, 's')\n\t\tio.WriteString(s, \":\")\n\t\tf.Format(s, 'd')\n\t}\n}\n\n// MarshalText formats a stacktrace Frame as a text string. The output is the\n// same as that of fmt.Sprintf(\"%+v\", f), but without newlines or tabs.\nfunc (f Frame) MarshalText() ([]byte, error) {\n\tname := f.name()\n\tif name == \"unknown\" {\n\t\treturn []byte(name), nil\n\t}\n\treturn []byte(fmt.Sprintf(\"%s %s:%d\", name, f.file(), f.line())), nil\n}\n\n// StackTrace is stack of Frames from innermost (newest) to outermost (oldest).\ntype StackTrace []Frame\n\n// Format formats the stack of Frames according to the fmt.Formatter interface.\n//\n//    %s\tlists source files for each Frame in the stack\n//    %v\tlists the source file and line number for each Frame in the stack\n//\n// Format accepts flags that alter the printing of some verbs, as follows:\n//\n//    %+v   Prints filename, function, and line number for each Frame in the stack.\nfunc (st StackTrace) Format(s fmt.State, verb rune) {\n\tswitch verb {\n\tcase 'v':\n\t\tswitch {\n\t\tcase s.Flag('+'):\n\t\t\tfor _, f := range st {\n\t\t\t\tio.WriteString(s, \"\\n\")\n\t\t\t\tf.Format(s, verb)\n\t\t\t}\n\t\tcase s.Flag('#'):\n\t\t\tfmt.Fprintf(s, \"%#v\", []Frame(st))\n\t\tdefault:\n\t\t\tst.formatSlice(s, verb)\n\t\t}\n\tcase 's':\n\t\tst.formatSlice(s, verb)\n\t}\n}\n\n// formatSlice will format this StackTrace into the given buffer as a slice of\n// Frame, only valid when called with '%s' or '%v'.\nfunc (st StackTrace) formatSlice(s fmt.State, verb rune) {\n\tio.WriteString(s, \"[\")\n\tfor i, f := range st {\n\t\tif i > 0 {\n\t\t\tio.WriteString(s, \" \")\n\t\t}\n\t\tf.Format(s, verb)\n\t}\n\tio.WriteString(s, \"]\")\n}\n\n// stack represents a stack of program counters.\ntype stack []uintptr\n\nfunc (s *stack) Format(st fmt.State, verb rune) {\n\tswitch verb {\n\tcase 'v':\n\t\tswitch {\n\t\tcase st.Flag('+'):\n\t\t\tfor _, pc := range *s {\n\t\t\t\tf := Frame(pc)\n\t\t\t\tfmt.Fprintf(st, \"\\n%+v\", f)\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc (s *stack) StackTrace() StackTrace {\n\tf := make([]Frame, len(*s))\n\tfor i := 0; i < len(f); i++ {\n\t\tf[i] = Frame((*s)[i])\n\t}\n\treturn f\n}\n\nfunc callers() *stack {\n\tconst depth = 32\n\tvar pcs [depth]uintptr\n\tn := runtime.Callers(3, pcs[:])\n\tvar st stack = pcs[0:n]\n\treturn &st\n}\n\n// funcname removes the path prefix component of a function's name reported by func.Name().\nfunc funcname(name string) string {\n\ti := strings.LastIndex(name, \"/\")\n\tname = name[i+1:]\n\ti = strings.Index(name, \".\")\n\treturn name[i+1:]\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/.gitignore",
    "content": "# Compiled Object files, Static and Dynamic libs (Shared Objects)\n*.o\n*.a\n*.so\n\n# Folders\n_obj\n_test\n\n# Architecture specific extensions/prefixes\n*.[568vq]\n[568vq].out\n\n*.cgo1.go\n*.cgo2.c\n_cgo_defun.c\n_cgo_gotypes.go\n_cgo_export.*\n\n_testmain.go\n\n# Vim files https://github.com/github/gitignore/blob/master/Global/Vim.gitignore\n# swap\n[._]*.s[a-w][a-z]\n[._]s[a-w][a-z]\n# session\nSession.vim\n# temporary\n.netrwhist\n*~\n# auto-generated tag files\ntags\n\n*.exe\ncobra.test\nbin\n\n.idea/\n*.iml\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/.golangci.yml",
    "content": "# Copyright 2013-2023 The Cobra Authors\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#      http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nrun:\n  deadline: 5m\n\nlinters:\n  disable-all: true\n  enable:\n    #- bodyclose\n    # - deadcode ! deprecated since v1.49.0; replaced by 'unused'\n    #- depguard\n    #- dogsled\n    #- dupl\n    - errcheck\n    #- exhaustive\n    #- funlen\n    #- gochecknoinits\n    - goconst\n    - gocritic\n    #- gocyclo\n    - gofmt\n    - goimports\n    #- gomnd\n    #- goprintffuncname\n    - gosec\n    - gosimple\n    - govet\n    - ineffassign\n    #- lll\n    - misspell\n    #- nakedret\n    #- noctx\n    - nolintlint\n    #- rowserrcheck\n    #- scopelint\n    - staticcheck\n    #- structcheck ! deprecated since v1.49.0; replaced by 'unused'\n    - stylecheck\n    #- typecheck\n    - unconvert\n    #- unparam\n    - unused\n    # - varcheck ! deprecated since v1.49.0; replaced by 'unused'\n    #- whitespace\n  fast: false\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/.mailmap",
    "content": "Steve Francia <steve.francia@gmail.com>\nBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>\nFabiano Franz <ffranz@redhat.com>                   <contact@fabianofranz.com>\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/CONDUCT.md",
    "content": "## Cobra User Contract\n\n### Versioning\nCobra will follow a steady release cadence. Non breaking changes will be released as minor versions quarterly. Patch bug releases are at the discretion of the maintainers. Users can expect security patch fixes to be released within relatively short order of a CVE becoming known. For more information on security patch fixes see the CVE section below. Releases will follow [Semantic Versioning](https://semver.org/). Users tracking the Master branch should expect unpredictable breaking changes as the project continues to move forward. For stability, it is highly recommended to use a release.\n\n### Backward Compatibility\nWe will maintain two major releases in a moving window. The N-1 release will only receive bug fixes and security updates and will be dropped once N+1 is released.\n\n### Deprecation\nDeprecation of Go versions or dependent packages will only occur in major releases. To reduce the change of this taking users by surprise, any large deprecation will be preceded by an announcement in the [#cobra slack channel](https://gophers.slack.com/archives/CD3LP1199) and an Issue on Github.\n\n### CVE\nMaintainers will make every effort to release security patches in the case of a medium to high severity CVE directly impacting the library. The speed in which these patches reach a release is up to the discretion of the maintainers. A low severity CVE may be a lower priority than a high severity one.\n\n### Communication\nCobra maintainers will use GitHub issues and the [#cobra slack channel](https://gophers.slack.com/archives/CD3LP1199) as the primary means of communication with the community. This is to foster open communication with all users and contributors.\n\n### Breaking Changes\nBreaking changes are generally allowed in the master branch, as this is the branch used to develop the next release of Cobra.\n\nThere may be times, however, when master is closed for breaking changes. This is likely to happen as we near the release of a new version.\n\nBreaking changes are not allowed in release branches, as these represent minor versions that have already been released. These version have consumers who expect the APIs, behaviors, etc, to remain stable during the lifetime of the patch stream for the minor release.\n\nExamples of breaking changes include:\n- Removing or renaming exported constant, variable, type, or function.\n- Updating the version of critical libraries such as `spf13/pflag`, `spf13/viper` etc...\n  - Some version updates may be acceptable for picking up bug fixes, but maintainers must exercise caution when reviewing.\n\nThere may, at times, need to be exceptions where breaking changes are allowed in release branches. These are at the discretion of the project's maintainers, and must be carefully considered before merging.\n\n### CI Testing\nMaintainers will ensure the Cobra test suite utilizes the current supported versions of Golang.\n\n### Disclaimer\nChanges to this document and the contents therein are at the discretion of the maintainers.\nNone of the contents of this document are legally binding in any way to the maintainers or the users.\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/CONTRIBUTING.md",
    "content": "# Contributing to Cobra\n\nThank you so much for contributing to Cobra. We appreciate your time and help.\nHere are some guidelines to help you get started.\n\n## Code of Conduct\n\nBe kind and respectful to the members of the community. Take time to educate\nothers who are seeking help. Harassment of any kind will not be tolerated.\n\n## Questions\n\nIf you have questions regarding Cobra, feel free to ask it in the community\n[#cobra Slack channel][cobra-slack]\n\n## Filing a bug or feature\n\n1. Before filing an issue, please check the existing issues to see if a\n   similar one was already opened. If there is one already opened, feel free\n   to comment on it.\n1. If you believe you've found a bug, please provide detailed steps of\n   reproduction, the version of Cobra and anything else you believe will be\n   useful to help troubleshoot it (e.g. OS environment, environment variables,\n   etc...). Also state the current behavior vs. the expected behavior.\n1. If you'd like to see a feature or an enhancement please open an issue with\n   a clear title and description of what the feature is and why it would be\n   beneficial to the project and its users.\n\n## Submitting changes\n\n1. CLA: Upon submitting a Pull Request (PR), contributors will be prompted to\n   sign a CLA. Please sign the CLA :slightly_smiling_face:\n1. Tests: If you are submitting code, please ensure you have adequate tests\n   for the feature. Tests can be run via `go test ./...` or `make test`.\n1. Since this is golang project, ensure the new code is properly formatted to\n   ensure code consistency. Run `make all`.\n\n### Quick steps to contribute\n\n1. Fork the project.\n1. Download your fork to your PC (`git clone https://github.com/your_username/cobra && cd cobra`)\n1. Create your feature branch (`git checkout -b my-new-feature`)\n1. Make changes and run tests (`make test`)\n1. Add them to staging (`git add .`)\n1. Commit your changes (`git commit -m 'Add some feature'`)\n1. Push to the branch (`git push origin my-new-feature`)\n1. Create new pull request\n\n<!-- Links -->\n[cobra-slack]: https://gophers.slack.com/archives/CD3LP1199\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/LICENSE.txt",
    "content": "                                Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/MAINTAINERS",
    "content": "maintainers:\n- spf13\n- johnSchnake\n- jpmcb\n- marckhouzam\ninactive:\n- anthonyfok\n- bep\n- bogem\n- broady\n- eparis\n- jharshman\n- wfernandes\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/Makefile",
    "content": "BIN=\"./bin\"\nSRC=$(shell find . -name \"*.go\")\n\nifeq (, $(shell which golangci-lint))\n$(warning \"could not find golangci-lint in $(PATH), run: curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh\")\nendif\n\n.PHONY: fmt lint test install_deps clean\n\ndefault: all\n\nall: fmt test\n\nfmt:\n\t$(info ******************** checking formatting ********************)\n\t@test -z $(shell gofmt -l $(SRC)) || (gofmt -d $(SRC); exit 1)\n\nlint:\n\t$(info ******************** running lint tools ********************)\n\tgolangci-lint run -v\n\ntest: install_deps\n\t$(info ******************** running tests ********************)\n\tgo test -v ./...\n\nrichtest: install_deps\n\t$(info ******************** running tests with kyoh86/richgo ********************)\n\trichgo test -v ./...\n\ninstall_deps:\n\t$(info ******************** downloading dependencies ********************)\n\tgo get -v ./...\n\nclean:\n\trm -rf $(BIN)\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/README.md",
    "content": "![cobra logo](assets/CobraMain.png)\n\nCobra is a library for creating powerful modern CLI applications.\n\nCobra is used in many Go projects such as [Kubernetes](https://kubernetes.io/),\n[Hugo](https://gohugo.io), and [GitHub CLI](https://github.com/cli/cli) to\nname a few. [This list](site/content/projects_using_cobra.md) contains a more extensive list of projects using Cobra.\n\n[![](https://img.shields.io/github/actions/workflow/status/spf13/cobra/test.yml?branch=main&longCache=true&label=Test&logo=github%20actions&logoColor=fff)](https://github.com/spf13/cobra/actions?query=workflow%3ATest)\n[![Go Reference](https://pkg.go.dev/badge/github.com/spf13/cobra.svg)](https://pkg.go.dev/github.com/spf13/cobra)\n[![Go Report Card](https://goreportcard.com/badge/github.com/spf13/cobra)](https://goreportcard.com/report/github.com/spf13/cobra)\n[![Slack](https://img.shields.io/badge/Slack-cobra-brightgreen)](https://gophers.slack.com/archives/CD3LP1199)\n\n# Overview\n\nCobra is a library providing a simple interface to create powerful modern CLI\ninterfaces similar to git & go tools.\n\nCobra provides:\n* Easy subcommand-based CLIs: `app server`, `app fetch`, etc.\n* Fully POSIX-compliant flags (including short & long versions)\n* Nested subcommands\n* Global, local and cascading flags\n* Intelligent suggestions (`app srver`... did you mean `app server`?)\n* Automatic help generation for commands and flags\n* Grouping help for subcommands\n* Automatic help flag recognition of `-h`, `--help`, etc.\n* Automatically generated shell autocomplete for your application (bash, zsh, fish, powershell)\n* Automatically generated man pages for your application\n* Command aliases so you can change things without breaking them\n* The flexibility to define your own help, usage, etc.\n* Optional seamless integration with [viper](https://github.com/spf13/viper) for 12-factor apps\n\n# Concepts\n\nCobra is built on a structure of commands, arguments & flags.\n\n**Commands** represent actions, **Args** are things and **Flags** are modifiers for those actions.\n\nThe best applications read like sentences when used, and as a result, users\nintuitively know how to interact with them.\n\nThe pattern to follow is\n`APPNAME VERB NOUN --ADJECTIVE`\n    or\n`APPNAME COMMAND ARG --FLAG`.\n\nA few good real world examples may better illustrate this point.\n\nIn the following example, 'server' is a command, and 'port' is a flag:\n\n    hugo server --port=1313\n\nIn this command we are telling Git to clone the url bare.\n\n    git clone URL --bare\n\n## Commands\n\nCommand is the central point of the application. Each interaction that\nthe application supports will be contained in a Command. A command can\nhave children commands and optionally run an action.\n\nIn the example above, 'server' is the command.\n\n[More about cobra.Command](https://pkg.go.dev/github.com/spf13/cobra#Command)\n\n## Flags\n\nA flag is a way to modify the behavior of a command. Cobra supports\nfully POSIX-compliant flags as well as the Go [flag package](https://golang.org/pkg/flag/).\nA Cobra command can define flags that persist through to children commands\nand flags that are only available to that command.\n\nIn the example above, 'port' is the flag.\n\nFlag functionality is provided by the [pflag\nlibrary](https://github.com/spf13/pflag), a fork of the flag standard library\nwhich maintains the same interface while adding POSIX compliance.\n\n# Installing\nUsing Cobra is easy. First, use `go get` to install the latest version\nof the library.\n\n```\ngo get -u github.com/spf13/cobra@latest\n```\n\nNext, include Cobra in your application:\n\n```go\nimport \"github.com/spf13/cobra\"\n```\n\n# Usage\n`cobra-cli` is a command line program to generate cobra applications and command files.\nIt will bootstrap your application scaffolding to rapidly\ndevelop a Cobra-based application. It is the easiest way to incorporate Cobra into your application.\n\nIt can be installed by running:\n\n```\ngo install github.com/spf13/cobra-cli@latest\n```\n\nFor complete details on using the Cobra-CLI generator, please read [The Cobra Generator README](https://github.com/spf13/cobra-cli/blob/main/README.md)\n\nFor complete details on using the Cobra library, please read the [The Cobra User Guide](site/content/user_guide.md).\n\n# License\n\nCobra is released under the Apache 2.0 license. See [LICENSE.txt](LICENSE.txt)\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/active_help.go",
    "content": "// Copyright 2013-2023 The Cobra Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage cobra\n\nimport (\n\t\"fmt\"\n\t\"os\"\n)\n\nconst (\n\tactiveHelpMarker = \"_activeHelp_ \"\n\t// The below values should not be changed: programs will be using them explicitly\n\t// in their user documentation, and users will be using them explicitly.\n\tactiveHelpEnvVarSuffix  = \"ACTIVE_HELP\"\n\tactiveHelpGlobalEnvVar  = configEnvVarGlobalPrefix + \"_\" + activeHelpEnvVarSuffix\n\tactiveHelpGlobalDisable = \"0\"\n)\n\n// AppendActiveHelp adds the specified string to the specified array to be used as ActiveHelp.\n// Such strings will be processed by the completion script and will be shown as ActiveHelp\n// to the user.\n// The array parameter should be the array that will contain the completions.\n// This function can be called multiple times before and/or after completions are added to\n// the array.  Each time this function is called with the same array, the new\n// ActiveHelp line will be shown below the previous ones when completion is triggered.\nfunc AppendActiveHelp(compArray []string, activeHelpStr string) []string {\n\treturn append(compArray, fmt.Sprintf(\"%s%s\", activeHelpMarker, activeHelpStr))\n}\n\n// GetActiveHelpConfig returns the value of the ActiveHelp environment variable\n// <PROGRAM>_ACTIVE_HELP where <PROGRAM> is the name of the root command in upper\n// case, with all non-ASCII-alphanumeric characters replaced by `_`.\n// It will always return \"0\" if the global environment variable COBRA_ACTIVE_HELP\n// is set to \"0\".\nfunc GetActiveHelpConfig(cmd *Command) string {\n\tactiveHelpCfg := os.Getenv(activeHelpGlobalEnvVar)\n\tif activeHelpCfg != activeHelpGlobalDisable {\n\t\tactiveHelpCfg = os.Getenv(activeHelpEnvVar(cmd.Root().Name()))\n\t}\n\treturn activeHelpCfg\n}\n\n// activeHelpEnvVar returns the name of the program-specific ActiveHelp environment\n// variable.  It has the format <PROGRAM>_ACTIVE_HELP where <PROGRAM> is the name of the\n// root command in upper case, with all non-ASCII-alphanumeric characters replaced by `_`.\nfunc activeHelpEnvVar(name string) string {\n\treturn configEnvVar(name, activeHelpEnvVarSuffix)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/args.go",
    "content": "// Copyright 2013-2023 The Cobra Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage cobra\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n)\n\ntype PositionalArgs func(cmd *Command, args []string) error\n\n// legacyArgs validation has the following behaviour:\n// - root commands with no subcommands can take arbitrary arguments\n// - root commands with subcommands will do subcommand validity checking\n// - subcommands will always accept arbitrary arguments\nfunc legacyArgs(cmd *Command, args []string) error {\n\t// no subcommand, always take args\n\tif !cmd.HasSubCommands() {\n\t\treturn nil\n\t}\n\n\t// root command with subcommands, do subcommand checking.\n\tif !cmd.HasParent() && len(args) > 0 {\n\t\treturn fmt.Errorf(\"unknown command %q for %q%s\", args[0], cmd.CommandPath(), cmd.findSuggestions(args[0]))\n\t}\n\treturn nil\n}\n\n// NoArgs returns an error if any args are included.\nfunc NoArgs(cmd *Command, args []string) error {\n\tif len(args) > 0 {\n\t\treturn fmt.Errorf(\"unknown command %q for %q\", args[0], cmd.CommandPath())\n\t}\n\treturn nil\n}\n\n// OnlyValidArgs returns an error if there are any positional args that are not in\n// the `ValidArgs` field of `Command`\nfunc OnlyValidArgs(cmd *Command, args []string) error {\n\tif len(cmd.ValidArgs) > 0 {\n\t\t// Remove any description that may be included in ValidArgs.\n\t\t// A description is following a tab character.\n\t\tvalidArgs := make([]string, 0, len(cmd.ValidArgs))\n\t\tfor _, v := range cmd.ValidArgs {\n\t\t\tvalidArgs = append(validArgs, strings.SplitN(v, \"\\t\", 2)[0])\n\t\t}\n\t\tfor _, v := range args {\n\t\t\tif !stringInSlice(v, validArgs) {\n\t\t\t\treturn fmt.Errorf(\"invalid argument %q for %q%s\", v, cmd.CommandPath(), cmd.findSuggestions(args[0]))\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\n// ArbitraryArgs never returns an error.\nfunc ArbitraryArgs(cmd *Command, args []string) error {\n\treturn nil\n}\n\n// MinimumNArgs returns an error if there is not at least N args.\nfunc MinimumNArgs(n int) PositionalArgs {\n\treturn func(cmd *Command, args []string) error {\n\t\tif len(args) < n {\n\t\t\treturn fmt.Errorf(\"requires at least %d arg(s), only received %d\", n, len(args))\n\t\t}\n\t\treturn nil\n\t}\n}\n\n// MaximumNArgs returns an error if there are more than N args.\nfunc MaximumNArgs(n int) PositionalArgs {\n\treturn func(cmd *Command, args []string) error {\n\t\tif len(args) > n {\n\t\t\treturn fmt.Errorf(\"accepts at most %d arg(s), received %d\", n, len(args))\n\t\t}\n\t\treturn nil\n\t}\n}\n\n// ExactArgs returns an error if there are not exactly n args.\nfunc ExactArgs(n int) PositionalArgs {\n\treturn func(cmd *Command, args []string) error {\n\t\tif len(args) != n {\n\t\t\treturn fmt.Errorf(\"accepts %d arg(s), received %d\", n, len(args))\n\t\t}\n\t\treturn nil\n\t}\n}\n\n// RangeArgs returns an error if the number of args is not within the expected range.\nfunc RangeArgs(min int, max int) PositionalArgs {\n\treturn func(cmd *Command, args []string) error {\n\t\tif len(args) < min || len(args) > max {\n\t\t\treturn fmt.Errorf(\"accepts between %d and %d arg(s), received %d\", min, max, len(args))\n\t\t}\n\t\treturn nil\n\t}\n}\n\n// MatchAll allows combining several PositionalArgs to work in concert.\nfunc MatchAll(pargs ...PositionalArgs) PositionalArgs {\n\treturn func(cmd *Command, args []string) error {\n\t\tfor _, parg := range pargs {\n\t\t\tif err := parg(cmd, args); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\treturn nil\n\t}\n}\n\n// ExactValidArgs returns an error if there are not exactly N positional args OR\n// there are any positional args that are not in the `ValidArgs` field of `Command`\n//\n// Deprecated: use MatchAll(ExactArgs(n), OnlyValidArgs) instead\nfunc ExactValidArgs(n int) PositionalArgs {\n\treturn MatchAll(ExactArgs(n), OnlyValidArgs)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/bash_completions.go",
    "content": "// Copyright 2013-2023 The Cobra Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage cobra\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"github.com/spf13/pflag\"\n)\n\n// Annotations for Bash completion.\nconst (\n\tBashCompFilenameExt     = \"cobra_annotation_bash_completion_filename_extensions\"\n\tBashCompCustom          = \"cobra_annotation_bash_completion_custom\"\n\tBashCompOneRequiredFlag = \"cobra_annotation_bash_completion_one_required_flag\"\n\tBashCompSubdirsInDir    = \"cobra_annotation_bash_completion_subdirs_in_dir\"\n)\n\nfunc writePreamble(buf io.StringWriter, name string) {\n\tWriteStringAndCheck(buf, fmt.Sprintf(\"# bash completion for %-36s -*- shell-script -*-\\n\", name))\n\tWriteStringAndCheck(buf, fmt.Sprintf(`\n__%[1]s_debug()\n{\n    if [[ -n ${BASH_COMP_DEBUG_FILE:-} ]]; then\n        echo \"$*\" >> \"${BASH_COMP_DEBUG_FILE}\"\n    fi\n}\n\n# Homebrew on Macs have version 1.3 of bash-completion which doesn't include\n# _init_completion. This is a very minimal version of that function.\n__%[1]s_init_completion()\n{\n    COMPREPLY=()\n    _get_comp_words_by_ref \"$@\" cur prev words cword\n}\n\n__%[1]s_index_of_word()\n{\n    local w word=$1\n    shift\n    index=0\n    for w in \"$@\"; do\n        [[ $w = \"$word\" ]] && return\n        index=$((index+1))\n    done\n    index=-1\n}\n\n__%[1]s_contains_word()\n{\n    local w word=$1; shift\n    for w in \"$@\"; do\n        [[ $w = \"$word\" ]] && return\n    done\n    return 1\n}\n\n__%[1]s_handle_go_custom_completion()\n{\n    __%[1]s_debug \"${FUNCNAME[0]}: cur is ${cur}, words[*] is ${words[*]}, #words[@] is ${#words[@]}\"\n\n    local shellCompDirectiveError=%[3]d\n    local shellCompDirectiveNoSpace=%[4]d\n    local shellCompDirectiveNoFileComp=%[5]d\n    local shellCompDirectiveFilterFileExt=%[6]d\n    local shellCompDirectiveFilterDirs=%[7]d\n\n    local out requestComp lastParam lastChar comp directive args\n\n    # Prepare the command to request completions for the program.\n    # Calling ${words[0]} instead of directly %[1]s allows handling aliases\n    args=(\"${words[@]:1}\")\n    # Disable ActiveHelp which is not supported for bash completion v1\n    requestComp=\"%[8]s=0 ${words[0]} %[2]s ${args[*]}\"\n\n    lastParam=${words[$((${#words[@]}-1))]}\n    lastChar=${lastParam:$((${#lastParam}-1)):1}\n    __%[1]s_debug \"${FUNCNAME[0]}: lastParam ${lastParam}, lastChar ${lastChar}\"\n\n    if [ -z \"${cur}\" ] && [ \"${lastChar}\" != \"=\" ]; then\n        # If the last parameter is complete (there is a space following it)\n        # We add an extra empty parameter so we can indicate this to the go method.\n        __%[1]s_debug \"${FUNCNAME[0]}: Adding extra empty parameter\"\n        requestComp=\"${requestComp} \\\"\\\"\"\n    fi\n\n    __%[1]s_debug \"${FUNCNAME[0]}: calling ${requestComp}\"\n    # Use eval to handle any environment variables and such\n    out=$(eval \"${requestComp}\" 2>/dev/null)\n\n    # Extract the directive integer at the very end of the output following a colon (:)\n    directive=${out##*:}\n    # Remove the directive\n    out=${out%%:*}\n    if [ \"${directive}\" = \"${out}\" ]; then\n        # There is not directive specified\n        directive=0\n    fi\n    __%[1]s_debug \"${FUNCNAME[0]}: the completion directive is: ${directive}\"\n    __%[1]s_debug \"${FUNCNAME[0]}: the completions are: ${out}\"\n\n    if [ $((directive & shellCompDirectiveError)) -ne 0 ]; then\n        # Error code.  No completion.\n        __%[1]s_debug \"${FUNCNAME[0]}: received error from custom completion go code\"\n        return\n    else\n        if [ $((directive & shellCompDirectiveNoSpace)) -ne 0 ]; then\n            if [[ $(type -t compopt) = \"builtin\" ]]; then\n                __%[1]s_debug \"${FUNCNAME[0]}: activating no space\"\n                compopt -o nospace\n            fi\n        fi\n        if [ $((directive & shellCompDirectiveNoFileComp)) -ne 0 ]; then\n            if [[ $(type -t compopt) = \"builtin\" ]]; then\n                __%[1]s_debug \"${FUNCNAME[0]}: activating no file completion\"\n                compopt +o default\n            fi\n        fi\n    fi\n\n    if [ $((directive & shellCompDirectiveFilterFileExt)) -ne 0 ]; then\n        # File extension filtering\n        local fullFilter filter filteringCmd\n        # Do not use quotes around the $out variable or else newline\n        # characters will be kept.\n        for filter in ${out}; do\n            fullFilter+=\"$filter|\"\n        done\n\n        filteringCmd=\"_filedir $fullFilter\"\n        __%[1]s_debug \"File filtering command: $filteringCmd\"\n        $filteringCmd\n    elif [ $((directive & shellCompDirectiveFilterDirs)) -ne 0 ]; then\n        # File completion for directories only\n        local subdir\n        # Use printf to strip any trailing newline\n        subdir=$(printf \"%%s\" \"${out}\")\n        if [ -n \"$subdir\" ]; then\n            __%[1]s_debug \"Listing directories in $subdir\"\n            __%[1]s_handle_subdirs_in_dir_flag \"$subdir\"\n        else\n            __%[1]s_debug \"Listing directories in .\"\n            _filedir -d\n        fi\n    else\n        while IFS='' read -r comp; do\n            COMPREPLY+=(\"$comp\")\n        done < <(compgen -W \"${out}\" -- \"$cur\")\n    fi\n}\n\n__%[1]s_handle_reply()\n{\n    __%[1]s_debug \"${FUNCNAME[0]}\"\n    local comp\n    case $cur in\n        -*)\n            if [[ $(type -t compopt) = \"builtin\" ]]; then\n                compopt -o nospace\n            fi\n            local allflags\n            if [ ${#must_have_one_flag[@]} -ne 0 ]; then\n                allflags=(\"${must_have_one_flag[@]}\")\n            else\n                allflags=(\"${flags[*]} ${two_word_flags[*]}\")\n            fi\n            while IFS='' read -r comp; do\n                COMPREPLY+=(\"$comp\")\n            done < <(compgen -W \"${allflags[*]}\" -- \"$cur\")\n            if [[ $(type -t compopt) = \"builtin\" ]]; then\n                [[ \"${COMPREPLY[0]}\" == *= ]] || compopt +o nospace\n            fi\n\n            # complete after --flag=abc\n            if [[ $cur == *=* ]]; then\n                if [[ $(type -t compopt) = \"builtin\" ]]; then\n                    compopt +o nospace\n                fi\n\n                local index flag\n                flag=\"${cur%%=*}\"\n                __%[1]s_index_of_word \"${flag}\" \"${flags_with_completion[@]}\"\n                COMPREPLY=()\n                if [[ ${index} -ge 0 ]]; then\n                    PREFIX=\"\"\n                    cur=\"${cur#*=}\"\n                    ${flags_completion[${index}]}\n                    if [ -n \"${ZSH_VERSION:-}\" ]; then\n                        # zsh completion needs --flag= prefix\n                        eval \"COMPREPLY=( \\\"\\${COMPREPLY[@]/#/${flag}=}\\\" )\"\n                    fi\n                fi\n            fi\n\n            if [[ -z \"${flag_parsing_disabled}\" ]]; then\n                # If flag parsing is enabled, we have completed the flags and can return.\n                # If flag parsing is disabled, we may not know all (or any) of the flags, so we fallthrough\n                # to possibly call handle_go_custom_completion.\n                return 0;\n            fi\n            ;;\n    esac\n\n    # check if we are handling a flag with special work handling\n    local index\n    __%[1]s_index_of_word \"${prev}\" \"${flags_with_completion[@]}\"\n    if [[ ${index} -ge 0 ]]; then\n        ${flags_completion[${index}]}\n        return\n    fi\n\n    # we are parsing a flag and don't have a special handler, no completion\n    if [[ ${cur} != \"${words[cword]}\" ]]; then\n        return\n    fi\n\n    local completions\n    completions=(\"${commands[@]}\")\n    if [[ ${#must_have_one_noun[@]} -ne 0 ]]; then\n        completions+=(\"${must_have_one_noun[@]}\")\n    elif [[ -n \"${has_completion_function}\" ]]; then\n        # if a go completion function is provided, defer to that function\n        __%[1]s_handle_go_custom_completion\n    fi\n    if [[ ${#must_have_one_flag[@]} -ne 0 ]]; then\n        completions+=(\"${must_have_one_flag[@]}\")\n    fi\n    while IFS='' read -r comp; do\n        COMPREPLY+=(\"$comp\")\n    done < <(compgen -W \"${completions[*]}\" -- \"$cur\")\n\n    if [[ ${#COMPREPLY[@]} -eq 0 && ${#noun_aliases[@]} -gt 0 && ${#must_have_one_noun[@]} -ne 0 ]]; then\n        while IFS='' read -r comp; do\n            COMPREPLY+=(\"$comp\")\n        done < <(compgen -W \"${noun_aliases[*]}\" -- \"$cur\")\n    fi\n\n    if [[ ${#COMPREPLY[@]} -eq 0 ]]; then\n        if declare -F __%[1]s_custom_func >/dev/null; then\n            # try command name qualified custom func\n            __%[1]s_custom_func\n        else\n            # otherwise fall back to unqualified for compatibility\n            declare -F __custom_func >/dev/null && __custom_func\n        fi\n    fi\n\n    # available in bash-completion >= 2, not always present on macOS\n    if declare -F __ltrim_colon_completions >/dev/null; then\n        __ltrim_colon_completions \"$cur\"\n    fi\n\n    # If there is only 1 completion and it is a flag with an = it will be completed\n    # but we don't want a space after the =\n    if [[ \"${#COMPREPLY[@]}\" -eq \"1\" ]] && [[ $(type -t compopt) = \"builtin\" ]] && [[ \"${COMPREPLY[0]}\" == --*= ]]; then\n       compopt -o nospace\n    fi\n}\n\n# The arguments should be in the form \"ext1|ext2|extn\"\n__%[1]s_handle_filename_extension_flag()\n{\n    local ext=\"$1\"\n    _filedir \"@(${ext})\"\n}\n\n__%[1]s_handle_subdirs_in_dir_flag()\n{\n    local dir=\"$1\"\n    pushd \"${dir}\" >/dev/null 2>&1 && _filedir -d && popd >/dev/null 2>&1 || return\n}\n\n__%[1]s_handle_flag()\n{\n    __%[1]s_debug \"${FUNCNAME[0]}: c is $c words[c] is ${words[c]}\"\n\n    # if a command required a flag, and we found it, unset must_have_one_flag()\n    local flagname=${words[c]}\n    local flagvalue=\"\"\n    # if the word contained an =\n    if [[ ${words[c]} == *\"=\"* ]]; then\n        flagvalue=${flagname#*=} # take in as flagvalue after the =\n        flagname=${flagname%%=*} # strip everything after the =\n        flagname=\"${flagname}=\" # but put the = back\n    fi\n    __%[1]s_debug \"${FUNCNAME[0]}: looking for ${flagname}\"\n    if __%[1]s_contains_word \"${flagname}\" \"${must_have_one_flag[@]}\"; then\n        must_have_one_flag=()\n    fi\n\n    # if you set a flag which only applies to this command, don't show subcommands\n    if __%[1]s_contains_word \"${flagname}\" \"${local_nonpersistent_flags[@]}\"; then\n      commands=()\n    fi\n\n    # keep flag value with flagname as flaghash\n    # flaghash variable is an associative array which is only supported in bash > 3.\n    if [[ -z \"${BASH_VERSION:-}\" || \"${BASH_VERSINFO[0]:-}\" -gt 3 ]]; then\n        if [ -n \"${flagvalue}\" ] ; then\n            flaghash[${flagname}]=${flagvalue}\n        elif [ -n \"${words[ $((c+1)) ]}\" ] ; then\n            flaghash[${flagname}]=${words[ $((c+1)) ]}\n        else\n            flaghash[${flagname}]=\"true\" # pad \"true\" for bool flag\n        fi\n    fi\n\n    # skip the argument to a two word flag\n    if [[ ${words[c]} != *\"=\"* ]] && __%[1]s_contains_word \"${words[c]}\" \"${two_word_flags[@]}\"; then\n        __%[1]s_debug \"${FUNCNAME[0]}: found a flag ${words[c]}, skip the next argument\"\n        c=$((c+1))\n        # if we are looking for a flags value, don't show commands\n        if [[ $c -eq $cword ]]; then\n            commands=()\n        fi\n    fi\n\n    c=$((c+1))\n\n}\n\n__%[1]s_handle_noun()\n{\n    __%[1]s_debug \"${FUNCNAME[0]}: c is $c words[c] is ${words[c]}\"\n\n    if __%[1]s_contains_word \"${words[c]}\" \"${must_have_one_noun[@]}\"; then\n        must_have_one_noun=()\n    elif __%[1]s_contains_word \"${words[c]}\" \"${noun_aliases[@]}\"; then\n        must_have_one_noun=()\n    fi\n\n    nouns+=(\"${words[c]}\")\n    c=$((c+1))\n}\n\n__%[1]s_handle_command()\n{\n    __%[1]s_debug \"${FUNCNAME[0]}: c is $c words[c] is ${words[c]}\"\n\n    local next_command\n    if [[ -n ${last_command} ]]; then\n        next_command=\"_${last_command}_${words[c]//:/__}\"\n    else\n        if [[ $c -eq 0 ]]; then\n            next_command=\"_%[1]s_root_command\"\n        else\n            next_command=\"_${words[c]//:/__}\"\n        fi\n    fi\n    c=$((c+1))\n    __%[1]s_debug \"${FUNCNAME[0]}: looking for ${next_command}\"\n    declare -F \"$next_command\" >/dev/null && $next_command\n}\n\n__%[1]s_handle_word()\n{\n    if [[ $c -ge $cword ]]; then\n        __%[1]s_handle_reply\n        return\n    fi\n    __%[1]s_debug \"${FUNCNAME[0]}: c is $c words[c] is ${words[c]}\"\n    if [[ \"${words[c]}\" == -* ]]; then\n        __%[1]s_handle_flag\n    elif __%[1]s_contains_word \"${words[c]}\" \"${commands[@]}\"; then\n        __%[1]s_handle_command\n    elif [[ $c -eq 0 ]]; then\n        __%[1]s_handle_command\n    elif __%[1]s_contains_word \"${words[c]}\" \"${command_aliases[@]}\"; then\n        # aliashash variable is an associative array which is only supported in bash > 3.\n        if [[ -z \"${BASH_VERSION:-}\" || \"${BASH_VERSINFO[0]:-}\" -gt 3 ]]; then\n            words[c]=${aliashash[${words[c]}]}\n            __%[1]s_handle_command\n        else\n            __%[1]s_handle_noun\n        fi\n    else\n        __%[1]s_handle_noun\n    fi\n    __%[1]s_handle_word\n}\n\n`, name, ShellCompNoDescRequestCmd,\n\t\tShellCompDirectiveError, ShellCompDirectiveNoSpace, ShellCompDirectiveNoFileComp,\n\t\tShellCompDirectiveFilterFileExt, ShellCompDirectiveFilterDirs, activeHelpEnvVar(name)))\n}\n\nfunc writePostscript(buf io.StringWriter, name string) {\n\tname = strings.ReplaceAll(name, \":\", \"__\")\n\tWriteStringAndCheck(buf, fmt.Sprintf(\"__start_%s()\\n\", name))\n\tWriteStringAndCheck(buf, fmt.Sprintf(`{\n    local cur prev words cword split\n    declare -A flaghash 2>/dev/null || :\n    declare -A aliashash 2>/dev/null || :\n    if declare -F _init_completion >/dev/null 2>&1; then\n        _init_completion -s || return\n    else\n        __%[1]s_init_completion -n \"=\" || return\n    fi\n\n    local c=0\n    local flag_parsing_disabled=\n    local flags=()\n    local two_word_flags=()\n    local local_nonpersistent_flags=()\n    local flags_with_completion=()\n    local flags_completion=()\n    local commands=(\"%[1]s\")\n    local command_aliases=()\n    local must_have_one_flag=()\n    local must_have_one_noun=()\n    local has_completion_function=\"\"\n    local last_command=\"\"\n    local nouns=()\n    local noun_aliases=()\n\n    __%[1]s_handle_word\n}\n\n`, name))\n\tWriteStringAndCheck(buf, fmt.Sprintf(`if [[ $(type -t compopt) = \"builtin\" ]]; then\n    complete -o default -F __start_%s %s\nelse\n    complete -o default -o nospace -F __start_%s %s\nfi\n\n`, name, name, name, name))\n\tWriteStringAndCheck(buf, \"# ex: ts=4 sw=4 et filetype=sh\\n\")\n}\n\nfunc writeCommands(buf io.StringWriter, cmd *Command) {\n\tWriteStringAndCheck(buf, \"    commands=()\\n\")\n\tfor _, c := range cmd.Commands() {\n\t\tif !c.IsAvailableCommand() && c != cmd.helpCommand {\n\t\t\tcontinue\n\t\t}\n\t\tWriteStringAndCheck(buf, fmt.Sprintf(\"    commands+=(%q)\\n\", c.Name()))\n\t\twriteCmdAliases(buf, c)\n\t}\n\tWriteStringAndCheck(buf, \"\\n\")\n}\n\nfunc writeFlagHandler(buf io.StringWriter, name string, annotations map[string][]string, cmd *Command) {\n\tfor key, value := range annotations {\n\t\tswitch key {\n\t\tcase BashCompFilenameExt:\n\t\t\tWriteStringAndCheck(buf, fmt.Sprintf(\"    flags_with_completion+=(%q)\\n\", name))\n\n\t\t\tvar ext string\n\t\t\tif len(value) > 0 {\n\t\t\t\text = fmt.Sprintf(\"__%s_handle_filename_extension_flag \", cmd.Root().Name()) + strings.Join(value, \"|\")\n\t\t\t} else {\n\t\t\t\text = \"_filedir\"\n\t\t\t}\n\t\t\tWriteStringAndCheck(buf, fmt.Sprintf(\"    flags_completion+=(%q)\\n\", ext))\n\t\tcase BashCompCustom:\n\t\t\tWriteStringAndCheck(buf, fmt.Sprintf(\"    flags_with_completion+=(%q)\\n\", name))\n\n\t\t\tif len(value) > 0 {\n\t\t\t\thandlers := strings.Join(value, \"; \")\n\t\t\t\tWriteStringAndCheck(buf, fmt.Sprintf(\"    flags_completion+=(%q)\\n\", handlers))\n\t\t\t} else {\n\t\t\t\tWriteStringAndCheck(buf, \"    flags_completion+=(:)\\n\")\n\t\t\t}\n\t\tcase BashCompSubdirsInDir:\n\t\t\tWriteStringAndCheck(buf, fmt.Sprintf(\"    flags_with_completion+=(%q)\\n\", name))\n\n\t\t\tvar ext string\n\t\t\tif len(value) == 1 {\n\t\t\t\text = fmt.Sprintf(\"__%s_handle_subdirs_in_dir_flag \", cmd.Root().Name()) + value[0]\n\t\t\t} else {\n\t\t\t\text = \"_filedir -d\"\n\t\t\t}\n\t\t\tWriteStringAndCheck(buf, fmt.Sprintf(\"    flags_completion+=(%q)\\n\", ext))\n\t\t}\n\t}\n}\n\nconst cbn = \"\\\")\\n\"\n\nfunc writeShortFlag(buf io.StringWriter, flag *pflag.Flag, cmd *Command) {\n\tname := flag.Shorthand\n\tformat := \"    \"\n\tif len(flag.NoOptDefVal) == 0 {\n\t\tformat += \"two_word_\"\n\t}\n\tformat += \"flags+=(\\\"-%s\" + cbn\n\tWriteStringAndCheck(buf, fmt.Sprintf(format, name))\n\twriteFlagHandler(buf, \"-\"+name, flag.Annotations, cmd)\n}\n\nfunc writeFlag(buf io.StringWriter, flag *pflag.Flag, cmd *Command) {\n\tname := flag.Name\n\tformat := \"    flags+=(\\\"--%s\"\n\tif len(flag.NoOptDefVal) == 0 {\n\t\tformat += \"=\"\n\t}\n\tformat += cbn\n\tWriteStringAndCheck(buf, fmt.Sprintf(format, name))\n\tif len(flag.NoOptDefVal) == 0 {\n\t\tformat = \"    two_word_flags+=(\\\"--%s\" + cbn\n\t\tWriteStringAndCheck(buf, fmt.Sprintf(format, name))\n\t}\n\twriteFlagHandler(buf, \"--\"+name, flag.Annotations, cmd)\n}\n\nfunc writeLocalNonPersistentFlag(buf io.StringWriter, flag *pflag.Flag) {\n\tname := flag.Name\n\tformat := \"    local_nonpersistent_flags+=(\\\"--%[1]s\" + cbn\n\tif len(flag.NoOptDefVal) == 0 {\n\t\tformat += \"    local_nonpersistent_flags+=(\\\"--%[1]s=\" + cbn\n\t}\n\tWriteStringAndCheck(buf, fmt.Sprintf(format, name))\n\tif len(flag.Shorthand) > 0 {\n\t\tWriteStringAndCheck(buf, fmt.Sprintf(\"    local_nonpersistent_flags+=(\\\"-%s\\\")\\n\", flag.Shorthand))\n\t}\n}\n\n// prepareCustomAnnotationsForFlags setup annotations for go completions for registered flags\nfunc prepareCustomAnnotationsForFlags(cmd *Command) {\n\tflagCompletionMutex.RLock()\n\tdefer flagCompletionMutex.RUnlock()\n\tfor flag := range flagCompletionFunctions {\n\t\t// Make sure the completion script calls the __*_go_custom_completion function for\n\t\t// every registered flag.  We need to do this here (and not when the flag was registered\n\t\t// for completion) so that we can know the root command name for the prefix\n\t\t// of __<prefix>_go_custom_completion\n\t\tif flag.Annotations == nil {\n\t\t\tflag.Annotations = map[string][]string{}\n\t\t}\n\t\tflag.Annotations[BashCompCustom] = []string{fmt.Sprintf(\"__%[1]s_handle_go_custom_completion\", cmd.Root().Name())}\n\t}\n}\n\nfunc writeFlags(buf io.StringWriter, cmd *Command) {\n\tprepareCustomAnnotationsForFlags(cmd)\n\tWriteStringAndCheck(buf, `    flags=()\n    two_word_flags=()\n    local_nonpersistent_flags=()\n    flags_with_completion=()\n    flags_completion=()\n\n`)\n\n\tif cmd.DisableFlagParsing {\n\t\tWriteStringAndCheck(buf, \"    flag_parsing_disabled=1\\n\")\n\t}\n\n\tlocalNonPersistentFlags := cmd.LocalNonPersistentFlags()\n\tcmd.NonInheritedFlags().VisitAll(func(flag *pflag.Flag) {\n\t\tif nonCompletableFlag(flag) {\n\t\t\treturn\n\t\t}\n\t\twriteFlag(buf, flag, cmd)\n\t\tif len(flag.Shorthand) > 0 {\n\t\t\twriteShortFlag(buf, flag, cmd)\n\t\t}\n\t\t// localNonPersistentFlags are used to stop the completion of subcommands when one is set\n\t\t// if TraverseChildren is true we should allow to complete subcommands\n\t\tif localNonPersistentFlags.Lookup(flag.Name) != nil && !cmd.Root().TraverseChildren {\n\t\t\twriteLocalNonPersistentFlag(buf, flag)\n\t\t}\n\t})\n\tcmd.InheritedFlags().VisitAll(func(flag *pflag.Flag) {\n\t\tif nonCompletableFlag(flag) {\n\t\t\treturn\n\t\t}\n\t\twriteFlag(buf, flag, cmd)\n\t\tif len(flag.Shorthand) > 0 {\n\t\t\twriteShortFlag(buf, flag, cmd)\n\t\t}\n\t})\n\n\tWriteStringAndCheck(buf, \"\\n\")\n}\n\nfunc writeRequiredFlag(buf io.StringWriter, cmd *Command) {\n\tWriteStringAndCheck(buf, \"    must_have_one_flag=()\\n\")\n\tflags := cmd.NonInheritedFlags()\n\tflags.VisitAll(func(flag *pflag.Flag) {\n\t\tif nonCompletableFlag(flag) {\n\t\t\treturn\n\t\t}\n\t\tif _, ok := flag.Annotations[BashCompOneRequiredFlag]; ok {\n\t\t\tformat := \"    must_have_one_flag+=(\\\"--%s\"\n\t\t\tif flag.Value.Type() != \"bool\" {\n\t\t\t\tformat += \"=\"\n\t\t\t}\n\t\t\tformat += cbn\n\t\t\tWriteStringAndCheck(buf, fmt.Sprintf(format, flag.Name))\n\n\t\t\tif len(flag.Shorthand) > 0 {\n\t\t\t\tWriteStringAndCheck(buf, fmt.Sprintf(\"    must_have_one_flag+=(\\\"-%s\"+cbn, flag.Shorthand))\n\t\t\t}\n\t\t}\n\t})\n}\n\nfunc writeRequiredNouns(buf io.StringWriter, cmd *Command) {\n\tWriteStringAndCheck(buf, \"    must_have_one_noun=()\\n\")\n\tsort.Strings(cmd.ValidArgs)\n\tfor _, value := range cmd.ValidArgs {\n\t\t// Remove any description that may be included following a tab character.\n\t\t// Descriptions are not supported by bash completion.\n\t\tvalue = strings.SplitN(value, \"\\t\", 2)[0]\n\t\tWriteStringAndCheck(buf, fmt.Sprintf(\"    must_have_one_noun+=(%q)\\n\", value))\n\t}\n\tif cmd.ValidArgsFunction != nil {\n\t\tWriteStringAndCheck(buf, \"    has_completion_function=1\\n\")\n\t}\n}\n\nfunc writeCmdAliases(buf io.StringWriter, cmd *Command) {\n\tif len(cmd.Aliases) == 0 {\n\t\treturn\n\t}\n\n\tsort.Strings(cmd.Aliases)\n\n\tWriteStringAndCheck(buf, fmt.Sprint(`    if [[ -z \"${BASH_VERSION:-}\" || \"${BASH_VERSINFO[0]:-}\" -gt 3 ]]; then`, \"\\n\"))\n\tfor _, value := range cmd.Aliases {\n\t\tWriteStringAndCheck(buf, fmt.Sprintf(\"        command_aliases+=(%q)\\n\", value))\n\t\tWriteStringAndCheck(buf, fmt.Sprintf(\"        aliashash[%q]=%q\\n\", value, cmd.Name()))\n\t}\n\tWriteStringAndCheck(buf, `    fi`)\n\tWriteStringAndCheck(buf, \"\\n\")\n}\nfunc writeArgAliases(buf io.StringWriter, cmd *Command) {\n\tWriteStringAndCheck(buf, \"    noun_aliases=()\\n\")\n\tsort.Strings(cmd.ArgAliases)\n\tfor _, value := range cmd.ArgAliases {\n\t\tWriteStringAndCheck(buf, fmt.Sprintf(\"    noun_aliases+=(%q)\\n\", value))\n\t}\n}\n\nfunc gen(buf io.StringWriter, cmd *Command) {\n\tfor _, c := range cmd.Commands() {\n\t\tif !c.IsAvailableCommand() && c != cmd.helpCommand {\n\t\t\tcontinue\n\t\t}\n\t\tgen(buf, c)\n\t}\n\tcommandName := cmd.CommandPath()\n\tcommandName = strings.ReplaceAll(commandName, \" \", \"_\")\n\tcommandName = strings.ReplaceAll(commandName, \":\", \"__\")\n\n\tif cmd.Root() == cmd {\n\t\tWriteStringAndCheck(buf, fmt.Sprintf(\"_%s_root_command()\\n{\\n\", commandName))\n\t} else {\n\t\tWriteStringAndCheck(buf, fmt.Sprintf(\"_%s()\\n{\\n\", commandName))\n\t}\n\n\tWriteStringAndCheck(buf, fmt.Sprintf(\"    last_command=%q\\n\", commandName))\n\tWriteStringAndCheck(buf, \"\\n\")\n\tWriteStringAndCheck(buf, \"    command_aliases=()\\n\")\n\tWriteStringAndCheck(buf, \"\\n\")\n\n\twriteCommands(buf, cmd)\n\twriteFlags(buf, cmd)\n\twriteRequiredFlag(buf, cmd)\n\twriteRequiredNouns(buf, cmd)\n\twriteArgAliases(buf, cmd)\n\tWriteStringAndCheck(buf, \"}\\n\\n\")\n}\n\n// GenBashCompletion generates bash completion file and writes to the passed writer.\nfunc (c *Command) GenBashCompletion(w io.Writer) error {\n\tbuf := new(bytes.Buffer)\n\twritePreamble(buf, c.Name())\n\tif len(c.BashCompletionFunction) > 0 {\n\t\tbuf.WriteString(c.BashCompletionFunction + \"\\n\")\n\t}\n\tgen(buf, c)\n\twritePostscript(buf, c.Name())\n\n\t_, err := buf.WriteTo(w)\n\treturn err\n}\n\nfunc nonCompletableFlag(flag *pflag.Flag) bool {\n\treturn flag.Hidden || len(flag.Deprecated) > 0\n}\n\n// GenBashCompletionFile generates bash completion file.\nfunc (c *Command) GenBashCompletionFile(filename string) error {\n\toutFile, err := os.Create(filename)\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer outFile.Close()\n\n\treturn c.GenBashCompletion(outFile)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/bash_completionsV2.go",
    "content": "// Copyright 2013-2023 The Cobra Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage cobra\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n)\n\nfunc (c *Command) genBashCompletion(w io.Writer, includeDesc bool) error {\n\tbuf := new(bytes.Buffer)\n\tgenBashComp(buf, c.Name(), includeDesc)\n\t_, err := buf.WriteTo(w)\n\treturn err\n}\n\nfunc genBashComp(buf io.StringWriter, name string, includeDesc bool) {\n\tcompCmd := ShellCompRequestCmd\n\tif !includeDesc {\n\t\tcompCmd = ShellCompNoDescRequestCmd\n\t}\n\n\tWriteStringAndCheck(buf, fmt.Sprintf(`# bash completion V2 for %-36[1]s -*- shell-script -*-\n\n__%[1]s_debug()\n{\n    if [[ -n ${BASH_COMP_DEBUG_FILE-} ]]; then\n        echo \"$*\" >> \"${BASH_COMP_DEBUG_FILE}\"\n    fi\n}\n\n# Macs have bash3 for which the bash-completion package doesn't include\n# _init_completion. This is a minimal version of that function.\n__%[1]s_init_completion()\n{\n    COMPREPLY=()\n    _get_comp_words_by_ref \"$@\" cur prev words cword\n}\n\n# This function calls the %[1]s program to obtain the completion\n# results and the directive.  It fills the 'out' and 'directive' vars.\n__%[1]s_get_completion_results() {\n    local requestComp lastParam lastChar args\n\n    # Prepare the command to request completions for the program.\n    # Calling ${words[0]} instead of directly %[1]s allows handling aliases\n    args=(\"${words[@]:1}\")\n    requestComp=\"${words[0]} %[2]s ${args[*]}\"\n\n    lastParam=${words[$((${#words[@]}-1))]}\n    lastChar=${lastParam:$((${#lastParam}-1)):1}\n    __%[1]s_debug \"lastParam ${lastParam}, lastChar ${lastChar}\"\n\n    if [[ -z ${cur} && ${lastChar} != = ]]; then\n        # If the last parameter is complete (there is a space following it)\n        # We add an extra empty parameter so we can indicate this to the go method.\n        __%[1]s_debug \"Adding extra empty parameter\"\n        requestComp=\"${requestComp} ''\"\n    fi\n\n    # When completing a flag with an = (e.g., %[1]s -n=<TAB>)\n    # bash focuses on the part after the =, so we need to remove\n    # the flag part from $cur\n    if [[ ${cur} == -*=* ]]; then\n        cur=\"${cur#*=}\"\n    fi\n\n    __%[1]s_debug \"Calling ${requestComp}\"\n    # Use eval to handle any environment variables and such\n    out=$(eval \"${requestComp}\" 2>/dev/null)\n\n    # Extract the directive integer at the very end of the output following a colon (:)\n    directive=${out##*:}\n    # Remove the directive\n    out=${out%%:*}\n    if [[ ${directive} == \"${out}\" ]]; then\n        # There is not directive specified\n        directive=0\n    fi\n    __%[1]s_debug \"The completion directive is: ${directive}\"\n    __%[1]s_debug \"The completions are: ${out}\"\n}\n\n__%[1]s_process_completion_results() {\n    local shellCompDirectiveError=%[3]d\n    local shellCompDirectiveNoSpace=%[4]d\n    local shellCompDirectiveNoFileComp=%[5]d\n    local shellCompDirectiveFilterFileExt=%[6]d\n    local shellCompDirectiveFilterDirs=%[7]d\n    local shellCompDirectiveKeepOrder=%[8]d\n\n    if (((directive & shellCompDirectiveError) != 0)); then\n        # Error code.  No completion.\n        __%[1]s_debug \"Received error from custom completion go code\"\n        return\n    else\n        if (((directive & shellCompDirectiveNoSpace) != 0)); then\n            if [[ $(type -t compopt) == builtin ]]; then\n                __%[1]s_debug \"Activating no space\"\n                compopt -o nospace\n            else\n                __%[1]s_debug \"No space directive not supported in this version of bash\"\n            fi\n        fi\n        if (((directive & shellCompDirectiveKeepOrder) != 0)); then\n            if [[ $(type -t compopt) == builtin ]]; then\n                # no sort isn't supported for bash less than < 4.4\n                if [[ ${BASH_VERSINFO[0]} -lt 4 || ( ${BASH_VERSINFO[0]} -eq 4 && ${BASH_VERSINFO[1]} -lt 4 ) ]]; then\n                    __%[1]s_debug \"No sort directive not supported in this version of bash\"\n                else\n                    __%[1]s_debug \"Activating keep order\"\n                    compopt -o nosort\n                fi\n            else\n                __%[1]s_debug \"No sort directive not supported in this version of bash\"\n            fi\n        fi\n        if (((directive & shellCompDirectiveNoFileComp) != 0)); then\n            if [[ $(type -t compopt) == builtin ]]; then\n                __%[1]s_debug \"Activating no file completion\"\n                compopt +o default\n            else\n                __%[1]s_debug \"No file completion directive not supported in this version of bash\"\n            fi\n        fi\n    fi\n\n    # Separate activeHelp from normal completions\n    local completions=()\n    local activeHelp=()\n    __%[1]s_extract_activeHelp\n\n    if (((directive & shellCompDirectiveFilterFileExt) != 0)); then\n        # File extension filtering\n        local fullFilter filter filteringCmd\n\n        # Do not use quotes around the $completions variable or else newline\n        # characters will be kept.\n        for filter in ${completions[*]}; do\n            fullFilter+=\"$filter|\"\n        done\n\n        filteringCmd=\"_filedir $fullFilter\"\n        __%[1]s_debug \"File filtering command: $filteringCmd\"\n        $filteringCmd\n    elif (((directive & shellCompDirectiveFilterDirs) != 0)); then\n        # File completion for directories only\n\n        local subdir\n        subdir=${completions[0]}\n        if [[ -n $subdir ]]; then\n            __%[1]s_debug \"Listing directories in $subdir\"\n            pushd \"$subdir\" >/dev/null 2>&1 && _filedir -d && popd >/dev/null 2>&1 || return\n        else\n            __%[1]s_debug \"Listing directories in .\"\n            _filedir -d\n        fi\n    else\n        __%[1]s_handle_completion_types\n    fi\n\n    __%[1]s_handle_special_char \"$cur\" :\n    __%[1]s_handle_special_char \"$cur\" =\n\n    # Print the activeHelp statements before we finish\n    if ((${#activeHelp[*]} != 0)); then\n        printf \"\\n\";\n        printf \"%%s\\n\" \"${activeHelp[@]}\"\n        printf \"\\n\"\n\n        # The prompt format is only available from bash 4.4.\n        # We test if it is available before using it.\n        if (x=${PS1@P}) 2> /dev/null; then\n            printf \"%%s\" \"${PS1@P}${COMP_LINE[@]}\"\n        else\n            # Can't print the prompt.  Just print the\n            # text the user had typed, it is workable enough.\n            printf \"%%s\" \"${COMP_LINE[@]}\"\n        fi\n    fi\n}\n\n# Separate activeHelp lines from real completions.\n# Fills the $activeHelp and $completions arrays.\n__%[1]s_extract_activeHelp() {\n    local activeHelpMarker=\"%[9]s\"\n    local endIndex=${#activeHelpMarker}\n\n    while IFS='' read -r comp; do\n        if [[ ${comp:0:endIndex} == $activeHelpMarker ]]; then\n            comp=${comp:endIndex}\n            __%[1]s_debug \"ActiveHelp found: $comp\"\n            if [[ -n $comp ]]; then\n                activeHelp+=(\"$comp\")\n            fi\n        else\n            # Not an activeHelp line but a normal completion\n            completions+=(\"$comp\")\n        fi\n    done <<<\"${out}\"\n}\n\n__%[1]s_handle_completion_types() {\n    __%[1]s_debug \"__%[1]s_handle_completion_types: COMP_TYPE is $COMP_TYPE\"\n\n    case $COMP_TYPE in\n    37|42)\n        # Type: menu-complete/menu-complete-backward and insert-completions\n        # If the user requested inserting one completion at a time, or all\n        # completions at once on the command-line we must remove the descriptions.\n        # https://github.com/spf13/cobra/issues/1508\n        local tab=$'\\t' comp\n        while IFS='' read -r comp; do\n            [[ -z $comp ]] && continue\n            # Strip any description\n            comp=${comp%%%%$tab*}\n            # Only consider the completions that match\n            if [[ $comp == \"$cur\"* ]]; then\n                COMPREPLY+=(\"$comp\")\n            fi\n        done < <(printf \"%%s\\n\" \"${completions[@]}\")\n        ;;\n\n    *)\n        # Type: complete (normal completion)\n        __%[1]s_handle_standard_completion_case\n        ;;\n    esac\n}\n\n__%[1]s_handle_standard_completion_case() {\n    local tab=$'\\t' comp\n\n    # Short circuit to optimize if we don't have descriptions\n    if [[ \"${completions[*]}\" != *$tab* ]]; then\n        IFS=$'\\n' read -ra COMPREPLY -d '' < <(compgen -W \"${completions[*]}\" -- \"$cur\")\n        return 0\n    fi\n\n    local longest=0\n    local compline\n    # Look for the longest completion so that we can format things nicely\n    while IFS='' read -r compline; do\n        [[ -z $compline ]] && continue\n        # Strip any description before checking the length\n        comp=${compline%%%%$tab*}\n        # Only consider the completions that match\n        [[ $comp == \"$cur\"* ]] || continue\n        COMPREPLY+=(\"$compline\")\n        if ((${#comp}>longest)); then\n            longest=${#comp}\n        fi\n    done < <(printf \"%%s\\n\" \"${completions[@]}\")\n\n    # If there is a single completion left, remove the description text\n    if ((${#COMPREPLY[*]} == 1)); then\n        __%[1]s_debug \"COMPREPLY[0]: ${COMPREPLY[0]}\"\n        comp=\"${COMPREPLY[0]%%%%$tab*}\"\n        __%[1]s_debug \"Removed description from single completion, which is now: ${comp}\"\n        COMPREPLY[0]=$comp\n    else # Format the descriptions\n        __%[1]s_format_comp_descriptions $longest\n    fi\n}\n\n__%[1]s_handle_special_char()\n{\n    local comp=\"$1\"\n    local char=$2\n    if [[ \"$comp\" == *${char}* && \"$COMP_WORDBREAKS\" == *${char}* ]]; then\n        local word=${comp%%\"${comp##*${char}}\"}\n        local idx=${#COMPREPLY[*]}\n        while ((--idx >= 0)); do\n            COMPREPLY[idx]=${COMPREPLY[idx]#\"$word\"}\n        done\n    fi\n}\n\n__%[1]s_format_comp_descriptions()\n{\n    local tab=$'\\t'\n    local comp desc maxdesclength\n    local longest=$1\n\n    local i ci\n    for ci in ${!COMPREPLY[*]}; do\n        comp=${COMPREPLY[ci]}\n        # Properly format the description string which follows a tab character if there is one\n        if [[ \"$comp\" == *$tab* ]]; then\n            __%[1]s_debug \"Original comp: $comp\"\n            desc=${comp#*$tab}\n            comp=${comp%%%%$tab*}\n\n            # $COLUMNS stores the current shell width.\n            # Remove an extra 4 because we add 2 spaces and 2 parentheses.\n            maxdesclength=$(( COLUMNS - longest - 4 ))\n\n            # Make sure we can fit a description of at least 8 characters\n            # if we are to align the descriptions.\n            if ((maxdesclength > 8)); then\n                # Add the proper number of spaces to align the descriptions\n                for ((i = ${#comp} ; i < longest ; i++)); do\n                    comp+=\" \"\n                done\n            else\n                # Don't pad the descriptions so we can fit more text after the completion\n                maxdesclength=$(( COLUMNS - ${#comp} - 4 ))\n            fi\n\n            # If there is enough space for any description text,\n            # truncate the descriptions that are too long for the shell width\n            if ((maxdesclength > 0)); then\n                if ((${#desc} > maxdesclength)); then\n                    desc=${desc:0:$(( maxdesclength - 1 ))}\n                    desc+=\"…\"\n                fi\n                comp+=\"  ($desc)\"\n            fi\n            COMPREPLY[ci]=$comp\n            __%[1]s_debug \"Final comp: $comp\"\n        fi\n    done\n}\n\n__start_%[1]s()\n{\n    local cur prev words cword split\n\n    COMPREPLY=()\n\n    # Call _init_completion from the bash-completion package\n    # to prepare the arguments properly\n    if declare -F _init_completion >/dev/null 2>&1; then\n        _init_completion -n =: || return\n    else\n        __%[1]s_init_completion -n =: || return\n    fi\n\n    __%[1]s_debug\n    __%[1]s_debug \"========= starting completion logic ==========\"\n    __%[1]s_debug \"cur is ${cur}, words[*] is ${words[*]}, #words[@] is ${#words[@]}, cword is $cword\"\n\n    # The user could have moved the cursor backwards on the command-line.\n    # We need to trigger completion from the $cword location, so we need\n    # to truncate the command-line ($words) up to the $cword location.\n    words=(\"${words[@]:0:$cword+1}\")\n    __%[1]s_debug \"Truncated words[*]: ${words[*]},\"\n\n    local out directive\n    __%[1]s_get_completion_results\n    __%[1]s_process_completion_results\n}\n\nif [[ $(type -t compopt) = \"builtin\" ]]; then\n    complete -o default -F __start_%[1]s %[1]s\nelse\n    complete -o default -o nospace -F __start_%[1]s %[1]s\nfi\n\n# ex: ts=4 sw=4 et filetype=sh\n`, name, compCmd,\n\t\tShellCompDirectiveError, ShellCompDirectiveNoSpace, ShellCompDirectiveNoFileComp,\n\t\tShellCompDirectiveFilterFileExt, ShellCompDirectiveFilterDirs, ShellCompDirectiveKeepOrder,\n\t\tactiveHelpMarker))\n}\n\n// GenBashCompletionFileV2 generates Bash completion version 2.\nfunc (c *Command) GenBashCompletionFileV2(filename string, includeDesc bool) error {\n\toutFile, err := os.Create(filename)\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer outFile.Close()\n\n\treturn c.GenBashCompletionV2(outFile, includeDesc)\n}\n\n// GenBashCompletionV2 generates Bash completion file version 2\n// and writes it to the passed writer.\nfunc (c *Command) GenBashCompletionV2(w io.Writer, includeDesc bool) error {\n\treturn c.genBashCompletion(w, includeDesc)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/cobra.go",
    "content": "// Copyright 2013-2023 The Cobra Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Commands similar to git, go tools and other modern CLI tools\n// inspired by go, go-Commander, gh and subcommand\n\npackage cobra\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\t\"text/template\"\n\t\"time\"\n\t\"unicode\"\n)\n\nvar templateFuncs = template.FuncMap{\n\t\"trim\":                    strings.TrimSpace,\n\t\"trimRightSpace\":          trimRightSpace,\n\t\"trimTrailingWhitespaces\": trimRightSpace,\n\t\"appendIfNotPresent\":      appendIfNotPresent,\n\t\"rpad\":                    rpad,\n\t\"gt\":                      Gt,\n\t\"eq\":                      Eq,\n}\n\nvar initializers []func()\nvar finalizers []func()\n\nconst (\n\tdefaultPrefixMatching   = false\n\tdefaultCommandSorting   = true\n\tdefaultCaseInsensitive  = false\n\tdefaultTraverseRunHooks = false\n)\n\n// EnablePrefixMatching allows setting automatic prefix matching. Automatic prefix matching can be a dangerous thing\n// to automatically enable in CLI tools.\n// Set this to true to enable it.\nvar EnablePrefixMatching = defaultPrefixMatching\n\n// EnableCommandSorting controls sorting of the slice of commands, which is turned on by default.\n// To disable sorting, set it to false.\nvar EnableCommandSorting = defaultCommandSorting\n\n// EnableCaseInsensitive allows case-insensitive commands names. (case sensitive by default)\nvar EnableCaseInsensitive = defaultCaseInsensitive\n\n// EnableTraverseRunHooks executes persistent pre-run and post-run hooks from all parents.\n// By default this is disabled, which means only the first run hook to be found is executed.\nvar EnableTraverseRunHooks = defaultTraverseRunHooks\n\n// MousetrapHelpText enables an information splash screen on Windows\n// if the CLI is started from explorer.exe.\n// To disable the mousetrap, just set this variable to blank string (\"\").\n// Works only on Microsoft Windows.\nvar MousetrapHelpText = `This is a command line tool.\n\nYou need to open cmd.exe and run it from there.\n`\n\n// MousetrapDisplayDuration controls how long the MousetrapHelpText message is displayed on Windows\n// if the CLI is started from explorer.exe. Set to 0 to wait for the return key to be pressed.\n// To disable the mousetrap, just set MousetrapHelpText to blank string (\"\").\n// Works only on Microsoft Windows.\nvar MousetrapDisplayDuration = 5 * time.Second\n\n// AddTemplateFunc adds a template function that's available to Usage and Help\n// template generation.\nfunc AddTemplateFunc(name string, tmplFunc interface{}) {\n\ttemplateFuncs[name] = tmplFunc\n}\n\n// AddTemplateFuncs adds multiple template functions that are available to Usage and\n// Help template generation.\nfunc AddTemplateFuncs(tmplFuncs template.FuncMap) {\n\tfor k, v := range tmplFuncs {\n\t\ttemplateFuncs[k] = v\n\t}\n}\n\n// OnInitialize sets the passed functions to be run when each command's\n// Execute method is called.\nfunc OnInitialize(y ...func()) {\n\tinitializers = append(initializers, y...)\n}\n\n// OnFinalize sets the passed functions to be run when each command's\n// Execute method is terminated.\nfunc OnFinalize(y ...func()) {\n\tfinalizers = append(finalizers, y...)\n}\n\n// FIXME Gt is unused by cobra and should be removed in a version 2. It exists only for compatibility with users of cobra.\n\n// Gt takes two types and checks whether the first type is greater than the second. In case of types Arrays, Chans,\n// Maps and Slices, Gt will compare their lengths. Ints are compared directly while strings are first parsed as\n// ints and then compared.\nfunc Gt(a interface{}, b interface{}) bool {\n\tvar left, right int64\n\tav := reflect.ValueOf(a)\n\n\tswitch av.Kind() {\n\tcase reflect.Array, reflect.Chan, reflect.Map, reflect.Slice:\n\t\tleft = int64(av.Len())\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\tleft = av.Int()\n\tcase reflect.String:\n\t\tleft, _ = strconv.ParseInt(av.String(), 10, 64)\n\t}\n\n\tbv := reflect.ValueOf(b)\n\n\tswitch bv.Kind() {\n\tcase reflect.Array, reflect.Chan, reflect.Map, reflect.Slice:\n\t\tright = int64(bv.Len())\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\tright = bv.Int()\n\tcase reflect.String:\n\t\tright, _ = strconv.ParseInt(bv.String(), 10, 64)\n\t}\n\n\treturn left > right\n}\n\n// FIXME Eq is unused by cobra and should be removed in a version 2. It exists only for compatibility with users of cobra.\n\n// Eq takes two types and checks whether they are equal. Supported types are int and string. Unsupported types will panic.\nfunc Eq(a interface{}, b interface{}) bool {\n\tav := reflect.ValueOf(a)\n\tbv := reflect.ValueOf(b)\n\n\tswitch av.Kind() {\n\tcase reflect.Array, reflect.Chan, reflect.Map, reflect.Slice:\n\t\tpanic(\"Eq called on unsupported type\")\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn av.Int() == bv.Int()\n\tcase reflect.String:\n\t\treturn av.String() == bv.String()\n\t}\n\treturn false\n}\n\nfunc trimRightSpace(s string) string {\n\treturn strings.TrimRightFunc(s, unicode.IsSpace)\n}\n\n// FIXME appendIfNotPresent is unused by cobra and should be removed in a version 2. It exists only for compatibility with users of cobra.\n\n// appendIfNotPresent will append stringToAppend to the end of s, but only if it's not yet present in s.\nfunc appendIfNotPresent(s, stringToAppend string) string {\n\tif strings.Contains(s, stringToAppend) {\n\t\treturn s\n\t}\n\treturn s + \" \" + stringToAppend\n}\n\n// rpad adds padding to the right of a string.\nfunc rpad(s string, padding int) string {\n\tformattedString := fmt.Sprintf(\"%%-%ds\", padding)\n\treturn fmt.Sprintf(formattedString, s)\n}\n\n// tmpl executes the given template text on data, writing the result to w.\nfunc tmpl(w io.Writer, text string, data interface{}) error {\n\tt := template.New(\"top\")\n\tt.Funcs(templateFuncs)\n\ttemplate.Must(t.Parse(text))\n\treturn t.Execute(w, data)\n}\n\n// ld compares two strings and returns the levenshtein distance between them.\nfunc ld(s, t string, ignoreCase bool) int {\n\tif ignoreCase {\n\t\ts = strings.ToLower(s)\n\t\tt = strings.ToLower(t)\n\t}\n\td := make([][]int, len(s)+1)\n\tfor i := range d {\n\t\td[i] = make([]int, len(t)+1)\n\t\td[i][0] = i\n\t}\n\tfor j := range d[0] {\n\t\td[0][j] = j\n\t}\n\tfor j := 1; j <= len(t); j++ {\n\t\tfor i := 1; i <= len(s); i++ {\n\t\t\tif s[i-1] == t[j-1] {\n\t\t\t\td[i][j] = d[i-1][j-1]\n\t\t\t} else {\n\t\t\t\tmin := d[i-1][j]\n\t\t\t\tif d[i][j-1] < min {\n\t\t\t\t\tmin = d[i][j-1]\n\t\t\t\t}\n\t\t\t\tif d[i-1][j-1] < min {\n\t\t\t\t\tmin = d[i-1][j-1]\n\t\t\t\t}\n\t\t\t\td[i][j] = min + 1\n\t\t\t}\n\t\t}\n\n\t}\n\treturn d[len(s)][len(t)]\n}\n\nfunc stringInSlice(a string, list []string) bool {\n\tfor _, b := range list {\n\t\tif b == a {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// CheckErr prints the msg with the prefix 'Error:' and exits with error code 1. If the msg is nil, it does nothing.\nfunc CheckErr(msg interface{}) {\n\tif msg != nil {\n\t\tfmt.Fprintln(os.Stderr, \"Error:\", msg)\n\t\tos.Exit(1)\n\t}\n}\n\n// WriteStringAndCheck writes a string into a buffer, and checks if the error is not nil.\nfunc WriteStringAndCheck(b io.StringWriter, s string) {\n\t_, err := b.WriteString(s)\n\tCheckErr(err)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/command.go",
    "content": "// Copyright 2013-2023 The Cobra Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Package cobra is a commander providing a simple interface to create powerful modern CLI interfaces.\n// In addition to providing an interface, Cobra simultaneously provides a controller to organize your application code.\npackage cobra\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"sort\"\n\t\"strings\"\n\n\tflag \"github.com/spf13/pflag\"\n)\n\nconst (\n\tFlagSetByCobraAnnotation     = \"cobra_annotation_flag_set_by_cobra\"\n\tCommandDisplayNameAnnotation = \"cobra_annotation_command_display_name\"\n)\n\n// FParseErrWhitelist configures Flag parse errors to be ignored\ntype FParseErrWhitelist flag.ParseErrorsWhitelist\n\n// Group Structure to manage groups for commands\ntype Group struct {\n\tID    string\n\tTitle string\n}\n\n// Command is just that, a command for your application.\n// E.g.  'go run ...' - 'run' is the command. Cobra requires\n// you to define the usage and description as part of your command\n// definition to ensure usability.\ntype Command struct {\n\t// Use is the one-line usage message.\n\t// Recommended syntax is as follows:\n\t//   [ ] identifies an optional argument. Arguments that are not enclosed in brackets are required.\n\t//   ... indicates that you can specify multiple values for the previous argument.\n\t//   |   indicates mutually exclusive information. You can use the argument to the left of the separator or the\n\t//       argument to the right of the separator. You cannot use both arguments in a single use of the command.\n\t//   { } delimits a set of mutually exclusive arguments when one of the arguments is required. If the arguments are\n\t//       optional, they are enclosed in brackets ([ ]).\n\t// Example: add [-F file | -D dir]... [-f format] profile\n\tUse string\n\n\t// Aliases is an array of aliases that can be used instead of the first word in Use.\n\tAliases []string\n\n\t// SuggestFor is an array of command names for which this command will be suggested -\n\t// similar to aliases but only suggests.\n\tSuggestFor []string\n\n\t// Short is the short description shown in the 'help' output.\n\tShort string\n\n\t// The group id under which this subcommand is grouped in the 'help' output of its parent.\n\tGroupID string\n\n\t// Long is the long message shown in the 'help <this-command>' output.\n\tLong string\n\n\t// Example is examples of how to use the command.\n\tExample string\n\n\t// ValidArgs is list of all valid non-flag arguments that are accepted in shell completions\n\tValidArgs []string\n\t// ValidArgsFunction is an optional function that provides valid non-flag arguments for shell completion.\n\t// It is a dynamic version of using ValidArgs.\n\t// Only one of ValidArgs and ValidArgsFunction can be used for a command.\n\tValidArgsFunction func(cmd *Command, args []string, toComplete string) ([]string, ShellCompDirective)\n\n\t// Expected arguments\n\tArgs PositionalArgs\n\n\t// ArgAliases is List of aliases for ValidArgs.\n\t// These are not suggested to the user in the shell completion,\n\t// but accepted if entered manually.\n\tArgAliases []string\n\n\t// BashCompletionFunction is custom bash functions used by the legacy bash autocompletion generator.\n\t// For portability with other shells, it is recommended to instead use ValidArgsFunction\n\tBashCompletionFunction string\n\n\t// Deprecated defines, if this command is deprecated and should print this string when used.\n\tDeprecated string\n\n\t// Annotations are key/value pairs that can be used by applications to identify or\n\t// group commands or set special options.\n\tAnnotations map[string]string\n\n\t// Version defines the version for this command. If this value is non-empty and the command does not\n\t// define a \"version\" flag, a \"version\" boolean flag will be added to the command and, if specified,\n\t// will print content of the \"Version\" variable. A shorthand \"v\" flag will also be added if the\n\t// command does not define one.\n\tVersion string\n\n\t// The *Run functions are executed in the following order:\n\t//   * PersistentPreRun()\n\t//   * PreRun()\n\t//   * Run()\n\t//   * PostRun()\n\t//   * PersistentPostRun()\n\t// All functions get the same args, the arguments after the command name.\n\t// The *PreRun and *PostRun functions will only be executed if the Run function of the current\n\t// command has been declared.\n\t//\n\t// PersistentPreRun: children of this command will inherit and execute.\n\tPersistentPreRun func(cmd *Command, args []string)\n\t// PersistentPreRunE: PersistentPreRun but returns an error.\n\tPersistentPreRunE func(cmd *Command, args []string) error\n\t// PreRun: children of this command will not inherit.\n\tPreRun func(cmd *Command, args []string)\n\t// PreRunE: PreRun but returns an error.\n\tPreRunE func(cmd *Command, args []string) error\n\t// Run: Typically the actual work function. Most commands will only implement this.\n\tRun func(cmd *Command, args []string)\n\t// RunE: Run but returns an error.\n\tRunE func(cmd *Command, args []string) error\n\t// PostRun: run after the Run command.\n\tPostRun func(cmd *Command, args []string)\n\t// PostRunE: PostRun but returns an error.\n\tPostRunE func(cmd *Command, args []string) error\n\t// PersistentPostRun: children of this command will inherit and execute after PostRun.\n\tPersistentPostRun func(cmd *Command, args []string)\n\t// PersistentPostRunE: PersistentPostRun but returns an error.\n\tPersistentPostRunE func(cmd *Command, args []string) error\n\n\t// groups for subcommands\n\tcommandgroups []*Group\n\n\t// args is actual args parsed from flags.\n\targs []string\n\t// flagErrorBuf contains all error messages from pflag.\n\tflagErrorBuf *bytes.Buffer\n\t// flags is full set of flags.\n\tflags *flag.FlagSet\n\t// pflags contains persistent flags.\n\tpflags *flag.FlagSet\n\t// lflags contains local flags.\n\t// This field does not represent internal state, it's used as a cache to optimise LocalFlags function call\n\tlflags *flag.FlagSet\n\t// iflags contains inherited flags.\n\t// This field does not represent internal state, it's used as a cache to optimise InheritedFlags function call\n\tiflags *flag.FlagSet\n\t// parentsPflags is all persistent flags of cmd's parents.\n\tparentsPflags *flag.FlagSet\n\t// globNormFunc is the global normalization function\n\t// that we can use on every pflag set and children commands\n\tglobNormFunc func(f *flag.FlagSet, name string) flag.NormalizedName\n\n\t// usageFunc is usage func defined by user.\n\tusageFunc func(*Command) error\n\t// usageTemplate is usage template defined by user.\n\tusageTemplate string\n\t// flagErrorFunc is func defined by user and it's called when the parsing of\n\t// flags returns an error.\n\tflagErrorFunc func(*Command, error) error\n\t// helpTemplate is help template defined by user.\n\thelpTemplate string\n\t// helpFunc is help func defined by user.\n\thelpFunc func(*Command, []string)\n\t// helpCommand is command with usage 'help'. If it's not defined by user,\n\t// cobra uses default help command.\n\thelpCommand *Command\n\t// helpCommandGroupID is the group id for the helpCommand\n\thelpCommandGroupID string\n\n\t// completionCommandGroupID is the group id for the completion command\n\tcompletionCommandGroupID string\n\n\t// versionTemplate is the version template defined by user.\n\tversionTemplate string\n\n\t// errPrefix is the error message prefix defined by user.\n\terrPrefix string\n\n\t// inReader is a reader defined by the user that replaces stdin\n\tinReader io.Reader\n\t// outWriter is a writer defined by the user that replaces stdout\n\toutWriter io.Writer\n\t// errWriter is a writer defined by the user that replaces stderr\n\terrWriter io.Writer\n\n\t// FParseErrWhitelist flag parse errors to be ignored\n\tFParseErrWhitelist FParseErrWhitelist\n\n\t// CompletionOptions is a set of options to control the handling of shell completion\n\tCompletionOptions CompletionOptions\n\n\t// commandsAreSorted defines, if command slice are sorted or not.\n\tcommandsAreSorted bool\n\t// commandCalledAs is the name or alias value used to call this command.\n\tcommandCalledAs struct {\n\t\tname   string\n\t\tcalled bool\n\t}\n\n\tctx context.Context\n\n\t// commands is the list of commands supported by this program.\n\tcommands []*Command\n\t// parent is a parent command for this command.\n\tparent *Command\n\t// Max lengths of commands' string lengths for use in padding.\n\tcommandsMaxUseLen         int\n\tcommandsMaxCommandPathLen int\n\tcommandsMaxNameLen        int\n\n\t// TraverseChildren parses flags on all parents before executing child command.\n\tTraverseChildren bool\n\n\t// Hidden defines, if this command is hidden and should NOT show up in the list of available commands.\n\tHidden bool\n\n\t// SilenceErrors is an option to quiet errors down stream.\n\tSilenceErrors bool\n\n\t// SilenceUsage is an option to silence usage when an error occurs.\n\tSilenceUsage bool\n\n\t// DisableFlagParsing disables the flag parsing.\n\t// If this is true all flags will be passed to the command as arguments.\n\tDisableFlagParsing bool\n\n\t// DisableAutoGenTag defines, if gen tag (\"Auto generated by spf13/cobra...\")\n\t// will be printed by generating docs for this command.\n\tDisableAutoGenTag bool\n\n\t// DisableFlagsInUseLine will disable the addition of [flags] to the usage\n\t// line of a command when printing help or generating docs\n\tDisableFlagsInUseLine bool\n\n\t// DisableSuggestions disables the suggestions based on Levenshtein distance\n\t// that go along with 'unknown command' messages.\n\tDisableSuggestions bool\n\n\t// SuggestionsMinimumDistance defines minimum levenshtein distance to display suggestions.\n\t// Must be > 0.\n\tSuggestionsMinimumDistance int\n}\n\n// Context returns underlying command context. If command was executed\n// with ExecuteContext or the context was set with SetContext, the\n// previously set context will be returned. Otherwise, nil is returned.\n//\n// Notice that a call to Execute and ExecuteC will replace a nil context of\n// a command with a context.Background, so a background context will be\n// returned by Context after one of these functions has been called.\nfunc (c *Command) Context() context.Context {\n\treturn c.ctx\n}\n\n// SetContext sets context for the command. This context will be overwritten by\n// Command.ExecuteContext or Command.ExecuteContextC.\nfunc (c *Command) SetContext(ctx context.Context) {\n\tc.ctx = ctx\n}\n\n// SetArgs sets arguments for the command. It is set to os.Args[1:] by default, if desired, can be overridden\n// particularly useful when testing.\nfunc (c *Command) SetArgs(a []string) {\n\tc.args = a\n}\n\n// SetOutput sets the destination for usage and error messages.\n// If output is nil, os.Stderr is used.\n// Deprecated: Use SetOut and/or SetErr instead\nfunc (c *Command) SetOutput(output io.Writer) {\n\tc.outWriter = output\n\tc.errWriter = output\n}\n\n// SetOut sets the destination for usage messages.\n// If newOut is nil, os.Stdout is used.\nfunc (c *Command) SetOut(newOut io.Writer) {\n\tc.outWriter = newOut\n}\n\n// SetErr sets the destination for error messages.\n// If newErr is nil, os.Stderr is used.\nfunc (c *Command) SetErr(newErr io.Writer) {\n\tc.errWriter = newErr\n}\n\n// SetIn sets the source for input data\n// If newIn is nil, os.Stdin is used.\nfunc (c *Command) SetIn(newIn io.Reader) {\n\tc.inReader = newIn\n}\n\n// SetUsageFunc sets usage function. Usage can be defined by application.\nfunc (c *Command) SetUsageFunc(f func(*Command) error) {\n\tc.usageFunc = f\n}\n\n// SetUsageTemplate sets usage template. Can be defined by Application.\nfunc (c *Command) SetUsageTemplate(s string) {\n\tc.usageTemplate = s\n}\n\n// SetFlagErrorFunc sets a function to generate an error when flag parsing\n// fails.\nfunc (c *Command) SetFlagErrorFunc(f func(*Command, error) error) {\n\tc.flagErrorFunc = f\n}\n\n// SetHelpFunc sets help function. Can be defined by Application.\nfunc (c *Command) SetHelpFunc(f func(*Command, []string)) {\n\tc.helpFunc = f\n}\n\n// SetHelpCommand sets help command.\nfunc (c *Command) SetHelpCommand(cmd *Command) {\n\tc.helpCommand = cmd\n}\n\n// SetHelpCommandGroupID sets the group id of the help command.\nfunc (c *Command) SetHelpCommandGroupID(groupID string) {\n\tif c.helpCommand != nil {\n\t\tc.helpCommand.GroupID = groupID\n\t}\n\t// helpCommandGroupID is used if no helpCommand is defined by the user\n\tc.helpCommandGroupID = groupID\n}\n\n// SetCompletionCommandGroupID sets the group id of the completion command.\nfunc (c *Command) SetCompletionCommandGroupID(groupID string) {\n\t// completionCommandGroupID is used if no completion command is defined by the user\n\tc.Root().completionCommandGroupID = groupID\n}\n\n// SetHelpTemplate sets help template to be used. Application can use it to set custom template.\nfunc (c *Command) SetHelpTemplate(s string) {\n\tc.helpTemplate = s\n}\n\n// SetVersionTemplate sets version template to be used. Application can use it to set custom template.\nfunc (c *Command) SetVersionTemplate(s string) {\n\tc.versionTemplate = s\n}\n\n// SetErrPrefix sets error message prefix to be used. Application can use it to set custom prefix.\nfunc (c *Command) SetErrPrefix(s string) {\n\tc.errPrefix = s\n}\n\n// SetGlobalNormalizationFunc sets a normalization function to all flag sets and also to child commands.\n// The user should not have a cyclic dependency on commands.\nfunc (c *Command) SetGlobalNormalizationFunc(n func(f *flag.FlagSet, name string) flag.NormalizedName) {\n\tc.Flags().SetNormalizeFunc(n)\n\tc.PersistentFlags().SetNormalizeFunc(n)\n\tc.globNormFunc = n\n\n\tfor _, command := range c.commands {\n\t\tcommand.SetGlobalNormalizationFunc(n)\n\t}\n}\n\n// OutOrStdout returns output to stdout.\nfunc (c *Command) OutOrStdout() io.Writer {\n\treturn c.getOut(os.Stdout)\n}\n\n// OutOrStderr returns output to stderr\nfunc (c *Command) OutOrStderr() io.Writer {\n\treturn c.getOut(os.Stderr)\n}\n\n// ErrOrStderr returns output to stderr\nfunc (c *Command) ErrOrStderr() io.Writer {\n\treturn c.getErr(os.Stderr)\n}\n\n// InOrStdin returns input to stdin\nfunc (c *Command) InOrStdin() io.Reader {\n\treturn c.getIn(os.Stdin)\n}\n\nfunc (c *Command) getOut(def io.Writer) io.Writer {\n\tif c.outWriter != nil {\n\t\treturn c.outWriter\n\t}\n\tif c.HasParent() {\n\t\treturn c.parent.getOut(def)\n\t}\n\treturn def\n}\n\nfunc (c *Command) getErr(def io.Writer) io.Writer {\n\tif c.errWriter != nil {\n\t\treturn c.errWriter\n\t}\n\tif c.HasParent() {\n\t\treturn c.parent.getErr(def)\n\t}\n\treturn def\n}\n\nfunc (c *Command) getIn(def io.Reader) io.Reader {\n\tif c.inReader != nil {\n\t\treturn c.inReader\n\t}\n\tif c.HasParent() {\n\t\treturn c.parent.getIn(def)\n\t}\n\treturn def\n}\n\n// UsageFunc returns either the function set by SetUsageFunc for this command\n// or a parent, or it returns a default usage function.\nfunc (c *Command) UsageFunc() (f func(*Command) error) {\n\tif c.usageFunc != nil {\n\t\treturn c.usageFunc\n\t}\n\tif c.HasParent() {\n\t\treturn c.Parent().UsageFunc()\n\t}\n\treturn func(c *Command) error {\n\t\tc.mergePersistentFlags()\n\t\terr := tmpl(c.OutOrStderr(), c.UsageTemplate(), c)\n\t\tif err != nil {\n\t\t\tc.PrintErrln(err)\n\t\t}\n\t\treturn err\n\t}\n}\n\n// Usage puts out the usage for the command.\n// Used when a user provides invalid input.\n// Can be defined by user by overriding UsageFunc.\nfunc (c *Command) Usage() error {\n\treturn c.UsageFunc()(c)\n}\n\n// HelpFunc returns either the function set by SetHelpFunc for this command\n// or a parent, or it returns a function with default help behavior.\nfunc (c *Command) HelpFunc() func(*Command, []string) {\n\tif c.helpFunc != nil {\n\t\treturn c.helpFunc\n\t}\n\tif c.HasParent() {\n\t\treturn c.Parent().HelpFunc()\n\t}\n\treturn func(c *Command, a []string) {\n\t\tc.mergePersistentFlags()\n\t\t// The help should be sent to stdout\n\t\t// See https://github.com/spf13/cobra/issues/1002\n\t\terr := tmpl(c.OutOrStdout(), c.HelpTemplate(), c)\n\t\tif err != nil {\n\t\t\tc.PrintErrln(err)\n\t\t}\n\t}\n}\n\n// Help puts out the help for the command.\n// Used when a user calls help [command].\n// Can be defined by user by overriding HelpFunc.\nfunc (c *Command) Help() error {\n\tc.HelpFunc()(c, []string{})\n\treturn nil\n}\n\n// UsageString returns usage string.\nfunc (c *Command) UsageString() string {\n\t// Storing normal writers\n\ttmpOutput := c.outWriter\n\ttmpErr := c.errWriter\n\n\tbb := new(bytes.Buffer)\n\tc.outWriter = bb\n\tc.errWriter = bb\n\n\tCheckErr(c.Usage())\n\n\t// Setting things back to normal\n\tc.outWriter = tmpOutput\n\tc.errWriter = tmpErr\n\n\treturn bb.String()\n}\n\n// FlagErrorFunc returns either the function set by SetFlagErrorFunc for this\n// command or a parent, or it returns a function which returns the original\n// error.\nfunc (c *Command) FlagErrorFunc() (f func(*Command, error) error) {\n\tif c.flagErrorFunc != nil {\n\t\treturn c.flagErrorFunc\n\t}\n\n\tif c.HasParent() {\n\t\treturn c.parent.FlagErrorFunc()\n\t}\n\treturn func(c *Command, err error) error {\n\t\treturn err\n\t}\n}\n\nvar minUsagePadding = 25\n\n// UsagePadding return padding for the usage.\nfunc (c *Command) UsagePadding() int {\n\tif c.parent == nil || minUsagePadding > c.parent.commandsMaxUseLen {\n\t\treturn minUsagePadding\n\t}\n\treturn c.parent.commandsMaxUseLen\n}\n\nvar minCommandPathPadding = 11\n\n// CommandPathPadding return padding for the command path.\nfunc (c *Command) CommandPathPadding() int {\n\tif c.parent == nil || minCommandPathPadding > c.parent.commandsMaxCommandPathLen {\n\t\treturn minCommandPathPadding\n\t}\n\treturn c.parent.commandsMaxCommandPathLen\n}\n\nvar minNamePadding = 11\n\n// NamePadding returns padding for the name.\nfunc (c *Command) NamePadding() int {\n\tif c.parent == nil || minNamePadding > c.parent.commandsMaxNameLen {\n\t\treturn minNamePadding\n\t}\n\treturn c.parent.commandsMaxNameLen\n}\n\n// UsageTemplate returns usage template for the command.\nfunc (c *Command) UsageTemplate() string {\n\tif c.usageTemplate != \"\" {\n\t\treturn c.usageTemplate\n\t}\n\n\tif c.HasParent() {\n\t\treturn c.parent.UsageTemplate()\n\t}\n\treturn `Usage:{{if .Runnable}}\n  {{.UseLine}}{{end}}{{if .HasAvailableSubCommands}}\n  {{.CommandPath}} [command]{{end}}{{if gt (len .Aliases) 0}}\n\nAliases:\n  {{.NameAndAliases}}{{end}}{{if .HasExample}}\n\nExamples:\n{{.Example}}{{end}}{{if .HasAvailableSubCommands}}{{$cmds := .Commands}}{{if eq (len .Groups) 0}}\n\nAvailable Commands:{{range $cmds}}{{if (or .IsAvailableCommand (eq .Name \"help\"))}}\n  {{rpad .Name .NamePadding }} {{.Short}}{{end}}{{end}}{{else}}{{range $group := .Groups}}\n\n{{.Title}}{{range $cmds}}{{if (and (eq .GroupID $group.ID) (or .IsAvailableCommand (eq .Name \"help\")))}}\n  {{rpad .Name .NamePadding }} {{.Short}}{{end}}{{end}}{{end}}{{if not .AllChildCommandsHaveGroup}}\n\nAdditional Commands:{{range $cmds}}{{if (and (eq .GroupID \"\") (or .IsAvailableCommand (eq .Name \"help\")))}}\n  {{rpad .Name .NamePadding }} {{.Short}}{{end}}{{end}}{{end}}{{end}}{{end}}{{if .HasAvailableLocalFlags}}\n\nFlags:\n{{.LocalFlags.FlagUsages | trimTrailingWhitespaces}}{{end}}{{if .HasAvailableInheritedFlags}}\n\nGlobal Flags:\n{{.InheritedFlags.FlagUsages | trimTrailingWhitespaces}}{{end}}{{if .HasHelpSubCommands}}\n\nAdditional help topics:{{range .Commands}}{{if .IsAdditionalHelpTopicCommand}}\n  {{rpad .CommandPath .CommandPathPadding}} {{.Short}}{{end}}{{end}}{{end}}{{if .HasAvailableSubCommands}}\n\nUse \"{{.CommandPath}} [command] --help\" for more information about a command.{{end}}\n`\n}\n\n// HelpTemplate return help template for the command.\nfunc (c *Command) HelpTemplate() string {\n\tif c.helpTemplate != \"\" {\n\t\treturn c.helpTemplate\n\t}\n\n\tif c.HasParent() {\n\t\treturn c.parent.HelpTemplate()\n\t}\n\treturn `{{with (or .Long .Short)}}{{. | trimTrailingWhitespaces}}\n\n{{end}}{{if or .Runnable .HasSubCommands}}{{.UsageString}}{{end}}`\n}\n\n// VersionTemplate return version template for the command.\nfunc (c *Command) VersionTemplate() string {\n\tif c.versionTemplate != \"\" {\n\t\treturn c.versionTemplate\n\t}\n\n\tif c.HasParent() {\n\t\treturn c.parent.VersionTemplate()\n\t}\n\treturn `{{with .Name}}{{printf \"%s \" .}}{{end}}{{printf \"version %s\" .Version}}\n`\n}\n\n// ErrPrefix return error message prefix for the command\nfunc (c *Command) ErrPrefix() string {\n\tif c.errPrefix != \"\" {\n\t\treturn c.errPrefix\n\t}\n\n\tif c.HasParent() {\n\t\treturn c.parent.ErrPrefix()\n\t}\n\treturn \"Error:\"\n}\n\nfunc hasNoOptDefVal(name string, fs *flag.FlagSet) bool {\n\tflag := fs.Lookup(name)\n\tif flag == nil {\n\t\treturn false\n\t}\n\treturn flag.NoOptDefVal != \"\"\n}\n\nfunc shortHasNoOptDefVal(name string, fs *flag.FlagSet) bool {\n\tif len(name) == 0 {\n\t\treturn false\n\t}\n\n\tflag := fs.ShorthandLookup(name[:1])\n\tif flag == nil {\n\t\treturn false\n\t}\n\treturn flag.NoOptDefVal != \"\"\n}\n\nfunc stripFlags(args []string, c *Command) []string {\n\tif len(args) == 0 {\n\t\treturn args\n\t}\n\tc.mergePersistentFlags()\n\n\tcommands := []string{}\n\tflags := c.Flags()\n\nLoop:\n\tfor len(args) > 0 {\n\t\ts := args[0]\n\t\targs = args[1:]\n\t\tswitch {\n\t\tcase s == \"--\":\n\t\t\t// \"--\" terminates the flags\n\t\t\tbreak Loop\n\t\tcase strings.HasPrefix(s, \"--\") && !strings.Contains(s, \"=\") && !hasNoOptDefVal(s[2:], flags):\n\t\t\t// If '--flag arg' then\n\t\t\t// delete arg from args.\n\t\t\tfallthrough // (do the same as below)\n\t\tcase strings.HasPrefix(s, \"-\") && !strings.Contains(s, \"=\") && len(s) == 2 && !shortHasNoOptDefVal(s[1:], flags):\n\t\t\t// If '-f arg' then\n\t\t\t// delete 'arg' from args or break the loop if len(args) <= 1.\n\t\t\tif len(args) <= 1 {\n\t\t\t\tbreak Loop\n\t\t\t} else {\n\t\t\t\targs = args[1:]\n\t\t\t\tcontinue\n\t\t\t}\n\t\tcase s != \"\" && !strings.HasPrefix(s, \"-\"):\n\t\t\tcommands = append(commands, s)\n\t\t}\n\t}\n\n\treturn commands\n}\n\n// argsMinusFirstX removes only the first x from args.  Otherwise, commands that look like\n// openshift admin policy add-role-to-user admin my-user, lose the admin argument (arg[4]).\n// Special care needs to be taken not to remove a flag value.\nfunc (c *Command) argsMinusFirstX(args []string, x string) []string {\n\tif len(args) == 0 {\n\t\treturn args\n\t}\n\tc.mergePersistentFlags()\n\tflags := c.Flags()\n\nLoop:\n\tfor pos := 0; pos < len(args); pos++ {\n\t\ts := args[pos]\n\t\tswitch {\n\t\tcase s == \"--\":\n\t\t\t// -- means we have reached the end of the parseable args. Break out of the loop now.\n\t\t\tbreak Loop\n\t\tcase strings.HasPrefix(s, \"--\") && !strings.Contains(s, \"=\") && !hasNoOptDefVal(s[2:], flags):\n\t\t\tfallthrough\n\t\tcase strings.HasPrefix(s, \"-\") && !strings.Contains(s, \"=\") && len(s) == 2 && !shortHasNoOptDefVal(s[1:], flags):\n\t\t\t// This is a flag without a default value, and an equal sign is not used. Increment pos in order to skip\n\t\t\t// over the next arg, because that is the value of this flag.\n\t\t\tpos++\n\t\t\tcontinue\n\t\tcase !strings.HasPrefix(s, \"-\"):\n\t\t\t// This is not a flag or a flag value. Check to see if it matches what we're looking for, and if so,\n\t\t\t// return the args, excluding the one at this position.\n\t\t\tif s == x {\n\t\t\t\tret := make([]string, 0, len(args)-1)\n\t\t\t\tret = append(ret, args[:pos]...)\n\t\t\t\tret = append(ret, args[pos+1:]...)\n\t\t\t\treturn ret\n\t\t\t}\n\t\t}\n\t}\n\treturn args\n}\n\nfunc isFlagArg(arg string) bool {\n\treturn ((len(arg) >= 3 && arg[0:2] == \"--\") ||\n\t\t(len(arg) >= 2 && arg[0] == '-' && arg[1] != '-'))\n}\n\n// Find the target command given the args and command tree\n// Meant to be run on the highest node. Only searches down.\nfunc (c *Command) Find(args []string) (*Command, []string, error) {\n\tvar innerfind func(*Command, []string) (*Command, []string)\n\n\tinnerfind = func(c *Command, innerArgs []string) (*Command, []string) {\n\t\targsWOflags := stripFlags(innerArgs, c)\n\t\tif len(argsWOflags) == 0 {\n\t\t\treturn c, innerArgs\n\t\t}\n\t\tnextSubCmd := argsWOflags[0]\n\n\t\tcmd := c.findNext(nextSubCmd)\n\t\tif cmd != nil {\n\t\t\treturn innerfind(cmd, c.argsMinusFirstX(innerArgs, nextSubCmd))\n\t\t}\n\t\treturn c, innerArgs\n\t}\n\n\tcommandFound, a := innerfind(c, args)\n\tif commandFound.Args == nil {\n\t\treturn commandFound, a, legacyArgs(commandFound, stripFlags(a, commandFound))\n\t}\n\treturn commandFound, a, nil\n}\n\nfunc (c *Command) findSuggestions(arg string) string {\n\tif c.DisableSuggestions {\n\t\treturn \"\"\n\t}\n\tif c.SuggestionsMinimumDistance <= 0 {\n\t\tc.SuggestionsMinimumDistance = 2\n\t}\n\tvar sb strings.Builder\n\tif suggestions := c.SuggestionsFor(arg); len(suggestions) > 0 {\n\t\tsb.WriteString(\"\\n\\nDid you mean this?\\n\")\n\t\tfor _, s := range suggestions {\n\t\t\t_, _ = fmt.Fprintf(&sb, \"\\t%v\\n\", s)\n\t\t}\n\t}\n\treturn sb.String()\n}\n\nfunc (c *Command) findNext(next string) *Command {\n\tmatches := make([]*Command, 0)\n\tfor _, cmd := range c.commands {\n\t\tif commandNameMatches(cmd.Name(), next) || cmd.HasAlias(next) {\n\t\t\tcmd.commandCalledAs.name = next\n\t\t\treturn cmd\n\t\t}\n\t\tif EnablePrefixMatching && cmd.hasNameOrAliasPrefix(next) {\n\t\t\tmatches = append(matches, cmd)\n\t\t}\n\t}\n\n\tif len(matches) == 1 {\n\t\t// Temporarily disable gosec G602, which produces a false positive.\n\t\t// See https://github.com/securego/gosec/issues/1005.\n\t\treturn matches[0] // #nosec G602\n\t}\n\n\treturn nil\n}\n\n// Traverse the command tree to find the command, and parse args for\n// each parent.\nfunc (c *Command) Traverse(args []string) (*Command, []string, error) {\n\tflags := []string{}\n\tinFlag := false\n\n\tfor i, arg := range args {\n\t\tswitch {\n\t\t// A long flag with a space separated value\n\t\tcase strings.HasPrefix(arg, \"--\") && !strings.Contains(arg, \"=\"):\n\t\t\t// TODO: this isn't quite right, we should really check ahead for 'true' or 'false'\n\t\t\tinFlag = !hasNoOptDefVal(arg[2:], c.Flags())\n\t\t\tflags = append(flags, arg)\n\t\t\tcontinue\n\t\t// A short flag with a space separated value\n\t\tcase strings.HasPrefix(arg, \"-\") && !strings.Contains(arg, \"=\") && len(arg) == 2 && !shortHasNoOptDefVal(arg[1:], c.Flags()):\n\t\t\tinFlag = true\n\t\t\tflags = append(flags, arg)\n\t\t\tcontinue\n\t\t// The value for a flag\n\t\tcase inFlag:\n\t\t\tinFlag = false\n\t\t\tflags = append(flags, arg)\n\t\t\tcontinue\n\t\t// A flag without a value, or with an `=` separated value\n\t\tcase isFlagArg(arg):\n\t\t\tflags = append(flags, arg)\n\t\t\tcontinue\n\t\t}\n\n\t\tcmd := c.findNext(arg)\n\t\tif cmd == nil {\n\t\t\treturn c, args, nil\n\t\t}\n\n\t\tif err := c.ParseFlags(flags); err != nil {\n\t\t\treturn nil, args, err\n\t\t}\n\t\treturn cmd.Traverse(args[i+1:])\n\t}\n\treturn c, args, nil\n}\n\n// SuggestionsFor provides suggestions for the typedName.\nfunc (c *Command) SuggestionsFor(typedName string) []string {\n\tsuggestions := []string{}\n\tfor _, cmd := range c.commands {\n\t\tif cmd.IsAvailableCommand() {\n\t\t\tlevenshteinDistance := ld(typedName, cmd.Name(), true)\n\t\t\tsuggestByLevenshtein := levenshteinDistance <= c.SuggestionsMinimumDistance\n\t\t\tsuggestByPrefix := strings.HasPrefix(strings.ToLower(cmd.Name()), strings.ToLower(typedName))\n\t\t\tif suggestByLevenshtein || suggestByPrefix {\n\t\t\t\tsuggestions = append(suggestions, cmd.Name())\n\t\t\t}\n\t\t\tfor _, explicitSuggestion := range cmd.SuggestFor {\n\t\t\t\tif strings.EqualFold(typedName, explicitSuggestion) {\n\t\t\t\t\tsuggestions = append(suggestions, cmd.Name())\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn suggestions\n}\n\n// VisitParents visits all parents of the command and invokes fn on each parent.\nfunc (c *Command) VisitParents(fn func(*Command)) {\n\tif c.HasParent() {\n\t\tfn(c.Parent())\n\t\tc.Parent().VisitParents(fn)\n\t}\n}\n\n// Root finds root command.\nfunc (c *Command) Root() *Command {\n\tif c.HasParent() {\n\t\treturn c.Parent().Root()\n\t}\n\treturn c\n}\n\n// ArgsLenAtDash will return the length of c.Flags().Args at the moment\n// when a -- was found during args parsing.\nfunc (c *Command) ArgsLenAtDash() int {\n\treturn c.Flags().ArgsLenAtDash()\n}\n\nfunc (c *Command) execute(a []string) (err error) {\n\tif c == nil {\n\t\treturn fmt.Errorf(\"called Execute() on a nil Command\")\n\t}\n\n\tif len(c.Deprecated) > 0 {\n\t\tc.Printf(\"Command %q is deprecated, %s\\n\", c.Name(), c.Deprecated)\n\t}\n\n\t// initialize help and version flag at the last point possible to allow for user\n\t// overriding\n\tc.InitDefaultHelpFlag()\n\tc.InitDefaultVersionFlag()\n\n\terr = c.ParseFlags(a)\n\tif err != nil {\n\t\treturn c.FlagErrorFunc()(c, err)\n\t}\n\n\t// If help is called, regardless of other flags, return we want help.\n\t// Also say we need help if the command isn't runnable.\n\thelpVal, err := c.Flags().GetBool(\"help\")\n\tif err != nil {\n\t\t// should be impossible to get here as we always declare a help\n\t\t// flag in InitDefaultHelpFlag()\n\t\tc.Println(\"\\\"help\\\" flag declared as non-bool. Please correct your code\")\n\t\treturn err\n\t}\n\n\tif helpVal {\n\t\treturn flag.ErrHelp\n\t}\n\n\t// for back-compat, only add version flag behavior if version is defined\n\tif c.Version != \"\" {\n\t\tversionVal, err := c.Flags().GetBool(\"version\")\n\t\tif err != nil {\n\t\t\tc.Println(\"\\\"version\\\" flag declared as non-bool. Please correct your code\")\n\t\t\treturn err\n\t\t}\n\t\tif versionVal {\n\t\t\terr := tmpl(c.OutOrStdout(), c.VersionTemplate(), c)\n\t\t\tif err != nil {\n\t\t\t\tc.Println(err)\n\t\t\t}\n\t\t\treturn err\n\t\t}\n\t}\n\n\tif !c.Runnable() {\n\t\treturn flag.ErrHelp\n\t}\n\n\tc.preRun()\n\n\tdefer c.postRun()\n\n\targWoFlags := c.Flags().Args()\n\tif c.DisableFlagParsing {\n\t\targWoFlags = a\n\t}\n\n\tif err := c.ValidateArgs(argWoFlags); err != nil {\n\t\treturn err\n\t}\n\n\tparents := make([]*Command, 0, 5)\n\tfor p := c; p != nil; p = p.Parent() {\n\t\tif EnableTraverseRunHooks {\n\t\t\t// When EnableTraverseRunHooks is set:\n\t\t\t// - Execute all persistent pre-runs from the root parent till this command.\n\t\t\t// - Execute all persistent post-runs from this command till the root parent.\n\t\t\tparents = append([]*Command{p}, parents...)\n\t\t} else {\n\t\t\t// Otherwise, execute only the first found persistent hook.\n\t\t\tparents = append(parents, p)\n\t\t}\n\t}\n\tfor _, p := range parents {\n\t\tif p.PersistentPreRunE != nil {\n\t\t\tif err := p.PersistentPreRunE(c, argWoFlags); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif !EnableTraverseRunHooks {\n\t\t\t\tbreak\n\t\t\t}\n\t\t} else if p.PersistentPreRun != nil {\n\t\t\tp.PersistentPreRun(c, argWoFlags)\n\t\t\tif !EnableTraverseRunHooks {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\tif c.PreRunE != nil {\n\t\tif err := c.PreRunE(c, argWoFlags); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else if c.PreRun != nil {\n\t\tc.PreRun(c, argWoFlags)\n\t}\n\n\tif err := c.ValidateRequiredFlags(); err != nil {\n\t\treturn err\n\t}\n\tif err := c.ValidateFlagGroups(); err != nil {\n\t\treturn err\n\t}\n\n\tif c.RunE != nil {\n\t\tif err := c.RunE(c, argWoFlags); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tc.Run(c, argWoFlags)\n\t}\n\tif c.PostRunE != nil {\n\t\tif err := c.PostRunE(c, argWoFlags); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else if c.PostRun != nil {\n\t\tc.PostRun(c, argWoFlags)\n\t}\n\tfor p := c; p != nil; p = p.Parent() {\n\t\tif p.PersistentPostRunE != nil {\n\t\t\tif err := p.PersistentPostRunE(c, argWoFlags); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif !EnableTraverseRunHooks {\n\t\t\t\tbreak\n\t\t\t}\n\t\t} else if p.PersistentPostRun != nil {\n\t\t\tp.PersistentPostRun(c, argWoFlags)\n\t\t\tif !EnableTraverseRunHooks {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc (c *Command) preRun() {\n\tfor _, x := range initializers {\n\t\tx()\n\t}\n}\n\nfunc (c *Command) postRun() {\n\tfor _, x := range finalizers {\n\t\tx()\n\t}\n}\n\n// ExecuteContext is the same as Execute(), but sets the ctx on the command.\n// Retrieve ctx by calling cmd.Context() inside your *Run lifecycle or ValidArgs\n// functions.\nfunc (c *Command) ExecuteContext(ctx context.Context) error {\n\tc.ctx = ctx\n\treturn c.Execute()\n}\n\n// Execute uses the args (os.Args[1:] by default)\n// and run through the command tree finding appropriate matches\n// for commands and then corresponding flags.\nfunc (c *Command) Execute() error {\n\t_, err := c.ExecuteC()\n\treturn err\n}\n\n// ExecuteContextC is the same as ExecuteC(), but sets the ctx on the command.\n// Retrieve ctx by calling cmd.Context() inside your *Run lifecycle or ValidArgs\n// functions.\nfunc (c *Command) ExecuteContextC(ctx context.Context) (*Command, error) {\n\tc.ctx = ctx\n\treturn c.ExecuteC()\n}\n\n// ExecuteC executes the command.\nfunc (c *Command) ExecuteC() (cmd *Command, err error) {\n\tif c.ctx == nil {\n\t\tc.ctx = context.Background()\n\t}\n\n\t// Regardless of what command execute is called on, run on Root only\n\tif c.HasParent() {\n\t\treturn c.Root().ExecuteC()\n\t}\n\n\t// windows hook\n\tif preExecHookFn != nil {\n\t\tpreExecHookFn(c)\n\t}\n\n\t// initialize help at the last point to allow for user overriding\n\tc.InitDefaultHelpCmd()\n\t// initialize completion at the last point to allow for user overriding\n\tc.InitDefaultCompletionCmd()\n\n\t// Now that all commands have been created, let's make sure all groups\n\t// are properly created also\n\tc.checkCommandGroups()\n\n\targs := c.args\n\n\t// Workaround FAIL with \"go test -v\" or \"cobra.test -test.v\", see #155\n\tif c.args == nil && filepath.Base(os.Args[0]) != \"cobra.test\" {\n\t\targs = os.Args[1:]\n\t}\n\n\t// initialize the hidden command to be used for shell completion\n\tc.initCompleteCmd(args)\n\n\tvar flags []string\n\tif c.TraverseChildren {\n\t\tcmd, flags, err = c.Traverse(args)\n\t} else {\n\t\tcmd, flags, err = c.Find(args)\n\t}\n\tif err != nil {\n\t\t// If found parse to a subcommand and then failed, talk about the subcommand\n\t\tif cmd != nil {\n\t\t\tc = cmd\n\t\t}\n\t\tif !c.SilenceErrors {\n\t\t\tc.PrintErrln(c.ErrPrefix(), err.Error())\n\t\t\tc.PrintErrf(\"Run '%v --help' for usage.\\n\", c.CommandPath())\n\t\t}\n\t\treturn c, err\n\t}\n\n\tcmd.commandCalledAs.called = true\n\tif cmd.commandCalledAs.name == \"\" {\n\t\tcmd.commandCalledAs.name = cmd.Name()\n\t}\n\n\t// We have to pass global context to children command\n\t// if context is present on the parent command.\n\tif cmd.ctx == nil {\n\t\tcmd.ctx = c.ctx\n\t}\n\n\terr = cmd.execute(flags)\n\tif err != nil {\n\t\t// Always show help if requested, even if SilenceErrors is in\n\t\t// effect\n\t\tif errors.Is(err, flag.ErrHelp) {\n\t\t\tcmd.HelpFunc()(cmd, args)\n\t\t\treturn cmd, nil\n\t\t}\n\n\t\t// If root command has SilenceErrors flagged,\n\t\t// all subcommands should respect it\n\t\tif !cmd.SilenceErrors && !c.SilenceErrors {\n\t\t\tc.PrintErrln(cmd.ErrPrefix(), err.Error())\n\t\t}\n\n\t\t// If root command has SilenceUsage flagged,\n\t\t// all subcommands should respect it\n\t\tif !cmd.SilenceUsage && !c.SilenceUsage {\n\t\t\tc.Println(cmd.UsageString())\n\t\t}\n\t}\n\treturn cmd, err\n}\n\nfunc (c *Command) ValidateArgs(args []string) error {\n\tif c.Args == nil {\n\t\treturn ArbitraryArgs(c, args)\n\t}\n\treturn c.Args(c, args)\n}\n\n// ValidateRequiredFlags validates all required flags are present and returns an error otherwise\nfunc (c *Command) ValidateRequiredFlags() error {\n\tif c.DisableFlagParsing {\n\t\treturn nil\n\t}\n\n\tflags := c.Flags()\n\tmissingFlagNames := []string{}\n\tflags.VisitAll(func(pflag *flag.Flag) {\n\t\trequiredAnnotation, found := pflag.Annotations[BashCompOneRequiredFlag]\n\t\tif !found {\n\t\t\treturn\n\t\t}\n\t\tif (requiredAnnotation[0] == \"true\") && !pflag.Changed {\n\t\t\tmissingFlagNames = append(missingFlagNames, pflag.Name)\n\t\t}\n\t})\n\n\tif len(missingFlagNames) > 0 {\n\t\treturn fmt.Errorf(`required flag(s) \"%s\" not set`, strings.Join(missingFlagNames, `\", \"`))\n\t}\n\treturn nil\n}\n\n// checkCommandGroups checks if a command has been added to a group that does not exists.\n// If so, we panic because it indicates a coding error that should be corrected.\nfunc (c *Command) checkCommandGroups() {\n\tfor _, sub := range c.commands {\n\t\t// if Group is not defined let the developer know right away\n\t\tif sub.GroupID != \"\" && !c.ContainsGroup(sub.GroupID) {\n\t\t\tpanic(fmt.Sprintf(\"group id '%s' is not defined for subcommand '%s'\", sub.GroupID, sub.CommandPath()))\n\t\t}\n\n\t\tsub.checkCommandGroups()\n\t}\n}\n\n// InitDefaultHelpFlag adds default help flag to c.\n// It is called automatically by executing the c or by calling help and usage.\n// If c already has help flag, it will do nothing.\nfunc (c *Command) InitDefaultHelpFlag() {\n\tc.mergePersistentFlags()\n\tif c.Flags().Lookup(\"help\") == nil {\n\t\tusage := \"help for \"\n\t\tname := c.displayName()\n\t\tif name == \"\" {\n\t\t\tusage += \"this command\"\n\t\t} else {\n\t\t\tusage += name\n\t\t}\n\t\tc.Flags().BoolP(\"help\", \"h\", false, usage)\n\t\t_ = c.Flags().SetAnnotation(\"help\", FlagSetByCobraAnnotation, []string{\"true\"})\n\t}\n}\n\n// InitDefaultVersionFlag adds default version flag to c.\n// It is called automatically by executing the c.\n// If c already has a version flag, it will do nothing.\n// If c.Version is empty, it will do nothing.\nfunc (c *Command) InitDefaultVersionFlag() {\n\tif c.Version == \"\" {\n\t\treturn\n\t}\n\n\tc.mergePersistentFlags()\n\tif c.Flags().Lookup(\"version\") == nil {\n\t\tusage := \"version for \"\n\t\tif c.Name() == \"\" {\n\t\t\tusage += \"this command\"\n\t\t} else {\n\t\t\tusage += c.Name()\n\t\t}\n\t\tif c.Flags().ShorthandLookup(\"v\") == nil {\n\t\t\tc.Flags().BoolP(\"version\", \"v\", false, usage)\n\t\t} else {\n\t\t\tc.Flags().Bool(\"version\", false, usage)\n\t\t}\n\t\t_ = c.Flags().SetAnnotation(\"version\", FlagSetByCobraAnnotation, []string{\"true\"})\n\t}\n}\n\n// InitDefaultHelpCmd adds default help command to c.\n// It is called automatically by executing the c or by calling help and usage.\n// If c already has help command or c has no subcommands, it will do nothing.\nfunc (c *Command) InitDefaultHelpCmd() {\n\tif !c.HasSubCommands() {\n\t\treturn\n\t}\n\n\tif c.helpCommand == nil {\n\t\tc.helpCommand = &Command{\n\t\t\tUse:   \"help [command]\",\n\t\t\tShort: \"Help about any command\",\n\t\t\tLong: `Help provides help for any command in the application.\nSimply type ` + c.displayName() + ` help [path to command] for full details.`,\n\t\t\tValidArgsFunction: func(c *Command, args []string, toComplete string) ([]string, ShellCompDirective) {\n\t\t\t\tvar completions []string\n\t\t\t\tcmd, _, e := c.Root().Find(args)\n\t\t\t\tif e != nil {\n\t\t\t\t\treturn nil, ShellCompDirectiveNoFileComp\n\t\t\t\t}\n\t\t\t\tif cmd == nil {\n\t\t\t\t\t// Root help command.\n\t\t\t\t\tcmd = c.Root()\n\t\t\t\t}\n\t\t\t\tfor _, subCmd := range cmd.Commands() {\n\t\t\t\t\tif subCmd.IsAvailableCommand() || subCmd == cmd.helpCommand {\n\t\t\t\t\t\tif strings.HasPrefix(subCmd.Name(), toComplete) {\n\t\t\t\t\t\t\tcompletions = append(completions, fmt.Sprintf(\"%s\\t%s\", subCmd.Name(), subCmd.Short))\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn completions, ShellCompDirectiveNoFileComp\n\t\t\t},\n\t\t\tRun: func(c *Command, args []string) {\n\t\t\t\tcmd, _, e := c.Root().Find(args)\n\t\t\t\tif cmd == nil || e != nil {\n\t\t\t\t\tc.Printf(\"Unknown help topic %#q\\n\", args)\n\t\t\t\t\tCheckErr(c.Root().Usage())\n\t\t\t\t} else {\n\t\t\t\t\tcmd.InitDefaultHelpFlag()    // make possible 'help' flag to be shown\n\t\t\t\t\tcmd.InitDefaultVersionFlag() // make possible 'version' flag to be shown\n\t\t\t\t\tCheckErr(cmd.Help())\n\t\t\t\t}\n\t\t\t},\n\t\t\tGroupID: c.helpCommandGroupID,\n\t\t}\n\t}\n\tc.RemoveCommand(c.helpCommand)\n\tc.AddCommand(c.helpCommand)\n}\n\n// ResetCommands delete parent, subcommand and help command from c.\nfunc (c *Command) ResetCommands() {\n\tc.parent = nil\n\tc.commands = nil\n\tc.helpCommand = nil\n\tc.parentsPflags = nil\n}\n\n// Sorts commands by their names.\ntype commandSorterByName []*Command\n\nfunc (c commandSorterByName) Len() int           { return len(c) }\nfunc (c commandSorterByName) Swap(i, j int)      { c[i], c[j] = c[j], c[i] }\nfunc (c commandSorterByName) Less(i, j int) bool { return c[i].Name() < c[j].Name() }\n\n// Commands returns a sorted slice of child commands.\nfunc (c *Command) Commands() []*Command {\n\t// do not sort commands if it already sorted or sorting was disabled\n\tif EnableCommandSorting && !c.commandsAreSorted {\n\t\tsort.Sort(commandSorterByName(c.commands))\n\t\tc.commandsAreSorted = true\n\t}\n\treturn c.commands\n}\n\n// AddCommand adds one or more commands to this parent command.\nfunc (c *Command) AddCommand(cmds ...*Command) {\n\tfor i, x := range cmds {\n\t\tif cmds[i] == c {\n\t\t\tpanic(\"Command can't be a child of itself\")\n\t\t}\n\t\tcmds[i].parent = c\n\t\t// update max lengths\n\t\tusageLen := len(x.Use)\n\t\tif usageLen > c.commandsMaxUseLen {\n\t\t\tc.commandsMaxUseLen = usageLen\n\t\t}\n\t\tcommandPathLen := len(x.CommandPath())\n\t\tif commandPathLen > c.commandsMaxCommandPathLen {\n\t\t\tc.commandsMaxCommandPathLen = commandPathLen\n\t\t}\n\t\tnameLen := len(x.Name())\n\t\tif nameLen > c.commandsMaxNameLen {\n\t\t\tc.commandsMaxNameLen = nameLen\n\t\t}\n\t\t// If global normalization function exists, update all children\n\t\tif c.globNormFunc != nil {\n\t\t\tx.SetGlobalNormalizationFunc(c.globNormFunc)\n\t\t}\n\t\tc.commands = append(c.commands, x)\n\t\tc.commandsAreSorted = false\n\t}\n}\n\n// Groups returns a slice of child command groups.\nfunc (c *Command) Groups() []*Group {\n\treturn c.commandgroups\n}\n\n// AllChildCommandsHaveGroup returns if all subcommands are assigned to a group\nfunc (c *Command) AllChildCommandsHaveGroup() bool {\n\tfor _, sub := range c.commands {\n\t\tif (sub.IsAvailableCommand() || sub == c.helpCommand) && sub.GroupID == \"\" {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// ContainsGroup return if groupID exists in the list of command groups.\nfunc (c *Command) ContainsGroup(groupID string) bool {\n\tfor _, x := range c.commandgroups {\n\t\tif x.ID == groupID {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// AddGroup adds one or more command groups to this parent command.\nfunc (c *Command) AddGroup(groups ...*Group) {\n\tc.commandgroups = append(c.commandgroups, groups...)\n}\n\n// RemoveCommand removes one or more commands from a parent command.\nfunc (c *Command) RemoveCommand(cmds ...*Command) {\n\tcommands := []*Command{}\nmain:\n\tfor _, command := range c.commands {\n\t\tfor _, cmd := range cmds {\n\t\t\tif command == cmd {\n\t\t\t\tcommand.parent = nil\n\t\t\t\tcontinue main\n\t\t\t}\n\t\t}\n\t\tcommands = append(commands, command)\n\t}\n\tc.commands = commands\n\t// recompute all lengths\n\tc.commandsMaxUseLen = 0\n\tc.commandsMaxCommandPathLen = 0\n\tc.commandsMaxNameLen = 0\n\tfor _, command := range c.commands {\n\t\tusageLen := len(command.Use)\n\t\tif usageLen > c.commandsMaxUseLen {\n\t\t\tc.commandsMaxUseLen = usageLen\n\t\t}\n\t\tcommandPathLen := len(command.CommandPath())\n\t\tif commandPathLen > c.commandsMaxCommandPathLen {\n\t\t\tc.commandsMaxCommandPathLen = commandPathLen\n\t\t}\n\t\tnameLen := len(command.Name())\n\t\tif nameLen > c.commandsMaxNameLen {\n\t\t\tc.commandsMaxNameLen = nameLen\n\t\t}\n\t}\n}\n\n// Print is a convenience method to Print to the defined output, fallback to Stderr if not set.\nfunc (c *Command) Print(i ...interface{}) {\n\tfmt.Fprint(c.OutOrStderr(), i...)\n}\n\n// Println is a convenience method to Println to the defined output, fallback to Stderr if not set.\nfunc (c *Command) Println(i ...interface{}) {\n\tc.Print(fmt.Sprintln(i...))\n}\n\n// Printf is a convenience method to Printf to the defined output, fallback to Stderr if not set.\nfunc (c *Command) Printf(format string, i ...interface{}) {\n\tc.Print(fmt.Sprintf(format, i...))\n}\n\n// PrintErr is a convenience method to Print to the defined Err output, fallback to Stderr if not set.\nfunc (c *Command) PrintErr(i ...interface{}) {\n\tfmt.Fprint(c.ErrOrStderr(), i...)\n}\n\n// PrintErrln is a convenience method to Println to the defined Err output, fallback to Stderr if not set.\nfunc (c *Command) PrintErrln(i ...interface{}) {\n\tc.PrintErr(fmt.Sprintln(i...))\n}\n\n// PrintErrf is a convenience method to Printf to the defined Err output, fallback to Stderr if not set.\nfunc (c *Command) PrintErrf(format string, i ...interface{}) {\n\tc.PrintErr(fmt.Sprintf(format, i...))\n}\n\n// CommandPath returns the full path to this command.\nfunc (c *Command) CommandPath() string {\n\tif c.HasParent() {\n\t\treturn c.Parent().CommandPath() + \" \" + c.Name()\n\t}\n\treturn c.displayName()\n}\n\nfunc (c *Command) displayName() string {\n\tif displayName, ok := c.Annotations[CommandDisplayNameAnnotation]; ok {\n\t\treturn displayName\n\t}\n\treturn c.Name()\n}\n\n// UseLine puts out the full usage for a given command (including parents).\nfunc (c *Command) UseLine() string {\n\tvar useline string\n\tuse := strings.Replace(c.Use, c.Name(), c.displayName(), 1)\n\tif c.HasParent() {\n\t\tuseline = c.parent.CommandPath() + \" \" + use\n\t} else {\n\t\tuseline = use\n\t}\n\tif c.DisableFlagsInUseLine {\n\t\treturn useline\n\t}\n\tif c.HasAvailableFlags() && !strings.Contains(useline, \"[flags]\") {\n\t\tuseline += \" [flags]\"\n\t}\n\treturn useline\n}\n\n// DebugFlags used to determine which flags have been assigned to which commands\n// and which persist.\nfunc (c *Command) DebugFlags() {\n\tc.Println(\"DebugFlags called on\", c.Name())\n\tvar debugflags func(*Command)\n\n\tdebugflags = func(x *Command) {\n\t\tif x.HasFlags() || x.HasPersistentFlags() {\n\t\t\tc.Println(x.Name())\n\t\t}\n\t\tif x.HasFlags() {\n\t\t\tx.flags.VisitAll(func(f *flag.Flag) {\n\t\t\t\tif x.HasPersistentFlags() && x.persistentFlag(f.Name) != nil {\n\t\t\t\t\tc.Println(\"  -\"+f.Shorthand+\",\", \"--\"+f.Name, \"[\"+f.DefValue+\"]\", \"\", f.Value, \"  [LP]\")\n\t\t\t\t} else {\n\t\t\t\t\tc.Println(\"  -\"+f.Shorthand+\",\", \"--\"+f.Name, \"[\"+f.DefValue+\"]\", \"\", f.Value, \"  [L]\")\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t\tif x.HasPersistentFlags() {\n\t\t\tx.pflags.VisitAll(func(f *flag.Flag) {\n\t\t\t\tif x.HasFlags() {\n\t\t\t\t\tif x.flags.Lookup(f.Name) == nil {\n\t\t\t\t\t\tc.Println(\"  -\"+f.Shorthand+\",\", \"--\"+f.Name, \"[\"+f.DefValue+\"]\", \"\", f.Value, \"  [P]\")\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tc.Println(\"  -\"+f.Shorthand+\",\", \"--\"+f.Name, \"[\"+f.DefValue+\"]\", \"\", f.Value, \"  [P]\")\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t\tc.Println(x.flagErrorBuf)\n\t\tif x.HasSubCommands() {\n\t\t\tfor _, y := range x.commands {\n\t\t\t\tdebugflags(y)\n\t\t\t}\n\t\t}\n\t}\n\n\tdebugflags(c)\n}\n\n// Name returns the command's name: the first word in the use line.\nfunc (c *Command) Name() string {\n\tname := c.Use\n\ti := strings.Index(name, \" \")\n\tif i >= 0 {\n\t\tname = name[:i]\n\t}\n\treturn name\n}\n\n// HasAlias determines if a given string is an alias of the command.\nfunc (c *Command) HasAlias(s string) bool {\n\tfor _, a := range c.Aliases {\n\t\tif commandNameMatches(a, s) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// CalledAs returns the command name or alias that was used to invoke\n// this command or an empty string if the command has not been called.\nfunc (c *Command) CalledAs() string {\n\tif c.commandCalledAs.called {\n\t\treturn c.commandCalledAs.name\n\t}\n\treturn \"\"\n}\n\n// hasNameOrAliasPrefix returns true if the Name or any of aliases start\n// with prefix\nfunc (c *Command) hasNameOrAliasPrefix(prefix string) bool {\n\tif strings.HasPrefix(c.Name(), prefix) {\n\t\tc.commandCalledAs.name = c.Name()\n\t\treturn true\n\t}\n\tfor _, alias := range c.Aliases {\n\t\tif strings.HasPrefix(alias, prefix) {\n\t\t\tc.commandCalledAs.name = alias\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// NameAndAliases returns a list of the command name and all aliases\nfunc (c *Command) NameAndAliases() string {\n\treturn strings.Join(append([]string{c.Name()}, c.Aliases...), \", \")\n}\n\n// HasExample determines if the command has example.\nfunc (c *Command) HasExample() bool {\n\treturn len(c.Example) > 0\n}\n\n// Runnable determines if the command is itself runnable.\nfunc (c *Command) Runnable() bool {\n\treturn c.Run != nil || c.RunE != nil\n}\n\n// HasSubCommands determines if the command has children commands.\nfunc (c *Command) HasSubCommands() bool {\n\treturn len(c.commands) > 0\n}\n\n// IsAvailableCommand determines if a command is available as a non-help command\n// (this includes all non deprecated/hidden commands).\nfunc (c *Command) IsAvailableCommand() bool {\n\tif len(c.Deprecated) != 0 || c.Hidden {\n\t\treturn false\n\t}\n\n\tif c.HasParent() && c.Parent().helpCommand == c {\n\t\treturn false\n\t}\n\n\tif c.Runnable() || c.HasAvailableSubCommands() {\n\t\treturn true\n\t}\n\n\treturn false\n}\n\n// IsAdditionalHelpTopicCommand determines if a command is an additional\n// help topic command; additional help topic command is determined by the\n// fact that it is NOT runnable/hidden/deprecated, and has no sub commands that\n// are runnable/hidden/deprecated.\n// Concrete example: https://github.com/spf13/cobra/issues/393#issuecomment-282741924.\nfunc (c *Command) IsAdditionalHelpTopicCommand() bool {\n\t// if a command is runnable, deprecated, or hidden it is not a 'help' command\n\tif c.Runnable() || len(c.Deprecated) != 0 || c.Hidden {\n\t\treturn false\n\t}\n\n\t// if any non-help sub commands are found, the command is not a 'help' command\n\tfor _, sub := range c.commands {\n\t\tif !sub.IsAdditionalHelpTopicCommand() {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// the command either has no sub commands, or no non-help sub commands\n\treturn true\n}\n\n// HasHelpSubCommands determines if a command has any available 'help' sub commands\n// that need to be shown in the usage/help default template under 'additional help\n// topics'.\nfunc (c *Command) HasHelpSubCommands() bool {\n\t// return true on the first found available 'help' sub command\n\tfor _, sub := range c.commands {\n\t\tif sub.IsAdditionalHelpTopicCommand() {\n\t\t\treturn true\n\t\t}\n\t}\n\n\t// the command either has no sub commands, or no available 'help' sub commands\n\treturn false\n}\n\n// HasAvailableSubCommands determines if a command has available sub commands that\n// need to be shown in the usage/help default template under 'available commands'.\nfunc (c *Command) HasAvailableSubCommands() bool {\n\t// return true on the first found available (non deprecated/help/hidden)\n\t// sub command\n\tfor _, sub := range c.commands {\n\t\tif sub.IsAvailableCommand() {\n\t\t\treturn true\n\t\t}\n\t}\n\n\t// the command either has no sub commands, or no available (non deprecated/help/hidden)\n\t// sub commands\n\treturn false\n}\n\n// HasParent determines if the command is a child command.\nfunc (c *Command) HasParent() bool {\n\treturn c.parent != nil\n}\n\n// GlobalNormalizationFunc returns the global normalization function or nil if it doesn't exist.\nfunc (c *Command) GlobalNormalizationFunc() func(f *flag.FlagSet, name string) flag.NormalizedName {\n\treturn c.globNormFunc\n}\n\n// Flags returns the complete FlagSet that applies\n// to this command (local and persistent declared here and by all parents).\nfunc (c *Command) Flags() *flag.FlagSet {\n\tif c.flags == nil {\n\t\tc.flags = flag.NewFlagSet(c.displayName(), flag.ContinueOnError)\n\t\tif c.flagErrorBuf == nil {\n\t\t\tc.flagErrorBuf = new(bytes.Buffer)\n\t\t}\n\t\tc.flags.SetOutput(c.flagErrorBuf)\n\t}\n\n\treturn c.flags\n}\n\n// LocalNonPersistentFlags are flags specific to this command which will NOT persist to subcommands.\n// This function does not modify the flags of the current command, it's purpose is to return the current state.\nfunc (c *Command) LocalNonPersistentFlags() *flag.FlagSet {\n\tpersistentFlags := c.PersistentFlags()\n\n\tout := flag.NewFlagSet(c.displayName(), flag.ContinueOnError)\n\tc.LocalFlags().VisitAll(func(f *flag.Flag) {\n\t\tif persistentFlags.Lookup(f.Name) == nil {\n\t\t\tout.AddFlag(f)\n\t\t}\n\t})\n\treturn out\n}\n\n// LocalFlags returns the local FlagSet specifically set in the current command.\n// This function does not modify the flags of the current command, it's purpose is to return the current state.\nfunc (c *Command) LocalFlags() *flag.FlagSet {\n\tc.mergePersistentFlags()\n\n\tif c.lflags == nil {\n\t\tc.lflags = flag.NewFlagSet(c.displayName(), flag.ContinueOnError)\n\t\tif c.flagErrorBuf == nil {\n\t\t\tc.flagErrorBuf = new(bytes.Buffer)\n\t\t}\n\t\tc.lflags.SetOutput(c.flagErrorBuf)\n\t}\n\tc.lflags.SortFlags = c.Flags().SortFlags\n\tif c.globNormFunc != nil {\n\t\tc.lflags.SetNormalizeFunc(c.globNormFunc)\n\t}\n\n\taddToLocal := func(f *flag.Flag) {\n\t\t// Add the flag if it is not a parent PFlag, or it shadows a parent PFlag\n\t\tif c.lflags.Lookup(f.Name) == nil && f != c.parentsPflags.Lookup(f.Name) {\n\t\t\tc.lflags.AddFlag(f)\n\t\t}\n\t}\n\tc.Flags().VisitAll(addToLocal)\n\tc.PersistentFlags().VisitAll(addToLocal)\n\treturn c.lflags\n}\n\n// InheritedFlags returns all flags which were inherited from parent commands.\n// This function does not modify the flags of the current command, it's purpose is to return the current state.\nfunc (c *Command) InheritedFlags() *flag.FlagSet {\n\tc.mergePersistentFlags()\n\n\tif c.iflags == nil {\n\t\tc.iflags = flag.NewFlagSet(c.displayName(), flag.ContinueOnError)\n\t\tif c.flagErrorBuf == nil {\n\t\t\tc.flagErrorBuf = new(bytes.Buffer)\n\t\t}\n\t\tc.iflags.SetOutput(c.flagErrorBuf)\n\t}\n\n\tlocal := c.LocalFlags()\n\tif c.globNormFunc != nil {\n\t\tc.iflags.SetNormalizeFunc(c.globNormFunc)\n\t}\n\n\tc.parentsPflags.VisitAll(func(f *flag.Flag) {\n\t\tif c.iflags.Lookup(f.Name) == nil && local.Lookup(f.Name) == nil {\n\t\t\tc.iflags.AddFlag(f)\n\t\t}\n\t})\n\treturn c.iflags\n}\n\n// NonInheritedFlags returns all flags which were not inherited from parent commands.\n// This function does not modify the flags of the current command, it's purpose is to return the current state.\nfunc (c *Command) NonInheritedFlags() *flag.FlagSet {\n\treturn c.LocalFlags()\n}\n\n// PersistentFlags returns the persistent FlagSet specifically set in the current command.\nfunc (c *Command) PersistentFlags() *flag.FlagSet {\n\tif c.pflags == nil {\n\t\tc.pflags = flag.NewFlagSet(c.displayName(), flag.ContinueOnError)\n\t\tif c.flagErrorBuf == nil {\n\t\t\tc.flagErrorBuf = new(bytes.Buffer)\n\t\t}\n\t\tc.pflags.SetOutput(c.flagErrorBuf)\n\t}\n\treturn c.pflags\n}\n\n// ResetFlags deletes all flags from command.\nfunc (c *Command) ResetFlags() {\n\tc.flagErrorBuf = new(bytes.Buffer)\n\tc.flagErrorBuf.Reset()\n\tc.flags = flag.NewFlagSet(c.displayName(), flag.ContinueOnError)\n\tc.flags.SetOutput(c.flagErrorBuf)\n\tc.pflags = flag.NewFlagSet(c.displayName(), flag.ContinueOnError)\n\tc.pflags.SetOutput(c.flagErrorBuf)\n\n\tc.lflags = nil\n\tc.iflags = nil\n\tc.parentsPflags = nil\n}\n\n// HasFlags checks if the command contains any flags (local plus persistent from the entire structure).\nfunc (c *Command) HasFlags() bool {\n\treturn c.Flags().HasFlags()\n}\n\n// HasPersistentFlags checks if the command contains persistent flags.\nfunc (c *Command) HasPersistentFlags() bool {\n\treturn c.PersistentFlags().HasFlags()\n}\n\n// HasLocalFlags checks if the command has flags specifically declared locally.\nfunc (c *Command) HasLocalFlags() bool {\n\treturn c.LocalFlags().HasFlags()\n}\n\n// HasInheritedFlags checks if the command has flags inherited from its parent command.\nfunc (c *Command) HasInheritedFlags() bool {\n\treturn c.InheritedFlags().HasFlags()\n}\n\n// HasAvailableFlags checks if the command contains any flags (local plus persistent from the entire\n// structure) which are not hidden or deprecated.\nfunc (c *Command) HasAvailableFlags() bool {\n\treturn c.Flags().HasAvailableFlags()\n}\n\n// HasAvailablePersistentFlags checks if the command contains persistent flags which are not hidden or deprecated.\nfunc (c *Command) HasAvailablePersistentFlags() bool {\n\treturn c.PersistentFlags().HasAvailableFlags()\n}\n\n// HasAvailableLocalFlags checks if the command has flags specifically declared locally which are not hidden\n// or deprecated.\nfunc (c *Command) HasAvailableLocalFlags() bool {\n\treturn c.LocalFlags().HasAvailableFlags()\n}\n\n// HasAvailableInheritedFlags checks if the command has flags inherited from its parent command which are\n// not hidden or deprecated.\nfunc (c *Command) HasAvailableInheritedFlags() bool {\n\treturn c.InheritedFlags().HasAvailableFlags()\n}\n\n// Flag climbs up the command tree looking for matching flag.\nfunc (c *Command) Flag(name string) (flag *flag.Flag) {\n\tflag = c.Flags().Lookup(name)\n\n\tif flag == nil {\n\t\tflag = c.persistentFlag(name)\n\t}\n\n\treturn\n}\n\n// Recursively find matching persistent flag.\nfunc (c *Command) persistentFlag(name string) (flag *flag.Flag) {\n\tif c.HasPersistentFlags() {\n\t\tflag = c.PersistentFlags().Lookup(name)\n\t}\n\n\tif flag == nil {\n\t\tc.updateParentsPflags()\n\t\tflag = c.parentsPflags.Lookup(name)\n\t}\n\treturn\n}\n\n// ParseFlags parses persistent flag tree and local flags.\nfunc (c *Command) ParseFlags(args []string) error {\n\tif c.DisableFlagParsing {\n\t\treturn nil\n\t}\n\n\tif c.flagErrorBuf == nil {\n\t\tc.flagErrorBuf = new(bytes.Buffer)\n\t}\n\tbeforeErrorBufLen := c.flagErrorBuf.Len()\n\tc.mergePersistentFlags()\n\n\t// do it here after merging all flags and just before parse\n\tc.Flags().ParseErrorsWhitelist = flag.ParseErrorsWhitelist(c.FParseErrWhitelist)\n\n\terr := c.Flags().Parse(args)\n\t// Print warnings if they occurred (e.g. deprecated flag messages).\n\tif c.flagErrorBuf.Len()-beforeErrorBufLen > 0 && err == nil {\n\t\tc.Print(c.flagErrorBuf.String())\n\t}\n\n\treturn err\n}\n\n// Parent returns a commands parent command.\nfunc (c *Command) Parent() *Command {\n\treturn c.parent\n}\n\n// mergePersistentFlags merges c.PersistentFlags() to c.Flags()\n// and adds missing persistent flags of all parents.\nfunc (c *Command) mergePersistentFlags() {\n\tc.updateParentsPflags()\n\tc.Flags().AddFlagSet(c.PersistentFlags())\n\tc.Flags().AddFlagSet(c.parentsPflags)\n}\n\n// updateParentsPflags updates c.parentsPflags by adding\n// new persistent flags of all parents.\n// If c.parentsPflags == nil, it makes new.\nfunc (c *Command) updateParentsPflags() {\n\tif c.parentsPflags == nil {\n\t\tc.parentsPflags = flag.NewFlagSet(c.displayName(), flag.ContinueOnError)\n\t\tc.parentsPflags.SetOutput(c.flagErrorBuf)\n\t\tc.parentsPflags.SortFlags = false\n\t}\n\n\tif c.globNormFunc != nil {\n\t\tc.parentsPflags.SetNormalizeFunc(c.globNormFunc)\n\t}\n\n\tc.Root().PersistentFlags().AddFlagSet(flag.CommandLine)\n\n\tc.VisitParents(func(parent *Command) {\n\t\tc.parentsPflags.AddFlagSet(parent.PersistentFlags())\n\t})\n}\n\n// commandNameMatches checks if two command names are equal\n// taking into account case sensitivity according to\n// EnableCaseInsensitive global configuration.\nfunc commandNameMatches(s string, t string) bool {\n\tif EnableCaseInsensitive {\n\t\treturn strings.EqualFold(s, t)\n\t}\n\n\treturn s == t\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/command_notwin.go",
    "content": "// Copyright 2013-2023 The Cobra Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build !windows\n// +build !windows\n\npackage cobra\n\nvar preExecHookFn func(*Command)\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/command_win.go",
    "content": "// Copyright 2013-2023 The Cobra Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n//go:build windows\n// +build windows\n\npackage cobra\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"time\"\n\n\t\"github.com/inconshreveable/mousetrap\"\n)\n\nvar preExecHookFn = preExecHook\n\nfunc preExecHook(c *Command) {\n\tif MousetrapHelpText != \"\" && mousetrap.StartedByExplorer() {\n\t\tc.Print(MousetrapHelpText)\n\t\tif MousetrapDisplayDuration > 0 {\n\t\t\ttime.Sleep(MousetrapDisplayDuration)\n\t\t} else {\n\t\t\tc.Println(\"Press return to continue...\")\n\t\t\tfmt.Scanln()\n\t\t}\n\t\tos.Exit(1)\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/completions.go",
    "content": "// Copyright 2013-2023 The Cobra Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage cobra\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"github.com/spf13/pflag\"\n)\n\nconst (\n\t// ShellCompRequestCmd is the name of the hidden command that is used to request\n\t// completion results from the program.  It is used by the shell completion scripts.\n\tShellCompRequestCmd = \"__complete\"\n\t// ShellCompNoDescRequestCmd is the name of the hidden command that is used to request\n\t// completion results without their description.  It is used by the shell completion scripts.\n\tShellCompNoDescRequestCmd = \"__completeNoDesc\"\n)\n\n// Global map of flag completion functions. Make sure to use flagCompletionMutex before you try to read and write from it.\nvar flagCompletionFunctions = map[*pflag.Flag]func(cmd *Command, args []string, toComplete string) ([]string, ShellCompDirective){}\n\n// lock for reading and writing from flagCompletionFunctions\nvar flagCompletionMutex = &sync.RWMutex{}\n\n// ShellCompDirective is a bit map representing the different behaviors the shell\n// can be instructed to have once completions have been provided.\ntype ShellCompDirective int\n\ntype flagCompError struct {\n\tsubCommand string\n\tflagName   string\n}\n\nfunc (e *flagCompError) Error() string {\n\treturn \"Subcommand '\" + e.subCommand + \"' does not support flag '\" + e.flagName + \"'\"\n}\n\nconst (\n\t// ShellCompDirectiveError indicates an error occurred and completions should be ignored.\n\tShellCompDirectiveError ShellCompDirective = 1 << iota\n\n\t// ShellCompDirectiveNoSpace indicates that the shell should not add a space\n\t// after the completion even if there is a single completion provided.\n\tShellCompDirectiveNoSpace\n\n\t// ShellCompDirectiveNoFileComp indicates that the shell should not provide\n\t// file completion even when no completion is provided.\n\tShellCompDirectiveNoFileComp\n\n\t// ShellCompDirectiveFilterFileExt indicates that the provided completions\n\t// should be used as file extension filters.\n\t// For flags, using Command.MarkFlagFilename() and Command.MarkPersistentFlagFilename()\n\t// is a shortcut to using this directive explicitly.  The BashCompFilenameExt\n\t// annotation can also be used to obtain the same behavior for flags.\n\tShellCompDirectiveFilterFileExt\n\n\t// ShellCompDirectiveFilterDirs indicates that only directory names should\n\t// be provided in file completion.  To request directory names within another\n\t// directory, the returned completions should specify the directory within\n\t// which to search.  The BashCompSubdirsInDir annotation can be used to\n\t// obtain the same behavior but only for flags.\n\tShellCompDirectiveFilterDirs\n\n\t// ShellCompDirectiveKeepOrder indicates that the shell should preserve the order\n\t// in which the completions are provided\n\tShellCompDirectiveKeepOrder\n\n\t// ===========================================================================\n\n\t// All directives using iota should be above this one.\n\t// For internal use.\n\tshellCompDirectiveMaxValue\n\n\t// ShellCompDirectiveDefault indicates to let the shell perform its default\n\t// behavior after completions have been provided.\n\t// This one must be last to avoid messing up the iota count.\n\tShellCompDirectiveDefault ShellCompDirective = 0\n)\n\nconst (\n\t// Constants for the completion command\n\tcompCmdName              = \"completion\"\n\tcompCmdNoDescFlagName    = \"no-descriptions\"\n\tcompCmdNoDescFlagDesc    = \"disable completion descriptions\"\n\tcompCmdNoDescFlagDefault = false\n)\n\n// CompletionOptions are the options to control shell completion\ntype CompletionOptions struct {\n\t// DisableDefaultCmd prevents Cobra from creating a default 'completion' command\n\tDisableDefaultCmd bool\n\t// DisableNoDescFlag prevents Cobra from creating the '--no-descriptions' flag\n\t// for shells that support completion descriptions\n\tDisableNoDescFlag bool\n\t// DisableDescriptions turns off all completion descriptions for shells\n\t// that support them\n\tDisableDescriptions bool\n\t// HiddenDefaultCmd makes the default 'completion' command hidden\n\tHiddenDefaultCmd bool\n}\n\n// NoFileCompletions can be used to disable file completion for commands that should\n// not trigger file completions.\nfunc NoFileCompletions(cmd *Command, args []string, toComplete string) ([]string, ShellCompDirective) {\n\treturn nil, ShellCompDirectiveNoFileComp\n}\n\n// FixedCompletions can be used to create a completion function which always\n// returns the same results.\nfunc FixedCompletions(choices []string, directive ShellCompDirective) func(cmd *Command, args []string, toComplete string) ([]string, ShellCompDirective) {\n\treturn func(cmd *Command, args []string, toComplete string) ([]string, ShellCompDirective) {\n\t\treturn choices, directive\n\t}\n}\n\n// RegisterFlagCompletionFunc should be called to register a function to provide completion for a flag.\nfunc (c *Command) RegisterFlagCompletionFunc(flagName string, f func(cmd *Command, args []string, toComplete string) ([]string, ShellCompDirective)) error {\n\tflag := c.Flag(flagName)\n\tif flag == nil {\n\t\treturn fmt.Errorf(\"RegisterFlagCompletionFunc: flag '%s' does not exist\", flagName)\n\t}\n\tflagCompletionMutex.Lock()\n\tdefer flagCompletionMutex.Unlock()\n\n\tif _, exists := flagCompletionFunctions[flag]; exists {\n\t\treturn fmt.Errorf(\"RegisterFlagCompletionFunc: flag '%s' already registered\", flagName)\n\t}\n\tflagCompletionFunctions[flag] = f\n\treturn nil\n}\n\n// GetFlagCompletionFunc returns the completion function for the given flag of the command, if available.\nfunc (c *Command) GetFlagCompletionFunc(flagName string) (func(*Command, []string, string) ([]string, ShellCompDirective), bool) {\n\tflag := c.Flag(flagName)\n\tif flag == nil {\n\t\treturn nil, false\n\t}\n\n\tflagCompletionMutex.RLock()\n\tdefer flagCompletionMutex.RUnlock()\n\n\tcompletionFunc, exists := flagCompletionFunctions[flag]\n\treturn completionFunc, exists\n}\n\n// Returns a string listing the different directive enabled in the specified parameter\nfunc (d ShellCompDirective) string() string {\n\tvar directives []string\n\tif d&ShellCompDirectiveError != 0 {\n\t\tdirectives = append(directives, \"ShellCompDirectiveError\")\n\t}\n\tif d&ShellCompDirectiveNoSpace != 0 {\n\t\tdirectives = append(directives, \"ShellCompDirectiveNoSpace\")\n\t}\n\tif d&ShellCompDirectiveNoFileComp != 0 {\n\t\tdirectives = append(directives, \"ShellCompDirectiveNoFileComp\")\n\t}\n\tif d&ShellCompDirectiveFilterFileExt != 0 {\n\t\tdirectives = append(directives, \"ShellCompDirectiveFilterFileExt\")\n\t}\n\tif d&ShellCompDirectiveFilterDirs != 0 {\n\t\tdirectives = append(directives, \"ShellCompDirectiveFilterDirs\")\n\t}\n\tif d&ShellCompDirectiveKeepOrder != 0 {\n\t\tdirectives = append(directives, \"ShellCompDirectiveKeepOrder\")\n\t}\n\tif len(directives) == 0 {\n\t\tdirectives = append(directives, \"ShellCompDirectiveDefault\")\n\t}\n\n\tif d >= shellCompDirectiveMaxValue {\n\t\treturn fmt.Sprintf(\"ERROR: unexpected ShellCompDirective value: %d\", d)\n\t}\n\treturn strings.Join(directives, \", \")\n}\n\n// initCompleteCmd adds a special hidden command that can be used to request custom completions.\nfunc (c *Command) initCompleteCmd(args []string) {\n\tcompleteCmd := &Command{\n\t\tUse:                   fmt.Sprintf(\"%s [command-line]\", ShellCompRequestCmd),\n\t\tAliases:               []string{ShellCompNoDescRequestCmd},\n\t\tDisableFlagsInUseLine: true,\n\t\tHidden:                true,\n\t\tDisableFlagParsing:    true,\n\t\tArgs:                  MinimumNArgs(1),\n\t\tShort:                 \"Request shell completion choices for the specified command-line\",\n\t\tLong: fmt.Sprintf(\"%[2]s is a special command that is used by the shell completion logic\\n%[1]s\",\n\t\t\t\"to request completion choices for the specified command-line.\", ShellCompRequestCmd),\n\t\tRun: func(cmd *Command, args []string) {\n\t\t\tfinalCmd, completions, directive, err := cmd.getCompletions(args)\n\t\t\tif err != nil {\n\t\t\t\tCompErrorln(err.Error())\n\t\t\t\t// Keep going for multiple reasons:\n\t\t\t\t// 1- There could be some valid completions even though there was an error\n\t\t\t\t// 2- Even without completions, we need to print the directive\n\t\t\t}\n\n\t\t\tnoDescriptions := cmd.CalledAs() == ShellCompNoDescRequestCmd\n\t\t\tif !noDescriptions {\n\t\t\t\tif doDescriptions, err := strconv.ParseBool(getEnvConfig(cmd, configEnvVarSuffixDescriptions)); err == nil {\n\t\t\t\t\tnoDescriptions = !doDescriptions\n\t\t\t\t}\n\t\t\t}\n\t\t\tnoActiveHelp := GetActiveHelpConfig(finalCmd) == activeHelpGlobalDisable\n\t\t\tout := finalCmd.OutOrStdout()\n\t\t\tfor _, comp := range completions {\n\t\t\t\tif noActiveHelp && strings.HasPrefix(comp, activeHelpMarker) {\n\t\t\t\t\t// Remove all activeHelp entries if it's disabled.\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif noDescriptions {\n\t\t\t\t\t// Remove any description that may be included following a tab character.\n\t\t\t\t\tcomp = strings.SplitN(comp, \"\\t\", 2)[0]\n\t\t\t\t}\n\n\t\t\t\t// Make sure we only write the first line to the output.\n\t\t\t\t// This is needed if a description contains a linebreak.\n\t\t\t\t// Otherwise the shell scripts will interpret the other lines as new flags\n\t\t\t\t// and could therefore provide a wrong completion.\n\t\t\t\tcomp = strings.SplitN(comp, \"\\n\", 2)[0]\n\n\t\t\t\t// Finally trim the completion.  This is especially important to get rid\n\t\t\t\t// of a trailing tab when there are no description following it.\n\t\t\t\t// For example, a sub-command without a description should not be completed\n\t\t\t\t// with a tab at the end (or else zsh will show a -- following it\n\t\t\t\t// although there is no description).\n\t\t\t\tcomp = strings.TrimSpace(comp)\n\n\t\t\t\t// Print each possible completion to the output for the completion script to consume.\n\t\t\t\tfmt.Fprintln(out, comp)\n\t\t\t}\n\n\t\t\t// As the last printout, print the completion directive for the completion script to parse.\n\t\t\t// The directive integer must be that last character following a single colon (:).\n\t\t\t// The completion script expects :<directive>\n\t\t\tfmt.Fprintf(out, \":%d\\n\", directive)\n\n\t\t\t// Print some helpful info to stderr for the user to understand.\n\t\t\t// Output from stderr must be ignored by the completion script.\n\t\t\tfmt.Fprintf(finalCmd.ErrOrStderr(), \"Completion ended with directive: %s\\n\", directive.string())\n\t\t},\n\t}\n\tc.AddCommand(completeCmd)\n\tsubCmd, _, err := c.Find(args)\n\tif err != nil || subCmd.Name() != ShellCompRequestCmd {\n\t\t// Only create this special command if it is actually being called.\n\t\t// This reduces possible side-effects of creating such a command;\n\t\t// for example, having this command would cause problems to a\n\t\t// cobra program that only consists of the root command, since this\n\t\t// command would cause the root command to suddenly have a subcommand.\n\t\tc.RemoveCommand(completeCmd)\n\t}\n}\n\nfunc (c *Command) getCompletions(args []string) (*Command, []string, ShellCompDirective, error) {\n\t// The last argument, which is not completely typed by the user,\n\t// should not be part of the list of arguments\n\ttoComplete := args[len(args)-1]\n\ttrimmedArgs := args[:len(args)-1]\n\n\tvar finalCmd *Command\n\tvar finalArgs []string\n\tvar err error\n\t// Find the real command for which completion must be performed\n\t// check if we need to traverse here to parse local flags on parent commands\n\tif c.Root().TraverseChildren {\n\t\tfinalCmd, finalArgs, err = c.Root().Traverse(trimmedArgs)\n\t} else {\n\t\t// For Root commands that don't specify any value for their Args fields, when we call\n\t\t// Find(), if those Root commands don't have any sub-commands, they will accept arguments.\n\t\t// However, because we have added the __complete sub-command in the current code path, the\n\t\t// call to Find() -> legacyArgs() will return an error if there are any arguments.\n\t\t// To avoid this, we first remove the __complete command to get back to having no sub-commands.\n\t\trootCmd := c.Root()\n\t\tif len(rootCmd.Commands()) == 1 {\n\t\t\trootCmd.RemoveCommand(c)\n\t\t}\n\n\t\tfinalCmd, finalArgs, err = rootCmd.Find(trimmedArgs)\n\t}\n\tif err != nil {\n\t\t// Unable to find the real command. E.g., <program> someInvalidCmd <TAB>\n\t\treturn c, []string{}, ShellCompDirectiveDefault, fmt.Errorf(\"unable to find a command for arguments: %v\", trimmedArgs)\n\t}\n\tfinalCmd.ctx = c.ctx\n\n\t// These flags are normally added when `execute()` is called on `finalCmd`,\n\t// however, when doing completion, we don't call `finalCmd.execute()`.\n\t// Let's add the --help and --version flag ourselves but only if the finalCmd\n\t// has not disabled flag parsing; if flag parsing is disabled, it is up to the\n\t// finalCmd itself to handle the completion of *all* flags.\n\tif !finalCmd.DisableFlagParsing {\n\t\tfinalCmd.InitDefaultHelpFlag()\n\t\tfinalCmd.InitDefaultVersionFlag()\n\t}\n\n\t// Check if we are doing flag value completion before parsing the flags.\n\t// This is important because if we are completing a flag value, we need to also\n\t// remove the flag name argument from the list of finalArgs or else the parsing\n\t// could fail due to an invalid value (incomplete) for the flag.\n\tflag, finalArgs, toComplete, flagErr := checkIfFlagCompletion(finalCmd, finalArgs, toComplete)\n\n\t// Check if interspersed is false or -- was set on a previous arg.\n\t// This works by counting the arguments. Normally -- is not counted as arg but\n\t// if -- was already set or interspersed is false and there is already one arg then\n\t// the extra added -- is counted as arg.\n\tflagCompletion := true\n\t_ = finalCmd.ParseFlags(append(finalArgs, \"--\"))\n\tnewArgCount := finalCmd.Flags().NArg()\n\n\t// Parse the flags early so we can check if required flags are set\n\tif err = finalCmd.ParseFlags(finalArgs); err != nil {\n\t\treturn finalCmd, []string{}, ShellCompDirectiveDefault, fmt.Errorf(\"Error while parsing flags from args %v: %s\", finalArgs, err.Error())\n\t}\n\n\trealArgCount := finalCmd.Flags().NArg()\n\tif newArgCount > realArgCount {\n\t\t// don't do flag completion (see above)\n\t\tflagCompletion = false\n\t}\n\t// Error while attempting to parse flags\n\tif flagErr != nil {\n\t\t// If error type is flagCompError and we don't want flagCompletion we should ignore the error\n\t\tif _, ok := flagErr.(*flagCompError); !(ok && !flagCompletion) {\n\t\t\treturn finalCmd, []string{}, ShellCompDirectiveDefault, flagErr\n\t\t}\n\t}\n\n\t// Look for the --help or --version flags.  If they are present,\n\t// there should be no further completions.\n\tif helpOrVersionFlagPresent(finalCmd) {\n\t\treturn finalCmd, []string{}, ShellCompDirectiveNoFileComp, nil\n\t}\n\n\t// We only remove the flags from the arguments if DisableFlagParsing is not set.\n\t// This is important for commands which have requested to do their own flag completion.\n\tif !finalCmd.DisableFlagParsing {\n\t\tfinalArgs = finalCmd.Flags().Args()\n\t}\n\n\tif flag != nil && flagCompletion {\n\t\t// Check if we are completing a flag value subject to annotations\n\t\tif validExts, present := flag.Annotations[BashCompFilenameExt]; present {\n\t\t\tif len(validExts) != 0 {\n\t\t\t\t// File completion filtered by extensions\n\t\t\t\treturn finalCmd, validExts, ShellCompDirectiveFilterFileExt, nil\n\t\t\t}\n\n\t\t\t// The annotation requests simple file completion.  There is no reason to do\n\t\t\t// that since it is the default behavior anyway.  Let's ignore this annotation\n\t\t\t// in case the program also registered a completion function for this flag.\n\t\t\t// Even though it is a mistake on the program's side, let's be nice when we can.\n\t\t}\n\n\t\tif subDir, present := flag.Annotations[BashCompSubdirsInDir]; present {\n\t\t\tif len(subDir) == 1 {\n\t\t\t\t// Directory completion from within a directory\n\t\t\t\treturn finalCmd, subDir, ShellCompDirectiveFilterDirs, nil\n\t\t\t}\n\t\t\t// Directory completion\n\t\t\treturn finalCmd, []string{}, ShellCompDirectiveFilterDirs, nil\n\t\t}\n\t}\n\n\tvar completions []string\n\tvar directive ShellCompDirective\n\n\t// Enforce flag groups before doing flag completions\n\tfinalCmd.enforceFlagGroupsForCompletion()\n\n\t// Note that we want to perform flagname completion even if finalCmd.DisableFlagParsing==true;\n\t// doing this allows for completion of persistent flag names even for commands that disable flag parsing.\n\t//\n\t// When doing completion of a flag name, as soon as an argument starts with\n\t// a '-' we know it is a flag.  We cannot use isFlagArg() here as it requires\n\t// the flag name to be complete\n\tif flag == nil && len(toComplete) > 0 && toComplete[0] == '-' && !strings.Contains(toComplete, \"=\") && flagCompletion {\n\t\t// First check for required flags\n\t\tcompletions = completeRequireFlags(finalCmd, toComplete)\n\n\t\t// If we have not found any required flags, only then can we show regular flags\n\t\tif len(completions) == 0 {\n\t\t\tdoCompleteFlags := func(flag *pflag.Flag) {\n\t\t\t\tif !flag.Changed ||\n\t\t\t\t\tstrings.Contains(flag.Value.Type(), \"Slice\") ||\n\t\t\t\t\tstrings.Contains(flag.Value.Type(), \"Array\") {\n\t\t\t\t\t// If the flag is not already present, or if it can be specified multiple times (Array or Slice)\n\t\t\t\t\t// we suggest it as a completion\n\t\t\t\t\tcompletions = append(completions, getFlagNameCompletions(flag, toComplete)...)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// We cannot use finalCmd.Flags() because we may not have called ParsedFlags() for commands\n\t\t\t// that have set DisableFlagParsing; it is ParseFlags() that merges the inherited and\n\t\t\t// non-inherited flags.\n\t\t\tfinalCmd.InheritedFlags().VisitAll(func(flag *pflag.Flag) {\n\t\t\t\tdoCompleteFlags(flag)\n\t\t\t})\n\t\t\t// Try to complete non-inherited flags even if DisableFlagParsing==true.\n\t\t\t// This allows programs to tell Cobra about flags for completion even\n\t\t\t// if the actual parsing of flags is not done by Cobra.\n\t\t\t// For instance, Helm uses this to provide flag name completion for\n\t\t\t// some of its plugins.\n\t\t\tfinalCmd.NonInheritedFlags().VisitAll(func(flag *pflag.Flag) {\n\t\t\t\tdoCompleteFlags(flag)\n\t\t\t})\n\t\t}\n\n\t\tdirective = ShellCompDirectiveNoFileComp\n\t\tif len(completions) == 1 && strings.HasSuffix(completions[0], \"=\") {\n\t\t\t// If there is a single completion, the shell usually adds a space\n\t\t\t// after the completion.  We don't want that if the flag ends with an =\n\t\t\tdirective = ShellCompDirectiveNoSpace\n\t\t}\n\n\t\tif !finalCmd.DisableFlagParsing {\n\t\t\t// If DisableFlagParsing==false, we have completed the flags as known by Cobra;\n\t\t\t// we can return what we found.\n\t\t\t// If DisableFlagParsing==true, Cobra may not be aware of all flags, so we\n\t\t\t// let the logic continue to see if ValidArgsFunction needs to be called.\n\t\t\treturn finalCmd, completions, directive, nil\n\t\t}\n\t} else {\n\t\tdirective = ShellCompDirectiveDefault\n\t\tif flag == nil {\n\t\t\tfoundLocalNonPersistentFlag := false\n\t\t\t// If TraverseChildren is true on the root command we don't check for\n\t\t\t// local flags because we can use a local flag on a parent command\n\t\t\tif !finalCmd.Root().TraverseChildren {\n\t\t\t\t// Check if there are any local, non-persistent flags on the command-line\n\t\t\t\tlocalNonPersistentFlags := finalCmd.LocalNonPersistentFlags()\n\t\t\t\tfinalCmd.NonInheritedFlags().VisitAll(func(flag *pflag.Flag) {\n\t\t\t\t\tif localNonPersistentFlags.Lookup(flag.Name) != nil && flag.Changed {\n\t\t\t\t\t\tfoundLocalNonPersistentFlag = true\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\n\t\t\t// Complete subcommand names, including the help command\n\t\t\tif len(finalArgs) == 0 && !foundLocalNonPersistentFlag {\n\t\t\t\t// We only complete sub-commands if:\n\t\t\t\t// - there are no arguments on the command-line and\n\t\t\t\t// - there are no local, non-persistent flags on the command-line or TraverseChildren is true\n\t\t\t\tfor _, subCmd := range finalCmd.Commands() {\n\t\t\t\t\tif subCmd.IsAvailableCommand() || subCmd == finalCmd.helpCommand {\n\t\t\t\t\t\tif strings.HasPrefix(subCmd.Name(), toComplete) {\n\t\t\t\t\t\t\tcompletions = append(completions, fmt.Sprintf(\"%s\\t%s\", subCmd.Name(), subCmd.Short))\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdirective = ShellCompDirectiveNoFileComp\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Complete required flags even without the '-' prefix\n\t\t\tcompletions = append(completions, completeRequireFlags(finalCmd, toComplete)...)\n\n\t\t\t// Always complete ValidArgs, even if we are completing a subcommand name.\n\t\t\t// This is for commands that have both subcommands and ValidArgs.\n\t\t\tif len(finalCmd.ValidArgs) > 0 {\n\t\t\t\tif len(finalArgs) == 0 {\n\t\t\t\t\t// ValidArgs are only for the first argument\n\t\t\t\t\tfor _, validArg := range finalCmd.ValidArgs {\n\t\t\t\t\t\tif strings.HasPrefix(validArg, toComplete) {\n\t\t\t\t\t\t\tcompletions = append(completions, validArg)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdirective = ShellCompDirectiveNoFileComp\n\n\t\t\t\t\t// If no completions were found within commands or ValidArgs,\n\t\t\t\t\t// see if there are any ArgAliases that should be completed.\n\t\t\t\t\tif len(completions) == 0 {\n\t\t\t\t\t\tfor _, argAlias := range finalCmd.ArgAliases {\n\t\t\t\t\t\t\tif strings.HasPrefix(argAlias, toComplete) {\n\t\t\t\t\t\t\t\tcompletions = append(completions, argAlias)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// If there are ValidArgs specified (even if they don't match), we stop completion.\n\t\t\t\t// Only one of ValidArgs or ValidArgsFunction can be used for a single command.\n\t\t\t\treturn finalCmd, completions, directive, nil\n\t\t\t}\n\n\t\t\t// Let the logic continue so as to add any ValidArgsFunction completions,\n\t\t\t// even if we already found sub-commands.\n\t\t\t// This is for commands that have subcommands but also specify a ValidArgsFunction.\n\t\t}\n\t}\n\n\t// Find the completion function for the flag or command\n\tvar completionFn func(cmd *Command, args []string, toComplete string) ([]string, ShellCompDirective)\n\tif flag != nil && flagCompletion {\n\t\tflagCompletionMutex.RLock()\n\t\tcompletionFn = flagCompletionFunctions[flag]\n\t\tflagCompletionMutex.RUnlock()\n\t} else {\n\t\tcompletionFn = finalCmd.ValidArgsFunction\n\t}\n\tif completionFn != nil {\n\t\t// Go custom completion defined for this flag or command.\n\t\t// Call the registered completion function to get the completions.\n\t\tvar comps []string\n\t\tcomps, directive = completionFn(finalCmd, finalArgs, toComplete)\n\t\tcompletions = append(completions, comps...)\n\t}\n\n\treturn finalCmd, completions, directive, nil\n}\n\nfunc helpOrVersionFlagPresent(cmd *Command) bool {\n\tif versionFlag := cmd.Flags().Lookup(\"version\"); versionFlag != nil &&\n\t\tlen(versionFlag.Annotations[FlagSetByCobraAnnotation]) > 0 && versionFlag.Changed {\n\t\treturn true\n\t}\n\tif helpFlag := cmd.Flags().Lookup(\"help\"); helpFlag != nil &&\n\t\tlen(helpFlag.Annotations[FlagSetByCobraAnnotation]) > 0 && helpFlag.Changed {\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc getFlagNameCompletions(flag *pflag.Flag, toComplete string) []string {\n\tif nonCompletableFlag(flag) {\n\t\treturn []string{}\n\t}\n\n\tvar completions []string\n\tflagName := \"--\" + flag.Name\n\tif strings.HasPrefix(flagName, toComplete) {\n\t\t// Flag without the =\n\t\tcompletions = append(completions, fmt.Sprintf(\"%s\\t%s\", flagName, flag.Usage))\n\n\t\t// Why suggest both long forms: --flag and --flag= ?\n\t\t// This forces the user to *always* have to type either an = or a space after the flag name.\n\t\t// Let's be nice and avoid making users have to do that.\n\t\t// Since boolean flags and shortname flags don't show the = form, let's go that route and never show it.\n\t\t// The = form will still work, we just won't suggest it.\n\t\t// This also makes the list of suggested flags shorter as we avoid all the = forms.\n\t\t//\n\t\t// if len(flag.NoOptDefVal) == 0 {\n\t\t// \t// Flag requires a value, so it can be suffixed with =\n\t\t// \tflagName += \"=\"\n\t\t// \tcompletions = append(completions, fmt.Sprintf(\"%s\\t%s\", flagName, flag.Usage))\n\t\t// }\n\t}\n\n\tflagName = \"-\" + flag.Shorthand\n\tif len(flag.Shorthand) > 0 && strings.HasPrefix(flagName, toComplete) {\n\t\tcompletions = append(completions, fmt.Sprintf(\"%s\\t%s\", flagName, flag.Usage))\n\t}\n\n\treturn completions\n}\n\nfunc completeRequireFlags(finalCmd *Command, toComplete string) []string {\n\tvar completions []string\n\n\tdoCompleteRequiredFlags := func(flag *pflag.Flag) {\n\t\tif _, present := flag.Annotations[BashCompOneRequiredFlag]; present {\n\t\t\tif !flag.Changed {\n\t\t\t\t// If the flag is not already present, we suggest it as a completion\n\t\t\t\tcompletions = append(completions, getFlagNameCompletions(flag, toComplete)...)\n\t\t\t}\n\t\t}\n\t}\n\n\t// We cannot use finalCmd.Flags() because we may not have called ParsedFlags() for commands\n\t// that have set DisableFlagParsing; it is ParseFlags() that merges the inherited and\n\t// non-inherited flags.\n\tfinalCmd.InheritedFlags().VisitAll(func(flag *pflag.Flag) {\n\t\tdoCompleteRequiredFlags(flag)\n\t})\n\tfinalCmd.NonInheritedFlags().VisitAll(func(flag *pflag.Flag) {\n\t\tdoCompleteRequiredFlags(flag)\n\t})\n\n\treturn completions\n}\n\nfunc checkIfFlagCompletion(finalCmd *Command, args []string, lastArg string) (*pflag.Flag, []string, string, error) {\n\tif finalCmd.DisableFlagParsing {\n\t\t// We only do flag completion if we are allowed to parse flags\n\t\t// This is important for commands which have requested to do their own flag completion.\n\t\treturn nil, args, lastArg, nil\n\t}\n\n\tvar flagName string\n\ttrimmedArgs := args\n\tflagWithEqual := false\n\torgLastArg := lastArg\n\n\t// When doing completion of a flag name, as soon as an argument starts with\n\t// a '-' we know it is a flag.  We cannot use isFlagArg() here as that function\n\t// requires the flag name to be complete\n\tif len(lastArg) > 0 && lastArg[0] == '-' {\n\t\tif index := strings.Index(lastArg, \"=\"); index >= 0 {\n\t\t\t// Flag with an =\n\t\t\tif strings.HasPrefix(lastArg[:index], \"--\") {\n\t\t\t\t// Flag has full name\n\t\t\t\tflagName = lastArg[2:index]\n\t\t\t} else {\n\t\t\t\t// Flag is shorthand\n\t\t\t\t// We have to get the last shorthand flag name\n\t\t\t\t// e.g. `-asd` => d to provide the correct completion\n\t\t\t\t// https://github.com/spf13/cobra/issues/1257\n\t\t\t\tflagName = lastArg[index-1 : index]\n\t\t\t}\n\t\t\tlastArg = lastArg[index+1:]\n\t\t\tflagWithEqual = true\n\t\t} else {\n\t\t\t// Normal flag completion\n\t\t\treturn nil, args, lastArg, nil\n\t\t}\n\t}\n\n\tif len(flagName) == 0 {\n\t\tif len(args) > 0 {\n\t\t\tprevArg := args[len(args)-1]\n\t\t\tif isFlagArg(prevArg) {\n\t\t\t\t// Only consider the case where the flag does not contain an =.\n\t\t\t\t// If the flag contains an = it means it has already been fully processed,\n\t\t\t\t// so we don't need to deal with it here.\n\t\t\t\tif index := strings.Index(prevArg, \"=\"); index < 0 {\n\t\t\t\t\tif strings.HasPrefix(prevArg, \"--\") {\n\t\t\t\t\t\t// Flag has full name\n\t\t\t\t\t\tflagName = prevArg[2:]\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Flag is shorthand\n\t\t\t\t\t\t// We have to get the last shorthand flag name\n\t\t\t\t\t\t// e.g. `-asd` => d to provide the correct completion\n\t\t\t\t\t\t// https://github.com/spf13/cobra/issues/1257\n\t\t\t\t\t\tflagName = prevArg[len(prevArg)-1:]\n\t\t\t\t\t}\n\t\t\t\t\t// Remove the uncompleted flag or else there could be an error created\n\t\t\t\t\t// for an invalid value for that flag\n\t\t\t\t\ttrimmedArgs = args[:len(args)-1]\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif len(flagName) == 0 {\n\t\t// Not doing flag completion\n\t\treturn nil, trimmedArgs, lastArg, nil\n\t}\n\n\tflag := findFlag(finalCmd, flagName)\n\tif flag == nil {\n\t\t// Flag not supported by this command, the interspersed option might be set so return the original args\n\t\treturn nil, args, orgLastArg, &flagCompError{subCommand: finalCmd.Name(), flagName: flagName}\n\t}\n\n\tif !flagWithEqual {\n\t\tif len(flag.NoOptDefVal) != 0 {\n\t\t\t// We had assumed dealing with a two-word flag but the flag is a boolean flag.\n\t\t\t// In that case, there is no value following it, so we are not really doing flag completion.\n\t\t\t// Reset everything to do noun completion.\n\t\t\ttrimmedArgs = args\n\t\t\tflag = nil\n\t\t}\n\t}\n\n\treturn flag, trimmedArgs, lastArg, nil\n}\n\n// InitDefaultCompletionCmd adds a default 'completion' command to c.\n// This function will do nothing if any of the following is true:\n// 1- the feature has been explicitly disabled by the program,\n// 2- c has no subcommands (to avoid creating one),\n// 3- c already has a 'completion' command provided by the program.\nfunc (c *Command) InitDefaultCompletionCmd() {\n\tif c.CompletionOptions.DisableDefaultCmd || !c.HasSubCommands() {\n\t\treturn\n\t}\n\n\tfor _, cmd := range c.commands {\n\t\tif cmd.Name() == compCmdName || cmd.HasAlias(compCmdName) {\n\t\t\t// A completion command is already available\n\t\t\treturn\n\t\t}\n\t}\n\n\thaveNoDescFlag := !c.CompletionOptions.DisableNoDescFlag && !c.CompletionOptions.DisableDescriptions\n\n\tcompletionCmd := &Command{\n\t\tUse:   compCmdName,\n\t\tShort: \"Generate the autocompletion script for the specified shell\",\n\t\tLong: fmt.Sprintf(`Generate the autocompletion script for %[1]s for the specified shell.\nSee each sub-command's help for details on how to use the generated script.\n`, c.Root().Name()),\n\t\tArgs:              NoArgs,\n\t\tValidArgsFunction: NoFileCompletions,\n\t\tHidden:            c.CompletionOptions.HiddenDefaultCmd,\n\t\tGroupID:           c.completionCommandGroupID,\n\t}\n\tc.AddCommand(completionCmd)\n\n\tout := c.OutOrStdout()\n\tnoDesc := c.CompletionOptions.DisableDescriptions\n\tshortDesc := \"Generate the autocompletion script for %s\"\n\tbash := &Command{\n\t\tUse:   \"bash\",\n\t\tShort: fmt.Sprintf(shortDesc, \"bash\"),\n\t\tLong: fmt.Sprintf(`Generate the autocompletion script for the bash shell.\n\nThis script depends on the 'bash-completion' package.\nIf it is not installed already, you can install it via your OS's package manager.\n\nTo load completions in your current shell session:\n\n\tsource <(%[1]s completion bash)\n\nTo load completions for every new session, execute once:\n\n#### Linux:\n\n\t%[1]s completion bash > /etc/bash_completion.d/%[1]s\n\n#### macOS:\n\n\t%[1]s completion bash > $(brew --prefix)/etc/bash_completion.d/%[1]s\n\nYou will need to start a new shell for this setup to take effect.\n`, c.Root().Name()),\n\t\tArgs:                  NoArgs,\n\t\tDisableFlagsInUseLine: true,\n\t\tValidArgsFunction:     NoFileCompletions,\n\t\tRunE: func(cmd *Command, args []string) error {\n\t\t\treturn cmd.Root().GenBashCompletionV2(out, !noDesc)\n\t\t},\n\t}\n\tif haveNoDescFlag {\n\t\tbash.Flags().BoolVar(&noDesc, compCmdNoDescFlagName, compCmdNoDescFlagDefault, compCmdNoDescFlagDesc)\n\t}\n\n\tzsh := &Command{\n\t\tUse:   \"zsh\",\n\t\tShort: fmt.Sprintf(shortDesc, \"zsh\"),\n\t\tLong: fmt.Sprintf(`Generate the autocompletion script for the zsh shell.\n\nIf shell completion is not already enabled in your environment you will need\nto enable it.  You can execute the following once:\n\n\techo \"autoload -U compinit; compinit\" >> ~/.zshrc\n\nTo load completions in your current shell session:\n\n\tsource <(%[1]s completion zsh)\n\nTo load completions for every new session, execute once:\n\n#### Linux:\n\n\t%[1]s completion zsh > \"${fpath[1]}/_%[1]s\"\n\n#### macOS:\n\n\t%[1]s completion zsh > $(brew --prefix)/share/zsh/site-functions/_%[1]s\n\nYou will need to start a new shell for this setup to take effect.\n`, c.Root().Name()),\n\t\tArgs:              NoArgs,\n\t\tValidArgsFunction: NoFileCompletions,\n\t\tRunE: func(cmd *Command, args []string) error {\n\t\t\tif noDesc {\n\t\t\t\treturn cmd.Root().GenZshCompletionNoDesc(out)\n\t\t\t}\n\t\t\treturn cmd.Root().GenZshCompletion(out)\n\t\t},\n\t}\n\tif haveNoDescFlag {\n\t\tzsh.Flags().BoolVar(&noDesc, compCmdNoDescFlagName, compCmdNoDescFlagDefault, compCmdNoDescFlagDesc)\n\t}\n\n\tfish := &Command{\n\t\tUse:   \"fish\",\n\t\tShort: fmt.Sprintf(shortDesc, \"fish\"),\n\t\tLong: fmt.Sprintf(`Generate the autocompletion script for the fish shell.\n\nTo load completions in your current shell session:\n\n\t%[1]s completion fish | source\n\nTo load completions for every new session, execute once:\n\n\t%[1]s completion fish > ~/.config/fish/completions/%[1]s.fish\n\nYou will need to start a new shell for this setup to take effect.\n`, c.Root().Name()),\n\t\tArgs:              NoArgs,\n\t\tValidArgsFunction: NoFileCompletions,\n\t\tRunE: func(cmd *Command, args []string) error {\n\t\t\treturn cmd.Root().GenFishCompletion(out, !noDesc)\n\t\t},\n\t}\n\tif haveNoDescFlag {\n\t\tfish.Flags().BoolVar(&noDesc, compCmdNoDescFlagName, compCmdNoDescFlagDefault, compCmdNoDescFlagDesc)\n\t}\n\n\tpowershell := &Command{\n\t\tUse:   \"powershell\",\n\t\tShort: fmt.Sprintf(shortDesc, \"powershell\"),\n\t\tLong: fmt.Sprintf(`Generate the autocompletion script for powershell.\n\nTo load completions in your current shell session:\n\n\t%[1]s completion powershell | Out-String | Invoke-Expression\n\nTo load completions for every new session, add the output of the above command\nto your powershell profile.\n`, c.Root().Name()),\n\t\tArgs:              NoArgs,\n\t\tValidArgsFunction: NoFileCompletions,\n\t\tRunE: func(cmd *Command, args []string) error {\n\t\t\tif noDesc {\n\t\t\t\treturn cmd.Root().GenPowerShellCompletion(out)\n\t\t\t}\n\t\t\treturn cmd.Root().GenPowerShellCompletionWithDesc(out)\n\n\t\t},\n\t}\n\tif haveNoDescFlag {\n\t\tpowershell.Flags().BoolVar(&noDesc, compCmdNoDescFlagName, compCmdNoDescFlagDefault, compCmdNoDescFlagDesc)\n\t}\n\n\tcompletionCmd.AddCommand(bash, zsh, fish, powershell)\n}\n\nfunc findFlag(cmd *Command, name string) *pflag.Flag {\n\tflagSet := cmd.Flags()\n\tif len(name) == 1 {\n\t\t// First convert the short flag into a long flag\n\t\t// as the cmd.Flag() search only accepts long flags\n\t\tif short := flagSet.ShorthandLookup(name); short != nil {\n\t\t\tname = short.Name\n\t\t} else {\n\t\t\tset := cmd.InheritedFlags()\n\t\t\tif short = set.ShorthandLookup(name); short != nil {\n\t\t\t\tname = short.Name\n\t\t\t} else {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t}\n\treturn cmd.Flag(name)\n}\n\n// CompDebug prints the specified string to the same file as where the\n// completion script prints its logs.\n// Note that completion printouts should never be on stdout as they would\n// be wrongly interpreted as actual completion choices by the completion script.\nfunc CompDebug(msg string, printToStdErr bool) {\n\tmsg = fmt.Sprintf(\"[Debug] %s\", msg)\n\n\t// Such logs are only printed when the user has set the environment\n\t// variable BASH_COMP_DEBUG_FILE to the path of some file to be used.\n\tif path := os.Getenv(\"BASH_COMP_DEBUG_FILE\"); path != \"\" {\n\t\tf, err := os.OpenFile(path,\n\t\t\tos.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)\n\t\tif err == nil {\n\t\t\tdefer f.Close()\n\t\t\tWriteStringAndCheck(f, msg)\n\t\t}\n\t}\n\n\tif printToStdErr {\n\t\t// Must print to stderr for this not to be read by the completion script.\n\t\tfmt.Fprint(os.Stderr, msg)\n\t}\n}\n\n// CompDebugln prints the specified string with a newline at the end\n// to the same file as where the completion script prints its logs.\n// Such logs are only printed when the user has set the environment\n// variable BASH_COMP_DEBUG_FILE to the path of some file to be used.\nfunc CompDebugln(msg string, printToStdErr bool) {\n\tCompDebug(fmt.Sprintf(\"%s\\n\", msg), printToStdErr)\n}\n\n// CompError prints the specified completion message to stderr.\nfunc CompError(msg string) {\n\tmsg = fmt.Sprintf(\"[Error] %s\", msg)\n\tCompDebug(msg, true)\n}\n\n// CompErrorln prints the specified completion message to stderr with a newline at the end.\nfunc CompErrorln(msg string) {\n\tCompError(fmt.Sprintf(\"%s\\n\", msg))\n}\n\n// These values should not be changed: users will be using them explicitly.\nconst (\n\tconfigEnvVarGlobalPrefix       = \"COBRA\"\n\tconfigEnvVarSuffixDescriptions = \"COMPLETION_DESCRIPTIONS\"\n)\n\nvar configEnvVarPrefixSubstRegexp = regexp.MustCompile(`[^A-Z0-9_]`)\n\n// configEnvVar returns the name of the program-specific configuration environment\n// variable.  It has the format <PROGRAM>_<SUFFIX> where <PROGRAM> is the name of the\n// root command in upper case, with all non-ASCII-alphanumeric characters replaced by `_`.\nfunc configEnvVar(name, suffix string) string {\n\t// This format should not be changed: users will be using it explicitly.\n\tv := strings.ToUpper(fmt.Sprintf(\"%s_%s\", name, suffix))\n\tv = configEnvVarPrefixSubstRegexp.ReplaceAllString(v, \"_\")\n\treturn v\n}\n\n// getEnvConfig returns the value of the configuration environment variable\n// <PROGRAM>_<SUFFIX> where <PROGRAM> is the name of the root command in upper\n// case, with all non-ASCII-alphanumeric characters replaced by `_`.\n// If the value is empty or not set, the value of the environment variable\n// COBRA_<SUFFIX> is returned instead.\nfunc getEnvConfig(cmd *Command, suffix string) string {\n\tv := os.Getenv(configEnvVar(cmd.Root().Name(), suffix))\n\tif v == \"\" {\n\t\tv = os.Getenv(configEnvVar(configEnvVarGlobalPrefix, suffix))\n\t}\n\treturn v\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/fish_completions.go",
    "content": "// Copyright 2013-2023 The Cobra Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage cobra\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"strings\"\n)\n\nfunc genFishComp(buf io.StringWriter, name string, includeDesc bool) {\n\t// Variables should not contain a '-' or ':' character\n\tnameForVar := name\n\tnameForVar = strings.ReplaceAll(nameForVar, \"-\", \"_\")\n\tnameForVar = strings.ReplaceAll(nameForVar, \":\", \"_\")\n\n\tcompCmd := ShellCompRequestCmd\n\tif !includeDesc {\n\t\tcompCmd = ShellCompNoDescRequestCmd\n\t}\n\tWriteStringAndCheck(buf, fmt.Sprintf(\"# fish completion for %-36s -*- shell-script -*-\\n\", name))\n\tWriteStringAndCheck(buf, fmt.Sprintf(`\nfunction __%[1]s_debug\n    set -l file \"$BASH_COMP_DEBUG_FILE\"\n    if test -n \"$file\"\n        echo \"$argv\" >> $file\n    end\nend\n\nfunction __%[1]s_perform_completion\n    __%[1]s_debug \"Starting __%[1]s_perform_completion\"\n\n    # Extract all args except the last one\n    set -l args (commandline -opc)\n    # Extract the last arg and escape it in case it is a space\n    set -l lastArg (string escape -- (commandline -ct))\n\n    __%[1]s_debug \"args: $args\"\n    __%[1]s_debug \"last arg: $lastArg\"\n\n    # Disable ActiveHelp which is not supported for fish shell\n    set -l requestComp \"%[10]s=0 $args[1] %[3]s $args[2..-1] $lastArg\"\n\n    __%[1]s_debug \"Calling $requestComp\"\n    set -l results (eval $requestComp 2> /dev/null)\n\n    # Some programs may output extra empty lines after the directive.\n    # Let's ignore them or else it will break completion.\n    # Ref: https://github.com/spf13/cobra/issues/1279\n    for line in $results[-1..1]\n        if test (string trim -- $line) = \"\"\n            # Found an empty line, remove it\n            set results $results[1..-2]\n        else\n            # Found non-empty line, we have our proper output\n            break\n        end\n    end\n\n    set -l comps $results[1..-2]\n    set -l directiveLine $results[-1]\n\n    # For Fish, when completing a flag with an = (e.g., <program> -n=<TAB>)\n    # completions must be prefixed with the flag\n    set -l flagPrefix (string match -r -- '-.*=' \"$lastArg\")\n\n    __%[1]s_debug \"Comps: $comps\"\n    __%[1]s_debug \"DirectiveLine: $directiveLine\"\n    __%[1]s_debug \"flagPrefix: $flagPrefix\"\n\n    for comp in $comps\n        printf \"%%s%%s\\n\" \"$flagPrefix\" \"$comp\"\n    end\n\n    printf \"%%s\\n\" \"$directiveLine\"\nend\n\n# this function limits calls to __%[1]s_perform_completion, by caching the result behind $__%[1]s_perform_completion_once_result\nfunction __%[1]s_perform_completion_once\n    __%[1]s_debug \"Starting __%[1]s_perform_completion_once\"\n\n    if test -n \"$__%[1]s_perform_completion_once_result\"\n        __%[1]s_debug \"Seems like a valid result already exists, skipping __%[1]s_perform_completion\"\n        return 0\n    end\n\n    set --global __%[1]s_perform_completion_once_result (__%[1]s_perform_completion)\n    if test -z \"$__%[1]s_perform_completion_once_result\"\n        __%[1]s_debug \"No completions, probably due to a failure\"\n        return 1\n    end\n\n    __%[1]s_debug \"Performed completions and set __%[1]s_perform_completion_once_result\"\n    return 0\nend\n\n# this function is used to clear the $__%[1]s_perform_completion_once_result variable after completions are run\nfunction __%[1]s_clear_perform_completion_once_result\n    __%[1]s_debug \"\"\n    __%[1]s_debug \"========= clearing previously set __%[1]s_perform_completion_once_result variable ==========\"\n    set --erase __%[1]s_perform_completion_once_result\n    __%[1]s_debug \"Successfully erased the variable __%[1]s_perform_completion_once_result\"\nend\n\nfunction __%[1]s_requires_order_preservation\n    __%[1]s_debug \"\"\n    __%[1]s_debug \"========= checking if order preservation is required ==========\"\n\n    __%[1]s_perform_completion_once\n    if test -z \"$__%[1]s_perform_completion_once_result\"\n        __%[1]s_debug \"Error determining if order preservation is required\"\n        return 1\n    end\n\n    set -l directive (string sub --start 2 $__%[1]s_perform_completion_once_result[-1])\n    __%[1]s_debug \"Directive is: $directive\"\n\n    set -l shellCompDirectiveKeepOrder %[9]d\n    set -l keeporder (math (math --scale 0 $directive / $shellCompDirectiveKeepOrder) %% 2)\n    __%[1]s_debug \"Keeporder is: $keeporder\"\n\n    if test $keeporder -ne 0\n        __%[1]s_debug \"This does require order preservation\"\n        return 0\n    end\n\n    __%[1]s_debug \"This doesn't require order preservation\"\n    return 1\nend\n\n\n# This function does two things:\n# - Obtain the completions and store them in the global __%[1]s_comp_results\n# - Return false if file completion should be performed\nfunction __%[1]s_prepare_completions\n    __%[1]s_debug \"\"\n    __%[1]s_debug \"========= starting completion logic ==========\"\n\n    # Start fresh\n    set --erase __%[1]s_comp_results\n\n    __%[1]s_perform_completion_once\n    __%[1]s_debug \"Completion results: $__%[1]s_perform_completion_once_result\"\n\n    if test -z \"$__%[1]s_perform_completion_once_result\"\n        __%[1]s_debug \"No completion, probably due to a failure\"\n        # Might as well do file completion, in case it helps\n        return 1\n    end\n\n    set -l directive (string sub --start 2 $__%[1]s_perform_completion_once_result[-1])\n    set --global __%[1]s_comp_results $__%[1]s_perform_completion_once_result[1..-2]\n\n    __%[1]s_debug \"Completions are: $__%[1]s_comp_results\"\n    __%[1]s_debug \"Directive is: $directive\"\n\n    set -l shellCompDirectiveError %[4]d\n    set -l shellCompDirectiveNoSpace %[5]d\n    set -l shellCompDirectiveNoFileComp %[6]d\n    set -l shellCompDirectiveFilterFileExt %[7]d\n    set -l shellCompDirectiveFilterDirs %[8]d\n\n    if test -z \"$directive\"\n        set directive 0\n    end\n\n    set -l compErr (math (math --scale 0 $directive / $shellCompDirectiveError) %% 2)\n    if test $compErr -eq 1\n        __%[1]s_debug \"Received error directive: aborting.\"\n        # Might as well do file completion, in case it helps\n        return 1\n    end\n\n    set -l filefilter (math (math --scale 0 $directive / $shellCompDirectiveFilterFileExt) %% 2)\n    set -l dirfilter (math (math --scale 0 $directive / $shellCompDirectiveFilterDirs) %% 2)\n    if test $filefilter -eq 1; or test $dirfilter -eq 1\n        __%[1]s_debug \"File extension filtering or directory filtering not supported\"\n        # Do full file completion instead\n        return 1\n    end\n\n    set -l nospace (math (math --scale 0 $directive / $shellCompDirectiveNoSpace) %% 2)\n    set -l nofiles (math (math --scale 0 $directive / $shellCompDirectiveNoFileComp) %% 2)\n\n    __%[1]s_debug \"nospace: $nospace, nofiles: $nofiles\"\n\n    # If we want to prevent a space, or if file completion is NOT disabled,\n    # we need to count the number of valid completions.\n    # To do so, we will filter on prefix as the completions we have received\n    # may not already be filtered so as to allow fish to match on different\n    # criteria than the prefix.\n    if test $nospace -ne 0; or test $nofiles -eq 0\n        set -l prefix (commandline -t | string escape --style=regex)\n        __%[1]s_debug \"prefix: $prefix\"\n\n        set -l completions (string match -r -- \"^$prefix.*\" $__%[1]s_comp_results)\n        set --global __%[1]s_comp_results $completions\n        __%[1]s_debug \"Filtered completions are: $__%[1]s_comp_results\"\n\n        # Important not to quote the variable for count to work\n        set -l numComps (count $__%[1]s_comp_results)\n        __%[1]s_debug \"numComps: $numComps\"\n\n        if test $numComps -eq 1; and test $nospace -ne 0\n            # We must first split on \\t to get rid of the descriptions to be\n            # able to check what the actual completion will be.\n            # We don't need descriptions anyway since there is only a single\n            # real completion which the shell will expand immediately.\n            set -l split (string split --max 1 \\t $__%[1]s_comp_results[1])\n\n            # Fish won't add a space if the completion ends with any\n            # of the following characters: @=/:.,\n            set -l lastChar (string sub -s -1 -- $split)\n            if not string match -r -q \"[@=/:.,]\" -- \"$lastChar\"\n                # In other cases, to support the \"nospace\" directive we trick the shell\n                # by outputting an extra, longer completion.\n                __%[1]s_debug \"Adding second completion to perform nospace directive\"\n                set --global __%[1]s_comp_results $split[1] $split[1].\n                __%[1]s_debug \"Completions are now: $__%[1]s_comp_results\"\n            end\n        end\n\n        if test $numComps -eq 0; and test $nofiles -eq 0\n            # To be consistent with bash and zsh, we only trigger file\n            # completion when there are no other completions\n            __%[1]s_debug \"Requesting file completion\"\n            return 1\n        end\n    end\n\n    return 0\nend\n\n# Since Fish completions are only loaded once the user triggers them, we trigger them ourselves\n# so we can properly delete any completions provided by another script.\n# Only do this if the program can be found, or else fish may print some errors; besides,\n# the existing completions will only be loaded if the program can be found.\nif type -q \"%[2]s\"\n    # The space after the program name is essential to trigger completion for the program\n    # and not completion of the program name itself.\n    # Also, we use '> /dev/null 2>&1' since '&>' is not supported in older versions of fish.\n    complete --do-complete \"%[2]s \" > /dev/null 2>&1\nend\n\n# Remove any pre-existing completions for the program since we will be handling all of them.\ncomplete -c %[2]s -e\n\n# this will get called after the two calls below and clear the $__%[1]s_perform_completion_once_result global\ncomplete -c %[2]s -n '__%[1]s_clear_perform_completion_once_result'\n# The call to __%[1]s_prepare_completions will setup __%[1]s_comp_results\n# which provides the program's completion choices.\n# If this doesn't require order preservation, we don't use the -k flag\ncomplete -c %[2]s -n 'not __%[1]s_requires_order_preservation && __%[1]s_prepare_completions' -f -a '$__%[1]s_comp_results'\n# otherwise we use the -k flag\ncomplete -k -c %[2]s -n '__%[1]s_requires_order_preservation && __%[1]s_prepare_completions' -f -a '$__%[1]s_comp_results'\n`, nameForVar, name, compCmd,\n\t\tShellCompDirectiveError, ShellCompDirectiveNoSpace, ShellCompDirectiveNoFileComp,\n\t\tShellCompDirectiveFilterFileExt, ShellCompDirectiveFilterDirs, ShellCompDirectiveKeepOrder, activeHelpEnvVar(name)))\n}\n\n// GenFishCompletion generates fish completion file and writes to the passed writer.\nfunc (c *Command) GenFishCompletion(w io.Writer, includeDesc bool) error {\n\tbuf := new(bytes.Buffer)\n\tgenFishComp(buf, c.Name(), includeDesc)\n\t_, err := buf.WriteTo(w)\n\treturn err\n}\n\n// GenFishCompletionFile generates fish completion file.\nfunc (c *Command) GenFishCompletionFile(filename string, includeDesc bool) error {\n\toutFile, err := os.Create(filename)\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer outFile.Close()\n\n\treturn c.GenFishCompletion(outFile, includeDesc)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/flag_groups.go",
    "content": "// Copyright 2013-2023 The Cobra Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage cobra\n\nimport (\n\t\"fmt\"\n\t\"sort\"\n\t\"strings\"\n\n\tflag \"github.com/spf13/pflag\"\n)\n\nconst (\n\trequiredAsGroupAnnotation   = \"cobra_annotation_required_if_others_set\"\n\toneRequiredAnnotation       = \"cobra_annotation_one_required\"\n\tmutuallyExclusiveAnnotation = \"cobra_annotation_mutually_exclusive\"\n)\n\n// MarkFlagsRequiredTogether marks the given flags with annotations so that Cobra errors\n// if the command is invoked with a subset (but not all) of the given flags.\nfunc (c *Command) MarkFlagsRequiredTogether(flagNames ...string) {\n\tc.mergePersistentFlags()\n\tfor _, v := range flagNames {\n\t\tf := c.Flags().Lookup(v)\n\t\tif f == nil {\n\t\t\tpanic(fmt.Sprintf(\"Failed to find flag %q and mark it as being required in a flag group\", v))\n\t\t}\n\t\tif err := c.Flags().SetAnnotation(v, requiredAsGroupAnnotation, append(f.Annotations[requiredAsGroupAnnotation], strings.Join(flagNames, \" \"))); err != nil {\n\t\t\t// Only errs if the flag isn't found.\n\t\t\tpanic(err)\n\t\t}\n\t}\n}\n\n// MarkFlagsOneRequired marks the given flags with annotations so that Cobra errors\n// if the command is invoked without at least one flag from the given set of flags.\nfunc (c *Command) MarkFlagsOneRequired(flagNames ...string) {\n\tc.mergePersistentFlags()\n\tfor _, v := range flagNames {\n\t\tf := c.Flags().Lookup(v)\n\t\tif f == nil {\n\t\t\tpanic(fmt.Sprintf(\"Failed to find flag %q and mark it as being in a one-required flag group\", v))\n\t\t}\n\t\tif err := c.Flags().SetAnnotation(v, oneRequiredAnnotation, append(f.Annotations[oneRequiredAnnotation], strings.Join(flagNames, \" \"))); err != nil {\n\t\t\t// Only errs if the flag isn't found.\n\t\t\tpanic(err)\n\t\t}\n\t}\n}\n\n// MarkFlagsMutuallyExclusive marks the given flags with annotations so that Cobra errors\n// if the command is invoked with more than one flag from the given set of flags.\nfunc (c *Command) MarkFlagsMutuallyExclusive(flagNames ...string) {\n\tc.mergePersistentFlags()\n\tfor _, v := range flagNames {\n\t\tf := c.Flags().Lookup(v)\n\t\tif f == nil {\n\t\t\tpanic(fmt.Sprintf(\"Failed to find flag %q and mark it as being in a mutually exclusive flag group\", v))\n\t\t}\n\t\t// Each time this is called is a single new entry; this allows it to be a member of multiple groups if needed.\n\t\tif err := c.Flags().SetAnnotation(v, mutuallyExclusiveAnnotation, append(f.Annotations[mutuallyExclusiveAnnotation], strings.Join(flagNames, \" \"))); err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n}\n\n// ValidateFlagGroups validates the mutuallyExclusive/oneRequired/requiredAsGroup logic and returns the\n// first error encountered.\nfunc (c *Command) ValidateFlagGroups() error {\n\tif c.DisableFlagParsing {\n\t\treturn nil\n\t}\n\n\tflags := c.Flags()\n\n\t// groupStatus format is the list of flags as a unique ID,\n\t// then a map of each flag name and whether it is set or not.\n\tgroupStatus := map[string]map[string]bool{}\n\toneRequiredGroupStatus := map[string]map[string]bool{}\n\tmutuallyExclusiveGroupStatus := map[string]map[string]bool{}\n\tflags.VisitAll(func(pflag *flag.Flag) {\n\t\tprocessFlagForGroupAnnotation(flags, pflag, requiredAsGroupAnnotation, groupStatus)\n\t\tprocessFlagForGroupAnnotation(flags, pflag, oneRequiredAnnotation, oneRequiredGroupStatus)\n\t\tprocessFlagForGroupAnnotation(flags, pflag, mutuallyExclusiveAnnotation, mutuallyExclusiveGroupStatus)\n\t})\n\n\tif err := validateRequiredFlagGroups(groupStatus); err != nil {\n\t\treturn err\n\t}\n\tif err := validateOneRequiredFlagGroups(oneRequiredGroupStatus); err != nil {\n\t\treturn err\n\t}\n\tif err := validateExclusiveFlagGroups(mutuallyExclusiveGroupStatus); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc hasAllFlags(fs *flag.FlagSet, flagnames ...string) bool {\n\tfor _, fname := range flagnames {\n\t\tf := fs.Lookup(fname)\n\t\tif f == nil {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc processFlagForGroupAnnotation(flags *flag.FlagSet, pflag *flag.Flag, annotation string, groupStatus map[string]map[string]bool) {\n\tgroupInfo, found := pflag.Annotations[annotation]\n\tif found {\n\t\tfor _, group := range groupInfo {\n\t\t\tif groupStatus[group] == nil {\n\t\t\t\tflagnames := strings.Split(group, \" \")\n\n\t\t\t\t// Only consider this flag group at all if all the flags are defined.\n\t\t\t\tif !hasAllFlags(flags, flagnames...) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tgroupStatus[group] = make(map[string]bool, len(flagnames))\n\t\t\t\tfor _, name := range flagnames {\n\t\t\t\t\tgroupStatus[group][name] = false\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tgroupStatus[group][pflag.Name] = pflag.Changed\n\t\t}\n\t}\n}\n\nfunc validateRequiredFlagGroups(data map[string]map[string]bool) error {\n\tkeys := sortedKeys(data)\n\tfor _, flagList := range keys {\n\t\tflagnameAndStatus := data[flagList]\n\n\t\tunset := []string{}\n\t\tfor flagname, isSet := range flagnameAndStatus {\n\t\t\tif !isSet {\n\t\t\t\tunset = append(unset, flagname)\n\t\t\t}\n\t\t}\n\t\tif len(unset) == len(flagnameAndStatus) || len(unset) == 0 {\n\t\t\tcontinue\n\t\t}\n\n\t\t// Sort values, so they can be tested/scripted against consistently.\n\t\tsort.Strings(unset)\n\t\treturn fmt.Errorf(\"if any flags in the group [%v] are set they must all be set; missing %v\", flagList, unset)\n\t}\n\n\treturn nil\n}\n\nfunc validateOneRequiredFlagGroups(data map[string]map[string]bool) error {\n\tkeys := sortedKeys(data)\n\tfor _, flagList := range keys {\n\t\tflagnameAndStatus := data[flagList]\n\t\tvar set []string\n\t\tfor flagname, isSet := range flagnameAndStatus {\n\t\t\tif isSet {\n\t\t\t\tset = append(set, flagname)\n\t\t\t}\n\t\t}\n\t\tif len(set) >= 1 {\n\t\t\tcontinue\n\t\t}\n\n\t\t// Sort values, so they can be tested/scripted against consistently.\n\t\tsort.Strings(set)\n\t\treturn fmt.Errorf(\"at least one of the flags in the group [%v] is required\", flagList)\n\t}\n\treturn nil\n}\n\nfunc validateExclusiveFlagGroups(data map[string]map[string]bool) error {\n\tkeys := sortedKeys(data)\n\tfor _, flagList := range keys {\n\t\tflagnameAndStatus := data[flagList]\n\t\tvar set []string\n\t\tfor flagname, isSet := range flagnameAndStatus {\n\t\t\tif isSet {\n\t\t\t\tset = append(set, flagname)\n\t\t\t}\n\t\t}\n\t\tif len(set) == 0 || len(set) == 1 {\n\t\t\tcontinue\n\t\t}\n\n\t\t// Sort values, so they can be tested/scripted against consistently.\n\t\tsort.Strings(set)\n\t\treturn fmt.Errorf(\"if any flags in the group [%v] are set none of the others can be; %v were all set\", flagList, set)\n\t}\n\treturn nil\n}\n\nfunc sortedKeys(m map[string]map[string]bool) []string {\n\tkeys := make([]string, len(m))\n\ti := 0\n\tfor k := range m {\n\t\tkeys[i] = k\n\t\ti++\n\t}\n\tsort.Strings(keys)\n\treturn keys\n}\n\n// enforceFlagGroupsForCompletion will do the following:\n// - when a flag in a group is present, other flags in the group will be marked required\n// - when none of the flags in a one-required group are present, all flags in the group will be marked required\n// - when a flag in a mutually exclusive group is present, other flags in the group will be marked as hidden\n// This allows the standard completion logic to behave appropriately for flag groups\nfunc (c *Command) enforceFlagGroupsForCompletion() {\n\tif c.DisableFlagParsing {\n\t\treturn\n\t}\n\n\tflags := c.Flags()\n\tgroupStatus := map[string]map[string]bool{}\n\toneRequiredGroupStatus := map[string]map[string]bool{}\n\tmutuallyExclusiveGroupStatus := map[string]map[string]bool{}\n\tc.Flags().VisitAll(func(pflag *flag.Flag) {\n\t\tprocessFlagForGroupAnnotation(flags, pflag, requiredAsGroupAnnotation, groupStatus)\n\t\tprocessFlagForGroupAnnotation(flags, pflag, oneRequiredAnnotation, oneRequiredGroupStatus)\n\t\tprocessFlagForGroupAnnotation(flags, pflag, mutuallyExclusiveAnnotation, mutuallyExclusiveGroupStatus)\n\t})\n\n\t// If a flag that is part of a group is present, we make all the other flags\n\t// of that group required so that the shell completion suggests them automatically\n\tfor flagList, flagnameAndStatus := range groupStatus {\n\t\tfor _, isSet := range flagnameAndStatus {\n\t\t\tif isSet {\n\t\t\t\t// One of the flags of the group is set, mark the other ones as required\n\t\t\t\tfor _, fName := range strings.Split(flagList, \" \") {\n\t\t\t\t\t_ = c.MarkFlagRequired(fName)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// If none of the flags of a one-required group are present, we make all the flags\n\t// of that group required so that the shell completion suggests them automatically\n\tfor flagList, flagnameAndStatus := range oneRequiredGroupStatus {\n\t\tisSet := false\n\n\t\tfor _, isSet = range flagnameAndStatus {\n\t\t\tif isSet {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\t// None of the flags of the group are set, mark all flags in the group\n\t\t// as required\n\t\tif !isSet {\n\t\t\tfor _, fName := range strings.Split(flagList, \" \") {\n\t\t\t\t_ = c.MarkFlagRequired(fName)\n\t\t\t}\n\t\t}\n\t}\n\n\t// If a flag that is mutually exclusive to others is present, we hide the other\n\t// flags of that group so the shell completion does not suggest them\n\tfor flagList, flagnameAndStatus := range mutuallyExclusiveGroupStatus {\n\t\tfor flagName, isSet := range flagnameAndStatus {\n\t\t\tif isSet {\n\t\t\t\t// One of the flags of the mutually exclusive group is set, mark the other ones as hidden\n\t\t\t\t// Don't mark the flag that is already set as hidden because it may be an\n\t\t\t\t// array or slice flag and therefore must continue being suggested\n\t\t\t\tfor _, fName := range strings.Split(flagList, \" \") {\n\t\t\t\t\tif fName != flagName {\n\t\t\t\t\t\tflag := c.Flags().Lookup(fName)\n\t\t\t\t\t\tflag.Hidden = true\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/powershell_completions.go",
    "content": "// Copyright 2013-2023 The Cobra Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// The generated scripts require PowerShell v5.0+ (which comes Windows 10, but\n// can be downloaded separately for windows 7 or 8.1).\n\npackage cobra\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"strings\"\n)\n\nfunc genPowerShellComp(buf io.StringWriter, name string, includeDesc bool) {\n\t// Variables should not contain a '-' or ':' character\n\tnameForVar := name\n\tnameForVar = strings.ReplaceAll(nameForVar, \"-\", \"_\")\n\tnameForVar = strings.ReplaceAll(nameForVar, \":\", \"_\")\n\n\tcompCmd := ShellCompRequestCmd\n\tif !includeDesc {\n\t\tcompCmd = ShellCompNoDescRequestCmd\n\t}\n\tWriteStringAndCheck(buf, fmt.Sprintf(`# powershell completion for %-36[1]s -*- shell-script -*-\n\nfunction __%[1]s_debug {\n    if ($env:BASH_COMP_DEBUG_FILE) {\n        \"$args\" | Out-File -Append -FilePath \"$env:BASH_COMP_DEBUG_FILE\"\n    }\n}\n\nfilter __%[1]s_escapeStringWithSpecialChars {\n`+\"    $_ -replace '\\\\s|#|@|\\\\$|;|,|''|\\\\{|\\\\}|\\\\(|\\\\)|\\\"|`|\\\\||<|>|&','`$&'\"+`\n}\n\n[scriptblock]${__%[2]sCompleterBlock} = {\n    param(\n            $WordToComplete,\n            $CommandAst,\n            $CursorPosition\n        )\n\n    # Get the current command line and convert into a string\n    $Command = $CommandAst.CommandElements\n    $Command = \"$Command\"\n\n    __%[1]s_debug \"\"\n    __%[1]s_debug \"========= starting completion logic ==========\"\n    __%[1]s_debug \"WordToComplete: $WordToComplete Command: $Command CursorPosition: $CursorPosition\"\n\n    # The user could have moved the cursor backwards on the command-line.\n    # We need to trigger completion from the $CursorPosition location, so we need\n    # to truncate the command-line ($Command) up to the $CursorPosition location.\n    # Make sure the $Command is longer then the $CursorPosition before we truncate.\n    # This happens because the $Command does not include the last space.\n    if ($Command.Length -gt $CursorPosition) {\n        $Command=$Command.Substring(0,$CursorPosition)\n    }\n    __%[1]s_debug \"Truncated command: $Command\"\n\n    $ShellCompDirectiveError=%[4]d\n    $ShellCompDirectiveNoSpace=%[5]d\n    $ShellCompDirectiveNoFileComp=%[6]d\n    $ShellCompDirectiveFilterFileExt=%[7]d\n    $ShellCompDirectiveFilterDirs=%[8]d\n    $ShellCompDirectiveKeepOrder=%[9]d\n\n    # Prepare the command to request completions for the program.\n    # Split the command at the first space to separate the program and arguments.\n    $Program,$Arguments = $Command.Split(\" \",2)\n\n    $RequestComp=\"$Program %[3]s $Arguments\"\n    __%[1]s_debug \"RequestComp: $RequestComp\"\n\n    # we cannot use $WordToComplete because it\n    # has the wrong values if the cursor was moved\n    # so use the last argument\n    if ($WordToComplete -ne \"\" ) {\n        $WordToComplete = $Arguments.Split(\" \")[-1]\n    }\n    __%[1]s_debug \"New WordToComplete: $WordToComplete\"\n\n\n    # Check for flag with equal sign\n    $IsEqualFlag = ($WordToComplete -Like \"--*=*\" )\n    if ( $IsEqualFlag ) {\n        __%[1]s_debug \"Completing equal sign flag\"\n        # Remove the flag part\n        $Flag,$WordToComplete = $WordToComplete.Split(\"=\",2)\n    }\n\n    if ( $WordToComplete -eq \"\" -And ( -Not $IsEqualFlag )) {\n        # If the last parameter is complete (there is a space following it)\n        # We add an extra empty parameter so we can indicate this to the go method.\n        __%[1]s_debug \"Adding extra empty parameter\"\n        # PowerShell 7.2+ changed the way how the arguments are passed to executables,\n        # so for pre-7.2 or when Legacy argument passing is enabled we need to use\n`+\"        # `\\\"`\\\" to pass an empty argument, a \\\"\\\" or '' does not work!!!\"+`\n        if ($PSVersionTable.PsVersion -lt [version]'7.2.0' -or\n            ($PSVersionTable.PsVersion -lt [version]'7.3.0' -and -not [ExperimentalFeature]::IsEnabled(\"PSNativeCommandArgumentPassing\")) -or\n            (($PSVersionTable.PsVersion -ge [version]'7.3.0' -or [ExperimentalFeature]::IsEnabled(\"PSNativeCommandArgumentPassing\")) -and\n              $PSNativeCommandArgumentPassing -eq 'Legacy')) {\n`+\"             $RequestComp=\\\"$RequestComp\\\" + ' `\\\"`\\\"'\"+`\n        } else {\n             $RequestComp=\"$RequestComp\" + ' \"\"'\n        }\n    }\n\n    __%[1]s_debug \"Calling $RequestComp\"\n    # First disable ActiveHelp which is not supported for Powershell\n    ${env:%[10]s}=0\n\n    #call the command store the output in $out and redirect stderr and stdout to null\n    # $Out is an array contains each line per element\n    Invoke-Expression -OutVariable out \"$RequestComp\" 2>&1 | Out-Null\n\n    # get directive from last line\n    [int]$Directive = $Out[-1].TrimStart(':')\n    if ($Directive -eq \"\") {\n        # There is no directive specified\n        $Directive = 0\n    }\n    __%[1]s_debug \"The completion directive is: $Directive\"\n\n    # remove directive (last element) from out\n    $Out = $Out | Where-Object { $_ -ne $Out[-1] }\n    __%[1]s_debug \"The completions are: $Out\"\n\n    if (($Directive -band $ShellCompDirectiveError) -ne 0 ) {\n        # Error code.  No completion.\n        __%[1]s_debug \"Received error from custom completion go code\"\n        return\n    }\n\n    $Longest = 0\n    [Array]$Values = $Out | ForEach-Object {\n        #Split the output in name and description\n`+\"        $Name, $Description = $_.Split(\\\"`t\\\",2)\"+`\n        __%[1]s_debug \"Name: $Name Description: $Description\"\n\n        # Look for the longest completion so that we can format things nicely\n        if ($Longest -lt $Name.Length) {\n            $Longest = $Name.Length\n        }\n\n        # Set the description to a one space string if there is none set.\n        # This is needed because the CompletionResult does not accept an empty string as argument\n        if (-Not $Description) {\n            $Description = \" \"\n        }\n        @{Name=\"$Name\";Description=\"$Description\"}\n    }\n\n\n    $Space = \" \"\n    if (($Directive -band $ShellCompDirectiveNoSpace) -ne 0 ) {\n        # remove the space here\n        __%[1]s_debug \"ShellCompDirectiveNoSpace is called\"\n        $Space = \"\"\n    }\n\n    if ((($Directive -band $ShellCompDirectiveFilterFileExt) -ne 0 ) -or\n       (($Directive -band $ShellCompDirectiveFilterDirs) -ne 0 ))  {\n        __%[1]s_debug \"ShellCompDirectiveFilterFileExt ShellCompDirectiveFilterDirs are not supported\"\n\n        # return here to prevent the completion of the extensions\n        return\n    }\n\n    $Values = $Values | Where-Object {\n        # filter the result\n        $_.Name -like \"$WordToComplete*\"\n\n        # Join the flag back if we have an equal sign flag\n        if ( $IsEqualFlag ) {\n            __%[1]s_debug \"Join the equal sign flag back to the completion value\"\n            $_.Name = $Flag + \"=\" + $_.Name\n        }\n    }\n\n    # we sort the values in ascending order by name if keep order isn't passed\n    if (($Directive -band $ShellCompDirectiveKeepOrder) -eq 0 ) {\n        $Values = $Values | Sort-Object -Property Name\n    }\n\n    if (($Directive -band $ShellCompDirectiveNoFileComp) -ne 0 ) {\n        __%[1]s_debug \"ShellCompDirectiveNoFileComp is called\"\n\n        if ($Values.Length -eq 0) {\n            # Just print an empty string here so the\n            # shell does not start to complete paths.\n            # We cannot use CompletionResult here because\n            # it does not accept an empty string as argument.\n            \"\"\n            return\n        }\n    }\n\n    # Get the current mode\n    $Mode = (Get-PSReadLineKeyHandler | Where-Object {$_.Key -eq \"Tab\" }).Function\n    __%[1]s_debug \"Mode: $Mode\"\n\n    $Values | ForEach-Object {\n\n        # store temporary because switch will overwrite $_\n        $comp = $_\n\n        # PowerShell supports three different completion modes\n        # - TabCompleteNext (default windows style - on each key press the next option is displayed)\n        # - Complete (works like bash)\n        # - MenuComplete (works like zsh)\n        # You set the mode with Set-PSReadLineKeyHandler -Key Tab -Function <mode>\n\n        # CompletionResult Arguments:\n        # 1) CompletionText text to be used as the auto completion result\n        # 2) ListItemText   text to be displayed in the suggestion list\n        # 3) ResultType     type of completion result\n        # 4) ToolTip        text for the tooltip with details about the object\n\n        switch ($Mode) {\n\n            # bash like\n            \"Complete\" {\n\n                if ($Values.Length -eq 1) {\n                    __%[1]s_debug \"Only one completion left\"\n\n                    # insert space after value\n                    [System.Management.Automation.CompletionResult]::new($($comp.Name | __%[1]s_escapeStringWithSpecialChars) + $Space, \"$($comp.Name)\", 'ParameterValue', \"$($comp.Description)\")\n\n                } else {\n                    # Add the proper number of spaces to align the descriptions\n                    while($comp.Name.Length -lt $Longest) {\n                        $comp.Name = $comp.Name + \" \"\n                    }\n\n                    # Check for empty description and only add parentheses if needed\n                    if ($($comp.Description) -eq \" \" ) {\n                        $Description = \"\"\n                    } else {\n                        $Description = \"  ($($comp.Description))\"\n                    }\n\n                    [System.Management.Automation.CompletionResult]::new(\"$($comp.Name)$Description\", \"$($comp.Name)$Description\", 'ParameterValue', \"$($comp.Description)\")\n                }\n             }\n\n            # zsh like\n            \"MenuComplete\" {\n                # insert space after value\n                # MenuComplete will automatically show the ToolTip of\n                # the highlighted value at the bottom of the suggestions.\n                [System.Management.Automation.CompletionResult]::new($($comp.Name | __%[1]s_escapeStringWithSpecialChars) + $Space, \"$($comp.Name)\", 'ParameterValue', \"$($comp.Description)\")\n            }\n\n            # TabCompleteNext and in case we get something unknown\n            Default {\n                # Like MenuComplete but we don't want to add a space here because\n                # the user need to press space anyway to get the completion.\n                # Description will not be shown because that's not possible with TabCompleteNext\n                [System.Management.Automation.CompletionResult]::new($($comp.Name | __%[1]s_escapeStringWithSpecialChars), \"$($comp.Name)\", 'ParameterValue', \"$($comp.Description)\")\n            }\n        }\n\n    }\n}\n\nRegister-ArgumentCompleter -CommandName '%[1]s' -ScriptBlock ${__%[2]sCompleterBlock}\n`, name, nameForVar, compCmd,\n\t\tShellCompDirectiveError, ShellCompDirectiveNoSpace, ShellCompDirectiveNoFileComp,\n\t\tShellCompDirectiveFilterFileExt, ShellCompDirectiveFilterDirs, ShellCompDirectiveKeepOrder, activeHelpEnvVar(name)))\n}\n\nfunc (c *Command) genPowerShellCompletion(w io.Writer, includeDesc bool) error {\n\tbuf := new(bytes.Buffer)\n\tgenPowerShellComp(buf, c.Name(), includeDesc)\n\t_, err := buf.WriteTo(w)\n\treturn err\n}\n\nfunc (c *Command) genPowerShellCompletionFile(filename string, includeDesc bool) error {\n\toutFile, err := os.Create(filename)\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer outFile.Close()\n\n\treturn c.genPowerShellCompletion(outFile, includeDesc)\n}\n\n// GenPowerShellCompletionFile generates powershell completion file without descriptions.\nfunc (c *Command) GenPowerShellCompletionFile(filename string) error {\n\treturn c.genPowerShellCompletionFile(filename, false)\n}\n\n// GenPowerShellCompletion generates powershell completion file without descriptions\n// and writes it to the passed writer.\nfunc (c *Command) GenPowerShellCompletion(w io.Writer) error {\n\treturn c.genPowerShellCompletion(w, false)\n}\n\n// GenPowerShellCompletionFileWithDesc generates powershell completion file with descriptions.\nfunc (c *Command) GenPowerShellCompletionFileWithDesc(filename string) error {\n\treturn c.genPowerShellCompletionFile(filename, true)\n}\n\n// GenPowerShellCompletionWithDesc generates powershell completion file with descriptions\n// and writes it to the passed writer.\nfunc (c *Command) GenPowerShellCompletionWithDesc(w io.Writer) error {\n\treturn c.genPowerShellCompletion(w, true)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/shell_completions.go",
    "content": "// Copyright 2013-2023 The Cobra Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage cobra\n\nimport (\n\t\"github.com/spf13/pflag\"\n)\n\n// MarkFlagRequired instructs the various shell completion implementations to\n// prioritize the named flag when performing completion,\n// and causes your command to report an error if invoked without the flag.\nfunc (c *Command) MarkFlagRequired(name string) error {\n\treturn MarkFlagRequired(c.Flags(), name)\n}\n\n// MarkPersistentFlagRequired instructs the various shell completion implementations to\n// prioritize the named persistent flag when performing completion,\n// and causes your command to report an error if invoked without the flag.\nfunc (c *Command) MarkPersistentFlagRequired(name string) error {\n\treturn MarkFlagRequired(c.PersistentFlags(), name)\n}\n\n// MarkFlagRequired instructs the various shell completion implementations to\n// prioritize the named flag when performing completion,\n// and causes your command to report an error if invoked without the flag.\nfunc MarkFlagRequired(flags *pflag.FlagSet, name string) error {\n\treturn flags.SetAnnotation(name, BashCompOneRequiredFlag, []string{\"true\"})\n}\n\n// MarkFlagFilename instructs the various shell completion implementations to\n// limit completions for the named flag to the specified file extensions.\nfunc (c *Command) MarkFlagFilename(name string, extensions ...string) error {\n\treturn MarkFlagFilename(c.Flags(), name, extensions...)\n}\n\n// MarkFlagCustom adds the BashCompCustom annotation to the named flag, if it exists.\n// The bash completion script will call the bash function f for the flag.\n//\n// This will only work for bash completion.\n// It is recommended to instead use c.RegisterFlagCompletionFunc(...) which allows\n// to register a Go function which will work across all shells.\nfunc (c *Command) MarkFlagCustom(name string, f string) error {\n\treturn MarkFlagCustom(c.Flags(), name, f)\n}\n\n// MarkPersistentFlagFilename instructs the various shell completion\n// implementations to limit completions for the named persistent flag to the\n// specified file extensions.\nfunc (c *Command) MarkPersistentFlagFilename(name string, extensions ...string) error {\n\treturn MarkFlagFilename(c.PersistentFlags(), name, extensions...)\n}\n\n// MarkFlagFilename instructs the various shell completion implementations to\n// limit completions for the named flag to the specified file extensions.\nfunc MarkFlagFilename(flags *pflag.FlagSet, name string, extensions ...string) error {\n\treturn flags.SetAnnotation(name, BashCompFilenameExt, extensions)\n}\n\n// MarkFlagCustom adds the BashCompCustom annotation to the named flag, if it exists.\n// The bash completion script will call the bash function f for the flag.\n//\n// This will only work for bash completion.\n// It is recommended to instead use c.RegisterFlagCompletionFunc(...) which allows\n// to register a Go function which will work across all shells.\nfunc MarkFlagCustom(flags *pflag.FlagSet, name string, f string) error {\n\treturn flags.SetAnnotation(name, BashCompCustom, []string{f})\n}\n\n// MarkFlagDirname instructs the various shell completion implementations to\n// limit completions for the named flag to directory names.\nfunc (c *Command) MarkFlagDirname(name string) error {\n\treturn MarkFlagDirname(c.Flags(), name)\n}\n\n// MarkPersistentFlagDirname instructs the various shell completion\n// implementations to limit completions for the named persistent flag to\n// directory names.\nfunc (c *Command) MarkPersistentFlagDirname(name string) error {\n\treturn MarkFlagDirname(c.PersistentFlags(), name)\n}\n\n// MarkFlagDirname instructs the various shell completion implementations to\n// limit completions for the named flag to directory names.\nfunc MarkFlagDirname(flags *pflag.FlagSet, name string) error {\n\treturn flags.SetAnnotation(name, BashCompSubdirsInDir, []string{})\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/cobra/zsh_completions.go",
    "content": "// Copyright 2013-2023 The Cobra Authors\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage cobra\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n)\n\n// GenZshCompletionFile generates zsh completion file including descriptions.\nfunc (c *Command) GenZshCompletionFile(filename string) error {\n\treturn c.genZshCompletionFile(filename, true)\n}\n\n// GenZshCompletion generates zsh completion file including descriptions\n// and writes it to the passed writer.\nfunc (c *Command) GenZshCompletion(w io.Writer) error {\n\treturn c.genZshCompletion(w, true)\n}\n\n// GenZshCompletionFileNoDesc generates zsh completion file without descriptions.\nfunc (c *Command) GenZshCompletionFileNoDesc(filename string) error {\n\treturn c.genZshCompletionFile(filename, false)\n}\n\n// GenZshCompletionNoDesc generates zsh completion file without descriptions\n// and writes it to the passed writer.\nfunc (c *Command) GenZshCompletionNoDesc(w io.Writer) error {\n\treturn c.genZshCompletion(w, false)\n}\n\n// MarkZshCompPositionalArgumentFile only worked for zsh and its behavior was\n// not consistent with Bash completion. It has therefore been disabled.\n// Instead, when no other completion is specified, file completion is done by\n// default for every argument. One can disable file completion on a per-argument\n// basis by using ValidArgsFunction and ShellCompDirectiveNoFileComp.\n// To achieve file extension filtering, one can use ValidArgsFunction and\n// ShellCompDirectiveFilterFileExt.\n//\n// Deprecated\nfunc (c *Command) MarkZshCompPositionalArgumentFile(argPosition int, patterns ...string) error {\n\treturn nil\n}\n\n// MarkZshCompPositionalArgumentWords only worked for zsh. It has therefore\n// been disabled.\n// To achieve the same behavior across all shells, one can use\n// ValidArgs (for the first argument only) or ValidArgsFunction for\n// any argument (can include the first one also).\n//\n// Deprecated\nfunc (c *Command) MarkZshCompPositionalArgumentWords(argPosition int, words ...string) error {\n\treturn nil\n}\n\nfunc (c *Command) genZshCompletionFile(filename string, includeDesc bool) error {\n\toutFile, err := os.Create(filename)\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer outFile.Close()\n\n\treturn c.genZshCompletion(outFile, includeDesc)\n}\n\nfunc (c *Command) genZshCompletion(w io.Writer, includeDesc bool) error {\n\tbuf := new(bytes.Buffer)\n\tgenZshComp(buf, c.Name(), includeDesc)\n\t_, err := buf.WriteTo(w)\n\treturn err\n}\n\nfunc genZshComp(buf io.StringWriter, name string, includeDesc bool) {\n\tcompCmd := ShellCompRequestCmd\n\tif !includeDesc {\n\t\tcompCmd = ShellCompNoDescRequestCmd\n\t}\n\tWriteStringAndCheck(buf, fmt.Sprintf(`#compdef %[1]s\ncompdef _%[1]s %[1]s\n\n# zsh completion for %-36[1]s -*- shell-script -*-\n\n__%[1]s_debug()\n{\n    local file=\"$BASH_COMP_DEBUG_FILE\"\n    if [[ -n ${file} ]]; then\n        echo \"$*\" >> \"${file}\"\n    fi\n}\n\n_%[1]s()\n{\n    local shellCompDirectiveError=%[3]d\n    local shellCompDirectiveNoSpace=%[4]d\n    local shellCompDirectiveNoFileComp=%[5]d\n    local shellCompDirectiveFilterFileExt=%[6]d\n    local shellCompDirectiveFilterDirs=%[7]d\n    local shellCompDirectiveKeepOrder=%[8]d\n\n    local lastParam lastChar flagPrefix requestComp out directive comp lastComp noSpace keepOrder\n    local -a completions\n\n    __%[1]s_debug \"\\n========= starting completion logic ==========\"\n    __%[1]s_debug \"CURRENT: ${CURRENT}, words[*]: ${words[*]}\"\n\n    # The user could have moved the cursor backwards on the command-line.\n    # We need to trigger completion from the $CURRENT location, so we need\n    # to truncate the command-line ($words) up to the $CURRENT location.\n    # (We cannot use $CURSOR as its value does not work when a command is an alias.)\n    words=(\"${=words[1,CURRENT]}\")\n    __%[1]s_debug \"Truncated words[*]: ${words[*]},\"\n\n    lastParam=${words[-1]}\n    lastChar=${lastParam[-1]}\n    __%[1]s_debug \"lastParam: ${lastParam}, lastChar: ${lastChar}\"\n\n    # For zsh, when completing a flag with an = (e.g., %[1]s -n=<TAB>)\n    # completions must be prefixed with the flag\n    setopt local_options BASH_REMATCH\n    if [[ \"${lastParam}\" =~ '-.*=' ]]; then\n        # We are dealing with a flag with an =\n        flagPrefix=\"-P ${BASH_REMATCH}\"\n    fi\n\n    # Prepare the command to obtain completions\n    requestComp=\"${words[1]} %[2]s ${words[2,-1]}\"\n    if [ \"${lastChar}\" = \"\" ]; then\n        # If the last parameter is complete (there is a space following it)\n        # We add an extra empty parameter so we can indicate this to the go completion code.\n        __%[1]s_debug \"Adding extra empty parameter\"\n        requestComp=\"${requestComp} \\\"\\\"\"\n    fi\n\n    __%[1]s_debug \"About to call: eval ${requestComp}\"\n\n    # Use eval to handle any environment variables and such\n    out=$(eval ${requestComp} 2>/dev/null)\n    __%[1]s_debug \"completion output: ${out}\"\n\n    # Extract the directive integer following a : from the last line\n    local lastLine\n    while IFS='\\n' read -r line; do\n        lastLine=${line}\n    done < <(printf \"%%s\\n\" \"${out[@]}\")\n    __%[1]s_debug \"last line: ${lastLine}\"\n\n    if [ \"${lastLine[1]}\" = : ]; then\n        directive=${lastLine[2,-1]}\n        # Remove the directive including the : and the newline\n        local suffix\n        (( suffix=${#lastLine}+2))\n        out=${out[1,-$suffix]}\n    else\n        # There is no directive specified.  Leave $out as is.\n        __%[1]s_debug \"No directive found.  Setting do default\"\n        directive=0\n    fi\n\n    __%[1]s_debug \"directive: ${directive}\"\n    __%[1]s_debug \"completions: ${out}\"\n    __%[1]s_debug \"flagPrefix: ${flagPrefix}\"\n\n    if [ $((directive & shellCompDirectiveError)) -ne 0 ]; then\n        __%[1]s_debug \"Completion received error. Ignoring completions.\"\n        return\n    fi\n\n    local activeHelpMarker=\"%[9]s\"\n    local endIndex=${#activeHelpMarker}\n    local startIndex=$((${#activeHelpMarker}+1))\n    local hasActiveHelp=0\n    while IFS='\\n' read -r comp; do\n        # Check if this is an activeHelp statement (i.e., prefixed with $activeHelpMarker)\n        if [ \"${comp[1,$endIndex]}\" = \"$activeHelpMarker\" ];then\n            __%[1]s_debug \"ActiveHelp found: $comp\"\n            comp=\"${comp[$startIndex,-1]}\"\n            if [ -n \"$comp\" ]; then\n                compadd -x \"${comp}\"\n                __%[1]s_debug \"ActiveHelp will need delimiter\"\n                hasActiveHelp=1\n            fi\n\n            continue\n        fi\n\n        if [ -n \"$comp\" ]; then\n            # If requested, completions are returned with a description.\n            # The description is preceded by a TAB character.\n            # For zsh's _describe, we need to use a : instead of a TAB.\n            # We first need to escape any : as part of the completion itself.\n            comp=${comp//:/\\\\:}\n\n            local tab=\"$(printf '\\t')\"\n            comp=${comp//$tab/:}\n\n            __%[1]s_debug \"Adding completion: ${comp}\"\n            completions+=${comp}\n            lastComp=$comp\n        fi\n    done < <(printf \"%%s\\n\" \"${out[@]}\")\n\n    # Add a delimiter after the activeHelp statements, but only if:\n    # - there are completions following the activeHelp statements, or\n    # - file completion will be performed (so there will be choices after the activeHelp)\n    if [ $hasActiveHelp -eq 1 ]; then\n        if [ ${#completions} -ne 0 ] || [ $((directive & shellCompDirectiveNoFileComp)) -eq 0 ]; then\n            __%[1]s_debug \"Adding activeHelp delimiter\"\n            compadd -x \"--\"\n            hasActiveHelp=0\n        fi\n    fi\n\n    if [ $((directive & shellCompDirectiveNoSpace)) -ne 0 ]; then\n        __%[1]s_debug \"Activating nospace.\"\n        noSpace=\"-S ''\"\n    fi\n\n    if [ $((directive & shellCompDirectiveKeepOrder)) -ne 0 ]; then\n        __%[1]s_debug \"Activating keep order.\"\n        keepOrder=\"-V\"\n    fi\n\n    if [ $((directive & shellCompDirectiveFilterFileExt)) -ne 0 ]; then\n        # File extension filtering\n        local filteringCmd\n        filteringCmd='_files'\n        for filter in ${completions[@]}; do\n            if [ ${filter[1]} != '*' ]; then\n                # zsh requires a glob pattern to do file filtering\n                filter=\"\\*.$filter\"\n            fi\n            filteringCmd+=\" -g $filter\"\n        done\n        filteringCmd+=\" ${flagPrefix}\"\n\n        __%[1]s_debug \"File filtering command: $filteringCmd\"\n        _arguments '*:filename:'\"$filteringCmd\"\n    elif [ $((directive & shellCompDirectiveFilterDirs)) -ne 0 ]; then\n        # File completion for directories only\n        local subdir\n        subdir=\"${completions[1]}\"\n        if [ -n \"$subdir\" ]; then\n            __%[1]s_debug \"Listing directories in $subdir\"\n            pushd \"${subdir}\" >/dev/null 2>&1\n        else\n            __%[1]s_debug \"Listing directories in .\"\n        fi\n\n        local result\n        _arguments '*:dirname:_files -/'\" ${flagPrefix}\"\n        result=$?\n        if [ -n \"$subdir\" ]; then\n            popd >/dev/null 2>&1\n        fi\n        return $result\n    else\n        __%[1]s_debug \"Calling _describe\"\n        if eval _describe $keepOrder \"completions\" completions $flagPrefix $noSpace; then\n            __%[1]s_debug \"_describe found some completions\"\n\n            # Return the success of having called _describe\n            return 0\n        else\n            __%[1]s_debug \"_describe did not find completions.\"\n            __%[1]s_debug \"Checking if we should do file completion.\"\n            if [ $((directive & shellCompDirectiveNoFileComp)) -ne 0 ]; then\n                __%[1]s_debug \"deactivating file completion\"\n\n                # We must return an error code here to let zsh know that there were no\n                # completions found by _describe; this is what will trigger other\n                # matching algorithms to attempt to find completions.\n                # For example zsh can match letters in the middle of words.\n                return 1\n            else\n                # Perform file completion\n                __%[1]s_debug \"Activating file completion\"\n\n                # We must return the result of this command, so it must be the\n                # last command, or else we must store its result to return it.\n                _arguments '*:filename:_files'\" ${flagPrefix}\"\n            fi\n        fi\n    fi\n}\n\n# don't run the completion function when being source-ed or eval-ed\nif [ \"$funcstack[1]\" = \"_%[1]s\" ]; then\n    _%[1]s\nfi\n`, name, compCmd,\n\t\tShellCompDirectiveError, ShellCompDirectiveNoSpace, ShellCompDirectiveNoFileComp,\n\t\tShellCompDirectiveFilterFileExt, ShellCompDirectiveFilterDirs, ShellCompDirectiveKeepOrder,\n\t\tactiveHelpMarker))\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/.editorconfig",
    "content": "root = true\n\n[*]\ncharset = utf-8\nend_of_line = lf\nindent_size = 4\nindent_style = space\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.go]\nindent_style = tab\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/.gitignore",
    "content": ".idea/*\n\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/.golangci.yaml",
    "content": "linters:\n    disable-all: true\n    enable:\n        - nolintlint\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/.travis.yml",
    "content": "sudo: false\n\nlanguage: go\n\ngo:\n  - 1.9.x\n  - 1.10.x\n  - 1.11.x\n  - tip\n\nmatrix:\n  allow_failures:\n    - go: tip\n\ninstall:\n  - go get golang.org/x/lint/golint\n  - export PATH=$GOPATH/bin:$PATH\n  - go install ./...\n\nscript:\n  - verify/all.sh -v\n  - go test ./...\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/LICENSE",
    "content": "Copyright (c) 2012 Alex Ogier. All rights reserved.\nCopyright (c) 2012 The Go Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/README.md",
    "content": "[![Build Status](https://travis-ci.org/spf13/pflag.svg?branch=master)](https://travis-ci.org/spf13/pflag)\n[![Go Report Card](https://goreportcard.com/badge/github.com/spf13/pflag)](https://goreportcard.com/report/github.com/spf13/pflag)\n[![GoDoc](https://godoc.org/github.com/spf13/pflag?status.svg)](https://godoc.org/github.com/spf13/pflag)\n\n## Description\n\npflag is a drop-in replacement for Go's flag package, implementing\nPOSIX/GNU-style --flags.\n\npflag is compatible with the [GNU extensions to the POSIX recommendations\nfor command-line options][1]. For a more precise description, see the\n\"Command-line flag syntax\" section below.\n\n[1]: http://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html\n\npflag is available under the same style of BSD license as the Go language,\nwhich can be found in the LICENSE file.\n\n## Installation\n\npflag is available using the standard `go get` command.\n\nInstall by running:\n\n    go get github.com/spf13/pflag\n\nRun tests by running:\n\n    go test github.com/spf13/pflag\n\n## Usage\n\npflag is a drop-in replacement of Go's native flag package. If you import\npflag under the name \"flag\" then all code should continue to function\nwith no changes.\n\n``` go\nimport flag \"github.com/spf13/pflag\"\n```\n\nThere is one exception to this: if you directly instantiate the Flag struct\nthere is one more field \"Shorthand\" that you will need to set.\nMost code never instantiates this struct directly, and instead uses\nfunctions such as String(), BoolVar(), and Var(), and is therefore\nunaffected.\n\nDefine flags using flag.String(), Bool(), Int(), etc.\n\nThis declares an integer flag, -flagname, stored in the pointer ip, with type *int.\n\n``` go\nvar ip *int = flag.Int(\"flagname\", 1234, \"help message for flagname\")\n```\n\nIf you like, you can bind the flag to a variable using the Var() functions.\n\n``` go\nvar flagvar int\nfunc init() {\n    flag.IntVar(&flagvar, \"flagname\", 1234, \"help message for flagname\")\n}\n```\n\nOr you can create custom flags that satisfy the Value interface (with\npointer receivers) and couple them to flag parsing by\n\n``` go\nflag.Var(&flagVal, \"name\", \"help message for flagname\")\n```\n\nFor such flags, the default value is just the initial value of the variable.\n\nAfter all flags are defined, call\n\n``` go\nflag.Parse()\n```\n\nto parse the command line into the defined flags.\n\nFlags may then be used directly. If you're using the flags themselves,\nthey are all pointers; if you bind to variables, they're values.\n\n``` go\nfmt.Println(\"ip has value \", *ip)\nfmt.Println(\"flagvar has value \", flagvar)\n```\n\nThere are helper functions available to get the value stored in a Flag if you have a FlagSet but find\nit difficult to keep up with all of the pointers in your code.\nIf you have a pflag.FlagSet with a flag called 'flagname' of type int you\ncan use GetInt() to get the int value. But notice that 'flagname' must exist\nand it must be an int. GetString(\"flagname\") will fail.\n\n``` go\ni, err := flagset.GetInt(\"flagname\")\n```\n\nAfter parsing, the arguments after the flag are available as the\nslice flag.Args() or individually as flag.Arg(i).\nThe arguments are indexed from 0 through flag.NArg()-1.\n\nThe pflag package also defines some new functions that are not in flag,\nthat give one-letter shorthands for flags. You can use these by appending\n'P' to the name of any function that defines a flag.\n\n``` go\nvar ip = flag.IntP(\"flagname\", \"f\", 1234, \"help message\")\nvar flagvar bool\nfunc init() {\n\tflag.BoolVarP(&flagvar, \"boolname\", \"b\", true, \"help message\")\n}\nflag.VarP(&flagVal, \"varname\", \"v\", \"help message\")\n```\n\nShorthand letters can be used with single dashes on the command line.\nBoolean shorthand flags can be combined with other shorthand flags.\n\nThe default set of command-line flags is controlled by\ntop-level functions.  The FlagSet type allows one to define\nindependent sets of flags, such as to implement subcommands\nin a command-line interface. The methods of FlagSet are\nanalogous to the top-level functions for the command-line\nflag set.\n\n## Setting no option default values for flags\n\nAfter you create a flag it is possible to set the pflag.NoOptDefVal for\nthe given flag. Doing this changes the meaning of the flag slightly. If\na flag has a NoOptDefVal and the flag is set on the command line without\nan option the flag will be set to the NoOptDefVal. For example given:\n\n``` go\nvar ip = flag.IntP(\"flagname\", \"f\", 1234, \"help message\")\nflag.Lookup(\"flagname\").NoOptDefVal = \"4321\"\n```\n\nWould result in something like\n\n| Parsed Arguments | Resulting Value |\n| -------------    | -------------   |\n| --flagname=1357  | ip=1357         |\n| --flagname       | ip=4321         |\n| [nothing]        | ip=1234         |\n\n## Command line flag syntax\n\n```\n--flag    // boolean flags, or flags with no option default values\n--flag x  // only on flags without a default value\n--flag=x\n```\n\nUnlike the flag package, a single dash before an option means something\ndifferent than a double dash. Single dashes signify a series of shorthand\nletters for flags. All but the last shorthand letter must be boolean flags\nor a flag with a default value\n\n```\n// boolean or flags where the 'no option default value' is set\n-f\n-f=true\n-abc\nbut\n-b true is INVALID\n\n// non-boolean and flags without a 'no option default value'\n-n 1234\n-n=1234\n-n1234\n\n// mixed\n-abcs \"hello\"\n-absd=\"hello\"\n-abcs1234\n```\n\nFlag parsing stops after the terminator \"--\". Unlike the flag package,\nflags can be interspersed with arguments anywhere on the command line\nbefore this terminator.\n\nInteger flags accept 1234, 0664, 0x1234 and may be negative.\nBoolean flags (in their long form) accept 1, 0, t, f, true, false,\nTRUE, FALSE, True, False.\nDuration flags accept any input valid for time.ParseDuration.\n\n## Mutating or \"Normalizing\" Flag names\n\nIt is possible to set a custom flag name 'normalization function.' It allows flag names to be mutated both when created in the code and when used on the command line to some 'normalized' form. The 'normalized' form is used for comparison. Two examples of using the custom normalization func follow.\n\n**Example #1**: You want -, _, and . in flags to compare the same. aka --my-flag == --my_flag == --my.flag\n\n``` go\nfunc wordSepNormalizeFunc(f *pflag.FlagSet, name string) pflag.NormalizedName {\n\tfrom := []string{\"-\", \"_\"}\n\tto := \".\"\n\tfor _, sep := range from {\n\t\tname = strings.Replace(name, sep, to, -1)\n\t}\n\treturn pflag.NormalizedName(name)\n}\n\nmyFlagSet.SetNormalizeFunc(wordSepNormalizeFunc)\n```\n\n**Example #2**: You want to alias two flags. aka --old-flag-name == --new-flag-name\n\n``` go\nfunc aliasNormalizeFunc(f *pflag.FlagSet, name string) pflag.NormalizedName {\n\tswitch name {\n\tcase \"old-flag-name\":\n\t\tname = \"new-flag-name\"\n\t\tbreak\n\t}\n\treturn pflag.NormalizedName(name)\n}\n\nmyFlagSet.SetNormalizeFunc(aliasNormalizeFunc)\n```\n\n## Deprecating a flag or its shorthand\nIt is possible to deprecate a flag, or just its shorthand. Deprecating a flag/shorthand hides it from help text and prints a usage message when the deprecated flag/shorthand is used.\n\n**Example #1**: You want to deprecate a flag named \"badflag\" as well as inform the users what flag they should use instead.\n```go\n// deprecate a flag by specifying its name and a usage message\nflags.MarkDeprecated(\"badflag\", \"please use --good-flag instead\")\n```\nThis hides \"badflag\" from help text, and prints `Flag --badflag has been deprecated, please use --good-flag instead` when \"badflag\" is used.\n\n**Example #2**: You want to keep a flag name \"noshorthandflag\" but deprecate its shortname \"n\".\n```go\n// deprecate a flag shorthand by specifying its flag name and a usage message\nflags.MarkShorthandDeprecated(\"noshorthandflag\", \"please use --noshorthandflag only\")\n```\nThis hides the shortname \"n\" from help text, and prints `Flag shorthand -n has been deprecated, please use --noshorthandflag only` when the shorthand \"n\" is used.\n\nNote that usage message is essential here, and it should not be empty.\n\n## Hidden flags\nIt is possible to mark a flag as hidden, meaning it will still function as normal, however will not show up in usage/help text.\n\n**Example**: You have a flag named \"secretFlag\" that you need for internal use only and don't want it showing up in help text, or for its usage text to be available.\n```go\n// hide a flag by specifying its name\nflags.MarkHidden(\"secretFlag\")\n```\n\n## Disable sorting of flags\n`pflag` allows you to disable sorting of flags for help and usage message.\n\n**Example**:\n```go\nflags.BoolP(\"verbose\", \"v\", false, \"verbose output\")\nflags.String(\"coolflag\", \"yeaah\", \"it's really cool flag\")\nflags.Int(\"usefulflag\", 777, \"sometimes it's very useful\")\nflags.SortFlags = false\nflags.PrintDefaults()\n```\n**Output**:\n```\n  -v, --verbose           verbose output\n      --coolflag string   it's really cool flag (default \"yeaah\")\n      --usefulflag int    sometimes it's very useful (default 777)\n```\n\n\n## Supporting Go flags when using pflag\nIn order to support flags defined using Go's `flag` package, they must be added to the `pflag` flagset. This is usually necessary\nto support flags defined by third-party dependencies (e.g. `golang/glog`).\n\n**Example**: You want to add the Go flags to the `CommandLine` flagset\n```go\nimport (\n\tgoflag \"flag\"\n\tflag \"github.com/spf13/pflag\"\n)\n\nvar ip *int = flag.Int(\"flagname\", 1234, \"help message for flagname\")\n\nfunc main() {\n\tflag.CommandLine.AddGoFlagSet(goflag.CommandLine)\n\tflag.Parse()\n}\n```\n\n## More info\n\nYou can see the full reference documentation of the pflag package\n[at godoc.org][3], or through go's standard documentation system by\nrunning `godoc -http=:6060` and browsing to\n[http://localhost:6060/pkg/github.com/spf13/pflag][2] after\ninstallation.\n\n[2]: http://localhost:6060/pkg/github.com/spf13/pflag\n[3]: http://godoc.org/github.com/spf13/pflag\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/bool.go",
    "content": "package pflag\n\nimport \"strconv\"\n\n// optional interface to indicate boolean flags that can be\n// supplied without \"=value\" text\ntype boolFlag interface {\n\tValue\n\tIsBoolFlag() bool\n}\n\n// -- bool Value\ntype boolValue bool\n\nfunc newBoolValue(val bool, p *bool) *boolValue {\n\t*p = val\n\treturn (*boolValue)(p)\n}\n\nfunc (b *boolValue) Set(s string) error {\n\tv, err := strconv.ParseBool(s)\n\t*b = boolValue(v)\n\treturn err\n}\n\nfunc (b *boolValue) Type() string {\n\treturn \"bool\"\n}\n\nfunc (b *boolValue) String() string { return strconv.FormatBool(bool(*b)) }\n\nfunc (b *boolValue) IsBoolFlag() bool { return true }\n\nfunc boolConv(sval string) (interface{}, error) {\n\treturn strconv.ParseBool(sval)\n}\n\n// GetBool return the bool value of a flag with the given name\nfunc (f *FlagSet) GetBool(name string) (bool, error) {\n\tval, err := f.getFlagType(name, \"bool\", boolConv)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\treturn val.(bool), nil\n}\n\n// BoolVar defines a bool flag with specified name, default value, and usage string.\n// The argument p points to a bool variable in which to store the value of the flag.\nfunc (f *FlagSet) BoolVar(p *bool, name string, value bool, usage string) {\n\tf.BoolVarP(p, name, \"\", value, usage)\n}\n\n// BoolVarP is like BoolVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) BoolVarP(p *bool, name, shorthand string, value bool, usage string) {\n\tflag := f.VarPF(newBoolValue(value, p), name, shorthand, usage)\n\tflag.NoOptDefVal = \"true\"\n}\n\n// BoolVar defines a bool flag with specified name, default value, and usage string.\n// The argument p points to a bool variable in which to store the value of the flag.\nfunc BoolVar(p *bool, name string, value bool, usage string) {\n\tBoolVarP(p, name, \"\", value, usage)\n}\n\n// BoolVarP is like BoolVar, but accepts a shorthand letter that can be used after a single dash.\nfunc BoolVarP(p *bool, name, shorthand string, value bool, usage string) {\n\tflag := CommandLine.VarPF(newBoolValue(value, p), name, shorthand, usage)\n\tflag.NoOptDefVal = \"true\"\n}\n\n// Bool defines a bool flag with specified name, default value, and usage string.\n// The return value is the address of a bool variable that stores the value of the flag.\nfunc (f *FlagSet) Bool(name string, value bool, usage string) *bool {\n\treturn f.BoolP(name, \"\", value, usage)\n}\n\n// BoolP is like Bool, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) BoolP(name, shorthand string, value bool, usage string) *bool {\n\tp := new(bool)\n\tf.BoolVarP(p, name, shorthand, value, usage)\n\treturn p\n}\n\n// Bool defines a bool flag with specified name, default value, and usage string.\n// The return value is the address of a bool variable that stores the value of the flag.\nfunc Bool(name string, value bool, usage string) *bool {\n\treturn BoolP(name, \"\", value, usage)\n}\n\n// BoolP is like Bool, but accepts a shorthand letter that can be used after a single dash.\nfunc BoolP(name, shorthand string, value bool, usage string) *bool {\n\tb := CommandLine.BoolP(name, shorthand, value, usage)\n\treturn b\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/bool_slice.go",
    "content": "package pflag\n\nimport (\n\t\"io\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// -- boolSlice Value\ntype boolSliceValue struct {\n\tvalue   *[]bool\n\tchanged bool\n}\n\nfunc newBoolSliceValue(val []bool, p *[]bool) *boolSliceValue {\n\tbsv := new(boolSliceValue)\n\tbsv.value = p\n\t*bsv.value = val\n\treturn bsv\n}\n\n// Set converts, and assigns, the comma-separated boolean argument string representation as the []bool value of this flag.\n// If Set is called on a flag that already has a []bool assigned, the newly converted values will be appended.\nfunc (s *boolSliceValue) Set(val string) error {\n\n\t// remove all quote characters\n\trmQuote := strings.NewReplacer(`\"`, \"\", `'`, \"\", \"`\", \"\")\n\n\t// read flag arguments with CSV parser\n\tboolStrSlice, err := readAsCSV(rmQuote.Replace(val))\n\tif err != nil && err != io.EOF {\n\t\treturn err\n\t}\n\n\t// parse boolean values into slice\n\tout := make([]bool, 0, len(boolStrSlice))\n\tfor _, boolStr := range boolStrSlice {\n\t\tb, err := strconv.ParseBool(strings.TrimSpace(boolStr))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tout = append(out, b)\n\t}\n\n\tif !s.changed {\n\t\t*s.value = out\n\t} else {\n\t\t*s.value = append(*s.value, out...)\n\t}\n\n\ts.changed = true\n\n\treturn nil\n}\n\n// Type returns a string that uniquely represents this flag's type.\nfunc (s *boolSliceValue) Type() string {\n\treturn \"boolSlice\"\n}\n\n// String defines a \"native\" format for this boolean slice flag value.\nfunc (s *boolSliceValue) String() string {\n\n\tboolStrSlice := make([]string, len(*s.value))\n\tfor i, b := range *s.value {\n\t\tboolStrSlice[i] = strconv.FormatBool(b)\n\t}\n\n\tout, _ := writeAsCSV(boolStrSlice)\n\n\treturn \"[\" + out + \"]\"\n}\n\nfunc (s *boolSliceValue) fromString(val string) (bool, error) {\n\treturn strconv.ParseBool(val)\n}\n\nfunc (s *boolSliceValue) toString(val bool) string {\n\treturn strconv.FormatBool(val)\n}\n\nfunc (s *boolSliceValue) Append(val string) error {\n\ti, err := s.fromString(val)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*s.value = append(*s.value, i)\n\treturn nil\n}\n\nfunc (s *boolSliceValue) Replace(val []string) error {\n\tout := make([]bool, len(val))\n\tfor i, d := range val {\n\t\tvar err error\n\t\tout[i], err = s.fromString(d)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\t*s.value = out\n\treturn nil\n}\n\nfunc (s *boolSliceValue) GetSlice() []string {\n\tout := make([]string, len(*s.value))\n\tfor i, d := range *s.value {\n\t\tout[i] = s.toString(d)\n\t}\n\treturn out\n}\n\nfunc boolSliceConv(val string) (interface{}, error) {\n\tval = strings.Trim(val, \"[]\")\n\t// Empty string would cause a slice with one (empty) entry\n\tif len(val) == 0 {\n\t\treturn []bool{}, nil\n\t}\n\tss := strings.Split(val, \",\")\n\tout := make([]bool, len(ss))\n\tfor i, t := range ss {\n\t\tvar err error\n\t\tout[i], err = strconv.ParseBool(t)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn out, nil\n}\n\n// GetBoolSlice returns the []bool value of a flag with the given name.\nfunc (f *FlagSet) GetBoolSlice(name string) ([]bool, error) {\n\tval, err := f.getFlagType(name, \"boolSlice\", boolSliceConv)\n\tif err != nil {\n\t\treturn []bool{}, err\n\t}\n\treturn val.([]bool), nil\n}\n\n// BoolSliceVar defines a boolSlice flag with specified name, default value, and usage string.\n// The argument p points to a []bool variable in which to store the value of the flag.\nfunc (f *FlagSet) BoolSliceVar(p *[]bool, name string, value []bool, usage string) {\n\tf.VarP(newBoolSliceValue(value, p), name, \"\", usage)\n}\n\n// BoolSliceVarP is like BoolSliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) BoolSliceVarP(p *[]bool, name, shorthand string, value []bool, usage string) {\n\tf.VarP(newBoolSliceValue(value, p), name, shorthand, usage)\n}\n\n// BoolSliceVar defines a []bool flag with specified name, default value, and usage string.\n// The argument p points to a []bool variable in which to store the value of the flag.\nfunc BoolSliceVar(p *[]bool, name string, value []bool, usage string) {\n\tCommandLine.VarP(newBoolSliceValue(value, p), name, \"\", usage)\n}\n\n// BoolSliceVarP is like BoolSliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc BoolSliceVarP(p *[]bool, name, shorthand string, value []bool, usage string) {\n\tCommandLine.VarP(newBoolSliceValue(value, p), name, shorthand, usage)\n}\n\n// BoolSlice defines a []bool flag with specified name, default value, and usage string.\n// The return value is the address of a []bool variable that stores the value of the flag.\nfunc (f *FlagSet) BoolSlice(name string, value []bool, usage string) *[]bool {\n\tp := []bool{}\n\tf.BoolSliceVarP(&p, name, \"\", value, usage)\n\treturn &p\n}\n\n// BoolSliceP is like BoolSlice, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) BoolSliceP(name, shorthand string, value []bool, usage string) *[]bool {\n\tp := []bool{}\n\tf.BoolSliceVarP(&p, name, shorthand, value, usage)\n\treturn &p\n}\n\n// BoolSlice defines a []bool flag with specified name, default value, and usage string.\n// The return value is the address of a []bool variable that stores the value of the flag.\nfunc BoolSlice(name string, value []bool, usage string) *[]bool {\n\treturn CommandLine.BoolSliceP(name, \"\", value, usage)\n}\n\n// BoolSliceP is like BoolSlice, but accepts a shorthand letter that can be used after a single dash.\nfunc BoolSliceP(name, shorthand string, value []bool, usage string) *[]bool {\n\treturn CommandLine.BoolSliceP(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/bytes.go",
    "content": "package pflag\n\nimport (\n\t\"encoding/base64\"\n\t\"encoding/hex\"\n\t\"fmt\"\n\t\"strings\"\n)\n\n// BytesHex adapts []byte for use as a flag. Value of flag is HEX encoded\ntype bytesHexValue []byte\n\n// String implements pflag.Value.String.\nfunc (bytesHex bytesHexValue) String() string {\n\treturn fmt.Sprintf(\"%X\", []byte(bytesHex))\n}\n\n// Set implements pflag.Value.Set.\nfunc (bytesHex *bytesHexValue) Set(value string) error {\n\tbin, err := hex.DecodeString(strings.TrimSpace(value))\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t*bytesHex = bin\n\n\treturn nil\n}\n\n// Type implements pflag.Value.Type.\nfunc (*bytesHexValue) Type() string {\n\treturn \"bytesHex\"\n}\n\nfunc newBytesHexValue(val []byte, p *[]byte) *bytesHexValue {\n\t*p = val\n\treturn (*bytesHexValue)(p)\n}\n\nfunc bytesHexConv(sval string) (interface{}, error) {\n\n\tbin, err := hex.DecodeString(sval)\n\n\tif err == nil {\n\t\treturn bin, nil\n\t}\n\n\treturn nil, fmt.Errorf(\"invalid string being converted to Bytes: %s %s\", sval, err)\n}\n\n// GetBytesHex return the []byte value of a flag with the given name\nfunc (f *FlagSet) GetBytesHex(name string) ([]byte, error) {\n\tval, err := f.getFlagType(name, \"bytesHex\", bytesHexConv)\n\n\tif err != nil {\n\t\treturn []byte{}, err\n\t}\n\n\treturn val.([]byte), nil\n}\n\n// BytesHexVar defines an []byte flag with specified name, default value, and usage string.\n// The argument p points to an []byte variable in which to store the value of the flag.\nfunc (f *FlagSet) BytesHexVar(p *[]byte, name string, value []byte, usage string) {\n\tf.VarP(newBytesHexValue(value, p), name, \"\", usage)\n}\n\n// BytesHexVarP is like BytesHexVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) BytesHexVarP(p *[]byte, name, shorthand string, value []byte, usage string) {\n\tf.VarP(newBytesHexValue(value, p), name, shorthand, usage)\n}\n\n// BytesHexVar defines an []byte flag with specified name, default value, and usage string.\n// The argument p points to an []byte variable in which to store the value of the flag.\nfunc BytesHexVar(p *[]byte, name string, value []byte, usage string) {\n\tCommandLine.VarP(newBytesHexValue(value, p), name, \"\", usage)\n}\n\n// BytesHexVarP is like BytesHexVar, but accepts a shorthand letter that can be used after a single dash.\nfunc BytesHexVarP(p *[]byte, name, shorthand string, value []byte, usage string) {\n\tCommandLine.VarP(newBytesHexValue(value, p), name, shorthand, usage)\n}\n\n// BytesHex defines an []byte flag with specified name, default value, and usage string.\n// The return value is the address of an []byte variable that stores the value of the flag.\nfunc (f *FlagSet) BytesHex(name string, value []byte, usage string) *[]byte {\n\tp := new([]byte)\n\tf.BytesHexVarP(p, name, \"\", value, usage)\n\treturn p\n}\n\n// BytesHexP is like BytesHex, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) BytesHexP(name, shorthand string, value []byte, usage string) *[]byte {\n\tp := new([]byte)\n\tf.BytesHexVarP(p, name, shorthand, value, usage)\n\treturn p\n}\n\n// BytesHex defines an []byte flag with specified name, default value, and usage string.\n// The return value is the address of an []byte variable that stores the value of the flag.\nfunc BytesHex(name string, value []byte, usage string) *[]byte {\n\treturn CommandLine.BytesHexP(name, \"\", value, usage)\n}\n\n// BytesHexP is like BytesHex, but accepts a shorthand letter that can be used after a single dash.\nfunc BytesHexP(name, shorthand string, value []byte, usage string) *[]byte {\n\treturn CommandLine.BytesHexP(name, shorthand, value, usage)\n}\n\n// BytesBase64 adapts []byte for use as a flag. Value of flag is Base64 encoded\ntype bytesBase64Value []byte\n\n// String implements pflag.Value.String.\nfunc (bytesBase64 bytesBase64Value) String() string {\n\treturn base64.StdEncoding.EncodeToString([]byte(bytesBase64))\n}\n\n// Set implements pflag.Value.Set.\nfunc (bytesBase64 *bytesBase64Value) Set(value string) error {\n\tbin, err := base64.StdEncoding.DecodeString(strings.TrimSpace(value))\n\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t*bytesBase64 = bin\n\n\treturn nil\n}\n\n// Type implements pflag.Value.Type.\nfunc (*bytesBase64Value) Type() string {\n\treturn \"bytesBase64\"\n}\n\nfunc newBytesBase64Value(val []byte, p *[]byte) *bytesBase64Value {\n\t*p = val\n\treturn (*bytesBase64Value)(p)\n}\n\nfunc bytesBase64ValueConv(sval string) (interface{}, error) {\n\n\tbin, err := base64.StdEncoding.DecodeString(sval)\n\tif err == nil {\n\t\treturn bin, nil\n\t}\n\n\treturn nil, fmt.Errorf(\"invalid string being converted to Bytes: %s %s\", sval, err)\n}\n\n// GetBytesBase64 return the []byte value of a flag with the given name\nfunc (f *FlagSet) GetBytesBase64(name string) ([]byte, error) {\n\tval, err := f.getFlagType(name, \"bytesBase64\", bytesBase64ValueConv)\n\n\tif err != nil {\n\t\treturn []byte{}, err\n\t}\n\n\treturn val.([]byte), nil\n}\n\n// BytesBase64Var defines an []byte flag with specified name, default value, and usage string.\n// The argument p points to an []byte variable in which to store the value of the flag.\nfunc (f *FlagSet) BytesBase64Var(p *[]byte, name string, value []byte, usage string) {\n\tf.VarP(newBytesBase64Value(value, p), name, \"\", usage)\n}\n\n// BytesBase64VarP is like BytesBase64Var, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) BytesBase64VarP(p *[]byte, name, shorthand string, value []byte, usage string) {\n\tf.VarP(newBytesBase64Value(value, p), name, shorthand, usage)\n}\n\n// BytesBase64Var defines an []byte flag with specified name, default value, and usage string.\n// The argument p points to an []byte variable in which to store the value of the flag.\nfunc BytesBase64Var(p *[]byte, name string, value []byte, usage string) {\n\tCommandLine.VarP(newBytesBase64Value(value, p), name, \"\", usage)\n}\n\n// BytesBase64VarP is like BytesBase64Var, but accepts a shorthand letter that can be used after a single dash.\nfunc BytesBase64VarP(p *[]byte, name, shorthand string, value []byte, usage string) {\n\tCommandLine.VarP(newBytesBase64Value(value, p), name, shorthand, usage)\n}\n\n// BytesBase64 defines an []byte flag with specified name, default value, and usage string.\n// The return value is the address of an []byte variable that stores the value of the flag.\nfunc (f *FlagSet) BytesBase64(name string, value []byte, usage string) *[]byte {\n\tp := new([]byte)\n\tf.BytesBase64VarP(p, name, \"\", value, usage)\n\treturn p\n}\n\n// BytesBase64P is like BytesBase64, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) BytesBase64P(name, shorthand string, value []byte, usage string) *[]byte {\n\tp := new([]byte)\n\tf.BytesBase64VarP(p, name, shorthand, value, usage)\n\treturn p\n}\n\n// BytesBase64 defines an []byte flag with specified name, default value, and usage string.\n// The return value is the address of an []byte variable that stores the value of the flag.\nfunc BytesBase64(name string, value []byte, usage string) *[]byte {\n\treturn CommandLine.BytesBase64P(name, \"\", value, usage)\n}\n\n// BytesBase64P is like BytesBase64, but accepts a shorthand letter that can be used after a single dash.\nfunc BytesBase64P(name, shorthand string, value []byte, usage string) *[]byte {\n\treturn CommandLine.BytesBase64P(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/count.go",
    "content": "package pflag\n\nimport \"strconv\"\n\n// -- count Value\ntype countValue int\n\nfunc newCountValue(val int, p *int) *countValue {\n\t*p = val\n\treturn (*countValue)(p)\n}\n\nfunc (i *countValue) Set(s string) error {\n\t// \"+1\" means that no specific value was passed, so increment\n\tif s == \"+1\" {\n\t\t*i = countValue(*i + 1)\n\t\treturn nil\n\t}\n\tv, err := strconv.ParseInt(s, 0, 0)\n\t*i = countValue(v)\n\treturn err\n}\n\nfunc (i *countValue) Type() string {\n\treturn \"count\"\n}\n\nfunc (i *countValue) String() string { return strconv.Itoa(int(*i)) }\n\nfunc countConv(sval string) (interface{}, error) {\n\ti, err := strconv.Atoi(sval)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn i, nil\n}\n\n// GetCount return the int value of a flag with the given name\nfunc (f *FlagSet) GetCount(name string) (int, error) {\n\tval, err := f.getFlagType(name, \"count\", countConv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn val.(int), nil\n}\n\n// CountVar defines a count flag with specified name, default value, and usage string.\n// The argument p points to an int variable in which to store the value of the flag.\n// A count flag will add 1 to its value every time it is found on the command line\nfunc (f *FlagSet) CountVar(p *int, name string, usage string) {\n\tf.CountVarP(p, name, \"\", usage)\n}\n\n// CountVarP is like CountVar only take a shorthand for the flag name.\nfunc (f *FlagSet) CountVarP(p *int, name, shorthand string, usage string) {\n\tflag := f.VarPF(newCountValue(0, p), name, shorthand, usage)\n\tflag.NoOptDefVal = \"+1\"\n}\n\n// CountVar like CountVar only the flag is placed on the CommandLine instead of a given flag set\nfunc CountVar(p *int, name string, usage string) {\n\tCommandLine.CountVar(p, name, usage)\n}\n\n// CountVarP is like CountVar only take a shorthand for the flag name.\nfunc CountVarP(p *int, name, shorthand string, usage string) {\n\tCommandLine.CountVarP(p, name, shorthand, usage)\n}\n\n// Count defines a count flag with specified name, default value, and usage string.\n// The return value is the address of an int variable that stores the value of the flag.\n// A count flag will add 1 to its value every time it is found on the command line\nfunc (f *FlagSet) Count(name string, usage string) *int {\n\tp := new(int)\n\tf.CountVarP(p, name, \"\", usage)\n\treturn p\n}\n\n// CountP is like Count only takes a shorthand for the flag name.\nfunc (f *FlagSet) CountP(name, shorthand string, usage string) *int {\n\tp := new(int)\n\tf.CountVarP(p, name, shorthand, usage)\n\treturn p\n}\n\n// Count defines a count flag with specified name, default value, and usage string.\n// The return value is the address of an int variable that stores the value of the flag.\n// A count flag will add 1 to its value evey time it is found on the command line\nfunc Count(name string, usage string) *int {\n\treturn CommandLine.CountP(name, \"\", usage)\n}\n\n// CountP is like Count only takes a shorthand for the flag name.\nfunc CountP(name, shorthand string, usage string) *int {\n\treturn CommandLine.CountP(name, shorthand, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/duration.go",
    "content": "package pflag\n\nimport (\n\t\"time\"\n)\n\n// -- time.Duration Value\ntype durationValue time.Duration\n\nfunc newDurationValue(val time.Duration, p *time.Duration) *durationValue {\n\t*p = val\n\treturn (*durationValue)(p)\n}\n\nfunc (d *durationValue) Set(s string) error {\n\tv, err := time.ParseDuration(s)\n\t*d = durationValue(v)\n\treturn err\n}\n\nfunc (d *durationValue) Type() string {\n\treturn \"duration\"\n}\n\nfunc (d *durationValue) String() string { return (*time.Duration)(d).String() }\n\nfunc durationConv(sval string) (interface{}, error) {\n\treturn time.ParseDuration(sval)\n}\n\n// GetDuration return the duration value of a flag with the given name\nfunc (f *FlagSet) GetDuration(name string) (time.Duration, error) {\n\tval, err := f.getFlagType(name, \"duration\", durationConv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn val.(time.Duration), nil\n}\n\n// DurationVar defines a time.Duration flag with specified name, default value, and usage string.\n// The argument p points to a time.Duration variable in which to store the value of the flag.\nfunc (f *FlagSet) DurationVar(p *time.Duration, name string, value time.Duration, usage string) {\n\tf.VarP(newDurationValue(value, p), name, \"\", usage)\n}\n\n// DurationVarP is like DurationVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) DurationVarP(p *time.Duration, name, shorthand string, value time.Duration, usage string) {\n\tf.VarP(newDurationValue(value, p), name, shorthand, usage)\n}\n\n// DurationVar defines a time.Duration flag with specified name, default value, and usage string.\n// The argument p points to a time.Duration variable in which to store the value of the flag.\nfunc DurationVar(p *time.Duration, name string, value time.Duration, usage string) {\n\tCommandLine.VarP(newDurationValue(value, p), name, \"\", usage)\n}\n\n// DurationVarP is like DurationVar, but accepts a shorthand letter that can be used after a single dash.\nfunc DurationVarP(p *time.Duration, name, shorthand string, value time.Duration, usage string) {\n\tCommandLine.VarP(newDurationValue(value, p), name, shorthand, usage)\n}\n\n// Duration defines a time.Duration flag with specified name, default value, and usage string.\n// The return value is the address of a time.Duration variable that stores the value of the flag.\nfunc (f *FlagSet) Duration(name string, value time.Duration, usage string) *time.Duration {\n\tp := new(time.Duration)\n\tf.DurationVarP(p, name, \"\", value, usage)\n\treturn p\n}\n\n// DurationP is like Duration, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) DurationP(name, shorthand string, value time.Duration, usage string) *time.Duration {\n\tp := new(time.Duration)\n\tf.DurationVarP(p, name, shorthand, value, usage)\n\treturn p\n}\n\n// Duration defines a time.Duration flag with specified name, default value, and usage string.\n// The return value is the address of a time.Duration variable that stores the value of the flag.\nfunc Duration(name string, value time.Duration, usage string) *time.Duration {\n\treturn CommandLine.DurationP(name, \"\", value, usage)\n}\n\n// DurationP is like Duration, but accepts a shorthand letter that can be used after a single dash.\nfunc DurationP(name, shorthand string, value time.Duration, usage string) *time.Duration {\n\treturn CommandLine.DurationP(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/duration_slice.go",
    "content": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\t\"time\"\n)\n\n// -- durationSlice Value\ntype durationSliceValue struct {\n\tvalue   *[]time.Duration\n\tchanged bool\n}\n\nfunc newDurationSliceValue(val []time.Duration, p *[]time.Duration) *durationSliceValue {\n\tdsv := new(durationSliceValue)\n\tdsv.value = p\n\t*dsv.value = val\n\treturn dsv\n}\n\nfunc (s *durationSliceValue) Set(val string) error {\n\tss := strings.Split(val, \",\")\n\tout := make([]time.Duration, len(ss))\n\tfor i, d := range ss {\n\t\tvar err error\n\t\tout[i], err = time.ParseDuration(d)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t}\n\tif !s.changed {\n\t\t*s.value = out\n\t} else {\n\t\t*s.value = append(*s.value, out...)\n\t}\n\ts.changed = true\n\treturn nil\n}\n\nfunc (s *durationSliceValue) Type() string {\n\treturn \"durationSlice\"\n}\n\nfunc (s *durationSliceValue) String() string {\n\tout := make([]string, len(*s.value))\n\tfor i, d := range *s.value {\n\t\tout[i] = fmt.Sprintf(\"%s\", d)\n\t}\n\treturn \"[\" + strings.Join(out, \",\") + \"]\"\n}\n\nfunc (s *durationSliceValue) fromString(val string) (time.Duration, error) {\n\treturn time.ParseDuration(val)\n}\n\nfunc (s *durationSliceValue) toString(val time.Duration) string {\n\treturn fmt.Sprintf(\"%s\", val)\n}\n\nfunc (s *durationSliceValue) Append(val string) error {\n\ti, err := s.fromString(val)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*s.value = append(*s.value, i)\n\treturn nil\n}\n\nfunc (s *durationSliceValue) Replace(val []string) error {\n\tout := make([]time.Duration, len(val))\n\tfor i, d := range val {\n\t\tvar err error\n\t\tout[i], err = s.fromString(d)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\t*s.value = out\n\treturn nil\n}\n\nfunc (s *durationSliceValue) GetSlice() []string {\n\tout := make([]string, len(*s.value))\n\tfor i, d := range *s.value {\n\t\tout[i] = s.toString(d)\n\t}\n\treturn out\n}\n\nfunc durationSliceConv(val string) (interface{}, error) {\n\tval = strings.Trim(val, \"[]\")\n\t// Empty string would cause a slice with one (empty) entry\n\tif len(val) == 0 {\n\t\treturn []time.Duration{}, nil\n\t}\n\tss := strings.Split(val, \",\")\n\tout := make([]time.Duration, len(ss))\n\tfor i, d := range ss {\n\t\tvar err error\n\t\tout[i], err = time.ParseDuration(d)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t}\n\treturn out, nil\n}\n\n// GetDurationSlice returns the []time.Duration value of a flag with the given name\nfunc (f *FlagSet) GetDurationSlice(name string) ([]time.Duration, error) {\n\tval, err := f.getFlagType(name, \"durationSlice\", durationSliceConv)\n\tif err != nil {\n\t\treturn []time.Duration{}, err\n\t}\n\treturn val.([]time.Duration), nil\n}\n\n// DurationSliceVar defines a durationSlice flag with specified name, default value, and usage string.\n// The argument p points to a []time.Duration variable in which to store the value of the flag.\nfunc (f *FlagSet) DurationSliceVar(p *[]time.Duration, name string, value []time.Duration, usage string) {\n\tf.VarP(newDurationSliceValue(value, p), name, \"\", usage)\n}\n\n// DurationSliceVarP is like DurationSliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) DurationSliceVarP(p *[]time.Duration, name, shorthand string, value []time.Duration, usage string) {\n\tf.VarP(newDurationSliceValue(value, p), name, shorthand, usage)\n}\n\n// DurationSliceVar defines a duration[] flag with specified name, default value, and usage string.\n// The argument p points to a duration[] variable in which to store the value of the flag.\nfunc DurationSliceVar(p *[]time.Duration, name string, value []time.Duration, usage string) {\n\tCommandLine.VarP(newDurationSliceValue(value, p), name, \"\", usage)\n}\n\n// DurationSliceVarP is like DurationSliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc DurationSliceVarP(p *[]time.Duration, name, shorthand string, value []time.Duration, usage string) {\n\tCommandLine.VarP(newDurationSliceValue(value, p), name, shorthand, usage)\n}\n\n// DurationSlice defines a []time.Duration flag with specified name, default value, and usage string.\n// The return value is the address of a []time.Duration variable that stores the value of the flag.\nfunc (f *FlagSet) DurationSlice(name string, value []time.Duration, usage string) *[]time.Duration {\n\tp := []time.Duration{}\n\tf.DurationSliceVarP(&p, name, \"\", value, usage)\n\treturn &p\n}\n\n// DurationSliceP is like DurationSlice, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) DurationSliceP(name, shorthand string, value []time.Duration, usage string) *[]time.Duration {\n\tp := []time.Duration{}\n\tf.DurationSliceVarP(&p, name, shorthand, value, usage)\n\treturn &p\n}\n\n// DurationSlice defines a []time.Duration flag with specified name, default value, and usage string.\n// The return value is the address of a []time.Duration variable that stores the value of the flag.\nfunc DurationSlice(name string, value []time.Duration, usage string) *[]time.Duration {\n\treturn CommandLine.DurationSliceP(name, \"\", value, usage)\n}\n\n// DurationSliceP is like DurationSlice, but accepts a shorthand letter that can be used after a single dash.\nfunc DurationSliceP(name, shorthand string, value []time.Duration, usage string) *[]time.Duration {\n\treturn CommandLine.DurationSliceP(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/flag.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/*\nPackage pflag is a drop-in replacement for Go's flag package, implementing\nPOSIX/GNU-style --flags.\n\npflag is compatible with the GNU extensions to the POSIX recommendations\nfor command-line options. See\nhttp://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html\n\nUsage:\n\npflag is a drop-in replacement of Go's native flag package. If you import\npflag under the name \"flag\" then all code should continue to function\nwith no changes.\n\n\timport flag \"github.com/spf13/pflag\"\n\nThere is one exception to this: if you directly instantiate the Flag struct\nthere is one more field \"Shorthand\" that you will need to set.\nMost code never instantiates this struct directly, and instead uses\nfunctions such as String(), BoolVar(), and Var(), and is therefore\nunaffected.\n\nDefine flags using flag.String(), Bool(), Int(), etc.\n\nThis declares an integer flag, -flagname, stored in the pointer ip, with type *int.\n\tvar ip = flag.Int(\"flagname\", 1234, \"help message for flagname\")\nIf you like, you can bind the flag to a variable using the Var() functions.\n\tvar flagvar int\n\tfunc init() {\n\t\tflag.IntVar(&flagvar, \"flagname\", 1234, \"help message for flagname\")\n\t}\nOr you can create custom flags that satisfy the Value interface (with\npointer receivers) and couple them to flag parsing by\n\tflag.Var(&flagVal, \"name\", \"help message for flagname\")\nFor such flags, the default value is just the initial value of the variable.\n\nAfter all flags are defined, call\n\tflag.Parse()\nto parse the command line into the defined flags.\n\nFlags may then be used directly. If you're using the flags themselves,\nthey are all pointers; if you bind to variables, they're values.\n\tfmt.Println(\"ip has value \", *ip)\n\tfmt.Println(\"flagvar has value \", flagvar)\n\nAfter parsing, the arguments after the flag are available as the\nslice flag.Args() or individually as flag.Arg(i).\nThe arguments are indexed from 0 through flag.NArg()-1.\n\nThe pflag package also defines some new functions that are not in flag,\nthat give one-letter shorthands for flags. You can use these by appending\n'P' to the name of any function that defines a flag.\n\tvar ip = flag.IntP(\"flagname\", \"f\", 1234, \"help message\")\n\tvar flagvar bool\n\tfunc init() {\n\t\tflag.BoolVarP(&flagvar, \"boolname\", \"b\", true, \"help message\")\n\t}\n\tflag.VarP(&flagval, \"varname\", \"v\", \"help message\")\nShorthand letters can be used with single dashes on the command line.\nBoolean shorthand flags can be combined with other shorthand flags.\n\nCommand line flag syntax:\n\t--flag    // boolean flags only\n\t--flag=x\n\nUnlike the flag package, a single dash before an option means something\ndifferent than a double dash. Single dashes signify a series of shorthand\nletters for flags. All but the last shorthand letter must be boolean flags.\n\t// boolean flags\n\t-f\n\t-abc\n\t// non-boolean flags\n\t-n 1234\n\t-Ifile\n\t// mixed\n\t-abcs \"hello\"\n\t-abcn1234\n\nFlag parsing stops after the terminator \"--\". Unlike the flag package,\nflags can be interspersed with arguments anywhere on the command line\nbefore this terminator.\n\nInteger flags accept 1234, 0664, 0x1234 and may be negative.\nBoolean flags (in their long form) accept 1, 0, t, f, true, false,\nTRUE, FALSE, True, False.\nDuration flags accept any input valid for time.ParseDuration.\n\nThe default set of command-line flags is controlled by\ntop-level functions.  The FlagSet type allows one to define\nindependent sets of flags, such as to implement subcommands\nin a command-line interface. The methods of FlagSet are\nanalogous to the top-level functions for the command-line\nflag set.\n*/\npackage pflag\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\tgoflag \"flag\"\n\t\"fmt\"\n\t\"io\"\n\t\"os\"\n\t\"sort\"\n\t\"strings\"\n)\n\n// ErrHelp is the error returned if the flag -help is invoked but no such flag is defined.\nvar ErrHelp = errors.New(\"pflag: help requested\")\n\n// ErrorHandling defines how to handle flag parsing errors.\ntype ErrorHandling int\n\nconst (\n\t// ContinueOnError will return an err from Parse() if an error is found\n\tContinueOnError ErrorHandling = iota\n\t// ExitOnError will call os.Exit(2) if an error is found when parsing\n\tExitOnError\n\t// PanicOnError will panic() if an error is found when parsing flags\n\tPanicOnError\n)\n\n// ParseErrorsWhitelist defines the parsing errors that can be ignored\ntype ParseErrorsWhitelist struct {\n\t// UnknownFlags will ignore unknown flags errors and continue parsing rest of the flags\n\tUnknownFlags bool\n}\n\n// NormalizedName is a flag name that has been normalized according to rules\n// for the FlagSet (e.g. making '-' and '_' equivalent).\ntype NormalizedName string\n\n// A FlagSet represents a set of defined flags.\ntype FlagSet struct {\n\t// Usage is the function called when an error occurs while parsing flags.\n\t// The field is a function (not a method) that may be changed to point to\n\t// a custom error handler.\n\tUsage func()\n\n\t// SortFlags is used to indicate, if user wants to have sorted flags in\n\t// help/usage messages.\n\tSortFlags bool\n\n\t// ParseErrorsWhitelist is used to configure a whitelist of errors\n\tParseErrorsWhitelist ParseErrorsWhitelist\n\n\tname              string\n\tparsed            bool\n\tactual            map[NormalizedName]*Flag\n\torderedActual     []*Flag\n\tsortedActual      []*Flag\n\tformal            map[NormalizedName]*Flag\n\torderedFormal     []*Flag\n\tsortedFormal      []*Flag\n\tshorthands        map[byte]*Flag\n\targs              []string // arguments after flags\n\targsLenAtDash     int      // len(args) when a '--' was located when parsing, or -1 if no --\n\terrorHandling     ErrorHandling\n\toutput            io.Writer // nil means stderr; use Output() accessor\n\tinterspersed      bool      // allow interspersed option/non-option args\n\tnormalizeNameFunc func(f *FlagSet, name string) NormalizedName\n\n\taddedGoFlagSets []*goflag.FlagSet\n}\n\n// A Flag represents the state of a flag.\ntype Flag struct {\n\tName                string              // name as it appears on command line\n\tShorthand           string              // one-letter abbreviated flag\n\tUsage               string              // help message\n\tValue               Value               // value as set\n\tDefValue            string              // default value (as text); for usage message\n\tChanged             bool                // If the user set the value (or if left to default)\n\tNoOptDefVal         string              // default value (as text); if the flag is on the command line without any options\n\tDeprecated          string              // If this flag is deprecated, this string is the new or now thing to use\n\tHidden              bool                // used by cobra.Command to allow flags to be hidden from help/usage text\n\tShorthandDeprecated string              // If the shorthand of this flag is deprecated, this string is the new or now thing to use\n\tAnnotations         map[string][]string // used by cobra.Command bash autocomple code\n}\n\n// Value is the interface to the dynamic value stored in a flag.\n// (The default value is represented as a string.)\ntype Value interface {\n\tString() string\n\tSet(string) error\n\tType() string\n}\n\n// SliceValue is a secondary interface to all flags which hold a list\n// of values.  This allows full control over the value of list flags,\n// and avoids complicated marshalling and unmarshalling to csv.\ntype SliceValue interface {\n\t// Append adds the specified value to the end of the flag value list.\n\tAppend(string) error\n\t// Replace will fully overwrite any data currently in the flag value list.\n\tReplace([]string) error\n\t// GetSlice returns the flag value list as an array of strings.\n\tGetSlice() []string\n}\n\n// sortFlags returns the flags as a slice in lexicographical sorted order.\nfunc sortFlags(flags map[NormalizedName]*Flag) []*Flag {\n\tlist := make(sort.StringSlice, len(flags))\n\ti := 0\n\tfor k := range flags {\n\t\tlist[i] = string(k)\n\t\ti++\n\t}\n\tlist.Sort()\n\tresult := make([]*Flag, len(list))\n\tfor i, name := range list {\n\t\tresult[i] = flags[NormalizedName(name)]\n\t}\n\treturn result\n}\n\n// SetNormalizeFunc allows you to add a function which can translate flag names.\n// Flags added to the FlagSet will be translated and then when anything tries to\n// look up the flag that will also be translated. So it would be possible to create\n// a flag named \"getURL\" and have it translated to \"geturl\".  A user could then pass\n// \"--getUrl\" which may also be translated to \"geturl\" and everything will work.\nfunc (f *FlagSet) SetNormalizeFunc(n func(f *FlagSet, name string) NormalizedName) {\n\tf.normalizeNameFunc = n\n\tf.sortedFormal = f.sortedFormal[:0]\n\tfor fname, flag := range f.formal {\n\t\tnname := f.normalizeFlagName(flag.Name)\n\t\tif fname == nname {\n\t\t\tcontinue\n\t\t}\n\t\tflag.Name = string(nname)\n\t\tdelete(f.formal, fname)\n\t\tf.formal[nname] = flag\n\t\tif _, set := f.actual[fname]; set {\n\t\t\tdelete(f.actual, fname)\n\t\t\tf.actual[nname] = flag\n\t\t}\n\t}\n}\n\n// GetNormalizeFunc returns the previously set NormalizeFunc of a function which\n// does no translation, if not set previously.\nfunc (f *FlagSet) GetNormalizeFunc() func(f *FlagSet, name string) NormalizedName {\n\tif f.normalizeNameFunc != nil {\n\t\treturn f.normalizeNameFunc\n\t}\n\treturn func(f *FlagSet, name string) NormalizedName { return NormalizedName(name) }\n}\n\nfunc (f *FlagSet) normalizeFlagName(name string) NormalizedName {\n\tn := f.GetNormalizeFunc()\n\treturn n(f, name)\n}\n\n// Output returns the destination for usage and error messages. os.Stderr is returned if\n// output was not set or was set to nil.\nfunc (f *FlagSet) Output() io.Writer {\n\tif f.output == nil {\n\t\treturn os.Stderr\n\t}\n\treturn f.output\n}\n\n// Name returns the name of the flag set.\nfunc (f *FlagSet) Name() string {\n\treturn f.name\n}\n\n// SetOutput sets the destination for usage and error messages.\n// If output is nil, os.Stderr is used.\nfunc (f *FlagSet) SetOutput(output io.Writer) {\n\tf.output = output\n}\n\n// VisitAll visits the flags in lexicographical order or\n// in primordial order if f.SortFlags is false, calling fn for each.\n// It visits all flags, even those not set.\nfunc (f *FlagSet) VisitAll(fn func(*Flag)) {\n\tif len(f.formal) == 0 {\n\t\treturn\n\t}\n\n\tvar flags []*Flag\n\tif f.SortFlags {\n\t\tif len(f.formal) != len(f.sortedFormal) {\n\t\t\tf.sortedFormal = sortFlags(f.formal)\n\t\t}\n\t\tflags = f.sortedFormal\n\t} else {\n\t\tflags = f.orderedFormal\n\t}\n\n\tfor _, flag := range flags {\n\t\tfn(flag)\n\t}\n}\n\n// HasFlags returns a bool to indicate if the FlagSet has any flags defined.\nfunc (f *FlagSet) HasFlags() bool {\n\treturn len(f.formal) > 0\n}\n\n// HasAvailableFlags returns a bool to indicate if the FlagSet has any flags\n// that are not hidden.\nfunc (f *FlagSet) HasAvailableFlags() bool {\n\tfor _, flag := range f.formal {\n\t\tif !flag.Hidden {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// VisitAll visits the command-line flags in lexicographical order or\n// in primordial order if f.SortFlags is false, calling fn for each.\n// It visits all flags, even those not set.\nfunc VisitAll(fn func(*Flag)) {\n\tCommandLine.VisitAll(fn)\n}\n\n// Visit visits the flags in lexicographical order or\n// in primordial order if f.SortFlags is false, calling fn for each.\n// It visits only those flags that have been set.\nfunc (f *FlagSet) Visit(fn func(*Flag)) {\n\tif len(f.actual) == 0 {\n\t\treturn\n\t}\n\n\tvar flags []*Flag\n\tif f.SortFlags {\n\t\tif len(f.actual) != len(f.sortedActual) {\n\t\t\tf.sortedActual = sortFlags(f.actual)\n\t\t}\n\t\tflags = f.sortedActual\n\t} else {\n\t\tflags = f.orderedActual\n\t}\n\n\tfor _, flag := range flags {\n\t\tfn(flag)\n\t}\n}\n\n// Visit visits the command-line flags in lexicographical order or\n// in primordial order if f.SortFlags is false, calling fn for each.\n// It visits only those flags that have been set.\nfunc Visit(fn func(*Flag)) {\n\tCommandLine.Visit(fn)\n}\n\n// Lookup returns the Flag structure of the named flag, returning nil if none exists.\nfunc (f *FlagSet) Lookup(name string) *Flag {\n\treturn f.lookup(f.normalizeFlagName(name))\n}\n\n// ShorthandLookup returns the Flag structure of the short handed flag,\n// returning nil if none exists.\n// It panics, if len(name) > 1.\nfunc (f *FlagSet) ShorthandLookup(name string) *Flag {\n\tif name == \"\" {\n\t\treturn nil\n\t}\n\tif len(name) > 1 {\n\t\tmsg := fmt.Sprintf(\"can not look up shorthand which is more than one ASCII character: %q\", name)\n\t\tfmt.Fprintf(f.Output(), msg)\n\t\tpanic(msg)\n\t}\n\tc := name[0]\n\treturn f.shorthands[c]\n}\n\n// lookup returns the Flag structure of the named flag, returning nil if none exists.\nfunc (f *FlagSet) lookup(name NormalizedName) *Flag {\n\treturn f.formal[name]\n}\n\n// func to return a given type for a given flag name\nfunc (f *FlagSet) getFlagType(name string, ftype string, convFunc func(sval string) (interface{}, error)) (interface{}, error) {\n\tflag := f.Lookup(name)\n\tif flag == nil {\n\t\terr := fmt.Errorf(\"flag accessed but not defined: %s\", name)\n\t\treturn nil, err\n\t}\n\n\tif flag.Value.Type() != ftype {\n\t\terr := fmt.Errorf(\"trying to get %s value of flag of type %s\", ftype, flag.Value.Type())\n\t\treturn nil, err\n\t}\n\n\tsval := flag.Value.String()\n\tresult, err := convFunc(sval)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn result, nil\n}\n\n// ArgsLenAtDash will return the length of f.Args at the moment when a -- was\n// found during arg parsing. This allows your program to know which args were\n// before the -- and which came after.\nfunc (f *FlagSet) ArgsLenAtDash() int {\n\treturn f.argsLenAtDash\n}\n\n// MarkDeprecated indicated that a flag is deprecated in your program. It will\n// continue to function but will not show up in help or usage messages. Using\n// this flag will also print the given usageMessage.\nfunc (f *FlagSet) MarkDeprecated(name string, usageMessage string) error {\n\tflag := f.Lookup(name)\n\tif flag == nil {\n\t\treturn fmt.Errorf(\"flag %q does not exist\", name)\n\t}\n\tif usageMessage == \"\" {\n\t\treturn fmt.Errorf(\"deprecated message for flag %q must be set\", name)\n\t}\n\tflag.Deprecated = usageMessage\n\tflag.Hidden = true\n\treturn nil\n}\n\n// MarkShorthandDeprecated will mark the shorthand of a flag deprecated in your\n// program. It will continue to function but will not show up in help or usage\n// messages. Using this flag will also print the given usageMessage.\nfunc (f *FlagSet) MarkShorthandDeprecated(name string, usageMessage string) error {\n\tflag := f.Lookup(name)\n\tif flag == nil {\n\t\treturn fmt.Errorf(\"flag %q does not exist\", name)\n\t}\n\tif usageMessage == \"\" {\n\t\treturn fmt.Errorf(\"deprecated message for flag %q must be set\", name)\n\t}\n\tflag.ShorthandDeprecated = usageMessage\n\treturn nil\n}\n\n// MarkHidden sets a flag to 'hidden' in your program. It will continue to\n// function but will not show up in help or usage messages.\nfunc (f *FlagSet) MarkHidden(name string) error {\n\tflag := f.Lookup(name)\n\tif flag == nil {\n\t\treturn fmt.Errorf(\"flag %q does not exist\", name)\n\t}\n\tflag.Hidden = true\n\treturn nil\n}\n\n// Lookup returns the Flag structure of the named command-line flag,\n// returning nil if none exists.\nfunc Lookup(name string) *Flag {\n\treturn CommandLine.Lookup(name)\n}\n\n// ShorthandLookup returns the Flag structure of the short handed flag,\n// returning nil if none exists.\nfunc ShorthandLookup(name string) *Flag {\n\treturn CommandLine.ShorthandLookup(name)\n}\n\n// Set sets the value of the named flag.\nfunc (f *FlagSet) Set(name, value string) error {\n\tnormalName := f.normalizeFlagName(name)\n\tflag, ok := f.formal[normalName]\n\tif !ok {\n\t\treturn fmt.Errorf(\"no such flag -%v\", name)\n\t}\n\n\terr := flag.Value.Set(value)\n\tif err != nil {\n\t\tvar flagName string\n\t\tif flag.Shorthand != \"\" && flag.ShorthandDeprecated == \"\" {\n\t\t\tflagName = fmt.Sprintf(\"-%s, --%s\", flag.Shorthand, flag.Name)\n\t\t} else {\n\t\t\tflagName = fmt.Sprintf(\"--%s\", flag.Name)\n\t\t}\n\t\treturn fmt.Errorf(\"invalid argument %q for %q flag: %v\", value, flagName, err)\n\t}\n\n\tif !flag.Changed {\n\t\tif f.actual == nil {\n\t\t\tf.actual = make(map[NormalizedName]*Flag)\n\t\t}\n\t\tf.actual[normalName] = flag\n\t\tf.orderedActual = append(f.orderedActual, flag)\n\n\t\tflag.Changed = true\n\t}\n\n\tif flag.Deprecated != \"\" {\n\t\tfmt.Fprintf(f.Output(), \"Flag --%s has been deprecated, %s\\n\", flag.Name, flag.Deprecated)\n\t}\n\treturn nil\n}\n\n// SetAnnotation allows one to set arbitrary annotations on a flag in the FlagSet.\n// This is sometimes used by spf13/cobra programs which want to generate additional\n// bash completion information.\nfunc (f *FlagSet) SetAnnotation(name, key string, values []string) error {\n\tnormalName := f.normalizeFlagName(name)\n\tflag, ok := f.formal[normalName]\n\tif !ok {\n\t\treturn fmt.Errorf(\"no such flag -%v\", name)\n\t}\n\tif flag.Annotations == nil {\n\t\tflag.Annotations = map[string][]string{}\n\t}\n\tflag.Annotations[key] = values\n\treturn nil\n}\n\n// Changed returns true if the flag was explicitly set during Parse() and false\n// otherwise\nfunc (f *FlagSet) Changed(name string) bool {\n\tflag := f.Lookup(name)\n\t// If a flag doesn't exist, it wasn't changed....\n\tif flag == nil {\n\t\treturn false\n\t}\n\treturn flag.Changed\n}\n\n// Set sets the value of the named command-line flag.\nfunc Set(name, value string) error {\n\treturn CommandLine.Set(name, value)\n}\n\n// PrintDefaults prints, to standard error unless configured\n// otherwise, the default values of all defined flags in the set.\nfunc (f *FlagSet) PrintDefaults() {\n\tusages := f.FlagUsages()\n\tfmt.Fprint(f.Output(), usages)\n}\n\n// defaultIsZeroValue returns true if the default value for this flag represents\n// a zero value.\nfunc (f *Flag) defaultIsZeroValue() bool {\n\tswitch f.Value.(type) {\n\tcase boolFlag:\n\t\treturn f.DefValue == \"false\"\n\tcase *durationValue:\n\t\t// Beginning in Go 1.7, duration zero values are \"0s\"\n\t\treturn f.DefValue == \"0\" || f.DefValue == \"0s\"\n\tcase *intValue, *int8Value, *int32Value, *int64Value, *uintValue, *uint8Value, *uint16Value, *uint32Value, *uint64Value, *countValue, *float32Value, *float64Value:\n\t\treturn f.DefValue == \"0\"\n\tcase *stringValue:\n\t\treturn f.DefValue == \"\"\n\tcase *ipValue, *ipMaskValue, *ipNetValue:\n\t\treturn f.DefValue == \"<nil>\"\n\tcase *intSliceValue, *stringSliceValue, *stringArrayValue:\n\t\treturn f.DefValue == \"[]\"\n\tdefault:\n\t\tswitch f.Value.String() {\n\t\tcase \"false\":\n\t\t\treturn true\n\t\tcase \"<nil>\":\n\t\t\treturn true\n\t\tcase \"\":\n\t\t\treturn true\n\t\tcase \"0\":\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n}\n\n// UnquoteUsage extracts a back-quoted name from the usage\n// string for a flag and returns it and the un-quoted usage.\n// Given \"a `name` to show\" it returns (\"name\", \"a name to show\").\n// If there are no back quotes, the name is an educated guess of the\n// type of the flag's value, or the empty string if the flag is boolean.\nfunc UnquoteUsage(flag *Flag) (name string, usage string) {\n\t// Look for a back-quoted name, but avoid the strings package.\n\tusage = flag.Usage\n\tfor i := 0; i < len(usage); i++ {\n\t\tif usage[i] == '`' {\n\t\t\tfor j := i + 1; j < len(usage); j++ {\n\t\t\t\tif usage[j] == '`' {\n\t\t\t\t\tname = usage[i+1 : j]\n\t\t\t\t\tusage = usage[:i] + name + usage[j+1:]\n\t\t\t\t\treturn name, usage\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak // Only one back quote; use type name.\n\t\t}\n\t}\n\n\tname = flag.Value.Type()\n\tswitch name {\n\tcase \"bool\":\n\t\tname = \"\"\n\tcase \"float64\":\n\t\tname = \"float\"\n\tcase \"int64\":\n\t\tname = \"int\"\n\tcase \"uint64\":\n\t\tname = \"uint\"\n\tcase \"stringSlice\":\n\t\tname = \"strings\"\n\tcase \"intSlice\":\n\t\tname = \"ints\"\n\tcase \"uintSlice\":\n\t\tname = \"uints\"\n\tcase \"boolSlice\":\n\t\tname = \"bools\"\n\t}\n\n\treturn\n}\n\n// Splits the string `s` on whitespace into an initial substring up to\n// `i` runes in length and the remainder. Will go `slop` over `i` if\n// that encompasses the entire string (which allows the caller to\n// avoid short orphan words on the final line).\nfunc wrapN(i, slop int, s string) (string, string) {\n\tif i+slop > len(s) {\n\t\treturn s, \"\"\n\t}\n\n\tw := strings.LastIndexAny(s[:i], \" \\t\\n\")\n\tif w <= 0 {\n\t\treturn s, \"\"\n\t}\n\tnlPos := strings.LastIndex(s[:i], \"\\n\")\n\tif nlPos > 0 && nlPos < w {\n\t\treturn s[:nlPos], s[nlPos+1:]\n\t}\n\treturn s[:w], s[w+1:]\n}\n\n// Wraps the string `s` to a maximum width `w` with leading indent\n// `i`. The first line is not indented (this is assumed to be done by\n// caller). Pass `w` == 0 to do no wrapping\nfunc wrap(i, w int, s string) string {\n\tif w == 0 {\n\t\treturn strings.Replace(s, \"\\n\", \"\\n\"+strings.Repeat(\" \", i), -1)\n\t}\n\n\t// space between indent i and end of line width w into which\n\t// we should wrap the text.\n\twrap := w - i\n\n\tvar r, l string\n\n\t// Not enough space for sensible wrapping. Wrap as a block on\n\t// the next line instead.\n\tif wrap < 24 {\n\t\ti = 16\n\t\twrap = w - i\n\t\tr += \"\\n\" + strings.Repeat(\" \", i)\n\t}\n\t// If still not enough space then don't even try to wrap.\n\tif wrap < 24 {\n\t\treturn strings.Replace(s, \"\\n\", r, -1)\n\t}\n\n\t// Try to avoid short orphan words on the final line, by\n\t// allowing wrapN to go a bit over if that would fit in the\n\t// remainder of the line.\n\tslop := 5\n\twrap = wrap - slop\n\n\t// Handle first line, which is indented by the caller (or the\n\t// special case above)\n\tl, s = wrapN(wrap, slop, s)\n\tr = r + strings.Replace(l, \"\\n\", \"\\n\"+strings.Repeat(\" \", i), -1)\n\n\t// Now wrap the rest\n\tfor s != \"\" {\n\t\tvar t string\n\n\t\tt, s = wrapN(wrap, slop, s)\n\t\tr = r + \"\\n\" + strings.Repeat(\" \", i) + strings.Replace(t, \"\\n\", \"\\n\"+strings.Repeat(\" \", i), -1)\n\t}\n\n\treturn r\n\n}\n\n// FlagUsagesWrapped returns a string containing the usage information\n// for all flags in the FlagSet. Wrapped to `cols` columns (0 for no\n// wrapping)\nfunc (f *FlagSet) FlagUsagesWrapped(cols int) string {\n\tbuf := new(bytes.Buffer)\n\n\tlines := make([]string, 0, len(f.formal))\n\n\tmaxlen := 0\n\tf.VisitAll(func(flag *Flag) {\n\t\tif flag.Hidden {\n\t\t\treturn\n\t\t}\n\n\t\tline := \"\"\n\t\tif flag.Shorthand != \"\" && flag.ShorthandDeprecated == \"\" {\n\t\t\tline = fmt.Sprintf(\"  -%s, --%s\", flag.Shorthand, flag.Name)\n\t\t} else {\n\t\t\tline = fmt.Sprintf(\"      --%s\", flag.Name)\n\t\t}\n\n\t\tvarname, usage := UnquoteUsage(flag)\n\t\tif varname != \"\" {\n\t\t\tline += \" \" + varname\n\t\t}\n\t\tif flag.NoOptDefVal != \"\" {\n\t\t\tswitch flag.Value.Type() {\n\t\t\tcase \"string\":\n\t\t\t\tline += fmt.Sprintf(\"[=\\\"%s\\\"]\", flag.NoOptDefVal)\n\t\t\tcase \"bool\":\n\t\t\t\tif flag.NoOptDefVal != \"true\" {\n\t\t\t\t\tline += fmt.Sprintf(\"[=%s]\", flag.NoOptDefVal)\n\t\t\t\t}\n\t\t\tcase \"count\":\n\t\t\t\tif flag.NoOptDefVal != \"+1\" {\n\t\t\t\t\tline += fmt.Sprintf(\"[=%s]\", flag.NoOptDefVal)\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\tline += fmt.Sprintf(\"[=%s]\", flag.NoOptDefVal)\n\t\t\t}\n\t\t}\n\n\t\t// This special character will be replaced with spacing once the\n\t\t// correct alignment is calculated\n\t\tline += \"\\x00\"\n\t\tif len(line) > maxlen {\n\t\t\tmaxlen = len(line)\n\t\t}\n\n\t\tline += usage\n\t\tif !flag.defaultIsZeroValue() {\n\t\t\tif flag.Value.Type() == \"string\" {\n\t\t\t\tline += fmt.Sprintf(\" (default %q)\", flag.DefValue)\n\t\t\t} else {\n\t\t\t\tline += fmt.Sprintf(\" (default %s)\", flag.DefValue)\n\t\t\t}\n\t\t}\n\t\tif len(flag.Deprecated) != 0 {\n\t\t\tline += fmt.Sprintf(\" (DEPRECATED: %s)\", flag.Deprecated)\n\t\t}\n\n\t\tlines = append(lines, line)\n\t})\n\n\tfor _, line := range lines {\n\t\tsidx := strings.Index(line, \"\\x00\")\n\t\tspacing := strings.Repeat(\" \", maxlen-sidx)\n\t\t// maxlen + 2 comes from + 1 for the \\x00 and + 1 for the (deliberate) off-by-one in maxlen-sidx\n\t\tfmt.Fprintln(buf, line[:sidx], spacing, wrap(maxlen+2, cols, line[sidx+1:]))\n\t}\n\n\treturn buf.String()\n}\n\n// FlagUsages returns a string containing the usage information for all flags in\n// the FlagSet\nfunc (f *FlagSet) FlagUsages() string {\n\treturn f.FlagUsagesWrapped(0)\n}\n\n// PrintDefaults prints to standard error the default values of all defined command-line flags.\nfunc PrintDefaults() {\n\tCommandLine.PrintDefaults()\n}\n\n// defaultUsage is the default function to print a usage message.\nfunc defaultUsage(f *FlagSet) {\n\tfmt.Fprintf(f.Output(), \"Usage of %s:\\n\", f.name)\n\tf.PrintDefaults()\n}\n\n// NOTE: Usage is not just defaultUsage(CommandLine)\n// because it serves (via godoc flag Usage) as the example\n// for how to write your own usage function.\n\n// Usage prints to standard error a usage message documenting all defined command-line flags.\n// The function is a variable that may be changed to point to a custom function.\n// By default it prints a simple header and calls PrintDefaults; for details about the\n// format of the output and how to control it, see the documentation for PrintDefaults.\nvar Usage = func() {\n\tfmt.Fprintf(os.Stderr, \"Usage of %s:\\n\", os.Args[0])\n\tPrintDefaults()\n}\n\n// NFlag returns the number of flags that have been set.\nfunc (f *FlagSet) NFlag() int { return len(f.actual) }\n\n// NFlag returns the number of command-line flags that have been set.\nfunc NFlag() int { return len(CommandLine.actual) }\n\n// Arg returns the i'th argument.  Arg(0) is the first remaining argument\n// after flags have been processed.\nfunc (f *FlagSet) Arg(i int) string {\n\tif i < 0 || i >= len(f.args) {\n\t\treturn \"\"\n\t}\n\treturn f.args[i]\n}\n\n// Arg returns the i'th command-line argument.  Arg(0) is the first remaining argument\n// after flags have been processed.\nfunc Arg(i int) string {\n\treturn CommandLine.Arg(i)\n}\n\n// NArg is the number of arguments remaining after flags have been processed.\nfunc (f *FlagSet) NArg() int { return len(f.args) }\n\n// NArg is the number of arguments remaining after flags have been processed.\nfunc NArg() int { return len(CommandLine.args) }\n\n// Args returns the non-flag arguments.\nfunc (f *FlagSet) Args() []string { return f.args }\n\n// Args returns the non-flag command-line arguments.\nfunc Args() []string { return CommandLine.args }\n\n// Var defines a flag with the specified name and usage string. The type and\n// value of the flag are represented by the first argument, of type Value, which\n// typically holds a user-defined implementation of Value. For instance, the\n// caller could create a flag that turns a comma-separated string into a slice\n// of strings by giving the slice the methods of Value; in particular, Set would\n// decompose the comma-separated string into the slice.\nfunc (f *FlagSet) Var(value Value, name string, usage string) {\n\tf.VarP(value, name, \"\", usage)\n}\n\n// VarPF is like VarP, but returns the flag created\nfunc (f *FlagSet) VarPF(value Value, name, shorthand, usage string) *Flag {\n\t// Remember the default value as a string; it won't change.\n\tflag := &Flag{\n\t\tName:      name,\n\t\tShorthand: shorthand,\n\t\tUsage:     usage,\n\t\tValue:     value,\n\t\tDefValue:  value.String(),\n\t}\n\tf.AddFlag(flag)\n\treturn flag\n}\n\n// VarP is like Var, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) VarP(value Value, name, shorthand, usage string) {\n\tf.VarPF(value, name, shorthand, usage)\n}\n\n// AddFlag will add the flag to the FlagSet\nfunc (f *FlagSet) AddFlag(flag *Flag) {\n\tnormalizedFlagName := f.normalizeFlagName(flag.Name)\n\n\t_, alreadyThere := f.formal[normalizedFlagName]\n\tif alreadyThere {\n\t\tmsg := fmt.Sprintf(\"%s flag redefined: %s\", f.name, flag.Name)\n\t\tfmt.Fprintln(f.Output(), msg)\n\t\tpanic(msg) // Happens only if flags are declared with identical names\n\t}\n\tif f.formal == nil {\n\t\tf.formal = make(map[NormalizedName]*Flag)\n\t}\n\n\tflag.Name = string(normalizedFlagName)\n\tf.formal[normalizedFlagName] = flag\n\tf.orderedFormal = append(f.orderedFormal, flag)\n\n\tif flag.Shorthand == \"\" {\n\t\treturn\n\t}\n\tif len(flag.Shorthand) > 1 {\n\t\tmsg := fmt.Sprintf(\"%q shorthand is more than one ASCII character\", flag.Shorthand)\n\t\tfmt.Fprintf(f.Output(), msg)\n\t\tpanic(msg)\n\t}\n\tif f.shorthands == nil {\n\t\tf.shorthands = make(map[byte]*Flag)\n\t}\n\tc := flag.Shorthand[0]\n\tused, alreadyThere := f.shorthands[c]\n\tif alreadyThere {\n\t\tmsg := fmt.Sprintf(\"unable to redefine %q shorthand in %q flagset: it's already used for %q flag\", c, f.name, used.Name)\n\t\tfmt.Fprintf(f.Output(), msg)\n\t\tpanic(msg)\n\t}\n\tf.shorthands[c] = flag\n}\n\n// AddFlagSet adds one FlagSet to another. If a flag is already present in f\n// the flag from newSet will be ignored.\nfunc (f *FlagSet) AddFlagSet(newSet *FlagSet) {\n\tif newSet == nil {\n\t\treturn\n\t}\n\tnewSet.VisitAll(func(flag *Flag) {\n\t\tif f.Lookup(flag.Name) == nil {\n\t\t\tf.AddFlag(flag)\n\t\t}\n\t})\n}\n\n// Var defines a flag with the specified name and usage string. The type and\n// value of the flag are represented by the first argument, of type Value, which\n// typically holds a user-defined implementation of Value. For instance, the\n// caller could create a flag that turns a comma-separated string into a slice\n// of strings by giving the slice the methods of Value; in particular, Set would\n// decompose the comma-separated string into the slice.\nfunc Var(value Value, name string, usage string) {\n\tCommandLine.VarP(value, name, \"\", usage)\n}\n\n// VarP is like Var, but accepts a shorthand letter that can be used after a single dash.\nfunc VarP(value Value, name, shorthand, usage string) {\n\tCommandLine.VarP(value, name, shorthand, usage)\n}\n\n// failf prints to standard error a formatted error and usage message and\n// returns the error.\nfunc (f *FlagSet) failf(format string, a ...interface{}) error {\n\terr := fmt.Errorf(format, a...)\n\tif f.errorHandling != ContinueOnError {\n\t\tfmt.Fprintln(f.Output(), err)\n\t\tf.usage()\n\t}\n\treturn err\n}\n\n// usage calls the Usage method for the flag set, or the usage function if\n// the flag set is CommandLine.\nfunc (f *FlagSet) usage() {\n\tif f == CommandLine {\n\t\tUsage()\n\t} else if f.Usage == nil {\n\t\tdefaultUsage(f)\n\t} else {\n\t\tf.Usage()\n\t}\n}\n\n//--unknown (args will be empty)\n//--unknown --next-flag ... (args will be --next-flag ...)\n//--unknown arg ... (args will be arg ...)\nfunc stripUnknownFlagValue(args []string) []string {\n\tif len(args) == 0 {\n\t\t//--unknown\n\t\treturn args\n\t}\n\n\tfirst := args[0]\n\tif len(first) > 0 && first[0] == '-' {\n\t\t//--unknown --next-flag ...\n\t\treturn args\n\t}\n\n\t//--unknown arg ... (args will be arg ...)\n\tif len(args) > 1 {\n\t\treturn args[1:]\n\t}\n\treturn nil\n}\n\nfunc (f *FlagSet) parseLongArg(s string, args []string, fn parseFunc) (a []string, err error) {\n\ta = args\n\tname := s[2:]\n\tif len(name) == 0 || name[0] == '-' || name[0] == '=' {\n\t\terr = f.failf(\"bad flag syntax: %s\", s)\n\t\treturn\n\t}\n\n\tsplit := strings.SplitN(name, \"=\", 2)\n\tname = split[0]\n\tflag, exists := f.formal[f.normalizeFlagName(name)]\n\n\tif !exists {\n\t\tswitch {\n\t\tcase name == \"help\":\n\t\t\tf.usage()\n\t\t\treturn a, ErrHelp\n\t\tcase f.ParseErrorsWhitelist.UnknownFlags:\n\t\t\t// --unknown=unknownval arg ...\n\t\t\t// we do not want to lose arg in this case\n\t\t\tif len(split) >= 2 {\n\t\t\t\treturn a, nil\n\t\t\t}\n\n\t\t\treturn stripUnknownFlagValue(a), nil\n\t\tdefault:\n\t\t\terr = f.failf(\"unknown flag: --%s\", name)\n\t\t\treturn\n\t\t}\n\t}\n\n\tvar value string\n\tif len(split) == 2 {\n\t\t// '--flag=arg'\n\t\tvalue = split[1]\n\t} else if flag.NoOptDefVal != \"\" {\n\t\t// '--flag' (arg was optional)\n\t\tvalue = flag.NoOptDefVal\n\t} else if len(a) > 0 {\n\t\t// '--flag arg'\n\t\tvalue = a[0]\n\t\ta = a[1:]\n\t} else {\n\t\t// '--flag' (arg was required)\n\t\terr = f.failf(\"flag needs an argument: %s\", s)\n\t\treturn\n\t}\n\n\terr = fn(flag, value)\n\tif err != nil {\n\t\tf.failf(err.Error())\n\t}\n\treturn\n}\n\nfunc (f *FlagSet) parseSingleShortArg(shorthands string, args []string, fn parseFunc) (outShorts string, outArgs []string, err error) {\n\toutArgs = args\n\n\tif strings.HasPrefix(shorthands, \"test.\") {\n\t\treturn\n\t}\n\n\toutShorts = shorthands[1:]\n\tc := shorthands[0]\n\n\tflag, exists := f.shorthands[c]\n\tif !exists {\n\t\tswitch {\n\t\tcase c == 'h':\n\t\t\tf.usage()\n\t\t\terr = ErrHelp\n\t\t\treturn\n\t\tcase f.ParseErrorsWhitelist.UnknownFlags:\n\t\t\t// '-f=arg arg ...'\n\t\t\t// we do not want to lose arg in this case\n\t\t\tif len(shorthands) > 2 && shorthands[1] == '=' {\n\t\t\t\toutShorts = \"\"\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\toutArgs = stripUnknownFlagValue(outArgs)\n\t\t\treturn\n\t\tdefault:\n\t\t\terr = f.failf(\"unknown shorthand flag: %q in -%s\", c, shorthands)\n\t\t\treturn\n\t\t}\n\t}\n\n\tvar value string\n\tif len(shorthands) > 2 && shorthands[1] == '=' {\n\t\t// '-f=arg'\n\t\tvalue = shorthands[2:]\n\t\toutShorts = \"\"\n\t} else if flag.NoOptDefVal != \"\" {\n\t\t// '-f' (arg was optional)\n\t\tvalue = flag.NoOptDefVal\n\t} else if len(shorthands) > 1 {\n\t\t// '-farg'\n\t\tvalue = shorthands[1:]\n\t\toutShorts = \"\"\n\t} else if len(args) > 0 {\n\t\t// '-f arg'\n\t\tvalue = args[0]\n\t\toutArgs = args[1:]\n\t} else {\n\t\t// '-f' (arg was required)\n\t\terr = f.failf(\"flag needs an argument: %q in -%s\", c, shorthands)\n\t\treturn\n\t}\n\n\tif flag.ShorthandDeprecated != \"\" {\n\t\tfmt.Fprintf(f.Output(), \"Flag shorthand -%s has been deprecated, %s\\n\", flag.Shorthand, flag.ShorthandDeprecated)\n\t}\n\n\terr = fn(flag, value)\n\tif err != nil {\n\t\tf.failf(err.Error())\n\t}\n\treturn\n}\n\nfunc (f *FlagSet) parseShortArg(s string, args []string, fn parseFunc) (a []string, err error) {\n\ta = args\n\tshorthands := s[1:]\n\n\t// \"shorthands\" can be a series of shorthand letters of flags (e.g. \"-vvv\").\n\tfor len(shorthands) > 0 {\n\t\tshorthands, a, err = f.parseSingleShortArg(shorthands, args, fn)\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t}\n\n\treturn\n}\n\nfunc (f *FlagSet) parseArgs(args []string, fn parseFunc) (err error) {\n\tfor len(args) > 0 {\n\t\ts := args[0]\n\t\targs = args[1:]\n\t\tif len(s) == 0 || s[0] != '-' || len(s) == 1 {\n\t\t\tif !f.interspersed {\n\t\t\t\tf.args = append(f.args, s)\n\t\t\t\tf.args = append(f.args, args...)\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tf.args = append(f.args, s)\n\t\t\tcontinue\n\t\t}\n\n\t\tif s[1] == '-' {\n\t\t\tif len(s) == 2 { // \"--\" terminates the flags\n\t\t\t\tf.argsLenAtDash = len(f.args)\n\t\t\t\tf.args = append(f.args, args...)\n\t\t\t\tbreak\n\t\t\t}\n\t\t\targs, err = f.parseLongArg(s, args, fn)\n\t\t} else {\n\t\t\targs, err = f.parseShortArg(s, args, fn)\n\t\t}\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t}\n\treturn\n}\n\n// Parse parses flag definitions from the argument list, which should not\n// include the command name.  Must be called after all flags in the FlagSet\n// are defined and before flags are accessed by the program.\n// The return value will be ErrHelp if -help was set but not defined.\nfunc (f *FlagSet) Parse(arguments []string) error {\n\tif f.addedGoFlagSets != nil {\n\t\tfor _, goFlagSet := range f.addedGoFlagSets {\n\t\t\tgoFlagSet.Parse(nil)\n\t\t}\n\t}\n\tf.parsed = true\n\n\tif len(arguments) < 0 {\n\t\treturn nil\n\t}\n\n\tf.args = make([]string, 0, len(arguments))\n\n\tset := func(flag *Flag, value string) error {\n\t\treturn f.Set(flag.Name, value)\n\t}\n\n\terr := f.parseArgs(arguments, set)\n\tif err != nil {\n\t\tswitch f.errorHandling {\n\t\tcase ContinueOnError:\n\t\t\treturn err\n\t\tcase ExitOnError:\n\t\t\tfmt.Println(err)\n\t\t\tos.Exit(2)\n\t\tcase PanicOnError:\n\t\t\tpanic(err)\n\t\t}\n\t}\n\treturn nil\n}\n\ntype parseFunc func(flag *Flag, value string) error\n\n// ParseAll parses flag definitions from the argument list, which should not\n// include the command name. The arguments for fn are flag and value. Must be\n// called after all flags in the FlagSet are defined and before flags are\n// accessed by the program. The return value will be ErrHelp if -help was set\n// but not defined.\nfunc (f *FlagSet) ParseAll(arguments []string, fn func(flag *Flag, value string) error) error {\n\tf.parsed = true\n\tf.args = make([]string, 0, len(arguments))\n\n\terr := f.parseArgs(arguments, fn)\n\tif err != nil {\n\t\tswitch f.errorHandling {\n\t\tcase ContinueOnError:\n\t\t\treturn err\n\t\tcase ExitOnError:\n\t\t\tos.Exit(2)\n\t\tcase PanicOnError:\n\t\t\tpanic(err)\n\t\t}\n\t}\n\treturn nil\n}\n\n// Parsed reports whether f.Parse has been called.\nfunc (f *FlagSet) Parsed() bool {\n\treturn f.parsed\n}\n\n// Parse parses the command-line flags from os.Args[1:].  Must be called\n// after all flags are defined and before flags are accessed by the program.\nfunc Parse() {\n\t// Ignore errors; CommandLine is set for ExitOnError.\n\tCommandLine.Parse(os.Args[1:])\n}\n\n// ParseAll parses the command-line flags from os.Args[1:] and called fn for each.\n// The arguments for fn are flag and value. Must be called after all flags are\n// defined and before flags are accessed by the program.\nfunc ParseAll(fn func(flag *Flag, value string) error) {\n\t// Ignore errors; CommandLine is set for ExitOnError.\n\tCommandLine.ParseAll(os.Args[1:], fn)\n}\n\n// SetInterspersed sets whether to support interspersed option/non-option arguments.\nfunc SetInterspersed(interspersed bool) {\n\tCommandLine.SetInterspersed(interspersed)\n}\n\n// Parsed returns true if the command-line flags have been parsed.\nfunc Parsed() bool {\n\treturn CommandLine.Parsed()\n}\n\n// CommandLine is the default set of command-line flags, parsed from os.Args.\nvar CommandLine = NewFlagSet(os.Args[0], ExitOnError)\n\n// NewFlagSet returns a new, empty flag set with the specified name,\n// error handling property and SortFlags set to true.\nfunc NewFlagSet(name string, errorHandling ErrorHandling) *FlagSet {\n\tf := &FlagSet{\n\t\tname:          name,\n\t\terrorHandling: errorHandling,\n\t\targsLenAtDash: -1,\n\t\tinterspersed:  true,\n\t\tSortFlags:     true,\n\t}\n\treturn f\n}\n\n// SetInterspersed sets whether to support interspersed option/non-option arguments.\nfunc (f *FlagSet) SetInterspersed(interspersed bool) {\n\tf.interspersed = interspersed\n}\n\n// Init sets the name and error handling property for a flag set.\n// By default, the zero FlagSet uses an empty name and the\n// ContinueOnError error handling policy.\nfunc (f *FlagSet) Init(name string, errorHandling ErrorHandling) {\n\tf.name = name\n\tf.errorHandling = errorHandling\n\tf.argsLenAtDash = -1\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/float32.go",
    "content": "package pflag\n\nimport \"strconv\"\n\n// -- float32 Value\ntype float32Value float32\n\nfunc newFloat32Value(val float32, p *float32) *float32Value {\n\t*p = val\n\treturn (*float32Value)(p)\n}\n\nfunc (f *float32Value) Set(s string) error {\n\tv, err := strconv.ParseFloat(s, 32)\n\t*f = float32Value(v)\n\treturn err\n}\n\nfunc (f *float32Value) Type() string {\n\treturn \"float32\"\n}\n\nfunc (f *float32Value) String() string { return strconv.FormatFloat(float64(*f), 'g', -1, 32) }\n\nfunc float32Conv(sval string) (interface{}, error) {\n\tv, err := strconv.ParseFloat(sval, 32)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn float32(v), nil\n}\n\n// GetFloat32 return the float32 value of a flag with the given name\nfunc (f *FlagSet) GetFloat32(name string) (float32, error) {\n\tval, err := f.getFlagType(name, \"float32\", float32Conv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn val.(float32), nil\n}\n\n// Float32Var defines a float32 flag with specified name, default value, and usage string.\n// The argument p points to a float32 variable in which to store the value of the flag.\nfunc (f *FlagSet) Float32Var(p *float32, name string, value float32, usage string) {\n\tf.VarP(newFloat32Value(value, p), name, \"\", usage)\n}\n\n// Float32VarP is like Float32Var, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Float32VarP(p *float32, name, shorthand string, value float32, usage string) {\n\tf.VarP(newFloat32Value(value, p), name, shorthand, usage)\n}\n\n// Float32Var defines a float32 flag with specified name, default value, and usage string.\n// The argument p points to a float32 variable in which to store the value of the flag.\nfunc Float32Var(p *float32, name string, value float32, usage string) {\n\tCommandLine.VarP(newFloat32Value(value, p), name, \"\", usage)\n}\n\n// Float32VarP is like Float32Var, but accepts a shorthand letter that can be used after a single dash.\nfunc Float32VarP(p *float32, name, shorthand string, value float32, usage string) {\n\tCommandLine.VarP(newFloat32Value(value, p), name, shorthand, usage)\n}\n\n// Float32 defines a float32 flag with specified name, default value, and usage string.\n// The return value is the address of a float32 variable that stores the value of the flag.\nfunc (f *FlagSet) Float32(name string, value float32, usage string) *float32 {\n\tp := new(float32)\n\tf.Float32VarP(p, name, \"\", value, usage)\n\treturn p\n}\n\n// Float32P is like Float32, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Float32P(name, shorthand string, value float32, usage string) *float32 {\n\tp := new(float32)\n\tf.Float32VarP(p, name, shorthand, value, usage)\n\treturn p\n}\n\n// Float32 defines a float32 flag with specified name, default value, and usage string.\n// The return value is the address of a float32 variable that stores the value of the flag.\nfunc Float32(name string, value float32, usage string) *float32 {\n\treturn CommandLine.Float32P(name, \"\", value, usage)\n}\n\n// Float32P is like Float32, but accepts a shorthand letter that can be used after a single dash.\nfunc Float32P(name, shorthand string, value float32, usage string) *float32 {\n\treturn CommandLine.Float32P(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/float32_slice.go",
    "content": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// -- float32Slice Value\ntype float32SliceValue struct {\n\tvalue   *[]float32\n\tchanged bool\n}\n\nfunc newFloat32SliceValue(val []float32, p *[]float32) *float32SliceValue {\n\tisv := new(float32SliceValue)\n\tisv.value = p\n\t*isv.value = val\n\treturn isv\n}\n\nfunc (s *float32SliceValue) Set(val string) error {\n\tss := strings.Split(val, \",\")\n\tout := make([]float32, len(ss))\n\tfor i, d := range ss {\n\t\tvar err error\n\t\tvar temp64 float64\n\t\ttemp64, err = strconv.ParseFloat(d, 32)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tout[i] = float32(temp64)\n\n\t}\n\tif !s.changed {\n\t\t*s.value = out\n\t} else {\n\t\t*s.value = append(*s.value, out...)\n\t}\n\ts.changed = true\n\treturn nil\n}\n\nfunc (s *float32SliceValue) Type() string {\n\treturn \"float32Slice\"\n}\n\nfunc (s *float32SliceValue) String() string {\n\tout := make([]string, len(*s.value))\n\tfor i, d := range *s.value {\n\t\tout[i] = fmt.Sprintf(\"%f\", d)\n\t}\n\treturn \"[\" + strings.Join(out, \",\") + \"]\"\n}\n\nfunc (s *float32SliceValue) fromString(val string) (float32, error) {\n\tt64, err := strconv.ParseFloat(val, 32)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn float32(t64), nil\n}\n\nfunc (s *float32SliceValue) toString(val float32) string {\n\treturn fmt.Sprintf(\"%f\", val)\n}\n\nfunc (s *float32SliceValue) Append(val string) error {\n\ti, err := s.fromString(val)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*s.value = append(*s.value, i)\n\treturn nil\n}\n\nfunc (s *float32SliceValue) Replace(val []string) error {\n\tout := make([]float32, len(val))\n\tfor i, d := range val {\n\t\tvar err error\n\t\tout[i], err = s.fromString(d)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\t*s.value = out\n\treturn nil\n}\n\nfunc (s *float32SliceValue) GetSlice() []string {\n\tout := make([]string, len(*s.value))\n\tfor i, d := range *s.value {\n\t\tout[i] = s.toString(d)\n\t}\n\treturn out\n}\n\nfunc float32SliceConv(val string) (interface{}, error) {\n\tval = strings.Trim(val, \"[]\")\n\t// Empty string would cause a slice with one (empty) entry\n\tif len(val) == 0 {\n\t\treturn []float32{}, nil\n\t}\n\tss := strings.Split(val, \",\")\n\tout := make([]float32, len(ss))\n\tfor i, d := range ss {\n\t\tvar err error\n\t\tvar temp64 float64\n\t\ttemp64, err = strconv.ParseFloat(d, 32)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tout[i] = float32(temp64)\n\n\t}\n\treturn out, nil\n}\n\n// GetFloat32Slice return the []float32 value of a flag with the given name\nfunc (f *FlagSet) GetFloat32Slice(name string) ([]float32, error) {\n\tval, err := f.getFlagType(name, \"float32Slice\", float32SliceConv)\n\tif err != nil {\n\t\treturn []float32{}, err\n\t}\n\treturn val.([]float32), nil\n}\n\n// Float32SliceVar defines a float32Slice flag with specified name, default value, and usage string.\n// The argument p points to a []float32 variable in which to store the value of the flag.\nfunc (f *FlagSet) Float32SliceVar(p *[]float32, name string, value []float32, usage string) {\n\tf.VarP(newFloat32SliceValue(value, p), name, \"\", usage)\n}\n\n// Float32SliceVarP is like Float32SliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Float32SliceVarP(p *[]float32, name, shorthand string, value []float32, usage string) {\n\tf.VarP(newFloat32SliceValue(value, p), name, shorthand, usage)\n}\n\n// Float32SliceVar defines a float32[] flag with specified name, default value, and usage string.\n// The argument p points to a float32[] variable in which to store the value of the flag.\nfunc Float32SliceVar(p *[]float32, name string, value []float32, usage string) {\n\tCommandLine.VarP(newFloat32SliceValue(value, p), name, \"\", usage)\n}\n\n// Float32SliceVarP is like Float32SliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc Float32SliceVarP(p *[]float32, name, shorthand string, value []float32, usage string) {\n\tCommandLine.VarP(newFloat32SliceValue(value, p), name, shorthand, usage)\n}\n\n// Float32Slice defines a []float32 flag with specified name, default value, and usage string.\n// The return value is the address of a []float32 variable that stores the value of the flag.\nfunc (f *FlagSet) Float32Slice(name string, value []float32, usage string) *[]float32 {\n\tp := []float32{}\n\tf.Float32SliceVarP(&p, name, \"\", value, usage)\n\treturn &p\n}\n\n// Float32SliceP is like Float32Slice, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Float32SliceP(name, shorthand string, value []float32, usage string) *[]float32 {\n\tp := []float32{}\n\tf.Float32SliceVarP(&p, name, shorthand, value, usage)\n\treturn &p\n}\n\n// Float32Slice defines a []float32 flag with specified name, default value, and usage string.\n// The return value is the address of a []float32 variable that stores the value of the flag.\nfunc Float32Slice(name string, value []float32, usage string) *[]float32 {\n\treturn CommandLine.Float32SliceP(name, \"\", value, usage)\n}\n\n// Float32SliceP is like Float32Slice, but accepts a shorthand letter that can be used after a single dash.\nfunc Float32SliceP(name, shorthand string, value []float32, usage string) *[]float32 {\n\treturn CommandLine.Float32SliceP(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/float64.go",
    "content": "package pflag\n\nimport \"strconv\"\n\n// -- float64 Value\ntype float64Value float64\n\nfunc newFloat64Value(val float64, p *float64) *float64Value {\n\t*p = val\n\treturn (*float64Value)(p)\n}\n\nfunc (f *float64Value) Set(s string) error {\n\tv, err := strconv.ParseFloat(s, 64)\n\t*f = float64Value(v)\n\treturn err\n}\n\nfunc (f *float64Value) Type() string {\n\treturn \"float64\"\n}\n\nfunc (f *float64Value) String() string { return strconv.FormatFloat(float64(*f), 'g', -1, 64) }\n\nfunc float64Conv(sval string) (interface{}, error) {\n\treturn strconv.ParseFloat(sval, 64)\n}\n\n// GetFloat64 return the float64 value of a flag with the given name\nfunc (f *FlagSet) GetFloat64(name string) (float64, error) {\n\tval, err := f.getFlagType(name, \"float64\", float64Conv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn val.(float64), nil\n}\n\n// Float64Var defines a float64 flag with specified name, default value, and usage string.\n// The argument p points to a float64 variable in which to store the value of the flag.\nfunc (f *FlagSet) Float64Var(p *float64, name string, value float64, usage string) {\n\tf.VarP(newFloat64Value(value, p), name, \"\", usage)\n}\n\n// Float64VarP is like Float64Var, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Float64VarP(p *float64, name, shorthand string, value float64, usage string) {\n\tf.VarP(newFloat64Value(value, p), name, shorthand, usage)\n}\n\n// Float64Var defines a float64 flag with specified name, default value, and usage string.\n// The argument p points to a float64 variable in which to store the value of the flag.\nfunc Float64Var(p *float64, name string, value float64, usage string) {\n\tCommandLine.VarP(newFloat64Value(value, p), name, \"\", usage)\n}\n\n// Float64VarP is like Float64Var, but accepts a shorthand letter that can be used after a single dash.\nfunc Float64VarP(p *float64, name, shorthand string, value float64, usage string) {\n\tCommandLine.VarP(newFloat64Value(value, p), name, shorthand, usage)\n}\n\n// Float64 defines a float64 flag with specified name, default value, and usage string.\n// The return value is the address of a float64 variable that stores the value of the flag.\nfunc (f *FlagSet) Float64(name string, value float64, usage string) *float64 {\n\tp := new(float64)\n\tf.Float64VarP(p, name, \"\", value, usage)\n\treturn p\n}\n\n// Float64P is like Float64, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Float64P(name, shorthand string, value float64, usage string) *float64 {\n\tp := new(float64)\n\tf.Float64VarP(p, name, shorthand, value, usage)\n\treturn p\n}\n\n// Float64 defines a float64 flag with specified name, default value, and usage string.\n// The return value is the address of a float64 variable that stores the value of the flag.\nfunc Float64(name string, value float64, usage string) *float64 {\n\treturn CommandLine.Float64P(name, \"\", value, usage)\n}\n\n// Float64P is like Float64, but accepts a shorthand letter that can be used after a single dash.\nfunc Float64P(name, shorthand string, value float64, usage string) *float64 {\n\treturn CommandLine.Float64P(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/float64_slice.go",
    "content": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// -- float64Slice Value\ntype float64SliceValue struct {\n\tvalue   *[]float64\n\tchanged bool\n}\n\nfunc newFloat64SliceValue(val []float64, p *[]float64) *float64SliceValue {\n\tisv := new(float64SliceValue)\n\tisv.value = p\n\t*isv.value = val\n\treturn isv\n}\n\nfunc (s *float64SliceValue) Set(val string) error {\n\tss := strings.Split(val, \",\")\n\tout := make([]float64, len(ss))\n\tfor i, d := range ss {\n\t\tvar err error\n\t\tout[i], err = strconv.ParseFloat(d, 64)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t}\n\tif !s.changed {\n\t\t*s.value = out\n\t} else {\n\t\t*s.value = append(*s.value, out...)\n\t}\n\ts.changed = true\n\treturn nil\n}\n\nfunc (s *float64SliceValue) Type() string {\n\treturn \"float64Slice\"\n}\n\nfunc (s *float64SliceValue) String() string {\n\tout := make([]string, len(*s.value))\n\tfor i, d := range *s.value {\n\t\tout[i] = fmt.Sprintf(\"%f\", d)\n\t}\n\treturn \"[\" + strings.Join(out, \",\") + \"]\"\n}\n\nfunc (s *float64SliceValue) fromString(val string) (float64, error) {\n\treturn strconv.ParseFloat(val, 64)\n}\n\nfunc (s *float64SliceValue) toString(val float64) string {\n\treturn fmt.Sprintf(\"%f\", val)\n}\n\nfunc (s *float64SliceValue) Append(val string) error {\n\ti, err := s.fromString(val)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*s.value = append(*s.value, i)\n\treturn nil\n}\n\nfunc (s *float64SliceValue) Replace(val []string) error {\n\tout := make([]float64, len(val))\n\tfor i, d := range val {\n\t\tvar err error\n\t\tout[i], err = s.fromString(d)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\t*s.value = out\n\treturn nil\n}\n\nfunc (s *float64SliceValue) GetSlice() []string {\n\tout := make([]string, len(*s.value))\n\tfor i, d := range *s.value {\n\t\tout[i] = s.toString(d)\n\t}\n\treturn out\n}\n\nfunc float64SliceConv(val string) (interface{}, error) {\n\tval = strings.Trim(val, \"[]\")\n\t// Empty string would cause a slice with one (empty) entry\n\tif len(val) == 0 {\n\t\treturn []float64{}, nil\n\t}\n\tss := strings.Split(val, \",\")\n\tout := make([]float64, len(ss))\n\tfor i, d := range ss {\n\t\tvar err error\n\t\tout[i], err = strconv.ParseFloat(d, 64)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t}\n\treturn out, nil\n}\n\n// GetFloat64Slice return the []float64 value of a flag with the given name\nfunc (f *FlagSet) GetFloat64Slice(name string) ([]float64, error) {\n\tval, err := f.getFlagType(name, \"float64Slice\", float64SliceConv)\n\tif err != nil {\n\t\treturn []float64{}, err\n\t}\n\treturn val.([]float64), nil\n}\n\n// Float64SliceVar defines a float64Slice flag with specified name, default value, and usage string.\n// The argument p points to a []float64 variable in which to store the value of the flag.\nfunc (f *FlagSet) Float64SliceVar(p *[]float64, name string, value []float64, usage string) {\n\tf.VarP(newFloat64SliceValue(value, p), name, \"\", usage)\n}\n\n// Float64SliceVarP is like Float64SliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Float64SliceVarP(p *[]float64, name, shorthand string, value []float64, usage string) {\n\tf.VarP(newFloat64SliceValue(value, p), name, shorthand, usage)\n}\n\n// Float64SliceVar defines a float64[] flag with specified name, default value, and usage string.\n// The argument p points to a float64[] variable in which to store the value of the flag.\nfunc Float64SliceVar(p *[]float64, name string, value []float64, usage string) {\n\tCommandLine.VarP(newFloat64SliceValue(value, p), name, \"\", usage)\n}\n\n// Float64SliceVarP is like Float64SliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc Float64SliceVarP(p *[]float64, name, shorthand string, value []float64, usage string) {\n\tCommandLine.VarP(newFloat64SliceValue(value, p), name, shorthand, usage)\n}\n\n// Float64Slice defines a []float64 flag with specified name, default value, and usage string.\n// The return value is the address of a []float64 variable that stores the value of the flag.\nfunc (f *FlagSet) Float64Slice(name string, value []float64, usage string) *[]float64 {\n\tp := []float64{}\n\tf.Float64SliceVarP(&p, name, \"\", value, usage)\n\treturn &p\n}\n\n// Float64SliceP is like Float64Slice, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Float64SliceP(name, shorthand string, value []float64, usage string) *[]float64 {\n\tp := []float64{}\n\tf.Float64SliceVarP(&p, name, shorthand, value, usage)\n\treturn &p\n}\n\n// Float64Slice defines a []float64 flag with specified name, default value, and usage string.\n// The return value is the address of a []float64 variable that stores the value of the flag.\nfunc Float64Slice(name string, value []float64, usage string) *[]float64 {\n\treturn CommandLine.Float64SliceP(name, \"\", value, usage)\n}\n\n// Float64SliceP is like Float64Slice, but accepts a shorthand letter that can be used after a single dash.\nfunc Float64SliceP(name, shorthand string, value []float64, usage string) *[]float64 {\n\treturn CommandLine.Float64SliceP(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/golangflag.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage pflag\n\nimport (\n\tgoflag \"flag\"\n\t\"reflect\"\n\t\"strings\"\n)\n\n// flagValueWrapper implements pflag.Value around a flag.Value.  The main\n// difference here is the addition of the Type method that returns a string\n// name of the type.  As this is generally unknown, we approximate that with\n// reflection.\ntype flagValueWrapper struct {\n\tinner    goflag.Value\n\tflagType string\n}\n\n// We are just copying the boolFlag interface out of goflag as that is what\n// they use to decide if a flag should get \"true\" when no arg is given.\ntype goBoolFlag interface {\n\tgoflag.Value\n\tIsBoolFlag() bool\n}\n\nfunc wrapFlagValue(v goflag.Value) Value {\n\t// If the flag.Value happens to also be a pflag.Value, just use it directly.\n\tif pv, ok := v.(Value); ok {\n\t\treturn pv\n\t}\n\n\tpv := &flagValueWrapper{\n\t\tinner: v,\n\t}\n\n\tt := reflect.TypeOf(v)\n\tif t.Kind() == reflect.Interface || t.Kind() == reflect.Ptr {\n\t\tt = t.Elem()\n\t}\n\n\tpv.flagType = strings.TrimSuffix(t.Name(), \"Value\")\n\treturn pv\n}\n\nfunc (v *flagValueWrapper) String() string {\n\treturn v.inner.String()\n}\n\nfunc (v *flagValueWrapper) Set(s string) error {\n\treturn v.inner.Set(s)\n}\n\nfunc (v *flagValueWrapper) Type() string {\n\treturn v.flagType\n}\n\n// PFlagFromGoFlag will return a *pflag.Flag given a *flag.Flag\n// If the *flag.Flag.Name was a single character (ex: `v`) it will be accessiblei\n// with both `-v` and `--v` in flags. If the golang flag was more than a single\n// character (ex: `verbose`) it will only be accessible via `--verbose`\nfunc PFlagFromGoFlag(goflag *goflag.Flag) *Flag {\n\t// Remember the default value as a string; it won't change.\n\tflag := &Flag{\n\t\tName:  goflag.Name,\n\t\tUsage: goflag.Usage,\n\t\tValue: wrapFlagValue(goflag.Value),\n\t\t// Looks like golang flags don't set DefValue correctly  :-(\n\t\t//DefValue: goflag.DefValue,\n\t\tDefValue: goflag.Value.String(),\n\t}\n\t// Ex: if the golang flag was -v, allow both -v and --v to work\n\tif len(flag.Name) == 1 {\n\t\tflag.Shorthand = flag.Name\n\t}\n\tif fv, ok := goflag.Value.(goBoolFlag); ok && fv.IsBoolFlag() {\n\t\tflag.NoOptDefVal = \"true\"\n\t}\n\treturn flag\n}\n\n// AddGoFlag will add the given *flag.Flag to the pflag.FlagSet\nfunc (f *FlagSet) AddGoFlag(goflag *goflag.Flag) {\n\tif f.Lookup(goflag.Name) != nil {\n\t\treturn\n\t}\n\tnewflag := PFlagFromGoFlag(goflag)\n\tf.AddFlag(newflag)\n}\n\n// AddGoFlagSet will add the given *flag.FlagSet to the pflag.FlagSet\nfunc (f *FlagSet) AddGoFlagSet(newSet *goflag.FlagSet) {\n\tif newSet == nil {\n\t\treturn\n\t}\n\tnewSet.VisitAll(func(goflag *goflag.Flag) {\n\t\tf.AddGoFlag(goflag)\n\t})\n\tif f.addedGoFlagSets == nil {\n\t\tf.addedGoFlagSets = make([]*goflag.FlagSet, 0)\n\t}\n\tf.addedGoFlagSets = append(f.addedGoFlagSets, newSet)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/int.go",
    "content": "package pflag\n\nimport \"strconv\"\n\n// -- int Value\ntype intValue int\n\nfunc newIntValue(val int, p *int) *intValue {\n\t*p = val\n\treturn (*intValue)(p)\n}\n\nfunc (i *intValue) Set(s string) error {\n\tv, err := strconv.ParseInt(s, 0, 64)\n\t*i = intValue(v)\n\treturn err\n}\n\nfunc (i *intValue) Type() string {\n\treturn \"int\"\n}\n\nfunc (i *intValue) String() string { return strconv.Itoa(int(*i)) }\n\nfunc intConv(sval string) (interface{}, error) {\n\treturn strconv.Atoi(sval)\n}\n\n// GetInt return the int value of a flag with the given name\nfunc (f *FlagSet) GetInt(name string) (int, error) {\n\tval, err := f.getFlagType(name, \"int\", intConv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn val.(int), nil\n}\n\n// IntVar defines an int flag with specified name, default value, and usage string.\n// The argument p points to an int variable in which to store the value of the flag.\nfunc (f *FlagSet) IntVar(p *int, name string, value int, usage string) {\n\tf.VarP(newIntValue(value, p), name, \"\", usage)\n}\n\n// IntVarP is like IntVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) IntVarP(p *int, name, shorthand string, value int, usage string) {\n\tf.VarP(newIntValue(value, p), name, shorthand, usage)\n}\n\n// IntVar defines an int flag with specified name, default value, and usage string.\n// The argument p points to an int variable in which to store the value of the flag.\nfunc IntVar(p *int, name string, value int, usage string) {\n\tCommandLine.VarP(newIntValue(value, p), name, \"\", usage)\n}\n\n// IntVarP is like IntVar, but accepts a shorthand letter that can be used after a single dash.\nfunc IntVarP(p *int, name, shorthand string, value int, usage string) {\n\tCommandLine.VarP(newIntValue(value, p), name, shorthand, usage)\n}\n\n// Int defines an int flag with specified name, default value, and usage string.\n// The return value is the address of an int variable that stores the value of the flag.\nfunc (f *FlagSet) Int(name string, value int, usage string) *int {\n\tp := new(int)\n\tf.IntVarP(p, name, \"\", value, usage)\n\treturn p\n}\n\n// IntP is like Int, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) IntP(name, shorthand string, value int, usage string) *int {\n\tp := new(int)\n\tf.IntVarP(p, name, shorthand, value, usage)\n\treturn p\n}\n\n// Int defines an int flag with specified name, default value, and usage string.\n// The return value is the address of an int variable that stores the value of the flag.\nfunc Int(name string, value int, usage string) *int {\n\treturn CommandLine.IntP(name, \"\", value, usage)\n}\n\n// IntP is like Int, but accepts a shorthand letter that can be used after a single dash.\nfunc IntP(name, shorthand string, value int, usage string) *int {\n\treturn CommandLine.IntP(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/int16.go",
    "content": "package pflag\n\nimport \"strconv\"\n\n// -- int16 Value\ntype int16Value int16\n\nfunc newInt16Value(val int16, p *int16) *int16Value {\n\t*p = val\n\treturn (*int16Value)(p)\n}\n\nfunc (i *int16Value) Set(s string) error {\n\tv, err := strconv.ParseInt(s, 0, 16)\n\t*i = int16Value(v)\n\treturn err\n}\n\nfunc (i *int16Value) Type() string {\n\treturn \"int16\"\n}\n\nfunc (i *int16Value) String() string { return strconv.FormatInt(int64(*i), 10) }\n\nfunc int16Conv(sval string) (interface{}, error) {\n\tv, err := strconv.ParseInt(sval, 0, 16)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn int16(v), nil\n}\n\n// GetInt16 returns the int16 value of a flag with the given name\nfunc (f *FlagSet) GetInt16(name string) (int16, error) {\n\tval, err := f.getFlagType(name, \"int16\", int16Conv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn val.(int16), nil\n}\n\n// Int16Var defines an int16 flag with specified name, default value, and usage string.\n// The argument p points to an int16 variable in which to store the value of the flag.\nfunc (f *FlagSet) Int16Var(p *int16, name string, value int16, usage string) {\n\tf.VarP(newInt16Value(value, p), name, \"\", usage)\n}\n\n// Int16VarP is like Int16Var, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Int16VarP(p *int16, name, shorthand string, value int16, usage string) {\n\tf.VarP(newInt16Value(value, p), name, shorthand, usage)\n}\n\n// Int16Var defines an int16 flag with specified name, default value, and usage string.\n// The argument p points to an int16 variable in which to store the value of the flag.\nfunc Int16Var(p *int16, name string, value int16, usage string) {\n\tCommandLine.VarP(newInt16Value(value, p), name, \"\", usage)\n}\n\n// Int16VarP is like Int16Var, but accepts a shorthand letter that can be used after a single dash.\nfunc Int16VarP(p *int16, name, shorthand string, value int16, usage string) {\n\tCommandLine.VarP(newInt16Value(value, p), name, shorthand, usage)\n}\n\n// Int16 defines an int16 flag with specified name, default value, and usage string.\n// The return value is the address of an int16 variable that stores the value of the flag.\nfunc (f *FlagSet) Int16(name string, value int16, usage string) *int16 {\n\tp := new(int16)\n\tf.Int16VarP(p, name, \"\", value, usage)\n\treturn p\n}\n\n// Int16P is like Int16, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Int16P(name, shorthand string, value int16, usage string) *int16 {\n\tp := new(int16)\n\tf.Int16VarP(p, name, shorthand, value, usage)\n\treturn p\n}\n\n// Int16 defines an int16 flag with specified name, default value, and usage string.\n// The return value is the address of an int16 variable that stores the value of the flag.\nfunc Int16(name string, value int16, usage string) *int16 {\n\treturn CommandLine.Int16P(name, \"\", value, usage)\n}\n\n// Int16P is like Int16, but accepts a shorthand letter that can be used after a single dash.\nfunc Int16P(name, shorthand string, value int16, usage string) *int16 {\n\treturn CommandLine.Int16P(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/int32.go",
    "content": "package pflag\n\nimport \"strconv\"\n\n// -- int32 Value\ntype int32Value int32\n\nfunc newInt32Value(val int32, p *int32) *int32Value {\n\t*p = val\n\treturn (*int32Value)(p)\n}\n\nfunc (i *int32Value) Set(s string) error {\n\tv, err := strconv.ParseInt(s, 0, 32)\n\t*i = int32Value(v)\n\treturn err\n}\n\nfunc (i *int32Value) Type() string {\n\treturn \"int32\"\n}\n\nfunc (i *int32Value) String() string { return strconv.FormatInt(int64(*i), 10) }\n\nfunc int32Conv(sval string) (interface{}, error) {\n\tv, err := strconv.ParseInt(sval, 0, 32)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn int32(v), nil\n}\n\n// GetInt32 return the int32 value of a flag with the given name\nfunc (f *FlagSet) GetInt32(name string) (int32, error) {\n\tval, err := f.getFlagType(name, \"int32\", int32Conv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn val.(int32), nil\n}\n\n// Int32Var defines an int32 flag with specified name, default value, and usage string.\n// The argument p points to an int32 variable in which to store the value of the flag.\nfunc (f *FlagSet) Int32Var(p *int32, name string, value int32, usage string) {\n\tf.VarP(newInt32Value(value, p), name, \"\", usage)\n}\n\n// Int32VarP is like Int32Var, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Int32VarP(p *int32, name, shorthand string, value int32, usage string) {\n\tf.VarP(newInt32Value(value, p), name, shorthand, usage)\n}\n\n// Int32Var defines an int32 flag with specified name, default value, and usage string.\n// The argument p points to an int32 variable in which to store the value of the flag.\nfunc Int32Var(p *int32, name string, value int32, usage string) {\n\tCommandLine.VarP(newInt32Value(value, p), name, \"\", usage)\n}\n\n// Int32VarP is like Int32Var, but accepts a shorthand letter that can be used after a single dash.\nfunc Int32VarP(p *int32, name, shorthand string, value int32, usage string) {\n\tCommandLine.VarP(newInt32Value(value, p), name, shorthand, usage)\n}\n\n// Int32 defines an int32 flag with specified name, default value, and usage string.\n// The return value is the address of an int32 variable that stores the value of the flag.\nfunc (f *FlagSet) Int32(name string, value int32, usage string) *int32 {\n\tp := new(int32)\n\tf.Int32VarP(p, name, \"\", value, usage)\n\treturn p\n}\n\n// Int32P is like Int32, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Int32P(name, shorthand string, value int32, usage string) *int32 {\n\tp := new(int32)\n\tf.Int32VarP(p, name, shorthand, value, usage)\n\treturn p\n}\n\n// Int32 defines an int32 flag with specified name, default value, and usage string.\n// The return value is the address of an int32 variable that stores the value of the flag.\nfunc Int32(name string, value int32, usage string) *int32 {\n\treturn CommandLine.Int32P(name, \"\", value, usage)\n}\n\n// Int32P is like Int32, but accepts a shorthand letter that can be used after a single dash.\nfunc Int32P(name, shorthand string, value int32, usage string) *int32 {\n\treturn CommandLine.Int32P(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/int32_slice.go",
    "content": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// -- int32Slice Value\ntype int32SliceValue struct {\n\tvalue   *[]int32\n\tchanged bool\n}\n\nfunc newInt32SliceValue(val []int32, p *[]int32) *int32SliceValue {\n\tisv := new(int32SliceValue)\n\tisv.value = p\n\t*isv.value = val\n\treturn isv\n}\n\nfunc (s *int32SliceValue) Set(val string) error {\n\tss := strings.Split(val, \",\")\n\tout := make([]int32, len(ss))\n\tfor i, d := range ss {\n\t\tvar err error\n\t\tvar temp64 int64\n\t\ttemp64, err = strconv.ParseInt(d, 0, 32)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tout[i] = int32(temp64)\n\n\t}\n\tif !s.changed {\n\t\t*s.value = out\n\t} else {\n\t\t*s.value = append(*s.value, out...)\n\t}\n\ts.changed = true\n\treturn nil\n}\n\nfunc (s *int32SliceValue) Type() string {\n\treturn \"int32Slice\"\n}\n\nfunc (s *int32SliceValue) String() string {\n\tout := make([]string, len(*s.value))\n\tfor i, d := range *s.value {\n\t\tout[i] = fmt.Sprintf(\"%d\", d)\n\t}\n\treturn \"[\" + strings.Join(out, \",\") + \"]\"\n}\n\nfunc (s *int32SliceValue) fromString(val string) (int32, error) {\n\tt64, err := strconv.ParseInt(val, 0, 32)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn int32(t64), nil\n}\n\nfunc (s *int32SliceValue) toString(val int32) string {\n\treturn fmt.Sprintf(\"%d\", val)\n}\n\nfunc (s *int32SliceValue) Append(val string) error {\n\ti, err := s.fromString(val)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*s.value = append(*s.value, i)\n\treturn nil\n}\n\nfunc (s *int32SliceValue) Replace(val []string) error {\n\tout := make([]int32, len(val))\n\tfor i, d := range val {\n\t\tvar err error\n\t\tout[i], err = s.fromString(d)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\t*s.value = out\n\treturn nil\n}\n\nfunc (s *int32SliceValue) GetSlice() []string {\n\tout := make([]string, len(*s.value))\n\tfor i, d := range *s.value {\n\t\tout[i] = s.toString(d)\n\t}\n\treturn out\n}\n\nfunc int32SliceConv(val string) (interface{}, error) {\n\tval = strings.Trim(val, \"[]\")\n\t// Empty string would cause a slice with one (empty) entry\n\tif len(val) == 0 {\n\t\treturn []int32{}, nil\n\t}\n\tss := strings.Split(val, \",\")\n\tout := make([]int32, len(ss))\n\tfor i, d := range ss {\n\t\tvar err error\n\t\tvar temp64 int64\n\t\ttemp64, err = strconv.ParseInt(d, 0, 32)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tout[i] = int32(temp64)\n\n\t}\n\treturn out, nil\n}\n\n// GetInt32Slice return the []int32 value of a flag with the given name\nfunc (f *FlagSet) GetInt32Slice(name string) ([]int32, error) {\n\tval, err := f.getFlagType(name, \"int32Slice\", int32SliceConv)\n\tif err != nil {\n\t\treturn []int32{}, err\n\t}\n\treturn val.([]int32), nil\n}\n\n// Int32SliceVar defines a int32Slice flag with specified name, default value, and usage string.\n// The argument p points to a []int32 variable in which to store the value of the flag.\nfunc (f *FlagSet) Int32SliceVar(p *[]int32, name string, value []int32, usage string) {\n\tf.VarP(newInt32SliceValue(value, p), name, \"\", usage)\n}\n\n// Int32SliceVarP is like Int32SliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Int32SliceVarP(p *[]int32, name, shorthand string, value []int32, usage string) {\n\tf.VarP(newInt32SliceValue(value, p), name, shorthand, usage)\n}\n\n// Int32SliceVar defines a int32[] flag with specified name, default value, and usage string.\n// The argument p points to a int32[] variable in which to store the value of the flag.\nfunc Int32SliceVar(p *[]int32, name string, value []int32, usage string) {\n\tCommandLine.VarP(newInt32SliceValue(value, p), name, \"\", usage)\n}\n\n// Int32SliceVarP is like Int32SliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc Int32SliceVarP(p *[]int32, name, shorthand string, value []int32, usage string) {\n\tCommandLine.VarP(newInt32SliceValue(value, p), name, shorthand, usage)\n}\n\n// Int32Slice defines a []int32 flag with specified name, default value, and usage string.\n// The return value is the address of a []int32 variable that stores the value of the flag.\nfunc (f *FlagSet) Int32Slice(name string, value []int32, usage string) *[]int32 {\n\tp := []int32{}\n\tf.Int32SliceVarP(&p, name, \"\", value, usage)\n\treturn &p\n}\n\n// Int32SliceP is like Int32Slice, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Int32SliceP(name, shorthand string, value []int32, usage string) *[]int32 {\n\tp := []int32{}\n\tf.Int32SliceVarP(&p, name, shorthand, value, usage)\n\treturn &p\n}\n\n// Int32Slice defines a []int32 flag with specified name, default value, and usage string.\n// The return value is the address of a []int32 variable that stores the value of the flag.\nfunc Int32Slice(name string, value []int32, usage string) *[]int32 {\n\treturn CommandLine.Int32SliceP(name, \"\", value, usage)\n}\n\n// Int32SliceP is like Int32Slice, but accepts a shorthand letter that can be used after a single dash.\nfunc Int32SliceP(name, shorthand string, value []int32, usage string) *[]int32 {\n\treturn CommandLine.Int32SliceP(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/int64.go",
    "content": "package pflag\n\nimport \"strconv\"\n\n// -- int64 Value\ntype int64Value int64\n\nfunc newInt64Value(val int64, p *int64) *int64Value {\n\t*p = val\n\treturn (*int64Value)(p)\n}\n\nfunc (i *int64Value) Set(s string) error {\n\tv, err := strconv.ParseInt(s, 0, 64)\n\t*i = int64Value(v)\n\treturn err\n}\n\nfunc (i *int64Value) Type() string {\n\treturn \"int64\"\n}\n\nfunc (i *int64Value) String() string { return strconv.FormatInt(int64(*i), 10) }\n\nfunc int64Conv(sval string) (interface{}, error) {\n\treturn strconv.ParseInt(sval, 0, 64)\n}\n\n// GetInt64 return the int64 value of a flag with the given name\nfunc (f *FlagSet) GetInt64(name string) (int64, error) {\n\tval, err := f.getFlagType(name, \"int64\", int64Conv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn val.(int64), nil\n}\n\n// Int64Var defines an int64 flag with specified name, default value, and usage string.\n// The argument p points to an int64 variable in which to store the value of the flag.\nfunc (f *FlagSet) Int64Var(p *int64, name string, value int64, usage string) {\n\tf.VarP(newInt64Value(value, p), name, \"\", usage)\n}\n\n// Int64VarP is like Int64Var, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Int64VarP(p *int64, name, shorthand string, value int64, usage string) {\n\tf.VarP(newInt64Value(value, p), name, shorthand, usage)\n}\n\n// Int64Var defines an int64 flag with specified name, default value, and usage string.\n// The argument p points to an int64 variable in which to store the value of the flag.\nfunc Int64Var(p *int64, name string, value int64, usage string) {\n\tCommandLine.VarP(newInt64Value(value, p), name, \"\", usage)\n}\n\n// Int64VarP is like Int64Var, but accepts a shorthand letter that can be used after a single dash.\nfunc Int64VarP(p *int64, name, shorthand string, value int64, usage string) {\n\tCommandLine.VarP(newInt64Value(value, p), name, shorthand, usage)\n}\n\n// Int64 defines an int64 flag with specified name, default value, and usage string.\n// The return value is the address of an int64 variable that stores the value of the flag.\nfunc (f *FlagSet) Int64(name string, value int64, usage string) *int64 {\n\tp := new(int64)\n\tf.Int64VarP(p, name, \"\", value, usage)\n\treturn p\n}\n\n// Int64P is like Int64, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Int64P(name, shorthand string, value int64, usage string) *int64 {\n\tp := new(int64)\n\tf.Int64VarP(p, name, shorthand, value, usage)\n\treturn p\n}\n\n// Int64 defines an int64 flag with specified name, default value, and usage string.\n// The return value is the address of an int64 variable that stores the value of the flag.\nfunc Int64(name string, value int64, usage string) *int64 {\n\treturn CommandLine.Int64P(name, \"\", value, usage)\n}\n\n// Int64P is like Int64, but accepts a shorthand letter that can be used after a single dash.\nfunc Int64P(name, shorthand string, value int64, usage string) *int64 {\n\treturn CommandLine.Int64P(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/int64_slice.go",
    "content": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// -- int64Slice Value\ntype int64SliceValue struct {\n\tvalue   *[]int64\n\tchanged bool\n}\n\nfunc newInt64SliceValue(val []int64, p *[]int64) *int64SliceValue {\n\tisv := new(int64SliceValue)\n\tisv.value = p\n\t*isv.value = val\n\treturn isv\n}\n\nfunc (s *int64SliceValue) Set(val string) error {\n\tss := strings.Split(val, \",\")\n\tout := make([]int64, len(ss))\n\tfor i, d := range ss {\n\t\tvar err error\n\t\tout[i], err = strconv.ParseInt(d, 0, 64)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t}\n\tif !s.changed {\n\t\t*s.value = out\n\t} else {\n\t\t*s.value = append(*s.value, out...)\n\t}\n\ts.changed = true\n\treturn nil\n}\n\nfunc (s *int64SliceValue) Type() string {\n\treturn \"int64Slice\"\n}\n\nfunc (s *int64SliceValue) String() string {\n\tout := make([]string, len(*s.value))\n\tfor i, d := range *s.value {\n\t\tout[i] = fmt.Sprintf(\"%d\", d)\n\t}\n\treturn \"[\" + strings.Join(out, \",\") + \"]\"\n}\n\nfunc (s *int64SliceValue) fromString(val string) (int64, error) {\n\treturn strconv.ParseInt(val, 0, 64)\n}\n\nfunc (s *int64SliceValue) toString(val int64) string {\n\treturn fmt.Sprintf(\"%d\", val)\n}\n\nfunc (s *int64SliceValue) Append(val string) error {\n\ti, err := s.fromString(val)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*s.value = append(*s.value, i)\n\treturn nil\n}\n\nfunc (s *int64SliceValue) Replace(val []string) error {\n\tout := make([]int64, len(val))\n\tfor i, d := range val {\n\t\tvar err error\n\t\tout[i], err = s.fromString(d)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\t*s.value = out\n\treturn nil\n}\n\nfunc (s *int64SliceValue) GetSlice() []string {\n\tout := make([]string, len(*s.value))\n\tfor i, d := range *s.value {\n\t\tout[i] = s.toString(d)\n\t}\n\treturn out\n}\n\nfunc int64SliceConv(val string) (interface{}, error) {\n\tval = strings.Trim(val, \"[]\")\n\t// Empty string would cause a slice with one (empty) entry\n\tif len(val) == 0 {\n\t\treturn []int64{}, nil\n\t}\n\tss := strings.Split(val, \",\")\n\tout := make([]int64, len(ss))\n\tfor i, d := range ss {\n\t\tvar err error\n\t\tout[i], err = strconv.ParseInt(d, 0, 64)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t}\n\treturn out, nil\n}\n\n// GetInt64Slice return the []int64 value of a flag with the given name\nfunc (f *FlagSet) GetInt64Slice(name string) ([]int64, error) {\n\tval, err := f.getFlagType(name, \"int64Slice\", int64SliceConv)\n\tif err != nil {\n\t\treturn []int64{}, err\n\t}\n\treturn val.([]int64), nil\n}\n\n// Int64SliceVar defines a int64Slice flag with specified name, default value, and usage string.\n// The argument p points to a []int64 variable in which to store the value of the flag.\nfunc (f *FlagSet) Int64SliceVar(p *[]int64, name string, value []int64, usage string) {\n\tf.VarP(newInt64SliceValue(value, p), name, \"\", usage)\n}\n\n// Int64SliceVarP is like Int64SliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Int64SliceVarP(p *[]int64, name, shorthand string, value []int64, usage string) {\n\tf.VarP(newInt64SliceValue(value, p), name, shorthand, usage)\n}\n\n// Int64SliceVar defines a int64[] flag with specified name, default value, and usage string.\n// The argument p points to a int64[] variable in which to store the value of the flag.\nfunc Int64SliceVar(p *[]int64, name string, value []int64, usage string) {\n\tCommandLine.VarP(newInt64SliceValue(value, p), name, \"\", usage)\n}\n\n// Int64SliceVarP is like Int64SliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc Int64SliceVarP(p *[]int64, name, shorthand string, value []int64, usage string) {\n\tCommandLine.VarP(newInt64SliceValue(value, p), name, shorthand, usage)\n}\n\n// Int64Slice defines a []int64 flag with specified name, default value, and usage string.\n// The return value is the address of a []int64 variable that stores the value of the flag.\nfunc (f *FlagSet) Int64Slice(name string, value []int64, usage string) *[]int64 {\n\tp := []int64{}\n\tf.Int64SliceVarP(&p, name, \"\", value, usage)\n\treturn &p\n}\n\n// Int64SliceP is like Int64Slice, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Int64SliceP(name, shorthand string, value []int64, usage string) *[]int64 {\n\tp := []int64{}\n\tf.Int64SliceVarP(&p, name, shorthand, value, usage)\n\treturn &p\n}\n\n// Int64Slice defines a []int64 flag with specified name, default value, and usage string.\n// The return value is the address of a []int64 variable that stores the value of the flag.\nfunc Int64Slice(name string, value []int64, usage string) *[]int64 {\n\treturn CommandLine.Int64SliceP(name, \"\", value, usage)\n}\n\n// Int64SliceP is like Int64Slice, but accepts a shorthand letter that can be used after a single dash.\nfunc Int64SliceP(name, shorthand string, value []int64, usage string) *[]int64 {\n\treturn CommandLine.Int64SliceP(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/int8.go",
    "content": "package pflag\n\nimport \"strconv\"\n\n// -- int8 Value\ntype int8Value int8\n\nfunc newInt8Value(val int8, p *int8) *int8Value {\n\t*p = val\n\treturn (*int8Value)(p)\n}\n\nfunc (i *int8Value) Set(s string) error {\n\tv, err := strconv.ParseInt(s, 0, 8)\n\t*i = int8Value(v)\n\treturn err\n}\n\nfunc (i *int8Value) Type() string {\n\treturn \"int8\"\n}\n\nfunc (i *int8Value) String() string { return strconv.FormatInt(int64(*i), 10) }\n\nfunc int8Conv(sval string) (interface{}, error) {\n\tv, err := strconv.ParseInt(sval, 0, 8)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn int8(v), nil\n}\n\n// GetInt8 return the int8 value of a flag with the given name\nfunc (f *FlagSet) GetInt8(name string) (int8, error) {\n\tval, err := f.getFlagType(name, \"int8\", int8Conv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn val.(int8), nil\n}\n\n// Int8Var defines an int8 flag with specified name, default value, and usage string.\n// The argument p points to an int8 variable in which to store the value of the flag.\nfunc (f *FlagSet) Int8Var(p *int8, name string, value int8, usage string) {\n\tf.VarP(newInt8Value(value, p), name, \"\", usage)\n}\n\n// Int8VarP is like Int8Var, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Int8VarP(p *int8, name, shorthand string, value int8, usage string) {\n\tf.VarP(newInt8Value(value, p), name, shorthand, usage)\n}\n\n// Int8Var defines an int8 flag with specified name, default value, and usage string.\n// The argument p points to an int8 variable in which to store the value of the flag.\nfunc Int8Var(p *int8, name string, value int8, usage string) {\n\tCommandLine.VarP(newInt8Value(value, p), name, \"\", usage)\n}\n\n// Int8VarP is like Int8Var, but accepts a shorthand letter that can be used after a single dash.\nfunc Int8VarP(p *int8, name, shorthand string, value int8, usage string) {\n\tCommandLine.VarP(newInt8Value(value, p), name, shorthand, usage)\n}\n\n// Int8 defines an int8 flag with specified name, default value, and usage string.\n// The return value is the address of an int8 variable that stores the value of the flag.\nfunc (f *FlagSet) Int8(name string, value int8, usage string) *int8 {\n\tp := new(int8)\n\tf.Int8VarP(p, name, \"\", value, usage)\n\treturn p\n}\n\n// Int8P is like Int8, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Int8P(name, shorthand string, value int8, usage string) *int8 {\n\tp := new(int8)\n\tf.Int8VarP(p, name, shorthand, value, usage)\n\treturn p\n}\n\n// Int8 defines an int8 flag with specified name, default value, and usage string.\n// The return value is the address of an int8 variable that stores the value of the flag.\nfunc Int8(name string, value int8, usage string) *int8 {\n\treturn CommandLine.Int8P(name, \"\", value, usage)\n}\n\n// Int8P is like Int8, but accepts a shorthand letter that can be used after a single dash.\nfunc Int8P(name, shorthand string, value int8, usage string) *int8 {\n\treturn CommandLine.Int8P(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/int_slice.go",
    "content": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// -- intSlice Value\ntype intSliceValue struct {\n\tvalue   *[]int\n\tchanged bool\n}\n\nfunc newIntSliceValue(val []int, p *[]int) *intSliceValue {\n\tisv := new(intSliceValue)\n\tisv.value = p\n\t*isv.value = val\n\treturn isv\n}\n\nfunc (s *intSliceValue) Set(val string) error {\n\tss := strings.Split(val, \",\")\n\tout := make([]int, len(ss))\n\tfor i, d := range ss {\n\t\tvar err error\n\t\tout[i], err = strconv.Atoi(d)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t}\n\tif !s.changed {\n\t\t*s.value = out\n\t} else {\n\t\t*s.value = append(*s.value, out...)\n\t}\n\ts.changed = true\n\treturn nil\n}\n\nfunc (s *intSliceValue) Type() string {\n\treturn \"intSlice\"\n}\n\nfunc (s *intSliceValue) String() string {\n\tout := make([]string, len(*s.value))\n\tfor i, d := range *s.value {\n\t\tout[i] = fmt.Sprintf(\"%d\", d)\n\t}\n\treturn \"[\" + strings.Join(out, \",\") + \"]\"\n}\n\nfunc (s *intSliceValue) Append(val string) error {\n\ti, err := strconv.Atoi(val)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*s.value = append(*s.value, i)\n\treturn nil\n}\n\nfunc (s *intSliceValue) Replace(val []string) error {\n\tout := make([]int, len(val))\n\tfor i, d := range val {\n\t\tvar err error\n\t\tout[i], err = strconv.Atoi(d)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\t*s.value = out\n\treturn nil\n}\n\nfunc (s *intSliceValue) GetSlice() []string {\n\tout := make([]string, len(*s.value))\n\tfor i, d := range *s.value {\n\t\tout[i] = strconv.Itoa(d)\n\t}\n\treturn out\n}\n\nfunc intSliceConv(val string) (interface{}, error) {\n\tval = strings.Trim(val, \"[]\")\n\t// Empty string would cause a slice with one (empty) entry\n\tif len(val) == 0 {\n\t\treturn []int{}, nil\n\t}\n\tss := strings.Split(val, \",\")\n\tout := make([]int, len(ss))\n\tfor i, d := range ss {\n\t\tvar err error\n\t\tout[i], err = strconv.Atoi(d)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t}\n\treturn out, nil\n}\n\n// GetIntSlice return the []int value of a flag with the given name\nfunc (f *FlagSet) GetIntSlice(name string) ([]int, error) {\n\tval, err := f.getFlagType(name, \"intSlice\", intSliceConv)\n\tif err != nil {\n\t\treturn []int{}, err\n\t}\n\treturn val.([]int), nil\n}\n\n// IntSliceVar defines a intSlice flag with specified name, default value, and usage string.\n// The argument p points to a []int variable in which to store the value of the flag.\nfunc (f *FlagSet) IntSliceVar(p *[]int, name string, value []int, usage string) {\n\tf.VarP(newIntSliceValue(value, p), name, \"\", usage)\n}\n\n// IntSliceVarP is like IntSliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) IntSliceVarP(p *[]int, name, shorthand string, value []int, usage string) {\n\tf.VarP(newIntSliceValue(value, p), name, shorthand, usage)\n}\n\n// IntSliceVar defines a int[] flag with specified name, default value, and usage string.\n// The argument p points to a int[] variable in which to store the value of the flag.\nfunc IntSliceVar(p *[]int, name string, value []int, usage string) {\n\tCommandLine.VarP(newIntSliceValue(value, p), name, \"\", usage)\n}\n\n// IntSliceVarP is like IntSliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc IntSliceVarP(p *[]int, name, shorthand string, value []int, usage string) {\n\tCommandLine.VarP(newIntSliceValue(value, p), name, shorthand, usage)\n}\n\n// IntSlice defines a []int flag with specified name, default value, and usage string.\n// The return value is the address of a []int variable that stores the value of the flag.\nfunc (f *FlagSet) IntSlice(name string, value []int, usage string) *[]int {\n\tp := []int{}\n\tf.IntSliceVarP(&p, name, \"\", value, usage)\n\treturn &p\n}\n\n// IntSliceP is like IntSlice, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) IntSliceP(name, shorthand string, value []int, usage string) *[]int {\n\tp := []int{}\n\tf.IntSliceVarP(&p, name, shorthand, value, usage)\n\treturn &p\n}\n\n// IntSlice defines a []int flag with specified name, default value, and usage string.\n// The return value is the address of a []int variable that stores the value of the flag.\nfunc IntSlice(name string, value []int, usage string) *[]int {\n\treturn CommandLine.IntSliceP(name, \"\", value, usage)\n}\n\n// IntSliceP is like IntSlice, but accepts a shorthand letter that can be used after a single dash.\nfunc IntSliceP(name, shorthand string, value []int, usage string) *[]int {\n\treturn CommandLine.IntSliceP(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/ip.go",
    "content": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"net\"\n\t\"strings\"\n)\n\n// -- net.IP value\ntype ipValue net.IP\n\nfunc newIPValue(val net.IP, p *net.IP) *ipValue {\n\t*p = val\n\treturn (*ipValue)(p)\n}\n\nfunc (i *ipValue) String() string { return net.IP(*i).String() }\nfunc (i *ipValue) Set(s string) error {\n\tif s == \"\" {\n\t\treturn nil\n\t}\n\tip := net.ParseIP(strings.TrimSpace(s))\n\tif ip == nil {\n\t\treturn fmt.Errorf(\"failed to parse IP: %q\", s)\n\t}\n\t*i = ipValue(ip)\n\treturn nil\n}\n\nfunc (i *ipValue) Type() string {\n\treturn \"ip\"\n}\n\nfunc ipConv(sval string) (interface{}, error) {\n\tip := net.ParseIP(sval)\n\tif ip != nil {\n\t\treturn ip, nil\n\t}\n\treturn nil, fmt.Errorf(\"invalid string being converted to IP address: %s\", sval)\n}\n\n// GetIP return the net.IP value of a flag with the given name\nfunc (f *FlagSet) GetIP(name string) (net.IP, error) {\n\tval, err := f.getFlagType(name, \"ip\", ipConv)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn val.(net.IP), nil\n}\n\n// IPVar defines an net.IP flag with specified name, default value, and usage string.\n// The argument p points to an net.IP variable in which to store the value of the flag.\nfunc (f *FlagSet) IPVar(p *net.IP, name string, value net.IP, usage string) {\n\tf.VarP(newIPValue(value, p), name, \"\", usage)\n}\n\n// IPVarP is like IPVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) IPVarP(p *net.IP, name, shorthand string, value net.IP, usage string) {\n\tf.VarP(newIPValue(value, p), name, shorthand, usage)\n}\n\n// IPVar defines an net.IP flag with specified name, default value, and usage string.\n// The argument p points to an net.IP variable in which to store the value of the flag.\nfunc IPVar(p *net.IP, name string, value net.IP, usage string) {\n\tCommandLine.VarP(newIPValue(value, p), name, \"\", usage)\n}\n\n// IPVarP is like IPVar, but accepts a shorthand letter that can be used after a single dash.\nfunc IPVarP(p *net.IP, name, shorthand string, value net.IP, usage string) {\n\tCommandLine.VarP(newIPValue(value, p), name, shorthand, usage)\n}\n\n// IP defines an net.IP flag with specified name, default value, and usage string.\n// The return value is the address of an net.IP variable that stores the value of the flag.\nfunc (f *FlagSet) IP(name string, value net.IP, usage string) *net.IP {\n\tp := new(net.IP)\n\tf.IPVarP(p, name, \"\", value, usage)\n\treturn p\n}\n\n// IPP is like IP, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) IPP(name, shorthand string, value net.IP, usage string) *net.IP {\n\tp := new(net.IP)\n\tf.IPVarP(p, name, shorthand, value, usage)\n\treturn p\n}\n\n// IP defines an net.IP flag with specified name, default value, and usage string.\n// The return value is the address of an net.IP variable that stores the value of the flag.\nfunc IP(name string, value net.IP, usage string) *net.IP {\n\treturn CommandLine.IPP(name, \"\", value, usage)\n}\n\n// IPP is like IP, but accepts a shorthand letter that can be used after a single dash.\nfunc IPP(name, shorthand string, value net.IP, usage string) *net.IP {\n\treturn CommandLine.IPP(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/ip_slice.go",
    "content": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"net\"\n\t\"strings\"\n)\n\n// -- ipSlice Value\ntype ipSliceValue struct {\n\tvalue   *[]net.IP\n\tchanged bool\n}\n\nfunc newIPSliceValue(val []net.IP, p *[]net.IP) *ipSliceValue {\n\tipsv := new(ipSliceValue)\n\tipsv.value = p\n\t*ipsv.value = val\n\treturn ipsv\n}\n\n// Set converts, and assigns, the comma-separated IP argument string representation as the []net.IP value of this flag.\n// If Set is called on a flag that already has a []net.IP assigned, the newly converted values will be appended.\nfunc (s *ipSliceValue) Set(val string) error {\n\n\t// remove all quote characters\n\trmQuote := strings.NewReplacer(`\"`, \"\", `'`, \"\", \"`\", \"\")\n\n\t// read flag arguments with CSV parser\n\tipStrSlice, err := readAsCSV(rmQuote.Replace(val))\n\tif err != nil && err != io.EOF {\n\t\treturn err\n\t}\n\n\t// parse ip values into slice\n\tout := make([]net.IP, 0, len(ipStrSlice))\n\tfor _, ipStr := range ipStrSlice {\n\t\tip := net.ParseIP(strings.TrimSpace(ipStr))\n\t\tif ip == nil {\n\t\t\treturn fmt.Errorf(\"invalid string being converted to IP address: %s\", ipStr)\n\t\t}\n\t\tout = append(out, ip)\n\t}\n\n\tif !s.changed {\n\t\t*s.value = out\n\t} else {\n\t\t*s.value = append(*s.value, out...)\n\t}\n\n\ts.changed = true\n\n\treturn nil\n}\n\n// Type returns a string that uniquely represents this flag's type.\nfunc (s *ipSliceValue) Type() string {\n\treturn \"ipSlice\"\n}\n\n// String defines a \"native\" format for this net.IP slice flag value.\nfunc (s *ipSliceValue) String() string {\n\n\tipStrSlice := make([]string, len(*s.value))\n\tfor i, ip := range *s.value {\n\t\tipStrSlice[i] = ip.String()\n\t}\n\n\tout, _ := writeAsCSV(ipStrSlice)\n\n\treturn \"[\" + out + \"]\"\n}\n\nfunc (s *ipSliceValue) fromString(val string) (net.IP, error) {\n\treturn net.ParseIP(strings.TrimSpace(val)), nil\n}\n\nfunc (s *ipSliceValue) toString(val net.IP) string {\n\treturn val.String()\n}\n\nfunc (s *ipSliceValue) Append(val string) error {\n\ti, err := s.fromString(val)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*s.value = append(*s.value, i)\n\treturn nil\n}\n\nfunc (s *ipSliceValue) Replace(val []string) error {\n\tout := make([]net.IP, len(val))\n\tfor i, d := range val {\n\t\tvar err error\n\t\tout[i], err = s.fromString(d)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\t*s.value = out\n\treturn nil\n}\n\nfunc (s *ipSliceValue) GetSlice() []string {\n\tout := make([]string, len(*s.value))\n\tfor i, d := range *s.value {\n\t\tout[i] = s.toString(d)\n\t}\n\treturn out\n}\n\nfunc ipSliceConv(val string) (interface{}, error) {\n\tval = strings.Trim(val, \"[]\")\n\t// Empty string would cause a slice with one (empty) entry\n\tif len(val) == 0 {\n\t\treturn []net.IP{}, nil\n\t}\n\tss := strings.Split(val, \",\")\n\tout := make([]net.IP, len(ss))\n\tfor i, sval := range ss {\n\t\tip := net.ParseIP(strings.TrimSpace(sval))\n\t\tif ip == nil {\n\t\t\treturn nil, fmt.Errorf(\"invalid string being converted to IP address: %s\", sval)\n\t\t}\n\t\tout[i] = ip\n\t}\n\treturn out, nil\n}\n\n// GetIPSlice returns the []net.IP value of a flag with the given name\nfunc (f *FlagSet) GetIPSlice(name string) ([]net.IP, error) {\n\tval, err := f.getFlagType(name, \"ipSlice\", ipSliceConv)\n\tif err != nil {\n\t\treturn []net.IP{}, err\n\t}\n\treturn val.([]net.IP), nil\n}\n\n// IPSliceVar defines a ipSlice flag with specified name, default value, and usage string.\n// The argument p points to a []net.IP variable in which to store the value of the flag.\nfunc (f *FlagSet) IPSliceVar(p *[]net.IP, name string, value []net.IP, usage string) {\n\tf.VarP(newIPSliceValue(value, p), name, \"\", usage)\n}\n\n// IPSliceVarP is like IPSliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) IPSliceVarP(p *[]net.IP, name, shorthand string, value []net.IP, usage string) {\n\tf.VarP(newIPSliceValue(value, p), name, shorthand, usage)\n}\n\n// IPSliceVar defines a []net.IP flag with specified name, default value, and usage string.\n// The argument p points to a []net.IP variable in which to store the value of the flag.\nfunc IPSliceVar(p *[]net.IP, name string, value []net.IP, usage string) {\n\tCommandLine.VarP(newIPSliceValue(value, p), name, \"\", usage)\n}\n\n// IPSliceVarP is like IPSliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc IPSliceVarP(p *[]net.IP, name, shorthand string, value []net.IP, usage string) {\n\tCommandLine.VarP(newIPSliceValue(value, p), name, shorthand, usage)\n}\n\n// IPSlice defines a []net.IP flag with specified name, default value, and usage string.\n// The return value is the address of a []net.IP variable that stores the value of that flag.\nfunc (f *FlagSet) IPSlice(name string, value []net.IP, usage string) *[]net.IP {\n\tp := []net.IP{}\n\tf.IPSliceVarP(&p, name, \"\", value, usage)\n\treturn &p\n}\n\n// IPSliceP is like IPSlice, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) IPSliceP(name, shorthand string, value []net.IP, usage string) *[]net.IP {\n\tp := []net.IP{}\n\tf.IPSliceVarP(&p, name, shorthand, value, usage)\n\treturn &p\n}\n\n// IPSlice defines a []net.IP flag with specified name, default value, and usage string.\n// The return value is the address of a []net.IP variable that stores the value of the flag.\nfunc IPSlice(name string, value []net.IP, usage string) *[]net.IP {\n\treturn CommandLine.IPSliceP(name, \"\", value, usage)\n}\n\n// IPSliceP is like IPSlice, but accepts a shorthand letter that can be used after a single dash.\nfunc IPSliceP(name, shorthand string, value []net.IP, usage string) *[]net.IP {\n\treturn CommandLine.IPSliceP(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/ipmask.go",
    "content": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"net\"\n\t\"strconv\"\n)\n\n// -- net.IPMask value\ntype ipMaskValue net.IPMask\n\nfunc newIPMaskValue(val net.IPMask, p *net.IPMask) *ipMaskValue {\n\t*p = val\n\treturn (*ipMaskValue)(p)\n}\n\nfunc (i *ipMaskValue) String() string { return net.IPMask(*i).String() }\nfunc (i *ipMaskValue) Set(s string) error {\n\tip := ParseIPv4Mask(s)\n\tif ip == nil {\n\t\treturn fmt.Errorf(\"failed to parse IP mask: %q\", s)\n\t}\n\t*i = ipMaskValue(ip)\n\treturn nil\n}\n\nfunc (i *ipMaskValue) Type() string {\n\treturn \"ipMask\"\n}\n\n// ParseIPv4Mask written in IP form (e.g. 255.255.255.0).\n// This function should really belong to the net package.\nfunc ParseIPv4Mask(s string) net.IPMask {\n\tmask := net.ParseIP(s)\n\tif mask == nil {\n\t\tif len(s) != 8 {\n\t\t\treturn nil\n\t\t}\n\t\t// net.IPMask.String() actually outputs things like ffffff00\n\t\t// so write a horrible parser for that as well  :-(\n\t\tm := []int{}\n\t\tfor i := 0; i < 4; i++ {\n\t\t\tb := \"0x\" + s[2*i:2*i+2]\n\t\t\td, err := strconv.ParseInt(b, 0, 0)\n\t\t\tif err != nil {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tm = append(m, int(d))\n\t\t}\n\t\ts := fmt.Sprintf(\"%d.%d.%d.%d\", m[0], m[1], m[2], m[3])\n\t\tmask = net.ParseIP(s)\n\t\tif mask == nil {\n\t\t\treturn nil\n\t\t}\n\t}\n\treturn net.IPv4Mask(mask[12], mask[13], mask[14], mask[15])\n}\n\nfunc parseIPv4Mask(sval string) (interface{}, error) {\n\tmask := ParseIPv4Mask(sval)\n\tif mask == nil {\n\t\treturn nil, fmt.Errorf(\"unable to parse %s as net.IPMask\", sval)\n\t}\n\treturn mask, nil\n}\n\n// GetIPv4Mask return the net.IPv4Mask value of a flag with the given name\nfunc (f *FlagSet) GetIPv4Mask(name string) (net.IPMask, error) {\n\tval, err := f.getFlagType(name, \"ipMask\", parseIPv4Mask)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn val.(net.IPMask), nil\n}\n\n// IPMaskVar defines an net.IPMask flag with specified name, default value, and usage string.\n// The argument p points to an net.IPMask variable in which to store the value of the flag.\nfunc (f *FlagSet) IPMaskVar(p *net.IPMask, name string, value net.IPMask, usage string) {\n\tf.VarP(newIPMaskValue(value, p), name, \"\", usage)\n}\n\n// IPMaskVarP is like IPMaskVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) IPMaskVarP(p *net.IPMask, name, shorthand string, value net.IPMask, usage string) {\n\tf.VarP(newIPMaskValue(value, p), name, shorthand, usage)\n}\n\n// IPMaskVar defines an net.IPMask flag with specified name, default value, and usage string.\n// The argument p points to an net.IPMask variable in which to store the value of the flag.\nfunc IPMaskVar(p *net.IPMask, name string, value net.IPMask, usage string) {\n\tCommandLine.VarP(newIPMaskValue(value, p), name, \"\", usage)\n}\n\n// IPMaskVarP is like IPMaskVar, but accepts a shorthand letter that can be used after a single dash.\nfunc IPMaskVarP(p *net.IPMask, name, shorthand string, value net.IPMask, usage string) {\n\tCommandLine.VarP(newIPMaskValue(value, p), name, shorthand, usage)\n}\n\n// IPMask defines an net.IPMask flag with specified name, default value, and usage string.\n// The return value is the address of an net.IPMask variable that stores the value of the flag.\nfunc (f *FlagSet) IPMask(name string, value net.IPMask, usage string) *net.IPMask {\n\tp := new(net.IPMask)\n\tf.IPMaskVarP(p, name, \"\", value, usage)\n\treturn p\n}\n\n// IPMaskP is like IPMask, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) IPMaskP(name, shorthand string, value net.IPMask, usage string) *net.IPMask {\n\tp := new(net.IPMask)\n\tf.IPMaskVarP(p, name, shorthand, value, usage)\n\treturn p\n}\n\n// IPMask defines an net.IPMask flag with specified name, default value, and usage string.\n// The return value is the address of an net.IPMask variable that stores the value of the flag.\nfunc IPMask(name string, value net.IPMask, usage string) *net.IPMask {\n\treturn CommandLine.IPMaskP(name, \"\", value, usage)\n}\n\n// IPMaskP is like IP, but accepts a shorthand letter that can be used after a single dash.\nfunc IPMaskP(name, shorthand string, value net.IPMask, usage string) *net.IPMask {\n\treturn CommandLine.IPMaskP(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/ipnet.go",
    "content": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"net\"\n\t\"strings\"\n)\n\n// IPNet adapts net.IPNet for use as a flag.\ntype ipNetValue net.IPNet\n\nfunc (ipnet ipNetValue) String() string {\n\tn := net.IPNet(ipnet)\n\treturn n.String()\n}\n\nfunc (ipnet *ipNetValue) Set(value string) error {\n\t_, n, err := net.ParseCIDR(strings.TrimSpace(value))\n\tif err != nil {\n\t\treturn err\n\t}\n\t*ipnet = ipNetValue(*n)\n\treturn nil\n}\n\nfunc (*ipNetValue) Type() string {\n\treturn \"ipNet\"\n}\n\nfunc newIPNetValue(val net.IPNet, p *net.IPNet) *ipNetValue {\n\t*p = val\n\treturn (*ipNetValue)(p)\n}\n\nfunc ipNetConv(sval string) (interface{}, error) {\n\t_, n, err := net.ParseCIDR(strings.TrimSpace(sval))\n\tif err == nil {\n\t\treturn *n, nil\n\t}\n\treturn nil, fmt.Errorf(\"invalid string being converted to IPNet: %s\", sval)\n}\n\n// GetIPNet return the net.IPNet value of a flag with the given name\nfunc (f *FlagSet) GetIPNet(name string) (net.IPNet, error) {\n\tval, err := f.getFlagType(name, \"ipNet\", ipNetConv)\n\tif err != nil {\n\t\treturn net.IPNet{}, err\n\t}\n\treturn val.(net.IPNet), nil\n}\n\n// IPNetVar defines an net.IPNet flag with specified name, default value, and usage string.\n// The argument p points to an net.IPNet variable in which to store the value of the flag.\nfunc (f *FlagSet) IPNetVar(p *net.IPNet, name string, value net.IPNet, usage string) {\n\tf.VarP(newIPNetValue(value, p), name, \"\", usage)\n}\n\n// IPNetVarP is like IPNetVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) IPNetVarP(p *net.IPNet, name, shorthand string, value net.IPNet, usage string) {\n\tf.VarP(newIPNetValue(value, p), name, shorthand, usage)\n}\n\n// IPNetVar defines an net.IPNet flag with specified name, default value, and usage string.\n// The argument p points to an net.IPNet variable in which to store the value of the flag.\nfunc IPNetVar(p *net.IPNet, name string, value net.IPNet, usage string) {\n\tCommandLine.VarP(newIPNetValue(value, p), name, \"\", usage)\n}\n\n// IPNetVarP is like IPNetVar, but accepts a shorthand letter that can be used after a single dash.\nfunc IPNetVarP(p *net.IPNet, name, shorthand string, value net.IPNet, usage string) {\n\tCommandLine.VarP(newIPNetValue(value, p), name, shorthand, usage)\n}\n\n// IPNet defines an net.IPNet flag with specified name, default value, and usage string.\n// The return value is the address of an net.IPNet variable that stores the value of the flag.\nfunc (f *FlagSet) IPNet(name string, value net.IPNet, usage string) *net.IPNet {\n\tp := new(net.IPNet)\n\tf.IPNetVarP(p, name, \"\", value, usage)\n\treturn p\n}\n\n// IPNetP is like IPNet, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) IPNetP(name, shorthand string, value net.IPNet, usage string) *net.IPNet {\n\tp := new(net.IPNet)\n\tf.IPNetVarP(p, name, shorthand, value, usage)\n\treturn p\n}\n\n// IPNet defines an net.IPNet flag with specified name, default value, and usage string.\n// The return value is the address of an net.IPNet variable that stores the value of the flag.\nfunc IPNet(name string, value net.IPNet, usage string) *net.IPNet {\n\treturn CommandLine.IPNetP(name, \"\", value, usage)\n}\n\n// IPNetP is like IPNet, but accepts a shorthand letter that can be used after a single dash.\nfunc IPNetP(name, shorthand string, value net.IPNet, usage string) *net.IPNet {\n\treturn CommandLine.IPNetP(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/ipnet_slice.go",
    "content": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"net\"\n\t\"strings\"\n)\n\n// -- ipNetSlice Value\ntype ipNetSliceValue struct {\n\tvalue   *[]net.IPNet\n\tchanged bool\n}\n\nfunc newIPNetSliceValue(val []net.IPNet, p *[]net.IPNet) *ipNetSliceValue {\n\tipnsv := new(ipNetSliceValue)\n\tipnsv.value = p\n\t*ipnsv.value = val\n\treturn ipnsv\n}\n\n// Set converts, and assigns, the comma-separated IPNet argument string representation as the []net.IPNet value of this flag.\n// If Set is called on a flag that already has a []net.IPNet assigned, the newly converted values will be appended.\nfunc (s *ipNetSliceValue) Set(val string) error {\n\n\t// remove all quote characters\n\trmQuote := strings.NewReplacer(`\"`, \"\", `'`, \"\", \"`\", \"\")\n\n\t// read flag arguments with CSV parser\n\tipNetStrSlice, err := readAsCSV(rmQuote.Replace(val))\n\tif err != nil && err != io.EOF {\n\t\treturn err\n\t}\n\n\t// parse ip values into slice\n\tout := make([]net.IPNet, 0, len(ipNetStrSlice))\n\tfor _, ipNetStr := range ipNetStrSlice {\n\t\t_, n, err := net.ParseCIDR(strings.TrimSpace(ipNetStr))\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"invalid string being converted to CIDR: %s\", ipNetStr)\n\t\t}\n\t\tout = append(out, *n)\n\t}\n\n\tif !s.changed {\n\t\t*s.value = out\n\t} else {\n\t\t*s.value = append(*s.value, out...)\n\t}\n\n\ts.changed = true\n\n\treturn nil\n}\n\n// Type returns a string that uniquely represents this flag's type.\nfunc (s *ipNetSliceValue) Type() string {\n\treturn \"ipNetSlice\"\n}\n\n// String defines a \"native\" format for this net.IPNet slice flag value.\nfunc (s *ipNetSliceValue) String() string {\n\n\tipNetStrSlice := make([]string, len(*s.value))\n\tfor i, n := range *s.value {\n\t\tipNetStrSlice[i] = n.String()\n\t}\n\n\tout, _ := writeAsCSV(ipNetStrSlice)\n\treturn \"[\" + out + \"]\"\n}\n\nfunc ipNetSliceConv(val string) (interface{}, error) {\n\tval = strings.Trim(val, \"[]\")\n\t// Emtpy string would cause a slice with one (empty) entry\n\tif len(val) == 0 {\n\t\treturn []net.IPNet{}, nil\n\t}\n\tss := strings.Split(val, \",\")\n\tout := make([]net.IPNet, len(ss))\n\tfor i, sval := range ss {\n\t\t_, n, err := net.ParseCIDR(strings.TrimSpace(sval))\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"invalid string being converted to CIDR: %s\", sval)\n\t\t}\n\t\tout[i] = *n\n\t}\n\treturn out, nil\n}\n\n// GetIPNetSlice returns the []net.IPNet value of a flag with the given name\nfunc (f *FlagSet) GetIPNetSlice(name string) ([]net.IPNet, error) {\n\tval, err := f.getFlagType(name, \"ipNetSlice\", ipNetSliceConv)\n\tif err != nil {\n\t\treturn []net.IPNet{}, err\n\t}\n\treturn val.([]net.IPNet), nil\n}\n\n// IPNetSliceVar defines a ipNetSlice flag with specified name, default value, and usage string.\n// The argument p points to a []net.IPNet variable in which to store the value of the flag.\nfunc (f *FlagSet) IPNetSliceVar(p *[]net.IPNet, name string, value []net.IPNet, usage string) {\n\tf.VarP(newIPNetSliceValue(value, p), name, \"\", usage)\n}\n\n// IPNetSliceVarP is like IPNetSliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) IPNetSliceVarP(p *[]net.IPNet, name, shorthand string, value []net.IPNet, usage string) {\n\tf.VarP(newIPNetSliceValue(value, p), name, shorthand, usage)\n}\n\n// IPNetSliceVar defines a []net.IPNet flag with specified name, default value, and usage string.\n// The argument p points to a []net.IPNet variable in which to store the value of the flag.\nfunc IPNetSliceVar(p *[]net.IPNet, name string, value []net.IPNet, usage string) {\n\tCommandLine.VarP(newIPNetSliceValue(value, p), name, \"\", usage)\n}\n\n// IPNetSliceVarP is like IPNetSliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc IPNetSliceVarP(p *[]net.IPNet, name, shorthand string, value []net.IPNet, usage string) {\n\tCommandLine.VarP(newIPNetSliceValue(value, p), name, shorthand, usage)\n}\n\n// IPNetSlice defines a []net.IPNet flag with specified name, default value, and usage string.\n// The return value is the address of a []net.IPNet variable that stores the value of that flag.\nfunc (f *FlagSet) IPNetSlice(name string, value []net.IPNet, usage string) *[]net.IPNet {\n\tp := []net.IPNet{}\n\tf.IPNetSliceVarP(&p, name, \"\", value, usage)\n\treturn &p\n}\n\n// IPNetSliceP is like IPNetSlice, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) IPNetSliceP(name, shorthand string, value []net.IPNet, usage string) *[]net.IPNet {\n\tp := []net.IPNet{}\n\tf.IPNetSliceVarP(&p, name, shorthand, value, usage)\n\treturn &p\n}\n\n// IPNetSlice defines a []net.IPNet flag with specified name, default value, and usage string.\n// The return value is the address of a []net.IP variable that stores the value of the flag.\nfunc IPNetSlice(name string, value []net.IPNet, usage string) *[]net.IPNet {\n\treturn CommandLine.IPNetSliceP(name, \"\", value, usage)\n}\n\n// IPNetSliceP is like IPNetSlice, but accepts a shorthand letter that can be used after a single dash.\nfunc IPNetSliceP(name, shorthand string, value []net.IPNet, usage string) *[]net.IPNet {\n\treturn CommandLine.IPNetSliceP(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/string.go",
    "content": "package pflag\n\n// -- string Value\ntype stringValue string\n\nfunc newStringValue(val string, p *string) *stringValue {\n\t*p = val\n\treturn (*stringValue)(p)\n}\n\nfunc (s *stringValue) Set(val string) error {\n\t*s = stringValue(val)\n\treturn nil\n}\nfunc (s *stringValue) Type() string {\n\treturn \"string\"\n}\n\nfunc (s *stringValue) String() string { return string(*s) }\n\nfunc stringConv(sval string) (interface{}, error) {\n\treturn sval, nil\n}\n\n// GetString return the string value of a flag with the given name\nfunc (f *FlagSet) GetString(name string) (string, error) {\n\tval, err := f.getFlagType(name, \"string\", stringConv)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\treturn val.(string), nil\n}\n\n// StringVar defines a string flag with specified name, default value, and usage string.\n// The argument p points to a string variable in which to store the value of the flag.\nfunc (f *FlagSet) StringVar(p *string, name string, value string, usage string) {\n\tf.VarP(newStringValue(value, p), name, \"\", usage)\n}\n\n// StringVarP is like StringVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) StringVarP(p *string, name, shorthand string, value string, usage string) {\n\tf.VarP(newStringValue(value, p), name, shorthand, usage)\n}\n\n// StringVar defines a string flag with specified name, default value, and usage string.\n// The argument p points to a string variable in which to store the value of the flag.\nfunc StringVar(p *string, name string, value string, usage string) {\n\tCommandLine.VarP(newStringValue(value, p), name, \"\", usage)\n}\n\n// StringVarP is like StringVar, but accepts a shorthand letter that can be used after a single dash.\nfunc StringVarP(p *string, name, shorthand string, value string, usage string) {\n\tCommandLine.VarP(newStringValue(value, p), name, shorthand, usage)\n}\n\n// String defines a string flag with specified name, default value, and usage string.\n// The return value is the address of a string variable that stores the value of the flag.\nfunc (f *FlagSet) String(name string, value string, usage string) *string {\n\tp := new(string)\n\tf.StringVarP(p, name, \"\", value, usage)\n\treturn p\n}\n\n// StringP is like String, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) StringP(name, shorthand string, value string, usage string) *string {\n\tp := new(string)\n\tf.StringVarP(p, name, shorthand, value, usage)\n\treturn p\n}\n\n// String defines a string flag with specified name, default value, and usage string.\n// The return value is the address of a string variable that stores the value of the flag.\nfunc String(name string, value string, usage string) *string {\n\treturn CommandLine.StringP(name, \"\", value, usage)\n}\n\n// StringP is like String, but accepts a shorthand letter that can be used after a single dash.\nfunc StringP(name, shorthand string, value string, usage string) *string {\n\treturn CommandLine.StringP(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/string_array.go",
    "content": "package pflag\n\n// -- stringArray Value\ntype stringArrayValue struct {\n\tvalue   *[]string\n\tchanged bool\n}\n\nfunc newStringArrayValue(val []string, p *[]string) *stringArrayValue {\n\tssv := new(stringArrayValue)\n\tssv.value = p\n\t*ssv.value = val\n\treturn ssv\n}\n\nfunc (s *stringArrayValue) Set(val string) error {\n\tif !s.changed {\n\t\t*s.value = []string{val}\n\t\ts.changed = true\n\t} else {\n\t\t*s.value = append(*s.value, val)\n\t}\n\treturn nil\n}\n\nfunc (s *stringArrayValue) Append(val string) error {\n\t*s.value = append(*s.value, val)\n\treturn nil\n}\n\nfunc (s *stringArrayValue) Replace(val []string) error {\n\tout := make([]string, len(val))\n\tfor i, d := range val {\n\t\tout[i] = d\n\t}\n\t*s.value = out\n\treturn nil\n}\n\nfunc (s *stringArrayValue) GetSlice() []string {\n\tout := make([]string, len(*s.value))\n\tfor i, d := range *s.value {\n\t\tout[i] = d\n\t}\n\treturn out\n}\n\nfunc (s *stringArrayValue) Type() string {\n\treturn \"stringArray\"\n}\n\nfunc (s *stringArrayValue) String() string {\n\tstr, _ := writeAsCSV(*s.value)\n\treturn \"[\" + str + \"]\"\n}\n\nfunc stringArrayConv(sval string) (interface{}, error) {\n\tsval = sval[1 : len(sval)-1]\n\t// An empty string would cause a array with one (empty) string\n\tif len(sval) == 0 {\n\t\treturn []string{}, nil\n\t}\n\treturn readAsCSV(sval)\n}\n\n// GetStringArray return the []string value of a flag with the given name\nfunc (f *FlagSet) GetStringArray(name string) ([]string, error) {\n\tval, err := f.getFlagType(name, \"stringArray\", stringArrayConv)\n\tif err != nil {\n\t\treturn []string{}, err\n\t}\n\treturn val.([]string), nil\n}\n\n// StringArrayVar defines a string flag with specified name, default value, and usage string.\n// The argument p points to a []string variable in which to store the values of the multiple flags.\n// The value of each argument will not try to be separated by comma. Use a StringSlice for that.\nfunc (f *FlagSet) StringArrayVar(p *[]string, name string, value []string, usage string) {\n\tf.VarP(newStringArrayValue(value, p), name, \"\", usage)\n}\n\n// StringArrayVarP is like StringArrayVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) StringArrayVarP(p *[]string, name, shorthand string, value []string, usage string) {\n\tf.VarP(newStringArrayValue(value, p), name, shorthand, usage)\n}\n\n// StringArrayVar defines a string flag with specified name, default value, and usage string.\n// The argument p points to a []string variable in which to store the value of the flag.\n// The value of each argument will not try to be separated by comma. Use a StringSlice for that.\nfunc StringArrayVar(p *[]string, name string, value []string, usage string) {\n\tCommandLine.VarP(newStringArrayValue(value, p), name, \"\", usage)\n}\n\n// StringArrayVarP is like StringArrayVar, but accepts a shorthand letter that can be used after a single dash.\nfunc StringArrayVarP(p *[]string, name, shorthand string, value []string, usage string) {\n\tCommandLine.VarP(newStringArrayValue(value, p), name, shorthand, usage)\n}\n\n// StringArray defines a string flag with specified name, default value, and usage string.\n// The return value is the address of a []string variable that stores the value of the flag.\n// The value of each argument will not try to be separated by comma. Use a StringSlice for that.\nfunc (f *FlagSet) StringArray(name string, value []string, usage string) *[]string {\n\tp := []string{}\n\tf.StringArrayVarP(&p, name, \"\", value, usage)\n\treturn &p\n}\n\n// StringArrayP is like StringArray, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) StringArrayP(name, shorthand string, value []string, usage string) *[]string {\n\tp := []string{}\n\tf.StringArrayVarP(&p, name, shorthand, value, usage)\n\treturn &p\n}\n\n// StringArray defines a string flag with specified name, default value, and usage string.\n// The return value is the address of a []string variable that stores the value of the flag.\n// The value of each argument will not try to be separated by comma. Use a StringSlice for that.\nfunc StringArray(name string, value []string, usage string) *[]string {\n\treturn CommandLine.StringArrayP(name, \"\", value, usage)\n}\n\n// StringArrayP is like StringArray, but accepts a shorthand letter that can be used after a single dash.\nfunc StringArrayP(name, shorthand string, value []string, usage string) *[]string {\n\treturn CommandLine.StringArrayP(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/string_slice.go",
    "content": "package pflag\n\nimport (\n\t\"bytes\"\n\t\"encoding/csv\"\n\t\"strings\"\n)\n\n// -- stringSlice Value\ntype stringSliceValue struct {\n\tvalue   *[]string\n\tchanged bool\n}\n\nfunc newStringSliceValue(val []string, p *[]string) *stringSliceValue {\n\tssv := new(stringSliceValue)\n\tssv.value = p\n\t*ssv.value = val\n\treturn ssv\n}\n\nfunc readAsCSV(val string) ([]string, error) {\n\tif val == \"\" {\n\t\treturn []string{}, nil\n\t}\n\tstringReader := strings.NewReader(val)\n\tcsvReader := csv.NewReader(stringReader)\n\treturn csvReader.Read()\n}\n\nfunc writeAsCSV(vals []string) (string, error) {\n\tb := &bytes.Buffer{}\n\tw := csv.NewWriter(b)\n\terr := w.Write(vals)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tw.Flush()\n\treturn strings.TrimSuffix(b.String(), \"\\n\"), nil\n}\n\nfunc (s *stringSliceValue) Set(val string) error {\n\tv, err := readAsCSV(val)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif !s.changed {\n\t\t*s.value = v\n\t} else {\n\t\t*s.value = append(*s.value, v...)\n\t}\n\ts.changed = true\n\treturn nil\n}\n\nfunc (s *stringSliceValue) Type() string {\n\treturn \"stringSlice\"\n}\n\nfunc (s *stringSliceValue) String() string {\n\tstr, _ := writeAsCSV(*s.value)\n\treturn \"[\" + str + \"]\"\n}\n\nfunc (s *stringSliceValue) Append(val string) error {\n\t*s.value = append(*s.value, val)\n\treturn nil\n}\n\nfunc (s *stringSliceValue) Replace(val []string) error {\n\t*s.value = val\n\treturn nil\n}\n\nfunc (s *stringSliceValue) GetSlice() []string {\n\treturn *s.value\n}\n\nfunc stringSliceConv(sval string) (interface{}, error) {\n\tsval = sval[1 : len(sval)-1]\n\t// An empty string would cause a slice with one (empty) string\n\tif len(sval) == 0 {\n\t\treturn []string{}, nil\n\t}\n\treturn readAsCSV(sval)\n}\n\n// GetStringSlice return the []string value of a flag with the given name\nfunc (f *FlagSet) GetStringSlice(name string) ([]string, error) {\n\tval, err := f.getFlagType(name, \"stringSlice\", stringSliceConv)\n\tif err != nil {\n\t\treturn []string{}, err\n\t}\n\treturn val.([]string), nil\n}\n\n// StringSliceVar defines a string flag with specified name, default value, and usage string.\n// The argument p points to a []string variable in which to store the value of the flag.\n// Compared to StringArray flags, StringSlice flags take comma-separated value as arguments and split them accordingly.\n// For example:\n//   --ss=\"v1,v2\" --ss=\"v3\"\n// will result in\n//   []string{\"v1\", \"v2\", \"v3\"}\nfunc (f *FlagSet) StringSliceVar(p *[]string, name string, value []string, usage string) {\n\tf.VarP(newStringSliceValue(value, p), name, \"\", usage)\n}\n\n// StringSliceVarP is like StringSliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) StringSliceVarP(p *[]string, name, shorthand string, value []string, usage string) {\n\tf.VarP(newStringSliceValue(value, p), name, shorthand, usage)\n}\n\n// StringSliceVar defines a string flag with specified name, default value, and usage string.\n// The argument p points to a []string variable in which to store the value of the flag.\n// Compared to StringArray flags, StringSlice flags take comma-separated value as arguments and split them accordingly.\n// For example:\n//   --ss=\"v1,v2\" --ss=\"v3\"\n// will result in\n//   []string{\"v1\", \"v2\", \"v3\"}\nfunc StringSliceVar(p *[]string, name string, value []string, usage string) {\n\tCommandLine.VarP(newStringSliceValue(value, p), name, \"\", usage)\n}\n\n// StringSliceVarP is like StringSliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc StringSliceVarP(p *[]string, name, shorthand string, value []string, usage string) {\n\tCommandLine.VarP(newStringSliceValue(value, p), name, shorthand, usage)\n}\n\n// StringSlice defines a string flag with specified name, default value, and usage string.\n// The return value is the address of a []string variable that stores the value of the flag.\n// Compared to StringArray flags, StringSlice flags take comma-separated value as arguments and split them accordingly.\n// For example:\n//   --ss=\"v1,v2\" --ss=\"v3\"\n// will result in\n//   []string{\"v1\", \"v2\", \"v3\"}\nfunc (f *FlagSet) StringSlice(name string, value []string, usage string) *[]string {\n\tp := []string{}\n\tf.StringSliceVarP(&p, name, \"\", value, usage)\n\treturn &p\n}\n\n// StringSliceP is like StringSlice, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) StringSliceP(name, shorthand string, value []string, usage string) *[]string {\n\tp := []string{}\n\tf.StringSliceVarP(&p, name, shorthand, value, usage)\n\treturn &p\n}\n\n// StringSlice defines a string flag with specified name, default value, and usage string.\n// The return value is the address of a []string variable that stores the value of the flag.\n// Compared to StringArray flags, StringSlice flags take comma-separated value as arguments and split them accordingly.\n// For example:\n//   --ss=\"v1,v2\" --ss=\"v3\"\n// will result in\n//   []string{\"v1\", \"v2\", \"v3\"}\nfunc StringSlice(name string, value []string, usage string) *[]string {\n\treturn CommandLine.StringSliceP(name, \"\", value, usage)\n}\n\n// StringSliceP is like StringSlice, but accepts a shorthand letter that can be used after a single dash.\nfunc StringSliceP(name, shorthand string, value []string, usage string) *[]string {\n\treturn CommandLine.StringSliceP(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/string_to_int.go",
    "content": "package pflag\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// -- stringToInt Value\ntype stringToIntValue struct {\n\tvalue   *map[string]int\n\tchanged bool\n}\n\nfunc newStringToIntValue(val map[string]int, p *map[string]int) *stringToIntValue {\n\tssv := new(stringToIntValue)\n\tssv.value = p\n\t*ssv.value = val\n\treturn ssv\n}\n\n// Format: a=1,b=2\nfunc (s *stringToIntValue) Set(val string) error {\n\tss := strings.Split(val, \",\")\n\tout := make(map[string]int, len(ss))\n\tfor _, pair := range ss {\n\t\tkv := strings.SplitN(pair, \"=\", 2)\n\t\tif len(kv) != 2 {\n\t\t\treturn fmt.Errorf(\"%s must be formatted as key=value\", pair)\n\t\t}\n\t\tvar err error\n\t\tout[kv[0]], err = strconv.Atoi(kv[1])\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif !s.changed {\n\t\t*s.value = out\n\t} else {\n\t\tfor k, v := range out {\n\t\t\t(*s.value)[k] = v\n\t\t}\n\t}\n\ts.changed = true\n\treturn nil\n}\n\nfunc (s *stringToIntValue) Type() string {\n\treturn \"stringToInt\"\n}\n\nfunc (s *stringToIntValue) String() string {\n\tvar buf bytes.Buffer\n\ti := 0\n\tfor k, v := range *s.value {\n\t\tif i > 0 {\n\t\t\tbuf.WriteRune(',')\n\t\t}\n\t\tbuf.WriteString(k)\n\t\tbuf.WriteRune('=')\n\t\tbuf.WriteString(strconv.Itoa(v))\n\t\ti++\n\t}\n\treturn \"[\" + buf.String() + \"]\"\n}\n\nfunc stringToIntConv(val string) (interface{}, error) {\n\tval = strings.Trim(val, \"[]\")\n\t// An empty string would cause an empty map\n\tif len(val) == 0 {\n\t\treturn map[string]int{}, nil\n\t}\n\tss := strings.Split(val, \",\")\n\tout := make(map[string]int, len(ss))\n\tfor _, pair := range ss {\n\t\tkv := strings.SplitN(pair, \"=\", 2)\n\t\tif len(kv) != 2 {\n\t\t\treturn nil, fmt.Errorf(\"%s must be formatted as key=value\", pair)\n\t\t}\n\t\tvar err error\n\t\tout[kv[0]], err = strconv.Atoi(kv[1])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn out, nil\n}\n\n// GetStringToInt return the map[string]int value of a flag with the given name\nfunc (f *FlagSet) GetStringToInt(name string) (map[string]int, error) {\n\tval, err := f.getFlagType(name, \"stringToInt\", stringToIntConv)\n\tif err != nil {\n\t\treturn map[string]int{}, err\n\t}\n\treturn val.(map[string]int), nil\n}\n\n// StringToIntVar defines a string flag with specified name, default value, and usage string.\n// The argument p points to a map[string]int variable in which to store the values of the multiple flags.\n// The value of each argument will not try to be separated by comma\nfunc (f *FlagSet) StringToIntVar(p *map[string]int, name string, value map[string]int, usage string) {\n\tf.VarP(newStringToIntValue(value, p), name, \"\", usage)\n}\n\n// StringToIntVarP is like StringToIntVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) StringToIntVarP(p *map[string]int, name, shorthand string, value map[string]int, usage string) {\n\tf.VarP(newStringToIntValue(value, p), name, shorthand, usage)\n}\n\n// StringToIntVar defines a string flag with specified name, default value, and usage string.\n// The argument p points to a map[string]int variable in which to store the value of the flag.\n// The value of each argument will not try to be separated by comma\nfunc StringToIntVar(p *map[string]int, name string, value map[string]int, usage string) {\n\tCommandLine.VarP(newStringToIntValue(value, p), name, \"\", usage)\n}\n\n// StringToIntVarP is like StringToIntVar, but accepts a shorthand letter that can be used after a single dash.\nfunc StringToIntVarP(p *map[string]int, name, shorthand string, value map[string]int, usage string) {\n\tCommandLine.VarP(newStringToIntValue(value, p), name, shorthand, usage)\n}\n\n// StringToInt defines a string flag with specified name, default value, and usage string.\n// The return value is the address of a map[string]int variable that stores the value of the flag.\n// The value of each argument will not try to be separated by comma\nfunc (f *FlagSet) StringToInt(name string, value map[string]int, usage string) *map[string]int {\n\tp := map[string]int{}\n\tf.StringToIntVarP(&p, name, \"\", value, usage)\n\treturn &p\n}\n\n// StringToIntP is like StringToInt, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) StringToIntP(name, shorthand string, value map[string]int, usage string) *map[string]int {\n\tp := map[string]int{}\n\tf.StringToIntVarP(&p, name, shorthand, value, usage)\n\treturn &p\n}\n\n// StringToInt defines a string flag with specified name, default value, and usage string.\n// The return value is the address of a map[string]int variable that stores the value of the flag.\n// The value of each argument will not try to be separated by comma\nfunc StringToInt(name string, value map[string]int, usage string) *map[string]int {\n\treturn CommandLine.StringToIntP(name, \"\", value, usage)\n}\n\n// StringToIntP is like StringToInt, but accepts a shorthand letter that can be used after a single dash.\nfunc StringToIntP(name, shorthand string, value map[string]int, usage string) *map[string]int {\n\treturn CommandLine.StringToIntP(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/string_to_int64.go",
    "content": "package pflag\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// -- stringToInt64 Value\ntype stringToInt64Value struct {\n\tvalue   *map[string]int64\n\tchanged bool\n}\n\nfunc newStringToInt64Value(val map[string]int64, p *map[string]int64) *stringToInt64Value {\n\tssv := new(stringToInt64Value)\n\tssv.value = p\n\t*ssv.value = val\n\treturn ssv\n}\n\n// Format: a=1,b=2\nfunc (s *stringToInt64Value) Set(val string) error {\n\tss := strings.Split(val, \",\")\n\tout := make(map[string]int64, len(ss))\n\tfor _, pair := range ss {\n\t\tkv := strings.SplitN(pair, \"=\", 2)\n\t\tif len(kv) != 2 {\n\t\t\treturn fmt.Errorf(\"%s must be formatted as key=value\", pair)\n\t\t}\n\t\tvar err error\n\t\tout[kv[0]], err = strconv.ParseInt(kv[1], 10, 64)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif !s.changed {\n\t\t*s.value = out\n\t} else {\n\t\tfor k, v := range out {\n\t\t\t(*s.value)[k] = v\n\t\t}\n\t}\n\ts.changed = true\n\treturn nil\n}\n\nfunc (s *stringToInt64Value) Type() string {\n\treturn \"stringToInt64\"\n}\n\nfunc (s *stringToInt64Value) String() string {\n\tvar buf bytes.Buffer\n\ti := 0\n\tfor k, v := range *s.value {\n\t\tif i > 0 {\n\t\t\tbuf.WriteRune(',')\n\t\t}\n\t\tbuf.WriteString(k)\n\t\tbuf.WriteRune('=')\n\t\tbuf.WriteString(strconv.FormatInt(v, 10))\n\t\ti++\n\t}\n\treturn \"[\" + buf.String() + \"]\"\n}\n\nfunc stringToInt64Conv(val string) (interface{}, error) {\n\tval = strings.Trim(val, \"[]\")\n\t// An empty string would cause an empty map\n\tif len(val) == 0 {\n\t\treturn map[string]int64{}, nil\n\t}\n\tss := strings.Split(val, \",\")\n\tout := make(map[string]int64, len(ss))\n\tfor _, pair := range ss {\n\t\tkv := strings.SplitN(pair, \"=\", 2)\n\t\tif len(kv) != 2 {\n\t\t\treturn nil, fmt.Errorf(\"%s must be formatted as key=value\", pair)\n\t\t}\n\t\tvar err error\n\t\tout[kv[0]], err = strconv.ParseInt(kv[1], 10, 64)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn out, nil\n}\n\n// GetStringToInt64 return the map[string]int64 value of a flag with the given name\nfunc (f *FlagSet) GetStringToInt64(name string) (map[string]int64, error) {\n\tval, err := f.getFlagType(name, \"stringToInt64\", stringToInt64Conv)\n\tif err != nil {\n\t\treturn map[string]int64{}, err\n\t}\n\treturn val.(map[string]int64), nil\n}\n\n// StringToInt64Var defines a string flag with specified name, default value, and usage string.\n// The argument p point64s to a map[string]int64 variable in which to store the values of the multiple flags.\n// The value of each argument will not try to be separated by comma\nfunc (f *FlagSet) StringToInt64Var(p *map[string]int64, name string, value map[string]int64, usage string) {\n\tf.VarP(newStringToInt64Value(value, p), name, \"\", usage)\n}\n\n// StringToInt64VarP is like StringToInt64Var, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) StringToInt64VarP(p *map[string]int64, name, shorthand string, value map[string]int64, usage string) {\n\tf.VarP(newStringToInt64Value(value, p), name, shorthand, usage)\n}\n\n// StringToInt64Var defines a string flag with specified name, default value, and usage string.\n// The argument p point64s to a map[string]int64 variable in which to store the value of the flag.\n// The value of each argument will not try to be separated by comma\nfunc StringToInt64Var(p *map[string]int64, name string, value map[string]int64, usage string) {\n\tCommandLine.VarP(newStringToInt64Value(value, p), name, \"\", usage)\n}\n\n// StringToInt64VarP is like StringToInt64Var, but accepts a shorthand letter that can be used after a single dash.\nfunc StringToInt64VarP(p *map[string]int64, name, shorthand string, value map[string]int64, usage string) {\n\tCommandLine.VarP(newStringToInt64Value(value, p), name, shorthand, usage)\n}\n\n// StringToInt64 defines a string flag with specified name, default value, and usage string.\n// The return value is the address of a map[string]int64 variable that stores the value of the flag.\n// The value of each argument will not try to be separated by comma\nfunc (f *FlagSet) StringToInt64(name string, value map[string]int64, usage string) *map[string]int64 {\n\tp := map[string]int64{}\n\tf.StringToInt64VarP(&p, name, \"\", value, usage)\n\treturn &p\n}\n\n// StringToInt64P is like StringToInt64, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) StringToInt64P(name, shorthand string, value map[string]int64, usage string) *map[string]int64 {\n\tp := map[string]int64{}\n\tf.StringToInt64VarP(&p, name, shorthand, value, usage)\n\treturn &p\n}\n\n// StringToInt64 defines a string flag with specified name, default value, and usage string.\n// The return value is the address of a map[string]int64 variable that stores the value of the flag.\n// The value of each argument will not try to be separated by comma\nfunc StringToInt64(name string, value map[string]int64, usage string) *map[string]int64 {\n\treturn CommandLine.StringToInt64P(name, \"\", value, usage)\n}\n\n// StringToInt64P is like StringToInt64, but accepts a shorthand letter that can be used after a single dash.\nfunc StringToInt64P(name, shorthand string, value map[string]int64, usage string) *map[string]int64 {\n\treturn CommandLine.StringToInt64P(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/string_to_string.go",
    "content": "package pflag\n\nimport (\n\t\"bytes\"\n\t\"encoding/csv\"\n\t\"fmt\"\n\t\"strings\"\n)\n\n// -- stringToString Value\ntype stringToStringValue struct {\n\tvalue   *map[string]string\n\tchanged bool\n}\n\nfunc newStringToStringValue(val map[string]string, p *map[string]string) *stringToStringValue {\n\tssv := new(stringToStringValue)\n\tssv.value = p\n\t*ssv.value = val\n\treturn ssv\n}\n\n// Format: a=1,b=2\nfunc (s *stringToStringValue) Set(val string) error {\n\tvar ss []string\n\tn := strings.Count(val, \"=\")\n\tswitch n {\n\tcase 0:\n\t\treturn fmt.Errorf(\"%s must be formatted as key=value\", val)\n\tcase 1:\n\t\tss = append(ss, strings.Trim(val, `\"`))\n\tdefault:\n\t\tr := csv.NewReader(strings.NewReader(val))\n\t\tvar err error\n\t\tss, err = r.Read()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tout := make(map[string]string, len(ss))\n\tfor _, pair := range ss {\n\t\tkv := strings.SplitN(pair, \"=\", 2)\n\t\tif len(kv) != 2 {\n\t\t\treturn fmt.Errorf(\"%s must be formatted as key=value\", pair)\n\t\t}\n\t\tout[kv[0]] = kv[1]\n\t}\n\tif !s.changed {\n\t\t*s.value = out\n\t} else {\n\t\tfor k, v := range out {\n\t\t\t(*s.value)[k] = v\n\t\t}\n\t}\n\ts.changed = true\n\treturn nil\n}\n\nfunc (s *stringToStringValue) Type() string {\n\treturn \"stringToString\"\n}\n\nfunc (s *stringToStringValue) String() string {\n\trecords := make([]string, 0, len(*s.value)>>1)\n\tfor k, v := range *s.value {\n\t\trecords = append(records, k+\"=\"+v)\n\t}\n\n\tvar buf bytes.Buffer\n\tw := csv.NewWriter(&buf)\n\tif err := w.Write(records); err != nil {\n\t\tpanic(err)\n\t}\n\tw.Flush()\n\treturn \"[\" + strings.TrimSpace(buf.String()) + \"]\"\n}\n\nfunc stringToStringConv(val string) (interface{}, error) {\n\tval = strings.Trim(val, \"[]\")\n\t// An empty string would cause an empty map\n\tif len(val) == 0 {\n\t\treturn map[string]string{}, nil\n\t}\n\tr := csv.NewReader(strings.NewReader(val))\n\tss, err := r.Read()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tout := make(map[string]string, len(ss))\n\tfor _, pair := range ss {\n\t\tkv := strings.SplitN(pair, \"=\", 2)\n\t\tif len(kv) != 2 {\n\t\t\treturn nil, fmt.Errorf(\"%s must be formatted as key=value\", pair)\n\t\t}\n\t\tout[kv[0]] = kv[1]\n\t}\n\treturn out, nil\n}\n\n// GetStringToString return the map[string]string value of a flag with the given name\nfunc (f *FlagSet) GetStringToString(name string) (map[string]string, error) {\n\tval, err := f.getFlagType(name, \"stringToString\", stringToStringConv)\n\tif err != nil {\n\t\treturn map[string]string{}, err\n\t}\n\treturn val.(map[string]string), nil\n}\n\n// StringToStringVar defines a string flag with specified name, default value, and usage string.\n// The argument p points to a map[string]string variable in which to store the values of the multiple flags.\n// The value of each argument will not try to be separated by comma\nfunc (f *FlagSet) StringToStringVar(p *map[string]string, name string, value map[string]string, usage string) {\n\tf.VarP(newStringToStringValue(value, p), name, \"\", usage)\n}\n\n// StringToStringVarP is like StringToStringVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) StringToStringVarP(p *map[string]string, name, shorthand string, value map[string]string, usage string) {\n\tf.VarP(newStringToStringValue(value, p), name, shorthand, usage)\n}\n\n// StringToStringVar defines a string flag with specified name, default value, and usage string.\n// The argument p points to a map[string]string variable in which to store the value of the flag.\n// The value of each argument will not try to be separated by comma\nfunc StringToStringVar(p *map[string]string, name string, value map[string]string, usage string) {\n\tCommandLine.VarP(newStringToStringValue(value, p), name, \"\", usage)\n}\n\n// StringToStringVarP is like StringToStringVar, but accepts a shorthand letter that can be used after a single dash.\nfunc StringToStringVarP(p *map[string]string, name, shorthand string, value map[string]string, usage string) {\n\tCommandLine.VarP(newStringToStringValue(value, p), name, shorthand, usage)\n}\n\n// StringToString defines a string flag with specified name, default value, and usage string.\n// The return value is the address of a map[string]string variable that stores the value of the flag.\n// The value of each argument will not try to be separated by comma\nfunc (f *FlagSet) StringToString(name string, value map[string]string, usage string) *map[string]string {\n\tp := map[string]string{}\n\tf.StringToStringVarP(&p, name, \"\", value, usage)\n\treturn &p\n}\n\n// StringToStringP is like StringToString, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) StringToStringP(name, shorthand string, value map[string]string, usage string) *map[string]string {\n\tp := map[string]string{}\n\tf.StringToStringVarP(&p, name, shorthand, value, usage)\n\treturn &p\n}\n\n// StringToString defines a string flag with specified name, default value, and usage string.\n// The return value is the address of a map[string]string variable that stores the value of the flag.\n// The value of each argument will not try to be separated by comma\nfunc StringToString(name string, value map[string]string, usage string) *map[string]string {\n\treturn CommandLine.StringToStringP(name, \"\", value, usage)\n}\n\n// StringToStringP is like StringToString, but accepts a shorthand letter that can be used after a single dash.\nfunc StringToStringP(name, shorthand string, value map[string]string, usage string) *map[string]string {\n\treturn CommandLine.StringToStringP(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/uint.go",
    "content": "package pflag\n\nimport \"strconv\"\n\n// -- uint Value\ntype uintValue uint\n\nfunc newUintValue(val uint, p *uint) *uintValue {\n\t*p = val\n\treturn (*uintValue)(p)\n}\n\nfunc (i *uintValue) Set(s string) error {\n\tv, err := strconv.ParseUint(s, 0, 64)\n\t*i = uintValue(v)\n\treturn err\n}\n\nfunc (i *uintValue) Type() string {\n\treturn \"uint\"\n}\n\nfunc (i *uintValue) String() string { return strconv.FormatUint(uint64(*i), 10) }\n\nfunc uintConv(sval string) (interface{}, error) {\n\tv, err := strconv.ParseUint(sval, 0, 0)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn uint(v), nil\n}\n\n// GetUint return the uint value of a flag with the given name\nfunc (f *FlagSet) GetUint(name string) (uint, error) {\n\tval, err := f.getFlagType(name, \"uint\", uintConv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn val.(uint), nil\n}\n\n// UintVar defines a uint flag with specified name, default value, and usage string.\n// The argument p points to a uint variable in which to store the value of the flag.\nfunc (f *FlagSet) UintVar(p *uint, name string, value uint, usage string) {\n\tf.VarP(newUintValue(value, p), name, \"\", usage)\n}\n\n// UintVarP is like UintVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) UintVarP(p *uint, name, shorthand string, value uint, usage string) {\n\tf.VarP(newUintValue(value, p), name, shorthand, usage)\n}\n\n// UintVar defines a uint flag with specified name, default value, and usage string.\n// The argument p points to a uint  variable in which to store the value of the flag.\nfunc UintVar(p *uint, name string, value uint, usage string) {\n\tCommandLine.VarP(newUintValue(value, p), name, \"\", usage)\n}\n\n// UintVarP is like UintVar, but accepts a shorthand letter that can be used after a single dash.\nfunc UintVarP(p *uint, name, shorthand string, value uint, usage string) {\n\tCommandLine.VarP(newUintValue(value, p), name, shorthand, usage)\n}\n\n// Uint defines a uint flag with specified name, default value, and usage string.\n// The return value is the address of a uint  variable that stores the value of the flag.\nfunc (f *FlagSet) Uint(name string, value uint, usage string) *uint {\n\tp := new(uint)\n\tf.UintVarP(p, name, \"\", value, usage)\n\treturn p\n}\n\n// UintP is like Uint, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) UintP(name, shorthand string, value uint, usage string) *uint {\n\tp := new(uint)\n\tf.UintVarP(p, name, shorthand, value, usage)\n\treturn p\n}\n\n// Uint defines a uint flag with specified name, default value, and usage string.\n// The return value is the address of a uint  variable that stores the value of the flag.\nfunc Uint(name string, value uint, usage string) *uint {\n\treturn CommandLine.UintP(name, \"\", value, usage)\n}\n\n// UintP is like Uint, but accepts a shorthand letter that can be used after a single dash.\nfunc UintP(name, shorthand string, value uint, usage string) *uint {\n\treturn CommandLine.UintP(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/uint16.go",
    "content": "package pflag\n\nimport \"strconv\"\n\n// -- uint16 value\ntype uint16Value uint16\n\nfunc newUint16Value(val uint16, p *uint16) *uint16Value {\n\t*p = val\n\treturn (*uint16Value)(p)\n}\n\nfunc (i *uint16Value) Set(s string) error {\n\tv, err := strconv.ParseUint(s, 0, 16)\n\t*i = uint16Value(v)\n\treturn err\n}\n\nfunc (i *uint16Value) Type() string {\n\treturn \"uint16\"\n}\n\nfunc (i *uint16Value) String() string { return strconv.FormatUint(uint64(*i), 10) }\n\nfunc uint16Conv(sval string) (interface{}, error) {\n\tv, err := strconv.ParseUint(sval, 0, 16)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn uint16(v), nil\n}\n\n// GetUint16 return the uint16 value of a flag with the given name\nfunc (f *FlagSet) GetUint16(name string) (uint16, error) {\n\tval, err := f.getFlagType(name, \"uint16\", uint16Conv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn val.(uint16), nil\n}\n\n// Uint16Var defines a uint flag with specified name, default value, and usage string.\n// The argument p points to a uint variable in which to store the value of the flag.\nfunc (f *FlagSet) Uint16Var(p *uint16, name string, value uint16, usage string) {\n\tf.VarP(newUint16Value(value, p), name, \"\", usage)\n}\n\n// Uint16VarP is like Uint16Var, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Uint16VarP(p *uint16, name, shorthand string, value uint16, usage string) {\n\tf.VarP(newUint16Value(value, p), name, shorthand, usage)\n}\n\n// Uint16Var defines a uint flag with specified name, default value, and usage string.\n// The argument p points to a uint  variable in which to store the value of the flag.\nfunc Uint16Var(p *uint16, name string, value uint16, usage string) {\n\tCommandLine.VarP(newUint16Value(value, p), name, \"\", usage)\n}\n\n// Uint16VarP is like Uint16Var, but accepts a shorthand letter that can be used after a single dash.\nfunc Uint16VarP(p *uint16, name, shorthand string, value uint16, usage string) {\n\tCommandLine.VarP(newUint16Value(value, p), name, shorthand, usage)\n}\n\n// Uint16 defines a uint flag with specified name, default value, and usage string.\n// The return value is the address of a uint  variable that stores the value of the flag.\nfunc (f *FlagSet) Uint16(name string, value uint16, usage string) *uint16 {\n\tp := new(uint16)\n\tf.Uint16VarP(p, name, \"\", value, usage)\n\treturn p\n}\n\n// Uint16P is like Uint16, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Uint16P(name, shorthand string, value uint16, usage string) *uint16 {\n\tp := new(uint16)\n\tf.Uint16VarP(p, name, shorthand, value, usage)\n\treturn p\n}\n\n// Uint16 defines a uint flag with specified name, default value, and usage string.\n// The return value is the address of a uint  variable that stores the value of the flag.\nfunc Uint16(name string, value uint16, usage string) *uint16 {\n\treturn CommandLine.Uint16P(name, \"\", value, usage)\n}\n\n// Uint16P is like Uint16, but accepts a shorthand letter that can be used after a single dash.\nfunc Uint16P(name, shorthand string, value uint16, usage string) *uint16 {\n\treturn CommandLine.Uint16P(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/uint32.go",
    "content": "package pflag\n\nimport \"strconv\"\n\n// -- uint32 value\ntype uint32Value uint32\n\nfunc newUint32Value(val uint32, p *uint32) *uint32Value {\n\t*p = val\n\treturn (*uint32Value)(p)\n}\n\nfunc (i *uint32Value) Set(s string) error {\n\tv, err := strconv.ParseUint(s, 0, 32)\n\t*i = uint32Value(v)\n\treturn err\n}\n\nfunc (i *uint32Value) Type() string {\n\treturn \"uint32\"\n}\n\nfunc (i *uint32Value) String() string { return strconv.FormatUint(uint64(*i), 10) }\n\nfunc uint32Conv(sval string) (interface{}, error) {\n\tv, err := strconv.ParseUint(sval, 0, 32)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn uint32(v), nil\n}\n\n// GetUint32 return the uint32 value of a flag with the given name\nfunc (f *FlagSet) GetUint32(name string) (uint32, error) {\n\tval, err := f.getFlagType(name, \"uint32\", uint32Conv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn val.(uint32), nil\n}\n\n// Uint32Var defines a uint32 flag with specified name, default value, and usage string.\n// The argument p points to a uint32 variable in which to store the value of the flag.\nfunc (f *FlagSet) Uint32Var(p *uint32, name string, value uint32, usage string) {\n\tf.VarP(newUint32Value(value, p), name, \"\", usage)\n}\n\n// Uint32VarP is like Uint32Var, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Uint32VarP(p *uint32, name, shorthand string, value uint32, usage string) {\n\tf.VarP(newUint32Value(value, p), name, shorthand, usage)\n}\n\n// Uint32Var defines a uint32 flag with specified name, default value, and usage string.\n// The argument p points to a uint32  variable in which to store the value of the flag.\nfunc Uint32Var(p *uint32, name string, value uint32, usage string) {\n\tCommandLine.VarP(newUint32Value(value, p), name, \"\", usage)\n}\n\n// Uint32VarP is like Uint32Var, but accepts a shorthand letter that can be used after a single dash.\nfunc Uint32VarP(p *uint32, name, shorthand string, value uint32, usage string) {\n\tCommandLine.VarP(newUint32Value(value, p), name, shorthand, usage)\n}\n\n// Uint32 defines a uint32 flag with specified name, default value, and usage string.\n// The return value is the address of a uint32  variable that stores the value of the flag.\nfunc (f *FlagSet) Uint32(name string, value uint32, usage string) *uint32 {\n\tp := new(uint32)\n\tf.Uint32VarP(p, name, \"\", value, usage)\n\treturn p\n}\n\n// Uint32P is like Uint32, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Uint32P(name, shorthand string, value uint32, usage string) *uint32 {\n\tp := new(uint32)\n\tf.Uint32VarP(p, name, shorthand, value, usage)\n\treturn p\n}\n\n// Uint32 defines a uint32 flag with specified name, default value, and usage string.\n// The return value is the address of a uint32  variable that stores the value of the flag.\nfunc Uint32(name string, value uint32, usage string) *uint32 {\n\treturn CommandLine.Uint32P(name, \"\", value, usage)\n}\n\n// Uint32P is like Uint32, but accepts a shorthand letter that can be used after a single dash.\nfunc Uint32P(name, shorthand string, value uint32, usage string) *uint32 {\n\treturn CommandLine.Uint32P(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/uint64.go",
    "content": "package pflag\n\nimport \"strconv\"\n\n// -- uint64 Value\ntype uint64Value uint64\n\nfunc newUint64Value(val uint64, p *uint64) *uint64Value {\n\t*p = val\n\treturn (*uint64Value)(p)\n}\n\nfunc (i *uint64Value) Set(s string) error {\n\tv, err := strconv.ParseUint(s, 0, 64)\n\t*i = uint64Value(v)\n\treturn err\n}\n\nfunc (i *uint64Value) Type() string {\n\treturn \"uint64\"\n}\n\nfunc (i *uint64Value) String() string { return strconv.FormatUint(uint64(*i), 10) }\n\nfunc uint64Conv(sval string) (interface{}, error) {\n\tv, err := strconv.ParseUint(sval, 0, 64)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn uint64(v), nil\n}\n\n// GetUint64 return the uint64 value of a flag with the given name\nfunc (f *FlagSet) GetUint64(name string) (uint64, error) {\n\tval, err := f.getFlagType(name, \"uint64\", uint64Conv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn val.(uint64), nil\n}\n\n// Uint64Var defines a uint64 flag with specified name, default value, and usage string.\n// The argument p points to a uint64 variable in which to store the value of the flag.\nfunc (f *FlagSet) Uint64Var(p *uint64, name string, value uint64, usage string) {\n\tf.VarP(newUint64Value(value, p), name, \"\", usage)\n}\n\n// Uint64VarP is like Uint64Var, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Uint64VarP(p *uint64, name, shorthand string, value uint64, usage string) {\n\tf.VarP(newUint64Value(value, p), name, shorthand, usage)\n}\n\n// Uint64Var defines a uint64 flag with specified name, default value, and usage string.\n// The argument p points to a uint64 variable in which to store the value of the flag.\nfunc Uint64Var(p *uint64, name string, value uint64, usage string) {\n\tCommandLine.VarP(newUint64Value(value, p), name, \"\", usage)\n}\n\n// Uint64VarP is like Uint64Var, but accepts a shorthand letter that can be used after a single dash.\nfunc Uint64VarP(p *uint64, name, shorthand string, value uint64, usage string) {\n\tCommandLine.VarP(newUint64Value(value, p), name, shorthand, usage)\n}\n\n// Uint64 defines a uint64 flag with specified name, default value, and usage string.\n// The return value is the address of a uint64 variable that stores the value of the flag.\nfunc (f *FlagSet) Uint64(name string, value uint64, usage string) *uint64 {\n\tp := new(uint64)\n\tf.Uint64VarP(p, name, \"\", value, usage)\n\treturn p\n}\n\n// Uint64P is like Uint64, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Uint64P(name, shorthand string, value uint64, usage string) *uint64 {\n\tp := new(uint64)\n\tf.Uint64VarP(p, name, shorthand, value, usage)\n\treturn p\n}\n\n// Uint64 defines a uint64 flag with specified name, default value, and usage string.\n// The return value is the address of a uint64 variable that stores the value of the flag.\nfunc Uint64(name string, value uint64, usage string) *uint64 {\n\treturn CommandLine.Uint64P(name, \"\", value, usage)\n}\n\n// Uint64P is like Uint64, but accepts a shorthand letter that can be used after a single dash.\nfunc Uint64P(name, shorthand string, value uint64, usage string) *uint64 {\n\treturn CommandLine.Uint64P(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/uint8.go",
    "content": "package pflag\n\nimport \"strconv\"\n\n// -- uint8 Value\ntype uint8Value uint8\n\nfunc newUint8Value(val uint8, p *uint8) *uint8Value {\n\t*p = val\n\treturn (*uint8Value)(p)\n}\n\nfunc (i *uint8Value) Set(s string) error {\n\tv, err := strconv.ParseUint(s, 0, 8)\n\t*i = uint8Value(v)\n\treturn err\n}\n\nfunc (i *uint8Value) Type() string {\n\treturn \"uint8\"\n}\n\nfunc (i *uint8Value) String() string { return strconv.FormatUint(uint64(*i), 10) }\n\nfunc uint8Conv(sval string) (interface{}, error) {\n\tv, err := strconv.ParseUint(sval, 0, 8)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn uint8(v), nil\n}\n\n// GetUint8 return the uint8 value of a flag with the given name\nfunc (f *FlagSet) GetUint8(name string) (uint8, error) {\n\tval, err := f.getFlagType(name, \"uint8\", uint8Conv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn val.(uint8), nil\n}\n\n// Uint8Var defines a uint8 flag with specified name, default value, and usage string.\n// The argument p points to a uint8 variable in which to store the value of the flag.\nfunc (f *FlagSet) Uint8Var(p *uint8, name string, value uint8, usage string) {\n\tf.VarP(newUint8Value(value, p), name, \"\", usage)\n}\n\n// Uint8VarP is like Uint8Var, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Uint8VarP(p *uint8, name, shorthand string, value uint8, usage string) {\n\tf.VarP(newUint8Value(value, p), name, shorthand, usage)\n}\n\n// Uint8Var defines a uint8 flag with specified name, default value, and usage string.\n// The argument p points to a uint8 variable in which to store the value of the flag.\nfunc Uint8Var(p *uint8, name string, value uint8, usage string) {\n\tCommandLine.VarP(newUint8Value(value, p), name, \"\", usage)\n}\n\n// Uint8VarP is like Uint8Var, but accepts a shorthand letter that can be used after a single dash.\nfunc Uint8VarP(p *uint8, name, shorthand string, value uint8, usage string) {\n\tCommandLine.VarP(newUint8Value(value, p), name, shorthand, usage)\n}\n\n// Uint8 defines a uint8 flag with specified name, default value, and usage string.\n// The return value is the address of a uint8 variable that stores the value of the flag.\nfunc (f *FlagSet) Uint8(name string, value uint8, usage string) *uint8 {\n\tp := new(uint8)\n\tf.Uint8VarP(p, name, \"\", value, usage)\n\treturn p\n}\n\n// Uint8P is like Uint8, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) Uint8P(name, shorthand string, value uint8, usage string) *uint8 {\n\tp := new(uint8)\n\tf.Uint8VarP(p, name, shorthand, value, usage)\n\treturn p\n}\n\n// Uint8 defines a uint8 flag with specified name, default value, and usage string.\n// The return value is the address of a uint8 variable that stores the value of the flag.\nfunc Uint8(name string, value uint8, usage string) *uint8 {\n\treturn CommandLine.Uint8P(name, \"\", value, usage)\n}\n\n// Uint8P is like Uint8, but accepts a shorthand letter that can be used after a single dash.\nfunc Uint8P(name, shorthand string, value uint8, usage string) *uint8 {\n\treturn CommandLine.Uint8P(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/spf13/pflag/uint_slice.go",
    "content": "package pflag\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// -- uintSlice Value\ntype uintSliceValue struct {\n\tvalue   *[]uint\n\tchanged bool\n}\n\nfunc newUintSliceValue(val []uint, p *[]uint) *uintSliceValue {\n\tuisv := new(uintSliceValue)\n\tuisv.value = p\n\t*uisv.value = val\n\treturn uisv\n}\n\nfunc (s *uintSliceValue) Set(val string) error {\n\tss := strings.Split(val, \",\")\n\tout := make([]uint, len(ss))\n\tfor i, d := range ss {\n\t\tu, err := strconv.ParseUint(d, 10, 0)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tout[i] = uint(u)\n\t}\n\tif !s.changed {\n\t\t*s.value = out\n\t} else {\n\t\t*s.value = append(*s.value, out...)\n\t}\n\ts.changed = true\n\treturn nil\n}\n\nfunc (s *uintSliceValue) Type() string {\n\treturn \"uintSlice\"\n}\n\nfunc (s *uintSliceValue) String() string {\n\tout := make([]string, len(*s.value))\n\tfor i, d := range *s.value {\n\t\tout[i] = fmt.Sprintf(\"%d\", d)\n\t}\n\treturn \"[\" + strings.Join(out, \",\") + \"]\"\n}\n\nfunc (s *uintSliceValue) fromString(val string) (uint, error) {\n\tt, err := strconv.ParseUint(val, 10, 0)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\treturn uint(t), nil\n}\n\nfunc (s *uintSliceValue) toString(val uint) string {\n\treturn fmt.Sprintf(\"%d\", val)\n}\n\nfunc (s *uintSliceValue) Append(val string) error {\n\ti, err := s.fromString(val)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*s.value = append(*s.value, i)\n\treturn nil\n}\n\nfunc (s *uintSliceValue) Replace(val []string) error {\n\tout := make([]uint, len(val))\n\tfor i, d := range val {\n\t\tvar err error\n\t\tout[i], err = s.fromString(d)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\t*s.value = out\n\treturn nil\n}\n\nfunc (s *uintSliceValue) GetSlice() []string {\n\tout := make([]string, len(*s.value))\n\tfor i, d := range *s.value {\n\t\tout[i] = s.toString(d)\n\t}\n\treturn out\n}\n\nfunc uintSliceConv(val string) (interface{}, error) {\n\tval = strings.Trim(val, \"[]\")\n\t// Empty string would cause a slice with one (empty) entry\n\tif len(val) == 0 {\n\t\treturn []uint{}, nil\n\t}\n\tss := strings.Split(val, \",\")\n\tout := make([]uint, len(ss))\n\tfor i, d := range ss {\n\t\tu, err := strconv.ParseUint(d, 10, 0)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tout[i] = uint(u)\n\t}\n\treturn out, nil\n}\n\n// GetUintSlice returns the []uint value of a flag with the given name.\nfunc (f *FlagSet) GetUintSlice(name string) ([]uint, error) {\n\tval, err := f.getFlagType(name, \"uintSlice\", uintSliceConv)\n\tif err != nil {\n\t\treturn []uint{}, err\n\t}\n\treturn val.([]uint), nil\n}\n\n// UintSliceVar defines a uintSlice flag with specified name, default value, and usage string.\n// The argument p points to a []uint variable in which to store the value of the flag.\nfunc (f *FlagSet) UintSliceVar(p *[]uint, name string, value []uint, usage string) {\n\tf.VarP(newUintSliceValue(value, p), name, \"\", usage)\n}\n\n// UintSliceVarP is like UintSliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) UintSliceVarP(p *[]uint, name, shorthand string, value []uint, usage string) {\n\tf.VarP(newUintSliceValue(value, p), name, shorthand, usage)\n}\n\n// UintSliceVar defines a uint[] flag with specified name, default value, and usage string.\n// The argument p points to a uint[] variable in which to store the value of the flag.\nfunc UintSliceVar(p *[]uint, name string, value []uint, usage string) {\n\tCommandLine.VarP(newUintSliceValue(value, p), name, \"\", usage)\n}\n\n// UintSliceVarP is like the UintSliceVar, but accepts a shorthand letter that can be used after a single dash.\nfunc UintSliceVarP(p *[]uint, name, shorthand string, value []uint, usage string) {\n\tCommandLine.VarP(newUintSliceValue(value, p), name, shorthand, usage)\n}\n\n// UintSlice defines a []uint flag with specified name, default value, and usage string.\n// The return value is the address of a []uint variable that stores the value of the flag.\nfunc (f *FlagSet) UintSlice(name string, value []uint, usage string) *[]uint {\n\tp := []uint{}\n\tf.UintSliceVarP(&p, name, \"\", value, usage)\n\treturn &p\n}\n\n// UintSliceP is like UintSlice, but accepts a shorthand letter that can be used after a single dash.\nfunc (f *FlagSet) UintSliceP(name, shorthand string, value []uint, usage string) *[]uint {\n\tp := []uint{}\n\tf.UintSliceVarP(&p, name, shorthand, value, usage)\n\treturn &p\n}\n\n// UintSlice defines a []uint flag with specified name, default value, and usage string.\n// The return value is the address of a []uint variable that stores the value of the flag.\nfunc UintSlice(name string, value []uint, usage string) *[]uint {\n\treturn CommandLine.UintSliceP(name, \"\", value, usage)\n}\n\n// UintSliceP is like UintSlice, but accepts a shorthand letter that can be used after a single dash.\nfunc UintSliceP(name, shorthand string, value []uint, usage string) *[]uint {\n\treturn CommandLine.UintSliceP(name, shorthand, value, usage)\n}\n"
  },
  {
    "path": "vendor/github.com/x448/float16/.travis.yml",
    "content": "language: go\n\ngo:\n  - 1.11.x\n\nenv:\n  - GO111MODULE=on \n  \nscript:\n  - go test -short -coverprofile=coverage.txt -covermode=count ./...\n\nafter_success:\n  - bash <(curl -s https://codecov.io/bash)  \n"
  },
  {
    "path": "vendor/github.com/x448/float16/LICENSE",
    "content": "MIT License\n\nCopyright (c) 2019 Montgomery Edwards⁴⁴⁸ and Faye Amacker\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n"
  },
  {
    "path": "vendor/github.com/x448/float16/README.md",
    "content": "# Float16 (Binary16) in Go/Golang\n[![Build Status](https://travis-ci.org/x448/float16.svg?branch=master)](https://travis-ci.org/x448/float16)\n[![codecov](https://codecov.io/gh/x448/float16/branch/master/graph/badge.svg?v=4)](https://codecov.io/gh/x448/float16)\n[![Go Report Card](https://goreportcard.com/badge/github.com/x448/float16)](https://goreportcard.com/report/github.com/x448/float16)\n[![Release](https://img.shields.io/github/release/x448/float16.svg?style=flat-square)](https://github.com/x448/float16/releases)\n[![License](http://img.shields.io/badge/license-mit-blue.svg?style=flat-square)](https://raw.githubusercontent.com/x448/float16/master/LICENSE)\n\n`float16` package provides [IEEE 754 half-precision floating-point format (binary16)](https://en.wikipedia.org/wiki/Half-precision_floating-point_format) with IEEE 754 default rounding for conversions. IEEE 754-2008 refers to this 16-bit floating-point format as binary16.\n\nIEEE 754 default rounding (\"Round-to-Nearest RoundTiesToEven\") is considered the most accurate and statistically unbiased estimate of the true result.\n\nAll possible 4+ billion floating-point conversions with this library are verified to be correct.\n\nLowercase \"float16\" refers to IEEE 754 binary16. And capitalized \"Float16\" refers to exported Go data type provided by this library.\n\n## Features\nCurrent features include:\n\n* float16 to float32 conversions use lossless conversion.\n* float32 to float16 conversions use IEEE 754-2008 \"Round-to-Nearest RoundTiesToEven\".\n* conversions using pure Go take about 2.65 ns/op on a desktop amd64.\n* unit tests provide 100% code coverage and check all possible 4+ billion conversions.\n* other functions include: IsInf(), IsNaN(), IsNormal(), PrecisionFromfloat32(), String(), etc.\n* all functions in this library use zero allocs except String().\n\n## Status\nThis library is used by [fxamacker/cbor](https://github.com/fxamacker/cbor) and is ready for production use on supported platforms. The version number < 1.0 indicates more functions and options are planned but not yet published.\n\nCurrent status:\n\n* core API is done and breaking API changes are unlikely.\n* 100% of unit tests pass:\n  * short mode (`go test -short`) tests around 65765 conversions in 0.005s.  \n  * normal mode (`go test`) tests all possible 4+ billion conversions in about 95s.  \n* 100% code coverage with both short mode and normal mode.  \n* tested on amd64 but it should work on all little-endian platforms supported by Go.\n \nRoadmap:\n\n* add functions for fast batch conversions leveraging SIMD when supported by hardware.\n* speed up unit test when verifying all possible 4+ billion conversions.\n* test on additional platforms.\n \n## Float16 to Float32 Conversion\nConversions from float16 to float32 are lossless conversions.  All 65536 possible float16 to float32 conversions (in pure Go) are confirmed to be correct.  \n\nUnit tests take a fraction of a second to check all 65536 expected values for float16 to float32 conversions.\n\n## Float32 to Float16 Conversion\nConversions from float32 to float16 use IEEE 754 default rounding (\"Round-to-Nearest RoundTiesToEven\").  All 4294967296 possible float32 to float16 conversions (in pure Go) are confirmed to be correct.  \n\nUnit tests in normal mode take about 1-2 minutes to check all 4+ billion float32 input values and results for Fromfloat32(), FromNaN32ps(), and PrecisionFromfloat32(). \n\nUnit tests in short mode use a small subset (around 229 float32 inputs) and finish in under 0.01 second while still reaching 100% code coverage.\n\n## Usage\nInstall with `go get github.com/x448/float16`.\n```\n// Convert float32 to float16\npi := float32(math.Pi)\npi16 := float16.Fromfloat32(pi)\n\n// Convert float16 to float32\npi32 := pi16.Float32()\n\n// PrecisionFromfloat32() is faster than the overhead of calling a function.\n// This example only converts if there's no data loss and input is not a subnormal.\nif float16.PrecisionFromfloat32(pi) == float16.PrecisionExact {\n    pi16 := float16.Fromfloat32(pi)\n}\n```\n\n## Float16 Type and API\nFloat16 (capitalized) is a Go type with uint16 as the underlying state.  There are 6 exported functions and 9 exported methods.\n```\npackage float16 // import \"github.com/x448/float16\"\n\n// Exported types and consts\ntype Float16 uint16\nconst ErrInvalidNaNValue = float16Error(\"float16: invalid NaN value, expected IEEE 754 NaN\")\n\n// Exported functions\nFromfloat32(f32 float32) Float16   // Float16 number converted from f32 using IEEE 754 default rounding\n                                      with identical results to AMD and Intel F16C hardware. NaN inputs \n                                      are converted with quiet bit always set on, to be like F16C.\n\nFromNaN32ps(nan float32) (Float16, error)   // Float16 NaN without modifying quiet bit.\n                                            // The \"ps\" suffix means \"preserve signaling\".\n                                            // Returns sNaN and ErrInvalidNaNValue if nan isn't a NaN.\n                                 \nFrombits(b16 uint16) Float16       // Float16 number corresponding to b16 (IEEE 754 binary16 rep.)\nNaN() Float16                      // Float16 of IEEE 754 binary16 not-a-number\nInf(sign int) Float16              // Float16 of IEEE 754 binary16 infinity according to sign\n\nPrecisionFromfloat32(f32 float32) Precision  // quickly indicates exact, ..., overflow, underflow\n                                             // (inline and < 1 ns/op)\n// Exported methods\n(f Float16) Float32() float32      // float32 number converted from f16 using lossless conversion\n(f Float16) Bits() uint16          // the IEEE 754 binary16 representation of f\n(f Float16) IsNaN() bool           // true if f is not-a-number (NaN)\n(f Float16) IsQuietNaN() bool      // true if f is a quiet not-a-number (NaN)\n(f Float16) IsInf(sign int) bool   // true if f is infinite based on sign (-1=NegInf, 0=any, 1=PosInf)\n(f Float16) IsFinite() bool        // true if f is not infinite or NaN\n(f Float16) IsNormal() bool        // true if f is not zero, infinite, subnormal, or NaN.\n(f Float16) Signbit() bool         // true if f is negative or negative zero\n(f Float16) String() string        // string representation of f to satisfy fmt.Stringer interface\n```\nSee [API](https://godoc.org/github.com/x448/float16) at godoc.org for more info.\n\n## Benchmarks\nConversions (in pure Go) are around 2.65 ns/op for float16 -> float32 and float32 -> float16 on amd64. Speeds can vary depending on input value.\n\n```\nAll functions have zero allocations except float16.String().\n\nFromFloat32pi-2  2.59ns ± 0%    // speed using Fromfloat32() to convert a float32 of math.Pi to Float16\nToFloat32pi-2    2.69ns ± 0%    // speed using Float32() to convert a float16 of math.Pi to float32\nFrombits-2       0.29ns ± 5%    // speed using Frombits() to cast a uint16 to Float16\n\nPrecisionFromFloat32-2  0.29ns ± 1%  // speed using PrecisionFromfloat32() to check for overflows, etc.\n```\n\n## System Requirements\n* Tested on Go 1.11, 1.12, and 1.13 but it should also work with older versions.\n* Tested on amd64 but it should also work on all little-endian platforms supported by Go.\n\n## Special Thanks\nSpecial thanks to Kathryn Long (starkat99) for creating [half-rs](https://github.com/starkat99/half-rs), a very nice rust implementation of float16.\n\n## License\nCopyright (c) 2019 Montgomery Edwards⁴⁴⁸ and Faye Amacker\n\nLicensed under [MIT License](LICENSE)\n"
  },
  {
    "path": "vendor/github.com/x448/float16/float16.go",
    "content": "// Copyright 2019 Montgomery Edwards⁴⁴⁸ and Faye Amacker\n//\n// Special thanks to Kathryn Long for her Rust implementation\n// of float16 at github.com/starkat99/half-rs (MIT license)\n\npackage float16\n\nimport (\n\t\"math\"\n\t\"strconv\"\n)\n\n// Float16 represents IEEE 754 half-precision floating-point numbers (binary16).\ntype Float16 uint16\n\n// Precision indicates whether the conversion to Float16 is\n// exact, subnormal without dropped bits, inexact, underflow, or overflow.\ntype Precision int\n\nconst (\n\n\t// PrecisionExact is for non-subnormals that don't drop bits during conversion.\n\t// All of these can round-trip.  Should always convert to float16.\n\tPrecisionExact Precision = iota\n\n\t// PrecisionUnknown is for subnormals that don't drop bits during conversion but\n\t// not all of these can round-trip so precision is unknown without more effort.\n\t// Only 2046 of these can round-trip and the rest cannot round-trip.\n\tPrecisionUnknown\n\n\t// PrecisionInexact is for dropped significand bits and cannot round-trip.\n\t// Some of these are subnormals. Cannot round-trip float32->float16->float32.\n\tPrecisionInexact\n\n\t// PrecisionUnderflow is for Underflows. Cannot round-trip float32->float16->float32.\n\tPrecisionUnderflow\n\n\t// PrecisionOverflow is for Overflows. Cannot round-trip float32->float16->float32.\n\tPrecisionOverflow\n)\n\n// PrecisionFromfloat32 returns Precision without performing\n// the conversion.  Conversions from both Infinity and NaN\n// values will always report PrecisionExact even if NaN payload\n// or NaN-Quiet-Bit is lost. This function is kept simple to\n// allow inlining and run < 0.5 ns/op, to serve as a fast filter.\nfunc PrecisionFromfloat32(f32 float32) Precision {\n\tu32 := math.Float32bits(f32)\n\n\tif u32 == 0 || u32 == 0x80000000 {\n\t\t// +- zero will always be exact conversion\n\t\treturn PrecisionExact\n\t}\n\n\tconst COEFMASK uint32 = 0x7fffff // 23 least significant bits\n\tconst EXPSHIFT uint32 = 23\n\tconst EXPBIAS uint32 = 127\n\tconst EXPMASK uint32 = uint32(0xff) << EXPSHIFT\n\tconst DROPMASK uint32 = COEFMASK >> 10\n\n\texp := int32(((u32 & EXPMASK) >> EXPSHIFT) - EXPBIAS)\n\tcoef := u32 & COEFMASK\n\n\tif exp == 128 {\n\t\t// +- infinity or NaN\n\t\t// apps may want to do extra checks for NaN separately\n\t\treturn PrecisionExact\n\t}\n\n\t// https://en.wikipedia.org/wiki/Half-precision_floating-point_format says,\n\t// \"Decimals between 2^−24 (minimum positive subnormal) and 2^−14 (maximum subnormal): fixed interval 2^−24\"\n\tif exp < -24 {\n\t\treturn PrecisionUnderflow\n\t}\n\tif exp > 15 {\n\t\treturn PrecisionOverflow\n\t}\n\tif (coef & DROPMASK) != uint32(0) {\n\t\t// these include subnormals and non-subnormals that dropped bits\n\t\treturn PrecisionInexact\n\t}\n\n\tif exp < -14 {\n\t\t// Subnormals. Caller may want to test these further.\n\t\t// There are 2046 subnormals that can successfully round-trip f32->f16->f32\n\t\t// and 20 of those 2046 have 32-bit input coef == 0.\n\t\t// RFC 7049 and 7049bis Draft 12 don't precisely define \"preserves value\"\n\t\t// so some protocols and libraries will choose to handle subnormals differently\n\t\t// when deciding to encode them to CBOR float32 vs float16.\n\t\treturn PrecisionUnknown\n\t}\n\n\treturn PrecisionExact\n}\n\n// Frombits returns the float16 number corresponding to the IEEE 754 binary16\n// representation u16, with the sign bit of u16 and the result in the same bit\n// position. Frombits(Bits(x)) == x.\nfunc Frombits(u16 uint16) Float16 {\n\treturn Float16(u16)\n}\n\n// Fromfloat32 returns a Float16 value converted from f32. Conversion uses\n// IEEE default rounding (nearest int, with ties to even).\nfunc Fromfloat32(f32 float32) Float16 {\n\treturn Float16(f32bitsToF16bits(math.Float32bits(f32)))\n}\n\n// ErrInvalidNaNValue indicates a NaN was not received.\nconst ErrInvalidNaNValue = float16Error(\"float16: invalid NaN value, expected IEEE 754 NaN\")\n\ntype float16Error string\n\nfunc (e float16Error) Error() string { return string(e) }\n\n// FromNaN32ps converts nan to IEEE binary16 NaN while preserving both\n// signaling and payload. Unlike Fromfloat32(), which can only return\n// qNaN because it sets quiet bit = 1, this can return both sNaN and qNaN.\n// If the result is infinity (sNaN with empty payload), then the\n// lowest bit of payload is set to make the result a NaN.\n// Returns ErrInvalidNaNValue and 0x7c01 (sNaN) if nan isn't IEEE 754 NaN.\n// This function was kept simple to be able to inline.\nfunc FromNaN32ps(nan float32) (Float16, error) {\n\tconst SNAN = Float16(uint16(0x7c01)) // signalling NaN\n\n\tu32 := math.Float32bits(nan)\n\tsign := u32 & 0x80000000\n\texp := u32 & 0x7f800000\n\tcoef := u32 & 0x007fffff\n\n\tif (exp != 0x7f800000) || (coef == 0) {\n\t\treturn SNAN, ErrInvalidNaNValue\n\t}\n\n\tu16 := uint16((sign >> 16) | uint32(0x7c00) | (coef >> 13))\n\n\tif (u16 & 0x03ff) == 0 {\n\t\t// result became infinity, make it NaN by setting lowest bit in payload\n\t\tu16 = u16 | 0x0001\n\t}\n\n\treturn Float16(u16), nil\n}\n\n// NaN returns a Float16 of IEEE 754 binary16 not-a-number (NaN).\n// Returned NaN value 0x7e01 has all exponent bits = 1 with the\n// first and last bits = 1 in the significand. This is consistent\n// with Go's 64-bit math.NaN(). Canonical CBOR in RFC 7049 uses 0x7e00.\nfunc NaN() Float16 {\n\treturn Float16(0x7e01)\n}\n\n// Inf returns a Float16 with an infinity value with the specified sign.\n// A sign >= returns positive infinity.\n// A sign < 0 returns negative infinity.\nfunc Inf(sign int) Float16 {\n\tif sign >= 0 {\n\t\treturn Float16(0x7c00)\n\t}\n\treturn Float16(0x8000 | 0x7c00)\n}\n\n// Float32 returns a float32 converted from f (Float16).\n// This is a lossless conversion.\nfunc (f Float16) Float32() float32 {\n\tu32 := f16bitsToF32bits(uint16(f))\n\treturn math.Float32frombits(u32)\n}\n\n// Bits returns the IEEE 754 binary16 representation of f, with the sign bit\n// of f and the result in the same bit position. Bits(Frombits(x)) == x.\nfunc (f Float16) Bits() uint16 {\n\treturn uint16(f)\n}\n\n// IsNaN reports whether f is an IEEE 754 binary16 “not-a-number” value.\nfunc (f Float16) IsNaN() bool {\n\treturn (f&0x7c00 == 0x7c00) && (f&0x03ff != 0)\n}\n\n// IsQuietNaN reports whether f is a quiet (non-signaling) IEEE 754 binary16\n// “not-a-number” value.\nfunc (f Float16) IsQuietNaN() bool {\n\treturn (f&0x7c00 == 0x7c00) && (f&0x03ff != 0) && (f&0x0200 != 0)\n}\n\n// IsInf reports whether f is an infinity (inf).\n// A sign > 0 reports whether f is positive inf.\n// A sign < 0 reports whether f is negative inf.\n// A sign == 0 reports whether f is either inf.\nfunc (f Float16) IsInf(sign int) bool {\n\treturn ((f == 0x7c00) && sign >= 0) ||\n\t\t(f == 0xfc00 && sign <= 0)\n}\n\n// IsFinite returns true if f is neither infinite nor NaN.\nfunc (f Float16) IsFinite() bool {\n\treturn (uint16(f) & uint16(0x7c00)) != uint16(0x7c00)\n}\n\n// IsNormal returns true if f is neither zero, infinite, subnormal, or NaN.\nfunc (f Float16) IsNormal() bool {\n\texp := uint16(f) & uint16(0x7c00)\n\treturn (exp != uint16(0x7c00)) && (exp != 0)\n}\n\n// Signbit reports whether f is negative or negative zero.\nfunc (f Float16) Signbit() bool {\n\treturn (uint16(f) & uint16(0x8000)) != 0\n}\n\n// String satisfies the fmt.Stringer interface.\nfunc (f Float16) String() string {\n\treturn strconv.FormatFloat(float64(f.Float32()), 'f', -1, 32)\n}\n\n// f16bitsToF32bits returns uint32 (float32 bits) converted from specified uint16.\nfunc f16bitsToF32bits(in uint16) uint32 {\n\t// All 65536 conversions with this were confirmed to be correct\n\t// by Montgomery Edwards⁴⁴⁸ (github.com/x448).\n\n\tsign := uint32(in&0x8000) << 16 // sign for 32-bit\n\texp := uint32(in&0x7c00) >> 10  // exponenent for 16-bit\n\tcoef := uint32(in&0x03ff) << 13 // significand for 32-bit\n\n\tif exp == 0x1f {\n\t\tif coef == 0 {\n\t\t\t// infinity\n\t\t\treturn sign | 0x7f800000 | coef\n\t\t}\n\t\t// NaN\n\t\treturn sign | 0x7fc00000 | coef\n\t}\n\n\tif exp == 0 {\n\t\tif coef == 0 {\n\t\t\t// zero\n\t\t\treturn sign\n\t\t}\n\n\t\t// normalize subnormal numbers\n\t\texp++\n\t\tfor coef&0x7f800000 == 0 {\n\t\t\tcoef <<= 1\n\t\t\texp--\n\t\t}\n\t\tcoef &= 0x007fffff\n\t}\n\n\treturn sign | ((exp + (0x7f - 0xf)) << 23) | coef\n}\n\n// f32bitsToF16bits returns uint16 (Float16 bits) converted from the specified float32.\n// Conversion rounds to nearest integer with ties to even.\nfunc f32bitsToF16bits(u32 uint32) uint16 {\n\t// Translated from Rust to Go by Montgomery Edwards⁴⁴⁸ (github.com/x448).\n\t// All 4294967296 conversions with this were confirmed to be correct by x448.\n\t// Original Rust implementation is by Kathryn Long (github.com/starkat99) with MIT license.\n\n\tsign := u32 & 0x80000000\n\texp := u32 & 0x7f800000\n\tcoef := u32 & 0x007fffff\n\n\tif exp == 0x7f800000 {\n\t\t// NaN or Infinity\n\t\tnanBit := uint32(0)\n\t\tif coef != 0 {\n\t\t\tnanBit = uint32(0x0200)\n\t\t}\n\t\treturn uint16((sign >> 16) | uint32(0x7c00) | nanBit | (coef >> 13))\n\t}\n\n\thalfSign := sign >> 16\n\n\tunbiasedExp := int32(exp>>23) - 127\n\thalfExp := unbiasedExp + 15\n\n\tif halfExp >= 0x1f {\n\t\treturn uint16(halfSign | uint32(0x7c00))\n\t}\n\n\tif halfExp <= 0 {\n\t\tif 14-halfExp > 24 {\n\t\t\treturn uint16(halfSign)\n\t\t}\n\t\tcoef := coef | uint32(0x00800000)\n\t\thalfCoef := coef >> uint32(14-halfExp)\n\t\troundBit := uint32(1) << uint32(13-halfExp)\n\t\tif (coef&roundBit) != 0 && (coef&(3*roundBit-1)) != 0 {\n\t\t\thalfCoef++\n\t\t}\n\t\treturn uint16(halfSign | halfCoef)\n\t}\n\n\tuHalfExp := uint32(halfExp) << 10\n\thalfCoef := coef >> 13\n\troundBit := uint32(0x00001000)\n\tif (coef&roundBit) != 0 && (coef&(3*roundBit-1)) != 0 {\n\t\treturn uint16((halfSign | uHalfExp | halfCoef) + 1)\n\t}\n\treturn uint16(halfSign | uHalfExp | halfCoef)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/LICENSE",
    "content": "Copyright 2009 The Go Authors.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google LLC nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/golang.org/x/net/PATENTS",
    "content": "Additional IP Rights Grant (Patents)\n\n\"This implementation\" means the copyrightable works distributed by\nGoogle as part of the Go project.\n\nGoogle hereby grants to You a perpetual, worldwide, non-exclusive,\nno-charge, royalty-free, irrevocable (except as stated in this section)\npatent license to make, have made, use, offer to sell, sell, import,\ntransfer and otherwise run, modify and propagate the contents of this\nimplementation of Go, where such license applies only to those patent\nclaims, both currently owned or controlled by Google and acquired in\nthe future, licensable by Google that are necessarily infringed by this\nimplementation of Go.  This grant does not include claims that would be\ninfringed only as a consequence of further modification of this\nimplementation.  If you or your agent or exclusive licensee institute or\norder or agree to the institution of patent litigation against any\nentity (including a cross-claim or counterclaim in a lawsuit) alleging\nthat this implementation of Go or any code incorporated within this\nimplementation of Go constitutes direct or contributory patent\ninfringement, or inducement of patent infringement, then any patent\nrights granted to you under this License for this implementation of Go\nshall terminate as of the date such litigation is filed.\n"
  },
  {
    "path": "vendor/golang.org/x/net/http/httpguts/guts.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package httpguts provides functions implementing various details\n// of the HTTP specification.\n//\n// This package is shared by the standard library (which vendors it)\n// and x/net/http2. It comes with no API stability promise.\npackage httpguts\n\nimport (\n\t\"net/textproto\"\n\t\"strings\"\n)\n\n// ValidTrailerHeader reports whether name is a valid header field name to appear\n// in trailers.\n// See RFC 7230, Section 4.1.2\nfunc ValidTrailerHeader(name string) bool {\n\tname = textproto.CanonicalMIMEHeaderKey(name)\n\tif strings.HasPrefix(name, \"If-\") || badTrailer[name] {\n\t\treturn false\n\t}\n\treturn true\n}\n\nvar badTrailer = map[string]bool{\n\t\"Authorization\":       true,\n\t\"Cache-Control\":       true,\n\t\"Connection\":          true,\n\t\"Content-Encoding\":    true,\n\t\"Content-Length\":      true,\n\t\"Content-Range\":       true,\n\t\"Content-Type\":        true,\n\t\"Expect\":              true,\n\t\"Host\":                true,\n\t\"Keep-Alive\":          true,\n\t\"Max-Forwards\":        true,\n\t\"Pragma\":              true,\n\t\"Proxy-Authenticate\":  true,\n\t\"Proxy-Authorization\": true,\n\t\"Proxy-Connection\":    true,\n\t\"Range\":               true,\n\t\"Realm\":               true,\n\t\"Te\":                  true,\n\t\"Trailer\":             true,\n\t\"Transfer-Encoding\":   true,\n\t\"Www-Authenticate\":    true,\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http/httpguts/httplex.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage httpguts\n\nimport (\n\t\"net\"\n\t\"strings\"\n\t\"unicode/utf8\"\n\n\t\"golang.org/x/net/idna\"\n)\n\nvar isTokenTable = [256]bool{\n\t'!':  true,\n\t'#':  true,\n\t'$':  true,\n\t'%':  true,\n\t'&':  true,\n\t'\\'': true,\n\t'*':  true,\n\t'+':  true,\n\t'-':  true,\n\t'.':  true,\n\t'0':  true,\n\t'1':  true,\n\t'2':  true,\n\t'3':  true,\n\t'4':  true,\n\t'5':  true,\n\t'6':  true,\n\t'7':  true,\n\t'8':  true,\n\t'9':  true,\n\t'A':  true,\n\t'B':  true,\n\t'C':  true,\n\t'D':  true,\n\t'E':  true,\n\t'F':  true,\n\t'G':  true,\n\t'H':  true,\n\t'I':  true,\n\t'J':  true,\n\t'K':  true,\n\t'L':  true,\n\t'M':  true,\n\t'N':  true,\n\t'O':  true,\n\t'P':  true,\n\t'Q':  true,\n\t'R':  true,\n\t'S':  true,\n\t'T':  true,\n\t'U':  true,\n\t'W':  true,\n\t'V':  true,\n\t'X':  true,\n\t'Y':  true,\n\t'Z':  true,\n\t'^':  true,\n\t'_':  true,\n\t'`':  true,\n\t'a':  true,\n\t'b':  true,\n\t'c':  true,\n\t'd':  true,\n\t'e':  true,\n\t'f':  true,\n\t'g':  true,\n\t'h':  true,\n\t'i':  true,\n\t'j':  true,\n\t'k':  true,\n\t'l':  true,\n\t'm':  true,\n\t'n':  true,\n\t'o':  true,\n\t'p':  true,\n\t'q':  true,\n\t'r':  true,\n\t's':  true,\n\t't':  true,\n\t'u':  true,\n\t'v':  true,\n\t'w':  true,\n\t'x':  true,\n\t'y':  true,\n\t'z':  true,\n\t'|':  true,\n\t'~':  true,\n}\n\nfunc IsTokenRune(r rune) bool {\n\treturn r < utf8.RuneSelf && isTokenTable[byte(r)]\n}\n\n// HeaderValuesContainsToken reports whether any string in values\n// contains the provided token, ASCII case-insensitively.\nfunc HeaderValuesContainsToken(values []string, token string) bool {\n\tfor _, v := range values {\n\t\tif headerValueContainsToken(v, token) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// isOWS reports whether b is an optional whitespace byte, as defined\n// by RFC 7230 section 3.2.3.\nfunc isOWS(b byte) bool { return b == ' ' || b == '\\t' }\n\n// trimOWS returns x with all optional whitespace removes from the\n// beginning and end.\nfunc trimOWS(x string) string {\n\t// TODO: consider using strings.Trim(x, \" \\t\") instead,\n\t// if and when it's fast enough. See issue 10292.\n\t// But this ASCII-only code will probably always beat UTF-8\n\t// aware code.\n\tfor len(x) > 0 && isOWS(x[0]) {\n\t\tx = x[1:]\n\t}\n\tfor len(x) > 0 && isOWS(x[len(x)-1]) {\n\t\tx = x[:len(x)-1]\n\t}\n\treturn x\n}\n\n// headerValueContainsToken reports whether v (assumed to be a\n// 0#element, in the ABNF extension described in RFC 7230 section 7)\n// contains token amongst its comma-separated tokens, ASCII\n// case-insensitively.\nfunc headerValueContainsToken(v string, token string) bool {\n\tfor comma := strings.IndexByte(v, ','); comma != -1; comma = strings.IndexByte(v, ',') {\n\t\tif tokenEqual(trimOWS(v[:comma]), token) {\n\t\t\treturn true\n\t\t}\n\t\tv = v[comma+1:]\n\t}\n\treturn tokenEqual(trimOWS(v), token)\n}\n\n// lowerASCII returns the ASCII lowercase version of b.\nfunc lowerASCII(b byte) byte {\n\tif 'A' <= b && b <= 'Z' {\n\t\treturn b + ('a' - 'A')\n\t}\n\treturn b\n}\n\n// tokenEqual reports whether t1 and t2 are equal, ASCII case-insensitively.\nfunc tokenEqual(t1, t2 string) bool {\n\tif len(t1) != len(t2) {\n\t\treturn false\n\t}\n\tfor i, b := range t1 {\n\t\tif b >= utf8.RuneSelf {\n\t\t\t// No UTF-8 or non-ASCII allowed in tokens.\n\t\t\treturn false\n\t\t}\n\t\tif lowerASCII(byte(b)) != lowerASCII(t2[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// isLWS reports whether b is linear white space, according\n// to http://www.w3.org/Protocols/rfc2616/rfc2616-sec2.html#sec2.2\n//\n//\tLWS            = [CRLF] 1*( SP | HT )\nfunc isLWS(b byte) bool { return b == ' ' || b == '\\t' }\n\n// isCTL reports whether b is a control byte, according\n// to http://www.w3.org/Protocols/rfc2616/rfc2616-sec2.html#sec2.2\n//\n//\tCTL            = <any US-ASCII control character\n//\t                 (octets 0 - 31) and DEL (127)>\nfunc isCTL(b byte) bool {\n\tconst del = 0x7f // a CTL\n\treturn b < ' ' || b == del\n}\n\n// ValidHeaderFieldName reports whether v is a valid HTTP/1.x header name.\n// HTTP/2 imposes the additional restriction that uppercase ASCII\n// letters are not allowed.\n//\n// RFC 7230 says:\n//\n//\theader-field   = field-name \":\" OWS field-value OWS\n//\tfield-name     = token\n//\ttoken          = 1*tchar\n//\ttchar = \"!\" / \"#\" / \"$\" / \"%\" / \"&\" / \"'\" / \"*\" / \"+\" / \"-\" / \".\" /\n//\t        \"^\" / \"_\" / \"`\" / \"|\" / \"~\" / DIGIT / ALPHA\nfunc ValidHeaderFieldName(v string) bool {\n\tif len(v) == 0 {\n\t\treturn false\n\t}\n\tfor i := 0; i < len(v); i++ {\n\t\tif !isTokenTable[v[i]] {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// ValidHostHeader reports whether h is a valid host header.\nfunc ValidHostHeader(h string) bool {\n\t// The latest spec is actually this:\n\t//\n\t// http://tools.ietf.org/html/rfc7230#section-5.4\n\t//     Host = uri-host [ \":\" port ]\n\t//\n\t// Where uri-host is:\n\t//     http://tools.ietf.org/html/rfc3986#section-3.2.2\n\t//\n\t// But we're going to be much more lenient for now and just\n\t// search for any byte that's not a valid byte in any of those\n\t// expressions.\n\tfor i := 0; i < len(h); i++ {\n\t\tif !validHostByte[h[i]] {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// See the validHostHeader comment.\nvar validHostByte = [256]bool{\n\t'0': true, '1': true, '2': true, '3': true, '4': true, '5': true, '6': true, '7': true,\n\t'8': true, '9': true,\n\n\t'a': true, 'b': true, 'c': true, 'd': true, 'e': true, 'f': true, 'g': true, 'h': true,\n\t'i': true, 'j': true, 'k': true, 'l': true, 'm': true, 'n': true, 'o': true, 'p': true,\n\t'q': true, 'r': true, 's': true, 't': true, 'u': true, 'v': true, 'w': true, 'x': true,\n\t'y': true, 'z': true,\n\n\t'A': true, 'B': true, 'C': true, 'D': true, 'E': true, 'F': true, 'G': true, 'H': true,\n\t'I': true, 'J': true, 'K': true, 'L': true, 'M': true, 'N': true, 'O': true, 'P': true,\n\t'Q': true, 'R': true, 'S': true, 'T': true, 'U': true, 'V': true, 'W': true, 'X': true,\n\t'Y': true, 'Z': true,\n\n\t'!':  true, // sub-delims\n\t'$':  true, // sub-delims\n\t'%':  true, // pct-encoded (and used in IPv6 zones)\n\t'&':  true, // sub-delims\n\t'(':  true, // sub-delims\n\t')':  true, // sub-delims\n\t'*':  true, // sub-delims\n\t'+':  true, // sub-delims\n\t',':  true, // sub-delims\n\t'-':  true, // unreserved\n\t'.':  true, // unreserved\n\t':':  true, // IPv6address + Host expression's optional port\n\t';':  true, // sub-delims\n\t'=':  true, // sub-delims\n\t'[':  true,\n\t'\\'': true, // sub-delims\n\t']':  true,\n\t'_':  true, // unreserved\n\t'~':  true, // unreserved\n}\n\n// ValidHeaderFieldValue reports whether v is a valid \"field-value\" according to\n// http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2 :\n//\n//\tmessage-header = field-name \":\" [ field-value ]\n//\tfield-value    = *( field-content | LWS )\n//\tfield-content  = <the OCTETs making up the field-value\n//\t                 and consisting of either *TEXT or combinations\n//\t                 of token, separators, and quoted-string>\n//\n// http://www.w3.org/Protocols/rfc2616/rfc2616-sec2.html#sec2.2 :\n//\n//\tTEXT           = <any OCTET except CTLs,\n//\t                  but including LWS>\n//\tLWS            = [CRLF] 1*( SP | HT )\n//\tCTL            = <any US-ASCII control character\n//\t                 (octets 0 - 31) and DEL (127)>\n//\n// RFC 7230 says:\n//\n//\tfield-value    = *( field-content / obs-fold )\n//\tobj-fold       =  N/A to http2, and deprecated\n//\tfield-content  = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n//\tfield-vchar    = VCHAR / obs-text\n//\tobs-text       = %x80-FF\n//\tVCHAR          = \"any visible [USASCII] character\"\n//\n// http2 further says: \"Similarly, HTTP/2 allows header field values\n// that are not valid. While most of the values that can be encoded\n// will not alter header field parsing, carriage return (CR, ASCII\n// 0xd), line feed (LF, ASCII 0xa), and the zero character (NUL, ASCII\n// 0x0) might be exploited by an attacker if they are translated\n// verbatim. Any request or response that contains a character not\n// permitted in a header field value MUST be treated as malformed\n// (Section 8.1.2.6). Valid characters are defined by the\n// field-content ABNF rule in Section 3.2 of [RFC7230].\"\n//\n// This function does not (yet?) properly handle the rejection of\n// strings that begin or end with SP or HTAB.\nfunc ValidHeaderFieldValue(v string) bool {\n\tfor i := 0; i < len(v); i++ {\n\t\tb := v[i]\n\t\tif isCTL(b) && !isLWS(b) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc isASCII(s string) bool {\n\tfor i := 0; i < len(s); i++ {\n\t\tif s[i] >= utf8.RuneSelf {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// PunycodeHostPort returns the IDNA Punycode version\n// of the provided \"host\" or \"host:port\" string.\nfunc PunycodeHostPort(v string) (string, error) {\n\tif isASCII(v) {\n\t\treturn v, nil\n\t}\n\n\thost, port, err := net.SplitHostPort(v)\n\tif err != nil {\n\t\t// The input 'v' argument was just a \"host\" argument,\n\t\t// without a port. This error should not be returned\n\t\t// to the caller.\n\t\thost = v\n\t\tport = \"\"\n\t}\n\thost, err = idna.ToASCII(host)\n\tif err != nil {\n\t\t// Non-UTF-8? Not representable in Punycode, in any\n\t\t// case.\n\t\treturn \"\", err\n\t}\n\tif port == \"\" {\n\t\treturn host, nil\n\t}\n\treturn net.JoinHostPort(host, port), nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/.gitignore",
    "content": "*~\nh2i/h2i\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/ascii.go",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage http2\n\nimport \"strings\"\n\n// The HTTP protocols are defined in terms of ASCII, not Unicode. This file\n// contains helper functions which may use Unicode-aware functions which would\n// otherwise be unsafe and could introduce vulnerabilities if used improperly.\n\n// asciiEqualFold is strings.EqualFold, ASCII only. It reports whether s and t\n// are equal, ASCII-case-insensitively.\nfunc asciiEqualFold(s, t string) bool {\n\tif len(s) != len(t) {\n\t\treturn false\n\t}\n\tfor i := 0; i < len(s); i++ {\n\t\tif lower(s[i]) != lower(t[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// lower returns the ASCII lowercase version of b.\nfunc lower(b byte) byte {\n\tif 'A' <= b && b <= 'Z' {\n\t\treturn b + ('a' - 'A')\n\t}\n\treturn b\n}\n\n// isASCIIPrint returns whether s is ASCII and printable according to\n// https://tools.ietf.org/html/rfc20#section-4.2.\nfunc isASCIIPrint(s string) bool {\n\tfor i := 0; i < len(s); i++ {\n\t\tif s[i] < ' ' || s[i] > '~' {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// asciiToLower returns the lowercase version of s if s is ASCII and printable,\n// and whether or not it was.\nfunc asciiToLower(s string) (lower string, ok bool) {\n\tif !isASCIIPrint(s) {\n\t\treturn \"\", false\n\t}\n\treturn strings.ToLower(s), true\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/ciphers.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage http2\n\n// A list of the possible cipher suite ids. Taken from\n// https://www.iana.org/assignments/tls-parameters/tls-parameters.txt\n\nconst (\n\tcipher_TLS_NULL_WITH_NULL_NULL               uint16 = 0x0000\n\tcipher_TLS_RSA_WITH_NULL_MD5                 uint16 = 0x0001\n\tcipher_TLS_RSA_WITH_NULL_SHA                 uint16 = 0x0002\n\tcipher_TLS_RSA_EXPORT_WITH_RC4_40_MD5        uint16 = 0x0003\n\tcipher_TLS_RSA_WITH_RC4_128_MD5              uint16 = 0x0004\n\tcipher_TLS_RSA_WITH_RC4_128_SHA              uint16 = 0x0005\n\tcipher_TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5    uint16 = 0x0006\n\tcipher_TLS_RSA_WITH_IDEA_CBC_SHA             uint16 = 0x0007\n\tcipher_TLS_RSA_EXPORT_WITH_DES40_CBC_SHA     uint16 = 0x0008\n\tcipher_TLS_RSA_WITH_DES_CBC_SHA              uint16 = 0x0009\n\tcipher_TLS_RSA_WITH_3DES_EDE_CBC_SHA         uint16 = 0x000A\n\tcipher_TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA  uint16 = 0x000B\n\tcipher_TLS_DH_DSS_WITH_DES_CBC_SHA           uint16 = 0x000C\n\tcipher_TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA      uint16 = 0x000D\n\tcipher_TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA  uint16 = 0x000E\n\tcipher_TLS_DH_RSA_WITH_DES_CBC_SHA           uint16 = 0x000F\n\tcipher_TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA      uint16 = 0x0010\n\tcipher_TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA uint16 = 0x0011\n\tcipher_TLS_DHE_DSS_WITH_DES_CBC_SHA          uint16 = 0x0012\n\tcipher_TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA     uint16 = 0x0013\n\tcipher_TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA uint16 = 0x0014\n\tcipher_TLS_DHE_RSA_WITH_DES_CBC_SHA          uint16 = 0x0015\n\tcipher_TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA     uint16 = 0x0016\n\tcipher_TLS_DH_anon_EXPORT_WITH_RC4_40_MD5    uint16 = 0x0017\n\tcipher_TLS_DH_anon_WITH_RC4_128_MD5          uint16 = 0x0018\n\tcipher_TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA uint16 = 0x0019\n\tcipher_TLS_DH_anon_WITH_DES_CBC_SHA          uint16 = 0x001A\n\tcipher_TLS_DH_anon_WITH_3DES_EDE_CBC_SHA     uint16 = 0x001B\n\t// Reserved uint16 =  0x001C-1D\n\tcipher_TLS_KRB5_WITH_DES_CBC_SHA             uint16 = 0x001E\n\tcipher_TLS_KRB5_WITH_3DES_EDE_CBC_SHA        uint16 = 0x001F\n\tcipher_TLS_KRB5_WITH_RC4_128_SHA             uint16 = 0x0020\n\tcipher_TLS_KRB5_WITH_IDEA_CBC_SHA            uint16 = 0x0021\n\tcipher_TLS_KRB5_WITH_DES_CBC_MD5             uint16 = 0x0022\n\tcipher_TLS_KRB5_WITH_3DES_EDE_CBC_MD5        uint16 = 0x0023\n\tcipher_TLS_KRB5_WITH_RC4_128_MD5             uint16 = 0x0024\n\tcipher_TLS_KRB5_WITH_IDEA_CBC_MD5            uint16 = 0x0025\n\tcipher_TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA   uint16 = 0x0026\n\tcipher_TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA   uint16 = 0x0027\n\tcipher_TLS_KRB5_EXPORT_WITH_RC4_40_SHA       uint16 = 0x0028\n\tcipher_TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5   uint16 = 0x0029\n\tcipher_TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5   uint16 = 0x002A\n\tcipher_TLS_KRB5_EXPORT_WITH_RC4_40_MD5       uint16 = 0x002B\n\tcipher_TLS_PSK_WITH_NULL_SHA                 uint16 = 0x002C\n\tcipher_TLS_DHE_PSK_WITH_NULL_SHA             uint16 = 0x002D\n\tcipher_TLS_RSA_PSK_WITH_NULL_SHA             uint16 = 0x002E\n\tcipher_TLS_RSA_WITH_AES_128_CBC_SHA          uint16 = 0x002F\n\tcipher_TLS_DH_DSS_WITH_AES_128_CBC_SHA       uint16 = 0x0030\n\tcipher_TLS_DH_RSA_WITH_AES_128_CBC_SHA       uint16 = 0x0031\n\tcipher_TLS_DHE_DSS_WITH_AES_128_CBC_SHA      uint16 = 0x0032\n\tcipher_TLS_DHE_RSA_WITH_AES_128_CBC_SHA      uint16 = 0x0033\n\tcipher_TLS_DH_anon_WITH_AES_128_CBC_SHA      uint16 = 0x0034\n\tcipher_TLS_RSA_WITH_AES_256_CBC_SHA          uint16 = 0x0035\n\tcipher_TLS_DH_DSS_WITH_AES_256_CBC_SHA       uint16 = 0x0036\n\tcipher_TLS_DH_RSA_WITH_AES_256_CBC_SHA       uint16 = 0x0037\n\tcipher_TLS_DHE_DSS_WITH_AES_256_CBC_SHA      uint16 = 0x0038\n\tcipher_TLS_DHE_RSA_WITH_AES_256_CBC_SHA      uint16 = 0x0039\n\tcipher_TLS_DH_anon_WITH_AES_256_CBC_SHA      uint16 = 0x003A\n\tcipher_TLS_RSA_WITH_NULL_SHA256              uint16 = 0x003B\n\tcipher_TLS_RSA_WITH_AES_128_CBC_SHA256       uint16 = 0x003C\n\tcipher_TLS_RSA_WITH_AES_256_CBC_SHA256       uint16 = 0x003D\n\tcipher_TLS_DH_DSS_WITH_AES_128_CBC_SHA256    uint16 = 0x003E\n\tcipher_TLS_DH_RSA_WITH_AES_128_CBC_SHA256    uint16 = 0x003F\n\tcipher_TLS_DHE_DSS_WITH_AES_128_CBC_SHA256   uint16 = 0x0040\n\tcipher_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA     uint16 = 0x0041\n\tcipher_TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA  uint16 = 0x0042\n\tcipher_TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA  uint16 = 0x0043\n\tcipher_TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA uint16 = 0x0044\n\tcipher_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA uint16 = 0x0045\n\tcipher_TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA uint16 = 0x0046\n\t// Reserved uint16 =  0x0047-4F\n\t// Reserved uint16 =  0x0050-58\n\t// Reserved uint16 =  0x0059-5C\n\t// Unassigned uint16 =  0x005D-5F\n\t// Reserved uint16 =  0x0060-66\n\tcipher_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 uint16 = 0x0067\n\tcipher_TLS_DH_DSS_WITH_AES_256_CBC_SHA256  uint16 = 0x0068\n\tcipher_TLS_DH_RSA_WITH_AES_256_CBC_SHA256  uint16 = 0x0069\n\tcipher_TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 uint16 = 0x006A\n\tcipher_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 uint16 = 0x006B\n\tcipher_TLS_DH_anon_WITH_AES_128_CBC_SHA256 uint16 = 0x006C\n\tcipher_TLS_DH_anon_WITH_AES_256_CBC_SHA256 uint16 = 0x006D\n\t// Unassigned uint16 =  0x006E-83\n\tcipher_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA        uint16 = 0x0084\n\tcipher_TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA     uint16 = 0x0085\n\tcipher_TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA     uint16 = 0x0086\n\tcipher_TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA    uint16 = 0x0087\n\tcipher_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA    uint16 = 0x0088\n\tcipher_TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA    uint16 = 0x0089\n\tcipher_TLS_PSK_WITH_RC4_128_SHA                 uint16 = 0x008A\n\tcipher_TLS_PSK_WITH_3DES_EDE_CBC_SHA            uint16 = 0x008B\n\tcipher_TLS_PSK_WITH_AES_128_CBC_SHA             uint16 = 0x008C\n\tcipher_TLS_PSK_WITH_AES_256_CBC_SHA             uint16 = 0x008D\n\tcipher_TLS_DHE_PSK_WITH_RC4_128_SHA             uint16 = 0x008E\n\tcipher_TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA        uint16 = 0x008F\n\tcipher_TLS_DHE_PSK_WITH_AES_128_CBC_SHA         uint16 = 0x0090\n\tcipher_TLS_DHE_PSK_WITH_AES_256_CBC_SHA         uint16 = 0x0091\n\tcipher_TLS_RSA_PSK_WITH_RC4_128_SHA             uint16 = 0x0092\n\tcipher_TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA        uint16 = 0x0093\n\tcipher_TLS_RSA_PSK_WITH_AES_128_CBC_SHA         uint16 = 0x0094\n\tcipher_TLS_RSA_PSK_WITH_AES_256_CBC_SHA         uint16 = 0x0095\n\tcipher_TLS_RSA_WITH_SEED_CBC_SHA                uint16 = 0x0096\n\tcipher_TLS_DH_DSS_WITH_SEED_CBC_SHA             uint16 = 0x0097\n\tcipher_TLS_DH_RSA_WITH_SEED_CBC_SHA             uint16 = 0x0098\n\tcipher_TLS_DHE_DSS_WITH_SEED_CBC_SHA            uint16 = 0x0099\n\tcipher_TLS_DHE_RSA_WITH_SEED_CBC_SHA            uint16 = 0x009A\n\tcipher_TLS_DH_anon_WITH_SEED_CBC_SHA            uint16 = 0x009B\n\tcipher_TLS_RSA_WITH_AES_128_GCM_SHA256          uint16 = 0x009C\n\tcipher_TLS_RSA_WITH_AES_256_GCM_SHA384          uint16 = 0x009D\n\tcipher_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256      uint16 = 0x009E\n\tcipher_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384      uint16 = 0x009F\n\tcipher_TLS_DH_RSA_WITH_AES_128_GCM_SHA256       uint16 = 0x00A0\n\tcipher_TLS_DH_RSA_WITH_AES_256_GCM_SHA384       uint16 = 0x00A1\n\tcipher_TLS_DHE_DSS_WITH_AES_128_GCM_SHA256      uint16 = 0x00A2\n\tcipher_TLS_DHE_DSS_WITH_AES_256_GCM_SHA384      uint16 = 0x00A3\n\tcipher_TLS_DH_DSS_WITH_AES_128_GCM_SHA256       uint16 = 0x00A4\n\tcipher_TLS_DH_DSS_WITH_AES_256_GCM_SHA384       uint16 = 0x00A5\n\tcipher_TLS_DH_anon_WITH_AES_128_GCM_SHA256      uint16 = 0x00A6\n\tcipher_TLS_DH_anon_WITH_AES_256_GCM_SHA384      uint16 = 0x00A7\n\tcipher_TLS_PSK_WITH_AES_128_GCM_SHA256          uint16 = 0x00A8\n\tcipher_TLS_PSK_WITH_AES_256_GCM_SHA384          uint16 = 0x00A9\n\tcipher_TLS_DHE_PSK_WITH_AES_128_GCM_SHA256      uint16 = 0x00AA\n\tcipher_TLS_DHE_PSK_WITH_AES_256_GCM_SHA384      uint16 = 0x00AB\n\tcipher_TLS_RSA_PSK_WITH_AES_128_GCM_SHA256      uint16 = 0x00AC\n\tcipher_TLS_RSA_PSK_WITH_AES_256_GCM_SHA384      uint16 = 0x00AD\n\tcipher_TLS_PSK_WITH_AES_128_CBC_SHA256          uint16 = 0x00AE\n\tcipher_TLS_PSK_WITH_AES_256_CBC_SHA384          uint16 = 0x00AF\n\tcipher_TLS_PSK_WITH_NULL_SHA256                 uint16 = 0x00B0\n\tcipher_TLS_PSK_WITH_NULL_SHA384                 uint16 = 0x00B1\n\tcipher_TLS_DHE_PSK_WITH_AES_128_CBC_SHA256      uint16 = 0x00B2\n\tcipher_TLS_DHE_PSK_WITH_AES_256_CBC_SHA384      uint16 = 0x00B3\n\tcipher_TLS_DHE_PSK_WITH_NULL_SHA256             uint16 = 0x00B4\n\tcipher_TLS_DHE_PSK_WITH_NULL_SHA384             uint16 = 0x00B5\n\tcipher_TLS_RSA_PSK_WITH_AES_128_CBC_SHA256      uint16 = 0x00B6\n\tcipher_TLS_RSA_PSK_WITH_AES_256_CBC_SHA384      uint16 = 0x00B7\n\tcipher_TLS_RSA_PSK_WITH_NULL_SHA256             uint16 = 0x00B8\n\tcipher_TLS_RSA_PSK_WITH_NULL_SHA384             uint16 = 0x00B9\n\tcipher_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256     uint16 = 0x00BA\n\tcipher_TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256  uint16 = 0x00BB\n\tcipher_TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256  uint16 = 0x00BC\n\tcipher_TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0x00BD\n\tcipher_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0x00BE\n\tcipher_TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0x00BF\n\tcipher_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256     uint16 = 0x00C0\n\tcipher_TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256  uint16 = 0x00C1\n\tcipher_TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256  uint16 = 0x00C2\n\tcipher_TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 uint16 = 0x00C3\n\tcipher_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 uint16 = 0x00C4\n\tcipher_TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256 uint16 = 0x00C5\n\t// Unassigned uint16 =  0x00C6-FE\n\tcipher_TLS_EMPTY_RENEGOTIATION_INFO_SCSV uint16 = 0x00FF\n\t// Unassigned uint16 =  0x01-55,*\n\tcipher_TLS_FALLBACK_SCSV uint16 = 0x5600\n\t// Unassigned                                   uint16 = 0x5601 - 0xC000\n\tcipher_TLS_ECDH_ECDSA_WITH_NULL_SHA                 uint16 = 0xC001\n\tcipher_TLS_ECDH_ECDSA_WITH_RC4_128_SHA              uint16 = 0xC002\n\tcipher_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA         uint16 = 0xC003\n\tcipher_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA          uint16 = 0xC004\n\tcipher_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA          uint16 = 0xC005\n\tcipher_TLS_ECDHE_ECDSA_WITH_NULL_SHA                uint16 = 0xC006\n\tcipher_TLS_ECDHE_ECDSA_WITH_RC4_128_SHA             uint16 = 0xC007\n\tcipher_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA        uint16 = 0xC008\n\tcipher_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA         uint16 = 0xC009\n\tcipher_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA         uint16 = 0xC00A\n\tcipher_TLS_ECDH_RSA_WITH_NULL_SHA                   uint16 = 0xC00B\n\tcipher_TLS_ECDH_RSA_WITH_RC4_128_SHA                uint16 = 0xC00C\n\tcipher_TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA           uint16 = 0xC00D\n\tcipher_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA            uint16 = 0xC00E\n\tcipher_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA            uint16 = 0xC00F\n\tcipher_TLS_ECDHE_RSA_WITH_NULL_SHA                  uint16 = 0xC010\n\tcipher_TLS_ECDHE_RSA_WITH_RC4_128_SHA               uint16 = 0xC011\n\tcipher_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA          uint16 = 0xC012\n\tcipher_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA           uint16 = 0xC013\n\tcipher_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA           uint16 = 0xC014\n\tcipher_TLS_ECDH_anon_WITH_NULL_SHA                  uint16 = 0xC015\n\tcipher_TLS_ECDH_anon_WITH_RC4_128_SHA               uint16 = 0xC016\n\tcipher_TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA          uint16 = 0xC017\n\tcipher_TLS_ECDH_anon_WITH_AES_128_CBC_SHA           uint16 = 0xC018\n\tcipher_TLS_ECDH_anon_WITH_AES_256_CBC_SHA           uint16 = 0xC019\n\tcipher_TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA            uint16 = 0xC01A\n\tcipher_TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA        uint16 = 0xC01B\n\tcipher_TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA        uint16 = 0xC01C\n\tcipher_TLS_SRP_SHA_WITH_AES_128_CBC_SHA             uint16 = 0xC01D\n\tcipher_TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA         uint16 = 0xC01E\n\tcipher_TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA         uint16 = 0xC01F\n\tcipher_TLS_SRP_SHA_WITH_AES_256_CBC_SHA             uint16 = 0xC020\n\tcipher_TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA         uint16 = 0xC021\n\tcipher_TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA         uint16 = 0xC022\n\tcipher_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256      uint16 = 0xC023\n\tcipher_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384      uint16 = 0xC024\n\tcipher_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256       uint16 = 0xC025\n\tcipher_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384       uint16 = 0xC026\n\tcipher_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256        uint16 = 0xC027\n\tcipher_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384        uint16 = 0xC028\n\tcipher_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256         uint16 = 0xC029\n\tcipher_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384         uint16 = 0xC02A\n\tcipher_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256      uint16 = 0xC02B\n\tcipher_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384      uint16 = 0xC02C\n\tcipher_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256       uint16 = 0xC02D\n\tcipher_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384       uint16 = 0xC02E\n\tcipher_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256        uint16 = 0xC02F\n\tcipher_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384        uint16 = 0xC030\n\tcipher_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256         uint16 = 0xC031\n\tcipher_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384         uint16 = 0xC032\n\tcipher_TLS_ECDHE_PSK_WITH_RC4_128_SHA               uint16 = 0xC033\n\tcipher_TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA          uint16 = 0xC034\n\tcipher_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA           uint16 = 0xC035\n\tcipher_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA           uint16 = 0xC036\n\tcipher_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256        uint16 = 0xC037\n\tcipher_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384        uint16 = 0xC038\n\tcipher_TLS_ECDHE_PSK_WITH_NULL_SHA                  uint16 = 0xC039\n\tcipher_TLS_ECDHE_PSK_WITH_NULL_SHA256               uint16 = 0xC03A\n\tcipher_TLS_ECDHE_PSK_WITH_NULL_SHA384               uint16 = 0xC03B\n\tcipher_TLS_RSA_WITH_ARIA_128_CBC_SHA256             uint16 = 0xC03C\n\tcipher_TLS_RSA_WITH_ARIA_256_CBC_SHA384             uint16 = 0xC03D\n\tcipher_TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256          uint16 = 0xC03E\n\tcipher_TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384          uint16 = 0xC03F\n\tcipher_TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256          uint16 = 0xC040\n\tcipher_TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384          uint16 = 0xC041\n\tcipher_TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256         uint16 = 0xC042\n\tcipher_TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384         uint16 = 0xC043\n\tcipher_TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256         uint16 = 0xC044\n\tcipher_TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384         uint16 = 0xC045\n\tcipher_TLS_DH_anon_WITH_ARIA_128_CBC_SHA256         uint16 = 0xC046\n\tcipher_TLS_DH_anon_WITH_ARIA_256_CBC_SHA384         uint16 = 0xC047\n\tcipher_TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256     uint16 = 0xC048\n\tcipher_TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384     uint16 = 0xC049\n\tcipher_TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256      uint16 = 0xC04A\n\tcipher_TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384      uint16 = 0xC04B\n\tcipher_TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256       uint16 = 0xC04C\n\tcipher_TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384       uint16 = 0xC04D\n\tcipher_TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256        uint16 = 0xC04E\n\tcipher_TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384        uint16 = 0xC04F\n\tcipher_TLS_RSA_WITH_ARIA_128_GCM_SHA256             uint16 = 0xC050\n\tcipher_TLS_RSA_WITH_ARIA_256_GCM_SHA384             uint16 = 0xC051\n\tcipher_TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256         uint16 = 0xC052\n\tcipher_TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384         uint16 = 0xC053\n\tcipher_TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256          uint16 = 0xC054\n\tcipher_TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384          uint16 = 0xC055\n\tcipher_TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256         uint16 = 0xC056\n\tcipher_TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384         uint16 = 0xC057\n\tcipher_TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256          uint16 = 0xC058\n\tcipher_TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384          uint16 = 0xC059\n\tcipher_TLS_DH_anon_WITH_ARIA_128_GCM_SHA256         uint16 = 0xC05A\n\tcipher_TLS_DH_anon_WITH_ARIA_256_GCM_SHA384         uint16 = 0xC05B\n\tcipher_TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256     uint16 = 0xC05C\n\tcipher_TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384     uint16 = 0xC05D\n\tcipher_TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256      uint16 = 0xC05E\n\tcipher_TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384      uint16 = 0xC05F\n\tcipher_TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256       uint16 = 0xC060\n\tcipher_TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384       uint16 = 0xC061\n\tcipher_TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256        uint16 = 0xC062\n\tcipher_TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384        uint16 = 0xC063\n\tcipher_TLS_PSK_WITH_ARIA_128_CBC_SHA256             uint16 = 0xC064\n\tcipher_TLS_PSK_WITH_ARIA_256_CBC_SHA384             uint16 = 0xC065\n\tcipher_TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256         uint16 = 0xC066\n\tcipher_TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384         uint16 = 0xC067\n\tcipher_TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256         uint16 = 0xC068\n\tcipher_TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384         uint16 = 0xC069\n\tcipher_TLS_PSK_WITH_ARIA_128_GCM_SHA256             uint16 = 0xC06A\n\tcipher_TLS_PSK_WITH_ARIA_256_GCM_SHA384             uint16 = 0xC06B\n\tcipher_TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256         uint16 = 0xC06C\n\tcipher_TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384         uint16 = 0xC06D\n\tcipher_TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256         uint16 = 0xC06E\n\tcipher_TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384         uint16 = 0xC06F\n\tcipher_TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256       uint16 = 0xC070\n\tcipher_TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384       uint16 = 0xC071\n\tcipher_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0xC072\n\tcipher_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 uint16 = 0xC073\n\tcipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256  uint16 = 0xC074\n\tcipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384  uint16 = 0xC075\n\tcipher_TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256   uint16 = 0xC076\n\tcipher_TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384   uint16 = 0xC077\n\tcipher_TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256    uint16 = 0xC078\n\tcipher_TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384    uint16 = 0xC079\n\tcipher_TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256         uint16 = 0xC07A\n\tcipher_TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384         uint16 = 0xC07B\n\tcipher_TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256     uint16 = 0xC07C\n\tcipher_TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384     uint16 = 0xC07D\n\tcipher_TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256      uint16 = 0xC07E\n\tcipher_TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384      uint16 = 0xC07F\n\tcipher_TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256     uint16 = 0xC080\n\tcipher_TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384     uint16 = 0xC081\n\tcipher_TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256      uint16 = 0xC082\n\tcipher_TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384      uint16 = 0xC083\n\tcipher_TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256     uint16 = 0xC084\n\tcipher_TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384     uint16 = 0xC085\n\tcipher_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 uint16 = 0xC086\n\tcipher_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 uint16 = 0xC087\n\tcipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256  uint16 = 0xC088\n\tcipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384  uint16 = 0xC089\n\tcipher_TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256   uint16 = 0xC08A\n\tcipher_TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384   uint16 = 0xC08B\n\tcipher_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256    uint16 = 0xC08C\n\tcipher_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384    uint16 = 0xC08D\n\tcipher_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256         uint16 = 0xC08E\n\tcipher_TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384         uint16 = 0xC08F\n\tcipher_TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256     uint16 = 0xC090\n\tcipher_TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384     uint16 = 0xC091\n\tcipher_TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256     uint16 = 0xC092\n\tcipher_TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384     uint16 = 0xC093\n\tcipher_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256         uint16 = 0xC094\n\tcipher_TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384         uint16 = 0xC095\n\tcipher_TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256     uint16 = 0xC096\n\tcipher_TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384     uint16 = 0xC097\n\tcipher_TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256     uint16 = 0xC098\n\tcipher_TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384     uint16 = 0xC099\n\tcipher_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256   uint16 = 0xC09A\n\tcipher_TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384   uint16 = 0xC09B\n\tcipher_TLS_RSA_WITH_AES_128_CCM                     uint16 = 0xC09C\n\tcipher_TLS_RSA_WITH_AES_256_CCM                     uint16 = 0xC09D\n\tcipher_TLS_DHE_RSA_WITH_AES_128_CCM                 uint16 = 0xC09E\n\tcipher_TLS_DHE_RSA_WITH_AES_256_CCM                 uint16 = 0xC09F\n\tcipher_TLS_RSA_WITH_AES_128_CCM_8                   uint16 = 0xC0A0\n\tcipher_TLS_RSA_WITH_AES_256_CCM_8                   uint16 = 0xC0A1\n\tcipher_TLS_DHE_RSA_WITH_AES_128_CCM_8               uint16 = 0xC0A2\n\tcipher_TLS_DHE_RSA_WITH_AES_256_CCM_8               uint16 = 0xC0A3\n\tcipher_TLS_PSK_WITH_AES_128_CCM                     uint16 = 0xC0A4\n\tcipher_TLS_PSK_WITH_AES_256_CCM                     uint16 = 0xC0A5\n\tcipher_TLS_DHE_PSK_WITH_AES_128_CCM                 uint16 = 0xC0A6\n\tcipher_TLS_DHE_PSK_WITH_AES_256_CCM                 uint16 = 0xC0A7\n\tcipher_TLS_PSK_WITH_AES_128_CCM_8                   uint16 = 0xC0A8\n\tcipher_TLS_PSK_WITH_AES_256_CCM_8                   uint16 = 0xC0A9\n\tcipher_TLS_PSK_DHE_WITH_AES_128_CCM_8               uint16 = 0xC0AA\n\tcipher_TLS_PSK_DHE_WITH_AES_256_CCM_8               uint16 = 0xC0AB\n\tcipher_TLS_ECDHE_ECDSA_WITH_AES_128_CCM             uint16 = 0xC0AC\n\tcipher_TLS_ECDHE_ECDSA_WITH_AES_256_CCM             uint16 = 0xC0AD\n\tcipher_TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8           uint16 = 0xC0AE\n\tcipher_TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8           uint16 = 0xC0AF\n\t// Unassigned uint16 =  0xC0B0-FF\n\t// Unassigned uint16 =  0xC1-CB,*\n\t// Unassigned uint16 =  0xCC00-A7\n\tcipher_TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256   uint16 = 0xCCA8\n\tcipher_TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 uint16 = 0xCCA9\n\tcipher_TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256     uint16 = 0xCCAA\n\tcipher_TLS_PSK_WITH_CHACHA20_POLY1305_SHA256         uint16 = 0xCCAB\n\tcipher_TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256   uint16 = 0xCCAC\n\tcipher_TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256     uint16 = 0xCCAD\n\tcipher_TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256     uint16 = 0xCCAE\n)\n\n// isBadCipher reports whether the cipher is blacklisted by the HTTP/2 spec.\n// References:\n// https://tools.ietf.org/html/rfc7540#appendix-A\n// Reject cipher suites from Appendix A.\n// \"This list includes those cipher suites that do not\n// offer an ephemeral key exchange and those that are\n// based on the TLS null, stream or block cipher type\"\nfunc isBadCipher(cipher uint16) bool {\n\tswitch cipher {\n\tcase cipher_TLS_NULL_WITH_NULL_NULL,\n\t\tcipher_TLS_RSA_WITH_NULL_MD5,\n\t\tcipher_TLS_RSA_WITH_NULL_SHA,\n\t\tcipher_TLS_RSA_EXPORT_WITH_RC4_40_MD5,\n\t\tcipher_TLS_RSA_WITH_RC4_128_MD5,\n\t\tcipher_TLS_RSA_WITH_RC4_128_SHA,\n\t\tcipher_TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5,\n\t\tcipher_TLS_RSA_WITH_IDEA_CBC_SHA,\n\t\tcipher_TLS_RSA_EXPORT_WITH_DES40_CBC_SHA,\n\t\tcipher_TLS_RSA_WITH_DES_CBC_SHA,\n\t\tcipher_TLS_RSA_WITH_3DES_EDE_CBC_SHA,\n\t\tcipher_TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA,\n\t\tcipher_TLS_DH_DSS_WITH_DES_CBC_SHA,\n\t\tcipher_TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA,\n\t\tcipher_TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA,\n\t\tcipher_TLS_DH_RSA_WITH_DES_CBC_SHA,\n\t\tcipher_TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA,\n\t\tcipher_TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA,\n\t\tcipher_TLS_DHE_DSS_WITH_DES_CBC_SHA,\n\t\tcipher_TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA,\n\t\tcipher_TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA,\n\t\tcipher_TLS_DHE_RSA_WITH_DES_CBC_SHA,\n\t\tcipher_TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA,\n\t\tcipher_TLS_DH_anon_EXPORT_WITH_RC4_40_MD5,\n\t\tcipher_TLS_DH_anon_WITH_RC4_128_MD5,\n\t\tcipher_TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA,\n\t\tcipher_TLS_DH_anon_WITH_DES_CBC_SHA,\n\t\tcipher_TLS_DH_anon_WITH_3DES_EDE_CBC_SHA,\n\t\tcipher_TLS_KRB5_WITH_DES_CBC_SHA,\n\t\tcipher_TLS_KRB5_WITH_3DES_EDE_CBC_SHA,\n\t\tcipher_TLS_KRB5_WITH_RC4_128_SHA,\n\t\tcipher_TLS_KRB5_WITH_IDEA_CBC_SHA,\n\t\tcipher_TLS_KRB5_WITH_DES_CBC_MD5,\n\t\tcipher_TLS_KRB5_WITH_3DES_EDE_CBC_MD5,\n\t\tcipher_TLS_KRB5_WITH_RC4_128_MD5,\n\t\tcipher_TLS_KRB5_WITH_IDEA_CBC_MD5,\n\t\tcipher_TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA,\n\t\tcipher_TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA,\n\t\tcipher_TLS_KRB5_EXPORT_WITH_RC4_40_SHA,\n\t\tcipher_TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5,\n\t\tcipher_TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5,\n\t\tcipher_TLS_KRB5_EXPORT_WITH_RC4_40_MD5,\n\t\tcipher_TLS_PSK_WITH_NULL_SHA,\n\t\tcipher_TLS_DHE_PSK_WITH_NULL_SHA,\n\t\tcipher_TLS_RSA_PSK_WITH_NULL_SHA,\n\t\tcipher_TLS_RSA_WITH_AES_128_CBC_SHA,\n\t\tcipher_TLS_DH_DSS_WITH_AES_128_CBC_SHA,\n\t\tcipher_TLS_DH_RSA_WITH_AES_128_CBC_SHA,\n\t\tcipher_TLS_DHE_DSS_WITH_AES_128_CBC_SHA,\n\t\tcipher_TLS_DHE_RSA_WITH_AES_128_CBC_SHA,\n\t\tcipher_TLS_DH_anon_WITH_AES_128_CBC_SHA,\n\t\tcipher_TLS_RSA_WITH_AES_256_CBC_SHA,\n\t\tcipher_TLS_DH_DSS_WITH_AES_256_CBC_SHA,\n\t\tcipher_TLS_DH_RSA_WITH_AES_256_CBC_SHA,\n\t\tcipher_TLS_DHE_DSS_WITH_AES_256_CBC_SHA,\n\t\tcipher_TLS_DHE_RSA_WITH_AES_256_CBC_SHA,\n\t\tcipher_TLS_DH_anon_WITH_AES_256_CBC_SHA,\n\t\tcipher_TLS_RSA_WITH_NULL_SHA256,\n\t\tcipher_TLS_RSA_WITH_AES_128_CBC_SHA256,\n\t\tcipher_TLS_RSA_WITH_AES_256_CBC_SHA256,\n\t\tcipher_TLS_DH_DSS_WITH_AES_128_CBC_SHA256,\n\t\tcipher_TLS_DH_RSA_WITH_AES_128_CBC_SHA256,\n\t\tcipher_TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,\n\t\tcipher_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA,\n\t\tcipher_TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA,\n\t\tcipher_TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA,\n\t\tcipher_TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA,\n\t\tcipher_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA,\n\t\tcipher_TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA,\n\t\tcipher_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,\n\t\tcipher_TLS_DH_DSS_WITH_AES_256_CBC_SHA256,\n\t\tcipher_TLS_DH_RSA_WITH_AES_256_CBC_SHA256,\n\t\tcipher_TLS_DHE_DSS_WITH_AES_256_CBC_SHA256,\n\t\tcipher_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,\n\t\tcipher_TLS_DH_anon_WITH_AES_128_CBC_SHA256,\n\t\tcipher_TLS_DH_anon_WITH_AES_256_CBC_SHA256,\n\t\tcipher_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA,\n\t\tcipher_TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA,\n\t\tcipher_TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA,\n\t\tcipher_TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA,\n\t\tcipher_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA,\n\t\tcipher_TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA,\n\t\tcipher_TLS_PSK_WITH_RC4_128_SHA,\n\t\tcipher_TLS_PSK_WITH_3DES_EDE_CBC_SHA,\n\t\tcipher_TLS_PSK_WITH_AES_128_CBC_SHA,\n\t\tcipher_TLS_PSK_WITH_AES_256_CBC_SHA,\n\t\tcipher_TLS_DHE_PSK_WITH_RC4_128_SHA,\n\t\tcipher_TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA,\n\t\tcipher_TLS_DHE_PSK_WITH_AES_128_CBC_SHA,\n\t\tcipher_TLS_DHE_PSK_WITH_AES_256_CBC_SHA,\n\t\tcipher_TLS_RSA_PSK_WITH_RC4_128_SHA,\n\t\tcipher_TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA,\n\t\tcipher_TLS_RSA_PSK_WITH_AES_128_CBC_SHA,\n\t\tcipher_TLS_RSA_PSK_WITH_AES_256_CBC_SHA,\n\t\tcipher_TLS_RSA_WITH_SEED_CBC_SHA,\n\t\tcipher_TLS_DH_DSS_WITH_SEED_CBC_SHA,\n\t\tcipher_TLS_DH_RSA_WITH_SEED_CBC_SHA,\n\t\tcipher_TLS_DHE_DSS_WITH_SEED_CBC_SHA,\n\t\tcipher_TLS_DHE_RSA_WITH_SEED_CBC_SHA,\n\t\tcipher_TLS_DH_anon_WITH_SEED_CBC_SHA,\n\t\tcipher_TLS_RSA_WITH_AES_128_GCM_SHA256,\n\t\tcipher_TLS_RSA_WITH_AES_256_GCM_SHA384,\n\t\tcipher_TLS_DH_RSA_WITH_AES_128_GCM_SHA256,\n\t\tcipher_TLS_DH_RSA_WITH_AES_256_GCM_SHA384,\n\t\tcipher_TLS_DH_DSS_WITH_AES_128_GCM_SHA256,\n\t\tcipher_TLS_DH_DSS_WITH_AES_256_GCM_SHA384,\n\t\tcipher_TLS_DH_anon_WITH_AES_128_GCM_SHA256,\n\t\tcipher_TLS_DH_anon_WITH_AES_256_GCM_SHA384,\n\t\tcipher_TLS_PSK_WITH_AES_128_GCM_SHA256,\n\t\tcipher_TLS_PSK_WITH_AES_256_GCM_SHA384,\n\t\tcipher_TLS_RSA_PSK_WITH_AES_128_GCM_SHA256,\n\t\tcipher_TLS_RSA_PSK_WITH_AES_256_GCM_SHA384,\n\t\tcipher_TLS_PSK_WITH_AES_128_CBC_SHA256,\n\t\tcipher_TLS_PSK_WITH_AES_256_CBC_SHA384,\n\t\tcipher_TLS_PSK_WITH_NULL_SHA256,\n\t\tcipher_TLS_PSK_WITH_NULL_SHA384,\n\t\tcipher_TLS_DHE_PSK_WITH_AES_128_CBC_SHA256,\n\t\tcipher_TLS_DHE_PSK_WITH_AES_256_CBC_SHA384,\n\t\tcipher_TLS_DHE_PSK_WITH_NULL_SHA256,\n\t\tcipher_TLS_DHE_PSK_WITH_NULL_SHA384,\n\t\tcipher_TLS_RSA_PSK_WITH_AES_128_CBC_SHA256,\n\t\tcipher_TLS_RSA_PSK_WITH_AES_256_CBC_SHA384,\n\t\tcipher_TLS_RSA_PSK_WITH_NULL_SHA256,\n\t\tcipher_TLS_RSA_PSK_WITH_NULL_SHA384,\n\t\tcipher_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256,\n\t\tcipher_TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256,\n\t\tcipher_TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256,\n\t\tcipher_TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256,\n\t\tcipher_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256,\n\t\tcipher_TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256,\n\t\tcipher_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256,\n\t\tcipher_TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256,\n\t\tcipher_TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256,\n\t\tcipher_TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256,\n\t\tcipher_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256,\n\t\tcipher_TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256,\n\t\tcipher_TLS_EMPTY_RENEGOTIATION_INFO_SCSV,\n\t\tcipher_TLS_ECDH_ECDSA_WITH_NULL_SHA,\n\t\tcipher_TLS_ECDH_ECDSA_WITH_RC4_128_SHA,\n\t\tcipher_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA,\n\t\tcipher_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA,\n\t\tcipher_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA,\n\t\tcipher_TLS_ECDHE_ECDSA_WITH_NULL_SHA,\n\t\tcipher_TLS_ECDHE_ECDSA_WITH_RC4_128_SHA,\n\t\tcipher_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA,\n\t\tcipher_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,\n\t\tcipher_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,\n\t\tcipher_TLS_ECDH_RSA_WITH_NULL_SHA,\n\t\tcipher_TLS_ECDH_RSA_WITH_RC4_128_SHA,\n\t\tcipher_TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA,\n\t\tcipher_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA,\n\t\tcipher_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA,\n\t\tcipher_TLS_ECDHE_RSA_WITH_NULL_SHA,\n\t\tcipher_TLS_ECDHE_RSA_WITH_RC4_128_SHA,\n\t\tcipher_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,\n\t\tcipher_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,\n\t\tcipher_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,\n\t\tcipher_TLS_ECDH_anon_WITH_NULL_SHA,\n\t\tcipher_TLS_ECDH_anon_WITH_RC4_128_SHA,\n\t\tcipher_TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA,\n\t\tcipher_TLS_ECDH_anon_WITH_AES_128_CBC_SHA,\n\t\tcipher_TLS_ECDH_anon_WITH_AES_256_CBC_SHA,\n\t\tcipher_TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA,\n\t\tcipher_TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA,\n\t\tcipher_TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA,\n\t\tcipher_TLS_SRP_SHA_WITH_AES_128_CBC_SHA,\n\t\tcipher_TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA,\n\t\tcipher_TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA,\n\t\tcipher_TLS_SRP_SHA_WITH_AES_256_CBC_SHA,\n\t\tcipher_TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA,\n\t\tcipher_TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA,\n\t\tcipher_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,\n\t\tcipher_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,\n\t\tcipher_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256,\n\t\tcipher_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384,\n\t\tcipher_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,\n\t\tcipher_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,\n\t\tcipher_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256,\n\t\tcipher_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384,\n\t\tcipher_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256,\n\t\tcipher_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384,\n\t\tcipher_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256,\n\t\tcipher_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384,\n\t\tcipher_TLS_ECDHE_PSK_WITH_RC4_128_SHA,\n\t\tcipher_TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA,\n\t\tcipher_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA,\n\t\tcipher_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA,\n\t\tcipher_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256,\n\t\tcipher_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384,\n\t\tcipher_TLS_ECDHE_PSK_WITH_NULL_SHA,\n\t\tcipher_TLS_ECDHE_PSK_WITH_NULL_SHA256,\n\t\tcipher_TLS_ECDHE_PSK_WITH_NULL_SHA384,\n\t\tcipher_TLS_RSA_WITH_ARIA_128_CBC_SHA256,\n\t\tcipher_TLS_RSA_WITH_ARIA_256_CBC_SHA384,\n\t\tcipher_TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256,\n\t\tcipher_TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384,\n\t\tcipher_TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256,\n\t\tcipher_TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384,\n\t\tcipher_TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256,\n\t\tcipher_TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384,\n\t\tcipher_TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256,\n\t\tcipher_TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384,\n\t\tcipher_TLS_DH_anon_WITH_ARIA_128_CBC_SHA256,\n\t\tcipher_TLS_DH_anon_WITH_ARIA_256_CBC_SHA384,\n\t\tcipher_TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256,\n\t\tcipher_TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384,\n\t\tcipher_TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256,\n\t\tcipher_TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384,\n\t\tcipher_TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256,\n\t\tcipher_TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384,\n\t\tcipher_TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256,\n\t\tcipher_TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384,\n\t\tcipher_TLS_RSA_WITH_ARIA_128_GCM_SHA256,\n\t\tcipher_TLS_RSA_WITH_ARIA_256_GCM_SHA384,\n\t\tcipher_TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256,\n\t\tcipher_TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384,\n\t\tcipher_TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256,\n\t\tcipher_TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384,\n\t\tcipher_TLS_DH_anon_WITH_ARIA_128_GCM_SHA256,\n\t\tcipher_TLS_DH_anon_WITH_ARIA_256_GCM_SHA384,\n\t\tcipher_TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256,\n\t\tcipher_TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384,\n\t\tcipher_TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256,\n\t\tcipher_TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384,\n\t\tcipher_TLS_PSK_WITH_ARIA_128_CBC_SHA256,\n\t\tcipher_TLS_PSK_WITH_ARIA_256_CBC_SHA384,\n\t\tcipher_TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256,\n\t\tcipher_TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384,\n\t\tcipher_TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256,\n\t\tcipher_TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384,\n\t\tcipher_TLS_PSK_WITH_ARIA_128_GCM_SHA256,\n\t\tcipher_TLS_PSK_WITH_ARIA_256_GCM_SHA384,\n\t\tcipher_TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256,\n\t\tcipher_TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384,\n\t\tcipher_TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256,\n\t\tcipher_TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384,\n\t\tcipher_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256,\n\t\tcipher_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384,\n\t\tcipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256,\n\t\tcipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384,\n\t\tcipher_TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256,\n\t\tcipher_TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384,\n\t\tcipher_TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256,\n\t\tcipher_TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384,\n\t\tcipher_TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256,\n\t\tcipher_TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384,\n\t\tcipher_TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256,\n\t\tcipher_TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384,\n\t\tcipher_TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256,\n\t\tcipher_TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384,\n\t\tcipher_TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256,\n\t\tcipher_TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384,\n\t\tcipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256,\n\t\tcipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384,\n\t\tcipher_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256,\n\t\tcipher_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384,\n\t\tcipher_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256,\n\t\tcipher_TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384,\n\t\tcipher_TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256,\n\t\tcipher_TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384,\n\t\tcipher_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256,\n\t\tcipher_TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384,\n\t\tcipher_TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256,\n\t\tcipher_TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384,\n\t\tcipher_TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256,\n\t\tcipher_TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384,\n\t\tcipher_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256,\n\t\tcipher_TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384,\n\t\tcipher_TLS_RSA_WITH_AES_128_CCM,\n\t\tcipher_TLS_RSA_WITH_AES_256_CCM,\n\t\tcipher_TLS_RSA_WITH_AES_128_CCM_8,\n\t\tcipher_TLS_RSA_WITH_AES_256_CCM_8,\n\t\tcipher_TLS_PSK_WITH_AES_128_CCM,\n\t\tcipher_TLS_PSK_WITH_AES_256_CCM,\n\t\tcipher_TLS_PSK_WITH_AES_128_CCM_8,\n\t\tcipher_TLS_PSK_WITH_AES_256_CCM_8:\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/client_conn_pool.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Transport code's client connection pooling.\n\npackage http2\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"net\"\n\t\"net/http\"\n\t\"sync\"\n)\n\n// ClientConnPool manages a pool of HTTP/2 client connections.\ntype ClientConnPool interface {\n\t// GetClientConn returns a specific HTTP/2 connection (usually\n\t// a TLS-TCP connection) to an HTTP/2 server. On success, the\n\t// returned ClientConn accounts for the upcoming RoundTrip\n\t// call, so the caller should not omit it. If the caller needs\n\t// to, ClientConn.RoundTrip can be called with a bogus\n\t// new(http.Request) to release the stream reservation.\n\tGetClientConn(req *http.Request, addr string) (*ClientConn, error)\n\tMarkDead(*ClientConn)\n}\n\n// clientConnPoolIdleCloser is the interface implemented by ClientConnPool\n// implementations which can close their idle connections.\ntype clientConnPoolIdleCloser interface {\n\tClientConnPool\n\tcloseIdleConnections()\n}\n\nvar (\n\t_ clientConnPoolIdleCloser = (*clientConnPool)(nil)\n\t_ clientConnPoolIdleCloser = noDialClientConnPool{}\n)\n\n// TODO: use singleflight for dialing and addConnCalls?\ntype clientConnPool struct {\n\tt *Transport\n\n\tmu sync.Mutex // TODO: maybe switch to RWMutex\n\t// TODO: add support for sharing conns based on cert names\n\t// (e.g. share conn for googleapis.com and appspot.com)\n\tconns        map[string][]*ClientConn // key is host:port\n\tdialing      map[string]*dialCall     // currently in-flight dials\n\tkeys         map[*ClientConn][]string\n\taddConnCalls map[string]*addConnCall // in-flight addConnIfNeeded calls\n}\n\nfunc (p *clientConnPool) GetClientConn(req *http.Request, addr string) (*ClientConn, error) {\n\treturn p.getClientConn(req, addr, dialOnMiss)\n}\n\nconst (\n\tdialOnMiss   = true\n\tnoDialOnMiss = false\n)\n\nfunc (p *clientConnPool) getClientConn(req *http.Request, addr string, dialOnMiss bool) (*ClientConn, error) {\n\t// TODO(dneil): Dial a new connection when t.DisableKeepAlives is set?\n\tif isConnectionCloseRequest(req) && dialOnMiss {\n\t\t// It gets its own connection.\n\t\ttraceGetConn(req, addr)\n\t\tconst singleUse = true\n\t\tcc, err := p.t.dialClientConn(req.Context(), addr, singleUse)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn cc, nil\n\t}\n\tfor {\n\t\tp.mu.Lock()\n\t\tfor _, cc := range p.conns[addr] {\n\t\t\tif cc.ReserveNewRequest() {\n\t\t\t\t// When a connection is presented to us by the net/http package,\n\t\t\t\t// the GetConn hook has already been called.\n\t\t\t\t// Don't call it a second time here.\n\t\t\t\tif !cc.getConnCalled {\n\t\t\t\t\ttraceGetConn(req, addr)\n\t\t\t\t}\n\t\t\t\tcc.getConnCalled = false\n\t\t\t\tp.mu.Unlock()\n\t\t\t\treturn cc, nil\n\t\t\t}\n\t\t}\n\t\tif !dialOnMiss {\n\t\t\tp.mu.Unlock()\n\t\t\treturn nil, ErrNoCachedConn\n\t\t}\n\t\ttraceGetConn(req, addr)\n\t\tcall := p.getStartDialLocked(req.Context(), addr)\n\t\tp.mu.Unlock()\n\t\t<-call.done\n\t\tif shouldRetryDial(call, req) {\n\t\t\tcontinue\n\t\t}\n\t\tcc, err := call.res, call.err\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif cc.ReserveNewRequest() {\n\t\t\treturn cc, nil\n\t\t}\n\t}\n}\n\n// dialCall is an in-flight Transport dial call to a host.\ntype dialCall struct {\n\t_ incomparable\n\tp *clientConnPool\n\t// the context associated with the request\n\t// that created this dialCall\n\tctx  context.Context\n\tdone chan struct{} // closed when done\n\tres  *ClientConn   // valid after done is closed\n\terr  error         // valid after done is closed\n}\n\n// requires p.mu is held.\nfunc (p *clientConnPool) getStartDialLocked(ctx context.Context, addr string) *dialCall {\n\tif call, ok := p.dialing[addr]; ok {\n\t\t// A dial is already in-flight. Don't start another.\n\t\treturn call\n\t}\n\tcall := &dialCall{p: p, done: make(chan struct{}), ctx: ctx}\n\tif p.dialing == nil {\n\t\tp.dialing = make(map[string]*dialCall)\n\t}\n\tp.dialing[addr] = call\n\tgo call.dial(call.ctx, addr)\n\treturn call\n}\n\n// run in its own goroutine.\nfunc (c *dialCall) dial(ctx context.Context, addr string) {\n\tconst singleUse = false // shared conn\n\tc.res, c.err = c.p.t.dialClientConn(ctx, addr, singleUse)\n\n\tc.p.mu.Lock()\n\tdelete(c.p.dialing, addr)\n\tif c.err == nil {\n\t\tc.p.addConnLocked(addr, c.res)\n\t}\n\tc.p.mu.Unlock()\n\n\tclose(c.done)\n}\n\n// addConnIfNeeded makes a NewClientConn out of c if a connection for key doesn't\n// already exist. It coalesces concurrent calls with the same key.\n// This is used by the http1 Transport code when it creates a new connection. Because\n// the http1 Transport doesn't de-dup TCP dials to outbound hosts (because it doesn't know\n// the protocol), it can get into a situation where it has multiple TLS connections.\n// This code decides which ones live or die.\n// The return value used is whether c was used.\n// c is never closed.\nfunc (p *clientConnPool) addConnIfNeeded(key string, t *Transport, c net.Conn) (used bool, err error) {\n\tp.mu.Lock()\n\tfor _, cc := range p.conns[key] {\n\t\tif cc.CanTakeNewRequest() {\n\t\t\tp.mu.Unlock()\n\t\t\treturn false, nil\n\t\t}\n\t}\n\tcall, dup := p.addConnCalls[key]\n\tif !dup {\n\t\tif p.addConnCalls == nil {\n\t\t\tp.addConnCalls = make(map[string]*addConnCall)\n\t\t}\n\t\tcall = &addConnCall{\n\t\t\tp:    p,\n\t\t\tdone: make(chan struct{}),\n\t\t}\n\t\tp.addConnCalls[key] = call\n\t\tgo call.run(t, key, c)\n\t}\n\tp.mu.Unlock()\n\n\t<-call.done\n\tif call.err != nil {\n\t\treturn false, call.err\n\t}\n\treturn !dup, nil\n}\n\ntype addConnCall struct {\n\t_    incomparable\n\tp    *clientConnPool\n\tdone chan struct{} // closed when done\n\terr  error\n}\n\nfunc (c *addConnCall) run(t *Transport, key string, nc net.Conn) {\n\tcc, err := t.NewClientConn(nc)\n\n\tp := c.p\n\tp.mu.Lock()\n\tif err != nil {\n\t\tc.err = err\n\t} else {\n\t\tcc.getConnCalled = true // already called by the net/http package\n\t\tp.addConnLocked(key, cc)\n\t}\n\tdelete(p.addConnCalls, key)\n\tp.mu.Unlock()\n\tclose(c.done)\n}\n\n// p.mu must be held\nfunc (p *clientConnPool) addConnLocked(key string, cc *ClientConn) {\n\tfor _, v := range p.conns[key] {\n\t\tif v == cc {\n\t\t\treturn\n\t\t}\n\t}\n\tif p.conns == nil {\n\t\tp.conns = make(map[string][]*ClientConn)\n\t}\n\tif p.keys == nil {\n\t\tp.keys = make(map[*ClientConn][]string)\n\t}\n\tp.conns[key] = append(p.conns[key], cc)\n\tp.keys[cc] = append(p.keys[cc], key)\n}\n\nfunc (p *clientConnPool) MarkDead(cc *ClientConn) {\n\tp.mu.Lock()\n\tdefer p.mu.Unlock()\n\tfor _, key := range p.keys[cc] {\n\t\tvv, ok := p.conns[key]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tnewList := filterOutClientConn(vv, cc)\n\t\tif len(newList) > 0 {\n\t\t\tp.conns[key] = newList\n\t\t} else {\n\t\t\tdelete(p.conns, key)\n\t\t}\n\t}\n\tdelete(p.keys, cc)\n}\n\nfunc (p *clientConnPool) closeIdleConnections() {\n\tp.mu.Lock()\n\tdefer p.mu.Unlock()\n\t// TODO: don't close a cc if it was just added to the pool\n\t// milliseconds ago and has never been used. There's currently\n\t// a small race window with the HTTP/1 Transport's integration\n\t// where it can add an idle conn just before using it, and\n\t// somebody else can concurrently call CloseIdleConns and\n\t// break some caller's RoundTrip.\n\tfor _, vv := range p.conns {\n\t\tfor _, cc := range vv {\n\t\t\tcc.closeIfIdle()\n\t\t}\n\t}\n}\n\nfunc filterOutClientConn(in []*ClientConn, exclude *ClientConn) []*ClientConn {\n\tout := in[:0]\n\tfor _, v := range in {\n\t\tif v != exclude {\n\t\t\tout = append(out, v)\n\t\t}\n\t}\n\t// If we filtered it out, zero out the last item to prevent\n\t// the GC from seeing it.\n\tif len(in) != len(out) {\n\t\tin[len(in)-1] = nil\n\t}\n\treturn out\n}\n\n// noDialClientConnPool is an implementation of http2.ClientConnPool\n// which never dials. We let the HTTP/1.1 client dial and use its TLS\n// connection instead.\ntype noDialClientConnPool struct{ *clientConnPool }\n\nfunc (p noDialClientConnPool) GetClientConn(req *http.Request, addr string) (*ClientConn, error) {\n\treturn p.getClientConn(req, addr, noDialOnMiss)\n}\n\n// shouldRetryDial reports whether the current request should\n// retry dialing after the call finished unsuccessfully, for example\n// if the dial was canceled because of a context cancellation or\n// deadline expiry.\nfunc shouldRetryDial(call *dialCall, req *http.Request) bool {\n\tif call.err == nil {\n\t\t// No error, no need to retry\n\t\treturn false\n\t}\n\tif call.ctx == req.Context() {\n\t\t// If the call has the same context as the request, the dial\n\t\t// should not be retried, since any cancellation will have come\n\t\t// from this request.\n\t\treturn false\n\t}\n\tif !errors.Is(call.err, context.Canceled) && !errors.Is(call.err, context.DeadlineExceeded) {\n\t\t// If the call error is not because of a context cancellation or a deadline expiry,\n\t\t// the dial should not be retried.\n\t\treturn false\n\t}\n\t// Only retry if the error is a context cancellation error or deadline expiry\n\t// and the context associated with the call was canceled or expired.\n\treturn call.ctx.Err() != nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/config.go",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage http2\n\nimport (\n\t\"math\"\n\t\"net/http\"\n\t\"time\"\n)\n\n// http2Config is a package-internal version of net/http.HTTP2Config.\n//\n// http.HTTP2Config was added in Go 1.24.\n// When running with a version of net/http that includes HTTP2Config,\n// we merge the configuration with the fields in Transport or Server\n// to produce an http2Config.\n//\n// Zero valued fields in http2Config are interpreted as in the\n// net/http.HTTPConfig documentation.\n//\n// Precedence order for reconciling configurations is:\n//\n//   - Use the net/http.{Server,Transport}.HTTP2Config value, when non-zero.\n//   - Otherwise use the http2.{Server.Transport} value.\n//   - If the resulting value is zero or out of range, use a default.\ntype http2Config struct {\n\tMaxConcurrentStreams         uint32\n\tMaxDecoderHeaderTableSize    uint32\n\tMaxEncoderHeaderTableSize    uint32\n\tMaxReadFrameSize             uint32\n\tMaxUploadBufferPerConnection int32\n\tMaxUploadBufferPerStream     int32\n\tSendPingTimeout              time.Duration\n\tPingTimeout                  time.Duration\n\tWriteByteTimeout             time.Duration\n\tPermitProhibitedCipherSuites bool\n\tCountError                   func(errType string)\n}\n\n// configFromServer merges configuration settings from\n// net/http.Server.HTTP2Config and http2.Server.\nfunc configFromServer(h1 *http.Server, h2 *Server) http2Config {\n\tconf := http2Config{\n\t\tMaxConcurrentStreams:         h2.MaxConcurrentStreams,\n\t\tMaxEncoderHeaderTableSize:    h2.MaxEncoderHeaderTableSize,\n\t\tMaxDecoderHeaderTableSize:    h2.MaxDecoderHeaderTableSize,\n\t\tMaxReadFrameSize:             h2.MaxReadFrameSize,\n\t\tMaxUploadBufferPerConnection: h2.MaxUploadBufferPerConnection,\n\t\tMaxUploadBufferPerStream:     h2.MaxUploadBufferPerStream,\n\t\tSendPingTimeout:              h2.ReadIdleTimeout,\n\t\tPingTimeout:                  h2.PingTimeout,\n\t\tWriteByteTimeout:             h2.WriteByteTimeout,\n\t\tPermitProhibitedCipherSuites: h2.PermitProhibitedCipherSuites,\n\t\tCountError:                   h2.CountError,\n\t}\n\tfillNetHTTPServerConfig(&conf, h1)\n\tsetConfigDefaults(&conf, true)\n\treturn conf\n}\n\n// configFromTransport merges configuration settings from h2 and h2.t1.HTTP2\n// (the net/http Transport).\nfunc configFromTransport(h2 *Transport) http2Config {\n\tconf := http2Config{\n\t\tMaxEncoderHeaderTableSize: h2.MaxEncoderHeaderTableSize,\n\t\tMaxDecoderHeaderTableSize: h2.MaxDecoderHeaderTableSize,\n\t\tMaxReadFrameSize:          h2.MaxReadFrameSize,\n\t\tSendPingTimeout:           h2.ReadIdleTimeout,\n\t\tPingTimeout:               h2.PingTimeout,\n\t\tWriteByteTimeout:          h2.WriteByteTimeout,\n\t}\n\n\t// Unlike most config fields, where out-of-range values revert to the default,\n\t// Transport.MaxReadFrameSize clips.\n\tif conf.MaxReadFrameSize < minMaxFrameSize {\n\t\tconf.MaxReadFrameSize = minMaxFrameSize\n\t} else if conf.MaxReadFrameSize > maxFrameSize {\n\t\tconf.MaxReadFrameSize = maxFrameSize\n\t}\n\n\tif h2.t1 != nil {\n\t\tfillNetHTTPTransportConfig(&conf, h2.t1)\n\t}\n\tsetConfigDefaults(&conf, false)\n\treturn conf\n}\n\nfunc setDefault[T ~int | ~int32 | ~uint32 | ~int64](v *T, minval, maxval, defval T) {\n\tif *v < minval || *v > maxval {\n\t\t*v = defval\n\t}\n}\n\nfunc setConfigDefaults(conf *http2Config, server bool) {\n\tsetDefault(&conf.MaxConcurrentStreams, 1, math.MaxUint32, defaultMaxStreams)\n\tsetDefault(&conf.MaxEncoderHeaderTableSize, 1, math.MaxUint32, initialHeaderTableSize)\n\tsetDefault(&conf.MaxDecoderHeaderTableSize, 1, math.MaxUint32, initialHeaderTableSize)\n\tif server {\n\t\tsetDefault(&conf.MaxUploadBufferPerConnection, initialWindowSize, math.MaxInt32, 1<<20)\n\t} else {\n\t\tsetDefault(&conf.MaxUploadBufferPerConnection, initialWindowSize, math.MaxInt32, transportDefaultConnFlow)\n\t}\n\tif server {\n\t\tsetDefault(&conf.MaxUploadBufferPerStream, 1, math.MaxInt32, 1<<20)\n\t} else {\n\t\tsetDefault(&conf.MaxUploadBufferPerStream, 1, math.MaxInt32, transportDefaultStreamFlow)\n\t}\n\tsetDefault(&conf.MaxReadFrameSize, minMaxFrameSize, maxFrameSize, defaultMaxReadFrameSize)\n\tsetDefault(&conf.PingTimeout, 1, math.MaxInt64, 15*time.Second)\n}\n\n// adjustHTTP1MaxHeaderSize converts a limit in bytes on the size of an HTTP/1 header\n// to an HTTP/2 MAX_HEADER_LIST_SIZE value.\nfunc adjustHTTP1MaxHeaderSize(n int64) int64 {\n\t// http2's count is in a slightly different unit and includes 32 bytes per pair.\n\t// So, take the net/http.Server value and pad it up a bit, assuming 10 headers.\n\tconst perFieldOverhead = 32 // per http2 spec\n\tconst typicalHeaders = 10   // conservative\n\treturn n + typicalHeaders*perFieldOverhead\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/config_go124.go",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build go1.24\n\npackage http2\n\nimport \"net/http\"\n\n// fillNetHTTPServerConfig sets fields in conf from srv.HTTP2.\nfunc fillNetHTTPServerConfig(conf *http2Config, srv *http.Server) {\n\tfillNetHTTPConfig(conf, srv.HTTP2)\n}\n\n// fillNetHTTPTransportConfig sets fields in conf from tr.HTTP2.\nfunc fillNetHTTPTransportConfig(conf *http2Config, tr *http.Transport) {\n\tfillNetHTTPConfig(conf, tr.HTTP2)\n}\n\nfunc fillNetHTTPConfig(conf *http2Config, h2 *http.HTTP2Config) {\n\tif h2 == nil {\n\t\treturn\n\t}\n\tif h2.MaxConcurrentStreams != 0 {\n\t\tconf.MaxConcurrentStreams = uint32(h2.MaxConcurrentStreams)\n\t}\n\tif h2.MaxEncoderHeaderTableSize != 0 {\n\t\tconf.MaxEncoderHeaderTableSize = uint32(h2.MaxEncoderHeaderTableSize)\n\t}\n\tif h2.MaxDecoderHeaderTableSize != 0 {\n\t\tconf.MaxDecoderHeaderTableSize = uint32(h2.MaxDecoderHeaderTableSize)\n\t}\n\tif h2.MaxConcurrentStreams != 0 {\n\t\tconf.MaxConcurrentStreams = uint32(h2.MaxConcurrentStreams)\n\t}\n\tif h2.MaxReadFrameSize != 0 {\n\t\tconf.MaxReadFrameSize = uint32(h2.MaxReadFrameSize)\n\t}\n\tif h2.MaxReceiveBufferPerConnection != 0 {\n\t\tconf.MaxUploadBufferPerConnection = int32(h2.MaxReceiveBufferPerConnection)\n\t}\n\tif h2.MaxReceiveBufferPerStream != 0 {\n\t\tconf.MaxUploadBufferPerStream = int32(h2.MaxReceiveBufferPerStream)\n\t}\n\tif h2.SendPingTimeout != 0 {\n\t\tconf.SendPingTimeout = h2.SendPingTimeout\n\t}\n\tif h2.PingTimeout != 0 {\n\t\tconf.PingTimeout = h2.PingTimeout\n\t}\n\tif h2.WriteByteTimeout != 0 {\n\t\tconf.WriteByteTimeout = h2.WriteByteTimeout\n\t}\n\tif h2.PermitProhibitedCipherSuites {\n\t\tconf.PermitProhibitedCipherSuites = true\n\t}\n\tif h2.CountError != nil {\n\t\tconf.CountError = h2.CountError\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/config_pre_go124.go",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build !go1.24\n\npackage http2\n\nimport \"net/http\"\n\n// Pre-Go 1.24 fallback.\n// The Server.HTTP2 and Transport.HTTP2 config fields were added in Go 1.24.\n\nfunc fillNetHTTPServerConfig(conf *http2Config, srv *http.Server) {}\n\nfunc fillNetHTTPTransportConfig(conf *http2Config, tr *http.Transport) {}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/databuffer.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage http2\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"sync\"\n)\n\n// Buffer chunks are allocated from a pool to reduce pressure on GC.\n// The maximum wasted space per dataBuffer is 2x the largest size class,\n// which happens when the dataBuffer has multiple chunks and there is\n// one unread byte in both the first and last chunks. We use a few size\n// classes to minimize overheads for servers that typically receive very\n// small request bodies.\n//\n// TODO: Benchmark to determine if the pools are necessary. The GC may have\n// improved enough that we can instead allocate chunks like this:\n// make([]byte, max(16<<10, expectedBytesRemaining))\nvar dataChunkPools = [...]sync.Pool{\n\t{New: func() interface{} { return new([1 << 10]byte) }},\n\t{New: func() interface{} { return new([2 << 10]byte) }},\n\t{New: func() interface{} { return new([4 << 10]byte) }},\n\t{New: func() interface{} { return new([8 << 10]byte) }},\n\t{New: func() interface{} { return new([16 << 10]byte) }},\n}\n\nfunc getDataBufferChunk(size int64) []byte {\n\tswitch {\n\tcase size <= 1<<10:\n\t\treturn dataChunkPools[0].Get().(*[1 << 10]byte)[:]\n\tcase size <= 2<<10:\n\t\treturn dataChunkPools[1].Get().(*[2 << 10]byte)[:]\n\tcase size <= 4<<10:\n\t\treturn dataChunkPools[2].Get().(*[4 << 10]byte)[:]\n\tcase size <= 8<<10:\n\t\treturn dataChunkPools[3].Get().(*[8 << 10]byte)[:]\n\tdefault:\n\t\treturn dataChunkPools[4].Get().(*[16 << 10]byte)[:]\n\t}\n}\n\nfunc putDataBufferChunk(p []byte) {\n\tswitch len(p) {\n\tcase 1 << 10:\n\t\tdataChunkPools[0].Put((*[1 << 10]byte)(p))\n\tcase 2 << 10:\n\t\tdataChunkPools[1].Put((*[2 << 10]byte)(p))\n\tcase 4 << 10:\n\t\tdataChunkPools[2].Put((*[4 << 10]byte)(p))\n\tcase 8 << 10:\n\t\tdataChunkPools[3].Put((*[8 << 10]byte)(p))\n\tcase 16 << 10:\n\t\tdataChunkPools[4].Put((*[16 << 10]byte)(p))\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"unexpected buffer len=%v\", len(p)))\n\t}\n}\n\n// dataBuffer is an io.ReadWriter backed by a list of data chunks.\n// Each dataBuffer is used to read DATA frames on a single stream.\n// The buffer is divided into chunks so the server can limit the\n// total memory used by a single connection without limiting the\n// request body size on any single stream.\ntype dataBuffer struct {\n\tchunks   [][]byte\n\tr        int   // next byte to read is chunks[0][r]\n\tw        int   // next byte to write is chunks[len(chunks)-1][w]\n\tsize     int   // total buffered bytes\n\texpected int64 // we expect at least this many bytes in future Write calls (ignored if <= 0)\n}\n\nvar errReadEmpty = errors.New(\"read from empty dataBuffer\")\n\n// Read copies bytes from the buffer into p.\n// It is an error to read when no data is available.\nfunc (b *dataBuffer) Read(p []byte) (int, error) {\n\tif b.size == 0 {\n\t\treturn 0, errReadEmpty\n\t}\n\tvar ntotal int\n\tfor len(p) > 0 && b.size > 0 {\n\t\treadFrom := b.bytesFromFirstChunk()\n\t\tn := copy(p, readFrom)\n\t\tp = p[n:]\n\t\tntotal += n\n\t\tb.r += n\n\t\tb.size -= n\n\t\t// If the first chunk has been consumed, advance to the next chunk.\n\t\tif b.r == len(b.chunks[0]) {\n\t\t\tputDataBufferChunk(b.chunks[0])\n\t\t\tend := len(b.chunks) - 1\n\t\t\tcopy(b.chunks[:end], b.chunks[1:])\n\t\t\tb.chunks[end] = nil\n\t\t\tb.chunks = b.chunks[:end]\n\t\t\tb.r = 0\n\t\t}\n\t}\n\treturn ntotal, nil\n}\n\nfunc (b *dataBuffer) bytesFromFirstChunk() []byte {\n\tif len(b.chunks) == 1 {\n\t\treturn b.chunks[0][b.r:b.w]\n\t}\n\treturn b.chunks[0][b.r:]\n}\n\n// Len returns the number of bytes of the unread portion of the buffer.\nfunc (b *dataBuffer) Len() int {\n\treturn b.size\n}\n\n// Write appends p to the buffer.\nfunc (b *dataBuffer) Write(p []byte) (int, error) {\n\tntotal := len(p)\n\tfor len(p) > 0 {\n\t\t// If the last chunk is empty, allocate a new chunk. Try to allocate\n\t\t// enough to fully copy p plus any additional bytes we expect to\n\t\t// receive. However, this may allocate less than len(p).\n\t\twant := int64(len(p))\n\t\tif b.expected > want {\n\t\t\twant = b.expected\n\t\t}\n\t\tchunk := b.lastChunkOrAlloc(want)\n\t\tn := copy(chunk[b.w:], p)\n\t\tp = p[n:]\n\t\tb.w += n\n\t\tb.size += n\n\t\tb.expected -= int64(n)\n\t}\n\treturn ntotal, nil\n}\n\nfunc (b *dataBuffer) lastChunkOrAlloc(want int64) []byte {\n\tif len(b.chunks) != 0 {\n\t\tlast := b.chunks[len(b.chunks)-1]\n\t\tif b.w < len(last) {\n\t\t\treturn last\n\t\t}\n\t}\n\tchunk := getDataBufferChunk(want)\n\tb.chunks = append(b.chunks, chunk)\n\tb.w = 0\n\treturn chunk\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/errors.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage http2\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n)\n\n// An ErrCode is an unsigned 32-bit error code as defined in the HTTP/2 spec.\ntype ErrCode uint32\n\nconst (\n\tErrCodeNo                 ErrCode = 0x0\n\tErrCodeProtocol           ErrCode = 0x1\n\tErrCodeInternal           ErrCode = 0x2\n\tErrCodeFlowControl        ErrCode = 0x3\n\tErrCodeSettingsTimeout    ErrCode = 0x4\n\tErrCodeStreamClosed       ErrCode = 0x5\n\tErrCodeFrameSize          ErrCode = 0x6\n\tErrCodeRefusedStream      ErrCode = 0x7\n\tErrCodeCancel             ErrCode = 0x8\n\tErrCodeCompression        ErrCode = 0x9\n\tErrCodeConnect            ErrCode = 0xa\n\tErrCodeEnhanceYourCalm    ErrCode = 0xb\n\tErrCodeInadequateSecurity ErrCode = 0xc\n\tErrCodeHTTP11Required     ErrCode = 0xd\n)\n\nvar errCodeName = map[ErrCode]string{\n\tErrCodeNo:                 \"NO_ERROR\",\n\tErrCodeProtocol:           \"PROTOCOL_ERROR\",\n\tErrCodeInternal:           \"INTERNAL_ERROR\",\n\tErrCodeFlowControl:        \"FLOW_CONTROL_ERROR\",\n\tErrCodeSettingsTimeout:    \"SETTINGS_TIMEOUT\",\n\tErrCodeStreamClosed:       \"STREAM_CLOSED\",\n\tErrCodeFrameSize:          \"FRAME_SIZE_ERROR\",\n\tErrCodeRefusedStream:      \"REFUSED_STREAM\",\n\tErrCodeCancel:             \"CANCEL\",\n\tErrCodeCompression:        \"COMPRESSION_ERROR\",\n\tErrCodeConnect:            \"CONNECT_ERROR\",\n\tErrCodeEnhanceYourCalm:    \"ENHANCE_YOUR_CALM\",\n\tErrCodeInadequateSecurity: \"INADEQUATE_SECURITY\",\n\tErrCodeHTTP11Required:     \"HTTP_1_1_REQUIRED\",\n}\n\nfunc (e ErrCode) String() string {\n\tif s, ok := errCodeName[e]; ok {\n\t\treturn s\n\t}\n\treturn fmt.Sprintf(\"unknown error code 0x%x\", uint32(e))\n}\n\nfunc (e ErrCode) stringToken() string {\n\tif s, ok := errCodeName[e]; ok {\n\t\treturn s\n\t}\n\treturn fmt.Sprintf(\"ERR_UNKNOWN_%d\", uint32(e))\n}\n\n// ConnectionError is an error that results in the termination of the\n// entire connection.\ntype ConnectionError ErrCode\n\nfunc (e ConnectionError) Error() string { return fmt.Sprintf(\"connection error: %s\", ErrCode(e)) }\n\n// StreamError is an error that only affects one stream within an\n// HTTP/2 connection.\ntype StreamError struct {\n\tStreamID uint32\n\tCode     ErrCode\n\tCause    error // optional additional detail\n}\n\n// errFromPeer is a sentinel error value for StreamError.Cause to\n// indicate that the StreamError was sent from the peer over the wire\n// and wasn't locally generated in the Transport.\nvar errFromPeer = errors.New(\"received from peer\")\n\nfunc streamError(id uint32, code ErrCode) StreamError {\n\treturn StreamError{StreamID: id, Code: code}\n}\n\nfunc (e StreamError) Error() string {\n\tif e.Cause != nil {\n\t\treturn fmt.Sprintf(\"stream error: stream ID %d; %v; %v\", e.StreamID, e.Code, e.Cause)\n\t}\n\treturn fmt.Sprintf(\"stream error: stream ID %d; %v\", e.StreamID, e.Code)\n}\n\n// 6.9.1 The Flow Control Window\n// \"If a sender receives a WINDOW_UPDATE that causes a flow control\n// window to exceed this maximum it MUST terminate either the stream\n// or the connection, as appropriate. For streams, [...]; for the\n// connection, a GOAWAY frame with a FLOW_CONTROL_ERROR code.\"\ntype goAwayFlowError struct{}\n\nfunc (goAwayFlowError) Error() string { return \"connection exceeded flow control window size\" }\n\n// connError represents an HTTP/2 ConnectionError error code, along\n// with a string (for debugging) explaining why.\n//\n// Errors of this type are only returned by the frame parser functions\n// and converted into ConnectionError(Code), after stashing away\n// the Reason into the Framer's errDetail field, accessible via\n// the (*Framer).ErrorDetail method.\ntype connError struct {\n\tCode   ErrCode // the ConnectionError error code\n\tReason string  // additional reason\n}\n\nfunc (e connError) Error() string {\n\treturn fmt.Sprintf(\"http2: connection error: %v: %v\", e.Code, e.Reason)\n}\n\ntype pseudoHeaderError string\n\nfunc (e pseudoHeaderError) Error() string {\n\treturn fmt.Sprintf(\"invalid pseudo-header %q\", string(e))\n}\n\ntype duplicatePseudoHeaderError string\n\nfunc (e duplicatePseudoHeaderError) Error() string {\n\treturn fmt.Sprintf(\"duplicate pseudo-header %q\", string(e))\n}\n\ntype headerFieldNameError string\n\nfunc (e headerFieldNameError) Error() string {\n\treturn fmt.Sprintf(\"invalid header field name %q\", string(e))\n}\n\ntype headerFieldValueError string\n\nfunc (e headerFieldValueError) Error() string {\n\treturn fmt.Sprintf(\"invalid header field value for %q\", string(e))\n}\n\nvar (\n\terrMixPseudoHeaderTypes = errors.New(\"mix of request and response pseudo headers\")\n\terrPseudoAfterRegular   = errors.New(\"pseudo header field after regular\")\n)\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/flow.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Flow control\n\npackage http2\n\n// inflowMinRefresh is the minimum number of bytes we'll send for a\n// flow control window update.\nconst inflowMinRefresh = 4 << 10\n\n// inflow accounts for an inbound flow control window.\n// It tracks both the latest window sent to the peer (used for enforcement)\n// and the accumulated unsent window.\ntype inflow struct {\n\tavail  int32\n\tunsent int32\n}\n\n// init sets the initial window.\nfunc (f *inflow) init(n int32) {\n\tf.avail = n\n}\n\n// add adds n bytes to the window, with a maximum window size of max,\n// indicating that the peer can now send us more data.\n// For example, the user read from a {Request,Response} body and consumed\n// some of the buffered data, so the peer can now send more.\n// It returns the number of bytes to send in a WINDOW_UPDATE frame to the peer.\n// Window updates are accumulated and sent when the unsent capacity\n// is at least inflowMinRefresh or will at least double the peer's available window.\nfunc (f *inflow) add(n int) (connAdd int32) {\n\tif n < 0 {\n\t\tpanic(\"negative update\")\n\t}\n\tunsent := int64(f.unsent) + int64(n)\n\t// \"A sender MUST NOT allow a flow-control window to exceed 2^31-1 octets.\"\n\t// RFC 7540 Section 6.9.1.\n\tconst maxWindow = 1<<31 - 1\n\tif unsent+int64(f.avail) > maxWindow {\n\t\tpanic(\"flow control update exceeds maximum window size\")\n\t}\n\tf.unsent = int32(unsent)\n\tif f.unsent < inflowMinRefresh && f.unsent < f.avail {\n\t\t// If there aren't at least inflowMinRefresh bytes of window to send,\n\t\t// and this update won't at least double the window, buffer the update for later.\n\t\treturn 0\n\t}\n\tf.avail += f.unsent\n\tf.unsent = 0\n\treturn int32(unsent)\n}\n\n// take attempts to take n bytes from the peer's flow control window.\n// It reports whether the window has available capacity.\nfunc (f *inflow) take(n uint32) bool {\n\tif n > uint32(f.avail) {\n\t\treturn false\n\t}\n\tf.avail -= int32(n)\n\treturn true\n}\n\n// takeInflows attempts to take n bytes from two inflows,\n// typically connection-level and stream-level flows.\n// It reports whether both windows have available capacity.\nfunc takeInflows(f1, f2 *inflow, n uint32) bool {\n\tif n > uint32(f1.avail) || n > uint32(f2.avail) {\n\t\treturn false\n\t}\n\tf1.avail -= int32(n)\n\tf2.avail -= int32(n)\n\treturn true\n}\n\n// outflow is the outbound flow control window's size.\ntype outflow struct {\n\t_ incomparable\n\n\t// n is the number of DATA bytes we're allowed to send.\n\t// An outflow is kept both on a conn and a per-stream.\n\tn int32\n\n\t// conn points to the shared connection-level outflow that is\n\t// shared by all streams on that conn. It is nil for the outflow\n\t// that's on the conn directly.\n\tconn *outflow\n}\n\nfunc (f *outflow) setConnFlow(cf *outflow) { f.conn = cf }\n\nfunc (f *outflow) available() int32 {\n\tn := f.n\n\tif f.conn != nil && f.conn.n < n {\n\t\tn = f.conn.n\n\t}\n\treturn n\n}\n\nfunc (f *outflow) take(n int32) {\n\tif n > f.available() {\n\t\tpanic(\"internal error: took too much\")\n\t}\n\tf.n -= n\n\tif f.conn != nil {\n\t\tf.conn.n -= n\n\t}\n}\n\n// add adds n bytes (positive or negative) to the flow control window.\n// It returns false if the sum would exceed 2^31-1.\nfunc (f *outflow) add(n int32) bool {\n\tsum := f.n + n\n\tif (sum > n) == (f.n > 0) {\n\t\tf.n = sum\n\t\treturn true\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/frame.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage http2\n\nimport (\n\t\"bytes\"\n\t\"encoding/binary\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"log\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"golang.org/x/net/http/httpguts\"\n\t\"golang.org/x/net/http2/hpack\"\n)\n\nconst frameHeaderLen = 9\n\nvar padZeros = make([]byte, 255) // zeros for padding\n\n// A FrameType is a registered frame type as defined in\n// https://httpwg.org/specs/rfc7540.html#rfc.section.11.2\ntype FrameType uint8\n\nconst (\n\tFrameData         FrameType = 0x0\n\tFrameHeaders      FrameType = 0x1\n\tFramePriority     FrameType = 0x2\n\tFrameRSTStream    FrameType = 0x3\n\tFrameSettings     FrameType = 0x4\n\tFramePushPromise  FrameType = 0x5\n\tFramePing         FrameType = 0x6\n\tFrameGoAway       FrameType = 0x7\n\tFrameWindowUpdate FrameType = 0x8\n\tFrameContinuation FrameType = 0x9\n)\n\nvar frameName = map[FrameType]string{\n\tFrameData:         \"DATA\",\n\tFrameHeaders:      \"HEADERS\",\n\tFramePriority:     \"PRIORITY\",\n\tFrameRSTStream:    \"RST_STREAM\",\n\tFrameSettings:     \"SETTINGS\",\n\tFramePushPromise:  \"PUSH_PROMISE\",\n\tFramePing:         \"PING\",\n\tFrameGoAway:       \"GOAWAY\",\n\tFrameWindowUpdate: \"WINDOW_UPDATE\",\n\tFrameContinuation: \"CONTINUATION\",\n}\n\nfunc (t FrameType) String() string {\n\tif s, ok := frameName[t]; ok {\n\t\treturn s\n\t}\n\treturn fmt.Sprintf(\"UNKNOWN_FRAME_TYPE_%d\", uint8(t))\n}\n\n// Flags is a bitmask of HTTP/2 flags.\n// The meaning of flags varies depending on the frame type.\ntype Flags uint8\n\n// Has reports whether f contains all (0 or more) flags in v.\nfunc (f Flags) Has(v Flags) bool {\n\treturn (f & v) == v\n}\n\n// Frame-specific FrameHeader flag bits.\nconst (\n\t// Data Frame\n\tFlagDataEndStream Flags = 0x1\n\tFlagDataPadded    Flags = 0x8\n\n\t// Headers Frame\n\tFlagHeadersEndStream  Flags = 0x1\n\tFlagHeadersEndHeaders Flags = 0x4\n\tFlagHeadersPadded     Flags = 0x8\n\tFlagHeadersPriority   Flags = 0x20\n\n\t// Settings Frame\n\tFlagSettingsAck Flags = 0x1\n\n\t// Ping Frame\n\tFlagPingAck Flags = 0x1\n\n\t// Continuation Frame\n\tFlagContinuationEndHeaders Flags = 0x4\n\n\tFlagPushPromiseEndHeaders Flags = 0x4\n\tFlagPushPromisePadded     Flags = 0x8\n)\n\nvar flagName = map[FrameType]map[Flags]string{\n\tFrameData: {\n\t\tFlagDataEndStream: \"END_STREAM\",\n\t\tFlagDataPadded:    \"PADDED\",\n\t},\n\tFrameHeaders: {\n\t\tFlagHeadersEndStream:  \"END_STREAM\",\n\t\tFlagHeadersEndHeaders: \"END_HEADERS\",\n\t\tFlagHeadersPadded:     \"PADDED\",\n\t\tFlagHeadersPriority:   \"PRIORITY\",\n\t},\n\tFrameSettings: {\n\t\tFlagSettingsAck: \"ACK\",\n\t},\n\tFramePing: {\n\t\tFlagPingAck: \"ACK\",\n\t},\n\tFrameContinuation: {\n\t\tFlagContinuationEndHeaders: \"END_HEADERS\",\n\t},\n\tFramePushPromise: {\n\t\tFlagPushPromiseEndHeaders: \"END_HEADERS\",\n\t\tFlagPushPromisePadded:     \"PADDED\",\n\t},\n}\n\n// a frameParser parses a frame given its FrameHeader and payload\n// bytes. The length of payload will always equal fh.Length (which\n// might be 0).\ntype frameParser func(fc *frameCache, fh FrameHeader, countError func(string), payload []byte) (Frame, error)\n\nvar frameParsers = map[FrameType]frameParser{\n\tFrameData:         parseDataFrame,\n\tFrameHeaders:      parseHeadersFrame,\n\tFramePriority:     parsePriorityFrame,\n\tFrameRSTStream:    parseRSTStreamFrame,\n\tFrameSettings:     parseSettingsFrame,\n\tFramePushPromise:  parsePushPromise,\n\tFramePing:         parsePingFrame,\n\tFrameGoAway:       parseGoAwayFrame,\n\tFrameWindowUpdate: parseWindowUpdateFrame,\n\tFrameContinuation: parseContinuationFrame,\n}\n\nfunc typeFrameParser(t FrameType) frameParser {\n\tif f := frameParsers[t]; f != nil {\n\t\treturn f\n\t}\n\treturn parseUnknownFrame\n}\n\n// A FrameHeader is the 9 byte header of all HTTP/2 frames.\n//\n// See https://httpwg.org/specs/rfc7540.html#FrameHeader\ntype FrameHeader struct {\n\tvalid bool // caller can access []byte fields in the Frame\n\n\t// Type is the 1 byte frame type. There are ten standard frame\n\t// types, but extension frame types may be written by WriteRawFrame\n\t// and will be returned by ReadFrame (as UnknownFrame).\n\tType FrameType\n\n\t// Flags are the 1 byte of 8 potential bit flags per frame.\n\t// They are specific to the frame type.\n\tFlags Flags\n\n\t// Length is the length of the frame, not including the 9 byte header.\n\t// The maximum size is one byte less than 16MB (uint24), but only\n\t// frames up to 16KB are allowed without peer agreement.\n\tLength uint32\n\n\t// StreamID is which stream this frame is for. Certain frames\n\t// are not stream-specific, in which case this field is 0.\n\tStreamID uint32\n}\n\n// Header returns h. It exists so FrameHeaders can be embedded in other\n// specific frame types and implement the Frame interface.\nfunc (h FrameHeader) Header() FrameHeader { return h }\n\nfunc (h FrameHeader) String() string {\n\tvar buf bytes.Buffer\n\tbuf.WriteString(\"[FrameHeader \")\n\th.writeDebug(&buf)\n\tbuf.WriteByte(']')\n\treturn buf.String()\n}\n\nfunc (h FrameHeader) writeDebug(buf *bytes.Buffer) {\n\tbuf.WriteString(h.Type.String())\n\tif h.Flags != 0 {\n\t\tbuf.WriteString(\" flags=\")\n\t\tset := 0\n\t\tfor i := uint8(0); i < 8; i++ {\n\t\t\tif h.Flags&(1<<i) == 0 {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tset++\n\t\t\tif set > 1 {\n\t\t\t\tbuf.WriteByte('|')\n\t\t\t}\n\t\t\tname := flagName[h.Type][Flags(1<<i)]\n\t\t\tif name != \"\" {\n\t\t\t\tbuf.WriteString(name)\n\t\t\t} else {\n\t\t\t\tfmt.Fprintf(buf, \"0x%x\", 1<<i)\n\t\t\t}\n\t\t}\n\t}\n\tif h.StreamID != 0 {\n\t\tfmt.Fprintf(buf, \" stream=%d\", h.StreamID)\n\t}\n\tfmt.Fprintf(buf, \" len=%d\", h.Length)\n}\n\nfunc (h *FrameHeader) checkValid() {\n\tif !h.valid {\n\t\tpanic(\"Frame accessor called on non-owned Frame\")\n\t}\n}\n\nfunc (h *FrameHeader) invalidate() { h.valid = false }\n\n// frame header bytes.\n// Used only by ReadFrameHeader.\nvar fhBytes = sync.Pool{\n\tNew: func() interface{} {\n\t\tbuf := make([]byte, frameHeaderLen)\n\t\treturn &buf\n\t},\n}\n\n// ReadFrameHeader reads 9 bytes from r and returns a FrameHeader.\n// Most users should use Framer.ReadFrame instead.\nfunc ReadFrameHeader(r io.Reader) (FrameHeader, error) {\n\tbufp := fhBytes.Get().(*[]byte)\n\tdefer fhBytes.Put(bufp)\n\treturn readFrameHeader(*bufp, r)\n}\n\nfunc readFrameHeader(buf []byte, r io.Reader) (FrameHeader, error) {\n\t_, err := io.ReadFull(r, buf[:frameHeaderLen])\n\tif err != nil {\n\t\treturn FrameHeader{}, err\n\t}\n\treturn FrameHeader{\n\t\tLength:   (uint32(buf[0])<<16 | uint32(buf[1])<<8 | uint32(buf[2])),\n\t\tType:     FrameType(buf[3]),\n\t\tFlags:    Flags(buf[4]),\n\t\tStreamID: binary.BigEndian.Uint32(buf[5:]) & (1<<31 - 1),\n\t\tvalid:    true,\n\t}, nil\n}\n\n// A Frame is the base interface implemented by all frame types.\n// Callers will generally type-assert the specific frame type:\n// *HeadersFrame, *SettingsFrame, *WindowUpdateFrame, etc.\n//\n// Frames are only valid until the next call to Framer.ReadFrame.\ntype Frame interface {\n\tHeader() FrameHeader\n\n\t// invalidate is called by Framer.ReadFrame to make this\n\t// frame's buffers as being invalid, since the subsequent\n\t// frame will reuse them.\n\tinvalidate()\n}\n\n// A Framer reads and writes Frames.\ntype Framer struct {\n\tr         io.Reader\n\tlastFrame Frame\n\terrDetail error\n\n\t// countError is a non-nil func that's called on a frame parse\n\t// error with some unique error path token. It's initialized\n\t// from Transport.CountError or Server.CountError.\n\tcountError func(errToken string)\n\n\t// lastHeaderStream is non-zero if the last frame was an\n\t// unfinished HEADERS/CONTINUATION.\n\tlastHeaderStream uint32\n\n\tmaxReadSize uint32\n\theaderBuf   [frameHeaderLen]byte\n\n\t// TODO: let getReadBuf be configurable, and use a less memory-pinning\n\t// allocator in server.go to minimize memory pinned for many idle conns.\n\t// Will probably also need to make frame invalidation have a hook too.\n\tgetReadBuf func(size uint32) []byte\n\treadBuf    []byte // cache for default getReadBuf\n\n\tmaxWriteSize uint32 // zero means unlimited; TODO: implement\n\n\tw    io.Writer\n\twbuf []byte\n\n\t// AllowIllegalWrites permits the Framer's Write methods to\n\t// write frames that do not conform to the HTTP/2 spec. This\n\t// permits using the Framer to test other HTTP/2\n\t// implementations' conformance to the spec.\n\t// If false, the Write methods will prefer to return an error\n\t// rather than comply.\n\tAllowIllegalWrites bool\n\n\t// AllowIllegalReads permits the Framer's ReadFrame method\n\t// to return non-compliant frames or frame orders.\n\t// This is for testing and permits using the Framer to test\n\t// other HTTP/2 implementations' conformance to the spec.\n\t// It is not compatible with ReadMetaHeaders.\n\tAllowIllegalReads bool\n\n\t// ReadMetaHeaders if non-nil causes ReadFrame to merge\n\t// HEADERS and CONTINUATION frames together and return\n\t// MetaHeadersFrame instead.\n\tReadMetaHeaders *hpack.Decoder\n\n\t// MaxHeaderListSize is the http2 MAX_HEADER_LIST_SIZE.\n\t// It's used only if ReadMetaHeaders is set; 0 means a sane default\n\t// (currently 16MB)\n\t// If the limit is hit, MetaHeadersFrame.Truncated is set true.\n\tMaxHeaderListSize uint32\n\n\t// TODO: track which type of frame & with which flags was sent\n\t// last. Then return an error (unless AllowIllegalWrites) if\n\t// we're in the middle of a header block and a\n\t// non-Continuation or Continuation on a different stream is\n\t// attempted to be written.\n\n\tlogReads, logWrites bool\n\n\tdebugFramer       *Framer // only use for logging written writes\n\tdebugFramerBuf    *bytes.Buffer\n\tdebugReadLoggerf  func(string, ...interface{})\n\tdebugWriteLoggerf func(string, ...interface{})\n\n\tframeCache *frameCache // nil if frames aren't reused (default)\n}\n\nfunc (fr *Framer) maxHeaderListSize() uint32 {\n\tif fr.MaxHeaderListSize == 0 {\n\t\treturn 16 << 20 // sane default, per docs\n\t}\n\treturn fr.MaxHeaderListSize\n}\n\nfunc (f *Framer) startWrite(ftype FrameType, flags Flags, streamID uint32) {\n\t// Write the FrameHeader.\n\tf.wbuf = append(f.wbuf[:0],\n\t\t0, // 3 bytes of length, filled in in endWrite\n\t\t0,\n\t\t0,\n\t\tbyte(ftype),\n\t\tbyte(flags),\n\t\tbyte(streamID>>24),\n\t\tbyte(streamID>>16),\n\t\tbyte(streamID>>8),\n\t\tbyte(streamID))\n}\n\nfunc (f *Framer) endWrite() error {\n\t// Now that we know the final size, fill in the FrameHeader in\n\t// the space previously reserved for it. Abuse append.\n\tlength := len(f.wbuf) - frameHeaderLen\n\tif length >= (1 << 24) {\n\t\treturn ErrFrameTooLarge\n\t}\n\t_ = append(f.wbuf[:0],\n\t\tbyte(length>>16),\n\t\tbyte(length>>8),\n\t\tbyte(length))\n\tif f.logWrites {\n\t\tf.logWrite()\n\t}\n\n\tn, err := f.w.Write(f.wbuf)\n\tif err == nil && n != len(f.wbuf) {\n\t\terr = io.ErrShortWrite\n\t}\n\treturn err\n}\n\nfunc (f *Framer) logWrite() {\n\tif f.debugFramer == nil {\n\t\tf.debugFramerBuf = new(bytes.Buffer)\n\t\tf.debugFramer = NewFramer(nil, f.debugFramerBuf)\n\t\tf.debugFramer.logReads = false // we log it ourselves, saying \"wrote\" below\n\t\t// Let us read anything, even if we accidentally wrote it\n\t\t// in the wrong order:\n\t\tf.debugFramer.AllowIllegalReads = true\n\t}\n\tf.debugFramerBuf.Write(f.wbuf)\n\tfr, err := f.debugFramer.ReadFrame()\n\tif err != nil {\n\t\tf.debugWriteLoggerf(\"http2: Framer %p: failed to decode just-written frame\", f)\n\t\treturn\n\t}\n\tf.debugWriteLoggerf(\"http2: Framer %p: wrote %v\", f, summarizeFrame(fr))\n}\n\nfunc (f *Framer) writeByte(v byte)     { f.wbuf = append(f.wbuf, v) }\nfunc (f *Framer) writeBytes(v []byte)  { f.wbuf = append(f.wbuf, v...) }\nfunc (f *Framer) writeUint16(v uint16) { f.wbuf = append(f.wbuf, byte(v>>8), byte(v)) }\nfunc (f *Framer) writeUint32(v uint32) {\n\tf.wbuf = append(f.wbuf, byte(v>>24), byte(v>>16), byte(v>>8), byte(v))\n}\n\nconst (\n\tminMaxFrameSize = 1 << 14\n\tmaxFrameSize    = 1<<24 - 1\n)\n\n// SetReuseFrames allows the Framer to reuse Frames.\n// If called on a Framer, Frames returned by calls to ReadFrame are only\n// valid until the next call to ReadFrame.\nfunc (fr *Framer) SetReuseFrames() {\n\tif fr.frameCache != nil {\n\t\treturn\n\t}\n\tfr.frameCache = &frameCache{}\n}\n\ntype frameCache struct {\n\tdataFrame DataFrame\n}\n\nfunc (fc *frameCache) getDataFrame() *DataFrame {\n\tif fc == nil {\n\t\treturn &DataFrame{}\n\t}\n\treturn &fc.dataFrame\n}\n\n// NewFramer returns a Framer that writes frames to w and reads them from r.\nfunc NewFramer(w io.Writer, r io.Reader) *Framer {\n\tfr := &Framer{\n\t\tw:                 w,\n\t\tr:                 r,\n\t\tcountError:        func(string) {},\n\t\tlogReads:          logFrameReads,\n\t\tlogWrites:         logFrameWrites,\n\t\tdebugReadLoggerf:  log.Printf,\n\t\tdebugWriteLoggerf: log.Printf,\n\t}\n\tfr.getReadBuf = func(size uint32) []byte {\n\t\tif cap(fr.readBuf) >= int(size) {\n\t\t\treturn fr.readBuf[:size]\n\t\t}\n\t\tfr.readBuf = make([]byte, size)\n\t\treturn fr.readBuf\n\t}\n\tfr.SetMaxReadFrameSize(maxFrameSize)\n\treturn fr\n}\n\n// SetMaxReadFrameSize sets the maximum size of a frame\n// that will be read by a subsequent call to ReadFrame.\n// It is the caller's responsibility to advertise this\n// limit with a SETTINGS frame.\nfunc (fr *Framer) SetMaxReadFrameSize(v uint32) {\n\tif v > maxFrameSize {\n\t\tv = maxFrameSize\n\t}\n\tfr.maxReadSize = v\n}\n\n// ErrorDetail returns a more detailed error of the last error\n// returned by Framer.ReadFrame. For instance, if ReadFrame\n// returns a StreamError with code PROTOCOL_ERROR, ErrorDetail\n// will say exactly what was invalid. ErrorDetail is not guaranteed\n// to return a non-nil value and like the rest of the http2 package,\n// its return value is not protected by an API compatibility promise.\n// ErrorDetail is reset after the next call to ReadFrame.\nfunc (fr *Framer) ErrorDetail() error {\n\treturn fr.errDetail\n}\n\n// ErrFrameTooLarge is returned from Framer.ReadFrame when the peer\n// sends a frame that is larger than declared with SetMaxReadFrameSize.\nvar ErrFrameTooLarge = errors.New(\"http2: frame too large\")\n\n// terminalReadFrameError reports whether err is an unrecoverable\n// error from ReadFrame and no other frames should be read.\nfunc terminalReadFrameError(err error) bool {\n\tif _, ok := err.(StreamError); ok {\n\t\treturn false\n\t}\n\treturn err != nil\n}\n\n// ReadFrame reads a single frame. The returned Frame is only valid\n// until the next call to ReadFrame.\n//\n// If the frame is larger than previously set with SetMaxReadFrameSize, the\n// returned error is ErrFrameTooLarge. Other errors may be of type\n// ConnectionError, StreamError, or anything else from the underlying\n// reader.\n//\n// If ReadFrame returns an error and a non-nil Frame, the Frame's StreamID\n// indicates the stream responsible for the error.\nfunc (fr *Framer) ReadFrame() (Frame, error) {\n\tfr.errDetail = nil\n\tif fr.lastFrame != nil {\n\t\tfr.lastFrame.invalidate()\n\t}\n\tfh, err := readFrameHeader(fr.headerBuf[:], fr.r)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif fh.Length > fr.maxReadSize {\n\t\treturn nil, ErrFrameTooLarge\n\t}\n\tpayload := fr.getReadBuf(fh.Length)\n\tif _, err := io.ReadFull(fr.r, payload); err != nil {\n\t\treturn nil, err\n\t}\n\tf, err := typeFrameParser(fh.Type)(fr.frameCache, fh, fr.countError, payload)\n\tif err != nil {\n\t\tif ce, ok := err.(connError); ok {\n\t\t\treturn nil, fr.connError(ce.Code, ce.Reason)\n\t\t}\n\t\treturn nil, err\n\t}\n\tif err := fr.checkFrameOrder(f); err != nil {\n\t\treturn nil, err\n\t}\n\tif fr.logReads {\n\t\tfr.debugReadLoggerf(\"http2: Framer %p: read %v\", fr, summarizeFrame(f))\n\t}\n\tif fh.Type == FrameHeaders && fr.ReadMetaHeaders != nil {\n\t\treturn fr.readMetaFrame(f.(*HeadersFrame))\n\t}\n\treturn f, nil\n}\n\n// connError returns ConnectionError(code) but first\n// stashes away a public reason to the caller can optionally relay it\n// to the peer before hanging up on them. This might help others debug\n// their implementations.\nfunc (fr *Framer) connError(code ErrCode, reason string) error {\n\tfr.errDetail = errors.New(reason)\n\treturn ConnectionError(code)\n}\n\n// checkFrameOrder reports an error if f is an invalid frame to return\n// next from ReadFrame. Mostly it checks whether HEADERS and\n// CONTINUATION frames are contiguous.\nfunc (fr *Framer) checkFrameOrder(f Frame) error {\n\tlast := fr.lastFrame\n\tfr.lastFrame = f\n\tif fr.AllowIllegalReads {\n\t\treturn nil\n\t}\n\n\tfh := f.Header()\n\tif fr.lastHeaderStream != 0 {\n\t\tif fh.Type != FrameContinuation {\n\t\t\treturn fr.connError(ErrCodeProtocol,\n\t\t\t\tfmt.Sprintf(\"got %s for stream %d; expected CONTINUATION following %s for stream %d\",\n\t\t\t\t\tfh.Type, fh.StreamID,\n\t\t\t\t\tlast.Header().Type, fr.lastHeaderStream))\n\t\t}\n\t\tif fh.StreamID != fr.lastHeaderStream {\n\t\t\treturn fr.connError(ErrCodeProtocol,\n\t\t\t\tfmt.Sprintf(\"got CONTINUATION for stream %d; expected stream %d\",\n\t\t\t\t\tfh.StreamID, fr.lastHeaderStream))\n\t\t}\n\t} else if fh.Type == FrameContinuation {\n\t\treturn fr.connError(ErrCodeProtocol, fmt.Sprintf(\"unexpected CONTINUATION for stream %d\", fh.StreamID))\n\t}\n\n\tswitch fh.Type {\n\tcase FrameHeaders, FrameContinuation:\n\t\tif fh.Flags.Has(FlagHeadersEndHeaders) {\n\t\t\tfr.lastHeaderStream = 0\n\t\t} else {\n\t\t\tfr.lastHeaderStream = fh.StreamID\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// A DataFrame conveys arbitrary, variable-length sequences of octets\n// associated with a stream.\n// See https://httpwg.org/specs/rfc7540.html#rfc.section.6.1\ntype DataFrame struct {\n\tFrameHeader\n\tdata []byte\n}\n\nfunc (f *DataFrame) StreamEnded() bool {\n\treturn f.FrameHeader.Flags.Has(FlagDataEndStream)\n}\n\n// Data returns the frame's data octets, not including any padding\n// size byte or padding suffix bytes.\n// The caller must not retain the returned memory past the next\n// call to ReadFrame.\nfunc (f *DataFrame) Data() []byte {\n\tf.checkValid()\n\treturn f.data\n}\n\nfunc parseDataFrame(fc *frameCache, fh FrameHeader, countError func(string), payload []byte) (Frame, error) {\n\tif fh.StreamID == 0 {\n\t\t// DATA frames MUST be associated with a stream. If a\n\t\t// DATA frame is received whose stream identifier\n\t\t// field is 0x0, the recipient MUST respond with a\n\t\t// connection error (Section 5.4.1) of type\n\t\t// PROTOCOL_ERROR.\n\t\tcountError(\"frame_data_stream_0\")\n\t\treturn nil, connError{ErrCodeProtocol, \"DATA frame with stream ID 0\"}\n\t}\n\tf := fc.getDataFrame()\n\tf.FrameHeader = fh\n\n\tvar padSize byte\n\tif fh.Flags.Has(FlagDataPadded) {\n\t\tvar err error\n\t\tpayload, padSize, err = readByte(payload)\n\t\tif err != nil {\n\t\t\tcountError(\"frame_data_pad_byte_short\")\n\t\t\treturn nil, err\n\t\t}\n\t}\n\tif int(padSize) > len(payload) {\n\t\t// If the length of the padding is greater than the\n\t\t// length of the frame payload, the recipient MUST\n\t\t// treat this as a connection error.\n\t\t// Filed: https://github.com/http2/http2-spec/issues/610\n\t\tcountError(\"frame_data_pad_too_big\")\n\t\treturn nil, connError{ErrCodeProtocol, \"pad size larger than data payload\"}\n\t}\n\tf.data = payload[:len(payload)-int(padSize)]\n\treturn f, nil\n}\n\nvar (\n\terrStreamID    = errors.New(\"invalid stream ID\")\n\terrDepStreamID = errors.New(\"invalid dependent stream ID\")\n\terrPadLength   = errors.New(\"pad length too large\")\n\terrPadBytes    = errors.New(\"padding bytes must all be zeros unless AllowIllegalWrites is enabled\")\n)\n\nfunc validStreamIDOrZero(streamID uint32) bool {\n\treturn streamID&(1<<31) == 0\n}\n\nfunc validStreamID(streamID uint32) bool {\n\treturn streamID != 0 && streamID&(1<<31) == 0\n}\n\n// WriteData writes a DATA frame.\n//\n// It will perform exactly one Write to the underlying Writer.\n// It is the caller's responsibility not to violate the maximum frame size\n// and to not call other Write methods concurrently.\nfunc (f *Framer) WriteData(streamID uint32, endStream bool, data []byte) error {\n\treturn f.WriteDataPadded(streamID, endStream, data, nil)\n}\n\n// WriteDataPadded writes a DATA frame with optional padding.\n//\n// If pad is nil, the padding bit is not sent.\n// The length of pad must not exceed 255 bytes.\n// The bytes of pad must all be zero, unless f.AllowIllegalWrites is set.\n//\n// It will perform exactly one Write to the underlying Writer.\n// It is the caller's responsibility not to violate the maximum frame size\n// and to not call other Write methods concurrently.\nfunc (f *Framer) WriteDataPadded(streamID uint32, endStream bool, data, pad []byte) error {\n\tif err := f.startWriteDataPadded(streamID, endStream, data, pad); err != nil {\n\t\treturn err\n\t}\n\treturn f.endWrite()\n}\n\n// startWriteDataPadded is WriteDataPadded, but only writes the frame to the Framer's internal buffer.\n// The caller should call endWrite to flush the frame to the underlying writer.\nfunc (f *Framer) startWriteDataPadded(streamID uint32, endStream bool, data, pad []byte) error {\n\tif !validStreamID(streamID) && !f.AllowIllegalWrites {\n\t\treturn errStreamID\n\t}\n\tif len(pad) > 0 {\n\t\tif len(pad) > 255 {\n\t\t\treturn errPadLength\n\t\t}\n\t\tif !f.AllowIllegalWrites {\n\t\t\tfor _, b := range pad {\n\t\t\t\tif b != 0 {\n\t\t\t\t\t// \"Padding octets MUST be set to zero when sending.\"\n\t\t\t\t\treturn errPadBytes\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tvar flags Flags\n\tif endStream {\n\t\tflags |= FlagDataEndStream\n\t}\n\tif pad != nil {\n\t\tflags |= FlagDataPadded\n\t}\n\tf.startWrite(FrameData, flags, streamID)\n\tif pad != nil {\n\t\tf.wbuf = append(f.wbuf, byte(len(pad)))\n\t}\n\tf.wbuf = append(f.wbuf, data...)\n\tf.wbuf = append(f.wbuf, pad...)\n\treturn nil\n}\n\n// A SettingsFrame conveys configuration parameters that affect how\n// endpoints communicate, such as preferences and constraints on peer\n// behavior.\n//\n// See https://httpwg.org/specs/rfc7540.html#SETTINGS\ntype SettingsFrame struct {\n\tFrameHeader\n\tp []byte\n}\n\nfunc parseSettingsFrame(_ *frameCache, fh FrameHeader, countError func(string), p []byte) (Frame, error) {\n\tif fh.Flags.Has(FlagSettingsAck) && fh.Length > 0 {\n\t\t// When this (ACK 0x1) bit is set, the payload of the\n\t\t// SETTINGS frame MUST be empty. Receipt of a\n\t\t// SETTINGS frame with the ACK flag set and a length\n\t\t// field value other than 0 MUST be treated as a\n\t\t// connection error (Section 5.4.1) of type\n\t\t// FRAME_SIZE_ERROR.\n\t\tcountError(\"frame_settings_ack_with_length\")\n\t\treturn nil, ConnectionError(ErrCodeFrameSize)\n\t}\n\tif fh.StreamID != 0 {\n\t\t// SETTINGS frames always apply to a connection,\n\t\t// never a single stream. The stream identifier for a\n\t\t// SETTINGS frame MUST be zero (0x0).  If an endpoint\n\t\t// receives a SETTINGS frame whose stream identifier\n\t\t// field is anything other than 0x0, the endpoint MUST\n\t\t// respond with a connection error (Section 5.4.1) of\n\t\t// type PROTOCOL_ERROR.\n\t\tcountError(\"frame_settings_has_stream\")\n\t\treturn nil, ConnectionError(ErrCodeProtocol)\n\t}\n\tif len(p)%6 != 0 {\n\t\tcountError(\"frame_settings_mod_6\")\n\t\t// Expecting even number of 6 byte settings.\n\t\treturn nil, ConnectionError(ErrCodeFrameSize)\n\t}\n\tf := &SettingsFrame{FrameHeader: fh, p: p}\n\tif v, ok := f.Value(SettingInitialWindowSize); ok && v > (1<<31)-1 {\n\t\tcountError(\"frame_settings_window_size_too_big\")\n\t\t// Values above the maximum flow control window size of 2^31 - 1 MUST\n\t\t// be treated as a connection error (Section 5.4.1) of type\n\t\t// FLOW_CONTROL_ERROR.\n\t\treturn nil, ConnectionError(ErrCodeFlowControl)\n\t}\n\treturn f, nil\n}\n\nfunc (f *SettingsFrame) IsAck() bool {\n\treturn f.FrameHeader.Flags.Has(FlagSettingsAck)\n}\n\nfunc (f *SettingsFrame) Value(id SettingID) (v uint32, ok bool) {\n\tf.checkValid()\n\tfor i := 0; i < f.NumSettings(); i++ {\n\t\tif s := f.Setting(i); s.ID == id {\n\t\t\treturn s.Val, true\n\t\t}\n\t}\n\treturn 0, false\n}\n\n// Setting returns the setting from the frame at the given 0-based index.\n// The index must be >= 0 and less than f.NumSettings().\nfunc (f *SettingsFrame) Setting(i int) Setting {\n\tbuf := f.p\n\treturn Setting{\n\t\tID:  SettingID(binary.BigEndian.Uint16(buf[i*6 : i*6+2])),\n\t\tVal: binary.BigEndian.Uint32(buf[i*6+2 : i*6+6]),\n\t}\n}\n\nfunc (f *SettingsFrame) NumSettings() int { return len(f.p) / 6 }\n\n// HasDuplicates reports whether f contains any duplicate setting IDs.\nfunc (f *SettingsFrame) HasDuplicates() bool {\n\tnum := f.NumSettings()\n\tif num == 0 {\n\t\treturn false\n\t}\n\t// If it's small enough (the common case), just do the n^2\n\t// thing and avoid a map allocation.\n\tif num < 10 {\n\t\tfor i := 0; i < num; i++ {\n\t\t\tidi := f.Setting(i).ID\n\t\t\tfor j := i + 1; j < num; j++ {\n\t\t\t\tidj := f.Setting(j).ID\n\t\t\t\tif idi == idj {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn false\n\t}\n\tseen := map[SettingID]bool{}\n\tfor i := 0; i < num; i++ {\n\t\tid := f.Setting(i).ID\n\t\tif seen[id] {\n\t\t\treturn true\n\t\t}\n\t\tseen[id] = true\n\t}\n\treturn false\n}\n\n// ForeachSetting runs fn for each setting.\n// It stops and returns the first error.\nfunc (f *SettingsFrame) ForeachSetting(fn func(Setting) error) error {\n\tf.checkValid()\n\tfor i := 0; i < f.NumSettings(); i++ {\n\t\tif err := fn(f.Setting(i)); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// WriteSettings writes a SETTINGS frame with zero or more settings\n// specified and the ACK bit not set.\n//\n// It will perform exactly one Write to the underlying Writer.\n// It is the caller's responsibility to not call other Write methods concurrently.\nfunc (f *Framer) WriteSettings(settings ...Setting) error {\n\tf.startWrite(FrameSettings, 0, 0)\n\tfor _, s := range settings {\n\t\tf.writeUint16(uint16(s.ID))\n\t\tf.writeUint32(s.Val)\n\t}\n\treturn f.endWrite()\n}\n\n// WriteSettingsAck writes an empty SETTINGS frame with the ACK bit set.\n//\n// It will perform exactly one Write to the underlying Writer.\n// It is the caller's responsibility to not call other Write methods concurrently.\nfunc (f *Framer) WriteSettingsAck() error {\n\tf.startWrite(FrameSettings, FlagSettingsAck, 0)\n\treturn f.endWrite()\n}\n\n// A PingFrame is a mechanism for measuring a minimal round trip time\n// from the sender, as well as determining whether an idle connection\n// is still functional.\n// See https://httpwg.org/specs/rfc7540.html#rfc.section.6.7\ntype PingFrame struct {\n\tFrameHeader\n\tData [8]byte\n}\n\nfunc (f *PingFrame) IsAck() bool { return f.Flags.Has(FlagPingAck) }\n\nfunc parsePingFrame(_ *frameCache, fh FrameHeader, countError func(string), payload []byte) (Frame, error) {\n\tif len(payload) != 8 {\n\t\tcountError(\"frame_ping_length\")\n\t\treturn nil, ConnectionError(ErrCodeFrameSize)\n\t}\n\tif fh.StreamID != 0 {\n\t\tcountError(\"frame_ping_has_stream\")\n\t\treturn nil, ConnectionError(ErrCodeProtocol)\n\t}\n\tf := &PingFrame{FrameHeader: fh}\n\tcopy(f.Data[:], payload)\n\treturn f, nil\n}\n\nfunc (f *Framer) WritePing(ack bool, data [8]byte) error {\n\tvar flags Flags\n\tif ack {\n\t\tflags = FlagPingAck\n\t}\n\tf.startWrite(FramePing, flags, 0)\n\tf.writeBytes(data[:])\n\treturn f.endWrite()\n}\n\n// A GoAwayFrame informs the remote peer to stop creating streams on this connection.\n// See https://httpwg.org/specs/rfc7540.html#rfc.section.6.8\ntype GoAwayFrame struct {\n\tFrameHeader\n\tLastStreamID uint32\n\tErrCode      ErrCode\n\tdebugData    []byte\n}\n\n// DebugData returns any debug data in the GOAWAY frame. Its contents\n// are not defined.\n// The caller must not retain the returned memory past the next\n// call to ReadFrame.\nfunc (f *GoAwayFrame) DebugData() []byte {\n\tf.checkValid()\n\treturn f.debugData\n}\n\nfunc parseGoAwayFrame(_ *frameCache, fh FrameHeader, countError func(string), p []byte) (Frame, error) {\n\tif fh.StreamID != 0 {\n\t\tcountError(\"frame_goaway_has_stream\")\n\t\treturn nil, ConnectionError(ErrCodeProtocol)\n\t}\n\tif len(p) < 8 {\n\t\tcountError(\"frame_goaway_short\")\n\t\treturn nil, ConnectionError(ErrCodeFrameSize)\n\t}\n\treturn &GoAwayFrame{\n\t\tFrameHeader:  fh,\n\t\tLastStreamID: binary.BigEndian.Uint32(p[:4]) & (1<<31 - 1),\n\t\tErrCode:      ErrCode(binary.BigEndian.Uint32(p[4:8])),\n\t\tdebugData:    p[8:],\n\t}, nil\n}\n\nfunc (f *Framer) WriteGoAway(maxStreamID uint32, code ErrCode, debugData []byte) error {\n\tf.startWrite(FrameGoAway, 0, 0)\n\tf.writeUint32(maxStreamID & (1<<31 - 1))\n\tf.writeUint32(uint32(code))\n\tf.writeBytes(debugData)\n\treturn f.endWrite()\n}\n\n// An UnknownFrame is the frame type returned when the frame type is unknown\n// or no specific frame type parser exists.\ntype UnknownFrame struct {\n\tFrameHeader\n\tp []byte\n}\n\n// Payload returns the frame's payload (after the header).  It is not\n// valid to call this method after a subsequent call to\n// Framer.ReadFrame, nor is it valid to retain the returned slice.\n// The memory is owned by the Framer and is invalidated when the next\n// frame is read.\nfunc (f *UnknownFrame) Payload() []byte {\n\tf.checkValid()\n\treturn f.p\n}\n\nfunc parseUnknownFrame(_ *frameCache, fh FrameHeader, countError func(string), p []byte) (Frame, error) {\n\treturn &UnknownFrame{fh, p}, nil\n}\n\n// A WindowUpdateFrame is used to implement flow control.\n// See https://httpwg.org/specs/rfc7540.html#rfc.section.6.9\ntype WindowUpdateFrame struct {\n\tFrameHeader\n\tIncrement uint32 // never read with high bit set\n}\n\nfunc parseWindowUpdateFrame(_ *frameCache, fh FrameHeader, countError func(string), p []byte) (Frame, error) {\n\tif len(p) != 4 {\n\t\tcountError(\"frame_windowupdate_bad_len\")\n\t\treturn nil, ConnectionError(ErrCodeFrameSize)\n\t}\n\tinc := binary.BigEndian.Uint32(p[:4]) & 0x7fffffff // mask off high reserved bit\n\tif inc == 0 {\n\t\t// A receiver MUST treat the receipt of a\n\t\t// WINDOW_UPDATE frame with an flow control window\n\t\t// increment of 0 as a stream error (Section 5.4.2) of\n\t\t// type PROTOCOL_ERROR; errors on the connection flow\n\t\t// control window MUST be treated as a connection\n\t\t// error (Section 5.4.1).\n\t\tif fh.StreamID == 0 {\n\t\t\tcountError(\"frame_windowupdate_zero_inc_conn\")\n\t\t\treturn nil, ConnectionError(ErrCodeProtocol)\n\t\t}\n\t\tcountError(\"frame_windowupdate_zero_inc_stream\")\n\t\treturn nil, streamError(fh.StreamID, ErrCodeProtocol)\n\t}\n\treturn &WindowUpdateFrame{\n\t\tFrameHeader: fh,\n\t\tIncrement:   inc,\n\t}, nil\n}\n\n// WriteWindowUpdate writes a WINDOW_UPDATE frame.\n// The increment value must be between 1 and 2,147,483,647, inclusive.\n// If the Stream ID is zero, the window update applies to the\n// connection as a whole.\nfunc (f *Framer) WriteWindowUpdate(streamID, incr uint32) error {\n\t// \"The legal range for the increment to the flow control window is 1 to 2^31-1 (2,147,483,647) octets.\"\n\tif (incr < 1 || incr > 2147483647) && !f.AllowIllegalWrites {\n\t\treturn errors.New(\"illegal window increment value\")\n\t}\n\tf.startWrite(FrameWindowUpdate, 0, streamID)\n\tf.writeUint32(incr)\n\treturn f.endWrite()\n}\n\n// A HeadersFrame is used to open a stream and additionally carries a\n// header block fragment.\ntype HeadersFrame struct {\n\tFrameHeader\n\n\t// Priority is set if FlagHeadersPriority is set in the FrameHeader.\n\tPriority PriorityParam\n\n\theaderFragBuf []byte // not owned\n}\n\nfunc (f *HeadersFrame) HeaderBlockFragment() []byte {\n\tf.checkValid()\n\treturn f.headerFragBuf\n}\n\nfunc (f *HeadersFrame) HeadersEnded() bool {\n\treturn f.FrameHeader.Flags.Has(FlagHeadersEndHeaders)\n}\n\nfunc (f *HeadersFrame) StreamEnded() bool {\n\treturn f.FrameHeader.Flags.Has(FlagHeadersEndStream)\n}\n\nfunc (f *HeadersFrame) HasPriority() bool {\n\treturn f.FrameHeader.Flags.Has(FlagHeadersPriority)\n}\n\nfunc parseHeadersFrame(_ *frameCache, fh FrameHeader, countError func(string), p []byte) (_ Frame, err error) {\n\thf := &HeadersFrame{\n\t\tFrameHeader: fh,\n\t}\n\tif fh.StreamID == 0 {\n\t\t// HEADERS frames MUST be associated with a stream. If a HEADERS frame\n\t\t// is received whose stream identifier field is 0x0, the recipient MUST\n\t\t// respond with a connection error (Section 5.4.1) of type\n\t\t// PROTOCOL_ERROR.\n\t\tcountError(\"frame_headers_zero_stream\")\n\t\treturn nil, connError{ErrCodeProtocol, \"HEADERS frame with stream ID 0\"}\n\t}\n\tvar padLength uint8\n\tif fh.Flags.Has(FlagHeadersPadded) {\n\t\tif p, padLength, err = readByte(p); err != nil {\n\t\t\tcountError(\"frame_headers_pad_short\")\n\t\t\treturn\n\t\t}\n\t}\n\tif fh.Flags.Has(FlagHeadersPriority) {\n\t\tvar v uint32\n\t\tp, v, err = readUint32(p)\n\t\tif err != nil {\n\t\t\tcountError(\"frame_headers_prio_short\")\n\t\t\treturn nil, err\n\t\t}\n\t\thf.Priority.StreamDep = v & 0x7fffffff\n\t\thf.Priority.Exclusive = (v != hf.Priority.StreamDep) // high bit was set\n\t\tp, hf.Priority.Weight, err = readByte(p)\n\t\tif err != nil {\n\t\t\tcountError(\"frame_headers_prio_weight_short\")\n\t\t\treturn nil, err\n\t\t}\n\t}\n\tif len(p)-int(padLength) < 0 {\n\t\tcountError(\"frame_headers_pad_too_big\")\n\t\treturn nil, streamError(fh.StreamID, ErrCodeProtocol)\n\t}\n\thf.headerFragBuf = p[:len(p)-int(padLength)]\n\treturn hf, nil\n}\n\n// HeadersFrameParam are the parameters for writing a HEADERS frame.\ntype HeadersFrameParam struct {\n\t// StreamID is the required Stream ID to initiate.\n\tStreamID uint32\n\t// BlockFragment is part (or all) of a Header Block.\n\tBlockFragment []byte\n\n\t// EndStream indicates that the header block is the last that\n\t// the endpoint will send for the identified stream. Setting\n\t// this flag causes the stream to enter one of \"half closed\"\n\t// states.\n\tEndStream bool\n\n\t// EndHeaders indicates that this frame contains an entire\n\t// header block and is not followed by any\n\t// CONTINUATION frames.\n\tEndHeaders bool\n\n\t// PadLength is the optional number of bytes of zeros to add\n\t// to this frame.\n\tPadLength uint8\n\n\t// Priority, if non-zero, includes stream priority information\n\t// in the HEADER frame.\n\tPriority PriorityParam\n}\n\n// WriteHeaders writes a single HEADERS frame.\n//\n// This is a low-level header writing method. Encoding headers and\n// splitting them into any necessary CONTINUATION frames is handled\n// elsewhere.\n//\n// It will perform exactly one Write to the underlying Writer.\n// It is the caller's responsibility to not call other Write methods concurrently.\nfunc (f *Framer) WriteHeaders(p HeadersFrameParam) error {\n\tif !validStreamID(p.StreamID) && !f.AllowIllegalWrites {\n\t\treturn errStreamID\n\t}\n\tvar flags Flags\n\tif p.PadLength != 0 {\n\t\tflags |= FlagHeadersPadded\n\t}\n\tif p.EndStream {\n\t\tflags |= FlagHeadersEndStream\n\t}\n\tif p.EndHeaders {\n\t\tflags |= FlagHeadersEndHeaders\n\t}\n\tif !p.Priority.IsZero() {\n\t\tflags |= FlagHeadersPriority\n\t}\n\tf.startWrite(FrameHeaders, flags, p.StreamID)\n\tif p.PadLength != 0 {\n\t\tf.writeByte(p.PadLength)\n\t}\n\tif !p.Priority.IsZero() {\n\t\tv := p.Priority.StreamDep\n\t\tif !validStreamIDOrZero(v) && !f.AllowIllegalWrites {\n\t\t\treturn errDepStreamID\n\t\t}\n\t\tif p.Priority.Exclusive {\n\t\t\tv |= 1 << 31\n\t\t}\n\t\tf.writeUint32(v)\n\t\tf.writeByte(p.Priority.Weight)\n\t}\n\tf.wbuf = append(f.wbuf, p.BlockFragment...)\n\tf.wbuf = append(f.wbuf, padZeros[:p.PadLength]...)\n\treturn f.endWrite()\n}\n\n// A PriorityFrame specifies the sender-advised priority of a stream.\n// See https://httpwg.org/specs/rfc7540.html#rfc.section.6.3\ntype PriorityFrame struct {\n\tFrameHeader\n\tPriorityParam\n}\n\n// PriorityParam are the stream prioritzation parameters.\ntype PriorityParam struct {\n\t// StreamDep is a 31-bit stream identifier for the\n\t// stream that this stream depends on. Zero means no\n\t// dependency.\n\tStreamDep uint32\n\n\t// Exclusive is whether the dependency is exclusive.\n\tExclusive bool\n\n\t// Weight is the stream's zero-indexed weight. It should be\n\t// set together with StreamDep, or neither should be set. Per\n\t// the spec, \"Add one to the value to obtain a weight between\n\t// 1 and 256.\"\n\tWeight uint8\n}\n\nfunc (p PriorityParam) IsZero() bool {\n\treturn p == PriorityParam{}\n}\n\nfunc parsePriorityFrame(_ *frameCache, fh FrameHeader, countError func(string), payload []byte) (Frame, error) {\n\tif fh.StreamID == 0 {\n\t\tcountError(\"frame_priority_zero_stream\")\n\t\treturn nil, connError{ErrCodeProtocol, \"PRIORITY frame with stream ID 0\"}\n\t}\n\tif len(payload) != 5 {\n\t\tcountError(\"frame_priority_bad_length\")\n\t\treturn nil, connError{ErrCodeFrameSize, fmt.Sprintf(\"PRIORITY frame payload size was %d; want 5\", len(payload))}\n\t}\n\tv := binary.BigEndian.Uint32(payload[:4])\n\tstreamID := v & 0x7fffffff // mask off high bit\n\treturn &PriorityFrame{\n\t\tFrameHeader: fh,\n\t\tPriorityParam: PriorityParam{\n\t\t\tWeight:    payload[4],\n\t\t\tStreamDep: streamID,\n\t\t\tExclusive: streamID != v, // was high bit set?\n\t\t},\n\t}, nil\n}\n\n// WritePriority writes a PRIORITY frame.\n//\n// It will perform exactly one Write to the underlying Writer.\n// It is the caller's responsibility to not call other Write methods concurrently.\nfunc (f *Framer) WritePriority(streamID uint32, p PriorityParam) error {\n\tif !validStreamID(streamID) && !f.AllowIllegalWrites {\n\t\treturn errStreamID\n\t}\n\tif !validStreamIDOrZero(p.StreamDep) {\n\t\treturn errDepStreamID\n\t}\n\tf.startWrite(FramePriority, 0, streamID)\n\tv := p.StreamDep\n\tif p.Exclusive {\n\t\tv |= 1 << 31\n\t}\n\tf.writeUint32(v)\n\tf.writeByte(p.Weight)\n\treturn f.endWrite()\n}\n\n// A RSTStreamFrame allows for abnormal termination of a stream.\n// See https://httpwg.org/specs/rfc7540.html#rfc.section.6.4\ntype RSTStreamFrame struct {\n\tFrameHeader\n\tErrCode ErrCode\n}\n\nfunc parseRSTStreamFrame(_ *frameCache, fh FrameHeader, countError func(string), p []byte) (Frame, error) {\n\tif len(p) != 4 {\n\t\tcountError(\"frame_rststream_bad_len\")\n\t\treturn nil, ConnectionError(ErrCodeFrameSize)\n\t}\n\tif fh.StreamID == 0 {\n\t\tcountError(\"frame_rststream_zero_stream\")\n\t\treturn nil, ConnectionError(ErrCodeProtocol)\n\t}\n\treturn &RSTStreamFrame{fh, ErrCode(binary.BigEndian.Uint32(p[:4]))}, nil\n}\n\n// WriteRSTStream writes a RST_STREAM frame.\n//\n// It will perform exactly one Write to the underlying Writer.\n// It is the caller's responsibility to not call other Write methods concurrently.\nfunc (f *Framer) WriteRSTStream(streamID uint32, code ErrCode) error {\n\tif !validStreamID(streamID) && !f.AllowIllegalWrites {\n\t\treturn errStreamID\n\t}\n\tf.startWrite(FrameRSTStream, 0, streamID)\n\tf.writeUint32(uint32(code))\n\treturn f.endWrite()\n}\n\n// A ContinuationFrame is used to continue a sequence of header block fragments.\n// See https://httpwg.org/specs/rfc7540.html#rfc.section.6.10\ntype ContinuationFrame struct {\n\tFrameHeader\n\theaderFragBuf []byte\n}\n\nfunc parseContinuationFrame(_ *frameCache, fh FrameHeader, countError func(string), p []byte) (Frame, error) {\n\tif fh.StreamID == 0 {\n\t\tcountError(\"frame_continuation_zero_stream\")\n\t\treturn nil, connError{ErrCodeProtocol, \"CONTINUATION frame with stream ID 0\"}\n\t}\n\treturn &ContinuationFrame{fh, p}, nil\n}\n\nfunc (f *ContinuationFrame) HeaderBlockFragment() []byte {\n\tf.checkValid()\n\treturn f.headerFragBuf\n}\n\nfunc (f *ContinuationFrame) HeadersEnded() bool {\n\treturn f.FrameHeader.Flags.Has(FlagContinuationEndHeaders)\n}\n\n// WriteContinuation writes a CONTINUATION frame.\n//\n// It will perform exactly one Write to the underlying Writer.\n// It is the caller's responsibility to not call other Write methods concurrently.\nfunc (f *Framer) WriteContinuation(streamID uint32, endHeaders bool, headerBlockFragment []byte) error {\n\tif !validStreamID(streamID) && !f.AllowIllegalWrites {\n\t\treturn errStreamID\n\t}\n\tvar flags Flags\n\tif endHeaders {\n\t\tflags |= FlagContinuationEndHeaders\n\t}\n\tf.startWrite(FrameContinuation, flags, streamID)\n\tf.wbuf = append(f.wbuf, headerBlockFragment...)\n\treturn f.endWrite()\n}\n\n// A PushPromiseFrame is used to initiate a server stream.\n// See https://httpwg.org/specs/rfc7540.html#rfc.section.6.6\ntype PushPromiseFrame struct {\n\tFrameHeader\n\tPromiseID     uint32\n\theaderFragBuf []byte // not owned\n}\n\nfunc (f *PushPromiseFrame) HeaderBlockFragment() []byte {\n\tf.checkValid()\n\treturn f.headerFragBuf\n}\n\nfunc (f *PushPromiseFrame) HeadersEnded() bool {\n\treturn f.FrameHeader.Flags.Has(FlagPushPromiseEndHeaders)\n}\n\nfunc parsePushPromise(_ *frameCache, fh FrameHeader, countError func(string), p []byte) (_ Frame, err error) {\n\tpp := &PushPromiseFrame{\n\t\tFrameHeader: fh,\n\t}\n\tif pp.StreamID == 0 {\n\t\t// PUSH_PROMISE frames MUST be associated with an existing,\n\t\t// peer-initiated stream. The stream identifier of a\n\t\t// PUSH_PROMISE frame indicates the stream it is associated\n\t\t// with. If the stream identifier field specifies the value\n\t\t// 0x0, a recipient MUST respond with a connection error\n\t\t// (Section 5.4.1) of type PROTOCOL_ERROR.\n\t\tcountError(\"frame_pushpromise_zero_stream\")\n\t\treturn nil, ConnectionError(ErrCodeProtocol)\n\t}\n\t// The PUSH_PROMISE frame includes optional padding.\n\t// Padding fields and flags are identical to those defined for DATA frames\n\tvar padLength uint8\n\tif fh.Flags.Has(FlagPushPromisePadded) {\n\t\tif p, padLength, err = readByte(p); err != nil {\n\t\t\tcountError(\"frame_pushpromise_pad_short\")\n\t\t\treturn\n\t\t}\n\t}\n\n\tp, pp.PromiseID, err = readUint32(p)\n\tif err != nil {\n\t\tcountError(\"frame_pushpromise_promiseid_short\")\n\t\treturn\n\t}\n\tpp.PromiseID = pp.PromiseID & (1<<31 - 1)\n\n\tif int(padLength) > len(p) {\n\t\t// like the DATA frame, error out if padding is longer than the body.\n\t\tcountError(\"frame_pushpromise_pad_too_big\")\n\t\treturn nil, ConnectionError(ErrCodeProtocol)\n\t}\n\tpp.headerFragBuf = p[:len(p)-int(padLength)]\n\treturn pp, nil\n}\n\n// PushPromiseParam are the parameters for writing a PUSH_PROMISE frame.\ntype PushPromiseParam struct {\n\t// StreamID is the required Stream ID to initiate.\n\tStreamID uint32\n\n\t// PromiseID is the required Stream ID which this\n\t// Push Promises\n\tPromiseID uint32\n\n\t// BlockFragment is part (or all) of a Header Block.\n\tBlockFragment []byte\n\n\t// EndHeaders indicates that this frame contains an entire\n\t// header block and is not followed by any\n\t// CONTINUATION frames.\n\tEndHeaders bool\n\n\t// PadLength is the optional number of bytes of zeros to add\n\t// to this frame.\n\tPadLength uint8\n}\n\n// WritePushPromise writes a single PushPromise Frame.\n//\n// As with Header Frames, This is the low level call for writing\n// individual frames. Continuation frames are handled elsewhere.\n//\n// It will perform exactly one Write to the underlying Writer.\n// It is the caller's responsibility to not call other Write methods concurrently.\nfunc (f *Framer) WritePushPromise(p PushPromiseParam) error {\n\tif !validStreamID(p.StreamID) && !f.AllowIllegalWrites {\n\t\treturn errStreamID\n\t}\n\tvar flags Flags\n\tif p.PadLength != 0 {\n\t\tflags |= FlagPushPromisePadded\n\t}\n\tif p.EndHeaders {\n\t\tflags |= FlagPushPromiseEndHeaders\n\t}\n\tf.startWrite(FramePushPromise, flags, p.StreamID)\n\tif p.PadLength != 0 {\n\t\tf.writeByte(p.PadLength)\n\t}\n\tif !validStreamID(p.PromiseID) && !f.AllowIllegalWrites {\n\t\treturn errStreamID\n\t}\n\tf.writeUint32(p.PromiseID)\n\tf.wbuf = append(f.wbuf, p.BlockFragment...)\n\tf.wbuf = append(f.wbuf, padZeros[:p.PadLength]...)\n\treturn f.endWrite()\n}\n\n// WriteRawFrame writes a raw frame. This can be used to write\n// extension frames unknown to this package.\nfunc (f *Framer) WriteRawFrame(t FrameType, flags Flags, streamID uint32, payload []byte) error {\n\tf.startWrite(t, flags, streamID)\n\tf.writeBytes(payload)\n\treturn f.endWrite()\n}\n\nfunc readByte(p []byte) (remain []byte, b byte, err error) {\n\tif len(p) == 0 {\n\t\treturn nil, 0, io.ErrUnexpectedEOF\n\t}\n\treturn p[1:], p[0], nil\n}\n\nfunc readUint32(p []byte) (remain []byte, v uint32, err error) {\n\tif len(p) < 4 {\n\t\treturn nil, 0, io.ErrUnexpectedEOF\n\t}\n\treturn p[4:], binary.BigEndian.Uint32(p[:4]), nil\n}\n\ntype streamEnder interface {\n\tStreamEnded() bool\n}\n\ntype headersEnder interface {\n\tHeadersEnded() bool\n}\n\ntype headersOrContinuation interface {\n\theadersEnder\n\tHeaderBlockFragment() []byte\n}\n\n// A MetaHeadersFrame is the representation of one HEADERS frame and\n// zero or more contiguous CONTINUATION frames and the decoding of\n// their HPACK-encoded contents.\n//\n// This type of frame does not appear on the wire and is only returned\n// by the Framer when Framer.ReadMetaHeaders is set.\ntype MetaHeadersFrame struct {\n\t*HeadersFrame\n\n\t// Fields are the fields contained in the HEADERS and\n\t// CONTINUATION frames. The underlying slice is owned by the\n\t// Framer and must not be retained after the next call to\n\t// ReadFrame.\n\t//\n\t// Fields are guaranteed to be in the correct http2 order and\n\t// not have unknown pseudo header fields or invalid header\n\t// field names or values. Required pseudo header fields may be\n\t// missing, however. Use the MetaHeadersFrame.Pseudo accessor\n\t// method access pseudo headers.\n\tFields []hpack.HeaderField\n\n\t// Truncated is whether the max header list size limit was hit\n\t// and Fields is incomplete. The hpack decoder state is still\n\t// valid, however.\n\tTruncated bool\n}\n\n// PseudoValue returns the given pseudo header field's value.\n// The provided pseudo field should not contain the leading colon.\nfunc (mh *MetaHeadersFrame) PseudoValue(pseudo string) string {\n\tfor _, hf := range mh.Fields {\n\t\tif !hf.IsPseudo() {\n\t\t\treturn \"\"\n\t\t}\n\t\tif hf.Name[1:] == pseudo {\n\t\t\treturn hf.Value\n\t\t}\n\t}\n\treturn \"\"\n}\n\n// RegularFields returns the regular (non-pseudo) header fields of mh.\n// The caller does not own the returned slice.\nfunc (mh *MetaHeadersFrame) RegularFields() []hpack.HeaderField {\n\tfor i, hf := range mh.Fields {\n\t\tif !hf.IsPseudo() {\n\t\t\treturn mh.Fields[i:]\n\t\t}\n\t}\n\treturn nil\n}\n\n// PseudoFields returns the pseudo header fields of mh.\n// The caller does not own the returned slice.\nfunc (mh *MetaHeadersFrame) PseudoFields() []hpack.HeaderField {\n\tfor i, hf := range mh.Fields {\n\t\tif !hf.IsPseudo() {\n\t\t\treturn mh.Fields[:i]\n\t\t}\n\t}\n\treturn mh.Fields\n}\n\nfunc (mh *MetaHeadersFrame) checkPseudos() error {\n\tvar isRequest, isResponse bool\n\tpf := mh.PseudoFields()\n\tfor i, hf := range pf {\n\t\tswitch hf.Name {\n\t\tcase \":method\", \":path\", \":scheme\", \":authority\", \":protocol\":\n\t\t\tisRequest = true\n\t\tcase \":status\":\n\t\t\tisResponse = true\n\t\tdefault:\n\t\t\treturn pseudoHeaderError(hf.Name)\n\t\t}\n\t\t// Check for duplicates.\n\t\t// This would be a bad algorithm, but N is 5.\n\t\t// And this doesn't allocate.\n\t\tfor _, hf2 := range pf[:i] {\n\t\t\tif hf.Name == hf2.Name {\n\t\t\t\treturn duplicatePseudoHeaderError(hf.Name)\n\t\t\t}\n\t\t}\n\t}\n\tif isRequest && isResponse {\n\t\treturn errMixPseudoHeaderTypes\n\t}\n\treturn nil\n}\n\nfunc (fr *Framer) maxHeaderStringLen() int {\n\tv := int(fr.maxHeaderListSize())\n\tif v < 0 {\n\t\t// If maxHeaderListSize overflows an int, use no limit (0).\n\t\treturn 0\n\t}\n\treturn v\n}\n\n// readMetaFrame returns 0 or more CONTINUATION frames from fr and\n// merge them into the provided hf and returns a MetaHeadersFrame\n// with the decoded hpack values.\nfunc (fr *Framer) readMetaFrame(hf *HeadersFrame) (Frame, error) {\n\tif fr.AllowIllegalReads {\n\t\treturn nil, errors.New(\"illegal use of AllowIllegalReads with ReadMetaHeaders\")\n\t}\n\tmh := &MetaHeadersFrame{\n\t\tHeadersFrame: hf,\n\t}\n\tvar remainSize = fr.maxHeaderListSize()\n\tvar sawRegular bool\n\n\tvar invalid error // pseudo header field errors\n\thdec := fr.ReadMetaHeaders\n\thdec.SetEmitEnabled(true)\n\thdec.SetMaxStringLength(fr.maxHeaderStringLen())\n\thdec.SetEmitFunc(func(hf hpack.HeaderField) {\n\t\tif VerboseLogs && fr.logReads {\n\t\t\tfr.debugReadLoggerf(\"http2: decoded hpack field %+v\", hf)\n\t\t}\n\t\tif !httpguts.ValidHeaderFieldValue(hf.Value) {\n\t\t\t// Don't include the value in the error, because it may be sensitive.\n\t\t\tinvalid = headerFieldValueError(hf.Name)\n\t\t}\n\t\tisPseudo := strings.HasPrefix(hf.Name, \":\")\n\t\tif isPseudo {\n\t\t\tif sawRegular {\n\t\t\t\tinvalid = errPseudoAfterRegular\n\t\t\t}\n\t\t} else {\n\t\t\tsawRegular = true\n\t\t\tif !validWireHeaderFieldName(hf.Name) {\n\t\t\t\tinvalid = headerFieldNameError(hf.Name)\n\t\t\t}\n\t\t}\n\n\t\tif invalid != nil {\n\t\t\thdec.SetEmitEnabled(false)\n\t\t\treturn\n\t\t}\n\n\t\tsize := hf.Size()\n\t\tif size > remainSize {\n\t\t\thdec.SetEmitEnabled(false)\n\t\t\tmh.Truncated = true\n\t\t\tremainSize = 0\n\t\t\treturn\n\t\t}\n\t\tremainSize -= size\n\n\t\tmh.Fields = append(mh.Fields, hf)\n\t})\n\t// Lose reference to MetaHeadersFrame:\n\tdefer hdec.SetEmitFunc(func(hf hpack.HeaderField) {})\n\n\tvar hc headersOrContinuation = hf\n\tfor {\n\t\tfrag := hc.HeaderBlockFragment()\n\n\t\t// Avoid parsing large amounts of headers that we will then discard.\n\t\t// If the sender exceeds the max header list size by too much,\n\t\t// skip parsing the fragment and close the connection.\n\t\t//\n\t\t// \"Too much\" is either any CONTINUATION frame after we've already\n\t\t// exceeded the max header list size (in which case remainSize is 0),\n\t\t// or a frame whose encoded size is more than twice the remaining\n\t\t// header list bytes we're willing to accept.\n\t\tif int64(len(frag)) > int64(2*remainSize) {\n\t\t\tif VerboseLogs {\n\t\t\t\tlog.Printf(\"http2: header list too large\")\n\t\t\t}\n\t\t\t// It would be nice to send a RST_STREAM before sending the GOAWAY,\n\t\t\t// but the structure of the server's frame writer makes this difficult.\n\t\t\treturn mh, ConnectionError(ErrCodeProtocol)\n\t\t}\n\n\t\t// Also close the connection after any CONTINUATION frame following an\n\t\t// invalid header, since we stop tracking the size of the headers after\n\t\t// an invalid one.\n\t\tif invalid != nil {\n\t\t\tif VerboseLogs {\n\t\t\t\tlog.Printf(\"http2: invalid header: %v\", invalid)\n\t\t\t}\n\t\t\t// It would be nice to send a RST_STREAM before sending the GOAWAY,\n\t\t\t// but the structure of the server's frame writer makes this difficult.\n\t\t\treturn mh, ConnectionError(ErrCodeProtocol)\n\t\t}\n\n\t\tif _, err := hdec.Write(frag); err != nil {\n\t\t\treturn mh, ConnectionError(ErrCodeCompression)\n\t\t}\n\n\t\tif hc.HeadersEnded() {\n\t\t\tbreak\n\t\t}\n\t\tif f, err := fr.ReadFrame(); err != nil {\n\t\t\treturn nil, err\n\t\t} else {\n\t\t\thc = f.(*ContinuationFrame) // guaranteed by checkFrameOrder\n\t\t}\n\t}\n\n\tmh.HeadersFrame.headerFragBuf = nil\n\tmh.HeadersFrame.invalidate()\n\n\tif err := hdec.Close(); err != nil {\n\t\treturn mh, ConnectionError(ErrCodeCompression)\n\t}\n\tif invalid != nil {\n\t\tfr.errDetail = invalid\n\t\tif VerboseLogs {\n\t\t\tlog.Printf(\"http2: invalid header: %v\", invalid)\n\t\t}\n\t\treturn nil, StreamError{mh.StreamID, ErrCodeProtocol, invalid}\n\t}\n\tif err := mh.checkPseudos(); err != nil {\n\t\tfr.errDetail = err\n\t\tif VerboseLogs {\n\t\t\tlog.Printf(\"http2: invalid pseudo headers: %v\", err)\n\t\t}\n\t\treturn nil, StreamError{mh.StreamID, ErrCodeProtocol, err}\n\t}\n\treturn mh, nil\n}\n\nfunc summarizeFrame(f Frame) string {\n\tvar buf bytes.Buffer\n\tf.Header().writeDebug(&buf)\n\tswitch f := f.(type) {\n\tcase *SettingsFrame:\n\t\tn := 0\n\t\tf.ForeachSetting(func(s Setting) error {\n\t\t\tn++\n\t\t\tif n == 1 {\n\t\t\t\tbuf.WriteString(\", settings:\")\n\t\t\t}\n\t\t\tfmt.Fprintf(&buf, \" %v=%v,\", s.ID, s.Val)\n\t\t\treturn nil\n\t\t})\n\t\tif n > 0 {\n\t\t\tbuf.Truncate(buf.Len() - 1) // remove trailing comma\n\t\t}\n\tcase *DataFrame:\n\t\tdata := f.Data()\n\t\tconst max = 256\n\t\tif len(data) > max {\n\t\t\tdata = data[:max]\n\t\t}\n\t\tfmt.Fprintf(&buf, \" data=%q\", data)\n\t\tif len(f.Data()) > max {\n\t\t\tfmt.Fprintf(&buf, \" (%d bytes omitted)\", len(f.Data())-max)\n\t\t}\n\tcase *WindowUpdateFrame:\n\t\tif f.StreamID == 0 {\n\t\t\tbuf.WriteString(\" (conn)\")\n\t\t}\n\t\tfmt.Fprintf(&buf, \" incr=%v\", f.Increment)\n\tcase *PingFrame:\n\t\tfmt.Fprintf(&buf, \" ping=%q\", f.Data[:])\n\tcase *GoAwayFrame:\n\t\tfmt.Fprintf(&buf, \" LastStreamID=%v ErrCode=%v Debug=%q\",\n\t\t\tf.LastStreamID, f.ErrCode, f.debugData)\n\tcase *RSTStreamFrame:\n\t\tfmt.Fprintf(&buf, \" ErrCode=%v\", f.ErrCode)\n\t}\n\treturn buf.String()\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/gotrack.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Defensive debug-only utility to track that functions run on the\n// goroutine that they're supposed to.\n\npackage http2\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"runtime\"\n\t\"strconv\"\n\t\"sync\"\n)\n\nvar DebugGoroutines = os.Getenv(\"DEBUG_HTTP2_GOROUTINES\") == \"1\"\n\ntype goroutineLock uint64\n\nfunc newGoroutineLock() goroutineLock {\n\tif !DebugGoroutines {\n\t\treturn 0\n\t}\n\treturn goroutineLock(curGoroutineID())\n}\n\nfunc (g goroutineLock) check() {\n\tif !DebugGoroutines {\n\t\treturn\n\t}\n\tif curGoroutineID() != uint64(g) {\n\t\tpanic(\"running on the wrong goroutine\")\n\t}\n}\n\nfunc (g goroutineLock) checkNotOn() {\n\tif !DebugGoroutines {\n\t\treturn\n\t}\n\tif curGoroutineID() == uint64(g) {\n\t\tpanic(\"running on the wrong goroutine\")\n\t}\n}\n\nvar goroutineSpace = []byte(\"goroutine \")\n\nfunc curGoroutineID() uint64 {\n\tbp := littleBuf.Get().(*[]byte)\n\tdefer littleBuf.Put(bp)\n\tb := *bp\n\tb = b[:runtime.Stack(b, false)]\n\t// Parse the 4707 out of \"goroutine 4707 [\"\n\tb = bytes.TrimPrefix(b, goroutineSpace)\n\ti := bytes.IndexByte(b, ' ')\n\tif i < 0 {\n\t\tpanic(fmt.Sprintf(\"No space found in %q\", b))\n\t}\n\tb = b[:i]\n\tn, err := parseUintBytes(b, 10, 64)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"Failed to parse goroutine ID out of %q: %v\", b, err))\n\t}\n\treturn n\n}\n\nvar littleBuf = sync.Pool{\n\tNew: func() interface{} {\n\t\tbuf := make([]byte, 64)\n\t\treturn &buf\n\t},\n}\n\n// parseUintBytes is like strconv.ParseUint, but using a []byte.\nfunc parseUintBytes(s []byte, base int, bitSize int) (n uint64, err error) {\n\tvar cutoff, maxVal uint64\n\n\tif bitSize == 0 {\n\t\tbitSize = int(strconv.IntSize)\n\t}\n\n\ts0 := s\n\tswitch {\n\tcase len(s) < 1:\n\t\terr = strconv.ErrSyntax\n\t\tgoto Error\n\n\tcase 2 <= base && base <= 36:\n\t\t// valid base; nothing to do\n\n\tcase base == 0:\n\t\t// Look for octal, hex prefix.\n\t\tswitch {\n\t\tcase s[0] == '0' && len(s) > 1 && (s[1] == 'x' || s[1] == 'X'):\n\t\t\tbase = 16\n\t\t\ts = s[2:]\n\t\t\tif len(s) < 1 {\n\t\t\t\terr = strconv.ErrSyntax\n\t\t\t\tgoto Error\n\t\t\t}\n\t\tcase s[0] == '0':\n\t\t\tbase = 8\n\t\tdefault:\n\t\t\tbase = 10\n\t\t}\n\n\tdefault:\n\t\terr = errors.New(\"invalid base \" + strconv.Itoa(base))\n\t\tgoto Error\n\t}\n\n\tn = 0\n\tcutoff = cutoff64(base)\n\tmaxVal = 1<<uint(bitSize) - 1\n\n\tfor i := 0; i < len(s); i++ {\n\t\tvar v byte\n\t\td := s[i]\n\t\tswitch {\n\t\tcase '0' <= d && d <= '9':\n\t\t\tv = d - '0'\n\t\tcase 'a' <= d && d <= 'z':\n\t\t\tv = d - 'a' + 10\n\t\tcase 'A' <= d && d <= 'Z':\n\t\t\tv = d - 'A' + 10\n\t\tdefault:\n\t\t\tn = 0\n\t\t\terr = strconv.ErrSyntax\n\t\t\tgoto Error\n\t\t}\n\t\tif int(v) >= base {\n\t\t\tn = 0\n\t\t\terr = strconv.ErrSyntax\n\t\t\tgoto Error\n\t\t}\n\n\t\tif n >= cutoff {\n\t\t\t// n*base overflows\n\t\t\tn = 1<<64 - 1\n\t\t\terr = strconv.ErrRange\n\t\t\tgoto Error\n\t\t}\n\t\tn *= uint64(base)\n\n\t\tn1 := n + uint64(v)\n\t\tif n1 < n || n1 > maxVal {\n\t\t\t// n+v overflows\n\t\t\tn = 1<<64 - 1\n\t\t\terr = strconv.ErrRange\n\t\t\tgoto Error\n\t\t}\n\t\tn = n1\n\t}\n\n\treturn n, nil\n\nError:\n\treturn n, &strconv.NumError{Func: \"ParseUint\", Num: string(s0), Err: err}\n}\n\n// Return the first number n such that n*base >= 1<<64.\nfunc cutoff64(base int) uint64 {\n\tif base < 2 {\n\t\treturn 0\n\t}\n\treturn (1<<64-1)/uint64(base) + 1\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/hpack/encode.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage hpack\n\nimport (\n\t\"io\"\n)\n\nconst (\n\tuint32Max              = ^uint32(0)\n\tinitialHeaderTableSize = 4096\n)\n\ntype Encoder struct {\n\tdynTab dynamicTable\n\t// minSize is the minimum table size set by\n\t// SetMaxDynamicTableSize after the previous Header Table Size\n\t// Update.\n\tminSize uint32\n\t// maxSizeLimit is the maximum table size this encoder\n\t// supports. This will protect the encoder from too large\n\t// size.\n\tmaxSizeLimit uint32\n\t// tableSizeUpdate indicates whether \"Header Table Size\n\t// Update\" is required.\n\ttableSizeUpdate bool\n\tw               io.Writer\n\tbuf             []byte\n}\n\n// NewEncoder returns a new Encoder which performs HPACK encoding. An\n// encoded data is written to w.\nfunc NewEncoder(w io.Writer) *Encoder {\n\te := &Encoder{\n\t\tminSize:         uint32Max,\n\t\tmaxSizeLimit:    initialHeaderTableSize,\n\t\ttableSizeUpdate: false,\n\t\tw:               w,\n\t}\n\te.dynTab.table.init()\n\te.dynTab.setMaxSize(initialHeaderTableSize)\n\treturn e\n}\n\n// WriteField encodes f into a single Write to e's underlying Writer.\n// This function may also produce bytes for \"Header Table Size Update\"\n// if necessary. If produced, it is done before encoding f.\nfunc (e *Encoder) WriteField(f HeaderField) error {\n\te.buf = e.buf[:0]\n\n\tif e.tableSizeUpdate {\n\t\te.tableSizeUpdate = false\n\t\tif e.minSize < e.dynTab.maxSize {\n\t\t\te.buf = appendTableSize(e.buf, e.minSize)\n\t\t}\n\t\te.minSize = uint32Max\n\t\te.buf = appendTableSize(e.buf, e.dynTab.maxSize)\n\t}\n\n\tidx, nameValueMatch := e.searchTable(f)\n\tif nameValueMatch {\n\t\te.buf = appendIndexed(e.buf, idx)\n\t} else {\n\t\tindexing := e.shouldIndex(f)\n\t\tif indexing {\n\t\t\te.dynTab.add(f)\n\t\t}\n\n\t\tif idx == 0 {\n\t\t\te.buf = appendNewName(e.buf, f, indexing)\n\t\t} else {\n\t\t\te.buf = appendIndexedName(e.buf, f, idx, indexing)\n\t\t}\n\t}\n\tn, err := e.w.Write(e.buf)\n\tif err == nil && n != len(e.buf) {\n\t\terr = io.ErrShortWrite\n\t}\n\treturn err\n}\n\n// searchTable searches f in both stable and dynamic header tables.\n// The static header table is searched first. Only when there is no\n// exact match for both name and value, the dynamic header table is\n// then searched. If there is no match, i is 0. If both name and value\n// match, i is the matched index and nameValueMatch becomes true. If\n// only name matches, i points to that index and nameValueMatch\n// becomes false.\nfunc (e *Encoder) searchTable(f HeaderField) (i uint64, nameValueMatch bool) {\n\ti, nameValueMatch = staticTable.search(f)\n\tif nameValueMatch {\n\t\treturn i, true\n\t}\n\n\tj, nameValueMatch := e.dynTab.table.search(f)\n\tif nameValueMatch || (i == 0 && j != 0) {\n\t\treturn j + uint64(staticTable.len()), nameValueMatch\n\t}\n\n\treturn i, false\n}\n\n// SetMaxDynamicTableSize changes the dynamic header table size to v.\n// The actual size is bounded by the value passed to\n// SetMaxDynamicTableSizeLimit.\nfunc (e *Encoder) SetMaxDynamicTableSize(v uint32) {\n\tif v > e.maxSizeLimit {\n\t\tv = e.maxSizeLimit\n\t}\n\tif v < e.minSize {\n\t\te.minSize = v\n\t}\n\te.tableSizeUpdate = true\n\te.dynTab.setMaxSize(v)\n}\n\n// MaxDynamicTableSize returns the current dynamic header table size.\nfunc (e *Encoder) MaxDynamicTableSize() (v uint32) {\n\treturn e.dynTab.maxSize\n}\n\n// SetMaxDynamicTableSizeLimit changes the maximum value that can be\n// specified in SetMaxDynamicTableSize to v. By default, it is set to\n// 4096, which is the same size of the default dynamic header table\n// size described in HPACK specification. If the current maximum\n// dynamic header table size is strictly greater than v, \"Header Table\n// Size Update\" will be done in the next WriteField call and the\n// maximum dynamic header table size is truncated to v.\nfunc (e *Encoder) SetMaxDynamicTableSizeLimit(v uint32) {\n\te.maxSizeLimit = v\n\tif e.dynTab.maxSize > v {\n\t\te.tableSizeUpdate = true\n\t\te.dynTab.setMaxSize(v)\n\t}\n}\n\n// shouldIndex reports whether f should be indexed.\nfunc (e *Encoder) shouldIndex(f HeaderField) bool {\n\treturn !f.Sensitive && f.Size() <= e.dynTab.maxSize\n}\n\n// appendIndexed appends index i, as encoded in \"Indexed Header Field\"\n// representation, to dst and returns the extended buffer.\nfunc appendIndexed(dst []byte, i uint64) []byte {\n\tfirst := len(dst)\n\tdst = appendVarInt(dst, 7, i)\n\tdst[first] |= 0x80\n\treturn dst\n}\n\n// appendNewName appends f, as encoded in one of \"Literal Header field\n// - New Name\" representation variants, to dst and returns the\n// extended buffer.\n//\n// If f.Sensitive is true, \"Never Indexed\" representation is used. If\n// f.Sensitive is false and indexing is true, \"Incremental Indexing\"\n// representation is used.\nfunc appendNewName(dst []byte, f HeaderField, indexing bool) []byte {\n\tdst = append(dst, encodeTypeByte(indexing, f.Sensitive))\n\tdst = appendHpackString(dst, f.Name)\n\treturn appendHpackString(dst, f.Value)\n}\n\n// appendIndexedName appends f and index i referring indexed name\n// entry, as encoded in one of \"Literal Header field - Indexed Name\"\n// representation variants, to dst and returns the extended buffer.\n//\n// If f.Sensitive is true, \"Never Indexed\" representation is used. If\n// f.Sensitive is false and indexing is true, \"Incremental Indexing\"\n// representation is used.\nfunc appendIndexedName(dst []byte, f HeaderField, i uint64, indexing bool) []byte {\n\tfirst := len(dst)\n\tvar n byte\n\tif indexing {\n\t\tn = 6\n\t} else {\n\t\tn = 4\n\t}\n\tdst = appendVarInt(dst, n, i)\n\tdst[first] |= encodeTypeByte(indexing, f.Sensitive)\n\treturn appendHpackString(dst, f.Value)\n}\n\n// appendTableSize appends v, as encoded in \"Header Table Size Update\"\n// representation, to dst and returns the extended buffer.\nfunc appendTableSize(dst []byte, v uint32) []byte {\n\tfirst := len(dst)\n\tdst = appendVarInt(dst, 5, uint64(v))\n\tdst[first] |= 0x20\n\treturn dst\n}\n\n// appendVarInt appends i, as encoded in variable integer form using n\n// bit prefix, to dst and returns the extended buffer.\n//\n// See\n// https://httpwg.org/specs/rfc7541.html#integer.representation\nfunc appendVarInt(dst []byte, n byte, i uint64) []byte {\n\tk := uint64((1 << n) - 1)\n\tif i < k {\n\t\treturn append(dst, byte(i))\n\t}\n\tdst = append(dst, byte(k))\n\ti -= k\n\tfor ; i >= 128; i >>= 7 {\n\t\tdst = append(dst, byte(0x80|(i&0x7f)))\n\t}\n\treturn append(dst, byte(i))\n}\n\n// appendHpackString appends s, as encoded in \"String Literal\"\n// representation, to dst and returns the extended buffer.\n//\n// s will be encoded in Huffman codes only when it produces strictly\n// shorter byte string.\nfunc appendHpackString(dst []byte, s string) []byte {\n\thuffmanLength := HuffmanEncodeLength(s)\n\tif huffmanLength < uint64(len(s)) {\n\t\tfirst := len(dst)\n\t\tdst = appendVarInt(dst, 7, huffmanLength)\n\t\tdst = AppendHuffmanString(dst, s)\n\t\tdst[first] |= 0x80\n\t} else {\n\t\tdst = appendVarInt(dst, 7, uint64(len(s)))\n\t\tdst = append(dst, s...)\n\t}\n\treturn dst\n}\n\n// encodeTypeByte returns type byte. If sensitive is true, type byte\n// for \"Never Indexed\" representation is returned. If sensitive is\n// false and indexing is true, type byte for \"Incremental Indexing\"\n// representation is returned. Otherwise, type byte for \"Without\n// Indexing\" is returned.\nfunc encodeTypeByte(indexing, sensitive bool) byte {\n\tif sensitive {\n\t\treturn 0x10\n\t}\n\tif indexing {\n\t\treturn 0x40\n\t}\n\treturn 0\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/hpack/hpack.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package hpack implements HPACK, a compression format for\n// efficiently representing HTTP header fields in the context of HTTP/2.\n//\n// See http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-09\npackage hpack\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n)\n\n// A DecodingError is something the spec defines as a decoding error.\ntype DecodingError struct {\n\tErr error\n}\n\nfunc (de DecodingError) Error() string {\n\treturn fmt.Sprintf(\"decoding error: %v\", de.Err)\n}\n\n// An InvalidIndexError is returned when an encoder references a table\n// entry before the static table or after the end of the dynamic table.\ntype InvalidIndexError int\n\nfunc (e InvalidIndexError) Error() string {\n\treturn fmt.Sprintf(\"invalid indexed representation index %d\", int(e))\n}\n\n// A HeaderField is a name-value pair. Both the name and value are\n// treated as opaque sequences of octets.\ntype HeaderField struct {\n\tName, Value string\n\n\t// Sensitive means that this header field should never be\n\t// indexed.\n\tSensitive bool\n}\n\n// IsPseudo reports whether the header field is an http2 pseudo header.\n// That is, it reports whether it starts with a colon.\n// It is not otherwise guaranteed to be a valid pseudo header field,\n// though.\nfunc (hf HeaderField) IsPseudo() bool {\n\treturn len(hf.Name) != 0 && hf.Name[0] == ':'\n}\n\nfunc (hf HeaderField) String() string {\n\tvar suffix string\n\tif hf.Sensitive {\n\t\tsuffix = \" (sensitive)\"\n\t}\n\treturn fmt.Sprintf(\"header field %q = %q%s\", hf.Name, hf.Value, suffix)\n}\n\n// Size returns the size of an entry per RFC 7541 section 4.1.\nfunc (hf HeaderField) Size() uint32 {\n\t// https://httpwg.org/specs/rfc7541.html#rfc.section.4.1\n\t// \"The size of the dynamic table is the sum of the size of\n\t// its entries. The size of an entry is the sum of its name's\n\t// length in octets (as defined in Section 5.2), its value's\n\t// length in octets (see Section 5.2), plus 32.  The size of\n\t// an entry is calculated using the length of the name and\n\t// value without any Huffman encoding applied.\"\n\n\t// This can overflow if somebody makes a large HeaderField\n\t// Name and/or Value by hand, but we don't care, because that\n\t// won't happen on the wire because the encoding doesn't allow\n\t// it.\n\treturn uint32(len(hf.Name) + len(hf.Value) + 32)\n}\n\n// A Decoder is the decoding context for incremental processing of\n// header blocks.\ntype Decoder struct {\n\tdynTab dynamicTable\n\temit   func(f HeaderField)\n\n\temitEnabled bool // whether calls to emit are enabled\n\tmaxStrLen   int  // 0 means unlimited\n\n\t// buf is the unparsed buffer. It's only written to\n\t// saveBuf if it was truncated in the middle of a header\n\t// block. Because it's usually not owned, we can only\n\t// process it under Write.\n\tbuf []byte // not owned; only valid during Write\n\n\t// saveBuf is previous data passed to Write which we weren't able\n\t// to fully parse before. Unlike buf, we own this data.\n\tsaveBuf bytes.Buffer\n\n\tfirstField bool // processing the first field of the header block\n}\n\n// NewDecoder returns a new decoder with the provided maximum dynamic\n// table size. The emitFunc will be called for each valid field\n// parsed, in the same goroutine as calls to Write, before Write returns.\nfunc NewDecoder(maxDynamicTableSize uint32, emitFunc func(f HeaderField)) *Decoder {\n\td := &Decoder{\n\t\temit:        emitFunc,\n\t\temitEnabled: true,\n\t\tfirstField:  true,\n\t}\n\td.dynTab.table.init()\n\td.dynTab.allowedMaxSize = maxDynamicTableSize\n\td.dynTab.setMaxSize(maxDynamicTableSize)\n\treturn d\n}\n\n// ErrStringLength is returned by Decoder.Write when the max string length\n// (as configured by Decoder.SetMaxStringLength) would be violated.\nvar ErrStringLength = errors.New(\"hpack: string too long\")\n\n// SetMaxStringLength sets the maximum size of a HeaderField name or\n// value string. If a string exceeds this length (even after any\n// decompression), Write will return ErrStringLength.\n// A value of 0 means unlimited and is the default from NewDecoder.\nfunc (d *Decoder) SetMaxStringLength(n int) {\n\td.maxStrLen = n\n}\n\n// SetEmitFunc changes the callback used when new header fields\n// are decoded.\n// It must be non-nil. It does not affect EmitEnabled.\nfunc (d *Decoder) SetEmitFunc(emitFunc func(f HeaderField)) {\n\td.emit = emitFunc\n}\n\n// SetEmitEnabled controls whether the emitFunc provided to NewDecoder\n// should be called. The default is true.\n//\n// This facility exists to let servers enforce MAX_HEADER_LIST_SIZE\n// while still decoding and keeping in-sync with decoder state, but\n// without doing unnecessary decompression or generating unnecessary\n// garbage for header fields past the limit.\nfunc (d *Decoder) SetEmitEnabled(v bool) { d.emitEnabled = v }\n\n// EmitEnabled reports whether calls to the emitFunc provided to NewDecoder\n// are currently enabled. The default is true.\nfunc (d *Decoder) EmitEnabled() bool { return d.emitEnabled }\n\n// TODO: add method *Decoder.Reset(maxSize, emitFunc) to let callers re-use Decoders and their\n// underlying buffers for garbage reasons.\n\nfunc (d *Decoder) SetMaxDynamicTableSize(v uint32) {\n\td.dynTab.setMaxSize(v)\n}\n\n// SetAllowedMaxDynamicTableSize sets the upper bound that the encoded\n// stream (via dynamic table size updates) may set the maximum size\n// to.\nfunc (d *Decoder) SetAllowedMaxDynamicTableSize(v uint32) {\n\td.dynTab.allowedMaxSize = v\n}\n\ntype dynamicTable struct {\n\t// https://httpwg.org/specs/rfc7541.html#rfc.section.2.3.2\n\ttable          headerFieldTable\n\tsize           uint32 // in bytes\n\tmaxSize        uint32 // current maxSize\n\tallowedMaxSize uint32 // maxSize may go up to this, inclusive\n}\n\nfunc (dt *dynamicTable) setMaxSize(v uint32) {\n\tdt.maxSize = v\n\tdt.evict()\n}\n\nfunc (dt *dynamicTable) add(f HeaderField) {\n\tdt.table.addEntry(f)\n\tdt.size += f.Size()\n\tdt.evict()\n}\n\n// If we're too big, evict old stuff.\nfunc (dt *dynamicTable) evict() {\n\tvar n int\n\tfor dt.size > dt.maxSize && n < dt.table.len() {\n\t\tdt.size -= dt.table.ents[n].Size()\n\t\tn++\n\t}\n\tdt.table.evictOldest(n)\n}\n\nfunc (d *Decoder) maxTableIndex() int {\n\t// This should never overflow. RFC 7540 Section 6.5.2 limits the size of\n\t// the dynamic table to 2^32 bytes, where each entry will occupy more than\n\t// one byte. Further, the staticTable has a fixed, small length.\n\treturn d.dynTab.table.len() + staticTable.len()\n}\n\nfunc (d *Decoder) at(i uint64) (hf HeaderField, ok bool) {\n\t// See Section 2.3.3.\n\tif i == 0 {\n\t\treturn\n\t}\n\tif i <= uint64(staticTable.len()) {\n\t\treturn staticTable.ents[i-1], true\n\t}\n\tif i > uint64(d.maxTableIndex()) {\n\t\treturn\n\t}\n\t// In the dynamic table, newer entries have lower indices.\n\t// However, dt.ents[0] is the oldest entry. Hence, dt.ents is\n\t// the reversed dynamic table.\n\tdt := d.dynTab.table\n\treturn dt.ents[dt.len()-(int(i)-staticTable.len())], true\n}\n\n// DecodeFull decodes an entire block.\n//\n// TODO: remove this method and make it incremental later? This is\n// easier for debugging now.\nfunc (d *Decoder) DecodeFull(p []byte) ([]HeaderField, error) {\n\tvar hf []HeaderField\n\tsaveFunc := d.emit\n\tdefer func() { d.emit = saveFunc }()\n\td.emit = func(f HeaderField) { hf = append(hf, f) }\n\tif _, err := d.Write(p); err != nil {\n\t\treturn nil, err\n\t}\n\tif err := d.Close(); err != nil {\n\t\treturn nil, err\n\t}\n\treturn hf, nil\n}\n\n// Close declares that the decoding is complete and resets the Decoder\n// to be reused again for a new header block. If there is any remaining\n// data in the decoder's buffer, Close returns an error.\nfunc (d *Decoder) Close() error {\n\tif d.saveBuf.Len() > 0 {\n\t\td.saveBuf.Reset()\n\t\treturn DecodingError{errors.New(\"truncated headers\")}\n\t}\n\td.firstField = true\n\treturn nil\n}\n\nfunc (d *Decoder) Write(p []byte) (n int, err error) {\n\tif len(p) == 0 {\n\t\t// Prevent state machine CPU attacks (making us redo\n\t\t// work up to the point of finding out we don't have\n\t\t// enough data)\n\t\treturn\n\t}\n\t// Only copy the data if we have to. Optimistically assume\n\t// that p will contain a complete header block.\n\tif d.saveBuf.Len() == 0 {\n\t\td.buf = p\n\t} else {\n\t\td.saveBuf.Write(p)\n\t\td.buf = d.saveBuf.Bytes()\n\t\td.saveBuf.Reset()\n\t}\n\n\tfor len(d.buf) > 0 {\n\t\terr = d.parseHeaderFieldRepr()\n\t\tif err == errNeedMore {\n\t\t\t// Extra paranoia, making sure saveBuf won't\n\t\t\t// get too large. All the varint and string\n\t\t\t// reading code earlier should already catch\n\t\t\t// overlong things and return ErrStringLength,\n\t\t\t// but keep this as a last resort.\n\t\t\tconst varIntOverhead = 8 // conservative\n\t\t\tif d.maxStrLen != 0 && int64(len(d.buf)) > 2*(int64(d.maxStrLen)+varIntOverhead) {\n\t\t\t\treturn 0, ErrStringLength\n\t\t\t}\n\t\t\td.saveBuf.Write(d.buf)\n\t\t\treturn len(p), nil\n\t\t}\n\t\td.firstField = false\n\t\tif err != nil {\n\t\t\tbreak\n\t\t}\n\t}\n\treturn len(p), err\n}\n\n// errNeedMore is an internal sentinel error value that means the\n// buffer is truncated and we need to read more data before we can\n// continue parsing.\nvar errNeedMore = errors.New(\"need more data\")\n\ntype indexType int\n\nconst (\n\tindexedTrue indexType = iota\n\tindexedFalse\n\tindexedNever\n)\n\nfunc (v indexType) indexed() bool   { return v == indexedTrue }\nfunc (v indexType) sensitive() bool { return v == indexedNever }\n\n// returns errNeedMore if there isn't enough data available.\n// any other error is fatal.\n// consumes d.buf iff it returns nil.\n// precondition: must be called with len(d.buf) > 0\nfunc (d *Decoder) parseHeaderFieldRepr() error {\n\tb := d.buf[0]\n\tswitch {\n\tcase b&128 != 0:\n\t\t// Indexed representation.\n\t\t// High bit set?\n\t\t// https://httpwg.org/specs/rfc7541.html#rfc.section.6.1\n\t\treturn d.parseFieldIndexed()\n\tcase b&192 == 64:\n\t\t// 6.2.1 Literal Header Field with Incremental Indexing\n\t\t// 0b10xxxxxx: top two bits are 10\n\t\t// https://httpwg.org/specs/rfc7541.html#rfc.section.6.2.1\n\t\treturn d.parseFieldLiteral(6, indexedTrue)\n\tcase b&240 == 0:\n\t\t// 6.2.2 Literal Header Field without Indexing\n\t\t// 0b0000xxxx: top four bits are 0000\n\t\t// https://httpwg.org/specs/rfc7541.html#rfc.section.6.2.2\n\t\treturn d.parseFieldLiteral(4, indexedFalse)\n\tcase b&240 == 16:\n\t\t// 6.2.3 Literal Header Field never Indexed\n\t\t// 0b0001xxxx: top four bits are 0001\n\t\t// https://httpwg.org/specs/rfc7541.html#rfc.section.6.2.3\n\t\treturn d.parseFieldLiteral(4, indexedNever)\n\tcase b&224 == 32:\n\t\t// 6.3 Dynamic Table Size Update\n\t\t// Top three bits are '001'.\n\t\t// https://httpwg.org/specs/rfc7541.html#rfc.section.6.3\n\t\treturn d.parseDynamicTableSizeUpdate()\n\t}\n\n\treturn DecodingError{errors.New(\"invalid encoding\")}\n}\n\n// (same invariants and behavior as parseHeaderFieldRepr)\nfunc (d *Decoder) parseFieldIndexed() error {\n\tbuf := d.buf\n\tidx, buf, err := readVarInt(7, buf)\n\tif err != nil {\n\t\treturn err\n\t}\n\thf, ok := d.at(idx)\n\tif !ok {\n\t\treturn DecodingError{InvalidIndexError(idx)}\n\t}\n\td.buf = buf\n\treturn d.callEmit(HeaderField{Name: hf.Name, Value: hf.Value})\n}\n\n// (same invariants and behavior as parseHeaderFieldRepr)\nfunc (d *Decoder) parseFieldLiteral(n uint8, it indexType) error {\n\tbuf := d.buf\n\tnameIdx, buf, err := readVarInt(n, buf)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tvar hf HeaderField\n\twantStr := d.emitEnabled || it.indexed()\n\tvar undecodedName undecodedString\n\tif nameIdx > 0 {\n\t\tihf, ok := d.at(nameIdx)\n\t\tif !ok {\n\t\t\treturn DecodingError{InvalidIndexError(nameIdx)}\n\t\t}\n\t\thf.Name = ihf.Name\n\t} else {\n\t\tundecodedName, buf, err = d.readString(buf)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tundecodedValue, buf, err := d.readString(buf)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif wantStr {\n\t\tif nameIdx <= 0 {\n\t\t\thf.Name, err = d.decodeString(undecodedName)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\thf.Value, err = d.decodeString(undecodedValue)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\td.buf = buf\n\tif it.indexed() {\n\t\td.dynTab.add(hf)\n\t}\n\thf.Sensitive = it.sensitive()\n\treturn d.callEmit(hf)\n}\n\nfunc (d *Decoder) callEmit(hf HeaderField) error {\n\tif d.maxStrLen != 0 {\n\t\tif len(hf.Name) > d.maxStrLen || len(hf.Value) > d.maxStrLen {\n\t\t\treturn ErrStringLength\n\t\t}\n\t}\n\tif d.emitEnabled {\n\t\td.emit(hf)\n\t}\n\treturn nil\n}\n\n// (same invariants and behavior as parseHeaderFieldRepr)\nfunc (d *Decoder) parseDynamicTableSizeUpdate() error {\n\t// RFC 7541, sec 4.2: This dynamic table size update MUST occur at the\n\t// beginning of the first header block following the change to the dynamic table size.\n\tif !d.firstField && d.dynTab.size > 0 {\n\t\treturn DecodingError{errors.New(\"dynamic table size update MUST occur at the beginning of a header block\")}\n\t}\n\n\tbuf := d.buf\n\tsize, buf, err := readVarInt(5, buf)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif size > uint64(d.dynTab.allowedMaxSize) {\n\t\treturn DecodingError{errors.New(\"dynamic table size update too large\")}\n\t}\n\td.dynTab.setMaxSize(uint32(size))\n\td.buf = buf\n\treturn nil\n}\n\nvar errVarintOverflow = DecodingError{errors.New(\"varint integer overflow\")}\n\n// readVarInt reads an unsigned variable length integer off the\n// beginning of p. n is the parameter as described in\n// https://httpwg.org/specs/rfc7541.html#rfc.section.5.1.\n//\n// n must always be between 1 and 8.\n//\n// The returned remain buffer is either a smaller suffix of p, or err != nil.\n// The error is errNeedMore if p doesn't contain a complete integer.\nfunc readVarInt(n byte, p []byte) (i uint64, remain []byte, err error) {\n\tif n < 1 || n > 8 {\n\t\tpanic(\"bad n\")\n\t}\n\tif len(p) == 0 {\n\t\treturn 0, p, errNeedMore\n\t}\n\ti = uint64(p[0])\n\tif n < 8 {\n\t\ti &= (1 << uint64(n)) - 1\n\t}\n\tif i < (1<<uint64(n))-1 {\n\t\treturn i, p[1:], nil\n\t}\n\n\torigP := p\n\tp = p[1:]\n\tvar m uint64\n\tfor len(p) > 0 {\n\t\tb := p[0]\n\t\tp = p[1:]\n\t\ti += uint64(b&127) << m\n\t\tif b&128 == 0 {\n\t\t\treturn i, p, nil\n\t\t}\n\t\tm += 7\n\t\tif m >= 63 { // TODO: proper overflow check. making this up.\n\t\t\treturn 0, origP, errVarintOverflow\n\t\t}\n\t}\n\treturn 0, origP, errNeedMore\n}\n\n// readString reads an hpack string from p.\n//\n// It returns a reference to the encoded string data to permit deferring decode costs\n// until after the caller verifies all data is present.\nfunc (d *Decoder) readString(p []byte) (u undecodedString, remain []byte, err error) {\n\tif len(p) == 0 {\n\t\treturn u, p, errNeedMore\n\t}\n\tisHuff := p[0]&128 != 0\n\tstrLen, p, err := readVarInt(7, p)\n\tif err != nil {\n\t\treturn u, p, err\n\t}\n\tif d.maxStrLen != 0 && strLen > uint64(d.maxStrLen) {\n\t\t// Returning an error here means Huffman decoding errors\n\t\t// for non-indexed strings past the maximum string length\n\t\t// are ignored, but the server is returning an error anyway\n\t\t// and because the string is not indexed the error will not\n\t\t// affect the decoding state.\n\t\treturn u, nil, ErrStringLength\n\t}\n\tif uint64(len(p)) < strLen {\n\t\treturn u, p, errNeedMore\n\t}\n\tu.isHuff = isHuff\n\tu.b = p[:strLen]\n\treturn u, p[strLen:], nil\n}\n\ntype undecodedString struct {\n\tisHuff bool\n\tb      []byte\n}\n\nfunc (d *Decoder) decodeString(u undecodedString) (string, error) {\n\tif !u.isHuff {\n\t\treturn string(u.b), nil\n\t}\n\tbuf := bufPool.Get().(*bytes.Buffer)\n\tbuf.Reset() // don't trust others\n\tvar s string\n\terr := huffmanDecode(buf, d.maxStrLen, u.b)\n\tif err == nil {\n\t\ts = buf.String()\n\t}\n\tbuf.Reset() // be nice to GC\n\tbufPool.Put(buf)\n\treturn s, err\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/hpack/huffman.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage hpack\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"io\"\n\t\"sync\"\n)\n\nvar bufPool = sync.Pool{\n\tNew: func() interface{} { return new(bytes.Buffer) },\n}\n\n// HuffmanDecode decodes the string in v and writes the expanded\n// result to w, returning the number of bytes written to w and the\n// Write call's return value. At most one Write call is made.\nfunc HuffmanDecode(w io.Writer, v []byte) (int, error) {\n\tbuf := bufPool.Get().(*bytes.Buffer)\n\tbuf.Reset()\n\tdefer bufPool.Put(buf)\n\tif err := huffmanDecode(buf, 0, v); err != nil {\n\t\treturn 0, err\n\t}\n\treturn w.Write(buf.Bytes())\n}\n\n// HuffmanDecodeToString decodes the string in v.\nfunc HuffmanDecodeToString(v []byte) (string, error) {\n\tbuf := bufPool.Get().(*bytes.Buffer)\n\tbuf.Reset()\n\tdefer bufPool.Put(buf)\n\tif err := huffmanDecode(buf, 0, v); err != nil {\n\t\treturn \"\", err\n\t}\n\treturn buf.String(), nil\n}\n\n// ErrInvalidHuffman is returned for errors found decoding\n// Huffman-encoded strings.\nvar ErrInvalidHuffman = errors.New(\"hpack: invalid Huffman-encoded data\")\n\n// huffmanDecode decodes v to buf.\n// If maxLen is greater than 0, attempts to write more to buf than\n// maxLen bytes will return ErrStringLength.\nfunc huffmanDecode(buf *bytes.Buffer, maxLen int, v []byte) error {\n\trootHuffmanNode := getRootHuffmanNode()\n\tn := rootHuffmanNode\n\t// cur is the bit buffer that has not been fed into n.\n\t// cbits is the number of low order bits in cur that are valid.\n\t// sbits is the number of bits of the symbol prefix being decoded.\n\tcur, cbits, sbits := uint(0), uint8(0), uint8(0)\n\tfor _, b := range v {\n\t\tcur = cur<<8 | uint(b)\n\t\tcbits += 8\n\t\tsbits += 8\n\t\tfor cbits >= 8 {\n\t\t\tidx := byte(cur >> (cbits - 8))\n\t\t\tn = n.children[idx]\n\t\t\tif n == nil {\n\t\t\t\treturn ErrInvalidHuffman\n\t\t\t}\n\t\t\tif n.children == nil {\n\t\t\t\tif maxLen != 0 && buf.Len() == maxLen {\n\t\t\t\t\treturn ErrStringLength\n\t\t\t\t}\n\t\t\t\tbuf.WriteByte(n.sym)\n\t\t\t\tcbits -= n.codeLen\n\t\t\t\tn = rootHuffmanNode\n\t\t\t\tsbits = cbits\n\t\t\t} else {\n\t\t\t\tcbits -= 8\n\t\t\t}\n\t\t}\n\t}\n\tfor cbits > 0 {\n\t\tn = n.children[byte(cur<<(8-cbits))]\n\t\tif n == nil {\n\t\t\treturn ErrInvalidHuffman\n\t\t}\n\t\tif n.children != nil || n.codeLen > cbits {\n\t\t\tbreak\n\t\t}\n\t\tif maxLen != 0 && buf.Len() == maxLen {\n\t\t\treturn ErrStringLength\n\t\t}\n\t\tbuf.WriteByte(n.sym)\n\t\tcbits -= n.codeLen\n\t\tn = rootHuffmanNode\n\t\tsbits = cbits\n\t}\n\tif sbits > 7 {\n\t\t// Either there was an incomplete symbol, or overlong padding.\n\t\t// Both are decoding errors per RFC 7541 section 5.2.\n\t\treturn ErrInvalidHuffman\n\t}\n\tif mask := uint(1<<cbits - 1); cur&mask != mask {\n\t\t// Trailing bits must be a prefix of EOS per RFC 7541 section 5.2.\n\t\treturn ErrInvalidHuffman\n\t}\n\n\treturn nil\n}\n\n// incomparable is a zero-width, non-comparable type. Adding it to a struct\n// makes that struct also non-comparable, and generally doesn't add\n// any size (as long as it's first).\ntype incomparable [0]func()\n\ntype node struct {\n\t_ incomparable\n\n\t// children is non-nil for internal nodes\n\tchildren *[256]*node\n\n\t// The following are only valid if children is nil:\n\tcodeLen uint8 // number of bits that led to the output of sym\n\tsym     byte  // output symbol\n}\n\nfunc newInternalNode() *node {\n\treturn &node{children: new([256]*node)}\n}\n\nvar (\n\tbuildRootOnce       sync.Once\n\tlazyRootHuffmanNode *node\n)\n\nfunc getRootHuffmanNode() *node {\n\tbuildRootOnce.Do(buildRootHuffmanNode)\n\treturn lazyRootHuffmanNode\n}\n\nfunc buildRootHuffmanNode() {\n\tif len(huffmanCodes) != 256 {\n\t\tpanic(\"unexpected size\")\n\t}\n\tlazyRootHuffmanNode = newInternalNode()\n\t// allocate a leaf node for each of the 256 symbols\n\tleaves := new([256]node)\n\n\tfor sym, code := range huffmanCodes {\n\t\tcodeLen := huffmanCodeLen[sym]\n\n\t\tcur := lazyRootHuffmanNode\n\t\tfor codeLen > 8 {\n\t\t\tcodeLen -= 8\n\t\t\ti := uint8(code >> codeLen)\n\t\t\tif cur.children[i] == nil {\n\t\t\t\tcur.children[i] = newInternalNode()\n\t\t\t}\n\t\t\tcur = cur.children[i]\n\t\t}\n\t\tshift := 8 - codeLen\n\t\tstart, end := int(uint8(code<<shift)), int(1<<shift)\n\n\t\tleaves[sym].sym = byte(sym)\n\t\tleaves[sym].codeLen = codeLen\n\t\tfor i := start; i < start+end; i++ {\n\t\t\tcur.children[i] = &leaves[sym]\n\t\t}\n\t}\n}\n\n// AppendHuffmanString appends s, as encoded in Huffman codes, to dst\n// and returns the extended buffer.\nfunc AppendHuffmanString(dst []byte, s string) []byte {\n\t// This relies on the maximum huffman code length being 30 (See tables.go huffmanCodeLen array)\n\t// So if a uint64 buffer has less than 32 valid bits can always accommodate another huffmanCode.\n\tvar (\n\t\tx uint64 // buffer\n\t\tn uint   // number valid of bits present in x\n\t)\n\tfor i := 0; i < len(s); i++ {\n\t\tc := s[i]\n\t\tn += uint(huffmanCodeLen[c])\n\t\tx <<= huffmanCodeLen[c] % 64\n\t\tx |= uint64(huffmanCodes[c])\n\t\tif n >= 32 {\n\t\t\tn %= 32             // Normally would be -= 32 but %= 32 informs compiler 0 <= n <= 31 for upcoming shift\n\t\t\ty := uint32(x >> n) // Compiler doesn't combine memory writes if y isn't uint32\n\t\t\tdst = append(dst, byte(y>>24), byte(y>>16), byte(y>>8), byte(y))\n\t\t}\n\t}\n\t// Add padding bits if necessary\n\tif over := n % 8; over > 0 {\n\t\tconst (\n\t\t\teosCode    = 0x3fffffff\n\t\t\teosNBits   = 30\n\t\t\teosPadByte = eosCode >> (eosNBits - 8)\n\t\t)\n\t\tpad := 8 - over\n\t\tx = (x << pad) | (eosPadByte >> over)\n\t\tn += pad // 8 now divides into n exactly\n\t}\n\t// n in (0, 8, 16, 24, 32)\n\tswitch n / 8 {\n\tcase 0:\n\t\treturn dst\n\tcase 1:\n\t\treturn append(dst, byte(x))\n\tcase 2:\n\t\ty := uint16(x)\n\t\treturn append(dst, byte(y>>8), byte(y))\n\tcase 3:\n\t\ty := uint16(x >> 8)\n\t\treturn append(dst, byte(y>>8), byte(y), byte(x))\n\t}\n\t//\tcase 4:\n\ty := uint32(x)\n\treturn append(dst, byte(y>>24), byte(y>>16), byte(y>>8), byte(y))\n}\n\n// HuffmanEncodeLength returns the number of bytes required to encode\n// s in Huffman codes. The result is round up to byte boundary.\nfunc HuffmanEncodeLength(s string) uint64 {\n\tn := uint64(0)\n\tfor i := 0; i < len(s); i++ {\n\t\tn += uint64(huffmanCodeLen[s[i]])\n\t}\n\treturn (n + 7) / 8\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/hpack/static_table.go",
    "content": "// go generate gen.go\n// Code generated by the command above; DO NOT EDIT.\n\npackage hpack\n\nvar staticTable = &headerFieldTable{\n\tevictCount: 0,\n\tbyName: map[string]uint64{\n\t\t\":authority\":                  1,\n\t\t\":method\":                     3,\n\t\t\":path\":                       5,\n\t\t\":scheme\":                     7,\n\t\t\":status\":                     14,\n\t\t\"accept-charset\":              15,\n\t\t\"accept-encoding\":             16,\n\t\t\"accept-language\":             17,\n\t\t\"accept-ranges\":               18,\n\t\t\"accept\":                      19,\n\t\t\"access-control-allow-origin\": 20,\n\t\t\"age\":                         21,\n\t\t\"allow\":                       22,\n\t\t\"authorization\":               23,\n\t\t\"cache-control\":               24,\n\t\t\"content-disposition\":         25,\n\t\t\"content-encoding\":            26,\n\t\t\"content-language\":            27,\n\t\t\"content-length\":              28,\n\t\t\"content-location\":            29,\n\t\t\"content-range\":               30,\n\t\t\"content-type\":                31,\n\t\t\"cookie\":                      32,\n\t\t\"date\":                        33,\n\t\t\"etag\":                        34,\n\t\t\"expect\":                      35,\n\t\t\"expires\":                     36,\n\t\t\"from\":                        37,\n\t\t\"host\":                        38,\n\t\t\"if-match\":                    39,\n\t\t\"if-modified-since\":           40,\n\t\t\"if-none-match\":               41,\n\t\t\"if-range\":                    42,\n\t\t\"if-unmodified-since\":         43,\n\t\t\"last-modified\":               44,\n\t\t\"link\":                        45,\n\t\t\"location\":                    46,\n\t\t\"max-forwards\":                47,\n\t\t\"proxy-authenticate\":          48,\n\t\t\"proxy-authorization\":         49,\n\t\t\"range\":                       50,\n\t\t\"referer\":                     51,\n\t\t\"refresh\":                     52,\n\t\t\"retry-after\":                 53,\n\t\t\"server\":                      54,\n\t\t\"set-cookie\":                  55,\n\t\t\"strict-transport-security\":   56,\n\t\t\"transfer-encoding\":           57,\n\t\t\"user-agent\":                  58,\n\t\t\"vary\":                        59,\n\t\t\"via\":                         60,\n\t\t\"www-authenticate\":            61,\n\t},\n\tbyNameValue: map[pairNameValue]uint64{\n\t\t{name: \":authority\", value: \"\"}:                   1,\n\t\t{name: \":method\", value: \"GET\"}:                   2,\n\t\t{name: \":method\", value: \"POST\"}:                  3,\n\t\t{name: \":path\", value: \"/\"}:                       4,\n\t\t{name: \":path\", value: \"/index.html\"}:             5,\n\t\t{name: \":scheme\", value: \"http\"}:                  6,\n\t\t{name: \":scheme\", value: \"https\"}:                 7,\n\t\t{name: \":status\", value: \"200\"}:                   8,\n\t\t{name: \":status\", value: \"204\"}:                   9,\n\t\t{name: \":status\", value: \"206\"}:                   10,\n\t\t{name: \":status\", value: \"304\"}:                   11,\n\t\t{name: \":status\", value: \"400\"}:                   12,\n\t\t{name: \":status\", value: \"404\"}:                   13,\n\t\t{name: \":status\", value: \"500\"}:                   14,\n\t\t{name: \"accept-charset\", value: \"\"}:               15,\n\t\t{name: \"accept-encoding\", value: \"gzip, deflate\"}: 16,\n\t\t{name: \"accept-language\", value: \"\"}:              17,\n\t\t{name: \"accept-ranges\", value: \"\"}:                18,\n\t\t{name: \"accept\", value: \"\"}:                       19,\n\t\t{name: \"access-control-allow-origin\", value: \"\"}:  20,\n\t\t{name: \"age\", value: \"\"}:                          21,\n\t\t{name: \"allow\", value: \"\"}:                        22,\n\t\t{name: \"authorization\", value: \"\"}:                23,\n\t\t{name: \"cache-control\", value: \"\"}:                24,\n\t\t{name: \"content-disposition\", value: \"\"}:          25,\n\t\t{name: \"content-encoding\", value: \"\"}:             26,\n\t\t{name: \"content-language\", value: \"\"}:             27,\n\t\t{name: \"content-length\", value: \"\"}:               28,\n\t\t{name: \"content-location\", value: \"\"}:             29,\n\t\t{name: \"content-range\", value: \"\"}:                30,\n\t\t{name: \"content-type\", value: \"\"}:                 31,\n\t\t{name: \"cookie\", value: \"\"}:                       32,\n\t\t{name: \"date\", value: \"\"}:                         33,\n\t\t{name: \"etag\", value: \"\"}:                         34,\n\t\t{name: \"expect\", value: \"\"}:                       35,\n\t\t{name: \"expires\", value: \"\"}:                      36,\n\t\t{name: \"from\", value: \"\"}:                         37,\n\t\t{name: \"host\", value: \"\"}:                         38,\n\t\t{name: \"if-match\", value: \"\"}:                     39,\n\t\t{name: \"if-modified-since\", value: \"\"}:            40,\n\t\t{name: \"if-none-match\", value: \"\"}:                41,\n\t\t{name: \"if-range\", value: \"\"}:                     42,\n\t\t{name: \"if-unmodified-since\", value: \"\"}:          43,\n\t\t{name: \"last-modified\", value: \"\"}:                44,\n\t\t{name: \"link\", value: \"\"}:                         45,\n\t\t{name: \"location\", value: \"\"}:                     46,\n\t\t{name: \"max-forwards\", value: \"\"}:                 47,\n\t\t{name: \"proxy-authenticate\", value: \"\"}:           48,\n\t\t{name: \"proxy-authorization\", value: \"\"}:          49,\n\t\t{name: \"range\", value: \"\"}:                        50,\n\t\t{name: \"referer\", value: \"\"}:                      51,\n\t\t{name: \"refresh\", value: \"\"}:                      52,\n\t\t{name: \"retry-after\", value: \"\"}:                  53,\n\t\t{name: \"server\", value: \"\"}:                       54,\n\t\t{name: \"set-cookie\", value: \"\"}:                   55,\n\t\t{name: \"strict-transport-security\", value: \"\"}:    56,\n\t\t{name: \"transfer-encoding\", value: \"\"}:            57,\n\t\t{name: \"user-agent\", value: \"\"}:                   58,\n\t\t{name: \"vary\", value: \"\"}:                         59,\n\t\t{name: \"via\", value: \"\"}:                          60,\n\t\t{name: \"www-authenticate\", value: \"\"}:             61,\n\t},\n\tents: []HeaderField{\n\t\t{Name: \":authority\", Value: \"\", Sensitive: false},\n\t\t{Name: \":method\", Value: \"GET\", Sensitive: false},\n\t\t{Name: \":method\", Value: \"POST\", Sensitive: false},\n\t\t{Name: \":path\", Value: \"/\", Sensitive: false},\n\t\t{Name: \":path\", Value: \"/index.html\", Sensitive: false},\n\t\t{Name: \":scheme\", Value: \"http\", Sensitive: false},\n\t\t{Name: \":scheme\", Value: \"https\", Sensitive: false},\n\t\t{Name: \":status\", Value: \"200\", Sensitive: false},\n\t\t{Name: \":status\", Value: \"204\", Sensitive: false},\n\t\t{Name: \":status\", Value: \"206\", Sensitive: false},\n\t\t{Name: \":status\", Value: \"304\", Sensitive: false},\n\t\t{Name: \":status\", Value: \"400\", Sensitive: false},\n\t\t{Name: \":status\", Value: \"404\", Sensitive: false},\n\t\t{Name: \":status\", Value: \"500\", Sensitive: false},\n\t\t{Name: \"accept-charset\", Value: \"\", Sensitive: false},\n\t\t{Name: \"accept-encoding\", Value: \"gzip, deflate\", Sensitive: false},\n\t\t{Name: \"accept-language\", Value: \"\", Sensitive: false},\n\t\t{Name: \"accept-ranges\", Value: \"\", Sensitive: false},\n\t\t{Name: \"accept\", Value: \"\", Sensitive: false},\n\t\t{Name: \"access-control-allow-origin\", Value: \"\", Sensitive: false},\n\t\t{Name: \"age\", Value: \"\", Sensitive: false},\n\t\t{Name: \"allow\", Value: \"\", Sensitive: false},\n\t\t{Name: \"authorization\", Value: \"\", Sensitive: false},\n\t\t{Name: \"cache-control\", Value: \"\", Sensitive: false},\n\t\t{Name: \"content-disposition\", Value: \"\", Sensitive: false},\n\t\t{Name: \"content-encoding\", Value: \"\", Sensitive: false},\n\t\t{Name: \"content-language\", Value: \"\", Sensitive: false},\n\t\t{Name: \"content-length\", Value: \"\", Sensitive: false},\n\t\t{Name: \"content-location\", Value: \"\", Sensitive: false},\n\t\t{Name: \"content-range\", Value: \"\", Sensitive: false},\n\t\t{Name: \"content-type\", Value: \"\", Sensitive: false},\n\t\t{Name: \"cookie\", Value: \"\", Sensitive: false},\n\t\t{Name: \"date\", Value: \"\", Sensitive: false},\n\t\t{Name: \"etag\", Value: \"\", Sensitive: false},\n\t\t{Name: \"expect\", Value: \"\", Sensitive: false},\n\t\t{Name: \"expires\", Value: \"\", Sensitive: false},\n\t\t{Name: \"from\", Value: \"\", Sensitive: false},\n\t\t{Name: \"host\", Value: \"\", Sensitive: false},\n\t\t{Name: \"if-match\", Value: \"\", Sensitive: false},\n\t\t{Name: \"if-modified-since\", Value: \"\", Sensitive: false},\n\t\t{Name: \"if-none-match\", Value: \"\", Sensitive: false},\n\t\t{Name: \"if-range\", Value: \"\", Sensitive: false},\n\t\t{Name: \"if-unmodified-since\", Value: \"\", Sensitive: false},\n\t\t{Name: \"last-modified\", Value: \"\", Sensitive: false},\n\t\t{Name: \"link\", Value: \"\", Sensitive: false},\n\t\t{Name: \"location\", Value: \"\", Sensitive: false},\n\t\t{Name: \"max-forwards\", Value: \"\", Sensitive: false},\n\t\t{Name: \"proxy-authenticate\", Value: \"\", Sensitive: false},\n\t\t{Name: \"proxy-authorization\", Value: \"\", Sensitive: false},\n\t\t{Name: \"range\", Value: \"\", Sensitive: false},\n\t\t{Name: \"referer\", Value: \"\", Sensitive: false},\n\t\t{Name: \"refresh\", Value: \"\", Sensitive: false},\n\t\t{Name: \"retry-after\", Value: \"\", Sensitive: false},\n\t\t{Name: \"server\", Value: \"\", Sensitive: false},\n\t\t{Name: \"set-cookie\", Value: \"\", Sensitive: false},\n\t\t{Name: \"strict-transport-security\", Value: \"\", Sensitive: false},\n\t\t{Name: \"transfer-encoding\", Value: \"\", Sensitive: false},\n\t\t{Name: \"user-agent\", Value: \"\", Sensitive: false},\n\t\t{Name: \"vary\", Value: \"\", Sensitive: false},\n\t\t{Name: \"via\", Value: \"\", Sensitive: false},\n\t\t{Name: \"www-authenticate\", Value: \"\", Sensitive: false},\n\t},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/hpack/tables.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage hpack\n\nimport (\n\t\"fmt\"\n)\n\n// headerFieldTable implements a list of HeaderFields.\n// This is used to implement the static and dynamic tables.\ntype headerFieldTable struct {\n\t// For static tables, entries are never evicted.\n\t//\n\t// For dynamic tables, entries are evicted from ents[0] and added to the end.\n\t// Each entry has a unique id that starts at one and increments for each\n\t// entry that is added. This unique id is stable across evictions, meaning\n\t// it can be used as a pointer to a specific entry. As in hpack, unique ids\n\t// are 1-based. The unique id for ents[k] is k + evictCount + 1.\n\t//\n\t// Zero is not a valid unique id.\n\t//\n\t// evictCount should not overflow in any remotely practical situation. In\n\t// practice, we will have one dynamic table per HTTP/2 connection. If we\n\t// assume a very powerful server that handles 1M QPS per connection and each\n\t// request adds (then evicts) 100 entries from the table, it would still take\n\t// 2M years for evictCount to overflow.\n\tents       []HeaderField\n\tevictCount uint64\n\n\t// byName maps a HeaderField name to the unique id of the newest entry with\n\t// the same name. See above for a definition of \"unique id\".\n\tbyName map[string]uint64\n\n\t// byNameValue maps a HeaderField name/value pair to the unique id of the newest\n\t// entry with the same name and value. See above for a definition of \"unique id\".\n\tbyNameValue map[pairNameValue]uint64\n}\n\ntype pairNameValue struct {\n\tname, value string\n}\n\nfunc (t *headerFieldTable) init() {\n\tt.byName = make(map[string]uint64)\n\tt.byNameValue = make(map[pairNameValue]uint64)\n}\n\n// len reports the number of entries in the table.\nfunc (t *headerFieldTable) len() int {\n\treturn len(t.ents)\n}\n\n// addEntry adds a new entry.\nfunc (t *headerFieldTable) addEntry(f HeaderField) {\n\tid := uint64(t.len()) + t.evictCount + 1\n\tt.byName[f.Name] = id\n\tt.byNameValue[pairNameValue{f.Name, f.Value}] = id\n\tt.ents = append(t.ents, f)\n}\n\n// evictOldest evicts the n oldest entries in the table.\nfunc (t *headerFieldTable) evictOldest(n int) {\n\tif n > t.len() {\n\t\tpanic(fmt.Sprintf(\"evictOldest(%v) on table with %v entries\", n, t.len()))\n\t}\n\tfor k := 0; k < n; k++ {\n\t\tf := t.ents[k]\n\t\tid := t.evictCount + uint64(k) + 1\n\t\tif t.byName[f.Name] == id {\n\t\t\tdelete(t.byName, f.Name)\n\t\t}\n\t\tif p := (pairNameValue{f.Name, f.Value}); t.byNameValue[p] == id {\n\t\t\tdelete(t.byNameValue, p)\n\t\t}\n\t}\n\tcopy(t.ents, t.ents[n:])\n\tfor k := t.len() - n; k < t.len(); k++ {\n\t\tt.ents[k] = HeaderField{} // so strings can be garbage collected\n\t}\n\tt.ents = t.ents[:t.len()-n]\n\tif t.evictCount+uint64(n) < t.evictCount {\n\t\tpanic(\"evictCount overflow\")\n\t}\n\tt.evictCount += uint64(n)\n}\n\n// search finds f in the table. If there is no match, i is 0.\n// If both name and value match, i is the matched index and nameValueMatch\n// becomes true. If only name matches, i points to that index and\n// nameValueMatch becomes false.\n//\n// The returned index is a 1-based HPACK index. For dynamic tables, HPACK says\n// that index 1 should be the newest entry, but t.ents[0] is the oldest entry,\n// meaning t.ents is reversed for dynamic tables. Hence, when t is a dynamic\n// table, the return value i actually refers to the entry t.ents[t.len()-i].\n//\n// All tables are assumed to be a dynamic tables except for the global staticTable.\n//\n// See Section 2.3.3.\nfunc (t *headerFieldTable) search(f HeaderField) (i uint64, nameValueMatch bool) {\n\tif !f.Sensitive {\n\t\tif id := t.byNameValue[pairNameValue{f.Name, f.Value}]; id != 0 {\n\t\t\treturn t.idToIndex(id), true\n\t\t}\n\t}\n\tif id := t.byName[f.Name]; id != 0 {\n\t\treturn t.idToIndex(id), false\n\t}\n\treturn 0, false\n}\n\n// idToIndex converts a unique id to an HPACK index.\n// See Section 2.3.3.\nfunc (t *headerFieldTable) idToIndex(id uint64) uint64 {\n\tif id <= t.evictCount {\n\t\tpanic(fmt.Sprintf(\"id (%v) <= evictCount (%v)\", id, t.evictCount))\n\t}\n\tk := id - t.evictCount - 1 // convert id to an index t.ents[k]\n\tif t != staticTable {\n\t\treturn uint64(t.len()) - k // dynamic table\n\t}\n\treturn k + 1\n}\n\nvar huffmanCodes = [256]uint32{\n\t0x1ff8,\n\t0x7fffd8,\n\t0xfffffe2,\n\t0xfffffe3,\n\t0xfffffe4,\n\t0xfffffe5,\n\t0xfffffe6,\n\t0xfffffe7,\n\t0xfffffe8,\n\t0xffffea,\n\t0x3ffffffc,\n\t0xfffffe9,\n\t0xfffffea,\n\t0x3ffffffd,\n\t0xfffffeb,\n\t0xfffffec,\n\t0xfffffed,\n\t0xfffffee,\n\t0xfffffef,\n\t0xffffff0,\n\t0xffffff1,\n\t0xffffff2,\n\t0x3ffffffe,\n\t0xffffff3,\n\t0xffffff4,\n\t0xffffff5,\n\t0xffffff6,\n\t0xffffff7,\n\t0xffffff8,\n\t0xffffff9,\n\t0xffffffa,\n\t0xffffffb,\n\t0x14,\n\t0x3f8,\n\t0x3f9,\n\t0xffa,\n\t0x1ff9,\n\t0x15,\n\t0xf8,\n\t0x7fa,\n\t0x3fa,\n\t0x3fb,\n\t0xf9,\n\t0x7fb,\n\t0xfa,\n\t0x16,\n\t0x17,\n\t0x18,\n\t0x0,\n\t0x1,\n\t0x2,\n\t0x19,\n\t0x1a,\n\t0x1b,\n\t0x1c,\n\t0x1d,\n\t0x1e,\n\t0x1f,\n\t0x5c,\n\t0xfb,\n\t0x7ffc,\n\t0x20,\n\t0xffb,\n\t0x3fc,\n\t0x1ffa,\n\t0x21,\n\t0x5d,\n\t0x5e,\n\t0x5f,\n\t0x60,\n\t0x61,\n\t0x62,\n\t0x63,\n\t0x64,\n\t0x65,\n\t0x66,\n\t0x67,\n\t0x68,\n\t0x69,\n\t0x6a,\n\t0x6b,\n\t0x6c,\n\t0x6d,\n\t0x6e,\n\t0x6f,\n\t0x70,\n\t0x71,\n\t0x72,\n\t0xfc,\n\t0x73,\n\t0xfd,\n\t0x1ffb,\n\t0x7fff0,\n\t0x1ffc,\n\t0x3ffc,\n\t0x22,\n\t0x7ffd,\n\t0x3,\n\t0x23,\n\t0x4,\n\t0x24,\n\t0x5,\n\t0x25,\n\t0x26,\n\t0x27,\n\t0x6,\n\t0x74,\n\t0x75,\n\t0x28,\n\t0x29,\n\t0x2a,\n\t0x7,\n\t0x2b,\n\t0x76,\n\t0x2c,\n\t0x8,\n\t0x9,\n\t0x2d,\n\t0x77,\n\t0x78,\n\t0x79,\n\t0x7a,\n\t0x7b,\n\t0x7ffe,\n\t0x7fc,\n\t0x3ffd,\n\t0x1ffd,\n\t0xffffffc,\n\t0xfffe6,\n\t0x3fffd2,\n\t0xfffe7,\n\t0xfffe8,\n\t0x3fffd3,\n\t0x3fffd4,\n\t0x3fffd5,\n\t0x7fffd9,\n\t0x3fffd6,\n\t0x7fffda,\n\t0x7fffdb,\n\t0x7fffdc,\n\t0x7fffdd,\n\t0x7fffde,\n\t0xffffeb,\n\t0x7fffdf,\n\t0xffffec,\n\t0xffffed,\n\t0x3fffd7,\n\t0x7fffe0,\n\t0xffffee,\n\t0x7fffe1,\n\t0x7fffe2,\n\t0x7fffe3,\n\t0x7fffe4,\n\t0x1fffdc,\n\t0x3fffd8,\n\t0x7fffe5,\n\t0x3fffd9,\n\t0x7fffe6,\n\t0x7fffe7,\n\t0xffffef,\n\t0x3fffda,\n\t0x1fffdd,\n\t0xfffe9,\n\t0x3fffdb,\n\t0x3fffdc,\n\t0x7fffe8,\n\t0x7fffe9,\n\t0x1fffde,\n\t0x7fffea,\n\t0x3fffdd,\n\t0x3fffde,\n\t0xfffff0,\n\t0x1fffdf,\n\t0x3fffdf,\n\t0x7fffeb,\n\t0x7fffec,\n\t0x1fffe0,\n\t0x1fffe1,\n\t0x3fffe0,\n\t0x1fffe2,\n\t0x7fffed,\n\t0x3fffe1,\n\t0x7fffee,\n\t0x7fffef,\n\t0xfffea,\n\t0x3fffe2,\n\t0x3fffe3,\n\t0x3fffe4,\n\t0x7ffff0,\n\t0x3fffe5,\n\t0x3fffe6,\n\t0x7ffff1,\n\t0x3ffffe0,\n\t0x3ffffe1,\n\t0xfffeb,\n\t0x7fff1,\n\t0x3fffe7,\n\t0x7ffff2,\n\t0x3fffe8,\n\t0x1ffffec,\n\t0x3ffffe2,\n\t0x3ffffe3,\n\t0x3ffffe4,\n\t0x7ffffde,\n\t0x7ffffdf,\n\t0x3ffffe5,\n\t0xfffff1,\n\t0x1ffffed,\n\t0x7fff2,\n\t0x1fffe3,\n\t0x3ffffe6,\n\t0x7ffffe0,\n\t0x7ffffe1,\n\t0x3ffffe7,\n\t0x7ffffe2,\n\t0xfffff2,\n\t0x1fffe4,\n\t0x1fffe5,\n\t0x3ffffe8,\n\t0x3ffffe9,\n\t0xffffffd,\n\t0x7ffffe3,\n\t0x7ffffe4,\n\t0x7ffffe5,\n\t0xfffec,\n\t0xfffff3,\n\t0xfffed,\n\t0x1fffe6,\n\t0x3fffe9,\n\t0x1fffe7,\n\t0x1fffe8,\n\t0x7ffff3,\n\t0x3fffea,\n\t0x3fffeb,\n\t0x1ffffee,\n\t0x1ffffef,\n\t0xfffff4,\n\t0xfffff5,\n\t0x3ffffea,\n\t0x7ffff4,\n\t0x3ffffeb,\n\t0x7ffffe6,\n\t0x3ffffec,\n\t0x3ffffed,\n\t0x7ffffe7,\n\t0x7ffffe8,\n\t0x7ffffe9,\n\t0x7ffffea,\n\t0x7ffffeb,\n\t0xffffffe,\n\t0x7ffffec,\n\t0x7ffffed,\n\t0x7ffffee,\n\t0x7ffffef,\n\t0x7fffff0,\n\t0x3ffffee,\n}\n\nvar huffmanCodeLen = [256]uint8{\n\t13, 23, 28, 28, 28, 28, 28, 28, 28, 24, 30, 28, 28, 30, 28, 28,\n\t28, 28, 28, 28, 28, 28, 30, 28, 28, 28, 28, 28, 28, 28, 28, 28,\n\t6, 10, 10, 12, 13, 6, 8, 11, 10, 10, 8, 11, 8, 6, 6, 6,\n\t5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 7, 8, 15, 6, 12, 10,\n\t13, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,\n\t7, 7, 7, 7, 7, 7, 7, 7, 8, 7, 8, 13, 19, 13, 14, 6,\n\t15, 5, 6, 5, 6, 5, 6, 6, 6, 5, 7, 7, 6, 6, 6, 5,\n\t6, 7, 6, 5, 5, 6, 7, 7, 7, 7, 7, 15, 11, 14, 13, 28,\n\t20, 22, 20, 20, 22, 22, 22, 23, 22, 23, 23, 23, 23, 23, 24, 23,\n\t24, 24, 22, 23, 24, 23, 23, 23, 23, 21, 22, 23, 22, 23, 23, 24,\n\t22, 21, 20, 22, 22, 23, 23, 21, 23, 22, 22, 24, 21, 22, 23, 23,\n\t21, 21, 22, 21, 23, 22, 23, 23, 20, 22, 22, 22, 23, 22, 22, 23,\n\t26, 26, 20, 19, 22, 23, 22, 25, 26, 26, 26, 27, 27, 26, 24, 25,\n\t19, 21, 26, 27, 27, 26, 27, 24, 21, 21, 26, 26, 28, 27, 27, 27,\n\t20, 24, 20, 21, 22, 21, 21, 23, 22, 22, 25, 25, 24, 24, 26, 23,\n\t26, 27, 26, 26, 27, 27, 27, 27, 27, 28, 27, 27, 27, 27, 27, 26,\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/http2.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package http2 implements the HTTP/2 protocol.\n//\n// This package is low-level and intended to be used directly by very\n// few people. Most users will use it indirectly through the automatic\n// use by the net/http package (from Go 1.6 and later).\n// For use in earlier Go versions see ConfigureServer. (Transport support\n// requires Go 1.6 or later)\n//\n// See https://http2.github.io/ for more information on HTTP/2.\n//\n// See https://http2.golang.org/ for a test server running this code.\npackage http2 // import \"golang.org/x/net/http2\"\n\nimport (\n\t\"bufio\"\n\t\"context\"\n\t\"crypto/tls\"\n\t\"errors\"\n\t\"fmt\"\n\t\"net\"\n\t\"net/http\"\n\t\"os\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"golang.org/x/net/http/httpguts\"\n)\n\nvar (\n\tVerboseLogs    bool\n\tlogFrameWrites bool\n\tlogFrameReads  bool\n\tinTests        bool\n\n\t// Enabling extended CONNECT by causes browsers to attempt to use\n\t// WebSockets-over-HTTP/2. This results in problems when the server's websocket\n\t// package doesn't support extended CONNECT.\n\t//\n\t// Disable extended CONNECT by default for now.\n\t//\n\t// Issue #71128.\n\tdisableExtendedConnectProtocol = true\n)\n\nfunc init() {\n\te := os.Getenv(\"GODEBUG\")\n\tif strings.Contains(e, \"http2debug=1\") {\n\t\tVerboseLogs = true\n\t}\n\tif strings.Contains(e, \"http2debug=2\") {\n\t\tVerboseLogs = true\n\t\tlogFrameWrites = true\n\t\tlogFrameReads = true\n\t}\n\tif strings.Contains(e, \"http2xconnect=1\") {\n\t\tdisableExtendedConnectProtocol = false\n\t}\n}\n\nconst (\n\t// ClientPreface is the string that must be sent by new\n\t// connections from clients.\n\tClientPreface = \"PRI * HTTP/2.0\\r\\n\\r\\nSM\\r\\n\\r\\n\"\n\n\t// SETTINGS_MAX_FRAME_SIZE default\n\t// https://httpwg.org/specs/rfc7540.html#rfc.section.6.5.2\n\tinitialMaxFrameSize = 16384\n\n\t// NextProtoTLS is the NPN/ALPN protocol negotiated during\n\t// HTTP/2's TLS setup.\n\tNextProtoTLS = \"h2\"\n\n\t// https://httpwg.org/specs/rfc7540.html#SettingValues\n\tinitialHeaderTableSize = 4096\n\n\tinitialWindowSize = 65535 // 6.9.2 Initial Flow Control Window Size\n\n\tdefaultMaxReadFrameSize = 1 << 20\n)\n\nvar (\n\tclientPreface = []byte(ClientPreface)\n)\n\ntype streamState int\n\n// HTTP/2 stream states.\n//\n// See http://tools.ietf.org/html/rfc7540#section-5.1.\n//\n// For simplicity, the server code merges \"reserved (local)\" into\n// \"half-closed (remote)\". This is one less state transition to track.\n// The only downside is that we send PUSH_PROMISEs slightly less\n// liberally than allowable. More discussion here:\n// https://lists.w3.org/Archives/Public/ietf-http-wg/2016JulSep/0599.html\n//\n// \"reserved (remote)\" is omitted since the client code does not\n// support server push.\nconst (\n\tstateIdle streamState = iota\n\tstateOpen\n\tstateHalfClosedLocal\n\tstateHalfClosedRemote\n\tstateClosed\n)\n\nvar stateName = [...]string{\n\tstateIdle:             \"Idle\",\n\tstateOpen:             \"Open\",\n\tstateHalfClosedLocal:  \"HalfClosedLocal\",\n\tstateHalfClosedRemote: \"HalfClosedRemote\",\n\tstateClosed:           \"Closed\",\n}\n\nfunc (st streamState) String() string {\n\treturn stateName[st]\n}\n\n// Setting is a setting parameter: which setting it is, and its value.\ntype Setting struct {\n\t// ID is which setting is being set.\n\t// See https://httpwg.org/specs/rfc7540.html#SettingFormat\n\tID SettingID\n\n\t// Val is the value.\n\tVal uint32\n}\n\nfunc (s Setting) String() string {\n\treturn fmt.Sprintf(\"[%v = %d]\", s.ID, s.Val)\n}\n\n// Valid reports whether the setting is valid.\nfunc (s Setting) Valid() error {\n\t// Limits and error codes from 6.5.2 Defined SETTINGS Parameters\n\tswitch s.ID {\n\tcase SettingEnablePush:\n\t\tif s.Val != 1 && s.Val != 0 {\n\t\t\treturn ConnectionError(ErrCodeProtocol)\n\t\t}\n\tcase SettingInitialWindowSize:\n\t\tif s.Val > 1<<31-1 {\n\t\t\treturn ConnectionError(ErrCodeFlowControl)\n\t\t}\n\tcase SettingMaxFrameSize:\n\t\tif s.Val < 16384 || s.Val > 1<<24-1 {\n\t\t\treturn ConnectionError(ErrCodeProtocol)\n\t\t}\n\tcase SettingEnableConnectProtocol:\n\t\tif s.Val != 1 && s.Val != 0 {\n\t\t\treturn ConnectionError(ErrCodeProtocol)\n\t\t}\n\t}\n\treturn nil\n}\n\n// A SettingID is an HTTP/2 setting as defined in\n// https://httpwg.org/specs/rfc7540.html#iana-settings\ntype SettingID uint16\n\nconst (\n\tSettingHeaderTableSize       SettingID = 0x1\n\tSettingEnablePush            SettingID = 0x2\n\tSettingMaxConcurrentStreams  SettingID = 0x3\n\tSettingInitialWindowSize     SettingID = 0x4\n\tSettingMaxFrameSize          SettingID = 0x5\n\tSettingMaxHeaderListSize     SettingID = 0x6\n\tSettingEnableConnectProtocol SettingID = 0x8\n)\n\nvar settingName = map[SettingID]string{\n\tSettingHeaderTableSize:       \"HEADER_TABLE_SIZE\",\n\tSettingEnablePush:            \"ENABLE_PUSH\",\n\tSettingMaxConcurrentStreams:  \"MAX_CONCURRENT_STREAMS\",\n\tSettingInitialWindowSize:     \"INITIAL_WINDOW_SIZE\",\n\tSettingMaxFrameSize:          \"MAX_FRAME_SIZE\",\n\tSettingMaxHeaderListSize:     \"MAX_HEADER_LIST_SIZE\",\n\tSettingEnableConnectProtocol: \"ENABLE_CONNECT_PROTOCOL\",\n}\n\nfunc (s SettingID) String() string {\n\tif v, ok := settingName[s]; ok {\n\t\treturn v\n\t}\n\treturn fmt.Sprintf(\"UNKNOWN_SETTING_%d\", uint16(s))\n}\n\n// validWireHeaderFieldName reports whether v is a valid header field\n// name (key). See httpguts.ValidHeaderName for the base rules.\n//\n// Further, http2 says:\n//\n//\t\"Just as in HTTP/1.x, header field names are strings of ASCII\n//\tcharacters that are compared in a case-insensitive\n//\tfashion. However, header field names MUST be converted to\n//\tlowercase prior to their encoding in HTTP/2. \"\nfunc validWireHeaderFieldName(v string) bool {\n\tif len(v) == 0 {\n\t\treturn false\n\t}\n\tfor _, r := range v {\n\t\tif !httpguts.IsTokenRune(r) {\n\t\t\treturn false\n\t\t}\n\t\tif 'A' <= r && r <= 'Z' {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc httpCodeString(code int) string {\n\tswitch code {\n\tcase 200:\n\t\treturn \"200\"\n\tcase 404:\n\t\treturn \"404\"\n\t}\n\treturn strconv.Itoa(code)\n}\n\n// from pkg io\ntype stringWriter interface {\n\tWriteString(s string) (n int, err error)\n}\n\n// A closeWaiter is like a sync.WaitGroup but only goes 1 to 0 (open to closed).\ntype closeWaiter chan struct{}\n\n// Init makes a closeWaiter usable.\n// It exists because so a closeWaiter value can be placed inside a\n// larger struct and have the Mutex and Cond's memory in the same\n// allocation.\nfunc (cw *closeWaiter) Init() {\n\t*cw = make(chan struct{})\n}\n\n// Close marks the closeWaiter as closed and unblocks any waiters.\nfunc (cw closeWaiter) Close() {\n\tclose(cw)\n}\n\n// Wait waits for the closeWaiter to become closed.\nfunc (cw closeWaiter) Wait() {\n\t<-cw\n}\n\n// bufferedWriter is a buffered writer that writes to w.\n// Its buffered writer is lazily allocated as needed, to minimize\n// idle memory usage with many connections.\ntype bufferedWriter struct {\n\t_           incomparable\n\tgroup       synctestGroupInterface // immutable\n\tconn        net.Conn               // immutable\n\tbw          *bufio.Writer          // non-nil when data is buffered\n\tbyteTimeout time.Duration          // immutable, WriteByteTimeout\n}\n\nfunc newBufferedWriter(group synctestGroupInterface, conn net.Conn, timeout time.Duration) *bufferedWriter {\n\treturn &bufferedWriter{\n\t\tgroup:       group,\n\t\tconn:        conn,\n\t\tbyteTimeout: timeout,\n\t}\n}\n\n// bufWriterPoolBufferSize is the size of bufio.Writer's\n// buffers created using bufWriterPool.\n//\n// TODO: pick a less arbitrary value? this is a bit under\n// (3 x typical 1500 byte MTU) at least. Other than that,\n// not much thought went into it.\nconst bufWriterPoolBufferSize = 4 << 10\n\nvar bufWriterPool = sync.Pool{\n\tNew: func() interface{} {\n\t\treturn bufio.NewWriterSize(nil, bufWriterPoolBufferSize)\n\t},\n}\n\nfunc (w *bufferedWriter) Available() int {\n\tif w.bw == nil {\n\t\treturn bufWriterPoolBufferSize\n\t}\n\treturn w.bw.Available()\n}\n\nfunc (w *bufferedWriter) Write(p []byte) (n int, err error) {\n\tif w.bw == nil {\n\t\tbw := bufWriterPool.Get().(*bufio.Writer)\n\t\tbw.Reset((*bufferedWriterTimeoutWriter)(w))\n\t\tw.bw = bw\n\t}\n\treturn w.bw.Write(p)\n}\n\nfunc (w *bufferedWriter) Flush() error {\n\tbw := w.bw\n\tif bw == nil {\n\t\treturn nil\n\t}\n\terr := bw.Flush()\n\tbw.Reset(nil)\n\tbufWriterPool.Put(bw)\n\tw.bw = nil\n\treturn err\n}\n\ntype bufferedWriterTimeoutWriter bufferedWriter\n\nfunc (w *bufferedWriterTimeoutWriter) Write(p []byte) (n int, err error) {\n\treturn writeWithByteTimeout(w.group, w.conn, w.byteTimeout, p)\n}\n\n// writeWithByteTimeout writes to conn.\n// If more than timeout passes without any bytes being written to the connection,\n// the write fails.\nfunc writeWithByteTimeout(group synctestGroupInterface, conn net.Conn, timeout time.Duration, p []byte) (n int, err error) {\n\tif timeout <= 0 {\n\t\treturn conn.Write(p)\n\t}\n\tfor {\n\t\tvar now time.Time\n\t\tif group == nil {\n\t\t\tnow = time.Now()\n\t\t} else {\n\t\t\tnow = group.Now()\n\t\t}\n\t\tconn.SetWriteDeadline(now.Add(timeout))\n\t\tnn, err := conn.Write(p[n:])\n\t\tn += nn\n\t\tif n == len(p) || nn == 0 || !errors.Is(err, os.ErrDeadlineExceeded) {\n\t\t\t// Either we finished the write, made no progress, or hit the deadline.\n\t\t\t// Whichever it is, we're done now.\n\t\t\tconn.SetWriteDeadline(time.Time{})\n\t\t\treturn n, err\n\t\t}\n\t}\n}\n\nfunc mustUint31(v int32) uint32 {\n\tif v < 0 || v > 2147483647 {\n\t\tpanic(\"out of range\")\n\t}\n\treturn uint32(v)\n}\n\n// bodyAllowedForStatus reports whether a given response status code\n// permits a body. See RFC 7230, section 3.3.\nfunc bodyAllowedForStatus(status int) bool {\n\tswitch {\n\tcase status >= 100 && status <= 199:\n\t\treturn false\n\tcase status == 204:\n\t\treturn false\n\tcase status == 304:\n\t\treturn false\n\t}\n\treturn true\n}\n\ntype httpError struct {\n\t_       incomparable\n\tmsg     string\n\ttimeout bool\n}\n\nfunc (e *httpError) Error() string   { return e.msg }\nfunc (e *httpError) Timeout() bool   { return e.timeout }\nfunc (e *httpError) Temporary() bool { return true }\n\nvar errTimeout error = &httpError{msg: \"http2: timeout awaiting response headers\", timeout: true}\n\ntype connectionStater interface {\n\tConnectionState() tls.ConnectionState\n}\n\nvar sorterPool = sync.Pool{New: func() interface{} { return new(sorter) }}\n\ntype sorter struct {\n\tv []string // owned by sorter\n}\n\nfunc (s *sorter) Len() int           { return len(s.v) }\nfunc (s *sorter) Swap(i, j int)      { s.v[i], s.v[j] = s.v[j], s.v[i] }\nfunc (s *sorter) Less(i, j int) bool { return s.v[i] < s.v[j] }\n\n// Keys returns the sorted keys of h.\n//\n// The returned slice is only valid until s used again or returned to\n// its pool.\nfunc (s *sorter) Keys(h http.Header) []string {\n\tkeys := s.v[:0]\n\tfor k := range h {\n\t\tkeys = append(keys, k)\n\t}\n\ts.v = keys\n\tsort.Sort(s)\n\treturn keys\n}\n\nfunc (s *sorter) SortStrings(ss []string) {\n\t// Our sorter works on s.v, which sorter owns, so\n\t// stash it away while we sort the user's buffer.\n\tsave := s.v\n\ts.v = ss\n\tsort.Sort(s)\n\ts.v = save\n}\n\n// incomparable is a zero-width, non-comparable type. Adding it to a struct\n// makes that struct also non-comparable, and generally doesn't add\n// any size (as long as it's first).\ntype incomparable [0]func()\n\n// synctestGroupInterface is the methods of synctestGroup used by Server and Transport.\n// It's defined as an interface here to let us keep synctestGroup entirely test-only\n// and not a part of non-test builds.\ntype synctestGroupInterface interface {\n\tJoin()\n\tNow() time.Time\n\tNewTimer(d time.Duration) timer\n\tAfterFunc(d time.Duration, f func()) timer\n\tContextWithTimeout(ctx context.Context, d time.Duration) (context.Context, context.CancelFunc)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/pipe.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage http2\n\nimport (\n\t\"errors\"\n\t\"io\"\n\t\"sync\"\n)\n\n// pipe is a goroutine-safe io.Reader/io.Writer pair. It's like\n// io.Pipe except there are no PipeReader/PipeWriter halves, and the\n// underlying buffer is an interface. (io.Pipe is always unbuffered)\ntype pipe struct {\n\tmu       sync.Mutex\n\tc        sync.Cond     // c.L lazily initialized to &p.mu\n\tb        pipeBuffer    // nil when done reading\n\tunread   int           // bytes unread when done\n\terr      error         // read error once empty. non-nil means closed.\n\tbreakErr error         // immediate read error (caller doesn't see rest of b)\n\tdonec    chan struct{} // closed on error\n\treadFn   func()        // optional code to run in Read before error\n}\n\ntype pipeBuffer interface {\n\tLen() int\n\tio.Writer\n\tio.Reader\n}\n\n// setBuffer initializes the pipe buffer.\n// It has no effect if the pipe is already closed.\nfunc (p *pipe) setBuffer(b pipeBuffer) {\n\tp.mu.Lock()\n\tdefer p.mu.Unlock()\n\tif p.err != nil || p.breakErr != nil {\n\t\treturn\n\t}\n\tp.b = b\n}\n\nfunc (p *pipe) Len() int {\n\tp.mu.Lock()\n\tdefer p.mu.Unlock()\n\tif p.b == nil {\n\t\treturn p.unread\n\t}\n\treturn p.b.Len()\n}\n\n// Read waits until data is available and copies bytes\n// from the buffer into p.\nfunc (p *pipe) Read(d []byte) (n int, err error) {\n\tp.mu.Lock()\n\tdefer p.mu.Unlock()\n\tif p.c.L == nil {\n\t\tp.c.L = &p.mu\n\t}\n\tfor {\n\t\tif p.breakErr != nil {\n\t\t\treturn 0, p.breakErr\n\t\t}\n\t\tif p.b != nil && p.b.Len() > 0 {\n\t\t\treturn p.b.Read(d)\n\t\t}\n\t\tif p.err != nil {\n\t\t\tif p.readFn != nil {\n\t\t\t\tp.readFn()     // e.g. copy trailers\n\t\t\t\tp.readFn = nil // not sticky like p.err\n\t\t\t}\n\t\t\tp.b = nil\n\t\t\treturn 0, p.err\n\t\t}\n\t\tp.c.Wait()\n\t}\n}\n\nvar (\n\terrClosedPipeWrite        = errors.New(\"write on closed buffer\")\n\terrUninitializedPipeWrite = errors.New(\"write on uninitialized buffer\")\n)\n\n// Write copies bytes from p into the buffer and wakes a reader.\n// It is an error to write more data than the buffer can hold.\nfunc (p *pipe) Write(d []byte) (n int, err error) {\n\tp.mu.Lock()\n\tdefer p.mu.Unlock()\n\tif p.c.L == nil {\n\t\tp.c.L = &p.mu\n\t}\n\tdefer p.c.Signal()\n\tif p.err != nil || p.breakErr != nil {\n\t\treturn 0, errClosedPipeWrite\n\t}\n\t// pipe.setBuffer is never invoked, leaving the buffer uninitialized.\n\t// We shouldn't try to write to an uninitialized pipe,\n\t// but returning an error is better than panicking.\n\tif p.b == nil {\n\t\treturn 0, errUninitializedPipeWrite\n\t}\n\treturn p.b.Write(d)\n}\n\n// CloseWithError causes the next Read (waking up a current blocked\n// Read if needed) to return the provided err after all data has been\n// read.\n//\n// The error must be non-nil.\nfunc (p *pipe) CloseWithError(err error) { p.closeWithError(&p.err, err, nil) }\n\n// BreakWithError causes the next Read (waking up a current blocked\n// Read if needed) to return the provided err immediately, without\n// waiting for unread data.\nfunc (p *pipe) BreakWithError(err error) { p.closeWithError(&p.breakErr, err, nil) }\n\n// closeWithErrorAndCode is like CloseWithError but also sets some code to run\n// in the caller's goroutine before returning the error.\nfunc (p *pipe) closeWithErrorAndCode(err error, fn func()) { p.closeWithError(&p.err, err, fn) }\n\nfunc (p *pipe) closeWithError(dst *error, err error, fn func()) {\n\tif err == nil {\n\t\tpanic(\"err must be non-nil\")\n\t}\n\tp.mu.Lock()\n\tdefer p.mu.Unlock()\n\tif p.c.L == nil {\n\t\tp.c.L = &p.mu\n\t}\n\tdefer p.c.Signal()\n\tif *dst != nil {\n\t\t// Already been done.\n\t\treturn\n\t}\n\tp.readFn = fn\n\tif dst == &p.breakErr {\n\t\tif p.b != nil {\n\t\t\tp.unread += p.b.Len()\n\t\t}\n\t\tp.b = nil\n\t}\n\t*dst = err\n\tp.closeDoneLocked()\n}\n\n// requires p.mu be held.\nfunc (p *pipe) closeDoneLocked() {\n\tif p.donec == nil {\n\t\treturn\n\t}\n\t// Close if unclosed. This isn't racy since we always\n\t// hold p.mu while closing.\n\tselect {\n\tcase <-p.donec:\n\tdefault:\n\t\tclose(p.donec)\n\t}\n}\n\n// Err returns the error (if any) first set by BreakWithError or CloseWithError.\nfunc (p *pipe) Err() error {\n\tp.mu.Lock()\n\tdefer p.mu.Unlock()\n\tif p.breakErr != nil {\n\t\treturn p.breakErr\n\t}\n\treturn p.err\n}\n\n// Done returns a channel which is closed if and when this pipe is closed\n// with CloseWithError.\nfunc (p *pipe) Done() <-chan struct{} {\n\tp.mu.Lock()\n\tdefer p.mu.Unlock()\n\tif p.donec == nil {\n\t\tp.donec = make(chan struct{})\n\t\tif p.err != nil || p.breakErr != nil {\n\t\t\t// Already hit an error.\n\t\t\tp.closeDoneLocked()\n\t\t}\n\t}\n\treturn p.donec\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/server.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// TODO: turn off the serve goroutine when idle, so\n// an idle conn only has the readFrames goroutine active. (which could\n// also be optimized probably to pin less memory in crypto/tls). This\n// would involve tracking when the serve goroutine is active (atomic\n// int32 read/CAS probably?) and starting it up when frames arrive,\n// and shutting it down when all handlers exit. the occasional PING\n// packets could use time.AfterFunc to call sc.wakeStartServeLoop()\n// (which is a no-op if already running) and then queue the PING write\n// as normal. The serve loop would then exit in most cases (if no\n// Handlers running) and not be woken up again until the PING packet\n// returns.\n\n// TODO (maybe): add a mechanism for Handlers to going into\n// half-closed-local mode (rw.(io.Closer) test?) but not exit their\n// handler, and continue to be able to read from the\n// Request.Body. This would be a somewhat semantic change from HTTP/1\n// (or at least what we expose in net/http), so I'd probably want to\n// add it there too. For now, this package says that returning from\n// the Handler ServeHTTP function means you're both done reading and\n// done writing, without a way to stop just one or the other.\n\npackage http2\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"context\"\n\t\"crypto/rand\"\n\t\"crypto/tls\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"log\"\n\t\"math\"\n\t\"net\"\n\t\"net/http\"\n\t\"net/textproto\"\n\t\"net/url\"\n\t\"os\"\n\t\"reflect\"\n\t\"runtime\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"golang.org/x/net/http/httpguts\"\n\t\"golang.org/x/net/http2/hpack\"\n\t\"golang.org/x/net/internal/httpcommon\"\n)\n\nconst (\n\tprefaceTimeout        = 10 * time.Second\n\tfirstSettingsTimeout  = 2 * time.Second // should be in-flight with preface anyway\n\thandlerChunkWriteSize = 4 << 10\n\tdefaultMaxStreams     = 250 // TODO: make this 100 as the GFE seems to?\n\n\t// maxQueuedControlFrames is the maximum number of control frames like\n\t// SETTINGS, PING and RST_STREAM that will be queued for writing before\n\t// the connection is closed to prevent memory exhaustion attacks.\n\tmaxQueuedControlFrames = 10000\n)\n\nvar (\n\terrClientDisconnected = errors.New(\"client disconnected\")\n\terrClosedBody         = errors.New(\"body closed by handler\")\n\terrHandlerComplete    = errors.New(\"http2: request body closed due to handler exiting\")\n\terrStreamClosed       = errors.New(\"http2: stream closed\")\n)\n\nvar responseWriterStatePool = sync.Pool{\n\tNew: func() interface{} {\n\t\trws := &responseWriterState{}\n\t\trws.bw = bufio.NewWriterSize(chunkWriter{rws}, handlerChunkWriteSize)\n\t\treturn rws\n\t},\n}\n\n// Test hooks.\nvar (\n\ttestHookOnConn        func()\n\ttestHookGetServerConn func(*serverConn)\n\ttestHookOnPanicMu     *sync.Mutex // nil except in tests\n\ttestHookOnPanic       func(sc *serverConn, panicVal interface{}) (rePanic bool)\n)\n\n// Server is an HTTP/2 server.\ntype Server struct {\n\t// MaxHandlers limits the number of http.Handler ServeHTTP goroutines\n\t// which may run at a time over all connections.\n\t// Negative or zero no limit.\n\t// TODO: implement\n\tMaxHandlers int\n\n\t// MaxConcurrentStreams optionally specifies the number of\n\t// concurrent streams that each client may have open at a\n\t// time. This is unrelated to the number of http.Handler goroutines\n\t// which may be active globally, which is MaxHandlers.\n\t// If zero, MaxConcurrentStreams defaults to at least 100, per\n\t// the HTTP/2 spec's recommendations.\n\tMaxConcurrentStreams uint32\n\n\t// MaxDecoderHeaderTableSize optionally specifies the http2\n\t// SETTINGS_HEADER_TABLE_SIZE to send in the initial settings frame. It\n\t// informs the remote endpoint of the maximum size of the header compression\n\t// table used to decode header blocks, in octets. If zero, the default value\n\t// of 4096 is used.\n\tMaxDecoderHeaderTableSize uint32\n\n\t// MaxEncoderHeaderTableSize optionally specifies an upper limit for the\n\t// header compression table used for encoding request headers. Received\n\t// SETTINGS_HEADER_TABLE_SIZE settings are capped at this limit. If zero,\n\t// the default value of 4096 is used.\n\tMaxEncoderHeaderTableSize uint32\n\n\t// MaxReadFrameSize optionally specifies the largest frame\n\t// this server is willing to read. A valid value is between\n\t// 16k and 16M, inclusive. If zero or otherwise invalid, a\n\t// default value is used.\n\tMaxReadFrameSize uint32\n\n\t// PermitProhibitedCipherSuites, if true, permits the use of\n\t// cipher suites prohibited by the HTTP/2 spec.\n\tPermitProhibitedCipherSuites bool\n\n\t// IdleTimeout specifies how long until idle clients should be\n\t// closed with a GOAWAY frame. PING frames are not considered\n\t// activity for the purposes of IdleTimeout.\n\t// If zero or negative, there is no timeout.\n\tIdleTimeout time.Duration\n\n\t// ReadIdleTimeout is the timeout after which a health check using a ping\n\t// frame will be carried out if no frame is received on the connection.\n\t// If zero, no health check is performed.\n\tReadIdleTimeout time.Duration\n\n\t// PingTimeout is the timeout after which the connection will be closed\n\t// if a response to a ping is not received.\n\t// If zero, a default of 15 seconds is used.\n\tPingTimeout time.Duration\n\n\t// WriteByteTimeout is the timeout after which a connection will be\n\t// closed if no data can be written to it. The timeout begins when data is\n\t// available to write, and is extended whenever any bytes are written.\n\t// If zero or negative, there is no timeout.\n\tWriteByteTimeout time.Duration\n\n\t// MaxUploadBufferPerConnection is the size of the initial flow\n\t// control window for each connections. The HTTP/2 spec does not\n\t// allow this to be smaller than 65535 or larger than 2^32-1.\n\t// If the value is outside this range, a default value will be\n\t// used instead.\n\tMaxUploadBufferPerConnection int32\n\n\t// MaxUploadBufferPerStream is the size of the initial flow control\n\t// window for each stream. The HTTP/2 spec does not allow this to\n\t// be larger than 2^32-1. If the value is zero or larger than the\n\t// maximum, a default value will be used instead.\n\tMaxUploadBufferPerStream int32\n\n\t// NewWriteScheduler constructs a write scheduler for a connection.\n\t// If nil, a default scheduler is chosen.\n\tNewWriteScheduler func() WriteScheduler\n\n\t// CountError, if non-nil, is called on HTTP/2 server errors.\n\t// It's intended to increment a metric for monitoring, such\n\t// as an expvar or Prometheus metric.\n\t// The errType consists of only ASCII word characters.\n\tCountError func(errType string)\n\n\t// Internal state. This is a pointer (rather than embedded directly)\n\t// so that we don't embed a Mutex in this struct, which will make the\n\t// struct non-copyable, which might break some callers.\n\tstate *serverInternalState\n\n\t// Synchronization group used for testing.\n\t// Outside of tests, this is nil.\n\tgroup synctestGroupInterface\n}\n\nfunc (s *Server) markNewGoroutine() {\n\tif s.group != nil {\n\t\ts.group.Join()\n\t}\n}\n\nfunc (s *Server) now() time.Time {\n\tif s.group != nil {\n\t\treturn s.group.Now()\n\t}\n\treturn time.Now()\n}\n\n// newTimer creates a new time.Timer, or a synthetic timer in tests.\nfunc (s *Server) newTimer(d time.Duration) timer {\n\tif s.group != nil {\n\t\treturn s.group.NewTimer(d)\n\t}\n\treturn timeTimer{time.NewTimer(d)}\n}\n\n// afterFunc creates a new time.AfterFunc timer, or a synthetic timer in tests.\nfunc (s *Server) afterFunc(d time.Duration, f func()) timer {\n\tif s.group != nil {\n\t\treturn s.group.AfterFunc(d, f)\n\t}\n\treturn timeTimer{time.AfterFunc(d, f)}\n}\n\ntype serverInternalState struct {\n\tmu          sync.Mutex\n\tactiveConns map[*serverConn]struct{}\n}\n\nfunc (s *serverInternalState) registerConn(sc *serverConn) {\n\tif s == nil {\n\t\treturn // if the Server was used without calling ConfigureServer\n\t}\n\ts.mu.Lock()\n\ts.activeConns[sc] = struct{}{}\n\ts.mu.Unlock()\n}\n\nfunc (s *serverInternalState) unregisterConn(sc *serverConn) {\n\tif s == nil {\n\t\treturn // if the Server was used without calling ConfigureServer\n\t}\n\ts.mu.Lock()\n\tdelete(s.activeConns, sc)\n\ts.mu.Unlock()\n}\n\nfunc (s *serverInternalState) startGracefulShutdown() {\n\tif s == nil {\n\t\treturn // if the Server was used without calling ConfigureServer\n\t}\n\ts.mu.Lock()\n\tfor sc := range s.activeConns {\n\t\tsc.startGracefulShutdown()\n\t}\n\ts.mu.Unlock()\n}\n\n// ConfigureServer adds HTTP/2 support to a net/http Server.\n//\n// The configuration conf may be nil.\n//\n// ConfigureServer must be called before s begins serving.\nfunc ConfigureServer(s *http.Server, conf *Server) error {\n\tif s == nil {\n\t\tpanic(\"nil *http.Server\")\n\t}\n\tif conf == nil {\n\t\tconf = new(Server)\n\t}\n\tconf.state = &serverInternalState{activeConns: make(map[*serverConn]struct{})}\n\tif h1, h2 := s, conf; h2.IdleTimeout == 0 {\n\t\tif h1.IdleTimeout != 0 {\n\t\t\th2.IdleTimeout = h1.IdleTimeout\n\t\t} else {\n\t\t\th2.IdleTimeout = h1.ReadTimeout\n\t\t}\n\t}\n\ts.RegisterOnShutdown(conf.state.startGracefulShutdown)\n\n\tif s.TLSConfig == nil {\n\t\ts.TLSConfig = new(tls.Config)\n\t} else if s.TLSConfig.CipherSuites != nil && s.TLSConfig.MinVersion < tls.VersionTLS13 {\n\t\t// If they already provided a TLS 1.0–1.2 CipherSuite list, return an\n\t\t// error if it is missing ECDHE_RSA_WITH_AES_128_GCM_SHA256 or\n\t\t// ECDHE_ECDSA_WITH_AES_128_GCM_SHA256.\n\t\thaveRequired := false\n\t\tfor _, cs := range s.TLSConfig.CipherSuites {\n\t\t\tswitch cs {\n\t\t\tcase tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,\n\t\t\t\t// Alternative MTI cipher to not discourage ECDSA-only servers.\n\t\t\t\t// See http://golang.org/cl/30721 for further information.\n\t\t\t\ttls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:\n\t\t\t\thaveRequired = true\n\t\t\t}\n\t\t}\n\t\tif !haveRequired {\n\t\t\treturn fmt.Errorf(\"http2: TLSConfig.CipherSuites is missing an HTTP/2-required AES_128_GCM_SHA256 cipher (need at least one of TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 or TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256)\")\n\t\t}\n\t}\n\n\t// Note: not setting MinVersion to tls.VersionTLS12,\n\t// as we don't want to interfere with HTTP/1.1 traffic\n\t// on the user's server. We enforce TLS 1.2 later once\n\t// we accept a connection. Ideally this should be done\n\t// during next-proto selection, but using TLS <1.2 with\n\t// HTTP/2 is still the client's bug.\n\n\ts.TLSConfig.PreferServerCipherSuites = true\n\n\tif !strSliceContains(s.TLSConfig.NextProtos, NextProtoTLS) {\n\t\ts.TLSConfig.NextProtos = append(s.TLSConfig.NextProtos, NextProtoTLS)\n\t}\n\tif !strSliceContains(s.TLSConfig.NextProtos, \"http/1.1\") {\n\t\ts.TLSConfig.NextProtos = append(s.TLSConfig.NextProtos, \"http/1.1\")\n\t}\n\n\tif s.TLSNextProto == nil {\n\t\ts.TLSNextProto = map[string]func(*http.Server, *tls.Conn, http.Handler){}\n\t}\n\tprotoHandler := func(hs *http.Server, c net.Conn, h http.Handler, sawClientPreface bool) {\n\t\tif testHookOnConn != nil {\n\t\t\ttestHookOnConn()\n\t\t}\n\t\t// The TLSNextProto interface predates contexts, so\n\t\t// the net/http package passes down its per-connection\n\t\t// base context via an exported but unadvertised\n\t\t// method on the Handler. This is for internal\n\t\t// net/http<=>http2 use only.\n\t\tvar ctx context.Context\n\t\ttype baseContexter interface {\n\t\t\tBaseContext() context.Context\n\t\t}\n\t\tif bc, ok := h.(baseContexter); ok {\n\t\t\tctx = bc.BaseContext()\n\t\t}\n\t\tconf.ServeConn(c, &ServeConnOpts{\n\t\t\tContext:          ctx,\n\t\t\tHandler:          h,\n\t\t\tBaseConfig:       hs,\n\t\t\tSawClientPreface: sawClientPreface,\n\t\t})\n\t}\n\ts.TLSNextProto[NextProtoTLS] = func(hs *http.Server, c *tls.Conn, h http.Handler) {\n\t\tprotoHandler(hs, c, h, false)\n\t}\n\t// The \"unencrypted_http2\" TLSNextProto key is used to pass off non-TLS HTTP/2 conns.\n\t//\n\t// A connection passed in this method has already had the HTTP/2 preface read from it.\n\ts.TLSNextProto[nextProtoUnencryptedHTTP2] = func(hs *http.Server, c *tls.Conn, h http.Handler) {\n\t\tnc, err := unencryptedNetConnFromTLSConn(c)\n\t\tif err != nil {\n\t\t\tif lg := hs.ErrorLog; lg != nil {\n\t\t\t\tlg.Print(err)\n\t\t\t} else {\n\t\t\t\tlog.Print(err)\n\t\t\t}\n\t\t\tgo c.Close()\n\t\t\treturn\n\t\t}\n\t\tprotoHandler(hs, nc, h, true)\n\t}\n\treturn nil\n}\n\n// ServeConnOpts are options for the Server.ServeConn method.\ntype ServeConnOpts struct {\n\t// Context is the base context to use.\n\t// If nil, context.Background is used.\n\tContext context.Context\n\n\t// BaseConfig optionally sets the base configuration\n\t// for values. If nil, defaults are used.\n\tBaseConfig *http.Server\n\n\t// Handler specifies which handler to use for processing\n\t// requests. If nil, BaseConfig.Handler is used. If BaseConfig\n\t// or BaseConfig.Handler is nil, http.DefaultServeMux is used.\n\tHandler http.Handler\n\n\t// UpgradeRequest is an initial request received on a connection\n\t// undergoing an h2c upgrade. The request body must have been\n\t// completely read from the connection before calling ServeConn,\n\t// and the 101 Switching Protocols response written.\n\tUpgradeRequest *http.Request\n\n\t// Settings is the decoded contents of the HTTP2-Settings header\n\t// in an h2c upgrade request.\n\tSettings []byte\n\n\t// SawClientPreface is set if the HTTP/2 connection preface\n\t// has already been read from the connection.\n\tSawClientPreface bool\n}\n\nfunc (o *ServeConnOpts) context() context.Context {\n\tif o != nil && o.Context != nil {\n\t\treturn o.Context\n\t}\n\treturn context.Background()\n}\n\nfunc (o *ServeConnOpts) baseConfig() *http.Server {\n\tif o != nil && o.BaseConfig != nil {\n\t\treturn o.BaseConfig\n\t}\n\treturn new(http.Server)\n}\n\nfunc (o *ServeConnOpts) handler() http.Handler {\n\tif o != nil {\n\t\tif o.Handler != nil {\n\t\t\treturn o.Handler\n\t\t}\n\t\tif o.BaseConfig != nil && o.BaseConfig.Handler != nil {\n\t\t\treturn o.BaseConfig.Handler\n\t\t}\n\t}\n\treturn http.DefaultServeMux\n}\n\n// ServeConn serves HTTP/2 requests on the provided connection and\n// blocks until the connection is no longer readable.\n//\n// ServeConn starts speaking HTTP/2 assuming that c has not had any\n// reads or writes. It writes its initial settings frame and expects\n// to be able to read the preface and settings frame from the\n// client. If c has a ConnectionState method like a *tls.Conn, the\n// ConnectionState is used to verify the TLS ciphersuite and to set\n// the Request.TLS field in Handlers.\n//\n// ServeConn does not support h2c by itself. Any h2c support must be\n// implemented in terms of providing a suitably-behaving net.Conn.\n//\n// The opts parameter is optional. If nil, default values are used.\nfunc (s *Server) ServeConn(c net.Conn, opts *ServeConnOpts) {\n\ts.serveConn(c, opts, nil)\n}\n\nfunc (s *Server) serveConn(c net.Conn, opts *ServeConnOpts, newf func(*serverConn)) {\n\tbaseCtx, cancel := serverConnBaseContext(c, opts)\n\tdefer cancel()\n\n\thttp1srv := opts.baseConfig()\n\tconf := configFromServer(http1srv, s)\n\tsc := &serverConn{\n\t\tsrv:                         s,\n\t\ths:                          http1srv,\n\t\tconn:                        c,\n\t\tbaseCtx:                     baseCtx,\n\t\tremoteAddrStr:               c.RemoteAddr().String(),\n\t\tbw:                          newBufferedWriter(s.group, c, conf.WriteByteTimeout),\n\t\thandler:                     opts.handler(),\n\t\tstreams:                     make(map[uint32]*stream),\n\t\treadFrameCh:                 make(chan readFrameResult),\n\t\twantWriteFrameCh:            make(chan FrameWriteRequest, 8),\n\t\tserveMsgCh:                  make(chan interface{}, 8),\n\t\twroteFrameCh:                make(chan frameWriteResult, 1), // buffered; one send in writeFrameAsync\n\t\tbodyReadCh:                  make(chan bodyReadMsg),         // buffering doesn't matter either way\n\t\tdoneServing:                 make(chan struct{}),\n\t\tclientMaxStreams:            math.MaxUint32, // Section 6.5.2: \"Initially, there is no limit to this value\"\n\t\tadvMaxStreams:               conf.MaxConcurrentStreams,\n\t\tinitialStreamSendWindowSize: initialWindowSize,\n\t\tinitialStreamRecvWindowSize: conf.MaxUploadBufferPerStream,\n\t\tmaxFrameSize:                initialMaxFrameSize,\n\t\tpingTimeout:                 conf.PingTimeout,\n\t\tcountErrorFunc:              conf.CountError,\n\t\tserveG:                      newGoroutineLock(),\n\t\tpushEnabled:                 true,\n\t\tsawClientPreface:            opts.SawClientPreface,\n\t}\n\tif newf != nil {\n\t\tnewf(sc)\n\t}\n\n\ts.state.registerConn(sc)\n\tdefer s.state.unregisterConn(sc)\n\n\t// The net/http package sets the write deadline from the\n\t// http.Server.WriteTimeout during the TLS handshake, but then\n\t// passes the connection off to us with the deadline already set.\n\t// Write deadlines are set per stream in serverConn.newStream.\n\t// Disarm the net.Conn write deadline here.\n\tif sc.hs.WriteTimeout > 0 {\n\t\tsc.conn.SetWriteDeadline(time.Time{})\n\t}\n\n\tif s.NewWriteScheduler != nil {\n\t\tsc.writeSched = s.NewWriteScheduler()\n\t} else {\n\t\tsc.writeSched = newRoundRobinWriteScheduler()\n\t}\n\n\t// These start at the RFC-specified defaults. If there is a higher\n\t// configured value for inflow, that will be updated when we send a\n\t// WINDOW_UPDATE shortly after sending SETTINGS.\n\tsc.flow.add(initialWindowSize)\n\tsc.inflow.init(initialWindowSize)\n\tsc.hpackEncoder = hpack.NewEncoder(&sc.headerWriteBuf)\n\tsc.hpackEncoder.SetMaxDynamicTableSizeLimit(conf.MaxEncoderHeaderTableSize)\n\n\tfr := NewFramer(sc.bw, c)\n\tif conf.CountError != nil {\n\t\tfr.countError = conf.CountError\n\t}\n\tfr.ReadMetaHeaders = hpack.NewDecoder(conf.MaxDecoderHeaderTableSize, nil)\n\tfr.MaxHeaderListSize = sc.maxHeaderListSize()\n\tfr.SetMaxReadFrameSize(conf.MaxReadFrameSize)\n\tsc.framer = fr\n\n\tif tc, ok := c.(connectionStater); ok {\n\t\tsc.tlsState = new(tls.ConnectionState)\n\t\t*sc.tlsState = tc.ConnectionState()\n\t\t// 9.2 Use of TLS Features\n\t\t// An implementation of HTTP/2 over TLS MUST use TLS\n\t\t// 1.2 or higher with the restrictions on feature set\n\t\t// and cipher suite described in this section. Due to\n\t\t// implementation limitations, it might not be\n\t\t// possible to fail TLS negotiation. An endpoint MUST\n\t\t// immediately terminate an HTTP/2 connection that\n\t\t// does not meet the TLS requirements described in\n\t\t// this section with a connection error (Section\n\t\t// 5.4.1) of type INADEQUATE_SECURITY.\n\t\tif sc.tlsState.Version < tls.VersionTLS12 {\n\t\t\tsc.rejectConn(ErrCodeInadequateSecurity, \"TLS version too low\")\n\t\t\treturn\n\t\t}\n\n\t\tif sc.tlsState.ServerName == \"\" {\n\t\t\t// Client must use SNI, but we don't enforce that anymore,\n\t\t\t// since it was causing problems when connecting to bare IP\n\t\t\t// addresses during development.\n\t\t\t//\n\t\t\t// TODO: optionally enforce? Or enforce at the time we receive\n\t\t\t// a new request, and verify the ServerName matches the :authority?\n\t\t\t// But that precludes proxy situations, perhaps.\n\t\t\t//\n\t\t\t// So for now, do nothing here again.\n\t\t}\n\n\t\tif !conf.PermitProhibitedCipherSuites && isBadCipher(sc.tlsState.CipherSuite) {\n\t\t\t// \"Endpoints MAY choose to generate a connection error\n\t\t\t// (Section 5.4.1) of type INADEQUATE_SECURITY if one of\n\t\t\t// the prohibited cipher suites are negotiated.\"\n\t\t\t//\n\t\t\t// We choose that. In my opinion, the spec is weak\n\t\t\t// here. It also says both parties must support at least\n\t\t\t// TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 so there's no\n\t\t\t// excuses here. If we really must, we could allow an\n\t\t\t// \"AllowInsecureWeakCiphers\" option on the server later.\n\t\t\t// Let's see how it plays out first.\n\t\t\tsc.rejectConn(ErrCodeInadequateSecurity, fmt.Sprintf(\"Prohibited TLS 1.2 Cipher Suite: %x\", sc.tlsState.CipherSuite))\n\t\t\treturn\n\t\t}\n\t}\n\n\tif opts.Settings != nil {\n\t\tfr := &SettingsFrame{\n\t\t\tFrameHeader: FrameHeader{valid: true},\n\t\t\tp:           opts.Settings,\n\t\t}\n\t\tif err := fr.ForeachSetting(sc.processSetting); err != nil {\n\t\t\tsc.rejectConn(ErrCodeProtocol, \"invalid settings\")\n\t\t\treturn\n\t\t}\n\t\topts.Settings = nil\n\t}\n\n\tif hook := testHookGetServerConn; hook != nil {\n\t\thook(sc)\n\t}\n\n\tif opts.UpgradeRequest != nil {\n\t\tsc.upgradeRequest(opts.UpgradeRequest)\n\t\topts.UpgradeRequest = nil\n\t}\n\n\tsc.serve(conf)\n}\n\nfunc serverConnBaseContext(c net.Conn, opts *ServeConnOpts) (ctx context.Context, cancel func()) {\n\tctx, cancel = context.WithCancel(opts.context())\n\tctx = context.WithValue(ctx, http.LocalAddrContextKey, c.LocalAddr())\n\tif hs := opts.baseConfig(); hs != nil {\n\t\tctx = context.WithValue(ctx, http.ServerContextKey, hs)\n\t}\n\treturn\n}\n\nfunc (sc *serverConn) rejectConn(err ErrCode, debug string) {\n\tsc.vlogf(\"http2: server rejecting conn: %v, %s\", err, debug)\n\t// ignoring errors. hanging up anyway.\n\tsc.framer.WriteGoAway(0, err, []byte(debug))\n\tsc.bw.Flush()\n\tsc.conn.Close()\n}\n\ntype serverConn struct {\n\t// Immutable:\n\tsrv              *Server\n\ths               *http.Server\n\tconn             net.Conn\n\tbw               *bufferedWriter // writing to conn\n\thandler          http.Handler\n\tbaseCtx          context.Context\n\tframer           *Framer\n\tdoneServing      chan struct{}          // closed when serverConn.serve ends\n\treadFrameCh      chan readFrameResult   // written by serverConn.readFrames\n\twantWriteFrameCh chan FrameWriteRequest // from handlers -> serve\n\twroteFrameCh     chan frameWriteResult  // from writeFrameAsync -> serve, tickles more frame writes\n\tbodyReadCh       chan bodyReadMsg       // from handlers -> serve\n\tserveMsgCh       chan interface{}       // misc messages & code to send to / run on the serve loop\n\tflow             outflow                // conn-wide (not stream-specific) outbound flow control\n\tinflow           inflow                 // conn-wide inbound flow control\n\ttlsState         *tls.ConnectionState   // shared by all handlers, like net/http\n\tremoteAddrStr    string\n\twriteSched       WriteScheduler\n\tcountErrorFunc   func(errType string)\n\n\t// Everything following is owned by the serve loop; use serveG.check():\n\tserveG                      goroutineLock // used to verify funcs are on serve()\n\tpushEnabled                 bool\n\tsawClientPreface            bool // preface has already been read, used in h2c upgrade\n\tsawFirstSettings            bool // got the initial SETTINGS frame after the preface\n\tneedToSendSettingsAck       bool\n\tunackedSettings             int    // how many SETTINGS have we sent without ACKs?\n\tqueuedControlFrames         int    // control frames in the writeSched queue\n\tclientMaxStreams            uint32 // SETTINGS_MAX_CONCURRENT_STREAMS from client (our PUSH_PROMISE limit)\n\tadvMaxStreams               uint32 // our SETTINGS_MAX_CONCURRENT_STREAMS advertised the client\n\tcurClientStreams            uint32 // number of open streams initiated by the client\n\tcurPushedStreams            uint32 // number of open streams initiated by server push\n\tcurHandlers                 uint32 // number of running handler goroutines\n\tmaxClientStreamID           uint32 // max ever seen from client (odd), or 0 if there have been no client requests\n\tmaxPushPromiseID            uint32 // ID of the last push promise (even), or 0 if there have been no pushes\n\tstreams                     map[uint32]*stream\n\tunstartedHandlers           []unstartedHandler\n\tinitialStreamSendWindowSize int32\n\tinitialStreamRecvWindowSize int32\n\tmaxFrameSize                int32\n\tpeerMaxHeaderListSize       uint32            // zero means unknown (default)\n\tcanonHeader                 map[string]string // http2-lower-case -> Go-Canonical-Case\n\tcanonHeaderKeysSize         int               // canonHeader keys size in bytes\n\twritingFrame                bool              // started writing a frame (on serve goroutine or separate)\n\twritingFrameAsync           bool              // started a frame on its own goroutine but haven't heard back on wroteFrameCh\n\tneedsFrameFlush             bool              // last frame write wasn't a flush\n\tinGoAway                    bool              // we've started to or sent GOAWAY\n\tinFrameScheduleLoop         bool              // whether we're in the scheduleFrameWrite loop\n\tneedToSendGoAway            bool              // we need to schedule a GOAWAY frame write\n\tpingSent                    bool\n\tsentPingData                [8]byte\n\tgoAwayCode                  ErrCode\n\tshutdownTimer               timer // nil until used\n\tidleTimer                   timer // nil if unused\n\treadIdleTimeout             time.Duration\n\tpingTimeout                 time.Duration\n\treadIdleTimer               timer // nil if unused\n\n\t// Owned by the writeFrameAsync goroutine:\n\theaderWriteBuf bytes.Buffer\n\thpackEncoder   *hpack.Encoder\n\n\t// Used by startGracefulShutdown.\n\tshutdownOnce sync.Once\n}\n\nfunc (sc *serverConn) maxHeaderListSize() uint32 {\n\tn := sc.hs.MaxHeaderBytes\n\tif n <= 0 {\n\t\tn = http.DefaultMaxHeaderBytes\n\t}\n\treturn uint32(adjustHTTP1MaxHeaderSize(int64(n)))\n}\n\nfunc (sc *serverConn) curOpenStreams() uint32 {\n\tsc.serveG.check()\n\treturn sc.curClientStreams + sc.curPushedStreams\n}\n\n// stream represents a stream. This is the minimal metadata needed by\n// the serve goroutine. Most of the actual stream state is owned by\n// the http.Handler's goroutine in the responseWriter. Because the\n// responseWriter's responseWriterState is recycled at the end of a\n// handler, this struct intentionally has no pointer to the\n// *responseWriter{,State} itself, as the Handler ending nils out the\n// responseWriter's state field.\ntype stream struct {\n\t// immutable:\n\tsc        *serverConn\n\tid        uint32\n\tbody      *pipe       // non-nil if expecting DATA frames\n\tcw        closeWaiter // closed wait stream transitions to closed state\n\tctx       context.Context\n\tcancelCtx func()\n\n\t// owned by serverConn's serve loop:\n\tbodyBytes        int64   // body bytes seen so far\n\tdeclBodyBytes    int64   // or -1 if undeclared\n\tflow             outflow // limits writing from Handler to client\n\tinflow           inflow  // what the client is allowed to POST/etc to us\n\tstate            streamState\n\tresetQueued      bool  // RST_STREAM queued for write; set by sc.resetStream\n\tgotTrailerHeader bool  // HEADER frame for trailers was seen\n\twroteHeaders     bool  // whether we wrote headers (not status 100)\n\treadDeadline     timer // nil if unused\n\twriteDeadline    timer // nil if unused\n\tcloseErr         error // set before cw is closed\n\n\ttrailer    http.Header // accumulated trailers\n\treqTrailer http.Header // handler's Request.Trailer\n}\n\nfunc (sc *serverConn) Framer() *Framer  { return sc.framer }\nfunc (sc *serverConn) CloseConn() error { return sc.conn.Close() }\nfunc (sc *serverConn) Flush() error     { return sc.bw.Flush() }\nfunc (sc *serverConn) HeaderEncoder() (*hpack.Encoder, *bytes.Buffer) {\n\treturn sc.hpackEncoder, &sc.headerWriteBuf\n}\n\nfunc (sc *serverConn) state(streamID uint32) (streamState, *stream) {\n\tsc.serveG.check()\n\t// http://tools.ietf.org/html/rfc7540#section-5.1\n\tif st, ok := sc.streams[streamID]; ok {\n\t\treturn st.state, st\n\t}\n\t// \"The first use of a new stream identifier implicitly closes all\n\t// streams in the \"idle\" state that might have been initiated by\n\t// that peer with a lower-valued stream identifier. For example, if\n\t// a client sends a HEADERS frame on stream 7 without ever sending a\n\t// frame on stream 5, then stream 5 transitions to the \"closed\"\n\t// state when the first frame for stream 7 is sent or received.\"\n\tif streamID%2 == 1 {\n\t\tif streamID <= sc.maxClientStreamID {\n\t\t\treturn stateClosed, nil\n\t\t}\n\t} else {\n\t\tif streamID <= sc.maxPushPromiseID {\n\t\t\treturn stateClosed, nil\n\t\t}\n\t}\n\treturn stateIdle, nil\n}\n\n// setConnState calls the net/http ConnState hook for this connection, if configured.\n// Note that the net/http package does StateNew and StateClosed for us.\n// There is currently no plan for StateHijacked or hijacking HTTP/2 connections.\nfunc (sc *serverConn) setConnState(state http.ConnState) {\n\tif sc.hs.ConnState != nil {\n\t\tsc.hs.ConnState(sc.conn, state)\n\t}\n}\n\nfunc (sc *serverConn) vlogf(format string, args ...interface{}) {\n\tif VerboseLogs {\n\t\tsc.logf(format, args...)\n\t}\n}\n\nfunc (sc *serverConn) logf(format string, args ...interface{}) {\n\tif lg := sc.hs.ErrorLog; lg != nil {\n\t\tlg.Printf(format, args...)\n\t} else {\n\t\tlog.Printf(format, args...)\n\t}\n}\n\n// errno returns v's underlying uintptr, else 0.\n//\n// TODO: remove this helper function once http2 can use build\n// tags. See comment in isClosedConnError.\nfunc errno(v error) uintptr {\n\tif rv := reflect.ValueOf(v); rv.Kind() == reflect.Uintptr {\n\t\treturn uintptr(rv.Uint())\n\t}\n\treturn 0\n}\n\n// isClosedConnError reports whether err is an error from use of a closed\n// network connection.\nfunc isClosedConnError(err error) bool {\n\tif err == nil {\n\t\treturn false\n\t}\n\n\tif errors.Is(err, net.ErrClosed) {\n\t\treturn true\n\t}\n\n\t// TODO(bradfitz): x/tools/cmd/bundle doesn't really support\n\t// build tags, so I can't make an http2_windows.go file with\n\t// Windows-specific stuff. Fix that and move this, once we\n\t// have a way to bundle this into std's net/http somehow.\n\tif runtime.GOOS == \"windows\" {\n\t\tif oe, ok := err.(*net.OpError); ok && oe.Op == \"read\" {\n\t\t\tif se, ok := oe.Err.(*os.SyscallError); ok && se.Syscall == \"wsarecv\" {\n\t\t\t\tconst WSAECONNABORTED = 10053\n\t\t\t\tconst WSAECONNRESET = 10054\n\t\t\t\tif n := errno(se.Err); n == WSAECONNRESET || n == WSAECONNABORTED {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false\n}\n\nfunc (sc *serverConn) condlogf(err error, format string, args ...interface{}) {\n\tif err == nil {\n\t\treturn\n\t}\n\tif err == io.EOF || err == io.ErrUnexpectedEOF || isClosedConnError(err) || err == errPrefaceTimeout {\n\t\t// Boring, expected errors.\n\t\tsc.vlogf(format, args...)\n\t} else {\n\t\tsc.logf(format, args...)\n\t}\n}\n\n// maxCachedCanonicalHeadersKeysSize is an arbitrarily-chosen limit on the size\n// of the entries in the canonHeader cache.\n// This should be larger than the size of unique, uncommon header keys likely to\n// be sent by the peer, while not so high as to permit unreasonable memory usage\n// if the peer sends an unbounded number of unique header keys.\nconst maxCachedCanonicalHeadersKeysSize = 2048\n\nfunc (sc *serverConn) canonicalHeader(v string) string {\n\tsc.serveG.check()\n\tcv, ok := httpcommon.CachedCanonicalHeader(v)\n\tif ok {\n\t\treturn cv\n\t}\n\tcv, ok = sc.canonHeader[v]\n\tif ok {\n\t\treturn cv\n\t}\n\tif sc.canonHeader == nil {\n\t\tsc.canonHeader = make(map[string]string)\n\t}\n\tcv = http.CanonicalHeaderKey(v)\n\tsize := 100 + len(v)*2 // 100 bytes of map overhead + key + value\n\tif sc.canonHeaderKeysSize+size <= maxCachedCanonicalHeadersKeysSize {\n\t\tsc.canonHeader[v] = cv\n\t\tsc.canonHeaderKeysSize += size\n\t}\n\treturn cv\n}\n\ntype readFrameResult struct {\n\tf   Frame // valid until readMore is called\n\terr error\n\n\t// readMore should be called once the consumer no longer needs or\n\t// retains f. After readMore, f is invalid and more frames can be\n\t// read.\n\treadMore func()\n}\n\n// readFrames is the loop that reads incoming frames.\n// It takes care to only read one frame at a time, blocking until the\n// consumer is done with the frame.\n// It's run on its own goroutine.\nfunc (sc *serverConn) readFrames() {\n\tsc.srv.markNewGoroutine()\n\tgate := make(chan struct{})\n\tgateDone := func() { gate <- struct{}{} }\n\tfor {\n\t\tf, err := sc.framer.ReadFrame()\n\t\tselect {\n\t\tcase sc.readFrameCh <- readFrameResult{f, err, gateDone}:\n\t\tcase <-sc.doneServing:\n\t\t\treturn\n\t\t}\n\t\tselect {\n\t\tcase <-gate:\n\t\tcase <-sc.doneServing:\n\t\t\treturn\n\t\t}\n\t\tif terminalReadFrameError(err) {\n\t\t\treturn\n\t\t}\n\t}\n}\n\n// frameWriteResult is the message passed from writeFrameAsync to the serve goroutine.\ntype frameWriteResult struct {\n\t_   incomparable\n\twr  FrameWriteRequest // what was written (or attempted)\n\terr error             // result of the writeFrame call\n}\n\n// writeFrameAsync runs in its own goroutine and writes a single frame\n// and then reports when it's done.\n// At most one goroutine can be running writeFrameAsync at a time per\n// serverConn.\nfunc (sc *serverConn) writeFrameAsync(wr FrameWriteRequest, wd *writeData) {\n\tsc.srv.markNewGoroutine()\n\tvar err error\n\tif wd == nil {\n\t\terr = wr.write.writeFrame(sc)\n\t} else {\n\t\terr = sc.framer.endWrite()\n\t}\n\tsc.wroteFrameCh <- frameWriteResult{wr: wr, err: err}\n}\n\nfunc (sc *serverConn) closeAllStreamsOnConnClose() {\n\tsc.serveG.check()\n\tfor _, st := range sc.streams {\n\t\tsc.closeStream(st, errClientDisconnected)\n\t}\n}\n\nfunc (sc *serverConn) stopShutdownTimer() {\n\tsc.serveG.check()\n\tif t := sc.shutdownTimer; t != nil {\n\t\tt.Stop()\n\t}\n}\n\nfunc (sc *serverConn) notePanic() {\n\t// Note: this is for serverConn.serve panicking, not http.Handler code.\n\tif testHookOnPanicMu != nil {\n\t\ttestHookOnPanicMu.Lock()\n\t\tdefer testHookOnPanicMu.Unlock()\n\t}\n\tif testHookOnPanic != nil {\n\t\tif e := recover(); e != nil {\n\t\t\tif testHookOnPanic(sc, e) {\n\t\t\t\tpanic(e)\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc (sc *serverConn) serve(conf http2Config) {\n\tsc.serveG.check()\n\tdefer sc.notePanic()\n\tdefer sc.conn.Close()\n\tdefer sc.closeAllStreamsOnConnClose()\n\tdefer sc.stopShutdownTimer()\n\tdefer close(sc.doneServing) // unblocks handlers trying to send\n\n\tif VerboseLogs {\n\t\tsc.vlogf(\"http2: server connection from %v on %p\", sc.conn.RemoteAddr(), sc.hs)\n\t}\n\n\tsettings := writeSettings{\n\t\t{SettingMaxFrameSize, conf.MaxReadFrameSize},\n\t\t{SettingMaxConcurrentStreams, sc.advMaxStreams},\n\t\t{SettingMaxHeaderListSize, sc.maxHeaderListSize()},\n\t\t{SettingHeaderTableSize, conf.MaxDecoderHeaderTableSize},\n\t\t{SettingInitialWindowSize, uint32(sc.initialStreamRecvWindowSize)},\n\t}\n\tif !disableExtendedConnectProtocol {\n\t\tsettings = append(settings, Setting{SettingEnableConnectProtocol, 1})\n\t}\n\tsc.writeFrame(FrameWriteRequest{\n\t\twrite: settings,\n\t})\n\tsc.unackedSettings++\n\n\t// Each connection starts with initialWindowSize inflow tokens.\n\t// If a higher value is configured, we add more tokens.\n\tif diff := conf.MaxUploadBufferPerConnection - initialWindowSize; diff > 0 {\n\t\tsc.sendWindowUpdate(nil, int(diff))\n\t}\n\n\tif err := sc.readPreface(); err != nil {\n\t\tsc.condlogf(err, \"http2: server: error reading preface from client %v: %v\", sc.conn.RemoteAddr(), err)\n\t\treturn\n\t}\n\t// Now that we've got the preface, get us out of the\n\t// \"StateNew\" state. We can't go directly to idle, though.\n\t// Active means we read some data and anticipate a request. We'll\n\t// do another Active when we get a HEADERS frame.\n\tsc.setConnState(http.StateActive)\n\tsc.setConnState(http.StateIdle)\n\n\tif sc.srv.IdleTimeout > 0 {\n\t\tsc.idleTimer = sc.srv.afterFunc(sc.srv.IdleTimeout, sc.onIdleTimer)\n\t\tdefer sc.idleTimer.Stop()\n\t}\n\n\tif conf.SendPingTimeout > 0 {\n\t\tsc.readIdleTimeout = conf.SendPingTimeout\n\t\tsc.readIdleTimer = sc.srv.afterFunc(conf.SendPingTimeout, sc.onReadIdleTimer)\n\t\tdefer sc.readIdleTimer.Stop()\n\t}\n\n\tgo sc.readFrames() // closed by defer sc.conn.Close above\n\n\tsettingsTimer := sc.srv.afterFunc(firstSettingsTimeout, sc.onSettingsTimer)\n\tdefer settingsTimer.Stop()\n\n\tlastFrameTime := sc.srv.now()\n\tloopNum := 0\n\tfor {\n\t\tloopNum++\n\t\tselect {\n\t\tcase wr := <-sc.wantWriteFrameCh:\n\t\t\tif se, ok := wr.write.(StreamError); ok {\n\t\t\t\tsc.resetStream(se)\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tsc.writeFrame(wr)\n\t\tcase res := <-sc.wroteFrameCh:\n\t\t\tsc.wroteFrame(res)\n\t\tcase res := <-sc.readFrameCh:\n\t\t\tlastFrameTime = sc.srv.now()\n\t\t\t// Process any written frames before reading new frames from the client since a\n\t\t\t// written frame could have triggered a new stream to be started.\n\t\t\tif sc.writingFrameAsync {\n\t\t\t\tselect {\n\t\t\t\tcase wroteRes := <-sc.wroteFrameCh:\n\t\t\t\t\tsc.wroteFrame(wroteRes)\n\t\t\t\tdefault:\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !sc.processFrameFromReader(res) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tres.readMore()\n\t\t\tif settingsTimer != nil {\n\t\t\t\tsettingsTimer.Stop()\n\t\t\t\tsettingsTimer = nil\n\t\t\t}\n\t\tcase m := <-sc.bodyReadCh:\n\t\t\tsc.noteBodyRead(m.st, m.n)\n\t\tcase msg := <-sc.serveMsgCh:\n\t\t\tswitch v := msg.(type) {\n\t\t\tcase func(int):\n\t\t\t\tv(loopNum) // for testing\n\t\t\tcase *serverMessage:\n\t\t\t\tswitch v {\n\t\t\t\tcase settingsTimerMsg:\n\t\t\t\t\tsc.logf(\"timeout waiting for SETTINGS frames from %v\", sc.conn.RemoteAddr())\n\t\t\t\t\treturn\n\t\t\t\tcase idleTimerMsg:\n\t\t\t\t\tsc.vlogf(\"connection is idle\")\n\t\t\t\t\tsc.goAway(ErrCodeNo)\n\t\t\t\tcase readIdleTimerMsg:\n\t\t\t\t\tsc.handlePingTimer(lastFrameTime)\n\t\t\t\tcase shutdownTimerMsg:\n\t\t\t\t\tsc.vlogf(\"GOAWAY close timer fired; closing conn from %v\", sc.conn.RemoteAddr())\n\t\t\t\t\treturn\n\t\t\t\tcase gracefulShutdownMsg:\n\t\t\t\t\tsc.startGracefulShutdownInternal()\n\t\t\t\tcase handlerDoneMsg:\n\t\t\t\t\tsc.handlerDone()\n\t\t\t\tdefault:\n\t\t\t\t\tpanic(\"unknown timer\")\n\t\t\t\t}\n\t\t\tcase *startPushRequest:\n\t\t\t\tsc.startPush(v)\n\t\t\tcase func(*serverConn):\n\t\t\t\tv(sc)\n\t\t\tdefault:\n\t\t\t\tpanic(fmt.Sprintf(\"unexpected type %T\", v))\n\t\t\t}\n\t\t}\n\n\t\t// If the peer is causing us to generate a lot of control frames,\n\t\t// but not reading them from us, assume they are trying to make us\n\t\t// run out of memory.\n\t\tif sc.queuedControlFrames > maxQueuedControlFrames {\n\t\t\tsc.vlogf(\"http2: too many control frames in send queue, closing connection\")\n\t\t\treturn\n\t\t}\n\n\t\t// Start the shutdown timer after sending a GOAWAY. When sending GOAWAY\n\t\t// with no error code (graceful shutdown), don't start the timer until\n\t\t// all open streams have been completed.\n\t\tsentGoAway := sc.inGoAway && !sc.needToSendGoAway && !sc.writingFrame\n\t\tgracefulShutdownComplete := sc.goAwayCode == ErrCodeNo && sc.curOpenStreams() == 0\n\t\tif sentGoAway && sc.shutdownTimer == nil && (sc.goAwayCode != ErrCodeNo || gracefulShutdownComplete) {\n\t\t\tsc.shutDownIn(goAwayTimeout)\n\t\t}\n\t}\n}\n\nfunc (sc *serverConn) handlePingTimer(lastFrameReadTime time.Time) {\n\tif sc.pingSent {\n\t\tsc.vlogf(\"timeout waiting for PING response\")\n\t\tsc.conn.Close()\n\t\treturn\n\t}\n\n\tpingAt := lastFrameReadTime.Add(sc.readIdleTimeout)\n\tnow := sc.srv.now()\n\tif pingAt.After(now) {\n\t\t// We received frames since arming the ping timer.\n\t\t// Reset it for the next possible timeout.\n\t\tsc.readIdleTimer.Reset(pingAt.Sub(now))\n\t\treturn\n\t}\n\n\tsc.pingSent = true\n\t// Ignore crypto/rand.Read errors: It generally can't fail, and worse case if it does\n\t// is we send a PING frame containing 0s.\n\t_, _ = rand.Read(sc.sentPingData[:])\n\tsc.writeFrame(FrameWriteRequest{\n\t\twrite: &writePing{data: sc.sentPingData},\n\t})\n\tsc.readIdleTimer.Reset(sc.pingTimeout)\n}\n\ntype serverMessage int\n\n// Message values sent to serveMsgCh.\nvar (\n\tsettingsTimerMsg    = new(serverMessage)\n\tidleTimerMsg        = new(serverMessage)\n\treadIdleTimerMsg    = new(serverMessage)\n\tshutdownTimerMsg    = new(serverMessage)\n\tgracefulShutdownMsg = new(serverMessage)\n\thandlerDoneMsg      = new(serverMessage)\n)\n\nfunc (sc *serverConn) onSettingsTimer() { sc.sendServeMsg(settingsTimerMsg) }\nfunc (sc *serverConn) onIdleTimer()     { sc.sendServeMsg(idleTimerMsg) }\nfunc (sc *serverConn) onReadIdleTimer() { sc.sendServeMsg(readIdleTimerMsg) }\nfunc (sc *serverConn) onShutdownTimer() { sc.sendServeMsg(shutdownTimerMsg) }\n\nfunc (sc *serverConn) sendServeMsg(msg interface{}) {\n\tsc.serveG.checkNotOn() // NOT\n\tselect {\n\tcase sc.serveMsgCh <- msg:\n\tcase <-sc.doneServing:\n\t}\n}\n\nvar errPrefaceTimeout = errors.New(\"timeout waiting for client preface\")\n\n// readPreface reads the ClientPreface greeting from the peer or\n// returns errPrefaceTimeout on timeout, or an error if the greeting\n// is invalid.\nfunc (sc *serverConn) readPreface() error {\n\tif sc.sawClientPreface {\n\t\treturn nil\n\t}\n\terrc := make(chan error, 1)\n\tgo func() {\n\t\t// Read the client preface\n\t\tbuf := make([]byte, len(ClientPreface))\n\t\tif _, err := io.ReadFull(sc.conn, buf); err != nil {\n\t\t\terrc <- err\n\t\t} else if !bytes.Equal(buf, clientPreface) {\n\t\t\terrc <- fmt.Errorf(\"bogus greeting %q\", buf)\n\t\t} else {\n\t\t\terrc <- nil\n\t\t}\n\t}()\n\ttimer := sc.srv.newTimer(prefaceTimeout) // TODO: configurable on *Server?\n\tdefer timer.Stop()\n\tselect {\n\tcase <-timer.C():\n\t\treturn errPrefaceTimeout\n\tcase err := <-errc:\n\t\tif err == nil {\n\t\t\tif VerboseLogs {\n\t\t\t\tsc.vlogf(\"http2: server: client %v said hello\", sc.conn.RemoteAddr())\n\t\t\t}\n\t\t}\n\t\treturn err\n\t}\n}\n\nvar errChanPool = sync.Pool{\n\tNew: func() interface{} { return make(chan error, 1) },\n}\n\nvar writeDataPool = sync.Pool{\n\tNew: func() interface{} { return new(writeData) },\n}\n\n// writeDataFromHandler writes DATA response frames from a handler on\n// the given stream.\nfunc (sc *serverConn) writeDataFromHandler(stream *stream, data []byte, endStream bool) error {\n\tch := errChanPool.Get().(chan error)\n\twriteArg := writeDataPool.Get().(*writeData)\n\t*writeArg = writeData{stream.id, data, endStream}\n\terr := sc.writeFrameFromHandler(FrameWriteRequest{\n\t\twrite:  writeArg,\n\t\tstream: stream,\n\t\tdone:   ch,\n\t})\n\tif err != nil {\n\t\treturn err\n\t}\n\tvar frameWriteDone bool // the frame write is done (successfully or not)\n\tselect {\n\tcase err = <-ch:\n\t\tframeWriteDone = true\n\tcase <-sc.doneServing:\n\t\treturn errClientDisconnected\n\tcase <-stream.cw:\n\t\t// If both ch and stream.cw were ready (as might\n\t\t// happen on the final Write after an http.Handler\n\t\t// ends), prefer the write result. Otherwise this\n\t\t// might just be us successfully closing the stream.\n\t\t// The writeFrameAsync and serve goroutines guarantee\n\t\t// that the ch send will happen before the stream.cw\n\t\t// close.\n\t\tselect {\n\t\tcase err = <-ch:\n\t\t\tframeWriteDone = true\n\t\tdefault:\n\t\t\treturn errStreamClosed\n\t\t}\n\t}\n\terrChanPool.Put(ch)\n\tif frameWriteDone {\n\t\twriteDataPool.Put(writeArg)\n\t}\n\treturn err\n}\n\n// writeFrameFromHandler sends wr to sc.wantWriteFrameCh, but aborts\n// if the connection has gone away.\n//\n// This must not be run from the serve goroutine itself, else it might\n// deadlock writing to sc.wantWriteFrameCh (which is only mildly\n// buffered and is read by serve itself). If you're on the serve\n// goroutine, call writeFrame instead.\nfunc (sc *serverConn) writeFrameFromHandler(wr FrameWriteRequest) error {\n\tsc.serveG.checkNotOn() // NOT\n\tselect {\n\tcase sc.wantWriteFrameCh <- wr:\n\t\treturn nil\n\tcase <-sc.doneServing:\n\t\t// Serve loop is gone.\n\t\t// Client has closed their connection to the server.\n\t\treturn errClientDisconnected\n\t}\n}\n\n// writeFrame schedules a frame to write and sends it if there's nothing\n// already being written.\n//\n// There is no pushback here (the serve goroutine never blocks). It's\n// the http.Handlers that block, waiting for their previous frames to\n// make it onto the wire\n//\n// If you're not on the serve goroutine, use writeFrameFromHandler instead.\nfunc (sc *serverConn) writeFrame(wr FrameWriteRequest) {\n\tsc.serveG.check()\n\n\t// If true, wr will not be written and wr.done will not be signaled.\n\tvar ignoreWrite bool\n\n\t// We are not allowed to write frames on closed streams. RFC 7540 Section\n\t// 5.1.1 says: \"An endpoint MUST NOT send frames other than PRIORITY on\n\t// a closed stream.\" Our server never sends PRIORITY, so that exception\n\t// does not apply.\n\t//\n\t// The serverConn might close an open stream while the stream's handler\n\t// is still running. For example, the server might close a stream when it\n\t// receives bad data from the client. If this happens, the handler might\n\t// attempt to write a frame after the stream has been closed (since the\n\t// handler hasn't yet been notified of the close). In this case, we simply\n\t// ignore the frame. The handler will notice that the stream is closed when\n\t// it waits for the frame to be written.\n\t//\n\t// As an exception to this rule, we allow sending RST_STREAM after close.\n\t// This allows us to immediately reject new streams without tracking any\n\t// state for those streams (except for the queued RST_STREAM frame). This\n\t// may result in duplicate RST_STREAMs in some cases, but the client should\n\t// ignore those.\n\tif wr.StreamID() != 0 {\n\t\t_, isReset := wr.write.(StreamError)\n\t\tif state, _ := sc.state(wr.StreamID()); state == stateClosed && !isReset {\n\t\t\tignoreWrite = true\n\t\t}\n\t}\n\n\t// Don't send a 100-continue response if we've already sent headers.\n\t// See golang.org/issue/14030.\n\tswitch wr.write.(type) {\n\tcase *writeResHeaders:\n\t\twr.stream.wroteHeaders = true\n\tcase write100ContinueHeadersFrame:\n\t\tif wr.stream.wroteHeaders {\n\t\t\t// We do not need to notify wr.done because this frame is\n\t\t\t// never written with wr.done != nil.\n\t\t\tif wr.done != nil {\n\t\t\t\tpanic(\"wr.done != nil for write100ContinueHeadersFrame\")\n\t\t\t}\n\t\t\tignoreWrite = true\n\t\t}\n\t}\n\n\tif !ignoreWrite {\n\t\tif wr.isControl() {\n\t\t\tsc.queuedControlFrames++\n\t\t\t// For extra safety, detect wraparounds, which should not happen,\n\t\t\t// and pull the plug.\n\t\t\tif sc.queuedControlFrames < 0 {\n\t\t\t\tsc.conn.Close()\n\t\t\t}\n\t\t}\n\t\tsc.writeSched.Push(wr)\n\t}\n\tsc.scheduleFrameWrite()\n}\n\n// startFrameWrite starts a goroutine to write wr (in a separate\n// goroutine since that might block on the network), and updates the\n// serve goroutine's state about the world, updated from info in wr.\nfunc (sc *serverConn) startFrameWrite(wr FrameWriteRequest) {\n\tsc.serveG.check()\n\tif sc.writingFrame {\n\t\tpanic(\"internal error: can only be writing one frame at a time\")\n\t}\n\n\tst := wr.stream\n\tif st != nil {\n\t\tswitch st.state {\n\t\tcase stateHalfClosedLocal:\n\t\t\tswitch wr.write.(type) {\n\t\t\tcase StreamError, handlerPanicRST, writeWindowUpdate:\n\t\t\t\t// RFC 7540 Section 5.1 allows sending RST_STREAM, PRIORITY, and WINDOW_UPDATE\n\t\t\t\t// in this state. (We never send PRIORITY from the server, so that is not checked.)\n\t\t\tdefault:\n\t\t\t\tpanic(fmt.Sprintf(\"internal error: attempt to send frame on a half-closed-local stream: %v\", wr))\n\t\t\t}\n\t\tcase stateClosed:\n\t\t\tpanic(fmt.Sprintf(\"internal error: attempt to send frame on a closed stream: %v\", wr))\n\t\t}\n\t}\n\tif wpp, ok := wr.write.(*writePushPromise); ok {\n\t\tvar err error\n\t\twpp.promisedID, err = wpp.allocatePromisedID()\n\t\tif err != nil {\n\t\t\tsc.writingFrameAsync = false\n\t\t\twr.replyToWriter(err)\n\t\t\treturn\n\t\t}\n\t}\n\n\tsc.writingFrame = true\n\tsc.needsFrameFlush = true\n\tif wr.write.staysWithinBuffer(sc.bw.Available()) {\n\t\tsc.writingFrameAsync = false\n\t\terr := wr.write.writeFrame(sc)\n\t\tsc.wroteFrame(frameWriteResult{wr: wr, err: err})\n\t} else if wd, ok := wr.write.(*writeData); ok {\n\t\t// Encode the frame in the serve goroutine, to ensure we don't have\n\t\t// any lingering asynchronous references to data passed to Write.\n\t\t// See https://go.dev/issue/58446.\n\t\tsc.framer.startWriteDataPadded(wd.streamID, wd.endStream, wd.p, nil)\n\t\tsc.writingFrameAsync = true\n\t\tgo sc.writeFrameAsync(wr, wd)\n\t} else {\n\t\tsc.writingFrameAsync = true\n\t\tgo sc.writeFrameAsync(wr, nil)\n\t}\n}\n\n// errHandlerPanicked is the error given to any callers blocked in a read from\n// Request.Body when the main goroutine panics. Since most handlers read in the\n// main ServeHTTP goroutine, this will show up rarely.\nvar errHandlerPanicked = errors.New(\"http2: handler panicked\")\n\n// wroteFrame is called on the serve goroutine with the result of\n// whatever happened on writeFrameAsync.\nfunc (sc *serverConn) wroteFrame(res frameWriteResult) {\n\tsc.serveG.check()\n\tif !sc.writingFrame {\n\t\tpanic(\"internal error: expected to be already writing a frame\")\n\t}\n\tsc.writingFrame = false\n\tsc.writingFrameAsync = false\n\n\tif res.err != nil {\n\t\tsc.conn.Close()\n\t}\n\n\twr := res.wr\n\n\tif writeEndsStream(wr.write) {\n\t\tst := wr.stream\n\t\tif st == nil {\n\t\t\tpanic(\"internal error: expecting non-nil stream\")\n\t\t}\n\t\tswitch st.state {\n\t\tcase stateOpen:\n\t\t\t// Here we would go to stateHalfClosedLocal in\n\t\t\t// theory, but since our handler is done and\n\t\t\t// the net/http package provides no mechanism\n\t\t\t// for closing a ResponseWriter while still\n\t\t\t// reading data (see possible TODO at top of\n\t\t\t// this file), we go into closed state here\n\t\t\t// anyway, after telling the peer we're\n\t\t\t// hanging up on them. We'll transition to\n\t\t\t// stateClosed after the RST_STREAM frame is\n\t\t\t// written.\n\t\t\tst.state = stateHalfClosedLocal\n\t\t\t// Section 8.1: a server MAY request that the client abort\n\t\t\t// transmission of a request without error by sending a\n\t\t\t// RST_STREAM with an error code of NO_ERROR after sending\n\t\t\t// a complete response.\n\t\t\tsc.resetStream(streamError(st.id, ErrCodeNo))\n\t\tcase stateHalfClosedRemote:\n\t\t\tsc.closeStream(st, errHandlerComplete)\n\t\t}\n\t} else {\n\t\tswitch v := wr.write.(type) {\n\t\tcase StreamError:\n\t\t\t// st may be unknown if the RST_STREAM was generated to reject bad input.\n\t\t\tif st, ok := sc.streams[v.StreamID]; ok {\n\t\t\t\tsc.closeStream(st, v)\n\t\t\t}\n\t\tcase handlerPanicRST:\n\t\t\tsc.closeStream(wr.stream, errHandlerPanicked)\n\t\t}\n\t}\n\n\t// Reply (if requested) to unblock the ServeHTTP goroutine.\n\twr.replyToWriter(res.err)\n\n\tsc.scheduleFrameWrite()\n}\n\n// scheduleFrameWrite tickles the frame writing scheduler.\n//\n// If a frame is already being written, nothing happens. This will be called again\n// when the frame is done being written.\n//\n// If a frame isn't being written and we need to send one, the best frame\n// to send is selected by writeSched.\n//\n// If a frame isn't being written and there's nothing else to send, we\n// flush the write buffer.\nfunc (sc *serverConn) scheduleFrameWrite() {\n\tsc.serveG.check()\n\tif sc.writingFrame || sc.inFrameScheduleLoop {\n\t\treturn\n\t}\n\tsc.inFrameScheduleLoop = true\n\tfor !sc.writingFrameAsync {\n\t\tif sc.needToSendGoAway {\n\t\t\tsc.needToSendGoAway = false\n\t\t\tsc.startFrameWrite(FrameWriteRequest{\n\t\t\t\twrite: &writeGoAway{\n\t\t\t\t\tmaxStreamID: sc.maxClientStreamID,\n\t\t\t\t\tcode:        sc.goAwayCode,\n\t\t\t\t},\n\t\t\t})\n\t\t\tcontinue\n\t\t}\n\t\tif sc.needToSendSettingsAck {\n\t\t\tsc.needToSendSettingsAck = false\n\t\t\tsc.startFrameWrite(FrameWriteRequest{write: writeSettingsAck{}})\n\t\t\tcontinue\n\t\t}\n\t\tif !sc.inGoAway || sc.goAwayCode == ErrCodeNo {\n\t\t\tif wr, ok := sc.writeSched.Pop(); ok {\n\t\t\t\tif wr.isControl() {\n\t\t\t\t\tsc.queuedControlFrames--\n\t\t\t\t}\n\t\t\t\tsc.startFrameWrite(wr)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\t\tif sc.needsFrameFlush {\n\t\t\tsc.startFrameWrite(FrameWriteRequest{write: flushFrameWriter{}})\n\t\t\tsc.needsFrameFlush = false // after startFrameWrite, since it sets this true\n\t\t\tcontinue\n\t\t}\n\t\tbreak\n\t}\n\tsc.inFrameScheduleLoop = false\n}\n\n// startGracefulShutdown gracefully shuts down a connection. This\n// sends GOAWAY with ErrCodeNo to tell the client we're gracefully\n// shutting down. The connection isn't closed until all current\n// streams are done.\n//\n// startGracefulShutdown returns immediately; it does not wait until\n// the connection has shut down.\nfunc (sc *serverConn) startGracefulShutdown() {\n\tsc.serveG.checkNotOn() // NOT\n\tsc.shutdownOnce.Do(func() { sc.sendServeMsg(gracefulShutdownMsg) })\n}\n\n// After sending GOAWAY with an error code (non-graceful shutdown), the\n// connection will close after goAwayTimeout.\n//\n// If we close the connection immediately after sending GOAWAY, there may\n// be unsent data in our kernel receive buffer, which will cause the kernel\n// to send a TCP RST on close() instead of a FIN. This RST will abort the\n// connection immediately, whether or not the client had received the GOAWAY.\n//\n// Ideally we should delay for at least 1 RTT + epsilon so the client has\n// a chance to read the GOAWAY and stop sending messages. Measuring RTT\n// is hard, so we approximate with 1 second. See golang.org/issue/18701.\n//\n// This is a var so it can be shorter in tests, where all requests uses the\n// loopback interface making the expected RTT very small.\n//\n// TODO: configurable?\nvar goAwayTimeout = 1 * time.Second\n\nfunc (sc *serverConn) startGracefulShutdownInternal() {\n\tsc.goAway(ErrCodeNo)\n}\n\nfunc (sc *serverConn) goAway(code ErrCode) {\n\tsc.serveG.check()\n\tif sc.inGoAway {\n\t\tif sc.goAwayCode == ErrCodeNo {\n\t\t\tsc.goAwayCode = code\n\t\t}\n\t\treturn\n\t}\n\tsc.inGoAway = true\n\tsc.needToSendGoAway = true\n\tsc.goAwayCode = code\n\tsc.scheduleFrameWrite()\n}\n\nfunc (sc *serverConn) shutDownIn(d time.Duration) {\n\tsc.serveG.check()\n\tsc.shutdownTimer = sc.srv.afterFunc(d, sc.onShutdownTimer)\n}\n\nfunc (sc *serverConn) resetStream(se StreamError) {\n\tsc.serveG.check()\n\tsc.writeFrame(FrameWriteRequest{write: se})\n\tif st, ok := sc.streams[se.StreamID]; ok {\n\t\tst.resetQueued = true\n\t}\n}\n\n// processFrameFromReader processes the serve loop's read from readFrameCh from the\n// frame-reading goroutine.\n// processFrameFromReader returns whether the connection should be kept open.\nfunc (sc *serverConn) processFrameFromReader(res readFrameResult) bool {\n\tsc.serveG.check()\n\terr := res.err\n\tif err != nil {\n\t\tif err == ErrFrameTooLarge {\n\t\t\tsc.goAway(ErrCodeFrameSize)\n\t\t\treturn true // goAway will close the loop\n\t\t}\n\t\tclientGone := err == io.EOF || err == io.ErrUnexpectedEOF || isClosedConnError(err)\n\t\tif clientGone {\n\t\t\t// TODO: could we also get into this state if\n\t\t\t// the peer does a half close\n\t\t\t// (e.g. CloseWrite) because they're done\n\t\t\t// sending frames but they're still wanting\n\t\t\t// our open replies?  Investigate.\n\t\t\t// TODO: add CloseWrite to crypto/tls.Conn first\n\t\t\t// so we have a way to test this? I suppose\n\t\t\t// just for testing we could have a non-TLS mode.\n\t\t\treturn false\n\t\t}\n\t} else {\n\t\tf := res.f\n\t\tif VerboseLogs {\n\t\t\tsc.vlogf(\"http2: server read frame %v\", summarizeFrame(f))\n\t\t}\n\t\terr = sc.processFrame(f)\n\t\tif err == nil {\n\t\t\treturn true\n\t\t}\n\t}\n\n\tswitch ev := err.(type) {\n\tcase StreamError:\n\t\tsc.resetStream(ev)\n\t\treturn true\n\tcase goAwayFlowError:\n\t\tsc.goAway(ErrCodeFlowControl)\n\t\treturn true\n\tcase ConnectionError:\n\t\tif res.f != nil {\n\t\t\tif id := res.f.Header().StreamID; id > sc.maxClientStreamID {\n\t\t\t\tsc.maxClientStreamID = id\n\t\t\t}\n\t\t}\n\t\tsc.logf(\"http2: server connection error from %v: %v\", sc.conn.RemoteAddr(), ev)\n\t\tsc.goAway(ErrCode(ev))\n\t\treturn true // goAway will handle shutdown\n\tdefault:\n\t\tif res.err != nil {\n\t\t\tsc.vlogf(\"http2: server closing client connection; error reading frame from client %s: %v\", sc.conn.RemoteAddr(), err)\n\t\t} else {\n\t\t\tsc.logf(\"http2: server closing client connection: %v\", err)\n\t\t}\n\t\treturn false\n\t}\n}\n\nfunc (sc *serverConn) processFrame(f Frame) error {\n\tsc.serveG.check()\n\n\t// First frame received must be SETTINGS.\n\tif !sc.sawFirstSettings {\n\t\tif _, ok := f.(*SettingsFrame); !ok {\n\t\t\treturn sc.countError(\"first_settings\", ConnectionError(ErrCodeProtocol))\n\t\t}\n\t\tsc.sawFirstSettings = true\n\t}\n\n\t// Discard frames for streams initiated after the identified last\n\t// stream sent in a GOAWAY, or all frames after sending an error.\n\t// We still need to return connection-level flow control for DATA frames.\n\t// RFC 9113 Section 6.8.\n\tif sc.inGoAway && (sc.goAwayCode != ErrCodeNo || f.Header().StreamID > sc.maxClientStreamID) {\n\n\t\tif f, ok := f.(*DataFrame); ok {\n\t\t\tif !sc.inflow.take(f.Length) {\n\t\t\t\treturn sc.countError(\"data_flow\", streamError(f.Header().StreamID, ErrCodeFlowControl))\n\t\t\t}\n\t\t\tsc.sendWindowUpdate(nil, int(f.Length)) // conn-level\n\t\t}\n\t\treturn nil\n\t}\n\n\tswitch f := f.(type) {\n\tcase *SettingsFrame:\n\t\treturn sc.processSettings(f)\n\tcase *MetaHeadersFrame:\n\t\treturn sc.processHeaders(f)\n\tcase *WindowUpdateFrame:\n\t\treturn sc.processWindowUpdate(f)\n\tcase *PingFrame:\n\t\treturn sc.processPing(f)\n\tcase *DataFrame:\n\t\treturn sc.processData(f)\n\tcase *RSTStreamFrame:\n\t\treturn sc.processResetStream(f)\n\tcase *PriorityFrame:\n\t\treturn sc.processPriority(f)\n\tcase *GoAwayFrame:\n\t\treturn sc.processGoAway(f)\n\tcase *PushPromiseFrame:\n\t\t// A client cannot push. Thus, servers MUST treat the receipt of a PUSH_PROMISE\n\t\t// frame as a connection error (Section 5.4.1) of type PROTOCOL_ERROR.\n\t\treturn sc.countError(\"push_promise\", ConnectionError(ErrCodeProtocol))\n\tdefault:\n\t\tsc.vlogf(\"http2: server ignoring frame: %v\", f.Header())\n\t\treturn nil\n\t}\n}\n\nfunc (sc *serverConn) processPing(f *PingFrame) error {\n\tsc.serveG.check()\n\tif f.IsAck() {\n\t\tif sc.pingSent && sc.sentPingData == f.Data {\n\t\t\t// This is a response to a PING we sent.\n\t\t\tsc.pingSent = false\n\t\t\tsc.readIdleTimer.Reset(sc.readIdleTimeout)\n\t\t}\n\t\t// 6.7 PING: \" An endpoint MUST NOT respond to PING frames\n\t\t// containing this flag.\"\n\t\treturn nil\n\t}\n\tif f.StreamID != 0 {\n\t\t// \"PING frames are not associated with any individual\n\t\t// stream. If a PING frame is received with a stream\n\t\t// identifier field value other than 0x0, the recipient MUST\n\t\t// respond with a connection error (Section 5.4.1) of type\n\t\t// PROTOCOL_ERROR.\"\n\t\treturn sc.countError(\"ping_on_stream\", ConnectionError(ErrCodeProtocol))\n\t}\n\tsc.writeFrame(FrameWriteRequest{write: writePingAck{f}})\n\treturn nil\n}\n\nfunc (sc *serverConn) processWindowUpdate(f *WindowUpdateFrame) error {\n\tsc.serveG.check()\n\tswitch {\n\tcase f.StreamID != 0: // stream-level flow control\n\t\tstate, st := sc.state(f.StreamID)\n\t\tif state == stateIdle {\n\t\t\t// Section 5.1: \"Receiving any frame other than HEADERS\n\t\t\t// or PRIORITY on a stream in this state MUST be\n\t\t\t// treated as a connection error (Section 5.4.1) of\n\t\t\t// type PROTOCOL_ERROR.\"\n\t\t\treturn sc.countError(\"stream_idle\", ConnectionError(ErrCodeProtocol))\n\t\t}\n\t\tif st == nil {\n\t\t\t// \"WINDOW_UPDATE can be sent by a peer that has sent a\n\t\t\t// frame bearing the END_STREAM flag. This means that a\n\t\t\t// receiver could receive a WINDOW_UPDATE frame on a \"half\n\t\t\t// closed (remote)\" or \"closed\" stream. A receiver MUST\n\t\t\t// NOT treat this as an error, see Section 5.1.\"\n\t\t\treturn nil\n\t\t}\n\t\tif !st.flow.add(int32(f.Increment)) {\n\t\t\treturn sc.countError(\"bad_flow\", streamError(f.StreamID, ErrCodeFlowControl))\n\t\t}\n\tdefault: // connection-level flow control\n\t\tif !sc.flow.add(int32(f.Increment)) {\n\t\t\treturn goAwayFlowError{}\n\t\t}\n\t}\n\tsc.scheduleFrameWrite()\n\treturn nil\n}\n\nfunc (sc *serverConn) processResetStream(f *RSTStreamFrame) error {\n\tsc.serveG.check()\n\n\tstate, st := sc.state(f.StreamID)\n\tif state == stateIdle {\n\t\t// 6.4 \"RST_STREAM frames MUST NOT be sent for a\n\t\t// stream in the \"idle\" state. If a RST_STREAM frame\n\t\t// identifying an idle stream is received, the\n\t\t// recipient MUST treat this as a connection error\n\t\t// (Section 5.4.1) of type PROTOCOL_ERROR.\n\t\treturn sc.countError(\"reset_idle_stream\", ConnectionError(ErrCodeProtocol))\n\t}\n\tif st != nil {\n\t\tst.cancelCtx()\n\t\tsc.closeStream(st, streamError(f.StreamID, f.ErrCode))\n\t}\n\treturn nil\n}\n\nfunc (sc *serverConn) closeStream(st *stream, err error) {\n\tsc.serveG.check()\n\tif st.state == stateIdle || st.state == stateClosed {\n\t\tpanic(fmt.Sprintf(\"invariant; can't close stream in state %v\", st.state))\n\t}\n\tst.state = stateClosed\n\tif st.readDeadline != nil {\n\t\tst.readDeadline.Stop()\n\t}\n\tif st.writeDeadline != nil {\n\t\tst.writeDeadline.Stop()\n\t}\n\tif st.isPushed() {\n\t\tsc.curPushedStreams--\n\t} else {\n\t\tsc.curClientStreams--\n\t}\n\tdelete(sc.streams, st.id)\n\tif len(sc.streams) == 0 {\n\t\tsc.setConnState(http.StateIdle)\n\t\tif sc.srv.IdleTimeout > 0 && sc.idleTimer != nil {\n\t\t\tsc.idleTimer.Reset(sc.srv.IdleTimeout)\n\t\t}\n\t\tif h1ServerKeepAlivesDisabled(sc.hs) {\n\t\t\tsc.startGracefulShutdownInternal()\n\t\t}\n\t}\n\tif p := st.body; p != nil {\n\t\t// Return any buffered unread bytes worth of conn-level flow control.\n\t\t// See golang.org/issue/16481\n\t\tsc.sendWindowUpdate(nil, p.Len())\n\n\t\tp.CloseWithError(err)\n\t}\n\tif e, ok := err.(StreamError); ok {\n\t\tif e.Cause != nil {\n\t\t\terr = e.Cause\n\t\t} else {\n\t\t\terr = errStreamClosed\n\t\t}\n\t}\n\tst.closeErr = err\n\tst.cancelCtx()\n\tst.cw.Close() // signals Handler's CloseNotifier, unblocks writes, etc\n\tsc.writeSched.CloseStream(st.id)\n}\n\nfunc (sc *serverConn) processSettings(f *SettingsFrame) error {\n\tsc.serveG.check()\n\tif f.IsAck() {\n\t\tsc.unackedSettings--\n\t\tif sc.unackedSettings < 0 {\n\t\t\t// Why is the peer ACKing settings we never sent?\n\t\t\t// The spec doesn't mention this case, but\n\t\t\t// hang up on them anyway.\n\t\t\treturn sc.countError(\"ack_mystery\", ConnectionError(ErrCodeProtocol))\n\t\t}\n\t\treturn nil\n\t}\n\tif f.NumSettings() > 100 || f.HasDuplicates() {\n\t\t// This isn't actually in the spec, but hang up on\n\t\t// suspiciously large settings frames or those with\n\t\t// duplicate entries.\n\t\treturn sc.countError(\"settings_big_or_dups\", ConnectionError(ErrCodeProtocol))\n\t}\n\tif err := f.ForeachSetting(sc.processSetting); err != nil {\n\t\treturn err\n\t}\n\t// TODO: judging by RFC 7540, Section 6.5.3 each SETTINGS frame should be\n\t// acknowledged individually, even if multiple are received before the ACK.\n\tsc.needToSendSettingsAck = true\n\tsc.scheduleFrameWrite()\n\treturn nil\n}\n\nfunc (sc *serverConn) processSetting(s Setting) error {\n\tsc.serveG.check()\n\tif err := s.Valid(); err != nil {\n\t\treturn err\n\t}\n\tif VerboseLogs {\n\t\tsc.vlogf(\"http2: server processing setting %v\", s)\n\t}\n\tswitch s.ID {\n\tcase SettingHeaderTableSize:\n\t\tsc.hpackEncoder.SetMaxDynamicTableSize(s.Val)\n\tcase SettingEnablePush:\n\t\tsc.pushEnabled = s.Val != 0\n\tcase SettingMaxConcurrentStreams:\n\t\tsc.clientMaxStreams = s.Val\n\tcase SettingInitialWindowSize:\n\t\treturn sc.processSettingInitialWindowSize(s.Val)\n\tcase SettingMaxFrameSize:\n\t\tsc.maxFrameSize = int32(s.Val) // the maximum valid s.Val is < 2^31\n\tcase SettingMaxHeaderListSize:\n\t\tsc.peerMaxHeaderListSize = s.Val\n\tcase SettingEnableConnectProtocol:\n\t\t// Receipt of this parameter by a server does not\n\t\t// have any impact\n\tdefault:\n\t\t// Unknown setting: \"An endpoint that receives a SETTINGS\n\t\t// frame with any unknown or unsupported identifier MUST\n\t\t// ignore that setting.\"\n\t\tif VerboseLogs {\n\t\t\tsc.vlogf(\"http2: server ignoring unknown setting %v\", s)\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (sc *serverConn) processSettingInitialWindowSize(val uint32) error {\n\tsc.serveG.check()\n\t// Note: val already validated to be within range by\n\t// processSetting's Valid call.\n\n\t// \"A SETTINGS frame can alter the initial flow control window\n\t// size for all current streams. When the value of\n\t// SETTINGS_INITIAL_WINDOW_SIZE changes, a receiver MUST\n\t// adjust the size of all stream flow control windows that it\n\t// maintains by the difference between the new value and the\n\t// old value.\"\n\told := sc.initialStreamSendWindowSize\n\tsc.initialStreamSendWindowSize = int32(val)\n\tgrowth := int32(val) - old // may be negative\n\tfor _, st := range sc.streams {\n\t\tif !st.flow.add(growth) {\n\t\t\t// 6.9.2 Initial Flow Control Window Size\n\t\t\t// \"An endpoint MUST treat a change to\n\t\t\t// SETTINGS_INITIAL_WINDOW_SIZE that causes any flow\n\t\t\t// control window to exceed the maximum size as a\n\t\t\t// connection error (Section 5.4.1) of type\n\t\t\t// FLOW_CONTROL_ERROR.\"\n\t\t\treturn sc.countError(\"setting_win_size\", ConnectionError(ErrCodeFlowControl))\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (sc *serverConn) processData(f *DataFrame) error {\n\tsc.serveG.check()\n\tid := f.Header().StreamID\n\n\tdata := f.Data()\n\tstate, st := sc.state(id)\n\tif id == 0 || state == stateIdle {\n\t\t// Section 6.1: \"DATA frames MUST be associated with a\n\t\t// stream. If a DATA frame is received whose stream\n\t\t// identifier field is 0x0, the recipient MUST respond\n\t\t// with a connection error (Section 5.4.1) of type\n\t\t// PROTOCOL_ERROR.\"\n\t\t//\n\t\t// Section 5.1: \"Receiving any frame other than HEADERS\n\t\t// or PRIORITY on a stream in this state MUST be\n\t\t// treated as a connection error (Section 5.4.1) of\n\t\t// type PROTOCOL_ERROR.\"\n\t\treturn sc.countError(\"data_on_idle\", ConnectionError(ErrCodeProtocol))\n\t}\n\n\t// \"If a DATA frame is received whose stream is not in \"open\"\n\t// or \"half closed (local)\" state, the recipient MUST respond\n\t// with a stream error (Section 5.4.2) of type STREAM_CLOSED.\"\n\tif st == nil || state != stateOpen || st.gotTrailerHeader || st.resetQueued {\n\t\t// This includes sending a RST_STREAM if the stream is\n\t\t// in stateHalfClosedLocal (which currently means that\n\t\t// the http.Handler returned, so it's done reading &\n\t\t// done writing). Try to stop the client from sending\n\t\t// more DATA.\n\n\t\t// But still enforce their connection-level flow control,\n\t\t// and return any flow control bytes since we're not going\n\t\t// to consume them.\n\t\tif !sc.inflow.take(f.Length) {\n\t\t\treturn sc.countError(\"data_flow\", streamError(id, ErrCodeFlowControl))\n\t\t}\n\t\tsc.sendWindowUpdate(nil, int(f.Length)) // conn-level\n\n\t\tif st != nil && st.resetQueued {\n\t\t\t// Already have a stream error in flight. Don't send another.\n\t\t\treturn nil\n\t\t}\n\t\treturn sc.countError(\"closed\", streamError(id, ErrCodeStreamClosed))\n\t}\n\tif st.body == nil {\n\t\tpanic(\"internal error: should have a body in this state\")\n\t}\n\n\t// Sender sending more than they'd declared?\n\tif st.declBodyBytes != -1 && st.bodyBytes+int64(len(data)) > st.declBodyBytes {\n\t\tif !sc.inflow.take(f.Length) {\n\t\t\treturn sc.countError(\"data_flow\", streamError(id, ErrCodeFlowControl))\n\t\t}\n\t\tsc.sendWindowUpdate(nil, int(f.Length)) // conn-level\n\n\t\tst.body.CloseWithError(fmt.Errorf(\"sender tried to send more than declared Content-Length of %d bytes\", st.declBodyBytes))\n\t\t// RFC 7540, sec 8.1.2.6: A request or response is also malformed if the\n\t\t// value of a content-length header field does not equal the sum of the\n\t\t// DATA frame payload lengths that form the body.\n\t\treturn sc.countError(\"send_too_much\", streamError(id, ErrCodeProtocol))\n\t}\n\tif f.Length > 0 {\n\t\t// Check whether the client has flow control quota.\n\t\tif !takeInflows(&sc.inflow, &st.inflow, f.Length) {\n\t\t\treturn sc.countError(\"flow_on_data_length\", streamError(id, ErrCodeFlowControl))\n\t\t}\n\n\t\tif len(data) > 0 {\n\t\t\tst.bodyBytes += int64(len(data))\n\t\t\twrote, err := st.body.Write(data)\n\t\t\tif err != nil {\n\t\t\t\t// The handler has closed the request body.\n\t\t\t\t// Return the connection-level flow control for the discarded data,\n\t\t\t\t// but not the stream-level flow control.\n\t\t\t\tsc.sendWindowUpdate(nil, int(f.Length)-wrote)\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tif wrote != len(data) {\n\t\t\t\tpanic(\"internal error: bad Writer\")\n\t\t\t}\n\t\t}\n\n\t\t// Return any padded flow control now, since we won't\n\t\t// refund it later on body reads.\n\t\t// Call sendWindowUpdate even if there is no padding,\n\t\t// to return buffered flow control credit if the sent\n\t\t// window has shrunk.\n\t\tpad := int32(f.Length) - int32(len(data))\n\t\tsc.sendWindowUpdate32(nil, pad)\n\t\tsc.sendWindowUpdate32(st, pad)\n\t}\n\tif f.StreamEnded() {\n\t\tst.endStream()\n\t}\n\treturn nil\n}\n\nfunc (sc *serverConn) processGoAway(f *GoAwayFrame) error {\n\tsc.serveG.check()\n\tif f.ErrCode != ErrCodeNo {\n\t\tsc.logf(\"http2: received GOAWAY %+v, starting graceful shutdown\", f)\n\t} else {\n\t\tsc.vlogf(\"http2: received GOAWAY %+v, starting graceful shutdown\", f)\n\t}\n\tsc.startGracefulShutdownInternal()\n\t// http://tools.ietf.org/html/rfc7540#section-6.8\n\t// We should not create any new streams, which means we should disable push.\n\tsc.pushEnabled = false\n\treturn nil\n}\n\n// isPushed reports whether the stream is server-initiated.\nfunc (st *stream) isPushed() bool {\n\treturn st.id%2 == 0\n}\n\n// endStream closes a Request.Body's pipe. It is called when a DATA\n// frame says a request body is over (or after trailers).\nfunc (st *stream) endStream() {\n\tsc := st.sc\n\tsc.serveG.check()\n\n\tif st.declBodyBytes != -1 && st.declBodyBytes != st.bodyBytes {\n\t\tst.body.CloseWithError(fmt.Errorf(\"request declared a Content-Length of %d but only wrote %d bytes\",\n\t\t\tst.declBodyBytes, st.bodyBytes))\n\t} else {\n\t\tst.body.closeWithErrorAndCode(io.EOF, st.copyTrailersToHandlerRequest)\n\t\tst.body.CloseWithError(io.EOF)\n\t}\n\tst.state = stateHalfClosedRemote\n}\n\n// copyTrailersToHandlerRequest is run in the Handler's goroutine in\n// its Request.Body.Read just before it gets io.EOF.\nfunc (st *stream) copyTrailersToHandlerRequest() {\n\tfor k, vv := range st.trailer {\n\t\tif _, ok := st.reqTrailer[k]; ok {\n\t\t\t// Only copy it over it was pre-declared.\n\t\t\tst.reqTrailer[k] = vv\n\t\t}\n\t}\n}\n\n// onReadTimeout is run on its own goroutine (from time.AfterFunc)\n// when the stream's ReadTimeout has fired.\nfunc (st *stream) onReadTimeout() {\n\tif st.body != nil {\n\t\t// Wrap the ErrDeadlineExceeded to avoid callers depending on us\n\t\t// returning the bare error.\n\t\tst.body.CloseWithError(fmt.Errorf(\"%w\", os.ErrDeadlineExceeded))\n\t}\n}\n\n// onWriteTimeout is run on its own goroutine (from time.AfterFunc)\n// when the stream's WriteTimeout has fired.\nfunc (st *stream) onWriteTimeout() {\n\tst.sc.writeFrameFromHandler(FrameWriteRequest{write: StreamError{\n\t\tStreamID: st.id,\n\t\tCode:     ErrCodeInternal,\n\t\tCause:    os.ErrDeadlineExceeded,\n\t}})\n}\n\nfunc (sc *serverConn) processHeaders(f *MetaHeadersFrame) error {\n\tsc.serveG.check()\n\tid := f.StreamID\n\t// http://tools.ietf.org/html/rfc7540#section-5.1.1\n\t// Streams initiated by a client MUST use odd-numbered stream\n\t// identifiers. [...] An endpoint that receives an unexpected\n\t// stream identifier MUST respond with a connection error\n\t// (Section 5.4.1) of type PROTOCOL_ERROR.\n\tif id%2 != 1 {\n\t\treturn sc.countError(\"headers_even\", ConnectionError(ErrCodeProtocol))\n\t}\n\t// A HEADERS frame can be used to create a new stream or\n\t// send a trailer for an open one. If we already have a stream\n\t// open, let it process its own HEADERS frame (trailers at this\n\t// point, if it's valid).\n\tif st := sc.streams[f.StreamID]; st != nil {\n\t\tif st.resetQueued {\n\t\t\t// We're sending RST_STREAM to close the stream, so don't bother\n\t\t\t// processing this frame.\n\t\t\treturn nil\n\t\t}\n\t\t// RFC 7540, sec 5.1: If an endpoint receives additional frames, other than\n\t\t// WINDOW_UPDATE, PRIORITY, or RST_STREAM, for a stream that is in\n\t\t// this state, it MUST respond with a stream error (Section 5.4.2) of\n\t\t// type STREAM_CLOSED.\n\t\tif st.state == stateHalfClosedRemote {\n\t\t\treturn sc.countError(\"headers_half_closed\", streamError(id, ErrCodeStreamClosed))\n\t\t}\n\t\treturn st.processTrailerHeaders(f)\n\t}\n\n\t// [...] The identifier of a newly established stream MUST be\n\t// numerically greater than all streams that the initiating\n\t// endpoint has opened or reserved. [...]  An endpoint that\n\t// receives an unexpected stream identifier MUST respond with\n\t// a connection error (Section 5.4.1) of type PROTOCOL_ERROR.\n\tif id <= sc.maxClientStreamID {\n\t\treturn sc.countError(\"stream_went_down\", ConnectionError(ErrCodeProtocol))\n\t}\n\tsc.maxClientStreamID = id\n\n\tif sc.idleTimer != nil {\n\t\tsc.idleTimer.Stop()\n\t}\n\n\t// http://tools.ietf.org/html/rfc7540#section-5.1.2\n\t// [...] Endpoints MUST NOT exceed the limit set by their peer. An\n\t// endpoint that receives a HEADERS frame that causes their\n\t// advertised concurrent stream limit to be exceeded MUST treat\n\t// this as a stream error (Section 5.4.2) of type PROTOCOL_ERROR\n\t// or REFUSED_STREAM.\n\tif sc.curClientStreams+1 > sc.advMaxStreams {\n\t\tif sc.unackedSettings == 0 {\n\t\t\t// They should know better.\n\t\t\treturn sc.countError(\"over_max_streams\", streamError(id, ErrCodeProtocol))\n\t\t}\n\t\t// Assume it's a network race, where they just haven't\n\t\t// received our last SETTINGS update. But actually\n\t\t// this can't happen yet, because we don't yet provide\n\t\t// a way for users to adjust server parameters at\n\t\t// runtime.\n\t\treturn sc.countError(\"over_max_streams_race\", streamError(id, ErrCodeRefusedStream))\n\t}\n\n\tinitialState := stateOpen\n\tif f.StreamEnded() {\n\t\tinitialState = stateHalfClosedRemote\n\t}\n\tst := sc.newStream(id, 0, initialState)\n\n\tif f.HasPriority() {\n\t\tif err := sc.checkPriority(f.StreamID, f.Priority); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsc.writeSched.AdjustStream(st.id, f.Priority)\n\t}\n\n\trw, req, err := sc.newWriterAndRequest(st, f)\n\tif err != nil {\n\t\treturn err\n\t}\n\tst.reqTrailer = req.Trailer\n\tif st.reqTrailer != nil {\n\t\tst.trailer = make(http.Header)\n\t}\n\tst.body = req.Body.(*requestBody).pipe // may be nil\n\tst.declBodyBytes = req.ContentLength\n\n\thandler := sc.handler.ServeHTTP\n\tif f.Truncated {\n\t\t// Their header list was too long. Send a 431 error.\n\t\thandler = handleHeaderListTooLong\n\t} else if err := checkValidHTTP2RequestHeaders(req.Header); err != nil {\n\t\thandler = new400Handler(err)\n\t}\n\n\t// The net/http package sets the read deadline from the\n\t// http.Server.ReadTimeout during the TLS handshake, but then\n\t// passes the connection off to us with the deadline already\n\t// set. Disarm it here after the request headers are read,\n\t// similar to how the http1 server works. Here it's\n\t// technically more like the http1 Server's ReadHeaderTimeout\n\t// (in Go 1.8), though. That's a more sane option anyway.\n\tif sc.hs.ReadTimeout > 0 {\n\t\tsc.conn.SetReadDeadline(time.Time{})\n\t\tst.readDeadline = sc.srv.afterFunc(sc.hs.ReadTimeout, st.onReadTimeout)\n\t}\n\n\treturn sc.scheduleHandler(id, rw, req, handler)\n}\n\nfunc (sc *serverConn) upgradeRequest(req *http.Request) {\n\tsc.serveG.check()\n\tid := uint32(1)\n\tsc.maxClientStreamID = id\n\tst := sc.newStream(id, 0, stateHalfClosedRemote)\n\tst.reqTrailer = req.Trailer\n\tif st.reqTrailer != nil {\n\t\tst.trailer = make(http.Header)\n\t}\n\trw := sc.newResponseWriter(st, req)\n\n\t// Disable any read deadline set by the net/http package\n\t// prior to the upgrade.\n\tif sc.hs.ReadTimeout > 0 {\n\t\tsc.conn.SetReadDeadline(time.Time{})\n\t}\n\n\t// This is the first request on the connection,\n\t// so start the handler directly rather than going\n\t// through scheduleHandler.\n\tsc.curHandlers++\n\tgo sc.runHandler(rw, req, sc.handler.ServeHTTP)\n}\n\nfunc (st *stream) processTrailerHeaders(f *MetaHeadersFrame) error {\n\tsc := st.sc\n\tsc.serveG.check()\n\tif st.gotTrailerHeader {\n\t\treturn sc.countError(\"dup_trailers\", ConnectionError(ErrCodeProtocol))\n\t}\n\tst.gotTrailerHeader = true\n\tif !f.StreamEnded() {\n\t\treturn sc.countError(\"trailers_not_ended\", streamError(st.id, ErrCodeProtocol))\n\t}\n\n\tif len(f.PseudoFields()) > 0 {\n\t\treturn sc.countError(\"trailers_pseudo\", streamError(st.id, ErrCodeProtocol))\n\t}\n\tif st.trailer != nil {\n\t\tfor _, hf := range f.RegularFields() {\n\t\t\tkey := sc.canonicalHeader(hf.Name)\n\t\t\tif !httpguts.ValidTrailerHeader(key) {\n\t\t\t\t// TODO: send more details to the peer somehow. But http2 has\n\t\t\t\t// no way to send debug data at a stream level. Discuss with\n\t\t\t\t// HTTP folk.\n\t\t\t\treturn sc.countError(\"trailers_bogus\", streamError(st.id, ErrCodeProtocol))\n\t\t\t}\n\t\t\tst.trailer[key] = append(st.trailer[key], hf.Value)\n\t\t}\n\t}\n\tst.endStream()\n\treturn nil\n}\n\nfunc (sc *serverConn) checkPriority(streamID uint32, p PriorityParam) error {\n\tif streamID == p.StreamDep {\n\t\t// Section 5.3.1: \"A stream cannot depend on itself. An endpoint MUST treat\n\t\t// this as a stream error (Section 5.4.2) of type PROTOCOL_ERROR.\"\n\t\t// Section 5.3.3 says that a stream can depend on one of its dependencies,\n\t\t// so it's only self-dependencies that are forbidden.\n\t\treturn sc.countError(\"priority\", streamError(streamID, ErrCodeProtocol))\n\t}\n\treturn nil\n}\n\nfunc (sc *serverConn) processPriority(f *PriorityFrame) error {\n\tif err := sc.checkPriority(f.StreamID, f.PriorityParam); err != nil {\n\t\treturn err\n\t}\n\tsc.writeSched.AdjustStream(f.StreamID, f.PriorityParam)\n\treturn nil\n}\n\nfunc (sc *serverConn) newStream(id, pusherID uint32, state streamState) *stream {\n\tsc.serveG.check()\n\tif id == 0 {\n\t\tpanic(\"internal error: cannot create stream with id 0\")\n\t}\n\n\tctx, cancelCtx := context.WithCancel(sc.baseCtx)\n\tst := &stream{\n\t\tsc:        sc,\n\t\tid:        id,\n\t\tstate:     state,\n\t\tctx:       ctx,\n\t\tcancelCtx: cancelCtx,\n\t}\n\tst.cw.Init()\n\tst.flow.conn = &sc.flow // link to conn-level counter\n\tst.flow.add(sc.initialStreamSendWindowSize)\n\tst.inflow.init(sc.initialStreamRecvWindowSize)\n\tif sc.hs.WriteTimeout > 0 {\n\t\tst.writeDeadline = sc.srv.afterFunc(sc.hs.WriteTimeout, st.onWriteTimeout)\n\t}\n\n\tsc.streams[id] = st\n\tsc.writeSched.OpenStream(st.id, OpenStreamOptions{PusherID: pusherID})\n\tif st.isPushed() {\n\t\tsc.curPushedStreams++\n\t} else {\n\t\tsc.curClientStreams++\n\t}\n\tif sc.curOpenStreams() == 1 {\n\t\tsc.setConnState(http.StateActive)\n\t}\n\n\treturn st\n}\n\nfunc (sc *serverConn) newWriterAndRequest(st *stream, f *MetaHeadersFrame) (*responseWriter, *http.Request, error) {\n\tsc.serveG.check()\n\n\trp := httpcommon.ServerRequestParam{\n\t\tMethod:    f.PseudoValue(\"method\"),\n\t\tScheme:    f.PseudoValue(\"scheme\"),\n\t\tAuthority: f.PseudoValue(\"authority\"),\n\t\tPath:      f.PseudoValue(\"path\"),\n\t\tProtocol:  f.PseudoValue(\"protocol\"),\n\t}\n\n\t// extended connect is disabled, so we should not see :protocol\n\tif disableExtendedConnectProtocol && rp.Protocol != \"\" {\n\t\treturn nil, nil, sc.countError(\"bad_connect\", streamError(f.StreamID, ErrCodeProtocol))\n\t}\n\n\tisConnect := rp.Method == \"CONNECT\"\n\tif isConnect {\n\t\tif rp.Protocol == \"\" && (rp.Path != \"\" || rp.Scheme != \"\" || rp.Authority == \"\") {\n\t\t\treturn nil, nil, sc.countError(\"bad_connect\", streamError(f.StreamID, ErrCodeProtocol))\n\t\t}\n\t} else if rp.Method == \"\" || rp.Path == \"\" || (rp.Scheme != \"https\" && rp.Scheme != \"http\") {\n\t\t// See 8.1.2.6 Malformed Requests and Responses:\n\t\t//\n\t\t// Malformed requests or responses that are detected\n\t\t// MUST be treated as a stream error (Section 5.4.2)\n\t\t// of type PROTOCOL_ERROR.\"\n\t\t//\n\t\t// 8.1.2.3 Request Pseudo-Header Fields\n\t\t// \"All HTTP/2 requests MUST include exactly one valid\n\t\t// value for the :method, :scheme, and :path\n\t\t// pseudo-header fields\"\n\t\treturn nil, nil, sc.countError(\"bad_path_method\", streamError(f.StreamID, ErrCodeProtocol))\n\t}\n\n\theader := make(http.Header)\n\trp.Header = header\n\tfor _, hf := range f.RegularFields() {\n\t\theader.Add(sc.canonicalHeader(hf.Name), hf.Value)\n\t}\n\tif rp.Authority == \"\" {\n\t\trp.Authority = header.Get(\"Host\")\n\t}\n\tif rp.Protocol != \"\" {\n\t\theader.Set(\":protocol\", rp.Protocol)\n\t}\n\n\trw, req, err := sc.newWriterAndRequestNoBody(st, rp)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\tbodyOpen := !f.StreamEnded()\n\tif bodyOpen {\n\t\tif vv, ok := rp.Header[\"Content-Length\"]; ok {\n\t\t\tif cl, err := strconv.ParseUint(vv[0], 10, 63); err == nil {\n\t\t\t\treq.ContentLength = int64(cl)\n\t\t\t} else {\n\t\t\t\treq.ContentLength = 0\n\t\t\t}\n\t\t} else {\n\t\t\treq.ContentLength = -1\n\t\t}\n\t\treq.Body.(*requestBody).pipe = &pipe{\n\t\t\tb: &dataBuffer{expected: req.ContentLength},\n\t\t}\n\t}\n\treturn rw, req, nil\n}\n\nfunc (sc *serverConn) newWriterAndRequestNoBody(st *stream, rp httpcommon.ServerRequestParam) (*responseWriter, *http.Request, error) {\n\tsc.serveG.check()\n\n\tvar tlsState *tls.ConnectionState // nil if not scheme https\n\tif rp.Scheme == \"https\" {\n\t\ttlsState = sc.tlsState\n\t}\n\n\tres := httpcommon.NewServerRequest(rp)\n\tif res.InvalidReason != \"\" {\n\t\treturn nil, nil, sc.countError(res.InvalidReason, streamError(st.id, ErrCodeProtocol))\n\t}\n\n\tbody := &requestBody{\n\t\tconn:          sc,\n\t\tstream:        st,\n\t\tneedsContinue: res.NeedsContinue,\n\t}\n\treq := (&http.Request{\n\t\tMethod:     rp.Method,\n\t\tURL:        res.URL,\n\t\tRemoteAddr: sc.remoteAddrStr,\n\t\tHeader:     rp.Header,\n\t\tRequestURI: res.RequestURI,\n\t\tProto:      \"HTTP/2.0\",\n\t\tProtoMajor: 2,\n\t\tProtoMinor: 0,\n\t\tTLS:        tlsState,\n\t\tHost:       rp.Authority,\n\t\tBody:       body,\n\t\tTrailer:    res.Trailer,\n\t}).WithContext(st.ctx)\n\trw := sc.newResponseWriter(st, req)\n\treturn rw, req, nil\n}\n\nfunc (sc *serverConn) newResponseWriter(st *stream, req *http.Request) *responseWriter {\n\trws := responseWriterStatePool.Get().(*responseWriterState)\n\tbwSave := rws.bw\n\t*rws = responseWriterState{} // zero all the fields\n\trws.conn = sc\n\trws.bw = bwSave\n\trws.bw.Reset(chunkWriter{rws})\n\trws.stream = st\n\trws.req = req\n\treturn &responseWriter{rws: rws}\n}\n\ntype unstartedHandler struct {\n\tstreamID uint32\n\trw       *responseWriter\n\treq      *http.Request\n\thandler  func(http.ResponseWriter, *http.Request)\n}\n\n// scheduleHandler starts a handler goroutine,\n// or schedules one to start as soon as an existing handler finishes.\nfunc (sc *serverConn) scheduleHandler(streamID uint32, rw *responseWriter, req *http.Request, handler func(http.ResponseWriter, *http.Request)) error {\n\tsc.serveG.check()\n\tmaxHandlers := sc.advMaxStreams\n\tif sc.curHandlers < maxHandlers {\n\t\tsc.curHandlers++\n\t\tgo sc.runHandler(rw, req, handler)\n\t\treturn nil\n\t}\n\tif len(sc.unstartedHandlers) > int(4*sc.advMaxStreams) {\n\t\treturn sc.countError(\"too_many_early_resets\", ConnectionError(ErrCodeEnhanceYourCalm))\n\t}\n\tsc.unstartedHandlers = append(sc.unstartedHandlers, unstartedHandler{\n\t\tstreamID: streamID,\n\t\trw:       rw,\n\t\treq:      req,\n\t\thandler:  handler,\n\t})\n\treturn nil\n}\n\nfunc (sc *serverConn) handlerDone() {\n\tsc.serveG.check()\n\tsc.curHandlers--\n\ti := 0\n\tmaxHandlers := sc.advMaxStreams\n\tfor ; i < len(sc.unstartedHandlers); i++ {\n\t\tu := sc.unstartedHandlers[i]\n\t\tif sc.streams[u.streamID] == nil {\n\t\t\t// This stream was reset before its goroutine had a chance to start.\n\t\t\tcontinue\n\t\t}\n\t\tif sc.curHandlers >= maxHandlers {\n\t\t\tbreak\n\t\t}\n\t\tsc.curHandlers++\n\t\tgo sc.runHandler(u.rw, u.req, u.handler)\n\t\tsc.unstartedHandlers[i] = unstartedHandler{} // don't retain references\n\t}\n\tsc.unstartedHandlers = sc.unstartedHandlers[i:]\n\tif len(sc.unstartedHandlers) == 0 {\n\t\tsc.unstartedHandlers = nil\n\t}\n}\n\n// Run on its own goroutine.\nfunc (sc *serverConn) runHandler(rw *responseWriter, req *http.Request, handler func(http.ResponseWriter, *http.Request)) {\n\tsc.srv.markNewGoroutine()\n\tdefer sc.sendServeMsg(handlerDoneMsg)\n\tdidPanic := true\n\tdefer func() {\n\t\trw.rws.stream.cancelCtx()\n\t\tif req.MultipartForm != nil {\n\t\t\treq.MultipartForm.RemoveAll()\n\t\t}\n\t\tif didPanic {\n\t\t\te := recover()\n\t\t\tsc.writeFrameFromHandler(FrameWriteRequest{\n\t\t\t\twrite:  handlerPanicRST{rw.rws.stream.id},\n\t\t\t\tstream: rw.rws.stream,\n\t\t\t})\n\t\t\t// Same as net/http:\n\t\t\tif e != nil && e != http.ErrAbortHandler {\n\t\t\t\tconst size = 64 << 10\n\t\t\t\tbuf := make([]byte, size)\n\t\t\t\tbuf = buf[:runtime.Stack(buf, false)]\n\t\t\t\tsc.logf(\"http2: panic serving %v: %v\\n%s\", sc.conn.RemoteAddr(), e, buf)\n\t\t\t}\n\t\t\treturn\n\t\t}\n\t\trw.handlerDone()\n\t}()\n\thandler(rw, req)\n\tdidPanic = false\n}\n\nfunc handleHeaderListTooLong(w http.ResponseWriter, r *http.Request) {\n\t// 10.5.1 Limits on Header Block Size:\n\t// .. \"A server that receives a larger header block than it is\n\t// willing to handle can send an HTTP 431 (Request Header Fields Too\n\t// Large) status code\"\n\tconst statusRequestHeaderFieldsTooLarge = 431 // only in Go 1.6+\n\tw.WriteHeader(statusRequestHeaderFieldsTooLarge)\n\tio.WriteString(w, \"<h1>HTTP Error 431</h1><p>Request Header Field(s) Too Large</p>\")\n}\n\n// called from handler goroutines.\n// h may be nil.\nfunc (sc *serverConn) writeHeaders(st *stream, headerData *writeResHeaders) error {\n\tsc.serveG.checkNotOn() // NOT on\n\tvar errc chan error\n\tif headerData.h != nil {\n\t\t// If there's a header map (which we don't own), so we have to block on\n\t\t// waiting for this frame to be written, so an http.Flush mid-handler\n\t\t// writes out the correct value of keys, before a handler later potentially\n\t\t// mutates it.\n\t\terrc = errChanPool.Get().(chan error)\n\t}\n\tif err := sc.writeFrameFromHandler(FrameWriteRequest{\n\t\twrite:  headerData,\n\t\tstream: st,\n\t\tdone:   errc,\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif errc != nil {\n\t\tselect {\n\t\tcase err := <-errc:\n\t\t\terrChanPool.Put(errc)\n\t\t\treturn err\n\t\tcase <-sc.doneServing:\n\t\t\treturn errClientDisconnected\n\t\tcase <-st.cw:\n\t\t\treturn errStreamClosed\n\t\t}\n\t}\n\treturn nil\n}\n\n// called from handler goroutines.\nfunc (sc *serverConn) write100ContinueHeaders(st *stream) {\n\tsc.writeFrameFromHandler(FrameWriteRequest{\n\t\twrite:  write100ContinueHeadersFrame{st.id},\n\t\tstream: st,\n\t})\n}\n\n// A bodyReadMsg tells the server loop that the http.Handler read n\n// bytes of the DATA from the client on the given stream.\ntype bodyReadMsg struct {\n\tst *stream\n\tn  int\n}\n\n// called from handler goroutines.\n// Notes that the handler for the given stream ID read n bytes of its body\n// and schedules flow control tokens to be sent.\nfunc (sc *serverConn) noteBodyReadFromHandler(st *stream, n int, err error) {\n\tsc.serveG.checkNotOn() // NOT on\n\tif n > 0 {\n\t\tselect {\n\t\tcase sc.bodyReadCh <- bodyReadMsg{st, n}:\n\t\tcase <-sc.doneServing:\n\t\t}\n\t}\n}\n\nfunc (sc *serverConn) noteBodyRead(st *stream, n int) {\n\tsc.serveG.check()\n\tsc.sendWindowUpdate(nil, n) // conn-level\n\tif st.state != stateHalfClosedRemote && st.state != stateClosed {\n\t\t// Don't send this WINDOW_UPDATE if the stream is closed\n\t\t// remotely.\n\t\tsc.sendWindowUpdate(st, n)\n\t}\n}\n\n// st may be nil for conn-level\nfunc (sc *serverConn) sendWindowUpdate32(st *stream, n int32) {\n\tsc.sendWindowUpdate(st, int(n))\n}\n\n// st may be nil for conn-level\nfunc (sc *serverConn) sendWindowUpdate(st *stream, n int) {\n\tsc.serveG.check()\n\tvar streamID uint32\n\tvar send int32\n\tif st == nil {\n\t\tsend = sc.inflow.add(n)\n\t} else {\n\t\tstreamID = st.id\n\t\tsend = st.inflow.add(n)\n\t}\n\tif send == 0 {\n\t\treturn\n\t}\n\tsc.writeFrame(FrameWriteRequest{\n\t\twrite:  writeWindowUpdate{streamID: streamID, n: uint32(send)},\n\t\tstream: st,\n\t})\n}\n\n// requestBody is the Handler's Request.Body type.\n// Read and Close may be called concurrently.\ntype requestBody struct {\n\t_             incomparable\n\tstream        *stream\n\tconn          *serverConn\n\tcloseOnce     sync.Once // for use by Close only\n\tsawEOF        bool      // for use by Read only\n\tpipe          *pipe     // non-nil if we have an HTTP entity message body\n\tneedsContinue bool      // need to send a 100-continue\n}\n\nfunc (b *requestBody) Close() error {\n\tb.closeOnce.Do(func() {\n\t\tif b.pipe != nil {\n\t\t\tb.pipe.BreakWithError(errClosedBody)\n\t\t}\n\t})\n\treturn nil\n}\n\nfunc (b *requestBody) Read(p []byte) (n int, err error) {\n\tif b.needsContinue {\n\t\tb.needsContinue = false\n\t\tb.conn.write100ContinueHeaders(b.stream)\n\t}\n\tif b.pipe == nil || b.sawEOF {\n\t\treturn 0, io.EOF\n\t}\n\tn, err = b.pipe.Read(p)\n\tif err == io.EOF {\n\t\tb.sawEOF = true\n\t}\n\tif b.conn == nil && inTests {\n\t\treturn\n\t}\n\tb.conn.noteBodyReadFromHandler(b.stream, n, err)\n\treturn\n}\n\n// responseWriter is the http.ResponseWriter implementation. It's\n// intentionally small (1 pointer wide) to minimize garbage. The\n// responseWriterState pointer inside is zeroed at the end of a\n// request (in handlerDone) and calls on the responseWriter thereafter\n// simply crash (caller's mistake), but the much larger responseWriterState\n// and buffers are reused between multiple requests.\ntype responseWriter struct {\n\trws *responseWriterState\n}\n\n// Optional http.ResponseWriter interfaces implemented.\nvar (\n\t_ http.CloseNotifier = (*responseWriter)(nil)\n\t_ http.Flusher       = (*responseWriter)(nil)\n\t_ stringWriter       = (*responseWriter)(nil)\n)\n\ntype responseWriterState struct {\n\t// immutable within a request:\n\tstream *stream\n\treq    *http.Request\n\tconn   *serverConn\n\n\t// TODO: adjust buffer writing sizes based on server config, frame size updates from peer, etc\n\tbw *bufio.Writer // writing to a chunkWriter{this *responseWriterState}\n\n\t// mutated by http.Handler goroutine:\n\thandlerHeader http.Header // nil until called\n\tsnapHeader    http.Header // snapshot of handlerHeader at WriteHeader time\n\ttrailers      []string    // set in writeChunk\n\tstatus        int         // status code passed to WriteHeader\n\twroteHeader   bool        // WriteHeader called (explicitly or implicitly). Not necessarily sent to user yet.\n\tsentHeader    bool        // have we sent the header frame?\n\thandlerDone   bool        // handler has finished\n\n\tsentContentLen int64 // non-zero if handler set a Content-Length header\n\twroteBytes     int64\n\n\tcloseNotifierMu sync.Mutex // guards closeNotifierCh\n\tcloseNotifierCh chan bool  // nil until first used\n}\n\ntype chunkWriter struct{ rws *responseWriterState }\n\nfunc (cw chunkWriter) Write(p []byte) (n int, err error) {\n\tn, err = cw.rws.writeChunk(p)\n\tif err == errStreamClosed {\n\t\t// If writing failed because the stream has been closed,\n\t\t// return the reason it was closed.\n\t\terr = cw.rws.stream.closeErr\n\t}\n\treturn n, err\n}\n\nfunc (rws *responseWriterState) hasTrailers() bool { return len(rws.trailers) > 0 }\n\nfunc (rws *responseWriterState) hasNonemptyTrailers() bool {\n\tfor _, trailer := range rws.trailers {\n\t\tif _, ok := rws.handlerHeader[trailer]; ok {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// declareTrailer is called for each Trailer header when the\n// response header is written. It notes that a header will need to be\n// written in the trailers at the end of the response.\nfunc (rws *responseWriterState) declareTrailer(k string) {\n\tk = http.CanonicalHeaderKey(k)\n\tif !httpguts.ValidTrailerHeader(k) {\n\t\t// Forbidden by RFC 7230, section 4.1.2.\n\t\trws.conn.logf(\"ignoring invalid trailer %q\", k)\n\t\treturn\n\t}\n\tif !strSliceContains(rws.trailers, k) {\n\t\trws.trailers = append(rws.trailers, k)\n\t}\n}\n\n// writeChunk writes chunks from the bufio.Writer. But because\n// bufio.Writer may bypass its chunking, sometimes p may be\n// arbitrarily large.\n//\n// writeChunk is also responsible (on the first chunk) for sending the\n// HEADER response.\nfunc (rws *responseWriterState) writeChunk(p []byte) (n int, err error) {\n\tif !rws.wroteHeader {\n\t\trws.writeHeader(200)\n\t}\n\n\tif rws.handlerDone {\n\t\trws.promoteUndeclaredTrailers()\n\t}\n\n\tisHeadResp := rws.req.Method == \"HEAD\"\n\tif !rws.sentHeader {\n\t\trws.sentHeader = true\n\t\tvar ctype, clen string\n\t\tif clen = rws.snapHeader.Get(\"Content-Length\"); clen != \"\" {\n\t\t\trws.snapHeader.Del(\"Content-Length\")\n\t\t\tif cl, err := strconv.ParseUint(clen, 10, 63); err == nil {\n\t\t\t\trws.sentContentLen = int64(cl)\n\t\t\t} else {\n\t\t\t\tclen = \"\"\n\t\t\t}\n\t\t}\n\t\t_, hasContentLength := rws.snapHeader[\"Content-Length\"]\n\t\tif !hasContentLength && clen == \"\" && rws.handlerDone && bodyAllowedForStatus(rws.status) && (len(p) > 0 || !isHeadResp) {\n\t\t\tclen = strconv.Itoa(len(p))\n\t\t}\n\t\t_, hasContentType := rws.snapHeader[\"Content-Type\"]\n\t\t// If the Content-Encoding is non-blank, we shouldn't\n\t\t// sniff the body. See Issue golang.org/issue/31753.\n\t\tce := rws.snapHeader.Get(\"Content-Encoding\")\n\t\thasCE := len(ce) > 0\n\t\tif !hasCE && !hasContentType && bodyAllowedForStatus(rws.status) && len(p) > 0 {\n\t\t\tctype = http.DetectContentType(p)\n\t\t}\n\t\tvar date string\n\t\tif _, ok := rws.snapHeader[\"Date\"]; !ok {\n\t\t\t// TODO(bradfitz): be faster here, like net/http? measure.\n\t\t\tdate = rws.conn.srv.now().UTC().Format(http.TimeFormat)\n\t\t}\n\n\t\tfor _, v := range rws.snapHeader[\"Trailer\"] {\n\t\t\tforeachHeaderElement(v, rws.declareTrailer)\n\t\t}\n\n\t\t// \"Connection\" headers aren't allowed in HTTP/2 (RFC 7540, 8.1.2.2),\n\t\t// but respect \"Connection\" == \"close\" to mean sending a GOAWAY and tearing\n\t\t// down the TCP connection when idle, like we do for HTTP/1.\n\t\t// TODO: remove more Connection-specific header fields here, in addition\n\t\t// to \"Connection\".\n\t\tif _, ok := rws.snapHeader[\"Connection\"]; ok {\n\t\t\tv := rws.snapHeader.Get(\"Connection\")\n\t\t\tdelete(rws.snapHeader, \"Connection\")\n\t\t\tif v == \"close\" {\n\t\t\t\trws.conn.startGracefulShutdown()\n\t\t\t}\n\t\t}\n\n\t\tendStream := (rws.handlerDone && !rws.hasTrailers() && len(p) == 0) || isHeadResp\n\t\terr = rws.conn.writeHeaders(rws.stream, &writeResHeaders{\n\t\t\tstreamID:      rws.stream.id,\n\t\t\thttpResCode:   rws.status,\n\t\t\th:             rws.snapHeader,\n\t\t\tendStream:     endStream,\n\t\t\tcontentType:   ctype,\n\t\t\tcontentLength: clen,\n\t\t\tdate:          date,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\tif endStream {\n\t\t\treturn 0, nil\n\t\t}\n\t}\n\tif isHeadResp {\n\t\treturn len(p), nil\n\t}\n\tif len(p) == 0 && !rws.handlerDone {\n\t\treturn 0, nil\n\t}\n\n\t// only send trailers if they have actually been defined by the\n\t// server handler.\n\thasNonemptyTrailers := rws.hasNonemptyTrailers()\n\tendStream := rws.handlerDone && !hasNonemptyTrailers\n\tif len(p) > 0 || endStream {\n\t\t// only send a 0 byte DATA frame if we're ending the stream.\n\t\tif err := rws.conn.writeDataFromHandler(rws.stream, p, endStream); err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t}\n\n\tif rws.handlerDone && hasNonemptyTrailers {\n\t\terr = rws.conn.writeHeaders(rws.stream, &writeResHeaders{\n\t\t\tstreamID:  rws.stream.id,\n\t\t\th:         rws.handlerHeader,\n\t\t\ttrailers:  rws.trailers,\n\t\t\tendStream: true,\n\t\t})\n\t\treturn len(p), err\n\t}\n\treturn len(p), nil\n}\n\n// TrailerPrefix is a magic prefix for ResponseWriter.Header map keys\n// that, if present, signals that the map entry is actually for\n// the response trailers, and not the response headers. The prefix\n// is stripped after the ServeHTTP call finishes and the values are\n// sent in the trailers.\n//\n// This mechanism is intended only for trailers that are not known\n// prior to the headers being written. If the set of trailers is fixed\n// or known before the header is written, the normal Go trailers mechanism\n// is preferred:\n//\n//\thttps://golang.org/pkg/net/http/#ResponseWriter\n//\thttps://golang.org/pkg/net/http/#example_ResponseWriter_trailers\nconst TrailerPrefix = \"Trailer:\"\n\n// promoteUndeclaredTrailers permits http.Handlers to set trailers\n// after the header has already been flushed. Because the Go\n// ResponseWriter interface has no way to set Trailers (only the\n// Header), and because we didn't want to expand the ResponseWriter\n// interface, and because nobody used trailers, and because RFC 7230\n// says you SHOULD (but not must) predeclare any trailers in the\n// header, the official ResponseWriter rules said trailers in Go must\n// be predeclared, and then we reuse the same ResponseWriter.Header()\n// map to mean both Headers and Trailers. When it's time to write the\n// Trailers, we pick out the fields of Headers that were declared as\n// trailers. That worked for a while, until we found the first major\n// user of Trailers in the wild: gRPC (using them only over http2),\n// and gRPC libraries permit setting trailers mid-stream without\n// predeclaring them. So: change of plans. We still permit the old\n// way, but we also permit this hack: if a Header() key begins with\n// \"Trailer:\", the suffix of that key is a Trailer. Because ':' is an\n// invalid token byte anyway, there is no ambiguity. (And it's already\n// filtered out) It's mildly hacky, but not terrible.\n//\n// This method runs after the Handler is done and promotes any Header\n// fields to be trailers.\nfunc (rws *responseWriterState) promoteUndeclaredTrailers() {\n\tfor k, vv := range rws.handlerHeader {\n\t\tif !strings.HasPrefix(k, TrailerPrefix) {\n\t\t\tcontinue\n\t\t}\n\t\ttrailerKey := strings.TrimPrefix(k, TrailerPrefix)\n\t\trws.declareTrailer(trailerKey)\n\t\trws.handlerHeader[http.CanonicalHeaderKey(trailerKey)] = vv\n\t}\n\n\tif len(rws.trailers) > 1 {\n\t\tsorter := sorterPool.Get().(*sorter)\n\t\tsorter.SortStrings(rws.trailers)\n\t\tsorterPool.Put(sorter)\n\t}\n}\n\nfunc (w *responseWriter) SetReadDeadline(deadline time.Time) error {\n\tst := w.rws.stream\n\tif !deadline.IsZero() && deadline.Before(w.rws.conn.srv.now()) {\n\t\t// If we're setting a deadline in the past, reset the stream immediately\n\t\t// so writes after SetWriteDeadline returns will fail.\n\t\tst.onReadTimeout()\n\t\treturn nil\n\t}\n\tw.rws.conn.sendServeMsg(func(sc *serverConn) {\n\t\tif st.readDeadline != nil {\n\t\t\tif !st.readDeadline.Stop() {\n\t\t\t\t// Deadline already exceeded, or stream has been closed.\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t\tif deadline.IsZero() {\n\t\t\tst.readDeadline = nil\n\t\t} else if st.readDeadline == nil {\n\t\t\tst.readDeadline = sc.srv.afterFunc(deadline.Sub(sc.srv.now()), st.onReadTimeout)\n\t\t} else {\n\t\t\tst.readDeadline.Reset(deadline.Sub(sc.srv.now()))\n\t\t}\n\t})\n\treturn nil\n}\n\nfunc (w *responseWriter) SetWriteDeadline(deadline time.Time) error {\n\tst := w.rws.stream\n\tif !deadline.IsZero() && deadline.Before(w.rws.conn.srv.now()) {\n\t\t// If we're setting a deadline in the past, reset the stream immediately\n\t\t// so writes after SetWriteDeadline returns will fail.\n\t\tst.onWriteTimeout()\n\t\treturn nil\n\t}\n\tw.rws.conn.sendServeMsg(func(sc *serverConn) {\n\t\tif st.writeDeadline != nil {\n\t\t\tif !st.writeDeadline.Stop() {\n\t\t\t\t// Deadline already exceeded, or stream has been closed.\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t\tif deadline.IsZero() {\n\t\t\tst.writeDeadline = nil\n\t\t} else if st.writeDeadline == nil {\n\t\t\tst.writeDeadline = sc.srv.afterFunc(deadline.Sub(sc.srv.now()), st.onWriteTimeout)\n\t\t} else {\n\t\t\tst.writeDeadline.Reset(deadline.Sub(sc.srv.now()))\n\t\t}\n\t})\n\treturn nil\n}\n\nfunc (w *responseWriter) EnableFullDuplex() error {\n\t// We always support full duplex responses, so this is a no-op.\n\treturn nil\n}\n\nfunc (w *responseWriter) Flush() {\n\tw.FlushError()\n}\n\nfunc (w *responseWriter) FlushError() error {\n\trws := w.rws\n\tif rws == nil {\n\t\tpanic(\"Header called after Handler finished\")\n\t}\n\tvar err error\n\tif rws.bw.Buffered() > 0 {\n\t\terr = rws.bw.Flush()\n\t} else {\n\t\t// The bufio.Writer won't call chunkWriter.Write\n\t\t// (writeChunk with zero bytes), so we have to do it\n\t\t// ourselves to force the HTTP response header and/or\n\t\t// final DATA frame (with END_STREAM) to be sent.\n\t\t_, err = chunkWriter{rws}.Write(nil)\n\t\tif err == nil {\n\t\t\tselect {\n\t\t\tcase <-rws.stream.cw:\n\t\t\t\terr = rws.stream.closeErr\n\t\t\tdefault:\n\t\t\t}\n\t\t}\n\t}\n\treturn err\n}\n\nfunc (w *responseWriter) CloseNotify() <-chan bool {\n\trws := w.rws\n\tif rws == nil {\n\t\tpanic(\"CloseNotify called after Handler finished\")\n\t}\n\trws.closeNotifierMu.Lock()\n\tch := rws.closeNotifierCh\n\tif ch == nil {\n\t\tch = make(chan bool, 1)\n\t\trws.closeNotifierCh = ch\n\t\tcw := rws.stream.cw\n\t\tgo func() {\n\t\t\tcw.Wait() // wait for close\n\t\t\tch <- true\n\t\t}()\n\t}\n\trws.closeNotifierMu.Unlock()\n\treturn ch\n}\n\nfunc (w *responseWriter) Header() http.Header {\n\trws := w.rws\n\tif rws == nil {\n\t\tpanic(\"Header called after Handler finished\")\n\t}\n\tif rws.handlerHeader == nil {\n\t\trws.handlerHeader = make(http.Header)\n\t}\n\treturn rws.handlerHeader\n}\n\n// checkWriteHeaderCode is a copy of net/http's checkWriteHeaderCode.\nfunc checkWriteHeaderCode(code int) {\n\t// Issue 22880: require valid WriteHeader status codes.\n\t// For now we only enforce that it's three digits.\n\t// In the future we might block things over 599 (600 and above aren't defined\n\t// at http://httpwg.org/specs/rfc7231.html#status.codes).\n\t// But for now any three digits.\n\t//\n\t// We used to send \"HTTP/1.1 000 0\" on the wire in responses but there's\n\t// no equivalent bogus thing we can realistically send in HTTP/2,\n\t// so we'll consistently panic instead and help people find their bugs\n\t// early. (We can't return an error from WriteHeader even if we wanted to.)\n\tif code < 100 || code > 999 {\n\t\tpanic(fmt.Sprintf(\"invalid WriteHeader code %v\", code))\n\t}\n}\n\nfunc (w *responseWriter) WriteHeader(code int) {\n\trws := w.rws\n\tif rws == nil {\n\t\tpanic(\"WriteHeader called after Handler finished\")\n\t}\n\trws.writeHeader(code)\n}\n\nfunc (rws *responseWriterState) writeHeader(code int) {\n\tif rws.wroteHeader {\n\t\treturn\n\t}\n\n\tcheckWriteHeaderCode(code)\n\n\t// Handle informational headers\n\tif code >= 100 && code <= 199 {\n\t\t// Per RFC 8297 we must not clear the current header map\n\t\th := rws.handlerHeader\n\n\t\t_, cl := h[\"Content-Length\"]\n\t\t_, te := h[\"Transfer-Encoding\"]\n\t\tif cl || te {\n\t\t\th = h.Clone()\n\t\t\th.Del(\"Content-Length\")\n\t\t\th.Del(\"Transfer-Encoding\")\n\t\t}\n\n\t\trws.conn.writeHeaders(rws.stream, &writeResHeaders{\n\t\t\tstreamID:    rws.stream.id,\n\t\t\thttpResCode: code,\n\t\t\th:           h,\n\t\t\tendStream:   rws.handlerDone && !rws.hasTrailers(),\n\t\t})\n\n\t\treturn\n\t}\n\n\trws.wroteHeader = true\n\trws.status = code\n\tif len(rws.handlerHeader) > 0 {\n\t\trws.snapHeader = cloneHeader(rws.handlerHeader)\n\t}\n}\n\nfunc cloneHeader(h http.Header) http.Header {\n\th2 := make(http.Header, len(h))\n\tfor k, vv := range h {\n\t\tvv2 := make([]string, len(vv))\n\t\tcopy(vv2, vv)\n\t\th2[k] = vv2\n\t}\n\treturn h2\n}\n\n// The Life Of A Write is like this:\n//\n// * Handler calls w.Write or w.WriteString ->\n// * -> rws.bw (*bufio.Writer) ->\n// * (Handler might call Flush)\n// * -> chunkWriter{rws}\n// * -> responseWriterState.writeChunk(p []byte)\n// * -> responseWriterState.writeChunk (most of the magic; see comment there)\nfunc (w *responseWriter) Write(p []byte) (n int, err error) {\n\treturn w.write(len(p), p, \"\")\n}\n\nfunc (w *responseWriter) WriteString(s string) (n int, err error) {\n\treturn w.write(len(s), nil, s)\n}\n\n// either dataB or dataS is non-zero.\nfunc (w *responseWriter) write(lenData int, dataB []byte, dataS string) (n int, err error) {\n\trws := w.rws\n\tif rws == nil {\n\t\tpanic(\"Write called after Handler finished\")\n\t}\n\tif !rws.wroteHeader {\n\t\tw.WriteHeader(200)\n\t}\n\tif !bodyAllowedForStatus(rws.status) {\n\t\treturn 0, http.ErrBodyNotAllowed\n\t}\n\trws.wroteBytes += int64(len(dataB)) + int64(len(dataS)) // only one can be set\n\tif rws.sentContentLen != 0 && rws.wroteBytes > rws.sentContentLen {\n\t\t// TODO: send a RST_STREAM\n\t\treturn 0, errors.New(\"http2: handler wrote more than declared Content-Length\")\n\t}\n\n\tif dataB != nil {\n\t\treturn rws.bw.Write(dataB)\n\t} else {\n\t\treturn rws.bw.WriteString(dataS)\n\t}\n}\n\nfunc (w *responseWriter) handlerDone() {\n\trws := w.rws\n\trws.handlerDone = true\n\tw.Flush()\n\tw.rws = nil\n\tresponseWriterStatePool.Put(rws)\n}\n\n// Push errors.\nvar (\n\tErrRecursivePush    = errors.New(\"http2: recursive push not allowed\")\n\tErrPushLimitReached = errors.New(\"http2: push would exceed peer's SETTINGS_MAX_CONCURRENT_STREAMS\")\n)\n\nvar _ http.Pusher = (*responseWriter)(nil)\n\nfunc (w *responseWriter) Push(target string, opts *http.PushOptions) error {\n\tst := w.rws.stream\n\tsc := st.sc\n\tsc.serveG.checkNotOn()\n\n\t// No recursive pushes: \"PUSH_PROMISE frames MUST only be sent on a peer-initiated stream.\"\n\t// http://tools.ietf.org/html/rfc7540#section-6.6\n\tif st.isPushed() {\n\t\treturn ErrRecursivePush\n\t}\n\n\tif opts == nil {\n\t\topts = new(http.PushOptions)\n\t}\n\n\t// Default options.\n\tif opts.Method == \"\" {\n\t\topts.Method = \"GET\"\n\t}\n\tif opts.Header == nil {\n\t\topts.Header = http.Header{}\n\t}\n\twantScheme := \"http\"\n\tif w.rws.req.TLS != nil {\n\t\twantScheme = \"https\"\n\t}\n\n\t// Validate the request.\n\tu, err := url.Parse(target)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif u.Scheme == \"\" {\n\t\tif !strings.HasPrefix(target, \"/\") {\n\t\t\treturn fmt.Errorf(\"target must be an absolute URL or an absolute path: %q\", target)\n\t\t}\n\t\tu.Scheme = wantScheme\n\t\tu.Host = w.rws.req.Host\n\t} else {\n\t\tif u.Scheme != wantScheme {\n\t\t\treturn fmt.Errorf(\"cannot push URL with scheme %q from request with scheme %q\", u.Scheme, wantScheme)\n\t\t}\n\t\tif u.Host == \"\" {\n\t\t\treturn errors.New(\"URL must have a host\")\n\t\t}\n\t}\n\tfor k := range opts.Header {\n\t\tif strings.HasPrefix(k, \":\") {\n\t\t\treturn fmt.Errorf(\"promised request headers cannot include pseudo header %q\", k)\n\t\t}\n\t\t// These headers are meaningful only if the request has a body,\n\t\t// but PUSH_PROMISE requests cannot have a body.\n\t\t// http://tools.ietf.org/html/rfc7540#section-8.2\n\t\t// Also disallow Host, since the promised URL must be absolute.\n\t\tif asciiEqualFold(k, \"content-length\") ||\n\t\t\tasciiEqualFold(k, \"content-encoding\") ||\n\t\t\tasciiEqualFold(k, \"trailer\") ||\n\t\t\tasciiEqualFold(k, \"te\") ||\n\t\t\tasciiEqualFold(k, \"expect\") ||\n\t\t\tasciiEqualFold(k, \"host\") {\n\t\t\treturn fmt.Errorf(\"promised request headers cannot include %q\", k)\n\t\t}\n\t}\n\tif err := checkValidHTTP2RequestHeaders(opts.Header); err != nil {\n\t\treturn err\n\t}\n\n\t// The RFC effectively limits promised requests to GET and HEAD:\n\t// \"Promised requests MUST be cacheable [GET, HEAD, or POST], and MUST be safe [GET or HEAD]\"\n\t// http://tools.ietf.org/html/rfc7540#section-8.2\n\tif opts.Method != \"GET\" && opts.Method != \"HEAD\" {\n\t\treturn fmt.Errorf(\"method %q must be GET or HEAD\", opts.Method)\n\t}\n\n\tmsg := &startPushRequest{\n\t\tparent: st,\n\t\tmethod: opts.Method,\n\t\turl:    u,\n\t\theader: cloneHeader(opts.Header),\n\t\tdone:   errChanPool.Get().(chan error),\n\t}\n\n\tselect {\n\tcase <-sc.doneServing:\n\t\treturn errClientDisconnected\n\tcase <-st.cw:\n\t\treturn errStreamClosed\n\tcase sc.serveMsgCh <- msg:\n\t}\n\n\tselect {\n\tcase <-sc.doneServing:\n\t\treturn errClientDisconnected\n\tcase <-st.cw:\n\t\treturn errStreamClosed\n\tcase err := <-msg.done:\n\t\terrChanPool.Put(msg.done)\n\t\treturn err\n\t}\n}\n\ntype startPushRequest struct {\n\tparent *stream\n\tmethod string\n\turl    *url.URL\n\theader http.Header\n\tdone   chan error\n}\n\nfunc (sc *serverConn) startPush(msg *startPushRequest) {\n\tsc.serveG.check()\n\n\t// http://tools.ietf.org/html/rfc7540#section-6.6.\n\t// PUSH_PROMISE frames MUST only be sent on a peer-initiated stream that\n\t// is in either the \"open\" or \"half-closed (remote)\" state.\n\tif msg.parent.state != stateOpen && msg.parent.state != stateHalfClosedRemote {\n\t\t// responseWriter.Push checks that the stream is peer-initiated.\n\t\tmsg.done <- errStreamClosed\n\t\treturn\n\t}\n\n\t// http://tools.ietf.org/html/rfc7540#section-6.6.\n\tif !sc.pushEnabled {\n\t\tmsg.done <- http.ErrNotSupported\n\t\treturn\n\t}\n\n\t// PUSH_PROMISE frames must be sent in increasing order by stream ID, so\n\t// we allocate an ID for the promised stream lazily, when the PUSH_PROMISE\n\t// is written. Once the ID is allocated, we start the request handler.\n\tallocatePromisedID := func() (uint32, error) {\n\t\tsc.serveG.check()\n\n\t\t// Check this again, just in case. Technically, we might have received\n\t\t// an updated SETTINGS by the time we got around to writing this frame.\n\t\tif !sc.pushEnabled {\n\t\t\treturn 0, http.ErrNotSupported\n\t\t}\n\t\t// http://tools.ietf.org/html/rfc7540#section-6.5.2.\n\t\tif sc.curPushedStreams+1 > sc.clientMaxStreams {\n\t\t\treturn 0, ErrPushLimitReached\n\t\t}\n\n\t\t// http://tools.ietf.org/html/rfc7540#section-5.1.1.\n\t\t// Streams initiated by the server MUST use even-numbered identifiers.\n\t\t// A server that is unable to establish a new stream identifier can send a GOAWAY\n\t\t// frame so that the client is forced to open a new connection for new streams.\n\t\tif sc.maxPushPromiseID+2 >= 1<<31 {\n\t\t\tsc.startGracefulShutdownInternal()\n\t\t\treturn 0, ErrPushLimitReached\n\t\t}\n\t\tsc.maxPushPromiseID += 2\n\t\tpromisedID := sc.maxPushPromiseID\n\n\t\t// http://tools.ietf.org/html/rfc7540#section-8.2.\n\t\t// Strictly speaking, the new stream should start in \"reserved (local)\", then\n\t\t// transition to \"half closed (remote)\" after sending the initial HEADERS, but\n\t\t// we start in \"half closed (remote)\" for simplicity.\n\t\t// See further comments at the definition of stateHalfClosedRemote.\n\t\tpromised := sc.newStream(promisedID, msg.parent.id, stateHalfClosedRemote)\n\t\trw, req, err := sc.newWriterAndRequestNoBody(promised, httpcommon.ServerRequestParam{\n\t\t\tMethod:    msg.method,\n\t\t\tScheme:    msg.url.Scheme,\n\t\t\tAuthority: msg.url.Host,\n\t\t\tPath:      msg.url.RequestURI(),\n\t\t\tHeader:    cloneHeader(msg.header), // clone since handler runs concurrently with writing the PUSH_PROMISE\n\t\t})\n\t\tif err != nil {\n\t\t\t// Should not happen, since we've already validated msg.url.\n\t\t\tpanic(fmt.Sprintf(\"newWriterAndRequestNoBody(%+v): %v\", msg.url, err))\n\t\t}\n\n\t\tsc.curHandlers++\n\t\tgo sc.runHandler(rw, req, sc.handler.ServeHTTP)\n\t\treturn promisedID, nil\n\t}\n\n\tsc.writeFrame(FrameWriteRequest{\n\t\twrite: &writePushPromise{\n\t\t\tstreamID:           msg.parent.id,\n\t\t\tmethod:             msg.method,\n\t\t\turl:                msg.url,\n\t\t\th:                  msg.header,\n\t\t\tallocatePromisedID: allocatePromisedID,\n\t\t},\n\t\tstream: msg.parent,\n\t\tdone:   msg.done,\n\t})\n}\n\n// foreachHeaderElement splits v according to the \"#rule\" construction\n// in RFC 7230 section 7 and calls fn for each non-empty element.\nfunc foreachHeaderElement(v string, fn func(string)) {\n\tv = textproto.TrimString(v)\n\tif v == \"\" {\n\t\treturn\n\t}\n\tif !strings.Contains(v, \",\") {\n\t\tfn(v)\n\t\treturn\n\t}\n\tfor _, f := range strings.Split(v, \",\") {\n\t\tif f = textproto.TrimString(f); f != \"\" {\n\t\t\tfn(f)\n\t\t}\n\t}\n}\n\n// From http://httpwg.org/specs/rfc7540.html#rfc.section.8.1.2.2\nvar connHeaders = []string{\n\t\"Connection\",\n\t\"Keep-Alive\",\n\t\"Proxy-Connection\",\n\t\"Transfer-Encoding\",\n\t\"Upgrade\",\n}\n\n// checkValidHTTP2RequestHeaders checks whether h is a valid HTTP/2 request,\n// per RFC 7540 Section 8.1.2.2.\n// The returned error is reported to users.\nfunc checkValidHTTP2RequestHeaders(h http.Header) error {\n\tfor _, k := range connHeaders {\n\t\tif _, ok := h[k]; ok {\n\t\t\treturn fmt.Errorf(\"request header %q is not valid in HTTP/2\", k)\n\t\t}\n\t}\n\tte := h[\"Te\"]\n\tif len(te) > 0 && (len(te) > 1 || (te[0] != \"trailers\" && te[0] != \"\")) {\n\t\treturn errors.New(`request header \"TE\" may only be \"trailers\" in HTTP/2`)\n\t}\n\treturn nil\n}\n\nfunc new400Handler(err error) http.HandlerFunc {\n\treturn func(w http.ResponseWriter, r *http.Request) {\n\t\thttp.Error(w, err.Error(), http.StatusBadRequest)\n\t}\n}\n\n// h1ServerKeepAlivesDisabled reports whether hs has its keep-alives\n// disabled. See comments on h1ServerShutdownChan above for why\n// the code is written this way.\nfunc h1ServerKeepAlivesDisabled(hs *http.Server) bool {\n\tvar x interface{} = hs\n\ttype I interface {\n\t\tdoKeepAlives() bool\n\t}\n\tif hs, ok := x.(I); ok {\n\t\treturn !hs.doKeepAlives()\n\t}\n\treturn false\n}\n\nfunc (sc *serverConn) countError(name string, err error) error {\n\tif sc == nil || sc.srv == nil {\n\t\treturn err\n\t}\n\tf := sc.countErrorFunc\n\tif f == nil {\n\t\treturn err\n\t}\n\tvar typ string\n\tvar code ErrCode\n\tswitch e := err.(type) {\n\tcase ConnectionError:\n\t\ttyp = \"conn\"\n\t\tcode = ErrCode(e)\n\tcase StreamError:\n\t\ttyp = \"stream\"\n\t\tcode = ErrCode(e.Code)\n\tdefault:\n\t\treturn err\n\t}\n\tcodeStr := errCodeName[code]\n\tif codeStr == \"\" {\n\t\tcodeStr = strconv.Itoa(int(code))\n\t}\n\tf(fmt.Sprintf(\"%s_%s_%s\", typ, codeStr, name))\n\treturn err\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/timer.go",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\npackage http2\n\nimport \"time\"\n\n// A timer is a time.Timer, as an interface which can be replaced in tests.\ntype timer = interface {\n\tC() <-chan time.Time\n\tReset(d time.Duration) bool\n\tStop() bool\n}\n\n// timeTimer adapts a time.Timer to the timer interface.\ntype timeTimer struct {\n\t*time.Timer\n}\n\nfunc (t timeTimer) C() <-chan time.Time { return t.Timer.C }\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/transport.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Transport code.\n\npackage http2\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"compress/gzip\"\n\t\"context\"\n\t\"crypto/rand\"\n\t\"crypto/tls\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"io/fs\"\n\t\"log\"\n\t\"math\"\n\t\"math/bits\"\n\tmathrand \"math/rand\"\n\t\"net\"\n\t\"net/http\"\n\t\"net/http/httptrace\"\n\t\"net/textproto\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\t\"golang.org/x/net/http/httpguts\"\n\t\"golang.org/x/net/http2/hpack\"\n\t\"golang.org/x/net/idna\"\n\t\"golang.org/x/net/internal/httpcommon\"\n)\n\nconst (\n\t// transportDefaultConnFlow is how many connection-level flow control\n\t// tokens we give the server at start-up, past the default 64k.\n\ttransportDefaultConnFlow = 1 << 30\n\n\t// transportDefaultStreamFlow is how many stream-level flow\n\t// control tokens we announce to the peer, and how many bytes\n\t// we buffer per stream.\n\ttransportDefaultStreamFlow = 4 << 20\n\n\tdefaultUserAgent = \"Go-http-client/2.0\"\n\n\t// initialMaxConcurrentStreams is a connections maxConcurrentStreams until\n\t// it's received servers initial SETTINGS frame, which corresponds with the\n\t// spec's minimum recommended value.\n\tinitialMaxConcurrentStreams = 100\n\n\t// defaultMaxConcurrentStreams is a connections default maxConcurrentStreams\n\t// if the server doesn't include one in its initial SETTINGS frame.\n\tdefaultMaxConcurrentStreams = 1000\n)\n\n// Transport is an HTTP/2 Transport.\n//\n// A Transport internally caches connections to servers. It is safe\n// for concurrent use by multiple goroutines.\ntype Transport struct {\n\t// DialTLSContext specifies an optional dial function with context for\n\t// creating TLS connections for requests.\n\t//\n\t// If DialTLSContext and DialTLS is nil, tls.Dial is used.\n\t//\n\t// If the returned net.Conn has a ConnectionState method like tls.Conn,\n\t// it will be used to set http.Response.TLS.\n\tDialTLSContext func(ctx context.Context, network, addr string, cfg *tls.Config) (net.Conn, error)\n\n\t// DialTLS specifies an optional dial function for creating\n\t// TLS connections for requests.\n\t//\n\t// If DialTLSContext and DialTLS is nil, tls.Dial is used.\n\t//\n\t// Deprecated: Use DialTLSContext instead, which allows the transport\n\t// to cancel dials as soon as they are no longer needed.\n\t// If both are set, DialTLSContext takes priority.\n\tDialTLS func(network, addr string, cfg *tls.Config) (net.Conn, error)\n\n\t// TLSClientConfig specifies the TLS configuration to use with\n\t// tls.Client. If nil, the default configuration is used.\n\tTLSClientConfig *tls.Config\n\n\t// ConnPool optionally specifies an alternate connection pool to use.\n\t// If nil, the default is used.\n\tConnPool ClientConnPool\n\n\t// DisableCompression, if true, prevents the Transport from\n\t// requesting compression with an \"Accept-Encoding: gzip\"\n\t// request header when the Request contains no existing\n\t// Accept-Encoding value. If the Transport requests gzip on\n\t// its own and gets a gzipped response, it's transparently\n\t// decoded in the Response.Body. However, if the user\n\t// explicitly requested gzip it is not automatically\n\t// uncompressed.\n\tDisableCompression bool\n\n\t// AllowHTTP, if true, permits HTTP/2 requests using the insecure,\n\t// plain-text \"http\" scheme. Note that this does not enable h2c support.\n\tAllowHTTP bool\n\n\t// MaxHeaderListSize is the http2 SETTINGS_MAX_HEADER_LIST_SIZE to\n\t// send in the initial settings frame. It is how many bytes\n\t// of response headers are allowed. Unlike the http2 spec, zero here\n\t// means to use a default limit (currently 10MB). If you actually\n\t// want to advertise an unlimited value to the peer, Transport\n\t// interprets the highest possible value here (0xffffffff or 1<<32-1)\n\t// to mean no limit.\n\tMaxHeaderListSize uint32\n\n\t// MaxReadFrameSize is the http2 SETTINGS_MAX_FRAME_SIZE to send in the\n\t// initial settings frame. It is the size in bytes of the largest frame\n\t// payload that the sender is willing to receive. If 0, no setting is\n\t// sent, and the value is provided by the peer, which should be 16384\n\t// according to the spec:\n\t// https://datatracker.ietf.org/doc/html/rfc7540#section-6.5.2.\n\t// Values are bounded in the range 16k to 16M.\n\tMaxReadFrameSize uint32\n\n\t// MaxDecoderHeaderTableSize optionally specifies the http2\n\t// SETTINGS_HEADER_TABLE_SIZE to send in the initial settings frame. It\n\t// informs the remote endpoint of the maximum size of the header compression\n\t// table used to decode header blocks, in octets. If zero, the default value\n\t// of 4096 is used.\n\tMaxDecoderHeaderTableSize uint32\n\n\t// MaxEncoderHeaderTableSize optionally specifies an upper limit for the\n\t// header compression table used for encoding request headers. Received\n\t// SETTINGS_HEADER_TABLE_SIZE settings are capped at this limit. If zero,\n\t// the default value of 4096 is used.\n\tMaxEncoderHeaderTableSize uint32\n\n\t// StrictMaxConcurrentStreams controls whether the server's\n\t// SETTINGS_MAX_CONCURRENT_STREAMS should be respected\n\t// globally. If false, new TCP connections are created to the\n\t// server as needed to keep each under the per-connection\n\t// SETTINGS_MAX_CONCURRENT_STREAMS limit. If true, the\n\t// server's SETTINGS_MAX_CONCURRENT_STREAMS is interpreted as\n\t// a global limit and callers of RoundTrip block when needed,\n\t// waiting for their turn.\n\tStrictMaxConcurrentStreams bool\n\n\t// IdleConnTimeout is the maximum amount of time an idle\n\t// (keep-alive) connection will remain idle before closing\n\t// itself.\n\t// Zero means no limit.\n\tIdleConnTimeout time.Duration\n\n\t// ReadIdleTimeout is the timeout after which a health check using ping\n\t// frame will be carried out if no frame is received on the connection.\n\t// Note that a ping response will is considered a received frame, so if\n\t// there is no other traffic on the connection, the health check will\n\t// be performed every ReadIdleTimeout interval.\n\t// If zero, no health check is performed.\n\tReadIdleTimeout time.Duration\n\n\t// PingTimeout is the timeout after which the connection will be closed\n\t// if a response to Ping is not received.\n\t// Defaults to 15s.\n\tPingTimeout time.Duration\n\n\t// WriteByteTimeout is the timeout after which the connection will be\n\t// closed no data can be written to it. The timeout begins when data is\n\t// available to write, and is extended whenever any bytes are written.\n\tWriteByteTimeout time.Duration\n\n\t// CountError, if non-nil, is called on HTTP/2 transport errors.\n\t// It's intended to increment a metric for monitoring, such\n\t// as an expvar or Prometheus metric.\n\t// The errType consists of only ASCII word characters.\n\tCountError func(errType string)\n\n\t// t1, if non-nil, is the standard library Transport using\n\t// this transport. Its settings are used (but not its\n\t// RoundTrip method, etc).\n\tt1 *http.Transport\n\n\tconnPoolOnce  sync.Once\n\tconnPoolOrDef ClientConnPool // non-nil version of ConnPool\n\n\t*transportTestHooks\n}\n\n// Hook points used for testing.\n// Outside of tests, t.transportTestHooks is nil and these all have minimal implementations.\n// Inside tests, see the testSyncHooks function docs.\n\ntype transportTestHooks struct {\n\tnewclientconn func(*ClientConn)\n\tgroup         synctestGroupInterface\n}\n\nfunc (t *Transport) markNewGoroutine() {\n\tif t != nil && t.transportTestHooks != nil {\n\t\tt.transportTestHooks.group.Join()\n\t}\n}\n\nfunc (t *Transport) now() time.Time {\n\tif t != nil && t.transportTestHooks != nil {\n\t\treturn t.transportTestHooks.group.Now()\n\t}\n\treturn time.Now()\n}\n\nfunc (t *Transport) timeSince(when time.Time) time.Duration {\n\tif t != nil && t.transportTestHooks != nil {\n\t\treturn t.now().Sub(when)\n\t}\n\treturn time.Since(when)\n}\n\n// newTimer creates a new time.Timer, or a synthetic timer in tests.\nfunc (t *Transport) newTimer(d time.Duration) timer {\n\tif t.transportTestHooks != nil {\n\t\treturn t.transportTestHooks.group.NewTimer(d)\n\t}\n\treturn timeTimer{time.NewTimer(d)}\n}\n\n// afterFunc creates a new time.AfterFunc timer, or a synthetic timer in tests.\nfunc (t *Transport) afterFunc(d time.Duration, f func()) timer {\n\tif t.transportTestHooks != nil {\n\t\treturn t.transportTestHooks.group.AfterFunc(d, f)\n\t}\n\treturn timeTimer{time.AfterFunc(d, f)}\n}\n\nfunc (t *Transport) contextWithTimeout(ctx context.Context, d time.Duration) (context.Context, context.CancelFunc) {\n\tif t.transportTestHooks != nil {\n\t\treturn t.transportTestHooks.group.ContextWithTimeout(ctx, d)\n\t}\n\treturn context.WithTimeout(ctx, d)\n}\n\nfunc (t *Transport) maxHeaderListSize() uint32 {\n\tn := int64(t.MaxHeaderListSize)\n\tif t.t1 != nil && t.t1.MaxResponseHeaderBytes != 0 {\n\t\tn = t.t1.MaxResponseHeaderBytes\n\t\tif n > 0 {\n\t\t\tn = adjustHTTP1MaxHeaderSize(n)\n\t\t}\n\t}\n\tif n <= 0 {\n\t\treturn 10 << 20\n\t}\n\tif n >= 0xffffffff {\n\t\treturn 0\n\t}\n\treturn uint32(n)\n}\n\nfunc (t *Transport) disableCompression() bool {\n\treturn t.DisableCompression || (t.t1 != nil && t.t1.DisableCompression)\n}\n\n// ConfigureTransport configures a net/http HTTP/1 Transport to use HTTP/2.\n// It returns an error if t1 has already been HTTP/2-enabled.\n//\n// Use ConfigureTransports instead to configure the HTTP/2 Transport.\nfunc ConfigureTransport(t1 *http.Transport) error {\n\t_, err := ConfigureTransports(t1)\n\treturn err\n}\n\n// ConfigureTransports configures a net/http HTTP/1 Transport to use HTTP/2.\n// It returns a new HTTP/2 Transport for further configuration.\n// It returns an error if t1 has already been HTTP/2-enabled.\nfunc ConfigureTransports(t1 *http.Transport) (*Transport, error) {\n\treturn configureTransports(t1)\n}\n\nfunc configureTransports(t1 *http.Transport) (*Transport, error) {\n\tconnPool := new(clientConnPool)\n\tt2 := &Transport{\n\t\tConnPool: noDialClientConnPool{connPool},\n\t\tt1:       t1,\n\t}\n\tconnPool.t = t2\n\tif err := registerHTTPSProtocol(t1, noDialH2RoundTripper{t2}); err != nil {\n\t\treturn nil, err\n\t}\n\tif t1.TLSClientConfig == nil {\n\t\tt1.TLSClientConfig = new(tls.Config)\n\t}\n\tif !strSliceContains(t1.TLSClientConfig.NextProtos, \"h2\") {\n\t\tt1.TLSClientConfig.NextProtos = append([]string{\"h2\"}, t1.TLSClientConfig.NextProtos...)\n\t}\n\tif !strSliceContains(t1.TLSClientConfig.NextProtos, \"http/1.1\") {\n\t\tt1.TLSClientConfig.NextProtos = append(t1.TLSClientConfig.NextProtos, \"http/1.1\")\n\t}\n\tupgradeFn := func(scheme, authority string, c net.Conn) http.RoundTripper {\n\t\taddr := authorityAddr(scheme, authority)\n\t\tif used, err := connPool.addConnIfNeeded(addr, t2, c); err != nil {\n\t\t\tgo c.Close()\n\t\t\treturn erringRoundTripper{err}\n\t\t} else if !used {\n\t\t\t// Turns out we don't need this c.\n\t\t\t// For example, two goroutines made requests to the same host\n\t\t\t// at the same time, both kicking off TCP dials. (since protocol\n\t\t\t// was unknown)\n\t\t\tgo c.Close()\n\t\t}\n\t\tif scheme == \"http\" {\n\t\t\treturn (*unencryptedTransport)(t2)\n\t\t}\n\t\treturn t2\n\t}\n\tif t1.TLSNextProto == nil {\n\t\tt1.TLSNextProto = make(map[string]func(string, *tls.Conn) http.RoundTripper)\n\t}\n\tt1.TLSNextProto[NextProtoTLS] = func(authority string, c *tls.Conn) http.RoundTripper {\n\t\treturn upgradeFn(\"https\", authority, c)\n\t}\n\t// The \"unencrypted_http2\" TLSNextProto key is used to pass off non-TLS HTTP/2 conns.\n\tt1.TLSNextProto[nextProtoUnencryptedHTTP2] = func(authority string, c *tls.Conn) http.RoundTripper {\n\t\tnc, err := unencryptedNetConnFromTLSConn(c)\n\t\tif err != nil {\n\t\t\tgo c.Close()\n\t\t\treturn erringRoundTripper{err}\n\t\t}\n\t\treturn upgradeFn(\"http\", authority, nc)\n\t}\n\treturn t2, nil\n}\n\n// unencryptedTransport is a Transport with a RoundTrip method that\n// always permits http:// URLs.\ntype unencryptedTransport Transport\n\nfunc (t *unencryptedTransport) RoundTrip(req *http.Request) (*http.Response, error) {\n\treturn (*Transport)(t).RoundTripOpt(req, RoundTripOpt{allowHTTP: true})\n}\n\nfunc (t *Transport) connPool() ClientConnPool {\n\tt.connPoolOnce.Do(t.initConnPool)\n\treturn t.connPoolOrDef\n}\n\nfunc (t *Transport) initConnPool() {\n\tif t.ConnPool != nil {\n\t\tt.connPoolOrDef = t.ConnPool\n\t} else {\n\t\tt.connPoolOrDef = &clientConnPool{t: t}\n\t}\n}\n\n// ClientConn is the state of a single HTTP/2 client connection to an\n// HTTP/2 server.\ntype ClientConn struct {\n\tt             *Transport\n\ttconn         net.Conn             // usually *tls.Conn, except specialized impls\n\ttlsState      *tls.ConnectionState // nil only for specialized impls\n\tatomicReused  uint32               // whether conn is being reused; atomic\n\tsingleUse     bool                 // whether being used for a single http.Request\n\tgetConnCalled bool                 // used by clientConnPool\n\n\t// readLoop goroutine fields:\n\treaderDone chan struct{} // closed on error\n\treaderErr  error         // set before readerDone is closed\n\n\tidleTimeout time.Duration // or 0 for never\n\tidleTimer   timer\n\n\tmu               sync.Mutex // guards following\n\tcond             *sync.Cond // hold mu; broadcast on flow/closed changes\n\tflow             outflow    // our conn-level flow control quota (cs.outflow is per stream)\n\tinflow           inflow     // peer's conn-level flow control\n\tdoNotReuse       bool       // whether conn is marked to not be reused for any future requests\n\tclosing          bool\n\tclosed           bool\n\tclosedOnIdle     bool                     // true if conn was closed for idleness\n\tseenSettings     bool                     // true if we've seen a settings frame, false otherwise\n\tseenSettingsChan chan struct{}            // closed when seenSettings is true or frame reading fails\n\twantSettingsAck  bool                     // we sent a SETTINGS frame and haven't heard back\n\tgoAway           *GoAwayFrame             // if non-nil, the GoAwayFrame we received\n\tgoAwayDebug      string                   // goAway frame's debug data, retained as a string\n\tstreams          map[uint32]*clientStream // client-initiated\n\tstreamsReserved  int                      // incr by ReserveNewRequest; decr on RoundTrip\n\tnextStreamID     uint32\n\tpendingRequests  int                       // requests blocked and waiting to be sent because len(streams) == maxConcurrentStreams\n\tpings            map[[8]byte]chan struct{} // in flight ping data to notification channel\n\tbr               *bufio.Reader\n\tlastActive       time.Time\n\tlastIdle         time.Time // time last idle\n\t// Settings from peer: (also guarded by wmu)\n\tmaxFrameSize                uint32\n\tmaxConcurrentStreams        uint32\n\tpeerMaxHeaderListSize       uint64\n\tpeerMaxHeaderTableSize      uint32\n\tinitialWindowSize           uint32\n\tinitialStreamRecvWindowSize int32\n\treadIdleTimeout             time.Duration\n\tpingTimeout                 time.Duration\n\textendedConnectAllowed      bool\n\n\t// rstStreamPingsBlocked works around an unfortunate gRPC behavior.\n\t// gRPC strictly limits the number of PING frames that it will receive.\n\t// The default is two pings per two hours, but the limit resets every time\n\t// the gRPC endpoint sends a HEADERS or DATA frame. See golang/go#70575.\n\t//\n\t// rstStreamPingsBlocked is set after receiving a response to a PING frame\n\t// bundled with an RST_STREAM (see pendingResets below), and cleared after\n\t// receiving a HEADERS or DATA frame.\n\trstStreamPingsBlocked bool\n\n\t// pendingResets is the number of RST_STREAM frames we have sent to the peer,\n\t// without confirming that the peer has received them. When we send a RST_STREAM,\n\t// we bundle it with a PING frame, unless a PING is already in flight. We count\n\t// the reset stream against the connection's concurrency limit until we get\n\t// a PING response. This limits the number of requests we'll try to send to a\n\t// completely unresponsive connection.\n\tpendingResets int\n\n\t// reqHeaderMu is a 1-element semaphore channel controlling access to sending new requests.\n\t// Write to reqHeaderMu to lock it, read from it to unlock.\n\t// Lock reqmu BEFORE mu or wmu.\n\treqHeaderMu chan struct{}\n\n\t// wmu is held while writing.\n\t// Acquire BEFORE mu when holding both, to avoid blocking mu on network writes.\n\t// Only acquire both at the same time when changing peer settings.\n\twmu  sync.Mutex\n\tbw   *bufio.Writer\n\tfr   *Framer\n\twerr error        // first write error that has occurred\n\thbuf bytes.Buffer // HPACK encoder writes into this\n\thenc *hpack.Encoder\n}\n\n// clientStream is the state for a single HTTP/2 stream. One of these\n// is created for each Transport.RoundTrip call.\ntype clientStream struct {\n\tcc *ClientConn\n\n\t// Fields of Request that we may access even after the response body is closed.\n\tctx       context.Context\n\treqCancel <-chan struct{}\n\n\ttrace         *httptrace.ClientTrace // or nil\n\tID            uint32\n\tbufPipe       pipe // buffered pipe with the flow-controlled response payload\n\trequestedGzip bool\n\tisHead        bool\n\n\tabortOnce sync.Once\n\tabort     chan struct{} // closed to signal stream should end immediately\n\tabortErr  error         // set if abort is closed\n\n\tpeerClosed chan struct{} // closed when the peer sends an END_STREAM flag\n\tdonec      chan struct{} // closed after the stream is in the closed state\n\ton100      chan struct{} // buffered; written to if a 100 is received\n\n\trespHeaderRecv chan struct{}  // closed when headers are received\n\tres            *http.Response // set if respHeaderRecv is closed\n\n\tflow        outflow // guarded by cc.mu\n\tinflow      inflow  // guarded by cc.mu\n\tbytesRemain int64   // -1 means unknown; owned by transportResponseBody.Read\n\treadErr     error   // sticky read error; owned by transportResponseBody.Read\n\n\treqBody              io.ReadCloser\n\treqBodyContentLength int64         // -1 means unknown\n\treqBodyClosed        chan struct{} // guarded by cc.mu; non-nil on Close, closed when done\n\n\t// owned by writeRequest:\n\tsentEndStream bool // sent an END_STREAM flag to the peer\n\tsentHeaders   bool\n\n\t// owned by clientConnReadLoop:\n\tfirstByte       bool  // got the first response byte\n\tpastHeaders     bool  // got first MetaHeadersFrame (actual headers)\n\tpastTrailers    bool  // got optional second MetaHeadersFrame (trailers)\n\treadClosed      bool  // peer sent an END_STREAM flag\n\treadAborted     bool  // read loop reset the stream\n\ttotalHeaderSize int64 // total size of 1xx headers seen\n\n\ttrailer    http.Header  // accumulated trailers\n\tresTrailer *http.Header // client's Response.Trailer\n}\n\nvar got1xxFuncForTests func(int, textproto.MIMEHeader) error\n\n// get1xxTraceFunc returns the value of request's httptrace.ClientTrace.Got1xxResponse func,\n// if any. It returns nil if not set or if the Go version is too old.\nfunc (cs *clientStream) get1xxTraceFunc() func(int, textproto.MIMEHeader) error {\n\tif fn := got1xxFuncForTests; fn != nil {\n\t\treturn fn\n\t}\n\treturn traceGot1xxResponseFunc(cs.trace)\n}\n\nfunc (cs *clientStream) abortStream(err error) {\n\tcs.cc.mu.Lock()\n\tdefer cs.cc.mu.Unlock()\n\tcs.abortStreamLocked(err)\n}\n\nfunc (cs *clientStream) abortStreamLocked(err error) {\n\tcs.abortOnce.Do(func() {\n\t\tcs.abortErr = err\n\t\tclose(cs.abort)\n\t})\n\tif cs.reqBody != nil {\n\t\tcs.closeReqBodyLocked()\n\t}\n\t// TODO(dneil): Clean up tests where cs.cc.cond is nil.\n\tif cs.cc.cond != nil {\n\t\t// Wake up writeRequestBody if it is waiting on flow control.\n\t\tcs.cc.cond.Broadcast()\n\t}\n}\n\nfunc (cs *clientStream) abortRequestBodyWrite() {\n\tcc := cs.cc\n\tcc.mu.Lock()\n\tdefer cc.mu.Unlock()\n\tif cs.reqBody != nil && cs.reqBodyClosed == nil {\n\t\tcs.closeReqBodyLocked()\n\t\tcc.cond.Broadcast()\n\t}\n}\n\nfunc (cs *clientStream) closeReqBodyLocked() {\n\tif cs.reqBodyClosed != nil {\n\t\treturn\n\t}\n\tcs.reqBodyClosed = make(chan struct{})\n\treqBodyClosed := cs.reqBodyClosed\n\tgo func() {\n\t\tcs.cc.t.markNewGoroutine()\n\t\tcs.reqBody.Close()\n\t\tclose(reqBodyClosed)\n\t}()\n}\n\ntype stickyErrWriter struct {\n\tgroup   synctestGroupInterface\n\tconn    net.Conn\n\ttimeout time.Duration\n\terr     *error\n}\n\nfunc (sew stickyErrWriter) Write(p []byte) (n int, err error) {\n\tif *sew.err != nil {\n\t\treturn 0, *sew.err\n\t}\n\tn, err = writeWithByteTimeout(sew.group, sew.conn, sew.timeout, p)\n\t*sew.err = err\n\treturn n, err\n}\n\n// noCachedConnError is the concrete type of ErrNoCachedConn, which\n// needs to be detected by net/http regardless of whether it's its\n// bundled version (in h2_bundle.go with a rewritten type name) or\n// from a user's x/net/http2. As such, as it has a unique method name\n// (IsHTTP2NoCachedConnError) that net/http sniffs for via func\n// isNoCachedConnError.\ntype noCachedConnError struct{}\n\nfunc (noCachedConnError) IsHTTP2NoCachedConnError() {}\nfunc (noCachedConnError) Error() string             { return \"http2: no cached connection was available\" }\n\n// isNoCachedConnError reports whether err is of type noCachedConnError\n// or its equivalent renamed type in net/http2's h2_bundle.go. Both types\n// may coexist in the same running program.\nfunc isNoCachedConnError(err error) bool {\n\t_, ok := err.(interface{ IsHTTP2NoCachedConnError() })\n\treturn ok\n}\n\nvar ErrNoCachedConn error = noCachedConnError{}\n\n// RoundTripOpt are options for the Transport.RoundTripOpt method.\ntype RoundTripOpt struct {\n\t// OnlyCachedConn controls whether RoundTripOpt may\n\t// create a new TCP connection. If set true and\n\t// no cached connection is available, RoundTripOpt\n\t// will return ErrNoCachedConn.\n\tOnlyCachedConn bool\n\n\tallowHTTP bool // allow http:// URLs\n}\n\nfunc (t *Transport) RoundTrip(req *http.Request) (*http.Response, error) {\n\treturn t.RoundTripOpt(req, RoundTripOpt{})\n}\n\n// authorityAddr returns a given authority (a host/IP, or host:port / ip:port)\n// and returns a host:port. The port 443 is added if needed.\nfunc authorityAddr(scheme string, authority string) (addr string) {\n\thost, port, err := net.SplitHostPort(authority)\n\tif err != nil { // authority didn't have a port\n\t\thost = authority\n\t\tport = \"\"\n\t}\n\tif port == \"\" { // authority's port was empty\n\t\tport = \"443\"\n\t\tif scheme == \"http\" {\n\t\t\tport = \"80\"\n\t\t}\n\t}\n\tif a, err := idna.ToASCII(host); err == nil {\n\t\thost = a\n\t}\n\t// IPv6 address literal, without a port:\n\tif strings.HasPrefix(host, \"[\") && strings.HasSuffix(host, \"]\") {\n\t\treturn host + \":\" + port\n\t}\n\treturn net.JoinHostPort(host, port)\n}\n\n// RoundTripOpt is like RoundTrip, but takes options.\nfunc (t *Transport) RoundTripOpt(req *http.Request, opt RoundTripOpt) (*http.Response, error) {\n\tswitch req.URL.Scheme {\n\tcase \"https\":\n\t\t// Always okay.\n\tcase \"http\":\n\t\tif !t.AllowHTTP && !opt.allowHTTP {\n\t\t\treturn nil, errors.New(\"http2: unencrypted HTTP/2 not enabled\")\n\t\t}\n\tdefault:\n\t\treturn nil, errors.New(\"http2: unsupported scheme\")\n\t}\n\n\taddr := authorityAddr(req.URL.Scheme, req.URL.Host)\n\tfor retry := 0; ; retry++ {\n\t\tcc, err := t.connPool().GetClientConn(req, addr)\n\t\tif err != nil {\n\t\t\tt.vlogf(\"http2: Transport failed to get client conn for %s: %v\", addr, err)\n\t\t\treturn nil, err\n\t\t}\n\t\treused := !atomic.CompareAndSwapUint32(&cc.atomicReused, 0, 1)\n\t\ttraceGotConn(req, cc, reused)\n\t\tres, err := cc.RoundTrip(req)\n\t\tif err != nil && retry <= 6 {\n\t\t\troundTripErr := err\n\t\t\tif req, err = shouldRetryRequest(req, err); err == nil {\n\t\t\t\t// After the first retry, do exponential backoff with 10% jitter.\n\t\t\t\tif retry == 0 {\n\t\t\t\t\tt.vlogf(\"RoundTrip retrying after failure: %v\", roundTripErr)\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tbackoff := float64(uint(1) << (uint(retry) - 1))\n\t\t\t\tbackoff += backoff * (0.1 * mathrand.Float64())\n\t\t\t\td := time.Second * time.Duration(backoff)\n\t\t\t\ttm := t.newTimer(d)\n\t\t\t\tselect {\n\t\t\t\tcase <-tm.C():\n\t\t\t\t\tt.vlogf(\"RoundTrip retrying after failure: %v\", roundTripErr)\n\t\t\t\t\tcontinue\n\t\t\t\tcase <-req.Context().Done():\n\t\t\t\t\ttm.Stop()\n\t\t\t\t\terr = req.Context().Err()\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif err == errClientConnNotEstablished {\n\t\t\t// This ClientConn was created recently,\n\t\t\t// this is the first request to use it,\n\t\t\t// and the connection is closed and not usable.\n\t\t\t//\n\t\t\t// In this state, cc.idleTimer will remove the conn from the pool\n\t\t\t// when it fires. Stop the timer and remove it here so future requests\n\t\t\t// won't try to use this connection.\n\t\t\t//\n\t\t\t// If the timer has already fired and we're racing it, the redundant\n\t\t\t// call to MarkDead is harmless.\n\t\t\tif cc.idleTimer != nil {\n\t\t\t\tcc.idleTimer.Stop()\n\t\t\t}\n\t\t\tt.connPool().MarkDead(cc)\n\t\t}\n\t\tif err != nil {\n\t\t\tt.vlogf(\"RoundTrip failure: %v\", err)\n\t\t\treturn nil, err\n\t\t}\n\t\treturn res, nil\n\t}\n}\n\n// CloseIdleConnections closes any connections which were previously\n// connected from previous requests but are now sitting idle.\n// It does not interrupt any connections currently in use.\nfunc (t *Transport) CloseIdleConnections() {\n\tif cp, ok := t.connPool().(clientConnPoolIdleCloser); ok {\n\t\tcp.closeIdleConnections()\n\t}\n}\n\nvar (\n\terrClientConnClosed         = errors.New(\"http2: client conn is closed\")\n\terrClientConnUnusable       = errors.New(\"http2: client conn not usable\")\n\terrClientConnNotEstablished = errors.New(\"http2: client conn could not be established\")\n\terrClientConnGotGoAway      = errors.New(\"http2: Transport received Server's graceful shutdown GOAWAY\")\n)\n\n// shouldRetryRequest is called by RoundTrip when a request fails to get\n// response headers. It is always called with a non-nil error.\n// It returns either a request to retry (either the same request, or a\n// modified clone), or an error if the request can't be replayed.\nfunc shouldRetryRequest(req *http.Request, err error) (*http.Request, error) {\n\tif !canRetryError(err) {\n\t\treturn nil, err\n\t}\n\t// If the Body is nil (or http.NoBody), it's safe to reuse\n\t// this request and its Body.\n\tif req.Body == nil || req.Body == http.NoBody {\n\t\treturn req, nil\n\t}\n\n\t// If the request body can be reset back to its original\n\t// state via the optional req.GetBody, do that.\n\tif req.GetBody != nil {\n\t\tbody, err := req.GetBody()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tnewReq := *req\n\t\tnewReq.Body = body\n\t\treturn &newReq, nil\n\t}\n\n\t// The Request.Body can't reset back to the beginning, but we\n\t// don't seem to have started to read from it yet, so reuse\n\t// the request directly.\n\tif err == errClientConnUnusable {\n\t\treturn req, nil\n\t}\n\n\treturn nil, fmt.Errorf(\"http2: Transport: cannot retry err [%v] after Request.Body was written; define Request.GetBody to avoid this error\", err)\n}\n\nfunc canRetryError(err error) bool {\n\tif err == errClientConnUnusable || err == errClientConnGotGoAway {\n\t\treturn true\n\t}\n\tif se, ok := err.(StreamError); ok {\n\t\tif se.Code == ErrCodeProtocol && se.Cause == errFromPeer {\n\t\t\t// See golang/go#47635, golang/go#42777\n\t\t\treturn true\n\t\t}\n\t\treturn se.Code == ErrCodeRefusedStream\n\t}\n\treturn false\n}\n\nfunc (t *Transport) dialClientConn(ctx context.Context, addr string, singleUse bool) (*ClientConn, error) {\n\tif t.transportTestHooks != nil {\n\t\treturn t.newClientConn(nil, singleUse)\n\t}\n\thost, _, err := net.SplitHostPort(addr)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\ttconn, err := t.dialTLS(ctx, \"tcp\", addr, t.newTLSConfig(host))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn t.newClientConn(tconn, singleUse)\n}\n\nfunc (t *Transport) newTLSConfig(host string) *tls.Config {\n\tcfg := new(tls.Config)\n\tif t.TLSClientConfig != nil {\n\t\t*cfg = *t.TLSClientConfig.Clone()\n\t}\n\tif !strSliceContains(cfg.NextProtos, NextProtoTLS) {\n\t\tcfg.NextProtos = append([]string{NextProtoTLS}, cfg.NextProtos...)\n\t}\n\tif cfg.ServerName == \"\" {\n\t\tcfg.ServerName = host\n\t}\n\treturn cfg\n}\n\nfunc (t *Transport) dialTLS(ctx context.Context, network, addr string, tlsCfg *tls.Config) (net.Conn, error) {\n\tif t.DialTLSContext != nil {\n\t\treturn t.DialTLSContext(ctx, network, addr, tlsCfg)\n\t} else if t.DialTLS != nil {\n\t\treturn t.DialTLS(network, addr, tlsCfg)\n\t}\n\n\ttlsCn, err := t.dialTLSWithContext(ctx, network, addr, tlsCfg)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tstate := tlsCn.ConnectionState()\n\tif p := state.NegotiatedProtocol; p != NextProtoTLS {\n\t\treturn nil, fmt.Errorf(\"http2: unexpected ALPN protocol %q; want %q\", p, NextProtoTLS)\n\t}\n\tif !state.NegotiatedProtocolIsMutual {\n\t\treturn nil, errors.New(\"http2: could not negotiate protocol mutually\")\n\t}\n\treturn tlsCn, nil\n}\n\n// disableKeepAlives reports whether connections should be closed as\n// soon as possible after handling the first request.\nfunc (t *Transport) disableKeepAlives() bool {\n\treturn t.t1 != nil && t.t1.DisableKeepAlives\n}\n\nfunc (t *Transport) expectContinueTimeout() time.Duration {\n\tif t.t1 == nil {\n\t\treturn 0\n\t}\n\treturn t.t1.ExpectContinueTimeout\n}\n\nfunc (t *Transport) NewClientConn(c net.Conn) (*ClientConn, error) {\n\treturn t.newClientConn(c, t.disableKeepAlives())\n}\n\nfunc (t *Transport) newClientConn(c net.Conn, singleUse bool) (*ClientConn, error) {\n\tconf := configFromTransport(t)\n\tcc := &ClientConn{\n\t\tt:                           t,\n\t\ttconn:                       c,\n\t\treaderDone:                  make(chan struct{}),\n\t\tnextStreamID:                1,\n\t\tmaxFrameSize:                16 << 10, // spec default\n\t\tinitialWindowSize:           65535,    // spec default\n\t\tinitialStreamRecvWindowSize: conf.MaxUploadBufferPerStream,\n\t\tmaxConcurrentStreams:        initialMaxConcurrentStreams, // \"infinite\", per spec. Use a smaller value until we have received server settings.\n\t\tpeerMaxHeaderListSize:       0xffffffffffffffff,          // \"infinite\", per spec. Use 2^64-1 instead.\n\t\tstreams:                     make(map[uint32]*clientStream),\n\t\tsingleUse:                   singleUse,\n\t\tseenSettingsChan:            make(chan struct{}),\n\t\twantSettingsAck:             true,\n\t\treadIdleTimeout:             conf.SendPingTimeout,\n\t\tpingTimeout:                 conf.PingTimeout,\n\t\tpings:                       make(map[[8]byte]chan struct{}),\n\t\treqHeaderMu:                 make(chan struct{}, 1),\n\t\tlastActive:                  t.now(),\n\t}\n\tvar group synctestGroupInterface\n\tif t.transportTestHooks != nil {\n\t\tt.markNewGoroutine()\n\t\tt.transportTestHooks.newclientconn(cc)\n\t\tc = cc.tconn\n\t\tgroup = t.group\n\t}\n\tif VerboseLogs {\n\t\tt.vlogf(\"http2: Transport creating client conn %p to %v\", cc, c.RemoteAddr())\n\t}\n\n\tcc.cond = sync.NewCond(&cc.mu)\n\tcc.flow.add(int32(initialWindowSize))\n\n\t// TODO: adjust this writer size to account for frame size +\n\t// MTU + crypto/tls record padding.\n\tcc.bw = bufio.NewWriter(stickyErrWriter{\n\t\tgroup:   group,\n\t\tconn:    c,\n\t\ttimeout: conf.WriteByteTimeout,\n\t\terr:     &cc.werr,\n\t})\n\tcc.br = bufio.NewReader(c)\n\tcc.fr = NewFramer(cc.bw, cc.br)\n\tcc.fr.SetMaxReadFrameSize(conf.MaxReadFrameSize)\n\tif t.CountError != nil {\n\t\tcc.fr.countError = t.CountError\n\t}\n\tmaxHeaderTableSize := conf.MaxDecoderHeaderTableSize\n\tcc.fr.ReadMetaHeaders = hpack.NewDecoder(maxHeaderTableSize, nil)\n\tcc.fr.MaxHeaderListSize = t.maxHeaderListSize()\n\n\tcc.henc = hpack.NewEncoder(&cc.hbuf)\n\tcc.henc.SetMaxDynamicTableSizeLimit(conf.MaxEncoderHeaderTableSize)\n\tcc.peerMaxHeaderTableSize = initialHeaderTableSize\n\n\tif cs, ok := c.(connectionStater); ok {\n\t\tstate := cs.ConnectionState()\n\t\tcc.tlsState = &state\n\t}\n\n\tinitialSettings := []Setting{\n\t\t{ID: SettingEnablePush, Val: 0},\n\t\t{ID: SettingInitialWindowSize, Val: uint32(cc.initialStreamRecvWindowSize)},\n\t}\n\tinitialSettings = append(initialSettings, Setting{ID: SettingMaxFrameSize, Val: conf.MaxReadFrameSize})\n\tif max := t.maxHeaderListSize(); max != 0 {\n\t\tinitialSettings = append(initialSettings, Setting{ID: SettingMaxHeaderListSize, Val: max})\n\t}\n\tif maxHeaderTableSize != initialHeaderTableSize {\n\t\tinitialSettings = append(initialSettings, Setting{ID: SettingHeaderTableSize, Val: maxHeaderTableSize})\n\t}\n\n\tcc.bw.Write(clientPreface)\n\tcc.fr.WriteSettings(initialSettings...)\n\tcc.fr.WriteWindowUpdate(0, uint32(conf.MaxUploadBufferPerConnection))\n\tcc.inflow.init(conf.MaxUploadBufferPerConnection + initialWindowSize)\n\tcc.bw.Flush()\n\tif cc.werr != nil {\n\t\tcc.Close()\n\t\treturn nil, cc.werr\n\t}\n\n\t// Start the idle timer after the connection is fully initialized.\n\tif d := t.idleConnTimeout(); d != 0 {\n\t\tcc.idleTimeout = d\n\t\tcc.idleTimer = t.afterFunc(d, cc.onIdleTimeout)\n\t}\n\n\tgo cc.readLoop()\n\treturn cc, nil\n}\n\nfunc (cc *ClientConn) healthCheck() {\n\tpingTimeout := cc.pingTimeout\n\t// We don't need to periodically ping in the health check, because the readLoop of ClientConn will\n\t// trigger the healthCheck again if there is no frame received.\n\tctx, cancel := cc.t.contextWithTimeout(context.Background(), pingTimeout)\n\tdefer cancel()\n\tcc.vlogf(\"http2: Transport sending health check\")\n\terr := cc.Ping(ctx)\n\tif err != nil {\n\t\tcc.vlogf(\"http2: Transport health check failure: %v\", err)\n\t\tcc.closeForLostPing()\n\t} else {\n\t\tcc.vlogf(\"http2: Transport health check success\")\n\t}\n}\n\n// SetDoNotReuse marks cc as not reusable for future HTTP requests.\nfunc (cc *ClientConn) SetDoNotReuse() {\n\tcc.mu.Lock()\n\tdefer cc.mu.Unlock()\n\tcc.doNotReuse = true\n}\n\nfunc (cc *ClientConn) setGoAway(f *GoAwayFrame) {\n\tcc.mu.Lock()\n\tdefer cc.mu.Unlock()\n\n\told := cc.goAway\n\tcc.goAway = f\n\n\t// Merge the previous and current GoAway error frames.\n\tif cc.goAwayDebug == \"\" {\n\t\tcc.goAwayDebug = string(f.DebugData())\n\t}\n\tif old != nil && old.ErrCode != ErrCodeNo {\n\t\tcc.goAway.ErrCode = old.ErrCode\n\t}\n\tlast := f.LastStreamID\n\tfor streamID, cs := range cc.streams {\n\t\tif streamID <= last {\n\t\t\t// The server's GOAWAY indicates that it received this stream.\n\t\t\t// It will either finish processing it, or close the connection\n\t\t\t// without doing so. Either way, leave the stream alone for now.\n\t\t\tcontinue\n\t\t}\n\t\tif streamID == 1 && cc.goAway.ErrCode != ErrCodeNo {\n\t\t\t// Don't retry the first stream on a connection if we get a non-NO error.\n\t\t\t// If the server is sending an error on a new connection,\n\t\t\t// retrying the request on a new one probably isn't going to work.\n\t\t\tcs.abortStreamLocked(fmt.Errorf(\"http2: Transport received GOAWAY from server ErrCode:%v\", cc.goAway.ErrCode))\n\t\t} else {\n\t\t\t// Aborting the stream with errClentConnGotGoAway indicates that\n\t\t\t// the request should be retried on a new connection.\n\t\t\tcs.abortStreamLocked(errClientConnGotGoAway)\n\t\t}\n\t}\n}\n\n// CanTakeNewRequest reports whether the connection can take a new request,\n// meaning it has not been closed or received or sent a GOAWAY.\n//\n// If the caller is going to immediately make a new request on this\n// connection, use ReserveNewRequest instead.\nfunc (cc *ClientConn) CanTakeNewRequest() bool {\n\tcc.mu.Lock()\n\tdefer cc.mu.Unlock()\n\treturn cc.canTakeNewRequestLocked()\n}\n\n// ReserveNewRequest is like CanTakeNewRequest but also reserves a\n// concurrent stream in cc. The reservation is decremented on the\n// next call to RoundTrip.\nfunc (cc *ClientConn) ReserveNewRequest() bool {\n\tcc.mu.Lock()\n\tdefer cc.mu.Unlock()\n\tif st := cc.idleStateLocked(); !st.canTakeNewRequest {\n\t\treturn false\n\t}\n\tcc.streamsReserved++\n\treturn true\n}\n\n// ClientConnState describes the state of a ClientConn.\ntype ClientConnState struct {\n\t// Closed is whether the connection is closed.\n\tClosed bool\n\n\t// Closing is whether the connection is in the process of\n\t// closing. It may be closing due to shutdown, being a\n\t// single-use connection, being marked as DoNotReuse, or\n\t// having received a GOAWAY frame.\n\tClosing bool\n\n\t// StreamsActive is how many streams are active.\n\tStreamsActive int\n\n\t// StreamsReserved is how many streams have been reserved via\n\t// ClientConn.ReserveNewRequest.\n\tStreamsReserved int\n\n\t// StreamsPending is how many requests have been sent in excess\n\t// of the peer's advertised MaxConcurrentStreams setting and\n\t// are waiting for other streams to complete.\n\tStreamsPending int\n\n\t// MaxConcurrentStreams is how many concurrent streams the\n\t// peer advertised as acceptable. Zero means no SETTINGS\n\t// frame has been received yet.\n\tMaxConcurrentStreams uint32\n\n\t// LastIdle, if non-zero, is when the connection last\n\t// transitioned to idle state.\n\tLastIdle time.Time\n}\n\n// State returns a snapshot of cc's state.\nfunc (cc *ClientConn) State() ClientConnState {\n\tcc.wmu.Lock()\n\tmaxConcurrent := cc.maxConcurrentStreams\n\tif !cc.seenSettings {\n\t\tmaxConcurrent = 0\n\t}\n\tcc.wmu.Unlock()\n\n\tcc.mu.Lock()\n\tdefer cc.mu.Unlock()\n\treturn ClientConnState{\n\t\tClosed:               cc.closed,\n\t\tClosing:              cc.closing || cc.singleUse || cc.doNotReuse || cc.goAway != nil,\n\t\tStreamsActive:        len(cc.streams) + cc.pendingResets,\n\t\tStreamsReserved:      cc.streamsReserved,\n\t\tStreamsPending:       cc.pendingRequests,\n\t\tLastIdle:             cc.lastIdle,\n\t\tMaxConcurrentStreams: maxConcurrent,\n\t}\n}\n\n// clientConnIdleState describes the suitability of a client\n// connection to initiate a new RoundTrip request.\ntype clientConnIdleState struct {\n\tcanTakeNewRequest bool\n}\n\nfunc (cc *ClientConn) idleState() clientConnIdleState {\n\tcc.mu.Lock()\n\tdefer cc.mu.Unlock()\n\treturn cc.idleStateLocked()\n}\n\nfunc (cc *ClientConn) idleStateLocked() (st clientConnIdleState) {\n\tif cc.singleUse && cc.nextStreamID > 1 {\n\t\treturn\n\t}\n\tvar maxConcurrentOkay bool\n\tif cc.t.StrictMaxConcurrentStreams {\n\t\t// We'll tell the caller we can take a new request to\n\t\t// prevent the caller from dialing a new TCP\n\t\t// connection, but then we'll block later before\n\t\t// writing it.\n\t\tmaxConcurrentOkay = true\n\t} else {\n\t\t// We can take a new request if the total of\n\t\t//   - active streams;\n\t\t//   - reservation slots for new streams; and\n\t\t//   - streams for which we have sent a RST_STREAM and a PING,\n\t\t//     but received no subsequent frame\n\t\t// is less than the concurrency limit.\n\t\tmaxConcurrentOkay = cc.currentRequestCountLocked() < int(cc.maxConcurrentStreams)\n\t}\n\n\tst.canTakeNewRequest = cc.goAway == nil && !cc.closed && !cc.closing && maxConcurrentOkay &&\n\t\t!cc.doNotReuse &&\n\t\tint64(cc.nextStreamID)+2*int64(cc.pendingRequests) < math.MaxInt32 &&\n\t\t!cc.tooIdleLocked()\n\n\t// If this connection has never been used for a request and is closed,\n\t// then let it take a request (which will fail).\n\t// If the conn was closed for idleness, we're racing the idle timer;\n\t// don't try to use the conn. (Issue #70515.)\n\t//\n\t// This avoids a situation where an error early in a connection's lifetime\n\t// goes unreported.\n\tif cc.nextStreamID == 1 && cc.streamsReserved == 0 && cc.closed && !cc.closedOnIdle {\n\t\tst.canTakeNewRequest = true\n\t}\n\n\treturn\n}\n\n// currentRequestCountLocked reports the number of concurrency slots currently in use,\n// including active streams, reserved slots, and reset streams waiting for acknowledgement.\nfunc (cc *ClientConn) currentRequestCountLocked() int {\n\treturn len(cc.streams) + cc.streamsReserved + cc.pendingResets\n}\n\nfunc (cc *ClientConn) canTakeNewRequestLocked() bool {\n\tst := cc.idleStateLocked()\n\treturn st.canTakeNewRequest\n}\n\n// tooIdleLocked reports whether this connection has been been sitting idle\n// for too much wall time.\nfunc (cc *ClientConn) tooIdleLocked() bool {\n\t// The Round(0) strips the monontonic clock reading so the\n\t// times are compared based on their wall time. We don't want\n\t// to reuse a connection that's been sitting idle during\n\t// VM/laptop suspend if monotonic time was also frozen.\n\treturn cc.idleTimeout != 0 && !cc.lastIdle.IsZero() && cc.t.timeSince(cc.lastIdle.Round(0)) > cc.idleTimeout\n}\n\n// onIdleTimeout is called from a time.AfterFunc goroutine. It will\n// only be called when we're idle, but because we're coming from a new\n// goroutine, there could be a new request coming in at the same time,\n// so this simply calls the synchronized closeIfIdle to shut down this\n// connection. The timer could just call closeIfIdle, but this is more\n// clear.\nfunc (cc *ClientConn) onIdleTimeout() {\n\tcc.closeIfIdle()\n}\n\nfunc (cc *ClientConn) closeConn() {\n\tt := time.AfterFunc(250*time.Millisecond, cc.forceCloseConn)\n\tdefer t.Stop()\n\tcc.tconn.Close()\n}\n\n// A tls.Conn.Close can hang for a long time if the peer is unresponsive.\n// Try to shut it down more aggressively.\nfunc (cc *ClientConn) forceCloseConn() {\n\ttc, ok := cc.tconn.(*tls.Conn)\n\tif !ok {\n\t\treturn\n\t}\n\tif nc := tc.NetConn(); nc != nil {\n\t\tnc.Close()\n\t}\n}\n\nfunc (cc *ClientConn) closeIfIdle() {\n\tcc.mu.Lock()\n\tif len(cc.streams) > 0 || cc.streamsReserved > 0 {\n\t\tcc.mu.Unlock()\n\t\treturn\n\t}\n\tcc.closed = true\n\tcc.closedOnIdle = true\n\tnextID := cc.nextStreamID\n\t// TODO: do clients send GOAWAY too? maybe? Just Close:\n\tcc.mu.Unlock()\n\n\tif VerboseLogs {\n\t\tcc.vlogf(\"http2: Transport closing idle conn %p (forSingleUse=%v, maxStream=%v)\", cc, cc.singleUse, nextID-2)\n\t}\n\tcc.closeConn()\n}\n\nfunc (cc *ClientConn) isDoNotReuseAndIdle() bool {\n\tcc.mu.Lock()\n\tdefer cc.mu.Unlock()\n\treturn cc.doNotReuse && len(cc.streams) == 0\n}\n\nvar shutdownEnterWaitStateHook = func() {}\n\n// Shutdown gracefully closes the client connection, waiting for running streams to complete.\nfunc (cc *ClientConn) Shutdown(ctx context.Context) error {\n\tif err := cc.sendGoAway(); err != nil {\n\t\treturn err\n\t}\n\t// Wait for all in-flight streams to complete or connection to close\n\tdone := make(chan struct{})\n\tcancelled := false // guarded by cc.mu\n\tgo func() {\n\t\tcc.t.markNewGoroutine()\n\t\tcc.mu.Lock()\n\t\tdefer cc.mu.Unlock()\n\t\tfor {\n\t\t\tif len(cc.streams) == 0 || cc.closed {\n\t\t\t\tcc.closed = true\n\t\t\t\tclose(done)\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif cancelled {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tcc.cond.Wait()\n\t\t}\n\t}()\n\tshutdownEnterWaitStateHook()\n\tselect {\n\tcase <-done:\n\t\tcc.closeConn()\n\t\treturn nil\n\tcase <-ctx.Done():\n\t\tcc.mu.Lock()\n\t\t// Free the goroutine above\n\t\tcancelled = true\n\t\tcc.cond.Broadcast()\n\t\tcc.mu.Unlock()\n\t\treturn ctx.Err()\n\t}\n}\n\nfunc (cc *ClientConn) sendGoAway() error {\n\tcc.mu.Lock()\n\tclosing := cc.closing\n\tcc.closing = true\n\tmaxStreamID := cc.nextStreamID\n\tcc.mu.Unlock()\n\tif closing {\n\t\t// GOAWAY sent already\n\t\treturn nil\n\t}\n\n\tcc.wmu.Lock()\n\tdefer cc.wmu.Unlock()\n\t// Send a graceful shutdown frame to server\n\tif err := cc.fr.WriteGoAway(maxStreamID, ErrCodeNo, nil); err != nil {\n\t\treturn err\n\t}\n\tif err := cc.bw.Flush(); err != nil {\n\t\treturn err\n\t}\n\t// Prevent new requests\n\treturn nil\n}\n\n// closes the client connection immediately. In-flight requests are interrupted.\n// err is sent to streams.\nfunc (cc *ClientConn) closeForError(err error) {\n\tcc.mu.Lock()\n\tcc.closed = true\n\tfor _, cs := range cc.streams {\n\t\tcs.abortStreamLocked(err)\n\t}\n\tcc.cond.Broadcast()\n\tcc.mu.Unlock()\n\tcc.closeConn()\n}\n\n// Close closes the client connection immediately.\n//\n// In-flight requests are interrupted. For a graceful shutdown, use Shutdown instead.\nfunc (cc *ClientConn) Close() error {\n\terr := errors.New(\"http2: client connection force closed via ClientConn.Close\")\n\tcc.closeForError(err)\n\treturn nil\n}\n\n// closes the client connection immediately. In-flight requests are interrupted.\nfunc (cc *ClientConn) closeForLostPing() {\n\terr := errors.New(\"http2: client connection lost\")\n\tif f := cc.t.CountError; f != nil {\n\t\tf(\"conn_close_lost_ping\")\n\t}\n\tcc.closeForError(err)\n}\n\n// errRequestCanceled is a copy of net/http's errRequestCanceled because it's not\n// exported. At least they'll be DeepEqual for h1-vs-h2 comparisons tests.\nvar errRequestCanceled = errors.New(\"net/http: request canceled\")\n\nfunc (cc *ClientConn) responseHeaderTimeout() time.Duration {\n\tif cc.t.t1 != nil {\n\t\treturn cc.t.t1.ResponseHeaderTimeout\n\t}\n\t// No way to do this (yet?) with just an http2.Transport. Probably\n\t// no need. Request.Cancel this is the new way. We only need to support\n\t// this for compatibility with the old http.Transport fields when\n\t// we're doing transparent http2.\n\treturn 0\n}\n\n// actualContentLength returns a sanitized version of\n// req.ContentLength, where 0 actually means zero (not unknown) and -1\n// means unknown.\nfunc actualContentLength(req *http.Request) int64 {\n\tif req.Body == nil || req.Body == http.NoBody {\n\t\treturn 0\n\t}\n\tif req.ContentLength != 0 {\n\t\treturn req.ContentLength\n\t}\n\treturn -1\n}\n\nfunc (cc *ClientConn) decrStreamReservations() {\n\tcc.mu.Lock()\n\tdefer cc.mu.Unlock()\n\tcc.decrStreamReservationsLocked()\n}\n\nfunc (cc *ClientConn) decrStreamReservationsLocked() {\n\tif cc.streamsReserved > 0 {\n\t\tcc.streamsReserved--\n\t}\n}\n\nfunc (cc *ClientConn) RoundTrip(req *http.Request) (*http.Response, error) {\n\treturn cc.roundTrip(req, nil)\n}\n\nfunc (cc *ClientConn) roundTrip(req *http.Request, streamf func(*clientStream)) (*http.Response, error) {\n\tctx := req.Context()\n\tcs := &clientStream{\n\t\tcc:                   cc,\n\t\tctx:                  ctx,\n\t\treqCancel:            req.Cancel,\n\t\tisHead:               req.Method == \"HEAD\",\n\t\treqBody:              req.Body,\n\t\treqBodyContentLength: actualContentLength(req),\n\t\ttrace:                httptrace.ContextClientTrace(ctx),\n\t\tpeerClosed:           make(chan struct{}),\n\t\tabort:                make(chan struct{}),\n\t\trespHeaderRecv:       make(chan struct{}),\n\t\tdonec:                make(chan struct{}),\n\t}\n\n\tcs.requestedGzip = httpcommon.IsRequestGzip(req.Method, req.Header, cc.t.disableCompression())\n\n\tgo cs.doRequest(req, streamf)\n\n\twaitDone := func() error {\n\t\tselect {\n\t\tcase <-cs.donec:\n\t\t\treturn nil\n\t\tcase <-ctx.Done():\n\t\t\treturn ctx.Err()\n\t\tcase <-cs.reqCancel:\n\t\t\treturn errRequestCanceled\n\t\t}\n\t}\n\n\thandleResponseHeaders := func() (*http.Response, error) {\n\t\tres := cs.res\n\t\tif res.StatusCode > 299 {\n\t\t\t// On error or status code 3xx, 4xx, 5xx, etc abort any\n\t\t\t// ongoing write, assuming that the server doesn't care\n\t\t\t// about our request body. If the server replied with 1xx or\n\t\t\t// 2xx, however, then assume the server DOES potentially\n\t\t\t// want our body (e.g. full-duplex streaming:\n\t\t\t// golang.org/issue/13444). If it turns out the server\n\t\t\t// doesn't, they'll RST_STREAM us soon enough. This is a\n\t\t\t// heuristic to avoid adding knobs to Transport. Hopefully\n\t\t\t// we can keep it.\n\t\t\tcs.abortRequestBodyWrite()\n\t\t}\n\t\tres.Request = req\n\t\tres.TLS = cc.tlsState\n\t\tif res.Body == noBody && actualContentLength(req) == 0 {\n\t\t\t// If there isn't a request or response body still being\n\t\t\t// written, then wait for the stream to be closed before\n\t\t\t// RoundTrip returns.\n\t\t\tif err := waitDone(); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t\treturn res, nil\n\t}\n\n\tcancelRequest := func(cs *clientStream, err error) error {\n\t\tcs.cc.mu.Lock()\n\t\tbodyClosed := cs.reqBodyClosed\n\t\tcs.cc.mu.Unlock()\n\t\t// Wait for the request body to be closed.\n\t\t//\n\t\t// If nothing closed the body before now, abortStreamLocked\n\t\t// will have started a goroutine to close it.\n\t\t//\n\t\t// Closing the body before returning avoids a race condition\n\t\t// with net/http checking its readTrackingBody to see if the\n\t\t// body was read from or closed. See golang/go#60041.\n\t\t//\n\t\t// The body is closed in a separate goroutine without the\n\t\t// connection mutex held, but dropping the mutex before waiting\n\t\t// will keep us from holding it indefinitely if the body\n\t\t// close is slow for some reason.\n\t\tif bodyClosed != nil {\n\t\t\t<-bodyClosed\n\t\t}\n\t\treturn err\n\t}\n\n\tfor {\n\t\tselect {\n\t\tcase <-cs.respHeaderRecv:\n\t\t\treturn handleResponseHeaders()\n\t\tcase <-cs.abort:\n\t\t\tselect {\n\t\t\tcase <-cs.respHeaderRecv:\n\t\t\t\t// If both cs.respHeaderRecv and cs.abort are signaling,\n\t\t\t\t// pick respHeaderRecv. The server probably wrote the\n\t\t\t\t// response and immediately reset the stream.\n\t\t\t\t// golang.org/issue/49645\n\t\t\t\treturn handleResponseHeaders()\n\t\t\tdefault:\n\t\t\t\twaitDone()\n\t\t\t\treturn nil, cs.abortErr\n\t\t\t}\n\t\tcase <-ctx.Done():\n\t\t\terr := ctx.Err()\n\t\t\tcs.abortStream(err)\n\t\t\treturn nil, cancelRequest(cs, err)\n\t\tcase <-cs.reqCancel:\n\t\t\tcs.abortStream(errRequestCanceled)\n\t\t\treturn nil, cancelRequest(cs, errRequestCanceled)\n\t\t}\n\t}\n}\n\n// doRequest runs for the duration of the request lifetime.\n//\n// It sends the request and performs post-request cleanup (closing Request.Body, etc.).\nfunc (cs *clientStream) doRequest(req *http.Request, streamf func(*clientStream)) {\n\tcs.cc.t.markNewGoroutine()\n\terr := cs.writeRequest(req, streamf)\n\tcs.cleanupWriteRequest(err)\n}\n\nvar errExtendedConnectNotSupported = errors.New(\"net/http: extended connect not supported by peer\")\n\n// writeRequest sends a request.\n//\n// It returns nil after the request is written, the response read,\n// and the request stream is half-closed by the peer.\n//\n// It returns non-nil if the request ends otherwise.\n// If the returned error is StreamError, the error Code may be used in resetting the stream.\nfunc (cs *clientStream) writeRequest(req *http.Request, streamf func(*clientStream)) (err error) {\n\tcc := cs.cc\n\tctx := cs.ctx\n\n\t// wait for setting frames to be received, a server can change this value later,\n\t// but we just wait for the first settings frame\n\tvar isExtendedConnect bool\n\tif req.Method == \"CONNECT\" && req.Header.Get(\":protocol\") != \"\" {\n\t\tisExtendedConnect = true\n\t}\n\n\t// Acquire the new-request lock by writing to reqHeaderMu.\n\t// This lock guards the critical section covering allocating a new stream ID\n\t// (requires mu) and creating the stream (requires wmu).\n\tif cc.reqHeaderMu == nil {\n\t\tpanic(\"RoundTrip on uninitialized ClientConn\") // for tests\n\t}\n\tif isExtendedConnect {\n\t\tselect {\n\t\tcase <-cs.reqCancel:\n\t\t\treturn errRequestCanceled\n\t\tcase <-ctx.Done():\n\t\t\treturn ctx.Err()\n\t\tcase <-cc.seenSettingsChan:\n\t\t\tif !cc.extendedConnectAllowed {\n\t\t\t\treturn errExtendedConnectNotSupported\n\t\t\t}\n\t\t}\n\t}\n\tselect {\n\tcase cc.reqHeaderMu <- struct{}{}:\n\tcase <-cs.reqCancel:\n\t\treturn errRequestCanceled\n\tcase <-ctx.Done():\n\t\treturn ctx.Err()\n\t}\n\n\tcc.mu.Lock()\n\tif cc.idleTimer != nil {\n\t\tcc.idleTimer.Stop()\n\t}\n\tcc.decrStreamReservationsLocked()\n\tif err := cc.awaitOpenSlotForStreamLocked(cs); err != nil {\n\t\tcc.mu.Unlock()\n\t\t<-cc.reqHeaderMu\n\t\treturn err\n\t}\n\tcc.addStreamLocked(cs) // assigns stream ID\n\tif isConnectionCloseRequest(req) {\n\t\tcc.doNotReuse = true\n\t}\n\tcc.mu.Unlock()\n\n\tif streamf != nil {\n\t\tstreamf(cs)\n\t}\n\n\tcontinueTimeout := cc.t.expectContinueTimeout()\n\tif continueTimeout != 0 {\n\t\tif !httpguts.HeaderValuesContainsToken(req.Header[\"Expect\"], \"100-continue\") {\n\t\t\tcontinueTimeout = 0\n\t\t} else {\n\t\t\tcs.on100 = make(chan struct{}, 1)\n\t\t}\n\t}\n\n\t// Past this point (where we send request headers), it is possible for\n\t// RoundTrip to return successfully. Since the RoundTrip contract permits\n\t// the caller to \"mutate or reuse\" the Request after closing the Response's Body,\n\t// we must take care when referencing the Request from here on.\n\terr = cs.encodeAndWriteHeaders(req)\n\t<-cc.reqHeaderMu\n\tif err != nil {\n\t\treturn err\n\t}\n\n\thasBody := cs.reqBodyContentLength != 0\n\tif !hasBody {\n\t\tcs.sentEndStream = true\n\t} else {\n\t\tif continueTimeout != 0 {\n\t\t\ttraceWait100Continue(cs.trace)\n\t\t\ttimer := time.NewTimer(continueTimeout)\n\t\t\tselect {\n\t\t\tcase <-timer.C:\n\t\t\t\terr = nil\n\t\t\tcase <-cs.on100:\n\t\t\t\terr = nil\n\t\t\tcase <-cs.abort:\n\t\t\t\terr = cs.abortErr\n\t\t\tcase <-ctx.Done():\n\t\t\t\terr = ctx.Err()\n\t\t\tcase <-cs.reqCancel:\n\t\t\t\terr = errRequestCanceled\n\t\t\t}\n\t\t\ttimer.Stop()\n\t\t\tif err != nil {\n\t\t\t\ttraceWroteRequest(cs.trace, err)\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\tif err = cs.writeRequestBody(req); err != nil {\n\t\t\tif err != errStopReqBodyWrite {\n\t\t\t\ttraceWroteRequest(cs.trace, err)\n\t\t\t\treturn err\n\t\t\t}\n\t\t} else {\n\t\t\tcs.sentEndStream = true\n\t\t}\n\t}\n\n\ttraceWroteRequest(cs.trace, err)\n\n\tvar respHeaderTimer <-chan time.Time\n\tvar respHeaderRecv chan struct{}\n\tif d := cc.responseHeaderTimeout(); d != 0 {\n\t\ttimer := cc.t.newTimer(d)\n\t\tdefer timer.Stop()\n\t\trespHeaderTimer = timer.C()\n\t\trespHeaderRecv = cs.respHeaderRecv\n\t}\n\t// Wait until the peer half-closes its end of the stream,\n\t// or until the request is aborted (via context, error, or otherwise),\n\t// whichever comes first.\n\tfor {\n\t\tselect {\n\t\tcase <-cs.peerClosed:\n\t\t\treturn nil\n\t\tcase <-respHeaderTimer:\n\t\t\treturn errTimeout\n\t\tcase <-respHeaderRecv:\n\t\t\trespHeaderRecv = nil\n\t\t\trespHeaderTimer = nil // keep waiting for END_STREAM\n\t\tcase <-cs.abort:\n\t\t\treturn cs.abortErr\n\t\tcase <-ctx.Done():\n\t\t\treturn ctx.Err()\n\t\tcase <-cs.reqCancel:\n\t\t\treturn errRequestCanceled\n\t\t}\n\t}\n}\n\nfunc (cs *clientStream) encodeAndWriteHeaders(req *http.Request) error {\n\tcc := cs.cc\n\tctx := cs.ctx\n\n\tcc.wmu.Lock()\n\tdefer cc.wmu.Unlock()\n\n\t// If the request was canceled while waiting for cc.mu, just quit.\n\tselect {\n\tcase <-cs.abort:\n\t\treturn cs.abortErr\n\tcase <-ctx.Done():\n\t\treturn ctx.Err()\n\tcase <-cs.reqCancel:\n\t\treturn errRequestCanceled\n\tdefault:\n\t}\n\n\t// Encode headers.\n\t//\n\t// we send: HEADERS{1}, CONTINUATION{0,} + DATA{0,} (DATA is\n\t// sent by writeRequestBody below, along with any Trailers,\n\t// again in form HEADERS{1}, CONTINUATION{0,})\n\tcc.hbuf.Reset()\n\tres, err := encodeRequestHeaders(req, cs.requestedGzip, cc.peerMaxHeaderListSize, func(name, value string) {\n\t\tcc.writeHeader(name, value)\n\t})\n\tif err != nil {\n\t\treturn fmt.Errorf(\"http2: %w\", err)\n\t}\n\thdrs := cc.hbuf.Bytes()\n\n\t// Write the request.\n\tendStream := !res.HasBody && !res.HasTrailers\n\tcs.sentHeaders = true\n\terr = cc.writeHeaders(cs.ID, endStream, int(cc.maxFrameSize), hdrs)\n\ttraceWroteHeaders(cs.trace)\n\treturn err\n}\n\nfunc encodeRequestHeaders(req *http.Request, addGzipHeader bool, peerMaxHeaderListSize uint64, headerf func(name, value string)) (httpcommon.EncodeHeadersResult, error) {\n\treturn httpcommon.EncodeHeaders(req.Context(), httpcommon.EncodeHeadersParam{\n\t\tRequest: httpcommon.Request{\n\t\t\tHeader:              req.Header,\n\t\t\tTrailer:             req.Trailer,\n\t\t\tURL:                 req.URL,\n\t\t\tHost:                req.Host,\n\t\t\tMethod:              req.Method,\n\t\t\tActualContentLength: actualContentLength(req),\n\t\t},\n\t\tAddGzipHeader:         addGzipHeader,\n\t\tPeerMaxHeaderListSize: peerMaxHeaderListSize,\n\t\tDefaultUserAgent:      defaultUserAgent,\n\t}, headerf)\n}\n\n// cleanupWriteRequest performs post-request tasks.\n//\n// If err (the result of writeRequest) is non-nil and the stream is not closed,\n// cleanupWriteRequest will send a reset to the peer.\nfunc (cs *clientStream) cleanupWriteRequest(err error) {\n\tcc := cs.cc\n\n\tif cs.ID == 0 {\n\t\t// We were canceled before creating the stream, so return our reservation.\n\t\tcc.decrStreamReservations()\n\t}\n\n\t// TODO: write h12Compare test showing whether\n\t// Request.Body is closed by the Transport,\n\t// and in multiple cases: server replies <=299 and >299\n\t// while still writing request body\n\tcc.mu.Lock()\n\tmustCloseBody := false\n\tif cs.reqBody != nil && cs.reqBodyClosed == nil {\n\t\tmustCloseBody = true\n\t\tcs.reqBodyClosed = make(chan struct{})\n\t}\n\tbodyClosed := cs.reqBodyClosed\n\tcloseOnIdle := cc.singleUse || cc.doNotReuse || cc.t.disableKeepAlives() || cc.goAway != nil\n\tcc.mu.Unlock()\n\tif mustCloseBody {\n\t\tcs.reqBody.Close()\n\t\tclose(bodyClosed)\n\t}\n\tif bodyClosed != nil {\n\t\t<-bodyClosed\n\t}\n\n\tif err != nil && cs.sentEndStream {\n\t\t// If the connection is closed immediately after the response is read,\n\t\t// we may be aborted before finishing up here. If the stream was closed\n\t\t// cleanly on both sides, there is no error.\n\t\tselect {\n\t\tcase <-cs.peerClosed:\n\t\t\terr = nil\n\t\tdefault:\n\t\t}\n\t}\n\tif err != nil {\n\t\tcs.abortStream(err) // possibly redundant, but harmless\n\t\tif cs.sentHeaders {\n\t\t\tif se, ok := err.(StreamError); ok {\n\t\t\t\tif se.Cause != errFromPeer {\n\t\t\t\t\tcc.writeStreamReset(cs.ID, se.Code, false, err)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// We're cancelling an in-flight request.\n\t\t\t\t//\n\t\t\t\t// This could be due to the server becoming unresponsive.\n\t\t\t\t// To avoid sending too many requests on a dead connection,\n\t\t\t\t// we let the request continue to consume a concurrency slot\n\t\t\t\t// until we can confirm the server is still responding.\n\t\t\t\t// We do this by sending a PING frame along with the RST_STREAM\n\t\t\t\t// (unless a ping is already in flight).\n\t\t\t\t//\n\t\t\t\t// For simplicity, we don't bother tracking the PING payload:\n\t\t\t\t// We reset cc.pendingResets any time we receive a PING ACK.\n\t\t\t\t//\n\t\t\t\t// We skip this if the conn is going to be closed on idle,\n\t\t\t\t// because it's short lived and will probably be closed before\n\t\t\t\t// we get the ping response.\n\t\t\t\tping := false\n\t\t\t\tif !closeOnIdle {\n\t\t\t\t\tcc.mu.Lock()\n\t\t\t\t\t// rstStreamPingsBlocked works around a gRPC behavior:\n\t\t\t\t\t// see comment on the field for details.\n\t\t\t\t\tif !cc.rstStreamPingsBlocked {\n\t\t\t\t\t\tif cc.pendingResets == 0 {\n\t\t\t\t\t\t\tping = true\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcc.pendingResets++\n\t\t\t\t\t}\n\t\t\t\t\tcc.mu.Unlock()\n\t\t\t\t}\n\t\t\t\tcc.writeStreamReset(cs.ID, ErrCodeCancel, ping, err)\n\t\t\t}\n\t\t}\n\t\tcs.bufPipe.CloseWithError(err) // no-op if already closed\n\t} else {\n\t\tif cs.sentHeaders && !cs.sentEndStream {\n\t\t\tcc.writeStreamReset(cs.ID, ErrCodeNo, false, nil)\n\t\t}\n\t\tcs.bufPipe.CloseWithError(errRequestCanceled)\n\t}\n\tif cs.ID != 0 {\n\t\tcc.forgetStreamID(cs.ID)\n\t}\n\n\tcc.wmu.Lock()\n\twerr := cc.werr\n\tcc.wmu.Unlock()\n\tif werr != nil {\n\t\tcc.Close()\n\t}\n\n\tclose(cs.donec)\n}\n\n// awaitOpenSlotForStreamLocked waits until len(streams) < maxConcurrentStreams.\n// Must hold cc.mu.\nfunc (cc *ClientConn) awaitOpenSlotForStreamLocked(cs *clientStream) error {\n\tfor {\n\t\tif cc.closed && cc.nextStreamID == 1 && cc.streamsReserved == 0 {\n\t\t\t// This is the very first request sent to this connection.\n\t\t\t// Return a fatal error which aborts the retry loop.\n\t\t\treturn errClientConnNotEstablished\n\t\t}\n\t\tcc.lastActive = cc.t.now()\n\t\tif cc.closed || !cc.canTakeNewRequestLocked() {\n\t\t\treturn errClientConnUnusable\n\t\t}\n\t\tcc.lastIdle = time.Time{}\n\t\tif cc.currentRequestCountLocked() < int(cc.maxConcurrentStreams) {\n\t\t\treturn nil\n\t\t}\n\t\tcc.pendingRequests++\n\t\tcc.cond.Wait()\n\t\tcc.pendingRequests--\n\t\tselect {\n\t\tcase <-cs.abort:\n\t\t\treturn cs.abortErr\n\t\tdefault:\n\t\t}\n\t}\n}\n\n// requires cc.wmu be held\nfunc (cc *ClientConn) writeHeaders(streamID uint32, endStream bool, maxFrameSize int, hdrs []byte) error {\n\tfirst := true // first frame written (HEADERS is first, then CONTINUATION)\n\tfor len(hdrs) > 0 && cc.werr == nil {\n\t\tchunk := hdrs\n\t\tif len(chunk) > maxFrameSize {\n\t\t\tchunk = chunk[:maxFrameSize]\n\t\t}\n\t\thdrs = hdrs[len(chunk):]\n\t\tendHeaders := len(hdrs) == 0\n\t\tif first {\n\t\t\tcc.fr.WriteHeaders(HeadersFrameParam{\n\t\t\t\tStreamID:      streamID,\n\t\t\t\tBlockFragment: chunk,\n\t\t\t\tEndStream:     endStream,\n\t\t\t\tEndHeaders:    endHeaders,\n\t\t\t})\n\t\t\tfirst = false\n\t\t} else {\n\t\t\tcc.fr.WriteContinuation(streamID, endHeaders, chunk)\n\t\t}\n\t}\n\tcc.bw.Flush()\n\treturn cc.werr\n}\n\n// internal error values; they don't escape to callers\nvar (\n\t// abort request body write; don't send cancel\n\terrStopReqBodyWrite = errors.New(\"http2: aborting request body write\")\n\n\t// abort request body write, but send stream reset of cancel.\n\terrStopReqBodyWriteAndCancel = errors.New(\"http2: canceling request\")\n\n\terrReqBodyTooLong = errors.New(\"http2: request body larger than specified content length\")\n)\n\n// frameScratchBufferLen returns the length of a buffer to use for\n// outgoing request bodies to read/write to/from.\n//\n// It returns max(1, min(peer's advertised max frame size,\n// Request.ContentLength+1, 512KB)).\nfunc (cs *clientStream) frameScratchBufferLen(maxFrameSize int) int {\n\tconst max = 512 << 10\n\tn := int64(maxFrameSize)\n\tif n > max {\n\t\tn = max\n\t}\n\tif cl := cs.reqBodyContentLength; cl != -1 && cl+1 < n {\n\t\t// Add an extra byte past the declared content-length to\n\t\t// give the caller's Request.Body io.Reader a chance to\n\t\t// give us more bytes than they declared, so we can catch it\n\t\t// early.\n\t\tn = cl + 1\n\t}\n\tif n < 1 {\n\t\treturn 1\n\t}\n\treturn int(n) // doesn't truncate; max is 512K\n}\n\n// Seven bufPools manage different frame sizes. This helps to avoid scenarios where long-running\n// streaming requests using small frame sizes occupy large buffers initially allocated for prior\n// requests needing big buffers. The size ranges are as follows:\n// {0 KB, 16 KB], {16 KB, 32 KB], {32 KB, 64 KB], {64 KB, 128 KB], {128 KB, 256 KB],\n// {256 KB, 512 KB], {512 KB, infinity}\n// In practice, the maximum scratch buffer size should not exceed 512 KB due to\n// frameScratchBufferLen(maxFrameSize), thus the \"infinity pool\" should never be used.\n// It exists mainly as a safety measure, for potential future increases in max buffer size.\nvar bufPools [7]sync.Pool // of *[]byte\nfunc bufPoolIndex(size int) int {\n\tif size <= 16384 {\n\t\treturn 0\n\t}\n\tsize -= 1\n\tbits := bits.Len(uint(size))\n\tindex := bits - 14\n\tif index >= len(bufPools) {\n\t\treturn len(bufPools) - 1\n\t}\n\treturn index\n}\n\nfunc (cs *clientStream) writeRequestBody(req *http.Request) (err error) {\n\tcc := cs.cc\n\tbody := cs.reqBody\n\tsentEnd := false // whether we sent the final DATA frame w/ END_STREAM\n\n\thasTrailers := req.Trailer != nil\n\tremainLen := cs.reqBodyContentLength\n\thasContentLen := remainLen != -1\n\n\tcc.mu.Lock()\n\tmaxFrameSize := int(cc.maxFrameSize)\n\tcc.mu.Unlock()\n\n\t// Scratch buffer for reading into & writing from.\n\tscratchLen := cs.frameScratchBufferLen(maxFrameSize)\n\tvar buf []byte\n\tindex := bufPoolIndex(scratchLen)\n\tif bp, ok := bufPools[index].Get().(*[]byte); ok && len(*bp) >= scratchLen {\n\t\tdefer bufPools[index].Put(bp)\n\t\tbuf = *bp\n\t} else {\n\t\tbuf = make([]byte, scratchLen)\n\t\tdefer bufPools[index].Put(&buf)\n\t}\n\n\tvar sawEOF bool\n\tfor !sawEOF {\n\t\tn, err := body.Read(buf)\n\t\tif hasContentLen {\n\t\t\tremainLen -= int64(n)\n\t\t\tif remainLen == 0 && err == nil {\n\t\t\t\t// The request body's Content-Length was predeclared and\n\t\t\t\t// we just finished reading it all, but the underlying io.Reader\n\t\t\t\t// returned the final chunk with a nil error (which is one of\n\t\t\t\t// the two valid things a Reader can do at EOF). Because we'd prefer\n\t\t\t\t// to send the END_STREAM bit early, double-check that we're actually\n\t\t\t\t// at EOF. Subsequent reads should return (0, EOF) at this point.\n\t\t\t\t// If either value is different, we return an error in one of two ways below.\n\t\t\t\tvar scratch [1]byte\n\t\t\t\tvar n1 int\n\t\t\t\tn1, err = body.Read(scratch[:])\n\t\t\t\tremainLen -= int64(n1)\n\t\t\t}\n\t\t\tif remainLen < 0 {\n\t\t\t\terr = errReqBodyTooLong\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err != nil {\n\t\t\tcc.mu.Lock()\n\t\t\tbodyClosed := cs.reqBodyClosed != nil\n\t\t\tcc.mu.Unlock()\n\t\t\tswitch {\n\t\t\tcase bodyClosed:\n\t\t\t\treturn errStopReqBodyWrite\n\t\t\tcase err == io.EOF:\n\t\t\t\tsawEOF = true\n\t\t\t\terr = nil\n\t\t\tdefault:\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\tremain := buf[:n]\n\t\tfor len(remain) > 0 && err == nil {\n\t\t\tvar allowed int32\n\t\t\tallowed, err = cs.awaitFlowControl(len(remain))\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tcc.wmu.Lock()\n\t\t\tdata := remain[:allowed]\n\t\t\tremain = remain[allowed:]\n\t\t\tsentEnd = sawEOF && len(remain) == 0 && !hasTrailers\n\t\t\terr = cc.fr.WriteData(cs.ID, sentEnd, data)\n\t\t\tif err == nil {\n\t\t\t\t// TODO(bradfitz): this flush is for latency, not bandwidth.\n\t\t\t\t// Most requests won't need this. Make this opt-in or\n\t\t\t\t// opt-out?  Use some heuristic on the body type? Nagel-like\n\t\t\t\t// timers?  Based on 'n'? Only last chunk of this for loop,\n\t\t\t\t// unless flow control tokens are low? For now, always.\n\t\t\t\t// If we change this, see comment below.\n\t\t\t\terr = cc.bw.Flush()\n\t\t\t}\n\t\t\tcc.wmu.Unlock()\n\t\t}\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tif sentEnd {\n\t\t// Already sent END_STREAM (which implies we have no\n\t\t// trailers) and flushed, because currently all\n\t\t// WriteData frames above get a flush. So we're done.\n\t\treturn nil\n\t}\n\n\t// Since the RoundTrip contract permits the caller to \"mutate or reuse\"\n\t// a request after the Response's Body is closed, verify that this hasn't\n\t// happened before accessing the trailers.\n\tcc.mu.Lock()\n\ttrailer := req.Trailer\n\terr = cs.abortErr\n\tcc.mu.Unlock()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tcc.wmu.Lock()\n\tdefer cc.wmu.Unlock()\n\tvar trls []byte\n\tif len(trailer) > 0 {\n\t\ttrls, err = cc.encodeTrailers(trailer)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\t// Two ways to send END_STREAM: either with trailers, or\n\t// with an empty DATA frame.\n\tif len(trls) > 0 {\n\t\terr = cc.writeHeaders(cs.ID, true, maxFrameSize, trls)\n\t} else {\n\t\terr = cc.fr.WriteData(cs.ID, true, nil)\n\t}\n\tif ferr := cc.bw.Flush(); ferr != nil && err == nil {\n\t\terr = ferr\n\t}\n\treturn err\n}\n\n// awaitFlowControl waits for [1, min(maxBytes, cc.cs.maxFrameSize)] flow\n// control tokens from the server.\n// It returns either the non-zero number of tokens taken or an error\n// if the stream is dead.\nfunc (cs *clientStream) awaitFlowControl(maxBytes int) (taken int32, err error) {\n\tcc := cs.cc\n\tctx := cs.ctx\n\tcc.mu.Lock()\n\tdefer cc.mu.Unlock()\n\tfor {\n\t\tif cc.closed {\n\t\t\treturn 0, errClientConnClosed\n\t\t}\n\t\tif cs.reqBodyClosed != nil {\n\t\t\treturn 0, errStopReqBodyWrite\n\t\t}\n\t\tselect {\n\t\tcase <-cs.abort:\n\t\t\treturn 0, cs.abortErr\n\t\tcase <-ctx.Done():\n\t\t\treturn 0, ctx.Err()\n\t\tcase <-cs.reqCancel:\n\t\t\treturn 0, errRequestCanceled\n\t\tdefault:\n\t\t}\n\t\tif a := cs.flow.available(); a > 0 {\n\t\t\ttake := a\n\t\t\tif int(take) > maxBytes {\n\n\t\t\t\ttake = int32(maxBytes) // can't truncate int; take is int32\n\t\t\t}\n\t\t\tif take > int32(cc.maxFrameSize) {\n\t\t\t\ttake = int32(cc.maxFrameSize)\n\t\t\t}\n\t\t\tcs.flow.take(take)\n\t\t\treturn take, nil\n\t\t}\n\t\tcc.cond.Wait()\n\t}\n}\n\n// requires cc.wmu be held.\nfunc (cc *ClientConn) encodeTrailers(trailer http.Header) ([]byte, error) {\n\tcc.hbuf.Reset()\n\n\thlSize := uint64(0)\n\tfor k, vv := range trailer {\n\t\tfor _, v := range vv {\n\t\t\thf := hpack.HeaderField{Name: k, Value: v}\n\t\t\thlSize += uint64(hf.Size())\n\t\t}\n\t}\n\tif hlSize > cc.peerMaxHeaderListSize {\n\t\treturn nil, errRequestHeaderListSize\n\t}\n\n\tfor k, vv := range trailer {\n\t\tlowKey, ascii := httpcommon.LowerHeader(k)\n\t\tif !ascii {\n\t\t\t// Skip writing invalid headers. Per RFC 7540, Section 8.1.2, header\n\t\t\t// field names have to be ASCII characters (just as in HTTP/1.x).\n\t\t\tcontinue\n\t\t}\n\t\t// Transfer-Encoding, etc.. have already been filtered at the\n\t\t// start of RoundTrip\n\t\tfor _, v := range vv {\n\t\t\tcc.writeHeader(lowKey, v)\n\t\t}\n\t}\n\treturn cc.hbuf.Bytes(), nil\n}\n\nfunc (cc *ClientConn) writeHeader(name, value string) {\n\tif VerboseLogs {\n\t\tlog.Printf(\"http2: Transport encoding header %q = %q\", name, value)\n\t}\n\tcc.henc.WriteField(hpack.HeaderField{Name: name, Value: value})\n}\n\ntype resAndError struct {\n\t_   incomparable\n\tres *http.Response\n\terr error\n}\n\n// requires cc.mu be held.\nfunc (cc *ClientConn) addStreamLocked(cs *clientStream) {\n\tcs.flow.add(int32(cc.initialWindowSize))\n\tcs.flow.setConnFlow(&cc.flow)\n\tcs.inflow.init(cc.initialStreamRecvWindowSize)\n\tcs.ID = cc.nextStreamID\n\tcc.nextStreamID += 2\n\tcc.streams[cs.ID] = cs\n\tif cs.ID == 0 {\n\t\tpanic(\"assigned stream ID 0\")\n\t}\n}\n\nfunc (cc *ClientConn) forgetStreamID(id uint32) {\n\tcc.mu.Lock()\n\tslen := len(cc.streams)\n\tdelete(cc.streams, id)\n\tif len(cc.streams) != slen-1 {\n\t\tpanic(\"forgetting unknown stream id\")\n\t}\n\tcc.lastActive = cc.t.now()\n\tif len(cc.streams) == 0 && cc.idleTimer != nil {\n\t\tcc.idleTimer.Reset(cc.idleTimeout)\n\t\tcc.lastIdle = cc.t.now()\n\t}\n\t// Wake up writeRequestBody via clientStream.awaitFlowControl and\n\t// wake up RoundTrip if there is a pending request.\n\tcc.cond.Broadcast()\n\n\tcloseOnIdle := cc.singleUse || cc.doNotReuse || cc.t.disableKeepAlives() || cc.goAway != nil\n\tif closeOnIdle && cc.streamsReserved == 0 && len(cc.streams) == 0 {\n\t\tif VerboseLogs {\n\t\t\tcc.vlogf(\"http2: Transport closing idle conn %p (forSingleUse=%v, maxStream=%v)\", cc, cc.singleUse, cc.nextStreamID-2)\n\t\t}\n\t\tcc.closed = true\n\t\tdefer cc.closeConn()\n\t}\n\n\tcc.mu.Unlock()\n}\n\n// clientConnReadLoop is the state owned by the clientConn's frame-reading readLoop.\ntype clientConnReadLoop struct {\n\t_  incomparable\n\tcc *ClientConn\n}\n\n// readLoop runs in its own goroutine and reads and dispatches frames.\nfunc (cc *ClientConn) readLoop() {\n\tcc.t.markNewGoroutine()\n\trl := &clientConnReadLoop{cc: cc}\n\tdefer rl.cleanup()\n\tcc.readerErr = rl.run()\n\tif ce, ok := cc.readerErr.(ConnectionError); ok {\n\t\tcc.wmu.Lock()\n\t\tcc.fr.WriteGoAway(0, ErrCode(ce), nil)\n\t\tcc.wmu.Unlock()\n\t}\n}\n\n// GoAwayError is returned by the Transport when the server closes the\n// TCP connection after sending a GOAWAY frame.\ntype GoAwayError struct {\n\tLastStreamID uint32\n\tErrCode      ErrCode\n\tDebugData    string\n}\n\nfunc (e GoAwayError) Error() string {\n\treturn fmt.Sprintf(\"http2: server sent GOAWAY and closed the connection; LastStreamID=%v, ErrCode=%v, debug=%q\",\n\t\te.LastStreamID, e.ErrCode, e.DebugData)\n}\n\nfunc isEOFOrNetReadError(err error) bool {\n\tif err == io.EOF {\n\t\treturn true\n\t}\n\tne, ok := err.(*net.OpError)\n\treturn ok && ne.Op == \"read\"\n}\n\nfunc (rl *clientConnReadLoop) cleanup() {\n\tcc := rl.cc\n\tdefer cc.closeConn()\n\tdefer close(cc.readerDone)\n\n\tif cc.idleTimer != nil {\n\t\tcc.idleTimer.Stop()\n\t}\n\n\t// Close any response bodies if the server closes prematurely.\n\t// TODO: also do this if we've written the headers but not\n\t// gotten a response yet.\n\terr := cc.readerErr\n\tcc.mu.Lock()\n\tif cc.goAway != nil && isEOFOrNetReadError(err) {\n\t\terr = GoAwayError{\n\t\t\tLastStreamID: cc.goAway.LastStreamID,\n\t\t\tErrCode:      cc.goAway.ErrCode,\n\t\t\tDebugData:    cc.goAwayDebug,\n\t\t}\n\t} else if err == io.EOF {\n\t\terr = io.ErrUnexpectedEOF\n\t}\n\tcc.closed = true\n\n\t// If the connection has never been used, and has been open for only a short time,\n\t// leave it in the connection pool for a little while.\n\t//\n\t// This avoids a situation where new connections are constantly created,\n\t// added to the pool, fail, and are removed from the pool, without any error\n\t// being surfaced to the user.\n\tunusedWaitTime := 5 * time.Second\n\tif cc.idleTimeout > 0 && unusedWaitTime > cc.idleTimeout {\n\t\tunusedWaitTime = cc.idleTimeout\n\t}\n\tidleTime := cc.t.now().Sub(cc.lastActive)\n\tif atomic.LoadUint32(&cc.atomicReused) == 0 && idleTime < unusedWaitTime && !cc.closedOnIdle {\n\t\tcc.idleTimer = cc.t.afterFunc(unusedWaitTime-idleTime, func() {\n\t\t\tcc.t.connPool().MarkDead(cc)\n\t\t})\n\t} else {\n\t\tcc.mu.Unlock() // avoid any deadlocks in MarkDead\n\t\tcc.t.connPool().MarkDead(cc)\n\t\tcc.mu.Lock()\n\t}\n\n\tfor _, cs := range cc.streams {\n\t\tselect {\n\t\tcase <-cs.peerClosed:\n\t\t\t// The server closed the stream before closing the conn,\n\t\t\t// so no need to interrupt it.\n\t\tdefault:\n\t\t\tcs.abortStreamLocked(err)\n\t\t}\n\t}\n\tcc.cond.Broadcast()\n\tcc.mu.Unlock()\n\n\tif !cc.seenSettings {\n\t\t// If we have a pending request that wants extended CONNECT,\n\t\t// let it continue and fail with the connection error.\n\t\tcc.extendedConnectAllowed = true\n\t\tclose(cc.seenSettingsChan)\n\t}\n}\n\n// countReadFrameError calls Transport.CountError with a string\n// representing err.\nfunc (cc *ClientConn) countReadFrameError(err error) {\n\tf := cc.t.CountError\n\tif f == nil || err == nil {\n\t\treturn\n\t}\n\tif ce, ok := err.(ConnectionError); ok {\n\t\terrCode := ErrCode(ce)\n\t\tf(fmt.Sprintf(\"read_frame_conn_error_%s\", errCode.stringToken()))\n\t\treturn\n\t}\n\tif errors.Is(err, io.EOF) {\n\t\tf(\"read_frame_eof\")\n\t\treturn\n\t}\n\tif errors.Is(err, io.ErrUnexpectedEOF) {\n\t\tf(\"read_frame_unexpected_eof\")\n\t\treturn\n\t}\n\tif errors.Is(err, ErrFrameTooLarge) {\n\t\tf(\"read_frame_too_large\")\n\t\treturn\n\t}\n\tf(\"read_frame_other\")\n}\n\nfunc (rl *clientConnReadLoop) run() error {\n\tcc := rl.cc\n\tgotSettings := false\n\treadIdleTimeout := cc.readIdleTimeout\n\tvar t timer\n\tif readIdleTimeout != 0 {\n\t\tt = cc.t.afterFunc(readIdleTimeout, cc.healthCheck)\n\t}\n\tfor {\n\t\tf, err := cc.fr.ReadFrame()\n\t\tif t != nil {\n\t\t\tt.Reset(readIdleTimeout)\n\t\t}\n\t\tif err != nil {\n\t\t\tcc.vlogf(\"http2: Transport readFrame error on conn %p: (%T) %v\", cc, err, err)\n\t\t}\n\t\tif se, ok := err.(StreamError); ok {\n\t\t\tif cs := rl.streamByID(se.StreamID, notHeaderOrDataFrame); cs != nil {\n\t\t\t\tif se.Cause == nil {\n\t\t\t\t\tse.Cause = cc.fr.errDetail\n\t\t\t\t}\n\t\t\t\trl.endStreamError(cs, se)\n\t\t\t}\n\t\t\tcontinue\n\t\t} else if err != nil {\n\t\t\tcc.countReadFrameError(err)\n\t\t\treturn err\n\t\t}\n\t\tif VerboseLogs {\n\t\t\tcc.vlogf(\"http2: Transport received %s\", summarizeFrame(f))\n\t\t}\n\t\tif !gotSettings {\n\t\t\tif _, ok := f.(*SettingsFrame); !ok {\n\t\t\t\tcc.logf(\"protocol error: received %T before a SETTINGS frame\", f)\n\t\t\t\treturn ConnectionError(ErrCodeProtocol)\n\t\t\t}\n\t\t\tgotSettings = true\n\t\t}\n\n\t\tswitch f := f.(type) {\n\t\tcase *MetaHeadersFrame:\n\t\t\terr = rl.processHeaders(f)\n\t\tcase *DataFrame:\n\t\t\terr = rl.processData(f)\n\t\tcase *GoAwayFrame:\n\t\t\terr = rl.processGoAway(f)\n\t\tcase *RSTStreamFrame:\n\t\t\terr = rl.processResetStream(f)\n\t\tcase *SettingsFrame:\n\t\t\terr = rl.processSettings(f)\n\t\tcase *PushPromiseFrame:\n\t\t\terr = rl.processPushPromise(f)\n\t\tcase *WindowUpdateFrame:\n\t\t\terr = rl.processWindowUpdate(f)\n\t\tcase *PingFrame:\n\t\t\terr = rl.processPing(f)\n\t\tdefault:\n\t\t\tcc.logf(\"Transport: unhandled response frame type %T\", f)\n\t\t}\n\t\tif err != nil {\n\t\t\tif VerboseLogs {\n\t\t\t\tcc.vlogf(\"http2: Transport conn %p received error from processing frame %v: %v\", cc, summarizeFrame(f), err)\n\t\t\t}\n\t\t\treturn err\n\t\t}\n\t}\n}\n\nfunc (rl *clientConnReadLoop) processHeaders(f *MetaHeadersFrame) error {\n\tcs := rl.streamByID(f.StreamID, headerOrDataFrame)\n\tif cs == nil {\n\t\t// We'd get here if we canceled a request while the\n\t\t// server had its response still in flight. So if this\n\t\t// was just something we canceled, ignore it.\n\t\treturn nil\n\t}\n\tif cs.readClosed {\n\t\trl.endStreamError(cs, StreamError{\n\t\t\tStreamID: f.StreamID,\n\t\t\tCode:     ErrCodeProtocol,\n\t\t\tCause:    errors.New(\"protocol error: headers after END_STREAM\"),\n\t\t})\n\t\treturn nil\n\t}\n\tif !cs.firstByte {\n\t\tif cs.trace != nil {\n\t\t\t// TODO(bradfitz): move first response byte earlier,\n\t\t\t// when we first read the 9 byte header, not waiting\n\t\t\t// until all the HEADERS+CONTINUATION frames have been\n\t\t\t// merged. This works for now.\n\t\t\ttraceFirstResponseByte(cs.trace)\n\t\t}\n\t\tcs.firstByte = true\n\t}\n\tif !cs.pastHeaders {\n\t\tcs.pastHeaders = true\n\t} else {\n\t\treturn rl.processTrailers(cs, f)\n\t}\n\n\tres, err := rl.handleResponse(cs, f)\n\tif err != nil {\n\t\tif _, ok := err.(ConnectionError); ok {\n\t\t\treturn err\n\t\t}\n\t\t// Any other error type is a stream error.\n\t\trl.endStreamError(cs, StreamError{\n\t\t\tStreamID: f.StreamID,\n\t\t\tCode:     ErrCodeProtocol,\n\t\t\tCause:    err,\n\t\t})\n\t\treturn nil // return nil from process* funcs to keep conn alive\n\t}\n\tif res == nil {\n\t\t// (nil, nil) special case. See handleResponse docs.\n\t\treturn nil\n\t}\n\tcs.resTrailer = &res.Trailer\n\tcs.res = res\n\tclose(cs.respHeaderRecv)\n\tif f.StreamEnded() {\n\t\trl.endStream(cs)\n\t}\n\treturn nil\n}\n\n// may return error types nil, or ConnectionError. Any other error value\n// is a StreamError of type ErrCodeProtocol. The returned error in that case\n// is the detail.\n//\n// As a special case, handleResponse may return (nil, nil) to skip the\n// frame (currently only used for 1xx responses).\nfunc (rl *clientConnReadLoop) handleResponse(cs *clientStream, f *MetaHeadersFrame) (*http.Response, error) {\n\tif f.Truncated {\n\t\treturn nil, errResponseHeaderListSize\n\t}\n\n\tstatus := f.PseudoValue(\"status\")\n\tif status == \"\" {\n\t\treturn nil, errors.New(\"malformed response from server: missing status pseudo header\")\n\t}\n\tstatusCode, err := strconv.Atoi(status)\n\tif err != nil {\n\t\treturn nil, errors.New(\"malformed response from server: malformed non-numeric status pseudo header\")\n\t}\n\n\tregularFields := f.RegularFields()\n\tstrs := make([]string, len(regularFields))\n\theader := make(http.Header, len(regularFields))\n\tres := &http.Response{\n\t\tProto:      \"HTTP/2.0\",\n\t\tProtoMajor: 2,\n\t\tHeader:     header,\n\t\tStatusCode: statusCode,\n\t\tStatus:     status + \" \" + http.StatusText(statusCode),\n\t}\n\tfor _, hf := range regularFields {\n\t\tkey := httpcommon.CanonicalHeader(hf.Name)\n\t\tif key == \"Trailer\" {\n\t\t\tt := res.Trailer\n\t\t\tif t == nil {\n\t\t\t\tt = make(http.Header)\n\t\t\t\tres.Trailer = t\n\t\t\t}\n\t\t\tforeachHeaderElement(hf.Value, func(v string) {\n\t\t\t\tt[httpcommon.CanonicalHeader(v)] = nil\n\t\t\t})\n\t\t} else {\n\t\t\tvv := header[key]\n\t\t\tif vv == nil && len(strs) > 0 {\n\t\t\t\t// More than likely this will be a single-element key.\n\t\t\t\t// Most headers aren't multi-valued.\n\t\t\t\t// Set the capacity on strs[0] to 1, so any future append\n\t\t\t\t// won't extend the slice into the other strings.\n\t\t\t\tvv, strs = strs[:1:1], strs[1:]\n\t\t\t\tvv[0] = hf.Value\n\t\t\t\theader[key] = vv\n\t\t\t} else {\n\t\t\t\theader[key] = append(vv, hf.Value)\n\t\t\t}\n\t\t}\n\t}\n\n\tif statusCode >= 100 && statusCode <= 199 {\n\t\tif f.StreamEnded() {\n\t\t\treturn nil, errors.New(\"1xx informational response with END_STREAM flag\")\n\t\t}\n\t\tif fn := cs.get1xxTraceFunc(); fn != nil {\n\t\t\t// If the 1xx response is being delivered to the user,\n\t\t\t// then they're responsible for limiting the number\n\t\t\t// of responses.\n\t\t\tif err := fn(statusCode, textproto.MIMEHeader(header)); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t} else {\n\t\t\t// If the user didn't examine the 1xx response, then we\n\t\t\t// limit the size of all 1xx headers.\n\t\t\t//\n\t\t\t// This differs a bit from the HTTP/1 implementation, which\n\t\t\t// limits the size of all 1xx headers plus the final response.\n\t\t\t// Use the larger limit of MaxHeaderListSize and\n\t\t\t// net/http.Transport.MaxResponseHeaderBytes.\n\t\t\tlimit := int64(cs.cc.t.maxHeaderListSize())\n\t\t\tif t1 := cs.cc.t.t1; t1 != nil && t1.MaxResponseHeaderBytes > limit {\n\t\t\t\tlimit = t1.MaxResponseHeaderBytes\n\t\t\t}\n\t\t\tfor _, h := range f.Fields {\n\t\t\t\tcs.totalHeaderSize += int64(h.Size())\n\t\t\t}\n\t\t\tif cs.totalHeaderSize > limit {\n\t\t\t\tif VerboseLogs {\n\t\t\t\t\tlog.Printf(\"http2: 1xx informational responses too large\")\n\t\t\t\t}\n\t\t\t\treturn nil, errors.New(\"header list too large\")\n\t\t\t}\n\t\t}\n\t\tif statusCode == 100 {\n\t\t\ttraceGot100Continue(cs.trace)\n\t\t\tselect {\n\t\t\tcase cs.on100 <- struct{}{}:\n\t\t\tdefault:\n\t\t\t}\n\t\t}\n\t\tcs.pastHeaders = false // do it all again\n\t\treturn nil, nil\n\t}\n\n\tres.ContentLength = -1\n\tif clens := res.Header[\"Content-Length\"]; len(clens) == 1 {\n\t\tif cl, err := strconv.ParseUint(clens[0], 10, 63); err == nil {\n\t\t\tres.ContentLength = int64(cl)\n\t\t} else {\n\t\t\t// TODO: care? unlike http/1, it won't mess up our framing, so it's\n\t\t\t// more safe smuggling-wise to ignore.\n\t\t}\n\t} else if len(clens) > 1 {\n\t\t// TODO: care? unlike http/1, it won't mess up our framing, so it's\n\t\t// more safe smuggling-wise to ignore.\n\t} else if f.StreamEnded() && !cs.isHead {\n\t\tres.ContentLength = 0\n\t}\n\n\tif cs.isHead {\n\t\tres.Body = noBody\n\t\treturn res, nil\n\t}\n\n\tif f.StreamEnded() {\n\t\tif res.ContentLength > 0 {\n\t\t\tres.Body = missingBody{}\n\t\t} else {\n\t\t\tres.Body = noBody\n\t\t}\n\t\treturn res, nil\n\t}\n\n\tcs.bufPipe.setBuffer(&dataBuffer{expected: res.ContentLength})\n\tcs.bytesRemain = res.ContentLength\n\tres.Body = transportResponseBody{cs}\n\n\tif cs.requestedGzip && asciiEqualFold(res.Header.Get(\"Content-Encoding\"), \"gzip\") {\n\t\tres.Header.Del(\"Content-Encoding\")\n\t\tres.Header.Del(\"Content-Length\")\n\t\tres.ContentLength = -1\n\t\tres.Body = &gzipReader{body: res.Body}\n\t\tres.Uncompressed = true\n\t}\n\treturn res, nil\n}\n\nfunc (rl *clientConnReadLoop) processTrailers(cs *clientStream, f *MetaHeadersFrame) error {\n\tif cs.pastTrailers {\n\t\t// Too many HEADERS frames for this stream.\n\t\treturn ConnectionError(ErrCodeProtocol)\n\t}\n\tcs.pastTrailers = true\n\tif !f.StreamEnded() {\n\t\t// We expect that any headers for trailers also\n\t\t// has END_STREAM.\n\t\treturn ConnectionError(ErrCodeProtocol)\n\t}\n\tif len(f.PseudoFields()) > 0 {\n\t\t// No pseudo header fields are defined for trailers.\n\t\t// TODO: ConnectionError might be overly harsh? Check.\n\t\treturn ConnectionError(ErrCodeProtocol)\n\t}\n\n\ttrailer := make(http.Header)\n\tfor _, hf := range f.RegularFields() {\n\t\tkey := httpcommon.CanonicalHeader(hf.Name)\n\t\ttrailer[key] = append(trailer[key], hf.Value)\n\t}\n\tcs.trailer = trailer\n\n\trl.endStream(cs)\n\treturn nil\n}\n\n// transportResponseBody is the concrete type of Transport.RoundTrip's\n// Response.Body. It is an io.ReadCloser.\ntype transportResponseBody struct {\n\tcs *clientStream\n}\n\nfunc (b transportResponseBody) Read(p []byte) (n int, err error) {\n\tcs := b.cs\n\tcc := cs.cc\n\n\tif cs.readErr != nil {\n\t\treturn 0, cs.readErr\n\t}\n\tn, err = b.cs.bufPipe.Read(p)\n\tif cs.bytesRemain != -1 {\n\t\tif int64(n) > cs.bytesRemain {\n\t\t\tn = int(cs.bytesRemain)\n\t\t\tif err == nil {\n\t\t\t\terr = errors.New(\"net/http: server replied with more than declared Content-Length; truncated\")\n\t\t\t\tcs.abortStream(err)\n\t\t\t}\n\t\t\tcs.readErr = err\n\t\t\treturn int(cs.bytesRemain), err\n\t\t}\n\t\tcs.bytesRemain -= int64(n)\n\t\tif err == io.EOF && cs.bytesRemain > 0 {\n\t\t\terr = io.ErrUnexpectedEOF\n\t\t\tcs.readErr = err\n\t\t\treturn n, err\n\t\t}\n\t}\n\tif n == 0 {\n\t\t// No flow control tokens to send back.\n\t\treturn\n\t}\n\n\tcc.mu.Lock()\n\tconnAdd := cc.inflow.add(n)\n\tvar streamAdd int32\n\tif err == nil { // No need to refresh if the stream is over or failed.\n\t\tstreamAdd = cs.inflow.add(n)\n\t}\n\tcc.mu.Unlock()\n\n\tif connAdd != 0 || streamAdd != 0 {\n\t\tcc.wmu.Lock()\n\t\tdefer cc.wmu.Unlock()\n\t\tif connAdd != 0 {\n\t\t\tcc.fr.WriteWindowUpdate(0, mustUint31(connAdd))\n\t\t}\n\t\tif streamAdd != 0 {\n\t\t\tcc.fr.WriteWindowUpdate(cs.ID, mustUint31(streamAdd))\n\t\t}\n\t\tcc.bw.Flush()\n\t}\n\treturn\n}\n\nvar errClosedResponseBody = errors.New(\"http2: response body closed\")\n\nfunc (b transportResponseBody) Close() error {\n\tcs := b.cs\n\tcc := cs.cc\n\n\tcs.bufPipe.BreakWithError(errClosedResponseBody)\n\tcs.abortStream(errClosedResponseBody)\n\n\tunread := cs.bufPipe.Len()\n\tif unread > 0 {\n\t\tcc.mu.Lock()\n\t\t// Return connection-level flow control.\n\t\tconnAdd := cc.inflow.add(unread)\n\t\tcc.mu.Unlock()\n\n\t\t// TODO(dneil): Acquiring this mutex can block indefinitely.\n\t\t// Move flow control return to a goroutine?\n\t\tcc.wmu.Lock()\n\t\t// Return connection-level flow control.\n\t\tif connAdd > 0 {\n\t\t\tcc.fr.WriteWindowUpdate(0, uint32(connAdd))\n\t\t}\n\t\tcc.bw.Flush()\n\t\tcc.wmu.Unlock()\n\t}\n\n\tselect {\n\tcase <-cs.donec:\n\tcase <-cs.ctx.Done():\n\t\t// See golang/go#49366: The net/http package can cancel the\n\t\t// request context after the response body is fully read.\n\t\t// Don't treat this as an error.\n\t\treturn nil\n\tcase <-cs.reqCancel:\n\t\treturn errRequestCanceled\n\t}\n\treturn nil\n}\n\nfunc (rl *clientConnReadLoop) processData(f *DataFrame) error {\n\tcc := rl.cc\n\tcs := rl.streamByID(f.StreamID, headerOrDataFrame)\n\tdata := f.Data()\n\tif cs == nil {\n\t\tcc.mu.Lock()\n\t\tneverSent := cc.nextStreamID\n\t\tcc.mu.Unlock()\n\t\tif f.StreamID >= neverSent {\n\t\t\t// We never asked for this.\n\t\t\tcc.logf(\"http2: Transport received unsolicited DATA frame; closing connection\")\n\t\t\treturn ConnectionError(ErrCodeProtocol)\n\t\t}\n\t\t// We probably did ask for this, but canceled. Just ignore it.\n\t\t// TODO: be stricter here? only silently ignore things which\n\t\t// we canceled, but not things which were closed normally\n\t\t// by the peer? Tough without accumulating too much state.\n\n\t\t// But at least return their flow control:\n\t\tif f.Length > 0 {\n\t\t\tcc.mu.Lock()\n\t\t\tok := cc.inflow.take(f.Length)\n\t\t\tconnAdd := cc.inflow.add(int(f.Length))\n\t\t\tcc.mu.Unlock()\n\t\t\tif !ok {\n\t\t\t\treturn ConnectionError(ErrCodeFlowControl)\n\t\t\t}\n\t\t\tif connAdd > 0 {\n\t\t\t\tcc.wmu.Lock()\n\t\t\t\tcc.fr.WriteWindowUpdate(0, uint32(connAdd))\n\t\t\t\tcc.bw.Flush()\n\t\t\t\tcc.wmu.Unlock()\n\t\t\t}\n\t\t}\n\t\treturn nil\n\t}\n\tif cs.readClosed {\n\t\tcc.logf(\"protocol error: received DATA after END_STREAM\")\n\t\trl.endStreamError(cs, StreamError{\n\t\t\tStreamID: f.StreamID,\n\t\t\tCode:     ErrCodeProtocol,\n\t\t})\n\t\treturn nil\n\t}\n\tif !cs.pastHeaders {\n\t\tcc.logf(\"protocol error: received DATA before a HEADERS frame\")\n\t\trl.endStreamError(cs, StreamError{\n\t\t\tStreamID: f.StreamID,\n\t\t\tCode:     ErrCodeProtocol,\n\t\t})\n\t\treturn nil\n\t}\n\tif f.Length > 0 {\n\t\tif cs.isHead && len(data) > 0 {\n\t\t\tcc.logf(\"protocol error: received DATA on a HEAD request\")\n\t\t\trl.endStreamError(cs, StreamError{\n\t\t\t\tStreamID: f.StreamID,\n\t\t\t\tCode:     ErrCodeProtocol,\n\t\t\t})\n\t\t\treturn nil\n\t\t}\n\t\t// Check connection-level flow control.\n\t\tcc.mu.Lock()\n\t\tif !takeInflows(&cc.inflow, &cs.inflow, f.Length) {\n\t\t\tcc.mu.Unlock()\n\t\t\treturn ConnectionError(ErrCodeFlowControl)\n\t\t}\n\t\t// Return any padded flow control now, since we won't\n\t\t// refund it later on body reads.\n\t\tvar refund int\n\t\tif pad := int(f.Length) - len(data); pad > 0 {\n\t\t\trefund += pad\n\t\t}\n\n\t\tdidReset := false\n\t\tvar err error\n\t\tif len(data) > 0 {\n\t\t\tif _, err = cs.bufPipe.Write(data); err != nil {\n\t\t\t\t// Return len(data) now if the stream is already closed,\n\t\t\t\t// since data will never be read.\n\t\t\t\tdidReset = true\n\t\t\t\trefund += len(data)\n\t\t\t}\n\t\t}\n\n\t\tsendConn := cc.inflow.add(refund)\n\t\tvar sendStream int32\n\t\tif !didReset {\n\t\t\tsendStream = cs.inflow.add(refund)\n\t\t}\n\t\tcc.mu.Unlock()\n\n\t\tif sendConn > 0 || sendStream > 0 {\n\t\t\tcc.wmu.Lock()\n\t\t\tif sendConn > 0 {\n\t\t\t\tcc.fr.WriteWindowUpdate(0, uint32(sendConn))\n\t\t\t}\n\t\t\tif sendStream > 0 {\n\t\t\t\tcc.fr.WriteWindowUpdate(cs.ID, uint32(sendStream))\n\t\t\t}\n\t\t\tcc.bw.Flush()\n\t\t\tcc.wmu.Unlock()\n\t\t}\n\n\t\tif err != nil {\n\t\t\trl.endStreamError(cs, err)\n\t\t\treturn nil\n\t\t}\n\t}\n\n\tif f.StreamEnded() {\n\t\trl.endStream(cs)\n\t}\n\treturn nil\n}\n\nfunc (rl *clientConnReadLoop) endStream(cs *clientStream) {\n\t// TODO: check that any declared content-length matches, like\n\t// server.go's (*stream).endStream method.\n\tif !cs.readClosed {\n\t\tcs.readClosed = true\n\t\t// Close cs.bufPipe and cs.peerClosed with cc.mu held to avoid a\n\t\t// race condition: The caller can read io.EOF from Response.Body\n\t\t// and close the body before we close cs.peerClosed, causing\n\t\t// cleanupWriteRequest to send a RST_STREAM.\n\t\trl.cc.mu.Lock()\n\t\tdefer rl.cc.mu.Unlock()\n\t\tcs.bufPipe.closeWithErrorAndCode(io.EOF, cs.copyTrailers)\n\t\tclose(cs.peerClosed)\n\t}\n}\n\nfunc (rl *clientConnReadLoop) endStreamError(cs *clientStream, err error) {\n\tcs.readAborted = true\n\tcs.abortStream(err)\n}\n\n// Constants passed to streamByID for documentation purposes.\nconst (\n\theaderOrDataFrame    = true\n\tnotHeaderOrDataFrame = false\n)\n\n// streamByID returns the stream with the given id, or nil if no stream has that id.\n// If headerOrData is true, it clears rst.StreamPingsBlocked.\nfunc (rl *clientConnReadLoop) streamByID(id uint32, headerOrData bool) *clientStream {\n\trl.cc.mu.Lock()\n\tdefer rl.cc.mu.Unlock()\n\tif headerOrData {\n\t\t// Work around an unfortunate gRPC behavior.\n\t\t// See comment on ClientConn.rstStreamPingsBlocked for details.\n\t\trl.cc.rstStreamPingsBlocked = false\n\t}\n\tcs := rl.cc.streams[id]\n\tif cs != nil && !cs.readAborted {\n\t\treturn cs\n\t}\n\treturn nil\n}\n\nfunc (cs *clientStream) copyTrailers() {\n\tfor k, vv := range cs.trailer {\n\t\tt := cs.resTrailer\n\t\tif *t == nil {\n\t\t\t*t = make(http.Header)\n\t\t}\n\t\t(*t)[k] = vv\n\t}\n}\n\nfunc (rl *clientConnReadLoop) processGoAway(f *GoAwayFrame) error {\n\tcc := rl.cc\n\tcc.t.connPool().MarkDead(cc)\n\tif f.ErrCode != 0 {\n\t\t// TODO: deal with GOAWAY more. particularly the error code\n\t\tcc.vlogf(\"transport got GOAWAY with error code = %v\", f.ErrCode)\n\t\tif fn := cc.t.CountError; fn != nil {\n\t\t\tfn(\"recv_goaway_\" + f.ErrCode.stringToken())\n\t\t}\n\t}\n\tcc.setGoAway(f)\n\treturn nil\n}\n\nfunc (rl *clientConnReadLoop) processSettings(f *SettingsFrame) error {\n\tcc := rl.cc\n\t// Locking both mu and wmu here allows frame encoding to read settings with only wmu held.\n\t// Acquiring wmu when f.IsAck() is unnecessary, but convenient and mostly harmless.\n\tcc.wmu.Lock()\n\tdefer cc.wmu.Unlock()\n\n\tif err := rl.processSettingsNoWrite(f); err != nil {\n\t\treturn err\n\t}\n\tif !f.IsAck() {\n\t\tcc.fr.WriteSettingsAck()\n\t\tcc.bw.Flush()\n\t}\n\treturn nil\n}\n\nfunc (rl *clientConnReadLoop) processSettingsNoWrite(f *SettingsFrame) error {\n\tcc := rl.cc\n\tcc.mu.Lock()\n\tdefer cc.mu.Unlock()\n\n\tif f.IsAck() {\n\t\tif cc.wantSettingsAck {\n\t\t\tcc.wantSettingsAck = false\n\t\t\treturn nil\n\t\t}\n\t\treturn ConnectionError(ErrCodeProtocol)\n\t}\n\n\tvar seenMaxConcurrentStreams bool\n\terr := f.ForeachSetting(func(s Setting) error {\n\t\tswitch s.ID {\n\t\tcase SettingMaxFrameSize:\n\t\t\tcc.maxFrameSize = s.Val\n\t\tcase SettingMaxConcurrentStreams:\n\t\t\tcc.maxConcurrentStreams = s.Val\n\t\t\tseenMaxConcurrentStreams = true\n\t\tcase SettingMaxHeaderListSize:\n\t\t\tcc.peerMaxHeaderListSize = uint64(s.Val)\n\t\tcase SettingInitialWindowSize:\n\t\t\t// Values above the maximum flow-control\n\t\t\t// window size of 2^31-1 MUST be treated as a\n\t\t\t// connection error (Section 5.4.1) of type\n\t\t\t// FLOW_CONTROL_ERROR.\n\t\t\tif s.Val > math.MaxInt32 {\n\t\t\t\treturn ConnectionError(ErrCodeFlowControl)\n\t\t\t}\n\n\t\t\t// Adjust flow control of currently-open\n\t\t\t// frames by the difference of the old initial\n\t\t\t// window size and this one.\n\t\t\tdelta := int32(s.Val) - int32(cc.initialWindowSize)\n\t\t\tfor _, cs := range cc.streams {\n\t\t\t\tcs.flow.add(delta)\n\t\t\t}\n\t\t\tcc.cond.Broadcast()\n\n\t\t\tcc.initialWindowSize = s.Val\n\t\tcase SettingHeaderTableSize:\n\t\t\tcc.henc.SetMaxDynamicTableSize(s.Val)\n\t\t\tcc.peerMaxHeaderTableSize = s.Val\n\t\tcase SettingEnableConnectProtocol:\n\t\t\tif err := s.Valid(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\t// If the peer wants to send us SETTINGS_ENABLE_CONNECT_PROTOCOL,\n\t\t\t// we require that it do so in the first SETTINGS frame.\n\t\t\t//\n\t\t\t// When we attempt to use extended CONNECT, we wait for the first\n\t\t\t// SETTINGS frame to see if the server supports it. If we let the\n\t\t\t// server enable the feature with a later SETTINGS frame, then\n\t\t\t// users will see inconsistent results depending on whether we've\n\t\t\t// seen that frame or not.\n\t\t\tif !cc.seenSettings {\n\t\t\t\tcc.extendedConnectAllowed = s.Val == 1\n\t\t\t}\n\t\tdefault:\n\t\t\tcc.vlogf(\"Unhandled Setting: %v\", s)\n\t\t}\n\t\treturn nil\n\t})\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !cc.seenSettings {\n\t\tif !seenMaxConcurrentStreams {\n\t\t\t// This was the servers initial SETTINGS frame and it\n\t\t\t// didn't contain a MAX_CONCURRENT_STREAMS field so\n\t\t\t// increase the number of concurrent streams this\n\t\t\t// connection can establish to our default.\n\t\t\tcc.maxConcurrentStreams = defaultMaxConcurrentStreams\n\t\t}\n\t\tclose(cc.seenSettingsChan)\n\t\tcc.seenSettings = true\n\t}\n\n\treturn nil\n}\n\nfunc (rl *clientConnReadLoop) processWindowUpdate(f *WindowUpdateFrame) error {\n\tcc := rl.cc\n\tcs := rl.streamByID(f.StreamID, notHeaderOrDataFrame)\n\tif f.StreamID != 0 && cs == nil {\n\t\treturn nil\n\t}\n\n\tcc.mu.Lock()\n\tdefer cc.mu.Unlock()\n\n\tfl := &cc.flow\n\tif cs != nil {\n\t\tfl = &cs.flow\n\t}\n\tif !fl.add(int32(f.Increment)) {\n\t\t// For stream, the sender sends RST_STREAM with an error code of FLOW_CONTROL_ERROR\n\t\tif cs != nil {\n\t\t\trl.endStreamError(cs, StreamError{\n\t\t\t\tStreamID: f.StreamID,\n\t\t\t\tCode:     ErrCodeFlowControl,\n\t\t\t})\n\t\t\treturn nil\n\t\t}\n\n\t\treturn ConnectionError(ErrCodeFlowControl)\n\t}\n\tcc.cond.Broadcast()\n\treturn nil\n}\n\nfunc (rl *clientConnReadLoop) processResetStream(f *RSTStreamFrame) error {\n\tcs := rl.streamByID(f.StreamID, notHeaderOrDataFrame)\n\tif cs == nil {\n\t\t// TODO: return error if server tries to RST_STREAM an idle stream\n\t\treturn nil\n\t}\n\tserr := streamError(cs.ID, f.ErrCode)\n\tserr.Cause = errFromPeer\n\tif f.ErrCode == ErrCodeProtocol {\n\t\trl.cc.SetDoNotReuse()\n\t}\n\tif fn := cs.cc.t.CountError; fn != nil {\n\t\tfn(\"recv_rststream_\" + f.ErrCode.stringToken())\n\t}\n\tcs.abortStream(serr)\n\n\tcs.bufPipe.CloseWithError(serr)\n\treturn nil\n}\n\n// Ping sends a PING frame to the server and waits for the ack.\nfunc (cc *ClientConn) Ping(ctx context.Context) error {\n\tc := make(chan struct{})\n\t// Generate a random payload\n\tvar p [8]byte\n\tfor {\n\t\tif _, err := rand.Read(p[:]); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcc.mu.Lock()\n\t\t// check for dup before insert\n\t\tif _, found := cc.pings[p]; !found {\n\t\t\tcc.pings[p] = c\n\t\t\tcc.mu.Unlock()\n\t\t\tbreak\n\t\t}\n\t\tcc.mu.Unlock()\n\t}\n\tvar pingError error\n\terrc := make(chan struct{})\n\tgo func() {\n\t\tcc.t.markNewGoroutine()\n\t\tcc.wmu.Lock()\n\t\tdefer cc.wmu.Unlock()\n\t\tif pingError = cc.fr.WritePing(false, p); pingError != nil {\n\t\t\tclose(errc)\n\t\t\treturn\n\t\t}\n\t\tif pingError = cc.bw.Flush(); pingError != nil {\n\t\t\tclose(errc)\n\t\t\treturn\n\t\t}\n\t}()\n\tselect {\n\tcase <-c:\n\t\treturn nil\n\tcase <-errc:\n\t\treturn pingError\n\tcase <-ctx.Done():\n\t\treturn ctx.Err()\n\tcase <-cc.readerDone:\n\t\t// connection closed\n\t\treturn cc.readerErr\n\t}\n}\n\nfunc (rl *clientConnReadLoop) processPing(f *PingFrame) error {\n\tif f.IsAck() {\n\t\tcc := rl.cc\n\t\tcc.mu.Lock()\n\t\tdefer cc.mu.Unlock()\n\t\t// If ack, notify listener if any\n\t\tif c, ok := cc.pings[f.Data]; ok {\n\t\t\tclose(c)\n\t\t\tdelete(cc.pings, f.Data)\n\t\t}\n\t\tif cc.pendingResets > 0 {\n\t\t\t// See clientStream.cleanupWriteRequest.\n\t\t\tcc.pendingResets = 0\n\t\t\tcc.rstStreamPingsBlocked = true\n\t\t\tcc.cond.Broadcast()\n\t\t}\n\t\treturn nil\n\t}\n\tcc := rl.cc\n\tcc.wmu.Lock()\n\tdefer cc.wmu.Unlock()\n\tif err := cc.fr.WritePing(true, f.Data); err != nil {\n\t\treturn err\n\t}\n\treturn cc.bw.Flush()\n}\n\nfunc (rl *clientConnReadLoop) processPushPromise(f *PushPromiseFrame) error {\n\t// We told the peer we don't want them.\n\t// Spec says:\n\t// \"PUSH_PROMISE MUST NOT be sent if the SETTINGS_ENABLE_PUSH\n\t// setting of the peer endpoint is set to 0. An endpoint that\n\t// has set this setting and has received acknowledgement MUST\n\t// treat the receipt of a PUSH_PROMISE frame as a connection\n\t// error (Section 5.4.1) of type PROTOCOL_ERROR.\"\n\treturn ConnectionError(ErrCodeProtocol)\n}\n\n// writeStreamReset sends a RST_STREAM frame.\n// When ping is true, it also sends a PING frame with a random payload.\nfunc (cc *ClientConn) writeStreamReset(streamID uint32, code ErrCode, ping bool, err error) {\n\t// TODO: map err to more interesting error codes, once the\n\t// HTTP community comes up with some. But currently for\n\t// RST_STREAM there's no equivalent to GOAWAY frame's debug\n\t// data, and the error codes are all pretty vague (\"cancel\").\n\tcc.wmu.Lock()\n\tcc.fr.WriteRSTStream(streamID, code)\n\tif ping {\n\t\tvar payload [8]byte\n\t\trand.Read(payload[:])\n\t\tcc.fr.WritePing(false, payload)\n\t}\n\tcc.bw.Flush()\n\tcc.wmu.Unlock()\n}\n\nvar (\n\terrResponseHeaderListSize = errors.New(\"http2: response header list larger than advertised limit\")\n\terrRequestHeaderListSize  = httpcommon.ErrRequestHeaderListSize\n)\n\nfunc (cc *ClientConn) logf(format string, args ...interface{}) {\n\tcc.t.logf(format, args...)\n}\n\nfunc (cc *ClientConn) vlogf(format string, args ...interface{}) {\n\tcc.t.vlogf(format, args...)\n}\n\nfunc (t *Transport) vlogf(format string, args ...interface{}) {\n\tif VerboseLogs {\n\t\tt.logf(format, args...)\n\t}\n}\n\nfunc (t *Transport) logf(format string, args ...interface{}) {\n\tlog.Printf(format, args...)\n}\n\nvar noBody io.ReadCloser = noBodyReader{}\n\ntype noBodyReader struct{}\n\nfunc (noBodyReader) Close() error             { return nil }\nfunc (noBodyReader) Read([]byte) (int, error) { return 0, io.EOF }\n\ntype missingBody struct{}\n\nfunc (missingBody) Close() error             { return nil }\nfunc (missingBody) Read([]byte) (int, error) { return 0, io.ErrUnexpectedEOF }\n\nfunc strSliceContains(ss []string, s string) bool {\n\tfor _, v := range ss {\n\t\tif v == s {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\ntype erringRoundTripper struct{ err error }\n\nfunc (rt erringRoundTripper) RoundTripErr() error                             { return rt.err }\nfunc (rt erringRoundTripper) RoundTrip(*http.Request) (*http.Response, error) { return nil, rt.err }\n\n// gzipReader wraps a response body so it can lazily\n// call gzip.NewReader on the first call to Read\ntype gzipReader struct {\n\t_    incomparable\n\tbody io.ReadCloser // underlying Response.Body\n\tzr   *gzip.Reader  // lazily-initialized gzip reader\n\tzerr error         // sticky error\n}\n\nfunc (gz *gzipReader) Read(p []byte) (n int, err error) {\n\tif gz.zerr != nil {\n\t\treturn 0, gz.zerr\n\t}\n\tif gz.zr == nil {\n\t\tgz.zr, err = gzip.NewReader(gz.body)\n\t\tif err != nil {\n\t\t\tgz.zerr = err\n\t\t\treturn 0, err\n\t\t}\n\t}\n\treturn gz.zr.Read(p)\n}\n\nfunc (gz *gzipReader) Close() error {\n\tif err := gz.body.Close(); err != nil {\n\t\treturn err\n\t}\n\tgz.zerr = fs.ErrClosed\n\treturn nil\n}\n\ntype errorReader struct{ err error }\n\nfunc (r errorReader) Read(p []byte) (int, error) { return 0, r.err }\n\n// isConnectionCloseRequest reports whether req should use its own\n// connection for a single request and then close the connection.\nfunc isConnectionCloseRequest(req *http.Request) bool {\n\treturn req.Close || httpguts.HeaderValuesContainsToken(req.Header[\"Connection\"], \"close\")\n}\n\n// registerHTTPSProtocol calls Transport.RegisterProtocol but\n// converting panics into errors.\nfunc registerHTTPSProtocol(t *http.Transport, rt noDialH2RoundTripper) (err error) {\n\tdefer func() {\n\t\tif e := recover(); e != nil {\n\t\t\terr = fmt.Errorf(\"%v\", e)\n\t\t}\n\t}()\n\tt.RegisterProtocol(\"https\", rt)\n\treturn nil\n}\n\n// noDialH2RoundTripper is a RoundTripper which only tries to complete the request\n// if there's already has a cached connection to the host.\n// (The field is exported so it can be accessed via reflect from net/http; tested\n// by TestNoDialH2RoundTripperType)\ntype noDialH2RoundTripper struct{ *Transport }\n\nfunc (rt noDialH2RoundTripper) RoundTrip(req *http.Request) (*http.Response, error) {\n\tres, err := rt.Transport.RoundTrip(req)\n\tif isNoCachedConnError(err) {\n\t\treturn nil, http.ErrSkipAltProtocol\n\t}\n\treturn res, err\n}\n\nfunc (t *Transport) idleConnTimeout() time.Duration {\n\t// to keep things backwards compatible, we use non-zero values of\n\t// IdleConnTimeout, followed by using the IdleConnTimeout on the underlying\n\t// http1 transport, followed by 0\n\tif t.IdleConnTimeout != 0 {\n\t\treturn t.IdleConnTimeout\n\t}\n\n\tif t.t1 != nil {\n\t\treturn t.t1.IdleConnTimeout\n\t}\n\n\treturn 0\n}\n\nfunc traceGetConn(req *http.Request, hostPort string) {\n\ttrace := httptrace.ContextClientTrace(req.Context())\n\tif trace == nil || trace.GetConn == nil {\n\t\treturn\n\t}\n\ttrace.GetConn(hostPort)\n}\n\nfunc traceGotConn(req *http.Request, cc *ClientConn, reused bool) {\n\ttrace := httptrace.ContextClientTrace(req.Context())\n\tif trace == nil || trace.GotConn == nil {\n\t\treturn\n\t}\n\tci := httptrace.GotConnInfo{Conn: cc.tconn}\n\tci.Reused = reused\n\tcc.mu.Lock()\n\tci.WasIdle = len(cc.streams) == 0 && reused\n\tif ci.WasIdle && !cc.lastActive.IsZero() {\n\t\tci.IdleTime = cc.t.timeSince(cc.lastActive)\n\t}\n\tcc.mu.Unlock()\n\n\ttrace.GotConn(ci)\n}\n\nfunc traceWroteHeaders(trace *httptrace.ClientTrace) {\n\tif trace != nil && trace.WroteHeaders != nil {\n\t\ttrace.WroteHeaders()\n\t}\n}\n\nfunc traceGot100Continue(trace *httptrace.ClientTrace) {\n\tif trace != nil && trace.Got100Continue != nil {\n\t\ttrace.Got100Continue()\n\t}\n}\n\nfunc traceWait100Continue(trace *httptrace.ClientTrace) {\n\tif trace != nil && trace.Wait100Continue != nil {\n\t\ttrace.Wait100Continue()\n\t}\n}\n\nfunc traceWroteRequest(trace *httptrace.ClientTrace, err error) {\n\tif trace != nil && trace.WroteRequest != nil {\n\t\ttrace.WroteRequest(httptrace.WroteRequestInfo{Err: err})\n\t}\n}\n\nfunc traceFirstResponseByte(trace *httptrace.ClientTrace) {\n\tif trace != nil && trace.GotFirstResponseByte != nil {\n\t\ttrace.GotFirstResponseByte()\n\t}\n}\n\nfunc traceGot1xxResponseFunc(trace *httptrace.ClientTrace) func(int, textproto.MIMEHeader) error {\n\tif trace != nil {\n\t\treturn trace.Got1xxResponse\n\t}\n\treturn nil\n}\n\n// dialTLSWithContext uses tls.Dialer, added in Go 1.15, to open a TLS\n// connection.\nfunc (t *Transport) dialTLSWithContext(ctx context.Context, network, addr string, cfg *tls.Config) (*tls.Conn, error) {\n\tdialer := &tls.Dialer{\n\t\tConfig: cfg,\n\t}\n\tcn, err := dialer.DialContext(ctx, network, addr)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\ttlsCn := cn.(*tls.Conn) // DialContext comment promises this will always succeed\n\treturn tlsCn, nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/unencrypted.go",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage http2\n\nimport (\n\t\"crypto/tls\"\n\t\"errors\"\n\t\"net\"\n)\n\nconst nextProtoUnencryptedHTTP2 = \"unencrypted_http2\"\n\n// unencryptedNetConnFromTLSConn retrieves a net.Conn wrapped in a *tls.Conn.\n//\n// TLSNextProto functions accept a *tls.Conn.\n//\n// When passing an unencrypted HTTP/2 connection to a TLSNextProto function,\n// we pass a *tls.Conn with an underlying net.Conn containing the unencrypted connection.\n// To be extra careful about mistakes (accidentally dropping TLS encryption in a place\n// where we want it), the tls.Conn contains a net.Conn with an UnencryptedNetConn method\n// that returns the actual connection we want to use.\nfunc unencryptedNetConnFromTLSConn(tc *tls.Conn) (net.Conn, error) {\n\tconner, ok := tc.NetConn().(interface {\n\t\tUnencryptedNetConn() net.Conn\n\t})\n\tif !ok {\n\t\treturn nil, errors.New(\"http2: TLS conn unexpectedly found in unencrypted handoff\")\n\t}\n\treturn conner.UnencryptedNetConn(), nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/write.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage http2\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"log\"\n\t\"net/http\"\n\t\"net/url\"\n\n\t\"golang.org/x/net/http/httpguts\"\n\t\"golang.org/x/net/http2/hpack\"\n\t\"golang.org/x/net/internal/httpcommon\"\n)\n\n// writeFramer is implemented by any type that is used to write frames.\ntype writeFramer interface {\n\twriteFrame(writeContext) error\n\n\t// staysWithinBuffer reports whether this writer promises that\n\t// it will only write less than or equal to size bytes, and it\n\t// won't Flush the write context.\n\tstaysWithinBuffer(size int) bool\n}\n\n// writeContext is the interface needed by the various frame writer\n// types below. All the writeFrame methods below are scheduled via the\n// frame writing scheduler (see writeScheduler in writesched.go).\n//\n// This interface is implemented by *serverConn.\n//\n// TODO: decide whether to a) use this in the client code (which didn't\n// end up using this yet, because it has a simpler design, not\n// currently implementing priorities), or b) delete this and\n// make the server code a bit more concrete.\ntype writeContext interface {\n\tFramer() *Framer\n\tFlush() error\n\tCloseConn() error\n\t// HeaderEncoder returns an HPACK encoder that writes to the\n\t// returned buffer.\n\tHeaderEncoder() (*hpack.Encoder, *bytes.Buffer)\n}\n\n// writeEndsStream reports whether w writes a frame that will transition\n// the stream to a half-closed local state. This returns false for RST_STREAM,\n// which closes the entire stream (not just the local half).\nfunc writeEndsStream(w writeFramer) bool {\n\tswitch v := w.(type) {\n\tcase *writeData:\n\t\treturn v.endStream\n\tcase *writeResHeaders:\n\t\treturn v.endStream\n\tcase nil:\n\t\t// This can only happen if the caller reuses w after it's\n\t\t// been intentionally nil'ed out to prevent use. Keep this\n\t\t// here to catch future refactoring breaking it.\n\t\tpanic(\"writeEndsStream called on nil writeFramer\")\n\t}\n\treturn false\n}\n\ntype flushFrameWriter struct{}\n\nfunc (flushFrameWriter) writeFrame(ctx writeContext) error {\n\treturn ctx.Flush()\n}\n\nfunc (flushFrameWriter) staysWithinBuffer(max int) bool { return false }\n\ntype writeSettings []Setting\n\nfunc (s writeSettings) staysWithinBuffer(max int) bool {\n\tconst settingSize = 6 // uint16 + uint32\n\treturn frameHeaderLen+settingSize*len(s) <= max\n\n}\n\nfunc (s writeSettings) writeFrame(ctx writeContext) error {\n\treturn ctx.Framer().WriteSettings([]Setting(s)...)\n}\n\ntype writeGoAway struct {\n\tmaxStreamID uint32\n\tcode        ErrCode\n}\n\nfunc (p *writeGoAway) writeFrame(ctx writeContext) error {\n\terr := ctx.Framer().WriteGoAway(p.maxStreamID, p.code, nil)\n\tctx.Flush() // ignore error: we're hanging up on them anyway\n\treturn err\n}\n\nfunc (*writeGoAway) staysWithinBuffer(max int) bool { return false } // flushes\n\ntype writeData struct {\n\tstreamID  uint32\n\tp         []byte\n\tendStream bool\n}\n\nfunc (w *writeData) String() string {\n\treturn fmt.Sprintf(\"writeData(stream=%d, p=%d, endStream=%v)\", w.streamID, len(w.p), w.endStream)\n}\n\nfunc (w *writeData) writeFrame(ctx writeContext) error {\n\treturn ctx.Framer().WriteData(w.streamID, w.endStream, w.p)\n}\n\nfunc (w *writeData) staysWithinBuffer(max int) bool {\n\treturn frameHeaderLen+len(w.p) <= max\n}\n\n// handlerPanicRST is the message sent from handler goroutines when\n// the handler panics.\ntype handlerPanicRST struct {\n\tStreamID uint32\n}\n\nfunc (hp handlerPanicRST) writeFrame(ctx writeContext) error {\n\treturn ctx.Framer().WriteRSTStream(hp.StreamID, ErrCodeInternal)\n}\n\nfunc (hp handlerPanicRST) staysWithinBuffer(max int) bool { return frameHeaderLen+4 <= max }\n\nfunc (se StreamError) writeFrame(ctx writeContext) error {\n\treturn ctx.Framer().WriteRSTStream(se.StreamID, se.Code)\n}\n\nfunc (se StreamError) staysWithinBuffer(max int) bool { return frameHeaderLen+4 <= max }\n\ntype writePing struct {\n\tdata [8]byte\n}\n\nfunc (w writePing) writeFrame(ctx writeContext) error {\n\treturn ctx.Framer().WritePing(false, w.data)\n}\n\nfunc (w writePing) staysWithinBuffer(max int) bool { return frameHeaderLen+len(w.data) <= max }\n\ntype writePingAck struct{ pf *PingFrame }\n\nfunc (w writePingAck) writeFrame(ctx writeContext) error {\n\treturn ctx.Framer().WritePing(true, w.pf.Data)\n}\n\nfunc (w writePingAck) staysWithinBuffer(max int) bool { return frameHeaderLen+len(w.pf.Data) <= max }\n\ntype writeSettingsAck struct{}\n\nfunc (writeSettingsAck) writeFrame(ctx writeContext) error {\n\treturn ctx.Framer().WriteSettingsAck()\n}\n\nfunc (writeSettingsAck) staysWithinBuffer(max int) bool { return frameHeaderLen <= max }\n\n// splitHeaderBlock splits headerBlock into fragments so that each fragment fits\n// in a single frame, then calls fn for each fragment. firstFrag/lastFrag are true\n// for the first/last fragment, respectively.\nfunc splitHeaderBlock(ctx writeContext, headerBlock []byte, fn func(ctx writeContext, frag []byte, firstFrag, lastFrag bool) error) error {\n\t// For now we're lazy and just pick the minimum MAX_FRAME_SIZE\n\t// that all peers must support (16KB). Later we could care\n\t// more and send larger frames if the peer advertised it, but\n\t// there's little point. Most headers are small anyway (so we\n\t// generally won't have CONTINUATION frames), and extra frames\n\t// only waste 9 bytes anyway.\n\tconst maxFrameSize = 16384\n\n\tfirst := true\n\tfor len(headerBlock) > 0 {\n\t\tfrag := headerBlock\n\t\tif len(frag) > maxFrameSize {\n\t\t\tfrag = frag[:maxFrameSize]\n\t\t}\n\t\theaderBlock = headerBlock[len(frag):]\n\t\tif err := fn(ctx, frag, first, len(headerBlock) == 0); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfirst = false\n\t}\n\treturn nil\n}\n\n// writeResHeaders is a request to write a HEADERS and 0+ CONTINUATION frames\n// for HTTP response headers or trailers from a server handler.\ntype writeResHeaders struct {\n\tstreamID    uint32\n\thttpResCode int         // 0 means no \":status\" line\n\th           http.Header // may be nil\n\ttrailers    []string    // if non-nil, which keys of h to write. nil means all.\n\tendStream   bool\n\n\tdate          string\n\tcontentType   string\n\tcontentLength string\n}\n\nfunc encKV(enc *hpack.Encoder, k, v string) {\n\tif VerboseLogs {\n\t\tlog.Printf(\"http2: server encoding header %q = %q\", k, v)\n\t}\n\tenc.WriteField(hpack.HeaderField{Name: k, Value: v})\n}\n\nfunc (w *writeResHeaders) staysWithinBuffer(max int) bool {\n\t// TODO: this is a common one. It'd be nice to return true\n\t// here and get into the fast path if we could be clever and\n\t// calculate the size fast enough, or at least a conservative\n\t// upper bound that usually fires. (Maybe if w.h and\n\t// w.trailers are nil, so we don't need to enumerate it.)\n\t// Otherwise I'm afraid that just calculating the length to\n\t// answer this question would be slower than the ~2µs benefit.\n\treturn false\n}\n\nfunc (w *writeResHeaders) writeFrame(ctx writeContext) error {\n\tenc, buf := ctx.HeaderEncoder()\n\tbuf.Reset()\n\n\tif w.httpResCode != 0 {\n\t\tencKV(enc, \":status\", httpCodeString(w.httpResCode))\n\t}\n\n\tencodeHeaders(enc, w.h, w.trailers)\n\n\tif w.contentType != \"\" {\n\t\tencKV(enc, \"content-type\", w.contentType)\n\t}\n\tif w.contentLength != \"\" {\n\t\tencKV(enc, \"content-length\", w.contentLength)\n\t}\n\tif w.date != \"\" {\n\t\tencKV(enc, \"date\", w.date)\n\t}\n\n\theaderBlock := buf.Bytes()\n\tif len(headerBlock) == 0 && w.trailers == nil {\n\t\tpanic(\"unexpected empty hpack\")\n\t}\n\n\treturn splitHeaderBlock(ctx, headerBlock, w.writeHeaderBlock)\n}\n\nfunc (w *writeResHeaders) writeHeaderBlock(ctx writeContext, frag []byte, firstFrag, lastFrag bool) error {\n\tif firstFrag {\n\t\treturn ctx.Framer().WriteHeaders(HeadersFrameParam{\n\t\t\tStreamID:      w.streamID,\n\t\t\tBlockFragment: frag,\n\t\t\tEndStream:     w.endStream,\n\t\t\tEndHeaders:    lastFrag,\n\t\t})\n\t} else {\n\t\treturn ctx.Framer().WriteContinuation(w.streamID, lastFrag, frag)\n\t}\n}\n\n// writePushPromise is a request to write a PUSH_PROMISE and 0+ CONTINUATION frames.\ntype writePushPromise struct {\n\tstreamID uint32   // pusher stream\n\tmethod   string   // for :method\n\turl      *url.URL // for :scheme, :authority, :path\n\th        http.Header\n\n\t// Creates an ID for a pushed stream. This runs on serveG just before\n\t// the frame is written. The returned ID is copied to promisedID.\n\tallocatePromisedID func() (uint32, error)\n\tpromisedID         uint32\n}\n\nfunc (w *writePushPromise) staysWithinBuffer(max int) bool {\n\t// TODO: see writeResHeaders.staysWithinBuffer\n\treturn false\n}\n\nfunc (w *writePushPromise) writeFrame(ctx writeContext) error {\n\tenc, buf := ctx.HeaderEncoder()\n\tbuf.Reset()\n\n\tencKV(enc, \":method\", w.method)\n\tencKV(enc, \":scheme\", w.url.Scheme)\n\tencKV(enc, \":authority\", w.url.Host)\n\tencKV(enc, \":path\", w.url.RequestURI())\n\tencodeHeaders(enc, w.h, nil)\n\n\theaderBlock := buf.Bytes()\n\tif len(headerBlock) == 0 {\n\t\tpanic(\"unexpected empty hpack\")\n\t}\n\n\treturn splitHeaderBlock(ctx, headerBlock, w.writeHeaderBlock)\n}\n\nfunc (w *writePushPromise) writeHeaderBlock(ctx writeContext, frag []byte, firstFrag, lastFrag bool) error {\n\tif firstFrag {\n\t\treturn ctx.Framer().WritePushPromise(PushPromiseParam{\n\t\t\tStreamID:      w.streamID,\n\t\t\tPromiseID:     w.promisedID,\n\t\t\tBlockFragment: frag,\n\t\t\tEndHeaders:    lastFrag,\n\t\t})\n\t} else {\n\t\treturn ctx.Framer().WriteContinuation(w.streamID, lastFrag, frag)\n\t}\n}\n\ntype write100ContinueHeadersFrame struct {\n\tstreamID uint32\n}\n\nfunc (w write100ContinueHeadersFrame) writeFrame(ctx writeContext) error {\n\tenc, buf := ctx.HeaderEncoder()\n\tbuf.Reset()\n\tencKV(enc, \":status\", \"100\")\n\treturn ctx.Framer().WriteHeaders(HeadersFrameParam{\n\t\tStreamID:      w.streamID,\n\t\tBlockFragment: buf.Bytes(),\n\t\tEndStream:     false,\n\t\tEndHeaders:    true,\n\t})\n}\n\nfunc (w write100ContinueHeadersFrame) staysWithinBuffer(max int) bool {\n\t// Sloppy but conservative:\n\treturn 9+2*(len(\":status\")+len(\"100\")) <= max\n}\n\ntype writeWindowUpdate struct {\n\tstreamID uint32 // or 0 for conn-level\n\tn        uint32\n}\n\nfunc (wu writeWindowUpdate) staysWithinBuffer(max int) bool { return frameHeaderLen+4 <= max }\n\nfunc (wu writeWindowUpdate) writeFrame(ctx writeContext) error {\n\treturn ctx.Framer().WriteWindowUpdate(wu.streamID, wu.n)\n}\n\n// encodeHeaders encodes an http.Header. If keys is not nil, then (k, h[k])\n// is encoded only if k is in keys.\nfunc encodeHeaders(enc *hpack.Encoder, h http.Header, keys []string) {\n\tif keys == nil {\n\t\tsorter := sorterPool.Get().(*sorter)\n\t\t// Using defer here, since the returned keys from the\n\t\t// sorter.Keys method is only valid until the sorter\n\t\t// is returned:\n\t\tdefer sorterPool.Put(sorter)\n\t\tkeys = sorter.Keys(h)\n\t}\n\tfor _, k := range keys {\n\t\tvv := h[k]\n\t\tk, ascii := httpcommon.LowerHeader(k)\n\t\tif !ascii {\n\t\t\t// Skip writing invalid headers. Per RFC 7540, Section 8.1.2, header\n\t\t\t// field names have to be ASCII characters (just as in HTTP/1.x).\n\t\t\tcontinue\n\t\t}\n\t\tif !validWireHeaderFieldName(k) {\n\t\t\t// Skip it as backup paranoia. Per\n\t\t\t// golang.org/issue/14048, these should\n\t\t\t// already be rejected at a higher level.\n\t\t\tcontinue\n\t\t}\n\t\tisTE := k == \"transfer-encoding\"\n\t\tfor _, v := range vv {\n\t\t\tif !httpguts.ValidHeaderFieldValue(v) {\n\t\t\t\t// TODO: return an error? golang.org/issue/14048\n\t\t\t\t// For now just omit it.\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\t// TODO: more of \"8.1.2.2 Connection-Specific Header Fields\"\n\t\t\tif isTE && v != \"trailers\" {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tencKV(enc, k, v)\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/writesched.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage http2\n\nimport \"fmt\"\n\n// WriteScheduler is the interface implemented by HTTP/2 write schedulers.\n// Methods are never called concurrently.\ntype WriteScheduler interface {\n\t// OpenStream opens a new stream in the write scheduler.\n\t// It is illegal to call this with streamID=0 or with a streamID that is\n\t// already open -- the call may panic.\n\tOpenStream(streamID uint32, options OpenStreamOptions)\n\n\t// CloseStream closes a stream in the write scheduler. Any frames queued on\n\t// this stream should be discarded. It is illegal to call this on a stream\n\t// that is not open -- the call may panic.\n\tCloseStream(streamID uint32)\n\n\t// AdjustStream adjusts the priority of the given stream. This may be called\n\t// on a stream that has not yet been opened or has been closed. Note that\n\t// RFC 7540 allows PRIORITY frames to be sent on streams in any state. See:\n\t// https://tools.ietf.org/html/rfc7540#section-5.1\n\tAdjustStream(streamID uint32, priority PriorityParam)\n\n\t// Push queues a frame in the scheduler. In most cases, this will not be\n\t// called with wr.StreamID()!=0 unless that stream is currently open. The one\n\t// exception is RST_STREAM frames, which may be sent on idle or closed streams.\n\tPush(wr FrameWriteRequest)\n\n\t// Pop dequeues the next frame to write. Returns false if no frames can\n\t// be written. Frames with a given wr.StreamID() are Pop'd in the same\n\t// order they are Push'd, except RST_STREAM frames. No frames should be\n\t// discarded except by CloseStream.\n\tPop() (wr FrameWriteRequest, ok bool)\n}\n\n// OpenStreamOptions specifies extra options for WriteScheduler.OpenStream.\ntype OpenStreamOptions struct {\n\t// PusherID is zero if the stream was initiated by the client. Otherwise,\n\t// PusherID names the stream that pushed the newly opened stream.\n\tPusherID uint32\n}\n\n// FrameWriteRequest is a request to write a frame.\ntype FrameWriteRequest struct {\n\t// write is the interface value that does the writing, once the\n\t// WriteScheduler has selected this frame to write. The write\n\t// functions are all defined in write.go.\n\twrite writeFramer\n\n\t// stream is the stream on which this frame will be written.\n\t// nil for non-stream frames like PING and SETTINGS.\n\t// nil for RST_STREAM streams, which use the StreamError.StreamID field instead.\n\tstream *stream\n\n\t// done, if non-nil, must be a buffered channel with space for\n\t// 1 message and is sent the return value from write (or an\n\t// earlier error) when the frame has been written.\n\tdone chan error\n}\n\n// StreamID returns the id of the stream this frame will be written to.\n// 0 is used for non-stream frames such as PING and SETTINGS.\nfunc (wr FrameWriteRequest) StreamID() uint32 {\n\tif wr.stream == nil {\n\t\tif se, ok := wr.write.(StreamError); ok {\n\t\t\t// (*serverConn).resetStream doesn't set\n\t\t\t// stream because it doesn't necessarily have\n\t\t\t// one. So special case this type of write\n\t\t\t// message.\n\t\t\treturn se.StreamID\n\t\t}\n\t\treturn 0\n\t}\n\treturn wr.stream.id\n}\n\n// isControl reports whether wr is a control frame for MaxQueuedControlFrames\n// purposes. That includes non-stream frames and RST_STREAM frames.\nfunc (wr FrameWriteRequest) isControl() bool {\n\treturn wr.stream == nil\n}\n\n// DataSize returns the number of flow control bytes that must be consumed\n// to write this entire frame. This is 0 for non-DATA frames.\nfunc (wr FrameWriteRequest) DataSize() int {\n\tif wd, ok := wr.write.(*writeData); ok {\n\t\treturn len(wd.p)\n\t}\n\treturn 0\n}\n\n// Consume consumes min(n, available) bytes from this frame, where available\n// is the number of flow control bytes available on the stream. Consume returns\n// 0, 1, or 2 frames, where the integer return value gives the number of frames\n// returned.\n//\n// If flow control prevents consuming any bytes, this returns (_, _, 0). If\n// the entire frame was consumed, this returns (wr, _, 1). Otherwise, this\n// returns (consumed, rest, 2), where 'consumed' contains the consumed bytes and\n// 'rest' contains the remaining bytes. The consumed bytes are deducted from the\n// underlying stream's flow control budget.\nfunc (wr FrameWriteRequest) Consume(n int32) (FrameWriteRequest, FrameWriteRequest, int) {\n\tvar empty FrameWriteRequest\n\n\t// Non-DATA frames are always consumed whole.\n\twd, ok := wr.write.(*writeData)\n\tif !ok || len(wd.p) == 0 {\n\t\treturn wr, empty, 1\n\t}\n\n\t// Might need to split after applying limits.\n\tallowed := wr.stream.flow.available()\n\tif n < allowed {\n\t\tallowed = n\n\t}\n\tif wr.stream.sc.maxFrameSize < allowed {\n\t\tallowed = wr.stream.sc.maxFrameSize\n\t}\n\tif allowed <= 0 {\n\t\treturn empty, empty, 0\n\t}\n\tif len(wd.p) > int(allowed) {\n\t\twr.stream.flow.take(allowed)\n\t\tconsumed := FrameWriteRequest{\n\t\t\tstream: wr.stream,\n\t\t\twrite: &writeData{\n\t\t\t\tstreamID: wd.streamID,\n\t\t\t\tp:        wd.p[:allowed],\n\t\t\t\t// Even if the original had endStream set, there\n\t\t\t\t// are bytes remaining because len(wd.p) > allowed,\n\t\t\t\t// so we know endStream is false.\n\t\t\t\tendStream: false,\n\t\t\t},\n\t\t\t// Our caller is blocking on the final DATA frame, not\n\t\t\t// this intermediate frame, so no need to wait.\n\t\t\tdone: nil,\n\t\t}\n\t\trest := FrameWriteRequest{\n\t\t\tstream: wr.stream,\n\t\t\twrite: &writeData{\n\t\t\t\tstreamID:  wd.streamID,\n\t\t\t\tp:         wd.p[allowed:],\n\t\t\t\tendStream: wd.endStream,\n\t\t\t},\n\t\t\tdone: wr.done,\n\t\t}\n\t\treturn consumed, rest, 2\n\t}\n\n\t// The frame is consumed whole.\n\t// NB: This cast cannot overflow because allowed is <= math.MaxInt32.\n\twr.stream.flow.take(int32(len(wd.p)))\n\treturn wr, empty, 1\n}\n\n// String is for debugging only.\nfunc (wr FrameWriteRequest) String() string {\n\tvar des string\n\tif s, ok := wr.write.(fmt.Stringer); ok {\n\t\tdes = s.String()\n\t} else {\n\t\tdes = fmt.Sprintf(\"%T\", wr.write)\n\t}\n\treturn fmt.Sprintf(\"[FrameWriteRequest stream=%d, ch=%v, writer=%v]\", wr.StreamID(), wr.done != nil, des)\n}\n\n// replyToWriter sends err to wr.done and panics if the send must block\n// This does nothing if wr.done is nil.\nfunc (wr *FrameWriteRequest) replyToWriter(err error) {\n\tif wr.done == nil {\n\t\treturn\n\t}\n\tselect {\n\tcase wr.done <- err:\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"unbuffered done channel passed in for type %T\", wr.write))\n\t}\n\twr.write = nil // prevent use (assume it's tainted after wr.done send)\n}\n\n// writeQueue is used by implementations of WriteScheduler.\ntype writeQueue struct {\n\ts          []FrameWriteRequest\n\tprev, next *writeQueue\n}\n\nfunc (q *writeQueue) empty() bool { return len(q.s) == 0 }\n\nfunc (q *writeQueue) push(wr FrameWriteRequest) {\n\tq.s = append(q.s, wr)\n}\n\nfunc (q *writeQueue) shift() FrameWriteRequest {\n\tif len(q.s) == 0 {\n\t\tpanic(\"invalid use of queue\")\n\t}\n\twr := q.s[0]\n\t// TODO: less copy-happy queue.\n\tcopy(q.s, q.s[1:])\n\tq.s[len(q.s)-1] = FrameWriteRequest{}\n\tq.s = q.s[:len(q.s)-1]\n\treturn wr\n}\n\n// consume consumes up to n bytes from q.s[0]. If the frame is\n// entirely consumed, it is removed from the queue. If the frame\n// is partially consumed, the frame is kept with the consumed\n// bytes removed. Returns true iff any bytes were consumed.\nfunc (q *writeQueue) consume(n int32) (FrameWriteRequest, bool) {\n\tif len(q.s) == 0 {\n\t\treturn FrameWriteRequest{}, false\n\t}\n\tconsumed, rest, numresult := q.s[0].Consume(n)\n\tswitch numresult {\n\tcase 0:\n\t\treturn FrameWriteRequest{}, false\n\tcase 1:\n\t\tq.shift()\n\tcase 2:\n\t\tq.s[0] = rest\n\t}\n\treturn consumed, true\n}\n\ntype writeQueuePool []*writeQueue\n\n// put inserts an unused writeQueue into the pool.\nfunc (p *writeQueuePool) put(q *writeQueue) {\n\tfor i := range q.s {\n\t\tq.s[i] = FrameWriteRequest{}\n\t}\n\tq.s = q.s[:0]\n\t*p = append(*p, q)\n}\n\n// get returns an empty writeQueue.\nfunc (p *writeQueuePool) get() *writeQueue {\n\tln := len(*p)\n\tif ln == 0 {\n\t\treturn new(writeQueue)\n\t}\n\tx := ln - 1\n\tq := (*p)[x]\n\t(*p)[x] = nil\n\t*p = (*p)[:x]\n\treturn q\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/writesched_priority.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage http2\n\nimport (\n\t\"fmt\"\n\t\"math\"\n\t\"sort\"\n)\n\n// RFC 7540, Section 5.3.5: the default weight is 16.\nconst priorityDefaultWeight = 15 // 16 = 15 + 1\n\n// PriorityWriteSchedulerConfig configures a priorityWriteScheduler.\ntype PriorityWriteSchedulerConfig struct {\n\t// MaxClosedNodesInTree controls the maximum number of closed streams to\n\t// retain in the priority tree. Setting this to zero saves a small amount\n\t// of memory at the cost of performance.\n\t//\n\t// See RFC 7540, Section 5.3.4:\n\t//   \"It is possible for a stream to become closed while prioritization\n\t//   information ... is in transit. ... This potentially creates suboptimal\n\t//   prioritization, since the stream could be given a priority that is\n\t//   different from what is intended. To avoid these problems, an endpoint\n\t//   SHOULD retain stream prioritization state for a period after streams\n\t//   become closed. The longer state is retained, the lower the chance that\n\t//   streams are assigned incorrect or default priority values.\"\n\tMaxClosedNodesInTree int\n\n\t// MaxIdleNodesInTree controls the maximum number of idle streams to\n\t// retain in the priority tree. Setting this to zero saves a small amount\n\t// of memory at the cost of performance.\n\t//\n\t// See RFC 7540, Section 5.3.4:\n\t//   Similarly, streams that are in the \"idle\" state can be assigned\n\t//   priority or become a parent of other streams. This allows for the\n\t//   creation of a grouping node in the dependency tree, which enables\n\t//   more flexible expressions of priority. Idle streams begin with a\n\t//   default priority (Section 5.3.5).\n\tMaxIdleNodesInTree int\n\n\t// ThrottleOutOfOrderWrites enables write throttling to help ensure that\n\t// data is delivered in priority order. This works around a race where\n\t// stream B depends on stream A and both streams are about to call Write\n\t// to queue DATA frames. If B wins the race, a naive scheduler would eagerly\n\t// write as much data from B as possible, but this is suboptimal because A\n\t// is a higher-priority stream. With throttling enabled, we write a small\n\t// amount of data from B to minimize the amount of bandwidth that B can\n\t// steal from A.\n\tThrottleOutOfOrderWrites bool\n}\n\n// NewPriorityWriteScheduler constructs a WriteScheduler that schedules\n// frames by following HTTP/2 priorities as described in RFC 7540 Section 5.3.\n// If cfg is nil, default options are used.\nfunc NewPriorityWriteScheduler(cfg *PriorityWriteSchedulerConfig) WriteScheduler {\n\tif cfg == nil {\n\t\t// For justification of these defaults, see:\n\t\t// https://docs.google.com/document/d/1oLhNg1skaWD4_DtaoCxdSRN5erEXrH-KnLrMwEpOtFY\n\t\tcfg = &PriorityWriteSchedulerConfig{\n\t\t\tMaxClosedNodesInTree:     10,\n\t\t\tMaxIdleNodesInTree:       10,\n\t\t\tThrottleOutOfOrderWrites: false,\n\t\t}\n\t}\n\n\tws := &priorityWriteScheduler{\n\t\tnodes:                make(map[uint32]*priorityNode),\n\t\tmaxClosedNodesInTree: cfg.MaxClosedNodesInTree,\n\t\tmaxIdleNodesInTree:   cfg.MaxIdleNodesInTree,\n\t\tenableWriteThrottle:  cfg.ThrottleOutOfOrderWrites,\n\t}\n\tws.nodes[0] = &ws.root\n\tif cfg.ThrottleOutOfOrderWrites {\n\t\tws.writeThrottleLimit = 1024\n\t} else {\n\t\tws.writeThrottleLimit = math.MaxInt32\n\t}\n\treturn ws\n}\n\ntype priorityNodeState int\n\nconst (\n\tpriorityNodeOpen priorityNodeState = iota\n\tpriorityNodeClosed\n\tpriorityNodeIdle\n)\n\n// priorityNode is a node in an HTTP/2 priority tree.\n// Each node is associated with a single stream ID.\n// See RFC 7540, Section 5.3.\ntype priorityNode struct {\n\tq            writeQueue        // queue of pending frames to write\n\tid           uint32            // id of the stream, or 0 for the root of the tree\n\tweight       uint8             // the actual weight is weight+1, so the value is in [1,256]\n\tstate        priorityNodeState // open | closed | idle\n\tbytes        int64             // number of bytes written by this node, or 0 if closed\n\tsubtreeBytes int64             // sum(node.bytes) of all nodes in this subtree\n\n\t// These links form the priority tree.\n\tparent     *priorityNode\n\tkids       *priorityNode // start of the kids list\n\tprev, next *priorityNode // doubly-linked list of siblings\n}\n\nfunc (n *priorityNode) setParent(parent *priorityNode) {\n\tif n == parent {\n\t\tpanic(\"setParent to self\")\n\t}\n\tif n.parent == parent {\n\t\treturn\n\t}\n\t// Unlink from current parent.\n\tif parent := n.parent; parent != nil {\n\t\tif n.prev == nil {\n\t\t\tparent.kids = n.next\n\t\t} else {\n\t\t\tn.prev.next = n.next\n\t\t}\n\t\tif n.next != nil {\n\t\t\tn.next.prev = n.prev\n\t\t}\n\t}\n\t// Link to new parent.\n\t// If parent=nil, remove n from the tree.\n\t// Always insert at the head of parent.kids (this is assumed by walkReadyInOrder).\n\tn.parent = parent\n\tif parent == nil {\n\t\tn.next = nil\n\t\tn.prev = nil\n\t} else {\n\t\tn.next = parent.kids\n\t\tn.prev = nil\n\t\tif n.next != nil {\n\t\t\tn.next.prev = n\n\t\t}\n\t\tparent.kids = n\n\t}\n}\n\nfunc (n *priorityNode) addBytes(b int64) {\n\tn.bytes += b\n\tfor ; n != nil; n = n.parent {\n\t\tn.subtreeBytes += b\n\t}\n}\n\n// walkReadyInOrder iterates over the tree in priority order, calling f for each node\n// with a non-empty write queue. When f returns true, this function returns true and the\n// walk halts. tmp is used as scratch space for sorting.\n//\n// f(n, openParent) takes two arguments: the node to visit, n, and a bool that is true\n// if any ancestor p of n is still open (ignoring the root node).\nfunc (n *priorityNode) walkReadyInOrder(openParent bool, tmp *[]*priorityNode, f func(*priorityNode, bool) bool) bool {\n\tif !n.q.empty() && f(n, openParent) {\n\t\treturn true\n\t}\n\tif n.kids == nil {\n\t\treturn false\n\t}\n\n\t// Don't consider the root \"open\" when updating openParent since\n\t// we can't send data frames on the root stream (only control frames).\n\tif n.id != 0 {\n\t\topenParent = openParent || (n.state == priorityNodeOpen)\n\t}\n\n\t// Common case: only one kid or all kids have the same weight.\n\t// Some clients don't use weights; other clients (like web browsers)\n\t// use mostly-linear priority trees.\n\tw := n.kids.weight\n\tneedSort := false\n\tfor k := n.kids.next; k != nil; k = k.next {\n\t\tif k.weight != w {\n\t\t\tneedSort = true\n\t\t\tbreak\n\t\t}\n\t}\n\tif !needSort {\n\t\tfor k := n.kids; k != nil; k = k.next {\n\t\t\tif k.walkReadyInOrder(openParent, tmp, f) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\treturn false\n\t}\n\n\t// Uncommon case: sort the child nodes. We remove the kids from the parent,\n\t// then re-insert after sorting so we can reuse tmp for future sort calls.\n\t*tmp = (*tmp)[:0]\n\tfor n.kids != nil {\n\t\t*tmp = append(*tmp, n.kids)\n\t\tn.kids.setParent(nil)\n\t}\n\tsort.Sort(sortPriorityNodeSiblings(*tmp))\n\tfor i := len(*tmp) - 1; i >= 0; i-- {\n\t\t(*tmp)[i].setParent(n) // setParent inserts at the head of n.kids\n\t}\n\tfor k := n.kids; k != nil; k = k.next {\n\t\tif k.walkReadyInOrder(openParent, tmp, f) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\ntype sortPriorityNodeSiblings []*priorityNode\n\nfunc (z sortPriorityNodeSiblings) Len() int      { return len(z) }\nfunc (z sortPriorityNodeSiblings) Swap(i, k int) { z[i], z[k] = z[k], z[i] }\nfunc (z sortPriorityNodeSiblings) Less(i, k int) bool {\n\t// Prefer the subtree that has sent fewer bytes relative to its weight.\n\t// See sections 5.3.2 and 5.3.4.\n\twi, bi := float64(z[i].weight+1), float64(z[i].subtreeBytes)\n\twk, bk := float64(z[k].weight+1), float64(z[k].subtreeBytes)\n\tif bi == 0 && bk == 0 {\n\t\treturn wi >= wk\n\t}\n\tif bk == 0 {\n\t\treturn false\n\t}\n\treturn bi/bk <= wi/wk\n}\n\ntype priorityWriteScheduler struct {\n\t// root is the root of the priority tree, where root.id = 0.\n\t// The root queues control frames that are not associated with any stream.\n\troot priorityNode\n\n\t// nodes maps stream ids to priority tree nodes.\n\tnodes map[uint32]*priorityNode\n\n\t// maxID is the maximum stream id in nodes.\n\tmaxID uint32\n\n\t// lists of nodes that have been closed or are idle, but are kept in\n\t// the tree for improved prioritization. When the lengths exceed either\n\t// maxClosedNodesInTree or maxIdleNodesInTree, old nodes are discarded.\n\tclosedNodes, idleNodes []*priorityNode\n\n\t// From the config.\n\tmaxClosedNodesInTree int\n\tmaxIdleNodesInTree   int\n\twriteThrottleLimit   int32\n\tenableWriteThrottle  bool\n\n\t// tmp is scratch space for priorityNode.walkReadyInOrder to reduce allocations.\n\ttmp []*priorityNode\n\n\t// pool of empty queues for reuse.\n\tqueuePool writeQueuePool\n}\n\nfunc (ws *priorityWriteScheduler) OpenStream(streamID uint32, options OpenStreamOptions) {\n\t// The stream may be currently idle but cannot be opened or closed.\n\tif curr := ws.nodes[streamID]; curr != nil {\n\t\tif curr.state != priorityNodeIdle {\n\t\t\tpanic(fmt.Sprintf(\"stream %d already opened\", streamID))\n\t\t}\n\t\tcurr.state = priorityNodeOpen\n\t\treturn\n\t}\n\n\t// RFC 7540, Section 5.3.5:\n\t//  \"All streams are initially assigned a non-exclusive dependency on stream 0x0.\n\t//  Pushed streams initially depend on their associated stream. In both cases,\n\t//  streams are assigned a default weight of 16.\"\n\tparent := ws.nodes[options.PusherID]\n\tif parent == nil {\n\t\tparent = &ws.root\n\t}\n\tn := &priorityNode{\n\t\tq:      *ws.queuePool.get(),\n\t\tid:     streamID,\n\t\tweight: priorityDefaultWeight,\n\t\tstate:  priorityNodeOpen,\n\t}\n\tn.setParent(parent)\n\tws.nodes[streamID] = n\n\tif streamID > ws.maxID {\n\t\tws.maxID = streamID\n\t}\n}\n\nfunc (ws *priorityWriteScheduler) CloseStream(streamID uint32) {\n\tif streamID == 0 {\n\t\tpanic(\"violation of WriteScheduler interface: cannot close stream 0\")\n\t}\n\tif ws.nodes[streamID] == nil {\n\t\tpanic(fmt.Sprintf(\"violation of WriteScheduler interface: unknown stream %d\", streamID))\n\t}\n\tif ws.nodes[streamID].state != priorityNodeOpen {\n\t\tpanic(fmt.Sprintf(\"violation of WriteScheduler interface: stream %d already closed\", streamID))\n\t}\n\n\tn := ws.nodes[streamID]\n\tn.state = priorityNodeClosed\n\tn.addBytes(-n.bytes)\n\n\tq := n.q\n\tws.queuePool.put(&q)\n\tn.q.s = nil\n\tif ws.maxClosedNodesInTree > 0 {\n\t\tws.addClosedOrIdleNode(&ws.closedNodes, ws.maxClosedNodesInTree, n)\n\t} else {\n\t\tws.removeNode(n)\n\t}\n}\n\nfunc (ws *priorityWriteScheduler) AdjustStream(streamID uint32, priority PriorityParam) {\n\tif streamID == 0 {\n\t\tpanic(\"adjustPriority on root\")\n\t}\n\n\t// If streamID does not exist, there are two cases:\n\t// - A closed stream that has been removed (this will have ID <= maxID)\n\t// - An idle stream that is being used for \"grouping\" (this will have ID > maxID)\n\tn := ws.nodes[streamID]\n\tif n == nil {\n\t\tif streamID <= ws.maxID || ws.maxIdleNodesInTree == 0 {\n\t\t\treturn\n\t\t}\n\t\tws.maxID = streamID\n\t\tn = &priorityNode{\n\t\t\tq:      *ws.queuePool.get(),\n\t\t\tid:     streamID,\n\t\t\tweight: priorityDefaultWeight,\n\t\t\tstate:  priorityNodeIdle,\n\t\t}\n\t\tn.setParent(&ws.root)\n\t\tws.nodes[streamID] = n\n\t\tws.addClosedOrIdleNode(&ws.idleNodes, ws.maxIdleNodesInTree, n)\n\t}\n\n\t// Section 5.3.1: A dependency on a stream that is not currently in the tree\n\t// results in that stream being given a default priority (Section 5.3.5).\n\tparent := ws.nodes[priority.StreamDep]\n\tif parent == nil {\n\t\tn.setParent(&ws.root)\n\t\tn.weight = priorityDefaultWeight\n\t\treturn\n\t}\n\n\t// Ignore if the client tries to make a node its own parent.\n\tif n == parent {\n\t\treturn\n\t}\n\n\t// Section 5.3.3:\n\t//   \"If a stream is made dependent on one of its own dependencies, the\n\t//   formerly dependent stream is first moved to be dependent on the\n\t//   reprioritized stream's previous parent. The moved dependency retains\n\t//   its weight.\"\n\t//\n\t// That is: if parent depends on n, move parent to depend on n.parent.\n\tfor x := parent.parent; x != nil; x = x.parent {\n\t\tif x == n {\n\t\t\tparent.setParent(n.parent)\n\t\t\tbreak\n\t\t}\n\t}\n\n\t// Section 5.3.3: The exclusive flag causes the stream to become the sole\n\t// dependency of its parent stream, causing other dependencies to become\n\t// dependent on the exclusive stream.\n\tif priority.Exclusive {\n\t\tk := parent.kids\n\t\tfor k != nil {\n\t\t\tnext := k.next\n\t\t\tif k != n {\n\t\t\t\tk.setParent(n)\n\t\t\t}\n\t\t\tk = next\n\t\t}\n\t}\n\n\tn.setParent(parent)\n\tn.weight = priority.Weight\n}\n\nfunc (ws *priorityWriteScheduler) Push(wr FrameWriteRequest) {\n\tvar n *priorityNode\n\tif wr.isControl() {\n\t\tn = &ws.root\n\t} else {\n\t\tid := wr.StreamID()\n\t\tn = ws.nodes[id]\n\t\tif n == nil {\n\t\t\t// id is an idle or closed stream. wr should not be a HEADERS or\n\t\t\t// DATA frame. In other case, we push wr onto the root, rather\n\t\t\t// than creating a new priorityNode.\n\t\t\tif wr.DataSize() > 0 {\n\t\t\t\tpanic(\"add DATA on non-open stream\")\n\t\t\t}\n\t\t\tn = &ws.root\n\t\t}\n\t}\n\tn.q.push(wr)\n}\n\nfunc (ws *priorityWriteScheduler) Pop() (wr FrameWriteRequest, ok bool) {\n\tws.root.walkReadyInOrder(false, &ws.tmp, func(n *priorityNode, openParent bool) bool {\n\t\tlimit := int32(math.MaxInt32)\n\t\tif openParent {\n\t\t\tlimit = ws.writeThrottleLimit\n\t\t}\n\t\twr, ok = n.q.consume(limit)\n\t\tif !ok {\n\t\t\treturn false\n\t\t}\n\t\tn.addBytes(int64(wr.DataSize()))\n\t\t// If B depends on A and B continuously has data available but A\n\t\t// does not, gradually increase the throttling limit to allow B to\n\t\t// steal more and more bandwidth from A.\n\t\tif openParent {\n\t\t\tws.writeThrottleLimit += 1024\n\t\t\tif ws.writeThrottleLimit < 0 {\n\t\t\t\tws.writeThrottleLimit = math.MaxInt32\n\t\t\t}\n\t\t} else if ws.enableWriteThrottle {\n\t\t\tws.writeThrottleLimit = 1024\n\t\t}\n\t\treturn true\n\t})\n\treturn wr, ok\n}\n\nfunc (ws *priorityWriteScheduler) addClosedOrIdleNode(list *[]*priorityNode, maxSize int, n *priorityNode) {\n\tif maxSize == 0 {\n\t\treturn\n\t}\n\tif len(*list) == maxSize {\n\t\t// Remove the oldest node, then shift left.\n\t\tws.removeNode((*list)[0])\n\t\tx := (*list)[1:]\n\t\tcopy(*list, x)\n\t\t*list = (*list)[:len(x)]\n\t}\n\t*list = append(*list, n)\n}\n\nfunc (ws *priorityWriteScheduler) removeNode(n *priorityNode) {\n\tfor n.kids != nil {\n\t\tn.kids.setParent(n.parent)\n\t}\n\tn.setParent(nil)\n\tdelete(ws.nodes, n.id)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/writesched_random.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage http2\n\nimport \"math\"\n\n// NewRandomWriteScheduler constructs a WriteScheduler that ignores HTTP/2\n// priorities. Control frames like SETTINGS and PING are written before DATA\n// frames, but if no control frames are queued and multiple streams have queued\n// HEADERS or DATA frames, Pop selects a ready stream arbitrarily.\nfunc NewRandomWriteScheduler() WriteScheduler {\n\treturn &randomWriteScheduler{sq: make(map[uint32]*writeQueue)}\n}\n\ntype randomWriteScheduler struct {\n\t// zero are frames not associated with a specific stream.\n\tzero writeQueue\n\n\t// sq contains the stream-specific queues, keyed by stream ID.\n\t// When a stream is idle, closed, or emptied, it's deleted\n\t// from the map.\n\tsq map[uint32]*writeQueue\n\n\t// pool of empty queues for reuse.\n\tqueuePool writeQueuePool\n}\n\nfunc (ws *randomWriteScheduler) OpenStream(streamID uint32, options OpenStreamOptions) {\n\t// no-op: idle streams are not tracked\n}\n\nfunc (ws *randomWriteScheduler) CloseStream(streamID uint32) {\n\tq, ok := ws.sq[streamID]\n\tif !ok {\n\t\treturn\n\t}\n\tdelete(ws.sq, streamID)\n\tws.queuePool.put(q)\n}\n\nfunc (ws *randomWriteScheduler) AdjustStream(streamID uint32, priority PriorityParam) {\n\t// no-op: priorities are ignored\n}\n\nfunc (ws *randomWriteScheduler) Push(wr FrameWriteRequest) {\n\tif wr.isControl() {\n\t\tws.zero.push(wr)\n\t\treturn\n\t}\n\tid := wr.StreamID()\n\tq, ok := ws.sq[id]\n\tif !ok {\n\t\tq = ws.queuePool.get()\n\t\tws.sq[id] = q\n\t}\n\tq.push(wr)\n}\n\nfunc (ws *randomWriteScheduler) Pop() (FrameWriteRequest, bool) {\n\t// Control and RST_STREAM frames first.\n\tif !ws.zero.empty() {\n\t\treturn ws.zero.shift(), true\n\t}\n\t// Iterate over all non-idle streams until finding one that can be consumed.\n\tfor streamID, q := range ws.sq {\n\t\tif wr, ok := q.consume(math.MaxInt32); ok {\n\t\t\tif q.empty() {\n\t\t\t\tdelete(ws.sq, streamID)\n\t\t\t\tws.queuePool.put(q)\n\t\t\t}\n\t\t\treturn wr, true\n\t\t}\n\t}\n\treturn FrameWriteRequest{}, false\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/http2/writesched_roundrobin.go",
    "content": "// Copyright 2023 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage http2\n\nimport (\n\t\"fmt\"\n\t\"math\"\n)\n\ntype roundRobinWriteScheduler struct {\n\t// control contains control frames (SETTINGS, PING, etc.).\n\tcontrol writeQueue\n\n\t// streams maps stream ID to a queue.\n\tstreams map[uint32]*writeQueue\n\n\t// stream queues are stored in a circular linked list.\n\t// head is the next stream to write, or nil if there are no streams open.\n\thead *writeQueue\n\n\t// pool of empty queues for reuse.\n\tqueuePool writeQueuePool\n}\n\n// newRoundRobinWriteScheduler constructs a new write scheduler.\n// The round robin scheduler priorizes control frames\n// like SETTINGS and PING over DATA frames.\n// When there are no control frames to send, it performs a round-robin\n// selection from the ready streams.\nfunc newRoundRobinWriteScheduler() WriteScheduler {\n\tws := &roundRobinWriteScheduler{\n\t\tstreams: make(map[uint32]*writeQueue),\n\t}\n\treturn ws\n}\n\nfunc (ws *roundRobinWriteScheduler) OpenStream(streamID uint32, options OpenStreamOptions) {\n\tif ws.streams[streamID] != nil {\n\t\tpanic(fmt.Errorf(\"stream %d already opened\", streamID))\n\t}\n\tq := ws.queuePool.get()\n\tws.streams[streamID] = q\n\tif ws.head == nil {\n\t\tws.head = q\n\t\tq.next = q\n\t\tq.prev = q\n\t} else {\n\t\t// Queues are stored in a ring.\n\t\t// Insert the new stream before ws.head, putting it at the end of the list.\n\t\tq.prev = ws.head.prev\n\t\tq.next = ws.head\n\t\tq.prev.next = q\n\t\tq.next.prev = q\n\t}\n}\n\nfunc (ws *roundRobinWriteScheduler) CloseStream(streamID uint32) {\n\tq := ws.streams[streamID]\n\tif q == nil {\n\t\treturn\n\t}\n\tif q.next == q {\n\t\t// This was the only open stream.\n\t\tws.head = nil\n\t} else {\n\t\tq.prev.next = q.next\n\t\tq.next.prev = q.prev\n\t\tif ws.head == q {\n\t\t\tws.head = q.next\n\t\t}\n\t}\n\tdelete(ws.streams, streamID)\n\tws.queuePool.put(q)\n}\n\nfunc (ws *roundRobinWriteScheduler) AdjustStream(streamID uint32, priority PriorityParam) {}\n\nfunc (ws *roundRobinWriteScheduler) Push(wr FrameWriteRequest) {\n\tif wr.isControl() {\n\t\tws.control.push(wr)\n\t\treturn\n\t}\n\tq := ws.streams[wr.StreamID()]\n\tif q == nil {\n\t\t// This is a closed stream.\n\t\t// wr should not be a HEADERS or DATA frame.\n\t\t// We push the request onto the control queue.\n\t\tif wr.DataSize() > 0 {\n\t\t\tpanic(\"add DATA on non-open stream\")\n\t\t}\n\t\tws.control.push(wr)\n\t\treturn\n\t}\n\tq.push(wr)\n}\n\nfunc (ws *roundRobinWriteScheduler) Pop() (FrameWriteRequest, bool) {\n\t// Control and RST_STREAM frames first.\n\tif !ws.control.empty() {\n\t\treturn ws.control.shift(), true\n\t}\n\tif ws.head == nil {\n\t\treturn FrameWriteRequest{}, false\n\t}\n\tq := ws.head\n\tfor {\n\t\tif wr, ok := q.consume(math.MaxInt32); ok {\n\t\t\tws.head = q.next\n\t\t\treturn wr, true\n\t\t}\n\t\tq = q.next\n\t\tif q == ws.head {\n\t\t\tbreak\n\t\t}\n\t}\n\treturn FrameWriteRequest{}, false\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/idna/go118.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build go1.18\n\npackage idna\n\n// Transitional processing is disabled by default in Go 1.18.\n// https://golang.org/issue/47510\nconst transitionalLookup = false\n"
  },
  {
    "path": "vendor/golang.org/x/net/idna/idna10.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build go1.10\n\n// Package idna implements IDNA2008 using the compatibility processing\n// defined by UTS (Unicode Technical Standard) #46, which defines a standard to\n// deal with the transition from IDNA2003.\n//\n// IDNA2008 (Internationalized Domain Names for Applications), is defined in RFC\n// 5890, RFC 5891, RFC 5892, RFC 5893 and RFC 5894.\n// UTS #46 is defined in https://www.unicode.org/reports/tr46.\n// See https://unicode.org/cldr/utility/idna.jsp for a visualization of the\n// differences between these two standards.\npackage idna // import \"golang.org/x/net/idna\"\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\t\"unicode/utf8\"\n\n\t\"golang.org/x/text/secure/bidirule\"\n\t\"golang.org/x/text/unicode/bidi\"\n\t\"golang.org/x/text/unicode/norm\"\n)\n\n// NOTE: Unlike common practice in Go APIs, the functions will return a\n// sanitized domain name in case of errors. Browsers sometimes use a partially\n// evaluated string as lookup.\n// TODO: the current error handling is, in my opinion, the least opinionated.\n// Other strategies are also viable, though:\n// Option 1) Return an empty string in case of error, but allow the user to\n//    specify explicitly which errors to ignore.\n// Option 2) Return the partially evaluated string if it is itself a valid\n//    string, otherwise return the empty string in case of error.\n// Option 3) Option 1 and 2.\n// Option 4) Always return an empty string for now and implement Option 1 as\n//    needed, and document that the return string may not be empty in case of\n//    error in the future.\n// I think Option 1 is best, but it is quite opinionated.\n\n// ToASCII is a wrapper for Punycode.ToASCII.\nfunc ToASCII(s string) (string, error) {\n\treturn Punycode.process(s, true)\n}\n\n// ToUnicode is a wrapper for Punycode.ToUnicode.\nfunc ToUnicode(s string) (string, error) {\n\treturn Punycode.process(s, false)\n}\n\n// An Option configures a Profile at creation time.\ntype Option func(*options)\n\n// Transitional sets a Profile to use the Transitional mapping as defined in UTS\n// #46. This will cause, for example, \"ß\" to be mapped to \"ss\". Using the\n// transitional mapping provides a compromise between IDNA2003 and IDNA2008\n// compatibility. It is used by some browsers when resolving domain names. This\n// option is only meaningful if combined with MapForLookup.\nfunc Transitional(transitional bool) Option {\n\treturn func(o *options) { o.transitional = transitional }\n}\n\n// VerifyDNSLength sets whether a Profile should fail if any of the IDN parts\n// are longer than allowed by the RFC.\n//\n// This option corresponds to the VerifyDnsLength flag in UTS #46.\nfunc VerifyDNSLength(verify bool) Option {\n\treturn func(o *options) { o.verifyDNSLength = verify }\n}\n\n// RemoveLeadingDots removes leading label separators. Leading runes that map to\n// dots, such as U+3002 IDEOGRAPHIC FULL STOP, are removed as well.\nfunc RemoveLeadingDots(remove bool) Option {\n\treturn func(o *options) { o.removeLeadingDots = remove }\n}\n\n// ValidateLabels sets whether to check the mandatory label validation criteria\n// as defined in Section 5.4 of RFC 5891. This includes testing for correct use\n// of hyphens ('-'), normalization, validity of runes, and the context rules.\n// In particular, ValidateLabels also sets the CheckHyphens and CheckJoiners flags\n// in UTS #46.\nfunc ValidateLabels(enable bool) Option {\n\treturn func(o *options) {\n\t\t// Don't override existing mappings, but set one that at least checks\n\t\t// normalization if it is not set.\n\t\tif o.mapping == nil && enable {\n\t\t\to.mapping = normalize\n\t\t}\n\t\to.trie = trie\n\t\to.checkJoiners = enable\n\t\to.checkHyphens = enable\n\t\tif enable {\n\t\t\to.fromPuny = validateFromPunycode\n\t\t} else {\n\t\t\to.fromPuny = nil\n\t\t}\n\t}\n}\n\n// CheckHyphens sets whether to check for correct use of hyphens ('-') in\n// labels. Most web browsers do not have this option set, since labels such as\n// \"r3---sn-apo3qvuoxuxbt-j5pe\" are in common use.\n//\n// This option corresponds to the CheckHyphens flag in UTS #46.\nfunc CheckHyphens(enable bool) Option {\n\treturn func(o *options) { o.checkHyphens = enable }\n}\n\n// CheckJoiners sets whether to check the ContextJ rules as defined in Appendix\n// A of RFC 5892, concerning the use of joiner runes.\n//\n// This option corresponds to the CheckJoiners flag in UTS #46.\nfunc CheckJoiners(enable bool) Option {\n\treturn func(o *options) {\n\t\to.trie = trie\n\t\to.checkJoiners = enable\n\t}\n}\n\n// StrictDomainName limits the set of permissible ASCII characters to those\n// allowed in domain names as defined in RFC 1034 (A-Z, a-z, 0-9 and the\n// hyphen). This is set by default for MapForLookup and ValidateForRegistration,\n// but is only useful if ValidateLabels is set.\n//\n// This option is useful, for instance, for browsers that allow characters\n// outside this range, for example a '_' (U+005F LOW LINE). See\n// http://www.rfc-editor.org/std/std3.txt for more details.\n//\n// This option corresponds to the UseSTD3ASCIIRules flag in UTS #46.\nfunc StrictDomainName(use bool) Option {\n\treturn func(o *options) { o.useSTD3Rules = use }\n}\n\n// NOTE: the following options pull in tables. The tables should not be linked\n// in as long as the options are not used.\n\n// BidiRule enables the Bidi rule as defined in RFC 5893. Any application\n// that relies on proper validation of labels should include this rule.\n//\n// This option corresponds to the CheckBidi flag in UTS #46.\nfunc BidiRule() Option {\n\treturn func(o *options) { o.bidirule = bidirule.ValidString }\n}\n\n// ValidateForRegistration sets validation options to verify that a given IDN is\n// properly formatted for registration as defined by Section 4 of RFC 5891.\nfunc ValidateForRegistration() Option {\n\treturn func(o *options) {\n\t\to.mapping = validateRegistration\n\t\tStrictDomainName(true)(o)\n\t\tValidateLabels(true)(o)\n\t\tVerifyDNSLength(true)(o)\n\t\tBidiRule()(o)\n\t}\n}\n\n// MapForLookup sets validation and mapping options such that a given IDN is\n// transformed for domain name lookup according to the requirements set out in\n// Section 5 of RFC 5891. The mappings follow the recommendations of RFC 5894,\n// RFC 5895 and UTS 46. It does not add the Bidi Rule. Use the BidiRule option\n// to add this check.\n//\n// The mappings include normalization and mapping case, width and other\n// compatibility mappings.\nfunc MapForLookup() Option {\n\treturn func(o *options) {\n\t\to.mapping = validateAndMap\n\t\tStrictDomainName(true)(o)\n\t\tValidateLabels(true)(o)\n\t}\n}\n\ntype options struct {\n\ttransitional      bool\n\tuseSTD3Rules      bool\n\tcheckHyphens      bool\n\tcheckJoiners      bool\n\tverifyDNSLength   bool\n\tremoveLeadingDots bool\n\n\ttrie *idnaTrie\n\n\t// fromPuny calls validation rules when converting A-labels to U-labels.\n\tfromPuny func(p *Profile, s string) error\n\n\t// mapping implements a validation and mapping step as defined in RFC 5895\n\t// or UTS 46, tailored to, for example, domain registration or lookup.\n\tmapping func(p *Profile, s string) (mapped string, isBidi bool, err error)\n\n\t// bidirule, if specified, checks whether s conforms to the Bidi Rule\n\t// defined in RFC 5893.\n\tbidirule func(s string) bool\n}\n\n// A Profile defines the configuration of an IDNA mapper.\ntype Profile struct {\n\toptions\n}\n\nfunc apply(o *options, opts []Option) {\n\tfor _, f := range opts {\n\t\tf(o)\n\t}\n}\n\n// New creates a new Profile.\n//\n// With no options, the returned Profile is the most permissive and equals the\n// Punycode Profile. Options can be passed to further restrict the Profile. The\n// MapForLookup and ValidateForRegistration options set a collection of options,\n// for lookup and registration purposes respectively, which can be tailored by\n// adding more fine-grained options, where later options override earlier\n// options.\nfunc New(o ...Option) *Profile {\n\tp := &Profile{}\n\tapply(&p.options, o)\n\treturn p\n}\n\n// ToASCII converts a domain or domain label to its ASCII form. For example,\n// ToASCII(\"bücher.example.com\") is \"xn--bcher-kva.example.com\", and\n// ToASCII(\"golang\") is \"golang\". If an error is encountered it will return\n// an error and a (partially) processed result.\nfunc (p *Profile) ToASCII(s string) (string, error) {\n\treturn p.process(s, true)\n}\n\n// ToUnicode converts a domain or domain label to its Unicode form. For example,\n// ToUnicode(\"xn--bcher-kva.example.com\") is \"bücher.example.com\", and\n// ToUnicode(\"golang\") is \"golang\". If an error is encountered it will return\n// an error and a (partially) processed result.\nfunc (p *Profile) ToUnicode(s string) (string, error) {\n\tpp := *p\n\tpp.transitional = false\n\treturn pp.process(s, false)\n}\n\n// String reports a string with a description of the profile for debugging\n// purposes. The string format may change with different versions.\nfunc (p *Profile) String() string {\n\ts := \"\"\n\tif p.transitional {\n\t\ts = \"Transitional\"\n\t} else {\n\t\ts = \"NonTransitional\"\n\t}\n\tif p.useSTD3Rules {\n\t\ts += \":UseSTD3Rules\"\n\t}\n\tif p.checkHyphens {\n\t\ts += \":CheckHyphens\"\n\t}\n\tif p.checkJoiners {\n\t\ts += \":CheckJoiners\"\n\t}\n\tif p.verifyDNSLength {\n\t\ts += \":VerifyDNSLength\"\n\t}\n\treturn s\n}\n\nvar (\n\t// Punycode is a Profile that does raw punycode processing with a minimum\n\t// of validation.\n\tPunycode *Profile = punycode\n\n\t// Lookup is the recommended profile for looking up domain names, according\n\t// to Section 5 of RFC 5891. The exact configuration of this profile may\n\t// change over time.\n\tLookup *Profile = lookup\n\n\t// Display is the recommended profile for displaying domain names.\n\t// The configuration of this profile may change over time.\n\tDisplay *Profile = display\n\n\t// Registration is the recommended profile for checking whether a given\n\t// IDN is valid for registration, according to Section 4 of RFC 5891.\n\tRegistration *Profile = registration\n\n\tpunycode = &Profile{}\n\tlookup   = &Profile{options{\n\t\ttransitional: transitionalLookup,\n\t\tuseSTD3Rules: true,\n\t\tcheckHyphens: true,\n\t\tcheckJoiners: true,\n\t\ttrie:         trie,\n\t\tfromPuny:     validateFromPunycode,\n\t\tmapping:      validateAndMap,\n\t\tbidirule:     bidirule.ValidString,\n\t}}\n\tdisplay = &Profile{options{\n\t\tuseSTD3Rules: true,\n\t\tcheckHyphens: true,\n\t\tcheckJoiners: true,\n\t\ttrie:         trie,\n\t\tfromPuny:     validateFromPunycode,\n\t\tmapping:      validateAndMap,\n\t\tbidirule:     bidirule.ValidString,\n\t}}\n\tregistration = &Profile{options{\n\t\tuseSTD3Rules:    true,\n\t\tverifyDNSLength: true,\n\t\tcheckHyphens:    true,\n\t\tcheckJoiners:    true,\n\t\ttrie:            trie,\n\t\tfromPuny:        validateFromPunycode,\n\t\tmapping:         validateRegistration,\n\t\tbidirule:        bidirule.ValidString,\n\t}}\n\n\t// TODO: profiles\n\t// Register: recommended for approving domain names: don't do any mappings\n\t// but rather reject on invalid input. Bundle or block deviation characters.\n)\n\ntype labelError struct{ label, code_ string }\n\nfunc (e labelError) code() string { return e.code_ }\nfunc (e labelError) Error() string {\n\treturn fmt.Sprintf(\"idna: invalid label %q\", e.label)\n}\n\ntype runeError rune\n\nfunc (e runeError) code() string { return \"P1\" }\nfunc (e runeError) Error() string {\n\treturn fmt.Sprintf(\"idna: disallowed rune %U\", e)\n}\n\n// process implements the algorithm described in section 4 of UTS #46,\n// see https://www.unicode.org/reports/tr46.\nfunc (p *Profile) process(s string, toASCII bool) (string, error) {\n\tvar err error\n\tvar isBidi bool\n\tif p.mapping != nil {\n\t\ts, isBidi, err = p.mapping(p, s)\n\t}\n\t// Remove leading empty labels.\n\tif p.removeLeadingDots {\n\t\tfor ; len(s) > 0 && s[0] == '.'; s = s[1:] {\n\t\t}\n\t}\n\t// TODO: allow for a quick check of the tables data.\n\t// It seems like we should only create this error on ToASCII, but the\n\t// UTS 46 conformance tests suggests we should always check this.\n\tif err == nil && p.verifyDNSLength && s == \"\" {\n\t\terr = &labelError{s, \"A4\"}\n\t}\n\tlabels := labelIter{orig: s}\n\tfor ; !labels.done(); labels.next() {\n\t\tlabel := labels.label()\n\t\tif label == \"\" {\n\t\t\t// Empty labels are not okay. The label iterator skips the last\n\t\t\t// label if it is empty.\n\t\t\tif err == nil && p.verifyDNSLength {\n\t\t\t\terr = &labelError{s, \"A4\"}\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif strings.HasPrefix(label, acePrefix) {\n\t\t\tu, err2 := decode(label[len(acePrefix):])\n\t\t\tif err2 != nil {\n\t\t\t\tif err == nil {\n\t\t\t\t\terr = err2\n\t\t\t\t}\n\t\t\t\t// Spec says keep the old label.\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tisBidi = isBidi || bidirule.DirectionString(u) != bidi.LeftToRight\n\t\t\tlabels.set(u)\n\t\t\tif err == nil && p.fromPuny != nil {\n\t\t\t\terr = p.fromPuny(p, u)\n\t\t\t}\n\t\t\tif err == nil {\n\t\t\t\t// This should be called on NonTransitional, according to the\n\t\t\t\t// spec, but that currently does not have any effect. Use the\n\t\t\t\t// original profile to preserve options.\n\t\t\t\terr = p.validateLabel(u)\n\t\t\t}\n\t\t} else if err == nil {\n\t\t\terr = p.validateLabel(label)\n\t\t}\n\t}\n\tif isBidi && p.bidirule != nil && err == nil {\n\t\tfor labels.reset(); !labels.done(); labels.next() {\n\t\t\tif !p.bidirule(labels.label()) {\n\t\t\t\terr = &labelError{s, \"B\"}\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\tif toASCII {\n\t\tfor labels.reset(); !labels.done(); labels.next() {\n\t\t\tlabel := labels.label()\n\t\t\tif !ascii(label) {\n\t\t\t\ta, err2 := encode(acePrefix, label)\n\t\t\t\tif err == nil {\n\t\t\t\t\terr = err2\n\t\t\t\t}\n\t\t\t\tlabel = a\n\t\t\t\tlabels.set(a)\n\t\t\t}\n\t\t\tn := len(label)\n\t\t\tif p.verifyDNSLength && err == nil && (n == 0 || n > 63) {\n\t\t\t\terr = &labelError{label, \"A4\"}\n\t\t\t}\n\t\t}\n\t}\n\ts = labels.result()\n\tif toASCII && p.verifyDNSLength && err == nil {\n\t\t// Compute the length of the domain name minus the root label and its dot.\n\t\tn := len(s)\n\t\tif n > 0 && s[n-1] == '.' {\n\t\t\tn--\n\t\t}\n\t\tif len(s) < 1 || n > 253 {\n\t\t\terr = &labelError{s, \"A4\"}\n\t\t}\n\t}\n\treturn s, err\n}\n\nfunc normalize(p *Profile, s string) (mapped string, isBidi bool, err error) {\n\t// TODO: consider first doing a quick check to see if any of these checks\n\t// need to be done. This will make it slower in the general case, but\n\t// faster in the common case.\n\tmapped = norm.NFC.String(s)\n\tisBidi = bidirule.DirectionString(mapped) == bidi.RightToLeft\n\treturn mapped, isBidi, nil\n}\n\nfunc validateRegistration(p *Profile, s string) (idem string, bidi bool, err error) {\n\t// TODO: filter need for normalization in loop below.\n\tif !norm.NFC.IsNormalString(s) {\n\t\treturn s, false, &labelError{s, \"V1\"}\n\t}\n\tfor i := 0; i < len(s); {\n\t\tv, sz := trie.lookupString(s[i:])\n\t\tif sz == 0 {\n\t\t\treturn s, bidi, runeError(utf8.RuneError)\n\t\t}\n\t\tbidi = bidi || info(v).isBidi(s[i:])\n\t\t// Copy bytes not copied so far.\n\t\tswitch p.simplify(info(v).category()) {\n\t\t// TODO: handle the NV8 defined in the Unicode idna data set to allow\n\t\t// for strict conformance to IDNA2008.\n\t\tcase valid, deviation:\n\t\tcase disallowed, mapped, unknown, ignored:\n\t\t\tr, _ := utf8.DecodeRuneInString(s[i:])\n\t\t\treturn s, bidi, runeError(r)\n\t\t}\n\t\ti += sz\n\t}\n\treturn s, bidi, nil\n}\n\nfunc (c info) isBidi(s string) bool {\n\tif !c.isMapped() {\n\t\treturn c&attributesMask == rtl\n\t}\n\t// TODO: also store bidi info for mapped data. This is possible, but a bit\n\t// cumbersome and not for the common case.\n\tp, _ := bidi.LookupString(s)\n\tswitch p.Class() {\n\tcase bidi.R, bidi.AL, bidi.AN:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc validateAndMap(p *Profile, s string) (vm string, bidi bool, err error) {\n\tvar (\n\t\tb []byte\n\t\tk int\n\t)\n\t// combinedInfoBits contains the or-ed bits of all runes. We use this\n\t// to derive the mayNeedNorm bit later. This may trigger normalization\n\t// overeagerly, but it will not do so in the common case. The end result\n\t// is another 10% saving on BenchmarkProfile for the common case.\n\tvar combinedInfoBits info\n\tfor i := 0; i < len(s); {\n\t\tv, sz := trie.lookupString(s[i:])\n\t\tif sz == 0 {\n\t\t\tb = append(b, s[k:i]...)\n\t\t\tb = append(b, \"\\ufffd\"...)\n\t\t\tk = len(s)\n\t\t\tif err == nil {\n\t\t\t\terr = runeError(utf8.RuneError)\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t\tcombinedInfoBits |= info(v)\n\t\tbidi = bidi || info(v).isBidi(s[i:])\n\t\tstart := i\n\t\ti += sz\n\t\t// Copy bytes not copied so far.\n\t\tswitch p.simplify(info(v).category()) {\n\t\tcase valid:\n\t\t\tcontinue\n\t\tcase disallowed:\n\t\t\tif err == nil {\n\t\t\t\tr, _ := utf8.DecodeRuneInString(s[start:])\n\t\t\t\terr = runeError(r)\n\t\t\t}\n\t\t\tcontinue\n\t\tcase mapped, deviation:\n\t\t\tb = append(b, s[k:start]...)\n\t\t\tb = info(v).appendMapping(b, s[start:i])\n\t\tcase ignored:\n\t\t\tb = append(b, s[k:start]...)\n\t\t\t// drop the rune\n\t\tcase unknown:\n\t\t\tb = append(b, s[k:start]...)\n\t\t\tb = append(b, \"\\ufffd\"...)\n\t\t}\n\t\tk = i\n\t}\n\tif k == 0 {\n\t\t// No changes so far.\n\t\tif combinedInfoBits&mayNeedNorm != 0 {\n\t\t\ts = norm.NFC.String(s)\n\t\t}\n\t} else {\n\t\tb = append(b, s[k:]...)\n\t\tif norm.NFC.QuickSpan(b) != len(b) {\n\t\t\tb = norm.NFC.Bytes(b)\n\t\t}\n\t\t// TODO: the punycode converters require strings as input.\n\t\ts = string(b)\n\t}\n\treturn s, bidi, err\n}\n\n// A labelIter allows iterating over domain name labels.\ntype labelIter struct {\n\torig     string\n\tslice    []string\n\tcurStart int\n\tcurEnd   int\n\ti        int\n}\n\nfunc (l *labelIter) reset() {\n\tl.curStart = 0\n\tl.curEnd = 0\n\tl.i = 0\n}\n\nfunc (l *labelIter) done() bool {\n\treturn l.curStart >= len(l.orig)\n}\n\nfunc (l *labelIter) result() string {\n\tif l.slice != nil {\n\t\treturn strings.Join(l.slice, \".\")\n\t}\n\treturn l.orig\n}\n\nfunc (l *labelIter) label() string {\n\tif l.slice != nil {\n\t\treturn l.slice[l.i]\n\t}\n\tp := strings.IndexByte(l.orig[l.curStart:], '.')\n\tl.curEnd = l.curStart + p\n\tif p == -1 {\n\t\tl.curEnd = len(l.orig)\n\t}\n\treturn l.orig[l.curStart:l.curEnd]\n}\n\n// next sets the value to the next label. It skips the last label if it is empty.\nfunc (l *labelIter) next() {\n\tl.i++\n\tif l.slice != nil {\n\t\tif l.i >= len(l.slice) || l.i == len(l.slice)-1 && l.slice[l.i] == \"\" {\n\t\t\tl.curStart = len(l.orig)\n\t\t}\n\t} else {\n\t\tl.curStart = l.curEnd + 1\n\t\tif l.curStart == len(l.orig)-1 && l.orig[l.curStart] == '.' {\n\t\t\tl.curStart = len(l.orig)\n\t\t}\n\t}\n}\n\nfunc (l *labelIter) set(s string) {\n\tif l.slice == nil {\n\t\tl.slice = strings.Split(l.orig, \".\")\n\t}\n\tl.slice[l.i] = s\n}\n\n// acePrefix is the ASCII Compatible Encoding prefix.\nconst acePrefix = \"xn--\"\n\nfunc (p *Profile) simplify(cat category) category {\n\tswitch cat {\n\tcase disallowedSTD3Mapped:\n\t\tif p.useSTD3Rules {\n\t\t\tcat = disallowed\n\t\t} else {\n\t\t\tcat = mapped\n\t\t}\n\tcase disallowedSTD3Valid:\n\t\tif p.useSTD3Rules {\n\t\t\tcat = disallowed\n\t\t} else {\n\t\t\tcat = valid\n\t\t}\n\tcase deviation:\n\t\tif !p.transitional {\n\t\t\tcat = valid\n\t\t}\n\tcase validNV8, validXV8:\n\t\t// TODO: handle V2008\n\t\tcat = valid\n\t}\n\treturn cat\n}\n\nfunc validateFromPunycode(p *Profile, s string) error {\n\tif !norm.NFC.IsNormalString(s) {\n\t\treturn &labelError{s, \"V1\"}\n\t}\n\t// TODO: detect whether string may have to be normalized in the following\n\t// loop.\n\tfor i := 0; i < len(s); {\n\t\tv, sz := trie.lookupString(s[i:])\n\t\tif sz == 0 {\n\t\t\treturn runeError(utf8.RuneError)\n\t\t}\n\t\tif c := p.simplify(info(v).category()); c != valid && c != deviation {\n\t\t\treturn &labelError{s, \"V6\"}\n\t\t}\n\t\ti += sz\n\t}\n\treturn nil\n}\n\nconst (\n\tzwnj = \"\\u200c\"\n\tzwj  = \"\\u200d\"\n)\n\ntype joinState int8\n\nconst (\n\tstateStart joinState = iota\n\tstateVirama\n\tstateBefore\n\tstateBeforeVirama\n\tstateAfter\n\tstateFAIL\n)\n\nvar joinStates = [][numJoinTypes]joinState{\n\tstateStart: {\n\t\tjoiningL:   stateBefore,\n\t\tjoiningD:   stateBefore,\n\t\tjoinZWNJ:   stateFAIL,\n\t\tjoinZWJ:    stateFAIL,\n\t\tjoinVirama: stateVirama,\n\t},\n\tstateVirama: {\n\t\tjoiningL: stateBefore,\n\t\tjoiningD: stateBefore,\n\t},\n\tstateBefore: {\n\t\tjoiningL:   stateBefore,\n\t\tjoiningD:   stateBefore,\n\t\tjoiningT:   stateBefore,\n\t\tjoinZWNJ:   stateAfter,\n\t\tjoinZWJ:    stateFAIL,\n\t\tjoinVirama: stateBeforeVirama,\n\t},\n\tstateBeforeVirama: {\n\t\tjoiningL: stateBefore,\n\t\tjoiningD: stateBefore,\n\t\tjoiningT: stateBefore,\n\t},\n\tstateAfter: {\n\t\tjoiningL:   stateFAIL,\n\t\tjoiningD:   stateBefore,\n\t\tjoiningT:   stateAfter,\n\t\tjoiningR:   stateStart,\n\t\tjoinZWNJ:   stateFAIL,\n\t\tjoinZWJ:    stateFAIL,\n\t\tjoinVirama: stateAfter, // no-op as we can't accept joiners here\n\t},\n\tstateFAIL: {\n\t\t0:          stateFAIL,\n\t\tjoiningL:   stateFAIL,\n\t\tjoiningD:   stateFAIL,\n\t\tjoiningT:   stateFAIL,\n\t\tjoiningR:   stateFAIL,\n\t\tjoinZWNJ:   stateFAIL,\n\t\tjoinZWJ:    stateFAIL,\n\t\tjoinVirama: stateFAIL,\n\t},\n}\n\n// validateLabel validates the criteria from Section 4.1. Item 1, 4, and 6 are\n// already implicitly satisfied by the overall implementation.\nfunc (p *Profile) validateLabel(s string) (err error) {\n\tif s == \"\" {\n\t\tif p.verifyDNSLength {\n\t\t\treturn &labelError{s, \"A4\"}\n\t\t}\n\t\treturn nil\n\t}\n\tif p.checkHyphens {\n\t\tif len(s) > 4 && s[2] == '-' && s[3] == '-' {\n\t\t\treturn &labelError{s, \"V2\"}\n\t\t}\n\t\tif s[0] == '-' || s[len(s)-1] == '-' {\n\t\t\treturn &labelError{s, \"V3\"}\n\t\t}\n\t}\n\tif !p.checkJoiners {\n\t\treturn nil\n\t}\n\ttrie := p.trie // p.checkJoiners is only set if trie is set.\n\t// TODO: merge the use of this in the trie.\n\tv, sz := trie.lookupString(s)\n\tx := info(v)\n\tif x.isModifier() {\n\t\treturn &labelError{s, \"V5\"}\n\t}\n\t// Quickly return in the absence of zero-width (non) joiners.\n\tif strings.Index(s, zwj) == -1 && strings.Index(s, zwnj) == -1 {\n\t\treturn nil\n\t}\n\tst := stateStart\n\tfor i := 0; ; {\n\t\tjt := x.joinType()\n\t\tif s[i:i+sz] == zwj {\n\t\t\tjt = joinZWJ\n\t\t} else if s[i:i+sz] == zwnj {\n\t\t\tjt = joinZWNJ\n\t\t}\n\t\tst = joinStates[st][jt]\n\t\tif x.isViramaModifier() {\n\t\t\tst = joinStates[st][joinVirama]\n\t\t}\n\t\tif i += sz; i == len(s) {\n\t\t\tbreak\n\t\t}\n\t\tv, sz = trie.lookupString(s[i:])\n\t\tx = info(v)\n\t}\n\tif st == stateFAIL || st == stateAfter {\n\t\treturn &labelError{s, \"C\"}\n\t}\n\treturn nil\n}\n\nfunc ascii(s string) bool {\n\tfor i := 0; i < len(s); i++ {\n\t\tif s[i] >= utf8.RuneSelf {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/idna/idna9.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build !go1.10\n\n// Package idna implements IDNA2008 using the compatibility processing\n// defined by UTS (Unicode Technical Standard) #46, which defines a standard to\n// deal with the transition from IDNA2003.\n//\n// IDNA2008 (Internationalized Domain Names for Applications), is defined in RFC\n// 5890, RFC 5891, RFC 5892, RFC 5893 and RFC 5894.\n// UTS #46 is defined in https://www.unicode.org/reports/tr46.\n// See https://unicode.org/cldr/utility/idna.jsp for a visualization of the\n// differences between these two standards.\npackage idna // import \"golang.org/x/net/idna\"\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\t\"unicode/utf8\"\n\n\t\"golang.org/x/text/secure/bidirule\"\n\t\"golang.org/x/text/unicode/norm\"\n)\n\n// NOTE: Unlike common practice in Go APIs, the functions will return a\n// sanitized domain name in case of errors. Browsers sometimes use a partially\n// evaluated string as lookup.\n// TODO: the current error handling is, in my opinion, the least opinionated.\n// Other strategies are also viable, though:\n// Option 1) Return an empty string in case of error, but allow the user to\n//    specify explicitly which errors to ignore.\n// Option 2) Return the partially evaluated string if it is itself a valid\n//    string, otherwise return the empty string in case of error.\n// Option 3) Option 1 and 2.\n// Option 4) Always return an empty string for now and implement Option 1 as\n//    needed, and document that the return string may not be empty in case of\n//    error in the future.\n// I think Option 1 is best, but it is quite opinionated.\n\n// ToASCII is a wrapper for Punycode.ToASCII.\nfunc ToASCII(s string) (string, error) {\n\treturn Punycode.process(s, true)\n}\n\n// ToUnicode is a wrapper for Punycode.ToUnicode.\nfunc ToUnicode(s string) (string, error) {\n\treturn Punycode.process(s, false)\n}\n\n// An Option configures a Profile at creation time.\ntype Option func(*options)\n\n// Transitional sets a Profile to use the Transitional mapping as defined in UTS\n// #46. This will cause, for example, \"ß\" to be mapped to \"ss\". Using the\n// transitional mapping provides a compromise between IDNA2003 and IDNA2008\n// compatibility. It is used by some browsers when resolving domain names. This\n// option is only meaningful if combined with MapForLookup.\nfunc Transitional(transitional bool) Option {\n\treturn func(o *options) { o.transitional = transitional }\n}\n\n// VerifyDNSLength sets whether a Profile should fail if any of the IDN parts\n// are longer than allowed by the RFC.\n//\n// This option corresponds to the VerifyDnsLength flag in UTS #46.\nfunc VerifyDNSLength(verify bool) Option {\n\treturn func(o *options) { o.verifyDNSLength = verify }\n}\n\n// RemoveLeadingDots removes leading label separators. Leading runes that map to\n// dots, such as U+3002 IDEOGRAPHIC FULL STOP, are removed as well.\nfunc RemoveLeadingDots(remove bool) Option {\n\treturn func(o *options) { o.removeLeadingDots = remove }\n}\n\n// ValidateLabels sets whether to check the mandatory label validation criteria\n// as defined in Section 5.4 of RFC 5891. This includes testing for correct use\n// of hyphens ('-'), normalization, validity of runes, and the context rules.\n// In particular, ValidateLabels also sets the CheckHyphens and CheckJoiners flags\n// in UTS #46.\nfunc ValidateLabels(enable bool) Option {\n\treturn func(o *options) {\n\t\t// Don't override existing mappings, but set one that at least checks\n\t\t// normalization if it is not set.\n\t\tif o.mapping == nil && enable {\n\t\t\to.mapping = normalize\n\t\t}\n\t\to.trie = trie\n\t\to.checkJoiners = enable\n\t\to.checkHyphens = enable\n\t\tif enable {\n\t\t\to.fromPuny = validateFromPunycode\n\t\t} else {\n\t\t\to.fromPuny = nil\n\t\t}\n\t}\n}\n\n// CheckHyphens sets whether to check for correct use of hyphens ('-') in\n// labels. Most web browsers do not have this option set, since labels such as\n// \"r3---sn-apo3qvuoxuxbt-j5pe\" are in common use.\n//\n// This option corresponds to the CheckHyphens flag in UTS #46.\nfunc CheckHyphens(enable bool) Option {\n\treturn func(o *options) { o.checkHyphens = enable }\n}\n\n// CheckJoiners sets whether to check the ContextJ rules as defined in Appendix\n// A of RFC 5892, concerning the use of joiner runes.\n//\n// This option corresponds to the CheckJoiners flag in UTS #46.\nfunc CheckJoiners(enable bool) Option {\n\treturn func(o *options) {\n\t\to.trie = trie\n\t\to.checkJoiners = enable\n\t}\n}\n\n// StrictDomainName limits the set of permissible ASCII characters to those\n// allowed in domain names as defined in RFC 1034 (A-Z, a-z, 0-9 and the\n// hyphen). This is set by default for MapForLookup and ValidateForRegistration,\n// but is only useful if ValidateLabels is set.\n//\n// This option is useful, for instance, for browsers that allow characters\n// outside this range, for example a '_' (U+005F LOW LINE). See\n// http://www.rfc-editor.org/std/std3.txt for more details.\n//\n// This option corresponds to the UseSTD3ASCIIRules flag in UTS #46.\nfunc StrictDomainName(use bool) Option {\n\treturn func(o *options) { o.useSTD3Rules = use }\n}\n\n// NOTE: the following options pull in tables. The tables should not be linked\n// in as long as the options are not used.\n\n// BidiRule enables the Bidi rule as defined in RFC 5893. Any application\n// that relies on proper validation of labels should include this rule.\n//\n// This option corresponds to the CheckBidi flag in UTS #46.\nfunc BidiRule() Option {\n\treturn func(o *options) { o.bidirule = bidirule.ValidString }\n}\n\n// ValidateForRegistration sets validation options to verify that a given IDN is\n// properly formatted for registration as defined by Section 4 of RFC 5891.\nfunc ValidateForRegistration() Option {\n\treturn func(o *options) {\n\t\to.mapping = validateRegistration\n\t\tStrictDomainName(true)(o)\n\t\tValidateLabels(true)(o)\n\t\tVerifyDNSLength(true)(o)\n\t\tBidiRule()(o)\n\t}\n}\n\n// MapForLookup sets validation and mapping options such that a given IDN is\n// transformed for domain name lookup according to the requirements set out in\n// Section 5 of RFC 5891. The mappings follow the recommendations of RFC 5894,\n// RFC 5895 and UTS 46. It does not add the Bidi Rule. Use the BidiRule option\n// to add this check.\n//\n// The mappings include normalization and mapping case, width and other\n// compatibility mappings.\nfunc MapForLookup() Option {\n\treturn func(o *options) {\n\t\to.mapping = validateAndMap\n\t\tStrictDomainName(true)(o)\n\t\tValidateLabels(true)(o)\n\t\tRemoveLeadingDots(true)(o)\n\t}\n}\n\ntype options struct {\n\ttransitional      bool\n\tuseSTD3Rules      bool\n\tcheckHyphens      bool\n\tcheckJoiners      bool\n\tverifyDNSLength   bool\n\tremoveLeadingDots bool\n\n\ttrie *idnaTrie\n\n\t// fromPuny calls validation rules when converting A-labels to U-labels.\n\tfromPuny func(p *Profile, s string) error\n\n\t// mapping implements a validation and mapping step as defined in RFC 5895\n\t// or UTS 46, tailored to, for example, domain registration or lookup.\n\tmapping func(p *Profile, s string) (string, error)\n\n\t// bidirule, if specified, checks whether s conforms to the Bidi Rule\n\t// defined in RFC 5893.\n\tbidirule func(s string) bool\n}\n\n// A Profile defines the configuration of a IDNA mapper.\ntype Profile struct {\n\toptions\n}\n\nfunc apply(o *options, opts []Option) {\n\tfor _, f := range opts {\n\t\tf(o)\n\t}\n}\n\n// New creates a new Profile.\n//\n// With no options, the returned Profile is the most permissive and equals the\n// Punycode Profile. Options can be passed to further restrict the Profile. The\n// MapForLookup and ValidateForRegistration options set a collection of options,\n// for lookup and registration purposes respectively, which can be tailored by\n// adding more fine-grained options, where later options override earlier\n// options.\nfunc New(o ...Option) *Profile {\n\tp := &Profile{}\n\tapply(&p.options, o)\n\treturn p\n}\n\n// ToASCII converts a domain or domain label to its ASCII form. For example,\n// ToASCII(\"bücher.example.com\") is \"xn--bcher-kva.example.com\", and\n// ToASCII(\"golang\") is \"golang\". If an error is encountered it will return\n// an error and a (partially) processed result.\nfunc (p *Profile) ToASCII(s string) (string, error) {\n\treturn p.process(s, true)\n}\n\n// ToUnicode converts a domain or domain label to its Unicode form. For example,\n// ToUnicode(\"xn--bcher-kva.example.com\") is \"bücher.example.com\", and\n// ToUnicode(\"golang\") is \"golang\". If an error is encountered it will return\n// an error and a (partially) processed result.\nfunc (p *Profile) ToUnicode(s string) (string, error) {\n\tpp := *p\n\tpp.transitional = false\n\treturn pp.process(s, false)\n}\n\n// String reports a string with a description of the profile for debugging\n// purposes. The string format may change with different versions.\nfunc (p *Profile) String() string {\n\ts := \"\"\n\tif p.transitional {\n\t\ts = \"Transitional\"\n\t} else {\n\t\ts = \"NonTransitional\"\n\t}\n\tif p.useSTD3Rules {\n\t\ts += \":UseSTD3Rules\"\n\t}\n\tif p.checkHyphens {\n\t\ts += \":CheckHyphens\"\n\t}\n\tif p.checkJoiners {\n\t\ts += \":CheckJoiners\"\n\t}\n\tif p.verifyDNSLength {\n\t\ts += \":VerifyDNSLength\"\n\t}\n\treturn s\n}\n\nvar (\n\t// Punycode is a Profile that does raw punycode processing with a minimum\n\t// of validation.\n\tPunycode *Profile = punycode\n\n\t// Lookup is the recommended profile for looking up domain names, according\n\t// to Section 5 of RFC 5891. The exact configuration of this profile may\n\t// change over time.\n\tLookup *Profile = lookup\n\n\t// Display is the recommended profile for displaying domain names.\n\t// The configuration of this profile may change over time.\n\tDisplay *Profile = display\n\n\t// Registration is the recommended profile for checking whether a given\n\t// IDN is valid for registration, according to Section 4 of RFC 5891.\n\tRegistration *Profile = registration\n\n\tpunycode = &Profile{}\n\tlookup   = &Profile{options{\n\t\ttransitional:      true,\n\t\tremoveLeadingDots: true,\n\t\tuseSTD3Rules:      true,\n\t\tcheckHyphens:      true,\n\t\tcheckJoiners:      true,\n\t\ttrie:              trie,\n\t\tfromPuny:          validateFromPunycode,\n\t\tmapping:           validateAndMap,\n\t\tbidirule:          bidirule.ValidString,\n\t}}\n\tdisplay = &Profile{options{\n\t\tuseSTD3Rules:      true,\n\t\tremoveLeadingDots: true,\n\t\tcheckHyphens:      true,\n\t\tcheckJoiners:      true,\n\t\ttrie:              trie,\n\t\tfromPuny:          validateFromPunycode,\n\t\tmapping:           validateAndMap,\n\t\tbidirule:          bidirule.ValidString,\n\t}}\n\tregistration = &Profile{options{\n\t\tuseSTD3Rules:    true,\n\t\tverifyDNSLength: true,\n\t\tcheckHyphens:    true,\n\t\tcheckJoiners:    true,\n\t\ttrie:            trie,\n\t\tfromPuny:        validateFromPunycode,\n\t\tmapping:         validateRegistration,\n\t\tbidirule:        bidirule.ValidString,\n\t}}\n\n\t// TODO: profiles\n\t// Register: recommended for approving domain names: don't do any mappings\n\t// but rather reject on invalid input. Bundle or block deviation characters.\n)\n\ntype labelError struct{ label, code_ string }\n\nfunc (e labelError) code() string { return e.code_ }\nfunc (e labelError) Error() string {\n\treturn fmt.Sprintf(\"idna: invalid label %q\", e.label)\n}\n\ntype runeError rune\n\nfunc (e runeError) code() string { return \"P1\" }\nfunc (e runeError) Error() string {\n\treturn fmt.Sprintf(\"idna: disallowed rune %U\", e)\n}\n\n// process implements the algorithm described in section 4 of UTS #46,\n// see https://www.unicode.org/reports/tr46.\nfunc (p *Profile) process(s string, toASCII bool) (string, error) {\n\tvar err error\n\tif p.mapping != nil {\n\t\ts, err = p.mapping(p, s)\n\t}\n\t// Remove leading empty labels.\n\tif p.removeLeadingDots {\n\t\tfor ; len(s) > 0 && s[0] == '.'; s = s[1:] {\n\t\t}\n\t}\n\t// It seems like we should only create this error on ToASCII, but the\n\t// UTS 46 conformance tests suggests we should always check this.\n\tif err == nil && p.verifyDNSLength && s == \"\" {\n\t\terr = &labelError{s, \"A4\"}\n\t}\n\tlabels := labelIter{orig: s}\n\tfor ; !labels.done(); labels.next() {\n\t\tlabel := labels.label()\n\t\tif label == \"\" {\n\t\t\t// Empty labels are not okay. The label iterator skips the last\n\t\t\t// label if it is empty.\n\t\t\tif err == nil && p.verifyDNSLength {\n\t\t\t\terr = &labelError{s, \"A4\"}\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif strings.HasPrefix(label, acePrefix) {\n\t\t\tu, err2 := decode(label[len(acePrefix):])\n\t\t\tif err2 != nil {\n\t\t\t\tif err == nil {\n\t\t\t\t\terr = err2\n\t\t\t\t}\n\t\t\t\t// Spec says keep the old label.\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tlabels.set(u)\n\t\t\tif err == nil && p.fromPuny != nil {\n\t\t\t\terr = p.fromPuny(p, u)\n\t\t\t}\n\t\t\tif err == nil {\n\t\t\t\t// This should be called on NonTransitional, according to the\n\t\t\t\t// spec, but that currently does not have any effect. Use the\n\t\t\t\t// original profile to preserve options.\n\t\t\t\terr = p.validateLabel(u)\n\t\t\t}\n\t\t} else if err == nil {\n\t\t\terr = p.validateLabel(label)\n\t\t}\n\t}\n\tif toASCII {\n\t\tfor labels.reset(); !labels.done(); labels.next() {\n\t\t\tlabel := labels.label()\n\t\t\tif !ascii(label) {\n\t\t\t\ta, err2 := encode(acePrefix, label)\n\t\t\t\tif err == nil {\n\t\t\t\t\terr = err2\n\t\t\t\t}\n\t\t\t\tlabel = a\n\t\t\t\tlabels.set(a)\n\t\t\t}\n\t\t\tn := len(label)\n\t\t\tif p.verifyDNSLength && err == nil && (n == 0 || n > 63) {\n\t\t\t\terr = &labelError{label, \"A4\"}\n\t\t\t}\n\t\t}\n\t}\n\ts = labels.result()\n\tif toASCII && p.verifyDNSLength && err == nil {\n\t\t// Compute the length of the domain name minus the root label and its dot.\n\t\tn := len(s)\n\t\tif n > 0 && s[n-1] == '.' {\n\t\t\tn--\n\t\t}\n\t\tif len(s) < 1 || n > 253 {\n\t\t\terr = &labelError{s, \"A4\"}\n\t\t}\n\t}\n\treturn s, err\n}\n\nfunc normalize(p *Profile, s string) (string, error) {\n\treturn norm.NFC.String(s), nil\n}\n\nfunc validateRegistration(p *Profile, s string) (string, error) {\n\tif !norm.NFC.IsNormalString(s) {\n\t\treturn s, &labelError{s, \"V1\"}\n\t}\n\tfor i := 0; i < len(s); {\n\t\tv, sz := trie.lookupString(s[i:])\n\t\t// Copy bytes not copied so far.\n\t\tswitch p.simplify(info(v).category()) {\n\t\t// TODO: handle the NV8 defined in the Unicode idna data set to allow\n\t\t// for strict conformance to IDNA2008.\n\t\tcase valid, deviation:\n\t\tcase disallowed, mapped, unknown, ignored:\n\t\t\tr, _ := utf8.DecodeRuneInString(s[i:])\n\t\t\treturn s, runeError(r)\n\t\t}\n\t\ti += sz\n\t}\n\treturn s, nil\n}\n\nfunc validateAndMap(p *Profile, s string) (string, error) {\n\tvar (\n\t\terr error\n\t\tb   []byte\n\t\tk   int\n\t)\n\tfor i := 0; i < len(s); {\n\t\tv, sz := trie.lookupString(s[i:])\n\t\tstart := i\n\t\ti += sz\n\t\t// Copy bytes not copied so far.\n\t\tswitch p.simplify(info(v).category()) {\n\t\tcase valid:\n\t\t\tcontinue\n\t\tcase disallowed:\n\t\t\tif err == nil {\n\t\t\t\tr, _ := utf8.DecodeRuneInString(s[start:])\n\t\t\t\terr = runeError(r)\n\t\t\t}\n\t\t\tcontinue\n\t\tcase mapped, deviation:\n\t\t\tb = append(b, s[k:start]...)\n\t\t\tb = info(v).appendMapping(b, s[start:i])\n\t\tcase ignored:\n\t\t\tb = append(b, s[k:start]...)\n\t\t\t// drop the rune\n\t\tcase unknown:\n\t\t\tb = append(b, s[k:start]...)\n\t\t\tb = append(b, \"\\ufffd\"...)\n\t\t}\n\t\tk = i\n\t}\n\tif k == 0 {\n\t\t// No changes so far.\n\t\ts = norm.NFC.String(s)\n\t} else {\n\t\tb = append(b, s[k:]...)\n\t\tif norm.NFC.QuickSpan(b) != len(b) {\n\t\t\tb = norm.NFC.Bytes(b)\n\t\t}\n\t\t// TODO: the punycode converters require strings as input.\n\t\ts = string(b)\n\t}\n\treturn s, err\n}\n\n// A labelIter allows iterating over domain name labels.\ntype labelIter struct {\n\torig     string\n\tslice    []string\n\tcurStart int\n\tcurEnd   int\n\ti        int\n}\n\nfunc (l *labelIter) reset() {\n\tl.curStart = 0\n\tl.curEnd = 0\n\tl.i = 0\n}\n\nfunc (l *labelIter) done() bool {\n\treturn l.curStart >= len(l.orig)\n}\n\nfunc (l *labelIter) result() string {\n\tif l.slice != nil {\n\t\treturn strings.Join(l.slice, \".\")\n\t}\n\treturn l.orig\n}\n\nfunc (l *labelIter) label() string {\n\tif l.slice != nil {\n\t\treturn l.slice[l.i]\n\t}\n\tp := strings.IndexByte(l.orig[l.curStart:], '.')\n\tl.curEnd = l.curStart + p\n\tif p == -1 {\n\t\tl.curEnd = len(l.orig)\n\t}\n\treturn l.orig[l.curStart:l.curEnd]\n}\n\n// next sets the value to the next label. It skips the last label if it is empty.\nfunc (l *labelIter) next() {\n\tl.i++\n\tif l.slice != nil {\n\t\tif l.i >= len(l.slice) || l.i == len(l.slice)-1 && l.slice[l.i] == \"\" {\n\t\t\tl.curStart = len(l.orig)\n\t\t}\n\t} else {\n\t\tl.curStart = l.curEnd + 1\n\t\tif l.curStart == len(l.orig)-1 && l.orig[l.curStart] == '.' {\n\t\t\tl.curStart = len(l.orig)\n\t\t}\n\t}\n}\n\nfunc (l *labelIter) set(s string) {\n\tif l.slice == nil {\n\t\tl.slice = strings.Split(l.orig, \".\")\n\t}\n\tl.slice[l.i] = s\n}\n\n// acePrefix is the ASCII Compatible Encoding prefix.\nconst acePrefix = \"xn--\"\n\nfunc (p *Profile) simplify(cat category) category {\n\tswitch cat {\n\tcase disallowedSTD3Mapped:\n\t\tif p.useSTD3Rules {\n\t\t\tcat = disallowed\n\t\t} else {\n\t\t\tcat = mapped\n\t\t}\n\tcase disallowedSTD3Valid:\n\t\tif p.useSTD3Rules {\n\t\t\tcat = disallowed\n\t\t} else {\n\t\t\tcat = valid\n\t\t}\n\tcase deviation:\n\t\tif !p.transitional {\n\t\t\tcat = valid\n\t\t}\n\tcase validNV8, validXV8:\n\t\t// TODO: handle V2008\n\t\tcat = valid\n\t}\n\treturn cat\n}\n\nfunc validateFromPunycode(p *Profile, s string) error {\n\tif !norm.NFC.IsNormalString(s) {\n\t\treturn &labelError{s, \"V1\"}\n\t}\n\tfor i := 0; i < len(s); {\n\t\tv, sz := trie.lookupString(s[i:])\n\t\tif c := p.simplify(info(v).category()); c != valid && c != deviation {\n\t\t\treturn &labelError{s, \"V6\"}\n\t\t}\n\t\ti += sz\n\t}\n\treturn nil\n}\n\nconst (\n\tzwnj = \"\\u200c\"\n\tzwj  = \"\\u200d\"\n)\n\ntype joinState int8\n\nconst (\n\tstateStart joinState = iota\n\tstateVirama\n\tstateBefore\n\tstateBeforeVirama\n\tstateAfter\n\tstateFAIL\n)\n\nvar joinStates = [][numJoinTypes]joinState{\n\tstateStart: {\n\t\tjoiningL:   stateBefore,\n\t\tjoiningD:   stateBefore,\n\t\tjoinZWNJ:   stateFAIL,\n\t\tjoinZWJ:    stateFAIL,\n\t\tjoinVirama: stateVirama,\n\t},\n\tstateVirama: {\n\t\tjoiningL: stateBefore,\n\t\tjoiningD: stateBefore,\n\t},\n\tstateBefore: {\n\t\tjoiningL:   stateBefore,\n\t\tjoiningD:   stateBefore,\n\t\tjoiningT:   stateBefore,\n\t\tjoinZWNJ:   stateAfter,\n\t\tjoinZWJ:    stateFAIL,\n\t\tjoinVirama: stateBeforeVirama,\n\t},\n\tstateBeforeVirama: {\n\t\tjoiningL: stateBefore,\n\t\tjoiningD: stateBefore,\n\t\tjoiningT: stateBefore,\n\t},\n\tstateAfter: {\n\t\tjoiningL:   stateFAIL,\n\t\tjoiningD:   stateBefore,\n\t\tjoiningT:   stateAfter,\n\t\tjoiningR:   stateStart,\n\t\tjoinZWNJ:   stateFAIL,\n\t\tjoinZWJ:    stateFAIL,\n\t\tjoinVirama: stateAfter, // no-op as we can't accept joiners here\n\t},\n\tstateFAIL: {\n\t\t0:          stateFAIL,\n\t\tjoiningL:   stateFAIL,\n\t\tjoiningD:   stateFAIL,\n\t\tjoiningT:   stateFAIL,\n\t\tjoiningR:   stateFAIL,\n\t\tjoinZWNJ:   stateFAIL,\n\t\tjoinZWJ:    stateFAIL,\n\t\tjoinVirama: stateFAIL,\n\t},\n}\n\n// validateLabel validates the criteria from Section 4.1. Item 1, 4, and 6 are\n// already implicitly satisfied by the overall implementation.\nfunc (p *Profile) validateLabel(s string) error {\n\tif s == \"\" {\n\t\tif p.verifyDNSLength {\n\t\t\treturn &labelError{s, \"A4\"}\n\t\t}\n\t\treturn nil\n\t}\n\tif p.bidirule != nil && !p.bidirule(s) {\n\t\treturn &labelError{s, \"B\"}\n\t}\n\tif p.checkHyphens {\n\t\tif len(s) > 4 && s[2] == '-' && s[3] == '-' {\n\t\t\treturn &labelError{s, \"V2\"}\n\t\t}\n\t\tif s[0] == '-' || s[len(s)-1] == '-' {\n\t\t\treturn &labelError{s, \"V3\"}\n\t\t}\n\t}\n\tif !p.checkJoiners {\n\t\treturn nil\n\t}\n\ttrie := p.trie // p.checkJoiners is only set if trie is set.\n\t// TODO: merge the use of this in the trie.\n\tv, sz := trie.lookupString(s)\n\tx := info(v)\n\tif x.isModifier() {\n\t\treturn &labelError{s, \"V5\"}\n\t}\n\t// Quickly return in the absence of zero-width (non) joiners.\n\tif strings.Index(s, zwj) == -1 && strings.Index(s, zwnj) == -1 {\n\t\treturn nil\n\t}\n\tst := stateStart\n\tfor i := 0; ; {\n\t\tjt := x.joinType()\n\t\tif s[i:i+sz] == zwj {\n\t\t\tjt = joinZWJ\n\t\t} else if s[i:i+sz] == zwnj {\n\t\t\tjt = joinZWNJ\n\t\t}\n\t\tst = joinStates[st][jt]\n\t\tif x.isViramaModifier() {\n\t\t\tst = joinStates[st][joinVirama]\n\t\t}\n\t\tif i += sz; i == len(s) {\n\t\t\tbreak\n\t\t}\n\t\tv, sz = trie.lookupString(s[i:])\n\t\tx = info(v)\n\t}\n\tif st == stateFAIL || st == stateAfter {\n\t\treturn &labelError{s, \"C\"}\n\t}\n\treturn nil\n}\n\nfunc ascii(s string) bool {\n\tfor i := 0; i < len(s); i++ {\n\t\tif s[i] >= utf8.RuneSelf {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/idna/pre_go118.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build !go1.18\n\npackage idna\n\nconst transitionalLookup = true\n"
  },
  {
    "path": "vendor/golang.org/x/net/idna/punycode.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage idna\n\n// This file implements the Punycode algorithm from RFC 3492.\n\nimport (\n\t\"math\"\n\t\"strings\"\n\t\"unicode/utf8\"\n)\n\n// These parameter values are specified in section 5.\n//\n// All computation is done with int32s, so that overflow behavior is identical\n// regardless of whether int is 32-bit or 64-bit.\nconst (\n\tbase        int32 = 36\n\tdamp        int32 = 700\n\tinitialBias int32 = 72\n\tinitialN    int32 = 128\n\tskew        int32 = 38\n\ttmax        int32 = 26\n\ttmin        int32 = 1\n)\n\nfunc punyError(s string) error { return &labelError{s, \"A3\"} }\n\n// decode decodes a string as specified in section 6.2.\nfunc decode(encoded string) (string, error) {\n\tif encoded == \"\" {\n\t\treturn \"\", nil\n\t}\n\tpos := 1 + strings.LastIndex(encoded, \"-\")\n\tif pos == 1 {\n\t\treturn \"\", punyError(encoded)\n\t}\n\tif pos == len(encoded) {\n\t\treturn encoded[:len(encoded)-1], nil\n\t}\n\toutput := make([]rune, 0, len(encoded))\n\tif pos != 0 {\n\t\tfor _, r := range encoded[:pos-1] {\n\t\t\toutput = append(output, r)\n\t\t}\n\t}\n\ti, n, bias := int32(0), initialN, initialBias\n\toverflow := false\n\tfor pos < len(encoded) {\n\t\toldI, w := i, int32(1)\n\t\tfor k := base; ; k += base {\n\t\t\tif pos == len(encoded) {\n\t\t\t\treturn \"\", punyError(encoded)\n\t\t\t}\n\t\t\tdigit, ok := decodeDigit(encoded[pos])\n\t\t\tif !ok {\n\t\t\t\treturn \"\", punyError(encoded)\n\t\t\t}\n\t\t\tpos++\n\t\t\ti, overflow = madd(i, digit, w)\n\t\t\tif overflow {\n\t\t\t\treturn \"\", punyError(encoded)\n\t\t\t}\n\t\t\tt := k - bias\n\t\t\tif k <= bias {\n\t\t\t\tt = tmin\n\t\t\t} else if k >= bias+tmax {\n\t\t\t\tt = tmax\n\t\t\t}\n\t\t\tif digit < t {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tw, overflow = madd(0, w, base-t)\n\t\t\tif overflow {\n\t\t\t\treturn \"\", punyError(encoded)\n\t\t\t}\n\t\t}\n\t\tif len(output) >= 1024 {\n\t\t\treturn \"\", punyError(encoded)\n\t\t}\n\t\tx := int32(len(output) + 1)\n\t\tbias = adapt(i-oldI, x, oldI == 0)\n\t\tn += i / x\n\t\ti %= x\n\t\tif n < 0 || n > utf8.MaxRune {\n\t\t\treturn \"\", punyError(encoded)\n\t\t}\n\t\toutput = append(output, 0)\n\t\tcopy(output[i+1:], output[i:])\n\t\toutput[i] = n\n\t\ti++\n\t}\n\treturn string(output), nil\n}\n\n// encode encodes a string as specified in section 6.3 and prepends prefix to\n// the result.\n//\n// The \"while h < length(input)\" line in the specification becomes \"for\n// remaining != 0\" in the Go code, because len(s) in Go is in bytes, not runes.\nfunc encode(prefix, s string) (string, error) {\n\toutput := make([]byte, len(prefix), len(prefix)+1+2*len(s))\n\tcopy(output, prefix)\n\tdelta, n, bias := int32(0), initialN, initialBias\n\tb, remaining := int32(0), int32(0)\n\tfor _, r := range s {\n\t\tif r < 0x80 {\n\t\t\tb++\n\t\t\toutput = append(output, byte(r))\n\t\t} else {\n\t\t\tremaining++\n\t\t}\n\t}\n\th := b\n\tif b > 0 {\n\t\toutput = append(output, '-')\n\t}\n\toverflow := false\n\tfor remaining != 0 {\n\t\tm := int32(0x7fffffff)\n\t\tfor _, r := range s {\n\t\t\tif m > r && r >= n {\n\t\t\t\tm = r\n\t\t\t}\n\t\t}\n\t\tdelta, overflow = madd(delta, m-n, h+1)\n\t\tif overflow {\n\t\t\treturn \"\", punyError(s)\n\t\t}\n\t\tn = m\n\t\tfor _, r := range s {\n\t\t\tif r < n {\n\t\t\t\tdelta++\n\t\t\t\tif delta < 0 {\n\t\t\t\t\treturn \"\", punyError(s)\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif r > n {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tq := delta\n\t\t\tfor k := base; ; k += base {\n\t\t\t\tt := k - bias\n\t\t\t\tif k <= bias {\n\t\t\t\t\tt = tmin\n\t\t\t\t} else if k >= bias+tmax {\n\t\t\t\t\tt = tmax\n\t\t\t\t}\n\t\t\t\tif q < t {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\toutput = append(output, encodeDigit(t+(q-t)%(base-t)))\n\t\t\t\tq = (q - t) / (base - t)\n\t\t\t}\n\t\t\toutput = append(output, encodeDigit(q))\n\t\t\tbias = adapt(delta, h+1, h == b)\n\t\t\tdelta = 0\n\t\t\th++\n\t\t\tremaining--\n\t\t}\n\t\tdelta++\n\t\tn++\n\t}\n\treturn string(output), nil\n}\n\n// madd computes a + (b * c), detecting overflow.\nfunc madd(a, b, c int32) (next int32, overflow bool) {\n\tp := int64(b) * int64(c)\n\tif p > math.MaxInt32-int64(a) {\n\t\treturn 0, true\n\t}\n\treturn a + int32(p), false\n}\n\nfunc decodeDigit(x byte) (digit int32, ok bool) {\n\tswitch {\n\tcase '0' <= x && x <= '9':\n\t\treturn int32(x - ('0' - 26)), true\n\tcase 'A' <= x && x <= 'Z':\n\t\treturn int32(x - 'A'), true\n\tcase 'a' <= x && x <= 'z':\n\t\treturn int32(x - 'a'), true\n\t}\n\treturn 0, false\n}\n\nfunc encodeDigit(digit int32) byte {\n\tswitch {\n\tcase 0 <= digit && digit < 26:\n\t\treturn byte(digit + 'a')\n\tcase 26 <= digit && digit < 36:\n\t\treturn byte(digit + ('0' - 26))\n\t}\n\tpanic(\"idna: internal error in punycode encoding\")\n}\n\n// adapt is the bias adaptation function specified in section 6.1.\nfunc adapt(delta, numPoints int32, firstTime bool) int32 {\n\tif firstTime {\n\t\tdelta /= damp\n\t} else {\n\t\tdelta /= 2\n\t}\n\tdelta += delta / numPoints\n\tk := int32(0)\n\tfor delta > ((base-tmin)*tmax)/2 {\n\t\tdelta /= base - tmin\n\t\tk += base\n\t}\n\treturn k + (base-tmin+1)*delta/(delta+skew)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/idna/tables10.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n//go:build go1.10 && !go1.13\n\npackage idna\n\n// UnicodeVersion is the Unicode version from which the tables in this package are derived.\nconst UnicodeVersion = \"10.0.0\"\n\nvar mappings string = \"\" + // Size: 8175 bytes\n\t\"\\x00\\x01 \\x03 ̈\\x01a\\x03 ̄\\x012\\x013\\x03 ́\\x03 ̧\\x011\\x01o\\x051⁄4\\x051⁄2\" +\n\t\"\\x053⁄4\\x03i̇\\x03l·\\x03ʼn\\x01s\\x03dž\\x03ⱥ\\x03ⱦ\\x01h\\x01j\\x01r\\x01w\\x01y\" +\n\t\"\\x03 ̆\\x03 ̇\\x03 ̊\\x03 ̨\\x03 ̃\\x03 ̋\\x01l\\x01x\\x04̈́\\x03 ι\\x01;\\x05 ̈́\" +\n\t\"\\x04եւ\\x04اٴ\\x04وٴ\\x04ۇٴ\\x04يٴ\\x06क़\\x06ख़\\x06ग़\\x06ज़\\x06ड़\\x06ढ़\\x06फ़\" +\n\t\"\\x06य़\\x06ড়\\x06ঢ়\\x06য়\\x06ਲ਼\\x06ਸ਼\\x06ਖ਼\\x06ਗ਼\\x06ਜ਼\\x06ਫ਼\\x06ଡ଼\\x06ଢ଼\" +\n\t\"\\x06ํา\\x06ໍາ\\x06ຫນ\\x06ຫມ\\x06གྷ\\x06ཌྷ\\x06དྷ\\x06བྷ\\x06ཛྷ\\x06ཀྵ\\x06ཱི\\x06ཱུ\" +\n\t\"\\x06ྲྀ\\x09ྲཱྀ\\x06ླྀ\\x09ླཱྀ\\x06ཱྀ\\x06ྒྷ\\x06ྜྷ\\x06ྡྷ\\x06ྦྷ\\x06ྫྷ\\x06ྐྵ\\x02\" +\n\t\"в\\x02д\\x02о\\x02с\\x02т\\x02ъ\\x02ѣ\\x02æ\\x01b\\x01d\\x01e\\x02ǝ\\x01g\\x01i\\x01k\" +\n\t\"\\x01m\\x01n\\x02ȣ\\x01p\\x01t\\x01u\\x02ɐ\\x02ɑ\\x02ə\\x02ɛ\\x02ɜ\\x02ŋ\\x02ɔ\\x02ɯ\" +\n\t\"\\x01v\\x02β\\x02γ\\x02δ\\x02φ\\x02χ\\x02ρ\\x02н\\x02ɒ\\x01c\\x02ɕ\\x02ð\\x01f\\x02ɟ\" +\n\t\"\\x02ɡ\\x02ɥ\\x02ɨ\\x02ɩ\\x02ɪ\\x02ʝ\\x02ɭ\\x02ʟ\\x02ɱ\\x02ɰ\\x02ɲ\\x02ɳ\\x02ɴ\\x02ɵ\" +\n\t\"\\x02ɸ\\x02ʂ\\x02ʃ\\x02ƫ\\x02ʉ\\x02ʊ\\x02ʋ\\x02ʌ\\x01z\\x02ʐ\\x02ʑ\\x02ʒ\\x02θ\\x02ss\" +\n\t\"\\x02ά\\x02έ\\x02ή\\x02ί\\x02ό\\x02ύ\\x02ώ\\x05ἀι\\x05ἁι\\x05ἂι\\x05ἃι\\x05ἄι\\x05ἅι\" +\n\t\"\\x05ἆι\\x05ἇι\\x05ἠι\\x05ἡι\\x05ἢι\\x05ἣι\\x05ἤι\\x05ἥι\\x05ἦι\\x05ἧι\\x05ὠι\\x05ὡι\" +\n\t\"\\x05ὢι\\x05ὣι\\x05ὤι\\x05ὥι\\x05ὦι\\x05ὧι\\x05ὰι\\x04αι\\x04άι\\x05ᾶι\\x02ι\\x05 ̈͂\" +\n\t\"\\x05ὴι\\x04ηι\\x04ήι\\x05ῆι\\x05 ̓̀\\x05 ̓́\\x05 ̓͂\\x02ΐ\\x05 ̔̀\\x05 ̔́\\x05 ̔͂\" +\n\t\"\\x02ΰ\\x05 ̈̀\\x01`\\x05ὼι\\x04ωι\\x04ώι\\x05ῶι\\x06′′\\x09′′′\\x06‵‵\\x09‵‵‵\\x02!\" +\n\t\"!\\x02??\\x02?!\\x02!?\\x0c′′′′\\x010\\x014\\x015\\x016\\x017\\x018\\x019\\x01+\\x01=\" +\n\t\"\\x01(\\x01)\\x02rs\\x02ħ\\x02no\\x01q\\x02sm\\x02tm\\x02ω\\x02å\\x02א\\x02ב\\x02ג\" +\n\t\"\\x02ד\\x02π\\x051⁄7\\x051⁄9\\x061⁄10\\x051⁄3\\x052⁄3\\x051⁄5\\x052⁄5\\x053⁄5\\x054\" +\n\t\"⁄5\\x051⁄6\\x055⁄6\\x051⁄8\\x053⁄8\\x055⁄8\\x057⁄8\\x041⁄\\x02ii\\x02iv\\x02vi\" +\n\t\"\\x04viii\\x02ix\\x02xi\\x050⁄3\\x06∫∫\\x09∫∫∫\\x06∮∮\\x09∮∮∮\\x0210\\x0211\\x0212\" +\n\t\"\\x0213\\x0214\\x0215\\x0216\\x0217\\x0218\\x0219\\x0220\\x04(10)\\x04(11)\\x04(12)\" +\n\t\"\\x04(13)\\x04(14)\\x04(15)\\x04(16)\\x04(17)\\x04(18)\\x04(19)\\x04(20)\\x0c∫∫∫∫\" +\n\t\"\\x02==\\x05⫝̸\\x02ɫ\\x02ɽ\\x02ȿ\\x02ɀ\\x01.\\x04 ゙\\x04 ゚\\x06より\\x06コト\\x05(ᄀ)\\x05\" +\n\t\"(ᄂ)\\x05(ᄃ)\\x05(ᄅ)\\x05(ᄆ)\\x05(ᄇ)\\x05(ᄉ)\\x05(ᄋ)\\x05(ᄌ)\\x05(ᄎ)\\x05(ᄏ)\\x05(ᄐ\" +\n\t\")\\x05(ᄑ)\\x05(ᄒ)\\x05(가)\\x05(나)\\x05(다)\\x05(라)\\x05(마)\\x05(바)\\x05(사)\\x05(아)\" +\n\t\"\\x05(자)\\x05(차)\\x05(카)\\x05(타)\\x05(파)\\x05(하)\\x05(주)\\x08(오전)\\x08(오후)\\x05(一)\" +\n\t\"\\x05(二)\\x05(三)\\x05(四)\\x05(五)\\x05(六)\\x05(七)\\x05(八)\\x05(九)\\x05(十)\\x05(月)\" +\n\t\"\\x05(火)\\x05(水)\\x05(木)\\x05(金)\\x05(土)\\x05(日)\\x05(株)\\x05(有)\\x05(社)\\x05(名)\" +\n\t\"\\x05(特)\\x05(財)\\x05(祝)\\x05(労)\\x05(代)\\x05(呼)\\x05(学)\\x05(監)\\x05(企)\\x05(資)\" +\n\t\"\\x05(協)\\x05(祭)\\x05(休)\\x05(自)\\x05(至)\\x0221\\x0222\\x0223\\x0224\\x0225\\x0226\" +\n\t\"\\x0227\\x0228\\x0229\\x0230\\x0231\\x0232\\x0233\\x0234\\x0235\\x06참고\\x06주의\\x0236\" +\n\t\"\\x0237\\x0238\\x0239\\x0240\\x0241\\x0242\\x0243\\x0244\\x0245\\x0246\\x0247\\x0248\" +\n\t\"\\x0249\\x0250\\x041月\\x042月\\x043月\\x044月\\x045月\\x046月\\x047月\\x048月\\x049月\\x0510\" +\n\t\"月\\x0511月\\x0512月\\x02hg\\x02ev\\x0cアパート\\x0cアルファ\\x0cアンペア\\x09アール\\x0cイニング\\x09\" +\n\t\"インチ\\x09ウォン\\x0fエスクード\\x0cエーカー\\x09オンス\\x09オーム\\x09カイリ\\x0cカラット\\x0cカロリー\\x09ガロ\" +\n\t\"ン\\x09ガンマ\\x06ギガ\\x09ギニー\\x0cキュリー\\x0cギルダー\\x06キロ\\x0fキログラム\\x12キロメートル\\x0fキロワッ\" +\n\t\"ト\\x09グラム\\x0fグラムトン\\x0fクルゼイロ\\x0cクローネ\\x09ケース\\x09コルナ\\x09コーポ\\x0cサイクル\\x0fサンチ\" +\n\t\"ーム\\x0cシリング\\x09センチ\\x09セント\\x09ダース\\x06デシ\\x06ドル\\x06トン\\x06ナノ\\x09ノット\\x09ハイツ\" +\n\t\"\\x0fパーセント\\x09パーツ\\x0cバーレル\\x0fピアストル\\x09ピクル\\x06ピコ\\x06ビル\\x0fファラッド\\x0cフィート\" +\n\t\"\\x0fブッシェル\\x09フラン\\x0fヘクタール\\x06ペソ\\x09ペニヒ\\x09ヘルツ\\x09ペンス\\x09ページ\\x09ベータ\\x0cポイ\" +\n\t\"ント\\x09ボルト\\x06ホン\\x09ポンド\\x09ホール\\x09ホーン\\x0cマイクロ\\x09マイル\\x09マッハ\\x09マルク\\x0fマ\" +\n\t\"ンション\\x0cミクロン\\x06ミリ\\x0fミリバール\\x06メガ\\x0cメガトン\\x0cメートル\\x09ヤード\\x09ヤール\\x09ユアン\" +\n\t\"\\x0cリットル\\x06リラ\\x09ルピー\\x0cルーブル\\x06レム\\x0fレントゲン\\x09ワット\\x040点\\x041点\\x042点\" +\n\t\"\\x043点\\x044点\\x045点\\x046点\\x047点\\x048点\\x049点\\x0510点\\x0511点\\x0512点\\x0513点\" +\n\t\"\\x0514点\\x0515点\\x0516点\\x0517点\\x0518点\\x0519点\\x0520点\\x0521点\\x0522点\\x0523点\" +\n\t\"\\x0524点\\x02da\\x02au\\x02ov\\x02pc\\x02dm\\x02iu\\x06平成\\x06昭和\\x06大正\\x06明治\\x0c株\" +\n\t\"式会社\\x02pa\\x02na\\x02ma\\x02ka\\x02kb\\x02mb\\x02gb\\x04kcal\\x02pf\\x02nf\\x02m\" +\n\t\"g\\x02kg\\x02hz\\x02ml\\x02dl\\x02kl\\x02fm\\x02nm\\x02mm\\x02cm\\x02km\\x02m2\\x02m\" +\n\t\"3\\x05m∕s\\x06m∕s2\\x07rad∕s\\x08rad∕s2\\x02ps\\x02ns\\x02ms\\x02pv\\x02nv\\x02mv\" +\n\t\"\\x02kv\\x02pw\\x02nw\\x02mw\\x02kw\\x02bq\\x02cc\\x02cd\\x06c∕kg\\x02db\\x02gy\\x02\" +\n\t\"ha\\x02hp\\x02in\\x02kk\\x02kt\\x02lm\\x02ln\\x02lx\\x02ph\\x02pr\\x02sr\\x02sv\\x02\" +\n\t\"wb\\x05v∕m\\x05a∕m\\x041日\\x042日\\x043日\\x044日\\x045日\\x046日\\x047日\\x048日\\x049日\" +\n\t\"\\x0510日\\x0511日\\x0512日\\x0513日\\x0514日\\x0515日\\x0516日\\x0517日\\x0518日\\x0519日\" +\n\t\"\\x0520日\\x0521日\\x0522日\\x0523日\\x0524日\\x0525日\\x0526日\\x0527日\\x0528日\\x0529日\" +\n\t\"\\x0530日\\x0531日\\x02ь\\x02ɦ\\x02ɬ\\x02ʞ\\x02ʇ\\x02œ\\x04𤋮\\x04𢡊\\x04𢡄\\x04𣏕\\x04𥉉\" +\n\t\"\\x04𥳐\\x04𧻓\\x02ff\\x02fi\\x02fl\\x02st\\x04մն\\x04մե\\x04մի\\x04վն\\x04մխ\\x04יִ\" +\n\t\"\\x04ײַ\\x02ע\\x02ה\\x02כ\\x02ל\\x02ם\\x02ר\\x02ת\\x04שׁ\\x04שׂ\\x06שּׁ\\x06שּׂ\\x04א\" +\n\t\"ַ\\x04אָ\\x04אּ\\x04בּ\\x04גּ\\x04דּ\\x04הּ\\x04וּ\\x04זּ\\x04טּ\\x04יּ\\x04ךּ\\x04\" +\n\t\"כּ\\x04לּ\\x04מּ\\x04נּ\\x04סּ\\x04ףּ\\x04פּ\\x04צּ\\x04קּ\\x04רּ\\x04שּ\\x04תּ\" +\n\t\"\\x04וֹ\\x04בֿ\\x04כֿ\\x04פֿ\\x04אל\\x02ٱ\\x02ٻ\\x02پ\\x02ڀ\\x02ٺ\\x02ٿ\\x02ٹ\\x02ڤ\" +\n\t\"\\x02ڦ\\x02ڄ\\x02ڃ\\x02چ\\x02ڇ\\x02ڍ\\x02ڌ\\x02ڎ\\x02ڈ\\x02ژ\\x02ڑ\\x02ک\\x02گ\\x02ڳ\" +\n\t\"\\x02ڱ\\x02ں\\x02ڻ\\x02ۀ\\x02ہ\\x02ھ\\x02ے\\x02ۓ\\x02ڭ\\x02ۇ\\x02ۆ\\x02ۈ\\x02ۋ\\x02ۅ\" +\n\t\"\\x02ۉ\\x02ې\\x02ى\\x04ئا\\x04ئە\\x04ئو\\x04ئۇ\\x04ئۆ\\x04ئۈ\\x04ئې\\x04ئى\\x02ی\\x04\" +\n\t\"ئج\\x04ئح\\x04ئم\\x04ئي\\x04بج\\x04بح\\x04بخ\\x04بم\\x04بى\\x04بي\\x04تج\\x04تح\" +\n\t\"\\x04تخ\\x04تم\\x04تى\\x04تي\\x04ثج\\x04ثم\\x04ثى\\x04ثي\\x04جح\\x04جم\\x04حج\\x04حم\" +\n\t\"\\x04خج\\x04خح\\x04خم\\x04سج\\x04سح\\x04سخ\\x04سم\\x04صح\\x04صم\\x04ضج\\x04ضح\\x04ضخ\" +\n\t\"\\x04ضم\\x04طح\\x04طم\\x04ظم\\x04عج\\x04عم\\x04غج\\x04غم\\x04فج\\x04فح\\x04فخ\\x04فم\" +\n\t\"\\x04فى\\x04في\\x04قح\\x04قم\\x04قى\\x04قي\\x04كا\\x04كج\\x04كح\\x04كخ\\x04كل\\x04كم\" +\n\t\"\\x04كى\\x04كي\\x04لج\\x04لح\\x04لخ\\x04لم\\x04لى\\x04لي\\x04مج\\x04مح\\x04مخ\\x04مم\" +\n\t\"\\x04مى\\x04مي\\x04نج\\x04نح\\x04نخ\\x04نم\\x04نى\\x04ني\\x04هج\\x04هم\\x04هى\\x04هي\" +\n\t\"\\x04يج\\x04يح\\x04يخ\\x04يم\\x04يى\\x04يي\\x04ذٰ\\x04رٰ\\x04ىٰ\\x05 ٌّ\\x05 ٍّ\\x05\" +\n\t\" َّ\\x05 ُّ\\x05 ِّ\\x05 ّٰ\\x04ئر\\x04ئز\\x04ئن\\x04بر\\x04بز\\x04بن\\x04تر\\x04تز\" +\n\t\"\\x04تن\\x04ثر\\x04ثز\\x04ثن\\x04ما\\x04نر\\x04نز\\x04نن\\x04ير\\x04يز\\x04ين\\x04ئخ\" +\n\t\"\\x04ئه\\x04به\\x04ته\\x04صخ\\x04له\\x04نه\\x04هٰ\\x04يه\\x04ثه\\x04سه\\x04شم\\x04شه\" +\n\t\"\\x06ـَّ\\x06ـُّ\\x06ـِّ\\x04طى\\x04طي\\x04عى\\x04عي\\x04غى\\x04غي\\x04سى\\x04سي\" +\n\t\"\\x04شى\\x04شي\\x04حى\\x04حي\\x04جى\\x04جي\\x04خى\\x04خي\\x04صى\\x04صي\\x04ضى\\x04ضي\" +\n\t\"\\x04شج\\x04شح\\x04شخ\\x04شر\\x04سر\\x04صر\\x04ضر\\x04اً\\x06تجم\\x06تحج\\x06تحم\" +\n\t\"\\x06تخم\\x06تمج\\x06تمح\\x06تمخ\\x06جمح\\x06حمي\\x06حمى\\x06سحج\\x06سجح\\x06سجى\" +\n\t\"\\x06سمح\\x06سمج\\x06سمم\\x06صحح\\x06صمم\\x06شحم\\x06شجي\\x06شمخ\\x06شمم\\x06ضحى\" +\n\t\"\\x06ضخم\\x06طمح\\x06طمم\\x06طمي\\x06عجم\\x06عمم\\x06عمى\\x06غمم\\x06غمي\\x06غمى\" +\n\t\"\\x06فخم\\x06قمح\\x06قمم\\x06لحم\\x06لحي\\x06لحى\\x06لجج\\x06لخم\\x06لمح\\x06محج\" +\n\t\"\\x06محم\\x06محي\\x06مجح\\x06مجم\\x06مخج\\x06مخم\\x06مجخ\\x06همج\\x06همم\\x06نحم\" +\n\t\"\\x06نحى\\x06نجم\\x06نجى\\x06نمي\\x06نمى\\x06يمم\\x06بخي\\x06تجي\\x06تجى\\x06تخي\" +\n\t\"\\x06تخى\\x06تمي\\x06تمى\\x06جمي\\x06جحى\\x06جمى\\x06سخى\\x06صحي\\x06شحي\\x06ضحي\" +\n\t\"\\x06لجي\\x06لمي\\x06يحي\\x06يجي\\x06يمي\\x06ممي\\x06قمي\\x06نحي\\x06عمي\\x06كمي\" +\n\t\"\\x06نجح\\x06مخي\\x06لجم\\x06كمم\\x06جحي\\x06حجي\\x06مجي\\x06فمي\\x06بحي\\x06سخي\" +\n\t\"\\x06نجي\\x06صلے\\x06قلے\\x08الله\\x08اكبر\\x08محمد\\x08صلعم\\x08رسول\\x08عليه\" +\n\t\"\\x08وسلم\\x06صلى!صلى الله عليه وسلم\\x0fجل جلاله\\x08ریال\\x01,\\x01:\\x01!\" +\n\t\"\\x01?\\x01_\\x01{\\x01}\\x01[\\x01]\\x01#\\x01&\\x01*\\x01-\\x01<\\x01>\\x01\\\\\\x01$\" +\n\t\"\\x01%\\x01@\\x04ـً\\x04ـَ\\x04ـُ\\x04ـِ\\x04ـّ\\x04ـْ\\x02ء\\x02آ\\x02أ\\x02ؤ\\x02إ\" +\n\t\"\\x02ئ\\x02ا\\x02ب\\x02ة\\x02ت\\x02ث\\x02ج\\x02ح\\x02خ\\x02د\\x02ذ\\x02ر\\x02ز\\x02س\" +\n\t\"\\x02ش\\x02ص\\x02ض\\x02ط\\x02ظ\\x02ع\\x02غ\\x02ف\\x02ق\\x02ك\\x02ل\\x02م\\x02ن\\x02ه\" +\n\t\"\\x02و\\x02ي\\x04لآ\\x04لأ\\x04لإ\\x04لا\\x01\\x22\\x01'\\x01/\\x01^\\x01|\\x01~\\x02¢\" +\n\t\"\\x02£\\x02¬\\x02¦\\x02¥\\x08𝅗𝅥\\x08𝅘𝅥\\x0c𝅘𝅥𝅮\\x0c𝅘𝅥𝅯\\x0c𝅘𝅥𝅰\\x0c𝅘𝅥𝅱\\x0c𝅘𝅥𝅲\\x08𝆹\" +\n\t\"𝅥\\x08𝆺𝅥\\x0c𝆹𝅥𝅮\\x0c𝆺𝅥𝅮\\x0c𝆹𝅥𝅯\\x0c𝆺𝅥𝅯\\x02ı\\x02ȷ\\x02α\\x02ε\\x02ζ\\x02η\\x02\" +\n\t\"κ\\x02λ\\x02μ\\x02ν\\x02ξ\\x02ο\\x02σ\\x02τ\\x02υ\\x02ψ\\x03∇\\x03∂\\x02ϝ\\x02ٮ\\x02ڡ\" +\n\t\"\\x02ٯ\\x020,\\x021,\\x022,\\x023,\\x024,\\x025,\\x026,\\x027,\\x028,\\x029,\\x03(a)\" +\n\t\"\\x03(b)\\x03(c)\\x03(d)\\x03(e)\\x03(f)\\x03(g)\\x03(h)\\x03(i)\\x03(j)\\x03(k)\" +\n\t\"\\x03(l)\\x03(m)\\x03(n)\\x03(o)\\x03(p)\\x03(q)\\x03(r)\\x03(s)\\x03(t)\\x03(u)\" +\n\t\"\\x03(v)\\x03(w)\\x03(x)\\x03(y)\\x03(z)\\x07〔s〕\\x02wz\\x02hv\\x02sd\\x03ppv\\x02w\" +\n\t\"c\\x02mc\\x02md\\x02dj\\x06ほか\\x06ココ\\x03サ\\x03手\\x03字\\x03双\\x03デ\\x03二\\x03多\\x03解\" +\n\t\"\\x03天\\x03交\\x03映\\x03無\\x03料\\x03前\\x03後\\x03再\\x03新\\x03初\\x03終\\x03生\\x03販\\x03声\" +\n\t\"\\x03吹\\x03演\\x03投\\x03捕\\x03一\\x03三\\x03遊\\x03左\\x03中\\x03右\\x03指\\x03走\\x03打\\x03禁\" +\n\t\"\\x03空\\x03合\\x03満\\x03有\\x03月\\x03申\\x03割\\x03営\\x03配\\x09〔本〕\\x09〔三〕\\x09〔二〕\\x09〔安\" +\n\t\"〕\\x09〔点〕\\x09〔打〕\\x09〔盗〕\\x09〔勝〕\\x09〔敗〕\\x03得\\x03可\\x03丽\\x03丸\\x03乁\\x03你\\x03\" +\n\t\"侮\\x03侻\\x03倂\\x03偺\\x03備\\x03僧\\x03像\\x03㒞\\x03免\\x03兔\\x03兤\\x03具\\x03㒹\\x03內\\x03\" +\n\t\"冗\\x03冤\\x03仌\\x03冬\\x03况\\x03凵\\x03刃\\x03㓟\\x03刻\\x03剆\\x03剷\\x03㔕\\x03勇\\x03勉\\x03\" +\n\t\"勤\\x03勺\\x03包\\x03匆\\x03北\\x03卉\\x03卑\\x03博\\x03即\\x03卽\\x03卿\\x03灰\\x03及\\x03叟\\x03\" +\n\t\"叫\\x03叱\\x03吆\\x03咞\\x03吸\\x03呈\\x03周\\x03咢\\x03哶\\x03唐\\x03啓\\x03啣\\x03善\\x03喙\\x03\" +\n\t\"喫\\x03喳\\x03嗂\\x03圖\\x03嘆\\x03圗\\x03噑\\x03噴\\x03切\\x03壮\\x03城\\x03埴\\x03堍\\x03型\\x03\" +\n\t\"堲\\x03報\\x03墬\\x03売\\x03壷\\x03夆\\x03夢\\x03奢\\x03姬\\x03娛\\x03娧\\x03姘\\x03婦\\x03㛮\\x03\" +\n\t\"嬈\\x03嬾\\x03寃\\x03寘\\x03寧\\x03寳\\x03寿\\x03将\\x03尢\\x03㞁\\x03屠\\x03屮\\x03峀\\x03岍\\x03\" +\n\t\"嵃\\x03嵮\\x03嵫\\x03嵼\\x03巡\\x03巢\\x03㠯\\x03巽\\x03帨\\x03帽\\x03幩\\x03㡢\\x03㡼\\x03庰\\x03\" +\n\t\"庳\\x03庶\\x03廊\\x03廾\\x03舁\\x03弢\\x03㣇\\x03形\\x03彫\\x03㣣\\x03徚\\x03忍\\x03志\\x03忹\\x03\" +\n\t\"悁\\x03㤺\\x03㤜\\x03悔\\x03惇\\x03慈\\x03慌\\x03慎\\x03慺\\x03憎\\x03憲\\x03憤\\x03憯\\x03懞\\x03\" +\n\t\"懲\\x03懶\\x03成\\x03戛\\x03扝\\x03抱\\x03拔\\x03捐\\x03挽\\x03拼\\x03捨\\x03掃\\x03揤\\x03搢\\x03\" +\n\t\"揅\\x03掩\\x03㨮\\x03摩\\x03摾\\x03撝\\x03摷\\x03㩬\\x03敏\\x03敬\\x03旣\\x03書\\x03晉\\x03㬙\\x03\" +\n\t\"暑\\x03㬈\\x03㫤\\x03冒\\x03冕\\x03最\\x03暜\\x03肭\\x03䏙\\x03朗\\x03望\\x03朡\\x03杞\\x03杓\\x03\" +\n\t\"㭉\\x03柺\\x03枅\\x03桒\\x03梅\\x03梎\\x03栟\\x03椔\\x03㮝\\x03楂\\x03榣\\x03槪\\x03檨\\x03櫛\\x03\" +\n\t\"㰘\\x03次\\x03歔\\x03㱎\\x03歲\\x03殟\\x03殺\\x03殻\\x03汎\\x03沿\\x03泍\\x03汧\\x03洖\\x03派\\x03\" +\n\t\"海\\x03流\\x03浩\\x03浸\\x03涅\\x03洴\\x03港\\x03湮\\x03㴳\\x03滋\\x03滇\\x03淹\\x03潮\\x03濆\\x03\" +\n\t\"瀹\\x03瀞\\x03瀛\\x03㶖\\x03灊\\x03災\\x03灷\\x03炭\\x03煅\\x03熜\\x03爨\\x03爵\\x03牐\\x03犀\\x03\" +\n\t\"犕\\x03獺\\x03王\\x03㺬\\x03玥\\x03㺸\\x03瑇\\x03瑜\\x03瑱\\x03璅\\x03瓊\\x03㼛\\x03甤\\x03甾\\x03\" +\n\t\"異\\x03瘐\\x03㿼\\x03䀈\\x03直\\x03眞\\x03真\\x03睊\\x03䀹\\x03瞋\\x03䁆\\x03䂖\\x03硎\\x03碌\\x03\" +\n\t\"磌\\x03䃣\\x03祖\\x03福\\x03秫\\x03䄯\\x03穀\\x03穊\\x03穏\\x03䈂\\x03篆\\x03築\\x03䈧\\x03糒\\x03\" +\n\t\"䊠\\x03糨\\x03糣\\x03紀\\x03絣\\x03䌁\\x03緇\\x03縂\\x03繅\\x03䌴\\x03䍙\\x03罺\\x03羕\\x03翺\\x03\" +\n\t\"者\\x03聠\\x03聰\\x03䏕\\x03育\\x03脃\\x03䐋\\x03脾\\x03媵\\x03舄\\x03辞\\x03䑫\\x03芑\\x03芋\\x03\" +\n\t\"芝\\x03劳\\x03花\\x03芳\\x03芽\\x03苦\\x03若\\x03茝\\x03荣\\x03莭\\x03茣\\x03莽\\x03菧\\x03著\\x03\" +\n\t\"荓\\x03菊\\x03菌\\x03菜\\x03䔫\\x03蓱\\x03蓳\\x03蔖\\x03蕤\\x03䕝\\x03䕡\\x03䕫\\x03虐\\x03虜\\x03\" +\n\t\"虧\\x03虩\\x03蚩\\x03蚈\\x03蜎\\x03蛢\\x03蝹\\x03蜨\\x03蝫\\x03螆\\x03蟡\\x03蠁\\x03䗹\\x03衠\\x03\" +\n\t\"衣\\x03裗\\x03裞\\x03䘵\\x03裺\\x03㒻\\x03䚾\\x03䛇\\x03誠\\x03諭\\x03變\\x03豕\\x03貫\\x03賁\\x03\" +\n\t\"贛\\x03起\\x03跋\\x03趼\\x03跰\\x03軔\\x03輸\\x03邔\\x03郱\\x03鄑\\x03鄛\\x03鈸\\x03鋗\\x03鋘\\x03\" +\n\t\"鉼\\x03鏹\\x03鐕\\x03開\\x03䦕\\x03閷\\x03䧦\\x03雃\\x03嶲\\x03霣\\x03䩮\\x03䩶\\x03韠\\x03䪲\\x03\" +\n\t\"頋\\x03頩\\x03飢\\x03䬳\\x03餩\\x03馧\\x03駂\\x03駾\\x03䯎\\x03鬒\\x03鱀\\x03鳽\\x03䳎\\x03䳭\\x03\" +\n\t\"鵧\\x03䳸\\x03麻\\x03䵖\\x03黹\\x03黾\\x03鼅\\x03鼏\\x03鼖\\x03鼻\"\n\nvar xorData string = \"\" + // Size: 4855 bytes\n\t\"\\x02\\x0c\\x09\\x02\\xb0\\xec\\x02\\xad\\xd8\\x02\\xad\\xd9\\x02\\x06\\x07\\x02\\x0f\\x12\" +\n\t\"\\x02\\x0f\\x1f\\x02\\x0f\\x1d\\x02\\x01\\x13\\x02\\x0f\\x16\\x02\\x0f\\x0b\\x02\\x0f3\" +\n\t\"\\x02\\x0f7\\x02\\x0f?\\x02\\x0f/\\x02\\x0f*\\x02\\x0c&\\x02\\x0c*\\x02\\x0c;\\x02\\x0c9\" +\n\t\"\\x02\\x0c%\\x02\\xab\\xed\\x02\\xab\\xe2\\x02\\xab\\xe3\\x02\\xa9\\xe0\\x02\\xa9\\xe1\" +\n\t\"\\x02\\xa9\\xe6\\x02\\xa3\\xcb\\x02\\xa3\\xc8\\x02\\xa3\\xc9\\x02\\x01#\\x02\\x01\\x08\" +\n\t\"\\x02\\x0e>\\x02\\x0e'\\x02\\x0f\\x03\\x02\\x03\\x0d\\x02\\x03\\x09\\x02\\x03\\x17\\x02\" +\n\t\"\\x03\\x0e\\x02\\x02\\x03\\x02\\x011\\x02\\x01\\x00\\x02\\x01\\x10\\x02\\x03<\\x02\\x07\" +\n\t\"\\x0d\\x02\\x02\\x0c\\x02\\x0c0\\x02\\x01\\x03\\x02\\x01\\x01\\x02\\x01 \\x02\\x01\\x22\" +\n\t\"\\x02\\x01)\\x02\\x01\\x0a\\x02\\x01\\x0c\\x02\\x02\\x06\\x02\\x02\\x02\\x02\\x03\\x10\" +\n\t\"\\x03\\x037 \\x03\\x0b+\\x03\\x02\\x01\\x04\\x02\\x01\\x02\\x02\\x019\\x02\\x03\\x1c\\x02\" +\n\t\"\\x02$\\x03\\x80p$\\x02\\x03:\\x02\\x03\\x0a\\x03\\xc1r.\\x03\\xc1r,\\x03\\xc1r\\x02\" +\n\t\"\\x02\\x02:\\x02\\x02>\\x02\\x02,\\x02\\x02\\x10\\x02\\x02\\x00\\x03\\xc1s<\\x03\\xc1s*\" +\n\t\"\\x03\\xc2L$\\x03\\xc2L;\\x02\\x09)\\x02\\x0a\\x19\\x03\\x83\\xab\\xe3\\x03\\x83\\xab\" +\n\t\"\\xf2\\x03 4\\xe0\\x03\\x81\\xab\\xea\\x03\\x81\\xab\\xf3\\x03 4\\xef\\x03\\x96\\xe1\\xcd\" +\n\t\"\\x03\\x84\\xe5\\xc3\\x02\\x0d\\x11\\x03\\x8b\\xec\\xcb\\x03\\x94\\xec\\xcf\\x03\\x9a\\xec\" +\n\t\"\\xc2\\x03\\x8b\\xec\\xdb\\x03\\x94\\xec\\xdf\\x03\\x9a\\xec\\xd2\\x03\\x01\\x0c!\\x03\" +\n\t\"\\x01\\x0c#\\x03ʠ\\x9d\\x03ʣ\\x9c\\x03ʢ\\x9f\\x03ʥ\\x9e\\x03ʤ\\x91\\x03ʧ\\x90\\x03ʦ\\x93\" +\n\t\"\\x03ʩ\\x92\\x03ʨ\\x95\\x03\\xca\\xf3\\xb5\\x03\\xca\\xf0\\xb4\\x03\\xca\\xf1\\xb7\\x03\" +\n\t\"\\xca\\xf6\\xb6\\x03\\xca\\xf7\\x89\\x03\\xca\\xf4\\x88\\x03\\xca\\xf5\\x8b\\x03\\xca\\xfa\" +\n\t\"\\x8a\\x03\\xca\\xfb\\x8d\\x03\\xca\\xf8\\x8c\\x03\\xca\\xf9\\x8f\\x03\\xca\\xfe\\x8e\\x03\" +\n\t\"\\xca\\xff\\x81\\x03\\xca\\xfc\\x80\\x03\\xca\\xfd\\x83\\x03\\xca\\xe2\\x82\\x03\\xca\\xe3\" +\n\t\"\\x85\\x03\\xca\\xe0\\x84\\x03\\xca\\xe1\\x87\\x03\\xca\\xe6\\x86\\x03\\xca\\xe7\\x99\\x03\" +\n\t\"\\xca\\xe4\\x98\\x03\\xca\\xe5\\x9b\\x03\\xca\\xea\\x9a\\x03\\xca\\xeb\\x9d\\x03\\xca\\xe8\" +\n\t\"\\x9c\\x03ؓ\\x89\\x03ߔ\\x8b\\x02\\x010\\x03\\x03\\x04\\x1e\\x03\\x04\\x15\\x12\\x03\\x0b\" +\n\t\"\\x05,\\x03\\x06\\x04\\x00\\x03\\x06\\x04)\\x03\\x06\\x044\\x03\\x06\\x04<\\x03\\x06\\x05\" +\n\t\"\\x1d\\x03\\x06\\x06\\x00\\x03\\x06\\x06\\x0a\\x03\\x06\\x06'\\x03\\x06\\x062\\x03\\x0786\" +\n\t\"\\x03\\x079/\\x03\\x079 \\x03\\x07:\\x0e\\x03\\x07:\\x1b\\x03\\x07:%\\x03\\x07;/\\x03\" +\n\t\"\\x07;%\\x03\\x074\\x11\\x03\\x076\\x09\\x03\\x077*\\x03\\x070\\x01\\x03\\x070\\x0f\\x03\" +\n\t\"\\x070.\\x03\\x071\\x16\\x03\\x071\\x04\\x03\\x0710\\x03\\x072\\x18\\x03\\x072-\\x03\" +\n\t\"\\x073\\x14\\x03\\x073>\\x03\\x07'\\x09\\x03\\x07 \\x00\\x03\\x07\\x1f\\x0b\\x03\\x07\" +\n\t\"\\x18#\\x03\\x07\\x18(\\x03\\x07\\x186\\x03\\x07\\x18\\x03\\x03\\x07\\x19\\x16\\x03\\x07\" +\n\t\"\\x116\\x03\\x07\\x12'\\x03\\x07\\x13\\x10\\x03\\x07\\x0c&\\x03\\x07\\x0c\\x08\\x03\\x07\" +\n\t\"\\x0c\\x13\\x03\\x07\\x0d\\x02\\x03\\x07\\x0d\\x1c\\x03\\x07\\x0b5\\x03\\x07\\x0b\\x0a\" +\n\t\"\\x03\\x07\\x0b\\x01\\x03\\x07\\x0b\\x0f\\x03\\x07\\x05\\x00\\x03\\x07\\x05\\x09\\x03\\x07\" +\n\t\"\\x05\\x0b\\x03\\x07\\x07\\x01\\x03\\x07\\x07\\x08\\x03\\x07\\x00<\\x03\\x07\\x00+\\x03\" +\n\t\"\\x07\\x01)\\x03\\x07\\x01\\x1b\\x03\\x07\\x01\\x08\\x03\\x07\\x03?\\x03\\x0445\\x03\\x04\" +\n\t\"4\\x08\\x03\\x0454\\x03\\x04)/\\x03\\x04)5\\x03\\x04+\\x05\\x03\\x04+\\x14\\x03\\x04+ \" +\n\t\"\\x03\\x04+<\\x03\\x04*&\\x03\\x04*\\x22\\x03\\x04&8\\x03\\x04!\\x01\\x03\\x04!\\x22\" +\n\t\"\\x03\\x04\\x11+\\x03\\x04\\x10.\\x03\\x04\\x104\\x03\\x04\\x13=\\x03\\x04\\x12\\x04\\x03\" +\n\t\"\\x04\\x12\\x0a\\x03\\x04\\x0d\\x1d\\x03\\x04\\x0d\\x07\\x03\\x04\\x0d \\x03\\x05<>\\x03\" +\n\t\"\\x055<\\x03\\x055!\\x03\\x055#\\x03\\x055&\\x03\\x054\\x1d\\x03\\x054\\x02\\x03\\x054\" +\n\t\"\\x07\\x03\\x0571\\x03\\x053\\x1a\\x03\\x053\\x16\\x03\\x05.<\\x03\\x05.\\x07\\x03\\x05)\" +\n\t\":\\x03\\x05)<\\x03\\x05)\\x0c\\x03\\x05)\\x15\\x03\\x05+-\\x03\\x05+5\\x03\\x05$\\x1e\" +\n\t\"\\x03\\x05$\\x14\\x03\\x05'\\x04\\x03\\x05'\\x14\\x03\\x05&\\x02\\x03\\x05\\x226\\x03\" +\n\t\"\\x05\\x22\\x0c\\x03\\x05\\x22\\x1c\\x03\\x05\\x19\\x0a\\x03\\x05\\x1b\\x09\\x03\\x05\\x1b\" +\n\t\"\\x0c\\x03\\x05\\x14\\x07\\x03\\x05\\x16?\\x03\\x05\\x16\\x0c\\x03\\x05\\x0c\\x05\\x03\" +\n\t\"\\x05\\x0e\\x0f\\x03\\x05\\x01\\x0e\\x03\\x05\\x00(\\x03\\x05\\x030\\x03\\x05\\x03\\x06\" +\n\t\"\\x03\\x0a==\\x03\\x0a=1\\x03\\x0a=,\\x03\\x0a=\\x0c\\x03\\x0a??\\x03\\x0a<\\x08\\x03\" +\n\t\"\\x0a9!\\x03\\x0a9)\\x03\\x0a97\\x03\\x0a99\\x03\\x0a6\\x0a\\x03\\x0a6\\x1c\\x03\\x0a6\" +\n\t\"\\x17\\x03\\x0a7'\\x03\\x0a78\\x03\\x0a73\\x03\\x0a'\\x01\\x03\\x0a'&\\x03\\x0a\\x1f\" +\n\t\"\\x0e\\x03\\x0a\\x1f\\x03\\x03\\x0a\\x1f3\\x03\\x0a\\x1b/\\x03\\x0a\\x18\\x19\\x03\\x0a\" +\n\t\"\\x19\\x01\\x03\\x0a\\x16\\x14\\x03\\x0a\\x0e\\x22\\x03\\x0a\\x0f\\x10\\x03\\x0a\\x0f\\x02\" +\n\t\"\\x03\\x0a\\x0f \\x03\\x0a\\x0c\\x04\\x03\\x0a\\x0b>\\x03\\x0a\\x0b+\\x03\\x0a\\x08/\\x03\" +\n\t\"\\x0a\\x046\\x03\\x0a\\x05\\x14\\x03\\x0a\\x00\\x04\\x03\\x0a\\x00\\x10\\x03\\x0a\\x00\" +\n\t\"\\x14\\x03\\x0b<3\\x03\\x0b;*\\x03\\x0b9\\x22\\x03\\x0b9)\\x03\\x0b97\\x03\\x0b+\\x10\" +\n\t\"\\x03\\x0b((\\x03\\x0b&5\\x03\\x0b$\\x1c\\x03\\x0b$\\x12\\x03\\x0b%\\x04\\x03\\x0b#<\" +\n\t\"\\x03\\x0b#0\\x03\\x0b#\\x0d\\x03\\x0b#\\x19\\x03\\x0b!:\\x03\\x0b!\\x1f\\x03\\x0b!\\x00\" +\n\t\"\\x03\\x0b\\x1e5\\x03\\x0b\\x1c\\x1d\\x03\\x0b\\x1d-\\x03\\x0b\\x1d(\\x03\\x0b\\x18.\\x03\" +\n\t\"\\x0b\\x18 \\x03\\x0b\\x18\\x16\\x03\\x0b\\x14\\x13\\x03\\x0b\\x15$\\x03\\x0b\\x15\\x22\" +\n\t\"\\x03\\x0b\\x12\\x1b\\x03\\x0b\\x12\\x10\\x03\\x0b\\x132\\x03\\x0b\\x13=\\x03\\x0b\\x12\" +\n\t\"\\x18\\x03\\x0b\\x0c&\\x03\\x0b\\x061\\x03\\x0b\\x06:\\x03\\x0b\\x05#\\x03\\x0b\\x05<\" +\n\t\"\\x03\\x0b\\x04\\x0b\\x03\\x0b\\x04\\x04\\x03\\x0b\\x04\\x1b\\x03\\x0b\\x042\\x03\\x0b\" +\n\t\"\\x041\\x03\\x0b\\x03\\x03\\x03\\x0b\\x03\\x1d\\x03\\x0b\\x03/\\x03\\x0b\\x03+\\x03\\x0b\" +\n\t\"\\x02\\x1b\\x03\\x0b\\x02\\x00\\x03\\x0b\\x01\\x1e\\x03\\x0b\\x01\\x08\\x03\\x0b\\x015\" +\n\t\"\\x03\\x06\\x0d9\\x03\\x06\\x0d=\\x03\\x06\\x0d?\\x03\\x02\\x001\\x03\\x02\\x003\\x03\" +\n\t\"\\x02\\x02\\x19\\x03\\x02\\x006\\x03\\x02\\x02\\x1b\\x03\\x02\\x004\\x03\\x02\\x00<\\x03\" +\n\t\"\\x02\\x02\\x0a\\x03\\x02\\x02\\x0e\\x03\\x02\\x01\\x1a\\x03\\x02\\x01\\x07\\x03\\x02\\x01\" +\n\t\"\\x05\\x03\\x02\\x01\\x0b\\x03\\x02\\x01%\\x03\\x02\\x01\\x0c\\x03\\x02\\x01\\x04\\x03\" +\n\t\"\\x02\\x01\\x1c\\x03\\x02\\x00.\\x03\\x02\\x002\\x03\\x02\\x00>\\x03\\x02\\x00\\x12\\x03\" +\n\t\"\\x02\\x00\\x16\\x03\\x02\\x011\\x03\\x02\\x013\\x03\\x02\\x02 \\x03\\x02\\x02%\\x03\\x02\" +\n\t\"\\x02$\\x03\\x02\\x028\\x03\\x02\\x02;\\x03\\x02\\x024\\x03\\x02\\x012\\x03\\x02\\x022\" +\n\t\"\\x03\\x02\\x02/\\x03\\x02\\x01,\\x03\\x02\\x01\\x13\\x03\\x02\\x01\\x16\\x03\\x02\\x01\" +\n\t\"\\x11\\x03\\x02\\x01\\x1e\\x03\\x02\\x01\\x15\\x03\\x02\\x01\\x17\\x03\\x02\\x01\\x0f\\x03\" +\n\t\"\\x02\\x01\\x08\\x03\\x02\\x00?\\x03\\x02\\x03\\x07\\x03\\x02\\x03\\x0d\\x03\\x02\\x03\" +\n\t\"\\x13\\x03\\x02\\x03\\x1d\\x03\\x02\\x03\\x1f\\x03\\x02\\x00\\x03\\x03\\x02\\x00\\x0d\\x03\" +\n\t\"\\x02\\x00\\x01\\x03\\x02\\x00\\x1b\\x03\\x02\\x00\\x19\\x03\\x02\\x00\\x18\\x03\\x02\\x00\" +\n\t\"\\x13\\x03\\x02\\x00/\\x03\\x07>\\x12\\x03\\x07<\\x1f\\x03\\x07>\\x1d\\x03\\x06\\x1d\\x0e\" +\n\t\"\\x03\\x07>\\x1c\\x03\\x07>:\\x03\\x07>\\x13\\x03\\x04\\x12+\\x03\\x07?\\x03\\x03\\x07>\" +\n\t\"\\x02\\x03\\x06\\x224\\x03\\x06\\x1a.\\x03\\x07<%\\x03\\x06\\x1c\\x0b\\x03\\x0609\\x03\" +\n\t\"\\x05\\x1f\\x01\\x03\\x04'\\x08\\x03\\x93\\xfd\\xf5\\x03\\x02\\x0d \\x03\\x02\\x0d#\\x03\" +\n\t\"\\x02\\x0d!\\x03\\x02\\x0d&\\x03\\x02\\x0d\\x22\\x03\\x02\\x0d/\\x03\\x02\\x0d,\\x03\\x02\" +\n\t\"\\x0d$\\x03\\x02\\x0d'\\x03\\x02\\x0d%\\x03\\x02\\x0d;\\x03\\x02\\x0d=\\x03\\x02\\x0d?\" +\n\t\"\\x03\\x099.\\x03\\x08\\x0b7\\x03\\x08\\x02\\x14\\x03\\x08\\x14\\x0d\\x03\\x08.:\\x03\" +\n\t\"\\x089'\\x03\\x0f\\x0b\\x18\\x03\\x0f\\x1c1\\x03\\x0f\\x17&\\x03\\x0f9\\x1f\\x03\\x0f0\" +\n\t\"\\x0c\\x03\\x0e\\x0a9\\x03\\x0e\\x056\\x03\\x0e\\x1c#\\x03\\x0f\\x13\\x0e\\x03\\x072\\x00\" +\n\t\"\\x03\\x070\\x0d\\x03\\x072\\x0b\\x03\\x06\\x11\\x18\\x03\\x070\\x10\\x03\\x06\\x0f(\\x03\" +\n\t\"\\x072\\x05\\x03\\x06\\x0f,\\x03\\x073\\x15\\x03\\x06\\x07\\x08\\x03\\x05\\x16\\x02\\x03\" +\n\t\"\\x04\\x0b \\x03\\x05:8\\x03\\x05\\x16%\\x03\\x0a\\x0d\\x1f\\x03\\x06\\x16\\x10\\x03\\x05\" +\n\t\"\\x1d5\\x03\\x05*;\\x03\\x05\\x16\\x1b\\x03\\x04.-\\x03\\x06\\x1a\\x19\\x03\\x04\\x03,\" +\n\t\"\\x03\\x0b87\\x03\\x04/\\x0a\\x03\\x06\\x00,\\x03\\x04-\\x01\\x03\\x04\\x1e-\\x03\\x06/(\" +\n\t\"\\x03\\x0a\\x0b5\\x03\\x06\\x0e7\\x03\\x06\\x07.\\x03\\x0597\\x03\\x0a*%\\x03\\x0760\" +\n\t\"\\x03\\x06\\x0c;\\x03\\x05'\\x00\\x03\\x072.\\x03\\x072\\x08\\x03\\x06=\\x01\\x03\\x06\" +\n\t\"\\x05\\x1b\\x03\\x06\\x06\\x12\\x03\\x06$=\\x03\\x06'\\x0d\\x03\\x04\\x11\\x0f\\x03\\x076\" +\n\t\",\\x03\\x06\\x07;\\x03\\x06.,\\x03\\x86\\xf9\\xea\\x03\\x8f\\xff\\xeb\\x02\\x092\\x02\" +\n\t\"\\x095\\x02\\x094\\x02\\x09;\\x02\\x09>\\x02\\x098\\x02\\x09*\\x02\\x09/\\x02\\x09,\\x02\" +\n\t\"\\x09%\\x02\\x09&\\x02\\x09#\\x02\\x09 \\x02\\x08!\\x02\\x08%\\x02\\x08$\\x02\\x08+\\x02\" +\n\t\"\\x08.\\x02\\x08*\\x02\\x08&\\x02\\x088\\x02\\x08>\\x02\\x084\\x02\\x086\\x02\\x080\\x02\" +\n\t\"\\x08\\x10\\x02\\x08\\x17\\x02\\x08\\x12\\x02\\x08\\x1d\\x02\\x08\\x1f\\x02\\x08\\x13\\x02\" +\n\t\"\\x08\\x15\\x02\\x08\\x14\\x02\\x08\\x0c\\x03\\x8b\\xfd\\xd0\\x03\\x81\\xec\\xc6\\x03\\x87\" +\n\t\"\\xe0\\x8a\\x03-2\\xe3\\x03\\x80\\xef\\xe4\\x03-2\\xea\\x03\\x88\\xe6\\xeb\\x03\\x8e\\xe6\" +\n\t\"\\xe8\\x03\\x84\\xe6\\xe9\\x03\\x97\\xe6\\xee\\x03-2\\xf9\\x03-2\\xf6\\x03\\x8e\\xe3\\xad\" +\n\t\"\\x03\\x80\\xe3\\x92\\x03\\x88\\xe3\\x90\\x03\\x8e\\xe3\\x90\\x03\\x80\\xe3\\x97\\x03\\x88\" +\n\t\"\\xe3\\x95\\x03\\x88\\xfe\\xcb\\x03\\x8e\\xfe\\xca\\x03\\x84\\xfe\\xcd\\x03\\x91\\xef\\xc9\" +\n\t\"\\x03-2\\xc1\\x03-2\\xc0\\x03-2\\xcb\\x03\\x88@\\x09\\x03\\x8e@\\x08\\x03\\x8f\\xe0\\xf5\" +\n\t\"\\x03\\x8e\\xe6\\xf9\\x03\\x8e\\xe0\\xfa\\x03\\x93\\xff\\xf4\\x03\\x84\\xee\\xd3\\x03\\x0b\" +\n\t\"(\\x04\\x023 \\x021;\\x02\\x01*\\x03\\x0b#\\x10\\x03\\x0b 0\\x03\\x0b!\\x10\\x03\\x0b!0\" +\n\t\"\\x03\\x07\\x15\\x08\\x03\\x09?5\\x03\\x07\\x1f\\x08\\x03\\x07\\x17\\x0b\\x03\\x09\\x1f\" +\n\t\"\\x15\\x03\\x0b\\x1c7\\x03\\x0a+#\\x03\\x06\\x1a\\x1b\\x03\\x06\\x1a\\x14\\x03\\x0a\\x01\" +\n\t\"\\x18\\x03\\x06#\\x1b\\x03\\x0a2\\x0c\\x03\\x0a\\x01\\x04\\x03\\x09#;\\x03\\x08='\\x03\" +\n\t\"\\x08\\x1a\\x0a\\x03\\x07</\\x03\\x07:+\\x03\\x07\\x07*\\x03\\x06&\\x1c\\x03\\x09\\x0c\" +\n\t\"\\x16\\x03\\x09\\x10\\x0e\\x03\\x08'\\x0f\\x03\\x08+\\x09\\x03\\x074%\\x03\\x06!3\\x03\" +\n\t\"\\x06\\x03+\\x03\\x0b\\x1e\\x19\\x03\\x0a))\\x03\\x09\\x08\\x19\\x03\\x08,\\x05\\x03\\x07\" +\n\t\"<2\\x03\\x06\\x1c>\\x03\\x0a\\x111\\x03\\x09\\x1b\\x09\\x03\\x073.\\x03\\x07\\x01\\x00\" +\n\t\"\\x03\\x09/,\\x03\\x07#>\\x03\\x07\\x048\\x03\\x0a\\x1f\\x22\\x03\\x098>\\x03\\x09\\x11\" +\n\t\"\\x00\\x03\\x08/\\x17\\x03\\x06'\\x22\\x03\\x0b\\x1a+\\x03\\x0a\\x22\\x19\\x03\\x0a/1\" +\n\t\"\\x03\\x0974\\x03\\x09\\x0f\\x22\\x03\\x08,\\x22\\x03\\x08?\\x14\\x03\\x07$5\\x03\\x07<3\" +\n\t\"\\x03\\x07=*\\x03\\x07\\x13\\x18\\x03\\x068\\x0a\\x03\\x06\\x09\\x16\\x03\\x06\\x13\\x00\" +\n\t\"\\x03\\x08\\x067\\x03\\x08\\x01\\x03\\x03\\x08\\x12\\x1d\\x03\\x07+7\\x03\\x06(;\\x03\" +\n\t\"\\x06\\x1c?\\x03\\x07\\x0e\\x17\\x03\\x0a\\x06\\x1d\\x03\\x0a\\x19\\x07\\x03\\x08\\x14$\" +\n\t\"\\x03\\x07$;\\x03\\x08,$\\x03\\x08\\x06\\x0d\\x03\\x07\\x16\\x0a\\x03\\x06>>\\x03\\x0a\" +\n\t\"\\x06\\x12\\x03\\x0a\\x14)\\x03\\x09\\x0d\\x1f\\x03\\x09\\x12\\x17\\x03\\x09\\x19\\x01\" +\n\t\"\\x03\\x08\\x11 \\x03\\x08\\x1d'\\x03\\x06<\\x1a\\x03\\x0a.\\x00\\x03\\x07'\\x18\\x03\" +\n\t\"\\x0a\\x22\\x08\\x03\\x08\\x0d\\x0a\\x03\\x08\\x13)\\x03\\x07*)\\x03\\x06<,\\x03\\x07\" +\n\t\"\\x0b\\x1a\\x03\\x09.\\x14\\x03\\x09\\x0d\\x1e\\x03\\x07\\x0e#\\x03\\x0b\\x1d'\\x03\\x0a\" +\n\t\"\\x0a8\\x03\\x09%2\\x03\\x08+&\\x03\\x080\\x12\\x03\\x0a)4\\x03\\x08\\x06\\x1f\\x03\\x0b\" +\n\t\"\\x1b\\x1a\\x03\\x0a\\x1b\\x0f\\x03\\x0b\\x1d*\\x03\\x09\\x16$\\x03\\x090\\x11\\x03\\x08\" +\n\t\"\\x11\\x08\\x03\\x0a*(\\x03\\x0a\\x042\\x03\\x089,\\x03\\x074'\\x03\\x07\\x0f\\x05\\x03\" +\n\t\"\\x09\\x0b\\x0a\\x03\\x07\\x1b\\x01\\x03\\x09\\x17:\\x03\\x09.\\x0d\\x03\\x07.\\x11\\x03\" +\n\t\"\\x09+\\x15\\x03\\x080\\x13\\x03\\x0b\\x1f\\x19\\x03\\x0a \\x11\\x03\\x0a\\x220\\x03\\x09\" +\n\t\"\\x07;\\x03\\x08\\x16\\x1c\\x03\\x07,\\x13\\x03\\x07\\x0e/\\x03\\x06\\x221\\x03\\x0a.\" +\n\t\"\\x0a\\x03\\x0a7\\x02\\x03\\x0a\\x032\\x03\\x0a\\x1d.\\x03\\x091\\x06\\x03\\x09\\x19:\" +\n\t\"\\x03\\x08\\x02/\\x03\\x060+\\x03\\x06\\x0f-\\x03\\x06\\x1c\\x1f\\x03\\x06\\x1d\\x07\\x03\" +\n\t\"\\x0a,\\x11\\x03\\x09=\\x0d\\x03\\x09\\x0b;\\x03\\x07\\x1b/\\x03\\x0a\\x1f:\\x03\\x09 \" +\n\t\"\\x1f\\x03\\x09.\\x10\\x03\\x094\\x0b\\x03\\x09\\x1a1\\x03\\x08#\\x1a\\x03\\x084\\x1d\" +\n\t\"\\x03\\x08\\x01\\x1f\\x03\\x08\\x11\\x22\\x03\\x07'8\\x03\\x07\\x1a>\\x03\\x0757\\x03\" +\n\t\"\\x06&9\\x03\\x06+\\x11\\x03\\x0a.\\x0b\\x03\\x0a,>\\x03\\x0a4#\\x03\\x08%\\x17\\x03\" +\n\t\"\\x07\\x05\\x22\\x03\\x07\\x0c\\x0b\\x03\\x0a\\x1d+\\x03\\x0a\\x19\\x16\\x03\\x09+\\x1f\" +\n\t\"\\x03\\x09\\x08\\x0b\\x03\\x08\\x16\\x18\\x03\\x08+\\x12\\x03\\x0b\\x1d\\x0c\\x03\\x0a=\" +\n\t\"\\x10\\x03\\x0a\\x09\\x0d\\x03\\x0a\\x10\\x11\\x03\\x09&0\\x03\\x08(\\x1f\\x03\\x087\\x07\" +\n\t\"\\x03\\x08\\x185\\x03\\x07'6\\x03\\x06.\\x05\\x03\\x06=\\x04\\x03\\x06;;\\x03\\x06\\x06,\" +\n\t\"\\x03\\x0b\\x18>\\x03\\x08\\x00\\x18\\x03\\x06 \\x03\\x03\\x06<\\x00\\x03\\x09%\\x18\\x03\" +\n\t\"\\x0b\\x1c<\\x03\\x0a%!\\x03\\x0a\\x09\\x12\\x03\\x0a\\x16\\x02\\x03\\x090'\\x03\\x09\" +\n\t\"\\x0e=\\x03\\x08 \\x0e\\x03\\x08>\\x03\\x03\\x074>\\x03\\x06&?\\x03\\x06\\x19\\x09\\x03\" +\n\t\"\\x06?(\\x03\\x0a-\\x0e\\x03\\x09:3\\x03\\x098:\\x03\\x09\\x12\\x0b\\x03\\x09\\x1d\\x17\" +\n\t\"\\x03\\x087\\x05\\x03\\x082\\x14\\x03\\x08\\x06%\\x03\\x08\\x13\\x1f\\x03\\x06\\x06\\x0e\" +\n\t\"\\x03\\x0a\\x22<\\x03\\x09/<\\x03\\x06>+\\x03\\x0a'?\\x03\\x0a\\x13\\x0c\\x03\\x09\\x10<\" +\n\t\"\\x03\\x07\\x1b=\\x03\\x0a\\x19\\x13\\x03\\x09\\x22\\x1d\\x03\\x09\\x07\\x0d\\x03\\x08)\" +\n\t\"\\x1c\\x03\\x06=\\x1a\\x03\\x0a/4\\x03\\x0a7\\x11\\x03\\x0a\\x16:\\x03\\x09?3\\x03\\x09:\" +\n\t\"/\\x03\\x09\\x05\\x0a\\x03\\x09\\x14\\x06\\x03\\x087\\x22\\x03\\x080\\x07\\x03\\x08\\x1a\" +\n\t\"\\x1f\\x03\\x07\\x04(\\x03\\x07\\x04\\x09\\x03\\x06 %\\x03\\x06<\\x08\\x03\\x0a+\\x14\" +\n\t\"\\x03\\x09\\x1d\\x16\\x03\\x0a70\\x03\\x08 >\\x03\\x0857\\x03\\x070\\x0a\\x03\\x06=\\x12\" +\n\t\"\\x03\\x06\\x16%\\x03\\x06\\x1d,\\x03\\x099#\\x03\\x09\\x10>\\x03\\x07 \\x1e\\x03\\x08\" +\n\t\"\\x0c<\\x03\\x08\\x0b\\x18\\x03\\x08\\x15+\\x03\\x08,:\\x03\\x08%\\x22\\x03\\x07\\x0a$\" +\n\t\"\\x03\\x0b\\x1c=\\x03\\x07+\\x08\\x03\\x0a/\\x05\\x03\\x0a \\x07\\x03\\x0a\\x12'\\x03\" +\n\t\"\\x09#\\x11\\x03\\x08\\x1b\\x15\\x03\\x0a\\x06\\x01\\x03\\x09\\x1c\\x1b\\x03\\x0922\\x03\" +\n\t\"\\x07\\x14<\\x03\\x07\\x09\\x04\\x03\\x061\\x04\\x03\\x07\\x0e\\x01\\x03\\x0a\\x13\\x18\" +\n\t\"\\x03\\x0a-\\x0c\\x03\\x0a?\\x0d\\x03\\x0a\\x09\\x0a\\x03\\x091&\\x03\\x0a/\\x0b\\x03\" +\n\t\"\\x08$<\\x03\\x083\\x1d\\x03\\x08\\x0c$\\x03\\x08\\x0d\\x07\\x03\\x08\\x0d?\\x03\\x08\" +\n\t\"\\x0e\\x14\\x03\\x065\\x0a\\x03\\x08\\x1a#\\x03\\x08\\x16#\\x03\\x0702\\x03\\x07\\x03\" +\n\t\"\\x1a\\x03\\x06(\\x1d\\x03\\x06+\\x1b\\x03\\x06\\x0b\\x05\\x03\\x06\\x0b\\x17\\x03\\x06\" +\n\t\"\\x0c\\x04\\x03\\x06\\x1e\\x19\\x03\\x06+0\\x03\\x062\\x18\\x03\\x0b\\x16\\x1e\\x03\\x0a+\" +\n\t\"\\x16\\x03\\x0a-?\\x03\\x0a#:\\x03\\x0a#\\x10\\x03\\x0a%$\\x03\\x0a>+\\x03\\x0a01\\x03\" +\n\t\"\\x0a1\\x10\\x03\\x0a\\x099\\x03\\x0a\\x0a\\x12\\x03\\x0a\\x19\\x1f\\x03\\x0a\\x19\\x12\" +\n\t\"\\x03\\x09*)\\x03\\x09-\\x16\\x03\\x09.1\\x03\\x09.2\\x03\\x09<\\x0e\\x03\\x09> \\x03\" +\n\t\"\\x093\\x12\\x03\\x09\\x0b\\x01\\x03\\x09\\x1c2\\x03\\x09\\x11\\x1c\\x03\\x09\\x15%\\x03\" +\n\t\"\\x08,&\\x03\\x08!\\x22\\x03\\x089(\\x03\\x08\\x0b\\x1a\\x03\\x08\\x0d2\\x03\\x08\\x0c\" +\n\t\"\\x04\\x03\\x08\\x0c\\x06\\x03\\x08\\x0c\\x1f\\x03\\x08\\x0c\\x0c\\x03\\x08\\x0f\\x1f\\x03\" +\n\t\"\\x08\\x0f\\x1d\\x03\\x08\\x00\\x14\\x03\\x08\\x03\\x14\\x03\\x08\\x06\\x16\\x03\\x08\\x1e\" +\n\t\"#\\x03\\x08\\x11\\x11\\x03\\x08\\x10\\x18\\x03\\x08\\x14(\\x03\\x07)\\x1e\\x03\\x07.1\" +\n\t\"\\x03\\x07 $\\x03\\x07 '\\x03\\x078\\x08\\x03\\x07\\x0d0\\x03\\x07\\x0f7\\x03\\x07\\x05#\" +\n\t\"\\x03\\x07\\x05\\x1a\\x03\\x07\\x1a7\\x03\\x07\\x1d-\\x03\\x07\\x17\\x10\\x03\\x06)\\x1f\" +\n\t\"\\x03\\x062\\x0b\\x03\\x066\\x16\\x03\\x06\\x09\\x11\\x03\\x09(\\x1e\\x03\\x07!5\\x03\" +\n\t\"\\x0b\\x11\\x16\\x03\\x0a/\\x04\\x03\\x0a,\\x1a\\x03\\x0b\\x173\\x03\\x0a,1\\x03\\x0a/5\" +\n\t\"\\x03\\x0a\\x221\\x03\\x0a\\x22\\x0d\\x03\\x0a?%\\x03\\x0a<,\\x03\\x0a?#\\x03\\x0a>\\x19\" +\n\t\"\\x03\\x0a\\x08&\\x03\\x0a\\x0b\\x0e\\x03\\x0a\\x0c:\\x03\\x0a\\x0c+\\x03\\x0a\\x03\\x22\" +\n\t\"\\x03\\x0a\\x06)\\x03\\x0a\\x11\\x10\\x03\\x0a\\x11\\x1a\\x03\\x0a\\x17-\\x03\\x0a\\x14(\" +\n\t\"\\x03\\x09)\\x1e\\x03\\x09/\\x09\\x03\\x09.\\x00\\x03\\x09,\\x07\\x03\\x09/*\\x03\\x09-9\" +\n\t\"\\x03\\x09\\x228\\x03\\x09%\\x09\\x03\\x09:\\x12\\x03\\x09;\\x1d\\x03\\x09?\\x06\\x03\" +\n\t\"\\x093%\\x03\\x096\\x05\\x03\\x096\\x08\\x03\\x097\\x02\\x03\\x09\\x07,\\x03\\x09\\x04,\" +\n\t\"\\x03\\x09\\x1f\\x16\\x03\\x09\\x11\\x03\\x03\\x09\\x11\\x12\\x03\\x09\\x168\\x03\\x08*\" +\n\t\"\\x05\\x03\\x08/2\\x03\\x084:\\x03\\x08\\x22+\\x03\\x08 0\\x03\\x08&\\x0a\\x03\\x08;\" +\n\t\"\\x10\\x03\\x08>$\\x03\\x08>\\x18\\x03\\x0829\\x03\\x082:\\x03\\x081,\\x03\\x081<\\x03\" +\n\t\"\\x081\\x1c\\x03\\x087#\\x03\\x087*\\x03\\x08\\x09'\\x03\\x08\\x00\\x1d\\x03\\x08\\x05-\" +\n\t\"\\x03\\x08\\x1f4\\x03\\x08\\x1d\\x04\\x03\\x08\\x16\\x0f\\x03\\x07*7\\x03\\x07'!\\x03\" +\n\t\"\\x07%\\x1b\\x03\\x077\\x0c\\x03\\x07\\x0c1\\x03\\x07\\x0c.\\x03\\x07\\x00\\x06\\x03\\x07\" +\n\t\"\\x01\\x02\\x03\\x07\\x010\\x03\\x07\\x06=\\x03\\x07\\x01\\x03\\x03\\x07\\x01\\x13\\x03\" +\n\t\"\\x07\\x06\\x06\\x03\\x07\\x05\\x0a\\x03\\x07\\x1f\\x09\\x03\\x07\\x17:\\x03\\x06*1\\x03\" +\n\t\"\\x06-\\x1d\\x03\\x06\\x223\\x03\\x062:\\x03\\x060$\\x03\\x066\\x1e\\x03\\x064\\x12\\x03\" +\n\t\"\\x0645\\x03\\x06\\x0b\\x00\\x03\\x06\\x0b7\\x03\\x06\\x07\\x1f\\x03\\x06\\x15\\x12\\x03\" +\n\t\"\\x0c\\x05\\x0f\\x03\\x0b+\\x0b\\x03\\x0b+-\\x03\\x06\\x16\\x1b\\x03\\x06\\x15\\x17\\x03\" +\n\t\"\\x89\\xca\\xea\\x03\\x89\\xca\\xe8\\x03\\x0c8\\x10\\x03\\x0c8\\x01\\x03\\x0c8\\x0f\\x03\" +\n\t\"\\x0d8%\\x03\\x0d8!\\x03\\x0c8-\\x03\\x0c8/\\x03\\x0c8+\\x03\\x0c87\\x03\\x0c85\\x03\" +\n\t\"\\x0c9\\x09\\x03\\x0c9\\x0d\\x03\\x0c9\\x0f\\x03\\x0c9\\x0b\\x03\\xcfu\\x0c\\x03\\xcfu\" +\n\t\"\\x0f\\x03\\xcfu\\x0e\\x03\\xcfu\\x09\\x03\\x0c9\\x10\\x03\\x0d9\\x0c\\x03\\xcf`;\\x03\" +\n\t\"\\xcf`>\\x03\\xcf`9\\x03\\xcf`8\\x03\\xcf`7\\x03\\xcf`*\\x03\\xcf`-\\x03\\xcf`,\\x03\" +\n\t\"\\x0d\\x1b\\x1a\\x03\\x0d\\x1b&\\x03\\x0c=.\\x03\\x0c=%\\x03\\x0c>\\x1e\\x03\\x0c>\\x14\" +\n\t\"\\x03\\x0c?\\x06\\x03\\x0c?\\x0b\\x03\\x0c?\\x0c\\x03\\x0c?\\x0d\\x03\\x0c?\\x02\\x03\" +\n\t\"\\x0c>\\x0f\\x03\\x0c>\\x08\\x03\\x0c>\\x09\\x03\\x0c>,\\x03\\x0c>\\x0c\\x03\\x0c?\\x13\" +\n\t\"\\x03\\x0c?\\x16\\x03\\x0c?\\x15\\x03\\x0c?\\x1c\\x03\\x0c?\\x1f\\x03\\x0c?\\x1d\\x03\" +\n\t\"\\x0c?\\x1a\\x03\\x0c?\\x17\\x03\\x0c?\\x08\\x03\\x0c?\\x09\\x03\\x0c?\\x0e\\x03\\x0c?\" +\n\t\"\\x04\\x03\\x0c?\\x05\\x03\\x0c<?\\x03\\x0c=\\x00\\x03\\x0c=\\x06\\x03\\x0c=\\x05\\x03\" +\n\t\"\\x0c=\\x0c\\x03\\x0c=\\x0f\\x03\\x0c=\\x0d\\x03\\x0c=\\x0b\\x03\\x0c=\\x07\\x03\\x0c=\" +\n\t\"\\x19\\x03\\x0c=\\x15\\x03\\x0c=\\x11\\x03\\x0c=1\\x03\\x0c=3\\x03\\x0c=0\\x03\\x0c=>\" +\n\t\"\\x03\\x0c=2\\x03\\x0c=6\\x03\\x0c<\\x07\\x03\\x0c<\\x05\\x03\\x0e:!\\x03\\x0e:#\\x03\" +\n\t\"\\x0e8\\x09\\x03\\x0e:&\\x03\\x0e8\\x0b\\x03\\x0e:$\\x03\\x0e:,\\x03\\x0e8\\x1a\\x03\" +\n\t\"\\x0e8\\x1e\\x03\\x0e:*\\x03\\x0e:7\\x03\\x0e:5\\x03\\x0e:;\\x03\\x0e:\\x15\\x03\\x0e:<\" +\n\t\"\\x03\\x0e:4\\x03\\x0e:'\\x03\\x0e:-\\x03\\x0e:%\\x03\\x0e:?\\x03\\x0e:=\\x03\\x0e:)\" +\n\t\"\\x03\\x0e:/\\x03\\xcfs'\\x03\\x0d=\\x0f\\x03\\x0d+*\\x03\\x0d99\\x03\\x0d9;\\x03\\x0d9\" +\n\t\"?\\x03\\x0d)\\x0d\\x03\\x0d(%\\x02\\x01\\x18\\x02\\x01(\\x02\\x01\\x1e\\x03\\x0f$!\\x03\" +\n\t\"\\x0f87\\x03\\x0f4\\x0e\\x03\\x0f5\\x1d\\x03\\x06'\\x03\\x03\\x0f\\x08\\x18\\x03\\x0f\" +\n\t\"\\x0d\\x1b\\x03\\x0e2=\\x03\\x0e;\\x08\\x03\\x0e:\\x0b\\x03\\x0e\\x06$\\x03\\x0e\\x0d)\" +\n\t\"\\x03\\x0e\\x16\\x1f\\x03\\x0e\\x16\\x1b\\x03\\x0d$\\x0a\\x03\\x05,\\x1d\\x03\\x0d. \\x03\" +\n\t\"\\x0d.#\\x03\\x0c(/\\x03\\x09%\\x02\\x03\\x0d90\\x03\\x0d\\x0e4\\x03\\x0d\\x0d\\x0f\\x03\" +\n\t\"\\x0c#\\x00\\x03\\x0c,\\x1e\\x03\\x0c2\\x0e\\x03\\x0c\\x01\\x17\\x03\\x0c\\x09:\\x03\\x0e\" +\n\t\"\\x173\\x03\\x0c\\x08\\x03\\x03\\x0c\\x11\\x07\\x03\\x0c\\x10\\x18\\x03\\x0c\\x1f\\x1c\" +\n\t\"\\x03\\x0c\\x19\\x0e\\x03\\x0c\\x1a\\x1f\\x03\\x0f0>\\x03\\x0b->\\x03\\x0b<+\\x03\\x0b8\" +\n\t\"\\x13\\x03\\x0b\\x043\\x03\\x0b\\x14\\x03\\x03\\x0b\\x16%\\x03\\x0d\\x22&\\x03\\x0b\\x1a\" +\n\t\"\\x1a\\x03\\x0b\\x1a\\x04\\x03\\x0a%9\\x03\\x0a&2\\x03\\x0a&0\\x03\\x0a!\\x1a\\x03\\x0a!\" +\n\t\"7\\x03\\x0a5\\x10\\x03\\x0a=4\\x03\\x0a?\\x0e\\x03\\x0a>\\x10\\x03\\x0a\\x00 \\x03\\x0a\" +\n\t\"\\x0f:\\x03\\x0a\\x0f9\\x03\\x0a\\x0b\\x0a\\x03\\x0a\\x17%\\x03\\x0a\\x1b-\\x03\\x09-\" +\n\t\"\\x1a\\x03\\x09,4\\x03\\x09.,\\x03\\x09)\\x09\\x03\\x096!\\x03\\x091\\x1f\\x03\\x093\" +\n\t\"\\x16\\x03\\x0c+\\x1f\\x03\\x098 \\x03\\x098=\\x03\\x0c(\\x1a\\x03\\x0c(\\x16\\x03\\x09\" +\n\t\"\\x0a+\\x03\\x09\\x16\\x12\\x03\\x09\\x13\\x0e\\x03\\x09\\x153\\x03\\x08)!\\x03\\x09\\x1a\" +\n\t\"\\x01\\x03\\x09\\x18\\x01\\x03\\x08%#\\x03\\x08>\\x22\\x03\\x08\\x05%\\x03\\x08\\x02*\" +\n\t\"\\x03\\x08\\x15;\\x03\\x08\\x1b7\\x03\\x0f\\x07\\x1d\\x03\\x0f\\x04\\x03\\x03\\x070\\x0c\" +\n\t\"\\x03\\x07;\\x0b\\x03\\x07\\x08\\x17\\x03\\x07\\x12\\x06\\x03\\x06/-\\x03\\x0671\\x03\" +\n\t\"\\x065+\\x03\\x06>7\\x03\\x06\\x049\\x03\\x05+\\x1e\\x03\\x05,\\x17\\x03\\x05 \\x1d\\x03\" +\n\t\"\\x05\\x22\\x05\\x03\\x050\\x1d\"\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *idnaTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn idnaValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = idnaIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *idnaTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn idnaValues[c0]\n\t}\n\ti := idnaIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *idnaTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn idnaValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = idnaIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *idnaTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn idnaValues[c0]\n\t}\n\ti := idnaIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// idnaTrie. Total size: 29052 bytes (28.37 KiB). Checksum: ef06e7ecc26f36dd.\ntype idnaTrie struct{}\n\nfunc newIdnaTrie(i int) *idnaTrie {\n\treturn &idnaTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *idnaTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 125:\n\t\treturn uint16(idnaValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 125\n\t\treturn uint16(idnaSparse.lookup(n, b))\n\t}\n}\n\n// idnaValues: 127 blocks, 8128 entries, 16256 bytes\n// The third block is the zero block.\nvar idnaValues = [8128]uint16{\n\t// Block 0x0, offset 0x0\n\t0x00: 0x0080, 0x01: 0x0080, 0x02: 0x0080, 0x03: 0x0080, 0x04: 0x0080, 0x05: 0x0080,\n\t0x06: 0x0080, 0x07: 0x0080, 0x08: 0x0080, 0x09: 0x0080, 0x0a: 0x0080, 0x0b: 0x0080,\n\t0x0c: 0x0080, 0x0d: 0x0080, 0x0e: 0x0080, 0x0f: 0x0080, 0x10: 0x0080, 0x11: 0x0080,\n\t0x12: 0x0080, 0x13: 0x0080, 0x14: 0x0080, 0x15: 0x0080, 0x16: 0x0080, 0x17: 0x0080,\n\t0x18: 0x0080, 0x19: 0x0080, 0x1a: 0x0080, 0x1b: 0x0080, 0x1c: 0x0080, 0x1d: 0x0080,\n\t0x1e: 0x0080, 0x1f: 0x0080, 0x20: 0x0080, 0x21: 0x0080, 0x22: 0x0080, 0x23: 0x0080,\n\t0x24: 0x0080, 0x25: 0x0080, 0x26: 0x0080, 0x27: 0x0080, 0x28: 0x0080, 0x29: 0x0080,\n\t0x2a: 0x0080, 0x2b: 0x0080, 0x2c: 0x0080, 0x2d: 0x0008, 0x2e: 0x0008, 0x2f: 0x0080,\n\t0x30: 0x0008, 0x31: 0x0008, 0x32: 0x0008, 0x33: 0x0008, 0x34: 0x0008, 0x35: 0x0008,\n\t0x36: 0x0008, 0x37: 0x0008, 0x38: 0x0008, 0x39: 0x0008, 0x3a: 0x0080, 0x3b: 0x0080,\n\t0x3c: 0x0080, 0x3d: 0x0080, 0x3e: 0x0080, 0x3f: 0x0080,\n\t// Block 0x1, offset 0x40\n\t0x40: 0x0080, 0x41: 0xe105, 0x42: 0xe105, 0x43: 0xe105, 0x44: 0xe105, 0x45: 0xe105,\n\t0x46: 0xe105, 0x47: 0xe105, 0x48: 0xe105, 0x49: 0xe105, 0x4a: 0xe105, 0x4b: 0xe105,\n\t0x4c: 0xe105, 0x4d: 0xe105, 0x4e: 0xe105, 0x4f: 0xe105, 0x50: 0xe105, 0x51: 0xe105,\n\t0x52: 0xe105, 0x53: 0xe105, 0x54: 0xe105, 0x55: 0xe105, 0x56: 0xe105, 0x57: 0xe105,\n\t0x58: 0xe105, 0x59: 0xe105, 0x5a: 0xe105, 0x5b: 0x0080, 0x5c: 0x0080, 0x5d: 0x0080,\n\t0x5e: 0x0080, 0x5f: 0x0080, 0x60: 0x0080, 0x61: 0x0008, 0x62: 0x0008, 0x63: 0x0008,\n\t0x64: 0x0008, 0x65: 0x0008, 0x66: 0x0008, 0x67: 0x0008, 0x68: 0x0008, 0x69: 0x0008,\n\t0x6a: 0x0008, 0x6b: 0x0008, 0x6c: 0x0008, 0x6d: 0x0008, 0x6e: 0x0008, 0x6f: 0x0008,\n\t0x70: 0x0008, 0x71: 0x0008, 0x72: 0x0008, 0x73: 0x0008, 0x74: 0x0008, 0x75: 0x0008,\n\t0x76: 0x0008, 0x77: 0x0008, 0x78: 0x0008, 0x79: 0x0008, 0x7a: 0x0008, 0x7b: 0x0080,\n\t0x7c: 0x0080, 0x7d: 0x0080, 0x7e: 0x0080, 0x7f: 0x0080,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x0040, 0xc1: 0x0040, 0xc2: 0x0040, 0xc3: 0x0040, 0xc4: 0x0040, 0xc5: 0x0040,\n\t0xc6: 0x0040, 0xc7: 0x0040, 0xc8: 0x0040, 0xc9: 0x0040, 0xca: 0x0040, 0xcb: 0x0040,\n\t0xcc: 0x0040, 0xcd: 0x0040, 0xce: 0x0040, 0xcf: 0x0040, 0xd0: 0x0040, 0xd1: 0x0040,\n\t0xd2: 0x0040, 0xd3: 0x0040, 0xd4: 0x0040, 0xd5: 0x0040, 0xd6: 0x0040, 0xd7: 0x0040,\n\t0xd8: 0x0040, 0xd9: 0x0040, 0xda: 0x0040, 0xdb: 0x0040, 0xdc: 0x0040, 0xdd: 0x0040,\n\t0xde: 0x0040, 0xdf: 0x0040, 0xe0: 0x000a, 0xe1: 0x0018, 0xe2: 0x0018, 0xe3: 0x0018,\n\t0xe4: 0x0018, 0xe5: 0x0018, 0xe6: 0x0018, 0xe7: 0x0018, 0xe8: 0x001a, 0xe9: 0x0018,\n\t0xea: 0x0039, 0xeb: 0x0018, 0xec: 0x0018, 0xed: 0x03c0, 0xee: 0x0018, 0xef: 0x004a,\n\t0xf0: 0x0018, 0xf1: 0x0018, 0xf2: 0x0069, 0xf3: 0x0079, 0xf4: 0x008a, 0xf5: 0x0005,\n\t0xf6: 0x0018, 0xf7: 0x0008, 0xf8: 0x00aa, 0xf9: 0x00c9, 0xfa: 0x00d9, 0xfb: 0x0018,\n\t0xfc: 0x00e9, 0xfd: 0x0119, 0xfe: 0x0149, 0xff: 0x0018,\n\t// Block 0x4, offset 0x100\n\t0x100: 0xe00d, 0x101: 0x0008, 0x102: 0xe00d, 0x103: 0x0008, 0x104: 0xe00d, 0x105: 0x0008,\n\t0x106: 0xe00d, 0x107: 0x0008, 0x108: 0xe00d, 0x109: 0x0008, 0x10a: 0xe00d, 0x10b: 0x0008,\n\t0x10c: 0xe00d, 0x10d: 0x0008, 0x10e: 0xe00d, 0x10f: 0x0008, 0x110: 0xe00d, 0x111: 0x0008,\n\t0x112: 0xe00d, 0x113: 0x0008, 0x114: 0xe00d, 0x115: 0x0008, 0x116: 0xe00d, 0x117: 0x0008,\n\t0x118: 0xe00d, 0x119: 0x0008, 0x11a: 0xe00d, 0x11b: 0x0008, 0x11c: 0xe00d, 0x11d: 0x0008,\n\t0x11e: 0xe00d, 0x11f: 0x0008, 0x120: 0xe00d, 0x121: 0x0008, 0x122: 0xe00d, 0x123: 0x0008,\n\t0x124: 0xe00d, 0x125: 0x0008, 0x126: 0xe00d, 0x127: 0x0008, 0x128: 0xe00d, 0x129: 0x0008,\n\t0x12a: 0xe00d, 0x12b: 0x0008, 0x12c: 0xe00d, 0x12d: 0x0008, 0x12e: 0xe00d, 0x12f: 0x0008,\n\t0x130: 0x0179, 0x131: 0x0008, 0x132: 0x0035, 0x133: 0x004d, 0x134: 0xe00d, 0x135: 0x0008,\n\t0x136: 0xe00d, 0x137: 0x0008, 0x138: 0x0008, 0x139: 0xe01d, 0x13a: 0x0008, 0x13b: 0xe03d,\n\t0x13c: 0x0008, 0x13d: 0xe01d, 0x13e: 0x0008, 0x13f: 0x0199,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x0199, 0x141: 0xe01d, 0x142: 0x0008, 0x143: 0xe03d, 0x144: 0x0008, 0x145: 0xe01d,\n\t0x146: 0x0008, 0x147: 0xe07d, 0x148: 0x0008, 0x149: 0x01b9, 0x14a: 0xe00d, 0x14b: 0x0008,\n\t0x14c: 0xe00d, 0x14d: 0x0008, 0x14e: 0xe00d, 0x14f: 0x0008, 0x150: 0xe00d, 0x151: 0x0008,\n\t0x152: 0xe00d, 0x153: 0x0008, 0x154: 0xe00d, 0x155: 0x0008, 0x156: 0xe00d, 0x157: 0x0008,\n\t0x158: 0xe00d, 0x159: 0x0008, 0x15a: 0xe00d, 0x15b: 0x0008, 0x15c: 0xe00d, 0x15d: 0x0008,\n\t0x15e: 0xe00d, 0x15f: 0x0008, 0x160: 0xe00d, 0x161: 0x0008, 0x162: 0xe00d, 0x163: 0x0008,\n\t0x164: 0xe00d, 0x165: 0x0008, 0x166: 0xe00d, 0x167: 0x0008, 0x168: 0xe00d, 0x169: 0x0008,\n\t0x16a: 0xe00d, 0x16b: 0x0008, 0x16c: 0xe00d, 0x16d: 0x0008, 0x16e: 0xe00d, 0x16f: 0x0008,\n\t0x170: 0xe00d, 0x171: 0x0008, 0x172: 0xe00d, 0x173: 0x0008, 0x174: 0xe00d, 0x175: 0x0008,\n\t0x176: 0xe00d, 0x177: 0x0008, 0x178: 0x0065, 0x179: 0xe01d, 0x17a: 0x0008, 0x17b: 0xe03d,\n\t0x17c: 0x0008, 0x17d: 0xe01d, 0x17e: 0x0008, 0x17f: 0x01d9,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x0008, 0x181: 0x007d, 0x182: 0xe00d, 0x183: 0x0008, 0x184: 0xe00d, 0x185: 0x0008,\n\t0x186: 0x007d, 0x187: 0xe07d, 0x188: 0x0008, 0x189: 0x0095, 0x18a: 0x00ad, 0x18b: 0xe03d,\n\t0x18c: 0x0008, 0x18d: 0x0008, 0x18e: 0x00c5, 0x18f: 0x00dd, 0x190: 0x00f5, 0x191: 0xe01d,\n\t0x192: 0x0008, 0x193: 0x010d, 0x194: 0x0125, 0x195: 0x0008, 0x196: 0x013d, 0x197: 0x013d,\n\t0x198: 0xe00d, 0x199: 0x0008, 0x19a: 0x0008, 0x19b: 0x0008, 0x19c: 0x010d, 0x19d: 0x0155,\n\t0x19e: 0x0008, 0x19f: 0x016d, 0x1a0: 0xe00d, 0x1a1: 0x0008, 0x1a2: 0xe00d, 0x1a3: 0x0008,\n\t0x1a4: 0xe00d, 0x1a5: 0x0008, 0x1a6: 0x0185, 0x1a7: 0xe07d, 0x1a8: 0x0008, 0x1a9: 0x019d,\n\t0x1aa: 0x0008, 0x1ab: 0x0008, 0x1ac: 0xe00d, 0x1ad: 0x0008, 0x1ae: 0x0185, 0x1af: 0xe0fd,\n\t0x1b0: 0x0008, 0x1b1: 0x01b5, 0x1b2: 0x01cd, 0x1b3: 0xe03d, 0x1b4: 0x0008, 0x1b5: 0xe01d,\n\t0x1b6: 0x0008, 0x1b7: 0x01e5, 0x1b8: 0xe00d, 0x1b9: 0x0008, 0x1ba: 0x0008, 0x1bb: 0x0008,\n\t0x1bc: 0xe00d, 0x1bd: 0x0008, 0x1be: 0x0008, 0x1bf: 0x0008,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x0008, 0x1c1: 0x0008, 0x1c2: 0x0008, 0x1c3: 0x0008, 0x1c4: 0x01e9, 0x1c5: 0x01e9,\n\t0x1c6: 0x01e9, 0x1c7: 0x01fd, 0x1c8: 0x0215, 0x1c9: 0x022d, 0x1ca: 0x0245, 0x1cb: 0x025d,\n\t0x1cc: 0x0275, 0x1cd: 0xe01d, 0x1ce: 0x0008, 0x1cf: 0xe0fd, 0x1d0: 0x0008, 0x1d1: 0xe01d,\n\t0x1d2: 0x0008, 0x1d3: 0xe03d, 0x1d4: 0x0008, 0x1d5: 0xe01d, 0x1d6: 0x0008, 0x1d7: 0xe07d,\n\t0x1d8: 0x0008, 0x1d9: 0xe01d, 0x1da: 0x0008, 0x1db: 0xe03d, 0x1dc: 0x0008, 0x1dd: 0x0008,\n\t0x1de: 0xe00d, 0x1df: 0x0008, 0x1e0: 0xe00d, 0x1e1: 0x0008, 0x1e2: 0xe00d, 0x1e3: 0x0008,\n\t0x1e4: 0xe00d, 0x1e5: 0x0008, 0x1e6: 0xe00d, 0x1e7: 0x0008, 0x1e8: 0xe00d, 0x1e9: 0x0008,\n\t0x1ea: 0xe00d, 0x1eb: 0x0008, 0x1ec: 0xe00d, 0x1ed: 0x0008, 0x1ee: 0xe00d, 0x1ef: 0x0008,\n\t0x1f0: 0x0008, 0x1f1: 0x028d, 0x1f2: 0x02a5, 0x1f3: 0x02bd, 0x1f4: 0xe00d, 0x1f5: 0x0008,\n\t0x1f6: 0x02d5, 0x1f7: 0x02ed, 0x1f8: 0xe00d, 0x1f9: 0x0008, 0x1fa: 0xe00d, 0x1fb: 0x0008,\n\t0x1fc: 0xe00d, 0x1fd: 0x0008, 0x1fe: 0xe00d, 0x1ff: 0x0008,\n\t// Block 0x8, offset 0x200\n\t0x200: 0xe00d, 0x201: 0x0008, 0x202: 0xe00d, 0x203: 0x0008, 0x204: 0xe00d, 0x205: 0x0008,\n\t0x206: 0xe00d, 0x207: 0x0008, 0x208: 0xe00d, 0x209: 0x0008, 0x20a: 0xe00d, 0x20b: 0x0008,\n\t0x20c: 0xe00d, 0x20d: 0x0008, 0x20e: 0xe00d, 0x20f: 0x0008, 0x210: 0xe00d, 0x211: 0x0008,\n\t0x212: 0xe00d, 0x213: 0x0008, 0x214: 0xe00d, 0x215: 0x0008, 0x216: 0xe00d, 0x217: 0x0008,\n\t0x218: 0xe00d, 0x219: 0x0008, 0x21a: 0xe00d, 0x21b: 0x0008, 0x21c: 0xe00d, 0x21d: 0x0008,\n\t0x21e: 0xe00d, 0x21f: 0x0008, 0x220: 0x0305, 0x221: 0x0008, 0x222: 0xe00d, 0x223: 0x0008,\n\t0x224: 0xe00d, 0x225: 0x0008, 0x226: 0xe00d, 0x227: 0x0008, 0x228: 0xe00d, 0x229: 0x0008,\n\t0x22a: 0xe00d, 0x22b: 0x0008, 0x22c: 0xe00d, 0x22d: 0x0008, 0x22e: 0xe00d, 0x22f: 0x0008,\n\t0x230: 0xe00d, 0x231: 0x0008, 0x232: 0xe00d, 0x233: 0x0008, 0x234: 0x0008, 0x235: 0x0008,\n\t0x236: 0x0008, 0x237: 0x0008, 0x238: 0x0008, 0x239: 0x0008, 0x23a: 0x0209, 0x23b: 0xe03d,\n\t0x23c: 0x0008, 0x23d: 0x031d, 0x23e: 0x0229, 0x23f: 0x0008,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x0008, 0x241: 0x0008, 0x242: 0x0018, 0x243: 0x0018, 0x244: 0x0018, 0x245: 0x0018,\n\t0x246: 0x0008, 0x247: 0x0008, 0x248: 0x0008, 0x249: 0x0008, 0x24a: 0x0008, 0x24b: 0x0008,\n\t0x24c: 0x0008, 0x24d: 0x0008, 0x24e: 0x0008, 0x24f: 0x0008, 0x250: 0x0008, 0x251: 0x0008,\n\t0x252: 0x0018, 0x253: 0x0018, 0x254: 0x0018, 0x255: 0x0018, 0x256: 0x0018, 0x257: 0x0018,\n\t0x258: 0x029a, 0x259: 0x02ba, 0x25a: 0x02da, 0x25b: 0x02fa, 0x25c: 0x031a, 0x25d: 0x033a,\n\t0x25e: 0x0018, 0x25f: 0x0018, 0x260: 0x03ad, 0x261: 0x0359, 0x262: 0x01d9, 0x263: 0x0369,\n\t0x264: 0x03c5, 0x265: 0x0018, 0x266: 0x0018, 0x267: 0x0018, 0x268: 0x0018, 0x269: 0x0018,\n\t0x26a: 0x0018, 0x26b: 0x0018, 0x26c: 0x0008, 0x26d: 0x0018, 0x26e: 0x0008, 0x26f: 0x0018,\n\t0x270: 0x0018, 0x271: 0x0018, 0x272: 0x0018, 0x273: 0x0018, 0x274: 0x0018, 0x275: 0x0018,\n\t0x276: 0x0018, 0x277: 0x0018, 0x278: 0x0018, 0x279: 0x0018, 0x27a: 0x0018, 0x27b: 0x0018,\n\t0x27c: 0x0018, 0x27d: 0x0018, 0x27e: 0x0018, 0x27f: 0x0018,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x03dd, 0x281: 0x03dd, 0x282: 0x3308, 0x283: 0x03f5, 0x284: 0x0379, 0x285: 0x040d,\n\t0x286: 0x3308, 0x287: 0x3308, 0x288: 0x3308, 0x289: 0x3308, 0x28a: 0x3308, 0x28b: 0x3308,\n\t0x28c: 0x3308, 0x28d: 0x3308, 0x28e: 0x3308, 0x28f: 0x33c0, 0x290: 0x3308, 0x291: 0x3308,\n\t0x292: 0x3308, 0x293: 0x3308, 0x294: 0x3308, 0x295: 0x3308, 0x296: 0x3308, 0x297: 0x3308,\n\t0x298: 0x3308, 0x299: 0x3308, 0x29a: 0x3308, 0x29b: 0x3308, 0x29c: 0x3308, 0x29d: 0x3308,\n\t0x29e: 0x3308, 0x29f: 0x3308, 0x2a0: 0x3308, 0x2a1: 0x3308, 0x2a2: 0x3308, 0x2a3: 0x3308,\n\t0x2a4: 0x3308, 0x2a5: 0x3308, 0x2a6: 0x3308, 0x2a7: 0x3308, 0x2a8: 0x3308, 0x2a9: 0x3308,\n\t0x2aa: 0x3308, 0x2ab: 0x3308, 0x2ac: 0x3308, 0x2ad: 0x3308, 0x2ae: 0x3308, 0x2af: 0x3308,\n\t0x2b0: 0xe00d, 0x2b1: 0x0008, 0x2b2: 0xe00d, 0x2b3: 0x0008, 0x2b4: 0x0425, 0x2b5: 0x0008,\n\t0x2b6: 0xe00d, 0x2b7: 0x0008, 0x2b8: 0x0040, 0x2b9: 0x0040, 0x2ba: 0x03a2, 0x2bb: 0x0008,\n\t0x2bc: 0x0008, 0x2bd: 0x0008, 0x2be: 0x03c2, 0x2bf: 0x043d,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x0040, 0x2c1: 0x0040, 0x2c2: 0x0040, 0x2c3: 0x0040, 0x2c4: 0x008a, 0x2c5: 0x03d2,\n\t0x2c6: 0xe155, 0x2c7: 0x0455, 0x2c8: 0xe12d, 0x2c9: 0xe13d, 0x2ca: 0xe12d, 0x2cb: 0x0040,\n\t0x2cc: 0x03dd, 0x2cd: 0x0040, 0x2ce: 0x046d, 0x2cf: 0x0485, 0x2d0: 0x0008, 0x2d1: 0xe105,\n\t0x2d2: 0xe105, 0x2d3: 0xe105, 0x2d4: 0xe105, 0x2d5: 0xe105, 0x2d6: 0xe105, 0x2d7: 0xe105,\n\t0x2d8: 0xe105, 0x2d9: 0xe105, 0x2da: 0xe105, 0x2db: 0xe105, 0x2dc: 0xe105, 0x2dd: 0xe105,\n\t0x2de: 0xe105, 0x2df: 0xe105, 0x2e0: 0x049d, 0x2e1: 0x049d, 0x2e2: 0x0040, 0x2e3: 0x049d,\n\t0x2e4: 0x049d, 0x2e5: 0x049d, 0x2e6: 0x049d, 0x2e7: 0x049d, 0x2e8: 0x049d, 0x2e9: 0x049d,\n\t0x2ea: 0x049d, 0x2eb: 0x049d, 0x2ec: 0x0008, 0x2ed: 0x0008, 0x2ee: 0x0008, 0x2ef: 0x0008,\n\t0x2f0: 0x0008, 0x2f1: 0x0008, 0x2f2: 0x0008, 0x2f3: 0x0008, 0x2f4: 0x0008, 0x2f5: 0x0008,\n\t0x2f6: 0x0008, 0x2f7: 0x0008, 0x2f8: 0x0008, 0x2f9: 0x0008, 0x2fa: 0x0008, 0x2fb: 0x0008,\n\t0x2fc: 0x0008, 0x2fd: 0x0008, 0x2fe: 0x0008, 0x2ff: 0x0008,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x0008, 0x301: 0x0008, 0x302: 0xe00f, 0x303: 0x0008, 0x304: 0x0008, 0x305: 0x0008,\n\t0x306: 0x0008, 0x307: 0x0008, 0x308: 0x0008, 0x309: 0x0008, 0x30a: 0x0008, 0x30b: 0x0008,\n\t0x30c: 0x0008, 0x30d: 0x0008, 0x30e: 0x0008, 0x30f: 0xe0c5, 0x310: 0x04b5, 0x311: 0x04cd,\n\t0x312: 0xe0bd, 0x313: 0xe0f5, 0x314: 0xe0fd, 0x315: 0xe09d, 0x316: 0xe0b5, 0x317: 0x0008,\n\t0x318: 0xe00d, 0x319: 0x0008, 0x31a: 0xe00d, 0x31b: 0x0008, 0x31c: 0xe00d, 0x31d: 0x0008,\n\t0x31e: 0xe00d, 0x31f: 0x0008, 0x320: 0xe00d, 0x321: 0x0008, 0x322: 0xe00d, 0x323: 0x0008,\n\t0x324: 0xe00d, 0x325: 0x0008, 0x326: 0xe00d, 0x327: 0x0008, 0x328: 0xe00d, 0x329: 0x0008,\n\t0x32a: 0xe00d, 0x32b: 0x0008, 0x32c: 0xe00d, 0x32d: 0x0008, 0x32e: 0xe00d, 0x32f: 0x0008,\n\t0x330: 0x04e5, 0x331: 0xe185, 0x332: 0xe18d, 0x333: 0x0008, 0x334: 0x04fd, 0x335: 0x03dd,\n\t0x336: 0x0018, 0x337: 0xe07d, 0x338: 0x0008, 0x339: 0xe1d5, 0x33a: 0xe00d, 0x33b: 0x0008,\n\t0x33c: 0x0008, 0x33d: 0x0515, 0x33e: 0x052d, 0x33f: 0x052d,\n\t// Block 0xd, offset 0x340\n\t0x340: 0x0008, 0x341: 0x0008, 0x342: 0x0008, 0x343: 0x0008, 0x344: 0x0008, 0x345: 0x0008,\n\t0x346: 0x0008, 0x347: 0x0008, 0x348: 0x0008, 0x349: 0x0008, 0x34a: 0x0008, 0x34b: 0x0008,\n\t0x34c: 0x0008, 0x34d: 0x0008, 0x34e: 0x0008, 0x34f: 0x0008, 0x350: 0x0008, 0x351: 0x0008,\n\t0x352: 0x0008, 0x353: 0x0008, 0x354: 0x0008, 0x355: 0x0008, 0x356: 0x0008, 0x357: 0x0008,\n\t0x358: 0x0008, 0x359: 0x0008, 0x35a: 0x0008, 0x35b: 0x0008, 0x35c: 0x0008, 0x35d: 0x0008,\n\t0x35e: 0x0008, 0x35f: 0x0008, 0x360: 0xe00d, 0x361: 0x0008, 0x362: 0xe00d, 0x363: 0x0008,\n\t0x364: 0xe00d, 0x365: 0x0008, 0x366: 0xe00d, 0x367: 0x0008, 0x368: 0xe00d, 0x369: 0x0008,\n\t0x36a: 0xe00d, 0x36b: 0x0008, 0x36c: 0xe00d, 0x36d: 0x0008, 0x36e: 0xe00d, 0x36f: 0x0008,\n\t0x370: 0xe00d, 0x371: 0x0008, 0x372: 0xe00d, 0x373: 0x0008, 0x374: 0xe00d, 0x375: 0x0008,\n\t0x376: 0xe00d, 0x377: 0x0008, 0x378: 0xe00d, 0x379: 0x0008, 0x37a: 0xe00d, 0x37b: 0x0008,\n\t0x37c: 0xe00d, 0x37d: 0x0008, 0x37e: 0xe00d, 0x37f: 0x0008,\n\t// Block 0xe, offset 0x380\n\t0x380: 0xe00d, 0x381: 0x0008, 0x382: 0x0018, 0x383: 0x3308, 0x384: 0x3308, 0x385: 0x3308,\n\t0x386: 0x3308, 0x387: 0x3308, 0x388: 0x3318, 0x389: 0x3318, 0x38a: 0xe00d, 0x38b: 0x0008,\n\t0x38c: 0xe00d, 0x38d: 0x0008, 0x38e: 0xe00d, 0x38f: 0x0008, 0x390: 0xe00d, 0x391: 0x0008,\n\t0x392: 0xe00d, 0x393: 0x0008, 0x394: 0xe00d, 0x395: 0x0008, 0x396: 0xe00d, 0x397: 0x0008,\n\t0x398: 0xe00d, 0x399: 0x0008, 0x39a: 0xe00d, 0x39b: 0x0008, 0x39c: 0xe00d, 0x39d: 0x0008,\n\t0x39e: 0xe00d, 0x39f: 0x0008, 0x3a0: 0xe00d, 0x3a1: 0x0008, 0x3a2: 0xe00d, 0x3a3: 0x0008,\n\t0x3a4: 0xe00d, 0x3a5: 0x0008, 0x3a6: 0xe00d, 0x3a7: 0x0008, 0x3a8: 0xe00d, 0x3a9: 0x0008,\n\t0x3aa: 0xe00d, 0x3ab: 0x0008, 0x3ac: 0xe00d, 0x3ad: 0x0008, 0x3ae: 0xe00d, 0x3af: 0x0008,\n\t0x3b0: 0xe00d, 0x3b1: 0x0008, 0x3b2: 0xe00d, 0x3b3: 0x0008, 0x3b4: 0xe00d, 0x3b5: 0x0008,\n\t0x3b6: 0xe00d, 0x3b7: 0x0008, 0x3b8: 0xe00d, 0x3b9: 0x0008, 0x3ba: 0xe00d, 0x3bb: 0x0008,\n\t0x3bc: 0xe00d, 0x3bd: 0x0008, 0x3be: 0xe00d, 0x3bf: 0x0008,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x0040, 0x3c1: 0xe01d, 0x3c2: 0x0008, 0x3c3: 0xe03d, 0x3c4: 0x0008, 0x3c5: 0xe01d,\n\t0x3c6: 0x0008, 0x3c7: 0xe07d, 0x3c8: 0x0008, 0x3c9: 0xe01d, 0x3ca: 0x0008, 0x3cb: 0xe03d,\n\t0x3cc: 0x0008, 0x3cd: 0xe01d, 0x3ce: 0x0008, 0x3cf: 0x0008, 0x3d0: 0xe00d, 0x3d1: 0x0008,\n\t0x3d2: 0xe00d, 0x3d3: 0x0008, 0x3d4: 0xe00d, 0x3d5: 0x0008, 0x3d6: 0xe00d, 0x3d7: 0x0008,\n\t0x3d8: 0xe00d, 0x3d9: 0x0008, 0x3da: 0xe00d, 0x3db: 0x0008, 0x3dc: 0xe00d, 0x3dd: 0x0008,\n\t0x3de: 0xe00d, 0x3df: 0x0008, 0x3e0: 0xe00d, 0x3e1: 0x0008, 0x3e2: 0xe00d, 0x3e3: 0x0008,\n\t0x3e4: 0xe00d, 0x3e5: 0x0008, 0x3e6: 0xe00d, 0x3e7: 0x0008, 0x3e8: 0xe00d, 0x3e9: 0x0008,\n\t0x3ea: 0xe00d, 0x3eb: 0x0008, 0x3ec: 0xe00d, 0x3ed: 0x0008, 0x3ee: 0xe00d, 0x3ef: 0x0008,\n\t0x3f0: 0xe00d, 0x3f1: 0x0008, 0x3f2: 0xe00d, 0x3f3: 0x0008, 0x3f4: 0xe00d, 0x3f5: 0x0008,\n\t0x3f6: 0xe00d, 0x3f7: 0x0008, 0x3f8: 0xe00d, 0x3f9: 0x0008, 0x3fa: 0xe00d, 0x3fb: 0x0008,\n\t0x3fc: 0xe00d, 0x3fd: 0x0008, 0x3fe: 0xe00d, 0x3ff: 0x0008,\n\t// Block 0x10, offset 0x400\n\t0x400: 0xe00d, 0x401: 0x0008, 0x402: 0xe00d, 0x403: 0x0008, 0x404: 0xe00d, 0x405: 0x0008,\n\t0x406: 0xe00d, 0x407: 0x0008, 0x408: 0xe00d, 0x409: 0x0008, 0x40a: 0xe00d, 0x40b: 0x0008,\n\t0x40c: 0xe00d, 0x40d: 0x0008, 0x40e: 0xe00d, 0x40f: 0x0008, 0x410: 0xe00d, 0x411: 0x0008,\n\t0x412: 0xe00d, 0x413: 0x0008, 0x414: 0xe00d, 0x415: 0x0008, 0x416: 0xe00d, 0x417: 0x0008,\n\t0x418: 0xe00d, 0x419: 0x0008, 0x41a: 0xe00d, 0x41b: 0x0008, 0x41c: 0xe00d, 0x41d: 0x0008,\n\t0x41e: 0xe00d, 0x41f: 0x0008, 0x420: 0xe00d, 0x421: 0x0008, 0x422: 0xe00d, 0x423: 0x0008,\n\t0x424: 0xe00d, 0x425: 0x0008, 0x426: 0xe00d, 0x427: 0x0008, 0x428: 0xe00d, 0x429: 0x0008,\n\t0x42a: 0xe00d, 0x42b: 0x0008, 0x42c: 0xe00d, 0x42d: 0x0008, 0x42e: 0xe00d, 0x42f: 0x0008,\n\t0x430: 0x0040, 0x431: 0x03f5, 0x432: 0x03f5, 0x433: 0x03f5, 0x434: 0x03f5, 0x435: 0x03f5,\n\t0x436: 0x03f5, 0x437: 0x03f5, 0x438: 0x03f5, 0x439: 0x03f5, 0x43a: 0x03f5, 0x43b: 0x03f5,\n\t0x43c: 0x03f5, 0x43d: 0x03f5, 0x43e: 0x03f5, 0x43f: 0x03f5,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x0840, 0x441: 0x0840, 0x442: 0x0840, 0x443: 0x0840, 0x444: 0x0840, 0x445: 0x0840,\n\t0x446: 0x0018, 0x447: 0x0018, 0x448: 0x0818, 0x449: 0x0018, 0x44a: 0x0018, 0x44b: 0x0818,\n\t0x44c: 0x0018, 0x44d: 0x0818, 0x44e: 0x0018, 0x44f: 0x0018, 0x450: 0x3308, 0x451: 0x3308,\n\t0x452: 0x3308, 0x453: 0x3308, 0x454: 0x3308, 0x455: 0x3308, 0x456: 0x3308, 0x457: 0x3308,\n\t0x458: 0x3308, 0x459: 0x3308, 0x45a: 0x3308, 0x45b: 0x0818, 0x45c: 0x0b40, 0x45d: 0x0040,\n\t0x45e: 0x0818, 0x45f: 0x0818, 0x460: 0x0a08, 0x461: 0x0808, 0x462: 0x0c08, 0x463: 0x0c08,\n\t0x464: 0x0c08, 0x465: 0x0c08, 0x466: 0x0a08, 0x467: 0x0c08, 0x468: 0x0a08, 0x469: 0x0c08,\n\t0x46a: 0x0a08, 0x46b: 0x0a08, 0x46c: 0x0a08, 0x46d: 0x0a08, 0x46e: 0x0a08, 0x46f: 0x0c08,\n\t0x470: 0x0c08, 0x471: 0x0c08, 0x472: 0x0c08, 0x473: 0x0a08, 0x474: 0x0a08, 0x475: 0x0a08,\n\t0x476: 0x0a08, 0x477: 0x0a08, 0x478: 0x0a08, 0x479: 0x0a08, 0x47a: 0x0a08, 0x47b: 0x0a08,\n\t0x47c: 0x0a08, 0x47d: 0x0a08, 0x47e: 0x0a08, 0x47f: 0x0a08,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x0818, 0x481: 0x0a08, 0x482: 0x0a08, 0x483: 0x0a08, 0x484: 0x0a08, 0x485: 0x0a08,\n\t0x486: 0x0a08, 0x487: 0x0a08, 0x488: 0x0c08, 0x489: 0x0a08, 0x48a: 0x0a08, 0x48b: 0x3308,\n\t0x48c: 0x3308, 0x48d: 0x3308, 0x48e: 0x3308, 0x48f: 0x3308, 0x490: 0x3308, 0x491: 0x3308,\n\t0x492: 0x3308, 0x493: 0x3308, 0x494: 0x3308, 0x495: 0x3308, 0x496: 0x3308, 0x497: 0x3308,\n\t0x498: 0x3308, 0x499: 0x3308, 0x49a: 0x3308, 0x49b: 0x3308, 0x49c: 0x3308, 0x49d: 0x3308,\n\t0x49e: 0x3308, 0x49f: 0x3308, 0x4a0: 0x0808, 0x4a1: 0x0808, 0x4a2: 0x0808, 0x4a3: 0x0808,\n\t0x4a4: 0x0808, 0x4a5: 0x0808, 0x4a6: 0x0808, 0x4a7: 0x0808, 0x4a8: 0x0808, 0x4a9: 0x0808,\n\t0x4aa: 0x0018, 0x4ab: 0x0818, 0x4ac: 0x0818, 0x4ad: 0x0818, 0x4ae: 0x0a08, 0x4af: 0x0a08,\n\t0x4b0: 0x3308, 0x4b1: 0x0c08, 0x4b2: 0x0c08, 0x4b3: 0x0c08, 0x4b4: 0x0808, 0x4b5: 0x0429,\n\t0x4b6: 0x0451, 0x4b7: 0x0479, 0x4b8: 0x04a1, 0x4b9: 0x0a08, 0x4ba: 0x0a08, 0x4bb: 0x0a08,\n\t0x4bc: 0x0a08, 0x4bd: 0x0a08, 0x4be: 0x0a08, 0x4bf: 0x0a08,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x0c08, 0x4c1: 0x0a08, 0x4c2: 0x0a08, 0x4c3: 0x0c08, 0x4c4: 0x0c08, 0x4c5: 0x0c08,\n\t0x4c6: 0x0c08, 0x4c7: 0x0c08, 0x4c8: 0x0c08, 0x4c9: 0x0c08, 0x4ca: 0x0c08, 0x4cb: 0x0c08,\n\t0x4cc: 0x0a08, 0x4cd: 0x0c08, 0x4ce: 0x0a08, 0x4cf: 0x0c08, 0x4d0: 0x0a08, 0x4d1: 0x0a08,\n\t0x4d2: 0x0c08, 0x4d3: 0x0c08, 0x4d4: 0x0818, 0x4d5: 0x0c08, 0x4d6: 0x3308, 0x4d7: 0x3308,\n\t0x4d8: 0x3308, 0x4d9: 0x3308, 0x4da: 0x3308, 0x4db: 0x3308, 0x4dc: 0x3308, 0x4dd: 0x0840,\n\t0x4de: 0x0018, 0x4df: 0x3308, 0x4e0: 0x3308, 0x4e1: 0x3308, 0x4e2: 0x3308, 0x4e3: 0x3308,\n\t0x4e4: 0x3308, 0x4e5: 0x0808, 0x4e6: 0x0808, 0x4e7: 0x3308, 0x4e8: 0x3308, 0x4e9: 0x0018,\n\t0x4ea: 0x3308, 0x4eb: 0x3308, 0x4ec: 0x3308, 0x4ed: 0x3308, 0x4ee: 0x0c08, 0x4ef: 0x0c08,\n\t0x4f0: 0x0008, 0x4f1: 0x0008, 0x4f2: 0x0008, 0x4f3: 0x0008, 0x4f4: 0x0008, 0x4f5: 0x0008,\n\t0x4f6: 0x0008, 0x4f7: 0x0008, 0x4f8: 0x0008, 0x4f9: 0x0008, 0x4fa: 0x0a08, 0x4fb: 0x0a08,\n\t0x4fc: 0x0a08, 0x4fd: 0x0808, 0x4fe: 0x0808, 0x4ff: 0x0a08,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x0818, 0x501: 0x0818, 0x502: 0x0818, 0x503: 0x0818, 0x504: 0x0818, 0x505: 0x0818,\n\t0x506: 0x0818, 0x507: 0x0818, 0x508: 0x0818, 0x509: 0x0818, 0x50a: 0x0818, 0x50b: 0x0818,\n\t0x50c: 0x0818, 0x50d: 0x0818, 0x50e: 0x0040, 0x50f: 0x0b40, 0x510: 0x0c08, 0x511: 0x3308,\n\t0x512: 0x0a08, 0x513: 0x0a08, 0x514: 0x0a08, 0x515: 0x0c08, 0x516: 0x0c08, 0x517: 0x0c08,\n\t0x518: 0x0c08, 0x519: 0x0c08, 0x51a: 0x0a08, 0x51b: 0x0a08, 0x51c: 0x0a08, 0x51d: 0x0a08,\n\t0x51e: 0x0c08, 0x51f: 0x0a08, 0x520: 0x0a08, 0x521: 0x0a08, 0x522: 0x0a08, 0x523: 0x0a08,\n\t0x524: 0x0a08, 0x525: 0x0a08, 0x526: 0x0a08, 0x527: 0x0a08, 0x528: 0x0c08, 0x529: 0x0a08,\n\t0x52a: 0x0c08, 0x52b: 0x0a08, 0x52c: 0x0c08, 0x52d: 0x0a08, 0x52e: 0x0a08, 0x52f: 0x0c08,\n\t0x530: 0x3308, 0x531: 0x3308, 0x532: 0x3308, 0x533: 0x3308, 0x534: 0x3308, 0x535: 0x3308,\n\t0x536: 0x3308, 0x537: 0x3308, 0x538: 0x3308, 0x539: 0x3308, 0x53a: 0x3308, 0x53b: 0x3308,\n\t0x53c: 0x3308, 0x53d: 0x3308, 0x53e: 0x3308, 0x53f: 0x3308,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x0c08, 0x541: 0x0a08, 0x542: 0x0a08, 0x543: 0x0a08, 0x544: 0x0a08, 0x545: 0x0a08,\n\t0x546: 0x0c08, 0x547: 0x0c08, 0x548: 0x0a08, 0x549: 0x0c08, 0x54a: 0x0a08, 0x54b: 0x0a08,\n\t0x54c: 0x0a08, 0x54d: 0x0a08, 0x54e: 0x0a08, 0x54f: 0x0a08, 0x550: 0x0a08, 0x551: 0x0a08,\n\t0x552: 0x0a08, 0x553: 0x0a08, 0x554: 0x0c08, 0x555: 0x0a08, 0x556: 0x0808, 0x557: 0x0808,\n\t0x558: 0x0808, 0x559: 0x3308, 0x55a: 0x3308, 0x55b: 0x3308, 0x55c: 0x0040, 0x55d: 0x0040,\n\t0x55e: 0x0818, 0x55f: 0x0040, 0x560: 0x0a08, 0x561: 0x0808, 0x562: 0x0a08, 0x563: 0x0a08,\n\t0x564: 0x0a08, 0x565: 0x0a08, 0x566: 0x0808, 0x567: 0x0c08, 0x568: 0x0a08, 0x569: 0x0c08,\n\t0x56a: 0x0c08, 0x56b: 0x0040, 0x56c: 0x0040, 0x56d: 0x0040, 0x56e: 0x0040, 0x56f: 0x0040,\n\t0x570: 0x0040, 0x571: 0x0040, 0x572: 0x0040, 0x573: 0x0040, 0x574: 0x0040, 0x575: 0x0040,\n\t0x576: 0x0040, 0x577: 0x0040, 0x578: 0x0040, 0x579: 0x0040, 0x57a: 0x0040, 0x57b: 0x0040,\n\t0x57c: 0x0040, 0x57d: 0x0040, 0x57e: 0x0040, 0x57f: 0x0040,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x3008, 0x581: 0x3308, 0x582: 0x3308, 0x583: 0x3308, 0x584: 0x3308, 0x585: 0x3308,\n\t0x586: 0x3308, 0x587: 0x3308, 0x588: 0x3308, 0x589: 0x3008, 0x58a: 0x3008, 0x58b: 0x3008,\n\t0x58c: 0x3008, 0x58d: 0x3b08, 0x58e: 0x3008, 0x58f: 0x3008, 0x590: 0x0008, 0x591: 0x3308,\n\t0x592: 0x3308, 0x593: 0x3308, 0x594: 0x3308, 0x595: 0x3308, 0x596: 0x3308, 0x597: 0x3308,\n\t0x598: 0x04c9, 0x599: 0x0501, 0x59a: 0x0539, 0x59b: 0x0571, 0x59c: 0x05a9, 0x59d: 0x05e1,\n\t0x59e: 0x0619, 0x59f: 0x0651, 0x5a0: 0x0008, 0x5a1: 0x0008, 0x5a2: 0x3308, 0x5a3: 0x3308,\n\t0x5a4: 0x0018, 0x5a5: 0x0018, 0x5a6: 0x0008, 0x5a7: 0x0008, 0x5a8: 0x0008, 0x5a9: 0x0008,\n\t0x5aa: 0x0008, 0x5ab: 0x0008, 0x5ac: 0x0008, 0x5ad: 0x0008, 0x5ae: 0x0008, 0x5af: 0x0008,\n\t0x5b0: 0x0018, 0x5b1: 0x0008, 0x5b2: 0x0008, 0x5b3: 0x0008, 0x5b4: 0x0008, 0x5b5: 0x0008,\n\t0x5b6: 0x0008, 0x5b7: 0x0008, 0x5b8: 0x0008, 0x5b9: 0x0008, 0x5ba: 0x0008, 0x5bb: 0x0008,\n\t0x5bc: 0x0008, 0x5bd: 0x0008, 0x5be: 0x0008, 0x5bf: 0x0008,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x0008, 0x5c1: 0x3308, 0x5c2: 0x3008, 0x5c3: 0x3008, 0x5c4: 0x0040, 0x5c5: 0x0008,\n\t0x5c6: 0x0008, 0x5c7: 0x0008, 0x5c8: 0x0008, 0x5c9: 0x0008, 0x5ca: 0x0008, 0x5cb: 0x0008,\n\t0x5cc: 0x0008, 0x5cd: 0x0040, 0x5ce: 0x0040, 0x5cf: 0x0008, 0x5d0: 0x0008, 0x5d1: 0x0040,\n\t0x5d2: 0x0040, 0x5d3: 0x0008, 0x5d4: 0x0008, 0x5d5: 0x0008, 0x5d6: 0x0008, 0x5d7: 0x0008,\n\t0x5d8: 0x0008, 0x5d9: 0x0008, 0x5da: 0x0008, 0x5db: 0x0008, 0x5dc: 0x0008, 0x5dd: 0x0008,\n\t0x5de: 0x0008, 0x5df: 0x0008, 0x5e0: 0x0008, 0x5e1: 0x0008, 0x5e2: 0x0008, 0x5e3: 0x0008,\n\t0x5e4: 0x0008, 0x5e5: 0x0008, 0x5e6: 0x0008, 0x5e7: 0x0008, 0x5e8: 0x0008, 0x5e9: 0x0040,\n\t0x5ea: 0x0008, 0x5eb: 0x0008, 0x5ec: 0x0008, 0x5ed: 0x0008, 0x5ee: 0x0008, 0x5ef: 0x0008,\n\t0x5f0: 0x0008, 0x5f1: 0x0040, 0x5f2: 0x0008, 0x5f3: 0x0040, 0x5f4: 0x0040, 0x5f5: 0x0040,\n\t0x5f6: 0x0008, 0x5f7: 0x0008, 0x5f8: 0x0008, 0x5f9: 0x0008, 0x5fa: 0x0040, 0x5fb: 0x0040,\n\t0x5fc: 0x3308, 0x5fd: 0x0008, 0x5fe: 0x3008, 0x5ff: 0x3008,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x3008, 0x601: 0x3308, 0x602: 0x3308, 0x603: 0x3308, 0x604: 0x3308, 0x605: 0x0040,\n\t0x606: 0x0040, 0x607: 0x3008, 0x608: 0x3008, 0x609: 0x0040, 0x60a: 0x0040, 0x60b: 0x3008,\n\t0x60c: 0x3008, 0x60d: 0x3b08, 0x60e: 0x0008, 0x60f: 0x0040, 0x610: 0x0040, 0x611: 0x0040,\n\t0x612: 0x0040, 0x613: 0x0040, 0x614: 0x0040, 0x615: 0x0040, 0x616: 0x0040, 0x617: 0x3008,\n\t0x618: 0x0040, 0x619: 0x0040, 0x61a: 0x0040, 0x61b: 0x0040, 0x61c: 0x0689, 0x61d: 0x06c1,\n\t0x61e: 0x0040, 0x61f: 0x06f9, 0x620: 0x0008, 0x621: 0x0008, 0x622: 0x3308, 0x623: 0x3308,\n\t0x624: 0x0040, 0x625: 0x0040, 0x626: 0x0008, 0x627: 0x0008, 0x628: 0x0008, 0x629: 0x0008,\n\t0x62a: 0x0008, 0x62b: 0x0008, 0x62c: 0x0008, 0x62d: 0x0008, 0x62e: 0x0008, 0x62f: 0x0008,\n\t0x630: 0x0008, 0x631: 0x0008, 0x632: 0x0018, 0x633: 0x0018, 0x634: 0x0018, 0x635: 0x0018,\n\t0x636: 0x0018, 0x637: 0x0018, 0x638: 0x0018, 0x639: 0x0018, 0x63a: 0x0018, 0x63b: 0x0018,\n\t0x63c: 0x0008, 0x63d: 0x0018, 0x63e: 0x0040, 0x63f: 0x0040,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x0040, 0x641: 0x3308, 0x642: 0x3308, 0x643: 0x3008, 0x644: 0x0040, 0x645: 0x0008,\n\t0x646: 0x0008, 0x647: 0x0008, 0x648: 0x0008, 0x649: 0x0008, 0x64a: 0x0008, 0x64b: 0x0040,\n\t0x64c: 0x0040, 0x64d: 0x0040, 0x64e: 0x0040, 0x64f: 0x0008, 0x650: 0x0008, 0x651: 0x0040,\n\t0x652: 0x0040, 0x653: 0x0008, 0x654: 0x0008, 0x655: 0x0008, 0x656: 0x0008, 0x657: 0x0008,\n\t0x658: 0x0008, 0x659: 0x0008, 0x65a: 0x0008, 0x65b: 0x0008, 0x65c: 0x0008, 0x65d: 0x0008,\n\t0x65e: 0x0008, 0x65f: 0x0008, 0x660: 0x0008, 0x661: 0x0008, 0x662: 0x0008, 0x663: 0x0008,\n\t0x664: 0x0008, 0x665: 0x0008, 0x666: 0x0008, 0x667: 0x0008, 0x668: 0x0008, 0x669: 0x0040,\n\t0x66a: 0x0008, 0x66b: 0x0008, 0x66c: 0x0008, 0x66d: 0x0008, 0x66e: 0x0008, 0x66f: 0x0008,\n\t0x670: 0x0008, 0x671: 0x0040, 0x672: 0x0008, 0x673: 0x0731, 0x674: 0x0040, 0x675: 0x0008,\n\t0x676: 0x0769, 0x677: 0x0040, 0x678: 0x0008, 0x679: 0x0008, 0x67a: 0x0040, 0x67b: 0x0040,\n\t0x67c: 0x3308, 0x67d: 0x0040, 0x67e: 0x3008, 0x67f: 0x3008,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x3008, 0x681: 0x3308, 0x682: 0x3308, 0x683: 0x0040, 0x684: 0x0040, 0x685: 0x0040,\n\t0x686: 0x0040, 0x687: 0x3308, 0x688: 0x3308, 0x689: 0x0040, 0x68a: 0x0040, 0x68b: 0x3308,\n\t0x68c: 0x3308, 0x68d: 0x3b08, 0x68e: 0x0040, 0x68f: 0x0040, 0x690: 0x0040, 0x691: 0x3308,\n\t0x692: 0x0040, 0x693: 0x0040, 0x694: 0x0040, 0x695: 0x0040, 0x696: 0x0040, 0x697: 0x0040,\n\t0x698: 0x0040, 0x699: 0x07a1, 0x69a: 0x07d9, 0x69b: 0x0811, 0x69c: 0x0008, 0x69d: 0x0040,\n\t0x69e: 0x0849, 0x69f: 0x0040, 0x6a0: 0x0040, 0x6a1: 0x0040, 0x6a2: 0x0040, 0x6a3: 0x0040,\n\t0x6a4: 0x0040, 0x6a5: 0x0040, 0x6a6: 0x0008, 0x6a7: 0x0008, 0x6a8: 0x0008, 0x6a9: 0x0008,\n\t0x6aa: 0x0008, 0x6ab: 0x0008, 0x6ac: 0x0008, 0x6ad: 0x0008, 0x6ae: 0x0008, 0x6af: 0x0008,\n\t0x6b0: 0x3308, 0x6b1: 0x3308, 0x6b2: 0x0008, 0x6b3: 0x0008, 0x6b4: 0x0008, 0x6b5: 0x3308,\n\t0x6b6: 0x0040, 0x6b7: 0x0040, 0x6b8: 0x0040, 0x6b9: 0x0040, 0x6ba: 0x0040, 0x6bb: 0x0040,\n\t0x6bc: 0x0040, 0x6bd: 0x0040, 0x6be: 0x0040, 0x6bf: 0x0040,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x0040, 0x6c1: 0x3308, 0x6c2: 0x3308, 0x6c3: 0x3008, 0x6c4: 0x0040, 0x6c5: 0x0008,\n\t0x6c6: 0x0008, 0x6c7: 0x0008, 0x6c8: 0x0008, 0x6c9: 0x0008, 0x6ca: 0x0008, 0x6cb: 0x0008,\n\t0x6cc: 0x0008, 0x6cd: 0x0008, 0x6ce: 0x0040, 0x6cf: 0x0008, 0x6d0: 0x0008, 0x6d1: 0x0008,\n\t0x6d2: 0x0040, 0x6d3: 0x0008, 0x6d4: 0x0008, 0x6d5: 0x0008, 0x6d6: 0x0008, 0x6d7: 0x0008,\n\t0x6d8: 0x0008, 0x6d9: 0x0008, 0x6da: 0x0008, 0x6db: 0x0008, 0x6dc: 0x0008, 0x6dd: 0x0008,\n\t0x6de: 0x0008, 0x6df: 0x0008, 0x6e0: 0x0008, 0x6e1: 0x0008, 0x6e2: 0x0008, 0x6e3: 0x0008,\n\t0x6e4: 0x0008, 0x6e5: 0x0008, 0x6e6: 0x0008, 0x6e7: 0x0008, 0x6e8: 0x0008, 0x6e9: 0x0040,\n\t0x6ea: 0x0008, 0x6eb: 0x0008, 0x6ec: 0x0008, 0x6ed: 0x0008, 0x6ee: 0x0008, 0x6ef: 0x0008,\n\t0x6f0: 0x0008, 0x6f1: 0x0040, 0x6f2: 0x0008, 0x6f3: 0x0008, 0x6f4: 0x0040, 0x6f5: 0x0008,\n\t0x6f6: 0x0008, 0x6f7: 0x0008, 0x6f8: 0x0008, 0x6f9: 0x0008, 0x6fa: 0x0040, 0x6fb: 0x0040,\n\t0x6fc: 0x3308, 0x6fd: 0x0008, 0x6fe: 0x3008, 0x6ff: 0x3008,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x3008, 0x701: 0x3308, 0x702: 0x3308, 0x703: 0x3308, 0x704: 0x3308, 0x705: 0x3308,\n\t0x706: 0x0040, 0x707: 0x3308, 0x708: 0x3308, 0x709: 0x3008, 0x70a: 0x0040, 0x70b: 0x3008,\n\t0x70c: 0x3008, 0x70d: 0x3b08, 0x70e: 0x0040, 0x70f: 0x0040, 0x710: 0x0008, 0x711: 0x0040,\n\t0x712: 0x0040, 0x713: 0x0040, 0x714: 0x0040, 0x715: 0x0040, 0x716: 0x0040, 0x717: 0x0040,\n\t0x718: 0x0040, 0x719: 0x0040, 0x71a: 0x0040, 0x71b: 0x0040, 0x71c: 0x0040, 0x71d: 0x0040,\n\t0x71e: 0x0040, 0x71f: 0x0040, 0x720: 0x0008, 0x721: 0x0008, 0x722: 0x3308, 0x723: 0x3308,\n\t0x724: 0x0040, 0x725: 0x0040, 0x726: 0x0008, 0x727: 0x0008, 0x728: 0x0008, 0x729: 0x0008,\n\t0x72a: 0x0008, 0x72b: 0x0008, 0x72c: 0x0008, 0x72d: 0x0008, 0x72e: 0x0008, 0x72f: 0x0008,\n\t0x730: 0x0018, 0x731: 0x0018, 0x732: 0x0040, 0x733: 0x0040, 0x734: 0x0040, 0x735: 0x0040,\n\t0x736: 0x0040, 0x737: 0x0040, 0x738: 0x0040, 0x739: 0x0008, 0x73a: 0x3308, 0x73b: 0x3308,\n\t0x73c: 0x3308, 0x73d: 0x3308, 0x73e: 0x3308, 0x73f: 0x3308,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0x0040, 0x741: 0x3308, 0x742: 0x3008, 0x743: 0x3008, 0x744: 0x0040, 0x745: 0x0008,\n\t0x746: 0x0008, 0x747: 0x0008, 0x748: 0x0008, 0x749: 0x0008, 0x74a: 0x0008, 0x74b: 0x0008,\n\t0x74c: 0x0008, 0x74d: 0x0040, 0x74e: 0x0040, 0x74f: 0x0008, 0x750: 0x0008, 0x751: 0x0040,\n\t0x752: 0x0040, 0x753: 0x0008, 0x754: 0x0008, 0x755: 0x0008, 0x756: 0x0008, 0x757: 0x0008,\n\t0x758: 0x0008, 0x759: 0x0008, 0x75a: 0x0008, 0x75b: 0x0008, 0x75c: 0x0008, 0x75d: 0x0008,\n\t0x75e: 0x0008, 0x75f: 0x0008, 0x760: 0x0008, 0x761: 0x0008, 0x762: 0x0008, 0x763: 0x0008,\n\t0x764: 0x0008, 0x765: 0x0008, 0x766: 0x0008, 0x767: 0x0008, 0x768: 0x0008, 0x769: 0x0040,\n\t0x76a: 0x0008, 0x76b: 0x0008, 0x76c: 0x0008, 0x76d: 0x0008, 0x76e: 0x0008, 0x76f: 0x0008,\n\t0x770: 0x0008, 0x771: 0x0040, 0x772: 0x0008, 0x773: 0x0008, 0x774: 0x0040, 0x775: 0x0008,\n\t0x776: 0x0008, 0x777: 0x0008, 0x778: 0x0008, 0x779: 0x0008, 0x77a: 0x0040, 0x77b: 0x0040,\n\t0x77c: 0x3308, 0x77d: 0x0008, 0x77e: 0x3008, 0x77f: 0x3308,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0x3008, 0x781: 0x3308, 0x782: 0x3308, 0x783: 0x3308, 0x784: 0x3308, 0x785: 0x0040,\n\t0x786: 0x0040, 0x787: 0x3008, 0x788: 0x3008, 0x789: 0x0040, 0x78a: 0x0040, 0x78b: 0x3008,\n\t0x78c: 0x3008, 0x78d: 0x3b08, 0x78e: 0x0040, 0x78f: 0x0040, 0x790: 0x0040, 0x791: 0x0040,\n\t0x792: 0x0040, 0x793: 0x0040, 0x794: 0x0040, 0x795: 0x0040, 0x796: 0x3308, 0x797: 0x3008,\n\t0x798: 0x0040, 0x799: 0x0040, 0x79a: 0x0040, 0x79b: 0x0040, 0x79c: 0x0881, 0x79d: 0x08b9,\n\t0x79e: 0x0040, 0x79f: 0x0008, 0x7a0: 0x0008, 0x7a1: 0x0008, 0x7a2: 0x3308, 0x7a3: 0x3308,\n\t0x7a4: 0x0040, 0x7a5: 0x0040, 0x7a6: 0x0008, 0x7a7: 0x0008, 0x7a8: 0x0008, 0x7a9: 0x0008,\n\t0x7aa: 0x0008, 0x7ab: 0x0008, 0x7ac: 0x0008, 0x7ad: 0x0008, 0x7ae: 0x0008, 0x7af: 0x0008,\n\t0x7b0: 0x0018, 0x7b1: 0x0008, 0x7b2: 0x0018, 0x7b3: 0x0018, 0x7b4: 0x0018, 0x7b5: 0x0018,\n\t0x7b6: 0x0018, 0x7b7: 0x0018, 0x7b8: 0x0040, 0x7b9: 0x0040, 0x7ba: 0x0040, 0x7bb: 0x0040,\n\t0x7bc: 0x0040, 0x7bd: 0x0040, 0x7be: 0x0040, 0x7bf: 0x0040,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0x0040, 0x7c1: 0x0040, 0x7c2: 0x3308, 0x7c3: 0x0008, 0x7c4: 0x0040, 0x7c5: 0x0008,\n\t0x7c6: 0x0008, 0x7c7: 0x0008, 0x7c8: 0x0008, 0x7c9: 0x0008, 0x7ca: 0x0008, 0x7cb: 0x0040,\n\t0x7cc: 0x0040, 0x7cd: 0x0040, 0x7ce: 0x0008, 0x7cf: 0x0008, 0x7d0: 0x0008, 0x7d1: 0x0040,\n\t0x7d2: 0x0008, 0x7d3: 0x0008, 0x7d4: 0x0008, 0x7d5: 0x0008, 0x7d6: 0x0040, 0x7d7: 0x0040,\n\t0x7d8: 0x0040, 0x7d9: 0x0008, 0x7da: 0x0008, 0x7db: 0x0040, 0x7dc: 0x0008, 0x7dd: 0x0040,\n\t0x7de: 0x0008, 0x7df: 0x0008, 0x7e0: 0x0040, 0x7e1: 0x0040, 0x7e2: 0x0040, 0x7e3: 0x0008,\n\t0x7e4: 0x0008, 0x7e5: 0x0040, 0x7e6: 0x0040, 0x7e7: 0x0040, 0x7e8: 0x0008, 0x7e9: 0x0008,\n\t0x7ea: 0x0008, 0x7eb: 0x0040, 0x7ec: 0x0040, 0x7ed: 0x0040, 0x7ee: 0x0008, 0x7ef: 0x0008,\n\t0x7f0: 0x0008, 0x7f1: 0x0008, 0x7f2: 0x0008, 0x7f3: 0x0008, 0x7f4: 0x0008, 0x7f5: 0x0008,\n\t0x7f6: 0x0008, 0x7f7: 0x0008, 0x7f8: 0x0008, 0x7f9: 0x0008, 0x7fa: 0x0040, 0x7fb: 0x0040,\n\t0x7fc: 0x0040, 0x7fd: 0x0040, 0x7fe: 0x3008, 0x7ff: 0x3008,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x3308, 0x801: 0x3008, 0x802: 0x3008, 0x803: 0x3008, 0x804: 0x3008, 0x805: 0x0040,\n\t0x806: 0x3308, 0x807: 0x3308, 0x808: 0x3308, 0x809: 0x0040, 0x80a: 0x3308, 0x80b: 0x3308,\n\t0x80c: 0x3308, 0x80d: 0x3b08, 0x80e: 0x0040, 0x80f: 0x0040, 0x810: 0x0040, 0x811: 0x0040,\n\t0x812: 0x0040, 0x813: 0x0040, 0x814: 0x0040, 0x815: 0x3308, 0x816: 0x3308, 0x817: 0x0040,\n\t0x818: 0x0008, 0x819: 0x0008, 0x81a: 0x0008, 0x81b: 0x0040, 0x81c: 0x0040, 0x81d: 0x0040,\n\t0x81e: 0x0040, 0x81f: 0x0040, 0x820: 0x0008, 0x821: 0x0008, 0x822: 0x3308, 0x823: 0x3308,\n\t0x824: 0x0040, 0x825: 0x0040, 0x826: 0x0008, 0x827: 0x0008, 0x828: 0x0008, 0x829: 0x0008,\n\t0x82a: 0x0008, 0x82b: 0x0008, 0x82c: 0x0008, 0x82d: 0x0008, 0x82e: 0x0008, 0x82f: 0x0008,\n\t0x830: 0x0040, 0x831: 0x0040, 0x832: 0x0040, 0x833: 0x0040, 0x834: 0x0040, 0x835: 0x0040,\n\t0x836: 0x0040, 0x837: 0x0040, 0x838: 0x0018, 0x839: 0x0018, 0x83a: 0x0018, 0x83b: 0x0018,\n\t0x83c: 0x0018, 0x83d: 0x0018, 0x83e: 0x0018, 0x83f: 0x0018,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x0008, 0x841: 0x3308, 0x842: 0x3008, 0x843: 0x3008, 0x844: 0x0040, 0x845: 0x0008,\n\t0x846: 0x0008, 0x847: 0x0008, 0x848: 0x0008, 0x849: 0x0008, 0x84a: 0x0008, 0x84b: 0x0008,\n\t0x84c: 0x0008, 0x84d: 0x0040, 0x84e: 0x0008, 0x84f: 0x0008, 0x850: 0x0008, 0x851: 0x0040,\n\t0x852: 0x0008, 0x853: 0x0008, 0x854: 0x0008, 0x855: 0x0008, 0x856: 0x0008, 0x857: 0x0008,\n\t0x858: 0x0008, 0x859: 0x0008, 0x85a: 0x0008, 0x85b: 0x0008, 0x85c: 0x0008, 0x85d: 0x0008,\n\t0x85e: 0x0008, 0x85f: 0x0008, 0x860: 0x0008, 0x861: 0x0008, 0x862: 0x0008, 0x863: 0x0008,\n\t0x864: 0x0008, 0x865: 0x0008, 0x866: 0x0008, 0x867: 0x0008, 0x868: 0x0008, 0x869: 0x0040,\n\t0x86a: 0x0008, 0x86b: 0x0008, 0x86c: 0x0008, 0x86d: 0x0008, 0x86e: 0x0008, 0x86f: 0x0008,\n\t0x870: 0x0008, 0x871: 0x0008, 0x872: 0x0008, 0x873: 0x0008, 0x874: 0x0040, 0x875: 0x0008,\n\t0x876: 0x0008, 0x877: 0x0008, 0x878: 0x0008, 0x879: 0x0008, 0x87a: 0x0040, 0x87b: 0x0040,\n\t0x87c: 0x3308, 0x87d: 0x0008, 0x87e: 0x3008, 0x87f: 0x3308,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x3008, 0x881: 0x3008, 0x882: 0x3008, 0x883: 0x3008, 0x884: 0x3008, 0x885: 0x0040,\n\t0x886: 0x3308, 0x887: 0x3008, 0x888: 0x3008, 0x889: 0x0040, 0x88a: 0x3008, 0x88b: 0x3008,\n\t0x88c: 0x3308, 0x88d: 0x3b08, 0x88e: 0x0040, 0x88f: 0x0040, 0x890: 0x0040, 0x891: 0x0040,\n\t0x892: 0x0040, 0x893: 0x0040, 0x894: 0x0040, 0x895: 0x3008, 0x896: 0x3008, 0x897: 0x0040,\n\t0x898: 0x0040, 0x899: 0x0040, 0x89a: 0x0040, 0x89b: 0x0040, 0x89c: 0x0040, 0x89d: 0x0040,\n\t0x89e: 0x0008, 0x89f: 0x0040, 0x8a0: 0x0008, 0x8a1: 0x0008, 0x8a2: 0x3308, 0x8a3: 0x3308,\n\t0x8a4: 0x0040, 0x8a5: 0x0040, 0x8a6: 0x0008, 0x8a7: 0x0008, 0x8a8: 0x0008, 0x8a9: 0x0008,\n\t0x8aa: 0x0008, 0x8ab: 0x0008, 0x8ac: 0x0008, 0x8ad: 0x0008, 0x8ae: 0x0008, 0x8af: 0x0008,\n\t0x8b0: 0x0040, 0x8b1: 0x0008, 0x8b2: 0x0008, 0x8b3: 0x0040, 0x8b4: 0x0040, 0x8b5: 0x0040,\n\t0x8b6: 0x0040, 0x8b7: 0x0040, 0x8b8: 0x0040, 0x8b9: 0x0040, 0x8ba: 0x0040, 0x8bb: 0x0040,\n\t0x8bc: 0x0040, 0x8bd: 0x0040, 0x8be: 0x0040, 0x8bf: 0x0040,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x3008, 0x8c1: 0x3308, 0x8c2: 0x3308, 0x8c3: 0x3308, 0x8c4: 0x3308, 0x8c5: 0x0040,\n\t0x8c6: 0x3008, 0x8c7: 0x3008, 0x8c8: 0x3008, 0x8c9: 0x0040, 0x8ca: 0x3008, 0x8cb: 0x3008,\n\t0x8cc: 0x3008, 0x8cd: 0x3b08, 0x8ce: 0x0008, 0x8cf: 0x0018, 0x8d0: 0x0040, 0x8d1: 0x0040,\n\t0x8d2: 0x0040, 0x8d3: 0x0040, 0x8d4: 0x0008, 0x8d5: 0x0008, 0x8d6: 0x0008, 0x8d7: 0x3008,\n\t0x8d8: 0x0018, 0x8d9: 0x0018, 0x8da: 0x0018, 0x8db: 0x0018, 0x8dc: 0x0018, 0x8dd: 0x0018,\n\t0x8de: 0x0018, 0x8df: 0x0008, 0x8e0: 0x0008, 0x8e1: 0x0008, 0x8e2: 0x3308, 0x8e3: 0x3308,\n\t0x8e4: 0x0040, 0x8e5: 0x0040, 0x8e6: 0x0008, 0x8e7: 0x0008, 0x8e8: 0x0008, 0x8e9: 0x0008,\n\t0x8ea: 0x0008, 0x8eb: 0x0008, 0x8ec: 0x0008, 0x8ed: 0x0008, 0x8ee: 0x0008, 0x8ef: 0x0008,\n\t0x8f0: 0x0018, 0x8f1: 0x0018, 0x8f2: 0x0018, 0x8f3: 0x0018, 0x8f4: 0x0018, 0x8f5: 0x0018,\n\t0x8f6: 0x0018, 0x8f7: 0x0018, 0x8f8: 0x0018, 0x8f9: 0x0018, 0x8fa: 0x0008, 0x8fb: 0x0008,\n\t0x8fc: 0x0008, 0x8fd: 0x0008, 0x8fe: 0x0008, 0x8ff: 0x0008,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x0040, 0x901: 0x0008, 0x902: 0x0008, 0x903: 0x0040, 0x904: 0x0008, 0x905: 0x0040,\n\t0x906: 0x0040, 0x907: 0x0008, 0x908: 0x0008, 0x909: 0x0040, 0x90a: 0x0008, 0x90b: 0x0040,\n\t0x90c: 0x0040, 0x90d: 0x0008, 0x90e: 0x0040, 0x90f: 0x0040, 0x910: 0x0040, 0x911: 0x0040,\n\t0x912: 0x0040, 0x913: 0x0040, 0x914: 0x0008, 0x915: 0x0008, 0x916: 0x0008, 0x917: 0x0008,\n\t0x918: 0x0040, 0x919: 0x0008, 0x91a: 0x0008, 0x91b: 0x0008, 0x91c: 0x0008, 0x91d: 0x0008,\n\t0x91e: 0x0008, 0x91f: 0x0008, 0x920: 0x0040, 0x921: 0x0008, 0x922: 0x0008, 0x923: 0x0008,\n\t0x924: 0x0040, 0x925: 0x0008, 0x926: 0x0040, 0x927: 0x0008, 0x928: 0x0040, 0x929: 0x0040,\n\t0x92a: 0x0008, 0x92b: 0x0008, 0x92c: 0x0040, 0x92d: 0x0008, 0x92e: 0x0008, 0x92f: 0x0008,\n\t0x930: 0x0008, 0x931: 0x3308, 0x932: 0x0008, 0x933: 0x0929, 0x934: 0x3308, 0x935: 0x3308,\n\t0x936: 0x3308, 0x937: 0x3308, 0x938: 0x3308, 0x939: 0x3308, 0x93a: 0x0040, 0x93b: 0x3308,\n\t0x93c: 0x3308, 0x93d: 0x0008, 0x93e: 0x0040, 0x93f: 0x0040,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x0008, 0x941: 0x0008, 0x942: 0x0008, 0x943: 0x09d1, 0x944: 0x0008, 0x945: 0x0008,\n\t0x946: 0x0008, 0x947: 0x0008, 0x948: 0x0040, 0x949: 0x0008, 0x94a: 0x0008, 0x94b: 0x0008,\n\t0x94c: 0x0008, 0x94d: 0x0a09, 0x94e: 0x0008, 0x94f: 0x0008, 0x950: 0x0008, 0x951: 0x0008,\n\t0x952: 0x0a41, 0x953: 0x0008, 0x954: 0x0008, 0x955: 0x0008, 0x956: 0x0008, 0x957: 0x0a79,\n\t0x958: 0x0008, 0x959: 0x0008, 0x95a: 0x0008, 0x95b: 0x0008, 0x95c: 0x0ab1, 0x95d: 0x0008,\n\t0x95e: 0x0008, 0x95f: 0x0008, 0x960: 0x0008, 0x961: 0x0008, 0x962: 0x0008, 0x963: 0x0008,\n\t0x964: 0x0008, 0x965: 0x0008, 0x966: 0x0008, 0x967: 0x0008, 0x968: 0x0008, 0x969: 0x0ae9,\n\t0x96a: 0x0008, 0x96b: 0x0008, 0x96c: 0x0008, 0x96d: 0x0040, 0x96e: 0x0040, 0x96f: 0x0040,\n\t0x970: 0x0040, 0x971: 0x3308, 0x972: 0x3308, 0x973: 0x0b21, 0x974: 0x3308, 0x975: 0x0b59,\n\t0x976: 0x0b91, 0x977: 0x0bc9, 0x978: 0x0c19, 0x979: 0x0c51, 0x97a: 0x3308, 0x97b: 0x3308,\n\t0x97c: 0x3308, 0x97d: 0x3308, 0x97e: 0x3308, 0x97f: 0x3008,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x3308, 0x981: 0x0ca1, 0x982: 0x3308, 0x983: 0x3308, 0x984: 0x3b08, 0x985: 0x0018,\n\t0x986: 0x3308, 0x987: 0x3308, 0x988: 0x0008, 0x989: 0x0008, 0x98a: 0x0008, 0x98b: 0x0008,\n\t0x98c: 0x0008, 0x98d: 0x3308, 0x98e: 0x3308, 0x98f: 0x3308, 0x990: 0x3308, 0x991: 0x3308,\n\t0x992: 0x3308, 0x993: 0x0cd9, 0x994: 0x3308, 0x995: 0x3308, 0x996: 0x3308, 0x997: 0x3308,\n\t0x998: 0x0040, 0x999: 0x3308, 0x99a: 0x3308, 0x99b: 0x3308, 0x99c: 0x3308, 0x99d: 0x0d11,\n\t0x99e: 0x3308, 0x99f: 0x3308, 0x9a0: 0x3308, 0x9a1: 0x3308, 0x9a2: 0x0d49, 0x9a3: 0x3308,\n\t0x9a4: 0x3308, 0x9a5: 0x3308, 0x9a6: 0x3308, 0x9a7: 0x0d81, 0x9a8: 0x3308, 0x9a9: 0x3308,\n\t0x9aa: 0x3308, 0x9ab: 0x3308, 0x9ac: 0x0db9, 0x9ad: 0x3308, 0x9ae: 0x3308, 0x9af: 0x3308,\n\t0x9b0: 0x3308, 0x9b1: 0x3308, 0x9b2: 0x3308, 0x9b3: 0x3308, 0x9b4: 0x3308, 0x9b5: 0x3308,\n\t0x9b6: 0x3308, 0x9b7: 0x3308, 0x9b8: 0x3308, 0x9b9: 0x0df1, 0x9ba: 0x3308, 0x9bb: 0x3308,\n\t0x9bc: 0x3308, 0x9bd: 0x0040, 0x9be: 0x0018, 0x9bf: 0x0018,\n\t// Block 0x27, offset 0x9c0\n\t0x9c0: 0x0008, 0x9c1: 0x0008, 0x9c2: 0x0008, 0x9c3: 0x0008, 0x9c4: 0x0008, 0x9c5: 0x0008,\n\t0x9c6: 0x0008, 0x9c7: 0x0008, 0x9c8: 0x0008, 0x9c9: 0x0008, 0x9ca: 0x0008, 0x9cb: 0x0008,\n\t0x9cc: 0x0008, 0x9cd: 0x0008, 0x9ce: 0x0008, 0x9cf: 0x0008, 0x9d0: 0x0008, 0x9d1: 0x0008,\n\t0x9d2: 0x0008, 0x9d3: 0x0008, 0x9d4: 0x0008, 0x9d5: 0x0008, 0x9d6: 0x0008, 0x9d7: 0x0008,\n\t0x9d8: 0x0008, 0x9d9: 0x0008, 0x9da: 0x0008, 0x9db: 0x0008, 0x9dc: 0x0008, 0x9dd: 0x0008,\n\t0x9de: 0x0008, 0x9df: 0x0008, 0x9e0: 0x0008, 0x9e1: 0x0008, 0x9e2: 0x0008, 0x9e3: 0x0008,\n\t0x9e4: 0x0008, 0x9e5: 0x0008, 0x9e6: 0x0008, 0x9e7: 0x0008, 0x9e8: 0x0008, 0x9e9: 0x0008,\n\t0x9ea: 0x0008, 0x9eb: 0x0008, 0x9ec: 0x0039, 0x9ed: 0x0ed1, 0x9ee: 0x0ee9, 0x9ef: 0x0008,\n\t0x9f0: 0x0ef9, 0x9f1: 0x0f09, 0x9f2: 0x0f19, 0x9f3: 0x0f31, 0x9f4: 0x0249, 0x9f5: 0x0f41,\n\t0x9f6: 0x0259, 0x9f7: 0x0f51, 0x9f8: 0x0359, 0x9f9: 0x0f61, 0x9fa: 0x0f71, 0x9fb: 0x0008,\n\t0x9fc: 0x00d9, 0x9fd: 0x0f81, 0x9fe: 0x0f99, 0x9ff: 0x0269,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x0fa9, 0xa01: 0x0fb9, 0xa02: 0x0279, 0xa03: 0x0039, 0xa04: 0x0fc9, 0xa05: 0x0fe1,\n\t0xa06: 0x059d, 0xa07: 0x0ee9, 0xa08: 0x0ef9, 0xa09: 0x0f09, 0xa0a: 0x0ff9, 0xa0b: 0x1011,\n\t0xa0c: 0x1029, 0xa0d: 0x0f31, 0xa0e: 0x0008, 0xa0f: 0x0f51, 0xa10: 0x0f61, 0xa11: 0x1041,\n\t0xa12: 0x00d9, 0xa13: 0x1059, 0xa14: 0x05b5, 0xa15: 0x05b5, 0xa16: 0x0f99, 0xa17: 0x0fa9,\n\t0xa18: 0x0fb9, 0xa19: 0x059d, 0xa1a: 0x1071, 0xa1b: 0x1089, 0xa1c: 0x05cd, 0xa1d: 0x1099,\n\t0xa1e: 0x10b1, 0xa1f: 0x10c9, 0xa20: 0x10e1, 0xa21: 0x10f9, 0xa22: 0x0f41, 0xa23: 0x0269,\n\t0xa24: 0x0fb9, 0xa25: 0x1089, 0xa26: 0x1099, 0xa27: 0x10b1, 0xa28: 0x1111, 0xa29: 0x10e1,\n\t0xa2a: 0x10f9, 0xa2b: 0x0008, 0xa2c: 0x0008, 0xa2d: 0x0008, 0xa2e: 0x0008, 0xa2f: 0x0008,\n\t0xa30: 0x0008, 0xa31: 0x0008, 0xa32: 0x0008, 0xa33: 0x0008, 0xa34: 0x0008, 0xa35: 0x0008,\n\t0xa36: 0x0008, 0xa37: 0x0008, 0xa38: 0x1129, 0xa39: 0x0008, 0xa3a: 0x0008, 0xa3b: 0x0008,\n\t0xa3c: 0x0008, 0xa3d: 0x0008, 0xa3e: 0x0008, 0xa3f: 0x0008,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0x0008, 0xa41: 0x0008, 0xa42: 0x0008, 0xa43: 0x0008, 0xa44: 0x0008, 0xa45: 0x0008,\n\t0xa46: 0x0008, 0xa47: 0x0008, 0xa48: 0x0008, 0xa49: 0x0008, 0xa4a: 0x0008, 0xa4b: 0x0008,\n\t0xa4c: 0x0008, 0xa4d: 0x0008, 0xa4e: 0x0008, 0xa4f: 0x0008, 0xa50: 0x0008, 0xa51: 0x0008,\n\t0xa52: 0x0008, 0xa53: 0x0008, 0xa54: 0x0008, 0xa55: 0x0008, 0xa56: 0x0008, 0xa57: 0x0008,\n\t0xa58: 0x0008, 0xa59: 0x0008, 0xa5a: 0x0008, 0xa5b: 0x1141, 0xa5c: 0x1159, 0xa5d: 0x1169,\n\t0xa5e: 0x1181, 0xa5f: 0x1029, 0xa60: 0x1199, 0xa61: 0x11a9, 0xa62: 0x11c1, 0xa63: 0x11d9,\n\t0xa64: 0x11f1, 0xa65: 0x1209, 0xa66: 0x1221, 0xa67: 0x05e5, 0xa68: 0x1239, 0xa69: 0x1251,\n\t0xa6a: 0xe17d, 0xa6b: 0x1269, 0xa6c: 0x1281, 0xa6d: 0x1299, 0xa6e: 0x12b1, 0xa6f: 0x12c9,\n\t0xa70: 0x12e1, 0xa71: 0x12f9, 0xa72: 0x1311, 0xa73: 0x1329, 0xa74: 0x1341, 0xa75: 0x1359,\n\t0xa76: 0x1371, 0xa77: 0x1389, 0xa78: 0x05fd, 0xa79: 0x13a1, 0xa7a: 0x13b9, 0xa7b: 0x13d1,\n\t0xa7c: 0x13e1, 0xa7d: 0x13f9, 0xa7e: 0x1411, 0xa7f: 0x1429,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0xe00d, 0xa81: 0x0008, 0xa82: 0xe00d, 0xa83: 0x0008, 0xa84: 0xe00d, 0xa85: 0x0008,\n\t0xa86: 0xe00d, 0xa87: 0x0008, 0xa88: 0xe00d, 0xa89: 0x0008, 0xa8a: 0xe00d, 0xa8b: 0x0008,\n\t0xa8c: 0xe00d, 0xa8d: 0x0008, 0xa8e: 0xe00d, 0xa8f: 0x0008, 0xa90: 0xe00d, 0xa91: 0x0008,\n\t0xa92: 0xe00d, 0xa93: 0x0008, 0xa94: 0xe00d, 0xa95: 0x0008, 0xa96: 0xe00d, 0xa97: 0x0008,\n\t0xa98: 0xe00d, 0xa99: 0x0008, 0xa9a: 0xe00d, 0xa9b: 0x0008, 0xa9c: 0xe00d, 0xa9d: 0x0008,\n\t0xa9e: 0xe00d, 0xa9f: 0x0008, 0xaa0: 0xe00d, 0xaa1: 0x0008, 0xaa2: 0xe00d, 0xaa3: 0x0008,\n\t0xaa4: 0xe00d, 0xaa5: 0x0008, 0xaa6: 0xe00d, 0xaa7: 0x0008, 0xaa8: 0xe00d, 0xaa9: 0x0008,\n\t0xaaa: 0xe00d, 0xaab: 0x0008, 0xaac: 0xe00d, 0xaad: 0x0008, 0xaae: 0xe00d, 0xaaf: 0x0008,\n\t0xab0: 0xe00d, 0xab1: 0x0008, 0xab2: 0xe00d, 0xab3: 0x0008, 0xab4: 0xe00d, 0xab5: 0x0008,\n\t0xab6: 0xe00d, 0xab7: 0x0008, 0xab8: 0xe00d, 0xab9: 0x0008, 0xaba: 0xe00d, 0xabb: 0x0008,\n\t0xabc: 0xe00d, 0xabd: 0x0008, 0xabe: 0xe00d, 0xabf: 0x0008,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0xe00d, 0xac1: 0x0008, 0xac2: 0xe00d, 0xac3: 0x0008, 0xac4: 0xe00d, 0xac5: 0x0008,\n\t0xac6: 0xe00d, 0xac7: 0x0008, 0xac8: 0xe00d, 0xac9: 0x0008, 0xaca: 0xe00d, 0xacb: 0x0008,\n\t0xacc: 0xe00d, 0xacd: 0x0008, 0xace: 0xe00d, 0xacf: 0x0008, 0xad0: 0xe00d, 0xad1: 0x0008,\n\t0xad2: 0xe00d, 0xad3: 0x0008, 0xad4: 0xe00d, 0xad5: 0x0008, 0xad6: 0x0008, 0xad7: 0x0008,\n\t0xad8: 0x0008, 0xad9: 0x0008, 0xada: 0x0615, 0xadb: 0x0635, 0xadc: 0x0008, 0xadd: 0x0008,\n\t0xade: 0x1441, 0xadf: 0x0008, 0xae0: 0xe00d, 0xae1: 0x0008, 0xae2: 0xe00d, 0xae3: 0x0008,\n\t0xae4: 0xe00d, 0xae5: 0x0008, 0xae6: 0xe00d, 0xae7: 0x0008, 0xae8: 0xe00d, 0xae9: 0x0008,\n\t0xaea: 0xe00d, 0xaeb: 0x0008, 0xaec: 0xe00d, 0xaed: 0x0008, 0xaee: 0xe00d, 0xaef: 0x0008,\n\t0xaf0: 0xe00d, 0xaf1: 0x0008, 0xaf2: 0xe00d, 0xaf3: 0x0008, 0xaf4: 0xe00d, 0xaf5: 0x0008,\n\t0xaf6: 0xe00d, 0xaf7: 0x0008, 0xaf8: 0xe00d, 0xaf9: 0x0008, 0xafa: 0xe00d, 0xafb: 0x0008,\n\t0xafc: 0xe00d, 0xafd: 0x0008, 0xafe: 0xe00d, 0xaff: 0x0008,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0x0008, 0xb01: 0x0008, 0xb02: 0x0008, 0xb03: 0x0008, 0xb04: 0x0008, 0xb05: 0x0008,\n\t0xb06: 0x0040, 0xb07: 0x0040, 0xb08: 0xe045, 0xb09: 0xe045, 0xb0a: 0xe045, 0xb0b: 0xe045,\n\t0xb0c: 0xe045, 0xb0d: 0xe045, 0xb0e: 0x0040, 0xb0f: 0x0040, 0xb10: 0x0008, 0xb11: 0x0008,\n\t0xb12: 0x0008, 0xb13: 0x0008, 0xb14: 0x0008, 0xb15: 0x0008, 0xb16: 0x0008, 0xb17: 0x0008,\n\t0xb18: 0x0040, 0xb19: 0xe045, 0xb1a: 0x0040, 0xb1b: 0xe045, 0xb1c: 0x0040, 0xb1d: 0xe045,\n\t0xb1e: 0x0040, 0xb1f: 0xe045, 0xb20: 0x0008, 0xb21: 0x0008, 0xb22: 0x0008, 0xb23: 0x0008,\n\t0xb24: 0x0008, 0xb25: 0x0008, 0xb26: 0x0008, 0xb27: 0x0008, 0xb28: 0xe045, 0xb29: 0xe045,\n\t0xb2a: 0xe045, 0xb2b: 0xe045, 0xb2c: 0xe045, 0xb2d: 0xe045, 0xb2e: 0xe045, 0xb2f: 0xe045,\n\t0xb30: 0x0008, 0xb31: 0x1459, 0xb32: 0x0008, 0xb33: 0x1471, 0xb34: 0x0008, 0xb35: 0x1489,\n\t0xb36: 0x0008, 0xb37: 0x14a1, 0xb38: 0x0008, 0xb39: 0x14b9, 0xb3a: 0x0008, 0xb3b: 0x14d1,\n\t0xb3c: 0x0008, 0xb3d: 0x14e9, 0xb3e: 0x0040, 0xb3f: 0x0040,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x1501, 0xb41: 0x1531, 0xb42: 0x1561, 0xb43: 0x1591, 0xb44: 0x15c1, 0xb45: 0x15f1,\n\t0xb46: 0x1621, 0xb47: 0x1651, 0xb48: 0x1501, 0xb49: 0x1531, 0xb4a: 0x1561, 0xb4b: 0x1591,\n\t0xb4c: 0x15c1, 0xb4d: 0x15f1, 0xb4e: 0x1621, 0xb4f: 0x1651, 0xb50: 0x1681, 0xb51: 0x16b1,\n\t0xb52: 0x16e1, 0xb53: 0x1711, 0xb54: 0x1741, 0xb55: 0x1771, 0xb56: 0x17a1, 0xb57: 0x17d1,\n\t0xb58: 0x1681, 0xb59: 0x16b1, 0xb5a: 0x16e1, 0xb5b: 0x1711, 0xb5c: 0x1741, 0xb5d: 0x1771,\n\t0xb5e: 0x17a1, 0xb5f: 0x17d1, 0xb60: 0x1801, 0xb61: 0x1831, 0xb62: 0x1861, 0xb63: 0x1891,\n\t0xb64: 0x18c1, 0xb65: 0x18f1, 0xb66: 0x1921, 0xb67: 0x1951, 0xb68: 0x1801, 0xb69: 0x1831,\n\t0xb6a: 0x1861, 0xb6b: 0x1891, 0xb6c: 0x18c1, 0xb6d: 0x18f1, 0xb6e: 0x1921, 0xb6f: 0x1951,\n\t0xb70: 0x0008, 0xb71: 0x0008, 0xb72: 0x1981, 0xb73: 0x19b1, 0xb74: 0x19d9, 0xb75: 0x0040,\n\t0xb76: 0x0008, 0xb77: 0x1a01, 0xb78: 0xe045, 0xb79: 0xe045, 0xb7a: 0x064d, 0xb7b: 0x1459,\n\t0xb7c: 0x19b1, 0xb7d: 0x0666, 0xb7e: 0x1a31, 0xb7f: 0x0686,\n\t// Block 0x2e, offset 0xb80\n\t0xb80: 0x06a6, 0xb81: 0x1a4a, 0xb82: 0x1a79, 0xb83: 0x1aa9, 0xb84: 0x1ad1, 0xb85: 0x0040,\n\t0xb86: 0x0008, 0xb87: 0x1af9, 0xb88: 0x06c5, 0xb89: 0x1471, 0xb8a: 0x06dd, 0xb8b: 0x1489,\n\t0xb8c: 0x1aa9, 0xb8d: 0x1b2a, 0xb8e: 0x1b5a, 0xb8f: 0x1b8a, 0xb90: 0x0008, 0xb91: 0x0008,\n\t0xb92: 0x0008, 0xb93: 0x1bb9, 0xb94: 0x0040, 0xb95: 0x0040, 0xb96: 0x0008, 0xb97: 0x0008,\n\t0xb98: 0xe045, 0xb99: 0xe045, 0xb9a: 0x06f5, 0xb9b: 0x14a1, 0xb9c: 0x0040, 0xb9d: 0x1bd2,\n\t0xb9e: 0x1c02, 0xb9f: 0x1c32, 0xba0: 0x0008, 0xba1: 0x0008, 0xba2: 0x0008, 0xba3: 0x1c61,\n\t0xba4: 0x0008, 0xba5: 0x0008, 0xba6: 0x0008, 0xba7: 0x0008, 0xba8: 0xe045, 0xba9: 0xe045,\n\t0xbaa: 0x070d, 0xbab: 0x14d1, 0xbac: 0xe04d, 0xbad: 0x1c7a, 0xbae: 0x03d2, 0xbaf: 0x1caa,\n\t0xbb0: 0x0040, 0xbb1: 0x0040, 0xbb2: 0x1cb9, 0xbb3: 0x1ce9, 0xbb4: 0x1d11, 0xbb5: 0x0040,\n\t0xbb6: 0x0008, 0xbb7: 0x1d39, 0xbb8: 0x0725, 0xbb9: 0x14b9, 0xbba: 0x0515, 0xbbb: 0x14e9,\n\t0xbbc: 0x1ce9, 0xbbd: 0x073e, 0xbbe: 0x075e, 0xbbf: 0x0040,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc0: 0x000a, 0xbc1: 0x000a, 0xbc2: 0x000a, 0xbc3: 0x000a, 0xbc4: 0x000a, 0xbc5: 0x000a,\n\t0xbc6: 0x000a, 0xbc7: 0x000a, 0xbc8: 0x000a, 0xbc9: 0x000a, 0xbca: 0x000a, 0xbcb: 0x03c0,\n\t0xbcc: 0x0003, 0xbcd: 0x0003, 0xbce: 0x0340, 0xbcf: 0x0b40, 0xbd0: 0x0018, 0xbd1: 0xe00d,\n\t0xbd2: 0x0018, 0xbd3: 0x0018, 0xbd4: 0x0018, 0xbd5: 0x0018, 0xbd6: 0x0018, 0xbd7: 0x077e,\n\t0xbd8: 0x0018, 0xbd9: 0x0018, 0xbda: 0x0018, 0xbdb: 0x0018, 0xbdc: 0x0018, 0xbdd: 0x0018,\n\t0xbde: 0x0018, 0xbdf: 0x0018, 0xbe0: 0x0018, 0xbe1: 0x0018, 0xbe2: 0x0018, 0xbe3: 0x0018,\n\t0xbe4: 0x0040, 0xbe5: 0x0040, 0xbe6: 0x0040, 0xbe7: 0x0018, 0xbe8: 0x0040, 0xbe9: 0x0040,\n\t0xbea: 0x0340, 0xbeb: 0x0340, 0xbec: 0x0340, 0xbed: 0x0340, 0xbee: 0x0340, 0xbef: 0x000a,\n\t0xbf0: 0x0018, 0xbf1: 0x0018, 0xbf2: 0x0018, 0xbf3: 0x1d69, 0xbf4: 0x1da1, 0xbf5: 0x0018,\n\t0xbf6: 0x1df1, 0xbf7: 0x1e29, 0xbf8: 0x0018, 0xbf9: 0x0018, 0xbfa: 0x0018, 0xbfb: 0x0018,\n\t0xbfc: 0x1e7a, 0xbfd: 0x0018, 0xbfe: 0x079e, 0xbff: 0x0018,\n\t// Block 0x30, offset 0xc00\n\t0xc00: 0x0018, 0xc01: 0x0018, 0xc02: 0x0018, 0xc03: 0x0018, 0xc04: 0x0018, 0xc05: 0x0018,\n\t0xc06: 0x0018, 0xc07: 0x1e92, 0xc08: 0x1eaa, 0xc09: 0x1ec2, 0xc0a: 0x0018, 0xc0b: 0x0018,\n\t0xc0c: 0x0018, 0xc0d: 0x0018, 0xc0e: 0x0018, 0xc0f: 0x0018, 0xc10: 0x0018, 0xc11: 0x0018,\n\t0xc12: 0x0018, 0xc13: 0x0018, 0xc14: 0x0018, 0xc15: 0x0018, 0xc16: 0x0018, 0xc17: 0x1ed9,\n\t0xc18: 0x0018, 0xc19: 0x0018, 0xc1a: 0x0018, 0xc1b: 0x0018, 0xc1c: 0x0018, 0xc1d: 0x0018,\n\t0xc1e: 0x0018, 0xc1f: 0x000a, 0xc20: 0x03c0, 0xc21: 0x0340, 0xc22: 0x0340, 0xc23: 0x0340,\n\t0xc24: 0x03c0, 0xc25: 0x0040, 0xc26: 0x0040, 0xc27: 0x0040, 0xc28: 0x0040, 0xc29: 0x0040,\n\t0xc2a: 0x0340, 0xc2b: 0x0340, 0xc2c: 0x0340, 0xc2d: 0x0340, 0xc2e: 0x0340, 0xc2f: 0x0340,\n\t0xc30: 0x1f41, 0xc31: 0x0f41, 0xc32: 0x0040, 0xc33: 0x0040, 0xc34: 0x1f51, 0xc35: 0x1f61,\n\t0xc36: 0x1f71, 0xc37: 0x1f81, 0xc38: 0x1f91, 0xc39: 0x1fa1, 0xc3a: 0x1fb2, 0xc3b: 0x07bd,\n\t0xc3c: 0x1fc2, 0xc3d: 0x1fd2, 0xc3e: 0x1fe2, 0xc3f: 0x0f71,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x1f41, 0xc41: 0x00c9, 0xc42: 0x0069, 0xc43: 0x0079, 0xc44: 0x1f51, 0xc45: 0x1f61,\n\t0xc46: 0x1f71, 0xc47: 0x1f81, 0xc48: 0x1f91, 0xc49: 0x1fa1, 0xc4a: 0x1fb2, 0xc4b: 0x07d5,\n\t0xc4c: 0x1fc2, 0xc4d: 0x1fd2, 0xc4e: 0x1fe2, 0xc4f: 0x0040, 0xc50: 0x0039, 0xc51: 0x0f09,\n\t0xc52: 0x00d9, 0xc53: 0x0369, 0xc54: 0x0ff9, 0xc55: 0x0249, 0xc56: 0x0f51, 0xc57: 0x0359,\n\t0xc58: 0x0f61, 0xc59: 0x0f71, 0xc5a: 0x0f99, 0xc5b: 0x01d9, 0xc5c: 0x0fa9, 0xc5d: 0x0040,\n\t0xc5e: 0x0040, 0xc5f: 0x0040, 0xc60: 0x0018, 0xc61: 0x0018, 0xc62: 0x0018, 0xc63: 0x0018,\n\t0xc64: 0x0018, 0xc65: 0x0018, 0xc66: 0x0018, 0xc67: 0x0018, 0xc68: 0x1ff1, 0xc69: 0x0018,\n\t0xc6a: 0x0018, 0xc6b: 0x0018, 0xc6c: 0x0018, 0xc6d: 0x0018, 0xc6e: 0x0018, 0xc6f: 0x0018,\n\t0xc70: 0x0018, 0xc71: 0x0018, 0xc72: 0x0018, 0xc73: 0x0018, 0xc74: 0x0018, 0xc75: 0x0018,\n\t0xc76: 0x0018, 0xc77: 0x0018, 0xc78: 0x0018, 0xc79: 0x0018, 0xc7a: 0x0018, 0xc7b: 0x0018,\n\t0xc7c: 0x0018, 0xc7d: 0x0018, 0xc7e: 0x0018, 0xc7f: 0x0018,\n\t// Block 0x32, offset 0xc80\n\t0xc80: 0x07ee, 0xc81: 0x080e, 0xc82: 0x1159, 0xc83: 0x082d, 0xc84: 0x0018, 0xc85: 0x084e,\n\t0xc86: 0x086e, 0xc87: 0x1011, 0xc88: 0x0018, 0xc89: 0x088d, 0xc8a: 0x0f31, 0xc8b: 0x0249,\n\t0xc8c: 0x0249, 0xc8d: 0x0249, 0xc8e: 0x0249, 0xc8f: 0x2009, 0xc90: 0x0f41, 0xc91: 0x0f41,\n\t0xc92: 0x0359, 0xc93: 0x0359, 0xc94: 0x0018, 0xc95: 0x0f71, 0xc96: 0x2021, 0xc97: 0x0018,\n\t0xc98: 0x0018, 0xc99: 0x0f99, 0xc9a: 0x2039, 0xc9b: 0x0269, 0xc9c: 0x0269, 0xc9d: 0x0269,\n\t0xc9e: 0x0018, 0xc9f: 0x0018, 0xca0: 0x2049, 0xca1: 0x08ad, 0xca2: 0x2061, 0xca3: 0x0018,\n\t0xca4: 0x13d1, 0xca5: 0x0018, 0xca6: 0x2079, 0xca7: 0x0018, 0xca8: 0x13d1, 0xca9: 0x0018,\n\t0xcaa: 0x0f51, 0xcab: 0x2091, 0xcac: 0x0ee9, 0xcad: 0x1159, 0xcae: 0x0018, 0xcaf: 0x0f09,\n\t0xcb0: 0x0f09, 0xcb1: 0x1199, 0xcb2: 0x0040, 0xcb3: 0x0f61, 0xcb4: 0x00d9, 0xcb5: 0x20a9,\n\t0xcb6: 0x20c1, 0xcb7: 0x20d9, 0xcb8: 0x20f1, 0xcb9: 0x0f41, 0xcba: 0x0018, 0xcbb: 0x08cd,\n\t0xcbc: 0x2109, 0xcbd: 0x10b1, 0xcbe: 0x10b1, 0xcbf: 0x2109,\n\t// Block 0x33, offset 0xcc0\n\t0xcc0: 0x08ed, 0xcc1: 0x0018, 0xcc2: 0x0018, 0xcc3: 0x0018, 0xcc4: 0x0018, 0xcc5: 0x0ef9,\n\t0xcc6: 0x0ef9, 0xcc7: 0x0f09, 0xcc8: 0x0f41, 0xcc9: 0x0259, 0xcca: 0x0018, 0xccb: 0x0018,\n\t0xccc: 0x0018, 0xccd: 0x0018, 0xcce: 0x0008, 0xccf: 0x0018, 0xcd0: 0x2121, 0xcd1: 0x2151,\n\t0xcd2: 0x2181, 0xcd3: 0x21b9, 0xcd4: 0x21e9, 0xcd5: 0x2219, 0xcd6: 0x2249, 0xcd7: 0x2279,\n\t0xcd8: 0x22a9, 0xcd9: 0x22d9, 0xcda: 0x2309, 0xcdb: 0x2339, 0xcdc: 0x2369, 0xcdd: 0x2399,\n\t0xcde: 0x23c9, 0xcdf: 0x23f9, 0xce0: 0x0f41, 0xce1: 0x2421, 0xce2: 0x0905, 0xce3: 0x2439,\n\t0xce4: 0x1089, 0xce5: 0x2451, 0xce6: 0x0925, 0xce7: 0x2469, 0xce8: 0x2491, 0xce9: 0x0369,\n\t0xcea: 0x24a9, 0xceb: 0x0945, 0xcec: 0x0359, 0xced: 0x1159, 0xcee: 0x0ef9, 0xcef: 0x0f61,\n\t0xcf0: 0x0f41, 0xcf1: 0x2421, 0xcf2: 0x0965, 0xcf3: 0x2439, 0xcf4: 0x1089, 0xcf5: 0x2451,\n\t0xcf6: 0x0985, 0xcf7: 0x2469, 0xcf8: 0x2491, 0xcf9: 0x0369, 0xcfa: 0x24a9, 0xcfb: 0x09a5,\n\t0xcfc: 0x0359, 0xcfd: 0x1159, 0xcfe: 0x0ef9, 0xcff: 0x0f61,\n\t// Block 0x34, offset 0xd00\n\t0xd00: 0x0018, 0xd01: 0x0018, 0xd02: 0x0018, 0xd03: 0x0018, 0xd04: 0x0018, 0xd05: 0x0018,\n\t0xd06: 0x0018, 0xd07: 0x0018, 0xd08: 0x0018, 0xd09: 0x0018, 0xd0a: 0x0018, 0xd0b: 0x0040,\n\t0xd0c: 0x0040, 0xd0d: 0x0040, 0xd0e: 0x0040, 0xd0f: 0x0040, 0xd10: 0x0040, 0xd11: 0x0040,\n\t0xd12: 0x0040, 0xd13: 0x0040, 0xd14: 0x0040, 0xd15: 0x0040, 0xd16: 0x0040, 0xd17: 0x0040,\n\t0xd18: 0x0040, 0xd19: 0x0040, 0xd1a: 0x0040, 0xd1b: 0x0040, 0xd1c: 0x0040, 0xd1d: 0x0040,\n\t0xd1e: 0x0040, 0xd1f: 0x0040, 0xd20: 0x00c9, 0xd21: 0x0069, 0xd22: 0x0079, 0xd23: 0x1f51,\n\t0xd24: 0x1f61, 0xd25: 0x1f71, 0xd26: 0x1f81, 0xd27: 0x1f91, 0xd28: 0x1fa1, 0xd29: 0x2601,\n\t0xd2a: 0x2619, 0xd2b: 0x2631, 0xd2c: 0x2649, 0xd2d: 0x2661, 0xd2e: 0x2679, 0xd2f: 0x2691,\n\t0xd30: 0x26a9, 0xd31: 0x26c1, 0xd32: 0x26d9, 0xd33: 0x26f1, 0xd34: 0x0a06, 0xd35: 0x0a26,\n\t0xd36: 0x0a46, 0xd37: 0x0a66, 0xd38: 0x0a86, 0xd39: 0x0aa6, 0xd3a: 0x0ac6, 0xd3b: 0x0ae6,\n\t0xd3c: 0x0b06, 0xd3d: 0x270a, 0xd3e: 0x2732, 0xd3f: 0x275a,\n\t// Block 0x35, offset 0xd40\n\t0xd40: 0x2782, 0xd41: 0x27aa, 0xd42: 0x27d2, 0xd43: 0x27fa, 0xd44: 0x2822, 0xd45: 0x284a,\n\t0xd46: 0x2872, 0xd47: 0x289a, 0xd48: 0x0040, 0xd49: 0x0040, 0xd4a: 0x0040, 0xd4b: 0x0040,\n\t0xd4c: 0x0040, 0xd4d: 0x0040, 0xd4e: 0x0040, 0xd4f: 0x0040, 0xd50: 0x0040, 0xd51: 0x0040,\n\t0xd52: 0x0040, 0xd53: 0x0040, 0xd54: 0x0040, 0xd55: 0x0040, 0xd56: 0x0040, 0xd57: 0x0040,\n\t0xd58: 0x0040, 0xd59: 0x0040, 0xd5a: 0x0040, 0xd5b: 0x0040, 0xd5c: 0x0b26, 0xd5d: 0x0b46,\n\t0xd5e: 0x0b66, 0xd5f: 0x0b86, 0xd60: 0x0ba6, 0xd61: 0x0bc6, 0xd62: 0x0be6, 0xd63: 0x0c06,\n\t0xd64: 0x0c26, 0xd65: 0x0c46, 0xd66: 0x0c66, 0xd67: 0x0c86, 0xd68: 0x0ca6, 0xd69: 0x0cc6,\n\t0xd6a: 0x0ce6, 0xd6b: 0x0d06, 0xd6c: 0x0d26, 0xd6d: 0x0d46, 0xd6e: 0x0d66, 0xd6f: 0x0d86,\n\t0xd70: 0x0da6, 0xd71: 0x0dc6, 0xd72: 0x0de6, 0xd73: 0x0e06, 0xd74: 0x0e26, 0xd75: 0x0e46,\n\t0xd76: 0x0039, 0xd77: 0x0ee9, 0xd78: 0x1159, 0xd79: 0x0ef9, 0xd7a: 0x0f09, 0xd7b: 0x1199,\n\t0xd7c: 0x0f31, 0xd7d: 0x0249, 0xd7e: 0x0f41, 0xd7f: 0x0259,\n\t// Block 0x36, offset 0xd80\n\t0xd80: 0x0f51, 0xd81: 0x0359, 0xd82: 0x0f61, 0xd83: 0x0f71, 0xd84: 0x00d9, 0xd85: 0x0f99,\n\t0xd86: 0x2039, 0xd87: 0x0269, 0xd88: 0x01d9, 0xd89: 0x0fa9, 0xd8a: 0x0fb9, 0xd8b: 0x1089,\n\t0xd8c: 0x0279, 0xd8d: 0x0369, 0xd8e: 0x0289, 0xd8f: 0x13d1, 0xd90: 0x0039, 0xd91: 0x0ee9,\n\t0xd92: 0x1159, 0xd93: 0x0ef9, 0xd94: 0x0f09, 0xd95: 0x1199, 0xd96: 0x0f31, 0xd97: 0x0249,\n\t0xd98: 0x0f41, 0xd99: 0x0259, 0xd9a: 0x0f51, 0xd9b: 0x0359, 0xd9c: 0x0f61, 0xd9d: 0x0f71,\n\t0xd9e: 0x00d9, 0xd9f: 0x0f99, 0xda0: 0x2039, 0xda1: 0x0269, 0xda2: 0x01d9, 0xda3: 0x0fa9,\n\t0xda4: 0x0fb9, 0xda5: 0x1089, 0xda6: 0x0279, 0xda7: 0x0369, 0xda8: 0x0289, 0xda9: 0x13d1,\n\t0xdaa: 0x1f41, 0xdab: 0x0018, 0xdac: 0x0018, 0xdad: 0x0018, 0xdae: 0x0018, 0xdaf: 0x0018,\n\t0xdb0: 0x0018, 0xdb1: 0x0018, 0xdb2: 0x0018, 0xdb3: 0x0018, 0xdb4: 0x0018, 0xdb5: 0x0018,\n\t0xdb6: 0x0018, 0xdb7: 0x0018, 0xdb8: 0x0018, 0xdb9: 0x0018, 0xdba: 0x0018, 0xdbb: 0x0018,\n\t0xdbc: 0x0018, 0xdbd: 0x0018, 0xdbe: 0x0018, 0xdbf: 0x0018,\n\t// Block 0x37, offset 0xdc0\n\t0xdc0: 0x0008, 0xdc1: 0x0008, 0xdc2: 0x0008, 0xdc3: 0x0008, 0xdc4: 0x0008, 0xdc5: 0x0008,\n\t0xdc6: 0x0008, 0xdc7: 0x0008, 0xdc8: 0x0008, 0xdc9: 0x0008, 0xdca: 0x0008, 0xdcb: 0x0008,\n\t0xdcc: 0x0008, 0xdcd: 0x0008, 0xdce: 0x0008, 0xdcf: 0x0008, 0xdd0: 0x0008, 0xdd1: 0x0008,\n\t0xdd2: 0x0008, 0xdd3: 0x0008, 0xdd4: 0x0008, 0xdd5: 0x0008, 0xdd6: 0x0008, 0xdd7: 0x0008,\n\t0xdd8: 0x0008, 0xdd9: 0x0008, 0xdda: 0x0008, 0xddb: 0x0008, 0xddc: 0x0008, 0xddd: 0x0008,\n\t0xdde: 0x0008, 0xddf: 0x0040, 0xde0: 0xe00d, 0xde1: 0x0008, 0xde2: 0x2971, 0xde3: 0x0ebd,\n\t0xde4: 0x2989, 0xde5: 0x0008, 0xde6: 0x0008, 0xde7: 0xe07d, 0xde8: 0x0008, 0xde9: 0xe01d,\n\t0xdea: 0x0008, 0xdeb: 0xe03d, 0xdec: 0x0008, 0xded: 0x0fe1, 0xdee: 0x1281, 0xdef: 0x0fc9,\n\t0xdf0: 0x1141, 0xdf1: 0x0008, 0xdf2: 0xe00d, 0xdf3: 0x0008, 0xdf4: 0x0008, 0xdf5: 0xe01d,\n\t0xdf6: 0x0008, 0xdf7: 0x0008, 0xdf8: 0x0008, 0xdf9: 0x0008, 0xdfa: 0x0008, 0xdfb: 0x0008,\n\t0xdfc: 0x0259, 0xdfd: 0x1089, 0xdfe: 0x29a1, 0xdff: 0x29b9,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0xe00d, 0xe01: 0x0008, 0xe02: 0xe00d, 0xe03: 0x0008, 0xe04: 0xe00d, 0xe05: 0x0008,\n\t0xe06: 0xe00d, 0xe07: 0x0008, 0xe08: 0xe00d, 0xe09: 0x0008, 0xe0a: 0xe00d, 0xe0b: 0x0008,\n\t0xe0c: 0xe00d, 0xe0d: 0x0008, 0xe0e: 0xe00d, 0xe0f: 0x0008, 0xe10: 0xe00d, 0xe11: 0x0008,\n\t0xe12: 0xe00d, 0xe13: 0x0008, 0xe14: 0xe00d, 0xe15: 0x0008, 0xe16: 0xe00d, 0xe17: 0x0008,\n\t0xe18: 0xe00d, 0xe19: 0x0008, 0xe1a: 0xe00d, 0xe1b: 0x0008, 0xe1c: 0xe00d, 0xe1d: 0x0008,\n\t0xe1e: 0xe00d, 0xe1f: 0x0008, 0xe20: 0xe00d, 0xe21: 0x0008, 0xe22: 0xe00d, 0xe23: 0x0008,\n\t0xe24: 0x0008, 0xe25: 0x0018, 0xe26: 0x0018, 0xe27: 0x0018, 0xe28: 0x0018, 0xe29: 0x0018,\n\t0xe2a: 0x0018, 0xe2b: 0xe03d, 0xe2c: 0x0008, 0xe2d: 0xe01d, 0xe2e: 0x0008, 0xe2f: 0x3308,\n\t0xe30: 0x3308, 0xe31: 0x3308, 0xe32: 0xe00d, 0xe33: 0x0008, 0xe34: 0x0040, 0xe35: 0x0040,\n\t0xe36: 0x0040, 0xe37: 0x0040, 0xe38: 0x0040, 0xe39: 0x0018, 0xe3a: 0x0018, 0xe3b: 0x0018,\n\t0xe3c: 0x0018, 0xe3d: 0x0018, 0xe3e: 0x0018, 0xe3f: 0x0018,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x26fd, 0xe41: 0x271d, 0xe42: 0x273d, 0xe43: 0x275d, 0xe44: 0x277d, 0xe45: 0x279d,\n\t0xe46: 0x27bd, 0xe47: 0x27dd, 0xe48: 0x27fd, 0xe49: 0x281d, 0xe4a: 0x283d, 0xe4b: 0x285d,\n\t0xe4c: 0x287d, 0xe4d: 0x289d, 0xe4e: 0x28bd, 0xe4f: 0x28dd, 0xe50: 0x28fd, 0xe51: 0x291d,\n\t0xe52: 0x293d, 0xe53: 0x295d, 0xe54: 0x297d, 0xe55: 0x299d, 0xe56: 0x0040, 0xe57: 0x0040,\n\t0xe58: 0x0040, 0xe59: 0x0040, 0xe5a: 0x0040, 0xe5b: 0x0040, 0xe5c: 0x0040, 0xe5d: 0x0040,\n\t0xe5e: 0x0040, 0xe5f: 0x0040, 0xe60: 0x0040, 0xe61: 0x0040, 0xe62: 0x0040, 0xe63: 0x0040,\n\t0xe64: 0x0040, 0xe65: 0x0040, 0xe66: 0x0040, 0xe67: 0x0040, 0xe68: 0x0040, 0xe69: 0x0040,\n\t0xe6a: 0x0040, 0xe6b: 0x0040, 0xe6c: 0x0040, 0xe6d: 0x0040, 0xe6e: 0x0040, 0xe6f: 0x0040,\n\t0xe70: 0x0040, 0xe71: 0x0040, 0xe72: 0x0040, 0xe73: 0x0040, 0xe74: 0x0040, 0xe75: 0x0040,\n\t0xe76: 0x0040, 0xe77: 0x0040, 0xe78: 0x0040, 0xe79: 0x0040, 0xe7a: 0x0040, 0xe7b: 0x0040,\n\t0xe7c: 0x0040, 0xe7d: 0x0040, 0xe7e: 0x0040, 0xe7f: 0x0040,\n\t// Block 0x3a, offset 0xe80\n\t0xe80: 0x000a, 0xe81: 0x0018, 0xe82: 0x29d1, 0xe83: 0x0018, 0xe84: 0x0018, 0xe85: 0x0008,\n\t0xe86: 0x0008, 0xe87: 0x0008, 0xe88: 0x0018, 0xe89: 0x0018, 0xe8a: 0x0018, 0xe8b: 0x0018,\n\t0xe8c: 0x0018, 0xe8d: 0x0018, 0xe8e: 0x0018, 0xe8f: 0x0018, 0xe90: 0x0018, 0xe91: 0x0018,\n\t0xe92: 0x0018, 0xe93: 0x0018, 0xe94: 0x0018, 0xe95: 0x0018, 0xe96: 0x0018, 0xe97: 0x0018,\n\t0xe98: 0x0018, 0xe99: 0x0018, 0xe9a: 0x0018, 0xe9b: 0x0018, 0xe9c: 0x0018, 0xe9d: 0x0018,\n\t0xe9e: 0x0018, 0xe9f: 0x0018, 0xea0: 0x0018, 0xea1: 0x0018, 0xea2: 0x0018, 0xea3: 0x0018,\n\t0xea4: 0x0018, 0xea5: 0x0018, 0xea6: 0x0018, 0xea7: 0x0018, 0xea8: 0x0018, 0xea9: 0x0018,\n\t0xeaa: 0x3308, 0xeab: 0x3308, 0xeac: 0x3308, 0xead: 0x3308, 0xeae: 0x3018, 0xeaf: 0x3018,\n\t0xeb0: 0x0018, 0xeb1: 0x0018, 0xeb2: 0x0018, 0xeb3: 0x0018, 0xeb4: 0x0018, 0xeb5: 0x0018,\n\t0xeb6: 0xe125, 0xeb7: 0x0018, 0xeb8: 0x29bd, 0xeb9: 0x29dd, 0xeba: 0x29fd, 0xebb: 0x0018,\n\t0xebc: 0x0008, 0xebd: 0x0018, 0xebe: 0x0018, 0xebf: 0x0018,\n\t// Block 0x3b, offset 0xec0\n\t0xec0: 0x2b3d, 0xec1: 0x2b5d, 0xec2: 0x2b7d, 0xec3: 0x2b9d, 0xec4: 0x2bbd, 0xec5: 0x2bdd,\n\t0xec6: 0x2bdd, 0xec7: 0x2bdd, 0xec8: 0x2bfd, 0xec9: 0x2bfd, 0xeca: 0x2bfd, 0xecb: 0x2bfd,\n\t0xecc: 0x2c1d, 0xecd: 0x2c1d, 0xece: 0x2c1d, 0xecf: 0x2c3d, 0xed0: 0x2c5d, 0xed1: 0x2c5d,\n\t0xed2: 0x2a7d, 0xed3: 0x2a7d, 0xed4: 0x2c5d, 0xed5: 0x2c5d, 0xed6: 0x2c7d, 0xed7: 0x2c7d,\n\t0xed8: 0x2c5d, 0xed9: 0x2c5d, 0xeda: 0x2a7d, 0xedb: 0x2a7d, 0xedc: 0x2c5d, 0xedd: 0x2c5d,\n\t0xede: 0x2c3d, 0xedf: 0x2c3d, 0xee0: 0x2c9d, 0xee1: 0x2c9d, 0xee2: 0x2cbd, 0xee3: 0x2cbd,\n\t0xee4: 0x0040, 0xee5: 0x2cdd, 0xee6: 0x2cfd, 0xee7: 0x2d1d, 0xee8: 0x2d1d, 0xee9: 0x2d3d,\n\t0xeea: 0x2d5d, 0xeeb: 0x2d7d, 0xeec: 0x2d9d, 0xeed: 0x2dbd, 0xeee: 0x2ddd, 0xeef: 0x2dfd,\n\t0xef0: 0x2e1d, 0xef1: 0x2e3d, 0xef2: 0x2e3d, 0xef3: 0x2e5d, 0xef4: 0x2e7d, 0xef5: 0x2e7d,\n\t0xef6: 0x2e9d, 0xef7: 0x2ebd, 0xef8: 0x2e5d, 0xef9: 0x2edd, 0xefa: 0x2efd, 0xefb: 0x2edd,\n\t0xefc: 0x2e5d, 0xefd: 0x2f1d, 0xefe: 0x2f3d, 0xeff: 0x2f5d,\n\t// Block 0x3c, offset 0xf00\n\t0xf00: 0x2f7d, 0xf01: 0x2f9d, 0xf02: 0x2cfd, 0xf03: 0x2cdd, 0xf04: 0x2fbd, 0xf05: 0x2fdd,\n\t0xf06: 0x2ffd, 0xf07: 0x301d, 0xf08: 0x303d, 0xf09: 0x305d, 0xf0a: 0x307d, 0xf0b: 0x309d,\n\t0xf0c: 0x30bd, 0xf0d: 0x30dd, 0xf0e: 0x30fd, 0xf0f: 0x0040, 0xf10: 0x0018, 0xf11: 0x0018,\n\t0xf12: 0x311d, 0xf13: 0x313d, 0xf14: 0x315d, 0xf15: 0x317d, 0xf16: 0x319d, 0xf17: 0x31bd,\n\t0xf18: 0x31dd, 0xf19: 0x31fd, 0xf1a: 0x321d, 0xf1b: 0x323d, 0xf1c: 0x315d, 0xf1d: 0x325d,\n\t0xf1e: 0x327d, 0xf1f: 0x329d, 0xf20: 0x0008, 0xf21: 0x0008, 0xf22: 0x0008, 0xf23: 0x0008,\n\t0xf24: 0x0008, 0xf25: 0x0008, 0xf26: 0x0008, 0xf27: 0x0008, 0xf28: 0x0008, 0xf29: 0x0008,\n\t0xf2a: 0x0008, 0xf2b: 0x0008, 0xf2c: 0x0008, 0xf2d: 0x0008, 0xf2e: 0x0008, 0xf2f: 0x0008,\n\t0xf30: 0x0008, 0xf31: 0x0008, 0xf32: 0x0008, 0xf33: 0x0008, 0xf34: 0x0008, 0xf35: 0x0008,\n\t0xf36: 0x0008, 0xf37: 0x0008, 0xf38: 0x0008, 0xf39: 0x0008, 0xf3a: 0x0008, 0xf3b: 0x0040,\n\t0xf3c: 0x0040, 0xf3d: 0x0040, 0xf3e: 0x0040, 0xf3f: 0x0040,\n\t// Block 0x3d, offset 0xf40\n\t0xf40: 0x36a2, 0xf41: 0x36d2, 0xf42: 0x3702, 0xf43: 0x3732, 0xf44: 0x32bd, 0xf45: 0x32dd,\n\t0xf46: 0x32fd, 0xf47: 0x331d, 0xf48: 0x0018, 0xf49: 0x0018, 0xf4a: 0x0018, 0xf4b: 0x0018,\n\t0xf4c: 0x0018, 0xf4d: 0x0018, 0xf4e: 0x0018, 0xf4f: 0x0018, 0xf50: 0x333d, 0xf51: 0x3761,\n\t0xf52: 0x3779, 0xf53: 0x3791, 0xf54: 0x37a9, 0xf55: 0x37c1, 0xf56: 0x37d9, 0xf57: 0x37f1,\n\t0xf58: 0x3809, 0xf59: 0x3821, 0xf5a: 0x3839, 0xf5b: 0x3851, 0xf5c: 0x3869, 0xf5d: 0x3881,\n\t0xf5e: 0x3899, 0xf5f: 0x38b1, 0xf60: 0x335d, 0xf61: 0x337d, 0xf62: 0x339d, 0xf63: 0x33bd,\n\t0xf64: 0x33dd, 0xf65: 0x33dd, 0xf66: 0x33fd, 0xf67: 0x341d, 0xf68: 0x343d, 0xf69: 0x345d,\n\t0xf6a: 0x347d, 0xf6b: 0x349d, 0xf6c: 0x34bd, 0xf6d: 0x34dd, 0xf6e: 0x34fd, 0xf6f: 0x351d,\n\t0xf70: 0x353d, 0xf71: 0x355d, 0xf72: 0x357d, 0xf73: 0x359d, 0xf74: 0x35bd, 0xf75: 0x35dd,\n\t0xf76: 0x35fd, 0xf77: 0x361d, 0xf78: 0x363d, 0xf79: 0x365d, 0xf7a: 0x367d, 0xf7b: 0x369d,\n\t0xf7c: 0x38c9, 0xf7d: 0x3901, 0xf7e: 0x36bd, 0xf7f: 0x0018,\n\t// Block 0x3e, offset 0xf80\n\t0xf80: 0x36dd, 0xf81: 0x36fd, 0xf82: 0x371d, 0xf83: 0x373d, 0xf84: 0x375d, 0xf85: 0x377d,\n\t0xf86: 0x379d, 0xf87: 0x37bd, 0xf88: 0x37dd, 0xf89: 0x37fd, 0xf8a: 0x381d, 0xf8b: 0x383d,\n\t0xf8c: 0x385d, 0xf8d: 0x387d, 0xf8e: 0x389d, 0xf8f: 0x38bd, 0xf90: 0x38dd, 0xf91: 0x38fd,\n\t0xf92: 0x391d, 0xf93: 0x393d, 0xf94: 0x395d, 0xf95: 0x397d, 0xf96: 0x399d, 0xf97: 0x39bd,\n\t0xf98: 0x39dd, 0xf99: 0x39fd, 0xf9a: 0x3a1d, 0xf9b: 0x3a3d, 0xf9c: 0x3a5d, 0xf9d: 0x3a7d,\n\t0xf9e: 0x3a9d, 0xf9f: 0x3abd, 0xfa0: 0x3add, 0xfa1: 0x3afd, 0xfa2: 0x3b1d, 0xfa3: 0x3b3d,\n\t0xfa4: 0x3b5d, 0xfa5: 0x3b7d, 0xfa6: 0x127d, 0xfa7: 0x3b9d, 0xfa8: 0x3bbd, 0xfa9: 0x3bdd,\n\t0xfaa: 0x3bfd, 0xfab: 0x3c1d, 0xfac: 0x3c3d, 0xfad: 0x3c5d, 0xfae: 0x239d, 0xfaf: 0x3c7d,\n\t0xfb0: 0x3c9d, 0xfb1: 0x3939, 0xfb2: 0x3951, 0xfb3: 0x3969, 0xfb4: 0x3981, 0xfb5: 0x3999,\n\t0xfb6: 0x39b1, 0xfb7: 0x39c9, 0xfb8: 0x39e1, 0xfb9: 0x39f9, 0xfba: 0x3a11, 0xfbb: 0x3a29,\n\t0xfbc: 0x3a41, 0xfbd: 0x3a59, 0xfbe: 0x3a71, 0xfbf: 0x3a89,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc0: 0x3aa1, 0xfc1: 0x3ac9, 0xfc2: 0x3af1, 0xfc3: 0x3b19, 0xfc4: 0x3b41, 0xfc5: 0x3b69,\n\t0xfc6: 0x3b91, 0xfc7: 0x3bb9, 0xfc8: 0x3be1, 0xfc9: 0x3c09, 0xfca: 0x3c39, 0xfcb: 0x3c69,\n\t0xfcc: 0x3c99, 0xfcd: 0x3cbd, 0xfce: 0x3cb1, 0xfcf: 0x3cdd, 0xfd0: 0x3cfd, 0xfd1: 0x3d15,\n\t0xfd2: 0x3d2d, 0xfd3: 0x3d45, 0xfd4: 0x3d5d, 0xfd5: 0x3d5d, 0xfd6: 0x3d45, 0xfd7: 0x3d75,\n\t0xfd8: 0x07bd, 0xfd9: 0x3d8d, 0xfda: 0x3da5, 0xfdb: 0x3dbd, 0xfdc: 0x3dd5, 0xfdd: 0x3ded,\n\t0xfde: 0x3e05, 0xfdf: 0x3e1d, 0xfe0: 0x3e35, 0xfe1: 0x3e4d, 0xfe2: 0x3e65, 0xfe3: 0x3e7d,\n\t0xfe4: 0x3e95, 0xfe5: 0x3e95, 0xfe6: 0x3ead, 0xfe7: 0x3ead, 0xfe8: 0x3ec5, 0xfe9: 0x3ec5,\n\t0xfea: 0x3edd, 0xfeb: 0x3ef5, 0xfec: 0x3f0d, 0xfed: 0x3f25, 0xfee: 0x3f3d, 0xfef: 0x3f3d,\n\t0xff0: 0x3f55, 0xff1: 0x3f55, 0xff2: 0x3f55, 0xff3: 0x3f6d, 0xff4: 0x3f85, 0xff5: 0x3f9d,\n\t0xff6: 0x3fb5, 0xff7: 0x3f9d, 0xff8: 0x3fcd, 0xff9: 0x3fe5, 0xffa: 0x3f6d, 0xffb: 0x3ffd,\n\t0xffc: 0x4015, 0xffd: 0x4015, 0xffe: 0x4015, 0xfff: 0x0040,\n\t// Block 0x40, offset 0x1000\n\t0x1000: 0x3cc9, 0x1001: 0x3d31, 0x1002: 0x3d99, 0x1003: 0x3e01, 0x1004: 0x3e51, 0x1005: 0x3eb9,\n\t0x1006: 0x3f09, 0x1007: 0x3f59, 0x1008: 0x3fd9, 0x1009: 0x4041, 0x100a: 0x4091, 0x100b: 0x40e1,\n\t0x100c: 0x4131, 0x100d: 0x4199, 0x100e: 0x4201, 0x100f: 0x4251, 0x1010: 0x42a1, 0x1011: 0x42d9,\n\t0x1012: 0x4329, 0x1013: 0x4391, 0x1014: 0x43f9, 0x1015: 0x4431, 0x1016: 0x44b1, 0x1017: 0x4549,\n\t0x1018: 0x45c9, 0x1019: 0x4619, 0x101a: 0x4699, 0x101b: 0x4719, 0x101c: 0x4781, 0x101d: 0x47d1,\n\t0x101e: 0x4821, 0x101f: 0x4871, 0x1020: 0x48d9, 0x1021: 0x4959, 0x1022: 0x49c1, 0x1023: 0x4a11,\n\t0x1024: 0x4a61, 0x1025: 0x4ab1, 0x1026: 0x4ae9, 0x1027: 0x4b21, 0x1028: 0x4b59, 0x1029: 0x4b91,\n\t0x102a: 0x4be1, 0x102b: 0x4c31, 0x102c: 0x4cb1, 0x102d: 0x4d01, 0x102e: 0x4d69, 0x102f: 0x4de9,\n\t0x1030: 0x4e39, 0x1031: 0x4e71, 0x1032: 0x4ea9, 0x1033: 0x4f29, 0x1034: 0x4f91, 0x1035: 0x5011,\n\t0x1036: 0x5061, 0x1037: 0x50e1, 0x1038: 0x5119, 0x1039: 0x5169, 0x103a: 0x51b9, 0x103b: 0x5209,\n\t0x103c: 0x5259, 0x103d: 0x52a9, 0x103e: 0x5311, 0x103f: 0x5361,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x5399, 0x1041: 0x53e9, 0x1042: 0x5439, 0x1043: 0x5489, 0x1044: 0x54f1, 0x1045: 0x5541,\n\t0x1046: 0x5591, 0x1047: 0x55e1, 0x1048: 0x5661, 0x1049: 0x56c9, 0x104a: 0x5701, 0x104b: 0x5781,\n\t0x104c: 0x57b9, 0x104d: 0x5821, 0x104e: 0x5889, 0x104f: 0x58d9, 0x1050: 0x5929, 0x1051: 0x5979,\n\t0x1052: 0x59e1, 0x1053: 0x5a19, 0x1054: 0x5a69, 0x1055: 0x5ad1, 0x1056: 0x5b09, 0x1057: 0x5b89,\n\t0x1058: 0x5bd9, 0x1059: 0x5c01, 0x105a: 0x5c29, 0x105b: 0x5c51, 0x105c: 0x5c79, 0x105d: 0x5ca1,\n\t0x105e: 0x5cc9, 0x105f: 0x5cf1, 0x1060: 0x5d19, 0x1061: 0x5d41, 0x1062: 0x5d69, 0x1063: 0x5d99,\n\t0x1064: 0x5dc9, 0x1065: 0x5df9, 0x1066: 0x5e29, 0x1067: 0x5e59, 0x1068: 0x5e89, 0x1069: 0x5eb9,\n\t0x106a: 0x5ee9, 0x106b: 0x5f19, 0x106c: 0x5f49, 0x106d: 0x5f79, 0x106e: 0x5fa9, 0x106f: 0x5fd9,\n\t0x1070: 0x6009, 0x1071: 0x402d, 0x1072: 0x6039, 0x1073: 0x6051, 0x1074: 0x404d, 0x1075: 0x6069,\n\t0x1076: 0x6081, 0x1077: 0x6099, 0x1078: 0x406d, 0x1079: 0x406d, 0x107a: 0x60b1, 0x107b: 0x60c9,\n\t0x107c: 0x6101, 0x107d: 0x6139, 0x107e: 0x6171, 0x107f: 0x61a9,\n\t// Block 0x42, offset 0x1080\n\t0x1080: 0x6211, 0x1081: 0x6229, 0x1082: 0x408d, 0x1083: 0x6241, 0x1084: 0x6259, 0x1085: 0x6271,\n\t0x1086: 0x6289, 0x1087: 0x62a1, 0x1088: 0x40ad, 0x1089: 0x62b9, 0x108a: 0x62e1, 0x108b: 0x62f9,\n\t0x108c: 0x40cd, 0x108d: 0x40cd, 0x108e: 0x6311, 0x108f: 0x6329, 0x1090: 0x6341, 0x1091: 0x40ed,\n\t0x1092: 0x410d, 0x1093: 0x412d, 0x1094: 0x414d, 0x1095: 0x416d, 0x1096: 0x6359, 0x1097: 0x6371,\n\t0x1098: 0x6389, 0x1099: 0x63a1, 0x109a: 0x63b9, 0x109b: 0x418d, 0x109c: 0x63d1, 0x109d: 0x63e9,\n\t0x109e: 0x6401, 0x109f: 0x41ad, 0x10a0: 0x41cd, 0x10a1: 0x6419, 0x10a2: 0x41ed, 0x10a3: 0x420d,\n\t0x10a4: 0x422d, 0x10a5: 0x6431, 0x10a6: 0x424d, 0x10a7: 0x6449, 0x10a8: 0x6479, 0x10a9: 0x6211,\n\t0x10aa: 0x426d, 0x10ab: 0x428d, 0x10ac: 0x42ad, 0x10ad: 0x42cd, 0x10ae: 0x64b1, 0x10af: 0x64f1,\n\t0x10b0: 0x6539, 0x10b1: 0x6551, 0x10b2: 0x42ed, 0x10b3: 0x6569, 0x10b4: 0x6581, 0x10b5: 0x6599,\n\t0x10b6: 0x430d, 0x10b7: 0x65b1, 0x10b8: 0x65c9, 0x10b9: 0x65b1, 0x10ba: 0x65e1, 0x10bb: 0x65f9,\n\t0x10bc: 0x432d, 0x10bd: 0x6611, 0x10be: 0x6629, 0x10bf: 0x6611,\n\t// Block 0x43, offset 0x10c0\n\t0x10c0: 0x434d, 0x10c1: 0x436d, 0x10c2: 0x0040, 0x10c3: 0x6641, 0x10c4: 0x6659, 0x10c5: 0x6671,\n\t0x10c6: 0x6689, 0x10c7: 0x0040, 0x10c8: 0x66c1, 0x10c9: 0x66d9, 0x10ca: 0x66f1, 0x10cb: 0x6709,\n\t0x10cc: 0x6721, 0x10cd: 0x6739, 0x10ce: 0x6401, 0x10cf: 0x6751, 0x10d0: 0x6769, 0x10d1: 0x6781,\n\t0x10d2: 0x438d, 0x10d3: 0x6799, 0x10d4: 0x6289, 0x10d5: 0x43ad, 0x10d6: 0x43cd, 0x10d7: 0x67b1,\n\t0x10d8: 0x0040, 0x10d9: 0x43ed, 0x10da: 0x67c9, 0x10db: 0x67e1, 0x10dc: 0x67f9, 0x10dd: 0x6811,\n\t0x10de: 0x6829, 0x10df: 0x6859, 0x10e0: 0x6889, 0x10e1: 0x68b1, 0x10e2: 0x68d9, 0x10e3: 0x6901,\n\t0x10e4: 0x6929, 0x10e5: 0x6951, 0x10e6: 0x6979, 0x10e7: 0x69a1, 0x10e8: 0x69c9, 0x10e9: 0x69f1,\n\t0x10ea: 0x6a21, 0x10eb: 0x6a51, 0x10ec: 0x6a81, 0x10ed: 0x6ab1, 0x10ee: 0x6ae1, 0x10ef: 0x6b11,\n\t0x10f0: 0x6b41, 0x10f1: 0x6b71, 0x10f2: 0x6ba1, 0x10f3: 0x6bd1, 0x10f4: 0x6c01, 0x10f5: 0x6c31,\n\t0x10f6: 0x6c61, 0x10f7: 0x6c91, 0x10f8: 0x6cc1, 0x10f9: 0x6cf1, 0x10fa: 0x6d21, 0x10fb: 0x6d51,\n\t0x10fc: 0x6d81, 0x10fd: 0x6db1, 0x10fe: 0x6de1, 0x10ff: 0x440d,\n\t// Block 0x44, offset 0x1100\n\t0x1100: 0xe00d, 0x1101: 0x0008, 0x1102: 0xe00d, 0x1103: 0x0008, 0x1104: 0xe00d, 0x1105: 0x0008,\n\t0x1106: 0xe00d, 0x1107: 0x0008, 0x1108: 0xe00d, 0x1109: 0x0008, 0x110a: 0xe00d, 0x110b: 0x0008,\n\t0x110c: 0xe00d, 0x110d: 0x0008, 0x110e: 0xe00d, 0x110f: 0x0008, 0x1110: 0xe00d, 0x1111: 0x0008,\n\t0x1112: 0xe00d, 0x1113: 0x0008, 0x1114: 0xe00d, 0x1115: 0x0008, 0x1116: 0xe00d, 0x1117: 0x0008,\n\t0x1118: 0xe00d, 0x1119: 0x0008, 0x111a: 0xe00d, 0x111b: 0x0008, 0x111c: 0xe00d, 0x111d: 0x0008,\n\t0x111e: 0xe00d, 0x111f: 0x0008, 0x1120: 0xe00d, 0x1121: 0x0008, 0x1122: 0xe00d, 0x1123: 0x0008,\n\t0x1124: 0xe00d, 0x1125: 0x0008, 0x1126: 0xe00d, 0x1127: 0x0008, 0x1128: 0xe00d, 0x1129: 0x0008,\n\t0x112a: 0xe00d, 0x112b: 0x0008, 0x112c: 0xe00d, 0x112d: 0x0008, 0x112e: 0x0008, 0x112f: 0x3308,\n\t0x1130: 0x3318, 0x1131: 0x3318, 0x1132: 0x3318, 0x1133: 0x0018, 0x1134: 0x3308, 0x1135: 0x3308,\n\t0x1136: 0x3308, 0x1137: 0x3308, 0x1138: 0x3308, 0x1139: 0x3308, 0x113a: 0x3308, 0x113b: 0x3308,\n\t0x113c: 0x3308, 0x113d: 0x3308, 0x113e: 0x0018, 0x113f: 0x0008,\n\t// Block 0x45, offset 0x1140\n\t0x1140: 0xe00d, 0x1141: 0x0008, 0x1142: 0xe00d, 0x1143: 0x0008, 0x1144: 0xe00d, 0x1145: 0x0008,\n\t0x1146: 0xe00d, 0x1147: 0x0008, 0x1148: 0xe00d, 0x1149: 0x0008, 0x114a: 0xe00d, 0x114b: 0x0008,\n\t0x114c: 0xe00d, 0x114d: 0x0008, 0x114e: 0xe00d, 0x114f: 0x0008, 0x1150: 0xe00d, 0x1151: 0x0008,\n\t0x1152: 0xe00d, 0x1153: 0x0008, 0x1154: 0xe00d, 0x1155: 0x0008, 0x1156: 0xe00d, 0x1157: 0x0008,\n\t0x1158: 0xe00d, 0x1159: 0x0008, 0x115a: 0xe00d, 0x115b: 0x0008, 0x115c: 0x0ea1, 0x115d: 0x6e11,\n\t0x115e: 0x3308, 0x115f: 0x3308, 0x1160: 0x0008, 0x1161: 0x0008, 0x1162: 0x0008, 0x1163: 0x0008,\n\t0x1164: 0x0008, 0x1165: 0x0008, 0x1166: 0x0008, 0x1167: 0x0008, 0x1168: 0x0008, 0x1169: 0x0008,\n\t0x116a: 0x0008, 0x116b: 0x0008, 0x116c: 0x0008, 0x116d: 0x0008, 0x116e: 0x0008, 0x116f: 0x0008,\n\t0x1170: 0x0008, 0x1171: 0x0008, 0x1172: 0x0008, 0x1173: 0x0008, 0x1174: 0x0008, 0x1175: 0x0008,\n\t0x1176: 0x0008, 0x1177: 0x0008, 0x1178: 0x0008, 0x1179: 0x0008, 0x117a: 0x0008, 0x117b: 0x0008,\n\t0x117c: 0x0008, 0x117d: 0x0008, 0x117e: 0x0008, 0x117f: 0x0008,\n\t// Block 0x46, offset 0x1180\n\t0x1180: 0x0018, 0x1181: 0x0018, 0x1182: 0x0018, 0x1183: 0x0018, 0x1184: 0x0018, 0x1185: 0x0018,\n\t0x1186: 0x0018, 0x1187: 0x0018, 0x1188: 0x0018, 0x1189: 0x0018, 0x118a: 0x0018, 0x118b: 0x0018,\n\t0x118c: 0x0018, 0x118d: 0x0018, 0x118e: 0x0018, 0x118f: 0x0018, 0x1190: 0x0018, 0x1191: 0x0018,\n\t0x1192: 0x0018, 0x1193: 0x0018, 0x1194: 0x0018, 0x1195: 0x0018, 0x1196: 0x0018, 0x1197: 0x0008,\n\t0x1198: 0x0008, 0x1199: 0x0008, 0x119a: 0x0008, 0x119b: 0x0008, 0x119c: 0x0008, 0x119d: 0x0008,\n\t0x119e: 0x0008, 0x119f: 0x0008, 0x11a0: 0x0018, 0x11a1: 0x0018, 0x11a2: 0xe00d, 0x11a3: 0x0008,\n\t0x11a4: 0xe00d, 0x11a5: 0x0008, 0x11a6: 0xe00d, 0x11a7: 0x0008, 0x11a8: 0xe00d, 0x11a9: 0x0008,\n\t0x11aa: 0xe00d, 0x11ab: 0x0008, 0x11ac: 0xe00d, 0x11ad: 0x0008, 0x11ae: 0xe00d, 0x11af: 0x0008,\n\t0x11b0: 0x0008, 0x11b1: 0x0008, 0x11b2: 0xe00d, 0x11b3: 0x0008, 0x11b4: 0xe00d, 0x11b5: 0x0008,\n\t0x11b6: 0xe00d, 0x11b7: 0x0008, 0x11b8: 0xe00d, 0x11b9: 0x0008, 0x11ba: 0xe00d, 0x11bb: 0x0008,\n\t0x11bc: 0xe00d, 0x11bd: 0x0008, 0x11be: 0xe00d, 0x11bf: 0x0008,\n\t// Block 0x47, offset 0x11c0\n\t0x11c0: 0xe00d, 0x11c1: 0x0008, 0x11c2: 0xe00d, 0x11c3: 0x0008, 0x11c4: 0xe00d, 0x11c5: 0x0008,\n\t0x11c6: 0xe00d, 0x11c7: 0x0008, 0x11c8: 0xe00d, 0x11c9: 0x0008, 0x11ca: 0xe00d, 0x11cb: 0x0008,\n\t0x11cc: 0xe00d, 0x11cd: 0x0008, 0x11ce: 0xe00d, 0x11cf: 0x0008, 0x11d0: 0xe00d, 0x11d1: 0x0008,\n\t0x11d2: 0xe00d, 0x11d3: 0x0008, 0x11d4: 0xe00d, 0x11d5: 0x0008, 0x11d6: 0xe00d, 0x11d7: 0x0008,\n\t0x11d8: 0xe00d, 0x11d9: 0x0008, 0x11da: 0xe00d, 0x11db: 0x0008, 0x11dc: 0xe00d, 0x11dd: 0x0008,\n\t0x11de: 0xe00d, 0x11df: 0x0008, 0x11e0: 0xe00d, 0x11e1: 0x0008, 0x11e2: 0xe00d, 0x11e3: 0x0008,\n\t0x11e4: 0xe00d, 0x11e5: 0x0008, 0x11e6: 0xe00d, 0x11e7: 0x0008, 0x11e8: 0xe00d, 0x11e9: 0x0008,\n\t0x11ea: 0xe00d, 0x11eb: 0x0008, 0x11ec: 0xe00d, 0x11ed: 0x0008, 0x11ee: 0xe00d, 0x11ef: 0x0008,\n\t0x11f0: 0xe0fd, 0x11f1: 0x0008, 0x11f2: 0x0008, 0x11f3: 0x0008, 0x11f4: 0x0008, 0x11f5: 0x0008,\n\t0x11f6: 0x0008, 0x11f7: 0x0008, 0x11f8: 0x0008, 0x11f9: 0xe01d, 0x11fa: 0x0008, 0x11fb: 0xe03d,\n\t0x11fc: 0x0008, 0x11fd: 0x442d, 0x11fe: 0xe00d, 0x11ff: 0x0008,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0xe00d, 0x1201: 0x0008, 0x1202: 0xe00d, 0x1203: 0x0008, 0x1204: 0xe00d, 0x1205: 0x0008,\n\t0x1206: 0xe00d, 0x1207: 0x0008, 0x1208: 0x0008, 0x1209: 0x0018, 0x120a: 0x0018, 0x120b: 0xe03d,\n\t0x120c: 0x0008, 0x120d: 0x11d9, 0x120e: 0x0008, 0x120f: 0x0008, 0x1210: 0xe00d, 0x1211: 0x0008,\n\t0x1212: 0xe00d, 0x1213: 0x0008, 0x1214: 0x0008, 0x1215: 0x0008, 0x1216: 0xe00d, 0x1217: 0x0008,\n\t0x1218: 0xe00d, 0x1219: 0x0008, 0x121a: 0xe00d, 0x121b: 0x0008, 0x121c: 0xe00d, 0x121d: 0x0008,\n\t0x121e: 0xe00d, 0x121f: 0x0008, 0x1220: 0xe00d, 0x1221: 0x0008, 0x1222: 0xe00d, 0x1223: 0x0008,\n\t0x1224: 0xe00d, 0x1225: 0x0008, 0x1226: 0xe00d, 0x1227: 0x0008, 0x1228: 0xe00d, 0x1229: 0x0008,\n\t0x122a: 0x6e29, 0x122b: 0x1029, 0x122c: 0x11c1, 0x122d: 0x6e41, 0x122e: 0x1221, 0x122f: 0x0040,\n\t0x1230: 0x6e59, 0x1231: 0x6e71, 0x1232: 0x1239, 0x1233: 0x444d, 0x1234: 0xe00d, 0x1235: 0x0008,\n\t0x1236: 0xe00d, 0x1237: 0x0008, 0x1238: 0x0040, 0x1239: 0x0040, 0x123a: 0x0040, 0x123b: 0x0040,\n\t0x123c: 0x0040, 0x123d: 0x0040, 0x123e: 0x0040, 0x123f: 0x0040,\n\t// Block 0x49, offset 0x1240\n\t0x1240: 0x64d5, 0x1241: 0x64f5, 0x1242: 0x6515, 0x1243: 0x6535, 0x1244: 0x6555, 0x1245: 0x6575,\n\t0x1246: 0x6595, 0x1247: 0x65b5, 0x1248: 0x65d5, 0x1249: 0x65f5, 0x124a: 0x6615, 0x124b: 0x6635,\n\t0x124c: 0x6655, 0x124d: 0x6675, 0x124e: 0x0008, 0x124f: 0x0008, 0x1250: 0x6695, 0x1251: 0x0008,\n\t0x1252: 0x66b5, 0x1253: 0x0008, 0x1254: 0x0008, 0x1255: 0x66d5, 0x1256: 0x66f5, 0x1257: 0x6715,\n\t0x1258: 0x6735, 0x1259: 0x6755, 0x125a: 0x6775, 0x125b: 0x6795, 0x125c: 0x67b5, 0x125d: 0x67d5,\n\t0x125e: 0x67f5, 0x125f: 0x0008, 0x1260: 0x6815, 0x1261: 0x0008, 0x1262: 0x6835, 0x1263: 0x0008,\n\t0x1264: 0x0008, 0x1265: 0x6855, 0x1266: 0x6875, 0x1267: 0x0008, 0x1268: 0x0008, 0x1269: 0x0008,\n\t0x126a: 0x6895, 0x126b: 0x68b5, 0x126c: 0x68d5, 0x126d: 0x68f5, 0x126e: 0x6915, 0x126f: 0x6935,\n\t0x1270: 0x6955, 0x1271: 0x6975, 0x1272: 0x6995, 0x1273: 0x69b5, 0x1274: 0x69d5, 0x1275: 0x69f5,\n\t0x1276: 0x6a15, 0x1277: 0x6a35, 0x1278: 0x6a55, 0x1279: 0x6a75, 0x127a: 0x6a95, 0x127b: 0x6ab5,\n\t0x127c: 0x6ad5, 0x127d: 0x6af5, 0x127e: 0x6b15, 0x127f: 0x6b35,\n\t// Block 0x4a, offset 0x1280\n\t0x1280: 0x7a95, 0x1281: 0x7ab5, 0x1282: 0x7ad5, 0x1283: 0x7af5, 0x1284: 0x7b15, 0x1285: 0x7b35,\n\t0x1286: 0x7b55, 0x1287: 0x7b75, 0x1288: 0x7b95, 0x1289: 0x7bb5, 0x128a: 0x7bd5, 0x128b: 0x7bf5,\n\t0x128c: 0x7c15, 0x128d: 0x7c35, 0x128e: 0x7c55, 0x128f: 0x6ec9, 0x1290: 0x6ef1, 0x1291: 0x6f19,\n\t0x1292: 0x7c75, 0x1293: 0x7c95, 0x1294: 0x7cb5, 0x1295: 0x6f41, 0x1296: 0x6f69, 0x1297: 0x6f91,\n\t0x1298: 0x7cd5, 0x1299: 0x7cf5, 0x129a: 0x0040, 0x129b: 0x0040, 0x129c: 0x0040, 0x129d: 0x0040,\n\t0x129e: 0x0040, 0x129f: 0x0040, 0x12a0: 0x0040, 0x12a1: 0x0040, 0x12a2: 0x0040, 0x12a3: 0x0040,\n\t0x12a4: 0x0040, 0x12a5: 0x0040, 0x12a6: 0x0040, 0x12a7: 0x0040, 0x12a8: 0x0040, 0x12a9: 0x0040,\n\t0x12aa: 0x0040, 0x12ab: 0x0040, 0x12ac: 0x0040, 0x12ad: 0x0040, 0x12ae: 0x0040, 0x12af: 0x0040,\n\t0x12b0: 0x0040, 0x12b1: 0x0040, 0x12b2: 0x0040, 0x12b3: 0x0040, 0x12b4: 0x0040, 0x12b5: 0x0040,\n\t0x12b6: 0x0040, 0x12b7: 0x0040, 0x12b8: 0x0040, 0x12b9: 0x0040, 0x12ba: 0x0040, 0x12bb: 0x0040,\n\t0x12bc: 0x0040, 0x12bd: 0x0040, 0x12be: 0x0040, 0x12bf: 0x0040,\n\t// Block 0x4b, offset 0x12c0\n\t0x12c0: 0x6fb9, 0x12c1: 0x6fd1, 0x12c2: 0x6fe9, 0x12c3: 0x7d15, 0x12c4: 0x7d35, 0x12c5: 0x7001,\n\t0x12c6: 0x7001, 0x12c7: 0x0040, 0x12c8: 0x0040, 0x12c9: 0x0040, 0x12ca: 0x0040, 0x12cb: 0x0040,\n\t0x12cc: 0x0040, 0x12cd: 0x0040, 0x12ce: 0x0040, 0x12cf: 0x0040, 0x12d0: 0x0040, 0x12d1: 0x0040,\n\t0x12d2: 0x0040, 0x12d3: 0x7019, 0x12d4: 0x7041, 0x12d5: 0x7069, 0x12d6: 0x7091, 0x12d7: 0x70b9,\n\t0x12d8: 0x0040, 0x12d9: 0x0040, 0x12da: 0x0040, 0x12db: 0x0040, 0x12dc: 0x0040, 0x12dd: 0x70e1,\n\t0x12de: 0x3308, 0x12df: 0x7109, 0x12e0: 0x7131, 0x12e1: 0x20a9, 0x12e2: 0x20f1, 0x12e3: 0x7149,\n\t0x12e4: 0x7161, 0x12e5: 0x7179, 0x12e6: 0x7191, 0x12e7: 0x71a9, 0x12e8: 0x71c1, 0x12e9: 0x1fb2,\n\t0x12ea: 0x71d9, 0x12eb: 0x7201, 0x12ec: 0x7229, 0x12ed: 0x7261, 0x12ee: 0x7299, 0x12ef: 0x72c1,\n\t0x12f0: 0x72e9, 0x12f1: 0x7311, 0x12f2: 0x7339, 0x12f3: 0x7361, 0x12f4: 0x7389, 0x12f5: 0x73b1,\n\t0x12f6: 0x73d9, 0x12f7: 0x0040, 0x12f8: 0x7401, 0x12f9: 0x7429, 0x12fa: 0x7451, 0x12fb: 0x7479,\n\t0x12fc: 0x74a1, 0x12fd: 0x0040, 0x12fe: 0x74c9, 0x12ff: 0x0040,\n\t// Block 0x4c, offset 0x1300\n\t0x1300: 0x74f1, 0x1301: 0x7519, 0x1302: 0x0040, 0x1303: 0x7541, 0x1304: 0x7569, 0x1305: 0x0040,\n\t0x1306: 0x7591, 0x1307: 0x75b9, 0x1308: 0x75e1, 0x1309: 0x7609, 0x130a: 0x7631, 0x130b: 0x7659,\n\t0x130c: 0x7681, 0x130d: 0x76a9, 0x130e: 0x76d1, 0x130f: 0x76f9, 0x1310: 0x7721, 0x1311: 0x7721,\n\t0x1312: 0x7739, 0x1313: 0x7739, 0x1314: 0x7739, 0x1315: 0x7739, 0x1316: 0x7751, 0x1317: 0x7751,\n\t0x1318: 0x7751, 0x1319: 0x7751, 0x131a: 0x7769, 0x131b: 0x7769, 0x131c: 0x7769, 0x131d: 0x7769,\n\t0x131e: 0x7781, 0x131f: 0x7781, 0x1320: 0x7781, 0x1321: 0x7781, 0x1322: 0x7799, 0x1323: 0x7799,\n\t0x1324: 0x7799, 0x1325: 0x7799, 0x1326: 0x77b1, 0x1327: 0x77b1, 0x1328: 0x77b1, 0x1329: 0x77b1,\n\t0x132a: 0x77c9, 0x132b: 0x77c9, 0x132c: 0x77c9, 0x132d: 0x77c9, 0x132e: 0x77e1, 0x132f: 0x77e1,\n\t0x1330: 0x77e1, 0x1331: 0x77e1, 0x1332: 0x77f9, 0x1333: 0x77f9, 0x1334: 0x77f9, 0x1335: 0x77f9,\n\t0x1336: 0x7811, 0x1337: 0x7811, 0x1338: 0x7811, 0x1339: 0x7811, 0x133a: 0x7829, 0x133b: 0x7829,\n\t0x133c: 0x7829, 0x133d: 0x7829, 0x133e: 0x7841, 0x133f: 0x7841,\n\t// Block 0x4d, offset 0x1340\n\t0x1340: 0x7841, 0x1341: 0x7841, 0x1342: 0x7859, 0x1343: 0x7859, 0x1344: 0x7871, 0x1345: 0x7871,\n\t0x1346: 0x7889, 0x1347: 0x7889, 0x1348: 0x78a1, 0x1349: 0x78a1, 0x134a: 0x78b9, 0x134b: 0x78b9,\n\t0x134c: 0x78d1, 0x134d: 0x78d1, 0x134e: 0x78e9, 0x134f: 0x78e9, 0x1350: 0x78e9, 0x1351: 0x78e9,\n\t0x1352: 0x7901, 0x1353: 0x7901, 0x1354: 0x7901, 0x1355: 0x7901, 0x1356: 0x7919, 0x1357: 0x7919,\n\t0x1358: 0x7919, 0x1359: 0x7919, 0x135a: 0x7931, 0x135b: 0x7931, 0x135c: 0x7931, 0x135d: 0x7931,\n\t0x135e: 0x7949, 0x135f: 0x7949, 0x1360: 0x7961, 0x1361: 0x7961, 0x1362: 0x7961, 0x1363: 0x7961,\n\t0x1364: 0x7979, 0x1365: 0x7979, 0x1366: 0x7991, 0x1367: 0x7991, 0x1368: 0x7991, 0x1369: 0x7991,\n\t0x136a: 0x79a9, 0x136b: 0x79a9, 0x136c: 0x79a9, 0x136d: 0x79a9, 0x136e: 0x79c1, 0x136f: 0x79c1,\n\t0x1370: 0x79d9, 0x1371: 0x79d9, 0x1372: 0x0818, 0x1373: 0x0818, 0x1374: 0x0818, 0x1375: 0x0818,\n\t0x1376: 0x0818, 0x1377: 0x0818, 0x1378: 0x0818, 0x1379: 0x0818, 0x137a: 0x0818, 0x137b: 0x0818,\n\t0x137c: 0x0818, 0x137d: 0x0818, 0x137e: 0x0818, 0x137f: 0x0818,\n\t// Block 0x4e, offset 0x1380\n\t0x1380: 0x0818, 0x1381: 0x0818, 0x1382: 0x0040, 0x1383: 0x0040, 0x1384: 0x0040, 0x1385: 0x0040,\n\t0x1386: 0x0040, 0x1387: 0x0040, 0x1388: 0x0040, 0x1389: 0x0040, 0x138a: 0x0040, 0x138b: 0x0040,\n\t0x138c: 0x0040, 0x138d: 0x0040, 0x138e: 0x0040, 0x138f: 0x0040, 0x1390: 0x0040, 0x1391: 0x0040,\n\t0x1392: 0x0040, 0x1393: 0x79f1, 0x1394: 0x79f1, 0x1395: 0x79f1, 0x1396: 0x79f1, 0x1397: 0x7a09,\n\t0x1398: 0x7a09, 0x1399: 0x7a21, 0x139a: 0x7a21, 0x139b: 0x7a39, 0x139c: 0x7a39, 0x139d: 0x0479,\n\t0x139e: 0x7a51, 0x139f: 0x7a51, 0x13a0: 0x7a69, 0x13a1: 0x7a69, 0x13a2: 0x7a81, 0x13a3: 0x7a81,\n\t0x13a4: 0x7a99, 0x13a5: 0x7a99, 0x13a6: 0x7a99, 0x13a7: 0x7a99, 0x13a8: 0x7ab1, 0x13a9: 0x7ab1,\n\t0x13aa: 0x7ac9, 0x13ab: 0x7ac9, 0x13ac: 0x7af1, 0x13ad: 0x7af1, 0x13ae: 0x7b19, 0x13af: 0x7b19,\n\t0x13b0: 0x7b41, 0x13b1: 0x7b41, 0x13b2: 0x7b69, 0x13b3: 0x7b69, 0x13b4: 0x7b91, 0x13b5: 0x7b91,\n\t0x13b6: 0x7bb9, 0x13b7: 0x7bb9, 0x13b8: 0x7bb9, 0x13b9: 0x7be1, 0x13ba: 0x7be1, 0x13bb: 0x7be1,\n\t0x13bc: 0x7c09, 0x13bd: 0x7c09, 0x13be: 0x7c09, 0x13bf: 0x7c09,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c0: 0x85f9, 0x13c1: 0x8621, 0x13c2: 0x8649, 0x13c3: 0x8671, 0x13c4: 0x8699, 0x13c5: 0x86c1,\n\t0x13c6: 0x86e9, 0x13c7: 0x8711, 0x13c8: 0x8739, 0x13c9: 0x8761, 0x13ca: 0x8789, 0x13cb: 0x87b1,\n\t0x13cc: 0x87d9, 0x13cd: 0x8801, 0x13ce: 0x8829, 0x13cf: 0x8851, 0x13d0: 0x8879, 0x13d1: 0x88a1,\n\t0x13d2: 0x88c9, 0x13d3: 0x88f1, 0x13d4: 0x8919, 0x13d5: 0x8941, 0x13d6: 0x8969, 0x13d7: 0x8991,\n\t0x13d8: 0x89b9, 0x13d9: 0x89e1, 0x13da: 0x8a09, 0x13db: 0x8a31, 0x13dc: 0x8a59, 0x13dd: 0x8a81,\n\t0x13de: 0x8aaa, 0x13df: 0x8ada, 0x13e0: 0x8b0a, 0x13e1: 0x8b3a, 0x13e2: 0x8b6a, 0x13e3: 0x8b9a,\n\t0x13e4: 0x8bc9, 0x13e5: 0x8bf1, 0x13e6: 0x7c71, 0x13e7: 0x8c19, 0x13e8: 0x7be1, 0x13e9: 0x7c99,\n\t0x13ea: 0x8c41, 0x13eb: 0x8c69, 0x13ec: 0x7d39, 0x13ed: 0x8c91, 0x13ee: 0x7d61, 0x13ef: 0x7d89,\n\t0x13f0: 0x8cb9, 0x13f1: 0x8ce1, 0x13f2: 0x7e29, 0x13f3: 0x8d09, 0x13f4: 0x7e51, 0x13f5: 0x7e79,\n\t0x13f6: 0x8d31, 0x13f7: 0x8d59, 0x13f8: 0x7ec9, 0x13f9: 0x8d81, 0x13fa: 0x7ef1, 0x13fb: 0x7f19,\n\t0x13fc: 0x83a1, 0x13fd: 0x83c9, 0x13fe: 0x8441, 0x13ff: 0x8469,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x8491, 0x1401: 0x8531, 0x1402: 0x8559, 0x1403: 0x8581, 0x1404: 0x85a9, 0x1405: 0x8649,\n\t0x1406: 0x8671, 0x1407: 0x8699, 0x1408: 0x8da9, 0x1409: 0x8739, 0x140a: 0x8dd1, 0x140b: 0x8df9,\n\t0x140c: 0x8829, 0x140d: 0x8e21, 0x140e: 0x8851, 0x140f: 0x8879, 0x1410: 0x8a81, 0x1411: 0x8e49,\n\t0x1412: 0x8e71, 0x1413: 0x89b9, 0x1414: 0x8e99, 0x1415: 0x89e1, 0x1416: 0x8a09, 0x1417: 0x7c21,\n\t0x1418: 0x7c49, 0x1419: 0x8ec1, 0x141a: 0x7c71, 0x141b: 0x8ee9, 0x141c: 0x7cc1, 0x141d: 0x7ce9,\n\t0x141e: 0x7d11, 0x141f: 0x7d39, 0x1420: 0x8f11, 0x1421: 0x7db1, 0x1422: 0x7dd9, 0x1423: 0x7e01,\n\t0x1424: 0x7e29, 0x1425: 0x8f39, 0x1426: 0x7ec9, 0x1427: 0x7f41, 0x1428: 0x7f69, 0x1429: 0x7f91,\n\t0x142a: 0x7fb9, 0x142b: 0x7fe1, 0x142c: 0x8031, 0x142d: 0x8059, 0x142e: 0x8081, 0x142f: 0x80a9,\n\t0x1430: 0x80d1, 0x1431: 0x80f9, 0x1432: 0x8f61, 0x1433: 0x8121, 0x1434: 0x8149, 0x1435: 0x8171,\n\t0x1436: 0x8199, 0x1437: 0x81c1, 0x1438: 0x81e9, 0x1439: 0x8239, 0x143a: 0x8261, 0x143b: 0x8289,\n\t0x143c: 0x82b1, 0x143d: 0x82d9, 0x143e: 0x8301, 0x143f: 0x8329,\n\t// Block 0x51, offset 0x1440\n\t0x1440: 0x8351, 0x1441: 0x8379, 0x1442: 0x83f1, 0x1443: 0x8419, 0x1444: 0x84b9, 0x1445: 0x84e1,\n\t0x1446: 0x8509, 0x1447: 0x8531, 0x1448: 0x8559, 0x1449: 0x85d1, 0x144a: 0x85f9, 0x144b: 0x8621,\n\t0x144c: 0x8649, 0x144d: 0x8f89, 0x144e: 0x86c1, 0x144f: 0x86e9, 0x1450: 0x8711, 0x1451: 0x8739,\n\t0x1452: 0x87b1, 0x1453: 0x87d9, 0x1454: 0x8801, 0x1455: 0x8829, 0x1456: 0x8fb1, 0x1457: 0x88a1,\n\t0x1458: 0x88c9, 0x1459: 0x8fd9, 0x145a: 0x8941, 0x145b: 0x8969, 0x145c: 0x8991, 0x145d: 0x89b9,\n\t0x145e: 0x9001, 0x145f: 0x7c71, 0x1460: 0x8ee9, 0x1461: 0x7d39, 0x1462: 0x8f11, 0x1463: 0x7e29,\n\t0x1464: 0x8f39, 0x1465: 0x7ec9, 0x1466: 0x9029, 0x1467: 0x80d1, 0x1468: 0x9051, 0x1469: 0x9079,\n\t0x146a: 0x90a1, 0x146b: 0x8531, 0x146c: 0x8559, 0x146d: 0x8649, 0x146e: 0x8829, 0x146f: 0x8fb1,\n\t0x1470: 0x89b9, 0x1471: 0x9001, 0x1472: 0x90c9, 0x1473: 0x9101, 0x1474: 0x9139, 0x1475: 0x9171,\n\t0x1476: 0x9199, 0x1477: 0x91c1, 0x1478: 0x91e9, 0x1479: 0x9211, 0x147a: 0x9239, 0x147b: 0x9261,\n\t0x147c: 0x9289, 0x147d: 0x92b1, 0x147e: 0x92d9, 0x147f: 0x9301,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x9329, 0x1481: 0x9351, 0x1482: 0x9379, 0x1483: 0x93a1, 0x1484: 0x93c9, 0x1485: 0x93f1,\n\t0x1486: 0x9419, 0x1487: 0x9441, 0x1488: 0x9469, 0x1489: 0x9491, 0x148a: 0x94b9, 0x148b: 0x94e1,\n\t0x148c: 0x9079, 0x148d: 0x9509, 0x148e: 0x9531, 0x148f: 0x9559, 0x1490: 0x9581, 0x1491: 0x9171,\n\t0x1492: 0x9199, 0x1493: 0x91c1, 0x1494: 0x91e9, 0x1495: 0x9211, 0x1496: 0x9239, 0x1497: 0x9261,\n\t0x1498: 0x9289, 0x1499: 0x92b1, 0x149a: 0x92d9, 0x149b: 0x9301, 0x149c: 0x9329, 0x149d: 0x9351,\n\t0x149e: 0x9379, 0x149f: 0x93a1, 0x14a0: 0x93c9, 0x14a1: 0x93f1, 0x14a2: 0x9419, 0x14a3: 0x9441,\n\t0x14a4: 0x9469, 0x14a5: 0x9491, 0x14a6: 0x94b9, 0x14a7: 0x94e1, 0x14a8: 0x9079, 0x14a9: 0x9509,\n\t0x14aa: 0x9531, 0x14ab: 0x9559, 0x14ac: 0x9581, 0x14ad: 0x9491, 0x14ae: 0x94b9, 0x14af: 0x94e1,\n\t0x14b0: 0x9079, 0x14b1: 0x9051, 0x14b2: 0x90a1, 0x14b3: 0x8211, 0x14b4: 0x8059, 0x14b5: 0x8081,\n\t0x14b6: 0x80a9, 0x14b7: 0x9491, 0x14b8: 0x94b9, 0x14b9: 0x94e1, 0x14ba: 0x8211, 0x14bb: 0x8239,\n\t0x14bc: 0x95a9, 0x14bd: 0x95a9, 0x14be: 0x0018, 0x14bf: 0x0018,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x0040, 0x14c1: 0x0040, 0x14c2: 0x0040, 0x14c3: 0x0040, 0x14c4: 0x0040, 0x14c5: 0x0040,\n\t0x14c6: 0x0040, 0x14c7: 0x0040, 0x14c8: 0x0040, 0x14c9: 0x0040, 0x14ca: 0x0040, 0x14cb: 0x0040,\n\t0x14cc: 0x0040, 0x14cd: 0x0040, 0x14ce: 0x0040, 0x14cf: 0x0040, 0x14d0: 0x95d1, 0x14d1: 0x9609,\n\t0x14d2: 0x9609, 0x14d3: 0x9641, 0x14d4: 0x9679, 0x14d5: 0x96b1, 0x14d6: 0x96e9, 0x14d7: 0x9721,\n\t0x14d8: 0x9759, 0x14d9: 0x9759, 0x14da: 0x9791, 0x14db: 0x97c9, 0x14dc: 0x9801, 0x14dd: 0x9839,\n\t0x14de: 0x9871, 0x14df: 0x98a9, 0x14e0: 0x98a9, 0x14e1: 0x98e1, 0x14e2: 0x9919, 0x14e3: 0x9919,\n\t0x14e4: 0x9951, 0x14e5: 0x9951, 0x14e6: 0x9989, 0x14e7: 0x99c1, 0x14e8: 0x99c1, 0x14e9: 0x99f9,\n\t0x14ea: 0x9a31, 0x14eb: 0x9a31, 0x14ec: 0x9a69, 0x14ed: 0x9a69, 0x14ee: 0x9aa1, 0x14ef: 0x9ad9,\n\t0x14f0: 0x9ad9, 0x14f1: 0x9b11, 0x14f2: 0x9b11, 0x14f3: 0x9b49, 0x14f4: 0x9b81, 0x14f5: 0x9bb9,\n\t0x14f6: 0x9bf1, 0x14f7: 0x9bf1, 0x14f8: 0x9c29, 0x14f9: 0x9c61, 0x14fa: 0x9c99, 0x14fb: 0x9cd1,\n\t0x14fc: 0x9d09, 0x14fd: 0x9d09, 0x14fe: 0x9d41, 0x14ff: 0x9d79,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0xa949, 0x1501: 0xa981, 0x1502: 0xa9b9, 0x1503: 0xa8a1, 0x1504: 0x9bb9, 0x1505: 0x9989,\n\t0x1506: 0xa9f1, 0x1507: 0xaa29, 0x1508: 0x0040, 0x1509: 0x0040, 0x150a: 0x0040, 0x150b: 0x0040,\n\t0x150c: 0x0040, 0x150d: 0x0040, 0x150e: 0x0040, 0x150f: 0x0040, 0x1510: 0x0040, 0x1511: 0x0040,\n\t0x1512: 0x0040, 0x1513: 0x0040, 0x1514: 0x0040, 0x1515: 0x0040, 0x1516: 0x0040, 0x1517: 0x0040,\n\t0x1518: 0x0040, 0x1519: 0x0040, 0x151a: 0x0040, 0x151b: 0x0040, 0x151c: 0x0040, 0x151d: 0x0040,\n\t0x151e: 0x0040, 0x151f: 0x0040, 0x1520: 0x0040, 0x1521: 0x0040, 0x1522: 0x0040, 0x1523: 0x0040,\n\t0x1524: 0x0040, 0x1525: 0x0040, 0x1526: 0x0040, 0x1527: 0x0040, 0x1528: 0x0040, 0x1529: 0x0040,\n\t0x152a: 0x0040, 0x152b: 0x0040, 0x152c: 0x0040, 0x152d: 0x0040, 0x152e: 0x0040, 0x152f: 0x0040,\n\t0x1530: 0xaa61, 0x1531: 0xaa99, 0x1532: 0xaad1, 0x1533: 0xab19, 0x1534: 0xab61, 0x1535: 0xaba9,\n\t0x1536: 0xabf1, 0x1537: 0xac39, 0x1538: 0xac81, 0x1539: 0xacc9, 0x153a: 0xad02, 0x153b: 0xae12,\n\t0x153c: 0xae91, 0x153d: 0x0018, 0x153e: 0x0040, 0x153f: 0x0040,\n\t// Block 0x55, offset 0x1540\n\t0x1540: 0x33c0, 0x1541: 0x33c0, 0x1542: 0x33c0, 0x1543: 0x33c0, 0x1544: 0x33c0, 0x1545: 0x33c0,\n\t0x1546: 0x33c0, 0x1547: 0x33c0, 0x1548: 0x33c0, 0x1549: 0x33c0, 0x154a: 0x33c0, 0x154b: 0x33c0,\n\t0x154c: 0x33c0, 0x154d: 0x33c0, 0x154e: 0x33c0, 0x154f: 0x33c0, 0x1550: 0xaeda, 0x1551: 0x7d55,\n\t0x1552: 0x0040, 0x1553: 0xaeea, 0x1554: 0x03c2, 0x1555: 0xaefa, 0x1556: 0xaf0a, 0x1557: 0x7d75,\n\t0x1558: 0x7d95, 0x1559: 0x0040, 0x155a: 0x0040, 0x155b: 0x0040, 0x155c: 0x0040, 0x155d: 0x0040,\n\t0x155e: 0x0040, 0x155f: 0x0040, 0x1560: 0x3308, 0x1561: 0x3308, 0x1562: 0x3308, 0x1563: 0x3308,\n\t0x1564: 0x3308, 0x1565: 0x3308, 0x1566: 0x3308, 0x1567: 0x3308, 0x1568: 0x3308, 0x1569: 0x3308,\n\t0x156a: 0x3308, 0x156b: 0x3308, 0x156c: 0x3308, 0x156d: 0x3308, 0x156e: 0x3308, 0x156f: 0x3308,\n\t0x1570: 0x0040, 0x1571: 0x7db5, 0x1572: 0x7dd5, 0x1573: 0xaf1a, 0x1574: 0xaf1a, 0x1575: 0x1fd2,\n\t0x1576: 0x1fe2, 0x1577: 0xaf2a, 0x1578: 0xaf3a, 0x1579: 0x7df5, 0x157a: 0x7e15, 0x157b: 0x7e35,\n\t0x157c: 0x7df5, 0x157d: 0x7e55, 0x157e: 0x7e75, 0x157f: 0x7e55,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x7e95, 0x1581: 0x7eb5, 0x1582: 0x7ed5, 0x1583: 0x7eb5, 0x1584: 0x7ef5, 0x1585: 0x0018,\n\t0x1586: 0x0018, 0x1587: 0xaf4a, 0x1588: 0xaf5a, 0x1589: 0x7f16, 0x158a: 0x7f36, 0x158b: 0x7f56,\n\t0x158c: 0x7f76, 0x158d: 0xaf1a, 0x158e: 0xaf1a, 0x158f: 0xaf1a, 0x1590: 0xaeda, 0x1591: 0x7f95,\n\t0x1592: 0x0040, 0x1593: 0x0040, 0x1594: 0x03c2, 0x1595: 0xaeea, 0x1596: 0xaf0a, 0x1597: 0xaefa,\n\t0x1598: 0x7fb5, 0x1599: 0x1fd2, 0x159a: 0x1fe2, 0x159b: 0xaf2a, 0x159c: 0xaf3a, 0x159d: 0x7e95,\n\t0x159e: 0x7ef5, 0x159f: 0xaf6a, 0x15a0: 0xaf7a, 0x15a1: 0xaf8a, 0x15a2: 0x1fb2, 0x15a3: 0xaf99,\n\t0x15a4: 0xafaa, 0x15a5: 0xafba, 0x15a6: 0x1fc2, 0x15a7: 0x0040, 0x15a8: 0xafca, 0x15a9: 0xafda,\n\t0x15aa: 0xafea, 0x15ab: 0xaffa, 0x15ac: 0x0040, 0x15ad: 0x0040, 0x15ae: 0x0040, 0x15af: 0x0040,\n\t0x15b0: 0x7fd6, 0x15b1: 0xb009, 0x15b2: 0x7ff6, 0x15b3: 0x0808, 0x15b4: 0x8016, 0x15b5: 0x0040,\n\t0x15b6: 0x8036, 0x15b7: 0xb031, 0x15b8: 0x8056, 0x15b9: 0xb059, 0x15ba: 0x8076, 0x15bb: 0xb081,\n\t0x15bc: 0x8096, 0x15bd: 0xb0a9, 0x15be: 0x80b6, 0x15bf: 0xb0d1,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0xb0f9, 0x15c1: 0xb111, 0x15c2: 0xb111, 0x15c3: 0xb129, 0x15c4: 0xb129, 0x15c5: 0xb141,\n\t0x15c6: 0xb141, 0x15c7: 0xb159, 0x15c8: 0xb159, 0x15c9: 0xb171, 0x15ca: 0xb171, 0x15cb: 0xb171,\n\t0x15cc: 0xb171, 0x15cd: 0xb189, 0x15ce: 0xb189, 0x15cf: 0xb1a1, 0x15d0: 0xb1a1, 0x15d1: 0xb1a1,\n\t0x15d2: 0xb1a1, 0x15d3: 0xb1b9, 0x15d4: 0xb1b9, 0x15d5: 0xb1d1, 0x15d6: 0xb1d1, 0x15d7: 0xb1d1,\n\t0x15d8: 0xb1d1, 0x15d9: 0xb1e9, 0x15da: 0xb1e9, 0x15db: 0xb1e9, 0x15dc: 0xb1e9, 0x15dd: 0xb201,\n\t0x15de: 0xb201, 0x15df: 0xb201, 0x15e0: 0xb201, 0x15e1: 0xb219, 0x15e2: 0xb219, 0x15e3: 0xb219,\n\t0x15e4: 0xb219, 0x15e5: 0xb231, 0x15e6: 0xb231, 0x15e7: 0xb231, 0x15e8: 0xb231, 0x15e9: 0xb249,\n\t0x15ea: 0xb249, 0x15eb: 0xb261, 0x15ec: 0xb261, 0x15ed: 0xb279, 0x15ee: 0xb279, 0x15ef: 0xb291,\n\t0x15f0: 0xb291, 0x15f1: 0xb2a9, 0x15f2: 0xb2a9, 0x15f3: 0xb2a9, 0x15f4: 0xb2a9, 0x15f5: 0xb2c1,\n\t0x15f6: 0xb2c1, 0x15f7: 0xb2c1, 0x15f8: 0xb2c1, 0x15f9: 0xb2d9, 0x15fa: 0xb2d9, 0x15fb: 0xb2d9,\n\t0x15fc: 0xb2d9, 0x15fd: 0xb2f1, 0x15fe: 0xb2f1, 0x15ff: 0xb2f1,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0xb2f1, 0x1601: 0xb309, 0x1602: 0xb309, 0x1603: 0xb309, 0x1604: 0xb309, 0x1605: 0xb321,\n\t0x1606: 0xb321, 0x1607: 0xb321, 0x1608: 0xb321, 0x1609: 0xb339, 0x160a: 0xb339, 0x160b: 0xb339,\n\t0x160c: 0xb339, 0x160d: 0xb351, 0x160e: 0xb351, 0x160f: 0xb351, 0x1610: 0xb351, 0x1611: 0xb369,\n\t0x1612: 0xb369, 0x1613: 0xb369, 0x1614: 0xb369, 0x1615: 0xb381, 0x1616: 0xb381, 0x1617: 0xb381,\n\t0x1618: 0xb381, 0x1619: 0xb399, 0x161a: 0xb399, 0x161b: 0xb399, 0x161c: 0xb399, 0x161d: 0xb3b1,\n\t0x161e: 0xb3b1, 0x161f: 0xb3b1, 0x1620: 0xb3b1, 0x1621: 0xb3c9, 0x1622: 0xb3c9, 0x1623: 0xb3c9,\n\t0x1624: 0xb3c9, 0x1625: 0xb3e1, 0x1626: 0xb3e1, 0x1627: 0xb3e1, 0x1628: 0xb3e1, 0x1629: 0xb3f9,\n\t0x162a: 0xb3f9, 0x162b: 0xb3f9, 0x162c: 0xb3f9, 0x162d: 0xb411, 0x162e: 0xb411, 0x162f: 0x7ab1,\n\t0x1630: 0x7ab1, 0x1631: 0xb429, 0x1632: 0xb429, 0x1633: 0xb429, 0x1634: 0xb429, 0x1635: 0xb441,\n\t0x1636: 0xb441, 0x1637: 0xb469, 0x1638: 0xb469, 0x1639: 0xb491, 0x163a: 0xb491, 0x163b: 0xb4b9,\n\t0x163c: 0xb4b9, 0x163d: 0x0040, 0x163e: 0x0040, 0x163f: 0x03c0,\n\t// Block 0x59, offset 0x1640\n\t0x1640: 0x0040, 0x1641: 0xaefa, 0x1642: 0xb4e2, 0x1643: 0xaf6a, 0x1644: 0xafda, 0x1645: 0xafea,\n\t0x1646: 0xaf7a, 0x1647: 0xb4f2, 0x1648: 0x1fd2, 0x1649: 0x1fe2, 0x164a: 0xaf8a, 0x164b: 0x1fb2,\n\t0x164c: 0xaeda, 0x164d: 0xaf99, 0x164e: 0x29d1, 0x164f: 0xb502, 0x1650: 0x1f41, 0x1651: 0x00c9,\n\t0x1652: 0x0069, 0x1653: 0x0079, 0x1654: 0x1f51, 0x1655: 0x1f61, 0x1656: 0x1f71, 0x1657: 0x1f81,\n\t0x1658: 0x1f91, 0x1659: 0x1fa1, 0x165a: 0xaeea, 0x165b: 0x03c2, 0x165c: 0xafaa, 0x165d: 0x1fc2,\n\t0x165e: 0xafba, 0x165f: 0xaf0a, 0x1660: 0xaffa, 0x1661: 0x0039, 0x1662: 0x0ee9, 0x1663: 0x1159,\n\t0x1664: 0x0ef9, 0x1665: 0x0f09, 0x1666: 0x1199, 0x1667: 0x0f31, 0x1668: 0x0249, 0x1669: 0x0f41,\n\t0x166a: 0x0259, 0x166b: 0x0f51, 0x166c: 0x0359, 0x166d: 0x0f61, 0x166e: 0x0f71, 0x166f: 0x00d9,\n\t0x1670: 0x0f99, 0x1671: 0x2039, 0x1672: 0x0269, 0x1673: 0x01d9, 0x1674: 0x0fa9, 0x1675: 0x0fb9,\n\t0x1676: 0x1089, 0x1677: 0x0279, 0x1678: 0x0369, 0x1679: 0x0289, 0x167a: 0x13d1, 0x167b: 0xaf4a,\n\t0x167c: 0xafca, 0x167d: 0xaf5a, 0x167e: 0xb512, 0x167f: 0xaf1a,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x1caa, 0x1681: 0x0039, 0x1682: 0x0ee9, 0x1683: 0x1159, 0x1684: 0x0ef9, 0x1685: 0x0f09,\n\t0x1686: 0x1199, 0x1687: 0x0f31, 0x1688: 0x0249, 0x1689: 0x0f41, 0x168a: 0x0259, 0x168b: 0x0f51,\n\t0x168c: 0x0359, 0x168d: 0x0f61, 0x168e: 0x0f71, 0x168f: 0x00d9, 0x1690: 0x0f99, 0x1691: 0x2039,\n\t0x1692: 0x0269, 0x1693: 0x01d9, 0x1694: 0x0fa9, 0x1695: 0x0fb9, 0x1696: 0x1089, 0x1697: 0x0279,\n\t0x1698: 0x0369, 0x1699: 0x0289, 0x169a: 0x13d1, 0x169b: 0xaf2a, 0x169c: 0xb522, 0x169d: 0xaf3a,\n\t0x169e: 0xb532, 0x169f: 0x80d5, 0x16a0: 0x80f5, 0x16a1: 0x29d1, 0x16a2: 0x8115, 0x16a3: 0x8115,\n\t0x16a4: 0x8135, 0x16a5: 0x8155, 0x16a6: 0x8175, 0x16a7: 0x8195, 0x16a8: 0x81b5, 0x16a9: 0x81d5,\n\t0x16aa: 0x81f5, 0x16ab: 0x8215, 0x16ac: 0x8235, 0x16ad: 0x8255, 0x16ae: 0x8275, 0x16af: 0x8295,\n\t0x16b0: 0x82b5, 0x16b1: 0x82d5, 0x16b2: 0x82f5, 0x16b3: 0x8315, 0x16b4: 0x8335, 0x16b5: 0x8355,\n\t0x16b6: 0x8375, 0x16b7: 0x8395, 0x16b8: 0x83b5, 0x16b9: 0x83d5, 0x16ba: 0x83f5, 0x16bb: 0x8415,\n\t0x16bc: 0x81b5, 0x16bd: 0x8435, 0x16be: 0x8455, 0x16bf: 0x8215,\n\t// Block 0x5b, offset 0x16c0\n\t0x16c0: 0x8475, 0x16c1: 0x8495, 0x16c2: 0x84b5, 0x16c3: 0x84d5, 0x16c4: 0x84f5, 0x16c5: 0x8515,\n\t0x16c6: 0x8535, 0x16c7: 0x8555, 0x16c8: 0x84d5, 0x16c9: 0x8575, 0x16ca: 0x84d5, 0x16cb: 0x8595,\n\t0x16cc: 0x8595, 0x16cd: 0x85b5, 0x16ce: 0x85b5, 0x16cf: 0x85d5, 0x16d0: 0x8515, 0x16d1: 0x85f5,\n\t0x16d2: 0x8615, 0x16d3: 0x85f5, 0x16d4: 0x8635, 0x16d5: 0x8615, 0x16d6: 0x8655, 0x16d7: 0x8655,\n\t0x16d8: 0x8675, 0x16d9: 0x8675, 0x16da: 0x8695, 0x16db: 0x8695, 0x16dc: 0x8615, 0x16dd: 0x8115,\n\t0x16de: 0x86b5, 0x16df: 0x86d5, 0x16e0: 0x0040, 0x16e1: 0x86f5, 0x16e2: 0x8715, 0x16e3: 0x8735,\n\t0x16e4: 0x8755, 0x16e5: 0x8735, 0x16e6: 0x8775, 0x16e7: 0x8795, 0x16e8: 0x87b5, 0x16e9: 0x87b5,\n\t0x16ea: 0x87d5, 0x16eb: 0x87d5, 0x16ec: 0x87f5, 0x16ed: 0x87f5, 0x16ee: 0x87d5, 0x16ef: 0x87d5,\n\t0x16f0: 0x8815, 0x16f1: 0x8835, 0x16f2: 0x8855, 0x16f3: 0x8875, 0x16f4: 0x8895, 0x16f5: 0x88b5,\n\t0x16f6: 0x88b5, 0x16f7: 0x88b5, 0x16f8: 0x88d5, 0x16f9: 0x88d5, 0x16fa: 0x88d5, 0x16fb: 0x88d5,\n\t0x16fc: 0x87b5, 0x16fd: 0x87b5, 0x16fe: 0x87b5, 0x16ff: 0x0040,\n\t// Block 0x5c, offset 0x1700\n\t0x1700: 0x0040, 0x1701: 0x0040, 0x1702: 0x8715, 0x1703: 0x86f5, 0x1704: 0x88f5, 0x1705: 0x86f5,\n\t0x1706: 0x8715, 0x1707: 0x86f5, 0x1708: 0x0040, 0x1709: 0x0040, 0x170a: 0x8915, 0x170b: 0x8715,\n\t0x170c: 0x8935, 0x170d: 0x88f5, 0x170e: 0x8935, 0x170f: 0x8715, 0x1710: 0x0040, 0x1711: 0x0040,\n\t0x1712: 0x8955, 0x1713: 0x8975, 0x1714: 0x8875, 0x1715: 0x8935, 0x1716: 0x88f5, 0x1717: 0x8935,\n\t0x1718: 0x0040, 0x1719: 0x0040, 0x171a: 0x8995, 0x171b: 0x89b5, 0x171c: 0x8995, 0x171d: 0x0040,\n\t0x171e: 0x0040, 0x171f: 0x0040, 0x1720: 0xb541, 0x1721: 0xb559, 0x1722: 0xb571, 0x1723: 0x89d6,\n\t0x1724: 0xb589, 0x1725: 0xb5a1, 0x1726: 0x89f5, 0x1727: 0x0040, 0x1728: 0x8a15, 0x1729: 0x8a35,\n\t0x172a: 0x8a55, 0x172b: 0x8a35, 0x172c: 0x8a75, 0x172d: 0x8a95, 0x172e: 0x8ab5, 0x172f: 0x0040,\n\t0x1730: 0x0040, 0x1731: 0x0040, 0x1732: 0x0040, 0x1733: 0x0040, 0x1734: 0x0040, 0x1735: 0x0040,\n\t0x1736: 0x0040, 0x1737: 0x0040, 0x1738: 0x0040, 0x1739: 0x0340, 0x173a: 0x0340, 0x173b: 0x0340,\n\t0x173c: 0x0040, 0x173d: 0x0040, 0x173e: 0x0040, 0x173f: 0x0040,\n\t// Block 0x5d, offset 0x1740\n\t0x1740: 0x0a08, 0x1741: 0x0a08, 0x1742: 0x0a08, 0x1743: 0x0a08, 0x1744: 0x0a08, 0x1745: 0x0c08,\n\t0x1746: 0x0808, 0x1747: 0x0c08, 0x1748: 0x0818, 0x1749: 0x0c08, 0x174a: 0x0c08, 0x174b: 0x0808,\n\t0x174c: 0x0808, 0x174d: 0x0908, 0x174e: 0x0c08, 0x174f: 0x0c08, 0x1750: 0x0c08, 0x1751: 0x0c08,\n\t0x1752: 0x0c08, 0x1753: 0x0a08, 0x1754: 0x0a08, 0x1755: 0x0a08, 0x1756: 0x0a08, 0x1757: 0x0908,\n\t0x1758: 0x0a08, 0x1759: 0x0a08, 0x175a: 0x0a08, 0x175b: 0x0a08, 0x175c: 0x0a08, 0x175d: 0x0c08,\n\t0x175e: 0x0a08, 0x175f: 0x0a08, 0x1760: 0x0a08, 0x1761: 0x0c08, 0x1762: 0x0808, 0x1763: 0x0808,\n\t0x1764: 0x0c08, 0x1765: 0x3308, 0x1766: 0x3308, 0x1767: 0x0040, 0x1768: 0x0040, 0x1769: 0x0040,\n\t0x176a: 0x0040, 0x176b: 0x0a18, 0x176c: 0x0a18, 0x176d: 0x0a18, 0x176e: 0x0a18, 0x176f: 0x0c18,\n\t0x1770: 0x0818, 0x1771: 0x0818, 0x1772: 0x0818, 0x1773: 0x0818, 0x1774: 0x0818, 0x1775: 0x0818,\n\t0x1776: 0x0818, 0x1777: 0x0040, 0x1778: 0x0040, 0x1779: 0x0040, 0x177a: 0x0040, 0x177b: 0x0040,\n\t0x177c: 0x0040, 0x177d: 0x0040, 0x177e: 0x0040, 0x177f: 0x0040,\n\t// Block 0x5e, offset 0x1780\n\t0x1780: 0x0a08, 0x1781: 0x0c08, 0x1782: 0x0a08, 0x1783: 0x0c08, 0x1784: 0x0c08, 0x1785: 0x0c08,\n\t0x1786: 0x0a08, 0x1787: 0x0a08, 0x1788: 0x0a08, 0x1789: 0x0c08, 0x178a: 0x0a08, 0x178b: 0x0a08,\n\t0x178c: 0x0c08, 0x178d: 0x0a08, 0x178e: 0x0c08, 0x178f: 0x0c08, 0x1790: 0x0a08, 0x1791: 0x0c08,\n\t0x1792: 0x0040, 0x1793: 0x0040, 0x1794: 0x0040, 0x1795: 0x0040, 0x1796: 0x0040, 0x1797: 0x0040,\n\t0x1798: 0x0040, 0x1799: 0x0818, 0x179a: 0x0818, 0x179b: 0x0818, 0x179c: 0x0818, 0x179d: 0x0040,\n\t0x179e: 0x0040, 0x179f: 0x0040, 0x17a0: 0x0040, 0x17a1: 0x0040, 0x17a2: 0x0040, 0x17a3: 0x0040,\n\t0x17a4: 0x0040, 0x17a5: 0x0040, 0x17a6: 0x0040, 0x17a7: 0x0040, 0x17a8: 0x0040, 0x17a9: 0x0c18,\n\t0x17aa: 0x0c18, 0x17ab: 0x0c18, 0x17ac: 0x0c18, 0x17ad: 0x0a18, 0x17ae: 0x0a18, 0x17af: 0x0818,\n\t0x17b0: 0x0040, 0x17b1: 0x0040, 0x17b2: 0x0040, 0x17b3: 0x0040, 0x17b4: 0x0040, 0x17b5: 0x0040,\n\t0x17b6: 0x0040, 0x17b7: 0x0040, 0x17b8: 0x0040, 0x17b9: 0x0040, 0x17ba: 0x0040, 0x17bb: 0x0040,\n\t0x17bc: 0x0040, 0x17bd: 0x0040, 0x17be: 0x0040, 0x17bf: 0x0040,\n\t// Block 0x5f, offset 0x17c0\n\t0x17c0: 0x3308, 0x17c1: 0x3308, 0x17c2: 0x3008, 0x17c3: 0x3008, 0x17c4: 0x0040, 0x17c5: 0x0008,\n\t0x17c6: 0x0008, 0x17c7: 0x0008, 0x17c8: 0x0008, 0x17c9: 0x0008, 0x17ca: 0x0008, 0x17cb: 0x0008,\n\t0x17cc: 0x0008, 0x17cd: 0x0040, 0x17ce: 0x0040, 0x17cf: 0x0008, 0x17d0: 0x0008, 0x17d1: 0x0040,\n\t0x17d2: 0x0040, 0x17d3: 0x0008, 0x17d4: 0x0008, 0x17d5: 0x0008, 0x17d6: 0x0008, 0x17d7: 0x0008,\n\t0x17d8: 0x0008, 0x17d9: 0x0008, 0x17da: 0x0008, 0x17db: 0x0008, 0x17dc: 0x0008, 0x17dd: 0x0008,\n\t0x17de: 0x0008, 0x17df: 0x0008, 0x17e0: 0x0008, 0x17e1: 0x0008, 0x17e2: 0x0008, 0x17e3: 0x0008,\n\t0x17e4: 0x0008, 0x17e5: 0x0008, 0x17e6: 0x0008, 0x17e7: 0x0008, 0x17e8: 0x0008, 0x17e9: 0x0040,\n\t0x17ea: 0x0008, 0x17eb: 0x0008, 0x17ec: 0x0008, 0x17ed: 0x0008, 0x17ee: 0x0008, 0x17ef: 0x0008,\n\t0x17f0: 0x0008, 0x17f1: 0x0040, 0x17f2: 0x0008, 0x17f3: 0x0008, 0x17f4: 0x0040, 0x17f5: 0x0008,\n\t0x17f6: 0x0008, 0x17f7: 0x0008, 0x17f8: 0x0008, 0x17f9: 0x0008, 0x17fa: 0x0040, 0x17fb: 0x0040,\n\t0x17fc: 0x3308, 0x17fd: 0x0008, 0x17fe: 0x3008, 0x17ff: 0x3008,\n\t// Block 0x60, offset 0x1800\n\t0x1800: 0x3308, 0x1801: 0x3008, 0x1802: 0x3008, 0x1803: 0x3008, 0x1804: 0x3008, 0x1805: 0x0040,\n\t0x1806: 0x0040, 0x1807: 0x3008, 0x1808: 0x3008, 0x1809: 0x0040, 0x180a: 0x0040, 0x180b: 0x3008,\n\t0x180c: 0x3008, 0x180d: 0x3808, 0x180e: 0x0040, 0x180f: 0x0040, 0x1810: 0x0008, 0x1811: 0x0040,\n\t0x1812: 0x0040, 0x1813: 0x0040, 0x1814: 0x0040, 0x1815: 0x0040, 0x1816: 0x0040, 0x1817: 0x3008,\n\t0x1818: 0x0040, 0x1819: 0x0040, 0x181a: 0x0040, 0x181b: 0x0040, 0x181c: 0x0040, 0x181d: 0x0008,\n\t0x181e: 0x0008, 0x181f: 0x0008, 0x1820: 0x0008, 0x1821: 0x0008, 0x1822: 0x3008, 0x1823: 0x3008,\n\t0x1824: 0x0040, 0x1825: 0x0040, 0x1826: 0x3308, 0x1827: 0x3308, 0x1828: 0x3308, 0x1829: 0x3308,\n\t0x182a: 0x3308, 0x182b: 0x3308, 0x182c: 0x3308, 0x182d: 0x0040, 0x182e: 0x0040, 0x182f: 0x0040,\n\t0x1830: 0x3308, 0x1831: 0x3308, 0x1832: 0x3308, 0x1833: 0x3308, 0x1834: 0x3308, 0x1835: 0x0040,\n\t0x1836: 0x0040, 0x1837: 0x0040, 0x1838: 0x0040, 0x1839: 0x0040, 0x183a: 0x0040, 0x183b: 0x0040,\n\t0x183c: 0x0040, 0x183d: 0x0040, 0x183e: 0x0040, 0x183f: 0x0040,\n\t// Block 0x61, offset 0x1840\n\t0x1840: 0x0039, 0x1841: 0x0ee9, 0x1842: 0x1159, 0x1843: 0x0ef9, 0x1844: 0x0f09, 0x1845: 0x1199,\n\t0x1846: 0x0f31, 0x1847: 0x0249, 0x1848: 0x0f41, 0x1849: 0x0259, 0x184a: 0x0f51, 0x184b: 0x0359,\n\t0x184c: 0x0f61, 0x184d: 0x0f71, 0x184e: 0x00d9, 0x184f: 0x0f99, 0x1850: 0x2039, 0x1851: 0x0269,\n\t0x1852: 0x01d9, 0x1853: 0x0fa9, 0x1854: 0x0fb9, 0x1855: 0x1089, 0x1856: 0x0279, 0x1857: 0x0369,\n\t0x1858: 0x0289, 0x1859: 0x13d1, 0x185a: 0x0039, 0x185b: 0x0ee9, 0x185c: 0x1159, 0x185d: 0x0ef9,\n\t0x185e: 0x0f09, 0x185f: 0x1199, 0x1860: 0x0f31, 0x1861: 0x0249, 0x1862: 0x0f41, 0x1863: 0x0259,\n\t0x1864: 0x0f51, 0x1865: 0x0359, 0x1866: 0x0f61, 0x1867: 0x0f71, 0x1868: 0x00d9, 0x1869: 0x0f99,\n\t0x186a: 0x2039, 0x186b: 0x0269, 0x186c: 0x01d9, 0x186d: 0x0fa9, 0x186e: 0x0fb9, 0x186f: 0x1089,\n\t0x1870: 0x0279, 0x1871: 0x0369, 0x1872: 0x0289, 0x1873: 0x13d1, 0x1874: 0x0039, 0x1875: 0x0ee9,\n\t0x1876: 0x1159, 0x1877: 0x0ef9, 0x1878: 0x0f09, 0x1879: 0x1199, 0x187a: 0x0f31, 0x187b: 0x0249,\n\t0x187c: 0x0f41, 0x187d: 0x0259, 0x187e: 0x0f51, 0x187f: 0x0359,\n\t// Block 0x62, offset 0x1880\n\t0x1880: 0x0f61, 0x1881: 0x0f71, 0x1882: 0x00d9, 0x1883: 0x0f99, 0x1884: 0x2039, 0x1885: 0x0269,\n\t0x1886: 0x01d9, 0x1887: 0x0fa9, 0x1888: 0x0fb9, 0x1889: 0x1089, 0x188a: 0x0279, 0x188b: 0x0369,\n\t0x188c: 0x0289, 0x188d: 0x13d1, 0x188e: 0x0039, 0x188f: 0x0ee9, 0x1890: 0x1159, 0x1891: 0x0ef9,\n\t0x1892: 0x0f09, 0x1893: 0x1199, 0x1894: 0x0f31, 0x1895: 0x0040, 0x1896: 0x0f41, 0x1897: 0x0259,\n\t0x1898: 0x0f51, 0x1899: 0x0359, 0x189a: 0x0f61, 0x189b: 0x0f71, 0x189c: 0x00d9, 0x189d: 0x0f99,\n\t0x189e: 0x2039, 0x189f: 0x0269, 0x18a0: 0x01d9, 0x18a1: 0x0fa9, 0x18a2: 0x0fb9, 0x18a3: 0x1089,\n\t0x18a4: 0x0279, 0x18a5: 0x0369, 0x18a6: 0x0289, 0x18a7: 0x13d1, 0x18a8: 0x0039, 0x18a9: 0x0ee9,\n\t0x18aa: 0x1159, 0x18ab: 0x0ef9, 0x18ac: 0x0f09, 0x18ad: 0x1199, 0x18ae: 0x0f31, 0x18af: 0x0249,\n\t0x18b0: 0x0f41, 0x18b1: 0x0259, 0x18b2: 0x0f51, 0x18b3: 0x0359, 0x18b4: 0x0f61, 0x18b5: 0x0f71,\n\t0x18b6: 0x00d9, 0x18b7: 0x0f99, 0x18b8: 0x2039, 0x18b9: 0x0269, 0x18ba: 0x01d9, 0x18bb: 0x0fa9,\n\t0x18bc: 0x0fb9, 0x18bd: 0x1089, 0x18be: 0x0279, 0x18bf: 0x0369,\n\t// Block 0x63, offset 0x18c0\n\t0x18c0: 0x0289, 0x18c1: 0x13d1, 0x18c2: 0x0039, 0x18c3: 0x0ee9, 0x18c4: 0x1159, 0x18c5: 0x0ef9,\n\t0x18c6: 0x0f09, 0x18c7: 0x1199, 0x18c8: 0x0f31, 0x18c9: 0x0249, 0x18ca: 0x0f41, 0x18cb: 0x0259,\n\t0x18cc: 0x0f51, 0x18cd: 0x0359, 0x18ce: 0x0f61, 0x18cf: 0x0f71, 0x18d0: 0x00d9, 0x18d1: 0x0f99,\n\t0x18d2: 0x2039, 0x18d3: 0x0269, 0x18d4: 0x01d9, 0x18d5: 0x0fa9, 0x18d6: 0x0fb9, 0x18d7: 0x1089,\n\t0x18d8: 0x0279, 0x18d9: 0x0369, 0x18da: 0x0289, 0x18db: 0x13d1, 0x18dc: 0x0039, 0x18dd: 0x0040,\n\t0x18de: 0x1159, 0x18df: 0x0ef9, 0x18e0: 0x0040, 0x18e1: 0x0040, 0x18e2: 0x0f31, 0x18e3: 0x0040,\n\t0x18e4: 0x0040, 0x18e5: 0x0259, 0x18e6: 0x0f51, 0x18e7: 0x0040, 0x18e8: 0x0040, 0x18e9: 0x0f71,\n\t0x18ea: 0x00d9, 0x18eb: 0x0f99, 0x18ec: 0x2039, 0x18ed: 0x0040, 0x18ee: 0x01d9, 0x18ef: 0x0fa9,\n\t0x18f0: 0x0fb9, 0x18f1: 0x1089, 0x18f2: 0x0279, 0x18f3: 0x0369, 0x18f4: 0x0289, 0x18f5: 0x13d1,\n\t0x18f6: 0x0039, 0x18f7: 0x0ee9, 0x18f8: 0x1159, 0x18f9: 0x0ef9, 0x18fa: 0x0040, 0x18fb: 0x1199,\n\t0x18fc: 0x0040, 0x18fd: 0x0249, 0x18fe: 0x0f41, 0x18ff: 0x0259,\n\t// Block 0x64, offset 0x1900\n\t0x1900: 0x0f51, 0x1901: 0x0359, 0x1902: 0x0f61, 0x1903: 0x0f71, 0x1904: 0x0040, 0x1905: 0x0f99,\n\t0x1906: 0x2039, 0x1907: 0x0269, 0x1908: 0x01d9, 0x1909: 0x0fa9, 0x190a: 0x0fb9, 0x190b: 0x1089,\n\t0x190c: 0x0279, 0x190d: 0x0369, 0x190e: 0x0289, 0x190f: 0x13d1, 0x1910: 0x0039, 0x1911: 0x0ee9,\n\t0x1912: 0x1159, 0x1913: 0x0ef9, 0x1914: 0x0f09, 0x1915: 0x1199, 0x1916: 0x0f31, 0x1917: 0x0249,\n\t0x1918: 0x0f41, 0x1919: 0x0259, 0x191a: 0x0f51, 0x191b: 0x0359, 0x191c: 0x0f61, 0x191d: 0x0f71,\n\t0x191e: 0x00d9, 0x191f: 0x0f99, 0x1920: 0x2039, 0x1921: 0x0269, 0x1922: 0x01d9, 0x1923: 0x0fa9,\n\t0x1924: 0x0fb9, 0x1925: 0x1089, 0x1926: 0x0279, 0x1927: 0x0369, 0x1928: 0x0289, 0x1929: 0x13d1,\n\t0x192a: 0x0039, 0x192b: 0x0ee9, 0x192c: 0x1159, 0x192d: 0x0ef9, 0x192e: 0x0f09, 0x192f: 0x1199,\n\t0x1930: 0x0f31, 0x1931: 0x0249, 0x1932: 0x0f41, 0x1933: 0x0259, 0x1934: 0x0f51, 0x1935: 0x0359,\n\t0x1936: 0x0f61, 0x1937: 0x0f71, 0x1938: 0x00d9, 0x1939: 0x0f99, 0x193a: 0x2039, 0x193b: 0x0269,\n\t0x193c: 0x01d9, 0x193d: 0x0fa9, 0x193e: 0x0fb9, 0x193f: 0x1089,\n\t// Block 0x65, offset 0x1940\n\t0x1940: 0x0279, 0x1941: 0x0369, 0x1942: 0x0289, 0x1943: 0x13d1, 0x1944: 0x0039, 0x1945: 0x0ee9,\n\t0x1946: 0x0040, 0x1947: 0x0ef9, 0x1948: 0x0f09, 0x1949: 0x1199, 0x194a: 0x0f31, 0x194b: 0x0040,\n\t0x194c: 0x0040, 0x194d: 0x0259, 0x194e: 0x0f51, 0x194f: 0x0359, 0x1950: 0x0f61, 0x1951: 0x0f71,\n\t0x1952: 0x00d9, 0x1953: 0x0f99, 0x1954: 0x2039, 0x1955: 0x0040, 0x1956: 0x01d9, 0x1957: 0x0fa9,\n\t0x1958: 0x0fb9, 0x1959: 0x1089, 0x195a: 0x0279, 0x195b: 0x0369, 0x195c: 0x0289, 0x195d: 0x0040,\n\t0x195e: 0x0039, 0x195f: 0x0ee9, 0x1960: 0x1159, 0x1961: 0x0ef9, 0x1962: 0x0f09, 0x1963: 0x1199,\n\t0x1964: 0x0f31, 0x1965: 0x0249, 0x1966: 0x0f41, 0x1967: 0x0259, 0x1968: 0x0f51, 0x1969: 0x0359,\n\t0x196a: 0x0f61, 0x196b: 0x0f71, 0x196c: 0x00d9, 0x196d: 0x0f99, 0x196e: 0x2039, 0x196f: 0x0269,\n\t0x1970: 0x01d9, 0x1971: 0x0fa9, 0x1972: 0x0fb9, 0x1973: 0x1089, 0x1974: 0x0279, 0x1975: 0x0369,\n\t0x1976: 0x0289, 0x1977: 0x13d1, 0x1978: 0x0039, 0x1979: 0x0ee9, 0x197a: 0x0040, 0x197b: 0x0ef9,\n\t0x197c: 0x0f09, 0x197d: 0x1199, 0x197e: 0x0f31, 0x197f: 0x0040,\n\t// Block 0x66, offset 0x1980\n\t0x1980: 0x0f41, 0x1981: 0x0259, 0x1982: 0x0f51, 0x1983: 0x0359, 0x1984: 0x0f61, 0x1985: 0x0040,\n\t0x1986: 0x00d9, 0x1987: 0x0040, 0x1988: 0x0040, 0x1989: 0x0040, 0x198a: 0x01d9, 0x198b: 0x0fa9,\n\t0x198c: 0x0fb9, 0x198d: 0x1089, 0x198e: 0x0279, 0x198f: 0x0369, 0x1990: 0x0289, 0x1991: 0x0040,\n\t0x1992: 0x0039, 0x1993: 0x0ee9, 0x1994: 0x1159, 0x1995: 0x0ef9, 0x1996: 0x0f09, 0x1997: 0x1199,\n\t0x1998: 0x0f31, 0x1999: 0x0249, 0x199a: 0x0f41, 0x199b: 0x0259, 0x199c: 0x0f51, 0x199d: 0x0359,\n\t0x199e: 0x0f61, 0x199f: 0x0f71, 0x19a0: 0x00d9, 0x19a1: 0x0f99, 0x19a2: 0x2039, 0x19a3: 0x0269,\n\t0x19a4: 0x01d9, 0x19a5: 0x0fa9, 0x19a6: 0x0fb9, 0x19a7: 0x1089, 0x19a8: 0x0279, 0x19a9: 0x0369,\n\t0x19aa: 0x0289, 0x19ab: 0x13d1, 0x19ac: 0x0039, 0x19ad: 0x0ee9, 0x19ae: 0x1159, 0x19af: 0x0ef9,\n\t0x19b0: 0x0f09, 0x19b1: 0x1199, 0x19b2: 0x0f31, 0x19b3: 0x0249, 0x19b4: 0x0f41, 0x19b5: 0x0259,\n\t0x19b6: 0x0f51, 0x19b7: 0x0359, 0x19b8: 0x0f61, 0x19b9: 0x0f71, 0x19ba: 0x00d9, 0x19bb: 0x0f99,\n\t0x19bc: 0x2039, 0x19bd: 0x0269, 0x19be: 0x01d9, 0x19bf: 0x0fa9,\n\t// Block 0x67, offset 0x19c0\n\t0x19c0: 0x0fb9, 0x19c1: 0x1089, 0x19c2: 0x0279, 0x19c3: 0x0369, 0x19c4: 0x0289, 0x19c5: 0x13d1,\n\t0x19c6: 0x0039, 0x19c7: 0x0ee9, 0x19c8: 0x1159, 0x19c9: 0x0ef9, 0x19ca: 0x0f09, 0x19cb: 0x1199,\n\t0x19cc: 0x0f31, 0x19cd: 0x0249, 0x19ce: 0x0f41, 0x19cf: 0x0259, 0x19d0: 0x0f51, 0x19d1: 0x0359,\n\t0x19d2: 0x0f61, 0x19d3: 0x0f71, 0x19d4: 0x00d9, 0x19d5: 0x0f99, 0x19d6: 0x2039, 0x19d7: 0x0269,\n\t0x19d8: 0x01d9, 0x19d9: 0x0fa9, 0x19da: 0x0fb9, 0x19db: 0x1089, 0x19dc: 0x0279, 0x19dd: 0x0369,\n\t0x19de: 0x0289, 0x19df: 0x13d1, 0x19e0: 0x0039, 0x19e1: 0x0ee9, 0x19e2: 0x1159, 0x19e3: 0x0ef9,\n\t0x19e4: 0x0f09, 0x19e5: 0x1199, 0x19e6: 0x0f31, 0x19e7: 0x0249, 0x19e8: 0x0f41, 0x19e9: 0x0259,\n\t0x19ea: 0x0f51, 0x19eb: 0x0359, 0x19ec: 0x0f61, 0x19ed: 0x0f71, 0x19ee: 0x00d9, 0x19ef: 0x0f99,\n\t0x19f0: 0x2039, 0x19f1: 0x0269, 0x19f2: 0x01d9, 0x19f3: 0x0fa9, 0x19f4: 0x0fb9, 0x19f5: 0x1089,\n\t0x19f6: 0x0279, 0x19f7: 0x0369, 0x19f8: 0x0289, 0x19f9: 0x13d1, 0x19fa: 0x0039, 0x19fb: 0x0ee9,\n\t0x19fc: 0x1159, 0x19fd: 0x0ef9, 0x19fe: 0x0f09, 0x19ff: 0x1199,\n\t// Block 0x68, offset 0x1a00\n\t0x1a00: 0x0f31, 0x1a01: 0x0249, 0x1a02: 0x0f41, 0x1a03: 0x0259, 0x1a04: 0x0f51, 0x1a05: 0x0359,\n\t0x1a06: 0x0f61, 0x1a07: 0x0f71, 0x1a08: 0x00d9, 0x1a09: 0x0f99, 0x1a0a: 0x2039, 0x1a0b: 0x0269,\n\t0x1a0c: 0x01d9, 0x1a0d: 0x0fa9, 0x1a0e: 0x0fb9, 0x1a0f: 0x1089, 0x1a10: 0x0279, 0x1a11: 0x0369,\n\t0x1a12: 0x0289, 0x1a13: 0x13d1, 0x1a14: 0x0039, 0x1a15: 0x0ee9, 0x1a16: 0x1159, 0x1a17: 0x0ef9,\n\t0x1a18: 0x0f09, 0x1a19: 0x1199, 0x1a1a: 0x0f31, 0x1a1b: 0x0249, 0x1a1c: 0x0f41, 0x1a1d: 0x0259,\n\t0x1a1e: 0x0f51, 0x1a1f: 0x0359, 0x1a20: 0x0f61, 0x1a21: 0x0f71, 0x1a22: 0x00d9, 0x1a23: 0x0f99,\n\t0x1a24: 0x2039, 0x1a25: 0x0269, 0x1a26: 0x01d9, 0x1a27: 0x0fa9, 0x1a28: 0x0fb9, 0x1a29: 0x1089,\n\t0x1a2a: 0x0279, 0x1a2b: 0x0369, 0x1a2c: 0x0289, 0x1a2d: 0x13d1, 0x1a2e: 0x0039, 0x1a2f: 0x0ee9,\n\t0x1a30: 0x1159, 0x1a31: 0x0ef9, 0x1a32: 0x0f09, 0x1a33: 0x1199, 0x1a34: 0x0f31, 0x1a35: 0x0249,\n\t0x1a36: 0x0f41, 0x1a37: 0x0259, 0x1a38: 0x0f51, 0x1a39: 0x0359, 0x1a3a: 0x0f61, 0x1a3b: 0x0f71,\n\t0x1a3c: 0x00d9, 0x1a3d: 0x0f99, 0x1a3e: 0x2039, 0x1a3f: 0x0269,\n\t// Block 0x69, offset 0x1a40\n\t0x1a40: 0x01d9, 0x1a41: 0x0fa9, 0x1a42: 0x0fb9, 0x1a43: 0x1089, 0x1a44: 0x0279, 0x1a45: 0x0369,\n\t0x1a46: 0x0289, 0x1a47: 0x13d1, 0x1a48: 0x0039, 0x1a49: 0x0ee9, 0x1a4a: 0x1159, 0x1a4b: 0x0ef9,\n\t0x1a4c: 0x0f09, 0x1a4d: 0x1199, 0x1a4e: 0x0f31, 0x1a4f: 0x0249, 0x1a50: 0x0f41, 0x1a51: 0x0259,\n\t0x1a52: 0x0f51, 0x1a53: 0x0359, 0x1a54: 0x0f61, 0x1a55: 0x0f71, 0x1a56: 0x00d9, 0x1a57: 0x0f99,\n\t0x1a58: 0x2039, 0x1a59: 0x0269, 0x1a5a: 0x01d9, 0x1a5b: 0x0fa9, 0x1a5c: 0x0fb9, 0x1a5d: 0x1089,\n\t0x1a5e: 0x0279, 0x1a5f: 0x0369, 0x1a60: 0x0289, 0x1a61: 0x13d1, 0x1a62: 0x0039, 0x1a63: 0x0ee9,\n\t0x1a64: 0x1159, 0x1a65: 0x0ef9, 0x1a66: 0x0f09, 0x1a67: 0x1199, 0x1a68: 0x0f31, 0x1a69: 0x0249,\n\t0x1a6a: 0x0f41, 0x1a6b: 0x0259, 0x1a6c: 0x0f51, 0x1a6d: 0x0359, 0x1a6e: 0x0f61, 0x1a6f: 0x0f71,\n\t0x1a70: 0x00d9, 0x1a71: 0x0f99, 0x1a72: 0x2039, 0x1a73: 0x0269, 0x1a74: 0x01d9, 0x1a75: 0x0fa9,\n\t0x1a76: 0x0fb9, 0x1a77: 0x1089, 0x1a78: 0x0279, 0x1a79: 0x0369, 0x1a7a: 0x0289, 0x1a7b: 0x13d1,\n\t0x1a7c: 0x0039, 0x1a7d: 0x0ee9, 0x1a7e: 0x1159, 0x1a7f: 0x0ef9,\n\t// Block 0x6a, offset 0x1a80\n\t0x1a80: 0x0f09, 0x1a81: 0x1199, 0x1a82: 0x0f31, 0x1a83: 0x0249, 0x1a84: 0x0f41, 0x1a85: 0x0259,\n\t0x1a86: 0x0f51, 0x1a87: 0x0359, 0x1a88: 0x0f61, 0x1a89: 0x0f71, 0x1a8a: 0x00d9, 0x1a8b: 0x0f99,\n\t0x1a8c: 0x2039, 0x1a8d: 0x0269, 0x1a8e: 0x01d9, 0x1a8f: 0x0fa9, 0x1a90: 0x0fb9, 0x1a91: 0x1089,\n\t0x1a92: 0x0279, 0x1a93: 0x0369, 0x1a94: 0x0289, 0x1a95: 0x13d1, 0x1a96: 0x0039, 0x1a97: 0x0ee9,\n\t0x1a98: 0x1159, 0x1a99: 0x0ef9, 0x1a9a: 0x0f09, 0x1a9b: 0x1199, 0x1a9c: 0x0f31, 0x1a9d: 0x0249,\n\t0x1a9e: 0x0f41, 0x1a9f: 0x0259, 0x1aa0: 0x0f51, 0x1aa1: 0x0359, 0x1aa2: 0x0f61, 0x1aa3: 0x0f71,\n\t0x1aa4: 0x00d9, 0x1aa5: 0x0f99, 0x1aa6: 0x2039, 0x1aa7: 0x0269, 0x1aa8: 0x01d9, 0x1aa9: 0x0fa9,\n\t0x1aaa: 0x0fb9, 0x1aab: 0x1089, 0x1aac: 0x0279, 0x1aad: 0x0369, 0x1aae: 0x0289, 0x1aaf: 0x13d1,\n\t0x1ab0: 0x0039, 0x1ab1: 0x0ee9, 0x1ab2: 0x1159, 0x1ab3: 0x0ef9, 0x1ab4: 0x0f09, 0x1ab5: 0x1199,\n\t0x1ab6: 0x0f31, 0x1ab7: 0x0249, 0x1ab8: 0x0f41, 0x1ab9: 0x0259, 0x1aba: 0x0f51, 0x1abb: 0x0359,\n\t0x1abc: 0x0f61, 0x1abd: 0x0f71, 0x1abe: 0x00d9, 0x1abf: 0x0f99,\n\t// Block 0x6b, offset 0x1ac0\n\t0x1ac0: 0x2039, 0x1ac1: 0x0269, 0x1ac2: 0x01d9, 0x1ac3: 0x0fa9, 0x1ac4: 0x0fb9, 0x1ac5: 0x1089,\n\t0x1ac6: 0x0279, 0x1ac7: 0x0369, 0x1ac8: 0x0289, 0x1ac9: 0x13d1, 0x1aca: 0x0039, 0x1acb: 0x0ee9,\n\t0x1acc: 0x1159, 0x1acd: 0x0ef9, 0x1ace: 0x0f09, 0x1acf: 0x1199, 0x1ad0: 0x0f31, 0x1ad1: 0x0249,\n\t0x1ad2: 0x0f41, 0x1ad3: 0x0259, 0x1ad4: 0x0f51, 0x1ad5: 0x0359, 0x1ad6: 0x0f61, 0x1ad7: 0x0f71,\n\t0x1ad8: 0x00d9, 0x1ad9: 0x0f99, 0x1ada: 0x2039, 0x1adb: 0x0269, 0x1adc: 0x01d9, 0x1add: 0x0fa9,\n\t0x1ade: 0x0fb9, 0x1adf: 0x1089, 0x1ae0: 0x0279, 0x1ae1: 0x0369, 0x1ae2: 0x0289, 0x1ae3: 0x13d1,\n\t0x1ae4: 0xba81, 0x1ae5: 0xba99, 0x1ae6: 0x0040, 0x1ae7: 0x0040, 0x1ae8: 0xbab1, 0x1ae9: 0x1099,\n\t0x1aea: 0x10b1, 0x1aeb: 0x10c9, 0x1aec: 0xbac9, 0x1aed: 0xbae1, 0x1aee: 0xbaf9, 0x1aef: 0x1429,\n\t0x1af0: 0x1a31, 0x1af1: 0xbb11, 0x1af2: 0xbb29, 0x1af3: 0xbb41, 0x1af4: 0xbb59, 0x1af5: 0xbb71,\n\t0x1af6: 0xbb89, 0x1af7: 0x2109, 0x1af8: 0x1111, 0x1af9: 0x1429, 0x1afa: 0xbba1, 0x1afb: 0xbbb9,\n\t0x1afc: 0xbbd1, 0x1afd: 0x10e1, 0x1afe: 0x10f9, 0x1aff: 0xbbe9,\n\t// Block 0x6c, offset 0x1b00\n\t0x1b00: 0x2079, 0x1b01: 0xbc01, 0x1b02: 0xbab1, 0x1b03: 0x1099, 0x1b04: 0x10b1, 0x1b05: 0x10c9,\n\t0x1b06: 0xbac9, 0x1b07: 0xbae1, 0x1b08: 0xbaf9, 0x1b09: 0x1429, 0x1b0a: 0x1a31, 0x1b0b: 0xbb11,\n\t0x1b0c: 0xbb29, 0x1b0d: 0xbb41, 0x1b0e: 0xbb59, 0x1b0f: 0xbb71, 0x1b10: 0xbb89, 0x1b11: 0x2109,\n\t0x1b12: 0x1111, 0x1b13: 0xbba1, 0x1b14: 0xbba1, 0x1b15: 0xbbb9, 0x1b16: 0xbbd1, 0x1b17: 0x10e1,\n\t0x1b18: 0x10f9, 0x1b19: 0xbbe9, 0x1b1a: 0x2079, 0x1b1b: 0xbc21, 0x1b1c: 0xbac9, 0x1b1d: 0x1429,\n\t0x1b1e: 0xbb11, 0x1b1f: 0x10e1, 0x1b20: 0x1111, 0x1b21: 0x2109, 0x1b22: 0xbab1, 0x1b23: 0x1099,\n\t0x1b24: 0x10b1, 0x1b25: 0x10c9, 0x1b26: 0xbac9, 0x1b27: 0xbae1, 0x1b28: 0xbaf9, 0x1b29: 0x1429,\n\t0x1b2a: 0x1a31, 0x1b2b: 0xbb11, 0x1b2c: 0xbb29, 0x1b2d: 0xbb41, 0x1b2e: 0xbb59, 0x1b2f: 0xbb71,\n\t0x1b30: 0xbb89, 0x1b31: 0x2109, 0x1b32: 0x1111, 0x1b33: 0x1429, 0x1b34: 0xbba1, 0x1b35: 0xbbb9,\n\t0x1b36: 0xbbd1, 0x1b37: 0x10e1, 0x1b38: 0x10f9, 0x1b39: 0xbbe9, 0x1b3a: 0x2079, 0x1b3b: 0xbc01,\n\t0x1b3c: 0xbab1, 0x1b3d: 0x1099, 0x1b3e: 0x10b1, 0x1b3f: 0x10c9,\n\t// Block 0x6d, offset 0x1b40\n\t0x1b40: 0xbac9, 0x1b41: 0xbae1, 0x1b42: 0xbaf9, 0x1b43: 0x1429, 0x1b44: 0x1a31, 0x1b45: 0xbb11,\n\t0x1b46: 0xbb29, 0x1b47: 0xbb41, 0x1b48: 0xbb59, 0x1b49: 0xbb71, 0x1b4a: 0xbb89, 0x1b4b: 0x2109,\n\t0x1b4c: 0x1111, 0x1b4d: 0xbba1, 0x1b4e: 0xbba1, 0x1b4f: 0xbbb9, 0x1b50: 0xbbd1, 0x1b51: 0x10e1,\n\t0x1b52: 0x10f9, 0x1b53: 0xbbe9, 0x1b54: 0x2079, 0x1b55: 0xbc21, 0x1b56: 0xbac9, 0x1b57: 0x1429,\n\t0x1b58: 0xbb11, 0x1b59: 0x10e1, 0x1b5a: 0x1111, 0x1b5b: 0x2109, 0x1b5c: 0xbab1, 0x1b5d: 0x1099,\n\t0x1b5e: 0x10b1, 0x1b5f: 0x10c9, 0x1b60: 0xbac9, 0x1b61: 0xbae1, 0x1b62: 0xbaf9, 0x1b63: 0x1429,\n\t0x1b64: 0x1a31, 0x1b65: 0xbb11, 0x1b66: 0xbb29, 0x1b67: 0xbb41, 0x1b68: 0xbb59, 0x1b69: 0xbb71,\n\t0x1b6a: 0xbb89, 0x1b6b: 0x2109, 0x1b6c: 0x1111, 0x1b6d: 0x1429, 0x1b6e: 0xbba1, 0x1b6f: 0xbbb9,\n\t0x1b70: 0xbbd1, 0x1b71: 0x10e1, 0x1b72: 0x10f9, 0x1b73: 0xbbe9, 0x1b74: 0x2079, 0x1b75: 0xbc01,\n\t0x1b76: 0xbab1, 0x1b77: 0x1099, 0x1b78: 0x10b1, 0x1b79: 0x10c9, 0x1b7a: 0xbac9, 0x1b7b: 0xbae1,\n\t0x1b7c: 0xbaf9, 0x1b7d: 0x1429, 0x1b7e: 0x1a31, 0x1b7f: 0xbb11,\n\t// Block 0x6e, offset 0x1b80\n\t0x1b80: 0xbb29, 0x1b81: 0xbb41, 0x1b82: 0xbb59, 0x1b83: 0xbb71, 0x1b84: 0xbb89, 0x1b85: 0x2109,\n\t0x1b86: 0x1111, 0x1b87: 0xbba1, 0x1b88: 0xbba1, 0x1b89: 0xbbb9, 0x1b8a: 0xbbd1, 0x1b8b: 0x10e1,\n\t0x1b8c: 0x10f9, 0x1b8d: 0xbbe9, 0x1b8e: 0x2079, 0x1b8f: 0xbc21, 0x1b90: 0xbac9, 0x1b91: 0x1429,\n\t0x1b92: 0xbb11, 0x1b93: 0x10e1, 0x1b94: 0x1111, 0x1b95: 0x2109, 0x1b96: 0xbab1, 0x1b97: 0x1099,\n\t0x1b98: 0x10b1, 0x1b99: 0x10c9, 0x1b9a: 0xbac9, 0x1b9b: 0xbae1, 0x1b9c: 0xbaf9, 0x1b9d: 0x1429,\n\t0x1b9e: 0x1a31, 0x1b9f: 0xbb11, 0x1ba0: 0xbb29, 0x1ba1: 0xbb41, 0x1ba2: 0xbb59, 0x1ba3: 0xbb71,\n\t0x1ba4: 0xbb89, 0x1ba5: 0x2109, 0x1ba6: 0x1111, 0x1ba7: 0x1429, 0x1ba8: 0xbba1, 0x1ba9: 0xbbb9,\n\t0x1baa: 0xbbd1, 0x1bab: 0x10e1, 0x1bac: 0x10f9, 0x1bad: 0xbbe9, 0x1bae: 0x2079, 0x1baf: 0xbc01,\n\t0x1bb0: 0xbab1, 0x1bb1: 0x1099, 0x1bb2: 0x10b1, 0x1bb3: 0x10c9, 0x1bb4: 0xbac9, 0x1bb5: 0xbae1,\n\t0x1bb6: 0xbaf9, 0x1bb7: 0x1429, 0x1bb8: 0x1a31, 0x1bb9: 0xbb11, 0x1bba: 0xbb29, 0x1bbb: 0xbb41,\n\t0x1bbc: 0xbb59, 0x1bbd: 0xbb71, 0x1bbe: 0xbb89, 0x1bbf: 0x2109,\n\t// Block 0x6f, offset 0x1bc0\n\t0x1bc0: 0x1111, 0x1bc1: 0xbba1, 0x1bc2: 0xbba1, 0x1bc3: 0xbbb9, 0x1bc4: 0xbbd1, 0x1bc5: 0x10e1,\n\t0x1bc6: 0x10f9, 0x1bc7: 0xbbe9, 0x1bc8: 0x2079, 0x1bc9: 0xbc21, 0x1bca: 0xbac9, 0x1bcb: 0x1429,\n\t0x1bcc: 0xbb11, 0x1bcd: 0x10e1, 0x1bce: 0x1111, 0x1bcf: 0x2109, 0x1bd0: 0xbab1, 0x1bd1: 0x1099,\n\t0x1bd2: 0x10b1, 0x1bd3: 0x10c9, 0x1bd4: 0xbac9, 0x1bd5: 0xbae1, 0x1bd6: 0xbaf9, 0x1bd7: 0x1429,\n\t0x1bd8: 0x1a31, 0x1bd9: 0xbb11, 0x1bda: 0xbb29, 0x1bdb: 0xbb41, 0x1bdc: 0xbb59, 0x1bdd: 0xbb71,\n\t0x1bde: 0xbb89, 0x1bdf: 0x2109, 0x1be0: 0x1111, 0x1be1: 0x1429, 0x1be2: 0xbba1, 0x1be3: 0xbbb9,\n\t0x1be4: 0xbbd1, 0x1be5: 0x10e1, 0x1be6: 0x10f9, 0x1be7: 0xbbe9, 0x1be8: 0x2079, 0x1be9: 0xbc01,\n\t0x1bea: 0xbab1, 0x1beb: 0x1099, 0x1bec: 0x10b1, 0x1bed: 0x10c9, 0x1bee: 0xbac9, 0x1bef: 0xbae1,\n\t0x1bf0: 0xbaf9, 0x1bf1: 0x1429, 0x1bf2: 0x1a31, 0x1bf3: 0xbb11, 0x1bf4: 0xbb29, 0x1bf5: 0xbb41,\n\t0x1bf6: 0xbb59, 0x1bf7: 0xbb71, 0x1bf8: 0xbb89, 0x1bf9: 0x2109, 0x1bfa: 0x1111, 0x1bfb: 0xbba1,\n\t0x1bfc: 0xbba1, 0x1bfd: 0xbbb9, 0x1bfe: 0xbbd1, 0x1bff: 0x10e1,\n\t// Block 0x70, offset 0x1c00\n\t0x1c00: 0x10f9, 0x1c01: 0xbbe9, 0x1c02: 0x2079, 0x1c03: 0xbc21, 0x1c04: 0xbac9, 0x1c05: 0x1429,\n\t0x1c06: 0xbb11, 0x1c07: 0x10e1, 0x1c08: 0x1111, 0x1c09: 0x2109, 0x1c0a: 0xbc41, 0x1c0b: 0xbc41,\n\t0x1c0c: 0x0040, 0x1c0d: 0x0040, 0x1c0e: 0x1f41, 0x1c0f: 0x00c9, 0x1c10: 0x0069, 0x1c11: 0x0079,\n\t0x1c12: 0x1f51, 0x1c13: 0x1f61, 0x1c14: 0x1f71, 0x1c15: 0x1f81, 0x1c16: 0x1f91, 0x1c17: 0x1fa1,\n\t0x1c18: 0x1f41, 0x1c19: 0x00c9, 0x1c1a: 0x0069, 0x1c1b: 0x0079, 0x1c1c: 0x1f51, 0x1c1d: 0x1f61,\n\t0x1c1e: 0x1f71, 0x1c1f: 0x1f81, 0x1c20: 0x1f91, 0x1c21: 0x1fa1, 0x1c22: 0x1f41, 0x1c23: 0x00c9,\n\t0x1c24: 0x0069, 0x1c25: 0x0079, 0x1c26: 0x1f51, 0x1c27: 0x1f61, 0x1c28: 0x1f71, 0x1c29: 0x1f81,\n\t0x1c2a: 0x1f91, 0x1c2b: 0x1fa1, 0x1c2c: 0x1f41, 0x1c2d: 0x00c9, 0x1c2e: 0x0069, 0x1c2f: 0x0079,\n\t0x1c30: 0x1f51, 0x1c31: 0x1f61, 0x1c32: 0x1f71, 0x1c33: 0x1f81, 0x1c34: 0x1f91, 0x1c35: 0x1fa1,\n\t0x1c36: 0x1f41, 0x1c37: 0x00c9, 0x1c38: 0x0069, 0x1c39: 0x0079, 0x1c3a: 0x1f51, 0x1c3b: 0x1f61,\n\t0x1c3c: 0x1f71, 0x1c3d: 0x1f81, 0x1c3e: 0x1f91, 0x1c3f: 0x1fa1,\n\t// Block 0x71, offset 0x1c40\n\t0x1c40: 0xe115, 0x1c41: 0xe115, 0x1c42: 0xe135, 0x1c43: 0xe135, 0x1c44: 0xe115, 0x1c45: 0xe115,\n\t0x1c46: 0xe175, 0x1c47: 0xe175, 0x1c48: 0xe115, 0x1c49: 0xe115, 0x1c4a: 0xe135, 0x1c4b: 0xe135,\n\t0x1c4c: 0xe115, 0x1c4d: 0xe115, 0x1c4e: 0xe1f5, 0x1c4f: 0xe1f5, 0x1c50: 0xe115, 0x1c51: 0xe115,\n\t0x1c52: 0xe135, 0x1c53: 0xe135, 0x1c54: 0xe115, 0x1c55: 0xe115, 0x1c56: 0xe175, 0x1c57: 0xe175,\n\t0x1c58: 0xe115, 0x1c59: 0xe115, 0x1c5a: 0xe135, 0x1c5b: 0xe135, 0x1c5c: 0xe115, 0x1c5d: 0xe115,\n\t0x1c5e: 0x8b05, 0x1c5f: 0x8b05, 0x1c60: 0x04b5, 0x1c61: 0x04b5, 0x1c62: 0x0a08, 0x1c63: 0x0a08,\n\t0x1c64: 0x0a08, 0x1c65: 0x0a08, 0x1c66: 0x0a08, 0x1c67: 0x0a08, 0x1c68: 0x0a08, 0x1c69: 0x0a08,\n\t0x1c6a: 0x0a08, 0x1c6b: 0x0a08, 0x1c6c: 0x0a08, 0x1c6d: 0x0a08, 0x1c6e: 0x0a08, 0x1c6f: 0x0a08,\n\t0x1c70: 0x0a08, 0x1c71: 0x0a08, 0x1c72: 0x0a08, 0x1c73: 0x0a08, 0x1c74: 0x0a08, 0x1c75: 0x0a08,\n\t0x1c76: 0x0a08, 0x1c77: 0x0a08, 0x1c78: 0x0a08, 0x1c79: 0x0a08, 0x1c7a: 0x0a08, 0x1c7b: 0x0a08,\n\t0x1c7c: 0x0a08, 0x1c7d: 0x0a08, 0x1c7e: 0x0a08, 0x1c7f: 0x0a08,\n\t// Block 0x72, offset 0x1c80\n\t0x1c80: 0xb189, 0x1c81: 0xb1a1, 0x1c82: 0xb201, 0x1c83: 0xb249, 0x1c84: 0x0040, 0x1c85: 0xb411,\n\t0x1c86: 0xb291, 0x1c87: 0xb219, 0x1c88: 0xb309, 0x1c89: 0xb429, 0x1c8a: 0xb399, 0x1c8b: 0xb3b1,\n\t0x1c8c: 0xb3c9, 0x1c8d: 0xb3e1, 0x1c8e: 0xb2a9, 0x1c8f: 0xb339, 0x1c90: 0xb369, 0x1c91: 0xb2d9,\n\t0x1c92: 0xb381, 0x1c93: 0xb279, 0x1c94: 0xb2c1, 0x1c95: 0xb1d1, 0x1c96: 0xb1e9, 0x1c97: 0xb231,\n\t0x1c98: 0xb261, 0x1c99: 0xb2f1, 0x1c9a: 0xb321, 0x1c9b: 0xb351, 0x1c9c: 0xbc59, 0x1c9d: 0x7949,\n\t0x1c9e: 0xbc71, 0x1c9f: 0xbc89, 0x1ca0: 0x0040, 0x1ca1: 0xb1a1, 0x1ca2: 0xb201, 0x1ca3: 0x0040,\n\t0x1ca4: 0xb3f9, 0x1ca5: 0x0040, 0x1ca6: 0x0040, 0x1ca7: 0xb219, 0x1ca8: 0x0040, 0x1ca9: 0xb429,\n\t0x1caa: 0xb399, 0x1cab: 0xb3b1, 0x1cac: 0xb3c9, 0x1cad: 0xb3e1, 0x1cae: 0xb2a9, 0x1caf: 0xb339,\n\t0x1cb0: 0xb369, 0x1cb1: 0xb2d9, 0x1cb2: 0xb381, 0x1cb3: 0x0040, 0x1cb4: 0xb2c1, 0x1cb5: 0xb1d1,\n\t0x1cb6: 0xb1e9, 0x1cb7: 0xb231, 0x1cb8: 0x0040, 0x1cb9: 0xb2f1, 0x1cba: 0x0040, 0x1cbb: 0xb351,\n\t0x1cbc: 0x0040, 0x1cbd: 0x0040, 0x1cbe: 0x0040, 0x1cbf: 0x0040,\n\t// Block 0x73, offset 0x1cc0\n\t0x1cc0: 0x0040, 0x1cc1: 0x0040, 0x1cc2: 0xb201, 0x1cc3: 0x0040, 0x1cc4: 0x0040, 0x1cc5: 0x0040,\n\t0x1cc6: 0x0040, 0x1cc7: 0xb219, 0x1cc8: 0x0040, 0x1cc9: 0xb429, 0x1cca: 0x0040, 0x1ccb: 0xb3b1,\n\t0x1ccc: 0x0040, 0x1ccd: 0xb3e1, 0x1cce: 0xb2a9, 0x1ccf: 0xb339, 0x1cd0: 0x0040, 0x1cd1: 0xb2d9,\n\t0x1cd2: 0xb381, 0x1cd3: 0x0040, 0x1cd4: 0xb2c1, 0x1cd5: 0x0040, 0x1cd6: 0x0040, 0x1cd7: 0xb231,\n\t0x1cd8: 0x0040, 0x1cd9: 0xb2f1, 0x1cda: 0x0040, 0x1cdb: 0xb351, 0x1cdc: 0x0040, 0x1cdd: 0x7949,\n\t0x1cde: 0x0040, 0x1cdf: 0xbc89, 0x1ce0: 0x0040, 0x1ce1: 0xb1a1, 0x1ce2: 0xb201, 0x1ce3: 0x0040,\n\t0x1ce4: 0xb3f9, 0x1ce5: 0x0040, 0x1ce6: 0x0040, 0x1ce7: 0xb219, 0x1ce8: 0xb309, 0x1ce9: 0xb429,\n\t0x1cea: 0xb399, 0x1ceb: 0x0040, 0x1cec: 0xb3c9, 0x1ced: 0xb3e1, 0x1cee: 0xb2a9, 0x1cef: 0xb339,\n\t0x1cf0: 0xb369, 0x1cf1: 0xb2d9, 0x1cf2: 0xb381, 0x1cf3: 0x0040, 0x1cf4: 0xb2c1, 0x1cf5: 0xb1d1,\n\t0x1cf6: 0xb1e9, 0x1cf7: 0xb231, 0x1cf8: 0x0040, 0x1cf9: 0xb2f1, 0x1cfa: 0xb321, 0x1cfb: 0xb351,\n\t0x1cfc: 0xbc59, 0x1cfd: 0x0040, 0x1cfe: 0xbc71, 0x1cff: 0x0040,\n\t// Block 0x74, offset 0x1d00\n\t0x1d00: 0xb189, 0x1d01: 0xb1a1, 0x1d02: 0xb201, 0x1d03: 0xb249, 0x1d04: 0xb3f9, 0x1d05: 0xb411,\n\t0x1d06: 0xb291, 0x1d07: 0xb219, 0x1d08: 0xb309, 0x1d09: 0xb429, 0x1d0a: 0x0040, 0x1d0b: 0xb3b1,\n\t0x1d0c: 0xb3c9, 0x1d0d: 0xb3e1, 0x1d0e: 0xb2a9, 0x1d0f: 0xb339, 0x1d10: 0xb369, 0x1d11: 0xb2d9,\n\t0x1d12: 0xb381, 0x1d13: 0xb279, 0x1d14: 0xb2c1, 0x1d15: 0xb1d1, 0x1d16: 0xb1e9, 0x1d17: 0xb231,\n\t0x1d18: 0xb261, 0x1d19: 0xb2f1, 0x1d1a: 0xb321, 0x1d1b: 0xb351, 0x1d1c: 0x0040, 0x1d1d: 0x0040,\n\t0x1d1e: 0x0040, 0x1d1f: 0x0040, 0x1d20: 0x0040, 0x1d21: 0xb1a1, 0x1d22: 0xb201, 0x1d23: 0xb249,\n\t0x1d24: 0x0040, 0x1d25: 0xb411, 0x1d26: 0xb291, 0x1d27: 0xb219, 0x1d28: 0xb309, 0x1d29: 0xb429,\n\t0x1d2a: 0x0040, 0x1d2b: 0xb3b1, 0x1d2c: 0xb3c9, 0x1d2d: 0xb3e1, 0x1d2e: 0xb2a9, 0x1d2f: 0xb339,\n\t0x1d30: 0xb369, 0x1d31: 0xb2d9, 0x1d32: 0xb381, 0x1d33: 0xb279, 0x1d34: 0xb2c1, 0x1d35: 0xb1d1,\n\t0x1d36: 0xb1e9, 0x1d37: 0xb231, 0x1d38: 0xb261, 0x1d39: 0xb2f1, 0x1d3a: 0xb321, 0x1d3b: 0xb351,\n\t0x1d3c: 0x0040, 0x1d3d: 0x0040, 0x1d3e: 0x0040, 0x1d3f: 0x0040,\n\t// Block 0x75, offset 0x1d40\n\t0x1d40: 0x0040, 0x1d41: 0xbca2, 0x1d42: 0xbcba, 0x1d43: 0xbcd2, 0x1d44: 0xbcea, 0x1d45: 0xbd02,\n\t0x1d46: 0xbd1a, 0x1d47: 0xbd32, 0x1d48: 0xbd4a, 0x1d49: 0xbd62, 0x1d4a: 0xbd7a, 0x1d4b: 0x0018,\n\t0x1d4c: 0x0018, 0x1d4d: 0x0040, 0x1d4e: 0x0040, 0x1d4f: 0x0040, 0x1d50: 0xbd92, 0x1d51: 0xbdb2,\n\t0x1d52: 0xbdd2, 0x1d53: 0xbdf2, 0x1d54: 0xbe12, 0x1d55: 0xbe32, 0x1d56: 0xbe52, 0x1d57: 0xbe72,\n\t0x1d58: 0xbe92, 0x1d59: 0xbeb2, 0x1d5a: 0xbed2, 0x1d5b: 0xbef2, 0x1d5c: 0xbf12, 0x1d5d: 0xbf32,\n\t0x1d5e: 0xbf52, 0x1d5f: 0xbf72, 0x1d60: 0xbf92, 0x1d61: 0xbfb2, 0x1d62: 0xbfd2, 0x1d63: 0xbff2,\n\t0x1d64: 0xc012, 0x1d65: 0xc032, 0x1d66: 0xc052, 0x1d67: 0xc072, 0x1d68: 0xc092, 0x1d69: 0xc0b2,\n\t0x1d6a: 0xc0d1, 0x1d6b: 0x1159, 0x1d6c: 0x0269, 0x1d6d: 0x6671, 0x1d6e: 0xc111, 0x1d6f: 0x0040,\n\t0x1d70: 0x0039, 0x1d71: 0x0ee9, 0x1d72: 0x1159, 0x1d73: 0x0ef9, 0x1d74: 0x0f09, 0x1d75: 0x1199,\n\t0x1d76: 0x0f31, 0x1d77: 0x0249, 0x1d78: 0x0f41, 0x1d79: 0x0259, 0x1d7a: 0x0f51, 0x1d7b: 0x0359,\n\t0x1d7c: 0x0f61, 0x1d7d: 0x0f71, 0x1d7e: 0x00d9, 0x1d7f: 0x0f99,\n\t// Block 0x76, offset 0x1d80\n\t0x1d80: 0x2039, 0x1d81: 0x0269, 0x1d82: 0x01d9, 0x1d83: 0x0fa9, 0x1d84: 0x0fb9, 0x1d85: 0x1089,\n\t0x1d86: 0x0279, 0x1d87: 0x0369, 0x1d88: 0x0289, 0x1d89: 0x13d1, 0x1d8a: 0xc129, 0x1d8b: 0x65b1,\n\t0x1d8c: 0xc141, 0x1d8d: 0x1441, 0x1d8e: 0xc159, 0x1d8f: 0xc179, 0x1d90: 0x0018, 0x1d91: 0x0018,\n\t0x1d92: 0x0018, 0x1d93: 0x0018, 0x1d94: 0x0018, 0x1d95: 0x0018, 0x1d96: 0x0018, 0x1d97: 0x0018,\n\t0x1d98: 0x0018, 0x1d99: 0x0018, 0x1d9a: 0x0018, 0x1d9b: 0x0018, 0x1d9c: 0x0018, 0x1d9d: 0x0018,\n\t0x1d9e: 0x0018, 0x1d9f: 0x0018, 0x1da0: 0x0018, 0x1da1: 0x0018, 0x1da2: 0x0018, 0x1da3: 0x0018,\n\t0x1da4: 0x0018, 0x1da5: 0x0018, 0x1da6: 0x0018, 0x1da7: 0x0018, 0x1da8: 0x0018, 0x1da9: 0x0018,\n\t0x1daa: 0xc191, 0x1dab: 0xc1a9, 0x1dac: 0x0040, 0x1dad: 0x0040, 0x1dae: 0x0040, 0x1daf: 0x0040,\n\t0x1db0: 0x0018, 0x1db1: 0x0018, 0x1db2: 0x0018, 0x1db3: 0x0018, 0x1db4: 0x0018, 0x1db5: 0x0018,\n\t0x1db6: 0x0018, 0x1db7: 0x0018, 0x1db8: 0x0018, 0x1db9: 0x0018, 0x1dba: 0x0018, 0x1dbb: 0x0018,\n\t0x1dbc: 0x0018, 0x1dbd: 0x0018, 0x1dbe: 0x0018, 0x1dbf: 0x0018,\n\t// Block 0x77, offset 0x1dc0\n\t0x1dc0: 0xc1d9, 0x1dc1: 0xc211, 0x1dc2: 0xc249, 0x1dc3: 0x0040, 0x1dc4: 0x0040, 0x1dc5: 0x0040,\n\t0x1dc6: 0x0040, 0x1dc7: 0x0040, 0x1dc8: 0x0040, 0x1dc9: 0x0040, 0x1dca: 0x0040, 0x1dcb: 0x0040,\n\t0x1dcc: 0x0040, 0x1dcd: 0x0040, 0x1dce: 0x0040, 0x1dcf: 0x0040, 0x1dd0: 0xc269, 0x1dd1: 0xc289,\n\t0x1dd2: 0xc2a9, 0x1dd3: 0xc2c9, 0x1dd4: 0xc2e9, 0x1dd5: 0xc309, 0x1dd6: 0xc329, 0x1dd7: 0xc349,\n\t0x1dd8: 0xc369, 0x1dd9: 0xc389, 0x1dda: 0xc3a9, 0x1ddb: 0xc3c9, 0x1ddc: 0xc3e9, 0x1ddd: 0xc409,\n\t0x1dde: 0xc429, 0x1ddf: 0xc449, 0x1de0: 0xc469, 0x1de1: 0xc489, 0x1de2: 0xc4a9, 0x1de3: 0xc4c9,\n\t0x1de4: 0xc4e9, 0x1de5: 0xc509, 0x1de6: 0xc529, 0x1de7: 0xc549, 0x1de8: 0xc569, 0x1de9: 0xc589,\n\t0x1dea: 0xc5a9, 0x1deb: 0xc5c9, 0x1dec: 0xc5e9, 0x1ded: 0xc609, 0x1dee: 0xc629, 0x1def: 0xc649,\n\t0x1df0: 0xc669, 0x1df1: 0xc689, 0x1df2: 0xc6a9, 0x1df3: 0xc6c9, 0x1df4: 0xc6e9, 0x1df5: 0xc709,\n\t0x1df6: 0xc729, 0x1df7: 0xc749, 0x1df8: 0xc769, 0x1df9: 0xc789, 0x1dfa: 0xc7a9, 0x1dfb: 0xc7c9,\n\t0x1dfc: 0x0040, 0x1dfd: 0x0040, 0x1dfe: 0x0040, 0x1dff: 0x0040,\n\t// Block 0x78, offset 0x1e00\n\t0x1e00: 0xcaf9, 0x1e01: 0xcb19, 0x1e02: 0xcb39, 0x1e03: 0x8b1d, 0x1e04: 0xcb59, 0x1e05: 0xcb79,\n\t0x1e06: 0xcb99, 0x1e07: 0xcbb9, 0x1e08: 0xcbd9, 0x1e09: 0xcbf9, 0x1e0a: 0xcc19, 0x1e0b: 0xcc39,\n\t0x1e0c: 0xcc59, 0x1e0d: 0x8b3d, 0x1e0e: 0xcc79, 0x1e0f: 0xcc99, 0x1e10: 0xccb9, 0x1e11: 0xccd9,\n\t0x1e12: 0x8b5d, 0x1e13: 0xccf9, 0x1e14: 0xcd19, 0x1e15: 0xc429, 0x1e16: 0x8b7d, 0x1e17: 0xcd39,\n\t0x1e18: 0xcd59, 0x1e19: 0xcd79, 0x1e1a: 0xcd99, 0x1e1b: 0xcdb9, 0x1e1c: 0x8b9d, 0x1e1d: 0xcdd9,\n\t0x1e1e: 0xcdf9, 0x1e1f: 0xce19, 0x1e20: 0xce39, 0x1e21: 0xce59, 0x1e22: 0xc789, 0x1e23: 0xce79,\n\t0x1e24: 0xce99, 0x1e25: 0xceb9, 0x1e26: 0xced9, 0x1e27: 0xcef9, 0x1e28: 0xcf19, 0x1e29: 0xcf39,\n\t0x1e2a: 0xcf59, 0x1e2b: 0xcf79, 0x1e2c: 0xcf99, 0x1e2d: 0xcfb9, 0x1e2e: 0xcfd9, 0x1e2f: 0xcff9,\n\t0x1e30: 0xd019, 0x1e31: 0xd039, 0x1e32: 0xd039, 0x1e33: 0xd039, 0x1e34: 0x8bbd, 0x1e35: 0xd059,\n\t0x1e36: 0xd079, 0x1e37: 0xd099, 0x1e38: 0x8bdd, 0x1e39: 0xd0b9, 0x1e3a: 0xd0d9, 0x1e3b: 0xd0f9,\n\t0x1e3c: 0xd119, 0x1e3d: 0xd139, 0x1e3e: 0xd159, 0x1e3f: 0xd179,\n\t// Block 0x79, offset 0x1e40\n\t0x1e40: 0xd199, 0x1e41: 0xd1b9, 0x1e42: 0xd1d9, 0x1e43: 0xd1f9, 0x1e44: 0xd219, 0x1e45: 0xd239,\n\t0x1e46: 0xd239, 0x1e47: 0xd259, 0x1e48: 0xd279, 0x1e49: 0xd299, 0x1e4a: 0xd2b9, 0x1e4b: 0xd2d9,\n\t0x1e4c: 0xd2f9, 0x1e4d: 0xd319, 0x1e4e: 0xd339, 0x1e4f: 0xd359, 0x1e50: 0xd379, 0x1e51: 0xd399,\n\t0x1e52: 0xd3b9, 0x1e53: 0xd3d9, 0x1e54: 0xd3f9, 0x1e55: 0xd419, 0x1e56: 0xd439, 0x1e57: 0xd459,\n\t0x1e58: 0xd479, 0x1e59: 0x8bfd, 0x1e5a: 0xd499, 0x1e5b: 0xd4b9, 0x1e5c: 0xd4d9, 0x1e5d: 0xc309,\n\t0x1e5e: 0xd4f9, 0x1e5f: 0xd519, 0x1e60: 0x8c1d, 0x1e61: 0x8c3d, 0x1e62: 0xd539, 0x1e63: 0xd559,\n\t0x1e64: 0xd579, 0x1e65: 0xd599, 0x1e66: 0xd5b9, 0x1e67: 0xd5d9, 0x1e68: 0x2040, 0x1e69: 0xd5f9,\n\t0x1e6a: 0xd619, 0x1e6b: 0xd619, 0x1e6c: 0x8c5d, 0x1e6d: 0xd639, 0x1e6e: 0xd659, 0x1e6f: 0xd679,\n\t0x1e70: 0xd699, 0x1e71: 0x8c7d, 0x1e72: 0xd6b9, 0x1e73: 0xd6d9, 0x1e74: 0x2040, 0x1e75: 0xd6f9,\n\t0x1e76: 0xd719, 0x1e77: 0xd739, 0x1e78: 0xd759, 0x1e79: 0xd779, 0x1e7a: 0xd799, 0x1e7b: 0x8c9d,\n\t0x1e7c: 0xd7b9, 0x1e7d: 0x8cbd, 0x1e7e: 0xd7d9, 0x1e7f: 0xd7f9,\n\t// Block 0x7a, offset 0x1e80\n\t0x1e80: 0xd819, 0x1e81: 0xd839, 0x1e82: 0xd859, 0x1e83: 0xd879, 0x1e84: 0xd899, 0x1e85: 0xd8b9,\n\t0x1e86: 0xd8d9, 0x1e87: 0xd8f9, 0x1e88: 0xd919, 0x1e89: 0x8cdd, 0x1e8a: 0xd939, 0x1e8b: 0xd959,\n\t0x1e8c: 0xd979, 0x1e8d: 0xd999, 0x1e8e: 0xd9b9, 0x1e8f: 0x8cfd, 0x1e90: 0xd9d9, 0x1e91: 0x8d1d,\n\t0x1e92: 0x8d3d, 0x1e93: 0xd9f9, 0x1e94: 0xda19, 0x1e95: 0xda19, 0x1e96: 0xda39, 0x1e97: 0x8d5d,\n\t0x1e98: 0x8d7d, 0x1e99: 0xda59, 0x1e9a: 0xda79, 0x1e9b: 0xda99, 0x1e9c: 0xdab9, 0x1e9d: 0xdad9,\n\t0x1e9e: 0xdaf9, 0x1e9f: 0xdb19, 0x1ea0: 0xdb39, 0x1ea1: 0xdb59, 0x1ea2: 0xdb79, 0x1ea3: 0xdb99,\n\t0x1ea4: 0x8d9d, 0x1ea5: 0xdbb9, 0x1ea6: 0xdbd9, 0x1ea7: 0xdbf9, 0x1ea8: 0xdc19, 0x1ea9: 0xdbf9,\n\t0x1eaa: 0xdc39, 0x1eab: 0xdc59, 0x1eac: 0xdc79, 0x1ead: 0xdc99, 0x1eae: 0xdcb9, 0x1eaf: 0xdcd9,\n\t0x1eb0: 0xdcf9, 0x1eb1: 0xdd19, 0x1eb2: 0xdd39, 0x1eb3: 0xdd59, 0x1eb4: 0xdd79, 0x1eb5: 0xdd99,\n\t0x1eb6: 0xddb9, 0x1eb7: 0xddd9, 0x1eb8: 0x8dbd, 0x1eb9: 0xddf9, 0x1eba: 0xde19, 0x1ebb: 0xde39,\n\t0x1ebc: 0xde59, 0x1ebd: 0xde79, 0x1ebe: 0x8ddd, 0x1ebf: 0xde99,\n\t// Block 0x7b, offset 0x1ec0\n\t0x1ec0: 0xe599, 0x1ec1: 0xe5b9, 0x1ec2: 0xe5d9, 0x1ec3: 0xe5f9, 0x1ec4: 0xe619, 0x1ec5: 0xe639,\n\t0x1ec6: 0x8efd, 0x1ec7: 0xe659, 0x1ec8: 0xe679, 0x1ec9: 0xe699, 0x1eca: 0xe6b9, 0x1ecb: 0xe6d9,\n\t0x1ecc: 0xe6f9, 0x1ecd: 0x8f1d, 0x1ece: 0xe719, 0x1ecf: 0xe739, 0x1ed0: 0x8f3d, 0x1ed1: 0x8f5d,\n\t0x1ed2: 0xe759, 0x1ed3: 0xe779, 0x1ed4: 0xe799, 0x1ed5: 0xe7b9, 0x1ed6: 0xe7d9, 0x1ed7: 0xe7f9,\n\t0x1ed8: 0xe819, 0x1ed9: 0xe839, 0x1eda: 0xe859, 0x1edb: 0x8f7d, 0x1edc: 0xe879, 0x1edd: 0x8f9d,\n\t0x1ede: 0xe899, 0x1edf: 0x2040, 0x1ee0: 0xe8b9, 0x1ee1: 0xe8d9, 0x1ee2: 0xe8f9, 0x1ee3: 0x8fbd,\n\t0x1ee4: 0xe919, 0x1ee5: 0xe939, 0x1ee6: 0x8fdd, 0x1ee7: 0x8ffd, 0x1ee8: 0xe959, 0x1ee9: 0xe979,\n\t0x1eea: 0xe999, 0x1eeb: 0xe9b9, 0x1eec: 0xe9d9, 0x1eed: 0xe9d9, 0x1eee: 0xe9f9, 0x1eef: 0xea19,\n\t0x1ef0: 0xea39, 0x1ef1: 0xea59, 0x1ef2: 0xea79, 0x1ef3: 0xea99, 0x1ef4: 0xeab9, 0x1ef5: 0x901d,\n\t0x1ef6: 0xead9, 0x1ef7: 0x903d, 0x1ef8: 0xeaf9, 0x1ef9: 0x905d, 0x1efa: 0xeb19, 0x1efb: 0x907d,\n\t0x1efc: 0x909d, 0x1efd: 0x90bd, 0x1efe: 0xeb39, 0x1eff: 0xeb59,\n\t// Block 0x7c, offset 0x1f00\n\t0x1f00: 0xeb79, 0x1f01: 0x90dd, 0x1f02: 0x90fd, 0x1f03: 0x911d, 0x1f04: 0x913d, 0x1f05: 0xeb99,\n\t0x1f06: 0xebb9, 0x1f07: 0xebb9, 0x1f08: 0xebd9, 0x1f09: 0xebf9, 0x1f0a: 0xec19, 0x1f0b: 0xec39,\n\t0x1f0c: 0xec59, 0x1f0d: 0x915d, 0x1f0e: 0xec79, 0x1f0f: 0xec99, 0x1f10: 0xecb9, 0x1f11: 0xecd9,\n\t0x1f12: 0x917d, 0x1f13: 0xecf9, 0x1f14: 0x919d, 0x1f15: 0x91bd, 0x1f16: 0xed19, 0x1f17: 0xed39,\n\t0x1f18: 0xed59, 0x1f19: 0xed79, 0x1f1a: 0xed99, 0x1f1b: 0xedb9, 0x1f1c: 0x91dd, 0x1f1d: 0x91fd,\n\t0x1f1e: 0x921d, 0x1f1f: 0x2040, 0x1f20: 0xedd9, 0x1f21: 0x923d, 0x1f22: 0xedf9, 0x1f23: 0xee19,\n\t0x1f24: 0xee39, 0x1f25: 0x925d, 0x1f26: 0xee59, 0x1f27: 0xee79, 0x1f28: 0xee99, 0x1f29: 0xeeb9,\n\t0x1f2a: 0xeed9, 0x1f2b: 0x927d, 0x1f2c: 0xeef9, 0x1f2d: 0xef19, 0x1f2e: 0xef39, 0x1f2f: 0xef59,\n\t0x1f30: 0xef79, 0x1f31: 0xef99, 0x1f32: 0x929d, 0x1f33: 0x92bd, 0x1f34: 0xefb9, 0x1f35: 0x92dd,\n\t0x1f36: 0xefd9, 0x1f37: 0x92fd, 0x1f38: 0xeff9, 0x1f39: 0xf019, 0x1f3a: 0xf039, 0x1f3b: 0x931d,\n\t0x1f3c: 0x933d, 0x1f3d: 0xf059, 0x1f3e: 0x935d, 0x1f3f: 0xf079,\n\t// Block 0x7d, offset 0x1f40\n\t0x1f40: 0xf6b9, 0x1f41: 0xf6d9, 0x1f42: 0xf6f9, 0x1f43: 0xf719, 0x1f44: 0xf739, 0x1f45: 0x951d,\n\t0x1f46: 0xf759, 0x1f47: 0xf779, 0x1f48: 0xf799, 0x1f49: 0xf7b9, 0x1f4a: 0xf7d9, 0x1f4b: 0x953d,\n\t0x1f4c: 0x955d, 0x1f4d: 0xf7f9, 0x1f4e: 0xf819, 0x1f4f: 0xf839, 0x1f50: 0xf859, 0x1f51: 0xf879,\n\t0x1f52: 0xf899, 0x1f53: 0x957d, 0x1f54: 0xf8b9, 0x1f55: 0xf8d9, 0x1f56: 0xf8f9, 0x1f57: 0xf919,\n\t0x1f58: 0x959d, 0x1f59: 0x95bd, 0x1f5a: 0xf939, 0x1f5b: 0xf959, 0x1f5c: 0xf979, 0x1f5d: 0x95dd,\n\t0x1f5e: 0xf999, 0x1f5f: 0xf9b9, 0x1f60: 0x6815, 0x1f61: 0x95fd, 0x1f62: 0xf9d9, 0x1f63: 0xf9f9,\n\t0x1f64: 0xfa19, 0x1f65: 0x961d, 0x1f66: 0xfa39, 0x1f67: 0xfa59, 0x1f68: 0xfa79, 0x1f69: 0xfa99,\n\t0x1f6a: 0xfab9, 0x1f6b: 0xfad9, 0x1f6c: 0xfaf9, 0x1f6d: 0x963d, 0x1f6e: 0xfb19, 0x1f6f: 0xfb39,\n\t0x1f70: 0xfb59, 0x1f71: 0x965d, 0x1f72: 0xfb79, 0x1f73: 0xfb99, 0x1f74: 0xfbb9, 0x1f75: 0xfbd9,\n\t0x1f76: 0x7b35, 0x1f77: 0x967d, 0x1f78: 0xfbf9, 0x1f79: 0xfc19, 0x1f7a: 0xfc39, 0x1f7b: 0x969d,\n\t0x1f7c: 0xfc59, 0x1f7d: 0x96bd, 0x1f7e: 0xfc79, 0x1f7f: 0xfc79,\n\t// Block 0x7e, offset 0x1f80\n\t0x1f80: 0xfc99, 0x1f81: 0x96dd, 0x1f82: 0xfcb9, 0x1f83: 0xfcd9, 0x1f84: 0xfcf9, 0x1f85: 0xfd19,\n\t0x1f86: 0xfd39, 0x1f87: 0xfd59, 0x1f88: 0xfd79, 0x1f89: 0x96fd, 0x1f8a: 0xfd99, 0x1f8b: 0xfdb9,\n\t0x1f8c: 0xfdd9, 0x1f8d: 0xfdf9, 0x1f8e: 0xfe19, 0x1f8f: 0xfe39, 0x1f90: 0x971d, 0x1f91: 0xfe59,\n\t0x1f92: 0x973d, 0x1f93: 0x975d, 0x1f94: 0x977d, 0x1f95: 0xfe79, 0x1f96: 0xfe99, 0x1f97: 0xfeb9,\n\t0x1f98: 0xfed9, 0x1f99: 0xfef9, 0x1f9a: 0xff19, 0x1f9b: 0xff39, 0x1f9c: 0xff59, 0x1f9d: 0x979d,\n\t0x1f9e: 0x0040, 0x1f9f: 0x0040, 0x1fa0: 0x0040, 0x1fa1: 0x0040, 0x1fa2: 0x0040, 0x1fa3: 0x0040,\n\t0x1fa4: 0x0040, 0x1fa5: 0x0040, 0x1fa6: 0x0040, 0x1fa7: 0x0040, 0x1fa8: 0x0040, 0x1fa9: 0x0040,\n\t0x1faa: 0x0040, 0x1fab: 0x0040, 0x1fac: 0x0040, 0x1fad: 0x0040, 0x1fae: 0x0040, 0x1faf: 0x0040,\n\t0x1fb0: 0x0040, 0x1fb1: 0x0040, 0x1fb2: 0x0040, 0x1fb3: 0x0040, 0x1fb4: 0x0040, 0x1fb5: 0x0040,\n\t0x1fb6: 0x0040, 0x1fb7: 0x0040, 0x1fb8: 0x0040, 0x1fb9: 0x0040, 0x1fba: 0x0040, 0x1fbb: 0x0040,\n\t0x1fbc: 0x0040, 0x1fbd: 0x0040, 0x1fbe: 0x0040, 0x1fbf: 0x0040,\n}\n\n// idnaIndex: 36 blocks, 2304 entries, 4608 bytes\n// Block 0 is the zero block.\nvar idnaIndex = [2304]uint16{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x01, 0xc3: 0x7d, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x04, 0xc7: 0x05,\n\t0xc8: 0x06, 0xc9: 0x7e, 0xca: 0x7f, 0xcb: 0x07, 0xcc: 0x80, 0xcd: 0x08, 0xce: 0x09, 0xcf: 0x0a,\n\t0xd0: 0x81, 0xd1: 0x0b, 0xd2: 0x0c, 0xd3: 0x0d, 0xd4: 0x0e, 0xd5: 0x82, 0xd6: 0x83, 0xd7: 0x84,\n\t0xd8: 0x0f, 0xd9: 0x10, 0xda: 0x85, 0xdb: 0x11, 0xdc: 0x12, 0xdd: 0x86, 0xde: 0x87, 0xdf: 0x88,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06, 0xe5: 0x07, 0xe6: 0x07, 0xe7: 0x07,\n\t0xe8: 0x07, 0xe9: 0x08, 0xea: 0x09, 0xeb: 0x07, 0xec: 0x07, 0xed: 0x0a, 0xee: 0x0b, 0xef: 0x0c,\n\t0xf0: 0x1d, 0xf1: 0x1e, 0xf2: 0x1e, 0xf3: 0x20, 0xf4: 0x21,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x89, 0x121: 0x13, 0x122: 0x8a, 0x123: 0x8b, 0x124: 0x8c, 0x125: 0x14, 0x126: 0x15, 0x127: 0x16,\n\t0x128: 0x17, 0x129: 0x18, 0x12a: 0x19, 0x12b: 0x1a, 0x12c: 0x1b, 0x12d: 0x1c, 0x12e: 0x1d, 0x12f: 0x8d,\n\t0x130: 0x8e, 0x131: 0x1e, 0x132: 0x1f, 0x133: 0x20, 0x134: 0x8f, 0x135: 0x21, 0x136: 0x90, 0x137: 0x91,\n\t0x138: 0x92, 0x139: 0x93, 0x13a: 0x22, 0x13b: 0x94, 0x13c: 0x95, 0x13d: 0x23, 0x13e: 0x24, 0x13f: 0x96,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x97, 0x141: 0x98, 0x142: 0x99, 0x143: 0x9a, 0x144: 0x9b, 0x145: 0x9c, 0x146: 0x9d, 0x147: 0x9e,\n\t0x148: 0x9f, 0x149: 0xa0, 0x14a: 0xa1, 0x14b: 0xa2, 0x14c: 0xa3, 0x14d: 0xa4, 0x14e: 0xa5, 0x14f: 0xa6,\n\t0x150: 0xa7, 0x151: 0x9f, 0x152: 0x9f, 0x153: 0x9f, 0x154: 0x9f, 0x155: 0x9f, 0x156: 0x9f, 0x157: 0x9f,\n\t0x158: 0x9f, 0x159: 0xa8, 0x15a: 0xa9, 0x15b: 0xaa, 0x15c: 0xab, 0x15d: 0xac, 0x15e: 0xad, 0x15f: 0xae,\n\t0x160: 0xaf, 0x161: 0xb0, 0x162: 0xb1, 0x163: 0xb2, 0x164: 0xb3, 0x165: 0xb4, 0x166: 0xb5, 0x167: 0xb6,\n\t0x168: 0xb7, 0x169: 0xb8, 0x16a: 0xb9, 0x16b: 0xba, 0x16c: 0xbb, 0x16d: 0xbc, 0x16e: 0xbd, 0x16f: 0xbe,\n\t0x170: 0xbf, 0x171: 0xc0, 0x172: 0xc1, 0x173: 0xc2, 0x174: 0x25, 0x175: 0x26, 0x176: 0x27, 0x177: 0xc3,\n\t0x178: 0x28, 0x179: 0x28, 0x17a: 0x29, 0x17b: 0x28, 0x17c: 0xc4, 0x17d: 0x2a, 0x17e: 0x2b, 0x17f: 0x2c,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x2d, 0x181: 0x2e, 0x182: 0x2f, 0x183: 0xc5, 0x184: 0x30, 0x185: 0x31, 0x186: 0xc6, 0x187: 0x9b,\n\t0x188: 0xc7, 0x189: 0xc8, 0x18a: 0x9b, 0x18b: 0x9b, 0x18c: 0xc9, 0x18d: 0x9b, 0x18e: 0x9b, 0x18f: 0x9b,\n\t0x190: 0xca, 0x191: 0x32, 0x192: 0x33, 0x193: 0x34, 0x194: 0x9b, 0x195: 0x9b, 0x196: 0x9b, 0x197: 0x9b,\n\t0x198: 0x9b, 0x199: 0x9b, 0x19a: 0x9b, 0x19b: 0x9b, 0x19c: 0x9b, 0x19d: 0x9b, 0x19e: 0x9b, 0x19f: 0x9b,\n\t0x1a0: 0x9b, 0x1a1: 0x9b, 0x1a2: 0x9b, 0x1a3: 0x9b, 0x1a4: 0x9b, 0x1a5: 0x9b, 0x1a6: 0x9b, 0x1a7: 0x9b,\n\t0x1a8: 0xcb, 0x1a9: 0xcc, 0x1aa: 0x9b, 0x1ab: 0xcd, 0x1ac: 0x9b, 0x1ad: 0xce, 0x1ae: 0xcf, 0x1af: 0xd0,\n\t0x1b0: 0xd1, 0x1b1: 0x35, 0x1b2: 0x28, 0x1b3: 0x36, 0x1b4: 0xd2, 0x1b5: 0xd3, 0x1b6: 0xd4, 0x1b7: 0xd5,\n\t0x1b8: 0xd6, 0x1b9: 0xd7, 0x1ba: 0xd8, 0x1bb: 0xd9, 0x1bc: 0xda, 0x1bd: 0xdb, 0x1be: 0xdc, 0x1bf: 0x37,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x38, 0x1c1: 0xdd, 0x1c2: 0xde, 0x1c3: 0xdf, 0x1c4: 0xe0, 0x1c5: 0x39, 0x1c6: 0x3a, 0x1c7: 0xe1,\n\t0x1c8: 0xe2, 0x1c9: 0x3b, 0x1ca: 0x3c, 0x1cb: 0x3d, 0x1cc: 0x3e, 0x1cd: 0x3f, 0x1ce: 0x40, 0x1cf: 0x41,\n\t0x1d0: 0x9f, 0x1d1: 0x9f, 0x1d2: 0x9f, 0x1d3: 0x9f, 0x1d4: 0x9f, 0x1d5: 0x9f, 0x1d6: 0x9f, 0x1d7: 0x9f,\n\t0x1d8: 0x9f, 0x1d9: 0x9f, 0x1da: 0x9f, 0x1db: 0x9f, 0x1dc: 0x9f, 0x1dd: 0x9f, 0x1de: 0x9f, 0x1df: 0x9f,\n\t0x1e0: 0x9f, 0x1e1: 0x9f, 0x1e2: 0x9f, 0x1e3: 0x9f, 0x1e4: 0x9f, 0x1e5: 0x9f, 0x1e6: 0x9f, 0x1e7: 0x9f,\n\t0x1e8: 0x9f, 0x1e9: 0x9f, 0x1ea: 0x9f, 0x1eb: 0x9f, 0x1ec: 0x9f, 0x1ed: 0x9f, 0x1ee: 0x9f, 0x1ef: 0x9f,\n\t0x1f0: 0x9f, 0x1f1: 0x9f, 0x1f2: 0x9f, 0x1f3: 0x9f, 0x1f4: 0x9f, 0x1f5: 0x9f, 0x1f6: 0x9f, 0x1f7: 0x9f,\n\t0x1f8: 0x9f, 0x1f9: 0x9f, 0x1fa: 0x9f, 0x1fb: 0x9f, 0x1fc: 0x9f, 0x1fd: 0x9f, 0x1fe: 0x9f, 0x1ff: 0x9f,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x9f, 0x201: 0x9f, 0x202: 0x9f, 0x203: 0x9f, 0x204: 0x9f, 0x205: 0x9f, 0x206: 0x9f, 0x207: 0x9f,\n\t0x208: 0x9f, 0x209: 0x9f, 0x20a: 0x9f, 0x20b: 0x9f, 0x20c: 0x9f, 0x20d: 0x9f, 0x20e: 0x9f, 0x20f: 0x9f,\n\t0x210: 0x9f, 0x211: 0x9f, 0x212: 0x9f, 0x213: 0x9f, 0x214: 0x9f, 0x215: 0x9f, 0x216: 0x9f, 0x217: 0x9f,\n\t0x218: 0x9f, 0x219: 0x9f, 0x21a: 0x9f, 0x21b: 0x9f, 0x21c: 0x9f, 0x21d: 0x9f, 0x21e: 0x9f, 0x21f: 0x9f,\n\t0x220: 0x9f, 0x221: 0x9f, 0x222: 0x9f, 0x223: 0x9f, 0x224: 0x9f, 0x225: 0x9f, 0x226: 0x9f, 0x227: 0x9f,\n\t0x228: 0x9f, 0x229: 0x9f, 0x22a: 0x9f, 0x22b: 0x9f, 0x22c: 0x9f, 0x22d: 0x9f, 0x22e: 0x9f, 0x22f: 0x9f,\n\t0x230: 0x9f, 0x231: 0x9f, 0x232: 0x9f, 0x233: 0x9f, 0x234: 0x9f, 0x235: 0x9f, 0x236: 0xb2, 0x237: 0x9b,\n\t0x238: 0x9f, 0x239: 0x9f, 0x23a: 0x9f, 0x23b: 0x9f, 0x23c: 0x9f, 0x23d: 0x9f, 0x23e: 0x9f, 0x23f: 0x9f,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x9f, 0x241: 0x9f, 0x242: 0x9f, 0x243: 0x9f, 0x244: 0x9f, 0x245: 0x9f, 0x246: 0x9f, 0x247: 0x9f,\n\t0x248: 0x9f, 0x249: 0x9f, 0x24a: 0x9f, 0x24b: 0x9f, 0x24c: 0x9f, 0x24d: 0x9f, 0x24e: 0x9f, 0x24f: 0x9f,\n\t0x250: 0x9f, 0x251: 0x9f, 0x252: 0x9f, 0x253: 0x9f, 0x254: 0x9f, 0x255: 0x9f, 0x256: 0x9f, 0x257: 0x9f,\n\t0x258: 0x9f, 0x259: 0x9f, 0x25a: 0x9f, 0x25b: 0x9f, 0x25c: 0x9f, 0x25d: 0x9f, 0x25e: 0x9f, 0x25f: 0x9f,\n\t0x260: 0x9f, 0x261: 0x9f, 0x262: 0x9f, 0x263: 0x9f, 0x264: 0x9f, 0x265: 0x9f, 0x266: 0x9f, 0x267: 0x9f,\n\t0x268: 0x9f, 0x269: 0x9f, 0x26a: 0x9f, 0x26b: 0x9f, 0x26c: 0x9f, 0x26d: 0x9f, 0x26e: 0x9f, 0x26f: 0x9f,\n\t0x270: 0x9f, 0x271: 0x9f, 0x272: 0x9f, 0x273: 0x9f, 0x274: 0x9f, 0x275: 0x9f, 0x276: 0x9f, 0x277: 0x9f,\n\t0x278: 0x9f, 0x279: 0x9f, 0x27a: 0x9f, 0x27b: 0x9f, 0x27c: 0x9f, 0x27d: 0x9f, 0x27e: 0x9f, 0x27f: 0x9f,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x9f, 0x281: 0x9f, 0x282: 0x9f, 0x283: 0x9f, 0x284: 0x9f, 0x285: 0x9f, 0x286: 0x9f, 0x287: 0x9f,\n\t0x288: 0x9f, 0x289: 0x9f, 0x28a: 0x9f, 0x28b: 0x9f, 0x28c: 0x9f, 0x28d: 0x9f, 0x28e: 0x9f, 0x28f: 0x9f,\n\t0x290: 0x9f, 0x291: 0x9f, 0x292: 0x9f, 0x293: 0x9f, 0x294: 0x9f, 0x295: 0x9f, 0x296: 0x9f, 0x297: 0x9f,\n\t0x298: 0x9f, 0x299: 0x9f, 0x29a: 0x9f, 0x29b: 0x9f, 0x29c: 0x9f, 0x29d: 0x9f, 0x29e: 0x9f, 0x29f: 0x9f,\n\t0x2a0: 0x9f, 0x2a1: 0x9f, 0x2a2: 0x9f, 0x2a3: 0x9f, 0x2a4: 0x9f, 0x2a5: 0x9f, 0x2a6: 0x9f, 0x2a7: 0x9f,\n\t0x2a8: 0x9f, 0x2a9: 0x9f, 0x2aa: 0x9f, 0x2ab: 0x9f, 0x2ac: 0x9f, 0x2ad: 0x9f, 0x2ae: 0x9f, 0x2af: 0x9f,\n\t0x2b0: 0x9f, 0x2b1: 0x9f, 0x2b2: 0x9f, 0x2b3: 0x9f, 0x2b4: 0x9f, 0x2b5: 0x9f, 0x2b6: 0x9f, 0x2b7: 0x9f,\n\t0x2b8: 0x9f, 0x2b9: 0x9f, 0x2ba: 0x9f, 0x2bb: 0x9f, 0x2bc: 0x9f, 0x2bd: 0x9f, 0x2be: 0x9f, 0x2bf: 0xe3,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x9f, 0x2c1: 0x9f, 0x2c2: 0x9f, 0x2c3: 0x9f, 0x2c4: 0x9f, 0x2c5: 0x9f, 0x2c6: 0x9f, 0x2c7: 0x9f,\n\t0x2c8: 0x9f, 0x2c9: 0x9f, 0x2ca: 0x9f, 0x2cb: 0x9f, 0x2cc: 0x9f, 0x2cd: 0x9f, 0x2ce: 0x9f, 0x2cf: 0x9f,\n\t0x2d0: 0x9f, 0x2d1: 0x9f, 0x2d2: 0xe4, 0x2d3: 0xe5, 0x2d4: 0x9f, 0x2d5: 0x9f, 0x2d6: 0x9f, 0x2d7: 0x9f,\n\t0x2d8: 0xe6, 0x2d9: 0x42, 0x2da: 0x43, 0x2db: 0xe7, 0x2dc: 0x44, 0x2dd: 0x45, 0x2de: 0x46, 0x2df: 0xe8,\n\t0x2e0: 0xe9, 0x2e1: 0xea, 0x2e2: 0xeb, 0x2e3: 0xec, 0x2e4: 0xed, 0x2e5: 0xee, 0x2e6: 0xef, 0x2e7: 0xf0,\n\t0x2e8: 0xf1, 0x2e9: 0xf2, 0x2ea: 0xf3, 0x2eb: 0xf4, 0x2ec: 0xf5, 0x2ed: 0xf6, 0x2ee: 0xf7, 0x2ef: 0xf8,\n\t0x2f0: 0x9f, 0x2f1: 0x9f, 0x2f2: 0x9f, 0x2f3: 0x9f, 0x2f4: 0x9f, 0x2f5: 0x9f, 0x2f6: 0x9f, 0x2f7: 0x9f,\n\t0x2f8: 0x9f, 0x2f9: 0x9f, 0x2fa: 0x9f, 0x2fb: 0x9f, 0x2fc: 0x9f, 0x2fd: 0x9f, 0x2fe: 0x9f, 0x2ff: 0x9f,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x9f, 0x301: 0x9f, 0x302: 0x9f, 0x303: 0x9f, 0x304: 0x9f, 0x305: 0x9f, 0x306: 0x9f, 0x307: 0x9f,\n\t0x308: 0x9f, 0x309: 0x9f, 0x30a: 0x9f, 0x30b: 0x9f, 0x30c: 0x9f, 0x30d: 0x9f, 0x30e: 0x9f, 0x30f: 0x9f,\n\t0x310: 0x9f, 0x311: 0x9f, 0x312: 0x9f, 0x313: 0x9f, 0x314: 0x9f, 0x315: 0x9f, 0x316: 0x9f, 0x317: 0x9f,\n\t0x318: 0x9f, 0x319: 0x9f, 0x31a: 0x9f, 0x31b: 0x9f, 0x31c: 0x9f, 0x31d: 0x9f, 0x31e: 0xf9, 0x31f: 0xfa,\n\t// Block 0xd, offset 0x340\n\t0x340: 0xba, 0x341: 0xba, 0x342: 0xba, 0x343: 0xba, 0x344: 0xba, 0x345: 0xba, 0x346: 0xba, 0x347: 0xba,\n\t0x348: 0xba, 0x349: 0xba, 0x34a: 0xba, 0x34b: 0xba, 0x34c: 0xba, 0x34d: 0xba, 0x34e: 0xba, 0x34f: 0xba,\n\t0x350: 0xba, 0x351: 0xba, 0x352: 0xba, 0x353: 0xba, 0x354: 0xba, 0x355: 0xba, 0x356: 0xba, 0x357: 0xba,\n\t0x358: 0xba, 0x359: 0xba, 0x35a: 0xba, 0x35b: 0xba, 0x35c: 0xba, 0x35d: 0xba, 0x35e: 0xba, 0x35f: 0xba,\n\t0x360: 0xba, 0x361: 0xba, 0x362: 0xba, 0x363: 0xba, 0x364: 0xba, 0x365: 0xba, 0x366: 0xba, 0x367: 0xba,\n\t0x368: 0xba, 0x369: 0xba, 0x36a: 0xba, 0x36b: 0xba, 0x36c: 0xba, 0x36d: 0xba, 0x36e: 0xba, 0x36f: 0xba,\n\t0x370: 0xba, 0x371: 0xba, 0x372: 0xba, 0x373: 0xba, 0x374: 0xba, 0x375: 0xba, 0x376: 0xba, 0x377: 0xba,\n\t0x378: 0xba, 0x379: 0xba, 0x37a: 0xba, 0x37b: 0xba, 0x37c: 0xba, 0x37d: 0xba, 0x37e: 0xba, 0x37f: 0xba,\n\t// Block 0xe, offset 0x380\n\t0x380: 0xba, 0x381: 0xba, 0x382: 0xba, 0x383: 0xba, 0x384: 0xba, 0x385: 0xba, 0x386: 0xba, 0x387: 0xba,\n\t0x388: 0xba, 0x389: 0xba, 0x38a: 0xba, 0x38b: 0xba, 0x38c: 0xba, 0x38d: 0xba, 0x38e: 0xba, 0x38f: 0xba,\n\t0x390: 0xba, 0x391: 0xba, 0x392: 0xba, 0x393: 0xba, 0x394: 0xba, 0x395: 0xba, 0x396: 0xba, 0x397: 0xba,\n\t0x398: 0xba, 0x399: 0xba, 0x39a: 0xba, 0x39b: 0xba, 0x39c: 0xba, 0x39d: 0xba, 0x39e: 0xba, 0x39f: 0xba,\n\t0x3a0: 0xba, 0x3a1: 0xba, 0x3a2: 0xba, 0x3a3: 0xba, 0x3a4: 0xfb, 0x3a5: 0xfc, 0x3a6: 0xfd, 0x3a7: 0xfe,\n\t0x3a8: 0x47, 0x3a9: 0xff, 0x3aa: 0x100, 0x3ab: 0x48, 0x3ac: 0x49, 0x3ad: 0x4a, 0x3ae: 0x4b, 0x3af: 0x4c,\n\t0x3b0: 0x101, 0x3b1: 0x4d, 0x3b2: 0x4e, 0x3b3: 0x4f, 0x3b4: 0x50, 0x3b5: 0x51, 0x3b6: 0x102, 0x3b7: 0x52,\n\t0x3b8: 0x53, 0x3b9: 0x54, 0x3ba: 0x55, 0x3bb: 0x56, 0x3bc: 0x57, 0x3bd: 0x58, 0x3be: 0x59, 0x3bf: 0x5a,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x103, 0x3c1: 0x104, 0x3c2: 0x9f, 0x3c3: 0x105, 0x3c4: 0x106, 0x3c5: 0x9b, 0x3c6: 0x107, 0x3c7: 0x108,\n\t0x3c8: 0xba, 0x3c9: 0xba, 0x3ca: 0x109, 0x3cb: 0x10a, 0x3cc: 0x10b, 0x3cd: 0x10c, 0x3ce: 0x10d, 0x3cf: 0x10e,\n\t0x3d0: 0x10f, 0x3d1: 0x9f, 0x3d2: 0x110, 0x3d3: 0x111, 0x3d4: 0x112, 0x3d5: 0x113, 0x3d6: 0xba, 0x3d7: 0xba,\n\t0x3d8: 0x9f, 0x3d9: 0x9f, 0x3da: 0x9f, 0x3db: 0x9f, 0x3dc: 0x114, 0x3dd: 0x115, 0x3de: 0xba, 0x3df: 0xba,\n\t0x3e0: 0x116, 0x3e1: 0x117, 0x3e2: 0x118, 0x3e3: 0x119, 0x3e4: 0x11a, 0x3e5: 0xba, 0x3e6: 0x11b, 0x3e7: 0x11c,\n\t0x3e8: 0x11d, 0x3e9: 0x11e, 0x3ea: 0x11f, 0x3eb: 0x5b, 0x3ec: 0x120, 0x3ed: 0x121, 0x3ee: 0x5c, 0x3ef: 0xba,\n\t0x3f0: 0x122, 0x3f1: 0x123, 0x3f2: 0x124, 0x3f3: 0x125, 0x3f4: 0xba, 0x3f5: 0xba, 0x3f6: 0xba, 0x3f7: 0xba,\n\t0x3f8: 0xba, 0x3f9: 0x126, 0x3fa: 0xba, 0x3fb: 0xba, 0x3fc: 0xba, 0x3fd: 0xba, 0x3fe: 0xba, 0x3ff: 0xba,\n\t// Block 0x10, offset 0x400\n\t0x400: 0x127, 0x401: 0x128, 0x402: 0x129, 0x403: 0x12a, 0x404: 0x12b, 0x405: 0x12c, 0x406: 0x12d, 0x407: 0x12e,\n\t0x408: 0x12f, 0x409: 0xba, 0x40a: 0x130, 0x40b: 0x131, 0x40c: 0x5d, 0x40d: 0x5e, 0x40e: 0xba, 0x40f: 0xba,\n\t0x410: 0x132, 0x411: 0x133, 0x412: 0x134, 0x413: 0x135, 0x414: 0xba, 0x415: 0xba, 0x416: 0x136, 0x417: 0x137,\n\t0x418: 0x138, 0x419: 0x139, 0x41a: 0x13a, 0x41b: 0x13b, 0x41c: 0x13c, 0x41d: 0xba, 0x41e: 0xba, 0x41f: 0xba,\n\t0x420: 0xba, 0x421: 0xba, 0x422: 0x13d, 0x423: 0x13e, 0x424: 0xba, 0x425: 0xba, 0x426: 0xba, 0x427: 0xba,\n\t0x428: 0x13f, 0x429: 0x140, 0x42a: 0x141, 0x42b: 0x142, 0x42c: 0xba, 0x42d: 0xba, 0x42e: 0xba, 0x42f: 0xba,\n\t0x430: 0x143, 0x431: 0x144, 0x432: 0x145, 0x433: 0xba, 0x434: 0x146, 0x435: 0x147, 0x436: 0xba, 0x437: 0xba,\n\t0x438: 0xba, 0x439: 0xba, 0x43a: 0xba, 0x43b: 0xba, 0x43c: 0xba, 0x43d: 0xba, 0x43e: 0xba, 0x43f: 0xba,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x9f, 0x441: 0x9f, 0x442: 0x9f, 0x443: 0x9f, 0x444: 0x9f, 0x445: 0x9f, 0x446: 0x9f, 0x447: 0x9f,\n\t0x448: 0x9f, 0x449: 0x9f, 0x44a: 0x9f, 0x44b: 0x9f, 0x44c: 0x9f, 0x44d: 0x9f, 0x44e: 0x148, 0x44f: 0xba,\n\t0x450: 0x9b, 0x451: 0x149, 0x452: 0x9f, 0x453: 0x9f, 0x454: 0x9f, 0x455: 0x14a, 0x456: 0xba, 0x457: 0xba,\n\t0x458: 0xba, 0x459: 0xba, 0x45a: 0xba, 0x45b: 0xba, 0x45c: 0xba, 0x45d: 0xba, 0x45e: 0xba, 0x45f: 0xba,\n\t0x460: 0xba, 0x461: 0xba, 0x462: 0xba, 0x463: 0xba, 0x464: 0xba, 0x465: 0xba, 0x466: 0xba, 0x467: 0xba,\n\t0x468: 0xba, 0x469: 0xba, 0x46a: 0xba, 0x46b: 0xba, 0x46c: 0xba, 0x46d: 0xba, 0x46e: 0xba, 0x46f: 0xba,\n\t0x470: 0xba, 0x471: 0xba, 0x472: 0xba, 0x473: 0xba, 0x474: 0xba, 0x475: 0xba, 0x476: 0xba, 0x477: 0xba,\n\t0x478: 0xba, 0x479: 0xba, 0x47a: 0xba, 0x47b: 0xba, 0x47c: 0xba, 0x47d: 0xba, 0x47e: 0xba, 0x47f: 0xba,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x9f, 0x481: 0x9f, 0x482: 0x9f, 0x483: 0x9f, 0x484: 0x9f, 0x485: 0x9f, 0x486: 0x9f, 0x487: 0x9f,\n\t0x488: 0x9f, 0x489: 0x9f, 0x48a: 0x9f, 0x48b: 0x9f, 0x48c: 0x9f, 0x48d: 0x9f, 0x48e: 0x9f, 0x48f: 0x9f,\n\t0x490: 0x14b, 0x491: 0xba, 0x492: 0xba, 0x493: 0xba, 0x494: 0xba, 0x495: 0xba, 0x496: 0xba, 0x497: 0xba,\n\t0x498: 0xba, 0x499: 0xba, 0x49a: 0xba, 0x49b: 0xba, 0x49c: 0xba, 0x49d: 0xba, 0x49e: 0xba, 0x49f: 0xba,\n\t0x4a0: 0xba, 0x4a1: 0xba, 0x4a2: 0xba, 0x4a3: 0xba, 0x4a4: 0xba, 0x4a5: 0xba, 0x4a6: 0xba, 0x4a7: 0xba,\n\t0x4a8: 0xba, 0x4a9: 0xba, 0x4aa: 0xba, 0x4ab: 0xba, 0x4ac: 0xba, 0x4ad: 0xba, 0x4ae: 0xba, 0x4af: 0xba,\n\t0x4b0: 0xba, 0x4b1: 0xba, 0x4b2: 0xba, 0x4b3: 0xba, 0x4b4: 0xba, 0x4b5: 0xba, 0x4b6: 0xba, 0x4b7: 0xba,\n\t0x4b8: 0xba, 0x4b9: 0xba, 0x4ba: 0xba, 0x4bb: 0xba, 0x4bc: 0xba, 0x4bd: 0xba, 0x4be: 0xba, 0x4bf: 0xba,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0xba, 0x4c1: 0xba, 0x4c2: 0xba, 0x4c3: 0xba, 0x4c4: 0xba, 0x4c5: 0xba, 0x4c6: 0xba, 0x4c7: 0xba,\n\t0x4c8: 0xba, 0x4c9: 0xba, 0x4ca: 0xba, 0x4cb: 0xba, 0x4cc: 0xba, 0x4cd: 0xba, 0x4ce: 0xba, 0x4cf: 0xba,\n\t0x4d0: 0x9f, 0x4d1: 0x9f, 0x4d2: 0x9f, 0x4d3: 0x9f, 0x4d4: 0x9f, 0x4d5: 0x9f, 0x4d6: 0x9f, 0x4d7: 0x9f,\n\t0x4d8: 0x9f, 0x4d9: 0x14c, 0x4da: 0xba, 0x4db: 0xba, 0x4dc: 0xba, 0x4dd: 0xba, 0x4de: 0xba, 0x4df: 0xba,\n\t0x4e0: 0xba, 0x4e1: 0xba, 0x4e2: 0xba, 0x4e3: 0xba, 0x4e4: 0xba, 0x4e5: 0xba, 0x4e6: 0xba, 0x4e7: 0xba,\n\t0x4e8: 0xba, 0x4e9: 0xba, 0x4ea: 0xba, 0x4eb: 0xba, 0x4ec: 0xba, 0x4ed: 0xba, 0x4ee: 0xba, 0x4ef: 0xba,\n\t0x4f0: 0xba, 0x4f1: 0xba, 0x4f2: 0xba, 0x4f3: 0xba, 0x4f4: 0xba, 0x4f5: 0xba, 0x4f6: 0xba, 0x4f7: 0xba,\n\t0x4f8: 0xba, 0x4f9: 0xba, 0x4fa: 0xba, 0x4fb: 0xba, 0x4fc: 0xba, 0x4fd: 0xba, 0x4fe: 0xba, 0x4ff: 0xba,\n\t// Block 0x14, offset 0x500\n\t0x500: 0xba, 0x501: 0xba, 0x502: 0xba, 0x503: 0xba, 0x504: 0xba, 0x505: 0xba, 0x506: 0xba, 0x507: 0xba,\n\t0x508: 0xba, 0x509: 0xba, 0x50a: 0xba, 0x50b: 0xba, 0x50c: 0xba, 0x50d: 0xba, 0x50e: 0xba, 0x50f: 0xba,\n\t0x510: 0xba, 0x511: 0xba, 0x512: 0xba, 0x513: 0xba, 0x514: 0xba, 0x515: 0xba, 0x516: 0xba, 0x517: 0xba,\n\t0x518: 0xba, 0x519: 0xba, 0x51a: 0xba, 0x51b: 0xba, 0x51c: 0xba, 0x51d: 0xba, 0x51e: 0xba, 0x51f: 0xba,\n\t0x520: 0x9f, 0x521: 0x9f, 0x522: 0x9f, 0x523: 0x9f, 0x524: 0x9f, 0x525: 0x9f, 0x526: 0x9f, 0x527: 0x9f,\n\t0x528: 0x142, 0x529: 0x14d, 0x52a: 0xba, 0x52b: 0x14e, 0x52c: 0x14f, 0x52d: 0x150, 0x52e: 0x151, 0x52f: 0xba,\n\t0x530: 0xba, 0x531: 0xba, 0x532: 0xba, 0x533: 0xba, 0x534: 0xba, 0x535: 0xba, 0x536: 0xba, 0x537: 0xba,\n\t0x538: 0xba, 0x539: 0xba, 0x53a: 0xba, 0x53b: 0xba, 0x53c: 0x9f, 0x53d: 0x152, 0x53e: 0x153, 0x53f: 0x154,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x9f, 0x541: 0x9f, 0x542: 0x9f, 0x543: 0x9f, 0x544: 0x9f, 0x545: 0x9f, 0x546: 0x9f, 0x547: 0x9f,\n\t0x548: 0x9f, 0x549: 0x9f, 0x54a: 0x9f, 0x54b: 0x9f, 0x54c: 0x9f, 0x54d: 0x9f, 0x54e: 0x9f, 0x54f: 0x9f,\n\t0x550: 0x9f, 0x551: 0x9f, 0x552: 0x9f, 0x553: 0x9f, 0x554: 0x9f, 0x555: 0x9f, 0x556: 0x9f, 0x557: 0x9f,\n\t0x558: 0x9f, 0x559: 0x9f, 0x55a: 0x9f, 0x55b: 0x9f, 0x55c: 0x9f, 0x55d: 0x9f, 0x55e: 0x9f, 0x55f: 0x155,\n\t0x560: 0x9f, 0x561: 0x9f, 0x562: 0x9f, 0x563: 0x9f, 0x564: 0x9f, 0x565: 0x9f, 0x566: 0x9f, 0x567: 0x9f,\n\t0x568: 0x9f, 0x569: 0x9f, 0x56a: 0x9f, 0x56b: 0x156, 0x56c: 0xba, 0x56d: 0xba, 0x56e: 0xba, 0x56f: 0xba,\n\t0x570: 0xba, 0x571: 0xba, 0x572: 0xba, 0x573: 0xba, 0x574: 0xba, 0x575: 0xba, 0x576: 0xba, 0x577: 0xba,\n\t0x578: 0xba, 0x579: 0xba, 0x57a: 0xba, 0x57b: 0xba, 0x57c: 0xba, 0x57d: 0xba, 0x57e: 0xba, 0x57f: 0xba,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x9f, 0x581: 0x9f, 0x582: 0x9f, 0x583: 0x9f, 0x584: 0x157, 0x585: 0x158, 0x586: 0x9f, 0x587: 0x9f,\n\t0x588: 0x9f, 0x589: 0x9f, 0x58a: 0x9f, 0x58b: 0x159, 0x58c: 0xba, 0x58d: 0xba, 0x58e: 0xba, 0x58f: 0xba,\n\t0x590: 0xba, 0x591: 0xba, 0x592: 0xba, 0x593: 0xba, 0x594: 0xba, 0x595: 0xba, 0x596: 0xba, 0x597: 0xba,\n\t0x598: 0xba, 0x599: 0xba, 0x59a: 0xba, 0x59b: 0xba, 0x59c: 0xba, 0x59d: 0xba, 0x59e: 0xba, 0x59f: 0xba,\n\t0x5a0: 0xba, 0x5a1: 0xba, 0x5a2: 0xba, 0x5a3: 0xba, 0x5a4: 0xba, 0x5a5: 0xba, 0x5a6: 0xba, 0x5a7: 0xba,\n\t0x5a8: 0xba, 0x5a9: 0xba, 0x5aa: 0xba, 0x5ab: 0xba, 0x5ac: 0xba, 0x5ad: 0xba, 0x5ae: 0xba, 0x5af: 0xba,\n\t0x5b0: 0x9f, 0x5b1: 0x15a, 0x5b2: 0x15b, 0x5b3: 0xba, 0x5b4: 0xba, 0x5b5: 0xba, 0x5b6: 0xba, 0x5b7: 0xba,\n\t0x5b8: 0xba, 0x5b9: 0xba, 0x5ba: 0xba, 0x5bb: 0xba, 0x5bc: 0xba, 0x5bd: 0xba, 0x5be: 0xba, 0x5bf: 0xba,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x9b, 0x5c1: 0x9b, 0x5c2: 0x9b, 0x5c3: 0x15c, 0x5c4: 0x15d, 0x5c5: 0x15e, 0x5c6: 0x15f, 0x5c7: 0x160,\n\t0x5c8: 0x9b, 0x5c9: 0x161, 0x5ca: 0xba, 0x5cb: 0xba, 0x5cc: 0x9b, 0x5cd: 0x162, 0x5ce: 0xba, 0x5cf: 0xba,\n\t0x5d0: 0x5f, 0x5d1: 0x60, 0x5d2: 0x61, 0x5d3: 0x62, 0x5d4: 0x63, 0x5d5: 0x64, 0x5d6: 0x65, 0x5d7: 0x66,\n\t0x5d8: 0x67, 0x5d9: 0x68, 0x5da: 0x69, 0x5db: 0x6a, 0x5dc: 0x6b, 0x5dd: 0x6c, 0x5de: 0x6d, 0x5df: 0x6e,\n\t0x5e0: 0x9b, 0x5e1: 0x9b, 0x5e2: 0x9b, 0x5e3: 0x9b, 0x5e4: 0x9b, 0x5e5: 0x9b, 0x5e6: 0x9b, 0x5e7: 0x9b,\n\t0x5e8: 0x163, 0x5e9: 0x164, 0x5ea: 0x165, 0x5eb: 0xba, 0x5ec: 0xba, 0x5ed: 0xba, 0x5ee: 0xba, 0x5ef: 0xba,\n\t0x5f0: 0xba, 0x5f1: 0xba, 0x5f2: 0xba, 0x5f3: 0xba, 0x5f4: 0xba, 0x5f5: 0xba, 0x5f6: 0xba, 0x5f7: 0xba,\n\t0x5f8: 0xba, 0x5f9: 0xba, 0x5fa: 0xba, 0x5fb: 0xba, 0x5fc: 0xba, 0x5fd: 0xba, 0x5fe: 0xba, 0x5ff: 0xba,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x166, 0x601: 0xba, 0x602: 0xba, 0x603: 0xba, 0x604: 0xba, 0x605: 0xba, 0x606: 0xba, 0x607: 0xba,\n\t0x608: 0xba, 0x609: 0xba, 0x60a: 0xba, 0x60b: 0xba, 0x60c: 0xba, 0x60d: 0xba, 0x60e: 0xba, 0x60f: 0xba,\n\t0x610: 0xba, 0x611: 0xba, 0x612: 0xba, 0x613: 0xba, 0x614: 0xba, 0x615: 0xba, 0x616: 0xba, 0x617: 0xba,\n\t0x618: 0xba, 0x619: 0xba, 0x61a: 0xba, 0x61b: 0xba, 0x61c: 0xba, 0x61d: 0xba, 0x61e: 0xba, 0x61f: 0xba,\n\t0x620: 0x122, 0x621: 0x122, 0x622: 0x122, 0x623: 0x167, 0x624: 0x6f, 0x625: 0x168, 0x626: 0xba, 0x627: 0xba,\n\t0x628: 0xba, 0x629: 0xba, 0x62a: 0xba, 0x62b: 0xba, 0x62c: 0xba, 0x62d: 0xba, 0x62e: 0xba, 0x62f: 0xba,\n\t0x630: 0xba, 0x631: 0xba, 0x632: 0xba, 0x633: 0xba, 0x634: 0xba, 0x635: 0xba, 0x636: 0xba, 0x637: 0xba,\n\t0x638: 0x70, 0x639: 0x71, 0x63a: 0x72, 0x63b: 0x169, 0x63c: 0xba, 0x63d: 0xba, 0x63e: 0xba, 0x63f: 0xba,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x16a, 0x641: 0x9b, 0x642: 0x16b, 0x643: 0x16c, 0x644: 0x73, 0x645: 0x74, 0x646: 0x16d, 0x647: 0x16e,\n\t0x648: 0x75, 0x649: 0x16f, 0x64a: 0xba, 0x64b: 0xba, 0x64c: 0x9b, 0x64d: 0x9b, 0x64e: 0x9b, 0x64f: 0x9b,\n\t0x650: 0x9b, 0x651: 0x9b, 0x652: 0x9b, 0x653: 0x9b, 0x654: 0x9b, 0x655: 0x9b, 0x656: 0x9b, 0x657: 0x9b,\n\t0x658: 0x9b, 0x659: 0x9b, 0x65a: 0x9b, 0x65b: 0x170, 0x65c: 0x9b, 0x65d: 0x171, 0x65e: 0x9b, 0x65f: 0x172,\n\t0x660: 0x173, 0x661: 0x174, 0x662: 0x175, 0x663: 0xba, 0x664: 0x176, 0x665: 0x177, 0x666: 0x178, 0x667: 0x179,\n\t0x668: 0xba, 0x669: 0xba, 0x66a: 0xba, 0x66b: 0xba, 0x66c: 0xba, 0x66d: 0xba, 0x66e: 0xba, 0x66f: 0xba,\n\t0x670: 0xba, 0x671: 0xba, 0x672: 0xba, 0x673: 0xba, 0x674: 0xba, 0x675: 0xba, 0x676: 0xba, 0x677: 0xba,\n\t0x678: 0xba, 0x679: 0xba, 0x67a: 0xba, 0x67b: 0xba, 0x67c: 0xba, 0x67d: 0xba, 0x67e: 0xba, 0x67f: 0xba,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x9f, 0x681: 0x9f, 0x682: 0x9f, 0x683: 0x9f, 0x684: 0x9f, 0x685: 0x9f, 0x686: 0x9f, 0x687: 0x9f,\n\t0x688: 0x9f, 0x689: 0x9f, 0x68a: 0x9f, 0x68b: 0x9f, 0x68c: 0x9f, 0x68d: 0x9f, 0x68e: 0x9f, 0x68f: 0x9f,\n\t0x690: 0x9f, 0x691: 0x9f, 0x692: 0x9f, 0x693: 0x9f, 0x694: 0x9f, 0x695: 0x9f, 0x696: 0x9f, 0x697: 0x9f,\n\t0x698: 0x9f, 0x699: 0x9f, 0x69a: 0x9f, 0x69b: 0x17a, 0x69c: 0x9f, 0x69d: 0x9f, 0x69e: 0x9f, 0x69f: 0x9f,\n\t0x6a0: 0x9f, 0x6a1: 0x9f, 0x6a2: 0x9f, 0x6a3: 0x9f, 0x6a4: 0x9f, 0x6a5: 0x9f, 0x6a6: 0x9f, 0x6a7: 0x9f,\n\t0x6a8: 0x9f, 0x6a9: 0x9f, 0x6aa: 0x9f, 0x6ab: 0x9f, 0x6ac: 0x9f, 0x6ad: 0x9f, 0x6ae: 0x9f, 0x6af: 0x9f,\n\t0x6b0: 0x9f, 0x6b1: 0x9f, 0x6b2: 0x9f, 0x6b3: 0x9f, 0x6b4: 0x9f, 0x6b5: 0x9f, 0x6b6: 0x9f, 0x6b7: 0x9f,\n\t0x6b8: 0x9f, 0x6b9: 0x9f, 0x6ba: 0x9f, 0x6bb: 0x9f, 0x6bc: 0x9f, 0x6bd: 0x9f, 0x6be: 0x9f, 0x6bf: 0x9f,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x9f, 0x6c1: 0x9f, 0x6c2: 0x9f, 0x6c3: 0x9f, 0x6c4: 0x9f, 0x6c5: 0x9f, 0x6c6: 0x9f, 0x6c7: 0x9f,\n\t0x6c8: 0x9f, 0x6c9: 0x9f, 0x6ca: 0x9f, 0x6cb: 0x9f, 0x6cc: 0x9f, 0x6cd: 0x9f, 0x6ce: 0x9f, 0x6cf: 0x9f,\n\t0x6d0: 0x9f, 0x6d1: 0x9f, 0x6d2: 0x9f, 0x6d3: 0x9f, 0x6d4: 0x9f, 0x6d5: 0x9f, 0x6d6: 0x9f, 0x6d7: 0x9f,\n\t0x6d8: 0x9f, 0x6d9: 0x9f, 0x6da: 0x9f, 0x6db: 0x9f, 0x6dc: 0x17b, 0x6dd: 0x9f, 0x6de: 0x9f, 0x6df: 0x9f,\n\t0x6e0: 0x17c, 0x6e1: 0x9f, 0x6e2: 0x9f, 0x6e3: 0x9f, 0x6e4: 0x9f, 0x6e5: 0x9f, 0x6e6: 0x9f, 0x6e7: 0x9f,\n\t0x6e8: 0x9f, 0x6e9: 0x9f, 0x6ea: 0x9f, 0x6eb: 0x9f, 0x6ec: 0x9f, 0x6ed: 0x9f, 0x6ee: 0x9f, 0x6ef: 0x9f,\n\t0x6f0: 0x9f, 0x6f1: 0x9f, 0x6f2: 0x9f, 0x6f3: 0x9f, 0x6f4: 0x9f, 0x6f5: 0x9f, 0x6f6: 0x9f, 0x6f7: 0x9f,\n\t0x6f8: 0x9f, 0x6f9: 0x9f, 0x6fa: 0x9f, 0x6fb: 0x9f, 0x6fc: 0x9f, 0x6fd: 0x9f, 0x6fe: 0x9f, 0x6ff: 0x9f,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x9f, 0x701: 0x9f, 0x702: 0x9f, 0x703: 0x9f, 0x704: 0x9f, 0x705: 0x9f, 0x706: 0x9f, 0x707: 0x9f,\n\t0x708: 0x9f, 0x709: 0x9f, 0x70a: 0x9f, 0x70b: 0x9f, 0x70c: 0x9f, 0x70d: 0x9f, 0x70e: 0x9f, 0x70f: 0x9f,\n\t0x710: 0x9f, 0x711: 0x9f, 0x712: 0x9f, 0x713: 0x9f, 0x714: 0x9f, 0x715: 0x9f, 0x716: 0x9f, 0x717: 0x9f,\n\t0x718: 0x9f, 0x719: 0x9f, 0x71a: 0x9f, 0x71b: 0x9f, 0x71c: 0x9f, 0x71d: 0x9f, 0x71e: 0x9f, 0x71f: 0x9f,\n\t0x720: 0x9f, 0x721: 0x9f, 0x722: 0x9f, 0x723: 0x9f, 0x724: 0x9f, 0x725: 0x9f, 0x726: 0x9f, 0x727: 0x9f,\n\t0x728: 0x9f, 0x729: 0x9f, 0x72a: 0x9f, 0x72b: 0x9f, 0x72c: 0x9f, 0x72d: 0x9f, 0x72e: 0x9f, 0x72f: 0x9f,\n\t0x730: 0x9f, 0x731: 0x9f, 0x732: 0x9f, 0x733: 0x9f, 0x734: 0x9f, 0x735: 0x9f, 0x736: 0x9f, 0x737: 0x9f,\n\t0x738: 0x9f, 0x739: 0x9f, 0x73a: 0x17d, 0x73b: 0x9f, 0x73c: 0x9f, 0x73d: 0x9f, 0x73e: 0x9f, 0x73f: 0x9f,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0x9f, 0x741: 0x9f, 0x742: 0x9f, 0x743: 0x9f, 0x744: 0x9f, 0x745: 0x9f, 0x746: 0x9f, 0x747: 0x9f,\n\t0x748: 0x9f, 0x749: 0x9f, 0x74a: 0x9f, 0x74b: 0x9f, 0x74c: 0x9f, 0x74d: 0x9f, 0x74e: 0x9f, 0x74f: 0x9f,\n\t0x750: 0x9f, 0x751: 0x9f, 0x752: 0x9f, 0x753: 0x9f, 0x754: 0x9f, 0x755: 0x9f, 0x756: 0x9f, 0x757: 0x9f,\n\t0x758: 0x9f, 0x759: 0x9f, 0x75a: 0x9f, 0x75b: 0x9f, 0x75c: 0x9f, 0x75d: 0x9f, 0x75e: 0x9f, 0x75f: 0x9f,\n\t0x760: 0x9f, 0x761: 0x9f, 0x762: 0x9f, 0x763: 0x9f, 0x764: 0x9f, 0x765: 0x9f, 0x766: 0x9f, 0x767: 0x9f,\n\t0x768: 0x9f, 0x769: 0x9f, 0x76a: 0x9f, 0x76b: 0x9f, 0x76c: 0x9f, 0x76d: 0x9f, 0x76e: 0x9f, 0x76f: 0x17e,\n\t0x770: 0xba, 0x771: 0xba, 0x772: 0xba, 0x773: 0xba, 0x774: 0xba, 0x775: 0xba, 0x776: 0xba, 0x777: 0xba,\n\t0x778: 0xba, 0x779: 0xba, 0x77a: 0xba, 0x77b: 0xba, 0x77c: 0xba, 0x77d: 0xba, 0x77e: 0xba, 0x77f: 0xba,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0xba, 0x781: 0xba, 0x782: 0xba, 0x783: 0xba, 0x784: 0xba, 0x785: 0xba, 0x786: 0xba, 0x787: 0xba,\n\t0x788: 0xba, 0x789: 0xba, 0x78a: 0xba, 0x78b: 0xba, 0x78c: 0xba, 0x78d: 0xba, 0x78e: 0xba, 0x78f: 0xba,\n\t0x790: 0xba, 0x791: 0xba, 0x792: 0xba, 0x793: 0xba, 0x794: 0xba, 0x795: 0xba, 0x796: 0xba, 0x797: 0xba,\n\t0x798: 0xba, 0x799: 0xba, 0x79a: 0xba, 0x79b: 0xba, 0x79c: 0xba, 0x79d: 0xba, 0x79e: 0xba, 0x79f: 0xba,\n\t0x7a0: 0x76, 0x7a1: 0x77, 0x7a2: 0x78, 0x7a3: 0x17f, 0x7a4: 0x79, 0x7a5: 0x7a, 0x7a6: 0x180, 0x7a7: 0x7b,\n\t0x7a8: 0x7c, 0x7a9: 0xba, 0x7aa: 0xba, 0x7ab: 0xba, 0x7ac: 0xba, 0x7ad: 0xba, 0x7ae: 0xba, 0x7af: 0xba,\n\t0x7b0: 0xba, 0x7b1: 0xba, 0x7b2: 0xba, 0x7b3: 0xba, 0x7b4: 0xba, 0x7b5: 0xba, 0x7b6: 0xba, 0x7b7: 0xba,\n\t0x7b8: 0xba, 0x7b9: 0xba, 0x7ba: 0xba, 0x7bb: 0xba, 0x7bc: 0xba, 0x7bd: 0xba, 0x7be: 0xba, 0x7bf: 0xba,\n\t// Block 0x1f, offset 0x7c0\n\t0x7d0: 0x0d, 0x7d1: 0x0e, 0x7d2: 0x0f, 0x7d3: 0x10, 0x7d4: 0x11, 0x7d5: 0x0b, 0x7d6: 0x12, 0x7d7: 0x07,\n\t0x7d8: 0x13, 0x7d9: 0x0b, 0x7da: 0x0b, 0x7db: 0x14, 0x7dc: 0x0b, 0x7dd: 0x15, 0x7de: 0x16, 0x7df: 0x17,\n\t0x7e0: 0x07, 0x7e1: 0x07, 0x7e2: 0x07, 0x7e3: 0x07, 0x7e4: 0x07, 0x7e5: 0x07, 0x7e6: 0x07, 0x7e7: 0x07,\n\t0x7e8: 0x07, 0x7e9: 0x07, 0x7ea: 0x18, 0x7eb: 0x19, 0x7ec: 0x1a, 0x7ed: 0x07, 0x7ee: 0x1b, 0x7ef: 0x1c,\n\t0x7f0: 0x0b, 0x7f1: 0x0b, 0x7f2: 0x0b, 0x7f3: 0x0b, 0x7f4: 0x0b, 0x7f5: 0x0b, 0x7f6: 0x0b, 0x7f7: 0x0b,\n\t0x7f8: 0x0b, 0x7f9: 0x0b, 0x7fa: 0x0b, 0x7fb: 0x0b, 0x7fc: 0x0b, 0x7fd: 0x0b, 0x7fe: 0x0b, 0x7ff: 0x0b,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x0b, 0x801: 0x0b, 0x802: 0x0b, 0x803: 0x0b, 0x804: 0x0b, 0x805: 0x0b, 0x806: 0x0b, 0x807: 0x0b,\n\t0x808: 0x0b, 0x809: 0x0b, 0x80a: 0x0b, 0x80b: 0x0b, 0x80c: 0x0b, 0x80d: 0x0b, 0x80e: 0x0b, 0x80f: 0x0b,\n\t0x810: 0x0b, 0x811: 0x0b, 0x812: 0x0b, 0x813: 0x0b, 0x814: 0x0b, 0x815: 0x0b, 0x816: 0x0b, 0x817: 0x0b,\n\t0x818: 0x0b, 0x819: 0x0b, 0x81a: 0x0b, 0x81b: 0x0b, 0x81c: 0x0b, 0x81d: 0x0b, 0x81e: 0x0b, 0x81f: 0x0b,\n\t0x820: 0x0b, 0x821: 0x0b, 0x822: 0x0b, 0x823: 0x0b, 0x824: 0x0b, 0x825: 0x0b, 0x826: 0x0b, 0x827: 0x0b,\n\t0x828: 0x0b, 0x829: 0x0b, 0x82a: 0x0b, 0x82b: 0x0b, 0x82c: 0x0b, 0x82d: 0x0b, 0x82e: 0x0b, 0x82f: 0x0b,\n\t0x830: 0x0b, 0x831: 0x0b, 0x832: 0x0b, 0x833: 0x0b, 0x834: 0x0b, 0x835: 0x0b, 0x836: 0x0b, 0x837: 0x0b,\n\t0x838: 0x0b, 0x839: 0x0b, 0x83a: 0x0b, 0x83b: 0x0b, 0x83c: 0x0b, 0x83d: 0x0b, 0x83e: 0x0b, 0x83f: 0x0b,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x181, 0x841: 0x182, 0x842: 0xba, 0x843: 0xba, 0x844: 0x183, 0x845: 0x183, 0x846: 0x183, 0x847: 0x184,\n\t0x848: 0xba, 0x849: 0xba, 0x84a: 0xba, 0x84b: 0xba, 0x84c: 0xba, 0x84d: 0xba, 0x84e: 0xba, 0x84f: 0xba,\n\t0x850: 0xba, 0x851: 0xba, 0x852: 0xba, 0x853: 0xba, 0x854: 0xba, 0x855: 0xba, 0x856: 0xba, 0x857: 0xba,\n\t0x858: 0xba, 0x859: 0xba, 0x85a: 0xba, 0x85b: 0xba, 0x85c: 0xba, 0x85d: 0xba, 0x85e: 0xba, 0x85f: 0xba,\n\t0x860: 0xba, 0x861: 0xba, 0x862: 0xba, 0x863: 0xba, 0x864: 0xba, 0x865: 0xba, 0x866: 0xba, 0x867: 0xba,\n\t0x868: 0xba, 0x869: 0xba, 0x86a: 0xba, 0x86b: 0xba, 0x86c: 0xba, 0x86d: 0xba, 0x86e: 0xba, 0x86f: 0xba,\n\t0x870: 0xba, 0x871: 0xba, 0x872: 0xba, 0x873: 0xba, 0x874: 0xba, 0x875: 0xba, 0x876: 0xba, 0x877: 0xba,\n\t0x878: 0xba, 0x879: 0xba, 0x87a: 0xba, 0x87b: 0xba, 0x87c: 0xba, 0x87d: 0xba, 0x87e: 0xba, 0x87f: 0xba,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x0b, 0x881: 0x0b, 0x882: 0x0b, 0x883: 0x0b, 0x884: 0x0b, 0x885: 0x0b, 0x886: 0x0b, 0x887: 0x0b,\n\t0x888: 0x0b, 0x889: 0x0b, 0x88a: 0x0b, 0x88b: 0x0b, 0x88c: 0x0b, 0x88d: 0x0b, 0x88e: 0x0b, 0x88f: 0x0b,\n\t0x890: 0x0b, 0x891: 0x0b, 0x892: 0x0b, 0x893: 0x0b, 0x894: 0x0b, 0x895: 0x0b, 0x896: 0x0b, 0x897: 0x0b,\n\t0x898: 0x0b, 0x899: 0x0b, 0x89a: 0x0b, 0x89b: 0x0b, 0x89c: 0x0b, 0x89d: 0x0b, 0x89e: 0x0b, 0x89f: 0x0b,\n\t0x8a0: 0x1f, 0x8a1: 0x0b, 0x8a2: 0x0b, 0x8a3: 0x0b, 0x8a4: 0x0b, 0x8a5: 0x0b, 0x8a6: 0x0b, 0x8a7: 0x0b,\n\t0x8a8: 0x0b, 0x8a9: 0x0b, 0x8aa: 0x0b, 0x8ab: 0x0b, 0x8ac: 0x0b, 0x8ad: 0x0b, 0x8ae: 0x0b, 0x8af: 0x0b,\n\t0x8b0: 0x0b, 0x8b1: 0x0b, 0x8b2: 0x0b, 0x8b3: 0x0b, 0x8b4: 0x0b, 0x8b5: 0x0b, 0x8b6: 0x0b, 0x8b7: 0x0b,\n\t0x8b8: 0x0b, 0x8b9: 0x0b, 0x8ba: 0x0b, 0x8bb: 0x0b, 0x8bc: 0x0b, 0x8bd: 0x0b, 0x8be: 0x0b, 0x8bf: 0x0b,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x0b, 0x8c1: 0x0b, 0x8c2: 0x0b, 0x8c3: 0x0b, 0x8c4: 0x0b, 0x8c5: 0x0b, 0x8c6: 0x0b, 0x8c7: 0x0b,\n\t0x8c8: 0x0b, 0x8c9: 0x0b, 0x8ca: 0x0b, 0x8cb: 0x0b, 0x8cc: 0x0b, 0x8cd: 0x0b, 0x8ce: 0x0b, 0x8cf: 0x0b,\n}\n\n// idnaSparseOffset: 264 entries, 528 bytes\nvar idnaSparseOffset = []uint16{0x0, 0x8, 0x19, 0x25, 0x27, 0x2c, 0x34, 0x3f, 0x4b, 0x4f, 0x5e, 0x63, 0x6b, 0x77, 0x85, 0x8a, 0x93, 0xa3, 0xb1, 0xbd, 0xc9, 0xda, 0xe4, 0xeb, 0xf8, 0x109, 0x110, 0x11b, 0x12a, 0x138, 0x142, 0x144, 0x149, 0x14c, 0x14f, 0x151, 0x15d, 0x168, 0x170, 0x176, 0x17c, 0x181, 0x186, 0x189, 0x18d, 0x193, 0x198, 0x1a4, 0x1ae, 0x1b4, 0x1c5, 0x1cf, 0x1d2, 0x1da, 0x1dd, 0x1ea, 0x1f2, 0x1f6, 0x1fd, 0x205, 0x215, 0x221, 0x223, 0x22d, 0x239, 0x245, 0x251, 0x259, 0x25e, 0x268, 0x279, 0x27d, 0x288, 0x28c, 0x295, 0x29d, 0x2a3, 0x2a8, 0x2ab, 0x2af, 0x2b5, 0x2b9, 0x2bd, 0x2c3, 0x2ca, 0x2d0, 0x2d8, 0x2df, 0x2ea, 0x2f4, 0x2f8, 0x2fb, 0x301, 0x305, 0x307, 0x30a, 0x30c, 0x30f, 0x319, 0x31c, 0x32b, 0x32f, 0x334, 0x337, 0x33b, 0x340, 0x345, 0x34b, 0x351, 0x360, 0x366, 0x36a, 0x379, 0x37e, 0x386, 0x390, 0x39b, 0x3a3, 0x3b4, 0x3bd, 0x3cd, 0x3da, 0x3e4, 0x3e9, 0x3f6, 0x3fa, 0x3ff, 0x401, 0x405, 0x407, 0x40b, 0x414, 0x41a, 0x41e, 0x42e, 0x438, 0x43d, 0x440, 0x446, 0x44d, 0x452, 0x456, 0x45c, 0x461, 0x46a, 0x46f, 0x475, 0x47c, 0x483, 0x48a, 0x48e, 0x493, 0x496, 0x49b, 0x4a7, 0x4ad, 0x4b2, 0x4b9, 0x4c1, 0x4c6, 0x4ca, 0x4da, 0x4e1, 0x4e5, 0x4e9, 0x4f0, 0x4f2, 0x4f5, 0x4f8, 0x4fc, 0x500, 0x506, 0x50f, 0x51b, 0x522, 0x52b, 0x533, 0x53a, 0x548, 0x555, 0x562, 0x56b, 0x56f, 0x57d, 0x585, 0x590, 0x599, 0x59f, 0x5a7, 0x5b0, 0x5ba, 0x5bd, 0x5c9, 0x5cc, 0x5d1, 0x5de, 0x5e7, 0x5f3, 0x5f6, 0x600, 0x609, 0x615, 0x622, 0x62a, 0x62d, 0x632, 0x635, 0x638, 0x63b, 0x642, 0x649, 0x64d, 0x658, 0x65b, 0x661, 0x666, 0x66a, 0x66d, 0x670, 0x673, 0x676, 0x679, 0x67e, 0x688, 0x68b, 0x68f, 0x69e, 0x6aa, 0x6ae, 0x6b3, 0x6b8, 0x6bc, 0x6c1, 0x6ca, 0x6d5, 0x6db, 0x6e3, 0x6e7, 0x6eb, 0x6f1, 0x6f7, 0x6fc, 0x6ff, 0x70f, 0x716, 0x719, 0x71c, 0x720, 0x726, 0x72b, 0x730, 0x735, 0x738, 0x73d, 0x740, 0x743, 0x747, 0x74b, 0x74e, 0x75e, 0x76f, 0x774, 0x776, 0x778}\n\n// idnaSparseValues: 1915 entries, 7660 bytes\nvar idnaSparseValues = [1915]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xe105, lo: 0x80, hi: 0x96},\n\t{value: 0x0018, lo: 0x97, hi: 0x97},\n\t{value: 0xe105, lo: 0x98, hi: 0x9e},\n\t{value: 0x001f, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbf},\n\t// Block 0x1, offset 0x8\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0xe01d, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x82},\n\t{value: 0x0335, lo: 0x83, hi: 0x83},\n\t{value: 0x034d, lo: 0x84, hi: 0x84},\n\t{value: 0x0365, lo: 0x85, hi: 0x85},\n\t{value: 0xe00d, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x87},\n\t{value: 0xe00d, lo: 0x88, hi: 0x88},\n\t{value: 0x0008, lo: 0x89, hi: 0x89},\n\t{value: 0xe00d, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0x8b},\n\t{value: 0xe00d, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0x8d},\n\t{value: 0xe00d, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0xbf},\n\t// Block 0x2, offset 0x19\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x0249, lo: 0xb0, hi: 0xb0},\n\t{value: 0x037d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0259, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0269, lo: 0xb3, hi: 0xb3},\n\t{value: 0x034d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0395, lo: 0xb5, hi: 0xb5},\n\t{value: 0xe1bd, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0279, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0289, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0008, lo: 0xb9, hi: 0xbf},\n\t// Block 0x3, offset 0x25\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x3308, lo: 0x80, hi: 0xbf},\n\t// Block 0x4, offset 0x27\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x03f5, lo: 0x80, hi: 0x8f},\n\t{value: 0xe105, lo: 0x90, hi: 0x9f},\n\t{value: 0x049d, lo: 0xa0, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x5, offset 0x2c\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xe185, lo: 0x80, hi: 0x8f},\n\t{value: 0x0545, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x98},\n\t{value: 0x0008, lo: 0x99, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0008, lo: 0xa1, hi: 0xbf},\n\t// Block 0x6, offset 0x34\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0401, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x88},\n\t{value: 0x0018, lo: 0x89, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x3308, lo: 0x91, hi: 0xbd},\n\t{value: 0x0818, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7, offset 0x3f\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0818, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x82},\n\t{value: 0x0818, lo: 0x83, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x85},\n\t{value: 0x0818, lo: 0x86, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0808, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x8, offset 0x4b\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0a08, lo: 0x80, hi: 0x87},\n\t{value: 0x0c08, lo: 0x88, hi: 0x99},\n\t{value: 0x0a08, lo: 0x9a, hi: 0xbf},\n\t// Block 0x9, offset 0x4f\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3308, lo: 0x80, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8c},\n\t{value: 0x0c08, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0a08, lo: 0x8e, hi: 0x98},\n\t{value: 0x0c08, lo: 0x99, hi: 0x9b},\n\t{value: 0x0a08, lo: 0x9c, hi: 0xaa},\n\t{value: 0x0c08, lo: 0xab, hi: 0xac},\n\t{value: 0x0a08, lo: 0xad, hi: 0xb0},\n\t{value: 0x0c08, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0a08, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0c08, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0a08, lo: 0xb5, hi: 0xb7},\n\t{value: 0x0c08, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0a08, lo: 0xba, hi: 0xbf},\n\t// Block 0xa, offset 0x5e\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xb0},\n\t{value: 0x0808, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0xb, offset 0x63\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0808, lo: 0x80, hi: 0x89},\n\t{value: 0x0a08, lo: 0x8a, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xb3},\n\t{value: 0x0808, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xb9},\n\t{value: 0x0818, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0xc, offset 0x6b\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x99},\n\t{value: 0x0808, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0xa3},\n\t{value: 0x0808, lo: 0xa4, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa7},\n\t{value: 0x0808, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0818, lo: 0xb0, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xd, offset 0x77\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0a08, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0c08, lo: 0xaa, hi: 0xac},\n\t{value: 0x0808, lo: 0xad, hi: 0xad},\n\t{value: 0x0c08, lo: 0xae, hi: 0xae},\n\t{value: 0x0a08, lo: 0xaf, hi: 0xb0},\n\t{value: 0x0c08, lo: 0xb1, hi: 0xb2},\n\t{value: 0x0a08, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0a08, lo: 0xb6, hi: 0xb8},\n\t{value: 0x0c08, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0a08, lo: 0xba, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0xe, offset 0x85\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x93},\n\t{value: 0x3308, lo: 0x94, hi: 0xa1},\n\t{value: 0x0840, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3308, lo: 0xa3, hi: 0xbf},\n\t// Block 0xf, offset 0x8a\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x10, offset 0x93\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x85},\n\t{value: 0x3008, lo: 0x86, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x3008, lo: 0x8a, hi: 0x8c},\n\t{value: 0x3b08, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x97},\n\t{value: 0x0040, lo: 0x98, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x11, offset 0xa3\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0008, lo: 0xaa, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbf},\n\t// Block 0x12, offset 0xb1\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0xba},\n\t{value: 0x3b08, lo: 0xbb, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x13, offset 0xbd\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0040, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0008, lo: 0xb3, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x14, offset 0xc9\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x89},\n\t{value: 0x3b08, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8e},\n\t{value: 0x3008, lo: 0x8f, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x94},\n\t{value: 0x0040, lo: 0x95, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x3008, lo: 0x98, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xb1},\n\t{value: 0x3008, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x15, offset 0xda\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb2},\n\t{value: 0x08f1, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb9},\n\t{value: 0x3b08, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbe},\n\t{value: 0x0018, lo: 0xbf, hi: 0xbf},\n\t// Block 0x16, offset 0xe4\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x8e},\n\t{value: 0x0018, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0xbf},\n\t// Block 0x17, offset 0xeb\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x3308, lo: 0x88, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0961, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0999, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0008, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0x18, offset 0xf8\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0x8b},\n\t{value: 0xe03d, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xb8},\n\t{value: 0x3308, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0018, lo: 0xba, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x19, offset 0x109\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0018, lo: 0x8e, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0xbf},\n\t// Block 0x1a, offset 0x110\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x3008, lo: 0xab, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xb0},\n\t{value: 0x3008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb7},\n\t{value: 0x3008, lo: 0xb8, hi: 0xb8},\n\t{value: 0x3b08, lo: 0xb9, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1b, offset 0x11b\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x95},\n\t{value: 0x3008, lo: 0x96, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0x9d},\n\t{value: 0x3308, lo: 0x9e, hi: 0xa0},\n\t{value: 0x0008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3008, lo: 0xa2, hi: 0xa4},\n\t{value: 0x0008, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xbf},\n\t// Block 0x1c, offset 0x12a\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x3008, lo: 0x87, hi: 0x8c},\n\t{value: 0x3308, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x8e},\n\t{value: 0x3008, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x3008, lo: 0x9a, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0x1d, offset 0x138\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0040, lo: 0x80, hi: 0x86},\n\t{value: 0x055d, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8c},\n\t{value: 0x055d, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbb},\n\t{value: 0xe105, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbf},\n\t// Block 0x1e, offset 0x142\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0018, lo: 0x80, hi: 0xbf},\n\t// Block 0x1f, offset 0x144\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xa0},\n\t{value: 0x2018, lo: 0xa1, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0x20, offset 0x149\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xa7},\n\t{value: 0x2018, lo: 0xa8, hi: 0xbf},\n\t// Block 0x21, offset 0x14c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x2018, lo: 0x80, hi: 0x82},\n\t{value: 0x0018, lo: 0x83, hi: 0xbf},\n\t// Block 0x22, offset 0x14f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0008, lo: 0x80, hi: 0xbf},\n\t// Block 0x23, offset 0x151\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x24, offset 0x15d\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x25, offset 0x168\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0040, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbf},\n\t// Block 0x26, offset 0x170\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbf},\n\t// Block 0x27, offset 0x176\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x28, offset 0x17c\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x29, offset 0x181\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0xe045, lo: 0xb8, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x2a, offset 0x186\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xbf},\n\t// Block 0x2b, offset 0x189\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xac},\n\t{value: 0x0018, lo: 0xad, hi: 0xae},\n\t{value: 0x0008, lo: 0xaf, hi: 0xbf},\n\t// Block 0x2c, offset 0x18d\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9c},\n\t{value: 0x0040, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x2d, offset 0x193\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xb0},\n\t{value: 0x0008, lo: 0xb1, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0x2e, offset 0x198\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x93},\n\t{value: 0x3b08, lo: 0x94, hi: 0x94},\n\t{value: 0x0040, lo: 0x95, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3b08, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0018, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x2f, offset 0x1a4\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0x30, offset 0x1ae\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0xb3},\n\t{value: 0x3340, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3008, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x31, offset 0x1b4\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x3008, lo: 0x80, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x3008, lo: 0x87, hi: 0x88},\n\t{value: 0x3308, lo: 0x89, hi: 0x91},\n\t{value: 0x3b08, lo: 0x92, hi: 0x92},\n\t{value: 0x3308, lo: 0x93, hi: 0x93},\n\t{value: 0x0018, lo: 0x94, hi: 0x96},\n\t{value: 0x0008, lo: 0x97, hi: 0x97},\n\t{value: 0x0018, lo: 0x98, hi: 0x9b},\n\t{value: 0x0008, lo: 0x9c, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x32, offset 0x1c5\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0018, lo: 0x80, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x86},\n\t{value: 0x0218, lo: 0x87, hi: 0x87},\n\t{value: 0x0018, lo: 0x88, hi: 0x8a},\n\t{value: 0x33c0, lo: 0x8b, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0208, lo: 0xa0, hi: 0xbf},\n\t// Block 0x33, offset 0x1cf\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0208, lo: 0x80, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0x34, offset 0x1d2\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x0208, lo: 0x87, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0208, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x35, offset 0x1da\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0x36, offset 0x1dd\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb8},\n\t{value: 0x3308, lo: 0xb9, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x37, offset 0x1ea\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0018, lo: 0x80, hi: 0x80},\n\t{value: 0x0040, lo: 0x81, hi: 0x83},\n\t{value: 0x0018, lo: 0x84, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x38, offset 0x1f2\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x39, offset 0x1f6\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0028, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0xbf},\n\t// Block 0x3a, offset 0x1fd\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x3308, lo: 0x97, hi: 0x98},\n\t{value: 0x3008, lo: 0x99, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x3b, offset 0x205\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0008, lo: 0x80, hi: 0x94},\n\t{value: 0x3008, lo: 0x95, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3b08, lo: 0xa0, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xac},\n\t{value: 0x3008, lo: 0xad, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3c, offset 0x215\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0018, lo: 0xa8, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xbd},\n\t{value: 0x3318, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3d, offset 0x221\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0040, lo: 0x80, hi: 0xbf},\n\t// Block 0x3e, offset 0x223\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x3308, lo: 0x80, hi: 0x83},\n\t{value: 0x3008, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x3008, lo: 0xbd, hi: 0xbf},\n\t// Block 0x3f, offset 0x22d\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x3808, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x40, offset 0x239\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa9},\n\t{value: 0x3808, lo: 0xaa, hi: 0xaa},\n\t{value: 0x3b08, lo: 0xab, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xbf},\n\t// Block 0x41, offset 0x245\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa9},\n\t{value: 0x3008, lo: 0xaa, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xae},\n\t{value: 0x3308, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3808, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbb},\n\t{value: 0x0018, lo: 0xbc, hi: 0xbf},\n\t// Block 0x42, offset 0x251\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa3},\n\t{value: 0x3008, lo: 0xa4, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbf},\n\t// Block 0x43, offset 0x259\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0x44, offset 0x25e\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0e29, lo: 0x80, hi: 0x80},\n\t{value: 0x0e41, lo: 0x81, hi: 0x81},\n\t{value: 0x0e59, lo: 0x82, hi: 0x82},\n\t{value: 0x0e71, lo: 0x83, hi: 0x83},\n\t{value: 0x0e89, lo: 0x84, hi: 0x85},\n\t{value: 0x0ea1, lo: 0x86, hi: 0x86},\n\t{value: 0x0eb9, lo: 0x87, hi: 0x87},\n\t{value: 0x057d, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0xbf},\n\t// Block 0x45, offset 0x268\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x3308, lo: 0x90, hi: 0x92},\n\t{value: 0x0018, lo: 0x93, hi: 0x93},\n\t{value: 0x3308, lo: 0x94, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa8},\n\t{value: 0x0008, lo: 0xa9, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb1},\n\t{value: 0x3008, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xb6},\n\t{value: 0x3008, lo: 0xb7, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x46, offset 0x279\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3308, lo: 0x80, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xba},\n\t{value: 0x3308, lo: 0xbb, hi: 0xbf},\n\t// Block 0x47, offset 0x27d\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x87},\n\t{value: 0xe045, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0xe045, lo: 0x98, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa7},\n\t{value: 0xe045, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb7},\n\t{value: 0xe045, lo: 0xb8, hi: 0xbf},\n\t// Block 0x48, offset 0x288\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x3318, lo: 0x90, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xbf},\n\t// Block 0x49, offset 0x28c\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x88},\n\t{value: 0x24c1, lo: 0x89, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0x4a, offset 0x295\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0018, lo: 0x80, hi: 0xab},\n\t{value: 0x24f1, lo: 0xac, hi: 0xac},\n\t{value: 0x2529, lo: 0xad, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xae},\n\t{value: 0x2579, lo: 0xaf, hi: 0xaf},\n\t{value: 0x25b1, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0018, lo: 0xb1, hi: 0xbf},\n\t// Block 0x4b, offset 0x29d\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x9f},\n\t{value: 0x0080, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xad},\n\t{value: 0x0080, lo: 0xae, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x4c, offset 0x2a3\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0xa8},\n\t{value: 0x09c5, lo: 0xa9, hi: 0xa9},\n\t{value: 0x09e5, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xbf},\n\t// Block 0x4d, offset 0x2a8\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xbf},\n\t// Block 0x4e, offset 0x2ab\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x8b},\n\t{value: 0x28c1, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0xbf},\n\t// Block 0x4f, offset 0x2af\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0xb3},\n\t{value: 0x0e66, lo: 0xb4, hi: 0xb4},\n\t{value: 0x292a, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0e86, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0x50, offset 0x2b5\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x9b},\n\t{value: 0x2941, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0xbf},\n\t// Block 0x51, offset 0x2b9\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0x52, offset 0x2bd\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0x0018, lo: 0x98, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbc},\n\t{value: 0x0018, lo: 0xbd, hi: 0xbf},\n\t// Block 0x53, offset 0x2c3\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x92},\n\t{value: 0x0040, lo: 0x93, hi: 0xab},\n\t{value: 0x0018, lo: 0xac, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0x54, offset 0x2ca\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xe185, lo: 0x80, hi: 0x8f},\n\t{value: 0x03f5, lo: 0x90, hi: 0x9f},\n\t{value: 0x0ea5, lo: 0xa0, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x55, offset 0x2d0\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xac},\n\t{value: 0x0008, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x56, offset 0x2d8\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xae},\n\t{value: 0xe075, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0x57, offset 0x2df\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x58, offset 0x2ea\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xbf},\n\t// Block 0x59, offset 0x2f4\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xae},\n\t{value: 0x0008, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x5a, offset 0x2f8\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0xbf},\n\t// Block 0x5b, offset 0x2fb\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9e},\n\t{value: 0x0edd, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbf},\n\t// Block 0x5c, offset 0x301\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xb2},\n\t{value: 0x0efd, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0x5d, offset 0x305\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x0f1d, lo: 0x80, hi: 0xbf},\n\t// Block 0x5e, offset 0x307\n\t{value: 0x0020, lo: 0x02},\n\t{value: 0x171d, lo: 0x80, hi: 0x8f},\n\t{value: 0x18fd, lo: 0x90, hi: 0xbf},\n\t// Block 0x5f, offset 0x30a\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x1efd, lo: 0x80, hi: 0xbf},\n\t// Block 0x60, offset 0x30c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xbf},\n\t// Block 0x61, offset 0x30f\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x98},\n\t{value: 0x3308, lo: 0x99, hi: 0x9a},\n\t{value: 0x29e2, lo: 0x9b, hi: 0x9b},\n\t{value: 0x2a0a, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0008, lo: 0x9d, hi: 0x9e},\n\t{value: 0x2a31, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0008, lo: 0xa1, hi: 0xbf},\n\t// Block 0x62, offset 0x319\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xbe},\n\t{value: 0x2a69, lo: 0xbf, hi: 0xbf},\n\t// Block 0x63, offset 0x31c\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0040, lo: 0x80, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xb0},\n\t{value: 0x2a1d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x2a3d, lo: 0xb2, hi: 0xb2},\n\t{value: 0x2a5d, lo: 0xb3, hi: 0xb3},\n\t{value: 0x2a7d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x2a5d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x2a9d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x2abd, lo: 0xb7, hi: 0xb7},\n\t{value: 0x2add, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2afd, lo: 0xba, hi: 0xbb},\n\t{value: 0x2b1d, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2afd, lo: 0xbe, hi: 0xbf},\n\t// Block 0x64, offset 0x32b\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x65, offset 0x32f\n\t{value: 0x0030, lo: 0x04},\n\t{value: 0x2aa2, lo: 0x80, hi: 0x9d},\n\t{value: 0x305a, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x30a2, lo: 0xa0, hi: 0xbf},\n\t// Block 0x66, offset 0x334\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xbf},\n\t// Block 0x67, offset 0x337\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0x68, offset 0x33b\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0x69, offset 0x340\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xbf},\n\t// Block 0x6a, offset 0x345\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x0018, lo: 0xa6, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0018, lo: 0xb2, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0x6b, offset 0x34b\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0040, lo: 0x80, hi: 0xb6},\n\t{value: 0x0008, lo: 0xb7, hi: 0xb7},\n\t{value: 0x2009, lo: 0xb8, hi: 0xb8},\n\t{value: 0x6e89, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xbf},\n\t// Block 0x6c, offset 0x351\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0x85},\n\t{value: 0x3b08, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x8a},\n\t{value: 0x3308, lo: 0x8b, hi: 0x8b},\n\t{value: 0x0008, lo: 0x8c, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0018, lo: 0xa8, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x6d, offset 0x360\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0208, lo: 0x80, hi: 0xb1},\n\t{value: 0x0108, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0008, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0x6e, offset 0x366\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xbf},\n\t// Block 0x6f, offset 0x36a\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3008, lo: 0x80, hi: 0x83},\n\t{value: 0x3b08, lo: 0x84, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8d},\n\t{value: 0x0018, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xba},\n\t{value: 0x0008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0018, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x70, offset 0x379\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x71, offset 0x37e\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x91},\n\t{value: 0x3008, lo: 0x92, hi: 0x92},\n\t{value: 0x3808, lo: 0x93, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x72, offset 0x386\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb9},\n\t{value: 0x3008, lo: 0xba, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x3008, lo: 0xbd, hi: 0xbf},\n\t// Block 0x73, offset 0x390\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3808, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x74, offset 0x39b\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x75, offset 0x3a3\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x8b},\n\t{value: 0x3308, lo: 0x8c, hi: 0x8c},\n\t{value: 0x3008, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0018, lo: 0x9c, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x3008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x76, offset 0x3b4\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb8},\n\t{value: 0x0008, lo: 0xb9, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbf},\n\t// Block 0x77, offset 0x3bd\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x9a},\n\t{value: 0x0008, lo: 0x9b, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xaa},\n\t{value: 0x3008, lo: 0xab, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3b08, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x78, offset 0x3cd\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x88},\n\t{value: 0x0008, lo: 0x89, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x90},\n\t{value: 0x0008, lo: 0x91, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x79, offset 0x3da\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9b},\n\t{value: 0x4465, lo: 0x9c, hi: 0x9c},\n\t{value: 0x447d, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2971, lo: 0x9e, hi: 0x9e},\n\t{value: 0xe06d, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xaf},\n\t{value: 0x4495, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7a, offset 0x3e4\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x44b5, lo: 0x80, hi: 0x8f},\n\t{value: 0x44d5, lo: 0x90, hi: 0x9f},\n\t{value: 0x44f5, lo: 0xa0, hi: 0xaf},\n\t{value: 0x44d5, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7b, offset 0x3e9\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3b08, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x7c, offset 0x3f6\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7d, offset 0x3fa\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8a},\n\t{value: 0x0018, lo: 0x8b, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x7e, offset 0x3ff\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x4515, lo: 0x80, hi: 0xbf},\n\t// Block 0x7f, offset 0x401\n\t{value: 0x0020, lo: 0x03},\n\t{value: 0x4d15, lo: 0x80, hi: 0x94},\n\t{value: 0x4ad5, lo: 0x95, hi: 0x95},\n\t{value: 0x4fb5, lo: 0x96, hi: 0xbf},\n\t// Block 0x80, offset 0x405\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x54f5, lo: 0x80, hi: 0xbf},\n\t// Block 0x81, offset 0x407\n\t{value: 0x0020, lo: 0x03},\n\t{value: 0x5cf5, lo: 0x80, hi: 0x84},\n\t{value: 0x5655, lo: 0x85, hi: 0x85},\n\t{value: 0x5d95, lo: 0x86, hi: 0xbf},\n\t// Block 0x82, offset 0x40b\n\t{value: 0x0020, lo: 0x08},\n\t{value: 0x6b55, lo: 0x80, hi: 0x8f},\n\t{value: 0x6d15, lo: 0x90, hi: 0x90},\n\t{value: 0x6d55, lo: 0x91, hi: 0xab},\n\t{value: 0x6ea1, lo: 0xac, hi: 0xac},\n\t{value: 0x70b5, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x70d5, lo: 0xb0, hi: 0xbf},\n\t// Block 0x83, offset 0x414\n\t{value: 0x0020, lo: 0x05},\n\t{value: 0x72d5, lo: 0x80, hi: 0xad},\n\t{value: 0x6535, lo: 0xae, hi: 0xae},\n\t{value: 0x7895, lo: 0xaf, hi: 0xb5},\n\t{value: 0x6f55, lo: 0xb6, hi: 0xb6},\n\t{value: 0x7975, lo: 0xb7, hi: 0xbf},\n\t// Block 0x84, offset 0x41a\n\t{value: 0x0028, lo: 0x03},\n\t{value: 0x7c21, lo: 0x80, hi: 0x82},\n\t{value: 0x7be1, lo: 0x83, hi: 0x83},\n\t{value: 0x7c99, lo: 0x84, hi: 0xbf},\n\t// Block 0x85, offset 0x41e\n\t{value: 0x0038, lo: 0x0f},\n\t{value: 0x9db1, lo: 0x80, hi: 0x83},\n\t{value: 0x9e59, lo: 0x84, hi: 0x85},\n\t{value: 0x9e91, lo: 0x86, hi: 0x87},\n\t{value: 0x9ec9, lo: 0x88, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0xa089, lo: 0x92, hi: 0x97},\n\t{value: 0xa1a1, lo: 0x98, hi: 0x9c},\n\t{value: 0xa281, lo: 0x9d, hi: 0xb3},\n\t{value: 0x9d41, lo: 0xb4, hi: 0xb4},\n\t{value: 0x9db1, lo: 0xb5, hi: 0xb5},\n\t{value: 0xa789, lo: 0xb6, hi: 0xbb},\n\t{value: 0xa869, lo: 0xbc, hi: 0xbc},\n\t{value: 0xa7f9, lo: 0xbd, hi: 0xbd},\n\t{value: 0xa8d9, lo: 0xbe, hi: 0xbf},\n\t// Block 0x86, offset 0x42e\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0008, lo: 0xbc, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0x87, offset 0x438\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0xbf},\n\t// Block 0x88, offset 0x43d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x89, offset 0x440\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0x8a, offset 0x446\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0040, lo: 0xa1, hi: 0xbf},\n\t// Block 0x8b, offset 0x44d\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x8c, offset 0x452\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x9c},\n\t{value: 0x0040, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x8d, offset 0x456\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x8e, offset 0x45c\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xac},\n\t{value: 0x0008, lo: 0xad, hi: 0xbf},\n\t// Block 0x8f, offset 0x461\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x90, offset 0x46a\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x91, offset 0x46f\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0xbf},\n\t// Block 0x92, offset 0x475\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe145, lo: 0x80, hi: 0x87},\n\t{value: 0xe1c5, lo: 0x88, hi: 0x8f},\n\t{value: 0xe145, lo: 0x90, hi: 0x97},\n\t{value: 0x8ad5, lo: 0x98, hi: 0x9f},\n\t{value: 0x8aed, lo: 0xa0, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xbf},\n\t// Block 0x93, offset 0x47c\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x8aed, lo: 0xb0, hi: 0xb7},\n\t{value: 0x8ad5, lo: 0xb8, hi: 0xbf},\n\t// Block 0x94, offset 0x483\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe145, lo: 0x80, hi: 0x87},\n\t{value: 0xe1c5, lo: 0x88, hi: 0x8f},\n\t{value: 0xe145, lo: 0x90, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x95, offset 0x48a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x96, offset 0x48e\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xae},\n\t{value: 0x0018, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0x97, offset 0x493\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x98, offset 0x496\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xbf},\n\t// Block 0x99, offset 0x49b\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0808, lo: 0x80, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x87},\n\t{value: 0x0808, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0808, lo: 0x8a, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0808, lo: 0xb7, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbb},\n\t{value: 0x0808, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbe},\n\t{value: 0x0808, lo: 0xbf, hi: 0xbf},\n\t// Block 0x9a, offset 0x4a7\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x96},\n\t{value: 0x0818, lo: 0x97, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0818, lo: 0xb7, hi: 0xbf},\n\t// Block 0x9b, offset 0x4ad\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xa6},\n\t{value: 0x0818, lo: 0xa7, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0x9c, offset 0x4b2\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0808, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xba},\n\t{value: 0x0818, lo: 0xbb, hi: 0xbf},\n\t// Block 0x9d, offset 0x4b9\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0818, lo: 0x96, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbe},\n\t{value: 0x0818, lo: 0xbf, hi: 0xbf},\n\t// Block 0x9e, offset 0x4c1\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbb},\n\t{value: 0x0818, lo: 0xbc, hi: 0xbd},\n\t{value: 0x0808, lo: 0xbe, hi: 0xbf},\n\t// Block 0x9f, offset 0x4c6\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0818, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x91},\n\t{value: 0x0818, lo: 0x92, hi: 0xbf},\n\t// Block 0xa0, offset 0x4ca\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0808, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8b},\n\t{value: 0x3308, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x94},\n\t{value: 0x0808, lo: 0x95, hi: 0x97},\n\t{value: 0x0040, lo: 0x98, hi: 0x98},\n\t{value: 0x0808, lo: 0x99, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xa1, offset 0x4da\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0818, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0818, lo: 0x90, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xbc},\n\t{value: 0x0818, lo: 0xbd, hi: 0xbf},\n\t// Block 0xa2, offset 0x4e1\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0x9c},\n\t{value: 0x0818, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0xa3, offset 0x4e5\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb8},\n\t{value: 0x0018, lo: 0xb9, hi: 0xbf},\n\t// Block 0xa4, offset 0x4e9\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0x0818, lo: 0x98, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb7},\n\t{value: 0x0818, lo: 0xb8, hi: 0xbf},\n\t// Block 0xa5, offset 0x4f0\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0808, lo: 0x80, hi: 0xbf},\n\t// Block 0xa6, offset 0x4f2\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0808, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0xbf},\n\t// Block 0xa7, offset 0x4f5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x03dd, lo: 0x80, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbf},\n\t// Block 0xa8, offset 0x4f8\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb9},\n\t{value: 0x0818, lo: 0xba, hi: 0xbf},\n\t// Block 0xa9, offset 0x4fc\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0818, lo: 0xa0, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xaa, offset 0x500\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x3008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbf},\n\t// Block 0xab, offset 0x506\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x85},\n\t{value: 0x3b08, lo: 0x86, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x91},\n\t{value: 0x0018, lo: 0x92, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xac, offset 0x50f\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb6},\n\t{value: 0x3008, lo: 0xb7, hi: 0xb8},\n\t{value: 0x3b08, lo: 0xb9, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbc},\n\t{value: 0x0340, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0xad, offset 0x51b\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x81},\n\t{value: 0x0040, lo: 0x82, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xae, offset 0x522\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xb2},\n\t{value: 0x3b08, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0008, lo: 0xb6, hi: 0xbf},\n\t// Block 0xaf, offset 0x52b\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0018, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0008, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0xb0, offset 0x533\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xbe},\n\t{value: 0x3008, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb1, offset 0x53a\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x3808, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x89},\n\t{value: 0x3308, lo: 0x8a, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0008, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0xb2, offset 0x548\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0x92},\n\t{value: 0x0008, lo: 0x93, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xae},\n\t{value: 0x3308, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3008, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3808, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb3, offset 0x555\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0008, lo: 0x9f, hi: 0xa8},\n\t{value: 0x0018, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0xb4, offset 0x562\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x3308, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3008, lo: 0xa0, hi: 0xa2},\n\t{value: 0x3308, lo: 0xa3, hi: 0xa9},\n\t{value: 0x3b08, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xb5, offset 0x56b\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbf},\n\t// Block 0xb6, offset 0x56f\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x3b08, lo: 0x82, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x84},\n\t{value: 0x3008, lo: 0x85, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x8a},\n\t{value: 0x0018, lo: 0x8b, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0xbf},\n\t// Block 0xb7, offset 0x57d\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb8},\n\t{value: 0x3008, lo: 0xb9, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb8, offset 0x585\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x81},\n\t{value: 0x3b08, lo: 0x82, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x85},\n\t{value: 0x0018, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xb9, offset 0x590\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0x3008, lo: 0xb8, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xba, offset 0x599\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x9b},\n\t{value: 0x3308, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0xbf},\n\t// Block 0xbb, offset 0x59f\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xbc, offset 0x5a7\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xbf},\n\t// Block 0xbd, offset 0x5b0\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb5},\n\t{value: 0x3808, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0xbe, offset 0x5ba\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0xbf},\n\t// Block 0xbf, offset 0x5bd\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9f},\n\t{value: 0x3008, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xaa},\n\t{value: 0x3b08, lo: 0xab, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0018, lo: 0xba, hi: 0xbf},\n\t// Block 0xc0, offset 0x5c9\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x049d, lo: 0xa0, hi: 0xbf},\n\t// Block 0xc1, offset 0x5cc\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0xc2, offset 0x5d1\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x86},\n\t{value: 0x3008, lo: 0x87, hi: 0x88},\n\t{value: 0x3308, lo: 0x89, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3b08, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb8},\n\t{value: 0x3008, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xba},\n\t{value: 0x3308, lo: 0xbb, hi: 0xbe},\n\t{value: 0x0018, lo: 0xbf, hi: 0xbf},\n\t// Block 0xc3, offset 0x5de\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x3b08, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x90},\n\t{value: 0x3308, lo: 0x91, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x98},\n\t{value: 0x3308, lo: 0x99, hi: 0x9b},\n\t{value: 0x0008, lo: 0x9c, hi: 0xbf},\n\t// Block 0xc4, offset 0x5e7\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0x89},\n\t{value: 0x3308, lo: 0x8a, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x98},\n\t{value: 0x3b08, lo: 0x99, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9c},\n\t{value: 0x0040, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0xa2},\n\t{value: 0x0040, lo: 0xa3, hi: 0xbf},\n\t// Block 0xc5, offset 0x5f3\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0xc6, offset 0x5f6\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xc7, offset 0x600\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xbf},\n\t// Block 0xc8, offset 0x609\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xa9},\n\t{value: 0x3308, lo: 0xaa, hi: 0xb0},\n\t{value: 0x3008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0xc9, offset 0x615\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0xca, offset 0x622\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x3308, lo: 0x80, hi: 0x83},\n\t{value: 0x3b08, lo: 0x84, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xcb, offset 0x62a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xcc, offset 0x62d\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0xcd, offset 0x632\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0xbf},\n\t// Block 0xce, offset 0x635\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xbf},\n\t// Block 0xcf, offset 0x638\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0xbf},\n\t// Block 0xd0, offset 0x63b\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0xd1, offset 0x642\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0018, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0xd2, offset 0x649\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0xd3, offset 0x64d\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0018, lo: 0x84, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0008, lo: 0xa3, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbf},\n\t// Block 0xd4, offset 0x658\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0xbf},\n\t// Block 0xd5, offset 0x65b\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x90},\n\t{value: 0x3008, lo: 0x91, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xd6, offset 0x661\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x8e},\n\t{value: 0x3308, lo: 0x8f, hi: 0x92},\n\t{value: 0x0008, lo: 0x93, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0xd7, offset 0x666\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xbf},\n\t// Block 0xd8, offset 0x66a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xbf},\n\t// Block 0xd9, offset 0x66d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbf},\n\t// Block 0xda, offset 0x670\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xbf},\n\t// Block 0xdb, offset 0x673\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0xdc, offset 0x676\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0xdd, offset 0x679\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0xde, offset 0x67e\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0018, lo: 0x9c, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x03c0, lo: 0xa0, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xbf},\n\t// Block 0xdf, offset 0x688\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0xe0, offset 0x68b\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa8},\n\t{value: 0x0018, lo: 0xa9, hi: 0xbf},\n\t// Block 0xe1, offset 0x68f\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0018, lo: 0x80, hi: 0x9d},\n\t{value: 0xb5b9, lo: 0x9e, hi: 0x9e},\n\t{value: 0xb601, lo: 0x9f, hi: 0x9f},\n\t{value: 0xb649, lo: 0xa0, hi: 0xa0},\n\t{value: 0xb6b1, lo: 0xa1, hi: 0xa1},\n\t{value: 0xb719, lo: 0xa2, hi: 0xa2},\n\t{value: 0xb781, lo: 0xa3, hi: 0xa3},\n\t{value: 0xb7e9, lo: 0xa4, hi: 0xa4},\n\t{value: 0x3018, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3318, lo: 0xa7, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xac},\n\t{value: 0x3018, lo: 0xad, hi: 0xb2},\n\t{value: 0x0340, lo: 0xb3, hi: 0xba},\n\t{value: 0x3318, lo: 0xbb, hi: 0xbf},\n\t// Block 0xe2, offset 0x69e\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3318, lo: 0x80, hi: 0x82},\n\t{value: 0x0018, lo: 0x83, hi: 0x84},\n\t{value: 0x3318, lo: 0x85, hi: 0x8b},\n\t{value: 0x0018, lo: 0x8c, hi: 0xa9},\n\t{value: 0x3318, lo: 0xaa, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xba},\n\t{value: 0xb851, lo: 0xbb, hi: 0xbb},\n\t{value: 0xb899, lo: 0xbc, hi: 0xbc},\n\t{value: 0xb8e1, lo: 0xbd, hi: 0xbd},\n\t{value: 0xb949, lo: 0xbe, hi: 0xbe},\n\t{value: 0xb9b1, lo: 0xbf, hi: 0xbf},\n\t// Block 0xe3, offset 0x6aa\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xba19, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xbf},\n\t// Block 0xe4, offset 0x6ae\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x81},\n\t{value: 0x3318, lo: 0x82, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0xbf},\n\t// Block 0xe5, offset 0x6b3\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0xe6, offset 0x6b8\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3308, lo: 0x80, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xba},\n\t{value: 0x3308, lo: 0xbb, hi: 0xbf},\n\t// Block 0xe7, offset 0x6bc\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x3308, lo: 0x80, hi: 0xac},\n\t{value: 0x0018, lo: 0xad, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0xe8, offset 0x6c1\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa0},\n\t{value: 0x3308, lo: 0xa1, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0xe9, offset 0x6ca\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3308, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x3308, lo: 0x88, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3308, lo: 0xa3, hi: 0xa4},\n\t{value: 0x0040, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xbf},\n\t// Block 0xea, offset 0x6d5\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0808, lo: 0x80, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x86},\n\t{value: 0x0818, lo: 0x87, hi: 0x8f},\n\t{value: 0x3308, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0xbf},\n\t// Block 0xeb, offset 0x6db\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0a08, lo: 0x80, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0818, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0xec, offset 0x6e3\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0xed, offset 0x6e7\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0xee, offset 0x6eb\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xb0},\n\t{value: 0x0018, lo: 0xb1, hi: 0xbf},\n\t// Block 0xef, offset 0x6f1\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x0018, lo: 0x91, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0xf0, offset 0x6f7\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x8f},\n\t{value: 0xc1c1, lo: 0x90, hi: 0x90},\n\t{value: 0x0018, lo: 0x91, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xbf},\n\t// Block 0xf1, offset 0x6fc\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0xa5},\n\t{value: 0x0018, lo: 0xa6, hi: 0xbf},\n\t// Block 0xf2, offset 0x6ff\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0xc7e9, lo: 0x80, hi: 0x80},\n\t{value: 0xc839, lo: 0x81, hi: 0x81},\n\t{value: 0xc889, lo: 0x82, hi: 0x82},\n\t{value: 0xc8d9, lo: 0x83, hi: 0x83},\n\t{value: 0xc929, lo: 0x84, hi: 0x84},\n\t{value: 0xc979, lo: 0x85, hi: 0x85},\n\t{value: 0xc9c9, lo: 0x86, hi: 0x86},\n\t{value: 0xca19, lo: 0x87, hi: 0x87},\n\t{value: 0xca69, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0xcab9, lo: 0x90, hi: 0x90},\n\t{value: 0xcad9, lo: 0x91, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xbf},\n\t// Block 0xf3, offset 0x70f\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x94},\n\t{value: 0x0040, lo: 0x95, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0xf4, offset 0x716\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0xf5, offset 0x719\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x94},\n\t{value: 0x0040, lo: 0x95, hi: 0xbf},\n\t// Block 0xf6, offset 0x71c\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0xf7, offset 0x720\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbf},\n\t// Block 0xf8, offset 0x726\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xbf},\n\t// Block 0xf9, offset 0x72b\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xfa, offset 0x730\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xbf},\n\t// Block 0xfb, offset 0x735\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x97},\n\t{value: 0x0040, lo: 0x98, hi: 0xbf},\n\t// Block 0xfc, offset 0x738\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x80},\n\t{value: 0x0040, lo: 0x81, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xbf},\n\t// Block 0xfd, offset 0x73d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0xbf},\n\t// Block 0xfe, offset 0x740\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0xff, offset 0x743\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x100, offset 0x747\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x101, offset 0x74b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xa0},\n\t{value: 0x0040, lo: 0xa1, hi: 0xbf},\n\t// Block 0x102, offset 0x74e\n\t{value: 0x0020, lo: 0x0f},\n\t{value: 0xdeb9, lo: 0x80, hi: 0x89},\n\t{value: 0x8dfd, lo: 0x8a, hi: 0x8a},\n\t{value: 0xdff9, lo: 0x8b, hi: 0x9c},\n\t{value: 0x8e1d, lo: 0x9d, hi: 0x9d},\n\t{value: 0xe239, lo: 0x9e, hi: 0xa2},\n\t{value: 0x8e3d, lo: 0xa3, hi: 0xa3},\n\t{value: 0xe2d9, lo: 0xa4, hi: 0xab},\n\t{value: 0x7ed5, lo: 0xac, hi: 0xac},\n\t{value: 0xe3d9, lo: 0xad, hi: 0xaf},\n\t{value: 0x8e5d, lo: 0xb0, hi: 0xb0},\n\t{value: 0xe439, lo: 0xb1, hi: 0xb6},\n\t{value: 0x8e7d, lo: 0xb7, hi: 0xb9},\n\t{value: 0xe4f9, lo: 0xba, hi: 0xba},\n\t{value: 0x8edd, lo: 0xbb, hi: 0xbb},\n\t{value: 0xe519, lo: 0xbc, hi: 0xbf},\n\t// Block 0x103, offset 0x75e\n\t{value: 0x0020, lo: 0x10},\n\t{value: 0x937d, lo: 0x80, hi: 0x80},\n\t{value: 0xf099, lo: 0x81, hi: 0x86},\n\t{value: 0x939d, lo: 0x87, hi: 0x8a},\n\t{value: 0xd9f9, lo: 0x8b, hi: 0x8b},\n\t{value: 0xf159, lo: 0x8c, hi: 0x96},\n\t{value: 0x941d, lo: 0x97, hi: 0x97},\n\t{value: 0xf2b9, lo: 0x98, hi: 0xa3},\n\t{value: 0x943d, lo: 0xa4, hi: 0xa6},\n\t{value: 0xf439, lo: 0xa7, hi: 0xaa},\n\t{value: 0x949d, lo: 0xab, hi: 0xab},\n\t{value: 0xf4b9, lo: 0xac, hi: 0xac},\n\t{value: 0x94bd, lo: 0xad, hi: 0xad},\n\t{value: 0xf4d9, lo: 0xae, hi: 0xaf},\n\t{value: 0x94dd, lo: 0xb0, hi: 0xb1},\n\t{value: 0xf519, lo: 0xb2, hi: 0xbe},\n\t{value: 0x2040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x104, offset 0x76f\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0340, lo: 0x81, hi: 0x81},\n\t{value: 0x0040, lo: 0x82, hi: 0x9f},\n\t{value: 0x0340, lo: 0xa0, hi: 0xbf},\n\t// Block 0x105, offset 0x774\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0340, lo: 0x80, hi: 0xbf},\n\t// Block 0x106, offset 0x776\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x33c0, lo: 0x80, hi: 0xbf},\n\t// Block 0x107, offset 0x778\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x33c0, lo: 0x80, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n}\n\n// Total table size 42114 bytes (41KiB); checksum: 355A58A4\n"
  },
  {
    "path": "vendor/golang.org/x/net/idna/tables11.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n//go:build go1.13 && !go1.14\n\npackage idna\n\n// UnicodeVersion is the Unicode version from which the tables in this package are derived.\nconst UnicodeVersion = \"11.0.0\"\n\nvar mappings string = \"\" + // Size: 8175 bytes\n\t\"\\x00\\x01 \\x03 ̈\\x01a\\x03 ̄\\x012\\x013\\x03 ́\\x03 ̧\\x011\\x01o\\x051⁄4\\x051⁄2\" +\n\t\"\\x053⁄4\\x03i̇\\x03l·\\x03ʼn\\x01s\\x03dž\\x03ⱥ\\x03ⱦ\\x01h\\x01j\\x01r\\x01w\\x01y\" +\n\t\"\\x03 ̆\\x03 ̇\\x03 ̊\\x03 ̨\\x03 ̃\\x03 ̋\\x01l\\x01x\\x04̈́\\x03 ι\\x01;\\x05 ̈́\" +\n\t\"\\x04եւ\\x04اٴ\\x04وٴ\\x04ۇٴ\\x04يٴ\\x06क़\\x06ख़\\x06ग़\\x06ज़\\x06ड़\\x06ढ़\\x06फ़\" +\n\t\"\\x06य़\\x06ড়\\x06ঢ়\\x06য়\\x06ਲ਼\\x06ਸ਼\\x06ਖ਼\\x06ਗ਼\\x06ਜ਼\\x06ਫ਼\\x06ଡ଼\\x06ଢ଼\" +\n\t\"\\x06ํา\\x06ໍາ\\x06ຫນ\\x06ຫມ\\x06གྷ\\x06ཌྷ\\x06དྷ\\x06བྷ\\x06ཛྷ\\x06ཀྵ\\x06ཱི\\x06ཱུ\" +\n\t\"\\x06ྲྀ\\x09ྲཱྀ\\x06ླྀ\\x09ླཱྀ\\x06ཱྀ\\x06ྒྷ\\x06ྜྷ\\x06ྡྷ\\x06ྦྷ\\x06ྫྷ\\x06ྐྵ\\x02\" +\n\t\"в\\x02д\\x02о\\x02с\\x02т\\x02ъ\\x02ѣ\\x02æ\\x01b\\x01d\\x01e\\x02ǝ\\x01g\\x01i\\x01k\" +\n\t\"\\x01m\\x01n\\x02ȣ\\x01p\\x01t\\x01u\\x02ɐ\\x02ɑ\\x02ə\\x02ɛ\\x02ɜ\\x02ŋ\\x02ɔ\\x02ɯ\" +\n\t\"\\x01v\\x02β\\x02γ\\x02δ\\x02φ\\x02χ\\x02ρ\\x02н\\x02ɒ\\x01c\\x02ɕ\\x02ð\\x01f\\x02ɟ\" +\n\t\"\\x02ɡ\\x02ɥ\\x02ɨ\\x02ɩ\\x02ɪ\\x02ʝ\\x02ɭ\\x02ʟ\\x02ɱ\\x02ɰ\\x02ɲ\\x02ɳ\\x02ɴ\\x02ɵ\" +\n\t\"\\x02ɸ\\x02ʂ\\x02ʃ\\x02ƫ\\x02ʉ\\x02ʊ\\x02ʋ\\x02ʌ\\x01z\\x02ʐ\\x02ʑ\\x02ʒ\\x02θ\\x02ss\" +\n\t\"\\x02ά\\x02έ\\x02ή\\x02ί\\x02ό\\x02ύ\\x02ώ\\x05ἀι\\x05ἁι\\x05ἂι\\x05ἃι\\x05ἄι\\x05ἅι\" +\n\t\"\\x05ἆι\\x05ἇι\\x05ἠι\\x05ἡι\\x05ἢι\\x05ἣι\\x05ἤι\\x05ἥι\\x05ἦι\\x05ἧι\\x05ὠι\\x05ὡι\" +\n\t\"\\x05ὢι\\x05ὣι\\x05ὤι\\x05ὥι\\x05ὦι\\x05ὧι\\x05ὰι\\x04αι\\x04άι\\x05ᾶι\\x02ι\\x05 ̈͂\" +\n\t\"\\x05ὴι\\x04ηι\\x04ήι\\x05ῆι\\x05 ̓̀\\x05 ̓́\\x05 ̓͂\\x02ΐ\\x05 ̔̀\\x05 ̔́\\x05 ̔͂\" +\n\t\"\\x02ΰ\\x05 ̈̀\\x01`\\x05ὼι\\x04ωι\\x04ώι\\x05ῶι\\x06′′\\x09′′′\\x06‵‵\\x09‵‵‵\\x02!\" +\n\t\"!\\x02??\\x02?!\\x02!?\\x0c′′′′\\x010\\x014\\x015\\x016\\x017\\x018\\x019\\x01+\\x01=\" +\n\t\"\\x01(\\x01)\\x02rs\\x02ħ\\x02no\\x01q\\x02sm\\x02tm\\x02ω\\x02å\\x02א\\x02ב\\x02ג\" +\n\t\"\\x02ד\\x02π\\x051⁄7\\x051⁄9\\x061⁄10\\x051⁄3\\x052⁄3\\x051⁄5\\x052⁄5\\x053⁄5\\x054\" +\n\t\"⁄5\\x051⁄6\\x055⁄6\\x051⁄8\\x053⁄8\\x055⁄8\\x057⁄8\\x041⁄\\x02ii\\x02iv\\x02vi\" +\n\t\"\\x04viii\\x02ix\\x02xi\\x050⁄3\\x06∫∫\\x09∫∫∫\\x06∮∮\\x09∮∮∮\\x0210\\x0211\\x0212\" +\n\t\"\\x0213\\x0214\\x0215\\x0216\\x0217\\x0218\\x0219\\x0220\\x04(10)\\x04(11)\\x04(12)\" +\n\t\"\\x04(13)\\x04(14)\\x04(15)\\x04(16)\\x04(17)\\x04(18)\\x04(19)\\x04(20)\\x0c∫∫∫∫\" +\n\t\"\\x02==\\x05⫝̸\\x02ɫ\\x02ɽ\\x02ȿ\\x02ɀ\\x01.\\x04 ゙\\x04 ゚\\x06より\\x06コト\\x05(ᄀ)\\x05\" +\n\t\"(ᄂ)\\x05(ᄃ)\\x05(ᄅ)\\x05(ᄆ)\\x05(ᄇ)\\x05(ᄉ)\\x05(ᄋ)\\x05(ᄌ)\\x05(ᄎ)\\x05(ᄏ)\\x05(ᄐ\" +\n\t\")\\x05(ᄑ)\\x05(ᄒ)\\x05(가)\\x05(나)\\x05(다)\\x05(라)\\x05(마)\\x05(바)\\x05(사)\\x05(아)\" +\n\t\"\\x05(자)\\x05(차)\\x05(카)\\x05(타)\\x05(파)\\x05(하)\\x05(주)\\x08(오전)\\x08(오후)\\x05(一)\" +\n\t\"\\x05(二)\\x05(三)\\x05(四)\\x05(五)\\x05(六)\\x05(七)\\x05(八)\\x05(九)\\x05(十)\\x05(月)\" +\n\t\"\\x05(火)\\x05(水)\\x05(木)\\x05(金)\\x05(土)\\x05(日)\\x05(株)\\x05(有)\\x05(社)\\x05(名)\" +\n\t\"\\x05(特)\\x05(財)\\x05(祝)\\x05(労)\\x05(代)\\x05(呼)\\x05(学)\\x05(監)\\x05(企)\\x05(資)\" +\n\t\"\\x05(協)\\x05(祭)\\x05(休)\\x05(自)\\x05(至)\\x0221\\x0222\\x0223\\x0224\\x0225\\x0226\" +\n\t\"\\x0227\\x0228\\x0229\\x0230\\x0231\\x0232\\x0233\\x0234\\x0235\\x06참고\\x06주의\\x0236\" +\n\t\"\\x0237\\x0238\\x0239\\x0240\\x0241\\x0242\\x0243\\x0244\\x0245\\x0246\\x0247\\x0248\" +\n\t\"\\x0249\\x0250\\x041月\\x042月\\x043月\\x044月\\x045月\\x046月\\x047月\\x048月\\x049月\\x0510\" +\n\t\"月\\x0511月\\x0512月\\x02hg\\x02ev\\x0cアパート\\x0cアルファ\\x0cアンペア\\x09アール\\x0cイニング\\x09\" +\n\t\"インチ\\x09ウォン\\x0fエスクード\\x0cエーカー\\x09オンス\\x09オーム\\x09カイリ\\x0cカラット\\x0cカロリー\\x09ガロ\" +\n\t\"ン\\x09ガンマ\\x06ギガ\\x09ギニー\\x0cキュリー\\x0cギルダー\\x06キロ\\x0fキログラム\\x12キロメートル\\x0fキロワッ\" +\n\t\"ト\\x09グラム\\x0fグラムトン\\x0fクルゼイロ\\x0cクローネ\\x09ケース\\x09コルナ\\x09コーポ\\x0cサイクル\\x0fサンチ\" +\n\t\"ーム\\x0cシリング\\x09センチ\\x09セント\\x09ダース\\x06デシ\\x06ドル\\x06トン\\x06ナノ\\x09ノット\\x09ハイツ\" +\n\t\"\\x0fパーセント\\x09パーツ\\x0cバーレル\\x0fピアストル\\x09ピクル\\x06ピコ\\x06ビル\\x0fファラッド\\x0cフィート\" +\n\t\"\\x0fブッシェル\\x09フラン\\x0fヘクタール\\x06ペソ\\x09ペニヒ\\x09ヘルツ\\x09ペンス\\x09ページ\\x09ベータ\\x0cポイ\" +\n\t\"ント\\x09ボルト\\x06ホン\\x09ポンド\\x09ホール\\x09ホーン\\x0cマイクロ\\x09マイル\\x09マッハ\\x09マルク\\x0fマ\" +\n\t\"ンション\\x0cミクロン\\x06ミリ\\x0fミリバール\\x06メガ\\x0cメガトン\\x0cメートル\\x09ヤード\\x09ヤール\\x09ユアン\" +\n\t\"\\x0cリットル\\x06リラ\\x09ルピー\\x0cルーブル\\x06レム\\x0fレントゲン\\x09ワット\\x040点\\x041点\\x042点\" +\n\t\"\\x043点\\x044点\\x045点\\x046点\\x047点\\x048点\\x049点\\x0510点\\x0511点\\x0512点\\x0513点\" +\n\t\"\\x0514点\\x0515点\\x0516点\\x0517点\\x0518点\\x0519点\\x0520点\\x0521点\\x0522点\\x0523点\" +\n\t\"\\x0524点\\x02da\\x02au\\x02ov\\x02pc\\x02dm\\x02iu\\x06平成\\x06昭和\\x06大正\\x06明治\\x0c株\" +\n\t\"式会社\\x02pa\\x02na\\x02ma\\x02ka\\x02kb\\x02mb\\x02gb\\x04kcal\\x02pf\\x02nf\\x02m\" +\n\t\"g\\x02kg\\x02hz\\x02ml\\x02dl\\x02kl\\x02fm\\x02nm\\x02mm\\x02cm\\x02km\\x02m2\\x02m\" +\n\t\"3\\x05m∕s\\x06m∕s2\\x07rad∕s\\x08rad∕s2\\x02ps\\x02ns\\x02ms\\x02pv\\x02nv\\x02mv\" +\n\t\"\\x02kv\\x02pw\\x02nw\\x02mw\\x02kw\\x02bq\\x02cc\\x02cd\\x06c∕kg\\x02db\\x02gy\\x02\" +\n\t\"ha\\x02hp\\x02in\\x02kk\\x02kt\\x02lm\\x02ln\\x02lx\\x02ph\\x02pr\\x02sr\\x02sv\\x02\" +\n\t\"wb\\x05v∕m\\x05a∕m\\x041日\\x042日\\x043日\\x044日\\x045日\\x046日\\x047日\\x048日\\x049日\" +\n\t\"\\x0510日\\x0511日\\x0512日\\x0513日\\x0514日\\x0515日\\x0516日\\x0517日\\x0518日\\x0519日\" +\n\t\"\\x0520日\\x0521日\\x0522日\\x0523日\\x0524日\\x0525日\\x0526日\\x0527日\\x0528日\\x0529日\" +\n\t\"\\x0530日\\x0531日\\x02ь\\x02ɦ\\x02ɬ\\x02ʞ\\x02ʇ\\x02œ\\x04𤋮\\x04𢡊\\x04𢡄\\x04𣏕\\x04𥉉\" +\n\t\"\\x04𥳐\\x04𧻓\\x02ff\\x02fi\\x02fl\\x02st\\x04մն\\x04մե\\x04մի\\x04վն\\x04մխ\\x04יִ\" +\n\t\"\\x04ײַ\\x02ע\\x02ה\\x02כ\\x02ל\\x02ם\\x02ר\\x02ת\\x04שׁ\\x04שׂ\\x06שּׁ\\x06שּׂ\\x04א\" +\n\t\"ַ\\x04אָ\\x04אּ\\x04בּ\\x04גּ\\x04דּ\\x04הּ\\x04וּ\\x04זּ\\x04טּ\\x04יּ\\x04ךּ\\x04\" +\n\t\"כּ\\x04לּ\\x04מּ\\x04נּ\\x04סּ\\x04ףּ\\x04פּ\\x04צּ\\x04קּ\\x04רּ\\x04שּ\\x04תּ\" +\n\t\"\\x04וֹ\\x04בֿ\\x04כֿ\\x04פֿ\\x04אל\\x02ٱ\\x02ٻ\\x02پ\\x02ڀ\\x02ٺ\\x02ٿ\\x02ٹ\\x02ڤ\" +\n\t\"\\x02ڦ\\x02ڄ\\x02ڃ\\x02چ\\x02ڇ\\x02ڍ\\x02ڌ\\x02ڎ\\x02ڈ\\x02ژ\\x02ڑ\\x02ک\\x02گ\\x02ڳ\" +\n\t\"\\x02ڱ\\x02ں\\x02ڻ\\x02ۀ\\x02ہ\\x02ھ\\x02ے\\x02ۓ\\x02ڭ\\x02ۇ\\x02ۆ\\x02ۈ\\x02ۋ\\x02ۅ\" +\n\t\"\\x02ۉ\\x02ې\\x02ى\\x04ئا\\x04ئە\\x04ئو\\x04ئۇ\\x04ئۆ\\x04ئۈ\\x04ئې\\x04ئى\\x02ی\\x04\" +\n\t\"ئج\\x04ئح\\x04ئم\\x04ئي\\x04بج\\x04بح\\x04بخ\\x04بم\\x04بى\\x04بي\\x04تج\\x04تح\" +\n\t\"\\x04تخ\\x04تم\\x04تى\\x04تي\\x04ثج\\x04ثم\\x04ثى\\x04ثي\\x04جح\\x04جم\\x04حج\\x04حم\" +\n\t\"\\x04خج\\x04خح\\x04خم\\x04سج\\x04سح\\x04سخ\\x04سم\\x04صح\\x04صم\\x04ضج\\x04ضح\\x04ضخ\" +\n\t\"\\x04ضم\\x04طح\\x04طم\\x04ظم\\x04عج\\x04عم\\x04غج\\x04غم\\x04فج\\x04فح\\x04فخ\\x04فم\" +\n\t\"\\x04فى\\x04في\\x04قح\\x04قم\\x04قى\\x04قي\\x04كا\\x04كج\\x04كح\\x04كخ\\x04كل\\x04كم\" +\n\t\"\\x04كى\\x04كي\\x04لج\\x04لح\\x04لخ\\x04لم\\x04لى\\x04لي\\x04مج\\x04مح\\x04مخ\\x04مم\" +\n\t\"\\x04مى\\x04مي\\x04نج\\x04نح\\x04نخ\\x04نم\\x04نى\\x04ني\\x04هج\\x04هم\\x04هى\\x04هي\" +\n\t\"\\x04يج\\x04يح\\x04يخ\\x04يم\\x04يى\\x04يي\\x04ذٰ\\x04رٰ\\x04ىٰ\\x05 ٌّ\\x05 ٍّ\\x05\" +\n\t\" َّ\\x05 ُّ\\x05 ِّ\\x05 ّٰ\\x04ئر\\x04ئز\\x04ئن\\x04بر\\x04بز\\x04بن\\x04تر\\x04تز\" +\n\t\"\\x04تن\\x04ثر\\x04ثز\\x04ثن\\x04ما\\x04نر\\x04نز\\x04نن\\x04ير\\x04يز\\x04ين\\x04ئخ\" +\n\t\"\\x04ئه\\x04به\\x04ته\\x04صخ\\x04له\\x04نه\\x04هٰ\\x04يه\\x04ثه\\x04سه\\x04شم\\x04شه\" +\n\t\"\\x06ـَّ\\x06ـُّ\\x06ـِّ\\x04طى\\x04طي\\x04عى\\x04عي\\x04غى\\x04غي\\x04سى\\x04سي\" +\n\t\"\\x04شى\\x04شي\\x04حى\\x04حي\\x04جى\\x04جي\\x04خى\\x04خي\\x04صى\\x04صي\\x04ضى\\x04ضي\" +\n\t\"\\x04شج\\x04شح\\x04شخ\\x04شر\\x04سر\\x04صر\\x04ضر\\x04اً\\x06تجم\\x06تحج\\x06تحم\" +\n\t\"\\x06تخم\\x06تمج\\x06تمح\\x06تمخ\\x06جمح\\x06حمي\\x06حمى\\x06سحج\\x06سجح\\x06سجى\" +\n\t\"\\x06سمح\\x06سمج\\x06سمم\\x06صحح\\x06صمم\\x06شحم\\x06شجي\\x06شمخ\\x06شمم\\x06ضحى\" +\n\t\"\\x06ضخم\\x06طمح\\x06طمم\\x06طمي\\x06عجم\\x06عمم\\x06عمى\\x06غمم\\x06غمي\\x06غمى\" +\n\t\"\\x06فخم\\x06قمح\\x06قمم\\x06لحم\\x06لحي\\x06لحى\\x06لجج\\x06لخم\\x06لمح\\x06محج\" +\n\t\"\\x06محم\\x06محي\\x06مجح\\x06مجم\\x06مخج\\x06مخم\\x06مجخ\\x06همج\\x06همم\\x06نحم\" +\n\t\"\\x06نحى\\x06نجم\\x06نجى\\x06نمي\\x06نمى\\x06يمم\\x06بخي\\x06تجي\\x06تجى\\x06تخي\" +\n\t\"\\x06تخى\\x06تمي\\x06تمى\\x06جمي\\x06جحى\\x06جمى\\x06سخى\\x06صحي\\x06شحي\\x06ضحي\" +\n\t\"\\x06لجي\\x06لمي\\x06يحي\\x06يجي\\x06يمي\\x06ممي\\x06قمي\\x06نحي\\x06عمي\\x06كمي\" +\n\t\"\\x06نجح\\x06مخي\\x06لجم\\x06كمم\\x06جحي\\x06حجي\\x06مجي\\x06فمي\\x06بحي\\x06سخي\" +\n\t\"\\x06نجي\\x06صلے\\x06قلے\\x08الله\\x08اكبر\\x08محمد\\x08صلعم\\x08رسول\\x08عليه\" +\n\t\"\\x08وسلم\\x06صلى!صلى الله عليه وسلم\\x0fجل جلاله\\x08ریال\\x01,\\x01:\\x01!\" +\n\t\"\\x01?\\x01_\\x01{\\x01}\\x01[\\x01]\\x01#\\x01&\\x01*\\x01-\\x01<\\x01>\\x01\\\\\\x01$\" +\n\t\"\\x01%\\x01@\\x04ـً\\x04ـَ\\x04ـُ\\x04ـِ\\x04ـّ\\x04ـْ\\x02ء\\x02آ\\x02أ\\x02ؤ\\x02إ\" +\n\t\"\\x02ئ\\x02ا\\x02ب\\x02ة\\x02ت\\x02ث\\x02ج\\x02ح\\x02خ\\x02د\\x02ذ\\x02ر\\x02ز\\x02س\" +\n\t\"\\x02ش\\x02ص\\x02ض\\x02ط\\x02ظ\\x02ع\\x02غ\\x02ف\\x02ق\\x02ك\\x02ل\\x02م\\x02ن\\x02ه\" +\n\t\"\\x02و\\x02ي\\x04لآ\\x04لأ\\x04لإ\\x04لا\\x01\\x22\\x01'\\x01/\\x01^\\x01|\\x01~\\x02¢\" +\n\t\"\\x02£\\x02¬\\x02¦\\x02¥\\x08𝅗𝅥\\x08𝅘𝅥\\x0c𝅘𝅥𝅮\\x0c𝅘𝅥𝅯\\x0c𝅘𝅥𝅰\\x0c𝅘𝅥𝅱\\x0c𝅘𝅥𝅲\\x08𝆹\" +\n\t\"𝅥\\x08𝆺𝅥\\x0c𝆹𝅥𝅮\\x0c𝆺𝅥𝅮\\x0c𝆹𝅥𝅯\\x0c𝆺𝅥𝅯\\x02ı\\x02ȷ\\x02α\\x02ε\\x02ζ\\x02η\\x02\" +\n\t\"κ\\x02λ\\x02μ\\x02ν\\x02ξ\\x02ο\\x02σ\\x02τ\\x02υ\\x02ψ\\x03∇\\x03∂\\x02ϝ\\x02ٮ\\x02ڡ\" +\n\t\"\\x02ٯ\\x020,\\x021,\\x022,\\x023,\\x024,\\x025,\\x026,\\x027,\\x028,\\x029,\\x03(a)\" +\n\t\"\\x03(b)\\x03(c)\\x03(d)\\x03(e)\\x03(f)\\x03(g)\\x03(h)\\x03(i)\\x03(j)\\x03(k)\" +\n\t\"\\x03(l)\\x03(m)\\x03(n)\\x03(o)\\x03(p)\\x03(q)\\x03(r)\\x03(s)\\x03(t)\\x03(u)\" +\n\t\"\\x03(v)\\x03(w)\\x03(x)\\x03(y)\\x03(z)\\x07〔s〕\\x02wz\\x02hv\\x02sd\\x03ppv\\x02w\" +\n\t\"c\\x02mc\\x02md\\x02dj\\x06ほか\\x06ココ\\x03サ\\x03手\\x03字\\x03双\\x03デ\\x03二\\x03多\\x03解\" +\n\t\"\\x03天\\x03交\\x03映\\x03無\\x03料\\x03前\\x03後\\x03再\\x03新\\x03初\\x03終\\x03生\\x03販\\x03声\" +\n\t\"\\x03吹\\x03演\\x03投\\x03捕\\x03一\\x03三\\x03遊\\x03左\\x03中\\x03右\\x03指\\x03走\\x03打\\x03禁\" +\n\t\"\\x03空\\x03合\\x03満\\x03有\\x03月\\x03申\\x03割\\x03営\\x03配\\x09〔本〕\\x09〔三〕\\x09〔二〕\\x09〔安\" +\n\t\"〕\\x09〔点〕\\x09〔打〕\\x09〔盗〕\\x09〔勝〕\\x09〔敗〕\\x03得\\x03可\\x03丽\\x03丸\\x03乁\\x03你\\x03\" +\n\t\"侮\\x03侻\\x03倂\\x03偺\\x03備\\x03僧\\x03像\\x03㒞\\x03免\\x03兔\\x03兤\\x03具\\x03㒹\\x03內\\x03\" +\n\t\"冗\\x03冤\\x03仌\\x03冬\\x03况\\x03凵\\x03刃\\x03㓟\\x03刻\\x03剆\\x03剷\\x03㔕\\x03勇\\x03勉\\x03\" +\n\t\"勤\\x03勺\\x03包\\x03匆\\x03北\\x03卉\\x03卑\\x03博\\x03即\\x03卽\\x03卿\\x03灰\\x03及\\x03叟\\x03\" +\n\t\"叫\\x03叱\\x03吆\\x03咞\\x03吸\\x03呈\\x03周\\x03咢\\x03哶\\x03唐\\x03啓\\x03啣\\x03善\\x03喙\\x03\" +\n\t\"喫\\x03喳\\x03嗂\\x03圖\\x03嘆\\x03圗\\x03噑\\x03噴\\x03切\\x03壮\\x03城\\x03埴\\x03堍\\x03型\\x03\" +\n\t\"堲\\x03報\\x03墬\\x03売\\x03壷\\x03夆\\x03夢\\x03奢\\x03姬\\x03娛\\x03娧\\x03姘\\x03婦\\x03㛮\\x03\" +\n\t\"嬈\\x03嬾\\x03寃\\x03寘\\x03寧\\x03寳\\x03寿\\x03将\\x03尢\\x03㞁\\x03屠\\x03屮\\x03峀\\x03岍\\x03\" +\n\t\"嵃\\x03嵮\\x03嵫\\x03嵼\\x03巡\\x03巢\\x03㠯\\x03巽\\x03帨\\x03帽\\x03幩\\x03㡢\\x03㡼\\x03庰\\x03\" +\n\t\"庳\\x03庶\\x03廊\\x03廾\\x03舁\\x03弢\\x03㣇\\x03形\\x03彫\\x03㣣\\x03徚\\x03忍\\x03志\\x03忹\\x03\" +\n\t\"悁\\x03㤺\\x03㤜\\x03悔\\x03惇\\x03慈\\x03慌\\x03慎\\x03慺\\x03憎\\x03憲\\x03憤\\x03憯\\x03懞\\x03\" +\n\t\"懲\\x03懶\\x03成\\x03戛\\x03扝\\x03抱\\x03拔\\x03捐\\x03挽\\x03拼\\x03捨\\x03掃\\x03揤\\x03搢\\x03\" +\n\t\"揅\\x03掩\\x03㨮\\x03摩\\x03摾\\x03撝\\x03摷\\x03㩬\\x03敏\\x03敬\\x03旣\\x03書\\x03晉\\x03㬙\\x03\" +\n\t\"暑\\x03㬈\\x03㫤\\x03冒\\x03冕\\x03最\\x03暜\\x03肭\\x03䏙\\x03朗\\x03望\\x03朡\\x03杞\\x03杓\\x03\" +\n\t\"㭉\\x03柺\\x03枅\\x03桒\\x03梅\\x03梎\\x03栟\\x03椔\\x03㮝\\x03楂\\x03榣\\x03槪\\x03檨\\x03櫛\\x03\" +\n\t\"㰘\\x03次\\x03歔\\x03㱎\\x03歲\\x03殟\\x03殺\\x03殻\\x03汎\\x03沿\\x03泍\\x03汧\\x03洖\\x03派\\x03\" +\n\t\"海\\x03流\\x03浩\\x03浸\\x03涅\\x03洴\\x03港\\x03湮\\x03㴳\\x03滋\\x03滇\\x03淹\\x03潮\\x03濆\\x03\" +\n\t\"瀹\\x03瀞\\x03瀛\\x03㶖\\x03灊\\x03災\\x03灷\\x03炭\\x03煅\\x03熜\\x03爨\\x03爵\\x03牐\\x03犀\\x03\" +\n\t\"犕\\x03獺\\x03王\\x03㺬\\x03玥\\x03㺸\\x03瑇\\x03瑜\\x03瑱\\x03璅\\x03瓊\\x03㼛\\x03甤\\x03甾\\x03\" +\n\t\"異\\x03瘐\\x03㿼\\x03䀈\\x03直\\x03眞\\x03真\\x03睊\\x03䀹\\x03瞋\\x03䁆\\x03䂖\\x03硎\\x03碌\\x03\" +\n\t\"磌\\x03䃣\\x03祖\\x03福\\x03秫\\x03䄯\\x03穀\\x03穊\\x03穏\\x03䈂\\x03篆\\x03築\\x03䈧\\x03糒\\x03\" +\n\t\"䊠\\x03糨\\x03糣\\x03紀\\x03絣\\x03䌁\\x03緇\\x03縂\\x03繅\\x03䌴\\x03䍙\\x03罺\\x03羕\\x03翺\\x03\" +\n\t\"者\\x03聠\\x03聰\\x03䏕\\x03育\\x03脃\\x03䐋\\x03脾\\x03媵\\x03舄\\x03辞\\x03䑫\\x03芑\\x03芋\\x03\" +\n\t\"芝\\x03劳\\x03花\\x03芳\\x03芽\\x03苦\\x03若\\x03茝\\x03荣\\x03莭\\x03茣\\x03莽\\x03菧\\x03著\\x03\" +\n\t\"荓\\x03菊\\x03菌\\x03菜\\x03䔫\\x03蓱\\x03蓳\\x03蔖\\x03蕤\\x03䕝\\x03䕡\\x03䕫\\x03虐\\x03虜\\x03\" +\n\t\"虧\\x03虩\\x03蚩\\x03蚈\\x03蜎\\x03蛢\\x03蝹\\x03蜨\\x03蝫\\x03螆\\x03蟡\\x03蠁\\x03䗹\\x03衠\\x03\" +\n\t\"衣\\x03裗\\x03裞\\x03䘵\\x03裺\\x03㒻\\x03䚾\\x03䛇\\x03誠\\x03諭\\x03變\\x03豕\\x03貫\\x03賁\\x03\" +\n\t\"贛\\x03起\\x03跋\\x03趼\\x03跰\\x03軔\\x03輸\\x03邔\\x03郱\\x03鄑\\x03鄛\\x03鈸\\x03鋗\\x03鋘\\x03\" +\n\t\"鉼\\x03鏹\\x03鐕\\x03開\\x03䦕\\x03閷\\x03䧦\\x03雃\\x03嶲\\x03霣\\x03䩮\\x03䩶\\x03韠\\x03䪲\\x03\" +\n\t\"頋\\x03頩\\x03飢\\x03䬳\\x03餩\\x03馧\\x03駂\\x03駾\\x03䯎\\x03鬒\\x03鱀\\x03鳽\\x03䳎\\x03䳭\\x03\" +\n\t\"鵧\\x03䳸\\x03麻\\x03䵖\\x03黹\\x03黾\\x03鼅\\x03鼏\\x03鼖\\x03鼻\"\n\nvar xorData string = \"\" + // Size: 4855 bytes\n\t\"\\x02\\x0c\\x09\\x02\\xb0\\xec\\x02\\xad\\xd8\\x02\\xad\\xd9\\x02\\x06\\x07\\x02\\x0f\\x12\" +\n\t\"\\x02\\x0f\\x1f\\x02\\x0f\\x1d\\x02\\x01\\x13\\x02\\x0f\\x16\\x02\\x0f\\x0b\\x02\\x0f3\" +\n\t\"\\x02\\x0f7\\x02\\x0f?\\x02\\x0f/\\x02\\x0f*\\x02\\x0c&\\x02\\x0c*\\x02\\x0c;\\x02\\x0c9\" +\n\t\"\\x02\\x0c%\\x02\\xab\\xed\\x02\\xab\\xe2\\x02\\xab\\xe3\\x02\\xa9\\xe0\\x02\\xa9\\xe1\" +\n\t\"\\x02\\xa9\\xe6\\x02\\xa3\\xcb\\x02\\xa3\\xc8\\x02\\xa3\\xc9\\x02\\x01#\\x02\\x01\\x08\" +\n\t\"\\x02\\x0e>\\x02\\x0e'\\x02\\x0f\\x03\\x02\\x03\\x0d\\x02\\x03\\x09\\x02\\x03\\x17\\x02\" +\n\t\"\\x03\\x0e\\x02\\x02\\x03\\x02\\x011\\x02\\x01\\x00\\x02\\x01\\x10\\x02\\x03<\\x02\\x07\" +\n\t\"\\x0d\\x02\\x02\\x0c\\x02\\x0c0\\x02\\x01\\x03\\x02\\x01\\x01\\x02\\x01 \\x02\\x01\\x22\" +\n\t\"\\x02\\x01)\\x02\\x01\\x0a\\x02\\x01\\x0c\\x02\\x02\\x06\\x02\\x02\\x02\\x02\\x03\\x10\" +\n\t\"\\x03\\x037 \\x03\\x0b+\\x03\\x02\\x01\\x04\\x02\\x01\\x02\\x02\\x019\\x02\\x03\\x1c\\x02\" +\n\t\"\\x02$\\x03\\x80p$\\x02\\x03:\\x02\\x03\\x0a\\x03\\xc1r.\\x03\\xc1r,\\x03\\xc1r\\x02\" +\n\t\"\\x02\\x02:\\x02\\x02>\\x02\\x02,\\x02\\x02\\x10\\x02\\x02\\x00\\x03\\xc1s<\\x03\\xc1s*\" +\n\t\"\\x03\\xc2L$\\x03\\xc2L;\\x02\\x09)\\x02\\x0a\\x19\\x03\\x83\\xab\\xe3\\x03\\x83\\xab\" +\n\t\"\\xf2\\x03 4\\xe0\\x03\\x81\\xab\\xea\\x03\\x81\\xab\\xf3\\x03 4\\xef\\x03\\x96\\xe1\\xcd\" +\n\t\"\\x03\\x84\\xe5\\xc3\\x02\\x0d\\x11\\x03\\x8b\\xec\\xcb\\x03\\x94\\xec\\xcf\\x03\\x9a\\xec\" +\n\t\"\\xc2\\x03\\x8b\\xec\\xdb\\x03\\x94\\xec\\xdf\\x03\\x9a\\xec\\xd2\\x03\\x01\\x0c!\\x03\" +\n\t\"\\x01\\x0c#\\x03ʠ\\x9d\\x03ʣ\\x9c\\x03ʢ\\x9f\\x03ʥ\\x9e\\x03ʤ\\x91\\x03ʧ\\x90\\x03ʦ\\x93\" +\n\t\"\\x03ʩ\\x92\\x03ʨ\\x95\\x03\\xca\\xf3\\xb5\\x03\\xca\\xf0\\xb4\\x03\\xca\\xf1\\xb7\\x03\" +\n\t\"\\xca\\xf6\\xb6\\x03\\xca\\xf7\\x89\\x03\\xca\\xf4\\x88\\x03\\xca\\xf5\\x8b\\x03\\xca\\xfa\" +\n\t\"\\x8a\\x03\\xca\\xfb\\x8d\\x03\\xca\\xf8\\x8c\\x03\\xca\\xf9\\x8f\\x03\\xca\\xfe\\x8e\\x03\" +\n\t\"\\xca\\xff\\x81\\x03\\xca\\xfc\\x80\\x03\\xca\\xfd\\x83\\x03\\xca\\xe2\\x82\\x03\\xca\\xe3\" +\n\t\"\\x85\\x03\\xca\\xe0\\x84\\x03\\xca\\xe1\\x87\\x03\\xca\\xe6\\x86\\x03\\xca\\xe7\\x99\\x03\" +\n\t\"\\xca\\xe4\\x98\\x03\\xca\\xe5\\x9b\\x03\\xca\\xea\\x9a\\x03\\xca\\xeb\\x9d\\x03\\xca\\xe8\" +\n\t\"\\x9c\\x03ؓ\\x89\\x03ߔ\\x8b\\x02\\x010\\x03\\x03\\x04\\x1e\\x03\\x04\\x15\\x12\\x03\\x0b\" +\n\t\"\\x05,\\x03\\x06\\x04\\x00\\x03\\x06\\x04)\\x03\\x06\\x044\\x03\\x06\\x04<\\x03\\x06\\x05\" +\n\t\"\\x1d\\x03\\x06\\x06\\x00\\x03\\x06\\x06\\x0a\\x03\\x06\\x06'\\x03\\x06\\x062\\x03\\x0786\" +\n\t\"\\x03\\x079/\\x03\\x079 \\x03\\x07:\\x0e\\x03\\x07:\\x1b\\x03\\x07:%\\x03\\x07;/\\x03\" +\n\t\"\\x07;%\\x03\\x074\\x11\\x03\\x076\\x09\\x03\\x077*\\x03\\x070\\x01\\x03\\x070\\x0f\\x03\" +\n\t\"\\x070.\\x03\\x071\\x16\\x03\\x071\\x04\\x03\\x0710\\x03\\x072\\x18\\x03\\x072-\\x03\" +\n\t\"\\x073\\x14\\x03\\x073>\\x03\\x07'\\x09\\x03\\x07 \\x00\\x03\\x07\\x1f\\x0b\\x03\\x07\" +\n\t\"\\x18#\\x03\\x07\\x18(\\x03\\x07\\x186\\x03\\x07\\x18\\x03\\x03\\x07\\x19\\x16\\x03\\x07\" +\n\t\"\\x116\\x03\\x07\\x12'\\x03\\x07\\x13\\x10\\x03\\x07\\x0c&\\x03\\x07\\x0c\\x08\\x03\\x07\" +\n\t\"\\x0c\\x13\\x03\\x07\\x0d\\x02\\x03\\x07\\x0d\\x1c\\x03\\x07\\x0b5\\x03\\x07\\x0b\\x0a\" +\n\t\"\\x03\\x07\\x0b\\x01\\x03\\x07\\x0b\\x0f\\x03\\x07\\x05\\x00\\x03\\x07\\x05\\x09\\x03\\x07\" +\n\t\"\\x05\\x0b\\x03\\x07\\x07\\x01\\x03\\x07\\x07\\x08\\x03\\x07\\x00<\\x03\\x07\\x00+\\x03\" +\n\t\"\\x07\\x01)\\x03\\x07\\x01\\x1b\\x03\\x07\\x01\\x08\\x03\\x07\\x03?\\x03\\x0445\\x03\\x04\" +\n\t\"4\\x08\\x03\\x0454\\x03\\x04)/\\x03\\x04)5\\x03\\x04+\\x05\\x03\\x04+\\x14\\x03\\x04+ \" +\n\t\"\\x03\\x04+<\\x03\\x04*&\\x03\\x04*\\x22\\x03\\x04&8\\x03\\x04!\\x01\\x03\\x04!\\x22\" +\n\t\"\\x03\\x04\\x11+\\x03\\x04\\x10.\\x03\\x04\\x104\\x03\\x04\\x13=\\x03\\x04\\x12\\x04\\x03\" +\n\t\"\\x04\\x12\\x0a\\x03\\x04\\x0d\\x1d\\x03\\x04\\x0d\\x07\\x03\\x04\\x0d \\x03\\x05<>\\x03\" +\n\t\"\\x055<\\x03\\x055!\\x03\\x055#\\x03\\x055&\\x03\\x054\\x1d\\x03\\x054\\x02\\x03\\x054\" +\n\t\"\\x07\\x03\\x0571\\x03\\x053\\x1a\\x03\\x053\\x16\\x03\\x05.<\\x03\\x05.\\x07\\x03\\x05)\" +\n\t\":\\x03\\x05)<\\x03\\x05)\\x0c\\x03\\x05)\\x15\\x03\\x05+-\\x03\\x05+5\\x03\\x05$\\x1e\" +\n\t\"\\x03\\x05$\\x14\\x03\\x05'\\x04\\x03\\x05'\\x14\\x03\\x05&\\x02\\x03\\x05\\x226\\x03\" +\n\t\"\\x05\\x22\\x0c\\x03\\x05\\x22\\x1c\\x03\\x05\\x19\\x0a\\x03\\x05\\x1b\\x09\\x03\\x05\\x1b\" +\n\t\"\\x0c\\x03\\x05\\x14\\x07\\x03\\x05\\x16?\\x03\\x05\\x16\\x0c\\x03\\x05\\x0c\\x05\\x03\" +\n\t\"\\x05\\x0e\\x0f\\x03\\x05\\x01\\x0e\\x03\\x05\\x00(\\x03\\x05\\x030\\x03\\x05\\x03\\x06\" +\n\t\"\\x03\\x0a==\\x03\\x0a=1\\x03\\x0a=,\\x03\\x0a=\\x0c\\x03\\x0a??\\x03\\x0a<\\x08\\x03\" +\n\t\"\\x0a9!\\x03\\x0a9)\\x03\\x0a97\\x03\\x0a99\\x03\\x0a6\\x0a\\x03\\x0a6\\x1c\\x03\\x0a6\" +\n\t\"\\x17\\x03\\x0a7'\\x03\\x0a78\\x03\\x0a73\\x03\\x0a'\\x01\\x03\\x0a'&\\x03\\x0a\\x1f\" +\n\t\"\\x0e\\x03\\x0a\\x1f\\x03\\x03\\x0a\\x1f3\\x03\\x0a\\x1b/\\x03\\x0a\\x18\\x19\\x03\\x0a\" +\n\t\"\\x19\\x01\\x03\\x0a\\x16\\x14\\x03\\x0a\\x0e\\x22\\x03\\x0a\\x0f\\x10\\x03\\x0a\\x0f\\x02\" +\n\t\"\\x03\\x0a\\x0f \\x03\\x0a\\x0c\\x04\\x03\\x0a\\x0b>\\x03\\x0a\\x0b+\\x03\\x0a\\x08/\\x03\" +\n\t\"\\x0a\\x046\\x03\\x0a\\x05\\x14\\x03\\x0a\\x00\\x04\\x03\\x0a\\x00\\x10\\x03\\x0a\\x00\" +\n\t\"\\x14\\x03\\x0b<3\\x03\\x0b;*\\x03\\x0b9\\x22\\x03\\x0b9)\\x03\\x0b97\\x03\\x0b+\\x10\" +\n\t\"\\x03\\x0b((\\x03\\x0b&5\\x03\\x0b$\\x1c\\x03\\x0b$\\x12\\x03\\x0b%\\x04\\x03\\x0b#<\" +\n\t\"\\x03\\x0b#0\\x03\\x0b#\\x0d\\x03\\x0b#\\x19\\x03\\x0b!:\\x03\\x0b!\\x1f\\x03\\x0b!\\x00\" +\n\t\"\\x03\\x0b\\x1e5\\x03\\x0b\\x1c\\x1d\\x03\\x0b\\x1d-\\x03\\x0b\\x1d(\\x03\\x0b\\x18.\\x03\" +\n\t\"\\x0b\\x18 \\x03\\x0b\\x18\\x16\\x03\\x0b\\x14\\x13\\x03\\x0b\\x15$\\x03\\x0b\\x15\\x22\" +\n\t\"\\x03\\x0b\\x12\\x1b\\x03\\x0b\\x12\\x10\\x03\\x0b\\x132\\x03\\x0b\\x13=\\x03\\x0b\\x12\" +\n\t\"\\x18\\x03\\x0b\\x0c&\\x03\\x0b\\x061\\x03\\x0b\\x06:\\x03\\x0b\\x05#\\x03\\x0b\\x05<\" +\n\t\"\\x03\\x0b\\x04\\x0b\\x03\\x0b\\x04\\x04\\x03\\x0b\\x04\\x1b\\x03\\x0b\\x042\\x03\\x0b\" +\n\t\"\\x041\\x03\\x0b\\x03\\x03\\x03\\x0b\\x03\\x1d\\x03\\x0b\\x03/\\x03\\x0b\\x03+\\x03\\x0b\" +\n\t\"\\x02\\x1b\\x03\\x0b\\x02\\x00\\x03\\x0b\\x01\\x1e\\x03\\x0b\\x01\\x08\\x03\\x0b\\x015\" +\n\t\"\\x03\\x06\\x0d9\\x03\\x06\\x0d=\\x03\\x06\\x0d?\\x03\\x02\\x001\\x03\\x02\\x003\\x03\" +\n\t\"\\x02\\x02\\x19\\x03\\x02\\x006\\x03\\x02\\x02\\x1b\\x03\\x02\\x004\\x03\\x02\\x00<\\x03\" +\n\t\"\\x02\\x02\\x0a\\x03\\x02\\x02\\x0e\\x03\\x02\\x01\\x1a\\x03\\x02\\x01\\x07\\x03\\x02\\x01\" +\n\t\"\\x05\\x03\\x02\\x01\\x0b\\x03\\x02\\x01%\\x03\\x02\\x01\\x0c\\x03\\x02\\x01\\x04\\x03\" +\n\t\"\\x02\\x01\\x1c\\x03\\x02\\x00.\\x03\\x02\\x002\\x03\\x02\\x00>\\x03\\x02\\x00\\x12\\x03\" +\n\t\"\\x02\\x00\\x16\\x03\\x02\\x011\\x03\\x02\\x013\\x03\\x02\\x02 \\x03\\x02\\x02%\\x03\\x02\" +\n\t\"\\x02$\\x03\\x02\\x028\\x03\\x02\\x02;\\x03\\x02\\x024\\x03\\x02\\x012\\x03\\x02\\x022\" +\n\t\"\\x03\\x02\\x02/\\x03\\x02\\x01,\\x03\\x02\\x01\\x13\\x03\\x02\\x01\\x16\\x03\\x02\\x01\" +\n\t\"\\x11\\x03\\x02\\x01\\x1e\\x03\\x02\\x01\\x15\\x03\\x02\\x01\\x17\\x03\\x02\\x01\\x0f\\x03\" +\n\t\"\\x02\\x01\\x08\\x03\\x02\\x00?\\x03\\x02\\x03\\x07\\x03\\x02\\x03\\x0d\\x03\\x02\\x03\" +\n\t\"\\x13\\x03\\x02\\x03\\x1d\\x03\\x02\\x03\\x1f\\x03\\x02\\x00\\x03\\x03\\x02\\x00\\x0d\\x03\" +\n\t\"\\x02\\x00\\x01\\x03\\x02\\x00\\x1b\\x03\\x02\\x00\\x19\\x03\\x02\\x00\\x18\\x03\\x02\\x00\" +\n\t\"\\x13\\x03\\x02\\x00/\\x03\\x07>\\x12\\x03\\x07<\\x1f\\x03\\x07>\\x1d\\x03\\x06\\x1d\\x0e\" +\n\t\"\\x03\\x07>\\x1c\\x03\\x07>:\\x03\\x07>\\x13\\x03\\x04\\x12+\\x03\\x07?\\x03\\x03\\x07>\" +\n\t\"\\x02\\x03\\x06\\x224\\x03\\x06\\x1a.\\x03\\x07<%\\x03\\x06\\x1c\\x0b\\x03\\x0609\\x03\" +\n\t\"\\x05\\x1f\\x01\\x03\\x04'\\x08\\x03\\x93\\xfd\\xf5\\x03\\x02\\x0d \\x03\\x02\\x0d#\\x03\" +\n\t\"\\x02\\x0d!\\x03\\x02\\x0d&\\x03\\x02\\x0d\\x22\\x03\\x02\\x0d/\\x03\\x02\\x0d,\\x03\\x02\" +\n\t\"\\x0d$\\x03\\x02\\x0d'\\x03\\x02\\x0d%\\x03\\x02\\x0d;\\x03\\x02\\x0d=\\x03\\x02\\x0d?\" +\n\t\"\\x03\\x099.\\x03\\x08\\x0b7\\x03\\x08\\x02\\x14\\x03\\x08\\x14\\x0d\\x03\\x08.:\\x03\" +\n\t\"\\x089'\\x03\\x0f\\x0b\\x18\\x03\\x0f\\x1c1\\x03\\x0f\\x17&\\x03\\x0f9\\x1f\\x03\\x0f0\" +\n\t\"\\x0c\\x03\\x0e\\x0a9\\x03\\x0e\\x056\\x03\\x0e\\x1c#\\x03\\x0f\\x13\\x0e\\x03\\x072\\x00\" +\n\t\"\\x03\\x070\\x0d\\x03\\x072\\x0b\\x03\\x06\\x11\\x18\\x03\\x070\\x10\\x03\\x06\\x0f(\\x03\" +\n\t\"\\x072\\x05\\x03\\x06\\x0f,\\x03\\x073\\x15\\x03\\x06\\x07\\x08\\x03\\x05\\x16\\x02\\x03\" +\n\t\"\\x04\\x0b \\x03\\x05:8\\x03\\x05\\x16%\\x03\\x0a\\x0d\\x1f\\x03\\x06\\x16\\x10\\x03\\x05\" +\n\t\"\\x1d5\\x03\\x05*;\\x03\\x05\\x16\\x1b\\x03\\x04.-\\x03\\x06\\x1a\\x19\\x03\\x04\\x03,\" +\n\t\"\\x03\\x0b87\\x03\\x04/\\x0a\\x03\\x06\\x00,\\x03\\x04-\\x01\\x03\\x04\\x1e-\\x03\\x06/(\" +\n\t\"\\x03\\x0a\\x0b5\\x03\\x06\\x0e7\\x03\\x06\\x07.\\x03\\x0597\\x03\\x0a*%\\x03\\x0760\" +\n\t\"\\x03\\x06\\x0c;\\x03\\x05'\\x00\\x03\\x072.\\x03\\x072\\x08\\x03\\x06=\\x01\\x03\\x06\" +\n\t\"\\x05\\x1b\\x03\\x06\\x06\\x12\\x03\\x06$=\\x03\\x06'\\x0d\\x03\\x04\\x11\\x0f\\x03\\x076\" +\n\t\",\\x03\\x06\\x07;\\x03\\x06.,\\x03\\x86\\xf9\\xea\\x03\\x8f\\xff\\xeb\\x02\\x092\\x02\" +\n\t\"\\x095\\x02\\x094\\x02\\x09;\\x02\\x09>\\x02\\x098\\x02\\x09*\\x02\\x09/\\x02\\x09,\\x02\" +\n\t\"\\x09%\\x02\\x09&\\x02\\x09#\\x02\\x09 \\x02\\x08!\\x02\\x08%\\x02\\x08$\\x02\\x08+\\x02\" +\n\t\"\\x08.\\x02\\x08*\\x02\\x08&\\x02\\x088\\x02\\x08>\\x02\\x084\\x02\\x086\\x02\\x080\\x02\" +\n\t\"\\x08\\x10\\x02\\x08\\x17\\x02\\x08\\x12\\x02\\x08\\x1d\\x02\\x08\\x1f\\x02\\x08\\x13\\x02\" +\n\t\"\\x08\\x15\\x02\\x08\\x14\\x02\\x08\\x0c\\x03\\x8b\\xfd\\xd0\\x03\\x81\\xec\\xc6\\x03\\x87\" +\n\t\"\\xe0\\x8a\\x03-2\\xe3\\x03\\x80\\xef\\xe4\\x03-2\\xea\\x03\\x88\\xe6\\xeb\\x03\\x8e\\xe6\" +\n\t\"\\xe8\\x03\\x84\\xe6\\xe9\\x03\\x97\\xe6\\xee\\x03-2\\xf9\\x03-2\\xf6\\x03\\x8e\\xe3\\xad\" +\n\t\"\\x03\\x80\\xe3\\x92\\x03\\x88\\xe3\\x90\\x03\\x8e\\xe3\\x90\\x03\\x80\\xe3\\x97\\x03\\x88\" +\n\t\"\\xe3\\x95\\x03\\x88\\xfe\\xcb\\x03\\x8e\\xfe\\xca\\x03\\x84\\xfe\\xcd\\x03\\x91\\xef\\xc9\" +\n\t\"\\x03-2\\xc1\\x03-2\\xc0\\x03-2\\xcb\\x03\\x88@\\x09\\x03\\x8e@\\x08\\x03\\x8f\\xe0\\xf5\" +\n\t\"\\x03\\x8e\\xe6\\xf9\\x03\\x8e\\xe0\\xfa\\x03\\x93\\xff\\xf4\\x03\\x84\\xee\\xd3\\x03\\x0b\" +\n\t\"(\\x04\\x023 \\x021;\\x02\\x01*\\x03\\x0b#\\x10\\x03\\x0b 0\\x03\\x0b!\\x10\\x03\\x0b!0\" +\n\t\"\\x03\\x07\\x15\\x08\\x03\\x09?5\\x03\\x07\\x1f\\x08\\x03\\x07\\x17\\x0b\\x03\\x09\\x1f\" +\n\t\"\\x15\\x03\\x0b\\x1c7\\x03\\x0a+#\\x03\\x06\\x1a\\x1b\\x03\\x06\\x1a\\x14\\x03\\x0a\\x01\" +\n\t\"\\x18\\x03\\x06#\\x1b\\x03\\x0a2\\x0c\\x03\\x0a\\x01\\x04\\x03\\x09#;\\x03\\x08='\\x03\" +\n\t\"\\x08\\x1a\\x0a\\x03\\x07</\\x03\\x07:+\\x03\\x07\\x07*\\x03\\x06&\\x1c\\x03\\x09\\x0c\" +\n\t\"\\x16\\x03\\x09\\x10\\x0e\\x03\\x08'\\x0f\\x03\\x08+\\x09\\x03\\x074%\\x03\\x06!3\\x03\" +\n\t\"\\x06\\x03+\\x03\\x0b\\x1e\\x19\\x03\\x0a))\\x03\\x09\\x08\\x19\\x03\\x08,\\x05\\x03\\x07\" +\n\t\"<2\\x03\\x06\\x1c>\\x03\\x0a\\x111\\x03\\x09\\x1b\\x09\\x03\\x073.\\x03\\x07\\x01\\x00\" +\n\t\"\\x03\\x09/,\\x03\\x07#>\\x03\\x07\\x048\\x03\\x0a\\x1f\\x22\\x03\\x098>\\x03\\x09\\x11\" +\n\t\"\\x00\\x03\\x08/\\x17\\x03\\x06'\\x22\\x03\\x0b\\x1a+\\x03\\x0a\\x22\\x19\\x03\\x0a/1\" +\n\t\"\\x03\\x0974\\x03\\x09\\x0f\\x22\\x03\\x08,\\x22\\x03\\x08?\\x14\\x03\\x07$5\\x03\\x07<3\" +\n\t\"\\x03\\x07=*\\x03\\x07\\x13\\x18\\x03\\x068\\x0a\\x03\\x06\\x09\\x16\\x03\\x06\\x13\\x00\" +\n\t\"\\x03\\x08\\x067\\x03\\x08\\x01\\x03\\x03\\x08\\x12\\x1d\\x03\\x07+7\\x03\\x06(;\\x03\" +\n\t\"\\x06\\x1c?\\x03\\x07\\x0e\\x17\\x03\\x0a\\x06\\x1d\\x03\\x0a\\x19\\x07\\x03\\x08\\x14$\" +\n\t\"\\x03\\x07$;\\x03\\x08,$\\x03\\x08\\x06\\x0d\\x03\\x07\\x16\\x0a\\x03\\x06>>\\x03\\x0a\" +\n\t\"\\x06\\x12\\x03\\x0a\\x14)\\x03\\x09\\x0d\\x1f\\x03\\x09\\x12\\x17\\x03\\x09\\x19\\x01\" +\n\t\"\\x03\\x08\\x11 \\x03\\x08\\x1d'\\x03\\x06<\\x1a\\x03\\x0a.\\x00\\x03\\x07'\\x18\\x03\" +\n\t\"\\x0a\\x22\\x08\\x03\\x08\\x0d\\x0a\\x03\\x08\\x13)\\x03\\x07*)\\x03\\x06<,\\x03\\x07\" +\n\t\"\\x0b\\x1a\\x03\\x09.\\x14\\x03\\x09\\x0d\\x1e\\x03\\x07\\x0e#\\x03\\x0b\\x1d'\\x03\\x0a\" +\n\t\"\\x0a8\\x03\\x09%2\\x03\\x08+&\\x03\\x080\\x12\\x03\\x0a)4\\x03\\x08\\x06\\x1f\\x03\\x0b\" +\n\t\"\\x1b\\x1a\\x03\\x0a\\x1b\\x0f\\x03\\x0b\\x1d*\\x03\\x09\\x16$\\x03\\x090\\x11\\x03\\x08\" +\n\t\"\\x11\\x08\\x03\\x0a*(\\x03\\x0a\\x042\\x03\\x089,\\x03\\x074'\\x03\\x07\\x0f\\x05\\x03\" +\n\t\"\\x09\\x0b\\x0a\\x03\\x07\\x1b\\x01\\x03\\x09\\x17:\\x03\\x09.\\x0d\\x03\\x07.\\x11\\x03\" +\n\t\"\\x09+\\x15\\x03\\x080\\x13\\x03\\x0b\\x1f\\x19\\x03\\x0a \\x11\\x03\\x0a\\x220\\x03\\x09\" +\n\t\"\\x07;\\x03\\x08\\x16\\x1c\\x03\\x07,\\x13\\x03\\x07\\x0e/\\x03\\x06\\x221\\x03\\x0a.\" +\n\t\"\\x0a\\x03\\x0a7\\x02\\x03\\x0a\\x032\\x03\\x0a\\x1d.\\x03\\x091\\x06\\x03\\x09\\x19:\" +\n\t\"\\x03\\x08\\x02/\\x03\\x060+\\x03\\x06\\x0f-\\x03\\x06\\x1c\\x1f\\x03\\x06\\x1d\\x07\\x03\" +\n\t\"\\x0a,\\x11\\x03\\x09=\\x0d\\x03\\x09\\x0b;\\x03\\x07\\x1b/\\x03\\x0a\\x1f:\\x03\\x09 \" +\n\t\"\\x1f\\x03\\x09.\\x10\\x03\\x094\\x0b\\x03\\x09\\x1a1\\x03\\x08#\\x1a\\x03\\x084\\x1d\" +\n\t\"\\x03\\x08\\x01\\x1f\\x03\\x08\\x11\\x22\\x03\\x07'8\\x03\\x07\\x1a>\\x03\\x0757\\x03\" +\n\t\"\\x06&9\\x03\\x06+\\x11\\x03\\x0a.\\x0b\\x03\\x0a,>\\x03\\x0a4#\\x03\\x08%\\x17\\x03\" +\n\t\"\\x07\\x05\\x22\\x03\\x07\\x0c\\x0b\\x03\\x0a\\x1d+\\x03\\x0a\\x19\\x16\\x03\\x09+\\x1f\" +\n\t\"\\x03\\x09\\x08\\x0b\\x03\\x08\\x16\\x18\\x03\\x08+\\x12\\x03\\x0b\\x1d\\x0c\\x03\\x0a=\" +\n\t\"\\x10\\x03\\x0a\\x09\\x0d\\x03\\x0a\\x10\\x11\\x03\\x09&0\\x03\\x08(\\x1f\\x03\\x087\\x07\" +\n\t\"\\x03\\x08\\x185\\x03\\x07'6\\x03\\x06.\\x05\\x03\\x06=\\x04\\x03\\x06;;\\x03\\x06\\x06,\" +\n\t\"\\x03\\x0b\\x18>\\x03\\x08\\x00\\x18\\x03\\x06 \\x03\\x03\\x06<\\x00\\x03\\x09%\\x18\\x03\" +\n\t\"\\x0b\\x1c<\\x03\\x0a%!\\x03\\x0a\\x09\\x12\\x03\\x0a\\x16\\x02\\x03\\x090'\\x03\\x09\" +\n\t\"\\x0e=\\x03\\x08 \\x0e\\x03\\x08>\\x03\\x03\\x074>\\x03\\x06&?\\x03\\x06\\x19\\x09\\x03\" +\n\t\"\\x06?(\\x03\\x0a-\\x0e\\x03\\x09:3\\x03\\x098:\\x03\\x09\\x12\\x0b\\x03\\x09\\x1d\\x17\" +\n\t\"\\x03\\x087\\x05\\x03\\x082\\x14\\x03\\x08\\x06%\\x03\\x08\\x13\\x1f\\x03\\x06\\x06\\x0e\" +\n\t\"\\x03\\x0a\\x22<\\x03\\x09/<\\x03\\x06>+\\x03\\x0a'?\\x03\\x0a\\x13\\x0c\\x03\\x09\\x10<\" +\n\t\"\\x03\\x07\\x1b=\\x03\\x0a\\x19\\x13\\x03\\x09\\x22\\x1d\\x03\\x09\\x07\\x0d\\x03\\x08)\" +\n\t\"\\x1c\\x03\\x06=\\x1a\\x03\\x0a/4\\x03\\x0a7\\x11\\x03\\x0a\\x16:\\x03\\x09?3\\x03\\x09:\" +\n\t\"/\\x03\\x09\\x05\\x0a\\x03\\x09\\x14\\x06\\x03\\x087\\x22\\x03\\x080\\x07\\x03\\x08\\x1a\" +\n\t\"\\x1f\\x03\\x07\\x04(\\x03\\x07\\x04\\x09\\x03\\x06 %\\x03\\x06<\\x08\\x03\\x0a+\\x14\" +\n\t\"\\x03\\x09\\x1d\\x16\\x03\\x0a70\\x03\\x08 >\\x03\\x0857\\x03\\x070\\x0a\\x03\\x06=\\x12\" +\n\t\"\\x03\\x06\\x16%\\x03\\x06\\x1d,\\x03\\x099#\\x03\\x09\\x10>\\x03\\x07 \\x1e\\x03\\x08\" +\n\t\"\\x0c<\\x03\\x08\\x0b\\x18\\x03\\x08\\x15+\\x03\\x08,:\\x03\\x08%\\x22\\x03\\x07\\x0a$\" +\n\t\"\\x03\\x0b\\x1c=\\x03\\x07+\\x08\\x03\\x0a/\\x05\\x03\\x0a \\x07\\x03\\x0a\\x12'\\x03\" +\n\t\"\\x09#\\x11\\x03\\x08\\x1b\\x15\\x03\\x0a\\x06\\x01\\x03\\x09\\x1c\\x1b\\x03\\x0922\\x03\" +\n\t\"\\x07\\x14<\\x03\\x07\\x09\\x04\\x03\\x061\\x04\\x03\\x07\\x0e\\x01\\x03\\x0a\\x13\\x18\" +\n\t\"\\x03\\x0a-\\x0c\\x03\\x0a?\\x0d\\x03\\x0a\\x09\\x0a\\x03\\x091&\\x03\\x0a/\\x0b\\x03\" +\n\t\"\\x08$<\\x03\\x083\\x1d\\x03\\x08\\x0c$\\x03\\x08\\x0d\\x07\\x03\\x08\\x0d?\\x03\\x08\" +\n\t\"\\x0e\\x14\\x03\\x065\\x0a\\x03\\x08\\x1a#\\x03\\x08\\x16#\\x03\\x0702\\x03\\x07\\x03\" +\n\t\"\\x1a\\x03\\x06(\\x1d\\x03\\x06+\\x1b\\x03\\x06\\x0b\\x05\\x03\\x06\\x0b\\x17\\x03\\x06\" +\n\t\"\\x0c\\x04\\x03\\x06\\x1e\\x19\\x03\\x06+0\\x03\\x062\\x18\\x03\\x0b\\x16\\x1e\\x03\\x0a+\" +\n\t\"\\x16\\x03\\x0a-?\\x03\\x0a#:\\x03\\x0a#\\x10\\x03\\x0a%$\\x03\\x0a>+\\x03\\x0a01\\x03\" +\n\t\"\\x0a1\\x10\\x03\\x0a\\x099\\x03\\x0a\\x0a\\x12\\x03\\x0a\\x19\\x1f\\x03\\x0a\\x19\\x12\" +\n\t\"\\x03\\x09*)\\x03\\x09-\\x16\\x03\\x09.1\\x03\\x09.2\\x03\\x09<\\x0e\\x03\\x09> \\x03\" +\n\t\"\\x093\\x12\\x03\\x09\\x0b\\x01\\x03\\x09\\x1c2\\x03\\x09\\x11\\x1c\\x03\\x09\\x15%\\x03\" +\n\t\"\\x08,&\\x03\\x08!\\x22\\x03\\x089(\\x03\\x08\\x0b\\x1a\\x03\\x08\\x0d2\\x03\\x08\\x0c\" +\n\t\"\\x04\\x03\\x08\\x0c\\x06\\x03\\x08\\x0c\\x1f\\x03\\x08\\x0c\\x0c\\x03\\x08\\x0f\\x1f\\x03\" +\n\t\"\\x08\\x0f\\x1d\\x03\\x08\\x00\\x14\\x03\\x08\\x03\\x14\\x03\\x08\\x06\\x16\\x03\\x08\\x1e\" +\n\t\"#\\x03\\x08\\x11\\x11\\x03\\x08\\x10\\x18\\x03\\x08\\x14(\\x03\\x07)\\x1e\\x03\\x07.1\" +\n\t\"\\x03\\x07 $\\x03\\x07 '\\x03\\x078\\x08\\x03\\x07\\x0d0\\x03\\x07\\x0f7\\x03\\x07\\x05#\" +\n\t\"\\x03\\x07\\x05\\x1a\\x03\\x07\\x1a7\\x03\\x07\\x1d-\\x03\\x07\\x17\\x10\\x03\\x06)\\x1f\" +\n\t\"\\x03\\x062\\x0b\\x03\\x066\\x16\\x03\\x06\\x09\\x11\\x03\\x09(\\x1e\\x03\\x07!5\\x03\" +\n\t\"\\x0b\\x11\\x16\\x03\\x0a/\\x04\\x03\\x0a,\\x1a\\x03\\x0b\\x173\\x03\\x0a,1\\x03\\x0a/5\" +\n\t\"\\x03\\x0a\\x221\\x03\\x0a\\x22\\x0d\\x03\\x0a?%\\x03\\x0a<,\\x03\\x0a?#\\x03\\x0a>\\x19\" +\n\t\"\\x03\\x0a\\x08&\\x03\\x0a\\x0b\\x0e\\x03\\x0a\\x0c:\\x03\\x0a\\x0c+\\x03\\x0a\\x03\\x22\" +\n\t\"\\x03\\x0a\\x06)\\x03\\x0a\\x11\\x10\\x03\\x0a\\x11\\x1a\\x03\\x0a\\x17-\\x03\\x0a\\x14(\" +\n\t\"\\x03\\x09)\\x1e\\x03\\x09/\\x09\\x03\\x09.\\x00\\x03\\x09,\\x07\\x03\\x09/*\\x03\\x09-9\" +\n\t\"\\x03\\x09\\x228\\x03\\x09%\\x09\\x03\\x09:\\x12\\x03\\x09;\\x1d\\x03\\x09?\\x06\\x03\" +\n\t\"\\x093%\\x03\\x096\\x05\\x03\\x096\\x08\\x03\\x097\\x02\\x03\\x09\\x07,\\x03\\x09\\x04,\" +\n\t\"\\x03\\x09\\x1f\\x16\\x03\\x09\\x11\\x03\\x03\\x09\\x11\\x12\\x03\\x09\\x168\\x03\\x08*\" +\n\t\"\\x05\\x03\\x08/2\\x03\\x084:\\x03\\x08\\x22+\\x03\\x08 0\\x03\\x08&\\x0a\\x03\\x08;\" +\n\t\"\\x10\\x03\\x08>$\\x03\\x08>\\x18\\x03\\x0829\\x03\\x082:\\x03\\x081,\\x03\\x081<\\x03\" +\n\t\"\\x081\\x1c\\x03\\x087#\\x03\\x087*\\x03\\x08\\x09'\\x03\\x08\\x00\\x1d\\x03\\x08\\x05-\" +\n\t\"\\x03\\x08\\x1f4\\x03\\x08\\x1d\\x04\\x03\\x08\\x16\\x0f\\x03\\x07*7\\x03\\x07'!\\x03\" +\n\t\"\\x07%\\x1b\\x03\\x077\\x0c\\x03\\x07\\x0c1\\x03\\x07\\x0c.\\x03\\x07\\x00\\x06\\x03\\x07\" +\n\t\"\\x01\\x02\\x03\\x07\\x010\\x03\\x07\\x06=\\x03\\x07\\x01\\x03\\x03\\x07\\x01\\x13\\x03\" +\n\t\"\\x07\\x06\\x06\\x03\\x07\\x05\\x0a\\x03\\x07\\x1f\\x09\\x03\\x07\\x17:\\x03\\x06*1\\x03\" +\n\t\"\\x06-\\x1d\\x03\\x06\\x223\\x03\\x062:\\x03\\x060$\\x03\\x066\\x1e\\x03\\x064\\x12\\x03\" +\n\t\"\\x0645\\x03\\x06\\x0b\\x00\\x03\\x06\\x0b7\\x03\\x06\\x07\\x1f\\x03\\x06\\x15\\x12\\x03\" +\n\t\"\\x0c\\x05\\x0f\\x03\\x0b+\\x0b\\x03\\x0b+-\\x03\\x06\\x16\\x1b\\x03\\x06\\x15\\x17\\x03\" +\n\t\"\\x89\\xca\\xea\\x03\\x89\\xca\\xe8\\x03\\x0c8\\x10\\x03\\x0c8\\x01\\x03\\x0c8\\x0f\\x03\" +\n\t\"\\x0d8%\\x03\\x0d8!\\x03\\x0c8-\\x03\\x0c8/\\x03\\x0c8+\\x03\\x0c87\\x03\\x0c85\\x03\" +\n\t\"\\x0c9\\x09\\x03\\x0c9\\x0d\\x03\\x0c9\\x0f\\x03\\x0c9\\x0b\\x03\\xcfu\\x0c\\x03\\xcfu\" +\n\t\"\\x0f\\x03\\xcfu\\x0e\\x03\\xcfu\\x09\\x03\\x0c9\\x10\\x03\\x0d9\\x0c\\x03\\xcf`;\\x03\" +\n\t\"\\xcf`>\\x03\\xcf`9\\x03\\xcf`8\\x03\\xcf`7\\x03\\xcf`*\\x03\\xcf`-\\x03\\xcf`,\\x03\" +\n\t\"\\x0d\\x1b\\x1a\\x03\\x0d\\x1b&\\x03\\x0c=.\\x03\\x0c=%\\x03\\x0c>\\x1e\\x03\\x0c>\\x14\" +\n\t\"\\x03\\x0c?\\x06\\x03\\x0c?\\x0b\\x03\\x0c?\\x0c\\x03\\x0c?\\x0d\\x03\\x0c?\\x02\\x03\" +\n\t\"\\x0c>\\x0f\\x03\\x0c>\\x08\\x03\\x0c>\\x09\\x03\\x0c>,\\x03\\x0c>\\x0c\\x03\\x0c?\\x13\" +\n\t\"\\x03\\x0c?\\x16\\x03\\x0c?\\x15\\x03\\x0c?\\x1c\\x03\\x0c?\\x1f\\x03\\x0c?\\x1d\\x03\" +\n\t\"\\x0c?\\x1a\\x03\\x0c?\\x17\\x03\\x0c?\\x08\\x03\\x0c?\\x09\\x03\\x0c?\\x0e\\x03\\x0c?\" +\n\t\"\\x04\\x03\\x0c?\\x05\\x03\\x0c<?\\x03\\x0c=\\x00\\x03\\x0c=\\x06\\x03\\x0c=\\x05\\x03\" +\n\t\"\\x0c=\\x0c\\x03\\x0c=\\x0f\\x03\\x0c=\\x0d\\x03\\x0c=\\x0b\\x03\\x0c=\\x07\\x03\\x0c=\" +\n\t\"\\x19\\x03\\x0c=\\x15\\x03\\x0c=\\x11\\x03\\x0c=1\\x03\\x0c=3\\x03\\x0c=0\\x03\\x0c=>\" +\n\t\"\\x03\\x0c=2\\x03\\x0c=6\\x03\\x0c<\\x07\\x03\\x0c<\\x05\\x03\\x0e:!\\x03\\x0e:#\\x03\" +\n\t\"\\x0e8\\x09\\x03\\x0e:&\\x03\\x0e8\\x0b\\x03\\x0e:$\\x03\\x0e:,\\x03\\x0e8\\x1a\\x03\" +\n\t\"\\x0e8\\x1e\\x03\\x0e:*\\x03\\x0e:7\\x03\\x0e:5\\x03\\x0e:;\\x03\\x0e:\\x15\\x03\\x0e:<\" +\n\t\"\\x03\\x0e:4\\x03\\x0e:'\\x03\\x0e:-\\x03\\x0e:%\\x03\\x0e:?\\x03\\x0e:=\\x03\\x0e:)\" +\n\t\"\\x03\\x0e:/\\x03\\xcfs'\\x03\\x0d=\\x0f\\x03\\x0d+*\\x03\\x0d99\\x03\\x0d9;\\x03\\x0d9\" +\n\t\"?\\x03\\x0d)\\x0d\\x03\\x0d(%\\x02\\x01\\x18\\x02\\x01(\\x02\\x01\\x1e\\x03\\x0f$!\\x03\" +\n\t\"\\x0f87\\x03\\x0f4\\x0e\\x03\\x0f5\\x1d\\x03\\x06'\\x03\\x03\\x0f\\x08\\x18\\x03\\x0f\" +\n\t\"\\x0d\\x1b\\x03\\x0e2=\\x03\\x0e;\\x08\\x03\\x0e:\\x0b\\x03\\x0e\\x06$\\x03\\x0e\\x0d)\" +\n\t\"\\x03\\x0e\\x16\\x1f\\x03\\x0e\\x16\\x1b\\x03\\x0d$\\x0a\\x03\\x05,\\x1d\\x03\\x0d. \\x03\" +\n\t\"\\x0d.#\\x03\\x0c(/\\x03\\x09%\\x02\\x03\\x0d90\\x03\\x0d\\x0e4\\x03\\x0d\\x0d\\x0f\\x03\" +\n\t\"\\x0c#\\x00\\x03\\x0c,\\x1e\\x03\\x0c2\\x0e\\x03\\x0c\\x01\\x17\\x03\\x0c\\x09:\\x03\\x0e\" +\n\t\"\\x173\\x03\\x0c\\x08\\x03\\x03\\x0c\\x11\\x07\\x03\\x0c\\x10\\x18\\x03\\x0c\\x1f\\x1c\" +\n\t\"\\x03\\x0c\\x19\\x0e\\x03\\x0c\\x1a\\x1f\\x03\\x0f0>\\x03\\x0b->\\x03\\x0b<+\\x03\\x0b8\" +\n\t\"\\x13\\x03\\x0b\\x043\\x03\\x0b\\x14\\x03\\x03\\x0b\\x16%\\x03\\x0d\\x22&\\x03\\x0b\\x1a\" +\n\t\"\\x1a\\x03\\x0b\\x1a\\x04\\x03\\x0a%9\\x03\\x0a&2\\x03\\x0a&0\\x03\\x0a!\\x1a\\x03\\x0a!\" +\n\t\"7\\x03\\x0a5\\x10\\x03\\x0a=4\\x03\\x0a?\\x0e\\x03\\x0a>\\x10\\x03\\x0a\\x00 \\x03\\x0a\" +\n\t\"\\x0f:\\x03\\x0a\\x0f9\\x03\\x0a\\x0b\\x0a\\x03\\x0a\\x17%\\x03\\x0a\\x1b-\\x03\\x09-\" +\n\t\"\\x1a\\x03\\x09,4\\x03\\x09.,\\x03\\x09)\\x09\\x03\\x096!\\x03\\x091\\x1f\\x03\\x093\" +\n\t\"\\x16\\x03\\x0c+\\x1f\\x03\\x098 \\x03\\x098=\\x03\\x0c(\\x1a\\x03\\x0c(\\x16\\x03\\x09\" +\n\t\"\\x0a+\\x03\\x09\\x16\\x12\\x03\\x09\\x13\\x0e\\x03\\x09\\x153\\x03\\x08)!\\x03\\x09\\x1a\" +\n\t\"\\x01\\x03\\x09\\x18\\x01\\x03\\x08%#\\x03\\x08>\\x22\\x03\\x08\\x05%\\x03\\x08\\x02*\" +\n\t\"\\x03\\x08\\x15;\\x03\\x08\\x1b7\\x03\\x0f\\x07\\x1d\\x03\\x0f\\x04\\x03\\x03\\x070\\x0c\" +\n\t\"\\x03\\x07;\\x0b\\x03\\x07\\x08\\x17\\x03\\x07\\x12\\x06\\x03\\x06/-\\x03\\x0671\\x03\" +\n\t\"\\x065+\\x03\\x06>7\\x03\\x06\\x049\\x03\\x05+\\x1e\\x03\\x05,\\x17\\x03\\x05 \\x1d\\x03\" +\n\t\"\\x05\\x22\\x05\\x03\\x050\\x1d\"\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *idnaTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn idnaValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = idnaIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *idnaTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn idnaValues[c0]\n\t}\n\ti := idnaIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *idnaTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn idnaValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = idnaIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *idnaTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn idnaValues[c0]\n\t}\n\ti := idnaIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// idnaTrie. Total size: 29404 bytes (28.71 KiB). Checksum: 848c45acb5f7991c.\ntype idnaTrie struct{}\n\nfunc newIdnaTrie(i int) *idnaTrie {\n\treturn &idnaTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *idnaTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 125:\n\t\treturn uint16(idnaValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 125\n\t\treturn uint16(idnaSparse.lookup(n, b))\n\t}\n}\n\n// idnaValues: 127 blocks, 8128 entries, 16256 bytes\n// The third block is the zero block.\nvar idnaValues = [8128]uint16{\n\t// Block 0x0, offset 0x0\n\t0x00: 0x0080, 0x01: 0x0080, 0x02: 0x0080, 0x03: 0x0080, 0x04: 0x0080, 0x05: 0x0080,\n\t0x06: 0x0080, 0x07: 0x0080, 0x08: 0x0080, 0x09: 0x0080, 0x0a: 0x0080, 0x0b: 0x0080,\n\t0x0c: 0x0080, 0x0d: 0x0080, 0x0e: 0x0080, 0x0f: 0x0080, 0x10: 0x0080, 0x11: 0x0080,\n\t0x12: 0x0080, 0x13: 0x0080, 0x14: 0x0080, 0x15: 0x0080, 0x16: 0x0080, 0x17: 0x0080,\n\t0x18: 0x0080, 0x19: 0x0080, 0x1a: 0x0080, 0x1b: 0x0080, 0x1c: 0x0080, 0x1d: 0x0080,\n\t0x1e: 0x0080, 0x1f: 0x0080, 0x20: 0x0080, 0x21: 0x0080, 0x22: 0x0080, 0x23: 0x0080,\n\t0x24: 0x0080, 0x25: 0x0080, 0x26: 0x0080, 0x27: 0x0080, 0x28: 0x0080, 0x29: 0x0080,\n\t0x2a: 0x0080, 0x2b: 0x0080, 0x2c: 0x0080, 0x2d: 0x0008, 0x2e: 0x0008, 0x2f: 0x0080,\n\t0x30: 0x0008, 0x31: 0x0008, 0x32: 0x0008, 0x33: 0x0008, 0x34: 0x0008, 0x35: 0x0008,\n\t0x36: 0x0008, 0x37: 0x0008, 0x38: 0x0008, 0x39: 0x0008, 0x3a: 0x0080, 0x3b: 0x0080,\n\t0x3c: 0x0080, 0x3d: 0x0080, 0x3e: 0x0080, 0x3f: 0x0080,\n\t// Block 0x1, offset 0x40\n\t0x40: 0x0080, 0x41: 0xe105, 0x42: 0xe105, 0x43: 0xe105, 0x44: 0xe105, 0x45: 0xe105,\n\t0x46: 0xe105, 0x47: 0xe105, 0x48: 0xe105, 0x49: 0xe105, 0x4a: 0xe105, 0x4b: 0xe105,\n\t0x4c: 0xe105, 0x4d: 0xe105, 0x4e: 0xe105, 0x4f: 0xe105, 0x50: 0xe105, 0x51: 0xe105,\n\t0x52: 0xe105, 0x53: 0xe105, 0x54: 0xe105, 0x55: 0xe105, 0x56: 0xe105, 0x57: 0xe105,\n\t0x58: 0xe105, 0x59: 0xe105, 0x5a: 0xe105, 0x5b: 0x0080, 0x5c: 0x0080, 0x5d: 0x0080,\n\t0x5e: 0x0080, 0x5f: 0x0080, 0x60: 0x0080, 0x61: 0x0008, 0x62: 0x0008, 0x63: 0x0008,\n\t0x64: 0x0008, 0x65: 0x0008, 0x66: 0x0008, 0x67: 0x0008, 0x68: 0x0008, 0x69: 0x0008,\n\t0x6a: 0x0008, 0x6b: 0x0008, 0x6c: 0x0008, 0x6d: 0x0008, 0x6e: 0x0008, 0x6f: 0x0008,\n\t0x70: 0x0008, 0x71: 0x0008, 0x72: 0x0008, 0x73: 0x0008, 0x74: 0x0008, 0x75: 0x0008,\n\t0x76: 0x0008, 0x77: 0x0008, 0x78: 0x0008, 0x79: 0x0008, 0x7a: 0x0008, 0x7b: 0x0080,\n\t0x7c: 0x0080, 0x7d: 0x0080, 0x7e: 0x0080, 0x7f: 0x0080,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x0040, 0xc1: 0x0040, 0xc2: 0x0040, 0xc3: 0x0040, 0xc4: 0x0040, 0xc5: 0x0040,\n\t0xc6: 0x0040, 0xc7: 0x0040, 0xc8: 0x0040, 0xc9: 0x0040, 0xca: 0x0040, 0xcb: 0x0040,\n\t0xcc: 0x0040, 0xcd: 0x0040, 0xce: 0x0040, 0xcf: 0x0040, 0xd0: 0x0040, 0xd1: 0x0040,\n\t0xd2: 0x0040, 0xd3: 0x0040, 0xd4: 0x0040, 0xd5: 0x0040, 0xd6: 0x0040, 0xd7: 0x0040,\n\t0xd8: 0x0040, 0xd9: 0x0040, 0xda: 0x0040, 0xdb: 0x0040, 0xdc: 0x0040, 0xdd: 0x0040,\n\t0xde: 0x0040, 0xdf: 0x0040, 0xe0: 0x000a, 0xe1: 0x0018, 0xe2: 0x0018, 0xe3: 0x0018,\n\t0xe4: 0x0018, 0xe5: 0x0018, 0xe6: 0x0018, 0xe7: 0x0018, 0xe8: 0x001a, 0xe9: 0x0018,\n\t0xea: 0x0039, 0xeb: 0x0018, 0xec: 0x0018, 0xed: 0x03c0, 0xee: 0x0018, 0xef: 0x004a,\n\t0xf0: 0x0018, 0xf1: 0x0018, 0xf2: 0x0069, 0xf3: 0x0079, 0xf4: 0x008a, 0xf5: 0x0005,\n\t0xf6: 0x0018, 0xf7: 0x0008, 0xf8: 0x00aa, 0xf9: 0x00c9, 0xfa: 0x00d9, 0xfb: 0x0018,\n\t0xfc: 0x00e9, 0xfd: 0x0119, 0xfe: 0x0149, 0xff: 0x0018,\n\t// Block 0x4, offset 0x100\n\t0x100: 0xe00d, 0x101: 0x0008, 0x102: 0xe00d, 0x103: 0x0008, 0x104: 0xe00d, 0x105: 0x0008,\n\t0x106: 0xe00d, 0x107: 0x0008, 0x108: 0xe00d, 0x109: 0x0008, 0x10a: 0xe00d, 0x10b: 0x0008,\n\t0x10c: 0xe00d, 0x10d: 0x0008, 0x10e: 0xe00d, 0x10f: 0x0008, 0x110: 0xe00d, 0x111: 0x0008,\n\t0x112: 0xe00d, 0x113: 0x0008, 0x114: 0xe00d, 0x115: 0x0008, 0x116: 0xe00d, 0x117: 0x0008,\n\t0x118: 0xe00d, 0x119: 0x0008, 0x11a: 0xe00d, 0x11b: 0x0008, 0x11c: 0xe00d, 0x11d: 0x0008,\n\t0x11e: 0xe00d, 0x11f: 0x0008, 0x120: 0xe00d, 0x121: 0x0008, 0x122: 0xe00d, 0x123: 0x0008,\n\t0x124: 0xe00d, 0x125: 0x0008, 0x126: 0xe00d, 0x127: 0x0008, 0x128: 0xe00d, 0x129: 0x0008,\n\t0x12a: 0xe00d, 0x12b: 0x0008, 0x12c: 0xe00d, 0x12d: 0x0008, 0x12e: 0xe00d, 0x12f: 0x0008,\n\t0x130: 0x0179, 0x131: 0x0008, 0x132: 0x0035, 0x133: 0x004d, 0x134: 0xe00d, 0x135: 0x0008,\n\t0x136: 0xe00d, 0x137: 0x0008, 0x138: 0x0008, 0x139: 0xe01d, 0x13a: 0x0008, 0x13b: 0xe03d,\n\t0x13c: 0x0008, 0x13d: 0xe01d, 0x13e: 0x0008, 0x13f: 0x0199,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x0199, 0x141: 0xe01d, 0x142: 0x0008, 0x143: 0xe03d, 0x144: 0x0008, 0x145: 0xe01d,\n\t0x146: 0x0008, 0x147: 0xe07d, 0x148: 0x0008, 0x149: 0x01b9, 0x14a: 0xe00d, 0x14b: 0x0008,\n\t0x14c: 0xe00d, 0x14d: 0x0008, 0x14e: 0xe00d, 0x14f: 0x0008, 0x150: 0xe00d, 0x151: 0x0008,\n\t0x152: 0xe00d, 0x153: 0x0008, 0x154: 0xe00d, 0x155: 0x0008, 0x156: 0xe00d, 0x157: 0x0008,\n\t0x158: 0xe00d, 0x159: 0x0008, 0x15a: 0xe00d, 0x15b: 0x0008, 0x15c: 0xe00d, 0x15d: 0x0008,\n\t0x15e: 0xe00d, 0x15f: 0x0008, 0x160: 0xe00d, 0x161: 0x0008, 0x162: 0xe00d, 0x163: 0x0008,\n\t0x164: 0xe00d, 0x165: 0x0008, 0x166: 0xe00d, 0x167: 0x0008, 0x168: 0xe00d, 0x169: 0x0008,\n\t0x16a: 0xe00d, 0x16b: 0x0008, 0x16c: 0xe00d, 0x16d: 0x0008, 0x16e: 0xe00d, 0x16f: 0x0008,\n\t0x170: 0xe00d, 0x171: 0x0008, 0x172: 0xe00d, 0x173: 0x0008, 0x174: 0xe00d, 0x175: 0x0008,\n\t0x176: 0xe00d, 0x177: 0x0008, 0x178: 0x0065, 0x179: 0xe01d, 0x17a: 0x0008, 0x17b: 0xe03d,\n\t0x17c: 0x0008, 0x17d: 0xe01d, 0x17e: 0x0008, 0x17f: 0x01d9,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x0008, 0x181: 0x007d, 0x182: 0xe00d, 0x183: 0x0008, 0x184: 0xe00d, 0x185: 0x0008,\n\t0x186: 0x007d, 0x187: 0xe07d, 0x188: 0x0008, 0x189: 0x0095, 0x18a: 0x00ad, 0x18b: 0xe03d,\n\t0x18c: 0x0008, 0x18d: 0x0008, 0x18e: 0x00c5, 0x18f: 0x00dd, 0x190: 0x00f5, 0x191: 0xe01d,\n\t0x192: 0x0008, 0x193: 0x010d, 0x194: 0x0125, 0x195: 0x0008, 0x196: 0x013d, 0x197: 0x013d,\n\t0x198: 0xe00d, 0x199: 0x0008, 0x19a: 0x0008, 0x19b: 0x0008, 0x19c: 0x010d, 0x19d: 0x0155,\n\t0x19e: 0x0008, 0x19f: 0x016d, 0x1a0: 0xe00d, 0x1a1: 0x0008, 0x1a2: 0xe00d, 0x1a3: 0x0008,\n\t0x1a4: 0xe00d, 0x1a5: 0x0008, 0x1a6: 0x0185, 0x1a7: 0xe07d, 0x1a8: 0x0008, 0x1a9: 0x019d,\n\t0x1aa: 0x0008, 0x1ab: 0x0008, 0x1ac: 0xe00d, 0x1ad: 0x0008, 0x1ae: 0x0185, 0x1af: 0xe0fd,\n\t0x1b0: 0x0008, 0x1b1: 0x01b5, 0x1b2: 0x01cd, 0x1b3: 0xe03d, 0x1b4: 0x0008, 0x1b5: 0xe01d,\n\t0x1b6: 0x0008, 0x1b7: 0x01e5, 0x1b8: 0xe00d, 0x1b9: 0x0008, 0x1ba: 0x0008, 0x1bb: 0x0008,\n\t0x1bc: 0xe00d, 0x1bd: 0x0008, 0x1be: 0x0008, 0x1bf: 0x0008,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x0008, 0x1c1: 0x0008, 0x1c2: 0x0008, 0x1c3: 0x0008, 0x1c4: 0x01e9, 0x1c5: 0x01e9,\n\t0x1c6: 0x01e9, 0x1c7: 0x01fd, 0x1c8: 0x0215, 0x1c9: 0x022d, 0x1ca: 0x0245, 0x1cb: 0x025d,\n\t0x1cc: 0x0275, 0x1cd: 0xe01d, 0x1ce: 0x0008, 0x1cf: 0xe0fd, 0x1d0: 0x0008, 0x1d1: 0xe01d,\n\t0x1d2: 0x0008, 0x1d3: 0xe03d, 0x1d4: 0x0008, 0x1d5: 0xe01d, 0x1d6: 0x0008, 0x1d7: 0xe07d,\n\t0x1d8: 0x0008, 0x1d9: 0xe01d, 0x1da: 0x0008, 0x1db: 0xe03d, 0x1dc: 0x0008, 0x1dd: 0x0008,\n\t0x1de: 0xe00d, 0x1df: 0x0008, 0x1e0: 0xe00d, 0x1e1: 0x0008, 0x1e2: 0xe00d, 0x1e3: 0x0008,\n\t0x1e4: 0xe00d, 0x1e5: 0x0008, 0x1e6: 0xe00d, 0x1e7: 0x0008, 0x1e8: 0xe00d, 0x1e9: 0x0008,\n\t0x1ea: 0xe00d, 0x1eb: 0x0008, 0x1ec: 0xe00d, 0x1ed: 0x0008, 0x1ee: 0xe00d, 0x1ef: 0x0008,\n\t0x1f0: 0x0008, 0x1f1: 0x028d, 0x1f2: 0x02a5, 0x1f3: 0x02bd, 0x1f4: 0xe00d, 0x1f5: 0x0008,\n\t0x1f6: 0x02d5, 0x1f7: 0x02ed, 0x1f8: 0xe00d, 0x1f9: 0x0008, 0x1fa: 0xe00d, 0x1fb: 0x0008,\n\t0x1fc: 0xe00d, 0x1fd: 0x0008, 0x1fe: 0xe00d, 0x1ff: 0x0008,\n\t// Block 0x8, offset 0x200\n\t0x200: 0xe00d, 0x201: 0x0008, 0x202: 0xe00d, 0x203: 0x0008, 0x204: 0xe00d, 0x205: 0x0008,\n\t0x206: 0xe00d, 0x207: 0x0008, 0x208: 0xe00d, 0x209: 0x0008, 0x20a: 0xe00d, 0x20b: 0x0008,\n\t0x20c: 0xe00d, 0x20d: 0x0008, 0x20e: 0xe00d, 0x20f: 0x0008, 0x210: 0xe00d, 0x211: 0x0008,\n\t0x212: 0xe00d, 0x213: 0x0008, 0x214: 0xe00d, 0x215: 0x0008, 0x216: 0xe00d, 0x217: 0x0008,\n\t0x218: 0xe00d, 0x219: 0x0008, 0x21a: 0xe00d, 0x21b: 0x0008, 0x21c: 0xe00d, 0x21d: 0x0008,\n\t0x21e: 0xe00d, 0x21f: 0x0008, 0x220: 0x0305, 0x221: 0x0008, 0x222: 0xe00d, 0x223: 0x0008,\n\t0x224: 0xe00d, 0x225: 0x0008, 0x226: 0xe00d, 0x227: 0x0008, 0x228: 0xe00d, 0x229: 0x0008,\n\t0x22a: 0xe00d, 0x22b: 0x0008, 0x22c: 0xe00d, 0x22d: 0x0008, 0x22e: 0xe00d, 0x22f: 0x0008,\n\t0x230: 0xe00d, 0x231: 0x0008, 0x232: 0xe00d, 0x233: 0x0008, 0x234: 0x0008, 0x235: 0x0008,\n\t0x236: 0x0008, 0x237: 0x0008, 0x238: 0x0008, 0x239: 0x0008, 0x23a: 0x0209, 0x23b: 0xe03d,\n\t0x23c: 0x0008, 0x23d: 0x031d, 0x23e: 0x0229, 0x23f: 0x0008,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x0008, 0x241: 0x0008, 0x242: 0x0018, 0x243: 0x0018, 0x244: 0x0018, 0x245: 0x0018,\n\t0x246: 0x0008, 0x247: 0x0008, 0x248: 0x0008, 0x249: 0x0008, 0x24a: 0x0008, 0x24b: 0x0008,\n\t0x24c: 0x0008, 0x24d: 0x0008, 0x24e: 0x0008, 0x24f: 0x0008, 0x250: 0x0008, 0x251: 0x0008,\n\t0x252: 0x0018, 0x253: 0x0018, 0x254: 0x0018, 0x255: 0x0018, 0x256: 0x0018, 0x257: 0x0018,\n\t0x258: 0x029a, 0x259: 0x02ba, 0x25a: 0x02da, 0x25b: 0x02fa, 0x25c: 0x031a, 0x25d: 0x033a,\n\t0x25e: 0x0018, 0x25f: 0x0018, 0x260: 0x03ad, 0x261: 0x0359, 0x262: 0x01d9, 0x263: 0x0369,\n\t0x264: 0x03c5, 0x265: 0x0018, 0x266: 0x0018, 0x267: 0x0018, 0x268: 0x0018, 0x269: 0x0018,\n\t0x26a: 0x0018, 0x26b: 0x0018, 0x26c: 0x0008, 0x26d: 0x0018, 0x26e: 0x0008, 0x26f: 0x0018,\n\t0x270: 0x0018, 0x271: 0x0018, 0x272: 0x0018, 0x273: 0x0018, 0x274: 0x0018, 0x275: 0x0018,\n\t0x276: 0x0018, 0x277: 0x0018, 0x278: 0x0018, 0x279: 0x0018, 0x27a: 0x0018, 0x27b: 0x0018,\n\t0x27c: 0x0018, 0x27d: 0x0018, 0x27e: 0x0018, 0x27f: 0x0018,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x03dd, 0x281: 0x03dd, 0x282: 0x3308, 0x283: 0x03f5, 0x284: 0x0379, 0x285: 0x040d,\n\t0x286: 0x3308, 0x287: 0x3308, 0x288: 0x3308, 0x289: 0x3308, 0x28a: 0x3308, 0x28b: 0x3308,\n\t0x28c: 0x3308, 0x28d: 0x3308, 0x28e: 0x3308, 0x28f: 0x33c0, 0x290: 0x3308, 0x291: 0x3308,\n\t0x292: 0x3308, 0x293: 0x3308, 0x294: 0x3308, 0x295: 0x3308, 0x296: 0x3308, 0x297: 0x3308,\n\t0x298: 0x3308, 0x299: 0x3308, 0x29a: 0x3308, 0x29b: 0x3308, 0x29c: 0x3308, 0x29d: 0x3308,\n\t0x29e: 0x3308, 0x29f: 0x3308, 0x2a0: 0x3308, 0x2a1: 0x3308, 0x2a2: 0x3308, 0x2a3: 0x3308,\n\t0x2a4: 0x3308, 0x2a5: 0x3308, 0x2a6: 0x3308, 0x2a7: 0x3308, 0x2a8: 0x3308, 0x2a9: 0x3308,\n\t0x2aa: 0x3308, 0x2ab: 0x3308, 0x2ac: 0x3308, 0x2ad: 0x3308, 0x2ae: 0x3308, 0x2af: 0x3308,\n\t0x2b0: 0xe00d, 0x2b1: 0x0008, 0x2b2: 0xe00d, 0x2b3: 0x0008, 0x2b4: 0x0425, 0x2b5: 0x0008,\n\t0x2b6: 0xe00d, 0x2b7: 0x0008, 0x2b8: 0x0040, 0x2b9: 0x0040, 0x2ba: 0x03a2, 0x2bb: 0x0008,\n\t0x2bc: 0x0008, 0x2bd: 0x0008, 0x2be: 0x03c2, 0x2bf: 0x043d,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x0040, 0x2c1: 0x0040, 0x2c2: 0x0040, 0x2c3: 0x0040, 0x2c4: 0x008a, 0x2c5: 0x03d2,\n\t0x2c6: 0xe155, 0x2c7: 0x0455, 0x2c8: 0xe12d, 0x2c9: 0xe13d, 0x2ca: 0xe12d, 0x2cb: 0x0040,\n\t0x2cc: 0x03dd, 0x2cd: 0x0040, 0x2ce: 0x046d, 0x2cf: 0x0485, 0x2d0: 0x0008, 0x2d1: 0xe105,\n\t0x2d2: 0xe105, 0x2d3: 0xe105, 0x2d4: 0xe105, 0x2d5: 0xe105, 0x2d6: 0xe105, 0x2d7: 0xe105,\n\t0x2d8: 0xe105, 0x2d9: 0xe105, 0x2da: 0xe105, 0x2db: 0xe105, 0x2dc: 0xe105, 0x2dd: 0xe105,\n\t0x2de: 0xe105, 0x2df: 0xe105, 0x2e0: 0x049d, 0x2e1: 0x049d, 0x2e2: 0x0040, 0x2e3: 0x049d,\n\t0x2e4: 0x049d, 0x2e5: 0x049d, 0x2e6: 0x049d, 0x2e7: 0x049d, 0x2e8: 0x049d, 0x2e9: 0x049d,\n\t0x2ea: 0x049d, 0x2eb: 0x049d, 0x2ec: 0x0008, 0x2ed: 0x0008, 0x2ee: 0x0008, 0x2ef: 0x0008,\n\t0x2f0: 0x0008, 0x2f1: 0x0008, 0x2f2: 0x0008, 0x2f3: 0x0008, 0x2f4: 0x0008, 0x2f5: 0x0008,\n\t0x2f6: 0x0008, 0x2f7: 0x0008, 0x2f8: 0x0008, 0x2f9: 0x0008, 0x2fa: 0x0008, 0x2fb: 0x0008,\n\t0x2fc: 0x0008, 0x2fd: 0x0008, 0x2fe: 0x0008, 0x2ff: 0x0008,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x0008, 0x301: 0x0008, 0x302: 0xe00f, 0x303: 0x0008, 0x304: 0x0008, 0x305: 0x0008,\n\t0x306: 0x0008, 0x307: 0x0008, 0x308: 0x0008, 0x309: 0x0008, 0x30a: 0x0008, 0x30b: 0x0008,\n\t0x30c: 0x0008, 0x30d: 0x0008, 0x30e: 0x0008, 0x30f: 0xe0c5, 0x310: 0x04b5, 0x311: 0x04cd,\n\t0x312: 0xe0bd, 0x313: 0xe0f5, 0x314: 0xe0fd, 0x315: 0xe09d, 0x316: 0xe0b5, 0x317: 0x0008,\n\t0x318: 0xe00d, 0x319: 0x0008, 0x31a: 0xe00d, 0x31b: 0x0008, 0x31c: 0xe00d, 0x31d: 0x0008,\n\t0x31e: 0xe00d, 0x31f: 0x0008, 0x320: 0xe00d, 0x321: 0x0008, 0x322: 0xe00d, 0x323: 0x0008,\n\t0x324: 0xe00d, 0x325: 0x0008, 0x326: 0xe00d, 0x327: 0x0008, 0x328: 0xe00d, 0x329: 0x0008,\n\t0x32a: 0xe00d, 0x32b: 0x0008, 0x32c: 0xe00d, 0x32d: 0x0008, 0x32e: 0xe00d, 0x32f: 0x0008,\n\t0x330: 0x04e5, 0x331: 0xe185, 0x332: 0xe18d, 0x333: 0x0008, 0x334: 0x04fd, 0x335: 0x03dd,\n\t0x336: 0x0018, 0x337: 0xe07d, 0x338: 0x0008, 0x339: 0xe1d5, 0x33a: 0xe00d, 0x33b: 0x0008,\n\t0x33c: 0x0008, 0x33d: 0x0515, 0x33e: 0x052d, 0x33f: 0x052d,\n\t// Block 0xd, offset 0x340\n\t0x340: 0x0008, 0x341: 0x0008, 0x342: 0x0008, 0x343: 0x0008, 0x344: 0x0008, 0x345: 0x0008,\n\t0x346: 0x0008, 0x347: 0x0008, 0x348: 0x0008, 0x349: 0x0008, 0x34a: 0x0008, 0x34b: 0x0008,\n\t0x34c: 0x0008, 0x34d: 0x0008, 0x34e: 0x0008, 0x34f: 0x0008, 0x350: 0x0008, 0x351: 0x0008,\n\t0x352: 0x0008, 0x353: 0x0008, 0x354: 0x0008, 0x355: 0x0008, 0x356: 0x0008, 0x357: 0x0008,\n\t0x358: 0x0008, 0x359: 0x0008, 0x35a: 0x0008, 0x35b: 0x0008, 0x35c: 0x0008, 0x35d: 0x0008,\n\t0x35e: 0x0008, 0x35f: 0x0008, 0x360: 0xe00d, 0x361: 0x0008, 0x362: 0xe00d, 0x363: 0x0008,\n\t0x364: 0xe00d, 0x365: 0x0008, 0x366: 0xe00d, 0x367: 0x0008, 0x368: 0xe00d, 0x369: 0x0008,\n\t0x36a: 0xe00d, 0x36b: 0x0008, 0x36c: 0xe00d, 0x36d: 0x0008, 0x36e: 0xe00d, 0x36f: 0x0008,\n\t0x370: 0xe00d, 0x371: 0x0008, 0x372: 0xe00d, 0x373: 0x0008, 0x374: 0xe00d, 0x375: 0x0008,\n\t0x376: 0xe00d, 0x377: 0x0008, 0x378: 0xe00d, 0x379: 0x0008, 0x37a: 0xe00d, 0x37b: 0x0008,\n\t0x37c: 0xe00d, 0x37d: 0x0008, 0x37e: 0xe00d, 0x37f: 0x0008,\n\t// Block 0xe, offset 0x380\n\t0x380: 0xe00d, 0x381: 0x0008, 0x382: 0x0018, 0x383: 0x3308, 0x384: 0x3308, 0x385: 0x3308,\n\t0x386: 0x3308, 0x387: 0x3308, 0x388: 0x3318, 0x389: 0x3318, 0x38a: 0xe00d, 0x38b: 0x0008,\n\t0x38c: 0xe00d, 0x38d: 0x0008, 0x38e: 0xe00d, 0x38f: 0x0008, 0x390: 0xe00d, 0x391: 0x0008,\n\t0x392: 0xe00d, 0x393: 0x0008, 0x394: 0xe00d, 0x395: 0x0008, 0x396: 0xe00d, 0x397: 0x0008,\n\t0x398: 0xe00d, 0x399: 0x0008, 0x39a: 0xe00d, 0x39b: 0x0008, 0x39c: 0xe00d, 0x39d: 0x0008,\n\t0x39e: 0xe00d, 0x39f: 0x0008, 0x3a0: 0xe00d, 0x3a1: 0x0008, 0x3a2: 0xe00d, 0x3a3: 0x0008,\n\t0x3a4: 0xe00d, 0x3a5: 0x0008, 0x3a6: 0xe00d, 0x3a7: 0x0008, 0x3a8: 0xe00d, 0x3a9: 0x0008,\n\t0x3aa: 0xe00d, 0x3ab: 0x0008, 0x3ac: 0xe00d, 0x3ad: 0x0008, 0x3ae: 0xe00d, 0x3af: 0x0008,\n\t0x3b0: 0xe00d, 0x3b1: 0x0008, 0x3b2: 0xe00d, 0x3b3: 0x0008, 0x3b4: 0xe00d, 0x3b5: 0x0008,\n\t0x3b6: 0xe00d, 0x3b7: 0x0008, 0x3b8: 0xe00d, 0x3b9: 0x0008, 0x3ba: 0xe00d, 0x3bb: 0x0008,\n\t0x3bc: 0xe00d, 0x3bd: 0x0008, 0x3be: 0xe00d, 0x3bf: 0x0008,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x0040, 0x3c1: 0xe01d, 0x3c2: 0x0008, 0x3c3: 0xe03d, 0x3c4: 0x0008, 0x3c5: 0xe01d,\n\t0x3c6: 0x0008, 0x3c7: 0xe07d, 0x3c8: 0x0008, 0x3c9: 0xe01d, 0x3ca: 0x0008, 0x3cb: 0xe03d,\n\t0x3cc: 0x0008, 0x3cd: 0xe01d, 0x3ce: 0x0008, 0x3cf: 0x0008, 0x3d0: 0xe00d, 0x3d1: 0x0008,\n\t0x3d2: 0xe00d, 0x3d3: 0x0008, 0x3d4: 0xe00d, 0x3d5: 0x0008, 0x3d6: 0xe00d, 0x3d7: 0x0008,\n\t0x3d8: 0xe00d, 0x3d9: 0x0008, 0x3da: 0xe00d, 0x3db: 0x0008, 0x3dc: 0xe00d, 0x3dd: 0x0008,\n\t0x3de: 0xe00d, 0x3df: 0x0008, 0x3e0: 0xe00d, 0x3e1: 0x0008, 0x3e2: 0xe00d, 0x3e3: 0x0008,\n\t0x3e4: 0xe00d, 0x3e5: 0x0008, 0x3e6: 0xe00d, 0x3e7: 0x0008, 0x3e8: 0xe00d, 0x3e9: 0x0008,\n\t0x3ea: 0xe00d, 0x3eb: 0x0008, 0x3ec: 0xe00d, 0x3ed: 0x0008, 0x3ee: 0xe00d, 0x3ef: 0x0008,\n\t0x3f0: 0xe00d, 0x3f1: 0x0008, 0x3f2: 0xe00d, 0x3f3: 0x0008, 0x3f4: 0xe00d, 0x3f5: 0x0008,\n\t0x3f6: 0xe00d, 0x3f7: 0x0008, 0x3f8: 0xe00d, 0x3f9: 0x0008, 0x3fa: 0xe00d, 0x3fb: 0x0008,\n\t0x3fc: 0xe00d, 0x3fd: 0x0008, 0x3fe: 0xe00d, 0x3ff: 0x0008,\n\t// Block 0x10, offset 0x400\n\t0x400: 0xe00d, 0x401: 0x0008, 0x402: 0xe00d, 0x403: 0x0008, 0x404: 0xe00d, 0x405: 0x0008,\n\t0x406: 0xe00d, 0x407: 0x0008, 0x408: 0xe00d, 0x409: 0x0008, 0x40a: 0xe00d, 0x40b: 0x0008,\n\t0x40c: 0xe00d, 0x40d: 0x0008, 0x40e: 0xe00d, 0x40f: 0x0008, 0x410: 0xe00d, 0x411: 0x0008,\n\t0x412: 0xe00d, 0x413: 0x0008, 0x414: 0xe00d, 0x415: 0x0008, 0x416: 0xe00d, 0x417: 0x0008,\n\t0x418: 0xe00d, 0x419: 0x0008, 0x41a: 0xe00d, 0x41b: 0x0008, 0x41c: 0xe00d, 0x41d: 0x0008,\n\t0x41e: 0xe00d, 0x41f: 0x0008, 0x420: 0xe00d, 0x421: 0x0008, 0x422: 0xe00d, 0x423: 0x0008,\n\t0x424: 0xe00d, 0x425: 0x0008, 0x426: 0xe00d, 0x427: 0x0008, 0x428: 0xe00d, 0x429: 0x0008,\n\t0x42a: 0xe00d, 0x42b: 0x0008, 0x42c: 0xe00d, 0x42d: 0x0008, 0x42e: 0xe00d, 0x42f: 0x0008,\n\t0x430: 0x0040, 0x431: 0x03f5, 0x432: 0x03f5, 0x433: 0x03f5, 0x434: 0x03f5, 0x435: 0x03f5,\n\t0x436: 0x03f5, 0x437: 0x03f5, 0x438: 0x03f5, 0x439: 0x03f5, 0x43a: 0x03f5, 0x43b: 0x03f5,\n\t0x43c: 0x03f5, 0x43d: 0x03f5, 0x43e: 0x03f5, 0x43f: 0x03f5,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x0840, 0x441: 0x0840, 0x442: 0x0840, 0x443: 0x0840, 0x444: 0x0840, 0x445: 0x0840,\n\t0x446: 0x0018, 0x447: 0x0018, 0x448: 0x0818, 0x449: 0x0018, 0x44a: 0x0018, 0x44b: 0x0818,\n\t0x44c: 0x0018, 0x44d: 0x0818, 0x44e: 0x0018, 0x44f: 0x0018, 0x450: 0x3308, 0x451: 0x3308,\n\t0x452: 0x3308, 0x453: 0x3308, 0x454: 0x3308, 0x455: 0x3308, 0x456: 0x3308, 0x457: 0x3308,\n\t0x458: 0x3308, 0x459: 0x3308, 0x45a: 0x3308, 0x45b: 0x0818, 0x45c: 0x0b40, 0x45d: 0x0040,\n\t0x45e: 0x0818, 0x45f: 0x0818, 0x460: 0x0a08, 0x461: 0x0808, 0x462: 0x0c08, 0x463: 0x0c08,\n\t0x464: 0x0c08, 0x465: 0x0c08, 0x466: 0x0a08, 0x467: 0x0c08, 0x468: 0x0a08, 0x469: 0x0c08,\n\t0x46a: 0x0a08, 0x46b: 0x0a08, 0x46c: 0x0a08, 0x46d: 0x0a08, 0x46e: 0x0a08, 0x46f: 0x0c08,\n\t0x470: 0x0c08, 0x471: 0x0c08, 0x472: 0x0c08, 0x473: 0x0a08, 0x474: 0x0a08, 0x475: 0x0a08,\n\t0x476: 0x0a08, 0x477: 0x0a08, 0x478: 0x0a08, 0x479: 0x0a08, 0x47a: 0x0a08, 0x47b: 0x0a08,\n\t0x47c: 0x0a08, 0x47d: 0x0a08, 0x47e: 0x0a08, 0x47f: 0x0a08,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x0818, 0x481: 0x0a08, 0x482: 0x0a08, 0x483: 0x0a08, 0x484: 0x0a08, 0x485: 0x0a08,\n\t0x486: 0x0a08, 0x487: 0x0a08, 0x488: 0x0c08, 0x489: 0x0a08, 0x48a: 0x0a08, 0x48b: 0x3308,\n\t0x48c: 0x3308, 0x48d: 0x3308, 0x48e: 0x3308, 0x48f: 0x3308, 0x490: 0x3308, 0x491: 0x3308,\n\t0x492: 0x3308, 0x493: 0x3308, 0x494: 0x3308, 0x495: 0x3308, 0x496: 0x3308, 0x497: 0x3308,\n\t0x498: 0x3308, 0x499: 0x3308, 0x49a: 0x3308, 0x49b: 0x3308, 0x49c: 0x3308, 0x49d: 0x3308,\n\t0x49e: 0x3308, 0x49f: 0x3308, 0x4a0: 0x0808, 0x4a1: 0x0808, 0x4a2: 0x0808, 0x4a3: 0x0808,\n\t0x4a4: 0x0808, 0x4a5: 0x0808, 0x4a6: 0x0808, 0x4a7: 0x0808, 0x4a8: 0x0808, 0x4a9: 0x0808,\n\t0x4aa: 0x0018, 0x4ab: 0x0818, 0x4ac: 0x0818, 0x4ad: 0x0818, 0x4ae: 0x0a08, 0x4af: 0x0a08,\n\t0x4b0: 0x3308, 0x4b1: 0x0c08, 0x4b2: 0x0c08, 0x4b3: 0x0c08, 0x4b4: 0x0808, 0x4b5: 0x0429,\n\t0x4b6: 0x0451, 0x4b7: 0x0479, 0x4b8: 0x04a1, 0x4b9: 0x0a08, 0x4ba: 0x0a08, 0x4bb: 0x0a08,\n\t0x4bc: 0x0a08, 0x4bd: 0x0a08, 0x4be: 0x0a08, 0x4bf: 0x0a08,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x0c08, 0x4c1: 0x0a08, 0x4c2: 0x0a08, 0x4c3: 0x0c08, 0x4c4: 0x0c08, 0x4c5: 0x0c08,\n\t0x4c6: 0x0c08, 0x4c7: 0x0c08, 0x4c8: 0x0c08, 0x4c9: 0x0c08, 0x4ca: 0x0c08, 0x4cb: 0x0c08,\n\t0x4cc: 0x0a08, 0x4cd: 0x0c08, 0x4ce: 0x0a08, 0x4cf: 0x0c08, 0x4d0: 0x0a08, 0x4d1: 0x0a08,\n\t0x4d2: 0x0c08, 0x4d3: 0x0c08, 0x4d4: 0x0818, 0x4d5: 0x0c08, 0x4d6: 0x3308, 0x4d7: 0x3308,\n\t0x4d8: 0x3308, 0x4d9: 0x3308, 0x4da: 0x3308, 0x4db: 0x3308, 0x4dc: 0x3308, 0x4dd: 0x0840,\n\t0x4de: 0x0018, 0x4df: 0x3308, 0x4e0: 0x3308, 0x4e1: 0x3308, 0x4e2: 0x3308, 0x4e3: 0x3308,\n\t0x4e4: 0x3308, 0x4e5: 0x0808, 0x4e6: 0x0808, 0x4e7: 0x3308, 0x4e8: 0x3308, 0x4e9: 0x0018,\n\t0x4ea: 0x3308, 0x4eb: 0x3308, 0x4ec: 0x3308, 0x4ed: 0x3308, 0x4ee: 0x0c08, 0x4ef: 0x0c08,\n\t0x4f0: 0x0008, 0x4f1: 0x0008, 0x4f2: 0x0008, 0x4f3: 0x0008, 0x4f4: 0x0008, 0x4f5: 0x0008,\n\t0x4f6: 0x0008, 0x4f7: 0x0008, 0x4f8: 0x0008, 0x4f9: 0x0008, 0x4fa: 0x0a08, 0x4fb: 0x0a08,\n\t0x4fc: 0x0a08, 0x4fd: 0x0808, 0x4fe: 0x0808, 0x4ff: 0x0a08,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x0818, 0x501: 0x0818, 0x502: 0x0818, 0x503: 0x0818, 0x504: 0x0818, 0x505: 0x0818,\n\t0x506: 0x0818, 0x507: 0x0818, 0x508: 0x0818, 0x509: 0x0818, 0x50a: 0x0818, 0x50b: 0x0818,\n\t0x50c: 0x0818, 0x50d: 0x0818, 0x50e: 0x0040, 0x50f: 0x0b40, 0x510: 0x0c08, 0x511: 0x3308,\n\t0x512: 0x0a08, 0x513: 0x0a08, 0x514: 0x0a08, 0x515: 0x0c08, 0x516: 0x0c08, 0x517: 0x0c08,\n\t0x518: 0x0c08, 0x519: 0x0c08, 0x51a: 0x0a08, 0x51b: 0x0a08, 0x51c: 0x0a08, 0x51d: 0x0a08,\n\t0x51e: 0x0c08, 0x51f: 0x0a08, 0x520: 0x0a08, 0x521: 0x0a08, 0x522: 0x0a08, 0x523: 0x0a08,\n\t0x524: 0x0a08, 0x525: 0x0a08, 0x526: 0x0a08, 0x527: 0x0a08, 0x528: 0x0c08, 0x529: 0x0a08,\n\t0x52a: 0x0c08, 0x52b: 0x0a08, 0x52c: 0x0c08, 0x52d: 0x0a08, 0x52e: 0x0a08, 0x52f: 0x0c08,\n\t0x530: 0x3308, 0x531: 0x3308, 0x532: 0x3308, 0x533: 0x3308, 0x534: 0x3308, 0x535: 0x3308,\n\t0x536: 0x3308, 0x537: 0x3308, 0x538: 0x3308, 0x539: 0x3308, 0x53a: 0x3308, 0x53b: 0x3308,\n\t0x53c: 0x3308, 0x53d: 0x3308, 0x53e: 0x3308, 0x53f: 0x3308,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x0c08, 0x541: 0x0a08, 0x542: 0x0a08, 0x543: 0x0a08, 0x544: 0x0a08, 0x545: 0x0a08,\n\t0x546: 0x0c08, 0x547: 0x0c08, 0x548: 0x0a08, 0x549: 0x0c08, 0x54a: 0x0a08, 0x54b: 0x0a08,\n\t0x54c: 0x0a08, 0x54d: 0x0a08, 0x54e: 0x0a08, 0x54f: 0x0a08, 0x550: 0x0a08, 0x551: 0x0a08,\n\t0x552: 0x0a08, 0x553: 0x0a08, 0x554: 0x0c08, 0x555: 0x0a08, 0x556: 0x0808, 0x557: 0x0808,\n\t0x558: 0x0808, 0x559: 0x3308, 0x55a: 0x3308, 0x55b: 0x3308, 0x55c: 0x0040, 0x55d: 0x0040,\n\t0x55e: 0x0818, 0x55f: 0x0040, 0x560: 0x0a08, 0x561: 0x0808, 0x562: 0x0a08, 0x563: 0x0a08,\n\t0x564: 0x0a08, 0x565: 0x0a08, 0x566: 0x0808, 0x567: 0x0c08, 0x568: 0x0a08, 0x569: 0x0c08,\n\t0x56a: 0x0c08, 0x56b: 0x0040, 0x56c: 0x0040, 0x56d: 0x0040, 0x56e: 0x0040, 0x56f: 0x0040,\n\t0x570: 0x0040, 0x571: 0x0040, 0x572: 0x0040, 0x573: 0x0040, 0x574: 0x0040, 0x575: 0x0040,\n\t0x576: 0x0040, 0x577: 0x0040, 0x578: 0x0040, 0x579: 0x0040, 0x57a: 0x0040, 0x57b: 0x0040,\n\t0x57c: 0x0040, 0x57d: 0x0040, 0x57e: 0x0040, 0x57f: 0x0040,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x3008, 0x581: 0x3308, 0x582: 0x3308, 0x583: 0x3308, 0x584: 0x3308, 0x585: 0x3308,\n\t0x586: 0x3308, 0x587: 0x3308, 0x588: 0x3308, 0x589: 0x3008, 0x58a: 0x3008, 0x58b: 0x3008,\n\t0x58c: 0x3008, 0x58d: 0x3b08, 0x58e: 0x3008, 0x58f: 0x3008, 0x590: 0x0008, 0x591: 0x3308,\n\t0x592: 0x3308, 0x593: 0x3308, 0x594: 0x3308, 0x595: 0x3308, 0x596: 0x3308, 0x597: 0x3308,\n\t0x598: 0x04c9, 0x599: 0x0501, 0x59a: 0x0539, 0x59b: 0x0571, 0x59c: 0x05a9, 0x59d: 0x05e1,\n\t0x59e: 0x0619, 0x59f: 0x0651, 0x5a0: 0x0008, 0x5a1: 0x0008, 0x5a2: 0x3308, 0x5a3: 0x3308,\n\t0x5a4: 0x0018, 0x5a5: 0x0018, 0x5a6: 0x0008, 0x5a7: 0x0008, 0x5a8: 0x0008, 0x5a9: 0x0008,\n\t0x5aa: 0x0008, 0x5ab: 0x0008, 0x5ac: 0x0008, 0x5ad: 0x0008, 0x5ae: 0x0008, 0x5af: 0x0008,\n\t0x5b0: 0x0018, 0x5b1: 0x0008, 0x5b2: 0x0008, 0x5b3: 0x0008, 0x5b4: 0x0008, 0x5b5: 0x0008,\n\t0x5b6: 0x0008, 0x5b7: 0x0008, 0x5b8: 0x0008, 0x5b9: 0x0008, 0x5ba: 0x0008, 0x5bb: 0x0008,\n\t0x5bc: 0x0008, 0x5bd: 0x0008, 0x5be: 0x0008, 0x5bf: 0x0008,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x0008, 0x5c1: 0x3308, 0x5c2: 0x3008, 0x5c3: 0x3008, 0x5c4: 0x0040, 0x5c5: 0x0008,\n\t0x5c6: 0x0008, 0x5c7: 0x0008, 0x5c8: 0x0008, 0x5c9: 0x0008, 0x5ca: 0x0008, 0x5cb: 0x0008,\n\t0x5cc: 0x0008, 0x5cd: 0x0040, 0x5ce: 0x0040, 0x5cf: 0x0008, 0x5d0: 0x0008, 0x5d1: 0x0040,\n\t0x5d2: 0x0040, 0x5d3: 0x0008, 0x5d4: 0x0008, 0x5d5: 0x0008, 0x5d6: 0x0008, 0x5d7: 0x0008,\n\t0x5d8: 0x0008, 0x5d9: 0x0008, 0x5da: 0x0008, 0x5db: 0x0008, 0x5dc: 0x0008, 0x5dd: 0x0008,\n\t0x5de: 0x0008, 0x5df: 0x0008, 0x5e0: 0x0008, 0x5e1: 0x0008, 0x5e2: 0x0008, 0x5e3: 0x0008,\n\t0x5e4: 0x0008, 0x5e5: 0x0008, 0x5e6: 0x0008, 0x5e7: 0x0008, 0x5e8: 0x0008, 0x5e9: 0x0040,\n\t0x5ea: 0x0008, 0x5eb: 0x0008, 0x5ec: 0x0008, 0x5ed: 0x0008, 0x5ee: 0x0008, 0x5ef: 0x0008,\n\t0x5f0: 0x0008, 0x5f1: 0x0040, 0x5f2: 0x0008, 0x5f3: 0x0040, 0x5f4: 0x0040, 0x5f5: 0x0040,\n\t0x5f6: 0x0008, 0x5f7: 0x0008, 0x5f8: 0x0008, 0x5f9: 0x0008, 0x5fa: 0x0040, 0x5fb: 0x0040,\n\t0x5fc: 0x3308, 0x5fd: 0x0008, 0x5fe: 0x3008, 0x5ff: 0x3008,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x3008, 0x601: 0x3308, 0x602: 0x3308, 0x603: 0x3308, 0x604: 0x3308, 0x605: 0x0040,\n\t0x606: 0x0040, 0x607: 0x3008, 0x608: 0x3008, 0x609: 0x0040, 0x60a: 0x0040, 0x60b: 0x3008,\n\t0x60c: 0x3008, 0x60d: 0x3b08, 0x60e: 0x0008, 0x60f: 0x0040, 0x610: 0x0040, 0x611: 0x0040,\n\t0x612: 0x0040, 0x613: 0x0040, 0x614: 0x0040, 0x615: 0x0040, 0x616: 0x0040, 0x617: 0x3008,\n\t0x618: 0x0040, 0x619: 0x0040, 0x61a: 0x0040, 0x61b: 0x0040, 0x61c: 0x0689, 0x61d: 0x06c1,\n\t0x61e: 0x0040, 0x61f: 0x06f9, 0x620: 0x0008, 0x621: 0x0008, 0x622: 0x3308, 0x623: 0x3308,\n\t0x624: 0x0040, 0x625: 0x0040, 0x626: 0x0008, 0x627: 0x0008, 0x628: 0x0008, 0x629: 0x0008,\n\t0x62a: 0x0008, 0x62b: 0x0008, 0x62c: 0x0008, 0x62d: 0x0008, 0x62e: 0x0008, 0x62f: 0x0008,\n\t0x630: 0x0008, 0x631: 0x0008, 0x632: 0x0018, 0x633: 0x0018, 0x634: 0x0018, 0x635: 0x0018,\n\t0x636: 0x0018, 0x637: 0x0018, 0x638: 0x0018, 0x639: 0x0018, 0x63a: 0x0018, 0x63b: 0x0018,\n\t0x63c: 0x0008, 0x63d: 0x0018, 0x63e: 0x3308, 0x63f: 0x0040,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x0040, 0x641: 0x3308, 0x642: 0x3308, 0x643: 0x3008, 0x644: 0x0040, 0x645: 0x0008,\n\t0x646: 0x0008, 0x647: 0x0008, 0x648: 0x0008, 0x649: 0x0008, 0x64a: 0x0008, 0x64b: 0x0040,\n\t0x64c: 0x0040, 0x64d: 0x0040, 0x64e: 0x0040, 0x64f: 0x0008, 0x650: 0x0008, 0x651: 0x0040,\n\t0x652: 0x0040, 0x653: 0x0008, 0x654: 0x0008, 0x655: 0x0008, 0x656: 0x0008, 0x657: 0x0008,\n\t0x658: 0x0008, 0x659: 0x0008, 0x65a: 0x0008, 0x65b: 0x0008, 0x65c: 0x0008, 0x65d: 0x0008,\n\t0x65e: 0x0008, 0x65f: 0x0008, 0x660: 0x0008, 0x661: 0x0008, 0x662: 0x0008, 0x663: 0x0008,\n\t0x664: 0x0008, 0x665: 0x0008, 0x666: 0x0008, 0x667: 0x0008, 0x668: 0x0008, 0x669: 0x0040,\n\t0x66a: 0x0008, 0x66b: 0x0008, 0x66c: 0x0008, 0x66d: 0x0008, 0x66e: 0x0008, 0x66f: 0x0008,\n\t0x670: 0x0008, 0x671: 0x0040, 0x672: 0x0008, 0x673: 0x0731, 0x674: 0x0040, 0x675: 0x0008,\n\t0x676: 0x0769, 0x677: 0x0040, 0x678: 0x0008, 0x679: 0x0008, 0x67a: 0x0040, 0x67b: 0x0040,\n\t0x67c: 0x3308, 0x67d: 0x0040, 0x67e: 0x3008, 0x67f: 0x3008,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x3008, 0x681: 0x3308, 0x682: 0x3308, 0x683: 0x0040, 0x684: 0x0040, 0x685: 0x0040,\n\t0x686: 0x0040, 0x687: 0x3308, 0x688: 0x3308, 0x689: 0x0040, 0x68a: 0x0040, 0x68b: 0x3308,\n\t0x68c: 0x3308, 0x68d: 0x3b08, 0x68e: 0x0040, 0x68f: 0x0040, 0x690: 0x0040, 0x691: 0x3308,\n\t0x692: 0x0040, 0x693: 0x0040, 0x694: 0x0040, 0x695: 0x0040, 0x696: 0x0040, 0x697: 0x0040,\n\t0x698: 0x0040, 0x699: 0x07a1, 0x69a: 0x07d9, 0x69b: 0x0811, 0x69c: 0x0008, 0x69d: 0x0040,\n\t0x69e: 0x0849, 0x69f: 0x0040, 0x6a0: 0x0040, 0x6a1: 0x0040, 0x6a2: 0x0040, 0x6a3: 0x0040,\n\t0x6a4: 0x0040, 0x6a5: 0x0040, 0x6a6: 0x0008, 0x6a7: 0x0008, 0x6a8: 0x0008, 0x6a9: 0x0008,\n\t0x6aa: 0x0008, 0x6ab: 0x0008, 0x6ac: 0x0008, 0x6ad: 0x0008, 0x6ae: 0x0008, 0x6af: 0x0008,\n\t0x6b0: 0x3308, 0x6b1: 0x3308, 0x6b2: 0x0008, 0x6b3: 0x0008, 0x6b4: 0x0008, 0x6b5: 0x3308,\n\t0x6b6: 0x0018, 0x6b7: 0x0040, 0x6b8: 0x0040, 0x6b9: 0x0040, 0x6ba: 0x0040, 0x6bb: 0x0040,\n\t0x6bc: 0x0040, 0x6bd: 0x0040, 0x6be: 0x0040, 0x6bf: 0x0040,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x0040, 0x6c1: 0x3308, 0x6c2: 0x3308, 0x6c3: 0x3008, 0x6c4: 0x0040, 0x6c5: 0x0008,\n\t0x6c6: 0x0008, 0x6c7: 0x0008, 0x6c8: 0x0008, 0x6c9: 0x0008, 0x6ca: 0x0008, 0x6cb: 0x0008,\n\t0x6cc: 0x0008, 0x6cd: 0x0008, 0x6ce: 0x0040, 0x6cf: 0x0008, 0x6d0: 0x0008, 0x6d1: 0x0008,\n\t0x6d2: 0x0040, 0x6d3: 0x0008, 0x6d4: 0x0008, 0x6d5: 0x0008, 0x6d6: 0x0008, 0x6d7: 0x0008,\n\t0x6d8: 0x0008, 0x6d9: 0x0008, 0x6da: 0x0008, 0x6db: 0x0008, 0x6dc: 0x0008, 0x6dd: 0x0008,\n\t0x6de: 0x0008, 0x6df: 0x0008, 0x6e0: 0x0008, 0x6e1: 0x0008, 0x6e2: 0x0008, 0x6e3: 0x0008,\n\t0x6e4: 0x0008, 0x6e5: 0x0008, 0x6e6: 0x0008, 0x6e7: 0x0008, 0x6e8: 0x0008, 0x6e9: 0x0040,\n\t0x6ea: 0x0008, 0x6eb: 0x0008, 0x6ec: 0x0008, 0x6ed: 0x0008, 0x6ee: 0x0008, 0x6ef: 0x0008,\n\t0x6f0: 0x0008, 0x6f1: 0x0040, 0x6f2: 0x0008, 0x6f3: 0x0008, 0x6f4: 0x0040, 0x6f5: 0x0008,\n\t0x6f6: 0x0008, 0x6f7: 0x0008, 0x6f8: 0x0008, 0x6f9: 0x0008, 0x6fa: 0x0040, 0x6fb: 0x0040,\n\t0x6fc: 0x3308, 0x6fd: 0x0008, 0x6fe: 0x3008, 0x6ff: 0x3008,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x3008, 0x701: 0x3308, 0x702: 0x3308, 0x703: 0x3308, 0x704: 0x3308, 0x705: 0x3308,\n\t0x706: 0x0040, 0x707: 0x3308, 0x708: 0x3308, 0x709: 0x3008, 0x70a: 0x0040, 0x70b: 0x3008,\n\t0x70c: 0x3008, 0x70d: 0x3b08, 0x70e: 0x0040, 0x70f: 0x0040, 0x710: 0x0008, 0x711: 0x0040,\n\t0x712: 0x0040, 0x713: 0x0040, 0x714: 0x0040, 0x715: 0x0040, 0x716: 0x0040, 0x717: 0x0040,\n\t0x718: 0x0040, 0x719: 0x0040, 0x71a: 0x0040, 0x71b: 0x0040, 0x71c: 0x0040, 0x71d: 0x0040,\n\t0x71e: 0x0040, 0x71f: 0x0040, 0x720: 0x0008, 0x721: 0x0008, 0x722: 0x3308, 0x723: 0x3308,\n\t0x724: 0x0040, 0x725: 0x0040, 0x726: 0x0008, 0x727: 0x0008, 0x728: 0x0008, 0x729: 0x0008,\n\t0x72a: 0x0008, 0x72b: 0x0008, 0x72c: 0x0008, 0x72d: 0x0008, 0x72e: 0x0008, 0x72f: 0x0008,\n\t0x730: 0x0018, 0x731: 0x0018, 0x732: 0x0040, 0x733: 0x0040, 0x734: 0x0040, 0x735: 0x0040,\n\t0x736: 0x0040, 0x737: 0x0040, 0x738: 0x0040, 0x739: 0x0008, 0x73a: 0x3308, 0x73b: 0x3308,\n\t0x73c: 0x3308, 0x73d: 0x3308, 0x73e: 0x3308, 0x73f: 0x3308,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0x0040, 0x741: 0x3308, 0x742: 0x3008, 0x743: 0x3008, 0x744: 0x0040, 0x745: 0x0008,\n\t0x746: 0x0008, 0x747: 0x0008, 0x748: 0x0008, 0x749: 0x0008, 0x74a: 0x0008, 0x74b: 0x0008,\n\t0x74c: 0x0008, 0x74d: 0x0040, 0x74e: 0x0040, 0x74f: 0x0008, 0x750: 0x0008, 0x751: 0x0040,\n\t0x752: 0x0040, 0x753: 0x0008, 0x754: 0x0008, 0x755: 0x0008, 0x756: 0x0008, 0x757: 0x0008,\n\t0x758: 0x0008, 0x759: 0x0008, 0x75a: 0x0008, 0x75b: 0x0008, 0x75c: 0x0008, 0x75d: 0x0008,\n\t0x75e: 0x0008, 0x75f: 0x0008, 0x760: 0x0008, 0x761: 0x0008, 0x762: 0x0008, 0x763: 0x0008,\n\t0x764: 0x0008, 0x765: 0x0008, 0x766: 0x0008, 0x767: 0x0008, 0x768: 0x0008, 0x769: 0x0040,\n\t0x76a: 0x0008, 0x76b: 0x0008, 0x76c: 0x0008, 0x76d: 0x0008, 0x76e: 0x0008, 0x76f: 0x0008,\n\t0x770: 0x0008, 0x771: 0x0040, 0x772: 0x0008, 0x773: 0x0008, 0x774: 0x0040, 0x775: 0x0008,\n\t0x776: 0x0008, 0x777: 0x0008, 0x778: 0x0008, 0x779: 0x0008, 0x77a: 0x0040, 0x77b: 0x0040,\n\t0x77c: 0x3308, 0x77d: 0x0008, 0x77e: 0x3008, 0x77f: 0x3308,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0x3008, 0x781: 0x3308, 0x782: 0x3308, 0x783: 0x3308, 0x784: 0x3308, 0x785: 0x0040,\n\t0x786: 0x0040, 0x787: 0x3008, 0x788: 0x3008, 0x789: 0x0040, 0x78a: 0x0040, 0x78b: 0x3008,\n\t0x78c: 0x3008, 0x78d: 0x3b08, 0x78e: 0x0040, 0x78f: 0x0040, 0x790: 0x0040, 0x791: 0x0040,\n\t0x792: 0x0040, 0x793: 0x0040, 0x794: 0x0040, 0x795: 0x0040, 0x796: 0x3308, 0x797: 0x3008,\n\t0x798: 0x0040, 0x799: 0x0040, 0x79a: 0x0040, 0x79b: 0x0040, 0x79c: 0x0881, 0x79d: 0x08b9,\n\t0x79e: 0x0040, 0x79f: 0x0008, 0x7a0: 0x0008, 0x7a1: 0x0008, 0x7a2: 0x3308, 0x7a3: 0x3308,\n\t0x7a4: 0x0040, 0x7a5: 0x0040, 0x7a6: 0x0008, 0x7a7: 0x0008, 0x7a8: 0x0008, 0x7a9: 0x0008,\n\t0x7aa: 0x0008, 0x7ab: 0x0008, 0x7ac: 0x0008, 0x7ad: 0x0008, 0x7ae: 0x0008, 0x7af: 0x0008,\n\t0x7b0: 0x0018, 0x7b1: 0x0008, 0x7b2: 0x0018, 0x7b3: 0x0018, 0x7b4: 0x0018, 0x7b5: 0x0018,\n\t0x7b6: 0x0018, 0x7b7: 0x0018, 0x7b8: 0x0040, 0x7b9: 0x0040, 0x7ba: 0x0040, 0x7bb: 0x0040,\n\t0x7bc: 0x0040, 0x7bd: 0x0040, 0x7be: 0x0040, 0x7bf: 0x0040,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0x0040, 0x7c1: 0x0040, 0x7c2: 0x3308, 0x7c3: 0x0008, 0x7c4: 0x0040, 0x7c5: 0x0008,\n\t0x7c6: 0x0008, 0x7c7: 0x0008, 0x7c8: 0x0008, 0x7c9: 0x0008, 0x7ca: 0x0008, 0x7cb: 0x0040,\n\t0x7cc: 0x0040, 0x7cd: 0x0040, 0x7ce: 0x0008, 0x7cf: 0x0008, 0x7d0: 0x0008, 0x7d1: 0x0040,\n\t0x7d2: 0x0008, 0x7d3: 0x0008, 0x7d4: 0x0008, 0x7d5: 0x0008, 0x7d6: 0x0040, 0x7d7: 0x0040,\n\t0x7d8: 0x0040, 0x7d9: 0x0008, 0x7da: 0x0008, 0x7db: 0x0040, 0x7dc: 0x0008, 0x7dd: 0x0040,\n\t0x7de: 0x0008, 0x7df: 0x0008, 0x7e0: 0x0040, 0x7e1: 0x0040, 0x7e2: 0x0040, 0x7e3: 0x0008,\n\t0x7e4: 0x0008, 0x7e5: 0x0040, 0x7e6: 0x0040, 0x7e7: 0x0040, 0x7e8: 0x0008, 0x7e9: 0x0008,\n\t0x7ea: 0x0008, 0x7eb: 0x0040, 0x7ec: 0x0040, 0x7ed: 0x0040, 0x7ee: 0x0008, 0x7ef: 0x0008,\n\t0x7f0: 0x0008, 0x7f1: 0x0008, 0x7f2: 0x0008, 0x7f3: 0x0008, 0x7f4: 0x0008, 0x7f5: 0x0008,\n\t0x7f6: 0x0008, 0x7f7: 0x0008, 0x7f8: 0x0008, 0x7f9: 0x0008, 0x7fa: 0x0040, 0x7fb: 0x0040,\n\t0x7fc: 0x0040, 0x7fd: 0x0040, 0x7fe: 0x3008, 0x7ff: 0x3008,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x3308, 0x801: 0x3008, 0x802: 0x3008, 0x803: 0x3008, 0x804: 0x3008, 0x805: 0x0040,\n\t0x806: 0x3308, 0x807: 0x3308, 0x808: 0x3308, 0x809: 0x0040, 0x80a: 0x3308, 0x80b: 0x3308,\n\t0x80c: 0x3308, 0x80d: 0x3b08, 0x80e: 0x0040, 0x80f: 0x0040, 0x810: 0x0040, 0x811: 0x0040,\n\t0x812: 0x0040, 0x813: 0x0040, 0x814: 0x0040, 0x815: 0x3308, 0x816: 0x3308, 0x817: 0x0040,\n\t0x818: 0x0008, 0x819: 0x0008, 0x81a: 0x0008, 0x81b: 0x0040, 0x81c: 0x0040, 0x81d: 0x0040,\n\t0x81e: 0x0040, 0x81f: 0x0040, 0x820: 0x0008, 0x821: 0x0008, 0x822: 0x3308, 0x823: 0x3308,\n\t0x824: 0x0040, 0x825: 0x0040, 0x826: 0x0008, 0x827: 0x0008, 0x828: 0x0008, 0x829: 0x0008,\n\t0x82a: 0x0008, 0x82b: 0x0008, 0x82c: 0x0008, 0x82d: 0x0008, 0x82e: 0x0008, 0x82f: 0x0008,\n\t0x830: 0x0040, 0x831: 0x0040, 0x832: 0x0040, 0x833: 0x0040, 0x834: 0x0040, 0x835: 0x0040,\n\t0x836: 0x0040, 0x837: 0x0040, 0x838: 0x0018, 0x839: 0x0018, 0x83a: 0x0018, 0x83b: 0x0018,\n\t0x83c: 0x0018, 0x83d: 0x0018, 0x83e: 0x0018, 0x83f: 0x0018,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x0008, 0x841: 0x3308, 0x842: 0x3008, 0x843: 0x3008, 0x844: 0x0018, 0x845: 0x0008,\n\t0x846: 0x0008, 0x847: 0x0008, 0x848: 0x0008, 0x849: 0x0008, 0x84a: 0x0008, 0x84b: 0x0008,\n\t0x84c: 0x0008, 0x84d: 0x0040, 0x84e: 0x0008, 0x84f: 0x0008, 0x850: 0x0008, 0x851: 0x0040,\n\t0x852: 0x0008, 0x853: 0x0008, 0x854: 0x0008, 0x855: 0x0008, 0x856: 0x0008, 0x857: 0x0008,\n\t0x858: 0x0008, 0x859: 0x0008, 0x85a: 0x0008, 0x85b: 0x0008, 0x85c: 0x0008, 0x85d: 0x0008,\n\t0x85e: 0x0008, 0x85f: 0x0008, 0x860: 0x0008, 0x861: 0x0008, 0x862: 0x0008, 0x863: 0x0008,\n\t0x864: 0x0008, 0x865: 0x0008, 0x866: 0x0008, 0x867: 0x0008, 0x868: 0x0008, 0x869: 0x0040,\n\t0x86a: 0x0008, 0x86b: 0x0008, 0x86c: 0x0008, 0x86d: 0x0008, 0x86e: 0x0008, 0x86f: 0x0008,\n\t0x870: 0x0008, 0x871: 0x0008, 0x872: 0x0008, 0x873: 0x0008, 0x874: 0x0040, 0x875: 0x0008,\n\t0x876: 0x0008, 0x877: 0x0008, 0x878: 0x0008, 0x879: 0x0008, 0x87a: 0x0040, 0x87b: 0x0040,\n\t0x87c: 0x3308, 0x87d: 0x0008, 0x87e: 0x3008, 0x87f: 0x3308,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x3008, 0x881: 0x3008, 0x882: 0x3008, 0x883: 0x3008, 0x884: 0x3008, 0x885: 0x0040,\n\t0x886: 0x3308, 0x887: 0x3008, 0x888: 0x3008, 0x889: 0x0040, 0x88a: 0x3008, 0x88b: 0x3008,\n\t0x88c: 0x3308, 0x88d: 0x3b08, 0x88e: 0x0040, 0x88f: 0x0040, 0x890: 0x0040, 0x891: 0x0040,\n\t0x892: 0x0040, 0x893: 0x0040, 0x894: 0x0040, 0x895: 0x3008, 0x896: 0x3008, 0x897: 0x0040,\n\t0x898: 0x0040, 0x899: 0x0040, 0x89a: 0x0040, 0x89b: 0x0040, 0x89c: 0x0040, 0x89d: 0x0040,\n\t0x89e: 0x0008, 0x89f: 0x0040, 0x8a0: 0x0008, 0x8a1: 0x0008, 0x8a2: 0x3308, 0x8a3: 0x3308,\n\t0x8a4: 0x0040, 0x8a5: 0x0040, 0x8a6: 0x0008, 0x8a7: 0x0008, 0x8a8: 0x0008, 0x8a9: 0x0008,\n\t0x8aa: 0x0008, 0x8ab: 0x0008, 0x8ac: 0x0008, 0x8ad: 0x0008, 0x8ae: 0x0008, 0x8af: 0x0008,\n\t0x8b0: 0x0040, 0x8b1: 0x0008, 0x8b2: 0x0008, 0x8b3: 0x0040, 0x8b4: 0x0040, 0x8b5: 0x0040,\n\t0x8b6: 0x0040, 0x8b7: 0x0040, 0x8b8: 0x0040, 0x8b9: 0x0040, 0x8ba: 0x0040, 0x8bb: 0x0040,\n\t0x8bc: 0x0040, 0x8bd: 0x0040, 0x8be: 0x0040, 0x8bf: 0x0040,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x3008, 0x8c1: 0x3308, 0x8c2: 0x3308, 0x8c3: 0x3308, 0x8c4: 0x3308, 0x8c5: 0x0040,\n\t0x8c6: 0x3008, 0x8c7: 0x3008, 0x8c8: 0x3008, 0x8c9: 0x0040, 0x8ca: 0x3008, 0x8cb: 0x3008,\n\t0x8cc: 0x3008, 0x8cd: 0x3b08, 0x8ce: 0x0008, 0x8cf: 0x0018, 0x8d0: 0x0040, 0x8d1: 0x0040,\n\t0x8d2: 0x0040, 0x8d3: 0x0040, 0x8d4: 0x0008, 0x8d5: 0x0008, 0x8d6: 0x0008, 0x8d7: 0x3008,\n\t0x8d8: 0x0018, 0x8d9: 0x0018, 0x8da: 0x0018, 0x8db: 0x0018, 0x8dc: 0x0018, 0x8dd: 0x0018,\n\t0x8de: 0x0018, 0x8df: 0x0008, 0x8e0: 0x0008, 0x8e1: 0x0008, 0x8e2: 0x3308, 0x8e3: 0x3308,\n\t0x8e4: 0x0040, 0x8e5: 0x0040, 0x8e6: 0x0008, 0x8e7: 0x0008, 0x8e8: 0x0008, 0x8e9: 0x0008,\n\t0x8ea: 0x0008, 0x8eb: 0x0008, 0x8ec: 0x0008, 0x8ed: 0x0008, 0x8ee: 0x0008, 0x8ef: 0x0008,\n\t0x8f0: 0x0018, 0x8f1: 0x0018, 0x8f2: 0x0018, 0x8f3: 0x0018, 0x8f4: 0x0018, 0x8f5: 0x0018,\n\t0x8f6: 0x0018, 0x8f7: 0x0018, 0x8f8: 0x0018, 0x8f9: 0x0018, 0x8fa: 0x0008, 0x8fb: 0x0008,\n\t0x8fc: 0x0008, 0x8fd: 0x0008, 0x8fe: 0x0008, 0x8ff: 0x0008,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x0040, 0x901: 0x0008, 0x902: 0x0008, 0x903: 0x0040, 0x904: 0x0008, 0x905: 0x0040,\n\t0x906: 0x0040, 0x907: 0x0008, 0x908: 0x0008, 0x909: 0x0040, 0x90a: 0x0008, 0x90b: 0x0040,\n\t0x90c: 0x0040, 0x90d: 0x0008, 0x90e: 0x0040, 0x90f: 0x0040, 0x910: 0x0040, 0x911: 0x0040,\n\t0x912: 0x0040, 0x913: 0x0040, 0x914: 0x0008, 0x915: 0x0008, 0x916: 0x0008, 0x917: 0x0008,\n\t0x918: 0x0040, 0x919: 0x0008, 0x91a: 0x0008, 0x91b: 0x0008, 0x91c: 0x0008, 0x91d: 0x0008,\n\t0x91e: 0x0008, 0x91f: 0x0008, 0x920: 0x0040, 0x921: 0x0008, 0x922: 0x0008, 0x923: 0x0008,\n\t0x924: 0x0040, 0x925: 0x0008, 0x926: 0x0040, 0x927: 0x0008, 0x928: 0x0040, 0x929: 0x0040,\n\t0x92a: 0x0008, 0x92b: 0x0008, 0x92c: 0x0040, 0x92d: 0x0008, 0x92e: 0x0008, 0x92f: 0x0008,\n\t0x930: 0x0008, 0x931: 0x3308, 0x932: 0x0008, 0x933: 0x0929, 0x934: 0x3308, 0x935: 0x3308,\n\t0x936: 0x3308, 0x937: 0x3308, 0x938: 0x3308, 0x939: 0x3308, 0x93a: 0x0040, 0x93b: 0x3308,\n\t0x93c: 0x3308, 0x93d: 0x0008, 0x93e: 0x0040, 0x93f: 0x0040,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x0008, 0x941: 0x0008, 0x942: 0x0008, 0x943: 0x09d1, 0x944: 0x0008, 0x945: 0x0008,\n\t0x946: 0x0008, 0x947: 0x0008, 0x948: 0x0040, 0x949: 0x0008, 0x94a: 0x0008, 0x94b: 0x0008,\n\t0x94c: 0x0008, 0x94d: 0x0a09, 0x94e: 0x0008, 0x94f: 0x0008, 0x950: 0x0008, 0x951: 0x0008,\n\t0x952: 0x0a41, 0x953: 0x0008, 0x954: 0x0008, 0x955: 0x0008, 0x956: 0x0008, 0x957: 0x0a79,\n\t0x958: 0x0008, 0x959: 0x0008, 0x95a: 0x0008, 0x95b: 0x0008, 0x95c: 0x0ab1, 0x95d: 0x0008,\n\t0x95e: 0x0008, 0x95f: 0x0008, 0x960: 0x0008, 0x961: 0x0008, 0x962: 0x0008, 0x963: 0x0008,\n\t0x964: 0x0008, 0x965: 0x0008, 0x966: 0x0008, 0x967: 0x0008, 0x968: 0x0008, 0x969: 0x0ae9,\n\t0x96a: 0x0008, 0x96b: 0x0008, 0x96c: 0x0008, 0x96d: 0x0040, 0x96e: 0x0040, 0x96f: 0x0040,\n\t0x970: 0x0040, 0x971: 0x3308, 0x972: 0x3308, 0x973: 0x0b21, 0x974: 0x3308, 0x975: 0x0b59,\n\t0x976: 0x0b91, 0x977: 0x0bc9, 0x978: 0x0c19, 0x979: 0x0c51, 0x97a: 0x3308, 0x97b: 0x3308,\n\t0x97c: 0x3308, 0x97d: 0x3308, 0x97e: 0x3308, 0x97f: 0x3008,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x3308, 0x981: 0x0ca1, 0x982: 0x3308, 0x983: 0x3308, 0x984: 0x3b08, 0x985: 0x0018,\n\t0x986: 0x3308, 0x987: 0x3308, 0x988: 0x0008, 0x989: 0x0008, 0x98a: 0x0008, 0x98b: 0x0008,\n\t0x98c: 0x0008, 0x98d: 0x3308, 0x98e: 0x3308, 0x98f: 0x3308, 0x990: 0x3308, 0x991: 0x3308,\n\t0x992: 0x3308, 0x993: 0x0cd9, 0x994: 0x3308, 0x995: 0x3308, 0x996: 0x3308, 0x997: 0x3308,\n\t0x998: 0x0040, 0x999: 0x3308, 0x99a: 0x3308, 0x99b: 0x3308, 0x99c: 0x3308, 0x99d: 0x0d11,\n\t0x99e: 0x3308, 0x99f: 0x3308, 0x9a0: 0x3308, 0x9a1: 0x3308, 0x9a2: 0x0d49, 0x9a3: 0x3308,\n\t0x9a4: 0x3308, 0x9a5: 0x3308, 0x9a6: 0x3308, 0x9a7: 0x0d81, 0x9a8: 0x3308, 0x9a9: 0x3308,\n\t0x9aa: 0x3308, 0x9ab: 0x3308, 0x9ac: 0x0db9, 0x9ad: 0x3308, 0x9ae: 0x3308, 0x9af: 0x3308,\n\t0x9b0: 0x3308, 0x9b1: 0x3308, 0x9b2: 0x3308, 0x9b3: 0x3308, 0x9b4: 0x3308, 0x9b5: 0x3308,\n\t0x9b6: 0x3308, 0x9b7: 0x3308, 0x9b8: 0x3308, 0x9b9: 0x0df1, 0x9ba: 0x3308, 0x9bb: 0x3308,\n\t0x9bc: 0x3308, 0x9bd: 0x0040, 0x9be: 0x0018, 0x9bf: 0x0018,\n\t// Block 0x27, offset 0x9c0\n\t0x9c0: 0x0008, 0x9c1: 0x0008, 0x9c2: 0x0008, 0x9c3: 0x0008, 0x9c4: 0x0008, 0x9c5: 0x0008,\n\t0x9c6: 0x0008, 0x9c7: 0x0008, 0x9c8: 0x0008, 0x9c9: 0x0008, 0x9ca: 0x0008, 0x9cb: 0x0008,\n\t0x9cc: 0x0008, 0x9cd: 0x0008, 0x9ce: 0x0008, 0x9cf: 0x0008, 0x9d0: 0x0008, 0x9d1: 0x0008,\n\t0x9d2: 0x0008, 0x9d3: 0x0008, 0x9d4: 0x0008, 0x9d5: 0x0008, 0x9d6: 0x0008, 0x9d7: 0x0008,\n\t0x9d8: 0x0008, 0x9d9: 0x0008, 0x9da: 0x0008, 0x9db: 0x0008, 0x9dc: 0x0008, 0x9dd: 0x0008,\n\t0x9de: 0x0008, 0x9df: 0x0008, 0x9e0: 0x0008, 0x9e1: 0x0008, 0x9e2: 0x0008, 0x9e3: 0x0008,\n\t0x9e4: 0x0008, 0x9e5: 0x0008, 0x9e6: 0x0008, 0x9e7: 0x0008, 0x9e8: 0x0008, 0x9e9: 0x0008,\n\t0x9ea: 0x0008, 0x9eb: 0x0008, 0x9ec: 0x0039, 0x9ed: 0x0ed1, 0x9ee: 0x0ee9, 0x9ef: 0x0008,\n\t0x9f0: 0x0ef9, 0x9f1: 0x0f09, 0x9f2: 0x0f19, 0x9f3: 0x0f31, 0x9f4: 0x0249, 0x9f5: 0x0f41,\n\t0x9f6: 0x0259, 0x9f7: 0x0f51, 0x9f8: 0x0359, 0x9f9: 0x0f61, 0x9fa: 0x0f71, 0x9fb: 0x0008,\n\t0x9fc: 0x00d9, 0x9fd: 0x0f81, 0x9fe: 0x0f99, 0x9ff: 0x0269,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x0fa9, 0xa01: 0x0fb9, 0xa02: 0x0279, 0xa03: 0x0039, 0xa04: 0x0fc9, 0xa05: 0x0fe1,\n\t0xa06: 0x059d, 0xa07: 0x0ee9, 0xa08: 0x0ef9, 0xa09: 0x0f09, 0xa0a: 0x0ff9, 0xa0b: 0x1011,\n\t0xa0c: 0x1029, 0xa0d: 0x0f31, 0xa0e: 0x0008, 0xa0f: 0x0f51, 0xa10: 0x0f61, 0xa11: 0x1041,\n\t0xa12: 0x00d9, 0xa13: 0x1059, 0xa14: 0x05b5, 0xa15: 0x05b5, 0xa16: 0x0f99, 0xa17: 0x0fa9,\n\t0xa18: 0x0fb9, 0xa19: 0x059d, 0xa1a: 0x1071, 0xa1b: 0x1089, 0xa1c: 0x05cd, 0xa1d: 0x1099,\n\t0xa1e: 0x10b1, 0xa1f: 0x10c9, 0xa20: 0x10e1, 0xa21: 0x10f9, 0xa22: 0x0f41, 0xa23: 0x0269,\n\t0xa24: 0x0fb9, 0xa25: 0x1089, 0xa26: 0x1099, 0xa27: 0x10b1, 0xa28: 0x1111, 0xa29: 0x10e1,\n\t0xa2a: 0x10f9, 0xa2b: 0x0008, 0xa2c: 0x0008, 0xa2d: 0x0008, 0xa2e: 0x0008, 0xa2f: 0x0008,\n\t0xa30: 0x0008, 0xa31: 0x0008, 0xa32: 0x0008, 0xa33: 0x0008, 0xa34: 0x0008, 0xa35: 0x0008,\n\t0xa36: 0x0008, 0xa37: 0x0008, 0xa38: 0x1129, 0xa39: 0x0008, 0xa3a: 0x0008, 0xa3b: 0x0008,\n\t0xa3c: 0x0008, 0xa3d: 0x0008, 0xa3e: 0x0008, 0xa3f: 0x0008,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0x0008, 0xa41: 0x0008, 0xa42: 0x0008, 0xa43: 0x0008, 0xa44: 0x0008, 0xa45: 0x0008,\n\t0xa46: 0x0008, 0xa47: 0x0008, 0xa48: 0x0008, 0xa49: 0x0008, 0xa4a: 0x0008, 0xa4b: 0x0008,\n\t0xa4c: 0x0008, 0xa4d: 0x0008, 0xa4e: 0x0008, 0xa4f: 0x0008, 0xa50: 0x0008, 0xa51: 0x0008,\n\t0xa52: 0x0008, 0xa53: 0x0008, 0xa54: 0x0008, 0xa55: 0x0008, 0xa56: 0x0008, 0xa57: 0x0008,\n\t0xa58: 0x0008, 0xa59: 0x0008, 0xa5a: 0x0008, 0xa5b: 0x1141, 0xa5c: 0x1159, 0xa5d: 0x1169,\n\t0xa5e: 0x1181, 0xa5f: 0x1029, 0xa60: 0x1199, 0xa61: 0x11a9, 0xa62: 0x11c1, 0xa63: 0x11d9,\n\t0xa64: 0x11f1, 0xa65: 0x1209, 0xa66: 0x1221, 0xa67: 0x05e5, 0xa68: 0x1239, 0xa69: 0x1251,\n\t0xa6a: 0xe17d, 0xa6b: 0x1269, 0xa6c: 0x1281, 0xa6d: 0x1299, 0xa6e: 0x12b1, 0xa6f: 0x12c9,\n\t0xa70: 0x12e1, 0xa71: 0x12f9, 0xa72: 0x1311, 0xa73: 0x1329, 0xa74: 0x1341, 0xa75: 0x1359,\n\t0xa76: 0x1371, 0xa77: 0x1389, 0xa78: 0x05fd, 0xa79: 0x13a1, 0xa7a: 0x13b9, 0xa7b: 0x13d1,\n\t0xa7c: 0x13e1, 0xa7d: 0x13f9, 0xa7e: 0x1411, 0xa7f: 0x1429,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0xe00d, 0xa81: 0x0008, 0xa82: 0xe00d, 0xa83: 0x0008, 0xa84: 0xe00d, 0xa85: 0x0008,\n\t0xa86: 0xe00d, 0xa87: 0x0008, 0xa88: 0xe00d, 0xa89: 0x0008, 0xa8a: 0xe00d, 0xa8b: 0x0008,\n\t0xa8c: 0xe00d, 0xa8d: 0x0008, 0xa8e: 0xe00d, 0xa8f: 0x0008, 0xa90: 0xe00d, 0xa91: 0x0008,\n\t0xa92: 0xe00d, 0xa93: 0x0008, 0xa94: 0xe00d, 0xa95: 0x0008, 0xa96: 0xe00d, 0xa97: 0x0008,\n\t0xa98: 0xe00d, 0xa99: 0x0008, 0xa9a: 0xe00d, 0xa9b: 0x0008, 0xa9c: 0xe00d, 0xa9d: 0x0008,\n\t0xa9e: 0xe00d, 0xa9f: 0x0008, 0xaa0: 0xe00d, 0xaa1: 0x0008, 0xaa2: 0xe00d, 0xaa3: 0x0008,\n\t0xaa4: 0xe00d, 0xaa5: 0x0008, 0xaa6: 0xe00d, 0xaa7: 0x0008, 0xaa8: 0xe00d, 0xaa9: 0x0008,\n\t0xaaa: 0xe00d, 0xaab: 0x0008, 0xaac: 0xe00d, 0xaad: 0x0008, 0xaae: 0xe00d, 0xaaf: 0x0008,\n\t0xab0: 0xe00d, 0xab1: 0x0008, 0xab2: 0xe00d, 0xab3: 0x0008, 0xab4: 0xe00d, 0xab5: 0x0008,\n\t0xab6: 0xe00d, 0xab7: 0x0008, 0xab8: 0xe00d, 0xab9: 0x0008, 0xaba: 0xe00d, 0xabb: 0x0008,\n\t0xabc: 0xe00d, 0xabd: 0x0008, 0xabe: 0xe00d, 0xabf: 0x0008,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0xe00d, 0xac1: 0x0008, 0xac2: 0xe00d, 0xac3: 0x0008, 0xac4: 0xe00d, 0xac5: 0x0008,\n\t0xac6: 0xe00d, 0xac7: 0x0008, 0xac8: 0xe00d, 0xac9: 0x0008, 0xaca: 0xe00d, 0xacb: 0x0008,\n\t0xacc: 0xe00d, 0xacd: 0x0008, 0xace: 0xe00d, 0xacf: 0x0008, 0xad0: 0xe00d, 0xad1: 0x0008,\n\t0xad2: 0xe00d, 0xad3: 0x0008, 0xad4: 0xe00d, 0xad5: 0x0008, 0xad6: 0x0008, 0xad7: 0x0008,\n\t0xad8: 0x0008, 0xad9: 0x0008, 0xada: 0x0615, 0xadb: 0x0635, 0xadc: 0x0008, 0xadd: 0x0008,\n\t0xade: 0x1441, 0xadf: 0x0008, 0xae0: 0xe00d, 0xae1: 0x0008, 0xae2: 0xe00d, 0xae3: 0x0008,\n\t0xae4: 0xe00d, 0xae5: 0x0008, 0xae6: 0xe00d, 0xae7: 0x0008, 0xae8: 0xe00d, 0xae9: 0x0008,\n\t0xaea: 0xe00d, 0xaeb: 0x0008, 0xaec: 0xe00d, 0xaed: 0x0008, 0xaee: 0xe00d, 0xaef: 0x0008,\n\t0xaf0: 0xe00d, 0xaf1: 0x0008, 0xaf2: 0xe00d, 0xaf3: 0x0008, 0xaf4: 0xe00d, 0xaf5: 0x0008,\n\t0xaf6: 0xe00d, 0xaf7: 0x0008, 0xaf8: 0xe00d, 0xaf9: 0x0008, 0xafa: 0xe00d, 0xafb: 0x0008,\n\t0xafc: 0xe00d, 0xafd: 0x0008, 0xafe: 0xe00d, 0xaff: 0x0008,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0x0008, 0xb01: 0x0008, 0xb02: 0x0008, 0xb03: 0x0008, 0xb04: 0x0008, 0xb05: 0x0008,\n\t0xb06: 0x0040, 0xb07: 0x0040, 0xb08: 0xe045, 0xb09: 0xe045, 0xb0a: 0xe045, 0xb0b: 0xe045,\n\t0xb0c: 0xe045, 0xb0d: 0xe045, 0xb0e: 0x0040, 0xb0f: 0x0040, 0xb10: 0x0008, 0xb11: 0x0008,\n\t0xb12: 0x0008, 0xb13: 0x0008, 0xb14: 0x0008, 0xb15: 0x0008, 0xb16: 0x0008, 0xb17: 0x0008,\n\t0xb18: 0x0040, 0xb19: 0xe045, 0xb1a: 0x0040, 0xb1b: 0xe045, 0xb1c: 0x0040, 0xb1d: 0xe045,\n\t0xb1e: 0x0040, 0xb1f: 0xe045, 0xb20: 0x0008, 0xb21: 0x0008, 0xb22: 0x0008, 0xb23: 0x0008,\n\t0xb24: 0x0008, 0xb25: 0x0008, 0xb26: 0x0008, 0xb27: 0x0008, 0xb28: 0xe045, 0xb29: 0xe045,\n\t0xb2a: 0xe045, 0xb2b: 0xe045, 0xb2c: 0xe045, 0xb2d: 0xe045, 0xb2e: 0xe045, 0xb2f: 0xe045,\n\t0xb30: 0x0008, 0xb31: 0x1459, 0xb32: 0x0008, 0xb33: 0x1471, 0xb34: 0x0008, 0xb35: 0x1489,\n\t0xb36: 0x0008, 0xb37: 0x14a1, 0xb38: 0x0008, 0xb39: 0x14b9, 0xb3a: 0x0008, 0xb3b: 0x14d1,\n\t0xb3c: 0x0008, 0xb3d: 0x14e9, 0xb3e: 0x0040, 0xb3f: 0x0040,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x1501, 0xb41: 0x1531, 0xb42: 0x1561, 0xb43: 0x1591, 0xb44: 0x15c1, 0xb45: 0x15f1,\n\t0xb46: 0x1621, 0xb47: 0x1651, 0xb48: 0x1501, 0xb49: 0x1531, 0xb4a: 0x1561, 0xb4b: 0x1591,\n\t0xb4c: 0x15c1, 0xb4d: 0x15f1, 0xb4e: 0x1621, 0xb4f: 0x1651, 0xb50: 0x1681, 0xb51: 0x16b1,\n\t0xb52: 0x16e1, 0xb53: 0x1711, 0xb54: 0x1741, 0xb55: 0x1771, 0xb56: 0x17a1, 0xb57: 0x17d1,\n\t0xb58: 0x1681, 0xb59: 0x16b1, 0xb5a: 0x16e1, 0xb5b: 0x1711, 0xb5c: 0x1741, 0xb5d: 0x1771,\n\t0xb5e: 0x17a1, 0xb5f: 0x17d1, 0xb60: 0x1801, 0xb61: 0x1831, 0xb62: 0x1861, 0xb63: 0x1891,\n\t0xb64: 0x18c1, 0xb65: 0x18f1, 0xb66: 0x1921, 0xb67: 0x1951, 0xb68: 0x1801, 0xb69: 0x1831,\n\t0xb6a: 0x1861, 0xb6b: 0x1891, 0xb6c: 0x18c1, 0xb6d: 0x18f1, 0xb6e: 0x1921, 0xb6f: 0x1951,\n\t0xb70: 0x0008, 0xb71: 0x0008, 0xb72: 0x1981, 0xb73: 0x19b1, 0xb74: 0x19d9, 0xb75: 0x0040,\n\t0xb76: 0x0008, 0xb77: 0x1a01, 0xb78: 0xe045, 0xb79: 0xe045, 0xb7a: 0x064d, 0xb7b: 0x1459,\n\t0xb7c: 0x19b1, 0xb7d: 0x0666, 0xb7e: 0x1a31, 0xb7f: 0x0686,\n\t// Block 0x2e, offset 0xb80\n\t0xb80: 0x06a6, 0xb81: 0x1a4a, 0xb82: 0x1a79, 0xb83: 0x1aa9, 0xb84: 0x1ad1, 0xb85: 0x0040,\n\t0xb86: 0x0008, 0xb87: 0x1af9, 0xb88: 0x06c5, 0xb89: 0x1471, 0xb8a: 0x06dd, 0xb8b: 0x1489,\n\t0xb8c: 0x1aa9, 0xb8d: 0x1b2a, 0xb8e: 0x1b5a, 0xb8f: 0x1b8a, 0xb90: 0x0008, 0xb91: 0x0008,\n\t0xb92: 0x0008, 0xb93: 0x1bb9, 0xb94: 0x0040, 0xb95: 0x0040, 0xb96: 0x0008, 0xb97: 0x0008,\n\t0xb98: 0xe045, 0xb99: 0xe045, 0xb9a: 0x06f5, 0xb9b: 0x14a1, 0xb9c: 0x0040, 0xb9d: 0x1bd2,\n\t0xb9e: 0x1c02, 0xb9f: 0x1c32, 0xba0: 0x0008, 0xba1: 0x0008, 0xba2: 0x0008, 0xba3: 0x1c61,\n\t0xba4: 0x0008, 0xba5: 0x0008, 0xba6: 0x0008, 0xba7: 0x0008, 0xba8: 0xe045, 0xba9: 0xe045,\n\t0xbaa: 0x070d, 0xbab: 0x14d1, 0xbac: 0xe04d, 0xbad: 0x1c7a, 0xbae: 0x03d2, 0xbaf: 0x1caa,\n\t0xbb0: 0x0040, 0xbb1: 0x0040, 0xbb2: 0x1cb9, 0xbb3: 0x1ce9, 0xbb4: 0x1d11, 0xbb5: 0x0040,\n\t0xbb6: 0x0008, 0xbb7: 0x1d39, 0xbb8: 0x0725, 0xbb9: 0x14b9, 0xbba: 0x0515, 0xbbb: 0x14e9,\n\t0xbbc: 0x1ce9, 0xbbd: 0x073e, 0xbbe: 0x075e, 0xbbf: 0x0040,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc0: 0x000a, 0xbc1: 0x000a, 0xbc2: 0x000a, 0xbc3: 0x000a, 0xbc4: 0x000a, 0xbc5: 0x000a,\n\t0xbc6: 0x000a, 0xbc7: 0x000a, 0xbc8: 0x000a, 0xbc9: 0x000a, 0xbca: 0x000a, 0xbcb: 0x03c0,\n\t0xbcc: 0x0003, 0xbcd: 0x0003, 0xbce: 0x0340, 0xbcf: 0x0b40, 0xbd0: 0x0018, 0xbd1: 0xe00d,\n\t0xbd2: 0x0018, 0xbd3: 0x0018, 0xbd4: 0x0018, 0xbd5: 0x0018, 0xbd6: 0x0018, 0xbd7: 0x077e,\n\t0xbd8: 0x0018, 0xbd9: 0x0018, 0xbda: 0x0018, 0xbdb: 0x0018, 0xbdc: 0x0018, 0xbdd: 0x0018,\n\t0xbde: 0x0018, 0xbdf: 0x0018, 0xbe0: 0x0018, 0xbe1: 0x0018, 0xbe2: 0x0018, 0xbe3: 0x0018,\n\t0xbe4: 0x0040, 0xbe5: 0x0040, 0xbe6: 0x0040, 0xbe7: 0x0018, 0xbe8: 0x0040, 0xbe9: 0x0040,\n\t0xbea: 0x0340, 0xbeb: 0x0340, 0xbec: 0x0340, 0xbed: 0x0340, 0xbee: 0x0340, 0xbef: 0x000a,\n\t0xbf0: 0x0018, 0xbf1: 0x0018, 0xbf2: 0x0018, 0xbf3: 0x1d69, 0xbf4: 0x1da1, 0xbf5: 0x0018,\n\t0xbf6: 0x1df1, 0xbf7: 0x1e29, 0xbf8: 0x0018, 0xbf9: 0x0018, 0xbfa: 0x0018, 0xbfb: 0x0018,\n\t0xbfc: 0x1e7a, 0xbfd: 0x0018, 0xbfe: 0x079e, 0xbff: 0x0018,\n\t// Block 0x30, offset 0xc00\n\t0xc00: 0x0018, 0xc01: 0x0018, 0xc02: 0x0018, 0xc03: 0x0018, 0xc04: 0x0018, 0xc05: 0x0018,\n\t0xc06: 0x0018, 0xc07: 0x1e92, 0xc08: 0x1eaa, 0xc09: 0x1ec2, 0xc0a: 0x0018, 0xc0b: 0x0018,\n\t0xc0c: 0x0018, 0xc0d: 0x0018, 0xc0e: 0x0018, 0xc0f: 0x0018, 0xc10: 0x0018, 0xc11: 0x0018,\n\t0xc12: 0x0018, 0xc13: 0x0018, 0xc14: 0x0018, 0xc15: 0x0018, 0xc16: 0x0018, 0xc17: 0x1ed9,\n\t0xc18: 0x0018, 0xc19: 0x0018, 0xc1a: 0x0018, 0xc1b: 0x0018, 0xc1c: 0x0018, 0xc1d: 0x0018,\n\t0xc1e: 0x0018, 0xc1f: 0x000a, 0xc20: 0x03c0, 0xc21: 0x0340, 0xc22: 0x0340, 0xc23: 0x0340,\n\t0xc24: 0x03c0, 0xc25: 0x0040, 0xc26: 0x0040, 0xc27: 0x0040, 0xc28: 0x0040, 0xc29: 0x0040,\n\t0xc2a: 0x0340, 0xc2b: 0x0340, 0xc2c: 0x0340, 0xc2d: 0x0340, 0xc2e: 0x0340, 0xc2f: 0x0340,\n\t0xc30: 0x1f41, 0xc31: 0x0f41, 0xc32: 0x0040, 0xc33: 0x0040, 0xc34: 0x1f51, 0xc35: 0x1f61,\n\t0xc36: 0x1f71, 0xc37: 0x1f81, 0xc38: 0x1f91, 0xc39: 0x1fa1, 0xc3a: 0x1fb2, 0xc3b: 0x07bd,\n\t0xc3c: 0x1fc2, 0xc3d: 0x1fd2, 0xc3e: 0x1fe2, 0xc3f: 0x0f71,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x1f41, 0xc41: 0x00c9, 0xc42: 0x0069, 0xc43: 0x0079, 0xc44: 0x1f51, 0xc45: 0x1f61,\n\t0xc46: 0x1f71, 0xc47: 0x1f81, 0xc48: 0x1f91, 0xc49: 0x1fa1, 0xc4a: 0x1fb2, 0xc4b: 0x07d5,\n\t0xc4c: 0x1fc2, 0xc4d: 0x1fd2, 0xc4e: 0x1fe2, 0xc4f: 0x0040, 0xc50: 0x0039, 0xc51: 0x0f09,\n\t0xc52: 0x00d9, 0xc53: 0x0369, 0xc54: 0x0ff9, 0xc55: 0x0249, 0xc56: 0x0f51, 0xc57: 0x0359,\n\t0xc58: 0x0f61, 0xc59: 0x0f71, 0xc5a: 0x0f99, 0xc5b: 0x01d9, 0xc5c: 0x0fa9, 0xc5d: 0x0040,\n\t0xc5e: 0x0040, 0xc5f: 0x0040, 0xc60: 0x0018, 0xc61: 0x0018, 0xc62: 0x0018, 0xc63: 0x0018,\n\t0xc64: 0x0018, 0xc65: 0x0018, 0xc66: 0x0018, 0xc67: 0x0018, 0xc68: 0x1ff1, 0xc69: 0x0018,\n\t0xc6a: 0x0018, 0xc6b: 0x0018, 0xc6c: 0x0018, 0xc6d: 0x0018, 0xc6e: 0x0018, 0xc6f: 0x0018,\n\t0xc70: 0x0018, 0xc71: 0x0018, 0xc72: 0x0018, 0xc73: 0x0018, 0xc74: 0x0018, 0xc75: 0x0018,\n\t0xc76: 0x0018, 0xc77: 0x0018, 0xc78: 0x0018, 0xc79: 0x0018, 0xc7a: 0x0018, 0xc7b: 0x0018,\n\t0xc7c: 0x0018, 0xc7d: 0x0018, 0xc7e: 0x0018, 0xc7f: 0x0018,\n\t// Block 0x32, offset 0xc80\n\t0xc80: 0x07ee, 0xc81: 0x080e, 0xc82: 0x1159, 0xc83: 0x082d, 0xc84: 0x0018, 0xc85: 0x084e,\n\t0xc86: 0x086e, 0xc87: 0x1011, 0xc88: 0x0018, 0xc89: 0x088d, 0xc8a: 0x0f31, 0xc8b: 0x0249,\n\t0xc8c: 0x0249, 0xc8d: 0x0249, 0xc8e: 0x0249, 0xc8f: 0x2009, 0xc90: 0x0f41, 0xc91: 0x0f41,\n\t0xc92: 0x0359, 0xc93: 0x0359, 0xc94: 0x0018, 0xc95: 0x0f71, 0xc96: 0x2021, 0xc97: 0x0018,\n\t0xc98: 0x0018, 0xc99: 0x0f99, 0xc9a: 0x2039, 0xc9b: 0x0269, 0xc9c: 0x0269, 0xc9d: 0x0269,\n\t0xc9e: 0x0018, 0xc9f: 0x0018, 0xca0: 0x2049, 0xca1: 0x08ad, 0xca2: 0x2061, 0xca3: 0x0018,\n\t0xca4: 0x13d1, 0xca5: 0x0018, 0xca6: 0x2079, 0xca7: 0x0018, 0xca8: 0x13d1, 0xca9: 0x0018,\n\t0xcaa: 0x0f51, 0xcab: 0x2091, 0xcac: 0x0ee9, 0xcad: 0x1159, 0xcae: 0x0018, 0xcaf: 0x0f09,\n\t0xcb0: 0x0f09, 0xcb1: 0x1199, 0xcb2: 0x0040, 0xcb3: 0x0f61, 0xcb4: 0x00d9, 0xcb5: 0x20a9,\n\t0xcb6: 0x20c1, 0xcb7: 0x20d9, 0xcb8: 0x20f1, 0xcb9: 0x0f41, 0xcba: 0x0018, 0xcbb: 0x08cd,\n\t0xcbc: 0x2109, 0xcbd: 0x10b1, 0xcbe: 0x10b1, 0xcbf: 0x2109,\n\t// Block 0x33, offset 0xcc0\n\t0xcc0: 0x08ed, 0xcc1: 0x0018, 0xcc2: 0x0018, 0xcc3: 0x0018, 0xcc4: 0x0018, 0xcc5: 0x0ef9,\n\t0xcc6: 0x0ef9, 0xcc7: 0x0f09, 0xcc8: 0x0f41, 0xcc9: 0x0259, 0xcca: 0x0018, 0xccb: 0x0018,\n\t0xccc: 0x0018, 0xccd: 0x0018, 0xcce: 0x0008, 0xccf: 0x0018, 0xcd0: 0x2121, 0xcd1: 0x2151,\n\t0xcd2: 0x2181, 0xcd3: 0x21b9, 0xcd4: 0x21e9, 0xcd5: 0x2219, 0xcd6: 0x2249, 0xcd7: 0x2279,\n\t0xcd8: 0x22a9, 0xcd9: 0x22d9, 0xcda: 0x2309, 0xcdb: 0x2339, 0xcdc: 0x2369, 0xcdd: 0x2399,\n\t0xcde: 0x23c9, 0xcdf: 0x23f9, 0xce0: 0x0f41, 0xce1: 0x2421, 0xce2: 0x0905, 0xce3: 0x2439,\n\t0xce4: 0x1089, 0xce5: 0x2451, 0xce6: 0x0925, 0xce7: 0x2469, 0xce8: 0x2491, 0xce9: 0x0369,\n\t0xcea: 0x24a9, 0xceb: 0x0945, 0xcec: 0x0359, 0xced: 0x1159, 0xcee: 0x0ef9, 0xcef: 0x0f61,\n\t0xcf0: 0x0f41, 0xcf1: 0x2421, 0xcf2: 0x0965, 0xcf3: 0x2439, 0xcf4: 0x1089, 0xcf5: 0x2451,\n\t0xcf6: 0x0985, 0xcf7: 0x2469, 0xcf8: 0x2491, 0xcf9: 0x0369, 0xcfa: 0x24a9, 0xcfb: 0x09a5,\n\t0xcfc: 0x0359, 0xcfd: 0x1159, 0xcfe: 0x0ef9, 0xcff: 0x0f61,\n\t// Block 0x34, offset 0xd00\n\t0xd00: 0x0018, 0xd01: 0x0018, 0xd02: 0x0018, 0xd03: 0x0018, 0xd04: 0x0018, 0xd05: 0x0018,\n\t0xd06: 0x0018, 0xd07: 0x0018, 0xd08: 0x0018, 0xd09: 0x0018, 0xd0a: 0x0018, 0xd0b: 0x0040,\n\t0xd0c: 0x0040, 0xd0d: 0x0040, 0xd0e: 0x0040, 0xd0f: 0x0040, 0xd10: 0x0040, 0xd11: 0x0040,\n\t0xd12: 0x0040, 0xd13: 0x0040, 0xd14: 0x0040, 0xd15: 0x0040, 0xd16: 0x0040, 0xd17: 0x0040,\n\t0xd18: 0x0040, 0xd19: 0x0040, 0xd1a: 0x0040, 0xd1b: 0x0040, 0xd1c: 0x0040, 0xd1d: 0x0040,\n\t0xd1e: 0x0040, 0xd1f: 0x0040, 0xd20: 0x00c9, 0xd21: 0x0069, 0xd22: 0x0079, 0xd23: 0x1f51,\n\t0xd24: 0x1f61, 0xd25: 0x1f71, 0xd26: 0x1f81, 0xd27: 0x1f91, 0xd28: 0x1fa1, 0xd29: 0x2601,\n\t0xd2a: 0x2619, 0xd2b: 0x2631, 0xd2c: 0x2649, 0xd2d: 0x2661, 0xd2e: 0x2679, 0xd2f: 0x2691,\n\t0xd30: 0x26a9, 0xd31: 0x26c1, 0xd32: 0x26d9, 0xd33: 0x26f1, 0xd34: 0x0a06, 0xd35: 0x0a26,\n\t0xd36: 0x0a46, 0xd37: 0x0a66, 0xd38: 0x0a86, 0xd39: 0x0aa6, 0xd3a: 0x0ac6, 0xd3b: 0x0ae6,\n\t0xd3c: 0x0b06, 0xd3d: 0x270a, 0xd3e: 0x2732, 0xd3f: 0x275a,\n\t// Block 0x35, offset 0xd40\n\t0xd40: 0x2782, 0xd41: 0x27aa, 0xd42: 0x27d2, 0xd43: 0x27fa, 0xd44: 0x2822, 0xd45: 0x284a,\n\t0xd46: 0x2872, 0xd47: 0x289a, 0xd48: 0x0040, 0xd49: 0x0040, 0xd4a: 0x0040, 0xd4b: 0x0040,\n\t0xd4c: 0x0040, 0xd4d: 0x0040, 0xd4e: 0x0040, 0xd4f: 0x0040, 0xd50: 0x0040, 0xd51: 0x0040,\n\t0xd52: 0x0040, 0xd53: 0x0040, 0xd54: 0x0040, 0xd55: 0x0040, 0xd56: 0x0040, 0xd57: 0x0040,\n\t0xd58: 0x0040, 0xd59: 0x0040, 0xd5a: 0x0040, 0xd5b: 0x0040, 0xd5c: 0x0b26, 0xd5d: 0x0b46,\n\t0xd5e: 0x0b66, 0xd5f: 0x0b86, 0xd60: 0x0ba6, 0xd61: 0x0bc6, 0xd62: 0x0be6, 0xd63: 0x0c06,\n\t0xd64: 0x0c26, 0xd65: 0x0c46, 0xd66: 0x0c66, 0xd67: 0x0c86, 0xd68: 0x0ca6, 0xd69: 0x0cc6,\n\t0xd6a: 0x0ce6, 0xd6b: 0x0d06, 0xd6c: 0x0d26, 0xd6d: 0x0d46, 0xd6e: 0x0d66, 0xd6f: 0x0d86,\n\t0xd70: 0x0da6, 0xd71: 0x0dc6, 0xd72: 0x0de6, 0xd73: 0x0e06, 0xd74: 0x0e26, 0xd75: 0x0e46,\n\t0xd76: 0x0039, 0xd77: 0x0ee9, 0xd78: 0x1159, 0xd79: 0x0ef9, 0xd7a: 0x0f09, 0xd7b: 0x1199,\n\t0xd7c: 0x0f31, 0xd7d: 0x0249, 0xd7e: 0x0f41, 0xd7f: 0x0259,\n\t// Block 0x36, offset 0xd80\n\t0xd80: 0x0f51, 0xd81: 0x0359, 0xd82: 0x0f61, 0xd83: 0x0f71, 0xd84: 0x00d9, 0xd85: 0x0f99,\n\t0xd86: 0x2039, 0xd87: 0x0269, 0xd88: 0x01d9, 0xd89: 0x0fa9, 0xd8a: 0x0fb9, 0xd8b: 0x1089,\n\t0xd8c: 0x0279, 0xd8d: 0x0369, 0xd8e: 0x0289, 0xd8f: 0x13d1, 0xd90: 0x0039, 0xd91: 0x0ee9,\n\t0xd92: 0x1159, 0xd93: 0x0ef9, 0xd94: 0x0f09, 0xd95: 0x1199, 0xd96: 0x0f31, 0xd97: 0x0249,\n\t0xd98: 0x0f41, 0xd99: 0x0259, 0xd9a: 0x0f51, 0xd9b: 0x0359, 0xd9c: 0x0f61, 0xd9d: 0x0f71,\n\t0xd9e: 0x00d9, 0xd9f: 0x0f99, 0xda0: 0x2039, 0xda1: 0x0269, 0xda2: 0x01d9, 0xda3: 0x0fa9,\n\t0xda4: 0x0fb9, 0xda5: 0x1089, 0xda6: 0x0279, 0xda7: 0x0369, 0xda8: 0x0289, 0xda9: 0x13d1,\n\t0xdaa: 0x1f41, 0xdab: 0x0018, 0xdac: 0x0018, 0xdad: 0x0018, 0xdae: 0x0018, 0xdaf: 0x0018,\n\t0xdb0: 0x0018, 0xdb1: 0x0018, 0xdb2: 0x0018, 0xdb3: 0x0018, 0xdb4: 0x0018, 0xdb5: 0x0018,\n\t0xdb6: 0x0018, 0xdb7: 0x0018, 0xdb8: 0x0018, 0xdb9: 0x0018, 0xdba: 0x0018, 0xdbb: 0x0018,\n\t0xdbc: 0x0018, 0xdbd: 0x0018, 0xdbe: 0x0018, 0xdbf: 0x0018,\n\t// Block 0x37, offset 0xdc0\n\t0xdc0: 0x0008, 0xdc1: 0x0008, 0xdc2: 0x0008, 0xdc3: 0x0008, 0xdc4: 0x0008, 0xdc5: 0x0008,\n\t0xdc6: 0x0008, 0xdc7: 0x0008, 0xdc8: 0x0008, 0xdc9: 0x0008, 0xdca: 0x0008, 0xdcb: 0x0008,\n\t0xdcc: 0x0008, 0xdcd: 0x0008, 0xdce: 0x0008, 0xdcf: 0x0008, 0xdd0: 0x0008, 0xdd1: 0x0008,\n\t0xdd2: 0x0008, 0xdd3: 0x0008, 0xdd4: 0x0008, 0xdd5: 0x0008, 0xdd6: 0x0008, 0xdd7: 0x0008,\n\t0xdd8: 0x0008, 0xdd9: 0x0008, 0xdda: 0x0008, 0xddb: 0x0008, 0xddc: 0x0008, 0xddd: 0x0008,\n\t0xdde: 0x0008, 0xddf: 0x0040, 0xde0: 0xe00d, 0xde1: 0x0008, 0xde2: 0x2971, 0xde3: 0x0ebd,\n\t0xde4: 0x2989, 0xde5: 0x0008, 0xde6: 0x0008, 0xde7: 0xe07d, 0xde8: 0x0008, 0xde9: 0xe01d,\n\t0xdea: 0x0008, 0xdeb: 0xe03d, 0xdec: 0x0008, 0xded: 0x0fe1, 0xdee: 0x1281, 0xdef: 0x0fc9,\n\t0xdf0: 0x1141, 0xdf1: 0x0008, 0xdf2: 0xe00d, 0xdf3: 0x0008, 0xdf4: 0x0008, 0xdf5: 0xe01d,\n\t0xdf6: 0x0008, 0xdf7: 0x0008, 0xdf8: 0x0008, 0xdf9: 0x0008, 0xdfa: 0x0008, 0xdfb: 0x0008,\n\t0xdfc: 0x0259, 0xdfd: 0x1089, 0xdfe: 0x29a1, 0xdff: 0x29b9,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0xe00d, 0xe01: 0x0008, 0xe02: 0xe00d, 0xe03: 0x0008, 0xe04: 0xe00d, 0xe05: 0x0008,\n\t0xe06: 0xe00d, 0xe07: 0x0008, 0xe08: 0xe00d, 0xe09: 0x0008, 0xe0a: 0xe00d, 0xe0b: 0x0008,\n\t0xe0c: 0xe00d, 0xe0d: 0x0008, 0xe0e: 0xe00d, 0xe0f: 0x0008, 0xe10: 0xe00d, 0xe11: 0x0008,\n\t0xe12: 0xe00d, 0xe13: 0x0008, 0xe14: 0xe00d, 0xe15: 0x0008, 0xe16: 0xe00d, 0xe17: 0x0008,\n\t0xe18: 0xe00d, 0xe19: 0x0008, 0xe1a: 0xe00d, 0xe1b: 0x0008, 0xe1c: 0xe00d, 0xe1d: 0x0008,\n\t0xe1e: 0xe00d, 0xe1f: 0x0008, 0xe20: 0xe00d, 0xe21: 0x0008, 0xe22: 0xe00d, 0xe23: 0x0008,\n\t0xe24: 0x0008, 0xe25: 0x0018, 0xe26: 0x0018, 0xe27: 0x0018, 0xe28: 0x0018, 0xe29: 0x0018,\n\t0xe2a: 0x0018, 0xe2b: 0xe03d, 0xe2c: 0x0008, 0xe2d: 0xe01d, 0xe2e: 0x0008, 0xe2f: 0x3308,\n\t0xe30: 0x3308, 0xe31: 0x3308, 0xe32: 0xe00d, 0xe33: 0x0008, 0xe34: 0x0040, 0xe35: 0x0040,\n\t0xe36: 0x0040, 0xe37: 0x0040, 0xe38: 0x0040, 0xe39: 0x0018, 0xe3a: 0x0018, 0xe3b: 0x0018,\n\t0xe3c: 0x0018, 0xe3d: 0x0018, 0xe3e: 0x0018, 0xe3f: 0x0018,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x26fd, 0xe41: 0x271d, 0xe42: 0x273d, 0xe43: 0x275d, 0xe44: 0x277d, 0xe45: 0x279d,\n\t0xe46: 0x27bd, 0xe47: 0x27dd, 0xe48: 0x27fd, 0xe49: 0x281d, 0xe4a: 0x283d, 0xe4b: 0x285d,\n\t0xe4c: 0x287d, 0xe4d: 0x289d, 0xe4e: 0x28bd, 0xe4f: 0x28dd, 0xe50: 0x28fd, 0xe51: 0x291d,\n\t0xe52: 0x293d, 0xe53: 0x295d, 0xe54: 0x297d, 0xe55: 0x299d, 0xe56: 0x0040, 0xe57: 0x0040,\n\t0xe58: 0x0040, 0xe59: 0x0040, 0xe5a: 0x0040, 0xe5b: 0x0040, 0xe5c: 0x0040, 0xe5d: 0x0040,\n\t0xe5e: 0x0040, 0xe5f: 0x0040, 0xe60: 0x0040, 0xe61: 0x0040, 0xe62: 0x0040, 0xe63: 0x0040,\n\t0xe64: 0x0040, 0xe65: 0x0040, 0xe66: 0x0040, 0xe67: 0x0040, 0xe68: 0x0040, 0xe69: 0x0040,\n\t0xe6a: 0x0040, 0xe6b: 0x0040, 0xe6c: 0x0040, 0xe6d: 0x0040, 0xe6e: 0x0040, 0xe6f: 0x0040,\n\t0xe70: 0x0040, 0xe71: 0x0040, 0xe72: 0x0040, 0xe73: 0x0040, 0xe74: 0x0040, 0xe75: 0x0040,\n\t0xe76: 0x0040, 0xe77: 0x0040, 0xe78: 0x0040, 0xe79: 0x0040, 0xe7a: 0x0040, 0xe7b: 0x0040,\n\t0xe7c: 0x0040, 0xe7d: 0x0040, 0xe7e: 0x0040, 0xe7f: 0x0040,\n\t// Block 0x3a, offset 0xe80\n\t0xe80: 0x000a, 0xe81: 0x0018, 0xe82: 0x29d1, 0xe83: 0x0018, 0xe84: 0x0018, 0xe85: 0x0008,\n\t0xe86: 0x0008, 0xe87: 0x0008, 0xe88: 0x0018, 0xe89: 0x0018, 0xe8a: 0x0018, 0xe8b: 0x0018,\n\t0xe8c: 0x0018, 0xe8d: 0x0018, 0xe8e: 0x0018, 0xe8f: 0x0018, 0xe90: 0x0018, 0xe91: 0x0018,\n\t0xe92: 0x0018, 0xe93: 0x0018, 0xe94: 0x0018, 0xe95: 0x0018, 0xe96: 0x0018, 0xe97: 0x0018,\n\t0xe98: 0x0018, 0xe99: 0x0018, 0xe9a: 0x0018, 0xe9b: 0x0018, 0xe9c: 0x0018, 0xe9d: 0x0018,\n\t0xe9e: 0x0018, 0xe9f: 0x0018, 0xea0: 0x0018, 0xea1: 0x0018, 0xea2: 0x0018, 0xea3: 0x0018,\n\t0xea4: 0x0018, 0xea5: 0x0018, 0xea6: 0x0018, 0xea7: 0x0018, 0xea8: 0x0018, 0xea9: 0x0018,\n\t0xeaa: 0x3308, 0xeab: 0x3308, 0xeac: 0x3308, 0xead: 0x3308, 0xeae: 0x3018, 0xeaf: 0x3018,\n\t0xeb0: 0x0018, 0xeb1: 0x0018, 0xeb2: 0x0018, 0xeb3: 0x0018, 0xeb4: 0x0018, 0xeb5: 0x0018,\n\t0xeb6: 0xe125, 0xeb7: 0x0018, 0xeb8: 0x29bd, 0xeb9: 0x29dd, 0xeba: 0x29fd, 0xebb: 0x0018,\n\t0xebc: 0x0008, 0xebd: 0x0018, 0xebe: 0x0018, 0xebf: 0x0018,\n\t// Block 0x3b, offset 0xec0\n\t0xec0: 0x2b3d, 0xec1: 0x2b5d, 0xec2: 0x2b7d, 0xec3: 0x2b9d, 0xec4: 0x2bbd, 0xec5: 0x2bdd,\n\t0xec6: 0x2bdd, 0xec7: 0x2bdd, 0xec8: 0x2bfd, 0xec9: 0x2bfd, 0xeca: 0x2bfd, 0xecb: 0x2bfd,\n\t0xecc: 0x2c1d, 0xecd: 0x2c1d, 0xece: 0x2c1d, 0xecf: 0x2c3d, 0xed0: 0x2c5d, 0xed1: 0x2c5d,\n\t0xed2: 0x2a7d, 0xed3: 0x2a7d, 0xed4: 0x2c5d, 0xed5: 0x2c5d, 0xed6: 0x2c7d, 0xed7: 0x2c7d,\n\t0xed8: 0x2c5d, 0xed9: 0x2c5d, 0xeda: 0x2a7d, 0xedb: 0x2a7d, 0xedc: 0x2c5d, 0xedd: 0x2c5d,\n\t0xede: 0x2c3d, 0xedf: 0x2c3d, 0xee0: 0x2c9d, 0xee1: 0x2c9d, 0xee2: 0x2cbd, 0xee3: 0x2cbd,\n\t0xee4: 0x0040, 0xee5: 0x2cdd, 0xee6: 0x2cfd, 0xee7: 0x2d1d, 0xee8: 0x2d1d, 0xee9: 0x2d3d,\n\t0xeea: 0x2d5d, 0xeeb: 0x2d7d, 0xeec: 0x2d9d, 0xeed: 0x2dbd, 0xeee: 0x2ddd, 0xeef: 0x2dfd,\n\t0xef0: 0x2e1d, 0xef1: 0x2e3d, 0xef2: 0x2e3d, 0xef3: 0x2e5d, 0xef4: 0x2e7d, 0xef5: 0x2e7d,\n\t0xef6: 0x2e9d, 0xef7: 0x2ebd, 0xef8: 0x2e5d, 0xef9: 0x2edd, 0xefa: 0x2efd, 0xefb: 0x2edd,\n\t0xefc: 0x2e5d, 0xefd: 0x2f1d, 0xefe: 0x2f3d, 0xeff: 0x2f5d,\n\t// Block 0x3c, offset 0xf00\n\t0xf00: 0x2f7d, 0xf01: 0x2f9d, 0xf02: 0x2cfd, 0xf03: 0x2cdd, 0xf04: 0x2fbd, 0xf05: 0x2fdd,\n\t0xf06: 0x2ffd, 0xf07: 0x301d, 0xf08: 0x303d, 0xf09: 0x305d, 0xf0a: 0x307d, 0xf0b: 0x309d,\n\t0xf0c: 0x30bd, 0xf0d: 0x30dd, 0xf0e: 0x30fd, 0xf0f: 0x0040, 0xf10: 0x0018, 0xf11: 0x0018,\n\t0xf12: 0x311d, 0xf13: 0x313d, 0xf14: 0x315d, 0xf15: 0x317d, 0xf16: 0x319d, 0xf17: 0x31bd,\n\t0xf18: 0x31dd, 0xf19: 0x31fd, 0xf1a: 0x321d, 0xf1b: 0x323d, 0xf1c: 0x315d, 0xf1d: 0x325d,\n\t0xf1e: 0x327d, 0xf1f: 0x329d, 0xf20: 0x0008, 0xf21: 0x0008, 0xf22: 0x0008, 0xf23: 0x0008,\n\t0xf24: 0x0008, 0xf25: 0x0008, 0xf26: 0x0008, 0xf27: 0x0008, 0xf28: 0x0008, 0xf29: 0x0008,\n\t0xf2a: 0x0008, 0xf2b: 0x0008, 0xf2c: 0x0008, 0xf2d: 0x0008, 0xf2e: 0x0008, 0xf2f: 0x0008,\n\t0xf30: 0x0008, 0xf31: 0x0008, 0xf32: 0x0008, 0xf33: 0x0008, 0xf34: 0x0008, 0xf35: 0x0008,\n\t0xf36: 0x0008, 0xf37: 0x0008, 0xf38: 0x0008, 0xf39: 0x0008, 0xf3a: 0x0008, 0xf3b: 0x0040,\n\t0xf3c: 0x0040, 0xf3d: 0x0040, 0xf3e: 0x0040, 0xf3f: 0x0040,\n\t// Block 0x3d, offset 0xf40\n\t0xf40: 0x36a2, 0xf41: 0x36d2, 0xf42: 0x3702, 0xf43: 0x3732, 0xf44: 0x32bd, 0xf45: 0x32dd,\n\t0xf46: 0x32fd, 0xf47: 0x331d, 0xf48: 0x0018, 0xf49: 0x0018, 0xf4a: 0x0018, 0xf4b: 0x0018,\n\t0xf4c: 0x0018, 0xf4d: 0x0018, 0xf4e: 0x0018, 0xf4f: 0x0018, 0xf50: 0x333d, 0xf51: 0x3761,\n\t0xf52: 0x3779, 0xf53: 0x3791, 0xf54: 0x37a9, 0xf55: 0x37c1, 0xf56: 0x37d9, 0xf57: 0x37f1,\n\t0xf58: 0x3809, 0xf59: 0x3821, 0xf5a: 0x3839, 0xf5b: 0x3851, 0xf5c: 0x3869, 0xf5d: 0x3881,\n\t0xf5e: 0x3899, 0xf5f: 0x38b1, 0xf60: 0x335d, 0xf61: 0x337d, 0xf62: 0x339d, 0xf63: 0x33bd,\n\t0xf64: 0x33dd, 0xf65: 0x33dd, 0xf66: 0x33fd, 0xf67: 0x341d, 0xf68: 0x343d, 0xf69: 0x345d,\n\t0xf6a: 0x347d, 0xf6b: 0x349d, 0xf6c: 0x34bd, 0xf6d: 0x34dd, 0xf6e: 0x34fd, 0xf6f: 0x351d,\n\t0xf70: 0x353d, 0xf71: 0x355d, 0xf72: 0x357d, 0xf73: 0x359d, 0xf74: 0x35bd, 0xf75: 0x35dd,\n\t0xf76: 0x35fd, 0xf77: 0x361d, 0xf78: 0x363d, 0xf79: 0x365d, 0xf7a: 0x367d, 0xf7b: 0x369d,\n\t0xf7c: 0x38c9, 0xf7d: 0x3901, 0xf7e: 0x36bd, 0xf7f: 0x0018,\n\t// Block 0x3e, offset 0xf80\n\t0xf80: 0x36dd, 0xf81: 0x36fd, 0xf82: 0x371d, 0xf83: 0x373d, 0xf84: 0x375d, 0xf85: 0x377d,\n\t0xf86: 0x379d, 0xf87: 0x37bd, 0xf88: 0x37dd, 0xf89: 0x37fd, 0xf8a: 0x381d, 0xf8b: 0x383d,\n\t0xf8c: 0x385d, 0xf8d: 0x387d, 0xf8e: 0x389d, 0xf8f: 0x38bd, 0xf90: 0x38dd, 0xf91: 0x38fd,\n\t0xf92: 0x391d, 0xf93: 0x393d, 0xf94: 0x395d, 0xf95: 0x397d, 0xf96: 0x399d, 0xf97: 0x39bd,\n\t0xf98: 0x39dd, 0xf99: 0x39fd, 0xf9a: 0x3a1d, 0xf9b: 0x3a3d, 0xf9c: 0x3a5d, 0xf9d: 0x3a7d,\n\t0xf9e: 0x3a9d, 0xf9f: 0x3abd, 0xfa0: 0x3add, 0xfa1: 0x3afd, 0xfa2: 0x3b1d, 0xfa3: 0x3b3d,\n\t0xfa4: 0x3b5d, 0xfa5: 0x3b7d, 0xfa6: 0x127d, 0xfa7: 0x3b9d, 0xfa8: 0x3bbd, 0xfa9: 0x3bdd,\n\t0xfaa: 0x3bfd, 0xfab: 0x3c1d, 0xfac: 0x3c3d, 0xfad: 0x3c5d, 0xfae: 0x239d, 0xfaf: 0x3c7d,\n\t0xfb0: 0x3c9d, 0xfb1: 0x3939, 0xfb2: 0x3951, 0xfb3: 0x3969, 0xfb4: 0x3981, 0xfb5: 0x3999,\n\t0xfb6: 0x39b1, 0xfb7: 0x39c9, 0xfb8: 0x39e1, 0xfb9: 0x39f9, 0xfba: 0x3a11, 0xfbb: 0x3a29,\n\t0xfbc: 0x3a41, 0xfbd: 0x3a59, 0xfbe: 0x3a71, 0xfbf: 0x3a89,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc0: 0x3aa1, 0xfc1: 0x3ac9, 0xfc2: 0x3af1, 0xfc3: 0x3b19, 0xfc4: 0x3b41, 0xfc5: 0x3b69,\n\t0xfc6: 0x3b91, 0xfc7: 0x3bb9, 0xfc8: 0x3be1, 0xfc9: 0x3c09, 0xfca: 0x3c39, 0xfcb: 0x3c69,\n\t0xfcc: 0x3c99, 0xfcd: 0x3cbd, 0xfce: 0x3cb1, 0xfcf: 0x3cdd, 0xfd0: 0x3cfd, 0xfd1: 0x3d15,\n\t0xfd2: 0x3d2d, 0xfd3: 0x3d45, 0xfd4: 0x3d5d, 0xfd5: 0x3d5d, 0xfd6: 0x3d45, 0xfd7: 0x3d75,\n\t0xfd8: 0x07bd, 0xfd9: 0x3d8d, 0xfda: 0x3da5, 0xfdb: 0x3dbd, 0xfdc: 0x3dd5, 0xfdd: 0x3ded,\n\t0xfde: 0x3e05, 0xfdf: 0x3e1d, 0xfe0: 0x3e35, 0xfe1: 0x3e4d, 0xfe2: 0x3e65, 0xfe3: 0x3e7d,\n\t0xfe4: 0x3e95, 0xfe5: 0x3e95, 0xfe6: 0x3ead, 0xfe7: 0x3ead, 0xfe8: 0x3ec5, 0xfe9: 0x3ec5,\n\t0xfea: 0x3edd, 0xfeb: 0x3ef5, 0xfec: 0x3f0d, 0xfed: 0x3f25, 0xfee: 0x3f3d, 0xfef: 0x3f3d,\n\t0xff0: 0x3f55, 0xff1: 0x3f55, 0xff2: 0x3f55, 0xff3: 0x3f6d, 0xff4: 0x3f85, 0xff5: 0x3f9d,\n\t0xff6: 0x3fb5, 0xff7: 0x3f9d, 0xff8: 0x3fcd, 0xff9: 0x3fe5, 0xffa: 0x3f6d, 0xffb: 0x3ffd,\n\t0xffc: 0x4015, 0xffd: 0x4015, 0xffe: 0x4015, 0xfff: 0x0040,\n\t// Block 0x40, offset 0x1000\n\t0x1000: 0x3cc9, 0x1001: 0x3d31, 0x1002: 0x3d99, 0x1003: 0x3e01, 0x1004: 0x3e51, 0x1005: 0x3eb9,\n\t0x1006: 0x3f09, 0x1007: 0x3f59, 0x1008: 0x3fd9, 0x1009: 0x4041, 0x100a: 0x4091, 0x100b: 0x40e1,\n\t0x100c: 0x4131, 0x100d: 0x4199, 0x100e: 0x4201, 0x100f: 0x4251, 0x1010: 0x42a1, 0x1011: 0x42d9,\n\t0x1012: 0x4329, 0x1013: 0x4391, 0x1014: 0x43f9, 0x1015: 0x4431, 0x1016: 0x44b1, 0x1017: 0x4549,\n\t0x1018: 0x45c9, 0x1019: 0x4619, 0x101a: 0x4699, 0x101b: 0x4719, 0x101c: 0x4781, 0x101d: 0x47d1,\n\t0x101e: 0x4821, 0x101f: 0x4871, 0x1020: 0x48d9, 0x1021: 0x4959, 0x1022: 0x49c1, 0x1023: 0x4a11,\n\t0x1024: 0x4a61, 0x1025: 0x4ab1, 0x1026: 0x4ae9, 0x1027: 0x4b21, 0x1028: 0x4b59, 0x1029: 0x4b91,\n\t0x102a: 0x4be1, 0x102b: 0x4c31, 0x102c: 0x4cb1, 0x102d: 0x4d01, 0x102e: 0x4d69, 0x102f: 0x4de9,\n\t0x1030: 0x4e39, 0x1031: 0x4e71, 0x1032: 0x4ea9, 0x1033: 0x4f29, 0x1034: 0x4f91, 0x1035: 0x5011,\n\t0x1036: 0x5061, 0x1037: 0x50e1, 0x1038: 0x5119, 0x1039: 0x5169, 0x103a: 0x51b9, 0x103b: 0x5209,\n\t0x103c: 0x5259, 0x103d: 0x52a9, 0x103e: 0x5311, 0x103f: 0x5361,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x5399, 0x1041: 0x53e9, 0x1042: 0x5439, 0x1043: 0x5489, 0x1044: 0x54f1, 0x1045: 0x5541,\n\t0x1046: 0x5591, 0x1047: 0x55e1, 0x1048: 0x5661, 0x1049: 0x56c9, 0x104a: 0x5701, 0x104b: 0x5781,\n\t0x104c: 0x57b9, 0x104d: 0x5821, 0x104e: 0x5889, 0x104f: 0x58d9, 0x1050: 0x5929, 0x1051: 0x5979,\n\t0x1052: 0x59e1, 0x1053: 0x5a19, 0x1054: 0x5a69, 0x1055: 0x5ad1, 0x1056: 0x5b09, 0x1057: 0x5b89,\n\t0x1058: 0x5bd9, 0x1059: 0x5c01, 0x105a: 0x5c29, 0x105b: 0x5c51, 0x105c: 0x5c79, 0x105d: 0x5ca1,\n\t0x105e: 0x5cc9, 0x105f: 0x5cf1, 0x1060: 0x5d19, 0x1061: 0x5d41, 0x1062: 0x5d69, 0x1063: 0x5d99,\n\t0x1064: 0x5dc9, 0x1065: 0x5df9, 0x1066: 0x5e29, 0x1067: 0x5e59, 0x1068: 0x5e89, 0x1069: 0x5eb9,\n\t0x106a: 0x5ee9, 0x106b: 0x5f19, 0x106c: 0x5f49, 0x106d: 0x5f79, 0x106e: 0x5fa9, 0x106f: 0x5fd9,\n\t0x1070: 0x6009, 0x1071: 0x402d, 0x1072: 0x6039, 0x1073: 0x6051, 0x1074: 0x404d, 0x1075: 0x6069,\n\t0x1076: 0x6081, 0x1077: 0x6099, 0x1078: 0x406d, 0x1079: 0x406d, 0x107a: 0x60b1, 0x107b: 0x60c9,\n\t0x107c: 0x6101, 0x107d: 0x6139, 0x107e: 0x6171, 0x107f: 0x61a9,\n\t// Block 0x42, offset 0x1080\n\t0x1080: 0x6211, 0x1081: 0x6229, 0x1082: 0x408d, 0x1083: 0x6241, 0x1084: 0x6259, 0x1085: 0x6271,\n\t0x1086: 0x6289, 0x1087: 0x62a1, 0x1088: 0x40ad, 0x1089: 0x62b9, 0x108a: 0x62e1, 0x108b: 0x62f9,\n\t0x108c: 0x40cd, 0x108d: 0x40cd, 0x108e: 0x6311, 0x108f: 0x6329, 0x1090: 0x6341, 0x1091: 0x40ed,\n\t0x1092: 0x410d, 0x1093: 0x412d, 0x1094: 0x414d, 0x1095: 0x416d, 0x1096: 0x6359, 0x1097: 0x6371,\n\t0x1098: 0x6389, 0x1099: 0x63a1, 0x109a: 0x63b9, 0x109b: 0x418d, 0x109c: 0x63d1, 0x109d: 0x63e9,\n\t0x109e: 0x6401, 0x109f: 0x41ad, 0x10a0: 0x41cd, 0x10a1: 0x6419, 0x10a2: 0x41ed, 0x10a3: 0x420d,\n\t0x10a4: 0x422d, 0x10a5: 0x6431, 0x10a6: 0x424d, 0x10a7: 0x6449, 0x10a8: 0x6479, 0x10a9: 0x6211,\n\t0x10aa: 0x426d, 0x10ab: 0x428d, 0x10ac: 0x42ad, 0x10ad: 0x42cd, 0x10ae: 0x64b1, 0x10af: 0x64f1,\n\t0x10b0: 0x6539, 0x10b1: 0x6551, 0x10b2: 0x42ed, 0x10b3: 0x6569, 0x10b4: 0x6581, 0x10b5: 0x6599,\n\t0x10b6: 0x430d, 0x10b7: 0x65b1, 0x10b8: 0x65c9, 0x10b9: 0x65b1, 0x10ba: 0x65e1, 0x10bb: 0x65f9,\n\t0x10bc: 0x432d, 0x10bd: 0x6611, 0x10be: 0x6629, 0x10bf: 0x6611,\n\t// Block 0x43, offset 0x10c0\n\t0x10c0: 0x434d, 0x10c1: 0x436d, 0x10c2: 0x0040, 0x10c3: 0x6641, 0x10c4: 0x6659, 0x10c5: 0x6671,\n\t0x10c6: 0x6689, 0x10c7: 0x0040, 0x10c8: 0x66c1, 0x10c9: 0x66d9, 0x10ca: 0x66f1, 0x10cb: 0x6709,\n\t0x10cc: 0x6721, 0x10cd: 0x6739, 0x10ce: 0x6401, 0x10cf: 0x6751, 0x10d0: 0x6769, 0x10d1: 0x6781,\n\t0x10d2: 0x438d, 0x10d3: 0x6799, 0x10d4: 0x6289, 0x10d5: 0x43ad, 0x10d6: 0x43cd, 0x10d7: 0x67b1,\n\t0x10d8: 0x0040, 0x10d9: 0x43ed, 0x10da: 0x67c9, 0x10db: 0x67e1, 0x10dc: 0x67f9, 0x10dd: 0x6811,\n\t0x10de: 0x6829, 0x10df: 0x6859, 0x10e0: 0x6889, 0x10e1: 0x68b1, 0x10e2: 0x68d9, 0x10e3: 0x6901,\n\t0x10e4: 0x6929, 0x10e5: 0x6951, 0x10e6: 0x6979, 0x10e7: 0x69a1, 0x10e8: 0x69c9, 0x10e9: 0x69f1,\n\t0x10ea: 0x6a21, 0x10eb: 0x6a51, 0x10ec: 0x6a81, 0x10ed: 0x6ab1, 0x10ee: 0x6ae1, 0x10ef: 0x6b11,\n\t0x10f0: 0x6b41, 0x10f1: 0x6b71, 0x10f2: 0x6ba1, 0x10f3: 0x6bd1, 0x10f4: 0x6c01, 0x10f5: 0x6c31,\n\t0x10f6: 0x6c61, 0x10f7: 0x6c91, 0x10f8: 0x6cc1, 0x10f9: 0x6cf1, 0x10fa: 0x6d21, 0x10fb: 0x6d51,\n\t0x10fc: 0x6d81, 0x10fd: 0x6db1, 0x10fe: 0x6de1, 0x10ff: 0x440d,\n\t// Block 0x44, offset 0x1100\n\t0x1100: 0xe00d, 0x1101: 0x0008, 0x1102: 0xe00d, 0x1103: 0x0008, 0x1104: 0xe00d, 0x1105: 0x0008,\n\t0x1106: 0xe00d, 0x1107: 0x0008, 0x1108: 0xe00d, 0x1109: 0x0008, 0x110a: 0xe00d, 0x110b: 0x0008,\n\t0x110c: 0xe00d, 0x110d: 0x0008, 0x110e: 0xe00d, 0x110f: 0x0008, 0x1110: 0xe00d, 0x1111: 0x0008,\n\t0x1112: 0xe00d, 0x1113: 0x0008, 0x1114: 0xe00d, 0x1115: 0x0008, 0x1116: 0xe00d, 0x1117: 0x0008,\n\t0x1118: 0xe00d, 0x1119: 0x0008, 0x111a: 0xe00d, 0x111b: 0x0008, 0x111c: 0xe00d, 0x111d: 0x0008,\n\t0x111e: 0xe00d, 0x111f: 0x0008, 0x1120: 0xe00d, 0x1121: 0x0008, 0x1122: 0xe00d, 0x1123: 0x0008,\n\t0x1124: 0xe00d, 0x1125: 0x0008, 0x1126: 0xe00d, 0x1127: 0x0008, 0x1128: 0xe00d, 0x1129: 0x0008,\n\t0x112a: 0xe00d, 0x112b: 0x0008, 0x112c: 0xe00d, 0x112d: 0x0008, 0x112e: 0x0008, 0x112f: 0x3308,\n\t0x1130: 0x3318, 0x1131: 0x3318, 0x1132: 0x3318, 0x1133: 0x0018, 0x1134: 0x3308, 0x1135: 0x3308,\n\t0x1136: 0x3308, 0x1137: 0x3308, 0x1138: 0x3308, 0x1139: 0x3308, 0x113a: 0x3308, 0x113b: 0x3308,\n\t0x113c: 0x3308, 0x113d: 0x3308, 0x113e: 0x0018, 0x113f: 0x0008,\n\t// Block 0x45, offset 0x1140\n\t0x1140: 0xe00d, 0x1141: 0x0008, 0x1142: 0xe00d, 0x1143: 0x0008, 0x1144: 0xe00d, 0x1145: 0x0008,\n\t0x1146: 0xe00d, 0x1147: 0x0008, 0x1148: 0xe00d, 0x1149: 0x0008, 0x114a: 0xe00d, 0x114b: 0x0008,\n\t0x114c: 0xe00d, 0x114d: 0x0008, 0x114e: 0xe00d, 0x114f: 0x0008, 0x1150: 0xe00d, 0x1151: 0x0008,\n\t0x1152: 0xe00d, 0x1153: 0x0008, 0x1154: 0xe00d, 0x1155: 0x0008, 0x1156: 0xe00d, 0x1157: 0x0008,\n\t0x1158: 0xe00d, 0x1159: 0x0008, 0x115a: 0xe00d, 0x115b: 0x0008, 0x115c: 0x0ea1, 0x115d: 0x6e11,\n\t0x115e: 0x3308, 0x115f: 0x3308, 0x1160: 0x0008, 0x1161: 0x0008, 0x1162: 0x0008, 0x1163: 0x0008,\n\t0x1164: 0x0008, 0x1165: 0x0008, 0x1166: 0x0008, 0x1167: 0x0008, 0x1168: 0x0008, 0x1169: 0x0008,\n\t0x116a: 0x0008, 0x116b: 0x0008, 0x116c: 0x0008, 0x116d: 0x0008, 0x116e: 0x0008, 0x116f: 0x0008,\n\t0x1170: 0x0008, 0x1171: 0x0008, 0x1172: 0x0008, 0x1173: 0x0008, 0x1174: 0x0008, 0x1175: 0x0008,\n\t0x1176: 0x0008, 0x1177: 0x0008, 0x1178: 0x0008, 0x1179: 0x0008, 0x117a: 0x0008, 0x117b: 0x0008,\n\t0x117c: 0x0008, 0x117d: 0x0008, 0x117e: 0x0008, 0x117f: 0x0008,\n\t// Block 0x46, offset 0x1180\n\t0x1180: 0x0018, 0x1181: 0x0018, 0x1182: 0x0018, 0x1183: 0x0018, 0x1184: 0x0018, 0x1185: 0x0018,\n\t0x1186: 0x0018, 0x1187: 0x0018, 0x1188: 0x0018, 0x1189: 0x0018, 0x118a: 0x0018, 0x118b: 0x0018,\n\t0x118c: 0x0018, 0x118d: 0x0018, 0x118e: 0x0018, 0x118f: 0x0018, 0x1190: 0x0018, 0x1191: 0x0018,\n\t0x1192: 0x0018, 0x1193: 0x0018, 0x1194: 0x0018, 0x1195: 0x0018, 0x1196: 0x0018, 0x1197: 0x0008,\n\t0x1198: 0x0008, 0x1199: 0x0008, 0x119a: 0x0008, 0x119b: 0x0008, 0x119c: 0x0008, 0x119d: 0x0008,\n\t0x119e: 0x0008, 0x119f: 0x0008, 0x11a0: 0x0018, 0x11a1: 0x0018, 0x11a2: 0xe00d, 0x11a3: 0x0008,\n\t0x11a4: 0xe00d, 0x11a5: 0x0008, 0x11a6: 0xe00d, 0x11a7: 0x0008, 0x11a8: 0xe00d, 0x11a9: 0x0008,\n\t0x11aa: 0xe00d, 0x11ab: 0x0008, 0x11ac: 0xe00d, 0x11ad: 0x0008, 0x11ae: 0xe00d, 0x11af: 0x0008,\n\t0x11b0: 0x0008, 0x11b1: 0x0008, 0x11b2: 0xe00d, 0x11b3: 0x0008, 0x11b4: 0xe00d, 0x11b5: 0x0008,\n\t0x11b6: 0xe00d, 0x11b7: 0x0008, 0x11b8: 0xe00d, 0x11b9: 0x0008, 0x11ba: 0xe00d, 0x11bb: 0x0008,\n\t0x11bc: 0xe00d, 0x11bd: 0x0008, 0x11be: 0xe00d, 0x11bf: 0x0008,\n\t// Block 0x47, offset 0x11c0\n\t0x11c0: 0xe00d, 0x11c1: 0x0008, 0x11c2: 0xe00d, 0x11c3: 0x0008, 0x11c4: 0xe00d, 0x11c5: 0x0008,\n\t0x11c6: 0xe00d, 0x11c7: 0x0008, 0x11c8: 0xe00d, 0x11c9: 0x0008, 0x11ca: 0xe00d, 0x11cb: 0x0008,\n\t0x11cc: 0xe00d, 0x11cd: 0x0008, 0x11ce: 0xe00d, 0x11cf: 0x0008, 0x11d0: 0xe00d, 0x11d1: 0x0008,\n\t0x11d2: 0xe00d, 0x11d3: 0x0008, 0x11d4: 0xe00d, 0x11d5: 0x0008, 0x11d6: 0xe00d, 0x11d7: 0x0008,\n\t0x11d8: 0xe00d, 0x11d9: 0x0008, 0x11da: 0xe00d, 0x11db: 0x0008, 0x11dc: 0xe00d, 0x11dd: 0x0008,\n\t0x11de: 0xe00d, 0x11df: 0x0008, 0x11e0: 0xe00d, 0x11e1: 0x0008, 0x11e2: 0xe00d, 0x11e3: 0x0008,\n\t0x11e4: 0xe00d, 0x11e5: 0x0008, 0x11e6: 0xe00d, 0x11e7: 0x0008, 0x11e8: 0xe00d, 0x11e9: 0x0008,\n\t0x11ea: 0xe00d, 0x11eb: 0x0008, 0x11ec: 0xe00d, 0x11ed: 0x0008, 0x11ee: 0xe00d, 0x11ef: 0x0008,\n\t0x11f0: 0xe0fd, 0x11f1: 0x0008, 0x11f2: 0x0008, 0x11f3: 0x0008, 0x11f4: 0x0008, 0x11f5: 0x0008,\n\t0x11f6: 0x0008, 0x11f7: 0x0008, 0x11f8: 0x0008, 0x11f9: 0xe01d, 0x11fa: 0x0008, 0x11fb: 0xe03d,\n\t0x11fc: 0x0008, 0x11fd: 0x442d, 0x11fe: 0xe00d, 0x11ff: 0x0008,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0xe00d, 0x1201: 0x0008, 0x1202: 0xe00d, 0x1203: 0x0008, 0x1204: 0xe00d, 0x1205: 0x0008,\n\t0x1206: 0xe00d, 0x1207: 0x0008, 0x1208: 0x0008, 0x1209: 0x0018, 0x120a: 0x0018, 0x120b: 0xe03d,\n\t0x120c: 0x0008, 0x120d: 0x11d9, 0x120e: 0x0008, 0x120f: 0x0008, 0x1210: 0xe00d, 0x1211: 0x0008,\n\t0x1212: 0xe00d, 0x1213: 0x0008, 0x1214: 0x0008, 0x1215: 0x0008, 0x1216: 0xe00d, 0x1217: 0x0008,\n\t0x1218: 0xe00d, 0x1219: 0x0008, 0x121a: 0xe00d, 0x121b: 0x0008, 0x121c: 0xe00d, 0x121d: 0x0008,\n\t0x121e: 0xe00d, 0x121f: 0x0008, 0x1220: 0xe00d, 0x1221: 0x0008, 0x1222: 0xe00d, 0x1223: 0x0008,\n\t0x1224: 0xe00d, 0x1225: 0x0008, 0x1226: 0xe00d, 0x1227: 0x0008, 0x1228: 0xe00d, 0x1229: 0x0008,\n\t0x122a: 0x6e29, 0x122b: 0x1029, 0x122c: 0x11c1, 0x122d: 0x6e41, 0x122e: 0x1221, 0x122f: 0x0008,\n\t0x1230: 0x6e59, 0x1231: 0x6e71, 0x1232: 0x1239, 0x1233: 0x444d, 0x1234: 0xe00d, 0x1235: 0x0008,\n\t0x1236: 0xe00d, 0x1237: 0x0008, 0x1238: 0x0040, 0x1239: 0x0008, 0x123a: 0x0040, 0x123b: 0x0040,\n\t0x123c: 0x0040, 0x123d: 0x0040, 0x123e: 0x0040, 0x123f: 0x0040,\n\t// Block 0x49, offset 0x1240\n\t0x1240: 0x64d5, 0x1241: 0x64f5, 0x1242: 0x6515, 0x1243: 0x6535, 0x1244: 0x6555, 0x1245: 0x6575,\n\t0x1246: 0x6595, 0x1247: 0x65b5, 0x1248: 0x65d5, 0x1249: 0x65f5, 0x124a: 0x6615, 0x124b: 0x6635,\n\t0x124c: 0x6655, 0x124d: 0x6675, 0x124e: 0x0008, 0x124f: 0x0008, 0x1250: 0x6695, 0x1251: 0x0008,\n\t0x1252: 0x66b5, 0x1253: 0x0008, 0x1254: 0x0008, 0x1255: 0x66d5, 0x1256: 0x66f5, 0x1257: 0x6715,\n\t0x1258: 0x6735, 0x1259: 0x6755, 0x125a: 0x6775, 0x125b: 0x6795, 0x125c: 0x67b5, 0x125d: 0x67d5,\n\t0x125e: 0x67f5, 0x125f: 0x0008, 0x1260: 0x6815, 0x1261: 0x0008, 0x1262: 0x6835, 0x1263: 0x0008,\n\t0x1264: 0x0008, 0x1265: 0x6855, 0x1266: 0x6875, 0x1267: 0x0008, 0x1268: 0x0008, 0x1269: 0x0008,\n\t0x126a: 0x6895, 0x126b: 0x68b5, 0x126c: 0x68d5, 0x126d: 0x68f5, 0x126e: 0x6915, 0x126f: 0x6935,\n\t0x1270: 0x6955, 0x1271: 0x6975, 0x1272: 0x6995, 0x1273: 0x69b5, 0x1274: 0x69d5, 0x1275: 0x69f5,\n\t0x1276: 0x6a15, 0x1277: 0x6a35, 0x1278: 0x6a55, 0x1279: 0x6a75, 0x127a: 0x6a95, 0x127b: 0x6ab5,\n\t0x127c: 0x6ad5, 0x127d: 0x6af5, 0x127e: 0x6b15, 0x127f: 0x6b35,\n\t// Block 0x4a, offset 0x1280\n\t0x1280: 0x7a95, 0x1281: 0x7ab5, 0x1282: 0x7ad5, 0x1283: 0x7af5, 0x1284: 0x7b15, 0x1285: 0x7b35,\n\t0x1286: 0x7b55, 0x1287: 0x7b75, 0x1288: 0x7b95, 0x1289: 0x7bb5, 0x128a: 0x7bd5, 0x128b: 0x7bf5,\n\t0x128c: 0x7c15, 0x128d: 0x7c35, 0x128e: 0x7c55, 0x128f: 0x6ec9, 0x1290: 0x6ef1, 0x1291: 0x6f19,\n\t0x1292: 0x7c75, 0x1293: 0x7c95, 0x1294: 0x7cb5, 0x1295: 0x6f41, 0x1296: 0x6f69, 0x1297: 0x6f91,\n\t0x1298: 0x7cd5, 0x1299: 0x7cf5, 0x129a: 0x0040, 0x129b: 0x0040, 0x129c: 0x0040, 0x129d: 0x0040,\n\t0x129e: 0x0040, 0x129f: 0x0040, 0x12a0: 0x0040, 0x12a1: 0x0040, 0x12a2: 0x0040, 0x12a3: 0x0040,\n\t0x12a4: 0x0040, 0x12a5: 0x0040, 0x12a6: 0x0040, 0x12a7: 0x0040, 0x12a8: 0x0040, 0x12a9: 0x0040,\n\t0x12aa: 0x0040, 0x12ab: 0x0040, 0x12ac: 0x0040, 0x12ad: 0x0040, 0x12ae: 0x0040, 0x12af: 0x0040,\n\t0x12b0: 0x0040, 0x12b1: 0x0040, 0x12b2: 0x0040, 0x12b3: 0x0040, 0x12b4: 0x0040, 0x12b5: 0x0040,\n\t0x12b6: 0x0040, 0x12b7: 0x0040, 0x12b8: 0x0040, 0x12b9: 0x0040, 0x12ba: 0x0040, 0x12bb: 0x0040,\n\t0x12bc: 0x0040, 0x12bd: 0x0040, 0x12be: 0x0040, 0x12bf: 0x0040,\n\t// Block 0x4b, offset 0x12c0\n\t0x12c0: 0x6fb9, 0x12c1: 0x6fd1, 0x12c2: 0x6fe9, 0x12c3: 0x7d15, 0x12c4: 0x7d35, 0x12c5: 0x7001,\n\t0x12c6: 0x7001, 0x12c7: 0x0040, 0x12c8: 0x0040, 0x12c9: 0x0040, 0x12ca: 0x0040, 0x12cb: 0x0040,\n\t0x12cc: 0x0040, 0x12cd: 0x0040, 0x12ce: 0x0040, 0x12cf: 0x0040, 0x12d0: 0x0040, 0x12d1: 0x0040,\n\t0x12d2: 0x0040, 0x12d3: 0x7019, 0x12d4: 0x7041, 0x12d5: 0x7069, 0x12d6: 0x7091, 0x12d7: 0x70b9,\n\t0x12d8: 0x0040, 0x12d9: 0x0040, 0x12da: 0x0040, 0x12db: 0x0040, 0x12dc: 0x0040, 0x12dd: 0x70e1,\n\t0x12de: 0x3308, 0x12df: 0x7109, 0x12e0: 0x7131, 0x12e1: 0x20a9, 0x12e2: 0x20f1, 0x12e3: 0x7149,\n\t0x12e4: 0x7161, 0x12e5: 0x7179, 0x12e6: 0x7191, 0x12e7: 0x71a9, 0x12e8: 0x71c1, 0x12e9: 0x1fb2,\n\t0x12ea: 0x71d9, 0x12eb: 0x7201, 0x12ec: 0x7229, 0x12ed: 0x7261, 0x12ee: 0x7299, 0x12ef: 0x72c1,\n\t0x12f0: 0x72e9, 0x12f1: 0x7311, 0x12f2: 0x7339, 0x12f3: 0x7361, 0x12f4: 0x7389, 0x12f5: 0x73b1,\n\t0x12f6: 0x73d9, 0x12f7: 0x0040, 0x12f8: 0x7401, 0x12f9: 0x7429, 0x12fa: 0x7451, 0x12fb: 0x7479,\n\t0x12fc: 0x74a1, 0x12fd: 0x0040, 0x12fe: 0x74c9, 0x12ff: 0x0040,\n\t// Block 0x4c, offset 0x1300\n\t0x1300: 0x74f1, 0x1301: 0x7519, 0x1302: 0x0040, 0x1303: 0x7541, 0x1304: 0x7569, 0x1305: 0x0040,\n\t0x1306: 0x7591, 0x1307: 0x75b9, 0x1308: 0x75e1, 0x1309: 0x7609, 0x130a: 0x7631, 0x130b: 0x7659,\n\t0x130c: 0x7681, 0x130d: 0x76a9, 0x130e: 0x76d1, 0x130f: 0x76f9, 0x1310: 0x7721, 0x1311: 0x7721,\n\t0x1312: 0x7739, 0x1313: 0x7739, 0x1314: 0x7739, 0x1315: 0x7739, 0x1316: 0x7751, 0x1317: 0x7751,\n\t0x1318: 0x7751, 0x1319: 0x7751, 0x131a: 0x7769, 0x131b: 0x7769, 0x131c: 0x7769, 0x131d: 0x7769,\n\t0x131e: 0x7781, 0x131f: 0x7781, 0x1320: 0x7781, 0x1321: 0x7781, 0x1322: 0x7799, 0x1323: 0x7799,\n\t0x1324: 0x7799, 0x1325: 0x7799, 0x1326: 0x77b1, 0x1327: 0x77b1, 0x1328: 0x77b1, 0x1329: 0x77b1,\n\t0x132a: 0x77c9, 0x132b: 0x77c9, 0x132c: 0x77c9, 0x132d: 0x77c9, 0x132e: 0x77e1, 0x132f: 0x77e1,\n\t0x1330: 0x77e1, 0x1331: 0x77e1, 0x1332: 0x77f9, 0x1333: 0x77f9, 0x1334: 0x77f9, 0x1335: 0x77f9,\n\t0x1336: 0x7811, 0x1337: 0x7811, 0x1338: 0x7811, 0x1339: 0x7811, 0x133a: 0x7829, 0x133b: 0x7829,\n\t0x133c: 0x7829, 0x133d: 0x7829, 0x133e: 0x7841, 0x133f: 0x7841,\n\t// Block 0x4d, offset 0x1340\n\t0x1340: 0x7841, 0x1341: 0x7841, 0x1342: 0x7859, 0x1343: 0x7859, 0x1344: 0x7871, 0x1345: 0x7871,\n\t0x1346: 0x7889, 0x1347: 0x7889, 0x1348: 0x78a1, 0x1349: 0x78a1, 0x134a: 0x78b9, 0x134b: 0x78b9,\n\t0x134c: 0x78d1, 0x134d: 0x78d1, 0x134e: 0x78e9, 0x134f: 0x78e9, 0x1350: 0x78e9, 0x1351: 0x78e9,\n\t0x1352: 0x7901, 0x1353: 0x7901, 0x1354: 0x7901, 0x1355: 0x7901, 0x1356: 0x7919, 0x1357: 0x7919,\n\t0x1358: 0x7919, 0x1359: 0x7919, 0x135a: 0x7931, 0x135b: 0x7931, 0x135c: 0x7931, 0x135d: 0x7931,\n\t0x135e: 0x7949, 0x135f: 0x7949, 0x1360: 0x7961, 0x1361: 0x7961, 0x1362: 0x7961, 0x1363: 0x7961,\n\t0x1364: 0x7979, 0x1365: 0x7979, 0x1366: 0x7991, 0x1367: 0x7991, 0x1368: 0x7991, 0x1369: 0x7991,\n\t0x136a: 0x79a9, 0x136b: 0x79a9, 0x136c: 0x79a9, 0x136d: 0x79a9, 0x136e: 0x79c1, 0x136f: 0x79c1,\n\t0x1370: 0x79d9, 0x1371: 0x79d9, 0x1372: 0x0818, 0x1373: 0x0818, 0x1374: 0x0818, 0x1375: 0x0818,\n\t0x1376: 0x0818, 0x1377: 0x0818, 0x1378: 0x0818, 0x1379: 0x0818, 0x137a: 0x0818, 0x137b: 0x0818,\n\t0x137c: 0x0818, 0x137d: 0x0818, 0x137e: 0x0818, 0x137f: 0x0818,\n\t// Block 0x4e, offset 0x1380\n\t0x1380: 0x0818, 0x1381: 0x0818, 0x1382: 0x0040, 0x1383: 0x0040, 0x1384: 0x0040, 0x1385: 0x0040,\n\t0x1386: 0x0040, 0x1387: 0x0040, 0x1388: 0x0040, 0x1389: 0x0040, 0x138a: 0x0040, 0x138b: 0x0040,\n\t0x138c: 0x0040, 0x138d: 0x0040, 0x138e: 0x0040, 0x138f: 0x0040, 0x1390: 0x0040, 0x1391: 0x0040,\n\t0x1392: 0x0040, 0x1393: 0x79f1, 0x1394: 0x79f1, 0x1395: 0x79f1, 0x1396: 0x79f1, 0x1397: 0x7a09,\n\t0x1398: 0x7a09, 0x1399: 0x7a21, 0x139a: 0x7a21, 0x139b: 0x7a39, 0x139c: 0x7a39, 0x139d: 0x0479,\n\t0x139e: 0x7a51, 0x139f: 0x7a51, 0x13a0: 0x7a69, 0x13a1: 0x7a69, 0x13a2: 0x7a81, 0x13a3: 0x7a81,\n\t0x13a4: 0x7a99, 0x13a5: 0x7a99, 0x13a6: 0x7a99, 0x13a7: 0x7a99, 0x13a8: 0x7ab1, 0x13a9: 0x7ab1,\n\t0x13aa: 0x7ac9, 0x13ab: 0x7ac9, 0x13ac: 0x7af1, 0x13ad: 0x7af1, 0x13ae: 0x7b19, 0x13af: 0x7b19,\n\t0x13b0: 0x7b41, 0x13b1: 0x7b41, 0x13b2: 0x7b69, 0x13b3: 0x7b69, 0x13b4: 0x7b91, 0x13b5: 0x7b91,\n\t0x13b6: 0x7bb9, 0x13b7: 0x7bb9, 0x13b8: 0x7bb9, 0x13b9: 0x7be1, 0x13ba: 0x7be1, 0x13bb: 0x7be1,\n\t0x13bc: 0x7c09, 0x13bd: 0x7c09, 0x13be: 0x7c09, 0x13bf: 0x7c09,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c0: 0x85f9, 0x13c1: 0x8621, 0x13c2: 0x8649, 0x13c3: 0x8671, 0x13c4: 0x8699, 0x13c5: 0x86c1,\n\t0x13c6: 0x86e9, 0x13c7: 0x8711, 0x13c8: 0x8739, 0x13c9: 0x8761, 0x13ca: 0x8789, 0x13cb: 0x87b1,\n\t0x13cc: 0x87d9, 0x13cd: 0x8801, 0x13ce: 0x8829, 0x13cf: 0x8851, 0x13d0: 0x8879, 0x13d1: 0x88a1,\n\t0x13d2: 0x88c9, 0x13d3: 0x88f1, 0x13d4: 0x8919, 0x13d5: 0x8941, 0x13d6: 0x8969, 0x13d7: 0x8991,\n\t0x13d8: 0x89b9, 0x13d9: 0x89e1, 0x13da: 0x8a09, 0x13db: 0x8a31, 0x13dc: 0x8a59, 0x13dd: 0x8a81,\n\t0x13de: 0x8aaa, 0x13df: 0x8ada, 0x13e0: 0x8b0a, 0x13e1: 0x8b3a, 0x13e2: 0x8b6a, 0x13e3: 0x8b9a,\n\t0x13e4: 0x8bc9, 0x13e5: 0x8bf1, 0x13e6: 0x7c71, 0x13e7: 0x8c19, 0x13e8: 0x7be1, 0x13e9: 0x7c99,\n\t0x13ea: 0x8c41, 0x13eb: 0x8c69, 0x13ec: 0x7d39, 0x13ed: 0x8c91, 0x13ee: 0x7d61, 0x13ef: 0x7d89,\n\t0x13f0: 0x8cb9, 0x13f1: 0x8ce1, 0x13f2: 0x7e29, 0x13f3: 0x8d09, 0x13f4: 0x7e51, 0x13f5: 0x7e79,\n\t0x13f6: 0x8d31, 0x13f7: 0x8d59, 0x13f8: 0x7ec9, 0x13f9: 0x8d81, 0x13fa: 0x7ef1, 0x13fb: 0x7f19,\n\t0x13fc: 0x83a1, 0x13fd: 0x83c9, 0x13fe: 0x8441, 0x13ff: 0x8469,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x8491, 0x1401: 0x8531, 0x1402: 0x8559, 0x1403: 0x8581, 0x1404: 0x85a9, 0x1405: 0x8649,\n\t0x1406: 0x8671, 0x1407: 0x8699, 0x1408: 0x8da9, 0x1409: 0x8739, 0x140a: 0x8dd1, 0x140b: 0x8df9,\n\t0x140c: 0x8829, 0x140d: 0x8e21, 0x140e: 0x8851, 0x140f: 0x8879, 0x1410: 0x8a81, 0x1411: 0x8e49,\n\t0x1412: 0x8e71, 0x1413: 0x89b9, 0x1414: 0x8e99, 0x1415: 0x89e1, 0x1416: 0x8a09, 0x1417: 0x7c21,\n\t0x1418: 0x7c49, 0x1419: 0x8ec1, 0x141a: 0x7c71, 0x141b: 0x8ee9, 0x141c: 0x7cc1, 0x141d: 0x7ce9,\n\t0x141e: 0x7d11, 0x141f: 0x7d39, 0x1420: 0x8f11, 0x1421: 0x7db1, 0x1422: 0x7dd9, 0x1423: 0x7e01,\n\t0x1424: 0x7e29, 0x1425: 0x8f39, 0x1426: 0x7ec9, 0x1427: 0x7f41, 0x1428: 0x7f69, 0x1429: 0x7f91,\n\t0x142a: 0x7fb9, 0x142b: 0x7fe1, 0x142c: 0x8031, 0x142d: 0x8059, 0x142e: 0x8081, 0x142f: 0x80a9,\n\t0x1430: 0x80d1, 0x1431: 0x80f9, 0x1432: 0x8f61, 0x1433: 0x8121, 0x1434: 0x8149, 0x1435: 0x8171,\n\t0x1436: 0x8199, 0x1437: 0x81c1, 0x1438: 0x81e9, 0x1439: 0x8239, 0x143a: 0x8261, 0x143b: 0x8289,\n\t0x143c: 0x82b1, 0x143d: 0x82d9, 0x143e: 0x8301, 0x143f: 0x8329,\n\t// Block 0x51, offset 0x1440\n\t0x1440: 0x8351, 0x1441: 0x8379, 0x1442: 0x83f1, 0x1443: 0x8419, 0x1444: 0x84b9, 0x1445: 0x84e1,\n\t0x1446: 0x8509, 0x1447: 0x8531, 0x1448: 0x8559, 0x1449: 0x85d1, 0x144a: 0x85f9, 0x144b: 0x8621,\n\t0x144c: 0x8649, 0x144d: 0x8f89, 0x144e: 0x86c1, 0x144f: 0x86e9, 0x1450: 0x8711, 0x1451: 0x8739,\n\t0x1452: 0x87b1, 0x1453: 0x87d9, 0x1454: 0x8801, 0x1455: 0x8829, 0x1456: 0x8fb1, 0x1457: 0x88a1,\n\t0x1458: 0x88c9, 0x1459: 0x8fd9, 0x145a: 0x8941, 0x145b: 0x8969, 0x145c: 0x8991, 0x145d: 0x89b9,\n\t0x145e: 0x9001, 0x145f: 0x7c71, 0x1460: 0x8ee9, 0x1461: 0x7d39, 0x1462: 0x8f11, 0x1463: 0x7e29,\n\t0x1464: 0x8f39, 0x1465: 0x7ec9, 0x1466: 0x9029, 0x1467: 0x80d1, 0x1468: 0x9051, 0x1469: 0x9079,\n\t0x146a: 0x90a1, 0x146b: 0x8531, 0x146c: 0x8559, 0x146d: 0x8649, 0x146e: 0x8829, 0x146f: 0x8fb1,\n\t0x1470: 0x89b9, 0x1471: 0x9001, 0x1472: 0x90c9, 0x1473: 0x9101, 0x1474: 0x9139, 0x1475: 0x9171,\n\t0x1476: 0x9199, 0x1477: 0x91c1, 0x1478: 0x91e9, 0x1479: 0x9211, 0x147a: 0x9239, 0x147b: 0x9261,\n\t0x147c: 0x9289, 0x147d: 0x92b1, 0x147e: 0x92d9, 0x147f: 0x9301,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x9329, 0x1481: 0x9351, 0x1482: 0x9379, 0x1483: 0x93a1, 0x1484: 0x93c9, 0x1485: 0x93f1,\n\t0x1486: 0x9419, 0x1487: 0x9441, 0x1488: 0x9469, 0x1489: 0x9491, 0x148a: 0x94b9, 0x148b: 0x94e1,\n\t0x148c: 0x9079, 0x148d: 0x9509, 0x148e: 0x9531, 0x148f: 0x9559, 0x1490: 0x9581, 0x1491: 0x9171,\n\t0x1492: 0x9199, 0x1493: 0x91c1, 0x1494: 0x91e9, 0x1495: 0x9211, 0x1496: 0x9239, 0x1497: 0x9261,\n\t0x1498: 0x9289, 0x1499: 0x92b1, 0x149a: 0x92d9, 0x149b: 0x9301, 0x149c: 0x9329, 0x149d: 0x9351,\n\t0x149e: 0x9379, 0x149f: 0x93a1, 0x14a0: 0x93c9, 0x14a1: 0x93f1, 0x14a2: 0x9419, 0x14a3: 0x9441,\n\t0x14a4: 0x9469, 0x14a5: 0x9491, 0x14a6: 0x94b9, 0x14a7: 0x94e1, 0x14a8: 0x9079, 0x14a9: 0x9509,\n\t0x14aa: 0x9531, 0x14ab: 0x9559, 0x14ac: 0x9581, 0x14ad: 0x9491, 0x14ae: 0x94b9, 0x14af: 0x94e1,\n\t0x14b0: 0x9079, 0x14b1: 0x9051, 0x14b2: 0x90a1, 0x14b3: 0x8211, 0x14b4: 0x8059, 0x14b5: 0x8081,\n\t0x14b6: 0x80a9, 0x14b7: 0x9491, 0x14b8: 0x94b9, 0x14b9: 0x94e1, 0x14ba: 0x8211, 0x14bb: 0x8239,\n\t0x14bc: 0x95a9, 0x14bd: 0x95a9, 0x14be: 0x0018, 0x14bf: 0x0018,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x0040, 0x14c1: 0x0040, 0x14c2: 0x0040, 0x14c3: 0x0040, 0x14c4: 0x0040, 0x14c5: 0x0040,\n\t0x14c6: 0x0040, 0x14c7: 0x0040, 0x14c8: 0x0040, 0x14c9: 0x0040, 0x14ca: 0x0040, 0x14cb: 0x0040,\n\t0x14cc: 0x0040, 0x14cd: 0x0040, 0x14ce: 0x0040, 0x14cf: 0x0040, 0x14d0: 0x95d1, 0x14d1: 0x9609,\n\t0x14d2: 0x9609, 0x14d3: 0x9641, 0x14d4: 0x9679, 0x14d5: 0x96b1, 0x14d6: 0x96e9, 0x14d7: 0x9721,\n\t0x14d8: 0x9759, 0x14d9: 0x9759, 0x14da: 0x9791, 0x14db: 0x97c9, 0x14dc: 0x9801, 0x14dd: 0x9839,\n\t0x14de: 0x9871, 0x14df: 0x98a9, 0x14e0: 0x98a9, 0x14e1: 0x98e1, 0x14e2: 0x9919, 0x14e3: 0x9919,\n\t0x14e4: 0x9951, 0x14e5: 0x9951, 0x14e6: 0x9989, 0x14e7: 0x99c1, 0x14e8: 0x99c1, 0x14e9: 0x99f9,\n\t0x14ea: 0x9a31, 0x14eb: 0x9a31, 0x14ec: 0x9a69, 0x14ed: 0x9a69, 0x14ee: 0x9aa1, 0x14ef: 0x9ad9,\n\t0x14f0: 0x9ad9, 0x14f1: 0x9b11, 0x14f2: 0x9b11, 0x14f3: 0x9b49, 0x14f4: 0x9b81, 0x14f5: 0x9bb9,\n\t0x14f6: 0x9bf1, 0x14f7: 0x9bf1, 0x14f8: 0x9c29, 0x14f9: 0x9c61, 0x14fa: 0x9c99, 0x14fb: 0x9cd1,\n\t0x14fc: 0x9d09, 0x14fd: 0x9d09, 0x14fe: 0x9d41, 0x14ff: 0x9d79,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0xa949, 0x1501: 0xa981, 0x1502: 0xa9b9, 0x1503: 0xa8a1, 0x1504: 0x9bb9, 0x1505: 0x9989,\n\t0x1506: 0xa9f1, 0x1507: 0xaa29, 0x1508: 0x0040, 0x1509: 0x0040, 0x150a: 0x0040, 0x150b: 0x0040,\n\t0x150c: 0x0040, 0x150d: 0x0040, 0x150e: 0x0040, 0x150f: 0x0040, 0x1510: 0x0040, 0x1511: 0x0040,\n\t0x1512: 0x0040, 0x1513: 0x0040, 0x1514: 0x0040, 0x1515: 0x0040, 0x1516: 0x0040, 0x1517: 0x0040,\n\t0x1518: 0x0040, 0x1519: 0x0040, 0x151a: 0x0040, 0x151b: 0x0040, 0x151c: 0x0040, 0x151d: 0x0040,\n\t0x151e: 0x0040, 0x151f: 0x0040, 0x1520: 0x0040, 0x1521: 0x0040, 0x1522: 0x0040, 0x1523: 0x0040,\n\t0x1524: 0x0040, 0x1525: 0x0040, 0x1526: 0x0040, 0x1527: 0x0040, 0x1528: 0x0040, 0x1529: 0x0040,\n\t0x152a: 0x0040, 0x152b: 0x0040, 0x152c: 0x0040, 0x152d: 0x0040, 0x152e: 0x0040, 0x152f: 0x0040,\n\t0x1530: 0xaa61, 0x1531: 0xaa99, 0x1532: 0xaad1, 0x1533: 0xab19, 0x1534: 0xab61, 0x1535: 0xaba9,\n\t0x1536: 0xabf1, 0x1537: 0xac39, 0x1538: 0xac81, 0x1539: 0xacc9, 0x153a: 0xad02, 0x153b: 0xae12,\n\t0x153c: 0xae91, 0x153d: 0x0018, 0x153e: 0x0040, 0x153f: 0x0040,\n\t// Block 0x55, offset 0x1540\n\t0x1540: 0x33c0, 0x1541: 0x33c0, 0x1542: 0x33c0, 0x1543: 0x33c0, 0x1544: 0x33c0, 0x1545: 0x33c0,\n\t0x1546: 0x33c0, 0x1547: 0x33c0, 0x1548: 0x33c0, 0x1549: 0x33c0, 0x154a: 0x33c0, 0x154b: 0x33c0,\n\t0x154c: 0x33c0, 0x154d: 0x33c0, 0x154e: 0x33c0, 0x154f: 0x33c0, 0x1550: 0xaeda, 0x1551: 0x7d55,\n\t0x1552: 0x0040, 0x1553: 0xaeea, 0x1554: 0x03c2, 0x1555: 0xaefa, 0x1556: 0xaf0a, 0x1557: 0x7d75,\n\t0x1558: 0x7d95, 0x1559: 0x0040, 0x155a: 0x0040, 0x155b: 0x0040, 0x155c: 0x0040, 0x155d: 0x0040,\n\t0x155e: 0x0040, 0x155f: 0x0040, 0x1560: 0x3308, 0x1561: 0x3308, 0x1562: 0x3308, 0x1563: 0x3308,\n\t0x1564: 0x3308, 0x1565: 0x3308, 0x1566: 0x3308, 0x1567: 0x3308, 0x1568: 0x3308, 0x1569: 0x3308,\n\t0x156a: 0x3308, 0x156b: 0x3308, 0x156c: 0x3308, 0x156d: 0x3308, 0x156e: 0x3308, 0x156f: 0x3308,\n\t0x1570: 0x0040, 0x1571: 0x7db5, 0x1572: 0x7dd5, 0x1573: 0xaf1a, 0x1574: 0xaf1a, 0x1575: 0x1fd2,\n\t0x1576: 0x1fe2, 0x1577: 0xaf2a, 0x1578: 0xaf3a, 0x1579: 0x7df5, 0x157a: 0x7e15, 0x157b: 0x7e35,\n\t0x157c: 0x7df5, 0x157d: 0x7e55, 0x157e: 0x7e75, 0x157f: 0x7e55,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x7e95, 0x1581: 0x7eb5, 0x1582: 0x7ed5, 0x1583: 0x7eb5, 0x1584: 0x7ef5, 0x1585: 0x0018,\n\t0x1586: 0x0018, 0x1587: 0xaf4a, 0x1588: 0xaf5a, 0x1589: 0x7f16, 0x158a: 0x7f36, 0x158b: 0x7f56,\n\t0x158c: 0x7f76, 0x158d: 0xaf1a, 0x158e: 0xaf1a, 0x158f: 0xaf1a, 0x1590: 0xaeda, 0x1591: 0x7f95,\n\t0x1592: 0x0040, 0x1593: 0x0040, 0x1594: 0x03c2, 0x1595: 0xaeea, 0x1596: 0xaf0a, 0x1597: 0xaefa,\n\t0x1598: 0x7fb5, 0x1599: 0x1fd2, 0x159a: 0x1fe2, 0x159b: 0xaf2a, 0x159c: 0xaf3a, 0x159d: 0x7e95,\n\t0x159e: 0x7ef5, 0x159f: 0xaf6a, 0x15a0: 0xaf7a, 0x15a1: 0xaf8a, 0x15a2: 0x1fb2, 0x15a3: 0xaf99,\n\t0x15a4: 0xafaa, 0x15a5: 0xafba, 0x15a6: 0x1fc2, 0x15a7: 0x0040, 0x15a8: 0xafca, 0x15a9: 0xafda,\n\t0x15aa: 0xafea, 0x15ab: 0xaffa, 0x15ac: 0x0040, 0x15ad: 0x0040, 0x15ae: 0x0040, 0x15af: 0x0040,\n\t0x15b0: 0x7fd6, 0x15b1: 0xb009, 0x15b2: 0x7ff6, 0x15b3: 0x0808, 0x15b4: 0x8016, 0x15b5: 0x0040,\n\t0x15b6: 0x8036, 0x15b7: 0xb031, 0x15b8: 0x8056, 0x15b9: 0xb059, 0x15ba: 0x8076, 0x15bb: 0xb081,\n\t0x15bc: 0x8096, 0x15bd: 0xb0a9, 0x15be: 0x80b6, 0x15bf: 0xb0d1,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0xb0f9, 0x15c1: 0xb111, 0x15c2: 0xb111, 0x15c3: 0xb129, 0x15c4: 0xb129, 0x15c5: 0xb141,\n\t0x15c6: 0xb141, 0x15c7: 0xb159, 0x15c8: 0xb159, 0x15c9: 0xb171, 0x15ca: 0xb171, 0x15cb: 0xb171,\n\t0x15cc: 0xb171, 0x15cd: 0xb189, 0x15ce: 0xb189, 0x15cf: 0xb1a1, 0x15d0: 0xb1a1, 0x15d1: 0xb1a1,\n\t0x15d2: 0xb1a1, 0x15d3: 0xb1b9, 0x15d4: 0xb1b9, 0x15d5: 0xb1d1, 0x15d6: 0xb1d1, 0x15d7: 0xb1d1,\n\t0x15d8: 0xb1d1, 0x15d9: 0xb1e9, 0x15da: 0xb1e9, 0x15db: 0xb1e9, 0x15dc: 0xb1e9, 0x15dd: 0xb201,\n\t0x15de: 0xb201, 0x15df: 0xb201, 0x15e0: 0xb201, 0x15e1: 0xb219, 0x15e2: 0xb219, 0x15e3: 0xb219,\n\t0x15e4: 0xb219, 0x15e5: 0xb231, 0x15e6: 0xb231, 0x15e7: 0xb231, 0x15e8: 0xb231, 0x15e9: 0xb249,\n\t0x15ea: 0xb249, 0x15eb: 0xb261, 0x15ec: 0xb261, 0x15ed: 0xb279, 0x15ee: 0xb279, 0x15ef: 0xb291,\n\t0x15f0: 0xb291, 0x15f1: 0xb2a9, 0x15f2: 0xb2a9, 0x15f3: 0xb2a9, 0x15f4: 0xb2a9, 0x15f5: 0xb2c1,\n\t0x15f6: 0xb2c1, 0x15f7: 0xb2c1, 0x15f8: 0xb2c1, 0x15f9: 0xb2d9, 0x15fa: 0xb2d9, 0x15fb: 0xb2d9,\n\t0x15fc: 0xb2d9, 0x15fd: 0xb2f1, 0x15fe: 0xb2f1, 0x15ff: 0xb2f1,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0xb2f1, 0x1601: 0xb309, 0x1602: 0xb309, 0x1603: 0xb309, 0x1604: 0xb309, 0x1605: 0xb321,\n\t0x1606: 0xb321, 0x1607: 0xb321, 0x1608: 0xb321, 0x1609: 0xb339, 0x160a: 0xb339, 0x160b: 0xb339,\n\t0x160c: 0xb339, 0x160d: 0xb351, 0x160e: 0xb351, 0x160f: 0xb351, 0x1610: 0xb351, 0x1611: 0xb369,\n\t0x1612: 0xb369, 0x1613: 0xb369, 0x1614: 0xb369, 0x1615: 0xb381, 0x1616: 0xb381, 0x1617: 0xb381,\n\t0x1618: 0xb381, 0x1619: 0xb399, 0x161a: 0xb399, 0x161b: 0xb399, 0x161c: 0xb399, 0x161d: 0xb3b1,\n\t0x161e: 0xb3b1, 0x161f: 0xb3b1, 0x1620: 0xb3b1, 0x1621: 0xb3c9, 0x1622: 0xb3c9, 0x1623: 0xb3c9,\n\t0x1624: 0xb3c9, 0x1625: 0xb3e1, 0x1626: 0xb3e1, 0x1627: 0xb3e1, 0x1628: 0xb3e1, 0x1629: 0xb3f9,\n\t0x162a: 0xb3f9, 0x162b: 0xb3f9, 0x162c: 0xb3f9, 0x162d: 0xb411, 0x162e: 0xb411, 0x162f: 0x7ab1,\n\t0x1630: 0x7ab1, 0x1631: 0xb429, 0x1632: 0xb429, 0x1633: 0xb429, 0x1634: 0xb429, 0x1635: 0xb441,\n\t0x1636: 0xb441, 0x1637: 0xb469, 0x1638: 0xb469, 0x1639: 0xb491, 0x163a: 0xb491, 0x163b: 0xb4b9,\n\t0x163c: 0xb4b9, 0x163d: 0x0040, 0x163e: 0x0040, 0x163f: 0x03c0,\n\t// Block 0x59, offset 0x1640\n\t0x1640: 0x0040, 0x1641: 0xaefa, 0x1642: 0xb4e2, 0x1643: 0xaf6a, 0x1644: 0xafda, 0x1645: 0xafea,\n\t0x1646: 0xaf7a, 0x1647: 0xb4f2, 0x1648: 0x1fd2, 0x1649: 0x1fe2, 0x164a: 0xaf8a, 0x164b: 0x1fb2,\n\t0x164c: 0xaeda, 0x164d: 0xaf99, 0x164e: 0x29d1, 0x164f: 0xb502, 0x1650: 0x1f41, 0x1651: 0x00c9,\n\t0x1652: 0x0069, 0x1653: 0x0079, 0x1654: 0x1f51, 0x1655: 0x1f61, 0x1656: 0x1f71, 0x1657: 0x1f81,\n\t0x1658: 0x1f91, 0x1659: 0x1fa1, 0x165a: 0xaeea, 0x165b: 0x03c2, 0x165c: 0xafaa, 0x165d: 0x1fc2,\n\t0x165e: 0xafba, 0x165f: 0xaf0a, 0x1660: 0xaffa, 0x1661: 0x0039, 0x1662: 0x0ee9, 0x1663: 0x1159,\n\t0x1664: 0x0ef9, 0x1665: 0x0f09, 0x1666: 0x1199, 0x1667: 0x0f31, 0x1668: 0x0249, 0x1669: 0x0f41,\n\t0x166a: 0x0259, 0x166b: 0x0f51, 0x166c: 0x0359, 0x166d: 0x0f61, 0x166e: 0x0f71, 0x166f: 0x00d9,\n\t0x1670: 0x0f99, 0x1671: 0x2039, 0x1672: 0x0269, 0x1673: 0x01d9, 0x1674: 0x0fa9, 0x1675: 0x0fb9,\n\t0x1676: 0x1089, 0x1677: 0x0279, 0x1678: 0x0369, 0x1679: 0x0289, 0x167a: 0x13d1, 0x167b: 0xaf4a,\n\t0x167c: 0xafca, 0x167d: 0xaf5a, 0x167e: 0xb512, 0x167f: 0xaf1a,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x1caa, 0x1681: 0x0039, 0x1682: 0x0ee9, 0x1683: 0x1159, 0x1684: 0x0ef9, 0x1685: 0x0f09,\n\t0x1686: 0x1199, 0x1687: 0x0f31, 0x1688: 0x0249, 0x1689: 0x0f41, 0x168a: 0x0259, 0x168b: 0x0f51,\n\t0x168c: 0x0359, 0x168d: 0x0f61, 0x168e: 0x0f71, 0x168f: 0x00d9, 0x1690: 0x0f99, 0x1691: 0x2039,\n\t0x1692: 0x0269, 0x1693: 0x01d9, 0x1694: 0x0fa9, 0x1695: 0x0fb9, 0x1696: 0x1089, 0x1697: 0x0279,\n\t0x1698: 0x0369, 0x1699: 0x0289, 0x169a: 0x13d1, 0x169b: 0xaf2a, 0x169c: 0xb522, 0x169d: 0xaf3a,\n\t0x169e: 0xb532, 0x169f: 0x80d5, 0x16a0: 0x80f5, 0x16a1: 0x29d1, 0x16a2: 0x8115, 0x16a3: 0x8115,\n\t0x16a4: 0x8135, 0x16a5: 0x8155, 0x16a6: 0x8175, 0x16a7: 0x8195, 0x16a8: 0x81b5, 0x16a9: 0x81d5,\n\t0x16aa: 0x81f5, 0x16ab: 0x8215, 0x16ac: 0x8235, 0x16ad: 0x8255, 0x16ae: 0x8275, 0x16af: 0x8295,\n\t0x16b0: 0x82b5, 0x16b1: 0x82d5, 0x16b2: 0x82f5, 0x16b3: 0x8315, 0x16b4: 0x8335, 0x16b5: 0x8355,\n\t0x16b6: 0x8375, 0x16b7: 0x8395, 0x16b8: 0x83b5, 0x16b9: 0x83d5, 0x16ba: 0x83f5, 0x16bb: 0x8415,\n\t0x16bc: 0x81b5, 0x16bd: 0x8435, 0x16be: 0x8455, 0x16bf: 0x8215,\n\t// Block 0x5b, offset 0x16c0\n\t0x16c0: 0x8475, 0x16c1: 0x8495, 0x16c2: 0x84b5, 0x16c3: 0x84d5, 0x16c4: 0x84f5, 0x16c5: 0x8515,\n\t0x16c6: 0x8535, 0x16c7: 0x8555, 0x16c8: 0x84d5, 0x16c9: 0x8575, 0x16ca: 0x84d5, 0x16cb: 0x8595,\n\t0x16cc: 0x8595, 0x16cd: 0x85b5, 0x16ce: 0x85b5, 0x16cf: 0x85d5, 0x16d0: 0x8515, 0x16d1: 0x85f5,\n\t0x16d2: 0x8615, 0x16d3: 0x85f5, 0x16d4: 0x8635, 0x16d5: 0x8615, 0x16d6: 0x8655, 0x16d7: 0x8655,\n\t0x16d8: 0x8675, 0x16d9: 0x8675, 0x16da: 0x8695, 0x16db: 0x8695, 0x16dc: 0x8615, 0x16dd: 0x8115,\n\t0x16de: 0x86b5, 0x16df: 0x86d5, 0x16e0: 0x0040, 0x16e1: 0x86f5, 0x16e2: 0x8715, 0x16e3: 0x8735,\n\t0x16e4: 0x8755, 0x16e5: 0x8735, 0x16e6: 0x8775, 0x16e7: 0x8795, 0x16e8: 0x87b5, 0x16e9: 0x87b5,\n\t0x16ea: 0x87d5, 0x16eb: 0x87d5, 0x16ec: 0x87f5, 0x16ed: 0x87f5, 0x16ee: 0x87d5, 0x16ef: 0x87d5,\n\t0x16f0: 0x8815, 0x16f1: 0x8835, 0x16f2: 0x8855, 0x16f3: 0x8875, 0x16f4: 0x8895, 0x16f5: 0x88b5,\n\t0x16f6: 0x88b5, 0x16f7: 0x88b5, 0x16f8: 0x88d5, 0x16f9: 0x88d5, 0x16fa: 0x88d5, 0x16fb: 0x88d5,\n\t0x16fc: 0x87b5, 0x16fd: 0x87b5, 0x16fe: 0x87b5, 0x16ff: 0x0040,\n\t// Block 0x5c, offset 0x1700\n\t0x1700: 0x0040, 0x1701: 0x0040, 0x1702: 0x8715, 0x1703: 0x86f5, 0x1704: 0x88f5, 0x1705: 0x86f5,\n\t0x1706: 0x8715, 0x1707: 0x86f5, 0x1708: 0x0040, 0x1709: 0x0040, 0x170a: 0x8915, 0x170b: 0x8715,\n\t0x170c: 0x8935, 0x170d: 0x88f5, 0x170e: 0x8935, 0x170f: 0x8715, 0x1710: 0x0040, 0x1711: 0x0040,\n\t0x1712: 0x8955, 0x1713: 0x8975, 0x1714: 0x8875, 0x1715: 0x8935, 0x1716: 0x88f5, 0x1717: 0x8935,\n\t0x1718: 0x0040, 0x1719: 0x0040, 0x171a: 0x8995, 0x171b: 0x89b5, 0x171c: 0x8995, 0x171d: 0x0040,\n\t0x171e: 0x0040, 0x171f: 0x0040, 0x1720: 0xb541, 0x1721: 0xb559, 0x1722: 0xb571, 0x1723: 0x89d6,\n\t0x1724: 0xb589, 0x1725: 0xb5a1, 0x1726: 0x89f5, 0x1727: 0x0040, 0x1728: 0x8a15, 0x1729: 0x8a35,\n\t0x172a: 0x8a55, 0x172b: 0x8a35, 0x172c: 0x8a75, 0x172d: 0x8a95, 0x172e: 0x8ab5, 0x172f: 0x0040,\n\t0x1730: 0x0040, 0x1731: 0x0040, 0x1732: 0x0040, 0x1733: 0x0040, 0x1734: 0x0040, 0x1735: 0x0040,\n\t0x1736: 0x0040, 0x1737: 0x0040, 0x1738: 0x0040, 0x1739: 0x0340, 0x173a: 0x0340, 0x173b: 0x0340,\n\t0x173c: 0x0040, 0x173d: 0x0040, 0x173e: 0x0040, 0x173f: 0x0040,\n\t// Block 0x5d, offset 0x1740\n\t0x1740: 0x0a08, 0x1741: 0x0a08, 0x1742: 0x0a08, 0x1743: 0x0a08, 0x1744: 0x0a08, 0x1745: 0x0c08,\n\t0x1746: 0x0808, 0x1747: 0x0c08, 0x1748: 0x0818, 0x1749: 0x0c08, 0x174a: 0x0c08, 0x174b: 0x0808,\n\t0x174c: 0x0808, 0x174d: 0x0908, 0x174e: 0x0c08, 0x174f: 0x0c08, 0x1750: 0x0c08, 0x1751: 0x0c08,\n\t0x1752: 0x0c08, 0x1753: 0x0a08, 0x1754: 0x0a08, 0x1755: 0x0a08, 0x1756: 0x0a08, 0x1757: 0x0908,\n\t0x1758: 0x0a08, 0x1759: 0x0a08, 0x175a: 0x0a08, 0x175b: 0x0a08, 0x175c: 0x0a08, 0x175d: 0x0c08,\n\t0x175e: 0x0a08, 0x175f: 0x0a08, 0x1760: 0x0a08, 0x1761: 0x0c08, 0x1762: 0x0808, 0x1763: 0x0808,\n\t0x1764: 0x0c08, 0x1765: 0x3308, 0x1766: 0x3308, 0x1767: 0x0040, 0x1768: 0x0040, 0x1769: 0x0040,\n\t0x176a: 0x0040, 0x176b: 0x0a18, 0x176c: 0x0a18, 0x176d: 0x0a18, 0x176e: 0x0a18, 0x176f: 0x0c18,\n\t0x1770: 0x0818, 0x1771: 0x0818, 0x1772: 0x0818, 0x1773: 0x0818, 0x1774: 0x0818, 0x1775: 0x0818,\n\t0x1776: 0x0818, 0x1777: 0x0040, 0x1778: 0x0040, 0x1779: 0x0040, 0x177a: 0x0040, 0x177b: 0x0040,\n\t0x177c: 0x0040, 0x177d: 0x0040, 0x177e: 0x0040, 0x177f: 0x0040,\n\t// Block 0x5e, offset 0x1780\n\t0x1780: 0x0a08, 0x1781: 0x0c08, 0x1782: 0x0a08, 0x1783: 0x0c08, 0x1784: 0x0c08, 0x1785: 0x0c08,\n\t0x1786: 0x0a08, 0x1787: 0x0a08, 0x1788: 0x0a08, 0x1789: 0x0c08, 0x178a: 0x0a08, 0x178b: 0x0a08,\n\t0x178c: 0x0c08, 0x178d: 0x0a08, 0x178e: 0x0c08, 0x178f: 0x0c08, 0x1790: 0x0a08, 0x1791: 0x0c08,\n\t0x1792: 0x0040, 0x1793: 0x0040, 0x1794: 0x0040, 0x1795: 0x0040, 0x1796: 0x0040, 0x1797: 0x0040,\n\t0x1798: 0x0040, 0x1799: 0x0818, 0x179a: 0x0818, 0x179b: 0x0818, 0x179c: 0x0818, 0x179d: 0x0040,\n\t0x179e: 0x0040, 0x179f: 0x0040, 0x17a0: 0x0040, 0x17a1: 0x0040, 0x17a2: 0x0040, 0x17a3: 0x0040,\n\t0x17a4: 0x0040, 0x17a5: 0x0040, 0x17a6: 0x0040, 0x17a7: 0x0040, 0x17a8: 0x0040, 0x17a9: 0x0c18,\n\t0x17aa: 0x0c18, 0x17ab: 0x0c18, 0x17ac: 0x0c18, 0x17ad: 0x0a18, 0x17ae: 0x0a18, 0x17af: 0x0818,\n\t0x17b0: 0x0040, 0x17b1: 0x0040, 0x17b2: 0x0040, 0x17b3: 0x0040, 0x17b4: 0x0040, 0x17b5: 0x0040,\n\t0x17b6: 0x0040, 0x17b7: 0x0040, 0x17b8: 0x0040, 0x17b9: 0x0040, 0x17ba: 0x0040, 0x17bb: 0x0040,\n\t0x17bc: 0x0040, 0x17bd: 0x0040, 0x17be: 0x0040, 0x17bf: 0x0040,\n\t// Block 0x5f, offset 0x17c0\n\t0x17c0: 0x3308, 0x17c1: 0x3308, 0x17c2: 0x3008, 0x17c3: 0x3008, 0x17c4: 0x0040, 0x17c5: 0x0008,\n\t0x17c6: 0x0008, 0x17c7: 0x0008, 0x17c8: 0x0008, 0x17c9: 0x0008, 0x17ca: 0x0008, 0x17cb: 0x0008,\n\t0x17cc: 0x0008, 0x17cd: 0x0040, 0x17ce: 0x0040, 0x17cf: 0x0008, 0x17d0: 0x0008, 0x17d1: 0x0040,\n\t0x17d2: 0x0040, 0x17d3: 0x0008, 0x17d4: 0x0008, 0x17d5: 0x0008, 0x17d6: 0x0008, 0x17d7: 0x0008,\n\t0x17d8: 0x0008, 0x17d9: 0x0008, 0x17da: 0x0008, 0x17db: 0x0008, 0x17dc: 0x0008, 0x17dd: 0x0008,\n\t0x17de: 0x0008, 0x17df: 0x0008, 0x17e0: 0x0008, 0x17e1: 0x0008, 0x17e2: 0x0008, 0x17e3: 0x0008,\n\t0x17e4: 0x0008, 0x17e5: 0x0008, 0x17e6: 0x0008, 0x17e7: 0x0008, 0x17e8: 0x0008, 0x17e9: 0x0040,\n\t0x17ea: 0x0008, 0x17eb: 0x0008, 0x17ec: 0x0008, 0x17ed: 0x0008, 0x17ee: 0x0008, 0x17ef: 0x0008,\n\t0x17f0: 0x0008, 0x17f1: 0x0040, 0x17f2: 0x0008, 0x17f3: 0x0008, 0x17f4: 0x0040, 0x17f5: 0x0008,\n\t0x17f6: 0x0008, 0x17f7: 0x0008, 0x17f8: 0x0008, 0x17f9: 0x0008, 0x17fa: 0x0040, 0x17fb: 0x3308,\n\t0x17fc: 0x3308, 0x17fd: 0x0008, 0x17fe: 0x3008, 0x17ff: 0x3008,\n\t// Block 0x60, offset 0x1800\n\t0x1800: 0x3308, 0x1801: 0x3008, 0x1802: 0x3008, 0x1803: 0x3008, 0x1804: 0x3008, 0x1805: 0x0040,\n\t0x1806: 0x0040, 0x1807: 0x3008, 0x1808: 0x3008, 0x1809: 0x0040, 0x180a: 0x0040, 0x180b: 0x3008,\n\t0x180c: 0x3008, 0x180d: 0x3808, 0x180e: 0x0040, 0x180f: 0x0040, 0x1810: 0x0008, 0x1811: 0x0040,\n\t0x1812: 0x0040, 0x1813: 0x0040, 0x1814: 0x0040, 0x1815: 0x0040, 0x1816: 0x0040, 0x1817: 0x3008,\n\t0x1818: 0x0040, 0x1819: 0x0040, 0x181a: 0x0040, 0x181b: 0x0040, 0x181c: 0x0040, 0x181d: 0x0008,\n\t0x181e: 0x0008, 0x181f: 0x0008, 0x1820: 0x0008, 0x1821: 0x0008, 0x1822: 0x3008, 0x1823: 0x3008,\n\t0x1824: 0x0040, 0x1825: 0x0040, 0x1826: 0x3308, 0x1827: 0x3308, 0x1828: 0x3308, 0x1829: 0x3308,\n\t0x182a: 0x3308, 0x182b: 0x3308, 0x182c: 0x3308, 0x182d: 0x0040, 0x182e: 0x0040, 0x182f: 0x0040,\n\t0x1830: 0x3308, 0x1831: 0x3308, 0x1832: 0x3308, 0x1833: 0x3308, 0x1834: 0x3308, 0x1835: 0x0040,\n\t0x1836: 0x0040, 0x1837: 0x0040, 0x1838: 0x0040, 0x1839: 0x0040, 0x183a: 0x0040, 0x183b: 0x0040,\n\t0x183c: 0x0040, 0x183d: 0x0040, 0x183e: 0x0040, 0x183f: 0x0040,\n\t// Block 0x61, offset 0x1840\n\t0x1840: 0x0039, 0x1841: 0x0ee9, 0x1842: 0x1159, 0x1843: 0x0ef9, 0x1844: 0x0f09, 0x1845: 0x1199,\n\t0x1846: 0x0f31, 0x1847: 0x0249, 0x1848: 0x0f41, 0x1849: 0x0259, 0x184a: 0x0f51, 0x184b: 0x0359,\n\t0x184c: 0x0f61, 0x184d: 0x0f71, 0x184e: 0x00d9, 0x184f: 0x0f99, 0x1850: 0x2039, 0x1851: 0x0269,\n\t0x1852: 0x01d9, 0x1853: 0x0fa9, 0x1854: 0x0fb9, 0x1855: 0x1089, 0x1856: 0x0279, 0x1857: 0x0369,\n\t0x1858: 0x0289, 0x1859: 0x13d1, 0x185a: 0x0039, 0x185b: 0x0ee9, 0x185c: 0x1159, 0x185d: 0x0ef9,\n\t0x185e: 0x0f09, 0x185f: 0x1199, 0x1860: 0x0f31, 0x1861: 0x0249, 0x1862: 0x0f41, 0x1863: 0x0259,\n\t0x1864: 0x0f51, 0x1865: 0x0359, 0x1866: 0x0f61, 0x1867: 0x0f71, 0x1868: 0x00d9, 0x1869: 0x0f99,\n\t0x186a: 0x2039, 0x186b: 0x0269, 0x186c: 0x01d9, 0x186d: 0x0fa9, 0x186e: 0x0fb9, 0x186f: 0x1089,\n\t0x1870: 0x0279, 0x1871: 0x0369, 0x1872: 0x0289, 0x1873: 0x13d1, 0x1874: 0x0039, 0x1875: 0x0ee9,\n\t0x1876: 0x1159, 0x1877: 0x0ef9, 0x1878: 0x0f09, 0x1879: 0x1199, 0x187a: 0x0f31, 0x187b: 0x0249,\n\t0x187c: 0x0f41, 0x187d: 0x0259, 0x187e: 0x0f51, 0x187f: 0x0359,\n\t// Block 0x62, offset 0x1880\n\t0x1880: 0x0f61, 0x1881: 0x0f71, 0x1882: 0x00d9, 0x1883: 0x0f99, 0x1884: 0x2039, 0x1885: 0x0269,\n\t0x1886: 0x01d9, 0x1887: 0x0fa9, 0x1888: 0x0fb9, 0x1889: 0x1089, 0x188a: 0x0279, 0x188b: 0x0369,\n\t0x188c: 0x0289, 0x188d: 0x13d1, 0x188e: 0x0039, 0x188f: 0x0ee9, 0x1890: 0x1159, 0x1891: 0x0ef9,\n\t0x1892: 0x0f09, 0x1893: 0x1199, 0x1894: 0x0f31, 0x1895: 0x0040, 0x1896: 0x0f41, 0x1897: 0x0259,\n\t0x1898: 0x0f51, 0x1899: 0x0359, 0x189a: 0x0f61, 0x189b: 0x0f71, 0x189c: 0x00d9, 0x189d: 0x0f99,\n\t0x189e: 0x2039, 0x189f: 0x0269, 0x18a0: 0x01d9, 0x18a1: 0x0fa9, 0x18a2: 0x0fb9, 0x18a3: 0x1089,\n\t0x18a4: 0x0279, 0x18a5: 0x0369, 0x18a6: 0x0289, 0x18a7: 0x13d1, 0x18a8: 0x0039, 0x18a9: 0x0ee9,\n\t0x18aa: 0x1159, 0x18ab: 0x0ef9, 0x18ac: 0x0f09, 0x18ad: 0x1199, 0x18ae: 0x0f31, 0x18af: 0x0249,\n\t0x18b0: 0x0f41, 0x18b1: 0x0259, 0x18b2: 0x0f51, 0x18b3: 0x0359, 0x18b4: 0x0f61, 0x18b5: 0x0f71,\n\t0x18b6: 0x00d9, 0x18b7: 0x0f99, 0x18b8: 0x2039, 0x18b9: 0x0269, 0x18ba: 0x01d9, 0x18bb: 0x0fa9,\n\t0x18bc: 0x0fb9, 0x18bd: 0x1089, 0x18be: 0x0279, 0x18bf: 0x0369,\n\t// Block 0x63, offset 0x18c0\n\t0x18c0: 0x0289, 0x18c1: 0x13d1, 0x18c2: 0x0039, 0x18c3: 0x0ee9, 0x18c4: 0x1159, 0x18c5: 0x0ef9,\n\t0x18c6: 0x0f09, 0x18c7: 0x1199, 0x18c8: 0x0f31, 0x18c9: 0x0249, 0x18ca: 0x0f41, 0x18cb: 0x0259,\n\t0x18cc: 0x0f51, 0x18cd: 0x0359, 0x18ce: 0x0f61, 0x18cf: 0x0f71, 0x18d0: 0x00d9, 0x18d1: 0x0f99,\n\t0x18d2: 0x2039, 0x18d3: 0x0269, 0x18d4: 0x01d9, 0x18d5: 0x0fa9, 0x18d6: 0x0fb9, 0x18d7: 0x1089,\n\t0x18d8: 0x0279, 0x18d9: 0x0369, 0x18da: 0x0289, 0x18db: 0x13d1, 0x18dc: 0x0039, 0x18dd: 0x0040,\n\t0x18de: 0x1159, 0x18df: 0x0ef9, 0x18e0: 0x0040, 0x18e1: 0x0040, 0x18e2: 0x0f31, 0x18e3: 0x0040,\n\t0x18e4: 0x0040, 0x18e5: 0x0259, 0x18e6: 0x0f51, 0x18e7: 0x0040, 0x18e8: 0x0040, 0x18e9: 0x0f71,\n\t0x18ea: 0x00d9, 0x18eb: 0x0f99, 0x18ec: 0x2039, 0x18ed: 0x0040, 0x18ee: 0x01d9, 0x18ef: 0x0fa9,\n\t0x18f0: 0x0fb9, 0x18f1: 0x1089, 0x18f2: 0x0279, 0x18f3: 0x0369, 0x18f4: 0x0289, 0x18f5: 0x13d1,\n\t0x18f6: 0x0039, 0x18f7: 0x0ee9, 0x18f8: 0x1159, 0x18f9: 0x0ef9, 0x18fa: 0x0040, 0x18fb: 0x1199,\n\t0x18fc: 0x0040, 0x18fd: 0x0249, 0x18fe: 0x0f41, 0x18ff: 0x0259,\n\t// Block 0x64, offset 0x1900\n\t0x1900: 0x0f51, 0x1901: 0x0359, 0x1902: 0x0f61, 0x1903: 0x0f71, 0x1904: 0x0040, 0x1905: 0x0f99,\n\t0x1906: 0x2039, 0x1907: 0x0269, 0x1908: 0x01d9, 0x1909: 0x0fa9, 0x190a: 0x0fb9, 0x190b: 0x1089,\n\t0x190c: 0x0279, 0x190d: 0x0369, 0x190e: 0x0289, 0x190f: 0x13d1, 0x1910: 0x0039, 0x1911: 0x0ee9,\n\t0x1912: 0x1159, 0x1913: 0x0ef9, 0x1914: 0x0f09, 0x1915: 0x1199, 0x1916: 0x0f31, 0x1917: 0x0249,\n\t0x1918: 0x0f41, 0x1919: 0x0259, 0x191a: 0x0f51, 0x191b: 0x0359, 0x191c: 0x0f61, 0x191d: 0x0f71,\n\t0x191e: 0x00d9, 0x191f: 0x0f99, 0x1920: 0x2039, 0x1921: 0x0269, 0x1922: 0x01d9, 0x1923: 0x0fa9,\n\t0x1924: 0x0fb9, 0x1925: 0x1089, 0x1926: 0x0279, 0x1927: 0x0369, 0x1928: 0x0289, 0x1929: 0x13d1,\n\t0x192a: 0x0039, 0x192b: 0x0ee9, 0x192c: 0x1159, 0x192d: 0x0ef9, 0x192e: 0x0f09, 0x192f: 0x1199,\n\t0x1930: 0x0f31, 0x1931: 0x0249, 0x1932: 0x0f41, 0x1933: 0x0259, 0x1934: 0x0f51, 0x1935: 0x0359,\n\t0x1936: 0x0f61, 0x1937: 0x0f71, 0x1938: 0x00d9, 0x1939: 0x0f99, 0x193a: 0x2039, 0x193b: 0x0269,\n\t0x193c: 0x01d9, 0x193d: 0x0fa9, 0x193e: 0x0fb9, 0x193f: 0x1089,\n\t// Block 0x65, offset 0x1940\n\t0x1940: 0x0279, 0x1941: 0x0369, 0x1942: 0x0289, 0x1943: 0x13d1, 0x1944: 0x0039, 0x1945: 0x0ee9,\n\t0x1946: 0x0040, 0x1947: 0x0ef9, 0x1948: 0x0f09, 0x1949: 0x1199, 0x194a: 0x0f31, 0x194b: 0x0040,\n\t0x194c: 0x0040, 0x194d: 0x0259, 0x194e: 0x0f51, 0x194f: 0x0359, 0x1950: 0x0f61, 0x1951: 0x0f71,\n\t0x1952: 0x00d9, 0x1953: 0x0f99, 0x1954: 0x2039, 0x1955: 0x0040, 0x1956: 0x01d9, 0x1957: 0x0fa9,\n\t0x1958: 0x0fb9, 0x1959: 0x1089, 0x195a: 0x0279, 0x195b: 0x0369, 0x195c: 0x0289, 0x195d: 0x0040,\n\t0x195e: 0x0039, 0x195f: 0x0ee9, 0x1960: 0x1159, 0x1961: 0x0ef9, 0x1962: 0x0f09, 0x1963: 0x1199,\n\t0x1964: 0x0f31, 0x1965: 0x0249, 0x1966: 0x0f41, 0x1967: 0x0259, 0x1968: 0x0f51, 0x1969: 0x0359,\n\t0x196a: 0x0f61, 0x196b: 0x0f71, 0x196c: 0x00d9, 0x196d: 0x0f99, 0x196e: 0x2039, 0x196f: 0x0269,\n\t0x1970: 0x01d9, 0x1971: 0x0fa9, 0x1972: 0x0fb9, 0x1973: 0x1089, 0x1974: 0x0279, 0x1975: 0x0369,\n\t0x1976: 0x0289, 0x1977: 0x13d1, 0x1978: 0x0039, 0x1979: 0x0ee9, 0x197a: 0x0040, 0x197b: 0x0ef9,\n\t0x197c: 0x0f09, 0x197d: 0x1199, 0x197e: 0x0f31, 0x197f: 0x0040,\n\t// Block 0x66, offset 0x1980\n\t0x1980: 0x0f41, 0x1981: 0x0259, 0x1982: 0x0f51, 0x1983: 0x0359, 0x1984: 0x0f61, 0x1985: 0x0040,\n\t0x1986: 0x00d9, 0x1987: 0x0040, 0x1988: 0x0040, 0x1989: 0x0040, 0x198a: 0x01d9, 0x198b: 0x0fa9,\n\t0x198c: 0x0fb9, 0x198d: 0x1089, 0x198e: 0x0279, 0x198f: 0x0369, 0x1990: 0x0289, 0x1991: 0x0040,\n\t0x1992: 0x0039, 0x1993: 0x0ee9, 0x1994: 0x1159, 0x1995: 0x0ef9, 0x1996: 0x0f09, 0x1997: 0x1199,\n\t0x1998: 0x0f31, 0x1999: 0x0249, 0x199a: 0x0f41, 0x199b: 0x0259, 0x199c: 0x0f51, 0x199d: 0x0359,\n\t0x199e: 0x0f61, 0x199f: 0x0f71, 0x19a0: 0x00d9, 0x19a1: 0x0f99, 0x19a2: 0x2039, 0x19a3: 0x0269,\n\t0x19a4: 0x01d9, 0x19a5: 0x0fa9, 0x19a6: 0x0fb9, 0x19a7: 0x1089, 0x19a8: 0x0279, 0x19a9: 0x0369,\n\t0x19aa: 0x0289, 0x19ab: 0x13d1, 0x19ac: 0x0039, 0x19ad: 0x0ee9, 0x19ae: 0x1159, 0x19af: 0x0ef9,\n\t0x19b0: 0x0f09, 0x19b1: 0x1199, 0x19b2: 0x0f31, 0x19b3: 0x0249, 0x19b4: 0x0f41, 0x19b5: 0x0259,\n\t0x19b6: 0x0f51, 0x19b7: 0x0359, 0x19b8: 0x0f61, 0x19b9: 0x0f71, 0x19ba: 0x00d9, 0x19bb: 0x0f99,\n\t0x19bc: 0x2039, 0x19bd: 0x0269, 0x19be: 0x01d9, 0x19bf: 0x0fa9,\n\t// Block 0x67, offset 0x19c0\n\t0x19c0: 0x0fb9, 0x19c1: 0x1089, 0x19c2: 0x0279, 0x19c3: 0x0369, 0x19c4: 0x0289, 0x19c5: 0x13d1,\n\t0x19c6: 0x0039, 0x19c7: 0x0ee9, 0x19c8: 0x1159, 0x19c9: 0x0ef9, 0x19ca: 0x0f09, 0x19cb: 0x1199,\n\t0x19cc: 0x0f31, 0x19cd: 0x0249, 0x19ce: 0x0f41, 0x19cf: 0x0259, 0x19d0: 0x0f51, 0x19d1: 0x0359,\n\t0x19d2: 0x0f61, 0x19d3: 0x0f71, 0x19d4: 0x00d9, 0x19d5: 0x0f99, 0x19d6: 0x2039, 0x19d7: 0x0269,\n\t0x19d8: 0x01d9, 0x19d9: 0x0fa9, 0x19da: 0x0fb9, 0x19db: 0x1089, 0x19dc: 0x0279, 0x19dd: 0x0369,\n\t0x19de: 0x0289, 0x19df: 0x13d1, 0x19e0: 0x0039, 0x19e1: 0x0ee9, 0x19e2: 0x1159, 0x19e3: 0x0ef9,\n\t0x19e4: 0x0f09, 0x19e5: 0x1199, 0x19e6: 0x0f31, 0x19e7: 0x0249, 0x19e8: 0x0f41, 0x19e9: 0x0259,\n\t0x19ea: 0x0f51, 0x19eb: 0x0359, 0x19ec: 0x0f61, 0x19ed: 0x0f71, 0x19ee: 0x00d9, 0x19ef: 0x0f99,\n\t0x19f0: 0x2039, 0x19f1: 0x0269, 0x19f2: 0x01d9, 0x19f3: 0x0fa9, 0x19f4: 0x0fb9, 0x19f5: 0x1089,\n\t0x19f6: 0x0279, 0x19f7: 0x0369, 0x19f8: 0x0289, 0x19f9: 0x13d1, 0x19fa: 0x0039, 0x19fb: 0x0ee9,\n\t0x19fc: 0x1159, 0x19fd: 0x0ef9, 0x19fe: 0x0f09, 0x19ff: 0x1199,\n\t// Block 0x68, offset 0x1a00\n\t0x1a00: 0x0f31, 0x1a01: 0x0249, 0x1a02: 0x0f41, 0x1a03: 0x0259, 0x1a04: 0x0f51, 0x1a05: 0x0359,\n\t0x1a06: 0x0f61, 0x1a07: 0x0f71, 0x1a08: 0x00d9, 0x1a09: 0x0f99, 0x1a0a: 0x2039, 0x1a0b: 0x0269,\n\t0x1a0c: 0x01d9, 0x1a0d: 0x0fa9, 0x1a0e: 0x0fb9, 0x1a0f: 0x1089, 0x1a10: 0x0279, 0x1a11: 0x0369,\n\t0x1a12: 0x0289, 0x1a13: 0x13d1, 0x1a14: 0x0039, 0x1a15: 0x0ee9, 0x1a16: 0x1159, 0x1a17: 0x0ef9,\n\t0x1a18: 0x0f09, 0x1a19: 0x1199, 0x1a1a: 0x0f31, 0x1a1b: 0x0249, 0x1a1c: 0x0f41, 0x1a1d: 0x0259,\n\t0x1a1e: 0x0f51, 0x1a1f: 0x0359, 0x1a20: 0x0f61, 0x1a21: 0x0f71, 0x1a22: 0x00d9, 0x1a23: 0x0f99,\n\t0x1a24: 0x2039, 0x1a25: 0x0269, 0x1a26: 0x01d9, 0x1a27: 0x0fa9, 0x1a28: 0x0fb9, 0x1a29: 0x1089,\n\t0x1a2a: 0x0279, 0x1a2b: 0x0369, 0x1a2c: 0x0289, 0x1a2d: 0x13d1, 0x1a2e: 0x0039, 0x1a2f: 0x0ee9,\n\t0x1a30: 0x1159, 0x1a31: 0x0ef9, 0x1a32: 0x0f09, 0x1a33: 0x1199, 0x1a34: 0x0f31, 0x1a35: 0x0249,\n\t0x1a36: 0x0f41, 0x1a37: 0x0259, 0x1a38: 0x0f51, 0x1a39: 0x0359, 0x1a3a: 0x0f61, 0x1a3b: 0x0f71,\n\t0x1a3c: 0x00d9, 0x1a3d: 0x0f99, 0x1a3e: 0x2039, 0x1a3f: 0x0269,\n\t// Block 0x69, offset 0x1a40\n\t0x1a40: 0x01d9, 0x1a41: 0x0fa9, 0x1a42: 0x0fb9, 0x1a43: 0x1089, 0x1a44: 0x0279, 0x1a45: 0x0369,\n\t0x1a46: 0x0289, 0x1a47: 0x13d1, 0x1a48: 0x0039, 0x1a49: 0x0ee9, 0x1a4a: 0x1159, 0x1a4b: 0x0ef9,\n\t0x1a4c: 0x0f09, 0x1a4d: 0x1199, 0x1a4e: 0x0f31, 0x1a4f: 0x0249, 0x1a50: 0x0f41, 0x1a51: 0x0259,\n\t0x1a52: 0x0f51, 0x1a53: 0x0359, 0x1a54: 0x0f61, 0x1a55: 0x0f71, 0x1a56: 0x00d9, 0x1a57: 0x0f99,\n\t0x1a58: 0x2039, 0x1a59: 0x0269, 0x1a5a: 0x01d9, 0x1a5b: 0x0fa9, 0x1a5c: 0x0fb9, 0x1a5d: 0x1089,\n\t0x1a5e: 0x0279, 0x1a5f: 0x0369, 0x1a60: 0x0289, 0x1a61: 0x13d1, 0x1a62: 0x0039, 0x1a63: 0x0ee9,\n\t0x1a64: 0x1159, 0x1a65: 0x0ef9, 0x1a66: 0x0f09, 0x1a67: 0x1199, 0x1a68: 0x0f31, 0x1a69: 0x0249,\n\t0x1a6a: 0x0f41, 0x1a6b: 0x0259, 0x1a6c: 0x0f51, 0x1a6d: 0x0359, 0x1a6e: 0x0f61, 0x1a6f: 0x0f71,\n\t0x1a70: 0x00d9, 0x1a71: 0x0f99, 0x1a72: 0x2039, 0x1a73: 0x0269, 0x1a74: 0x01d9, 0x1a75: 0x0fa9,\n\t0x1a76: 0x0fb9, 0x1a77: 0x1089, 0x1a78: 0x0279, 0x1a79: 0x0369, 0x1a7a: 0x0289, 0x1a7b: 0x13d1,\n\t0x1a7c: 0x0039, 0x1a7d: 0x0ee9, 0x1a7e: 0x1159, 0x1a7f: 0x0ef9,\n\t// Block 0x6a, offset 0x1a80\n\t0x1a80: 0x0f09, 0x1a81: 0x1199, 0x1a82: 0x0f31, 0x1a83: 0x0249, 0x1a84: 0x0f41, 0x1a85: 0x0259,\n\t0x1a86: 0x0f51, 0x1a87: 0x0359, 0x1a88: 0x0f61, 0x1a89: 0x0f71, 0x1a8a: 0x00d9, 0x1a8b: 0x0f99,\n\t0x1a8c: 0x2039, 0x1a8d: 0x0269, 0x1a8e: 0x01d9, 0x1a8f: 0x0fa9, 0x1a90: 0x0fb9, 0x1a91: 0x1089,\n\t0x1a92: 0x0279, 0x1a93: 0x0369, 0x1a94: 0x0289, 0x1a95: 0x13d1, 0x1a96: 0x0039, 0x1a97: 0x0ee9,\n\t0x1a98: 0x1159, 0x1a99: 0x0ef9, 0x1a9a: 0x0f09, 0x1a9b: 0x1199, 0x1a9c: 0x0f31, 0x1a9d: 0x0249,\n\t0x1a9e: 0x0f41, 0x1a9f: 0x0259, 0x1aa0: 0x0f51, 0x1aa1: 0x0359, 0x1aa2: 0x0f61, 0x1aa3: 0x0f71,\n\t0x1aa4: 0x00d9, 0x1aa5: 0x0f99, 0x1aa6: 0x2039, 0x1aa7: 0x0269, 0x1aa8: 0x01d9, 0x1aa9: 0x0fa9,\n\t0x1aaa: 0x0fb9, 0x1aab: 0x1089, 0x1aac: 0x0279, 0x1aad: 0x0369, 0x1aae: 0x0289, 0x1aaf: 0x13d1,\n\t0x1ab0: 0x0039, 0x1ab1: 0x0ee9, 0x1ab2: 0x1159, 0x1ab3: 0x0ef9, 0x1ab4: 0x0f09, 0x1ab5: 0x1199,\n\t0x1ab6: 0x0f31, 0x1ab7: 0x0249, 0x1ab8: 0x0f41, 0x1ab9: 0x0259, 0x1aba: 0x0f51, 0x1abb: 0x0359,\n\t0x1abc: 0x0f61, 0x1abd: 0x0f71, 0x1abe: 0x00d9, 0x1abf: 0x0f99,\n\t// Block 0x6b, offset 0x1ac0\n\t0x1ac0: 0x2039, 0x1ac1: 0x0269, 0x1ac2: 0x01d9, 0x1ac3: 0x0fa9, 0x1ac4: 0x0fb9, 0x1ac5: 0x1089,\n\t0x1ac6: 0x0279, 0x1ac7: 0x0369, 0x1ac8: 0x0289, 0x1ac9: 0x13d1, 0x1aca: 0x0039, 0x1acb: 0x0ee9,\n\t0x1acc: 0x1159, 0x1acd: 0x0ef9, 0x1ace: 0x0f09, 0x1acf: 0x1199, 0x1ad0: 0x0f31, 0x1ad1: 0x0249,\n\t0x1ad2: 0x0f41, 0x1ad3: 0x0259, 0x1ad4: 0x0f51, 0x1ad5: 0x0359, 0x1ad6: 0x0f61, 0x1ad7: 0x0f71,\n\t0x1ad8: 0x00d9, 0x1ad9: 0x0f99, 0x1ada: 0x2039, 0x1adb: 0x0269, 0x1adc: 0x01d9, 0x1add: 0x0fa9,\n\t0x1ade: 0x0fb9, 0x1adf: 0x1089, 0x1ae0: 0x0279, 0x1ae1: 0x0369, 0x1ae2: 0x0289, 0x1ae3: 0x13d1,\n\t0x1ae4: 0xba81, 0x1ae5: 0xba99, 0x1ae6: 0x0040, 0x1ae7: 0x0040, 0x1ae8: 0xbab1, 0x1ae9: 0x1099,\n\t0x1aea: 0x10b1, 0x1aeb: 0x10c9, 0x1aec: 0xbac9, 0x1aed: 0xbae1, 0x1aee: 0xbaf9, 0x1aef: 0x1429,\n\t0x1af0: 0x1a31, 0x1af1: 0xbb11, 0x1af2: 0xbb29, 0x1af3: 0xbb41, 0x1af4: 0xbb59, 0x1af5: 0xbb71,\n\t0x1af6: 0xbb89, 0x1af7: 0x2109, 0x1af8: 0x1111, 0x1af9: 0x1429, 0x1afa: 0xbba1, 0x1afb: 0xbbb9,\n\t0x1afc: 0xbbd1, 0x1afd: 0x10e1, 0x1afe: 0x10f9, 0x1aff: 0xbbe9,\n\t// Block 0x6c, offset 0x1b00\n\t0x1b00: 0x2079, 0x1b01: 0xbc01, 0x1b02: 0xbab1, 0x1b03: 0x1099, 0x1b04: 0x10b1, 0x1b05: 0x10c9,\n\t0x1b06: 0xbac9, 0x1b07: 0xbae1, 0x1b08: 0xbaf9, 0x1b09: 0x1429, 0x1b0a: 0x1a31, 0x1b0b: 0xbb11,\n\t0x1b0c: 0xbb29, 0x1b0d: 0xbb41, 0x1b0e: 0xbb59, 0x1b0f: 0xbb71, 0x1b10: 0xbb89, 0x1b11: 0x2109,\n\t0x1b12: 0x1111, 0x1b13: 0xbba1, 0x1b14: 0xbba1, 0x1b15: 0xbbb9, 0x1b16: 0xbbd1, 0x1b17: 0x10e1,\n\t0x1b18: 0x10f9, 0x1b19: 0xbbe9, 0x1b1a: 0x2079, 0x1b1b: 0xbc21, 0x1b1c: 0xbac9, 0x1b1d: 0x1429,\n\t0x1b1e: 0xbb11, 0x1b1f: 0x10e1, 0x1b20: 0x1111, 0x1b21: 0x2109, 0x1b22: 0xbab1, 0x1b23: 0x1099,\n\t0x1b24: 0x10b1, 0x1b25: 0x10c9, 0x1b26: 0xbac9, 0x1b27: 0xbae1, 0x1b28: 0xbaf9, 0x1b29: 0x1429,\n\t0x1b2a: 0x1a31, 0x1b2b: 0xbb11, 0x1b2c: 0xbb29, 0x1b2d: 0xbb41, 0x1b2e: 0xbb59, 0x1b2f: 0xbb71,\n\t0x1b30: 0xbb89, 0x1b31: 0x2109, 0x1b32: 0x1111, 0x1b33: 0x1429, 0x1b34: 0xbba1, 0x1b35: 0xbbb9,\n\t0x1b36: 0xbbd1, 0x1b37: 0x10e1, 0x1b38: 0x10f9, 0x1b39: 0xbbe9, 0x1b3a: 0x2079, 0x1b3b: 0xbc01,\n\t0x1b3c: 0xbab1, 0x1b3d: 0x1099, 0x1b3e: 0x10b1, 0x1b3f: 0x10c9,\n\t// Block 0x6d, offset 0x1b40\n\t0x1b40: 0xbac9, 0x1b41: 0xbae1, 0x1b42: 0xbaf9, 0x1b43: 0x1429, 0x1b44: 0x1a31, 0x1b45: 0xbb11,\n\t0x1b46: 0xbb29, 0x1b47: 0xbb41, 0x1b48: 0xbb59, 0x1b49: 0xbb71, 0x1b4a: 0xbb89, 0x1b4b: 0x2109,\n\t0x1b4c: 0x1111, 0x1b4d: 0xbba1, 0x1b4e: 0xbba1, 0x1b4f: 0xbbb9, 0x1b50: 0xbbd1, 0x1b51: 0x10e1,\n\t0x1b52: 0x10f9, 0x1b53: 0xbbe9, 0x1b54: 0x2079, 0x1b55: 0xbc21, 0x1b56: 0xbac9, 0x1b57: 0x1429,\n\t0x1b58: 0xbb11, 0x1b59: 0x10e1, 0x1b5a: 0x1111, 0x1b5b: 0x2109, 0x1b5c: 0xbab1, 0x1b5d: 0x1099,\n\t0x1b5e: 0x10b1, 0x1b5f: 0x10c9, 0x1b60: 0xbac9, 0x1b61: 0xbae1, 0x1b62: 0xbaf9, 0x1b63: 0x1429,\n\t0x1b64: 0x1a31, 0x1b65: 0xbb11, 0x1b66: 0xbb29, 0x1b67: 0xbb41, 0x1b68: 0xbb59, 0x1b69: 0xbb71,\n\t0x1b6a: 0xbb89, 0x1b6b: 0x2109, 0x1b6c: 0x1111, 0x1b6d: 0x1429, 0x1b6e: 0xbba1, 0x1b6f: 0xbbb9,\n\t0x1b70: 0xbbd1, 0x1b71: 0x10e1, 0x1b72: 0x10f9, 0x1b73: 0xbbe9, 0x1b74: 0x2079, 0x1b75: 0xbc01,\n\t0x1b76: 0xbab1, 0x1b77: 0x1099, 0x1b78: 0x10b1, 0x1b79: 0x10c9, 0x1b7a: 0xbac9, 0x1b7b: 0xbae1,\n\t0x1b7c: 0xbaf9, 0x1b7d: 0x1429, 0x1b7e: 0x1a31, 0x1b7f: 0xbb11,\n\t// Block 0x6e, offset 0x1b80\n\t0x1b80: 0xbb29, 0x1b81: 0xbb41, 0x1b82: 0xbb59, 0x1b83: 0xbb71, 0x1b84: 0xbb89, 0x1b85: 0x2109,\n\t0x1b86: 0x1111, 0x1b87: 0xbba1, 0x1b88: 0xbba1, 0x1b89: 0xbbb9, 0x1b8a: 0xbbd1, 0x1b8b: 0x10e1,\n\t0x1b8c: 0x10f9, 0x1b8d: 0xbbe9, 0x1b8e: 0x2079, 0x1b8f: 0xbc21, 0x1b90: 0xbac9, 0x1b91: 0x1429,\n\t0x1b92: 0xbb11, 0x1b93: 0x10e1, 0x1b94: 0x1111, 0x1b95: 0x2109, 0x1b96: 0xbab1, 0x1b97: 0x1099,\n\t0x1b98: 0x10b1, 0x1b99: 0x10c9, 0x1b9a: 0xbac9, 0x1b9b: 0xbae1, 0x1b9c: 0xbaf9, 0x1b9d: 0x1429,\n\t0x1b9e: 0x1a31, 0x1b9f: 0xbb11, 0x1ba0: 0xbb29, 0x1ba1: 0xbb41, 0x1ba2: 0xbb59, 0x1ba3: 0xbb71,\n\t0x1ba4: 0xbb89, 0x1ba5: 0x2109, 0x1ba6: 0x1111, 0x1ba7: 0x1429, 0x1ba8: 0xbba1, 0x1ba9: 0xbbb9,\n\t0x1baa: 0xbbd1, 0x1bab: 0x10e1, 0x1bac: 0x10f9, 0x1bad: 0xbbe9, 0x1bae: 0x2079, 0x1baf: 0xbc01,\n\t0x1bb0: 0xbab1, 0x1bb1: 0x1099, 0x1bb2: 0x10b1, 0x1bb3: 0x10c9, 0x1bb4: 0xbac9, 0x1bb5: 0xbae1,\n\t0x1bb6: 0xbaf9, 0x1bb7: 0x1429, 0x1bb8: 0x1a31, 0x1bb9: 0xbb11, 0x1bba: 0xbb29, 0x1bbb: 0xbb41,\n\t0x1bbc: 0xbb59, 0x1bbd: 0xbb71, 0x1bbe: 0xbb89, 0x1bbf: 0x2109,\n\t// Block 0x6f, offset 0x1bc0\n\t0x1bc0: 0x1111, 0x1bc1: 0xbba1, 0x1bc2: 0xbba1, 0x1bc3: 0xbbb9, 0x1bc4: 0xbbd1, 0x1bc5: 0x10e1,\n\t0x1bc6: 0x10f9, 0x1bc7: 0xbbe9, 0x1bc8: 0x2079, 0x1bc9: 0xbc21, 0x1bca: 0xbac9, 0x1bcb: 0x1429,\n\t0x1bcc: 0xbb11, 0x1bcd: 0x10e1, 0x1bce: 0x1111, 0x1bcf: 0x2109, 0x1bd0: 0xbab1, 0x1bd1: 0x1099,\n\t0x1bd2: 0x10b1, 0x1bd3: 0x10c9, 0x1bd4: 0xbac9, 0x1bd5: 0xbae1, 0x1bd6: 0xbaf9, 0x1bd7: 0x1429,\n\t0x1bd8: 0x1a31, 0x1bd9: 0xbb11, 0x1bda: 0xbb29, 0x1bdb: 0xbb41, 0x1bdc: 0xbb59, 0x1bdd: 0xbb71,\n\t0x1bde: 0xbb89, 0x1bdf: 0x2109, 0x1be0: 0x1111, 0x1be1: 0x1429, 0x1be2: 0xbba1, 0x1be3: 0xbbb9,\n\t0x1be4: 0xbbd1, 0x1be5: 0x10e1, 0x1be6: 0x10f9, 0x1be7: 0xbbe9, 0x1be8: 0x2079, 0x1be9: 0xbc01,\n\t0x1bea: 0xbab1, 0x1beb: 0x1099, 0x1bec: 0x10b1, 0x1bed: 0x10c9, 0x1bee: 0xbac9, 0x1bef: 0xbae1,\n\t0x1bf0: 0xbaf9, 0x1bf1: 0x1429, 0x1bf2: 0x1a31, 0x1bf3: 0xbb11, 0x1bf4: 0xbb29, 0x1bf5: 0xbb41,\n\t0x1bf6: 0xbb59, 0x1bf7: 0xbb71, 0x1bf8: 0xbb89, 0x1bf9: 0x2109, 0x1bfa: 0x1111, 0x1bfb: 0xbba1,\n\t0x1bfc: 0xbba1, 0x1bfd: 0xbbb9, 0x1bfe: 0xbbd1, 0x1bff: 0x10e1,\n\t// Block 0x70, offset 0x1c00\n\t0x1c00: 0x10f9, 0x1c01: 0xbbe9, 0x1c02: 0x2079, 0x1c03: 0xbc21, 0x1c04: 0xbac9, 0x1c05: 0x1429,\n\t0x1c06: 0xbb11, 0x1c07: 0x10e1, 0x1c08: 0x1111, 0x1c09: 0x2109, 0x1c0a: 0xbc41, 0x1c0b: 0xbc41,\n\t0x1c0c: 0x0040, 0x1c0d: 0x0040, 0x1c0e: 0x1f41, 0x1c0f: 0x00c9, 0x1c10: 0x0069, 0x1c11: 0x0079,\n\t0x1c12: 0x1f51, 0x1c13: 0x1f61, 0x1c14: 0x1f71, 0x1c15: 0x1f81, 0x1c16: 0x1f91, 0x1c17: 0x1fa1,\n\t0x1c18: 0x1f41, 0x1c19: 0x00c9, 0x1c1a: 0x0069, 0x1c1b: 0x0079, 0x1c1c: 0x1f51, 0x1c1d: 0x1f61,\n\t0x1c1e: 0x1f71, 0x1c1f: 0x1f81, 0x1c20: 0x1f91, 0x1c21: 0x1fa1, 0x1c22: 0x1f41, 0x1c23: 0x00c9,\n\t0x1c24: 0x0069, 0x1c25: 0x0079, 0x1c26: 0x1f51, 0x1c27: 0x1f61, 0x1c28: 0x1f71, 0x1c29: 0x1f81,\n\t0x1c2a: 0x1f91, 0x1c2b: 0x1fa1, 0x1c2c: 0x1f41, 0x1c2d: 0x00c9, 0x1c2e: 0x0069, 0x1c2f: 0x0079,\n\t0x1c30: 0x1f51, 0x1c31: 0x1f61, 0x1c32: 0x1f71, 0x1c33: 0x1f81, 0x1c34: 0x1f91, 0x1c35: 0x1fa1,\n\t0x1c36: 0x1f41, 0x1c37: 0x00c9, 0x1c38: 0x0069, 0x1c39: 0x0079, 0x1c3a: 0x1f51, 0x1c3b: 0x1f61,\n\t0x1c3c: 0x1f71, 0x1c3d: 0x1f81, 0x1c3e: 0x1f91, 0x1c3f: 0x1fa1,\n\t// Block 0x71, offset 0x1c40\n\t0x1c40: 0xe115, 0x1c41: 0xe115, 0x1c42: 0xe135, 0x1c43: 0xe135, 0x1c44: 0xe115, 0x1c45: 0xe115,\n\t0x1c46: 0xe175, 0x1c47: 0xe175, 0x1c48: 0xe115, 0x1c49: 0xe115, 0x1c4a: 0xe135, 0x1c4b: 0xe135,\n\t0x1c4c: 0xe115, 0x1c4d: 0xe115, 0x1c4e: 0xe1f5, 0x1c4f: 0xe1f5, 0x1c50: 0xe115, 0x1c51: 0xe115,\n\t0x1c52: 0xe135, 0x1c53: 0xe135, 0x1c54: 0xe115, 0x1c55: 0xe115, 0x1c56: 0xe175, 0x1c57: 0xe175,\n\t0x1c58: 0xe115, 0x1c59: 0xe115, 0x1c5a: 0xe135, 0x1c5b: 0xe135, 0x1c5c: 0xe115, 0x1c5d: 0xe115,\n\t0x1c5e: 0x8b05, 0x1c5f: 0x8b05, 0x1c60: 0x04b5, 0x1c61: 0x04b5, 0x1c62: 0x0a08, 0x1c63: 0x0a08,\n\t0x1c64: 0x0a08, 0x1c65: 0x0a08, 0x1c66: 0x0a08, 0x1c67: 0x0a08, 0x1c68: 0x0a08, 0x1c69: 0x0a08,\n\t0x1c6a: 0x0a08, 0x1c6b: 0x0a08, 0x1c6c: 0x0a08, 0x1c6d: 0x0a08, 0x1c6e: 0x0a08, 0x1c6f: 0x0a08,\n\t0x1c70: 0x0a08, 0x1c71: 0x0a08, 0x1c72: 0x0a08, 0x1c73: 0x0a08, 0x1c74: 0x0a08, 0x1c75: 0x0a08,\n\t0x1c76: 0x0a08, 0x1c77: 0x0a08, 0x1c78: 0x0a08, 0x1c79: 0x0a08, 0x1c7a: 0x0a08, 0x1c7b: 0x0a08,\n\t0x1c7c: 0x0a08, 0x1c7d: 0x0a08, 0x1c7e: 0x0a08, 0x1c7f: 0x0a08,\n\t// Block 0x72, offset 0x1c80\n\t0x1c80: 0xb189, 0x1c81: 0xb1a1, 0x1c82: 0xb201, 0x1c83: 0xb249, 0x1c84: 0x0040, 0x1c85: 0xb411,\n\t0x1c86: 0xb291, 0x1c87: 0xb219, 0x1c88: 0xb309, 0x1c89: 0xb429, 0x1c8a: 0xb399, 0x1c8b: 0xb3b1,\n\t0x1c8c: 0xb3c9, 0x1c8d: 0xb3e1, 0x1c8e: 0xb2a9, 0x1c8f: 0xb339, 0x1c90: 0xb369, 0x1c91: 0xb2d9,\n\t0x1c92: 0xb381, 0x1c93: 0xb279, 0x1c94: 0xb2c1, 0x1c95: 0xb1d1, 0x1c96: 0xb1e9, 0x1c97: 0xb231,\n\t0x1c98: 0xb261, 0x1c99: 0xb2f1, 0x1c9a: 0xb321, 0x1c9b: 0xb351, 0x1c9c: 0xbc59, 0x1c9d: 0x7949,\n\t0x1c9e: 0xbc71, 0x1c9f: 0xbc89, 0x1ca0: 0x0040, 0x1ca1: 0xb1a1, 0x1ca2: 0xb201, 0x1ca3: 0x0040,\n\t0x1ca4: 0xb3f9, 0x1ca5: 0x0040, 0x1ca6: 0x0040, 0x1ca7: 0xb219, 0x1ca8: 0x0040, 0x1ca9: 0xb429,\n\t0x1caa: 0xb399, 0x1cab: 0xb3b1, 0x1cac: 0xb3c9, 0x1cad: 0xb3e1, 0x1cae: 0xb2a9, 0x1caf: 0xb339,\n\t0x1cb0: 0xb369, 0x1cb1: 0xb2d9, 0x1cb2: 0xb381, 0x1cb3: 0x0040, 0x1cb4: 0xb2c1, 0x1cb5: 0xb1d1,\n\t0x1cb6: 0xb1e9, 0x1cb7: 0xb231, 0x1cb8: 0x0040, 0x1cb9: 0xb2f1, 0x1cba: 0x0040, 0x1cbb: 0xb351,\n\t0x1cbc: 0x0040, 0x1cbd: 0x0040, 0x1cbe: 0x0040, 0x1cbf: 0x0040,\n\t// Block 0x73, offset 0x1cc0\n\t0x1cc0: 0x0040, 0x1cc1: 0x0040, 0x1cc2: 0xb201, 0x1cc3: 0x0040, 0x1cc4: 0x0040, 0x1cc5: 0x0040,\n\t0x1cc6: 0x0040, 0x1cc7: 0xb219, 0x1cc8: 0x0040, 0x1cc9: 0xb429, 0x1cca: 0x0040, 0x1ccb: 0xb3b1,\n\t0x1ccc: 0x0040, 0x1ccd: 0xb3e1, 0x1cce: 0xb2a9, 0x1ccf: 0xb339, 0x1cd0: 0x0040, 0x1cd1: 0xb2d9,\n\t0x1cd2: 0xb381, 0x1cd3: 0x0040, 0x1cd4: 0xb2c1, 0x1cd5: 0x0040, 0x1cd6: 0x0040, 0x1cd7: 0xb231,\n\t0x1cd8: 0x0040, 0x1cd9: 0xb2f1, 0x1cda: 0x0040, 0x1cdb: 0xb351, 0x1cdc: 0x0040, 0x1cdd: 0x7949,\n\t0x1cde: 0x0040, 0x1cdf: 0xbc89, 0x1ce0: 0x0040, 0x1ce1: 0xb1a1, 0x1ce2: 0xb201, 0x1ce3: 0x0040,\n\t0x1ce4: 0xb3f9, 0x1ce5: 0x0040, 0x1ce6: 0x0040, 0x1ce7: 0xb219, 0x1ce8: 0xb309, 0x1ce9: 0xb429,\n\t0x1cea: 0xb399, 0x1ceb: 0x0040, 0x1cec: 0xb3c9, 0x1ced: 0xb3e1, 0x1cee: 0xb2a9, 0x1cef: 0xb339,\n\t0x1cf0: 0xb369, 0x1cf1: 0xb2d9, 0x1cf2: 0xb381, 0x1cf3: 0x0040, 0x1cf4: 0xb2c1, 0x1cf5: 0xb1d1,\n\t0x1cf6: 0xb1e9, 0x1cf7: 0xb231, 0x1cf8: 0x0040, 0x1cf9: 0xb2f1, 0x1cfa: 0xb321, 0x1cfb: 0xb351,\n\t0x1cfc: 0xbc59, 0x1cfd: 0x0040, 0x1cfe: 0xbc71, 0x1cff: 0x0040,\n\t// Block 0x74, offset 0x1d00\n\t0x1d00: 0xb189, 0x1d01: 0xb1a1, 0x1d02: 0xb201, 0x1d03: 0xb249, 0x1d04: 0xb3f9, 0x1d05: 0xb411,\n\t0x1d06: 0xb291, 0x1d07: 0xb219, 0x1d08: 0xb309, 0x1d09: 0xb429, 0x1d0a: 0x0040, 0x1d0b: 0xb3b1,\n\t0x1d0c: 0xb3c9, 0x1d0d: 0xb3e1, 0x1d0e: 0xb2a9, 0x1d0f: 0xb339, 0x1d10: 0xb369, 0x1d11: 0xb2d9,\n\t0x1d12: 0xb381, 0x1d13: 0xb279, 0x1d14: 0xb2c1, 0x1d15: 0xb1d1, 0x1d16: 0xb1e9, 0x1d17: 0xb231,\n\t0x1d18: 0xb261, 0x1d19: 0xb2f1, 0x1d1a: 0xb321, 0x1d1b: 0xb351, 0x1d1c: 0x0040, 0x1d1d: 0x0040,\n\t0x1d1e: 0x0040, 0x1d1f: 0x0040, 0x1d20: 0x0040, 0x1d21: 0xb1a1, 0x1d22: 0xb201, 0x1d23: 0xb249,\n\t0x1d24: 0x0040, 0x1d25: 0xb411, 0x1d26: 0xb291, 0x1d27: 0xb219, 0x1d28: 0xb309, 0x1d29: 0xb429,\n\t0x1d2a: 0x0040, 0x1d2b: 0xb3b1, 0x1d2c: 0xb3c9, 0x1d2d: 0xb3e1, 0x1d2e: 0xb2a9, 0x1d2f: 0xb339,\n\t0x1d30: 0xb369, 0x1d31: 0xb2d9, 0x1d32: 0xb381, 0x1d33: 0xb279, 0x1d34: 0xb2c1, 0x1d35: 0xb1d1,\n\t0x1d36: 0xb1e9, 0x1d37: 0xb231, 0x1d38: 0xb261, 0x1d39: 0xb2f1, 0x1d3a: 0xb321, 0x1d3b: 0xb351,\n\t0x1d3c: 0x0040, 0x1d3d: 0x0040, 0x1d3e: 0x0040, 0x1d3f: 0x0040,\n\t// Block 0x75, offset 0x1d40\n\t0x1d40: 0x0040, 0x1d41: 0xbca2, 0x1d42: 0xbcba, 0x1d43: 0xbcd2, 0x1d44: 0xbcea, 0x1d45: 0xbd02,\n\t0x1d46: 0xbd1a, 0x1d47: 0xbd32, 0x1d48: 0xbd4a, 0x1d49: 0xbd62, 0x1d4a: 0xbd7a, 0x1d4b: 0x0018,\n\t0x1d4c: 0x0018, 0x1d4d: 0x0040, 0x1d4e: 0x0040, 0x1d4f: 0x0040, 0x1d50: 0xbd92, 0x1d51: 0xbdb2,\n\t0x1d52: 0xbdd2, 0x1d53: 0xbdf2, 0x1d54: 0xbe12, 0x1d55: 0xbe32, 0x1d56: 0xbe52, 0x1d57: 0xbe72,\n\t0x1d58: 0xbe92, 0x1d59: 0xbeb2, 0x1d5a: 0xbed2, 0x1d5b: 0xbef2, 0x1d5c: 0xbf12, 0x1d5d: 0xbf32,\n\t0x1d5e: 0xbf52, 0x1d5f: 0xbf72, 0x1d60: 0xbf92, 0x1d61: 0xbfb2, 0x1d62: 0xbfd2, 0x1d63: 0xbff2,\n\t0x1d64: 0xc012, 0x1d65: 0xc032, 0x1d66: 0xc052, 0x1d67: 0xc072, 0x1d68: 0xc092, 0x1d69: 0xc0b2,\n\t0x1d6a: 0xc0d1, 0x1d6b: 0x1159, 0x1d6c: 0x0269, 0x1d6d: 0x6671, 0x1d6e: 0xc111, 0x1d6f: 0x0018,\n\t0x1d70: 0x0039, 0x1d71: 0x0ee9, 0x1d72: 0x1159, 0x1d73: 0x0ef9, 0x1d74: 0x0f09, 0x1d75: 0x1199,\n\t0x1d76: 0x0f31, 0x1d77: 0x0249, 0x1d78: 0x0f41, 0x1d79: 0x0259, 0x1d7a: 0x0f51, 0x1d7b: 0x0359,\n\t0x1d7c: 0x0f61, 0x1d7d: 0x0f71, 0x1d7e: 0x00d9, 0x1d7f: 0x0f99,\n\t// Block 0x76, offset 0x1d80\n\t0x1d80: 0x2039, 0x1d81: 0x0269, 0x1d82: 0x01d9, 0x1d83: 0x0fa9, 0x1d84: 0x0fb9, 0x1d85: 0x1089,\n\t0x1d86: 0x0279, 0x1d87: 0x0369, 0x1d88: 0x0289, 0x1d89: 0x13d1, 0x1d8a: 0xc129, 0x1d8b: 0x65b1,\n\t0x1d8c: 0xc141, 0x1d8d: 0x1441, 0x1d8e: 0xc159, 0x1d8f: 0xc179, 0x1d90: 0x0018, 0x1d91: 0x0018,\n\t0x1d92: 0x0018, 0x1d93: 0x0018, 0x1d94: 0x0018, 0x1d95: 0x0018, 0x1d96: 0x0018, 0x1d97: 0x0018,\n\t0x1d98: 0x0018, 0x1d99: 0x0018, 0x1d9a: 0x0018, 0x1d9b: 0x0018, 0x1d9c: 0x0018, 0x1d9d: 0x0018,\n\t0x1d9e: 0x0018, 0x1d9f: 0x0018, 0x1da0: 0x0018, 0x1da1: 0x0018, 0x1da2: 0x0018, 0x1da3: 0x0018,\n\t0x1da4: 0x0018, 0x1da5: 0x0018, 0x1da6: 0x0018, 0x1da7: 0x0018, 0x1da8: 0x0018, 0x1da9: 0x0018,\n\t0x1daa: 0xc191, 0x1dab: 0xc1a9, 0x1dac: 0x0040, 0x1dad: 0x0040, 0x1dae: 0x0040, 0x1daf: 0x0040,\n\t0x1db0: 0x0018, 0x1db1: 0x0018, 0x1db2: 0x0018, 0x1db3: 0x0018, 0x1db4: 0x0018, 0x1db5: 0x0018,\n\t0x1db6: 0x0018, 0x1db7: 0x0018, 0x1db8: 0x0018, 0x1db9: 0x0018, 0x1dba: 0x0018, 0x1dbb: 0x0018,\n\t0x1dbc: 0x0018, 0x1dbd: 0x0018, 0x1dbe: 0x0018, 0x1dbf: 0x0018,\n\t// Block 0x77, offset 0x1dc0\n\t0x1dc0: 0xc1d9, 0x1dc1: 0xc211, 0x1dc2: 0xc249, 0x1dc3: 0x0040, 0x1dc4: 0x0040, 0x1dc5: 0x0040,\n\t0x1dc6: 0x0040, 0x1dc7: 0x0040, 0x1dc8: 0x0040, 0x1dc9: 0x0040, 0x1dca: 0x0040, 0x1dcb: 0x0040,\n\t0x1dcc: 0x0040, 0x1dcd: 0x0040, 0x1dce: 0x0040, 0x1dcf: 0x0040, 0x1dd0: 0xc269, 0x1dd1: 0xc289,\n\t0x1dd2: 0xc2a9, 0x1dd3: 0xc2c9, 0x1dd4: 0xc2e9, 0x1dd5: 0xc309, 0x1dd6: 0xc329, 0x1dd7: 0xc349,\n\t0x1dd8: 0xc369, 0x1dd9: 0xc389, 0x1dda: 0xc3a9, 0x1ddb: 0xc3c9, 0x1ddc: 0xc3e9, 0x1ddd: 0xc409,\n\t0x1dde: 0xc429, 0x1ddf: 0xc449, 0x1de0: 0xc469, 0x1de1: 0xc489, 0x1de2: 0xc4a9, 0x1de3: 0xc4c9,\n\t0x1de4: 0xc4e9, 0x1de5: 0xc509, 0x1de6: 0xc529, 0x1de7: 0xc549, 0x1de8: 0xc569, 0x1de9: 0xc589,\n\t0x1dea: 0xc5a9, 0x1deb: 0xc5c9, 0x1dec: 0xc5e9, 0x1ded: 0xc609, 0x1dee: 0xc629, 0x1def: 0xc649,\n\t0x1df0: 0xc669, 0x1df1: 0xc689, 0x1df2: 0xc6a9, 0x1df3: 0xc6c9, 0x1df4: 0xc6e9, 0x1df5: 0xc709,\n\t0x1df6: 0xc729, 0x1df7: 0xc749, 0x1df8: 0xc769, 0x1df9: 0xc789, 0x1dfa: 0xc7a9, 0x1dfb: 0xc7c9,\n\t0x1dfc: 0x0040, 0x1dfd: 0x0040, 0x1dfe: 0x0040, 0x1dff: 0x0040,\n\t// Block 0x78, offset 0x1e00\n\t0x1e00: 0xcaf9, 0x1e01: 0xcb19, 0x1e02: 0xcb39, 0x1e03: 0x8b1d, 0x1e04: 0xcb59, 0x1e05: 0xcb79,\n\t0x1e06: 0xcb99, 0x1e07: 0xcbb9, 0x1e08: 0xcbd9, 0x1e09: 0xcbf9, 0x1e0a: 0xcc19, 0x1e0b: 0xcc39,\n\t0x1e0c: 0xcc59, 0x1e0d: 0x8b3d, 0x1e0e: 0xcc79, 0x1e0f: 0xcc99, 0x1e10: 0xccb9, 0x1e11: 0xccd9,\n\t0x1e12: 0x8b5d, 0x1e13: 0xccf9, 0x1e14: 0xcd19, 0x1e15: 0xc429, 0x1e16: 0x8b7d, 0x1e17: 0xcd39,\n\t0x1e18: 0xcd59, 0x1e19: 0xcd79, 0x1e1a: 0xcd99, 0x1e1b: 0xcdb9, 0x1e1c: 0x8b9d, 0x1e1d: 0xcdd9,\n\t0x1e1e: 0xcdf9, 0x1e1f: 0xce19, 0x1e20: 0xce39, 0x1e21: 0xce59, 0x1e22: 0xc789, 0x1e23: 0xce79,\n\t0x1e24: 0xce99, 0x1e25: 0xceb9, 0x1e26: 0xced9, 0x1e27: 0xcef9, 0x1e28: 0xcf19, 0x1e29: 0xcf39,\n\t0x1e2a: 0xcf59, 0x1e2b: 0xcf79, 0x1e2c: 0xcf99, 0x1e2d: 0xcfb9, 0x1e2e: 0xcfd9, 0x1e2f: 0xcff9,\n\t0x1e30: 0xd019, 0x1e31: 0xd039, 0x1e32: 0xd039, 0x1e33: 0xd039, 0x1e34: 0x8bbd, 0x1e35: 0xd059,\n\t0x1e36: 0xd079, 0x1e37: 0xd099, 0x1e38: 0x8bdd, 0x1e39: 0xd0b9, 0x1e3a: 0xd0d9, 0x1e3b: 0xd0f9,\n\t0x1e3c: 0xd119, 0x1e3d: 0xd139, 0x1e3e: 0xd159, 0x1e3f: 0xd179,\n\t// Block 0x79, offset 0x1e40\n\t0x1e40: 0xd199, 0x1e41: 0xd1b9, 0x1e42: 0xd1d9, 0x1e43: 0xd1f9, 0x1e44: 0xd219, 0x1e45: 0xd239,\n\t0x1e46: 0xd239, 0x1e47: 0xd259, 0x1e48: 0xd279, 0x1e49: 0xd299, 0x1e4a: 0xd2b9, 0x1e4b: 0xd2d9,\n\t0x1e4c: 0xd2f9, 0x1e4d: 0xd319, 0x1e4e: 0xd339, 0x1e4f: 0xd359, 0x1e50: 0xd379, 0x1e51: 0xd399,\n\t0x1e52: 0xd3b9, 0x1e53: 0xd3d9, 0x1e54: 0xd3f9, 0x1e55: 0xd419, 0x1e56: 0xd439, 0x1e57: 0xd459,\n\t0x1e58: 0xd479, 0x1e59: 0x8bfd, 0x1e5a: 0xd499, 0x1e5b: 0xd4b9, 0x1e5c: 0xd4d9, 0x1e5d: 0xc309,\n\t0x1e5e: 0xd4f9, 0x1e5f: 0xd519, 0x1e60: 0x8c1d, 0x1e61: 0x8c3d, 0x1e62: 0xd539, 0x1e63: 0xd559,\n\t0x1e64: 0xd579, 0x1e65: 0xd599, 0x1e66: 0xd5b9, 0x1e67: 0xd5d9, 0x1e68: 0x2040, 0x1e69: 0xd5f9,\n\t0x1e6a: 0xd619, 0x1e6b: 0xd619, 0x1e6c: 0x8c5d, 0x1e6d: 0xd639, 0x1e6e: 0xd659, 0x1e6f: 0xd679,\n\t0x1e70: 0xd699, 0x1e71: 0x8c7d, 0x1e72: 0xd6b9, 0x1e73: 0xd6d9, 0x1e74: 0x2040, 0x1e75: 0xd6f9,\n\t0x1e76: 0xd719, 0x1e77: 0xd739, 0x1e78: 0xd759, 0x1e79: 0xd779, 0x1e7a: 0xd799, 0x1e7b: 0x8c9d,\n\t0x1e7c: 0xd7b9, 0x1e7d: 0x8cbd, 0x1e7e: 0xd7d9, 0x1e7f: 0xd7f9,\n\t// Block 0x7a, offset 0x1e80\n\t0x1e80: 0xd819, 0x1e81: 0xd839, 0x1e82: 0xd859, 0x1e83: 0xd879, 0x1e84: 0xd899, 0x1e85: 0xd8b9,\n\t0x1e86: 0xd8d9, 0x1e87: 0xd8f9, 0x1e88: 0xd919, 0x1e89: 0x8cdd, 0x1e8a: 0xd939, 0x1e8b: 0xd959,\n\t0x1e8c: 0xd979, 0x1e8d: 0xd999, 0x1e8e: 0xd9b9, 0x1e8f: 0x8cfd, 0x1e90: 0xd9d9, 0x1e91: 0x8d1d,\n\t0x1e92: 0x8d3d, 0x1e93: 0xd9f9, 0x1e94: 0xda19, 0x1e95: 0xda19, 0x1e96: 0xda39, 0x1e97: 0x8d5d,\n\t0x1e98: 0x8d7d, 0x1e99: 0xda59, 0x1e9a: 0xda79, 0x1e9b: 0xda99, 0x1e9c: 0xdab9, 0x1e9d: 0xdad9,\n\t0x1e9e: 0xdaf9, 0x1e9f: 0xdb19, 0x1ea0: 0xdb39, 0x1ea1: 0xdb59, 0x1ea2: 0xdb79, 0x1ea3: 0xdb99,\n\t0x1ea4: 0x8d9d, 0x1ea5: 0xdbb9, 0x1ea6: 0xdbd9, 0x1ea7: 0xdbf9, 0x1ea8: 0xdc19, 0x1ea9: 0xdbf9,\n\t0x1eaa: 0xdc39, 0x1eab: 0xdc59, 0x1eac: 0xdc79, 0x1ead: 0xdc99, 0x1eae: 0xdcb9, 0x1eaf: 0xdcd9,\n\t0x1eb0: 0xdcf9, 0x1eb1: 0xdd19, 0x1eb2: 0xdd39, 0x1eb3: 0xdd59, 0x1eb4: 0xdd79, 0x1eb5: 0xdd99,\n\t0x1eb6: 0xddb9, 0x1eb7: 0xddd9, 0x1eb8: 0x8dbd, 0x1eb9: 0xddf9, 0x1eba: 0xde19, 0x1ebb: 0xde39,\n\t0x1ebc: 0xde59, 0x1ebd: 0xde79, 0x1ebe: 0x8ddd, 0x1ebf: 0xde99,\n\t// Block 0x7b, offset 0x1ec0\n\t0x1ec0: 0xe599, 0x1ec1: 0xe5b9, 0x1ec2: 0xe5d9, 0x1ec3: 0xe5f9, 0x1ec4: 0xe619, 0x1ec5: 0xe639,\n\t0x1ec6: 0x8efd, 0x1ec7: 0xe659, 0x1ec8: 0xe679, 0x1ec9: 0xe699, 0x1eca: 0xe6b9, 0x1ecb: 0xe6d9,\n\t0x1ecc: 0xe6f9, 0x1ecd: 0x8f1d, 0x1ece: 0xe719, 0x1ecf: 0xe739, 0x1ed0: 0x8f3d, 0x1ed1: 0x8f5d,\n\t0x1ed2: 0xe759, 0x1ed3: 0xe779, 0x1ed4: 0xe799, 0x1ed5: 0xe7b9, 0x1ed6: 0xe7d9, 0x1ed7: 0xe7f9,\n\t0x1ed8: 0xe819, 0x1ed9: 0xe839, 0x1eda: 0xe859, 0x1edb: 0x8f7d, 0x1edc: 0xe879, 0x1edd: 0x8f9d,\n\t0x1ede: 0xe899, 0x1edf: 0x2040, 0x1ee0: 0xe8b9, 0x1ee1: 0xe8d9, 0x1ee2: 0xe8f9, 0x1ee3: 0x8fbd,\n\t0x1ee4: 0xe919, 0x1ee5: 0xe939, 0x1ee6: 0x8fdd, 0x1ee7: 0x8ffd, 0x1ee8: 0xe959, 0x1ee9: 0xe979,\n\t0x1eea: 0xe999, 0x1eeb: 0xe9b9, 0x1eec: 0xe9d9, 0x1eed: 0xe9d9, 0x1eee: 0xe9f9, 0x1eef: 0xea19,\n\t0x1ef0: 0xea39, 0x1ef1: 0xea59, 0x1ef2: 0xea79, 0x1ef3: 0xea99, 0x1ef4: 0xeab9, 0x1ef5: 0x901d,\n\t0x1ef6: 0xead9, 0x1ef7: 0x903d, 0x1ef8: 0xeaf9, 0x1ef9: 0x905d, 0x1efa: 0xeb19, 0x1efb: 0x907d,\n\t0x1efc: 0x909d, 0x1efd: 0x90bd, 0x1efe: 0xeb39, 0x1eff: 0xeb59,\n\t// Block 0x7c, offset 0x1f00\n\t0x1f00: 0xeb79, 0x1f01: 0x90dd, 0x1f02: 0x90fd, 0x1f03: 0x911d, 0x1f04: 0x913d, 0x1f05: 0xeb99,\n\t0x1f06: 0xebb9, 0x1f07: 0xebb9, 0x1f08: 0xebd9, 0x1f09: 0xebf9, 0x1f0a: 0xec19, 0x1f0b: 0xec39,\n\t0x1f0c: 0xec59, 0x1f0d: 0x915d, 0x1f0e: 0xec79, 0x1f0f: 0xec99, 0x1f10: 0xecb9, 0x1f11: 0xecd9,\n\t0x1f12: 0x917d, 0x1f13: 0xecf9, 0x1f14: 0x919d, 0x1f15: 0x91bd, 0x1f16: 0xed19, 0x1f17: 0xed39,\n\t0x1f18: 0xed59, 0x1f19: 0xed79, 0x1f1a: 0xed99, 0x1f1b: 0xedb9, 0x1f1c: 0x91dd, 0x1f1d: 0x91fd,\n\t0x1f1e: 0x921d, 0x1f1f: 0x2040, 0x1f20: 0xedd9, 0x1f21: 0x923d, 0x1f22: 0xedf9, 0x1f23: 0xee19,\n\t0x1f24: 0xee39, 0x1f25: 0x925d, 0x1f26: 0xee59, 0x1f27: 0xee79, 0x1f28: 0xee99, 0x1f29: 0xeeb9,\n\t0x1f2a: 0xeed9, 0x1f2b: 0x927d, 0x1f2c: 0xeef9, 0x1f2d: 0xef19, 0x1f2e: 0xef39, 0x1f2f: 0xef59,\n\t0x1f30: 0xef79, 0x1f31: 0xef99, 0x1f32: 0x929d, 0x1f33: 0x92bd, 0x1f34: 0xefb9, 0x1f35: 0x92dd,\n\t0x1f36: 0xefd9, 0x1f37: 0x92fd, 0x1f38: 0xeff9, 0x1f39: 0xf019, 0x1f3a: 0xf039, 0x1f3b: 0x931d,\n\t0x1f3c: 0x933d, 0x1f3d: 0xf059, 0x1f3e: 0x935d, 0x1f3f: 0xf079,\n\t// Block 0x7d, offset 0x1f40\n\t0x1f40: 0xf6b9, 0x1f41: 0xf6d9, 0x1f42: 0xf6f9, 0x1f43: 0xf719, 0x1f44: 0xf739, 0x1f45: 0x951d,\n\t0x1f46: 0xf759, 0x1f47: 0xf779, 0x1f48: 0xf799, 0x1f49: 0xf7b9, 0x1f4a: 0xf7d9, 0x1f4b: 0x953d,\n\t0x1f4c: 0x955d, 0x1f4d: 0xf7f9, 0x1f4e: 0xf819, 0x1f4f: 0xf839, 0x1f50: 0xf859, 0x1f51: 0xf879,\n\t0x1f52: 0xf899, 0x1f53: 0x957d, 0x1f54: 0xf8b9, 0x1f55: 0xf8d9, 0x1f56: 0xf8f9, 0x1f57: 0xf919,\n\t0x1f58: 0x959d, 0x1f59: 0x95bd, 0x1f5a: 0xf939, 0x1f5b: 0xf959, 0x1f5c: 0xf979, 0x1f5d: 0x95dd,\n\t0x1f5e: 0xf999, 0x1f5f: 0xf9b9, 0x1f60: 0x6815, 0x1f61: 0x95fd, 0x1f62: 0xf9d9, 0x1f63: 0xf9f9,\n\t0x1f64: 0xfa19, 0x1f65: 0x961d, 0x1f66: 0xfa39, 0x1f67: 0xfa59, 0x1f68: 0xfa79, 0x1f69: 0xfa99,\n\t0x1f6a: 0xfab9, 0x1f6b: 0xfad9, 0x1f6c: 0xfaf9, 0x1f6d: 0x963d, 0x1f6e: 0xfb19, 0x1f6f: 0xfb39,\n\t0x1f70: 0xfb59, 0x1f71: 0x965d, 0x1f72: 0xfb79, 0x1f73: 0xfb99, 0x1f74: 0xfbb9, 0x1f75: 0xfbd9,\n\t0x1f76: 0x7b35, 0x1f77: 0x967d, 0x1f78: 0xfbf9, 0x1f79: 0xfc19, 0x1f7a: 0xfc39, 0x1f7b: 0x969d,\n\t0x1f7c: 0xfc59, 0x1f7d: 0x96bd, 0x1f7e: 0xfc79, 0x1f7f: 0xfc79,\n\t// Block 0x7e, offset 0x1f80\n\t0x1f80: 0xfc99, 0x1f81: 0x96dd, 0x1f82: 0xfcb9, 0x1f83: 0xfcd9, 0x1f84: 0xfcf9, 0x1f85: 0xfd19,\n\t0x1f86: 0xfd39, 0x1f87: 0xfd59, 0x1f88: 0xfd79, 0x1f89: 0x96fd, 0x1f8a: 0xfd99, 0x1f8b: 0xfdb9,\n\t0x1f8c: 0xfdd9, 0x1f8d: 0xfdf9, 0x1f8e: 0xfe19, 0x1f8f: 0xfe39, 0x1f90: 0x971d, 0x1f91: 0xfe59,\n\t0x1f92: 0x973d, 0x1f93: 0x975d, 0x1f94: 0x977d, 0x1f95: 0xfe79, 0x1f96: 0xfe99, 0x1f97: 0xfeb9,\n\t0x1f98: 0xfed9, 0x1f99: 0xfef9, 0x1f9a: 0xff19, 0x1f9b: 0xff39, 0x1f9c: 0xff59, 0x1f9d: 0x979d,\n\t0x1f9e: 0x0040, 0x1f9f: 0x0040, 0x1fa0: 0x0040, 0x1fa1: 0x0040, 0x1fa2: 0x0040, 0x1fa3: 0x0040,\n\t0x1fa4: 0x0040, 0x1fa5: 0x0040, 0x1fa6: 0x0040, 0x1fa7: 0x0040, 0x1fa8: 0x0040, 0x1fa9: 0x0040,\n\t0x1faa: 0x0040, 0x1fab: 0x0040, 0x1fac: 0x0040, 0x1fad: 0x0040, 0x1fae: 0x0040, 0x1faf: 0x0040,\n\t0x1fb0: 0x0040, 0x1fb1: 0x0040, 0x1fb2: 0x0040, 0x1fb3: 0x0040, 0x1fb4: 0x0040, 0x1fb5: 0x0040,\n\t0x1fb6: 0x0040, 0x1fb7: 0x0040, 0x1fb8: 0x0040, 0x1fb9: 0x0040, 0x1fba: 0x0040, 0x1fbb: 0x0040,\n\t0x1fbc: 0x0040, 0x1fbd: 0x0040, 0x1fbe: 0x0040, 0x1fbf: 0x0040,\n}\n\n// idnaIndex: 36 blocks, 2304 entries, 4608 bytes\n// Block 0 is the zero block.\nvar idnaIndex = [2304]uint16{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x01, 0xc3: 0x7d, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x04, 0xc7: 0x05,\n\t0xc8: 0x06, 0xc9: 0x7e, 0xca: 0x7f, 0xcb: 0x07, 0xcc: 0x80, 0xcd: 0x08, 0xce: 0x09, 0xcf: 0x0a,\n\t0xd0: 0x81, 0xd1: 0x0b, 0xd2: 0x0c, 0xd3: 0x0d, 0xd4: 0x0e, 0xd5: 0x82, 0xd6: 0x83, 0xd7: 0x84,\n\t0xd8: 0x0f, 0xd9: 0x10, 0xda: 0x85, 0xdb: 0x11, 0xdc: 0x12, 0xdd: 0x86, 0xde: 0x87, 0xdf: 0x88,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06, 0xe5: 0x07, 0xe6: 0x07, 0xe7: 0x07,\n\t0xe8: 0x07, 0xe9: 0x08, 0xea: 0x09, 0xeb: 0x07, 0xec: 0x07, 0xed: 0x0a, 0xee: 0x0b, 0xef: 0x0c,\n\t0xf0: 0x1d, 0xf1: 0x1e, 0xf2: 0x1e, 0xf3: 0x20, 0xf4: 0x21,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x89, 0x121: 0x13, 0x122: 0x8a, 0x123: 0x8b, 0x124: 0x8c, 0x125: 0x14, 0x126: 0x15, 0x127: 0x16,\n\t0x128: 0x17, 0x129: 0x18, 0x12a: 0x19, 0x12b: 0x1a, 0x12c: 0x1b, 0x12d: 0x1c, 0x12e: 0x1d, 0x12f: 0x8d,\n\t0x130: 0x8e, 0x131: 0x1e, 0x132: 0x1f, 0x133: 0x20, 0x134: 0x8f, 0x135: 0x21, 0x136: 0x90, 0x137: 0x91,\n\t0x138: 0x92, 0x139: 0x93, 0x13a: 0x22, 0x13b: 0x94, 0x13c: 0x95, 0x13d: 0x23, 0x13e: 0x24, 0x13f: 0x96,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x97, 0x141: 0x98, 0x142: 0x99, 0x143: 0x9a, 0x144: 0x9b, 0x145: 0x9c, 0x146: 0x9d, 0x147: 0x9e,\n\t0x148: 0x9f, 0x149: 0xa0, 0x14a: 0xa1, 0x14b: 0xa2, 0x14c: 0xa3, 0x14d: 0xa4, 0x14e: 0xa5, 0x14f: 0xa6,\n\t0x150: 0xa7, 0x151: 0x9f, 0x152: 0x9f, 0x153: 0x9f, 0x154: 0x9f, 0x155: 0x9f, 0x156: 0x9f, 0x157: 0x9f,\n\t0x158: 0x9f, 0x159: 0xa8, 0x15a: 0xa9, 0x15b: 0xaa, 0x15c: 0xab, 0x15d: 0xac, 0x15e: 0xad, 0x15f: 0xae,\n\t0x160: 0xaf, 0x161: 0xb0, 0x162: 0xb1, 0x163: 0xb2, 0x164: 0xb3, 0x165: 0xb4, 0x166: 0xb5, 0x167: 0xb6,\n\t0x168: 0xb7, 0x169: 0xb8, 0x16a: 0xb9, 0x16b: 0xba, 0x16c: 0xbb, 0x16d: 0xbc, 0x16e: 0xbd, 0x16f: 0xbe,\n\t0x170: 0xbf, 0x171: 0xc0, 0x172: 0xc1, 0x173: 0xc2, 0x174: 0x25, 0x175: 0x26, 0x176: 0x27, 0x177: 0xc3,\n\t0x178: 0x28, 0x179: 0x28, 0x17a: 0x29, 0x17b: 0x28, 0x17c: 0xc4, 0x17d: 0x2a, 0x17e: 0x2b, 0x17f: 0x2c,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x2d, 0x181: 0x2e, 0x182: 0x2f, 0x183: 0xc5, 0x184: 0x30, 0x185: 0x31, 0x186: 0xc6, 0x187: 0x9b,\n\t0x188: 0xc7, 0x189: 0xc8, 0x18a: 0x9b, 0x18b: 0x9b, 0x18c: 0xc9, 0x18d: 0x9b, 0x18e: 0x9b, 0x18f: 0x9b,\n\t0x190: 0xca, 0x191: 0x32, 0x192: 0x33, 0x193: 0x34, 0x194: 0x9b, 0x195: 0x9b, 0x196: 0x9b, 0x197: 0x9b,\n\t0x198: 0x9b, 0x199: 0x9b, 0x19a: 0x9b, 0x19b: 0x9b, 0x19c: 0x9b, 0x19d: 0x9b, 0x19e: 0x9b, 0x19f: 0x9b,\n\t0x1a0: 0x9b, 0x1a1: 0x9b, 0x1a2: 0x9b, 0x1a3: 0x9b, 0x1a4: 0x9b, 0x1a5: 0x9b, 0x1a6: 0x9b, 0x1a7: 0x9b,\n\t0x1a8: 0xcb, 0x1a9: 0xcc, 0x1aa: 0x9b, 0x1ab: 0xcd, 0x1ac: 0x9b, 0x1ad: 0xce, 0x1ae: 0xcf, 0x1af: 0xd0,\n\t0x1b0: 0xd1, 0x1b1: 0x35, 0x1b2: 0x28, 0x1b3: 0x36, 0x1b4: 0xd2, 0x1b5: 0xd3, 0x1b6: 0xd4, 0x1b7: 0xd5,\n\t0x1b8: 0xd6, 0x1b9: 0xd7, 0x1ba: 0xd8, 0x1bb: 0xd9, 0x1bc: 0xda, 0x1bd: 0xdb, 0x1be: 0xdc, 0x1bf: 0x37,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x38, 0x1c1: 0xdd, 0x1c2: 0xde, 0x1c3: 0xdf, 0x1c4: 0xe0, 0x1c5: 0x39, 0x1c6: 0x3a, 0x1c7: 0xe1,\n\t0x1c8: 0xe2, 0x1c9: 0x3b, 0x1ca: 0x3c, 0x1cb: 0x3d, 0x1cc: 0x3e, 0x1cd: 0x3f, 0x1ce: 0x40, 0x1cf: 0x41,\n\t0x1d0: 0x9f, 0x1d1: 0x9f, 0x1d2: 0x9f, 0x1d3: 0x9f, 0x1d4: 0x9f, 0x1d5: 0x9f, 0x1d6: 0x9f, 0x1d7: 0x9f,\n\t0x1d8: 0x9f, 0x1d9: 0x9f, 0x1da: 0x9f, 0x1db: 0x9f, 0x1dc: 0x9f, 0x1dd: 0x9f, 0x1de: 0x9f, 0x1df: 0x9f,\n\t0x1e0: 0x9f, 0x1e1: 0x9f, 0x1e2: 0x9f, 0x1e3: 0x9f, 0x1e4: 0x9f, 0x1e5: 0x9f, 0x1e6: 0x9f, 0x1e7: 0x9f,\n\t0x1e8: 0x9f, 0x1e9: 0x9f, 0x1ea: 0x9f, 0x1eb: 0x9f, 0x1ec: 0x9f, 0x1ed: 0x9f, 0x1ee: 0x9f, 0x1ef: 0x9f,\n\t0x1f0: 0x9f, 0x1f1: 0x9f, 0x1f2: 0x9f, 0x1f3: 0x9f, 0x1f4: 0x9f, 0x1f5: 0x9f, 0x1f6: 0x9f, 0x1f7: 0x9f,\n\t0x1f8: 0x9f, 0x1f9: 0x9f, 0x1fa: 0x9f, 0x1fb: 0x9f, 0x1fc: 0x9f, 0x1fd: 0x9f, 0x1fe: 0x9f, 0x1ff: 0x9f,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x9f, 0x201: 0x9f, 0x202: 0x9f, 0x203: 0x9f, 0x204: 0x9f, 0x205: 0x9f, 0x206: 0x9f, 0x207: 0x9f,\n\t0x208: 0x9f, 0x209: 0x9f, 0x20a: 0x9f, 0x20b: 0x9f, 0x20c: 0x9f, 0x20d: 0x9f, 0x20e: 0x9f, 0x20f: 0x9f,\n\t0x210: 0x9f, 0x211: 0x9f, 0x212: 0x9f, 0x213: 0x9f, 0x214: 0x9f, 0x215: 0x9f, 0x216: 0x9f, 0x217: 0x9f,\n\t0x218: 0x9f, 0x219: 0x9f, 0x21a: 0x9f, 0x21b: 0x9f, 0x21c: 0x9f, 0x21d: 0x9f, 0x21e: 0x9f, 0x21f: 0x9f,\n\t0x220: 0x9f, 0x221: 0x9f, 0x222: 0x9f, 0x223: 0x9f, 0x224: 0x9f, 0x225: 0x9f, 0x226: 0x9f, 0x227: 0x9f,\n\t0x228: 0x9f, 0x229: 0x9f, 0x22a: 0x9f, 0x22b: 0x9f, 0x22c: 0x9f, 0x22d: 0x9f, 0x22e: 0x9f, 0x22f: 0x9f,\n\t0x230: 0x9f, 0x231: 0x9f, 0x232: 0x9f, 0x233: 0x9f, 0x234: 0x9f, 0x235: 0x9f, 0x236: 0xb2, 0x237: 0x9b,\n\t0x238: 0x9f, 0x239: 0x9f, 0x23a: 0x9f, 0x23b: 0x9f, 0x23c: 0x9f, 0x23d: 0x9f, 0x23e: 0x9f, 0x23f: 0x9f,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x9f, 0x241: 0x9f, 0x242: 0x9f, 0x243: 0x9f, 0x244: 0x9f, 0x245: 0x9f, 0x246: 0x9f, 0x247: 0x9f,\n\t0x248: 0x9f, 0x249: 0x9f, 0x24a: 0x9f, 0x24b: 0x9f, 0x24c: 0x9f, 0x24d: 0x9f, 0x24e: 0x9f, 0x24f: 0x9f,\n\t0x250: 0x9f, 0x251: 0x9f, 0x252: 0x9f, 0x253: 0x9f, 0x254: 0x9f, 0x255: 0x9f, 0x256: 0x9f, 0x257: 0x9f,\n\t0x258: 0x9f, 0x259: 0x9f, 0x25a: 0x9f, 0x25b: 0x9f, 0x25c: 0x9f, 0x25d: 0x9f, 0x25e: 0x9f, 0x25f: 0x9f,\n\t0x260: 0x9f, 0x261: 0x9f, 0x262: 0x9f, 0x263: 0x9f, 0x264: 0x9f, 0x265: 0x9f, 0x266: 0x9f, 0x267: 0x9f,\n\t0x268: 0x9f, 0x269: 0x9f, 0x26a: 0x9f, 0x26b: 0x9f, 0x26c: 0x9f, 0x26d: 0x9f, 0x26e: 0x9f, 0x26f: 0x9f,\n\t0x270: 0x9f, 0x271: 0x9f, 0x272: 0x9f, 0x273: 0x9f, 0x274: 0x9f, 0x275: 0x9f, 0x276: 0x9f, 0x277: 0x9f,\n\t0x278: 0x9f, 0x279: 0x9f, 0x27a: 0x9f, 0x27b: 0x9f, 0x27c: 0x9f, 0x27d: 0x9f, 0x27e: 0x9f, 0x27f: 0x9f,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x9f, 0x281: 0x9f, 0x282: 0x9f, 0x283: 0x9f, 0x284: 0x9f, 0x285: 0x9f, 0x286: 0x9f, 0x287: 0x9f,\n\t0x288: 0x9f, 0x289: 0x9f, 0x28a: 0x9f, 0x28b: 0x9f, 0x28c: 0x9f, 0x28d: 0x9f, 0x28e: 0x9f, 0x28f: 0x9f,\n\t0x290: 0x9f, 0x291: 0x9f, 0x292: 0x9f, 0x293: 0x9f, 0x294: 0x9f, 0x295: 0x9f, 0x296: 0x9f, 0x297: 0x9f,\n\t0x298: 0x9f, 0x299: 0x9f, 0x29a: 0x9f, 0x29b: 0x9f, 0x29c: 0x9f, 0x29d: 0x9f, 0x29e: 0x9f, 0x29f: 0x9f,\n\t0x2a0: 0x9f, 0x2a1: 0x9f, 0x2a2: 0x9f, 0x2a3: 0x9f, 0x2a4: 0x9f, 0x2a5: 0x9f, 0x2a6: 0x9f, 0x2a7: 0x9f,\n\t0x2a8: 0x9f, 0x2a9: 0x9f, 0x2aa: 0x9f, 0x2ab: 0x9f, 0x2ac: 0x9f, 0x2ad: 0x9f, 0x2ae: 0x9f, 0x2af: 0x9f,\n\t0x2b0: 0x9f, 0x2b1: 0x9f, 0x2b2: 0x9f, 0x2b3: 0x9f, 0x2b4: 0x9f, 0x2b5: 0x9f, 0x2b6: 0x9f, 0x2b7: 0x9f,\n\t0x2b8: 0x9f, 0x2b9: 0x9f, 0x2ba: 0x9f, 0x2bb: 0x9f, 0x2bc: 0x9f, 0x2bd: 0x9f, 0x2be: 0x9f, 0x2bf: 0xe3,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x9f, 0x2c1: 0x9f, 0x2c2: 0x9f, 0x2c3: 0x9f, 0x2c4: 0x9f, 0x2c5: 0x9f, 0x2c6: 0x9f, 0x2c7: 0x9f,\n\t0x2c8: 0x9f, 0x2c9: 0x9f, 0x2ca: 0x9f, 0x2cb: 0x9f, 0x2cc: 0x9f, 0x2cd: 0x9f, 0x2ce: 0x9f, 0x2cf: 0x9f,\n\t0x2d0: 0x9f, 0x2d1: 0x9f, 0x2d2: 0xe4, 0x2d3: 0xe5, 0x2d4: 0x9f, 0x2d5: 0x9f, 0x2d6: 0x9f, 0x2d7: 0x9f,\n\t0x2d8: 0xe6, 0x2d9: 0x42, 0x2da: 0x43, 0x2db: 0xe7, 0x2dc: 0x44, 0x2dd: 0x45, 0x2de: 0x46, 0x2df: 0xe8,\n\t0x2e0: 0xe9, 0x2e1: 0xea, 0x2e2: 0xeb, 0x2e3: 0xec, 0x2e4: 0xed, 0x2e5: 0xee, 0x2e6: 0xef, 0x2e7: 0xf0,\n\t0x2e8: 0xf1, 0x2e9: 0xf2, 0x2ea: 0xf3, 0x2eb: 0xf4, 0x2ec: 0xf5, 0x2ed: 0xf6, 0x2ee: 0xf7, 0x2ef: 0xf8,\n\t0x2f0: 0x9f, 0x2f1: 0x9f, 0x2f2: 0x9f, 0x2f3: 0x9f, 0x2f4: 0x9f, 0x2f5: 0x9f, 0x2f6: 0x9f, 0x2f7: 0x9f,\n\t0x2f8: 0x9f, 0x2f9: 0x9f, 0x2fa: 0x9f, 0x2fb: 0x9f, 0x2fc: 0x9f, 0x2fd: 0x9f, 0x2fe: 0x9f, 0x2ff: 0x9f,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x9f, 0x301: 0x9f, 0x302: 0x9f, 0x303: 0x9f, 0x304: 0x9f, 0x305: 0x9f, 0x306: 0x9f, 0x307: 0x9f,\n\t0x308: 0x9f, 0x309: 0x9f, 0x30a: 0x9f, 0x30b: 0x9f, 0x30c: 0x9f, 0x30d: 0x9f, 0x30e: 0x9f, 0x30f: 0x9f,\n\t0x310: 0x9f, 0x311: 0x9f, 0x312: 0x9f, 0x313: 0x9f, 0x314: 0x9f, 0x315: 0x9f, 0x316: 0x9f, 0x317: 0x9f,\n\t0x318: 0x9f, 0x319: 0x9f, 0x31a: 0x9f, 0x31b: 0x9f, 0x31c: 0x9f, 0x31d: 0x9f, 0x31e: 0xf9, 0x31f: 0xfa,\n\t// Block 0xd, offset 0x340\n\t0x340: 0xba, 0x341: 0xba, 0x342: 0xba, 0x343: 0xba, 0x344: 0xba, 0x345: 0xba, 0x346: 0xba, 0x347: 0xba,\n\t0x348: 0xba, 0x349: 0xba, 0x34a: 0xba, 0x34b: 0xba, 0x34c: 0xba, 0x34d: 0xba, 0x34e: 0xba, 0x34f: 0xba,\n\t0x350: 0xba, 0x351: 0xba, 0x352: 0xba, 0x353: 0xba, 0x354: 0xba, 0x355: 0xba, 0x356: 0xba, 0x357: 0xba,\n\t0x358: 0xba, 0x359: 0xba, 0x35a: 0xba, 0x35b: 0xba, 0x35c: 0xba, 0x35d: 0xba, 0x35e: 0xba, 0x35f: 0xba,\n\t0x360: 0xba, 0x361: 0xba, 0x362: 0xba, 0x363: 0xba, 0x364: 0xba, 0x365: 0xba, 0x366: 0xba, 0x367: 0xba,\n\t0x368: 0xba, 0x369: 0xba, 0x36a: 0xba, 0x36b: 0xba, 0x36c: 0xba, 0x36d: 0xba, 0x36e: 0xba, 0x36f: 0xba,\n\t0x370: 0xba, 0x371: 0xba, 0x372: 0xba, 0x373: 0xba, 0x374: 0xba, 0x375: 0xba, 0x376: 0xba, 0x377: 0xba,\n\t0x378: 0xba, 0x379: 0xba, 0x37a: 0xba, 0x37b: 0xba, 0x37c: 0xba, 0x37d: 0xba, 0x37e: 0xba, 0x37f: 0xba,\n\t// Block 0xe, offset 0x380\n\t0x380: 0xba, 0x381: 0xba, 0x382: 0xba, 0x383: 0xba, 0x384: 0xba, 0x385: 0xba, 0x386: 0xba, 0x387: 0xba,\n\t0x388: 0xba, 0x389: 0xba, 0x38a: 0xba, 0x38b: 0xba, 0x38c: 0xba, 0x38d: 0xba, 0x38e: 0xba, 0x38f: 0xba,\n\t0x390: 0xba, 0x391: 0xba, 0x392: 0xba, 0x393: 0xba, 0x394: 0xba, 0x395: 0xba, 0x396: 0xba, 0x397: 0xba,\n\t0x398: 0xba, 0x399: 0xba, 0x39a: 0xba, 0x39b: 0xba, 0x39c: 0xba, 0x39d: 0xba, 0x39e: 0xba, 0x39f: 0xba,\n\t0x3a0: 0xba, 0x3a1: 0xba, 0x3a2: 0xba, 0x3a3: 0xba, 0x3a4: 0xfb, 0x3a5: 0xfc, 0x3a6: 0xfd, 0x3a7: 0xfe,\n\t0x3a8: 0x47, 0x3a9: 0xff, 0x3aa: 0x100, 0x3ab: 0x48, 0x3ac: 0x49, 0x3ad: 0x4a, 0x3ae: 0x4b, 0x3af: 0x4c,\n\t0x3b0: 0x101, 0x3b1: 0x4d, 0x3b2: 0x4e, 0x3b3: 0x4f, 0x3b4: 0x50, 0x3b5: 0x51, 0x3b6: 0x102, 0x3b7: 0x52,\n\t0x3b8: 0x53, 0x3b9: 0x54, 0x3ba: 0x55, 0x3bb: 0x56, 0x3bc: 0x57, 0x3bd: 0x58, 0x3be: 0x59, 0x3bf: 0x5a,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x103, 0x3c1: 0x104, 0x3c2: 0x9f, 0x3c3: 0x105, 0x3c4: 0x106, 0x3c5: 0x9b, 0x3c6: 0x107, 0x3c7: 0x108,\n\t0x3c8: 0xba, 0x3c9: 0xba, 0x3ca: 0x109, 0x3cb: 0x10a, 0x3cc: 0x10b, 0x3cd: 0x10c, 0x3ce: 0x10d, 0x3cf: 0x10e,\n\t0x3d0: 0x10f, 0x3d1: 0x9f, 0x3d2: 0x110, 0x3d3: 0x111, 0x3d4: 0x112, 0x3d5: 0x113, 0x3d6: 0xba, 0x3d7: 0xba,\n\t0x3d8: 0x9f, 0x3d9: 0x9f, 0x3da: 0x9f, 0x3db: 0x9f, 0x3dc: 0x114, 0x3dd: 0x115, 0x3de: 0xba, 0x3df: 0xba,\n\t0x3e0: 0x116, 0x3e1: 0x117, 0x3e2: 0x118, 0x3e3: 0x119, 0x3e4: 0x11a, 0x3e5: 0xba, 0x3e6: 0x11b, 0x3e7: 0x11c,\n\t0x3e8: 0x11d, 0x3e9: 0x11e, 0x3ea: 0x11f, 0x3eb: 0x5b, 0x3ec: 0x120, 0x3ed: 0x121, 0x3ee: 0x5c, 0x3ef: 0xba,\n\t0x3f0: 0x122, 0x3f1: 0x123, 0x3f2: 0x124, 0x3f3: 0x125, 0x3f4: 0x126, 0x3f5: 0xba, 0x3f6: 0xba, 0x3f7: 0xba,\n\t0x3f8: 0xba, 0x3f9: 0x127, 0x3fa: 0xba, 0x3fb: 0xba, 0x3fc: 0x128, 0x3fd: 0x129, 0x3fe: 0xba, 0x3ff: 0xba,\n\t// Block 0x10, offset 0x400\n\t0x400: 0x12a, 0x401: 0x12b, 0x402: 0x12c, 0x403: 0x12d, 0x404: 0x12e, 0x405: 0x12f, 0x406: 0x130, 0x407: 0x131,\n\t0x408: 0x132, 0x409: 0xba, 0x40a: 0x133, 0x40b: 0x134, 0x40c: 0x5d, 0x40d: 0x5e, 0x40e: 0xba, 0x40f: 0xba,\n\t0x410: 0x135, 0x411: 0x136, 0x412: 0x137, 0x413: 0x138, 0x414: 0xba, 0x415: 0xba, 0x416: 0x139, 0x417: 0x13a,\n\t0x418: 0x13b, 0x419: 0x13c, 0x41a: 0x13d, 0x41b: 0x13e, 0x41c: 0x13f, 0x41d: 0xba, 0x41e: 0xba, 0x41f: 0xba,\n\t0x420: 0x140, 0x421: 0xba, 0x422: 0x141, 0x423: 0x142, 0x424: 0xba, 0x425: 0xba, 0x426: 0xba, 0x427: 0xba,\n\t0x428: 0x143, 0x429: 0x144, 0x42a: 0x145, 0x42b: 0x146, 0x42c: 0xba, 0x42d: 0xba, 0x42e: 0xba, 0x42f: 0xba,\n\t0x430: 0x147, 0x431: 0x148, 0x432: 0x149, 0x433: 0xba, 0x434: 0x14a, 0x435: 0x14b, 0x436: 0x14c, 0x437: 0xba,\n\t0x438: 0xba, 0x439: 0xba, 0x43a: 0xba, 0x43b: 0x14d, 0x43c: 0xba, 0x43d: 0xba, 0x43e: 0xba, 0x43f: 0xba,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x9f, 0x441: 0x9f, 0x442: 0x9f, 0x443: 0x9f, 0x444: 0x9f, 0x445: 0x9f, 0x446: 0x9f, 0x447: 0x9f,\n\t0x448: 0x9f, 0x449: 0x9f, 0x44a: 0x9f, 0x44b: 0x9f, 0x44c: 0x9f, 0x44d: 0x9f, 0x44e: 0x14e, 0x44f: 0xba,\n\t0x450: 0x9b, 0x451: 0x14f, 0x452: 0x9f, 0x453: 0x9f, 0x454: 0x9f, 0x455: 0x150, 0x456: 0xba, 0x457: 0xba,\n\t0x458: 0xba, 0x459: 0xba, 0x45a: 0xba, 0x45b: 0xba, 0x45c: 0xba, 0x45d: 0xba, 0x45e: 0xba, 0x45f: 0xba,\n\t0x460: 0xba, 0x461: 0xba, 0x462: 0xba, 0x463: 0xba, 0x464: 0xba, 0x465: 0xba, 0x466: 0xba, 0x467: 0xba,\n\t0x468: 0xba, 0x469: 0xba, 0x46a: 0xba, 0x46b: 0xba, 0x46c: 0xba, 0x46d: 0xba, 0x46e: 0xba, 0x46f: 0xba,\n\t0x470: 0xba, 0x471: 0xba, 0x472: 0xba, 0x473: 0xba, 0x474: 0xba, 0x475: 0xba, 0x476: 0xba, 0x477: 0xba,\n\t0x478: 0xba, 0x479: 0xba, 0x47a: 0xba, 0x47b: 0xba, 0x47c: 0xba, 0x47d: 0xba, 0x47e: 0xba, 0x47f: 0xba,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x9f, 0x481: 0x9f, 0x482: 0x9f, 0x483: 0x9f, 0x484: 0x9f, 0x485: 0x9f, 0x486: 0x9f, 0x487: 0x9f,\n\t0x488: 0x9f, 0x489: 0x9f, 0x48a: 0x9f, 0x48b: 0x9f, 0x48c: 0x9f, 0x48d: 0x9f, 0x48e: 0x9f, 0x48f: 0x9f,\n\t0x490: 0x151, 0x491: 0xba, 0x492: 0xba, 0x493: 0xba, 0x494: 0xba, 0x495: 0xba, 0x496: 0xba, 0x497: 0xba,\n\t0x498: 0xba, 0x499: 0xba, 0x49a: 0xba, 0x49b: 0xba, 0x49c: 0xba, 0x49d: 0xba, 0x49e: 0xba, 0x49f: 0xba,\n\t0x4a0: 0xba, 0x4a1: 0xba, 0x4a2: 0xba, 0x4a3: 0xba, 0x4a4: 0xba, 0x4a5: 0xba, 0x4a6: 0xba, 0x4a7: 0xba,\n\t0x4a8: 0xba, 0x4a9: 0xba, 0x4aa: 0xba, 0x4ab: 0xba, 0x4ac: 0xba, 0x4ad: 0xba, 0x4ae: 0xba, 0x4af: 0xba,\n\t0x4b0: 0xba, 0x4b1: 0xba, 0x4b2: 0xba, 0x4b3: 0xba, 0x4b4: 0xba, 0x4b5: 0xba, 0x4b6: 0xba, 0x4b7: 0xba,\n\t0x4b8: 0xba, 0x4b9: 0xba, 0x4ba: 0xba, 0x4bb: 0xba, 0x4bc: 0xba, 0x4bd: 0xba, 0x4be: 0xba, 0x4bf: 0xba,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0xba, 0x4c1: 0xba, 0x4c2: 0xba, 0x4c3: 0xba, 0x4c4: 0xba, 0x4c5: 0xba, 0x4c6: 0xba, 0x4c7: 0xba,\n\t0x4c8: 0xba, 0x4c9: 0xba, 0x4ca: 0xba, 0x4cb: 0xba, 0x4cc: 0xba, 0x4cd: 0xba, 0x4ce: 0xba, 0x4cf: 0xba,\n\t0x4d0: 0x9f, 0x4d1: 0x9f, 0x4d2: 0x9f, 0x4d3: 0x9f, 0x4d4: 0x9f, 0x4d5: 0x9f, 0x4d6: 0x9f, 0x4d7: 0x9f,\n\t0x4d8: 0x9f, 0x4d9: 0x152, 0x4da: 0xba, 0x4db: 0xba, 0x4dc: 0xba, 0x4dd: 0xba, 0x4de: 0xba, 0x4df: 0xba,\n\t0x4e0: 0xba, 0x4e1: 0xba, 0x4e2: 0xba, 0x4e3: 0xba, 0x4e4: 0xba, 0x4e5: 0xba, 0x4e6: 0xba, 0x4e7: 0xba,\n\t0x4e8: 0xba, 0x4e9: 0xba, 0x4ea: 0xba, 0x4eb: 0xba, 0x4ec: 0xba, 0x4ed: 0xba, 0x4ee: 0xba, 0x4ef: 0xba,\n\t0x4f0: 0xba, 0x4f1: 0xba, 0x4f2: 0xba, 0x4f3: 0xba, 0x4f4: 0xba, 0x4f5: 0xba, 0x4f6: 0xba, 0x4f7: 0xba,\n\t0x4f8: 0xba, 0x4f9: 0xba, 0x4fa: 0xba, 0x4fb: 0xba, 0x4fc: 0xba, 0x4fd: 0xba, 0x4fe: 0xba, 0x4ff: 0xba,\n\t// Block 0x14, offset 0x500\n\t0x500: 0xba, 0x501: 0xba, 0x502: 0xba, 0x503: 0xba, 0x504: 0xba, 0x505: 0xba, 0x506: 0xba, 0x507: 0xba,\n\t0x508: 0xba, 0x509: 0xba, 0x50a: 0xba, 0x50b: 0xba, 0x50c: 0xba, 0x50d: 0xba, 0x50e: 0xba, 0x50f: 0xba,\n\t0x510: 0xba, 0x511: 0xba, 0x512: 0xba, 0x513: 0xba, 0x514: 0xba, 0x515: 0xba, 0x516: 0xba, 0x517: 0xba,\n\t0x518: 0xba, 0x519: 0xba, 0x51a: 0xba, 0x51b: 0xba, 0x51c: 0xba, 0x51d: 0xba, 0x51e: 0xba, 0x51f: 0xba,\n\t0x520: 0x9f, 0x521: 0x9f, 0x522: 0x9f, 0x523: 0x9f, 0x524: 0x9f, 0x525: 0x9f, 0x526: 0x9f, 0x527: 0x9f,\n\t0x528: 0x146, 0x529: 0x153, 0x52a: 0xba, 0x52b: 0x154, 0x52c: 0x155, 0x52d: 0x156, 0x52e: 0x157, 0x52f: 0xba,\n\t0x530: 0xba, 0x531: 0xba, 0x532: 0xba, 0x533: 0xba, 0x534: 0xba, 0x535: 0xba, 0x536: 0xba, 0x537: 0xba,\n\t0x538: 0xba, 0x539: 0x158, 0x53a: 0x159, 0x53b: 0xba, 0x53c: 0x9f, 0x53d: 0x15a, 0x53e: 0x15b, 0x53f: 0x15c,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x9f, 0x541: 0x9f, 0x542: 0x9f, 0x543: 0x9f, 0x544: 0x9f, 0x545: 0x9f, 0x546: 0x9f, 0x547: 0x9f,\n\t0x548: 0x9f, 0x549: 0x9f, 0x54a: 0x9f, 0x54b: 0x9f, 0x54c: 0x9f, 0x54d: 0x9f, 0x54e: 0x9f, 0x54f: 0x9f,\n\t0x550: 0x9f, 0x551: 0x9f, 0x552: 0x9f, 0x553: 0x9f, 0x554: 0x9f, 0x555: 0x9f, 0x556: 0x9f, 0x557: 0x9f,\n\t0x558: 0x9f, 0x559: 0x9f, 0x55a: 0x9f, 0x55b: 0x9f, 0x55c: 0x9f, 0x55d: 0x9f, 0x55e: 0x9f, 0x55f: 0x15d,\n\t0x560: 0x9f, 0x561: 0x9f, 0x562: 0x9f, 0x563: 0x9f, 0x564: 0x9f, 0x565: 0x9f, 0x566: 0x9f, 0x567: 0x9f,\n\t0x568: 0x9f, 0x569: 0x9f, 0x56a: 0x9f, 0x56b: 0x15e, 0x56c: 0xba, 0x56d: 0xba, 0x56e: 0xba, 0x56f: 0xba,\n\t0x570: 0xba, 0x571: 0xba, 0x572: 0xba, 0x573: 0xba, 0x574: 0xba, 0x575: 0xba, 0x576: 0xba, 0x577: 0xba,\n\t0x578: 0xba, 0x579: 0xba, 0x57a: 0xba, 0x57b: 0xba, 0x57c: 0xba, 0x57d: 0xba, 0x57e: 0xba, 0x57f: 0xba,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x9f, 0x581: 0x9f, 0x582: 0x9f, 0x583: 0x9f, 0x584: 0x15f, 0x585: 0x160, 0x586: 0x9f, 0x587: 0x9f,\n\t0x588: 0x9f, 0x589: 0x9f, 0x58a: 0x9f, 0x58b: 0x161, 0x58c: 0xba, 0x58d: 0xba, 0x58e: 0xba, 0x58f: 0xba,\n\t0x590: 0xba, 0x591: 0xba, 0x592: 0xba, 0x593: 0xba, 0x594: 0xba, 0x595: 0xba, 0x596: 0xba, 0x597: 0xba,\n\t0x598: 0xba, 0x599: 0xba, 0x59a: 0xba, 0x59b: 0xba, 0x59c: 0xba, 0x59d: 0xba, 0x59e: 0xba, 0x59f: 0xba,\n\t0x5a0: 0xba, 0x5a1: 0xba, 0x5a2: 0xba, 0x5a3: 0xba, 0x5a4: 0xba, 0x5a5: 0xba, 0x5a6: 0xba, 0x5a7: 0xba,\n\t0x5a8: 0xba, 0x5a9: 0xba, 0x5aa: 0xba, 0x5ab: 0xba, 0x5ac: 0xba, 0x5ad: 0xba, 0x5ae: 0xba, 0x5af: 0xba,\n\t0x5b0: 0x9f, 0x5b1: 0x162, 0x5b2: 0x163, 0x5b3: 0xba, 0x5b4: 0xba, 0x5b5: 0xba, 0x5b6: 0xba, 0x5b7: 0xba,\n\t0x5b8: 0xba, 0x5b9: 0xba, 0x5ba: 0xba, 0x5bb: 0xba, 0x5bc: 0xba, 0x5bd: 0xba, 0x5be: 0xba, 0x5bf: 0xba,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x9b, 0x5c1: 0x9b, 0x5c2: 0x9b, 0x5c3: 0x164, 0x5c4: 0x165, 0x5c5: 0x166, 0x5c6: 0x167, 0x5c7: 0x168,\n\t0x5c8: 0x9b, 0x5c9: 0x169, 0x5ca: 0xba, 0x5cb: 0x16a, 0x5cc: 0x9b, 0x5cd: 0x16b, 0x5ce: 0xba, 0x5cf: 0xba,\n\t0x5d0: 0x5f, 0x5d1: 0x60, 0x5d2: 0x61, 0x5d3: 0x62, 0x5d4: 0x63, 0x5d5: 0x64, 0x5d6: 0x65, 0x5d7: 0x66,\n\t0x5d8: 0x67, 0x5d9: 0x68, 0x5da: 0x69, 0x5db: 0x6a, 0x5dc: 0x6b, 0x5dd: 0x6c, 0x5de: 0x6d, 0x5df: 0x6e,\n\t0x5e0: 0x9b, 0x5e1: 0x9b, 0x5e2: 0x9b, 0x5e3: 0x9b, 0x5e4: 0x9b, 0x5e5: 0x9b, 0x5e6: 0x9b, 0x5e7: 0x9b,\n\t0x5e8: 0x16c, 0x5e9: 0x16d, 0x5ea: 0x16e, 0x5eb: 0xba, 0x5ec: 0xba, 0x5ed: 0xba, 0x5ee: 0xba, 0x5ef: 0xba,\n\t0x5f0: 0xba, 0x5f1: 0xba, 0x5f2: 0xba, 0x5f3: 0xba, 0x5f4: 0xba, 0x5f5: 0xba, 0x5f6: 0xba, 0x5f7: 0xba,\n\t0x5f8: 0xba, 0x5f9: 0xba, 0x5fa: 0xba, 0x5fb: 0xba, 0x5fc: 0xba, 0x5fd: 0xba, 0x5fe: 0xba, 0x5ff: 0xba,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x16f, 0x601: 0xba, 0x602: 0xba, 0x603: 0xba, 0x604: 0xba, 0x605: 0xba, 0x606: 0xba, 0x607: 0xba,\n\t0x608: 0xba, 0x609: 0xba, 0x60a: 0xba, 0x60b: 0xba, 0x60c: 0xba, 0x60d: 0xba, 0x60e: 0xba, 0x60f: 0xba,\n\t0x610: 0xba, 0x611: 0xba, 0x612: 0xba, 0x613: 0xba, 0x614: 0xba, 0x615: 0xba, 0x616: 0xba, 0x617: 0xba,\n\t0x618: 0xba, 0x619: 0xba, 0x61a: 0xba, 0x61b: 0xba, 0x61c: 0xba, 0x61d: 0xba, 0x61e: 0xba, 0x61f: 0xba,\n\t0x620: 0x122, 0x621: 0x122, 0x622: 0x122, 0x623: 0x170, 0x624: 0x6f, 0x625: 0x171, 0x626: 0xba, 0x627: 0xba,\n\t0x628: 0xba, 0x629: 0xba, 0x62a: 0xba, 0x62b: 0xba, 0x62c: 0xba, 0x62d: 0xba, 0x62e: 0xba, 0x62f: 0xba,\n\t0x630: 0xba, 0x631: 0x172, 0x632: 0x173, 0x633: 0xba, 0x634: 0xba, 0x635: 0xba, 0x636: 0xba, 0x637: 0xba,\n\t0x638: 0x70, 0x639: 0x71, 0x63a: 0x72, 0x63b: 0x174, 0x63c: 0xba, 0x63d: 0xba, 0x63e: 0xba, 0x63f: 0xba,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x175, 0x641: 0x9b, 0x642: 0x176, 0x643: 0x177, 0x644: 0x73, 0x645: 0x74, 0x646: 0x178, 0x647: 0x179,\n\t0x648: 0x75, 0x649: 0x17a, 0x64a: 0xba, 0x64b: 0xba, 0x64c: 0x9b, 0x64d: 0x9b, 0x64e: 0x9b, 0x64f: 0x9b,\n\t0x650: 0x9b, 0x651: 0x9b, 0x652: 0x9b, 0x653: 0x9b, 0x654: 0x9b, 0x655: 0x9b, 0x656: 0x9b, 0x657: 0x9b,\n\t0x658: 0x9b, 0x659: 0x9b, 0x65a: 0x9b, 0x65b: 0x17b, 0x65c: 0x9b, 0x65d: 0x17c, 0x65e: 0x9b, 0x65f: 0x17d,\n\t0x660: 0x17e, 0x661: 0x17f, 0x662: 0x180, 0x663: 0xba, 0x664: 0x181, 0x665: 0x182, 0x666: 0x183, 0x667: 0x184,\n\t0x668: 0xba, 0x669: 0x185, 0x66a: 0xba, 0x66b: 0xba, 0x66c: 0xba, 0x66d: 0xba, 0x66e: 0xba, 0x66f: 0xba,\n\t0x670: 0xba, 0x671: 0xba, 0x672: 0xba, 0x673: 0xba, 0x674: 0xba, 0x675: 0xba, 0x676: 0xba, 0x677: 0xba,\n\t0x678: 0xba, 0x679: 0xba, 0x67a: 0xba, 0x67b: 0xba, 0x67c: 0xba, 0x67d: 0xba, 0x67e: 0xba, 0x67f: 0xba,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x9f, 0x681: 0x9f, 0x682: 0x9f, 0x683: 0x9f, 0x684: 0x9f, 0x685: 0x9f, 0x686: 0x9f, 0x687: 0x9f,\n\t0x688: 0x9f, 0x689: 0x9f, 0x68a: 0x9f, 0x68b: 0x9f, 0x68c: 0x9f, 0x68d: 0x9f, 0x68e: 0x9f, 0x68f: 0x9f,\n\t0x690: 0x9f, 0x691: 0x9f, 0x692: 0x9f, 0x693: 0x9f, 0x694: 0x9f, 0x695: 0x9f, 0x696: 0x9f, 0x697: 0x9f,\n\t0x698: 0x9f, 0x699: 0x9f, 0x69a: 0x9f, 0x69b: 0x186, 0x69c: 0x9f, 0x69d: 0x9f, 0x69e: 0x9f, 0x69f: 0x9f,\n\t0x6a0: 0x9f, 0x6a1: 0x9f, 0x6a2: 0x9f, 0x6a3: 0x9f, 0x6a4: 0x9f, 0x6a5: 0x9f, 0x6a6: 0x9f, 0x6a7: 0x9f,\n\t0x6a8: 0x9f, 0x6a9: 0x9f, 0x6aa: 0x9f, 0x6ab: 0x9f, 0x6ac: 0x9f, 0x6ad: 0x9f, 0x6ae: 0x9f, 0x6af: 0x9f,\n\t0x6b0: 0x9f, 0x6b1: 0x9f, 0x6b2: 0x9f, 0x6b3: 0x9f, 0x6b4: 0x9f, 0x6b5: 0x9f, 0x6b6: 0x9f, 0x6b7: 0x9f,\n\t0x6b8: 0x9f, 0x6b9: 0x9f, 0x6ba: 0x9f, 0x6bb: 0x9f, 0x6bc: 0x9f, 0x6bd: 0x9f, 0x6be: 0x9f, 0x6bf: 0x9f,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x9f, 0x6c1: 0x9f, 0x6c2: 0x9f, 0x6c3: 0x9f, 0x6c4: 0x9f, 0x6c5: 0x9f, 0x6c6: 0x9f, 0x6c7: 0x9f,\n\t0x6c8: 0x9f, 0x6c9: 0x9f, 0x6ca: 0x9f, 0x6cb: 0x9f, 0x6cc: 0x9f, 0x6cd: 0x9f, 0x6ce: 0x9f, 0x6cf: 0x9f,\n\t0x6d0: 0x9f, 0x6d1: 0x9f, 0x6d2: 0x9f, 0x6d3: 0x9f, 0x6d4: 0x9f, 0x6d5: 0x9f, 0x6d6: 0x9f, 0x6d7: 0x9f,\n\t0x6d8: 0x9f, 0x6d9: 0x9f, 0x6da: 0x9f, 0x6db: 0x9f, 0x6dc: 0x187, 0x6dd: 0x9f, 0x6de: 0x9f, 0x6df: 0x9f,\n\t0x6e0: 0x188, 0x6e1: 0x9f, 0x6e2: 0x9f, 0x6e3: 0x9f, 0x6e4: 0x9f, 0x6e5: 0x9f, 0x6e6: 0x9f, 0x6e7: 0x9f,\n\t0x6e8: 0x9f, 0x6e9: 0x9f, 0x6ea: 0x9f, 0x6eb: 0x9f, 0x6ec: 0x9f, 0x6ed: 0x9f, 0x6ee: 0x9f, 0x6ef: 0x9f,\n\t0x6f0: 0x9f, 0x6f1: 0x9f, 0x6f2: 0x9f, 0x6f3: 0x9f, 0x6f4: 0x9f, 0x6f5: 0x9f, 0x6f6: 0x9f, 0x6f7: 0x9f,\n\t0x6f8: 0x9f, 0x6f9: 0x9f, 0x6fa: 0x9f, 0x6fb: 0x9f, 0x6fc: 0x9f, 0x6fd: 0x9f, 0x6fe: 0x9f, 0x6ff: 0x9f,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x9f, 0x701: 0x9f, 0x702: 0x9f, 0x703: 0x9f, 0x704: 0x9f, 0x705: 0x9f, 0x706: 0x9f, 0x707: 0x9f,\n\t0x708: 0x9f, 0x709: 0x9f, 0x70a: 0x9f, 0x70b: 0x9f, 0x70c: 0x9f, 0x70d: 0x9f, 0x70e: 0x9f, 0x70f: 0x9f,\n\t0x710: 0x9f, 0x711: 0x9f, 0x712: 0x9f, 0x713: 0x9f, 0x714: 0x9f, 0x715: 0x9f, 0x716: 0x9f, 0x717: 0x9f,\n\t0x718: 0x9f, 0x719: 0x9f, 0x71a: 0x9f, 0x71b: 0x9f, 0x71c: 0x9f, 0x71d: 0x9f, 0x71e: 0x9f, 0x71f: 0x9f,\n\t0x720: 0x9f, 0x721: 0x9f, 0x722: 0x9f, 0x723: 0x9f, 0x724: 0x9f, 0x725: 0x9f, 0x726: 0x9f, 0x727: 0x9f,\n\t0x728: 0x9f, 0x729: 0x9f, 0x72a: 0x9f, 0x72b: 0x9f, 0x72c: 0x9f, 0x72d: 0x9f, 0x72e: 0x9f, 0x72f: 0x9f,\n\t0x730: 0x9f, 0x731: 0x9f, 0x732: 0x9f, 0x733: 0x9f, 0x734: 0x9f, 0x735: 0x9f, 0x736: 0x9f, 0x737: 0x9f,\n\t0x738: 0x9f, 0x739: 0x9f, 0x73a: 0x189, 0x73b: 0x9f, 0x73c: 0x9f, 0x73d: 0x9f, 0x73e: 0x9f, 0x73f: 0x9f,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0x9f, 0x741: 0x9f, 0x742: 0x9f, 0x743: 0x9f, 0x744: 0x9f, 0x745: 0x9f, 0x746: 0x9f, 0x747: 0x9f,\n\t0x748: 0x9f, 0x749: 0x9f, 0x74a: 0x9f, 0x74b: 0x9f, 0x74c: 0x9f, 0x74d: 0x9f, 0x74e: 0x9f, 0x74f: 0x9f,\n\t0x750: 0x9f, 0x751: 0x9f, 0x752: 0x9f, 0x753: 0x9f, 0x754: 0x9f, 0x755: 0x9f, 0x756: 0x9f, 0x757: 0x9f,\n\t0x758: 0x9f, 0x759: 0x9f, 0x75a: 0x9f, 0x75b: 0x9f, 0x75c: 0x9f, 0x75d: 0x9f, 0x75e: 0x9f, 0x75f: 0x9f,\n\t0x760: 0x9f, 0x761: 0x9f, 0x762: 0x9f, 0x763: 0x9f, 0x764: 0x9f, 0x765: 0x9f, 0x766: 0x9f, 0x767: 0x9f,\n\t0x768: 0x9f, 0x769: 0x9f, 0x76a: 0x9f, 0x76b: 0x9f, 0x76c: 0x9f, 0x76d: 0x9f, 0x76e: 0x9f, 0x76f: 0x18a,\n\t0x770: 0xba, 0x771: 0xba, 0x772: 0xba, 0x773: 0xba, 0x774: 0xba, 0x775: 0xba, 0x776: 0xba, 0x777: 0xba,\n\t0x778: 0xba, 0x779: 0xba, 0x77a: 0xba, 0x77b: 0xba, 0x77c: 0xba, 0x77d: 0xba, 0x77e: 0xba, 0x77f: 0xba,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0xba, 0x781: 0xba, 0x782: 0xba, 0x783: 0xba, 0x784: 0xba, 0x785: 0xba, 0x786: 0xba, 0x787: 0xba,\n\t0x788: 0xba, 0x789: 0xba, 0x78a: 0xba, 0x78b: 0xba, 0x78c: 0xba, 0x78d: 0xba, 0x78e: 0xba, 0x78f: 0xba,\n\t0x790: 0xba, 0x791: 0xba, 0x792: 0xba, 0x793: 0xba, 0x794: 0xba, 0x795: 0xba, 0x796: 0xba, 0x797: 0xba,\n\t0x798: 0xba, 0x799: 0xba, 0x79a: 0xba, 0x79b: 0xba, 0x79c: 0xba, 0x79d: 0xba, 0x79e: 0xba, 0x79f: 0xba,\n\t0x7a0: 0x76, 0x7a1: 0x77, 0x7a2: 0x78, 0x7a3: 0x18b, 0x7a4: 0x79, 0x7a5: 0x7a, 0x7a6: 0x18c, 0x7a7: 0x7b,\n\t0x7a8: 0x7c, 0x7a9: 0xba, 0x7aa: 0xba, 0x7ab: 0xba, 0x7ac: 0xba, 0x7ad: 0xba, 0x7ae: 0xba, 0x7af: 0xba,\n\t0x7b0: 0xba, 0x7b1: 0xba, 0x7b2: 0xba, 0x7b3: 0xba, 0x7b4: 0xba, 0x7b5: 0xba, 0x7b6: 0xba, 0x7b7: 0xba,\n\t0x7b8: 0xba, 0x7b9: 0xba, 0x7ba: 0xba, 0x7bb: 0xba, 0x7bc: 0xba, 0x7bd: 0xba, 0x7be: 0xba, 0x7bf: 0xba,\n\t// Block 0x1f, offset 0x7c0\n\t0x7d0: 0x0d, 0x7d1: 0x0e, 0x7d2: 0x0f, 0x7d3: 0x10, 0x7d4: 0x11, 0x7d5: 0x0b, 0x7d6: 0x12, 0x7d7: 0x07,\n\t0x7d8: 0x13, 0x7d9: 0x0b, 0x7da: 0x0b, 0x7db: 0x14, 0x7dc: 0x0b, 0x7dd: 0x15, 0x7de: 0x16, 0x7df: 0x17,\n\t0x7e0: 0x07, 0x7e1: 0x07, 0x7e2: 0x07, 0x7e3: 0x07, 0x7e4: 0x07, 0x7e5: 0x07, 0x7e6: 0x07, 0x7e7: 0x07,\n\t0x7e8: 0x07, 0x7e9: 0x07, 0x7ea: 0x18, 0x7eb: 0x19, 0x7ec: 0x1a, 0x7ed: 0x07, 0x7ee: 0x1b, 0x7ef: 0x1c,\n\t0x7f0: 0x0b, 0x7f1: 0x0b, 0x7f2: 0x0b, 0x7f3: 0x0b, 0x7f4: 0x0b, 0x7f5: 0x0b, 0x7f6: 0x0b, 0x7f7: 0x0b,\n\t0x7f8: 0x0b, 0x7f9: 0x0b, 0x7fa: 0x0b, 0x7fb: 0x0b, 0x7fc: 0x0b, 0x7fd: 0x0b, 0x7fe: 0x0b, 0x7ff: 0x0b,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x0b, 0x801: 0x0b, 0x802: 0x0b, 0x803: 0x0b, 0x804: 0x0b, 0x805: 0x0b, 0x806: 0x0b, 0x807: 0x0b,\n\t0x808: 0x0b, 0x809: 0x0b, 0x80a: 0x0b, 0x80b: 0x0b, 0x80c: 0x0b, 0x80d: 0x0b, 0x80e: 0x0b, 0x80f: 0x0b,\n\t0x810: 0x0b, 0x811: 0x0b, 0x812: 0x0b, 0x813: 0x0b, 0x814: 0x0b, 0x815: 0x0b, 0x816: 0x0b, 0x817: 0x0b,\n\t0x818: 0x0b, 0x819: 0x0b, 0x81a: 0x0b, 0x81b: 0x0b, 0x81c: 0x0b, 0x81d: 0x0b, 0x81e: 0x0b, 0x81f: 0x0b,\n\t0x820: 0x0b, 0x821: 0x0b, 0x822: 0x0b, 0x823: 0x0b, 0x824: 0x0b, 0x825: 0x0b, 0x826: 0x0b, 0x827: 0x0b,\n\t0x828: 0x0b, 0x829: 0x0b, 0x82a: 0x0b, 0x82b: 0x0b, 0x82c: 0x0b, 0x82d: 0x0b, 0x82e: 0x0b, 0x82f: 0x0b,\n\t0x830: 0x0b, 0x831: 0x0b, 0x832: 0x0b, 0x833: 0x0b, 0x834: 0x0b, 0x835: 0x0b, 0x836: 0x0b, 0x837: 0x0b,\n\t0x838: 0x0b, 0x839: 0x0b, 0x83a: 0x0b, 0x83b: 0x0b, 0x83c: 0x0b, 0x83d: 0x0b, 0x83e: 0x0b, 0x83f: 0x0b,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x18d, 0x841: 0x18e, 0x842: 0xba, 0x843: 0xba, 0x844: 0x18f, 0x845: 0x18f, 0x846: 0x18f, 0x847: 0x190,\n\t0x848: 0xba, 0x849: 0xba, 0x84a: 0xba, 0x84b: 0xba, 0x84c: 0xba, 0x84d: 0xba, 0x84e: 0xba, 0x84f: 0xba,\n\t0x850: 0xba, 0x851: 0xba, 0x852: 0xba, 0x853: 0xba, 0x854: 0xba, 0x855: 0xba, 0x856: 0xba, 0x857: 0xba,\n\t0x858: 0xba, 0x859: 0xba, 0x85a: 0xba, 0x85b: 0xba, 0x85c: 0xba, 0x85d: 0xba, 0x85e: 0xba, 0x85f: 0xba,\n\t0x860: 0xba, 0x861: 0xba, 0x862: 0xba, 0x863: 0xba, 0x864: 0xba, 0x865: 0xba, 0x866: 0xba, 0x867: 0xba,\n\t0x868: 0xba, 0x869: 0xba, 0x86a: 0xba, 0x86b: 0xba, 0x86c: 0xba, 0x86d: 0xba, 0x86e: 0xba, 0x86f: 0xba,\n\t0x870: 0xba, 0x871: 0xba, 0x872: 0xba, 0x873: 0xba, 0x874: 0xba, 0x875: 0xba, 0x876: 0xba, 0x877: 0xba,\n\t0x878: 0xba, 0x879: 0xba, 0x87a: 0xba, 0x87b: 0xba, 0x87c: 0xba, 0x87d: 0xba, 0x87e: 0xba, 0x87f: 0xba,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x0b, 0x881: 0x0b, 0x882: 0x0b, 0x883: 0x0b, 0x884: 0x0b, 0x885: 0x0b, 0x886: 0x0b, 0x887: 0x0b,\n\t0x888: 0x0b, 0x889: 0x0b, 0x88a: 0x0b, 0x88b: 0x0b, 0x88c: 0x0b, 0x88d: 0x0b, 0x88e: 0x0b, 0x88f: 0x0b,\n\t0x890: 0x0b, 0x891: 0x0b, 0x892: 0x0b, 0x893: 0x0b, 0x894: 0x0b, 0x895: 0x0b, 0x896: 0x0b, 0x897: 0x0b,\n\t0x898: 0x0b, 0x899: 0x0b, 0x89a: 0x0b, 0x89b: 0x0b, 0x89c: 0x0b, 0x89d: 0x0b, 0x89e: 0x0b, 0x89f: 0x0b,\n\t0x8a0: 0x1f, 0x8a1: 0x0b, 0x8a2: 0x0b, 0x8a3: 0x0b, 0x8a4: 0x0b, 0x8a5: 0x0b, 0x8a6: 0x0b, 0x8a7: 0x0b,\n\t0x8a8: 0x0b, 0x8a9: 0x0b, 0x8aa: 0x0b, 0x8ab: 0x0b, 0x8ac: 0x0b, 0x8ad: 0x0b, 0x8ae: 0x0b, 0x8af: 0x0b,\n\t0x8b0: 0x0b, 0x8b1: 0x0b, 0x8b2: 0x0b, 0x8b3: 0x0b, 0x8b4: 0x0b, 0x8b5: 0x0b, 0x8b6: 0x0b, 0x8b7: 0x0b,\n\t0x8b8: 0x0b, 0x8b9: 0x0b, 0x8ba: 0x0b, 0x8bb: 0x0b, 0x8bc: 0x0b, 0x8bd: 0x0b, 0x8be: 0x0b, 0x8bf: 0x0b,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x0b, 0x8c1: 0x0b, 0x8c2: 0x0b, 0x8c3: 0x0b, 0x8c4: 0x0b, 0x8c5: 0x0b, 0x8c6: 0x0b, 0x8c7: 0x0b,\n\t0x8c8: 0x0b, 0x8c9: 0x0b, 0x8ca: 0x0b, 0x8cb: 0x0b, 0x8cc: 0x0b, 0x8cd: 0x0b, 0x8ce: 0x0b, 0x8cf: 0x0b,\n}\n\n// idnaSparseOffset: 276 entries, 552 bytes\nvar idnaSparseOffset = []uint16{0x0, 0x8, 0x19, 0x25, 0x27, 0x2c, 0x33, 0x3e, 0x4a, 0x4e, 0x5d, 0x62, 0x6c, 0x78, 0x86, 0x8b, 0x94, 0xa4, 0xb2, 0xbe, 0xca, 0xdb, 0xe5, 0xec, 0xf9, 0x10a, 0x111, 0x11c, 0x12b, 0x139, 0x143, 0x145, 0x14a, 0x14d, 0x150, 0x152, 0x15e, 0x169, 0x171, 0x177, 0x17d, 0x182, 0x187, 0x18a, 0x18e, 0x194, 0x199, 0x1a5, 0x1af, 0x1b5, 0x1c6, 0x1d0, 0x1d3, 0x1db, 0x1de, 0x1eb, 0x1f3, 0x1f7, 0x1fe, 0x206, 0x216, 0x222, 0x224, 0x22e, 0x23a, 0x246, 0x252, 0x25a, 0x25f, 0x269, 0x27a, 0x27e, 0x289, 0x28d, 0x296, 0x29e, 0x2a4, 0x2a9, 0x2ac, 0x2b0, 0x2b6, 0x2ba, 0x2be, 0x2c2, 0x2c7, 0x2cd, 0x2d5, 0x2dc, 0x2e7, 0x2f1, 0x2f5, 0x2f8, 0x2fe, 0x302, 0x304, 0x307, 0x309, 0x30c, 0x316, 0x319, 0x328, 0x32c, 0x331, 0x334, 0x338, 0x33d, 0x342, 0x348, 0x34e, 0x35d, 0x363, 0x367, 0x376, 0x37b, 0x383, 0x38d, 0x398, 0x3a0, 0x3b1, 0x3ba, 0x3ca, 0x3d7, 0x3e1, 0x3e6, 0x3f3, 0x3f7, 0x3fc, 0x3fe, 0x402, 0x404, 0x408, 0x411, 0x417, 0x41b, 0x42b, 0x435, 0x43a, 0x43d, 0x443, 0x44a, 0x44f, 0x453, 0x459, 0x45e, 0x467, 0x46c, 0x472, 0x479, 0x480, 0x487, 0x48b, 0x490, 0x493, 0x498, 0x4a4, 0x4aa, 0x4af, 0x4b6, 0x4be, 0x4c3, 0x4c7, 0x4d7, 0x4de, 0x4e2, 0x4e6, 0x4ed, 0x4ef, 0x4f2, 0x4f5, 0x4f9, 0x502, 0x506, 0x50e, 0x516, 0x51c, 0x525, 0x531, 0x538, 0x541, 0x54b, 0x552, 0x560, 0x56d, 0x57a, 0x583, 0x587, 0x596, 0x59e, 0x5a9, 0x5b2, 0x5b8, 0x5c0, 0x5c9, 0x5d3, 0x5d6, 0x5e2, 0x5eb, 0x5ee, 0x5f3, 0x5fe, 0x607, 0x613, 0x616, 0x620, 0x629, 0x635, 0x642, 0x64f, 0x65d, 0x664, 0x667, 0x66c, 0x66f, 0x672, 0x675, 0x67c, 0x683, 0x687, 0x692, 0x695, 0x698, 0x69b, 0x6a1, 0x6a6, 0x6aa, 0x6ad, 0x6b0, 0x6b3, 0x6b6, 0x6b9, 0x6be, 0x6c8, 0x6cb, 0x6cf, 0x6de, 0x6ea, 0x6ee, 0x6f3, 0x6f7, 0x6fc, 0x700, 0x705, 0x70e, 0x719, 0x71f, 0x727, 0x72a, 0x72d, 0x731, 0x735, 0x73b, 0x741, 0x746, 0x749, 0x759, 0x760, 0x763, 0x766, 0x76a, 0x770, 0x775, 0x77a, 0x782, 0x787, 0x78b, 0x78f, 0x792, 0x795, 0x799, 0x79d, 0x7a0, 0x7b0, 0x7c1, 0x7c6, 0x7c8, 0x7ca}\n\n// idnaSparseValues: 1997 entries, 7988 bytes\nvar idnaSparseValues = [1997]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xe105, lo: 0x80, hi: 0x96},\n\t{value: 0x0018, lo: 0x97, hi: 0x97},\n\t{value: 0xe105, lo: 0x98, hi: 0x9e},\n\t{value: 0x001f, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbf},\n\t// Block 0x1, offset 0x8\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0xe01d, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x82},\n\t{value: 0x0335, lo: 0x83, hi: 0x83},\n\t{value: 0x034d, lo: 0x84, hi: 0x84},\n\t{value: 0x0365, lo: 0x85, hi: 0x85},\n\t{value: 0xe00d, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x87},\n\t{value: 0xe00d, lo: 0x88, hi: 0x88},\n\t{value: 0x0008, lo: 0x89, hi: 0x89},\n\t{value: 0xe00d, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0x8b},\n\t{value: 0xe00d, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0x8d},\n\t{value: 0xe00d, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0xbf},\n\t// Block 0x2, offset 0x19\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x0249, lo: 0xb0, hi: 0xb0},\n\t{value: 0x037d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0259, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0269, lo: 0xb3, hi: 0xb3},\n\t{value: 0x034d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0395, lo: 0xb5, hi: 0xb5},\n\t{value: 0xe1bd, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0279, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0289, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0008, lo: 0xb9, hi: 0xbf},\n\t// Block 0x3, offset 0x25\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x3308, lo: 0x80, hi: 0xbf},\n\t// Block 0x4, offset 0x27\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x03f5, lo: 0x80, hi: 0x8f},\n\t{value: 0xe105, lo: 0x90, hi: 0x9f},\n\t{value: 0x049d, lo: 0xa0, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x5, offset 0x2c\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe185, lo: 0x80, hi: 0x8f},\n\t{value: 0x0545, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x98},\n\t{value: 0x0008, lo: 0x99, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x6, offset 0x33\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0401, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x88},\n\t{value: 0x0018, lo: 0x89, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x3308, lo: 0x91, hi: 0xbd},\n\t{value: 0x0818, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7, offset 0x3e\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0818, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x82},\n\t{value: 0x0818, lo: 0x83, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x85},\n\t{value: 0x0818, lo: 0x86, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xae},\n\t{value: 0x0808, lo: 0xaf, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x8, offset 0x4a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0a08, lo: 0x80, hi: 0x87},\n\t{value: 0x0c08, lo: 0x88, hi: 0x99},\n\t{value: 0x0a08, lo: 0x9a, hi: 0xbf},\n\t// Block 0x9, offset 0x4e\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3308, lo: 0x80, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8c},\n\t{value: 0x0c08, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0a08, lo: 0x8e, hi: 0x98},\n\t{value: 0x0c08, lo: 0x99, hi: 0x9b},\n\t{value: 0x0a08, lo: 0x9c, hi: 0xaa},\n\t{value: 0x0c08, lo: 0xab, hi: 0xac},\n\t{value: 0x0a08, lo: 0xad, hi: 0xb0},\n\t{value: 0x0c08, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0a08, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0c08, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0a08, lo: 0xb5, hi: 0xb7},\n\t{value: 0x0c08, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0a08, lo: 0xba, hi: 0xbf},\n\t// Block 0xa, offset 0x5d\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xb0},\n\t{value: 0x0808, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0xb, offset 0x62\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0808, lo: 0x80, hi: 0x89},\n\t{value: 0x0a08, lo: 0x8a, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xb3},\n\t{value: 0x0808, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xb9},\n\t{value: 0x0818, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0818, lo: 0xbe, hi: 0xbf},\n\t// Block 0xc, offset 0x6c\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x99},\n\t{value: 0x0808, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0xa3},\n\t{value: 0x0808, lo: 0xa4, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa7},\n\t{value: 0x0808, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0818, lo: 0xb0, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xd, offset 0x78\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0a08, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0c08, lo: 0xaa, hi: 0xac},\n\t{value: 0x0808, lo: 0xad, hi: 0xad},\n\t{value: 0x0c08, lo: 0xae, hi: 0xae},\n\t{value: 0x0a08, lo: 0xaf, hi: 0xb0},\n\t{value: 0x0c08, lo: 0xb1, hi: 0xb2},\n\t{value: 0x0a08, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0a08, lo: 0xb6, hi: 0xb8},\n\t{value: 0x0c08, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0a08, lo: 0xba, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0xe, offset 0x86\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x92},\n\t{value: 0x3308, lo: 0x93, hi: 0xa1},\n\t{value: 0x0840, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3308, lo: 0xa3, hi: 0xbf},\n\t// Block 0xf, offset 0x8b\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x10, offset 0x94\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x85},\n\t{value: 0x3008, lo: 0x86, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x3008, lo: 0x8a, hi: 0x8c},\n\t{value: 0x3b08, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x97},\n\t{value: 0x0040, lo: 0x98, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x11, offset 0xa4\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0008, lo: 0xaa, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbf},\n\t// Block 0x12, offset 0xb2\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0xba},\n\t{value: 0x3b08, lo: 0xbb, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x13, offset 0xbe\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0040, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0008, lo: 0xb3, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x14, offset 0xca\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x89},\n\t{value: 0x3b08, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8e},\n\t{value: 0x3008, lo: 0x8f, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x94},\n\t{value: 0x0040, lo: 0x95, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x3008, lo: 0x98, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xb1},\n\t{value: 0x3008, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x15, offset 0xdb\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb2},\n\t{value: 0x08f1, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb9},\n\t{value: 0x3b08, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbe},\n\t{value: 0x0018, lo: 0xbf, hi: 0xbf},\n\t// Block 0x16, offset 0xe5\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x8e},\n\t{value: 0x0018, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0xbf},\n\t// Block 0x17, offset 0xec\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x3308, lo: 0x88, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0961, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0999, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0008, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0x18, offset 0xf9\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0x8b},\n\t{value: 0xe03d, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xb8},\n\t{value: 0x3308, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0018, lo: 0xba, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x19, offset 0x10a\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0018, lo: 0x8e, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0xbf},\n\t// Block 0x1a, offset 0x111\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x3008, lo: 0xab, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xb0},\n\t{value: 0x3008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb7},\n\t{value: 0x3008, lo: 0xb8, hi: 0xb8},\n\t{value: 0x3b08, lo: 0xb9, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1b, offset 0x11c\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x95},\n\t{value: 0x3008, lo: 0x96, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0x9d},\n\t{value: 0x3308, lo: 0x9e, hi: 0xa0},\n\t{value: 0x0008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3008, lo: 0xa2, hi: 0xa4},\n\t{value: 0x0008, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xbf},\n\t// Block 0x1c, offset 0x12b\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x3008, lo: 0x87, hi: 0x8c},\n\t{value: 0x3308, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x8e},\n\t{value: 0x3008, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x3008, lo: 0x9a, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0x1d, offset 0x139\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0040, lo: 0x80, hi: 0x86},\n\t{value: 0x055d, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8c},\n\t{value: 0x055d, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbb},\n\t{value: 0xe105, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbf},\n\t// Block 0x1e, offset 0x143\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0018, lo: 0x80, hi: 0xbf},\n\t// Block 0x1f, offset 0x145\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xa0},\n\t{value: 0x2018, lo: 0xa1, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0x20, offset 0x14a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xa7},\n\t{value: 0x2018, lo: 0xa8, hi: 0xbf},\n\t// Block 0x21, offset 0x14d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x2018, lo: 0x80, hi: 0x82},\n\t{value: 0x0018, lo: 0x83, hi: 0xbf},\n\t// Block 0x22, offset 0x150\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0008, lo: 0x80, hi: 0xbf},\n\t// Block 0x23, offset 0x152\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x24, offset 0x15e\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x25, offset 0x169\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0040, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbf},\n\t// Block 0x26, offset 0x171\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbf},\n\t// Block 0x27, offset 0x177\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x28, offset 0x17d\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x29, offset 0x182\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0xe045, lo: 0xb8, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x2a, offset 0x187\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xbf},\n\t// Block 0x2b, offset 0x18a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xac},\n\t{value: 0x0018, lo: 0xad, hi: 0xae},\n\t{value: 0x0008, lo: 0xaf, hi: 0xbf},\n\t// Block 0x2c, offset 0x18e\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9c},\n\t{value: 0x0040, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x2d, offset 0x194\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xb0},\n\t{value: 0x0008, lo: 0xb1, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0x2e, offset 0x199\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x93},\n\t{value: 0x3b08, lo: 0x94, hi: 0x94},\n\t{value: 0x0040, lo: 0x95, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3b08, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0018, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x2f, offset 0x1a5\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0x30, offset 0x1af\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0xb3},\n\t{value: 0x3340, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3008, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x31, offset 0x1b5\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x3008, lo: 0x80, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x3008, lo: 0x87, hi: 0x88},\n\t{value: 0x3308, lo: 0x89, hi: 0x91},\n\t{value: 0x3b08, lo: 0x92, hi: 0x92},\n\t{value: 0x3308, lo: 0x93, hi: 0x93},\n\t{value: 0x0018, lo: 0x94, hi: 0x96},\n\t{value: 0x0008, lo: 0x97, hi: 0x97},\n\t{value: 0x0018, lo: 0x98, hi: 0x9b},\n\t{value: 0x0008, lo: 0x9c, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x32, offset 0x1c6\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0018, lo: 0x80, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x86},\n\t{value: 0x0218, lo: 0x87, hi: 0x87},\n\t{value: 0x0018, lo: 0x88, hi: 0x8a},\n\t{value: 0x33c0, lo: 0x8b, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0208, lo: 0xa0, hi: 0xbf},\n\t// Block 0x33, offset 0x1d0\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0208, lo: 0x80, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0x34, offset 0x1d3\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x0208, lo: 0x87, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0208, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x35, offset 0x1db\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0x36, offset 0x1de\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb8},\n\t{value: 0x3308, lo: 0xb9, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x37, offset 0x1eb\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0018, lo: 0x80, hi: 0x80},\n\t{value: 0x0040, lo: 0x81, hi: 0x83},\n\t{value: 0x0018, lo: 0x84, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x38, offset 0x1f3\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x39, offset 0x1f7\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0028, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0xbf},\n\t// Block 0x3a, offset 0x1fe\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x3308, lo: 0x97, hi: 0x98},\n\t{value: 0x3008, lo: 0x99, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x3b, offset 0x206\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0008, lo: 0x80, hi: 0x94},\n\t{value: 0x3008, lo: 0x95, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3b08, lo: 0xa0, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xac},\n\t{value: 0x3008, lo: 0xad, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3c, offset 0x216\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0018, lo: 0xa8, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xbd},\n\t{value: 0x3318, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3d, offset 0x222\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0040, lo: 0x80, hi: 0xbf},\n\t// Block 0x3e, offset 0x224\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x3308, lo: 0x80, hi: 0x83},\n\t{value: 0x3008, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x3008, lo: 0xbd, hi: 0xbf},\n\t// Block 0x3f, offset 0x22e\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x3808, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x40, offset 0x23a\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa9},\n\t{value: 0x3808, lo: 0xaa, hi: 0xaa},\n\t{value: 0x3b08, lo: 0xab, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xbf},\n\t// Block 0x41, offset 0x246\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa9},\n\t{value: 0x3008, lo: 0xaa, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xae},\n\t{value: 0x3308, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3808, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbb},\n\t{value: 0x0018, lo: 0xbc, hi: 0xbf},\n\t// Block 0x42, offset 0x252\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa3},\n\t{value: 0x3008, lo: 0xa4, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbf},\n\t// Block 0x43, offset 0x25a\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0x44, offset 0x25f\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0e29, lo: 0x80, hi: 0x80},\n\t{value: 0x0e41, lo: 0x81, hi: 0x81},\n\t{value: 0x0e59, lo: 0x82, hi: 0x82},\n\t{value: 0x0e71, lo: 0x83, hi: 0x83},\n\t{value: 0x0e89, lo: 0x84, hi: 0x85},\n\t{value: 0x0ea1, lo: 0x86, hi: 0x86},\n\t{value: 0x0eb9, lo: 0x87, hi: 0x87},\n\t{value: 0x057d, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0xbf},\n\t// Block 0x45, offset 0x269\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x3308, lo: 0x90, hi: 0x92},\n\t{value: 0x0018, lo: 0x93, hi: 0x93},\n\t{value: 0x3308, lo: 0x94, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa8},\n\t{value: 0x0008, lo: 0xa9, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb1},\n\t{value: 0x3008, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xb6},\n\t{value: 0x3008, lo: 0xb7, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x46, offset 0x27a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3308, lo: 0x80, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xba},\n\t{value: 0x3308, lo: 0xbb, hi: 0xbf},\n\t// Block 0x47, offset 0x27e\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x87},\n\t{value: 0xe045, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0xe045, lo: 0x98, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa7},\n\t{value: 0xe045, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb7},\n\t{value: 0xe045, lo: 0xb8, hi: 0xbf},\n\t// Block 0x48, offset 0x289\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x3318, lo: 0x90, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xbf},\n\t// Block 0x49, offset 0x28d\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x88},\n\t{value: 0x24c1, lo: 0x89, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0x4a, offset 0x296\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0018, lo: 0x80, hi: 0xab},\n\t{value: 0x24f1, lo: 0xac, hi: 0xac},\n\t{value: 0x2529, lo: 0xad, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xae},\n\t{value: 0x2579, lo: 0xaf, hi: 0xaf},\n\t{value: 0x25b1, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0018, lo: 0xb1, hi: 0xbf},\n\t// Block 0x4b, offset 0x29e\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x9f},\n\t{value: 0x0080, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xad},\n\t{value: 0x0080, lo: 0xae, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x4c, offset 0x2a4\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0xa8},\n\t{value: 0x09c5, lo: 0xa9, hi: 0xa9},\n\t{value: 0x09e5, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xbf},\n\t// Block 0x4d, offset 0x2a9\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xbf},\n\t// Block 0x4e, offset 0x2ac\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x8b},\n\t{value: 0x28c1, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0xbf},\n\t// Block 0x4f, offset 0x2b0\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0xb3},\n\t{value: 0x0e66, lo: 0xb4, hi: 0xb4},\n\t{value: 0x292a, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0e86, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0x50, offset 0x2b6\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x9b},\n\t{value: 0x2941, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0xbf},\n\t// Block 0x51, offset 0x2ba\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0x52, offset 0x2be\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0x0018, lo: 0x98, hi: 0xbf},\n\t// Block 0x53, offset 0x2c2\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x54, offset 0x2c7\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xe185, lo: 0x80, hi: 0x8f},\n\t{value: 0x03f5, lo: 0x90, hi: 0x9f},\n\t{value: 0x0ea5, lo: 0xa0, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x55, offset 0x2cd\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xac},\n\t{value: 0x0008, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x56, offset 0x2d5\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xae},\n\t{value: 0xe075, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0x57, offset 0x2dc\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x58, offset 0x2e7\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xbf},\n\t// Block 0x59, offset 0x2f1\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xae},\n\t{value: 0x0008, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x5a, offset 0x2f5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0xbf},\n\t// Block 0x5b, offset 0x2f8\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9e},\n\t{value: 0x0edd, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbf},\n\t// Block 0x5c, offset 0x2fe\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xb2},\n\t{value: 0x0efd, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0x5d, offset 0x302\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x0f1d, lo: 0x80, hi: 0xbf},\n\t// Block 0x5e, offset 0x304\n\t{value: 0x0020, lo: 0x02},\n\t{value: 0x171d, lo: 0x80, hi: 0x8f},\n\t{value: 0x18fd, lo: 0x90, hi: 0xbf},\n\t// Block 0x5f, offset 0x307\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x1efd, lo: 0x80, hi: 0xbf},\n\t// Block 0x60, offset 0x309\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xbf},\n\t// Block 0x61, offset 0x30c\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x98},\n\t{value: 0x3308, lo: 0x99, hi: 0x9a},\n\t{value: 0x29e2, lo: 0x9b, hi: 0x9b},\n\t{value: 0x2a0a, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0008, lo: 0x9d, hi: 0x9e},\n\t{value: 0x2a31, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0008, lo: 0xa1, hi: 0xbf},\n\t// Block 0x62, offset 0x316\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xbe},\n\t{value: 0x2a69, lo: 0xbf, hi: 0xbf},\n\t// Block 0x63, offset 0x319\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0040, lo: 0x80, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xb0},\n\t{value: 0x2a1d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x2a3d, lo: 0xb2, hi: 0xb2},\n\t{value: 0x2a5d, lo: 0xb3, hi: 0xb3},\n\t{value: 0x2a7d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x2a5d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x2a9d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x2abd, lo: 0xb7, hi: 0xb7},\n\t{value: 0x2add, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2afd, lo: 0xba, hi: 0xbb},\n\t{value: 0x2b1d, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2afd, lo: 0xbe, hi: 0xbf},\n\t// Block 0x64, offset 0x328\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x65, offset 0x32c\n\t{value: 0x0030, lo: 0x04},\n\t{value: 0x2aa2, lo: 0x80, hi: 0x9d},\n\t{value: 0x305a, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x30a2, lo: 0xa0, hi: 0xbf},\n\t// Block 0x66, offset 0x331\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0x67, offset 0x334\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0x68, offset 0x338\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0x69, offset 0x33d\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xbf},\n\t// Block 0x6a, offset 0x342\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x0018, lo: 0xa6, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0018, lo: 0xb2, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0x6b, offset 0x348\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0040, lo: 0x80, hi: 0xb6},\n\t{value: 0x0008, lo: 0xb7, hi: 0xb7},\n\t{value: 0x2009, lo: 0xb8, hi: 0xb8},\n\t{value: 0x6e89, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xbf},\n\t// Block 0x6c, offset 0x34e\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0x85},\n\t{value: 0x3b08, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x8a},\n\t{value: 0x3308, lo: 0x8b, hi: 0x8b},\n\t{value: 0x0008, lo: 0x8c, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0018, lo: 0xa8, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x6d, offset 0x35d\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0208, lo: 0x80, hi: 0xb1},\n\t{value: 0x0108, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0008, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0x6e, offset 0x363\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xbf},\n\t// Block 0x6f, offset 0x367\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3008, lo: 0x80, hi: 0x83},\n\t{value: 0x3b08, lo: 0x84, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8d},\n\t{value: 0x0018, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xba},\n\t{value: 0x0008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0018, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0x70, offset 0x376\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x71, offset 0x37b\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x91},\n\t{value: 0x3008, lo: 0x92, hi: 0x92},\n\t{value: 0x3808, lo: 0x93, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x72, offset 0x383\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb9},\n\t{value: 0x3008, lo: 0xba, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x3008, lo: 0xbd, hi: 0xbf},\n\t// Block 0x73, offset 0x38d\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3808, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x74, offset 0x398\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x75, offset 0x3a0\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x8b},\n\t{value: 0x3308, lo: 0x8c, hi: 0x8c},\n\t{value: 0x3008, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0018, lo: 0x9c, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x3008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x76, offset 0x3b1\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb8},\n\t{value: 0x0008, lo: 0xb9, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbf},\n\t// Block 0x77, offset 0x3ba\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x9a},\n\t{value: 0x0008, lo: 0x9b, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xaa},\n\t{value: 0x3008, lo: 0xab, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3b08, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x78, offset 0x3ca\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x88},\n\t{value: 0x0008, lo: 0x89, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x90},\n\t{value: 0x0008, lo: 0x91, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x79, offset 0x3d7\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9b},\n\t{value: 0x4465, lo: 0x9c, hi: 0x9c},\n\t{value: 0x447d, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2971, lo: 0x9e, hi: 0x9e},\n\t{value: 0xe06d, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xaf},\n\t{value: 0x4495, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7a, offset 0x3e1\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x44b5, lo: 0x80, hi: 0x8f},\n\t{value: 0x44d5, lo: 0x90, hi: 0x9f},\n\t{value: 0x44f5, lo: 0xa0, hi: 0xaf},\n\t{value: 0x44d5, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7b, offset 0x3e6\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3b08, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x7c, offset 0x3f3\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7d, offset 0x3f7\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8a},\n\t{value: 0x0018, lo: 0x8b, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x7e, offset 0x3fc\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x4515, lo: 0x80, hi: 0xbf},\n\t// Block 0x7f, offset 0x3fe\n\t{value: 0x0020, lo: 0x03},\n\t{value: 0x4d15, lo: 0x80, hi: 0x94},\n\t{value: 0x4ad5, lo: 0x95, hi: 0x95},\n\t{value: 0x4fb5, lo: 0x96, hi: 0xbf},\n\t// Block 0x80, offset 0x402\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x54f5, lo: 0x80, hi: 0xbf},\n\t// Block 0x81, offset 0x404\n\t{value: 0x0020, lo: 0x03},\n\t{value: 0x5cf5, lo: 0x80, hi: 0x84},\n\t{value: 0x5655, lo: 0x85, hi: 0x85},\n\t{value: 0x5d95, lo: 0x86, hi: 0xbf},\n\t// Block 0x82, offset 0x408\n\t{value: 0x0020, lo: 0x08},\n\t{value: 0x6b55, lo: 0x80, hi: 0x8f},\n\t{value: 0x6d15, lo: 0x90, hi: 0x90},\n\t{value: 0x6d55, lo: 0x91, hi: 0xab},\n\t{value: 0x6ea1, lo: 0xac, hi: 0xac},\n\t{value: 0x70b5, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x70d5, lo: 0xb0, hi: 0xbf},\n\t// Block 0x83, offset 0x411\n\t{value: 0x0020, lo: 0x05},\n\t{value: 0x72d5, lo: 0x80, hi: 0xad},\n\t{value: 0x6535, lo: 0xae, hi: 0xae},\n\t{value: 0x7895, lo: 0xaf, hi: 0xb5},\n\t{value: 0x6f55, lo: 0xb6, hi: 0xb6},\n\t{value: 0x7975, lo: 0xb7, hi: 0xbf},\n\t// Block 0x84, offset 0x417\n\t{value: 0x0028, lo: 0x03},\n\t{value: 0x7c21, lo: 0x80, hi: 0x82},\n\t{value: 0x7be1, lo: 0x83, hi: 0x83},\n\t{value: 0x7c99, lo: 0x84, hi: 0xbf},\n\t// Block 0x85, offset 0x41b\n\t{value: 0x0038, lo: 0x0f},\n\t{value: 0x9db1, lo: 0x80, hi: 0x83},\n\t{value: 0x9e59, lo: 0x84, hi: 0x85},\n\t{value: 0x9e91, lo: 0x86, hi: 0x87},\n\t{value: 0x9ec9, lo: 0x88, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0xa089, lo: 0x92, hi: 0x97},\n\t{value: 0xa1a1, lo: 0x98, hi: 0x9c},\n\t{value: 0xa281, lo: 0x9d, hi: 0xb3},\n\t{value: 0x9d41, lo: 0xb4, hi: 0xb4},\n\t{value: 0x9db1, lo: 0xb5, hi: 0xb5},\n\t{value: 0xa789, lo: 0xb6, hi: 0xbb},\n\t{value: 0xa869, lo: 0xbc, hi: 0xbc},\n\t{value: 0xa7f9, lo: 0xbd, hi: 0xbd},\n\t{value: 0xa8d9, lo: 0xbe, hi: 0xbf},\n\t// Block 0x86, offset 0x42b\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0008, lo: 0xbc, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0x87, offset 0x435\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0xbf},\n\t// Block 0x88, offset 0x43a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x89, offset 0x43d\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0x8a, offset 0x443\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0040, lo: 0xa1, hi: 0xbf},\n\t// Block 0x8b, offset 0x44a\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x8c, offset 0x44f\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x9c},\n\t{value: 0x0040, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x8d, offset 0x453\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x8e, offset 0x459\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xac},\n\t{value: 0x0008, lo: 0xad, hi: 0xbf},\n\t// Block 0x8f, offset 0x45e\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x90, offset 0x467\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x91, offset 0x46c\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0xbf},\n\t// Block 0x92, offset 0x472\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe145, lo: 0x80, hi: 0x87},\n\t{value: 0xe1c5, lo: 0x88, hi: 0x8f},\n\t{value: 0xe145, lo: 0x90, hi: 0x97},\n\t{value: 0x8ad5, lo: 0x98, hi: 0x9f},\n\t{value: 0x8aed, lo: 0xa0, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xbf},\n\t// Block 0x93, offset 0x479\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x8aed, lo: 0xb0, hi: 0xb7},\n\t{value: 0x8ad5, lo: 0xb8, hi: 0xbf},\n\t// Block 0x94, offset 0x480\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe145, lo: 0x80, hi: 0x87},\n\t{value: 0xe1c5, lo: 0x88, hi: 0x8f},\n\t{value: 0xe145, lo: 0x90, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x95, offset 0x487\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x96, offset 0x48b\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xae},\n\t{value: 0x0018, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0x97, offset 0x490\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x98, offset 0x493\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xbf},\n\t// Block 0x99, offset 0x498\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0808, lo: 0x80, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x87},\n\t{value: 0x0808, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0808, lo: 0x8a, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0808, lo: 0xb7, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbb},\n\t{value: 0x0808, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbe},\n\t{value: 0x0808, lo: 0xbf, hi: 0xbf},\n\t// Block 0x9a, offset 0x4a4\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x96},\n\t{value: 0x0818, lo: 0x97, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0818, lo: 0xb7, hi: 0xbf},\n\t// Block 0x9b, offset 0x4aa\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xa6},\n\t{value: 0x0818, lo: 0xa7, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0x9c, offset 0x4af\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0808, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xba},\n\t{value: 0x0818, lo: 0xbb, hi: 0xbf},\n\t// Block 0x9d, offset 0x4b6\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0818, lo: 0x96, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbe},\n\t{value: 0x0818, lo: 0xbf, hi: 0xbf},\n\t// Block 0x9e, offset 0x4be\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbb},\n\t{value: 0x0818, lo: 0xbc, hi: 0xbd},\n\t{value: 0x0808, lo: 0xbe, hi: 0xbf},\n\t// Block 0x9f, offset 0x4c3\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0818, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x91},\n\t{value: 0x0818, lo: 0x92, hi: 0xbf},\n\t// Block 0xa0, offset 0x4c7\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0808, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8b},\n\t{value: 0x3308, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x94},\n\t{value: 0x0808, lo: 0x95, hi: 0x97},\n\t{value: 0x0040, lo: 0x98, hi: 0x98},\n\t{value: 0x0808, lo: 0x99, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xa1, offset 0x4d7\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0818, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0x0818, lo: 0x90, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xbc},\n\t{value: 0x0818, lo: 0xbd, hi: 0xbf},\n\t// Block 0xa2, offset 0x4de\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0x9c},\n\t{value: 0x0818, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0xa3, offset 0x4e2\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb8},\n\t{value: 0x0018, lo: 0xb9, hi: 0xbf},\n\t// Block 0xa4, offset 0x4e6\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0x0818, lo: 0x98, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb7},\n\t{value: 0x0818, lo: 0xb8, hi: 0xbf},\n\t// Block 0xa5, offset 0x4ed\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0808, lo: 0x80, hi: 0xbf},\n\t// Block 0xa6, offset 0x4ef\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0808, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0xbf},\n\t// Block 0xa7, offset 0x4f2\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x03dd, lo: 0x80, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbf},\n\t// Block 0xa8, offset 0x4f5\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb9},\n\t{value: 0x0818, lo: 0xba, hi: 0xbf},\n\t// Block 0xa9, offset 0x4f9\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0908, lo: 0x80, hi: 0x80},\n\t{value: 0x0a08, lo: 0x81, hi: 0xa1},\n\t{value: 0x0c08, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0a08, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3308, lo: 0xa4, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0808, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xaa, offset 0x502\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0818, lo: 0xa0, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xab, offset 0x506\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0808, lo: 0x80, hi: 0x9c},\n\t{value: 0x0818, lo: 0x9d, hi: 0xa6},\n\t{value: 0x0808, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0a08, lo: 0xb0, hi: 0xb2},\n\t{value: 0x0c08, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0a08, lo: 0xb4, hi: 0xbf},\n\t// Block 0xac, offset 0x50e\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0a08, lo: 0x80, hi: 0x84},\n\t{value: 0x0808, lo: 0x85, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x90},\n\t{value: 0x0a18, lo: 0x91, hi: 0x93},\n\t{value: 0x0c18, lo: 0x94, hi: 0x94},\n\t{value: 0x0818, lo: 0x95, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xad, offset 0x516\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x3008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbf},\n\t// Block 0xae, offset 0x51c\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x85},\n\t{value: 0x3b08, lo: 0x86, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x91},\n\t{value: 0x0018, lo: 0x92, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xaf, offset 0x525\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb6},\n\t{value: 0x3008, lo: 0xb7, hi: 0xb8},\n\t{value: 0x3b08, lo: 0xb9, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0xb0, offset 0x531\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x81},\n\t{value: 0x0040, lo: 0x82, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xb1, offset 0x538\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xb2},\n\t{value: 0x3b08, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0008, lo: 0xb6, hi: 0xbf},\n\t// Block 0xb2, offset 0x541\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0018, lo: 0x80, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x84},\n\t{value: 0x3008, lo: 0x85, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0008, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0xb3, offset 0x54b\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xbe},\n\t{value: 0x3008, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb4, offset 0x552\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x3808, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x88},\n\t{value: 0x3308, lo: 0x89, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0008, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0xb5, offset 0x560\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0x92},\n\t{value: 0x0008, lo: 0x93, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xae},\n\t{value: 0x3308, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3008, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3808, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb6, offset 0x56d\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0008, lo: 0x9f, hi: 0xa8},\n\t{value: 0x0018, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0xb7, offset 0x57a\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x3308, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3008, lo: 0xa0, hi: 0xa2},\n\t{value: 0x3308, lo: 0xa3, hi: 0xa9},\n\t{value: 0x3b08, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xb8, offset 0x583\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbf},\n\t// Block 0xb9, offset 0x587\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x3b08, lo: 0x82, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x84},\n\t{value: 0x3008, lo: 0x85, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x8a},\n\t{value: 0x0018, lo: 0x8b, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0x9d},\n\t{value: 0x3308, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xbf},\n\t// Block 0xba, offset 0x596\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb8},\n\t{value: 0x3008, lo: 0xb9, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0xbb, offset 0x59e\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x81},\n\t{value: 0x3b08, lo: 0x82, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x85},\n\t{value: 0x0018, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xbc, offset 0x5a9\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0x3008, lo: 0xb8, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xbd, offset 0x5b2\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x9b},\n\t{value: 0x3308, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0xbf},\n\t// Block 0xbe, offset 0x5b8\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xbf, offset 0x5c0\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xbf},\n\t// Block 0xc0, offset 0x5c9\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb5},\n\t{value: 0x3808, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0xc1, offset 0x5d3\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0xbf},\n\t// Block 0xc2, offset 0x5d6\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9f},\n\t{value: 0x3008, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xaa},\n\t{value: 0x3b08, lo: 0xab, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0018, lo: 0xba, hi: 0xbf},\n\t// Block 0xc3, offset 0x5e2\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xae},\n\t{value: 0x3308, lo: 0xaf, hi: 0xb7},\n\t{value: 0x3008, lo: 0xb8, hi: 0xb8},\n\t{value: 0x3b08, lo: 0xb9, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0xc4, offset 0x5eb\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x049d, lo: 0xa0, hi: 0xbf},\n\t// Block 0xc5, offset 0x5ee\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0xc6, offset 0x5f3\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3b08, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb8},\n\t{value: 0x3008, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xba},\n\t{value: 0x3308, lo: 0xbb, hi: 0xbe},\n\t{value: 0x0018, lo: 0xbf, hi: 0xbf},\n\t// Block 0xc7, offset 0x5fe\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x3b08, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x90},\n\t{value: 0x3308, lo: 0x91, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x98},\n\t{value: 0x3308, lo: 0x99, hi: 0x9b},\n\t{value: 0x0008, lo: 0x9c, hi: 0xbf},\n\t// Block 0xc8, offset 0x607\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0x89},\n\t{value: 0x3308, lo: 0x8a, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x98},\n\t{value: 0x3b08, lo: 0x99, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9c},\n\t{value: 0x0008, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0xa2},\n\t{value: 0x0040, lo: 0xa3, hi: 0xbf},\n\t// Block 0xc9, offset 0x613\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0xca, offset 0x616\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xcb, offset 0x620\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xbf},\n\t// Block 0xcc, offset 0x629\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xa9},\n\t{value: 0x3308, lo: 0xaa, hi: 0xb0},\n\t{value: 0x3008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0xcd, offset 0x635\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0xce, offset 0x642\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x3308, lo: 0x80, hi: 0x83},\n\t{value: 0x3b08, lo: 0x84, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0008, lo: 0xa7, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0008, lo: 0xaa, hi: 0xbf},\n\t// Block 0xcf, offset 0x64f\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x3008, lo: 0x8a, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x8f},\n\t{value: 0x3308, lo: 0x90, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0x92},\n\t{value: 0x3008, lo: 0x93, hi: 0x94},\n\t{value: 0x3308, lo: 0x95, hi: 0x95},\n\t{value: 0x3008, lo: 0x96, hi: 0x96},\n\t{value: 0x3b08, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xbf},\n\t// Block 0xd0, offset 0x65d\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0xd1, offset 0x664\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xd2, offset 0x667\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0xd3, offset 0x66c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0xbf},\n\t// Block 0xd4, offset 0x66f\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xbf},\n\t// Block 0xd5, offset 0x672\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0xbf},\n\t// Block 0xd6, offset 0x675\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0xd7, offset 0x67c\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0018, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0xd8, offset 0x683\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0xd9, offset 0x687\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0018, lo: 0x84, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0008, lo: 0xa3, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbf},\n\t// Block 0xda, offset 0x692\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0xbf},\n\t// Block 0xdb, offset 0x695\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0xdc, offset 0x698\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0xbf},\n\t// Block 0xdd, offset 0x69b\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x90},\n\t{value: 0x3008, lo: 0x91, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xde, offset 0x6a1\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x8e},\n\t{value: 0x3308, lo: 0x8f, hi: 0x92},\n\t{value: 0x0008, lo: 0x93, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0xdf, offset 0x6a6\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xbf},\n\t// Block 0xe0, offset 0x6aa\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0xe1, offset 0x6ad\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbf},\n\t// Block 0xe2, offset 0x6b0\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xbf},\n\t// Block 0xe3, offset 0x6b3\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0xe4, offset 0x6b6\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0xe5, offset 0x6b9\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0xe6, offset 0x6be\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0018, lo: 0x9c, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x03c0, lo: 0xa0, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xbf},\n\t// Block 0xe7, offset 0x6c8\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0xe8, offset 0x6cb\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa8},\n\t{value: 0x0018, lo: 0xa9, hi: 0xbf},\n\t// Block 0xe9, offset 0x6cf\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0018, lo: 0x80, hi: 0x9d},\n\t{value: 0xb5b9, lo: 0x9e, hi: 0x9e},\n\t{value: 0xb601, lo: 0x9f, hi: 0x9f},\n\t{value: 0xb649, lo: 0xa0, hi: 0xa0},\n\t{value: 0xb6b1, lo: 0xa1, hi: 0xa1},\n\t{value: 0xb719, lo: 0xa2, hi: 0xa2},\n\t{value: 0xb781, lo: 0xa3, hi: 0xa3},\n\t{value: 0xb7e9, lo: 0xa4, hi: 0xa4},\n\t{value: 0x3018, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3318, lo: 0xa7, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xac},\n\t{value: 0x3018, lo: 0xad, hi: 0xb2},\n\t{value: 0x0340, lo: 0xb3, hi: 0xba},\n\t{value: 0x3318, lo: 0xbb, hi: 0xbf},\n\t// Block 0xea, offset 0x6de\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3318, lo: 0x80, hi: 0x82},\n\t{value: 0x0018, lo: 0x83, hi: 0x84},\n\t{value: 0x3318, lo: 0x85, hi: 0x8b},\n\t{value: 0x0018, lo: 0x8c, hi: 0xa9},\n\t{value: 0x3318, lo: 0xaa, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xba},\n\t{value: 0xb851, lo: 0xbb, hi: 0xbb},\n\t{value: 0xb899, lo: 0xbc, hi: 0xbc},\n\t{value: 0xb8e1, lo: 0xbd, hi: 0xbd},\n\t{value: 0xb949, lo: 0xbe, hi: 0xbe},\n\t{value: 0xb9b1, lo: 0xbf, hi: 0xbf},\n\t// Block 0xeb, offset 0x6ea\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xba19, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xbf},\n\t// Block 0xec, offset 0x6ee\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x81},\n\t{value: 0x3318, lo: 0x82, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0xbf},\n\t// Block 0xed, offset 0x6f3\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0xee, offset 0x6f7\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0xef, offset 0x6fc\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3308, lo: 0x80, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xba},\n\t{value: 0x3308, lo: 0xbb, hi: 0xbf},\n\t// Block 0xf0, offset 0x700\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x3308, lo: 0x80, hi: 0xac},\n\t{value: 0x0018, lo: 0xad, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0xf1, offset 0x705\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa0},\n\t{value: 0x3308, lo: 0xa1, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0xf2, offset 0x70e\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3308, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x3308, lo: 0x88, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3308, lo: 0xa3, hi: 0xa4},\n\t{value: 0x0040, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xbf},\n\t// Block 0xf3, offset 0x719\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0808, lo: 0x80, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x86},\n\t{value: 0x0818, lo: 0x87, hi: 0x8f},\n\t{value: 0x3308, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0xbf},\n\t// Block 0xf4, offset 0x71f\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0a08, lo: 0x80, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0818, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0xf5, offset 0x727\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0xb0},\n\t{value: 0x0818, lo: 0xb1, hi: 0xbf},\n\t// Block 0xf6, offset 0x72a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0818, lo: 0x80, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0xf7, offset 0x72d\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0xf8, offset 0x731\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0xf9, offset 0x735\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xb0},\n\t{value: 0x0018, lo: 0xb1, hi: 0xbf},\n\t// Block 0xfa, offset 0x73b\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x0018, lo: 0x91, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0xfb, offset 0x741\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x8f},\n\t{value: 0xc1c1, lo: 0x90, hi: 0x90},\n\t{value: 0x0018, lo: 0x91, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xbf},\n\t// Block 0xfc, offset 0x746\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0xa5},\n\t{value: 0x0018, lo: 0xa6, hi: 0xbf},\n\t// Block 0xfd, offset 0x749\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0xc7e9, lo: 0x80, hi: 0x80},\n\t{value: 0xc839, lo: 0x81, hi: 0x81},\n\t{value: 0xc889, lo: 0x82, hi: 0x82},\n\t{value: 0xc8d9, lo: 0x83, hi: 0x83},\n\t{value: 0xc929, lo: 0x84, hi: 0x84},\n\t{value: 0xc979, lo: 0x85, hi: 0x85},\n\t{value: 0xc9c9, lo: 0x86, hi: 0x86},\n\t{value: 0xca19, lo: 0x87, hi: 0x87},\n\t{value: 0xca69, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0xcab9, lo: 0x90, hi: 0x90},\n\t{value: 0xcad9, lo: 0x91, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xbf},\n\t// Block 0xfe, offset 0x759\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x94},\n\t{value: 0x0040, lo: 0x95, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xff, offset 0x760\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0x100, offset 0x763\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0xbf},\n\t// Block 0x101, offset 0x766\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0x102, offset 0x76a\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbf},\n\t// Block 0x103, offset 0x770\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xbf},\n\t// Block 0x104, offset 0x775\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x105, offset 0x77a\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0018, lo: 0x80, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xb2},\n\t{value: 0x0018, lo: 0xb3, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb9},\n\t{value: 0x0018, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0018, lo: 0xbc, hi: 0xbf},\n\t// Block 0x106, offset 0x782\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0xa2},\n\t{value: 0x0040, lo: 0xa3, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x107, offset 0x787\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0x108, offset 0x78b\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xbf},\n\t// Block 0x109, offset 0x78f\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0xbf},\n\t// Block 0x10a, offset 0x792\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x10b, offset 0x795\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x10c, offset 0x799\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x10d, offset 0x79d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xa0},\n\t{value: 0x0040, lo: 0xa1, hi: 0xbf},\n\t// Block 0x10e, offset 0x7a0\n\t{value: 0x0020, lo: 0x0f},\n\t{value: 0xdeb9, lo: 0x80, hi: 0x89},\n\t{value: 0x8dfd, lo: 0x8a, hi: 0x8a},\n\t{value: 0xdff9, lo: 0x8b, hi: 0x9c},\n\t{value: 0x8e1d, lo: 0x9d, hi: 0x9d},\n\t{value: 0xe239, lo: 0x9e, hi: 0xa2},\n\t{value: 0x8e3d, lo: 0xa3, hi: 0xa3},\n\t{value: 0xe2d9, lo: 0xa4, hi: 0xab},\n\t{value: 0x7ed5, lo: 0xac, hi: 0xac},\n\t{value: 0xe3d9, lo: 0xad, hi: 0xaf},\n\t{value: 0x8e5d, lo: 0xb0, hi: 0xb0},\n\t{value: 0xe439, lo: 0xb1, hi: 0xb6},\n\t{value: 0x8e7d, lo: 0xb7, hi: 0xb9},\n\t{value: 0xe4f9, lo: 0xba, hi: 0xba},\n\t{value: 0x8edd, lo: 0xbb, hi: 0xbb},\n\t{value: 0xe519, lo: 0xbc, hi: 0xbf},\n\t// Block 0x10f, offset 0x7b0\n\t{value: 0x0020, lo: 0x10},\n\t{value: 0x937d, lo: 0x80, hi: 0x80},\n\t{value: 0xf099, lo: 0x81, hi: 0x86},\n\t{value: 0x939d, lo: 0x87, hi: 0x8a},\n\t{value: 0xd9f9, lo: 0x8b, hi: 0x8b},\n\t{value: 0xf159, lo: 0x8c, hi: 0x96},\n\t{value: 0x941d, lo: 0x97, hi: 0x97},\n\t{value: 0xf2b9, lo: 0x98, hi: 0xa3},\n\t{value: 0x943d, lo: 0xa4, hi: 0xa6},\n\t{value: 0xf439, lo: 0xa7, hi: 0xaa},\n\t{value: 0x949d, lo: 0xab, hi: 0xab},\n\t{value: 0xf4b9, lo: 0xac, hi: 0xac},\n\t{value: 0x94bd, lo: 0xad, hi: 0xad},\n\t{value: 0xf4d9, lo: 0xae, hi: 0xaf},\n\t{value: 0x94dd, lo: 0xb0, hi: 0xb1},\n\t{value: 0xf519, lo: 0xb2, hi: 0xbe},\n\t{value: 0x2040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x110, offset 0x7c1\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0340, lo: 0x81, hi: 0x81},\n\t{value: 0x0040, lo: 0x82, hi: 0x9f},\n\t{value: 0x0340, lo: 0xa0, hi: 0xbf},\n\t// Block 0x111, offset 0x7c6\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0340, lo: 0x80, hi: 0xbf},\n\t// Block 0x112, offset 0x7c8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x33c0, lo: 0x80, hi: 0xbf},\n\t// Block 0x113, offset 0x7ca\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x33c0, lo: 0x80, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n}\n\n// Total table size 42466 bytes (41KiB); checksum: 355A58A4\n"
  },
  {
    "path": "vendor/golang.org/x/net/idna/tables12.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n//go:build go1.14 && !go1.16\n\npackage idna\n\n// UnicodeVersion is the Unicode version from which the tables in this package are derived.\nconst UnicodeVersion = \"12.0.0\"\n\nvar mappings string = \"\" + // Size: 8178 bytes\n\t\"\\x00\\x01 \\x03 ̈\\x01a\\x03 ̄\\x012\\x013\\x03 ́\\x03 ̧\\x011\\x01o\\x051⁄4\\x051⁄2\" +\n\t\"\\x053⁄4\\x03i̇\\x03l·\\x03ʼn\\x01s\\x03dž\\x03ⱥ\\x03ⱦ\\x01h\\x01j\\x01r\\x01w\\x01y\" +\n\t\"\\x03 ̆\\x03 ̇\\x03 ̊\\x03 ̨\\x03 ̃\\x03 ̋\\x01l\\x01x\\x04̈́\\x03 ι\\x01;\\x05 ̈́\" +\n\t\"\\x04եւ\\x04اٴ\\x04وٴ\\x04ۇٴ\\x04يٴ\\x06क़\\x06ख़\\x06ग़\\x06ज़\\x06ड़\\x06ढ़\\x06फ़\" +\n\t\"\\x06य़\\x06ড়\\x06ঢ়\\x06য়\\x06ਲ਼\\x06ਸ਼\\x06ਖ਼\\x06ਗ਼\\x06ਜ਼\\x06ਫ਼\\x06ଡ଼\\x06ଢ଼\" +\n\t\"\\x06ํา\\x06ໍາ\\x06ຫນ\\x06ຫມ\\x06གྷ\\x06ཌྷ\\x06དྷ\\x06བྷ\\x06ཛྷ\\x06ཀྵ\\x06ཱི\\x06ཱུ\" +\n\t\"\\x06ྲྀ\\x09ྲཱྀ\\x06ླྀ\\x09ླཱྀ\\x06ཱྀ\\x06ྒྷ\\x06ྜྷ\\x06ྡྷ\\x06ྦྷ\\x06ྫྷ\\x06ྐྵ\\x02\" +\n\t\"в\\x02д\\x02о\\x02с\\x02т\\x02ъ\\x02ѣ\\x02æ\\x01b\\x01d\\x01e\\x02ǝ\\x01g\\x01i\\x01k\" +\n\t\"\\x01m\\x01n\\x02ȣ\\x01p\\x01t\\x01u\\x02ɐ\\x02ɑ\\x02ə\\x02ɛ\\x02ɜ\\x02ŋ\\x02ɔ\\x02ɯ\" +\n\t\"\\x01v\\x02β\\x02γ\\x02δ\\x02φ\\x02χ\\x02ρ\\x02н\\x02ɒ\\x01c\\x02ɕ\\x02ð\\x01f\\x02ɟ\" +\n\t\"\\x02ɡ\\x02ɥ\\x02ɨ\\x02ɩ\\x02ɪ\\x02ʝ\\x02ɭ\\x02ʟ\\x02ɱ\\x02ɰ\\x02ɲ\\x02ɳ\\x02ɴ\\x02ɵ\" +\n\t\"\\x02ɸ\\x02ʂ\\x02ʃ\\x02ƫ\\x02ʉ\\x02ʊ\\x02ʋ\\x02ʌ\\x01z\\x02ʐ\\x02ʑ\\x02ʒ\\x02θ\\x02ss\" +\n\t\"\\x02ά\\x02έ\\x02ή\\x02ί\\x02ό\\x02ύ\\x02ώ\\x05ἀι\\x05ἁι\\x05ἂι\\x05ἃι\\x05ἄι\\x05ἅι\" +\n\t\"\\x05ἆι\\x05ἇι\\x05ἠι\\x05ἡι\\x05ἢι\\x05ἣι\\x05ἤι\\x05ἥι\\x05ἦι\\x05ἧι\\x05ὠι\\x05ὡι\" +\n\t\"\\x05ὢι\\x05ὣι\\x05ὤι\\x05ὥι\\x05ὦι\\x05ὧι\\x05ὰι\\x04αι\\x04άι\\x05ᾶι\\x02ι\\x05 ̈͂\" +\n\t\"\\x05ὴι\\x04ηι\\x04ήι\\x05ῆι\\x05 ̓̀\\x05 ̓́\\x05 ̓͂\\x02ΐ\\x05 ̔̀\\x05 ̔́\\x05 ̔͂\" +\n\t\"\\x02ΰ\\x05 ̈̀\\x01`\\x05ὼι\\x04ωι\\x04ώι\\x05ῶι\\x06′′\\x09′′′\\x06‵‵\\x09‵‵‵\\x02!\" +\n\t\"!\\x02??\\x02?!\\x02!?\\x0c′′′′\\x010\\x014\\x015\\x016\\x017\\x018\\x019\\x01+\\x01=\" +\n\t\"\\x01(\\x01)\\x02rs\\x02ħ\\x02no\\x01q\\x02sm\\x02tm\\x02ω\\x02å\\x02א\\x02ב\\x02ג\" +\n\t\"\\x02ד\\x02π\\x051⁄7\\x051⁄9\\x061⁄10\\x051⁄3\\x052⁄3\\x051⁄5\\x052⁄5\\x053⁄5\\x054\" +\n\t\"⁄5\\x051⁄6\\x055⁄6\\x051⁄8\\x053⁄8\\x055⁄8\\x057⁄8\\x041⁄\\x02ii\\x02iv\\x02vi\" +\n\t\"\\x04viii\\x02ix\\x02xi\\x050⁄3\\x06∫∫\\x09∫∫∫\\x06∮∮\\x09∮∮∮\\x0210\\x0211\\x0212\" +\n\t\"\\x0213\\x0214\\x0215\\x0216\\x0217\\x0218\\x0219\\x0220\\x04(10)\\x04(11)\\x04(12)\" +\n\t\"\\x04(13)\\x04(14)\\x04(15)\\x04(16)\\x04(17)\\x04(18)\\x04(19)\\x04(20)\\x0c∫∫∫∫\" +\n\t\"\\x02==\\x05⫝̸\\x02ɫ\\x02ɽ\\x02ȿ\\x02ɀ\\x01.\\x04 ゙\\x04 ゚\\x06より\\x06コト\\x05(ᄀ)\\x05\" +\n\t\"(ᄂ)\\x05(ᄃ)\\x05(ᄅ)\\x05(ᄆ)\\x05(ᄇ)\\x05(ᄉ)\\x05(ᄋ)\\x05(ᄌ)\\x05(ᄎ)\\x05(ᄏ)\\x05(ᄐ\" +\n\t\")\\x05(ᄑ)\\x05(ᄒ)\\x05(가)\\x05(나)\\x05(다)\\x05(라)\\x05(마)\\x05(바)\\x05(사)\\x05(아)\" +\n\t\"\\x05(자)\\x05(차)\\x05(카)\\x05(타)\\x05(파)\\x05(하)\\x05(주)\\x08(오전)\\x08(오후)\\x05(一)\" +\n\t\"\\x05(二)\\x05(三)\\x05(四)\\x05(五)\\x05(六)\\x05(七)\\x05(八)\\x05(九)\\x05(十)\\x05(月)\" +\n\t\"\\x05(火)\\x05(水)\\x05(木)\\x05(金)\\x05(土)\\x05(日)\\x05(株)\\x05(有)\\x05(社)\\x05(名)\" +\n\t\"\\x05(特)\\x05(財)\\x05(祝)\\x05(労)\\x05(代)\\x05(呼)\\x05(学)\\x05(監)\\x05(企)\\x05(資)\" +\n\t\"\\x05(協)\\x05(祭)\\x05(休)\\x05(自)\\x05(至)\\x0221\\x0222\\x0223\\x0224\\x0225\\x0226\" +\n\t\"\\x0227\\x0228\\x0229\\x0230\\x0231\\x0232\\x0233\\x0234\\x0235\\x06참고\\x06주의\\x0236\" +\n\t\"\\x0237\\x0238\\x0239\\x0240\\x0241\\x0242\\x0243\\x0244\\x0245\\x0246\\x0247\\x0248\" +\n\t\"\\x0249\\x0250\\x041月\\x042月\\x043月\\x044月\\x045月\\x046月\\x047月\\x048月\\x049月\\x0510\" +\n\t\"月\\x0511月\\x0512月\\x02hg\\x02ev\\x0cアパート\\x0cアルファ\\x0cアンペア\\x09アール\\x0cイニング\\x09\" +\n\t\"インチ\\x09ウォン\\x0fエスクード\\x0cエーカー\\x09オンス\\x09オーム\\x09カイリ\\x0cカラット\\x0cカロリー\\x09ガロ\" +\n\t\"ン\\x09ガンマ\\x06ギガ\\x09ギニー\\x0cキュリー\\x0cギルダー\\x06キロ\\x0fキログラム\\x12キロメートル\\x0fキロワッ\" +\n\t\"ト\\x09グラム\\x0fグラムトン\\x0fクルゼイロ\\x0cクローネ\\x09ケース\\x09コルナ\\x09コーポ\\x0cサイクル\\x0fサンチ\" +\n\t\"ーム\\x0cシリング\\x09センチ\\x09セント\\x09ダース\\x06デシ\\x06ドル\\x06トン\\x06ナノ\\x09ノット\\x09ハイツ\" +\n\t\"\\x0fパーセント\\x09パーツ\\x0cバーレル\\x0fピアストル\\x09ピクル\\x06ピコ\\x06ビル\\x0fファラッド\\x0cフィート\" +\n\t\"\\x0fブッシェル\\x09フラン\\x0fヘクタール\\x06ペソ\\x09ペニヒ\\x09ヘルツ\\x09ペンス\\x09ページ\\x09ベータ\\x0cポイ\" +\n\t\"ント\\x09ボルト\\x06ホン\\x09ポンド\\x09ホール\\x09ホーン\\x0cマイクロ\\x09マイル\\x09マッハ\\x09マルク\\x0fマ\" +\n\t\"ンション\\x0cミクロン\\x06ミリ\\x0fミリバール\\x06メガ\\x0cメガトン\\x0cメートル\\x09ヤード\\x09ヤール\\x09ユアン\" +\n\t\"\\x0cリットル\\x06リラ\\x09ルピー\\x0cルーブル\\x06レム\\x0fレントゲン\\x09ワット\\x040点\\x041点\\x042点\" +\n\t\"\\x043点\\x044点\\x045点\\x046点\\x047点\\x048点\\x049点\\x0510点\\x0511点\\x0512点\\x0513点\" +\n\t\"\\x0514点\\x0515点\\x0516点\\x0517点\\x0518点\\x0519点\\x0520点\\x0521点\\x0522点\\x0523点\" +\n\t\"\\x0524点\\x02da\\x02au\\x02ov\\x02pc\\x02dm\\x02iu\\x06平成\\x06昭和\\x06大正\\x06明治\\x0c株\" +\n\t\"式会社\\x02pa\\x02na\\x02ma\\x02ka\\x02kb\\x02mb\\x02gb\\x04kcal\\x02pf\\x02nf\\x02m\" +\n\t\"g\\x02kg\\x02hz\\x02ml\\x02dl\\x02kl\\x02fm\\x02nm\\x02mm\\x02cm\\x02km\\x02m2\\x02m\" +\n\t\"3\\x05m∕s\\x06m∕s2\\x07rad∕s\\x08rad∕s2\\x02ps\\x02ns\\x02ms\\x02pv\\x02nv\\x02mv\" +\n\t\"\\x02kv\\x02pw\\x02nw\\x02mw\\x02kw\\x02bq\\x02cc\\x02cd\\x06c∕kg\\x02db\\x02gy\\x02\" +\n\t\"ha\\x02hp\\x02in\\x02kk\\x02kt\\x02lm\\x02ln\\x02lx\\x02ph\\x02pr\\x02sr\\x02sv\\x02\" +\n\t\"wb\\x05v∕m\\x05a∕m\\x041日\\x042日\\x043日\\x044日\\x045日\\x046日\\x047日\\x048日\\x049日\" +\n\t\"\\x0510日\\x0511日\\x0512日\\x0513日\\x0514日\\x0515日\\x0516日\\x0517日\\x0518日\\x0519日\" +\n\t\"\\x0520日\\x0521日\\x0522日\\x0523日\\x0524日\\x0525日\\x0526日\\x0527日\\x0528日\\x0529日\" +\n\t\"\\x0530日\\x0531日\\x02ь\\x02ɦ\\x02ɬ\\x02ʞ\\x02ʇ\\x02œ\\x04𤋮\\x04𢡊\\x04𢡄\\x04𣏕\\x04𥉉\" +\n\t\"\\x04𥳐\\x04𧻓\\x02ff\\x02fi\\x02fl\\x02st\\x04մն\\x04մե\\x04մի\\x04վն\\x04մխ\\x04יִ\" +\n\t\"\\x04ײַ\\x02ע\\x02ה\\x02כ\\x02ל\\x02ם\\x02ר\\x02ת\\x04שׁ\\x04שׂ\\x06שּׁ\\x06שּׂ\\x04א\" +\n\t\"ַ\\x04אָ\\x04אּ\\x04בּ\\x04גּ\\x04דּ\\x04הּ\\x04וּ\\x04זּ\\x04טּ\\x04יּ\\x04ךּ\\x04\" +\n\t\"כּ\\x04לּ\\x04מּ\\x04נּ\\x04סּ\\x04ףּ\\x04פּ\\x04צּ\\x04קּ\\x04רּ\\x04שּ\\x04תּ\" +\n\t\"\\x04וֹ\\x04בֿ\\x04כֿ\\x04פֿ\\x04אל\\x02ٱ\\x02ٻ\\x02پ\\x02ڀ\\x02ٺ\\x02ٿ\\x02ٹ\\x02ڤ\" +\n\t\"\\x02ڦ\\x02ڄ\\x02ڃ\\x02چ\\x02ڇ\\x02ڍ\\x02ڌ\\x02ڎ\\x02ڈ\\x02ژ\\x02ڑ\\x02ک\\x02گ\\x02ڳ\" +\n\t\"\\x02ڱ\\x02ں\\x02ڻ\\x02ۀ\\x02ہ\\x02ھ\\x02ے\\x02ۓ\\x02ڭ\\x02ۇ\\x02ۆ\\x02ۈ\\x02ۋ\\x02ۅ\" +\n\t\"\\x02ۉ\\x02ې\\x02ى\\x04ئا\\x04ئە\\x04ئو\\x04ئۇ\\x04ئۆ\\x04ئۈ\\x04ئې\\x04ئى\\x02ی\\x04\" +\n\t\"ئج\\x04ئح\\x04ئم\\x04ئي\\x04بج\\x04بح\\x04بخ\\x04بم\\x04بى\\x04بي\\x04تج\\x04تح\" +\n\t\"\\x04تخ\\x04تم\\x04تى\\x04تي\\x04ثج\\x04ثم\\x04ثى\\x04ثي\\x04جح\\x04جم\\x04حج\\x04حم\" +\n\t\"\\x04خج\\x04خح\\x04خم\\x04سج\\x04سح\\x04سخ\\x04سم\\x04صح\\x04صم\\x04ضج\\x04ضح\\x04ضخ\" +\n\t\"\\x04ضم\\x04طح\\x04طم\\x04ظم\\x04عج\\x04عم\\x04غج\\x04غم\\x04فج\\x04فح\\x04فخ\\x04فم\" +\n\t\"\\x04فى\\x04في\\x04قح\\x04قم\\x04قى\\x04قي\\x04كا\\x04كج\\x04كح\\x04كخ\\x04كل\\x04كم\" +\n\t\"\\x04كى\\x04كي\\x04لج\\x04لح\\x04لخ\\x04لم\\x04لى\\x04لي\\x04مج\\x04مح\\x04مخ\\x04مم\" +\n\t\"\\x04مى\\x04مي\\x04نج\\x04نح\\x04نخ\\x04نم\\x04نى\\x04ني\\x04هج\\x04هم\\x04هى\\x04هي\" +\n\t\"\\x04يج\\x04يح\\x04يخ\\x04يم\\x04يى\\x04يي\\x04ذٰ\\x04رٰ\\x04ىٰ\\x05 ٌّ\\x05 ٍّ\\x05\" +\n\t\" َّ\\x05 ُّ\\x05 ِّ\\x05 ّٰ\\x04ئر\\x04ئز\\x04ئن\\x04بر\\x04بز\\x04بن\\x04تر\\x04تز\" +\n\t\"\\x04تن\\x04ثر\\x04ثز\\x04ثن\\x04ما\\x04نر\\x04نز\\x04نن\\x04ير\\x04يز\\x04ين\\x04ئخ\" +\n\t\"\\x04ئه\\x04به\\x04ته\\x04صخ\\x04له\\x04نه\\x04هٰ\\x04يه\\x04ثه\\x04سه\\x04شم\\x04شه\" +\n\t\"\\x06ـَّ\\x06ـُّ\\x06ـِّ\\x04طى\\x04طي\\x04عى\\x04عي\\x04غى\\x04غي\\x04سى\\x04سي\" +\n\t\"\\x04شى\\x04شي\\x04حى\\x04حي\\x04جى\\x04جي\\x04خى\\x04خي\\x04صى\\x04صي\\x04ضى\\x04ضي\" +\n\t\"\\x04شج\\x04شح\\x04شخ\\x04شر\\x04سر\\x04صر\\x04ضر\\x04اً\\x06تجم\\x06تحج\\x06تحم\" +\n\t\"\\x06تخم\\x06تمج\\x06تمح\\x06تمخ\\x06جمح\\x06حمي\\x06حمى\\x06سحج\\x06سجح\\x06سجى\" +\n\t\"\\x06سمح\\x06سمج\\x06سمم\\x06صحح\\x06صمم\\x06شحم\\x06شجي\\x06شمخ\\x06شمم\\x06ضحى\" +\n\t\"\\x06ضخم\\x06طمح\\x06طمم\\x06طمي\\x06عجم\\x06عمم\\x06عمى\\x06غمم\\x06غمي\\x06غمى\" +\n\t\"\\x06فخم\\x06قمح\\x06قمم\\x06لحم\\x06لحي\\x06لحى\\x06لجج\\x06لخم\\x06لمح\\x06محج\" +\n\t\"\\x06محم\\x06محي\\x06مجح\\x06مجم\\x06مخج\\x06مخم\\x06مجخ\\x06همج\\x06همم\\x06نحم\" +\n\t\"\\x06نحى\\x06نجم\\x06نجى\\x06نمي\\x06نمى\\x06يمم\\x06بخي\\x06تجي\\x06تجى\\x06تخي\" +\n\t\"\\x06تخى\\x06تمي\\x06تمى\\x06جمي\\x06جحى\\x06جمى\\x06سخى\\x06صحي\\x06شحي\\x06ضحي\" +\n\t\"\\x06لجي\\x06لمي\\x06يحي\\x06يجي\\x06يمي\\x06ممي\\x06قمي\\x06نحي\\x06عمي\\x06كمي\" +\n\t\"\\x06نجح\\x06مخي\\x06لجم\\x06كمم\\x06جحي\\x06حجي\\x06مجي\\x06فمي\\x06بحي\\x06سخي\" +\n\t\"\\x06نجي\\x06صلے\\x06قلے\\x08الله\\x08اكبر\\x08محمد\\x08صلعم\\x08رسول\\x08عليه\" +\n\t\"\\x08وسلم\\x06صلى!صلى الله عليه وسلم\\x0fجل جلاله\\x08ریال\\x01,\\x01:\\x01!\" +\n\t\"\\x01?\\x01_\\x01{\\x01}\\x01[\\x01]\\x01#\\x01&\\x01*\\x01-\\x01<\\x01>\\x01\\\\\\x01$\" +\n\t\"\\x01%\\x01@\\x04ـً\\x04ـَ\\x04ـُ\\x04ـِ\\x04ـّ\\x04ـْ\\x02ء\\x02آ\\x02أ\\x02ؤ\\x02إ\" +\n\t\"\\x02ئ\\x02ا\\x02ب\\x02ة\\x02ت\\x02ث\\x02ج\\x02ح\\x02خ\\x02د\\x02ذ\\x02ر\\x02ز\\x02س\" +\n\t\"\\x02ش\\x02ص\\x02ض\\x02ط\\x02ظ\\x02ع\\x02غ\\x02ف\\x02ق\\x02ك\\x02ل\\x02م\\x02ن\\x02ه\" +\n\t\"\\x02و\\x02ي\\x04لآ\\x04لأ\\x04لإ\\x04لا\\x01\\x22\\x01'\\x01/\\x01^\\x01|\\x01~\\x02¢\" +\n\t\"\\x02£\\x02¬\\x02¦\\x02¥\\x08𝅗𝅥\\x08𝅘𝅥\\x0c𝅘𝅥𝅮\\x0c𝅘𝅥𝅯\\x0c𝅘𝅥𝅰\\x0c𝅘𝅥𝅱\\x0c𝅘𝅥𝅲\\x08𝆹\" +\n\t\"𝅥\\x08𝆺𝅥\\x0c𝆹𝅥𝅮\\x0c𝆺𝅥𝅮\\x0c𝆹𝅥𝅯\\x0c𝆺𝅥𝅯\\x02ı\\x02ȷ\\x02α\\x02ε\\x02ζ\\x02η\\x02\" +\n\t\"κ\\x02λ\\x02μ\\x02ν\\x02ξ\\x02ο\\x02σ\\x02τ\\x02υ\\x02ψ\\x03∇\\x03∂\\x02ϝ\\x02ٮ\\x02ڡ\" +\n\t\"\\x02ٯ\\x020,\\x021,\\x022,\\x023,\\x024,\\x025,\\x026,\\x027,\\x028,\\x029,\\x03(a)\" +\n\t\"\\x03(b)\\x03(c)\\x03(d)\\x03(e)\\x03(f)\\x03(g)\\x03(h)\\x03(i)\\x03(j)\\x03(k)\" +\n\t\"\\x03(l)\\x03(m)\\x03(n)\\x03(o)\\x03(p)\\x03(q)\\x03(r)\\x03(s)\\x03(t)\\x03(u)\" +\n\t\"\\x03(v)\\x03(w)\\x03(x)\\x03(y)\\x03(z)\\x07〔s〕\\x02wz\\x02hv\\x02sd\\x03ppv\\x02w\" +\n\t\"c\\x02mc\\x02md\\x02mr\\x02dj\\x06ほか\\x06ココ\\x03サ\\x03手\\x03字\\x03双\\x03デ\\x03二\\x03多\" +\n\t\"\\x03解\\x03天\\x03交\\x03映\\x03無\\x03料\\x03前\\x03後\\x03再\\x03新\\x03初\\x03終\\x03生\\x03販\" +\n\t\"\\x03声\\x03吹\\x03演\\x03投\\x03捕\\x03一\\x03三\\x03遊\\x03左\\x03中\\x03右\\x03指\\x03走\\x03打\" +\n\t\"\\x03禁\\x03空\\x03合\\x03満\\x03有\\x03月\\x03申\\x03割\\x03営\\x03配\\x09〔本〕\\x09〔三〕\\x09〔二〕\" +\n\t\"\\x09〔安〕\\x09〔点〕\\x09〔打〕\\x09〔盗〕\\x09〔勝〕\\x09〔敗〕\\x03得\\x03可\\x03丽\\x03丸\\x03乁\\x03你\" +\n\t\"\\x03侮\\x03侻\\x03倂\\x03偺\\x03備\\x03僧\\x03像\\x03㒞\\x03免\\x03兔\\x03兤\\x03具\\x03㒹\\x03內\" +\n\t\"\\x03冗\\x03冤\\x03仌\\x03冬\\x03况\\x03凵\\x03刃\\x03㓟\\x03刻\\x03剆\\x03剷\\x03㔕\\x03勇\\x03勉\" +\n\t\"\\x03勤\\x03勺\\x03包\\x03匆\\x03北\\x03卉\\x03卑\\x03博\\x03即\\x03卽\\x03卿\\x03灰\\x03及\\x03叟\" +\n\t\"\\x03叫\\x03叱\\x03吆\\x03咞\\x03吸\\x03呈\\x03周\\x03咢\\x03哶\\x03唐\\x03啓\\x03啣\\x03善\\x03喙\" +\n\t\"\\x03喫\\x03喳\\x03嗂\\x03圖\\x03嘆\\x03圗\\x03噑\\x03噴\\x03切\\x03壮\\x03城\\x03埴\\x03堍\\x03型\" +\n\t\"\\x03堲\\x03報\\x03墬\\x03売\\x03壷\\x03夆\\x03夢\\x03奢\\x03姬\\x03娛\\x03娧\\x03姘\\x03婦\\x03㛮\" +\n\t\"\\x03嬈\\x03嬾\\x03寃\\x03寘\\x03寧\\x03寳\\x03寿\\x03将\\x03尢\\x03㞁\\x03屠\\x03屮\\x03峀\\x03岍\" +\n\t\"\\x03嵃\\x03嵮\\x03嵫\\x03嵼\\x03巡\\x03巢\\x03㠯\\x03巽\\x03帨\\x03帽\\x03幩\\x03㡢\\x03㡼\\x03庰\" +\n\t\"\\x03庳\\x03庶\\x03廊\\x03廾\\x03舁\\x03弢\\x03㣇\\x03形\\x03彫\\x03㣣\\x03徚\\x03忍\\x03志\\x03忹\" +\n\t\"\\x03悁\\x03㤺\\x03㤜\\x03悔\\x03惇\\x03慈\\x03慌\\x03慎\\x03慺\\x03憎\\x03憲\\x03憤\\x03憯\\x03懞\" +\n\t\"\\x03懲\\x03懶\\x03成\\x03戛\\x03扝\\x03抱\\x03拔\\x03捐\\x03挽\\x03拼\\x03捨\\x03掃\\x03揤\\x03搢\" +\n\t\"\\x03揅\\x03掩\\x03㨮\\x03摩\\x03摾\\x03撝\\x03摷\\x03㩬\\x03敏\\x03敬\\x03旣\\x03書\\x03晉\\x03㬙\" +\n\t\"\\x03暑\\x03㬈\\x03㫤\\x03冒\\x03冕\\x03最\\x03暜\\x03肭\\x03䏙\\x03朗\\x03望\\x03朡\\x03杞\\x03杓\" +\n\t\"\\x03㭉\\x03柺\\x03枅\\x03桒\\x03梅\\x03梎\\x03栟\\x03椔\\x03㮝\\x03楂\\x03榣\\x03槪\\x03檨\\x03櫛\" +\n\t\"\\x03㰘\\x03次\\x03歔\\x03㱎\\x03歲\\x03殟\\x03殺\\x03殻\\x03汎\\x03沿\\x03泍\\x03汧\\x03洖\\x03派\" +\n\t\"\\x03海\\x03流\\x03浩\\x03浸\\x03涅\\x03洴\\x03港\\x03湮\\x03㴳\\x03滋\\x03滇\\x03淹\\x03潮\\x03濆\" +\n\t\"\\x03瀹\\x03瀞\\x03瀛\\x03㶖\\x03灊\\x03災\\x03灷\\x03炭\\x03煅\\x03熜\\x03爨\\x03爵\\x03牐\\x03犀\" +\n\t\"\\x03犕\\x03獺\\x03王\\x03㺬\\x03玥\\x03㺸\\x03瑇\\x03瑜\\x03瑱\\x03璅\\x03瓊\\x03㼛\\x03甤\\x03甾\" +\n\t\"\\x03異\\x03瘐\\x03㿼\\x03䀈\\x03直\\x03眞\\x03真\\x03睊\\x03䀹\\x03瞋\\x03䁆\\x03䂖\\x03硎\\x03碌\" +\n\t\"\\x03磌\\x03䃣\\x03祖\\x03福\\x03秫\\x03䄯\\x03穀\\x03穊\\x03穏\\x03䈂\\x03篆\\x03築\\x03䈧\\x03糒\" +\n\t\"\\x03䊠\\x03糨\\x03糣\\x03紀\\x03絣\\x03䌁\\x03緇\\x03縂\\x03繅\\x03䌴\\x03䍙\\x03罺\\x03羕\\x03翺\" +\n\t\"\\x03者\\x03聠\\x03聰\\x03䏕\\x03育\\x03脃\\x03䐋\\x03脾\\x03媵\\x03舄\\x03辞\\x03䑫\\x03芑\\x03芋\" +\n\t\"\\x03芝\\x03劳\\x03花\\x03芳\\x03芽\\x03苦\\x03若\\x03茝\\x03荣\\x03莭\\x03茣\\x03莽\\x03菧\\x03著\" +\n\t\"\\x03荓\\x03菊\\x03菌\\x03菜\\x03䔫\\x03蓱\\x03蓳\\x03蔖\\x03蕤\\x03䕝\\x03䕡\\x03䕫\\x03虐\\x03虜\" +\n\t\"\\x03虧\\x03虩\\x03蚩\\x03蚈\\x03蜎\\x03蛢\\x03蝹\\x03蜨\\x03蝫\\x03螆\\x03蟡\\x03蠁\\x03䗹\\x03衠\" +\n\t\"\\x03衣\\x03裗\\x03裞\\x03䘵\\x03裺\\x03㒻\\x03䚾\\x03䛇\\x03誠\\x03諭\\x03變\\x03豕\\x03貫\\x03賁\" +\n\t\"\\x03贛\\x03起\\x03跋\\x03趼\\x03跰\\x03軔\\x03輸\\x03邔\\x03郱\\x03鄑\\x03鄛\\x03鈸\\x03鋗\\x03鋘\" +\n\t\"\\x03鉼\\x03鏹\\x03鐕\\x03開\\x03䦕\\x03閷\\x03䧦\\x03雃\\x03嶲\\x03霣\\x03䩮\\x03䩶\\x03韠\\x03䪲\" +\n\t\"\\x03頋\\x03頩\\x03飢\\x03䬳\\x03餩\\x03馧\\x03駂\\x03駾\\x03䯎\\x03鬒\\x03鱀\\x03鳽\\x03䳎\\x03䳭\" +\n\t\"\\x03鵧\\x03䳸\\x03麻\\x03䵖\\x03黹\\x03黾\\x03鼅\\x03鼏\\x03鼖\\x03鼻\"\n\nvar xorData string = \"\" + // Size: 4862 bytes\n\t\"\\x02\\x0c\\x09\\x02\\xb0\\xec\\x02\\xad\\xd8\\x02\\xad\\xd9\\x02\\x06\\x07\\x02\\x0f\\x12\" +\n\t\"\\x02\\x0f\\x1f\\x02\\x0f\\x1d\\x02\\x01\\x13\\x02\\x0f\\x16\\x02\\x0f\\x0b\\x02\\x0f3\" +\n\t\"\\x02\\x0f7\\x02\\x0f?\\x02\\x0f/\\x02\\x0f*\\x02\\x0c&\\x02\\x0c*\\x02\\x0c;\\x02\\x0c9\" +\n\t\"\\x02\\x0c%\\x02\\xab\\xed\\x02\\xab\\xe2\\x02\\xab\\xe3\\x02\\xa9\\xe0\\x02\\xa9\\xe1\" +\n\t\"\\x02\\xa9\\xe6\\x02\\xa3\\xcb\\x02\\xa3\\xc8\\x02\\xa3\\xc9\\x02\\x01#\\x02\\x01\\x08\" +\n\t\"\\x02\\x0e>\\x02\\x0e'\\x02\\x0f\\x03\\x02\\x03\\x0d\\x02\\x03\\x09\\x02\\x03\\x17\\x02\" +\n\t\"\\x03\\x0e\\x02\\x02\\x03\\x02\\x011\\x02\\x01\\x00\\x02\\x01\\x10\\x02\\x03<\\x02\\x07\" +\n\t\"\\x0d\\x02\\x02\\x0c\\x02\\x0c0\\x02\\x01\\x03\\x02\\x01\\x01\\x02\\x01 \\x02\\x01\\x22\" +\n\t\"\\x02\\x01)\\x02\\x01\\x0a\\x02\\x01\\x0c\\x02\\x02\\x06\\x02\\x02\\x02\\x02\\x03\\x10\" +\n\t\"\\x03\\x037 \\x03\\x0b+\\x03\\x021\\x00\\x02\\x01\\x04\\x02\\x01\\x02\\x02\\x019\\x02\" +\n\t\"\\x03\\x1c\\x02\\x02$\\x03\\x80p$\\x02\\x03:\\x02\\x03\\x0a\\x03\\xc1r.\\x03\\xc1r,\\x03\" +\n\t\"\\xc1r\\x02\\x02\\x02:\\x02\\x02>\\x02\\x02,\\x02\\x02\\x10\\x02\\x02\\x00\\x03\\xc1s<\" +\n\t\"\\x03\\xc1s*\\x03\\xc2L$\\x03\\xc2L;\\x02\\x09)\\x02\\x0a\\x19\\x03\\x83\\xab\\xe3\\x03\" +\n\t\"\\x83\\xab\\xf2\\x03 4\\xe0\\x03\\x81\\xab\\xea\\x03\\x81\\xab\\xf3\\x03 4\\xef\\x03\\x96\" +\n\t\"\\xe1\\xcd\\x03\\x84\\xe5\\xc3\\x02\\x0d\\x11\\x03\\x8b\\xec\\xcb\\x03\\x94\\xec\\xcf\\x03\" +\n\t\"\\x9a\\xec\\xc2\\x03\\x8b\\xec\\xdb\\x03\\x94\\xec\\xdf\\x03\\x9a\\xec\\xd2\\x03\\x01\\x0c\" +\n\t\"!\\x03\\x01\\x0c#\\x03ʠ\\x9d\\x03ʣ\\x9c\\x03ʢ\\x9f\\x03ʥ\\x9e\\x03ʤ\\x91\\x03ʧ\\x90\\x03\" +\n\t\"ʦ\\x93\\x03ʩ\\x92\\x03ʨ\\x95\\x03\\xca\\xf3\\xb5\\x03\\xca\\xf0\\xb4\\x03\\xca\\xf1\\xb7\" +\n\t\"\\x03\\xca\\xf6\\xb6\\x03\\xca\\xf7\\x89\\x03\\xca\\xf4\\x88\\x03\\xca\\xf5\\x8b\\x03\\xca\" +\n\t\"\\xfa\\x8a\\x03\\xca\\xfb\\x8d\\x03\\xca\\xf8\\x8c\\x03\\xca\\xf9\\x8f\\x03\\xca\\xfe\\x8e\" +\n\t\"\\x03\\xca\\xff\\x81\\x03\\xca\\xfc\\x80\\x03\\xca\\xfd\\x83\\x03\\xca\\xe2\\x82\\x03\\xca\" +\n\t\"\\xe3\\x85\\x03\\xca\\xe0\\x84\\x03\\xca\\xe1\\x87\\x03\\xca\\xe6\\x86\\x03\\xca\\xe7\\x99\" +\n\t\"\\x03\\xca\\xe4\\x98\\x03\\xca\\xe5\\x9b\\x03\\xca\\xea\\x9a\\x03\\xca\\xeb\\x9d\\x03\\xca\" +\n\t\"\\xe8\\x9c\\x03ؓ\\x89\\x03ߔ\\x8b\\x02\\x010\\x03\\x03\\x04\\x1e\\x03\\x04\\x15\\x12\\x03\" +\n\t\"\\x0b\\x05,\\x03\\x06\\x04\\x00\\x03\\x06\\x04)\\x03\\x06\\x044\\x03\\x06\\x04<\\x03\\x06\" +\n\t\"\\x05\\x1d\\x03\\x06\\x06\\x00\\x03\\x06\\x06\\x0a\\x03\\x06\\x06'\\x03\\x06\\x062\\x03\" +\n\t\"\\x0786\\x03\\x079/\\x03\\x079 \\x03\\x07:\\x0e\\x03\\x07:\\x1b\\x03\\x07:%\\x03\\x07;/\" +\n\t\"\\x03\\x07;%\\x03\\x074\\x11\\x03\\x076\\x09\\x03\\x077*\\x03\\x070\\x01\\x03\\x070\\x0f\" +\n\t\"\\x03\\x070.\\x03\\x071\\x16\\x03\\x071\\x04\\x03\\x0710\\x03\\x072\\x18\\x03\\x072-\" +\n\t\"\\x03\\x073\\x14\\x03\\x073>\\x03\\x07'\\x09\\x03\\x07 \\x00\\x03\\x07\\x1f\\x0b\\x03\" +\n\t\"\\x07\\x18#\\x03\\x07\\x18(\\x03\\x07\\x186\\x03\\x07\\x18\\x03\\x03\\x07\\x19\\x16\\x03\" +\n\t\"\\x07\\x116\\x03\\x07\\x12'\\x03\\x07\\x13\\x10\\x03\\x07\\x0c&\\x03\\x07\\x0c\\x08\\x03\" +\n\t\"\\x07\\x0c\\x13\\x03\\x07\\x0d\\x02\\x03\\x07\\x0d\\x1c\\x03\\x07\\x0b5\\x03\\x07\\x0b\" +\n\t\"\\x0a\\x03\\x07\\x0b\\x01\\x03\\x07\\x0b\\x0f\\x03\\x07\\x05\\x00\\x03\\x07\\x05\\x09\\x03\" +\n\t\"\\x07\\x05\\x0b\\x03\\x07\\x07\\x01\\x03\\x07\\x07\\x08\\x03\\x07\\x00<\\x03\\x07\\x00+\" +\n\t\"\\x03\\x07\\x01)\\x03\\x07\\x01\\x1b\\x03\\x07\\x01\\x08\\x03\\x07\\x03?\\x03\\x0445\\x03\" +\n\t\"\\x044\\x08\\x03\\x0454\\x03\\x04)/\\x03\\x04)5\\x03\\x04+\\x05\\x03\\x04+\\x14\\x03\" +\n\t\"\\x04+ \\x03\\x04+<\\x03\\x04*&\\x03\\x04*\\x22\\x03\\x04&8\\x03\\x04!\\x01\\x03\\x04!\" +\n\t\"\\x22\\x03\\x04\\x11+\\x03\\x04\\x10.\\x03\\x04\\x104\\x03\\x04\\x13=\\x03\\x04\\x12\\x04\" +\n\t\"\\x03\\x04\\x12\\x0a\\x03\\x04\\x0d\\x1d\\x03\\x04\\x0d\\x07\\x03\\x04\\x0d \\x03\\x05<>\" +\n\t\"\\x03\\x055<\\x03\\x055!\\x03\\x055#\\x03\\x055&\\x03\\x054\\x1d\\x03\\x054\\x02\\x03\" +\n\t\"\\x054\\x07\\x03\\x0571\\x03\\x053\\x1a\\x03\\x053\\x16\\x03\\x05.<\\x03\\x05.\\x07\\x03\" +\n\t\"\\x05):\\x03\\x05)<\\x03\\x05)\\x0c\\x03\\x05)\\x15\\x03\\x05+-\\x03\\x05+5\\x03\\x05$\" +\n\t\"\\x1e\\x03\\x05$\\x14\\x03\\x05'\\x04\\x03\\x05'\\x14\\x03\\x05&\\x02\\x03\\x05\\x226\" +\n\t\"\\x03\\x05\\x22\\x0c\\x03\\x05\\x22\\x1c\\x03\\x05\\x19\\x0a\\x03\\x05\\x1b\\x09\\x03\\x05\" +\n\t\"\\x1b\\x0c\\x03\\x05\\x14\\x07\\x03\\x05\\x16?\\x03\\x05\\x16\\x0c\\x03\\x05\\x0c\\x05\" +\n\t\"\\x03\\x05\\x0e\\x0f\\x03\\x05\\x01\\x0e\\x03\\x05\\x00(\\x03\\x05\\x030\\x03\\x05\\x03\" +\n\t\"\\x06\\x03\\x0a==\\x03\\x0a=1\\x03\\x0a=,\\x03\\x0a=\\x0c\\x03\\x0a??\\x03\\x0a<\\x08\" +\n\t\"\\x03\\x0a9!\\x03\\x0a9)\\x03\\x0a97\\x03\\x0a99\\x03\\x0a6\\x0a\\x03\\x0a6\\x1c\\x03\" +\n\t\"\\x0a6\\x17\\x03\\x0a7'\\x03\\x0a78\\x03\\x0a73\\x03\\x0a'\\x01\\x03\\x0a'&\\x03\\x0a\" +\n\t\"\\x1f\\x0e\\x03\\x0a\\x1f\\x03\\x03\\x0a\\x1f3\\x03\\x0a\\x1b/\\x03\\x0a\\x18\\x19\\x03\" +\n\t\"\\x0a\\x19\\x01\\x03\\x0a\\x16\\x14\\x03\\x0a\\x0e\\x22\\x03\\x0a\\x0f\\x10\\x03\\x0a\\x0f\" +\n\t\"\\x02\\x03\\x0a\\x0f \\x03\\x0a\\x0c\\x04\\x03\\x0a\\x0b>\\x03\\x0a\\x0b+\\x03\\x0a\\x08/\" +\n\t\"\\x03\\x0a\\x046\\x03\\x0a\\x05\\x14\\x03\\x0a\\x00\\x04\\x03\\x0a\\x00\\x10\\x03\\x0a\" +\n\t\"\\x00\\x14\\x03\\x0b<3\\x03\\x0b;*\\x03\\x0b9\\x22\\x03\\x0b9)\\x03\\x0b97\\x03\\x0b+\" +\n\t\"\\x10\\x03\\x0b((\\x03\\x0b&5\\x03\\x0b$\\x1c\\x03\\x0b$\\x12\\x03\\x0b%\\x04\\x03\\x0b#\" +\n\t\"<\\x03\\x0b#0\\x03\\x0b#\\x0d\\x03\\x0b#\\x19\\x03\\x0b!:\\x03\\x0b!\\x1f\\x03\\x0b!\" +\n\t\"\\x00\\x03\\x0b\\x1e5\\x03\\x0b\\x1c\\x1d\\x03\\x0b\\x1d-\\x03\\x0b\\x1d(\\x03\\x0b\\x18.\" +\n\t\"\\x03\\x0b\\x18 \\x03\\x0b\\x18\\x16\\x03\\x0b\\x14\\x13\\x03\\x0b\\x15$\\x03\\x0b\\x15\" +\n\t\"\\x22\\x03\\x0b\\x12\\x1b\\x03\\x0b\\x12\\x10\\x03\\x0b\\x132\\x03\\x0b\\x13=\\x03\\x0b\" +\n\t\"\\x12\\x18\\x03\\x0b\\x0c&\\x03\\x0b\\x061\\x03\\x0b\\x06:\\x03\\x0b\\x05#\\x03\\x0b\\x05\" +\n\t\"<\\x03\\x0b\\x04\\x0b\\x03\\x0b\\x04\\x04\\x03\\x0b\\x04\\x1b\\x03\\x0b\\x042\\x03\\x0b\" +\n\t\"\\x041\\x03\\x0b\\x03\\x03\\x03\\x0b\\x03\\x1d\\x03\\x0b\\x03/\\x03\\x0b\\x03+\\x03\\x0b\" +\n\t\"\\x02\\x1b\\x03\\x0b\\x02\\x00\\x03\\x0b\\x01\\x1e\\x03\\x0b\\x01\\x08\\x03\\x0b\\x015\" +\n\t\"\\x03\\x06\\x0d9\\x03\\x06\\x0d=\\x03\\x06\\x0d?\\x03\\x02\\x001\\x03\\x02\\x003\\x03\" +\n\t\"\\x02\\x02\\x19\\x03\\x02\\x006\\x03\\x02\\x02\\x1b\\x03\\x02\\x004\\x03\\x02\\x00<\\x03\" +\n\t\"\\x02\\x02\\x0a\\x03\\x02\\x02\\x0e\\x03\\x02\\x01\\x1a\\x03\\x02\\x01\\x07\\x03\\x02\\x01\" +\n\t\"\\x05\\x03\\x02\\x01\\x0b\\x03\\x02\\x01%\\x03\\x02\\x01\\x0c\\x03\\x02\\x01\\x04\\x03\" +\n\t\"\\x02\\x01\\x1c\\x03\\x02\\x00.\\x03\\x02\\x002\\x03\\x02\\x00>\\x03\\x02\\x00\\x12\\x03\" +\n\t\"\\x02\\x00\\x16\\x03\\x02\\x011\\x03\\x02\\x013\\x03\\x02\\x02 \\x03\\x02\\x02%\\x03\\x02\" +\n\t\"\\x02$\\x03\\x02\\x028\\x03\\x02\\x02;\\x03\\x02\\x024\\x03\\x02\\x012\\x03\\x02\\x022\" +\n\t\"\\x03\\x02\\x02/\\x03\\x02\\x01,\\x03\\x02\\x01\\x13\\x03\\x02\\x01\\x16\\x03\\x02\\x01\" +\n\t\"\\x11\\x03\\x02\\x01\\x1e\\x03\\x02\\x01\\x15\\x03\\x02\\x01\\x17\\x03\\x02\\x01\\x0f\\x03\" +\n\t\"\\x02\\x01\\x08\\x03\\x02\\x00?\\x03\\x02\\x03\\x07\\x03\\x02\\x03\\x0d\\x03\\x02\\x03\" +\n\t\"\\x13\\x03\\x02\\x03\\x1d\\x03\\x02\\x03\\x1f\\x03\\x02\\x00\\x03\\x03\\x02\\x00\\x0d\\x03\" +\n\t\"\\x02\\x00\\x01\\x03\\x02\\x00\\x1b\\x03\\x02\\x00\\x19\\x03\\x02\\x00\\x18\\x03\\x02\\x00\" +\n\t\"\\x13\\x03\\x02\\x00/\\x03\\x07>\\x12\\x03\\x07<\\x1f\\x03\\x07>\\x1d\\x03\\x06\\x1d\\x0e\" +\n\t\"\\x03\\x07>\\x1c\\x03\\x07>:\\x03\\x07>\\x13\\x03\\x04\\x12+\\x03\\x07?\\x03\\x03\\x07>\" +\n\t\"\\x02\\x03\\x06\\x224\\x03\\x06\\x1a.\\x03\\x07<%\\x03\\x06\\x1c\\x0b\\x03\\x0609\\x03\" +\n\t\"\\x05\\x1f\\x01\\x03\\x04'\\x08\\x03\\x93\\xfd\\xf5\\x03\\x02\\x0d \\x03\\x02\\x0d#\\x03\" +\n\t\"\\x02\\x0d!\\x03\\x02\\x0d&\\x03\\x02\\x0d\\x22\\x03\\x02\\x0d/\\x03\\x02\\x0d,\\x03\\x02\" +\n\t\"\\x0d$\\x03\\x02\\x0d'\\x03\\x02\\x0d%\\x03\\x02\\x0d;\\x03\\x02\\x0d=\\x03\\x02\\x0d?\" +\n\t\"\\x03\\x099.\\x03\\x08\\x0b7\\x03\\x08\\x02\\x14\\x03\\x08\\x14\\x0d\\x03\\x08.:\\x03\" +\n\t\"\\x089'\\x03\\x0f\\x0b\\x18\\x03\\x0f\\x1c1\\x03\\x0f\\x17&\\x03\\x0f9\\x1f\\x03\\x0f0\" +\n\t\"\\x0c\\x03\\x0e\\x0a9\\x03\\x0e\\x056\\x03\\x0e\\x1c#\\x03\\x0f\\x13\\x0e\\x03\\x072\\x00\" +\n\t\"\\x03\\x070\\x0d\\x03\\x072\\x0b\\x03\\x06\\x11\\x18\\x03\\x070\\x10\\x03\\x06\\x0f(\\x03\" +\n\t\"\\x072\\x05\\x03\\x06\\x0f,\\x03\\x073\\x15\\x03\\x06\\x07\\x08\\x03\\x05\\x16\\x02\\x03\" +\n\t\"\\x04\\x0b \\x03\\x05:8\\x03\\x05\\x16%\\x03\\x0a\\x0d\\x1f\\x03\\x06\\x16\\x10\\x03\\x05\" +\n\t\"\\x1d5\\x03\\x05*;\\x03\\x05\\x16\\x1b\\x03\\x04.-\\x03\\x06\\x1a\\x19\\x03\\x04\\x03,\" +\n\t\"\\x03\\x0b87\\x03\\x04/\\x0a\\x03\\x06\\x00,\\x03\\x04-\\x01\\x03\\x04\\x1e-\\x03\\x06/(\" +\n\t\"\\x03\\x0a\\x0b5\\x03\\x06\\x0e7\\x03\\x06\\x07.\\x03\\x0597\\x03\\x0a*%\\x03\\x0760\" +\n\t\"\\x03\\x06\\x0c;\\x03\\x05'\\x00\\x03\\x072.\\x03\\x072\\x08\\x03\\x06=\\x01\\x03\\x06\" +\n\t\"\\x05\\x1b\\x03\\x06\\x06\\x12\\x03\\x06$=\\x03\\x06'\\x0d\\x03\\x04\\x11\\x0f\\x03\\x076\" +\n\t\",\\x03\\x06\\x07;\\x03\\x06.,\\x03\\x86\\xf9\\xea\\x03\\x8f\\xff\\xeb\\x02\\x092\\x02\" +\n\t\"\\x095\\x02\\x094\\x02\\x09;\\x02\\x09>\\x02\\x098\\x02\\x09*\\x02\\x09/\\x02\\x09,\\x02\" +\n\t\"\\x09%\\x02\\x09&\\x02\\x09#\\x02\\x09 \\x02\\x08!\\x02\\x08%\\x02\\x08$\\x02\\x08+\\x02\" +\n\t\"\\x08.\\x02\\x08*\\x02\\x08&\\x02\\x088\\x02\\x08>\\x02\\x084\\x02\\x086\\x02\\x080\\x02\" +\n\t\"\\x08\\x10\\x02\\x08\\x17\\x02\\x08\\x12\\x02\\x08\\x1d\\x02\\x08\\x1f\\x02\\x08\\x13\\x02\" +\n\t\"\\x08\\x15\\x02\\x08\\x14\\x02\\x08\\x0c\\x03\\x8b\\xfd\\xd0\\x03\\x81\\xec\\xc6\\x03\\x87\" +\n\t\"\\xe0\\x8a\\x03-2\\xe3\\x03\\x80\\xef\\xe4\\x03-2\\xea\\x03\\x88\\xe6\\xeb\\x03\\x8e\\xe6\" +\n\t\"\\xe8\\x03\\x84\\xe6\\xe9\\x03\\x97\\xe6\\xee\\x03-2\\xf9\\x03-2\\xf6\\x03\\x8e\\xe3\\xad\" +\n\t\"\\x03\\x80\\xe3\\x92\\x03\\x88\\xe3\\x90\\x03\\x8e\\xe3\\x90\\x03\\x80\\xe3\\x97\\x03\\x88\" +\n\t\"\\xe3\\x95\\x03\\x88\\xfe\\xcb\\x03\\x8e\\xfe\\xca\\x03\\x84\\xfe\\xcd\\x03\\x91\\xef\\xc9\" +\n\t\"\\x03-2\\xc1\\x03-2\\xc0\\x03-2\\xcb\\x03\\x88@\\x09\\x03\\x8e@\\x08\\x03\\x8f\\xe0\\xf5\" +\n\t\"\\x03\\x8e\\xe6\\xf9\\x03\\x8e\\xe0\\xfa\\x03\\x93\\xff\\xf4\\x03\\x84\\xee\\xd3\\x03\\x0b\" +\n\t\"(\\x04\\x023 \\x03\\x0b)\\x08\\x021;\\x02\\x01*\\x03\\x0b#\\x10\\x03\\x0b 0\\x03\\x0b!\" +\n\t\"\\x10\\x03\\x0b!0\\x03\\x07\\x15\\x08\\x03\\x09?5\\x03\\x07\\x1f\\x08\\x03\\x07\\x17\\x0b\" +\n\t\"\\x03\\x09\\x1f\\x15\\x03\\x0b\\x1c7\\x03\\x0a+#\\x03\\x06\\x1a\\x1b\\x03\\x06\\x1a\\x14\" +\n\t\"\\x03\\x0a\\x01\\x18\\x03\\x06#\\x1b\\x03\\x0a2\\x0c\\x03\\x0a\\x01\\x04\\x03\\x09#;\\x03\" +\n\t\"\\x08='\\x03\\x08\\x1a\\x0a\\x03\\x07</\\x03\\x07:+\\x03\\x07\\x07*\\x03\\x06&\\x1c\\x03\" +\n\t\"\\x09\\x0c\\x16\\x03\\x09\\x10\\x0e\\x03\\x08'\\x0f\\x03\\x08+\\x09\\x03\\x074%\\x03\\x06\" +\n\t\"!3\\x03\\x06\\x03+\\x03\\x0b\\x1e\\x19\\x03\\x0a))\\x03\\x09\\x08\\x19\\x03\\x08,\\x05\" +\n\t\"\\x03\\x07<2\\x03\\x06\\x1c>\\x03\\x0a\\x111\\x03\\x09\\x1b\\x09\\x03\\x073.\\x03\\x07\" +\n\t\"\\x01\\x00\\x03\\x09/,\\x03\\x07#>\\x03\\x07\\x048\\x03\\x0a\\x1f\\x22\\x03\\x098>\\x03\" +\n\t\"\\x09\\x11\\x00\\x03\\x08/\\x17\\x03\\x06'\\x22\\x03\\x0b\\x1a+\\x03\\x0a\\x22\\x19\\x03\" +\n\t\"\\x0a/1\\x03\\x0974\\x03\\x09\\x0f\\x22\\x03\\x08,\\x22\\x03\\x08?\\x14\\x03\\x07$5\\x03\" +\n\t\"\\x07<3\\x03\\x07=*\\x03\\x07\\x13\\x18\\x03\\x068\\x0a\\x03\\x06\\x09\\x16\\x03\\x06\" +\n\t\"\\x13\\x00\\x03\\x08\\x067\\x03\\x08\\x01\\x03\\x03\\x08\\x12\\x1d\\x03\\x07+7\\x03\\x06(\" +\n\t\";\\x03\\x06\\x1c?\\x03\\x07\\x0e\\x17\\x03\\x0a\\x06\\x1d\\x03\\x0a\\x19\\x07\\x03\\x08\" +\n\t\"\\x14$\\x03\\x07$;\\x03\\x08,$\\x03\\x08\\x06\\x0d\\x03\\x07\\x16\\x0a\\x03\\x06>>\\x03\" +\n\t\"\\x0a\\x06\\x12\\x03\\x0a\\x14)\\x03\\x09\\x0d\\x1f\\x03\\x09\\x12\\x17\\x03\\x09\\x19\" +\n\t\"\\x01\\x03\\x08\\x11 \\x03\\x08\\x1d'\\x03\\x06<\\x1a\\x03\\x0a.\\x00\\x03\\x07'\\x18\" +\n\t\"\\x03\\x0a\\x22\\x08\\x03\\x08\\x0d\\x0a\\x03\\x08\\x13)\\x03\\x07*)\\x03\\x06<,\\x03\" +\n\t\"\\x07\\x0b\\x1a\\x03\\x09.\\x14\\x03\\x09\\x0d\\x1e\\x03\\x07\\x0e#\\x03\\x0b\\x1d'\\x03\" +\n\t\"\\x0a\\x0a8\\x03\\x09%2\\x03\\x08+&\\x03\\x080\\x12\\x03\\x0a)4\\x03\\x08\\x06\\x1f\\x03\" +\n\t\"\\x0b\\x1b\\x1a\\x03\\x0a\\x1b\\x0f\\x03\\x0b\\x1d*\\x03\\x09\\x16$\\x03\\x090\\x11\\x03\" +\n\t\"\\x08\\x11\\x08\\x03\\x0a*(\\x03\\x0a\\x042\\x03\\x089,\\x03\\x074'\\x03\\x07\\x0f\\x05\" +\n\t\"\\x03\\x09\\x0b\\x0a\\x03\\x07\\x1b\\x01\\x03\\x09\\x17:\\x03\\x09.\\x0d\\x03\\x07.\\x11\" +\n\t\"\\x03\\x09+\\x15\\x03\\x080\\x13\\x03\\x0b\\x1f\\x19\\x03\\x0a \\x11\\x03\\x0a\\x220\\x03\" +\n\t\"\\x09\\x07;\\x03\\x08\\x16\\x1c\\x03\\x07,\\x13\\x03\\x07\\x0e/\\x03\\x06\\x221\\x03\\x0a\" +\n\t\".\\x0a\\x03\\x0a7\\x02\\x03\\x0a\\x032\\x03\\x0a\\x1d.\\x03\\x091\\x06\\x03\\x09\\x19:\" +\n\t\"\\x03\\x08\\x02/\\x03\\x060+\\x03\\x06\\x0f-\\x03\\x06\\x1c\\x1f\\x03\\x06\\x1d\\x07\\x03\" +\n\t\"\\x0a,\\x11\\x03\\x09=\\x0d\\x03\\x09\\x0b;\\x03\\x07\\x1b/\\x03\\x0a\\x1f:\\x03\\x09 \" +\n\t\"\\x1f\\x03\\x09.\\x10\\x03\\x094\\x0b\\x03\\x09\\x1a1\\x03\\x08#\\x1a\\x03\\x084\\x1d\" +\n\t\"\\x03\\x08\\x01\\x1f\\x03\\x08\\x11\\x22\\x03\\x07'8\\x03\\x07\\x1a>\\x03\\x0757\\x03\" +\n\t\"\\x06&9\\x03\\x06+\\x11\\x03\\x0a.\\x0b\\x03\\x0a,>\\x03\\x0a4#\\x03\\x08%\\x17\\x03\" +\n\t\"\\x07\\x05\\x22\\x03\\x07\\x0c\\x0b\\x03\\x0a\\x1d+\\x03\\x0a\\x19\\x16\\x03\\x09+\\x1f\" +\n\t\"\\x03\\x09\\x08\\x0b\\x03\\x08\\x16\\x18\\x03\\x08+\\x12\\x03\\x0b\\x1d\\x0c\\x03\\x0a=\" +\n\t\"\\x10\\x03\\x0a\\x09\\x0d\\x03\\x0a\\x10\\x11\\x03\\x09&0\\x03\\x08(\\x1f\\x03\\x087\\x07\" +\n\t\"\\x03\\x08\\x185\\x03\\x07'6\\x03\\x06.\\x05\\x03\\x06=\\x04\\x03\\x06;;\\x03\\x06\\x06,\" +\n\t\"\\x03\\x0b\\x18>\\x03\\x08\\x00\\x18\\x03\\x06 \\x03\\x03\\x06<\\x00\\x03\\x09%\\x18\\x03\" +\n\t\"\\x0b\\x1c<\\x03\\x0a%!\\x03\\x0a\\x09\\x12\\x03\\x0a\\x16\\x02\\x03\\x090'\\x03\\x09\" +\n\t\"\\x0e=\\x03\\x08 \\x0e\\x03\\x08>\\x03\\x03\\x074>\\x03\\x06&?\\x03\\x06\\x19\\x09\\x03\" +\n\t\"\\x06?(\\x03\\x0a-\\x0e\\x03\\x09:3\\x03\\x098:\\x03\\x09\\x12\\x0b\\x03\\x09\\x1d\\x17\" +\n\t\"\\x03\\x087\\x05\\x03\\x082\\x14\\x03\\x08\\x06%\\x03\\x08\\x13\\x1f\\x03\\x06\\x06\\x0e\" +\n\t\"\\x03\\x0a\\x22<\\x03\\x09/<\\x03\\x06>+\\x03\\x0a'?\\x03\\x0a\\x13\\x0c\\x03\\x09\\x10<\" +\n\t\"\\x03\\x07\\x1b=\\x03\\x0a\\x19\\x13\\x03\\x09\\x22\\x1d\\x03\\x09\\x07\\x0d\\x03\\x08)\" +\n\t\"\\x1c\\x03\\x06=\\x1a\\x03\\x0a/4\\x03\\x0a7\\x11\\x03\\x0a\\x16:\\x03\\x09?3\\x03\\x09:\" +\n\t\"/\\x03\\x09\\x05\\x0a\\x03\\x09\\x14\\x06\\x03\\x087\\x22\\x03\\x080\\x07\\x03\\x08\\x1a\" +\n\t\"\\x1f\\x03\\x07\\x04(\\x03\\x07\\x04\\x09\\x03\\x06 %\\x03\\x06<\\x08\\x03\\x0a+\\x14\" +\n\t\"\\x03\\x09\\x1d\\x16\\x03\\x0a70\\x03\\x08 >\\x03\\x0857\\x03\\x070\\x0a\\x03\\x06=\\x12\" +\n\t\"\\x03\\x06\\x16%\\x03\\x06\\x1d,\\x03\\x099#\\x03\\x09\\x10>\\x03\\x07 \\x1e\\x03\\x08\" +\n\t\"\\x0c<\\x03\\x08\\x0b\\x18\\x03\\x08\\x15+\\x03\\x08,:\\x03\\x08%\\x22\\x03\\x07\\x0a$\" +\n\t\"\\x03\\x0b\\x1c=\\x03\\x07+\\x08\\x03\\x0a/\\x05\\x03\\x0a \\x07\\x03\\x0a\\x12'\\x03\" +\n\t\"\\x09#\\x11\\x03\\x08\\x1b\\x15\\x03\\x0a\\x06\\x01\\x03\\x09\\x1c\\x1b\\x03\\x0922\\x03\" +\n\t\"\\x07\\x14<\\x03\\x07\\x09\\x04\\x03\\x061\\x04\\x03\\x07\\x0e\\x01\\x03\\x0a\\x13\\x18\" +\n\t\"\\x03\\x0a-\\x0c\\x03\\x0a?\\x0d\\x03\\x0a\\x09\\x0a\\x03\\x091&\\x03\\x0a/\\x0b\\x03\" +\n\t\"\\x08$<\\x03\\x083\\x1d\\x03\\x08\\x0c$\\x03\\x08\\x0d\\x07\\x03\\x08\\x0d?\\x03\\x08\" +\n\t\"\\x0e\\x14\\x03\\x065\\x0a\\x03\\x08\\x1a#\\x03\\x08\\x16#\\x03\\x0702\\x03\\x07\\x03\" +\n\t\"\\x1a\\x03\\x06(\\x1d\\x03\\x06+\\x1b\\x03\\x06\\x0b\\x05\\x03\\x06\\x0b\\x17\\x03\\x06\" +\n\t\"\\x0c\\x04\\x03\\x06\\x1e\\x19\\x03\\x06+0\\x03\\x062\\x18\\x03\\x0b\\x16\\x1e\\x03\\x0a+\" +\n\t\"\\x16\\x03\\x0a-?\\x03\\x0a#:\\x03\\x0a#\\x10\\x03\\x0a%$\\x03\\x0a>+\\x03\\x0a01\\x03\" +\n\t\"\\x0a1\\x10\\x03\\x0a\\x099\\x03\\x0a\\x0a\\x12\\x03\\x0a\\x19\\x1f\\x03\\x0a\\x19\\x12\" +\n\t\"\\x03\\x09*)\\x03\\x09-\\x16\\x03\\x09.1\\x03\\x09.2\\x03\\x09<\\x0e\\x03\\x09> \\x03\" +\n\t\"\\x093\\x12\\x03\\x09\\x0b\\x01\\x03\\x09\\x1c2\\x03\\x09\\x11\\x1c\\x03\\x09\\x15%\\x03\" +\n\t\"\\x08,&\\x03\\x08!\\x22\\x03\\x089(\\x03\\x08\\x0b\\x1a\\x03\\x08\\x0d2\\x03\\x08\\x0c\" +\n\t\"\\x04\\x03\\x08\\x0c\\x06\\x03\\x08\\x0c\\x1f\\x03\\x08\\x0c\\x0c\\x03\\x08\\x0f\\x1f\\x03\" +\n\t\"\\x08\\x0f\\x1d\\x03\\x08\\x00\\x14\\x03\\x08\\x03\\x14\\x03\\x08\\x06\\x16\\x03\\x08\\x1e\" +\n\t\"#\\x03\\x08\\x11\\x11\\x03\\x08\\x10\\x18\\x03\\x08\\x14(\\x03\\x07)\\x1e\\x03\\x07.1\" +\n\t\"\\x03\\x07 $\\x03\\x07 '\\x03\\x078\\x08\\x03\\x07\\x0d0\\x03\\x07\\x0f7\\x03\\x07\\x05#\" +\n\t\"\\x03\\x07\\x05\\x1a\\x03\\x07\\x1a7\\x03\\x07\\x1d-\\x03\\x07\\x17\\x10\\x03\\x06)\\x1f\" +\n\t\"\\x03\\x062\\x0b\\x03\\x066\\x16\\x03\\x06\\x09\\x11\\x03\\x09(\\x1e\\x03\\x07!5\\x03\" +\n\t\"\\x0b\\x11\\x16\\x03\\x0a/\\x04\\x03\\x0a,\\x1a\\x03\\x0b\\x173\\x03\\x0a,1\\x03\\x0a/5\" +\n\t\"\\x03\\x0a\\x221\\x03\\x0a\\x22\\x0d\\x03\\x0a?%\\x03\\x0a<,\\x03\\x0a?#\\x03\\x0a>\\x19\" +\n\t\"\\x03\\x0a\\x08&\\x03\\x0a\\x0b\\x0e\\x03\\x0a\\x0c:\\x03\\x0a\\x0c+\\x03\\x0a\\x03\\x22\" +\n\t\"\\x03\\x0a\\x06)\\x03\\x0a\\x11\\x10\\x03\\x0a\\x11\\x1a\\x03\\x0a\\x17-\\x03\\x0a\\x14(\" +\n\t\"\\x03\\x09)\\x1e\\x03\\x09/\\x09\\x03\\x09.\\x00\\x03\\x09,\\x07\\x03\\x09/*\\x03\\x09-9\" +\n\t\"\\x03\\x09\\x228\\x03\\x09%\\x09\\x03\\x09:\\x12\\x03\\x09;\\x1d\\x03\\x09?\\x06\\x03\" +\n\t\"\\x093%\\x03\\x096\\x05\\x03\\x096\\x08\\x03\\x097\\x02\\x03\\x09\\x07,\\x03\\x09\\x04,\" +\n\t\"\\x03\\x09\\x1f\\x16\\x03\\x09\\x11\\x03\\x03\\x09\\x11\\x12\\x03\\x09\\x168\\x03\\x08*\" +\n\t\"\\x05\\x03\\x08/2\\x03\\x084:\\x03\\x08\\x22+\\x03\\x08 0\\x03\\x08&\\x0a\\x03\\x08;\" +\n\t\"\\x10\\x03\\x08>$\\x03\\x08>\\x18\\x03\\x0829\\x03\\x082:\\x03\\x081,\\x03\\x081<\\x03\" +\n\t\"\\x081\\x1c\\x03\\x087#\\x03\\x087*\\x03\\x08\\x09'\\x03\\x08\\x00\\x1d\\x03\\x08\\x05-\" +\n\t\"\\x03\\x08\\x1f4\\x03\\x08\\x1d\\x04\\x03\\x08\\x16\\x0f\\x03\\x07*7\\x03\\x07'!\\x03\" +\n\t\"\\x07%\\x1b\\x03\\x077\\x0c\\x03\\x07\\x0c1\\x03\\x07\\x0c.\\x03\\x07\\x00\\x06\\x03\\x07\" +\n\t\"\\x01\\x02\\x03\\x07\\x010\\x03\\x07\\x06=\\x03\\x07\\x01\\x03\\x03\\x07\\x01\\x13\\x03\" +\n\t\"\\x07\\x06\\x06\\x03\\x07\\x05\\x0a\\x03\\x07\\x1f\\x09\\x03\\x07\\x17:\\x03\\x06*1\\x03\" +\n\t\"\\x06-\\x1d\\x03\\x06\\x223\\x03\\x062:\\x03\\x060$\\x03\\x066\\x1e\\x03\\x064\\x12\\x03\" +\n\t\"\\x0645\\x03\\x06\\x0b\\x00\\x03\\x06\\x0b7\\x03\\x06\\x07\\x1f\\x03\\x06\\x15\\x12\\x03\" +\n\t\"\\x0c\\x05\\x0f\\x03\\x0b+\\x0b\\x03\\x0b+-\\x03\\x06\\x16\\x1b\\x03\\x06\\x15\\x17\\x03\" +\n\t\"\\x89\\xca\\xea\\x03\\x89\\xca\\xe8\\x03\\x0c8\\x10\\x03\\x0c8\\x01\\x03\\x0c8\\x0f\\x03\" +\n\t\"\\x0d8%\\x03\\x0d8!\\x03\\x0c8-\\x03\\x0c8/\\x03\\x0c8+\\x03\\x0c87\\x03\\x0c85\\x03\" +\n\t\"\\x0c9\\x09\\x03\\x0c9\\x0d\\x03\\x0c9\\x0f\\x03\\x0c9\\x0b\\x03\\xcfu\\x0c\\x03\\xcfu\" +\n\t\"\\x0f\\x03\\xcfu\\x0e\\x03\\xcfu\\x09\\x03\\x0c9\\x10\\x03\\x0d9\\x0c\\x03\\xcf`;\\x03\" +\n\t\"\\xcf`>\\x03\\xcf`9\\x03\\xcf`8\\x03\\xcf`7\\x03\\xcf`*\\x03\\xcf`-\\x03\\xcf`,\\x03\" +\n\t\"\\x0d\\x1b\\x1a\\x03\\x0d\\x1b&\\x03\\x0c=.\\x03\\x0c=%\\x03\\x0c>\\x1e\\x03\\x0c>\\x14\" +\n\t\"\\x03\\x0c?\\x06\\x03\\x0c?\\x0b\\x03\\x0c?\\x0c\\x03\\x0c?\\x0d\\x03\\x0c?\\x02\\x03\" +\n\t\"\\x0c>\\x0f\\x03\\x0c>\\x08\\x03\\x0c>\\x09\\x03\\x0c>,\\x03\\x0c>\\x0c\\x03\\x0c?\\x13\" +\n\t\"\\x03\\x0c?\\x16\\x03\\x0c?\\x15\\x03\\x0c?\\x1c\\x03\\x0c?\\x1f\\x03\\x0c?\\x1d\\x03\" +\n\t\"\\x0c?\\x1a\\x03\\x0c?\\x17\\x03\\x0c?\\x08\\x03\\x0c?\\x09\\x03\\x0c?\\x0e\\x03\\x0c?\" +\n\t\"\\x04\\x03\\x0c?\\x05\\x03\\x0c<?\\x03\\x0c=\\x00\\x03\\x0c=\\x06\\x03\\x0c=\\x05\\x03\" +\n\t\"\\x0c=\\x0c\\x03\\x0c=\\x0f\\x03\\x0c=\\x0d\\x03\\x0c=\\x0b\\x03\\x0c=\\x07\\x03\\x0c=\" +\n\t\"\\x19\\x03\\x0c=\\x15\\x03\\x0c=\\x11\\x03\\x0c=1\\x03\\x0c=3\\x03\\x0c=0\\x03\\x0c=>\" +\n\t\"\\x03\\x0c=2\\x03\\x0c=6\\x03\\x0c<\\x07\\x03\\x0c<\\x05\\x03\\x0e:!\\x03\\x0e:#\\x03\" +\n\t\"\\x0e8\\x09\\x03\\x0e:&\\x03\\x0e8\\x0b\\x03\\x0e:$\\x03\\x0e:,\\x03\\x0e8\\x1a\\x03\" +\n\t\"\\x0e8\\x1e\\x03\\x0e:*\\x03\\x0e:7\\x03\\x0e:5\\x03\\x0e:;\\x03\\x0e:\\x15\\x03\\x0e:<\" +\n\t\"\\x03\\x0e:4\\x03\\x0e:'\\x03\\x0e:-\\x03\\x0e:%\\x03\\x0e:?\\x03\\x0e:=\\x03\\x0e:)\" +\n\t\"\\x03\\x0e:/\\x03\\xcfs'\\x03\\x0d=\\x0f\\x03\\x0d+*\\x03\\x0d99\\x03\\x0d9;\\x03\\x0d9\" +\n\t\"?\\x03\\x0d)\\x0d\\x03\\x0d(%\\x02\\x01\\x18\\x02\\x01(\\x02\\x01\\x1e\\x03\\x0f$!\\x03\" +\n\t\"\\x0f87\\x03\\x0f4\\x0e\\x03\\x0f5\\x1d\\x03\\x06'\\x03\\x03\\x0f\\x08\\x18\\x03\\x0f\" +\n\t\"\\x0d\\x1b\\x03\\x0e2=\\x03\\x0e;\\x08\\x03\\x0e:\\x0b\\x03\\x0e\\x06$\\x03\\x0e\\x0d)\" +\n\t\"\\x03\\x0e\\x16\\x1f\\x03\\x0e\\x16\\x1b\\x03\\x0d$\\x0a\\x03\\x05,\\x1d\\x03\\x0d. \\x03\" +\n\t\"\\x0d.#\\x03\\x0c(/\\x03\\x09%\\x02\\x03\\x0d90\\x03\\x0d\\x0e4\\x03\\x0d\\x0d\\x0f\\x03\" +\n\t\"\\x0c#\\x00\\x03\\x0c,\\x1e\\x03\\x0c2\\x0e\\x03\\x0c\\x01\\x17\\x03\\x0c\\x09:\\x03\\x0e\" +\n\t\"\\x173\\x03\\x0c\\x08\\x03\\x03\\x0c\\x11\\x07\\x03\\x0c\\x10\\x18\\x03\\x0c\\x1f\\x1c\" +\n\t\"\\x03\\x0c\\x19\\x0e\\x03\\x0c\\x1a\\x1f\\x03\\x0f0>\\x03\\x0b->\\x03\\x0b<+\\x03\\x0b8\" +\n\t\"\\x13\\x03\\x0b\\x043\\x03\\x0b\\x14\\x03\\x03\\x0b\\x16%\\x03\\x0d\\x22&\\x03\\x0b\\x1a\" +\n\t\"\\x1a\\x03\\x0b\\x1a\\x04\\x03\\x0a%9\\x03\\x0a&2\\x03\\x0a&0\\x03\\x0a!\\x1a\\x03\\x0a!\" +\n\t\"7\\x03\\x0a5\\x10\\x03\\x0a=4\\x03\\x0a?\\x0e\\x03\\x0a>\\x10\\x03\\x0a\\x00 \\x03\\x0a\" +\n\t\"\\x0f:\\x03\\x0a\\x0f9\\x03\\x0a\\x0b\\x0a\\x03\\x0a\\x17%\\x03\\x0a\\x1b-\\x03\\x09-\" +\n\t\"\\x1a\\x03\\x09,4\\x03\\x09.,\\x03\\x09)\\x09\\x03\\x096!\\x03\\x091\\x1f\\x03\\x093\" +\n\t\"\\x16\\x03\\x0c+\\x1f\\x03\\x098 \\x03\\x098=\\x03\\x0c(\\x1a\\x03\\x0c(\\x16\\x03\\x09\" +\n\t\"\\x0a+\\x03\\x09\\x16\\x12\\x03\\x09\\x13\\x0e\\x03\\x09\\x153\\x03\\x08)!\\x03\\x09\\x1a\" +\n\t\"\\x01\\x03\\x09\\x18\\x01\\x03\\x08%#\\x03\\x08>\\x22\\x03\\x08\\x05%\\x03\\x08\\x02*\" +\n\t\"\\x03\\x08\\x15;\\x03\\x08\\x1b7\\x03\\x0f\\x07\\x1d\\x03\\x0f\\x04\\x03\\x03\\x070\\x0c\" +\n\t\"\\x03\\x07;\\x0b\\x03\\x07\\x08\\x17\\x03\\x07\\x12\\x06\\x03\\x06/-\\x03\\x0671\\x03\" +\n\t\"\\x065+\\x03\\x06>7\\x03\\x06\\x049\\x03\\x05+\\x1e\\x03\\x05,\\x17\\x03\\x05 \\x1d\\x03\" +\n\t\"\\x05\\x22\\x05\\x03\\x050\\x1d\"\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *idnaTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn idnaValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = idnaIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *idnaTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn idnaValues[c0]\n\t}\n\ti := idnaIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *idnaTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn idnaValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = idnaIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *idnaTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn idnaValues[c0]\n\t}\n\ti := idnaIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// idnaTrie. Total size: 29708 bytes (29.01 KiB). Checksum: c3ecc76d8fffa6e6.\ntype idnaTrie struct{}\n\nfunc newIdnaTrie(i int) *idnaTrie {\n\treturn &idnaTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *idnaTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 125:\n\t\treturn uint16(idnaValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 125\n\t\treturn uint16(idnaSparse.lookup(n, b))\n\t}\n}\n\n// idnaValues: 127 blocks, 8128 entries, 16256 bytes\n// The third block is the zero block.\nvar idnaValues = [8128]uint16{\n\t// Block 0x0, offset 0x0\n\t0x00: 0x0080, 0x01: 0x0080, 0x02: 0x0080, 0x03: 0x0080, 0x04: 0x0080, 0x05: 0x0080,\n\t0x06: 0x0080, 0x07: 0x0080, 0x08: 0x0080, 0x09: 0x0080, 0x0a: 0x0080, 0x0b: 0x0080,\n\t0x0c: 0x0080, 0x0d: 0x0080, 0x0e: 0x0080, 0x0f: 0x0080, 0x10: 0x0080, 0x11: 0x0080,\n\t0x12: 0x0080, 0x13: 0x0080, 0x14: 0x0080, 0x15: 0x0080, 0x16: 0x0080, 0x17: 0x0080,\n\t0x18: 0x0080, 0x19: 0x0080, 0x1a: 0x0080, 0x1b: 0x0080, 0x1c: 0x0080, 0x1d: 0x0080,\n\t0x1e: 0x0080, 0x1f: 0x0080, 0x20: 0x0080, 0x21: 0x0080, 0x22: 0x0080, 0x23: 0x0080,\n\t0x24: 0x0080, 0x25: 0x0080, 0x26: 0x0080, 0x27: 0x0080, 0x28: 0x0080, 0x29: 0x0080,\n\t0x2a: 0x0080, 0x2b: 0x0080, 0x2c: 0x0080, 0x2d: 0x0008, 0x2e: 0x0008, 0x2f: 0x0080,\n\t0x30: 0x0008, 0x31: 0x0008, 0x32: 0x0008, 0x33: 0x0008, 0x34: 0x0008, 0x35: 0x0008,\n\t0x36: 0x0008, 0x37: 0x0008, 0x38: 0x0008, 0x39: 0x0008, 0x3a: 0x0080, 0x3b: 0x0080,\n\t0x3c: 0x0080, 0x3d: 0x0080, 0x3e: 0x0080, 0x3f: 0x0080,\n\t// Block 0x1, offset 0x40\n\t0x40: 0x0080, 0x41: 0xe105, 0x42: 0xe105, 0x43: 0xe105, 0x44: 0xe105, 0x45: 0xe105,\n\t0x46: 0xe105, 0x47: 0xe105, 0x48: 0xe105, 0x49: 0xe105, 0x4a: 0xe105, 0x4b: 0xe105,\n\t0x4c: 0xe105, 0x4d: 0xe105, 0x4e: 0xe105, 0x4f: 0xe105, 0x50: 0xe105, 0x51: 0xe105,\n\t0x52: 0xe105, 0x53: 0xe105, 0x54: 0xe105, 0x55: 0xe105, 0x56: 0xe105, 0x57: 0xe105,\n\t0x58: 0xe105, 0x59: 0xe105, 0x5a: 0xe105, 0x5b: 0x0080, 0x5c: 0x0080, 0x5d: 0x0080,\n\t0x5e: 0x0080, 0x5f: 0x0080, 0x60: 0x0080, 0x61: 0x0008, 0x62: 0x0008, 0x63: 0x0008,\n\t0x64: 0x0008, 0x65: 0x0008, 0x66: 0x0008, 0x67: 0x0008, 0x68: 0x0008, 0x69: 0x0008,\n\t0x6a: 0x0008, 0x6b: 0x0008, 0x6c: 0x0008, 0x6d: 0x0008, 0x6e: 0x0008, 0x6f: 0x0008,\n\t0x70: 0x0008, 0x71: 0x0008, 0x72: 0x0008, 0x73: 0x0008, 0x74: 0x0008, 0x75: 0x0008,\n\t0x76: 0x0008, 0x77: 0x0008, 0x78: 0x0008, 0x79: 0x0008, 0x7a: 0x0008, 0x7b: 0x0080,\n\t0x7c: 0x0080, 0x7d: 0x0080, 0x7e: 0x0080, 0x7f: 0x0080,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x0040, 0xc1: 0x0040, 0xc2: 0x0040, 0xc3: 0x0040, 0xc4: 0x0040, 0xc5: 0x0040,\n\t0xc6: 0x0040, 0xc7: 0x0040, 0xc8: 0x0040, 0xc9: 0x0040, 0xca: 0x0040, 0xcb: 0x0040,\n\t0xcc: 0x0040, 0xcd: 0x0040, 0xce: 0x0040, 0xcf: 0x0040, 0xd0: 0x0040, 0xd1: 0x0040,\n\t0xd2: 0x0040, 0xd3: 0x0040, 0xd4: 0x0040, 0xd5: 0x0040, 0xd6: 0x0040, 0xd7: 0x0040,\n\t0xd8: 0x0040, 0xd9: 0x0040, 0xda: 0x0040, 0xdb: 0x0040, 0xdc: 0x0040, 0xdd: 0x0040,\n\t0xde: 0x0040, 0xdf: 0x0040, 0xe0: 0x000a, 0xe1: 0x0018, 0xe2: 0x0018, 0xe3: 0x0018,\n\t0xe4: 0x0018, 0xe5: 0x0018, 0xe6: 0x0018, 0xe7: 0x0018, 0xe8: 0x001a, 0xe9: 0x0018,\n\t0xea: 0x0039, 0xeb: 0x0018, 0xec: 0x0018, 0xed: 0x03c0, 0xee: 0x0018, 0xef: 0x004a,\n\t0xf0: 0x0018, 0xf1: 0x0018, 0xf2: 0x0069, 0xf3: 0x0079, 0xf4: 0x008a, 0xf5: 0x0005,\n\t0xf6: 0x0018, 0xf7: 0x0008, 0xf8: 0x00aa, 0xf9: 0x00c9, 0xfa: 0x00d9, 0xfb: 0x0018,\n\t0xfc: 0x00e9, 0xfd: 0x0119, 0xfe: 0x0149, 0xff: 0x0018,\n\t// Block 0x4, offset 0x100\n\t0x100: 0xe00d, 0x101: 0x0008, 0x102: 0xe00d, 0x103: 0x0008, 0x104: 0xe00d, 0x105: 0x0008,\n\t0x106: 0xe00d, 0x107: 0x0008, 0x108: 0xe00d, 0x109: 0x0008, 0x10a: 0xe00d, 0x10b: 0x0008,\n\t0x10c: 0xe00d, 0x10d: 0x0008, 0x10e: 0xe00d, 0x10f: 0x0008, 0x110: 0xe00d, 0x111: 0x0008,\n\t0x112: 0xe00d, 0x113: 0x0008, 0x114: 0xe00d, 0x115: 0x0008, 0x116: 0xe00d, 0x117: 0x0008,\n\t0x118: 0xe00d, 0x119: 0x0008, 0x11a: 0xe00d, 0x11b: 0x0008, 0x11c: 0xe00d, 0x11d: 0x0008,\n\t0x11e: 0xe00d, 0x11f: 0x0008, 0x120: 0xe00d, 0x121: 0x0008, 0x122: 0xe00d, 0x123: 0x0008,\n\t0x124: 0xe00d, 0x125: 0x0008, 0x126: 0xe00d, 0x127: 0x0008, 0x128: 0xe00d, 0x129: 0x0008,\n\t0x12a: 0xe00d, 0x12b: 0x0008, 0x12c: 0xe00d, 0x12d: 0x0008, 0x12e: 0xe00d, 0x12f: 0x0008,\n\t0x130: 0x0179, 0x131: 0x0008, 0x132: 0x0035, 0x133: 0x004d, 0x134: 0xe00d, 0x135: 0x0008,\n\t0x136: 0xe00d, 0x137: 0x0008, 0x138: 0x0008, 0x139: 0xe01d, 0x13a: 0x0008, 0x13b: 0xe03d,\n\t0x13c: 0x0008, 0x13d: 0xe01d, 0x13e: 0x0008, 0x13f: 0x0199,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x0199, 0x141: 0xe01d, 0x142: 0x0008, 0x143: 0xe03d, 0x144: 0x0008, 0x145: 0xe01d,\n\t0x146: 0x0008, 0x147: 0xe07d, 0x148: 0x0008, 0x149: 0x01b9, 0x14a: 0xe00d, 0x14b: 0x0008,\n\t0x14c: 0xe00d, 0x14d: 0x0008, 0x14e: 0xe00d, 0x14f: 0x0008, 0x150: 0xe00d, 0x151: 0x0008,\n\t0x152: 0xe00d, 0x153: 0x0008, 0x154: 0xe00d, 0x155: 0x0008, 0x156: 0xe00d, 0x157: 0x0008,\n\t0x158: 0xe00d, 0x159: 0x0008, 0x15a: 0xe00d, 0x15b: 0x0008, 0x15c: 0xe00d, 0x15d: 0x0008,\n\t0x15e: 0xe00d, 0x15f: 0x0008, 0x160: 0xe00d, 0x161: 0x0008, 0x162: 0xe00d, 0x163: 0x0008,\n\t0x164: 0xe00d, 0x165: 0x0008, 0x166: 0xe00d, 0x167: 0x0008, 0x168: 0xe00d, 0x169: 0x0008,\n\t0x16a: 0xe00d, 0x16b: 0x0008, 0x16c: 0xe00d, 0x16d: 0x0008, 0x16e: 0xe00d, 0x16f: 0x0008,\n\t0x170: 0xe00d, 0x171: 0x0008, 0x172: 0xe00d, 0x173: 0x0008, 0x174: 0xe00d, 0x175: 0x0008,\n\t0x176: 0xe00d, 0x177: 0x0008, 0x178: 0x0065, 0x179: 0xe01d, 0x17a: 0x0008, 0x17b: 0xe03d,\n\t0x17c: 0x0008, 0x17d: 0xe01d, 0x17e: 0x0008, 0x17f: 0x01d9,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x0008, 0x181: 0x007d, 0x182: 0xe00d, 0x183: 0x0008, 0x184: 0xe00d, 0x185: 0x0008,\n\t0x186: 0x007d, 0x187: 0xe07d, 0x188: 0x0008, 0x189: 0x0095, 0x18a: 0x00ad, 0x18b: 0xe03d,\n\t0x18c: 0x0008, 0x18d: 0x0008, 0x18e: 0x00c5, 0x18f: 0x00dd, 0x190: 0x00f5, 0x191: 0xe01d,\n\t0x192: 0x0008, 0x193: 0x010d, 0x194: 0x0125, 0x195: 0x0008, 0x196: 0x013d, 0x197: 0x013d,\n\t0x198: 0xe00d, 0x199: 0x0008, 0x19a: 0x0008, 0x19b: 0x0008, 0x19c: 0x010d, 0x19d: 0x0155,\n\t0x19e: 0x0008, 0x19f: 0x016d, 0x1a0: 0xe00d, 0x1a1: 0x0008, 0x1a2: 0xe00d, 0x1a3: 0x0008,\n\t0x1a4: 0xe00d, 0x1a5: 0x0008, 0x1a6: 0x0185, 0x1a7: 0xe07d, 0x1a8: 0x0008, 0x1a9: 0x019d,\n\t0x1aa: 0x0008, 0x1ab: 0x0008, 0x1ac: 0xe00d, 0x1ad: 0x0008, 0x1ae: 0x0185, 0x1af: 0xe0fd,\n\t0x1b0: 0x0008, 0x1b1: 0x01b5, 0x1b2: 0x01cd, 0x1b3: 0xe03d, 0x1b4: 0x0008, 0x1b5: 0xe01d,\n\t0x1b6: 0x0008, 0x1b7: 0x01e5, 0x1b8: 0xe00d, 0x1b9: 0x0008, 0x1ba: 0x0008, 0x1bb: 0x0008,\n\t0x1bc: 0xe00d, 0x1bd: 0x0008, 0x1be: 0x0008, 0x1bf: 0x0008,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x0008, 0x1c1: 0x0008, 0x1c2: 0x0008, 0x1c3: 0x0008, 0x1c4: 0x01e9, 0x1c5: 0x01e9,\n\t0x1c6: 0x01e9, 0x1c7: 0x01fd, 0x1c8: 0x0215, 0x1c9: 0x022d, 0x1ca: 0x0245, 0x1cb: 0x025d,\n\t0x1cc: 0x0275, 0x1cd: 0xe01d, 0x1ce: 0x0008, 0x1cf: 0xe0fd, 0x1d0: 0x0008, 0x1d1: 0xe01d,\n\t0x1d2: 0x0008, 0x1d3: 0xe03d, 0x1d4: 0x0008, 0x1d5: 0xe01d, 0x1d6: 0x0008, 0x1d7: 0xe07d,\n\t0x1d8: 0x0008, 0x1d9: 0xe01d, 0x1da: 0x0008, 0x1db: 0xe03d, 0x1dc: 0x0008, 0x1dd: 0x0008,\n\t0x1de: 0xe00d, 0x1df: 0x0008, 0x1e0: 0xe00d, 0x1e1: 0x0008, 0x1e2: 0xe00d, 0x1e3: 0x0008,\n\t0x1e4: 0xe00d, 0x1e5: 0x0008, 0x1e6: 0xe00d, 0x1e7: 0x0008, 0x1e8: 0xe00d, 0x1e9: 0x0008,\n\t0x1ea: 0xe00d, 0x1eb: 0x0008, 0x1ec: 0xe00d, 0x1ed: 0x0008, 0x1ee: 0xe00d, 0x1ef: 0x0008,\n\t0x1f0: 0x0008, 0x1f1: 0x028d, 0x1f2: 0x02a5, 0x1f3: 0x02bd, 0x1f4: 0xe00d, 0x1f5: 0x0008,\n\t0x1f6: 0x02d5, 0x1f7: 0x02ed, 0x1f8: 0xe00d, 0x1f9: 0x0008, 0x1fa: 0xe00d, 0x1fb: 0x0008,\n\t0x1fc: 0xe00d, 0x1fd: 0x0008, 0x1fe: 0xe00d, 0x1ff: 0x0008,\n\t// Block 0x8, offset 0x200\n\t0x200: 0xe00d, 0x201: 0x0008, 0x202: 0xe00d, 0x203: 0x0008, 0x204: 0xe00d, 0x205: 0x0008,\n\t0x206: 0xe00d, 0x207: 0x0008, 0x208: 0xe00d, 0x209: 0x0008, 0x20a: 0xe00d, 0x20b: 0x0008,\n\t0x20c: 0xe00d, 0x20d: 0x0008, 0x20e: 0xe00d, 0x20f: 0x0008, 0x210: 0xe00d, 0x211: 0x0008,\n\t0x212: 0xe00d, 0x213: 0x0008, 0x214: 0xe00d, 0x215: 0x0008, 0x216: 0xe00d, 0x217: 0x0008,\n\t0x218: 0xe00d, 0x219: 0x0008, 0x21a: 0xe00d, 0x21b: 0x0008, 0x21c: 0xe00d, 0x21d: 0x0008,\n\t0x21e: 0xe00d, 0x21f: 0x0008, 0x220: 0x0305, 0x221: 0x0008, 0x222: 0xe00d, 0x223: 0x0008,\n\t0x224: 0xe00d, 0x225: 0x0008, 0x226: 0xe00d, 0x227: 0x0008, 0x228: 0xe00d, 0x229: 0x0008,\n\t0x22a: 0xe00d, 0x22b: 0x0008, 0x22c: 0xe00d, 0x22d: 0x0008, 0x22e: 0xe00d, 0x22f: 0x0008,\n\t0x230: 0xe00d, 0x231: 0x0008, 0x232: 0xe00d, 0x233: 0x0008, 0x234: 0x0008, 0x235: 0x0008,\n\t0x236: 0x0008, 0x237: 0x0008, 0x238: 0x0008, 0x239: 0x0008, 0x23a: 0x0209, 0x23b: 0xe03d,\n\t0x23c: 0x0008, 0x23d: 0x031d, 0x23e: 0x0229, 0x23f: 0x0008,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x0008, 0x241: 0x0008, 0x242: 0x0018, 0x243: 0x0018, 0x244: 0x0018, 0x245: 0x0018,\n\t0x246: 0x0008, 0x247: 0x0008, 0x248: 0x0008, 0x249: 0x0008, 0x24a: 0x0008, 0x24b: 0x0008,\n\t0x24c: 0x0008, 0x24d: 0x0008, 0x24e: 0x0008, 0x24f: 0x0008, 0x250: 0x0008, 0x251: 0x0008,\n\t0x252: 0x0018, 0x253: 0x0018, 0x254: 0x0018, 0x255: 0x0018, 0x256: 0x0018, 0x257: 0x0018,\n\t0x258: 0x029a, 0x259: 0x02ba, 0x25a: 0x02da, 0x25b: 0x02fa, 0x25c: 0x031a, 0x25d: 0x033a,\n\t0x25e: 0x0018, 0x25f: 0x0018, 0x260: 0x03ad, 0x261: 0x0359, 0x262: 0x01d9, 0x263: 0x0369,\n\t0x264: 0x03c5, 0x265: 0x0018, 0x266: 0x0018, 0x267: 0x0018, 0x268: 0x0018, 0x269: 0x0018,\n\t0x26a: 0x0018, 0x26b: 0x0018, 0x26c: 0x0008, 0x26d: 0x0018, 0x26e: 0x0008, 0x26f: 0x0018,\n\t0x270: 0x0018, 0x271: 0x0018, 0x272: 0x0018, 0x273: 0x0018, 0x274: 0x0018, 0x275: 0x0018,\n\t0x276: 0x0018, 0x277: 0x0018, 0x278: 0x0018, 0x279: 0x0018, 0x27a: 0x0018, 0x27b: 0x0018,\n\t0x27c: 0x0018, 0x27d: 0x0018, 0x27e: 0x0018, 0x27f: 0x0018,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x03dd, 0x281: 0x03dd, 0x282: 0x3308, 0x283: 0x03f5, 0x284: 0x0379, 0x285: 0x040d,\n\t0x286: 0x3308, 0x287: 0x3308, 0x288: 0x3308, 0x289: 0x3308, 0x28a: 0x3308, 0x28b: 0x3308,\n\t0x28c: 0x3308, 0x28d: 0x3308, 0x28e: 0x3308, 0x28f: 0x33c0, 0x290: 0x3308, 0x291: 0x3308,\n\t0x292: 0x3308, 0x293: 0x3308, 0x294: 0x3308, 0x295: 0x3308, 0x296: 0x3308, 0x297: 0x3308,\n\t0x298: 0x3308, 0x299: 0x3308, 0x29a: 0x3308, 0x29b: 0x3308, 0x29c: 0x3308, 0x29d: 0x3308,\n\t0x29e: 0x3308, 0x29f: 0x3308, 0x2a0: 0x3308, 0x2a1: 0x3308, 0x2a2: 0x3308, 0x2a3: 0x3308,\n\t0x2a4: 0x3308, 0x2a5: 0x3308, 0x2a6: 0x3308, 0x2a7: 0x3308, 0x2a8: 0x3308, 0x2a9: 0x3308,\n\t0x2aa: 0x3308, 0x2ab: 0x3308, 0x2ac: 0x3308, 0x2ad: 0x3308, 0x2ae: 0x3308, 0x2af: 0x3308,\n\t0x2b0: 0xe00d, 0x2b1: 0x0008, 0x2b2: 0xe00d, 0x2b3: 0x0008, 0x2b4: 0x0425, 0x2b5: 0x0008,\n\t0x2b6: 0xe00d, 0x2b7: 0x0008, 0x2b8: 0x0040, 0x2b9: 0x0040, 0x2ba: 0x03a2, 0x2bb: 0x0008,\n\t0x2bc: 0x0008, 0x2bd: 0x0008, 0x2be: 0x03c2, 0x2bf: 0x043d,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x0040, 0x2c1: 0x0040, 0x2c2: 0x0040, 0x2c3: 0x0040, 0x2c4: 0x008a, 0x2c5: 0x03d2,\n\t0x2c6: 0xe155, 0x2c7: 0x0455, 0x2c8: 0xe12d, 0x2c9: 0xe13d, 0x2ca: 0xe12d, 0x2cb: 0x0040,\n\t0x2cc: 0x03dd, 0x2cd: 0x0040, 0x2ce: 0x046d, 0x2cf: 0x0485, 0x2d0: 0x0008, 0x2d1: 0xe105,\n\t0x2d2: 0xe105, 0x2d3: 0xe105, 0x2d4: 0xe105, 0x2d5: 0xe105, 0x2d6: 0xe105, 0x2d7: 0xe105,\n\t0x2d8: 0xe105, 0x2d9: 0xe105, 0x2da: 0xe105, 0x2db: 0xe105, 0x2dc: 0xe105, 0x2dd: 0xe105,\n\t0x2de: 0xe105, 0x2df: 0xe105, 0x2e0: 0x049d, 0x2e1: 0x049d, 0x2e2: 0x0040, 0x2e3: 0x049d,\n\t0x2e4: 0x049d, 0x2e5: 0x049d, 0x2e6: 0x049d, 0x2e7: 0x049d, 0x2e8: 0x049d, 0x2e9: 0x049d,\n\t0x2ea: 0x049d, 0x2eb: 0x049d, 0x2ec: 0x0008, 0x2ed: 0x0008, 0x2ee: 0x0008, 0x2ef: 0x0008,\n\t0x2f0: 0x0008, 0x2f1: 0x0008, 0x2f2: 0x0008, 0x2f3: 0x0008, 0x2f4: 0x0008, 0x2f5: 0x0008,\n\t0x2f6: 0x0008, 0x2f7: 0x0008, 0x2f8: 0x0008, 0x2f9: 0x0008, 0x2fa: 0x0008, 0x2fb: 0x0008,\n\t0x2fc: 0x0008, 0x2fd: 0x0008, 0x2fe: 0x0008, 0x2ff: 0x0008,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x0008, 0x301: 0x0008, 0x302: 0xe00f, 0x303: 0x0008, 0x304: 0x0008, 0x305: 0x0008,\n\t0x306: 0x0008, 0x307: 0x0008, 0x308: 0x0008, 0x309: 0x0008, 0x30a: 0x0008, 0x30b: 0x0008,\n\t0x30c: 0x0008, 0x30d: 0x0008, 0x30e: 0x0008, 0x30f: 0xe0c5, 0x310: 0x04b5, 0x311: 0x04cd,\n\t0x312: 0xe0bd, 0x313: 0xe0f5, 0x314: 0xe0fd, 0x315: 0xe09d, 0x316: 0xe0b5, 0x317: 0x0008,\n\t0x318: 0xe00d, 0x319: 0x0008, 0x31a: 0xe00d, 0x31b: 0x0008, 0x31c: 0xe00d, 0x31d: 0x0008,\n\t0x31e: 0xe00d, 0x31f: 0x0008, 0x320: 0xe00d, 0x321: 0x0008, 0x322: 0xe00d, 0x323: 0x0008,\n\t0x324: 0xe00d, 0x325: 0x0008, 0x326: 0xe00d, 0x327: 0x0008, 0x328: 0xe00d, 0x329: 0x0008,\n\t0x32a: 0xe00d, 0x32b: 0x0008, 0x32c: 0xe00d, 0x32d: 0x0008, 0x32e: 0xe00d, 0x32f: 0x0008,\n\t0x330: 0x04e5, 0x331: 0xe185, 0x332: 0xe18d, 0x333: 0x0008, 0x334: 0x04fd, 0x335: 0x03dd,\n\t0x336: 0x0018, 0x337: 0xe07d, 0x338: 0x0008, 0x339: 0xe1d5, 0x33a: 0xe00d, 0x33b: 0x0008,\n\t0x33c: 0x0008, 0x33d: 0x0515, 0x33e: 0x052d, 0x33f: 0x052d,\n\t// Block 0xd, offset 0x340\n\t0x340: 0x0008, 0x341: 0x0008, 0x342: 0x0008, 0x343: 0x0008, 0x344: 0x0008, 0x345: 0x0008,\n\t0x346: 0x0008, 0x347: 0x0008, 0x348: 0x0008, 0x349: 0x0008, 0x34a: 0x0008, 0x34b: 0x0008,\n\t0x34c: 0x0008, 0x34d: 0x0008, 0x34e: 0x0008, 0x34f: 0x0008, 0x350: 0x0008, 0x351: 0x0008,\n\t0x352: 0x0008, 0x353: 0x0008, 0x354: 0x0008, 0x355: 0x0008, 0x356: 0x0008, 0x357: 0x0008,\n\t0x358: 0x0008, 0x359: 0x0008, 0x35a: 0x0008, 0x35b: 0x0008, 0x35c: 0x0008, 0x35d: 0x0008,\n\t0x35e: 0x0008, 0x35f: 0x0008, 0x360: 0xe00d, 0x361: 0x0008, 0x362: 0xe00d, 0x363: 0x0008,\n\t0x364: 0xe00d, 0x365: 0x0008, 0x366: 0xe00d, 0x367: 0x0008, 0x368: 0xe00d, 0x369: 0x0008,\n\t0x36a: 0xe00d, 0x36b: 0x0008, 0x36c: 0xe00d, 0x36d: 0x0008, 0x36e: 0xe00d, 0x36f: 0x0008,\n\t0x370: 0xe00d, 0x371: 0x0008, 0x372: 0xe00d, 0x373: 0x0008, 0x374: 0xe00d, 0x375: 0x0008,\n\t0x376: 0xe00d, 0x377: 0x0008, 0x378: 0xe00d, 0x379: 0x0008, 0x37a: 0xe00d, 0x37b: 0x0008,\n\t0x37c: 0xe00d, 0x37d: 0x0008, 0x37e: 0xe00d, 0x37f: 0x0008,\n\t// Block 0xe, offset 0x380\n\t0x380: 0xe00d, 0x381: 0x0008, 0x382: 0x0018, 0x383: 0x3308, 0x384: 0x3308, 0x385: 0x3308,\n\t0x386: 0x3308, 0x387: 0x3308, 0x388: 0x3318, 0x389: 0x3318, 0x38a: 0xe00d, 0x38b: 0x0008,\n\t0x38c: 0xe00d, 0x38d: 0x0008, 0x38e: 0xe00d, 0x38f: 0x0008, 0x390: 0xe00d, 0x391: 0x0008,\n\t0x392: 0xe00d, 0x393: 0x0008, 0x394: 0xe00d, 0x395: 0x0008, 0x396: 0xe00d, 0x397: 0x0008,\n\t0x398: 0xe00d, 0x399: 0x0008, 0x39a: 0xe00d, 0x39b: 0x0008, 0x39c: 0xe00d, 0x39d: 0x0008,\n\t0x39e: 0xe00d, 0x39f: 0x0008, 0x3a0: 0xe00d, 0x3a1: 0x0008, 0x3a2: 0xe00d, 0x3a3: 0x0008,\n\t0x3a4: 0xe00d, 0x3a5: 0x0008, 0x3a6: 0xe00d, 0x3a7: 0x0008, 0x3a8: 0xe00d, 0x3a9: 0x0008,\n\t0x3aa: 0xe00d, 0x3ab: 0x0008, 0x3ac: 0xe00d, 0x3ad: 0x0008, 0x3ae: 0xe00d, 0x3af: 0x0008,\n\t0x3b0: 0xe00d, 0x3b1: 0x0008, 0x3b2: 0xe00d, 0x3b3: 0x0008, 0x3b4: 0xe00d, 0x3b5: 0x0008,\n\t0x3b6: 0xe00d, 0x3b7: 0x0008, 0x3b8: 0xe00d, 0x3b9: 0x0008, 0x3ba: 0xe00d, 0x3bb: 0x0008,\n\t0x3bc: 0xe00d, 0x3bd: 0x0008, 0x3be: 0xe00d, 0x3bf: 0x0008,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x0040, 0x3c1: 0xe01d, 0x3c2: 0x0008, 0x3c3: 0xe03d, 0x3c4: 0x0008, 0x3c5: 0xe01d,\n\t0x3c6: 0x0008, 0x3c7: 0xe07d, 0x3c8: 0x0008, 0x3c9: 0xe01d, 0x3ca: 0x0008, 0x3cb: 0xe03d,\n\t0x3cc: 0x0008, 0x3cd: 0xe01d, 0x3ce: 0x0008, 0x3cf: 0x0008, 0x3d0: 0xe00d, 0x3d1: 0x0008,\n\t0x3d2: 0xe00d, 0x3d3: 0x0008, 0x3d4: 0xe00d, 0x3d5: 0x0008, 0x3d6: 0xe00d, 0x3d7: 0x0008,\n\t0x3d8: 0xe00d, 0x3d9: 0x0008, 0x3da: 0xe00d, 0x3db: 0x0008, 0x3dc: 0xe00d, 0x3dd: 0x0008,\n\t0x3de: 0xe00d, 0x3df: 0x0008, 0x3e0: 0xe00d, 0x3e1: 0x0008, 0x3e2: 0xe00d, 0x3e3: 0x0008,\n\t0x3e4: 0xe00d, 0x3e5: 0x0008, 0x3e6: 0xe00d, 0x3e7: 0x0008, 0x3e8: 0xe00d, 0x3e9: 0x0008,\n\t0x3ea: 0xe00d, 0x3eb: 0x0008, 0x3ec: 0xe00d, 0x3ed: 0x0008, 0x3ee: 0xe00d, 0x3ef: 0x0008,\n\t0x3f0: 0xe00d, 0x3f1: 0x0008, 0x3f2: 0xe00d, 0x3f3: 0x0008, 0x3f4: 0xe00d, 0x3f5: 0x0008,\n\t0x3f6: 0xe00d, 0x3f7: 0x0008, 0x3f8: 0xe00d, 0x3f9: 0x0008, 0x3fa: 0xe00d, 0x3fb: 0x0008,\n\t0x3fc: 0xe00d, 0x3fd: 0x0008, 0x3fe: 0xe00d, 0x3ff: 0x0008,\n\t// Block 0x10, offset 0x400\n\t0x400: 0xe00d, 0x401: 0x0008, 0x402: 0xe00d, 0x403: 0x0008, 0x404: 0xe00d, 0x405: 0x0008,\n\t0x406: 0xe00d, 0x407: 0x0008, 0x408: 0xe00d, 0x409: 0x0008, 0x40a: 0xe00d, 0x40b: 0x0008,\n\t0x40c: 0xe00d, 0x40d: 0x0008, 0x40e: 0xe00d, 0x40f: 0x0008, 0x410: 0xe00d, 0x411: 0x0008,\n\t0x412: 0xe00d, 0x413: 0x0008, 0x414: 0xe00d, 0x415: 0x0008, 0x416: 0xe00d, 0x417: 0x0008,\n\t0x418: 0xe00d, 0x419: 0x0008, 0x41a: 0xe00d, 0x41b: 0x0008, 0x41c: 0xe00d, 0x41d: 0x0008,\n\t0x41e: 0xe00d, 0x41f: 0x0008, 0x420: 0xe00d, 0x421: 0x0008, 0x422: 0xe00d, 0x423: 0x0008,\n\t0x424: 0xe00d, 0x425: 0x0008, 0x426: 0xe00d, 0x427: 0x0008, 0x428: 0xe00d, 0x429: 0x0008,\n\t0x42a: 0xe00d, 0x42b: 0x0008, 0x42c: 0xe00d, 0x42d: 0x0008, 0x42e: 0xe00d, 0x42f: 0x0008,\n\t0x430: 0x0040, 0x431: 0x03f5, 0x432: 0x03f5, 0x433: 0x03f5, 0x434: 0x03f5, 0x435: 0x03f5,\n\t0x436: 0x03f5, 0x437: 0x03f5, 0x438: 0x03f5, 0x439: 0x03f5, 0x43a: 0x03f5, 0x43b: 0x03f5,\n\t0x43c: 0x03f5, 0x43d: 0x03f5, 0x43e: 0x03f5, 0x43f: 0x03f5,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x0840, 0x441: 0x0840, 0x442: 0x0840, 0x443: 0x0840, 0x444: 0x0840, 0x445: 0x0840,\n\t0x446: 0x0018, 0x447: 0x0018, 0x448: 0x0818, 0x449: 0x0018, 0x44a: 0x0018, 0x44b: 0x0818,\n\t0x44c: 0x0018, 0x44d: 0x0818, 0x44e: 0x0018, 0x44f: 0x0018, 0x450: 0x3308, 0x451: 0x3308,\n\t0x452: 0x3308, 0x453: 0x3308, 0x454: 0x3308, 0x455: 0x3308, 0x456: 0x3308, 0x457: 0x3308,\n\t0x458: 0x3308, 0x459: 0x3308, 0x45a: 0x3308, 0x45b: 0x0818, 0x45c: 0x0b40, 0x45d: 0x0040,\n\t0x45e: 0x0818, 0x45f: 0x0818, 0x460: 0x0a08, 0x461: 0x0808, 0x462: 0x0c08, 0x463: 0x0c08,\n\t0x464: 0x0c08, 0x465: 0x0c08, 0x466: 0x0a08, 0x467: 0x0c08, 0x468: 0x0a08, 0x469: 0x0c08,\n\t0x46a: 0x0a08, 0x46b: 0x0a08, 0x46c: 0x0a08, 0x46d: 0x0a08, 0x46e: 0x0a08, 0x46f: 0x0c08,\n\t0x470: 0x0c08, 0x471: 0x0c08, 0x472: 0x0c08, 0x473: 0x0a08, 0x474: 0x0a08, 0x475: 0x0a08,\n\t0x476: 0x0a08, 0x477: 0x0a08, 0x478: 0x0a08, 0x479: 0x0a08, 0x47a: 0x0a08, 0x47b: 0x0a08,\n\t0x47c: 0x0a08, 0x47d: 0x0a08, 0x47e: 0x0a08, 0x47f: 0x0a08,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x0818, 0x481: 0x0a08, 0x482: 0x0a08, 0x483: 0x0a08, 0x484: 0x0a08, 0x485: 0x0a08,\n\t0x486: 0x0a08, 0x487: 0x0a08, 0x488: 0x0c08, 0x489: 0x0a08, 0x48a: 0x0a08, 0x48b: 0x3308,\n\t0x48c: 0x3308, 0x48d: 0x3308, 0x48e: 0x3308, 0x48f: 0x3308, 0x490: 0x3308, 0x491: 0x3308,\n\t0x492: 0x3308, 0x493: 0x3308, 0x494: 0x3308, 0x495: 0x3308, 0x496: 0x3308, 0x497: 0x3308,\n\t0x498: 0x3308, 0x499: 0x3308, 0x49a: 0x3308, 0x49b: 0x3308, 0x49c: 0x3308, 0x49d: 0x3308,\n\t0x49e: 0x3308, 0x49f: 0x3308, 0x4a0: 0x0808, 0x4a1: 0x0808, 0x4a2: 0x0808, 0x4a3: 0x0808,\n\t0x4a4: 0x0808, 0x4a5: 0x0808, 0x4a6: 0x0808, 0x4a7: 0x0808, 0x4a8: 0x0808, 0x4a9: 0x0808,\n\t0x4aa: 0x0018, 0x4ab: 0x0818, 0x4ac: 0x0818, 0x4ad: 0x0818, 0x4ae: 0x0a08, 0x4af: 0x0a08,\n\t0x4b0: 0x3308, 0x4b1: 0x0c08, 0x4b2: 0x0c08, 0x4b3: 0x0c08, 0x4b4: 0x0808, 0x4b5: 0x0429,\n\t0x4b6: 0x0451, 0x4b7: 0x0479, 0x4b8: 0x04a1, 0x4b9: 0x0a08, 0x4ba: 0x0a08, 0x4bb: 0x0a08,\n\t0x4bc: 0x0a08, 0x4bd: 0x0a08, 0x4be: 0x0a08, 0x4bf: 0x0a08,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x0c08, 0x4c1: 0x0a08, 0x4c2: 0x0a08, 0x4c3: 0x0c08, 0x4c4: 0x0c08, 0x4c5: 0x0c08,\n\t0x4c6: 0x0c08, 0x4c7: 0x0c08, 0x4c8: 0x0c08, 0x4c9: 0x0c08, 0x4ca: 0x0c08, 0x4cb: 0x0c08,\n\t0x4cc: 0x0a08, 0x4cd: 0x0c08, 0x4ce: 0x0a08, 0x4cf: 0x0c08, 0x4d0: 0x0a08, 0x4d1: 0x0a08,\n\t0x4d2: 0x0c08, 0x4d3: 0x0c08, 0x4d4: 0x0818, 0x4d5: 0x0c08, 0x4d6: 0x3308, 0x4d7: 0x3308,\n\t0x4d8: 0x3308, 0x4d9: 0x3308, 0x4da: 0x3308, 0x4db: 0x3308, 0x4dc: 0x3308, 0x4dd: 0x0840,\n\t0x4de: 0x0018, 0x4df: 0x3308, 0x4e0: 0x3308, 0x4e1: 0x3308, 0x4e2: 0x3308, 0x4e3: 0x3308,\n\t0x4e4: 0x3308, 0x4e5: 0x0808, 0x4e6: 0x0808, 0x4e7: 0x3308, 0x4e8: 0x3308, 0x4e9: 0x0018,\n\t0x4ea: 0x3308, 0x4eb: 0x3308, 0x4ec: 0x3308, 0x4ed: 0x3308, 0x4ee: 0x0c08, 0x4ef: 0x0c08,\n\t0x4f0: 0x0008, 0x4f1: 0x0008, 0x4f2: 0x0008, 0x4f3: 0x0008, 0x4f4: 0x0008, 0x4f5: 0x0008,\n\t0x4f6: 0x0008, 0x4f7: 0x0008, 0x4f8: 0x0008, 0x4f9: 0x0008, 0x4fa: 0x0a08, 0x4fb: 0x0a08,\n\t0x4fc: 0x0a08, 0x4fd: 0x0808, 0x4fe: 0x0808, 0x4ff: 0x0a08,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x0818, 0x501: 0x0818, 0x502: 0x0818, 0x503: 0x0818, 0x504: 0x0818, 0x505: 0x0818,\n\t0x506: 0x0818, 0x507: 0x0818, 0x508: 0x0818, 0x509: 0x0818, 0x50a: 0x0818, 0x50b: 0x0818,\n\t0x50c: 0x0818, 0x50d: 0x0818, 0x50e: 0x0040, 0x50f: 0x0b40, 0x510: 0x0c08, 0x511: 0x3308,\n\t0x512: 0x0a08, 0x513: 0x0a08, 0x514: 0x0a08, 0x515: 0x0c08, 0x516: 0x0c08, 0x517: 0x0c08,\n\t0x518: 0x0c08, 0x519: 0x0c08, 0x51a: 0x0a08, 0x51b: 0x0a08, 0x51c: 0x0a08, 0x51d: 0x0a08,\n\t0x51e: 0x0c08, 0x51f: 0x0a08, 0x520: 0x0a08, 0x521: 0x0a08, 0x522: 0x0a08, 0x523: 0x0a08,\n\t0x524: 0x0a08, 0x525: 0x0a08, 0x526: 0x0a08, 0x527: 0x0a08, 0x528: 0x0c08, 0x529: 0x0a08,\n\t0x52a: 0x0c08, 0x52b: 0x0a08, 0x52c: 0x0c08, 0x52d: 0x0a08, 0x52e: 0x0a08, 0x52f: 0x0c08,\n\t0x530: 0x3308, 0x531: 0x3308, 0x532: 0x3308, 0x533: 0x3308, 0x534: 0x3308, 0x535: 0x3308,\n\t0x536: 0x3308, 0x537: 0x3308, 0x538: 0x3308, 0x539: 0x3308, 0x53a: 0x3308, 0x53b: 0x3308,\n\t0x53c: 0x3308, 0x53d: 0x3308, 0x53e: 0x3308, 0x53f: 0x3308,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x0c08, 0x541: 0x0a08, 0x542: 0x0a08, 0x543: 0x0a08, 0x544: 0x0a08, 0x545: 0x0a08,\n\t0x546: 0x0c08, 0x547: 0x0c08, 0x548: 0x0a08, 0x549: 0x0c08, 0x54a: 0x0a08, 0x54b: 0x0a08,\n\t0x54c: 0x0a08, 0x54d: 0x0a08, 0x54e: 0x0a08, 0x54f: 0x0a08, 0x550: 0x0a08, 0x551: 0x0a08,\n\t0x552: 0x0a08, 0x553: 0x0a08, 0x554: 0x0c08, 0x555: 0x0a08, 0x556: 0x0808, 0x557: 0x0808,\n\t0x558: 0x0808, 0x559: 0x3308, 0x55a: 0x3308, 0x55b: 0x3308, 0x55c: 0x0040, 0x55d: 0x0040,\n\t0x55e: 0x0818, 0x55f: 0x0040, 0x560: 0x0a08, 0x561: 0x0808, 0x562: 0x0a08, 0x563: 0x0a08,\n\t0x564: 0x0a08, 0x565: 0x0a08, 0x566: 0x0808, 0x567: 0x0c08, 0x568: 0x0a08, 0x569: 0x0c08,\n\t0x56a: 0x0c08, 0x56b: 0x0040, 0x56c: 0x0040, 0x56d: 0x0040, 0x56e: 0x0040, 0x56f: 0x0040,\n\t0x570: 0x0040, 0x571: 0x0040, 0x572: 0x0040, 0x573: 0x0040, 0x574: 0x0040, 0x575: 0x0040,\n\t0x576: 0x0040, 0x577: 0x0040, 0x578: 0x0040, 0x579: 0x0040, 0x57a: 0x0040, 0x57b: 0x0040,\n\t0x57c: 0x0040, 0x57d: 0x0040, 0x57e: 0x0040, 0x57f: 0x0040,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x3008, 0x581: 0x3308, 0x582: 0x3308, 0x583: 0x3308, 0x584: 0x3308, 0x585: 0x3308,\n\t0x586: 0x3308, 0x587: 0x3308, 0x588: 0x3308, 0x589: 0x3008, 0x58a: 0x3008, 0x58b: 0x3008,\n\t0x58c: 0x3008, 0x58d: 0x3b08, 0x58e: 0x3008, 0x58f: 0x3008, 0x590: 0x0008, 0x591: 0x3308,\n\t0x592: 0x3308, 0x593: 0x3308, 0x594: 0x3308, 0x595: 0x3308, 0x596: 0x3308, 0x597: 0x3308,\n\t0x598: 0x04c9, 0x599: 0x0501, 0x59a: 0x0539, 0x59b: 0x0571, 0x59c: 0x05a9, 0x59d: 0x05e1,\n\t0x59e: 0x0619, 0x59f: 0x0651, 0x5a0: 0x0008, 0x5a1: 0x0008, 0x5a2: 0x3308, 0x5a3: 0x3308,\n\t0x5a4: 0x0018, 0x5a5: 0x0018, 0x5a6: 0x0008, 0x5a7: 0x0008, 0x5a8: 0x0008, 0x5a9: 0x0008,\n\t0x5aa: 0x0008, 0x5ab: 0x0008, 0x5ac: 0x0008, 0x5ad: 0x0008, 0x5ae: 0x0008, 0x5af: 0x0008,\n\t0x5b0: 0x0018, 0x5b1: 0x0008, 0x5b2: 0x0008, 0x5b3: 0x0008, 0x5b4: 0x0008, 0x5b5: 0x0008,\n\t0x5b6: 0x0008, 0x5b7: 0x0008, 0x5b8: 0x0008, 0x5b9: 0x0008, 0x5ba: 0x0008, 0x5bb: 0x0008,\n\t0x5bc: 0x0008, 0x5bd: 0x0008, 0x5be: 0x0008, 0x5bf: 0x0008,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x0008, 0x5c1: 0x3308, 0x5c2: 0x3008, 0x5c3: 0x3008, 0x5c4: 0x0040, 0x5c5: 0x0008,\n\t0x5c6: 0x0008, 0x5c7: 0x0008, 0x5c8: 0x0008, 0x5c9: 0x0008, 0x5ca: 0x0008, 0x5cb: 0x0008,\n\t0x5cc: 0x0008, 0x5cd: 0x0040, 0x5ce: 0x0040, 0x5cf: 0x0008, 0x5d0: 0x0008, 0x5d1: 0x0040,\n\t0x5d2: 0x0040, 0x5d3: 0x0008, 0x5d4: 0x0008, 0x5d5: 0x0008, 0x5d6: 0x0008, 0x5d7: 0x0008,\n\t0x5d8: 0x0008, 0x5d9: 0x0008, 0x5da: 0x0008, 0x5db: 0x0008, 0x5dc: 0x0008, 0x5dd: 0x0008,\n\t0x5de: 0x0008, 0x5df: 0x0008, 0x5e0: 0x0008, 0x5e1: 0x0008, 0x5e2: 0x0008, 0x5e3: 0x0008,\n\t0x5e4: 0x0008, 0x5e5: 0x0008, 0x5e6: 0x0008, 0x5e7: 0x0008, 0x5e8: 0x0008, 0x5e9: 0x0040,\n\t0x5ea: 0x0008, 0x5eb: 0x0008, 0x5ec: 0x0008, 0x5ed: 0x0008, 0x5ee: 0x0008, 0x5ef: 0x0008,\n\t0x5f0: 0x0008, 0x5f1: 0x0040, 0x5f2: 0x0008, 0x5f3: 0x0040, 0x5f4: 0x0040, 0x5f5: 0x0040,\n\t0x5f6: 0x0008, 0x5f7: 0x0008, 0x5f8: 0x0008, 0x5f9: 0x0008, 0x5fa: 0x0040, 0x5fb: 0x0040,\n\t0x5fc: 0x3308, 0x5fd: 0x0008, 0x5fe: 0x3008, 0x5ff: 0x3008,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x3008, 0x601: 0x3308, 0x602: 0x3308, 0x603: 0x3308, 0x604: 0x3308, 0x605: 0x0040,\n\t0x606: 0x0040, 0x607: 0x3008, 0x608: 0x3008, 0x609: 0x0040, 0x60a: 0x0040, 0x60b: 0x3008,\n\t0x60c: 0x3008, 0x60d: 0x3b08, 0x60e: 0x0008, 0x60f: 0x0040, 0x610: 0x0040, 0x611: 0x0040,\n\t0x612: 0x0040, 0x613: 0x0040, 0x614: 0x0040, 0x615: 0x0040, 0x616: 0x0040, 0x617: 0x3008,\n\t0x618: 0x0040, 0x619: 0x0040, 0x61a: 0x0040, 0x61b: 0x0040, 0x61c: 0x0689, 0x61d: 0x06c1,\n\t0x61e: 0x0040, 0x61f: 0x06f9, 0x620: 0x0008, 0x621: 0x0008, 0x622: 0x3308, 0x623: 0x3308,\n\t0x624: 0x0040, 0x625: 0x0040, 0x626: 0x0008, 0x627: 0x0008, 0x628: 0x0008, 0x629: 0x0008,\n\t0x62a: 0x0008, 0x62b: 0x0008, 0x62c: 0x0008, 0x62d: 0x0008, 0x62e: 0x0008, 0x62f: 0x0008,\n\t0x630: 0x0008, 0x631: 0x0008, 0x632: 0x0018, 0x633: 0x0018, 0x634: 0x0018, 0x635: 0x0018,\n\t0x636: 0x0018, 0x637: 0x0018, 0x638: 0x0018, 0x639: 0x0018, 0x63a: 0x0018, 0x63b: 0x0018,\n\t0x63c: 0x0008, 0x63d: 0x0018, 0x63e: 0x3308, 0x63f: 0x0040,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x0040, 0x641: 0x3308, 0x642: 0x3308, 0x643: 0x3008, 0x644: 0x0040, 0x645: 0x0008,\n\t0x646: 0x0008, 0x647: 0x0008, 0x648: 0x0008, 0x649: 0x0008, 0x64a: 0x0008, 0x64b: 0x0040,\n\t0x64c: 0x0040, 0x64d: 0x0040, 0x64e: 0x0040, 0x64f: 0x0008, 0x650: 0x0008, 0x651: 0x0040,\n\t0x652: 0x0040, 0x653: 0x0008, 0x654: 0x0008, 0x655: 0x0008, 0x656: 0x0008, 0x657: 0x0008,\n\t0x658: 0x0008, 0x659: 0x0008, 0x65a: 0x0008, 0x65b: 0x0008, 0x65c: 0x0008, 0x65d: 0x0008,\n\t0x65e: 0x0008, 0x65f: 0x0008, 0x660: 0x0008, 0x661: 0x0008, 0x662: 0x0008, 0x663: 0x0008,\n\t0x664: 0x0008, 0x665: 0x0008, 0x666: 0x0008, 0x667: 0x0008, 0x668: 0x0008, 0x669: 0x0040,\n\t0x66a: 0x0008, 0x66b: 0x0008, 0x66c: 0x0008, 0x66d: 0x0008, 0x66e: 0x0008, 0x66f: 0x0008,\n\t0x670: 0x0008, 0x671: 0x0040, 0x672: 0x0008, 0x673: 0x0731, 0x674: 0x0040, 0x675: 0x0008,\n\t0x676: 0x0769, 0x677: 0x0040, 0x678: 0x0008, 0x679: 0x0008, 0x67a: 0x0040, 0x67b: 0x0040,\n\t0x67c: 0x3308, 0x67d: 0x0040, 0x67e: 0x3008, 0x67f: 0x3008,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x3008, 0x681: 0x3308, 0x682: 0x3308, 0x683: 0x0040, 0x684: 0x0040, 0x685: 0x0040,\n\t0x686: 0x0040, 0x687: 0x3308, 0x688: 0x3308, 0x689: 0x0040, 0x68a: 0x0040, 0x68b: 0x3308,\n\t0x68c: 0x3308, 0x68d: 0x3b08, 0x68e: 0x0040, 0x68f: 0x0040, 0x690: 0x0040, 0x691: 0x3308,\n\t0x692: 0x0040, 0x693: 0x0040, 0x694: 0x0040, 0x695: 0x0040, 0x696: 0x0040, 0x697: 0x0040,\n\t0x698: 0x0040, 0x699: 0x07a1, 0x69a: 0x07d9, 0x69b: 0x0811, 0x69c: 0x0008, 0x69d: 0x0040,\n\t0x69e: 0x0849, 0x69f: 0x0040, 0x6a0: 0x0040, 0x6a1: 0x0040, 0x6a2: 0x0040, 0x6a3: 0x0040,\n\t0x6a4: 0x0040, 0x6a5: 0x0040, 0x6a6: 0x0008, 0x6a7: 0x0008, 0x6a8: 0x0008, 0x6a9: 0x0008,\n\t0x6aa: 0x0008, 0x6ab: 0x0008, 0x6ac: 0x0008, 0x6ad: 0x0008, 0x6ae: 0x0008, 0x6af: 0x0008,\n\t0x6b0: 0x3308, 0x6b1: 0x3308, 0x6b2: 0x0008, 0x6b3: 0x0008, 0x6b4: 0x0008, 0x6b5: 0x3308,\n\t0x6b6: 0x0018, 0x6b7: 0x0040, 0x6b8: 0x0040, 0x6b9: 0x0040, 0x6ba: 0x0040, 0x6bb: 0x0040,\n\t0x6bc: 0x0040, 0x6bd: 0x0040, 0x6be: 0x0040, 0x6bf: 0x0040,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x0040, 0x6c1: 0x3308, 0x6c2: 0x3308, 0x6c3: 0x3008, 0x6c4: 0x0040, 0x6c5: 0x0008,\n\t0x6c6: 0x0008, 0x6c7: 0x0008, 0x6c8: 0x0008, 0x6c9: 0x0008, 0x6ca: 0x0008, 0x6cb: 0x0008,\n\t0x6cc: 0x0008, 0x6cd: 0x0008, 0x6ce: 0x0040, 0x6cf: 0x0008, 0x6d0: 0x0008, 0x6d1: 0x0008,\n\t0x6d2: 0x0040, 0x6d3: 0x0008, 0x6d4: 0x0008, 0x6d5: 0x0008, 0x6d6: 0x0008, 0x6d7: 0x0008,\n\t0x6d8: 0x0008, 0x6d9: 0x0008, 0x6da: 0x0008, 0x6db: 0x0008, 0x6dc: 0x0008, 0x6dd: 0x0008,\n\t0x6de: 0x0008, 0x6df: 0x0008, 0x6e0: 0x0008, 0x6e1: 0x0008, 0x6e2: 0x0008, 0x6e3: 0x0008,\n\t0x6e4: 0x0008, 0x6e5: 0x0008, 0x6e6: 0x0008, 0x6e7: 0x0008, 0x6e8: 0x0008, 0x6e9: 0x0040,\n\t0x6ea: 0x0008, 0x6eb: 0x0008, 0x6ec: 0x0008, 0x6ed: 0x0008, 0x6ee: 0x0008, 0x6ef: 0x0008,\n\t0x6f0: 0x0008, 0x6f1: 0x0040, 0x6f2: 0x0008, 0x6f3: 0x0008, 0x6f4: 0x0040, 0x6f5: 0x0008,\n\t0x6f6: 0x0008, 0x6f7: 0x0008, 0x6f8: 0x0008, 0x6f9: 0x0008, 0x6fa: 0x0040, 0x6fb: 0x0040,\n\t0x6fc: 0x3308, 0x6fd: 0x0008, 0x6fe: 0x3008, 0x6ff: 0x3008,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x3008, 0x701: 0x3308, 0x702: 0x3308, 0x703: 0x3308, 0x704: 0x3308, 0x705: 0x3308,\n\t0x706: 0x0040, 0x707: 0x3308, 0x708: 0x3308, 0x709: 0x3008, 0x70a: 0x0040, 0x70b: 0x3008,\n\t0x70c: 0x3008, 0x70d: 0x3b08, 0x70e: 0x0040, 0x70f: 0x0040, 0x710: 0x0008, 0x711: 0x0040,\n\t0x712: 0x0040, 0x713: 0x0040, 0x714: 0x0040, 0x715: 0x0040, 0x716: 0x0040, 0x717: 0x0040,\n\t0x718: 0x0040, 0x719: 0x0040, 0x71a: 0x0040, 0x71b: 0x0040, 0x71c: 0x0040, 0x71d: 0x0040,\n\t0x71e: 0x0040, 0x71f: 0x0040, 0x720: 0x0008, 0x721: 0x0008, 0x722: 0x3308, 0x723: 0x3308,\n\t0x724: 0x0040, 0x725: 0x0040, 0x726: 0x0008, 0x727: 0x0008, 0x728: 0x0008, 0x729: 0x0008,\n\t0x72a: 0x0008, 0x72b: 0x0008, 0x72c: 0x0008, 0x72d: 0x0008, 0x72e: 0x0008, 0x72f: 0x0008,\n\t0x730: 0x0018, 0x731: 0x0018, 0x732: 0x0040, 0x733: 0x0040, 0x734: 0x0040, 0x735: 0x0040,\n\t0x736: 0x0040, 0x737: 0x0040, 0x738: 0x0040, 0x739: 0x0008, 0x73a: 0x3308, 0x73b: 0x3308,\n\t0x73c: 0x3308, 0x73d: 0x3308, 0x73e: 0x3308, 0x73f: 0x3308,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0x0040, 0x741: 0x3308, 0x742: 0x3008, 0x743: 0x3008, 0x744: 0x0040, 0x745: 0x0008,\n\t0x746: 0x0008, 0x747: 0x0008, 0x748: 0x0008, 0x749: 0x0008, 0x74a: 0x0008, 0x74b: 0x0008,\n\t0x74c: 0x0008, 0x74d: 0x0040, 0x74e: 0x0040, 0x74f: 0x0008, 0x750: 0x0008, 0x751: 0x0040,\n\t0x752: 0x0040, 0x753: 0x0008, 0x754: 0x0008, 0x755: 0x0008, 0x756: 0x0008, 0x757: 0x0008,\n\t0x758: 0x0008, 0x759: 0x0008, 0x75a: 0x0008, 0x75b: 0x0008, 0x75c: 0x0008, 0x75d: 0x0008,\n\t0x75e: 0x0008, 0x75f: 0x0008, 0x760: 0x0008, 0x761: 0x0008, 0x762: 0x0008, 0x763: 0x0008,\n\t0x764: 0x0008, 0x765: 0x0008, 0x766: 0x0008, 0x767: 0x0008, 0x768: 0x0008, 0x769: 0x0040,\n\t0x76a: 0x0008, 0x76b: 0x0008, 0x76c: 0x0008, 0x76d: 0x0008, 0x76e: 0x0008, 0x76f: 0x0008,\n\t0x770: 0x0008, 0x771: 0x0040, 0x772: 0x0008, 0x773: 0x0008, 0x774: 0x0040, 0x775: 0x0008,\n\t0x776: 0x0008, 0x777: 0x0008, 0x778: 0x0008, 0x779: 0x0008, 0x77a: 0x0040, 0x77b: 0x0040,\n\t0x77c: 0x3308, 0x77d: 0x0008, 0x77e: 0x3008, 0x77f: 0x3308,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0x3008, 0x781: 0x3308, 0x782: 0x3308, 0x783: 0x3308, 0x784: 0x3308, 0x785: 0x0040,\n\t0x786: 0x0040, 0x787: 0x3008, 0x788: 0x3008, 0x789: 0x0040, 0x78a: 0x0040, 0x78b: 0x3008,\n\t0x78c: 0x3008, 0x78d: 0x3b08, 0x78e: 0x0040, 0x78f: 0x0040, 0x790: 0x0040, 0x791: 0x0040,\n\t0x792: 0x0040, 0x793: 0x0040, 0x794: 0x0040, 0x795: 0x0040, 0x796: 0x3308, 0x797: 0x3008,\n\t0x798: 0x0040, 0x799: 0x0040, 0x79a: 0x0040, 0x79b: 0x0040, 0x79c: 0x0881, 0x79d: 0x08b9,\n\t0x79e: 0x0040, 0x79f: 0x0008, 0x7a0: 0x0008, 0x7a1: 0x0008, 0x7a2: 0x3308, 0x7a3: 0x3308,\n\t0x7a4: 0x0040, 0x7a5: 0x0040, 0x7a6: 0x0008, 0x7a7: 0x0008, 0x7a8: 0x0008, 0x7a9: 0x0008,\n\t0x7aa: 0x0008, 0x7ab: 0x0008, 0x7ac: 0x0008, 0x7ad: 0x0008, 0x7ae: 0x0008, 0x7af: 0x0008,\n\t0x7b0: 0x0018, 0x7b1: 0x0008, 0x7b2: 0x0018, 0x7b3: 0x0018, 0x7b4: 0x0018, 0x7b5: 0x0018,\n\t0x7b6: 0x0018, 0x7b7: 0x0018, 0x7b8: 0x0040, 0x7b9: 0x0040, 0x7ba: 0x0040, 0x7bb: 0x0040,\n\t0x7bc: 0x0040, 0x7bd: 0x0040, 0x7be: 0x0040, 0x7bf: 0x0040,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0x0040, 0x7c1: 0x0040, 0x7c2: 0x3308, 0x7c3: 0x0008, 0x7c4: 0x0040, 0x7c5: 0x0008,\n\t0x7c6: 0x0008, 0x7c7: 0x0008, 0x7c8: 0x0008, 0x7c9: 0x0008, 0x7ca: 0x0008, 0x7cb: 0x0040,\n\t0x7cc: 0x0040, 0x7cd: 0x0040, 0x7ce: 0x0008, 0x7cf: 0x0008, 0x7d0: 0x0008, 0x7d1: 0x0040,\n\t0x7d2: 0x0008, 0x7d3: 0x0008, 0x7d4: 0x0008, 0x7d5: 0x0008, 0x7d6: 0x0040, 0x7d7: 0x0040,\n\t0x7d8: 0x0040, 0x7d9: 0x0008, 0x7da: 0x0008, 0x7db: 0x0040, 0x7dc: 0x0008, 0x7dd: 0x0040,\n\t0x7de: 0x0008, 0x7df: 0x0008, 0x7e0: 0x0040, 0x7e1: 0x0040, 0x7e2: 0x0040, 0x7e3: 0x0008,\n\t0x7e4: 0x0008, 0x7e5: 0x0040, 0x7e6: 0x0040, 0x7e7: 0x0040, 0x7e8: 0x0008, 0x7e9: 0x0008,\n\t0x7ea: 0x0008, 0x7eb: 0x0040, 0x7ec: 0x0040, 0x7ed: 0x0040, 0x7ee: 0x0008, 0x7ef: 0x0008,\n\t0x7f0: 0x0008, 0x7f1: 0x0008, 0x7f2: 0x0008, 0x7f3: 0x0008, 0x7f4: 0x0008, 0x7f5: 0x0008,\n\t0x7f6: 0x0008, 0x7f7: 0x0008, 0x7f8: 0x0008, 0x7f9: 0x0008, 0x7fa: 0x0040, 0x7fb: 0x0040,\n\t0x7fc: 0x0040, 0x7fd: 0x0040, 0x7fe: 0x3008, 0x7ff: 0x3008,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x3308, 0x801: 0x3008, 0x802: 0x3008, 0x803: 0x3008, 0x804: 0x3008, 0x805: 0x0040,\n\t0x806: 0x3308, 0x807: 0x3308, 0x808: 0x3308, 0x809: 0x0040, 0x80a: 0x3308, 0x80b: 0x3308,\n\t0x80c: 0x3308, 0x80d: 0x3b08, 0x80e: 0x0040, 0x80f: 0x0040, 0x810: 0x0040, 0x811: 0x0040,\n\t0x812: 0x0040, 0x813: 0x0040, 0x814: 0x0040, 0x815: 0x3308, 0x816: 0x3308, 0x817: 0x0040,\n\t0x818: 0x0008, 0x819: 0x0008, 0x81a: 0x0008, 0x81b: 0x0040, 0x81c: 0x0040, 0x81d: 0x0040,\n\t0x81e: 0x0040, 0x81f: 0x0040, 0x820: 0x0008, 0x821: 0x0008, 0x822: 0x3308, 0x823: 0x3308,\n\t0x824: 0x0040, 0x825: 0x0040, 0x826: 0x0008, 0x827: 0x0008, 0x828: 0x0008, 0x829: 0x0008,\n\t0x82a: 0x0008, 0x82b: 0x0008, 0x82c: 0x0008, 0x82d: 0x0008, 0x82e: 0x0008, 0x82f: 0x0008,\n\t0x830: 0x0040, 0x831: 0x0040, 0x832: 0x0040, 0x833: 0x0040, 0x834: 0x0040, 0x835: 0x0040,\n\t0x836: 0x0040, 0x837: 0x0018, 0x838: 0x0018, 0x839: 0x0018, 0x83a: 0x0018, 0x83b: 0x0018,\n\t0x83c: 0x0018, 0x83d: 0x0018, 0x83e: 0x0018, 0x83f: 0x0018,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x0008, 0x841: 0x3308, 0x842: 0x3008, 0x843: 0x3008, 0x844: 0x0018, 0x845: 0x0008,\n\t0x846: 0x0008, 0x847: 0x0008, 0x848: 0x0008, 0x849: 0x0008, 0x84a: 0x0008, 0x84b: 0x0008,\n\t0x84c: 0x0008, 0x84d: 0x0040, 0x84e: 0x0008, 0x84f: 0x0008, 0x850: 0x0008, 0x851: 0x0040,\n\t0x852: 0x0008, 0x853: 0x0008, 0x854: 0x0008, 0x855: 0x0008, 0x856: 0x0008, 0x857: 0x0008,\n\t0x858: 0x0008, 0x859: 0x0008, 0x85a: 0x0008, 0x85b: 0x0008, 0x85c: 0x0008, 0x85d: 0x0008,\n\t0x85e: 0x0008, 0x85f: 0x0008, 0x860: 0x0008, 0x861: 0x0008, 0x862: 0x0008, 0x863: 0x0008,\n\t0x864: 0x0008, 0x865: 0x0008, 0x866: 0x0008, 0x867: 0x0008, 0x868: 0x0008, 0x869: 0x0040,\n\t0x86a: 0x0008, 0x86b: 0x0008, 0x86c: 0x0008, 0x86d: 0x0008, 0x86e: 0x0008, 0x86f: 0x0008,\n\t0x870: 0x0008, 0x871: 0x0008, 0x872: 0x0008, 0x873: 0x0008, 0x874: 0x0040, 0x875: 0x0008,\n\t0x876: 0x0008, 0x877: 0x0008, 0x878: 0x0008, 0x879: 0x0008, 0x87a: 0x0040, 0x87b: 0x0040,\n\t0x87c: 0x3308, 0x87d: 0x0008, 0x87e: 0x3008, 0x87f: 0x3308,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x3008, 0x881: 0x3008, 0x882: 0x3008, 0x883: 0x3008, 0x884: 0x3008, 0x885: 0x0040,\n\t0x886: 0x3308, 0x887: 0x3008, 0x888: 0x3008, 0x889: 0x0040, 0x88a: 0x3008, 0x88b: 0x3008,\n\t0x88c: 0x3308, 0x88d: 0x3b08, 0x88e: 0x0040, 0x88f: 0x0040, 0x890: 0x0040, 0x891: 0x0040,\n\t0x892: 0x0040, 0x893: 0x0040, 0x894: 0x0040, 0x895: 0x3008, 0x896: 0x3008, 0x897: 0x0040,\n\t0x898: 0x0040, 0x899: 0x0040, 0x89a: 0x0040, 0x89b: 0x0040, 0x89c: 0x0040, 0x89d: 0x0040,\n\t0x89e: 0x0008, 0x89f: 0x0040, 0x8a0: 0x0008, 0x8a1: 0x0008, 0x8a2: 0x3308, 0x8a3: 0x3308,\n\t0x8a4: 0x0040, 0x8a5: 0x0040, 0x8a6: 0x0008, 0x8a7: 0x0008, 0x8a8: 0x0008, 0x8a9: 0x0008,\n\t0x8aa: 0x0008, 0x8ab: 0x0008, 0x8ac: 0x0008, 0x8ad: 0x0008, 0x8ae: 0x0008, 0x8af: 0x0008,\n\t0x8b0: 0x0040, 0x8b1: 0x0008, 0x8b2: 0x0008, 0x8b3: 0x0040, 0x8b4: 0x0040, 0x8b5: 0x0040,\n\t0x8b6: 0x0040, 0x8b7: 0x0040, 0x8b8: 0x0040, 0x8b9: 0x0040, 0x8ba: 0x0040, 0x8bb: 0x0040,\n\t0x8bc: 0x0040, 0x8bd: 0x0040, 0x8be: 0x0040, 0x8bf: 0x0040,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x3008, 0x8c1: 0x3308, 0x8c2: 0x3308, 0x8c3: 0x3308, 0x8c4: 0x3308, 0x8c5: 0x0040,\n\t0x8c6: 0x3008, 0x8c7: 0x3008, 0x8c8: 0x3008, 0x8c9: 0x0040, 0x8ca: 0x3008, 0x8cb: 0x3008,\n\t0x8cc: 0x3008, 0x8cd: 0x3b08, 0x8ce: 0x0008, 0x8cf: 0x0018, 0x8d0: 0x0040, 0x8d1: 0x0040,\n\t0x8d2: 0x0040, 0x8d3: 0x0040, 0x8d4: 0x0008, 0x8d5: 0x0008, 0x8d6: 0x0008, 0x8d7: 0x3008,\n\t0x8d8: 0x0018, 0x8d9: 0x0018, 0x8da: 0x0018, 0x8db: 0x0018, 0x8dc: 0x0018, 0x8dd: 0x0018,\n\t0x8de: 0x0018, 0x8df: 0x0008, 0x8e0: 0x0008, 0x8e1: 0x0008, 0x8e2: 0x3308, 0x8e3: 0x3308,\n\t0x8e4: 0x0040, 0x8e5: 0x0040, 0x8e6: 0x0008, 0x8e7: 0x0008, 0x8e8: 0x0008, 0x8e9: 0x0008,\n\t0x8ea: 0x0008, 0x8eb: 0x0008, 0x8ec: 0x0008, 0x8ed: 0x0008, 0x8ee: 0x0008, 0x8ef: 0x0008,\n\t0x8f0: 0x0018, 0x8f1: 0x0018, 0x8f2: 0x0018, 0x8f3: 0x0018, 0x8f4: 0x0018, 0x8f5: 0x0018,\n\t0x8f6: 0x0018, 0x8f7: 0x0018, 0x8f8: 0x0018, 0x8f9: 0x0018, 0x8fa: 0x0008, 0x8fb: 0x0008,\n\t0x8fc: 0x0008, 0x8fd: 0x0008, 0x8fe: 0x0008, 0x8ff: 0x0008,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x0040, 0x901: 0x0008, 0x902: 0x0008, 0x903: 0x0040, 0x904: 0x0008, 0x905: 0x0040,\n\t0x906: 0x0008, 0x907: 0x0008, 0x908: 0x0008, 0x909: 0x0008, 0x90a: 0x0008, 0x90b: 0x0040,\n\t0x90c: 0x0008, 0x90d: 0x0008, 0x90e: 0x0008, 0x90f: 0x0008, 0x910: 0x0008, 0x911: 0x0008,\n\t0x912: 0x0008, 0x913: 0x0008, 0x914: 0x0008, 0x915: 0x0008, 0x916: 0x0008, 0x917: 0x0008,\n\t0x918: 0x0008, 0x919: 0x0008, 0x91a: 0x0008, 0x91b: 0x0008, 0x91c: 0x0008, 0x91d: 0x0008,\n\t0x91e: 0x0008, 0x91f: 0x0008, 0x920: 0x0008, 0x921: 0x0008, 0x922: 0x0008, 0x923: 0x0008,\n\t0x924: 0x0040, 0x925: 0x0008, 0x926: 0x0040, 0x927: 0x0008, 0x928: 0x0008, 0x929: 0x0008,\n\t0x92a: 0x0008, 0x92b: 0x0008, 0x92c: 0x0008, 0x92d: 0x0008, 0x92e: 0x0008, 0x92f: 0x0008,\n\t0x930: 0x0008, 0x931: 0x3308, 0x932: 0x0008, 0x933: 0x0929, 0x934: 0x3308, 0x935: 0x3308,\n\t0x936: 0x3308, 0x937: 0x3308, 0x938: 0x3308, 0x939: 0x3308, 0x93a: 0x3b08, 0x93b: 0x3308,\n\t0x93c: 0x3308, 0x93d: 0x0008, 0x93e: 0x0040, 0x93f: 0x0040,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x0008, 0x941: 0x0008, 0x942: 0x0008, 0x943: 0x09d1, 0x944: 0x0008, 0x945: 0x0008,\n\t0x946: 0x0008, 0x947: 0x0008, 0x948: 0x0040, 0x949: 0x0008, 0x94a: 0x0008, 0x94b: 0x0008,\n\t0x94c: 0x0008, 0x94d: 0x0a09, 0x94e: 0x0008, 0x94f: 0x0008, 0x950: 0x0008, 0x951: 0x0008,\n\t0x952: 0x0a41, 0x953: 0x0008, 0x954: 0x0008, 0x955: 0x0008, 0x956: 0x0008, 0x957: 0x0a79,\n\t0x958: 0x0008, 0x959: 0x0008, 0x95a: 0x0008, 0x95b: 0x0008, 0x95c: 0x0ab1, 0x95d: 0x0008,\n\t0x95e: 0x0008, 0x95f: 0x0008, 0x960: 0x0008, 0x961: 0x0008, 0x962: 0x0008, 0x963: 0x0008,\n\t0x964: 0x0008, 0x965: 0x0008, 0x966: 0x0008, 0x967: 0x0008, 0x968: 0x0008, 0x969: 0x0ae9,\n\t0x96a: 0x0008, 0x96b: 0x0008, 0x96c: 0x0008, 0x96d: 0x0040, 0x96e: 0x0040, 0x96f: 0x0040,\n\t0x970: 0x0040, 0x971: 0x3308, 0x972: 0x3308, 0x973: 0x0b21, 0x974: 0x3308, 0x975: 0x0b59,\n\t0x976: 0x0b91, 0x977: 0x0bc9, 0x978: 0x0c19, 0x979: 0x0c51, 0x97a: 0x3308, 0x97b: 0x3308,\n\t0x97c: 0x3308, 0x97d: 0x3308, 0x97e: 0x3308, 0x97f: 0x3008,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x3308, 0x981: 0x0ca1, 0x982: 0x3308, 0x983: 0x3308, 0x984: 0x3b08, 0x985: 0x0018,\n\t0x986: 0x3308, 0x987: 0x3308, 0x988: 0x0008, 0x989: 0x0008, 0x98a: 0x0008, 0x98b: 0x0008,\n\t0x98c: 0x0008, 0x98d: 0x3308, 0x98e: 0x3308, 0x98f: 0x3308, 0x990: 0x3308, 0x991: 0x3308,\n\t0x992: 0x3308, 0x993: 0x0cd9, 0x994: 0x3308, 0x995: 0x3308, 0x996: 0x3308, 0x997: 0x3308,\n\t0x998: 0x0040, 0x999: 0x3308, 0x99a: 0x3308, 0x99b: 0x3308, 0x99c: 0x3308, 0x99d: 0x0d11,\n\t0x99e: 0x3308, 0x99f: 0x3308, 0x9a0: 0x3308, 0x9a1: 0x3308, 0x9a2: 0x0d49, 0x9a3: 0x3308,\n\t0x9a4: 0x3308, 0x9a5: 0x3308, 0x9a6: 0x3308, 0x9a7: 0x0d81, 0x9a8: 0x3308, 0x9a9: 0x3308,\n\t0x9aa: 0x3308, 0x9ab: 0x3308, 0x9ac: 0x0db9, 0x9ad: 0x3308, 0x9ae: 0x3308, 0x9af: 0x3308,\n\t0x9b0: 0x3308, 0x9b1: 0x3308, 0x9b2: 0x3308, 0x9b3: 0x3308, 0x9b4: 0x3308, 0x9b5: 0x3308,\n\t0x9b6: 0x3308, 0x9b7: 0x3308, 0x9b8: 0x3308, 0x9b9: 0x0df1, 0x9ba: 0x3308, 0x9bb: 0x3308,\n\t0x9bc: 0x3308, 0x9bd: 0x0040, 0x9be: 0x0018, 0x9bf: 0x0018,\n\t// Block 0x27, offset 0x9c0\n\t0x9c0: 0x0008, 0x9c1: 0x0008, 0x9c2: 0x0008, 0x9c3: 0x0008, 0x9c4: 0x0008, 0x9c5: 0x0008,\n\t0x9c6: 0x0008, 0x9c7: 0x0008, 0x9c8: 0x0008, 0x9c9: 0x0008, 0x9ca: 0x0008, 0x9cb: 0x0008,\n\t0x9cc: 0x0008, 0x9cd: 0x0008, 0x9ce: 0x0008, 0x9cf: 0x0008, 0x9d0: 0x0008, 0x9d1: 0x0008,\n\t0x9d2: 0x0008, 0x9d3: 0x0008, 0x9d4: 0x0008, 0x9d5: 0x0008, 0x9d6: 0x0008, 0x9d7: 0x0008,\n\t0x9d8: 0x0008, 0x9d9: 0x0008, 0x9da: 0x0008, 0x9db: 0x0008, 0x9dc: 0x0008, 0x9dd: 0x0008,\n\t0x9de: 0x0008, 0x9df: 0x0008, 0x9e0: 0x0008, 0x9e1: 0x0008, 0x9e2: 0x0008, 0x9e3: 0x0008,\n\t0x9e4: 0x0008, 0x9e5: 0x0008, 0x9e6: 0x0008, 0x9e7: 0x0008, 0x9e8: 0x0008, 0x9e9: 0x0008,\n\t0x9ea: 0x0008, 0x9eb: 0x0008, 0x9ec: 0x0039, 0x9ed: 0x0ed1, 0x9ee: 0x0ee9, 0x9ef: 0x0008,\n\t0x9f0: 0x0ef9, 0x9f1: 0x0f09, 0x9f2: 0x0f19, 0x9f3: 0x0f31, 0x9f4: 0x0249, 0x9f5: 0x0f41,\n\t0x9f6: 0x0259, 0x9f7: 0x0f51, 0x9f8: 0x0359, 0x9f9: 0x0f61, 0x9fa: 0x0f71, 0x9fb: 0x0008,\n\t0x9fc: 0x00d9, 0x9fd: 0x0f81, 0x9fe: 0x0f99, 0x9ff: 0x0269,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x0fa9, 0xa01: 0x0fb9, 0xa02: 0x0279, 0xa03: 0x0039, 0xa04: 0x0fc9, 0xa05: 0x0fe1,\n\t0xa06: 0x05b5, 0xa07: 0x0ee9, 0xa08: 0x0ef9, 0xa09: 0x0f09, 0xa0a: 0x0ff9, 0xa0b: 0x1011,\n\t0xa0c: 0x1029, 0xa0d: 0x0f31, 0xa0e: 0x0008, 0xa0f: 0x0f51, 0xa10: 0x0f61, 0xa11: 0x1041,\n\t0xa12: 0x00d9, 0xa13: 0x1059, 0xa14: 0x05cd, 0xa15: 0x05cd, 0xa16: 0x0f99, 0xa17: 0x0fa9,\n\t0xa18: 0x0fb9, 0xa19: 0x05b5, 0xa1a: 0x1071, 0xa1b: 0x1089, 0xa1c: 0x05e5, 0xa1d: 0x1099,\n\t0xa1e: 0x10b1, 0xa1f: 0x10c9, 0xa20: 0x10e1, 0xa21: 0x10f9, 0xa22: 0x0f41, 0xa23: 0x0269,\n\t0xa24: 0x0fb9, 0xa25: 0x1089, 0xa26: 0x1099, 0xa27: 0x10b1, 0xa28: 0x1111, 0xa29: 0x10e1,\n\t0xa2a: 0x10f9, 0xa2b: 0x0008, 0xa2c: 0x0008, 0xa2d: 0x0008, 0xa2e: 0x0008, 0xa2f: 0x0008,\n\t0xa30: 0x0008, 0xa31: 0x0008, 0xa32: 0x0008, 0xa33: 0x0008, 0xa34: 0x0008, 0xa35: 0x0008,\n\t0xa36: 0x0008, 0xa37: 0x0008, 0xa38: 0x1129, 0xa39: 0x0008, 0xa3a: 0x0008, 0xa3b: 0x0008,\n\t0xa3c: 0x0008, 0xa3d: 0x0008, 0xa3e: 0x0008, 0xa3f: 0x0008,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0x0008, 0xa41: 0x0008, 0xa42: 0x0008, 0xa43: 0x0008, 0xa44: 0x0008, 0xa45: 0x0008,\n\t0xa46: 0x0008, 0xa47: 0x0008, 0xa48: 0x0008, 0xa49: 0x0008, 0xa4a: 0x0008, 0xa4b: 0x0008,\n\t0xa4c: 0x0008, 0xa4d: 0x0008, 0xa4e: 0x0008, 0xa4f: 0x0008, 0xa50: 0x0008, 0xa51: 0x0008,\n\t0xa52: 0x0008, 0xa53: 0x0008, 0xa54: 0x0008, 0xa55: 0x0008, 0xa56: 0x0008, 0xa57: 0x0008,\n\t0xa58: 0x0008, 0xa59: 0x0008, 0xa5a: 0x0008, 0xa5b: 0x1141, 0xa5c: 0x1159, 0xa5d: 0x1169,\n\t0xa5e: 0x1181, 0xa5f: 0x1029, 0xa60: 0x1199, 0xa61: 0x11a9, 0xa62: 0x11c1, 0xa63: 0x11d9,\n\t0xa64: 0x11f1, 0xa65: 0x1209, 0xa66: 0x1221, 0xa67: 0x05fd, 0xa68: 0x1239, 0xa69: 0x1251,\n\t0xa6a: 0xe17d, 0xa6b: 0x1269, 0xa6c: 0x1281, 0xa6d: 0x1299, 0xa6e: 0x12b1, 0xa6f: 0x12c9,\n\t0xa70: 0x12e1, 0xa71: 0x12f9, 0xa72: 0x1311, 0xa73: 0x1329, 0xa74: 0x1341, 0xa75: 0x1359,\n\t0xa76: 0x1371, 0xa77: 0x1389, 0xa78: 0x0615, 0xa79: 0x13a1, 0xa7a: 0x13b9, 0xa7b: 0x13d1,\n\t0xa7c: 0x13e1, 0xa7d: 0x13f9, 0xa7e: 0x1411, 0xa7f: 0x1429,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0xe00d, 0xa81: 0x0008, 0xa82: 0xe00d, 0xa83: 0x0008, 0xa84: 0xe00d, 0xa85: 0x0008,\n\t0xa86: 0xe00d, 0xa87: 0x0008, 0xa88: 0xe00d, 0xa89: 0x0008, 0xa8a: 0xe00d, 0xa8b: 0x0008,\n\t0xa8c: 0xe00d, 0xa8d: 0x0008, 0xa8e: 0xe00d, 0xa8f: 0x0008, 0xa90: 0xe00d, 0xa91: 0x0008,\n\t0xa92: 0xe00d, 0xa93: 0x0008, 0xa94: 0xe00d, 0xa95: 0x0008, 0xa96: 0xe00d, 0xa97: 0x0008,\n\t0xa98: 0xe00d, 0xa99: 0x0008, 0xa9a: 0xe00d, 0xa9b: 0x0008, 0xa9c: 0xe00d, 0xa9d: 0x0008,\n\t0xa9e: 0xe00d, 0xa9f: 0x0008, 0xaa0: 0xe00d, 0xaa1: 0x0008, 0xaa2: 0xe00d, 0xaa3: 0x0008,\n\t0xaa4: 0xe00d, 0xaa5: 0x0008, 0xaa6: 0xe00d, 0xaa7: 0x0008, 0xaa8: 0xe00d, 0xaa9: 0x0008,\n\t0xaaa: 0xe00d, 0xaab: 0x0008, 0xaac: 0xe00d, 0xaad: 0x0008, 0xaae: 0xe00d, 0xaaf: 0x0008,\n\t0xab0: 0xe00d, 0xab1: 0x0008, 0xab2: 0xe00d, 0xab3: 0x0008, 0xab4: 0xe00d, 0xab5: 0x0008,\n\t0xab6: 0xe00d, 0xab7: 0x0008, 0xab8: 0xe00d, 0xab9: 0x0008, 0xaba: 0xe00d, 0xabb: 0x0008,\n\t0xabc: 0xe00d, 0xabd: 0x0008, 0xabe: 0xe00d, 0xabf: 0x0008,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0xe00d, 0xac1: 0x0008, 0xac2: 0xe00d, 0xac3: 0x0008, 0xac4: 0xe00d, 0xac5: 0x0008,\n\t0xac6: 0xe00d, 0xac7: 0x0008, 0xac8: 0xe00d, 0xac9: 0x0008, 0xaca: 0xe00d, 0xacb: 0x0008,\n\t0xacc: 0xe00d, 0xacd: 0x0008, 0xace: 0xe00d, 0xacf: 0x0008, 0xad0: 0xe00d, 0xad1: 0x0008,\n\t0xad2: 0xe00d, 0xad3: 0x0008, 0xad4: 0xe00d, 0xad5: 0x0008, 0xad6: 0x0008, 0xad7: 0x0008,\n\t0xad8: 0x0008, 0xad9: 0x0008, 0xada: 0x062d, 0xadb: 0x064d, 0xadc: 0x0008, 0xadd: 0x0008,\n\t0xade: 0x1441, 0xadf: 0x0008, 0xae0: 0xe00d, 0xae1: 0x0008, 0xae2: 0xe00d, 0xae3: 0x0008,\n\t0xae4: 0xe00d, 0xae5: 0x0008, 0xae6: 0xe00d, 0xae7: 0x0008, 0xae8: 0xe00d, 0xae9: 0x0008,\n\t0xaea: 0xe00d, 0xaeb: 0x0008, 0xaec: 0xe00d, 0xaed: 0x0008, 0xaee: 0xe00d, 0xaef: 0x0008,\n\t0xaf0: 0xe00d, 0xaf1: 0x0008, 0xaf2: 0xe00d, 0xaf3: 0x0008, 0xaf4: 0xe00d, 0xaf5: 0x0008,\n\t0xaf6: 0xe00d, 0xaf7: 0x0008, 0xaf8: 0xe00d, 0xaf9: 0x0008, 0xafa: 0xe00d, 0xafb: 0x0008,\n\t0xafc: 0xe00d, 0xafd: 0x0008, 0xafe: 0xe00d, 0xaff: 0x0008,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0x0008, 0xb01: 0x0008, 0xb02: 0x0008, 0xb03: 0x0008, 0xb04: 0x0008, 0xb05: 0x0008,\n\t0xb06: 0x0040, 0xb07: 0x0040, 0xb08: 0xe045, 0xb09: 0xe045, 0xb0a: 0xe045, 0xb0b: 0xe045,\n\t0xb0c: 0xe045, 0xb0d: 0xe045, 0xb0e: 0x0040, 0xb0f: 0x0040, 0xb10: 0x0008, 0xb11: 0x0008,\n\t0xb12: 0x0008, 0xb13: 0x0008, 0xb14: 0x0008, 0xb15: 0x0008, 0xb16: 0x0008, 0xb17: 0x0008,\n\t0xb18: 0x0040, 0xb19: 0xe045, 0xb1a: 0x0040, 0xb1b: 0xe045, 0xb1c: 0x0040, 0xb1d: 0xe045,\n\t0xb1e: 0x0040, 0xb1f: 0xe045, 0xb20: 0x0008, 0xb21: 0x0008, 0xb22: 0x0008, 0xb23: 0x0008,\n\t0xb24: 0x0008, 0xb25: 0x0008, 0xb26: 0x0008, 0xb27: 0x0008, 0xb28: 0xe045, 0xb29: 0xe045,\n\t0xb2a: 0xe045, 0xb2b: 0xe045, 0xb2c: 0xe045, 0xb2d: 0xe045, 0xb2e: 0xe045, 0xb2f: 0xe045,\n\t0xb30: 0x0008, 0xb31: 0x1459, 0xb32: 0x0008, 0xb33: 0x1471, 0xb34: 0x0008, 0xb35: 0x1489,\n\t0xb36: 0x0008, 0xb37: 0x14a1, 0xb38: 0x0008, 0xb39: 0x14b9, 0xb3a: 0x0008, 0xb3b: 0x14d1,\n\t0xb3c: 0x0008, 0xb3d: 0x14e9, 0xb3e: 0x0040, 0xb3f: 0x0040,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x1501, 0xb41: 0x1531, 0xb42: 0x1561, 0xb43: 0x1591, 0xb44: 0x15c1, 0xb45: 0x15f1,\n\t0xb46: 0x1621, 0xb47: 0x1651, 0xb48: 0x1501, 0xb49: 0x1531, 0xb4a: 0x1561, 0xb4b: 0x1591,\n\t0xb4c: 0x15c1, 0xb4d: 0x15f1, 0xb4e: 0x1621, 0xb4f: 0x1651, 0xb50: 0x1681, 0xb51: 0x16b1,\n\t0xb52: 0x16e1, 0xb53: 0x1711, 0xb54: 0x1741, 0xb55: 0x1771, 0xb56: 0x17a1, 0xb57: 0x17d1,\n\t0xb58: 0x1681, 0xb59: 0x16b1, 0xb5a: 0x16e1, 0xb5b: 0x1711, 0xb5c: 0x1741, 0xb5d: 0x1771,\n\t0xb5e: 0x17a1, 0xb5f: 0x17d1, 0xb60: 0x1801, 0xb61: 0x1831, 0xb62: 0x1861, 0xb63: 0x1891,\n\t0xb64: 0x18c1, 0xb65: 0x18f1, 0xb66: 0x1921, 0xb67: 0x1951, 0xb68: 0x1801, 0xb69: 0x1831,\n\t0xb6a: 0x1861, 0xb6b: 0x1891, 0xb6c: 0x18c1, 0xb6d: 0x18f1, 0xb6e: 0x1921, 0xb6f: 0x1951,\n\t0xb70: 0x0008, 0xb71: 0x0008, 0xb72: 0x1981, 0xb73: 0x19b1, 0xb74: 0x19d9, 0xb75: 0x0040,\n\t0xb76: 0x0008, 0xb77: 0x1a01, 0xb78: 0xe045, 0xb79: 0xe045, 0xb7a: 0x0665, 0xb7b: 0x1459,\n\t0xb7c: 0x19b1, 0xb7d: 0x067e, 0xb7e: 0x1a31, 0xb7f: 0x069e,\n\t// Block 0x2e, offset 0xb80\n\t0xb80: 0x06be, 0xb81: 0x1a4a, 0xb82: 0x1a79, 0xb83: 0x1aa9, 0xb84: 0x1ad1, 0xb85: 0x0040,\n\t0xb86: 0x0008, 0xb87: 0x1af9, 0xb88: 0x06dd, 0xb89: 0x1471, 0xb8a: 0x06f5, 0xb8b: 0x1489,\n\t0xb8c: 0x1aa9, 0xb8d: 0x1b2a, 0xb8e: 0x1b5a, 0xb8f: 0x1b8a, 0xb90: 0x0008, 0xb91: 0x0008,\n\t0xb92: 0x0008, 0xb93: 0x1bb9, 0xb94: 0x0040, 0xb95: 0x0040, 0xb96: 0x0008, 0xb97: 0x0008,\n\t0xb98: 0xe045, 0xb99: 0xe045, 0xb9a: 0x070d, 0xb9b: 0x14a1, 0xb9c: 0x0040, 0xb9d: 0x1bd2,\n\t0xb9e: 0x1c02, 0xb9f: 0x1c32, 0xba0: 0x0008, 0xba1: 0x0008, 0xba2: 0x0008, 0xba3: 0x1c61,\n\t0xba4: 0x0008, 0xba5: 0x0008, 0xba6: 0x0008, 0xba7: 0x0008, 0xba8: 0xe045, 0xba9: 0xe045,\n\t0xbaa: 0x0725, 0xbab: 0x14d1, 0xbac: 0xe04d, 0xbad: 0x1c7a, 0xbae: 0x03d2, 0xbaf: 0x1caa,\n\t0xbb0: 0x0040, 0xbb1: 0x0040, 0xbb2: 0x1cb9, 0xbb3: 0x1ce9, 0xbb4: 0x1d11, 0xbb5: 0x0040,\n\t0xbb6: 0x0008, 0xbb7: 0x1d39, 0xbb8: 0x073d, 0xbb9: 0x14b9, 0xbba: 0x0515, 0xbbb: 0x14e9,\n\t0xbbc: 0x1ce9, 0xbbd: 0x0756, 0xbbe: 0x0776, 0xbbf: 0x0040,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc0: 0x000a, 0xbc1: 0x000a, 0xbc2: 0x000a, 0xbc3: 0x000a, 0xbc4: 0x000a, 0xbc5: 0x000a,\n\t0xbc6: 0x000a, 0xbc7: 0x000a, 0xbc8: 0x000a, 0xbc9: 0x000a, 0xbca: 0x000a, 0xbcb: 0x03c0,\n\t0xbcc: 0x0003, 0xbcd: 0x0003, 0xbce: 0x0340, 0xbcf: 0x0b40, 0xbd0: 0x0018, 0xbd1: 0xe00d,\n\t0xbd2: 0x0018, 0xbd3: 0x0018, 0xbd4: 0x0018, 0xbd5: 0x0018, 0xbd6: 0x0018, 0xbd7: 0x0796,\n\t0xbd8: 0x0018, 0xbd9: 0x0018, 0xbda: 0x0018, 0xbdb: 0x0018, 0xbdc: 0x0018, 0xbdd: 0x0018,\n\t0xbde: 0x0018, 0xbdf: 0x0018, 0xbe0: 0x0018, 0xbe1: 0x0018, 0xbe2: 0x0018, 0xbe3: 0x0018,\n\t0xbe4: 0x0040, 0xbe5: 0x0040, 0xbe6: 0x0040, 0xbe7: 0x0018, 0xbe8: 0x0040, 0xbe9: 0x0040,\n\t0xbea: 0x0340, 0xbeb: 0x0340, 0xbec: 0x0340, 0xbed: 0x0340, 0xbee: 0x0340, 0xbef: 0x000a,\n\t0xbf0: 0x0018, 0xbf1: 0x0018, 0xbf2: 0x0018, 0xbf3: 0x1d69, 0xbf4: 0x1da1, 0xbf5: 0x0018,\n\t0xbf6: 0x1df1, 0xbf7: 0x1e29, 0xbf8: 0x0018, 0xbf9: 0x0018, 0xbfa: 0x0018, 0xbfb: 0x0018,\n\t0xbfc: 0x1e7a, 0xbfd: 0x0018, 0xbfe: 0x07b6, 0xbff: 0x0018,\n\t// Block 0x30, offset 0xc00\n\t0xc00: 0x0018, 0xc01: 0x0018, 0xc02: 0x0018, 0xc03: 0x0018, 0xc04: 0x0018, 0xc05: 0x0018,\n\t0xc06: 0x0018, 0xc07: 0x1e92, 0xc08: 0x1eaa, 0xc09: 0x1ec2, 0xc0a: 0x0018, 0xc0b: 0x0018,\n\t0xc0c: 0x0018, 0xc0d: 0x0018, 0xc0e: 0x0018, 0xc0f: 0x0018, 0xc10: 0x0018, 0xc11: 0x0018,\n\t0xc12: 0x0018, 0xc13: 0x0018, 0xc14: 0x0018, 0xc15: 0x0018, 0xc16: 0x0018, 0xc17: 0x1ed9,\n\t0xc18: 0x0018, 0xc19: 0x0018, 0xc1a: 0x0018, 0xc1b: 0x0018, 0xc1c: 0x0018, 0xc1d: 0x0018,\n\t0xc1e: 0x0018, 0xc1f: 0x000a, 0xc20: 0x03c0, 0xc21: 0x0340, 0xc22: 0x0340, 0xc23: 0x0340,\n\t0xc24: 0x03c0, 0xc25: 0x0040, 0xc26: 0x0040, 0xc27: 0x0040, 0xc28: 0x0040, 0xc29: 0x0040,\n\t0xc2a: 0x0340, 0xc2b: 0x0340, 0xc2c: 0x0340, 0xc2d: 0x0340, 0xc2e: 0x0340, 0xc2f: 0x0340,\n\t0xc30: 0x1f41, 0xc31: 0x0f41, 0xc32: 0x0040, 0xc33: 0x0040, 0xc34: 0x1f51, 0xc35: 0x1f61,\n\t0xc36: 0x1f71, 0xc37: 0x1f81, 0xc38: 0x1f91, 0xc39: 0x1fa1, 0xc3a: 0x1fb2, 0xc3b: 0x07d5,\n\t0xc3c: 0x1fc2, 0xc3d: 0x1fd2, 0xc3e: 0x1fe2, 0xc3f: 0x0f71,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x1f41, 0xc41: 0x00c9, 0xc42: 0x0069, 0xc43: 0x0079, 0xc44: 0x1f51, 0xc45: 0x1f61,\n\t0xc46: 0x1f71, 0xc47: 0x1f81, 0xc48: 0x1f91, 0xc49: 0x1fa1, 0xc4a: 0x1fb2, 0xc4b: 0x07ed,\n\t0xc4c: 0x1fc2, 0xc4d: 0x1fd2, 0xc4e: 0x1fe2, 0xc4f: 0x0040, 0xc50: 0x0039, 0xc51: 0x0f09,\n\t0xc52: 0x00d9, 0xc53: 0x0369, 0xc54: 0x0ff9, 0xc55: 0x0249, 0xc56: 0x0f51, 0xc57: 0x0359,\n\t0xc58: 0x0f61, 0xc59: 0x0f71, 0xc5a: 0x0f99, 0xc5b: 0x01d9, 0xc5c: 0x0fa9, 0xc5d: 0x0040,\n\t0xc5e: 0x0040, 0xc5f: 0x0040, 0xc60: 0x0018, 0xc61: 0x0018, 0xc62: 0x0018, 0xc63: 0x0018,\n\t0xc64: 0x0018, 0xc65: 0x0018, 0xc66: 0x0018, 0xc67: 0x0018, 0xc68: 0x1ff1, 0xc69: 0x0018,\n\t0xc6a: 0x0018, 0xc6b: 0x0018, 0xc6c: 0x0018, 0xc6d: 0x0018, 0xc6e: 0x0018, 0xc6f: 0x0018,\n\t0xc70: 0x0018, 0xc71: 0x0018, 0xc72: 0x0018, 0xc73: 0x0018, 0xc74: 0x0018, 0xc75: 0x0018,\n\t0xc76: 0x0018, 0xc77: 0x0018, 0xc78: 0x0018, 0xc79: 0x0018, 0xc7a: 0x0018, 0xc7b: 0x0018,\n\t0xc7c: 0x0018, 0xc7d: 0x0018, 0xc7e: 0x0018, 0xc7f: 0x0018,\n\t// Block 0x32, offset 0xc80\n\t0xc80: 0x0806, 0xc81: 0x0826, 0xc82: 0x1159, 0xc83: 0x0845, 0xc84: 0x0018, 0xc85: 0x0866,\n\t0xc86: 0x0886, 0xc87: 0x1011, 0xc88: 0x0018, 0xc89: 0x08a5, 0xc8a: 0x0f31, 0xc8b: 0x0249,\n\t0xc8c: 0x0249, 0xc8d: 0x0249, 0xc8e: 0x0249, 0xc8f: 0x2009, 0xc90: 0x0f41, 0xc91: 0x0f41,\n\t0xc92: 0x0359, 0xc93: 0x0359, 0xc94: 0x0018, 0xc95: 0x0f71, 0xc96: 0x2021, 0xc97: 0x0018,\n\t0xc98: 0x0018, 0xc99: 0x0f99, 0xc9a: 0x2039, 0xc9b: 0x0269, 0xc9c: 0x0269, 0xc9d: 0x0269,\n\t0xc9e: 0x0018, 0xc9f: 0x0018, 0xca0: 0x2049, 0xca1: 0x08c5, 0xca2: 0x2061, 0xca3: 0x0018,\n\t0xca4: 0x13d1, 0xca5: 0x0018, 0xca6: 0x2079, 0xca7: 0x0018, 0xca8: 0x13d1, 0xca9: 0x0018,\n\t0xcaa: 0x0f51, 0xcab: 0x2091, 0xcac: 0x0ee9, 0xcad: 0x1159, 0xcae: 0x0018, 0xcaf: 0x0f09,\n\t0xcb0: 0x0f09, 0xcb1: 0x1199, 0xcb2: 0x0040, 0xcb3: 0x0f61, 0xcb4: 0x00d9, 0xcb5: 0x20a9,\n\t0xcb6: 0x20c1, 0xcb7: 0x20d9, 0xcb8: 0x20f1, 0xcb9: 0x0f41, 0xcba: 0x0018, 0xcbb: 0x08e5,\n\t0xcbc: 0x2109, 0xcbd: 0x10b1, 0xcbe: 0x10b1, 0xcbf: 0x2109,\n\t// Block 0x33, offset 0xcc0\n\t0xcc0: 0x0905, 0xcc1: 0x0018, 0xcc2: 0x0018, 0xcc3: 0x0018, 0xcc4: 0x0018, 0xcc5: 0x0ef9,\n\t0xcc6: 0x0ef9, 0xcc7: 0x0f09, 0xcc8: 0x0f41, 0xcc9: 0x0259, 0xcca: 0x0018, 0xccb: 0x0018,\n\t0xccc: 0x0018, 0xccd: 0x0018, 0xcce: 0x0008, 0xccf: 0x0018, 0xcd0: 0x2121, 0xcd1: 0x2151,\n\t0xcd2: 0x2181, 0xcd3: 0x21b9, 0xcd4: 0x21e9, 0xcd5: 0x2219, 0xcd6: 0x2249, 0xcd7: 0x2279,\n\t0xcd8: 0x22a9, 0xcd9: 0x22d9, 0xcda: 0x2309, 0xcdb: 0x2339, 0xcdc: 0x2369, 0xcdd: 0x2399,\n\t0xcde: 0x23c9, 0xcdf: 0x23f9, 0xce0: 0x0f41, 0xce1: 0x2421, 0xce2: 0x091d, 0xce3: 0x2439,\n\t0xce4: 0x1089, 0xce5: 0x2451, 0xce6: 0x093d, 0xce7: 0x2469, 0xce8: 0x2491, 0xce9: 0x0369,\n\t0xcea: 0x24a9, 0xceb: 0x095d, 0xcec: 0x0359, 0xced: 0x1159, 0xcee: 0x0ef9, 0xcef: 0x0f61,\n\t0xcf0: 0x0f41, 0xcf1: 0x2421, 0xcf2: 0x097d, 0xcf3: 0x2439, 0xcf4: 0x1089, 0xcf5: 0x2451,\n\t0xcf6: 0x099d, 0xcf7: 0x2469, 0xcf8: 0x2491, 0xcf9: 0x0369, 0xcfa: 0x24a9, 0xcfb: 0x09bd,\n\t0xcfc: 0x0359, 0xcfd: 0x1159, 0xcfe: 0x0ef9, 0xcff: 0x0f61,\n\t// Block 0x34, offset 0xd00\n\t0xd00: 0x0018, 0xd01: 0x0018, 0xd02: 0x0018, 0xd03: 0x0018, 0xd04: 0x0018, 0xd05: 0x0018,\n\t0xd06: 0x0018, 0xd07: 0x0018, 0xd08: 0x0018, 0xd09: 0x0018, 0xd0a: 0x0018, 0xd0b: 0x0040,\n\t0xd0c: 0x0040, 0xd0d: 0x0040, 0xd0e: 0x0040, 0xd0f: 0x0040, 0xd10: 0x0040, 0xd11: 0x0040,\n\t0xd12: 0x0040, 0xd13: 0x0040, 0xd14: 0x0040, 0xd15: 0x0040, 0xd16: 0x0040, 0xd17: 0x0040,\n\t0xd18: 0x0040, 0xd19: 0x0040, 0xd1a: 0x0040, 0xd1b: 0x0040, 0xd1c: 0x0040, 0xd1d: 0x0040,\n\t0xd1e: 0x0040, 0xd1f: 0x0040, 0xd20: 0x00c9, 0xd21: 0x0069, 0xd22: 0x0079, 0xd23: 0x1f51,\n\t0xd24: 0x1f61, 0xd25: 0x1f71, 0xd26: 0x1f81, 0xd27: 0x1f91, 0xd28: 0x1fa1, 0xd29: 0x2601,\n\t0xd2a: 0x2619, 0xd2b: 0x2631, 0xd2c: 0x2649, 0xd2d: 0x2661, 0xd2e: 0x2679, 0xd2f: 0x2691,\n\t0xd30: 0x26a9, 0xd31: 0x26c1, 0xd32: 0x26d9, 0xd33: 0x26f1, 0xd34: 0x0a1e, 0xd35: 0x0a3e,\n\t0xd36: 0x0a5e, 0xd37: 0x0a7e, 0xd38: 0x0a9e, 0xd39: 0x0abe, 0xd3a: 0x0ade, 0xd3b: 0x0afe,\n\t0xd3c: 0x0b1e, 0xd3d: 0x270a, 0xd3e: 0x2732, 0xd3f: 0x275a,\n\t// Block 0x35, offset 0xd40\n\t0xd40: 0x2782, 0xd41: 0x27aa, 0xd42: 0x27d2, 0xd43: 0x27fa, 0xd44: 0x2822, 0xd45: 0x284a,\n\t0xd46: 0x2872, 0xd47: 0x289a, 0xd48: 0x0040, 0xd49: 0x0040, 0xd4a: 0x0040, 0xd4b: 0x0040,\n\t0xd4c: 0x0040, 0xd4d: 0x0040, 0xd4e: 0x0040, 0xd4f: 0x0040, 0xd50: 0x0040, 0xd51: 0x0040,\n\t0xd52: 0x0040, 0xd53: 0x0040, 0xd54: 0x0040, 0xd55: 0x0040, 0xd56: 0x0040, 0xd57: 0x0040,\n\t0xd58: 0x0040, 0xd59: 0x0040, 0xd5a: 0x0040, 0xd5b: 0x0040, 0xd5c: 0x0b3e, 0xd5d: 0x0b5e,\n\t0xd5e: 0x0b7e, 0xd5f: 0x0b9e, 0xd60: 0x0bbe, 0xd61: 0x0bde, 0xd62: 0x0bfe, 0xd63: 0x0c1e,\n\t0xd64: 0x0c3e, 0xd65: 0x0c5e, 0xd66: 0x0c7e, 0xd67: 0x0c9e, 0xd68: 0x0cbe, 0xd69: 0x0cde,\n\t0xd6a: 0x0cfe, 0xd6b: 0x0d1e, 0xd6c: 0x0d3e, 0xd6d: 0x0d5e, 0xd6e: 0x0d7e, 0xd6f: 0x0d9e,\n\t0xd70: 0x0dbe, 0xd71: 0x0dde, 0xd72: 0x0dfe, 0xd73: 0x0e1e, 0xd74: 0x0e3e, 0xd75: 0x0e5e,\n\t0xd76: 0x0039, 0xd77: 0x0ee9, 0xd78: 0x1159, 0xd79: 0x0ef9, 0xd7a: 0x0f09, 0xd7b: 0x1199,\n\t0xd7c: 0x0f31, 0xd7d: 0x0249, 0xd7e: 0x0f41, 0xd7f: 0x0259,\n\t// Block 0x36, offset 0xd80\n\t0xd80: 0x0f51, 0xd81: 0x0359, 0xd82: 0x0f61, 0xd83: 0x0f71, 0xd84: 0x00d9, 0xd85: 0x0f99,\n\t0xd86: 0x2039, 0xd87: 0x0269, 0xd88: 0x01d9, 0xd89: 0x0fa9, 0xd8a: 0x0fb9, 0xd8b: 0x1089,\n\t0xd8c: 0x0279, 0xd8d: 0x0369, 0xd8e: 0x0289, 0xd8f: 0x13d1, 0xd90: 0x0039, 0xd91: 0x0ee9,\n\t0xd92: 0x1159, 0xd93: 0x0ef9, 0xd94: 0x0f09, 0xd95: 0x1199, 0xd96: 0x0f31, 0xd97: 0x0249,\n\t0xd98: 0x0f41, 0xd99: 0x0259, 0xd9a: 0x0f51, 0xd9b: 0x0359, 0xd9c: 0x0f61, 0xd9d: 0x0f71,\n\t0xd9e: 0x00d9, 0xd9f: 0x0f99, 0xda0: 0x2039, 0xda1: 0x0269, 0xda2: 0x01d9, 0xda3: 0x0fa9,\n\t0xda4: 0x0fb9, 0xda5: 0x1089, 0xda6: 0x0279, 0xda7: 0x0369, 0xda8: 0x0289, 0xda9: 0x13d1,\n\t0xdaa: 0x1f41, 0xdab: 0x0018, 0xdac: 0x0018, 0xdad: 0x0018, 0xdae: 0x0018, 0xdaf: 0x0018,\n\t0xdb0: 0x0018, 0xdb1: 0x0018, 0xdb2: 0x0018, 0xdb3: 0x0018, 0xdb4: 0x0018, 0xdb5: 0x0018,\n\t0xdb6: 0x0018, 0xdb7: 0x0018, 0xdb8: 0x0018, 0xdb9: 0x0018, 0xdba: 0x0018, 0xdbb: 0x0018,\n\t0xdbc: 0x0018, 0xdbd: 0x0018, 0xdbe: 0x0018, 0xdbf: 0x0018,\n\t// Block 0x37, offset 0xdc0\n\t0xdc0: 0x0008, 0xdc1: 0x0008, 0xdc2: 0x0008, 0xdc3: 0x0008, 0xdc4: 0x0008, 0xdc5: 0x0008,\n\t0xdc6: 0x0008, 0xdc7: 0x0008, 0xdc8: 0x0008, 0xdc9: 0x0008, 0xdca: 0x0008, 0xdcb: 0x0008,\n\t0xdcc: 0x0008, 0xdcd: 0x0008, 0xdce: 0x0008, 0xdcf: 0x0008, 0xdd0: 0x0008, 0xdd1: 0x0008,\n\t0xdd2: 0x0008, 0xdd3: 0x0008, 0xdd4: 0x0008, 0xdd5: 0x0008, 0xdd6: 0x0008, 0xdd7: 0x0008,\n\t0xdd8: 0x0008, 0xdd9: 0x0008, 0xdda: 0x0008, 0xddb: 0x0008, 0xddc: 0x0008, 0xddd: 0x0008,\n\t0xdde: 0x0008, 0xddf: 0x0040, 0xde0: 0xe00d, 0xde1: 0x0008, 0xde2: 0x2971, 0xde3: 0x0ed5,\n\t0xde4: 0x2989, 0xde5: 0x0008, 0xde6: 0x0008, 0xde7: 0xe07d, 0xde8: 0x0008, 0xde9: 0xe01d,\n\t0xdea: 0x0008, 0xdeb: 0xe03d, 0xdec: 0x0008, 0xded: 0x0fe1, 0xdee: 0x1281, 0xdef: 0x0fc9,\n\t0xdf0: 0x1141, 0xdf1: 0x0008, 0xdf2: 0xe00d, 0xdf3: 0x0008, 0xdf4: 0x0008, 0xdf5: 0xe01d,\n\t0xdf6: 0x0008, 0xdf7: 0x0008, 0xdf8: 0x0008, 0xdf9: 0x0008, 0xdfa: 0x0008, 0xdfb: 0x0008,\n\t0xdfc: 0x0259, 0xdfd: 0x1089, 0xdfe: 0x29a1, 0xdff: 0x29b9,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0xe00d, 0xe01: 0x0008, 0xe02: 0xe00d, 0xe03: 0x0008, 0xe04: 0xe00d, 0xe05: 0x0008,\n\t0xe06: 0xe00d, 0xe07: 0x0008, 0xe08: 0xe00d, 0xe09: 0x0008, 0xe0a: 0xe00d, 0xe0b: 0x0008,\n\t0xe0c: 0xe00d, 0xe0d: 0x0008, 0xe0e: 0xe00d, 0xe0f: 0x0008, 0xe10: 0xe00d, 0xe11: 0x0008,\n\t0xe12: 0xe00d, 0xe13: 0x0008, 0xe14: 0xe00d, 0xe15: 0x0008, 0xe16: 0xe00d, 0xe17: 0x0008,\n\t0xe18: 0xe00d, 0xe19: 0x0008, 0xe1a: 0xe00d, 0xe1b: 0x0008, 0xe1c: 0xe00d, 0xe1d: 0x0008,\n\t0xe1e: 0xe00d, 0xe1f: 0x0008, 0xe20: 0xe00d, 0xe21: 0x0008, 0xe22: 0xe00d, 0xe23: 0x0008,\n\t0xe24: 0x0008, 0xe25: 0x0018, 0xe26: 0x0018, 0xe27: 0x0018, 0xe28: 0x0018, 0xe29: 0x0018,\n\t0xe2a: 0x0018, 0xe2b: 0xe03d, 0xe2c: 0x0008, 0xe2d: 0xe01d, 0xe2e: 0x0008, 0xe2f: 0x3308,\n\t0xe30: 0x3308, 0xe31: 0x3308, 0xe32: 0xe00d, 0xe33: 0x0008, 0xe34: 0x0040, 0xe35: 0x0040,\n\t0xe36: 0x0040, 0xe37: 0x0040, 0xe38: 0x0040, 0xe39: 0x0018, 0xe3a: 0x0018, 0xe3b: 0x0018,\n\t0xe3c: 0x0018, 0xe3d: 0x0018, 0xe3e: 0x0018, 0xe3f: 0x0018,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x2715, 0xe41: 0x2735, 0xe42: 0x2755, 0xe43: 0x2775, 0xe44: 0x2795, 0xe45: 0x27b5,\n\t0xe46: 0x27d5, 0xe47: 0x27f5, 0xe48: 0x2815, 0xe49: 0x2835, 0xe4a: 0x2855, 0xe4b: 0x2875,\n\t0xe4c: 0x2895, 0xe4d: 0x28b5, 0xe4e: 0x28d5, 0xe4f: 0x28f5, 0xe50: 0x2915, 0xe51: 0x2935,\n\t0xe52: 0x2955, 0xe53: 0x2975, 0xe54: 0x2995, 0xe55: 0x29b5, 0xe56: 0x0040, 0xe57: 0x0040,\n\t0xe58: 0x0040, 0xe59: 0x0040, 0xe5a: 0x0040, 0xe5b: 0x0040, 0xe5c: 0x0040, 0xe5d: 0x0040,\n\t0xe5e: 0x0040, 0xe5f: 0x0040, 0xe60: 0x0040, 0xe61: 0x0040, 0xe62: 0x0040, 0xe63: 0x0040,\n\t0xe64: 0x0040, 0xe65: 0x0040, 0xe66: 0x0040, 0xe67: 0x0040, 0xe68: 0x0040, 0xe69: 0x0040,\n\t0xe6a: 0x0040, 0xe6b: 0x0040, 0xe6c: 0x0040, 0xe6d: 0x0040, 0xe6e: 0x0040, 0xe6f: 0x0040,\n\t0xe70: 0x0040, 0xe71: 0x0040, 0xe72: 0x0040, 0xe73: 0x0040, 0xe74: 0x0040, 0xe75: 0x0040,\n\t0xe76: 0x0040, 0xe77: 0x0040, 0xe78: 0x0040, 0xe79: 0x0040, 0xe7a: 0x0040, 0xe7b: 0x0040,\n\t0xe7c: 0x0040, 0xe7d: 0x0040, 0xe7e: 0x0040, 0xe7f: 0x0040,\n\t// Block 0x3a, offset 0xe80\n\t0xe80: 0x000a, 0xe81: 0x0018, 0xe82: 0x29d1, 0xe83: 0x0018, 0xe84: 0x0018, 0xe85: 0x0008,\n\t0xe86: 0x0008, 0xe87: 0x0008, 0xe88: 0x0018, 0xe89: 0x0018, 0xe8a: 0x0018, 0xe8b: 0x0018,\n\t0xe8c: 0x0018, 0xe8d: 0x0018, 0xe8e: 0x0018, 0xe8f: 0x0018, 0xe90: 0x0018, 0xe91: 0x0018,\n\t0xe92: 0x0018, 0xe93: 0x0018, 0xe94: 0x0018, 0xe95: 0x0018, 0xe96: 0x0018, 0xe97: 0x0018,\n\t0xe98: 0x0018, 0xe99: 0x0018, 0xe9a: 0x0018, 0xe9b: 0x0018, 0xe9c: 0x0018, 0xe9d: 0x0018,\n\t0xe9e: 0x0018, 0xe9f: 0x0018, 0xea0: 0x0018, 0xea1: 0x0018, 0xea2: 0x0018, 0xea3: 0x0018,\n\t0xea4: 0x0018, 0xea5: 0x0018, 0xea6: 0x0018, 0xea7: 0x0018, 0xea8: 0x0018, 0xea9: 0x0018,\n\t0xeaa: 0x3308, 0xeab: 0x3308, 0xeac: 0x3308, 0xead: 0x3308, 0xeae: 0x3018, 0xeaf: 0x3018,\n\t0xeb0: 0x0018, 0xeb1: 0x0018, 0xeb2: 0x0018, 0xeb3: 0x0018, 0xeb4: 0x0018, 0xeb5: 0x0018,\n\t0xeb6: 0xe125, 0xeb7: 0x0018, 0xeb8: 0x29d5, 0xeb9: 0x29f5, 0xeba: 0x2a15, 0xebb: 0x0018,\n\t0xebc: 0x0008, 0xebd: 0x0018, 0xebe: 0x0018, 0xebf: 0x0018,\n\t// Block 0x3b, offset 0xec0\n\t0xec0: 0x2b55, 0xec1: 0x2b75, 0xec2: 0x2b95, 0xec3: 0x2bb5, 0xec4: 0x2bd5, 0xec5: 0x2bf5,\n\t0xec6: 0x2bf5, 0xec7: 0x2bf5, 0xec8: 0x2c15, 0xec9: 0x2c15, 0xeca: 0x2c15, 0xecb: 0x2c15,\n\t0xecc: 0x2c35, 0xecd: 0x2c35, 0xece: 0x2c35, 0xecf: 0x2c55, 0xed0: 0x2c75, 0xed1: 0x2c75,\n\t0xed2: 0x2a95, 0xed3: 0x2a95, 0xed4: 0x2c75, 0xed5: 0x2c75, 0xed6: 0x2c95, 0xed7: 0x2c95,\n\t0xed8: 0x2c75, 0xed9: 0x2c75, 0xeda: 0x2a95, 0xedb: 0x2a95, 0xedc: 0x2c75, 0xedd: 0x2c75,\n\t0xede: 0x2c55, 0xedf: 0x2c55, 0xee0: 0x2cb5, 0xee1: 0x2cb5, 0xee2: 0x2cd5, 0xee3: 0x2cd5,\n\t0xee4: 0x0040, 0xee5: 0x2cf5, 0xee6: 0x2d15, 0xee7: 0x2d35, 0xee8: 0x2d35, 0xee9: 0x2d55,\n\t0xeea: 0x2d75, 0xeeb: 0x2d95, 0xeec: 0x2db5, 0xeed: 0x2dd5, 0xeee: 0x2df5, 0xeef: 0x2e15,\n\t0xef0: 0x2e35, 0xef1: 0x2e55, 0xef2: 0x2e55, 0xef3: 0x2e75, 0xef4: 0x2e95, 0xef5: 0x2e95,\n\t0xef6: 0x2eb5, 0xef7: 0x2ed5, 0xef8: 0x2e75, 0xef9: 0x2ef5, 0xefa: 0x2f15, 0xefb: 0x2ef5,\n\t0xefc: 0x2e75, 0xefd: 0x2f35, 0xefe: 0x2f55, 0xeff: 0x2f75,\n\t// Block 0x3c, offset 0xf00\n\t0xf00: 0x2f95, 0xf01: 0x2fb5, 0xf02: 0x2d15, 0xf03: 0x2cf5, 0xf04: 0x2fd5, 0xf05: 0x2ff5,\n\t0xf06: 0x3015, 0xf07: 0x3035, 0xf08: 0x3055, 0xf09: 0x3075, 0xf0a: 0x3095, 0xf0b: 0x30b5,\n\t0xf0c: 0x30d5, 0xf0d: 0x30f5, 0xf0e: 0x3115, 0xf0f: 0x0040, 0xf10: 0x0018, 0xf11: 0x0018,\n\t0xf12: 0x3135, 0xf13: 0x3155, 0xf14: 0x3175, 0xf15: 0x3195, 0xf16: 0x31b5, 0xf17: 0x31d5,\n\t0xf18: 0x31f5, 0xf19: 0x3215, 0xf1a: 0x3235, 0xf1b: 0x3255, 0xf1c: 0x3175, 0xf1d: 0x3275,\n\t0xf1e: 0x3295, 0xf1f: 0x32b5, 0xf20: 0x0008, 0xf21: 0x0008, 0xf22: 0x0008, 0xf23: 0x0008,\n\t0xf24: 0x0008, 0xf25: 0x0008, 0xf26: 0x0008, 0xf27: 0x0008, 0xf28: 0x0008, 0xf29: 0x0008,\n\t0xf2a: 0x0008, 0xf2b: 0x0008, 0xf2c: 0x0008, 0xf2d: 0x0008, 0xf2e: 0x0008, 0xf2f: 0x0008,\n\t0xf30: 0x0008, 0xf31: 0x0008, 0xf32: 0x0008, 0xf33: 0x0008, 0xf34: 0x0008, 0xf35: 0x0008,\n\t0xf36: 0x0008, 0xf37: 0x0008, 0xf38: 0x0008, 0xf39: 0x0008, 0xf3a: 0x0008, 0xf3b: 0x0040,\n\t0xf3c: 0x0040, 0xf3d: 0x0040, 0xf3e: 0x0040, 0xf3f: 0x0040,\n\t// Block 0x3d, offset 0xf40\n\t0xf40: 0x36a2, 0xf41: 0x36d2, 0xf42: 0x3702, 0xf43: 0x3732, 0xf44: 0x32d5, 0xf45: 0x32f5,\n\t0xf46: 0x3315, 0xf47: 0x3335, 0xf48: 0x0018, 0xf49: 0x0018, 0xf4a: 0x0018, 0xf4b: 0x0018,\n\t0xf4c: 0x0018, 0xf4d: 0x0018, 0xf4e: 0x0018, 0xf4f: 0x0018, 0xf50: 0x3355, 0xf51: 0x3761,\n\t0xf52: 0x3779, 0xf53: 0x3791, 0xf54: 0x37a9, 0xf55: 0x37c1, 0xf56: 0x37d9, 0xf57: 0x37f1,\n\t0xf58: 0x3809, 0xf59: 0x3821, 0xf5a: 0x3839, 0xf5b: 0x3851, 0xf5c: 0x3869, 0xf5d: 0x3881,\n\t0xf5e: 0x3899, 0xf5f: 0x38b1, 0xf60: 0x3375, 0xf61: 0x3395, 0xf62: 0x33b5, 0xf63: 0x33d5,\n\t0xf64: 0x33f5, 0xf65: 0x33f5, 0xf66: 0x3415, 0xf67: 0x3435, 0xf68: 0x3455, 0xf69: 0x3475,\n\t0xf6a: 0x3495, 0xf6b: 0x34b5, 0xf6c: 0x34d5, 0xf6d: 0x34f5, 0xf6e: 0x3515, 0xf6f: 0x3535,\n\t0xf70: 0x3555, 0xf71: 0x3575, 0xf72: 0x3595, 0xf73: 0x35b5, 0xf74: 0x35d5, 0xf75: 0x35f5,\n\t0xf76: 0x3615, 0xf77: 0x3635, 0xf78: 0x3655, 0xf79: 0x3675, 0xf7a: 0x3695, 0xf7b: 0x36b5,\n\t0xf7c: 0x38c9, 0xf7d: 0x3901, 0xf7e: 0x36d5, 0xf7f: 0x0018,\n\t// Block 0x3e, offset 0xf80\n\t0xf80: 0x36f5, 0xf81: 0x3715, 0xf82: 0x3735, 0xf83: 0x3755, 0xf84: 0x3775, 0xf85: 0x3795,\n\t0xf86: 0x37b5, 0xf87: 0x37d5, 0xf88: 0x37f5, 0xf89: 0x3815, 0xf8a: 0x3835, 0xf8b: 0x3855,\n\t0xf8c: 0x3875, 0xf8d: 0x3895, 0xf8e: 0x38b5, 0xf8f: 0x38d5, 0xf90: 0x38f5, 0xf91: 0x3915,\n\t0xf92: 0x3935, 0xf93: 0x3955, 0xf94: 0x3975, 0xf95: 0x3995, 0xf96: 0x39b5, 0xf97: 0x39d5,\n\t0xf98: 0x39f5, 0xf99: 0x3a15, 0xf9a: 0x3a35, 0xf9b: 0x3a55, 0xf9c: 0x3a75, 0xf9d: 0x3a95,\n\t0xf9e: 0x3ab5, 0xf9f: 0x3ad5, 0xfa0: 0x3af5, 0xfa1: 0x3b15, 0xfa2: 0x3b35, 0xfa3: 0x3b55,\n\t0xfa4: 0x3b75, 0xfa5: 0x3b95, 0xfa6: 0x1295, 0xfa7: 0x3bb5, 0xfa8: 0x3bd5, 0xfa9: 0x3bf5,\n\t0xfaa: 0x3c15, 0xfab: 0x3c35, 0xfac: 0x3c55, 0xfad: 0x3c75, 0xfae: 0x23b5, 0xfaf: 0x3c95,\n\t0xfb0: 0x3cb5, 0xfb1: 0x3939, 0xfb2: 0x3951, 0xfb3: 0x3969, 0xfb4: 0x3981, 0xfb5: 0x3999,\n\t0xfb6: 0x39b1, 0xfb7: 0x39c9, 0xfb8: 0x39e1, 0xfb9: 0x39f9, 0xfba: 0x3a11, 0xfbb: 0x3a29,\n\t0xfbc: 0x3a41, 0xfbd: 0x3a59, 0xfbe: 0x3a71, 0xfbf: 0x3a89,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc0: 0x3aa1, 0xfc1: 0x3ac9, 0xfc2: 0x3af1, 0xfc3: 0x3b19, 0xfc4: 0x3b41, 0xfc5: 0x3b69,\n\t0xfc6: 0x3b91, 0xfc7: 0x3bb9, 0xfc8: 0x3be1, 0xfc9: 0x3c09, 0xfca: 0x3c39, 0xfcb: 0x3c69,\n\t0xfcc: 0x3c99, 0xfcd: 0x3cd5, 0xfce: 0x3cb1, 0xfcf: 0x3cf5, 0xfd0: 0x3d15, 0xfd1: 0x3d2d,\n\t0xfd2: 0x3d45, 0xfd3: 0x3d5d, 0xfd4: 0x3d75, 0xfd5: 0x3d75, 0xfd6: 0x3d5d, 0xfd7: 0x3d8d,\n\t0xfd8: 0x07d5, 0xfd9: 0x3da5, 0xfda: 0x3dbd, 0xfdb: 0x3dd5, 0xfdc: 0x3ded, 0xfdd: 0x3e05,\n\t0xfde: 0x3e1d, 0xfdf: 0x3e35, 0xfe0: 0x3e4d, 0xfe1: 0x3e65, 0xfe2: 0x3e7d, 0xfe3: 0x3e95,\n\t0xfe4: 0x3ead, 0xfe5: 0x3ead, 0xfe6: 0x3ec5, 0xfe7: 0x3ec5, 0xfe8: 0x3edd, 0xfe9: 0x3edd,\n\t0xfea: 0x3ef5, 0xfeb: 0x3f0d, 0xfec: 0x3f25, 0xfed: 0x3f3d, 0xfee: 0x3f55, 0xfef: 0x3f55,\n\t0xff0: 0x3f6d, 0xff1: 0x3f6d, 0xff2: 0x3f6d, 0xff3: 0x3f85, 0xff4: 0x3f9d, 0xff5: 0x3fb5,\n\t0xff6: 0x3fcd, 0xff7: 0x3fb5, 0xff8: 0x3fe5, 0xff9: 0x3ffd, 0xffa: 0x3f85, 0xffb: 0x4015,\n\t0xffc: 0x402d, 0xffd: 0x402d, 0xffe: 0x402d, 0xfff: 0x0040,\n\t// Block 0x40, offset 0x1000\n\t0x1000: 0x3cc9, 0x1001: 0x3d31, 0x1002: 0x3d99, 0x1003: 0x3e01, 0x1004: 0x3e51, 0x1005: 0x3eb9,\n\t0x1006: 0x3f09, 0x1007: 0x3f59, 0x1008: 0x3fd9, 0x1009: 0x4041, 0x100a: 0x4091, 0x100b: 0x40e1,\n\t0x100c: 0x4131, 0x100d: 0x4199, 0x100e: 0x4201, 0x100f: 0x4251, 0x1010: 0x42a1, 0x1011: 0x42d9,\n\t0x1012: 0x4329, 0x1013: 0x4391, 0x1014: 0x43f9, 0x1015: 0x4431, 0x1016: 0x44b1, 0x1017: 0x4549,\n\t0x1018: 0x45c9, 0x1019: 0x4619, 0x101a: 0x4699, 0x101b: 0x4719, 0x101c: 0x4781, 0x101d: 0x47d1,\n\t0x101e: 0x4821, 0x101f: 0x4871, 0x1020: 0x48d9, 0x1021: 0x4959, 0x1022: 0x49c1, 0x1023: 0x4a11,\n\t0x1024: 0x4a61, 0x1025: 0x4ab1, 0x1026: 0x4ae9, 0x1027: 0x4b21, 0x1028: 0x4b59, 0x1029: 0x4b91,\n\t0x102a: 0x4be1, 0x102b: 0x4c31, 0x102c: 0x4cb1, 0x102d: 0x4d01, 0x102e: 0x4d69, 0x102f: 0x4de9,\n\t0x1030: 0x4e39, 0x1031: 0x4e71, 0x1032: 0x4ea9, 0x1033: 0x4f29, 0x1034: 0x4f91, 0x1035: 0x5011,\n\t0x1036: 0x5061, 0x1037: 0x50e1, 0x1038: 0x5119, 0x1039: 0x5169, 0x103a: 0x51b9, 0x103b: 0x5209,\n\t0x103c: 0x5259, 0x103d: 0x52a9, 0x103e: 0x5311, 0x103f: 0x5361,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x5399, 0x1041: 0x53e9, 0x1042: 0x5439, 0x1043: 0x5489, 0x1044: 0x54f1, 0x1045: 0x5541,\n\t0x1046: 0x5591, 0x1047: 0x55e1, 0x1048: 0x5661, 0x1049: 0x56c9, 0x104a: 0x5701, 0x104b: 0x5781,\n\t0x104c: 0x57b9, 0x104d: 0x5821, 0x104e: 0x5889, 0x104f: 0x58d9, 0x1050: 0x5929, 0x1051: 0x5979,\n\t0x1052: 0x59e1, 0x1053: 0x5a19, 0x1054: 0x5a69, 0x1055: 0x5ad1, 0x1056: 0x5b09, 0x1057: 0x5b89,\n\t0x1058: 0x5bd9, 0x1059: 0x5c01, 0x105a: 0x5c29, 0x105b: 0x5c51, 0x105c: 0x5c79, 0x105d: 0x5ca1,\n\t0x105e: 0x5cc9, 0x105f: 0x5cf1, 0x1060: 0x5d19, 0x1061: 0x5d41, 0x1062: 0x5d69, 0x1063: 0x5d99,\n\t0x1064: 0x5dc9, 0x1065: 0x5df9, 0x1066: 0x5e29, 0x1067: 0x5e59, 0x1068: 0x5e89, 0x1069: 0x5eb9,\n\t0x106a: 0x5ee9, 0x106b: 0x5f19, 0x106c: 0x5f49, 0x106d: 0x5f79, 0x106e: 0x5fa9, 0x106f: 0x5fd9,\n\t0x1070: 0x6009, 0x1071: 0x4045, 0x1072: 0x6039, 0x1073: 0x6051, 0x1074: 0x4065, 0x1075: 0x6069,\n\t0x1076: 0x6081, 0x1077: 0x6099, 0x1078: 0x4085, 0x1079: 0x4085, 0x107a: 0x60b1, 0x107b: 0x60c9,\n\t0x107c: 0x6101, 0x107d: 0x6139, 0x107e: 0x6171, 0x107f: 0x61a9,\n\t// Block 0x42, offset 0x1080\n\t0x1080: 0x6211, 0x1081: 0x6229, 0x1082: 0x40a5, 0x1083: 0x6241, 0x1084: 0x6259, 0x1085: 0x6271,\n\t0x1086: 0x6289, 0x1087: 0x62a1, 0x1088: 0x40c5, 0x1089: 0x62b9, 0x108a: 0x62e1, 0x108b: 0x62f9,\n\t0x108c: 0x40e5, 0x108d: 0x40e5, 0x108e: 0x6311, 0x108f: 0x6329, 0x1090: 0x6341, 0x1091: 0x4105,\n\t0x1092: 0x4125, 0x1093: 0x4145, 0x1094: 0x4165, 0x1095: 0x4185, 0x1096: 0x6359, 0x1097: 0x6371,\n\t0x1098: 0x6389, 0x1099: 0x63a1, 0x109a: 0x63b9, 0x109b: 0x41a5, 0x109c: 0x63d1, 0x109d: 0x63e9,\n\t0x109e: 0x6401, 0x109f: 0x41c5, 0x10a0: 0x41e5, 0x10a1: 0x6419, 0x10a2: 0x4205, 0x10a3: 0x4225,\n\t0x10a4: 0x4245, 0x10a5: 0x6431, 0x10a6: 0x4265, 0x10a7: 0x6449, 0x10a8: 0x6479, 0x10a9: 0x6211,\n\t0x10aa: 0x4285, 0x10ab: 0x42a5, 0x10ac: 0x42c5, 0x10ad: 0x42e5, 0x10ae: 0x64b1, 0x10af: 0x64f1,\n\t0x10b0: 0x6539, 0x10b1: 0x6551, 0x10b2: 0x4305, 0x10b3: 0x6569, 0x10b4: 0x6581, 0x10b5: 0x6599,\n\t0x10b6: 0x4325, 0x10b7: 0x65b1, 0x10b8: 0x65c9, 0x10b9: 0x65b1, 0x10ba: 0x65e1, 0x10bb: 0x65f9,\n\t0x10bc: 0x4345, 0x10bd: 0x6611, 0x10be: 0x6629, 0x10bf: 0x6611,\n\t// Block 0x43, offset 0x10c0\n\t0x10c0: 0x4365, 0x10c1: 0x4385, 0x10c2: 0x0040, 0x10c3: 0x6641, 0x10c4: 0x6659, 0x10c5: 0x6671,\n\t0x10c6: 0x6689, 0x10c7: 0x0040, 0x10c8: 0x66c1, 0x10c9: 0x66d9, 0x10ca: 0x66f1, 0x10cb: 0x6709,\n\t0x10cc: 0x6721, 0x10cd: 0x6739, 0x10ce: 0x6401, 0x10cf: 0x6751, 0x10d0: 0x6769, 0x10d1: 0x6781,\n\t0x10d2: 0x43a5, 0x10d3: 0x6799, 0x10d4: 0x6289, 0x10d5: 0x43c5, 0x10d6: 0x43e5, 0x10d7: 0x67b1,\n\t0x10d8: 0x0040, 0x10d9: 0x4405, 0x10da: 0x67c9, 0x10db: 0x67e1, 0x10dc: 0x67f9, 0x10dd: 0x6811,\n\t0x10de: 0x6829, 0x10df: 0x6859, 0x10e0: 0x6889, 0x10e1: 0x68b1, 0x10e2: 0x68d9, 0x10e3: 0x6901,\n\t0x10e4: 0x6929, 0x10e5: 0x6951, 0x10e6: 0x6979, 0x10e7: 0x69a1, 0x10e8: 0x69c9, 0x10e9: 0x69f1,\n\t0x10ea: 0x6a21, 0x10eb: 0x6a51, 0x10ec: 0x6a81, 0x10ed: 0x6ab1, 0x10ee: 0x6ae1, 0x10ef: 0x6b11,\n\t0x10f0: 0x6b41, 0x10f1: 0x6b71, 0x10f2: 0x6ba1, 0x10f3: 0x6bd1, 0x10f4: 0x6c01, 0x10f5: 0x6c31,\n\t0x10f6: 0x6c61, 0x10f7: 0x6c91, 0x10f8: 0x6cc1, 0x10f9: 0x6cf1, 0x10fa: 0x6d21, 0x10fb: 0x6d51,\n\t0x10fc: 0x6d81, 0x10fd: 0x6db1, 0x10fe: 0x6de1, 0x10ff: 0x4425,\n\t// Block 0x44, offset 0x1100\n\t0x1100: 0xe00d, 0x1101: 0x0008, 0x1102: 0xe00d, 0x1103: 0x0008, 0x1104: 0xe00d, 0x1105: 0x0008,\n\t0x1106: 0xe00d, 0x1107: 0x0008, 0x1108: 0xe00d, 0x1109: 0x0008, 0x110a: 0xe00d, 0x110b: 0x0008,\n\t0x110c: 0xe00d, 0x110d: 0x0008, 0x110e: 0xe00d, 0x110f: 0x0008, 0x1110: 0xe00d, 0x1111: 0x0008,\n\t0x1112: 0xe00d, 0x1113: 0x0008, 0x1114: 0xe00d, 0x1115: 0x0008, 0x1116: 0xe00d, 0x1117: 0x0008,\n\t0x1118: 0xe00d, 0x1119: 0x0008, 0x111a: 0xe00d, 0x111b: 0x0008, 0x111c: 0xe00d, 0x111d: 0x0008,\n\t0x111e: 0xe00d, 0x111f: 0x0008, 0x1120: 0xe00d, 0x1121: 0x0008, 0x1122: 0xe00d, 0x1123: 0x0008,\n\t0x1124: 0xe00d, 0x1125: 0x0008, 0x1126: 0xe00d, 0x1127: 0x0008, 0x1128: 0xe00d, 0x1129: 0x0008,\n\t0x112a: 0xe00d, 0x112b: 0x0008, 0x112c: 0xe00d, 0x112d: 0x0008, 0x112e: 0x0008, 0x112f: 0x3308,\n\t0x1130: 0x3318, 0x1131: 0x3318, 0x1132: 0x3318, 0x1133: 0x0018, 0x1134: 0x3308, 0x1135: 0x3308,\n\t0x1136: 0x3308, 0x1137: 0x3308, 0x1138: 0x3308, 0x1139: 0x3308, 0x113a: 0x3308, 0x113b: 0x3308,\n\t0x113c: 0x3308, 0x113d: 0x3308, 0x113e: 0x0018, 0x113f: 0x0008,\n\t// Block 0x45, offset 0x1140\n\t0x1140: 0xe00d, 0x1141: 0x0008, 0x1142: 0xe00d, 0x1143: 0x0008, 0x1144: 0xe00d, 0x1145: 0x0008,\n\t0x1146: 0xe00d, 0x1147: 0x0008, 0x1148: 0xe00d, 0x1149: 0x0008, 0x114a: 0xe00d, 0x114b: 0x0008,\n\t0x114c: 0xe00d, 0x114d: 0x0008, 0x114e: 0xe00d, 0x114f: 0x0008, 0x1150: 0xe00d, 0x1151: 0x0008,\n\t0x1152: 0xe00d, 0x1153: 0x0008, 0x1154: 0xe00d, 0x1155: 0x0008, 0x1156: 0xe00d, 0x1157: 0x0008,\n\t0x1158: 0xe00d, 0x1159: 0x0008, 0x115a: 0xe00d, 0x115b: 0x0008, 0x115c: 0x0ea1, 0x115d: 0x6e11,\n\t0x115e: 0x3308, 0x115f: 0x3308, 0x1160: 0x0008, 0x1161: 0x0008, 0x1162: 0x0008, 0x1163: 0x0008,\n\t0x1164: 0x0008, 0x1165: 0x0008, 0x1166: 0x0008, 0x1167: 0x0008, 0x1168: 0x0008, 0x1169: 0x0008,\n\t0x116a: 0x0008, 0x116b: 0x0008, 0x116c: 0x0008, 0x116d: 0x0008, 0x116e: 0x0008, 0x116f: 0x0008,\n\t0x1170: 0x0008, 0x1171: 0x0008, 0x1172: 0x0008, 0x1173: 0x0008, 0x1174: 0x0008, 0x1175: 0x0008,\n\t0x1176: 0x0008, 0x1177: 0x0008, 0x1178: 0x0008, 0x1179: 0x0008, 0x117a: 0x0008, 0x117b: 0x0008,\n\t0x117c: 0x0008, 0x117d: 0x0008, 0x117e: 0x0008, 0x117f: 0x0008,\n\t// Block 0x46, offset 0x1180\n\t0x1180: 0x0018, 0x1181: 0x0018, 0x1182: 0x0018, 0x1183: 0x0018, 0x1184: 0x0018, 0x1185: 0x0018,\n\t0x1186: 0x0018, 0x1187: 0x0018, 0x1188: 0x0018, 0x1189: 0x0018, 0x118a: 0x0018, 0x118b: 0x0018,\n\t0x118c: 0x0018, 0x118d: 0x0018, 0x118e: 0x0018, 0x118f: 0x0018, 0x1190: 0x0018, 0x1191: 0x0018,\n\t0x1192: 0x0018, 0x1193: 0x0018, 0x1194: 0x0018, 0x1195: 0x0018, 0x1196: 0x0018, 0x1197: 0x0008,\n\t0x1198: 0x0008, 0x1199: 0x0008, 0x119a: 0x0008, 0x119b: 0x0008, 0x119c: 0x0008, 0x119d: 0x0008,\n\t0x119e: 0x0008, 0x119f: 0x0008, 0x11a0: 0x0018, 0x11a1: 0x0018, 0x11a2: 0xe00d, 0x11a3: 0x0008,\n\t0x11a4: 0xe00d, 0x11a5: 0x0008, 0x11a6: 0xe00d, 0x11a7: 0x0008, 0x11a8: 0xe00d, 0x11a9: 0x0008,\n\t0x11aa: 0xe00d, 0x11ab: 0x0008, 0x11ac: 0xe00d, 0x11ad: 0x0008, 0x11ae: 0xe00d, 0x11af: 0x0008,\n\t0x11b0: 0x0008, 0x11b1: 0x0008, 0x11b2: 0xe00d, 0x11b3: 0x0008, 0x11b4: 0xe00d, 0x11b5: 0x0008,\n\t0x11b6: 0xe00d, 0x11b7: 0x0008, 0x11b8: 0xe00d, 0x11b9: 0x0008, 0x11ba: 0xe00d, 0x11bb: 0x0008,\n\t0x11bc: 0xe00d, 0x11bd: 0x0008, 0x11be: 0xe00d, 0x11bf: 0x0008,\n\t// Block 0x47, offset 0x11c0\n\t0x11c0: 0xe00d, 0x11c1: 0x0008, 0x11c2: 0xe00d, 0x11c3: 0x0008, 0x11c4: 0xe00d, 0x11c5: 0x0008,\n\t0x11c6: 0xe00d, 0x11c7: 0x0008, 0x11c8: 0xe00d, 0x11c9: 0x0008, 0x11ca: 0xe00d, 0x11cb: 0x0008,\n\t0x11cc: 0xe00d, 0x11cd: 0x0008, 0x11ce: 0xe00d, 0x11cf: 0x0008, 0x11d0: 0xe00d, 0x11d1: 0x0008,\n\t0x11d2: 0xe00d, 0x11d3: 0x0008, 0x11d4: 0xe00d, 0x11d5: 0x0008, 0x11d6: 0xe00d, 0x11d7: 0x0008,\n\t0x11d8: 0xe00d, 0x11d9: 0x0008, 0x11da: 0xe00d, 0x11db: 0x0008, 0x11dc: 0xe00d, 0x11dd: 0x0008,\n\t0x11de: 0xe00d, 0x11df: 0x0008, 0x11e0: 0xe00d, 0x11e1: 0x0008, 0x11e2: 0xe00d, 0x11e3: 0x0008,\n\t0x11e4: 0xe00d, 0x11e5: 0x0008, 0x11e6: 0xe00d, 0x11e7: 0x0008, 0x11e8: 0xe00d, 0x11e9: 0x0008,\n\t0x11ea: 0xe00d, 0x11eb: 0x0008, 0x11ec: 0xe00d, 0x11ed: 0x0008, 0x11ee: 0xe00d, 0x11ef: 0x0008,\n\t0x11f0: 0xe0fd, 0x11f1: 0x0008, 0x11f2: 0x0008, 0x11f3: 0x0008, 0x11f4: 0x0008, 0x11f5: 0x0008,\n\t0x11f6: 0x0008, 0x11f7: 0x0008, 0x11f8: 0x0008, 0x11f9: 0xe01d, 0x11fa: 0x0008, 0x11fb: 0xe03d,\n\t0x11fc: 0x0008, 0x11fd: 0x4445, 0x11fe: 0xe00d, 0x11ff: 0x0008,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0xe00d, 0x1201: 0x0008, 0x1202: 0xe00d, 0x1203: 0x0008, 0x1204: 0xe00d, 0x1205: 0x0008,\n\t0x1206: 0xe00d, 0x1207: 0x0008, 0x1208: 0x0008, 0x1209: 0x0018, 0x120a: 0x0018, 0x120b: 0xe03d,\n\t0x120c: 0x0008, 0x120d: 0x11d9, 0x120e: 0x0008, 0x120f: 0x0008, 0x1210: 0xe00d, 0x1211: 0x0008,\n\t0x1212: 0xe00d, 0x1213: 0x0008, 0x1214: 0x0008, 0x1215: 0x0008, 0x1216: 0xe00d, 0x1217: 0x0008,\n\t0x1218: 0xe00d, 0x1219: 0x0008, 0x121a: 0xe00d, 0x121b: 0x0008, 0x121c: 0xe00d, 0x121d: 0x0008,\n\t0x121e: 0xe00d, 0x121f: 0x0008, 0x1220: 0xe00d, 0x1221: 0x0008, 0x1222: 0xe00d, 0x1223: 0x0008,\n\t0x1224: 0xe00d, 0x1225: 0x0008, 0x1226: 0xe00d, 0x1227: 0x0008, 0x1228: 0xe00d, 0x1229: 0x0008,\n\t0x122a: 0x6e29, 0x122b: 0x1029, 0x122c: 0x11c1, 0x122d: 0x6e41, 0x122e: 0x1221, 0x122f: 0x0008,\n\t0x1230: 0x6e59, 0x1231: 0x6e71, 0x1232: 0x1239, 0x1233: 0x4465, 0x1234: 0xe00d, 0x1235: 0x0008,\n\t0x1236: 0xe00d, 0x1237: 0x0008, 0x1238: 0xe00d, 0x1239: 0x0008, 0x123a: 0xe00d, 0x123b: 0x0008,\n\t0x123c: 0xe00d, 0x123d: 0x0008, 0x123e: 0xe00d, 0x123f: 0x0008,\n\t// Block 0x49, offset 0x1240\n\t0x1240: 0x650d, 0x1241: 0x652d, 0x1242: 0x654d, 0x1243: 0x656d, 0x1244: 0x658d, 0x1245: 0x65ad,\n\t0x1246: 0x65cd, 0x1247: 0x65ed, 0x1248: 0x660d, 0x1249: 0x662d, 0x124a: 0x664d, 0x124b: 0x666d,\n\t0x124c: 0x668d, 0x124d: 0x66ad, 0x124e: 0x0008, 0x124f: 0x0008, 0x1250: 0x66cd, 0x1251: 0x0008,\n\t0x1252: 0x66ed, 0x1253: 0x0008, 0x1254: 0x0008, 0x1255: 0x670d, 0x1256: 0x672d, 0x1257: 0x674d,\n\t0x1258: 0x676d, 0x1259: 0x678d, 0x125a: 0x67ad, 0x125b: 0x67cd, 0x125c: 0x67ed, 0x125d: 0x680d,\n\t0x125e: 0x682d, 0x125f: 0x0008, 0x1260: 0x684d, 0x1261: 0x0008, 0x1262: 0x686d, 0x1263: 0x0008,\n\t0x1264: 0x0008, 0x1265: 0x688d, 0x1266: 0x68ad, 0x1267: 0x0008, 0x1268: 0x0008, 0x1269: 0x0008,\n\t0x126a: 0x68cd, 0x126b: 0x68ed, 0x126c: 0x690d, 0x126d: 0x692d, 0x126e: 0x694d, 0x126f: 0x696d,\n\t0x1270: 0x698d, 0x1271: 0x69ad, 0x1272: 0x69cd, 0x1273: 0x69ed, 0x1274: 0x6a0d, 0x1275: 0x6a2d,\n\t0x1276: 0x6a4d, 0x1277: 0x6a6d, 0x1278: 0x6a8d, 0x1279: 0x6aad, 0x127a: 0x6acd, 0x127b: 0x6aed,\n\t0x127c: 0x6b0d, 0x127d: 0x6b2d, 0x127e: 0x6b4d, 0x127f: 0x6b6d,\n\t// Block 0x4a, offset 0x1280\n\t0x1280: 0x7acd, 0x1281: 0x7aed, 0x1282: 0x7b0d, 0x1283: 0x7b2d, 0x1284: 0x7b4d, 0x1285: 0x7b6d,\n\t0x1286: 0x7b8d, 0x1287: 0x7bad, 0x1288: 0x7bcd, 0x1289: 0x7bed, 0x128a: 0x7c0d, 0x128b: 0x7c2d,\n\t0x128c: 0x7c4d, 0x128d: 0x7c6d, 0x128e: 0x7c8d, 0x128f: 0x6ec9, 0x1290: 0x6ef1, 0x1291: 0x6f19,\n\t0x1292: 0x7cad, 0x1293: 0x7ccd, 0x1294: 0x7ced, 0x1295: 0x6f41, 0x1296: 0x6f69, 0x1297: 0x6f91,\n\t0x1298: 0x7d0d, 0x1299: 0x7d2d, 0x129a: 0x0040, 0x129b: 0x0040, 0x129c: 0x0040, 0x129d: 0x0040,\n\t0x129e: 0x0040, 0x129f: 0x0040, 0x12a0: 0x0040, 0x12a1: 0x0040, 0x12a2: 0x0040, 0x12a3: 0x0040,\n\t0x12a4: 0x0040, 0x12a5: 0x0040, 0x12a6: 0x0040, 0x12a7: 0x0040, 0x12a8: 0x0040, 0x12a9: 0x0040,\n\t0x12aa: 0x0040, 0x12ab: 0x0040, 0x12ac: 0x0040, 0x12ad: 0x0040, 0x12ae: 0x0040, 0x12af: 0x0040,\n\t0x12b0: 0x0040, 0x12b1: 0x0040, 0x12b2: 0x0040, 0x12b3: 0x0040, 0x12b4: 0x0040, 0x12b5: 0x0040,\n\t0x12b6: 0x0040, 0x12b7: 0x0040, 0x12b8: 0x0040, 0x12b9: 0x0040, 0x12ba: 0x0040, 0x12bb: 0x0040,\n\t0x12bc: 0x0040, 0x12bd: 0x0040, 0x12be: 0x0040, 0x12bf: 0x0040,\n\t// Block 0x4b, offset 0x12c0\n\t0x12c0: 0x6fb9, 0x12c1: 0x6fd1, 0x12c2: 0x6fe9, 0x12c3: 0x7d4d, 0x12c4: 0x7d6d, 0x12c5: 0x7001,\n\t0x12c6: 0x7001, 0x12c7: 0x0040, 0x12c8: 0x0040, 0x12c9: 0x0040, 0x12ca: 0x0040, 0x12cb: 0x0040,\n\t0x12cc: 0x0040, 0x12cd: 0x0040, 0x12ce: 0x0040, 0x12cf: 0x0040, 0x12d0: 0x0040, 0x12d1: 0x0040,\n\t0x12d2: 0x0040, 0x12d3: 0x7019, 0x12d4: 0x7041, 0x12d5: 0x7069, 0x12d6: 0x7091, 0x12d7: 0x70b9,\n\t0x12d8: 0x0040, 0x12d9: 0x0040, 0x12da: 0x0040, 0x12db: 0x0040, 0x12dc: 0x0040, 0x12dd: 0x70e1,\n\t0x12de: 0x3308, 0x12df: 0x7109, 0x12e0: 0x7131, 0x12e1: 0x20a9, 0x12e2: 0x20f1, 0x12e3: 0x7149,\n\t0x12e4: 0x7161, 0x12e5: 0x7179, 0x12e6: 0x7191, 0x12e7: 0x71a9, 0x12e8: 0x71c1, 0x12e9: 0x1fb2,\n\t0x12ea: 0x71d9, 0x12eb: 0x7201, 0x12ec: 0x7229, 0x12ed: 0x7261, 0x12ee: 0x7299, 0x12ef: 0x72c1,\n\t0x12f0: 0x72e9, 0x12f1: 0x7311, 0x12f2: 0x7339, 0x12f3: 0x7361, 0x12f4: 0x7389, 0x12f5: 0x73b1,\n\t0x12f6: 0x73d9, 0x12f7: 0x0040, 0x12f8: 0x7401, 0x12f9: 0x7429, 0x12fa: 0x7451, 0x12fb: 0x7479,\n\t0x12fc: 0x74a1, 0x12fd: 0x0040, 0x12fe: 0x74c9, 0x12ff: 0x0040,\n\t// Block 0x4c, offset 0x1300\n\t0x1300: 0x74f1, 0x1301: 0x7519, 0x1302: 0x0040, 0x1303: 0x7541, 0x1304: 0x7569, 0x1305: 0x0040,\n\t0x1306: 0x7591, 0x1307: 0x75b9, 0x1308: 0x75e1, 0x1309: 0x7609, 0x130a: 0x7631, 0x130b: 0x7659,\n\t0x130c: 0x7681, 0x130d: 0x76a9, 0x130e: 0x76d1, 0x130f: 0x76f9, 0x1310: 0x7721, 0x1311: 0x7721,\n\t0x1312: 0x7739, 0x1313: 0x7739, 0x1314: 0x7739, 0x1315: 0x7739, 0x1316: 0x7751, 0x1317: 0x7751,\n\t0x1318: 0x7751, 0x1319: 0x7751, 0x131a: 0x7769, 0x131b: 0x7769, 0x131c: 0x7769, 0x131d: 0x7769,\n\t0x131e: 0x7781, 0x131f: 0x7781, 0x1320: 0x7781, 0x1321: 0x7781, 0x1322: 0x7799, 0x1323: 0x7799,\n\t0x1324: 0x7799, 0x1325: 0x7799, 0x1326: 0x77b1, 0x1327: 0x77b1, 0x1328: 0x77b1, 0x1329: 0x77b1,\n\t0x132a: 0x77c9, 0x132b: 0x77c9, 0x132c: 0x77c9, 0x132d: 0x77c9, 0x132e: 0x77e1, 0x132f: 0x77e1,\n\t0x1330: 0x77e1, 0x1331: 0x77e1, 0x1332: 0x77f9, 0x1333: 0x77f9, 0x1334: 0x77f9, 0x1335: 0x77f9,\n\t0x1336: 0x7811, 0x1337: 0x7811, 0x1338: 0x7811, 0x1339: 0x7811, 0x133a: 0x7829, 0x133b: 0x7829,\n\t0x133c: 0x7829, 0x133d: 0x7829, 0x133e: 0x7841, 0x133f: 0x7841,\n\t// Block 0x4d, offset 0x1340\n\t0x1340: 0x7841, 0x1341: 0x7841, 0x1342: 0x7859, 0x1343: 0x7859, 0x1344: 0x7871, 0x1345: 0x7871,\n\t0x1346: 0x7889, 0x1347: 0x7889, 0x1348: 0x78a1, 0x1349: 0x78a1, 0x134a: 0x78b9, 0x134b: 0x78b9,\n\t0x134c: 0x78d1, 0x134d: 0x78d1, 0x134e: 0x78e9, 0x134f: 0x78e9, 0x1350: 0x78e9, 0x1351: 0x78e9,\n\t0x1352: 0x7901, 0x1353: 0x7901, 0x1354: 0x7901, 0x1355: 0x7901, 0x1356: 0x7919, 0x1357: 0x7919,\n\t0x1358: 0x7919, 0x1359: 0x7919, 0x135a: 0x7931, 0x135b: 0x7931, 0x135c: 0x7931, 0x135d: 0x7931,\n\t0x135e: 0x7949, 0x135f: 0x7949, 0x1360: 0x7961, 0x1361: 0x7961, 0x1362: 0x7961, 0x1363: 0x7961,\n\t0x1364: 0x7979, 0x1365: 0x7979, 0x1366: 0x7991, 0x1367: 0x7991, 0x1368: 0x7991, 0x1369: 0x7991,\n\t0x136a: 0x79a9, 0x136b: 0x79a9, 0x136c: 0x79a9, 0x136d: 0x79a9, 0x136e: 0x79c1, 0x136f: 0x79c1,\n\t0x1370: 0x79d9, 0x1371: 0x79d9, 0x1372: 0x0818, 0x1373: 0x0818, 0x1374: 0x0818, 0x1375: 0x0818,\n\t0x1376: 0x0818, 0x1377: 0x0818, 0x1378: 0x0818, 0x1379: 0x0818, 0x137a: 0x0818, 0x137b: 0x0818,\n\t0x137c: 0x0818, 0x137d: 0x0818, 0x137e: 0x0818, 0x137f: 0x0818,\n\t// Block 0x4e, offset 0x1380\n\t0x1380: 0x0818, 0x1381: 0x0818, 0x1382: 0x0040, 0x1383: 0x0040, 0x1384: 0x0040, 0x1385: 0x0040,\n\t0x1386: 0x0040, 0x1387: 0x0040, 0x1388: 0x0040, 0x1389: 0x0040, 0x138a: 0x0040, 0x138b: 0x0040,\n\t0x138c: 0x0040, 0x138d: 0x0040, 0x138e: 0x0040, 0x138f: 0x0040, 0x1390: 0x0040, 0x1391: 0x0040,\n\t0x1392: 0x0040, 0x1393: 0x79f1, 0x1394: 0x79f1, 0x1395: 0x79f1, 0x1396: 0x79f1, 0x1397: 0x7a09,\n\t0x1398: 0x7a09, 0x1399: 0x7a21, 0x139a: 0x7a21, 0x139b: 0x7a39, 0x139c: 0x7a39, 0x139d: 0x0479,\n\t0x139e: 0x7a51, 0x139f: 0x7a51, 0x13a0: 0x7a69, 0x13a1: 0x7a69, 0x13a2: 0x7a81, 0x13a3: 0x7a81,\n\t0x13a4: 0x7a99, 0x13a5: 0x7a99, 0x13a6: 0x7a99, 0x13a7: 0x7a99, 0x13a8: 0x7ab1, 0x13a9: 0x7ab1,\n\t0x13aa: 0x7ac9, 0x13ab: 0x7ac9, 0x13ac: 0x7af1, 0x13ad: 0x7af1, 0x13ae: 0x7b19, 0x13af: 0x7b19,\n\t0x13b0: 0x7b41, 0x13b1: 0x7b41, 0x13b2: 0x7b69, 0x13b3: 0x7b69, 0x13b4: 0x7b91, 0x13b5: 0x7b91,\n\t0x13b6: 0x7bb9, 0x13b7: 0x7bb9, 0x13b8: 0x7bb9, 0x13b9: 0x7be1, 0x13ba: 0x7be1, 0x13bb: 0x7be1,\n\t0x13bc: 0x7c09, 0x13bd: 0x7c09, 0x13be: 0x7c09, 0x13bf: 0x7c09,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c0: 0x85f9, 0x13c1: 0x8621, 0x13c2: 0x8649, 0x13c3: 0x8671, 0x13c4: 0x8699, 0x13c5: 0x86c1,\n\t0x13c6: 0x86e9, 0x13c7: 0x8711, 0x13c8: 0x8739, 0x13c9: 0x8761, 0x13ca: 0x8789, 0x13cb: 0x87b1,\n\t0x13cc: 0x87d9, 0x13cd: 0x8801, 0x13ce: 0x8829, 0x13cf: 0x8851, 0x13d0: 0x8879, 0x13d1: 0x88a1,\n\t0x13d2: 0x88c9, 0x13d3: 0x88f1, 0x13d4: 0x8919, 0x13d5: 0x8941, 0x13d6: 0x8969, 0x13d7: 0x8991,\n\t0x13d8: 0x89b9, 0x13d9: 0x89e1, 0x13da: 0x8a09, 0x13db: 0x8a31, 0x13dc: 0x8a59, 0x13dd: 0x8a81,\n\t0x13de: 0x8aaa, 0x13df: 0x8ada, 0x13e0: 0x8b0a, 0x13e1: 0x8b3a, 0x13e2: 0x8b6a, 0x13e3: 0x8b9a,\n\t0x13e4: 0x8bc9, 0x13e5: 0x8bf1, 0x13e6: 0x7c71, 0x13e7: 0x8c19, 0x13e8: 0x7be1, 0x13e9: 0x7c99,\n\t0x13ea: 0x8c41, 0x13eb: 0x8c69, 0x13ec: 0x7d39, 0x13ed: 0x8c91, 0x13ee: 0x7d61, 0x13ef: 0x7d89,\n\t0x13f0: 0x8cb9, 0x13f1: 0x8ce1, 0x13f2: 0x7e29, 0x13f3: 0x8d09, 0x13f4: 0x7e51, 0x13f5: 0x7e79,\n\t0x13f6: 0x8d31, 0x13f7: 0x8d59, 0x13f8: 0x7ec9, 0x13f9: 0x8d81, 0x13fa: 0x7ef1, 0x13fb: 0x7f19,\n\t0x13fc: 0x83a1, 0x13fd: 0x83c9, 0x13fe: 0x8441, 0x13ff: 0x8469,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x8491, 0x1401: 0x8531, 0x1402: 0x8559, 0x1403: 0x8581, 0x1404: 0x85a9, 0x1405: 0x8649,\n\t0x1406: 0x8671, 0x1407: 0x8699, 0x1408: 0x8da9, 0x1409: 0x8739, 0x140a: 0x8dd1, 0x140b: 0x8df9,\n\t0x140c: 0x8829, 0x140d: 0x8e21, 0x140e: 0x8851, 0x140f: 0x8879, 0x1410: 0x8a81, 0x1411: 0x8e49,\n\t0x1412: 0x8e71, 0x1413: 0x89b9, 0x1414: 0x8e99, 0x1415: 0x89e1, 0x1416: 0x8a09, 0x1417: 0x7c21,\n\t0x1418: 0x7c49, 0x1419: 0x8ec1, 0x141a: 0x7c71, 0x141b: 0x8ee9, 0x141c: 0x7cc1, 0x141d: 0x7ce9,\n\t0x141e: 0x7d11, 0x141f: 0x7d39, 0x1420: 0x8f11, 0x1421: 0x7db1, 0x1422: 0x7dd9, 0x1423: 0x7e01,\n\t0x1424: 0x7e29, 0x1425: 0x8f39, 0x1426: 0x7ec9, 0x1427: 0x7f41, 0x1428: 0x7f69, 0x1429: 0x7f91,\n\t0x142a: 0x7fb9, 0x142b: 0x7fe1, 0x142c: 0x8031, 0x142d: 0x8059, 0x142e: 0x8081, 0x142f: 0x80a9,\n\t0x1430: 0x80d1, 0x1431: 0x80f9, 0x1432: 0x8f61, 0x1433: 0x8121, 0x1434: 0x8149, 0x1435: 0x8171,\n\t0x1436: 0x8199, 0x1437: 0x81c1, 0x1438: 0x81e9, 0x1439: 0x8239, 0x143a: 0x8261, 0x143b: 0x8289,\n\t0x143c: 0x82b1, 0x143d: 0x82d9, 0x143e: 0x8301, 0x143f: 0x8329,\n\t// Block 0x51, offset 0x1440\n\t0x1440: 0x8351, 0x1441: 0x8379, 0x1442: 0x83f1, 0x1443: 0x8419, 0x1444: 0x84b9, 0x1445: 0x84e1,\n\t0x1446: 0x8509, 0x1447: 0x8531, 0x1448: 0x8559, 0x1449: 0x85d1, 0x144a: 0x85f9, 0x144b: 0x8621,\n\t0x144c: 0x8649, 0x144d: 0x8f89, 0x144e: 0x86c1, 0x144f: 0x86e9, 0x1450: 0x8711, 0x1451: 0x8739,\n\t0x1452: 0x87b1, 0x1453: 0x87d9, 0x1454: 0x8801, 0x1455: 0x8829, 0x1456: 0x8fb1, 0x1457: 0x88a1,\n\t0x1458: 0x88c9, 0x1459: 0x8fd9, 0x145a: 0x8941, 0x145b: 0x8969, 0x145c: 0x8991, 0x145d: 0x89b9,\n\t0x145e: 0x9001, 0x145f: 0x7c71, 0x1460: 0x8ee9, 0x1461: 0x7d39, 0x1462: 0x8f11, 0x1463: 0x7e29,\n\t0x1464: 0x8f39, 0x1465: 0x7ec9, 0x1466: 0x9029, 0x1467: 0x80d1, 0x1468: 0x9051, 0x1469: 0x9079,\n\t0x146a: 0x90a1, 0x146b: 0x8531, 0x146c: 0x8559, 0x146d: 0x8649, 0x146e: 0x8829, 0x146f: 0x8fb1,\n\t0x1470: 0x89b9, 0x1471: 0x9001, 0x1472: 0x90c9, 0x1473: 0x9101, 0x1474: 0x9139, 0x1475: 0x9171,\n\t0x1476: 0x9199, 0x1477: 0x91c1, 0x1478: 0x91e9, 0x1479: 0x9211, 0x147a: 0x9239, 0x147b: 0x9261,\n\t0x147c: 0x9289, 0x147d: 0x92b1, 0x147e: 0x92d9, 0x147f: 0x9301,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x9329, 0x1481: 0x9351, 0x1482: 0x9379, 0x1483: 0x93a1, 0x1484: 0x93c9, 0x1485: 0x93f1,\n\t0x1486: 0x9419, 0x1487: 0x9441, 0x1488: 0x9469, 0x1489: 0x9491, 0x148a: 0x94b9, 0x148b: 0x94e1,\n\t0x148c: 0x9079, 0x148d: 0x9509, 0x148e: 0x9531, 0x148f: 0x9559, 0x1490: 0x9581, 0x1491: 0x9171,\n\t0x1492: 0x9199, 0x1493: 0x91c1, 0x1494: 0x91e9, 0x1495: 0x9211, 0x1496: 0x9239, 0x1497: 0x9261,\n\t0x1498: 0x9289, 0x1499: 0x92b1, 0x149a: 0x92d9, 0x149b: 0x9301, 0x149c: 0x9329, 0x149d: 0x9351,\n\t0x149e: 0x9379, 0x149f: 0x93a1, 0x14a0: 0x93c9, 0x14a1: 0x93f1, 0x14a2: 0x9419, 0x14a3: 0x9441,\n\t0x14a4: 0x9469, 0x14a5: 0x9491, 0x14a6: 0x94b9, 0x14a7: 0x94e1, 0x14a8: 0x9079, 0x14a9: 0x9509,\n\t0x14aa: 0x9531, 0x14ab: 0x9559, 0x14ac: 0x9581, 0x14ad: 0x9491, 0x14ae: 0x94b9, 0x14af: 0x94e1,\n\t0x14b0: 0x9079, 0x14b1: 0x9051, 0x14b2: 0x90a1, 0x14b3: 0x8211, 0x14b4: 0x8059, 0x14b5: 0x8081,\n\t0x14b6: 0x80a9, 0x14b7: 0x9491, 0x14b8: 0x94b9, 0x14b9: 0x94e1, 0x14ba: 0x8211, 0x14bb: 0x8239,\n\t0x14bc: 0x95a9, 0x14bd: 0x95a9, 0x14be: 0x0018, 0x14bf: 0x0018,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x0040, 0x14c1: 0x0040, 0x14c2: 0x0040, 0x14c3: 0x0040, 0x14c4: 0x0040, 0x14c5: 0x0040,\n\t0x14c6: 0x0040, 0x14c7: 0x0040, 0x14c8: 0x0040, 0x14c9: 0x0040, 0x14ca: 0x0040, 0x14cb: 0x0040,\n\t0x14cc: 0x0040, 0x14cd: 0x0040, 0x14ce: 0x0040, 0x14cf: 0x0040, 0x14d0: 0x95d1, 0x14d1: 0x9609,\n\t0x14d2: 0x9609, 0x14d3: 0x9641, 0x14d4: 0x9679, 0x14d5: 0x96b1, 0x14d6: 0x96e9, 0x14d7: 0x9721,\n\t0x14d8: 0x9759, 0x14d9: 0x9759, 0x14da: 0x9791, 0x14db: 0x97c9, 0x14dc: 0x9801, 0x14dd: 0x9839,\n\t0x14de: 0x9871, 0x14df: 0x98a9, 0x14e0: 0x98a9, 0x14e1: 0x98e1, 0x14e2: 0x9919, 0x14e3: 0x9919,\n\t0x14e4: 0x9951, 0x14e5: 0x9951, 0x14e6: 0x9989, 0x14e7: 0x99c1, 0x14e8: 0x99c1, 0x14e9: 0x99f9,\n\t0x14ea: 0x9a31, 0x14eb: 0x9a31, 0x14ec: 0x9a69, 0x14ed: 0x9a69, 0x14ee: 0x9aa1, 0x14ef: 0x9ad9,\n\t0x14f0: 0x9ad9, 0x14f1: 0x9b11, 0x14f2: 0x9b11, 0x14f3: 0x9b49, 0x14f4: 0x9b81, 0x14f5: 0x9bb9,\n\t0x14f6: 0x9bf1, 0x14f7: 0x9bf1, 0x14f8: 0x9c29, 0x14f9: 0x9c61, 0x14fa: 0x9c99, 0x14fb: 0x9cd1,\n\t0x14fc: 0x9d09, 0x14fd: 0x9d09, 0x14fe: 0x9d41, 0x14ff: 0x9d79,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0xa949, 0x1501: 0xa981, 0x1502: 0xa9b9, 0x1503: 0xa8a1, 0x1504: 0x9bb9, 0x1505: 0x9989,\n\t0x1506: 0xa9f1, 0x1507: 0xaa29, 0x1508: 0x0040, 0x1509: 0x0040, 0x150a: 0x0040, 0x150b: 0x0040,\n\t0x150c: 0x0040, 0x150d: 0x0040, 0x150e: 0x0040, 0x150f: 0x0040, 0x1510: 0x0040, 0x1511: 0x0040,\n\t0x1512: 0x0040, 0x1513: 0x0040, 0x1514: 0x0040, 0x1515: 0x0040, 0x1516: 0x0040, 0x1517: 0x0040,\n\t0x1518: 0x0040, 0x1519: 0x0040, 0x151a: 0x0040, 0x151b: 0x0040, 0x151c: 0x0040, 0x151d: 0x0040,\n\t0x151e: 0x0040, 0x151f: 0x0040, 0x1520: 0x0040, 0x1521: 0x0040, 0x1522: 0x0040, 0x1523: 0x0040,\n\t0x1524: 0x0040, 0x1525: 0x0040, 0x1526: 0x0040, 0x1527: 0x0040, 0x1528: 0x0040, 0x1529: 0x0040,\n\t0x152a: 0x0040, 0x152b: 0x0040, 0x152c: 0x0040, 0x152d: 0x0040, 0x152e: 0x0040, 0x152f: 0x0040,\n\t0x1530: 0xaa61, 0x1531: 0xaa99, 0x1532: 0xaad1, 0x1533: 0xab19, 0x1534: 0xab61, 0x1535: 0xaba9,\n\t0x1536: 0xabf1, 0x1537: 0xac39, 0x1538: 0xac81, 0x1539: 0xacc9, 0x153a: 0xad02, 0x153b: 0xae12,\n\t0x153c: 0xae91, 0x153d: 0x0018, 0x153e: 0x0040, 0x153f: 0x0040,\n\t// Block 0x55, offset 0x1540\n\t0x1540: 0x33c0, 0x1541: 0x33c0, 0x1542: 0x33c0, 0x1543: 0x33c0, 0x1544: 0x33c0, 0x1545: 0x33c0,\n\t0x1546: 0x33c0, 0x1547: 0x33c0, 0x1548: 0x33c0, 0x1549: 0x33c0, 0x154a: 0x33c0, 0x154b: 0x33c0,\n\t0x154c: 0x33c0, 0x154d: 0x33c0, 0x154e: 0x33c0, 0x154f: 0x33c0, 0x1550: 0xaeda, 0x1551: 0x7d8d,\n\t0x1552: 0x0040, 0x1553: 0xaeea, 0x1554: 0x03c2, 0x1555: 0xaefa, 0x1556: 0xaf0a, 0x1557: 0x7dad,\n\t0x1558: 0x7dcd, 0x1559: 0x0040, 0x155a: 0x0040, 0x155b: 0x0040, 0x155c: 0x0040, 0x155d: 0x0040,\n\t0x155e: 0x0040, 0x155f: 0x0040, 0x1560: 0x3308, 0x1561: 0x3308, 0x1562: 0x3308, 0x1563: 0x3308,\n\t0x1564: 0x3308, 0x1565: 0x3308, 0x1566: 0x3308, 0x1567: 0x3308, 0x1568: 0x3308, 0x1569: 0x3308,\n\t0x156a: 0x3308, 0x156b: 0x3308, 0x156c: 0x3308, 0x156d: 0x3308, 0x156e: 0x3308, 0x156f: 0x3308,\n\t0x1570: 0x0040, 0x1571: 0x7ded, 0x1572: 0x7e0d, 0x1573: 0xaf1a, 0x1574: 0xaf1a, 0x1575: 0x1fd2,\n\t0x1576: 0x1fe2, 0x1577: 0xaf2a, 0x1578: 0xaf3a, 0x1579: 0x7e2d, 0x157a: 0x7e4d, 0x157b: 0x7e6d,\n\t0x157c: 0x7e2d, 0x157d: 0x7e8d, 0x157e: 0x7ead, 0x157f: 0x7e8d,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x7ecd, 0x1581: 0x7eed, 0x1582: 0x7f0d, 0x1583: 0x7eed, 0x1584: 0x7f2d, 0x1585: 0x0018,\n\t0x1586: 0x0018, 0x1587: 0xaf4a, 0x1588: 0xaf5a, 0x1589: 0x7f4e, 0x158a: 0x7f6e, 0x158b: 0x7f8e,\n\t0x158c: 0x7fae, 0x158d: 0xaf1a, 0x158e: 0xaf1a, 0x158f: 0xaf1a, 0x1590: 0xaeda, 0x1591: 0x7fcd,\n\t0x1592: 0x0040, 0x1593: 0x0040, 0x1594: 0x03c2, 0x1595: 0xaeea, 0x1596: 0xaf0a, 0x1597: 0xaefa,\n\t0x1598: 0x7fed, 0x1599: 0x1fd2, 0x159a: 0x1fe2, 0x159b: 0xaf2a, 0x159c: 0xaf3a, 0x159d: 0x7ecd,\n\t0x159e: 0x7f2d, 0x159f: 0xaf6a, 0x15a0: 0xaf7a, 0x15a1: 0xaf8a, 0x15a2: 0x1fb2, 0x15a3: 0xaf99,\n\t0x15a4: 0xafaa, 0x15a5: 0xafba, 0x15a6: 0x1fc2, 0x15a7: 0x0040, 0x15a8: 0xafca, 0x15a9: 0xafda,\n\t0x15aa: 0xafea, 0x15ab: 0xaffa, 0x15ac: 0x0040, 0x15ad: 0x0040, 0x15ae: 0x0040, 0x15af: 0x0040,\n\t0x15b0: 0x800e, 0x15b1: 0xb009, 0x15b2: 0x802e, 0x15b3: 0x0808, 0x15b4: 0x804e, 0x15b5: 0x0040,\n\t0x15b6: 0x806e, 0x15b7: 0xb031, 0x15b8: 0x808e, 0x15b9: 0xb059, 0x15ba: 0x80ae, 0x15bb: 0xb081,\n\t0x15bc: 0x80ce, 0x15bd: 0xb0a9, 0x15be: 0x80ee, 0x15bf: 0xb0d1,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0xb0f9, 0x15c1: 0xb111, 0x15c2: 0xb111, 0x15c3: 0xb129, 0x15c4: 0xb129, 0x15c5: 0xb141,\n\t0x15c6: 0xb141, 0x15c7: 0xb159, 0x15c8: 0xb159, 0x15c9: 0xb171, 0x15ca: 0xb171, 0x15cb: 0xb171,\n\t0x15cc: 0xb171, 0x15cd: 0xb189, 0x15ce: 0xb189, 0x15cf: 0xb1a1, 0x15d0: 0xb1a1, 0x15d1: 0xb1a1,\n\t0x15d2: 0xb1a1, 0x15d3: 0xb1b9, 0x15d4: 0xb1b9, 0x15d5: 0xb1d1, 0x15d6: 0xb1d1, 0x15d7: 0xb1d1,\n\t0x15d8: 0xb1d1, 0x15d9: 0xb1e9, 0x15da: 0xb1e9, 0x15db: 0xb1e9, 0x15dc: 0xb1e9, 0x15dd: 0xb201,\n\t0x15de: 0xb201, 0x15df: 0xb201, 0x15e0: 0xb201, 0x15e1: 0xb219, 0x15e2: 0xb219, 0x15e3: 0xb219,\n\t0x15e4: 0xb219, 0x15e5: 0xb231, 0x15e6: 0xb231, 0x15e7: 0xb231, 0x15e8: 0xb231, 0x15e9: 0xb249,\n\t0x15ea: 0xb249, 0x15eb: 0xb261, 0x15ec: 0xb261, 0x15ed: 0xb279, 0x15ee: 0xb279, 0x15ef: 0xb291,\n\t0x15f0: 0xb291, 0x15f1: 0xb2a9, 0x15f2: 0xb2a9, 0x15f3: 0xb2a9, 0x15f4: 0xb2a9, 0x15f5: 0xb2c1,\n\t0x15f6: 0xb2c1, 0x15f7: 0xb2c1, 0x15f8: 0xb2c1, 0x15f9: 0xb2d9, 0x15fa: 0xb2d9, 0x15fb: 0xb2d9,\n\t0x15fc: 0xb2d9, 0x15fd: 0xb2f1, 0x15fe: 0xb2f1, 0x15ff: 0xb2f1,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0xb2f1, 0x1601: 0xb309, 0x1602: 0xb309, 0x1603: 0xb309, 0x1604: 0xb309, 0x1605: 0xb321,\n\t0x1606: 0xb321, 0x1607: 0xb321, 0x1608: 0xb321, 0x1609: 0xb339, 0x160a: 0xb339, 0x160b: 0xb339,\n\t0x160c: 0xb339, 0x160d: 0xb351, 0x160e: 0xb351, 0x160f: 0xb351, 0x1610: 0xb351, 0x1611: 0xb369,\n\t0x1612: 0xb369, 0x1613: 0xb369, 0x1614: 0xb369, 0x1615: 0xb381, 0x1616: 0xb381, 0x1617: 0xb381,\n\t0x1618: 0xb381, 0x1619: 0xb399, 0x161a: 0xb399, 0x161b: 0xb399, 0x161c: 0xb399, 0x161d: 0xb3b1,\n\t0x161e: 0xb3b1, 0x161f: 0xb3b1, 0x1620: 0xb3b1, 0x1621: 0xb3c9, 0x1622: 0xb3c9, 0x1623: 0xb3c9,\n\t0x1624: 0xb3c9, 0x1625: 0xb3e1, 0x1626: 0xb3e1, 0x1627: 0xb3e1, 0x1628: 0xb3e1, 0x1629: 0xb3f9,\n\t0x162a: 0xb3f9, 0x162b: 0xb3f9, 0x162c: 0xb3f9, 0x162d: 0xb411, 0x162e: 0xb411, 0x162f: 0x7ab1,\n\t0x1630: 0x7ab1, 0x1631: 0xb429, 0x1632: 0xb429, 0x1633: 0xb429, 0x1634: 0xb429, 0x1635: 0xb441,\n\t0x1636: 0xb441, 0x1637: 0xb469, 0x1638: 0xb469, 0x1639: 0xb491, 0x163a: 0xb491, 0x163b: 0xb4b9,\n\t0x163c: 0xb4b9, 0x163d: 0x0040, 0x163e: 0x0040, 0x163f: 0x03c0,\n\t// Block 0x59, offset 0x1640\n\t0x1640: 0x0040, 0x1641: 0xaefa, 0x1642: 0xb4e2, 0x1643: 0xaf6a, 0x1644: 0xafda, 0x1645: 0xafea,\n\t0x1646: 0xaf7a, 0x1647: 0xb4f2, 0x1648: 0x1fd2, 0x1649: 0x1fe2, 0x164a: 0xaf8a, 0x164b: 0x1fb2,\n\t0x164c: 0xaeda, 0x164d: 0xaf99, 0x164e: 0x29d1, 0x164f: 0xb502, 0x1650: 0x1f41, 0x1651: 0x00c9,\n\t0x1652: 0x0069, 0x1653: 0x0079, 0x1654: 0x1f51, 0x1655: 0x1f61, 0x1656: 0x1f71, 0x1657: 0x1f81,\n\t0x1658: 0x1f91, 0x1659: 0x1fa1, 0x165a: 0xaeea, 0x165b: 0x03c2, 0x165c: 0xafaa, 0x165d: 0x1fc2,\n\t0x165e: 0xafba, 0x165f: 0xaf0a, 0x1660: 0xaffa, 0x1661: 0x0039, 0x1662: 0x0ee9, 0x1663: 0x1159,\n\t0x1664: 0x0ef9, 0x1665: 0x0f09, 0x1666: 0x1199, 0x1667: 0x0f31, 0x1668: 0x0249, 0x1669: 0x0f41,\n\t0x166a: 0x0259, 0x166b: 0x0f51, 0x166c: 0x0359, 0x166d: 0x0f61, 0x166e: 0x0f71, 0x166f: 0x00d9,\n\t0x1670: 0x0f99, 0x1671: 0x2039, 0x1672: 0x0269, 0x1673: 0x01d9, 0x1674: 0x0fa9, 0x1675: 0x0fb9,\n\t0x1676: 0x1089, 0x1677: 0x0279, 0x1678: 0x0369, 0x1679: 0x0289, 0x167a: 0x13d1, 0x167b: 0xaf4a,\n\t0x167c: 0xafca, 0x167d: 0xaf5a, 0x167e: 0xb512, 0x167f: 0xaf1a,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x1caa, 0x1681: 0x0039, 0x1682: 0x0ee9, 0x1683: 0x1159, 0x1684: 0x0ef9, 0x1685: 0x0f09,\n\t0x1686: 0x1199, 0x1687: 0x0f31, 0x1688: 0x0249, 0x1689: 0x0f41, 0x168a: 0x0259, 0x168b: 0x0f51,\n\t0x168c: 0x0359, 0x168d: 0x0f61, 0x168e: 0x0f71, 0x168f: 0x00d9, 0x1690: 0x0f99, 0x1691: 0x2039,\n\t0x1692: 0x0269, 0x1693: 0x01d9, 0x1694: 0x0fa9, 0x1695: 0x0fb9, 0x1696: 0x1089, 0x1697: 0x0279,\n\t0x1698: 0x0369, 0x1699: 0x0289, 0x169a: 0x13d1, 0x169b: 0xaf2a, 0x169c: 0xb522, 0x169d: 0xaf3a,\n\t0x169e: 0xb532, 0x169f: 0x810d, 0x16a0: 0x812d, 0x16a1: 0x29d1, 0x16a2: 0x814d, 0x16a3: 0x814d,\n\t0x16a4: 0x816d, 0x16a5: 0x818d, 0x16a6: 0x81ad, 0x16a7: 0x81cd, 0x16a8: 0x81ed, 0x16a9: 0x820d,\n\t0x16aa: 0x822d, 0x16ab: 0x824d, 0x16ac: 0x826d, 0x16ad: 0x828d, 0x16ae: 0x82ad, 0x16af: 0x82cd,\n\t0x16b0: 0x82ed, 0x16b1: 0x830d, 0x16b2: 0x832d, 0x16b3: 0x834d, 0x16b4: 0x836d, 0x16b5: 0x838d,\n\t0x16b6: 0x83ad, 0x16b7: 0x83cd, 0x16b8: 0x83ed, 0x16b9: 0x840d, 0x16ba: 0x842d, 0x16bb: 0x844d,\n\t0x16bc: 0x81ed, 0x16bd: 0x846d, 0x16be: 0x848d, 0x16bf: 0x824d,\n\t// Block 0x5b, offset 0x16c0\n\t0x16c0: 0x84ad, 0x16c1: 0x84cd, 0x16c2: 0x84ed, 0x16c3: 0x850d, 0x16c4: 0x852d, 0x16c5: 0x854d,\n\t0x16c6: 0x856d, 0x16c7: 0x858d, 0x16c8: 0x850d, 0x16c9: 0x85ad, 0x16ca: 0x850d, 0x16cb: 0x85cd,\n\t0x16cc: 0x85cd, 0x16cd: 0x85ed, 0x16ce: 0x85ed, 0x16cf: 0x860d, 0x16d0: 0x854d, 0x16d1: 0x862d,\n\t0x16d2: 0x864d, 0x16d3: 0x862d, 0x16d4: 0x866d, 0x16d5: 0x864d, 0x16d6: 0x868d, 0x16d7: 0x868d,\n\t0x16d8: 0x86ad, 0x16d9: 0x86ad, 0x16da: 0x86cd, 0x16db: 0x86cd, 0x16dc: 0x864d, 0x16dd: 0x814d,\n\t0x16de: 0x86ed, 0x16df: 0x870d, 0x16e0: 0x0040, 0x16e1: 0x872d, 0x16e2: 0x874d, 0x16e3: 0x876d,\n\t0x16e4: 0x878d, 0x16e5: 0x876d, 0x16e6: 0x87ad, 0x16e7: 0x87cd, 0x16e8: 0x87ed, 0x16e9: 0x87ed,\n\t0x16ea: 0x880d, 0x16eb: 0x880d, 0x16ec: 0x882d, 0x16ed: 0x882d, 0x16ee: 0x880d, 0x16ef: 0x880d,\n\t0x16f0: 0x884d, 0x16f1: 0x886d, 0x16f2: 0x888d, 0x16f3: 0x88ad, 0x16f4: 0x88cd, 0x16f5: 0x88ed,\n\t0x16f6: 0x88ed, 0x16f7: 0x88ed, 0x16f8: 0x890d, 0x16f9: 0x890d, 0x16fa: 0x890d, 0x16fb: 0x890d,\n\t0x16fc: 0x87ed, 0x16fd: 0x87ed, 0x16fe: 0x87ed, 0x16ff: 0x0040,\n\t// Block 0x5c, offset 0x1700\n\t0x1700: 0x0040, 0x1701: 0x0040, 0x1702: 0x874d, 0x1703: 0x872d, 0x1704: 0x892d, 0x1705: 0x872d,\n\t0x1706: 0x874d, 0x1707: 0x872d, 0x1708: 0x0040, 0x1709: 0x0040, 0x170a: 0x894d, 0x170b: 0x874d,\n\t0x170c: 0x896d, 0x170d: 0x892d, 0x170e: 0x896d, 0x170f: 0x874d, 0x1710: 0x0040, 0x1711: 0x0040,\n\t0x1712: 0x898d, 0x1713: 0x89ad, 0x1714: 0x88ad, 0x1715: 0x896d, 0x1716: 0x892d, 0x1717: 0x896d,\n\t0x1718: 0x0040, 0x1719: 0x0040, 0x171a: 0x89cd, 0x171b: 0x89ed, 0x171c: 0x89cd, 0x171d: 0x0040,\n\t0x171e: 0x0040, 0x171f: 0x0040, 0x1720: 0xb541, 0x1721: 0xb559, 0x1722: 0xb571, 0x1723: 0x8a0e,\n\t0x1724: 0xb589, 0x1725: 0xb5a1, 0x1726: 0x8a2d, 0x1727: 0x0040, 0x1728: 0x8a4d, 0x1729: 0x8a6d,\n\t0x172a: 0x8a8d, 0x172b: 0x8a6d, 0x172c: 0x8aad, 0x172d: 0x8acd, 0x172e: 0x8aed, 0x172f: 0x0040,\n\t0x1730: 0x0040, 0x1731: 0x0040, 0x1732: 0x0040, 0x1733: 0x0040, 0x1734: 0x0040, 0x1735: 0x0040,\n\t0x1736: 0x0040, 0x1737: 0x0040, 0x1738: 0x0040, 0x1739: 0x0340, 0x173a: 0x0340, 0x173b: 0x0340,\n\t0x173c: 0x0040, 0x173d: 0x0040, 0x173e: 0x0040, 0x173f: 0x0040,\n\t// Block 0x5d, offset 0x1740\n\t0x1740: 0x0a08, 0x1741: 0x0a08, 0x1742: 0x0a08, 0x1743: 0x0a08, 0x1744: 0x0a08, 0x1745: 0x0c08,\n\t0x1746: 0x0808, 0x1747: 0x0c08, 0x1748: 0x0818, 0x1749: 0x0c08, 0x174a: 0x0c08, 0x174b: 0x0808,\n\t0x174c: 0x0808, 0x174d: 0x0908, 0x174e: 0x0c08, 0x174f: 0x0c08, 0x1750: 0x0c08, 0x1751: 0x0c08,\n\t0x1752: 0x0c08, 0x1753: 0x0a08, 0x1754: 0x0a08, 0x1755: 0x0a08, 0x1756: 0x0a08, 0x1757: 0x0908,\n\t0x1758: 0x0a08, 0x1759: 0x0a08, 0x175a: 0x0a08, 0x175b: 0x0a08, 0x175c: 0x0a08, 0x175d: 0x0c08,\n\t0x175e: 0x0a08, 0x175f: 0x0a08, 0x1760: 0x0a08, 0x1761: 0x0c08, 0x1762: 0x0808, 0x1763: 0x0808,\n\t0x1764: 0x0c08, 0x1765: 0x3308, 0x1766: 0x3308, 0x1767: 0x0040, 0x1768: 0x0040, 0x1769: 0x0040,\n\t0x176a: 0x0040, 0x176b: 0x0a18, 0x176c: 0x0a18, 0x176d: 0x0a18, 0x176e: 0x0a18, 0x176f: 0x0c18,\n\t0x1770: 0x0818, 0x1771: 0x0818, 0x1772: 0x0818, 0x1773: 0x0818, 0x1774: 0x0818, 0x1775: 0x0818,\n\t0x1776: 0x0818, 0x1777: 0x0040, 0x1778: 0x0040, 0x1779: 0x0040, 0x177a: 0x0040, 0x177b: 0x0040,\n\t0x177c: 0x0040, 0x177d: 0x0040, 0x177e: 0x0040, 0x177f: 0x0040,\n\t// Block 0x5e, offset 0x1780\n\t0x1780: 0x0a08, 0x1781: 0x0c08, 0x1782: 0x0a08, 0x1783: 0x0c08, 0x1784: 0x0c08, 0x1785: 0x0c08,\n\t0x1786: 0x0a08, 0x1787: 0x0a08, 0x1788: 0x0a08, 0x1789: 0x0c08, 0x178a: 0x0a08, 0x178b: 0x0a08,\n\t0x178c: 0x0c08, 0x178d: 0x0a08, 0x178e: 0x0c08, 0x178f: 0x0c08, 0x1790: 0x0a08, 0x1791: 0x0c08,\n\t0x1792: 0x0040, 0x1793: 0x0040, 0x1794: 0x0040, 0x1795: 0x0040, 0x1796: 0x0040, 0x1797: 0x0040,\n\t0x1798: 0x0040, 0x1799: 0x0818, 0x179a: 0x0818, 0x179b: 0x0818, 0x179c: 0x0818, 0x179d: 0x0040,\n\t0x179e: 0x0040, 0x179f: 0x0040, 0x17a0: 0x0040, 0x17a1: 0x0040, 0x17a2: 0x0040, 0x17a3: 0x0040,\n\t0x17a4: 0x0040, 0x17a5: 0x0040, 0x17a6: 0x0040, 0x17a7: 0x0040, 0x17a8: 0x0040, 0x17a9: 0x0c18,\n\t0x17aa: 0x0c18, 0x17ab: 0x0c18, 0x17ac: 0x0c18, 0x17ad: 0x0a18, 0x17ae: 0x0a18, 0x17af: 0x0818,\n\t0x17b0: 0x0040, 0x17b1: 0x0040, 0x17b2: 0x0040, 0x17b3: 0x0040, 0x17b4: 0x0040, 0x17b5: 0x0040,\n\t0x17b6: 0x0040, 0x17b7: 0x0040, 0x17b8: 0x0040, 0x17b9: 0x0040, 0x17ba: 0x0040, 0x17bb: 0x0040,\n\t0x17bc: 0x0040, 0x17bd: 0x0040, 0x17be: 0x0040, 0x17bf: 0x0040,\n\t// Block 0x5f, offset 0x17c0\n\t0x17c0: 0x3308, 0x17c1: 0x3308, 0x17c2: 0x3008, 0x17c3: 0x3008, 0x17c4: 0x0040, 0x17c5: 0x0008,\n\t0x17c6: 0x0008, 0x17c7: 0x0008, 0x17c8: 0x0008, 0x17c9: 0x0008, 0x17ca: 0x0008, 0x17cb: 0x0008,\n\t0x17cc: 0x0008, 0x17cd: 0x0040, 0x17ce: 0x0040, 0x17cf: 0x0008, 0x17d0: 0x0008, 0x17d1: 0x0040,\n\t0x17d2: 0x0040, 0x17d3: 0x0008, 0x17d4: 0x0008, 0x17d5: 0x0008, 0x17d6: 0x0008, 0x17d7: 0x0008,\n\t0x17d8: 0x0008, 0x17d9: 0x0008, 0x17da: 0x0008, 0x17db: 0x0008, 0x17dc: 0x0008, 0x17dd: 0x0008,\n\t0x17de: 0x0008, 0x17df: 0x0008, 0x17e0: 0x0008, 0x17e1: 0x0008, 0x17e2: 0x0008, 0x17e3: 0x0008,\n\t0x17e4: 0x0008, 0x17e5: 0x0008, 0x17e6: 0x0008, 0x17e7: 0x0008, 0x17e8: 0x0008, 0x17e9: 0x0040,\n\t0x17ea: 0x0008, 0x17eb: 0x0008, 0x17ec: 0x0008, 0x17ed: 0x0008, 0x17ee: 0x0008, 0x17ef: 0x0008,\n\t0x17f0: 0x0008, 0x17f1: 0x0040, 0x17f2: 0x0008, 0x17f3: 0x0008, 0x17f4: 0x0040, 0x17f5: 0x0008,\n\t0x17f6: 0x0008, 0x17f7: 0x0008, 0x17f8: 0x0008, 0x17f9: 0x0008, 0x17fa: 0x0040, 0x17fb: 0x3308,\n\t0x17fc: 0x3308, 0x17fd: 0x0008, 0x17fe: 0x3008, 0x17ff: 0x3008,\n\t// Block 0x60, offset 0x1800\n\t0x1800: 0x3308, 0x1801: 0x3008, 0x1802: 0x3008, 0x1803: 0x3008, 0x1804: 0x3008, 0x1805: 0x0040,\n\t0x1806: 0x0040, 0x1807: 0x3008, 0x1808: 0x3008, 0x1809: 0x0040, 0x180a: 0x0040, 0x180b: 0x3008,\n\t0x180c: 0x3008, 0x180d: 0x3808, 0x180e: 0x0040, 0x180f: 0x0040, 0x1810: 0x0008, 0x1811: 0x0040,\n\t0x1812: 0x0040, 0x1813: 0x0040, 0x1814: 0x0040, 0x1815: 0x0040, 0x1816: 0x0040, 0x1817: 0x3008,\n\t0x1818: 0x0040, 0x1819: 0x0040, 0x181a: 0x0040, 0x181b: 0x0040, 0x181c: 0x0040, 0x181d: 0x0008,\n\t0x181e: 0x0008, 0x181f: 0x0008, 0x1820: 0x0008, 0x1821: 0x0008, 0x1822: 0x3008, 0x1823: 0x3008,\n\t0x1824: 0x0040, 0x1825: 0x0040, 0x1826: 0x3308, 0x1827: 0x3308, 0x1828: 0x3308, 0x1829: 0x3308,\n\t0x182a: 0x3308, 0x182b: 0x3308, 0x182c: 0x3308, 0x182d: 0x0040, 0x182e: 0x0040, 0x182f: 0x0040,\n\t0x1830: 0x3308, 0x1831: 0x3308, 0x1832: 0x3308, 0x1833: 0x3308, 0x1834: 0x3308, 0x1835: 0x0040,\n\t0x1836: 0x0040, 0x1837: 0x0040, 0x1838: 0x0040, 0x1839: 0x0040, 0x183a: 0x0040, 0x183b: 0x0040,\n\t0x183c: 0x0040, 0x183d: 0x0040, 0x183e: 0x0040, 0x183f: 0x0040,\n\t// Block 0x61, offset 0x1840\n\t0x1840: 0x0039, 0x1841: 0x0ee9, 0x1842: 0x1159, 0x1843: 0x0ef9, 0x1844: 0x0f09, 0x1845: 0x1199,\n\t0x1846: 0x0f31, 0x1847: 0x0249, 0x1848: 0x0f41, 0x1849: 0x0259, 0x184a: 0x0f51, 0x184b: 0x0359,\n\t0x184c: 0x0f61, 0x184d: 0x0f71, 0x184e: 0x00d9, 0x184f: 0x0f99, 0x1850: 0x2039, 0x1851: 0x0269,\n\t0x1852: 0x01d9, 0x1853: 0x0fa9, 0x1854: 0x0fb9, 0x1855: 0x1089, 0x1856: 0x0279, 0x1857: 0x0369,\n\t0x1858: 0x0289, 0x1859: 0x13d1, 0x185a: 0x0039, 0x185b: 0x0ee9, 0x185c: 0x1159, 0x185d: 0x0ef9,\n\t0x185e: 0x0f09, 0x185f: 0x1199, 0x1860: 0x0f31, 0x1861: 0x0249, 0x1862: 0x0f41, 0x1863: 0x0259,\n\t0x1864: 0x0f51, 0x1865: 0x0359, 0x1866: 0x0f61, 0x1867: 0x0f71, 0x1868: 0x00d9, 0x1869: 0x0f99,\n\t0x186a: 0x2039, 0x186b: 0x0269, 0x186c: 0x01d9, 0x186d: 0x0fa9, 0x186e: 0x0fb9, 0x186f: 0x1089,\n\t0x1870: 0x0279, 0x1871: 0x0369, 0x1872: 0x0289, 0x1873: 0x13d1, 0x1874: 0x0039, 0x1875: 0x0ee9,\n\t0x1876: 0x1159, 0x1877: 0x0ef9, 0x1878: 0x0f09, 0x1879: 0x1199, 0x187a: 0x0f31, 0x187b: 0x0249,\n\t0x187c: 0x0f41, 0x187d: 0x0259, 0x187e: 0x0f51, 0x187f: 0x0359,\n\t// Block 0x62, offset 0x1880\n\t0x1880: 0x0f61, 0x1881: 0x0f71, 0x1882: 0x00d9, 0x1883: 0x0f99, 0x1884: 0x2039, 0x1885: 0x0269,\n\t0x1886: 0x01d9, 0x1887: 0x0fa9, 0x1888: 0x0fb9, 0x1889: 0x1089, 0x188a: 0x0279, 0x188b: 0x0369,\n\t0x188c: 0x0289, 0x188d: 0x13d1, 0x188e: 0x0039, 0x188f: 0x0ee9, 0x1890: 0x1159, 0x1891: 0x0ef9,\n\t0x1892: 0x0f09, 0x1893: 0x1199, 0x1894: 0x0f31, 0x1895: 0x0040, 0x1896: 0x0f41, 0x1897: 0x0259,\n\t0x1898: 0x0f51, 0x1899: 0x0359, 0x189a: 0x0f61, 0x189b: 0x0f71, 0x189c: 0x00d9, 0x189d: 0x0f99,\n\t0x189e: 0x2039, 0x189f: 0x0269, 0x18a0: 0x01d9, 0x18a1: 0x0fa9, 0x18a2: 0x0fb9, 0x18a3: 0x1089,\n\t0x18a4: 0x0279, 0x18a5: 0x0369, 0x18a6: 0x0289, 0x18a7: 0x13d1, 0x18a8: 0x0039, 0x18a9: 0x0ee9,\n\t0x18aa: 0x1159, 0x18ab: 0x0ef9, 0x18ac: 0x0f09, 0x18ad: 0x1199, 0x18ae: 0x0f31, 0x18af: 0x0249,\n\t0x18b0: 0x0f41, 0x18b1: 0x0259, 0x18b2: 0x0f51, 0x18b3: 0x0359, 0x18b4: 0x0f61, 0x18b5: 0x0f71,\n\t0x18b6: 0x00d9, 0x18b7: 0x0f99, 0x18b8: 0x2039, 0x18b9: 0x0269, 0x18ba: 0x01d9, 0x18bb: 0x0fa9,\n\t0x18bc: 0x0fb9, 0x18bd: 0x1089, 0x18be: 0x0279, 0x18bf: 0x0369,\n\t// Block 0x63, offset 0x18c0\n\t0x18c0: 0x0289, 0x18c1: 0x13d1, 0x18c2: 0x0039, 0x18c3: 0x0ee9, 0x18c4: 0x1159, 0x18c5: 0x0ef9,\n\t0x18c6: 0x0f09, 0x18c7: 0x1199, 0x18c8: 0x0f31, 0x18c9: 0x0249, 0x18ca: 0x0f41, 0x18cb: 0x0259,\n\t0x18cc: 0x0f51, 0x18cd: 0x0359, 0x18ce: 0x0f61, 0x18cf: 0x0f71, 0x18d0: 0x00d9, 0x18d1: 0x0f99,\n\t0x18d2: 0x2039, 0x18d3: 0x0269, 0x18d4: 0x01d9, 0x18d5: 0x0fa9, 0x18d6: 0x0fb9, 0x18d7: 0x1089,\n\t0x18d8: 0x0279, 0x18d9: 0x0369, 0x18da: 0x0289, 0x18db: 0x13d1, 0x18dc: 0x0039, 0x18dd: 0x0040,\n\t0x18de: 0x1159, 0x18df: 0x0ef9, 0x18e0: 0x0040, 0x18e1: 0x0040, 0x18e2: 0x0f31, 0x18e3: 0x0040,\n\t0x18e4: 0x0040, 0x18e5: 0x0259, 0x18e6: 0x0f51, 0x18e7: 0x0040, 0x18e8: 0x0040, 0x18e9: 0x0f71,\n\t0x18ea: 0x00d9, 0x18eb: 0x0f99, 0x18ec: 0x2039, 0x18ed: 0x0040, 0x18ee: 0x01d9, 0x18ef: 0x0fa9,\n\t0x18f0: 0x0fb9, 0x18f1: 0x1089, 0x18f2: 0x0279, 0x18f3: 0x0369, 0x18f4: 0x0289, 0x18f5: 0x13d1,\n\t0x18f6: 0x0039, 0x18f7: 0x0ee9, 0x18f8: 0x1159, 0x18f9: 0x0ef9, 0x18fa: 0x0040, 0x18fb: 0x1199,\n\t0x18fc: 0x0040, 0x18fd: 0x0249, 0x18fe: 0x0f41, 0x18ff: 0x0259,\n\t// Block 0x64, offset 0x1900\n\t0x1900: 0x0f51, 0x1901: 0x0359, 0x1902: 0x0f61, 0x1903: 0x0f71, 0x1904: 0x0040, 0x1905: 0x0f99,\n\t0x1906: 0x2039, 0x1907: 0x0269, 0x1908: 0x01d9, 0x1909: 0x0fa9, 0x190a: 0x0fb9, 0x190b: 0x1089,\n\t0x190c: 0x0279, 0x190d: 0x0369, 0x190e: 0x0289, 0x190f: 0x13d1, 0x1910: 0x0039, 0x1911: 0x0ee9,\n\t0x1912: 0x1159, 0x1913: 0x0ef9, 0x1914: 0x0f09, 0x1915: 0x1199, 0x1916: 0x0f31, 0x1917: 0x0249,\n\t0x1918: 0x0f41, 0x1919: 0x0259, 0x191a: 0x0f51, 0x191b: 0x0359, 0x191c: 0x0f61, 0x191d: 0x0f71,\n\t0x191e: 0x00d9, 0x191f: 0x0f99, 0x1920: 0x2039, 0x1921: 0x0269, 0x1922: 0x01d9, 0x1923: 0x0fa9,\n\t0x1924: 0x0fb9, 0x1925: 0x1089, 0x1926: 0x0279, 0x1927: 0x0369, 0x1928: 0x0289, 0x1929: 0x13d1,\n\t0x192a: 0x0039, 0x192b: 0x0ee9, 0x192c: 0x1159, 0x192d: 0x0ef9, 0x192e: 0x0f09, 0x192f: 0x1199,\n\t0x1930: 0x0f31, 0x1931: 0x0249, 0x1932: 0x0f41, 0x1933: 0x0259, 0x1934: 0x0f51, 0x1935: 0x0359,\n\t0x1936: 0x0f61, 0x1937: 0x0f71, 0x1938: 0x00d9, 0x1939: 0x0f99, 0x193a: 0x2039, 0x193b: 0x0269,\n\t0x193c: 0x01d9, 0x193d: 0x0fa9, 0x193e: 0x0fb9, 0x193f: 0x1089,\n\t// Block 0x65, offset 0x1940\n\t0x1940: 0x0279, 0x1941: 0x0369, 0x1942: 0x0289, 0x1943: 0x13d1, 0x1944: 0x0039, 0x1945: 0x0ee9,\n\t0x1946: 0x0040, 0x1947: 0x0ef9, 0x1948: 0x0f09, 0x1949: 0x1199, 0x194a: 0x0f31, 0x194b: 0x0040,\n\t0x194c: 0x0040, 0x194d: 0x0259, 0x194e: 0x0f51, 0x194f: 0x0359, 0x1950: 0x0f61, 0x1951: 0x0f71,\n\t0x1952: 0x00d9, 0x1953: 0x0f99, 0x1954: 0x2039, 0x1955: 0x0040, 0x1956: 0x01d9, 0x1957: 0x0fa9,\n\t0x1958: 0x0fb9, 0x1959: 0x1089, 0x195a: 0x0279, 0x195b: 0x0369, 0x195c: 0x0289, 0x195d: 0x0040,\n\t0x195e: 0x0039, 0x195f: 0x0ee9, 0x1960: 0x1159, 0x1961: 0x0ef9, 0x1962: 0x0f09, 0x1963: 0x1199,\n\t0x1964: 0x0f31, 0x1965: 0x0249, 0x1966: 0x0f41, 0x1967: 0x0259, 0x1968: 0x0f51, 0x1969: 0x0359,\n\t0x196a: 0x0f61, 0x196b: 0x0f71, 0x196c: 0x00d9, 0x196d: 0x0f99, 0x196e: 0x2039, 0x196f: 0x0269,\n\t0x1970: 0x01d9, 0x1971: 0x0fa9, 0x1972: 0x0fb9, 0x1973: 0x1089, 0x1974: 0x0279, 0x1975: 0x0369,\n\t0x1976: 0x0289, 0x1977: 0x13d1, 0x1978: 0x0039, 0x1979: 0x0ee9, 0x197a: 0x0040, 0x197b: 0x0ef9,\n\t0x197c: 0x0f09, 0x197d: 0x1199, 0x197e: 0x0f31, 0x197f: 0x0040,\n\t// Block 0x66, offset 0x1980\n\t0x1980: 0x0f41, 0x1981: 0x0259, 0x1982: 0x0f51, 0x1983: 0x0359, 0x1984: 0x0f61, 0x1985: 0x0040,\n\t0x1986: 0x00d9, 0x1987: 0x0040, 0x1988: 0x0040, 0x1989: 0x0040, 0x198a: 0x01d9, 0x198b: 0x0fa9,\n\t0x198c: 0x0fb9, 0x198d: 0x1089, 0x198e: 0x0279, 0x198f: 0x0369, 0x1990: 0x0289, 0x1991: 0x0040,\n\t0x1992: 0x0039, 0x1993: 0x0ee9, 0x1994: 0x1159, 0x1995: 0x0ef9, 0x1996: 0x0f09, 0x1997: 0x1199,\n\t0x1998: 0x0f31, 0x1999: 0x0249, 0x199a: 0x0f41, 0x199b: 0x0259, 0x199c: 0x0f51, 0x199d: 0x0359,\n\t0x199e: 0x0f61, 0x199f: 0x0f71, 0x19a0: 0x00d9, 0x19a1: 0x0f99, 0x19a2: 0x2039, 0x19a3: 0x0269,\n\t0x19a4: 0x01d9, 0x19a5: 0x0fa9, 0x19a6: 0x0fb9, 0x19a7: 0x1089, 0x19a8: 0x0279, 0x19a9: 0x0369,\n\t0x19aa: 0x0289, 0x19ab: 0x13d1, 0x19ac: 0x0039, 0x19ad: 0x0ee9, 0x19ae: 0x1159, 0x19af: 0x0ef9,\n\t0x19b0: 0x0f09, 0x19b1: 0x1199, 0x19b2: 0x0f31, 0x19b3: 0x0249, 0x19b4: 0x0f41, 0x19b5: 0x0259,\n\t0x19b6: 0x0f51, 0x19b7: 0x0359, 0x19b8: 0x0f61, 0x19b9: 0x0f71, 0x19ba: 0x00d9, 0x19bb: 0x0f99,\n\t0x19bc: 0x2039, 0x19bd: 0x0269, 0x19be: 0x01d9, 0x19bf: 0x0fa9,\n\t// Block 0x67, offset 0x19c0\n\t0x19c0: 0x0fb9, 0x19c1: 0x1089, 0x19c2: 0x0279, 0x19c3: 0x0369, 0x19c4: 0x0289, 0x19c5: 0x13d1,\n\t0x19c6: 0x0039, 0x19c7: 0x0ee9, 0x19c8: 0x1159, 0x19c9: 0x0ef9, 0x19ca: 0x0f09, 0x19cb: 0x1199,\n\t0x19cc: 0x0f31, 0x19cd: 0x0249, 0x19ce: 0x0f41, 0x19cf: 0x0259, 0x19d0: 0x0f51, 0x19d1: 0x0359,\n\t0x19d2: 0x0f61, 0x19d3: 0x0f71, 0x19d4: 0x00d9, 0x19d5: 0x0f99, 0x19d6: 0x2039, 0x19d7: 0x0269,\n\t0x19d8: 0x01d9, 0x19d9: 0x0fa9, 0x19da: 0x0fb9, 0x19db: 0x1089, 0x19dc: 0x0279, 0x19dd: 0x0369,\n\t0x19de: 0x0289, 0x19df: 0x13d1, 0x19e0: 0x0039, 0x19e1: 0x0ee9, 0x19e2: 0x1159, 0x19e3: 0x0ef9,\n\t0x19e4: 0x0f09, 0x19e5: 0x1199, 0x19e6: 0x0f31, 0x19e7: 0x0249, 0x19e8: 0x0f41, 0x19e9: 0x0259,\n\t0x19ea: 0x0f51, 0x19eb: 0x0359, 0x19ec: 0x0f61, 0x19ed: 0x0f71, 0x19ee: 0x00d9, 0x19ef: 0x0f99,\n\t0x19f0: 0x2039, 0x19f1: 0x0269, 0x19f2: 0x01d9, 0x19f3: 0x0fa9, 0x19f4: 0x0fb9, 0x19f5: 0x1089,\n\t0x19f6: 0x0279, 0x19f7: 0x0369, 0x19f8: 0x0289, 0x19f9: 0x13d1, 0x19fa: 0x0039, 0x19fb: 0x0ee9,\n\t0x19fc: 0x1159, 0x19fd: 0x0ef9, 0x19fe: 0x0f09, 0x19ff: 0x1199,\n\t// Block 0x68, offset 0x1a00\n\t0x1a00: 0x0f31, 0x1a01: 0x0249, 0x1a02: 0x0f41, 0x1a03: 0x0259, 0x1a04: 0x0f51, 0x1a05: 0x0359,\n\t0x1a06: 0x0f61, 0x1a07: 0x0f71, 0x1a08: 0x00d9, 0x1a09: 0x0f99, 0x1a0a: 0x2039, 0x1a0b: 0x0269,\n\t0x1a0c: 0x01d9, 0x1a0d: 0x0fa9, 0x1a0e: 0x0fb9, 0x1a0f: 0x1089, 0x1a10: 0x0279, 0x1a11: 0x0369,\n\t0x1a12: 0x0289, 0x1a13: 0x13d1, 0x1a14: 0x0039, 0x1a15: 0x0ee9, 0x1a16: 0x1159, 0x1a17: 0x0ef9,\n\t0x1a18: 0x0f09, 0x1a19: 0x1199, 0x1a1a: 0x0f31, 0x1a1b: 0x0249, 0x1a1c: 0x0f41, 0x1a1d: 0x0259,\n\t0x1a1e: 0x0f51, 0x1a1f: 0x0359, 0x1a20: 0x0f61, 0x1a21: 0x0f71, 0x1a22: 0x00d9, 0x1a23: 0x0f99,\n\t0x1a24: 0x2039, 0x1a25: 0x0269, 0x1a26: 0x01d9, 0x1a27: 0x0fa9, 0x1a28: 0x0fb9, 0x1a29: 0x1089,\n\t0x1a2a: 0x0279, 0x1a2b: 0x0369, 0x1a2c: 0x0289, 0x1a2d: 0x13d1, 0x1a2e: 0x0039, 0x1a2f: 0x0ee9,\n\t0x1a30: 0x1159, 0x1a31: 0x0ef9, 0x1a32: 0x0f09, 0x1a33: 0x1199, 0x1a34: 0x0f31, 0x1a35: 0x0249,\n\t0x1a36: 0x0f41, 0x1a37: 0x0259, 0x1a38: 0x0f51, 0x1a39: 0x0359, 0x1a3a: 0x0f61, 0x1a3b: 0x0f71,\n\t0x1a3c: 0x00d9, 0x1a3d: 0x0f99, 0x1a3e: 0x2039, 0x1a3f: 0x0269,\n\t// Block 0x69, offset 0x1a40\n\t0x1a40: 0x01d9, 0x1a41: 0x0fa9, 0x1a42: 0x0fb9, 0x1a43: 0x1089, 0x1a44: 0x0279, 0x1a45: 0x0369,\n\t0x1a46: 0x0289, 0x1a47: 0x13d1, 0x1a48: 0x0039, 0x1a49: 0x0ee9, 0x1a4a: 0x1159, 0x1a4b: 0x0ef9,\n\t0x1a4c: 0x0f09, 0x1a4d: 0x1199, 0x1a4e: 0x0f31, 0x1a4f: 0x0249, 0x1a50: 0x0f41, 0x1a51: 0x0259,\n\t0x1a52: 0x0f51, 0x1a53: 0x0359, 0x1a54: 0x0f61, 0x1a55: 0x0f71, 0x1a56: 0x00d9, 0x1a57: 0x0f99,\n\t0x1a58: 0x2039, 0x1a59: 0x0269, 0x1a5a: 0x01d9, 0x1a5b: 0x0fa9, 0x1a5c: 0x0fb9, 0x1a5d: 0x1089,\n\t0x1a5e: 0x0279, 0x1a5f: 0x0369, 0x1a60: 0x0289, 0x1a61: 0x13d1, 0x1a62: 0x0039, 0x1a63: 0x0ee9,\n\t0x1a64: 0x1159, 0x1a65: 0x0ef9, 0x1a66: 0x0f09, 0x1a67: 0x1199, 0x1a68: 0x0f31, 0x1a69: 0x0249,\n\t0x1a6a: 0x0f41, 0x1a6b: 0x0259, 0x1a6c: 0x0f51, 0x1a6d: 0x0359, 0x1a6e: 0x0f61, 0x1a6f: 0x0f71,\n\t0x1a70: 0x00d9, 0x1a71: 0x0f99, 0x1a72: 0x2039, 0x1a73: 0x0269, 0x1a74: 0x01d9, 0x1a75: 0x0fa9,\n\t0x1a76: 0x0fb9, 0x1a77: 0x1089, 0x1a78: 0x0279, 0x1a79: 0x0369, 0x1a7a: 0x0289, 0x1a7b: 0x13d1,\n\t0x1a7c: 0x0039, 0x1a7d: 0x0ee9, 0x1a7e: 0x1159, 0x1a7f: 0x0ef9,\n\t// Block 0x6a, offset 0x1a80\n\t0x1a80: 0x0f09, 0x1a81: 0x1199, 0x1a82: 0x0f31, 0x1a83: 0x0249, 0x1a84: 0x0f41, 0x1a85: 0x0259,\n\t0x1a86: 0x0f51, 0x1a87: 0x0359, 0x1a88: 0x0f61, 0x1a89: 0x0f71, 0x1a8a: 0x00d9, 0x1a8b: 0x0f99,\n\t0x1a8c: 0x2039, 0x1a8d: 0x0269, 0x1a8e: 0x01d9, 0x1a8f: 0x0fa9, 0x1a90: 0x0fb9, 0x1a91: 0x1089,\n\t0x1a92: 0x0279, 0x1a93: 0x0369, 0x1a94: 0x0289, 0x1a95: 0x13d1, 0x1a96: 0x0039, 0x1a97: 0x0ee9,\n\t0x1a98: 0x1159, 0x1a99: 0x0ef9, 0x1a9a: 0x0f09, 0x1a9b: 0x1199, 0x1a9c: 0x0f31, 0x1a9d: 0x0249,\n\t0x1a9e: 0x0f41, 0x1a9f: 0x0259, 0x1aa0: 0x0f51, 0x1aa1: 0x0359, 0x1aa2: 0x0f61, 0x1aa3: 0x0f71,\n\t0x1aa4: 0x00d9, 0x1aa5: 0x0f99, 0x1aa6: 0x2039, 0x1aa7: 0x0269, 0x1aa8: 0x01d9, 0x1aa9: 0x0fa9,\n\t0x1aaa: 0x0fb9, 0x1aab: 0x1089, 0x1aac: 0x0279, 0x1aad: 0x0369, 0x1aae: 0x0289, 0x1aaf: 0x13d1,\n\t0x1ab0: 0x0039, 0x1ab1: 0x0ee9, 0x1ab2: 0x1159, 0x1ab3: 0x0ef9, 0x1ab4: 0x0f09, 0x1ab5: 0x1199,\n\t0x1ab6: 0x0f31, 0x1ab7: 0x0249, 0x1ab8: 0x0f41, 0x1ab9: 0x0259, 0x1aba: 0x0f51, 0x1abb: 0x0359,\n\t0x1abc: 0x0f61, 0x1abd: 0x0f71, 0x1abe: 0x00d9, 0x1abf: 0x0f99,\n\t// Block 0x6b, offset 0x1ac0\n\t0x1ac0: 0x2039, 0x1ac1: 0x0269, 0x1ac2: 0x01d9, 0x1ac3: 0x0fa9, 0x1ac4: 0x0fb9, 0x1ac5: 0x1089,\n\t0x1ac6: 0x0279, 0x1ac7: 0x0369, 0x1ac8: 0x0289, 0x1ac9: 0x13d1, 0x1aca: 0x0039, 0x1acb: 0x0ee9,\n\t0x1acc: 0x1159, 0x1acd: 0x0ef9, 0x1ace: 0x0f09, 0x1acf: 0x1199, 0x1ad0: 0x0f31, 0x1ad1: 0x0249,\n\t0x1ad2: 0x0f41, 0x1ad3: 0x0259, 0x1ad4: 0x0f51, 0x1ad5: 0x0359, 0x1ad6: 0x0f61, 0x1ad7: 0x0f71,\n\t0x1ad8: 0x00d9, 0x1ad9: 0x0f99, 0x1ada: 0x2039, 0x1adb: 0x0269, 0x1adc: 0x01d9, 0x1add: 0x0fa9,\n\t0x1ade: 0x0fb9, 0x1adf: 0x1089, 0x1ae0: 0x0279, 0x1ae1: 0x0369, 0x1ae2: 0x0289, 0x1ae3: 0x13d1,\n\t0x1ae4: 0xba81, 0x1ae5: 0xba99, 0x1ae6: 0x0040, 0x1ae7: 0x0040, 0x1ae8: 0xbab1, 0x1ae9: 0x1099,\n\t0x1aea: 0x10b1, 0x1aeb: 0x10c9, 0x1aec: 0xbac9, 0x1aed: 0xbae1, 0x1aee: 0xbaf9, 0x1aef: 0x1429,\n\t0x1af0: 0x1a31, 0x1af1: 0xbb11, 0x1af2: 0xbb29, 0x1af3: 0xbb41, 0x1af4: 0xbb59, 0x1af5: 0xbb71,\n\t0x1af6: 0xbb89, 0x1af7: 0x2109, 0x1af8: 0x1111, 0x1af9: 0x1429, 0x1afa: 0xbba1, 0x1afb: 0xbbb9,\n\t0x1afc: 0xbbd1, 0x1afd: 0x10e1, 0x1afe: 0x10f9, 0x1aff: 0xbbe9,\n\t// Block 0x6c, offset 0x1b00\n\t0x1b00: 0x2079, 0x1b01: 0xbc01, 0x1b02: 0xbab1, 0x1b03: 0x1099, 0x1b04: 0x10b1, 0x1b05: 0x10c9,\n\t0x1b06: 0xbac9, 0x1b07: 0xbae1, 0x1b08: 0xbaf9, 0x1b09: 0x1429, 0x1b0a: 0x1a31, 0x1b0b: 0xbb11,\n\t0x1b0c: 0xbb29, 0x1b0d: 0xbb41, 0x1b0e: 0xbb59, 0x1b0f: 0xbb71, 0x1b10: 0xbb89, 0x1b11: 0x2109,\n\t0x1b12: 0x1111, 0x1b13: 0xbba1, 0x1b14: 0xbba1, 0x1b15: 0xbbb9, 0x1b16: 0xbbd1, 0x1b17: 0x10e1,\n\t0x1b18: 0x10f9, 0x1b19: 0xbbe9, 0x1b1a: 0x2079, 0x1b1b: 0xbc21, 0x1b1c: 0xbac9, 0x1b1d: 0x1429,\n\t0x1b1e: 0xbb11, 0x1b1f: 0x10e1, 0x1b20: 0x1111, 0x1b21: 0x2109, 0x1b22: 0xbab1, 0x1b23: 0x1099,\n\t0x1b24: 0x10b1, 0x1b25: 0x10c9, 0x1b26: 0xbac9, 0x1b27: 0xbae1, 0x1b28: 0xbaf9, 0x1b29: 0x1429,\n\t0x1b2a: 0x1a31, 0x1b2b: 0xbb11, 0x1b2c: 0xbb29, 0x1b2d: 0xbb41, 0x1b2e: 0xbb59, 0x1b2f: 0xbb71,\n\t0x1b30: 0xbb89, 0x1b31: 0x2109, 0x1b32: 0x1111, 0x1b33: 0x1429, 0x1b34: 0xbba1, 0x1b35: 0xbbb9,\n\t0x1b36: 0xbbd1, 0x1b37: 0x10e1, 0x1b38: 0x10f9, 0x1b39: 0xbbe9, 0x1b3a: 0x2079, 0x1b3b: 0xbc01,\n\t0x1b3c: 0xbab1, 0x1b3d: 0x1099, 0x1b3e: 0x10b1, 0x1b3f: 0x10c9,\n\t// Block 0x6d, offset 0x1b40\n\t0x1b40: 0xbac9, 0x1b41: 0xbae1, 0x1b42: 0xbaf9, 0x1b43: 0x1429, 0x1b44: 0x1a31, 0x1b45: 0xbb11,\n\t0x1b46: 0xbb29, 0x1b47: 0xbb41, 0x1b48: 0xbb59, 0x1b49: 0xbb71, 0x1b4a: 0xbb89, 0x1b4b: 0x2109,\n\t0x1b4c: 0x1111, 0x1b4d: 0xbba1, 0x1b4e: 0xbba1, 0x1b4f: 0xbbb9, 0x1b50: 0xbbd1, 0x1b51: 0x10e1,\n\t0x1b52: 0x10f9, 0x1b53: 0xbbe9, 0x1b54: 0x2079, 0x1b55: 0xbc21, 0x1b56: 0xbac9, 0x1b57: 0x1429,\n\t0x1b58: 0xbb11, 0x1b59: 0x10e1, 0x1b5a: 0x1111, 0x1b5b: 0x2109, 0x1b5c: 0xbab1, 0x1b5d: 0x1099,\n\t0x1b5e: 0x10b1, 0x1b5f: 0x10c9, 0x1b60: 0xbac9, 0x1b61: 0xbae1, 0x1b62: 0xbaf9, 0x1b63: 0x1429,\n\t0x1b64: 0x1a31, 0x1b65: 0xbb11, 0x1b66: 0xbb29, 0x1b67: 0xbb41, 0x1b68: 0xbb59, 0x1b69: 0xbb71,\n\t0x1b6a: 0xbb89, 0x1b6b: 0x2109, 0x1b6c: 0x1111, 0x1b6d: 0x1429, 0x1b6e: 0xbba1, 0x1b6f: 0xbbb9,\n\t0x1b70: 0xbbd1, 0x1b71: 0x10e1, 0x1b72: 0x10f9, 0x1b73: 0xbbe9, 0x1b74: 0x2079, 0x1b75: 0xbc01,\n\t0x1b76: 0xbab1, 0x1b77: 0x1099, 0x1b78: 0x10b1, 0x1b79: 0x10c9, 0x1b7a: 0xbac9, 0x1b7b: 0xbae1,\n\t0x1b7c: 0xbaf9, 0x1b7d: 0x1429, 0x1b7e: 0x1a31, 0x1b7f: 0xbb11,\n\t// Block 0x6e, offset 0x1b80\n\t0x1b80: 0xbb29, 0x1b81: 0xbb41, 0x1b82: 0xbb59, 0x1b83: 0xbb71, 0x1b84: 0xbb89, 0x1b85: 0x2109,\n\t0x1b86: 0x1111, 0x1b87: 0xbba1, 0x1b88: 0xbba1, 0x1b89: 0xbbb9, 0x1b8a: 0xbbd1, 0x1b8b: 0x10e1,\n\t0x1b8c: 0x10f9, 0x1b8d: 0xbbe9, 0x1b8e: 0x2079, 0x1b8f: 0xbc21, 0x1b90: 0xbac9, 0x1b91: 0x1429,\n\t0x1b92: 0xbb11, 0x1b93: 0x10e1, 0x1b94: 0x1111, 0x1b95: 0x2109, 0x1b96: 0xbab1, 0x1b97: 0x1099,\n\t0x1b98: 0x10b1, 0x1b99: 0x10c9, 0x1b9a: 0xbac9, 0x1b9b: 0xbae1, 0x1b9c: 0xbaf9, 0x1b9d: 0x1429,\n\t0x1b9e: 0x1a31, 0x1b9f: 0xbb11, 0x1ba0: 0xbb29, 0x1ba1: 0xbb41, 0x1ba2: 0xbb59, 0x1ba3: 0xbb71,\n\t0x1ba4: 0xbb89, 0x1ba5: 0x2109, 0x1ba6: 0x1111, 0x1ba7: 0x1429, 0x1ba8: 0xbba1, 0x1ba9: 0xbbb9,\n\t0x1baa: 0xbbd1, 0x1bab: 0x10e1, 0x1bac: 0x10f9, 0x1bad: 0xbbe9, 0x1bae: 0x2079, 0x1baf: 0xbc01,\n\t0x1bb0: 0xbab1, 0x1bb1: 0x1099, 0x1bb2: 0x10b1, 0x1bb3: 0x10c9, 0x1bb4: 0xbac9, 0x1bb5: 0xbae1,\n\t0x1bb6: 0xbaf9, 0x1bb7: 0x1429, 0x1bb8: 0x1a31, 0x1bb9: 0xbb11, 0x1bba: 0xbb29, 0x1bbb: 0xbb41,\n\t0x1bbc: 0xbb59, 0x1bbd: 0xbb71, 0x1bbe: 0xbb89, 0x1bbf: 0x2109,\n\t// Block 0x6f, offset 0x1bc0\n\t0x1bc0: 0x1111, 0x1bc1: 0xbba1, 0x1bc2: 0xbba1, 0x1bc3: 0xbbb9, 0x1bc4: 0xbbd1, 0x1bc5: 0x10e1,\n\t0x1bc6: 0x10f9, 0x1bc7: 0xbbe9, 0x1bc8: 0x2079, 0x1bc9: 0xbc21, 0x1bca: 0xbac9, 0x1bcb: 0x1429,\n\t0x1bcc: 0xbb11, 0x1bcd: 0x10e1, 0x1bce: 0x1111, 0x1bcf: 0x2109, 0x1bd0: 0xbab1, 0x1bd1: 0x1099,\n\t0x1bd2: 0x10b1, 0x1bd3: 0x10c9, 0x1bd4: 0xbac9, 0x1bd5: 0xbae1, 0x1bd6: 0xbaf9, 0x1bd7: 0x1429,\n\t0x1bd8: 0x1a31, 0x1bd9: 0xbb11, 0x1bda: 0xbb29, 0x1bdb: 0xbb41, 0x1bdc: 0xbb59, 0x1bdd: 0xbb71,\n\t0x1bde: 0xbb89, 0x1bdf: 0x2109, 0x1be0: 0x1111, 0x1be1: 0x1429, 0x1be2: 0xbba1, 0x1be3: 0xbbb9,\n\t0x1be4: 0xbbd1, 0x1be5: 0x10e1, 0x1be6: 0x10f9, 0x1be7: 0xbbe9, 0x1be8: 0x2079, 0x1be9: 0xbc01,\n\t0x1bea: 0xbab1, 0x1beb: 0x1099, 0x1bec: 0x10b1, 0x1bed: 0x10c9, 0x1bee: 0xbac9, 0x1bef: 0xbae1,\n\t0x1bf0: 0xbaf9, 0x1bf1: 0x1429, 0x1bf2: 0x1a31, 0x1bf3: 0xbb11, 0x1bf4: 0xbb29, 0x1bf5: 0xbb41,\n\t0x1bf6: 0xbb59, 0x1bf7: 0xbb71, 0x1bf8: 0xbb89, 0x1bf9: 0x2109, 0x1bfa: 0x1111, 0x1bfb: 0xbba1,\n\t0x1bfc: 0xbba1, 0x1bfd: 0xbbb9, 0x1bfe: 0xbbd1, 0x1bff: 0x10e1,\n\t// Block 0x70, offset 0x1c00\n\t0x1c00: 0x10f9, 0x1c01: 0xbbe9, 0x1c02: 0x2079, 0x1c03: 0xbc21, 0x1c04: 0xbac9, 0x1c05: 0x1429,\n\t0x1c06: 0xbb11, 0x1c07: 0x10e1, 0x1c08: 0x1111, 0x1c09: 0x2109, 0x1c0a: 0xbc41, 0x1c0b: 0xbc41,\n\t0x1c0c: 0x0040, 0x1c0d: 0x0040, 0x1c0e: 0x1f41, 0x1c0f: 0x00c9, 0x1c10: 0x0069, 0x1c11: 0x0079,\n\t0x1c12: 0x1f51, 0x1c13: 0x1f61, 0x1c14: 0x1f71, 0x1c15: 0x1f81, 0x1c16: 0x1f91, 0x1c17: 0x1fa1,\n\t0x1c18: 0x1f41, 0x1c19: 0x00c9, 0x1c1a: 0x0069, 0x1c1b: 0x0079, 0x1c1c: 0x1f51, 0x1c1d: 0x1f61,\n\t0x1c1e: 0x1f71, 0x1c1f: 0x1f81, 0x1c20: 0x1f91, 0x1c21: 0x1fa1, 0x1c22: 0x1f41, 0x1c23: 0x00c9,\n\t0x1c24: 0x0069, 0x1c25: 0x0079, 0x1c26: 0x1f51, 0x1c27: 0x1f61, 0x1c28: 0x1f71, 0x1c29: 0x1f81,\n\t0x1c2a: 0x1f91, 0x1c2b: 0x1fa1, 0x1c2c: 0x1f41, 0x1c2d: 0x00c9, 0x1c2e: 0x0069, 0x1c2f: 0x0079,\n\t0x1c30: 0x1f51, 0x1c31: 0x1f61, 0x1c32: 0x1f71, 0x1c33: 0x1f81, 0x1c34: 0x1f91, 0x1c35: 0x1fa1,\n\t0x1c36: 0x1f41, 0x1c37: 0x00c9, 0x1c38: 0x0069, 0x1c39: 0x0079, 0x1c3a: 0x1f51, 0x1c3b: 0x1f61,\n\t0x1c3c: 0x1f71, 0x1c3d: 0x1f81, 0x1c3e: 0x1f91, 0x1c3f: 0x1fa1,\n\t// Block 0x71, offset 0x1c40\n\t0x1c40: 0xe115, 0x1c41: 0xe115, 0x1c42: 0xe135, 0x1c43: 0xe135, 0x1c44: 0xe115, 0x1c45: 0xe115,\n\t0x1c46: 0xe175, 0x1c47: 0xe175, 0x1c48: 0xe115, 0x1c49: 0xe115, 0x1c4a: 0xe135, 0x1c4b: 0xe135,\n\t0x1c4c: 0xe115, 0x1c4d: 0xe115, 0x1c4e: 0xe1f5, 0x1c4f: 0xe1f5, 0x1c50: 0xe115, 0x1c51: 0xe115,\n\t0x1c52: 0xe135, 0x1c53: 0xe135, 0x1c54: 0xe115, 0x1c55: 0xe115, 0x1c56: 0xe175, 0x1c57: 0xe175,\n\t0x1c58: 0xe115, 0x1c59: 0xe115, 0x1c5a: 0xe135, 0x1c5b: 0xe135, 0x1c5c: 0xe115, 0x1c5d: 0xe115,\n\t0x1c5e: 0x8b3d, 0x1c5f: 0x8b3d, 0x1c60: 0x04b5, 0x1c61: 0x04b5, 0x1c62: 0x0a08, 0x1c63: 0x0a08,\n\t0x1c64: 0x0a08, 0x1c65: 0x0a08, 0x1c66: 0x0a08, 0x1c67: 0x0a08, 0x1c68: 0x0a08, 0x1c69: 0x0a08,\n\t0x1c6a: 0x0a08, 0x1c6b: 0x0a08, 0x1c6c: 0x0a08, 0x1c6d: 0x0a08, 0x1c6e: 0x0a08, 0x1c6f: 0x0a08,\n\t0x1c70: 0x0a08, 0x1c71: 0x0a08, 0x1c72: 0x0a08, 0x1c73: 0x0a08, 0x1c74: 0x0a08, 0x1c75: 0x0a08,\n\t0x1c76: 0x0a08, 0x1c77: 0x0a08, 0x1c78: 0x0a08, 0x1c79: 0x0a08, 0x1c7a: 0x0a08, 0x1c7b: 0x0a08,\n\t0x1c7c: 0x0a08, 0x1c7d: 0x0a08, 0x1c7e: 0x0a08, 0x1c7f: 0x0a08,\n\t// Block 0x72, offset 0x1c80\n\t0x1c80: 0xb189, 0x1c81: 0xb1a1, 0x1c82: 0xb201, 0x1c83: 0xb249, 0x1c84: 0x0040, 0x1c85: 0xb411,\n\t0x1c86: 0xb291, 0x1c87: 0xb219, 0x1c88: 0xb309, 0x1c89: 0xb429, 0x1c8a: 0xb399, 0x1c8b: 0xb3b1,\n\t0x1c8c: 0xb3c9, 0x1c8d: 0xb3e1, 0x1c8e: 0xb2a9, 0x1c8f: 0xb339, 0x1c90: 0xb369, 0x1c91: 0xb2d9,\n\t0x1c92: 0xb381, 0x1c93: 0xb279, 0x1c94: 0xb2c1, 0x1c95: 0xb1d1, 0x1c96: 0xb1e9, 0x1c97: 0xb231,\n\t0x1c98: 0xb261, 0x1c99: 0xb2f1, 0x1c9a: 0xb321, 0x1c9b: 0xb351, 0x1c9c: 0xbc59, 0x1c9d: 0x7949,\n\t0x1c9e: 0xbc71, 0x1c9f: 0xbc89, 0x1ca0: 0x0040, 0x1ca1: 0xb1a1, 0x1ca2: 0xb201, 0x1ca3: 0x0040,\n\t0x1ca4: 0xb3f9, 0x1ca5: 0x0040, 0x1ca6: 0x0040, 0x1ca7: 0xb219, 0x1ca8: 0x0040, 0x1ca9: 0xb429,\n\t0x1caa: 0xb399, 0x1cab: 0xb3b1, 0x1cac: 0xb3c9, 0x1cad: 0xb3e1, 0x1cae: 0xb2a9, 0x1caf: 0xb339,\n\t0x1cb0: 0xb369, 0x1cb1: 0xb2d9, 0x1cb2: 0xb381, 0x1cb3: 0x0040, 0x1cb4: 0xb2c1, 0x1cb5: 0xb1d1,\n\t0x1cb6: 0xb1e9, 0x1cb7: 0xb231, 0x1cb8: 0x0040, 0x1cb9: 0xb2f1, 0x1cba: 0x0040, 0x1cbb: 0xb351,\n\t0x1cbc: 0x0040, 0x1cbd: 0x0040, 0x1cbe: 0x0040, 0x1cbf: 0x0040,\n\t// Block 0x73, offset 0x1cc0\n\t0x1cc0: 0x0040, 0x1cc1: 0x0040, 0x1cc2: 0xb201, 0x1cc3: 0x0040, 0x1cc4: 0x0040, 0x1cc5: 0x0040,\n\t0x1cc6: 0x0040, 0x1cc7: 0xb219, 0x1cc8: 0x0040, 0x1cc9: 0xb429, 0x1cca: 0x0040, 0x1ccb: 0xb3b1,\n\t0x1ccc: 0x0040, 0x1ccd: 0xb3e1, 0x1cce: 0xb2a9, 0x1ccf: 0xb339, 0x1cd0: 0x0040, 0x1cd1: 0xb2d9,\n\t0x1cd2: 0xb381, 0x1cd3: 0x0040, 0x1cd4: 0xb2c1, 0x1cd5: 0x0040, 0x1cd6: 0x0040, 0x1cd7: 0xb231,\n\t0x1cd8: 0x0040, 0x1cd9: 0xb2f1, 0x1cda: 0x0040, 0x1cdb: 0xb351, 0x1cdc: 0x0040, 0x1cdd: 0x7949,\n\t0x1cde: 0x0040, 0x1cdf: 0xbc89, 0x1ce0: 0x0040, 0x1ce1: 0xb1a1, 0x1ce2: 0xb201, 0x1ce3: 0x0040,\n\t0x1ce4: 0xb3f9, 0x1ce5: 0x0040, 0x1ce6: 0x0040, 0x1ce7: 0xb219, 0x1ce8: 0xb309, 0x1ce9: 0xb429,\n\t0x1cea: 0xb399, 0x1ceb: 0x0040, 0x1cec: 0xb3c9, 0x1ced: 0xb3e1, 0x1cee: 0xb2a9, 0x1cef: 0xb339,\n\t0x1cf0: 0xb369, 0x1cf1: 0xb2d9, 0x1cf2: 0xb381, 0x1cf3: 0x0040, 0x1cf4: 0xb2c1, 0x1cf5: 0xb1d1,\n\t0x1cf6: 0xb1e9, 0x1cf7: 0xb231, 0x1cf8: 0x0040, 0x1cf9: 0xb2f1, 0x1cfa: 0xb321, 0x1cfb: 0xb351,\n\t0x1cfc: 0xbc59, 0x1cfd: 0x0040, 0x1cfe: 0xbc71, 0x1cff: 0x0040,\n\t// Block 0x74, offset 0x1d00\n\t0x1d00: 0xb189, 0x1d01: 0xb1a1, 0x1d02: 0xb201, 0x1d03: 0xb249, 0x1d04: 0xb3f9, 0x1d05: 0xb411,\n\t0x1d06: 0xb291, 0x1d07: 0xb219, 0x1d08: 0xb309, 0x1d09: 0xb429, 0x1d0a: 0x0040, 0x1d0b: 0xb3b1,\n\t0x1d0c: 0xb3c9, 0x1d0d: 0xb3e1, 0x1d0e: 0xb2a9, 0x1d0f: 0xb339, 0x1d10: 0xb369, 0x1d11: 0xb2d9,\n\t0x1d12: 0xb381, 0x1d13: 0xb279, 0x1d14: 0xb2c1, 0x1d15: 0xb1d1, 0x1d16: 0xb1e9, 0x1d17: 0xb231,\n\t0x1d18: 0xb261, 0x1d19: 0xb2f1, 0x1d1a: 0xb321, 0x1d1b: 0xb351, 0x1d1c: 0x0040, 0x1d1d: 0x0040,\n\t0x1d1e: 0x0040, 0x1d1f: 0x0040, 0x1d20: 0x0040, 0x1d21: 0xb1a1, 0x1d22: 0xb201, 0x1d23: 0xb249,\n\t0x1d24: 0x0040, 0x1d25: 0xb411, 0x1d26: 0xb291, 0x1d27: 0xb219, 0x1d28: 0xb309, 0x1d29: 0xb429,\n\t0x1d2a: 0x0040, 0x1d2b: 0xb3b1, 0x1d2c: 0xb3c9, 0x1d2d: 0xb3e1, 0x1d2e: 0xb2a9, 0x1d2f: 0xb339,\n\t0x1d30: 0xb369, 0x1d31: 0xb2d9, 0x1d32: 0xb381, 0x1d33: 0xb279, 0x1d34: 0xb2c1, 0x1d35: 0xb1d1,\n\t0x1d36: 0xb1e9, 0x1d37: 0xb231, 0x1d38: 0xb261, 0x1d39: 0xb2f1, 0x1d3a: 0xb321, 0x1d3b: 0xb351,\n\t0x1d3c: 0x0040, 0x1d3d: 0x0040, 0x1d3e: 0x0040, 0x1d3f: 0x0040,\n\t// Block 0x75, offset 0x1d40\n\t0x1d40: 0x0040, 0x1d41: 0xbca2, 0x1d42: 0xbcba, 0x1d43: 0xbcd2, 0x1d44: 0xbcea, 0x1d45: 0xbd02,\n\t0x1d46: 0xbd1a, 0x1d47: 0xbd32, 0x1d48: 0xbd4a, 0x1d49: 0xbd62, 0x1d4a: 0xbd7a, 0x1d4b: 0x0018,\n\t0x1d4c: 0x0018, 0x1d4d: 0x0040, 0x1d4e: 0x0040, 0x1d4f: 0x0040, 0x1d50: 0xbd92, 0x1d51: 0xbdb2,\n\t0x1d52: 0xbdd2, 0x1d53: 0xbdf2, 0x1d54: 0xbe12, 0x1d55: 0xbe32, 0x1d56: 0xbe52, 0x1d57: 0xbe72,\n\t0x1d58: 0xbe92, 0x1d59: 0xbeb2, 0x1d5a: 0xbed2, 0x1d5b: 0xbef2, 0x1d5c: 0xbf12, 0x1d5d: 0xbf32,\n\t0x1d5e: 0xbf52, 0x1d5f: 0xbf72, 0x1d60: 0xbf92, 0x1d61: 0xbfb2, 0x1d62: 0xbfd2, 0x1d63: 0xbff2,\n\t0x1d64: 0xc012, 0x1d65: 0xc032, 0x1d66: 0xc052, 0x1d67: 0xc072, 0x1d68: 0xc092, 0x1d69: 0xc0b2,\n\t0x1d6a: 0xc0d1, 0x1d6b: 0x1159, 0x1d6c: 0x0269, 0x1d6d: 0x6671, 0x1d6e: 0xc111, 0x1d6f: 0x0018,\n\t0x1d70: 0x0039, 0x1d71: 0x0ee9, 0x1d72: 0x1159, 0x1d73: 0x0ef9, 0x1d74: 0x0f09, 0x1d75: 0x1199,\n\t0x1d76: 0x0f31, 0x1d77: 0x0249, 0x1d78: 0x0f41, 0x1d79: 0x0259, 0x1d7a: 0x0f51, 0x1d7b: 0x0359,\n\t0x1d7c: 0x0f61, 0x1d7d: 0x0f71, 0x1d7e: 0x00d9, 0x1d7f: 0x0f99,\n\t// Block 0x76, offset 0x1d80\n\t0x1d80: 0x2039, 0x1d81: 0x0269, 0x1d82: 0x01d9, 0x1d83: 0x0fa9, 0x1d84: 0x0fb9, 0x1d85: 0x1089,\n\t0x1d86: 0x0279, 0x1d87: 0x0369, 0x1d88: 0x0289, 0x1d89: 0x13d1, 0x1d8a: 0xc129, 0x1d8b: 0x65b1,\n\t0x1d8c: 0xc141, 0x1d8d: 0x1441, 0x1d8e: 0xc159, 0x1d8f: 0xc179, 0x1d90: 0x0018, 0x1d91: 0x0018,\n\t0x1d92: 0x0018, 0x1d93: 0x0018, 0x1d94: 0x0018, 0x1d95: 0x0018, 0x1d96: 0x0018, 0x1d97: 0x0018,\n\t0x1d98: 0x0018, 0x1d99: 0x0018, 0x1d9a: 0x0018, 0x1d9b: 0x0018, 0x1d9c: 0x0018, 0x1d9d: 0x0018,\n\t0x1d9e: 0x0018, 0x1d9f: 0x0018, 0x1da0: 0x0018, 0x1da1: 0x0018, 0x1da2: 0x0018, 0x1da3: 0x0018,\n\t0x1da4: 0x0018, 0x1da5: 0x0018, 0x1da6: 0x0018, 0x1da7: 0x0018, 0x1da8: 0x0018, 0x1da9: 0x0018,\n\t0x1daa: 0xc191, 0x1dab: 0xc1a9, 0x1dac: 0xc1c1, 0x1dad: 0x0040, 0x1dae: 0x0040, 0x1daf: 0x0040,\n\t0x1db0: 0x0018, 0x1db1: 0x0018, 0x1db2: 0x0018, 0x1db3: 0x0018, 0x1db4: 0x0018, 0x1db5: 0x0018,\n\t0x1db6: 0x0018, 0x1db7: 0x0018, 0x1db8: 0x0018, 0x1db9: 0x0018, 0x1dba: 0x0018, 0x1dbb: 0x0018,\n\t0x1dbc: 0x0018, 0x1dbd: 0x0018, 0x1dbe: 0x0018, 0x1dbf: 0x0018,\n\t// Block 0x77, offset 0x1dc0\n\t0x1dc0: 0xc1f1, 0x1dc1: 0xc229, 0x1dc2: 0xc261, 0x1dc3: 0x0040, 0x1dc4: 0x0040, 0x1dc5: 0x0040,\n\t0x1dc6: 0x0040, 0x1dc7: 0x0040, 0x1dc8: 0x0040, 0x1dc9: 0x0040, 0x1dca: 0x0040, 0x1dcb: 0x0040,\n\t0x1dcc: 0x0040, 0x1dcd: 0x0040, 0x1dce: 0x0040, 0x1dcf: 0x0040, 0x1dd0: 0xc281, 0x1dd1: 0xc2a1,\n\t0x1dd2: 0xc2c1, 0x1dd3: 0xc2e1, 0x1dd4: 0xc301, 0x1dd5: 0xc321, 0x1dd6: 0xc341, 0x1dd7: 0xc361,\n\t0x1dd8: 0xc381, 0x1dd9: 0xc3a1, 0x1dda: 0xc3c1, 0x1ddb: 0xc3e1, 0x1ddc: 0xc401, 0x1ddd: 0xc421,\n\t0x1dde: 0xc441, 0x1ddf: 0xc461, 0x1de0: 0xc481, 0x1de1: 0xc4a1, 0x1de2: 0xc4c1, 0x1de3: 0xc4e1,\n\t0x1de4: 0xc501, 0x1de5: 0xc521, 0x1de6: 0xc541, 0x1de7: 0xc561, 0x1de8: 0xc581, 0x1de9: 0xc5a1,\n\t0x1dea: 0xc5c1, 0x1deb: 0xc5e1, 0x1dec: 0xc601, 0x1ded: 0xc621, 0x1dee: 0xc641, 0x1def: 0xc661,\n\t0x1df0: 0xc681, 0x1df1: 0xc6a1, 0x1df2: 0xc6c1, 0x1df3: 0xc6e1, 0x1df4: 0xc701, 0x1df5: 0xc721,\n\t0x1df6: 0xc741, 0x1df7: 0xc761, 0x1df8: 0xc781, 0x1df9: 0xc7a1, 0x1dfa: 0xc7c1, 0x1dfb: 0xc7e1,\n\t0x1dfc: 0x0040, 0x1dfd: 0x0040, 0x1dfe: 0x0040, 0x1dff: 0x0040,\n\t// Block 0x78, offset 0x1e00\n\t0x1e00: 0xcb11, 0x1e01: 0xcb31, 0x1e02: 0xcb51, 0x1e03: 0x8b55, 0x1e04: 0xcb71, 0x1e05: 0xcb91,\n\t0x1e06: 0xcbb1, 0x1e07: 0xcbd1, 0x1e08: 0xcbf1, 0x1e09: 0xcc11, 0x1e0a: 0xcc31, 0x1e0b: 0xcc51,\n\t0x1e0c: 0xcc71, 0x1e0d: 0x8b75, 0x1e0e: 0xcc91, 0x1e0f: 0xccb1, 0x1e10: 0xccd1, 0x1e11: 0xccf1,\n\t0x1e12: 0x8b95, 0x1e13: 0xcd11, 0x1e14: 0xcd31, 0x1e15: 0xc441, 0x1e16: 0x8bb5, 0x1e17: 0xcd51,\n\t0x1e18: 0xcd71, 0x1e19: 0xcd91, 0x1e1a: 0xcdb1, 0x1e1b: 0xcdd1, 0x1e1c: 0x8bd5, 0x1e1d: 0xcdf1,\n\t0x1e1e: 0xce11, 0x1e1f: 0xce31, 0x1e20: 0xce51, 0x1e21: 0xce71, 0x1e22: 0xc7a1, 0x1e23: 0xce91,\n\t0x1e24: 0xceb1, 0x1e25: 0xced1, 0x1e26: 0xcef1, 0x1e27: 0xcf11, 0x1e28: 0xcf31, 0x1e29: 0xcf51,\n\t0x1e2a: 0xcf71, 0x1e2b: 0xcf91, 0x1e2c: 0xcfb1, 0x1e2d: 0xcfd1, 0x1e2e: 0xcff1, 0x1e2f: 0xd011,\n\t0x1e30: 0xd031, 0x1e31: 0xd051, 0x1e32: 0xd051, 0x1e33: 0xd051, 0x1e34: 0x8bf5, 0x1e35: 0xd071,\n\t0x1e36: 0xd091, 0x1e37: 0xd0b1, 0x1e38: 0x8c15, 0x1e39: 0xd0d1, 0x1e3a: 0xd0f1, 0x1e3b: 0xd111,\n\t0x1e3c: 0xd131, 0x1e3d: 0xd151, 0x1e3e: 0xd171, 0x1e3f: 0xd191,\n\t// Block 0x79, offset 0x1e40\n\t0x1e40: 0xd1b1, 0x1e41: 0xd1d1, 0x1e42: 0xd1f1, 0x1e43: 0xd211, 0x1e44: 0xd231, 0x1e45: 0xd251,\n\t0x1e46: 0xd251, 0x1e47: 0xd271, 0x1e48: 0xd291, 0x1e49: 0xd2b1, 0x1e4a: 0xd2d1, 0x1e4b: 0xd2f1,\n\t0x1e4c: 0xd311, 0x1e4d: 0xd331, 0x1e4e: 0xd351, 0x1e4f: 0xd371, 0x1e50: 0xd391, 0x1e51: 0xd3b1,\n\t0x1e52: 0xd3d1, 0x1e53: 0xd3f1, 0x1e54: 0xd411, 0x1e55: 0xd431, 0x1e56: 0xd451, 0x1e57: 0xd471,\n\t0x1e58: 0xd491, 0x1e59: 0x8c35, 0x1e5a: 0xd4b1, 0x1e5b: 0xd4d1, 0x1e5c: 0xd4f1, 0x1e5d: 0xc321,\n\t0x1e5e: 0xd511, 0x1e5f: 0xd531, 0x1e60: 0x8c55, 0x1e61: 0x8c75, 0x1e62: 0xd551, 0x1e63: 0xd571,\n\t0x1e64: 0xd591, 0x1e65: 0xd5b1, 0x1e66: 0xd5d1, 0x1e67: 0xd5f1, 0x1e68: 0x2040, 0x1e69: 0xd611,\n\t0x1e6a: 0xd631, 0x1e6b: 0xd631, 0x1e6c: 0x8c95, 0x1e6d: 0xd651, 0x1e6e: 0xd671, 0x1e6f: 0xd691,\n\t0x1e70: 0xd6b1, 0x1e71: 0x8cb5, 0x1e72: 0xd6d1, 0x1e73: 0xd6f1, 0x1e74: 0x2040, 0x1e75: 0xd711,\n\t0x1e76: 0xd731, 0x1e77: 0xd751, 0x1e78: 0xd771, 0x1e79: 0xd791, 0x1e7a: 0xd7b1, 0x1e7b: 0x8cd5,\n\t0x1e7c: 0xd7d1, 0x1e7d: 0x8cf5, 0x1e7e: 0xd7f1, 0x1e7f: 0xd811,\n\t// Block 0x7a, offset 0x1e80\n\t0x1e80: 0xd831, 0x1e81: 0xd851, 0x1e82: 0xd871, 0x1e83: 0xd891, 0x1e84: 0xd8b1, 0x1e85: 0xd8d1,\n\t0x1e86: 0xd8f1, 0x1e87: 0xd911, 0x1e88: 0xd931, 0x1e89: 0x8d15, 0x1e8a: 0xd951, 0x1e8b: 0xd971,\n\t0x1e8c: 0xd991, 0x1e8d: 0xd9b1, 0x1e8e: 0xd9d1, 0x1e8f: 0x8d35, 0x1e90: 0xd9f1, 0x1e91: 0x8d55,\n\t0x1e92: 0x8d75, 0x1e93: 0xda11, 0x1e94: 0xda31, 0x1e95: 0xda31, 0x1e96: 0xda51, 0x1e97: 0x8d95,\n\t0x1e98: 0x8db5, 0x1e99: 0xda71, 0x1e9a: 0xda91, 0x1e9b: 0xdab1, 0x1e9c: 0xdad1, 0x1e9d: 0xdaf1,\n\t0x1e9e: 0xdb11, 0x1e9f: 0xdb31, 0x1ea0: 0xdb51, 0x1ea1: 0xdb71, 0x1ea2: 0xdb91, 0x1ea3: 0xdbb1,\n\t0x1ea4: 0x8dd5, 0x1ea5: 0xdbd1, 0x1ea6: 0xdbf1, 0x1ea7: 0xdc11, 0x1ea8: 0xdc31, 0x1ea9: 0xdc11,\n\t0x1eaa: 0xdc51, 0x1eab: 0xdc71, 0x1eac: 0xdc91, 0x1ead: 0xdcb1, 0x1eae: 0xdcd1, 0x1eaf: 0xdcf1,\n\t0x1eb0: 0xdd11, 0x1eb1: 0xdd31, 0x1eb2: 0xdd51, 0x1eb3: 0xdd71, 0x1eb4: 0xdd91, 0x1eb5: 0xddb1,\n\t0x1eb6: 0xddd1, 0x1eb7: 0xddf1, 0x1eb8: 0x8df5, 0x1eb9: 0xde11, 0x1eba: 0xde31, 0x1ebb: 0xde51,\n\t0x1ebc: 0xde71, 0x1ebd: 0xde91, 0x1ebe: 0x8e15, 0x1ebf: 0xdeb1,\n\t// Block 0x7b, offset 0x1ec0\n\t0x1ec0: 0xe5b1, 0x1ec1: 0xe5d1, 0x1ec2: 0xe5f1, 0x1ec3: 0xe611, 0x1ec4: 0xe631, 0x1ec5: 0xe651,\n\t0x1ec6: 0x8f35, 0x1ec7: 0xe671, 0x1ec8: 0xe691, 0x1ec9: 0xe6b1, 0x1eca: 0xe6d1, 0x1ecb: 0xe6f1,\n\t0x1ecc: 0xe711, 0x1ecd: 0x8f55, 0x1ece: 0xe731, 0x1ecf: 0xe751, 0x1ed0: 0x8f75, 0x1ed1: 0x8f95,\n\t0x1ed2: 0xe771, 0x1ed3: 0xe791, 0x1ed4: 0xe7b1, 0x1ed5: 0xe7d1, 0x1ed6: 0xe7f1, 0x1ed7: 0xe811,\n\t0x1ed8: 0xe831, 0x1ed9: 0xe851, 0x1eda: 0xe871, 0x1edb: 0x8fb5, 0x1edc: 0xe891, 0x1edd: 0x8fd5,\n\t0x1ede: 0xe8b1, 0x1edf: 0x2040, 0x1ee0: 0xe8d1, 0x1ee1: 0xe8f1, 0x1ee2: 0xe911, 0x1ee3: 0x8ff5,\n\t0x1ee4: 0xe931, 0x1ee5: 0xe951, 0x1ee6: 0x9015, 0x1ee7: 0x9035, 0x1ee8: 0xe971, 0x1ee9: 0xe991,\n\t0x1eea: 0xe9b1, 0x1eeb: 0xe9d1, 0x1eec: 0xe9f1, 0x1eed: 0xe9f1, 0x1eee: 0xea11, 0x1eef: 0xea31,\n\t0x1ef0: 0xea51, 0x1ef1: 0xea71, 0x1ef2: 0xea91, 0x1ef3: 0xeab1, 0x1ef4: 0xead1, 0x1ef5: 0x9055,\n\t0x1ef6: 0xeaf1, 0x1ef7: 0x9075, 0x1ef8: 0xeb11, 0x1ef9: 0x9095, 0x1efa: 0xeb31, 0x1efb: 0x90b5,\n\t0x1efc: 0x90d5, 0x1efd: 0x90f5, 0x1efe: 0xeb51, 0x1eff: 0xeb71,\n\t// Block 0x7c, offset 0x1f00\n\t0x1f00: 0xeb91, 0x1f01: 0x9115, 0x1f02: 0x9135, 0x1f03: 0x9155, 0x1f04: 0x9175, 0x1f05: 0xebb1,\n\t0x1f06: 0xebd1, 0x1f07: 0xebd1, 0x1f08: 0xebf1, 0x1f09: 0xec11, 0x1f0a: 0xec31, 0x1f0b: 0xec51,\n\t0x1f0c: 0xec71, 0x1f0d: 0x9195, 0x1f0e: 0xec91, 0x1f0f: 0xecb1, 0x1f10: 0xecd1, 0x1f11: 0xecf1,\n\t0x1f12: 0x91b5, 0x1f13: 0xed11, 0x1f14: 0x91d5, 0x1f15: 0x91f5, 0x1f16: 0xed31, 0x1f17: 0xed51,\n\t0x1f18: 0xed71, 0x1f19: 0xed91, 0x1f1a: 0xedb1, 0x1f1b: 0xedd1, 0x1f1c: 0x9215, 0x1f1d: 0x9235,\n\t0x1f1e: 0x9255, 0x1f1f: 0x2040, 0x1f20: 0xedf1, 0x1f21: 0x9275, 0x1f22: 0xee11, 0x1f23: 0xee31,\n\t0x1f24: 0xee51, 0x1f25: 0x9295, 0x1f26: 0xee71, 0x1f27: 0xee91, 0x1f28: 0xeeb1, 0x1f29: 0xeed1,\n\t0x1f2a: 0xeef1, 0x1f2b: 0x92b5, 0x1f2c: 0xef11, 0x1f2d: 0xef31, 0x1f2e: 0xef51, 0x1f2f: 0xef71,\n\t0x1f30: 0xef91, 0x1f31: 0xefb1, 0x1f32: 0x92d5, 0x1f33: 0x92f5, 0x1f34: 0xefd1, 0x1f35: 0x9315,\n\t0x1f36: 0xeff1, 0x1f37: 0x9335, 0x1f38: 0xf011, 0x1f39: 0xf031, 0x1f3a: 0xf051, 0x1f3b: 0x9355,\n\t0x1f3c: 0x9375, 0x1f3d: 0xf071, 0x1f3e: 0x9395, 0x1f3f: 0xf091,\n\t// Block 0x7d, offset 0x1f40\n\t0x1f40: 0xf6d1, 0x1f41: 0xf6f1, 0x1f42: 0xf711, 0x1f43: 0xf731, 0x1f44: 0xf751, 0x1f45: 0x9555,\n\t0x1f46: 0xf771, 0x1f47: 0xf791, 0x1f48: 0xf7b1, 0x1f49: 0xf7d1, 0x1f4a: 0xf7f1, 0x1f4b: 0x9575,\n\t0x1f4c: 0x9595, 0x1f4d: 0xf811, 0x1f4e: 0xf831, 0x1f4f: 0xf851, 0x1f50: 0xf871, 0x1f51: 0xf891,\n\t0x1f52: 0xf8b1, 0x1f53: 0x95b5, 0x1f54: 0xf8d1, 0x1f55: 0xf8f1, 0x1f56: 0xf911, 0x1f57: 0xf931,\n\t0x1f58: 0x95d5, 0x1f59: 0x95f5, 0x1f5a: 0xf951, 0x1f5b: 0xf971, 0x1f5c: 0xf991, 0x1f5d: 0x9615,\n\t0x1f5e: 0xf9b1, 0x1f5f: 0xf9d1, 0x1f60: 0x684d, 0x1f61: 0x9635, 0x1f62: 0xf9f1, 0x1f63: 0xfa11,\n\t0x1f64: 0xfa31, 0x1f65: 0x9655, 0x1f66: 0xfa51, 0x1f67: 0xfa71, 0x1f68: 0xfa91, 0x1f69: 0xfab1,\n\t0x1f6a: 0xfad1, 0x1f6b: 0xfaf1, 0x1f6c: 0xfb11, 0x1f6d: 0x9675, 0x1f6e: 0xfb31, 0x1f6f: 0xfb51,\n\t0x1f70: 0xfb71, 0x1f71: 0x9695, 0x1f72: 0xfb91, 0x1f73: 0xfbb1, 0x1f74: 0xfbd1, 0x1f75: 0xfbf1,\n\t0x1f76: 0x7b6d, 0x1f77: 0x96b5, 0x1f78: 0xfc11, 0x1f79: 0xfc31, 0x1f7a: 0xfc51, 0x1f7b: 0x96d5,\n\t0x1f7c: 0xfc71, 0x1f7d: 0x96f5, 0x1f7e: 0xfc91, 0x1f7f: 0xfc91,\n\t// Block 0x7e, offset 0x1f80\n\t0x1f80: 0xfcb1, 0x1f81: 0x9715, 0x1f82: 0xfcd1, 0x1f83: 0xfcf1, 0x1f84: 0xfd11, 0x1f85: 0xfd31,\n\t0x1f86: 0xfd51, 0x1f87: 0xfd71, 0x1f88: 0xfd91, 0x1f89: 0x9735, 0x1f8a: 0xfdb1, 0x1f8b: 0xfdd1,\n\t0x1f8c: 0xfdf1, 0x1f8d: 0xfe11, 0x1f8e: 0xfe31, 0x1f8f: 0xfe51, 0x1f90: 0x9755, 0x1f91: 0xfe71,\n\t0x1f92: 0x9775, 0x1f93: 0x9795, 0x1f94: 0x97b5, 0x1f95: 0xfe91, 0x1f96: 0xfeb1, 0x1f97: 0xfed1,\n\t0x1f98: 0xfef1, 0x1f99: 0xff11, 0x1f9a: 0xff31, 0x1f9b: 0xff51, 0x1f9c: 0xff71, 0x1f9d: 0x97d5,\n\t0x1f9e: 0x0040, 0x1f9f: 0x0040, 0x1fa0: 0x0040, 0x1fa1: 0x0040, 0x1fa2: 0x0040, 0x1fa3: 0x0040,\n\t0x1fa4: 0x0040, 0x1fa5: 0x0040, 0x1fa6: 0x0040, 0x1fa7: 0x0040, 0x1fa8: 0x0040, 0x1fa9: 0x0040,\n\t0x1faa: 0x0040, 0x1fab: 0x0040, 0x1fac: 0x0040, 0x1fad: 0x0040, 0x1fae: 0x0040, 0x1faf: 0x0040,\n\t0x1fb0: 0x0040, 0x1fb1: 0x0040, 0x1fb2: 0x0040, 0x1fb3: 0x0040, 0x1fb4: 0x0040, 0x1fb5: 0x0040,\n\t0x1fb6: 0x0040, 0x1fb7: 0x0040, 0x1fb8: 0x0040, 0x1fb9: 0x0040, 0x1fba: 0x0040, 0x1fbb: 0x0040,\n\t0x1fbc: 0x0040, 0x1fbd: 0x0040, 0x1fbe: 0x0040, 0x1fbf: 0x0040,\n}\n\n// idnaIndex: 36 blocks, 2304 entries, 4608 bytes\n// Block 0 is the zero block.\nvar idnaIndex = [2304]uint16{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x01, 0xc3: 0x7d, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x04, 0xc7: 0x05,\n\t0xc8: 0x06, 0xc9: 0x7e, 0xca: 0x7f, 0xcb: 0x07, 0xcc: 0x80, 0xcd: 0x08, 0xce: 0x09, 0xcf: 0x0a,\n\t0xd0: 0x81, 0xd1: 0x0b, 0xd2: 0x0c, 0xd3: 0x0d, 0xd4: 0x0e, 0xd5: 0x82, 0xd6: 0x83, 0xd7: 0x84,\n\t0xd8: 0x0f, 0xd9: 0x10, 0xda: 0x85, 0xdb: 0x11, 0xdc: 0x12, 0xdd: 0x86, 0xde: 0x87, 0xdf: 0x88,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06, 0xe5: 0x07, 0xe6: 0x07, 0xe7: 0x07,\n\t0xe8: 0x07, 0xe9: 0x08, 0xea: 0x09, 0xeb: 0x07, 0xec: 0x07, 0xed: 0x0a, 0xee: 0x0b, 0xef: 0x0c,\n\t0xf0: 0x1d, 0xf1: 0x1e, 0xf2: 0x1e, 0xf3: 0x20, 0xf4: 0x21,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x89, 0x121: 0x13, 0x122: 0x8a, 0x123: 0x8b, 0x124: 0x8c, 0x125: 0x14, 0x126: 0x15, 0x127: 0x16,\n\t0x128: 0x17, 0x129: 0x18, 0x12a: 0x19, 0x12b: 0x1a, 0x12c: 0x1b, 0x12d: 0x1c, 0x12e: 0x1d, 0x12f: 0x8d,\n\t0x130: 0x8e, 0x131: 0x1e, 0x132: 0x1f, 0x133: 0x20, 0x134: 0x8f, 0x135: 0x21, 0x136: 0x90, 0x137: 0x91,\n\t0x138: 0x92, 0x139: 0x93, 0x13a: 0x22, 0x13b: 0x94, 0x13c: 0x95, 0x13d: 0x23, 0x13e: 0x24, 0x13f: 0x96,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x97, 0x141: 0x98, 0x142: 0x99, 0x143: 0x9a, 0x144: 0x9b, 0x145: 0x9c, 0x146: 0x9d, 0x147: 0x9e,\n\t0x148: 0x9f, 0x149: 0xa0, 0x14a: 0xa1, 0x14b: 0xa2, 0x14c: 0xa3, 0x14d: 0xa4, 0x14e: 0xa5, 0x14f: 0xa6,\n\t0x150: 0xa7, 0x151: 0x9f, 0x152: 0x9f, 0x153: 0x9f, 0x154: 0x9f, 0x155: 0x9f, 0x156: 0x9f, 0x157: 0x9f,\n\t0x158: 0x9f, 0x159: 0xa8, 0x15a: 0xa9, 0x15b: 0xaa, 0x15c: 0xab, 0x15d: 0xac, 0x15e: 0xad, 0x15f: 0xae,\n\t0x160: 0xaf, 0x161: 0xb0, 0x162: 0xb1, 0x163: 0xb2, 0x164: 0xb3, 0x165: 0xb4, 0x166: 0xb5, 0x167: 0xb6,\n\t0x168: 0xb7, 0x169: 0xb8, 0x16a: 0xb9, 0x16b: 0xba, 0x16c: 0xbb, 0x16d: 0xbc, 0x16e: 0xbd, 0x16f: 0xbe,\n\t0x170: 0xbf, 0x171: 0xc0, 0x172: 0xc1, 0x173: 0xc2, 0x174: 0x25, 0x175: 0x26, 0x176: 0x27, 0x177: 0xc3,\n\t0x178: 0x28, 0x179: 0x28, 0x17a: 0x29, 0x17b: 0x28, 0x17c: 0xc4, 0x17d: 0x2a, 0x17e: 0x2b, 0x17f: 0x2c,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x2d, 0x181: 0x2e, 0x182: 0x2f, 0x183: 0xc5, 0x184: 0x30, 0x185: 0x31, 0x186: 0xc6, 0x187: 0x9b,\n\t0x188: 0xc7, 0x189: 0xc8, 0x18a: 0x9b, 0x18b: 0x9b, 0x18c: 0xc9, 0x18d: 0x9b, 0x18e: 0x9b, 0x18f: 0x9b,\n\t0x190: 0xca, 0x191: 0x32, 0x192: 0x33, 0x193: 0x34, 0x194: 0x9b, 0x195: 0x9b, 0x196: 0x9b, 0x197: 0x9b,\n\t0x198: 0x9b, 0x199: 0x9b, 0x19a: 0x9b, 0x19b: 0x9b, 0x19c: 0x9b, 0x19d: 0x9b, 0x19e: 0x9b, 0x19f: 0x9b,\n\t0x1a0: 0x9b, 0x1a1: 0x9b, 0x1a2: 0x9b, 0x1a3: 0x9b, 0x1a4: 0x9b, 0x1a5: 0x9b, 0x1a6: 0x9b, 0x1a7: 0x9b,\n\t0x1a8: 0xcb, 0x1a9: 0xcc, 0x1aa: 0x9b, 0x1ab: 0xcd, 0x1ac: 0x9b, 0x1ad: 0xce, 0x1ae: 0xcf, 0x1af: 0x9b,\n\t0x1b0: 0xd0, 0x1b1: 0x35, 0x1b2: 0x28, 0x1b3: 0x36, 0x1b4: 0xd1, 0x1b5: 0xd2, 0x1b6: 0xd3, 0x1b7: 0xd4,\n\t0x1b8: 0xd5, 0x1b9: 0xd6, 0x1ba: 0xd7, 0x1bb: 0xd8, 0x1bc: 0xd9, 0x1bd: 0xda, 0x1be: 0xdb, 0x1bf: 0x37,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x38, 0x1c1: 0xdc, 0x1c2: 0xdd, 0x1c3: 0xde, 0x1c4: 0xdf, 0x1c5: 0x39, 0x1c6: 0x3a, 0x1c7: 0xe0,\n\t0x1c8: 0xe1, 0x1c9: 0x3b, 0x1ca: 0x3c, 0x1cb: 0x3d, 0x1cc: 0x3e, 0x1cd: 0x3f, 0x1ce: 0x40, 0x1cf: 0x41,\n\t0x1d0: 0x9f, 0x1d1: 0x9f, 0x1d2: 0x9f, 0x1d3: 0x9f, 0x1d4: 0x9f, 0x1d5: 0x9f, 0x1d6: 0x9f, 0x1d7: 0x9f,\n\t0x1d8: 0x9f, 0x1d9: 0x9f, 0x1da: 0x9f, 0x1db: 0x9f, 0x1dc: 0x9f, 0x1dd: 0x9f, 0x1de: 0x9f, 0x1df: 0x9f,\n\t0x1e0: 0x9f, 0x1e1: 0x9f, 0x1e2: 0x9f, 0x1e3: 0x9f, 0x1e4: 0x9f, 0x1e5: 0x9f, 0x1e6: 0x9f, 0x1e7: 0x9f,\n\t0x1e8: 0x9f, 0x1e9: 0x9f, 0x1ea: 0x9f, 0x1eb: 0x9f, 0x1ec: 0x9f, 0x1ed: 0x9f, 0x1ee: 0x9f, 0x1ef: 0x9f,\n\t0x1f0: 0x9f, 0x1f1: 0x9f, 0x1f2: 0x9f, 0x1f3: 0x9f, 0x1f4: 0x9f, 0x1f5: 0x9f, 0x1f6: 0x9f, 0x1f7: 0x9f,\n\t0x1f8: 0x9f, 0x1f9: 0x9f, 0x1fa: 0x9f, 0x1fb: 0x9f, 0x1fc: 0x9f, 0x1fd: 0x9f, 0x1fe: 0x9f, 0x1ff: 0x9f,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x9f, 0x201: 0x9f, 0x202: 0x9f, 0x203: 0x9f, 0x204: 0x9f, 0x205: 0x9f, 0x206: 0x9f, 0x207: 0x9f,\n\t0x208: 0x9f, 0x209: 0x9f, 0x20a: 0x9f, 0x20b: 0x9f, 0x20c: 0x9f, 0x20d: 0x9f, 0x20e: 0x9f, 0x20f: 0x9f,\n\t0x210: 0x9f, 0x211: 0x9f, 0x212: 0x9f, 0x213: 0x9f, 0x214: 0x9f, 0x215: 0x9f, 0x216: 0x9f, 0x217: 0x9f,\n\t0x218: 0x9f, 0x219: 0x9f, 0x21a: 0x9f, 0x21b: 0x9f, 0x21c: 0x9f, 0x21d: 0x9f, 0x21e: 0x9f, 0x21f: 0x9f,\n\t0x220: 0x9f, 0x221: 0x9f, 0x222: 0x9f, 0x223: 0x9f, 0x224: 0x9f, 0x225: 0x9f, 0x226: 0x9f, 0x227: 0x9f,\n\t0x228: 0x9f, 0x229: 0x9f, 0x22a: 0x9f, 0x22b: 0x9f, 0x22c: 0x9f, 0x22d: 0x9f, 0x22e: 0x9f, 0x22f: 0x9f,\n\t0x230: 0x9f, 0x231: 0x9f, 0x232: 0x9f, 0x233: 0x9f, 0x234: 0x9f, 0x235: 0x9f, 0x236: 0xb2, 0x237: 0x9b,\n\t0x238: 0x9f, 0x239: 0x9f, 0x23a: 0x9f, 0x23b: 0x9f, 0x23c: 0x9f, 0x23d: 0x9f, 0x23e: 0x9f, 0x23f: 0x9f,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x9f, 0x241: 0x9f, 0x242: 0x9f, 0x243: 0x9f, 0x244: 0x9f, 0x245: 0x9f, 0x246: 0x9f, 0x247: 0x9f,\n\t0x248: 0x9f, 0x249: 0x9f, 0x24a: 0x9f, 0x24b: 0x9f, 0x24c: 0x9f, 0x24d: 0x9f, 0x24e: 0x9f, 0x24f: 0x9f,\n\t0x250: 0x9f, 0x251: 0x9f, 0x252: 0x9f, 0x253: 0x9f, 0x254: 0x9f, 0x255: 0x9f, 0x256: 0x9f, 0x257: 0x9f,\n\t0x258: 0x9f, 0x259: 0x9f, 0x25a: 0x9f, 0x25b: 0x9f, 0x25c: 0x9f, 0x25d: 0x9f, 0x25e: 0x9f, 0x25f: 0x9f,\n\t0x260: 0x9f, 0x261: 0x9f, 0x262: 0x9f, 0x263: 0x9f, 0x264: 0x9f, 0x265: 0x9f, 0x266: 0x9f, 0x267: 0x9f,\n\t0x268: 0x9f, 0x269: 0x9f, 0x26a: 0x9f, 0x26b: 0x9f, 0x26c: 0x9f, 0x26d: 0x9f, 0x26e: 0x9f, 0x26f: 0x9f,\n\t0x270: 0x9f, 0x271: 0x9f, 0x272: 0x9f, 0x273: 0x9f, 0x274: 0x9f, 0x275: 0x9f, 0x276: 0x9f, 0x277: 0x9f,\n\t0x278: 0x9f, 0x279: 0x9f, 0x27a: 0x9f, 0x27b: 0x9f, 0x27c: 0x9f, 0x27d: 0x9f, 0x27e: 0x9f, 0x27f: 0x9f,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x9f, 0x281: 0x9f, 0x282: 0x9f, 0x283: 0x9f, 0x284: 0x9f, 0x285: 0x9f, 0x286: 0x9f, 0x287: 0x9f,\n\t0x288: 0x9f, 0x289: 0x9f, 0x28a: 0x9f, 0x28b: 0x9f, 0x28c: 0x9f, 0x28d: 0x9f, 0x28e: 0x9f, 0x28f: 0x9f,\n\t0x290: 0x9f, 0x291: 0x9f, 0x292: 0x9f, 0x293: 0x9f, 0x294: 0x9f, 0x295: 0x9f, 0x296: 0x9f, 0x297: 0x9f,\n\t0x298: 0x9f, 0x299: 0x9f, 0x29a: 0x9f, 0x29b: 0x9f, 0x29c: 0x9f, 0x29d: 0x9f, 0x29e: 0x9f, 0x29f: 0x9f,\n\t0x2a0: 0x9f, 0x2a1: 0x9f, 0x2a2: 0x9f, 0x2a3: 0x9f, 0x2a4: 0x9f, 0x2a5: 0x9f, 0x2a6: 0x9f, 0x2a7: 0x9f,\n\t0x2a8: 0x9f, 0x2a9: 0x9f, 0x2aa: 0x9f, 0x2ab: 0x9f, 0x2ac: 0x9f, 0x2ad: 0x9f, 0x2ae: 0x9f, 0x2af: 0x9f,\n\t0x2b0: 0x9f, 0x2b1: 0x9f, 0x2b2: 0x9f, 0x2b3: 0x9f, 0x2b4: 0x9f, 0x2b5: 0x9f, 0x2b6: 0x9f, 0x2b7: 0x9f,\n\t0x2b8: 0x9f, 0x2b9: 0x9f, 0x2ba: 0x9f, 0x2bb: 0x9f, 0x2bc: 0x9f, 0x2bd: 0x9f, 0x2be: 0x9f, 0x2bf: 0xe2,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x9f, 0x2c1: 0x9f, 0x2c2: 0x9f, 0x2c3: 0x9f, 0x2c4: 0x9f, 0x2c5: 0x9f, 0x2c6: 0x9f, 0x2c7: 0x9f,\n\t0x2c8: 0x9f, 0x2c9: 0x9f, 0x2ca: 0x9f, 0x2cb: 0x9f, 0x2cc: 0x9f, 0x2cd: 0x9f, 0x2ce: 0x9f, 0x2cf: 0x9f,\n\t0x2d0: 0x9f, 0x2d1: 0x9f, 0x2d2: 0xe3, 0x2d3: 0xe4, 0x2d4: 0x9f, 0x2d5: 0x9f, 0x2d6: 0x9f, 0x2d7: 0x9f,\n\t0x2d8: 0xe5, 0x2d9: 0x42, 0x2da: 0x43, 0x2db: 0xe6, 0x2dc: 0x44, 0x2dd: 0x45, 0x2de: 0x46, 0x2df: 0xe7,\n\t0x2e0: 0xe8, 0x2e1: 0xe9, 0x2e2: 0xea, 0x2e3: 0xeb, 0x2e4: 0xec, 0x2e5: 0xed, 0x2e6: 0xee, 0x2e7: 0xef,\n\t0x2e8: 0xf0, 0x2e9: 0xf1, 0x2ea: 0xf2, 0x2eb: 0xf3, 0x2ec: 0xf4, 0x2ed: 0xf5, 0x2ee: 0xf6, 0x2ef: 0xf7,\n\t0x2f0: 0x9f, 0x2f1: 0x9f, 0x2f2: 0x9f, 0x2f3: 0x9f, 0x2f4: 0x9f, 0x2f5: 0x9f, 0x2f6: 0x9f, 0x2f7: 0x9f,\n\t0x2f8: 0x9f, 0x2f9: 0x9f, 0x2fa: 0x9f, 0x2fb: 0x9f, 0x2fc: 0x9f, 0x2fd: 0x9f, 0x2fe: 0x9f, 0x2ff: 0x9f,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x9f, 0x301: 0x9f, 0x302: 0x9f, 0x303: 0x9f, 0x304: 0x9f, 0x305: 0x9f, 0x306: 0x9f, 0x307: 0x9f,\n\t0x308: 0x9f, 0x309: 0x9f, 0x30a: 0x9f, 0x30b: 0x9f, 0x30c: 0x9f, 0x30d: 0x9f, 0x30e: 0x9f, 0x30f: 0x9f,\n\t0x310: 0x9f, 0x311: 0x9f, 0x312: 0x9f, 0x313: 0x9f, 0x314: 0x9f, 0x315: 0x9f, 0x316: 0x9f, 0x317: 0x9f,\n\t0x318: 0x9f, 0x319: 0x9f, 0x31a: 0x9f, 0x31b: 0x9f, 0x31c: 0x9f, 0x31d: 0x9f, 0x31e: 0xf8, 0x31f: 0xf9,\n\t// Block 0xd, offset 0x340\n\t0x340: 0xba, 0x341: 0xba, 0x342: 0xba, 0x343: 0xba, 0x344: 0xba, 0x345: 0xba, 0x346: 0xba, 0x347: 0xba,\n\t0x348: 0xba, 0x349: 0xba, 0x34a: 0xba, 0x34b: 0xba, 0x34c: 0xba, 0x34d: 0xba, 0x34e: 0xba, 0x34f: 0xba,\n\t0x350: 0xba, 0x351: 0xba, 0x352: 0xba, 0x353: 0xba, 0x354: 0xba, 0x355: 0xba, 0x356: 0xba, 0x357: 0xba,\n\t0x358: 0xba, 0x359: 0xba, 0x35a: 0xba, 0x35b: 0xba, 0x35c: 0xba, 0x35d: 0xba, 0x35e: 0xba, 0x35f: 0xba,\n\t0x360: 0xba, 0x361: 0xba, 0x362: 0xba, 0x363: 0xba, 0x364: 0xba, 0x365: 0xba, 0x366: 0xba, 0x367: 0xba,\n\t0x368: 0xba, 0x369: 0xba, 0x36a: 0xba, 0x36b: 0xba, 0x36c: 0xba, 0x36d: 0xba, 0x36e: 0xba, 0x36f: 0xba,\n\t0x370: 0xba, 0x371: 0xba, 0x372: 0xba, 0x373: 0xba, 0x374: 0xba, 0x375: 0xba, 0x376: 0xba, 0x377: 0xba,\n\t0x378: 0xba, 0x379: 0xba, 0x37a: 0xba, 0x37b: 0xba, 0x37c: 0xba, 0x37d: 0xba, 0x37e: 0xba, 0x37f: 0xba,\n\t// Block 0xe, offset 0x380\n\t0x380: 0xba, 0x381: 0xba, 0x382: 0xba, 0x383: 0xba, 0x384: 0xba, 0x385: 0xba, 0x386: 0xba, 0x387: 0xba,\n\t0x388: 0xba, 0x389: 0xba, 0x38a: 0xba, 0x38b: 0xba, 0x38c: 0xba, 0x38d: 0xba, 0x38e: 0xba, 0x38f: 0xba,\n\t0x390: 0xba, 0x391: 0xba, 0x392: 0xba, 0x393: 0xba, 0x394: 0xba, 0x395: 0xba, 0x396: 0xba, 0x397: 0xba,\n\t0x398: 0xba, 0x399: 0xba, 0x39a: 0xba, 0x39b: 0xba, 0x39c: 0xba, 0x39d: 0xba, 0x39e: 0xba, 0x39f: 0xba,\n\t0x3a0: 0xba, 0x3a1: 0xba, 0x3a2: 0xba, 0x3a3: 0xba, 0x3a4: 0xfa, 0x3a5: 0xfb, 0x3a6: 0xfc, 0x3a7: 0xfd,\n\t0x3a8: 0x47, 0x3a9: 0xfe, 0x3aa: 0xff, 0x3ab: 0x48, 0x3ac: 0x49, 0x3ad: 0x4a, 0x3ae: 0x4b, 0x3af: 0x4c,\n\t0x3b0: 0x100, 0x3b1: 0x4d, 0x3b2: 0x4e, 0x3b3: 0x4f, 0x3b4: 0x50, 0x3b5: 0x51, 0x3b6: 0x101, 0x3b7: 0x52,\n\t0x3b8: 0x53, 0x3b9: 0x54, 0x3ba: 0x55, 0x3bb: 0x56, 0x3bc: 0x57, 0x3bd: 0x58, 0x3be: 0x59, 0x3bf: 0x5a,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x102, 0x3c1: 0x103, 0x3c2: 0x9f, 0x3c3: 0x104, 0x3c4: 0x105, 0x3c5: 0x9b, 0x3c6: 0x106, 0x3c7: 0x107,\n\t0x3c8: 0xba, 0x3c9: 0xba, 0x3ca: 0x108, 0x3cb: 0x109, 0x3cc: 0x10a, 0x3cd: 0x10b, 0x3ce: 0x10c, 0x3cf: 0x10d,\n\t0x3d0: 0x10e, 0x3d1: 0x9f, 0x3d2: 0x10f, 0x3d3: 0x110, 0x3d4: 0x111, 0x3d5: 0x112, 0x3d6: 0xba, 0x3d7: 0xba,\n\t0x3d8: 0x9f, 0x3d9: 0x9f, 0x3da: 0x9f, 0x3db: 0x9f, 0x3dc: 0x113, 0x3dd: 0x114, 0x3de: 0xba, 0x3df: 0xba,\n\t0x3e0: 0x115, 0x3e1: 0x116, 0x3e2: 0x117, 0x3e3: 0x118, 0x3e4: 0x119, 0x3e5: 0xba, 0x3e6: 0x11a, 0x3e7: 0x11b,\n\t0x3e8: 0x11c, 0x3e9: 0x11d, 0x3ea: 0x11e, 0x3eb: 0x5b, 0x3ec: 0x11f, 0x3ed: 0x120, 0x3ee: 0x5c, 0x3ef: 0xba,\n\t0x3f0: 0x121, 0x3f1: 0x122, 0x3f2: 0x123, 0x3f3: 0x124, 0x3f4: 0x125, 0x3f5: 0xba, 0x3f6: 0xba, 0x3f7: 0xba,\n\t0x3f8: 0xba, 0x3f9: 0x126, 0x3fa: 0xba, 0x3fb: 0xba, 0x3fc: 0x127, 0x3fd: 0x128, 0x3fe: 0xba, 0x3ff: 0x129,\n\t// Block 0x10, offset 0x400\n\t0x400: 0x12a, 0x401: 0x12b, 0x402: 0x12c, 0x403: 0x12d, 0x404: 0x12e, 0x405: 0x12f, 0x406: 0x130, 0x407: 0x131,\n\t0x408: 0x132, 0x409: 0xba, 0x40a: 0x133, 0x40b: 0x134, 0x40c: 0x5d, 0x40d: 0x5e, 0x40e: 0xba, 0x40f: 0xba,\n\t0x410: 0x135, 0x411: 0x136, 0x412: 0x137, 0x413: 0x138, 0x414: 0xba, 0x415: 0xba, 0x416: 0x139, 0x417: 0x13a,\n\t0x418: 0x13b, 0x419: 0x13c, 0x41a: 0x13d, 0x41b: 0x13e, 0x41c: 0x13f, 0x41d: 0xba, 0x41e: 0xba, 0x41f: 0xba,\n\t0x420: 0x140, 0x421: 0xba, 0x422: 0x141, 0x423: 0x142, 0x424: 0xba, 0x425: 0xba, 0x426: 0x143, 0x427: 0x144,\n\t0x428: 0x145, 0x429: 0x146, 0x42a: 0x147, 0x42b: 0x148, 0x42c: 0xba, 0x42d: 0xba, 0x42e: 0xba, 0x42f: 0xba,\n\t0x430: 0x149, 0x431: 0x14a, 0x432: 0x14b, 0x433: 0xba, 0x434: 0x14c, 0x435: 0x14d, 0x436: 0x14e, 0x437: 0xba,\n\t0x438: 0xba, 0x439: 0xba, 0x43a: 0xba, 0x43b: 0x14f, 0x43c: 0xba, 0x43d: 0xba, 0x43e: 0xba, 0x43f: 0x150,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x9f, 0x441: 0x9f, 0x442: 0x9f, 0x443: 0x9f, 0x444: 0x9f, 0x445: 0x9f, 0x446: 0x9f, 0x447: 0x9f,\n\t0x448: 0x9f, 0x449: 0x9f, 0x44a: 0x9f, 0x44b: 0x9f, 0x44c: 0x9f, 0x44d: 0x9f, 0x44e: 0x151, 0x44f: 0xba,\n\t0x450: 0x9b, 0x451: 0x152, 0x452: 0x9f, 0x453: 0x9f, 0x454: 0x9f, 0x455: 0x153, 0x456: 0xba, 0x457: 0xba,\n\t0x458: 0xba, 0x459: 0xba, 0x45a: 0xba, 0x45b: 0xba, 0x45c: 0xba, 0x45d: 0xba, 0x45e: 0xba, 0x45f: 0xba,\n\t0x460: 0xba, 0x461: 0xba, 0x462: 0xba, 0x463: 0xba, 0x464: 0xba, 0x465: 0xba, 0x466: 0xba, 0x467: 0xba,\n\t0x468: 0xba, 0x469: 0xba, 0x46a: 0xba, 0x46b: 0xba, 0x46c: 0xba, 0x46d: 0xba, 0x46e: 0xba, 0x46f: 0xba,\n\t0x470: 0xba, 0x471: 0xba, 0x472: 0xba, 0x473: 0xba, 0x474: 0xba, 0x475: 0xba, 0x476: 0xba, 0x477: 0xba,\n\t0x478: 0xba, 0x479: 0xba, 0x47a: 0xba, 0x47b: 0xba, 0x47c: 0xba, 0x47d: 0xba, 0x47e: 0xba, 0x47f: 0xba,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x9f, 0x481: 0x9f, 0x482: 0x9f, 0x483: 0x9f, 0x484: 0x9f, 0x485: 0x9f, 0x486: 0x9f, 0x487: 0x9f,\n\t0x488: 0x9f, 0x489: 0x9f, 0x48a: 0x9f, 0x48b: 0x9f, 0x48c: 0x9f, 0x48d: 0x9f, 0x48e: 0x9f, 0x48f: 0x9f,\n\t0x490: 0x154, 0x491: 0xba, 0x492: 0xba, 0x493: 0xba, 0x494: 0xba, 0x495: 0xba, 0x496: 0xba, 0x497: 0xba,\n\t0x498: 0xba, 0x499: 0xba, 0x49a: 0xba, 0x49b: 0xba, 0x49c: 0xba, 0x49d: 0xba, 0x49e: 0xba, 0x49f: 0xba,\n\t0x4a0: 0xba, 0x4a1: 0xba, 0x4a2: 0xba, 0x4a3: 0xba, 0x4a4: 0xba, 0x4a5: 0xba, 0x4a6: 0xba, 0x4a7: 0xba,\n\t0x4a8: 0xba, 0x4a9: 0xba, 0x4aa: 0xba, 0x4ab: 0xba, 0x4ac: 0xba, 0x4ad: 0xba, 0x4ae: 0xba, 0x4af: 0xba,\n\t0x4b0: 0xba, 0x4b1: 0xba, 0x4b2: 0xba, 0x4b3: 0xba, 0x4b4: 0xba, 0x4b5: 0xba, 0x4b6: 0xba, 0x4b7: 0xba,\n\t0x4b8: 0xba, 0x4b9: 0xba, 0x4ba: 0xba, 0x4bb: 0xba, 0x4bc: 0xba, 0x4bd: 0xba, 0x4be: 0xba, 0x4bf: 0xba,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0xba, 0x4c1: 0xba, 0x4c2: 0xba, 0x4c3: 0xba, 0x4c4: 0xba, 0x4c5: 0xba, 0x4c6: 0xba, 0x4c7: 0xba,\n\t0x4c8: 0xba, 0x4c9: 0xba, 0x4ca: 0xba, 0x4cb: 0xba, 0x4cc: 0xba, 0x4cd: 0xba, 0x4ce: 0xba, 0x4cf: 0xba,\n\t0x4d0: 0x9f, 0x4d1: 0x9f, 0x4d2: 0x9f, 0x4d3: 0x9f, 0x4d4: 0x9f, 0x4d5: 0x9f, 0x4d6: 0x9f, 0x4d7: 0x9f,\n\t0x4d8: 0x9f, 0x4d9: 0x155, 0x4da: 0xba, 0x4db: 0xba, 0x4dc: 0xba, 0x4dd: 0xba, 0x4de: 0xba, 0x4df: 0xba,\n\t0x4e0: 0xba, 0x4e1: 0xba, 0x4e2: 0xba, 0x4e3: 0xba, 0x4e4: 0xba, 0x4e5: 0xba, 0x4e6: 0xba, 0x4e7: 0xba,\n\t0x4e8: 0xba, 0x4e9: 0xba, 0x4ea: 0xba, 0x4eb: 0xba, 0x4ec: 0xba, 0x4ed: 0xba, 0x4ee: 0xba, 0x4ef: 0xba,\n\t0x4f0: 0xba, 0x4f1: 0xba, 0x4f2: 0xba, 0x4f3: 0xba, 0x4f4: 0xba, 0x4f5: 0xba, 0x4f6: 0xba, 0x4f7: 0xba,\n\t0x4f8: 0xba, 0x4f9: 0xba, 0x4fa: 0xba, 0x4fb: 0xba, 0x4fc: 0xba, 0x4fd: 0xba, 0x4fe: 0xba, 0x4ff: 0xba,\n\t// Block 0x14, offset 0x500\n\t0x500: 0xba, 0x501: 0xba, 0x502: 0xba, 0x503: 0xba, 0x504: 0xba, 0x505: 0xba, 0x506: 0xba, 0x507: 0xba,\n\t0x508: 0xba, 0x509: 0xba, 0x50a: 0xba, 0x50b: 0xba, 0x50c: 0xba, 0x50d: 0xba, 0x50e: 0xba, 0x50f: 0xba,\n\t0x510: 0xba, 0x511: 0xba, 0x512: 0xba, 0x513: 0xba, 0x514: 0xba, 0x515: 0xba, 0x516: 0xba, 0x517: 0xba,\n\t0x518: 0xba, 0x519: 0xba, 0x51a: 0xba, 0x51b: 0xba, 0x51c: 0xba, 0x51d: 0xba, 0x51e: 0xba, 0x51f: 0xba,\n\t0x520: 0x9f, 0x521: 0x9f, 0x522: 0x9f, 0x523: 0x9f, 0x524: 0x9f, 0x525: 0x9f, 0x526: 0x9f, 0x527: 0x9f,\n\t0x528: 0x148, 0x529: 0x156, 0x52a: 0xba, 0x52b: 0x157, 0x52c: 0x158, 0x52d: 0x159, 0x52e: 0x15a, 0x52f: 0xba,\n\t0x530: 0xba, 0x531: 0xba, 0x532: 0xba, 0x533: 0xba, 0x534: 0xba, 0x535: 0xba, 0x536: 0xba, 0x537: 0xba,\n\t0x538: 0xba, 0x539: 0x15b, 0x53a: 0x15c, 0x53b: 0xba, 0x53c: 0x9f, 0x53d: 0x15d, 0x53e: 0x15e, 0x53f: 0x15f,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x9f, 0x541: 0x9f, 0x542: 0x9f, 0x543: 0x9f, 0x544: 0x9f, 0x545: 0x9f, 0x546: 0x9f, 0x547: 0x9f,\n\t0x548: 0x9f, 0x549: 0x9f, 0x54a: 0x9f, 0x54b: 0x9f, 0x54c: 0x9f, 0x54d: 0x9f, 0x54e: 0x9f, 0x54f: 0x9f,\n\t0x550: 0x9f, 0x551: 0x9f, 0x552: 0x9f, 0x553: 0x9f, 0x554: 0x9f, 0x555: 0x9f, 0x556: 0x9f, 0x557: 0x9f,\n\t0x558: 0x9f, 0x559: 0x9f, 0x55a: 0x9f, 0x55b: 0x9f, 0x55c: 0x9f, 0x55d: 0x9f, 0x55e: 0x9f, 0x55f: 0x160,\n\t0x560: 0x9f, 0x561: 0x9f, 0x562: 0x9f, 0x563: 0x9f, 0x564: 0x9f, 0x565: 0x9f, 0x566: 0x9f, 0x567: 0x9f,\n\t0x568: 0x9f, 0x569: 0x9f, 0x56a: 0x9f, 0x56b: 0x161, 0x56c: 0xba, 0x56d: 0xba, 0x56e: 0xba, 0x56f: 0xba,\n\t0x570: 0xba, 0x571: 0xba, 0x572: 0xba, 0x573: 0xba, 0x574: 0xba, 0x575: 0xba, 0x576: 0xba, 0x577: 0xba,\n\t0x578: 0xba, 0x579: 0xba, 0x57a: 0xba, 0x57b: 0xba, 0x57c: 0xba, 0x57d: 0xba, 0x57e: 0xba, 0x57f: 0xba,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x9f, 0x581: 0x9f, 0x582: 0x9f, 0x583: 0x9f, 0x584: 0x162, 0x585: 0x163, 0x586: 0x9f, 0x587: 0x9f,\n\t0x588: 0x9f, 0x589: 0x9f, 0x58a: 0x9f, 0x58b: 0x164, 0x58c: 0xba, 0x58d: 0xba, 0x58e: 0xba, 0x58f: 0xba,\n\t0x590: 0xba, 0x591: 0xba, 0x592: 0xba, 0x593: 0xba, 0x594: 0xba, 0x595: 0xba, 0x596: 0xba, 0x597: 0xba,\n\t0x598: 0xba, 0x599: 0xba, 0x59a: 0xba, 0x59b: 0xba, 0x59c: 0xba, 0x59d: 0xba, 0x59e: 0xba, 0x59f: 0xba,\n\t0x5a0: 0xba, 0x5a1: 0xba, 0x5a2: 0xba, 0x5a3: 0xba, 0x5a4: 0xba, 0x5a5: 0xba, 0x5a6: 0xba, 0x5a7: 0xba,\n\t0x5a8: 0xba, 0x5a9: 0xba, 0x5aa: 0xba, 0x5ab: 0xba, 0x5ac: 0xba, 0x5ad: 0xba, 0x5ae: 0xba, 0x5af: 0xba,\n\t0x5b0: 0x9f, 0x5b1: 0x165, 0x5b2: 0x166, 0x5b3: 0xba, 0x5b4: 0xba, 0x5b5: 0xba, 0x5b6: 0xba, 0x5b7: 0xba,\n\t0x5b8: 0xba, 0x5b9: 0xba, 0x5ba: 0xba, 0x5bb: 0xba, 0x5bc: 0xba, 0x5bd: 0xba, 0x5be: 0xba, 0x5bf: 0xba,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x9b, 0x5c1: 0x9b, 0x5c2: 0x9b, 0x5c3: 0x167, 0x5c4: 0x168, 0x5c5: 0x169, 0x5c6: 0x16a, 0x5c7: 0x16b,\n\t0x5c8: 0x9b, 0x5c9: 0x16c, 0x5ca: 0xba, 0x5cb: 0x16d, 0x5cc: 0x9b, 0x5cd: 0x16e, 0x5ce: 0xba, 0x5cf: 0xba,\n\t0x5d0: 0x5f, 0x5d1: 0x60, 0x5d2: 0x61, 0x5d3: 0x62, 0x5d4: 0x63, 0x5d5: 0x64, 0x5d6: 0x65, 0x5d7: 0x66,\n\t0x5d8: 0x67, 0x5d9: 0x68, 0x5da: 0x69, 0x5db: 0x6a, 0x5dc: 0x6b, 0x5dd: 0x6c, 0x5de: 0x6d, 0x5df: 0x6e,\n\t0x5e0: 0x9b, 0x5e1: 0x9b, 0x5e2: 0x9b, 0x5e3: 0x9b, 0x5e4: 0x9b, 0x5e5: 0x9b, 0x5e6: 0x9b, 0x5e7: 0x9b,\n\t0x5e8: 0x16f, 0x5e9: 0x170, 0x5ea: 0x171, 0x5eb: 0xba, 0x5ec: 0xba, 0x5ed: 0xba, 0x5ee: 0xba, 0x5ef: 0xba,\n\t0x5f0: 0xba, 0x5f1: 0xba, 0x5f2: 0xba, 0x5f3: 0xba, 0x5f4: 0xba, 0x5f5: 0xba, 0x5f6: 0xba, 0x5f7: 0xba,\n\t0x5f8: 0xba, 0x5f9: 0xba, 0x5fa: 0xba, 0x5fb: 0xba, 0x5fc: 0xba, 0x5fd: 0xba, 0x5fe: 0xba, 0x5ff: 0xba,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x172, 0x601: 0xba, 0x602: 0xba, 0x603: 0xba, 0x604: 0x173, 0x605: 0x174, 0x606: 0xba, 0x607: 0xba,\n\t0x608: 0xba, 0x609: 0xba, 0x60a: 0xba, 0x60b: 0x175, 0x60c: 0xba, 0x60d: 0xba, 0x60e: 0xba, 0x60f: 0xba,\n\t0x610: 0xba, 0x611: 0xba, 0x612: 0xba, 0x613: 0xba, 0x614: 0xba, 0x615: 0xba, 0x616: 0xba, 0x617: 0xba,\n\t0x618: 0xba, 0x619: 0xba, 0x61a: 0xba, 0x61b: 0xba, 0x61c: 0xba, 0x61d: 0xba, 0x61e: 0xba, 0x61f: 0xba,\n\t0x620: 0x121, 0x621: 0x121, 0x622: 0x121, 0x623: 0x176, 0x624: 0x6f, 0x625: 0x177, 0x626: 0xba, 0x627: 0xba,\n\t0x628: 0xba, 0x629: 0xba, 0x62a: 0xba, 0x62b: 0xba, 0x62c: 0xba, 0x62d: 0xba, 0x62e: 0xba, 0x62f: 0xba,\n\t0x630: 0xba, 0x631: 0x178, 0x632: 0x179, 0x633: 0xba, 0x634: 0x17a, 0x635: 0xba, 0x636: 0xba, 0x637: 0xba,\n\t0x638: 0x70, 0x639: 0x71, 0x63a: 0x72, 0x63b: 0x17b, 0x63c: 0xba, 0x63d: 0xba, 0x63e: 0xba, 0x63f: 0xba,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x17c, 0x641: 0x9b, 0x642: 0x17d, 0x643: 0x17e, 0x644: 0x73, 0x645: 0x74, 0x646: 0x17f, 0x647: 0x180,\n\t0x648: 0x75, 0x649: 0x181, 0x64a: 0xba, 0x64b: 0xba, 0x64c: 0x9b, 0x64d: 0x9b, 0x64e: 0x9b, 0x64f: 0x9b,\n\t0x650: 0x9b, 0x651: 0x9b, 0x652: 0x9b, 0x653: 0x9b, 0x654: 0x9b, 0x655: 0x9b, 0x656: 0x9b, 0x657: 0x9b,\n\t0x658: 0x9b, 0x659: 0x9b, 0x65a: 0x9b, 0x65b: 0x182, 0x65c: 0x9b, 0x65d: 0x183, 0x65e: 0x9b, 0x65f: 0x184,\n\t0x660: 0x185, 0x661: 0x186, 0x662: 0x187, 0x663: 0xba, 0x664: 0x188, 0x665: 0x189, 0x666: 0x18a, 0x667: 0x18b,\n\t0x668: 0x9b, 0x669: 0x18c, 0x66a: 0x18d, 0x66b: 0xba, 0x66c: 0xba, 0x66d: 0xba, 0x66e: 0xba, 0x66f: 0xba,\n\t0x670: 0xba, 0x671: 0xba, 0x672: 0xba, 0x673: 0xba, 0x674: 0xba, 0x675: 0xba, 0x676: 0xba, 0x677: 0xba,\n\t0x678: 0xba, 0x679: 0xba, 0x67a: 0xba, 0x67b: 0xba, 0x67c: 0xba, 0x67d: 0xba, 0x67e: 0xba, 0x67f: 0xba,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x9f, 0x681: 0x9f, 0x682: 0x9f, 0x683: 0x9f, 0x684: 0x9f, 0x685: 0x9f, 0x686: 0x9f, 0x687: 0x9f,\n\t0x688: 0x9f, 0x689: 0x9f, 0x68a: 0x9f, 0x68b: 0x9f, 0x68c: 0x9f, 0x68d: 0x9f, 0x68e: 0x9f, 0x68f: 0x9f,\n\t0x690: 0x9f, 0x691: 0x9f, 0x692: 0x9f, 0x693: 0x9f, 0x694: 0x9f, 0x695: 0x9f, 0x696: 0x9f, 0x697: 0x9f,\n\t0x698: 0x9f, 0x699: 0x9f, 0x69a: 0x9f, 0x69b: 0x18e, 0x69c: 0x9f, 0x69d: 0x9f, 0x69e: 0x9f, 0x69f: 0x9f,\n\t0x6a0: 0x9f, 0x6a1: 0x9f, 0x6a2: 0x9f, 0x6a3: 0x9f, 0x6a4: 0x9f, 0x6a5: 0x9f, 0x6a6: 0x9f, 0x6a7: 0x9f,\n\t0x6a8: 0x9f, 0x6a9: 0x9f, 0x6aa: 0x9f, 0x6ab: 0x9f, 0x6ac: 0x9f, 0x6ad: 0x9f, 0x6ae: 0x9f, 0x6af: 0x9f,\n\t0x6b0: 0x9f, 0x6b1: 0x9f, 0x6b2: 0x9f, 0x6b3: 0x9f, 0x6b4: 0x9f, 0x6b5: 0x9f, 0x6b6: 0x9f, 0x6b7: 0x9f,\n\t0x6b8: 0x9f, 0x6b9: 0x9f, 0x6ba: 0x9f, 0x6bb: 0x9f, 0x6bc: 0x9f, 0x6bd: 0x9f, 0x6be: 0x9f, 0x6bf: 0x9f,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x9f, 0x6c1: 0x9f, 0x6c2: 0x9f, 0x6c3: 0x9f, 0x6c4: 0x9f, 0x6c5: 0x9f, 0x6c6: 0x9f, 0x6c7: 0x9f,\n\t0x6c8: 0x9f, 0x6c9: 0x9f, 0x6ca: 0x9f, 0x6cb: 0x9f, 0x6cc: 0x9f, 0x6cd: 0x9f, 0x6ce: 0x9f, 0x6cf: 0x9f,\n\t0x6d0: 0x9f, 0x6d1: 0x9f, 0x6d2: 0x9f, 0x6d3: 0x9f, 0x6d4: 0x9f, 0x6d5: 0x9f, 0x6d6: 0x9f, 0x6d7: 0x9f,\n\t0x6d8: 0x9f, 0x6d9: 0x9f, 0x6da: 0x9f, 0x6db: 0x9f, 0x6dc: 0x18f, 0x6dd: 0x9f, 0x6de: 0x9f, 0x6df: 0x9f,\n\t0x6e0: 0x190, 0x6e1: 0x9f, 0x6e2: 0x9f, 0x6e3: 0x9f, 0x6e4: 0x9f, 0x6e5: 0x9f, 0x6e6: 0x9f, 0x6e7: 0x9f,\n\t0x6e8: 0x9f, 0x6e9: 0x9f, 0x6ea: 0x9f, 0x6eb: 0x9f, 0x6ec: 0x9f, 0x6ed: 0x9f, 0x6ee: 0x9f, 0x6ef: 0x9f,\n\t0x6f0: 0x9f, 0x6f1: 0x9f, 0x6f2: 0x9f, 0x6f3: 0x9f, 0x6f4: 0x9f, 0x6f5: 0x9f, 0x6f6: 0x9f, 0x6f7: 0x9f,\n\t0x6f8: 0x9f, 0x6f9: 0x9f, 0x6fa: 0x9f, 0x6fb: 0x9f, 0x6fc: 0x9f, 0x6fd: 0x9f, 0x6fe: 0x9f, 0x6ff: 0x9f,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x9f, 0x701: 0x9f, 0x702: 0x9f, 0x703: 0x9f, 0x704: 0x9f, 0x705: 0x9f, 0x706: 0x9f, 0x707: 0x9f,\n\t0x708: 0x9f, 0x709: 0x9f, 0x70a: 0x9f, 0x70b: 0x9f, 0x70c: 0x9f, 0x70d: 0x9f, 0x70e: 0x9f, 0x70f: 0x9f,\n\t0x710: 0x9f, 0x711: 0x9f, 0x712: 0x9f, 0x713: 0x9f, 0x714: 0x9f, 0x715: 0x9f, 0x716: 0x9f, 0x717: 0x9f,\n\t0x718: 0x9f, 0x719: 0x9f, 0x71a: 0x9f, 0x71b: 0x9f, 0x71c: 0x9f, 0x71d: 0x9f, 0x71e: 0x9f, 0x71f: 0x9f,\n\t0x720: 0x9f, 0x721: 0x9f, 0x722: 0x9f, 0x723: 0x9f, 0x724: 0x9f, 0x725: 0x9f, 0x726: 0x9f, 0x727: 0x9f,\n\t0x728: 0x9f, 0x729: 0x9f, 0x72a: 0x9f, 0x72b: 0x9f, 0x72c: 0x9f, 0x72d: 0x9f, 0x72e: 0x9f, 0x72f: 0x9f,\n\t0x730: 0x9f, 0x731: 0x9f, 0x732: 0x9f, 0x733: 0x9f, 0x734: 0x9f, 0x735: 0x9f, 0x736: 0x9f, 0x737: 0x9f,\n\t0x738: 0x9f, 0x739: 0x9f, 0x73a: 0x191, 0x73b: 0x9f, 0x73c: 0x9f, 0x73d: 0x9f, 0x73e: 0x9f, 0x73f: 0x9f,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0x9f, 0x741: 0x9f, 0x742: 0x9f, 0x743: 0x9f, 0x744: 0x9f, 0x745: 0x9f, 0x746: 0x9f, 0x747: 0x9f,\n\t0x748: 0x9f, 0x749: 0x9f, 0x74a: 0x9f, 0x74b: 0x9f, 0x74c: 0x9f, 0x74d: 0x9f, 0x74e: 0x9f, 0x74f: 0x9f,\n\t0x750: 0x9f, 0x751: 0x9f, 0x752: 0x9f, 0x753: 0x9f, 0x754: 0x9f, 0x755: 0x9f, 0x756: 0x9f, 0x757: 0x9f,\n\t0x758: 0x9f, 0x759: 0x9f, 0x75a: 0x9f, 0x75b: 0x9f, 0x75c: 0x9f, 0x75d: 0x9f, 0x75e: 0x9f, 0x75f: 0x9f,\n\t0x760: 0x9f, 0x761: 0x9f, 0x762: 0x9f, 0x763: 0x9f, 0x764: 0x9f, 0x765: 0x9f, 0x766: 0x9f, 0x767: 0x9f,\n\t0x768: 0x9f, 0x769: 0x9f, 0x76a: 0x9f, 0x76b: 0x9f, 0x76c: 0x9f, 0x76d: 0x9f, 0x76e: 0x9f, 0x76f: 0x192,\n\t0x770: 0xba, 0x771: 0xba, 0x772: 0xba, 0x773: 0xba, 0x774: 0xba, 0x775: 0xba, 0x776: 0xba, 0x777: 0xba,\n\t0x778: 0xba, 0x779: 0xba, 0x77a: 0xba, 0x77b: 0xba, 0x77c: 0xba, 0x77d: 0xba, 0x77e: 0xba, 0x77f: 0xba,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0xba, 0x781: 0xba, 0x782: 0xba, 0x783: 0xba, 0x784: 0xba, 0x785: 0xba, 0x786: 0xba, 0x787: 0xba,\n\t0x788: 0xba, 0x789: 0xba, 0x78a: 0xba, 0x78b: 0xba, 0x78c: 0xba, 0x78d: 0xba, 0x78e: 0xba, 0x78f: 0xba,\n\t0x790: 0xba, 0x791: 0xba, 0x792: 0xba, 0x793: 0xba, 0x794: 0xba, 0x795: 0xba, 0x796: 0xba, 0x797: 0xba,\n\t0x798: 0xba, 0x799: 0xba, 0x79a: 0xba, 0x79b: 0xba, 0x79c: 0xba, 0x79d: 0xba, 0x79e: 0xba, 0x79f: 0xba,\n\t0x7a0: 0x76, 0x7a1: 0x77, 0x7a2: 0x78, 0x7a3: 0x193, 0x7a4: 0x79, 0x7a5: 0x7a, 0x7a6: 0x194, 0x7a7: 0x7b,\n\t0x7a8: 0x7c, 0x7a9: 0xba, 0x7aa: 0xba, 0x7ab: 0xba, 0x7ac: 0xba, 0x7ad: 0xba, 0x7ae: 0xba, 0x7af: 0xba,\n\t0x7b0: 0xba, 0x7b1: 0xba, 0x7b2: 0xba, 0x7b3: 0xba, 0x7b4: 0xba, 0x7b5: 0xba, 0x7b6: 0xba, 0x7b7: 0xba,\n\t0x7b8: 0xba, 0x7b9: 0xba, 0x7ba: 0xba, 0x7bb: 0xba, 0x7bc: 0xba, 0x7bd: 0xba, 0x7be: 0xba, 0x7bf: 0xba,\n\t// Block 0x1f, offset 0x7c0\n\t0x7d0: 0x0d, 0x7d1: 0x0e, 0x7d2: 0x0f, 0x7d3: 0x10, 0x7d4: 0x11, 0x7d5: 0x0b, 0x7d6: 0x12, 0x7d7: 0x07,\n\t0x7d8: 0x13, 0x7d9: 0x0b, 0x7da: 0x0b, 0x7db: 0x14, 0x7dc: 0x0b, 0x7dd: 0x15, 0x7de: 0x16, 0x7df: 0x17,\n\t0x7e0: 0x07, 0x7e1: 0x07, 0x7e2: 0x07, 0x7e3: 0x07, 0x7e4: 0x07, 0x7e5: 0x07, 0x7e6: 0x07, 0x7e7: 0x07,\n\t0x7e8: 0x07, 0x7e9: 0x07, 0x7ea: 0x18, 0x7eb: 0x19, 0x7ec: 0x1a, 0x7ed: 0x07, 0x7ee: 0x1b, 0x7ef: 0x1c,\n\t0x7f0: 0x0b, 0x7f1: 0x0b, 0x7f2: 0x0b, 0x7f3: 0x0b, 0x7f4: 0x0b, 0x7f5: 0x0b, 0x7f6: 0x0b, 0x7f7: 0x0b,\n\t0x7f8: 0x0b, 0x7f9: 0x0b, 0x7fa: 0x0b, 0x7fb: 0x0b, 0x7fc: 0x0b, 0x7fd: 0x0b, 0x7fe: 0x0b, 0x7ff: 0x0b,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x0b, 0x801: 0x0b, 0x802: 0x0b, 0x803: 0x0b, 0x804: 0x0b, 0x805: 0x0b, 0x806: 0x0b, 0x807: 0x0b,\n\t0x808: 0x0b, 0x809: 0x0b, 0x80a: 0x0b, 0x80b: 0x0b, 0x80c: 0x0b, 0x80d: 0x0b, 0x80e: 0x0b, 0x80f: 0x0b,\n\t0x810: 0x0b, 0x811: 0x0b, 0x812: 0x0b, 0x813: 0x0b, 0x814: 0x0b, 0x815: 0x0b, 0x816: 0x0b, 0x817: 0x0b,\n\t0x818: 0x0b, 0x819: 0x0b, 0x81a: 0x0b, 0x81b: 0x0b, 0x81c: 0x0b, 0x81d: 0x0b, 0x81e: 0x0b, 0x81f: 0x0b,\n\t0x820: 0x0b, 0x821: 0x0b, 0x822: 0x0b, 0x823: 0x0b, 0x824: 0x0b, 0x825: 0x0b, 0x826: 0x0b, 0x827: 0x0b,\n\t0x828: 0x0b, 0x829: 0x0b, 0x82a: 0x0b, 0x82b: 0x0b, 0x82c: 0x0b, 0x82d: 0x0b, 0x82e: 0x0b, 0x82f: 0x0b,\n\t0x830: 0x0b, 0x831: 0x0b, 0x832: 0x0b, 0x833: 0x0b, 0x834: 0x0b, 0x835: 0x0b, 0x836: 0x0b, 0x837: 0x0b,\n\t0x838: 0x0b, 0x839: 0x0b, 0x83a: 0x0b, 0x83b: 0x0b, 0x83c: 0x0b, 0x83d: 0x0b, 0x83e: 0x0b, 0x83f: 0x0b,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x195, 0x841: 0x196, 0x842: 0xba, 0x843: 0xba, 0x844: 0x197, 0x845: 0x197, 0x846: 0x197, 0x847: 0x198,\n\t0x848: 0xba, 0x849: 0xba, 0x84a: 0xba, 0x84b: 0xba, 0x84c: 0xba, 0x84d: 0xba, 0x84e: 0xba, 0x84f: 0xba,\n\t0x850: 0xba, 0x851: 0xba, 0x852: 0xba, 0x853: 0xba, 0x854: 0xba, 0x855: 0xba, 0x856: 0xba, 0x857: 0xba,\n\t0x858: 0xba, 0x859: 0xba, 0x85a: 0xba, 0x85b: 0xba, 0x85c: 0xba, 0x85d: 0xba, 0x85e: 0xba, 0x85f: 0xba,\n\t0x860: 0xba, 0x861: 0xba, 0x862: 0xba, 0x863: 0xba, 0x864: 0xba, 0x865: 0xba, 0x866: 0xba, 0x867: 0xba,\n\t0x868: 0xba, 0x869: 0xba, 0x86a: 0xba, 0x86b: 0xba, 0x86c: 0xba, 0x86d: 0xba, 0x86e: 0xba, 0x86f: 0xba,\n\t0x870: 0xba, 0x871: 0xba, 0x872: 0xba, 0x873: 0xba, 0x874: 0xba, 0x875: 0xba, 0x876: 0xba, 0x877: 0xba,\n\t0x878: 0xba, 0x879: 0xba, 0x87a: 0xba, 0x87b: 0xba, 0x87c: 0xba, 0x87d: 0xba, 0x87e: 0xba, 0x87f: 0xba,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x0b, 0x881: 0x0b, 0x882: 0x0b, 0x883: 0x0b, 0x884: 0x0b, 0x885: 0x0b, 0x886: 0x0b, 0x887: 0x0b,\n\t0x888: 0x0b, 0x889: 0x0b, 0x88a: 0x0b, 0x88b: 0x0b, 0x88c: 0x0b, 0x88d: 0x0b, 0x88e: 0x0b, 0x88f: 0x0b,\n\t0x890: 0x0b, 0x891: 0x0b, 0x892: 0x0b, 0x893: 0x0b, 0x894: 0x0b, 0x895: 0x0b, 0x896: 0x0b, 0x897: 0x0b,\n\t0x898: 0x0b, 0x899: 0x0b, 0x89a: 0x0b, 0x89b: 0x0b, 0x89c: 0x0b, 0x89d: 0x0b, 0x89e: 0x0b, 0x89f: 0x0b,\n\t0x8a0: 0x1f, 0x8a1: 0x0b, 0x8a2: 0x0b, 0x8a3: 0x0b, 0x8a4: 0x0b, 0x8a5: 0x0b, 0x8a6: 0x0b, 0x8a7: 0x0b,\n\t0x8a8: 0x0b, 0x8a9: 0x0b, 0x8aa: 0x0b, 0x8ab: 0x0b, 0x8ac: 0x0b, 0x8ad: 0x0b, 0x8ae: 0x0b, 0x8af: 0x0b,\n\t0x8b0: 0x0b, 0x8b1: 0x0b, 0x8b2: 0x0b, 0x8b3: 0x0b, 0x8b4: 0x0b, 0x8b5: 0x0b, 0x8b6: 0x0b, 0x8b7: 0x0b,\n\t0x8b8: 0x0b, 0x8b9: 0x0b, 0x8ba: 0x0b, 0x8bb: 0x0b, 0x8bc: 0x0b, 0x8bd: 0x0b, 0x8be: 0x0b, 0x8bf: 0x0b,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x0b, 0x8c1: 0x0b, 0x8c2: 0x0b, 0x8c3: 0x0b, 0x8c4: 0x0b, 0x8c5: 0x0b, 0x8c6: 0x0b, 0x8c7: 0x0b,\n\t0x8c8: 0x0b, 0x8c9: 0x0b, 0x8ca: 0x0b, 0x8cb: 0x0b, 0x8cc: 0x0b, 0x8cd: 0x0b, 0x8ce: 0x0b, 0x8cf: 0x0b,\n}\n\n// idnaSparseOffset: 284 entries, 568 bytes\nvar idnaSparseOffset = []uint16{0x0, 0x8, 0x19, 0x25, 0x27, 0x2c, 0x33, 0x3e, 0x4a, 0x4e, 0x5d, 0x62, 0x6c, 0x78, 0x86, 0x8b, 0x94, 0xa4, 0xb2, 0xbe, 0xca, 0xdb, 0xe5, 0xec, 0xf9, 0x10a, 0x111, 0x11c, 0x12b, 0x139, 0x143, 0x145, 0x14a, 0x14d, 0x150, 0x152, 0x15e, 0x169, 0x171, 0x177, 0x17d, 0x182, 0x187, 0x18a, 0x18e, 0x194, 0x199, 0x1a5, 0x1af, 0x1b5, 0x1c6, 0x1d0, 0x1d3, 0x1db, 0x1de, 0x1eb, 0x1f3, 0x1f7, 0x1fe, 0x206, 0x216, 0x222, 0x224, 0x22e, 0x23a, 0x246, 0x252, 0x25a, 0x25f, 0x26c, 0x27d, 0x281, 0x28c, 0x290, 0x299, 0x2a1, 0x2a7, 0x2ac, 0x2af, 0x2b3, 0x2b9, 0x2bd, 0x2c1, 0x2c5, 0x2cb, 0x2d3, 0x2da, 0x2e5, 0x2ef, 0x2f3, 0x2f6, 0x2fc, 0x300, 0x302, 0x305, 0x307, 0x30a, 0x314, 0x317, 0x326, 0x32a, 0x32f, 0x332, 0x336, 0x33b, 0x340, 0x346, 0x352, 0x361, 0x367, 0x36b, 0x37a, 0x37f, 0x387, 0x391, 0x39c, 0x3a4, 0x3b5, 0x3be, 0x3ce, 0x3db, 0x3e5, 0x3ea, 0x3f7, 0x3fb, 0x400, 0x402, 0x406, 0x408, 0x40c, 0x415, 0x41b, 0x41f, 0x42f, 0x439, 0x43e, 0x441, 0x447, 0x44e, 0x453, 0x457, 0x45d, 0x462, 0x46b, 0x470, 0x476, 0x47d, 0x484, 0x48b, 0x48f, 0x494, 0x497, 0x49c, 0x4a8, 0x4ae, 0x4b3, 0x4ba, 0x4c2, 0x4c7, 0x4cb, 0x4db, 0x4e2, 0x4e6, 0x4ea, 0x4f1, 0x4f3, 0x4f6, 0x4f9, 0x4fd, 0x506, 0x50a, 0x512, 0x51a, 0x51e, 0x524, 0x52d, 0x539, 0x540, 0x549, 0x553, 0x55a, 0x568, 0x575, 0x582, 0x58b, 0x58f, 0x59f, 0x5a7, 0x5b2, 0x5bb, 0x5c1, 0x5c9, 0x5d2, 0x5dd, 0x5e0, 0x5ec, 0x5f5, 0x5f8, 0x5fd, 0x602, 0x60f, 0x61a, 0x623, 0x62d, 0x630, 0x63a, 0x643, 0x64f, 0x65c, 0x669, 0x677, 0x67e, 0x682, 0x685, 0x68a, 0x68d, 0x692, 0x695, 0x69c, 0x6a3, 0x6a7, 0x6b2, 0x6b5, 0x6b8, 0x6bb, 0x6c1, 0x6c7, 0x6cd, 0x6d0, 0x6d3, 0x6d6, 0x6dd, 0x6e0, 0x6e5, 0x6ef, 0x6f2, 0x6f6, 0x705, 0x711, 0x715, 0x71a, 0x71e, 0x723, 0x727, 0x72c, 0x735, 0x740, 0x746, 0x74c, 0x752, 0x758, 0x761, 0x764, 0x767, 0x76b, 0x76f, 0x773, 0x779, 0x77f, 0x784, 0x787, 0x797, 0x79e, 0x7a1, 0x7a6, 0x7aa, 0x7b0, 0x7b5, 0x7b9, 0x7bf, 0x7c5, 0x7c9, 0x7d2, 0x7d7, 0x7da, 0x7dd, 0x7e1, 0x7e5, 0x7e8, 0x7f8, 0x809, 0x80e, 0x810, 0x812}\n\n// idnaSparseValues: 2069 entries, 8276 bytes\nvar idnaSparseValues = [2069]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xe105, lo: 0x80, hi: 0x96},\n\t{value: 0x0018, lo: 0x97, hi: 0x97},\n\t{value: 0xe105, lo: 0x98, hi: 0x9e},\n\t{value: 0x001f, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbf},\n\t// Block 0x1, offset 0x8\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0xe01d, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x82},\n\t{value: 0x0335, lo: 0x83, hi: 0x83},\n\t{value: 0x034d, lo: 0x84, hi: 0x84},\n\t{value: 0x0365, lo: 0x85, hi: 0x85},\n\t{value: 0xe00d, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x87},\n\t{value: 0xe00d, lo: 0x88, hi: 0x88},\n\t{value: 0x0008, lo: 0x89, hi: 0x89},\n\t{value: 0xe00d, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0x8b},\n\t{value: 0xe00d, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0x8d},\n\t{value: 0xe00d, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0xbf},\n\t// Block 0x2, offset 0x19\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x0249, lo: 0xb0, hi: 0xb0},\n\t{value: 0x037d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0259, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0269, lo: 0xb3, hi: 0xb3},\n\t{value: 0x034d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0395, lo: 0xb5, hi: 0xb5},\n\t{value: 0xe1bd, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0279, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0289, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0008, lo: 0xb9, hi: 0xbf},\n\t// Block 0x3, offset 0x25\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x3308, lo: 0x80, hi: 0xbf},\n\t// Block 0x4, offset 0x27\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x03f5, lo: 0x80, hi: 0x8f},\n\t{value: 0xe105, lo: 0x90, hi: 0x9f},\n\t{value: 0x049d, lo: 0xa0, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x5, offset 0x2c\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe185, lo: 0x80, hi: 0x8f},\n\t{value: 0x0545, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x98},\n\t{value: 0x0008, lo: 0x99, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x6, offset 0x33\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0401, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x88},\n\t{value: 0x0018, lo: 0x89, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x3308, lo: 0x91, hi: 0xbd},\n\t{value: 0x0818, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7, offset 0x3e\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0818, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x82},\n\t{value: 0x0818, lo: 0x83, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x85},\n\t{value: 0x0818, lo: 0x86, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xae},\n\t{value: 0x0808, lo: 0xaf, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x8, offset 0x4a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0a08, lo: 0x80, hi: 0x87},\n\t{value: 0x0c08, lo: 0x88, hi: 0x99},\n\t{value: 0x0a08, lo: 0x9a, hi: 0xbf},\n\t// Block 0x9, offset 0x4e\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3308, lo: 0x80, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8c},\n\t{value: 0x0c08, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0a08, lo: 0x8e, hi: 0x98},\n\t{value: 0x0c08, lo: 0x99, hi: 0x9b},\n\t{value: 0x0a08, lo: 0x9c, hi: 0xaa},\n\t{value: 0x0c08, lo: 0xab, hi: 0xac},\n\t{value: 0x0a08, lo: 0xad, hi: 0xb0},\n\t{value: 0x0c08, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0a08, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0c08, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0a08, lo: 0xb5, hi: 0xb7},\n\t{value: 0x0c08, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0a08, lo: 0xba, hi: 0xbf},\n\t// Block 0xa, offset 0x5d\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xb0},\n\t{value: 0x0808, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0xb, offset 0x62\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0808, lo: 0x80, hi: 0x89},\n\t{value: 0x0a08, lo: 0x8a, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xb3},\n\t{value: 0x0808, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xb9},\n\t{value: 0x0818, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0818, lo: 0xbe, hi: 0xbf},\n\t// Block 0xc, offset 0x6c\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x99},\n\t{value: 0x0808, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0xa3},\n\t{value: 0x0808, lo: 0xa4, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa7},\n\t{value: 0x0808, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0818, lo: 0xb0, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xd, offset 0x78\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0a08, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0c08, lo: 0xaa, hi: 0xac},\n\t{value: 0x0808, lo: 0xad, hi: 0xad},\n\t{value: 0x0c08, lo: 0xae, hi: 0xae},\n\t{value: 0x0a08, lo: 0xaf, hi: 0xb0},\n\t{value: 0x0c08, lo: 0xb1, hi: 0xb2},\n\t{value: 0x0a08, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0a08, lo: 0xb6, hi: 0xb8},\n\t{value: 0x0c08, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0a08, lo: 0xba, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0xe, offset 0x86\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x92},\n\t{value: 0x3308, lo: 0x93, hi: 0xa1},\n\t{value: 0x0840, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3308, lo: 0xa3, hi: 0xbf},\n\t// Block 0xf, offset 0x8b\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x10, offset 0x94\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x85},\n\t{value: 0x3008, lo: 0x86, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x3008, lo: 0x8a, hi: 0x8c},\n\t{value: 0x3b08, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x97},\n\t{value: 0x0040, lo: 0x98, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x11, offset 0xa4\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0008, lo: 0xaa, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbf},\n\t// Block 0x12, offset 0xb2\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0xba},\n\t{value: 0x3b08, lo: 0xbb, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x13, offset 0xbe\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0040, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0008, lo: 0xb3, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x14, offset 0xca\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x89},\n\t{value: 0x3b08, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8e},\n\t{value: 0x3008, lo: 0x8f, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x94},\n\t{value: 0x0040, lo: 0x95, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x3008, lo: 0x98, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xb1},\n\t{value: 0x3008, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x15, offset 0xdb\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb2},\n\t{value: 0x08f1, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb9},\n\t{value: 0x3b08, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbe},\n\t{value: 0x0018, lo: 0xbf, hi: 0xbf},\n\t// Block 0x16, offset 0xe5\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x8e},\n\t{value: 0x0018, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0xbf},\n\t// Block 0x17, offset 0xec\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x3308, lo: 0x88, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0961, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0999, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0008, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0x18, offset 0xf9\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0x8b},\n\t{value: 0xe03d, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xb8},\n\t{value: 0x3308, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0018, lo: 0xba, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x19, offset 0x10a\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0018, lo: 0x8e, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0xbf},\n\t// Block 0x1a, offset 0x111\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x3008, lo: 0xab, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xb0},\n\t{value: 0x3008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb7},\n\t{value: 0x3008, lo: 0xb8, hi: 0xb8},\n\t{value: 0x3b08, lo: 0xb9, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1b, offset 0x11c\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x95},\n\t{value: 0x3008, lo: 0x96, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0x9d},\n\t{value: 0x3308, lo: 0x9e, hi: 0xa0},\n\t{value: 0x0008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3008, lo: 0xa2, hi: 0xa4},\n\t{value: 0x0008, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xbf},\n\t// Block 0x1c, offset 0x12b\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x3008, lo: 0x87, hi: 0x8c},\n\t{value: 0x3308, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x8e},\n\t{value: 0x3008, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x3008, lo: 0x9a, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0x1d, offset 0x139\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0040, lo: 0x80, hi: 0x86},\n\t{value: 0x055d, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8c},\n\t{value: 0x055d, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbb},\n\t{value: 0xe105, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbf},\n\t// Block 0x1e, offset 0x143\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0018, lo: 0x80, hi: 0xbf},\n\t// Block 0x1f, offset 0x145\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xa0},\n\t{value: 0x2018, lo: 0xa1, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0x20, offset 0x14a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xa7},\n\t{value: 0x2018, lo: 0xa8, hi: 0xbf},\n\t// Block 0x21, offset 0x14d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x2018, lo: 0x80, hi: 0x82},\n\t{value: 0x0018, lo: 0x83, hi: 0xbf},\n\t// Block 0x22, offset 0x150\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0008, lo: 0x80, hi: 0xbf},\n\t// Block 0x23, offset 0x152\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x24, offset 0x15e\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x25, offset 0x169\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0040, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbf},\n\t// Block 0x26, offset 0x171\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbf},\n\t// Block 0x27, offset 0x177\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x28, offset 0x17d\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x29, offset 0x182\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0xe045, lo: 0xb8, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x2a, offset 0x187\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xbf},\n\t// Block 0x2b, offset 0x18a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xac},\n\t{value: 0x0018, lo: 0xad, hi: 0xae},\n\t{value: 0x0008, lo: 0xaf, hi: 0xbf},\n\t// Block 0x2c, offset 0x18e\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9c},\n\t{value: 0x0040, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x2d, offset 0x194\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xb0},\n\t{value: 0x0008, lo: 0xb1, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0x2e, offset 0x199\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x93},\n\t{value: 0x3b08, lo: 0x94, hi: 0x94},\n\t{value: 0x0040, lo: 0x95, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3b08, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0018, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x2f, offset 0x1a5\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0x30, offset 0x1af\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0xb3},\n\t{value: 0x3340, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3008, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x31, offset 0x1b5\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x3008, lo: 0x80, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x3008, lo: 0x87, hi: 0x88},\n\t{value: 0x3308, lo: 0x89, hi: 0x91},\n\t{value: 0x3b08, lo: 0x92, hi: 0x92},\n\t{value: 0x3308, lo: 0x93, hi: 0x93},\n\t{value: 0x0018, lo: 0x94, hi: 0x96},\n\t{value: 0x0008, lo: 0x97, hi: 0x97},\n\t{value: 0x0018, lo: 0x98, hi: 0x9b},\n\t{value: 0x0008, lo: 0x9c, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x32, offset 0x1c6\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0018, lo: 0x80, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x86},\n\t{value: 0x0218, lo: 0x87, hi: 0x87},\n\t{value: 0x0018, lo: 0x88, hi: 0x8a},\n\t{value: 0x33c0, lo: 0x8b, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0208, lo: 0xa0, hi: 0xbf},\n\t// Block 0x33, offset 0x1d0\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0208, lo: 0x80, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0x34, offset 0x1d3\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x0208, lo: 0x87, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0208, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x35, offset 0x1db\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0x36, offset 0x1de\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb8},\n\t{value: 0x3308, lo: 0xb9, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x37, offset 0x1eb\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0018, lo: 0x80, hi: 0x80},\n\t{value: 0x0040, lo: 0x81, hi: 0x83},\n\t{value: 0x0018, lo: 0x84, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x38, offset 0x1f3\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x39, offset 0x1f7\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0028, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0xbf},\n\t// Block 0x3a, offset 0x1fe\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x3308, lo: 0x97, hi: 0x98},\n\t{value: 0x3008, lo: 0x99, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x3b, offset 0x206\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0008, lo: 0x80, hi: 0x94},\n\t{value: 0x3008, lo: 0x95, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3b08, lo: 0xa0, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xac},\n\t{value: 0x3008, lo: 0xad, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3c, offset 0x216\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0018, lo: 0xa8, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xbd},\n\t{value: 0x3318, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3d, offset 0x222\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0040, lo: 0x80, hi: 0xbf},\n\t// Block 0x3e, offset 0x224\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x3308, lo: 0x80, hi: 0x83},\n\t{value: 0x3008, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x3008, lo: 0xbd, hi: 0xbf},\n\t// Block 0x3f, offset 0x22e\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x3808, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x40, offset 0x23a\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa9},\n\t{value: 0x3808, lo: 0xaa, hi: 0xaa},\n\t{value: 0x3b08, lo: 0xab, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xbf},\n\t// Block 0x41, offset 0x246\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa9},\n\t{value: 0x3008, lo: 0xaa, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xae},\n\t{value: 0x3308, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3808, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbb},\n\t{value: 0x0018, lo: 0xbc, hi: 0xbf},\n\t// Block 0x42, offset 0x252\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa3},\n\t{value: 0x3008, lo: 0xa4, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbf},\n\t// Block 0x43, offset 0x25a\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0x44, offset 0x25f\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0e29, lo: 0x80, hi: 0x80},\n\t{value: 0x0e41, lo: 0x81, hi: 0x81},\n\t{value: 0x0e59, lo: 0x82, hi: 0x82},\n\t{value: 0x0e71, lo: 0x83, hi: 0x83},\n\t{value: 0x0e89, lo: 0x84, hi: 0x85},\n\t{value: 0x0ea1, lo: 0x86, hi: 0x86},\n\t{value: 0x0eb9, lo: 0x87, hi: 0x87},\n\t{value: 0x057d, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0x059d, lo: 0x90, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbc},\n\t{value: 0x059d, lo: 0xbd, hi: 0xbf},\n\t// Block 0x45, offset 0x26c\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x3308, lo: 0x90, hi: 0x92},\n\t{value: 0x0018, lo: 0x93, hi: 0x93},\n\t{value: 0x3308, lo: 0x94, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa8},\n\t{value: 0x0008, lo: 0xa9, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xb6},\n\t{value: 0x3008, lo: 0xb7, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x46, offset 0x27d\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3308, lo: 0x80, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xba},\n\t{value: 0x3308, lo: 0xbb, hi: 0xbf},\n\t// Block 0x47, offset 0x281\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x87},\n\t{value: 0xe045, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0xe045, lo: 0x98, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa7},\n\t{value: 0xe045, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb7},\n\t{value: 0xe045, lo: 0xb8, hi: 0xbf},\n\t// Block 0x48, offset 0x28c\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x3318, lo: 0x90, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xbf},\n\t// Block 0x49, offset 0x290\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x88},\n\t{value: 0x24c1, lo: 0x89, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0x4a, offset 0x299\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0018, lo: 0x80, hi: 0xab},\n\t{value: 0x24f1, lo: 0xac, hi: 0xac},\n\t{value: 0x2529, lo: 0xad, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xae},\n\t{value: 0x2579, lo: 0xaf, hi: 0xaf},\n\t{value: 0x25b1, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0018, lo: 0xb1, hi: 0xbf},\n\t// Block 0x4b, offset 0x2a1\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x9f},\n\t{value: 0x0080, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xad},\n\t{value: 0x0080, lo: 0xae, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x4c, offset 0x2a7\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0xa8},\n\t{value: 0x09dd, lo: 0xa9, hi: 0xa9},\n\t{value: 0x09fd, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xbf},\n\t// Block 0x4d, offset 0x2ac\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xbf},\n\t// Block 0x4e, offset 0x2af\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x8b},\n\t{value: 0x28c1, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0xbf},\n\t// Block 0x4f, offset 0x2b3\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0xb3},\n\t{value: 0x0e7e, lo: 0xb4, hi: 0xb4},\n\t{value: 0x292a, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0e9e, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0x50, offset 0x2b9\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x9b},\n\t{value: 0x2941, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0xbf},\n\t// Block 0x51, offset 0x2bd\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0x52, offset 0x2c1\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0x0018, lo: 0x98, hi: 0xbf},\n\t// Block 0x53, offset 0x2c5\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xe185, lo: 0x80, hi: 0x8f},\n\t{value: 0x03f5, lo: 0x90, hi: 0x9f},\n\t{value: 0x0ebd, lo: 0xa0, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x54, offset 0x2cb\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xac},\n\t{value: 0x0008, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x55, offset 0x2d3\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xae},\n\t{value: 0xe075, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0x56, offset 0x2da\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x57, offset 0x2e5\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xbf},\n\t// Block 0x58, offset 0x2ef\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xae},\n\t{value: 0x0008, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x59, offset 0x2f3\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0xbf},\n\t// Block 0x5a, offset 0x2f6\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9e},\n\t{value: 0x0ef5, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbf},\n\t// Block 0x5b, offset 0x2fc\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xb2},\n\t{value: 0x0f15, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0x5c, offset 0x300\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x0f35, lo: 0x80, hi: 0xbf},\n\t// Block 0x5d, offset 0x302\n\t{value: 0x0020, lo: 0x02},\n\t{value: 0x1735, lo: 0x80, hi: 0x8f},\n\t{value: 0x1915, lo: 0x90, hi: 0xbf},\n\t// Block 0x5e, offset 0x305\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x1f15, lo: 0x80, hi: 0xbf},\n\t// Block 0x5f, offset 0x307\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xbf},\n\t// Block 0x60, offset 0x30a\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x98},\n\t{value: 0x3308, lo: 0x99, hi: 0x9a},\n\t{value: 0x29e2, lo: 0x9b, hi: 0x9b},\n\t{value: 0x2a0a, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0008, lo: 0x9d, hi: 0x9e},\n\t{value: 0x2a31, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0008, lo: 0xa1, hi: 0xbf},\n\t// Block 0x61, offset 0x314\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xbe},\n\t{value: 0x2a69, lo: 0xbf, hi: 0xbf},\n\t// Block 0x62, offset 0x317\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0040, lo: 0x80, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xb0},\n\t{value: 0x2a35, lo: 0xb1, hi: 0xb1},\n\t{value: 0x2a55, lo: 0xb2, hi: 0xb2},\n\t{value: 0x2a75, lo: 0xb3, hi: 0xb3},\n\t{value: 0x2a95, lo: 0xb4, hi: 0xb4},\n\t{value: 0x2a75, lo: 0xb5, hi: 0xb5},\n\t{value: 0x2ab5, lo: 0xb6, hi: 0xb6},\n\t{value: 0x2ad5, lo: 0xb7, hi: 0xb7},\n\t{value: 0x2af5, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2b15, lo: 0xba, hi: 0xbb},\n\t{value: 0x2b35, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2b15, lo: 0xbe, hi: 0xbf},\n\t// Block 0x63, offset 0x326\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x64, offset 0x32a\n\t{value: 0x0030, lo: 0x04},\n\t{value: 0x2aa2, lo: 0x80, hi: 0x9d},\n\t{value: 0x305a, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x30a2, lo: 0xa0, hi: 0xbf},\n\t// Block 0x65, offset 0x32f\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0x66, offset 0x332\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0x67, offset 0x336\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0x68, offset 0x33b\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xbf},\n\t// Block 0x69, offset 0x340\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x0018, lo: 0xa6, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0018, lo: 0xb2, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0x6a, offset 0x346\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0040, lo: 0x80, hi: 0x81},\n\t{value: 0xe00d, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0x83},\n\t{value: 0x03f5, lo: 0x84, hi: 0x84},\n\t{value: 0x1329, lo: 0x85, hi: 0x85},\n\t{value: 0x447d, lo: 0x86, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0xb6},\n\t{value: 0x0008, lo: 0xb7, hi: 0xb7},\n\t{value: 0x2009, lo: 0xb8, hi: 0xb8},\n\t{value: 0x6e89, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xbf},\n\t// Block 0x6b, offset 0x352\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0x85},\n\t{value: 0x3b08, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x8a},\n\t{value: 0x3308, lo: 0x8b, hi: 0x8b},\n\t{value: 0x0008, lo: 0x8c, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0018, lo: 0xa8, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x6c, offset 0x361\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0208, lo: 0x80, hi: 0xb1},\n\t{value: 0x0108, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0008, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0x6d, offset 0x367\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xbf},\n\t// Block 0x6e, offset 0x36b\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3008, lo: 0x80, hi: 0x83},\n\t{value: 0x3b08, lo: 0x84, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8d},\n\t{value: 0x0018, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xba},\n\t{value: 0x0008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0018, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0x6f, offset 0x37a\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x70, offset 0x37f\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x91},\n\t{value: 0x3008, lo: 0x92, hi: 0x92},\n\t{value: 0x3808, lo: 0x93, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x71, offset 0x387\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb9},\n\t{value: 0x3008, lo: 0xba, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x72, offset 0x391\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3808, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x73, offset 0x39c\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x74, offset 0x3a4\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x8b},\n\t{value: 0x3308, lo: 0x8c, hi: 0x8c},\n\t{value: 0x3008, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0018, lo: 0x9c, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x3008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x75, offset 0x3b5\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb8},\n\t{value: 0x0008, lo: 0xb9, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbf},\n\t// Block 0x76, offset 0x3be\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x9a},\n\t{value: 0x0008, lo: 0x9b, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xaa},\n\t{value: 0x3008, lo: 0xab, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3b08, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x77, offset 0x3ce\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x88},\n\t{value: 0x0008, lo: 0x89, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x90},\n\t{value: 0x0008, lo: 0x91, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x78, offset 0x3db\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9b},\n\t{value: 0x449d, lo: 0x9c, hi: 0x9c},\n\t{value: 0x44b5, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2971, lo: 0x9e, hi: 0x9e},\n\t{value: 0xe06d, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x44cd, lo: 0xb0, hi: 0xbf},\n\t// Block 0x79, offset 0x3e5\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x44ed, lo: 0x80, hi: 0x8f},\n\t{value: 0x450d, lo: 0x90, hi: 0x9f},\n\t{value: 0x452d, lo: 0xa0, hi: 0xaf},\n\t{value: 0x450d, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7a, offset 0x3ea\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3b08, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x7b, offset 0x3f7\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7c, offset 0x3fb\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8a},\n\t{value: 0x0018, lo: 0x8b, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x7d, offset 0x400\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x454d, lo: 0x80, hi: 0xbf},\n\t// Block 0x7e, offset 0x402\n\t{value: 0x0020, lo: 0x03},\n\t{value: 0x4d4d, lo: 0x80, hi: 0x94},\n\t{value: 0x4b0d, lo: 0x95, hi: 0x95},\n\t{value: 0x4fed, lo: 0x96, hi: 0xbf},\n\t// Block 0x7f, offset 0x406\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x552d, lo: 0x80, hi: 0xbf},\n\t// Block 0x80, offset 0x408\n\t{value: 0x0020, lo: 0x03},\n\t{value: 0x5d2d, lo: 0x80, hi: 0x84},\n\t{value: 0x568d, lo: 0x85, hi: 0x85},\n\t{value: 0x5dcd, lo: 0x86, hi: 0xbf},\n\t// Block 0x81, offset 0x40c\n\t{value: 0x0020, lo: 0x08},\n\t{value: 0x6b8d, lo: 0x80, hi: 0x8f},\n\t{value: 0x6d4d, lo: 0x90, hi: 0x90},\n\t{value: 0x6d8d, lo: 0x91, hi: 0xab},\n\t{value: 0x6ea1, lo: 0xac, hi: 0xac},\n\t{value: 0x70ed, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x710d, lo: 0xb0, hi: 0xbf},\n\t// Block 0x82, offset 0x415\n\t{value: 0x0020, lo: 0x05},\n\t{value: 0x730d, lo: 0x80, hi: 0xad},\n\t{value: 0x656d, lo: 0xae, hi: 0xae},\n\t{value: 0x78cd, lo: 0xaf, hi: 0xb5},\n\t{value: 0x6f8d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x79ad, lo: 0xb7, hi: 0xbf},\n\t// Block 0x83, offset 0x41b\n\t{value: 0x0028, lo: 0x03},\n\t{value: 0x7c21, lo: 0x80, hi: 0x82},\n\t{value: 0x7be1, lo: 0x83, hi: 0x83},\n\t{value: 0x7c99, lo: 0x84, hi: 0xbf},\n\t// Block 0x84, offset 0x41f\n\t{value: 0x0038, lo: 0x0f},\n\t{value: 0x9db1, lo: 0x80, hi: 0x83},\n\t{value: 0x9e59, lo: 0x84, hi: 0x85},\n\t{value: 0x9e91, lo: 0x86, hi: 0x87},\n\t{value: 0x9ec9, lo: 0x88, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0xa089, lo: 0x92, hi: 0x97},\n\t{value: 0xa1a1, lo: 0x98, hi: 0x9c},\n\t{value: 0xa281, lo: 0x9d, hi: 0xb3},\n\t{value: 0x9d41, lo: 0xb4, hi: 0xb4},\n\t{value: 0x9db1, lo: 0xb5, hi: 0xb5},\n\t{value: 0xa789, lo: 0xb6, hi: 0xbb},\n\t{value: 0xa869, lo: 0xbc, hi: 0xbc},\n\t{value: 0xa7f9, lo: 0xbd, hi: 0xbd},\n\t{value: 0xa8d9, lo: 0xbe, hi: 0xbf},\n\t// Block 0x85, offset 0x42f\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0008, lo: 0xbc, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0x86, offset 0x439\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0xbf},\n\t// Block 0x87, offset 0x43e\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x88, offset 0x441\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0x89, offset 0x447\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0040, lo: 0xa1, hi: 0xbf},\n\t// Block 0x8a, offset 0x44e\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x8b, offset 0x453\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x9c},\n\t{value: 0x0040, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x8c, offset 0x457\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x8d, offset 0x45d\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xac},\n\t{value: 0x0008, lo: 0xad, hi: 0xbf},\n\t// Block 0x8e, offset 0x462\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x8f, offset 0x46b\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x90, offset 0x470\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0xbf},\n\t// Block 0x91, offset 0x476\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe145, lo: 0x80, hi: 0x87},\n\t{value: 0xe1c5, lo: 0x88, hi: 0x8f},\n\t{value: 0xe145, lo: 0x90, hi: 0x97},\n\t{value: 0x8b0d, lo: 0x98, hi: 0x9f},\n\t{value: 0x8b25, lo: 0xa0, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xbf},\n\t// Block 0x92, offset 0x47d\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x8b25, lo: 0xb0, hi: 0xb7},\n\t{value: 0x8b0d, lo: 0xb8, hi: 0xbf},\n\t// Block 0x93, offset 0x484\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe145, lo: 0x80, hi: 0x87},\n\t{value: 0xe1c5, lo: 0x88, hi: 0x8f},\n\t{value: 0xe145, lo: 0x90, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x94, offset 0x48b\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x95, offset 0x48f\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xae},\n\t{value: 0x0018, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0x96, offset 0x494\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x97, offset 0x497\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xbf},\n\t// Block 0x98, offset 0x49c\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0808, lo: 0x80, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x87},\n\t{value: 0x0808, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0808, lo: 0x8a, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0808, lo: 0xb7, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbb},\n\t{value: 0x0808, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbe},\n\t{value: 0x0808, lo: 0xbf, hi: 0xbf},\n\t// Block 0x99, offset 0x4a8\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x96},\n\t{value: 0x0818, lo: 0x97, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0818, lo: 0xb7, hi: 0xbf},\n\t// Block 0x9a, offset 0x4ae\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xa6},\n\t{value: 0x0818, lo: 0xa7, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0x9b, offset 0x4b3\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0808, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xba},\n\t{value: 0x0818, lo: 0xbb, hi: 0xbf},\n\t// Block 0x9c, offset 0x4ba\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0818, lo: 0x96, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbe},\n\t{value: 0x0818, lo: 0xbf, hi: 0xbf},\n\t// Block 0x9d, offset 0x4c2\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbb},\n\t{value: 0x0818, lo: 0xbc, hi: 0xbd},\n\t{value: 0x0808, lo: 0xbe, hi: 0xbf},\n\t// Block 0x9e, offset 0x4c7\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0818, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x91},\n\t{value: 0x0818, lo: 0x92, hi: 0xbf},\n\t// Block 0x9f, offset 0x4cb\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0808, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8b},\n\t{value: 0x3308, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x94},\n\t{value: 0x0808, lo: 0x95, hi: 0x97},\n\t{value: 0x0040, lo: 0x98, hi: 0x98},\n\t{value: 0x0808, lo: 0x99, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xa0, offset 0x4db\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0818, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0x0818, lo: 0x90, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xbc},\n\t{value: 0x0818, lo: 0xbd, hi: 0xbf},\n\t// Block 0xa1, offset 0x4e2\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0x9c},\n\t{value: 0x0818, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0xa2, offset 0x4e6\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb8},\n\t{value: 0x0018, lo: 0xb9, hi: 0xbf},\n\t// Block 0xa3, offset 0x4ea\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0x0818, lo: 0x98, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb7},\n\t{value: 0x0818, lo: 0xb8, hi: 0xbf},\n\t// Block 0xa4, offset 0x4f1\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0808, lo: 0x80, hi: 0xbf},\n\t// Block 0xa5, offset 0x4f3\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0808, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0xbf},\n\t// Block 0xa6, offset 0x4f6\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x03dd, lo: 0x80, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbf},\n\t// Block 0xa7, offset 0x4f9\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb9},\n\t{value: 0x0818, lo: 0xba, hi: 0xbf},\n\t// Block 0xa8, offset 0x4fd\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0908, lo: 0x80, hi: 0x80},\n\t{value: 0x0a08, lo: 0x81, hi: 0xa1},\n\t{value: 0x0c08, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0a08, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3308, lo: 0xa4, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0808, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xa9, offset 0x506\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0818, lo: 0xa0, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xaa, offset 0x50a\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0808, lo: 0x80, hi: 0x9c},\n\t{value: 0x0818, lo: 0x9d, hi: 0xa6},\n\t{value: 0x0808, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0a08, lo: 0xb0, hi: 0xb2},\n\t{value: 0x0c08, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0a08, lo: 0xb4, hi: 0xbf},\n\t// Block 0xab, offset 0x512\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0a08, lo: 0x80, hi: 0x84},\n\t{value: 0x0808, lo: 0x85, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x90},\n\t{value: 0x0a18, lo: 0x91, hi: 0x93},\n\t{value: 0x0c18, lo: 0x94, hi: 0x94},\n\t{value: 0x0818, lo: 0x95, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xac, offset 0x51a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0xad, offset 0x51e\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x3008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbf},\n\t// Block 0xae, offset 0x524\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x85},\n\t{value: 0x3b08, lo: 0x86, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x91},\n\t{value: 0x0018, lo: 0x92, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xaf, offset 0x52d\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb6},\n\t{value: 0x3008, lo: 0xb7, hi: 0xb8},\n\t{value: 0x3b08, lo: 0xb9, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0xb0, offset 0x539\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x81},\n\t{value: 0x0040, lo: 0x82, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xb1, offset 0x540\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xb2},\n\t{value: 0x3b08, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0008, lo: 0xb6, hi: 0xbf},\n\t// Block 0xb2, offset 0x549\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0018, lo: 0x80, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x84},\n\t{value: 0x3008, lo: 0x85, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0008, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0xb3, offset 0x553\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xbe},\n\t{value: 0x3008, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb4, offset 0x55a\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x3808, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x88},\n\t{value: 0x3308, lo: 0x89, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0008, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0xb5, offset 0x568\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0x92},\n\t{value: 0x0008, lo: 0x93, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xae},\n\t{value: 0x3308, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3008, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3808, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb6, offset 0x575\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0008, lo: 0x9f, hi: 0xa8},\n\t{value: 0x0018, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0xb7, offset 0x582\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x3308, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3008, lo: 0xa0, hi: 0xa2},\n\t{value: 0x3308, lo: 0xa3, hi: 0xa9},\n\t{value: 0x3b08, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xb8, offset 0x58b\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbf},\n\t// Block 0xb9, offset 0x58f\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x3b08, lo: 0x82, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x84},\n\t{value: 0x3008, lo: 0x85, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x8a},\n\t{value: 0x0018, lo: 0x8b, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0x9d},\n\t{value: 0x3308, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0008, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0xba, offset 0x59f\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb8},\n\t{value: 0x3008, lo: 0xb9, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0xbb, offset 0x5a7\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x81},\n\t{value: 0x3b08, lo: 0x82, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x85},\n\t{value: 0x0018, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xbc, offset 0x5b2\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0x3008, lo: 0xb8, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xbd, offset 0x5bb\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x9b},\n\t{value: 0x3308, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0xbf},\n\t// Block 0xbe, offset 0x5c1\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xbf, offset 0x5c9\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xbf},\n\t// Block 0xc0, offset 0x5d2\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb5},\n\t{value: 0x3808, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0xc1, offset 0x5dd\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0xbf},\n\t// Block 0xc2, offset 0x5e0\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9f},\n\t{value: 0x3008, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xaa},\n\t{value: 0x3b08, lo: 0xab, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0018, lo: 0xba, hi: 0xbf},\n\t// Block 0xc3, offset 0x5ec\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xae},\n\t{value: 0x3308, lo: 0xaf, hi: 0xb7},\n\t{value: 0x3008, lo: 0xb8, hi: 0xb8},\n\t{value: 0x3b08, lo: 0xb9, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0xc4, offset 0x5f5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x049d, lo: 0xa0, hi: 0xbf},\n\t// Block 0xc5, offset 0x5f8\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0xc6, offset 0x5fd\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xa9},\n\t{value: 0x0008, lo: 0xaa, hi: 0xbf},\n\t// Block 0xc7, offset 0x602\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x90},\n\t{value: 0x3008, lo: 0x91, hi: 0x93},\n\t{value: 0x3308, lo: 0x94, hi: 0x97},\n\t{value: 0x0040, lo: 0x98, hi: 0x99},\n\t{value: 0x3308, lo: 0x9a, hi: 0x9b},\n\t{value: 0x3008, lo: 0x9c, hi: 0x9f},\n\t{value: 0x3b08, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x0018, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0008, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3008, lo: 0xa4, hi: 0xa4},\n\t{value: 0x0040, lo: 0xa5, hi: 0xbf},\n\t// Block 0xc8, offset 0x60f\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3b08, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb8},\n\t{value: 0x3008, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xba},\n\t{value: 0x3308, lo: 0xbb, hi: 0xbe},\n\t{value: 0x0018, lo: 0xbf, hi: 0xbf},\n\t// Block 0xc9, offset 0x61a\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x3b08, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x90},\n\t{value: 0x3308, lo: 0x91, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x98},\n\t{value: 0x3308, lo: 0x99, hi: 0x9b},\n\t{value: 0x0008, lo: 0x9c, hi: 0xbf},\n\t// Block 0xca, offset 0x623\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x3308, lo: 0x8a, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x98},\n\t{value: 0x3b08, lo: 0x99, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9c},\n\t{value: 0x0008, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0xa2},\n\t{value: 0x0040, lo: 0xa3, hi: 0xbf},\n\t// Block 0xcb, offset 0x62d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0xcc, offset 0x630\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xcd, offset 0x63a\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xbf},\n\t// Block 0xce, offset 0x643\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xa9},\n\t{value: 0x3308, lo: 0xaa, hi: 0xb0},\n\t{value: 0x3008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0xcf, offset 0x64f\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0xd0, offset 0x65c\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x3308, lo: 0x80, hi: 0x83},\n\t{value: 0x3b08, lo: 0x84, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0008, lo: 0xa7, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0008, lo: 0xaa, hi: 0xbf},\n\t// Block 0xd1, offset 0x669\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x3008, lo: 0x8a, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x8f},\n\t{value: 0x3308, lo: 0x90, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0x92},\n\t{value: 0x3008, lo: 0x93, hi: 0x94},\n\t{value: 0x3308, lo: 0x95, hi: 0x95},\n\t{value: 0x3008, lo: 0x96, hi: 0x96},\n\t{value: 0x3b08, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xbf},\n\t// Block 0xd2, offset 0x677\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0xd3, offset 0x67e\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbe},\n\t{value: 0x0018, lo: 0xbf, hi: 0xbf},\n\t// Block 0xd4, offset 0x682\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xd5, offset 0x685\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0xd6, offset 0x68a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0xbf},\n\t// Block 0xd7, offset 0x68d\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0340, lo: 0xb0, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0xd8, offset 0x692\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0xbf},\n\t// Block 0xd9, offset 0x695\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0xda, offset 0x69c\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0018, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0xdb, offset 0x6a3\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0xdc, offset 0x6a7\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0018, lo: 0x84, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0008, lo: 0xa3, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbf},\n\t// Block 0xdd, offset 0x6b2\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0xbf},\n\t// Block 0xde, offset 0x6b5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0xe105, lo: 0x80, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0xdf, offset 0x6b8\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0xbf},\n\t// Block 0xe0, offset 0x6bb\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8e},\n\t{value: 0x3308, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x90},\n\t{value: 0x3008, lo: 0x91, hi: 0xbf},\n\t// Block 0xe1, offset 0x6c1\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x3008, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8e},\n\t{value: 0x3308, lo: 0x8f, hi: 0x92},\n\t{value: 0x0008, lo: 0x93, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0xe2, offset 0x6c7\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa1},\n\t{value: 0x0018, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0008, lo: 0xa3, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xbf},\n\t// Block 0xe3, offset 0x6cd\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0xe4, offset 0x6d0\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbf},\n\t// Block 0xe5, offset 0x6d3\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xbf},\n\t// Block 0xe6, offset 0x6d6\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x92},\n\t{value: 0x0040, lo: 0x93, hi: 0xa3},\n\t{value: 0x0008, lo: 0xa4, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0xe7, offset 0x6dd\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0xe8, offset 0x6e0\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0xe9, offset 0x6e5\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0018, lo: 0x9c, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x03c0, lo: 0xa0, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xbf},\n\t// Block 0xea, offset 0x6ef\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0xeb, offset 0x6f2\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa8},\n\t{value: 0x0018, lo: 0xa9, hi: 0xbf},\n\t// Block 0xec, offset 0x6f6\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0018, lo: 0x80, hi: 0x9d},\n\t{value: 0xb5b9, lo: 0x9e, hi: 0x9e},\n\t{value: 0xb601, lo: 0x9f, hi: 0x9f},\n\t{value: 0xb649, lo: 0xa0, hi: 0xa0},\n\t{value: 0xb6b1, lo: 0xa1, hi: 0xa1},\n\t{value: 0xb719, lo: 0xa2, hi: 0xa2},\n\t{value: 0xb781, lo: 0xa3, hi: 0xa3},\n\t{value: 0xb7e9, lo: 0xa4, hi: 0xa4},\n\t{value: 0x3018, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3318, lo: 0xa7, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xac},\n\t{value: 0x3018, lo: 0xad, hi: 0xb2},\n\t{value: 0x0340, lo: 0xb3, hi: 0xba},\n\t{value: 0x3318, lo: 0xbb, hi: 0xbf},\n\t// Block 0xed, offset 0x705\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3318, lo: 0x80, hi: 0x82},\n\t{value: 0x0018, lo: 0x83, hi: 0x84},\n\t{value: 0x3318, lo: 0x85, hi: 0x8b},\n\t{value: 0x0018, lo: 0x8c, hi: 0xa9},\n\t{value: 0x3318, lo: 0xaa, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xba},\n\t{value: 0xb851, lo: 0xbb, hi: 0xbb},\n\t{value: 0xb899, lo: 0xbc, hi: 0xbc},\n\t{value: 0xb8e1, lo: 0xbd, hi: 0xbd},\n\t{value: 0xb949, lo: 0xbe, hi: 0xbe},\n\t{value: 0xb9b1, lo: 0xbf, hi: 0xbf},\n\t// Block 0xee, offset 0x711\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xba19, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xbf},\n\t// Block 0xef, offset 0x715\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x81},\n\t{value: 0x3318, lo: 0x82, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0xbf},\n\t// Block 0xf0, offset 0x71a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0xf1, offset 0x71e\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0xf2, offset 0x723\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3308, lo: 0x80, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xba},\n\t{value: 0x3308, lo: 0xbb, hi: 0xbf},\n\t// Block 0xf3, offset 0x727\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x3308, lo: 0x80, hi: 0xac},\n\t{value: 0x0018, lo: 0xad, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0xf4, offset 0x72c\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa0},\n\t{value: 0x3308, lo: 0xa1, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0xf5, offset 0x735\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3308, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x3308, lo: 0x88, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3308, lo: 0xa3, hi: 0xa4},\n\t{value: 0x0040, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xbf},\n\t// Block 0xf6, offset 0x740\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0008, lo: 0xb7, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0xf7, offset 0x746\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0018, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0xbf},\n\t// Block 0xf8, offset 0x74c\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbe},\n\t{value: 0x0018, lo: 0xbf, hi: 0xbf},\n\t// Block 0xf9, offset 0x752\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0808, lo: 0x80, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x86},\n\t{value: 0x0818, lo: 0x87, hi: 0x8f},\n\t{value: 0x3308, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0xbf},\n\t// Block 0xfa, offset 0x758\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0a08, lo: 0x80, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x8a},\n\t{value: 0x0b08, lo: 0x8b, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0818, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0xfb, offset 0x761\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0xb0},\n\t{value: 0x0818, lo: 0xb1, hi: 0xbf},\n\t// Block 0xfc, offset 0x764\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0818, lo: 0x80, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0xfd, offset 0x767\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0818, lo: 0x81, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0xfe, offset 0x76b\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0xff, offset 0x76f\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x100, offset 0x773\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xb0},\n\t{value: 0x0018, lo: 0xb1, hi: 0xbf},\n\t// Block 0x101, offset 0x779\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x0018, lo: 0x91, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0x102, offset 0x77f\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x8f},\n\t{value: 0xc1d9, lo: 0x90, hi: 0x90},\n\t{value: 0x0018, lo: 0x91, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xbf},\n\t// Block 0x103, offset 0x784\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0xa5},\n\t{value: 0x0018, lo: 0xa6, hi: 0xbf},\n\t// Block 0x104, offset 0x787\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0xc801, lo: 0x80, hi: 0x80},\n\t{value: 0xc851, lo: 0x81, hi: 0x81},\n\t{value: 0xc8a1, lo: 0x82, hi: 0x82},\n\t{value: 0xc8f1, lo: 0x83, hi: 0x83},\n\t{value: 0xc941, lo: 0x84, hi: 0x84},\n\t{value: 0xc991, lo: 0x85, hi: 0x85},\n\t{value: 0xc9e1, lo: 0x86, hi: 0x86},\n\t{value: 0xca31, lo: 0x87, hi: 0x87},\n\t{value: 0xca81, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0xcad1, lo: 0x90, hi: 0x90},\n\t{value: 0xcaf1, lo: 0x91, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xbf},\n\t// Block 0x105, offset 0x797\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x106, offset 0x79e\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0x107, offset 0x7a1\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xbf},\n\t// Block 0x108, offset 0x7a6\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0x109, offset 0x7aa\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbf},\n\t// Block 0x10a, offset 0x7b0\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xbf},\n\t// Block 0x10b, offset 0x7b5\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0xbf},\n\t// Block 0x10c, offset 0x7b9\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0018, lo: 0xb3, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb9},\n\t{value: 0x0018, lo: 0xba, hi: 0xbf},\n\t// Block 0x10d, offset 0x7bf\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0xa2},\n\t{value: 0x0040, lo: 0xa3, hi: 0xa4},\n\t{value: 0x0018, lo: 0xa5, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xbf},\n\t// Block 0x10e, offset 0x7c5\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0xbf},\n\t// Block 0x10f, offset 0x7c9\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x110, offset 0x7d2\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0xbf},\n\t// Block 0x111, offset 0x7d7\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0xbf},\n\t// Block 0x112, offset 0x7da\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x113, offset 0x7dd\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x114, offset 0x7e1\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x115, offset 0x7e5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xa0},\n\t{value: 0x0040, lo: 0xa1, hi: 0xbf},\n\t// Block 0x116, offset 0x7e8\n\t{value: 0x0020, lo: 0x0f},\n\t{value: 0xded1, lo: 0x80, hi: 0x89},\n\t{value: 0x8e35, lo: 0x8a, hi: 0x8a},\n\t{value: 0xe011, lo: 0x8b, hi: 0x9c},\n\t{value: 0x8e55, lo: 0x9d, hi: 0x9d},\n\t{value: 0xe251, lo: 0x9e, hi: 0xa2},\n\t{value: 0x8e75, lo: 0xa3, hi: 0xa3},\n\t{value: 0xe2f1, lo: 0xa4, hi: 0xab},\n\t{value: 0x7f0d, lo: 0xac, hi: 0xac},\n\t{value: 0xe3f1, lo: 0xad, hi: 0xaf},\n\t{value: 0x8e95, lo: 0xb0, hi: 0xb0},\n\t{value: 0xe451, lo: 0xb1, hi: 0xb6},\n\t{value: 0x8eb5, lo: 0xb7, hi: 0xb9},\n\t{value: 0xe511, lo: 0xba, hi: 0xba},\n\t{value: 0x8f15, lo: 0xbb, hi: 0xbb},\n\t{value: 0xe531, lo: 0xbc, hi: 0xbf},\n\t// Block 0x117, offset 0x7f8\n\t{value: 0x0020, lo: 0x10},\n\t{value: 0x93b5, lo: 0x80, hi: 0x80},\n\t{value: 0xf0b1, lo: 0x81, hi: 0x86},\n\t{value: 0x93d5, lo: 0x87, hi: 0x8a},\n\t{value: 0xda11, lo: 0x8b, hi: 0x8b},\n\t{value: 0xf171, lo: 0x8c, hi: 0x96},\n\t{value: 0x9455, lo: 0x97, hi: 0x97},\n\t{value: 0xf2d1, lo: 0x98, hi: 0xa3},\n\t{value: 0x9475, lo: 0xa4, hi: 0xa6},\n\t{value: 0xf451, lo: 0xa7, hi: 0xaa},\n\t{value: 0x94d5, lo: 0xab, hi: 0xab},\n\t{value: 0xf4d1, lo: 0xac, hi: 0xac},\n\t{value: 0x94f5, lo: 0xad, hi: 0xad},\n\t{value: 0xf4f1, lo: 0xae, hi: 0xaf},\n\t{value: 0x9515, lo: 0xb0, hi: 0xb1},\n\t{value: 0xf531, lo: 0xb2, hi: 0xbe},\n\t{value: 0x2040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x118, offset 0x809\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0340, lo: 0x81, hi: 0x81},\n\t{value: 0x0040, lo: 0x82, hi: 0x9f},\n\t{value: 0x0340, lo: 0xa0, hi: 0xbf},\n\t// Block 0x119, offset 0x80e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0340, lo: 0x80, hi: 0xbf},\n\t// Block 0x11a, offset 0x810\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x33c0, lo: 0x80, hi: 0xbf},\n\t// Block 0x11b, offset 0x812\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x33c0, lo: 0x80, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n}\n\n// Total table size 42780 bytes (41KiB); checksum: 29936AB9\n"
  },
  {
    "path": "vendor/golang.org/x/net/idna/tables13.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n//go:build go1.16 && !go1.21\n\npackage idna\n\n// UnicodeVersion is the Unicode version from which the tables in this package are derived.\nconst UnicodeVersion = \"13.0.0\"\n\nvar mappings string = \"\" + // Size: 6539 bytes\n\t\"  ̈a ̄23 ́ ̧1o1⁄41⁄23⁄4i̇l·ʼnsdžⱥⱦhjrwy ̆ ̇ ̊ ̨ ̃ ̋lẍ́ ι; ̈́եւاٴوٴۇٴيٴक\" +\n\t\"़ख़ग़ज़ड़ढ़फ़य़ড়ঢ়য়ਲ਼ਸ਼ਖ਼ਗ਼ਜ਼ਫ਼ଡ଼ଢ଼ําໍາຫນຫມགྷཌྷདྷབྷཛྷཀྵཱཱིུྲྀྲཱྀླྀླཱ\" +\n\t\"ཱྀྀྒྷྜྷྡྷྦྷྫྷྐྵвдостъѣæbdeǝgikmnȣptuɐɑəɛɜŋɔɯvβγδφχρнɒcɕðfɟɡɥɨɩɪʝɭʟɱɰɲɳ\" +\n\t\"ɴɵɸʂʃƫʉʊʋʌzʐʑʒθssάέήίόύώἀιἁιἂιἃιἄιἅιἆιἇιἠιἡιἢιἣιἤιἥιἦιἧιὠιὡιὢιὣιὤιὥιὦιὧ\" +\n\t\"ιὰιαιάιᾶιι ̈͂ὴιηιήιῆι ̓̀ ̓́ ̓͂ΐ ̔̀ ̔́ ̔͂ΰ ̈̀`ὼιωιώιῶι′′′′′‵‵‵‵‵!!???!!?\" +\n\t\"′′′′0456789+=()rsħnoqsmtmωåאבגדπ1⁄71⁄91⁄101⁄32⁄31⁄52⁄53⁄54⁄51⁄65⁄61⁄83\" +\n\t\"⁄85⁄87⁄81⁄iiivviviiiixxi0⁄3∫∫∫∫∫∮∮∮∮∮1011121314151617181920(10)(11)(12\" +\n\t\")(13)(14)(15)(16)(17)(18)(19)(20)∫∫∫∫==⫝̸ɫɽȿɀ. ゙ ゚よりコト(ᄀ)(ᄂ)(ᄃ)(ᄅ)(ᄆ)(ᄇ)\" +\n\t\"(ᄉ)(ᄋ)(ᄌ)(ᄎ)(ᄏ)(ᄐ)(ᄑ)(ᄒ)(가)(나)(다)(라)(마)(바)(사)(아)(자)(차)(카)(타)(파)(하)(주)(오전\" +\n\t\")(오후)(一)(二)(三)(四)(五)(六)(七)(八)(九)(十)(月)(火)(水)(木)(金)(土)(日)(株)(有)(社)(名)(特)(\" +\n\t\"財)(祝)(労)(代)(呼)(学)(監)(企)(資)(協)(祭)(休)(自)(至)21222324252627282930313233343\" +\n\t\"5참고주의3637383940414243444546474849501月2月3月4月5月6月7月8月9月10月11月12月hgev令和アパート\" +\n\t\"アルファアンペアアールイニングインチウォンエスクードエーカーオンスオームカイリカラットカロリーガロンガンマギガギニーキュリーギルダーキロキロ\" +\n\t\"グラムキロメートルキロワットグラムグラムトンクルゼイロクローネケースコルナコーポサイクルサンチームシリングセンチセントダースデシドルトンナノ\" +\n\t\"ノットハイツパーセントパーツバーレルピアストルピクルピコビルファラッドフィートブッシェルフランヘクタールペソペニヒヘルツペンスページベータポ\" +\n\t\"イントボルトホンポンドホールホーンマイクロマイルマッハマルクマンションミクロンミリミリバールメガメガトンメートルヤードヤールユアンリットルリ\" +\n\t\"ラルピールーブルレムレントゲンワット0点1点2点3点4点5点6点7点8点9点10点11点12点13点14点15点16点17点18点19点20\" +\n\t\"点21点22点23点24点daauovpcdmiu平成昭和大正明治株式会社panamakakbmbgbkcalpfnfmgkghzmldlk\" +\n\t\"lfmnmmmcmkmm2m3m∕sm∕s2rad∕srad∕s2psnsmspvnvmvkvpwnwmwkwbqcccdc∕kgdbgyhah\" +\n\t\"pinkkktlmlnlxphprsrsvwbv∕ma∕m1日2日3日4日5日6日7日8日9日10日11日12日13日14日15日16日17日1\" +\n\t\"8日19日20日21日22日23日24日25日26日27日28日29日30日31日ьɦɬʞʇœʍ𤋮𢡊𢡄𣏕𥉉𥳐𧻓fffiflstմնմեմիվնմ\" +\n\t\"խיִײַעהכלםרתשׁשׂשּׁשּׂאַאָאּבּגּדּהּוּזּטּיּךּכּלּמּנּסּףּפּצּקּרּשּתּו\" +\n\t\"ֹבֿכֿפֿאלٱٻپڀٺٿٹڤڦڄڃچڇڍڌڎڈژڑکگڳڱںڻۀہھےۓڭۇۆۈۋۅۉېىئائەئوئۇئۆئۈئېئىیئجئحئم\" +\n\t\"ئيبجبحبخبمبىبيتجتحتختمتىتيثجثمثىثيجحجمحجحمخجخحخمسجسحسخسمصحصمضجضحضخضمطحط\" +\n\t\"مظمعجعمغجغمفجفحفخفمفىفيقحقمقىقيكاكجكحكخكلكمكىكيلجلحلخلملىليمجمحمخمممىمي\" +\n\t\"نجنحنخنمنىنيهجهمهىهييجيحيخيميىييذٰرٰىٰ ٌّ ٍّ َّ ُّ ِّ ّٰئرئزئنبربزبنترت\" +\n\t\"زتنثرثزثنمانرنزننيريزينئخئهبهتهصخلهنههٰيهثهسهشمشهـَّـُّـِّطىطيعىعيغىغيس\" +\n\t\"ىسيشىشيحىحيجىجيخىخيصىصيضىضيشجشحشخشرسرصرضراًتجمتحجتحمتخمتمجتمحتمخجمححميح\" +\n\t\"مىسحجسجحسجىسمحسمجسممصححصممشحمشجيشمخشممضحىضخمطمحطممطميعجمعممعمىغممغميغمى\" +\n\t\"فخمقمحقمملحملحيلحىلججلخملمحمحجمحممحيمجحمجممخجمخممجخهمجهممنحمنحىنجمنجىنم\" +\n\t\"ينمىيممبخيتجيتجىتخيتخىتميتمىجميجحىجمىسخىصحيشحيضحيلجيلمييحييجييميمميقمين\" +\n\t\"حيعميكمينجحمخيلجمكممجحيحجيمجيفميبحيسخينجيصلےقلےاللهاكبرمحمدصلعمرسولعليه\" +\n\t\"وسلمصلىصلى الله عليه وسلمجل جلالهریال,:!?_{}[]#&*-<>\\\\$%@ـًـَـُـِـّـْءآ\" +\n\t\"أؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهويلآلألإلا\\x22'/^|~¢£¬¦¥𝅗𝅥𝅘𝅥𝅘𝅥𝅮𝅘𝅥𝅯𝅘𝅥𝅰𝅘𝅥𝅱\" +\n\t\"𝅘𝅥𝅲𝆹𝅥𝆺𝅥𝆹𝅥𝅮𝆺𝅥𝅮𝆹𝅥𝅯𝆺𝅥𝅯ıȷαεζηκλμνξοστυψ∇∂ϝٮڡٯ0,1,2,3,4,5,6,7,8,9,(a)(b)(c\" +\n\t\")(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)(s)(t)(u)(v)(w)(x)(y)(z)〔s\" +\n\t\"〕wzhvsdppvwcmcmdmrdjほかココサ手字双デ二多解天交映無料前後再新初終生販声吹演投捕一三遊左中右指走打禁空合満有月申割営配〔\" +\n\t\"本〕〔三〕〔二〕〔安〕〔点〕〔打〕〔盗〕〔勝〕〔敗〕得可丽丸乁你侮侻倂偺備僧像㒞免兔兤具㒹內冗冤仌冬况凵刃㓟刻剆剷㔕勇勉勤勺包匆北卉卑博即卽\" +\n\t\"卿灰及叟叫叱吆咞吸呈周咢哶唐啓啣善喙喫喳嗂圖嘆圗噑噴切壮城埴堍型堲報墬売壷夆夢奢姬娛娧姘婦㛮嬈嬾寃寘寧寳寿将尢㞁屠屮峀岍嵃嵮嵫嵼巡巢㠯巽帨帽\" +\n\t\"幩㡢㡼庰庳庶廊廾舁弢㣇形彫㣣徚忍志忹悁㤺㤜悔惇慈慌慎慺憎憲憤憯懞懲懶成戛扝抱拔捐挽拼捨掃揤搢揅掩㨮摩摾撝摷㩬敏敬旣書晉㬙暑㬈㫤冒冕最暜肭䏙朗\" +\n\t\"望朡杞杓㭉柺枅桒梅梎栟椔㮝楂榣槪檨櫛㰘次歔㱎歲殟殺殻汎沿泍汧洖派海流浩浸涅洴港湮㴳滋滇淹潮濆瀹瀞瀛㶖灊災灷炭煅熜爨爵牐犀犕獺王㺬玥㺸瑇瑜瑱璅\" +\n\t\"瓊㼛甤甾異瘐㿼䀈直眞真睊䀹瞋䁆䂖硎碌磌䃣祖福秫䄯穀穊穏䈂篆築䈧糒䊠糨糣紀絣䌁緇縂繅䌴䍙罺羕翺者聠聰䏕育脃䐋脾媵舄辞䑫芑芋芝劳花芳芽苦若茝荣莭\" +\n\t\"茣莽菧著荓菊菌菜䔫蓱蓳蔖蕤䕝䕡䕫虐虜虧虩蚩蚈蜎蛢蝹蜨蝫螆蟡蠁䗹衠衣裗裞䘵裺㒻䚾䛇誠諭變豕貫賁贛起跋趼跰軔輸邔郱鄑鄛鈸鋗鋘鉼鏹鐕開䦕閷䧦雃嶲霣\" +\n\t\"䩮䩶韠䪲頋頩飢䬳餩馧駂駾䯎鬒鱀鳽䳎䳭鵧䳸麻䵖黹黾鼅鼏鼖鼻\"\n\nvar mappingIndex = []uint16{ // 1650 elements\n\t// Entry 0 - 3F\n\t0x0000, 0x0000, 0x0001, 0x0004, 0x0005, 0x0008, 0x0009, 0x000a,\n\t0x000d, 0x0010, 0x0011, 0x0012, 0x0017, 0x001c, 0x0021, 0x0024,\n\t0x0027, 0x002a, 0x002b, 0x002e, 0x0031, 0x0034, 0x0035, 0x0036,\n\t0x0037, 0x0038, 0x0039, 0x003c, 0x003f, 0x0042, 0x0045, 0x0048,\n\t0x004b, 0x004c, 0x004d, 0x0051, 0x0054, 0x0055, 0x005a, 0x005e,\n\t0x0062, 0x0066, 0x006a, 0x006e, 0x0074, 0x007a, 0x0080, 0x0086,\n\t0x008c, 0x0092, 0x0098, 0x009e, 0x00a4, 0x00aa, 0x00b0, 0x00b6,\n\t0x00bc, 0x00c2, 0x00c8, 0x00ce, 0x00d4, 0x00da, 0x00e0, 0x00e6,\n\t// Entry 40 - 7F\n\t0x00ec, 0x00f2, 0x00f8, 0x00fe, 0x0104, 0x010a, 0x0110, 0x0116,\n\t0x011c, 0x0122, 0x0128, 0x012e, 0x0137, 0x013d, 0x0146, 0x014c,\n\t0x0152, 0x0158, 0x015e, 0x0164, 0x016a, 0x0170, 0x0172, 0x0174,\n\t0x0176, 0x0178, 0x017a, 0x017c, 0x017e, 0x0180, 0x0181, 0x0182,\n\t0x0183, 0x0185, 0x0186, 0x0187, 0x0188, 0x0189, 0x018a, 0x018c,\n\t0x018d, 0x018e, 0x018f, 0x0191, 0x0193, 0x0195, 0x0197, 0x0199,\n\t0x019b, 0x019d, 0x019f, 0x01a0, 0x01a2, 0x01a4, 0x01a6, 0x01a8,\n\t0x01aa, 0x01ac, 0x01ae, 0x01b0, 0x01b1, 0x01b3, 0x01b5, 0x01b6,\n\t// Entry 80 - BF\n\t0x01b8, 0x01ba, 0x01bc, 0x01be, 0x01c0, 0x01c2, 0x01c4, 0x01c6,\n\t0x01c8, 0x01ca, 0x01cc, 0x01ce, 0x01d0, 0x01d2, 0x01d4, 0x01d6,\n\t0x01d8, 0x01da, 0x01dc, 0x01de, 0x01e0, 0x01e2, 0x01e4, 0x01e5,\n\t0x01e7, 0x01e9, 0x01eb, 0x01ed, 0x01ef, 0x01f1, 0x01f3, 0x01f5,\n\t0x01f7, 0x01f9, 0x01fb, 0x01fd, 0x0202, 0x0207, 0x020c, 0x0211,\n\t0x0216, 0x021b, 0x0220, 0x0225, 0x022a, 0x022f, 0x0234, 0x0239,\n\t0x023e, 0x0243, 0x0248, 0x024d, 0x0252, 0x0257, 0x025c, 0x0261,\n\t0x0266, 0x026b, 0x0270, 0x0275, 0x027a, 0x027e, 0x0282, 0x0287,\n\t// Entry C0 - FF\n\t0x0289, 0x028e, 0x0293, 0x0297, 0x029b, 0x02a0, 0x02a5, 0x02aa,\n\t0x02af, 0x02b1, 0x02b6, 0x02bb, 0x02c0, 0x02c2, 0x02c7, 0x02c8,\n\t0x02cd, 0x02d1, 0x02d5, 0x02da, 0x02e0, 0x02e9, 0x02ef, 0x02f8,\n\t0x02fa, 0x02fc, 0x02fe, 0x0300, 0x030c, 0x030d, 0x030e, 0x030f,\n\t0x0310, 0x0311, 0x0312, 0x0313, 0x0314, 0x0315, 0x0316, 0x0317,\n\t0x0319, 0x031b, 0x031d, 0x031e, 0x0320, 0x0322, 0x0324, 0x0326,\n\t0x0328, 0x032a, 0x032c, 0x032e, 0x0330, 0x0335, 0x033a, 0x0340,\n\t0x0345, 0x034a, 0x034f, 0x0354, 0x0359, 0x035e, 0x0363, 0x0368,\n\t// Entry 100 - 13F\n\t0x036d, 0x0372, 0x0377, 0x037c, 0x0380, 0x0382, 0x0384, 0x0386,\n\t0x038a, 0x038c, 0x038e, 0x0393, 0x0399, 0x03a2, 0x03a8, 0x03b1,\n\t0x03b3, 0x03b5, 0x03b7, 0x03b9, 0x03bb, 0x03bd, 0x03bf, 0x03c1,\n\t0x03c3, 0x03c5, 0x03c7, 0x03cb, 0x03cf, 0x03d3, 0x03d7, 0x03db,\n\t0x03df, 0x03e3, 0x03e7, 0x03eb, 0x03ef, 0x03f3, 0x03ff, 0x0401,\n\t0x0406, 0x0408, 0x040a, 0x040c, 0x040e, 0x040f, 0x0413, 0x0417,\n\t0x041d, 0x0423, 0x0428, 0x042d, 0x0432, 0x0437, 0x043c, 0x0441,\n\t0x0446, 0x044b, 0x0450, 0x0455, 0x045a, 0x045f, 0x0464, 0x0469,\n\t// Entry 140 - 17F\n\t0x046e, 0x0473, 0x0478, 0x047d, 0x0482, 0x0487, 0x048c, 0x0491,\n\t0x0496, 0x049b, 0x04a0, 0x04a5, 0x04aa, 0x04af, 0x04b4, 0x04bc,\n\t0x04c4, 0x04c9, 0x04ce, 0x04d3, 0x04d8, 0x04dd, 0x04e2, 0x04e7,\n\t0x04ec, 0x04f1, 0x04f6, 0x04fb, 0x0500, 0x0505, 0x050a, 0x050f,\n\t0x0514, 0x0519, 0x051e, 0x0523, 0x0528, 0x052d, 0x0532, 0x0537,\n\t0x053c, 0x0541, 0x0546, 0x054b, 0x0550, 0x0555, 0x055a, 0x055f,\n\t0x0564, 0x0569, 0x056e, 0x0573, 0x0578, 0x057a, 0x057c, 0x057e,\n\t0x0580, 0x0582, 0x0584, 0x0586, 0x0588, 0x058a, 0x058c, 0x058e,\n\t// Entry 180 - 1BF\n\t0x0590, 0x0592, 0x0594, 0x0596, 0x059c, 0x05a2, 0x05a4, 0x05a6,\n\t0x05a8, 0x05aa, 0x05ac, 0x05ae, 0x05b0, 0x05b2, 0x05b4, 0x05b6,\n\t0x05b8, 0x05ba, 0x05bc, 0x05be, 0x05c0, 0x05c4, 0x05c8, 0x05cc,\n\t0x05d0, 0x05d4, 0x05d8, 0x05dc, 0x05e0, 0x05e4, 0x05e9, 0x05ee,\n\t0x05f3, 0x05f5, 0x05f7, 0x05fd, 0x0609, 0x0615, 0x0621, 0x062a,\n\t0x0636, 0x063f, 0x0648, 0x0657, 0x0663, 0x066c, 0x0675, 0x067e,\n\t0x068a, 0x0696, 0x069f, 0x06a8, 0x06ae, 0x06b7, 0x06c3, 0x06cf,\n\t0x06d5, 0x06e4, 0x06f6, 0x0705, 0x070e, 0x071d, 0x072c, 0x0738,\n\t// Entry 1C0 - 1FF\n\t0x0741, 0x074a, 0x0753, 0x075f, 0x076e, 0x077a, 0x0783, 0x078c,\n\t0x0795, 0x079b, 0x07a1, 0x07a7, 0x07ad, 0x07b6, 0x07bf, 0x07ce,\n\t0x07d7, 0x07e3, 0x07f2, 0x07fb, 0x0801, 0x0807, 0x0816, 0x0822,\n\t0x0831, 0x083a, 0x0849, 0x084f, 0x0858, 0x0861, 0x086a, 0x0873,\n\t0x087c, 0x0888, 0x0891, 0x0897, 0x08a0, 0x08a9, 0x08b2, 0x08be,\n\t0x08c7, 0x08d0, 0x08d9, 0x08e8, 0x08f4, 0x08fa, 0x0909, 0x090f,\n\t0x091b, 0x0927, 0x0930, 0x0939, 0x0942, 0x094e, 0x0954, 0x095d,\n\t0x0969, 0x096f, 0x097e, 0x0987, 0x098b, 0x098f, 0x0993, 0x0997,\n\t// Entry 200 - 23F\n\t0x099b, 0x099f, 0x09a3, 0x09a7, 0x09ab, 0x09af, 0x09b4, 0x09b9,\n\t0x09be, 0x09c3, 0x09c8, 0x09cd, 0x09d2, 0x09d7, 0x09dc, 0x09e1,\n\t0x09e6, 0x09eb, 0x09f0, 0x09f5, 0x09fa, 0x09fc, 0x09fe, 0x0a00,\n\t0x0a02, 0x0a04, 0x0a06, 0x0a0c, 0x0a12, 0x0a18, 0x0a1e, 0x0a2a,\n\t0x0a2c, 0x0a2e, 0x0a30, 0x0a32, 0x0a34, 0x0a36, 0x0a38, 0x0a3c,\n\t0x0a3e, 0x0a40, 0x0a42, 0x0a44, 0x0a46, 0x0a48, 0x0a4a, 0x0a4c,\n\t0x0a4e, 0x0a50, 0x0a52, 0x0a54, 0x0a56, 0x0a58, 0x0a5a, 0x0a5f,\n\t0x0a65, 0x0a6c, 0x0a74, 0x0a76, 0x0a78, 0x0a7a, 0x0a7c, 0x0a7e,\n\t// Entry 240 - 27F\n\t0x0a80, 0x0a82, 0x0a84, 0x0a86, 0x0a88, 0x0a8a, 0x0a8c, 0x0a8e,\n\t0x0a90, 0x0a96, 0x0a98, 0x0a9a, 0x0a9c, 0x0a9e, 0x0aa0, 0x0aa2,\n\t0x0aa4, 0x0aa6, 0x0aa8, 0x0aaa, 0x0aac, 0x0aae, 0x0ab0, 0x0ab2,\n\t0x0ab4, 0x0ab9, 0x0abe, 0x0ac2, 0x0ac6, 0x0aca, 0x0ace, 0x0ad2,\n\t0x0ad6, 0x0ada, 0x0ade, 0x0ae2, 0x0ae7, 0x0aec, 0x0af1, 0x0af6,\n\t0x0afb, 0x0b00, 0x0b05, 0x0b0a, 0x0b0f, 0x0b14, 0x0b19, 0x0b1e,\n\t0x0b23, 0x0b28, 0x0b2d, 0x0b32, 0x0b37, 0x0b3c, 0x0b41, 0x0b46,\n\t0x0b4b, 0x0b50, 0x0b52, 0x0b54, 0x0b56, 0x0b58, 0x0b5a, 0x0b5c,\n\t// Entry 280 - 2BF\n\t0x0b5e, 0x0b62, 0x0b66, 0x0b6a, 0x0b6e, 0x0b72, 0x0b76, 0x0b7a,\n\t0x0b7c, 0x0b7e, 0x0b80, 0x0b82, 0x0b86, 0x0b8a, 0x0b8e, 0x0b92,\n\t0x0b96, 0x0b9a, 0x0b9e, 0x0ba0, 0x0ba2, 0x0ba4, 0x0ba6, 0x0ba8,\n\t0x0baa, 0x0bac, 0x0bb0, 0x0bb4, 0x0bba, 0x0bc0, 0x0bc4, 0x0bc8,\n\t0x0bcc, 0x0bd0, 0x0bd4, 0x0bd8, 0x0bdc, 0x0be0, 0x0be4, 0x0be8,\n\t0x0bec, 0x0bf0, 0x0bf4, 0x0bf8, 0x0bfc, 0x0c00, 0x0c04, 0x0c08,\n\t0x0c0c, 0x0c10, 0x0c14, 0x0c18, 0x0c1c, 0x0c20, 0x0c24, 0x0c28,\n\t0x0c2c, 0x0c30, 0x0c34, 0x0c36, 0x0c38, 0x0c3a, 0x0c3c, 0x0c3e,\n\t// Entry 2C0 - 2FF\n\t0x0c40, 0x0c42, 0x0c44, 0x0c46, 0x0c48, 0x0c4a, 0x0c4c, 0x0c4e,\n\t0x0c50, 0x0c52, 0x0c54, 0x0c56, 0x0c58, 0x0c5a, 0x0c5c, 0x0c5e,\n\t0x0c60, 0x0c62, 0x0c64, 0x0c66, 0x0c68, 0x0c6a, 0x0c6c, 0x0c6e,\n\t0x0c70, 0x0c72, 0x0c74, 0x0c76, 0x0c78, 0x0c7a, 0x0c7c, 0x0c7e,\n\t0x0c80, 0x0c82, 0x0c86, 0x0c8a, 0x0c8e, 0x0c92, 0x0c96, 0x0c9a,\n\t0x0c9e, 0x0ca2, 0x0ca4, 0x0ca8, 0x0cac, 0x0cb0, 0x0cb4, 0x0cb8,\n\t0x0cbc, 0x0cc0, 0x0cc4, 0x0cc8, 0x0ccc, 0x0cd0, 0x0cd4, 0x0cd8,\n\t0x0cdc, 0x0ce0, 0x0ce4, 0x0ce8, 0x0cec, 0x0cf0, 0x0cf4, 0x0cf8,\n\t// Entry 300 - 33F\n\t0x0cfc, 0x0d00, 0x0d04, 0x0d08, 0x0d0c, 0x0d10, 0x0d14, 0x0d18,\n\t0x0d1c, 0x0d20, 0x0d24, 0x0d28, 0x0d2c, 0x0d30, 0x0d34, 0x0d38,\n\t0x0d3c, 0x0d40, 0x0d44, 0x0d48, 0x0d4c, 0x0d50, 0x0d54, 0x0d58,\n\t0x0d5c, 0x0d60, 0x0d64, 0x0d68, 0x0d6c, 0x0d70, 0x0d74, 0x0d78,\n\t0x0d7c, 0x0d80, 0x0d84, 0x0d88, 0x0d8c, 0x0d90, 0x0d94, 0x0d98,\n\t0x0d9c, 0x0da0, 0x0da4, 0x0da8, 0x0dac, 0x0db0, 0x0db4, 0x0db8,\n\t0x0dbc, 0x0dc0, 0x0dc4, 0x0dc8, 0x0dcc, 0x0dd0, 0x0dd4, 0x0dd8,\n\t0x0ddc, 0x0de0, 0x0de4, 0x0de8, 0x0dec, 0x0df0, 0x0df4, 0x0df8,\n\t// Entry 340 - 37F\n\t0x0dfc, 0x0e00, 0x0e04, 0x0e08, 0x0e0c, 0x0e10, 0x0e14, 0x0e18,\n\t0x0e1d, 0x0e22, 0x0e27, 0x0e2c, 0x0e31, 0x0e36, 0x0e3a, 0x0e3e,\n\t0x0e42, 0x0e46, 0x0e4a, 0x0e4e, 0x0e52, 0x0e56, 0x0e5a, 0x0e5e,\n\t0x0e62, 0x0e66, 0x0e6a, 0x0e6e, 0x0e72, 0x0e76, 0x0e7a, 0x0e7e,\n\t0x0e82, 0x0e86, 0x0e8a, 0x0e8e, 0x0e92, 0x0e96, 0x0e9a, 0x0e9e,\n\t0x0ea2, 0x0ea6, 0x0eaa, 0x0eae, 0x0eb2, 0x0eb6, 0x0ebc, 0x0ec2,\n\t0x0ec8, 0x0ecc, 0x0ed0, 0x0ed4, 0x0ed8, 0x0edc, 0x0ee0, 0x0ee4,\n\t0x0ee8, 0x0eec, 0x0ef0, 0x0ef4, 0x0ef8, 0x0efc, 0x0f00, 0x0f04,\n\t// Entry 380 - 3BF\n\t0x0f08, 0x0f0c, 0x0f10, 0x0f14, 0x0f18, 0x0f1c, 0x0f20, 0x0f24,\n\t0x0f28, 0x0f2c, 0x0f30, 0x0f34, 0x0f38, 0x0f3e, 0x0f44, 0x0f4a,\n\t0x0f50, 0x0f56, 0x0f5c, 0x0f62, 0x0f68, 0x0f6e, 0x0f74, 0x0f7a,\n\t0x0f80, 0x0f86, 0x0f8c, 0x0f92, 0x0f98, 0x0f9e, 0x0fa4, 0x0faa,\n\t0x0fb0, 0x0fb6, 0x0fbc, 0x0fc2, 0x0fc8, 0x0fce, 0x0fd4, 0x0fda,\n\t0x0fe0, 0x0fe6, 0x0fec, 0x0ff2, 0x0ff8, 0x0ffe, 0x1004, 0x100a,\n\t0x1010, 0x1016, 0x101c, 0x1022, 0x1028, 0x102e, 0x1034, 0x103a,\n\t0x1040, 0x1046, 0x104c, 0x1052, 0x1058, 0x105e, 0x1064, 0x106a,\n\t// Entry 3C0 - 3FF\n\t0x1070, 0x1076, 0x107c, 0x1082, 0x1088, 0x108e, 0x1094, 0x109a,\n\t0x10a0, 0x10a6, 0x10ac, 0x10b2, 0x10b8, 0x10be, 0x10c4, 0x10ca,\n\t0x10d0, 0x10d6, 0x10dc, 0x10e2, 0x10e8, 0x10ee, 0x10f4, 0x10fa,\n\t0x1100, 0x1106, 0x110c, 0x1112, 0x1118, 0x111e, 0x1124, 0x112a,\n\t0x1130, 0x1136, 0x113c, 0x1142, 0x1148, 0x114e, 0x1154, 0x115a,\n\t0x1160, 0x1166, 0x116c, 0x1172, 0x1178, 0x1180, 0x1188, 0x1190,\n\t0x1198, 0x11a0, 0x11a8, 0x11b0, 0x11b6, 0x11d7, 0x11e6, 0x11ee,\n\t0x11ef, 0x11f0, 0x11f1, 0x11f2, 0x11f3, 0x11f4, 0x11f5, 0x11f6,\n\t// Entry 400 - 43F\n\t0x11f7, 0x11f8, 0x11f9, 0x11fa, 0x11fb, 0x11fc, 0x11fd, 0x11fe,\n\t0x11ff, 0x1200, 0x1201, 0x1205, 0x1209, 0x120d, 0x1211, 0x1215,\n\t0x1219, 0x121b, 0x121d, 0x121f, 0x1221, 0x1223, 0x1225, 0x1227,\n\t0x1229, 0x122b, 0x122d, 0x122f, 0x1231, 0x1233, 0x1235, 0x1237,\n\t0x1239, 0x123b, 0x123d, 0x123f, 0x1241, 0x1243, 0x1245, 0x1247,\n\t0x1249, 0x124b, 0x124d, 0x124f, 0x1251, 0x1253, 0x1255, 0x1257,\n\t0x1259, 0x125b, 0x125d, 0x125f, 0x1263, 0x1267, 0x126b, 0x126f,\n\t0x1270, 0x1271, 0x1272, 0x1273, 0x1274, 0x1275, 0x1277, 0x1279,\n\t// Entry 440 - 47F\n\t0x127b, 0x127d, 0x127f, 0x1287, 0x128f, 0x129b, 0x12a7, 0x12b3,\n\t0x12bf, 0x12cb, 0x12d3, 0x12db, 0x12e7, 0x12f3, 0x12ff, 0x130b,\n\t0x130d, 0x130f, 0x1311, 0x1313, 0x1315, 0x1317, 0x1319, 0x131b,\n\t0x131d, 0x131f, 0x1321, 0x1323, 0x1325, 0x1327, 0x1329, 0x132b,\n\t0x132e, 0x1331, 0x1333, 0x1335, 0x1337, 0x1339, 0x133b, 0x133d,\n\t0x133f, 0x1341, 0x1343, 0x1345, 0x1347, 0x1349, 0x134b, 0x134d,\n\t0x1350, 0x1353, 0x1356, 0x1359, 0x135c, 0x135f, 0x1362, 0x1365,\n\t0x1368, 0x136b, 0x136e, 0x1371, 0x1374, 0x1377, 0x137a, 0x137d,\n\t// Entry 480 - 4BF\n\t0x1380, 0x1383, 0x1386, 0x1389, 0x138c, 0x138f, 0x1392, 0x1395,\n\t0x1398, 0x139b, 0x13a2, 0x13a4, 0x13a6, 0x13a8, 0x13ab, 0x13ad,\n\t0x13af, 0x13b1, 0x13b3, 0x13b5, 0x13bb, 0x13c1, 0x13c4, 0x13c7,\n\t0x13ca, 0x13cd, 0x13d0, 0x13d3, 0x13d6, 0x13d9, 0x13dc, 0x13df,\n\t0x13e2, 0x13e5, 0x13e8, 0x13eb, 0x13ee, 0x13f1, 0x13f4, 0x13f7,\n\t0x13fa, 0x13fd, 0x1400, 0x1403, 0x1406, 0x1409, 0x140c, 0x140f,\n\t0x1412, 0x1415, 0x1418, 0x141b, 0x141e, 0x1421, 0x1424, 0x1427,\n\t0x142a, 0x142d, 0x1430, 0x1433, 0x1436, 0x1439, 0x143c, 0x143f,\n\t// Entry 4C0 - 4FF\n\t0x1442, 0x1445, 0x1448, 0x1451, 0x145a, 0x1463, 0x146c, 0x1475,\n\t0x147e, 0x1487, 0x1490, 0x1499, 0x149c, 0x149f, 0x14a2, 0x14a5,\n\t0x14a8, 0x14ab, 0x14ae, 0x14b1, 0x14b4, 0x14b7, 0x14ba, 0x14bd,\n\t0x14c0, 0x14c3, 0x14c6, 0x14c9, 0x14cc, 0x14cf, 0x14d2, 0x14d5,\n\t0x14d8, 0x14db, 0x14de, 0x14e1, 0x14e4, 0x14e7, 0x14ea, 0x14ed,\n\t0x14f0, 0x14f3, 0x14f6, 0x14f9, 0x14fc, 0x14ff, 0x1502, 0x1505,\n\t0x1508, 0x150b, 0x150e, 0x1511, 0x1514, 0x1517, 0x151a, 0x151d,\n\t0x1520, 0x1523, 0x1526, 0x1529, 0x152c, 0x152f, 0x1532, 0x1535,\n\t// Entry 500 - 53F\n\t0x1538, 0x153b, 0x153e, 0x1541, 0x1544, 0x1547, 0x154a, 0x154d,\n\t0x1550, 0x1553, 0x1556, 0x1559, 0x155c, 0x155f, 0x1562, 0x1565,\n\t0x1568, 0x156b, 0x156e, 0x1571, 0x1574, 0x1577, 0x157a, 0x157d,\n\t0x1580, 0x1583, 0x1586, 0x1589, 0x158c, 0x158f, 0x1592, 0x1595,\n\t0x1598, 0x159b, 0x159e, 0x15a1, 0x15a4, 0x15a7, 0x15aa, 0x15ad,\n\t0x15b0, 0x15b3, 0x15b6, 0x15b9, 0x15bc, 0x15bf, 0x15c2, 0x15c5,\n\t0x15c8, 0x15cb, 0x15ce, 0x15d1, 0x15d4, 0x15d7, 0x15da, 0x15dd,\n\t0x15e0, 0x15e3, 0x15e6, 0x15e9, 0x15ec, 0x15ef, 0x15f2, 0x15f5,\n\t// Entry 540 - 57F\n\t0x15f8, 0x15fb, 0x15fe, 0x1601, 0x1604, 0x1607, 0x160a, 0x160d,\n\t0x1610, 0x1613, 0x1616, 0x1619, 0x161c, 0x161f, 0x1622, 0x1625,\n\t0x1628, 0x162b, 0x162e, 0x1631, 0x1634, 0x1637, 0x163a, 0x163d,\n\t0x1640, 0x1643, 0x1646, 0x1649, 0x164c, 0x164f, 0x1652, 0x1655,\n\t0x1658, 0x165b, 0x165e, 0x1661, 0x1664, 0x1667, 0x166a, 0x166d,\n\t0x1670, 0x1673, 0x1676, 0x1679, 0x167c, 0x167f, 0x1682, 0x1685,\n\t0x1688, 0x168b, 0x168e, 0x1691, 0x1694, 0x1697, 0x169a, 0x169d,\n\t0x16a0, 0x16a3, 0x16a6, 0x16a9, 0x16ac, 0x16af, 0x16b2, 0x16b5,\n\t// Entry 580 - 5BF\n\t0x16b8, 0x16bb, 0x16be, 0x16c1, 0x16c4, 0x16c7, 0x16ca, 0x16cd,\n\t0x16d0, 0x16d3, 0x16d6, 0x16d9, 0x16dc, 0x16df, 0x16e2, 0x16e5,\n\t0x16e8, 0x16eb, 0x16ee, 0x16f1, 0x16f4, 0x16f7, 0x16fa, 0x16fd,\n\t0x1700, 0x1703, 0x1706, 0x1709, 0x170c, 0x170f, 0x1712, 0x1715,\n\t0x1718, 0x171b, 0x171e, 0x1721, 0x1724, 0x1727, 0x172a, 0x172d,\n\t0x1730, 0x1733, 0x1736, 0x1739, 0x173c, 0x173f, 0x1742, 0x1745,\n\t0x1748, 0x174b, 0x174e, 0x1751, 0x1754, 0x1757, 0x175a, 0x175d,\n\t0x1760, 0x1763, 0x1766, 0x1769, 0x176c, 0x176f, 0x1772, 0x1775,\n\t// Entry 5C0 - 5FF\n\t0x1778, 0x177b, 0x177e, 0x1781, 0x1784, 0x1787, 0x178a, 0x178d,\n\t0x1790, 0x1793, 0x1796, 0x1799, 0x179c, 0x179f, 0x17a2, 0x17a5,\n\t0x17a8, 0x17ab, 0x17ae, 0x17b1, 0x17b4, 0x17b7, 0x17ba, 0x17bd,\n\t0x17c0, 0x17c3, 0x17c6, 0x17c9, 0x17cc, 0x17cf, 0x17d2, 0x17d5,\n\t0x17d8, 0x17db, 0x17de, 0x17e1, 0x17e4, 0x17e7, 0x17ea, 0x17ed,\n\t0x17f0, 0x17f3, 0x17f6, 0x17f9, 0x17fc, 0x17ff, 0x1802, 0x1805,\n\t0x1808, 0x180b, 0x180e, 0x1811, 0x1814, 0x1817, 0x181a, 0x181d,\n\t0x1820, 0x1823, 0x1826, 0x1829, 0x182c, 0x182f, 0x1832, 0x1835,\n\t// Entry 600 - 63F\n\t0x1838, 0x183b, 0x183e, 0x1841, 0x1844, 0x1847, 0x184a, 0x184d,\n\t0x1850, 0x1853, 0x1856, 0x1859, 0x185c, 0x185f, 0x1862, 0x1865,\n\t0x1868, 0x186b, 0x186e, 0x1871, 0x1874, 0x1877, 0x187a, 0x187d,\n\t0x1880, 0x1883, 0x1886, 0x1889, 0x188c, 0x188f, 0x1892, 0x1895,\n\t0x1898, 0x189b, 0x189e, 0x18a1, 0x18a4, 0x18a7, 0x18aa, 0x18ad,\n\t0x18b0, 0x18b3, 0x18b6, 0x18b9, 0x18bc, 0x18bf, 0x18c2, 0x18c5,\n\t0x18c8, 0x18cb, 0x18ce, 0x18d1, 0x18d4, 0x18d7, 0x18da, 0x18dd,\n\t0x18e0, 0x18e3, 0x18e6, 0x18e9, 0x18ec, 0x18ef, 0x18f2, 0x18f5,\n\t// Entry 640 - 67F\n\t0x18f8, 0x18fb, 0x18fe, 0x1901, 0x1904, 0x1907, 0x190a, 0x190d,\n\t0x1910, 0x1913, 0x1916, 0x1919, 0x191c, 0x191f, 0x1922, 0x1925,\n\t0x1928, 0x192b, 0x192e, 0x1931, 0x1934, 0x1937, 0x193a, 0x193d,\n\t0x1940, 0x1943, 0x1946, 0x1949, 0x194c, 0x194f, 0x1952, 0x1955,\n\t0x1958, 0x195b, 0x195e, 0x1961, 0x1964, 0x1967, 0x196a, 0x196d,\n\t0x1970, 0x1973, 0x1976, 0x1979, 0x197c, 0x197f, 0x1982, 0x1985,\n\t0x1988, 0x198b,\n} // Size: 3324 bytes\n\nvar xorData string = \"\" + // Size: 4862 bytes\n\t\"\\x02\\x0c\\x09\\x02\\xb0\\xec\\x02\\xad\\xd8\\x02\\xad\\xd9\\x02\\x06\\x07\\x02\\x0f\\x12\" +\n\t\"\\x02\\x0f\\x1f\\x02\\x0f\\x1d\\x02\\x01\\x13\\x02\\x0f\\x16\\x02\\x0f\\x0b\\x02\\x0f3\" +\n\t\"\\x02\\x0f7\\x02\\x0f?\\x02\\x0f/\\x02\\x0f*\\x02\\x0c&\\x02\\x0c*\\x02\\x0c;\\x02\\x0c9\" +\n\t\"\\x02\\x0c%\\x02\\xab\\xed\\x02\\xab\\xe2\\x02\\xab\\xe3\\x02\\xa9\\xe0\\x02\\xa9\\xe1\" +\n\t\"\\x02\\xa9\\xe6\\x02\\xa3\\xcb\\x02\\xa3\\xc8\\x02\\xa3\\xc9\\x02\\x01#\\x02\\x01\\x08\" +\n\t\"\\x02\\x0e>\\x02\\x0e'\\x02\\x0f\\x03\\x02\\x03\\x0d\\x02\\x03\\x09\\x02\\x03\\x17\\x02\" +\n\t\"\\x03\\x0e\\x02\\x02\\x03\\x02\\x011\\x02\\x01\\x00\\x02\\x01\\x10\\x02\\x03<\\x02\\x07\" +\n\t\"\\x0d\\x02\\x02\\x0c\\x02\\x0c0\\x02\\x01\\x03\\x02\\x01\\x01\\x02\\x01 \\x02\\x01\\x22\" +\n\t\"\\x02\\x01)\\x02\\x01\\x0a\\x02\\x01\\x0c\\x02\\x02\\x06\\x02\\x02\\x02\\x02\\x03\\x10\" +\n\t\"\\x03\\x037 \\x03\\x0b+\\x03\\x021\\x00\\x02\\x01\\x04\\x02\\x01\\x02\\x02\\x019\\x02\" +\n\t\"\\x03\\x1c\\x02\\x02$\\x03\\x80p$\\x02\\x03:\\x02\\x03\\x0a\\x03\\xc1r.\\x03\\xc1r,\\x03\" +\n\t\"\\xc1r\\x02\\x02\\x02:\\x02\\x02>\\x02\\x02,\\x02\\x02\\x10\\x02\\x02\\x00\\x03\\xc1s<\" +\n\t\"\\x03\\xc1s*\\x03\\xc2L$\\x03\\xc2L;\\x02\\x09)\\x02\\x0a\\x19\\x03\\x83\\xab\\xe3\\x03\" +\n\t\"\\x83\\xab\\xf2\\x03 4\\xe0\\x03\\x81\\xab\\xea\\x03\\x81\\xab\\xf3\\x03 4\\xef\\x03\\x96\" +\n\t\"\\xe1\\xcd\\x03\\x84\\xe5\\xc3\\x02\\x0d\\x11\\x03\\x8b\\xec\\xcb\\x03\\x94\\xec\\xcf\\x03\" +\n\t\"\\x9a\\xec\\xc2\\x03\\x8b\\xec\\xdb\\x03\\x94\\xec\\xdf\\x03\\x9a\\xec\\xd2\\x03\\x01\\x0c\" +\n\t\"!\\x03\\x01\\x0c#\\x03ʠ\\x9d\\x03ʣ\\x9c\\x03ʢ\\x9f\\x03ʥ\\x9e\\x03ʤ\\x91\\x03ʧ\\x90\\x03\" +\n\t\"ʦ\\x93\\x03ʩ\\x92\\x03ʨ\\x95\\x03\\xca\\xf3\\xb5\\x03\\xca\\xf0\\xb4\\x03\\xca\\xf1\\xb7\" +\n\t\"\\x03\\xca\\xf6\\xb6\\x03\\xca\\xf7\\x89\\x03\\xca\\xf4\\x88\\x03\\xca\\xf5\\x8b\\x03\\xca\" +\n\t\"\\xfa\\x8a\\x03\\xca\\xfb\\x8d\\x03\\xca\\xf8\\x8c\\x03\\xca\\xf9\\x8f\\x03\\xca\\xfe\\x8e\" +\n\t\"\\x03\\xca\\xff\\x81\\x03\\xca\\xfc\\x80\\x03\\xca\\xfd\\x83\\x03\\xca\\xe2\\x82\\x03\\xca\" +\n\t\"\\xe3\\x85\\x03\\xca\\xe0\\x84\\x03\\xca\\xe1\\x87\\x03\\xca\\xe6\\x86\\x03\\xca\\xe7\\x99\" +\n\t\"\\x03\\xca\\xe4\\x98\\x03\\xca\\xe5\\x9b\\x03\\xca\\xea\\x9a\\x03\\xca\\xeb\\x9d\\x03\\xca\" +\n\t\"\\xe8\\x9c\\x03ؓ\\x89\\x03ߔ\\x8b\\x02\\x010\\x03\\x03\\x04\\x1e\\x03\\x04\\x15\\x12\\x03\" +\n\t\"\\x0b\\x05,\\x03\\x06\\x04\\x00\\x03\\x06\\x04)\\x03\\x06\\x044\\x03\\x06\\x04<\\x03\\x06\" +\n\t\"\\x05\\x1d\\x03\\x06\\x06\\x00\\x03\\x06\\x06\\x0a\\x03\\x06\\x06'\\x03\\x06\\x062\\x03\" +\n\t\"\\x0786\\x03\\x079/\\x03\\x079 \\x03\\x07:\\x0e\\x03\\x07:\\x1b\\x03\\x07:%\\x03\\x07;/\" +\n\t\"\\x03\\x07;%\\x03\\x074\\x11\\x03\\x076\\x09\\x03\\x077*\\x03\\x070\\x01\\x03\\x070\\x0f\" +\n\t\"\\x03\\x070.\\x03\\x071\\x16\\x03\\x071\\x04\\x03\\x0710\\x03\\x072\\x18\\x03\\x072-\" +\n\t\"\\x03\\x073\\x14\\x03\\x073>\\x03\\x07'\\x09\\x03\\x07 \\x00\\x03\\x07\\x1f\\x0b\\x03\" +\n\t\"\\x07\\x18#\\x03\\x07\\x18(\\x03\\x07\\x186\\x03\\x07\\x18\\x03\\x03\\x07\\x19\\x16\\x03\" +\n\t\"\\x07\\x116\\x03\\x07\\x12'\\x03\\x07\\x13\\x10\\x03\\x07\\x0c&\\x03\\x07\\x0c\\x08\\x03\" +\n\t\"\\x07\\x0c\\x13\\x03\\x07\\x0d\\x02\\x03\\x07\\x0d\\x1c\\x03\\x07\\x0b5\\x03\\x07\\x0b\" +\n\t\"\\x0a\\x03\\x07\\x0b\\x01\\x03\\x07\\x0b\\x0f\\x03\\x07\\x05\\x00\\x03\\x07\\x05\\x09\\x03\" +\n\t\"\\x07\\x05\\x0b\\x03\\x07\\x07\\x01\\x03\\x07\\x07\\x08\\x03\\x07\\x00<\\x03\\x07\\x00+\" +\n\t\"\\x03\\x07\\x01)\\x03\\x07\\x01\\x1b\\x03\\x07\\x01\\x08\\x03\\x07\\x03?\\x03\\x0445\\x03\" +\n\t\"\\x044\\x08\\x03\\x0454\\x03\\x04)/\\x03\\x04)5\\x03\\x04+\\x05\\x03\\x04+\\x14\\x03\" +\n\t\"\\x04+ \\x03\\x04+<\\x03\\x04*&\\x03\\x04*\\x22\\x03\\x04&8\\x03\\x04!\\x01\\x03\\x04!\" +\n\t\"\\x22\\x03\\x04\\x11+\\x03\\x04\\x10.\\x03\\x04\\x104\\x03\\x04\\x13=\\x03\\x04\\x12\\x04\" +\n\t\"\\x03\\x04\\x12\\x0a\\x03\\x04\\x0d\\x1d\\x03\\x04\\x0d\\x07\\x03\\x04\\x0d \\x03\\x05<>\" +\n\t\"\\x03\\x055<\\x03\\x055!\\x03\\x055#\\x03\\x055&\\x03\\x054\\x1d\\x03\\x054\\x02\\x03\" +\n\t\"\\x054\\x07\\x03\\x0571\\x03\\x053\\x1a\\x03\\x053\\x16\\x03\\x05.<\\x03\\x05.\\x07\\x03\" +\n\t\"\\x05):\\x03\\x05)<\\x03\\x05)\\x0c\\x03\\x05)\\x15\\x03\\x05+-\\x03\\x05+5\\x03\\x05$\" +\n\t\"\\x1e\\x03\\x05$\\x14\\x03\\x05'\\x04\\x03\\x05'\\x14\\x03\\x05&\\x02\\x03\\x05\\x226\" +\n\t\"\\x03\\x05\\x22\\x0c\\x03\\x05\\x22\\x1c\\x03\\x05\\x19\\x0a\\x03\\x05\\x1b\\x09\\x03\\x05\" +\n\t\"\\x1b\\x0c\\x03\\x05\\x14\\x07\\x03\\x05\\x16?\\x03\\x05\\x16\\x0c\\x03\\x05\\x0c\\x05\" +\n\t\"\\x03\\x05\\x0e\\x0f\\x03\\x05\\x01\\x0e\\x03\\x05\\x00(\\x03\\x05\\x030\\x03\\x05\\x03\" +\n\t\"\\x06\\x03\\x0a==\\x03\\x0a=1\\x03\\x0a=,\\x03\\x0a=\\x0c\\x03\\x0a??\\x03\\x0a<\\x08\" +\n\t\"\\x03\\x0a9!\\x03\\x0a9)\\x03\\x0a97\\x03\\x0a99\\x03\\x0a6\\x0a\\x03\\x0a6\\x1c\\x03\" +\n\t\"\\x0a6\\x17\\x03\\x0a7'\\x03\\x0a78\\x03\\x0a73\\x03\\x0a'\\x01\\x03\\x0a'&\\x03\\x0a\" +\n\t\"\\x1f\\x0e\\x03\\x0a\\x1f\\x03\\x03\\x0a\\x1f3\\x03\\x0a\\x1b/\\x03\\x0a\\x18\\x19\\x03\" +\n\t\"\\x0a\\x19\\x01\\x03\\x0a\\x16\\x14\\x03\\x0a\\x0e\\x22\\x03\\x0a\\x0f\\x10\\x03\\x0a\\x0f\" +\n\t\"\\x02\\x03\\x0a\\x0f \\x03\\x0a\\x0c\\x04\\x03\\x0a\\x0b>\\x03\\x0a\\x0b+\\x03\\x0a\\x08/\" +\n\t\"\\x03\\x0a\\x046\\x03\\x0a\\x05\\x14\\x03\\x0a\\x00\\x04\\x03\\x0a\\x00\\x10\\x03\\x0a\" +\n\t\"\\x00\\x14\\x03\\x0b<3\\x03\\x0b;*\\x03\\x0b9\\x22\\x03\\x0b9)\\x03\\x0b97\\x03\\x0b+\" +\n\t\"\\x10\\x03\\x0b((\\x03\\x0b&5\\x03\\x0b$\\x1c\\x03\\x0b$\\x12\\x03\\x0b%\\x04\\x03\\x0b#\" +\n\t\"<\\x03\\x0b#0\\x03\\x0b#\\x0d\\x03\\x0b#\\x19\\x03\\x0b!:\\x03\\x0b!\\x1f\\x03\\x0b!\" +\n\t\"\\x00\\x03\\x0b\\x1e5\\x03\\x0b\\x1c\\x1d\\x03\\x0b\\x1d-\\x03\\x0b\\x1d(\\x03\\x0b\\x18.\" +\n\t\"\\x03\\x0b\\x18 \\x03\\x0b\\x18\\x16\\x03\\x0b\\x14\\x13\\x03\\x0b\\x15$\\x03\\x0b\\x15\" +\n\t\"\\x22\\x03\\x0b\\x12\\x1b\\x03\\x0b\\x12\\x10\\x03\\x0b\\x132\\x03\\x0b\\x13=\\x03\\x0b\" +\n\t\"\\x12\\x18\\x03\\x0b\\x0c&\\x03\\x0b\\x061\\x03\\x0b\\x06:\\x03\\x0b\\x05#\\x03\\x0b\\x05\" +\n\t\"<\\x03\\x0b\\x04\\x0b\\x03\\x0b\\x04\\x04\\x03\\x0b\\x04\\x1b\\x03\\x0b\\x042\\x03\\x0b\" +\n\t\"\\x041\\x03\\x0b\\x03\\x03\\x03\\x0b\\x03\\x1d\\x03\\x0b\\x03/\\x03\\x0b\\x03+\\x03\\x0b\" +\n\t\"\\x02\\x1b\\x03\\x0b\\x02\\x00\\x03\\x0b\\x01\\x1e\\x03\\x0b\\x01\\x08\\x03\\x0b\\x015\" +\n\t\"\\x03\\x06\\x0d9\\x03\\x06\\x0d=\\x03\\x06\\x0d?\\x03\\x02\\x001\\x03\\x02\\x003\\x03\" +\n\t\"\\x02\\x02\\x19\\x03\\x02\\x006\\x03\\x02\\x02\\x1b\\x03\\x02\\x004\\x03\\x02\\x00<\\x03\" +\n\t\"\\x02\\x02\\x0a\\x03\\x02\\x02\\x0e\\x03\\x02\\x01\\x1a\\x03\\x02\\x01\\x07\\x03\\x02\\x01\" +\n\t\"\\x05\\x03\\x02\\x01\\x0b\\x03\\x02\\x01%\\x03\\x02\\x01\\x0c\\x03\\x02\\x01\\x04\\x03\" +\n\t\"\\x02\\x01\\x1c\\x03\\x02\\x00.\\x03\\x02\\x002\\x03\\x02\\x00>\\x03\\x02\\x00\\x12\\x03\" +\n\t\"\\x02\\x00\\x16\\x03\\x02\\x011\\x03\\x02\\x013\\x03\\x02\\x02 \\x03\\x02\\x02%\\x03\\x02\" +\n\t\"\\x02$\\x03\\x02\\x028\\x03\\x02\\x02;\\x03\\x02\\x024\\x03\\x02\\x012\\x03\\x02\\x022\" +\n\t\"\\x03\\x02\\x02/\\x03\\x02\\x01,\\x03\\x02\\x01\\x13\\x03\\x02\\x01\\x16\\x03\\x02\\x01\" +\n\t\"\\x11\\x03\\x02\\x01\\x1e\\x03\\x02\\x01\\x15\\x03\\x02\\x01\\x17\\x03\\x02\\x01\\x0f\\x03\" +\n\t\"\\x02\\x01\\x08\\x03\\x02\\x00?\\x03\\x02\\x03\\x07\\x03\\x02\\x03\\x0d\\x03\\x02\\x03\" +\n\t\"\\x13\\x03\\x02\\x03\\x1d\\x03\\x02\\x03\\x1f\\x03\\x02\\x00\\x03\\x03\\x02\\x00\\x0d\\x03\" +\n\t\"\\x02\\x00\\x01\\x03\\x02\\x00\\x1b\\x03\\x02\\x00\\x19\\x03\\x02\\x00\\x18\\x03\\x02\\x00\" +\n\t\"\\x13\\x03\\x02\\x00/\\x03\\x07>\\x12\\x03\\x07<\\x1f\\x03\\x07>\\x1d\\x03\\x06\\x1d\\x0e\" +\n\t\"\\x03\\x07>\\x1c\\x03\\x07>:\\x03\\x07>\\x13\\x03\\x04\\x12+\\x03\\x07?\\x03\\x03\\x07>\" +\n\t\"\\x02\\x03\\x06\\x224\\x03\\x06\\x1a.\\x03\\x07<%\\x03\\x06\\x1c\\x0b\\x03\\x0609\\x03\" +\n\t\"\\x05\\x1f\\x01\\x03\\x04'\\x08\\x03\\x93\\xfd\\xf5\\x03\\x02\\x0d \\x03\\x02\\x0d#\\x03\" +\n\t\"\\x02\\x0d!\\x03\\x02\\x0d&\\x03\\x02\\x0d\\x22\\x03\\x02\\x0d/\\x03\\x02\\x0d,\\x03\\x02\" +\n\t\"\\x0d$\\x03\\x02\\x0d'\\x03\\x02\\x0d%\\x03\\x02\\x0d;\\x03\\x02\\x0d=\\x03\\x02\\x0d?\" +\n\t\"\\x03\\x099.\\x03\\x08\\x0b7\\x03\\x08\\x02\\x14\\x03\\x08\\x14\\x0d\\x03\\x08.:\\x03\" +\n\t\"\\x089'\\x03\\x0f\\x0b\\x18\\x03\\x0f\\x1c1\\x03\\x0f\\x17&\\x03\\x0f9\\x1f\\x03\\x0f0\" +\n\t\"\\x0c\\x03\\x0e\\x0a9\\x03\\x0e\\x056\\x03\\x0e\\x1c#\\x03\\x0f\\x13\\x0e\\x03\\x072\\x00\" +\n\t\"\\x03\\x070\\x0d\\x03\\x072\\x0b\\x03\\x06\\x11\\x18\\x03\\x070\\x10\\x03\\x06\\x0f(\\x03\" +\n\t\"\\x072\\x05\\x03\\x06\\x0f,\\x03\\x073\\x15\\x03\\x06\\x07\\x08\\x03\\x05\\x16\\x02\\x03\" +\n\t\"\\x04\\x0b \\x03\\x05:8\\x03\\x05\\x16%\\x03\\x0a\\x0d\\x1f\\x03\\x06\\x16\\x10\\x03\\x05\" +\n\t\"\\x1d5\\x03\\x05*;\\x03\\x05\\x16\\x1b\\x03\\x04.-\\x03\\x06\\x1a\\x19\\x03\\x04\\x03,\" +\n\t\"\\x03\\x0b87\\x03\\x04/\\x0a\\x03\\x06\\x00,\\x03\\x04-\\x01\\x03\\x04\\x1e-\\x03\\x06/(\" +\n\t\"\\x03\\x0a\\x0b5\\x03\\x06\\x0e7\\x03\\x06\\x07.\\x03\\x0597\\x03\\x0a*%\\x03\\x0760\" +\n\t\"\\x03\\x06\\x0c;\\x03\\x05'\\x00\\x03\\x072.\\x03\\x072\\x08\\x03\\x06=\\x01\\x03\\x06\" +\n\t\"\\x05\\x1b\\x03\\x06\\x06\\x12\\x03\\x06$=\\x03\\x06'\\x0d\\x03\\x04\\x11\\x0f\\x03\\x076\" +\n\t\",\\x03\\x06\\x07;\\x03\\x06.,\\x03\\x86\\xf9\\xea\\x03\\x8f\\xff\\xeb\\x02\\x092\\x02\" +\n\t\"\\x095\\x02\\x094\\x02\\x09;\\x02\\x09>\\x02\\x098\\x02\\x09*\\x02\\x09/\\x02\\x09,\\x02\" +\n\t\"\\x09%\\x02\\x09&\\x02\\x09#\\x02\\x09 \\x02\\x08!\\x02\\x08%\\x02\\x08$\\x02\\x08+\\x02\" +\n\t\"\\x08.\\x02\\x08*\\x02\\x08&\\x02\\x088\\x02\\x08>\\x02\\x084\\x02\\x086\\x02\\x080\\x02\" +\n\t\"\\x08\\x10\\x02\\x08\\x17\\x02\\x08\\x12\\x02\\x08\\x1d\\x02\\x08\\x1f\\x02\\x08\\x13\\x02\" +\n\t\"\\x08\\x15\\x02\\x08\\x14\\x02\\x08\\x0c\\x03\\x8b\\xfd\\xd0\\x03\\x81\\xec\\xc6\\x03\\x87\" +\n\t\"\\xe0\\x8a\\x03-2\\xe3\\x03\\x80\\xef\\xe4\\x03-2\\xea\\x03\\x88\\xe6\\xeb\\x03\\x8e\\xe6\" +\n\t\"\\xe8\\x03\\x84\\xe6\\xe9\\x03\\x97\\xe6\\xee\\x03-2\\xf9\\x03-2\\xf6\\x03\\x8e\\xe3\\xad\" +\n\t\"\\x03\\x80\\xe3\\x92\\x03\\x88\\xe3\\x90\\x03\\x8e\\xe3\\x90\\x03\\x80\\xe3\\x97\\x03\\x88\" +\n\t\"\\xe3\\x95\\x03\\x88\\xfe\\xcb\\x03\\x8e\\xfe\\xca\\x03\\x84\\xfe\\xcd\\x03\\x91\\xef\\xc9\" +\n\t\"\\x03-2\\xc1\\x03-2\\xc0\\x03-2\\xcb\\x03\\x88@\\x09\\x03\\x8e@\\x08\\x03\\x8f\\xe0\\xf5\" +\n\t\"\\x03\\x8e\\xe6\\xf9\\x03\\x8e\\xe0\\xfa\\x03\\x93\\xff\\xf4\\x03\\x84\\xee\\xd3\\x03\\x0b\" +\n\t\"(\\x04\\x023 \\x03\\x0b)\\x08\\x021;\\x02\\x01*\\x03\\x0b#\\x10\\x03\\x0b 0\\x03\\x0b!\" +\n\t\"\\x10\\x03\\x0b!0\\x03\\x07\\x15\\x08\\x03\\x09?5\\x03\\x07\\x1f\\x08\\x03\\x07\\x17\\x0b\" +\n\t\"\\x03\\x09\\x1f\\x15\\x03\\x0b\\x1c7\\x03\\x0a+#\\x03\\x06\\x1a\\x1b\\x03\\x06\\x1a\\x14\" +\n\t\"\\x03\\x0a\\x01\\x18\\x03\\x06#\\x1b\\x03\\x0a2\\x0c\\x03\\x0a\\x01\\x04\\x03\\x09#;\\x03\" +\n\t\"\\x08='\\x03\\x08\\x1a\\x0a\\x03\\x07</\\x03\\x07:+\\x03\\x07\\x07*\\x03\\x06&\\x1c\\x03\" +\n\t\"\\x09\\x0c\\x16\\x03\\x09\\x10\\x0e\\x03\\x08'\\x0f\\x03\\x08+\\x09\\x03\\x074%\\x03\\x06\" +\n\t\"!3\\x03\\x06\\x03+\\x03\\x0b\\x1e\\x19\\x03\\x0a))\\x03\\x09\\x08\\x19\\x03\\x08,\\x05\" +\n\t\"\\x03\\x07<2\\x03\\x06\\x1c>\\x03\\x0a\\x111\\x03\\x09\\x1b\\x09\\x03\\x073.\\x03\\x07\" +\n\t\"\\x01\\x00\\x03\\x09/,\\x03\\x07#>\\x03\\x07\\x048\\x03\\x0a\\x1f\\x22\\x03\\x098>\\x03\" +\n\t\"\\x09\\x11\\x00\\x03\\x08/\\x17\\x03\\x06'\\x22\\x03\\x0b\\x1a+\\x03\\x0a\\x22\\x19\\x03\" +\n\t\"\\x0a/1\\x03\\x0974\\x03\\x09\\x0f\\x22\\x03\\x08,\\x22\\x03\\x08?\\x14\\x03\\x07$5\\x03\" +\n\t\"\\x07<3\\x03\\x07=*\\x03\\x07\\x13\\x18\\x03\\x068\\x0a\\x03\\x06\\x09\\x16\\x03\\x06\" +\n\t\"\\x13\\x00\\x03\\x08\\x067\\x03\\x08\\x01\\x03\\x03\\x08\\x12\\x1d\\x03\\x07+7\\x03\\x06(\" +\n\t\";\\x03\\x06\\x1c?\\x03\\x07\\x0e\\x17\\x03\\x0a\\x06\\x1d\\x03\\x0a\\x19\\x07\\x03\\x08\" +\n\t\"\\x14$\\x03\\x07$;\\x03\\x08,$\\x03\\x08\\x06\\x0d\\x03\\x07\\x16\\x0a\\x03\\x06>>\\x03\" +\n\t\"\\x0a\\x06\\x12\\x03\\x0a\\x14)\\x03\\x09\\x0d\\x1f\\x03\\x09\\x12\\x17\\x03\\x09\\x19\" +\n\t\"\\x01\\x03\\x08\\x11 \\x03\\x08\\x1d'\\x03\\x06<\\x1a\\x03\\x0a.\\x00\\x03\\x07'\\x18\" +\n\t\"\\x03\\x0a\\x22\\x08\\x03\\x08\\x0d\\x0a\\x03\\x08\\x13)\\x03\\x07*)\\x03\\x06<,\\x03\" +\n\t\"\\x07\\x0b\\x1a\\x03\\x09.\\x14\\x03\\x09\\x0d\\x1e\\x03\\x07\\x0e#\\x03\\x0b\\x1d'\\x03\" +\n\t\"\\x0a\\x0a8\\x03\\x09%2\\x03\\x08+&\\x03\\x080\\x12\\x03\\x0a)4\\x03\\x08\\x06\\x1f\\x03\" +\n\t\"\\x0b\\x1b\\x1a\\x03\\x0a\\x1b\\x0f\\x03\\x0b\\x1d*\\x03\\x09\\x16$\\x03\\x090\\x11\\x03\" +\n\t\"\\x08\\x11\\x08\\x03\\x0a*(\\x03\\x0a\\x042\\x03\\x089,\\x03\\x074'\\x03\\x07\\x0f\\x05\" +\n\t\"\\x03\\x09\\x0b\\x0a\\x03\\x07\\x1b\\x01\\x03\\x09\\x17:\\x03\\x09.\\x0d\\x03\\x07.\\x11\" +\n\t\"\\x03\\x09+\\x15\\x03\\x080\\x13\\x03\\x0b\\x1f\\x19\\x03\\x0a \\x11\\x03\\x0a\\x220\\x03\" +\n\t\"\\x09\\x07;\\x03\\x08\\x16\\x1c\\x03\\x07,\\x13\\x03\\x07\\x0e/\\x03\\x06\\x221\\x03\\x0a\" +\n\t\".\\x0a\\x03\\x0a7\\x02\\x03\\x0a\\x032\\x03\\x0a\\x1d.\\x03\\x091\\x06\\x03\\x09\\x19:\" +\n\t\"\\x03\\x08\\x02/\\x03\\x060+\\x03\\x06\\x0f-\\x03\\x06\\x1c\\x1f\\x03\\x06\\x1d\\x07\\x03\" +\n\t\"\\x0a,\\x11\\x03\\x09=\\x0d\\x03\\x09\\x0b;\\x03\\x07\\x1b/\\x03\\x0a\\x1f:\\x03\\x09 \" +\n\t\"\\x1f\\x03\\x09.\\x10\\x03\\x094\\x0b\\x03\\x09\\x1a1\\x03\\x08#\\x1a\\x03\\x084\\x1d\" +\n\t\"\\x03\\x08\\x01\\x1f\\x03\\x08\\x11\\x22\\x03\\x07'8\\x03\\x07\\x1a>\\x03\\x0757\\x03\" +\n\t\"\\x06&9\\x03\\x06+\\x11\\x03\\x0a.\\x0b\\x03\\x0a,>\\x03\\x0a4#\\x03\\x08%\\x17\\x03\" +\n\t\"\\x07\\x05\\x22\\x03\\x07\\x0c\\x0b\\x03\\x0a\\x1d+\\x03\\x0a\\x19\\x16\\x03\\x09+\\x1f\" +\n\t\"\\x03\\x09\\x08\\x0b\\x03\\x08\\x16\\x18\\x03\\x08+\\x12\\x03\\x0b\\x1d\\x0c\\x03\\x0a=\" +\n\t\"\\x10\\x03\\x0a\\x09\\x0d\\x03\\x0a\\x10\\x11\\x03\\x09&0\\x03\\x08(\\x1f\\x03\\x087\\x07\" +\n\t\"\\x03\\x08\\x185\\x03\\x07'6\\x03\\x06.\\x05\\x03\\x06=\\x04\\x03\\x06;;\\x03\\x06\\x06,\" +\n\t\"\\x03\\x0b\\x18>\\x03\\x08\\x00\\x18\\x03\\x06 \\x03\\x03\\x06<\\x00\\x03\\x09%\\x18\\x03\" +\n\t\"\\x0b\\x1c<\\x03\\x0a%!\\x03\\x0a\\x09\\x12\\x03\\x0a\\x16\\x02\\x03\\x090'\\x03\\x09\" +\n\t\"\\x0e=\\x03\\x08 \\x0e\\x03\\x08>\\x03\\x03\\x074>\\x03\\x06&?\\x03\\x06\\x19\\x09\\x03\" +\n\t\"\\x06?(\\x03\\x0a-\\x0e\\x03\\x09:3\\x03\\x098:\\x03\\x09\\x12\\x0b\\x03\\x09\\x1d\\x17\" +\n\t\"\\x03\\x087\\x05\\x03\\x082\\x14\\x03\\x08\\x06%\\x03\\x08\\x13\\x1f\\x03\\x06\\x06\\x0e\" +\n\t\"\\x03\\x0a\\x22<\\x03\\x09/<\\x03\\x06>+\\x03\\x0a'?\\x03\\x0a\\x13\\x0c\\x03\\x09\\x10<\" +\n\t\"\\x03\\x07\\x1b=\\x03\\x0a\\x19\\x13\\x03\\x09\\x22\\x1d\\x03\\x09\\x07\\x0d\\x03\\x08)\" +\n\t\"\\x1c\\x03\\x06=\\x1a\\x03\\x0a/4\\x03\\x0a7\\x11\\x03\\x0a\\x16:\\x03\\x09?3\\x03\\x09:\" +\n\t\"/\\x03\\x09\\x05\\x0a\\x03\\x09\\x14\\x06\\x03\\x087\\x22\\x03\\x080\\x07\\x03\\x08\\x1a\" +\n\t\"\\x1f\\x03\\x07\\x04(\\x03\\x07\\x04\\x09\\x03\\x06 %\\x03\\x06<\\x08\\x03\\x0a+\\x14\" +\n\t\"\\x03\\x09\\x1d\\x16\\x03\\x0a70\\x03\\x08 >\\x03\\x0857\\x03\\x070\\x0a\\x03\\x06=\\x12\" +\n\t\"\\x03\\x06\\x16%\\x03\\x06\\x1d,\\x03\\x099#\\x03\\x09\\x10>\\x03\\x07 \\x1e\\x03\\x08\" +\n\t\"\\x0c<\\x03\\x08\\x0b\\x18\\x03\\x08\\x15+\\x03\\x08,:\\x03\\x08%\\x22\\x03\\x07\\x0a$\" +\n\t\"\\x03\\x0b\\x1c=\\x03\\x07+\\x08\\x03\\x0a/\\x05\\x03\\x0a \\x07\\x03\\x0a\\x12'\\x03\" +\n\t\"\\x09#\\x11\\x03\\x08\\x1b\\x15\\x03\\x0a\\x06\\x01\\x03\\x09\\x1c\\x1b\\x03\\x0922\\x03\" +\n\t\"\\x07\\x14<\\x03\\x07\\x09\\x04\\x03\\x061\\x04\\x03\\x07\\x0e\\x01\\x03\\x0a\\x13\\x18\" +\n\t\"\\x03\\x0a-\\x0c\\x03\\x0a?\\x0d\\x03\\x0a\\x09\\x0a\\x03\\x091&\\x03\\x0a/\\x0b\\x03\" +\n\t\"\\x08$<\\x03\\x083\\x1d\\x03\\x08\\x0c$\\x03\\x08\\x0d\\x07\\x03\\x08\\x0d?\\x03\\x08\" +\n\t\"\\x0e\\x14\\x03\\x065\\x0a\\x03\\x08\\x1a#\\x03\\x08\\x16#\\x03\\x0702\\x03\\x07\\x03\" +\n\t\"\\x1a\\x03\\x06(\\x1d\\x03\\x06+\\x1b\\x03\\x06\\x0b\\x05\\x03\\x06\\x0b\\x17\\x03\\x06\" +\n\t\"\\x0c\\x04\\x03\\x06\\x1e\\x19\\x03\\x06+0\\x03\\x062\\x18\\x03\\x0b\\x16\\x1e\\x03\\x0a+\" +\n\t\"\\x16\\x03\\x0a-?\\x03\\x0a#:\\x03\\x0a#\\x10\\x03\\x0a%$\\x03\\x0a>+\\x03\\x0a01\\x03\" +\n\t\"\\x0a1\\x10\\x03\\x0a\\x099\\x03\\x0a\\x0a\\x12\\x03\\x0a\\x19\\x1f\\x03\\x0a\\x19\\x12\" +\n\t\"\\x03\\x09*)\\x03\\x09-\\x16\\x03\\x09.1\\x03\\x09.2\\x03\\x09<\\x0e\\x03\\x09> \\x03\" +\n\t\"\\x093\\x12\\x03\\x09\\x0b\\x01\\x03\\x09\\x1c2\\x03\\x09\\x11\\x1c\\x03\\x09\\x15%\\x03\" +\n\t\"\\x08,&\\x03\\x08!\\x22\\x03\\x089(\\x03\\x08\\x0b\\x1a\\x03\\x08\\x0d2\\x03\\x08\\x0c\" +\n\t\"\\x04\\x03\\x08\\x0c\\x06\\x03\\x08\\x0c\\x1f\\x03\\x08\\x0c\\x0c\\x03\\x08\\x0f\\x1f\\x03\" +\n\t\"\\x08\\x0f\\x1d\\x03\\x08\\x00\\x14\\x03\\x08\\x03\\x14\\x03\\x08\\x06\\x16\\x03\\x08\\x1e\" +\n\t\"#\\x03\\x08\\x11\\x11\\x03\\x08\\x10\\x18\\x03\\x08\\x14(\\x03\\x07)\\x1e\\x03\\x07.1\" +\n\t\"\\x03\\x07 $\\x03\\x07 '\\x03\\x078\\x08\\x03\\x07\\x0d0\\x03\\x07\\x0f7\\x03\\x07\\x05#\" +\n\t\"\\x03\\x07\\x05\\x1a\\x03\\x07\\x1a7\\x03\\x07\\x1d-\\x03\\x07\\x17\\x10\\x03\\x06)\\x1f\" +\n\t\"\\x03\\x062\\x0b\\x03\\x066\\x16\\x03\\x06\\x09\\x11\\x03\\x09(\\x1e\\x03\\x07!5\\x03\" +\n\t\"\\x0b\\x11\\x16\\x03\\x0a/\\x04\\x03\\x0a,\\x1a\\x03\\x0b\\x173\\x03\\x0a,1\\x03\\x0a/5\" +\n\t\"\\x03\\x0a\\x221\\x03\\x0a\\x22\\x0d\\x03\\x0a?%\\x03\\x0a<,\\x03\\x0a?#\\x03\\x0a>\\x19\" +\n\t\"\\x03\\x0a\\x08&\\x03\\x0a\\x0b\\x0e\\x03\\x0a\\x0c:\\x03\\x0a\\x0c+\\x03\\x0a\\x03\\x22\" +\n\t\"\\x03\\x0a\\x06)\\x03\\x0a\\x11\\x10\\x03\\x0a\\x11\\x1a\\x03\\x0a\\x17-\\x03\\x0a\\x14(\" +\n\t\"\\x03\\x09)\\x1e\\x03\\x09/\\x09\\x03\\x09.\\x00\\x03\\x09,\\x07\\x03\\x09/*\\x03\\x09-9\" +\n\t\"\\x03\\x09\\x228\\x03\\x09%\\x09\\x03\\x09:\\x12\\x03\\x09;\\x1d\\x03\\x09?\\x06\\x03\" +\n\t\"\\x093%\\x03\\x096\\x05\\x03\\x096\\x08\\x03\\x097\\x02\\x03\\x09\\x07,\\x03\\x09\\x04,\" +\n\t\"\\x03\\x09\\x1f\\x16\\x03\\x09\\x11\\x03\\x03\\x09\\x11\\x12\\x03\\x09\\x168\\x03\\x08*\" +\n\t\"\\x05\\x03\\x08/2\\x03\\x084:\\x03\\x08\\x22+\\x03\\x08 0\\x03\\x08&\\x0a\\x03\\x08;\" +\n\t\"\\x10\\x03\\x08>$\\x03\\x08>\\x18\\x03\\x0829\\x03\\x082:\\x03\\x081,\\x03\\x081<\\x03\" +\n\t\"\\x081\\x1c\\x03\\x087#\\x03\\x087*\\x03\\x08\\x09'\\x03\\x08\\x00\\x1d\\x03\\x08\\x05-\" +\n\t\"\\x03\\x08\\x1f4\\x03\\x08\\x1d\\x04\\x03\\x08\\x16\\x0f\\x03\\x07*7\\x03\\x07'!\\x03\" +\n\t\"\\x07%\\x1b\\x03\\x077\\x0c\\x03\\x07\\x0c1\\x03\\x07\\x0c.\\x03\\x07\\x00\\x06\\x03\\x07\" +\n\t\"\\x01\\x02\\x03\\x07\\x010\\x03\\x07\\x06=\\x03\\x07\\x01\\x03\\x03\\x07\\x01\\x13\\x03\" +\n\t\"\\x07\\x06\\x06\\x03\\x07\\x05\\x0a\\x03\\x07\\x1f\\x09\\x03\\x07\\x17:\\x03\\x06*1\\x03\" +\n\t\"\\x06-\\x1d\\x03\\x06\\x223\\x03\\x062:\\x03\\x060$\\x03\\x066\\x1e\\x03\\x064\\x12\\x03\" +\n\t\"\\x0645\\x03\\x06\\x0b\\x00\\x03\\x06\\x0b7\\x03\\x06\\x07\\x1f\\x03\\x06\\x15\\x12\\x03\" +\n\t\"\\x0c\\x05\\x0f\\x03\\x0b+\\x0b\\x03\\x0b+-\\x03\\x06\\x16\\x1b\\x03\\x06\\x15\\x17\\x03\" +\n\t\"\\x89\\xca\\xea\\x03\\x89\\xca\\xe8\\x03\\x0c8\\x10\\x03\\x0c8\\x01\\x03\\x0c8\\x0f\\x03\" +\n\t\"\\x0d8%\\x03\\x0d8!\\x03\\x0c8-\\x03\\x0c8/\\x03\\x0c8+\\x03\\x0c87\\x03\\x0c85\\x03\" +\n\t\"\\x0c9\\x09\\x03\\x0c9\\x0d\\x03\\x0c9\\x0f\\x03\\x0c9\\x0b\\x03\\xcfu\\x0c\\x03\\xcfu\" +\n\t\"\\x0f\\x03\\xcfu\\x0e\\x03\\xcfu\\x09\\x03\\x0c9\\x10\\x03\\x0d9\\x0c\\x03\\xcf`;\\x03\" +\n\t\"\\xcf`>\\x03\\xcf`9\\x03\\xcf`8\\x03\\xcf`7\\x03\\xcf`*\\x03\\xcf`-\\x03\\xcf`,\\x03\" +\n\t\"\\x0d\\x1b\\x1a\\x03\\x0d\\x1b&\\x03\\x0c=.\\x03\\x0c=%\\x03\\x0c>\\x1e\\x03\\x0c>\\x14\" +\n\t\"\\x03\\x0c?\\x06\\x03\\x0c?\\x0b\\x03\\x0c?\\x0c\\x03\\x0c?\\x0d\\x03\\x0c?\\x02\\x03\" +\n\t\"\\x0c>\\x0f\\x03\\x0c>\\x08\\x03\\x0c>\\x09\\x03\\x0c>,\\x03\\x0c>\\x0c\\x03\\x0c?\\x13\" +\n\t\"\\x03\\x0c?\\x16\\x03\\x0c?\\x15\\x03\\x0c?\\x1c\\x03\\x0c?\\x1f\\x03\\x0c?\\x1d\\x03\" +\n\t\"\\x0c?\\x1a\\x03\\x0c?\\x17\\x03\\x0c?\\x08\\x03\\x0c?\\x09\\x03\\x0c?\\x0e\\x03\\x0c?\" +\n\t\"\\x04\\x03\\x0c?\\x05\\x03\\x0c<?\\x03\\x0c=\\x00\\x03\\x0c=\\x06\\x03\\x0c=\\x05\\x03\" +\n\t\"\\x0c=\\x0c\\x03\\x0c=\\x0f\\x03\\x0c=\\x0d\\x03\\x0c=\\x0b\\x03\\x0c=\\x07\\x03\\x0c=\" +\n\t\"\\x19\\x03\\x0c=\\x15\\x03\\x0c=\\x11\\x03\\x0c=1\\x03\\x0c=3\\x03\\x0c=0\\x03\\x0c=>\" +\n\t\"\\x03\\x0c=2\\x03\\x0c=6\\x03\\x0c<\\x07\\x03\\x0c<\\x05\\x03\\x0e:!\\x03\\x0e:#\\x03\" +\n\t\"\\x0e8\\x09\\x03\\x0e:&\\x03\\x0e8\\x0b\\x03\\x0e:$\\x03\\x0e:,\\x03\\x0e8\\x1a\\x03\" +\n\t\"\\x0e8\\x1e\\x03\\x0e:*\\x03\\x0e:7\\x03\\x0e:5\\x03\\x0e:;\\x03\\x0e:\\x15\\x03\\x0e:<\" +\n\t\"\\x03\\x0e:4\\x03\\x0e:'\\x03\\x0e:-\\x03\\x0e:%\\x03\\x0e:?\\x03\\x0e:=\\x03\\x0e:)\" +\n\t\"\\x03\\x0e:/\\x03\\xcfs'\\x03\\x0d=\\x0f\\x03\\x0d+*\\x03\\x0d99\\x03\\x0d9;\\x03\\x0d9\" +\n\t\"?\\x03\\x0d)\\x0d\\x03\\x0d(%\\x02\\x01\\x18\\x02\\x01(\\x02\\x01\\x1e\\x03\\x0f$!\\x03\" +\n\t\"\\x0f87\\x03\\x0f4\\x0e\\x03\\x0f5\\x1d\\x03\\x06'\\x03\\x03\\x0f\\x08\\x18\\x03\\x0f\" +\n\t\"\\x0d\\x1b\\x03\\x0e2=\\x03\\x0e;\\x08\\x03\\x0e:\\x0b\\x03\\x0e\\x06$\\x03\\x0e\\x0d)\" +\n\t\"\\x03\\x0e\\x16\\x1f\\x03\\x0e\\x16\\x1b\\x03\\x0d$\\x0a\\x03\\x05,\\x1d\\x03\\x0d. \\x03\" +\n\t\"\\x0d.#\\x03\\x0c(/\\x03\\x09%\\x02\\x03\\x0d90\\x03\\x0d\\x0e4\\x03\\x0d\\x0d\\x0f\\x03\" +\n\t\"\\x0c#\\x00\\x03\\x0c,\\x1e\\x03\\x0c2\\x0e\\x03\\x0c\\x01\\x17\\x03\\x0c\\x09:\\x03\\x0e\" +\n\t\"\\x173\\x03\\x0c\\x08\\x03\\x03\\x0c\\x11\\x07\\x03\\x0c\\x10\\x18\\x03\\x0c\\x1f\\x1c\" +\n\t\"\\x03\\x0c\\x19\\x0e\\x03\\x0c\\x1a\\x1f\\x03\\x0f0>\\x03\\x0b->\\x03\\x0b<+\\x03\\x0b8\" +\n\t\"\\x13\\x03\\x0b\\x043\\x03\\x0b\\x14\\x03\\x03\\x0b\\x16%\\x03\\x0d\\x22&\\x03\\x0b\\x1a\" +\n\t\"\\x1a\\x03\\x0b\\x1a\\x04\\x03\\x0a%9\\x03\\x0a&2\\x03\\x0a&0\\x03\\x0a!\\x1a\\x03\\x0a!\" +\n\t\"7\\x03\\x0a5\\x10\\x03\\x0a=4\\x03\\x0a?\\x0e\\x03\\x0a>\\x10\\x03\\x0a\\x00 \\x03\\x0a\" +\n\t\"\\x0f:\\x03\\x0a\\x0f9\\x03\\x0a\\x0b\\x0a\\x03\\x0a\\x17%\\x03\\x0a\\x1b-\\x03\\x09-\" +\n\t\"\\x1a\\x03\\x09,4\\x03\\x09.,\\x03\\x09)\\x09\\x03\\x096!\\x03\\x091\\x1f\\x03\\x093\" +\n\t\"\\x16\\x03\\x0c+\\x1f\\x03\\x098 \\x03\\x098=\\x03\\x0c(\\x1a\\x03\\x0c(\\x16\\x03\\x09\" +\n\t\"\\x0a+\\x03\\x09\\x16\\x12\\x03\\x09\\x13\\x0e\\x03\\x09\\x153\\x03\\x08)!\\x03\\x09\\x1a\" +\n\t\"\\x01\\x03\\x09\\x18\\x01\\x03\\x08%#\\x03\\x08>\\x22\\x03\\x08\\x05%\\x03\\x08\\x02*\" +\n\t\"\\x03\\x08\\x15;\\x03\\x08\\x1b7\\x03\\x0f\\x07\\x1d\\x03\\x0f\\x04\\x03\\x03\\x070\\x0c\" +\n\t\"\\x03\\x07;\\x0b\\x03\\x07\\x08\\x17\\x03\\x07\\x12\\x06\\x03\\x06/-\\x03\\x0671\\x03\" +\n\t\"\\x065+\\x03\\x06>7\\x03\\x06\\x049\\x03\\x05+\\x1e\\x03\\x05,\\x17\\x03\\x05 \\x1d\\x03\" +\n\t\"\\x05\\x22\\x05\\x03\\x050\\x1d\"\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *idnaTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn idnaValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = idnaIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *idnaTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn idnaValues[c0]\n\t}\n\ti := idnaIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *idnaTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn idnaValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = idnaIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *idnaTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn idnaValues[c0]\n\t}\n\ti := idnaIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// idnaTrie. Total size: 30196 bytes (29.49 KiB). Checksum: e2ae95a945f04016.\ntype idnaTrie struct{}\n\nfunc newIdnaTrie(i int) *idnaTrie {\n\treturn &idnaTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *idnaTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 126:\n\t\treturn uint16(idnaValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 126\n\t\treturn uint16(idnaSparse.lookup(n, b))\n\t}\n}\n\n// idnaValues: 128 blocks, 8192 entries, 16384 bytes\n// The third block is the zero block.\nvar idnaValues = [8192]uint16{\n\t// Block 0x0, offset 0x0\n\t0x00: 0x0080, 0x01: 0x0080, 0x02: 0x0080, 0x03: 0x0080, 0x04: 0x0080, 0x05: 0x0080,\n\t0x06: 0x0080, 0x07: 0x0080, 0x08: 0x0080, 0x09: 0x0080, 0x0a: 0x0080, 0x0b: 0x0080,\n\t0x0c: 0x0080, 0x0d: 0x0080, 0x0e: 0x0080, 0x0f: 0x0080, 0x10: 0x0080, 0x11: 0x0080,\n\t0x12: 0x0080, 0x13: 0x0080, 0x14: 0x0080, 0x15: 0x0080, 0x16: 0x0080, 0x17: 0x0080,\n\t0x18: 0x0080, 0x19: 0x0080, 0x1a: 0x0080, 0x1b: 0x0080, 0x1c: 0x0080, 0x1d: 0x0080,\n\t0x1e: 0x0080, 0x1f: 0x0080, 0x20: 0x0080, 0x21: 0x0080, 0x22: 0x0080, 0x23: 0x0080,\n\t0x24: 0x0080, 0x25: 0x0080, 0x26: 0x0080, 0x27: 0x0080, 0x28: 0x0080, 0x29: 0x0080,\n\t0x2a: 0x0080, 0x2b: 0x0080, 0x2c: 0x0080, 0x2d: 0x0008, 0x2e: 0x0008, 0x2f: 0x0080,\n\t0x30: 0x0008, 0x31: 0x0008, 0x32: 0x0008, 0x33: 0x0008, 0x34: 0x0008, 0x35: 0x0008,\n\t0x36: 0x0008, 0x37: 0x0008, 0x38: 0x0008, 0x39: 0x0008, 0x3a: 0x0080, 0x3b: 0x0080,\n\t0x3c: 0x0080, 0x3d: 0x0080, 0x3e: 0x0080, 0x3f: 0x0080,\n\t// Block 0x1, offset 0x40\n\t0x40: 0x0080, 0x41: 0xe105, 0x42: 0xe105, 0x43: 0xe105, 0x44: 0xe105, 0x45: 0xe105,\n\t0x46: 0xe105, 0x47: 0xe105, 0x48: 0xe105, 0x49: 0xe105, 0x4a: 0xe105, 0x4b: 0xe105,\n\t0x4c: 0xe105, 0x4d: 0xe105, 0x4e: 0xe105, 0x4f: 0xe105, 0x50: 0xe105, 0x51: 0xe105,\n\t0x52: 0xe105, 0x53: 0xe105, 0x54: 0xe105, 0x55: 0xe105, 0x56: 0xe105, 0x57: 0xe105,\n\t0x58: 0xe105, 0x59: 0xe105, 0x5a: 0xe105, 0x5b: 0x0080, 0x5c: 0x0080, 0x5d: 0x0080,\n\t0x5e: 0x0080, 0x5f: 0x0080, 0x60: 0x0080, 0x61: 0x0008, 0x62: 0x0008, 0x63: 0x0008,\n\t0x64: 0x0008, 0x65: 0x0008, 0x66: 0x0008, 0x67: 0x0008, 0x68: 0x0008, 0x69: 0x0008,\n\t0x6a: 0x0008, 0x6b: 0x0008, 0x6c: 0x0008, 0x6d: 0x0008, 0x6e: 0x0008, 0x6f: 0x0008,\n\t0x70: 0x0008, 0x71: 0x0008, 0x72: 0x0008, 0x73: 0x0008, 0x74: 0x0008, 0x75: 0x0008,\n\t0x76: 0x0008, 0x77: 0x0008, 0x78: 0x0008, 0x79: 0x0008, 0x7a: 0x0008, 0x7b: 0x0080,\n\t0x7c: 0x0080, 0x7d: 0x0080, 0x7e: 0x0080, 0x7f: 0x0080,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x0040, 0xc1: 0x0040, 0xc2: 0x0040, 0xc3: 0x0040, 0xc4: 0x0040, 0xc5: 0x0040,\n\t0xc6: 0x0040, 0xc7: 0x0040, 0xc8: 0x0040, 0xc9: 0x0040, 0xca: 0x0040, 0xcb: 0x0040,\n\t0xcc: 0x0040, 0xcd: 0x0040, 0xce: 0x0040, 0xcf: 0x0040, 0xd0: 0x0040, 0xd1: 0x0040,\n\t0xd2: 0x0040, 0xd3: 0x0040, 0xd4: 0x0040, 0xd5: 0x0040, 0xd6: 0x0040, 0xd7: 0x0040,\n\t0xd8: 0x0040, 0xd9: 0x0040, 0xda: 0x0040, 0xdb: 0x0040, 0xdc: 0x0040, 0xdd: 0x0040,\n\t0xde: 0x0040, 0xdf: 0x0040, 0xe0: 0x000a, 0xe1: 0x0018, 0xe2: 0x0018, 0xe3: 0x0018,\n\t0xe4: 0x0018, 0xe5: 0x0018, 0xe6: 0x0018, 0xe7: 0x0018, 0xe8: 0x0012, 0xe9: 0x0018,\n\t0xea: 0x0019, 0xeb: 0x0018, 0xec: 0x0018, 0xed: 0x03c0, 0xee: 0x0018, 0xef: 0x0022,\n\t0xf0: 0x0018, 0xf1: 0x0018, 0xf2: 0x0029, 0xf3: 0x0031, 0xf4: 0x003a, 0xf5: 0x0005,\n\t0xf6: 0x0018, 0xf7: 0x0008, 0xf8: 0x0042, 0xf9: 0x0049, 0xfa: 0x0051, 0xfb: 0x0018,\n\t0xfc: 0x0059, 0xfd: 0x0061, 0xfe: 0x0069, 0xff: 0x0018,\n\t// Block 0x4, offset 0x100\n\t0x100: 0xe00d, 0x101: 0x0008, 0x102: 0xe00d, 0x103: 0x0008, 0x104: 0xe00d, 0x105: 0x0008,\n\t0x106: 0xe00d, 0x107: 0x0008, 0x108: 0xe00d, 0x109: 0x0008, 0x10a: 0xe00d, 0x10b: 0x0008,\n\t0x10c: 0xe00d, 0x10d: 0x0008, 0x10e: 0xe00d, 0x10f: 0x0008, 0x110: 0xe00d, 0x111: 0x0008,\n\t0x112: 0xe00d, 0x113: 0x0008, 0x114: 0xe00d, 0x115: 0x0008, 0x116: 0xe00d, 0x117: 0x0008,\n\t0x118: 0xe00d, 0x119: 0x0008, 0x11a: 0xe00d, 0x11b: 0x0008, 0x11c: 0xe00d, 0x11d: 0x0008,\n\t0x11e: 0xe00d, 0x11f: 0x0008, 0x120: 0xe00d, 0x121: 0x0008, 0x122: 0xe00d, 0x123: 0x0008,\n\t0x124: 0xe00d, 0x125: 0x0008, 0x126: 0xe00d, 0x127: 0x0008, 0x128: 0xe00d, 0x129: 0x0008,\n\t0x12a: 0xe00d, 0x12b: 0x0008, 0x12c: 0xe00d, 0x12d: 0x0008, 0x12e: 0xe00d, 0x12f: 0x0008,\n\t0x130: 0x0071, 0x131: 0x0008, 0x132: 0x0035, 0x133: 0x004d, 0x134: 0xe00d, 0x135: 0x0008,\n\t0x136: 0xe00d, 0x137: 0x0008, 0x138: 0x0008, 0x139: 0xe01d, 0x13a: 0x0008, 0x13b: 0xe03d,\n\t0x13c: 0x0008, 0x13d: 0xe01d, 0x13e: 0x0008, 0x13f: 0x0079,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x0079, 0x141: 0xe01d, 0x142: 0x0008, 0x143: 0xe03d, 0x144: 0x0008, 0x145: 0xe01d,\n\t0x146: 0x0008, 0x147: 0xe07d, 0x148: 0x0008, 0x149: 0x0081, 0x14a: 0xe00d, 0x14b: 0x0008,\n\t0x14c: 0xe00d, 0x14d: 0x0008, 0x14e: 0xe00d, 0x14f: 0x0008, 0x150: 0xe00d, 0x151: 0x0008,\n\t0x152: 0xe00d, 0x153: 0x0008, 0x154: 0xe00d, 0x155: 0x0008, 0x156: 0xe00d, 0x157: 0x0008,\n\t0x158: 0xe00d, 0x159: 0x0008, 0x15a: 0xe00d, 0x15b: 0x0008, 0x15c: 0xe00d, 0x15d: 0x0008,\n\t0x15e: 0xe00d, 0x15f: 0x0008, 0x160: 0xe00d, 0x161: 0x0008, 0x162: 0xe00d, 0x163: 0x0008,\n\t0x164: 0xe00d, 0x165: 0x0008, 0x166: 0xe00d, 0x167: 0x0008, 0x168: 0xe00d, 0x169: 0x0008,\n\t0x16a: 0xe00d, 0x16b: 0x0008, 0x16c: 0xe00d, 0x16d: 0x0008, 0x16e: 0xe00d, 0x16f: 0x0008,\n\t0x170: 0xe00d, 0x171: 0x0008, 0x172: 0xe00d, 0x173: 0x0008, 0x174: 0xe00d, 0x175: 0x0008,\n\t0x176: 0xe00d, 0x177: 0x0008, 0x178: 0x0065, 0x179: 0xe01d, 0x17a: 0x0008, 0x17b: 0xe03d,\n\t0x17c: 0x0008, 0x17d: 0xe01d, 0x17e: 0x0008, 0x17f: 0x0089,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x0008, 0x181: 0x007d, 0x182: 0xe00d, 0x183: 0x0008, 0x184: 0xe00d, 0x185: 0x0008,\n\t0x186: 0x007d, 0x187: 0xe07d, 0x188: 0x0008, 0x189: 0x0095, 0x18a: 0x00ad, 0x18b: 0xe03d,\n\t0x18c: 0x0008, 0x18d: 0x0008, 0x18e: 0x00c5, 0x18f: 0x00dd, 0x190: 0x00f5, 0x191: 0xe01d,\n\t0x192: 0x0008, 0x193: 0x010d, 0x194: 0x0125, 0x195: 0x0008, 0x196: 0x013d, 0x197: 0x013d,\n\t0x198: 0xe00d, 0x199: 0x0008, 0x19a: 0x0008, 0x19b: 0x0008, 0x19c: 0x010d, 0x19d: 0x0155,\n\t0x19e: 0x0008, 0x19f: 0x016d, 0x1a0: 0xe00d, 0x1a1: 0x0008, 0x1a2: 0xe00d, 0x1a3: 0x0008,\n\t0x1a4: 0xe00d, 0x1a5: 0x0008, 0x1a6: 0x0185, 0x1a7: 0xe07d, 0x1a8: 0x0008, 0x1a9: 0x019d,\n\t0x1aa: 0x0008, 0x1ab: 0x0008, 0x1ac: 0xe00d, 0x1ad: 0x0008, 0x1ae: 0x0185, 0x1af: 0xe0fd,\n\t0x1b0: 0x0008, 0x1b1: 0x01b5, 0x1b2: 0x01cd, 0x1b3: 0xe03d, 0x1b4: 0x0008, 0x1b5: 0xe01d,\n\t0x1b6: 0x0008, 0x1b7: 0x01e5, 0x1b8: 0xe00d, 0x1b9: 0x0008, 0x1ba: 0x0008, 0x1bb: 0x0008,\n\t0x1bc: 0xe00d, 0x1bd: 0x0008, 0x1be: 0x0008, 0x1bf: 0x0008,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x0008, 0x1c1: 0x0008, 0x1c2: 0x0008, 0x1c3: 0x0008, 0x1c4: 0x0091, 0x1c5: 0x0091,\n\t0x1c6: 0x0091, 0x1c7: 0x01fd, 0x1c8: 0x0215, 0x1c9: 0x022d, 0x1ca: 0x0245, 0x1cb: 0x025d,\n\t0x1cc: 0x0275, 0x1cd: 0xe01d, 0x1ce: 0x0008, 0x1cf: 0xe0fd, 0x1d0: 0x0008, 0x1d1: 0xe01d,\n\t0x1d2: 0x0008, 0x1d3: 0xe03d, 0x1d4: 0x0008, 0x1d5: 0xe01d, 0x1d6: 0x0008, 0x1d7: 0xe07d,\n\t0x1d8: 0x0008, 0x1d9: 0xe01d, 0x1da: 0x0008, 0x1db: 0xe03d, 0x1dc: 0x0008, 0x1dd: 0x0008,\n\t0x1de: 0xe00d, 0x1df: 0x0008, 0x1e0: 0xe00d, 0x1e1: 0x0008, 0x1e2: 0xe00d, 0x1e3: 0x0008,\n\t0x1e4: 0xe00d, 0x1e5: 0x0008, 0x1e6: 0xe00d, 0x1e7: 0x0008, 0x1e8: 0xe00d, 0x1e9: 0x0008,\n\t0x1ea: 0xe00d, 0x1eb: 0x0008, 0x1ec: 0xe00d, 0x1ed: 0x0008, 0x1ee: 0xe00d, 0x1ef: 0x0008,\n\t0x1f0: 0x0008, 0x1f1: 0x028d, 0x1f2: 0x02a5, 0x1f3: 0x02bd, 0x1f4: 0xe00d, 0x1f5: 0x0008,\n\t0x1f6: 0x02d5, 0x1f7: 0x02ed, 0x1f8: 0xe00d, 0x1f9: 0x0008, 0x1fa: 0xe00d, 0x1fb: 0x0008,\n\t0x1fc: 0xe00d, 0x1fd: 0x0008, 0x1fe: 0xe00d, 0x1ff: 0x0008,\n\t// Block 0x8, offset 0x200\n\t0x200: 0xe00d, 0x201: 0x0008, 0x202: 0xe00d, 0x203: 0x0008, 0x204: 0xe00d, 0x205: 0x0008,\n\t0x206: 0xe00d, 0x207: 0x0008, 0x208: 0xe00d, 0x209: 0x0008, 0x20a: 0xe00d, 0x20b: 0x0008,\n\t0x20c: 0xe00d, 0x20d: 0x0008, 0x20e: 0xe00d, 0x20f: 0x0008, 0x210: 0xe00d, 0x211: 0x0008,\n\t0x212: 0xe00d, 0x213: 0x0008, 0x214: 0xe00d, 0x215: 0x0008, 0x216: 0xe00d, 0x217: 0x0008,\n\t0x218: 0xe00d, 0x219: 0x0008, 0x21a: 0xe00d, 0x21b: 0x0008, 0x21c: 0xe00d, 0x21d: 0x0008,\n\t0x21e: 0xe00d, 0x21f: 0x0008, 0x220: 0x0305, 0x221: 0x0008, 0x222: 0xe00d, 0x223: 0x0008,\n\t0x224: 0xe00d, 0x225: 0x0008, 0x226: 0xe00d, 0x227: 0x0008, 0x228: 0xe00d, 0x229: 0x0008,\n\t0x22a: 0xe00d, 0x22b: 0x0008, 0x22c: 0xe00d, 0x22d: 0x0008, 0x22e: 0xe00d, 0x22f: 0x0008,\n\t0x230: 0xe00d, 0x231: 0x0008, 0x232: 0xe00d, 0x233: 0x0008, 0x234: 0x0008, 0x235: 0x0008,\n\t0x236: 0x0008, 0x237: 0x0008, 0x238: 0x0008, 0x239: 0x0008, 0x23a: 0x0099, 0x23b: 0xe03d,\n\t0x23c: 0x0008, 0x23d: 0x031d, 0x23e: 0x00a1, 0x23f: 0x0008,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x0008, 0x241: 0x0008, 0x242: 0x0018, 0x243: 0x0018, 0x244: 0x0018, 0x245: 0x0018,\n\t0x246: 0x0008, 0x247: 0x0008, 0x248: 0x0008, 0x249: 0x0008, 0x24a: 0x0008, 0x24b: 0x0008,\n\t0x24c: 0x0008, 0x24d: 0x0008, 0x24e: 0x0008, 0x24f: 0x0008, 0x250: 0x0008, 0x251: 0x0008,\n\t0x252: 0x0018, 0x253: 0x0018, 0x254: 0x0018, 0x255: 0x0018, 0x256: 0x0018, 0x257: 0x0018,\n\t0x258: 0x00d2, 0x259: 0x00da, 0x25a: 0x00e2, 0x25b: 0x00ea, 0x25c: 0x00f2, 0x25d: 0x00fa,\n\t0x25e: 0x0018, 0x25f: 0x0018, 0x260: 0x03ad, 0x261: 0x0101, 0x262: 0x0089, 0x263: 0x0109,\n\t0x264: 0x03c5, 0x265: 0x0018, 0x266: 0x0018, 0x267: 0x0018, 0x268: 0x0018, 0x269: 0x0018,\n\t0x26a: 0x0018, 0x26b: 0x0018, 0x26c: 0x0008, 0x26d: 0x0018, 0x26e: 0x0008, 0x26f: 0x0018,\n\t0x270: 0x0018, 0x271: 0x0018, 0x272: 0x0018, 0x273: 0x0018, 0x274: 0x0018, 0x275: 0x0018,\n\t0x276: 0x0018, 0x277: 0x0018, 0x278: 0x0018, 0x279: 0x0018, 0x27a: 0x0018, 0x27b: 0x0018,\n\t0x27c: 0x0018, 0x27d: 0x0018, 0x27e: 0x0018, 0x27f: 0x0018,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x03dd, 0x281: 0x03dd, 0x282: 0x3308, 0x283: 0x03f5, 0x284: 0x0111, 0x285: 0x040d,\n\t0x286: 0x3308, 0x287: 0x3308, 0x288: 0x3308, 0x289: 0x3308, 0x28a: 0x3308, 0x28b: 0x3308,\n\t0x28c: 0x3308, 0x28d: 0x3308, 0x28e: 0x3308, 0x28f: 0x33c0, 0x290: 0x3308, 0x291: 0x3308,\n\t0x292: 0x3308, 0x293: 0x3308, 0x294: 0x3308, 0x295: 0x3308, 0x296: 0x3308, 0x297: 0x3308,\n\t0x298: 0x3308, 0x299: 0x3308, 0x29a: 0x3308, 0x29b: 0x3308, 0x29c: 0x3308, 0x29d: 0x3308,\n\t0x29e: 0x3308, 0x29f: 0x3308, 0x2a0: 0x3308, 0x2a1: 0x3308, 0x2a2: 0x3308, 0x2a3: 0x3308,\n\t0x2a4: 0x3308, 0x2a5: 0x3308, 0x2a6: 0x3308, 0x2a7: 0x3308, 0x2a8: 0x3308, 0x2a9: 0x3308,\n\t0x2aa: 0x3308, 0x2ab: 0x3308, 0x2ac: 0x3308, 0x2ad: 0x3308, 0x2ae: 0x3308, 0x2af: 0x3308,\n\t0x2b0: 0xe00d, 0x2b1: 0x0008, 0x2b2: 0xe00d, 0x2b3: 0x0008, 0x2b4: 0x0425, 0x2b5: 0x0008,\n\t0x2b6: 0xe00d, 0x2b7: 0x0008, 0x2b8: 0x0040, 0x2b9: 0x0040, 0x2ba: 0x011a, 0x2bb: 0x0008,\n\t0x2bc: 0x0008, 0x2bd: 0x0008, 0x2be: 0x0122, 0x2bf: 0x043d,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x0040, 0x2c1: 0x0040, 0x2c2: 0x0040, 0x2c3: 0x0040, 0x2c4: 0x003a, 0x2c5: 0x012a,\n\t0x2c6: 0xe155, 0x2c7: 0x0455, 0x2c8: 0xe12d, 0x2c9: 0xe13d, 0x2ca: 0xe12d, 0x2cb: 0x0040,\n\t0x2cc: 0x03dd, 0x2cd: 0x0040, 0x2ce: 0x046d, 0x2cf: 0x0485, 0x2d0: 0x0008, 0x2d1: 0xe105,\n\t0x2d2: 0xe105, 0x2d3: 0xe105, 0x2d4: 0xe105, 0x2d5: 0xe105, 0x2d6: 0xe105, 0x2d7: 0xe105,\n\t0x2d8: 0xe105, 0x2d9: 0xe105, 0x2da: 0xe105, 0x2db: 0xe105, 0x2dc: 0xe105, 0x2dd: 0xe105,\n\t0x2de: 0xe105, 0x2df: 0xe105, 0x2e0: 0x049d, 0x2e1: 0x049d, 0x2e2: 0x0040, 0x2e3: 0x049d,\n\t0x2e4: 0x049d, 0x2e5: 0x049d, 0x2e6: 0x049d, 0x2e7: 0x049d, 0x2e8: 0x049d, 0x2e9: 0x049d,\n\t0x2ea: 0x049d, 0x2eb: 0x049d, 0x2ec: 0x0008, 0x2ed: 0x0008, 0x2ee: 0x0008, 0x2ef: 0x0008,\n\t0x2f0: 0x0008, 0x2f1: 0x0008, 0x2f2: 0x0008, 0x2f3: 0x0008, 0x2f4: 0x0008, 0x2f5: 0x0008,\n\t0x2f6: 0x0008, 0x2f7: 0x0008, 0x2f8: 0x0008, 0x2f9: 0x0008, 0x2fa: 0x0008, 0x2fb: 0x0008,\n\t0x2fc: 0x0008, 0x2fd: 0x0008, 0x2fe: 0x0008, 0x2ff: 0x0008,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x0008, 0x301: 0x0008, 0x302: 0xe00f, 0x303: 0x0008, 0x304: 0x0008, 0x305: 0x0008,\n\t0x306: 0x0008, 0x307: 0x0008, 0x308: 0x0008, 0x309: 0x0008, 0x30a: 0x0008, 0x30b: 0x0008,\n\t0x30c: 0x0008, 0x30d: 0x0008, 0x30e: 0x0008, 0x30f: 0xe0c5, 0x310: 0x04b5, 0x311: 0x04cd,\n\t0x312: 0xe0bd, 0x313: 0xe0f5, 0x314: 0xe0fd, 0x315: 0xe09d, 0x316: 0xe0b5, 0x317: 0x0008,\n\t0x318: 0xe00d, 0x319: 0x0008, 0x31a: 0xe00d, 0x31b: 0x0008, 0x31c: 0xe00d, 0x31d: 0x0008,\n\t0x31e: 0xe00d, 0x31f: 0x0008, 0x320: 0xe00d, 0x321: 0x0008, 0x322: 0xe00d, 0x323: 0x0008,\n\t0x324: 0xe00d, 0x325: 0x0008, 0x326: 0xe00d, 0x327: 0x0008, 0x328: 0xe00d, 0x329: 0x0008,\n\t0x32a: 0xe00d, 0x32b: 0x0008, 0x32c: 0xe00d, 0x32d: 0x0008, 0x32e: 0xe00d, 0x32f: 0x0008,\n\t0x330: 0x04e5, 0x331: 0xe185, 0x332: 0xe18d, 0x333: 0x0008, 0x334: 0x04fd, 0x335: 0x03dd,\n\t0x336: 0x0018, 0x337: 0xe07d, 0x338: 0x0008, 0x339: 0xe1d5, 0x33a: 0xe00d, 0x33b: 0x0008,\n\t0x33c: 0x0008, 0x33d: 0x0515, 0x33e: 0x052d, 0x33f: 0x052d,\n\t// Block 0xd, offset 0x340\n\t0x340: 0x0008, 0x341: 0x0008, 0x342: 0x0008, 0x343: 0x0008, 0x344: 0x0008, 0x345: 0x0008,\n\t0x346: 0x0008, 0x347: 0x0008, 0x348: 0x0008, 0x349: 0x0008, 0x34a: 0x0008, 0x34b: 0x0008,\n\t0x34c: 0x0008, 0x34d: 0x0008, 0x34e: 0x0008, 0x34f: 0x0008, 0x350: 0x0008, 0x351: 0x0008,\n\t0x352: 0x0008, 0x353: 0x0008, 0x354: 0x0008, 0x355: 0x0008, 0x356: 0x0008, 0x357: 0x0008,\n\t0x358: 0x0008, 0x359: 0x0008, 0x35a: 0x0008, 0x35b: 0x0008, 0x35c: 0x0008, 0x35d: 0x0008,\n\t0x35e: 0x0008, 0x35f: 0x0008, 0x360: 0xe00d, 0x361: 0x0008, 0x362: 0xe00d, 0x363: 0x0008,\n\t0x364: 0xe00d, 0x365: 0x0008, 0x366: 0xe00d, 0x367: 0x0008, 0x368: 0xe00d, 0x369: 0x0008,\n\t0x36a: 0xe00d, 0x36b: 0x0008, 0x36c: 0xe00d, 0x36d: 0x0008, 0x36e: 0xe00d, 0x36f: 0x0008,\n\t0x370: 0xe00d, 0x371: 0x0008, 0x372: 0xe00d, 0x373: 0x0008, 0x374: 0xe00d, 0x375: 0x0008,\n\t0x376: 0xe00d, 0x377: 0x0008, 0x378: 0xe00d, 0x379: 0x0008, 0x37a: 0xe00d, 0x37b: 0x0008,\n\t0x37c: 0xe00d, 0x37d: 0x0008, 0x37e: 0xe00d, 0x37f: 0x0008,\n\t// Block 0xe, offset 0x380\n\t0x380: 0xe00d, 0x381: 0x0008, 0x382: 0x0018, 0x383: 0x3308, 0x384: 0x3308, 0x385: 0x3308,\n\t0x386: 0x3308, 0x387: 0x3308, 0x388: 0x3318, 0x389: 0x3318, 0x38a: 0xe00d, 0x38b: 0x0008,\n\t0x38c: 0xe00d, 0x38d: 0x0008, 0x38e: 0xe00d, 0x38f: 0x0008, 0x390: 0xe00d, 0x391: 0x0008,\n\t0x392: 0xe00d, 0x393: 0x0008, 0x394: 0xe00d, 0x395: 0x0008, 0x396: 0xe00d, 0x397: 0x0008,\n\t0x398: 0xe00d, 0x399: 0x0008, 0x39a: 0xe00d, 0x39b: 0x0008, 0x39c: 0xe00d, 0x39d: 0x0008,\n\t0x39e: 0xe00d, 0x39f: 0x0008, 0x3a0: 0xe00d, 0x3a1: 0x0008, 0x3a2: 0xe00d, 0x3a3: 0x0008,\n\t0x3a4: 0xe00d, 0x3a5: 0x0008, 0x3a6: 0xe00d, 0x3a7: 0x0008, 0x3a8: 0xe00d, 0x3a9: 0x0008,\n\t0x3aa: 0xe00d, 0x3ab: 0x0008, 0x3ac: 0xe00d, 0x3ad: 0x0008, 0x3ae: 0xe00d, 0x3af: 0x0008,\n\t0x3b0: 0xe00d, 0x3b1: 0x0008, 0x3b2: 0xe00d, 0x3b3: 0x0008, 0x3b4: 0xe00d, 0x3b5: 0x0008,\n\t0x3b6: 0xe00d, 0x3b7: 0x0008, 0x3b8: 0xe00d, 0x3b9: 0x0008, 0x3ba: 0xe00d, 0x3bb: 0x0008,\n\t0x3bc: 0xe00d, 0x3bd: 0x0008, 0x3be: 0xe00d, 0x3bf: 0x0008,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x0040, 0x3c1: 0xe01d, 0x3c2: 0x0008, 0x3c3: 0xe03d, 0x3c4: 0x0008, 0x3c5: 0xe01d,\n\t0x3c6: 0x0008, 0x3c7: 0xe07d, 0x3c8: 0x0008, 0x3c9: 0xe01d, 0x3ca: 0x0008, 0x3cb: 0xe03d,\n\t0x3cc: 0x0008, 0x3cd: 0xe01d, 0x3ce: 0x0008, 0x3cf: 0x0008, 0x3d0: 0xe00d, 0x3d1: 0x0008,\n\t0x3d2: 0xe00d, 0x3d3: 0x0008, 0x3d4: 0xe00d, 0x3d5: 0x0008, 0x3d6: 0xe00d, 0x3d7: 0x0008,\n\t0x3d8: 0xe00d, 0x3d9: 0x0008, 0x3da: 0xe00d, 0x3db: 0x0008, 0x3dc: 0xe00d, 0x3dd: 0x0008,\n\t0x3de: 0xe00d, 0x3df: 0x0008, 0x3e0: 0xe00d, 0x3e1: 0x0008, 0x3e2: 0xe00d, 0x3e3: 0x0008,\n\t0x3e4: 0xe00d, 0x3e5: 0x0008, 0x3e6: 0xe00d, 0x3e7: 0x0008, 0x3e8: 0xe00d, 0x3e9: 0x0008,\n\t0x3ea: 0xe00d, 0x3eb: 0x0008, 0x3ec: 0xe00d, 0x3ed: 0x0008, 0x3ee: 0xe00d, 0x3ef: 0x0008,\n\t0x3f0: 0xe00d, 0x3f1: 0x0008, 0x3f2: 0xe00d, 0x3f3: 0x0008, 0x3f4: 0xe00d, 0x3f5: 0x0008,\n\t0x3f6: 0xe00d, 0x3f7: 0x0008, 0x3f8: 0xe00d, 0x3f9: 0x0008, 0x3fa: 0xe00d, 0x3fb: 0x0008,\n\t0x3fc: 0xe00d, 0x3fd: 0x0008, 0x3fe: 0xe00d, 0x3ff: 0x0008,\n\t// Block 0x10, offset 0x400\n\t0x400: 0xe00d, 0x401: 0x0008, 0x402: 0xe00d, 0x403: 0x0008, 0x404: 0xe00d, 0x405: 0x0008,\n\t0x406: 0xe00d, 0x407: 0x0008, 0x408: 0xe00d, 0x409: 0x0008, 0x40a: 0xe00d, 0x40b: 0x0008,\n\t0x40c: 0xe00d, 0x40d: 0x0008, 0x40e: 0xe00d, 0x40f: 0x0008, 0x410: 0xe00d, 0x411: 0x0008,\n\t0x412: 0xe00d, 0x413: 0x0008, 0x414: 0xe00d, 0x415: 0x0008, 0x416: 0xe00d, 0x417: 0x0008,\n\t0x418: 0xe00d, 0x419: 0x0008, 0x41a: 0xe00d, 0x41b: 0x0008, 0x41c: 0xe00d, 0x41d: 0x0008,\n\t0x41e: 0xe00d, 0x41f: 0x0008, 0x420: 0xe00d, 0x421: 0x0008, 0x422: 0xe00d, 0x423: 0x0008,\n\t0x424: 0xe00d, 0x425: 0x0008, 0x426: 0xe00d, 0x427: 0x0008, 0x428: 0xe00d, 0x429: 0x0008,\n\t0x42a: 0xe00d, 0x42b: 0x0008, 0x42c: 0xe00d, 0x42d: 0x0008, 0x42e: 0xe00d, 0x42f: 0x0008,\n\t0x430: 0x0040, 0x431: 0x03f5, 0x432: 0x03f5, 0x433: 0x03f5, 0x434: 0x03f5, 0x435: 0x03f5,\n\t0x436: 0x03f5, 0x437: 0x03f5, 0x438: 0x03f5, 0x439: 0x03f5, 0x43a: 0x03f5, 0x43b: 0x03f5,\n\t0x43c: 0x03f5, 0x43d: 0x03f5, 0x43e: 0x03f5, 0x43f: 0x03f5,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x0840, 0x441: 0x0840, 0x442: 0x0840, 0x443: 0x0840, 0x444: 0x0840, 0x445: 0x0840,\n\t0x446: 0x0018, 0x447: 0x0018, 0x448: 0x0818, 0x449: 0x0018, 0x44a: 0x0018, 0x44b: 0x0818,\n\t0x44c: 0x0018, 0x44d: 0x0818, 0x44e: 0x0018, 0x44f: 0x0018, 0x450: 0x3308, 0x451: 0x3308,\n\t0x452: 0x3308, 0x453: 0x3308, 0x454: 0x3308, 0x455: 0x3308, 0x456: 0x3308, 0x457: 0x3308,\n\t0x458: 0x3308, 0x459: 0x3308, 0x45a: 0x3308, 0x45b: 0x0818, 0x45c: 0x0b40, 0x45d: 0x0040,\n\t0x45e: 0x0818, 0x45f: 0x0818, 0x460: 0x0a08, 0x461: 0x0808, 0x462: 0x0c08, 0x463: 0x0c08,\n\t0x464: 0x0c08, 0x465: 0x0c08, 0x466: 0x0a08, 0x467: 0x0c08, 0x468: 0x0a08, 0x469: 0x0c08,\n\t0x46a: 0x0a08, 0x46b: 0x0a08, 0x46c: 0x0a08, 0x46d: 0x0a08, 0x46e: 0x0a08, 0x46f: 0x0c08,\n\t0x470: 0x0c08, 0x471: 0x0c08, 0x472: 0x0c08, 0x473: 0x0a08, 0x474: 0x0a08, 0x475: 0x0a08,\n\t0x476: 0x0a08, 0x477: 0x0a08, 0x478: 0x0a08, 0x479: 0x0a08, 0x47a: 0x0a08, 0x47b: 0x0a08,\n\t0x47c: 0x0a08, 0x47d: 0x0a08, 0x47e: 0x0a08, 0x47f: 0x0a08,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x0818, 0x481: 0x0a08, 0x482: 0x0a08, 0x483: 0x0a08, 0x484: 0x0a08, 0x485: 0x0a08,\n\t0x486: 0x0a08, 0x487: 0x0a08, 0x488: 0x0c08, 0x489: 0x0a08, 0x48a: 0x0a08, 0x48b: 0x3308,\n\t0x48c: 0x3308, 0x48d: 0x3308, 0x48e: 0x3308, 0x48f: 0x3308, 0x490: 0x3308, 0x491: 0x3308,\n\t0x492: 0x3308, 0x493: 0x3308, 0x494: 0x3308, 0x495: 0x3308, 0x496: 0x3308, 0x497: 0x3308,\n\t0x498: 0x3308, 0x499: 0x3308, 0x49a: 0x3308, 0x49b: 0x3308, 0x49c: 0x3308, 0x49d: 0x3308,\n\t0x49e: 0x3308, 0x49f: 0x3308, 0x4a0: 0x0808, 0x4a1: 0x0808, 0x4a2: 0x0808, 0x4a3: 0x0808,\n\t0x4a4: 0x0808, 0x4a5: 0x0808, 0x4a6: 0x0808, 0x4a7: 0x0808, 0x4a8: 0x0808, 0x4a9: 0x0808,\n\t0x4aa: 0x0018, 0x4ab: 0x0818, 0x4ac: 0x0818, 0x4ad: 0x0818, 0x4ae: 0x0a08, 0x4af: 0x0a08,\n\t0x4b0: 0x3308, 0x4b1: 0x0c08, 0x4b2: 0x0c08, 0x4b3: 0x0c08, 0x4b4: 0x0808, 0x4b5: 0x0139,\n\t0x4b6: 0x0141, 0x4b7: 0x0149, 0x4b8: 0x0151, 0x4b9: 0x0a08, 0x4ba: 0x0a08, 0x4bb: 0x0a08,\n\t0x4bc: 0x0a08, 0x4bd: 0x0a08, 0x4be: 0x0a08, 0x4bf: 0x0a08,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x0c08, 0x4c1: 0x0a08, 0x4c2: 0x0a08, 0x4c3: 0x0c08, 0x4c4: 0x0c08, 0x4c5: 0x0c08,\n\t0x4c6: 0x0c08, 0x4c7: 0x0c08, 0x4c8: 0x0c08, 0x4c9: 0x0c08, 0x4ca: 0x0c08, 0x4cb: 0x0c08,\n\t0x4cc: 0x0a08, 0x4cd: 0x0c08, 0x4ce: 0x0a08, 0x4cf: 0x0c08, 0x4d0: 0x0a08, 0x4d1: 0x0a08,\n\t0x4d2: 0x0c08, 0x4d3: 0x0c08, 0x4d4: 0x0818, 0x4d5: 0x0c08, 0x4d6: 0x3308, 0x4d7: 0x3308,\n\t0x4d8: 0x3308, 0x4d9: 0x3308, 0x4da: 0x3308, 0x4db: 0x3308, 0x4dc: 0x3308, 0x4dd: 0x0840,\n\t0x4de: 0x0018, 0x4df: 0x3308, 0x4e0: 0x3308, 0x4e1: 0x3308, 0x4e2: 0x3308, 0x4e3: 0x3308,\n\t0x4e4: 0x3308, 0x4e5: 0x0808, 0x4e6: 0x0808, 0x4e7: 0x3308, 0x4e8: 0x3308, 0x4e9: 0x0018,\n\t0x4ea: 0x3308, 0x4eb: 0x3308, 0x4ec: 0x3308, 0x4ed: 0x3308, 0x4ee: 0x0c08, 0x4ef: 0x0c08,\n\t0x4f0: 0x0008, 0x4f1: 0x0008, 0x4f2: 0x0008, 0x4f3: 0x0008, 0x4f4: 0x0008, 0x4f5: 0x0008,\n\t0x4f6: 0x0008, 0x4f7: 0x0008, 0x4f8: 0x0008, 0x4f9: 0x0008, 0x4fa: 0x0a08, 0x4fb: 0x0a08,\n\t0x4fc: 0x0a08, 0x4fd: 0x0808, 0x4fe: 0x0808, 0x4ff: 0x0a08,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x0818, 0x501: 0x0818, 0x502: 0x0818, 0x503: 0x0818, 0x504: 0x0818, 0x505: 0x0818,\n\t0x506: 0x0818, 0x507: 0x0818, 0x508: 0x0818, 0x509: 0x0818, 0x50a: 0x0818, 0x50b: 0x0818,\n\t0x50c: 0x0818, 0x50d: 0x0818, 0x50e: 0x0040, 0x50f: 0x0b40, 0x510: 0x0c08, 0x511: 0x3308,\n\t0x512: 0x0a08, 0x513: 0x0a08, 0x514: 0x0a08, 0x515: 0x0c08, 0x516: 0x0c08, 0x517: 0x0c08,\n\t0x518: 0x0c08, 0x519: 0x0c08, 0x51a: 0x0a08, 0x51b: 0x0a08, 0x51c: 0x0a08, 0x51d: 0x0a08,\n\t0x51e: 0x0c08, 0x51f: 0x0a08, 0x520: 0x0a08, 0x521: 0x0a08, 0x522: 0x0a08, 0x523: 0x0a08,\n\t0x524: 0x0a08, 0x525: 0x0a08, 0x526: 0x0a08, 0x527: 0x0a08, 0x528: 0x0c08, 0x529: 0x0a08,\n\t0x52a: 0x0c08, 0x52b: 0x0a08, 0x52c: 0x0c08, 0x52d: 0x0a08, 0x52e: 0x0a08, 0x52f: 0x0c08,\n\t0x530: 0x3308, 0x531: 0x3308, 0x532: 0x3308, 0x533: 0x3308, 0x534: 0x3308, 0x535: 0x3308,\n\t0x536: 0x3308, 0x537: 0x3308, 0x538: 0x3308, 0x539: 0x3308, 0x53a: 0x3308, 0x53b: 0x3308,\n\t0x53c: 0x3308, 0x53d: 0x3308, 0x53e: 0x3308, 0x53f: 0x3308,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x0c08, 0x541: 0x0a08, 0x542: 0x0a08, 0x543: 0x0a08, 0x544: 0x0a08, 0x545: 0x0a08,\n\t0x546: 0x0c08, 0x547: 0x0c08, 0x548: 0x0a08, 0x549: 0x0c08, 0x54a: 0x0a08, 0x54b: 0x0a08,\n\t0x54c: 0x0a08, 0x54d: 0x0a08, 0x54e: 0x0a08, 0x54f: 0x0a08, 0x550: 0x0a08, 0x551: 0x0a08,\n\t0x552: 0x0a08, 0x553: 0x0a08, 0x554: 0x0c08, 0x555: 0x0a08, 0x556: 0x0c08, 0x557: 0x0c08,\n\t0x558: 0x0c08, 0x559: 0x3308, 0x55a: 0x3308, 0x55b: 0x3308, 0x55c: 0x0040, 0x55d: 0x0040,\n\t0x55e: 0x0818, 0x55f: 0x0040, 0x560: 0x0a08, 0x561: 0x0808, 0x562: 0x0a08, 0x563: 0x0a08,\n\t0x564: 0x0a08, 0x565: 0x0a08, 0x566: 0x0808, 0x567: 0x0c08, 0x568: 0x0a08, 0x569: 0x0c08,\n\t0x56a: 0x0c08, 0x56b: 0x0040, 0x56c: 0x0040, 0x56d: 0x0040, 0x56e: 0x0040, 0x56f: 0x0040,\n\t0x570: 0x0040, 0x571: 0x0040, 0x572: 0x0040, 0x573: 0x0040, 0x574: 0x0040, 0x575: 0x0040,\n\t0x576: 0x0040, 0x577: 0x0040, 0x578: 0x0040, 0x579: 0x0040, 0x57a: 0x0040, 0x57b: 0x0040,\n\t0x57c: 0x0040, 0x57d: 0x0040, 0x57e: 0x0040, 0x57f: 0x0040,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x3008, 0x581: 0x3308, 0x582: 0x3308, 0x583: 0x3308, 0x584: 0x3308, 0x585: 0x3308,\n\t0x586: 0x3308, 0x587: 0x3308, 0x588: 0x3308, 0x589: 0x3008, 0x58a: 0x3008, 0x58b: 0x3008,\n\t0x58c: 0x3008, 0x58d: 0x3b08, 0x58e: 0x3008, 0x58f: 0x3008, 0x590: 0x0008, 0x591: 0x3308,\n\t0x592: 0x3308, 0x593: 0x3308, 0x594: 0x3308, 0x595: 0x3308, 0x596: 0x3308, 0x597: 0x3308,\n\t0x598: 0x0159, 0x599: 0x0161, 0x59a: 0x0169, 0x59b: 0x0171, 0x59c: 0x0179, 0x59d: 0x0181,\n\t0x59e: 0x0189, 0x59f: 0x0191, 0x5a0: 0x0008, 0x5a1: 0x0008, 0x5a2: 0x3308, 0x5a3: 0x3308,\n\t0x5a4: 0x0018, 0x5a5: 0x0018, 0x5a6: 0x0008, 0x5a7: 0x0008, 0x5a8: 0x0008, 0x5a9: 0x0008,\n\t0x5aa: 0x0008, 0x5ab: 0x0008, 0x5ac: 0x0008, 0x5ad: 0x0008, 0x5ae: 0x0008, 0x5af: 0x0008,\n\t0x5b0: 0x0018, 0x5b1: 0x0008, 0x5b2: 0x0008, 0x5b3: 0x0008, 0x5b4: 0x0008, 0x5b5: 0x0008,\n\t0x5b6: 0x0008, 0x5b7: 0x0008, 0x5b8: 0x0008, 0x5b9: 0x0008, 0x5ba: 0x0008, 0x5bb: 0x0008,\n\t0x5bc: 0x0008, 0x5bd: 0x0008, 0x5be: 0x0008, 0x5bf: 0x0008,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x0008, 0x5c1: 0x3308, 0x5c2: 0x3008, 0x5c3: 0x3008, 0x5c4: 0x0040, 0x5c5: 0x0008,\n\t0x5c6: 0x0008, 0x5c7: 0x0008, 0x5c8: 0x0008, 0x5c9: 0x0008, 0x5ca: 0x0008, 0x5cb: 0x0008,\n\t0x5cc: 0x0008, 0x5cd: 0x0040, 0x5ce: 0x0040, 0x5cf: 0x0008, 0x5d0: 0x0008, 0x5d1: 0x0040,\n\t0x5d2: 0x0040, 0x5d3: 0x0008, 0x5d4: 0x0008, 0x5d5: 0x0008, 0x5d6: 0x0008, 0x5d7: 0x0008,\n\t0x5d8: 0x0008, 0x5d9: 0x0008, 0x5da: 0x0008, 0x5db: 0x0008, 0x5dc: 0x0008, 0x5dd: 0x0008,\n\t0x5de: 0x0008, 0x5df: 0x0008, 0x5e0: 0x0008, 0x5e1: 0x0008, 0x5e2: 0x0008, 0x5e3: 0x0008,\n\t0x5e4: 0x0008, 0x5e5: 0x0008, 0x5e6: 0x0008, 0x5e7: 0x0008, 0x5e8: 0x0008, 0x5e9: 0x0040,\n\t0x5ea: 0x0008, 0x5eb: 0x0008, 0x5ec: 0x0008, 0x5ed: 0x0008, 0x5ee: 0x0008, 0x5ef: 0x0008,\n\t0x5f0: 0x0008, 0x5f1: 0x0040, 0x5f2: 0x0008, 0x5f3: 0x0040, 0x5f4: 0x0040, 0x5f5: 0x0040,\n\t0x5f6: 0x0008, 0x5f7: 0x0008, 0x5f8: 0x0008, 0x5f9: 0x0008, 0x5fa: 0x0040, 0x5fb: 0x0040,\n\t0x5fc: 0x3308, 0x5fd: 0x0008, 0x5fe: 0x3008, 0x5ff: 0x3008,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x3008, 0x601: 0x3308, 0x602: 0x3308, 0x603: 0x3308, 0x604: 0x3308, 0x605: 0x0040,\n\t0x606: 0x0040, 0x607: 0x3008, 0x608: 0x3008, 0x609: 0x0040, 0x60a: 0x0040, 0x60b: 0x3008,\n\t0x60c: 0x3008, 0x60d: 0x3b08, 0x60e: 0x0008, 0x60f: 0x0040, 0x610: 0x0040, 0x611: 0x0040,\n\t0x612: 0x0040, 0x613: 0x0040, 0x614: 0x0040, 0x615: 0x0040, 0x616: 0x0040, 0x617: 0x3008,\n\t0x618: 0x0040, 0x619: 0x0040, 0x61a: 0x0040, 0x61b: 0x0040, 0x61c: 0x0199, 0x61d: 0x01a1,\n\t0x61e: 0x0040, 0x61f: 0x01a9, 0x620: 0x0008, 0x621: 0x0008, 0x622: 0x3308, 0x623: 0x3308,\n\t0x624: 0x0040, 0x625: 0x0040, 0x626: 0x0008, 0x627: 0x0008, 0x628: 0x0008, 0x629: 0x0008,\n\t0x62a: 0x0008, 0x62b: 0x0008, 0x62c: 0x0008, 0x62d: 0x0008, 0x62e: 0x0008, 0x62f: 0x0008,\n\t0x630: 0x0008, 0x631: 0x0008, 0x632: 0x0018, 0x633: 0x0018, 0x634: 0x0018, 0x635: 0x0018,\n\t0x636: 0x0018, 0x637: 0x0018, 0x638: 0x0018, 0x639: 0x0018, 0x63a: 0x0018, 0x63b: 0x0018,\n\t0x63c: 0x0008, 0x63d: 0x0018, 0x63e: 0x3308, 0x63f: 0x0040,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x0040, 0x641: 0x3308, 0x642: 0x3308, 0x643: 0x3008, 0x644: 0x0040, 0x645: 0x0008,\n\t0x646: 0x0008, 0x647: 0x0008, 0x648: 0x0008, 0x649: 0x0008, 0x64a: 0x0008, 0x64b: 0x0040,\n\t0x64c: 0x0040, 0x64d: 0x0040, 0x64e: 0x0040, 0x64f: 0x0008, 0x650: 0x0008, 0x651: 0x0040,\n\t0x652: 0x0040, 0x653: 0x0008, 0x654: 0x0008, 0x655: 0x0008, 0x656: 0x0008, 0x657: 0x0008,\n\t0x658: 0x0008, 0x659: 0x0008, 0x65a: 0x0008, 0x65b: 0x0008, 0x65c: 0x0008, 0x65d: 0x0008,\n\t0x65e: 0x0008, 0x65f: 0x0008, 0x660: 0x0008, 0x661: 0x0008, 0x662: 0x0008, 0x663: 0x0008,\n\t0x664: 0x0008, 0x665: 0x0008, 0x666: 0x0008, 0x667: 0x0008, 0x668: 0x0008, 0x669: 0x0040,\n\t0x66a: 0x0008, 0x66b: 0x0008, 0x66c: 0x0008, 0x66d: 0x0008, 0x66e: 0x0008, 0x66f: 0x0008,\n\t0x670: 0x0008, 0x671: 0x0040, 0x672: 0x0008, 0x673: 0x01b1, 0x674: 0x0040, 0x675: 0x0008,\n\t0x676: 0x01b9, 0x677: 0x0040, 0x678: 0x0008, 0x679: 0x0008, 0x67a: 0x0040, 0x67b: 0x0040,\n\t0x67c: 0x3308, 0x67d: 0x0040, 0x67e: 0x3008, 0x67f: 0x3008,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x3008, 0x681: 0x3308, 0x682: 0x3308, 0x683: 0x0040, 0x684: 0x0040, 0x685: 0x0040,\n\t0x686: 0x0040, 0x687: 0x3308, 0x688: 0x3308, 0x689: 0x0040, 0x68a: 0x0040, 0x68b: 0x3308,\n\t0x68c: 0x3308, 0x68d: 0x3b08, 0x68e: 0x0040, 0x68f: 0x0040, 0x690: 0x0040, 0x691: 0x3308,\n\t0x692: 0x0040, 0x693: 0x0040, 0x694: 0x0040, 0x695: 0x0040, 0x696: 0x0040, 0x697: 0x0040,\n\t0x698: 0x0040, 0x699: 0x01c1, 0x69a: 0x01c9, 0x69b: 0x01d1, 0x69c: 0x0008, 0x69d: 0x0040,\n\t0x69e: 0x01d9, 0x69f: 0x0040, 0x6a0: 0x0040, 0x6a1: 0x0040, 0x6a2: 0x0040, 0x6a3: 0x0040,\n\t0x6a4: 0x0040, 0x6a5: 0x0040, 0x6a6: 0x0008, 0x6a7: 0x0008, 0x6a8: 0x0008, 0x6a9: 0x0008,\n\t0x6aa: 0x0008, 0x6ab: 0x0008, 0x6ac: 0x0008, 0x6ad: 0x0008, 0x6ae: 0x0008, 0x6af: 0x0008,\n\t0x6b0: 0x3308, 0x6b1: 0x3308, 0x6b2: 0x0008, 0x6b3: 0x0008, 0x6b4: 0x0008, 0x6b5: 0x3308,\n\t0x6b6: 0x0018, 0x6b7: 0x0040, 0x6b8: 0x0040, 0x6b9: 0x0040, 0x6ba: 0x0040, 0x6bb: 0x0040,\n\t0x6bc: 0x0040, 0x6bd: 0x0040, 0x6be: 0x0040, 0x6bf: 0x0040,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x0040, 0x6c1: 0x3308, 0x6c2: 0x3308, 0x6c3: 0x3008, 0x6c4: 0x0040, 0x6c5: 0x0008,\n\t0x6c6: 0x0008, 0x6c7: 0x0008, 0x6c8: 0x0008, 0x6c9: 0x0008, 0x6ca: 0x0008, 0x6cb: 0x0008,\n\t0x6cc: 0x0008, 0x6cd: 0x0008, 0x6ce: 0x0040, 0x6cf: 0x0008, 0x6d0: 0x0008, 0x6d1: 0x0008,\n\t0x6d2: 0x0040, 0x6d3: 0x0008, 0x6d4: 0x0008, 0x6d5: 0x0008, 0x6d6: 0x0008, 0x6d7: 0x0008,\n\t0x6d8: 0x0008, 0x6d9: 0x0008, 0x6da: 0x0008, 0x6db: 0x0008, 0x6dc: 0x0008, 0x6dd: 0x0008,\n\t0x6de: 0x0008, 0x6df: 0x0008, 0x6e0: 0x0008, 0x6e1: 0x0008, 0x6e2: 0x0008, 0x6e3: 0x0008,\n\t0x6e4: 0x0008, 0x6e5: 0x0008, 0x6e6: 0x0008, 0x6e7: 0x0008, 0x6e8: 0x0008, 0x6e9: 0x0040,\n\t0x6ea: 0x0008, 0x6eb: 0x0008, 0x6ec: 0x0008, 0x6ed: 0x0008, 0x6ee: 0x0008, 0x6ef: 0x0008,\n\t0x6f0: 0x0008, 0x6f1: 0x0040, 0x6f2: 0x0008, 0x6f3: 0x0008, 0x6f4: 0x0040, 0x6f5: 0x0008,\n\t0x6f6: 0x0008, 0x6f7: 0x0008, 0x6f8: 0x0008, 0x6f9: 0x0008, 0x6fa: 0x0040, 0x6fb: 0x0040,\n\t0x6fc: 0x3308, 0x6fd: 0x0008, 0x6fe: 0x3008, 0x6ff: 0x3008,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x3008, 0x701: 0x3308, 0x702: 0x3308, 0x703: 0x3308, 0x704: 0x3308, 0x705: 0x3308,\n\t0x706: 0x0040, 0x707: 0x3308, 0x708: 0x3308, 0x709: 0x3008, 0x70a: 0x0040, 0x70b: 0x3008,\n\t0x70c: 0x3008, 0x70d: 0x3b08, 0x70e: 0x0040, 0x70f: 0x0040, 0x710: 0x0008, 0x711: 0x0040,\n\t0x712: 0x0040, 0x713: 0x0040, 0x714: 0x0040, 0x715: 0x0040, 0x716: 0x0040, 0x717: 0x0040,\n\t0x718: 0x0040, 0x719: 0x0040, 0x71a: 0x0040, 0x71b: 0x0040, 0x71c: 0x0040, 0x71d: 0x0040,\n\t0x71e: 0x0040, 0x71f: 0x0040, 0x720: 0x0008, 0x721: 0x0008, 0x722: 0x3308, 0x723: 0x3308,\n\t0x724: 0x0040, 0x725: 0x0040, 0x726: 0x0008, 0x727: 0x0008, 0x728: 0x0008, 0x729: 0x0008,\n\t0x72a: 0x0008, 0x72b: 0x0008, 0x72c: 0x0008, 0x72d: 0x0008, 0x72e: 0x0008, 0x72f: 0x0008,\n\t0x730: 0x0018, 0x731: 0x0018, 0x732: 0x0040, 0x733: 0x0040, 0x734: 0x0040, 0x735: 0x0040,\n\t0x736: 0x0040, 0x737: 0x0040, 0x738: 0x0040, 0x739: 0x0008, 0x73a: 0x3308, 0x73b: 0x3308,\n\t0x73c: 0x3308, 0x73d: 0x3308, 0x73e: 0x3308, 0x73f: 0x3308,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0x0040, 0x741: 0x3308, 0x742: 0x3008, 0x743: 0x3008, 0x744: 0x0040, 0x745: 0x0008,\n\t0x746: 0x0008, 0x747: 0x0008, 0x748: 0x0008, 0x749: 0x0008, 0x74a: 0x0008, 0x74b: 0x0008,\n\t0x74c: 0x0008, 0x74d: 0x0040, 0x74e: 0x0040, 0x74f: 0x0008, 0x750: 0x0008, 0x751: 0x0040,\n\t0x752: 0x0040, 0x753: 0x0008, 0x754: 0x0008, 0x755: 0x0008, 0x756: 0x0008, 0x757: 0x0008,\n\t0x758: 0x0008, 0x759: 0x0008, 0x75a: 0x0008, 0x75b: 0x0008, 0x75c: 0x0008, 0x75d: 0x0008,\n\t0x75e: 0x0008, 0x75f: 0x0008, 0x760: 0x0008, 0x761: 0x0008, 0x762: 0x0008, 0x763: 0x0008,\n\t0x764: 0x0008, 0x765: 0x0008, 0x766: 0x0008, 0x767: 0x0008, 0x768: 0x0008, 0x769: 0x0040,\n\t0x76a: 0x0008, 0x76b: 0x0008, 0x76c: 0x0008, 0x76d: 0x0008, 0x76e: 0x0008, 0x76f: 0x0008,\n\t0x770: 0x0008, 0x771: 0x0040, 0x772: 0x0008, 0x773: 0x0008, 0x774: 0x0040, 0x775: 0x0008,\n\t0x776: 0x0008, 0x777: 0x0008, 0x778: 0x0008, 0x779: 0x0008, 0x77a: 0x0040, 0x77b: 0x0040,\n\t0x77c: 0x3308, 0x77d: 0x0008, 0x77e: 0x3008, 0x77f: 0x3308,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0x3008, 0x781: 0x3308, 0x782: 0x3308, 0x783: 0x3308, 0x784: 0x3308, 0x785: 0x0040,\n\t0x786: 0x0040, 0x787: 0x3008, 0x788: 0x3008, 0x789: 0x0040, 0x78a: 0x0040, 0x78b: 0x3008,\n\t0x78c: 0x3008, 0x78d: 0x3b08, 0x78e: 0x0040, 0x78f: 0x0040, 0x790: 0x0040, 0x791: 0x0040,\n\t0x792: 0x0040, 0x793: 0x0040, 0x794: 0x0040, 0x795: 0x3308, 0x796: 0x3308, 0x797: 0x3008,\n\t0x798: 0x0040, 0x799: 0x0040, 0x79a: 0x0040, 0x79b: 0x0040, 0x79c: 0x01e1, 0x79d: 0x01e9,\n\t0x79e: 0x0040, 0x79f: 0x0008, 0x7a0: 0x0008, 0x7a1: 0x0008, 0x7a2: 0x3308, 0x7a3: 0x3308,\n\t0x7a4: 0x0040, 0x7a5: 0x0040, 0x7a6: 0x0008, 0x7a7: 0x0008, 0x7a8: 0x0008, 0x7a9: 0x0008,\n\t0x7aa: 0x0008, 0x7ab: 0x0008, 0x7ac: 0x0008, 0x7ad: 0x0008, 0x7ae: 0x0008, 0x7af: 0x0008,\n\t0x7b0: 0x0018, 0x7b1: 0x0008, 0x7b2: 0x0018, 0x7b3: 0x0018, 0x7b4: 0x0018, 0x7b5: 0x0018,\n\t0x7b6: 0x0018, 0x7b7: 0x0018, 0x7b8: 0x0040, 0x7b9: 0x0040, 0x7ba: 0x0040, 0x7bb: 0x0040,\n\t0x7bc: 0x0040, 0x7bd: 0x0040, 0x7be: 0x0040, 0x7bf: 0x0040,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0x0040, 0x7c1: 0x0040, 0x7c2: 0x3308, 0x7c3: 0x0008, 0x7c4: 0x0040, 0x7c5: 0x0008,\n\t0x7c6: 0x0008, 0x7c7: 0x0008, 0x7c8: 0x0008, 0x7c9: 0x0008, 0x7ca: 0x0008, 0x7cb: 0x0040,\n\t0x7cc: 0x0040, 0x7cd: 0x0040, 0x7ce: 0x0008, 0x7cf: 0x0008, 0x7d0: 0x0008, 0x7d1: 0x0040,\n\t0x7d2: 0x0008, 0x7d3: 0x0008, 0x7d4: 0x0008, 0x7d5: 0x0008, 0x7d6: 0x0040, 0x7d7: 0x0040,\n\t0x7d8: 0x0040, 0x7d9: 0x0008, 0x7da: 0x0008, 0x7db: 0x0040, 0x7dc: 0x0008, 0x7dd: 0x0040,\n\t0x7de: 0x0008, 0x7df: 0x0008, 0x7e0: 0x0040, 0x7e1: 0x0040, 0x7e2: 0x0040, 0x7e3: 0x0008,\n\t0x7e4: 0x0008, 0x7e5: 0x0040, 0x7e6: 0x0040, 0x7e7: 0x0040, 0x7e8: 0x0008, 0x7e9: 0x0008,\n\t0x7ea: 0x0008, 0x7eb: 0x0040, 0x7ec: 0x0040, 0x7ed: 0x0040, 0x7ee: 0x0008, 0x7ef: 0x0008,\n\t0x7f0: 0x0008, 0x7f1: 0x0008, 0x7f2: 0x0008, 0x7f3: 0x0008, 0x7f4: 0x0008, 0x7f5: 0x0008,\n\t0x7f6: 0x0008, 0x7f7: 0x0008, 0x7f8: 0x0008, 0x7f9: 0x0008, 0x7fa: 0x0040, 0x7fb: 0x0040,\n\t0x7fc: 0x0040, 0x7fd: 0x0040, 0x7fe: 0x3008, 0x7ff: 0x3008,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x3308, 0x801: 0x3008, 0x802: 0x3008, 0x803: 0x3008, 0x804: 0x3008, 0x805: 0x0040,\n\t0x806: 0x3308, 0x807: 0x3308, 0x808: 0x3308, 0x809: 0x0040, 0x80a: 0x3308, 0x80b: 0x3308,\n\t0x80c: 0x3308, 0x80d: 0x3b08, 0x80e: 0x0040, 0x80f: 0x0040, 0x810: 0x0040, 0x811: 0x0040,\n\t0x812: 0x0040, 0x813: 0x0040, 0x814: 0x0040, 0x815: 0x3308, 0x816: 0x3308, 0x817: 0x0040,\n\t0x818: 0x0008, 0x819: 0x0008, 0x81a: 0x0008, 0x81b: 0x0040, 0x81c: 0x0040, 0x81d: 0x0040,\n\t0x81e: 0x0040, 0x81f: 0x0040, 0x820: 0x0008, 0x821: 0x0008, 0x822: 0x3308, 0x823: 0x3308,\n\t0x824: 0x0040, 0x825: 0x0040, 0x826: 0x0008, 0x827: 0x0008, 0x828: 0x0008, 0x829: 0x0008,\n\t0x82a: 0x0008, 0x82b: 0x0008, 0x82c: 0x0008, 0x82d: 0x0008, 0x82e: 0x0008, 0x82f: 0x0008,\n\t0x830: 0x0040, 0x831: 0x0040, 0x832: 0x0040, 0x833: 0x0040, 0x834: 0x0040, 0x835: 0x0040,\n\t0x836: 0x0040, 0x837: 0x0018, 0x838: 0x0018, 0x839: 0x0018, 0x83a: 0x0018, 0x83b: 0x0018,\n\t0x83c: 0x0018, 0x83d: 0x0018, 0x83e: 0x0018, 0x83f: 0x0018,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x0008, 0x841: 0x3308, 0x842: 0x3008, 0x843: 0x3008, 0x844: 0x0018, 0x845: 0x0008,\n\t0x846: 0x0008, 0x847: 0x0008, 0x848: 0x0008, 0x849: 0x0008, 0x84a: 0x0008, 0x84b: 0x0008,\n\t0x84c: 0x0008, 0x84d: 0x0040, 0x84e: 0x0008, 0x84f: 0x0008, 0x850: 0x0008, 0x851: 0x0040,\n\t0x852: 0x0008, 0x853: 0x0008, 0x854: 0x0008, 0x855: 0x0008, 0x856: 0x0008, 0x857: 0x0008,\n\t0x858: 0x0008, 0x859: 0x0008, 0x85a: 0x0008, 0x85b: 0x0008, 0x85c: 0x0008, 0x85d: 0x0008,\n\t0x85e: 0x0008, 0x85f: 0x0008, 0x860: 0x0008, 0x861: 0x0008, 0x862: 0x0008, 0x863: 0x0008,\n\t0x864: 0x0008, 0x865: 0x0008, 0x866: 0x0008, 0x867: 0x0008, 0x868: 0x0008, 0x869: 0x0040,\n\t0x86a: 0x0008, 0x86b: 0x0008, 0x86c: 0x0008, 0x86d: 0x0008, 0x86e: 0x0008, 0x86f: 0x0008,\n\t0x870: 0x0008, 0x871: 0x0008, 0x872: 0x0008, 0x873: 0x0008, 0x874: 0x0040, 0x875: 0x0008,\n\t0x876: 0x0008, 0x877: 0x0008, 0x878: 0x0008, 0x879: 0x0008, 0x87a: 0x0040, 0x87b: 0x0040,\n\t0x87c: 0x3308, 0x87d: 0x0008, 0x87e: 0x3008, 0x87f: 0x3308,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x3008, 0x881: 0x3008, 0x882: 0x3008, 0x883: 0x3008, 0x884: 0x3008, 0x885: 0x0040,\n\t0x886: 0x3308, 0x887: 0x3008, 0x888: 0x3008, 0x889: 0x0040, 0x88a: 0x3008, 0x88b: 0x3008,\n\t0x88c: 0x3308, 0x88d: 0x3b08, 0x88e: 0x0040, 0x88f: 0x0040, 0x890: 0x0040, 0x891: 0x0040,\n\t0x892: 0x0040, 0x893: 0x0040, 0x894: 0x0040, 0x895: 0x3008, 0x896: 0x3008, 0x897: 0x0040,\n\t0x898: 0x0040, 0x899: 0x0040, 0x89a: 0x0040, 0x89b: 0x0040, 0x89c: 0x0040, 0x89d: 0x0040,\n\t0x89e: 0x0008, 0x89f: 0x0040, 0x8a0: 0x0008, 0x8a1: 0x0008, 0x8a2: 0x3308, 0x8a3: 0x3308,\n\t0x8a4: 0x0040, 0x8a5: 0x0040, 0x8a6: 0x0008, 0x8a7: 0x0008, 0x8a8: 0x0008, 0x8a9: 0x0008,\n\t0x8aa: 0x0008, 0x8ab: 0x0008, 0x8ac: 0x0008, 0x8ad: 0x0008, 0x8ae: 0x0008, 0x8af: 0x0008,\n\t0x8b0: 0x0040, 0x8b1: 0x0008, 0x8b2: 0x0008, 0x8b3: 0x0040, 0x8b4: 0x0040, 0x8b5: 0x0040,\n\t0x8b6: 0x0040, 0x8b7: 0x0040, 0x8b8: 0x0040, 0x8b9: 0x0040, 0x8ba: 0x0040, 0x8bb: 0x0040,\n\t0x8bc: 0x0040, 0x8bd: 0x0040, 0x8be: 0x0040, 0x8bf: 0x0040,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x3008, 0x8c1: 0x3308, 0x8c2: 0x3308, 0x8c3: 0x3308, 0x8c4: 0x3308, 0x8c5: 0x0040,\n\t0x8c6: 0x3008, 0x8c7: 0x3008, 0x8c8: 0x3008, 0x8c9: 0x0040, 0x8ca: 0x3008, 0x8cb: 0x3008,\n\t0x8cc: 0x3008, 0x8cd: 0x3b08, 0x8ce: 0x0008, 0x8cf: 0x0018, 0x8d0: 0x0040, 0x8d1: 0x0040,\n\t0x8d2: 0x0040, 0x8d3: 0x0040, 0x8d4: 0x0008, 0x8d5: 0x0008, 0x8d6: 0x0008, 0x8d7: 0x3008,\n\t0x8d8: 0x0018, 0x8d9: 0x0018, 0x8da: 0x0018, 0x8db: 0x0018, 0x8dc: 0x0018, 0x8dd: 0x0018,\n\t0x8de: 0x0018, 0x8df: 0x0008, 0x8e0: 0x0008, 0x8e1: 0x0008, 0x8e2: 0x3308, 0x8e3: 0x3308,\n\t0x8e4: 0x0040, 0x8e5: 0x0040, 0x8e6: 0x0008, 0x8e7: 0x0008, 0x8e8: 0x0008, 0x8e9: 0x0008,\n\t0x8ea: 0x0008, 0x8eb: 0x0008, 0x8ec: 0x0008, 0x8ed: 0x0008, 0x8ee: 0x0008, 0x8ef: 0x0008,\n\t0x8f0: 0x0018, 0x8f1: 0x0018, 0x8f2: 0x0018, 0x8f3: 0x0018, 0x8f4: 0x0018, 0x8f5: 0x0018,\n\t0x8f6: 0x0018, 0x8f7: 0x0018, 0x8f8: 0x0018, 0x8f9: 0x0018, 0x8fa: 0x0008, 0x8fb: 0x0008,\n\t0x8fc: 0x0008, 0x8fd: 0x0008, 0x8fe: 0x0008, 0x8ff: 0x0008,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x0040, 0x901: 0x0008, 0x902: 0x0008, 0x903: 0x0040, 0x904: 0x0008, 0x905: 0x0040,\n\t0x906: 0x0008, 0x907: 0x0008, 0x908: 0x0008, 0x909: 0x0008, 0x90a: 0x0008, 0x90b: 0x0040,\n\t0x90c: 0x0008, 0x90d: 0x0008, 0x90e: 0x0008, 0x90f: 0x0008, 0x910: 0x0008, 0x911: 0x0008,\n\t0x912: 0x0008, 0x913: 0x0008, 0x914: 0x0008, 0x915: 0x0008, 0x916: 0x0008, 0x917: 0x0008,\n\t0x918: 0x0008, 0x919: 0x0008, 0x91a: 0x0008, 0x91b: 0x0008, 0x91c: 0x0008, 0x91d: 0x0008,\n\t0x91e: 0x0008, 0x91f: 0x0008, 0x920: 0x0008, 0x921: 0x0008, 0x922: 0x0008, 0x923: 0x0008,\n\t0x924: 0x0040, 0x925: 0x0008, 0x926: 0x0040, 0x927: 0x0008, 0x928: 0x0008, 0x929: 0x0008,\n\t0x92a: 0x0008, 0x92b: 0x0008, 0x92c: 0x0008, 0x92d: 0x0008, 0x92e: 0x0008, 0x92f: 0x0008,\n\t0x930: 0x0008, 0x931: 0x3308, 0x932: 0x0008, 0x933: 0x01f9, 0x934: 0x3308, 0x935: 0x3308,\n\t0x936: 0x3308, 0x937: 0x3308, 0x938: 0x3308, 0x939: 0x3308, 0x93a: 0x3b08, 0x93b: 0x3308,\n\t0x93c: 0x3308, 0x93d: 0x0008, 0x93e: 0x0040, 0x93f: 0x0040,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x0008, 0x941: 0x0008, 0x942: 0x0008, 0x943: 0x0211, 0x944: 0x0008, 0x945: 0x0008,\n\t0x946: 0x0008, 0x947: 0x0008, 0x948: 0x0040, 0x949: 0x0008, 0x94a: 0x0008, 0x94b: 0x0008,\n\t0x94c: 0x0008, 0x94d: 0x0219, 0x94e: 0x0008, 0x94f: 0x0008, 0x950: 0x0008, 0x951: 0x0008,\n\t0x952: 0x0221, 0x953: 0x0008, 0x954: 0x0008, 0x955: 0x0008, 0x956: 0x0008, 0x957: 0x0229,\n\t0x958: 0x0008, 0x959: 0x0008, 0x95a: 0x0008, 0x95b: 0x0008, 0x95c: 0x0231, 0x95d: 0x0008,\n\t0x95e: 0x0008, 0x95f: 0x0008, 0x960: 0x0008, 0x961: 0x0008, 0x962: 0x0008, 0x963: 0x0008,\n\t0x964: 0x0008, 0x965: 0x0008, 0x966: 0x0008, 0x967: 0x0008, 0x968: 0x0008, 0x969: 0x0239,\n\t0x96a: 0x0008, 0x96b: 0x0008, 0x96c: 0x0008, 0x96d: 0x0040, 0x96e: 0x0040, 0x96f: 0x0040,\n\t0x970: 0x0040, 0x971: 0x3308, 0x972: 0x3308, 0x973: 0x0241, 0x974: 0x3308, 0x975: 0x0249,\n\t0x976: 0x0251, 0x977: 0x0259, 0x978: 0x0261, 0x979: 0x0269, 0x97a: 0x3308, 0x97b: 0x3308,\n\t0x97c: 0x3308, 0x97d: 0x3308, 0x97e: 0x3308, 0x97f: 0x3008,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x3308, 0x981: 0x0271, 0x982: 0x3308, 0x983: 0x3308, 0x984: 0x3b08, 0x985: 0x0018,\n\t0x986: 0x3308, 0x987: 0x3308, 0x988: 0x0008, 0x989: 0x0008, 0x98a: 0x0008, 0x98b: 0x0008,\n\t0x98c: 0x0008, 0x98d: 0x3308, 0x98e: 0x3308, 0x98f: 0x3308, 0x990: 0x3308, 0x991: 0x3308,\n\t0x992: 0x3308, 0x993: 0x0279, 0x994: 0x3308, 0x995: 0x3308, 0x996: 0x3308, 0x997: 0x3308,\n\t0x998: 0x0040, 0x999: 0x3308, 0x99a: 0x3308, 0x99b: 0x3308, 0x99c: 0x3308, 0x99d: 0x0281,\n\t0x99e: 0x3308, 0x99f: 0x3308, 0x9a0: 0x3308, 0x9a1: 0x3308, 0x9a2: 0x0289, 0x9a3: 0x3308,\n\t0x9a4: 0x3308, 0x9a5: 0x3308, 0x9a6: 0x3308, 0x9a7: 0x0291, 0x9a8: 0x3308, 0x9a9: 0x3308,\n\t0x9aa: 0x3308, 0x9ab: 0x3308, 0x9ac: 0x0299, 0x9ad: 0x3308, 0x9ae: 0x3308, 0x9af: 0x3308,\n\t0x9b0: 0x3308, 0x9b1: 0x3308, 0x9b2: 0x3308, 0x9b3: 0x3308, 0x9b4: 0x3308, 0x9b5: 0x3308,\n\t0x9b6: 0x3308, 0x9b7: 0x3308, 0x9b8: 0x3308, 0x9b9: 0x02a1, 0x9ba: 0x3308, 0x9bb: 0x3308,\n\t0x9bc: 0x3308, 0x9bd: 0x0040, 0x9be: 0x0018, 0x9bf: 0x0018,\n\t// Block 0x27, offset 0x9c0\n\t0x9c0: 0x0008, 0x9c1: 0x0008, 0x9c2: 0x0008, 0x9c3: 0x0008, 0x9c4: 0x0008, 0x9c5: 0x0008,\n\t0x9c6: 0x0008, 0x9c7: 0x0008, 0x9c8: 0x0008, 0x9c9: 0x0008, 0x9ca: 0x0008, 0x9cb: 0x0008,\n\t0x9cc: 0x0008, 0x9cd: 0x0008, 0x9ce: 0x0008, 0x9cf: 0x0008, 0x9d0: 0x0008, 0x9d1: 0x0008,\n\t0x9d2: 0x0008, 0x9d3: 0x0008, 0x9d4: 0x0008, 0x9d5: 0x0008, 0x9d6: 0x0008, 0x9d7: 0x0008,\n\t0x9d8: 0x0008, 0x9d9: 0x0008, 0x9da: 0x0008, 0x9db: 0x0008, 0x9dc: 0x0008, 0x9dd: 0x0008,\n\t0x9de: 0x0008, 0x9df: 0x0008, 0x9e0: 0x0008, 0x9e1: 0x0008, 0x9e2: 0x0008, 0x9e3: 0x0008,\n\t0x9e4: 0x0008, 0x9e5: 0x0008, 0x9e6: 0x0008, 0x9e7: 0x0008, 0x9e8: 0x0008, 0x9e9: 0x0008,\n\t0x9ea: 0x0008, 0x9eb: 0x0008, 0x9ec: 0x0019, 0x9ed: 0x02e1, 0x9ee: 0x02e9, 0x9ef: 0x0008,\n\t0x9f0: 0x02f1, 0x9f1: 0x02f9, 0x9f2: 0x0301, 0x9f3: 0x0309, 0x9f4: 0x00a9, 0x9f5: 0x0311,\n\t0x9f6: 0x00b1, 0x9f7: 0x0319, 0x9f8: 0x0101, 0x9f9: 0x0321, 0x9fa: 0x0329, 0x9fb: 0x0008,\n\t0x9fc: 0x0051, 0x9fd: 0x0331, 0x9fe: 0x0339, 0x9ff: 0x00b9,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x0341, 0xa01: 0x0349, 0xa02: 0x00c1, 0xa03: 0x0019, 0xa04: 0x0351, 0xa05: 0x0359,\n\t0xa06: 0x05b5, 0xa07: 0x02e9, 0xa08: 0x02f1, 0xa09: 0x02f9, 0xa0a: 0x0361, 0xa0b: 0x0369,\n\t0xa0c: 0x0371, 0xa0d: 0x0309, 0xa0e: 0x0008, 0xa0f: 0x0319, 0xa10: 0x0321, 0xa11: 0x0379,\n\t0xa12: 0x0051, 0xa13: 0x0381, 0xa14: 0x05cd, 0xa15: 0x05cd, 0xa16: 0x0339, 0xa17: 0x0341,\n\t0xa18: 0x0349, 0xa19: 0x05b5, 0xa1a: 0x0389, 0xa1b: 0x0391, 0xa1c: 0x05e5, 0xa1d: 0x0399,\n\t0xa1e: 0x03a1, 0xa1f: 0x03a9, 0xa20: 0x03b1, 0xa21: 0x03b9, 0xa22: 0x0311, 0xa23: 0x00b9,\n\t0xa24: 0x0349, 0xa25: 0x0391, 0xa26: 0x0399, 0xa27: 0x03a1, 0xa28: 0x03c1, 0xa29: 0x03b1,\n\t0xa2a: 0x03b9, 0xa2b: 0x0008, 0xa2c: 0x0008, 0xa2d: 0x0008, 0xa2e: 0x0008, 0xa2f: 0x0008,\n\t0xa30: 0x0008, 0xa31: 0x0008, 0xa32: 0x0008, 0xa33: 0x0008, 0xa34: 0x0008, 0xa35: 0x0008,\n\t0xa36: 0x0008, 0xa37: 0x0008, 0xa38: 0x03c9, 0xa39: 0x0008, 0xa3a: 0x0008, 0xa3b: 0x0008,\n\t0xa3c: 0x0008, 0xa3d: 0x0008, 0xa3e: 0x0008, 0xa3f: 0x0008,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0x0008, 0xa41: 0x0008, 0xa42: 0x0008, 0xa43: 0x0008, 0xa44: 0x0008, 0xa45: 0x0008,\n\t0xa46: 0x0008, 0xa47: 0x0008, 0xa48: 0x0008, 0xa49: 0x0008, 0xa4a: 0x0008, 0xa4b: 0x0008,\n\t0xa4c: 0x0008, 0xa4d: 0x0008, 0xa4e: 0x0008, 0xa4f: 0x0008, 0xa50: 0x0008, 0xa51: 0x0008,\n\t0xa52: 0x0008, 0xa53: 0x0008, 0xa54: 0x0008, 0xa55: 0x0008, 0xa56: 0x0008, 0xa57: 0x0008,\n\t0xa58: 0x0008, 0xa59: 0x0008, 0xa5a: 0x0008, 0xa5b: 0x03d1, 0xa5c: 0x03d9, 0xa5d: 0x03e1,\n\t0xa5e: 0x03e9, 0xa5f: 0x0371, 0xa60: 0x03f1, 0xa61: 0x03f9, 0xa62: 0x0401, 0xa63: 0x0409,\n\t0xa64: 0x0411, 0xa65: 0x0419, 0xa66: 0x0421, 0xa67: 0x05fd, 0xa68: 0x0429, 0xa69: 0x0431,\n\t0xa6a: 0xe17d, 0xa6b: 0x0439, 0xa6c: 0x0441, 0xa6d: 0x0449, 0xa6e: 0x0451, 0xa6f: 0x0459,\n\t0xa70: 0x0461, 0xa71: 0x0469, 0xa72: 0x0471, 0xa73: 0x0479, 0xa74: 0x0481, 0xa75: 0x0489,\n\t0xa76: 0x0491, 0xa77: 0x0499, 0xa78: 0x0615, 0xa79: 0x04a1, 0xa7a: 0x04a9, 0xa7b: 0x04b1,\n\t0xa7c: 0x04b9, 0xa7d: 0x04c1, 0xa7e: 0x04c9, 0xa7f: 0x04d1,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0xe00d, 0xa81: 0x0008, 0xa82: 0xe00d, 0xa83: 0x0008, 0xa84: 0xe00d, 0xa85: 0x0008,\n\t0xa86: 0xe00d, 0xa87: 0x0008, 0xa88: 0xe00d, 0xa89: 0x0008, 0xa8a: 0xe00d, 0xa8b: 0x0008,\n\t0xa8c: 0xe00d, 0xa8d: 0x0008, 0xa8e: 0xe00d, 0xa8f: 0x0008, 0xa90: 0xe00d, 0xa91: 0x0008,\n\t0xa92: 0xe00d, 0xa93: 0x0008, 0xa94: 0xe00d, 0xa95: 0x0008, 0xa96: 0xe00d, 0xa97: 0x0008,\n\t0xa98: 0xe00d, 0xa99: 0x0008, 0xa9a: 0xe00d, 0xa9b: 0x0008, 0xa9c: 0xe00d, 0xa9d: 0x0008,\n\t0xa9e: 0xe00d, 0xa9f: 0x0008, 0xaa0: 0xe00d, 0xaa1: 0x0008, 0xaa2: 0xe00d, 0xaa3: 0x0008,\n\t0xaa4: 0xe00d, 0xaa5: 0x0008, 0xaa6: 0xe00d, 0xaa7: 0x0008, 0xaa8: 0xe00d, 0xaa9: 0x0008,\n\t0xaaa: 0xe00d, 0xaab: 0x0008, 0xaac: 0xe00d, 0xaad: 0x0008, 0xaae: 0xe00d, 0xaaf: 0x0008,\n\t0xab0: 0xe00d, 0xab1: 0x0008, 0xab2: 0xe00d, 0xab3: 0x0008, 0xab4: 0xe00d, 0xab5: 0x0008,\n\t0xab6: 0xe00d, 0xab7: 0x0008, 0xab8: 0xe00d, 0xab9: 0x0008, 0xaba: 0xe00d, 0xabb: 0x0008,\n\t0xabc: 0xe00d, 0xabd: 0x0008, 0xabe: 0xe00d, 0xabf: 0x0008,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0xe00d, 0xac1: 0x0008, 0xac2: 0xe00d, 0xac3: 0x0008, 0xac4: 0xe00d, 0xac5: 0x0008,\n\t0xac6: 0xe00d, 0xac7: 0x0008, 0xac8: 0xe00d, 0xac9: 0x0008, 0xaca: 0xe00d, 0xacb: 0x0008,\n\t0xacc: 0xe00d, 0xacd: 0x0008, 0xace: 0xe00d, 0xacf: 0x0008, 0xad0: 0xe00d, 0xad1: 0x0008,\n\t0xad2: 0xe00d, 0xad3: 0x0008, 0xad4: 0xe00d, 0xad5: 0x0008, 0xad6: 0x0008, 0xad7: 0x0008,\n\t0xad8: 0x0008, 0xad9: 0x0008, 0xada: 0x062d, 0xadb: 0x064d, 0xadc: 0x0008, 0xadd: 0x0008,\n\t0xade: 0x04d9, 0xadf: 0x0008, 0xae0: 0xe00d, 0xae1: 0x0008, 0xae2: 0xe00d, 0xae3: 0x0008,\n\t0xae4: 0xe00d, 0xae5: 0x0008, 0xae6: 0xe00d, 0xae7: 0x0008, 0xae8: 0xe00d, 0xae9: 0x0008,\n\t0xaea: 0xe00d, 0xaeb: 0x0008, 0xaec: 0xe00d, 0xaed: 0x0008, 0xaee: 0xe00d, 0xaef: 0x0008,\n\t0xaf0: 0xe00d, 0xaf1: 0x0008, 0xaf2: 0xe00d, 0xaf3: 0x0008, 0xaf4: 0xe00d, 0xaf5: 0x0008,\n\t0xaf6: 0xe00d, 0xaf7: 0x0008, 0xaf8: 0xe00d, 0xaf9: 0x0008, 0xafa: 0xe00d, 0xafb: 0x0008,\n\t0xafc: 0xe00d, 0xafd: 0x0008, 0xafe: 0xe00d, 0xaff: 0x0008,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0x0008, 0xb01: 0x0008, 0xb02: 0x0008, 0xb03: 0x0008, 0xb04: 0x0008, 0xb05: 0x0008,\n\t0xb06: 0x0040, 0xb07: 0x0040, 0xb08: 0xe045, 0xb09: 0xe045, 0xb0a: 0xe045, 0xb0b: 0xe045,\n\t0xb0c: 0xe045, 0xb0d: 0xe045, 0xb0e: 0x0040, 0xb0f: 0x0040, 0xb10: 0x0008, 0xb11: 0x0008,\n\t0xb12: 0x0008, 0xb13: 0x0008, 0xb14: 0x0008, 0xb15: 0x0008, 0xb16: 0x0008, 0xb17: 0x0008,\n\t0xb18: 0x0040, 0xb19: 0xe045, 0xb1a: 0x0040, 0xb1b: 0xe045, 0xb1c: 0x0040, 0xb1d: 0xe045,\n\t0xb1e: 0x0040, 0xb1f: 0xe045, 0xb20: 0x0008, 0xb21: 0x0008, 0xb22: 0x0008, 0xb23: 0x0008,\n\t0xb24: 0x0008, 0xb25: 0x0008, 0xb26: 0x0008, 0xb27: 0x0008, 0xb28: 0xe045, 0xb29: 0xe045,\n\t0xb2a: 0xe045, 0xb2b: 0xe045, 0xb2c: 0xe045, 0xb2d: 0xe045, 0xb2e: 0xe045, 0xb2f: 0xe045,\n\t0xb30: 0x0008, 0xb31: 0x04e1, 0xb32: 0x0008, 0xb33: 0x04e9, 0xb34: 0x0008, 0xb35: 0x04f1,\n\t0xb36: 0x0008, 0xb37: 0x04f9, 0xb38: 0x0008, 0xb39: 0x0501, 0xb3a: 0x0008, 0xb3b: 0x0509,\n\t0xb3c: 0x0008, 0xb3d: 0x0511, 0xb3e: 0x0040, 0xb3f: 0x0040,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x0519, 0xb41: 0x0521, 0xb42: 0x0529, 0xb43: 0x0531, 0xb44: 0x0539, 0xb45: 0x0541,\n\t0xb46: 0x0549, 0xb47: 0x0551, 0xb48: 0x0519, 0xb49: 0x0521, 0xb4a: 0x0529, 0xb4b: 0x0531,\n\t0xb4c: 0x0539, 0xb4d: 0x0541, 0xb4e: 0x0549, 0xb4f: 0x0551, 0xb50: 0x0559, 0xb51: 0x0561,\n\t0xb52: 0x0569, 0xb53: 0x0571, 0xb54: 0x0579, 0xb55: 0x0581, 0xb56: 0x0589, 0xb57: 0x0591,\n\t0xb58: 0x0559, 0xb59: 0x0561, 0xb5a: 0x0569, 0xb5b: 0x0571, 0xb5c: 0x0579, 0xb5d: 0x0581,\n\t0xb5e: 0x0589, 0xb5f: 0x0591, 0xb60: 0x0599, 0xb61: 0x05a1, 0xb62: 0x05a9, 0xb63: 0x05b1,\n\t0xb64: 0x05b9, 0xb65: 0x05c1, 0xb66: 0x05c9, 0xb67: 0x05d1, 0xb68: 0x0599, 0xb69: 0x05a1,\n\t0xb6a: 0x05a9, 0xb6b: 0x05b1, 0xb6c: 0x05b9, 0xb6d: 0x05c1, 0xb6e: 0x05c9, 0xb6f: 0x05d1,\n\t0xb70: 0x0008, 0xb71: 0x0008, 0xb72: 0x05d9, 0xb73: 0x05e1, 0xb74: 0x05e9, 0xb75: 0x0040,\n\t0xb76: 0x0008, 0xb77: 0x05f1, 0xb78: 0xe045, 0xb79: 0xe045, 0xb7a: 0x0665, 0xb7b: 0x04e1,\n\t0xb7c: 0x05e1, 0xb7d: 0x067e, 0xb7e: 0x05f9, 0xb7f: 0x069e,\n\t// Block 0x2e, offset 0xb80\n\t0xb80: 0x06be, 0xb81: 0x0602, 0xb82: 0x0609, 0xb83: 0x0611, 0xb84: 0x0619, 0xb85: 0x0040,\n\t0xb86: 0x0008, 0xb87: 0x0621, 0xb88: 0x06dd, 0xb89: 0x04e9, 0xb8a: 0x06f5, 0xb8b: 0x04f1,\n\t0xb8c: 0x0611, 0xb8d: 0x062a, 0xb8e: 0x0632, 0xb8f: 0x063a, 0xb90: 0x0008, 0xb91: 0x0008,\n\t0xb92: 0x0008, 0xb93: 0x0641, 0xb94: 0x0040, 0xb95: 0x0040, 0xb96: 0x0008, 0xb97: 0x0008,\n\t0xb98: 0xe045, 0xb99: 0xe045, 0xb9a: 0x070d, 0xb9b: 0x04f9, 0xb9c: 0x0040, 0xb9d: 0x064a,\n\t0xb9e: 0x0652, 0xb9f: 0x065a, 0xba0: 0x0008, 0xba1: 0x0008, 0xba2: 0x0008, 0xba3: 0x0661,\n\t0xba4: 0x0008, 0xba5: 0x0008, 0xba6: 0x0008, 0xba7: 0x0008, 0xba8: 0xe045, 0xba9: 0xe045,\n\t0xbaa: 0x0725, 0xbab: 0x0509, 0xbac: 0xe04d, 0xbad: 0x066a, 0xbae: 0x012a, 0xbaf: 0x0672,\n\t0xbb0: 0x0040, 0xbb1: 0x0040, 0xbb2: 0x0679, 0xbb3: 0x0681, 0xbb4: 0x0689, 0xbb5: 0x0040,\n\t0xbb6: 0x0008, 0xbb7: 0x0691, 0xbb8: 0x073d, 0xbb9: 0x0501, 0xbba: 0x0515, 0xbbb: 0x0511,\n\t0xbbc: 0x0681, 0xbbd: 0x0756, 0xbbe: 0x0776, 0xbbf: 0x0040,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc0: 0x000a, 0xbc1: 0x000a, 0xbc2: 0x000a, 0xbc3: 0x000a, 0xbc4: 0x000a, 0xbc5: 0x000a,\n\t0xbc6: 0x000a, 0xbc7: 0x000a, 0xbc8: 0x000a, 0xbc9: 0x000a, 0xbca: 0x000a, 0xbcb: 0x03c0,\n\t0xbcc: 0x0003, 0xbcd: 0x0003, 0xbce: 0x0340, 0xbcf: 0x0b40, 0xbd0: 0x0018, 0xbd1: 0xe00d,\n\t0xbd2: 0x0018, 0xbd3: 0x0018, 0xbd4: 0x0018, 0xbd5: 0x0018, 0xbd6: 0x0018, 0xbd7: 0x0796,\n\t0xbd8: 0x0018, 0xbd9: 0x0018, 0xbda: 0x0018, 0xbdb: 0x0018, 0xbdc: 0x0018, 0xbdd: 0x0018,\n\t0xbde: 0x0018, 0xbdf: 0x0018, 0xbe0: 0x0018, 0xbe1: 0x0018, 0xbe2: 0x0018, 0xbe3: 0x0018,\n\t0xbe4: 0x0040, 0xbe5: 0x0040, 0xbe6: 0x0040, 0xbe7: 0x0018, 0xbe8: 0x0040, 0xbe9: 0x0040,\n\t0xbea: 0x0340, 0xbeb: 0x0340, 0xbec: 0x0340, 0xbed: 0x0340, 0xbee: 0x0340, 0xbef: 0x000a,\n\t0xbf0: 0x0018, 0xbf1: 0x0018, 0xbf2: 0x0018, 0xbf3: 0x0699, 0xbf4: 0x06a1, 0xbf5: 0x0018,\n\t0xbf6: 0x06a9, 0xbf7: 0x06b1, 0xbf8: 0x0018, 0xbf9: 0x0018, 0xbfa: 0x0018, 0xbfb: 0x0018,\n\t0xbfc: 0x06ba, 0xbfd: 0x0018, 0xbfe: 0x07b6, 0xbff: 0x0018,\n\t// Block 0x30, offset 0xc00\n\t0xc00: 0x0018, 0xc01: 0x0018, 0xc02: 0x0018, 0xc03: 0x0018, 0xc04: 0x0018, 0xc05: 0x0018,\n\t0xc06: 0x0018, 0xc07: 0x06c2, 0xc08: 0x06ca, 0xc09: 0x06d2, 0xc0a: 0x0018, 0xc0b: 0x0018,\n\t0xc0c: 0x0018, 0xc0d: 0x0018, 0xc0e: 0x0018, 0xc0f: 0x0018, 0xc10: 0x0018, 0xc11: 0x0018,\n\t0xc12: 0x0018, 0xc13: 0x0018, 0xc14: 0x0018, 0xc15: 0x0018, 0xc16: 0x0018, 0xc17: 0x06d9,\n\t0xc18: 0x0018, 0xc19: 0x0018, 0xc1a: 0x0018, 0xc1b: 0x0018, 0xc1c: 0x0018, 0xc1d: 0x0018,\n\t0xc1e: 0x0018, 0xc1f: 0x000a, 0xc20: 0x03c0, 0xc21: 0x0340, 0xc22: 0x0340, 0xc23: 0x0340,\n\t0xc24: 0x03c0, 0xc25: 0x0040, 0xc26: 0x0040, 0xc27: 0x0040, 0xc28: 0x0040, 0xc29: 0x0040,\n\t0xc2a: 0x0340, 0xc2b: 0x0340, 0xc2c: 0x0340, 0xc2d: 0x0340, 0xc2e: 0x0340, 0xc2f: 0x0340,\n\t0xc30: 0x06e1, 0xc31: 0x0311, 0xc32: 0x0040, 0xc33: 0x0040, 0xc34: 0x06e9, 0xc35: 0x06f1,\n\t0xc36: 0x06f9, 0xc37: 0x0701, 0xc38: 0x0709, 0xc39: 0x0711, 0xc3a: 0x071a, 0xc3b: 0x07d5,\n\t0xc3c: 0x0722, 0xc3d: 0x072a, 0xc3e: 0x0732, 0xc3f: 0x0329,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x06e1, 0xc41: 0x0049, 0xc42: 0x0029, 0xc43: 0x0031, 0xc44: 0x06e9, 0xc45: 0x06f1,\n\t0xc46: 0x06f9, 0xc47: 0x0701, 0xc48: 0x0709, 0xc49: 0x0711, 0xc4a: 0x071a, 0xc4b: 0x07ed,\n\t0xc4c: 0x0722, 0xc4d: 0x072a, 0xc4e: 0x0732, 0xc4f: 0x0040, 0xc50: 0x0019, 0xc51: 0x02f9,\n\t0xc52: 0x0051, 0xc53: 0x0109, 0xc54: 0x0361, 0xc55: 0x00a9, 0xc56: 0x0319, 0xc57: 0x0101,\n\t0xc58: 0x0321, 0xc59: 0x0329, 0xc5a: 0x0339, 0xc5b: 0x0089, 0xc5c: 0x0341, 0xc5d: 0x0040,\n\t0xc5e: 0x0040, 0xc5f: 0x0040, 0xc60: 0x0018, 0xc61: 0x0018, 0xc62: 0x0018, 0xc63: 0x0018,\n\t0xc64: 0x0018, 0xc65: 0x0018, 0xc66: 0x0018, 0xc67: 0x0018, 0xc68: 0x0739, 0xc69: 0x0018,\n\t0xc6a: 0x0018, 0xc6b: 0x0018, 0xc6c: 0x0018, 0xc6d: 0x0018, 0xc6e: 0x0018, 0xc6f: 0x0018,\n\t0xc70: 0x0018, 0xc71: 0x0018, 0xc72: 0x0018, 0xc73: 0x0018, 0xc74: 0x0018, 0xc75: 0x0018,\n\t0xc76: 0x0018, 0xc77: 0x0018, 0xc78: 0x0018, 0xc79: 0x0018, 0xc7a: 0x0018, 0xc7b: 0x0018,\n\t0xc7c: 0x0018, 0xc7d: 0x0018, 0xc7e: 0x0018, 0xc7f: 0x0018,\n\t// Block 0x32, offset 0xc80\n\t0xc80: 0x0806, 0xc81: 0x0826, 0xc82: 0x03d9, 0xc83: 0x0845, 0xc84: 0x0018, 0xc85: 0x0866,\n\t0xc86: 0x0886, 0xc87: 0x0369, 0xc88: 0x0018, 0xc89: 0x08a5, 0xc8a: 0x0309, 0xc8b: 0x00a9,\n\t0xc8c: 0x00a9, 0xc8d: 0x00a9, 0xc8e: 0x00a9, 0xc8f: 0x0741, 0xc90: 0x0311, 0xc91: 0x0311,\n\t0xc92: 0x0101, 0xc93: 0x0101, 0xc94: 0x0018, 0xc95: 0x0329, 0xc96: 0x0749, 0xc97: 0x0018,\n\t0xc98: 0x0018, 0xc99: 0x0339, 0xc9a: 0x0751, 0xc9b: 0x00b9, 0xc9c: 0x00b9, 0xc9d: 0x00b9,\n\t0xc9e: 0x0018, 0xc9f: 0x0018, 0xca0: 0x0759, 0xca1: 0x08c5, 0xca2: 0x0761, 0xca3: 0x0018,\n\t0xca4: 0x04b1, 0xca5: 0x0018, 0xca6: 0x0769, 0xca7: 0x0018, 0xca8: 0x04b1, 0xca9: 0x0018,\n\t0xcaa: 0x0319, 0xcab: 0x0771, 0xcac: 0x02e9, 0xcad: 0x03d9, 0xcae: 0x0018, 0xcaf: 0x02f9,\n\t0xcb0: 0x02f9, 0xcb1: 0x03f1, 0xcb2: 0x0040, 0xcb3: 0x0321, 0xcb4: 0x0051, 0xcb5: 0x0779,\n\t0xcb6: 0x0781, 0xcb7: 0x0789, 0xcb8: 0x0791, 0xcb9: 0x0311, 0xcba: 0x0018, 0xcbb: 0x08e5,\n\t0xcbc: 0x0799, 0xcbd: 0x03a1, 0xcbe: 0x03a1, 0xcbf: 0x0799,\n\t// Block 0x33, offset 0xcc0\n\t0xcc0: 0x0905, 0xcc1: 0x0018, 0xcc2: 0x0018, 0xcc3: 0x0018, 0xcc4: 0x0018, 0xcc5: 0x02f1,\n\t0xcc6: 0x02f1, 0xcc7: 0x02f9, 0xcc8: 0x0311, 0xcc9: 0x00b1, 0xcca: 0x0018, 0xccb: 0x0018,\n\t0xccc: 0x0018, 0xccd: 0x0018, 0xcce: 0x0008, 0xccf: 0x0018, 0xcd0: 0x07a1, 0xcd1: 0x07a9,\n\t0xcd2: 0x07b1, 0xcd3: 0x07b9, 0xcd4: 0x07c1, 0xcd5: 0x07c9, 0xcd6: 0x07d1, 0xcd7: 0x07d9,\n\t0xcd8: 0x07e1, 0xcd9: 0x07e9, 0xcda: 0x07f1, 0xcdb: 0x07f9, 0xcdc: 0x0801, 0xcdd: 0x0809,\n\t0xcde: 0x0811, 0xcdf: 0x0819, 0xce0: 0x0311, 0xce1: 0x0821, 0xce2: 0x091d, 0xce3: 0x0829,\n\t0xce4: 0x0391, 0xce5: 0x0831, 0xce6: 0x093d, 0xce7: 0x0839, 0xce8: 0x0841, 0xce9: 0x0109,\n\t0xcea: 0x0849, 0xceb: 0x095d, 0xcec: 0x0101, 0xced: 0x03d9, 0xcee: 0x02f1, 0xcef: 0x0321,\n\t0xcf0: 0x0311, 0xcf1: 0x0821, 0xcf2: 0x097d, 0xcf3: 0x0829, 0xcf4: 0x0391, 0xcf5: 0x0831,\n\t0xcf6: 0x099d, 0xcf7: 0x0839, 0xcf8: 0x0841, 0xcf9: 0x0109, 0xcfa: 0x0849, 0xcfb: 0x09bd,\n\t0xcfc: 0x0101, 0xcfd: 0x03d9, 0xcfe: 0x02f1, 0xcff: 0x0321,\n\t// Block 0x34, offset 0xd00\n\t0xd00: 0x0018, 0xd01: 0x0018, 0xd02: 0x0018, 0xd03: 0x0018, 0xd04: 0x0018, 0xd05: 0x0018,\n\t0xd06: 0x0018, 0xd07: 0x0018, 0xd08: 0x0018, 0xd09: 0x0018, 0xd0a: 0x0018, 0xd0b: 0x0040,\n\t0xd0c: 0x0040, 0xd0d: 0x0040, 0xd0e: 0x0040, 0xd0f: 0x0040, 0xd10: 0x0040, 0xd11: 0x0040,\n\t0xd12: 0x0040, 0xd13: 0x0040, 0xd14: 0x0040, 0xd15: 0x0040, 0xd16: 0x0040, 0xd17: 0x0040,\n\t0xd18: 0x0040, 0xd19: 0x0040, 0xd1a: 0x0040, 0xd1b: 0x0040, 0xd1c: 0x0040, 0xd1d: 0x0040,\n\t0xd1e: 0x0040, 0xd1f: 0x0040, 0xd20: 0x0049, 0xd21: 0x0029, 0xd22: 0x0031, 0xd23: 0x06e9,\n\t0xd24: 0x06f1, 0xd25: 0x06f9, 0xd26: 0x0701, 0xd27: 0x0709, 0xd28: 0x0711, 0xd29: 0x0879,\n\t0xd2a: 0x0881, 0xd2b: 0x0889, 0xd2c: 0x0891, 0xd2d: 0x0899, 0xd2e: 0x08a1, 0xd2f: 0x08a9,\n\t0xd30: 0x08b1, 0xd31: 0x08b9, 0xd32: 0x08c1, 0xd33: 0x08c9, 0xd34: 0x0a1e, 0xd35: 0x0a3e,\n\t0xd36: 0x0a5e, 0xd37: 0x0a7e, 0xd38: 0x0a9e, 0xd39: 0x0abe, 0xd3a: 0x0ade, 0xd3b: 0x0afe,\n\t0xd3c: 0x0b1e, 0xd3d: 0x08d2, 0xd3e: 0x08da, 0xd3f: 0x08e2,\n\t// Block 0x35, offset 0xd40\n\t0xd40: 0x08ea, 0xd41: 0x08f2, 0xd42: 0x08fa, 0xd43: 0x0902, 0xd44: 0x090a, 0xd45: 0x0912,\n\t0xd46: 0x091a, 0xd47: 0x0922, 0xd48: 0x0040, 0xd49: 0x0040, 0xd4a: 0x0040, 0xd4b: 0x0040,\n\t0xd4c: 0x0040, 0xd4d: 0x0040, 0xd4e: 0x0040, 0xd4f: 0x0040, 0xd50: 0x0040, 0xd51: 0x0040,\n\t0xd52: 0x0040, 0xd53: 0x0040, 0xd54: 0x0040, 0xd55: 0x0040, 0xd56: 0x0040, 0xd57: 0x0040,\n\t0xd58: 0x0040, 0xd59: 0x0040, 0xd5a: 0x0040, 0xd5b: 0x0040, 0xd5c: 0x0b3e, 0xd5d: 0x0b5e,\n\t0xd5e: 0x0b7e, 0xd5f: 0x0b9e, 0xd60: 0x0bbe, 0xd61: 0x0bde, 0xd62: 0x0bfe, 0xd63: 0x0c1e,\n\t0xd64: 0x0c3e, 0xd65: 0x0c5e, 0xd66: 0x0c7e, 0xd67: 0x0c9e, 0xd68: 0x0cbe, 0xd69: 0x0cde,\n\t0xd6a: 0x0cfe, 0xd6b: 0x0d1e, 0xd6c: 0x0d3e, 0xd6d: 0x0d5e, 0xd6e: 0x0d7e, 0xd6f: 0x0d9e,\n\t0xd70: 0x0dbe, 0xd71: 0x0dde, 0xd72: 0x0dfe, 0xd73: 0x0e1e, 0xd74: 0x0e3e, 0xd75: 0x0e5e,\n\t0xd76: 0x0019, 0xd77: 0x02e9, 0xd78: 0x03d9, 0xd79: 0x02f1, 0xd7a: 0x02f9, 0xd7b: 0x03f1,\n\t0xd7c: 0x0309, 0xd7d: 0x00a9, 0xd7e: 0x0311, 0xd7f: 0x00b1,\n\t// Block 0x36, offset 0xd80\n\t0xd80: 0x0319, 0xd81: 0x0101, 0xd82: 0x0321, 0xd83: 0x0329, 0xd84: 0x0051, 0xd85: 0x0339,\n\t0xd86: 0x0751, 0xd87: 0x00b9, 0xd88: 0x0089, 0xd89: 0x0341, 0xd8a: 0x0349, 0xd8b: 0x0391,\n\t0xd8c: 0x00c1, 0xd8d: 0x0109, 0xd8e: 0x00c9, 0xd8f: 0x04b1, 0xd90: 0x0019, 0xd91: 0x02e9,\n\t0xd92: 0x03d9, 0xd93: 0x02f1, 0xd94: 0x02f9, 0xd95: 0x03f1, 0xd96: 0x0309, 0xd97: 0x00a9,\n\t0xd98: 0x0311, 0xd99: 0x00b1, 0xd9a: 0x0319, 0xd9b: 0x0101, 0xd9c: 0x0321, 0xd9d: 0x0329,\n\t0xd9e: 0x0051, 0xd9f: 0x0339, 0xda0: 0x0751, 0xda1: 0x00b9, 0xda2: 0x0089, 0xda3: 0x0341,\n\t0xda4: 0x0349, 0xda5: 0x0391, 0xda6: 0x00c1, 0xda7: 0x0109, 0xda8: 0x00c9, 0xda9: 0x04b1,\n\t0xdaa: 0x06e1, 0xdab: 0x0018, 0xdac: 0x0018, 0xdad: 0x0018, 0xdae: 0x0018, 0xdaf: 0x0018,\n\t0xdb0: 0x0018, 0xdb1: 0x0018, 0xdb2: 0x0018, 0xdb3: 0x0018, 0xdb4: 0x0018, 0xdb5: 0x0018,\n\t0xdb6: 0x0018, 0xdb7: 0x0018, 0xdb8: 0x0018, 0xdb9: 0x0018, 0xdba: 0x0018, 0xdbb: 0x0018,\n\t0xdbc: 0x0018, 0xdbd: 0x0018, 0xdbe: 0x0018, 0xdbf: 0x0018,\n\t// Block 0x37, offset 0xdc0\n\t0xdc0: 0x0008, 0xdc1: 0x0008, 0xdc2: 0x0008, 0xdc3: 0x0008, 0xdc4: 0x0008, 0xdc5: 0x0008,\n\t0xdc6: 0x0008, 0xdc7: 0x0008, 0xdc8: 0x0008, 0xdc9: 0x0008, 0xdca: 0x0008, 0xdcb: 0x0008,\n\t0xdcc: 0x0008, 0xdcd: 0x0008, 0xdce: 0x0008, 0xdcf: 0x0008, 0xdd0: 0x0008, 0xdd1: 0x0008,\n\t0xdd2: 0x0008, 0xdd3: 0x0008, 0xdd4: 0x0008, 0xdd5: 0x0008, 0xdd6: 0x0008, 0xdd7: 0x0008,\n\t0xdd8: 0x0008, 0xdd9: 0x0008, 0xdda: 0x0008, 0xddb: 0x0008, 0xddc: 0x0008, 0xddd: 0x0008,\n\t0xdde: 0x0008, 0xddf: 0x0040, 0xde0: 0xe00d, 0xde1: 0x0008, 0xde2: 0x0941, 0xde3: 0x0ed5,\n\t0xde4: 0x0949, 0xde5: 0x0008, 0xde6: 0x0008, 0xde7: 0xe07d, 0xde8: 0x0008, 0xde9: 0xe01d,\n\t0xdea: 0x0008, 0xdeb: 0xe03d, 0xdec: 0x0008, 0xded: 0x0359, 0xdee: 0x0441, 0xdef: 0x0351,\n\t0xdf0: 0x03d1, 0xdf1: 0x0008, 0xdf2: 0xe00d, 0xdf3: 0x0008, 0xdf4: 0x0008, 0xdf5: 0xe01d,\n\t0xdf6: 0x0008, 0xdf7: 0x0008, 0xdf8: 0x0008, 0xdf9: 0x0008, 0xdfa: 0x0008, 0xdfb: 0x0008,\n\t0xdfc: 0x00b1, 0xdfd: 0x0391, 0xdfe: 0x0951, 0xdff: 0x0959,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0xe00d, 0xe01: 0x0008, 0xe02: 0xe00d, 0xe03: 0x0008, 0xe04: 0xe00d, 0xe05: 0x0008,\n\t0xe06: 0xe00d, 0xe07: 0x0008, 0xe08: 0xe00d, 0xe09: 0x0008, 0xe0a: 0xe00d, 0xe0b: 0x0008,\n\t0xe0c: 0xe00d, 0xe0d: 0x0008, 0xe0e: 0xe00d, 0xe0f: 0x0008, 0xe10: 0xe00d, 0xe11: 0x0008,\n\t0xe12: 0xe00d, 0xe13: 0x0008, 0xe14: 0xe00d, 0xe15: 0x0008, 0xe16: 0xe00d, 0xe17: 0x0008,\n\t0xe18: 0xe00d, 0xe19: 0x0008, 0xe1a: 0xe00d, 0xe1b: 0x0008, 0xe1c: 0xe00d, 0xe1d: 0x0008,\n\t0xe1e: 0xe00d, 0xe1f: 0x0008, 0xe20: 0xe00d, 0xe21: 0x0008, 0xe22: 0xe00d, 0xe23: 0x0008,\n\t0xe24: 0x0008, 0xe25: 0x0018, 0xe26: 0x0018, 0xe27: 0x0018, 0xe28: 0x0018, 0xe29: 0x0018,\n\t0xe2a: 0x0018, 0xe2b: 0xe03d, 0xe2c: 0x0008, 0xe2d: 0xe01d, 0xe2e: 0x0008, 0xe2f: 0x3308,\n\t0xe30: 0x3308, 0xe31: 0x3308, 0xe32: 0xe00d, 0xe33: 0x0008, 0xe34: 0x0040, 0xe35: 0x0040,\n\t0xe36: 0x0040, 0xe37: 0x0040, 0xe38: 0x0040, 0xe39: 0x0018, 0xe3a: 0x0018, 0xe3b: 0x0018,\n\t0xe3c: 0x0018, 0xe3d: 0x0018, 0xe3e: 0x0018, 0xe3f: 0x0018,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x2715, 0xe41: 0x2735, 0xe42: 0x2755, 0xe43: 0x2775, 0xe44: 0x2795, 0xe45: 0x27b5,\n\t0xe46: 0x27d5, 0xe47: 0x27f5, 0xe48: 0x2815, 0xe49: 0x2835, 0xe4a: 0x2855, 0xe4b: 0x2875,\n\t0xe4c: 0x2895, 0xe4d: 0x28b5, 0xe4e: 0x28d5, 0xe4f: 0x28f5, 0xe50: 0x2915, 0xe51: 0x2935,\n\t0xe52: 0x2955, 0xe53: 0x2975, 0xe54: 0x2995, 0xe55: 0x29b5, 0xe56: 0x0040, 0xe57: 0x0040,\n\t0xe58: 0x0040, 0xe59: 0x0040, 0xe5a: 0x0040, 0xe5b: 0x0040, 0xe5c: 0x0040, 0xe5d: 0x0040,\n\t0xe5e: 0x0040, 0xe5f: 0x0040, 0xe60: 0x0040, 0xe61: 0x0040, 0xe62: 0x0040, 0xe63: 0x0040,\n\t0xe64: 0x0040, 0xe65: 0x0040, 0xe66: 0x0040, 0xe67: 0x0040, 0xe68: 0x0040, 0xe69: 0x0040,\n\t0xe6a: 0x0040, 0xe6b: 0x0040, 0xe6c: 0x0040, 0xe6d: 0x0040, 0xe6e: 0x0040, 0xe6f: 0x0040,\n\t0xe70: 0x0040, 0xe71: 0x0040, 0xe72: 0x0040, 0xe73: 0x0040, 0xe74: 0x0040, 0xe75: 0x0040,\n\t0xe76: 0x0040, 0xe77: 0x0040, 0xe78: 0x0040, 0xe79: 0x0040, 0xe7a: 0x0040, 0xe7b: 0x0040,\n\t0xe7c: 0x0040, 0xe7d: 0x0040, 0xe7e: 0x0040, 0xe7f: 0x0040,\n\t// Block 0x3a, offset 0xe80\n\t0xe80: 0x000a, 0xe81: 0x0018, 0xe82: 0x0961, 0xe83: 0x0018, 0xe84: 0x0018, 0xe85: 0x0008,\n\t0xe86: 0x0008, 0xe87: 0x0008, 0xe88: 0x0018, 0xe89: 0x0018, 0xe8a: 0x0018, 0xe8b: 0x0018,\n\t0xe8c: 0x0018, 0xe8d: 0x0018, 0xe8e: 0x0018, 0xe8f: 0x0018, 0xe90: 0x0018, 0xe91: 0x0018,\n\t0xe92: 0x0018, 0xe93: 0x0018, 0xe94: 0x0018, 0xe95: 0x0018, 0xe96: 0x0018, 0xe97: 0x0018,\n\t0xe98: 0x0018, 0xe99: 0x0018, 0xe9a: 0x0018, 0xe9b: 0x0018, 0xe9c: 0x0018, 0xe9d: 0x0018,\n\t0xe9e: 0x0018, 0xe9f: 0x0018, 0xea0: 0x0018, 0xea1: 0x0018, 0xea2: 0x0018, 0xea3: 0x0018,\n\t0xea4: 0x0018, 0xea5: 0x0018, 0xea6: 0x0018, 0xea7: 0x0018, 0xea8: 0x0018, 0xea9: 0x0018,\n\t0xeaa: 0x3308, 0xeab: 0x3308, 0xeac: 0x3308, 0xead: 0x3308, 0xeae: 0x3018, 0xeaf: 0x3018,\n\t0xeb0: 0x0018, 0xeb1: 0x0018, 0xeb2: 0x0018, 0xeb3: 0x0018, 0xeb4: 0x0018, 0xeb5: 0x0018,\n\t0xeb6: 0xe125, 0xeb7: 0x0018, 0xeb8: 0x29d5, 0xeb9: 0x29f5, 0xeba: 0x2a15, 0xebb: 0x0018,\n\t0xebc: 0x0008, 0xebd: 0x0018, 0xebe: 0x0018, 0xebf: 0x0018,\n\t// Block 0x3b, offset 0xec0\n\t0xec0: 0x2b55, 0xec1: 0x2b75, 0xec2: 0x2b95, 0xec3: 0x2bb5, 0xec4: 0x2bd5, 0xec5: 0x2bf5,\n\t0xec6: 0x2bf5, 0xec7: 0x2bf5, 0xec8: 0x2c15, 0xec9: 0x2c15, 0xeca: 0x2c15, 0xecb: 0x2c15,\n\t0xecc: 0x2c35, 0xecd: 0x2c35, 0xece: 0x2c35, 0xecf: 0x2c55, 0xed0: 0x2c75, 0xed1: 0x2c75,\n\t0xed2: 0x2a95, 0xed3: 0x2a95, 0xed4: 0x2c75, 0xed5: 0x2c75, 0xed6: 0x2c95, 0xed7: 0x2c95,\n\t0xed8: 0x2c75, 0xed9: 0x2c75, 0xeda: 0x2a95, 0xedb: 0x2a95, 0xedc: 0x2c75, 0xedd: 0x2c75,\n\t0xede: 0x2c55, 0xedf: 0x2c55, 0xee0: 0x2cb5, 0xee1: 0x2cb5, 0xee2: 0x2cd5, 0xee3: 0x2cd5,\n\t0xee4: 0x0040, 0xee5: 0x2cf5, 0xee6: 0x2d15, 0xee7: 0x2d35, 0xee8: 0x2d35, 0xee9: 0x2d55,\n\t0xeea: 0x2d75, 0xeeb: 0x2d95, 0xeec: 0x2db5, 0xeed: 0x2dd5, 0xeee: 0x2df5, 0xeef: 0x2e15,\n\t0xef0: 0x2e35, 0xef1: 0x2e55, 0xef2: 0x2e55, 0xef3: 0x2e75, 0xef4: 0x2e95, 0xef5: 0x2e95,\n\t0xef6: 0x2eb5, 0xef7: 0x2ed5, 0xef8: 0x2e75, 0xef9: 0x2ef5, 0xefa: 0x2f15, 0xefb: 0x2ef5,\n\t0xefc: 0x2e75, 0xefd: 0x2f35, 0xefe: 0x2f55, 0xeff: 0x2f75,\n\t// Block 0x3c, offset 0xf00\n\t0xf00: 0x2f95, 0xf01: 0x2fb5, 0xf02: 0x2d15, 0xf03: 0x2cf5, 0xf04: 0x2fd5, 0xf05: 0x2ff5,\n\t0xf06: 0x3015, 0xf07: 0x3035, 0xf08: 0x3055, 0xf09: 0x3075, 0xf0a: 0x3095, 0xf0b: 0x30b5,\n\t0xf0c: 0x30d5, 0xf0d: 0x30f5, 0xf0e: 0x3115, 0xf0f: 0x0040, 0xf10: 0x0018, 0xf11: 0x0018,\n\t0xf12: 0x3135, 0xf13: 0x3155, 0xf14: 0x3175, 0xf15: 0x3195, 0xf16: 0x31b5, 0xf17: 0x31d5,\n\t0xf18: 0x31f5, 0xf19: 0x3215, 0xf1a: 0x3235, 0xf1b: 0x3255, 0xf1c: 0x3175, 0xf1d: 0x3275,\n\t0xf1e: 0x3295, 0xf1f: 0x32b5, 0xf20: 0x0008, 0xf21: 0x0008, 0xf22: 0x0008, 0xf23: 0x0008,\n\t0xf24: 0x0008, 0xf25: 0x0008, 0xf26: 0x0008, 0xf27: 0x0008, 0xf28: 0x0008, 0xf29: 0x0008,\n\t0xf2a: 0x0008, 0xf2b: 0x0008, 0xf2c: 0x0008, 0xf2d: 0x0008, 0xf2e: 0x0008, 0xf2f: 0x0008,\n\t0xf30: 0x0008, 0xf31: 0x0008, 0xf32: 0x0008, 0xf33: 0x0008, 0xf34: 0x0008, 0xf35: 0x0008,\n\t0xf36: 0x0008, 0xf37: 0x0008, 0xf38: 0x0008, 0xf39: 0x0008, 0xf3a: 0x0008, 0xf3b: 0x0008,\n\t0xf3c: 0x0008, 0xf3d: 0x0008, 0xf3e: 0x0008, 0xf3f: 0x0008,\n\t// Block 0x3d, offset 0xf40\n\t0xf40: 0x0b82, 0xf41: 0x0b8a, 0xf42: 0x0b92, 0xf43: 0x0b9a, 0xf44: 0x32d5, 0xf45: 0x32f5,\n\t0xf46: 0x3315, 0xf47: 0x3335, 0xf48: 0x0018, 0xf49: 0x0018, 0xf4a: 0x0018, 0xf4b: 0x0018,\n\t0xf4c: 0x0018, 0xf4d: 0x0018, 0xf4e: 0x0018, 0xf4f: 0x0018, 0xf50: 0x3355, 0xf51: 0x0ba1,\n\t0xf52: 0x0ba9, 0xf53: 0x0bb1, 0xf54: 0x0bb9, 0xf55: 0x0bc1, 0xf56: 0x0bc9, 0xf57: 0x0bd1,\n\t0xf58: 0x0bd9, 0xf59: 0x0be1, 0xf5a: 0x0be9, 0xf5b: 0x0bf1, 0xf5c: 0x0bf9, 0xf5d: 0x0c01,\n\t0xf5e: 0x0c09, 0xf5f: 0x0c11, 0xf60: 0x3375, 0xf61: 0x3395, 0xf62: 0x33b5, 0xf63: 0x33d5,\n\t0xf64: 0x33f5, 0xf65: 0x33f5, 0xf66: 0x3415, 0xf67: 0x3435, 0xf68: 0x3455, 0xf69: 0x3475,\n\t0xf6a: 0x3495, 0xf6b: 0x34b5, 0xf6c: 0x34d5, 0xf6d: 0x34f5, 0xf6e: 0x3515, 0xf6f: 0x3535,\n\t0xf70: 0x3555, 0xf71: 0x3575, 0xf72: 0x3595, 0xf73: 0x35b5, 0xf74: 0x35d5, 0xf75: 0x35f5,\n\t0xf76: 0x3615, 0xf77: 0x3635, 0xf78: 0x3655, 0xf79: 0x3675, 0xf7a: 0x3695, 0xf7b: 0x36b5,\n\t0xf7c: 0x0c19, 0xf7d: 0x0c21, 0xf7e: 0x36d5, 0xf7f: 0x0018,\n\t// Block 0x3e, offset 0xf80\n\t0xf80: 0x36f5, 0xf81: 0x3715, 0xf82: 0x3735, 0xf83: 0x3755, 0xf84: 0x3775, 0xf85: 0x3795,\n\t0xf86: 0x37b5, 0xf87: 0x37d5, 0xf88: 0x37f5, 0xf89: 0x3815, 0xf8a: 0x3835, 0xf8b: 0x3855,\n\t0xf8c: 0x3875, 0xf8d: 0x3895, 0xf8e: 0x38b5, 0xf8f: 0x38d5, 0xf90: 0x38f5, 0xf91: 0x3915,\n\t0xf92: 0x3935, 0xf93: 0x3955, 0xf94: 0x3975, 0xf95: 0x3995, 0xf96: 0x39b5, 0xf97: 0x39d5,\n\t0xf98: 0x39f5, 0xf99: 0x3a15, 0xf9a: 0x3a35, 0xf9b: 0x3a55, 0xf9c: 0x3a75, 0xf9d: 0x3a95,\n\t0xf9e: 0x3ab5, 0xf9f: 0x3ad5, 0xfa0: 0x3af5, 0xfa1: 0x3b15, 0xfa2: 0x3b35, 0xfa3: 0x3b55,\n\t0xfa4: 0x3b75, 0xfa5: 0x3b95, 0xfa6: 0x1295, 0xfa7: 0x3bb5, 0xfa8: 0x3bd5, 0xfa9: 0x3bf5,\n\t0xfaa: 0x3c15, 0xfab: 0x3c35, 0xfac: 0x3c55, 0xfad: 0x3c75, 0xfae: 0x23b5, 0xfaf: 0x3c95,\n\t0xfb0: 0x3cb5, 0xfb1: 0x0c29, 0xfb2: 0x0c31, 0xfb3: 0x0c39, 0xfb4: 0x0c41, 0xfb5: 0x0c49,\n\t0xfb6: 0x0c51, 0xfb7: 0x0c59, 0xfb8: 0x0c61, 0xfb9: 0x0c69, 0xfba: 0x0c71, 0xfbb: 0x0c79,\n\t0xfbc: 0x0c81, 0xfbd: 0x0c89, 0xfbe: 0x0c91, 0xfbf: 0x0c99,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc0: 0x0ca1, 0xfc1: 0x0ca9, 0xfc2: 0x0cb1, 0xfc3: 0x0cb9, 0xfc4: 0x0cc1, 0xfc5: 0x0cc9,\n\t0xfc6: 0x0cd1, 0xfc7: 0x0cd9, 0xfc8: 0x0ce1, 0xfc9: 0x0ce9, 0xfca: 0x0cf1, 0xfcb: 0x0cf9,\n\t0xfcc: 0x0d01, 0xfcd: 0x3cd5, 0xfce: 0x0d09, 0xfcf: 0x3cf5, 0xfd0: 0x3d15, 0xfd1: 0x3d2d,\n\t0xfd2: 0x3d45, 0xfd3: 0x3d5d, 0xfd4: 0x3d75, 0xfd5: 0x3d75, 0xfd6: 0x3d5d, 0xfd7: 0x3d8d,\n\t0xfd8: 0x07d5, 0xfd9: 0x3da5, 0xfda: 0x3dbd, 0xfdb: 0x3dd5, 0xfdc: 0x3ded, 0xfdd: 0x3e05,\n\t0xfde: 0x3e1d, 0xfdf: 0x3e35, 0xfe0: 0x3e4d, 0xfe1: 0x3e65, 0xfe2: 0x3e7d, 0xfe3: 0x3e95,\n\t0xfe4: 0x3ead, 0xfe5: 0x3ead, 0xfe6: 0x3ec5, 0xfe7: 0x3ec5, 0xfe8: 0x3edd, 0xfe9: 0x3edd,\n\t0xfea: 0x3ef5, 0xfeb: 0x3f0d, 0xfec: 0x3f25, 0xfed: 0x3f3d, 0xfee: 0x3f55, 0xfef: 0x3f55,\n\t0xff0: 0x3f6d, 0xff1: 0x3f6d, 0xff2: 0x3f6d, 0xff3: 0x3f85, 0xff4: 0x3f9d, 0xff5: 0x3fb5,\n\t0xff6: 0x3fcd, 0xff7: 0x3fb5, 0xff8: 0x3fe5, 0xff9: 0x3ffd, 0xffa: 0x3f85, 0xffb: 0x4015,\n\t0xffc: 0x402d, 0xffd: 0x402d, 0xffe: 0x402d, 0xfff: 0x0d11,\n\t// Block 0x40, offset 0x1000\n\t0x1000: 0x10f9, 0x1001: 0x1101, 0x1002: 0x40a5, 0x1003: 0x1109, 0x1004: 0x1111, 0x1005: 0x1119,\n\t0x1006: 0x1121, 0x1007: 0x1129, 0x1008: 0x40c5, 0x1009: 0x1131, 0x100a: 0x1139, 0x100b: 0x1141,\n\t0x100c: 0x40e5, 0x100d: 0x40e5, 0x100e: 0x1149, 0x100f: 0x1151, 0x1010: 0x1159, 0x1011: 0x4105,\n\t0x1012: 0x4125, 0x1013: 0x4145, 0x1014: 0x4165, 0x1015: 0x4185, 0x1016: 0x1161, 0x1017: 0x1169,\n\t0x1018: 0x1171, 0x1019: 0x1179, 0x101a: 0x1181, 0x101b: 0x41a5, 0x101c: 0x1189, 0x101d: 0x1191,\n\t0x101e: 0x1199, 0x101f: 0x41c5, 0x1020: 0x41e5, 0x1021: 0x11a1, 0x1022: 0x4205, 0x1023: 0x4225,\n\t0x1024: 0x4245, 0x1025: 0x11a9, 0x1026: 0x4265, 0x1027: 0x11b1, 0x1028: 0x11b9, 0x1029: 0x10f9,\n\t0x102a: 0x4285, 0x102b: 0x42a5, 0x102c: 0x42c5, 0x102d: 0x42e5, 0x102e: 0x11c1, 0x102f: 0x11c9,\n\t0x1030: 0x11d1, 0x1031: 0x11d9, 0x1032: 0x4305, 0x1033: 0x11e1, 0x1034: 0x11e9, 0x1035: 0x11f1,\n\t0x1036: 0x4325, 0x1037: 0x11f9, 0x1038: 0x1201, 0x1039: 0x11f9, 0x103a: 0x1209, 0x103b: 0x1211,\n\t0x103c: 0x4345, 0x103d: 0x1219, 0x103e: 0x1221, 0x103f: 0x1219,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x4365, 0x1041: 0x4385, 0x1042: 0x0040, 0x1043: 0x1229, 0x1044: 0x1231, 0x1045: 0x1239,\n\t0x1046: 0x1241, 0x1047: 0x0040, 0x1048: 0x1249, 0x1049: 0x1251, 0x104a: 0x1259, 0x104b: 0x1261,\n\t0x104c: 0x1269, 0x104d: 0x1271, 0x104e: 0x1199, 0x104f: 0x1279, 0x1050: 0x1281, 0x1051: 0x1289,\n\t0x1052: 0x43a5, 0x1053: 0x1291, 0x1054: 0x1121, 0x1055: 0x43c5, 0x1056: 0x43e5, 0x1057: 0x1299,\n\t0x1058: 0x0040, 0x1059: 0x4405, 0x105a: 0x12a1, 0x105b: 0x12a9, 0x105c: 0x12b1, 0x105d: 0x12b9,\n\t0x105e: 0x12c1, 0x105f: 0x12c9, 0x1060: 0x12d1, 0x1061: 0x12d9, 0x1062: 0x12e1, 0x1063: 0x12e9,\n\t0x1064: 0x12f1, 0x1065: 0x12f9, 0x1066: 0x1301, 0x1067: 0x1309, 0x1068: 0x1311, 0x1069: 0x1319,\n\t0x106a: 0x1321, 0x106b: 0x1329, 0x106c: 0x1331, 0x106d: 0x1339, 0x106e: 0x1341, 0x106f: 0x1349,\n\t0x1070: 0x1351, 0x1071: 0x1359, 0x1072: 0x1361, 0x1073: 0x1369, 0x1074: 0x1371, 0x1075: 0x1379,\n\t0x1076: 0x1381, 0x1077: 0x1389, 0x1078: 0x1391, 0x1079: 0x1399, 0x107a: 0x13a1, 0x107b: 0x13a9,\n\t0x107c: 0x13b1, 0x107d: 0x13b9, 0x107e: 0x13c1, 0x107f: 0x4425,\n\t// Block 0x42, offset 0x1080\n\t0x1080: 0xe00d, 0x1081: 0x0008, 0x1082: 0xe00d, 0x1083: 0x0008, 0x1084: 0xe00d, 0x1085: 0x0008,\n\t0x1086: 0xe00d, 0x1087: 0x0008, 0x1088: 0xe00d, 0x1089: 0x0008, 0x108a: 0xe00d, 0x108b: 0x0008,\n\t0x108c: 0xe00d, 0x108d: 0x0008, 0x108e: 0xe00d, 0x108f: 0x0008, 0x1090: 0xe00d, 0x1091: 0x0008,\n\t0x1092: 0xe00d, 0x1093: 0x0008, 0x1094: 0xe00d, 0x1095: 0x0008, 0x1096: 0xe00d, 0x1097: 0x0008,\n\t0x1098: 0xe00d, 0x1099: 0x0008, 0x109a: 0xe00d, 0x109b: 0x0008, 0x109c: 0xe00d, 0x109d: 0x0008,\n\t0x109e: 0xe00d, 0x109f: 0x0008, 0x10a0: 0xe00d, 0x10a1: 0x0008, 0x10a2: 0xe00d, 0x10a3: 0x0008,\n\t0x10a4: 0xe00d, 0x10a5: 0x0008, 0x10a6: 0xe00d, 0x10a7: 0x0008, 0x10a8: 0xe00d, 0x10a9: 0x0008,\n\t0x10aa: 0xe00d, 0x10ab: 0x0008, 0x10ac: 0xe00d, 0x10ad: 0x0008, 0x10ae: 0x0008, 0x10af: 0x3308,\n\t0x10b0: 0x3318, 0x10b1: 0x3318, 0x10b2: 0x3318, 0x10b3: 0x0018, 0x10b4: 0x3308, 0x10b5: 0x3308,\n\t0x10b6: 0x3308, 0x10b7: 0x3308, 0x10b8: 0x3308, 0x10b9: 0x3308, 0x10ba: 0x3308, 0x10bb: 0x3308,\n\t0x10bc: 0x3308, 0x10bd: 0x3308, 0x10be: 0x0018, 0x10bf: 0x0008,\n\t// Block 0x43, offset 0x10c0\n\t0x10c0: 0xe00d, 0x10c1: 0x0008, 0x10c2: 0xe00d, 0x10c3: 0x0008, 0x10c4: 0xe00d, 0x10c5: 0x0008,\n\t0x10c6: 0xe00d, 0x10c7: 0x0008, 0x10c8: 0xe00d, 0x10c9: 0x0008, 0x10ca: 0xe00d, 0x10cb: 0x0008,\n\t0x10cc: 0xe00d, 0x10cd: 0x0008, 0x10ce: 0xe00d, 0x10cf: 0x0008, 0x10d0: 0xe00d, 0x10d1: 0x0008,\n\t0x10d2: 0xe00d, 0x10d3: 0x0008, 0x10d4: 0xe00d, 0x10d5: 0x0008, 0x10d6: 0xe00d, 0x10d7: 0x0008,\n\t0x10d8: 0xe00d, 0x10d9: 0x0008, 0x10da: 0xe00d, 0x10db: 0x0008, 0x10dc: 0x02d1, 0x10dd: 0x13c9,\n\t0x10de: 0x3308, 0x10df: 0x3308, 0x10e0: 0x0008, 0x10e1: 0x0008, 0x10e2: 0x0008, 0x10e3: 0x0008,\n\t0x10e4: 0x0008, 0x10e5: 0x0008, 0x10e6: 0x0008, 0x10e7: 0x0008, 0x10e8: 0x0008, 0x10e9: 0x0008,\n\t0x10ea: 0x0008, 0x10eb: 0x0008, 0x10ec: 0x0008, 0x10ed: 0x0008, 0x10ee: 0x0008, 0x10ef: 0x0008,\n\t0x10f0: 0x0008, 0x10f1: 0x0008, 0x10f2: 0x0008, 0x10f3: 0x0008, 0x10f4: 0x0008, 0x10f5: 0x0008,\n\t0x10f6: 0x0008, 0x10f7: 0x0008, 0x10f8: 0x0008, 0x10f9: 0x0008, 0x10fa: 0x0008, 0x10fb: 0x0008,\n\t0x10fc: 0x0008, 0x10fd: 0x0008, 0x10fe: 0x0008, 0x10ff: 0x0008,\n\t// Block 0x44, offset 0x1100\n\t0x1100: 0x0018, 0x1101: 0x0018, 0x1102: 0x0018, 0x1103: 0x0018, 0x1104: 0x0018, 0x1105: 0x0018,\n\t0x1106: 0x0018, 0x1107: 0x0018, 0x1108: 0x0018, 0x1109: 0x0018, 0x110a: 0x0018, 0x110b: 0x0018,\n\t0x110c: 0x0018, 0x110d: 0x0018, 0x110e: 0x0018, 0x110f: 0x0018, 0x1110: 0x0018, 0x1111: 0x0018,\n\t0x1112: 0x0018, 0x1113: 0x0018, 0x1114: 0x0018, 0x1115: 0x0018, 0x1116: 0x0018, 0x1117: 0x0008,\n\t0x1118: 0x0008, 0x1119: 0x0008, 0x111a: 0x0008, 0x111b: 0x0008, 0x111c: 0x0008, 0x111d: 0x0008,\n\t0x111e: 0x0008, 0x111f: 0x0008, 0x1120: 0x0018, 0x1121: 0x0018, 0x1122: 0xe00d, 0x1123: 0x0008,\n\t0x1124: 0xe00d, 0x1125: 0x0008, 0x1126: 0xe00d, 0x1127: 0x0008, 0x1128: 0xe00d, 0x1129: 0x0008,\n\t0x112a: 0xe00d, 0x112b: 0x0008, 0x112c: 0xe00d, 0x112d: 0x0008, 0x112e: 0xe00d, 0x112f: 0x0008,\n\t0x1130: 0x0008, 0x1131: 0x0008, 0x1132: 0xe00d, 0x1133: 0x0008, 0x1134: 0xe00d, 0x1135: 0x0008,\n\t0x1136: 0xe00d, 0x1137: 0x0008, 0x1138: 0xe00d, 0x1139: 0x0008, 0x113a: 0xe00d, 0x113b: 0x0008,\n\t0x113c: 0xe00d, 0x113d: 0x0008, 0x113e: 0xe00d, 0x113f: 0x0008,\n\t// Block 0x45, offset 0x1140\n\t0x1140: 0xe00d, 0x1141: 0x0008, 0x1142: 0xe00d, 0x1143: 0x0008, 0x1144: 0xe00d, 0x1145: 0x0008,\n\t0x1146: 0xe00d, 0x1147: 0x0008, 0x1148: 0xe00d, 0x1149: 0x0008, 0x114a: 0xe00d, 0x114b: 0x0008,\n\t0x114c: 0xe00d, 0x114d: 0x0008, 0x114e: 0xe00d, 0x114f: 0x0008, 0x1150: 0xe00d, 0x1151: 0x0008,\n\t0x1152: 0xe00d, 0x1153: 0x0008, 0x1154: 0xe00d, 0x1155: 0x0008, 0x1156: 0xe00d, 0x1157: 0x0008,\n\t0x1158: 0xe00d, 0x1159: 0x0008, 0x115a: 0xe00d, 0x115b: 0x0008, 0x115c: 0xe00d, 0x115d: 0x0008,\n\t0x115e: 0xe00d, 0x115f: 0x0008, 0x1160: 0xe00d, 0x1161: 0x0008, 0x1162: 0xe00d, 0x1163: 0x0008,\n\t0x1164: 0xe00d, 0x1165: 0x0008, 0x1166: 0xe00d, 0x1167: 0x0008, 0x1168: 0xe00d, 0x1169: 0x0008,\n\t0x116a: 0xe00d, 0x116b: 0x0008, 0x116c: 0xe00d, 0x116d: 0x0008, 0x116e: 0xe00d, 0x116f: 0x0008,\n\t0x1170: 0xe0fd, 0x1171: 0x0008, 0x1172: 0x0008, 0x1173: 0x0008, 0x1174: 0x0008, 0x1175: 0x0008,\n\t0x1176: 0x0008, 0x1177: 0x0008, 0x1178: 0x0008, 0x1179: 0xe01d, 0x117a: 0x0008, 0x117b: 0xe03d,\n\t0x117c: 0x0008, 0x117d: 0x4445, 0x117e: 0xe00d, 0x117f: 0x0008,\n\t// Block 0x46, offset 0x1180\n\t0x1180: 0xe00d, 0x1181: 0x0008, 0x1182: 0xe00d, 0x1183: 0x0008, 0x1184: 0xe00d, 0x1185: 0x0008,\n\t0x1186: 0xe00d, 0x1187: 0x0008, 0x1188: 0x0008, 0x1189: 0x0018, 0x118a: 0x0018, 0x118b: 0xe03d,\n\t0x118c: 0x0008, 0x118d: 0x0409, 0x118e: 0x0008, 0x118f: 0x0008, 0x1190: 0xe00d, 0x1191: 0x0008,\n\t0x1192: 0xe00d, 0x1193: 0x0008, 0x1194: 0x0008, 0x1195: 0x0008, 0x1196: 0xe00d, 0x1197: 0x0008,\n\t0x1198: 0xe00d, 0x1199: 0x0008, 0x119a: 0xe00d, 0x119b: 0x0008, 0x119c: 0xe00d, 0x119d: 0x0008,\n\t0x119e: 0xe00d, 0x119f: 0x0008, 0x11a0: 0xe00d, 0x11a1: 0x0008, 0x11a2: 0xe00d, 0x11a3: 0x0008,\n\t0x11a4: 0xe00d, 0x11a5: 0x0008, 0x11a6: 0xe00d, 0x11a7: 0x0008, 0x11a8: 0xe00d, 0x11a9: 0x0008,\n\t0x11aa: 0x13d1, 0x11ab: 0x0371, 0x11ac: 0x0401, 0x11ad: 0x13d9, 0x11ae: 0x0421, 0x11af: 0x0008,\n\t0x11b0: 0x13e1, 0x11b1: 0x13e9, 0x11b2: 0x0429, 0x11b3: 0x4465, 0x11b4: 0xe00d, 0x11b5: 0x0008,\n\t0x11b6: 0xe00d, 0x11b7: 0x0008, 0x11b8: 0xe00d, 0x11b9: 0x0008, 0x11ba: 0xe00d, 0x11bb: 0x0008,\n\t0x11bc: 0xe00d, 0x11bd: 0x0008, 0x11be: 0xe00d, 0x11bf: 0x0008,\n\t// Block 0x47, offset 0x11c0\n\t0x11c0: 0x650d, 0x11c1: 0x652d, 0x11c2: 0x654d, 0x11c3: 0x656d, 0x11c4: 0x658d, 0x11c5: 0x65ad,\n\t0x11c6: 0x65cd, 0x11c7: 0x65ed, 0x11c8: 0x660d, 0x11c9: 0x662d, 0x11ca: 0x664d, 0x11cb: 0x666d,\n\t0x11cc: 0x668d, 0x11cd: 0x66ad, 0x11ce: 0x0008, 0x11cf: 0x0008, 0x11d0: 0x66cd, 0x11d1: 0x0008,\n\t0x11d2: 0x66ed, 0x11d3: 0x0008, 0x11d4: 0x0008, 0x11d5: 0x670d, 0x11d6: 0x672d, 0x11d7: 0x674d,\n\t0x11d8: 0x676d, 0x11d9: 0x678d, 0x11da: 0x67ad, 0x11db: 0x67cd, 0x11dc: 0x67ed, 0x11dd: 0x680d,\n\t0x11de: 0x682d, 0x11df: 0x0008, 0x11e0: 0x684d, 0x11e1: 0x0008, 0x11e2: 0x686d, 0x11e3: 0x0008,\n\t0x11e4: 0x0008, 0x11e5: 0x688d, 0x11e6: 0x68ad, 0x11e7: 0x0008, 0x11e8: 0x0008, 0x11e9: 0x0008,\n\t0x11ea: 0x68cd, 0x11eb: 0x68ed, 0x11ec: 0x690d, 0x11ed: 0x692d, 0x11ee: 0x694d, 0x11ef: 0x696d,\n\t0x11f0: 0x698d, 0x11f1: 0x69ad, 0x11f2: 0x69cd, 0x11f3: 0x69ed, 0x11f4: 0x6a0d, 0x11f5: 0x6a2d,\n\t0x11f6: 0x6a4d, 0x11f7: 0x6a6d, 0x11f8: 0x6a8d, 0x11f9: 0x6aad, 0x11fa: 0x6acd, 0x11fb: 0x6aed,\n\t0x11fc: 0x6b0d, 0x11fd: 0x6b2d, 0x11fe: 0x6b4d, 0x11ff: 0x6b6d,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0x7acd, 0x1201: 0x7aed, 0x1202: 0x7b0d, 0x1203: 0x7b2d, 0x1204: 0x7b4d, 0x1205: 0x7b6d,\n\t0x1206: 0x7b8d, 0x1207: 0x7bad, 0x1208: 0x7bcd, 0x1209: 0x7bed, 0x120a: 0x7c0d, 0x120b: 0x7c2d,\n\t0x120c: 0x7c4d, 0x120d: 0x7c6d, 0x120e: 0x7c8d, 0x120f: 0x1409, 0x1210: 0x1411, 0x1211: 0x1419,\n\t0x1212: 0x7cad, 0x1213: 0x7ccd, 0x1214: 0x7ced, 0x1215: 0x1421, 0x1216: 0x1429, 0x1217: 0x1431,\n\t0x1218: 0x7d0d, 0x1219: 0x7d2d, 0x121a: 0x0040, 0x121b: 0x0040, 0x121c: 0x0040, 0x121d: 0x0040,\n\t0x121e: 0x0040, 0x121f: 0x0040, 0x1220: 0x0040, 0x1221: 0x0040, 0x1222: 0x0040, 0x1223: 0x0040,\n\t0x1224: 0x0040, 0x1225: 0x0040, 0x1226: 0x0040, 0x1227: 0x0040, 0x1228: 0x0040, 0x1229: 0x0040,\n\t0x122a: 0x0040, 0x122b: 0x0040, 0x122c: 0x0040, 0x122d: 0x0040, 0x122e: 0x0040, 0x122f: 0x0040,\n\t0x1230: 0x0040, 0x1231: 0x0040, 0x1232: 0x0040, 0x1233: 0x0040, 0x1234: 0x0040, 0x1235: 0x0040,\n\t0x1236: 0x0040, 0x1237: 0x0040, 0x1238: 0x0040, 0x1239: 0x0040, 0x123a: 0x0040, 0x123b: 0x0040,\n\t0x123c: 0x0040, 0x123d: 0x0040, 0x123e: 0x0040, 0x123f: 0x0040,\n\t// Block 0x49, offset 0x1240\n\t0x1240: 0x1439, 0x1241: 0x1441, 0x1242: 0x1449, 0x1243: 0x7d4d, 0x1244: 0x7d6d, 0x1245: 0x1451,\n\t0x1246: 0x1451, 0x1247: 0x0040, 0x1248: 0x0040, 0x1249: 0x0040, 0x124a: 0x0040, 0x124b: 0x0040,\n\t0x124c: 0x0040, 0x124d: 0x0040, 0x124e: 0x0040, 0x124f: 0x0040, 0x1250: 0x0040, 0x1251: 0x0040,\n\t0x1252: 0x0040, 0x1253: 0x1459, 0x1254: 0x1461, 0x1255: 0x1469, 0x1256: 0x1471, 0x1257: 0x1479,\n\t0x1258: 0x0040, 0x1259: 0x0040, 0x125a: 0x0040, 0x125b: 0x0040, 0x125c: 0x0040, 0x125d: 0x1481,\n\t0x125e: 0x3308, 0x125f: 0x1489, 0x1260: 0x1491, 0x1261: 0x0779, 0x1262: 0x0791, 0x1263: 0x1499,\n\t0x1264: 0x14a1, 0x1265: 0x14a9, 0x1266: 0x14b1, 0x1267: 0x14b9, 0x1268: 0x14c1, 0x1269: 0x071a,\n\t0x126a: 0x14c9, 0x126b: 0x14d1, 0x126c: 0x14d9, 0x126d: 0x14e1, 0x126e: 0x14e9, 0x126f: 0x14f1,\n\t0x1270: 0x14f9, 0x1271: 0x1501, 0x1272: 0x1509, 0x1273: 0x1511, 0x1274: 0x1519, 0x1275: 0x1521,\n\t0x1276: 0x1529, 0x1277: 0x0040, 0x1278: 0x1531, 0x1279: 0x1539, 0x127a: 0x1541, 0x127b: 0x1549,\n\t0x127c: 0x1551, 0x127d: 0x0040, 0x127e: 0x1559, 0x127f: 0x0040,\n\t// Block 0x4a, offset 0x1280\n\t0x1280: 0x1561, 0x1281: 0x1569, 0x1282: 0x0040, 0x1283: 0x1571, 0x1284: 0x1579, 0x1285: 0x0040,\n\t0x1286: 0x1581, 0x1287: 0x1589, 0x1288: 0x1591, 0x1289: 0x1599, 0x128a: 0x15a1, 0x128b: 0x15a9,\n\t0x128c: 0x15b1, 0x128d: 0x15b9, 0x128e: 0x15c1, 0x128f: 0x15c9, 0x1290: 0x15d1, 0x1291: 0x15d1,\n\t0x1292: 0x15d9, 0x1293: 0x15d9, 0x1294: 0x15d9, 0x1295: 0x15d9, 0x1296: 0x15e1, 0x1297: 0x15e1,\n\t0x1298: 0x15e1, 0x1299: 0x15e1, 0x129a: 0x15e9, 0x129b: 0x15e9, 0x129c: 0x15e9, 0x129d: 0x15e9,\n\t0x129e: 0x15f1, 0x129f: 0x15f1, 0x12a0: 0x15f1, 0x12a1: 0x15f1, 0x12a2: 0x15f9, 0x12a3: 0x15f9,\n\t0x12a4: 0x15f9, 0x12a5: 0x15f9, 0x12a6: 0x1601, 0x12a7: 0x1601, 0x12a8: 0x1601, 0x12a9: 0x1601,\n\t0x12aa: 0x1609, 0x12ab: 0x1609, 0x12ac: 0x1609, 0x12ad: 0x1609, 0x12ae: 0x1611, 0x12af: 0x1611,\n\t0x12b0: 0x1611, 0x12b1: 0x1611, 0x12b2: 0x1619, 0x12b3: 0x1619, 0x12b4: 0x1619, 0x12b5: 0x1619,\n\t0x12b6: 0x1621, 0x12b7: 0x1621, 0x12b8: 0x1621, 0x12b9: 0x1621, 0x12ba: 0x1629, 0x12bb: 0x1629,\n\t0x12bc: 0x1629, 0x12bd: 0x1629, 0x12be: 0x1631, 0x12bf: 0x1631,\n\t// Block 0x4b, offset 0x12c0\n\t0x12c0: 0x1631, 0x12c1: 0x1631, 0x12c2: 0x1639, 0x12c3: 0x1639, 0x12c4: 0x1641, 0x12c5: 0x1641,\n\t0x12c6: 0x1649, 0x12c7: 0x1649, 0x12c8: 0x1651, 0x12c9: 0x1651, 0x12ca: 0x1659, 0x12cb: 0x1659,\n\t0x12cc: 0x1661, 0x12cd: 0x1661, 0x12ce: 0x1669, 0x12cf: 0x1669, 0x12d0: 0x1669, 0x12d1: 0x1669,\n\t0x12d2: 0x1671, 0x12d3: 0x1671, 0x12d4: 0x1671, 0x12d5: 0x1671, 0x12d6: 0x1679, 0x12d7: 0x1679,\n\t0x12d8: 0x1679, 0x12d9: 0x1679, 0x12da: 0x1681, 0x12db: 0x1681, 0x12dc: 0x1681, 0x12dd: 0x1681,\n\t0x12de: 0x1689, 0x12df: 0x1689, 0x12e0: 0x1691, 0x12e1: 0x1691, 0x12e2: 0x1691, 0x12e3: 0x1691,\n\t0x12e4: 0x1699, 0x12e5: 0x1699, 0x12e6: 0x16a1, 0x12e7: 0x16a1, 0x12e8: 0x16a1, 0x12e9: 0x16a1,\n\t0x12ea: 0x16a9, 0x12eb: 0x16a9, 0x12ec: 0x16a9, 0x12ed: 0x16a9, 0x12ee: 0x16b1, 0x12ef: 0x16b1,\n\t0x12f0: 0x16b9, 0x12f1: 0x16b9, 0x12f2: 0x0818, 0x12f3: 0x0818, 0x12f4: 0x0818, 0x12f5: 0x0818,\n\t0x12f6: 0x0818, 0x12f7: 0x0818, 0x12f8: 0x0818, 0x12f9: 0x0818, 0x12fa: 0x0818, 0x12fb: 0x0818,\n\t0x12fc: 0x0818, 0x12fd: 0x0818, 0x12fe: 0x0818, 0x12ff: 0x0818,\n\t// Block 0x4c, offset 0x1300\n\t0x1300: 0x0818, 0x1301: 0x0818, 0x1302: 0x0040, 0x1303: 0x0040, 0x1304: 0x0040, 0x1305: 0x0040,\n\t0x1306: 0x0040, 0x1307: 0x0040, 0x1308: 0x0040, 0x1309: 0x0040, 0x130a: 0x0040, 0x130b: 0x0040,\n\t0x130c: 0x0040, 0x130d: 0x0040, 0x130e: 0x0040, 0x130f: 0x0040, 0x1310: 0x0040, 0x1311: 0x0040,\n\t0x1312: 0x0040, 0x1313: 0x16c1, 0x1314: 0x16c1, 0x1315: 0x16c1, 0x1316: 0x16c1, 0x1317: 0x16c9,\n\t0x1318: 0x16c9, 0x1319: 0x16d1, 0x131a: 0x16d1, 0x131b: 0x16d9, 0x131c: 0x16d9, 0x131d: 0x0149,\n\t0x131e: 0x16e1, 0x131f: 0x16e1, 0x1320: 0x16e9, 0x1321: 0x16e9, 0x1322: 0x16f1, 0x1323: 0x16f1,\n\t0x1324: 0x16f9, 0x1325: 0x16f9, 0x1326: 0x16f9, 0x1327: 0x16f9, 0x1328: 0x1701, 0x1329: 0x1701,\n\t0x132a: 0x1709, 0x132b: 0x1709, 0x132c: 0x1711, 0x132d: 0x1711, 0x132e: 0x1719, 0x132f: 0x1719,\n\t0x1330: 0x1721, 0x1331: 0x1721, 0x1332: 0x1729, 0x1333: 0x1729, 0x1334: 0x1731, 0x1335: 0x1731,\n\t0x1336: 0x1739, 0x1337: 0x1739, 0x1338: 0x1739, 0x1339: 0x1741, 0x133a: 0x1741, 0x133b: 0x1741,\n\t0x133c: 0x1749, 0x133d: 0x1749, 0x133e: 0x1749, 0x133f: 0x1749,\n\t// Block 0x4d, offset 0x1340\n\t0x1340: 0x1949, 0x1341: 0x1951, 0x1342: 0x1959, 0x1343: 0x1961, 0x1344: 0x1969, 0x1345: 0x1971,\n\t0x1346: 0x1979, 0x1347: 0x1981, 0x1348: 0x1989, 0x1349: 0x1991, 0x134a: 0x1999, 0x134b: 0x19a1,\n\t0x134c: 0x19a9, 0x134d: 0x19b1, 0x134e: 0x19b9, 0x134f: 0x19c1, 0x1350: 0x19c9, 0x1351: 0x19d1,\n\t0x1352: 0x19d9, 0x1353: 0x19e1, 0x1354: 0x19e9, 0x1355: 0x19f1, 0x1356: 0x19f9, 0x1357: 0x1a01,\n\t0x1358: 0x1a09, 0x1359: 0x1a11, 0x135a: 0x1a19, 0x135b: 0x1a21, 0x135c: 0x1a29, 0x135d: 0x1a31,\n\t0x135e: 0x1a3a, 0x135f: 0x1a42, 0x1360: 0x1a4a, 0x1361: 0x1a52, 0x1362: 0x1a5a, 0x1363: 0x1a62,\n\t0x1364: 0x1a69, 0x1365: 0x1a71, 0x1366: 0x1761, 0x1367: 0x1a79, 0x1368: 0x1741, 0x1369: 0x1769,\n\t0x136a: 0x1a81, 0x136b: 0x1a89, 0x136c: 0x1789, 0x136d: 0x1a91, 0x136e: 0x1791, 0x136f: 0x1799,\n\t0x1370: 0x1a99, 0x1371: 0x1aa1, 0x1372: 0x17b9, 0x1373: 0x1aa9, 0x1374: 0x17c1, 0x1375: 0x17c9,\n\t0x1376: 0x1ab1, 0x1377: 0x1ab9, 0x1378: 0x17d9, 0x1379: 0x1ac1, 0x137a: 0x17e1, 0x137b: 0x17e9,\n\t0x137c: 0x18d1, 0x137d: 0x18d9, 0x137e: 0x18f1, 0x137f: 0x18f9,\n\t// Block 0x4e, offset 0x1380\n\t0x1380: 0x1901, 0x1381: 0x1921, 0x1382: 0x1929, 0x1383: 0x1931, 0x1384: 0x1939, 0x1385: 0x1959,\n\t0x1386: 0x1961, 0x1387: 0x1969, 0x1388: 0x1ac9, 0x1389: 0x1989, 0x138a: 0x1ad1, 0x138b: 0x1ad9,\n\t0x138c: 0x19b9, 0x138d: 0x1ae1, 0x138e: 0x19c1, 0x138f: 0x19c9, 0x1390: 0x1a31, 0x1391: 0x1ae9,\n\t0x1392: 0x1af1, 0x1393: 0x1a09, 0x1394: 0x1af9, 0x1395: 0x1a11, 0x1396: 0x1a19, 0x1397: 0x1751,\n\t0x1398: 0x1759, 0x1399: 0x1b01, 0x139a: 0x1761, 0x139b: 0x1b09, 0x139c: 0x1771, 0x139d: 0x1779,\n\t0x139e: 0x1781, 0x139f: 0x1789, 0x13a0: 0x1b11, 0x13a1: 0x17a1, 0x13a2: 0x17a9, 0x13a3: 0x17b1,\n\t0x13a4: 0x17b9, 0x13a5: 0x1b19, 0x13a6: 0x17d9, 0x13a7: 0x17f1, 0x13a8: 0x17f9, 0x13a9: 0x1801,\n\t0x13aa: 0x1809, 0x13ab: 0x1811, 0x13ac: 0x1821, 0x13ad: 0x1829, 0x13ae: 0x1831, 0x13af: 0x1839,\n\t0x13b0: 0x1841, 0x13b1: 0x1849, 0x13b2: 0x1b21, 0x13b3: 0x1851, 0x13b4: 0x1859, 0x13b5: 0x1861,\n\t0x13b6: 0x1869, 0x13b7: 0x1871, 0x13b8: 0x1879, 0x13b9: 0x1889, 0x13ba: 0x1891, 0x13bb: 0x1899,\n\t0x13bc: 0x18a1, 0x13bd: 0x18a9, 0x13be: 0x18b1, 0x13bf: 0x18b9,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c0: 0x18c1, 0x13c1: 0x18c9, 0x13c2: 0x18e1, 0x13c3: 0x18e9, 0x13c4: 0x1909, 0x13c5: 0x1911,\n\t0x13c6: 0x1919, 0x13c7: 0x1921, 0x13c8: 0x1929, 0x13c9: 0x1941, 0x13ca: 0x1949, 0x13cb: 0x1951,\n\t0x13cc: 0x1959, 0x13cd: 0x1b29, 0x13ce: 0x1971, 0x13cf: 0x1979, 0x13d0: 0x1981, 0x13d1: 0x1989,\n\t0x13d2: 0x19a1, 0x13d3: 0x19a9, 0x13d4: 0x19b1, 0x13d5: 0x19b9, 0x13d6: 0x1b31, 0x13d7: 0x19d1,\n\t0x13d8: 0x19d9, 0x13d9: 0x1b39, 0x13da: 0x19f1, 0x13db: 0x19f9, 0x13dc: 0x1a01, 0x13dd: 0x1a09,\n\t0x13de: 0x1b41, 0x13df: 0x1761, 0x13e0: 0x1b09, 0x13e1: 0x1789, 0x13e2: 0x1b11, 0x13e3: 0x17b9,\n\t0x13e4: 0x1b19, 0x13e5: 0x17d9, 0x13e6: 0x1b49, 0x13e7: 0x1841, 0x13e8: 0x1b51, 0x13e9: 0x1b59,\n\t0x13ea: 0x1b61, 0x13eb: 0x1921, 0x13ec: 0x1929, 0x13ed: 0x1959, 0x13ee: 0x19b9, 0x13ef: 0x1b31,\n\t0x13f0: 0x1a09, 0x13f1: 0x1b41, 0x13f2: 0x1b69, 0x13f3: 0x1b71, 0x13f4: 0x1b79, 0x13f5: 0x1b81,\n\t0x13f6: 0x1b89, 0x13f7: 0x1b91, 0x13f8: 0x1b99, 0x13f9: 0x1ba1, 0x13fa: 0x1ba9, 0x13fb: 0x1bb1,\n\t0x13fc: 0x1bb9, 0x13fd: 0x1bc1, 0x13fe: 0x1bc9, 0x13ff: 0x1bd1,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x1bd9, 0x1401: 0x1be1, 0x1402: 0x1be9, 0x1403: 0x1bf1, 0x1404: 0x1bf9, 0x1405: 0x1c01,\n\t0x1406: 0x1c09, 0x1407: 0x1c11, 0x1408: 0x1c19, 0x1409: 0x1c21, 0x140a: 0x1c29, 0x140b: 0x1c31,\n\t0x140c: 0x1b59, 0x140d: 0x1c39, 0x140e: 0x1c41, 0x140f: 0x1c49, 0x1410: 0x1c51, 0x1411: 0x1b81,\n\t0x1412: 0x1b89, 0x1413: 0x1b91, 0x1414: 0x1b99, 0x1415: 0x1ba1, 0x1416: 0x1ba9, 0x1417: 0x1bb1,\n\t0x1418: 0x1bb9, 0x1419: 0x1bc1, 0x141a: 0x1bc9, 0x141b: 0x1bd1, 0x141c: 0x1bd9, 0x141d: 0x1be1,\n\t0x141e: 0x1be9, 0x141f: 0x1bf1, 0x1420: 0x1bf9, 0x1421: 0x1c01, 0x1422: 0x1c09, 0x1423: 0x1c11,\n\t0x1424: 0x1c19, 0x1425: 0x1c21, 0x1426: 0x1c29, 0x1427: 0x1c31, 0x1428: 0x1b59, 0x1429: 0x1c39,\n\t0x142a: 0x1c41, 0x142b: 0x1c49, 0x142c: 0x1c51, 0x142d: 0x1c21, 0x142e: 0x1c29, 0x142f: 0x1c31,\n\t0x1430: 0x1b59, 0x1431: 0x1b51, 0x1432: 0x1b61, 0x1433: 0x1881, 0x1434: 0x1829, 0x1435: 0x1831,\n\t0x1436: 0x1839, 0x1437: 0x1c21, 0x1438: 0x1c29, 0x1439: 0x1c31, 0x143a: 0x1881, 0x143b: 0x1889,\n\t0x143c: 0x1c59, 0x143d: 0x1c59, 0x143e: 0x0018, 0x143f: 0x0018,\n\t// Block 0x51, offset 0x1440\n\t0x1440: 0x0040, 0x1441: 0x0040, 0x1442: 0x0040, 0x1443: 0x0040, 0x1444: 0x0040, 0x1445: 0x0040,\n\t0x1446: 0x0040, 0x1447: 0x0040, 0x1448: 0x0040, 0x1449: 0x0040, 0x144a: 0x0040, 0x144b: 0x0040,\n\t0x144c: 0x0040, 0x144d: 0x0040, 0x144e: 0x0040, 0x144f: 0x0040, 0x1450: 0x1c61, 0x1451: 0x1c69,\n\t0x1452: 0x1c69, 0x1453: 0x1c71, 0x1454: 0x1c79, 0x1455: 0x1c81, 0x1456: 0x1c89, 0x1457: 0x1c91,\n\t0x1458: 0x1c99, 0x1459: 0x1c99, 0x145a: 0x1ca1, 0x145b: 0x1ca9, 0x145c: 0x1cb1, 0x145d: 0x1cb9,\n\t0x145e: 0x1cc1, 0x145f: 0x1cc9, 0x1460: 0x1cc9, 0x1461: 0x1cd1, 0x1462: 0x1cd9, 0x1463: 0x1cd9,\n\t0x1464: 0x1ce1, 0x1465: 0x1ce1, 0x1466: 0x1ce9, 0x1467: 0x1cf1, 0x1468: 0x1cf1, 0x1469: 0x1cf9,\n\t0x146a: 0x1d01, 0x146b: 0x1d01, 0x146c: 0x1d09, 0x146d: 0x1d09, 0x146e: 0x1d11, 0x146f: 0x1d19,\n\t0x1470: 0x1d19, 0x1471: 0x1d21, 0x1472: 0x1d21, 0x1473: 0x1d29, 0x1474: 0x1d31, 0x1475: 0x1d39,\n\t0x1476: 0x1d41, 0x1477: 0x1d41, 0x1478: 0x1d49, 0x1479: 0x1d51, 0x147a: 0x1d59, 0x147b: 0x1d61,\n\t0x147c: 0x1d69, 0x147d: 0x1d69, 0x147e: 0x1d71, 0x147f: 0x1d79,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x1f29, 0x1481: 0x1f31, 0x1482: 0x1f39, 0x1483: 0x1f11, 0x1484: 0x1d39, 0x1485: 0x1ce9,\n\t0x1486: 0x1f41, 0x1487: 0x1f49, 0x1488: 0x0040, 0x1489: 0x0040, 0x148a: 0x0040, 0x148b: 0x0040,\n\t0x148c: 0x0040, 0x148d: 0x0040, 0x148e: 0x0040, 0x148f: 0x0040, 0x1490: 0x0040, 0x1491: 0x0040,\n\t0x1492: 0x0040, 0x1493: 0x0040, 0x1494: 0x0040, 0x1495: 0x0040, 0x1496: 0x0040, 0x1497: 0x0040,\n\t0x1498: 0x0040, 0x1499: 0x0040, 0x149a: 0x0040, 0x149b: 0x0040, 0x149c: 0x0040, 0x149d: 0x0040,\n\t0x149e: 0x0040, 0x149f: 0x0040, 0x14a0: 0x0040, 0x14a1: 0x0040, 0x14a2: 0x0040, 0x14a3: 0x0040,\n\t0x14a4: 0x0040, 0x14a5: 0x0040, 0x14a6: 0x0040, 0x14a7: 0x0040, 0x14a8: 0x0040, 0x14a9: 0x0040,\n\t0x14aa: 0x0040, 0x14ab: 0x0040, 0x14ac: 0x0040, 0x14ad: 0x0040, 0x14ae: 0x0040, 0x14af: 0x0040,\n\t0x14b0: 0x1f51, 0x14b1: 0x1f59, 0x14b2: 0x1f61, 0x14b3: 0x1f69, 0x14b4: 0x1f71, 0x14b5: 0x1f79,\n\t0x14b6: 0x1f81, 0x14b7: 0x1f89, 0x14b8: 0x1f91, 0x14b9: 0x1f99, 0x14ba: 0x1fa2, 0x14bb: 0x1faa,\n\t0x14bc: 0x1fb1, 0x14bd: 0x0018, 0x14be: 0x0040, 0x14bf: 0x0040,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x33c0, 0x14c1: 0x33c0, 0x14c2: 0x33c0, 0x14c3: 0x33c0, 0x14c4: 0x33c0, 0x14c5: 0x33c0,\n\t0x14c6: 0x33c0, 0x14c7: 0x33c0, 0x14c8: 0x33c0, 0x14c9: 0x33c0, 0x14ca: 0x33c0, 0x14cb: 0x33c0,\n\t0x14cc: 0x33c0, 0x14cd: 0x33c0, 0x14ce: 0x33c0, 0x14cf: 0x33c0, 0x14d0: 0x1fba, 0x14d1: 0x7d8d,\n\t0x14d2: 0x0040, 0x14d3: 0x1fc2, 0x14d4: 0x0122, 0x14d5: 0x1fca, 0x14d6: 0x1fd2, 0x14d7: 0x7dad,\n\t0x14d8: 0x7dcd, 0x14d9: 0x0040, 0x14da: 0x0040, 0x14db: 0x0040, 0x14dc: 0x0040, 0x14dd: 0x0040,\n\t0x14de: 0x0040, 0x14df: 0x0040, 0x14e0: 0x3308, 0x14e1: 0x3308, 0x14e2: 0x3308, 0x14e3: 0x3308,\n\t0x14e4: 0x3308, 0x14e5: 0x3308, 0x14e6: 0x3308, 0x14e7: 0x3308, 0x14e8: 0x3308, 0x14e9: 0x3308,\n\t0x14ea: 0x3308, 0x14eb: 0x3308, 0x14ec: 0x3308, 0x14ed: 0x3308, 0x14ee: 0x3308, 0x14ef: 0x3308,\n\t0x14f0: 0x0040, 0x14f1: 0x7ded, 0x14f2: 0x7e0d, 0x14f3: 0x1fda, 0x14f4: 0x1fda, 0x14f5: 0x072a,\n\t0x14f6: 0x0732, 0x14f7: 0x1fe2, 0x14f8: 0x1fea, 0x14f9: 0x7e2d, 0x14fa: 0x7e4d, 0x14fb: 0x7e6d,\n\t0x14fc: 0x7e2d, 0x14fd: 0x7e8d, 0x14fe: 0x7ead, 0x14ff: 0x7e8d,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0x7ecd, 0x1501: 0x7eed, 0x1502: 0x7f0d, 0x1503: 0x7eed, 0x1504: 0x7f2d, 0x1505: 0x0018,\n\t0x1506: 0x0018, 0x1507: 0x1ff2, 0x1508: 0x1ffa, 0x1509: 0x7f4e, 0x150a: 0x7f6e, 0x150b: 0x7f8e,\n\t0x150c: 0x7fae, 0x150d: 0x1fda, 0x150e: 0x1fda, 0x150f: 0x1fda, 0x1510: 0x1fba, 0x1511: 0x7fcd,\n\t0x1512: 0x0040, 0x1513: 0x0040, 0x1514: 0x0122, 0x1515: 0x1fc2, 0x1516: 0x1fd2, 0x1517: 0x1fca,\n\t0x1518: 0x7fed, 0x1519: 0x072a, 0x151a: 0x0732, 0x151b: 0x1fe2, 0x151c: 0x1fea, 0x151d: 0x7ecd,\n\t0x151e: 0x7f2d, 0x151f: 0x2002, 0x1520: 0x200a, 0x1521: 0x2012, 0x1522: 0x071a, 0x1523: 0x2019,\n\t0x1524: 0x2022, 0x1525: 0x202a, 0x1526: 0x0722, 0x1527: 0x0040, 0x1528: 0x2032, 0x1529: 0x203a,\n\t0x152a: 0x2042, 0x152b: 0x204a, 0x152c: 0x0040, 0x152d: 0x0040, 0x152e: 0x0040, 0x152f: 0x0040,\n\t0x1530: 0x800e, 0x1531: 0x2051, 0x1532: 0x802e, 0x1533: 0x0808, 0x1534: 0x804e, 0x1535: 0x0040,\n\t0x1536: 0x806e, 0x1537: 0x2059, 0x1538: 0x808e, 0x1539: 0x2061, 0x153a: 0x80ae, 0x153b: 0x2069,\n\t0x153c: 0x80ce, 0x153d: 0x2071, 0x153e: 0x80ee, 0x153f: 0x2079,\n\t// Block 0x55, offset 0x1540\n\t0x1540: 0x2081, 0x1541: 0x2089, 0x1542: 0x2089, 0x1543: 0x2091, 0x1544: 0x2091, 0x1545: 0x2099,\n\t0x1546: 0x2099, 0x1547: 0x20a1, 0x1548: 0x20a1, 0x1549: 0x20a9, 0x154a: 0x20a9, 0x154b: 0x20a9,\n\t0x154c: 0x20a9, 0x154d: 0x20b1, 0x154e: 0x20b1, 0x154f: 0x20b9, 0x1550: 0x20b9, 0x1551: 0x20b9,\n\t0x1552: 0x20b9, 0x1553: 0x20c1, 0x1554: 0x20c1, 0x1555: 0x20c9, 0x1556: 0x20c9, 0x1557: 0x20c9,\n\t0x1558: 0x20c9, 0x1559: 0x20d1, 0x155a: 0x20d1, 0x155b: 0x20d1, 0x155c: 0x20d1, 0x155d: 0x20d9,\n\t0x155e: 0x20d9, 0x155f: 0x20d9, 0x1560: 0x20d9, 0x1561: 0x20e1, 0x1562: 0x20e1, 0x1563: 0x20e1,\n\t0x1564: 0x20e1, 0x1565: 0x20e9, 0x1566: 0x20e9, 0x1567: 0x20e9, 0x1568: 0x20e9, 0x1569: 0x20f1,\n\t0x156a: 0x20f1, 0x156b: 0x20f9, 0x156c: 0x20f9, 0x156d: 0x2101, 0x156e: 0x2101, 0x156f: 0x2109,\n\t0x1570: 0x2109, 0x1571: 0x2111, 0x1572: 0x2111, 0x1573: 0x2111, 0x1574: 0x2111, 0x1575: 0x2119,\n\t0x1576: 0x2119, 0x1577: 0x2119, 0x1578: 0x2119, 0x1579: 0x2121, 0x157a: 0x2121, 0x157b: 0x2121,\n\t0x157c: 0x2121, 0x157d: 0x2129, 0x157e: 0x2129, 0x157f: 0x2129,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x2129, 0x1581: 0x2131, 0x1582: 0x2131, 0x1583: 0x2131, 0x1584: 0x2131, 0x1585: 0x2139,\n\t0x1586: 0x2139, 0x1587: 0x2139, 0x1588: 0x2139, 0x1589: 0x2141, 0x158a: 0x2141, 0x158b: 0x2141,\n\t0x158c: 0x2141, 0x158d: 0x2149, 0x158e: 0x2149, 0x158f: 0x2149, 0x1590: 0x2149, 0x1591: 0x2151,\n\t0x1592: 0x2151, 0x1593: 0x2151, 0x1594: 0x2151, 0x1595: 0x2159, 0x1596: 0x2159, 0x1597: 0x2159,\n\t0x1598: 0x2159, 0x1599: 0x2161, 0x159a: 0x2161, 0x159b: 0x2161, 0x159c: 0x2161, 0x159d: 0x2169,\n\t0x159e: 0x2169, 0x159f: 0x2169, 0x15a0: 0x2169, 0x15a1: 0x2171, 0x15a2: 0x2171, 0x15a3: 0x2171,\n\t0x15a4: 0x2171, 0x15a5: 0x2179, 0x15a6: 0x2179, 0x15a7: 0x2179, 0x15a8: 0x2179, 0x15a9: 0x2181,\n\t0x15aa: 0x2181, 0x15ab: 0x2181, 0x15ac: 0x2181, 0x15ad: 0x2189, 0x15ae: 0x2189, 0x15af: 0x1701,\n\t0x15b0: 0x1701, 0x15b1: 0x2191, 0x15b2: 0x2191, 0x15b3: 0x2191, 0x15b4: 0x2191, 0x15b5: 0x2199,\n\t0x15b6: 0x2199, 0x15b7: 0x21a1, 0x15b8: 0x21a1, 0x15b9: 0x21a9, 0x15ba: 0x21a9, 0x15bb: 0x21b1,\n\t0x15bc: 0x21b1, 0x15bd: 0x0040, 0x15be: 0x0040, 0x15bf: 0x03c0,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0x0040, 0x15c1: 0x1fca, 0x15c2: 0x21ba, 0x15c3: 0x2002, 0x15c4: 0x203a, 0x15c5: 0x2042,\n\t0x15c6: 0x200a, 0x15c7: 0x21c2, 0x15c8: 0x072a, 0x15c9: 0x0732, 0x15ca: 0x2012, 0x15cb: 0x071a,\n\t0x15cc: 0x1fba, 0x15cd: 0x2019, 0x15ce: 0x0961, 0x15cf: 0x21ca, 0x15d0: 0x06e1, 0x15d1: 0x0049,\n\t0x15d2: 0x0029, 0x15d3: 0x0031, 0x15d4: 0x06e9, 0x15d5: 0x06f1, 0x15d6: 0x06f9, 0x15d7: 0x0701,\n\t0x15d8: 0x0709, 0x15d9: 0x0711, 0x15da: 0x1fc2, 0x15db: 0x0122, 0x15dc: 0x2022, 0x15dd: 0x0722,\n\t0x15de: 0x202a, 0x15df: 0x1fd2, 0x15e0: 0x204a, 0x15e1: 0x0019, 0x15e2: 0x02e9, 0x15e3: 0x03d9,\n\t0x15e4: 0x02f1, 0x15e5: 0x02f9, 0x15e6: 0x03f1, 0x15e7: 0x0309, 0x15e8: 0x00a9, 0x15e9: 0x0311,\n\t0x15ea: 0x00b1, 0x15eb: 0x0319, 0x15ec: 0x0101, 0x15ed: 0x0321, 0x15ee: 0x0329, 0x15ef: 0x0051,\n\t0x15f0: 0x0339, 0x15f1: 0x0751, 0x15f2: 0x00b9, 0x15f3: 0x0089, 0x15f4: 0x0341, 0x15f5: 0x0349,\n\t0x15f6: 0x0391, 0x15f7: 0x00c1, 0x15f8: 0x0109, 0x15f9: 0x00c9, 0x15fa: 0x04b1, 0x15fb: 0x1ff2,\n\t0x15fc: 0x2032, 0x15fd: 0x1ffa, 0x15fe: 0x21d2, 0x15ff: 0x1fda,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0x0672, 0x1601: 0x0019, 0x1602: 0x02e9, 0x1603: 0x03d9, 0x1604: 0x02f1, 0x1605: 0x02f9,\n\t0x1606: 0x03f1, 0x1607: 0x0309, 0x1608: 0x00a9, 0x1609: 0x0311, 0x160a: 0x00b1, 0x160b: 0x0319,\n\t0x160c: 0x0101, 0x160d: 0x0321, 0x160e: 0x0329, 0x160f: 0x0051, 0x1610: 0x0339, 0x1611: 0x0751,\n\t0x1612: 0x00b9, 0x1613: 0x0089, 0x1614: 0x0341, 0x1615: 0x0349, 0x1616: 0x0391, 0x1617: 0x00c1,\n\t0x1618: 0x0109, 0x1619: 0x00c9, 0x161a: 0x04b1, 0x161b: 0x1fe2, 0x161c: 0x21da, 0x161d: 0x1fea,\n\t0x161e: 0x21e2, 0x161f: 0x810d, 0x1620: 0x812d, 0x1621: 0x0961, 0x1622: 0x814d, 0x1623: 0x814d,\n\t0x1624: 0x816d, 0x1625: 0x818d, 0x1626: 0x81ad, 0x1627: 0x81cd, 0x1628: 0x81ed, 0x1629: 0x820d,\n\t0x162a: 0x822d, 0x162b: 0x824d, 0x162c: 0x826d, 0x162d: 0x828d, 0x162e: 0x82ad, 0x162f: 0x82cd,\n\t0x1630: 0x82ed, 0x1631: 0x830d, 0x1632: 0x832d, 0x1633: 0x834d, 0x1634: 0x836d, 0x1635: 0x838d,\n\t0x1636: 0x83ad, 0x1637: 0x83cd, 0x1638: 0x83ed, 0x1639: 0x840d, 0x163a: 0x842d, 0x163b: 0x844d,\n\t0x163c: 0x81ed, 0x163d: 0x846d, 0x163e: 0x848d, 0x163f: 0x824d,\n\t// Block 0x59, offset 0x1640\n\t0x1640: 0x84ad, 0x1641: 0x84cd, 0x1642: 0x84ed, 0x1643: 0x850d, 0x1644: 0x852d, 0x1645: 0x854d,\n\t0x1646: 0x856d, 0x1647: 0x858d, 0x1648: 0x850d, 0x1649: 0x85ad, 0x164a: 0x850d, 0x164b: 0x85cd,\n\t0x164c: 0x85cd, 0x164d: 0x85ed, 0x164e: 0x85ed, 0x164f: 0x860d, 0x1650: 0x854d, 0x1651: 0x862d,\n\t0x1652: 0x864d, 0x1653: 0x862d, 0x1654: 0x866d, 0x1655: 0x864d, 0x1656: 0x868d, 0x1657: 0x868d,\n\t0x1658: 0x86ad, 0x1659: 0x86ad, 0x165a: 0x86cd, 0x165b: 0x86cd, 0x165c: 0x864d, 0x165d: 0x814d,\n\t0x165e: 0x86ed, 0x165f: 0x870d, 0x1660: 0x0040, 0x1661: 0x872d, 0x1662: 0x874d, 0x1663: 0x876d,\n\t0x1664: 0x878d, 0x1665: 0x876d, 0x1666: 0x87ad, 0x1667: 0x87cd, 0x1668: 0x87ed, 0x1669: 0x87ed,\n\t0x166a: 0x880d, 0x166b: 0x880d, 0x166c: 0x882d, 0x166d: 0x882d, 0x166e: 0x880d, 0x166f: 0x880d,\n\t0x1670: 0x884d, 0x1671: 0x886d, 0x1672: 0x888d, 0x1673: 0x88ad, 0x1674: 0x88cd, 0x1675: 0x88ed,\n\t0x1676: 0x88ed, 0x1677: 0x88ed, 0x1678: 0x890d, 0x1679: 0x890d, 0x167a: 0x890d, 0x167b: 0x890d,\n\t0x167c: 0x87ed, 0x167d: 0x87ed, 0x167e: 0x87ed, 0x167f: 0x0040,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x0040, 0x1681: 0x0040, 0x1682: 0x874d, 0x1683: 0x872d, 0x1684: 0x892d, 0x1685: 0x872d,\n\t0x1686: 0x874d, 0x1687: 0x872d, 0x1688: 0x0040, 0x1689: 0x0040, 0x168a: 0x894d, 0x168b: 0x874d,\n\t0x168c: 0x896d, 0x168d: 0x892d, 0x168e: 0x896d, 0x168f: 0x874d, 0x1690: 0x0040, 0x1691: 0x0040,\n\t0x1692: 0x898d, 0x1693: 0x89ad, 0x1694: 0x88ad, 0x1695: 0x896d, 0x1696: 0x892d, 0x1697: 0x896d,\n\t0x1698: 0x0040, 0x1699: 0x0040, 0x169a: 0x89cd, 0x169b: 0x89ed, 0x169c: 0x89cd, 0x169d: 0x0040,\n\t0x169e: 0x0040, 0x169f: 0x0040, 0x16a0: 0x21e9, 0x16a1: 0x21f1, 0x16a2: 0x21f9, 0x16a3: 0x8a0e,\n\t0x16a4: 0x2201, 0x16a5: 0x2209, 0x16a6: 0x8a2d, 0x16a7: 0x0040, 0x16a8: 0x8a4d, 0x16a9: 0x8a6d,\n\t0x16aa: 0x8a8d, 0x16ab: 0x8a6d, 0x16ac: 0x8aad, 0x16ad: 0x8acd, 0x16ae: 0x8aed, 0x16af: 0x0040,\n\t0x16b0: 0x0040, 0x16b1: 0x0040, 0x16b2: 0x0040, 0x16b3: 0x0040, 0x16b4: 0x0040, 0x16b5: 0x0040,\n\t0x16b6: 0x0040, 0x16b7: 0x0040, 0x16b8: 0x0040, 0x16b9: 0x0340, 0x16ba: 0x0340, 0x16bb: 0x0340,\n\t0x16bc: 0x0040, 0x16bd: 0x0040, 0x16be: 0x0040, 0x16bf: 0x0040,\n\t// Block 0x5b, offset 0x16c0\n\t0x16c0: 0x0a08, 0x16c1: 0x0a08, 0x16c2: 0x0a08, 0x16c3: 0x0a08, 0x16c4: 0x0a08, 0x16c5: 0x0c08,\n\t0x16c6: 0x0808, 0x16c7: 0x0c08, 0x16c8: 0x0818, 0x16c9: 0x0c08, 0x16ca: 0x0c08, 0x16cb: 0x0808,\n\t0x16cc: 0x0808, 0x16cd: 0x0908, 0x16ce: 0x0c08, 0x16cf: 0x0c08, 0x16d0: 0x0c08, 0x16d1: 0x0c08,\n\t0x16d2: 0x0c08, 0x16d3: 0x0a08, 0x16d4: 0x0a08, 0x16d5: 0x0a08, 0x16d6: 0x0a08, 0x16d7: 0x0908,\n\t0x16d8: 0x0a08, 0x16d9: 0x0a08, 0x16da: 0x0a08, 0x16db: 0x0a08, 0x16dc: 0x0a08, 0x16dd: 0x0c08,\n\t0x16de: 0x0a08, 0x16df: 0x0a08, 0x16e0: 0x0a08, 0x16e1: 0x0c08, 0x16e2: 0x0808, 0x16e3: 0x0808,\n\t0x16e4: 0x0c08, 0x16e5: 0x3308, 0x16e6: 0x3308, 0x16e7: 0x0040, 0x16e8: 0x0040, 0x16e9: 0x0040,\n\t0x16ea: 0x0040, 0x16eb: 0x0a18, 0x16ec: 0x0a18, 0x16ed: 0x0a18, 0x16ee: 0x0a18, 0x16ef: 0x0c18,\n\t0x16f0: 0x0818, 0x16f1: 0x0818, 0x16f2: 0x0818, 0x16f3: 0x0818, 0x16f4: 0x0818, 0x16f5: 0x0818,\n\t0x16f6: 0x0818, 0x16f7: 0x0040, 0x16f8: 0x0040, 0x16f9: 0x0040, 0x16fa: 0x0040, 0x16fb: 0x0040,\n\t0x16fc: 0x0040, 0x16fd: 0x0040, 0x16fe: 0x0040, 0x16ff: 0x0040,\n\t// Block 0x5c, offset 0x1700\n\t0x1700: 0x0a08, 0x1701: 0x0c08, 0x1702: 0x0a08, 0x1703: 0x0c08, 0x1704: 0x0c08, 0x1705: 0x0c08,\n\t0x1706: 0x0a08, 0x1707: 0x0a08, 0x1708: 0x0a08, 0x1709: 0x0c08, 0x170a: 0x0a08, 0x170b: 0x0a08,\n\t0x170c: 0x0c08, 0x170d: 0x0a08, 0x170e: 0x0c08, 0x170f: 0x0c08, 0x1710: 0x0a08, 0x1711: 0x0c08,\n\t0x1712: 0x0040, 0x1713: 0x0040, 0x1714: 0x0040, 0x1715: 0x0040, 0x1716: 0x0040, 0x1717: 0x0040,\n\t0x1718: 0x0040, 0x1719: 0x0818, 0x171a: 0x0818, 0x171b: 0x0818, 0x171c: 0x0818, 0x171d: 0x0040,\n\t0x171e: 0x0040, 0x171f: 0x0040, 0x1720: 0x0040, 0x1721: 0x0040, 0x1722: 0x0040, 0x1723: 0x0040,\n\t0x1724: 0x0040, 0x1725: 0x0040, 0x1726: 0x0040, 0x1727: 0x0040, 0x1728: 0x0040, 0x1729: 0x0c18,\n\t0x172a: 0x0c18, 0x172b: 0x0c18, 0x172c: 0x0c18, 0x172d: 0x0a18, 0x172e: 0x0a18, 0x172f: 0x0818,\n\t0x1730: 0x0040, 0x1731: 0x0040, 0x1732: 0x0040, 0x1733: 0x0040, 0x1734: 0x0040, 0x1735: 0x0040,\n\t0x1736: 0x0040, 0x1737: 0x0040, 0x1738: 0x0040, 0x1739: 0x0040, 0x173a: 0x0040, 0x173b: 0x0040,\n\t0x173c: 0x0040, 0x173d: 0x0040, 0x173e: 0x0040, 0x173f: 0x0040,\n\t// Block 0x5d, offset 0x1740\n\t0x1740: 0x3308, 0x1741: 0x3308, 0x1742: 0x3008, 0x1743: 0x3008, 0x1744: 0x0040, 0x1745: 0x0008,\n\t0x1746: 0x0008, 0x1747: 0x0008, 0x1748: 0x0008, 0x1749: 0x0008, 0x174a: 0x0008, 0x174b: 0x0008,\n\t0x174c: 0x0008, 0x174d: 0x0040, 0x174e: 0x0040, 0x174f: 0x0008, 0x1750: 0x0008, 0x1751: 0x0040,\n\t0x1752: 0x0040, 0x1753: 0x0008, 0x1754: 0x0008, 0x1755: 0x0008, 0x1756: 0x0008, 0x1757: 0x0008,\n\t0x1758: 0x0008, 0x1759: 0x0008, 0x175a: 0x0008, 0x175b: 0x0008, 0x175c: 0x0008, 0x175d: 0x0008,\n\t0x175e: 0x0008, 0x175f: 0x0008, 0x1760: 0x0008, 0x1761: 0x0008, 0x1762: 0x0008, 0x1763: 0x0008,\n\t0x1764: 0x0008, 0x1765: 0x0008, 0x1766: 0x0008, 0x1767: 0x0008, 0x1768: 0x0008, 0x1769: 0x0040,\n\t0x176a: 0x0008, 0x176b: 0x0008, 0x176c: 0x0008, 0x176d: 0x0008, 0x176e: 0x0008, 0x176f: 0x0008,\n\t0x1770: 0x0008, 0x1771: 0x0040, 0x1772: 0x0008, 0x1773: 0x0008, 0x1774: 0x0040, 0x1775: 0x0008,\n\t0x1776: 0x0008, 0x1777: 0x0008, 0x1778: 0x0008, 0x1779: 0x0008, 0x177a: 0x0040, 0x177b: 0x3308,\n\t0x177c: 0x3308, 0x177d: 0x0008, 0x177e: 0x3008, 0x177f: 0x3008,\n\t// Block 0x5e, offset 0x1780\n\t0x1780: 0x3308, 0x1781: 0x3008, 0x1782: 0x3008, 0x1783: 0x3008, 0x1784: 0x3008, 0x1785: 0x0040,\n\t0x1786: 0x0040, 0x1787: 0x3008, 0x1788: 0x3008, 0x1789: 0x0040, 0x178a: 0x0040, 0x178b: 0x3008,\n\t0x178c: 0x3008, 0x178d: 0x3808, 0x178e: 0x0040, 0x178f: 0x0040, 0x1790: 0x0008, 0x1791: 0x0040,\n\t0x1792: 0x0040, 0x1793: 0x0040, 0x1794: 0x0040, 0x1795: 0x0040, 0x1796: 0x0040, 0x1797: 0x3008,\n\t0x1798: 0x0040, 0x1799: 0x0040, 0x179a: 0x0040, 0x179b: 0x0040, 0x179c: 0x0040, 0x179d: 0x0008,\n\t0x179e: 0x0008, 0x179f: 0x0008, 0x17a0: 0x0008, 0x17a1: 0x0008, 0x17a2: 0x3008, 0x17a3: 0x3008,\n\t0x17a4: 0x0040, 0x17a5: 0x0040, 0x17a6: 0x3308, 0x17a7: 0x3308, 0x17a8: 0x3308, 0x17a9: 0x3308,\n\t0x17aa: 0x3308, 0x17ab: 0x3308, 0x17ac: 0x3308, 0x17ad: 0x0040, 0x17ae: 0x0040, 0x17af: 0x0040,\n\t0x17b0: 0x3308, 0x17b1: 0x3308, 0x17b2: 0x3308, 0x17b3: 0x3308, 0x17b4: 0x3308, 0x17b5: 0x0040,\n\t0x17b6: 0x0040, 0x17b7: 0x0040, 0x17b8: 0x0040, 0x17b9: 0x0040, 0x17ba: 0x0040, 0x17bb: 0x0040,\n\t0x17bc: 0x0040, 0x17bd: 0x0040, 0x17be: 0x0040, 0x17bf: 0x0040,\n\t// Block 0x5f, offset 0x17c0\n\t0x17c0: 0x0008, 0x17c1: 0x0008, 0x17c2: 0x0008, 0x17c3: 0x0008, 0x17c4: 0x0008, 0x17c5: 0x0008,\n\t0x17c6: 0x0008, 0x17c7: 0x0040, 0x17c8: 0x0040, 0x17c9: 0x0008, 0x17ca: 0x0040, 0x17cb: 0x0040,\n\t0x17cc: 0x0008, 0x17cd: 0x0008, 0x17ce: 0x0008, 0x17cf: 0x0008, 0x17d0: 0x0008, 0x17d1: 0x0008,\n\t0x17d2: 0x0008, 0x17d3: 0x0008, 0x17d4: 0x0040, 0x17d5: 0x0008, 0x17d6: 0x0008, 0x17d7: 0x0040,\n\t0x17d8: 0x0008, 0x17d9: 0x0008, 0x17da: 0x0008, 0x17db: 0x0008, 0x17dc: 0x0008, 0x17dd: 0x0008,\n\t0x17de: 0x0008, 0x17df: 0x0008, 0x17e0: 0x0008, 0x17e1: 0x0008, 0x17e2: 0x0008, 0x17e3: 0x0008,\n\t0x17e4: 0x0008, 0x17e5: 0x0008, 0x17e6: 0x0008, 0x17e7: 0x0008, 0x17e8: 0x0008, 0x17e9: 0x0008,\n\t0x17ea: 0x0008, 0x17eb: 0x0008, 0x17ec: 0x0008, 0x17ed: 0x0008, 0x17ee: 0x0008, 0x17ef: 0x0008,\n\t0x17f0: 0x3008, 0x17f1: 0x3008, 0x17f2: 0x3008, 0x17f3: 0x3008, 0x17f4: 0x3008, 0x17f5: 0x3008,\n\t0x17f6: 0x0040, 0x17f7: 0x3008, 0x17f8: 0x3008, 0x17f9: 0x0040, 0x17fa: 0x0040, 0x17fb: 0x3308,\n\t0x17fc: 0x3308, 0x17fd: 0x3808, 0x17fe: 0x3b08, 0x17ff: 0x0008,\n\t// Block 0x60, offset 0x1800\n\t0x1800: 0x0019, 0x1801: 0x02e9, 0x1802: 0x03d9, 0x1803: 0x02f1, 0x1804: 0x02f9, 0x1805: 0x03f1,\n\t0x1806: 0x0309, 0x1807: 0x00a9, 0x1808: 0x0311, 0x1809: 0x00b1, 0x180a: 0x0319, 0x180b: 0x0101,\n\t0x180c: 0x0321, 0x180d: 0x0329, 0x180e: 0x0051, 0x180f: 0x0339, 0x1810: 0x0751, 0x1811: 0x00b9,\n\t0x1812: 0x0089, 0x1813: 0x0341, 0x1814: 0x0349, 0x1815: 0x0391, 0x1816: 0x00c1, 0x1817: 0x0109,\n\t0x1818: 0x00c9, 0x1819: 0x04b1, 0x181a: 0x0019, 0x181b: 0x02e9, 0x181c: 0x03d9, 0x181d: 0x02f1,\n\t0x181e: 0x02f9, 0x181f: 0x03f1, 0x1820: 0x0309, 0x1821: 0x00a9, 0x1822: 0x0311, 0x1823: 0x00b1,\n\t0x1824: 0x0319, 0x1825: 0x0101, 0x1826: 0x0321, 0x1827: 0x0329, 0x1828: 0x0051, 0x1829: 0x0339,\n\t0x182a: 0x0751, 0x182b: 0x00b9, 0x182c: 0x0089, 0x182d: 0x0341, 0x182e: 0x0349, 0x182f: 0x0391,\n\t0x1830: 0x00c1, 0x1831: 0x0109, 0x1832: 0x00c9, 0x1833: 0x04b1, 0x1834: 0x0019, 0x1835: 0x02e9,\n\t0x1836: 0x03d9, 0x1837: 0x02f1, 0x1838: 0x02f9, 0x1839: 0x03f1, 0x183a: 0x0309, 0x183b: 0x00a9,\n\t0x183c: 0x0311, 0x183d: 0x00b1, 0x183e: 0x0319, 0x183f: 0x0101,\n\t// Block 0x61, offset 0x1840\n\t0x1840: 0x0321, 0x1841: 0x0329, 0x1842: 0x0051, 0x1843: 0x0339, 0x1844: 0x0751, 0x1845: 0x00b9,\n\t0x1846: 0x0089, 0x1847: 0x0341, 0x1848: 0x0349, 0x1849: 0x0391, 0x184a: 0x00c1, 0x184b: 0x0109,\n\t0x184c: 0x00c9, 0x184d: 0x04b1, 0x184e: 0x0019, 0x184f: 0x02e9, 0x1850: 0x03d9, 0x1851: 0x02f1,\n\t0x1852: 0x02f9, 0x1853: 0x03f1, 0x1854: 0x0309, 0x1855: 0x0040, 0x1856: 0x0311, 0x1857: 0x00b1,\n\t0x1858: 0x0319, 0x1859: 0x0101, 0x185a: 0x0321, 0x185b: 0x0329, 0x185c: 0x0051, 0x185d: 0x0339,\n\t0x185e: 0x0751, 0x185f: 0x00b9, 0x1860: 0x0089, 0x1861: 0x0341, 0x1862: 0x0349, 0x1863: 0x0391,\n\t0x1864: 0x00c1, 0x1865: 0x0109, 0x1866: 0x00c9, 0x1867: 0x04b1, 0x1868: 0x0019, 0x1869: 0x02e9,\n\t0x186a: 0x03d9, 0x186b: 0x02f1, 0x186c: 0x02f9, 0x186d: 0x03f1, 0x186e: 0x0309, 0x186f: 0x00a9,\n\t0x1870: 0x0311, 0x1871: 0x00b1, 0x1872: 0x0319, 0x1873: 0x0101, 0x1874: 0x0321, 0x1875: 0x0329,\n\t0x1876: 0x0051, 0x1877: 0x0339, 0x1878: 0x0751, 0x1879: 0x00b9, 0x187a: 0x0089, 0x187b: 0x0341,\n\t0x187c: 0x0349, 0x187d: 0x0391, 0x187e: 0x00c1, 0x187f: 0x0109,\n\t// Block 0x62, offset 0x1880\n\t0x1880: 0x00c9, 0x1881: 0x04b1, 0x1882: 0x0019, 0x1883: 0x02e9, 0x1884: 0x03d9, 0x1885: 0x02f1,\n\t0x1886: 0x02f9, 0x1887: 0x03f1, 0x1888: 0x0309, 0x1889: 0x00a9, 0x188a: 0x0311, 0x188b: 0x00b1,\n\t0x188c: 0x0319, 0x188d: 0x0101, 0x188e: 0x0321, 0x188f: 0x0329, 0x1890: 0x0051, 0x1891: 0x0339,\n\t0x1892: 0x0751, 0x1893: 0x00b9, 0x1894: 0x0089, 0x1895: 0x0341, 0x1896: 0x0349, 0x1897: 0x0391,\n\t0x1898: 0x00c1, 0x1899: 0x0109, 0x189a: 0x00c9, 0x189b: 0x04b1, 0x189c: 0x0019, 0x189d: 0x0040,\n\t0x189e: 0x03d9, 0x189f: 0x02f1, 0x18a0: 0x0040, 0x18a1: 0x0040, 0x18a2: 0x0309, 0x18a3: 0x0040,\n\t0x18a4: 0x0040, 0x18a5: 0x00b1, 0x18a6: 0x0319, 0x18a7: 0x0040, 0x18a8: 0x0040, 0x18a9: 0x0329,\n\t0x18aa: 0x0051, 0x18ab: 0x0339, 0x18ac: 0x0751, 0x18ad: 0x0040, 0x18ae: 0x0089, 0x18af: 0x0341,\n\t0x18b0: 0x0349, 0x18b1: 0x0391, 0x18b2: 0x00c1, 0x18b3: 0x0109, 0x18b4: 0x00c9, 0x18b5: 0x04b1,\n\t0x18b6: 0x0019, 0x18b7: 0x02e9, 0x18b8: 0x03d9, 0x18b9: 0x02f1, 0x18ba: 0x0040, 0x18bb: 0x03f1,\n\t0x18bc: 0x0040, 0x18bd: 0x00a9, 0x18be: 0x0311, 0x18bf: 0x00b1,\n\t// Block 0x63, offset 0x18c0\n\t0x18c0: 0x0319, 0x18c1: 0x0101, 0x18c2: 0x0321, 0x18c3: 0x0329, 0x18c4: 0x0040, 0x18c5: 0x0339,\n\t0x18c6: 0x0751, 0x18c7: 0x00b9, 0x18c8: 0x0089, 0x18c9: 0x0341, 0x18ca: 0x0349, 0x18cb: 0x0391,\n\t0x18cc: 0x00c1, 0x18cd: 0x0109, 0x18ce: 0x00c9, 0x18cf: 0x04b1, 0x18d0: 0x0019, 0x18d1: 0x02e9,\n\t0x18d2: 0x03d9, 0x18d3: 0x02f1, 0x18d4: 0x02f9, 0x18d5: 0x03f1, 0x18d6: 0x0309, 0x18d7: 0x00a9,\n\t0x18d8: 0x0311, 0x18d9: 0x00b1, 0x18da: 0x0319, 0x18db: 0x0101, 0x18dc: 0x0321, 0x18dd: 0x0329,\n\t0x18de: 0x0051, 0x18df: 0x0339, 0x18e0: 0x0751, 0x18e1: 0x00b9, 0x18e2: 0x0089, 0x18e3: 0x0341,\n\t0x18e4: 0x0349, 0x18e5: 0x0391, 0x18e6: 0x00c1, 0x18e7: 0x0109, 0x18e8: 0x00c9, 0x18e9: 0x04b1,\n\t0x18ea: 0x0019, 0x18eb: 0x02e9, 0x18ec: 0x03d9, 0x18ed: 0x02f1, 0x18ee: 0x02f9, 0x18ef: 0x03f1,\n\t0x18f0: 0x0309, 0x18f1: 0x00a9, 0x18f2: 0x0311, 0x18f3: 0x00b1, 0x18f4: 0x0319, 0x18f5: 0x0101,\n\t0x18f6: 0x0321, 0x18f7: 0x0329, 0x18f8: 0x0051, 0x18f9: 0x0339, 0x18fa: 0x0751, 0x18fb: 0x00b9,\n\t0x18fc: 0x0089, 0x18fd: 0x0341, 0x18fe: 0x0349, 0x18ff: 0x0391,\n\t// Block 0x64, offset 0x1900\n\t0x1900: 0x00c1, 0x1901: 0x0109, 0x1902: 0x00c9, 0x1903: 0x04b1, 0x1904: 0x0019, 0x1905: 0x02e9,\n\t0x1906: 0x0040, 0x1907: 0x02f1, 0x1908: 0x02f9, 0x1909: 0x03f1, 0x190a: 0x0309, 0x190b: 0x0040,\n\t0x190c: 0x0040, 0x190d: 0x00b1, 0x190e: 0x0319, 0x190f: 0x0101, 0x1910: 0x0321, 0x1911: 0x0329,\n\t0x1912: 0x0051, 0x1913: 0x0339, 0x1914: 0x0751, 0x1915: 0x0040, 0x1916: 0x0089, 0x1917: 0x0341,\n\t0x1918: 0x0349, 0x1919: 0x0391, 0x191a: 0x00c1, 0x191b: 0x0109, 0x191c: 0x00c9, 0x191d: 0x0040,\n\t0x191e: 0x0019, 0x191f: 0x02e9, 0x1920: 0x03d9, 0x1921: 0x02f1, 0x1922: 0x02f9, 0x1923: 0x03f1,\n\t0x1924: 0x0309, 0x1925: 0x00a9, 0x1926: 0x0311, 0x1927: 0x00b1, 0x1928: 0x0319, 0x1929: 0x0101,\n\t0x192a: 0x0321, 0x192b: 0x0329, 0x192c: 0x0051, 0x192d: 0x0339, 0x192e: 0x0751, 0x192f: 0x00b9,\n\t0x1930: 0x0089, 0x1931: 0x0341, 0x1932: 0x0349, 0x1933: 0x0391, 0x1934: 0x00c1, 0x1935: 0x0109,\n\t0x1936: 0x00c9, 0x1937: 0x04b1, 0x1938: 0x0019, 0x1939: 0x02e9, 0x193a: 0x0040, 0x193b: 0x02f1,\n\t0x193c: 0x02f9, 0x193d: 0x03f1, 0x193e: 0x0309, 0x193f: 0x0040,\n\t// Block 0x65, offset 0x1940\n\t0x1940: 0x0311, 0x1941: 0x00b1, 0x1942: 0x0319, 0x1943: 0x0101, 0x1944: 0x0321, 0x1945: 0x0040,\n\t0x1946: 0x0051, 0x1947: 0x0040, 0x1948: 0x0040, 0x1949: 0x0040, 0x194a: 0x0089, 0x194b: 0x0341,\n\t0x194c: 0x0349, 0x194d: 0x0391, 0x194e: 0x00c1, 0x194f: 0x0109, 0x1950: 0x00c9, 0x1951: 0x0040,\n\t0x1952: 0x0019, 0x1953: 0x02e9, 0x1954: 0x03d9, 0x1955: 0x02f1, 0x1956: 0x02f9, 0x1957: 0x03f1,\n\t0x1958: 0x0309, 0x1959: 0x00a9, 0x195a: 0x0311, 0x195b: 0x00b1, 0x195c: 0x0319, 0x195d: 0x0101,\n\t0x195e: 0x0321, 0x195f: 0x0329, 0x1960: 0x0051, 0x1961: 0x0339, 0x1962: 0x0751, 0x1963: 0x00b9,\n\t0x1964: 0x0089, 0x1965: 0x0341, 0x1966: 0x0349, 0x1967: 0x0391, 0x1968: 0x00c1, 0x1969: 0x0109,\n\t0x196a: 0x00c9, 0x196b: 0x04b1, 0x196c: 0x0019, 0x196d: 0x02e9, 0x196e: 0x03d9, 0x196f: 0x02f1,\n\t0x1970: 0x02f9, 0x1971: 0x03f1, 0x1972: 0x0309, 0x1973: 0x00a9, 0x1974: 0x0311, 0x1975: 0x00b1,\n\t0x1976: 0x0319, 0x1977: 0x0101, 0x1978: 0x0321, 0x1979: 0x0329, 0x197a: 0x0051, 0x197b: 0x0339,\n\t0x197c: 0x0751, 0x197d: 0x00b9, 0x197e: 0x0089, 0x197f: 0x0341,\n\t// Block 0x66, offset 0x1980\n\t0x1980: 0x0349, 0x1981: 0x0391, 0x1982: 0x00c1, 0x1983: 0x0109, 0x1984: 0x00c9, 0x1985: 0x04b1,\n\t0x1986: 0x0019, 0x1987: 0x02e9, 0x1988: 0x03d9, 0x1989: 0x02f1, 0x198a: 0x02f9, 0x198b: 0x03f1,\n\t0x198c: 0x0309, 0x198d: 0x00a9, 0x198e: 0x0311, 0x198f: 0x00b1, 0x1990: 0x0319, 0x1991: 0x0101,\n\t0x1992: 0x0321, 0x1993: 0x0329, 0x1994: 0x0051, 0x1995: 0x0339, 0x1996: 0x0751, 0x1997: 0x00b9,\n\t0x1998: 0x0089, 0x1999: 0x0341, 0x199a: 0x0349, 0x199b: 0x0391, 0x199c: 0x00c1, 0x199d: 0x0109,\n\t0x199e: 0x00c9, 0x199f: 0x04b1, 0x19a0: 0x0019, 0x19a1: 0x02e9, 0x19a2: 0x03d9, 0x19a3: 0x02f1,\n\t0x19a4: 0x02f9, 0x19a5: 0x03f1, 0x19a6: 0x0309, 0x19a7: 0x00a9, 0x19a8: 0x0311, 0x19a9: 0x00b1,\n\t0x19aa: 0x0319, 0x19ab: 0x0101, 0x19ac: 0x0321, 0x19ad: 0x0329, 0x19ae: 0x0051, 0x19af: 0x0339,\n\t0x19b0: 0x0751, 0x19b1: 0x00b9, 0x19b2: 0x0089, 0x19b3: 0x0341, 0x19b4: 0x0349, 0x19b5: 0x0391,\n\t0x19b6: 0x00c1, 0x19b7: 0x0109, 0x19b8: 0x00c9, 0x19b9: 0x04b1, 0x19ba: 0x0019, 0x19bb: 0x02e9,\n\t0x19bc: 0x03d9, 0x19bd: 0x02f1, 0x19be: 0x02f9, 0x19bf: 0x03f1,\n\t// Block 0x67, offset 0x19c0\n\t0x19c0: 0x0309, 0x19c1: 0x00a9, 0x19c2: 0x0311, 0x19c3: 0x00b1, 0x19c4: 0x0319, 0x19c5: 0x0101,\n\t0x19c6: 0x0321, 0x19c7: 0x0329, 0x19c8: 0x0051, 0x19c9: 0x0339, 0x19ca: 0x0751, 0x19cb: 0x00b9,\n\t0x19cc: 0x0089, 0x19cd: 0x0341, 0x19ce: 0x0349, 0x19cf: 0x0391, 0x19d0: 0x00c1, 0x19d1: 0x0109,\n\t0x19d2: 0x00c9, 0x19d3: 0x04b1, 0x19d4: 0x0019, 0x19d5: 0x02e9, 0x19d6: 0x03d9, 0x19d7: 0x02f1,\n\t0x19d8: 0x02f9, 0x19d9: 0x03f1, 0x19da: 0x0309, 0x19db: 0x00a9, 0x19dc: 0x0311, 0x19dd: 0x00b1,\n\t0x19de: 0x0319, 0x19df: 0x0101, 0x19e0: 0x0321, 0x19e1: 0x0329, 0x19e2: 0x0051, 0x19e3: 0x0339,\n\t0x19e4: 0x0751, 0x19e5: 0x00b9, 0x19e6: 0x0089, 0x19e7: 0x0341, 0x19e8: 0x0349, 0x19e9: 0x0391,\n\t0x19ea: 0x00c1, 0x19eb: 0x0109, 0x19ec: 0x00c9, 0x19ed: 0x04b1, 0x19ee: 0x0019, 0x19ef: 0x02e9,\n\t0x19f0: 0x03d9, 0x19f1: 0x02f1, 0x19f2: 0x02f9, 0x19f3: 0x03f1, 0x19f4: 0x0309, 0x19f5: 0x00a9,\n\t0x19f6: 0x0311, 0x19f7: 0x00b1, 0x19f8: 0x0319, 0x19f9: 0x0101, 0x19fa: 0x0321, 0x19fb: 0x0329,\n\t0x19fc: 0x0051, 0x19fd: 0x0339, 0x19fe: 0x0751, 0x19ff: 0x00b9,\n\t// Block 0x68, offset 0x1a00\n\t0x1a00: 0x0089, 0x1a01: 0x0341, 0x1a02: 0x0349, 0x1a03: 0x0391, 0x1a04: 0x00c1, 0x1a05: 0x0109,\n\t0x1a06: 0x00c9, 0x1a07: 0x04b1, 0x1a08: 0x0019, 0x1a09: 0x02e9, 0x1a0a: 0x03d9, 0x1a0b: 0x02f1,\n\t0x1a0c: 0x02f9, 0x1a0d: 0x03f1, 0x1a0e: 0x0309, 0x1a0f: 0x00a9, 0x1a10: 0x0311, 0x1a11: 0x00b1,\n\t0x1a12: 0x0319, 0x1a13: 0x0101, 0x1a14: 0x0321, 0x1a15: 0x0329, 0x1a16: 0x0051, 0x1a17: 0x0339,\n\t0x1a18: 0x0751, 0x1a19: 0x00b9, 0x1a1a: 0x0089, 0x1a1b: 0x0341, 0x1a1c: 0x0349, 0x1a1d: 0x0391,\n\t0x1a1e: 0x00c1, 0x1a1f: 0x0109, 0x1a20: 0x00c9, 0x1a21: 0x04b1, 0x1a22: 0x0019, 0x1a23: 0x02e9,\n\t0x1a24: 0x03d9, 0x1a25: 0x02f1, 0x1a26: 0x02f9, 0x1a27: 0x03f1, 0x1a28: 0x0309, 0x1a29: 0x00a9,\n\t0x1a2a: 0x0311, 0x1a2b: 0x00b1, 0x1a2c: 0x0319, 0x1a2d: 0x0101, 0x1a2e: 0x0321, 0x1a2f: 0x0329,\n\t0x1a30: 0x0051, 0x1a31: 0x0339, 0x1a32: 0x0751, 0x1a33: 0x00b9, 0x1a34: 0x0089, 0x1a35: 0x0341,\n\t0x1a36: 0x0349, 0x1a37: 0x0391, 0x1a38: 0x00c1, 0x1a39: 0x0109, 0x1a3a: 0x00c9, 0x1a3b: 0x04b1,\n\t0x1a3c: 0x0019, 0x1a3d: 0x02e9, 0x1a3e: 0x03d9, 0x1a3f: 0x02f1,\n\t// Block 0x69, offset 0x1a40\n\t0x1a40: 0x02f9, 0x1a41: 0x03f1, 0x1a42: 0x0309, 0x1a43: 0x00a9, 0x1a44: 0x0311, 0x1a45: 0x00b1,\n\t0x1a46: 0x0319, 0x1a47: 0x0101, 0x1a48: 0x0321, 0x1a49: 0x0329, 0x1a4a: 0x0051, 0x1a4b: 0x0339,\n\t0x1a4c: 0x0751, 0x1a4d: 0x00b9, 0x1a4e: 0x0089, 0x1a4f: 0x0341, 0x1a50: 0x0349, 0x1a51: 0x0391,\n\t0x1a52: 0x00c1, 0x1a53: 0x0109, 0x1a54: 0x00c9, 0x1a55: 0x04b1, 0x1a56: 0x0019, 0x1a57: 0x02e9,\n\t0x1a58: 0x03d9, 0x1a59: 0x02f1, 0x1a5a: 0x02f9, 0x1a5b: 0x03f1, 0x1a5c: 0x0309, 0x1a5d: 0x00a9,\n\t0x1a5e: 0x0311, 0x1a5f: 0x00b1, 0x1a60: 0x0319, 0x1a61: 0x0101, 0x1a62: 0x0321, 0x1a63: 0x0329,\n\t0x1a64: 0x0051, 0x1a65: 0x0339, 0x1a66: 0x0751, 0x1a67: 0x00b9, 0x1a68: 0x0089, 0x1a69: 0x0341,\n\t0x1a6a: 0x0349, 0x1a6b: 0x0391, 0x1a6c: 0x00c1, 0x1a6d: 0x0109, 0x1a6e: 0x00c9, 0x1a6f: 0x04b1,\n\t0x1a70: 0x0019, 0x1a71: 0x02e9, 0x1a72: 0x03d9, 0x1a73: 0x02f1, 0x1a74: 0x02f9, 0x1a75: 0x03f1,\n\t0x1a76: 0x0309, 0x1a77: 0x00a9, 0x1a78: 0x0311, 0x1a79: 0x00b1, 0x1a7a: 0x0319, 0x1a7b: 0x0101,\n\t0x1a7c: 0x0321, 0x1a7d: 0x0329, 0x1a7e: 0x0051, 0x1a7f: 0x0339,\n\t// Block 0x6a, offset 0x1a80\n\t0x1a80: 0x0751, 0x1a81: 0x00b9, 0x1a82: 0x0089, 0x1a83: 0x0341, 0x1a84: 0x0349, 0x1a85: 0x0391,\n\t0x1a86: 0x00c1, 0x1a87: 0x0109, 0x1a88: 0x00c9, 0x1a89: 0x04b1, 0x1a8a: 0x0019, 0x1a8b: 0x02e9,\n\t0x1a8c: 0x03d9, 0x1a8d: 0x02f1, 0x1a8e: 0x02f9, 0x1a8f: 0x03f1, 0x1a90: 0x0309, 0x1a91: 0x00a9,\n\t0x1a92: 0x0311, 0x1a93: 0x00b1, 0x1a94: 0x0319, 0x1a95: 0x0101, 0x1a96: 0x0321, 0x1a97: 0x0329,\n\t0x1a98: 0x0051, 0x1a99: 0x0339, 0x1a9a: 0x0751, 0x1a9b: 0x00b9, 0x1a9c: 0x0089, 0x1a9d: 0x0341,\n\t0x1a9e: 0x0349, 0x1a9f: 0x0391, 0x1aa0: 0x00c1, 0x1aa1: 0x0109, 0x1aa2: 0x00c9, 0x1aa3: 0x04b1,\n\t0x1aa4: 0x2279, 0x1aa5: 0x2281, 0x1aa6: 0x0040, 0x1aa7: 0x0040, 0x1aa8: 0x2289, 0x1aa9: 0x0399,\n\t0x1aaa: 0x03a1, 0x1aab: 0x03a9, 0x1aac: 0x2291, 0x1aad: 0x2299, 0x1aae: 0x22a1, 0x1aaf: 0x04d1,\n\t0x1ab0: 0x05f9, 0x1ab1: 0x22a9, 0x1ab2: 0x22b1, 0x1ab3: 0x22b9, 0x1ab4: 0x22c1, 0x1ab5: 0x22c9,\n\t0x1ab6: 0x22d1, 0x1ab7: 0x0799, 0x1ab8: 0x03c1, 0x1ab9: 0x04d1, 0x1aba: 0x22d9, 0x1abb: 0x22e1,\n\t0x1abc: 0x22e9, 0x1abd: 0x03b1, 0x1abe: 0x03b9, 0x1abf: 0x22f1,\n\t// Block 0x6b, offset 0x1ac0\n\t0x1ac0: 0x0769, 0x1ac1: 0x22f9, 0x1ac2: 0x2289, 0x1ac3: 0x0399, 0x1ac4: 0x03a1, 0x1ac5: 0x03a9,\n\t0x1ac6: 0x2291, 0x1ac7: 0x2299, 0x1ac8: 0x22a1, 0x1ac9: 0x04d1, 0x1aca: 0x05f9, 0x1acb: 0x22a9,\n\t0x1acc: 0x22b1, 0x1acd: 0x22b9, 0x1ace: 0x22c1, 0x1acf: 0x22c9, 0x1ad0: 0x22d1, 0x1ad1: 0x0799,\n\t0x1ad2: 0x03c1, 0x1ad3: 0x22d9, 0x1ad4: 0x22d9, 0x1ad5: 0x22e1, 0x1ad6: 0x22e9, 0x1ad7: 0x03b1,\n\t0x1ad8: 0x03b9, 0x1ad9: 0x22f1, 0x1ada: 0x0769, 0x1adb: 0x2301, 0x1adc: 0x2291, 0x1add: 0x04d1,\n\t0x1ade: 0x22a9, 0x1adf: 0x03b1, 0x1ae0: 0x03c1, 0x1ae1: 0x0799, 0x1ae2: 0x2289, 0x1ae3: 0x0399,\n\t0x1ae4: 0x03a1, 0x1ae5: 0x03a9, 0x1ae6: 0x2291, 0x1ae7: 0x2299, 0x1ae8: 0x22a1, 0x1ae9: 0x04d1,\n\t0x1aea: 0x05f9, 0x1aeb: 0x22a9, 0x1aec: 0x22b1, 0x1aed: 0x22b9, 0x1aee: 0x22c1, 0x1aef: 0x22c9,\n\t0x1af0: 0x22d1, 0x1af1: 0x0799, 0x1af2: 0x03c1, 0x1af3: 0x04d1, 0x1af4: 0x22d9, 0x1af5: 0x22e1,\n\t0x1af6: 0x22e9, 0x1af7: 0x03b1, 0x1af8: 0x03b9, 0x1af9: 0x22f1, 0x1afa: 0x0769, 0x1afb: 0x22f9,\n\t0x1afc: 0x2289, 0x1afd: 0x0399, 0x1afe: 0x03a1, 0x1aff: 0x03a9,\n\t// Block 0x6c, offset 0x1b00\n\t0x1b00: 0x2291, 0x1b01: 0x2299, 0x1b02: 0x22a1, 0x1b03: 0x04d1, 0x1b04: 0x05f9, 0x1b05: 0x22a9,\n\t0x1b06: 0x22b1, 0x1b07: 0x22b9, 0x1b08: 0x22c1, 0x1b09: 0x22c9, 0x1b0a: 0x22d1, 0x1b0b: 0x0799,\n\t0x1b0c: 0x03c1, 0x1b0d: 0x22d9, 0x1b0e: 0x22d9, 0x1b0f: 0x22e1, 0x1b10: 0x22e9, 0x1b11: 0x03b1,\n\t0x1b12: 0x03b9, 0x1b13: 0x22f1, 0x1b14: 0x0769, 0x1b15: 0x2301, 0x1b16: 0x2291, 0x1b17: 0x04d1,\n\t0x1b18: 0x22a9, 0x1b19: 0x03b1, 0x1b1a: 0x03c1, 0x1b1b: 0x0799, 0x1b1c: 0x2289, 0x1b1d: 0x0399,\n\t0x1b1e: 0x03a1, 0x1b1f: 0x03a9, 0x1b20: 0x2291, 0x1b21: 0x2299, 0x1b22: 0x22a1, 0x1b23: 0x04d1,\n\t0x1b24: 0x05f9, 0x1b25: 0x22a9, 0x1b26: 0x22b1, 0x1b27: 0x22b9, 0x1b28: 0x22c1, 0x1b29: 0x22c9,\n\t0x1b2a: 0x22d1, 0x1b2b: 0x0799, 0x1b2c: 0x03c1, 0x1b2d: 0x04d1, 0x1b2e: 0x22d9, 0x1b2f: 0x22e1,\n\t0x1b30: 0x22e9, 0x1b31: 0x03b1, 0x1b32: 0x03b9, 0x1b33: 0x22f1, 0x1b34: 0x0769, 0x1b35: 0x22f9,\n\t0x1b36: 0x2289, 0x1b37: 0x0399, 0x1b38: 0x03a1, 0x1b39: 0x03a9, 0x1b3a: 0x2291, 0x1b3b: 0x2299,\n\t0x1b3c: 0x22a1, 0x1b3d: 0x04d1, 0x1b3e: 0x05f9, 0x1b3f: 0x22a9,\n\t// Block 0x6d, offset 0x1b40\n\t0x1b40: 0x22b1, 0x1b41: 0x22b9, 0x1b42: 0x22c1, 0x1b43: 0x22c9, 0x1b44: 0x22d1, 0x1b45: 0x0799,\n\t0x1b46: 0x03c1, 0x1b47: 0x22d9, 0x1b48: 0x22d9, 0x1b49: 0x22e1, 0x1b4a: 0x22e9, 0x1b4b: 0x03b1,\n\t0x1b4c: 0x03b9, 0x1b4d: 0x22f1, 0x1b4e: 0x0769, 0x1b4f: 0x2301, 0x1b50: 0x2291, 0x1b51: 0x04d1,\n\t0x1b52: 0x22a9, 0x1b53: 0x03b1, 0x1b54: 0x03c1, 0x1b55: 0x0799, 0x1b56: 0x2289, 0x1b57: 0x0399,\n\t0x1b58: 0x03a1, 0x1b59: 0x03a9, 0x1b5a: 0x2291, 0x1b5b: 0x2299, 0x1b5c: 0x22a1, 0x1b5d: 0x04d1,\n\t0x1b5e: 0x05f9, 0x1b5f: 0x22a9, 0x1b60: 0x22b1, 0x1b61: 0x22b9, 0x1b62: 0x22c1, 0x1b63: 0x22c9,\n\t0x1b64: 0x22d1, 0x1b65: 0x0799, 0x1b66: 0x03c1, 0x1b67: 0x04d1, 0x1b68: 0x22d9, 0x1b69: 0x22e1,\n\t0x1b6a: 0x22e9, 0x1b6b: 0x03b1, 0x1b6c: 0x03b9, 0x1b6d: 0x22f1, 0x1b6e: 0x0769, 0x1b6f: 0x22f9,\n\t0x1b70: 0x2289, 0x1b71: 0x0399, 0x1b72: 0x03a1, 0x1b73: 0x03a9, 0x1b74: 0x2291, 0x1b75: 0x2299,\n\t0x1b76: 0x22a1, 0x1b77: 0x04d1, 0x1b78: 0x05f9, 0x1b79: 0x22a9, 0x1b7a: 0x22b1, 0x1b7b: 0x22b9,\n\t0x1b7c: 0x22c1, 0x1b7d: 0x22c9, 0x1b7e: 0x22d1, 0x1b7f: 0x0799,\n\t// Block 0x6e, offset 0x1b80\n\t0x1b80: 0x03c1, 0x1b81: 0x22d9, 0x1b82: 0x22d9, 0x1b83: 0x22e1, 0x1b84: 0x22e9, 0x1b85: 0x03b1,\n\t0x1b86: 0x03b9, 0x1b87: 0x22f1, 0x1b88: 0x0769, 0x1b89: 0x2301, 0x1b8a: 0x2291, 0x1b8b: 0x04d1,\n\t0x1b8c: 0x22a9, 0x1b8d: 0x03b1, 0x1b8e: 0x03c1, 0x1b8f: 0x0799, 0x1b90: 0x2289, 0x1b91: 0x0399,\n\t0x1b92: 0x03a1, 0x1b93: 0x03a9, 0x1b94: 0x2291, 0x1b95: 0x2299, 0x1b96: 0x22a1, 0x1b97: 0x04d1,\n\t0x1b98: 0x05f9, 0x1b99: 0x22a9, 0x1b9a: 0x22b1, 0x1b9b: 0x22b9, 0x1b9c: 0x22c1, 0x1b9d: 0x22c9,\n\t0x1b9e: 0x22d1, 0x1b9f: 0x0799, 0x1ba0: 0x03c1, 0x1ba1: 0x04d1, 0x1ba2: 0x22d9, 0x1ba3: 0x22e1,\n\t0x1ba4: 0x22e9, 0x1ba5: 0x03b1, 0x1ba6: 0x03b9, 0x1ba7: 0x22f1, 0x1ba8: 0x0769, 0x1ba9: 0x22f9,\n\t0x1baa: 0x2289, 0x1bab: 0x0399, 0x1bac: 0x03a1, 0x1bad: 0x03a9, 0x1bae: 0x2291, 0x1baf: 0x2299,\n\t0x1bb0: 0x22a1, 0x1bb1: 0x04d1, 0x1bb2: 0x05f9, 0x1bb3: 0x22a9, 0x1bb4: 0x22b1, 0x1bb5: 0x22b9,\n\t0x1bb6: 0x22c1, 0x1bb7: 0x22c9, 0x1bb8: 0x22d1, 0x1bb9: 0x0799, 0x1bba: 0x03c1, 0x1bbb: 0x22d9,\n\t0x1bbc: 0x22d9, 0x1bbd: 0x22e1, 0x1bbe: 0x22e9, 0x1bbf: 0x03b1,\n\t// Block 0x6f, offset 0x1bc0\n\t0x1bc0: 0x03b9, 0x1bc1: 0x22f1, 0x1bc2: 0x0769, 0x1bc3: 0x2301, 0x1bc4: 0x2291, 0x1bc5: 0x04d1,\n\t0x1bc6: 0x22a9, 0x1bc7: 0x03b1, 0x1bc8: 0x03c1, 0x1bc9: 0x0799, 0x1bca: 0x2309, 0x1bcb: 0x2309,\n\t0x1bcc: 0x0040, 0x1bcd: 0x0040, 0x1bce: 0x06e1, 0x1bcf: 0x0049, 0x1bd0: 0x0029, 0x1bd1: 0x0031,\n\t0x1bd2: 0x06e9, 0x1bd3: 0x06f1, 0x1bd4: 0x06f9, 0x1bd5: 0x0701, 0x1bd6: 0x0709, 0x1bd7: 0x0711,\n\t0x1bd8: 0x06e1, 0x1bd9: 0x0049, 0x1bda: 0x0029, 0x1bdb: 0x0031, 0x1bdc: 0x06e9, 0x1bdd: 0x06f1,\n\t0x1bde: 0x06f9, 0x1bdf: 0x0701, 0x1be0: 0x0709, 0x1be1: 0x0711, 0x1be2: 0x06e1, 0x1be3: 0x0049,\n\t0x1be4: 0x0029, 0x1be5: 0x0031, 0x1be6: 0x06e9, 0x1be7: 0x06f1, 0x1be8: 0x06f9, 0x1be9: 0x0701,\n\t0x1bea: 0x0709, 0x1beb: 0x0711, 0x1bec: 0x06e1, 0x1bed: 0x0049, 0x1bee: 0x0029, 0x1bef: 0x0031,\n\t0x1bf0: 0x06e9, 0x1bf1: 0x06f1, 0x1bf2: 0x06f9, 0x1bf3: 0x0701, 0x1bf4: 0x0709, 0x1bf5: 0x0711,\n\t0x1bf6: 0x06e1, 0x1bf7: 0x0049, 0x1bf8: 0x0029, 0x1bf9: 0x0031, 0x1bfa: 0x06e9, 0x1bfb: 0x06f1,\n\t0x1bfc: 0x06f9, 0x1bfd: 0x0701, 0x1bfe: 0x0709, 0x1bff: 0x0711,\n\t// Block 0x70, offset 0x1c00\n\t0x1c00: 0xe115, 0x1c01: 0xe115, 0x1c02: 0xe135, 0x1c03: 0xe135, 0x1c04: 0xe115, 0x1c05: 0xe115,\n\t0x1c06: 0xe175, 0x1c07: 0xe175, 0x1c08: 0xe115, 0x1c09: 0xe115, 0x1c0a: 0xe135, 0x1c0b: 0xe135,\n\t0x1c0c: 0xe115, 0x1c0d: 0xe115, 0x1c0e: 0xe1f5, 0x1c0f: 0xe1f5, 0x1c10: 0xe115, 0x1c11: 0xe115,\n\t0x1c12: 0xe135, 0x1c13: 0xe135, 0x1c14: 0xe115, 0x1c15: 0xe115, 0x1c16: 0xe175, 0x1c17: 0xe175,\n\t0x1c18: 0xe115, 0x1c19: 0xe115, 0x1c1a: 0xe135, 0x1c1b: 0xe135, 0x1c1c: 0xe115, 0x1c1d: 0xe115,\n\t0x1c1e: 0x8b3d, 0x1c1f: 0x8b3d, 0x1c20: 0x04b5, 0x1c21: 0x04b5, 0x1c22: 0x0a08, 0x1c23: 0x0a08,\n\t0x1c24: 0x0a08, 0x1c25: 0x0a08, 0x1c26: 0x0a08, 0x1c27: 0x0a08, 0x1c28: 0x0a08, 0x1c29: 0x0a08,\n\t0x1c2a: 0x0a08, 0x1c2b: 0x0a08, 0x1c2c: 0x0a08, 0x1c2d: 0x0a08, 0x1c2e: 0x0a08, 0x1c2f: 0x0a08,\n\t0x1c30: 0x0a08, 0x1c31: 0x0a08, 0x1c32: 0x0a08, 0x1c33: 0x0a08, 0x1c34: 0x0a08, 0x1c35: 0x0a08,\n\t0x1c36: 0x0a08, 0x1c37: 0x0a08, 0x1c38: 0x0a08, 0x1c39: 0x0a08, 0x1c3a: 0x0a08, 0x1c3b: 0x0a08,\n\t0x1c3c: 0x0a08, 0x1c3d: 0x0a08, 0x1c3e: 0x0a08, 0x1c3f: 0x0a08,\n\t// Block 0x71, offset 0x1c40\n\t0x1c40: 0x20b1, 0x1c41: 0x20b9, 0x1c42: 0x20d9, 0x1c43: 0x20f1, 0x1c44: 0x0040, 0x1c45: 0x2189,\n\t0x1c46: 0x2109, 0x1c47: 0x20e1, 0x1c48: 0x2131, 0x1c49: 0x2191, 0x1c4a: 0x2161, 0x1c4b: 0x2169,\n\t0x1c4c: 0x2171, 0x1c4d: 0x2179, 0x1c4e: 0x2111, 0x1c4f: 0x2141, 0x1c50: 0x2151, 0x1c51: 0x2121,\n\t0x1c52: 0x2159, 0x1c53: 0x2101, 0x1c54: 0x2119, 0x1c55: 0x20c9, 0x1c56: 0x20d1, 0x1c57: 0x20e9,\n\t0x1c58: 0x20f9, 0x1c59: 0x2129, 0x1c5a: 0x2139, 0x1c5b: 0x2149, 0x1c5c: 0x2311, 0x1c5d: 0x1689,\n\t0x1c5e: 0x2319, 0x1c5f: 0x2321, 0x1c60: 0x0040, 0x1c61: 0x20b9, 0x1c62: 0x20d9, 0x1c63: 0x0040,\n\t0x1c64: 0x2181, 0x1c65: 0x0040, 0x1c66: 0x0040, 0x1c67: 0x20e1, 0x1c68: 0x0040, 0x1c69: 0x2191,\n\t0x1c6a: 0x2161, 0x1c6b: 0x2169, 0x1c6c: 0x2171, 0x1c6d: 0x2179, 0x1c6e: 0x2111, 0x1c6f: 0x2141,\n\t0x1c70: 0x2151, 0x1c71: 0x2121, 0x1c72: 0x2159, 0x1c73: 0x0040, 0x1c74: 0x2119, 0x1c75: 0x20c9,\n\t0x1c76: 0x20d1, 0x1c77: 0x20e9, 0x1c78: 0x0040, 0x1c79: 0x2129, 0x1c7a: 0x0040, 0x1c7b: 0x2149,\n\t0x1c7c: 0x0040, 0x1c7d: 0x0040, 0x1c7e: 0x0040, 0x1c7f: 0x0040,\n\t// Block 0x72, offset 0x1c80\n\t0x1c80: 0x0040, 0x1c81: 0x0040, 0x1c82: 0x20d9, 0x1c83: 0x0040, 0x1c84: 0x0040, 0x1c85: 0x0040,\n\t0x1c86: 0x0040, 0x1c87: 0x20e1, 0x1c88: 0x0040, 0x1c89: 0x2191, 0x1c8a: 0x0040, 0x1c8b: 0x2169,\n\t0x1c8c: 0x0040, 0x1c8d: 0x2179, 0x1c8e: 0x2111, 0x1c8f: 0x2141, 0x1c90: 0x0040, 0x1c91: 0x2121,\n\t0x1c92: 0x2159, 0x1c93: 0x0040, 0x1c94: 0x2119, 0x1c95: 0x0040, 0x1c96: 0x0040, 0x1c97: 0x20e9,\n\t0x1c98: 0x0040, 0x1c99: 0x2129, 0x1c9a: 0x0040, 0x1c9b: 0x2149, 0x1c9c: 0x0040, 0x1c9d: 0x1689,\n\t0x1c9e: 0x0040, 0x1c9f: 0x2321, 0x1ca0: 0x0040, 0x1ca1: 0x20b9, 0x1ca2: 0x20d9, 0x1ca3: 0x0040,\n\t0x1ca4: 0x2181, 0x1ca5: 0x0040, 0x1ca6: 0x0040, 0x1ca7: 0x20e1, 0x1ca8: 0x2131, 0x1ca9: 0x2191,\n\t0x1caa: 0x2161, 0x1cab: 0x0040, 0x1cac: 0x2171, 0x1cad: 0x2179, 0x1cae: 0x2111, 0x1caf: 0x2141,\n\t0x1cb0: 0x2151, 0x1cb1: 0x2121, 0x1cb2: 0x2159, 0x1cb3: 0x0040, 0x1cb4: 0x2119, 0x1cb5: 0x20c9,\n\t0x1cb6: 0x20d1, 0x1cb7: 0x20e9, 0x1cb8: 0x0040, 0x1cb9: 0x2129, 0x1cba: 0x2139, 0x1cbb: 0x2149,\n\t0x1cbc: 0x2311, 0x1cbd: 0x0040, 0x1cbe: 0x2319, 0x1cbf: 0x0040,\n\t// Block 0x73, offset 0x1cc0\n\t0x1cc0: 0x20b1, 0x1cc1: 0x20b9, 0x1cc2: 0x20d9, 0x1cc3: 0x20f1, 0x1cc4: 0x2181, 0x1cc5: 0x2189,\n\t0x1cc6: 0x2109, 0x1cc7: 0x20e1, 0x1cc8: 0x2131, 0x1cc9: 0x2191, 0x1cca: 0x0040, 0x1ccb: 0x2169,\n\t0x1ccc: 0x2171, 0x1ccd: 0x2179, 0x1cce: 0x2111, 0x1ccf: 0x2141, 0x1cd0: 0x2151, 0x1cd1: 0x2121,\n\t0x1cd2: 0x2159, 0x1cd3: 0x2101, 0x1cd4: 0x2119, 0x1cd5: 0x20c9, 0x1cd6: 0x20d1, 0x1cd7: 0x20e9,\n\t0x1cd8: 0x20f9, 0x1cd9: 0x2129, 0x1cda: 0x2139, 0x1cdb: 0x2149, 0x1cdc: 0x0040, 0x1cdd: 0x0040,\n\t0x1cde: 0x0040, 0x1cdf: 0x0040, 0x1ce0: 0x0040, 0x1ce1: 0x20b9, 0x1ce2: 0x20d9, 0x1ce3: 0x20f1,\n\t0x1ce4: 0x0040, 0x1ce5: 0x2189, 0x1ce6: 0x2109, 0x1ce7: 0x20e1, 0x1ce8: 0x2131, 0x1ce9: 0x2191,\n\t0x1cea: 0x0040, 0x1ceb: 0x2169, 0x1cec: 0x2171, 0x1ced: 0x2179, 0x1cee: 0x2111, 0x1cef: 0x2141,\n\t0x1cf0: 0x2151, 0x1cf1: 0x2121, 0x1cf2: 0x2159, 0x1cf3: 0x2101, 0x1cf4: 0x2119, 0x1cf5: 0x20c9,\n\t0x1cf6: 0x20d1, 0x1cf7: 0x20e9, 0x1cf8: 0x20f9, 0x1cf9: 0x2129, 0x1cfa: 0x2139, 0x1cfb: 0x2149,\n\t0x1cfc: 0x0040, 0x1cfd: 0x0040, 0x1cfe: 0x0040, 0x1cff: 0x0040,\n\t// Block 0x74, offset 0x1d00\n\t0x1d00: 0x0040, 0x1d01: 0x232a, 0x1d02: 0x2332, 0x1d03: 0x233a, 0x1d04: 0x2342, 0x1d05: 0x234a,\n\t0x1d06: 0x2352, 0x1d07: 0x235a, 0x1d08: 0x2362, 0x1d09: 0x236a, 0x1d0a: 0x2372, 0x1d0b: 0x0018,\n\t0x1d0c: 0x0018, 0x1d0d: 0x0018, 0x1d0e: 0x0018, 0x1d0f: 0x0018, 0x1d10: 0x237a, 0x1d11: 0x2382,\n\t0x1d12: 0x238a, 0x1d13: 0x2392, 0x1d14: 0x239a, 0x1d15: 0x23a2, 0x1d16: 0x23aa, 0x1d17: 0x23b2,\n\t0x1d18: 0x23ba, 0x1d19: 0x23c2, 0x1d1a: 0x23ca, 0x1d1b: 0x23d2, 0x1d1c: 0x23da, 0x1d1d: 0x23e2,\n\t0x1d1e: 0x23ea, 0x1d1f: 0x23f2, 0x1d20: 0x23fa, 0x1d21: 0x2402, 0x1d22: 0x240a, 0x1d23: 0x2412,\n\t0x1d24: 0x241a, 0x1d25: 0x2422, 0x1d26: 0x242a, 0x1d27: 0x2432, 0x1d28: 0x243a, 0x1d29: 0x2442,\n\t0x1d2a: 0x2449, 0x1d2b: 0x03d9, 0x1d2c: 0x00b9, 0x1d2d: 0x1239, 0x1d2e: 0x2451, 0x1d2f: 0x0018,\n\t0x1d30: 0x0019, 0x1d31: 0x02e9, 0x1d32: 0x03d9, 0x1d33: 0x02f1, 0x1d34: 0x02f9, 0x1d35: 0x03f1,\n\t0x1d36: 0x0309, 0x1d37: 0x00a9, 0x1d38: 0x0311, 0x1d39: 0x00b1, 0x1d3a: 0x0319, 0x1d3b: 0x0101,\n\t0x1d3c: 0x0321, 0x1d3d: 0x0329, 0x1d3e: 0x0051, 0x1d3f: 0x0339,\n\t// Block 0x75, offset 0x1d40\n\t0x1d40: 0x0751, 0x1d41: 0x00b9, 0x1d42: 0x0089, 0x1d43: 0x0341, 0x1d44: 0x0349, 0x1d45: 0x0391,\n\t0x1d46: 0x00c1, 0x1d47: 0x0109, 0x1d48: 0x00c9, 0x1d49: 0x04b1, 0x1d4a: 0x2459, 0x1d4b: 0x11f9,\n\t0x1d4c: 0x2461, 0x1d4d: 0x04d9, 0x1d4e: 0x2469, 0x1d4f: 0x2471, 0x1d50: 0x0018, 0x1d51: 0x0018,\n\t0x1d52: 0x0018, 0x1d53: 0x0018, 0x1d54: 0x0018, 0x1d55: 0x0018, 0x1d56: 0x0018, 0x1d57: 0x0018,\n\t0x1d58: 0x0018, 0x1d59: 0x0018, 0x1d5a: 0x0018, 0x1d5b: 0x0018, 0x1d5c: 0x0018, 0x1d5d: 0x0018,\n\t0x1d5e: 0x0018, 0x1d5f: 0x0018, 0x1d60: 0x0018, 0x1d61: 0x0018, 0x1d62: 0x0018, 0x1d63: 0x0018,\n\t0x1d64: 0x0018, 0x1d65: 0x0018, 0x1d66: 0x0018, 0x1d67: 0x0018, 0x1d68: 0x0018, 0x1d69: 0x0018,\n\t0x1d6a: 0x2479, 0x1d6b: 0x2481, 0x1d6c: 0x2489, 0x1d6d: 0x0018, 0x1d6e: 0x0018, 0x1d6f: 0x0018,\n\t0x1d70: 0x0018, 0x1d71: 0x0018, 0x1d72: 0x0018, 0x1d73: 0x0018, 0x1d74: 0x0018, 0x1d75: 0x0018,\n\t0x1d76: 0x0018, 0x1d77: 0x0018, 0x1d78: 0x0018, 0x1d79: 0x0018, 0x1d7a: 0x0018, 0x1d7b: 0x0018,\n\t0x1d7c: 0x0018, 0x1d7d: 0x0018, 0x1d7e: 0x0018, 0x1d7f: 0x0018,\n\t// Block 0x76, offset 0x1d80\n\t0x1d80: 0x2499, 0x1d81: 0x24a1, 0x1d82: 0x24a9, 0x1d83: 0x0040, 0x1d84: 0x0040, 0x1d85: 0x0040,\n\t0x1d86: 0x0040, 0x1d87: 0x0040, 0x1d88: 0x0040, 0x1d89: 0x0040, 0x1d8a: 0x0040, 0x1d8b: 0x0040,\n\t0x1d8c: 0x0040, 0x1d8d: 0x0040, 0x1d8e: 0x0040, 0x1d8f: 0x0040, 0x1d90: 0x24b1, 0x1d91: 0x24b9,\n\t0x1d92: 0x24c1, 0x1d93: 0x24c9, 0x1d94: 0x24d1, 0x1d95: 0x24d9, 0x1d96: 0x24e1, 0x1d97: 0x24e9,\n\t0x1d98: 0x24f1, 0x1d99: 0x24f9, 0x1d9a: 0x2501, 0x1d9b: 0x2509, 0x1d9c: 0x2511, 0x1d9d: 0x2519,\n\t0x1d9e: 0x2521, 0x1d9f: 0x2529, 0x1da0: 0x2531, 0x1da1: 0x2539, 0x1da2: 0x2541, 0x1da3: 0x2549,\n\t0x1da4: 0x2551, 0x1da5: 0x2559, 0x1da6: 0x2561, 0x1da7: 0x2569, 0x1da8: 0x2571, 0x1da9: 0x2579,\n\t0x1daa: 0x2581, 0x1dab: 0x2589, 0x1dac: 0x2591, 0x1dad: 0x2599, 0x1dae: 0x25a1, 0x1daf: 0x25a9,\n\t0x1db0: 0x25b1, 0x1db1: 0x25b9, 0x1db2: 0x25c1, 0x1db3: 0x25c9, 0x1db4: 0x25d1, 0x1db5: 0x25d9,\n\t0x1db6: 0x25e1, 0x1db7: 0x25e9, 0x1db8: 0x25f1, 0x1db9: 0x25f9, 0x1dba: 0x2601, 0x1dbb: 0x2609,\n\t0x1dbc: 0x0040, 0x1dbd: 0x0040, 0x1dbe: 0x0040, 0x1dbf: 0x0040,\n\t// Block 0x77, offset 0x1dc0\n\t0x1dc0: 0x2669, 0x1dc1: 0x2671, 0x1dc2: 0x2679, 0x1dc3: 0x8b55, 0x1dc4: 0x2681, 0x1dc5: 0x2689,\n\t0x1dc6: 0x2691, 0x1dc7: 0x2699, 0x1dc8: 0x26a1, 0x1dc9: 0x26a9, 0x1dca: 0x26b1, 0x1dcb: 0x26b9,\n\t0x1dcc: 0x26c1, 0x1dcd: 0x8b75, 0x1dce: 0x26c9, 0x1dcf: 0x26d1, 0x1dd0: 0x26d9, 0x1dd1: 0x26e1,\n\t0x1dd2: 0x8b95, 0x1dd3: 0x26e9, 0x1dd4: 0x26f1, 0x1dd5: 0x2521, 0x1dd6: 0x8bb5, 0x1dd7: 0x26f9,\n\t0x1dd8: 0x2701, 0x1dd9: 0x2709, 0x1dda: 0x2711, 0x1ddb: 0x2719, 0x1ddc: 0x8bd5, 0x1ddd: 0x2721,\n\t0x1dde: 0x2729, 0x1ddf: 0x2731, 0x1de0: 0x2739, 0x1de1: 0x2741, 0x1de2: 0x25f9, 0x1de3: 0x2749,\n\t0x1de4: 0x2751, 0x1de5: 0x2759, 0x1de6: 0x2761, 0x1de7: 0x2769, 0x1de8: 0x2771, 0x1de9: 0x2779,\n\t0x1dea: 0x2781, 0x1deb: 0x2789, 0x1dec: 0x2791, 0x1ded: 0x2799, 0x1dee: 0x27a1, 0x1def: 0x27a9,\n\t0x1df0: 0x27b1, 0x1df1: 0x27b9, 0x1df2: 0x27b9, 0x1df3: 0x27b9, 0x1df4: 0x8bf5, 0x1df5: 0x27c1,\n\t0x1df6: 0x27c9, 0x1df7: 0x27d1, 0x1df8: 0x8c15, 0x1df9: 0x27d9, 0x1dfa: 0x27e1, 0x1dfb: 0x27e9,\n\t0x1dfc: 0x27f1, 0x1dfd: 0x27f9, 0x1dfe: 0x2801, 0x1dff: 0x2809,\n\t// Block 0x78, offset 0x1e00\n\t0x1e00: 0x2811, 0x1e01: 0x2819, 0x1e02: 0x2821, 0x1e03: 0x2829, 0x1e04: 0x2831, 0x1e05: 0x2839,\n\t0x1e06: 0x2839, 0x1e07: 0x2841, 0x1e08: 0x2849, 0x1e09: 0x2851, 0x1e0a: 0x2859, 0x1e0b: 0x2861,\n\t0x1e0c: 0x2869, 0x1e0d: 0x2871, 0x1e0e: 0x2879, 0x1e0f: 0x2881, 0x1e10: 0x2889, 0x1e11: 0x2891,\n\t0x1e12: 0x2899, 0x1e13: 0x28a1, 0x1e14: 0x28a9, 0x1e15: 0x28b1, 0x1e16: 0x28b9, 0x1e17: 0x28c1,\n\t0x1e18: 0x28c9, 0x1e19: 0x8c35, 0x1e1a: 0x28d1, 0x1e1b: 0x28d9, 0x1e1c: 0x28e1, 0x1e1d: 0x24d9,\n\t0x1e1e: 0x28e9, 0x1e1f: 0x28f1, 0x1e20: 0x8c55, 0x1e21: 0x8c75, 0x1e22: 0x28f9, 0x1e23: 0x2901,\n\t0x1e24: 0x2909, 0x1e25: 0x2911, 0x1e26: 0x2919, 0x1e27: 0x2921, 0x1e28: 0x2040, 0x1e29: 0x2929,\n\t0x1e2a: 0x2931, 0x1e2b: 0x2931, 0x1e2c: 0x8c95, 0x1e2d: 0x2939, 0x1e2e: 0x2941, 0x1e2f: 0x2949,\n\t0x1e30: 0x2951, 0x1e31: 0x8cb5, 0x1e32: 0x2959, 0x1e33: 0x2961, 0x1e34: 0x2040, 0x1e35: 0x2969,\n\t0x1e36: 0x2971, 0x1e37: 0x2979, 0x1e38: 0x2981, 0x1e39: 0x2989, 0x1e3a: 0x2991, 0x1e3b: 0x8cd5,\n\t0x1e3c: 0x2999, 0x1e3d: 0x8cf5, 0x1e3e: 0x29a1, 0x1e3f: 0x29a9,\n\t// Block 0x79, offset 0x1e40\n\t0x1e40: 0x29b1, 0x1e41: 0x29b9, 0x1e42: 0x29c1, 0x1e43: 0x29c9, 0x1e44: 0x29d1, 0x1e45: 0x29d9,\n\t0x1e46: 0x29e1, 0x1e47: 0x29e9, 0x1e48: 0x29f1, 0x1e49: 0x8d15, 0x1e4a: 0x29f9, 0x1e4b: 0x2a01,\n\t0x1e4c: 0x2a09, 0x1e4d: 0x2a11, 0x1e4e: 0x2a19, 0x1e4f: 0x8d35, 0x1e50: 0x2a21, 0x1e51: 0x8d55,\n\t0x1e52: 0x8d75, 0x1e53: 0x2a29, 0x1e54: 0x2a31, 0x1e55: 0x2a31, 0x1e56: 0x2a39, 0x1e57: 0x8d95,\n\t0x1e58: 0x8db5, 0x1e59: 0x2a41, 0x1e5a: 0x2a49, 0x1e5b: 0x2a51, 0x1e5c: 0x2a59, 0x1e5d: 0x2a61,\n\t0x1e5e: 0x2a69, 0x1e5f: 0x2a71, 0x1e60: 0x2a79, 0x1e61: 0x2a81, 0x1e62: 0x2a89, 0x1e63: 0x2a91,\n\t0x1e64: 0x8dd5, 0x1e65: 0x2a99, 0x1e66: 0x2aa1, 0x1e67: 0x2aa9, 0x1e68: 0x2ab1, 0x1e69: 0x2aa9,\n\t0x1e6a: 0x2ab9, 0x1e6b: 0x2ac1, 0x1e6c: 0x2ac9, 0x1e6d: 0x2ad1, 0x1e6e: 0x2ad9, 0x1e6f: 0x2ae1,\n\t0x1e70: 0x2ae9, 0x1e71: 0x2af1, 0x1e72: 0x2af9, 0x1e73: 0x2b01, 0x1e74: 0x2b09, 0x1e75: 0x2b11,\n\t0x1e76: 0x2b19, 0x1e77: 0x2b21, 0x1e78: 0x8df5, 0x1e79: 0x2b29, 0x1e7a: 0x2b31, 0x1e7b: 0x2b39,\n\t0x1e7c: 0x2b41, 0x1e7d: 0x2b49, 0x1e7e: 0x8e15, 0x1e7f: 0x2b51,\n\t// Block 0x7a, offset 0x1e80\n\t0x1e80: 0x2b59, 0x1e81: 0x2b61, 0x1e82: 0x2b69, 0x1e83: 0x2b71, 0x1e84: 0x2b79, 0x1e85: 0x2b81,\n\t0x1e86: 0x2b89, 0x1e87: 0x2b91, 0x1e88: 0x2b99, 0x1e89: 0x2ba1, 0x1e8a: 0x8e35, 0x1e8b: 0x2ba9,\n\t0x1e8c: 0x2bb1, 0x1e8d: 0x2bb9, 0x1e8e: 0x2bc1, 0x1e8f: 0x2bc9, 0x1e90: 0x2bd1, 0x1e91: 0x2bd9,\n\t0x1e92: 0x2be1, 0x1e93: 0x2be9, 0x1e94: 0x2bf1, 0x1e95: 0x2bf9, 0x1e96: 0x2c01, 0x1e97: 0x2c09,\n\t0x1e98: 0x2c11, 0x1e99: 0x2c19, 0x1e9a: 0x2c21, 0x1e9b: 0x2c29, 0x1e9c: 0x2c31, 0x1e9d: 0x8e55,\n\t0x1e9e: 0x2c39, 0x1e9f: 0x2c41, 0x1ea0: 0x2c49, 0x1ea1: 0x2c51, 0x1ea2: 0x2c59, 0x1ea3: 0x8e75,\n\t0x1ea4: 0x2c61, 0x1ea5: 0x2c69, 0x1ea6: 0x2c71, 0x1ea7: 0x2c79, 0x1ea8: 0x2c81, 0x1ea9: 0x2c89,\n\t0x1eaa: 0x2c91, 0x1eab: 0x2c99, 0x1eac: 0x7f0d, 0x1ead: 0x2ca1, 0x1eae: 0x2ca9, 0x1eaf: 0x2cb1,\n\t0x1eb0: 0x8e95, 0x1eb1: 0x2cb9, 0x1eb2: 0x2cc1, 0x1eb3: 0x2cc9, 0x1eb4: 0x2cd1, 0x1eb5: 0x2cd9,\n\t0x1eb6: 0x2ce1, 0x1eb7: 0x8eb5, 0x1eb8: 0x8ed5, 0x1eb9: 0x8ef5, 0x1eba: 0x2ce9, 0x1ebb: 0x8f15,\n\t0x1ebc: 0x2cf1, 0x1ebd: 0x2cf9, 0x1ebe: 0x2d01, 0x1ebf: 0x2d09,\n\t// Block 0x7b, offset 0x1ec0\n\t0x1ec0: 0x2d11, 0x1ec1: 0x2d19, 0x1ec2: 0x2d21, 0x1ec3: 0x2d29, 0x1ec4: 0x2d31, 0x1ec5: 0x2d39,\n\t0x1ec6: 0x8f35, 0x1ec7: 0x2d41, 0x1ec8: 0x2d49, 0x1ec9: 0x2d51, 0x1eca: 0x2d59, 0x1ecb: 0x2d61,\n\t0x1ecc: 0x2d69, 0x1ecd: 0x8f55, 0x1ece: 0x2d71, 0x1ecf: 0x2d79, 0x1ed0: 0x8f75, 0x1ed1: 0x8f95,\n\t0x1ed2: 0x2d81, 0x1ed3: 0x2d89, 0x1ed4: 0x2d91, 0x1ed5: 0x2d99, 0x1ed6: 0x2da1, 0x1ed7: 0x2da9,\n\t0x1ed8: 0x2db1, 0x1ed9: 0x2db9, 0x1eda: 0x2dc1, 0x1edb: 0x8fb5, 0x1edc: 0x2dc9, 0x1edd: 0x8fd5,\n\t0x1ede: 0x2dd1, 0x1edf: 0x2040, 0x1ee0: 0x2dd9, 0x1ee1: 0x2de1, 0x1ee2: 0x2de9, 0x1ee3: 0x8ff5,\n\t0x1ee4: 0x2df1, 0x1ee5: 0x2df9, 0x1ee6: 0x9015, 0x1ee7: 0x9035, 0x1ee8: 0x2e01, 0x1ee9: 0x2e09,\n\t0x1eea: 0x2e11, 0x1eeb: 0x2e19, 0x1eec: 0x2e21, 0x1eed: 0x2e21, 0x1eee: 0x2e29, 0x1eef: 0x2e31,\n\t0x1ef0: 0x2e39, 0x1ef1: 0x2e41, 0x1ef2: 0x2e49, 0x1ef3: 0x2e51, 0x1ef4: 0x2e59, 0x1ef5: 0x9055,\n\t0x1ef6: 0x2e61, 0x1ef7: 0x9075, 0x1ef8: 0x2e69, 0x1ef9: 0x9095, 0x1efa: 0x2e71, 0x1efb: 0x90b5,\n\t0x1efc: 0x90d5, 0x1efd: 0x90f5, 0x1efe: 0x2e79, 0x1eff: 0x2e81,\n\t// Block 0x7c, offset 0x1f00\n\t0x1f00: 0x2e89, 0x1f01: 0x9115, 0x1f02: 0x9135, 0x1f03: 0x9155, 0x1f04: 0x9175, 0x1f05: 0x2e91,\n\t0x1f06: 0x2e99, 0x1f07: 0x2e99, 0x1f08: 0x2ea1, 0x1f09: 0x2ea9, 0x1f0a: 0x2eb1, 0x1f0b: 0x2eb9,\n\t0x1f0c: 0x2ec1, 0x1f0d: 0x9195, 0x1f0e: 0x2ec9, 0x1f0f: 0x2ed1, 0x1f10: 0x2ed9, 0x1f11: 0x2ee1,\n\t0x1f12: 0x91b5, 0x1f13: 0x2ee9, 0x1f14: 0x91d5, 0x1f15: 0x91f5, 0x1f16: 0x2ef1, 0x1f17: 0x2ef9,\n\t0x1f18: 0x2f01, 0x1f19: 0x2f09, 0x1f1a: 0x2f11, 0x1f1b: 0x2f19, 0x1f1c: 0x9215, 0x1f1d: 0x9235,\n\t0x1f1e: 0x9255, 0x1f1f: 0x2040, 0x1f20: 0x2f21, 0x1f21: 0x9275, 0x1f22: 0x2f29, 0x1f23: 0x2f31,\n\t0x1f24: 0x2f39, 0x1f25: 0x9295, 0x1f26: 0x2f41, 0x1f27: 0x2f49, 0x1f28: 0x2f51, 0x1f29: 0x2f59,\n\t0x1f2a: 0x2f61, 0x1f2b: 0x92b5, 0x1f2c: 0x2f69, 0x1f2d: 0x2f71, 0x1f2e: 0x2f79, 0x1f2f: 0x2f81,\n\t0x1f30: 0x2f89, 0x1f31: 0x2f91, 0x1f32: 0x92d5, 0x1f33: 0x92f5, 0x1f34: 0x2f99, 0x1f35: 0x9315,\n\t0x1f36: 0x2fa1, 0x1f37: 0x9335, 0x1f38: 0x2fa9, 0x1f39: 0x2fb1, 0x1f3a: 0x2fb9, 0x1f3b: 0x9355,\n\t0x1f3c: 0x9375, 0x1f3d: 0x2fc1, 0x1f3e: 0x9395, 0x1f3f: 0x2fc9,\n\t// Block 0x7d, offset 0x1f40\n\t0x1f40: 0x93b5, 0x1f41: 0x2fd1, 0x1f42: 0x2fd9, 0x1f43: 0x2fe1, 0x1f44: 0x2fe9, 0x1f45: 0x2ff1,\n\t0x1f46: 0x2ff9, 0x1f47: 0x93d5, 0x1f48: 0x93f5, 0x1f49: 0x9415, 0x1f4a: 0x9435, 0x1f4b: 0x2a29,\n\t0x1f4c: 0x3001, 0x1f4d: 0x3009, 0x1f4e: 0x3011, 0x1f4f: 0x3019, 0x1f50: 0x3021, 0x1f51: 0x3029,\n\t0x1f52: 0x3031, 0x1f53: 0x3039, 0x1f54: 0x3041, 0x1f55: 0x3049, 0x1f56: 0x3051, 0x1f57: 0x9455,\n\t0x1f58: 0x3059, 0x1f59: 0x3061, 0x1f5a: 0x3069, 0x1f5b: 0x3071, 0x1f5c: 0x3079, 0x1f5d: 0x3081,\n\t0x1f5e: 0x3089, 0x1f5f: 0x3091, 0x1f60: 0x3099, 0x1f61: 0x30a1, 0x1f62: 0x30a9, 0x1f63: 0x30b1,\n\t0x1f64: 0x9475, 0x1f65: 0x9495, 0x1f66: 0x94b5, 0x1f67: 0x30b9, 0x1f68: 0x30c1, 0x1f69: 0x30c9,\n\t0x1f6a: 0x30d1, 0x1f6b: 0x94d5, 0x1f6c: 0x30d9, 0x1f6d: 0x94f5, 0x1f6e: 0x30e1, 0x1f6f: 0x30e9,\n\t0x1f70: 0x9515, 0x1f71: 0x9535, 0x1f72: 0x30f1, 0x1f73: 0x30f9, 0x1f74: 0x3101, 0x1f75: 0x3109,\n\t0x1f76: 0x3111, 0x1f77: 0x3119, 0x1f78: 0x3121, 0x1f79: 0x3129, 0x1f7a: 0x3131, 0x1f7b: 0x3139,\n\t0x1f7c: 0x3141, 0x1f7d: 0x3149, 0x1f7e: 0x3151, 0x1f7f: 0x2040,\n\t// Block 0x7e, offset 0x1f80\n\t0x1f80: 0x3159, 0x1f81: 0x3161, 0x1f82: 0x3169, 0x1f83: 0x3171, 0x1f84: 0x3179, 0x1f85: 0x9555,\n\t0x1f86: 0x3181, 0x1f87: 0x3189, 0x1f88: 0x3191, 0x1f89: 0x3199, 0x1f8a: 0x31a1, 0x1f8b: 0x9575,\n\t0x1f8c: 0x9595, 0x1f8d: 0x31a9, 0x1f8e: 0x31b1, 0x1f8f: 0x31b9, 0x1f90: 0x31c1, 0x1f91: 0x31c9,\n\t0x1f92: 0x31d1, 0x1f93: 0x95b5, 0x1f94: 0x31d9, 0x1f95: 0x31e1, 0x1f96: 0x31e9, 0x1f97: 0x31f1,\n\t0x1f98: 0x95d5, 0x1f99: 0x95f5, 0x1f9a: 0x31f9, 0x1f9b: 0x3201, 0x1f9c: 0x3209, 0x1f9d: 0x9615,\n\t0x1f9e: 0x3211, 0x1f9f: 0x3219, 0x1fa0: 0x684d, 0x1fa1: 0x9635, 0x1fa2: 0x3221, 0x1fa3: 0x3229,\n\t0x1fa4: 0x3231, 0x1fa5: 0x9655, 0x1fa6: 0x3239, 0x1fa7: 0x3241, 0x1fa8: 0x3249, 0x1fa9: 0x3251,\n\t0x1faa: 0x3259, 0x1fab: 0x3261, 0x1fac: 0x3269, 0x1fad: 0x9675, 0x1fae: 0x3271, 0x1faf: 0x3279,\n\t0x1fb0: 0x3281, 0x1fb1: 0x9695, 0x1fb2: 0x3289, 0x1fb3: 0x3291, 0x1fb4: 0x3299, 0x1fb5: 0x32a1,\n\t0x1fb6: 0x7b6d, 0x1fb7: 0x96b5, 0x1fb8: 0x32a9, 0x1fb9: 0x32b1, 0x1fba: 0x32b9, 0x1fbb: 0x96d5,\n\t0x1fbc: 0x32c1, 0x1fbd: 0x96f5, 0x1fbe: 0x32c9, 0x1fbf: 0x32c9,\n\t// Block 0x7f, offset 0x1fc0\n\t0x1fc0: 0x32d1, 0x1fc1: 0x9715, 0x1fc2: 0x32d9, 0x1fc3: 0x32e1, 0x1fc4: 0x32e9, 0x1fc5: 0x32f1,\n\t0x1fc6: 0x32f9, 0x1fc7: 0x3301, 0x1fc8: 0x3309, 0x1fc9: 0x9735, 0x1fca: 0x3311, 0x1fcb: 0x3319,\n\t0x1fcc: 0x3321, 0x1fcd: 0x3329, 0x1fce: 0x3331, 0x1fcf: 0x3339, 0x1fd0: 0x9755, 0x1fd1: 0x3341,\n\t0x1fd2: 0x9775, 0x1fd3: 0x9795, 0x1fd4: 0x97b5, 0x1fd5: 0x3349, 0x1fd6: 0x3351, 0x1fd7: 0x3359,\n\t0x1fd8: 0x3361, 0x1fd9: 0x3369, 0x1fda: 0x3371, 0x1fdb: 0x3379, 0x1fdc: 0x3381, 0x1fdd: 0x97d5,\n\t0x1fde: 0x0040, 0x1fdf: 0x0040, 0x1fe0: 0x0040, 0x1fe1: 0x0040, 0x1fe2: 0x0040, 0x1fe3: 0x0040,\n\t0x1fe4: 0x0040, 0x1fe5: 0x0040, 0x1fe6: 0x0040, 0x1fe7: 0x0040, 0x1fe8: 0x0040, 0x1fe9: 0x0040,\n\t0x1fea: 0x0040, 0x1feb: 0x0040, 0x1fec: 0x0040, 0x1fed: 0x0040, 0x1fee: 0x0040, 0x1fef: 0x0040,\n\t0x1ff0: 0x0040, 0x1ff1: 0x0040, 0x1ff2: 0x0040, 0x1ff3: 0x0040, 0x1ff4: 0x0040, 0x1ff5: 0x0040,\n\t0x1ff6: 0x0040, 0x1ff7: 0x0040, 0x1ff8: 0x0040, 0x1ff9: 0x0040, 0x1ffa: 0x0040, 0x1ffb: 0x0040,\n\t0x1ffc: 0x0040, 0x1ffd: 0x0040, 0x1ffe: 0x0040, 0x1fff: 0x0040,\n}\n\n// idnaIndex: 37 blocks, 2368 entries, 4736 bytes\n// Block 0 is the zero block.\nvar idnaIndex = [2368]uint16{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x01, 0xc3: 0x7e, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x04, 0xc7: 0x05,\n\t0xc8: 0x06, 0xc9: 0x7f, 0xca: 0x80, 0xcb: 0x07, 0xcc: 0x81, 0xcd: 0x08, 0xce: 0x09, 0xcf: 0x0a,\n\t0xd0: 0x82, 0xd1: 0x0b, 0xd2: 0x0c, 0xd3: 0x0d, 0xd4: 0x0e, 0xd5: 0x83, 0xd6: 0x84, 0xd7: 0x85,\n\t0xd8: 0x0f, 0xd9: 0x10, 0xda: 0x86, 0xdb: 0x11, 0xdc: 0x12, 0xdd: 0x87, 0xde: 0x88, 0xdf: 0x89,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06, 0xe5: 0x07, 0xe6: 0x07, 0xe7: 0x07,\n\t0xe8: 0x07, 0xe9: 0x08, 0xea: 0x09, 0xeb: 0x07, 0xec: 0x07, 0xed: 0x0a, 0xee: 0x0b, 0xef: 0x0c,\n\t0xf0: 0x1e, 0xf1: 0x1f, 0xf2: 0x1f, 0xf3: 0x21, 0xf4: 0x22,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x8a, 0x121: 0x13, 0x122: 0x8b, 0x123: 0x8c, 0x124: 0x8d, 0x125: 0x14, 0x126: 0x15, 0x127: 0x16,\n\t0x128: 0x17, 0x129: 0x18, 0x12a: 0x19, 0x12b: 0x1a, 0x12c: 0x1b, 0x12d: 0x1c, 0x12e: 0x1d, 0x12f: 0x8e,\n\t0x130: 0x8f, 0x131: 0x1e, 0x132: 0x1f, 0x133: 0x20, 0x134: 0x90, 0x135: 0x21, 0x136: 0x91, 0x137: 0x92,\n\t0x138: 0x93, 0x139: 0x94, 0x13a: 0x22, 0x13b: 0x95, 0x13c: 0x96, 0x13d: 0x23, 0x13e: 0x24, 0x13f: 0x97,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x98, 0x141: 0x99, 0x142: 0x9a, 0x143: 0x9b, 0x144: 0x9c, 0x145: 0x9d, 0x146: 0x9e, 0x147: 0x9f,\n\t0x148: 0xa0, 0x149: 0xa1, 0x14a: 0xa2, 0x14b: 0xa3, 0x14c: 0xa4, 0x14d: 0xa5, 0x14e: 0xa6, 0x14f: 0xa7,\n\t0x150: 0xa8, 0x151: 0xa0, 0x152: 0xa0, 0x153: 0xa0, 0x154: 0xa0, 0x155: 0xa0, 0x156: 0xa0, 0x157: 0xa0,\n\t0x158: 0xa0, 0x159: 0xa9, 0x15a: 0xaa, 0x15b: 0xab, 0x15c: 0xac, 0x15d: 0xad, 0x15e: 0xae, 0x15f: 0xaf,\n\t0x160: 0xb0, 0x161: 0xb1, 0x162: 0xb2, 0x163: 0xb3, 0x164: 0xb4, 0x165: 0xb5, 0x166: 0xb6, 0x167: 0xb7,\n\t0x168: 0xb8, 0x169: 0xb9, 0x16a: 0xba, 0x16b: 0xbb, 0x16c: 0xbc, 0x16d: 0xbd, 0x16e: 0xbe, 0x16f: 0xbf,\n\t0x170: 0xc0, 0x171: 0xc1, 0x172: 0xc2, 0x173: 0xc3, 0x174: 0x25, 0x175: 0x26, 0x176: 0x27, 0x177: 0xc4,\n\t0x178: 0x28, 0x179: 0x28, 0x17a: 0x29, 0x17b: 0x28, 0x17c: 0xc5, 0x17d: 0x2a, 0x17e: 0x2b, 0x17f: 0x2c,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x2d, 0x181: 0x2e, 0x182: 0x2f, 0x183: 0xc6, 0x184: 0x30, 0x185: 0x31, 0x186: 0xc7, 0x187: 0x9c,\n\t0x188: 0xc8, 0x189: 0xc9, 0x18a: 0x9c, 0x18b: 0x9c, 0x18c: 0xca, 0x18d: 0x9c, 0x18e: 0x9c, 0x18f: 0x9c,\n\t0x190: 0xcb, 0x191: 0x32, 0x192: 0x33, 0x193: 0x34, 0x194: 0x9c, 0x195: 0x9c, 0x196: 0x9c, 0x197: 0x9c,\n\t0x198: 0x9c, 0x199: 0x9c, 0x19a: 0x9c, 0x19b: 0x9c, 0x19c: 0x9c, 0x19d: 0x9c, 0x19e: 0x9c, 0x19f: 0x9c,\n\t0x1a0: 0x9c, 0x1a1: 0x9c, 0x1a2: 0x9c, 0x1a3: 0x9c, 0x1a4: 0x9c, 0x1a5: 0x9c, 0x1a6: 0x9c, 0x1a7: 0x9c,\n\t0x1a8: 0xcc, 0x1a9: 0xcd, 0x1aa: 0x9c, 0x1ab: 0xce, 0x1ac: 0x9c, 0x1ad: 0xcf, 0x1ae: 0xd0, 0x1af: 0x9c,\n\t0x1b0: 0xd1, 0x1b1: 0x35, 0x1b2: 0x28, 0x1b3: 0x36, 0x1b4: 0xd2, 0x1b5: 0xd3, 0x1b6: 0xd4, 0x1b7: 0xd5,\n\t0x1b8: 0xd6, 0x1b9: 0xd7, 0x1ba: 0xd8, 0x1bb: 0xd9, 0x1bc: 0xda, 0x1bd: 0xdb, 0x1be: 0xdc, 0x1bf: 0x37,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x38, 0x1c1: 0xdd, 0x1c2: 0xde, 0x1c3: 0xdf, 0x1c4: 0xe0, 0x1c5: 0x39, 0x1c6: 0x3a, 0x1c7: 0xe1,\n\t0x1c8: 0xe2, 0x1c9: 0x3b, 0x1ca: 0x3c, 0x1cb: 0x3d, 0x1cc: 0xe3, 0x1cd: 0xe4, 0x1ce: 0x3e, 0x1cf: 0x3f,\n\t0x1d0: 0xa0, 0x1d1: 0xa0, 0x1d2: 0xa0, 0x1d3: 0xa0, 0x1d4: 0xa0, 0x1d5: 0xa0, 0x1d6: 0xa0, 0x1d7: 0xa0,\n\t0x1d8: 0xa0, 0x1d9: 0xa0, 0x1da: 0xa0, 0x1db: 0xa0, 0x1dc: 0xa0, 0x1dd: 0xa0, 0x1de: 0xa0, 0x1df: 0xa0,\n\t0x1e0: 0xa0, 0x1e1: 0xa0, 0x1e2: 0xa0, 0x1e3: 0xa0, 0x1e4: 0xa0, 0x1e5: 0xa0, 0x1e6: 0xa0, 0x1e7: 0xa0,\n\t0x1e8: 0xa0, 0x1e9: 0xa0, 0x1ea: 0xa0, 0x1eb: 0xa0, 0x1ec: 0xa0, 0x1ed: 0xa0, 0x1ee: 0xa0, 0x1ef: 0xa0,\n\t0x1f0: 0xa0, 0x1f1: 0xa0, 0x1f2: 0xa0, 0x1f3: 0xa0, 0x1f4: 0xa0, 0x1f5: 0xa0, 0x1f6: 0xa0, 0x1f7: 0xa0,\n\t0x1f8: 0xa0, 0x1f9: 0xa0, 0x1fa: 0xa0, 0x1fb: 0xa0, 0x1fc: 0xa0, 0x1fd: 0xa0, 0x1fe: 0xa0, 0x1ff: 0xa0,\n\t// Block 0x8, offset 0x200\n\t0x200: 0xa0, 0x201: 0xa0, 0x202: 0xa0, 0x203: 0xa0, 0x204: 0xa0, 0x205: 0xa0, 0x206: 0xa0, 0x207: 0xa0,\n\t0x208: 0xa0, 0x209: 0xa0, 0x20a: 0xa0, 0x20b: 0xa0, 0x20c: 0xa0, 0x20d: 0xa0, 0x20e: 0xa0, 0x20f: 0xa0,\n\t0x210: 0xa0, 0x211: 0xa0, 0x212: 0xa0, 0x213: 0xa0, 0x214: 0xa0, 0x215: 0xa0, 0x216: 0xa0, 0x217: 0xa0,\n\t0x218: 0xa0, 0x219: 0xa0, 0x21a: 0xa0, 0x21b: 0xa0, 0x21c: 0xa0, 0x21d: 0xa0, 0x21e: 0xa0, 0x21f: 0xa0,\n\t0x220: 0xa0, 0x221: 0xa0, 0x222: 0xa0, 0x223: 0xa0, 0x224: 0xa0, 0x225: 0xa0, 0x226: 0xa0, 0x227: 0xa0,\n\t0x228: 0xa0, 0x229: 0xa0, 0x22a: 0xa0, 0x22b: 0xa0, 0x22c: 0xa0, 0x22d: 0xa0, 0x22e: 0xa0, 0x22f: 0xa0,\n\t0x230: 0xa0, 0x231: 0xa0, 0x232: 0xa0, 0x233: 0xa0, 0x234: 0xa0, 0x235: 0xa0, 0x236: 0xa0, 0x237: 0x9c,\n\t0x238: 0xa0, 0x239: 0xa0, 0x23a: 0xa0, 0x23b: 0xa0, 0x23c: 0xa0, 0x23d: 0xa0, 0x23e: 0xa0, 0x23f: 0xa0,\n\t// Block 0x9, offset 0x240\n\t0x240: 0xa0, 0x241: 0xa0, 0x242: 0xa0, 0x243: 0xa0, 0x244: 0xa0, 0x245: 0xa0, 0x246: 0xa0, 0x247: 0xa0,\n\t0x248: 0xa0, 0x249: 0xa0, 0x24a: 0xa0, 0x24b: 0xa0, 0x24c: 0xa0, 0x24d: 0xa0, 0x24e: 0xa0, 0x24f: 0xa0,\n\t0x250: 0xa0, 0x251: 0xa0, 0x252: 0xa0, 0x253: 0xa0, 0x254: 0xa0, 0x255: 0xa0, 0x256: 0xa0, 0x257: 0xa0,\n\t0x258: 0xa0, 0x259: 0xa0, 0x25a: 0xa0, 0x25b: 0xa0, 0x25c: 0xa0, 0x25d: 0xa0, 0x25e: 0xa0, 0x25f: 0xa0,\n\t0x260: 0xa0, 0x261: 0xa0, 0x262: 0xa0, 0x263: 0xa0, 0x264: 0xa0, 0x265: 0xa0, 0x266: 0xa0, 0x267: 0xa0,\n\t0x268: 0xa0, 0x269: 0xa0, 0x26a: 0xa0, 0x26b: 0xa0, 0x26c: 0xa0, 0x26d: 0xa0, 0x26e: 0xa0, 0x26f: 0xa0,\n\t0x270: 0xa0, 0x271: 0xa0, 0x272: 0xa0, 0x273: 0xa0, 0x274: 0xa0, 0x275: 0xa0, 0x276: 0xa0, 0x277: 0xa0,\n\t0x278: 0xa0, 0x279: 0xa0, 0x27a: 0xa0, 0x27b: 0xa0, 0x27c: 0xa0, 0x27d: 0xa0, 0x27e: 0xa0, 0x27f: 0xa0,\n\t// Block 0xa, offset 0x280\n\t0x280: 0xa0, 0x281: 0xa0, 0x282: 0xa0, 0x283: 0xa0, 0x284: 0xa0, 0x285: 0xa0, 0x286: 0xa0, 0x287: 0xa0,\n\t0x288: 0xa0, 0x289: 0xa0, 0x28a: 0xa0, 0x28b: 0xa0, 0x28c: 0xa0, 0x28d: 0xa0, 0x28e: 0xa0, 0x28f: 0xa0,\n\t0x290: 0xa0, 0x291: 0xa0, 0x292: 0xa0, 0x293: 0xa0, 0x294: 0xa0, 0x295: 0xa0, 0x296: 0xa0, 0x297: 0xa0,\n\t0x298: 0xa0, 0x299: 0xa0, 0x29a: 0xa0, 0x29b: 0xa0, 0x29c: 0xa0, 0x29d: 0xa0, 0x29e: 0xa0, 0x29f: 0xa0,\n\t0x2a0: 0xa0, 0x2a1: 0xa0, 0x2a2: 0xa0, 0x2a3: 0xa0, 0x2a4: 0xa0, 0x2a5: 0xa0, 0x2a6: 0xa0, 0x2a7: 0xa0,\n\t0x2a8: 0xa0, 0x2a9: 0xa0, 0x2aa: 0xa0, 0x2ab: 0xa0, 0x2ac: 0xa0, 0x2ad: 0xa0, 0x2ae: 0xa0, 0x2af: 0xa0,\n\t0x2b0: 0xa0, 0x2b1: 0xa0, 0x2b2: 0xa0, 0x2b3: 0xa0, 0x2b4: 0xa0, 0x2b5: 0xa0, 0x2b6: 0xa0, 0x2b7: 0xa0,\n\t0x2b8: 0xa0, 0x2b9: 0xa0, 0x2ba: 0xa0, 0x2bb: 0xa0, 0x2bc: 0xa0, 0x2bd: 0xa0, 0x2be: 0xa0, 0x2bf: 0xe5,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0xa0, 0x2c1: 0xa0, 0x2c2: 0xa0, 0x2c3: 0xa0, 0x2c4: 0xa0, 0x2c5: 0xa0, 0x2c6: 0xa0, 0x2c7: 0xa0,\n\t0x2c8: 0xa0, 0x2c9: 0xa0, 0x2ca: 0xa0, 0x2cb: 0xa0, 0x2cc: 0xa0, 0x2cd: 0xa0, 0x2ce: 0xa0, 0x2cf: 0xa0,\n\t0x2d0: 0xa0, 0x2d1: 0xa0, 0x2d2: 0xe6, 0x2d3: 0xe7, 0x2d4: 0xa0, 0x2d5: 0xa0, 0x2d6: 0xa0, 0x2d7: 0xa0,\n\t0x2d8: 0xe8, 0x2d9: 0x40, 0x2da: 0x41, 0x2db: 0xe9, 0x2dc: 0x42, 0x2dd: 0x43, 0x2de: 0x44, 0x2df: 0xea,\n\t0x2e0: 0xeb, 0x2e1: 0xec, 0x2e2: 0xed, 0x2e3: 0xee, 0x2e4: 0xef, 0x2e5: 0xf0, 0x2e6: 0xf1, 0x2e7: 0xf2,\n\t0x2e8: 0xf3, 0x2e9: 0xf4, 0x2ea: 0xf5, 0x2eb: 0xf6, 0x2ec: 0xf7, 0x2ed: 0xf8, 0x2ee: 0xf9, 0x2ef: 0xfa,\n\t0x2f0: 0xa0, 0x2f1: 0xa0, 0x2f2: 0xa0, 0x2f3: 0xa0, 0x2f4: 0xa0, 0x2f5: 0xa0, 0x2f6: 0xa0, 0x2f7: 0xa0,\n\t0x2f8: 0xa0, 0x2f9: 0xa0, 0x2fa: 0xa0, 0x2fb: 0xa0, 0x2fc: 0xa0, 0x2fd: 0xa0, 0x2fe: 0xa0, 0x2ff: 0xa0,\n\t// Block 0xc, offset 0x300\n\t0x300: 0xa0, 0x301: 0xa0, 0x302: 0xa0, 0x303: 0xa0, 0x304: 0xa0, 0x305: 0xa0, 0x306: 0xa0, 0x307: 0xa0,\n\t0x308: 0xa0, 0x309: 0xa0, 0x30a: 0xa0, 0x30b: 0xa0, 0x30c: 0xa0, 0x30d: 0xa0, 0x30e: 0xa0, 0x30f: 0xa0,\n\t0x310: 0xa0, 0x311: 0xa0, 0x312: 0xa0, 0x313: 0xa0, 0x314: 0xa0, 0x315: 0xa0, 0x316: 0xa0, 0x317: 0xa0,\n\t0x318: 0xa0, 0x319: 0xa0, 0x31a: 0xa0, 0x31b: 0xa0, 0x31c: 0xa0, 0x31d: 0xa0, 0x31e: 0xfb, 0x31f: 0xfc,\n\t// Block 0xd, offset 0x340\n\t0x340: 0xfd, 0x341: 0xfd, 0x342: 0xfd, 0x343: 0xfd, 0x344: 0xfd, 0x345: 0xfd, 0x346: 0xfd, 0x347: 0xfd,\n\t0x348: 0xfd, 0x349: 0xfd, 0x34a: 0xfd, 0x34b: 0xfd, 0x34c: 0xfd, 0x34d: 0xfd, 0x34e: 0xfd, 0x34f: 0xfd,\n\t0x350: 0xfd, 0x351: 0xfd, 0x352: 0xfd, 0x353: 0xfd, 0x354: 0xfd, 0x355: 0xfd, 0x356: 0xfd, 0x357: 0xfd,\n\t0x358: 0xfd, 0x359: 0xfd, 0x35a: 0xfd, 0x35b: 0xfd, 0x35c: 0xfd, 0x35d: 0xfd, 0x35e: 0xfd, 0x35f: 0xfd,\n\t0x360: 0xfd, 0x361: 0xfd, 0x362: 0xfd, 0x363: 0xfd, 0x364: 0xfd, 0x365: 0xfd, 0x366: 0xfd, 0x367: 0xfd,\n\t0x368: 0xfd, 0x369: 0xfd, 0x36a: 0xfd, 0x36b: 0xfd, 0x36c: 0xfd, 0x36d: 0xfd, 0x36e: 0xfd, 0x36f: 0xfd,\n\t0x370: 0xfd, 0x371: 0xfd, 0x372: 0xfd, 0x373: 0xfd, 0x374: 0xfd, 0x375: 0xfd, 0x376: 0xfd, 0x377: 0xfd,\n\t0x378: 0xfd, 0x379: 0xfd, 0x37a: 0xfd, 0x37b: 0xfd, 0x37c: 0xfd, 0x37d: 0xfd, 0x37e: 0xfd, 0x37f: 0xfd,\n\t// Block 0xe, offset 0x380\n\t0x380: 0xfd, 0x381: 0xfd, 0x382: 0xfd, 0x383: 0xfd, 0x384: 0xfd, 0x385: 0xfd, 0x386: 0xfd, 0x387: 0xfd,\n\t0x388: 0xfd, 0x389: 0xfd, 0x38a: 0xfd, 0x38b: 0xfd, 0x38c: 0xfd, 0x38d: 0xfd, 0x38e: 0xfd, 0x38f: 0xfd,\n\t0x390: 0xfd, 0x391: 0xfd, 0x392: 0xfd, 0x393: 0xfd, 0x394: 0xfd, 0x395: 0xfd, 0x396: 0xfd, 0x397: 0xfd,\n\t0x398: 0xfd, 0x399: 0xfd, 0x39a: 0xfd, 0x39b: 0xfd, 0x39c: 0xfd, 0x39d: 0xfd, 0x39e: 0xfd, 0x39f: 0xfd,\n\t0x3a0: 0xfd, 0x3a1: 0xfd, 0x3a2: 0xfd, 0x3a3: 0xfd, 0x3a4: 0xfe, 0x3a5: 0xff, 0x3a6: 0x100, 0x3a7: 0x101,\n\t0x3a8: 0x45, 0x3a9: 0x102, 0x3aa: 0x103, 0x3ab: 0x46, 0x3ac: 0x47, 0x3ad: 0x48, 0x3ae: 0x49, 0x3af: 0x4a,\n\t0x3b0: 0x104, 0x3b1: 0x4b, 0x3b2: 0x4c, 0x3b3: 0x4d, 0x3b4: 0x4e, 0x3b5: 0x4f, 0x3b6: 0x105, 0x3b7: 0x50,\n\t0x3b8: 0x51, 0x3b9: 0x52, 0x3ba: 0x53, 0x3bb: 0x54, 0x3bc: 0x55, 0x3bd: 0x56, 0x3be: 0x57, 0x3bf: 0x58,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x106, 0x3c1: 0x107, 0x3c2: 0xa0, 0x3c3: 0x108, 0x3c4: 0x109, 0x3c5: 0x9c, 0x3c6: 0x10a, 0x3c7: 0x10b,\n\t0x3c8: 0xfd, 0x3c9: 0xfd, 0x3ca: 0x10c, 0x3cb: 0x10d, 0x3cc: 0x10e, 0x3cd: 0x10f, 0x3ce: 0x110, 0x3cf: 0x111,\n\t0x3d0: 0x112, 0x3d1: 0xa0, 0x3d2: 0x113, 0x3d3: 0x114, 0x3d4: 0x115, 0x3d5: 0x116, 0x3d6: 0xfd, 0x3d7: 0xfd,\n\t0x3d8: 0xa0, 0x3d9: 0xa0, 0x3da: 0xa0, 0x3db: 0xa0, 0x3dc: 0x117, 0x3dd: 0x118, 0x3de: 0xfd, 0x3df: 0xfd,\n\t0x3e0: 0x119, 0x3e1: 0x11a, 0x3e2: 0x11b, 0x3e3: 0x11c, 0x3e4: 0x11d, 0x3e5: 0xfd, 0x3e6: 0x11e, 0x3e7: 0x11f,\n\t0x3e8: 0x120, 0x3e9: 0x121, 0x3ea: 0x122, 0x3eb: 0x59, 0x3ec: 0x123, 0x3ed: 0x124, 0x3ee: 0x5a, 0x3ef: 0xfd,\n\t0x3f0: 0x125, 0x3f1: 0x126, 0x3f2: 0x127, 0x3f3: 0x128, 0x3f4: 0x129, 0x3f5: 0xfd, 0x3f6: 0xfd, 0x3f7: 0xfd,\n\t0x3f8: 0xfd, 0x3f9: 0x12a, 0x3fa: 0x12b, 0x3fb: 0xfd, 0x3fc: 0x12c, 0x3fd: 0x12d, 0x3fe: 0x12e, 0x3ff: 0x12f,\n\t// Block 0x10, offset 0x400\n\t0x400: 0x130, 0x401: 0x131, 0x402: 0x132, 0x403: 0x133, 0x404: 0x134, 0x405: 0x135, 0x406: 0x136, 0x407: 0x137,\n\t0x408: 0x138, 0x409: 0xfd, 0x40a: 0x139, 0x40b: 0x13a, 0x40c: 0x5b, 0x40d: 0x5c, 0x40e: 0xfd, 0x40f: 0xfd,\n\t0x410: 0x13b, 0x411: 0x13c, 0x412: 0x13d, 0x413: 0x13e, 0x414: 0xfd, 0x415: 0xfd, 0x416: 0x13f, 0x417: 0x140,\n\t0x418: 0x141, 0x419: 0x142, 0x41a: 0x143, 0x41b: 0x144, 0x41c: 0x145, 0x41d: 0xfd, 0x41e: 0xfd, 0x41f: 0xfd,\n\t0x420: 0x146, 0x421: 0xfd, 0x422: 0x147, 0x423: 0x148, 0x424: 0x5d, 0x425: 0x149, 0x426: 0x14a, 0x427: 0x14b,\n\t0x428: 0x14c, 0x429: 0x14d, 0x42a: 0x14e, 0x42b: 0x14f, 0x42c: 0xfd, 0x42d: 0xfd, 0x42e: 0xfd, 0x42f: 0xfd,\n\t0x430: 0x150, 0x431: 0x151, 0x432: 0x152, 0x433: 0xfd, 0x434: 0x153, 0x435: 0x154, 0x436: 0x155, 0x437: 0xfd,\n\t0x438: 0xfd, 0x439: 0xfd, 0x43a: 0xfd, 0x43b: 0x156, 0x43c: 0xfd, 0x43d: 0xfd, 0x43e: 0x157, 0x43f: 0x158,\n\t// Block 0x11, offset 0x440\n\t0x440: 0xa0, 0x441: 0xa0, 0x442: 0xa0, 0x443: 0xa0, 0x444: 0xa0, 0x445: 0xa0, 0x446: 0xa0, 0x447: 0xa0,\n\t0x448: 0xa0, 0x449: 0xa0, 0x44a: 0xa0, 0x44b: 0xa0, 0x44c: 0xa0, 0x44d: 0xa0, 0x44e: 0x159, 0x44f: 0xfd,\n\t0x450: 0x9c, 0x451: 0x15a, 0x452: 0xa0, 0x453: 0xa0, 0x454: 0xa0, 0x455: 0x15b, 0x456: 0xfd, 0x457: 0xfd,\n\t0x458: 0xfd, 0x459: 0xfd, 0x45a: 0xfd, 0x45b: 0xfd, 0x45c: 0xfd, 0x45d: 0xfd, 0x45e: 0xfd, 0x45f: 0xfd,\n\t0x460: 0xfd, 0x461: 0xfd, 0x462: 0xfd, 0x463: 0xfd, 0x464: 0xfd, 0x465: 0xfd, 0x466: 0xfd, 0x467: 0xfd,\n\t0x468: 0xfd, 0x469: 0xfd, 0x46a: 0xfd, 0x46b: 0xfd, 0x46c: 0xfd, 0x46d: 0xfd, 0x46e: 0xfd, 0x46f: 0xfd,\n\t0x470: 0xfd, 0x471: 0xfd, 0x472: 0xfd, 0x473: 0xfd, 0x474: 0xfd, 0x475: 0xfd, 0x476: 0xfd, 0x477: 0xfd,\n\t0x478: 0xfd, 0x479: 0xfd, 0x47a: 0xfd, 0x47b: 0xfd, 0x47c: 0xfd, 0x47d: 0xfd, 0x47e: 0xfd, 0x47f: 0xfd,\n\t// Block 0x12, offset 0x480\n\t0x480: 0xa0, 0x481: 0xa0, 0x482: 0xa0, 0x483: 0xa0, 0x484: 0xa0, 0x485: 0xa0, 0x486: 0xa0, 0x487: 0xa0,\n\t0x488: 0xa0, 0x489: 0xa0, 0x48a: 0xa0, 0x48b: 0xa0, 0x48c: 0xa0, 0x48d: 0xa0, 0x48e: 0xa0, 0x48f: 0xa0,\n\t0x490: 0x15c, 0x491: 0xfd, 0x492: 0xfd, 0x493: 0xfd, 0x494: 0xfd, 0x495: 0xfd, 0x496: 0xfd, 0x497: 0xfd,\n\t0x498: 0xfd, 0x499: 0xfd, 0x49a: 0xfd, 0x49b: 0xfd, 0x49c: 0xfd, 0x49d: 0xfd, 0x49e: 0xfd, 0x49f: 0xfd,\n\t0x4a0: 0xfd, 0x4a1: 0xfd, 0x4a2: 0xfd, 0x4a3: 0xfd, 0x4a4: 0xfd, 0x4a5: 0xfd, 0x4a6: 0xfd, 0x4a7: 0xfd,\n\t0x4a8: 0xfd, 0x4a9: 0xfd, 0x4aa: 0xfd, 0x4ab: 0xfd, 0x4ac: 0xfd, 0x4ad: 0xfd, 0x4ae: 0xfd, 0x4af: 0xfd,\n\t0x4b0: 0xfd, 0x4b1: 0xfd, 0x4b2: 0xfd, 0x4b3: 0xfd, 0x4b4: 0xfd, 0x4b5: 0xfd, 0x4b6: 0xfd, 0x4b7: 0xfd,\n\t0x4b8: 0xfd, 0x4b9: 0xfd, 0x4ba: 0xfd, 0x4bb: 0xfd, 0x4bc: 0xfd, 0x4bd: 0xfd, 0x4be: 0xfd, 0x4bf: 0xfd,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0xfd, 0x4c1: 0xfd, 0x4c2: 0xfd, 0x4c3: 0xfd, 0x4c4: 0xfd, 0x4c5: 0xfd, 0x4c6: 0xfd, 0x4c7: 0xfd,\n\t0x4c8: 0xfd, 0x4c9: 0xfd, 0x4ca: 0xfd, 0x4cb: 0xfd, 0x4cc: 0xfd, 0x4cd: 0xfd, 0x4ce: 0xfd, 0x4cf: 0xfd,\n\t0x4d0: 0xa0, 0x4d1: 0xa0, 0x4d2: 0xa0, 0x4d3: 0xa0, 0x4d4: 0xa0, 0x4d5: 0xa0, 0x4d6: 0xa0, 0x4d7: 0xa0,\n\t0x4d8: 0xa0, 0x4d9: 0x15d, 0x4da: 0xfd, 0x4db: 0xfd, 0x4dc: 0xfd, 0x4dd: 0xfd, 0x4de: 0xfd, 0x4df: 0xfd,\n\t0x4e0: 0xfd, 0x4e1: 0xfd, 0x4e2: 0xfd, 0x4e3: 0xfd, 0x4e4: 0xfd, 0x4e5: 0xfd, 0x4e6: 0xfd, 0x4e7: 0xfd,\n\t0x4e8: 0xfd, 0x4e9: 0xfd, 0x4ea: 0xfd, 0x4eb: 0xfd, 0x4ec: 0xfd, 0x4ed: 0xfd, 0x4ee: 0xfd, 0x4ef: 0xfd,\n\t0x4f0: 0xfd, 0x4f1: 0xfd, 0x4f2: 0xfd, 0x4f3: 0xfd, 0x4f4: 0xfd, 0x4f5: 0xfd, 0x4f6: 0xfd, 0x4f7: 0xfd,\n\t0x4f8: 0xfd, 0x4f9: 0xfd, 0x4fa: 0xfd, 0x4fb: 0xfd, 0x4fc: 0xfd, 0x4fd: 0xfd, 0x4fe: 0xfd, 0x4ff: 0xfd,\n\t// Block 0x14, offset 0x500\n\t0x500: 0xfd, 0x501: 0xfd, 0x502: 0xfd, 0x503: 0xfd, 0x504: 0xfd, 0x505: 0xfd, 0x506: 0xfd, 0x507: 0xfd,\n\t0x508: 0xfd, 0x509: 0xfd, 0x50a: 0xfd, 0x50b: 0xfd, 0x50c: 0xfd, 0x50d: 0xfd, 0x50e: 0xfd, 0x50f: 0xfd,\n\t0x510: 0xfd, 0x511: 0xfd, 0x512: 0xfd, 0x513: 0xfd, 0x514: 0xfd, 0x515: 0xfd, 0x516: 0xfd, 0x517: 0xfd,\n\t0x518: 0xfd, 0x519: 0xfd, 0x51a: 0xfd, 0x51b: 0xfd, 0x51c: 0xfd, 0x51d: 0xfd, 0x51e: 0xfd, 0x51f: 0xfd,\n\t0x520: 0xa0, 0x521: 0xa0, 0x522: 0xa0, 0x523: 0xa0, 0x524: 0xa0, 0x525: 0xa0, 0x526: 0xa0, 0x527: 0xa0,\n\t0x528: 0x14f, 0x529: 0x15e, 0x52a: 0xfd, 0x52b: 0x15f, 0x52c: 0x160, 0x52d: 0x161, 0x52e: 0x162, 0x52f: 0xfd,\n\t0x530: 0xfd, 0x531: 0xfd, 0x532: 0xfd, 0x533: 0xfd, 0x534: 0xfd, 0x535: 0xfd, 0x536: 0xfd, 0x537: 0xfd,\n\t0x538: 0xfd, 0x539: 0x163, 0x53a: 0x164, 0x53b: 0xfd, 0x53c: 0xa0, 0x53d: 0x165, 0x53e: 0x166, 0x53f: 0x167,\n\t// Block 0x15, offset 0x540\n\t0x540: 0xa0, 0x541: 0xa0, 0x542: 0xa0, 0x543: 0xa0, 0x544: 0xa0, 0x545: 0xa0, 0x546: 0xa0, 0x547: 0xa0,\n\t0x548: 0xa0, 0x549: 0xa0, 0x54a: 0xa0, 0x54b: 0xa0, 0x54c: 0xa0, 0x54d: 0xa0, 0x54e: 0xa0, 0x54f: 0xa0,\n\t0x550: 0xa0, 0x551: 0xa0, 0x552: 0xa0, 0x553: 0xa0, 0x554: 0xa0, 0x555: 0xa0, 0x556: 0xa0, 0x557: 0xa0,\n\t0x558: 0xa0, 0x559: 0xa0, 0x55a: 0xa0, 0x55b: 0xa0, 0x55c: 0xa0, 0x55d: 0xa0, 0x55e: 0xa0, 0x55f: 0x168,\n\t0x560: 0xa0, 0x561: 0xa0, 0x562: 0xa0, 0x563: 0xa0, 0x564: 0xa0, 0x565: 0xa0, 0x566: 0xa0, 0x567: 0xa0,\n\t0x568: 0xa0, 0x569: 0xa0, 0x56a: 0xa0, 0x56b: 0xa0, 0x56c: 0xa0, 0x56d: 0xa0, 0x56e: 0xa0, 0x56f: 0xa0,\n\t0x570: 0xa0, 0x571: 0xa0, 0x572: 0xa0, 0x573: 0x169, 0x574: 0x16a, 0x575: 0xfd, 0x576: 0xfd, 0x577: 0xfd,\n\t0x578: 0xfd, 0x579: 0xfd, 0x57a: 0xfd, 0x57b: 0xfd, 0x57c: 0xfd, 0x57d: 0xfd, 0x57e: 0xfd, 0x57f: 0xfd,\n\t// Block 0x16, offset 0x580\n\t0x580: 0xa0, 0x581: 0xa0, 0x582: 0xa0, 0x583: 0xa0, 0x584: 0x16b, 0x585: 0x16c, 0x586: 0xa0, 0x587: 0xa0,\n\t0x588: 0xa0, 0x589: 0xa0, 0x58a: 0xa0, 0x58b: 0x16d, 0x58c: 0xfd, 0x58d: 0xfd, 0x58e: 0xfd, 0x58f: 0xfd,\n\t0x590: 0xfd, 0x591: 0xfd, 0x592: 0xfd, 0x593: 0xfd, 0x594: 0xfd, 0x595: 0xfd, 0x596: 0xfd, 0x597: 0xfd,\n\t0x598: 0xfd, 0x599: 0xfd, 0x59a: 0xfd, 0x59b: 0xfd, 0x59c: 0xfd, 0x59d: 0xfd, 0x59e: 0xfd, 0x59f: 0xfd,\n\t0x5a0: 0xfd, 0x5a1: 0xfd, 0x5a2: 0xfd, 0x5a3: 0xfd, 0x5a4: 0xfd, 0x5a5: 0xfd, 0x5a6: 0xfd, 0x5a7: 0xfd,\n\t0x5a8: 0xfd, 0x5a9: 0xfd, 0x5aa: 0xfd, 0x5ab: 0xfd, 0x5ac: 0xfd, 0x5ad: 0xfd, 0x5ae: 0xfd, 0x5af: 0xfd,\n\t0x5b0: 0xa0, 0x5b1: 0x16e, 0x5b2: 0x16f, 0x5b3: 0xfd, 0x5b4: 0xfd, 0x5b5: 0xfd, 0x5b6: 0xfd, 0x5b7: 0xfd,\n\t0x5b8: 0xfd, 0x5b9: 0xfd, 0x5ba: 0xfd, 0x5bb: 0xfd, 0x5bc: 0xfd, 0x5bd: 0xfd, 0x5be: 0xfd, 0x5bf: 0xfd,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x9c, 0x5c1: 0x9c, 0x5c2: 0x9c, 0x5c3: 0x170, 0x5c4: 0x171, 0x5c5: 0x172, 0x5c6: 0x173, 0x5c7: 0x174,\n\t0x5c8: 0x9c, 0x5c9: 0x175, 0x5ca: 0xfd, 0x5cb: 0x176, 0x5cc: 0x9c, 0x5cd: 0x177, 0x5ce: 0xfd, 0x5cf: 0xfd,\n\t0x5d0: 0x5e, 0x5d1: 0x5f, 0x5d2: 0x60, 0x5d3: 0x61, 0x5d4: 0x62, 0x5d5: 0x63, 0x5d6: 0x64, 0x5d7: 0x65,\n\t0x5d8: 0x66, 0x5d9: 0x67, 0x5da: 0x68, 0x5db: 0x69, 0x5dc: 0x6a, 0x5dd: 0x6b, 0x5de: 0x6c, 0x5df: 0x6d,\n\t0x5e0: 0x9c, 0x5e1: 0x9c, 0x5e2: 0x9c, 0x5e3: 0x9c, 0x5e4: 0x9c, 0x5e5: 0x9c, 0x5e6: 0x9c, 0x5e7: 0x9c,\n\t0x5e8: 0x178, 0x5e9: 0x179, 0x5ea: 0x17a, 0x5eb: 0xfd, 0x5ec: 0xfd, 0x5ed: 0xfd, 0x5ee: 0xfd, 0x5ef: 0xfd,\n\t0x5f0: 0xfd, 0x5f1: 0xfd, 0x5f2: 0xfd, 0x5f3: 0xfd, 0x5f4: 0xfd, 0x5f5: 0xfd, 0x5f6: 0xfd, 0x5f7: 0xfd,\n\t0x5f8: 0xfd, 0x5f9: 0xfd, 0x5fa: 0xfd, 0x5fb: 0xfd, 0x5fc: 0xfd, 0x5fd: 0xfd, 0x5fe: 0xfd, 0x5ff: 0xfd,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x17b, 0x601: 0xfd, 0x602: 0xfd, 0x603: 0xfd, 0x604: 0x17c, 0x605: 0x17d, 0x606: 0xfd, 0x607: 0xfd,\n\t0x608: 0xfd, 0x609: 0xfd, 0x60a: 0xfd, 0x60b: 0x17e, 0x60c: 0xfd, 0x60d: 0xfd, 0x60e: 0xfd, 0x60f: 0xfd,\n\t0x610: 0xfd, 0x611: 0xfd, 0x612: 0xfd, 0x613: 0xfd, 0x614: 0xfd, 0x615: 0xfd, 0x616: 0xfd, 0x617: 0xfd,\n\t0x618: 0xfd, 0x619: 0xfd, 0x61a: 0xfd, 0x61b: 0xfd, 0x61c: 0xfd, 0x61d: 0xfd, 0x61e: 0xfd, 0x61f: 0xfd,\n\t0x620: 0x125, 0x621: 0x125, 0x622: 0x125, 0x623: 0x17f, 0x624: 0x6e, 0x625: 0x180, 0x626: 0xfd, 0x627: 0xfd,\n\t0x628: 0xfd, 0x629: 0xfd, 0x62a: 0xfd, 0x62b: 0xfd, 0x62c: 0xfd, 0x62d: 0xfd, 0x62e: 0xfd, 0x62f: 0xfd,\n\t0x630: 0xfd, 0x631: 0x181, 0x632: 0x182, 0x633: 0xfd, 0x634: 0x183, 0x635: 0xfd, 0x636: 0xfd, 0x637: 0xfd,\n\t0x638: 0x6f, 0x639: 0x70, 0x63a: 0x71, 0x63b: 0x184, 0x63c: 0xfd, 0x63d: 0xfd, 0x63e: 0xfd, 0x63f: 0xfd,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x185, 0x641: 0x9c, 0x642: 0x186, 0x643: 0x187, 0x644: 0x72, 0x645: 0x73, 0x646: 0x188, 0x647: 0x189,\n\t0x648: 0x74, 0x649: 0x18a, 0x64a: 0xfd, 0x64b: 0xfd, 0x64c: 0x9c, 0x64d: 0x9c, 0x64e: 0x9c, 0x64f: 0x9c,\n\t0x650: 0x9c, 0x651: 0x9c, 0x652: 0x9c, 0x653: 0x9c, 0x654: 0x9c, 0x655: 0x9c, 0x656: 0x9c, 0x657: 0x9c,\n\t0x658: 0x9c, 0x659: 0x9c, 0x65a: 0x9c, 0x65b: 0x18b, 0x65c: 0x9c, 0x65d: 0x18c, 0x65e: 0x9c, 0x65f: 0x18d,\n\t0x660: 0x18e, 0x661: 0x18f, 0x662: 0x190, 0x663: 0xfd, 0x664: 0x9c, 0x665: 0x191, 0x666: 0x9c, 0x667: 0x192,\n\t0x668: 0x9c, 0x669: 0x193, 0x66a: 0x194, 0x66b: 0x195, 0x66c: 0x9c, 0x66d: 0x9c, 0x66e: 0x196, 0x66f: 0x197,\n\t0x670: 0xfd, 0x671: 0xfd, 0x672: 0xfd, 0x673: 0xfd, 0x674: 0xfd, 0x675: 0xfd, 0x676: 0xfd, 0x677: 0xfd,\n\t0x678: 0xfd, 0x679: 0xfd, 0x67a: 0xfd, 0x67b: 0xfd, 0x67c: 0xfd, 0x67d: 0xfd, 0x67e: 0xfd, 0x67f: 0xfd,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0xa0, 0x681: 0xa0, 0x682: 0xa0, 0x683: 0xa0, 0x684: 0xa0, 0x685: 0xa0, 0x686: 0xa0, 0x687: 0xa0,\n\t0x688: 0xa0, 0x689: 0xa0, 0x68a: 0xa0, 0x68b: 0xa0, 0x68c: 0xa0, 0x68d: 0xa0, 0x68e: 0xa0, 0x68f: 0xa0,\n\t0x690: 0xa0, 0x691: 0xa0, 0x692: 0xa0, 0x693: 0xa0, 0x694: 0xa0, 0x695: 0xa0, 0x696: 0xa0, 0x697: 0xa0,\n\t0x698: 0xa0, 0x699: 0xa0, 0x69a: 0xa0, 0x69b: 0x198, 0x69c: 0xa0, 0x69d: 0xa0, 0x69e: 0xa0, 0x69f: 0xa0,\n\t0x6a0: 0xa0, 0x6a1: 0xa0, 0x6a2: 0xa0, 0x6a3: 0xa0, 0x6a4: 0xa0, 0x6a5: 0xa0, 0x6a6: 0xa0, 0x6a7: 0xa0,\n\t0x6a8: 0xa0, 0x6a9: 0xa0, 0x6aa: 0xa0, 0x6ab: 0xa0, 0x6ac: 0xa0, 0x6ad: 0xa0, 0x6ae: 0xa0, 0x6af: 0xa0,\n\t0x6b0: 0xa0, 0x6b1: 0xa0, 0x6b2: 0xa0, 0x6b3: 0xa0, 0x6b4: 0xa0, 0x6b5: 0xa0, 0x6b6: 0xa0, 0x6b7: 0xa0,\n\t0x6b8: 0xa0, 0x6b9: 0xa0, 0x6ba: 0xa0, 0x6bb: 0xa0, 0x6bc: 0xa0, 0x6bd: 0xa0, 0x6be: 0xa0, 0x6bf: 0xa0,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0xa0, 0x6c1: 0xa0, 0x6c2: 0xa0, 0x6c3: 0xa0, 0x6c4: 0xa0, 0x6c5: 0xa0, 0x6c6: 0xa0, 0x6c7: 0xa0,\n\t0x6c8: 0xa0, 0x6c9: 0xa0, 0x6ca: 0xa0, 0x6cb: 0xa0, 0x6cc: 0xa0, 0x6cd: 0xa0, 0x6ce: 0xa0, 0x6cf: 0xa0,\n\t0x6d0: 0xa0, 0x6d1: 0xa0, 0x6d2: 0xa0, 0x6d3: 0xa0, 0x6d4: 0xa0, 0x6d5: 0xa0, 0x6d6: 0xa0, 0x6d7: 0xa0,\n\t0x6d8: 0xa0, 0x6d9: 0xa0, 0x6da: 0xa0, 0x6db: 0xa0, 0x6dc: 0x199, 0x6dd: 0xa0, 0x6de: 0xa0, 0x6df: 0xa0,\n\t0x6e0: 0x19a, 0x6e1: 0xa0, 0x6e2: 0xa0, 0x6e3: 0xa0, 0x6e4: 0xa0, 0x6e5: 0xa0, 0x6e6: 0xa0, 0x6e7: 0xa0,\n\t0x6e8: 0xa0, 0x6e9: 0xa0, 0x6ea: 0xa0, 0x6eb: 0xa0, 0x6ec: 0xa0, 0x6ed: 0xa0, 0x6ee: 0xa0, 0x6ef: 0xa0,\n\t0x6f0: 0xa0, 0x6f1: 0xa0, 0x6f2: 0xa0, 0x6f3: 0xa0, 0x6f4: 0xa0, 0x6f5: 0xa0, 0x6f6: 0xa0, 0x6f7: 0xa0,\n\t0x6f8: 0xa0, 0x6f9: 0xa0, 0x6fa: 0xa0, 0x6fb: 0xa0, 0x6fc: 0xa0, 0x6fd: 0xa0, 0x6fe: 0xa0, 0x6ff: 0xa0,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0xa0, 0x701: 0xa0, 0x702: 0xa0, 0x703: 0xa0, 0x704: 0xa0, 0x705: 0xa0, 0x706: 0xa0, 0x707: 0xa0,\n\t0x708: 0xa0, 0x709: 0xa0, 0x70a: 0xa0, 0x70b: 0xa0, 0x70c: 0xa0, 0x70d: 0xa0, 0x70e: 0xa0, 0x70f: 0xa0,\n\t0x710: 0xa0, 0x711: 0xa0, 0x712: 0xa0, 0x713: 0xa0, 0x714: 0xa0, 0x715: 0xa0, 0x716: 0xa0, 0x717: 0xa0,\n\t0x718: 0xa0, 0x719: 0xa0, 0x71a: 0xa0, 0x71b: 0xa0, 0x71c: 0xa0, 0x71d: 0xa0, 0x71e: 0xa0, 0x71f: 0xa0,\n\t0x720: 0xa0, 0x721: 0xa0, 0x722: 0xa0, 0x723: 0xa0, 0x724: 0xa0, 0x725: 0xa0, 0x726: 0xa0, 0x727: 0xa0,\n\t0x728: 0xa0, 0x729: 0xa0, 0x72a: 0xa0, 0x72b: 0xa0, 0x72c: 0xa0, 0x72d: 0xa0, 0x72e: 0xa0, 0x72f: 0xa0,\n\t0x730: 0xa0, 0x731: 0xa0, 0x732: 0xa0, 0x733: 0xa0, 0x734: 0xa0, 0x735: 0xa0, 0x736: 0xa0, 0x737: 0xa0,\n\t0x738: 0xa0, 0x739: 0xa0, 0x73a: 0x19b, 0x73b: 0xa0, 0x73c: 0xa0, 0x73d: 0xa0, 0x73e: 0xa0, 0x73f: 0xa0,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0xa0, 0x741: 0xa0, 0x742: 0xa0, 0x743: 0xa0, 0x744: 0xa0, 0x745: 0xa0, 0x746: 0xa0, 0x747: 0xa0,\n\t0x748: 0xa0, 0x749: 0xa0, 0x74a: 0xa0, 0x74b: 0xa0, 0x74c: 0xa0, 0x74d: 0xa0, 0x74e: 0xa0, 0x74f: 0xa0,\n\t0x750: 0xa0, 0x751: 0xa0, 0x752: 0xa0, 0x753: 0xa0, 0x754: 0xa0, 0x755: 0xa0, 0x756: 0xa0, 0x757: 0xa0,\n\t0x758: 0xa0, 0x759: 0xa0, 0x75a: 0xa0, 0x75b: 0xa0, 0x75c: 0xa0, 0x75d: 0xa0, 0x75e: 0xa0, 0x75f: 0xa0,\n\t0x760: 0xa0, 0x761: 0xa0, 0x762: 0xa0, 0x763: 0xa0, 0x764: 0xa0, 0x765: 0xa0, 0x766: 0xa0, 0x767: 0xa0,\n\t0x768: 0xa0, 0x769: 0xa0, 0x76a: 0xa0, 0x76b: 0xa0, 0x76c: 0xa0, 0x76d: 0xa0, 0x76e: 0xa0, 0x76f: 0x19c,\n\t0x770: 0xfd, 0x771: 0xfd, 0x772: 0xfd, 0x773: 0xfd, 0x774: 0xfd, 0x775: 0xfd, 0x776: 0xfd, 0x777: 0xfd,\n\t0x778: 0xfd, 0x779: 0xfd, 0x77a: 0xfd, 0x77b: 0xfd, 0x77c: 0xfd, 0x77d: 0xfd, 0x77e: 0xfd, 0x77f: 0xfd,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0xfd, 0x781: 0xfd, 0x782: 0xfd, 0x783: 0xfd, 0x784: 0xfd, 0x785: 0xfd, 0x786: 0xfd, 0x787: 0xfd,\n\t0x788: 0xfd, 0x789: 0xfd, 0x78a: 0xfd, 0x78b: 0xfd, 0x78c: 0xfd, 0x78d: 0xfd, 0x78e: 0xfd, 0x78f: 0xfd,\n\t0x790: 0xfd, 0x791: 0xfd, 0x792: 0xfd, 0x793: 0xfd, 0x794: 0xfd, 0x795: 0xfd, 0x796: 0xfd, 0x797: 0xfd,\n\t0x798: 0xfd, 0x799: 0xfd, 0x79a: 0xfd, 0x79b: 0xfd, 0x79c: 0xfd, 0x79d: 0xfd, 0x79e: 0xfd, 0x79f: 0xfd,\n\t0x7a0: 0x75, 0x7a1: 0x76, 0x7a2: 0x77, 0x7a3: 0x78, 0x7a4: 0x79, 0x7a5: 0x7a, 0x7a6: 0x7b, 0x7a7: 0x7c,\n\t0x7a8: 0x7d, 0x7a9: 0xfd, 0x7aa: 0xfd, 0x7ab: 0xfd, 0x7ac: 0xfd, 0x7ad: 0xfd, 0x7ae: 0xfd, 0x7af: 0xfd,\n\t0x7b0: 0xfd, 0x7b1: 0xfd, 0x7b2: 0xfd, 0x7b3: 0xfd, 0x7b4: 0xfd, 0x7b5: 0xfd, 0x7b6: 0xfd, 0x7b7: 0xfd,\n\t0x7b8: 0xfd, 0x7b9: 0xfd, 0x7ba: 0xfd, 0x7bb: 0xfd, 0x7bc: 0xfd, 0x7bd: 0xfd, 0x7be: 0xfd, 0x7bf: 0xfd,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0xa0, 0x7c1: 0xa0, 0x7c2: 0xa0, 0x7c3: 0xa0, 0x7c4: 0xa0, 0x7c5: 0xa0, 0x7c6: 0xa0, 0x7c7: 0xa0,\n\t0x7c8: 0xa0, 0x7c9: 0xa0, 0x7ca: 0xa0, 0x7cb: 0xa0, 0x7cc: 0xa0, 0x7cd: 0x19d, 0x7ce: 0xfd, 0x7cf: 0xfd,\n\t0x7d0: 0xfd, 0x7d1: 0xfd, 0x7d2: 0xfd, 0x7d3: 0xfd, 0x7d4: 0xfd, 0x7d5: 0xfd, 0x7d6: 0xfd, 0x7d7: 0xfd,\n\t0x7d8: 0xfd, 0x7d9: 0xfd, 0x7da: 0xfd, 0x7db: 0xfd, 0x7dc: 0xfd, 0x7dd: 0xfd, 0x7de: 0xfd, 0x7df: 0xfd,\n\t0x7e0: 0xfd, 0x7e1: 0xfd, 0x7e2: 0xfd, 0x7e3: 0xfd, 0x7e4: 0xfd, 0x7e5: 0xfd, 0x7e6: 0xfd, 0x7e7: 0xfd,\n\t0x7e8: 0xfd, 0x7e9: 0xfd, 0x7ea: 0xfd, 0x7eb: 0xfd, 0x7ec: 0xfd, 0x7ed: 0xfd, 0x7ee: 0xfd, 0x7ef: 0xfd,\n\t0x7f0: 0xfd, 0x7f1: 0xfd, 0x7f2: 0xfd, 0x7f3: 0xfd, 0x7f4: 0xfd, 0x7f5: 0xfd, 0x7f6: 0xfd, 0x7f7: 0xfd,\n\t0x7f8: 0xfd, 0x7f9: 0xfd, 0x7fa: 0xfd, 0x7fb: 0xfd, 0x7fc: 0xfd, 0x7fd: 0xfd, 0x7fe: 0xfd, 0x7ff: 0xfd,\n\t// Block 0x20, offset 0x800\n\t0x810: 0x0d, 0x811: 0x0e, 0x812: 0x0f, 0x813: 0x10, 0x814: 0x11, 0x815: 0x0b, 0x816: 0x12, 0x817: 0x07,\n\t0x818: 0x13, 0x819: 0x0b, 0x81a: 0x0b, 0x81b: 0x14, 0x81c: 0x0b, 0x81d: 0x15, 0x81e: 0x16, 0x81f: 0x17,\n\t0x820: 0x07, 0x821: 0x07, 0x822: 0x07, 0x823: 0x07, 0x824: 0x07, 0x825: 0x07, 0x826: 0x07, 0x827: 0x07,\n\t0x828: 0x07, 0x829: 0x07, 0x82a: 0x18, 0x82b: 0x19, 0x82c: 0x1a, 0x82d: 0x07, 0x82e: 0x1b, 0x82f: 0x1c,\n\t0x830: 0x07, 0x831: 0x1d, 0x832: 0x0b, 0x833: 0x0b, 0x834: 0x0b, 0x835: 0x0b, 0x836: 0x0b, 0x837: 0x0b,\n\t0x838: 0x0b, 0x839: 0x0b, 0x83a: 0x0b, 0x83b: 0x0b, 0x83c: 0x0b, 0x83d: 0x0b, 0x83e: 0x0b, 0x83f: 0x0b,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x0b, 0x841: 0x0b, 0x842: 0x0b, 0x843: 0x0b, 0x844: 0x0b, 0x845: 0x0b, 0x846: 0x0b, 0x847: 0x0b,\n\t0x848: 0x0b, 0x849: 0x0b, 0x84a: 0x0b, 0x84b: 0x0b, 0x84c: 0x0b, 0x84d: 0x0b, 0x84e: 0x0b, 0x84f: 0x0b,\n\t0x850: 0x0b, 0x851: 0x0b, 0x852: 0x0b, 0x853: 0x0b, 0x854: 0x0b, 0x855: 0x0b, 0x856: 0x0b, 0x857: 0x0b,\n\t0x858: 0x0b, 0x859: 0x0b, 0x85a: 0x0b, 0x85b: 0x0b, 0x85c: 0x0b, 0x85d: 0x0b, 0x85e: 0x0b, 0x85f: 0x0b,\n\t0x860: 0x0b, 0x861: 0x0b, 0x862: 0x0b, 0x863: 0x0b, 0x864: 0x0b, 0x865: 0x0b, 0x866: 0x0b, 0x867: 0x0b,\n\t0x868: 0x0b, 0x869: 0x0b, 0x86a: 0x0b, 0x86b: 0x0b, 0x86c: 0x0b, 0x86d: 0x0b, 0x86e: 0x0b, 0x86f: 0x0b,\n\t0x870: 0x0b, 0x871: 0x0b, 0x872: 0x0b, 0x873: 0x0b, 0x874: 0x0b, 0x875: 0x0b, 0x876: 0x0b, 0x877: 0x0b,\n\t0x878: 0x0b, 0x879: 0x0b, 0x87a: 0x0b, 0x87b: 0x0b, 0x87c: 0x0b, 0x87d: 0x0b, 0x87e: 0x0b, 0x87f: 0x0b,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x19e, 0x881: 0x19f, 0x882: 0xfd, 0x883: 0xfd, 0x884: 0x1a0, 0x885: 0x1a0, 0x886: 0x1a0, 0x887: 0x1a1,\n\t0x888: 0xfd, 0x889: 0xfd, 0x88a: 0xfd, 0x88b: 0xfd, 0x88c: 0xfd, 0x88d: 0xfd, 0x88e: 0xfd, 0x88f: 0xfd,\n\t0x890: 0xfd, 0x891: 0xfd, 0x892: 0xfd, 0x893: 0xfd, 0x894: 0xfd, 0x895: 0xfd, 0x896: 0xfd, 0x897: 0xfd,\n\t0x898: 0xfd, 0x899: 0xfd, 0x89a: 0xfd, 0x89b: 0xfd, 0x89c: 0xfd, 0x89d: 0xfd, 0x89e: 0xfd, 0x89f: 0xfd,\n\t0x8a0: 0xfd, 0x8a1: 0xfd, 0x8a2: 0xfd, 0x8a3: 0xfd, 0x8a4: 0xfd, 0x8a5: 0xfd, 0x8a6: 0xfd, 0x8a7: 0xfd,\n\t0x8a8: 0xfd, 0x8a9: 0xfd, 0x8aa: 0xfd, 0x8ab: 0xfd, 0x8ac: 0xfd, 0x8ad: 0xfd, 0x8ae: 0xfd, 0x8af: 0xfd,\n\t0x8b0: 0xfd, 0x8b1: 0xfd, 0x8b2: 0xfd, 0x8b3: 0xfd, 0x8b4: 0xfd, 0x8b5: 0xfd, 0x8b6: 0xfd, 0x8b7: 0xfd,\n\t0x8b8: 0xfd, 0x8b9: 0xfd, 0x8ba: 0xfd, 0x8bb: 0xfd, 0x8bc: 0xfd, 0x8bd: 0xfd, 0x8be: 0xfd, 0x8bf: 0xfd,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x0b, 0x8c1: 0x0b, 0x8c2: 0x0b, 0x8c3: 0x0b, 0x8c4: 0x0b, 0x8c5: 0x0b, 0x8c6: 0x0b, 0x8c7: 0x0b,\n\t0x8c8: 0x0b, 0x8c9: 0x0b, 0x8ca: 0x0b, 0x8cb: 0x0b, 0x8cc: 0x0b, 0x8cd: 0x0b, 0x8ce: 0x0b, 0x8cf: 0x0b,\n\t0x8d0: 0x0b, 0x8d1: 0x0b, 0x8d2: 0x0b, 0x8d3: 0x0b, 0x8d4: 0x0b, 0x8d5: 0x0b, 0x8d6: 0x0b, 0x8d7: 0x0b,\n\t0x8d8: 0x0b, 0x8d9: 0x0b, 0x8da: 0x0b, 0x8db: 0x0b, 0x8dc: 0x0b, 0x8dd: 0x0b, 0x8de: 0x0b, 0x8df: 0x0b,\n\t0x8e0: 0x20, 0x8e1: 0x0b, 0x8e2: 0x0b, 0x8e3: 0x0b, 0x8e4: 0x0b, 0x8e5: 0x0b, 0x8e6: 0x0b, 0x8e7: 0x0b,\n\t0x8e8: 0x0b, 0x8e9: 0x0b, 0x8ea: 0x0b, 0x8eb: 0x0b, 0x8ec: 0x0b, 0x8ed: 0x0b, 0x8ee: 0x0b, 0x8ef: 0x0b,\n\t0x8f0: 0x0b, 0x8f1: 0x0b, 0x8f2: 0x0b, 0x8f3: 0x0b, 0x8f4: 0x0b, 0x8f5: 0x0b, 0x8f6: 0x0b, 0x8f7: 0x0b,\n\t0x8f8: 0x0b, 0x8f9: 0x0b, 0x8fa: 0x0b, 0x8fb: 0x0b, 0x8fc: 0x0b, 0x8fd: 0x0b, 0x8fe: 0x0b, 0x8ff: 0x0b,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x0b, 0x901: 0x0b, 0x902: 0x0b, 0x903: 0x0b, 0x904: 0x0b, 0x905: 0x0b, 0x906: 0x0b, 0x907: 0x0b,\n\t0x908: 0x0b, 0x909: 0x0b, 0x90a: 0x0b, 0x90b: 0x0b, 0x90c: 0x0b, 0x90d: 0x0b, 0x90e: 0x0b, 0x90f: 0x0b,\n}\n\n// idnaSparseOffset: 292 entries, 584 bytes\nvar idnaSparseOffset = []uint16{0x0, 0x8, 0x19, 0x25, 0x27, 0x2c, 0x33, 0x3e, 0x4a, 0x4e, 0x5d, 0x62, 0x6c, 0x78, 0x85, 0x8b, 0x94, 0xa4, 0xb2, 0xbd, 0xca, 0xdb, 0xe5, 0xec, 0xf9, 0x10a, 0x111, 0x11c, 0x12b, 0x139, 0x143, 0x145, 0x14a, 0x14d, 0x150, 0x152, 0x15e, 0x169, 0x171, 0x177, 0x17d, 0x182, 0x187, 0x18a, 0x18e, 0x194, 0x199, 0x1a5, 0x1af, 0x1b5, 0x1c6, 0x1d0, 0x1d3, 0x1db, 0x1de, 0x1eb, 0x1f3, 0x1f7, 0x1fe, 0x206, 0x216, 0x222, 0x225, 0x22f, 0x23b, 0x247, 0x253, 0x25b, 0x260, 0x26d, 0x27e, 0x282, 0x28d, 0x291, 0x29a, 0x2a2, 0x2a8, 0x2ad, 0x2b0, 0x2b4, 0x2ba, 0x2be, 0x2c2, 0x2c6, 0x2cc, 0x2d4, 0x2db, 0x2e6, 0x2f0, 0x2f4, 0x2f7, 0x2fd, 0x301, 0x303, 0x306, 0x308, 0x30b, 0x315, 0x318, 0x327, 0x32b, 0x32f, 0x331, 0x33a, 0x33d, 0x341, 0x346, 0x34b, 0x351, 0x362, 0x372, 0x378, 0x37c, 0x38b, 0x390, 0x398, 0x3a2, 0x3ad, 0x3b5, 0x3c6, 0x3cf, 0x3df, 0x3ec, 0x3f8, 0x3fd, 0x40a, 0x40e, 0x413, 0x415, 0x417, 0x41b, 0x41d, 0x421, 0x42a, 0x430, 0x434, 0x444, 0x44e, 0x453, 0x456, 0x45c, 0x463, 0x468, 0x46c, 0x472, 0x477, 0x480, 0x485, 0x48b, 0x492, 0x499, 0x4a0, 0x4a4, 0x4a9, 0x4ac, 0x4b1, 0x4bd, 0x4c3, 0x4c8, 0x4cf, 0x4d7, 0x4dc, 0x4e0, 0x4f0, 0x4f7, 0x4fb, 0x4ff, 0x506, 0x508, 0x50b, 0x50e, 0x512, 0x51b, 0x51f, 0x527, 0x52f, 0x537, 0x543, 0x54f, 0x555, 0x55e, 0x56a, 0x571, 0x57a, 0x585, 0x58c, 0x59b, 0x5a8, 0x5b5, 0x5be, 0x5c2, 0x5d1, 0x5d9, 0x5e4, 0x5ed, 0x5f3, 0x5fb, 0x604, 0x60f, 0x612, 0x61e, 0x627, 0x62a, 0x62f, 0x638, 0x63d, 0x64a, 0x655, 0x65e, 0x668, 0x66b, 0x675, 0x67e, 0x68a, 0x697, 0x6a4, 0x6b2, 0x6b9, 0x6bd, 0x6c1, 0x6c4, 0x6c9, 0x6cc, 0x6d1, 0x6d4, 0x6db, 0x6e2, 0x6e6, 0x6f1, 0x6f4, 0x6f7, 0x6fa, 0x700, 0x706, 0x70f, 0x712, 0x715, 0x718, 0x71b, 0x722, 0x725, 0x72a, 0x734, 0x737, 0x73b, 0x74a, 0x756, 0x75a, 0x75f, 0x763, 0x768, 0x76c, 0x771, 0x77a, 0x785, 0x78b, 0x791, 0x797, 0x79d, 0x7a6, 0x7a9, 0x7ac, 0x7b0, 0x7b4, 0x7b8, 0x7be, 0x7c4, 0x7c9, 0x7cc, 0x7dc, 0x7e3, 0x7e6, 0x7eb, 0x7ef, 0x7f5, 0x7fc, 0x800, 0x804, 0x80d, 0x814, 0x819, 0x81d, 0x82b, 0x82e, 0x831, 0x835, 0x839, 0x83c, 0x83f, 0x844, 0x846, 0x848}\n\n// idnaSparseValues: 2123 entries, 8492 bytes\nvar idnaSparseValues = [2123]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xe105, lo: 0x80, hi: 0x96},\n\t{value: 0x0018, lo: 0x97, hi: 0x97},\n\t{value: 0xe105, lo: 0x98, hi: 0x9e},\n\t{value: 0x001f, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbf},\n\t// Block 0x1, offset 0x8\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0xe01d, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x82},\n\t{value: 0x0335, lo: 0x83, hi: 0x83},\n\t{value: 0x034d, lo: 0x84, hi: 0x84},\n\t{value: 0x0365, lo: 0x85, hi: 0x85},\n\t{value: 0xe00d, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x87},\n\t{value: 0xe00d, lo: 0x88, hi: 0x88},\n\t{value: 0x0008, lo: 0x89, hi: 0x89},\n\t{value: 0xe00d, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0x8b},\n\t{value: 0xe00d, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0x8d},\n\t{value: 0xe00d, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0xbf},\n\t// Block 0x2, offset 0x19\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x00a9, lo: 0xb0, hi: 0xb0},\n\t{value: 0x037d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x00b1, lo: 0xb2, hi: 0xb2},\n\t{value: 0x00b9, lo: 0xb3, hi: 0xb3},\n\t{value: 0x034d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0395, lo: 0xb5, hi: 0xb5},\n\t{value: 0xe1bd, lo: 0xb6, hi: 0xb6},\n\t{value: 0x00c1, lo: 0xb7, hi: 0xb7},\n\t{value: 0x00c9, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0008, lo: 0xb9, hi: 0xbf},\n\t// Block 0x3, offset 0x25\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x3308, lo: 0x80, hi: 0xbf},\n\t// Block 0x4, offset 0x27\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x03f5, lo: 0x80, hi: 0x8f},\n\t{value: 0xe105, lo: 0x90, hi: 0x9f},\n\t{value: 0x049d, lo: 0xa0, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x5, offset 0x2c\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe185, lo: 0x80, hi: 0x8f},\n\t{value: 0x0545, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x98},\n\t{value: 0x0008, lo: 0x99, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x6, offset 0x33\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0131, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x88},\n\t{value: 0x0018, lo: 0x89, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x3308, lo: 0x91, hi: 0xbd},\n\t{value: 0x0818, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7, offset 0x3e\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0818, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x82},\n\t{value: 0x0818, lo: 0x83, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x85},\n\t{value: 0x0818, lo: 0x86, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xae},\n\t{value: 0x0808, lo: 0xaf, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x8, offset 0x4a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0a08, lo: 0x80, hi: 0x87},\n\t{value: 0x0c08, lo: 0x88, hi: 0x99},\n\t{value: 0x0a08, lo: 0x9a, hi: 0xbf},\n\t// Block 0x9, offset 0x4e\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3308, lo: 0x80, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8c},\n\t{value: 0x0c08, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0a08, lo: 0x8e, hi: 0x98},\n\t{value: 0x0c08, lo: 0x99, hi: 0x9b},\n\t{value: 0x0a08, lo: 0x9c, hi: 0xaa},\n\t{value: 0x0c08, lo: 0xab, hi: 0xac},\n\t{value: 0x0a08, lo: 0xad, hi: 0xb0},\n\t{value: 0x0c08, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0a08, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0c08, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0a08, lo: 0xb5, hi: 0xb7},\n\t{value: 0x0c08, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0a08, lo: 0xba, hi: 0xbf},\n\t// Block 0xa, offset 0x5d\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xb0},\n\t{value: 0x0808, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0xb, offset 0x62\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0808, lo: 0x80, hi: 0x89},\n\t{value: 0x0a08, lo: 0x8a, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xb3},\n\t{value: 0x0808, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xb9},\n\t{value: 0x0818, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0818, lo: 0xbe, hi: 0xbf},\n\t// Block 0xc, offset 0x6c\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x99},\n\t{value: 0x0808, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0xa3},\n\t{value: 0x0808, lo: 0xa4, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa7},\n\t{value: 0x0808, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0818, lo: 0xb0, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xd, offset 0x78\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0a08, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0c08, lo: 0xaa, hi: 0xac},\n\t{value: 0x0808, lo: 0xad, hi: 0xad},\n\t{value: 0x0c08, lo: 0xae, hi: 0xae},\n\t{value: 0x0a08, lo: 0xaf, hi: 0xb0},\n\t{value: 0x0c08, lo: 0xb1, hi: 0xb2},\n\t{value: 0x0a08, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0a08, lo: 0xb6, hi: 0xb8},\n\t{value: 0x0c08, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0a08, lo: 0xba, hi: 0xbf},\n\t// Block 0xe, offset 0x85\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0a08, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x92},\n\t{value: 0x3308, lo: 0x93, hi: 0xa1},\n\t{value: 0x0840, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3308, lo: 0xa3, hi: 0xbf},\n\t// Block 0xf, offset 0x8b\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x10, offset 0x94\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x85},\n\t{value: 0x3008, lo: 0x86, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x3008, lo: 0x8a, hi: 0x8c},\n\t{value: 0x3b08, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x97},\n\t{value: 0x0040, lo: 0x98, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x11, offset 0xa4\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0008, lo: 0xaa, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbf},\n\t// Block 0x12, offset 0xb2\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0xba},\n\t{value: 0x3b08, lo: 0xbb, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x13, offset 0xbd\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0008, lo: 0xb3, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x14, offset 0xca\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x89},\n\t{value: 0x3b08, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8e},\n\t{value: 0x3008, lo: 0x8f, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x94},\n\t{value: 0x0040, lo: 0x95, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x3008, lo: 0x98, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xb1},\n\t{value: 0x3008, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x15, offset 0xdb\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb2},\n\t{value: 0x01f1, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb9},\n\t{value: 0x3b08, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbe},\n\t{value: 0x0018, lo: 0xbf, hi: 0xbf},\n\t// Block 0x16, offset 0xe5\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x8e},\n\t{value: 0x0018, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0xbf},\n\t// Block 0x17, offset 0xec\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x3308, lo: 0x88, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0201, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0209, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0008, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0x18, offset 0xf9\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0x8b},\n\t{value: 0xe03d, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xb8},\n\t{value: 0x3308, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0018, lo: 0xba, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x19, offset 0x10a\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0018, lo: 0x8e, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0xbf},\n\t// Block 0x1a, offset 0x111\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x3008, lo: 0xab, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xb0},\n\t{value: 0x3008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb7},\n\t{value: 0x3008, lo: 0xb8, hi: 0xb8},\n\t{value: 0x3b08, lo: 0xb9, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1b, offset 0x11c\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x95},\n\t{value: 0x3008, lo: 0x96, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0x9d},\n\t{value: 0x3308, lo: 0x9e, hi: 0xa0},\n\t{value: 0x0008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3008, lo: 0xa2, hi: 0xa4},\n\t{value: 0x0008, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xbf},\n\t// Block 0x1c, offset 0x12b\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x3008, lo: 0x87, hi: 0x8c},\n\t{value: 0x3308, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x8e},\n\t{value: 0x3008, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x3008, lo: 0x9a, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0x1d, offset 0x139\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0040, lo: 0x80, hi: 0x86},\n\t{value: 0x055d, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8c},\n\t{value: 0x055d, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbb},\n\t{value: 0xe105, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbf},\n\t// Block 0x1e, offset 0x143\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0018, lo: 0x80, hi: 0xbf},\n\t// Block 0x1f, offset 0x145\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xa0},\n\t{value: 0x2018, lo: 0xa1, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0x20, offset 0x14a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xa7},\n\t{value: 0x2018, lo: 0xa8, hi: 0xbf},\n\t// Block 0x21, offset 0x14d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x2018, lo: 0x80, hi: 0x82},\n\t{value: 0x0018, lo: 0x83, hi: 0xbf},\n\t// Block 0x22, offset 0x150\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0008, lo: 0x80, hi: 0xbf},\n\t// Block 0x23, offset 0x152\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x24, offset 0x15e\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x25, offset 0x169\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0040, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbf},\n\t// Block 0x26, offset 0x171\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbf},\n\t// Block 0x27, offset 0x177\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x28, offset 0x17d\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x29, offset 0x182\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0xe045, lo: 0xb8, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x2a, offset 0x187\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xbf},\n\t// Block 0x2b, offset 0x18a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xac},\n\t{value: 0x0018, lo: 0xad, hi: 0xae},\n\t{value: 0x0008, lo: 0xaf, hi: 0xbf},\n\t// Block 0x2c, offset 0x18e\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9c},\n\t{value: 0x0040, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x2d, offset 0x194\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xb0},\n\t{value: 0x0008, lo: 0xb1, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0x2e, offset 0x199\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x93},\n\t{value: 0x3b08, lo: 0x94, hi: 0x94},\n\t{value: 0x0040, lo: 0x95, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3b08, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0018, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x2f, offset 0x1a5\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0x30, offset 0x1af\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0xb3},\n\t{value: 0x3340, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3008, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x31, offset 0x1b5\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x3008, lo: 0x80, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x3008, lo: 0x87, hi: 0x88},\n\t{value: 0x3308, lo: 0x89, hi: 0x91},\n\t{value: 0x3b08, lo: 0x92, hi: 0x92},\n\t{value: 0x3308, lo: 0x93, hi: 0x93},\n\t{value: 0x0018, lo: 0x94, hi: 0x96},\n\t{value: 0x0008, lo: 0x97, hi: 0x97},\n\t{value: 0x0018, lo: 0x98, hi: 0x9b},\n\t{value: 0x0008, lo: 0x9c, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x32, offset 0x1c6\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0018, lo: 0x80, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x86},\n\t{value: 0x0218, lo: 0x87, hi: 0x87},\n\t{value: 0x0018, lo: 0x88, hi: 0x8a},\n\t{value: 0x33c0, lo: 0x8b, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0208, lo: 0xa0, hi: 0xbf},\n\t// Block 0x33, offset 0x1d0\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0208, lo: 0x80, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0x34, offset 0x1d3\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x0208, lo: 0x87, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0208, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x35, offset 0x1db\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0x36, offset 0x1de\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb8},\n\t{value: 0x3308, lo: 0xb9, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x37, offset 0x1eb\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0018, lo: 0x80, hi: 0x80},\n\t{value: 0x0040, lo: 0x81, hi: 0x83},\n\t{value: 0x0018, lo: 0x84, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x38, offset 0x1f3\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x39, offset 0x1f7\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0028, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0xbf},\n\t// Block 0x3a, offset 0x1fe\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x3308, lo: 0x97, hi: 0x98},\n\t{value: 0x3008, lo: 0x99, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x3b, offset 0x206\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0008, lo: 0x80, hi: 0x94},\n\t{value: 0x3008, lo: 0x95, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3b08, lo: 0xa0, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xac},\n\t{value: 0x3008, lo: 0xad, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3c, offset 0x216\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0018, lo: 0xa8, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xbd},\n\t{value: 0x3318, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3d, offset 0x222\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x0040, lo: 0x81, hi: 0xbf},\n\t// Block 0x3e, offset 0x225\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x3308, lo: 0x80, hi: 0x83},\n\t{value: 0x3008, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x3008, lo: 0xbd, hi: 0xbf},\n\t// Block 0x3f, offset 0x22f\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x3808, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x40, offset 0x23b\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa9},\n\t{value: 0x3808, lo: 0xaa, hi: 0xaa},\n\t{value: 0x3b08, lo: 0xab, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xbf},\n\t// Block 0x41, offset 0x247\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa9},\n\t{value: 0x3008, lo: 0xaa, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xae},\n\t{value: 0x3308, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3808, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbb},\n\t{value: 0x0018, lo: 0xbc, hi: 0xbf},\n\t// Block 0x42, offset 0x253\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa3},\n\t{value: 0x3008, lo: 0xa4, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbf},\n\t// Block 0x43, offset 0x25b\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0x44, offset 0x260\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x02a9, lo: 0x80, hi: 0x80},\n\t{value: 0x02b1, lo: 0x81, hi: 0x81},\n\t{value: 0x02b9, lo: 0x82, hi: 0x82},\n\t{value: 0x02c1, lo: 0x83, hi: 0x83},\n\t{value: 0x02c9, lo: 0x84, hi: 0x85},\n\t{value: 0x02d1, lo: 0x86, hi: 0x86},\n\t{value: 0x02d9, lo: 0x87, hi: 0x87},\n\t{value: 0x057d, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0x059d, lo: 0x90, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbc},\n\t{value: 0x059d, lo: 0xbd, hi: 0xbf},\n\t// Block 0x45, offset 0x26d\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x3308, lo: 0x90, hi: 0x92},\n\t{value: 0x0018, lo: 0x93, hi: 0x93},\n\t{value: 0x3308, lo: 0x94, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa8},\n\t{value: 0x0008, lo: 0xa9, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xb6},\n\t{value: 0x3008, lo: 0xb7, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x46, offset 0x27e\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3308, lo: 0x80, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xba},\n\t{value: 0x3308, lo: 0xbb, hi: 0xbf},\n\t// Block 0x47, offset 0x282\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x87},\n\t{value: 0xe045, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0xe045, lo: 0x98, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa7},\n\t{value: 0xe045, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb7},\n\t{value: 0xe045, lo: 0xb8, hi: 0xbf},\n\t// Block 0x48, offset 0x28d\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x3318, lo: 0x90, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xbf},\n\t// Block 0x49, offset 0x291\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x88},\n\t{value: 0x0851, lo: 0x89, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0x4a, offset 0x29a\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0018, lo: 0x80, hi: 0xab},\n\t{value: 0x0859, lo: 0xac, hi: 0xac},\n\t{value: 0x0861, lo: 0xad, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xae},\n\t{value: 0x0869, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0871, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0018, lo: 0xb1, hi: 0xbf},\n\t// Block 0x4b, offset 0x2a2\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x9f},\n\t{value: 0x0080, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xad},\n\t{value: 0x0080, lo: 0xae, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x4c, offset 0x2a8\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0xa8},\n\t{value: 0x09dd, lo: 0xa9, hi: 0xa9},\n\t{value: 0x09fd, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xbf},\n\t// Block 0x4d, offset 0x2ad\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xbf},\n\t// Block 0x4e, offset 0x2b0\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x8b},\n\t{value: 0x0929, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0xbf},\n\t// Block 0x4f, offset 0x2b4\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0xb3},\n\t{value: 0x0e7e, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0932, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0e9e, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0x50, offset 0x2ba\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x9b},\n\t{value: 0x0939, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0xbf},\n\t// Block 0x51, offset 0x2be\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0x52, offset 0x2c2\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x96},\n\t{value: 0x0018, lo: 0x97, hi: 0xbf},\n\t// Block 0x53, offset 0x2c6\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xe185, lo: 0x80, hi: 0x8f},\n\t{value: 0x03f5, lo: 0x90, hi: 0x9f},\n\t{value: 0x0ebd, lo: 0xa0, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x54, offset 0x2cc\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xac},\n\t{value: 0x0008, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x55, offset 0x2d4\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xae},\n\t{value: 0xe075, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0x56, offset 0x2db\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x57, offset 0x2e6\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xbf},\n\t// Block 0x58, offset 0x2f0\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xae},\n\t{value: 0x0008, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x59, offset 0x2f4\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x92},\n\t{value: 0x0040, lo: 0x93, hi: 0xbf},\n\t// Block 0x5a, offset 0x2f7\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9e},\n\t{value: 0x0ef5, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbf},\n\t// Block 0x5b, offset 0x2fd\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xb2},\n\t{value: 0x0f15, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0x5c, offset 0x301\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x0f35, lo: 0x80, hi: 0xbf},\n\t// Block 0x5d, offset 0x303\n\t{value: 0x0020, lo: 0x02},\n\t{value: 0x1735, lo: 0x80, hi: 0x8f},\n\t{value: 0x1915, lo: 0x90, hi: 0xbf},\n\t// Block 0x5e, offset 0x306\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x1f15, lo: 0x80, hi: 0xbf},\n\t// Block 0x5f, offset 0x308\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xbf},\n\t// Block 0x60, offset 0x30b\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x98},\n\t{value: 0x3308, lo: 0x99, hi: 0x9a},\n\t{value: 0x096a, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0972, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0008, lo: 0x9d, hi: 0x9e},\n\t{value: 0x0979, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0008, lo: 0xa1, hi: 0xbf},\n\t// Block 0x61, offset 0x315\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xbe},\n\t{value: 0x0981, lo: 0xbf, hi: 0xbf},\n\t// Block 0x62, offset 0x318\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0040, lo: 0x80, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xb0},\n\t{value: 0x2a35, lo: 0xb1, hi: 0xb1},\n\t{value: 0x2a55, lo: 0xb2, hi: 0xb2},\n\t{value: 0x2a75, lo: 0xb3, hi: 0xb3},\n\t{value: 0x2a95, lo: 0xb4, hi: 0xb4},\n\t{value: 0x2a75, lo: 0xb5, hi: 0xb5},\n\t{value: 0x2ab5, lo: 0xb6, hi: 0xb6},\n\t{value: 0x2ad5, lo: 0xb7, hi: 0xb7},\n\t{value: 0x2af5, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2b15, lo: 0xba, hi: 0xbb},\n\t{value: 0x2b35, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2b15, lo: 0xbe, hi: 0xbf},\n\t// Block 0x63, offset 0x327\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x64, offset 0x32b\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x098a, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0a82, lo: 0xa0, hi: 0xbf},\n\t// Block 0x65, offset 0x32f\n\t{value: 0x0008, lo: 0x01},\n\t{value: 0x0d19, lo: 0x80, hi: 0xbf},\n\t// Block 0x66, offset 0x331\n\t{value: 0x0008, lo: 0x08},\n\t{value: 0x0f19, lo: 0x80, hi: 0xb0},\n\t{value: 0x4045, lo: 0xb1, hi: 0xb1},\n\t{value: 0x10a1, lo: 0xb2, hi: 0xb3},\n\t{value: 0x4065, lo: 0xb4, hi: 0xb4},\n\t{value: 0x10b1, lo: 0xb5, hi: 0xb7},\n\t{value: 0x4085, lo: 0xb8, hi: 0xb8},\n\t{value: 0x4085, lo: 0xb9, hi: 0xb9},\n\t{value: 0x10c9, lo: 0xba, hi: 0xbf},\n\t// Block 0x67, offset 0x33a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x68, offset 0x33d\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0x69, offset 0x341\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0x6a, offset 0x346\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xbf},\n\t// Block 0x6b, offset 0x34b\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x0018, lo: 0xa6, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0018, lo: 0xb2, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0x6c, offset 0x351\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0040, lo: 0x80, hi: 0x81},\n\t{value: 0xe00d, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0x83},\n\t{value: 0x03f5, lo: 0x84, hi: 0x84},\n\t{value: 0x0479, lo: 0x85, hi: 0x85},\n\t{value: 0x447d, lo: 0x86, hi: 0x86},\n\t{value: 0xe07d, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x88},\n\t{value: 0xe01d, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0xb4},\n\t{value: 0xe01d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0008, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0741, lo: 0xb8, hi: 0xb8},\n\t{value: 0x13f1, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xbf},\n\t// Block 0x6d, offset 0x362\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0x85},\n\t{value: 0x3b08, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x8a},\n\t{value: 0x3308, lo: 0x8b, hi: 0x8b},\n\t{value: 0x0008, lo: 0x8c, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0018, lo: 0xa8, hi: 0xab},\n\t{value: 0x3b08, lo: 0xac, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x6e, offset 0x372\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0208, lo: 0x80, hi: 0xb1},\n\t{value: 0x0108, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0008, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0x6f, offset 0x378\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xbf},\n\t// Block 0x70, offset 0x37c\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3008, lo: 0x80, hi: 0x83},\n\t{value: 0x3b08, lo: 0x84, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8d},\n\t{value: 0x0018, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xba},\n\t{value: 0x0008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0018, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0x71, offset 0x38b\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x72, offset 0x390\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x91},\n\t{value: 0x3008, lo: 0x92, hi: 0x92},\n\t{value: 0x3808, lo: 0x93, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x73, offset 0x398\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb9},\n\t{value: 0x3008, lo: 0xba, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x74, offset 0x3a2\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3808, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x75, offset 0x3ad\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x76, offset 0x3b5\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x8b},\n\t{value: 0x3308, lo: 0x8c, hi: 0x8c},\n\t{value: 0x3008, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0018, lo: 0x9c, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x3008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x77, offset 0x3c6\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb8},\n\t{value: 0x0008, lo: 0xb9, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbf},\n\t// Block 0x78, offset 0x3cf\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x9a},\n\t{value: 0x0008, lo: 0x9b, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xaa},\n\t{value: 0x3008, lo: 0xab, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3b08, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x79, offset 0x3df\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x88},\n\t{value: 0x0008, lo: 0x89, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x90},\n\t{value: 0x0008, lo: 0x91, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7a, offset 0x3ec\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9b},\n\t{value: 0x449d, lo: 0x9c, hi: 0x9c},\n\t{value: 0x44b5, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0941, lo: 0x9e, hi: 0x9e},\n\t{value: 0xe06d, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa8},\n\t{value: 0x13f9, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x44cd, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7b, offset 0x3f8\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x44ed, lo: 0x80, hi: 0x8f},\n\t{value: 0x450d, lo: 0x90, hi: 0x9f},\n\t{value: 0x452d, lo: 0xa0, hi: 0xaf},\n\t{value: 0x450d, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7c, offset 0x3fd\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3b08, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x7d, offset 0x40a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7e, offset 0x40e\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8a},\n\t{value: 0x0018, lo: 0x8b, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x7f, offset 0x413\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0040, lo: 0x80, hi: 0xbf},\n\t// Block 0x80, offset 0x415\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x454d, lo: 0x80, hi: 0xbf},\n\t// Block 0x81, offset 0x417\n\t{value: 0x0020, lo: 0x03},\n\t{value: 0x4d4d, lo: 0x80, hi: 0x94},\n\t{value: 0x4b0d, lo: 0x95, hi: 0x95},\n\t{value: 0x4fed, lo: 0x96, hi: 0xbf},\n\t// Block 0x82, offset 0x41b\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x552d, lo: 0x80, hi: 0xbf},\n\t// Block 0x83, offset 0x41d\n\t{value: 0x0020, lo: 0x03},\n\t{value: 0x5d2d, lo: 0x80, hi: 0x84},\n\t{value: 0x568d, lo: 0x85, hi: 0x85},\n\t{value: 0x5dcd, lo: 0x86, hi: 0xbf},\n\t// Block 0x84, offset 0x421\n\t{value: 0x0020, lo: 0x08},\n\t{value: 0x6b8d, lo: 0x80, hi: 0x8f},\n\t{value: 0x6d4d, lo: 0x90, hi: 0x90},\n\t{value: 0x6d8d, lo: 0x91, hi: 0xab},\n\t{value: 0x1401, lo: 0xac, hi: 0xac},\n\t{value: 0x70ed, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x710d, lo: 0xb0, hi: 0xbf},\n\t// Block 0x85, offset 0x42a\n\t{value: 0x0020, lo: 0x05},\n\t{value: 0x730d, lo: 0x80, hi: 0xad},\n\t{value: 0x656d, lo: 0xae, hi: 0xae},\n\t{value: 0x78cd, lo: 0xaf, hi: 0xb5},\n\t{value: 0x6f8d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x79ad, lo: 0xb7, hi: 0xbf},\n\t// Block 0x86, offset 0x430\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x1751, lo: 0x80, hi: 0x82},\n\t{value: 0x1741, lo: 0x83, hi: 0x83},\n\t{value: 0x1769, lo: 0x84, hi: 0xbf},\n\t// Block 0x87, offset 0x434\n\t{value: 0x0008, lo: 0x0f},\n\t{value: 0x1d81, lo: 0x80, hi: 0x83},\n\t{value: 0x1d99, lo: 0x84, hi: 0x85},\n\t{value: 0x1da1, lo: 0x86, hi: 0x87},\n\t{value: 0x1da9, lo: 0x88, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x1de9, lo: 0x92, hi: 0x97},\n\t{value: 0x1e11, lo: 0x98, hi: 0x9c},\n\t{value: 0x1e31, lo: 0x9d, hi: 0xb3},\n\t{value: 0x1d71, lo: 0xb4, hi: 0xb4},\n\t{value: 0x1d81, lo: 0xb5, hi: 0xb5},\n\t{value: 0x1ee9, lo: 0xb6, hi: 0xbb},\n\t{value: 0x1f09, lo: 0xbc, hi: 0xbc},\n\t{value: 0x1ef9, lo: 0xbd, hi: 0xbd},\n\t{value: 0x1f19, lo: 0xbe, hi: 0xbf},\n\t// Block 0x88, offset 0x444\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0008, lo: 0xbc, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0x89, offset 0x44e\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0xbf},\n\t// Block 0x8a, offset 0x453\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x8b, offset 0x456\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0x8c, offset 0x45c\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x9c},\n\t{value: 0x0040, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0040, lo: 0xa1, hi: 0xbf},\n\t// Block 0x8d, offset 0x463\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x8e, offset 0x468\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x9c},\n\t{value: 0x0040, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x8f, offset 0x46c\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x90, offset 0x472\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xac},\n\t{value: 0x0008, lo: 0xad, hi: 0xbf},\n\t// Block 0x91, offset 0x477\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x92, offset 0x480\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x93, offset 0x485\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0xbf},\n\t// Block 0x94, offset 0x48b\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe145, lo: 0x80, hi: 0x87},\n\t{value: 0xe1c5, lo: 0x88, hi: 0x8f},\n\t{value: 0xe145, lo: 0x90, hi: 0x97},\n\t{value: 0x8b0d, lo: 0x98, hi: 0x9f},\n\t{value: 0x8b25, lo: 0xa0, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xbf},\n\t// Block 0x95, offset 0x492\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x8b25, lo: 0xb0, hi: 0xb7},\n\t{value: 0x8b0d, lo: 0xb8, hi: 0xbf},\n\t// Block 0x96, offset 0x499\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe145, lo: 0x80, hi: 0x87},\n\t{value: 0xe1c5, lo: 0x88, hi: 0x8f},\n\t{value: 0xe145, lo: 0x90, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x97, offset 0x4a0\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x98, offset 0x4a4\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xae},\n\t{value: 0x0018, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0x99, offset 0x4a9\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x9a, offset 0x4ac\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xbf},\n\t// Block 0x9b, offset 0x4b1\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0808, lo: 0x80, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x87},\n\t{value: 0x0808, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0808, lo: 0x8a, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0808, lo: 0xb7, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbb},\n\t{value: 0x0808, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbe},\n\t{value: 0x0808, lo: 0xbf, hi: 0xbf},\n\t// Block 0x9c, offset 0x4bd\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x96},\n\t{value: 0x0818, lo: 0x97, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0818, lo: 0xb7, hi: 0xbf},\n\t// Block 0x9d, offset 0x4c3\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xa6},\n\t{value: 0x0818, lo: 0xa7, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0x9e, offset 0x4c8\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0808, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xba},\n\t{value: 0x0818, lo: 0xbb, hi: 0xbf},\n\t// Block 0x9f, offset 0x4cf\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0818, lo: 0x96, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbe},\n\t{value: 0x0818, lo: 0xbf, hi: 0xbf},\n\t// Block 0xa0, offset 0x4d7\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbb},\n\t{value: 0x0818, lo: 0xbc, hi: 0xbd},\n\t{value: 0x0808, lo: 0xbe, hi: 0xbf},\n\t// Block 0xa1, offset 0x4dc\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0818, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x91},\n\t{value: 0x0818, lo: 0x92, hi: 0xbf},\n\t// Block 0xa2, offset 0x4e0\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0808, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8b},\n\t{value: 0x3308, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x94},\n\t{value: 0x0808, lo: 0x95, hi: 0x97},\n\t{value: 0x0040, lo: 0x98, hi: 0x98},\n\t{value: 0x0808, lo: 0x99, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xa3, offset 0x4f0\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0818, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0x0818, lo: 0x90, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xbc},\n\t{value: 0x0818, lo: 0xbd, hi: 0xbf},\n\t// Block 0xa4, offset 0x4f7\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0x9c},\n\t{value: 0x0818, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0xa5, offset 0x4fb\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb8},\n\t{value: 0x0018, lo: 0xb9, hi: 0xbf},\n\t// Block 0xa6, offset 0x4ff\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0x0818, lo: 0x98, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb7},\n\t{value: 0x0818, lo: 0xb8, hi: 0xbf},\n\t// Block 0xa7, offset 0x506\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0808, lo: 0x80, hi: 0xbf},\n\t// Block 0xa8, offset 0x508\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0808, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0xbf},\n\t// Block 0xa9, offset 0x50b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x03dd, lo: 0x80, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbf},\n\t// Block 0xaa, offset 0x50e\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb9},\n\t{value: 0x0818, lo: 0xba, hi: 0xbf},\n\t// Block 0xab, offset 0x512\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0908, lo: 0x80, hi: 0x80},\n\t{value: 0x0a08, lo: 0x81, hi: 0xa1},\n\t{value: 0x0c08, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0a08, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3308, lo: 0xa4, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0808, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xac, offset 0x51b\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0818, lo: 0xa0, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xad, offset 0x51f\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0808, lo: 0x80, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xac},\n\t{value: 0x0818, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0808, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0xae, offset 0x527\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0808, lo: 0x80, hi: 0x9c},\n\t{value: 0x0818, lo: 0x9d, hi: 0xa6},\n\t{value: 0x0808, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0a08, lo: 0xb0, hi: 0xb2},\n\t{value: 0x0c08, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0a08, lo: 0xb4, hi: 0xbf},\n\t// Block 0xaf, offset 0x52f\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0a08, lo: 0x80, hi: 0x84},\n\t{value: 0x0808, lo: 0x85, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x90},\n\t{value: 0x0a18, lo: 0x91, hi: 0x93},\n\t{value: 0x0c18, lo: 0x94, hi: 0x94},\n\t{value: 0x0818, lo: 0x95, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xb0, offset 0x537\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0040, lo: 0x80, hi: 0xaf},\n\t{value: 0x0a08, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0808, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0a08, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0c08, lo: 0xb4, hi: 0xb6},\n\t{value: 0x0808, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0a08, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0c08, lo: 0xb9, hi: 0xba},\n\t{value: 0x0a08, lo: 0xbb, hi: 0xbc},\n\t{value: 0x0c08, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0a08, lo: 0xbe, hi: 0xbf},\n\t// Block 0xb1, offset 0x543\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0808, lo: 0x80, hi: 0x80},\n\t{value: 0x0a08, lo: 0x81, hi: 0x81},\n\t{value: 0x0c08, lo: 0x82, hi: 0x83},\n\t{value: 0x0a08, lo: 0x84, hi: 0x84},\n\t{value: 0x0818, lo: 0x85, hi: 0x88},\n\t{value: 0x0c18, lo: 0x89, hi: 0x89},\n\t{value: 0x0a18, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0918, lo: 0x8b, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0xb2, offset 0x54f\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x3008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbf},\n\t// Block 0xb3, offset 0x555\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x85},\n\t{value: 0x3b08, lo: 0x86, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x91},\n\t{value: 0x0018, lo: 0x92, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb4, offset 0x55e\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb6},\n\t{value: 0x3008, lo: 0xb7, hi: 0xb8},\n\t{value: 0x3b08, lo: 0xb9, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0xb5, offset 0x56a\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x81},\n\t{value: 0x0040, lo: 0x82, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xb6, offset 0x571\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xb2},\n\t{value: 0x3b08, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0008, lo: 0xb6, hi: 0xbf},\n\t// Block 0xb7, offset 0x57a\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0018, lo: 0x80, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x84},\n\t{value: 0x3008, lo: 0x85, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0008, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0xb8, offset 0x585\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xbe},\n\t{value: 0x3008, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb9, offset 0x58c\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3808, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x88},\n\t{value: 0x3308, lo: 0x89, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8d},\n\t{value: 0x3008, lo: 0x8e, hi: 0x8e},\n\t{value: 0x3308, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0008, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0xba, offset 0x59b\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0x92},\n\t{value: 0x0008, lo: 0x93, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xae},\n\t{value: 0x3308, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3008, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3808, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xbb, offset 0x5a8\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0008, lo: 0x9f, hi: 0xa8},\n\t{value: 0x0018, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0xbc, offset 0x5b5\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x3308, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3008, lo: 0xa0, hi: 0xa2},\n\t{value: 0x3308, lo: 0xa3, hi: 0xa9},\n\t{value: 0x3b08, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xbd, offset 0x5be\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbf},\n\t// Block 0xbe, offset 0x5c2\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x3b08, lo: 0x82, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x84},\n\t{value: 0x3008, lo: 0x85, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x8a},\n\t{value: 0x0018, lo: 0x8b, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0x9d},\n\t{value: 0x3308, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0008, lo: 0x9f, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xbf},\n\t// Block 0xbf, offset 0x5d1\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb8},\n\t{value: 0x3008, lo: 0xb9, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0xc0, offset 0x5d9\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x81},\n\t{value: 0x3b08, lo: 0x82, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x85},\n\t{value: 0x0018, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xc1, offset 0x5e4\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0x3008, lo: 0xb8, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xc2, offset 0x5ed\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x9b},\n\t{value: 0x3308, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0xbf},\n\t// Block 0xc3, offset 0x5f3\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xc4, offset 0x5fb\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xbf},\n\t// Block 0xc5, offset 0x604\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb5},\n\t{value: 0x3808, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0xc6, offset 0x60f\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0xbf},\n\t// Block 0xc7, offset 0x612\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9f},\n\t{value: 0x3008, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xaa},\n\t{value: 0x3b08, lo: 0xab, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0018, lo: 0xba, hi: 0xbf},\n\t// Block 0xc8, offset 0x61e\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xae},\n\t{value: 0x3308, lo: 0xaf, hi: 0xb7},\n\t{value: 0x3008, lo: 0xb8, hi: 0xb8},\n\t{value: 0x3b08, lo: 0xb9, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0xc9, offset 0x627\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x049d, lo: 0xa0, hi: 0xbf},\n\t// Block 0xca, offset 0x62a\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0xcb, offset 0x62f\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3008, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x83},\n\t{value: 0x0018, lo: 0x84, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xcc, offset 0x638\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xa9},\n\t{value: 0x0008, lo: 0xaa, hi: 0xbf},\n\t// Block 0xcd, offset 0x63d\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x90},\n\t{value: 0x3008, lo: 0x91, hi: 0x93},\n\t{value: 0x3308, lo: 0x94, hi: 0x97},\n\t{value: 0x0040, lo: 0x98, hi: 0x99},\n\t{value: 0x3308, lo: 0x9a, hi: 0x9b},\n\t{value: 0x3008, lo: 0x9c, hi: 0x9f},\n\t{value: 0x3b08, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x0018, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0008, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3008, lo: 0xa4, hi: 0xa4},\n\t{value: 0x0040, lo: 0xa5, hi: 0xbf},\n\t// Block 0xce, offset 0x64a\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3b08, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb8},\n\t{value: 0x3008, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xba},\n\t{value: 0x3308, lo: 0xbb, hi: 0xbe},\n\t{value: 0x0018, lo: 0xbf, hi: 0xbf},\n\t// Block 0xcf, offset 0x655\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x3b08, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x90},\n\t{value: 0x3308, lo: 0x91, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x98},\n\t{value: 0x3308, lo: 0x99, hi: 0x9b},\n\t{value: 0x0008, lo: 0x9c, hi: 0xbf},\n\t// Block 0xd0, offset 0x65e\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x3308, lo: 0x8a, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x98},\n\t{value: 0x3b08, lo: 0x99, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9c},\n\t{value: 0x0008, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0xa2},\n\t{value: 0x0040, lo: 0xa3, hi: 0xbf},\n\t// Block 0xd1, offset 0x668\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0xd2, offset 0x66b\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xd3, offset 0x675\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xbf},\n\t// Block 0xd4, offset 0x67e\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xa9},\n\t{value: 0x3308, lo: 0xaa, hi: 0xb0},\n\t{value: 0x3008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0xd5, offset 0x68a\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0xd6, offset 0x697\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x3308, lo: 0x80, hi: 0x83},\n\t{value: 0x3b08, lo: 0x84, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0008, lo: 0xa7, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0008, lo: 0xaa, hi: 0xbf},\n\t// Block 0xd7, offset 0x6a4\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x3008, lo: 0x8a, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x8f},\n\t{value: 0x3308, lo: 0x90, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0x92},\n\t{value: 0x3008, lo: 0x93, hi: 0x94},\n\t{value: 0x3308, lo: 0x95, hi: 0x95},\n\t{value: 0x3008, lo: 0x96, hi: 0x96},\n\t{value: 0x3b08, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xbf},\n\t// Block 0xd8, offset 0x6b2\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0xd9, offset 0x6b9\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xbf},\n\t// Block 0xda, offset 0x6bd\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbe},\n\t{value: 0x0018, lo: 0xbf, hi: 0xbf},\n\t// Block 0xdb, offset 0x6c1\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xdc, offset 0x6c4\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0xdd, offset 0x6c9\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0xbf},\n\t// Block 0xde, offset 0x6cc\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0340, lo: 0xb0, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0xdf, offset 0x6d1\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0xbf},\n\t// Block 0xe0, offset 0x6d4\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0xe1, offset 0x6db\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0018, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0xe2, offset 0x6e2\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0xe3, offset 0x6e6\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0018, lo: 0x84, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0008, lo: 0xa3, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbf},\n\t// Block 0xe4, offset 0x6f1\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0xbf},\n\t// Block 0xe5, offset 0x6f4\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0xe105, lo: 0x80, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0xe6, offset 0x6f7\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0xbf},\n\t// Block 0xe7, offset 0x6fa\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8e},\n\t{value: 0x3308, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x90},\n\t{value: 0x3008, lo: 0x91, hi: 0xbf},\n\t// Block 0xe8, offset 0x700\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x3008, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8e},\n\t{value: 0x3308, lo: 0x8f, hi: 0x92},\n\t{value: 0x0008, lo: 0x93, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0xe9, offset 0x706\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa1},\n\t{value: 0x0018, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0008, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3308, lo: 0xa4, hi: 0xa4},\n\t{value: 0x0040, lo: 0xa5, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0xea, offset 0x70f\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0xeb, offset 0x712\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0xbf},\n\t// Block 0xec, offset 0x715\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0xbf},\n\t// Block 0xed, offset 0x718\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xbf},\n\t// Block 0xee, offset 0x71b\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x92},\n\t{value: 0x0040, lo: 0x93, hi: 0xa3},\n\t{value: 0x0008, lo: 0xa4, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0xef, offset 0x722\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0xf0, offset 0x725\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0xf1, offset 0x72a\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0018, lo: 0x9c, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x03c0, lo: 0xa0, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xbf},\n\t// Block 0xf2, offset 0x734\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0xf3, offset 0x737\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa8},\n\t{value: 0x0018, lo: 0xa9, hi: 0xbf},\n\t// Block 0xf4, offset 0x73b\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0018, lo: 0x80, hi: 0x9d},\n\t{value: 0x2211, lo: 0x9e, hi: 0x9e},\n\t{value: 0x2219, lo: 0x9f, hi: 0x9f},\n\t{value: 0x2221, lo: 0xa0, hi: 0xa0},\n\t{value: 0x2229, lo: 0xa1, hi: 0xa1},\n\t{value: 0x2231, lo: 0xa2, hi: 0xa2},\n\t{value: 0x2239, lo: 0xa3, hi: 0xa3},\n\t{value: 0x2241, lo: 0xa4, hi: 0xa4},\n\t{value: 0x3018, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3318, lo: 0xa7, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xac},\n\t{value: 0x3018, lo: 0xad, hi: 0xb2},\n\t{value: 0x0340, lo: 0xb3, hi: 0xba},\n\t{value: 0x3318, lo: 0xbb, hi: 0xbf},\n\t// Block 0xf5, offset 0x74a\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3318, lo: 0x80, hi: 0x82},\n\t{value: 0x0018, lo: 0x83, hi: 0x84},\n\t{value: 0x3318, lo: 0x85, hi: 0x8b},\n\t{value: 0x0018, lo: 0x8c, hi: 0xa9},\n\t{value: 0x3318, lo: 0xaa, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xba},\n\t{value: 0x2249, lo: 0xbb, hi: 0xbb},\n\t{value: 0x2251, lo: 0xbc, hi: 0xbc},\n\t{value: 0x2259, lo: 0xbd, hi: 0xbd},\n\t{value: 0x2261, lo: 0xbe, hi: 0xbe},\n\t{value: 0x2269, lo: 0xbf, hi: 0xbf},\n\t// Block 0xf6, offset 0x756\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x2271, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xbf},\n\t// Block 0xf7, offset 0x75a\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x81},\n\t{value: 0x3318, lo: 0x82, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0xbf},\n\t// Block 0xf8, offset 0x75f\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0xf9, offset 0x763\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0xfa, offset 0x768\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3308, lo: 0x80, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xba},\n\t{value: 0x3308, lo: 0xbb, hi: 0xbf},\n\t// Block 0xfb, offset 0x76c\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x3308, lo: 0x80, hi: 0xac},\n\t{value: 0x0018, lo: 0xad, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0xfc, offset 0x771\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa0},\n\t{value: 0x3308, lo: 0xa1, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0xfd, offset 0x77a\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3308, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x3308, lo: 0x88, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3308, lo: 0xa3, hi: 0xa4},\n\t{value: 0x0040, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xbf},\n\t// Block 0xfe, offset 0x785\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0008, lo: 0xb7, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0xff, offset 0x78b\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0018, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0xbf},\n\t// Block 0x100, offset 0x791\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbe},\n\t{value: 0x0018, lo: 0xbf, hi: 0xbf},\n\t// Block 0x101, offset 0x797\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0808, lo: 0x80, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x86},\n\t{value: 0x0818, lo: 0x87, hi: 0x8f},\n\t{value: 0x3308, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0xbf},\n\t// Block 0x102, offset 0x79d\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0a08, lo: 0x80, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x8a},\n\t{value: 0x0b08, lo: 0x8b, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0818, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0x103, offset 0x7a6\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0xb0},\n\t{value: 0x0818, lo: 0xb1, hi: 0xbf},\n\t// Block 0x104, offset 0x7a9\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0818, lo: 0x80, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x105, offset 0x7ac\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0818, lo: 0x81, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x106, offset 0x7b0\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0x107, offset 0x7b4\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x108, offset 0x7b8\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xb0},\n\t{value: 0x0018, lo: 0xb1, hi: 0xbf},\n\t// Block 0x109, offset 0x7be\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x0018, lo: 0x91, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0x10a, offset 0x7c4\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x8f},\n\t{value: 0x2491, lo: 0x90, hi: 0x90},\n\t{value: 0x0018, lo: 0x91, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xbf},\n\t// Block 0x10b, offset 0x7c9\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0xa5},\n\t{value: 0x0018, lo: 0xa6, hi: 0xbf},\n\t// Block 0x10c, offset 0x7cc\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x2611, lo: 0x80, hi: 0x80},\n\t{value: 0x2619, lo: 0x81, hi: 0x81},\n\t{value: 0x2621, lo: 0x82, hi: 0x82},\n\t{value: 0x2629, lo: 0x83, hi: 0x83},\n\t{value: 0x2631, lo: 0x84, hi: 0x84},\n\t{value: 0x2639, lo: 0x85, hi: 0x85},\n\t{value: 0x2641, lo: 0x86, hi: 0x86},\n\t{value: 0x2649, lo: 0x87, hi: 0x87},\n\t{value: 0x2651, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0x2659, lo: 0x90, hi: 0x90},\n\t{value: 0x2661, lo: 0x91, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xbf},\n\t// Block 0x10d, offset 0x7dc\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x97},\n\t{value: 0x0040, lo: 0x98, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x10e, offset 0x7e3\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0x10f, offset 0x7e6\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xbf},\n\t// Block 0x110, offset 0x7eb\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0x111, offset 0x7ef\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbf},\n\t// Block 0x112, offset 0x7f5\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0x113, offset 0x7fc\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0018, lo: 0xba, hi: 0xbf},\n\t// Block 0x114, offset 0x800\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0xbf},\n\t// Block 0x115, offset 0x804\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x116, offset 0x80d\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x117, offset 0x814\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0xbf},\n\t// Block 0x118, offset 0x819\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x92},\n\t{value: 0x0040, lo: 0x93, hi: 0x93},\n\t{value: 0x0018, lo: 0x94, hi: 0xbf},\n\t// Block 0x119, offset 0x81d\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0018, lo: 0x80, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0xaf},\n\t{value: 0x06e1, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0049, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0029, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0031, lo: 0xb3, hi: 0xb3},\n\t{value: 0x06e9, lo: 0xb4, hi: 0xb4},\n\t{value: 0x06f1, lo: 0xb5, hi: 0xb5},\n\t{value: 0x06f9, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0701, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0709, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0711, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x11a, offset 0x82b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0xbf},\n\t// Block 0x11b, offset 0x82e\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x11c, offset 0x831\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x11d, offset 0x835\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x11e, offset 0x839\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xa0},\n\t{value: 0x0040, lo: 0xa1, hi: 0xbf},\n\t// Block 0x11f, offset 0x83c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0xbf},\n\t// Block 0x120, offset 0x83f\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0340, lo: 0x81, hi: 0x81},\n\t{value: 0x0040, lo: 0x82, hi: 0x9f},\n\t{value: 0x0340, lo: 0xa0, hi: 0xbf},\n\t// Block 0x121, offset 0x844\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0340, lo: 0x80, hi: 0xbf},\n\t// Block 0x122, offset 0x846\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x33c0, lo: 0x80, hi: 0xbf},\n\t// Block 0x123, offset 0x848\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x33c0, lo: 0x80, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n}\n\n// Total table size 44953 bytes (43KiB); checksum: D51909DD\n"
  },
  {
    "path": "vendor/golang.org/x/net/idna/tables15.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n//go:build go1.21\n\npackage idna\n\n// UnicodeVersion is the Unicode version from which the tables in this package are derived.\nconst UnicodeVersion = \"15.0.0\"\n\nvar mappings string = \"\" + // Size: 6704 bytes\n\t\"  ̈a ̄23 ́ ̧1o1⁄41⁄23⁄4i̇l·ʼnsdžⱥⱦhjrwy ̆ ̇ ̊ ̨ ̃ ̋lẍ́ ι; ̈́եւاٴوٴۇٴيٴक\" +\n\t\"़ख़ग़ज़ड़ढ़फ़य़ড়ঢ়য়ਲ਼ਸ਼ਖ਼ਗ਼ਜ਼ਫ਼ଡ଼ଢ଼ําໍາຫນຫມགྷཌྷདྷབྷཛྷཀྵཱཱིུྲྀྲཱྀླྀླཱ\" +\n\t\"ཱྀྀྒྷྜྷྡྷྦྷྫྷྐྵвдостъѣæbdeǝgikmnȣptuɐɑəɛɜŋɔɯvβγδφχρнɒcɕðfɟɡɥɨɩɪʝɭʟɱɰɲɳ\" +\n\t\"ɴɵɸʂʃƫʉʊʋʌzʐʑʒθssάέήίόύώἀιἁιἂιἃιἄιἅιἆιἇιἠιἡιἢιἣιἤιἥιἦιἧιὠιὡιὢιὣιὤιὥιὦιὧ\" +\n\t\"ιὰιαιάιᾶιι ̈͂ὴιηιήιῆι ̓̀ ̓́ ̓͂ΐ ̔̀ ̔́ ̔͂ΰ ̈̀`ὼιωιώιῶι′′′′′‵‵‵‵‵!!???!!?\" +\n\t\"′′′′0456789+=()rsħnoqsmtmωåאבגדπ1⁄71⁄91⁄101⁄32⁄31⁄52⁄53⁄54⁄51⁄65⁄61⁄83\" +\n\t\"⁄85⁄87⁄81⁄iiivviviiiixxi0⁄3∫∫∫∫∫∮∮∮∮∮1011121314151617181920(10)(11)(12\" +\n\t\")(13)(14)(15)(16)(17)(18)(19)(20)∫∫∫∫==⫝̸ɫɽȿɀ. ゙ ゚よりコト(ᄀ)(ᄂ)(ᄃ)(ᄅ)(ᄆ)(ᄇ)\" +\n\t\"(ᄉ)(ᄋ)(ᄌ)(ᄎ)(ᄏ)(ᄐ)(ᄑ)(ᄒ)(가)(나)(다)(라)(마)(바)(사)(아)(자)(차)(카)(타)(파)(하)(주)(오전\" +\n\t\")(오후)(一)(二)(三)(四)(五)(六)(七)(八)(九)(十)(月)(火)(水)(木)(金)(土)(日)(株)(有)(社)(名)(特)(\" +\n\t\"財)(祝)(労)(代)(呼)(学)(監)(企)(資)(協)(祭)(休)(自)(至)21222324252627282930313233343\" +\n\t\"5참고주의3637383940414243444546474849501月2月3月4月5月6月7月8月9月10月11月12月hgev令和アパート\" +\n\t\"アルファアンペアアールイニングインチウォンエスクードエーカーオンスオームカイリカラットカロリーガロンガンマギガギニーキュリーギルダーキロキロ\" +\n\t\"グラムキロメートルキロワットグラムグラムトンクルゼイロクローネケースコルナコーポサイクルサンチームシリングセンチセントダースデシドルトンナノ\" +\n\t\"ノットハイツパーセントパーツバーレルピアストルピクルピコビルファラッドフィートブッシェルフランヘクタールペソペニヒヘルツペンスページベータポ\" +\n\t\"イントボルトホンポンドホールホーンマイクロマイルマッハマルクマンションミクロンミリミリバールメガメガトンメートルヤードヤールユアンリットルリ\" +\n\t\"ラルピールーブルレムレントゲンワット0点1点2点3点4点5点6点7点8点9点10点11点12点13点14点15点16点17点18点19点20\" +\n\t\"点21点22点23点24点daauovpcdmiu平成昭和大正明治株式会社panamakakbmbgbkcalpfnfmgkghzmldlk\" +\n\t\"lfmnmmmcmkmm2m3m∕sm∕s2rad∕srad∕s2psnsmspvnvmvkvpwnwmwkwbqcccdc∕kgdbgyhah\" +\n\t\"pinkkktlmlnlxphprsrsvwbv∕ma∕m1日2日3日4日5日6日7日8日9日10日11日12日13日14日15日16日17日1\" +\n\t\"8日19日20日21日22日23日24日25日26日27日28日29日30日31日ьɦɬʞʇœʍ𤋮𢡊𢡄𣏕𥉉𥳐𧻓fffiflstմնմեմիվնմ\" +\n\t\"խיִײַעהכלםרתשׁשׂשּׁשּׂאַאָאּבּגּדּהּוּזּטּיּךּכּלּמּנּסּףּפּצּקּרּשּתּו\" +\n\t\"ֹבֿכֿפֿאלٱٻپڀٺٿٹڤڦڄڃچڇڍڌڎڈژڑکگڳڱںڻۀہھےۓڭۇۆۈۋۅۉېىئائەئوئۇئۆئۈئېئىیئجئحئم\" +\n\t\"ئيبجبحبخبمبىبيتجتحتختمتىتيثجثمثىثيجحجمحجحمخجخحخمسجسحسخسمصحصمضجضحضخضمطحط\" +\n\t\"مظمعجعمغجغمفجفحفخفمفىفيقحقمقىقيكاكجكحكخكلكمكىكيلجلحلخلملىليمجمحمخمممىمي\" +\n\t\"نجنحنخنمنىنيهجهمهىهييجيحيخيميىييذٰرٰىٰ ٌّ ٍّ َّ ُّ ِّ ّٰئرئزئنبربزبنترت\" +\n\t\"زتنثرثزثنمانرنزننيريزينئخئهبهتهصخلهنههٰيهثهسهشمشهـَّـُّـِّطىطيعىعيغىغيس\" +\n\t\"ىسيشىشيحىحيجىجيخىخيصىصيضىضيشجشحشخشرسرصرضراًتجمتحجتحمتخمتمجتمحتمخجمححميح\" +\n\t\"مىسحجسجحسجىسمحسمجسممصححصممشحمشجيشمخشممضحىضخمطمحطممطميعجمعممعمىغممغميغمى\" +\n\t\"فخمقمحقمملحملحيلحىلججلخملمحمحجمحممحيمجحمجممخجمخممجخهمجهممنحمنحىنجمنجىنم\" +\n\t\"ينمىيممبخيتجيتجىتخيتخىتميتمىجميجحىجمىسخىصحيشحيضحيلجيلمييحييجييميمميقمين\" +\n\t\"حيعميكمينجحمخيلجمكممجحيحجيمجيفميبحيسخينجيصلےقلےاللهاكبرمحمدصلعمرسولعليه\" +\n\t\"وسلمصلىصلى الله عليه وسلمجل جلالهریال,:!?_{}[]#&*-<>\\\\$%@ـًـَـُـِـّـْءآ\" +\n\t\"أؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهويلآلألإلا\\x22'/^|~¢£¬¦¥ːˑʙɓʣꭦʥʤɖɗᶑɘɞʩɤɢ\" +\n\t\"ɠʛʜɧʄʪʫꞎɮʎøɶɷɺɾʀʨʦꭧʧʈⱱʏʡʢʘǀǁǂ𝅗𝅥𝅘𝅥𝅘𝅥𝅮𝅘𝅥𝅯𝅘𝅥𝅰𝅘𝅥𝅱𝅘𝅥𝅲𝆹𝅥𝆺𝅥𝆹𝅥𝅮𝆺𝅥𝅮𝆹𝅥𝅯𝆺𝅥𝅯ıȷαεζηκ\" +\n\t\"λμνξοστυψ∇∂ϝабгежзиклмпруфхцчшыэюꚉәіјөүӏґѕџҫꙑұٮڡٯ0,1,2,3,4,5,6,7,8,9,(a\" +\n\t\")(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)(s)(t)(u)(v)(w)(x)(y\" +\n\t\")(z)〔s〕wzhvsdppvwcmcmdmrdjほかココサ手字双デ二多解天交映無料前後再新初終生販声吹演投捕一三遊左中右指走打禁空合満有月申\" +\n\t\"割営配〔本〕〔三〕〔二〕〔安〕〔点〕〔打〕〔盗〕〔勝〕〔敗〕得可丽丸乁你侮侻倂偺備僧像㒞免兔兤具㒹內冗冤仌冬况凵刃㓟刻剆剷㔕勇勉勤勺包匆北卉\" +\n\t\"卑博即卽卿灰及叟叫叱吆咞吸呈周咢哶唐啓啣善喙喫喳嗂圖嘆圗噑噴切壮城埴堍型堲報墬売壷夆夢奢姬娛娧姘婦㛮嬈嬾寃寘寧寳寿将尢㞁屠屮峀岍嵃嵮嵫嵼巡巢\" +\n\t\"㠯巽帨帽幩㡢㡼庰庳庶廊廾舁弢㣇形彫㣣徚忍志忹悁㤺㤜悔惇慈慌慎慺憎憲憤憯懞懲懶成戛扝抱拔捐挽拼捨掃揤搢揅掩㨮摩摾撝摷㩬敏敬旣書晉㬙暑㬈㫤冒冕最\" +\n\t\"暜肭䏙朗望朡杞杓㭉柺枅桒梅梎栟椔㮝楂榣槪檨櫛㰘次歔㱎歲殟殺殻汎沿泍汧洖派海流浩浸涅洴港湮㴳滋滇淹潮濆瀹瀞瀛㶖灊災灷炭煅熜爨爵牐犀犕獺王㺬玥㺸\" +\n\t\"瑇瑜瑱璅瓊㼛甤甾異瘐㿼䀈直眞真睊䀹瞋䁆䂖硎碌磌䃣祖福秫䄯穀穊穏䈂篆築䈧糒䊠糨糣紀絣䌁緇縂繅䌴䍙罺羕翺者聠聰䏕育脃䐋脾媵舄辞䑫芑芋芝劳花芳芽苦\" +\n\t\"若茝荣莭茣莽菧著荓菊菌菜䔫蓱蓳蔖蕤䕝䕡䕫虐虜虧虩蚩蚈蜎蛢蝹蜨蝫螆蟡蠁䗹衠衣裗裞䘵裺㒻䚾䛇誠諭變豕貫賁贛起跋趼跰軔輸邔郱鄑鄛鈸鋗鋘鉼鏹鐕開䦕閷\" +\n\t\"䧦雃嶲霣䩮䩶韠䪲頋頩飢䬳餩馧駂駾䯎鬒鱀鳽䳎䳭鵧䳸麻䵖黹黾鼅鼏鼖鼻\"\n\nvar mappingIndex = []uint16{ // 1729 elements\n\t// Entry 0 - 3F\n\t0x0000, 0x0000, 0x0001, 0x0004, 0x0005, 0x0008, 0x0009, 0x000a,\n\t0x000d, 0x0010, 0x0011, 0x0012, 0x0017, 0x001c, 0x0021, 0x0024,\n\t0x0027, 0x002a, 0x002b, 0x002e, 0x0031, 0x0034, 0x0035, 0x0036,\n\t0x0037, 0x0038, 0x0039, 0x003c, 0x003f, 0x0042, 0x0045, 0x0048,\n\t0x004b, 0x004c, 0x004d, 0x0051, 0x0054, 0x0055, 0x005a, 0x005e,\n\t0x0062, 0x0066, 0x006a, 0x006e, 0x0074, 0x007a, 0x0080, 0x0086,\n\t0x008c, 0x0092, 0x0098, 0x009e, 0x00a4, 0x00aa, 0x00b0, 0x00b6,\n\t0x00bc, 0x00c2, 0x00c8, 0x00ce, 0x00d4, 0x00da, 0x00e0, 0x00e6,\n\t// Entry 40 - 7F\n\t0x00ec, 0x00f2, 0x00f8, 0x00fe, 0x0104, 0x010a, 0x0110, 0x0116,\n\t0x011c, 0x0122, 0x0128, 0x012e, 0x0137, 0x013d, 0x0146, 0x014c,\n\t0x0152, 0x0158, 0x015e, 0x0164, 0x016a, 0x0170, 0x0172, 0x0174,\n\t0x0176, 0x0178, 0x017a, 0x017c, 0x017e, 0x0180, 0x0181, 0x0182,\n\t0x0183, 0x0185, 0x0186, 0x0187, 0x0188, 0x0189, 0x018a, 0x018c,\n\t0x018d, 0x018e, 0x018f, 0x0191, 0x0193, 0x0195, 0x0197, 0x0199,\n\t0x019b, 0x019d, 0x019f, 0x01a0, 0x01a2, 0x01a4, 0x01a6, 0x01a8,\n\t0x01aa, 0x01ac, 0x01ae, 0x01b0, 0x01b1, 0x01b3, 0x01b5, 0x01b6,\n\t// Entry 80 - BF\n\t0x01b8, 0x01ba, 0x01bc, 0x01be, 0x01c0, 0x01c2, 0x01c4, 0x01c6,\n\t0x01c8, 0x01ca, 0x01cc, 0x01ce, 0x01d0, 0x01d2, 0x01d4, 0x01d6,\n\t0x01d8, 0x01da, 0x01dc, 0x01de, 0x01e0, 0x01e2, 0x01e4, 0x01e5,\n\t0x01e7, 0x01e9, 0x01eb, 0x01ed, 0x01ef, 0x01f1, 0x01f3, 0x01f5,\n\t0x01f7, 0x01f9, 0x01fb, 0x01fd, 0x0202, 0x0207, 0x020c, 0x0211,\n\t0x0216, 0x021b, 0x0220, 0x0225, 0x022a, 0x022f, 0x0234, 0x0239,\n\t0x023e, 0x0243, 0x0248, 0x024d, 0x0252, 0x0257, 0x025c, 0x0261,\n\t0x0266, 0x026b, 0x0270, 0x0275, 0x027a, 0x027e, 0x0282, 0x0287,\n\t// Entry C0 - FF\n\t0x0289, 0x028e, 0x0293, 0x0297, 0x029b, 0x02a0, 0x02a5, 0x02aa,\n\t0x02af, 0x02b1, 0x02b6, 0x02bb, 0x02c0, 0x02c2, 0x02c7, 0x02c8,\n\t0x02cd, 0x02d1, 0x02d5, 0x02da, 0x02e0, 0x02e9, 0x02ef, 0x02f8,\n\t0x02fa, 0x02fc, 0x02fe, 0x0300, 0x030c, 0x030d, 0x030e, 0x030f,\n\t0x0310, 0x0311, 0x0312, 0x0313, 0x0314, 0x0315, 0x0316, 0x0317,\n\t0x0319, 0x031b, 0x031d, 0x031e, 0x0320, 0x0322, 0x0324, 0x0326,\n\t0x0328, 0x032a, 0x032c, 0x032e, 0x0330, 0x0335, 0x033a, 0x0340,\n\t0x0345, 0x034a, 0x034f, 0x0354, 0x0359, 0x035e, 0x0363, 0x0368,\n\t// Entry 100 - 13F\n\t0x036d, 0x0372, 0x0377, 0x037c, 0x0380, 0x0382, 0x0384, 0x0386,\n\t0x038a, 0x038c, 0x038e, 0x0393, 0x0399, 0x03a2, 0x03a8, 0x03b1,\n\t0x03b3, 0x03b5, 0x03b7, 0x03b9, 0x03bb, 0x03bd, 0x03bf, 0x03c1,\n\t0x03c3, 0x03c5, 0x03c7, 0x03cb, 0x03cf, 0x03d3, 0x03d7, 0x03db,\n\t0x03df, 0x03e3, 0x03e7, 0x03eb, 0x03ef, 0x03f3, 0x03ff, 0x0401,\n\t0x0406, 0x0408, 0x040a, 0x040c, 0x040e, 0x040f, 0x0413, 0x0417,\n\t0x041d, 0x0423, 0x0428, 0x042d, 0x0432, 0x0437, 0x043c, 0x0441,\n\t0x0446, 0x044b, 0x0450, 0x0455, 0x045a, 0x045f, 0x0464, 0x0469,\n\t// Entry 140 - 17F\n\t0x046e, 0x0473, 0x0478, 0x047d, 0x0482, 0x0487, 0x048c, 0x0491,\n\t0x0496, 0x049b, 0x04a0, 0x04a5, 0x04aa, 0x04af, 0x04b4, 0x04bc,\n\t0x04c4, 0x04c9, 0x04ce, 0x04d3, 0x04d8, 0x04dd, 0x04e2, 0x04e7,\n\t0x04ec, 0x04f1, 0x04f6, 0x04fb, 0x0500, 0x0505, 0x050a, 0x050f,\n\t0x0514, 0x0519, 0x051e, 0x0523, 0x0528, 0x052d, 0x0532, 0x0537,\n\t0x053c, 0x0541, 0x0546, 0x054b, 0x0550, 0x0555, 0x055a, 0x055f,\n\t0x0564, 0x0569, 0x056e, 0x0573, 0x0578, 0x057a, 0x057c, 0x057e,\n\t0x0580, 0x0582, 0x0584, 0x0586, 0x0588, 0x058a, 0x058c, 0x058e,\n\t// Entry 180 - 1BF\n\t0x0590, 0x0592, 0x0594, 0x0596, 0x059c, 0x05a2, 0x05a4, 0x05a6,\n\t0x05a8, 0x05aa, 0x05ac, 0x05ae, 0x05b0, 0x05b2, 0x05b4, 0x05b6,\n\t0x05b8, 0x05ba, 0x05bc, 0x05be, 0x05c0, 0x05c4, 0x05c8, 0x05cc,\n\t0x05d0, 0x05d4, 0x05d8, 0x05dc, 0x05e0, 0x05e4, 0x05e9, 0x05ee,\n\t0x05f3, 0x05f5, 0x05f7, 0x05fd, 0x0609, 0x0615, 0x0621, 0x062a,\n\t0x0636, 0x063f, 0x0648, 0x0657, 0x0663, 0x066c, 0x0675, 0x067e,\n\t0x068a, 0x0696, 0x069f, 0x06a8, 0x06ae, 0x06b7, 0x06c3, 0x06cf,\n\t0x06d5, 0x06e4, 0x06f6, 0x0705, 0x070e, 0x071d, 0x072c, 0x0738,\n\t// Entry 1C0 - 1FF\n\t0x0741, 0x074a, 0x0753, 0x075f, 0x076e, 0x077a, 0x0783, 0x078c,\n\t0x0795, 0x079b, 0x07a1, 0x07a7, 0x07ad, 0x07b6, 0x07bf, 0x07ce,\n\t0x07d7, 0x07e3, 0x07f2, 0x07fb, 0x0801, 0x0807, 0x0816, 0x0822,\n\t0x0831, 0x083a, 0x0849, 0x084f, 0x0858, 0x0861, 0x086a, 0x0873,\n\t0x087c, 0x0888, 0x0891, 0x0897, 0x08a0, 0x08a9, 0x08b2, 0x08be,\n\t0x08c7, 0x08d0, 0x08d9, 0x08e8, 0x08f4, 0x08fa, 0x0909, 0x090f,\n\t0x091b, 0x0927, 0x0930, 0x0939, 0x0942, 0x094e, 0x0954, 0x095d,\n\t0x0969, 0x096f, 0x097e, 0x0987, 0x098b, 0x098f, 0x0993, 0x0997,\n\t// Entry 200 - 23F\n\t0x099b, 0x099f, 0x09a3, 0x09a7, 0x09ab, 0x09af, 0x09b4, 0x09b9,\n\t0x09be, 0x09c3, 0x09c8, 0x09cd, 0x09d2, 0x09d7, 0x09dc, 0x09e1,\n\t0x09e6, 0x09eb, 0x09f0, 0x09f5, 0x09fa, 0x09fc, 0x09fe, 0x0a00,\n\t0x0a02, 0x0a04, 0x0a06, 0x0a0c, 0x0a12, 0x0a18, 0x0a1e, 0x0a2a,\n\t0x0a2c, 0x0a2e, 0x0a30, 0x0a32, 0x0a34, 0x0a36, 0x0a38, 0x0a3c,\n\t0x0a3e, 0x0a40, 0x0a42, 0x0a44, 0x0a46, 0x0a48, 0x0a4a, 0x0a4c,\n\t0x0a4e, 0x0a50, 0x0a52, 0x0a54, 0x0a56, 0x0a58, 0x0a5a, 0x0a5f,\n\t0x0a65, 0x0a6c, 0x0a74, 0x0a76, 0x0a78, 0x0a7a, 0x0a7c, 0x0a7e,\n\t// Entry 240 - 27F\n\t0x0a80, 0x0a82, 0x0a84, 0x0a86, 0x0a88, 0x0a8a, 0x0a8c, 0x0a8e,\n\t0x0a90, 0x0a96, 0x0a98, 0x0a9a, 0x0a9c, 0x0a9e, 0x0aa0, 0x0aa2,\n\t0x0aa4, 0x0aa6, 0x0aa8, 0x0aaa, 0x0aac, 0x0aae, 0x0ab0, 0x0ab2,\n\t0x0ab4, 0x0ab9, 0x0abe, 0x0ac2, 0x0ac6, 0x0aca, 0x0ace, 0x0ad2,\n\t0x0ad6, 0x0ada, 0x0ade, 0x0ae2, 0x0ae7, 0x0aec, 0x0af1, 0x0af6,\n\t0x0afb, 0x0b00, 0x0b05, 0x0b0a, 0x0b0f, 0x0b14, 0x0b19, 0x0b1e,\n\t0x0b23, 0x0b28, 0x0b2d, 0x0b32, 0x0b37, 0x0b3c, 0x0b41, 0x0b46,\n\t0x0b4b, 0x0b50, 0x0b52, 0x0b54, 0x0b56, 0x0b58, 0x0b5a, 0x0b5c,\n\t// Entry 280 - 2BF\n\t0x0b5e, 0x0b62, 0x0b66, 0x0b6a, 0x0b6e, 0x0b72, 0x0b76, 0x0b7a,\n\t0x0b7c, 0x0b7e, 0x0b80, 0x0b82, 0x0b86, 0x0b8a, 0x0b8e, 0x0b92,\n\t0x0b96, 0x0b9a, 0x0b9e, 0x0ba0, 0x0ba2, 0x0ba4, 0x0ba6, 0x0ba8,\n\t0x0baa, 0x0bac, 0x0bb0, 0x0bb4, 0x0bba, 0x0bc0, 0x0bc4, 0x0bc8,\n\t0x0bcc, 0x0bd0, 0x0bd4, 0x0bd8, 0x0bdc, 0x0be0, 0x0be4, 0x0be8,\n\t0x0bec, 0x0bf0, 0x0bf4, 0x0bf8, 0x0bfc, 0x0c00, 0x0c04, 0x0c08,\n\t0x0c0c, 0x0c10, 0x0c14, 0x0c18, 0x0c1c, 0x0c20, 0x0c24, 0x0c28,\n\t0x0c2c, 0x0c30, 0x0c34, 0x0c36, 0x0c38, 0x0c3a, 0x0c3c, 0x0c3e,\n\t// Entry 2C0 - 2FF\n\t0x0c40, 0x0c42, 0x0c44, 0x0c46, 0x0c48, 0x0c4a, 0x0c4c, 0x0c4e,\n\t0x0c50, 0x0c52, 0x0c54, 0x0c56, 0x0c58, 0x0c5a, 0x0c5c, 0x0c5e,\n\t0x0c60, 0x0c62, 0x0c64, 0x0c66, 0x0c68, 0x0c6a, 0x0c6c, 0x0c6e,\n\t0x0c70, 0x0c72, 0x0c74, 0x0c76, 0x0c78, 0x0c7a, 0x0c7c, 0x0c7e,\n\t0x0c80, 0x0c82, 0x0c86, 0x0c8a, 0x0c8e, 0x0c92, 0x0c96, 0x0c9a,\n\t0x0c9e, 0x0ca2, 0x0ca4, 0x0ca8, 0x0cac, 0x0cb0, 0x0cb4, 0x0cb8,\n\t0x0cbc, 0x0cc0, 0x0cc4, 0x0cc8, 0x0ccc, 0x0cd0, 0x0cd4, 0x0cd8,\n\t0x0cdc, 0x0ce0, 0x0ce4, 0x0ce8, 0x0cec, 0x0cf0, 0x0cf4, 0x0cf8,\n\t// Entry 300 - 33F\n\t0x0cfc, 0x0d00, 0x0d04, 0x0d08, 0x0d0c, 0x0d10, 0x0d14, 0x0d18,\n\t0x0d1c, 0x0d20, 0x0d24, 0x0d28, 0x0d2c, 0x0d30, 0x0d34, 0x0d38,\n\t0x0d3c, 0x0d40, 0x0d44, 0x0d48, 0x0d4c, 0x0d50, 0x0d54, 0x0d58,\n\t0x0d5c, 0x0d60, 0x0d64, 0x0d68, 0x0d6c, 0x0d70, 0x0d74, 0x0d78,\n\t0x0d7c, 0x0d80, 0x0d84, 0x0d88, 0x0d8c, 0x0d90, 0x0d94, 0x0d98,\n\t0x0d9c, 0x0da0, 0x0da4, 0x0da8, 0x0dac, 0x0db0, 0x0db4, 0x0db8,\n\t0x0dbc, 0x0dc0, 0x0dc4, 0x0dc8, 0x0dcc, 0x0dd0, 0x0dd4, 0x0dd8,\n\t0x0ddc, 0x0de0, 0x0de4, 0x0de8, 0x0dec, 0x0df0, 0x0df4, 0x0df8,\n\t// Entry 340 - 37F\n\t0x0dfc, 0x0e00, 0x0e04, 0x0e08, 0x0e0c, 0x0e10, 0x0e14, 0x0e18,\n\t0x0e1d, 0x0e22, 0x0e27, 0x0e2c, 0x0e31, 0x0e36, 0x0e3a, 0x0e3e,\n\t0x0e42, 0x0e46, 0x0e4a, 0x0e4e, 0x0e52, 0x0e56, 0x0e5a, 0x0e5e,\n\t0x0e62, 0x0e66, 0x0e6a, 0x0e6e, 0x0e72, 0x0e76, 0x0e7a, 0x0e7e,\n\t0x0e82, 0x0e86, 0x0e8a, 0x0e8e, 0x0e92, 0x0e96, 0x0e9a, 0x0e9e,\n\t0x0ea2, 0x0ea6, 0x0eaa, 0x0eae, 0x0eb2, 0x0eb6, 0x0ebc, 0x0ec2,\n\t0x0ec8, 0x0ecc, 0x0ed0, 0x0ed4, 0x0ed8, 0x0edc, 0x0ee0, 0x0ee4,\n\t0x0ee8, 0x0eec, 0x0ef0, 0x0ef4, 0x0ef8, 0x0efc, 0x0f00, 0x0f04,\n\t// Entry 380 - 3BF\n\t0x0f08, 0x0f0c, 0x0f10, 0x0f14, 0x0f18, 0x0f1c, 0x0f20, 0x0f24,\n\t0x0f28, 0x0f2c, 0x0f30, 0x0f34, 0x0f38, 0x0f3e, 0x0f44, 0x0f4a,\n\t0x0f50, 0x0f56, 0x0f5c, 0x0f62, 0x0f68, 0x0f6e, 0x0f74, 0x0f7a,\n\t0x0f80, 0x0f86, 0x0f8c, 0x0f92, 0x0f98, 0x0f9e, 0x0fa4, 0x0faa,\n\t0x0fb0, 0x0fb6, 0x0fbc, 0x0fc2, 0x0fc8, 0x0fce, 0x0fd4, 0x0fda,\n\t0x0fe0, 0x0fe6, 0x0fec, 0x0ff2, 0x0ff8, 0x0ffe, 0x1004, 0x100a,\n\t0x1010, 0x1016, 0x101c, 0x1022, 0x1028, 0x102e, 0x1034, 0x103a,\n\t0x1040, 0x1046, 0x104c, 0x1052, 0x1058, 0x105e, 0x1064, 0x106a,\n\t// Entry 3C0 - 3FF\n\t0x1070, 0x1076, 0x107c, 0x1082, 0x1088, 0x108e, 0x1094, 0x109a,\n\t0x10a0, 0x10a6, 0x10ac, 0x10b2, 0x10b8, 0x10be, 0x10c4, 0x10ca,\n\t0x10d0, 0x10d6, 0x10dc, 0x10e2, 0x10e8, 0x10ee, 0x10f4, 0x10fa,\n\t0x1100, 0x1106, 0x110c, 0x1112, 0x1118, 0x111e, 0x1124, 0x112a,\n\t0x1130, 0x1136, 0x113c, 0x1142, 0x1148, 0x114e, 0x1154, 0x115a,\n\t0x1160, 0x1166, 0x116c, 0x1172, 0x1178, 0x1180, 0x1188, 0x1190,\n\t0x1198, 0x11a0, 0x11a8, 0x11b0, 0x11b6, 0x11d7, 0x11e6, 0x11ee,\n\t0x11ef, 0x11f0, 0x11f1, 0x11f2, 0x11f3, 0x11f4, 0x11f5, 0x11f6,\n\t// Entry 400 - 43F\n\t0x11f7, 0x11f8, 0x11f9, 0x11fa, 0x11fb, 0x11fc, 0x11fd, 0x11fe,\n\t0x11ff, 0x1200, 0x1201, 0x1205, 0x1209, 0x120d, 0x1211, 0x1215,\n\t0x1219, 0x121b, 0x121d, 0x121f, 0x1221, 0x1223, 0x1225, 0x1227,\n\t0x1229, 0x122b, 0x122d, 0x122f, 0x1231, 0x1233, 0x1235, 0x1237,\n\t0x1239, 0x123b, 0x123d, 0x123f, 0x1241, 0x1243, 0x1245, 0x1247,\n\t0x1249, 0x124b, 0x124d, 0x124f, 0x1251, 0x1253, 0x1255, 0x1257,\n\t0x1259, 0x125b, 0x125d, 0x125f, 0x1263, 0x1267, 0x126b, 0x126f,\n\t0x1270, 0x1271, 0x1272, 0x1273, 0x1274, 0x1275, 0x1277, 0x1279,\n\t// Entry 440 - 47F\n\t0x127b, 0x127d, 0x127f, 0x1281, 0x1283, 0x1285, 0x1287, 0x1289,\n\t0x128c, 0x128e, 0x1290, 0x1292, 0x1294, 0x1297, 0x1299, 0x129b,\n\t0x129d, 0x129f, 0x12a1, 0x12a3, 0x12a5, 0x12a7, 0x12a9, 0x12ab,\n\t0x12ad, 0x12af, 0x12b2, 0x12b4, 0x12b6, 0x12b8, 0x12ba, 0x12bc,\n\t0x12be, 0x12c0, 0x12c2, 0x12c4, 0x12c6, 0x12c9, 0x12cb, 0x12cd,\n\t0x12d0, 0x12d2, 0x12d4, 0x12d6, 0x12d8, 0x12da, 0x12dc, 0x12de,\n\t0x12e6, 0x12ee, 0x12fa, 0x1306, 0x1312, 0x131e, 0x132a, 0x1332,\n\t0x133a, 0x1346, 0x1352, 0x135e, 0x136a, 0x136c, 0x136e, 0x1370,\n\t// Entry 480 - 4BF\n\t0x1372, 0x1374, 0x1376, 0x1378, 0x137a, 0x137c, 0x137e, 0x1380,\n\t0x1382, 0x1384, 0x1386, 0x1388, 0x138a, 0x138d, 0x1390, 0x1392,\n\t0x1394, 0x1396, 0x1398, 0x139a, 0x139c, 0x139e, 0x13a0, 0x13a2,\n\t0x13a4, 0x13a6, 0x13a8, 0x13aa, 0x13ac, 0x13ae, 0x13b0, 0x13b2,\n\t0x13b4, 0x13b6, 0x13b8, 0x13ba, 0x13bc, 0x13bf, 0x13c1, 0x13c3,\n\t0x13c5, 0x13c7, 0x13c9, 0x13cb, 0x13cd, 0x13cf, 0x13d1, 0x13d3,\n\t0x13d6, 0x13d8, 0x13da, 0x13dc, 0x13de, 0x13e0, 0x13e2, 0x13e4,\n\t0x13e6, 0x13e8, 0x13ea, 0x13ec, 0x13ee, 0x13f0, 0x13f2, 0x13f5,\n\t// Entry 4C0 - 4FF\n\t0x13f8, 0x13fb, 0x13fe, 0x1401, 0x1404, 0x1407, 0x140a, 0x140d,\n\t0x1410, 0x1413, 0x1416, 0x1419, 0x141c, 0x141f, 0x1422, 0x1425,\n\t0x1428, 0x142b, 0x142e, 0x1431, 0x1434, 0x1437, 0x143a, 0x143d,\n\t0x1440, 0x1447, 0x1449, 0x144b, 0x144d, 0x1450, 0x1452, 0x1454,\n\t0x1456, 0x1458, 0x145a, 0x1460, 0x1466, 0x1469, 0x146c, 0x146f,\n\t0x1472, 0x1475, 0x1478, 0x147b, 0x147e, 0x1481, 0x1484, 0x1487,\n\t0x148a, 0x148d, 0x1490, 0x1493, 0x1496, 0x1499, 0x149c, 0x149f,\n\t0x14a2, 0x14a5, 0x14a8, 0x14ab, 0x14ae, 0x14b1, 0x14b4, 0x14b7,\n\t// Entry 500 - 53F\n\t0x14ba, 0x14bd, 0x14c0, 0x14c3, 0x14c6, 0x14c9, 0x14cc, 0x14cf,\n\t0x14d2, 0x14d5, 0x14d8, 0x14db, 0x14de, 0x14e1, 0x14e4, 0x14e7,\n\t0x14ea, 0x14ed, 0x14f6, 0x14ff, 0x1508, 0x1511, 0x151a, 0x1523,\n\t0x152c, 0x1535, 0x153e, 0x1541, 0x1544, 0x1547, 0x154a, 0x154d,\n\t0x1550, 0x1553, 0x1556, 0x1559, 0x155c, 0x155f, 0x1562, 0x1565,\n\t0x1568, 0x156b, 0x156e, 0x1571, 0x1574, 0x1577, 0x157a, 0x157d,\n\t0x1580, 0x1583, 0x1586, 0x1589, 0x158c, 0x158f, 0x1592, 0x1595,\n\t0x1598, 0x159b, 0x159e, 0x15a1, 0x15a4, 0x15a7, 0x15aa, 0x15ad,\n\t// Entry 540 - 57F\n\t0x15b0, 0x15b3, 0x15b6, 0x15b9, 0x15bc, 0x15bf, 0x15c2, 0x15c5,\n\t0x15c8, 0x15cb, 0x15ce, 0x15d1, 0x15d4, 0x15d7, 0x15da, 0x15dd,\n\t0x15e0, 0x15e3, 0x15e6, 0x15e9, 0x15ec, 0x15ef, 0x15f2, 0x15f5,\n\t0x15f8, 0x15fb, 0x15fe, 0x1601, 0x1604, 0x1607, 0x160a, 0x160d,\n\t0x1610, 0x1613, 0x1616, 0x1619, 0x161c, 0x161f, 0x1622, 0x1625,\n\t0x1628, 0x162b, 0x162e, 0x1631, 0x1634, 0x1637, 0x163a, 0x163d,\n\t0x1640, 0x1643, 0x1646, 0x1649, 0x164c, 0x164f, 0x1652, 0x1655,\n\t0x1658, 0x165b, 0x165e, 0x1661, 0x1664, 0x1667, 0x166a, 0x166d,\n\t// Entry 580 - 5BF\n\t0x1670, 0x1673, 0x1676, 0x1679, 0x167c, 0x167f, 0x1682, 0x1685,\n\t0x1688, 0x168b, 0x168e, 0x1691, 0x1694, 0x1697, 0x169a, 0x169d,\n\t0x16a0, 0x16a3, 0x16a6, 0x16a9, 0x16ac, 0x16af, 0x16b2, 0x16b5,\n\t0x16b8, 0x16bb, 0x16be, 0x16c1, 0x16c4, 0x16c7, 0x16ca, 0x16cd,\n\t0x16d0, 0x16d3, 0x16d6, 0x16d9, 0x16dc, 0x16df, 0x16e2, 0x16e5,\n\t0x16e8, 0x16eb, 0x16ee, 0x16f1, 0x16f4, 0x16f7, 0x16fa, 0x16fd,\n\t0x1700, 0x1703, 0x1706, 0x1709, 0x170c, 0x170f, 0x1712, 0x1715,\n\t0x1718, 0x171b, 0x171e, 0x1721, 0x1724, 0x1727, 0x172a, 0x172d,\n\t// Entry 5C0 - 5FF\n\t0x1730, 0x1733, 0x1736, 0x1739, 0x173c, 0x173f, 0x1742, 0x1745,\n\t0x1748, 0x174b, 0x174e, 0x1751, 0x1754, 0x1757, 0x175a, 0x175d,\n\t0x1760, 0x1763, 0x1766, 0x1769, 0x176c, 0x176f, 0x1772, 0x1775,\n\t0x1778, 0x177b, 0x177e, 0x1781, 0x1784, 0x1787, 0x178a, 0x178d,\n\t0x1790, 0x1793, 0x1796, 0x1799, 0x179c, 0x179f, 0x17a2, 0x17a5,\n\t0x17a8, 0x17ab, 0x17ae, 0x17b1, 0x17b4, 0x17b7, 0x17ba, 0x17bd,\n\t0x17c0, 0x17c3, 0x17c6, 0x17c9, 0x17cc, 0x17cf, 0x17d2, 0x17d5,\n\t0x17d8, 0x17db, 0x17de, 0x17e1, 0x17e4, 0x17e7, 0x17ea, 0x17ed,\n\t// Entry 600 - 63F\n\t0x17f0, 0x17f3, 0x17f6, 0x17f9, 0x17fc, 0x17ff, 0x1802, 0x1805,\n\t0x1808, 0x180b, 0x180e, 0x1811, 0x1814, 0x1817, 0x181a, 0x181d,\n\t0x1820, 0x1823, 0x1826, 0x1829, 0x182c, 0x182f, 0x1832, 0x1835,\n\t0x1838, 0x183b, 0x183e, 0x1841, 0x1844, 0x1847, 0x184a, 0x184d,\n\t0x1850, 0x1853, 0x1856, 0x1859, 0x185c, 0x185f, 0x1862, 0x1865,\n\t0x1868, 0x186b, 0x186e, 0x1871, 0x1874, 0x1877, 0x187a, 0x187d,\n\t0x1880, 0x1883, 0x1886, 0x1889, 0x188c, 0x188f, 0x1892, 0x1895,\n\t0x1898, 0x189b, 0x189e, 0x18a1, 0x18a4, 0x18a7, 0x18aa, 0x18ad,\n\t// Entry 640 - 67F\n\t0x18b0, 0x18b3, 0x18b6, 0x18b9, 0x18bc, 0x18bf, 0x18c2, 0x18c5,\n\t0x18c8, 0x18cb, 0x18ce, 0x18d1, 0x18d4, 0x18d7, 0x18da, 0x18dd,\n\t0x18e0, 0x18e3, 0x18e6, 0x18e9, 0x18ec, 0x18ef, 0x18f2, 0x18f5,\n\t0x18f8, 0x18fb, 0x18fe, 0x1901, 0x1904, 0x1907, 0x190a, 0x190d,\n\t0x1910, 0x1913, 0x1916, 0x1919, 0x191c, 0x191f, 0x1922, 0x1925,\n\t0x1928, 0x192b, 0x192e, 0x1931, 0x1934, 0x1937, 0x193a, 0x193d,\n\t0x1940, 0x1943, 0x1946, 0x1949, 0x194c, 0x194f, 0x1952, 0x1955,\n\t0x1958, 0x195b, 0x195e, 0x1961, 0x1964, 0x1967, 0x196a, 0x196d,\n\t// Entry 680 - 6BF\n\t0x1970, 0x1973, 0x1976, 0x1979, 0x197c, 0x197f, 0x1982, 0x1985,\n\t0x1988, 0x198b, 0x198e, 0x1991, 0x1994, 0x1997, 0x199a, 0x199d,\n\t0x19a0, 0x19a3, 0x19a6, 0x19a9, 0x19ac, 0x19af, 0x19b2, 0x19b5,\n\t0x19b8, 0x19bb, 0x19be, 0x19c1, 0x19c4, 0x19c7, 0x19ca, 0x19cd,\n\t0x19d0, 0x19d3, 0x19d6, 0x19d9, 0x19dc, 0x19df, 0x19e2, 0x19e5,\n\t0x19e8, 0x19eb, 0x19ee, 0x19f1, 0x19f4, 0x19f7, 0x19fa, 0x19fd,\n\t0x1a00, 0x1a03, 0x1a06, 0x1a09, 0x1a0c, 0x1a0f, 0x1a12, 0x1a15,\n\t0x1a18, 0x1a1b, 0x1a1e, 0x1a21, 0x1a24, 0x1a27, 0x1a2a, 0x1a2d,\n\t// Entry 6C0 - 6FF\n\t0x1a30,\n} // Size: 3482 bytes\n\nvar xorData string = \"\" + // Size: 4907 bytes\n\t\"\\x02\\x0c\\x09\\x02\\xb0\\xec\\x02\\xad\\xd8\\x02\\xad\\xd9\\x02\\x06\\x07\\x02\\x0f\\x12\" +\n\t\"\\x02\\x0f\\x1f\\x02\\x0f\\x1d\\x02\\x01\\x13\\x02\\x0f\\x16\\x02\\x0f\\x0b\\x02\\x0f3\" +\n\t\"\\x02\\x0f7\\x02\\x0f?\\x02\\x0f/\\x02\\x0f*\\x02\\x0c&\\x02\\x0c*\\x02\\x0c;\\x02\\x0c9\" +\n\t\"\\x02\\x0c%\\x02\\xab\\xed\\x02\\xab\\xe2\\x02\\xab\\xe3\\x02\\xa9\\xe0\\x02\\xa9\\xe1\" +\n\t\"\\x02\\xa9\\xe6\\x02\\xa3\\xcb\\x02\\xa3\\xc8\\x02\\xa3\\xc9\\x02\\x01#\\x02\\x01\\x08\" +\n\t\"\\x02\\x0e>\\x02\\x0e'\\x02\\x0f\\x03\\x02\\x03\\x0d\\x02\\x03\\x09\\x02\\x03\\x17\\x02\" +\n\t\"\\x03\\x0e\\x02\\x02\\x03\\x02\\x011\\x02\\x01\\x00\\x02\\x01\\x10\\x02\\x03<\\x02\\x07\" +\n\t\"\\x0d\\x02\\x02\\x0c\\x02\\x0c0\\x02\\x01\\x03\\x02\\x01\\x01\\x02\\x01 \\x02\\x01\\x22\" +\n\t\"\\x02\\x01)\\x02\\x01\\x0a\\x02\\x01\\x0c\\x02\\x02\\x06\\x02\\x02\\x02\\x02\\x03\\x10\" +\n\t\"\\x03\\x037 \\x03\\x0b+\\x03\\x021\\x00\\x02\\x01\\x04\\x02\\x01\\x02\\x02\\x019\\x02\" +\n\t\"\\x03\\x1c\\x02\\x02$\\x03\\x80p$\\x02\\x03:\\x02\\x03\\x0a\\x03\\xc1r.\\x03\\xc1r,\\x03\" +\n\t\"\\xc1r\\x02\\x02\\x02:\\x02\\x02>\\x02\\x02,\\x02\\x02\\x10\\x02\\x02\\x00\\x03\\xc1s<\" +\n\t\"\\x03\\xc1s*\\x03\\xc2L$\\x03\\xc2L;\\x02\\x09)\\x02\\x0a\\x19\\x03\\x83\\xab\\xe3\\x03\" +\n\t\"\\x83\\xab\\xf2\\x03 4\\xe0\\x03\\x81\\xab\\xea\\x03\\x81\\xab\\xf3\\x03 4\\xef\\x03\\x96\" +\n\t\"\\xe1\\xcd\\x03\\x84\\xe5\\xc3\\x02\\x0d\\x11\\x03\\x8b\\xec\\xcb\\x03\\x94\\xec\\xcf\\x03\" +\n\t\"\\x9a\\xec\\xc2\\x03\\x8b\\xec\\xdb\\x03\\x94\\xec\\xdf\\x03\\x9a\\xec\\xd2\\x03\\x01\\x0c\" +\n\t\"!\\x03\\x01\\x0c#\\x03ʠ\\x9d\\x03ʣ\\x9c\\x03ʢ\\x9f\\x03ʥ\\x9e\\x03ʤ\\x91\\x03ʧ\\x90\\x03\" +\n\t\"ʦ\\x93\\x03ʩ\\x92\\x03ʨ\\x95\\x03\\xca\\xf3\\xb5\\x03\\xca\\xf0\\xb4\\x03\\xca\\xf1\\xb7\" +\n\t\"\\x03\\xca\\xf6\\xb6\\x03\\xca\\xf7\\x89\\x03\\xca\\xf4\\x88\\x03\\xca\\xf5\\x8b\\x03\\xca\" +\n\t\"\\xfa\\x8a\\x03\\xca\\xfb\\x8d\\x03\\xca\\xf8\\x8c\\x03\\xca\\xf9\\x8f\\x03\\xca\\xfe\\x8e\" +\n\t\"\\x03\\xca\\xff\\x81\\x03\\xca\\xfc\\x80\\x03\\xca\\xfd\\x83\\x03\\xca\\xe2\\x82\\x03\\xca\" +\n\t\"\\xe3\\x85\\x03\\xca\\xe0\\x84\\x03\\xca\\xe1\\x87\\x03\\xca\\xe6\\x86\\x03\\xca\\xe7\\x99\" +\n\t\"\\x03\\xca\\xe4\\x98\\x03\\xca\\xe5\\x9b\\x03\\xca\\xea\\x9a\\x03\\xca\\xeb\\x9d\\x03\\xca\" +\n\t\"\\xe8\\x9c\\x03ؓ\\x89\\x03ߔ\\x8b\\x02\\x010\\x03\\x03\\x04\\x1e\\x03\\x04\\x15\\x12\\x03\" +\n\t\"\\x0b\\x05,\\x03\\x06\\x04\\x00\\x03\\x06\\x04)\\x03\\x06\\x044\\x03\\x06\\x04<\\x03\\x06\" +\n\t\"\\x05\\x1d\\x03\\x06\\x06\\x00\\x03\\x06\\x06\\x0a\\x03\\x06\\x06'\\x03\\x06\\x062\\x03\" +\n\t\"\\x0786\\x03\\x079/\\x03\\x079 \\x03\\x07:\\x0e\\x03\\x07:\\x1b\\x03\\x07:%\\x03\\x07;/\" +\n\t\"\\x03\\x07;%\\x03\\x074\\x11\\x03\\x076\\x09\\x03\\x077*\\x03\\x070\\x01\\x03\\x070\\x0f\" +\n\t\"\\x03\\x070.\\x03\\x071\\x16\\x03\\x071\\x04\\x03\\x0710\\x03\\x072\\x18\\x03\\x072-\" +\n\t\"\\x03\\x073\\x14\\x03\\x073>\\x03\\x07'\\x09\\x03\\x07 \\x00\\x03\\x07\\x1f\\x0b\\x03\" +\n\t\"\\x07\\x18#\\x03\\x07\\x18(\\x03\\x07\\x186\\x03\\x07\\x18\\x03\\x03\\x07\\x19\\x16\\x03\" +\n\t\"\\x07\\x116\\x03\\x07\\x12'\\x03\\x07\\x13\\x10\\x03\\x07\\x0c&\\x03\\x07\\x0c\\x08\\x03\" +\n\t\"\\x07\\x0c\\x13\\x03\\x07\\x0d\\x02\\x03\\x07\\x0d\\x1c\\x03\\x07\\x0b5\\x03\\x07\\x0b\" +\n\t\"\\x0a\\x03\\x07\\x0b\\x01\\x03\\x07\\x0b\\x0f\\x03\\x07\\x05\\x00\\x03\\x07\\x05\\x09\\x03\" +\n\t\"\\x07\\x05\\x0b\\x03\\x07\\x07\\x01\\x03\\x07\\x07\\x08\\x03\\x07\\x00<\\x03\\x07\\x00+\" +\n\t\"\\x03\\x07\\x01)\\x03\\x07\\x01\\x1b\\x03\\x07\\x01\\x08\\x03\\x07\\x03?\\x03\\x0445\\x03\" +\n\t\"\\x044\\x08\\x03\\x0454\\x03\\x04)/\\x03\\x04)5\\x03\\x04+\\x05\\x03\\x04+\\x14\\x03\" +\n\t\"\\x04+ \\x03\\x04+<\\x03\\x04*&\\x03\\x04*\\x22\\x03\\x04&8\\x03\\x04!\\x01\\x03\\x04!\" +\n\t\"\\x22\\x03\\x04\\x11+\\x03\\x04\\x10.\\x03\\x04\\x104\\x03\\x04\\x13=\\x03\\x04\\x12\\x04\" +\n\t\"\\x03\\x04\\x12\\x0a\\x03\\x04\\x0d\\x1d\\x03\\x04\\x0d\\x07\\x03\\x04\\x0d \\x03\\x05<>\" +\n\t\"\\x03\\x055<\\x03\\x055!\\x03\\x055#\\x03\\x055&\\x03\\x054\\x1d\\x03\\x054\\x02\\x03\" +\n\t\"\\x054\\x07\\x03\\x0571\\x03\\x053\\x1a\\x03\\x053\\x16\\x03\\x05.<\\x03\\x05.\\x07\\x03\" +\n\t\"\\x05):\\x03\\x05)<\\x03\\x05)\\x0c\\x03\\x05)\\x15\\x03\\x05+-\\x03\\x05+5\\x03\\x05$\" +\n\t\"\\x1e\\x03\\x05$\\x14\\x03\\x05'\\x04\\x03\\x05'\\x14\\x03\\x05&\\x02\\x03\\x05\\x226\" +\n\t\"\\x03\\x05\\x22\\x0c\\x03\\x05\\x22\\x1c\\x03\\x05\\x19\\x0a\\x03\\x05\\x1b\\x09\\x03\\x05\" +\n\t\"\\x1b\\x0c\\x03\\x05\\x14\\x07\\x03\\x05\\x16?\\x03\\x05\\x16\\x0c\\x03\\x05\\x0c\\x05\" +\n\t\"\\x03\\x05\\x0e\\x0f\\x03\\x05\\x01\\x0e\\x03\\x05\\x00(\\x03\\x05\\x030\\x03\\x05\\x03\" +\n\t\"\\x06\\x03\\x0a==\\x03\\x0a=1\\x03\\x0a=,\\x03\\x0a=\\x0c\\x03\\x0a??\\x03\\x0a<\\x08\" +\n\t\"\\x03\\x0a9!\\x03\\x0a9)\\x03\\x0a97\\x03\\x0a99\\x03\\x0a6\\x0a\\x03\\x0a6\\x1c\\x03\" +\n\t\"\\x0a6\\x17\\x03\\x0a7'\\x03\\x0a78\\x03\\x0a73\\x03\\x0a'\\x01\\x03\\x0a'&\\x03\\x0a\" +\n\t\"\\x1f\\x0e\\x03\\x0a\\x1f\\x03\\x03\\x0a\\x1f3\\x03\\x0a\\x1b/\\x03\\x0a\\x18\\x19\\x03\" +\n\t\"\\x0a\\x19\\x01\\x03\\x0a\\x16\\x14\\x03\\x0a\\x0e\\x22\\x03\\x0a\\x0f\\x10\\x03\\x0a\\x0f\" +\n\t\"\\x02\\x03\\x0a\\x0f \\x03\\x0a\\x0c\\x04\\x03\\x0a\\x0b>\\x03\\x0a\\x0b+\\x03\\x0a\\x08/\" +\n\t\"\\x03\\x0a\\x046\\x03\\x0a\\x05\\x14\\x03\\x0a\\x00\\x04\\x03\\x0a\\x00\\x10\\x03\\x0a\" +\n\t\"\\x00\\x14\\x03\\x0b<3\\x03\\x0b;*\\x03\\x0b9\\x22\\x03\\x0b9)\\x03\\x0b97\\x03\\x0b+\" +\n\t\"\\x10\\x03\\x0b((\\x03\\x0b&5\\x03\\x0b$\\x1c\\x03\\x0b$\\x12\\x03\\x0b%\\x04\\x03\\x0b#\" +\n\t\"<\\x03\\x0b#0\\x03\\x0b#\\x0d\\x03\\x0b#\\x19\\x03\\x0b!:\\x03\\x0b!\\x1f\\x03\\x0b!\" +\n\t\"\\x00\\x03\\x0b\\x1e5\\x03\\x0b\\x1c\\x1d\\x03\\x0b\\x1d-\\x03\\x0b\\x1d(\\x03\\x0b\\x18.\" +\n\t\"\\x03\\x0b\\x18 \\x03\\x0b\\x18\\x16\\x03\\x0b\\x14\\x13\\x03\\x0b\\x15$\\x03\\x0b\\x15\" +\n\t\"\\x22\\x03\\x0b\\x12\\x1b\\x03\\x0b\\x12\\x10\\x03\\x0b\\x132\\x03\\x0b\\x13=\\x03\\x0b\" +\n\t\"\\x12\\x18\\x03\\x0b\\x0c&\\x03\\x0b\\x061\\x03\\x0b\\x06:\\x03\\x0b\\x05#\\x03\\x0b\\x05\" +\n\t\"<\\x03\\x0b\\x04\\x0b\\x03\\x0b\\x04\\x04\\x03\\x0b\\x04\\x1b\\x03\\x0b\\x042\\x03\\x0b\" +\n\t\"\\x041\\x03\\x0b\\x03\\x03\\x03\\x0b\\x03\\x1d\\x03\\x0b\\x03/\\x03\\x0b\\x03+\\x03\\x0b\" +\n\t\"\\x02\\x1b\\x03\\x0b\\x02\\x00\\x03\\x0b\\x01\\x1e\\x03\\x0b\\x01\\x08\\x03\\x0b\\x015\" +\n\t\"\\x03\\x06\\x0d9\\x03\\x06\\x0d=\\x03\\x06\\x0d?\\x03\\x02\\x001\\x03\\x02\\x003\\x03\" +\n\t\"\\x02\\x02\\x19\\x03\\x02\\x006\\x03\\x02\\x02\\x1b\\x03\\x02\\x004\\x03\\x02\\x00<\\x03\" +\n\t\"\\x02\\x02\\x0a\\x03\\x02\\x02\\x0e\\x03\\x02\\x01\\x1a\\x03\\x02\\x01\\x07\\x03\\x02\\x01\" +\n\t\"\\x05\\x03\\x02\\x01\\x0b\\x03\\x02\\x01%\\x03\\x02\\x01\\x0c\\x03\\x02\\x01\\x04\\x03\" +\n\t\"\\x02\\x01\\x1c\\x03\\x02\\x00.\\x03\\x02\\x002\\x03\\x02\\x00>\\x03\\x02\\x00\\x12\\x03\" +\n\t\"\\x02\\x00\\x16\\x03\\x02\\x011\\x03\\x02\\x013\\x03\\x02\\x02 \\x03\\x02\\x02%\\x03\\x02\" +\n\t\"\\x02$\\x03\\x02\\x028\\x03\\x02\\x02;\\x03\\x02\\x024\\x03\\x02\\x012\\x03\\x02\\x022\" +\n\t\"\\x03\\x02\\x02/\\x03\\x02\\x01,\\x03\\x02\\x01\\x13\\x03\\x02\\x01\\x16\\x03\\x02\\x01\" +\n\t\"\\x11\\x03\\x02\\x01\\x1e\\x03\\x02\\x01\\x15\\x03\\x02\\x01\\x17\\x03\\x02\\x01\\x0f\\x03\" +\n\t\"\\x02\\x01\\x08\\x03\\x02\\x00?\\x03\\x02\\x03\\x07\\x03\\x02\\x03\\x0d\\x03\\x02\\x03\" +\n\t\"\\x13\\x03\\x02\\x03\\x1d\\x03\\x02\\x03\\x1f\\x03\\x02\\x00\\x03\\x03\\x02\\x00\\x0d\\x03\" +\n\t\"\\x02\\x00\\x01\\x03\\x02\\x00\\x1b\\x03\\x02\\x00\\x19\\x03\\x02\\x00\\x18\\x03\\x02\\x00\" +\n\t\"\\x13\\x03\\x02\\x00/\\x03\\x07>\\x12\\x03\\x07<\\x1f\\x03\\x07>\\x1d\\x03\\x06\\x1d\\x0e\" +\n\t\"\\x03\\x07>\\x1c\\x03\\x07>:\\x03\\x07>\\x13\\x03\\x04\\x12+\\x03\\x07?\\x03\\x03\\x07>\" +\n\t\"\\x02\\x03\\x06\\x224\\x03\\x06\\x1a.\\x03\\x07<%\\x03\\x06\\x1c\\x0b\\x03\\x0609\\x03\" +\n\t\"\\x05\\x1f\\x01\\x03\\x04'\\x08\\x03\\x93\\xfd\\xf5\\x03\\x02\\x0d \\x03\\x02\\x0d#\\x03\" +\n\t\"\\x02\\x0d!\\x03\\x02\\x0d&\\x03\\x02\\x0d\\x22\\x03\\x02\\x0d/\\x03\\x02\\x0d,\\x03\\x02\" +\n\t\"\\x0d$\\x03\\x02\\x0d'\\x03\\x02\\x0d%\\x03\\x02\\x0d;\\x03\\x02\\x0d=\\x03\\x02\\x0d?\" +\n\t\"\\x03\\x099.\\x03\\x08\\x0b7\\x03\\x08\\x02\\x14\\x03\\x08\\x14\\x0d\\x03\\x08.:\\x03\" +\n\t\"\\x089'\\x03\\x0f\\x0b\\x18\\x03\\x0f\\x1c1\\x03\\x0f\\x17&\\x03\\x0f9\\x1f\\x03\\x0f0\" +\n\t\"\\x0c\\x03\\x0e\\x0a9\\x03\\x0e\\x056\\x03\\x0e\\x1c#\\x03\\x0f\\x13\\x0e\\x03\\x072\\x00\" +\n\t\"\\x03\\x070\\x0d\\x03\\x072\\x0b\\x03\\x06\\x11\\x18\\x03\\x070\\x10\\x03\\x06\\x0f(\\x03\" +\n\t\"\\x072\\x05\\x03\\x06\\x0f,\\x03\\x073\\x15\\x03\\x06\\x07\\x08\\x03\\x05\\x16\\x02\\x03\" +\n\t\"\\x04\\x0b \\x03\\x05:8\\x03\\x05\\x16%\\x03\\x0a\\x0d\\x1f\\x03\\x06\\x16\\x10\\x03\\x05\" +\n\t\"\\x1d5\\x03\\x05*;\\x03\\x05\\x16\\x1b\\x03\\x04.-\\x03\\x06\\x1a\\x19\\x03\\x04\\x03,\" +\n\t\"\\x03\\x0b87\\x03\\x04/\\x0a\\x03\\x06\\x00,\\x03\\x04-\\x01\\x03\\x04\\x1e-\\x03\\x06/(\" +\n\t\"\\x03\\x0a\\x0b5\\x03\\x06\\x0e7\\x03\\x06\\x07.\\x03\\x0597\\x03\\x0a*%\\x03\\x0760\" +\n\t\"\\x03\\x06\\x0c;\\x03\\x05'\\x00\\x03\\x072.\\x03\\x072\\x08\\x03\\x06=\\x01\\x03\\x06\" +\n\t\"\\x05\\x1b\\x03\\x06\\x06\\x12\\x03\\x06$=\\x03\\x06'\\x0d\\x03\\x04\\x11\\x0f\\x03\\x076\" +\n\t\",\\x03\\x06\\x07;\\x03\\x06.,\\x03\\x86\\xf9\\xea\\x03\\x8f\\xff\\xeb\\x02\\x092\\x02\" +\n\t\"\\x095\\x02\\x094\\x02\\x09;\\x02\\x09>\\x02\\x098\\x02\\x09*\\x02\\x09/\\x02\\x09,\\x02\" +\n\t\"\\x09%\\x02\\x09&\\x02\\x09#\\x02\\x09 \\x02\\x08!\\x02\\x08%\\x02\\x08$\\x02\\x08+\\x02\" +\n\t\"\\x08.\\x02\\x08*\\x02\\x08&\\x02\\x088\\x02\\x08>\\x02\\x084\\x02\\x086\\x02\\x080\\x02\" +\n\t\"\\x08\\x10\\x02\\x08\\x17\\x02\\x08\\x12\\x02\\x08\\x1d\\x02\\x08\\x1f\\x02\\x08\\x13\\x02\" +\n\t\"\\x08\\x15\\x02\\x08\\x14\\x02\\x08\\x0c\\x03\\x8b\\xfd\\xd0\\x03\\x81\\xec\\xc6\\x03\\x87\" +\n\t\"\\xe0\\x8a\\x03-2\\xe3\\x03\\x80\\xef\\xe4\\x03-2\\xea\\x03\\x88\\xe6\\xeb\\x03\\x8e\\xe6\" +\n\t\"\\xe8\\x03\\x84\\xe6\\xe9\\x03\\x97\\xe6\\xee\\x03-2\\xf9\\x03-2\\xf6\\x03\\x8e\\xe3\\xad\" +\n\t\"\\x03\\x80\\xe3\\x92\\x03\\x88\\xe3\\x90\\x03\\x8e\\xe3\\x90\\x03\\x80\\xe3\\x97\\x03\\x88\" +\n\t\"\\xe3\\x95\\x03\\x88\\xfe\\xcb\\x03\\x8e\\xfe\\xca\\x03\\x84\\xfe\\xcd\\x03\\x91\\xef\\xc9\" +\n\t\"\\x03-2\\xc1\\x03-2\\xc0\\x03-2\\xcb\\x03\\x88@\\x09\\x03\\x8e@\\x08\\x03\\x8f\\xe0\\xf5\" +\n\t\"\\x03\\x8e\\xe6\\xf9\\x03\\x8e\\xe0\\xfa\\x03\\x93\\xff\\xf4\\x03\\x84\\xee\\xd3\\x03\\x0b\" +\n\t\"(\\x04\\x023 \\x03\\x0b)\\x08\\x021;\\x02\\x01*\\x03\\x0b#\\x10\\x03\\x0b 0\\x03\\x0b!\" +\n\t\"\\x10\\x03\\x0b!0\\x03\\x07\\x15\\x08\\x03\\x09?5\\x03\\x07\\x1f\\x08\\x03\\x07\\x17\\x0b\" +\n\t\"\\x03\\x09\\x1f\\x15\\x03\\x0b\\x1c7\\x03\\x0a+#\\x03\\x06\\x1a\\x1b\\x03\\x06\\x1a\\x14\" +\n\t\"\\x03\\x0a\\x01\\x18\\x03\\x06#\\x1b\\x03\\x0a2\\x0c\\x03\\x0a\\x01\\x04\\x03\\x09#;\\x03\" +\n\t\"\\x08='\\x03\\x08\\x1a\\x0a\\x03\\x07</\\x03\\x07:+\\x03\\x07\\x07*\\x03\\x06&\\x1c\\x03\" +\n\t\"\\x09\\x0c\\x16\\x03\\x09\\x10\\x0e\\x03\\x08'\\x0f\\x03\\x08+\\x09\\x03\\x074%\\x03\\x06\" +\n\t\"!3\\x03\\x06\\x03+\\x03\\x0b\\x1e\\x19\\x03\\x0a))\\x03\\x09\\x08\\x19\\x03\\x08,\\x05\" +\n\t\"\\x03\\x07<2\\x03\\x06\\x1c>\\x03\\x0a\\x111\\x03\\x09\\x1b\\x09\\x03\\x073.\\x03\\x07\" +\n\t\"\\x01\\x00\\x03\\x09/,\\x03\\x07#>\\x03\\x07\\x048\\x03\\x0a\\x1f\\x22\\x03\\x098>\\x03\" +\n\t\"\\x09\\x11\\x00\\x03\\x08/\\x17\\x03\\x06'\\x22\\x03\\x0b\\x1a+\\x03\\x0a\\x22\\x19\\x03\" +\n\t\"\\x0a/1\\x03\\x0974\\x03\\x09\\x0f\\x22\\x03\\x08,\\x22\\x03\\x08?\\x14\\x03\\x07$5\\x03\" +\n\t\"\\x07<3\\x03\\x07=*\\x03\\x07\\x13\\x18\\x03\\x068\\x0a\\x03\\x06\\x09\\x16\\x03\\x06\" +\n\t\"\\x13\\x00\\x03\\x08\\x067\\x03\\x08\\x01\\x03\\x03\\x08\\x12\\x1d\\x03\\x07+7\\x03\\x06(\" +\n\t\";\\x03\\x06\\x1c?\\x03\\x07\\x0e\\x17\\x03\\x0a\\x06\\x1d\\x03\\x0a\\x19\\x07\\x03\\x08\" +\n\t\"\\x14$\\x03\\x07$;\\x03\\x08,$\\x03\\x08\\x06\\x0d\\x03\\x07\\x16\\x0a\\x03\\x06>>\\x03\" +\n\t\"\\x0a\\x06\\x12\\x03\\x0a\\x14)\\x03\\x09\\x0d\\x1f\\x03\\x09\\x12\\x17\\x03\\x09\\x19\" +\n\t\"\\x01\\x03\\x08\\x11 \\x03\\x08\\x1d'\\x03\\x06<\\x1a\\x03\\x0a.\\x00\\x03\\x07'\\x18\" +\n\t\"\\x03\\x0a\\x22\\x08\\x03\\x08\\x0d\\x0a\\x03\\x08\\x13)\\x03\\x07*)\\x03\\x06<,\\x03\" +\n\t\"\\x07\\x0b\\x1a\\x03\\x09.\\x14\\x03\\x09\\x0d\\x1e\\x03\\x07\\x0e#\\x03\\x0b\\x1d'\\x03\" +\n\t\"\\x0a\\x0a8\\x03\\x09%2\\x03\\x08+&\\x03\\x080\\x12\\x03\\x0a)4\\x03\\x08\\x06\\x1f\\x03\" +\n\t\"\\x0b\\x1b\\x1a\\x03\\x0a\\x1b\\x0f\\x03\\x0b\\x1d*\\x03\\x09\\x16$\\x03\\x090\\x11\\x03\" +\n\t\"\\x08\\x11\\x08\\x03\\x0a*(\\x03\\x0a\\x042\\x03\\x089,\\x03\\x074'\\x03\\x07\\x0f\\x05\" +\n\t\"\\x03\\x09\\x0b\\x0a\\x03\\x07\\x1b\\x01\\x03\\x09\\x17:\\x03\\x09.\\x0d\\x03\\x07.\\x11\" +\n\t\"\\x03\\x09+\\x15\\x03\\x080\\x13\\x03\\x0b\\x1f\\x19\\x03\\x0a \\x11\\x03\\x0a\\x220\\x03\" +\n\t\"\\x09\\x07;\\x03\\x08\\x16\\x1c\\x03\\x07,\\x13\\x03\\x07\\x0e/\\x03\\x06\\x221\\x03\\x0a\" +\n\t\".\\x0a\\x03\\x0a7\\x02\\x03\\x0a\\x032\\x03\\x0a\\x1d.\\x03\\x091\\x06\\x03\\x09\\x19:\" +\n\t\"\\x03\\x08\\x02/\\x03\\x060+\\x03\\x06\\x0f-\\x03\\x06\\x1c\\x1f\\x03\\x06\\x1d\\x07\\x03\" +\n\t\"\\x0a,\\x11\\x03\\x09=\\x0d\\x03\\x09\\x0b;\\x03\\x07\\x1b/\\x03\\x0a\\x1f:\\x03\\x09 \" +\n\t\"\\x1f\\x03\\x09.\\x10\\x03\\x094\\x0b\\x03\\x09\\x1a1\\x03\\x08#\\x1a\\x03\\x084\\x1d\" +\n\t\"\\x03\\x08\\x01\\x1f\\x03\\x08\\x11\\x22\\x03\\x07'8\\x03\\x07\\x1a>\\x03\\x0757\\x03\" +\n\t\"\\x06&9\\x03\\x06+\\x11\\x03\\x0a.\\x0b\\x03\\x0a,>\\x03\\x0a4#\\x03\\x08%\\x17\\x03\" +\n\t\"\\x07\\x05\\x22\\x03\\x07\\x0c\\x0b\\x03\\x0a\\x1d+\\x03\\x0a\\x19\\x16\\x03\\x09+\\x1f\" +\n\t\"\\x03\\x09\\x08\\x0b\\x03\\x08\\x16\\x18\\x03\\x08+\\x12\\x03\\x0b\\x1d\\x0c\\x03\\x0a=\" +\n\t\"\\x10\\x03\\x0a\\x09\\x0d\\x03\\x0a\\x10\\x11\\x03\\x09&0\\x03\\x08(\\x1f\\x03\\x087\\x07\" +\n\t\"\\x03\\x08\\x185\\x03\\x07'6\\x03\\x06.\\x05\\x03\\x06=\\x04\\x03\\x06;;\\x03\\x06\\x06,\" +\n\t\"\\x03\\x0b\\x18>\\x03\\x08\\x00\\x18\\x03\\x06 \\x03\\x03\\x06<\\x00\\x03\\x09%\\x18\\x03\" +\n\t\"\\x0b\\x1c<\\x03\\x0a%!\\x03\\x0a\\x09\\x12\\x03\\x0a\\x16\\x02\\x03\\x090'\\x03\\x09\" +\n\t\"\\x0e=\\x03\\x08 \\x0e\\x03\\x08>\\x03\\x03\\x074>\\x03\\x06&?\\x03\\x06\\x19\\x09\\x03\" +\n\t\"\\x06?(\\x03\\x0a-\\x0e\\x03\\x09:3\\x03\\x098:\\x03\\x09\\x12\\x0b\\x03\\x09\\x1d\\x17\" +\n\t\"\\x03\\x087\\x05\\x03\\x082\\x14\\x03\\x08\\x06%\\x03\\x08\\x13\\x1f\\x03\\x06\\x06\\x0e\" +\n\t\"\\x03\\x0a\\x22<\\x03\\x09/<\\x03\\x06>+\\x03\\x0a'?\\x03\\x0a\\x13\\x0c\\x03\\x09\\x10<\" +\n\t\"\\x03\\x07\\x1b=\\x03\\x0a\\x19\\x13\\x03\\x09\\x22\\x1d\\x03\\x09\\x07\\x0d\\x03\\x08)\" +\n\t\"\\x1c\\x03\\x06=\\x1a\\x03\\x0a/4\\x03\\x0a7\\x11\\x03\\x0a\\x16:\\x03\\x09?3\\x03\\x09:\" +\n\t\"/\\x03\\x09\\x05\\x0a\\x03\\x09\\x14\\x06\\x03\\x087\\x22\\x03\\x080\\x07\\x03\\x08\\x1a\" +\n\t\"\\x1f\\x03\\x07\\x04(\\x03\\x07\\x04\\x09\\x03\\x06 %\\x03\\x06<\\x08\\x03\\x0a+\\x14\" +\n\t\"\\x03\\x09\\x1d\\x16\\x03\\x0a70\\x03\\x08 >\\x03\\x0857\\x03\\x070\\x0a\\x03\\x06=\\x12\" +\n\t\"\\x03\\x06\\x16%\\x03\\x06\\x1d,\\x03\\x099#\\x03\\x09\\x10>\\x03\\x07 \\x1e\\x03\\x08\" +\n\t\"\\x0c<\\x03\\x08\\x0b\\x18\\x03\\x08\\x15+\\x03\\x08,:\\x03\\x08%\\x22\\x03\\x07\\x0a$\" +\n\t\"\\x03\\x0b\\x1c=\\x03\\x07+\\x08\\x03\\x0a/\\x05\\x03\\x0a \\x07\\x03\\x0a\\x12'\\x03\" +\n\t\"\\x09#\\x11\\x03\\x08\\x1b\\x15\\x03\\x0a\\x06\\x01\\x03\\x09\\x1c\\x1b\\x03\\x0922\\x03\" +\n\t\"\\x07\\x14<\\x03\\x07\\x09\\x04\\x03\\x061\\x04\\x03\\x07\\x0e\\x01\\x03\\x0a\\x13\\x18\" +\n\t\"\\x03\\x0a-\\x0c\\x03\\x0a?\\x0d\\x03\\x0a\\x09\\x0a\\x03\\x091&\\x03\\x0a/\\x0b\\x03\" +\n\t\"\\x08$<\\x03\\x083\\x1d\\x03\\x08\\x0c$\\x03\\x08\\x0d\\x07\\x03\\x08\\x0d?\\x03\\x08\" +\n\t\"\\x0e\\x14\\x03\\x065\\x0a\\x03\\x08\\x1a#\\x03\\x08\\x16#\\x03\\x0702\\x03\\x07\\x03\" +\n\t\"\\x1a\\x03\\x06(\\x1d\\x03\\x06+\\x1b\\x03\\x06\\x0b\\x05\\x03\\x06\\x0b\\x17\\x03\\x06\" +\n\t\"\\x0c\\x04\\x03\\x06\\x1e\\x19\\x03\\x06+0\\x03\\x062\\x18\\x03\\x0b\\x16\\x1e\\x03\\x0a+\" +\n\t\"\\x16\\x03\\x0a-?\\x03\\x0a#:\\x03\\x0a#\\x10\\x03\\x0a%$\\x03\\x0a>+\\x03\\x0a01\\x03\" +\n\t\"\\x0a1\\x10\\x03\\x0a\\x099\\x03\\x0a\\x0a\\x12\\x03\\x0a\\x19\\x1f\\x03\\x0a\\x19\\x12\" +\n\t\"\\x03\\x09*)\\x03\\x09-\\x16\\x03\\x09.1\\x03\\x09.2\\x03\\x09<\\x0e\\x03\\x09> \\x03\" +\n\t\"\\x093\\x12\\x03\\x09\\x0b\\x01\\x03\\x09\\x1c2\\x03\\x09\\x11\\x1c\\x03\\x09\\x15%\\x03\" +\n\t\"\\x08,&\\x03\\x08!\\x22\\x03\\x089(\\x03\\x08\\x0b\\x1a\\x03\\x08\\x0d2\\x03\\x08\\x0c\" +\n\t\"\\x04\\x03\\x08\\x0c\\x06\\x03\\x08\\x0c\\x1f\\x03\\x08\\x0c\\x0c\\x03\\x08\\x0f\\x1f\\x03\" +\n\t\"\\x08\\x0f\\x1d\\x03\\x08\\x00\\x14\\x03\\x08\\x03\\x14\\x03\\x08\\x06\\x16\\x03\\x08\\x1e\" +\n\t\"#\\x03\\x08\\x11\\x11\\x03\\x08\\x10\\x18\\x03\\x08\\x14(\\x03\\x07)\\x1e\\x03\\x07.1\" +\n\t\"\\x03\\x07 $\\x03\\x07 '\\x03\\x078\\x08\\x03\\x07\\x0d0\\x03\\x07\\x0f7\\x03\\x07\\x05#\" +\n\t\"\\x03\\x07\\x05\\x1a\\x03\\x07\\x1a7\\x03\\x07\\x1d-\\x03\\x07\\x17\\x10\\x03\\x06)\\x1f\" +\n\t\"\\x03\\x062\\x0b\\x03\\x066\\x16\\x03\\x06\\x09\\x11\\x03\\x09(\\x1e\\x03\\x07!5\\x03\" +\n\t\"\\x0b\\x11\\x16\\x03\\x0a/\\x04\\x03\\x0a,\\x1a\\x03\\x0b\\x173\\x03\\x0a,1\\x03\\x0a/5\" +\n\t\"\\x03\\x0a\\x221\\x03\\x0a\\x22\\x0d\\x03\\x0a?%\\x03\\x0a<,\\x03\\x0a?#\\x03\\x0a>\\x19\" +\n\t\"\\x03\\x0a\\x08&\\x03\\x0a\\x0b\\x0e\\x03\\x0a\\x0c:\\x03\\x0a\\x0c+\\x03\\x0a\\x03\\x22\" +\n\t\"\\x03\\x0a\\x06)\\x03\\x0a\\x11\\x10\\x03\\x0a\\x11\\x1a\\x03\\x0a\\x17-\\x03\\x0a\\x14(\" +\n\t\"\\x03\\x09)\\x1e\\x03\\x09/\\x09\\x03\\x09.\\x00\\x03\\x09,\\x07\\x03\\x09/*\\x03\\x09-9\" +\n\t\"\\x03\\x09\\x228\\x03\\x09%\\x09\\x03\\x09:\\x12\\x03\\x09;\\x1d\\x03\\x09?\\x06\\x03\" +\n\t\"\\x093%\\x03\\x096\\x05\\x03\\x096\\x08\\x03\\x097\\x02\\x03\\x09\\x07,\\x03\\x09\\x04,\" +\n\t\"\\x03\\x09\\x1f\\x16\\x03\\x09\\x11\\x03\\x03\\x09\\x11\\x12\\x03\\x09\\x168\\x03\\x08*\" +\n\t\"\\x05\\x03\\x08/2\\x03\\x084:\\x03\\x08\\x22+\\x03\\x08 0\\x03\\x08&\\x0a\\x03\\x08;\" +\n\t\"\\x10\\x03\\x08>$\\x03\\x08>\\x18\\x03\\x0829\\x03\\x082:\\x03\\x081,\\x03\\x081<\\x03\" +\n\t\"\\x081\\x1c\\x03\\x087#\\x03\\x087*\\x03\\x08\\x09'\\x03\\x08\\x00\\x1d\\x03\\x08\\x05-\" +\n\t\"\\x03\\x08\\x1f4\\x03\\x08\\x1d\\x04\\x03\\x08\\x16\\x0f\\x03\\x07*7\\x03\\x07'!\\x03\" +\n\t\"\\x07%\\x1b\\x03\\x077\\x0c\\x03\\x07\\x0c1\\x03\\x07\\x0c.\\x03\\x07\\x00\\x06\\x03\\x07\" +\n\t\"\\x01\\x02\\x03\\x07\\x010\\x03\\x07\\x06=\\x03\\x07\\x01\\x03\\x03\\x07\\x01\\x13\\x03\" +\n\t\"\\x07\\x06\\x06\\x03\\x07\\x05\\x0a\\x03\\x07\\x1f\\x09\\x03\\x07\\x17:\\x03\\x06*1\\x03\" +\n\t\"\\x06-\\x1d\\x03\\x06\\x223\\x03\\x062:\\x03\\x060$\\x03\\x066\\x1e\\x03\\x064\\x12\\x03\" +\n\t\"\\x0645\\x03\\x06\\x0b\\x00\\x03\\x06\\x0b7\\x03\\x06\\x07\\x1f\\x03\\x06\\x15\\x12\\x03\" +\n\t\"\\x0c\\x05\\x0f\\x03\\x0b+\\x0b\\x03\\x0b+-\\x03\\x06\\x16\\x1b\\x03\\x06\\x15\\x17\\x03\" +\n\t\"\\x89\\xca\\xea\\x03\\x89\\xca\\xe8\\x03\\x0c8\\x10\\x03\\x0c8\\x01\\x03\\x0c8\\x0f\\x03\" +\n\t\"\\x0d8%\\x03\\x0d8!\\x03\\x0c8-\\x03\\x0c8/\\x03\\x0c8+\\x03\\x0c87\\x03\\x0c85\\x03\" +\n\t\"\\x0c9\\x09\\x03\\x0c9\\x0d\\x03\\x0c9\\x0f\\x03\\x0c9\\x0b\\x03\\xcfu\\x0c\\x03\\xcfu\" +\n\t\"\\x0f\\x03\\xcfu\\x0e\\x03\\xcfu\\x09\\x03\\x0c9\\x10\\x03\\x0d9\\x0c\\x03\\xcf`;\\x03\" +\n\t\"\\xcf`>\\x03\\xcf`9\\x03\\xcf`8\\x03\\xcf`7\\x03\\xcf`*\\x03\\xcf`-\\x03\\xcf`,\\x03\" +\n\t\"\\x0d\\x1b\\x1a\\x03\\x0d\\x1b&\\x03\\x0c=.\\x03\\x0c=%\\x03\\x0c>\\x1e\\x03\\x0c>\\x14\" +\n\t\"\\x03\\x0c?\\x06\\x03\\x0c?\\x0b\\x03\\x0c?\\x0c\\x03\\x0c?\\x0d\\x03\\x0c?\\x02\\x03\" +\n\t\"\\x0c>\\x0f\\x03\\x0c>\\x08\\x03\\x0c>\\x09\\x03\\x0c>,\\x03\\x0c>\\x0c\\x03\\x0c?\\x13\" +\n\t\"\\x03\\x0c?\\x16\\x03\\x0c?\\x15\\x03\\x0c?\\x1c\\x03\\x0c?\\x1f\\x03\\x0c?\\x1d\\x03\" +\n\t\"\\x0c?\\x1a\\x03\\x0c?\\x17\\x03\\x0c?\\x08\\x03\\x0c?\\x09\\x03\\x0c?\\x0e\\x03\\x0c?\" +\n\t\"\\x04\\x03\\x0c?\\x05\\x03\\x0c<?\\x03\\x0c=\\x00\\x03\\x0c=\\x06\\x03\\x0c=\\x05\\x03\" +\n\t\"\\x0c=\\x0c\\x03\\x0c=\\x0f\\x03\\x0c=\\x0d\\x03\\x0c=\\x0b\\x03\\x0c=\\x07\\x03\\x0c=\" +\n\t\"\\x19\\x03\\x0c=\\x15\\x03\\x0c=\\x11\\x03\\x0c=1\\x03\\x0c=3\\x03\\x0c=0\\x03\\x0c=>\" +\n\t\"\\x03\\x0c=2\\x03\\x0c=6\\x03\\x0c<\\x07\\x03\\x0c<\\x05\\x03\\x0e:!\\x03\\x0e:#\\x03\" +\n\t\"\\x0e8\\x09\\x03\\x0e:&\\x03\\x0e8\\x0b\\x03\\x0e:$\\x03\\x0e:,\\x03\\x0e8\\x1a\\x03\" +\n\t\"\\x0e8\\x1e\\x03\\x0e:*\\x03\\x0e:7\\x03\\x0e:5\\x03\\x0e:;\\x03\\x0e:\\x15\\x03\\x0e:<\" +\n\t\"\\x03\\x0e:4\\x03\\x0e:'\\x03\\x0e:-\\x03\\x0e:%\\x03\\x0e:?\\x03\\x0e:=\\x03\\x0e:)\" +\n\t\"\\x03\\x0e:/\\x03\\xcfs'\\x03\\x0d=\\x0f\\x03\\x0d+*\\x03\\x0d99\\x03\\x0d9;\\x03\\x0d9\" +\n\t\"?\\x03\\x0d)\\x0d\\x03\\x0d(%\\x02\\x01\\x18\\x02\\x01(\\x02\\x03'\\x02\\x03)\\x02\\x03+\" +\n\t\"\\x02\\x03/\\x02\\x03\\x19\\x02\\x03\\x1b\\x02\\x03\\x1f\\x03\\x0d\\x22\\x18\\x03\\x0d\" +\n\t\"\\x22\\x1a\\x03\\x0d\\x22'\\x03\\x0d\\x22/\\x03\\x0d\\x223\\x03\\x0d\\x22$\\x02\\x01\\x1e\" +\n\t\"\\x03\\x0f$!\\x03\\x0f87\\x03\\x0f4\\x0e\\x03\\x0f5\\x1d\\x03\\x06'\\x03\\x03\\x0f\\x08\" +\n\t\"\\x18\\x03\\x0f\\x0d\\x1b\\x03\\x0e2=\\x03\\x0e;\\x08\\x03\\x0e:\\x0b\\x03\\x0e\\x06$\" +\n\t\"\\x03\\x0e\\x0d)\\x03\\x0e\\x16\\x1f\\x03\\x0e\\x16\\x1b\\x03\\x0d$\\x0a\\x03\\x05,\\x1d\" +\n\t\"\\x03\\x0d. \\x03\\x0d.#\\x03\\x0c(/\\x03\\x09%\\x02\\x03\\x0d90\\x03\\x0d\\x0e4\\x03\" +\n\t\"\\x0d\\x0d\\x0f\\x03\\x0c#\\x00\\x03\\x0c,\\x1e\\x03\\x0c2\\x0e\\x03\\x0c\\x01\\x17\\x03\" +\n\t\"\\x0c\\x09:\\x03\\x0e\\x173\\x03\\x0c\\x08\\x03\\x03\\x0c\\x11\\x07\\x03\\x0c\\x10\\x18\" +\n\t\"\\x03\\x0c\\x1f\\x1c\\x03\\x0c\\x19\\x0e\\x03\\x0c\\x1a\\x1f\\x03\\x0f0>\\x03\\x0b->\\x03\" +\n\t\"\\x0b<+\\x03\\x0b8\\x13\\x03\\x0b\\x043\\x03\\x0b\\x14\\x03\\x03\\x0b\\x16%\\x03\\x0d\" +\n\t\"\\x22&\\x03\\x0b\\x1a\\x1a\\x03\\x0b\\x1a\\x04\\x03\\x0a%9\\x03\\x0a&2\\x03\\x0a&0\\x03\" +\n\t\"\\x0a!\\x1a\\x03\\x0a!7\\x03\\x0a5\\x10\\x03\\x0a=4\\x03\\x0a?\\x0e\\x03\\x0a>\\x10\\x03\" +\n\t\"\\x0a\\x00 \\x03\\x0a\\x0f:\\x03\\x0a\\x0f9\\x03\\x0a\\x0b\\x0a\\x03\\x0a\\x17%\\x03\\x0a\" +\n\t\"\\x1b-\\x03\\x09-\\x1a\\x03\\x09,4\\x03\\x09.,\\x03\\x09)\\x09\\x03\\x096!\\x03\\x091\" +\n\t\"\\x1f\\x03\\x093\\x16\\x03\\x0c+\\x1f\\x03\\x098 \\x03\\x098=\\x03\\x0c(\\x1a\\x03\\x0c(\" +\n\t\"\\x16\\x03\\x09\\x0a+\\x03\\x09\\x16\\x12\\x03\\x09\\x13\\x0e\\x03\\x09\\x153\\x03\\x08)!\" +\n\t\"\\x03\\x09\\x1a\\x01\\x03\\x09\\x18\\x01\\x03\\x08%#\\x03\\x08>\\x22\\x03\\x08\\x05%\\x03\" +\n\t\"\\x08\\x02*\\x03\\x08\\x15;\\x03\\x08\\x1b7\\x03\\x0f\\x07\\x1d\\x03\\x0f\\x04\\x03\\x03\" +\n\t\"\\x070\\x0c\\x03\\x07;\\x0b\\x03\\x07\\x08\\x17\\x03\\x07\\x12\\x06\\x03\\x06/-\\x03\\x06\" +\n\t\"71\\x03\\x065+\\x03\\x06>7\\x03\\x06\\x049\\x03\\x05+\\x1e\\x03\\x05,\\x17\\x03\\x05 \" +\n\t\"\\x1d\\x03\\x05\\x22\\x05\\x03\\x050\\x1d\"\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *idnaTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn idnaValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = idnaIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *idnaTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn idnaValues[c0]\n\t}\n\ti := idnaIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *idnaTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn idnaValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = idnaIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *idnaTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn idnaValues[c0]\n\t}\n\ti := idnaIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// idnaTrie. Total size: 31598 bytes (30.86 KiB). Checksum: d3118eda0d6b5360.\ntype idnaTrie struct{}\n\nfunc newIdnaTrie(i int) *idnaTrie {\n\treturn &idnaTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *idnaTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 133:\n\t\treturn uint16(idnaValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 133\n\t\treturn uint16(idnaSparse.lookup(n, b))\n\t}\n}\n\n// idnaValues: 135 blocks, 8640 entries, 17280 bytes\n// The third block is the zero block.\nvar idnaValues = [8640]uint16{\n\t// Block 0x0, offset 0x0\n\t0x00: 0x0080, 0x01: 0x0080, 0x02: 0x0080, 0x03: 0x0080, 0x04: 0x0080, 0x05: 0x0080,\n\t0x06: 0x0080, 0x07: 0x0080, 0x08: 0x0080, 0x09: 0x0080, 0x0a: 0x0080, 0x0b: 0x0080,\n\t0x0c: 0x0080, 0x0d: 0x0080, 0x0e: 0x0080, 0x0f: 0x0080, 0x10: 0x0080, 0x11: 0x0080,\n\t0x12: 0x0080, 0x13: 0x0080, 0x14: 0x0080, 0x15: 0x0080, 0x16: 0x0080, 0x17: 0x0080,\n\t0x18: 0x0080, 0x19: 0x0080, 0x1a: 0x0080, 0x1b: 0x0080, 0x1c: 0x0080, 0x1d: 0x0080,\n\t0x1e: 0x0080, 0x1f: 0x0080, 0x20: 0x0080, 0x21: 0x0080, 0x22: 0x0080, 0x23: 0x0080,\n\t0x24: 0x0080, 0x25: 0x0080, 0x26: 0x0080, 0x27: 0x0080, 0x28: 0x0080, 0x29: 0x0080,\n\t0x2a: 0x0080, 0x2b: 0x0080, 0x2c: 0x0080, 0x2d: 0x0008, 0x2e: 0x0008, 0x2f: 0x0080,\n\t0x30: 0x0008, 0x31: 0x0008, 0x32: 0x0008, 0x33: 0x0008, 0x34: 0x0008, 0x35: 0x0008,\n\t0x36: 0x0008, 0x37: 0x0008, 0x38: 0x0008, 0x39: 0x0008, 0x3a: 0x0080, 0x3b: 0x0080,\n\t0x3c: 0x0080, 0x3d: 0x0080, 0x3e: 0x0080, 0x3f: 0x0080,\n\t// Block 0x1, offset 0x40\n\t0x40: 0x0080, 0x41: 0xe105, 0x42: 0xe105, 0x43: 0xe105, 0x44: 0xe105, 0x45: 0xe105,\n\t0x46: 0xe105, 0x47: 0xe105, 0x48: 0xe105, 0x49: 0xe105, 0x4a: 0xe105, 0x4b: 0xe105,\n\t0x4c: 0xe105, 0x4d: 0xe105, 0x4e: 0xe105, 0x4f: 0xe105, 0x50: 0xe105, 0x51: 0xe105,\n\t0x52: 0xe105, 0x53: 0xe105, 0x54: 0xe105, 0x55: 0xe105, 0x56: 0xe105, 0x57: 0xe105,\n\t0x58: 0xe105, 0x59: 0xe105, 0x5a: 0xe105, 0x5b: 0x0080, 0x5c: 0x0080, 0x5d: 0x0080,\n\t0x5e: 0x0080, 0x5f: 0x0080, 0x60: 0x0080, 0x61: 0x0008, 0x62: 0x0008, 0x63: 0x0008,\n\t0x64: 0x0008, 0x65: 0x0008, 0x66: 0x0008, 0x67: 0x0008, 0x68: 0x0008, 0x69: 0x0008,\n\t0x6a: 0x0008, 0x6b: 0x0008, 0x6c: 0x0008, 0x6d: 0x0008, 0x6e: 0x0008, 0x6f: 0x0008,\n\t0x70: 0x0008, 0x71: 0x0008, 0x72: 0x0008, 0x73: 0x0008, 0x74: 0x0008, 0x75: 0x0008,\n\t0x76: 0x0008, 0x77: 0x0008, 0x78: 0x0008, 0x79: 0x0008, 0x7a: 0x0008, 0x7b: 0x0080,\n\t0x7c: 0x0080, 0x7d: 0x0080, 0x7e: 0x0080, 0x7f: 0x0080,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x0040, 0xc1: 0x0040, 0xc2: 0x0040, 0xc3: 0x0040, 0xc4: 0x0040, 0xc5: 0x0040,\n\t0xc6: 0x0040, 0xc7: 0x0040, 0xc8: 0x0040, 0xc9: 0x0040, 0xca: 0x0040, 0xcb: 0x0040,\n\t0xcc: 0x0040, 0xcd: 0x0040, 0xce: 0x0040, 0xcf: 0x0040, 0xd0: 0x0040, 0xd1: 0x0040,\n\t0xd2: 0x0040, 0xd3: 0x0040, 0xd4: 0x0040, 0xd5: 0x0040, 0xd6: 0x0040, 0xd7: 0x0040,\n\t0xd8: 0x0040, 0xd9: 0x0040, 0xda: 0x0040, 0xdb: 0x0040, 0xdc: 0x0040, 0xdd: 0x0040,\n\t0xde: 0x0040, 0xdf: 0x0040, 0xe0: 0x000a, 0xe1: 0x0018, 0xe2: 0x0018, 0xe3: 0x0018,\n\t0xe4: 0x0018, 0xe5: 0x0018, 0xe6: 0x0018, 0xe7: 0x0018, 0xe8: 0x0012, 0xe9: 0x0018,\n\t0xea: 0x0019, 0xeb: 0x0018, 0xec: 0x0018, 0xed: 0x03c0, 0xee: 0x0018, 0xef: 0x0022,\n\t0xf0: 0x0018, 0xf1: 0x0018, 0xf2: 0x0029, 0xf3: 0x0031, 0xf4: 0x003a, 0xf5: 0x0005,\n\t0xf6: 0x0018, 0xf7: 0x0008, 0xf8: 0x0042, 0xf9: 0x0049, 0xfa: 0x0051, 0xfb: 0x0018,\n\t0xfc: 0x0059, 0xfd: 0x0061, 0xfe: 0x0069, 0xff: 0x0018,\n\t// Block 0x4, offset 0x100\n\t0x100: 0xe00d, 0x101: 0x0008, 0x102: 0xe00d, 0x103: 0x0008, 0x104: 0xe00d, 0x105: 0x0008,\n\t0x106: 0xe00d, 0x107: 0x0008, 0x108: 0xe00d, 0x109: 0x0008, 0x10a: 0xe00d, 0x10b: 0x0008,\n\t0x10c: 0xe00d, 0x10d: 0x0008, 0x10e: 0xe00d, 0x10f: 0x0008, 0x110: 0xe00d, 0x111: 0x0008,\n\t0x112: 0xe00d, 0x113: 0x0008, 0x114: 0xe00d, 0x115: 0x0008, 0x116: 0xe00d, 0x117: 0x0008,\n\t0x118: 0xe00d, 0x119: 0x0008, 0x11a: 0xe00d, 0x11b: 0x0008, 0x11c: 0xe00d, 0x11d: 0x0008,\n\t0x11e: 0xe00d, 0x11f: 0x0008, 0x120: 0xe00d, 0x121: 0x0008, 0x122: 0xe00d, 0x123: 0x0008,\n\t0x124: 0xe00d, 0x125: 0x0008, 0x126: 0xe00d, 0x127: 0x0008, 0x128: 0xe00d, 0x129: 0x0008,\n\t0x12a: 0xe00d, 0x12b: 0x0008, 0x12c: 0xe00d, 0x12d: 0x0008, 0x12e: 0xe00d, 0x12f: 0x0008,\n\t0x130: 0x0071, 0x131: 0x0008, 0x132: 0x0035, 0x133: 0x004d, 0x134: 0xe00d, 0x135: 0x0008,\n\t0x136: 0xe00d, 0x137: 0x0008, 0x138: 0x0008, 0x139: 0xe01d, 0x13a: 0x0008, 0x13b: 0xe03d,\n\t0x13c: 0x0008, 0x13d: 0xe01d, 0x13e: 0x0008, 0x13f: 0x0079,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x0079, 0x141: 0xe01d, 0x142: 0x0008, 0x143: 0xe03d, 0x144: 0x0008, 0x145: 0xe01d,\n\t0x146: 0x0008, 0x147: 0xe07d, 0x148: 0x0008, 0x149: 0x0081, 0x14a: 0xe00d, 0x14b: 0x0008,\n\t0x14c: 0xe00d, 0x14d: 0x0008, 0x14e: 0xe00d, 0x14f: 0x0008, 0x150: 0xe00d, 0x151: 0x0008,\n\t0x152: 0xe00d, 0x153: 0x0008, 0x154: 0xe00d, 0x155: 0x0008, 0x156: 0xe00d, 0x157: 0x0008,\n\t0x158: 0xe00d, 0x159: 0x0008, 0x15a: 0xe00d, 0x15b: 0x0008, 0x15c: 0xe00d, 0x15d: 0x0008,\n\t0x15e: 0xe00d, 0x15f: 0x0008, 0x160: 0xe00d, 0x161: 0x0008, 0x162: 0xe00d, 0x163: 0x0008,\n\t0x164: 0xe00d, 0x165: 0x0008, 0x166: 0xe00d, 0x167: 0x0008, 0x168: 0xe00d, 0x169: 0x0008,\n\t0x16a: 0xe00d, 0x16b: 0x0008, 0x16c: 0xe00d, 0x16d: 0x0008, 0x16e: 0xe00d, 0x16f: 0x0008,\n\t0x170: 0xe00d, 0x171: 0x0008, 0x172: 0xe00d, 0x173: 0x0008, 0x174: 0xe00d, 0x175: 0x0008,\n\t0x176: 0xe00d, 0x177: 0x0008, 0x178: 0x0065, 0x179: 0xe01d, 0x17a: 0x0008, 0x17b: 0xe03d,\n\t0x17c: 0x0008, 0x17d: 0xe01d, 0x17e: 0x0008, 0x17f: 0x0089,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x0008, 0x181: 0x007d, 0x182: 0xe00d, 0x183: 0x0008, 0x184: 0xe00d, 0x185: 0x0008,\n\t0x186: 0x007d, 0x187: 0xe07d, 0x188: 0x0008, 0x189: 0x0095, 0x18a: 0x00ad, 0x18b: 0xe03d,\n\t0x18c: 0x0008, 0x18d: 0x0008, 0x18e: 0x00c5, 0x18f: 0x00dd, 0x190: 0x00f5, 0x191: 0xe01d,\n\t0x192: 0x0008, 0x193: 0x010d, 0x194: 0x0125, 0x195: 0x0008, 0x196: 0x013d, 0x197: 0x013d,\n\t0x198: 0xe00d, 0x199: 0x0008, 0x19a: 0x0008, 0x19b: 0x0008, 0x19c: 0x010d, 0x19d: 0x0155,\n\t0x19e: 0x0008, 0x19f: 0x016d, 0x1a0: 0xe00d, 0x1a1: 0x0008, 0x1a2: 0xe00d, 0x1a3: 0x0008,\n\t0x1a4: 0xe00d, 0x1a5: 0x0008, 0x1a6: 0x0185, 0x1a7: 0xe07d, 0x1a8: 0x0008, 0x1a9: 0x019d,\n\t0x1aa: 0x0008, 0x1ab: 0x0008, 0x1ac: 0xe00d, 0x1ad: 0x0008, 0x1ae: 0x0185, 0x1af: 0xe0fd,\n\t0x1b0: 0x0008, 0x1b1: 0x01b5, 0x1b2: 0x01cd, 0x1b3: 0xe03d, 0x1b4: 0x0008, 0x1b5: 0xe01d,\n\t0x1b6: 0x0008, 0x1b7: 0x01e5, 0x1b8: 0xe00d, 0x1b9: 0x0008, 0x1ba: 0x0008, 0x1bb: 0x0008,\n\t0x1bc: 0xe00d, 0x1bd: 0x0008, 0x1be: 0x0008, 0x1bf: 0x0008,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x0008, 0x1c1: 0x0008, 0x1c2: 0x0008, 0x1c3: 0x0008, 0x1c4: 0x0091, 0x1c5: 0x0091,\n\t0x1c6: 0x0091, 0x1c7: 0x01fd, 0x1c8: 0x0215, 0x1c9: 0x022d, 0x1ca: 0x0245, 0x1cb: 0x025d,\n\t0x1cc: 0x0275, 0x1cd: 0xe01d, 0x1ce: 0x0008, 0x1cf: 0xe0fd, 0x1d0: 0x0008, 0x1d1: 0xe01d,\n\t0x1d2: 0x0008, 0x1d3: 0xe03d, 0x1d4: 0x0008, 0x1d5: 0xe01d, 0x1d6: 0x0008, 0x1d7: 0xe07d,\n\t0x1d8: 0x0008, 0x1d9: 0xe01d, 0x1da: 0x0008, 0x1db: 0xe03d, 0x1dc: 0x0008, 0x1dd: 0x0008,\n\t0x1de: 0xe00d, 0x1df: 0x0008, 0x1e0: 0xe00d, 0x1e1: 0x0008, 0x1e2: 0xe00d, 0x1e3: 0x0008,\n\t0x1e4: 0xe00d, 0x1e5: 0x0008, 0x1e6: 0xe00d, 0x1e7: 0x0008, 0x1e8: 0xe00d, 0x1e9: 0x0008,\n\t0x1ea: 0xe00d, 0x1eb: 0x0008, 0x1ec: 0xe00d, 0x1ed: 0x0008, 0x1ee: 0xe00d, 0x1ef: 0x0008,\n\t0x1f0: 0x0008, 0x1f1: 0x028d, 0x1f2: 0x02a5, 0x1f3: 0x02bd, 0x1f4: 0xe00d, 0x1f5: 0x0008,\n\t0x1f6: 0x02d5, 0x1f7: 0x02ed, 0x1f8: 0xe00d, 0x1f9: 0x0008, 0x1fa: 0xe00d, 0x1fb: 0x0008,\n\t0x1fc: 0xe00d, 0x1fd: 0x0008, 0x1fe: 0xe00d, 0x1ff: 0x0008,\n\t// Block 0x8, offset 0x200\n\t0x200: 0xe00d, 0x201: 0x0008, 0x202: 0xe00d, 0x203: 0x0008, 0x204: 0xe00d, 0x205: 0x0008,\n\t0x206: 0xe00d, 0x207: 0x0008, 0x208: 0xe00d, 0x209: 0x0008, 0x20a: 0xe00d, 0x20b: 0x0008,\n\t0x20c: 0xe00d, 0x20d: 0x0008, 0x20e: 0xe00d, 0x20f: 0x0008, 0x210: 0xe00d, 0x211: 0x0008,\n\t0x212: 0xe00d, 0x213: 0x0008, 0x214: 0xe00d, 0x215: 0x0008, 0x216: 0xe00d, 0x217: 0x0008,\n\t0x218: 0xe00d, 0x219: 0x0008, 0x21a: 0xe00d, 0x21b: 0x0008, 0x21c: 0xe00d, 0x21d: 0x0008,\n\t0x21e: 0xe00d, 0x21f: 0x0008, 0x220: 0x0305, 0x221: 0x0008, 0x222: 0xe00d, 0x223: 0x0008,\n\t0x224: 0xe00d, 0x225: 0x0008, 0x226: 0xe00d, 0x227: 0x0008, 0x228: 0xe00d, 0x229: 0x0008,\n\t0x22a: 0xe00d, 0x22b: 0x0008, 0x22c: 0xe00d, 0x22d: 0x0008, 0x22e: 0xe00d, 0x22f: 0x0008,\n\t0x230: 0xe00d, 0x231: 0x0008, 0x232: 0xe00d, 0x233: 0x0008, 0x234: 0x0008, 0x235: 0x0008,\n\t0x236: 0x0008, 0x237: 0x0008, 0x238: 0x0008, 0x239: 0x0008, 0x23a: 0x0099, 0x23b: 0xe03d,\n\t0x23c: 0x0008, 0x23d: 0x031d, 0x23e: 0x00a1, 0x23f: 0x0008,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x0008, 0x241: 0x0008, 0x242: 0x0018, 0x243: 0x0018, 0x244: 0x0018, 0x245: 0x0018,\n\t0x246: 0x0008, 0x247: 0x0008, 0x248: 0x0008, 0x249: 0x0008, 0x24a: 0x0008, 0x24b: 0x0008,\n\t0x24c: 0x0008, 0x24d: 0x0008, 0x24e: 0x0008, 0x24f: 0x0008, 0x250: 0x0008, 0x251: 0x0008,\n\t0x252: 0x0018, 0x253: 0x0018, 0x254: 0x0018, 0x255: 0x0018, 0x256: 0x0018, 0x257: 0x0018,\n\t0x258: 0x00d2, 0x259: 0x00da, 0x25a: 0x00e2, 0x25b: 0x00ea, 0x25c: 0x00f2, 0x25d: 0x00fa,\n\t0x25e: 0x0018, 0x25f: 0x0018, 0x260: 0x03ad, 0x261: 0x0101, 0x262: 0x0089, 0x263: 0x0109,\n\t0x264: 0x03c5, 0x265: 0x0018, 0x266: 0x0018, 0x267: 0x0018, 0x268: 0x0018, 0x269: 0x0018,\n\t0x26a: 0x0018, 0x26b: 0x0018, 0x26c: 0x0008, 0x26d: 0x0018, 0x26e: 0x0008, 0x26f: 0x0018,\n\t0x270: 0x0018, 0x271: 0x0018, 0x272: 0x0018, 0x273: 0x0018, 0x274: 0x0018, 0x275: 0x0018,\n\t0x276: 0x0018, 0x277: 0x0018, 0x278: 0x0018, 0x279: 0x0018, 0x27a: 0x0018, 0x27b: 0x0018,\n\t0x27c: 0x0018, 0x27d: 0x0018, 0x27e: 0x0018, 0x27f: 0x0018,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x03dd, 0x281: 0x03dd, 0x282: 0x3308, 0x283: 0x03f5, 0x284: 0x0111, 0x285: 0x040d,\n\t0x286: 0x3308, 0x287: 0x3308, 0x288: 0x3308, 0x289: 0x3308, 0x28a: 0x3308, 0x28b: 0x3308,\n\t0x28c: 0x3308, 0x28d: 0x3308, 0x28e: 0x3308, 0x28f: 0x33c0, 0x290: 0x3308, 0x291: 0x3308,\n\t0x292: 0x3308, 0x293: 0x3308, 0x294: 0x3308, 0x295: 0x3308, 0x296: 0x3308, 0x297: 0x3308,\n\t0x298: 0x3308, 0x299: 0x3308, 0x29a: 0x3308, 0x29b: 0x3308, 0x29c: 0x3308, 0x29d: 0x3308,\n\t0x29e: 0x3308, 0x29f: 0x3308, 0x2a0: 0x3308, 0x2a1: 0x3308, 0x2a2: 0x3308, 0x2a3: 0x3308,\n\t0x2a4: 0x3308, 0x2a5: 0x3308, 0x2a6: 0x3308, 0x2a7: 0x3308, 0x2a8: 0x3308, 0x2a9: 0x3308,\n\t0x2aa: 0x3308, 0x2ab: 0x3308, 0x2ac: 0x3308, 0x2ad: 0x3308, 0x2ae: 0x3308, 0x2af: 0x3308,\n\t0x2b0: 0xe00d, 0x2b1: 0x0008, 0x2b2: 0xe00d, 0x2b3: 0x0008, 0x2b4: 0x0425, 0x2b5: 0x0008,\n\t0x2b6: 0xe00d, 0x2b7: 0x0008, 0x2b8: 0x0040, 0x2b9: 0x0040, 0x2ba: 0x011a, 0x2bb: 0x0008,\n\t0x2bc: 0x0008, 0x2bd: 0x0008, 0x2be: 0x0122, 0x2bf: 0x043d,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x0040, 0x2c1: 0x0040, 0x2c2: 0x0040, 0x2c3: 0x0040, 0x2c4: 0x003a, 0x2c5: 0x012a,\n\t0x2c6: 0xe155, 0x2c7: 0x0455, 0x2c8: 0xe12d, 0x2c9: 0xe13d, 0x2ca: 0xe12d, 0x2cb: 0x0040,\n\t0x2cc: 0x03dd, 0x2cd: 0x0040, 0x2ce: 0x046d, 0x2cf: 0x0485, 0x2d0: 0x0008, 0x2d1: 0xe105,\n\t0x2d2: 0xe105, 0x2d3: 0xe105, 0x2d4: 0xe105, 0x2d5: 0xe105, 0x2d6: 0xe105, 0x2d7: 0xe105,\n\t0x2d8: 0xe105, 0x2d9: 0xe105, 0x2da: 0xe105, 0x2db: 0xe105, 0x2dc: 0xe105, 0x2dd: 0xe105,\n\t0x2de: 0xe105, 0x2df: 0xe105, 0x2e0: 0x049d, 0x2e1: 0x049d, 0x2e2: 0x0040, 0x2e3: 0x049d,\n\t0x2e4: 0x049d, 0x2e5: 0x049d, 0x2e6: 0x049d, 0x2e7: 0x049d, 0x2e8: 0x049d, 0x2e9: 0x049d,\n\t0x2ea: 0x049d, 0x2eb: 0x049d, 0x2ec: 0x0008, 0x2ed: 0x0008, 0x2ee: 0x0008, 0x2ef: 0x0008,\n\t0x2f0: 0x0008, 0x2f1: 0x0008, 0x2f2: 0x0008, 0x2f3: 0x0008, 0x2f4: 0x0008, 0x2f5: 0x0008,\n\t0x2f6: 0x0008, 0x2f7: 0x0008, 0x2f8: 0x0008, 0x2f9: 0x0008, 0x2fa: 0x0008, 0x2fb: 0x0008,\n\t0x2fc: 0x0008, 0x2fd: 0x0008, 0x2fe: 0x0008, 0x2ff: 0x0008,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x0008, 0x301: 0x0008, 0x302: 0xe00f, 0x303: 0x0008, 0x304: 0x0008, 0x305: 0x0008,\n\t0x306: 0x0008, 0x307: 0x0008, 0x308: 0x0008, 0x309: 0x0008, 0x30a: 0x0008, 0x30b: 0x0008,\n\t0x30c: 0x0008, 0x30d: 0x0008, 0x30e: 0x0008, 0x30f: 0xe0c5, 0x310: 0x04b5, 0x311: 0x04cd,\n\t0x312: 0xe0bd, 0x313: 0xe0f5, 0x314: 0xe0fd, 0x315: 0xe09d, 0x316: 0xe0b5, 0x317: 0x0008,\n\t0x318: 0xe00d, 0x319: 0x0008, 0x31a: 0xe00d, 0x31b: 0x0008, 0x31c: 0xe00d, 0x31d: 0x0008,\n\t0x31e: 0xe00d, 0x31f: 0x0008, 0x320: 0xe00d, 0x321: 0x0008, 0x322: 0xe00d, 0x323: 0x0008,\n\t0x324: 0xe00d, 0x325: 0x0008, 0x326: 0xe00d, 0x327: 0x0008, 0x328: 0xe00d, 0x329: 0x0008,\n\t0x32a: 0xe00d, 0x32b: 0x0008, 0x32c: 0xe00d, 0x32d: 0x0008, 0x32e: 0xe00d, 0x32f: 0x0008,\n\t0x330: 0x04e5, 0x331: 0xe185, 0x332: 0xe18d, 0x333: 0x0008, 0x334: 0x04fd, 0x335: 0x03dd,\n\t0x336: 0x0018, 0x337: 0xe07d, 0x338: 0x0008, 0x339: 0xe1d5, 0x33a: 0xe00d, 0x33b: 0x0008,\n\t0x33c: 0x0008, 0x33d: 0x0515, 0x33e: 0x052d, 0x33f: 0x052d,\n\t// Block 0xd, offset 0x340\n\t0x340: 0x0008, 0x341: 0x0008, 0x342: 0x0008, 0x343: 0x0008, 0x344: 0x0008, 0x345: 0x0008,\n\t0x346: 0x0008, 0x347: 0x0008, 0x348: 0x0008, 0x349: 0x0008, 0x34a: 0x0008, 0x34b: 0x0008,\n\t0x34c: 0x0008, 0x34d: 0x0008, 0x34e: 0x0008, 0x34f: 0x0008, 0x350: 0x0008, 0x351: 0x0008,\n\t0x352: 0x0008, 0x353: 0x0008, 0x354: 0x0008, 0x355: 0x0008, 0x356: 0x0008, 0x357: 0x0008,\n\t0x358: 0x0008, 0x359: 0x0008, 0x35a: 0x0008, 0x35b: 0x0008, 0x35c: 0x0008, 0x35d: 0x0008,\n\t0x35e: 0x0008, 0x35f: 0x0008, 0x360: 0xe00d, 0x361: 0x0008, 0x362: 0xe00d, 0x363: 0x0008,\n\t0x364: 0xe00d, 0x365: 0x0008, 0x366: 0xe00d, 0x367: 0x0008, 0x368: 0xe00d, 0x369: 0x0008,\n\t0x36a: 0xe00d, 0x36b: 0x0008, 0x36c: 0xe00d, 0x36d: 0x0008, 0x36e: 0xe00d, 0x36f: 0x0008,\n\t0x370: 0xe00d, 0x371: 0x0008, 0x372: 0xe00d, 0x373: 0x0008, 0x374: 0xe00d, 0x375: 0x0008,\n\t0x376: 0xe00d, 0x377: 0x0008, 0x378: 0xe00d, 0x379: 0x0008, 0x37a: 0xe00d, 0x37b: 0x0008,\n\t0x37c: 0xe00d, 0x37d: 0x0008, 0x37e: 0xe00d, 0x37f: 0x0008,\n\t// Block 0xe, offset 0x380\n\t0x380: 0xe00d, 0x381: 0x0008, 0x382: 0x0018, 0x383: 0x3308, 0x384: 0x3308, 0x385: 0x3308,\n\t0x386: 0x3308, 0x387: 0x3308, 0x388: 0x3318, 0x389: 0x3318, 0x38a: 0xe00d, 0x38b: 0x0008,\n\t0x38c: 0xe00d, 0x38d: 0x0008, 0x38e: 0xe00d, 0x38f: 0x0008, 0x390: 0xe00d, 0x391: 0x0008,\n\t0x392: 0xe00d, 0x393: 0x0008, 0x394: 0xe00d, 0x395: 0x0008, 0x396: 0xe00d, 0x397: 0x0008,\n\t0x398: 0xe00d, 0x399: 0x0008, 0x39a: 0xe00d, 0x39b: 0x0008, 0x39c: 0xe00d, 0x39d: 0x0008,\n\t0x39e: 0xe00d, 0x39f: 0x0008, 0x3a0: 0xe00d, 0x3a1: 0x0008, 0x3a2: 0xe00d, 0x3a3: 0x0008,\n\t0x3a4: 0xe00d, 0x3a5: 0x0008, 0x3a6: 0xe00d, 0x3a7: 0x0008, 0x3a8: 0xe00d, 0x3a9: 0x0008,\n\t0x3aa: 0xe00d, 0x3ab: 0x0008, 0x3ac: 0xe00d, 0x3ad: 0x0008, 0x3ae: 0xe00d, 0x3af: 0x0008,\n\t0x3b0: 0xe00d, 0x3b1: 0x0008, 0x3b2: 0xe00d, 0x3b3: 0x0008, 0x3b4: 0xe00d, 0x3b5: 0x0008,\n\t0x3b6: 0xe00d, 0x3b7: 0x0008, 0x3b8: 0xe00d, 0x3b9: 0x0008, 0x3ba: 0xe00d, 0x3bb: 0x0008,\n\t0x3bc: 0xe00d, 0x3bd: 0x0008, 0x3be: 0xe00d, 0x3bf: 0x0008,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x0040, 0x3c1: 0xe01d, 0x3c2: 0x0008, 0x3c3: 0xe03d, 0x3c4: 0x0008, 0x3c5: 0xe01d,\n\t0x3c6: 0x0008, 0x3c7: 0xe07d, 0x3c8: 0x0008, 0x3c9: 0xe01d, 0x3ca: 0x0008, 0x3cb: 0xe03d,\n\t0x3cc: 0x0008, 0x3cd: 0xe01d, 0x3ce: 0x0008, 0x3cf: 0x0008, 0x3d0: 0xe00d, 0x3d1: 0x0008,\n\t0x3d2: 0xe00d, 0x3d3: 0x0008, 0x3d4: 0xe00d, 0x3d5: 0x0008, 0x3d6: 0xe00d, 0x3d7: 0x0008,\n\t0x3d8: 0xe00d, 0x3d9: 0x0008, 0x3da: 0xe00d, 0x3db: 0x0008, 0x3dc: 0xe00d, 0x3dd: 0x0008,\n\t0x3de: 0xe00d, 0x3df: 0x0008, 0x3e0: 0xe00d, 0x3e1: 0x0008, 0x3e2: 0xe00d, 0x3e3: 0x0008,\n\t0x3e4: 0xe00d, 0x3e5: 0x0008, 0x3e6: 0xe00d, 0x3e7: 0x0008, 0x3e8: 0xe00d, 0x3e9: 0x0008,\n\t0x3ea: 0xe00d, 0x3eb: 0x0008, 0x3ec: 0xe00d, 0x3ed: 0x0008, 0x3ee: 0xe00d, 0x3ef: 0x0008,\n\t0x3f0: 0xe00d, 0x3f1: 0x0008, 0x3f2: 0xe00d, 0x3f3: 0x0008, 0x3f4: 0xe00d, 0x3f5: 0x0008,\n\t0x3f6: 0xe00d, 0x3f7: 0x0008, 0x3f8: 0xe00d, 0x3f9: 0x0008, 0x3fa: 0xe00d, 0x3fb: 0x0008,\n\t0x3fc: 0xe00d, 0x3fd: 0x0008, 0x3fe: 0xe00d, 0x3ff: 0x0008,\n\t// Block 0x10, offset 0x400\n\t0x400: 0xe00d, 0x401: 0x0008, 0x402: 0xe00d, 0x403: 0x0008, 0x404: 0xe00d, 0x405: 0x0008,\n\t0x406: 0xe00d, 0x407: 0x0008, 0x408: 0xe00d, 0x409: 0x0008, 0x40a: 0xe00d, 0x40b: 0x0008,\n\t0x40c: 0xe00d, 0x40d: 0x0008, 0x40e: 0xe00d, 0x40f: 0x0008, 0x410: 0xe00d, 0x411: 0x0008,\n\t0x412: 0xe00d, 0x413: 0x0008, 0x414: 0xe00d, 0x415: 0x0008, 0x416: 0xe00d, 0x417: 0x0008,\n\t0x418: 0xe00d, 0x419: 0x0008, 0x41a: 0xe00d, 0x41b: 0x0008, 0x41c: 0xe00d, 0x41d: 0x0008,\n\t0x41e: 0xe00d, 0x41f: 0x0008, 0x420: 0xe00d, 0x421: 0x0008, 0x422: 0xe00d, 0x423: 0x0008,\n\t0x424: 0xe00d, 0x425: 0x0008, 0x426: 0xe00d, 0x427: 0x0008, 0x428: 0xe00d, 0x429: 0x0008,\n\t0x42a: 0xe00d, 0x42b: 0x0008, 0x42c: 0xe00d, 0x42d: 0x0008, 0x42e: 0xe00d, 0x42f: 0x0008,\n\t0x430: 0x0040, 0x431: 0x03f5, 0x432: 0x03f5, 0x433: 0x03f5, 0x434: 0x03f5, 0x435: 0x03f5,\n\t0x436: 0x03f5, 0x437: 0x03f5, 0x438: 0x03f5, 0x439: 0x03f5, 0x43a: 0x03f5, 0x43b: 0x03f5,\n\t0x43c: 0x03f5, 0x43d: 0x03f5, 0x43e: 0x03f5, 0x43f: 0x03f5,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x0840, 0x441: 0x0840, 0x442: 0x0840, 0x443: 0x0840, 0x444: 0x0840, 0x445: 0x0840,\n\t0x446: 0x0018, 0x447: 0x0018, 0x448: 0x0818, 0x449: 0x0018, 0x44a: 0x0018, 0x44b: 0x0818,\n\t0x44c: 0x0018, 0x44d: 0x0818, 0x44e: 0x0018, 0x44f: 0x0018, 0x450: 0x3308, 0x451: 0x3308,\n\t0x452: 0x3308, 0x453: 0x3308, 0x454: 0x3308, 0x455: 0x3308, 0x456: 0x3308, 0x457: 0x3308,\n\t0x458: 0x3308, 0x459: 0x3308, 0x45a: 0x3308, 0x45b: 0x0818, 0x45c: 0x0b40, 0x45d: 0x0818,\n\t0x45e: 0x0818, 0x45f: 0x0818, 0x460: 0x0a08, 0x461: 0x0808, 0x462: 0x0c08, 0x463: 0x0c08,\n\t0x464: 0x0c08, 0x465: 0x0c08, 0x466: 0x0a08, 0x467: 0x0c08, 0x468: 0x0a08, 0x469: 0x0c08,\n\t0x46a: 0x0a08, 0x46b: 0x0a08, 0x46c: 0x0a08, 0x46d: 0x0a08, 0x46e: 0x0a08, 0x46f: 0x0c08,\n\t0x470: 0x0c08, 0x471: 0x0c08, 0x472: 0x0c08, 0x473: 0x0a08, 0x474: 0x0a08, 0x475: 0x0a08,\n\t0x476: 0x0a08, 0x477: 0x0a08, 0x478: 0x0a08, 0x479: 0x0a08, 0x47a: 0x0a08, 0x47b: 0x0a08,\n\t0x47c: 0x0a08, 0x47d: 0x0a08, 0x47e: 0x0a08, 0x47f: 0x0a08,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x0818, 0x481: 0x0a08, 0x482: 0x0a08, 0x483: 0x0a08, 0x484: 0x0a08, 0x485: 0x0a08,\n\t0x486: 0x0a08, 0x487: 0x0a08, 0x488: 0x0c08, 0x489: 0x0a08, 0x48a: 0x0a08, 0x48b: 0x3308,\n\t0x48c: 0x3308, 0x48d: 0x3308, 0x48e: 0x3308, 0x48f: 0x3308, 0x490: 0x3308, 0x491: 0x3308,\n\t0x492: 0x3308, 0x493: 0x3308, 0x494: 0x3308, 0x495: 0x3308, 0x496: 0x3308, 0x497: 0x3308,\n\t0x498: 0x3308, 0x499: 0x3308, 0x49a: 0x3308, 0x49b: 0x3308, 0x49c: 0x3308, 0x49d: 0x3308,\n\t0x49e: 0x3308, 0x49f: 0x3308, 0x4a0: 0x0808, 0x4a1: 0x0808, 0x4a2: 0x0808, 0x4a3: 0x0808,\n\t0x4a4: 0x0808, 0x4a5: 0x0808, 0x4a6: 0x0808, 0x4a7: 0x0808, 0x4a8: 0x0808, 0x4a9: 0x0808,\n\t0x4aa: 0x0018, 0x4ab: 0x0818, 0x4ac: 0x0818, 0x4ad: 0x0818, 0x4ae: 0x0a08, 0x4af: 0x0a08,\n\t0x4b0: 0x3308, 0x4b1: 0x0c08, 0x4b2: 0x0c08, 0x4b3: 0x0c08, 0x4b4: 0x0808, 0x4b5: 0x0139,\n\t0x4b6: 0x0141, 0x4b7: 0x0149, 0x4b8: 0x0151, 0x4b9: 0x0a08, 0x4ba: 0x0a08, 0x4bb: 0x0a08,\n\t0x4bc: 0x0a08, 0x4bd: 0x0a08, 0x4be: 0x0a08, 0x4bf: 0x0a08,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x0c08, 0x4c1: 0x0a08, 0x4c2: 0x0a08, 0x4c3: 0x0c08, 0x4c4: 0x0c08, 0x4c5: 0x0c08,\n\t0x4c6: 0x0c08, 0x4c7: 0x0c08, 0x4c8: 0x0c08, 0x4c9: 0x0c08, 0x4ca: 0x0c08, 0x4cb: 0x0c08,\n\t0x4cc: 0x0a08, 0x4cd: 0x0c08, 0x4ce: 0x0a08, 0x4cf: 0x0c08, 0x4d0: 0x0a08, 0x4d1: 0x0a08,\n\t0x4d2: 0x0c08, 0x4d3: 0x0c08, 0x4d4: 0x0818, 0x4d5: 0x0c08, 0x4d6: 0x3308, 0x4d7: 0x3308,\n\t0x4d8: 0x3308, 0x4d9: 0x3308, 0x4da: 0x3308, 0x4db: 0x3308, 0x4dc: 0x3308, 0x4dd: 0x0840,\n\t0x4de: 0x0018, 0x4df: 0x3308, 0x4e0: 0x3308, 0x4e1: 0x3308, 0x4e2: 0x3308, 0x4e3: 0x3308,\n\t0x4e4: 0x3308, 0x4e5: 0x0808, 0x4e6: 0x0808, 0x4e7: 0x3308, 0x4e8: 0x3308, 0x4e9: 0x0018,\n\t0x4ea: 0x3308, 0x4eb: 0x3308, 0x4ec: 0x3308, 0x4ed: 0x3308, 0x4ee: 0x0c08, 0x4ef: 0x0c08,\n\t0x4f0: 0x0008, 0x4f1: 0x0008, 0x4f2: 0x0008, 0x4f3: 0x0008, 0x4f4: 0x0008, 0x4f5: 0x0008,\n\t0x4f6: 0x0008, 0x4f7: 0x0008, 0x4f8: 0x0008, 0x4f9: 0x0008, 0x4fa: 0x0a08, 0x4fb: 0x0a08,\n\t0x4fc: 0x0a08, 0x4fd: 0x0808, 0x4fe: 0x0808, 0x4ff: 0x0a08,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x0818, 0x501: 0x0818, 0x502: 0x0818, 0x503: 0x0818, 0x504: 0x0818, 0x505: 0x0818,\n\t0x506: 0x0818, 0x507: 0x0818, 0x508: 0x0818, 0x509: 0x0818, 0x50a: 0x0818, 0x50b: 0x0818,\n\t0x50c: 0x0818, 0x50d: 0x0818, 0x50e: 0x0040, 0x50f: 0x0b40, 0x510: 0x0c08, 0x511: 0x3308,\n\t0x512: 0x0a08, 0x513: 0x0a08, 0x514: 0x0a08, 0x515: 0x0c08, 0x516: 0x0c08, 0x517: 0x0c08,\n\t0x518: 0x0c08, 0x519: 0x0c08, 0x51a: 0x0a08, 0x51b: 0x0a08, 0x51c: 0x0a08, 0x51d: 0x0a08,\n\t0x51e: 0x0c08, 0x51f: 0x0a08, 0x520: 0x0a08, 0x521: 0x0a08, 0x522: 0x0a08, 0x523: 0x0a08,\n\t0x524: 0x0a08, 0x525: 0x0a08, 0x526: 0x0a08, 0x527: 0x0a08, 0x528: 0x0c08, 0x529: 0x0a08,\n\t0x52a: 0x0c08, 0x52b: 0x0a08, 0x52c: 0x0c08, 0x52d: 0x0a08, 0x52e: 0x0a08, 0x52f: 0x0c08,\n\t0x530: 0x3308, 0x531: 0x3308, 0x532: 0x3308, 0x533: 0x3308, 0x534: 0x3308, 0x535: 0x3308,\n\t0x536: 0x3308, 0x537: 0x3308, 0x538: 0x3308, 0x539: 0x3308, 0x53a: 0x3308, 0x53b: 0x3308,\n\t0x53c: 0x3308, 0x53d: 0x3308, 0x53e: 0x3308, 0x53f: 0x3308,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x0c08, 0x541: 0x0a08, 0x542: 0x0a08, 0x543: 0x0a08, 0x544: 0x0a08, 0x545: 0x0a08,\n\t0x546: 0x0c08, 0x547: 0x0c08, 0x548: 0x0a08, 0x549: 0x0c08, 0x54a: 0x0a08, 0x54b: 0x0a08,\n\t0x54c: 0x0a08, 0x54d: 0x0a08, 0x54e: 0x0a08, 0x54f: 0x0a08, 0x550: 0x0a08, 0x551: 0x0a08,\n\t0x552: 0x0a08, 0x553: 0x0a08, 0x554: 0x0c08, 0x555: 0x0a08, 0x556: 0x0c08, 0x557: 0x0c08,\n\t0x558: 0x0c08, 0x559: 0x3308, 0x55a: 0x3308, 0x55b: 0x3308, 0x55c: 0x0040, 0x55d: 0x0040,\n\t0x55e: 0x0818, 0x55f: 0x0040, 0x560: 0x0a08, 0x561: 0x0808, 0x562: 0x0a08, 0x563: 0x0a08,\n\t0x564: 0x0a08, 0x565: 0x0a08, 0x566: 0x0808, 0x567: 0x0c08, 0x568: 0x0a08, 0x569: 0x0c08,\n\t0x56a: 0x0c08, 0x56b: 0x0040, 0x56c: 0x0040, 0x56d: 0x0040, 0x56e: 0x0040, 0x56f: 0x0040,\n\t0x570: 0x0c08, 0x571: 0x0c08, 0x572: 0x0c08, 0x573: 0x0c08, 0x574: 0x0c08, 0x575: 0x0c08,\n\t0x576: 0x0c08, 0x577: 0x0c08, 0x578: 0x0c08, 0x579: 0x0c08, 0x57a: 0x0c08, 0x57b: 0x0c08,\n\t0x57c: 0x0c08, 0x57d: 0x0c08, 0x57e: 0x0c08, 0x57f: 0x0c08,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x0c08, 0x581: 0x0c08, 0x582: 0x0c08, 0x583: 0x0808, 0x584: 0x0808, 0x585: 0x0808,\n\t0x586: 0x0a08, 0x587: 0x0808, 0x588: 0x0818, 0x589: 0x0a08, 0x58a: 0x0a08, 0x58b: 0x0a08,\n\t0x58c: 0x0a08, 0x58d: 0x0a08, 0x58e: 0x0c08, 0x58f: 0x0040, 0x590: 0x0840, 0x591: 0x0840,\n\t0x592: 0x0040, 0x593: 0x0040, 0x594: 0x0040, 0x595: 0x0040, 0x596: 0x0040, 0x597: 0x0040,\n\t0x598: 0x3308, 0x599: 0x3308, 0x59a: 0x3308, 0x59b: 0x3308, 0x59c: 0x3308, 0x59d: 0x3308,\n\t0x59e: 0x3308, 0x59f: 0x3308, 0x5a0: 0x0a08, 0x5a1: 0x0a08, 0x5a2: 0x0a08, 0x5a3: 0x0a08,\n\t0x5a4: 0x0a08, 0x5a5: 0x0a08, 0x5a6: 0x0a08, 0x5a7: 0x0a08, 0x5a8: 0x0a08, 0x5a9: 0x0a08,\n\t0x5aa: 0x0c08, 0x5ab: 0x0c08, 0x5ac: 0x0c08, 0x5ad: 0x0808, 0x5ae: 0x0c08, 0x5af: 0x0a08,\n\t0x5b0: 0x0a08, 0x5b1: 0x0c08, 0x5b2: 0x0c08, 0x5b3: 0x0a08, 0x5b4: 0x0a08, 0x5b5: 0x0a08,\n\t0x5b6: 0x0a08, 0x5b7: 0x0a08, 0x5b8: 0x0a08, 0x5b9: 0x0c08, 0x5ba: 0x0a08, 0x5bb: 0x0a08,\n\t0x5bc: 0x0a08, 0x5bd: 0x0a08, 0x5be: 0x0a08, 0x5bf: 0x0a08,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x3008, 0x5c1: 0x3308, 0x5c2: 0x3308, 0x5c3: 0x3308, 0x5c4: 0x3308, 0x5c5: 0x3308,\n\t0x5c6: 0x3308, 0x5c7: 0x3308, 0x5c8: 0x3308, 0x5c9: 0x3008, 0x5ca: 0x3008, 0x5cb: 0x3008,\n\t0x5cc: 0x3008, 0x5cd: 0x3b08, 0x5ce: 0x3008, 0x5cf: 0x3008, 0x5d0: 0x0008, 0x5d1: 0x3308,\n\t0x5d2: 0x3308, 0x5d3: 0x3308, 0x5d4: 0x3308, 0x5d5: 0x3308, 0x5d6: 0x3308, 0x5d7: 0x3308,\n\t0x5d8: 0x0159, 0x5d9: 0x0161, 0x5da: 0x0169, 0x5db: 0x0171, 0x5dc: 0x0179, 0x5dd: 0x0181,\n\t0x5de: 0x0189, 0x5df: 0x0191, 0x5e0: 0x0008, 0x5e1: 0x0008, 0x5e2: 0x3308, 0x5e3: 0x3308,\n\t0x5e4: 0x0018, 0x5e5: 0x0018, 0x5e6: 0x0008, 0x5e7: 0x0008, 0x5e8: 0x0008, 0x5e9: 0x0008,\n\t0x5ea: 0x0008, 0x5eb: 0x0008, 0x5ec: 0x0008, 0x5ed: 0x0008, 0x5ee: 0x0008, 0x5ef: 0x0008,\n\t0x5f0: 0x0018, 0x5f1: 0x0008, 0x5f2: 0x0008, 0x5f3: 0x0008, 0x5f4: 0x0008, 0x5f5: 0x0008,\n\t0x5f6: 0x0008, 0x5f7: 0x0008, 0x5f8: 0x0008, 0x5f9: 0x0008, 0x5fa: 0x0008, 0x5fb: 0x0008,\n\t0x5fc: 0x0008, 0x5fd: 0x0008, 0x5fe: 0x0008, 0x5ff: 0x0008,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x0008, 0x601: 0x3308, 0x602: 0x3008, 0x603: 0x3008, 0x604: 0x0040, 0x605: 0x0008,\n\t0x606: 0x0008, 0x607: 0x0008, 0x608: 0x0008, 0x609: 0x0008, 0x60a: 0x0008, 0x60b: 0x0008,\n\t0x60c: 0x0008, 0x60d: 0x0040, 0x60e: 0x0040, 0x60f: 0x0008, 0x610: 0x0008, 0x611: 0x0040,\n\t0x612: 0x0040, 0x613: 0x0008, 0x614: 0x0008, 0x615: 0x0008, 0x616: 0x0008, 0x617: 0x0008,\n\t0x618: 0x0008, 0x619: 0x0008, 0x61a: 0x0008, 0x61b: 0x0008, 0x61c: 0x0008, 0x61d: 0x0008,\n\t0x61e: 0x0008, 0x61f: 0x0008, 0x620: 0x0008, 0x621: 0x0008, 0x622: 0x0008, 0x623: 0x0008,\n\t0x624: 0x0008, 0x625: 0x0008, 0x626: 0x0008, 0x627: 0x0008, 0x628: 0x0008, 0x629: 0x0040,\n\t0x62a: 0x0008, 0x62b: 0x0008, 0x62c: 0x0008, 0x62d: 0x0008, 0x62e: 0x0008, 0x62f: 0x0008,\n\t0x630: 0x0008, 0x631: 0x0040, 0x632: 0x0008, 0x633: 0x0040, 0x634: 0x0040, 0x635: 0x0040,\n\t0x636: 0x0008, 0x637: 0x0008, 0x638: 0x0008, 0x639: 0x0008, 0x63a: 0x0040, 0x63b: 0x0040,\n\t0x63c: 0x3308, 0x63d: 0x0008, 0x63e: 0x3008, 0x63f: 0x3008,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x3008, 0x641: 0x3308, 0x642: 0x3308, 0x643: 0x3308, 0x644: 0x3308, 0x645: 0x0040,\n\t0x646: 0x0040, 0x647: 0x3008, 0x648: 0x3008, 0x649: 0x0040, 0x64a: 0x0040, 0x64b: 0x3008,\n\t0x64c: 0x3008, 0x64d: 0x3b08, 0x64e: 0x0008, 0x64f: 0x0040, 0x650: 0x0040, 0x651: 0x0040,\n\t0x652: 0x0040, 0x653: 0x0040, 0x654: 0x0040, 0x655: 0x0040, 0x656: 0x0040, 0x657: 0x3008,\n\t0x658: 0x0040, 0x659: 0x0040, 0x65a: 0x0040, 0x65b: 0x0040, 0x65c: 0x0199, 0x65d: 0x01a1,\n\t0x65e: 0x0040, 0x65f: 0x01a9, 0x660: 0x0008, 0x661: 0x0008, 0x662: 0x3308, 0x663: 0x3308,\n\t0x664: 0x0040, 0x665: 0x0040, 0x666: 0x0008, 0x667: 0x0008, 0x668: 0x0008, 0x669: 0x0008,\n\t0x66a: 0x0008, 0x66b: 0x0008, 0x66c: 0x0008, 0x66d: 0x0008, 0x66e: 0x0008, 0x66f: 0x0008,\n\t0x670: 0x0008, 0x671: 0x0008, 0x672: 0x0018, 0x673: 0x0018, 0x674: 0x0018, 0x675: 0x0018,\n\t0x676: 0x0018, 0x677: 0x0018, 0x678: 0x0018, 0x679: 0x0018, 0x67a: 0x0018, 0x67b: 0x0018,\n\t0x67c: 0x0008, 0x67d: 0x0018, 0x67e: 0x3308, 0x67f: 0x0040,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x0040, 0x681: 0x3308, 0x682: 0x3308, 0x683: 0x3008, 0x684: 0x0040, 0x685: 0x0008,\n\t0x686: 0x0008, 0x687: 0x0008, 0x688: 0x0008, 0x689: 0x0008, 0x68a: 0x0008, 0x68b: 0x0040,\n\t0x68c: 0x0040, 0x68d: 0x0040, 0x68e: 0x0040, 0x68f: 0x0008, 0x690: 0x0008, 0x691: 0x0040,\n\t0x692: 0x0040, 0x693: 0x0008, 0x694: 0x0008, 0x695: 0x0008, 0x696: 0x0008, 0x697: 0x0008,\n\t0x698: 0x0008, 0x699: 0x0008, 0x69a: 0x0008, 0x69b: 0x0008, 0x69c: 0x0008, 0x69d: 0x0008,\n\t0x69e: 0x0008, 0x69f: 0x0008, 0x6a0: 0x0008, 0x6a1: 0x0008, 0x6a2: 0x0008, 0x6a3: 0x0008,\n\t0x6a4: 0x0008, 0x6a5: 0x0008, 0x6a6: 0x0008, 0x6a7: 0x0008, 0x6a8: 0x0008, 0x6a9: 0x0040,\n\t0x6aa: 0x0008, 0x6ab: 0x0008, 0x6ac: 0x0008, 0x6ad: 0x0008, 0x6ae: 0x0008, 0x6af: 0x0008,\n\t0x6b0: 0x0008, 0x6b1: 0x0040, 0x6b2: 0x0008, 0x6b3: 0x01b1, 0x6b4: 0x0040, 0x6b5: 0x0008,\n\t0x6b6: 0x01b9, 0x6b7: 0x0040, 0x6b8: 0x0008, 0x6b9: 0x0008, 0x6ba: 0x0040, 0x6bb: 0x0040,\n\t0x6bc: 0x3308, 0x6bd: 0x0040, 0x6be: 0x3008, 0x6bf: 0x3008,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x3008, 0x6c1: 0x3308, 0x6c2: 0x3308, 0x6c3: 0x0040, 0x6c4: 0x0040, 0x6c5: 0x0040,\n\t0x6c6: 0x0040, 0x6c7: 0x3308, 0x6c8: 0x3308, 0x6c9: 0x0040, 0x6ca: 0x0040, 0x6cb: 0x3308,\n\t0x6cc: 0x3308, 0x6cd: 0x3b08, 0x6ce: 0x0040, 0x6cf: 0x0040, 0x6d0: 0x0040, 0x6d1: 0x3308,\n\t0x6d2: 0x0040, 0x6d3: 0x0040, 0x6d4: 0x0040, 0x6d5: 0x0040, 0x6d6: 0x0040, 0x6d7: 0x0040,\n\t0x6d8: 0x0040, 0x6d9: 0x01c1, 0x6da: 0x01c9, 0x6db: 0x01d1, 0x6dc: 0x0008, 0x6dd: 0x0040,\n\t0x6de: 0x01d9, 0x6df: 0x0040, 0x6e0: 0x0040, 0x6e1: 0x0040, 0x6e2: 0x0040, 0x6e3: 0x0040,\n\t0x6e4: 0x0040, 0x6e5: 0x0040, 0x6e6: 0x0008, 0x6e7: 0x0008, 0x6e8: 0x0008, 0x6e9: 0x0008,\n\t0x6ea: 0x0008, 0x6eb: 0x0008, 0x6ec: 0x0008, 0x6ed: 0x0008, 0x6ee: 0x0008, 0x6ef: 0x0008,\n\t0x6f0: 0x3308, 0x6f1: 0x3308, 0x6f2: 0x0008, 0x6f3: 0x0008, 0x6f4: 0x0008, 0x6f5: 0x3308,\n\t0x6f6: 0x0018, 0x6f7: 0x0040, 0x6f8: 0x0040, 0x6f9: 0x0040, 0x6fa: 0x0040, 0x6fb: 0x0040,\n\t0x6fc: 0x0040, 0x6fd: 0x0040, 0x6fe: 0x0040, 0x6ff: 0x0040,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x0040, 0x701: 0x3308, 0x702: 0x3308, 0x703: 0x3008, 0x704: 0x0040, 0x705: 0x0008,\n\t0x706: 0x0008, 0x707: 0x0008, 0x708: 0x0008, 0x709: 0x0008, 0x70a: 0x0008, 0x70b: 0x0008,\n\t0x70c: 0x0008, 0x70d: 0x0008, 0x70e: 0x0040, 0x70f: 0x0008, 0x710: 0x0008, 0x711: 0x0008,\n\t0x712: 0x0040, 0x713: 0x0008, 0x714: 0x0008, 0x715: 0x0008, 0x716: 0x0008, 0x717: 0x0008,\n\t0x718: 0x0008, 0x719: 0x0008, 0x71a: 0x0008, 0x71b: 0x0008, 0x71c: 0x0008, 0x71d: 0x0008,\n\t0x71e: 0x0008, 0x71f: 0x0008, 0x720: 0x0008, 0x721: 0x0008, 0x722: 0x0008, 0x723: 0x0008,\n\t0x724: 0x0008, 0x725: 0x0008, 0x726: 0x0008, 0x727: 0x0008, 0x728: 0x0008, 0x729: 0x0040,\n\t0x72a: 0x0008, 0x72b: 0x0008, 0x72c: 0x0008, 0x72d: 0x0008, 0x72e: 0x0008, 0x72f: 0x0008,\n\t0x730: 0x0008, 0x731: 0x0040, 0x732: 0x0008, 0x733: 0x0008, 0x734: 0x0040, 0x735: 0x0008,\n\t0x736: 0x0008, 0x737: 0x0008, 0x738: 0x0008, 0x739: 0x0008, 0x73a: 0x0040, 0x73b: 0x0040,\n\t0x73c: 0x3308, 0x73d: 0x0008, 0x73e: 0x3008, 0x73f: 0x3008,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0x3008, 0x741: 0x3308, 0x742: 0x3308, 0x743: 0x3308, 0x744: 0x3308, 0x745: 0x3308,\n\t0x746: 0x0040, 0x747: 0x3308, 0x748: 0x3308, 0x749: 0x3008, 0x74a: 0x0040, 0x74b: 0x3008,\n\t0x74c: 0x3008, 0x74d: 0x3b08, 0x74e: 0x0040, 0x74f: 0x0040, 0x750: 0x0008, 0x751: 0x0040,\n\t0x752: 0x0040, 0x753: 0x0040, 0x754: 0x0040, 0x755: 0x0040, 0x756: 0x0040, 0x757: 0x0040,\n\t0x758: 0x0040, 0x759: 0x0040, 0x75a: 0x0040, 0x75b: 0x0040, 0x75c: 0x0040, 0x75d: 0x0040,\n\t0x75e: 0x0040, 0x75f: 0x0040, 0x760: 0x0008, 0x761: 0x0008, 0x762: 0x3308, 0x763: 0x3308,\n\t0x764: 0x0040, 0x765: 0x0040, 0x766: 0x0008, 0x767: 0x0008, 0x768: 0x0008, 0x769: 0x0008,\n\t0x76a: 0x0008, 0x76b: 0x0008, 0x76c: 0x0008, 0x76d: 0x0008, 0x76e: 0x0008, 0x76f: 0x0008,\n\t0x770: 0x0018, 0x771: 0x0018, 0x772: 0x0040, 0x773: 0x0040, 0x774: 0x0040, 0x775: 0x0040,\n\t0x776: 0x0040, 0x777: 0x0040, 0x778: 0x0040, 0x779: 0x0008, 0x77a: 0x3308, 0x77b: 0x3308,\n\t0x77c: 0x3308, 0x77d: 0x3308, 0x77e: 0x3308, 0x77f: 0x3308,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0x0040, 0x781: 0x3308, 0x782: 0x3008, 0x783: 0x3008, 0x784: 0x0040, 0x785: 0x0008,\n\t0x786: 0x0008, 0x787: 0x0008, 0x788: 0x0008, 0x789: 0x0008, 0x78a: 0x0008, 0x78b: 0x0008,\n\t0x78c: 0x0008, 0x78d: 0x0040, 0x78e: 0x0040, 0x78f: 0x0008, 0x790: 0x0008, 0x791: 0x0040,\n\t0x792: 0x0040, 0x793: 0x0008, 0x794: 0x0008, 0x795: 0x0008, 0x796: 0x0008, 0x797: 0x0008,\n\t0x798: 0x0008, 0x799: 0x0008, 0x79a: 0x0008, 0x79b: 0x0008, 0x79c: 0x0008, 0x79d: 0x0008,\n\t0x79e: 0x0008, 0x79f: 0x0008, 0x7a0: 0x0008, 0x7a1: 0x0008, 0x7a2: 0x0008, 0x7a3: 0x0008,\n\t0x7a4: 0x0008, 0x7a5: 0x0008, 0x7a6: 0x0008, 0x7a7: 0x0008, 0x7a8: 0x0008, 0x7a9: 0x0040,\n\t0x7aa: 0x0008, 0x7ab: 0x0008, 0x7ac: 0x0008, 0x7ad: 0x0008, 0x7ae: 0x0008, 0x7af: 0x0008,\n\t0x7b0: 0x0008, 0x7b1: 0x0040, 0x7b2: 0x0008, 0x7b3: 0x0008, 0x7b4: 0x0040, 0x7b5: 0x0008,\n\t0x7b6: 0x0008, 0x7b7: 0x0008, 0x7b8: 0x0008, 0x7b9: 0x0008, 0x7ba: 0x0040, 0x7bb: 0x0040,\n\t0x7bc: 0x3308, 0x7bd: 0x0008, 0x7be: 0x3008, 0x7bf: 0x3308,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0x3008, 0x7c1: 0x3308, 0x7c2: 0x3308, 0x7c3: 0x3308, 0x7c4: 0x3308, 0x7c5: 0x0040,\n\t0x7c6: 0x0040, 0x7c7: 0x3008, 0x7c8: 0x3008, 0x7c9: 0x0040, 0x7ca: 0x0040, 0x7cb: 0x3008,\n\t0x7cc: 0x3008, 0x7cd: 0x3b08, 0x7ce: 0x0040, 0x7cf: 0x0040, 0x7d0: 0x0040, 0x7d1: 0x0040,\n\t0x7d2: 0x0040, 0x7d3: 0x0040, 0x7d4: 0x0040, 0x7d5: 0x3308, 0x7d6: 0x3308, 0x7d7: 0x3008,\n\t0x7d8: 0x0040, 0x7d9: 0x0040, 0x7da: 0x0040, 0x7db: 0x0040, 0x7dc: 0x01e1, 0x7dd: 0x01e9,\n\t0x7de: 0x0040, 0x7df: 0x0008, 0x7e0: 0x0008, 0x7e1: 0x0008, 0x7e2: 0x3308, 0x7e3: 0x3308,\n\t0x7e4: 0x0040, 0x7e5: 0x0040, 0x7e6: 0x0008, 0x7e7: 0x0008, 0x7e8: 0x0008, 0x7e9: 0x0008,\n\t0x7ea: 0x0008, 0x7eb: 0x0008, 0x7ec: 0x0008, 0x7ed: 0x0008, 0x7ee: 0x0008, 0x7ef: 0x0008,\n\t0x7f0: 0x0018, 0x7f1: 0x0008, 0x7f2: 0x0018, 0x7f3: 0x0018, 0x7f4: 0x0018, 0x7f5: 0x0018,\n\t0x7f6: 0x0018, 0x7f7: 0x0018, 0x7f8: 0x0040, 0x7f9: 0x0040, 0x7fa: 0x0040, 0x7fb: 0x0040,\n\t0x7fc: 0x0040, 0x7fd: 0x0040, 0x7fe: 0x0040, 0x7ff: 0x0040,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x0040, 0x801: 0x0040, 0x802: 0x3308, 0x803: 0x0008, 0x804: 0x0040, 0x805: 0x0008,\n\t0x806: 0x0008, 0x807: 0x0008, 0x808: 0x0008, 0x809: 0x0008, 0x80a: 0x0008, 0x80b: 0x0040,\n\t0x80c: 0x0040, 0x80d: 0x0040, 0x80e: 0x0008, 0x80f: 0x0008, 0x810: 0x0008, 0x811: 0x0040,\n\t0x812: 0x0008, 0x813: 0x0008, 0x814: 0x0008, 0x815: 0x0008, 0x816: 0x0040, 0x817: 0x0040,\n\t0x818: 0x0040, 0x819: 0x0008, 0x81a: 0x0008, 0x81b: 0x0040, 0x81c: 0x0008, 0x81d: 0x0040,\n\t0x81e: 0x0008, 0x81f: 0x0008, 0x820: 0x0040, 0x821: 0x0040, 0x822: 0x0040, 0x823: 0x0008,\n\t0x824: 0x0008, 0x825: 0x0040, 0x826: 0x0040, 0x827: 0x0040, 0x828: 0x0008, 0x829: 0x0008,\n\t0x82a: 0x0008, 0x82b: 0x0040, 0x82c: 0x0040, 0x82d: 0x0040, 0x82e: 0x0008, 0x82f: 0x0008,\n\t0x830: 0x0008, 0x831: 0x0008, 0x832: 0x0008, 0x833: 0x0008, 0x834: 0x0008, 0x835: 0x0008,\n\t0x836: 0x0008, 0x837: 0x0008, 0x838: 0x0008, 0x839: 0x0008, 0x83a: 0x0040, 0x83b: 0x0040,\n\t0x83c: 0x0040, 0x83d: 0x0040, 0x83e: 0x3008, 0x83f: 0x3008,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x3308, 0x841: 0x3008, 0x842: 0x3008, 0x843: 0x3008, 0x844: 0x3008, 0x845: 0x0040,\n\t0x846: 0x3308, 0x847: 0x3308, 0x848: 0x3308, 0x849: 0x0040, 0x84a: 0x3308, 0x84b: 0x3308,\n\t0x84c: 0x3308, 0x84d: 0x3b08, 0x84e: 0x0040, 0x84f: 0x0040, 0x850: 0x0040, 0x851: 0x0040,\n\t0x852: 0x0040, 0x853: 0x0040, 0x854: 0x0040, 0x855: 0x3308, 0x856: 0x3308, 0x857: 0x0040,\n\t0x858: 0x0008, 0x859: 0x0008, 0x85a: 0x0008, 0x85b: 0x0040, 0x85c: 0x0040, 0x85d: 0x0008,\n\t0x85e: 0x0040, 0x85f: 0x0040, 0x860: 0x0008, 0x861: 0x0008, 0x862: 0x3308, 0x863: 0x3308,\n\t0x864: 0x0040, 0x865: 0x0040, 0x866: 0x0008, 0x867: 0x0008, 0x868: 0x0008, 0x869: 0x0008,\n\t0x86a: 0x0008, 0x86b: 0x0008, 0x86c: 0x0008, 0x86d: 0x0008, 0x86e: 0x0008, 0x86f: 0x0008,\n\t0x870: 0x0040, 0x871: 0x0040, 0x872: 0x0040, 0x873: 0x0040, 0x874: 0x0040, 0x875: 0x0040,\n\t0x876: 0x0040, 0x877: 0x0018, 0x878: 0x0018, 0x879: 0x0018, 0x87a: 0x0018, 0x87b: 0x0018,\n\t0x87c: 0x0018, 0x87d: 0x0018, 0x87e: 0x0018, 0x87f: 0x0018,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x0008, 0x881: 0x3308, 0x882: 0x3008, 0x883: 0x3008, 0x884: 0x0018, 0x885: 0x0008,\n\t0x886: 0x0008, 0x887: 0x0008, 0x888: 0x0008, 0x889: 0x0008, 0x88a: 0x0008, 0x88b: 0x0008,\n\t0x88c: 0x0008, 0x88d: 0x0040, 0x88e: 0x0008, 0x88f: 0x0008, 0x890: 0x0008, 0x891: 0x0040,\n\t0x892: 0x0008, 0x893: 0x0008, 0x894: 0x0008, 0x895: 0x0008, 0x896: 0x0008, 0x897: 0x0008,\n\t0x898: 0x0008, 0x899: 0x0008, 0x89a: 0x0008, 0x89b: 0x0008, 0x89c: 0x0008, 0x89d: 0x0008,\n\t0x89e: 0x0008, 0x89f: 0x0008, 0x8a0: 0x0008, 0x8a1: 0x0008, 0x8a2: 0x0008, 0x8a3: 0x0008,\n\t0x8a4: 0x0008, 0x8a5: 0x0008, 0x8a6: 0x0008, 0x8a7: 0x0008, 0x8a8: 0x0008, 0x8a9: 0x0040,\n\t0x8aa: 0x0008, 0x8ab: 0x0008, 0x8ac: 0x0008, 0x8ad: 0x0008, 0x8ae: 0x0008, 0x8af: 0x0008,\n\t0x8b0: 0x0008, 0x8b1: 0x0008, 0x8b2: 0x0008, 0x8b3: 0x0008, 0x8b4: 0x0040, 0x8b5: 0x0008,\n\t0x8b6: 0x0008, 0x8b7: 0x0008, 0x8b8: 0x0008, 0x8b9: 0x0008, 0x8ba: 0x0040, 0x8bb: 0x0040,\n\t0x8bc: 0x3308, 0x8bd: 0x0008, 0x8be: 0x3008, 0x8bf: 0x3308,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x3008, 0x8c1: 0x3008, 0x8c2: 0x3008, 0x8c3: 0x3008, 0x8c4: 0x3008, 0x8c5: 0x0040,\n\t0x8c6: 0x3308, 0x8c7: 0x3008, 0x8c8: 0x3008, 0x8c9: 0x0040, 0x8ca: 0x3008, 0x8cb: 0x3008,\n\t0x8cc: 0x3308, 0x8cd: 0x3b08, 0x8ce: 0x0040, 0x8cf: 0x0040, 0x8d0: 0x0040, 0x8d1: 0x0040,\n\t0x8d2: 0x0040, 0x8d3: 0x0040, 0x8d4: 0x0040, 0x8d5: 0x3008, 0x8d6: 0x3008, 0x8d7: 0x0040,\n\t0x8d8: 0x0040, 0x8d9: 0x0040, 0x8da: 0x0040, 0x8db: 0x0040, 0x8dc: 0x0040, 0x8dd: 0x0008,\n\t0x8de: 0x0008, 0x8df: 0x0040, 0x8e0: 0x0008, 0x8e1: 0x0008, 0x8e2: 0x3308, 0x8e3: 0x3308,\n\t0x8e4: 0x0040, 0x8e5: 0x0040, 0x8e6: 0x0008, 0x8e7: 0x0008, 0x8e8: 0x0008, 0x8e9: 0x0008,\n\t0x8ea: 0x0008, 0x8eb: 0x0008, 0x8ec: 0x0008, 0x8ed: 0x0008, 0x8ee: 0x0008, 0x8ef: 0x0008,\n\t0x8f0: 0x0040, 0x8f1: 0x0008, 0x8f2: 0x0008, 0x8f3: 0x3008, 0x8f4: 0x0040, 0x8f5: 0x0040,\n\t0x8f6: 0x0040, 0x8f7: 0x0040, 0x8f8: 0x0040, 0x8f9: 0x0040, 0x8fa: 0x0040, 0x8fb: 0x0040,\n\t0x8fc: 0x0040, 0x8fd: 0x0040, 0x8fe: 0x0040, 0x8ff: 0x0040,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x3008, 0x901: 0x3308, 0x902: 0x3308, 0x903: 0x3308, 0x904: 0x3308, 0x905: 0x0040,\n\t0x906: 0x3008, 0x907: 0x3008, 0x908: 0x3008, 0x909: 0x0040, 0x90a: 0x3008, 0x90b: 0x3008,\n\t0x90c: 0x3008, 0x90d: 0x3b08, 0x90e: 0x0008, 0x90f: 0x0018, 0x910: 0x0040, 0x911: 0x0040,\n\t0x912: 0x0040, 0x913: 0x0040, 0x914: 0x0008, 0x915: 0x0008, 0x916: 0x0008, 0x917: 0x3008,\n\t0x918: 0x0018, 0x919: 0x0018, 0x91a: 0x0018, 0x91b: 0x0018, 0x91c: 0x0018, 0x91d: 0x0018,\n\t0x91e: 0x0018, 0x91f: 0x0008, 0x920: 0x0008, 0x921: 0x0008, 0x922: 0x3308, 0x923: 0x3308,\n\t0x924: 0x0040, 0x925: 0x0040, 0x926: 0x0008, 0x927: 0x0008, 0x928: 0x0008, 0x929: 0x0008,\n\t0x92a: 0x0008, 0x92b: 0x0008, 0x92c: 0x0008, 0x92d: 0x0008, 0x92e: 0x0008, 0x92f: 0x0008,\n\t0x930: 0x0018, 0x931: 0x0018, 0x932: 0x0018, 0x933: 0x0018, 0x934: 0x0018, 0x935: 0x0018,\n\t0x936: 0x0018, 0x937: 0x0018, 0x938: 0x0018, 0x939: 0x0018, 0x93a: 0x0008, 0x93b: 0x0008,\n\t0x93c: 0x0008, 0x93d: 0x0008, 0x93e: 0x0008, 0x93f: 0x0008,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x0040, 0x941: 0x0008, 0x942: 0x0008, 0x943: 0x0040, 0x944: 0x0008, 0x945: 0x0040,\n\t0x946: 0x0008, 0x947: 0x0008, 0x948: 0x0008, 0x949: 0x0008, 0x94a: 0x0008, 0x94b: 0x0040,\n\t0x94c: 0x0008, 0x94d: 0x0008, 0x94e: 0x0008, 0x94f: 0x0008, 0x950: 0x0008, 0x951: 0x0008,\n\t0x952: 0x0008, 0x953: 0x0008, 0x954: 0x0008, 0x955: 0x0008, 0x956: 0x0008, 0x957: 0x0008,\n\t0x958: 0x0008, 0x959: 0x0008, 0x95a: 0x0008, 0x95b: 0x0008, 0x95c: 0x0008, 0x95d: 0x0008,\n\t0x95e: 0x0008, 0x95f: 0x0008, 0x960: 0x0008, 0x961: 0x0008, 0x962: 0x0008, 0x963: 0x0008,\n\t0x964: 0x0040, 0x965: 0x0008, 0x966: 0x0040, 0x967: 0x0008, 0x968: 0x0008, 0x969: 0x0008,\n\t0x96a: 0x0008, 0x96b: 0x0008, 0x96c: 0x0008, 0x96d: 0x0008, 0x96e: 0x0008, 0x96f: 0x0008,\n\t0x970: 0x0008, 0x971: 0x3308, 0x972: 0x0008, 0x973: 0x01f9, 0x974: 0x3308, 0x975: 0x3308,\n\t0x976: 0x3308, 0x977: 0x3308, 0x978: 0x3308, 0x979: 0x3308, 0x97a: 0x3b08, 0x97b: 0x3308,\n\t0x97c: 0x3308, 0x97d: 0x0008, 0x97e: 0x0040, 0x97f: 0x0040,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x0008, 0x981: 0x0008, 0x982: 0x0008, 0x983: 0x0211, 0x984: 0x0008, 0x985: 0x0008,\n\t0x986: 0x0008, 0x987: 0x0008, 0x988: 0x0040, 0x989: 0x0008, 0x98a: 0x0008, 0x98b: 0x0008,\n\t0x98c: 0x0008, 0x98d: 0x0219, 0x98e: 0x0008, 0x98f: 0x0008, 0x990: 0x0008, 0x991: 0x0008,\n\t0x992: 0x0221, 0x993: 0x0008, 0x994: 0x0008, 0x995: 0x0008, 0x996: 0x0008, 0x997: 0x0229,\n\t0x998: 0x0008, 0x999: 0x0008, 0x99a: 0x0008, 0x99b: 0x0008, 0x99c: 0x0231, 0x99d: 0x0008,\n\t0x99e: 0x0008, 0x99f: 0x0008, 0x9a0: 0x0008, 0x9a1: 0x0008, 0x9a2: 0x0008, 0x9a3: 0x0008,\n\t0x9a4: 0x0008, 0x9a5: 0x0008, 0x9a6: 0x0008, 0x9a7: 0x0008, 0x9a8: 0x0008, 0x9a9: 0x0239,\n\t0x9aa: 0x0008, 0x9ab: 0x0008, 0x9ac: 0x0008, 0x9ad: 0x0040, 0x9ae: 0x0040, 0x9af: 0x0040,\n\t0x9b0: 0x0040, 0x9b1: 0x3308, 0x9b2: 0x3308, 0x9b3: 0x0241, 0x9b4: 0x3308, 0x9b5: 0x0249,\n\t0x9b6: 0x0251, 0x9b7: 0x0259, 0x9b8: 0x0261, 0x9b9: 0x0269, 0x9ba: 0x3308, 0x9bb: 0x3308,\n\t0x9bc: 0x3308, 0x9bd: 0x3308, 0x9be: 0x3308, 0x9bf: 0x3008,\n\t// Block 0x27, offset 0x9c0\n\t0x9c0: 0x3308, 0x9c1: 0x0271, 0x9c2: 0x3308, 0x9c3: 0x3308, 0x9c4: 0x3b08, 0x9c5: 0x0018,\n\t0x9c6: 0x3308, 0x9c7: 0x3308, 0x9c8: 0x0008, 0x9c9: 0x0008, 0x9ca: 0x0008, 0x9cb: 0x0008,\n\t0x9cc: 0x0008, 0x9cd: 0x3308, 0x9ce: 0x3308, 0x9cf: 0x3308, 0x9d0: 0x3308, 0x9d1: 0x3308,\n\t0x9d2: 0x3308, 0x9d3: 0x0279, 0x9d4: 0x3308, 0x9d5: 0x3308, 0x9d6: 0x3308, 0x9d7: 0x3308,\n\t0x9d8: 0x0040, 0x9d9: 0x3308, 0x9da: 0x3308, 0x9db: 0x3308, 0x9dc: 0x3308, 0x9dd: 0x0281,\n\t0x9de: 0x3308, 0x9df: 0x3308, 0x9e0: 0x3308, 0x9e1: 0x3308, 0x9e2: 0x0289, 0x9e3: 0x3308,\n\t0x9e4: 0x3308, 0x9e5: 0x3308, 0x9e6: 0x3308, 0x9e7: 0x0291, 0x9e8: 0x3308, 0x9e9: 0x3308,\n\t0x9ea: 0x3308, 0x9eb: 0x3308, 0x9ec: 0x0299, 0x9ed: 0x3308, 0x9ee: 0x3308, 0x9ef: 0x3308,\n\t0x9f0: 0x3308, 0x9f1: 0x3308, 0x9f2: 0x3308, 0x9f3: 0x3308, 0x9f4: 0x3308, 0x9f5: 0x3308,\n\t0x9f6: 0x3308, 0x9f7: 0x3308, 0x9f8: 0x3308, 0x9f9: 0x02a1, 0x9fa: 0x3308, 0x9fb: 0x3308,\n\t0x9fc: 0x3308, 0x9fd: 0x0040, 0x9fe: 0x0018, 0x9ff: 0x0018,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x0008, 0xa01: 0x0008, 0xa02: 0x0008, 0xa03: 0x0008, 0xa04: 0x0008, 0xa05: 0x0008,\n\t0xa06: 0x0008, 0xa07: 0x0008, 0xa08: 0x0008, 0xa09: 0x0008, 0xa0a: 0x0008, 0xa0b: 0x0008,\n\t0xa0c: 0x0008, 0xa0d: 0x0008, 0xa0e: 0x0008, 0xa0f: 0x0008, 0xa10: 0x0008, 0xa11: 0x0008,\n\t0xa12: 0x0008, 0xa13: 0x0008, 0xa14: 0x0008, 0xa15: 0x0008, 0xa16: 0x0008, 0xa17: 0x0008,\n\t0xa18: 0x0008, 0xa19: 0x0008, 0xa1a: 0x0008, 0xa1b: 0x0008, 0xa1c: 0x0008, 0xa1d: 0x0008,\n\t0xa1e: 0x0008, 0xa1f: 0x0008, 0xa20: 0x0008, 0xa21: 0x0008, 0xa22: 0x0008, 0xa23: 0x0008,\n\t0xa24: 0x0008, 0xa25: 0x0008, 0xa26: 0x0008, 0xa27: 0x0008, 0xa28: 0x0008, 0xa29: 0x0008,\n\t0xa2a: 0x0008, 0xa2b: 0x0008, 0xa2c: 0x0019, 0xa2d: 0x02e1, 0xa2e: 0x02e9, 0xa2f: 0x0008,\n\t0xa30: 0x02f1, 0xa31: 0x02f9, 0xa32: 0x0301, 0xa33: 0x0309, 0xa34: 0x00a9, 0xa35: 0x0311,\n\t0xa36: 0x00b1, 0xa37: 0x0319, 0xa38: 0x0101, 0xa39: 0x0321, 0xa3a: 0x0329, 0xa3b: 0x0008,\n\t0xa3c: 0x0051, 0xa3d: 0x0331, 0xa3e: 0x0339, 0xa3f: 0x00b9,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0x0341, 0xa41: 0x0349, 0xa42: 0x00c1, 0xa43: 0x0019, 0xa44: 0x0351, 0xa45: 0x0359,\n\t0xa46: 0x05b5, 0xa47: 0x02e9, 0xa48: 0x02f1, 0xa49: 0x02f9, 0xa4a: 0x0361, 0xa4b: 0x0369,\n\t0xa4c: 0x0371, 0xa4d: 0x0309, 0xa4e: 0x0008, 0xa4f: 0x0319, 0xa50: 0x0321, 0xa51: 0x0379,\n\t0xa52: 0x0051, 0xa53: 0x0381, 0xa54: 0x05cd, 0xa55: 0x05cd, 0xa56: 0x0339, 0xa57: 0x0341,\n\t0xa58: 0x0349, 0xa59: 0x05b5, 0xa5a: 0x0389, 0xa5b: 0x0391, 0xa5c: 0x05e5, 0xa5d: 0x0399,\n\t0xa5e: 0x03a1, 0xa5f: 0x03a9, 0xa60: 0x03b1, 0xa61: 0x03b9, 0xa62: 0x0311, 0xa63: 0x00b9,\n\t0xa64: 0x0349, 0xa65: 0x0391, 0xa66: 0x0399, 0xa67: 0x03a1, 0xa68: 0x03c1, 0xa69: 0x03b1,\n\t0xa6a: 0x03b9, 0xa6b: 0x0008, 0xa6c: 0x0008, 0xa6d: 0x0008, 0xa6e: 0x0008, 0xa6f: 0x0008,\n\t0xa70: 0x0008, 0xa71: 0x0008, 0xa72: 0x0008, 0xa73: 0x0008, 0xa74: 0x0008, 0xa75: 0x0008,\n\t0xa76: 0x0008, 0xa77: 0x0008, 0xa78: 0x03c9, 0xa79: 0x0008, 0xa7a: 0x0008, 0xa7b: 0x0008,\n\t0xa7c: 0x0008, 0xa7d: 0x0008, 0xa7e: 0x0008, 0xa7f: 0x0008,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0x0008, 0xa81: 0x0008, 0xa82: 0x0008, 0xa83: 0x0008, 0xa84: 0x0008, 0xa85: 0x0008,\n\t0xa86: 0x0008, 0xa87: 0x0008, 0xa88: 0x0008, 0xa89: 0x0008, 0xa8a: 0x0008, 0xa8b: 0x0008,\n\t0xa8c: 0x0008, 0xa8d: 0x0008, 0xa8e: 0x0008, 0xa8f: 0x0008, 0xa90: 0x0008, 0xa91: 0x0008,\n\t0xa92: 0x0008, 0xa93: 0x0008, 0xa94: 0x0008, 0xa95: 0x0008, 0xa96: 0x0008, 0xa97: 0x0008,\n\t0xa98: 0x0008, 0xa99: 0x0008, 0xa9a: 0x0008, 0xa9b: 0x03d1, 0xa9c: 0x03d9, 0xa9d: 0x03e1,\n\t0xa9e: 0x03e9, 0xa9f: 0x0371, 0xaa0: 0x03f1, 0xaa1: 0x03f9, 0xaa2: 0x0401, 0xaa3: 0x0409,\n\t0xaa4: 0x0411, 0xaa5: 0x0419, 0xaa6: 0x0421, 0xaa7: 0x05fd, 0xaa8: 0x0429, 0xaa9: 0x0431,\n\t0xaaa: 0xe17d, 0xaab: 0x0439, 0xaac: 0x0441, 0xaad: 0x0449, 0xaae: 0x0451, 0xaaf: 0x0459,\n\t0xab0: 0x0461, 0xab1: 0x0469, 0xab2: 0x0471, 0xab3: 0x0479, 0xab4: 0x0481, 0xab5: 0x0489,\n\t0xab6: 0x0491, 0xab7: 0x0499, 0xab8: 0x0615, 0xab9: 0x04a1, 0xaba: 0x04a9, 0xabb: 0x04b1,\n\t0xabc: 0x04b9, 0xabd: 0x04c1, 0xabe: 0x04c9, 0xabf: 0x04d1,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0xe00d, 0xac1: 0x0008, 0xac2: 0xe00d, 0xac3: 0x0008, 0xac4: 0xe00d, 0xac5: 0x0008,\n\t0xac6: 0xe00d, 0xac7: 0x0008, 0xac8: 0xe00d, 0xac9: 0x0008, 0xaca: 0xe00d, 0xacb: 0x0008,\n\t0xacc: 0xe00d, 0xacd: 0x0008, 0xace: 0xe00d, 0xacf: 0x0008, 0xad0: 0xe00d, 0xad1: 0x0008,\n\t0xad2: 0xe00d, 0xad3: 0x0008, 0xad4: 0xe00d, 0xad5: 0x0008, 0xad6: 0xe00d, 0xad7: 0x0008,\n\t0xad8: 0xe00d, 0xad9: 0x0008, 0xada: 0xe00d, 0xadb: 0x0008, 0xadc: 0xe00d, 0xadd: 0x0008,\n\t0xade: 0xe00d, 0xadf: 0x0008, 0xae0: 0xe00d, 0xae1: 0x0008, 0xae2: 0xe00d, 0xae3: 0x0008,\n\t0xae4: 0xe00d, 0xae5: 0x0008, 0xae6: 0xe00d, 0xae7: 0x0008, 0xae8: 0xe00d, 0xae9: 0x0008,\n\t0xaea: 0xe00d, 0xaeb: 0x0008, 0xaec: 0xe00d, 0xaed: 0x0008, 0xaee: 0xe00d, 0xaef: 0x0008,\n\t0xaf0: 0xe00d, 0xaf1: 0x0008, 0xaf2: 0xe00d, 0xaf3: 0x0008, 0xaf4: 0xe00d, 0xaf5: 0x0008,\n\t0xaf6: 0xe00d, 0xaf7: 0x0008, 0xaf8: 0xe00d, 0xaf9: 0x0008, 0xafa: 0xe00d, 0xafb: 0x0008,\n\t0xafc: 0xe00d, 0xafd: 0x0008, 0xafe: 0xe00d, 0xaff: 0x0008,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0xe00d, 0xb01: 0x0008, 0xb02: 0xe00d, 0xb03: 0x0008, 0xb04: 0xe00d, 0xb05: 0x0008,\n\t0xb06: 0xe00d, 0xb07: 0x0008, 0xb08: 0xe00d, 0xb09: 0x0008, 0xb0a: 0xe00d, 0xb0b: 0x0008,\n\t0xb0c: 0xe00d, 0xb0d: 0x0008, 0xb0e: 0xe00d, 0xb0f: 0x0008, 0xb10: 0xe00d, 0xb11: 0x0008,\n\t0xb12: 0xe00d, 0xb13: 0x0008, 0xb14: 0xe00d, 0xb15: 0x0008, 0xb16: 0x0008, 0xb17: 0x0008,\n\t0xb18: 0x0008, 0xb19: 0x0008, 0xb1a: 0x062d, 0xb1b: 0x064d, 0xb1c: 0x0008, 0xb1d: 0x0008,\n\t0xb1e: 0x04d9, 0xb1f: 0x0008, 0xb20: 0xe00d, 0xb21: 0x0008, 0xb22: 0xe00d, 0xb23: 0x0008,\n\t0xb24: 0xe00d, 0xb25: 0x0008, 0xb26: 0xe00d, 0xb27: 0x0008, 0xb28: 0xe00d, 0xb29: 0x0008,\n\t0xb2a: 0xe00d, 0xb2b: 0x0008, 0xb2c: 0xe00d, 0xb2d: 0x0008, 0xb2e: 0xe00d, 0xb2f: 0x0008,\n\t0xb30: 0xe00d, 0xb31: 0x0008, 0xb32: 0xe00d, 0xb33: 0x0008, 0xb34: 0xe00d, 0xb35: 0x0008,\n\t0xb36: 0xe00d, 0xb37: 0x0008, 0xb38: 0xe00d, 0xb39: 0x0008, 0xb3a: 0xe00d, 0xb3b: 0x0008,\n\t0xb3c: 0xe00d, 0xb3d: 0x0008, 0xb3e: 0xe00d, 0xb3f: 0x0008,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x0008, 0xb41: 0x0008, 0xb42: 0x0008, 0xb43: 0x0008, 0xb44: 0x0008, 0xb45: 0x0008,\n\t0xb46: 0x0040, 0xb47: 0x0040, 0xb48: 0xe045, 0xb49: 0xe045, 0xb4a: 0xe045, 0xb4b: 0xe045,\n\t0xb4c: 0xe045, 0xb4d: 0xe045, 0xb4e: 0x0040, 0xb4f: 0x0040, 0xb50: 0x0008, 0xb51: 0x0008,\n\t0xb52: 0x0008, 0xb53: 0x0008, 0xb54: 0x0008, 0xb55: 0x0008, 0xb56: 0x0008, 0xb57: 0x0008,\n\t0xb58: 0x0040, 0xb59: 0xe045, 0xb5a: 0x0040, 0xb5b: 0xe045, 0xb5c: 0x0040, 0xb5d: 0xe045,\n\t0xb5e: 0x0040, 0xb5f: 0xe045, 0xb60: 0x0008, 0xb61: 0x0008, 0xb62: 0x0008, 0xb63: 0x0008,\n\t0xb64: 0x0008, 0xb65: 0x0008, 0xb66: 0x0008, 0xb67: 0x0008, 0xb68: 0xe045, 0xb69: 0xe045,\n\t0xb6a: 0xe045, 0xb6b: 0xe045, 0xb6c: 0xe045, 0xb6d: 0xe045, 0xb6e: 0xe045, 0xb6f: 0xe045,\n\t0xb70: 0x0008, 0xb71: 0x04e1, 0xb72: 0x0008, 0xb73: 0x04e9, 0xb74: 0x0008, 0xb75: 0x04f1,\n\t0xb76: 0x0008, 0xb77: 0x04f9, 0xb78: 0x0008, 0xb79: 0x0501, 0xb7a: 0x0008, 0xb7b: 0x0509,\n\t0xb7c: 0x0008, 0xb7d: 0x0511, 0xb7e: 0x0040, 0xb7f: 0x0040,\n\t// Block 0x2e, offset 0xb80\n\t0xb80: 0x0519, 0xb81: 0x0521, 0xb82: 0x0529, 0xb83: 0x0531, 0xb84: 0x0539, 0xb85: 0x0541,\n\t0xb86: 0x0549, 0xb87: 0x0551, 0xb88: 0x0519, 0xb89: 0x0521, 0xb8a: 0x0529, 0xb8b: 0x0531,\n\t0xb8c: 0x0539, 0xb8d: 0x0541, 0xb8e: 0x0549, 0xb8f: 0x0551, 0xb90: 0x0559, 0xb91: 0x0561,\n\t0xb92: 0x0569, 0xb93: 0x0571, 0xb94: 0x0579, 0xb95: 0x0581, 0xb96: 0x0589, 0xb97: 0x0591,\n\t0xb98: 0x0559, 0xb99: 0x0561, 0xb9a: 0x0569, 0xb9b: 0x0571, 0xb9c: 0x0579, 0xb9d: 0x0581,\n\t0xb9e: 0x0589, 0xb9f: 0x0591, 0xba0: 0x0599, 0xba1: 0x05a1, 0xba2: 0x05a9, 0xba3: 0x05b1,\n\t0xba4: 0x05b9, 0xba5: 0x05c1, 0xba6: 0x05c9, 0xba7: 0x05d1, 0xba8: 0x0599, 0xba9: 0x05a1,\n\t0xbaa: 0x05a9, 0xbab: 0x05b1, 0xbac: 0x05b9, 0xbad: 0x05c1, 0xbae: 0x05c9, 0xbaf: 0x05d1,\n\t0xbb0: 0x0008, 0xbb1: 0x0008, 0xbb2: 0x05d9, 0xbb3: 0x05e1, 0xbb4: 0x05e9, 0xbb5: 0x0040,\n\t0xbb6: 0x0008, 0xbb7: 0x05f1, 0xbb8: 0xe045, 0xbb9: 0xe045, 0xbba: 0x0665, 0xbbb: 0x04e1,\n\t0xbbc: 0x05e1, 0xbbd: 0x067e, 0xbbe: 0x05f9, 0xbbf: 0x069e,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc0: 0x06be, 0xbc1: 0x0602, 0xbc2: 0x0609, 0xbc3: 0x0611, 0xbc4: 0x0619, 0xbc5: 0x0040,\n\t0xbc6: 0x0008, 0xbc7: 0x0621, 0xbc8: 0x06dd, 0xbc9: 0x04e9, 0xbca: 0x06f5, 0xbcb: 0x04f1,\n\t0xbcc: 0x0611, 0xbcd: 0x062a, 0xbce: 0x0632, 0xbcf: 0x063a, 0xbd0: 0x0008, 0xbd1: 0x0008,\n\t0xbd2: 0x0008, 0xbd3: 0x0641, 0xbd4: 0x0040, 0xbd5: 0x0040, 0xbd6: 0x0008, 0xbd7: 0x0008,\n\t0xbd8: 0xe045, 0xbd9: 0xe045, 0xbda: 0x070d, 0xbdb: 0x04f9, 0xbdc: 0x0040, 0xbdd: 0x064a,\n\t0xbde: 0x0652, 0xbdf: 0x065a, 0xbe0: 0x0008, 0xbe1: 0x0008, 0xbe2: 0x0008, 0xbe3: 0x0661,\n\t0xbe4: 0x0008, 0xbe5: 0x0008, 0xbe6: 0x0008, 0xbe7: 0x0008, 0xbe8: 0xe045, 0xbe9: 0xe045,\n\t0xbea: 0x0725, 0xbeb: 0x0509, 0xbec: 0xe04d, 0xbed: 0x066a, 0xbee: 0x012a, 0xbef: 0x0672,\n\t0xbf0: 0x0040, 0xbf1: 0x0040, 0xbf2: 0x0679, 0xbf3: 0x0681, 0xbf4: 0x0689, 0xbf5: 0x0040,\n\t0xbf6: 0x0008, 0xbf7: 0x0691, 0xbf8: 0x073d, 0xbf9: 0x0501, 0xbfa: 0x0515, 0xbfb: 0x0511,\n\t0xbfc: 0x0681, 0xbfd: 0x0756, 0xbfe: 0x0776, 0xbff: 0x0040,\n\t// Block 0x30, offset 0xc00\n\t0xc00: 0x000a, 0xc01: 0x000a, 0xc02: 0x000a, 0xc03: 0x000a, 0xc04: 0x000a, 0xc05: 0x000a,\n\t0xc06: 0x000a, 0xc07: 0x000a, 0xc08: 0x000a, 0xc09: 0x000a, 0xc0a: 0x000a, 0xc0b: 0x03c0,\n\t0xc0c: 0x0003, 0xc0d: 0x0003, 0xc0e: 0x0340, 0xc0f: 0x0b40, 0xc10: 0x0018, 0xc11: 0xe00d,\n\t0xc12: 0x0018, 0xc13: 0x0018, 0xc14: 0x0018, 0xc15: 0x0018, 0xc16: 0x0018, 0xc17: 0x0796,\n\t0xc18: 0x0018, 0xc19: 0x0018, 0xc1a: 0x0018, 0xc1b: 0x0018, 0xc1c: 0x0018, 0xc1d: 0x0018,\n\t0xc1e: 0x0018, 0xc1f: 0x0018, 0xc20: 0x0018, 0xc21: 0x0018, 0xc22: 0x0018, 0xc23: 0x0018,\n\t0xc24: 0x0040, 0xc25: 0x0040, 0xc26: 0x0040, 0xc27: 0x0018, 0xc28: 0x0040, 0xc29: 0x0040,\n\t0xc2a: 0x0340, 0xc2b: 0x0340, 0xc2c: 0x0340, 0xc2d: 0x0340, 0xc2e: 0x0340, 0xc2f: 0x000a,\n\t0xc30: 0x0018, 0xc31: 0x0018, 0xc32: 0x0018, 0xc33: 0x0699, 0xc34: 0x06a1, 0xc35: 0x0018,\n\t0xc36: 0x06a9, 0xc37: 0x06b1, 0xc38: 0x0018, 0xc39: 0x0018, 0xc3a: 0x0018, 0xc3b: 0x0018,\n\t0xc3c: 0x06ba, 0xc3d: 0x0018, 0xc3e: 0x07b6, 0xc3f: 0x0018,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x0018, 0xc41: 0x0018, 0xc42: 0x0018, 0xc43: 0x0018, 0xc44: 0x0018, 0xc45: 0x0018,\n\t0xc46: 0x0018, 0xc47: 0x06c2, 0xc48: 0x06ca, 0xc49: 0x06d2, 0xc4a: 0x0018, 0xc4b: 0x0018,\n\t0xc4c: 0x0018, 0xc4d: 0x0018, 0xc4e: 0x0018, 0xc4f: 0x0018, 0xc50: 0x0018, 0xc51: 0x0018,\n\t0xc52: 0x0018, 0xc53: 0x0018, 0xc54: 0x0018, 0xc55: 0x0018, 0xc56: 0x0018, 0xc57: 0x06d9,\n\t0xc58: 0x0018, 0xc59: 0x0018, 0xc5a: 0x0018, 0xc5b: 0x0018, 0xc5c: 0x0018, 0xc5d: 0x0018,\n\t0xc5e: 0x0018, 0xc5f: 0x000a, 0xc60: 0x03c0, 0xc61: 0x0340, 0xc62: 0x0340, 0xc63: 0x0340,\n\t0xc64: 0x03c0, 0xc65: 0x0040, 0xc66: 0x0040, 0xc67: 0x0040, 0xc68: 0x0040, 0xc69: 0x0040,\n\t0xc6a: 0x0340, 0xc6b: 0x0340, 0xc6c: 0x0340, 0xc6d: 0x0340, 0xc6e: 0x0340, 0xc6f: 0x0340,\n\t0xc70: 0x06e1, 0xc71: 0x0311, 0xc72: 0x0040, 0xc73: 0x0040, 0xc74: 0x06e9, 0xc75: 0x06f1,\n\t0xc76: 0x06f9, 0xc77: 0x0701, 0xc78: 0x0709, 0xc79: 0x0711, 0xc7a: 0x071a, 0xc7b: 0x07d5,\n\t0xc7c: 0x0722, 0xc7d: 0x072a, 0xc7e: 0x0732, 0xc7f: 0x0329,\n\t// Block 0x32, offset 0xc80\n\t0xc80: 0x06e1, 0xc81: 0x0049, 0xc82: 0x0029, 0xc83: 0x0031, 0xc84: 0x06e9, 0xc85: 0x06f1,\n\t0xc86: 0x06f9, 0xc87: 0x0701, 0xc88: 0x0709, 0xc89: 0x0711, 0xc8a: 0x071a, 0xc8b: 0x07ed,\n\t0xc8c: 0x0722, 0xc8d: 0x072a, 0xc8e: 0x0732, 0xc8f: 0x0040, 0xc90: 0x0019, 0xc91: 0x02f9,\n\t0xc92: 0x0051, 0xc93: 0x0109, 0xc94: 0x0361, 0xc95: 0x00a9, 0xc96: 0x0319, 0xc97: 0x0101,\n\t0xc98: 0x0321, 0xc99: 0x0329, 0xc9a: 0x0339, 0xc9b: 0x0089, 0xc9c: 0x0341, 0xc9d: 0x0040,\n\t0xc9e: 0x0040, 0xc9f: 0x0040, 0xca0: 0x0018, 0xca1: 0x0018, 0xca2: 0x0018, 0xca3: 0x0018,\n\t0xca4: 0x0018, 0xca5: 0x0018, 0xca6: 0x0018, 0xca7: 0x0018, 0xca8: 0x0739, 0xca9: 0x0018,\n\t0xcaa: 0x0018, 0xcab: 0x0018, 0xcac: 0x0018, 0xcad: 0x0018, 0xcae: 0x0018, 0xcaf: 0x0018,\n\t0xcb0: 0x0018, 0xcb1: 0x0018, 0xcb2: 0x0018, 0xcb3: 0x0018, 0xcb4: 0x0018, 0xcb5: 0x0018,\n\t0xcb6: 0x0018, 0xcb7: 0x0018, 0xcb8: 0x0018, 0xcb9: 0x0018, 0xcba: 0x0018, 0xcbb: 0x0018,\n\t0xcbc: 0x0018, 0xcbd: 0x0018, 0xcbe: 0x0018, 0xcbf: 0x0018,\n\t// Block 0x33, offset 0xcc0\n\t0xcc0: 0x0806, 0xcc1: 0x0826, 0xcc2: 0x03d9, 0xcc3: 0x0845, 0xcc4: 0x0018, 0xcc5: 0x0866,\n\t0xcc6: 0x0886, 0xcc7: 0x0369, 0xcc8: 0x0018, 0xcc9: 0x08a5, 0xcca: 0x0309, 0xccb: 0x00a9,\n\t0xccc: 0x00a9, 0xccd: 0x00a9, 0xcce: 0x00a9, 0xccf: 0x0741, 0xcd0: 0x0311, 0xcd1: 0x0311,\n\t0xcd2: 0x0101, 0xcd3: 0x0101, 0xcd4: 0x0018, 0xcd5: 0x0329, 0xcd6: 0x0749, 0xcd7: 0x0018,\n\t0xcd8: 0x0018, 0xcd9: 0x0339, 0xcda: 0x0751, 0xcdb: 0x00b9, 0xcdc: 0x00b9, 0xcdd: 0x00b9,\n\t0xcde: 0x0018, 0xcdf: 0x0018, 0xce0: 0x0759, 0xce1: 0x08c5, 0xce2: 0x0761, 0xce3: 0x0018,\n\t0xce4: 0x04b1, 0xce5: 0x0018, 0xce6: 0x0769, 0xce7: 0x0018, 0xce8: 0x04b1, 0xce9: 0x0018,\n\t0xcea: 0x0319, 0xceb: 0x0771, 0xcec: 0x02e9, 0xced: 0x03d9, 0xcee: 0x0018, 0xcef: 0x02f9,\n\t0xcf0: 0x02f9, 0xcf1: 0x03f1, 0xcf2: 0x0040, 0xcf3: 0x0321, 0xcf4: 0x0051, 0xcf5: 0x0779,\n\t0xcf6: 0x0781, 0xcf7: 0x0789, 0xcf8: 0x0791, 0xcf9: 0x0311, 0xcfa: 0x0018, 0xcfb: 0x08e5,\n\t0xcfc: 0x0799, 0xcfd: 0x03a1, 0xcfe: 0x03a1, 0xcff: 0x0799,\n\t// Block 0x34, offset 0xd00\n\t0xd00: 0x0905, 0xd01: 0x0018, 0xd02: 0x0018, 0xd03: 0x0018, 0xd04: 0x0018, 0xd05: 0x02f1,\n\t0xd06: 0x02f1, 0xd07: 0x02f9, 0xd08: 0x0311, 0xd09: 0x00b1, 0xd0a: 0x0018, 0xd0b: 0x0018,\n\t0xd0c: 0x0018, 0xd0d: 0x0018, 0xd0e: 0x0008, 0xd0f: 0x0018, 0xd10: 0x07a1, 0xd11: 0x07a9,\n\t0xd12: 0x07b1, 0xd13: 0x07b9, 0xd14: 0x07c1, 0xd15: 0x07c9, 0xd16: 0x07d1, 0xd17: 0x07d9,\n\t0xd18: 0x07e1, 0xd19: 0x07e9, 0xd1a: 0x07f1, 0xd1b: 0x07f9, 0xd1c: 0x0801, 0xd1d: 0x0809,\n\t0xd1e: 0x0811, 0xd1f: 0x0819, 0xd20: 0x0311, 0xd21: 0x0821, 0xd22: 0x091d, 0xd23: 0x0829,\n\t0xd24: 0x0391, 0xd25: 0x0831, 0xd26: 0x093d, 0xd27: 0x0839, 0xd28: 0x0841, 0xd29: 0x0109,\n\t0xd2a: 0x0849, 0xd2b: 0x095d, 0xd2c: 0x0101, 0xd2d: 0x03d9, 0xd2e: 0x02f1, 0xd2f: 0x0321,\n\t0xd30: 0x0311, 0xd31: 0x0821, 0xd32: 0x097d, 0xd33: 0x0829, 0xd34: 0x0391, 0xd35: 0x0831,\n\t0xd36: 0x099d, 0xd37: 0x0839, 0xd38: 0x0841, 0xd39: 0x0109, 0xd3a: 0x0849, 0xd3b: 0x09bd,\n\t0xd3c: 0x0101, 0xd3d: 0x03d9, 0xd3e: 0x02f1, 0xd3f: 0x0321,\n\t// Block 0x35, offset 0xd40\n\t0xd40: 0x0018, 0xd41: 0x0018, 0xd42: 0x0018, 0xd43: 0x0018, 0xd44: 0x0018, 0xd45: 0x0018,\n\t0xd46: 0x0018, 0xd47: 0x0018, 0xd48: 0x0018, 0xd49: 0x0018, 0xd4a: 0x0018, 0xd4b: 0x0040,\n\t0xd4c: 0x0040, 0xd4d: 0x0040, 0xd4e: 0x0040, 0xd4f: 0x0040, 0xd50: 0x0040, 0xd51: 0x0040,\n\t0xd52: 0x0040, 0xd53: 0x0040, 0xd54: 0x0040, 0xd55: 0x0040, 0xd56: 0x0040, 0xd57: 0x0040,\n\t0xd58: 0x0040, 0xd59: 0x0040, 0xd5a: 0x0040, 0xd5b: 0x0040, 0xd5c: 0x0040, 0xd5d: 0x0040,\n\t0xd5e: 0x0040, 0xd5f: 0x0040, 0xd60: 0x0049, 0xd61: 0x0029, 0xd62: 0x0031, 0xd63: 0x06e9,\n\t0xd64: 0x06f1, 0xd65: 0x06f9, 0xd66: 0x0701, 0xd67: 0x0709, 0xd68: 0x0711, 0xd69: 0x0879,\n\t0xd6a: 0x0881, 0xd6b: 0x0889, 0xd6c: 0x0891, 0xd6d: 0x0899, 0xd6e: 0x08a1, 0xd6f: 0x08a9,\n\t0xd70: 0x08b1, 0xd71: 0x08b9, 0xd72: 0x08c1, 0xd73: 0x08c9, 0xd74: 0x0a1e, 0xd75: 0x0a3e,\n\t0xd76: 0x0a5e, 0xd77: 0x0a7e, 0xd78: 0x0a9e, 0xd79: 0x0abe, 0xd7a: 0x0ade, 0xd7b: 0x0afe,\n\t0xd7c: 0x0b1e, 0xd7d: 0x08d2, 0xd7e: 0x08da, 0xd7f: 0x08e2,\n\t// Block 0x36, offset 0xd80\n\t0xd80: 0x08ea, 0xd81: 0x08f2, 0xd82: 0x08fa, 0xd83: 0x0902, 0xd84: 0x090a, 0xd85: 0x0912,\n\t0xd86: 0x091a, 0xd87: 0x0922, 0xd88: 0x0040, 0xd89: 0x0040, 0xd8a: 0x0040, 0xd8b: 0x0040,\n\t0xd8c: 0x0040, 0xd8d: 0x0040, 0xd8e: 0x0040, 0xd8f: 0x0040, 0xd90: 0x0040, 0xd91: 0x0040,\n\t0xd92: 0x0040, 0xd93: 0x0040, 0xd94: 0x0040, 0xd95: 0x0040, 0xd96: 0x0040, 0xd97: 0x0040,\n\t0xd98: 0x0040, 0xd99: 0x0040, 0xd9a: 0x0040, 0xd9b: 0x0040, 0xd9c: 0x0b3e, 0xd9d: 0x0b5e,\n\t0xd9e: 0x0b7e, 0xd9f: 0x0b9e, 0xda0: 0x0bbe, 0xda1: 0x0bde, 0xda2: 0x0bfe, 0xda3: 0x0c1e,\n\t0xda4: 0x0c3e, 0xda5: 0x0c5e, 0xda6: 0x0c7e, 0xda7: 0x0c9e, 0xda8: 0x0cbe, 0xda9: 0x0cde,\n\t0xdaa: 0x0cfe, 0xdab: 0x0d1e, 0xdac: 0x0d3e, 0xdad: 0x0d5e, 0xdae: 0x0d7e, 0xdaf: 0x0d9e,\n\t0xdb0: 0x0dbe, 0xdb1: 0x0dde, 0xdb2: 0x0dfe, 0xdb3: 0x0e1e, 0xdb4: 0x0e3e, 0xdb5: 0x0e5e,\n\t0xdb6: 0x0019, 0xdb7: 0x02e9, 0xdb8: 0x03d9, 0xdb9: 0x02f1, 0xdba: 0x02f9, 0xdbb: 0x03f1,\n\t0xdbc: 0x0309, 0xdbd: 0x00a9, 0xdbe: 0x0311, 0xdbf: 0x00b1,\n\t// Block 0x37, offset 0xdc0\n\t0xdc0: 0x0319, 0xdc1: 0x0101, 0xdc2: 0x0321, 0xdc3: 0x0329, 0xdc4: 0x0051, 0xdc5: 0x0339,\n\t0xdc6: 0x0751, 0xdc7: 0x00b9, 0xdc8: 0x0089, 0xdc9: 0x0341, 0xdca: 0x0349, 0xdcb: 0x0391,\n\t0xdcc: 0x00c1, 0xdcd: 0x0109, 0xdce: 0x00c9, 0xdcf: 0x04b1, 0xdd0: 0x0019, 0xdd1: 0x02e9,\n\t0xdd2: 0x03d9, 0xdd3: 0x02f1, 0xdd4: 0x02f9, 0xdd5: 0x03f1, 0xdd6: 0x0309, 0xdd7: 0x00a9,\n\t0xdd8: 0x0311, 0xdd9: 0x00b1, 0xdda: 0x0319, 0xddb: 0x0101, 0xddc: 0x0321, 0xddd: 0x0329,\n\t0xdde: 0x0051, 0xddf: 0x0339, 0xde0: 0x0751, 0xde1: 0x00b9, 0xde2: 0x0089, 0xde3: 0x0341,\n\t0xde4: 0x0349, 0xde5: 0x0391, 0xde6: 0x00c1, 0xde7: 0x0109, 0xde8: 0x00c9, 0xde9: 0x04b1,\n\t0xdea: 0x06e1, 0xdeb: 0x0018, 0xdec: 0x0018, 0xded: 0x0018, 0xdee: 0x0018, 0xdef: 0x0018,\n\t0xdf0: 0x0018, 0xdf1: 0x0018, 0xdf2: 0x0018, 0xdf3: 0x0018, 0xdf4: 0x0018, 0xdf5: 0x0018,\n\t0xdf6: 0x0018, 0xdf7: 0x0018, 0xdf8: 0x0018, 0xdf9: 0x0018, 0xdfa: 0x0018, 0xdfb: 0x0018,\n\t0xdfc: 0x0018, 0xdfd: 0x0018, 0xdfe: 0x0018, 0xdff: 0x0018,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0x0008, 0xe01: 0x0008, 0xe02: 0x0008, 0xe03: 0x0008, 0xe04: 0x0008, 0xe05: 0x0008,\n\t0xe06: 0x0008, 0xe07: 0x0008, 0xe08: 0x0008, 0xe09: 0x0008, 0xe0a: 0x0008, 0xe0b: 0x0008,\n\t0xe0c: 0x0008, 0xe0d: 0x0008, 0xe0e: 0x0008, 0xe0f: 0x0008, 0xe10: 0x0008, 0xe11: 0x0008,\n\t0xe12: 0x0008, 0xe13: 0x0008, 0xe14: 0x0008, 0xe15: 0x0008, 0xe16: 0x0008, 0xe17: 0x0008,\n\t0xe18: 0x0008, 0xe19: 0x0008, 0xe1a: 0x0008, 0xe1b: 0x0008, 0xe1c: 0x0008, 0xe1d: 0x0008,\n\t0xe1e: 0x0008, 0xe1f: 0x0008, 0xe20: 0xe00d, 0xe21: 0x0008, 0xe22: 0x0941, 0xe23: 0x0ed5,\n\t0xe24: 0x0949, 0xe25: 0x0008, 0xe26: 0x0008, 0xe27: 0xe07d, 0xe28: 0x0008, 0xe29: 0xe01d,\n\t0xe2a: 0x0008, 0xe2b: 0xe03d, 0xe2c: 0x0008, 0xe2d: 0x0359, 0xe2e: 0x0441, 0xe2f: 0x0351,\n\t0xe30: 0x03d1, 0xe31: 0x0008, 0xe32: 0xe00d, 0xe33: 0x0008, 0xe34: 0x0008, 0xe35: 0xe01d,\n\t0xe36: 0x0008, 0xe37: 0x0008, 0xe38: 0x0008, 0xe39: 0x0008, 0xe3a: 0x0008, 0xe3b: 0x0008,\n\t0xe3c: 0x00b1, 0xe3d: 0x0391, 0xe3e: 0x0951, 0xe3f: 0x0959,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0xe00d, 0xe41: 0x0008, 0xe42: 0xe00d, 0xe43: 0x0008, 0xe44: 0xe00d, 0xe45: 0x0008,\n\t0xe46: 0xe00d, 0xe47: 0x0008, 0xe48: 0xe00d, 0xe49: 0x0008, 0xe4a: 0xe00d, 0xe4b: 0x0008,\n\t0xe4c: 0xe00d, 0xe4d: 0x0008, 0xe4e: 0xe00d, 0xe4f: 0x0008, 0xe50: 0xe00d, 0xe51: 0x0008,\n\t0xe52: 0xe00d, 0xe53: 0x0008, 0xe54: 0xe00d, 0xe55: 0x0008, 0xe56: 0xe00d, 0xe57: 0x0008,\n\t0xe58: 0xe00d, 0xe59: 0x0008, 0xe5a: 0xe00d, 0xe5b: 0x0008, 0xe5c: 0xe00d, 0xe5d: 0x0008,\n\t0xe5e: 0xe00d, 0xe5f: 0x0008, 0xe60: 0xe00d, 0xe61: 0x0008, 0xe62: 0xe00d, 0xe63: 0x0008,\n\t0xe64: 0x0008, 0xe65: 0x0018, 0xe66: 0x0018, 0xe67: 0x0018, 0xe68: 0x0018, 0xe69: 0x0018,\n\t0xe6a: 0x0018, 0xe6b: 0xe03d, 0xe6c: 0x0008, 0xe6d: 0xe01d, 0xe6e: 0x0008, 0xe6f: 0x3308,\n\t0xe70: 0x3308, 0xe71: 0x3308, 0xe72: 0xe00d, 0xe73: 0x0008, 0xe74: 0x0040, 0xe75: 0x0040,\n\t0xe76: 0x0040, 0xe77: 0x0040, 0xe78: 0x0040, 0xe79: 0x0018, 0xe7a: 0x0018, 0xe7b: 0x0018,\n\t0xe7c: 0x0018, 0xe7d: 0x0018, 0xe7e: 0x0018, 0xe7f: 0x0018,\n\t// Block 0x3a, offset 0xe80\n\t0xe80: 0x2715, 0xe81: 0x2735, 0xe82: 0x2755, 0xe83: 0x2775, 0xe84: 0x2795, 0xe85: 0x27b5,\n\t0xe86: 0x27d5, 0xe87: 0x27f5, 0xe88: 0x2815, 0xe89: 0x2835, 0xe8a: 0x2855, 0xe8b: 0x2875,\n\t0xe8c: 0x2895, 0xe8d: 0x28b5, 0xe8e: 0x28d5, 0xe8f: 0x28f5, 0xe90: 0x2915, 0xe91: 0x2935,\n\t0xe92: 0x2955, 0xe93: 0x2975, 0xe94: 0x2995, 0xe95: 0x29b5, 0xe96: 0x0040, 0xe97: 0x0040,\n\t0xe98: 0x0040, 0xe99: 0x0040, 0xe9a: 0x0040, 0xe9b: 0x0040, 0xe9c: 0x0040, 0xe9d: 0x0040,\n\t0xe9e: 0x0040, 0xe9f: 0x0040, 0xea0: 0x0040, 0xea1: 0x0040, 0xea2: 0x0040, 0xea3: 0x0040,\n\t0xea4: 0x0040, 0xea5: 0x0040, 0xea6: 0x0040, 0xea7: 0x0040, 0xea8: 0x0040, 0xea9: 0x0040,\n\t0xeaa: 0x0040, 0xeab: 0x0040, 0xeac: 0x0040, 0xead: 0x0040, 0xeae: 0x0040, 0xeaf: 0x0040,\n\t0xeb0: 0x0040, 0xeb1: 0x0040, 0xeb2: 0x0040, 0xeb3: 0x0040, 0xeb4: 0x0040, 0xeb5: 0x0040,\n\t0xeb6: 0x0040, 0xeb7: 0x0040, 0xeb8: 0x0040, 0xeb9: 0x0040, 0xeba: 0x0040, 0xebb: 0x0040,\n\t0xebc: 0x0040, 0xebd: 0x0040, 0xebe: 0x0040, 0xebf: 0x0040,\n\t// Block 0x3b, offset 0xec0\n\t0xec0: 0x000a, 0xec1: 0x0018, 0xec2: 0x0961, 0xec3: 0x0018, 0xec4: 0x0018, 0xec5: 0x0008,\n\t0xec6: 0x0008, 0xec7: 0x0008, 0xec8: 0x0018, 0xec9: 0x0018, 0xeca: 0x0018, 0xecb: 0x0018,\n\t0xecc: 0x0018, 0xecd: 0x0018, 0xece: 0x0018, 0xecf: 0x0018, 0xed0: 0x0018, 0xed1: 0x0018,\n\t0xed2: 0x0018, 0xed3: 0x0018, 0xed4: 0x0018, 0xed5: 0x0018, 0xed6: 0x0018, 0xed7: 0x0018,\n\t0xed8: 0x0018, 0xed9: 0x0018, 0xeda: 0x0018, 0xedb: 0x0018, 0xedc: 0x0018, 0xedd: 0x0018,\n\t0xede: 0x0018, 0xedf: 0x0018, 0xee0: 0x0018, 0xee1: 0x0018, 0xee2: 0x0018, 0xee3: 0x0018,\n\t0xee4: 0x0018, 0xee5: 0x0018, 0xee6: 0x0018, 0xee7: 0x0018, 0xee8: 0x0018, 0xee9: 0x0018,\n\t0xeea: 0x3308, 0xeeb: 0x3308, 0xeec: 0x3308, 0xeed: 0x3308, 0xeee: 0x3018, 0xeef: 0x3018,\n\t0xef0: 0x0018, 0xef1: 0x0018, 0xef2: 0x0018, 0xef3: 0x0018, 0xef4: 0x0018, 0xef5: 0x0018,\n\t0xef6: 0xe125, 0xef7: 0x0018, 0xef8: 0x29d5, 0xef9: 0x29f5, 0xefa: 0x2a15, 0xefb: 0x0018,\n\t0xefc: 0x0008, 0xefd: 0x0018, 0xefe: 0x0018, 0xeff: 0x0018,\n\t// Block 0x3c, offset 0xf00\n\t0xf00: 0x2b55, 0xf01: 0x2b75, 0xf02: 0x2b95, 0xf03: 0x2bb5, 0xf04: 0x2bd5, 0xf05: 0x2bf5,\n\t0xf06: 0x2bf5, 0xf07: 0x2bf5, 0xf08: 0x2c15, 0xf09: 0x2c15, 0xf0a: 0x2c15, 0xf0b: 0x2c15,\n\t0xf0c: 0x2c35, 0xf0d: 0x2c35, 0xf0e: 0x2c35, 0xf0f: 0x2c55, 0xf10: 0x2c75, 0xf11: 0x2c75,\n\t0xf12: 0x2a95, 0xf13: 0x2a95, 0xf14: 0x2c75, 0xf15: 0x2c75, 0xf16: 0x2c95, 0xf17: 0x2c95,\n\t0xf18: 0x2c75, 0xf19: 0x2c75, 0xf1a: 0x2a95, 0xf1b: 0x2a95, 0xf1c: 0x2c75, 0xf1d: 0x2c75,\n\t0xf1e: 0x2c55, 0xf1f: 0x2c55, 0xf20: 0x2cb5, 0xf21: 0x2cb5, 0xf22: 0x2cd5, 0xf23: 0x2cd5,\n\t0xf24: 0x0040, 0xf25: 0x2cf5, 0xf26: 0x2d15, 0xf27: 0x2d35, 0xf28: 0x2d35, 0xf29: 0x2d55,\n\t0xf2a: 0x2d75, 0xf2b: 0x2d95, 0xf2c: 0x2db5, 0xf2d: 0x2dd5, 0xf2e: 0x2df5, 0xf2f: 0x2e15,\n\t0xf30: 0x2e35, 0xf31: 0x2e55, 0xf32: 0x2e55, 0xf33: 0x2e75, 0xf34: 0x2e95, 0xf35: 0x2e95,\n\t0xf36: 0x2eb5, 0xf37: 0x2ed5, 0xf38: 0x2e75, 0xf39: 0x2ef5, 0xf3a: 0x2f15, 0xf3b: 0x2ef5,\n\t0xf3c: 0x2e75, 0xf3d: 0x2f35, 0xf3e: 0x2f55, 0xf3f: 0x2f75,\n\t// Block 0x3d, offset 0xf40\n\t0xf40: 0x2f95, 0xf41: 0x2fb5, 0xf42: 0x2d15, 0xf43: 0x2cf5, 0xf44: 0x2fd5, 0xf45: 0x2ff5,\n\t0xf46: 0x3015, 0xf47: 0x3035, 0xf48: 0x3055, 0xf49: 0x3075, 0xf4a: 0x3095, 0xf4b: 0x30b5,\n\t0xf4c: 0x30d5, 0xf4d: 0x30f5, 0xf4e: 0x3115, 0xf4f: 0x0040, 0xf50: 0x0018, 0xf51: 0x0018,\n\t0xf52: 0x3135, 0xf53: 0x3155, 0xf54: 0x3175, 0xf55: 0x3195, 0xf56: 0x31b5, 0xf57: 0x31d5,\n\t0xf58: 0x31f5, 0xf59: 0x3215, 0xf5a: 0x3235, 0xf5b: 0x3255, 0xf5c: 0x3175, 0xf5d: 0x3275,\n\t0xf5e: 0x3295, 0xf5f: 0x32b5, 0xf60: 0x0008, 0xf61: 0x0008, 0xf62: 0x0008, 0xf63: 0x0008,\n\t0xf64: 0x0008, 0xf65: 0x0008, 0xf66: 0x0008, 0xf67: 0x0008, 0xf68: 0x0008, 0xf69: 0x0008,\n\t0xf6a: 0x0008, 0xf6b: 0x0008, 0xf6c: 0x0008, 0xf6d: 0x0008, 0xf6e: 0x0008, 0xf6f: 0x0008,\n\t0xf70: 0x0008, 0xf71: 0x0008, 0xf72: 0x0008, 0xf73: 0x0008, 0xf74: 0x0008, 0xf75: 0x0008,\n\t0xf76: 0x0008, 0xf77: 0x0008, 0xf78: 0x0008, 0xf79: 0x0008, 0xf7a: 0x0008, 0xf7b: 0x0008,\n\t0xf7c: 0x0008, 0xf7d: 0x0008, 0xf7e: 0x0008, 0xf7f: 0x0008,\n\t// Block 0x3e, offset 0xf80\n\t0xf80: 0x0b82, 0xf81: 0x0b8a, 0xf82: 0x0b92, 0xf83: 0x0b9a, 0xf84: 0x32d5, 0xf85: 0x32f5,\n\t0xf86: 0x3315, 0xf87: 0x3335, 0xf88: 0x0018, 0xf89: 0x0018, 0xf8a: 0x0018, 0xf8b: 0x0018,\n\t0xf8c: 0x0018, 0xf8d: 0x0018, 0xf8e: 0x0018, 0xf8f: 0x0018, 0xf90: 0x3355, 0xf91: 0x0ba1,\n\t0xf92: 0x0ba9, 0xf93: 0x0bb1, 0xf94: 0x0bb9, 0xf95: 0x0bc1, 0xf96: 0x0bc9, 0xf97: 0x0bd1,\n\t0xf98: 0x0bd9, 0xf99: 0x0be1, 0xf9a: 0x0be9, 0xf9b: 0x0bf1, 0xf9c: 0x0bf9, 0xf9d: 0x0c01,\n\t0xf9e: 0x0c09, 0xf9f: 0x0c11, 0xfa0: 0x3375, 0xfa1: 0x3395, 0xfa2: 0x33b5, 0xfa3: 0x33d5,\n\t0xfa4: 0x33f5, 0xfa5: 0x33f5, 0xfa6: 0x3415, 0xfa7: 0x3435, 0xfa8: 0x3455, 0xfa9: 0x3475,\n\t0xfaa: 0x3495, 0xfab: 0x34b5, 0xfac: 0x34d5, 0xfad: 0x34f5, 0xfae: 0x3515, 0xfaf: 0x3535,\n\t0xfb0: 0x3555, 0xfb1: 0x3575, 0xfb2: 0x3595, 0xfb3: 0x35b5, 0xfb4: 0x35d5, 0xfb5: 0x35f5,\n\t0xfb6: 0x3615, 0xfb7: 0x3635, 0xfb8: 0x3655, 0xfb9: 0x3675, 0xfba: 0x3695, 0xfbb: 0x36b5,\n\t0xfbc: 0x0c19, 0xfbd: 0x0c21, 0xfbe: 0x36d5, 0xfbf: 0x0018,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc0: 0x36f5, 0xfc1: 0x3715, 0xfc2: 0x3735, 0xfc3: 0x3755, 0xfc4: 0x3775, 0xfc5: 0x3795,\n\t0xfc6: 0x37b5, 0xfc7: 0x37d5, 0xfc8: 0x37f5, 0xfc9: 0x3815, 0xfca: 0x3835, 0xfcb: 0x3855,\n\t0xfcc: 0x3875, 0xfcd: 0x3895, 0xfce: 0x38b5, 0xfcf: 0x38d5, 0xfd0: 0x38f5, 0xfd1: 0x3915,\n\t0xfd2: 0x3935, 0xfd3: 0x3955, 0xfd4: 0x3975, 0xfd5: 0x3995, 0xfd6: 0x39b5, 0xfd7: 0x39d5,\n\t0xfd8: 0x39f5, 0xfd9: 0x3a15, 0xfda: 0x3a35, 0xfdb: 0x3a55, 0xfdc: 0x3a75, 0xfdd: 0x3a95,\n\t0xfde: 0x3ab5, 0xfdf: 0x3ad5, 0xfe0: 0x3af5, 0xfe1: 0x3b15, 0xfe2: 0x3b35, 0xfe3: 0x3b55,\n\t0xfe4: 0x3b75, 0xfe5: 0x3b95, 0xfe6: 0x1295, 0xfe7: 0x3bb5, 0xfe8: 0x3bd5, 0xfe9: 0x3bf5,\n\t0xfea: 0x3c15, 0xfeb: 0x3c35, 0xfec: 0x3c55, 0xfed: 0x3c75, 0xfee: 0x23b5, 0xfef: 0x3c95,\n\t0xff0: 0x3cb5, 0xff1: 0x0c29, 0xff2: 0x0c31, 0xff3: 0x0c39, 0xff4: 0x0c41, 0xff5: 0x0c49,\n\t0xff6: 0x0c51, 0xff7: 0x0c59, 0xff8: 0x0c61, 0xff9: 0x0c69, 0xffa: 0x0c71, 0xffb: 0x0c79,\n\t0xffc: 0x0c81, 0xffd: 0x0c89, 0xffe: 0x0c91, 0xfff: 0x0c99,\n\t// Block 0x40, offset 0x1000\n\t0x1000: 0x0ca1, 0x1001: 0x0ca9, 0x1002: 0x0cb1, 0x1003: 0x0cb9, 0x1004: 0x0cc1, 0x1005: 0x0cc9,\n\t0x1006: 0x0cd1, 0x1007: 0x0cd9, 0x1008: 0x0ce1, 0x1009: 0x0ce9, 0x100a: 0x0cf1, 0x100b: 0x0cf9,\n\t0x100c: 0x0d01, 0x100d: 0x3cd5, 0x100e: 0x0d09, 0x100f: 0x3cf5, 0x1010: 0x3d15, 0x1011: 0x3d2d,\n\t0x1012: 0x3d45, 0x1013: 0x3d5d, 0x1014: 0x3d75, 0x1015: 0x3d75, 0x1016: 0x3d5d, 0x1017: 0x3d8d,\n\t0x1018: 0x07d5, 0x1019: 0x3da5, 0x101a: 0x3dbd, 0x101b: 0x3dd5, 0x101c: 0x3ded, 0x101d: 0x3e05,\n\t0x101e: 0x3e1d, 0x101f: 0x3e35, 0x1020: 0x3e4d, 0x1021: 0x3e65, 0x1022: 0x3e7d, 0x1023: 0x3e95,\n\t0x1024: 0x3ead, 0x1025: 0x3ead, 0x1026: 0x3ec5, 0x1027: 0x3ec5, 0x1028: 0x3edd, 0x1029: 0x3edd,\n\t0x102a: 0x3ef5, 0x102b: 0x3f0d, 0x102c: 0x3f25, 0x102d: 0x3f3d, 0x102e: 0x3f55, 0x102f: 0x3f55,\n\t0x1030: 0x3f6d, 0x1031: 0x3f6d, 0x1032: 0x3f6d, 0x1033: 0x3f85, 0x1034: 0x3f9d, 0x1035: 0x3fb5,\n\t0x1036: 0x3fcd, 0x1037: 0x3fb5, 0x1038: 0x3fe5, 0x1039: 0x3ffd, 0x103a: 0x3f85, 0x103b: 0x4015,\n\t0x103c: 0x402d, 0x103d: 0x402d, 0x103e: 0x402d, 0x103f: 0x0d11,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x10f9, 0x1041: 0x1101, 0x1042: 0x40a5, 0x1043: 0x1109, 0x1044: 0x1111, 0x1045: 0x1119,\n\t0x1046: 0x1121, 0x1047: 0x1129, 0x1048: 0x40c5, 0x1049: 0x1131, 0x104a: 0x1139, 0x104b: 0x1141,\n\t0x104c: 0x40e5, 0x104d: 0x40e5, 0x104e: 0x1149, 0x104f: 0x1151, 0x1050: 0x1159, 0x1051: 0x4105,\n\t0x1052: 0x4125, 0x1053: 0x4145, 0x1054: 0x4165, 0x1055: 0x4185, 0x1056: 0x1161, 0x1057: 0x1169,\n\t0x1058: 0x1171, 0x1059: 0x1179, 0x105a: 0x1181, 0x105b: 0x41a5, 0x105c: 0x1189, 0x105d: 0x1191,\n\t0x105e: 0x1199, 0x105f: 0x41c5, 0x1060: 0x41e5, 0x1061: 0x11a1, 0x1062: 0x4205, 0x1063: 0x4225,\n\t0x1064: 0x4245, 0x1065: 0x11a9, 0x1066: 0x4265, 0x1067: 0x11b1, 0x1068: 0x11b9, 0x1069: 0x10f9,\n\t0x106a: 0x4285, 0x106b: 0x42a5, 0x106c: 0x42c5, 0x106d: 0x42e5, 0x106e: 0x11c1, 0x106f: 0x11c9,\n\t0x1070: 0x11d1, 0x1071: 0x11d9, 0x1072: 0x4305, 0x1073: 0x11e1, 0x1074: 0x11e9, 0x1075: 0x11f1,\n\t0x1076: 0x4325, 0x1077: 0x11f9, 0x1078: 0x1201, 0x1079: 0x11f9, 0x107a: 0x1209, 0x107b: 0x1211,\n\t0x107c: 0x4345, 0x107d: 0x1219, 0x107e: 0x1221, 0x107f: 0x1219,\n\t// Block 0x42, offset 0x1080\n\t0x1080: 0x4365, 0x1081: 0x4385, 0x1082: 0x0040, 0x1083: 0x1229, 0x1084: 0x1231, 0x1085: 0x1239,\n\t0x1086: 0x1241, 0x1087: 0x0040, 0x1088: 0x1249, 0x1089: 0x1251, 0x108a: 0x1259, 0x108b: 0x1261,\n\t0x108c: 0x1269, 0x108d: 0x1271, 0x108e: 0x1199, 0x108f: 0x1279, 0x1090: 0x1281, 0x1091: 0x1289,\n\t0x1092: 0x43a5, 0x1093: 0x1291, 0x1094: 0x1121, 0x1095: 0x43c5, 0x1096: 0x43e5, 0x1097: 0x1299,\n\t0x1098: 0x0040, 0x1099: 0x4405, 0x109a: 0x12a1, 0x109b: 0x12a9, 0x109c: 0x12b1, 0x109d: 0x12b9,\n\t0x109e: 0x12c1, 0x109f: 0x12c9, 0x10a0: 0x12d1, 0x10a1: 0x12d9, 0x10a2: 0x12e1, 0x10a3: 0x12e9,\n\t0x10a4: 0x12f1, 0x10a5: 0x12f9, 0x10a6: 0x1301, 0x10a7: 0x1309, 0x10a8: 0x1311, 0x10a9: 0x1319,\n\t0x10aa: 0x1321, 0x10ab: 0x1329, 0x10ac: 0x1331, 0x10ad: 0x1339, 0x10ae: 0x1341, 0x10af: 0x1349,\n\t0x10b0: 0x1351, 0x10b1: 0x1359, 0x10b2: 0x1361, 0x10b3: 0x1369, 0x10b4: 0x1371, 0x10b5: 0x1379,\n\t0x10b6: 0x1381, 0x10b7: 0x1389, 0x10b8: 0x1391, 0x10b9: 0x1399, 0x10ba: 0x13a1, 0x10bb: 0x13a9,\n\t0x10bc: 0x13b1, 0x10bd: 0x13b9, 0x10be: 0x13c1, 0x10bf: 0x4425,\n\t// Block 0x43, offset 0x10c0\n\t0x10c0: 0xe00d, 0x10c1: 0x0008, 0x10c2: 0xe00d, 0x10c3: 0x0008, 0x10c4: 0xe00d, 0x10c5: 0x0008,\n\t0x10c6: 0xe00d, 0x10c7: 0x0008, 0x10c8: 0xe00d, 0x10c9: 0x0008, 0x10ca: 0xe00d, 0x10cb: 0x0008,\n\t0x10cc: 0xe00d, 0x10cd: 0x0008, 0x10ce: 0xe00d, 0x10cf: 0x0008, 0x10d0: 0xe00d, 0x10d1: 0x0008,\n\t0x10d2: 0xe00d, 0x10d3: 0x0008, 0x10d4: 0xe00d, 0x10d5: 0x0008, 0x10d6: 0xe00d, 0x10d7: 0x0008,\n\t0x10d8: 0xe00d, 0x10d9: 0x0008, 0x10da: 0xe00d, 0x10db: 0x0008, 0x10dc: 0xe00d, 0x10dd: 0x0008,\n\t0x10de: 0xe00d, 0x10df: 0x0008, 0x10e0: 0xe00d, 0x10e1: 0x0008, 0x10e2: 0xe00d, 0x10e3: 0x0008,\n\t0x10e4: 0xe00d, 0x10e5: 0x0008, 0x10e6: 0xe00d, 0x10e7: 0x0008, 0x10e8: 0xe00d, 0x10e9: 0x0008,\n\t0x10ea: 0xe00d, 0x10eb: 0x0008, 0x10ec: 0xe00d, 0x10ed: 0x0008, 0x10ee: 0x0008, 0x10ef: 0x3308,\n\t0x10f0: 0x3318, 0x10f1: 0x3318, 0x10f2: 0x3318, 0x10f3: 0x0018, 0x10f4: 0x3308, 0x10f5: 0x3308,\n\t0x10f6: 0x3308, 0x10f7: 0x3308, 0x10f8: 0x3308, 0x10f9: 0x3308, 0x10fa: 0x3308, 0x10fb: 0x3308,\n\t0x10fc: 0x3308, 0x10fd: 0x3308, 0x10fe: 0x0018, 0x10ff: 0x0008,\n\t// Block 0x44, offset 0x1100\n\t0x1100: 0xe00d, 0x1101: 0x0008, 0x1102: 0xe00d, 0x1103: 0x0008, 0x1104: 0xe00d, 0x1105: 0x0008,\n\t0x1106: 0xe00d, 0x1107: 0x0008, 0x1108: 0xe00d, 0x1109: 0x0008, 0x110a: 0xe00d, 0x110b: 0x0008,\n\t0x110c: 0xe00d, 0x110d: 0x0008, 0x110e: 0xe00d, 0x110f: 0x0008, 0x1110: 0xe00d, 0x1111: 0x0008,\n\t0x1112: 0xe00d, 0x1113: 0x0008, 0x1114: 0xe00d, 0x1115: 0x0008, 0x1116: 0xe00d, 0x1117: 0x0008,\n\t0x1118: 0xe00d, 0x1119: 0x0008, 0x111a: 0xe00d, 0x111b: 0x0008, 0x111c: 0x02d1, 0x111d: 0x13c9,\n\t0x111e: 0x3308, 0x111f: 0x3308, 0x1120: 0x0008, 0x1121: 0x0008, 0x1122: 0x0008, 0x1123: 0x0008,\n\t0x1124: 0x0008, 0x1125: 0x0008, 0x1126: 0x0008, 0x1127: 0x0008, 0x1128: 0x0008, 0x1129: 0x0008,\n\t0x112a: 0x0008, 0x112b: 0x0008, 0x112c: 0x0008, 0x112d: 0x0008, 0x112e: 0x0008, 0x112f: 0x0008,\n\t0x1130: 0x0008, 0x1131: 0x0008, 0x1132: 0x0008, 0x1133: 0x0008, 0x1134: 0x0008, 0x1135: 0x0008,\n\t0x1136: 0x0008, 0x1137: 0x0008, 0x1138: 0x0008, 0x1139: 0x0008, 0x113a: 0x0008, 0x113b: 0x0008,\n\t0x113c: 0x0008, 0x113d: 0x0008, 0x113e: 0x0008, 0x113f: 0x0008,\n\t// Block 0x45, offset 0x1140\n\t0x1140: 0x0018, 0x1141: 0x0018, 0x1142: 0x0018, 0x1143: 0x0018, 0x1144: 0x0018, 0x1145: 0x0018,\n\t0x1146: 0x0018, 0x1147: 0x0018, 0x1148: 0x0018, 0x1149: 0x0018, 0x114a: 0x0018, 0x114b: 0x0018,\n\t0x114c: 0x0018, 0x114d: 0x0018, 0x114e: 0x0018, 0x114f: 0x0018, 0x1150: 0x0018, 0x1151: 0x0018,\n\t0x1152: 0x0018, 0x1153: 0x0018, 0x1154: 0x0018, 0x1155: 0x0018, 0x1156: 0x0018, 0x1157: 0x0008,\n\t0x1158: 0x0008, 0x1159: 0x0008, 0x115a: 0x0008, 0x115b: 0x0008, 0x115c: 0x0008, 0x115d: 0x0008,\n\t0x115e: 0x0008, 0x115f: 0x0008, 0x1160: 0x0018, 0x1161: 0x0018, 0x1162: 0xe00d, 0x1163: 0x0008,\n\t0x1164: 0xe00d, 0x1165: 0x0008, 0x1166: 0xe00d, 0x1167: 0x0008, 0x1168: 0xe00d, 0x1169: 0x0008,\n\t0x116a: 0xe00d, 0x116b: 0x0008, 0x116c: 0xe00d, 0x116d: 0x0008, 0x116e: 0xe00d, 0x116f: 0x0008,\n\t0x1170: 0x0008, 0x1171: 0x0008, 0x1172: 0xe00d, 0x1173: 0x0008, 0x1174: 0xe00d, 0x1175: 0x0008,\n\t0x1176: 0xe00d, 0x1177: 0x0008, 0x1178: 0xe00d, 0x1179: 0x0008, 0x117a: 0xe00d, 0x117b: 0x0008,\n\t0x117c: 0xe00d, 0x117d: 0x0008, 0x117e: 0xe00d, 0x117f: 0x0008,\n\t// Block 0x46, offset 0x1180\n\t0x1180: 0xe00d, 0x1181: 0x0008, 0x1182: 0xe00d, 0x1183: 0x0008, 0x1184: 0xe00d, 0x1185: 0x0008,\n\t0x1186: 0xe00d, 0x1187: 0x0008, 0x1188: 0xe00d, 0x1189: 0x0008, 0x118a: 0xe00d, 0x118b: 0x0008,\n\t0x118c: 0xe00d, 0x118d: 0x0008, 0x118e: 0xe00d, 0x118f: 0x0008, 0x1190: 0xe00d, 0x1191: 0x0008,\n\t0x1192: 0xe00d, 0x1193: 0x0008, 0x1194: 0xe00d, 0x1195: 0x0008, 0x1196: 0xe00d, 0x1197: 0x0008,\n\t0x1198: 0xe00d, 0x1199: 0x0008, 0x119a: 0xe00d, 0x119b: 0x0008, 0x119c: 0xe00d, 0x119d: 0x0008,\n\t0x119e: 0xe00d, 0x119f: 0x0008, 0x11a0: 0xe00d, 0x11a1: 0x0008, 0x11a2: 0xe00d, 0x11a3: 0x0008,\n\t0x11a4: 0xe00d, 0x11a5: 0x0008, 0x11a6: 0xe00d, 0x11a7: 0x0008, 0x11a8: 0xe00d, 0x11a9: 0x0008,\n\t0x11aa: 0xe00d, 0x11ab: 0x0008, 0x11ac: 0xe00d, 0x11ad: 0x0008, 0x11ae: 0xe00d, 0x11af: 0x0008,\n\t0x11b0: 0xe0fd, 0x11b1: 0x0008, 0x11b2: 0x0008, 0x11b3: 0x0008, 0x11b4: 0x0008, 0x11b5: 0x0008,\n\t0x11b6: 0x0008, 0x11b7: 0x0008, 0x11b8: 0x0008, 0x11b9: 0xe01d, 0x11ba: 0x0008, 0x11bb: 0xe03d,\n\t0x11bc: 0x0008, 0x11bd: 0x4445, 0x11be: 0xe00d, 0x11bf: 0x0008,\n\t// Block 0x47, offset 0x11c0\n\t0x11c0: 0xe00d, 0x11c1: 0x0008, 0x11c2: 0xe00d, 0x11c3: 0x0008, 0x11c4: 0xe00d, 0x11c5: 0x0008,\n\t0x11c6: 0xe00d, 0x11c7: 0x0008, 0x11c8: 0x0008, 0x11c9: 0x0018, 0x11ca: 0x0018, 0x11cb: 0xe03d,\n\t0x11cc: 0x0008, 0x11cd: 0x0409, 0x11ce: 0x0008, 0x11cf: 0x0008, 0x11d0: 0xe00d, 0x11d1: 0x0008,\n\t0x11d2: 0xe00d, 0x11d3: 0x0008, 0x11d4: 0x0008, 0x11d5: 0x0008, 0x11d6: 0xe00d, 0x11d7: 0x0008,\n\t0x11d8: 0xe00d, 0x11d9: 0x0008, 0x11da: 0xe00d, 0x11db: 0x0008, 0x11dc: 0xe00d, 0x11dd: 0x0008,\n\t0x11de: 0xe00d, 0x11df: 0x0008, 0x11e0: 0xe00d, 0x11e1: 0x0008, 0x11e2: 0xe00d, 0x11e3: 0x0008,\n\t0x11e4: 0xe00d, 0x11e5: 0x0008, 0x11e6: 0xe00d, 0x11e7: 0x0008, 0x11e8: 0xe00d, 0x11e9: 0x0008,\n\t0x11ea: 0x13d1, 0x11eb: 0x0371, 0x11ec: 0x0401, 0x11ed: 0x13d9, 0x11ee: 0x0421, 0x11ef: 0x0008,\n\t0x11f0: 0x13e1, 0x11f1: 0x13e9, 0x11f2: 0x0429, 0x11f3: 0x4465, 0x11f4: 0xe00d, 0x11f5: 0x0008,\n\t0x11f6: 0xe00d, 0x11f7: 0x0008, 0x11f8: 0xe00d, 0x11f9: 0x0008, 0x11fa: 0xe00d, 0x11fb: 0x0008,\n\t0x11fc: 0xe00d, 0x11fd: 0x0008, 0x11fe: 0xe00d, 0x11ff: 0x0008,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0xe00d, 0x1201: 0x0008, 0x1202: 0xe00d, 0x1203: 0x0008, 0x1204: 0x03f5, 0x1205: 0x0479,\n\t0x1206: 0x447d, 0x1207: 0xe07d, 0x1208: 0x0008, 0x1209: 0xe01d, 0x120a: 0x0008, 0x120b: 0x0040,\n\t0x120c: 0x0040, 0x120d: 0x0040, 0x120e: 0x0040, 0x120f: 0x0040, 0x1210: 0xe00d, 0x1211: 0x0008,\n\t0x1212: 0x0040, 0x1213: 0x0008, 0x1214: 0x0040, 0x1215: 0x0008, 0x1216: 0xe00d, 0x1217: 0x0008,\n\t0x1218: 0xe00d, 0x1219: 0x0008, 0x121a: 0x0040, 0x121b: 0x0040, 0x121c: 0x0040, 0x121d: 0x0040,\n\t0x121e: 0x0040, 0x121f: 0x0040, 0x1220: 0x0040, 0x1221: 0x0040, 0x1222: 0x0040, 0x1223: 0x0040,\n\t0x1224: 0x0040, 0x1225: 0x0040, 0x1226: 0x0040, 0x1227: 0x0040, 0x1228: 0x0040, 0x1229: 0x0040,\n\t0x122a: 0x0040, 0x122b: 0x0040, 0x122c: 0x0040, 0x122d: 0x0040, 0x122e: 0x0040, 0x122f: 0x0040,\n\t0x1230: 0x0040, 0x1231: 0x0040, 0x1232: 0x03d9, 0x1233: 0x03f1, 0x1234: 0x0751, 0x1235: 0xe01d,\n\t0x1236: 0x0008, 0x1237: 0x0008, 0x1238: 0x0741, 0x1239: 0x13f1, 0x123a: 0x0008, 0x123b: 0x0008,\n\t0x123c: 0x0008, 0x123d: 0x0008, 0x123e: 0x0008, 0x123f: 0x0008,\n\t// Block 0x49, offset 0x1240\n\t0x1240: 0x650d, 0x1241: 0x652d, 0x1242: 0x654d, 0x1243: 0x656d, 0x1244: 0x658d, 0x1245: 0x65ad,\n\t0x1246: 0x65cd, 0x1247: 0x65ed, 0x1248: 0x660d, 0x1249: 0x662d, 0x124a: 0x664d, 0x124b: 0x666d,\n\t0x124c: 0x668d, 0x124d: 0x66ad, 0x124e: 0x0008, 0x124f: 0x0008, 0x1250: 0x66cd, 0x1251: 0x0008,\n\t0x1252: 0x66ed, 0x1253: 0x0008, 0x1254: 0x0008, 0x1255: 0x670d, 0x1256: 0x672d, 0x1257: 0x674d,\n\t0x1258: 0x676d, 0x1259: 0x678d, 0x125a: 0x67ad, 0x125b: 0x67cd, 0x125c: 0x67ed, 0x125d: 0x680d,\n\t0x125e: 0x682d, 0x125f: 0x0008, 0x1260: 0x684d, 0x1261: 0x0008, 0x1262: 0x686d, 0x1263: 0x0008,\n\t0x1264: 0x0008, 0x1265: 0x688d, 0x1266: 0x68ad, 0x1267: 0x0008, 0x1268: 0x0008, 0x1269: 0x0008,\n\t0x126a: 0x68cd, 0x126b: 0x68ed, 0x126c: 0x690d, 0x126d: 0x692d, 0x126e: 0x694d, 0x126f: 0x696d,\n\t0x1270: 0x698d, 0x1271: 0x69ad, 0x1272: 0x69cd, 0x1273: 0x69ed, 0x1274: 0x6a0d, 0x1275: 0x6a2d,\n\t0x1276: 0x6a4d, 0x1277: 0x6a6d, 0x1278: 0x6a8d, 0x1279: 0x6aad, 0x127a: 0x6acd, 0x127b: 0x6aed,\n\t0x127c: 0x6b0d, 0x127d: 0x6b2d, 0x127e: 0x6b4d, 0x127f: 0x6b6d,\n\t// Block 0x4a, offset 0x1280\n\t0x1280: 0x7acd, 0x1281: 0x7aed, 0x1282: 0x7b0d, 0x1283: 0x7b2d, 0x1284: 0x7b4d, 0x1285: 0x7b6d,\n\t0x1286: 0x7b8d, 0x1287: 0x7bad, 0x1288: 0x7bcd, 0x1289: 0x7bed, 0x128a: 0x7c0d, 0x128b: 0x7c2d,\n\t0x128c: 0x7c4d, 0x128d: 0x7c6d, 0x128e: 0x7c8d, 0x128f: 0x1409, 0x1290: 0x1411, 0x1291: 0x1419,\n\t0x1292: 0x7cad, 0x1293: 0x7ccd, 0x1294: 0x7ced, 0x1295: 0x1421, 0x1296: 0x1429, 0x1297: 0x1431,\n\t0x1298: 0x7d0d, 0x1299: 0x7d2d, 0x129a: 0x0040, 0x129b: 0x0040, 0x129c: 0x0040, 0x129d: 0x0040,\n\t0x129e: 0x0040, 0x129f: 0x0040, 0x12a0: 0x0040, 0x12a1: 0x0040, 0x12a2: 0x0040, 0x12a3: 0x0040,\n\t0x12a4: 0x0040, 0x12a5: 0x0040, 0x12a6: 0x0040, 0x12a7: 0x0040, 0x12a8: 0x0040, 0x12a9: 0x0040,\n\t0x12aa: 0x0040, 0x12ab: 0x0040, 0x12ac: 0x0040, 0x12ad: 0x0040, 0x12ae: 0x0040, 0x12af: 0x0040,\n\t0x12b0: 0x0040, 0x12b1: 0x0040, 0x12b2: 0x0040, 0x12b3: 0x0040, 0x12b4: 0x0040, 0x12b5: 0x0040,\n\t0x12b6: 0x0040, 0x12b7: 0x0040, 0x12b8: 0x0040, 0x12b9: 0x0040, 0x12ba: 0x0040, 0x12bb: 0x0040,\n\t0x12bc: 0x0040, 0x12bd: 0x0040, 0x12be: 0x0040, 0x12bf: 0x0040,\n\t// Block 0x4b, offset 0x12c0\n\t0x12c0: 0x1439, 0x12c1: 0x1441, 0x12c2: 0x1449, 0x12c3: 0x7d4d, 0x12c4: 0x7d6d, 0x12c5: 0x1451,\n\t0x12c6: 0x1451, 0x12c7: 0x0040, 0x12c8: 0x0040, 0x12c9: 0x0040, 0x12ca: 0x0040, 0x12cb: 0x0040,\n\t0x12cc: 0x0040, 0x12cd: 0x0040, 0x12ce: 0x0040, 0x12cf: 0x0040, 0x12d0: 0x0040, 0x12d1: 0x0040,\n\t0x12d2: 0x0040, 0x12d3: 0x1459, 0x12d4: 0x1461, 0x12d5: 0x1469, 0x12d6: 0x1471, 0x12d7: 0x1479,\n\t0x12d8: 0x0040, 0x12d9: 0x0040, 0x12da: 0x0040, 0x12db: 0x0040, 0x12dc: 0x0040, 0x12dd: 0x1481,\n\t0x12de: 0x3308, 0x12df: 0x1489, 0x12e0: 0x1491, 0x12e1: 0x0779, 0x12e2: 0x0791, 0x12e3: 0x1499,\n\t0x12e4: 0x14a1, 0x12e5: 0x14a9, 0x12e6: 0x14b1, 0x12e7: 0x14b9, 0x12e8: 0x14c1, 0x12e9: 0x071a,\n\t0x12ea: 0x14c9, 0x12eb: 0x14d1, 0x12ec: 0x14d9, 0x12ed: 0x14e1, 0x12ee: 0x14e9, 0x12ef: 0x14f1,\n\t0x12f0: 0x14f9, 0x12f1: 0x1501, 0x12f2: 0x1509, 0x12f3: 0x1511, 0x12f4: 0x1519, 0x12f5: 0x1521,\n\t0x12f6: 0x1529, 0x12f7: 0x0040, 0x12f8: 0x1531, 0x12f9: 0x1539, 0x12fa: 0x1541, 0x12fb: 0x1549,\n\t0x12fc: 0x1551, 0x12fd: 0x0040, 0x12fe: 0x1559, 0x12ff: 0x0040,\n\t// Block 0x4c, offset 0x1300\n\t0x1300: 0x1561, 0x1301: 0x1569, 0x1302: 0x0040, 0x1303: 0x1571, 0x1304: 0x1579, 0x1305: 0x0040,\n\t0x1306: 0x1581, 0x1307: 0x1589, 0x1308: 0x1591, 0x1309: 0x1599, 0x130a: 0x15a1, 0x130b: 0x15a9,\n\t0x130c: 0x15b1, 0x130d: 0x15b9, 0x130e: 0x15c1, 0x130f: 0x15c9, 0x1310: 0x15d1, 0x1311: 0x15d1,\n\t0x1312: 0x15d9, 0x1313: 0x15d9, 0x1314: 0x15d9, 0x1315: 0x15d9, 0x1316: 0x15e1, 0x1317: 0x15e1,\n\t0x1318: 0x15e1, 0x1319: 0x15e1, 0x131a: 0x15e9, 0x131b: 0x15e9, 0x131c: 0x15e9, 0x131d: 0x15e9,\n\t0x131e: 0x15f1, 0x131f: 0x15f1, 0x1320: 0x15f1, 0x1321: 0x15f1, 0x1322: 0x15f9, 0x1323: 0x15f9,\n\t0x1324: 0x15f9, 0x1325: 0x15f9, 0x1326: 0x1601, 0x1327: 0x1601, 0x1328: 0x1601, 0x1329: 0x1601,\n\t0x132a: 0x1609, 0x132b: 0x1609, 0x132c: 0x1609, 0x132d: 0x1609, 0x132e: 0x1611, 0x132f: 0x1611,\n\t0x1330: 0x1611, 0x1331: 0x1611, 0x1332: 0x1619, 0x1333: 0x1619, 0x1334: 0x1619, 0x1335: 0x1619,\n\t0x1336: 0x1621, 0x1337: 0x1621, 0x1338: 0x1621, 0x1339: 0x1621, 0x133a: 0x1629, 0x133b: 0x1629,\n\t0x133c: 0x1629, 0x133d: 0x1629, 0x133e: 0x1631, 0x133f: 0x1631,\n\t// Block 0x4d, offset 0x1340\n\t0x1340: 0x1631, 0x1341: 0x1631, 0x1342: 0x1639, 0x1343: 0x1639, 0x1344: 0x1641, 0x1345: 0x1641,\n\t0x1346: 0x1649, 0x1347: 0x1649, 0x1348: 0x1651, 0x1349: 0x1651, 0x134a: 0x1659, 0x134b: 0x1659,\n\t0x134c: 0x1661, 0x134d: 0x1661, 0x134e: 0x1669, 0x134f: 0x1669, 0x1350: 0x1669, 0x1351: 0x1669,\n\t0x1352: 0x1671, 0x1353: 0x1671, 0x1354: 0x1671, 0x1355: 0x1671, 0x1356: 0x1679, 0x1357: 0x1679,\n\t0x1358: 0x1679, 0x1359: 0x1679, 0x135a: 0x1681, 0x135b: 0x1681, 0x135c: 0x1681, 0x135d: 0x1681,\n\t0x135e: 0x1689, 0x135f: 0x1689, 0x1360: 0x1691, 0x1361: 0x1691, 0x1362: 0x1691, 0x1363: 0x1691,\n\t0x1364: 0x1699, 0x1365: 0x1699, 0x1366: 0x16a1, 0x1367: 0x16a1, 0x1368: 0x16a1, 0x1369: 0x16a1,\n\t0x136a: 0x16a9, 0x136b: 0x16a9, 0x136c: 0x16a9, 0x136d: 0x16a9, 0x136e: 0x16b1, 0x136f: 0x16b1,\n\t0x1370: 0x16b9, 0x1371: 0x16b9, 0x1372: 0x0818, 0x1373: 0x0818, 0x1374: 0x0818, 0x1375: 0x0818,\n\t0x1376: 0x0818, 0x1377: 0x0818, 0x1378: 0x0818, 0x1379: 0x0818, 0x137a: 0x0818, 0x137b: 0x0818,\n\t0x137c: 0x0818, 0x137d: 0x0818, 0x137e: 0x0818, 0x137f: 0x0818,\n\t// Block 0x4e, offset 0x1380\n\t0x1380: 0x0818, 0x1381: 0x0818, 0x1382: 0x0818, 0x1383: 0x0040, 0x1384: 0x0040, 0x1385: 0x0040,\n\t0x1386: 0x0040, 0x1387: 0x0040, 0x1388: 0x0040, 0x1389: 0x0040, 0x138a: 0x0040, 0x138b: 0x0040,\n\t0x138c: 0x0040, 0x138d: 0x0040, 0x138e: 0x0040, 0x138f: 0x0040, 0x1390: 0x0040, 0x1391: 0x0040,\n\t0x1392: 0x0040, 0x1393: 0x16c1, 0x1394: 0x16c1, 0x1395: 0x16c1, 0x1396: 0x16c1, 0x1397: 0x16c9,\n\t0x1398: 0x16c9, 0x1399: 0x16d1, 0x139a: 0x16d1, 0x139b: 0x16d9, 0x139c: 0x16d9, 0x139d: 0x0149,\n\t0x139e: 0x16e1, 0x139f: 0x16e1, 0x13a0: 0x16e9, 0x13a1: 0x16e9, 0x13a2: 0x16f1, 0x13a3: 0x16f1,\n\t0x13a4: 0x16f9, 0x13a5: 0x16f9, 0x13a6: 0x16f9, 0x13a7: 0x16f9, 0x13a8: 0x1701, 0x13a9: 0x1701,\n\t0x13aa: 0x1709, 0x13ab: 0x1709, 0x13ac: 0x1711, 0x13ad: 0x1711, 0x13ae: 0x1719, 0x13af: 0x1719,\n\t0x13b0: 0x1721, 0x13b1: 0x1721, 0x13b2: 0x1729, 0x13b3: 0x1729, 0x13b4: 0x1731, 0x13b5: 0x1731,\n\t0x13b6: 0x1739, 0x13b7: 0x1739, 0x13b8: 0x1739, 0x13b9: 0x1741, 0x13ba: 0x1741, 0x13bb: 0x1741,\n\t0x13bc: 0x1749, 0x13bd: 0x1749, 0x13be: 0x1749, 0x13bf: 0x1749,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c0: 0x1949, 0x13c1: 0x1951, 0x13c2: 0x1959, 0x13c3: 0x1961, 0x13c4: 0x1969, 0x13c5: 0x1971,\n\t0x13c6: 0x1979, 0x13c7: 0x1981, 0x13c8: 0x1989, 0x13c9: 0x1991, 0x13ca: 0x1999, 0x13cb: 0x19a1,\n\t0x13cc: 0x19a9, 0x13cd: 0x19b1, 0x13ce: 0x19b9, 0x13cf: 0x19c1, 0x13d0: 0x19c9, 0x13d1: 0x19d1,\n\t0x13d2: 0x19d9, 0x13d3: 0x19e1, 0x13d4: 0x19e9, 0x13d5: 0x19f1, 0x13d6: 0x19f9, 0x13d7: 0x1a01,\n\t0x13d8: 0x1a09, 0x13d9: 0x1a11, 0x13da: 0x1a19, 0x13db: 0x1a21, 0x13dc: 0x1a29, 0x13dd: 0x1a31,\n\t0x13de: 0x1a3a, 0x13df: 0x1a42, 0x13e0: 0x1a4a, 0x13e1: 0x1a52, 0x13e2: 0x1a5a, 0x13e3: 0x1a62,\n\t0x13e4: 0x1a69, 0x13e5: 0x1a71, 0x13e6: 0x1761, 0x13e7: 0x1a79, 0x13e8: 0x1741, 0x13e9: 0x1769,\n\t0x13ea: 0x1a81, 0x13eb: 0x1a89, 0x13ec: 0x1789, 0x13ed: 0x1a91, 0x13ee: 0x1791, 0x13ef: 0x1799,\n\t0x13f0: 0x1a99, 0x13f1: 0x1aa1, 0x13f2: 0x17b9, 0x13f3: 0x1aa9, 0x13f4: 0x17c1, 0x13f5: 0x17c9,\n\t0x13f6: 0x1ab1, 0x13f7: 0x1ab9, 0x13f8: 0x17d9, 0x13f9: 0x1ac1, 0x13fa: 0x17e1, 0x13fb: 0x17e9,\n\t0x13fc: 0x18d1, 0x13fd: 0x18d9, 0x13fe: 0x18f1, 0x13ff: 0x18f9,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x1901, 0x1401: 0x1921, 0x1402: 0x1929, 0x1403: 0x1931, 0x1404: 0x1939, 0x1405: 0x1959,\n\t0x1406: 0x1961, 0x1407: 0x1969, 0x1408: 0x1ac9, 0x1409: 0x1989, 0x140a: 0x1ad1, 0x140b: 0x1ad9,\n\t0x140c: 0x19b9, 0x140d: 0x1ae1, 0x140e: 0x19c1, 0x140f: 0x19c9, 0x1410: 0x1a31, 0x1411: 0x1ae9,\n\t0x1412: 0x1af1, 0x1413: 0x1a09, 0x1414: 0x1af9, 0x1415: 0x1a11, 0x1416: 0x1a19, 0x1417: 0x1751,\n\t0x1418: 0x1759, 0x1419: 0x1b01, 0x141a: 0x1761, 0x141b: 0x1b09, 0x141c: 0x1771, 0x141d: 0x1779,\n\t0x141e: 0x1781, 0x141f: 0x1789, 0x1420: 0x1b11, 0x1421: 0x17a1, 0x1422: 0x17a9, 0x1423: 0x17b1,\n\t0x1424: 0x17b9, 0x1425: 0x1b19, 0x1426: 0x17d9, 0x1427: 0x17f1, 0x1428: 0x17f9, 0x1429: 0x1801,\n\t0x142a: 0x1809, 0x142b: 0x1811, 0x142c: 0x1821, 0x142d: 0x1829, 0x142e: 0x1831, 0x142f: 0x1839,\n\t0x1430: 0x1841, 0x1431: 0x1849, 0x1432: 0x1b21, 0x1433: 0x1851, 0x1434: 0x1859, 0x1435: 0x1861,\n\t0x1436: 0x1869, 0x1437: 0x1871, 0x1438: 0x1879, 0x1439: 0x1889, 0x143a: 0x1891, 0x143b: 0x1899,\n\t0x143c: 0x18a1, 0x143d: 0x18a9, 0x143e: 0x18b1, 0x143f: 0x18b9,\n\t// Block 0x51, offset 0x1440\n\t0x1440: 0x18c1, 0x1441: 0x18c9, 0x1442: 0x18e1, 0x1443: 0x18e9, 0x1444: 0x1909, 0x1445: 0x1911,\n\t0x1446: 0x1919, 0x1447: 0x1921, 0x1448: 0x1929, 0x1449: 0x1941, 0x144a: 0x1949, 0x144b: 0x1951,\n\t0x144c: 0x1959, 0x144d: 0x1b29, 0x144e: 0x1971, 0x144f: 0x1979, 0x1450: 0x1981, 0x1451: 0x1989,\n\t0x1452: 0x19a1, 0x1453: 0x19a9, 0x1454: 0x19b1, 0x1455: 0x19b9, 0x1456: 0x1b31, 0x1457: 0x19d1,\n\t0x1458: 0x19d9, 0x1459: 0x1b39, 0x145a: 0x19f1, 0x145b: 0x19f9, 0x145c: 0x1a01, 0x145d: 0x1a09,\n\t0x145e: 0x1b41, 0x145f: 0x1761, 0x1460: 0x1b09, 0x1461: 0x1789, 0x1462: 0x1b11, 0x1463: 0x17b9,\n\t0x1464: 0x1b19, 0x1465: 0x17d9, 0x1466: 0x1b49, 0x1467: 0x1841, 0x1468: 0x1b51, 0x1469: 0x1b59,\n\t0x146a: 0x1b61, 0x146b: 0x1921, 0x146c: 0x1929, 0x146d: 0x1959, 0x146e: 0x19b9, 0x146f: 0x1b31,\n\t0x1470: 0x1a09, 0x1471: 0x1b41, 0x1472: 0x1b69, 0x1473: 0x1b71, 0x1474: 0x1b79, 0x1475: 0x1b81,\n\t0x1476: 0x1b89, 0x1477: 0x1b91, 0x1478: 0x1b99, 0x1479: 0x1ba1, 0x147a: 0x1ba9, 0x147b: 0x1bb1,\n\t0x147c: 0x1bb9, 0x147d: 0x1bc1, 0x147e: 0x1bc9, 0x147f: 0x1bd1,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x1bd9, 0x1481: 0x1be1, 0x1482: 0x1be9, 0x1483: 0x1bf1, 0x1484: 0x1bf9, 0x1485: 0x1c01,\n\t0x1486: 0x1c09, 0x1487: 0x1c11, 0x1488: 0x1c19, 0x1489: 0x1c21, 0x148a: 0x1c29, 0x148b: 0x1c31,\n\t0x148c: 0x1b59, 0x148d: 0x1c39, 0x148e: 0x1c41, 0x148f: 0x1c49, 0x1490: 0x1c51, 0x1491: 0x1b81,\n\t0x1492: 0x1b89, 0x1493: 0x1b91, 0x1494: 0x1b99, 0x1495: 0x1ba1, 0x1496: 0x1ba9, 0x1497: 0x1bb1,\n\t0x1498: 0x1bb9, 0x1499: 0x1bc1, 0x149a: 0x1bc9, 0x149b: 0x1bd1, 0x149c: 0x1bd9, 0x149d: 0x1be1,\n\t0x149e: 0x1be9, 0x149f: 0x1bf1, 0x14a0: 0x1bf9, 0x14a1: 0x1c01, 0x14a2: 0x1c09, 0x14a3: 0x1c11,\n\t0x14a4: 0x1c19, 0x14a5: 0x1c21, 0x14a6: 0x1c29, 0x14a7: 0x1c31, 0x14a8: 0x1b59, 0x14a9: 0x1c39,\n\t0x14aa: 0x1c41, 0x14ab: 0x1c49, 0x14ac: 0x1c51, 0x14ad: 0x1c21, 0x14ae: 0x1c29, 0x14af: 0x1c31,\n\t0x14b0: 0x1b59, 0x14b1: 0x1b51, 0x14b2: 0x1b61, 0x14b3: 0x1881, 0x14b4: 0x1829, 0x14b5: 0x1831,\n\t0x14b6: 0x1839, 0x14b7: 0x1c21, 0x14b8: 0x1c29, 0x14b9: 0x1c31, 0x14ba: 0x1881, 0x14bb: 0x1889,\n\t0x14bc: 0x1c59, 0x14bd: 0x1c59, 0x14be: 0x0018, 0x14bf: 0x0018,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x0018, 0x14c1: 0x0018, 0x14c2: 0x0018, 0x14c3: 0x0018, 0x14c4: 0x0018, 0x14c5: 0x0018,\n\t0x14c6: 0x0018, 0x14c7: 0x0018, 0x14c8: 0x0018, 0x14c9: 0x0018, 0x14ca: 0x0018, 0x14cb: 0x0018,\n\t0x14cc: 0x0018, 0x14cd: 0x0018, 0x14ce: 0x0018, 0x14cf: 0x0018, 0x14d0: 0x1c61, 0x14d1: 0x1c69,\n\t0x14d2: 0x1c69, 0x14d3: 0x1c71, 0x14d4: 0x1c79, 0x14d5: 0x1c81, 0x14d6: 0x1c89, 0x14d7: 0x1c91,\n\t0x14d8: 0x1c99, 0x14d9: 0x1c99, 0x14da: 0x1ca1, 0x14db: 0x1ca9, 0x14dc: 0x1cb1, 0x14dd: 0x1cb9,\n\t0x14de: 0x1cc1, 0x14df: 0x1cc9, 0x14e0: 0x1cc9, 0x14e1: 0x1cd1, 0x14e2: 0x1cd9, 0x14e3: 0x1cd9,\n\t0x14e4: 0x1ce1, 0x14e5: 0x1ce1, 0x14e6: 0x1ce9, 0x14e7: 0x1cf1, 0x14e8: 0x1cf1, 0x14e9: 0x1cf9,\n\t0x14ea: 0x1d01, 0x14eb: 0x1d01, 0x14ec: 0x1d09, 0x14ed: 0x1d09, 0x14ee: 0x1d11, 0x14ef: 0x1d19,\n\t0x14f0: 0x1d19, 0x14f1: 0x1d21, 0x14f2: 0x1d21, 0x14f3: 0x1d29, 0x14f4: 0x1d31, 0x14f5: 0x1d39,\n\t0x14f6: 0x1d41, 0x14f7: 0x1d41, 0x14f8: 0x1d49, 0x14f9: 0x1d51, 0x14fa: 0x1d59, 0x14fb: 0x1d61,\n\t0x14fc: 0x1d69, 0x14fd: 0x1d69, 0x14fe: 0x1d71, 0x14ff: 0x1d79,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0x1f29, 0x1501: 0x1f31, 0x1502: 0x1f39, 0x1503: 0x1f11, 0x1504: 0x1d39, 0x1505: 0x1ce9,\n\t0x1506: 0x1f41, 0x1507: 0x1f49, 0x1508: 0x0040, 0x1509: 0x0040, 0x150a: 0x0040, 0x150b: 0x0040,\n\t0x150c: 0x0040, 0x150d: 0x0040, 0x150e: 0x0040, 0x150f: 0x0018, 0x1510: 0x0040, 0x1511: 0x0040,\n\t0x1512: 0x0040, 0x1513: 0x0040, 0x1514: 0x0040, 0x1515: 0x0040, 0x1516: 0x0040, 0x1517: 0x0040,\n\t0x1518: 0x0040, 0x1519: 0x0040, 0x151a: 0x0040, 0x151b: 0x0040, 0x151c: 0x0040, 0x151d: 0x0040,\n\t0x151e: 0x0040, 0x151f: 0x0040, 0x1520: 0x0040, 0x1521: 0x0040, 0x1522: 0x0040, 0x1523: 0x0040,\n\t0x1524: 0x0040, 0x1525: 0x0040, 0x1526: 0x0040, 0x1527: 0x0040, 0x1528: 0x0040, 0x1529: 0x0040,\n\t0x152a: 0x0040, 0x152b: 0x0040, 0x152c: 0x0040, 0x152d: 0x0040, 0x152e: 0x0040, 0x152f: 0x0040,\n\t0x1530: 0x1f51, 0x1531: 0x1f59, 0x1532: 0x1f61, 0x1533: 0x1f69, 0x1534: 0x1f71, 0x1535: 0x1f79,\n\t0x1536: 0x1f81, 0x1537: 0x1f89, 0x1538: 0x1f91, 0x1539: 0x1f99, 0x153a: 0x1fa2, 0x153b: 0x1faa,\n\t0x153c: 0x1fb1, 0x153d: 0x0018, 0x153e: 0x0018, 0x153f: 0x0018,\n\t// Block 0x55, offset 0x1540\n\t0x1540: 0x33c0, 0x1541: 0x33c0, 0x1542: 0x33c0, 0x1543: 0x33c0, 0x1544: 0x33c0, 0x1545: 0x33c0,\n\t0x1546: 0x33c0, 0x1547: 0x33c0, 0x1548: 0x33c0, 0x1549: 0x33c0, 0x154a: 0x33c0, 0x154b: 0x33c0,\n\t0x154c: 0x33c0, 0x154d: 0x33c0, 0x154e: 0x33c0, 0x154f: 0x33c0, 0x1550: 0x1fba, 0x1551: 0x7d8d,\n\t0x1552: 0x0040, 0x1553: 0x1fc2, 0x1554: 0x0122, 0x1555: 0x1fca, 0x1556: 0x1fd2, 0x1557: 0x7dad,\n\t0x1558: 0x7dcd, 0x1559: 0x0040, 0x155a: 0x0040, 0x155b: 0x0040, 0x155c: 0x0040, 0x155d: 0x0040,\n\t0x155e: 0x0040, 0x155f: 0x0040, 0x1560: 0x3308, 0x1561: 0x3308, 0x1562: 0x3308, 0x1563: 0x3308,\n\t0x1564: 0x3308, 0x1565: 0x3308, 0x1566: 0x3308, 0x1567: 0x3308, 0x1568: 0x3308, 0x1569: 0x3308,\n\t0x156a: 0x3308, 0x156b: 0x3308, 0x156c: 0x3308, 0x156d: 0x3308, 0x156e: 0x3308, 0x156f: 0x3308,\n\t0x1570: 0x0040, 0x1571: 0x7ded, 0x1572: 0x7e0d, 0x1573: 0x1fda, 0x1574: 0x1fda, 0x1575: 0x072a,\n\t0x1576: 0x0732, 0x1577: 0x1fe2, 0x1578: 0x1fea, 0x1579: 0x7e2d, 0x157a: 0x7e4d, 0x157b: 0x7e6d,\n\t0x157c: 0x7e2d, 0x157d: 0x7e8d, 0x157e: 0x7ead, 0x157f: 0x7e8d,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x7ecd, 0x1581: 0x7eed, 0x1582: 0x7f0d, 0x1583: 0x7eed, 0x1584: 0x7f2d, 0x1585: 0x0018,\n\t0x1586: 0x0018, 0x1587: 0x1ff2, 0x1588: 0x1ffa, 0x1589: 0x7f4e, 0x158a: 0x7f6e, 0x158b: 0x7f8e,\n\t0x158c: 0x7fae, 0x158d: 0x1fda, 0x158e: 0x1fda, 0x158f: 0x1fda, 0x1590: 0x1fba, 0x1591: 0x7fcd,\n\t0x1592: 0x0040, 0x1593: 0x0040, 0x1594: 0x0122, 0x1595: 0x1fc2, 0x1596: 0x1fd2, 0x1597: 0x1fca,\n\t0x1598: 0x7fed, 0x1599: 0x072a, 0x159a: 0x0732, 0x159b: 0x1fe2, 0x159c: 0x1fea, 0x159d: 0x7ecd,\n\t0x159e: 0x7f2d, 0x159f: 0x2002, 0x15a0: 0x200a, 0x15a1: 0x2012, 0x15a2: 0x071a, 0x15a3: 0x2019,\n\t0x15a4: 0x2022, 0x15a5: 0x202a, 0x15a6: 0x0722, 0x15a7: 0x0040, 0x15a8: 0x2032, 0x15a9: 0x203a,\n\t0x15aa: 0x2042, 0x15ab: 0x204a, 0x15ac: 0x0040, 0x15ad: 0x0040, 0x15ae: 0x0040, 0x15af: 0x0040,\n\t0x15b0: 0x800e, 0x15b1: 0x2051, 0x15b2: 0x802e, 0x15b3: 0x0808, 0x15b4: 0x804e, 0x15b5: 0x0040,\n\t0x15b6: 0x806e, 0x15b7: 0x2059, 0x15b8: 0x808e, 0x15b9: 0x2061, 0x15ba: 0x80ae, 0x15bb: 0x2069,\n\t0x15bc: 0x80ce, 0x15bd: 0x2071, 0x15be: 0x80ee, 0x15bf: 0x2079,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0x2081, 0x15c1: 0x2089, 0x15c2: 0x2089, 0x15c3: 0x2091, 0x15c4: 0x2091, 0x15c5: 0x2099,\n\t0x15c6: 0x2099, 0x15c7: 0x20a1, 0x15c8: 0x20a1, 0x15c9: 0x20a9, 0x15ca: 0x20a9, 0x15cb: 0x20a9,\n\t0x15cc: 0x20a9, 0x15cd: 0x20b1, 0x15ce: 0x20b1, 0x15cf: 0x20b9, 0x15d0: 0x20b9, 0x15d1: 0x20b9,\n\t0x15d2: 0x20b9, 0x15d3: 0x20c1, 0x15d4: 0x20c1, 0x15d5: 0x20c9, 0x15d6: 0x20c9, 0x15d7: 0x20c9,\n\t0x15d8: 0x20c9, 0x15d9: 0x20d1, 0x15da: 0x20d1, 0x15db: 0x20d1, 0x15dc: 0x20d1, 0x15dd: 0x20d9,\n\t0x15de: 0x20d9, 0x15df: 0x20d9, 0x15e0: 0x20d9, 0x15e1: 0x20e1, 0x15e2: 0x20e1, 0x15e3: 0x20e1,\n\t0x15e4: 0x20e1, 0x15e5: 0x20e9, 0x15e6: 0x20e9, 0x15e7: 0x20e9, 0x15e8: 0x20e9, 0x15e9: 0x20f1,\n\t0x15ea: 0x20f1, 0x15eb: 0x20f9, 0x15ec: 0x20f9, 0x15ed: 0x2101, 0x15ee: 0x2101, 0x15ef: 0x2109,\n\t0x15f0: 0x2109, 0x15f1: 0x2111, 0x15f2: 0x2111, 0x15f3: 0x2111, 0x15f4: 0x2111, 0x15f5: 0x2119,\n\t0x15f6: 0x2119, 0x15f7: 0x2119, 0x15f8: 0x2119, 0x15f9: 0x2121, 0x15fa: 0x2121, 0x15fb: 0x2121,\n\t0x15fc: 0x2121, 0x15fd: 0x2129, 0x15fe: 0x2129, 0x15ff: 0x2129,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0x2129, 0x1601: 0x2131, 0x1602: 0x2131, 0x1603: 0x2131, 0x1604: 0x2131, 0x1605: 0x2139,\n\t0x1606: 0x2139, 0x1607: 0x2139, 0x1608: 0x2139, 0x1609: 0x2141, 0x160a: 0x2141, 0x160b: 0x2141,\n\t0x160c: 0x2141, 0x160d: 0x2149, 0x160e: 0x2149, 0x160f: 0x2149, 0x1610: 0x2149, 0x1611: 0x2151,\n\t0x1612: 0x2151, 0x1613: 0x2151, 0x1614: 0x2151, 0x1615: 0x2159, 0x1616: 0x2159, 0x1617: 0x2159,\n\t0x1618: 0x2159, 0x1619: 0x2161, 0x161a: 0x2161, 0x161b: 0x2161, 0x161c: 0x2161, 0x161d: 0x2169,\n\t0x161e: 0x2169, 0x161f: 0x2169, 0x1620: 0x2169, 0x1621: 0x2171, 0x1622: 0x2171, 0x1623: 0x2171,\n\t0x1624: 0x2171, 0x1625: 0x2179, 0x1626: 0x2179, 0x1627: 0x2179, 0x1628: 0x2179, 0x1629: 0x2181,\n\t0x162a: 0x2181, 0x162b: 0x2181, 0x162c: 0x2181, 0x162d: 0x2189, 0x162e: 0x2189, 0x162f: 0x1701,\n\t0x1630: 0x1701, 0x1631: 0x2191, 0x1632: 0x2191, 0x1633: 0x2191, 0x1634: 0x2191, 0x1635: 0x2199,\n\t0x1636: 0x2199, 0x1637: 0x21a1, 0x1638: 0x21a1, 0x1639: 0x21a9, 0x163a: 0x21a9, 0x163b: 0x21b1,\n\t0x163c: 0x21b1, 0x163d: 0x0040, 0x163e: 0x0040, 0x163f: 0x03c0,\n\t// Block 0x59, offset 0x1640\n\t0x1640: 0x0040, 0x1641: 0x1fca, 0x1642: 0x21ba, 0x1643: 0x2002, 0x1644: 0x203a, 0x1645: 0x2042,\n\t0x1646: 0x200a, 0x1647: 0x21c2, 0x1648: 0x072a, 0x1649: 0x0732, 0x164a: 0x2012, 0x164b: 0x071a,\n\t0x164c: 0x1fba, 0x164d: 0x2019, 0x164e: 0x0961, 0x164f: 0x21ca, 0x1650: 0x06e1, 0x1651: 0x0049,\n\t0x1652: 0x0029, 0x1653: 0x0031, 0x1654: 0x06e9, 0x1655: 0x06f1, 0x1656: 0x06f9, 0x1657: 0x0701,\n\t0x1658: 0x0709, 0x1659: 0x0711, 0x165a: 0x1fc2, 0x165b: 0x0122, 0x165c: 0x2022, 0x165d: 0x0722,\n\t0x165e: 0x202a, 0x165f: 0x1fd2, 0x1660: 0x204a, 0x1661: 0x0019, 0x1662: 0x02e9, 0x1663: 0x03d9,\n\t0x1664: 0x02f1, 0x1665: 0x02f9, 0x1666: 0x03f1, 0x1667: 0x0309, 0x1668: 0x00a9, 0x1669: 0x0311,\n\t0x166a: 0x00b1, 0x166b: 0x0319, 0x166c: 0x0101, 0x166d: 0x0321, 0x166e: 0x0329, 0x166f: 0x0051,\n\t0x1670: 0x0339, 0x1671: 0x0751, 0x1672: 0x00b9, 0x1673: 0x0089, 0x1674: 0x0341, 0x1675: 0x0349,\n\t0x1676: 0x0391, 0x1677: 0x00c1, 0x1678: 0x0109, 0x1679: 0x00c9, 0x167a: 0x04b1, 0x167b: 0x1ff2,\n\t0x167c: 0x2032, 0x167d: 0x1ffa, 0x167e: 0x21d2, 0x167f: 0x1fda,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x0672, 0x1681: 0x0019, 0x1682: 0x02e9, 0x1683: 0x03d9, 0x1684: 0x02f1, 0x1685: 0x02f9,\n\t0x1686: 0x03f1, 0x1687: 0x0309, 0x1688: 0x00a9, 0x1689: 0x0311, 0x168a: 0x00b1, 0x168b: 0x0319,\n\t0x168c: 0x0101, 0x168d: 0x0321, 0x168e: 0x0329, 0x168f: 0x0051, 0x1690: 0x0339, 0x1691: 0x0751,\n\t0x1692: 0x00b9, 0x1693: 0x0089, 0x1694: 0x0341, 0x1695: 0x0349, 0x1696: 0x0391, 0x1697: 0x00c1,\n\t0x1698: 0x0109, 0x1699: 0x00c9, 0x169a: 0x04b1, 0x169b: 0x1fe2, 0x169c: 0x21da, 0x169d: 0x1fea,\n\t0x169e: 0x21e2, 0x169f: 0x810d, 0x16a0: 0x812d, 0x16a1: 0x0961, 0x16a2: 0x814d, 0x16a3: 0x814d,\n\t0x16a4: 0x816d, 0x16a5: 0x818d, 0x16a6: 0x81ad, 0x16a7: 0x81cd, 0x16a8: 0x81ed, 0x16a9: 0x820d,\n\t0x16aa: 0x822d, 0x16ab: 0x824d, 0x16ac: 0x826d, 0x16ad: 0x828d, 0x16ae: 0x82ad, 0x16af: 0x82cd,\n\t0x16b0: 0x82ed, 0x16b1: 0x830d, 0x16b2: 0x832d, 0x16b3: 0x834d, 0x16b4: 0x836d, 0x16b5: 0x838d,\n\t0x16b6: 0x83ad, 0x16b7: 0x83cd, 0x16b8: 0x83ed, 0x16b9: 0x840d, 0x16ba: 0x842d, 0x16bb: 0x844d,\n\t0x16bc: 0x81ed, 0x16bd: 0x846d, 0x16be: 0x848d, 0x16bf: 0x824d,\n\t// Block 0x5b, offset 0x16c0\n\t0x16c0: 0x84ad, 0x16c1: 0x84cd, 0x16c2: 0x84ed, 0x16c3: 0x850d, 0x16c4: 0x852d, 0x16c5: 0x854d,\n\t0x16c6: 0x856d, 0x16c7: 0x858d, 0x16c8: 0x850d, 0x16c9: 0x85ad, 0x16ca: 0x850d, 0x16cb: 0x85cd,\n\t0x16cc: 0x85cd, 0x16cd: 0x85ed, 0x16ce: 0x85ed, 0x16cf: 0x860d, 0x16d0: 0x854d, 0x16d1: 0x862d,\n\t0x16d2: 0x864d, 0x16d3: 0x862d, 0x16d4: 0x866d, 0x16d5: 0x864d, 0x16d6: 0x868d, 0x16d7: 0x868d,\n\t0x16d8: 0x86ad, 0x16d9: 0x86ad, 0x16da: 0x86cd, 0x16db: 0x86cd, 0x16dc: 0x864d, 0x16dd: 0x814d,\n\t0x16de: 0x86ed, 0x16df: 0x870d, 0x16e0: 0x0040, 0x16e1: 0x872d, 0x16e2: 0x874d, 0x16e3: 0x876d,\n\t0x16e4: 0x878d, 0x16e5: 0x876d, 0x16e6: 0x87ad, 0x16e7: 0x87cd, 0x16e8: 0x87ed, 0x16e9: 0x87ed,\n\t0x16ea: 0x880d, 0x16eb: 0x880d, 0x16ec: 0x882d, 0x16ed: 0x882d, 0x16ee: 0x880d, 0x16ef: 0x880d,\n\t0x16f0: 0x884d, 0x16f1: 0x886d, 0x16f2: 0x888d, 0x16f3: 0x88ad, 0x16f4: 0x88cd, 0x16f5: 0x88ed,\n\t0x16f6: 0x88ed, 0x16f7: 0x88ed, 0x16f8: 0x890d, 0x16f9: 0x890d, 0x16fa: 0x890d, 0x16fb: 0x890d,\n\t0x16fc: 0x87ed, 0x16fd: 0x87ed, 0x16fe: 0x87ed, 0x16ff: 0x0040,\n\t// Block 0x5c, offset 0x1700\n\t0x1700: 0x0040, 0x1701: 0x0040, 0x1702: 0x874d, 0x1703: 0x872d, 0x1704: 0x892d, 0x1705: 0x872d,\n\t0x1706: 0x874d, 0x1707: 0x872d, 0x1708: 0x0040, 0x1709: 0x0040, 0x170a: 0x894d, 0x170b: 0x874d,\n\t0x170c: 0x896d, 0x170d: 0x892d, 0x170e: 0x896d, 0x170f: 0x874d, 0x1710: 0x0040, 0x1711: 0x0040,\n\t0x1712: 0x898d, 0x1713: 0x89ad, 0x1714: 0x88ad, 0x1715: 0x896d, 0x1716: 0x892d, 0x1717: 0x896d,\n\t0x1718: 0x0040, 0x1719: 0x0040, 0x171a: 0x89cd, 0x171b: 0x89ed, 0x171c: 0x89cd, 0x171d: 0x0040,\n\t0x171e: 0x0040, 0x171f: 0x0040, 0x1720: 0x21e9, 0x1721: 0x21f1, 0x1722: 0x21f9, 0x1723: 0x8a0e,\n\t0x1724: 0x2201, 0x1725: 0x2209, 0x1726: 0x8a2d, 0x1727: 0x0040, 0x1728: 0x8a4d, 0x1729: 0x8a6d,\n\t0x172a: 0x8a8d, 0x172b: 0x8a6d, 0x172c: 0x8aad, 0x172d: 0x8acd, 0x172e: 0x8aed, 0x172f: 0x0040,\n\t0x1730: 0x0040, 0x1731: 0x0040, 0x1732: 0x0040, 0x1733: 0x0040, 0x1734: 0x0040, 0x1735: 0x0040,\n\t0x1736: 0x0040, 0x1737: 0x0040, 0x1738: 0x0040, 0x1739: 0x0340, 0x173a: 0x0340, 0x173b: 0x0340,\n\t0x173c: 0x0040, 0x173d: 0x0040, 0x173e: 0x0040, 0x173f: 0x0040,\n\t// Block 0x5d, offset 0x1740\n\t0x1740: 0x0008, 0x1741: 0x0008, 0x1742: 0x0008, 0x1743: 0x0008, 0x1744: 0x0008, 0x1745: 0x0008,\n\t0x1746: 0x0008, 0x1747: 0x0008, 0x1748: 0x0008, 0x1749: 0x0008, 0x174a: 0x0008, 0x174b: 0x0008,\n\t0x174c: 0x0008, 0x174d: 0x0008, 0x174e: 0x0008, 0x174f: 0x0008, 0x1750: 0x0008, 0x1751: 0x0008,\n\t0x1752: 0x0008, 0x1753: 0x0008, 0x1754: 0x0008, 0x1755: 0x0008, 0x1756: 0x0008, 0x1757: 0x0008,\n\t0x1758: 0x0008, 0x1759: 0x0008, 0x175a: 0x0008, 0x175b: 0x0008, 0x175c: 0x0008, 0x175d: 0x0008,\n\t0x175e: 0x0008, 0x175f: 0x0008, 0x1760: 0x0008, 0x1761: 0x0008, 0x1762: 0x0008, 0x1763: 0x0008,\n\t0x1764: 0x0040, 0x1765: 0x0040, 0x1766: 0x0040, 0x1767: 0x0040, 0x1768: 0x0040, 0x1769: 0x0040,\n\t0x176a: 0x0040, 0x176b: 0x0040, 0x176c: 0x0040, 0x176d: 0x0040, 0x176e: 0x0040, 0x176f: 0x0018,\n\t0x1770: 0x8b3d, 0x1771: 0x8b55, 0x1772: 0x8b6d, 0x1773: 0x8b55, 0x1774: 0x8b85, 0x1775: 0x8b55,\n\t0x1776: 0x8b6d, 0x1777: 0x8b55, 0x1778: 0x8b3d, 0x1779: 0x8b9d, 0x177a: 0x8bb5, 0x177b: 0x0040,\n\t0x177c: 0x8bcd, 0x177d: 0x8b9d, 0x177e: 0x8bb5, 0x177f: 0x8b9d,\n\t// Block 0x5e, offset 0x1780\n\t0x1780: 0xe13d, 0x1781: 0xe14d, 0x1782: 0xe15d, 0x1783: 0xe14d, 0x1784: 0xe17d, 0x1785: 0xe14d,\n\t0x1786: 0xe15d, 0x1787: 0xe14d, 0x1788: 0xe13d, 0x1789: 0xe1cd, 0x178a: 0xe1dd, 0x178b: 0x0040,\n\t0x178c: 0xe1fd, 0x178d: 0xe1cd, 0x178e: 0xe1dd, 0x178f: 0xe1cd, 0x1790: 0xe13d, 0x1791: 0xe14d,\n\t0x1792: 0xe15d, 0x1793: 0x0040, 0x1794: 0xe17d, 0x1795: 0xe14d, 0x1796: 0x0040, 0x1797: 0x0008,\n\t0x1798: 0x0008, 0x1799: 0x0008, 0x179a: 0x0008, 0x179b: 0x0008, 0x179c: 0x0008, 0x179d: 0x0008,\n\t0x179e: 0x0008, 0x179f: 0x0008, 0x17a0: 0x0008, 0x17a1: 0x0008, 0x17a2: 0x0040, 0x17a3: 0x0008,\n\t0x17a4: 0x0008, 0x17a5: 0x0008, 0x17a6: 0x0008, 0x17a7: 0x0008, 0x17a8: 0x0008, 0x17a9: 0x0008,\n\t0x17aa: 0x0008, 0x17ab: 0x0008, 0x17ac: 0x0008, 0x17ad: 0x0008, 0x17ae: 0x0008, 0x17af: 0x0008,\n\t0x17b0: 0x0008, 0x17b1: 0x0008, 0x17b2: 0x0040, 0x17b3: 0x0008, 0x17b4: 0x0008, 0x17b5: 0x0008,\n\t0x17b6: 0x0008, 0x17b7: 0x0008, 0x17b8: 0x0008, 0x17b9: 0x0008, 0x17ba: 0x0040, 0x17bb: 0x0008,\n\t0x17bc: 0x0008, 0x17bd: 0x0040, 0x17be: 0x0040, 0x17bf: 0x0040,\n\t// Block 0x5f, offset 0x17c0\n\t0x17c0: 0x0008, 0x17c1: 0x2211, 0x17c2: 0x2219, 0x17c3: 0x02e1, 0x17c4: 0x2221, 0x17c5: 0x2229,\n\t0x17c6: 0x0040, 0x17c7: 0x2231, 0x17c8: 0x2239, 0x17c9: 0x2241, 0x17ca: 0x2249, 0x17cb: 0x2251,\n\t0x17cc: 0x2259, 0x17cd: 0x2261, 0x17ce: 0x2269, 0x17cf: 0x2271, 0x17d0: 0x2279, 0x17d1: 0x2281,\n\t0x17d2: 0x2289, 0x17d3: 0x2291, 0x17d4: 0x2299, 0x17d5: 0x0741, 0x17d6: 0x22a1, 0x17d7: 0x22a9,\n\t0x17d8: 0x22b1, 0x17d9: 0x22b9, 0x17da: 0x22c1, 0x17db: 0x13d9, 0x17dc: 0x8be5, 0x17dd: 0x22c9,\n\t0x17de: 0x22d1, 0x17df: 0x8c05, 0x17e0: 0x22d9, 0x17e1: 0x8c25, 0x17e2: 0x22e1, 0x17e3: 0x22e9,\n\t0x17e4: 0x22f1, 0x17e5: 0x0751, 0x17e6: 0x22f9, 0x17e7: 0x8c45, 0x17e8: 0x0949, 0x17e9: 0x2301,\n\t0x17ea: 0x2309, 0x17eb: 0x2311, 0x17ec: 0x2319, 0x17ed: 0x2321, 0x17ee: 0x2329, 0x17ef: 0x2331,\n\t0x17f0: 0x2339, 0x17f1: 0x0040, 0x17f2: 0x2341, 0x17f3: 0x2349, 0x17f4: 0x2351, 0x17f5: 0x2359,\n\t0x17f6: 0x2361, 0x17f7: 0x2369, 0x17f8: 0x2371, 0x17f9: 0x8c65, 0x17fa: 0x8c85, 0x17fb: 0x0040,\n\t0x17fc: 0x0040, 0x17fd: 0x0040, 0x17fe: 0x0040, 0x17ff: 0x0040,\n\t// Block 0x60, offset 0x1800\n\t0x1800: 0x0a08, 0x1801: 0x0a08, 0x1802: 0x0a08, 0x1803: 0x0a08, 0x1804: 0x0a08, 0x1805: 0x0c08,\n\t0x1806: 0x0808, 0x1807: 0x0c08, 0x1808: 0x0818, 0x1809: 0x0c08, 0x180a: 0x0c08, 0x180b: 0x0808,\n\t0x180c: 0x0808, 0x180d: 0x0908, 0x180e: 0x0c08, 0x180f: 0x0c08, 0x1810: 0x0c08, 0x1811: 0x0c08,\n\t0x1812: 0x0c08, 0x1813: 0x0a08, 0x1814: 0x0a08, 0x1815: 0x0a08, 0x1816: 0x0a08, 0x1817: 0x0908,\n\t0x1818: 0x0a08, 0x1819: 0x0a08, 0x181a: 0x0a08, 0x181b: 0x0a08, 0x181c: 0x0a08, 0x181d: 0x0c08,\n\t0x181e: 0x0a08, 0x181f: 0x0a08, 0x1820: 0x0a08, 0x1821: 0x0c08, 0x1822: 0x0808, 0x1823: 0x0808,\n\t0x1824: 0x0c08, 0x1825: 0x3308, 0x1826: 0x3308, 0x1827: 0x0040, 0x1828: 0x0040, 0x1829: 0x0040,\n\t0x182a: 0x0040, 0x182b: 0x0a18, 0x182c: 0x0a18, 0x182d: 0x0a18, 0x182e: 0x0a18, 0x182f: 0x0c18,\n\t0x1830: 0x0818, 0x1831: 0x0818, 0x1832: 0x0818, 0x1833: 0x0818, 0x1834: 0x0818, 0x1835: 0x0818,\n\t0x1836: 0x0818, 0x1837: 0x0040, 0x1838: 0x0040, 0x1839: 0x0040, 0x183a: 0x0040, 0x183b: 0x0040,\n\t0x183c: 0x0040, 0x183d: 0x0040, 0x183e: 0x0040, 0x183f: 0x0040,\n\t// Block 0x61, offset 0x1840\n\t0x1840: 0x0a08, 0x1841: 0x0c08, 0x1842: 0x0a08, 0x1843: 0x0c08, 0x1844: 0x0c08, 0x1845: 0x0c08,\n\t0x1846: 0x0a08, 0x1847: 0x0a08, 0x1848: 0x0a08, 0x1849: 0x0c08, 0x184a: 0x0a08, 0x184b: 0x0a08,\n\t0x184c: 0x0c08, 0x184d: 0x0a08, 0x184e: 0x0c08, 0x184f: 0x0c08, 0x1850: 0x0a08, 0x1851: 0x0c08,\n\t0x1852: 0x0040, 0x1853: 0x0040, 0x1854: 0x0040, 0x1855: 0x0040, 0x1856: 0x0040, 0x1857: 0x0040,\n\t0x1858: 0x0040, 0x1859: 0x0818, 0x185a: 0x0818, 0x185b: 0x0818, 0x185c: 0x0818, 0x185d: 0x0040,\n\t0x185e: 0x0040, 0x185f: 0x0040, 0x1860: 0x0040, 0x1861: 0x0040, 0x1862: 0x0040, 0x1863: 0x0040,\n\t0x1864: 0x0040, 0x1865: 0x0040, 0x1866: 0x0040, 0x1867: 0x0040, 0x1868: 0x0040, 0x1869: 0x0c18,\n\t0x186a: 0x0c18, 0x186b: 0x0c18, 0x186c: 0x0c18, 0x186d: 0x0a18, 0x186e: 0x0a18, 0x186f: 0x0818,\n\t0x1870: 0x0040, 0x1871: 0x0040, 0x1872: 0x0040, 0x1873: 0x0040, 0x1874: 0x0040, 0x1875: 0x0040,\n\t0x1876: 0x0040, 0x1877: 0x0040, 0x1878: 0x0040, 0x1879: 0x0040, 0x187a: 0x0040, 0x187b: 0x0040,\n\t0x187c: 0x0040, 0x187d: 0x0040, 0x187e: 0x0040, 0x187f: 0x0040,\n\t// Block 0x62, offset 0x1880\n\t0x1880: 0x3308, 0x1881: 0x3308, 0x1882: 0x3008, 0x1883: 0x3008, 0x1884: 0x0040, 0x1885: 0x0008,\n\t0x1886: 0x0008, 0x1887: 0x0008, 0x1888: 0x0008, 0x1889: 0x0008, 0x188a: 0x0008, 0x188b: 0x0008,\n\t0x188c: 0x0008, 0x188d: 0x0040, 0x188e: 0x0040, 0x188f: 0x0008, 0x1890: 0x0008, 0x1891: 0x0040,\n\t0x1892: 0x0040, 0x1893: 0x0008, 0x1894: 0x0008, 0x1895: 0x0008, 0x1896: 0x0008, 0x1897: 0x0008,\n\t0x1898: 0x0008, 0x1899: 0x0008, 0x189a: 0x0008, 0x189b: 0x0008, 0x189c: 0x0008, 0x189d: 0x0008,\n\t0x189e: 0x0008, 0x189f: 0x0008, 0x18a0: 0x0008, 0x18a1: 0x0008, 0x18a2: 0x0008, 0x18a3: 0x0008,\n\t0x18a4: 0x0008, 0x18a5: 0x0008, 0x18a6: 0x0008, 0x18a7: 0x0008, 0x18a8: 0x0008, 0x18a9: 0x0040,\n\t0x18aa: 0x0008, 0x18ab: 0x0008, 0x18ac: 0x0008, 0x18ad: 0x0008, 0x18ae: 0x0008, 0x18af: 0x0008,\n\t0x18b0: 0x0008, 0x18b1: 0x0040, 0x18b2: 0x0008, 0x18b3: 0x0008, 0x18b4: 0x0040, 0x18b5: 0x0008,\n\t0x18b6: 0x0008, 0x18b7: 0x0008, 0x18b8: 0x0008, 0x18b9: 0x0008, 0x18ba: 0x0040, 0x18bb: 0x3308,\n\t0x18bc: 0x3308, 0x18bd: 0x0008, 0x18be: 0x3008, 0x18bf: 0x3008,\n\t// Block 0x63, offset 0x18c0\n\t0x18c0: 0x3308, 0x18c1: 0x3008, 0x18c2: 0x3008, 0x18c3: 0x3008, 0x18c4: 0x3008, 0x18c5: 0x0040,\n\t0x18c6: 0x0040, 0x18c7: 0x3008, 0x18c8: 0x3008, 0x18c9: 0x0040, 0x18ca: 0x0040, 0x18cb: 0x3008,\n\t0x18cc: 0x3008, 0x18cd: 0x3808, 0x18ce: 0x0040, 0x18cf: 0x0040, 0x18d0: 0x0008, 0x18d1: 0x0040,\n\t0x18d2: 0x0040, 0x18d3: 0x0040, 0x18d4: 0x0040, 0x18d5: 0x0040, 0x18d6: 0x0040, 0x18d7: 0x3008,\n\t0x18d8: 0x0040, 0x18d9: 0x0040, 0x18da: 0x0040, 0x18db: 0x0040, 0x18dc: 0x0040, 0x18dd: 0x0008,\n\t0x18de: 0x0008, 0x18df: 0x0008, 0x18e0: 0x0008, 0x18e1: 0x0008, 0x18e2: 0x3008, 0x18e3: 0x3008,\n\t0x18e4: 0x0040, 0x18e5: 0x0040, 0x18e6: 0x3308, 0x18e7: 0x3308, 0x18e8: 0x3308, 0x18e9: 0x3308,\n\t0x18ea: 0x3308, 0x18eb: 0x3308, 0x18ec: 0x3308, 0x18ed: 0x0040, 0x18ee: 0x0040, 0x18ef: 0x0040,\n\t0x18f0: 0x3308, 0x18f1: 0x3308, 0x18f2: 0x3308, 0x18f3: 0x3308, 0x18f4: 0x3308, 0x18f5: 0x0040,\n\t0x18f6: 0x0040, 0x18f7: 0x0040, 0x18f8: 0x0040, 0x18f9: 0x0040, 0x18fa: 0x0040, 0x18fb: 0x0040,\n\t0x18fc: 0x0040, 0x18fd: 0x0040, 0x18fe: 0x0040, 0x18ff: 0x0040,\n\t// Block 0x64, offset 0x1900\n\t0x1900: 0x0008, 0x1901: 0x0008, 0x1902: 0x0008, 0x1903: 0x0008, 0x1904: 0x0008, 0x1905: 0x0008,\n\t0x1906: 0x0008, 0x1907: 0x0040, 0x1908: 0x0040, 0x1909: 0x0008, 0x190a: 0x0040, 0x190b: 0x0040,\n\t0x190c: 0x0008, 0x190d: 0x0008, 0x190e: 0x0008, 0x190f: 0x0008, 0x1910: 0x0008, 0x1911: 0x0008,\n\t0x1912: 0x0008, 0x1913: 0x0008, 0x1914: 0x0040, 0x1915: 0x0008, 0x1916: 0x0008, 0x1917: 0x0040,\n\t0x1918: 0x0008, 0x1919: 0x0008, 0x191a: 0x0008, 0x191b: 0x0008, 0x191c: 0x0008, 0x191d: 0x0008,\n\t0x191e: 0x0008, 0x191f: 0x0008, 0x1920: 0x0008, 0x1921: 0x0008, 0x1922: 0x0008, 0x1923: 0x0008,\n\t0x1924: 0x0008, 0x1925: 0x0008, 0x1926: 0x0008, 0x1927: 0x0008, 0x1928: 0x0008, 0x1929: 0x0008,\n\t0x192a: 0x0008, 0x192b: 0x0008, 0x192c: 0x0008, 0x192d: 0x0008, 0x192e: 0x0008, 0x192f: 0x0008,\n\t0x1930: 0x3008, 0x1931: 0x3008, 0x1932: 0x3008, 0x1933: 0x3008, 0x1934: 0x3008, 0x1935: 0x3008,\n\t0x1936: 0x0040, 0x1937: 0x3008, 0x1938: 0x3008, 0x1939: 0x0040, 0x193a: 0x0040, 0x193b: 0x3308,\n\t0x193c: 0x3308, 0x193d: 0x3808, 0x193e: 0x3b08, 0x193f: 0x0008,\n\t// Block 0x65, offset 0x1940\n\t0x1940: 0x0019, 0x1941: 0x02e9, 0x1942: 0x03d9, 0x1943: 0x02f1, 0x1944: 0x02f9, 0x1945: 0x03f1,\n\t0x1946: 0x0309, 0x1947: 0x00a9, 0x1948: 0x0311, 0x1949: 0x00b1, 0x194a: 0x0319, 0x194b: 0x0101,\n\t0x194c: 0x0321, 0x194d: 0x0329, 0x194e: 0x0051, 0x194f: 0x0339, 0x1950: 0x0751, 0x1951: 0x00b9,\n\t0x1952: 0x0089, 0x1953: 0x0341, 0x1954: 0x0349, 0x1955: 0x0391, 0x1956: 0x00c1, 0x1957: 0x0109,\n\t0x1958: 0x00c9, 0x1959: 0x04b1, 0x195a: 0x0019, 0x195b: 0x02e9, 0x195c: 0x03d9, 0x195d: 0x02f1,\n\t0x195e: 0x02f9, 0x195f: 0x03f1, 0x1960: 0x0309, 0x1961: 0x00a9, 0x1962: 0x0311, 0x1963: 0x00b1,\n\t0x1964: 0x0319, 0x1965: 0x0101, 0x1966: 0x0321, 0x1967: 0x0329, 0x1968: 0x0051, 0x1969: 0x0339,\n\t0x196a: 0x0751, 0x196b: 0x00b9, 0x196c: 0x0089, 0x196d: 0x0341, 0x196e: 0x0349, 0x196f: 0x0391,\n\t0x1970: 0x00c1, 0x1971: 0x0109, 0x1972: 0x00c9, 0x1973: 0x04b1, 0x1974: 0x0019, 0x1975: 0x02e9,\n\t0x1976: 0x03d9, 0x1977: 0x02f1, 0x1978: 0x02f9, 0x1979: 0x03f1, 0x197a: 0x0309, 0x197b: 0x00a9,\n\t0x197c: 0x0311, 0x197d: 0x00b1, 0x197e: 0x0319, 0x197f: 0x0101,\n\t// Block 0x66, offset 0x1980\n\t0x1980: 0x0321, 0x1981: 0x0329, 0x1982: 0x0051, 0x1983: 0x0339, 0x1984: 0x0751, 0x1985: 0x00b9,\n\t0x1986: 0x0089, 0x1987: 0x0341, 0x1988: 0x0349, 0x1989: 0x0391, 0x198a: 0x00c1, 0x198b: 0x0109,\n\t0x198c: 0x00c9, 0x198d: 0x04b1, 0x198e: 0x0019, 0x198f: 0x02e9, 0x1990: 0x03d9, 0x1991: 0x02f1,\n\t0x1992: 0x02f9, 0x1993: 0x03f1, 0x1994: 0x0309, 0x1995: 0x0040, 0x1996: 0x0311, 0x1997: 0x00b1,\n\t0x1998: 0x0319, 0x1999: 0x0101, 0x199a: 0x0321, 0x199b: 0x0329, 0x199c: 0x0051, 0x199d: 0x0339,\n\t0x199e: 0x0751, 0x199f: 0x00b9, 0x19a0: 0x0089, 0x19a1: 0x0341, 0x19a2: 0x0349, 0x19a3: 0x0391,\n\t0x19a4: 0x00c1, 0x19a5: 0x0109, 0x19a6: 0x00c9, 0x19a7: 0x04b1, 0x19a8: 0x0019, 0x19a9: 0x02e9,\n\t0x19aa: 0x03d9, 0x19ab: 0x02f1, 0x19ac: 0x02f9, 0x19ad: 0x03f1, 0x19ae: 0x0309, 0x19af: 0x00a9,\n\t0x19b0: 0x0311, 0x19b1: 0x00b1, 0x19b2: 0x0319, 0x19b3: 0x0101, 0x19b4: 0x0321, 0x19b5: 0x0329,\n\t0x19b6: 0x0051, 0x19b7: 0x0339, 0x19b8: 0x0751, 0x19b9: 0x00b9, 0x19ba: 0x0089, 0x19bb: 0x0341,\n\t0x19bc: 0x0349, 0x19bd: 0x0391, 0x19be: 0x00c1, 0x19bf: 0x0109,\n\t// Block 0x67, offset 0x19c0\n\t0x19c0: 0x00c9, 0x19c1: 0x04b1, 0x19c2: 0x0019, 0x19c3: 0x02e9, 0x19c4: 0x03d9, 0x19c5: 0x02f1,\n\t0x19c6: 0x02f9, 0x19c7: 0x03f1, 0x19c8: 0x0309, 0x19c9: 0x00a9, 0x19ca: 0x0311, 0x19cb: 0x00b1,\n\t0x19cc: 0x0319, 0x19cd: 0x0101, 0x19ce: 0x0321, 0x19cf: 0x0329, 0x19d0: 0x0051, 0x19d1: 0x0339,\n\t0x19d2: 0x0751, 0x19d3: 0x00b9, 0x19d4: 0x0089, 0x19d5: 0x0341, 0x19d6: 0x0349, 0x19d7: 0x0391,\n\t0x19d8: 0x00c1, 0x19d9: 0x0109, 0x19da: 0x00c9, 0x19db: 0x04b1, 0x19dc: 0x0019, 0x19dd: 0x0040,\n\t0x19de: 0x03d9, 0x19df: 0x02f1, 0x19e0: 0x0040, 0x19e1: 0x0040, 0x19e2: 0x0309, 0x19e3: 0x0040,\n\t0x19e4: 0x0040, 0x19e5: 0x00b1, 0x19e6: 0x0319, 0x19e7: 0x0040, 0x19e8: 0x0040, 0x19e9: 0x0329,\n\t0x19ea: 0x0051, 0x19eb: 0x0339, 0x19ec: 0x0751, 0x19ed: 0x0040, 0x19ee: 0x0089, 0x19ef: 0x0341,\n\t0x19f0: 0x0349, 0x19f1: 0x0391, 0x19f2: 0x00c1, 0x19f3: 0x0109, 0x19f4: 0x00c9, 0x19f5: 0x04b1,\n\t0x19f6: 0x0019, 0x19f7: 0x02e9, 0x19f8: 0x03d9, 0x19f9: 0x02f1, 0x19fa: 0x0040, 0x19fb: 0x03f1,\n\t0x19fc: 0x0040, 0x19fd: 0x00a9, 0x19fe: 0x0311, 0x19ff: 0x00b1,\n\t// Block 0x68, offset 0x1a00\n\t0x1a00: 0x0319, 0x1a01: 0x0101, 0x1a02: 0x0321, 0x1a03: 0x0329, 0x1a04: 0x0040, 0x1a05: 0x0339,\n\t0x1a06: 0x0751, 0x1a07: 0x00b9, 0x1a08: 0x0089, 0x1a09: 0x0341, 0x1a0a: 0x0349, 0x1a0b: 0x0391,\n\t0x1a0c: 0x00c1, 0x1a0d: 0x0109, 0x1a0e: 0x00c9, 0x1a0f: 0x04b1, 0x1a10: 0x0019, 0x1a11: 0x02e9,\n\t0x1a12: 0x03d9, 0x1a13: 0x02f1, 0x1a14: 0x02f9, 0x1a15: 0x03f1, 0x1a16: 0x0309, 0x1a17: 0x00a9,\n\t0x1a18: 0x0311, 0x1a19: 0x00b1, 0x1a1a: 0x0319, 0x1a1b: 0x0101, 0x1a1c: 0x0321, 0x1a1d: 0x0329,\n\t0x1a1e: 0x0051, 0x1a1f: 0x0339, 0x1a20: 0x0751, 0x1a21: 0x00b9, 0x1a22: 0x0089, 0x1a23: 0x0341,\n\t0x1a24: 0x0349, 0x1a25: 0x0391, 0x1a26: 0x00c1, 0x1a27: 0x0109, 0x1a28: 0x00c9, 0x1a29: 0x04b1,\n\t0x1a2a: 0x0019, 0x1a2b: 0x02e9, 0x1a2c: 0x03d9, 0x1a2d: 0x02f1, 0x1a2e: 0x02f9, 0x1a2f: 0x03f1,\n\t0x1a30: 0x0309, 0x1a31: 0x00a9, 0x1a32: 0x0311, 0x1a33: 0x00b1, 0x1a34: 0x0319, 0x1a35: 0x0101,\n\t0x1a36: 0x0321, 0x1a37: 0x0329, 0x1a38: 0x0051, 0x1a39: 0x0339, 0x1a3a: 0x0751, 0x1a3b: 0x00b9,\n\t0x1a3c: 0x0089, 0x1a3d: 0x0341, 0x1a3e: 0x0349, 0x1a3f: 0x0391,\n\t// Block 0x69, offset 0x1a40\n\t0x1a40: 0x00c1, 0x1a41: 0x0109, 0x1a42: 0x00c9, 0x1a43: 0x04b1, 0x1a44: 0x0019, 0x1a45: 0x02e9,\n\t0x1a46: 0x0040, 0x1a47: 0x02f1, 0x1a48: 0x02f9, 0x1a49: 0x03f1, 0x1a4a: 0x0309, 0x1a4b: 0x0040,\n\t0x1a4c: 0x0040, 0x1a4d: 0x00b1, 0x1a4e: 0x0319, 0x1a4f: 0x0101, 0x1a50: 0x0321, 0x1a51: 0x0329,\n\t0x1a52: 0x0051, 0x1a53: 0x0339, 0x1a54: 0x0751, 0x1a55: 0x0040, 0x1a56: 0x0089, 0x1a57: 0x0341,\n\t0x1a58: 0x0349, 0x1a59: 0x0391, 0x1a5a: 0x00c1, 0x1a5b: 0x0109, 0x1a5c: 0x00c9, 0x1a5d: 0x0040,\n\t0x1a5e: 0x0019, 0x1a5f: 0x02e9, 0x1a60: 0x03d9, 0x1a61: 0x02f1, 0x1a62: 0x02f9, 0x1a63: 0x03f1,\n\t0x1a64: 0x0309, 0x1a65: 0x00a9, 0x1a66: 0x0311, 0x1a67: 0x00b1, 0x1a68: 0x0319, 0x1a69: 0x0101,\n\t0x1a6a: 0x0321, 0x1a6b: 0x0329, 0x1a6c: 0x0051, 0x1a6d: 0x0339, 0x1a6e: 0x0751, 0x1a6f: 0x00b9,\n\t0x1a70: 0x0089, 0x1a71: 0x0341, 0x1a72: 0x0349, 0x1a73: 0x0391, 0x1a74: 0x00c1, 0x1a75: 0x0109,\n\t0x1a76: 0x00c9, 0x1a77: 0x04b1, 0x1a78: 0x0019, 0x1a79: 0x02e9, 0x1a7a: 0x0040, 0x1a7b: 0x02f1,\n\t0x1a7c: 0x02f9, 0x1a7d: 0x03f1, 0x1a7e: 0x0309, 0x1a7f: 0x0040,\n\t// Block 0x6a, offset 0x1a80\n\t0x1a80: 0x0311, 0x1a81: 0x00b1, 0x1a82: 0x0319, 0x1a83: 0x0101, 0x1a84: 0x0321, 0x1a85: 0x0040,\n\t0x1a86: 0x0051, 0x1a87: 0x0040, 0x1a88: 0x0040, 0x1a89: 0x0040, 0x1a8a: 0x0089, 0x1a8b: 0x0341,\n\t0x1a8c: 0x0349, 0x1a8d: 0x0391, 0x1a8e: 0x00c1, 0x1a8f: 0x0109, 0x1a90: 0x00c9, 0x1a91: 0x0040,\n\t0x1a92: 0x0019, 0x1a93: 0x02e9, 0x1a94: 0x03d9, 0x1a95: 0x02f1, 0x1a96: 0x02f9, 0x1a97: 0x03f1,\n\t0x1a98: 0x0309, 0x1a99: 0x00a9, 0x1a9a: 0x0311, 0x1a9b: 0x00b1, 0x1a9c: 0x0319, 0x1a9d: 0x0101,\n\t0x1a9e: 0x0321, 0x1a9f: 0x0329, 0x1aa0: 0x0051, 0x1aa1: 0x0339, 0x1aa2: 0x0751, 0x1aa3: 0x00b9,\n\t0x1aa4: 0x0089, 0x1aa5: 0x0341, 0x1aa6: 0x0349, 0x1aa7: 0x0391, 0x1aa8: 0x00c1, 0x1aa9: 0x0109,\n\t0x1aaa: 0x00c9, 0x1aab: 0x04b1, 0x1aac: 0x0019, 0x1aad: 0x02e9, 0x1aae: 0x03d9, 0x1aaf: 0x02f1,\n\t0x1ab0: 0x02f9, 0x1ab1: 0x03f1, 0x1ab2: 0x0309, 0x1ab3: 0x00a9, 0x1ab4: 0x0311, 0x1ab5: 0x00b1,\n\t0x1ab6: 0x0319, 0x1ab7: 0x0101, 0x1ab8: 0x0321, 0x1ab9: 0x0329, 0x1aba: 0x0051, 0x1abb: 0x0339,\n\t0x1abc: 0x0751, 0x1abd: 0x00b9, 0x1abe: 0x0089, 0x1abf: 0x0341,\n\t// Block 0x6b, offset 0x1ac0\n\t0x1ac0: 0x0349, 0x1ac1: 0x0391, 0x1ac2: 0x00c1, 0x1ac3: 0x0109, 0x1ac4: 0x00c9, 0x1ac5: 0x04b1,\n\t0x1ac6: 0x0019, 0x1ac7: 0x02e9, 0x1ac8: 0x03d9, 0x1ac9: 0x02f1, 0x1aca: 0x02f9, 0x1acb: 0x03f1,\n\t0x1acc: 0x0309, 0x1acd: 0x00a9, 0x1ace: 0x0311, 0x1acf: 0x00b1, 0x1ad0: 0x0319, 0x1ad1: 0x0101,\n\t0x1ad2: 0x0321, 0x1ad3: 0x0329, 0x1ad4: 0x0051, 0x1ad5: 0x0339, 0x1ad6: 0x0751, 0x1ad7: 0x00b9,\n\t0x1ad8: 0x0089, 0x1ad9: 0x0341, 0x1ada: 0x0349, 0x1adb: 0x0391, 0x1adc: 0x00c1, 0x1add: 0x0109,\n\t0x1ade: 0x00c9, 0x1adf: 0x04b1, 0x1ae0: 0x0019, 0x1ae1: 0x02e9, 0x1ae2: 0x03d9, 0x1ae3: 0x02f1,\n\t0x1ae4: 0x02f9, 0x1ae5: 0x03f1, 0x1ae6: 0x0309, 0x1ae7: 0x00a9, 0x1ae8: 0x0311, 0x1ae9: 0x00b1,\n\t0x1aea: 0x0319, 0x1aeb: 0x0101, 0x1aec: 0x0321, 0x1aed: 0x0329, 0x1aee: 0x0051, 0x1aef: 0x0339,\n\t0x1af0: 0x0751, 0x1af1: 0x00b9, 0x1af2: 0x0089, 0x1af3: 0x0341, 0x1af4: 0x0349, 0x1af5: 0x0391,\n\t0x1af6: 0x00c1, 0x1af7: 0x0109, 0x1af8: 0x00c9, 0x1af9: 0x04b1, 0x1afa: 0x0019, 0x1afb: 0x02e9,\n\t0x1afc: 0x03d9, 0x1afd: 0x02f1, 0x1afe: 0x02f9, 0x1aff: 0x03f1,\n\t// Block 0x6c, offset 0x1b00\n\t0x1b00: 0x0309, 0x1b01: 0x00a9, 0x1b02: 0x0311, 0x1b03: 0x00b1, 0x1b04: 0x0319, 0x1b05: 0x0101,\n\t0x1b06: 0x0321, 0x1b07: 0x0329, 0x1b08: 0x0051, 0x1b09: 0x0339, 0x1b0a: 0x0751, 0x1b0b: 0x00b9,\n\t0x1b0c: 0x0089, 0x1b0d: 0x0341, 0x1b0e: 0x0349, 0x1b0f: 0x0391, 0x1b10: 0x00c1, 0x1b11: 0x0109,\n\t0x1b12: 0x00c9, 0x1b13: 0x04b1, 0x1b14: 0x0019, 0x1b15: 0x02e9, 0x1b16: 0x03d9, 0x1b17: 0x02f1,\n\t0x1b18: 0x02f9, 0x1b19: 0x03f1, 0x1b1a: 0x0309, 0x1b1b: 0x00a9, 0x1b1c: 0x0311, 0x1b1d: 0x00b1,\n\t0x1b1e: 0x0319, 0x1b1f: 0x0101, 0x1b20: 0x0321, 0x1b21: 0x0329, 0x1b22: 0x0051, 0x1b23: 0x0339,\n\t0x1b24: 0x0751, 0x1b25: 0x00b9, 0x1b26: 0x0089, 0x1b27: 0x0341, 0x1b28: 0x0349, 0x1b29: 0x0391,\n\t0x1b2a: 0x00c1, 0x1b2b: 0x0109, 0x1b2c: 0x00c9, 0x1b2d: 0x04b1, 0x1b2e: 0x0019, 0x1b2f: 0x02e9,\n\t0x1b30: 0x03d9, 0x1b31: 0x02f1, 0x1b32: 0x02f9, 0x1b33: 0x03f1, 0x1b34: 0x0309, 0x1b35: 0x00a9,\n\t0x1b36: 0x0311, 0x1b37: 0x00b1, 0x1b38: 0x0319, 0x1b39: 0x0101, 0x1b3a: 0x0321, 0x1b3b: 0x0329,\n\t0x1b3c: 0x0051, 0x1b3d: 0x0339, 0x1b3e: 0x0751, 0x1b3f: 0x00b9,\n\t// Block 0x6d, offset 0x1b40\n\t0x1b40: 0x0089, 0x1b41: 0x0341, 0x1b42: 0x0349, 0x1b43: 0x0391, 0x1b44: 0x00c1, 0x1b45: 0x0109,\n\t0x1b46: 0x00c9, 0x1b47: 0x04b1, 0x1b48: 0x0019, 0x1b49: 0x02e9, 0x1b4a: 0x03d9, 0x1b4b: 0x02f1,\n\t0x1b4c: 0x02f9, 0x1b4d: 0x03f1, 0x1b4e: 0x0309, 0x1b4f: 0x00a9, 0x1b50: 0x0311, 0x1b51: 0x00b1,\n\t0x1b52: 0x0319, 0x1b53: 0x0101, 0x1b54: 0x0321, 0x1b55: 0x0329, 0x1b56: 0x0051, 0x1b57: 0x0339,\n\t0x1b58: 0x0751, 0x1b59: 0x00b9, 0x1b5a: 0x0089, 0x1b5b: 0x0341, 0x1b5c: 0x0349, 0x1b5d: 0x0391,\n\t0x1b5e: 0x00c1, 0x1b5f: 0x0109, 0x1b60: 0x00c9, 0x1b61: 0x04b1, 0x1b62: 0x0019, 0x1b63: 0x02e9,\n\t0x1b64: 0x03d9, 0x1b65: 0x02f1, 0x1b66: 0x02f9, 0x1b67: 0x03f1, 0x1b68: 0x0309, 0x1b69: 0x00a9,\n\t0x1b6a: 0x0311, 0x1b6b: 0x00b1, 0x1b6c: 0x0319, 0x1b6d: 0x0101, 0x1b6e: 0x0321, 0x1b6f: 0x0329,\n\t0x1b70: 0x0051, 0x1b71: 0x0339, 0x1b72: 0x0751, 0x1b73: 0x00b9, 0x1b74: 0x0089, 0x1b75: 0x0341,\n\t0x1b76: 0x0349, 0x1b77: 0x0391, 0x1b78: 0x00c1, 0x1b79: 0x0109, 0x1b7a: 0x00c9, 0x1b7b: 0x04b1,\n\t0x1b7c: 0x0019, 0x1b7d: 0x02e9, 0x1b7e: 0x03d9, 0x1b7f: 0x02f1,\n\t// Block 0x6e, offset 0x1b80\n\t0x1b80: 0x02f9, 0x1b81: 0x03f1, 0x1b82: 0x0309, 0x1b83: 0x00a9, 0x1b84: 0x0311, 0x1b85: 0x00b1,\n\t0x1b86: 0x0319, 0x1b87: 0x0101, 0x1b88: 0x0321, 0x1b89: 0x0329, 0x1b8a: 0x0051, 0x1b8b: 0x0339,\n\t0x1b8c: 0x0751, 0x1b8d: 0x00b9, 0x1b8e: 0x0089, 0x1b8f: 0x0341, 0x1b90: 0x0349, 0x1b91: 0x0391,\n\t0x1b92: 0x00c1, 0x1b93: 0x0109, 0x1b94: 0x00c9, 0x1b95: 0x04b1, 0x1b96: 0x0019, 0x1b97: 0x02e9,\n\t0x1b98: 0x03d9, 0x1b99: 0x02f1, 0x1b9a: 0x02f9, 0x1b9b: 0x03f1, 0x1b9c: 0x0309, 0x1b9d: 0x00a9,\n\t0x1b9e: 0x0311, 0x1b9f: 0x00b1, 0x1ba0: 0x0319, 0x1ba1: 0x0101, 0x1ba2: 0x0321, 0x1ba3: 0x0329,\n\t0x1ba4: 0x0051, 0x1ba5: 0x0339, 0x1ba6: 0x0751, 0x1ba7: 0x00b9, 0x1ba8: 0x0089, 0x1ba9: 0x0341,\n\t0x1baa: 0x0349, 0x1bab: 0x0391, 0x1bac: 0x00c1, 0x1bad: 0x0109, 0x1bae: 0x00c9, 0x1baf: 0x04b1,\n\t0x1bb0: 0x0019, 0x1bb1: 0x02e9, 0x1bb2: 0x03d9, 0x1bb3: 0x02f1, 0x1bb4: 0x02f9, 0x1bb5: 0x03f1,\n\t0x1bb6: 0x0309, 0x1bb7: 0x00a9, 0x1bb8: 0x0311, 0x1bb9: 0x00b1, 0x1bba: 0x0319, 0x1bbb: 0x0101,\n\t0x1bbc: 0x0321, 0x1bbd: 0x0329, 0x1bbe: 0x0051, 0x1bbf: 0x0339,\n\t// Block 0x6f, offset 0x1bc0\n\t0x1bc0: 0x0751, 0x1bc1: 0x00b9, 0x1bc2: 0x0089, 0x1bc3: 0x0341, 0x1bc4: 0x0349, 0x1bc5: 0x0391,\n\t0x1bc6: 0x00c1, 0x1bc7: 0x0109, 0x1bc8: 0x00c9, 0x1bc9: 0x04b1, 0x1bca: 0x0019, 0x1bcb: 0x02e9,\n\t0x1bcc: 0x03d9, 0x1bcd: 0x02f1, 0x1bce: 0x02f9, 0x1bcf: 0x03f1, 0x1bd0: 0x0309, 0x1bd1: 0x00a9,\n\t0x1bd2: 0x0311, 0x1bd3: 0x00b1, 0x1bd4: 0x0319, 0x1bd5: 0x0101, 0x1bd6: 0x0321, 0x1bd7: 0x0329,\n\t0x1bd8: 0x0051, 0x1bd9: 0x0339, 0x1bda: 0x0751, 0x1bdb: 0x00b9, 0x1bdc: 0x0089, 0x1bdd: 0x0341,\n\t0x1bde: 0x0349, 0x1bdf: 0x0391, 0x1be0: 0x00c1, 0x1be1: 0x0109, 0x1be2: 0x00c9, 0x1be3: 0x04b1,\n\t0x1be4: 0x23e1, 0x1be5: 0x23e9, 0x1be6: 0x0040, 0x1be7: 0x0040, 0x1be8: 0x23f1, 0x1be9: 0x0399,\n\t0x1bea: 0x03a1, 0x1beb: 0x03a9, 0x1bec: 0x23f9, 0x1bed: 0x2401, 0x1bee: 0x2409, 0x1bef: 0x04d1,\n\t0x1bf0: 0x05f9, 0x1bf1: 0x2411, 0x1bf2: 0x2419, 0x1bf3: 0x2421, 0x1bf4: 0x2429, 0x1bf5: 0x2431,\n\t0x1bf6: 0x2439, 0x1bf7: 0x0799, 0x1bf8: 0x03c1, 0x1bf9: 0x04d1, 0x1bfa: 0x2441, 0x1bfb: 0x2449,\n\t0x1bfc: 0x2451, 0x1bfd: 0x03b1, 0x1bfe: 0x03b9, 0x1bff: 0x2459,\n\t// Block 0x70, offset 0x1c00\n\t0x1c00: 0x0769, 0x1c01: 0x2461, 0x1c02: 0x23f1, 0x1c03: 0x0399, 0x1c04: 0x03a1, 0x1c05: 0x03a9,\n\t0x1c06: 0x23f9, 0x1c07: 0x2401, 0x1c08: 0x2409, 0x1c09: 0x04d1, 0x1c0a: 0x05f9, 0x1c0b: 0x2411,\n\t0x1c0c: 0x2419, 0x1c0d: 0x2421, 0x1c0e: 0x2429, 0x1c0f: 0x2431, 0x1c10: 0x2439, 0x1c11: 0x0799,\n\t0x1c12: 0x03c1, 0x1c13: 0x2441, 0x1c14: 0x2441, 0x1c15: 0x2449, 0x1c16: 0x2451, 0x1c17: 0x03b1,\n\t0x1c18: 0x03b9, 0x1c19: 0x2459, 0x1c1a: 0x0769, 0x1c1b: 0x2469, 0x1c1c: 0x23f9, 0x1c1d: 0x04d1,\n\t0x1c1e: 0x2411, 0x1c1f: 0x03b1, 0x1c20: 0x03c1, 0x1c21: 0x0799, 0x1c22: 0x23f1, 0x1c23: 0x0399,\n\t0x1c24: 0x03a1, 0x1c25: 0x03a9, 0x1c26: 0x23f9, 0x1c27: 0x2401, 0x1c28: 0x2409, 0x1c29: 0x04d1,\n\t0x1c2a: 0x05f9, 0x1c2b: 0x2411, 0x1c2c: 0x2419, 0x1c2d: 0x2421, 0x1c2e: 0x2429, 0x1c2f: 0x2431,\n\t0x1c30: 0x2439, 0x1c31: 0x0799, 0x1c32: 0x03c1, 0x1c33: 0x04d1, 0x1c34: 0x2441, 0x1c35: 0x2449,\n\t0x1c36: 0x2451, 0x1c37: 0x03b1, 0x1c38: 0x03b9, 0x1c39: 0x2459, 0x1c3a: 0x0769, 0x1c3b: 0x2461,\n\t0x1c3c: 0x23f1, 0x1c3d: 0x0399, 0x1c3e: 0x03a1, 0x1c3f: 0x03a9,\n\t// Block 0x71, offset 0x1c40\n\t0x1c40: 0x23f9, 0x1c41: 0x2401, 0x1c42: 0x2409, 0x1c43: 0x04d1, 0x1c44: 0x05f9, 0x1c45: 0x2411,\n\t0x1c46: 0x2419, 0x1c47: 0x2421, 0x1c48: 0x2429, 0x1c49: 0x2431, 0x1c4a: 0x2439, 0x1c4b: 0x0799,\n\t0x1c4c: 0x03c1, 0x1c4d: 0x2441, 0x1c4e: 0x2441, 0x1c4f: 0x2449, 0x1c50: 0x2451, 0x1c51: 0x03b1,\n\t0x1c52: 0x03b9, 0x1c53: 0x2459, 0x1c54: 0x0769, 0x1c55: 0x2469, 0x1c56: 0x23f9, 0x1c57: 0x04d1,\n\t0x1c58: 0x2411, 0x1c59: 0x03b1, 0x1c5a: 0x03c1, 0x1c5b: 0x0799, 0x1c5c: 0x23f1, 0x1c5d: 0x0399,\n\t0x1c5e: 0x03a1, 0x1c5f: 0x03a9, 0x1c60: 0x23f9, 0x1c61: 0x2401, 0x1c62: 0x2409, 0x1c63: 0x04d1,\n\t0x1c64: 0x05f9, 0x1c65: 0x2411, 0x1c66: 0x2419, 0x1c67: 0x2421, 0x1c68: 0x2429, 0x1c69: 0x2431,\n\t0x1c6a: 0x2439, 0x1c6b: 0x0799, 0x1c6c: 0x03c1, 0x1c6d: 0x04d1, 0x1c6e: 0x2441, 0x1c6f: 0x2449,\n\t0x1c70: 0x2451, 0x1c71: 0x03b1, 0x1c72: 0x03b9, 0x1c73: 0x2459, 0x1c74: 0x0769, 0x1c75: 0x2461,\n\t0x1c76: 0x23f1, 0x1c77: 0x0399, 0x1c78: 0x03a1, 0x1c79: 0x03a9, 0x1c7a: 0x23f9, 0x1c7b: 0x2401,\n\t0x1c7c: 0x2409, 0x1c7d: 0x04d1, 0x1c7e: 0x05f9, 0x1c7f: 0x2411,\n\t// Block 0x72, offset 0x1c80\n\t0x1c80: 0x2419, 0x1c81: 0x2421, 0x1c82: 0x2429, 0x1c83: 0x2431, 0x1c84: 0x2439, 0x1c85: 0x0799,\n\t0x1c86: 0x03c1, 0x1c87: 0x2441, 0x1c88: 0x2441, 0x1c89: 0x2449, 0x1c8a: 0x2451, 0x1c8b: 0x03b1,\n\t0x1c8c: 0x03b9, 0x1c8d: 0x2459, 0x1c8e: 0x0769, 0x1c8f: 0x2469, 0x1c90: 0x23f9, 0x1c91: 0x04d1,\n\t0x1c92: 0x2411, 0x1c93: 0x03b1, 0x1c94: 0x03c1, 0x1c95: 0x0799, 0x1c96: 0x23f1, 0x1c97: 0x0399,\n\t0x1c98: 0x03a1, 0x1c99: 0x03a9, 0x1c9a: 0x23f9, 0x1c9b: 0x2401, 0x1c9c: 0x2409, 0x1c9d: 0x04d1,\n\t0x1c9e: 0x05f9, 0x1c9f: 0x2411, 0x1ca0: 0x2419, 0x1ca1: 0x2421, 0x1ca2: 0x2429, 0x1ca3: 0x2431,\n\t0x1ca4: 0x2439, 0x1ca5: 0x0799, 0x1ca6: 0x03c1, 0x1ca7: 0x04d1, 0x1ca8: 0x2441, 0x1ca9: 0x2449,\n\t0x1caa: 0x2451, 0x1cab: 0x03b1, 0x1cac: 0x03b9, 0x1cad: 0x2459, 0x1cae: 0x0769, 0x1caf: 0x2461,\n\t0x1cb0: 0x23f1, 0x1cb1: 0x0399, 0x1cb2: 0x03a1, 0x1cb3: 0x03a9, 0x1cb4: 0x23f9, 0x1cb5: 0x2401,\n\t0x1cb6: 0x2409, 0x1cb7: 0x04d1, 0x1cb8: 0x05f9, 0x1cb9: 0x2411, 0x1cba: 0x2419, 0x1cbb: 0x2421,\n\t0x1cbc: 0x2429, 0x1cbd: 0x2431, 0x1cbe: 0x2439, 0x1cbf: 0x0799,\n\t// Block 0x73, offset 0x1cc0\n\t0x1cc0: 0x03c1, 0x1cc1: 0x2441, 0x1cc2: 0x2441, 0x1cc3: 0x2449, 0x1cc4: 0x2451, 0x1cc5: 0x03b1,\n\t0x1cc6: 0x03b9, 0x1cc7: 0x2459, 0x1cc8: 0x0769, 0x1cc9: 0x2469, 0x1cca: 0x23f9, 0x1ccb: 0x04d1,\n\t0x1ccc: 0x2411, 0x1ccd: 0x03b1, 0x1cce: 0x03c1, 0x1ccf: 0x0799, 0x1cd0: 0x23f1, 0x1cd1: 0x0399,\n\t0x1cd2: 0x03a1, 0x1cd3: 0x03a9, 0x1cd4: 0x23f9, 0x1cd5: 0x2401, 0x1cd6: 0x2409, 0x1cd7: 0x04d1,\n\t0x1cd8: 0x05f9, 0x1cd9: 0x2411, 0x1cda: 0x2419, 0x1cdb: 0x2421, 0x1cdc: 0x2429, 0x1cdd: 0x2431,\n\t0x1cde: 0x2439, 0x1cdf: 0x0799, 0x1ce0: 0x03c1, 0x1ce1: 0x04d1, 0x1ce2: 0x2441, 0x1ce3: 0x2449,\n\t0x1ce4: 0x2451, 0x1ce5: 0x03b1, 0x1ce6: 0x03b9, 0x1ce7: 0x2459, 0x1ce8: 0x0769, 0x1ce9: 0x2461,\n\t0x1cea: 0x23f1, 0x1ceb: 0x0399, 0x1cec: 0x03a1, 0x1ced: 0x03a9, 0x1cee: 0x23f9, 0x1cef: 0x2401,\n\t0x1cf0: 0x2409, 0x1cf1: 0x04d1, 0x1cf2: 0x05f9, 0x1cf3: 0x2411, 0x1cf4: 0x2419, 0x1cf5: 0x2421,\n\t0x1cf6: 0x2429, 0x1cf7: 0x2431, 0x1cf8: 0x2439, 0x1cf9: 0x0799, 0x1cfa: 0x03c1, 0x1cfb: 0x2441,\n\t0x1cfc: 0x2441, 0x1cfd: 0x2449, 0x1cfe: 0x2451, 0x1cff: 0x03b1,\n\t// Block 0x74, offset 0x1d00\n\t0x1d00: 0x03b9, 0x1d01: 0x2459, 0x1d02: 0x0769, 0x1d03: 0x2469, 0x1d04: 0x23f9, 0x1d05: 0x04d1,\n\t0x1d06: 0x2411, 0x1d07: 0x03b1, 0x1d08: 0x03c1, 0x1d09: 0x0799, 0x1d0a: 0x2471, 0x1d0b: 0x2471,\n\t0x1d0c: 0x0040, 0x1d0d: 0x0040, 0x1d0e: 0x06e1, 0x1d0f: 0x0049, 0x1d10: 0x0029, 0x1d11: 0x0031,\n\t0x1d12: 0x06e9, 0x1d13: 0x06f1, 0x1d14: 0x06f9, 0x1d15: 0x0701, 0x1d16: 0x0709, 0x1d17: 0x0711,\n\t0x1d18: 0x06e1, 0x1d19: 0x0049, 0x1d1a: 0x0029, 0x1d1b: 0x0031, 0x1d1c: 0x06e9, 0x1d1d: 0x06f1,\n\t0x1d1e: 0x06f9, 0x1d1f: 0x0701, 0x1d20: 0x0709, 0x1d21: 0x0711, 0x1d22: 0x06e1, 0x1d23: 0x0049,\n\t0x1d24: 0x0029, 0x1d25: 0x0031, 0x1d26: 0x06e9, 0x1d27: 0x06f1, 0x1d28: 0x06f9, 0x1d29: 0x0701,\n\t0x1d2a: 0x0709, 0x1d2b: 0x0711, 0x1d2c: 0x06e1, 0x1d2d: 0x0049, 0x1d2e: 0x0029, 0x1d2f: 0x0031,\n\t0x1d30: 0x06e9, 0x1d31: 0x06f1, 0x1d32: 0x06f9, 0x1d33: 0x0701, 0x1d34: 0x0709, 0x1d35: 0x0711,\n\t0x1d36: 0x06e1, 0x1d37: 0x0049, 0x1d38: 0x0029, 0x1d39: 0x0031, 0x1d3a: 0x06e9, 0x1d3b: 0x06f1,\n\t0x1d3c: 0x06f9, 0x1d3d: 0x0701, 0x1d3e: 0x0709, 0x1d3f: 0x0711,\n\t// Block 0x75, offset 0x1d40\n\t0x1d40: 0x3308, 0x1d41: 0x3308, 0x1d42: 0x3308, 0x1d43: 0x3308, 0x1d44: 0x3308, 0x1d45: 0x3308,\n\t0x1d46: 0x3308, 0x1d47: 0x0040, 0x1d48: 0x3308, 0x1d49: 0x3308, 0x1d4a: 0x3308, 0x1d4b: 0x3308,\n\t0x1d4c: 0x3308, 0x1d4d: 0x3308, 0x1d4e: 0x3308, 0x1d4f: 0x3308, 0x1d50: 0x3308, 0x1d51: 0x3308,\n\t0x1d52: 0x3308, 0x1d53: 0x3308, 0x1d54: 0x3308, 0x1d55: 0x3308, 0x1d56: 0x3308, 0x1d57: 0x3308,\n\t0x1d58: 0x3308, 0x1d59: 0x0040, 0x1d5a: 0x0040, 0x1d5b: 0x3308, 0x1d5c: 0x3308, 0x1d5d: 0x3308,\n\t0x1d5e: 0x3308, 0x1d5f: 0x3308, 0x1d60: 0x3308, 0x1d61: 0x3308, 0x1d62: 0x0040, 0x1d63: 0x3308,\n\t0x1d64: 0x3308, 0x1d65: 0x0040, 0x1d66: 0x3308, 0x1d67: 0x3308, 0x1d68: 0x3308, 0x1d69: 0x3308,\n\t0x1d6a: 0x3308, 0x1d6b: 0x0040, 0x1d6c: 0x0040, 0x1d6d: 0x0040, 0x1d6e: 0x0040, 0x1d6f: 0x0040,\n\t0x1d70: 0x2479, 0x1d71: 0x2481, 0x1d72: 0x02a9, 0x1d73: 0x2489, 0x1d74: 0x02b1, 0x1d75: 0x2491,\n\t0x1d76: 0x2499, 0x1d77: 0x24a1, 0x1d78: 0x24a9, 0x1d79: 0x24b1, 0x1d7a: 0x24b9, 0x1d7b: 0x24c1,\n\t0x1d7c: 0x02b9, 0x1d7d: 0x24c9, 0x1d7e: 0x24d1, 0x1d7f: 0x02c1,\n\t// Block 0x76, offset 0x1d80\n\t0x1d80: 0x02c9, 0x1d81: 0x24d9, 0x1d82: 0x24e1, 0x1d83: 0x24e9, 0x1d84: 0x24f1, 0x1d85: 0x24f9,\n\t0x1d86: 0x2501, 0x1d87: 0x2509, 0x1d88: 0x2511, 0x1d89: 0x2519, 0x1d8a: 0x2521, 0x1d8b: 0x2529,\n\t0x1d8c: 0x2531, 0x1d8d: 0x2539, 0x1d8e: 0x2541, 0x1d8f: 0x2549, 0x1d90: 0x2551, 0x1d91: 0x2479,\n\t0x1d92: 0x2481, 0x1d93: 0x02a9, 0x1d94: 0x2489, 0x1d95: 0x02b1, 0x1d96: 0x2491, 0x1d97: 0x2499,\n\t0x1d98: 0x24a1, 0x1d99: 0x24a9, 0x1d9a: 0x24b1, 0x1d9b: 0x24b9, 0x1d9c: 0x02b9, 0x1d9d: 0x24c9,\n\t0x1d9e: 0x02c1, 0x1d9f: 0x24d9, 0x1da0: 0x24e1, 0x1da1: 0x24e9, 0x1da2: 0x24f1, 0x1da3: 0x24f9,\n\t0x1da4: 0x2501, 0x1da5: 0x02d1, 0x1da6: 0x2509, 0x1da7: 0x2559, 0x1da8: 0x2531, 0x1da9: 0x2561,\n\t0x1daa: 0x2569, 0x1dab: 0x2571, 0x1dac: 0x2579, 0x1dad: 0x2581, 0x1dae: 0x0040, 0x1daf: 0x0040,\n\t0x1db0: 0x0040, 0x1db1: 0x0040, 0x1db2: 0x0040, 0x1db3: 0x0040, 0x1db4: 0x0040, 0x1db5: 0x0040,\n\t0x1db6: 0x0040, 0x1db7: 0x0040, 0x1db8: 0x0040, 0x1db9: 0x0040, 0x1dba: 0x0040, 0x1dbb: 0x0040,\n\t0x1dbc: 0x0040, 0x1dbd: 0x0040, 0x1dbe: 0x0040, 0x1dbf: 0x0040,\n\t// Block 0x77, offset 0x1dc0\n\t0x1dc0: 0xe115, 0x1dc1: 0xe115, 0x1dc2: 0xe135, 0x1dc3: 0xe135, 0x1dc4: 0xe115, 0x1dc5: 0xe115,\n\t0x1dc6: 0xe175, 0x1dc7: 0xe175, 0x1dc8: 0xe115, 0x1dc9: 0xe115, 0x1dca: 0xe135, 0x1dcb: 0xe135,\n\t0x1dcc: 0xe115, 0x1dcd: 0xe115, 0x1dce: 0xe1f5, 0x1dcf: 0xe1f5, 0x1dd0: 0xe115, 0x1dd1: 0xe115,\n\t0x1dd2: 0xe135, 0x1dd3: 0xe135, 0x1dd4: 0xe115, 0x1dd5: 0xe115, 0x1dd6: 0xe175, 0x1dd7: 0xe175,\n\t0x1dd8: 0xe115, 0x1dd9: 0xe115, 0x1dda: 0xe135, 0x1ddb: 0xe135, 0x1ddc: 0xe115, 0x1ddd: 0xe115,\n\t0x1dde: 0x8ca5, 0x1ddf: 0x8ca5, 0x1de0: 0x04b5, 0x1de1: 0x04b5, 0x1de2: 0x0a08, 0x1de3: 0x0a08,\n\t0x1de4: 0x0a08, 0x1de5: 0x0a08, 0x1de6: 0x0a08, 0x1de7: 0x0a08, 0x1de8: 0x0a08, 0x1de9: 0x0a08,\n\t0x1dea: 0x0a08, 0x1deb: 0x0a08, 0x1dec: 0x0a08, 0x1ded: 0x0a08, 0x1dee: 0x0a08, 0x1def: 0x0a08,\n\t0x1df0: 0x0a08, 0x1df1: 0x0a08, 0x1df2: 0x0a08, 0x1df3: 0x0a08, 0x1df4: 0x0a08, 0x1df5: 0x0a08,\n\t0x1df6: 0x0a08, 0x1df7: 0x0a08, 0x1df8: 0x0a08, 0x1df9: 0x0a08, 0x1dfa: 0x0a08, 0x1dfb: 0x0a08,\n\t0x1dfc: 0x0a08, 0x1dfd: 0x0a08, 0x1dfe: 0x0a08, 0x1dff: 0x0a08,\n\t// Block 0x78, offset 0x1e00\n\t0x1e00: 0x20b1, 0x1e01: 0x20b9, 0x1e02: 0x20d9, 0x1e03: 0x20f1, 0x1e04: 0x0040, 0x1e05: 0x2189,\n\t0x1e06: 0x2109, 0x1e07: 0x20e1, 0x1e08: 0x2131, 0x1e09: 0x2191, 0x1e0a: 0x2161, 0x1e0b: 0x2169,\n\t0x1e0c: 0x2171, 0x1e0d: 0x2179, 0x1e0e: 0x2111, 0x1e0f: 0x2141, 0x1e10: 0x2151, 0x1e11: 0x2121,\n\t0x1e12: 0x2159, 0x1e13: 0x2101, 0x1e14: 0x2119, 0x1e15: 0x20c9, 0x1e16: 0x20d1, 0x1e17: 0x20e9,\n\t0x1e18: 0x20f9, 0x1e19: 0x2129, 0x1e1a: 0x2139, 0x1e1b: 0x2149, 0x1e1c: 0x2589, 0x1e1d: 0x1689,\n\t0x1e1e: 0x2591, 0x1e1f: 0x2599, 0x1e20: 0x0040, 0x1e21: 0x20b9, 0x1e22: 0x20d9, 0x1e23: 0x0040,\n\t0x1e24: 0x2181, 0x1e25: 0x0040, 0x1e26: 0x0040, 0x1e27: 0x20e1, 0x1e28: 0x0040, 0x1e29: 0x2191,\n\t0x1e2a: 0x2161, 0x1e2b: 0x2169, 0x1e2c: 0x2171, 0x1e2d: 0x2179, 0x1e2e: 0x2111, 0x1e2f: 0x2141,\n\t0x1e30: 0x2151, 0x1e31: 0x2121, 0x1e32: 0x2159, 0x1e33: 0x0040, 0x1e34: 0x2119, 0x1e35: 0x20c9,\n\t0x1e36: 0x20d1, 0x1e37: 0x20e9, 0x1e38: 0x0040, 0x1e39: 0x2129, 0x1e3a: 0x0040, 0x1e3b: 0x2149,\n\t0x1e3c: 0x0040, 0x1e3d: 0x0040, 0x1e3e: 0x0040, 0x1e3f: 0x0040,\n\t// Block 0x79, offset 0x1e40\n\t0x1e40: 0x0040, 0x1e41: 0x0040, 0x1e42: 0x20d9, 0x1e43: 0x0040, 0x1e44: 0x0040, 0x1e45: 0x0040,\n\t0x1e46: 0x0040, 0x1e47: 0x20e1, 0x1e48: 0x0040, 0x1e49: 0x2191, 0x1e4a: 0x0040, 0x1e4b: 0x2169,\n\t0x1e4c: 0x0040, 0x1e4d: 0x2179, 0x1e4e: 0x2111, 0x1e4f: 0x2141, 0x1e50: 0x0040, 0x1e51: 0x2121,\n\t0x1e52: 0x2159, 0x1e53: 0x0040, 0x1e54: 0x2119, 0x1e55: 0x0040, 0x1e56: 0x0040, 0x1e57: 0x20e9,\n\t0x1e58: 0x0040, 0x1e59: 0x2129, 0x1e5a: 0x0040, 0x1e5b: 0x2149, 0x1e5c: 0x0040, 0x1e5d: 0x1689,\n\t0x1e5e: 0x0040, 0x1e5f: 0x2599, 0x1e60: 0x0040, 0x1e61: 0x20b9, 0x1e62: 0x20d9, 0x1e63: 0x0040,\n\t0x1e64: 0x2181, 0x1e65: 0x0040, 0x1e66: 0x0040, 0x1e67: 0x20e1, 0x1e68: 0x2131, 0x1e69: 0x2191,\n\t0x1e6a: 0x2161, 0x1e6b: 0x0040, 0x1e6c: 0x2171, 0x1e6d: 0x2179, 0x1e6e: 0x2111, 0x1e6f: 0x2141,\n\t0x1e70: 0x2151, 0x1e71: 0x2121, 0x1e72: 0x2159, 0x1e73: 0x0040, 0x1e74: 0x2119, 0x1e75: 0x20c9,\n\t0x1e76: 0x20d1, 0x1e77: 0x20e9, 0x1e78: 0x0040, 0x1e79: 0x2129, 0x1e7a: 0x2139, 0x1e7b: 0x2149,\n\t0x1e7c: 0x2589, 0x1e7d: 0x0040, 0x1e7e: 0x2591, 0x1e7f: 0x0040,\n\t// Block 0x7a, offset 0x1e80\n\t0x1e80: 0x20b1, 0x1e81: 0x20b9, 0x1e82: 0x20d9, 0x1e83: 0x20f1, 0x1e84: 0x2181, 0x1e85: 0x2189,\n\t0x1e86: 0x2109, 0x1e87: 0x20e1, 0x1e88: 0x2131, 0x1e89: 0x2191, 0x1e8a: 0x0040, 0x1e8b: 0x2169,\n\t0x1e8c: 0x2171, 0x1e8d: 0x2179, 0x1e8e: 0x2111, 0x1e8f: 0x2141, 0x1e90: 0x2151, 0x1e91: 0x2121,\n\t0x1e92: 0x2159, 0x1e93: 0x2101, 0x1e94: 0x2119, 0x1e95: 0x20c9, 0x1e96: 0x20d1, 0x1e97: 0x20e9,\n\t0x1e98: 0x20f9, 0x1e99: 0x2129, 0x1e9a: 0x2139, 0x1e9b: 0x2149, 0x1e9c: 0x0040, 0x1e9d: 0x0040,\n\t0x1e9e: 0x0040, 0x1e9f: 0x0040, 0x1ea0: 0x0040, 0x1ea1: 0x20b9, 0x1ea2: 0x20d9, 0x1ea3: 0x20f1,\n\t0x1ea4: 0x0040, 0x1ea5: 0x2189, 0x1ea6: 0x2109, 0x1ea7: 0x20e1, 0x1ea8: 0x2131, 0x1ea9: 0x2191,\n\t0x1eaa: 0x0040, 0x1eab: 0x2169, 0x1eac: 0x2171, 0x1ead: 0x2179, 0x1eae: 0x2111, 0x1eaf: 0x2141,\n\t0x1eb0: 0x2151, 0x1eb1: 0x2121, 0x1eb2: 0x2159, 0x1eb3: 0x2101, 0x1eb4: 0x2119, 0x1eb5: 0x20c9,\n\t0x1eb6: 0x20d1, 0x1eb7: 0x20e9, 0x1eb8: 0x20f9, 0x1eb9: 0x2129, 0x1eba: 0x2139, 0x1ebb: 0x2149,\n\t0x1ebc: 0x0040, 0x1ebd: 0x0040, 0x1ebe: 0x0040, 0x1ebf: 0x0040,\n\t// Block 0x7b, offset 0x1ec0\n\t0x1ec0: 0x0040, 0x1ec1: 0x25a2, 0x1ec2: 0x25aa, 0x1ec3: 0x25b2, 0x1ec4: 0x25ba, 0x1ec5: 0x25c2,\n\t0x1ec6: 0x25ca, 0x1ec7: 0x25d2, 0x1ec8: 0x25da, 0x1ec9: 0x25e2, 0x1eca: 0x25ea, 0x1ecb: 0x0018,\n\t0x1ecc: 0x0018, 0x1ecd: 0x0018, 0x1ece: 0x0018, 0x1ecf: 0x0018, 0x1ed0: 0x25f2, 0x1ed1: 0x25fa,\n\t0x1ed2: 0x2602, 0x1ed3: 0x260a, 0x1ed4: 0x2612, 0x1ed5: 0x261a, 0x1ed6: 0x2622, 0x1ed7: 0x262a,\n\t0x1ed8: 0x2632, 0x1ed9: 0x263a, 0x1eda: 0x2642, 0x1edb: 0x264a, 0x1edc: 0x2652, 0x1edd: 0x265a,\n\t0x1ede: 0x2662, 0x1edf: 0x266a, 0x1ee0: 0x2672, 0x1ee1: 0x267a, 0x1ee2: 0x2682, 0x1ee3: 0x268a,\n\t0x1ee4: 0x2692, 0x1ee5: 0x269a, 0x1ee6: 0x26a2, 0x1ee7: 0x26aa, 0x1ee8: 0x26b2, 0x1ee9: 0x26ba,\n\t0x1eea: 0x26c1, 0x1eeb: 0x03d9, 0x1eec: 0x00b9, 0x1eed: 0x1239, 0x1eee: 0x26c9, 0x1eef: 0x0018,\n\t0x1ef0: 0x0019, 0x1ef1: 0x02e9, 0x1ef2: 0x03d9, 0x1ef3: 0x02f1, 0x1ef4: 0x02f9, 0x1ef5: 0x03f1,\n\t0x1ef6: 0x0309, 0x1ef7: 0x00a9, 0x1ef8: 0x0311, 0x1ef9: 0x00b1, 0x1efa: 0x0319, 0x1efb: 0x0101,\n\t0x1efc: 0x0321, 0x1efd: 0x0329, 0x1efe: 0x0051, 0x1eff: 0x0339,\n\t// Block 0x7c, offset 0x1f00\n\t0x1f00: 0x0751, 0x1f01: 0x00b9, 0x1f02: 0x0089, 0x1f03: 0x0341, 0x1f04: 0x0349, 0x1f05: 0x0391,\n\t0x1f06: 0x00c1, 0x1f07: 0x0109, 0x1f08: 0x00c9, 0x1f09: 0x04b1, 0x1f0a: 0x26d1, 0x1f0b: 0x11f9,\n\t0x1f0c: 0x26d9, 0x1f0d: 0x04d9, 0x1f0e: 0x26e1, 0x1f0f: 0x26e9, 0x1f10: 0x0018, 0x1f11: 0x0018,\n\t0x1f12: 0x0018, 0x1f13: 0x0018, 0x1f14: 0x0018, 0x1f15: 0x0018, 0x1f16: 0x0018, 0x1f17: 0x0018,\n\t0x1f18: 0x0018, 0x1f19: 0x0018, 0x1f1a: 0x0018, 0x1f1b: 0x0018, 0x1f1c: 0x0018, 0x1f1d: 0x0018,\n\t0x1f1e: 0x0018, 0x1f1f: 0x0018, 0x1f20: 0x0018, 0x1f21: 0x0018, 0x1f22: 0x0018, 0x1f23: 0x0018,\n\t0x1f24: 0x0018, 0x1f25: 0x0018, 0x1f26: 0x0018, 0x1f27: 0x0018, 0x1f28: 0x0018, 0x1f29: 0x0018,\n\t0x1f2a: 0x26f1, 0x1f2b: 0x26f9, 0x1f2c: 0x2701, 0x1f2d: 0x0018, 0x1f2e: 0x0018, 0x1f2f: 0x0018,\n\t0x1f30: 0x0018, 0x1f31: 0x0018, 0x1f32: 0x0018, 0x1f33: 0x0018, 0x1f34: 0x0018, 0x1f35: 0x0018,\n\t0x1f36: 0x0018, 0x1f37: 0x0018, 0x1f38: 0x0018, 0x1f39: 0x0018, 0x1f3a: 0x0018, 0x1f3b: 0x0018,\n\t0x1f3c: 0x0018, 0x1f3d: 0x0018, 0x1f3e: 0x0018, 0x1f3f: 0x0018,\n\t// Block 0x7d, offset 0x1f40\n\t0x1f40: 0x2711, 0x1f41: 0x2719, 0x1f42: 0x2721, 0x1f43: 0x0040, 0x1f44: 0x0040, 0x1f45: 0x0040,\n\t0x1f46: 0x0040, 0x1f47: 0x0040, 0x1f48: 0x0040, 0x1f49: 0x0040, 0x1f4a: 0x0040, 0x1f4b: 0x0040,\n\t0x1f4c: 0x0040, 0x1f4d: 0x0040, 0x1f4e: 0x0040, 0x1f4f: 0x0040, 0x1f50: 0x2729, 0x1f51: 0x2731,\n\t0x1f52: 0x2739, 0x1f53: 0x2741, 0x1f54: 0x2749, 0x1f55: 0x2751, 0x1f56: 0x2759, 0x1f57: 0x2761,\n\t0x1f58: 0x2769, 0x1f59: 0x2771, 0x1f5a: 0x2779, 0x1f5b: 0x2781, 0x1f5c: 0x2789, 0x1f5d: 0x2791,\n\t0x1f5e: 0x2799, 0x1f5f: 0x27a1, 0x1f60: 0x27a9, 0x1f61: 0x27b1, 0x1f62: 0x27b9, 0x1f63: 0x27c1,\n\t0x1f64: 0x27c9, 0x1f65: 0x27d1, 0x1f66: 0x27d9, 0x1f67: 0x27e1, 0x1f68: 0x27e9, 0x1f69: 0x27f1,\n\t0x1f6a: 0x27f9, 0x1f6b: 0x2801, 0x1f6c: 0x2809, 0x1f6d: 0x2811, 0x1f6e: 0x2819, 0x1f6f: 0x2821,\n\t0x1f70: 0x2829, 0x1f71: 0x2831, 0x1f72: 0x2839, 0x1f73: 0x2841, 0x1f74: 0x2849, 0x1f75: 0x2851,\n\t0x1f76: 0x2859, 0x1f77: 0x2861, 0x1f78: 0x2869, 0x1f79: 0x2871, 0x1f7a: 0x2879, 0x1f7b: 0x2881,\n\t0x1f7c: 0x0040, 0x1f7d: 0x0040, 0x1f7e: 0x0040, 0x1f7f: 0x0040,\n\t// Block 0x7e, offset 0x1f80\n\t0x1f80: 0x28e1, 0x1f81: 0x28e9, 0x1f82: 0x28f1, 0x1f83: 0x8cbd, 0x1f84: 0x28f9, 0x1f85: 0x2901,\n\t0x1f86: 0x2909, 0x1f87: 0x2911, 0x1f88: 0x2919, 0x1f89: 0x2921, 0x1f8a: 0x2929, 0x1f8b: 0x2931,\n\t0x1f8c: 0x2939, 0x1f8d: 0x8cdd, 0x1f8e: 0x2941, 0x1f8f: 0x2949, 0x1f90: 0x2951, 0x1f91: 0x2959,\n\t0x1f92: 0x8cfd, 0x1f93: 0x2961, 0x1f94: 0x2969, 0x1f95: 0x2799, 0x1f96: 0x8d1d, 0x1f97: 0x2971,\n\t0x1f98: 0x2979, 0x1f99: 0x2981, 0x1f9a: 0x2989, 0x1f9b: 0x2991, 0x1f9c: 0x8d3d, 0x1f9d: 0x2999,\n\t0x1f9e: 0x29a1, 0x1f9f: 0x29a9, 0x1fa0: 0x29b1, 0x1fa1: 0x29b9, 0x1fa2: 0x2871, 0x1fa3: 0x29c1,\n\t0x1fa4: 0x29c9, 0x1fa5: 0x29d1, 0x1fa6: 0x29d9, 0x1fa7: 0x29e1, 0x1fa8: 0x29e9, 0x1fa9: 0x29f1,\n\t0x1faa: 0x29f9, 0x1fab: 0x2a01, 0x1fac: 0x2a09, 0x1fad: 0x2a11, 0x1fae: 0x2a19, 0x1faf: 0x2a21,\n\t0x1fb0: 0x2a29, 0x1fb1: 0x2a31, 0x1fb2: 0x2a31, 0x1fb3: 0x2a31, 0x1fb4: 0x8d5d, 0x1fb5: 0x2a39,\n\t0x1fb6: 0x2a41, 0x1fb7: 0x2a49, 0x1fb8: 0x8d7d, 0x1fb9: 0x2a51, 0x1fba: 0x2a59, 0x1fbb: 0x2a61,\n\t0x1fbc: 0x2a69, 0x1fbd: 0x2a71, 0x1fbe: 0x2a79, 0x1fbf: 0x2a81,\n\t// Block 0x7f, offset 0x1fc0\n\t0x1fc0: 0x2a89, 0x1fc1: 0x2a91, 0x1fc2: 0x2a99, 0x1fc3: 0x2aa1, 0x1fc4: 0x2aa9, 0x1fc5: 0x2ab1,\n\t0x1fc6: 0x2ab1, 0x1fc7: 0x2ab9, 0x1fc8: 0x2ac1, 0x1fc9: 0x2ac9, 0x1fca: 0x2ad1, 0x1fcb: 0x2ad9,\n\t0x1fcc: 0x2ae1, 0x1fcd: 0x2ae9, 0x1fce: 0x2af1, 0x1fcf: 0x2af9, 0x1fd0: 0x2b01, 0x1fd1: 0x2b09,\n\t0x1fd2: 0x2b11, 0x1fd3: 0x2b19, 0x1fd4: 0x2b21, 0x1fd5: 0x2b29, 0x1fd6: 0x2b31, 0x1fd7: 0x2b39,\n\t0x1fd8: 0x2b41, 0x1fd9: 0x8d9d, 0x1fda: 0x2b49, 0x1fdb: 0x2b51, 0x1fdc: 0x2b59, 0x1fdd: 0x2751,\n\t0x1fde: 0x2b61, 0x1fdf: 0x2b69, 0x1fe0: 0x8dbd, 0x1fe1: 0x8ddd, 0x1fe2: 0x2b71, 0x1fe3: 0x2b79,\n\t0x1fe4: 0x2b81, 0x1fe5: 0x2b89, 0x1fe6: 0x2b91, 0x1fe7: 0x2b99, 0x1fe8: 0x2040, 0x1fe9: 0x2ba1,\n\t0x1fea: 0x2ba9, 0x1feb: 0x2ba9, 0x1fec: 0x8dfd, 0x1fed: 0x2bb1, 0x1fee: 0x2bb9, 0x1fef: 0x2bc1,\n\t0x1ff0: 0x2bc9, 0x1ff1: 0x8e1d, 0x1ff2: 0x2bd1, 0x1ff3: 0x2bd9, 0x1ff4: 0x2040, 0x1ff5: 0x2be1,\n\t0x1ff6: 0x2be9, 0x1ff7: 0x2bf1, 0x1ff8: 0x2bf9, 0x1ff9: 0x2c01, 0x1ffa: 0x2c09, 0x1ffb: 0x8e3d,\n\t0x1ffc: 0x2c11, 0x1ffd: 0x8e5d, 0x1ffe: 0x2c19, 0x1fff: 0x2c21,\n\t// Block 0x80, offset 0x2000\n\t0x2000: 0x2c29, 0x2001: 0x2c31, 0x2002: 0x2c39, 0x2003: 0x2c41, 0x2004: 0x2c49, 0x2005: 0x2c51,\n\t0x2006: 0x2c59, 0x2007: 0x2c61, 0x2008: 0x2c69, 0x2009: 0x8e7d, 0x200a: 0x2c71, 0x200b: 0x2c79,\n\t0x200c: 0x2c81, 0x200d: 0x2c89, 0x200e: 0x2c91, 0x200f: 0x8e9d, 0x2010: 0x2c99, 0x2011: 0x8ebd,\n\t0x2012: 0x8edd, 0x2013: 0x2ca1, 0x2014: 0x2ca9, 0x2015: 0x2ca9, 0x2016: 0x2cb1, 0x2017: 0x8efd,\n\t0x2018: 0x8f1d, 0x2019: 0x2cb9, 0x201a: 0x2cc1, 0x201b: 0x2cc9, 0x201c: 0x2cd1, 0x201d: 0x2cd9,\n\t0x201e: 0x2ce1, 0x201f: 0x2ce9, 0x2020: 0x2cf1, 0x2021: 0x2cf9, 0x2022: 0x2d01, 0x2023: 0x2d09,\n\t0x2024: 0x8f3d, 0x2025: 0x2d11, 0x2026: 0x2d19, 0x2027: 0x2d21, 0x2028: 0x2d29, 0x2029: 0x2d21,\n\t0x202a: 0x2d31, 0x202b: 0x2d39, 0x202c: 0x2d41, 0x202d: 0x2d49, 0x202e: 0x2d51, 0x202f: 0x2d59,\n\t0x2030: 0x2d61, 0x2031: 0x2d69, 0x2032: 0x2d71, 0x2033: 0x2d79, 0x2034: 0x2d81, 0x2035: 0x2d89,\n\t0x2036: 0x2d91, 0x2037: 0x2d99, 0x2038: 0x8f5d, 0x2039: 0x2da1, 0x203a: 0x2da9, 0x203b: 0x2db1,\n\t0x203c: 0x2db9, 0x203d: 0x2dc1, 0x203e: 0x8f7d, 0x203f: 0x2dc9,\n\t// Block 0x81, offset 0x2040\n\t0x2040: 0x2dd1, 0x2041: 0x2dd9, 0x2042: 0x2de1, 0x2043: 0x2de9, 0x2044: 0x2df1, 0x2045: 0x2df9,\n\t0x2046: 0x2e01, 0x2047: 0x2e09, 0x2048: 0x2e11, 0x2049: 0x2e19, 0x204a: 0x8f9d, 0x204b: 0x2e21,\n\t0x204c: 0x2e29, 0x204d: 0x2e31, 0x204e: 0x2e39, 0x204f: 0x2e41, 0x2050: 0x2e49, 0x2051: 0x2e51,\n\t0x2052: 0x2e59, 0x2053: 0x2e61, 0x2054: 0x2e69, 0x2055: 0x2e71, 0x2056: 0x2e79, 0x2057: 0x2e81,\n\t0x2058: 0x2e89, 0x2059: 0x2e91, 0x205a: 0x2e99, 0x205b: 0x2ea1, 0x205c: 0x2ea9, 0x205d: 0x8fbd,\n\t0x205e: 0x2eb1, 0x205f: 0x2eb9, 0x2060: 0x2ec1, 0x2061: 0x2ec9, 0x2062: 0x2ed1, 0x2063: 0x8fdd,\n\t0x2064: 0x2ed9, 0x2065: 0x2ee1, 0x2066: 0x2ee9, 0x2067: 0x2ef1, 0x2068: 0x2ef9, 0x2069: 0x2f01,\n\t0x206a: 0x2f09, 0x206b: 0x2f11, 0x206c: 0x7f0d, 0x206d: 0x2f19, 0x206e: 0x2f21, 0x206f: 0x2f29,\n\t0x2070: 0x8ffd, 0x2071: 0x2f31, 0x2072: 0x2f39, 0x2073: 0x2f41, 0x2074: 0x2f49, 0x2075: 0x2f51,\n\t0x2076: 0x2f59, 0x2077: 0x901d, 0x2078: 0x903d, 0x2079: 0x905d, 0x207a: 0x2f61, 0x207b: 0x907d,\n\t0x207c: 0x2f69, 0x207d: 0x2f71, 0x207e: 0x2f79, 0x207f: 0x2f81,\n\t// Block 0x82, offset 0x2080\n\t0x2080: 0x2f89, 0x2081: 0x2f91, 0x2082: 0x2f99, 0x2083: 0x2fa1, 0x2084: 0x2fa9, 0x2085: 0x2fb1,\n\t0x2086: 0x909d, 0x2087: 0x2fb9, 0x2088: 0x2fc1, 0x2089: 0x2fc9, 0x208a: 0x2fd1, 0x208b: 0x2fd9,\n\t0x208c: 0x2fe1, 0x208d: 0x90bd, 0x208e: 0x2fe9, 0x208f: 0x2ff1, 0x2090: 0x90dd, 0x2091: 0x90fd,\n\t0x2092: 0x2ff9, 0x2093: 0x3001, 0x2094: 0x3009, 0x2095: 0x3011, 0x2096: 0x3019, 0x2097: 0x3021,\n\t0x2098: 0x3029, 0x2099: 0x3031, 0x209a: 0x3039, 0x209b: 0x911d, 0x209c: 0x3041, 0x209d: 0x913d,\n\t0x209e: 0x3049, 0x209f: 0x2040, 0x20a0: 0x3051, 0x20a1: 0x3059, 0x20a2: 0x3061, 0x20a3: 0x915d,\n\t0x20a4: 0x3069, 0x20a5: 0x3071, 0x20a6: 0x917d, 0x20a7: 0x919d, 0x20a8: 0x3079, 0x20a9: 0x3081,\n\t0x20aa: 0x3089, 0x20ab: 0x3091, 0x20ac: 0x3099, 0x20ad: 0x3099, 0x20ae: 0x30a1, 0x20af: 0x30a9,\n\t0x20b0: 0x30b1, 0x20b1: 0x30b9, 0x20b2: 0x30c1, 0x20b3: 0x30c9, 0x20b4: 0x30d1, 0x20b5: 0x91bd,\n\t0x20b6: 0x30d9, 0x20b7: 0x91dd, 0x20b8: 0x30e1, 0x20b9: 0x91fd, 0x20ba: 0x30e9, 0x20bb: 0x921d,\n\t0x20bc: 0x923d, 0x20bd: 0x925d, 0x20be: 0x30f1, 0x20bf: 0x30f9,\n\t// Block 0x83, offset 0x20c0\n\t0x20c0: 0x3101, 0x20c1: 0x927d, 0x20c2: 0x929d, 0x20c3: 0x92bd, 0x20c4: 0x92dd, 0x20c5: 0x3109,\n\t0x20c6: 0x3111, 0x20c7: 0x3111, 0x20c8: 0x3119, 0x20c9: 0x3121, 0x20ca: 0x3129, 0x20cb: 0x3131,\n\t0x20cc: 0x3139, 0x20cd: 0x92fd, 0x20ce: 0x3141, 0x20cf: 0x3149, 0x20d0: 0x3151, 0x20d1: 0x3159,\n\t0x20d2: 0x931d, 0x20d3: 0x3161, 0x20d4: 0x933d, 0x20d5: 0x935d, 0x20d6: 0x3169, 0x20d7: 0x3171,\n\t0x20d8: 0x3179, 0x20d9: 0x3181, 0x20da: 0x3189, 0x20db: 0x3191, 0x20dc: 0x937d, 0x20dd: 0x939d,\n\t0x20de: 0x93bd, 0x20df: 0x2040, 0x20e0: 0x3199, 0x20e1: 0x93dd, 0x20e2: 0x31a1, 0x20e3: 0x31a9,\n\t0x20e4: 0x31b1, 0x20e5: 0x93fd, 0x20e6: 0x31b9, 0x20e7: 0x31c1, 0x20e8: 0x31c9, 0x20e9: 0x31d1,\n\t0x20ea: 0x31d9, 0x20eb: 0x941d, 0x20ec: 0x31e1, 0x20ed: 0x31e9, 0x20ee: 0x31f1, 0x20ef: 0x31f9,\n\t0x20f0: 0x3201, 0x20f1: 0x3209, 0x20f2: 0x943d, 0x20f3: 0x945d, 0x20f4: 0x3211, 0x20f5: 0x947d,\n\t0x20f6: 0x3219, 0x20f7: 0x949d, 0x20f8: 0x3221, 0x20f9: 0x3229, 0x20fa: 0x3231, 0x20fb: 0x94bd,\n\t0x20fc: 0x94dd, 0x20fd: 0x3239, 0x20fe: 0x94fd, 0x20ff: 0x3241,\n\t// Block 0x84, offset 0x2100\n\t0x2100: 0x951d, 0x2101: 0x3249, 0x2102: 0x3251, 0x2103: 0x3259, 0x2104: 0x3261, 0x2105: 0x3269,\n\t0x2106: 0x3271, 0x2107: 0x953d, 0x2108: 0x955d, 0x2109: 0x957d, 0x210a: 0x959d, 0x210b: 0x2ca1,\n\t0x210c: 0x3279, 0x210d: 0x3281, 0x210e: 0x3289, 0x210f: 0x3291, 0x2110: 0x3299, 0x2111: 0x32a1,\n\t0x2112: 0x32a9, 0x2113: 0x32b1, 0x2114: 0x32b9, 0x2115: 0x32c1, 0x2116: 0x32c9, 0x2117: 0x95bd,\n\t0x2118: 0x32d1, 0x2119: 0x32d9, 0x211a: 0x32e1, 0x211b: 0x32e9, 0x211c: 0x32f1, 0x211d: 0x32f9,\n\t0x211e: 0x3301, 0x211f: 0x3309, 0x2120: 0x3311, 0x2121: 0x3319, 0x2122: 0x3321, 0x2123: 0x3329,\n\t0x2124: 0x95dd, 0x2125: 0x95fd, 0x2126: 0x961d, 0x2127: 0x3331, 0x2128: 0x3339, 0x2129: 0x3341,\n\t0x212a: 0x3349, 0x212b: 0x963d, 0x212c: 0x3351, 0x212d: 0x965d, 0x212e: 0x3359, 0x212f: 0x3361,\n\t0x2130: 0x967d, 0x2131: 0x969d, 0x2132: 0x3369, 0x2133: 0x3371, 0x2134: 0x3379, 0x2135: 0x3381,\n\t0x2136: 0x3389, 0x2137: 0x3391, 0x2138: 0x3399, 0x2139: 0x33a1, 0x213a: 0x33a9, 0x213b: 0x33b1,\n\t0x213c: 0x33b9, 0x213d: 0x33c1, 0x213e: 0x33c9, 0x213f: 0x2040,\n\t// Block 0x85, offset 0x2140\n\t0x2140: 0x33d1, 0x2141: 0x33d9, 0x2142: 0x33e1, 0x2143: 0x33e9, 0x2144: 0x33f1, 0x2145: 0x96bd,\n\t0x2146: 0x33f9, 0x2147: 0x3401, 0x2148: 0x3409, 0x2149: 0x3411, 0x214a: 0x3419, 0x214b: 0x96dd,\n\t0x214c: 0x96fd, 0x214d: 0x3421, 0x214e: 0x3429, 0x214f: 0x3431, 0x2150: 0x3439, 0x2151: 0x3441,\n\t0x2152: 0x3449, 0x2153: 0x971d, 0x2154: 0x3451, 0x2155: 0x3459, 0x2156: 0x3461, 0x2157: 0x3469,\n\t0x2158: 0x973d, 0x2159: 0x975d, 0x215a: 0x3471, 0x215b: 0x3479, 0x215c: 0x3481, 0x215d: 0x977d,\n\t0x215e: 0x3489, 0x215f: 0x3491, 0x2160: 0x684d, 0x2161: 0x979d, 0x2162: 0x3499, 0x2163: 0x34a1,\n\t0x2164: 0x34a9, 0x2165: 0x97bd, 0x2166: 0x34b1, 0x2167: 0x34b9, 0x2168: 0x34c1, 0x2169: 0x34c9,\n\t0x216a: 0x34d1, 0x216b: 0x34d9, 0x216c: 0x34e1, 0x216d: 0x97dd, 0x216e: 0x34e9, 0x216f: 0x34f1,\n\t0x2170: 0x34f9, 0x2171: 0x97fd, 0x2172: 0x3501, 0x2173: 0x3509, 0x2174: 0x3511, 0x2175: 0x3519,\n\t0x2176: 0x7b6d, 0x2177: 0x981d, 0x2178: 0x3521, 0x2179: 0x3529, 0x217a: 0x3531, 0x217b: 0x983d,\n\t0x217c: 0x3539, 0x217d: 0x985d, 0x217e: 0x3541, 0x217f: 0x3541,\n\t// Block 0x86, offset 0x2180\n\t0x2180: 0x3549, 0x2181: 0x987d, 0x2182: 0x3551, 0x2183: 0x3559, 0x2184: 0x3561, 0x2185: 0x3569,\n\t0x2186: 0x3571, 0x2187: 0x3579, 0x2188: 0x3581, 0x2189: 0x989d, 0x218a: 0x3589, 0x218b: 0x3591,\n\t0x218c: 0x3599, 0x218d: 0x35a1, 0x218e: 0x35a9, 0x218f: 0x35b1, 0x2190: 0x98bd, 0x2191: 0x35b9,\n\t0x2192: 0x98dd, 0x2193: 0x98fd, 0x2194: 0x991d, 0x2195: 0x35c1, 0x2196: 0x35c9, 0x2197: 0x35d1,\n\t0x2198: 0x35d9, 0x2199: 0x35e1, 0x219a: 0x35e9, 0x219b: 0x35f1, 0x219c: 0x35f9, 0x219d: 0x993d,\n\t0x219e: 0x0040, 0x219f: 0x0040, 0x21a0: 0x0040, 0x21a1: 0x0040, 0x21a2: 0x0040, 0x21a3: 0x0040,\n\t0x21a4: 0x0040, 0x21a5: 0x0040, 0x21a6: 0x0040, 0x21a7: 0x0040, 0x21a8: 0x0040, 0x21a9: 0x0040,\n\t0x21aa: 0x0040, 0x21ab: 0x0040, 0x21ac: 0x0040, 0x21ad: 0x0040, 0x21ae: 0x0040, 0x21af: 0x0040,\n\t0x21b0: 0x0040, 0x21b1: 0x0040, 0x21b2: 0x0040, 0x21b3: 0x0040, 0x21b4: 0x0040, 0x21b5: 0x0040,\n\t0x21b6: 0x0040, 0x21b7: 0x0040, 0x21b8: 0x0040, 0x21b9: 0x0040, 0x21ba: 0x0040, 0x21bb: 0x0040,\n\t0x21bc: 0x0040, 0x21bd: 0x0040, 0x21be: 0x0040, 0x21bf: 0x0040,\n}\n\n// idnaIndex: 39 blocks, 2496 entries, 4992 bytes\n// Block 0 is the zero block.\nvar idnaIndex = [2496]uint16{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x01, 0xc3: 0x85, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x04, 0xc7: 0x05,\n\t0xc8: 0x06, 0xc9: 0x86, 0xca: 0x87, 0xcb: 0x07, 0xcc: 0x88, 0xcd: 0x08, 0xce: 0x09, 0xcf: 0x0a,\n\t0xd0: 0x89, 0xd1: 0x0b, 0xd2: 0x0c, 0xd3: 0x0d, 0xd4: 0x0e, 0xd5: 0x8a, 0xd6: 0x8b, 0xd7: 0x8c,\n\t0xd8: 0x0f, 0xd9: 0x10, 0xda: 0x8d, 0xdb: 0x11, 0xdc: 0x12, 0xdd: 0x8e, 0xde: 0x8f, 0xdf: 0x90,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06, 0xe5: 0x07, 0xe6: 0x07, 0xe7: 0x07,\n\t0xe8: 0x07, 0xe9: 0x07, 0xea: 0x08, 0xeb: 0x07, 0xec: 0x07, 0xed: 0x09, 0xee: 0x0a, 0xef: 0x0b,\n\t0xf0: 0x20, 0xf1: 0x21, 0xf2: 0x21, 0xf3: 0x23, 0xf4: 0x24,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x91, 0x121: 0x13, 0x122: 0x14, 0x123: 0x92, 0x124: 0x93, 0x125: 0x15, 0x126: 0x16, 0x127: 0x17,\n\t0x128: 0x18, 0x129: 0x19, 0x12a: 0x1a, 0x12b: 0x1b, 0x12c: 0x1c, 0x12d: 0x1d, 0x12e: 0x1e, 0x12f: 0x94,\n\t0x130: 0x95, 0x131: 0x1f, 0x132: 0x20, 0x133: 0x21, 0x134: 0x96, 0x135: 0x22, 0x136: 0x97, 0x137: 0x98,\n\t0x138: 0x99, 0x139: 0x9a, 0x13a: 0x23, 0x13b: 0x9b, 0x13c: 0x9c, 0x13d: 0x24, 0x13e: 0x25, 0x13f: 0x9d,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x9e, 0x141: 0x9f, 0x142: 0xa0, 0x143: 0xa1, 0x144: 0xa2, 0x145: 0xa3, 0x146: 0xa4, 0x147: 0xa5,\n\t0x148: 0xa6, 0x149: 0xa7, 0x14a: 0xa8, 0x14b: 0xa9, 0x14c: 0xaa, 0x14d: 0xab, 0x14e: 0xac, 0x14f: 0xad,\n\t0x150: 0xae, 0x151: 0xa6, 0x152: 0xa6, 0x153: 0xa6, 0x154: 0xa6, 0x155: 0xa6, 0x156: 0xa6, 0x157: 0xa6,\n\t0x158: 0xa6, 0x159: 0xaf, 0x15a: 0xb0, 0x15b: 0xb1, 0x15c: 0xb2, 0x15d: 0xb3, 0x15e: 0xb4, 0x15f: 0xb5,\n\t0x160: 0xb6, 0x161: 0xb7, 0x162: 0xb8, 0x163: 0xb9, 0x164: 0xba, 0x165: 0xbb, 0x166: 0xbc, 0x167: 0xbd,\n\t0x168: 0xbe, 0x169: 0xbf, 0x16a: 0xc0, 0x16b: 0xc1, 0x16c: 0xc2, 0x16d: 0xc3, 0x16e: 0xc4, 0x16f: 0xc5,\n\t0x170: 0xc6, 0x171: 0xc7, 0x172: 0xc8, 0x173: 0xc9, 0x174: 0x26, 0x175: 0x27, 0x176: 0x28, 0x177: 0x88,\n\t0x178: 0x29, 0x179: 0x29, 0x17a: 0x2a, 0x17b: 0x29, 0x17c: 0xca, 0x17d: 0x2b, 0x17e: 0x2c, 0x17f: 0x2d,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x2e, 0x181: 0x2f, 0x182: 0x30, 0x183: 0xcb, 0x184: 0x31, 0x185: 0x32, 0x186: 0xcc, 0x187: 0xa2,\n\t0x188: 0xcd, 0x189: 0xce, 0x18a: 0xa2, 0x18b: 0xa2, 0x18c: 0xcf, 0x18d: 0xa2, 0x18e: 0xa2, 0x18f: 0xa2,\n\t0x190: 0xd0, 0x191: 0x33, 0x192: 0x34, 0x193: 0x35, 0x194: 0xa2, 0x195: 0xa2, 0x196: 0xa2, 0x197: 0xa2,\n\t0x198: 0xa2, 0x199: 0xa2, 0x19a: 0xa2, 0x19b: 0xa2, 0x19c: 0xa2, 0x19d: 0xa2, 0x19e: 0xa2, 0x19f: 0xa2,\n\t0x1a0: 0xa2, 0x1a1: 0xa2, 0x1a2: 0xa2, 0x1a3: 0xa2, 0x1a4: 0xa2, 0x1a5: 0xa2, 0x1a6: 0xa2, 0x1a7: 0xa2,\n\t0x1a8: 0xd1, 0x1a9: 0xd2, 0x1aa: 0xa2, 0x1ab: 0xd3, 0x1ac: 0xa2, 0x1ad: 0xd4, 0x1ae: 0xd5, 0x1af: 0xa2,\n\t0x1b0: 0xd6, 0x1b1: 0x36, 0x1b2: 0x29, 0x1b3: 0x37, 0x1b4: 0xd7, 0x1b5: 0xd8, 0x1b6: 0xd9, 0x1b7: 0xda,\n\t0x1b8: 0xdb, 0x1b9: 0xdc, 0x1ba: 0xdd, 0x1bb: 0xde, 0x1bc: 0xdf, 0x1bd: 0xe0, 0x1be: 0xe1, 0x1bf: 0x38,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x39, 0x1c1: 0xe2, 0x1c2: 0xe3, 0x1c3: 0xe4, 0x1c4: 0xe5, 0x1c5: 0x3a, 0x1c6: 0x3b, 0x1c7: 0xe6,\n\t0x1c8: 0xe7, 0x1c9: 0x3c, 0x1ca: 0x3d, 0x1cb: 0x3e, 0x1cc: 0xe8, 0x1cd: 0xe9, 0x1ce: 0x3f, 0x1cf: 0x40,\n\t0x1d0: 0xa6, 0x1d1: 0xa6, 0x1d2: 0xa6, 0x1d3: 0xa6, 0x1d4: 0xa6, 0x1d5: 0xa6, 0x1d6: 0xa6, 0x1d7: 0xa6,\n\t0x1d8: 0xa6, 0x1d9: 0xa6, 0x1da: 0xa6, 0x1db: 0xa6, 0x1dc: 0xa6, 0x1dd: 0xa6, 0x1de: 0xa6, 0x1df: 0xa6,\n\t0x1e0: 0xa6, 0x1e1: 0xa6, 0x1e2: 0xa6, 0x1e3: 0xa6, 0x1e4: 0xa6, 0x1e5: 0xa6, 0x1e6: 0xa6, 0x1e7: 0xa6,\n\t0x1e8: 0xa6, 0x1e9: 0xa6, 0x1ea: 0xa6, 0x1eb: 0xa6, 0x1ec: 0xa6, 0x1ed: 0xa6, 0x1ee: 0xa6, 0x1ef: 0xa6,\n\t0x1f0: 0xa6, 0x1f1: 0xa6, 0x1f2: 0xa6, 0x1f3: 0xa6, 0x1f4: 0xa6, 0x1f5: 0xa6, 0x1f6: 0xa6, 0x1f7: 0xa6,\n\t0x1f8: 0xa6, 0x1f9: 0xa6, 0x1fa: 0xa6, 0x1fb: 0xa6, 0x1fc: 0xa6, 0x1fd: 0xa6, 0x1fe: 0xa6, 0x1ff: 0xa6,\n\t// Block 0x8, offset 0x200\n\t0x200: 0xa6, 0x201: 0xa6, 0x202: 0xa6, 0x203: 0xa6, 0x204: 0xa6, 0x205: 0xa6, 0x206: 0xa6, 0x207: 0xa6,\n\t0x208: 0xa6, 0x209: 0xa6, 0x20a: 0xa6, 0x20b: 0xa6, 0x20c: 0xa6, 0x20d: 0xa6, 0x20e: 0xa6, 0x20f: 0xa6,\n\t0x210: 0xa6, 0x211: 0xa6, 0x212: 0xa6, 0x213: 0xa6, 0x214: 0xa6, 0x215: 0xa6, 0x216: 0xa6, 0x217: 0xa6,\n\t0x218: 0xa6, 0x219: 0xa6, 0x21a: 0xa6, 0x21b: 0xa6, 0x21c: 0xa6, 0x21d: 0xa6, 0x21e: 0xa6, 0x21f: 0xa6,\n\t0x220: 0xa6, 0x221: 0xa6, 0x222: 0xa6, 0x223: 0xa6, 0x224: 0xa6, 0x225: 0xa6, 0x226: 0xa6, 0x227: 0xa6,\n\t0x228: 0xa6, 0x229: 0xa6, 0x22a: 0xa6, 0x22b: 0xa6, 0x22c: 0xa6, 0x22d: 0xa6, 0x22e: 0xa6, 0x22f: 0xa6,\n\t0x230: 0xa6, 0x231: 0xa6, 0x232: 0xa6, 0x233: 0xa6, 0x234: 0xa6, 0x235: 0xa6, 0x236: 0xa6, 0x237: 0xa2,\n\t0x238: 0xa6, 0x239: 0xa6, 0x23a: 0xa6, 0x23b: 0xa6, 0x23c: 0xa6, 0x23d: 0xa6, 0x23e: 0xa6, 0x23f: 0xa6,\n\t// Block 0x9, offset 0x240\n\t0x240: 0xa6, 0x241: 0xa6, 0x242: 0xa6, 0x243: 0xa6, 0x244: 0xa6, 0x245: 0xa6, 0x246: 0xa6, 0x247: 0xa6,\n\t0x248: 0xa6, 0x249: 0xa6, 0x24a: 0xa6, 0x24b: 0xa6, 0x24c: 0xa6, 0x24d: 0xa6, 0x24e: 0xa6, 0x24f: 0xa6,\n\t0x250: 0xa6, 0x251: 0xa6, 0x252: 0xa6, 0x253: 0xa6, 0x254: 0xa6, 0x255: 0xa6, 0x256: 0xa6, 0x257: 0xa6,\n\t0x258: 0xa6, 0x259: 0xa6, 0x25a: 0xa6, 0x25b: 0xa6, 0x25c: 0xa6, 0x25d: 0xa6, 0x25e: 0xa6, 0x25f: 0xa6,\n\t0x260: 0xa6, 0x261: 0xa6, 0x262: 0xa6, 0x263: 0xa6, 0x264: 0xa6, 0x265: 0xa6, 0x266: 0xa6, 0x267: 0xa6,\n\t0x268: 0xa6, 0x269: 0xa6, 0x26a: 0xa6, 0x26b: 0xa6, 0x26c: 0xa6, 0x26d: 0xa6, 0x26e: 0xa6, 0x26f: 0xa6,\n\t0x270: 0xa6, 0x271: 0xa6, 0x272: 0xa6, 0x273: 0xa6, 0x274: 0xa6, 0x275: 0xa6, 0x276: 0xa6, 0x277: 0xa6,\n\t0x278: 0xa6, 0x279: 0xa6, 0x27a: 0xa6, 0x27b: 0xa6, 0x27c: 0xa6, 0x27d: 0xa6, 0x27e: 0xa6, 0x27f: 0xa6,\n\t// Block 0xa, offset 0x280\n\t0x280: 0xa6, 0x281: 0xa6, 0x282: 0xa6, 0x283: 0xa6, 0x284: 0xa6, 0x285: 0xa6, 0x286: 0xa6, 0x287: 0xa6,\n\t0x288: 0xa6, 0x289: 0xa6, 0x28a: 0xa6, 0x28b: 0xa6, 0x28c: 0xa6, 0x28d: 0xa6, 0x28e: 0xa6, 0x28f: 0xa6,\n\t0x290: 0xa6, 0x291: 0xa6, 0x292: 0xea, 0x293: 0xeb, 0x294: 0xa6, 0x295: 0xa6, 0x296: 0xa6, 0x297: 0xa6,\n\t0x298: 0xec, 0x299: 0x41, 0x29a: 0x42, 0x29b: 0xed, 0x29c: 0x43, 0x29d: 0x44, 0x29e: 0x45, 0x29f: 0x46,\n\t0x2a0: 0xee, 0x2a1: 0xef, 0x2a2: 0xf0, 0x2a3: 0xf1, 0x2a4: 0xf2, 0x2a5: 0xf3, 0x2a6: 0xf4, 0x2a7: 0xf5,\n\t0x2a8: 0xf6, 0x2a9: 0xf7, 0x2aa: 0xf8, 0x2ab: 0xf9, 0x2ac: 0xfa, 0x2ad: 0xfb, 0x2ae: 0xfc, 0x2af: 0xfd,\n\t0x2b0: 0xa6, 0x2b1: 0xa6, 0x2b2: 0xa6, 0x2b3: 0xa6, 0x2b4: 0xa6, 0x2b5: 0xa6, 0x2b6: 0xa6, 0x2b7: 0xa6,\n\t0x2b8: 0xa6, 0x2b9: 0xa6, 0x2ba: 0xa6, 0x2bb: 0xa6, 0x2bc: 0xa6, 0x2bd: 0xa6, 0x2be: 0xa6, 0x2bf: 0xa6,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0xa6, 0x2c1: 0xa6, 0x2c2: 0xa6, 0x2c3: 0xa6, 0x2c4: 0xa6, 0x2c5: 0xa6, 0x2c6: 0xa6, 0x2c7: 0xa6,\n\t0x2c8: 0xa6, 0x2c9: 0xa6, 0x2ca: 0xa6, 0x2cb: 0xa6, 0x2cc: 0xa6, 0x2cd: 0xa6, 0x2ce: 0xa6, 0x2cf: 0xa6,\n\t0x2d0: 0xa6, 0x2d1: 0xa6, 0x2d2: 0xa6, 0x2d3: 0xa6, 0x2d4: 0xa6, 0x2d5: 0xa6, 0x2d6: 0xa6, 0x2d7: 0xa6,\n\t0x2d8: 0xa6, 0x2d9: 0xa6, 0x2da: 0xa6, 0x2db: 0xa6, 0x2dc: 0xa6, 0x2dd: 0xa6, 0x2de: 0xfe, 0x2df: 0xff,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x100, 0x301: 0x100, 0x302: 0x100, 0x303: 0x100, 0x304: 0x100, 0x305: 0x100, 0x306: 0x100, 0x307: 0x100,\n\t0x308: 0x100, 0x309: 0x100, 0x30a: 0x100, 0x30b: 0x100, 0x30c: 0x100, 0x30d: 0x100, 0x30e: 0x100, 0x30f: 0x100,\n\t0x310: 0x100, 0x311: 0x100, 0x312: 0x100, 0x313: 0x100, 0x314: 0x100, 0x315: 0x100, 0x316: 0x100, 0x317: 0x100,\n\t0x318: 0x100, 0x319: 0x100, 0x31a: 0x100, 0x31b: 0x100, 0x31c: 0x100, 0x31d: 0x100, 0x31e: 0x100, 0x31f: 0x100,\n\t0x320: 0x100, 0x321: 0x100, 0x322: 0x100, 0x323: 0x100, 0x324: 0x100, 0x325: 0x100, 0x326: 0x100, 0x327: 0x100,\n\t0x328: 0x100, 0x329: 0x100, 0x32a: 0x100, 0x32b: 0x100, 0x32c: 0x100, 0x32d: 0x100, 0x32e: 0x100, 0x32f: 0x100,\n\t0x330: 0x100, 0x331: 0x100, 0x332: 0x100, 0x333: 0x100, 0x334: 0x100, 0x335: 0x100, 0x336: 0x100, 0x337: 0x100,\n\t0x338: 0x100, 0x339: 0x100, 0x33a: 0x100, 0x33b: 0x100, 0x33c: 0x100, 0x33d: 0x100, 0x33e: 0x100, 0x33f: 0x100,\n\t// Block 0xd, offset 0x340\n\t0x340: 0x100, 0x341: 0x100, 0x342: 0x100, 0x343: 0x100, 0x344: 0x100, 0x345: 0x100, 0x346: 0x100, 0x347: 0x100,\n\t0x348: 0x100, 0x349: 0x100, 0x34a: 0x100, 0x34b: 0x100, 0x34c: 0x100, 0x34d: 0x100, 0x34e: 0x100, 0x34f: 0x100,\n\t0x350: 0x100, 0x351: 0x100, 0x352: 0x100, 0x353: 0x100, 0x354: 0x100, 0x355: 0x100, 0x356: 0x100, 0x357: 0x100,\n\t0x358: 0x100, 0x359: 0x100, 0x35a: 0x100, 0x35b: 0x100, 0x35c: 0x100, 0x35d: 0x100, 0x35e: 0x100, 0x35f: 0x100,\n\t0x360: 0x100, 0x361: 0x100, 0x362: 0x100, 0x363: 0x100, 0x364: 0x101, 0x365: 0x102, 0x366: 0x103, 0x367: 0x104,\n\t0x368: 0x47, 0x369: 0x105, 0x36a: 0x106, 0x36b: 0x48, 0x36c: 0x49, 0x36d: 0x4a, 0x36e: 0x4b, 0x36f: 0x4c,\n\t0x370: 0x107, 0x371: 0x4d, 0x372: 0x4e, 0x373: 0x4f, 0x374: 0x50, 0x375: 0x51, 0x376: 0x108, 0x377: 0x52,\n\t0x378: 0x53, 0x379: 0x54, 0x37a: 0x55, 0x37b: 0x56, 0x37c: 0x57, 0x37d: 0x58, 0x37e: 0x59, 0x37f: 0x5a,\n\t// Block 0xe, offset 0x380\n\t0x380: 0x109, 0x381: 0x10a, 0x382: 0xa6, 0x383: 0x10b, 0x384: 0x10c, 0x385: 0xa2, 0x386: 0x10d, 0x387: 0x10e,\n\t0x388: 0x100, 0x389: 0x100, 0x38a: 0x10f, 0x38b: 0x110, 0x38c: 0x111, 0x38d: 0x112, 0x38e: 0x113, 0x38f: 0x114,\n\t0x390: 0x115, 0x391: 0xa6, 0x392: 0x116, 0x393: 0x117, 0x394: 0x118, 0x395: 0x5b, 0x396: 0x5c, 0x397: 0x100,\n\t0x398: 0xa6, 0x399: 0xa6, 0x39a: 0xa6, 0x39b: 0xa6, 0x39c: 0x119, 0x39d: 0x11a, 0x39e: 0x5d, 0x39f: 0x100,\n\t0x3a0: 0x11b, 0x3a1: 0x11c, 0x3a2: 0x11d, 0x3a3: 0x11e, 0x3a4: 0x11f, 0x3a5: 0x100, 0x3a6: 0x120, 0x3a7: 0x121,\n\t0x3a8: 0x122, 0x3a9: 0x123, 0x3aa: 0x124, 0x3ab: 0x5e, 0x3ac: 0x125, 0x3ad: 0x126, 0x3ae: 0x5f, 0x3af: 0x100,\n\t0x3b0: 0x127, 0x3b1: 0x128, 0x3b2: 0x129, 0x3b3: 0x12a, 0x3b4: 0x12b, 0x3b5: 0x100, 0x3b6: 0x100, 0x3b7: 0x100,\n\t0x3b8: 0x100, 0x3b9: 0x12c, 0x3ba: 0x12d, 0x3bb: 0x12e, 0x3bc: 0x12f, 0x3bd: 0x130, 0x3be: 0x131, 0x3bf: 0x132,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x133, 0x3c1: 0x134, 0x3c2: 0x135, 0x3c3: 0x136, 0x3c4: 0x137, 0x3c5: 0x138, 0x3c6: 0x139, 0x3c7: 0x13a,\n\t0x3c8: 0x13b, 0x3c9: 0x13c, 0x3ca: 0x13d, 0x3cb: 0x13e, 0x3cc: 0x60, 0x3cd: 0x61, 0x3ce: 0x100, 0x3cf: 0x100,\n\t0x3d0: 0x13f, 0x3d1: 0x140, 0x3d2: 0x141, 0x3d3: 0x142, 0x3d4: 0x100, 0x3d5: 0x100, 0x3d6: 0x143, 0x3d7: 0x144,\n\t0x3d8: 0x145, 0x3d9: 0x146, 0x3da: 0x147, 0x3db: 0x148, 0x3dc: 0x149, 0x3dd: 0x14a, 0x3de: 0x100, 0x3df: 0x100,\n\t0x3e0: 0x14b, 0x3e1: 0x100, 0x3e2: 0x14c, 0x3e3: 0x14d, 0x3e4: 0x62, 0x3e5: 0x14e, 0x3e6: 0x14f, 0x3e7: 0x150,\n\t0x3e8: 0x151, 0x3e9: 0x152, 0x3ea: 0x153, 0x3eb: 0x154, 0x3ec: 0x155, 0x3ed: 0x100, 0x3ee: 0x100, 0x3ef: 0x100,\n\t0x3f0: 0x156, 0x3f1: 0x157, 0x3f2: 0x158, 0x3f3: 0x100, 0x3f4: 0x159, 0x3f5: 0x15a, 0x3f6: 0x15b, 0x3f7: 0x100,\n\t0x3f8: 0x100, 0x3f9: 0x100, 0x3fa: 0x100, 0x3fb: 0x15c, 0x3fc: 0x15d, 0x3fd: 0x15e, 0x3fe: 0x15f, 0x3ff: 0x160,\n\t// Block 0x10, offset 0x400\n\t0x400: 0xa6, 0x401: 0xa6, 0x402: 0xa6, 0x403: 0xa6, 0x404: 0xa6, 0x405: 0xa6, 0x406: 0xa6, 0x407: 0xa6,\n\t0x408: 0xa6, 0x409: 0xa6, 0x40a: 0xa6, 0x40b: 0xa6, 0x40c: 0xa6, 0x40d: 0xa6, 0x40e: 0x161, 0x40f: 0x100,\n\t0x410: 0xa2, 0x411: 0x162, 0x412: 0xa6, 0x413: 0xa6, 0x414: 0xa6, 0x415: 0x163, 0x416: 0x100, 0x417: 0x100,\n\t0x418: 0x100, 0x419: 0x100, 0x41a: 0x100, 0x41b: 0x100, 0x41c: 0x100, 0x41d: 0x100, 0x41e: 0x100, 0x41f: 0x100,\n\t0x420: 0x100, 0x421: 0x100, 0x422: 0x100, 0x423: 0x100, 0x424: 0x100, 0x425: 0x100, 0x426: 0x100, 0x427: 0x100,\n\t0x428: 0x100, 0x429: 0x100, 0x42a: 0x100, 0x42b: 0x100, 0x42c: 0x100, 0x42d: 0x100, 0x42e: 0x100, 0x42f: 0x100,\n\t0x430: 0x100, 0x431: 0x100, 0x432: 0x100, 0x433: 0x100, 0x434: 0x100, 0x435: 0x100, 0x436: 0x100, 0x437: 0x100,\n\t0x438: 0x100, 0x439: 0x100, 0x43a: 0x100, 0x43b: 0x100, 0x43c: 0x100, 0x43d: 0x100, 0x43e: 0x164, 0x43f: 0x165,\n\t// Block 0x11, offset 0x440\n\t0x440: 0xa6, 0x441: 0xa6, 0x442: 0xa6, 0x443: 0xa6, 0x444: 0xa6, 0x445: 0xa6, 0x446: 0xa6, 0x447: 0xa6,\n\t0x448: 0xa6, 0x449: 0xa6, 0x44a: 0xa6, 0x44b: 0xa6, 0x44c: 0xa6, 0x44d: 0xa6, 0x44e: 0xa6, 0x44f: 0xa6,\n\t0x450: 0x166, 0x451: 0x167, 0x452: 0x100, 0x453: 0x100, 0x454: 0x100, 0x455: 0x100, 0x456: 0x100, 0x457: 0x100,\n\t0x458: 0x100, 0x459: 0x100, 0x45a: 0x100, 0x45b: 0x100, 0x45c: 0x100, 0x45d: 0x100, 0x45e: 0x100, 0x45f: 0x100,\n\t0x460: 0x100, 0x461: 0x100, 0x462: 0x100, 0x463: 0x100, 0x464: 0x100, 0x465: 0x100, 0x466: 0x100, 0x467: 0x100,\n\t0x468: 0x100, 0x469: 0x100, 0x46a: 0x100, 0x46b: 0x100, 0x46c: 0x100, 0x46d: 0x100, 0x46e: 0x100, 0x46f: 0x100,\n\t0x470: 0x100, 0x471: 0x100, 0x472: 0x100, 0x473: 0x100, 0x474: 0x100, 0x475: 0x100, 0x476: 0x100, 0x477: 0x100,\n\t0x478: 0x100, 0x479: 0x100, 0x47a: 0x100, 0x47b: 0x100, 0x47c: 0x100, 0x47d: 0x100, 0x47e: 0x100, 0x47f: 0x100,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x100, 0x481: 0x100, 0x482: 0x100, 0x483: 0x100, 0x484: 0x100, 0x485: 0x100, 0x486: 0x100, 0x487: 0x100,\n\t0x488: 0x100, 0x489: 0x100, 0x48a: 0x100, 0x48b: 0x100, 0x48c: 0x100, 0x48d: 0x100, 0x48e: 0x100, 0x48f: 0x100,\n\t0x490: 0xa6, 0x491: 0xa6, 0x492: 0xa6, 0x493: 0xa6, 0x494: 0xa6, 0x495: 0xa6, 0x496: 0xa6, 0x497: 0xa6,\n\t0x498: 0xa6, 0x499: 0x14a, 0x49a: 0x100, 0x49b: 0x100, 0x49c: 0x100, 0x49d: 0x100, 0x49e: 0x100, 0x49f: 0x100,\n\t0x4a0: 0x100, 0x4a1: 0x100, 0x4a2: 0x100, 0x4a3: 0x100, 0x4a4: 0x100, 0x4a5: 0x100, 0x4a6: 0x100, 0x4a7: 0x100,\n\t0x4a8: 0x100, 0x4a9: 0x100, 0x4aa: 0x100, 0x4ab: 0x100, 0x4ac: 0x100, 0x4ad: 0x100, 0x4ae: 0x100, 0x4af: 0x100,\n\t0x4b0: 0x100, 0x4b1: 0x100, 0x4b2: 0x100, 0x4b3: 0x100, 0x4b4: 0x100, 0x4b5: 0x100, 0x4b6: 0x100, 0x4b7: 0x100,\n\t0x4b8: 0x100, 0x4b9: 0x100, 0x4ba: 0x100, 0x4bb: 0x100, 0x4bc: 0x100, 0x4bd: 0x100, 0x4be: 0x100, 0x4bf: 0x100,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x100, 0x4c1: 0x100, 0x4c2: 0x100, 0x4c3: 0x100, 0x4c4: 0x100, 0x4c5: 0x100, 0x4c6: 0x100, 0x4c7: 0x100,\n\t0x4c8: 0x100, 0x4c9: 0x100, 0x4ca: 0x100, 0x4cb: 0x100, 0x4cc: 0x100, 0x4cd: 0x100, 0x4ce: 0x100, 0x4cf: 0x100,\n\t0x4d0: 0x100, 0x4d1: 0x100, 0x4d2: 0x100, 0x4d3: 0x100, 0x4d4: 0x100, 0x4d5: 0x100, 0x4d6: 0x100, 0x4d7: 0x100,\n\t0x4d8: 0x100, 0x4d9: 0x100, 0x4da: 0x100, 0x4db: 0x100, 0x4dc: 0x100, 0x4dd: 0x100, 0x4de: 0x100, 0x4df: 0x100,\n\t0x4e0: 0xa6, 0x4e1: 0xa6, 0x4e2: 0xa6, 0x4e3: 0xa6, 0x4e4: 0xa6, 0x4e5: 0xa6, 0x4e6: 0xa6, 0x4e7: 0xa6,\n\t0x4e8: 0x154, 0x4e9: 0x168, 0x4ea: 0x169, 0x4eb: 0x16a, 0x4ec: 0x16b, 0x4ed: 0x16c, 0x4ee: 0x16d, 0x4ef: 0x100,\n\t0x4f0: 0x100, 0x4f1: 0x100, 0x4f2: 0x100, 0x4f3: 0x100, 0x4f4: 0x100, 0x4f5: 0x100, 0x4f6: 0x100, 0x4f7: 0x100,\n\t0x4f8: 0x100, 0x4f9: 0x16e, 0x4fa: 0x16f, 0x4fb: 0x100, 0x4fc: 0xa6, 0x4fd: 0x170, 0x4fe: 0x171, 0x4ff: 0x172,\n\t// Block 0x14, offset 0x500\n\t0x500: 0xa6, 0x501: 0xa6, 0x502: 0xa6, 0x503: 0xa6, 0x504: 0xa6, 0x505: 0xa6, 0x506: 0xa6, 0x507: 0xa6,\n\t0x508: 0xa6, 0x509: 0xa6, 0x50a: 0xa6, 0x50b: 0xa6, 0x50c: 0xa6, 0x50d: 0xa6, 0x50e: 0xa6, 0x50f: 0xa6,\n\t0x510: 0xa6, 0x511: 0xa6, 0x512: 0xa6, 0x513: 0xa6, 0x514: 0xa6, 0x515: 0xa6, 0x516: 0xa6, 0x517: 0xa6,\n\t0x518: 0xa6, 0x519: 0xa6, 0x51a: 0xa6, 0x51b: 0xa6, 0x51c: 0xa6, 0x51d: 0xa6, 0x51e: 0xa6, 0x51f: 0x173,\n\t0x520: 0xa6, 0x521: 0xa6, 0x522: 0xa6, 0x523: 0xa6, 0x524: 0xa6, 0x525: 0xa6, 0x526: 0xa6, 0x527: 0xa6,\n\t0x528: 0xa6, 0x529: 0xa6, 0x52a: 0xa6, 0x52b: 0xa6, 0x52c: 0xa6, 0x52d: 0xa6, 0x52e: 0xa6, 0x52f: 0xa6,\n\t0x530: 0xa6, 0x531: 0xa6, 0x532: 0xa6, 0x533: 0x174, 0x534: 0x175, 0x535: 0x100, 0x536: 0x100, 0x537: 0x100,\n\t0x538: 0x100, 0x539: 0x100, 0x53a: 0x100, 0x53b: 0x100, 0x53c: 0x100, 0x53d: 0x100, 0x53e: 0x100, 0x53f: 0x100,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x100, 0x541: 0x100, 0x542: 0x100, 0x543: 0x100, 0x544: 0x100, 0x545: 0x100, 0x546: 0x100, 0x547: 0x100,\n\t0x548: 0x100, 0x549: 0x100, 0x54a: 0x100, 0x54b: 0x100, 0x54c: 0x100, 0x54d: 0x100, 0x54e: 0x100, 0x54f: 0x100,\n\t0x550: 0x100, 0x551: 0x100, 0x552: 0x100, 0x553: 0x100, 0x554: 0x100, 0x555: 0x100, 0x556: 0x100, 0x557: 0x100,\n\t0x558: 0x100, 0x559: 0x100, 0x55a: 0x100, 0x55b: 0x100, 0x55c: 0x100, 0x55d: 0x100, 0x55e: 0x100, 0x55f: 0x100,\n\t0x560: 0x100, 0x561: 0x100, 0x562: 0x100, 0x563: 0x100, 0x564: 0x100, 0x565: 0x100, 0x566: 0x100, 0x567: 0x100,\n\t0x568: 0x100, 0x569: 0x100, 0x56a: 0x100, 0x56b: 0x100, 0x56c: 0x100, 0x56d: 0x100, 0x56e: 0x100, 0x56f: 0x100,\n\t0x570: 0x100, 0x571: 0x100, 0x572: 0x100, 0x573: 0x100, 0x574: 0x100, 0x575: 0x100, 0x576: 0x100, 0x577: 0x100,\n\t0x578: 0x100, 0x579: 0x100, 0x57a: 0x100, 0x57b: 0x100, 0x57c: 0x100, 0x57d: 0x100, 0x57e: 0x100, 0x57f: 0x176,\n\t// Block 0x16, offset 0x580\n\t0x580: 0xa6, 0x581: 0xa6, 0x582: 0xa6, 0x583: 0xa6, 0x584: 0x177, 0x585: 0x178, 0x586: 0xa6, 0x587: 0xa6,\n\t0x588: 0xa6, 0x589: 0xa6, 0x58a: 0xa6, 0x58b: 0x179, 0x58c: 0x100, 0x58d: 0x100, 0x58e: 0x100, 0x58f: 0x100,\n\t0x590: 0x100, 0x591: 0x100, 0x592: 0x100, 0x593: 0x100, 0x594: 0x100, 0x595: 0x100, 0x596: 0x100, 0x597: 0x100,\n\t0x598: 0x100, 0x599: 0x100, 0x59a: 0x100, 0x59b: 0x100, 0x59c: 0x100, 0x59d: 0x100, 0x59e: 0x100, 0x59f: 0x100,\n\t0x5a0: 0x100, 0x5a1: 0x100, 0x5a2: 0x100, 0x5a3: 0x100, 0x5a4: 0x100, 0x5a5: 0x100, 0x5a6: 0x100, 0x5a7: 0x100,\n\t0x5a8: 0x100, 0x5a9: 0x100, 0x5aa: 0x100, 0x5ab: 0x100, 0x5ac: 0x100, 0x5ad: 0x100, 0x5ae: 0x100, 0x5af: 0x100,\n\t0x5b0: 0xa6, 0x5b1: 0x17a, 0x5b2: 0x17b, 0x5b3: 0x100, 0x5b4: 0x100, 0x5b5: 0x100, 0x5b6: 0x100, 0x5b7: 0x100,\n\t0x5b8: 0x100, 0x5b9: 0x100, 0x5ba: 0x100, 0x5bb: 0x100, 0x5bc: 0x100, 0x5bd: 0x100, 0x5be: 0x100, 0x5bf: 0x100,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x100, 0x5c1: 0x100, 0x5c2: 0x100, 0x5c3: 0x100, 0x5c4: 0x100, 0x5c5: 0x100, 0x5c6: 0x100, 0x5c7: 0x100,\n\t0x5c8: 0x100, 0x5c9: 0x100, 0x5ca: 0x100, 0x5cb: 0x100, 0x5cc: 0x100, 0x5cd: 0x100, 0x5ce: 0x100, 0x5cf: 0x100,\n\t0x5d0: 0x100, 0x5d1: 0x100, 0x5d2: 0x100, 0x5d3: 0x100, 0x5d4: 0x100, 0x5d5: 0x100, 0x5d6: 0x100, 0x5d7: 0x100,\n\t0x5d8: 0x100, 0x5d9: 0x100, 0x5da: 0x100, 0x5db: 0x100, 0x5dc: 0x100, 0x5dd: 0x100, 0x5de: 0x100, 0x5df: 0x100,\n\t0x5e0: 0x100, 0x5e1: 0x100, 0x5e2: 0x100, 0x5e3: 0x100, 0x5e4: 0x100, 0x5e5: 0x100, 0x5e6: 0x100, 0x5e7: 0x100,\n\t0x5e8: 0x100, 0x5e9: 0x100, 0x5ea: 0x100, 0x5eb: 0x100, 0x5ec: 0x100, 0x5ed: 0x100, 0x5ee: 0x100, 0x5ef: 0x100,\n\t0x5f0: 0x100, 0x5f1: 0x100, 0x5f2: 0x100, 0x5f3: 0x100, 0x5f4: 0x100, 0x5f5: 0x100, 0x5f6: 0x100, 0x5f7: 0x100,\n\t0x5f8: 0x100, 0x5f9: 0x100, 0x5fa: 0x100, 0x5fb: 0x100, 0x5fc: 0x17c, 0x5fd: 0x17d, 0x5fe: 0xa2, 0x5ff: 0x17e,\n\t// Block 0x18, offset 0x600\n\t0x600: 0xa2, 0x601: 0xa2, 0x602: 0xa2, 0x603: 0x17f, 0x604: 0x180, 0x605: 0x181, 0x606: 0x182, 0x607: 0x183,\n\t0x608: 0xa2, 0x609: 0x184, 0x60a: 0x100, 0x60b: 0x185, 0x60c: 0xa2, 0x60d: 0x186, 0x60e: 0x100, 0x60f: 0x100,\n\t0x610: 0x63, 0x611: 0x64, 0x612: 0x65, 0x613: 0x66, 0x614: 0x67, 0x615: 0x68, 0x616: 0x69, 0x617: 0x6a,\n\t0x618: 0x6b, 0x619: 0x6c, 0x61a: 0x6d, 0x61b: 0x6e, 0x61c: 0x6f, 0x61d: 0x70, 0x61e: 0x71, 0x61f: 0x72,\n\t0x620: 0xa2, 0x621: 0xa2, 0x622: 0xa2, 0x623: 0xa2, 0x624: 0xa2, 0x625: 0xa2, 0x626: 0xa2, 0x627: 0xa2,\n\t0x628: 0x187, 0x629: 0x188, 0x62a: 0x189, 0x62b: 0x100, 0x62c: 0x100, 0x62d: 0x100, 0x62e: 0x100, 0x62f: 0x100,\n\t0x630: 0x100, 0x631: 0x100, 0x632: 0x100, 0x633: 0x100, 0x634: 0x100, 0x635: 0x100, 0x636: 0x100, 0x637: 0x100,\n\t0x638: 0x100, 0x639: 0x100, 0x63a: 0x100, 0x63b: 0x100, 0x63c: 0x18a, 0x63d: 0x100, 0x63e: 0x100, 0x63f: 0x100,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x73, 0x641: 0x74, 0x642: 0x18b, 0x643: 0x100, 0x644: 0x18c, 0x645: 0x18d, 0x646: 0x100, 0x647: 0x100,\n\t0x648: 0x100, 0x649: 0x100, 0x64a: 0x18e, 0x64b: 0x18f, 0x64c: 0x100, 0x64d: 0x100, 0x64e: 0x100, 0x64f: 0x100,\n\t0x650: 0x100, 0x651: 0x100, 0x652: 0x100, 0x653: 0x190, 0x654: 0x100, 0x655: 0x100, 0x656: 0x100, 0x657: 0x100,\n\t0x658: 0x100, 0x659: 0x100, 0x65a: 0x100, 0x65b: 0x100, 0x65c: 0x100, 0x65d: 0x100, 0x65e: 0x100, 0x65f: 0x191,\n\t0x660: 0x127, 0x661: 0x127, 0x662: 0x127, 0x663: 0x192, 0x664: 0x75, 0x665: 0x193, 0x666: 0x100, 0x667: 0x100,\n\t0x668: 0x100, 0x669: 0x100, 0x66a: 0x100, 0x66b: 0x100, 0x66c: 0x100, 0x66d: 0x100, 0x66e: 0x100, 0x66f: 0x100,\n\t0x670: 0x100, 0x671: 0x194, 0x672: 0x195, 0x673: 0x100, 0x674: 0x196, 0x675: 0x100, 0x676: 0x100, 0x677: 0x100,\n\t0x678: 0x76, 0x679: 0x77, 0x67a: 0x78, 0x67b: 0x197, 0x67c: 0x100, 0x67d: 0x100, 0x67e: 0x100, 0x67f: 0x100,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x198, 0x681: 0xa2, 0x682: 0x199, 0x683: 0x19a, 0x684: 0x79, 0x685: 0x7a, 0x686: 0x19b, 0x687: 0x19c,\n\t0x688: 0x7b, 0x689: 0x19d, 0x68a: 0x100, 0x68b: 0x100, 0x68c: 0xa2, 0x68d: 0xa2, 0x68e: 0xa2, 0x68f: 0xa2,\n\t0x690: 0xa2, 0x691: 0xa2, 0x692: 0xa2, 0x693: 0xa2, 0x694: 0xa2, 0x695: 0xa2, 0x696: 0xa2, 0x697: 0xa2,\n\t0x698: 0xa2, 0x699: 0xa2, 0x69a: 0xa2, 0x69b: 0x19e, 0x69c: 0xa2, 0x69d: 0x19f, 0x69e: 0xa2, 0x69f: 0x1a0,\n\t0x6a0: 0x1a1, 0x6a1: 0x1a2, 0x6a2: 0x1a3, 0x6a3: 0x100, 0x6a4: 0xa2, 0x6a5: 0xa2, 0x6a6: 0xa2, 0x6a7: 0xa2,\n\t0x6a8: 0xa2, 0x6a9: 0x1a4, 0x6aa: 0x1a5, 0x6ab: 0x1a6, 0x6ac: 0xa2, 0x6ad: 0xa2, 0x6ae: 0x1a7, 0x6af: 0x1a8,\n\t0x6b0: 0x100, 0x6b1: 0x100, 0x6b2: 0x100, 0x6b3: 0x100, 0x6b4: 0x100, 0x6b5: 0x100, 0x6b6: 0x100, 0x6b7: 0x100,\n\t0x6b8: 0x100, 0x6b9: 0x100, 0x6ba: 0x100, 0x6bb: 0x100, 0x6bc: 0x100, 0x6bd: 0x100, 0x6be: 0x100, 0x6bf: 0x100,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0xa6, 0x6c1: 0xa6, 0x6c2: 0xa6, 0x6c3: 0xa6, 0x6c4: 0xa6, 0x6c5: 0xa6, 0x6c6: 0xa6, 0x6c7: 0xa6,\n\t0x6c8: 0xa6, 0x6c9: 0xa6, 0x6ca: 0xa6, 0x6cb: 0xa6, 0x6cc: 0xa6, 0x6cd: 0xa6, 0x6ce: 0xa6, 0x6cf: 0xa6,\n\t0x6d0: 0xa6, 0x6d1: 0xa6, 0x6d2: 0xa6, 0x6d3: 0xa6, 0x6d4: 0xa6, 0x6d5: 0xa6, 0x6d6: 0xa6, 0x6d7: 0xa6,\n\t0x6d8: 0xa6, 0x6d9: 0xa6, 0x6da: 0xa6, 0x6db: 0x1a9, 0x6dc: 0xa6, 0x6dd: 0xa6, 0x6de: 0xa6, 0x6df: 0xa6,\n\t0x6e0: 0xa6, 0x6e1: 0xa6, 0x6e2: 0xa6, 0x6e3: 0xa6, 0x6e4: 0xa6, 0x6e5: 0xa6, 0x6e6: 0xa6, 0x6e7: 0xa6,\n\t0x6e8: 0xa6, 0x6e9: 0xa6, 0x6ea: 0xa6, 0x6eb: 0xa6, 0x6ec: 0xa6, 0x6ed: 0xa6, 0x6ee: 0xa6, 0x6ef: 0xa6,\n\t0x6f0: 0xa6, 0x6f1: 0xa6, 0x6f2: 0xa6, 0x6f3: 0xa6, 0x6f4: 0xa6, 0x6f5: 0xa6, 0x6f6: 0xa6, 0x6f7: 0xa6,\n\t0x6f8: 0xa6, 0x6f9: 0xa6, 0x6fa: 0xa6, 0x6fb: 0xa6, 0x6fc: 0xa6, 0x6fd: 0xa6, 0x6fe: 0xa6, 0x6ff: 0xa6,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0xa6, 0x701: 0xa6, 0x702: 0xa6, 0x703: 0xa6, 0x704: 0xa6, 0x705: 0xa6, 0x706: 0xa6, 0x707: 0xa6,\n\t0x708: 0xa6, 0x709: 0xa6, 0x70a: 0xa6, 0x70b: 0xa6, 0x70c: 0xa6, 0x70d: 0xa6, 0x70e: 0xa6, 0x70f: 0xa6,\n\t0x710: 0xa6, 0x711: 0xa6, 0x712: 0xa6, 0x713: 0xa6, 0x714: 0xa6, 0x715: 0xa6, 0x716: 0xa6, 0x717: 0xa6,\n\t0x718: 0xa6, 0x719: 0xa6, 0x71a: 0xa6, 0x71b: 0xa6, 0x71c: 0x1aa, 0x71d: 0xa6, 0x71e: 0xa6, 0x71f: 0xa6,\n\t0x720: 0x1ab, 0x721: 0xa6, 0x722: 0xa6, 0x723: 0xa6, 0x724: 0xa6, 0x725: 0xa6, 0x726: 0xa6, 0x727: 0xa6,\n\t0x728: 0xa6, 0x729: 0xa6, 0x72a: 0xa6, 0x72b: 0xa6, 0x72c: 0xa6, 0x72d: 0xa6, 0x72e: 0xa6, 0x72f: 0xa6,\n\t0x730: 0xa6, 0x731: 0xa6, 0x732: 0xa6, 0x733: 0xa6, 0x734: 0xa6, 0x735: 0xa6, 0x736: 0xa6, 0x737: 0xa6,\n\t0x738: 0xa6, 0x739: 0xa6, 0x73a: 0xa6, 0x73b: 0xa6, 0x73c: 0xa6, 0x73d: 0xa6, 0x73e: 0xa6, 0x73f: 0xa6,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0xa6, 0x741: 0xa6, 0x742: 0xa6, 0x743: 0xa6, 0x744: 0xa6, 0x745: 0xa6, 0x746: 0xa6, 0x747: 0xa6,\n\t0x748: 0xa6, 0x749: 0xa6, 0x74a: 0xa6, 0x74b: 0xa6, 0x74c: 0xa6, 0x74d: 0xa6, 0x74e: 0xa6, 0x74f: 0xa6,\n\t0x750: 0xa6, 0x751: 0xa6, 0x752: 0xa6, 0x753: 0xa6, 0x754: 0xa6, 0x755: 0xa6, 0x756: 0xa6, 0x757: 0xa6,\n\t0x758: 0xa6, 0x759: 0xa6, 0x75a: 0xa6, 0x75b: 0xa6, 0x75c: 0xa6, 0x75d: 0xa6, 0x75e: 0xa6, 0x75f: 0xa6,\n\t0x760: 0xa6, 0x761: 0xa6, 0x762: 0xa6, 0x763: 0xa6, 0x764: 0xa6, 0x765: 0xa6, 0x766: 0xa6, 0x767: 0xa6,\n\t0x768: 0xa6, 0x769: 0xa6, 0x76a: 0xa6, 0x76b: 0xa6, 0x76c: 0xa6, 0x76d: 0xa6, 0x76e: 0xa6, 0x76f: 0xa6,\n\t0x770: 0xa6, 0x771: 0xa6, 0x772: 0xa6, 0x773: 0xa6, 0x774: 0xa6, 0x775: 0xa6, 0x776: 0xa6, 0x777: 0xa6,\n\t0x778: 0xa6, 0x779: 0xa6, 0x77a: 0x1ac, 0x77b: 0xa6, 0x77c: 0xa6, 0x77d: 0xa6, 0x77e: 0xa6, 0x77f: 0xa6,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0xa6, 0x781: 0xa6, 0x782: 0xa6, 0x783: 0xa6, 0x784: 0xa6, 0x785: 0xa6, 0x786: 0xa6, 0x787: 0xa6,\n\t0x788: 0xa6, 0x789: 0xa6, 0x78a: 0xa6, 0x78b: 0xa6, 0x78c: 0xa6, 0x78d: 0xa6, 0x78e: 0xa6, 0x78f: 0xa6,\n\t0x790: 0xa6, 0x791: 0xa6, 0x792: 0xa6, 0x793: 0xa6, 0x794: 0xa6, 0x795: 0xa6, 0x796: 0xa6, 0x797: 0xa6,\n\t0x798: 0xa6, 0x799: 0xa6, 0x79a: 0xa6, 0x79b: 0xa6, 0x79c: 0xa6, 0x79d: 0xa6, 0x79e: 0xa6, 0x79f: 0xa6,\n\t0x7a0: 0xa6, 0x7a1: 0xa6, 0x7a2: 0xa6, 0x7a3: 0xa6, 0x7a4: 0xa6, 0x7a5: 0xa6, 0x7a6: 0xa6, 0x7a7: 0xa6,\n\t0x7a8: 0xa6, 0x7a9: 0xa6, 0x7aa: 0xa6, 0x7ab: 0xa6, 0x7ac: 0xa6, 0x7ad: 0xa6, 0x7ae: 0xa6, 0x7af: 0x1ad,\n\t0x7b0: 0x100, 0x7b1: 0x100, 0x7b2: 0x100, 0x7b3: 0x100, 0x7b4: 0x100, 0x7b5: 0x100, 0x7b6: 0x100, 0x7b7: 0x100,\n\t0x7b8: 0x100, 0x7b9: 0x100, 0x7ba: 0x100, 0x7bb: 0x100, 0x7bc: 0x100, 0x7bd: 0x100, 0x7be: 0x100, 0x7bf: 0x100,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0x100, 0x7c1: 0x100, 0x7c2: 0x100, 0x7c3: 0x100, 0x7c4: 0x100, 0x7c5: 0x100, 0x7c6: 0x100, 0x7c7: 0x100,\n\t0x7c8: 0x100, 0x7c9: 0x100, 0x7ca: 0x100, 0x7cb: 0x100, 0x7cc: 0x100, 0x7cd: 0x100, 0x7ce: 0x100, 0x7cf: 0x100,\n\t0x7d0: 0x100, 0x7d1: 0x100, 0x7d2: 0x100, 0x7d3: 0x100, 0x7d4: 0x100, 0x7d5: 0x100, 0x7d6: 0x100, 0x7d7: 0x100,\n\t0x7d8: 0x100, 0x7d9: 0x100, 0x7da: 0x100, 0x7db: 0x100, 0x7dc: 0x100, 0x7dd: 0x100, 0x7de: 0x100, 0x7df: 0x100,\n\t0x7e0: 0x7c, 0x7e1: 0x7d, 0x7e2: 0x7e, 0x7e3: 0x7f, 0x7e4: 0x80, 0x7e5: 0x81, 0x7e6: 0x82, 0x7e7: 0x83,\n\t0x7e8: 0x84, 0x7e9: 0x100, 0x7ea: 0x100, 0x7eb: 0x100, 0x7ec: 0x100, 0x7ed: 0x100, 0x7ee: 0x100, 0x7ef: 0x100,\n\t0x7f0: 0x100, 0x7f1: 0x100, 0x7f2: 0x100, 0x7f3: 0x100, 0x7f4: 0x100, 0x7f5: 0x100, 0x7f6: 0x100, 0x7f7: 0x100,\n\t0x7f8: 0x100, 0x7f9: 0x100, 0x7fa: 0x100, 0x7fb: 0x100, 0x7fc: 0x100, 0x7fd: 0x100, 0x7fe: 0x100, 0x7ff: 0x100,\n\t// Block 0x20, offset 0x800\n\t0x800: 0xa6, 0x801: 0xa6, 0x802: 0xa6, 0x803: 0xa6, 0x804: 0xa6, 0x805: 0xa6, 0x806: 0xa6, 0x807: 0xa6,\n\t0x808: 0xa6, 0x809: 0xa6, 0x80a: 0xa6, 0x80b: 0xa6, 0x80c: 0xa6, 0x80d: 0x1ae, 0x80e: 0xa6, 0x80f: 0xa6,\n\t0x810: 0xa6, 0x811: 0xa6, 0x812: 0xa6, 0x813: 0xa6, 0x814: 0xa6, 0x815: 0xa6, 0x816: 0xa6, 0x817: 0xa6,\n\t0x818: 0xa6, 0x819: 0xa6, 0x81a: 0xa6, 0x81b: 0xa6, 0x81c: 0xa6, 0x81d: 0xa6, 0x81e: 0xa6, 0x81f: 0xa6,\n\t0x820: 0xa6, 0x821: 0xa6, 0x822: 0xa6, 0x823: 0xa6, 0x824: 0xa6, 0x825: 0xa6, 0x826: 0xa6, 0x827: 0xa6,\n\t0x828: 0xa6, 0x829: 0xa6, 0x82a: 0xa6, 0x82b: 0xa6, 0x82c: 0xa6, 0x82d: 0xa6, 0x82e: 0xa6, 0x82f: 0xa6,\n\t0x830: 0xa6, 0x831: 0xa6, 0x832: 0xa6, 0x833: 0xa6, 0x834: 0xa6, 0x835: 0xa6, 0x836: 0xa6, 0x837: 0xa6,\n\t0x838: 0xa6, 0x839: 0xa6, 0x83a: 0xa6, 0x83b: 0xa6, 0x83c: 0xa6, 0x83d: 0xa6, 0x83e: 0xa6, 0x83f: 0xa6,\n\t// Block 0x21, offset 0x840\n\t0x840: 0xa6, 0x841: 0xa6, 0x842: 0xa6, 0x843: 0xa6, 0x844: 0xa6, 0x845: 0xa6, 0x846: 0xa6, 0x847: 0xa6,\n\t0x848: 0xa6, 0x849: 0xa6, 0x84a: 0xa6, 0x84b: 0xa6, 0x84c: 0xa6, 0x84d: 0xa6, 0x84e: 0x1af, 0x84f: 0x100,\n\t0x850: 0x100, 0x851: 0x100, 0x852: 0x100, 0x853: 0x100, 0x854: 0x100, 0x855: 0x100, 0x856: 0x100, 0x857: 0x100,\n\t0x858: 0x100, 0x859: 0x100, 0x85a: 0x100, 0x85b: 0x100, 0x85c: 0x100, 0x85d: 0x100, 0x85e: 0x100, 0x85f: 0x100,\n\t0x860: 0x100, 0x861: 0x100, 0x862: 0x100, 0x863: 0x100, 0x864: 0x100, 0x865: 0x100, 0x866: 0x100, 0x867: 0x100,\n\t0x868: 0x100, 0x869: 0x100, 0x86a: 0x100, 0x86b: 0x100, 0x86c: 0x100, 0x86d: 0x100, 0x86e: 0x100, 0x86f: 0x100,\n\t0x870: 0x100, 0x871: 0x100, 0x872: 0x100, 0x873: 0x100, 0x874: 0x100, 0x875: 0x100, 0x876: 0x100, 0x877: 0x100,\n\t0x878: 0x100, 0x879: 0x100, 0x87a: 0x100, 0x87b: 0x100, 0x87c: 0x100, 0x87d: 0x100, 0x87e: 0x100, 0x87f: 0x100,\n\t// Block 0x22, offset 0x880\n\t0x890: 0x0c, 0x891: 0x0d, 0x892: 0x0e, 0x893: 0x0f, 0x894: 0x10, 0x895: 0x0a, 0x896: 0x11, 0x897: 0x07,\n\t0x898: 0x12, 0x899: 0x0a, 0x89a: 0x13, 0x89b: 0x14, 0x89c: 0x15, 0x89d: 0x16, 0x89e: 0x17, 0x89f: 0x18,\n\t0x8a0: 0x07, 0x8a1: 0x07, 0x8a2: 0x07, 0x8a3: 0x07, 0x8a4: 0x07, 0x8a5: 0x07, 0x8a6: 0x07, 0x8a7: 0x07,\n\t0x8a8: 0x07, 0x8a9: 0x07, 0x8aa: 0x19, 0x8ab: 0x1a, 0x8ac: 0x1b, 0x8ad: 0x07, 0x8ae: 0x1c, 0x8af: 0x1d,\n\t0x8b0: 0x07, 0x8b1: 0x1e, 0x8b2: 0x1f, 0x8b3: 0x0a, 0x8b4: 0x0a, 0x8b5: 0x0a, 0x8b6: 0x0a, 0x8b7: 0x0a,\n\t0x8b8: 0x0a, 0x8b9: 0x0a, 0x8ba: 0x0a, 0x8bb: 0x0a, 0x8bc: 0x0a, 0x8bd: 0x0a, 0x8be: 0x0a, 0x8bf: 0x0a,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x0a, 0x8c1: 0x0a, 0x8c2: 0x0a, 0x8c3: 0x0a, 0x8c4: 0x0a, 0x8c5: 0x0a, 0x8c6: 0x0a, 0x8c7: 0x0a,\n\t0x8c8: 0x0a, 0x8c9: 0x0a, 0x8ca: 0x0a, 0x8cb: 0x0a, 0x8cc: 0x0a, 0x8cd: 0x0a, 0x8ce: 0x0a, 0x8cf: 0x0a,\n\t0x8d0: 0x0a, 0x8d1: 0x0a, 0x8d2: 0x0a, 0x8d3: 0x0a, 0x8d4: 0x0a, 0x8d5: 0x0a, 0x8d6: 0x0a, 0x8d7: 0x0a,\n\t0x8d8: 0x0a, 0x8d9: 0x0a, 0x8da: 0x0a, 0x8db: 0x0a, 0x8dc: 0x0a, 0x8dd: 0x0a, 0x8de: 0x0a, 0x8df: 0x0a,\n\t0x8e0: 0x0a, 0x8e1: 0x0a, 0x8e2: 0x0a, 0x8e3: 0x0a, 0x8e4: 0x0a, 0x8e5: 0x0a, 0x8e6: 0x0a, 0x8e7: 0x0a,\n\t0x8e8: 0x0a, 0x8e9: 0x0a, 0x8ea: 0x0a, 0x8eb: 0x0a, 0x8ec: 0x0a, 0x8ed: 0x0a, 0x8ee: 0x0a, 0x8ef: 0x0a,\n\t0x8f0: 0x0a, 0x8f1: 0x0a, 0x8f2: 0x0a, 0x8f3: 0x0a, 0x8f4: 0x0a, 0x8f5: 0x0a, 0x8f6: 0x0a, 0x8f7: 0x0a,\n\t0x8f8: 0x0a, 0x8f9: 0x0a, 0x8fa: 0x0a, 0x8fb: 0x0a, 0x8fc: 0x0a, 0x8fd: 0x0a, 0x8fe: 0x0a, 0x8ff: 0x0a,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x1b0, 0x901: 0x1b1, 0x902: 0x100, 0x903: 0x100, 0x904: 0x1b2, 0x905: 0x1b2, 0x906: 0x1b2, 0x907: 0x1b3,\n\t0x908: 0x100, 0x909: 0x100, 0x90a: 0x100, 0x90b: 0x100, 0x90c: 0x100, 0x90d: 0x100, 0x90e: 0x100, 0x90f: 0x100,\n\t0x910: 0x100, 0x911: 0x100, 0x912: 0x100, 0x913: 0x100, 0x914: 0x100, 0x915: 0x100, 0x916: 0x100, 0x917: 0x100,\n\t0x918: 0x100, 0x919: 0x100, 0x91a: 0x100, 0x91b: 0x100, 0x91c: 0x100, 0x91d: 0x100, 0x91e: 0x100, 0x91f: 0x100,\n\t0x920: 0x100, 0x921: 0x100, 0x922: 0x100, 0x923: 0x100, 0x924: 0x100, 0x925: 0x100, 0x926: 0x100, 0x927: 0x100,\n\t0x928: 0x100, 0x929: 0x100, 0x92a: 0x100, 0x92b: 0x100, 0x92c: 0x100, 0x92d: 0x100, 0x92e: 0x100, 0x92f: 0x100,\n\t0x930: 0x100, 0x931: 0x100, 0x932: 0x100, 0x933: 0x100, 0x934: 0x100, 0x935: 0x100, 0x936: 0x100, 0x937: 0x100,\n\t0x938: 0x100, 0x939: 0x100, 0x93a: 0x100, 0x93b: 0x100, 0x93c: 0x100, 0x93d: 0x100, 0x93e: 0x100, 0x93f: 0x100,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x0a, 0x941: 0x0a, 0x942: 0x0a, 0x943: 0x0a, 0x944: 0x0a, 0x945: 0x0a, 0x946: 0x0a, 0x947: 0x0a,\n\t0x948: 0x0a, 0x949: 0x0a, 0x94a: 0x0a, 0x94b: 0x0a, 0x94c: 0x0a, 0x94d: 0x0a, 0x94e: 0x0a, 0x94f: 0x0a,\n\t0x950: 0x0a, 0x951: 0x0a, 0x952: 0x0a, 0x953: 0x0a, 0x954: 0x0a, 0x955: 0x0a, 0x956: 0x0a, 0x957: 0x0a,\n\t0x958: 0x0a, 0x959: 0x0a, 0x95a: 0x0a, 0x95b: 0x0a, 0x95c: 0x0a, 0x95d: 0x0a, 0x95e: 0x0a, 0x95f: 0x0a,\n\t0x960: 0x22, 0x961: 0x0a, 0x962: 0x0a, 0x963: 0x0a, 0x964: 0x0a, 0x965: 0x0a, 0x966: 0x0a, 0x967: 0x0a,\n\t0x968: 0x0a, 0x969: 0x0a, 0x96a: 0x0a, 0x96b: 0x0a, 0x96c: 0x0a, 0x96d: 0x0a, 0x96e: 0x0a, 0x96f: 0x0a,\n\t0x970: 0x0a, 0x971: 0x0a, 0x972: 0x0a, 0x973: 0x0a, 0x974: 0x0a, 0x975: 0x0a, 0x976: 0x0a, 0x977: 0x0a,\n\t0x978: 0x0a, 0x979: 0x0a, 0x97a: 0x0a, 0x97b: 0x0a, 0x97c: 0x0a, 0x97d: 0x0a, 0x97e: 0x0a, 0x97f: 0x0a,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x0a, 0x981: 0x0a, 0x982: 0x0a, 0x983: 0x0a, 0x984: 0x0a, 0x985: 0x0a, 0x986: 0x0a, 0x987: 0x0a,\n\t0x988: 0x0a, 0x989: 0x0a, 0x98a: 0x0a, 0x98b: 0x0a, 0x98c: 0x0a, 0x98d: 0x0a, 0x98e: 0x0a, 0x98f: 0x0a,\n}\n\n// idnaSparseOffset: 303 entries, 606 bytes\nvar idnaSparseOffset = []uint16{0x0, 0x8, 0x19, 0x25, 0x27, 0x2c, 0x33, 0x3e, 0x4a, 0x4e, 0x5d, 0x62, 0x6c, 0x78, 0x7e, 0x87, 0x97, 0xa6, 0xb1, 0xbe, 0xcf, 0xd9, 0xe0, 0xed, 0xfe, 0x105, 0x110, 0x11f, 0x12d, 0x137, 0x139, 0x13e, 0x141, 0x144, 0x146, 0x152, 0x15d, 0x165, 0x16b, 0x171, 0x176, 0x17b, 0x17e, 0x182, 0x188, 0x18d, 0x198, 0x1a2, 0x1a8, 0x1b9, 0x1c4, 0x1c7, 0x1cf, 0x1d2, 0x1df, 0x1e7, 0x1eb, 0x1f2, 0x1fa, 0x20a, 0x216, 0x219, 0x223, 0x22f, 0x23b, 0x247, 0x24f, 0x254, 0x261, 0x272, 0x27d, 0x282, 0x28b, 0x293, 0x299, 0x29e, 0x2a1, 0x2a5, 0x2ab, 0x2af, 0x2b3, 0x2b7, 0x2bc, 0x2c4, 0x2cb, 0x2d6, 0x2e0, 0x2e4, 0x2e7, 0x2ed, 0x2f1, 0x2f3, 0x2f6, 0x2f8, 0x2fb, 0x305, 0x308, 0x317, 0x31b, 0x31f, 0x321, 0x32a, 0x32e, 0x333, 0x338, 0x33e, 0x34e, 0x354, 0x358, 0x367, 0x36c, 0x374, 0x37e, 0x389, 0x391, 0x3a2, 0x3ab, 0x3bb, 0x3c8, 0x3d4, 0x3d9, 0x3e6, 0x3ea, 0x3ef, 0x3f1, 0x3f3, 0x3f7, 0x3f9, 0x3fd, 0x406, 0x40c, 0x410, 0x420, 0x42a, 0x42f, 0x432, 0x438, 0x43f, 0x444, 0x448, 0x44e, 0x453, 0x45c, 0x461, 0x467, 0x46e, 0x475, 0x47c, 0x480, 0x483, 0x488, 0x494, 0x49a, 0x49f, 0x4a6, 0x4ae, 0x4b3, 0x4b7, 0x4c7, 0x4ce, 0x4d2, 0x4d6, 0x4dd, 0x4df, 0x4e2, 0x4e5, 0x4e9, 0x4f2, 0x4f6, 0x4fe, 0x501, 0x509, 0x514, 0x523, 0x52f, 0x535, 0x542, 0x54e, 0x556, 0x55f, 0x56a, 0x571, 0x580, 0x58d, 0x591, 0x59e, 0x5a7, 0x5ab, 0x5ba, 0x5c2, 0x5cd, 0x5d6, 0x5dc, 0x5e4, 0x5ed, 0x5f9, 0x5fc, 0x608, 0x60b, 0x614, 0x617, 0x61c, 0x625, 0x62a, 0x637, 0x642, 0x64b, 0x656, 0x659, 0x65c, 0x666, 0x66f, 0x67b, 0x688, 0x695, 0x6a3, 0x6aa, 0x6b5, 0x6bc, 0x6c0, 0x6c4, 0x6c7, 0x6cc, 0x6cf, 0x6d2, 0x6d6, 0x6d9, 0x6de, 0x6e5, 0x6e8, 0x6f0, 0x6f4, 0x6ff, 0x702, 0x705, 0x708, 0x70e, 0x714, 0x71d, 0x720, 0x723, 0x726, 0x72e, 0x733, 0x73c, 0x73f, 0x744, 0x74e, 0x752, 0x756, 0x759, 0x75c, 0x760, 0x76f, 0x77b, 0x77f, 0x784, 0x789, 0x78e, 0x792, 0x797, 0x7a0, 0x7a5, 0x7a9, 0x7af, 0x7b5, 0x7ba, 0x7c0, 0x7c6, 0x7d0, 0x7d6, 0x7df, 0x7e2, 0x7e5, 0x7e9, 0x7ed, 0x7f1, 0x7f7, 0x7fd, 0x802, 0x805, 0x815, 0x81c, 0x820, 0x827, 0x82b, 0x831, 0x838, 0x83f, 0x845, 0x84e, 0x852, 0x860, 0x863, 0x866, 0x86a, 0x86e, 0x871, 0x875, 0x878, 0x87d, 0x87f, 0x881}\n\n// idnaSparseValues: 2180 entries, 8720 bytes\nvar idnaSparseValues = [2180]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xe105, lo: 0x80, hi: 0x96},\n\t{value: 0x0018, lo: 0x97, hi: 0x97},\n\t{value: 0xe105, lo: 0x98, hi: 0x9e},\n\t{value: 0x001f, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbf},\n\t// Block 0x1, offset 0x8\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0xe01d, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x82},\n\t{value: 0x0335, lo: 0x83, hi: 0x83},\n\t{value: 0x034d, lo: 0x84, hi: 0x84},\n\t{value: 0x0365, lo: 0x85, hi: 0x85},\n\t{value: 0xe00d, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x87},\n\t{value: 0xe00d, lo: 0x88, hi: 0x88},\n\t{value: 0x0008, lo: 0x89, hi: 0x89},\n\t{value: 0xe00d, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0x8b},\n\t{value: 0xe00d, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0x8d},\n\t{value: 0xe00d, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0xbf},\n\t// Block 0x2, offset 0x19\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x00a9, lo: 0xb0, hi: 0xb0},\n\t{value: 0x037d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x00b1, lo: 0xb2, hi: 0xb2},\n\t{value: 0x00b9, lo: 0xb3, hi: 0xb3},\n\t{value: 0x034d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0395, lo: 0xb5, hi: 0xb5},\n\t{value: 0xe1bd, lo: 0xb6, hi: 0xb6},\n\t{value: 0x00c1, lo: 0xb7, hi: 0xb7},\n\t{value: 0x00c9, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0008, lo: 0xb9, hi: 0xbf},\n\t// Block 0x3, offset 0x25\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x3308, lo: 0x80, hi: 0xbf},\n\t// Block 0x4, offset 0x27\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x03f5, lo: 0x80, hi: 0x8f},\n\t{value: 0xe105, lo: 0x90, hi: 0x9f},\n\t{value: 0x049d, lo: 0xa0, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x5, offset 0x2c\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe185, lo: 0x80, hi: 0x8f},\n\t{value: 0x0545, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x98},\n\t{value: 0x0008, lo: 0x99, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x6, offset 0x33\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0131, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x88},\n\t{value: 0x0018, lo: 0x89, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x3308, lo: 0x91, hi: 0xbd},\n\t{value: 0x0818, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7, offset 0x3e\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0818, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x82},\n\t{value: 0x0818, lo: 0x83, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x85},\n\t{value: 0x0818, lo: 0x86, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xae},\n\t{value: 0x0808, lo: 0xaf, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x8, offset 0x4a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0a08, lo: 0x80, hi: 0x87},\n\t{value: 0x0c08, lo: 0x88, hi: 0x99},\n\t{value: 0x0a08, lo: 0x9a, hi: 0xbf},\n\t// Block 0x9, offset 0x4e\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3308, lo: 0x80, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8c},\n\t{value: 0x0c08, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0a08, lo: 0x8e, hi: 0x98},\n\t{value: 0x0c08, lo: 0x99, hi: 0x9b},\n\t{value: 0x0a08, lo: 0x9c, hi: 0xaa},\n\t{value: 0x0c08, lo: 0xab, hi: 0xac},\n\t{value: 0x0a08, lo: 0xad, hi: 0xb0},\n\t{value: 0x0c08, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0a08, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0c08, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0a08, lo: 0xb5, hi: 0xb7},\n\t{value: 0x0c08, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0a08, lo: 0xba, hi: 0xbf},\n\t// Block 0xa, offset 0x5d\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xb0},\n\t{value: 0x0808, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0xb, offset 0x62\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0808, lo: 0x80, hi: 0x89},\n\t{value: 0x0a08, lo: 0x8a, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xb3},\n\t{value: 0x0808, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xb9},\n\t{value: 0x0818, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0818, lo: 0xbe, hi: 0xbf},\n\t// Block 0xc, offset 0x6c\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x99},\n\t{value: 0x0808, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0xa3},\n\t{value: 0x0808, lo: 0xa4, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa7},\n\t{value: 0x0808, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0818, lo: 0xb0, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xd, offset 0x78\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0a08, lo: 0x80, hi: 0x88},\n\t{value: 0x0808, lo: 0x89, hi: 0x89},\n\t{value: 0x3308, lo: 0x8a, hi: 0xa1},\n\t{value: 0x0840, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3308, lo: 0xa3, hi: 0xbf},\n\t// Block 0xe, offset 0x7e\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0xf, offset 0x87\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x85},\n\t{value: 0x3008, lo: 0x86, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x3008, lo: 0x8a, hi: 0x8c},\n\t{value: 0x3b08, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x97},\n\t{value: 0x0040, lo: 0x98, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x10, offset 0x97\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0008, lo: 0xaa, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbf},\n\t// Block 0x11, offset 0xa6\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0xba},\n\t{value: 0x3b08, lo: 0xbb, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x12, offset 0xb1\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0008, lo: 0xb3, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x13, offset 0xbe\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x89},\n\t{value: 0x3b08, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8e},\n\t{value: 0x3008, lo: 0x8f, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x94},\n\t{value: 0x0040, lo: 0x95, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x3008, lo: 0x98, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xb1},\n\t{value: 0x3008, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x14, offset 0xcf\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb2},\n\t{value: 0x01f1, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb9},\n\t{value: 0x3b08, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbe},\n\t{value: 0x0018, lo: 0xbf, hi: 0xbf},\n\t// Block 0x15, offset 0xd9\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x8e},\n\t{value: 0x0018, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0xbf},\n\t// Block 0x16, offset 0xe0\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x3308, lo: 0x88, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0201, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0209, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0008, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0x17, offset 0xed\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0x8b},\n\t{value: 0xe03d, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xb8},\n\t{value: 0x3308, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0018, lo: 0xba, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x18, offset 0xfe\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0018, lo: 0x8e, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0xbf},\n\t// Block 0x19, offset 0x105\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x3008, lo: 0xab, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xb0},\n\t{value: 0x3008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb7},\n\t{value: 0x3008, lo: 0xb8, hi: 0xb8},\n\t{value: 0x3b08, lo: 0xb9, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1a, offset 0x110\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x95},\n\t{value: 0x3008, lo: 0x96, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0x9d},\n\t{value: 0x3308, lo: 0x9e, hi: 0xa0},\n\t{value: 0x0008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3008, lo: 0xa2, hi: 0xa4},\n\t{value: 0x0008, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xbf},\n\t// Block 0x1b, offset 0x11f\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x3008, lo: 0x87, hi: 0x8c},\n\t{value: 0x3308, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x8e},\n\t{value: 0x3008, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x3008, lo: 0x9a, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0x1c, offset 0x12d\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0040, lo: 0x80, hi: 0x86},\n\t{value: 0x055d, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8c},\n\t{value: 0x055d, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbb},\n\t{value: 0xe105, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbf},\n\t// Block 0x1d, offset 0x137\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0018, lo: 0x80, hi: 0xbf},\n\t// Block 0x1e, offset 0x139\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xa0},\n\t{value: 0x2018, lo: 0xa1, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0x1f, offset 0x13e\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xa7},\n\t{value: 0x2018, lo: 0xa8, hi: 0xbf},\n\t// Block 0x20, offset 0x141\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x2018, lo: 0x80, hi: 0x82},\n\t{value: 0x0018, lo: 0x83, hi: 0xbf},\n\t// Block 0x21, offset 0x144\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0008, lo: 0x80, hi: 0xbf},\n\t// Block 0x22, offset 0x146\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x23, offset 0x152\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x24, offset 0x15d\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0040, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbf},\n\t// Block 0x25, offset 0x165\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbf},\n\t// Block 0x26, offset 0x16b\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x27, offset 0x171\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x28, offset 0x176\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0xe045, lo: 0xb8, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x29, offset 0x17b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xbf},\n\t// Block 0x2a, offset 0x17e\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xac},\n\t{value: 0x0018, lo: 0xad, hi: 0xae},\n\t{value: 0x0008, lo: 0xaf, hi: 0xbf},\n\t// Block 0x2b, offset 0x182\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9c},\n\t{value: 0x0040, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x2c, offset 0x188\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xb0},\n\t{value: 0x0008, lo: 0xb1, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0x2d, offset 0x18d\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x93},\n\t{value: 0x3b08, lo: 0x94, hi: 0x94},\n\t{value: 0x3808, lo: 0x95, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x9e},\n\t{value: 0x0008, lo: 0x9f, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3808, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0018, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x2e, offset 0x198\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0x2f, offset 0x1a2\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0xb3},\n\t{value: 0x3340, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3008, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x30, offset 0x1a8\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x3008, lo: 0x80, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x3008, lo: 0x87, hi: 0x88},\n\t{value: 0x3308, lo: 0x89, hi: 0x91},\n\t{value: 0x3b08, lo: 0x92, hi: 0x92},\n\t{value: 0x3308, lo: 0x93, hi: 0x93},\n\t{value: 0x0018, lo: 0x94, hi: 0x96},\n\t{value: 0x0008, lo: 0x97, hi: 0x97},\n\t{value: 0x0018, lo: 0x98, hi: 0x9b},\n\t{value: 0x0008, lo: 0x9c, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x31, offset 0x1b9\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0018, lo: 0x80, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x86},\n\t{value: 0x0218, lo: 0x87, hi: 0x87},\n\t{value: 0x0018, lo: 0x88, hi: 0x8a},\n\t{value: 0x33c0, lo: 0x8b, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8e},\n\t{value: 0x33c0, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0208, lo: 0xa0, hi: 0xbf},\n\t// Block 0x32, offset 0x1c4\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0208, lo: 0x80, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0x33, offset 0x1c7\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x0208, lo: 0x87, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0208, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x34, offset 0x1cf\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0x35, offset 0x1d2\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb8},\n\t{value: 0x3308, lo: 0xb9, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x36, offset 0x1df\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0018, lo: 0x80, hi: 0x80},\n\t{value: 0x0040, lo: 0x81, hi: 0x83},\n\t{value: 0x0018, lo: 0x84, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x37, offset 0x1e7\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x38, offset 0x1eb\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0028, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0xbf},\n\t// Block 0x39, offset 0x1f2\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x3308, lo: 0x97, hi: 0x98},\n\t{value: 0x3008, lo: 0x99, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x3a, offset 0x1fa\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0008, lo: 0x80, hi: 0x94},\n\t{value: 0x3008, lo: 0x95, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3b08, lo: 0xa0, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xac},\n\t{value: 0x3008, lo: 0xad, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3b, offset 0x20a\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0018, lo: 0xa8, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xbd},\n\t{value: 0x3318, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3c, offset 0x216\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x3308, lo: 0x80, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0xbf},\n\t// Block 0x3d, offset 0x219\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x3308, lo: 0x80, hi: 0x83},\n\t{value: 0x3008, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x3008, lo: 0xbd, hi: 0xbf},\n\t// Block 0x3e, offset 0x223\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x3808, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3f, offset 0x22f\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa9},\n\t{value: 0x3808, lo: 0xaa, hi: 0xaa},\n\t{value: 0x3b08, lo: 0xab, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xbf},\n\t// Block 0x40, offset 0x23b\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa9},\n\t{value: 0x3008, lo: 0xaa, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xae},\n\t{value: 0x3308, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3808, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbb},\n\t{value: 0x0018, lo: 0xbc, hi: 0xbf},\n\t// Block 0x41, offset 0x247\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa3},\n\t{value: 0x3008, lo: 0xa4, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbf},\n\t// Block 0x42, offset 0x24f\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0x43, offset 0x254\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x02a9, lo: 0x80, hi: 0x80},\n\t{value: 0x02b1, lo: 0x81, hi: 0x81},\n\t{value: 0x02b9, lo: 0x82, hi: 0x82},\n\t{value: 0x02c1, lo: 0x83, hi: 0x83},\n\t{value: 0x02c9, lo: 0x84, hi: 0x85},\n\t{value: 0x02d1, lo: 0x86, hi: 0x86},\n\t{value: 0x02d9, lo: 0x87, hi: 0x87},\n\t{value: 0x057d, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0x059d, lo: 0x90, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbc},\n\t{value: 0x059d, lo: 0xbd, hi: 0xbf},\n\t// Block 0x44, offset 0x261\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x3308, lo: 0x90, hi: 0x92},\n\t{value: 0x0018, lo: 0x93, hi: 0x93},\n\t{value: 0x3308, lo: 0x94, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa8},\n\t{value: 0x0008, lo: 0xa9, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xb6},\n\t{value: 0x3008, lo: 0xb7, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x45, offset 0x272\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x87},\n\t{value: 0xe045, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0xe045, lo: 0x98, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa7},\n\t{value: 0xe045, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb7},\n\t{value: 0xe045, lo: 0xb8, hi: 0xbf},\n\t// Block 0x46, offset 0x27d\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x80},\n\t{value: 0x0040, lo: 0x81, hi: 0x8f},\n\t{value: 0x3318, lo: 0x90, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xbf},\n\t// Block 0x47, offset 0x282\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x88},\n\t{value: 0x0851, lo: 0x89, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0x48, offset 0x28b\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0018, lo: 0x80, hi: 0xab},\n\t{value: 0x0859, lo: 0xac, hi: 0xac},\n\t{value: 0x0861, lo: 0xad, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xae},\n\t{value: 0x0869, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0871, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0018, lo: 0xb1, hi: 0xbf},\n\t// Block 0x49, offset 0x293\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x9f},\n\t{value: 0x0080, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xad},\n\t{value: 0x0080, lo: 0xae, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x4a, offset 0x299\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0xa8},\n\t{value: 0x09dd, lo: 0xa9, hi: 0xa9},\n\t{value: 0x09fd, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xbf},\n\t// Block 0x4b, offset 0x29e\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xbf},\n\t// Block 0x4c, offset 0x2a1\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x8b},\n\t{value: 0x0929, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0xbf},\n\t// Block 0x4d, offset 0x2a5\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0xb3},\n\t{value: 0x0e7e, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0932, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0e9e, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0x4e, offset 0x2ab\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x9b},\n\t{value: 0x0939, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0xbf},\n\t// Block 0x4f, offset 0x2af\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0x50, offset 0x2b3\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x96},\n\t{value: 0x0018, lo: 0x97, hi: 0xbf},\n\t// Block 0x51, offset 0x2b7\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0xe185, lo: 0x80, hi: 0x8f},\n\t{value: 0x03f5, lo: 0x90, hi: 0x9f},\n\t{value: 0x0ebd, lo: 0xa0, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x52, offset 0x2bc\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xac},\n\t{value: 0x0008, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x53, offset 0x2c4\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xae},\n\t{value: 0xe075, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0x54, offset 0x2cb\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x55, offset 0x2d6\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xbf},\n\t// Block 0x56, offset 0x2e0\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xae},\n\t{value: 0x0008, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x57, offset 0x2e4\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0xbf},\n\t// Block 0x58, offset 0x2e7\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9e},\n\t{value: 0x0ef5, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbf},\n\t// Block 0x59, offset 0x2ed\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xb2},\n\t{value: 0x0f15, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0x5a, offset 0x2f1\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x0f35, lo: 0x80, hi: 0xbf},\n\t// Block 0x5b, offset 0x2f3\n\t{value: 0x0020, lo: 0x02},\n\t{value: 0x1735, lo: 0x80, hi: 0x8f},\n\t{value: 0x1915, lo: 0x90, hi: 0xbf},\n\t// Block 0x5c, offset 0x2f6\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x1f15, lo: 0x80, hi: 0xbf},\n\t// Block 0x5d, offset 0x2f8\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xbf},\n\t// Block 0x5e, offset 0x2fb\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x98},\n\t{value: 0x3308, lo: 0x99, hi: 0x9a},\n\t{value: 0x096a, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0972, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0008, lo: 0x9d, hi: 0x9e},\n\t{value: 0x0979, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0008, lo: 0xa1, hi: 0xbf},\n\t// Block 0x5f, offset 0x305\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xbe},\n\t{value: 0x0981, lo: 0xbf, hi: 0xbf},\n\t// Block 0x60, offset 0x308\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0040, lo: 0x80, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xb0},\n\t{value: 0x2a35, lo: 0xb1, hi: 0xb1},\n\t{value: 0x2a55, lo: 0xb2, hi: 0xb2},\n\t{value: 0x2a75, lo: 0xb3, hi: 0xb3},\n\t{value: 0x2a95, lo: 0xb4, hi: 0xb4},\n\t{value: 0x2a75, lo: 0xb5, hi: 0xb5},\n\t{value: 0x2ab5, lo: 0xb6, hi: 0xb6},\n\t{value: 0x2ad5, lo: 0xb7, hi: 0xb7},\n\t{value: 0x2af5, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2b15, lo: 0xba, hi: 0xbb},\n\t{value: 0x2b35, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2b15, lo: 0xbe, hi: 0xbf},\n\t// Block 0x61, offset 0x317\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x62, offset 0x31b\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x098a, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0a82, lo: 0xa0, hi: 0xbf},\n\t// Block 0x63, offset 0x31f\n\t{value: 0x0008, lo: 0x01},\n\t{value: 0x0d19, lo: 0x80, hi: 0xbf},\n\t// Block 0x64, offset 0x321\n\t{value: 0x0008, lo: 0x08},\n\t{value: 0x0f19, lo: 0x80, hi: 0xb0},\n\t{value: 0x4045, lo: 0xb1, hi: 0xb1},\n\t{value: 0x10a1, lo: 0xb2, hi: 0xb3},\n\t{value: 0x4065, lo: 0xb4, hi: 0xb4},\n\t{value: 0x10b1, lo: 0xb5, hi: 0xb7},\n\t{value: 0x4085, lo: 0xb8, hi: 0xb8},\n\t{value: 0x4085, lo: 0xb9, hi: 0xb9},\n\t{value: 0x10c9, lo: 0xba, hi: 0xbf},\n\t// Block 0x65, offset 0x32a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0x66, offset 0x32e\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0x67, offset 0x333\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xbf},\n\t// Block 0x68, offset 0x338\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x0018, lo: 0xa6, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0018, lo: 0xb2, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0x69, offset 0x33e\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0x85},\n\t{value: 0x3b08, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x8a},\n\t{value: 0x3308, lo: 0x8b, hi: 0x8b},\n\t{value: 0x0008, lo: 0x8c, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0018, lo: 0xa8, hi: 0xab},\n\t{value: 0x3b08, lo: 0xac, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x6a, offset 0x34e\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0208, lo: 0x80, hi: 0xb1},\n\t{value: 0x0108, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0008, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0x6b, offset 0x354\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xbf},\n\t// Block 0x6c, offset 0x358\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3008, lo: 0x80, hi: 0x83},\n\t{value: 0x3b08, lo: 0x84, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8d},\n\t{value: 0x0018, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xba},\n\t{value: 0x0008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0018, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0x6d, offset 0x367\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x6e, offset 0x36c\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x91},\n\t{value: 0x3008, lo: 0x92, hi: 0x92},\n\t{value: 0x3808, lo: 0x93, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x6f, offset 0x374\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb9},\n\t{value: 0x3008, lo: 0xba, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x70, offset 0x37e\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3808, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x71, offset 0x389\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x72, offset 0x391\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x8b},\n\t{value: 0x3308, lo: 0x8c, hi: 0x8c},\n\t{value: 0x3008, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0018, lo: 0x9c, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x3008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x73, offset 0x3a2\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb8},\n\t{value: 0x0008, lo: 0xb9, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbf},\n\t// Block 0x74, offset 0x3ab\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x9a},\n\t{value: 0x0008, lo: 0x9b, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xaa},\n\t{value: 0x3008, lo: 0xab, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3b08, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x75, offset 0x3bb\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x88},\n\t{value: 0x0008, lo: 0x89, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x90},\n\t{value: 0x0008, lo: 0x91, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x76, offset 0x3c8\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9b},\n\t{value: 0x449d, lo: 0x9c, hi: 0x9c},\n\t{value: 0x44b5, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0941, lo: 0x9e, hi: 0x9e},\n\t{value: 0xe06d, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa8},\n\t{value: 0x13f9, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x44cd, lo: 0xb0, hi: 0xbf},\n\t// Block 0x77, offset 0x3d4\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x44ed, lo: 0x80, hi: 0x8f},\n\t{value: 0x450d, lo: 0x90, hi: 0x9f},\n\t{value: 0x452d, lo: 0xa0, hi: 0xaf},\n\t{value: 0x450d, lo: 0xb0, hi: 0xbf},\n\t// Block 0x78, offset 0x3d9\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3b08, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x79, offset 0x3e6\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7a, offset 0x3ea\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8a},\n\t{value: 0x0018, lo: 0x8b, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x7b, offset 0x3ef\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0040, lo: 0x80, hi: 0xbf},\n\t// Block 0x7c, offset 0x3f1\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x454d, lo: 0x80, hi: 0xbf},\n\t// Block 0x7d, offset 0x3f3\n\t{value: 0x0020, lo: 0x03},\n\t{value: 0x4d4d, lo: 0x80, hi: 0x94},\n\t{value: 0x4b0d, lo: 0x95, hi: 0x95},\n\t{value: 0x4fed, lo: 0x96, hi: 0xbf},\n\t// Block 0x7e, offset 0x3f7\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x552d, lo: 0x80, hi: 0xbf},\n\t// Block 0x7f, offset 0x3f9\n\t{value: 0x0020, lo: 0x03},\n\t{value: 0x5d2d, lo: 0x80, hi: 0x84},\n\t{value: 0x568d, lo: 0x85, hi: 0x85},\n\t{value: 0x5dcd, lo: 0x86, hi: 0xbf},\n\t// Block 0x80, offset 0x3fd\n\t{value: 0x0020, lo: 0x08},\n\t{value: 0x6b8d, lo: 0x80, hi: 0x8f},\n\t{value: 0x6d4d, lo: 0x90, hi: 0x90},\n\t{value: 0x6d8d, lo: 0x91, hi: 0xab},\n\t{value: 0x1401, lo: 0xac, hi: 0xac},\n\t{value: 0x70ed, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x710d, lo: 0xb0, hi: 0xbf},\n\t// Block 0x81, offset 0x406\n\t{value: 0x0020, lo: 0x05},\n\t{value: 0x730d, lo: 0x80, hi: 0xad},\n\t{value: 0x656d, lo: 0xae, hi: 0xae},\n\t{value: 0x78cd, lo: 0xaf, hi: 0xb5},\n\t{value: 0x6f8d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x79ad, lo: 0xb7, hi: 0xbf},\n\t// Block 0x82, offset 0x40c\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x1751, lo: 0x80, hi: 0x82},\n\t{value: 0x1741, lo: 0x83, hi: 0x83},\n\t{value: 0x1769, lo: 0x84, hi: 0xbf},\n\t// Block 0x83, offset 0x410\n\t{value: 0x0008, lo: 0x0f},\n\t{value: 0x1d81, lo: 0x80, hi: 0x83},\n\t{value: 0x1d99, lo: 0x84, hi: 0x85},\n\t{value: 0x1da1, lo: 0x86, hi: 0x87},\n\t{value: 0x1da9, lo: 0x88, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x1de9, lo: 0x92, hi: 0x97},\n\t{value: 0x1e11, lo: 0x98, hi: 0x9c},\n\t{value: 0x1e31, lo: 0x9d, hi: 0xb3},\n\t{value: 0x1d71, lo: 0xb4, hi: 0xb4},\n\t{value: 0x1d81, lo: 0xb5, hi: 0xb5},\n\t{value: 0x1ee9, lo: 0xb6, hi: 0xbb},\n\t{value: 0x1f09, lo: 0xbc, hi: 0xbc},\n\t{value: 0x1ef9, lo: 0xbd, hi: 0xbd},\n\t{value: 0x1f19, lo: 0xbe, hi: 0xbf},\n\t// Block 0x84, offset 0x420\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0008, lo: 0xbc, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0x85, offset 0x42a\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0xbf},\n\t// Block 0x86, offset 0x42f\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x87, offset 0x432\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0x88, offset 0x438\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x9c},\n\t{value: 0x0040, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0040, lo: 0xa1, hi: 0xbf},\n\t// Block 0x89, offset 0x43f\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x8a, offset 0x444\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x9c},\n\t{value: 0x0040, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x8b, offset 0x448\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x8c, offset 0x44e\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xac},\n\t{value: 0x0008, lo: 0xad, hi: 0xbf},\n\t// Block 0x8d, offset 0x453\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x8e, offset 0x45c\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x8f, offset 0x461\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0xbf},\n\t// Block 0x90, offset 0x467\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe145, lo: 0x80, hi: 0x87},\n\t{value: 0xe1c5, lo: 0x88, hi: 0x8f},\n\t{value: 0xe145, lo: 0x90, hi: 0x97},\n\t{value: 0x8b0d, lo: 0x98, hi: 0x9f},\n\t{value: 0x8b25, lo: 0xa0, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xbf},\n\t// Block 0x91, offset 0x46e\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x8b25, lo: 0xb0, hi: 0xb7},\n\t{value: 0x8b0d, lo: 0xb8, hi: 0xbf},\n\t// Block 0x92, offset 0x475\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe145, lo: 0x80, hi: 0x87},\n\t{value: 0xe1c5, lo: 0x88, hi: 0x8f},\n\t{value: 0xe145, lo: 0x90, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x93, offset 0x47c\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x94, offset 0x480\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x95, offset 0x483\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xbf},\n\t// Block 0x96, offset 0x488\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0808, lo: 0x80, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x87},\n\t{value: 0x0808, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0808, lo: 0x8a, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0808, lo: 0xb7, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbb},\n\t{value: 0x0808, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbe},\n\t{value: 0x0808, lo: 0xbf, hi: 0xbf},\n\t// Block 0x97, offset 0x494\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x96},\n\t{value: 0x0818, lo: 0x97, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0818, lo: 0xb7, hi: 0xbf},\n\t// Block 0x98, offset 0x49a\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xa6},\n\t{value: 0x0818, lo: 0xa7, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0x99, offset 0x49f\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0808, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xba},\n\t{value: 0x0818, lo: 0xbb, hi: 0xbf},\n\t// Block 0x9a, offset 0x4a6\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0818, lo: 0x96, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbe},\n\t{value: 0x0818, lo: 0xbf, hi: 0xbf},\n\t// Block 0x9b, offset 0x4ae\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbb},\n\t{value: 0x0818, lo: 0xbc, hi: 0xbd},\n\t{value: 0x0808, lo: 0xbe, hi: 0xbf},\n\t// Block 0x9c, offset 0x4b3\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0818, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x91},\n\t{value: 0x0818, lo: 0x92, hi: 0xbf},\n\t// Block 0x9d, offset 0x4b7\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0808, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8b},\n\t{value: 0x3308, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x94},\n\t{value: 0x0808, lo: 0x95, hi: 0x97},\n\t{value: 0x0040, lo: 0x98, hi: 0x98},\n\t{value: 0x0808, lo: 0x99, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0x9e, offset 0x4c7\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0818, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0x0818, lo: 0x90, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xbc},\n\t{value: 0x0818, lo: 0xbd, hi: 0xbf},\n\t// Block 0x9f, offset 0x4ce\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0x9c},\n\t{value: 0x0818, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0xa0, offset 0x4d2\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb8},\n\t{value: 0x0018, lo: 0xb9, hi: 0xbf},\n\t// Block 0xa1, offset 0x4d6\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0x0818, lo: 0x98, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb7},\n\t{value: 0x0818, lo: 0xb8, hi: 0xbf},\n\t// Block 0xa2, offset 0x4dd\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0808, lo: 0x80, hi: 0xbf},\n\t// Block 0xa3, offset 0x4df\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0808, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0xbf},\n\t// Block 0xa4, offset 0x4e2\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x03dd, lo: 0x80, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbf},\n\t// Block 0xa5, offset 0x4e5\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb9},\n\t{value: 0x0818, lo: 0xba, hi: 0xbf},\n\t// Block 0xa6, offset 0x4e9\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0908, lo: 0x80, hi: 0x80},\n\t{value: 0x0a08, lo: 0x81, hi: 0xa1},\n\t{value: 0x0c08, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0a08, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3308, lo: 0xa4, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0808, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xa7, offset 0x4f2\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0818, lo: 0xa0, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xa8, offset 0x4f6\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0808, lo: 0x80, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xac},\n\t{value: 0x0818, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0808, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0xa9, offset 0x4fe\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbf},\n\t// Block 0xaa, offset 0x501\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0808, lo: 0x80, hi: 0x9c},\n\t{value: 0x0818, lo: 0x9d, hi: 0xa6},\n\t{value: 0x0808, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0a08, lo: 0xb0, hi: 0xb2},\n\t{value: 0x0c08, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0a08, lo: 0xb4, hi: 0xbf},\n\t// Block 0xab, offset 0x509\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0a08, lo: 0x80, hi: 0x84},\n\t{value: 0x0808, lo: 0x85, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x90},\n\t{value: 0x0a18, lo: 0x91, hi: 0x93},\n\t{value: 0x0c18, lo: 0x94, hi: 0x94},\n\t{value: 0x0818, lo: 0x95, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xaf},\n\t{value: 0x0a08, lo: 0xb0, hi: 0xb3},\n\t{value: 0x0c08, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0a08, lo: 0xb6, hi: 0xbf},\n\t// Block 0xac, offset 0x514\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0a08, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x85},\n\t{value: 0x0818, lo: 0x86, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0xaf},\n\t{value: 0x0a08, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0808, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0a08, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0c08, lo: 0xb4, hi: 0xb6},\n\t{value: 0x0808, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0a08, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0c08, lo: 0xb9, hi: 0xba},\n\t{value: 0x0a08, lo: 0xbb, hi: 0xbc},\n\t{value: 0x0c08, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0a08, lo: 0xbe, hi: 0xbf},\n\t// Block 0xad, offset 0x523\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0808, lo: 0x80, hi: 0x80},\n\t{value: 0x0a08, lo: 0x81, hi: 0x81},\n\t{value: 0x0c08, lo: 0x82, hi: 0x83},\n\t{value: 0x0a08, lo: 0x84, hi: 0x84},\n\t{value: 0x0818, lo: 0x85, hi: 0x88},\n\t{value: 0x0c18, lo: 0x89, hi: 0x89},\n\t{value: 0x0a18, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0918, lo: 0x8b, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0xae, offset 0x52f\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x3008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbf},\n\t// Block 0xaf, offset 0x535\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x3308, lo: 0x80, hi: 0x85},\n\t{value: 0x3b08, lo: 0x86, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x91},\n\t{value: 0x0018, lo: 0x92, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x3b08, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0008, lo: 0xb1, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb0, offset 0x542\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb6},\n\t{value: 0x3008, lo: 0xb7, hi: 0xb8},\n\t{value: 0x3b08, lo: 0xb9, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0xb1, offset 0x54e\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0018, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xb2, offset 0x556\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xb2},\n\t{value: 0x3b08, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0008, lo: 0xb6, hi: 0xbf},\n\t// Block 0xb3, offset 0x55f\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0018, lo: 0x80, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x84},\n\t{value: 0x3008, lo: 0x85, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0008, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0xb4, offset 0x56a\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xbe},\n\t{value: 0x3008, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb5, offset 0x571\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3808, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x88},\n\t{value: 0x3308, lo: 0x89, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8d},\n\t{value: 0x3008, lo: 0x8e, hi: 0x8e},\n\t{value: 0x3308, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0008, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0xb6, offset 0x580\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0x92},\n\t{value: 0x0008, lo: 0x93, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xae},\n\t{value: 0x3308, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3008, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3808, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb7, offset 0x58d\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x81},\n\t{value: 0x0040, lo: 0x82, hi: 0xbf},\n\t// Block 0xb8, offset 0x591\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0008, lo: 0x9f, hi: 0xa8},\n\t{value: 0x0018, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0xb9, offset 0x59e\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x3308, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3008, lo: 0xa0, hi: 0xa2},\n\t{value: 0x3308, lo: 0xa3, hi: 0xa9},\n\t{value: 0x3b08, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xba, offset 0x5a7\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbf},\n\t// Block 0xbb, offset 0x5ab\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x3b08, lo: 0x82, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x84},\n\t{value: 0x3008, lo: 0x85, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x8a},\n\t{value: 0x0018, lo: 0x8b, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0x9d},\n\t{value: 0x3308, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0008, lo: 0x9f, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xbf},\n\t// Block 0xbc, offset 0x5ba\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb8},\n\t{value: 0x3008, lo: 0xb9, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0xbd, offset 0x5c2\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x81},\n\t{value: 0x3b08, lo: 0x82, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x85},\n\t{value: 0x0018, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xbe, offset 0x5cd\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0x3008, lo: 0xb8, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xbf, offset 0x5d6\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x9b},\n\t{value: 0x3308, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0xbf},\n\t// Block 0xc0, offset 0x5dc\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xc1, offset 0x5e4\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xbf},\n\t// Block 0xc2, offset 0x5ed\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb5},\n\t{value: 0x3808, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0018, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xc3, offset 0x5f9\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0xbf},\n\t// Block 0xc4, offset 0x5fc\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9f},\n\t{value: 0x3008, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xaa},\n\t{value: 0x3b08, lo: 0xab, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0018, lo: 0xba, hi: 0xbf},\n\t// Block 0xc5, offset 0x608\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0xbf},\n\t// Block 0xc6, offset 0x60b\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xae},\n\t{value: 0x3308, lo: 0xaf, hi: 0xb7},\n\t{value: 0x3008, lo: 0xb8, hi: 0xb8},\n\t{value: 0x3b08, lo: 0xb9, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0xc7, offset 0x614\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x049d, lo: 0xa0, hi: 0xbf},\n\t// Block 0xc8, offset 0x617\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0xc9, offset 0x61c\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3008, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x83},\n\t{value: 0x0018, lo: 0x84, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xca, offset 0x625\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xa9},\n\t{value: 0x0008, lo: 0xaa, hi: 0xbf},\n\t// Block 0xcb, offset 0x62a\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x90},\n\t{value: 0x3008, lo: 0x91, hi: 0x93},\n\t{value: 0x3308, lo: 0x94, hi: 0x97},\n\t{value: 0x0040, lo: 0x98, hi: 0x99},\n\t{value: 0x3308, lo: 0x9a, hi: 0x9b},\n\t{value: 0x3008, lo: 0x9c, hi: 0x9f},\n\t{value: 0x3b08, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x0018, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0008, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3008, lo: 0xa4, hi: 0xa4},\n\t{value: 0x0040, lo: 0xa5, hi: 0xbf},\n\t// Block 0xcc, offset 0x637\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3b08, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb8},\n\t{value: 0x3008, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xba},\n\t{value: 0x3308, lo: 0xbb, hi: 0xbe},\n\t{value: 0x0018, lo: 0xbf, hi: 0xbf},\n\t// Block 0xcd, offset 0x642\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x3b08, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x90},\n\t{value: 0x3308, lo: 0x91, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x98},\n\t{value: 0x3308, lo: 0x99, hi: 0x9b},\n\t{value: 0x0008, lo: 0x9c, hi: 0xbf},\n\t// Block 0xce, offset 0x64b\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x3308, lo: 0x8a, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x98},\n\t{value: 0x3b08, lo: 0x99, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9c},\n\t{value: 0x0008, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0xa2},\n\t{value: 0x0040, lo: 0xa3, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0xcf, offset 0x656\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0xd0, offset 0x659\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0xbf},\n\t// Block 0xd1, offset 0x65c\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xd2, offset 0x666\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xbf},\n\t// Block 0xd3, offset 0x66f\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xa9},\n\t{value: 0x3308, lo: 0xaa, hi: 0xb0},\n\t{value: 0x3008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0xd4, offset 0x67b\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0xd5, offset 0x688\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x3308, lo: 0x80, hi: 0x83},\n\t{value: 0x3b08, lo: 0x84, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0008, lo: 0xa7, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0008, lo: 0xaa, hi: 0xbf},\n\t// Block 0xd6, offset 0x695\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x3008, lo: 0x8a, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x8f},\n\t{value: 0x3308, lo: 0x90, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0x92},\n\t{value: 0x3008, lo: 0x93, hi: 0x94},\n\t{value: 0x3308, lo: 0x95, hi: 0x95},\n\t{value: 0x3008, lo: 0x96, hi: 0x96},\n\t{value: 0x3b08, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xbf},\n\t// Block 0xd7, offset 0x6a3\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0xd8, offset 0x6aa\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0xd9, offset 0x6b5\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3808, lo: 0x81, hi: 0x81},\n\t{value: 0x3b08, lo: 0x82, hi: 0x82},\n\t{value: 0x0018, lo: 0x83, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xda, offset 0x6bc\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xbf},\n\t// Block 0xdb, offset 0x6c0\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbe},\n\t{value: 0x0018, lo: 0xbf, hi: 0xbf},\n\t// Block 0xdc, offset 0x6c4\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xdd, offset 0x6c7\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0xde, offset 0x6cc\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0xbf},\n\t// Block 0xdf, offset 0x6cf\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xbf},\n\t// Block 0xe0, offset 0x6d2\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xb0},\n\t{value: 0x0018, lo: 0xb1, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbf},\n\t// Block 0xe1, offset 0x6d6\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x0340, lo: 0xb0, hi: 0xbf},\n\t// Block 0xe2, offset 0x6d9\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0xbf},\n\t// Block 0xe3, offset 0x6de\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0xe4, offset 0x6e5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xe5, offset 0x6e8\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0018, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0xe6, offset 0x6f0\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0xe7, offset 0x6f4\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0018, lo: 0x84, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0008, lo: 0xa3, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbf},\n\t// Block 0xe8, offset 0x6ff\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0xbf},\n\t// Block 0xe9, offset 0x702\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0xe105, lo: 0x80, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0xea, offset 0x705\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0xbf},\n\t// Block 0xeb, offset 0x708\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8e},\n\t{value: 0x3308, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x90},\n\t{value: 0x3008, lo: 0x91, hi: 0xbf},\n\t// Block 0xec, offset 0x70e\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x3008, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8e},\n\t{value: 0x3308, lo: 0x8f, hi: 0x92},\n\t{value: 0x0008, lo: 0x93, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0xed, offset 0x714\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa1},\n\t{value: 0x0018, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0008, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3308, lo: 0xa4, hi: 0xa4},\n\t{value: 0x0040, lo: 0xa5, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0xee, offset 0x71d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0xef, offset 0x720\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0xbf},\n\t// Block 0xf0, offset 0x723\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0xbf},\n\t// Block 0xf1, offset 0x726\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0040, lo: 0x80, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xf2, offset 0x72e\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa2},\n\t{value: 0x0040, lo: 0xa3, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbf},\n\t// Block 0xf3, offset 0x733\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x92},\n\t{value: 0x0040, lo: 0x93, hi: 0x94},\n\t{value: 0x0008, lo: 0x95, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0xa3},\n\t{value: 0x0008, lo: 0xa4, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0xf4, offset 0x73c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0xf5, offset 0x73f\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0xf6, offset 0x744\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0018, lo: 0x9c, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x03c0, lo: 0xa0, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xbf},\n\t// Block 0xf7, offset 0x74e\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3308, lo: 0x80, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xbf},\n\t// Block 0xf8, offset 0x752\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3308, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0xf9, offset 0x756\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0xbf},\n\t// Block 0xfa, offset 0x759\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0xfb, offset 0x75c\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa8},\n\t{value: 0x0018, lo: 0xa9, hi: 0xbf},\n\t// Block 0xfc, offset 0x760\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0018, lo: 0x80, hi: 0x9d},\n\t{value: 0x2379, lo: 0x9e, hi: 0x9e},\n\t{value: 0x2381, lo: 0x9f, hi: 0x9f},\n\t{value: 0x2389, lo: 0xa0, hi: 0xa0},\n\t{value: 0x2391, lo: 0xa1, hi: 0xa1},\n\t{value: 0x2399, lo: 0xa2, hi: 0xa2},\n\t{value: 0x23a1, lo: 0xa3, hi: 0xa3},\n\t{value: 0x23a9, lo: 0xa4, hi: 0xa4},\n\t{value: 0x3018, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3318, lo: 0xa7, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xac},\n\t{value: 0x3018, lo: 0xad, hi: 0xb2},\n\t{value: 0x0340, lo: 0xb3, hi: 0xba},\n\t{value: 0x3318, lo: 0xbb, hi: 0xbf},\n\t// Block 0xfd, offset 0x76f\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3318, lo: 0x80, hi: 0x82},\n\t{value: 0x0018, lo: 0x83, hi: 0x84},\n\t{value: 0x3318, lo: 0x85, hi: 0x8b},\n\t{value: 0x0018, lo: 0x8c, hi: 0xa9},\n\t{value: 0x3318, lo: 0xaa, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xba},\n\t{value: 0x23b1, lo: 0xbb, hi: 0xbb},\n\t{value: 0x23b9, lo: 0xbc, hi: 0xbc},\n\t{value: 0x23c1, lo: 0xbd, hi: 0xbd},\n\t{value: 0x23c9, lo: 0xbe, hi: 0xbe},\n\t{value: 0x23d1, lo: 0xbf, hi: 0xbf},\n\t// Block 0xfe, offset 0x77b\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x23d9, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xbf},\n\t// Block 0xff, offset 0x77f\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x81},\n\t{value: 0x3318, lo: 0x82, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0xbf},\n\t// Block 0x100, offset 0x784\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0x101, offset 0x789\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0x102, offset 0x78e\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3308, lo: 0x80, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xba},\n\t{value: 0x3308, lo: 0xbb, hi: 0xbf},\n\t// Block 0x103, offset 0x792\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x3308, lo: 0x80, hi: 0xac},\n\t{value: 0x0018, lo: 0xad, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0x104, offset 0x797\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa0},\n\t{value: 0x3308, lo: 0xa1, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0x105, offset 0x7a0\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xa4},\n\t{value: 0x0008, lo: 0xa5, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xbf},\n\t// Block 0x106, offset 0x7a5\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x8e},\n\t{value: 0x3308, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0xbf},\n\t// Block 0x107, offset 0x7a9\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0008, lo: 0xb7, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x108, offset 0x7af\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0018, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0xbf},\n\t// Block 0x109, offset 0x7b5\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xad},\n\t{value: 0x3308, lo: 0xae, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xbf},\n\t// Block 0x10a, offset 0x7ba\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbe},\n\t{value: 0x0018, lo: 0xbf, hi: 0xbf},\n\t// Block 0x10b, offset 0x7c0\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x10c, offset 0x7c6\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xac},\n\t{value: 0x0008, lo: 0xad, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x10d, offset 0x7d0\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0808, lo: 0x80, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x86},\n\t{value: 0x0818, lo: 0x87, hi: 0x8f},\n\t{value: 0x3308, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0xbf},\n\t// Block 0x10e, offset 0x7d6\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0a08, lo: 0x80, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x8a},\n\t{value: 0x0b08, lo: 0x8b, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0818, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0x10f, offset 0x7df\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0xb0},\n\t{value: 0x0818, lo: 0xb1, hi: 0xbf},\n\t// Block 0x110, offset 0x7e2\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0818, lo: 0x80, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x111, offset 0x7e5\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0818, lo: 0x81, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x112, offset 0x7e9\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0x113, offset 0x7ed\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x114, offset 0x7f1\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xb0},\n\t{value: 0x0018, lo: 0xb1, hi: 0xbf},\n\t// Block 0x115, offset 0x7f7\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x0018, lo: 0x91, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0x116, offset 0x7fd\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x8f},\n\t{value: 0x2709, lo: 0x90, hi: 0x90},\n\t{value: 0x0018, lo: 0x91, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xbf},\n\t// Block 0x117, offset 0x802\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0xa5},\n\t{value: 0x0018, lo: 0xa6, hi: 0xbf},\n\t// Block 0x118, offset 0x805\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x2889, lo: 0x80, hi: 0x80},\n\t{value: 0x2891, lo: 0x81, hi: 0x81},\n\t{value: 0x2899, lo: 0x82, hi: 0x82},\n\t{value: 0x28a1, lo: 0x83, hi: 0x83},\n\t{value: 0x28a9, lo: 0x84, hi: 0x84},\n\t{value: 0x28b1, lo: 0x85, hi: 0x85},\n\t{value: 0x28b9, lo: 0x86, hi: 0x86},\n\t{value: 0x28c1, lo: 0x87, hi: 0x87},\n\t{value: 0x28c9, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0x28d1, lo: 0x90, hi: 0x90},\n\t{value: 0x28d9, lo: 0x91, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xbf},\n\t// Block 0x119, offset 0x815\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x97},\n\t{value: 0x0040, lo: 0x98, hi: 0x9b},\n\t{value: 0x0018, lo: 0x9c, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x11a, offset 0x81c\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbf},\n\t// Block 0x11b, offset 0x820\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xbf},\n\t// Block 0x11c, offset 0x827\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0x11d, offset 0x82b\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbf},\n\t// Block 0x11e, offset 0x831\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0x11f, offset 0x838\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x120, offset 0x83f\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0018, lo: 0xbf, hi: 0xbf},\n\t// Block 0x121, offset 0x845\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8d},\n\t{value: 0x0018, lo: 0x8e, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0x122, offset 0x84e\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x92},\n\t{value: 0x0040, lo: 0x93, hi: 0x93},\n\t{value: 0x0018, lo: 0x94, hi: 0xbf},\n\t// Block 0x123, offset 0x852\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0018, lo: 0x80, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0xaf},\n\t{value: 0x06e1, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0049, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0029, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0031, lo: 0xb3, hi: 0xb3},\n\t{value: 0x06e9, lo: 0xb4, hi: 0xb4},\n\t{value: 0x06f1, lo: 0xb5, hi: 0xb5},\n\t{value: 0x06f9, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0701, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0709, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0711, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x124, offset 0x860\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0x125, offset 0x863\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x126, offset 0x866\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x127, offset 0x86a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x128, offset 0x86e\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xa0},\n\t{value: 0x0040, lo: 0xa1, hi: 0xbf},\n\t// Block 0x129, offset 0x871\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xbf},\n\t// Block 0x12a, offset 0x875\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0x12b, offset 0x878\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0340, lo: 0x81, hi: 0x81},\n\t{value: 0x0040, lo: 0x82, hi: 0x9f},\n\t{value: 0x0340, lo: 0xa0, hi: 0xbf},\n\t// Block 0x12c, offset 0x87d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0340, lo: 0x80, hi: 0xbf},\n\t// Block 0x12d, offset 0x87f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x33c0, lo: 0x80, hi: 0xbf},\n\t// Block 0x12e, offset 0x881\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x33c0, lo: 0x80, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n}\n\n// Total table size 46723 bytes (45KiB); checksum: 4CF3143A\n"
  },
  {
    "path": "vendor/golang.org/x/net/idna/tables9.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n//go:build !go1.10\n\npackage idna\n\n// UnicodeVersion is the Unicode version from which the tables in this package are derived.\nconst UnicodeVersion = \"9.0.0\"\n\nvar mappings string = \"\" + // Size: 8175 bytes\n\t\"\\x00\\x01 \\x03 ̈\\x01a\\x03 ̄\\x012\\x013\\x03 ́\\x03 ̧\\x011\\x01o\\x051⁄4\\x051⁄2\" +\n\t\"\\x053⁄4\\x03i̇\\x03l·\\x03ʼn\\x01s\\x03dž\\x03ⱥ\\x03ⱦ\\x01h\\x01j\\x01r\\x01w\\x01y\" +\n\t\"\\x03 ̆\\x03 ̇\\x03 ̊\\x03 ̨\\x03 ̃\\x03 ̋\\x01l\\x01x\\x04̈́\\x03 ι\\x01;\\x05 ̈́\" +\n\t\"\\x04եւ\\x04اٴ\\x04وٴ\\x04ۇٴ\\x04يٴ\\x06क़\\x06ख़\\x06ग़\\x06ज़\\x06ड़\\x06ढ़\\x06फ़\" +\n\t\"\\x06य़\\x06ড়\\x06ঢ়\\x06য়\\x06ਲ਼\\x06ਸ਼\\x06ਖ਼\\x06ਗ਼\\x06ਜ਼\\x06ਫ਼\\x06ଡ଼\\x06ଢ଼\" +\n\t\"\\x06ํา\\x06ໍາ\\x06ຫນ\\x06ຫມ\\x06གྷ\\x06ཌྷ\\x06དྷ\\x06བྷ\\x06ཛྷ\\x06ཀྵ\\x06ཱི\\x06ཱུ\" +\n\t\"\\x06ྲྀ\\x09ྲཱྀ\\x06ླྀ\\x09ླཱྀ\\x06ཱྀ\\x06ྒྷ\\x06ྜྷ\\x06ྡྷ\\x06ྦྷ\\x06ྫྷ\\x06ྐྵ\\x02\" +\n\t\"в\\x02д\\x02о\\x02с\\x02т\\x02ъ\\x02ѣ\\x02æ\\x01b\\x01d\\x01e\\x02ǝ\\x01g\\x01i\\x01k\" +\n\t\"\\x01m\\x01n\\x02ȣ\\x01p\\x01t\\x01u\\x02ɐ\\x02ɑ\\x02ə\\x02ɛ\\x02ɜ\\x02ŋ\\x02ɔ\\x02ɯ\" +\n\t\"\\x01v\\x02β\\x02γ\\x02δ\\x02φ\\x02χ\\x02ρ\\x02н\\x02ɒ\\x01c\\x02ɕ\\x02ð\\x01f\\x02ɟ\" +\n\t\"\\x02ɡ\\x02ɥ\\x02ɨ\\x02ɩ\\x02ɪ\\x02ʝ\\x02ɭ\\x02ʟ\\x02ɱ\\x02ɰ\\x02ɲ\\x02ɳ\\x02ɴ\\x02ɵ\" +\n\t\"\\x02ɸ\\x02ʂ\\x02ʃ\\x02ƫ\\x02ʉ\\x02ʊ\\x02ʋ\\x02ʌ\\x01z\\x02ʐ\\x02ʑ\\x02ʒ\\x02θ\\x02ss\" +\n\t\"\\x02ά\\x02έ\\x02ή\\x02ί\\x02ό\\x02ύ\\x02ώ\\x05ἀι\\x05ἁι\\x05ἂι\\x05ἃι\\x05ἄι\\x05ἅι\" +\n\t\"\\x05ἆι\\x05ἇι\\x05ἠι\\x05ἡι\\x05ἢι\\x05ἣι\\x05ἤι\\x05ἥι\\x05ἦι\\x05ἧι\\x05ὠι\\x05ὡι\" +\n\t\"\\x05ὢι\\x05ὣι\\x05ὤι\\x05ὥι\\x05ὦι\\x05ὧι\\x05ὰι\\x04αι\\x04άι\\x05ᾶι\\x02ι\\x05 ̈͂\" +\n\t\"\\x05ὴι\\x04ηι\\x04ήι\\x05ῆι\\x05 ̓̀\\x05 ̓́\\x05 ̓͂\\x02ΐ\\x05 ̔̀\\x05 ̔́\\x05 ̔͂\" +\n\t\"\\x02ΰ\\x05 ̈̀\\x01`\\x05ὼι\\x04ωι\\x04ώι\\x05ῶι\\x06′′\\x09′′′\\x06‵‵\\x09‵‵‵\\x02!\" +\n\t\"!\\x02??\\x02?!\\x02!?\\x0c′′′′\\x010\\x014\\x015\\x016\\x017\\x018\\x019\\x01+\\x01=\" +\n\t\"\\x01(\\x01)\\x02rs\\x02ħ\\x02no\\x01q\\x02sm\\x02tm\\x02ω\\x02å\\x02א\\x02ב\\x02ג\" +\n\t\"\\x02ד\\x02π\\x051⁄7\\x051⁄9\\x061⁄10\\x051⁄3\\x052⁄3\\x051⁄5\\x052⁄5\\x053⁄5\\x054\" +\n\t\"⁄5\\x051⁄6\\x055⁄6\\x051⁄8\\x053⁄8\\x055⁄8\\x057⁄8\\x041⁄\\x02ii\\x02iv\\x02vi\" +\n\t\"\\x04viii\\x02ix\\x02xi\\x050⁄3\\x06∫∫\\x09∫∫∫\\x06∮∮\\x09∮∮∮\\x0210\\x0211\\x0212\" +\n\t\"\\x0213\\x0214\\x0215\\x0216\\x0217\\x0218\\x0219\\x0220\\x04(10)\\x04(11)\\x04(12)\" +\n\t\"\\x04(13)\\x04(14)\\x04(15)\\x04(16)\\x04(17)\\x04(18)\\x04(19)\\x04(20)\\x0c∫∫∫∫\" +\n\t\"\\x02==\\x05⫝̸\\x02ɫ\\x02ɽ\\x02ȿ\\x02ɀ\\x01.\\x04 ゙\\x04 ゚\\x06より\\x06コト\\x05(ᄀ)\\x05\" +\n\t\"(ᄂ)\\x05(ᄃ)\\x05(ᄅ)\\x05(ᄆ)\\x05(ᄇ)\\x05(ᄉ)\\x05(ᄋ)\\x05(ᄌ)\\x05(ᄎ)\\x05(ᄏ)\\x05(ᄐ\" +\n\t\")\\x05(ᄑ)\\x05(ᄒ)\\x05(가)\\x05(나)\\x05(다)\\x05(라)\\x05(마)\\x05(바)\\x05(사)\\x05(아)\" +\n\t\"\\x05(자)\\x05(차)\\x05(카)\\x05(타)\\x05(파)\\x05(하)\\x05(주)\\x08(오전)\\x08(오후)\\x05(一)\" +\n\t\"\\x05(二)\\x05(三)\\x05(四)\\x05(五)\\x05(六)\\x05(七)\\x05(八)\\x05(九)\\x05(十)\\x05(月)\" +\n\t\"\\x05(火)\\x05(水)\\x05(木)\\x05(金)\\x05(土)\\x05(日)\\x05(株)\\x05(有)\\x05(社)\\x05(名)\" +\n\t\"\\x05(特)\\x05(財)\\x05(祝)\\x05(労)\\x05(代)\\x05(呼)\\x05(学)\\x05(監)\\x05(企)\\x05(資)\" +\n\t\"\\x05(協)\\x05(祭)\\x05(休)\\x05(自)\\x05(至)\\x0221\\x0222\\x0223\\x0224\\x0225\\x0226\" +\n\t\"\\x0227\\x0228\\x0229\\x0230\\x0231\\x0232\\x0233\\x0234\\x0235\\x06참고\\x06주의\\x0236\" +\n\t\"\\x0237\\x0238\\x0239\\x0240\\x0241\\x0242\\x0243\\x0244\\x0245\\x0246\\x0247\\x0248\" +\n\t\"\\x0249\\x0250\\x041月\\x042月\\x043月\\x044月\\x045月\\x046月\\x047月\\x048月\\x049月\\x0510\" +\n\t\"月\\x0511月\\x0512月\\x02hg\\x02ev\\x0cアパート\\x0cアルファ\\x0cアンペア\\x09アール\\x0cイニング\\x09\" +\n\t\"インチ\\x09ウォン\\x0fエスクード\\x0cエーカー\\x09オンス\\x09オーム\\x09カイリ\\x0cカラット\\x0cカロリー\\x09ガロ\" +\n\t\"ン\\x09ガンマ\\x06ギガ\\x09ギニー\\x0cキュリー\\x0cギルダー\\x06キロ\\x0fキログラム\\x12キロメートル\\x0fキロワッ\" +\n\t\"ト\\x09グラム\\x0fグラムトン\\x0fクルゼイロ\\x0cクローネ\\x09ケース\\x09コルナ\\x09コーポ\\x0cサイクル\\x0fサンチ\" +\n\t\"ーム\\x0cシリング\\x09センチ\\x09セント\\x09ダース\\x06デシ\\x06ドル\\x06トン\\x06ナノ\\x09ノット\\x09ハイツ\" +\n\t\"\\x0fパーセント\\x09パーツ\\x0cバーレル\\x0fピアストル\\x09ピクル\\x06ピコ\\x06ビル\\x0fファラッド\\x0cフィート\" +\n\t\"\\x0fブッシェル\\x09フラン\\x0fヘクタール\\x06ペソ\\x09ペニヒ\\x09ヘルツ\\x09ペンス\\x09ページ\\x09ベータ\\x0cポイ\" +\n\t\"ント\\x09ボルト\\x06ホン\\x09ポンド\\x09ホール\\x09ホーン\\x0cマイクロ\\x09マイル\\x09マッハ\\x09マルク\\x0fマ\" +\n\t\"ンション\\x0cミクロン\\x06ミリ\\x0fミリバール\\x06メガ\\x0cメガトン\\x0cメートル\\x09ヤード\\x09ヤール\\x09ユアン\" +\n\t\"\\x0cリットル\\x06リラ\\x09ルピー\\x0cルーブル\\x06レム\\x0fレントゲン\\x09ワット\\x040点\\x041点\\x042点\" +\n\t\"\\x043点\\x044点\\x045点\\x046点\\x047点\\x048点\\x049点\\x0510点\\x0511点\\x0512点\\x0513点\" +\n\t\"\\x0514点\\x0515点\\x0516点\\x0517点\\x0518点\\x0519点\\x0520点\\x0521点\\x0522点\\x0523点\" +\n\t\"\\x0524点\\x02da\\x02au\\x02ov\\x02pc\\x02dm\\x02iu\\x06平成\\x06昭和\\x06大正\\x06明治\\x0c株\" +\n\t\"式会社\\x02pa\\x02na\\x02ma\\x02ka\\x02kb\\x02mb\\x02gb\\x04kcal\\x02pf\\x02nf\\x02m\" +\n\t\"g\\x02kg\\x02hz\\x02ml\\x02dl\\x02kl\\x02fm\\x02nm\\x02mm\\x02cm\\x02km\\x02m2\\x02m\" +\n\t\"3\\x05m∕s\\x06m∕s2\\x07rad∕s\\x08rad∕s2\\x02ps\\x02ns\\x02ms\\x02pv\\x02nv\\x02mv\" +\n\t\"\\x02kv\\x02pw\\x02nw\\x02mw\\x02kw\\x02bq\\x02cc\\x02cd\\x06c∕kg\\x02db\\x02gy\\x02\" +\n\t\"ha\\x02hp\\x02in\\x02kk\\x02kt\\x02lm\\x02ln\\x02lx\\x02ph\\x02pr\\x02sr\\x02sv\\x02\" +\n\t\"wb\\x05v∕m\\x05a∕m\\x041日\\x042日\\x043日\\x044日\\x045日\\x046日\\x047日\\x048日\\x049日\" +\n\t\"\\x0510日\\x0511日\\x0512日\\x0513日\\x0514日\\x0515日\\x0516日\\x0517日\\x0518日\\x0519日\" +\n\t\"\\x0520日\\x0521日\\x0522日\\x0523日\\x0524日\\x0525日\\x0526日\\x0527日\\x0528日\\x0529日\" +\n\t\"\\x0530日\\x0531日\\x02ь\\x02ɦ\\x02ɬ\\x02ʞ\\x02ʇ\\x02œ\\x04𤋮\\x04𢡊\\x04𢡄\\x04𣏕\\x04𥉉\" +\n\t\"\\x04𥳐\\x04𧻓\\x02ff\\x02fi\\x02fl\\x02st\\x04մն\\x04մե\\x04մի\\x04վն\\x04մխ\\x04יִ\" +\n\t\"\\x04ײַ\\x02ע\\x02ה\\x02כ\\x02ל\\x02ם\\x02ר\\x02ת\\x04שׁ\\x04שׂ\\x06שּׁ\\x06שּׂ\\x04א\" +\n\t\"ַ\\x04אָ\\x04אּ\\x04בּ\\x04גּ\\x04דּ\\x04הּ\\x04וּ\\x04זּ\\x04טּ\\x04יּ\\x04ךּ\\x04\" +\n\t\"כּ\\x04לּ\\x04מּ\\x04נּ\\x04סּ\\x04ףּ\\x04פּ\\x04צּ\\x04קּ\\x04רּ\\x04שּ\\x04תּ\" +\n\t\"\\x04וֹ\\x04בֿ\\x04כֿ\\x04פֿ\\x04אל\\x02ٱ\\x02ٻ\\x02پ\\x02ڀ\\x02ٺ\\x02ٿ\\x02ٹ\\x02ڤ\" +\n\t\"\\x02ڦ\\x02ڄ\\x02ڃ\\x02چ\\x02ڇ\\x02ڍ\\x02ڌ\\x02ڎ\\x02ڈ\\x02ژ\\x02ڑ\\x02ک\\x02گ\\x02ڳ\" +\n\t\"\\x02ڱ\\x02ں\\x02ڻ\\x02ۀ\\x02ہ\\x02ھ\\x02ے\\x02ۓ\\x02ڭ\\x02ۇ\\x02ۆ\\x02ۈ\\x02ۋ\\x02ۅ\" +\n\t\"\\x02ۉ\\x02ې\\x02ى\\x04ئا\\x04ئە\\x04ئو\\x04ئۇ\\x04ئۆ\\x04ئۈ\\x04ئې\\x04ئى\\x02ی\\x04\" +\n\t\"ئج\\x04ئح\\x04ئم\\x04ئي\\x04بج\\x04بح\\x04بخ\\x04بم\\x04بى\\x04بي\\x04تج\\x04تح\" +\n\t\"\\x04تخ\\x04تم\\x04تى\\x04تي\\x04ثج\\x04ثم\\x04ثى\\x04ثي\\x04جح\\x04جم\\x04حج\\x04حم\" +\n\t\"\\x04خج\\x04خح\\x04خم\\x04سج\\x04سح\\x04سخ\\x04سم\\x04صح\\x04صم\\x04ضج\\x04ضح\\x04ضخ\" +\n\t\"\\x04ضم\\x04طح\\x04طم\\x04ظم\\x04عج\\x04عم\\x04غج\\x04غم\\x04فج\\x04فح\\x04فخ\\x04فم\" +\n\t\"\\x04فى\\x04في\\x04قح\\x04قم\\x04قى\\x04قي\\x04كا\\x04كج\\x04كح\\x04كخ\\x04كل\\x04كم\" +\n\t\"\\x04كى\\x04كي\\x04لج\\x04لح\\x04لخ\\x04لم\\x04لى\\x04لي\\x04مج\\x04مح\\x04مخ\\x04مم\" +\n\t\"\\x04مى\\x04مي\\x04نج\\x04نح\\x04نخ\\x04نم\\x04نى\\x04ني\\x04هج\\x04هم\\x04هى\\x04هي\" +\n\t\"\\x04يج\\x04يح\\x04يخ\\x04يم\\x04يى\\x04يي\\x04ذٰ\\x04رٰ\\x04ىٰ\\x05 ٌّ\\x05 ٍّ\\x05\" +\n\t\" َّ\\x05 ُّ\\x05 ِّ\\x05 ّٰ\\x04ئر\\x04ئز\\x04ئن\\x04بر\\x04بز\\x04بن\\x04تر\\x04تز\" +\n\t\"\\x04تن\\x04ثر\\x04ثز\\x04ثن\\x04ما\\x04نر\\x04نز\\x04نن\\x04ير\\x04يز\\x04ين\\x04ئخ\" +\n\t\"\\x04ئه\\x04به\\x04ته\\x04صخ\\x04له\\x04نه\\x04هٰ\\x04يه\\x04ثه\\x04سه\\x04شم\\x04شه\" +\n\t\"\\x06ـَّ\\x06ـُّ\\x06ـِّ\\x04طى\\x04طي\\x04عى\\x04عي\\x04غى\\x04غي\\x04سى\\x04سي\" +\n\t\"\\x04شى\\x04شي\\x04حى\\x04حي\\x04جى\\x04جي\\x04خى\\x04خي\\x04صى\\x04صي\\x04ضى\\x04ضي\" +\n\t\"\\x04شج\\x04شح\\x04شخ\\x04شر\\x04سر\\x04صر\\x04ضر\\x04اً\\x06تجم\\x06تحج\\x06تحم\" +\n\t\"\\x06تخم\\x06تمج\\x06تمح\\x06تمخ\\x06جمح\\x06حمي\\x06حمى\\x06سحج\\x06سجح\\x06سجى\" +\n\t\"\\x06سمح\\x06سمج\\x06سمم\\x06صحح\\x06صمم\\x06شحم\\x06شجي\\x06شمخ\\x06شمم\\x06ضحى\" +\n\t\"\\x06ضخم\\x06طمح\\x06طمم\\x06طمي\\x06عجم\\x06عمم\\x06عمى\\x06غمم\\x06غمي\\x06غمى\" +\n\t\"\\x06فخم\\x06قمح\\x06قمم\\x06لحم\\x06لحي\\x06لحى\\x06لجج\\x06لخم\\x06لمح\\x06محج\" +\n\t\"\\x06محم\\x06محي\\x06مجح\\x06مجم\\x06مخج\\x06مخم\\x06مجخ\\x06همج\\x06همم\\x06نحم\" +\n\t\"\\x06نحى\\x06نجم\\x06نجى\\x06نمي\\x06نمى\\x06يمم\\x06بخي\\x06تجي\\x06تجى\\x06تخي\" +\n\t\"\\x06تخى\\x06تمي\\x06تمى\\x06جمي\\x06جحى\\x06جمى\\x06سخى\\x06صحي\\x06شحي\\x06ضحي\" +\n\t\"\\x06لجي\\x06لمي\\x06يحي\\x06يجي\\x06يمي\\x06ممي\\x06قمي\\x06نحي\\x06عمي\\x06كمي\" +\n\t\"\\x06نجح\\x06مخي\\x06لجم\\x06كمم\\x06جحي\\x06حجي\\x06مجي\\x06فمي\\x06بحي\\x06سخي\" +\n\t\"\\x06نجي\\x06صلے\\x06قلے\\x08الله\\x08اكبر\\x08محمد\\x08صلعم\\x08رسول\\x08عليه\" +\n\t\"\\x08وسلم\\x06صلى!صلى الله عليه وسلم\\x0fجل جلاله\\x08ریال\\x01,\\x01:\\x01!\" +\n\t\"\\x01?\\x01_\\x01{\\x01}\\x01[\\x01]\\x01#\\x01&\\x01*\\x01-\\x01<\\x01>\\x01\\\\\\x01$\" +\n\t\"\\x01%\\x01@\\x04ـً\\x04ـَ\\x04ـُ\\x04ـِ\\x04ـّ\\x04ـْ\\x02ء\\x02آ\\x02أ\\x02ؤ\\x02إ\" +\n\t\"\\x02ئ\\x02ا\\x02ب\\x02ة\\x02ت\\x02ث\\x02ج\\x02ح\\x02خ\\x02د\\x02ذ\\x02ر\\x02ز\\x02س\" +\n\t\"\\x02ش\\x02ص\\x02ض\\x02ط\\x02ظ\\x02ع\\x02غ\\x02ف\\x02ق\\x02ك\\x02ل\\x02م\\x02ن\\x02ه\" +\n\t\"\\x02و\\x02ي\\x04لآ\\x04لأ\\x04لإ\\x04لا\\x01\\x22\\x01'\\x01/\\x01^\\x01|\\x01~\\x02¢\" +\n\t\"\\x02£\\x02¬\\x02¦\\x02¥\\x08𝅗𝅥\\x08𝅘𝅥\\x0c𝅘𝅥𝅮\\x0c𝅘𝅥𝅯\\x0c𝅘𝅥𝅰\\x0c𝅘𝅥𝅱\\x0c𝅘𝅥𝅲\\x08𝆹\" +\n\t\"𝅥\\x08𝆺𝅥\\x0c𝆹𝅥𝅮\\x0c𝆺𝅥𝅮\\x0c𝆹𝅥𝅯\\x0c𝆺𝅥𝅯\\x02ı\\x02ȷ\\x02α\\x02ε\\x02ζ\\x02η\\x02\" +\n\t\"κ\\x02λ\\x02μ\\x02ν\\x02ξ\\x02ο\\x02σ\\x02τ\\x02υ\\x02ψ\\x03∇\\x03∂\\x02ϝ\\x02ٮ\\x02ڡ\" +\n\t\"\\x02ٯ\\x020,\\x021,\\x022,\\x023,\\x024,\\x025,\\x026,\\x027,\\x028,\\x029,\\x03(a)\" +\n\t\"\\x03(b)\\x03(c)\\x03(d)\\x03(e)\\x03(f)\\x03(g)\\x03(h)\\x03(i)\\x03(j)\\x03(k)\" +\n\t\"\\x03(l)\\x03(m)\\x03(n)\\x03(o)\\x03(p)\\x03(q)\\x03(r)\\x03(s)\\x03(t)\\x03(u)\" +\n\t\"\\x03(v)\\x03(w)\\x03(x)\\x03(y)\\x03(z)\\x07〔s〕\\x02wz\\x02hv\\x02sd\\x03ppv\\x02w\" +\n\t\"c\\x02mc\\x02md\\x02dj\\x06ほか\\x06ココ\\x03サ\\x03手\\x03字\\x03双\\x03デ\\x03二\\x03多\\x03解\" +\n\t\"\\x03天\\x03交\\x03映\\x03無\\x03料\\x03前\\x03後\\x03再\\x03新\\x03初\\x03終\\x03生\\x03販\\x03声\" +\n\t\"\\x03吹\\x03演\\x03投\\x03捕\\x03一\\x03三\\x03遊\\x03左\\x03中\\x03右\\x03指\\x03走\\x03打\\x03禁\" +\n\t\"\\x03空\\x03合\\x03満\\x03有\\x03月\\x03申\\x03割\\x03営\\x03配\\x09〔本〕\\x09〔三〕\\x09〔二〕\\x09〔安\" +\n\t\"〕\\x09〔点〕\\x09〔打〕\\x09〔盗〕\\x09〔勝〕\\x09〔敗〕\\x03得\\x03可\\x03丽\\x03丸\\x03乁\\x03你\\x03\" +\n\t\"侮\\x03侻\\x03倂\\x03偺\\x03備\\x03僧\\x03像\\x03㒞\\x03免\\x03兔\\x03兤\\x03具\\x03㒹\\x03內\\x03\" +\n\t\"冗\\x03冤\\x03仌\\x03冬\\x03况\\x03凵\\x03刃\\x03㓟\\x03刻\\x03剆\\x03剷\\x03㔕\\x03勇\\x03勉\\x03\" +\n\t\"勤\\x03勺\\x03包\\x03匆\\x03北\\x03卉\\x03卑\\x03博\\x03即\\x03卽\\x03卿\\x03灰\\x03及\\x03叟\\x03\" +\n\t\"叫\\x03叱\\x03吆\\x03咞\\x03吸\\x03呈\\x03周\\x03咢\\x03哶\\x03唐\\x03啓\\x03啣\\x03善\\x03喙\\x03\" +\n\t\"喫\\x03喳\\x03嗂\\x03圖\\x03嘆\\x03圗\\x03噑\\x03噴\\x03切\\x03壮\\x03城\\x03埴\\x03堍\\x03型\\x03\" +\n\t\"堲\\x03報\\x03墬\\x03売\\x03壷\\x03夆\\x03夢\\x03奢\\x03姬\\x03娛\\x03娧\\x03姘\\x03婦\\x03㛮\\x03\" +\n\t\"嬈\\x03嬾\\x03寃\\x03寘\\x03寧\\x03寳\\x03寿\\x03将\\x03尢\\x03㞁\\x03屠\\x03屮\\x03峀\\x03岍\\x03\" +\n\t\"嵃\\x03嵮\\x03嵫\\x03嵼\\x03巡\\x03巢\\x03㠯\\x03巽\\x03帨\\x03帽\\x03幩\\x03㡢\\x03㡼\\x03庰\\x03\" +\n\t\"庳\\x03庶\\x03廊\\x03廾\\x03舁\\x03弢\\x03㣇\\x03形\\x03彫\\x03㣣\\x03徚\\x03忍\\x03志\\x03忹\\x03\" +\n\t\"悁\\x03㤺\\x03㤜\\x03悔\\x03惇\\x03慈\\x03慌\\x03慎\\x03慺\\x03憎\\x03憲\\x03憤\\x03憯\\x03懞\\x03\" +\n\t\"懲\\x03懶\\x03成\\x03戛\\x03扝\\x03抱\\x03拔\\x03捐\\x03挽\\x03拼\\x03捨\\x03掃\\x03揤\\x03搢\\x03\" +\n\t\"揅\\x03掩\\x03㨮\\x03摩\\x03摾\\x03撝\\x03摷\\x03㩬\\x03敏\\x03敬\\x03旣\\x03書\\x03晉\\x03㬙\\x03\" +\n\t\"暑\\x03㬈\\x03㫤\\x03冒\\x03冕\\x03最\\x03暜\\x03肭\\x03䏙\\x03朗\\x03望\\x03朡\\x03杞\\x03杓\\x03\" +\n\t\"㭉\\x03柺\\x03枅\\x03桒\\x03梅\\x03梎\\x03栟\\x03椔\\x03㮝\\x03楂\\x03榣\\x03槪\\x03檨\\x03櫛\\x03\" +\n\t\"㰘\\x03次\\x03歔\\x03㱎\\x03歲\\x03殟\\x03殺\\x03殻\\x03汎\\x03沿\\x03泍\\x03汧\\x03洖\\x03派\\x03\" +\n\t\"海\\x03流\\x03浩\\x03浸\\x03涅\\x03洴\\x03港\\x03湮\\x03㴳\\x03滋\\x03滇\\x03淹\\x03潮\\x03濆\\x03\" +\n\t\"瀹\\x03瀞\\x03瀛\\x03㶖\\x03灊\\x03災\\x03灷\\x03炭\\x03煅\\x03熜\\x03爨\\x03爵\\x03牐\\x03犀\\x03\" +\n\t\"犕\\x03獺\\x03王\\x03㺬\\x03玥\\x03㺸\\x03瑇\\x03瑜\\x03瑱\\x03璅\\x03瓊\\x03㼛\\x03甤\\x03甾\\x03\" +\n\t\"異\\x03瘐\\x03㿼\\x03䀈\\x03直\\x03眞\\x03真\\x03睊\\x03䀹\\x03瞋\\x03䁆\\x03䂖\\x03硎\\x03碌\\x03\" +\n\t\"磌\\x03䃣\\x03祖\\x03福\\x03秫\\x03䄯\\x03穀\\x03穊\\x03穏\\x03䈂\\x03篆\\x03築\\x03䈧\\x03糒\\x03\" +\n\t\"䊠\\x03糨\\x03糣\\x03紀\\x03絣\\x03䌁\\x03緇\\x03縂\\x03繅\\x03䌴\\x03䍙\\x03罺\\x03羕\\x03翺\\x03\" +\n\t\"者\\x03聠\\x03聰\\x03䏕\\x03育\\x03脃\\x03䐋\\x03脾\\x03媵\\x03舄\\x03辞\\x03䑫\\x03芑\\x03芋\\x03\" +\n\t\"芝\\x03劳\\x03花\\x03芳\\x03芽\\x03苦\\x03若\\x03茝\\x03荣\\x03莭\\x03茣\\x03莽\\x03菧\\x03著\\x03\" +\n\t\"荓\\x03菊\\x03菌\\x03菜\\x03䔫\\x03蓱\\x03蓳\\x03蔖\\x03蕤\\x03䕝\\x03䕡\\x03䕫\\x03虐\\x03虜\\x03\" +\n\t\"虧\\x03虩\\x03蚩\\x03蚈\\x03蜎\\x03蛢\\x03蝹\\x03蜨\\x03蝫\\x03螆\\x03蟡\\x03蠁\\x03䗹\\x03衠\\x03\" +\n\t\"衣\\x03裗\\x03裞\\x03䘵\\x03裺\\x03㒻\\x03䚾\\x03䛇\\x03誠\\x03諭\\x03變\\x03豕\\x03貫\\x03賁\\x03\" +\n\t\"贛\\x03起\\x03跋\\x03趼\\x03跰\\x03軔\\x03輸\\x03邔\\x03郱\\x03鄑\\x03鄛\\x03鈸\\x03鋗\\x03鋘\\x03\" +\n\t\"鉼\\x03鏹\\x03鐕\\x03開\\x03䦕\\x03閷\\x03䧦\\x03雃\\x03嶲\\x03霣\\x03䩮\\x03䩶\\x03韠\\x03䪲\\x03\" +\n\t\"頋\\x03頩\\x03飢\\x03䬳\\x03餩\\x03馧\\x03駂\\x03駾\\x03䯎\\x03鬒\\x03鱀\\x03鳽\\x03䳎\\x03䳭\\x03\" +\n\t\"鵧\\x03䳸\\x03麻\\x03䵖\\x03黹\\x03黾\\x03鼅\\x03鼏\\x03鼖\\x03鼻\"\n\nvar xorData string = \"\" + // Size: 4855 bytes\n\t\"\\x02\\x0c\\x09\\x02\\xb0\\xec\\x02\\xad\\xd8\\x02\\xad\\xd9\\x02\\x06\\x07\\x02\\x0f\\x12\" +\n\t\"\\x02\\x0f\\x1f\\x02\\x0f\\x1d\\x02\\x01\\x13\\x02\\x0f\\x16\\x02\\x0f\\x0b\\x02\\x0f3\" +\n\t\"\\x02\\x0f7\\x02\\x0f?\\x02\\x0f/\\x02\\x0f*\\x02\\x0c&\\x02\\x0c*\\x02\\x0c;\\x02\\x0c9\" +\n\t\"\\x02\\x0c%\\x02\\xab\\xed\\x02\\xab\\xe2\\x02\\xab\\xe3\\x02\\xa9\\xe0\\x02\\xa9\\xe1\" +\n\t\"\\x02\\xa9\\xe6\\x02\\xa3\\xcb\\x02\\xa3\\xc8\\x02\\xa3\\xc9\\x02\\x01#\\x02\\x01\\x08\" +\n\t\"\\x02\\x0e>\\x02\\x0e'\\x02\\x0f\\x03\\x02\\x03\\x0d\\x02\\x03\\x09\\x02\\x03\\x17\\x02\" +\n\t\"\\x03\\x0e\\x02\\x02\\x03\\x02\\x011\\x02\\x01\\x00\\x02\\x01\\x10\\x02\\x03<\\x02\\x07\" +\n\t\"\\x0d\\x02\\x02\\x0c\\x02\\x0c0\\x02\\x01\\x03\\x02\\x01\\x01\\x02\\x01 \\x02\\x01\\x22\" +\n\t\"\\x02\\x01)\\x02\\x01\\x0a\\x02\\x01\\x0c\\x02\\x02\\x06\\x02\\x02\\x02\\x02\\x03\\x10\" +\n\t\"\\x03\\x037 \\x03\\x0b+\\x03\\x02\\x01\\x04\\x02\\x01\\x02\\x02\\x019\\x02\\x03\\x1c\\x02\" +\n\t\"\\x02$\\x03\\x80p$\\x02\\x03:\\x02\\x03\\x0a\\x03\\xc1r.\\x03\\xc1r,\\x03\\xc1r\\x02\" +\n\t\"\\x02\\x02:\\x02\\x02>\\x02\\x02,\\x02\\x02\\x10\\x02\\x02\\x00\\x03\\xc1s<\\x03\\xc1s*\" +\n\t\"\\x03\\xc2L$\\x03\\xc2L;\\x02\\x09)\\x02\\x0a\\x19\\x03\\x83\\xab\\xe3\\x03\\x83\\xab\" +\n\t\"\\xf2\\x03 4\\xe0\\x03\\x81\\xab\\xea\\x03\\x81\\xab\\xf3\\x03 4\\xef\\x03\\x96\\xe1\\xcd\" +\n\t\"\\x03\\x84\\xe5\\xc3\\x02\\x0d\\x11\\x03\\x8b\\xec\\xcb\\x03\\x94\\xec\\xcf\\x03\\x9a\\xec\" +\n\t\"\\xc2\\x03\\x8b\\xec\\xdb\\x03\\x94\\xec\\xdf\\x03\\x9a\\xec\\xd2\\x03\\x01\\x0c!\\x03\" +\n\t\"\\x01\\x0c#\\x03ʠ\\x9d\\x03ʣ\\x9c\\x03ʢ\\x9f\\x03ʥ\\x9e\\x03ʤ\\x91\\x03ʧ\\x90\\x03ʦ\\x93\" +\n\t\"\\x03ʩ\\x92\\x03ʨ\\x95\\x03\\xca\\xf3\\xb5\\x03\\xca\\xf0\\xb4\\x03\\xca\\xf1\\xb7\\x03\" +\n\t\"\\xca\\xf6\\xb6\\x03\\xca\\xf7\\x89\\x03\\xca\\xf4\\x88\\x03\\xca\\xf5\\x8b\\x03\\xca\\xfa\" +\n\t\"\\x8a\\x03\\xca\\xfb\\x8d\\x03\\xca\\xf8\\x8c\\x03\\xca\\xf9\\x8f\\x03\\xca\\xfe\\x8e\\x03\" +\n\t\"\\xca\\xff\\x81\\x03\\xca\\xfc\\x80\\x03\\xca\\xfd\\x83\\x03\\xca\\xe2\\x82\\x03\\xca\\xe3\" +\n\t\"\\x85\\x03\\xca\\xe0\\x84\\x03\\xca\\xe1\\x87\\x03\\xca\\xe6\\x86\\x03\\xca\\xe7\\x99\\x03\" +\n\t\"\\xca\\xe4\\x98\\x03\\xca\\xe5\\x9b\\x03\\xca\\xea\\x9a\\x03\\xca\\xeb\\x9d\\x03\\xca\\xe8\" +\n\t\"\\x9c\\x03ؓ\\x89\\x03ߔ\\x8b\\x02\\x010\\x03\\x03\\x04\\x1e\\x03\\x04\\x15\\x12\\x03\\x0b\" +\n\t\"\\x05,\\x03\\x06\\x04\\x00\\x03\\x06\\x04)\\x03\\x06\\x044\\x03\\x06\\x04<\\x03\\x06\\x05\" +\n\t\"\\x1d\\x03\\x06\\x06\\x00\\x03\\x06\\x06\\x0a\\x03\\x06\\x06'\\x03\\x06\\x062\\x03\\x0786\" +\n\t\"\\x03\\x079/\\x03\\x079 \\x03\\x07:\\x0e\\x03\\x07:\\x1b\\x03\\x07:%\\x03\\x07;/\\x03\" +\n\t\"\\x07;%\\x03\\x074\\x11\\x03\\x076\\x09\\x03\\x077*\\x03\\x070\\x01\\x03\\x070\\x0f\\x03\" +\n\t\"\\x070.\\x03\\x071\\x16\\x03\\x071\\x04\\x03\\x0710\\x03\\x072\\x18\\x03\\x072-\\x03\" +\n\t\"\\x073\\x14\\x03\\x073>\\x03\\x07'\\x09\\x03\\x07 \\x00\\x03\\x07\\x1f\\x0b\\x03\\x07\" +\n\t\"\\x18#\\x03\\x07\\x18(\\x03\\x07\\x186\\x03\\x07\\x18\\x03\\x03\\x07\\x19\\x16\\x03\\x07\" +\n\t\"\\x116\\x03\\x07\\x12'\\x03\\x07\\x13\\x10\\x03\\x07\\x0c&\\x03\\x07\\x0c\\x08\\x03\\x07\" +\n\t\"\\x0c\\x13\\x03\\x07\\x0d\\x02\\x03\\x07\\x0d\\x1c\\x03\\x07\\x0b5\\x03\\x07\\x0b\\x0a\" +\n\t\"\\x03\\x07\\x0b\\x01\\x03\\x07\\x0b\\x0f\\x03\\x07\\x05\\x00\\x03\\x07\\x05\\x09\\x03\\x07\" +\n\t\"\\x05\\x0b\\x03\\x07\\x07\\x01\\x03\\x07\\x07\\x08\\x03\\x07\\x00<\\x03\\x07\\x00+\\x03\" +\n\t\"\\x07\\x01)\\x03\\x07\\x01\\x1b\\x03\\x07\\x01\\x08\\x03\\x07\\x03?\\x03\\x0445\\x03\\x04\" +\n\t\"4\\x08\\x03\\x0454\\x03\\x04)/\\x03\\x04)5\\x03\\x04+\\x05\\x03\\x04+\\x14\\x03\\x04+ \" +\n\t\"\\x03\\x04+<\\x03\\x04*&\\x03\\x04*\\x22\\x03\\x04&8\\x03\\x04!\\x01\\x03\\x04!\\x22\" +\n\t\"\\x03\\x04\\x11+\\x03\\x04\\x10.\\x03\\x04\\x104\\x03\\x04\\x13=\\x03\\x04\\x12\\x04\\x03\" +\n\t\"\\x04\\x12\\x0a\\x03\\x04\\x0d\\x1d\\x03\\x04\\x0d\\x07\\x03\\x04\\x0d \\x03\\x05<>\\x03\" +\n\t\"\\x055<\\x03\\x055!\\x03\\x055#\\x03\\x055&\\x03\\x054\\x1d\\x03\\x054\\x02\\x03\\x054\" +\n\t\"\\x07\\x03\\x0571\\x03\\x053\\x1a\\x03\\x053\\x16\\x03\\x05.<\\x03\\x05.\\x07\\x03\\x05)\" +\n\t\":\\x03\\x05)<\\x03\\x05)\\x0c\\x03\\x05)\\x15\\x03\\x05+-\\x03\\x05+5\\x03\\x05$\\x1e\" +\n\t\"\\x03\\x05$\\x14\\x03\\x05'\\x04\\x03\\x05'\\x14\\x03\\x05&\\x02\\x03\\x05\\x226\\x03\" +\n\t\"\\x05\\x22\\x0c\\x03\\x05\\x22\\x1c\\x03\\x05\\x19\\x0a\\x03\\x05\\x1b\\x09\\x03\\x05\\x1b\" +\n\t\"\\x0c\\x03\\x05\\x14\\x07\\x03\\x05\\x16?\\x03\\x05\\x16\\x0c\\x03\\x05\\x0c\\x05\\x03\" +\n\t\"\\x05\\x0e\\x0f\\x03\\x05\\x01\\x0e\\x03\\x05\\x00(\\x03\\x05\\x030\\x03\\x05\\x03\\x06\" +\n\t\"\\x03\\x0a==\\x03\\x0a=1\\x03\\x0a=,\\x03\\x0a=\\x0c\\x03\\x0a??\\x03\\x0a<\\x08\\x03\" +\n\t\"\\x0a9!\\x03\\x0a9)\\x03\\x0a97\\x03\\x0a99\\x03\\x0a6\\x0a\\x03\\x0a6\\x1c\\x03\\x0a6\" +\n\t\"\\x17\\x03\\x0a7'\\x03\\x0a78\\x03\\x0a73\\x03\\x0a'\\x01\\x03\\x0a'&\\x03\\x0a\\x1f\" +\n\t\"\\x0e\\x03\\x0a\\x1f\\x03\\x03\\x0a\\x1f3\\x03\\x0a\\x1b/\\x03\\x0a\\x18\\x19\\x03\\x0a\" +\n\t\"\\x19\\x01\\x03\\x0a\\x16\\x14\\x03\\x0a\\x0e\\x22\\x03\\x0a\\x0f\\x10\\x03\\x0a\\x0f\\x02\" +\n\t\"\\x03\\x0a\\x0f \\x03\\x0a\\x0c\\x04\\x03\\x0a\\x0b>\\x03\\x0a\\x0b+\\x03\\x0a\\x08/\\x03\" +\n\t\"\\x0a\\x046\\x03\\x0a\\x05\\x14\\x03\\x0a\\x00\\x04\\x03\\x0a\\x00\\x10\\x03\\x0a\\x00\" +\n\t\"\\x14\\x03\\x0b<3\\x03\\x0b;*\\x03\\x0b9\\x22\\x03\\x0b9)\\x03\\x0b97\\x03\\x0b+\\x10\" +\n\t\"\\x03\\x0b((\\x03\\x0b&5\\x03\\x0b$\\x1c\\x03\\x0b$\\x12\\x03\\x0b%\\x04\\x03\\x0b#<\" +\n\t\"\\x03\\x0b#0\\x03\\x0b#\\x0d\\x03\\x0b#\\x19\\x03\\x0b!:\\x03\\x0b!\\x1f\\x03\\x0b!\\x00\" +\n\t\"\\x03\\x0b\\x1e5\\x03\\x0b\\x1c\\x1d\\x03\\x0b\\x1d-\\x03\\x0b\\x1d(\\x03\\x0b\\x18.\\x03\" +\n\t\"\\x0b\\x18 \\x03\\x0b\\x18\\x16\\x03\\x0b\\x14\\x13\\x03\\x0b\\x15$\\x03\\x0b\\x15\\x22\" +\n\t\"\\x03\\x0b\\x12\\x1b\\x03\\x0b\\x12\\x10\\x03\\x0b\\x132\\x03\\x0b\\x13=\\x03\\x0b\\x12\" +\n\t\"\\x18\\x03\\x0b\\x0c&\\x03\\x0b\\x061\\x03\\x0b\\x06:\\x03\\x0b\\x05#\\x03\\x0b\\x05<\" +\n\t\"\\x03\\x0b\\x04\\x0b\\x03\\x0b\\x04\\x04\\x03\\x0b\\x04\\x1b\\x03\\x0b\\x042\\x03\\x0b\" +\n\t\"\\x041\\x03\\x0b\\x03\\x03\\x03\\x0b\\x03\\x1d\\x03\\x0b\\x03/\\x03\\x0b\\x03+\\x03\\x0b\" +\n\t\"\\x02\\x1b\\x03\\x0b\\x02\\x00\\x03\\x0b\\x01\\x1e\\x03\\x0b\\x01\\x08\\x03\\x0b\\x015\" +\n\t\"\\x03\\x06\\x0d9\\x03\\x06\\x0d=\\x03\\x06\\x0d?\\x03\\x02\\x001\\x03\\x02\\x003\\x03\" +\n\t\"\\x02\\x02\\x19\\x03\\x02\\x006\\x03\\x02\\x02\\x1b\\x03\\x02\\x004\\x03\\x02\\x00<\\x03\" +\n\t\"\\x02\\x02\\x0a\\x03\\x02\\x02\\x0e\\x03\\x02\\x01\\x1a\\x03\\x02\\x01\\x07\\x03\\x02\\x01\" +\n\t\"\\x05\\x03\\x02\\x01\\x0b\\x03\\x02\\x01%\\x03\\x02\\x01\\x0c\\x03\\x02\\x01\\x04\\x03\" +\n\t\"\\x02\\x01\\x1c\\x03\\x02\\x00.\\x03\\x02\\x002\\x03\\x02\\x00>\\x03\\x02\\x00\\x12\\x03\" +\n\t\"\\x02\\x00\\x16\\x03\\x02\\x011\\x03\\x02\\x013\\x03\\x02\\x02 \\x03\\x02\\x02%\\x03\\x02\" +\n\t\"\\x02$\\x03\\x02\\x028\\x03\\x02\\x02;\\x03\\x02\\x024\\x03\\x02\\x012\\x03\\x02\\x022\" +\n\t\"\\x03\\x02\\x02/\\x03\\x02\\x01,\\x03\\x02\\x01\\x13\\x03\\x02\\x01\\x16\\x03\\x02\\x01\" +\n\t\"\\x11\\x03\\x02\\x01\\x1e\\x03\\x02\\x01\\x15\\x03\\x02\\x01\\x17\\x03\\x02\\x01\\x0f\\x03\" +\n\t\"\\x02\\x01\\x08\\x03\\x02\\x00?\\x03\\x02\\x03\\x07\\x03\\x02\\x03\\x0d\\x03\\x02\\x03\" +\n\t\"\\x13\\x03\\x02\\x03\\x1d\\x03\\x02\\x03\\x1f\\x03\\x02\\x00\\x03\\x03\\x02\\x00\\x0d\\x03\" +\n\t\"\\x02\\x00\\x01\\x03\\x02\\x00\\x1b\\x03\\x02\\x00\\x19\\x03\\x02\\x00\\x18\\x03\\x02\\x00\" +\n\t\"\\x13\\x03\\x02\\x00/\\x03\\x07>\\x12\\x03\\x07<\\x1f\\x03\\x07>\\x1d\\x03\\x06\\x1d\\x0e\" +\n\t\"\\x03\\x07>\\x1c\\x03\\x07>:\\x03\\x07>\\x13\\x03\\x04\\x12+\\x03\\x07?\\x03\\x03\\x07>\" +\n\t\"\\x02\\x03\\x06\\x224\\x03\\x06\\x1a.\\x03\\x07<%\\x03\\x06\\x1c\\x0b\\x03\\x0609\\x03\" +\n\t\"\\x05\\x1f\\x01\\x03\\x04'\\x08\\x03\\x93\\xfd\\xf5\\x03\\x02\\x0d \\x03\\x02\\x0d#\\x03\" +\n\t\"\\x02\\x0d!\\x03\\x02\\x0d&\\x03\\x02\\x0d\\x22\\x03\\x02\\x0d/\\x03\\x02\\x0d,\\x03\\x02\" +\n\t\"\\x0d$\\x03\\x02\\x0d'\\x03\\x02\\x0d%\\x03\\x02\\x0d;\\x03\\x02\\x0d=\\x03\\x02\\x0d?\" +\n\t\"\\x03\\x099.\\x03\\x08\\x0b7\\x03\\x08\\x02\\x14\\x03\\x08\\x14\\x0d\\x03\\x08.:\\x03\" +\n\t\"\\x089'\\x03\\x0f\\x0b\\x18\\x03\\x0f\\x1c1\\x03\\x0f\\x17&\\x03\\x0f9\\x1f\\x03\\x0f0\" +\n\t\"\\x0c\\x03\\x0e\\x0a9\\x03\\x0e\\x056\\x03\\x0e\\x1c#\\x03\\x0f\\x13\\x0e\\x03\\x072\\x00\" +\n\t\"\\x03\\x070\\x0d\\x03\\x072\\x0b\\x03\\x06\\x11\\x18\\x03\\x070\\x10\\x03\\x06\\x0f(\\x03\" +\n\t\"\\x072\\x05\\x03\\x06\\x0f,\\x03\\x073\\x15\\x03\\x06\\x07\\x08\\x03\\x05\\x16\\x02\\x03\" +\n\t\"\\x04\\x0b \\x03\\x05:8\\x03\\x05\\x16%\\x03\\x0a\\x0d\\x1f\\x03\\x06\\x16\\x10\\x03\\x05\" +\n\t\"\\x1d5\\x03\\x05*;\\x03\\x05\\x16\\x1b\\x03\\x04.-\\x03\\x06\\x1a\\x19\\x03\\x04\\x03,\" +\n\t\"\\x03\\x0b87\\x03\\x04/\\x0a\\x03\\x06\\x00,\\x03\\x04-\\x01\\x03\\x04\\x1e-\\x03\\x06/(\" +\n\t\"\\x03\\x0a\\x0b5\\x03\\x06\\x0e7\\x03\\x06\\x07.\\x03\\x0597\\x03\\x0a*%\\x03\\x0760\" +\n\t\"\\x03\\x06\\x0c;\\x03\\x05'\\x00\\x03\\x072.\\x03\\x072\\x08\\x03\\x06=\\x01\\x03\\x06\" +\n\t\"\\x05\\x1b\\x03\\x06\\x06\\x12\\x03\\x06$=\\x03\\x06'\\x0d\\x03\\x04\\x11\\x0f\\x03\\x076\" +\n\t\",\\x03\\x06\\x07;\\x03\\x06.,\\x03\\x86\\xf9\\xea\\x03\\x8f\\xff\\xeb\\x02\\x092\\x02\" +\n\t\"\\x095\\x02\\x094\\x02\\x09;\\x02\\x09>\\x02\\x098\\x02\\x09*\\x02\\x09/\\x02\\x09,\\x02\" +\n\t\"\\x09%\\x02\\x09&\\x02\\x09#\\x02\\x09 \\x02\\x08!\\x02\\x08%\\x02\\x08$\\x02\\x08+\\x02\" +\n\t\"\\x08.\\x02\\x08*\\x02\\x08&\\x02\\x088\\x02\\x08>\\x02\\x084\\x02\\x086\\x02\\x080\\x02\" +\n\t\"\\x08\\x10\\x02\\x08\\x17\\x02\\x08\\x12\\x02\\x08\\x1d\\x02\\x08\\x1f\\x02\\x08\\x13\\x02\" +\n\t\"\\x08\\x15\\x02\\x08\\x14\\x02\\x08\\x0c\\x03\\x8b\\xfd\\xd0\\x03\\x81\\xec\\xc6\\x03\\x87\" +\n\t\"\\xe0\\x8a\\x03-2\\xe3\\x03\\x80\\xef\\xe4\\x03-2\\xea\\x03\\x88\\xe6\\xeb\\x03\\x8e\\xe6\" +\n\t\"\\xe8\\x03\\x84\\xe6\\xe9\\x03\\x97\\xe6\\xee\\x03-2\\xf9\\x03-2\\xf6\\x03\\x8e\\xe3\\xad\" +\n\t\"\\x03\\x80\\xe3\\x92\\x03\\x88\\xe3\\x90\\x03\\x8e\\xe3\\x90\\x03\\x80\\xe3\\x97\\x03\\x88\" +\n\t\"\\xe3\\x95\\x03\\x88\\xfe\\xcb\\x03\\x8e\\xfe\\xca\\x03\\x84\\xfe\\xcd\\x03\\x91\\xef\\xc9\" +\n\t\"\\x03-2\\xc1\\x03-2\\xc0\\x03-2\\xcb\\x03\\x88@\\x09\\x03\\x8e@\\x08\\x03\\x8f\\xe0\\xf5\" +\n\t\"\\x03\\x8e\\xe6\\xf9\\x03\\x8e\\xe0\\xfa\\x03\\x93\\xff\\xf4\\x03\\x84\\xee\\xd3\\x03\\x0b\" +\n\t\"(\\x04\\x023 \\x021;\\x02\\x01*\\x03\\x0b#\\x10\\x03\\x0b 0\\x03\\x0b!\\x10\\x03\\x0b!0\" +\n\t\"\\x03\\x07\\x15\\x08\\x03\\x09?5\\x03\\x07\\x1f\\x08\\x03\\x07\\x17\\x0b\\x03\\x09\\x1f\" +\n\t\"\\x15\\x03\\x0b\\x1c7\\x03\\x0a+#\\x03\\x06\\x1a\\x1b\\x03\\x06\\x1a\\x14\\x03\\x0a\\x01\" +\n\t\"\\x18\\x03\\x06#\\x1b\\x03\\x0a2\\x0c\\x03\\x0a\\x01\\x04\\x03\\x09#;\\x03\\x08='\\x03\" +\n\t\"\\x08\\x1a\\x0a\\x03\\x07</\\x03\\x07:+\\x03\\x07\\x07*\\x03\\x06&\\x1c\\x03\\x09\\x0c\" +\n\t\"\\x16\\x03\\x09\\x10\\x0e\\x03\\x08'\\x0f\\x03\\x08+\\x09\\x03\\x074%\\x03\\x06!3\\x03\" +\n\t\"\\x06\\x03+\\x03\\x0b\\x1e\\x19\\x03\\x0a))\\x03\\x09\\x08\\x19\\x03\\x08,\\x05\\x03\\x07\" +\n\t\"<2\\x03\\x06\\x1c>\\x03\\x0a\\x111\\x03\\x09\\x1b\\x09\\x03\\x073.\\x03\\x07\\x01\\x00\" +\n\t\"\\x03\\x09/,\\x03\\x07#>\\x03\\x07\\x048\\x03\\x0a\\x1f\\x22\\x03\\x098>\\x03\\x09\\x11\" +\n\t\"\\x00\\x03\\x08/\\x17\\x03\\x06'\\x22\\x03\\x0b\\x1a+\\x03\\x0a\\x22\\x19\\x03\\x0a/1\" +\n\t\"\\x03\\x0974\\x03\\x09\\x0f\\x22\\x03\\x08,\\x22\\x03\\x08?\\x14\\x03\\x07$5\\x03\\x07<3\" +\n\t\"\\x03\\x07=*\\x03\\x07\\x13\\x18\\x03\\x068\\x0a\\x03\\x06\\x09\\x16\\x03\\x06\\x13\\x00\" +\n\t\"\\x03\\x08\\x067\\x03\\x08\\x01\\x03\\x03\\x08\\x12\\x1d\\x03\\x07+7\\x03\\x06(;\\x03\" +\n\t\"\\x06\\x1c?\\x03\\x07\\x0e\\x17\\x03\\x0a\\x06\\x1d\\x03\\x0a\\x19\\x07\\x03\\x08\\x14$\" +\n\t\"\\x03\\x07$;\\x03\\x08,$\\x03\\x08\\x06\\x0d\\x03\\x07\\x16\\x0a\\x03\\x06>>\\x03\\x0a\" +\n\t\"\\x06\\x12\\x03\\x0a\\x14)\\x03\\x09\\x0d\\x1f\\x03\\x09\\x12\\x17\\x03\\x09\\x19\\x01\" +\n\t\"\\x03\\x08\\x11 \\x03\\x08\\x1d'\\x03\\x06<\\x1a\\x03\\x0a.\\x00\\x03\\x07'\\x18\\x03\" +\n\t\"\\x0a\\x22\\x08\\x03\\x08\\x0d\\x0a\\x03\\x08\\x13)\\x03\\x07*)\\x03\\x06<,\\x03\\x07\" +\n\t\"\\x0b\\x1a\\x03\\x09.\\x14\\x03\\x09\\x0d\\x1e\\x03\\x07\\x0e#\\x03\\x0b\\x1d'\\x03\\x0a\" +\n\t\"\\x0a8\\x03\\x09%2\\x03\\x08+&\\x03\\x080\\x12\\x03\\x0a)4\\x03\\x08\\x06\\x1f\\x03\\x0b\" +\n\t\"\\x1b\\x1a\\x03\\x0a\\x1b\\x0f\\x03\\x0b\\x1d*\\x03\\x09\\x16$\\x03\\x090\\x11\\x03\\x08\" +\n\t\"\\x11\\x08\\x03\\x0a*(\\x03\\x0a\\x042\\x03\\x089,\\x03\\x074'\\x03\\x07\\x0f\\x05\\x03\" +\n\t\"\\x09\\x0b\\x0a\\x03\\x07\\x1b\\x01\\x03\\x09\\x17:\\x03\\x09.\\x0d\\x03\\x07.\\x11\\x03\" +\n\t\"\\x09+\\x15\\x03\\x080\\x13\\x03\\x0b\\x1f\\x19\\x03\\x0a \\x11\\x03\\x0a\\x220\\x03\\x09\" +\n\t\"\\x07;\\x03\\x08\\x16\\x1c\\x03\\x07,\\x13\\x03\\x07\\x0e/\\x03\\x06\\x221\\x03\\x0a.\" +\n\t\"\\x0a\\x03\\x0a7\\x02\\x03\\x0a\\x032\\x03\\x0a\\x1d.\\x03\\x091\\x06\\x03\\x09\\x19:\" +\n\t\"\\x03\\x08\\x02/\\x03\\x060+\\x03\\x06\\x0f-\\x03\\x06\\x1c\\x1f\\x03\\x06\\x1d\\x07\\x03\" +\n\t\"\\x0a,\\x11\\x03\\x09=\\x0d\\x03\\x09\\x0b;\\x03\\x07\\x1b/\\x03\\x0a\\x1f:\\x03\\x09 \" +\n\t\"\\x1f\\x03\\x09.\\x10\\x03\\x094\\x0b\\x03\\x09\\x1a1\\x03\\x08#\\x1a\\x03\\x084\\x1d\" +\n\t\"\\x03\\x08\\x01\\x1f\\x03\\x08\\x11\\x22\\x03\\x07'8\\x03\\x07\\x1a>\\x03\\x0757\\x03\" +\n\t\"\\x06&9\\x03\\x06+\\x11\\x03\\x0a.\\x0b\\x03\\x0a,>\\x03\\x0a4#\\x03\\x08%\\x17\\x03\" +\n\t\"\\x07\\x05\\x22\\x03\\x07\\x0c\\x0b\\x03\\x0a\\x1d+\\x03\\x0a\\x19\\x16\\x03\\x09+\\x1f\" +\n\t\"\\x03\\x09\\x08\\x0b\\x03\\x08\\x16\\x18\\x03\\x08+\\x12\\x03\\x0b\\x1d\\x0c\\x03\\x0a=\" +\n\t\"\\x10\\x03\\x0a\\x09\\x0d\\x03\\x0a\\x10\\x11\\x03\\x09&0\\x03\\x08(\\x1f\\x03\\x087\\x07\" +\n\t\"\\x03\\x08\\x185\\x03\\x07'6\\x03\\x06.\\x05\\x03\\x06=\\x04\\x03\\x06;;\\x03\\x06\\x06,\" +\n\t\"\\x03\\x0b\\x18>\\x03\\x08\\x00\\x18\\x03\\x06 \\x03\\x03\\x06<\\x00\\x03\\x09%\\x18\\x03\" +\n\t\"\\x0b\\x1c<\\x03\\x0a%!\\x03\\x0a\\x09\\x12\\x03\\x0a\\x16\\x02\\x03\\x090'\\x03\\x09\" +\n\t\"\\x0e=\\x03\\x08 \\x0e\\x03\\x08>\\x03\\x03\\x074>\\x03\\x06&?\\x03\\x06\\x19\\x09\\x03\" +\n\t\"\\x06?(\\x03\\x0a-\\x0e\\x03\\x09:3\\x03\\x098:\\x03\\x09\\x12\\x0b\\x03\\x09\\x1d\\x17\" +\n\t\"\\x03\\x087\\x05\\x03\\x082\\x14\\x03\\x08\\x06%\\x03\\x08\\x13\\x1f\\x03\\x06\\x06\\x0e\" +\n\t\"\\x03\\x0a\\x22<\\x03\\x09/<\\x03\\x06>+\\x03\\x0a'?\\x03\\x0a\\x13\\x0c\\x03\\x09\\x10<\" +\n\t\"\\x03\\x07\\x1b=\\x03\\x0a\\x19\\x13\\x03\\x09\\x22\\x1d\\x03\\x09\\x07\\x0d\\x03\\x08)\" +\n\t\"\\x1c\\x03\\x06=\\x1a\\x03\\x0a/4\\x03\\x0a7\\x11\\x03\\x0a\\x16:\\x03\\x09?3\\x03\\x09:\" +\n\t\"/\\x03\\x09\\x05\\x0a\\x03\\x09\\x14\\x06\\x03\\x087\\x22\\x03\\x080\\x07\\x03\\x08\\x1a\" +\n\t\"\\x1f\\x03\\x07\\x04(\\x03\\x07\\x04\\x09\\x03\\x06 %\\x03\\x06<\\x08\\x03\\x0a+\\x14\" +\n\t\"\\x03\\x09\\x1d\\x16\\x03\\x0a70\\x03\\x08 >\\x03\\x0857\\x03\\x070\\x0a\\x03\\x06=\\x12\" +\n\t\"\\x03\\x06\\x16%\\x03\\x06\\x1d,\\x03\\x099#\\x03\\x09\\x10>\\x03\\x07 \\x1e\\x03\\x08\" +\n\t\"\\x0c<\\x03\\x08\\x0b\\x18\\x03\\x08\\x15+\\x03\\x08,:\\x03\\x08%\\x22\\x03\\x07\\x0a$\" +\n\t\"\\x03\\x0b\\x1c=\\x03\\x07+\\x08\\x03\\x0a/\\x05\\x03\\x0a \\x07\\x03\\x0a\\x12'\\x03\" +\n\t\"\\x09#\\x11\\x03\\x08\\x1b\\x15\\x03\\x0a\\x06\\x01\\x03\\x09\\x1c\\x1b\\x03\\x0922\\x03\" +\n\t\"\\x07\\x14<\\x03\\x07\\x09\\x04\\x03\\x061\\x04\\x03\\x07\\x0e\\x01\\x03\\x0a\\x13\\x18\" +\n\t\"\\x03\\x0a-\\x0c\\x03\\x0a?\\x0d\\x03\\x0a\\x09\\x0a\\x03\\x091&\\x03\\x0a/\\x0b\\x03\" +\n\t\"\\x08$<\\x03\\x083\\x1d\\x03\\x08\\x0c$\\x03\\x08\\x0d\\x07\\x03\\x08\\x0d?\\x03\\x08\" +\n\t\"\\x0e\\x14\\x03\\x065\\x0a\\x03\\x08\\x1a#\\x03\\x08\\x16#\\x03\\x0702\\x03\\x07\\x03\" +\n\t\"\\x1a\\x03\\x06(\\x1d\\x03\\x06+\\x1b\\x03\\x06\\x0b\\x05\\x03\\x06\\x0b\\x17\\x03\\x06\" +\n\t\"\\x0c\\x04\\x03\\x06\\x1e\\x19\\x03\\x06+0\\x03\\x062\\x18\\x03\\x0b\\x16\\x1e\\x03\\x0a+\" +\n\t\"\\x16\\x03\\x0a-?\\x03\\x0a#:\\x03\\x0a#\\x10\\x03\\x0a%$\\x03\\x0a>+\\x03\\x0a01\\x03\" +\n\t\"\\x0a1\\x10\\x03\\x0a\\x099\\x03\\x0a\\x0a\\x12\\x03\\x0a\\x19\\x1f\\x03\\x0a\\x19\\x12\" +\n\t\"\\x03\\x09*)\\x03\\x09-\\x16\\x03\\x09.1\\x03\\x09.2\\x03\\x09<\\x0e\\x03\\x09> \\x03\" +\n\t\"\\x093\\x12\\x03\\x09\\x0b\\x01\\x03\\x09\\x1c2\\x03\\x09\\x11\\x1c\\x03\\x09\\x15%\\x03\" +\n\t\"\\x08,&\\x03\\x08!\\x22\\x03\\x089(\\x03\\x08\\x0b\\x1a\\x03\\x08\\x0d2\\x03\\x08\\x0c\" +\n\t\"\\x04\\x03\\x08\\x0c\\x06\\x03\\x08\\x0c\\x1f\\x03\\x08\\x0c\\x0c\\x03\\x08\\x0f\\x1f\\x03\" +\n\t\"\\x08\\x0f\\x1d\\x03\\x08\\x00\\x14\\x03\\x08\\x03\\x14\\x03\\x08\\x06\\x16\\x03\\x08\\x1e\" +\n\t\"#\\x03\\x08\\x11\\x11\\x03\\x08\\x10\\x18\\x03\\x08\\x14(\\x03\\x07)\\x1e\\x03\\x07.1\" +\n\t\"\\x03\\x07 $\\x03\\x07 '\\x03\\x078\\x08\\x03\\x07\\x0d0\\x03\\x07\\x0f7\\x03\\x07\\x05#\" +\n\t\"\\x03\\x07\\x05\\x1a\\x03\\x07\\x1a7\\x03\\x07\\x1d-\\x03\\x07\\x17\\x10\\x03\\x06)\\x1f\" +\n\t\"\\x03\\x062\\x0b\\x03\\x066\\x16\\x03\\x06\\x09\\x11\\x03\\x09(\\x1e\\x03\\x07!5\\x03\" +\n\t\"\\x0b\\x11\\x16\\x03\\x0a/\\x04\\x03\\x0a,\\x1a\\x03\\x0b\\x173\\x03\\x0a,1\\x03\\x0a/5\" +\n\t\"\\x03\\x0a\\x221\\x03\\x0a\\x22\\x0d\\x03\\x0a?%\\x03\\x0a<,\\x03\\x0a?#\\x03\\x0a>\\x19\" +\n\t\"\\x03\\x0a\\x08&\\x03\\x0a\\x0b\\x0e\\x03\\x0a\\x0c:\\x03\\x0a\\x0c+\\x03\\x0a\\x03\\x22\" +\n\t\"\\x03\\x0a\\x06)\\x03\\x0a\\x11\\x10\\x03\\x0a\\x11\\x1a\\x03\\x0a\\x17-\\x03\\x0a\\x14(\" +\n\t\"\\x03\\x09)\\x1e\\x03\\x09/\\x09\\x03\\x09.\\x00\\x03\\x09,\\x07\\x03\\x09/*\\x03\\x09-9\" +\n\t\"\\x03\\x09\\x228\\x03\\x09%\\x09\\x03\\x09:\\x12\\x03\\x09;\\x1d\\x03\\x09?\\x06\\x03\" +\n\t\"\\x093%\\x03\\x096\\x05\\x03\\x096\\x08\\x03\\x097\\x02\\x03\\x09\\x07,\\x03\\x09\\x04,\" +\n\t\"\\x03\\x09\\x1f\\x16\\x03\\x09\\x11\\x03\\x03\\x09\\x11\\x12\\x03\\x09\\x168\\x03\\x08*\" +\n\t\"\\x05\\x03\\x08/2\\x03\\x084:\\x03\\x08\\x22+\\x03\\x08 0\\x03\\x08&\\x0a\\x03\\x08;\" +\n\t\"\\x10\\x03\\x08>$\\x03\\x08>\\x18\\x03\\x0829\\x03\\x082:\\x03\\x081,\\x03\\x081<\\x03\" +\n\t\"\\x081\\x1c\\x03\\x087#\\x03\\x087*\\x03\\x08\\x09'\\x03\\x08\\x00\\x1d\\x03\\x08\\x05-\" +\n\t\"\\x03\\x08\\x1f4\\x03\\x08\\x1d\\x04\\x03\\x08\\x16\\x0f\\x03\\x07*7\\x03\\x07'!\\x03\" +\n\t\"\\x07%\\x1b\\x03\\x077\\x0c\\x03\\x07\\x0c1\\x03\\x07\\x0c.\\x03\\x07\\x00\\x06\\x03\\x07\" +\n\t\"\\x01\\x02\\x03\\x07\\x010\\x03\\x07\\x06=\\x03\\x07\\x01\\x03\\x03\\x07\\x01\\x13\\x03\" +\n\t\"\\x07\\x06\\x06\\x03\\x07\\x05\\x0a\\x03\\x07\\x1f\\x09\\x03\\x07\\x17:\\x03\\x06*1\\x03\" +\n\t\"\\x06-\\x1d\\x03\\x06\\x223\\x03\\x062:\\x03\\x060$\\x03\\x066\\x1e\\x03\\x064\\x12\\x03\" +\n\t\"\\x0645\\x03\\x06\\x0b\\x00\\x03\\x06\\x0b7\\x03\\x06\\x07\\x1f\\x03\\x06\\x15\\x12\\x03\" +\n\t\"\\x0c\\x05\\x0f\\x03\\x0b+\\x0b\\x03\\x0b+-\\x03\\x06\\x16\\x1b\\x03\\x06\\x15\\x17\\x03\" +\n\t\"\\x89\\xca\\xea\\x03\\x89\\xca\\xe8\\x03\\x0c8\\x10\\x03\\x0c8\\x01\\x03\\x0c8\\x0f\\x03\" +\n\t\"\\x0d8%\\x03\\x0d8!\\x03\\x0c8-\\x03\\x0c8/\\x03\\x0c8+\\x03\\x0c87\\x03\\x0c85\\x03\" +\n\t\"\\x0c9\\x09\\x03\\x0c9\\x0d\\x03\\x0c9\\x0f\\x03\\x0c9\\x0b\\x03\\xcfu\\x0c\\x03\\xcfu\" +\n\t\"\\x0f\\x03\\xcfu\\x0e\\x03\\xcfu\\x09\\x03\\x0c9\\x10\\x03\\x0d9\\x0c\\x03\\xcf`;\\x03\" +\n\t\"\\xcf`>\\x03\\xcf`9\\x03\\xcf`8\\x03\\xcf`7\\x03\\xcf`*\\x03\\xcf`-\\x03\\xcf`,\\x03\" +\n\t\"\\x0d\\x1b\\x1a\\x03\\x0d\\x1b&\\x03\\x0c=.\\x03\\x0c=%\\x03\\x0c>\\x1e\\x03\\x0c>\\x14\" +\n\t\"\\x03\\x0c?\\x06\\x03\\x0c?\\x0b\\x03\\x0c?\\x0c\\x03\\x0c?\\x0d\\x03\\x0c?\\x02\\x03\" +\n\t\"\\x0c>\\x0f\\x03\\x0c>\\x08\\x03\\x0c>\\x09\\x03\\x0c>,\\x03\\x0c>\\x0c\\x03\\x0c?\\x13\" +\n\t\"\\x03\\x0c?\\x16\\x03\\x0c?\\x15\\x03\\x0c?\\x1c\\x03\\x0c?\\x1f\\x03\\x0c?\\x1d\\x03\" +\n\t\"\\x0c?\\x1a\\x03\\x0c?\\x17\\x03\\x0c?\\x08\\x03\\x0c?\\x09\\x03\\x0c?\\x0e\\x03\\x0c?\" +\n\t\"\\x04\\x03\\x0c?\\x05\\x03\\x0c<?\\x03\\x0c=\\x00\\x03\\x0c=\\x06\\x03\\x0c=\\x05\\x03\" +\n\t\"\\x0c=\\x0c\\x03\\x0c=\\x0f\\x03\\x0c=\\x0d\\x03\\x0c=\\x0b\\x03\\x0c=\\x07\\x03\\x0c=\" +\n\t\"\\x19\\x03\\x0c=\\x15\\x03\\x0c=\\x11\\x03\\x0c=1\\x03\\x0c=3\\x03\\x0c=0\\x03\\x0c=>\" +\n\t\"\\x03\\x0c=2\\x03\\x0c=6\\x03\\x0c<\\x07\\x03\\x0c<\\x05\\x03\\x0e:!\\x03\\x0e:#\\x03\" +\n\t\"\\x0e8\\x09\\x03\\x0e:&\\x03\\x0e8\\x0b\\x03\\x0e:$\\x03\\x0e:,\\x03\\x0e8\\x1a\\x03\" +\n\t\"\\x0e8\\x1e\\x03\\x0e:*\\x03\\x0e:7\\x03\\x0e:5\\x03\\x0e:;\\x03\\x0e:\\x15\\x03\\x0e:<\" +\n\t\"\\x03\\x0e:4\\x03\\x0e:'\\x03\\x0e:-\\x03\\x0e:%\\x03\\x0e:?\\x03\\x0e:=\\x03\\x0e:)\" +\n\t\"\\x03\\x0e:/\\x03\\xcfs'\\x03\\x0d=\\x0f\\x03\\x0d+*\\x03\\x0d99\\x03\\x0d9;\\x03\\x0d9\" +\n\t\"?\\x03\\x0d)\\x0d\\x03\\x0d(%\\x02\\x01\\x18\\x02\\x01(\\x02\\x01\\x1e\\x03\\x0f$!\\x03\" +\n\t\"\\x0f87\\x03\\x0f4\\x0e\\x03\\x0f5\\x1d\\x03\\x06'\\x03\\x03\\x0f\\x08\\x18\\x03\\x0f\" +\n\t\"\\x0d\\x1b\\x03\\x0e2=\\x03\\x0e;\\x08\\x03\\x0e:\\x0b\\x03\\x0e\\x06$\\x03\\x0e\\x0d)\" +\n\t\"\\x03\\x0e\\x16\\x1f\\x03\\x0e\\x16\\x1b\\x03\\x0d$\\x0a\\x03\\x05,\\x1d\\x03\\x0d. \\x03\" +\n\t\"\\x0d.#\\x03\\x0c(/\\x03\\x09%\\x02\\x03\\x0d90\\x03\\x0d\\x0e4\\x03\\x0d\\x0d\\x0f\\x03\" +\n\t\"\\x0c#\\x00\\x03\\x0c,\\x1e\\x03\\x0c2\\x0e\\x03\\x0c\\x01\\x17\\x03\\x0c\\x09:\\x03\\x0e\" +\n\t\"\\x173\\x03\\x0c\\x08\\x03\\x03\\x0c\\x11\\x07\\x03\\x0c\\x10\\x18\\x03\\x0c\\x1f\\x1c\" +\n\t\"\\x03\\x0c\\x19\\x0e\\x03\\x0c\\x1a\\x1f\\x03\\x0f0>\\x03\\x0b->\\x03\\x0b<+\\x03\\x0b8\" +\n\t\"\\x13\\x03\\x0b\\x043\\x03\\x0b\\x14\\x03\\x03\\x0b\\x16%\\x03\\x0d\\x22&\\x03\\x0b\\x1a\" +\n\t\"\\x1a\\x03\\x0b\\x1a\\x04\\x03\\x0a%9\\x03\\x0a&2\\x03\\x0a&0\\x03\\x0a!\\x1a\\x03\\x0a!\" +\n\t\"7\\x03\\x0a5\\x10\\x03\\x0a=4\\x03\\x0a?\\x0e\\x03\\x0a>\\x10\\x03\\x0a\\x00 \\x03\\x0a\" +\n\t\"\\x0f:\\x03\\x0a\\x0f9\\x03\\x0a\\x0b\\x0a\\x03\\x0a\\x17%\\x03\\x0a\\x1b-\\x03\\x09-\" +\n\t\"\\x1a\\x03\\x09,4\\x03\\x09.,\\x03\\x09)\\x09\\x03\\x096!\\x03\\x091\\x1f\\x03\\x093\" +\n\t\"\\x16\\x03\\x0c+\\x1f\\x03\\x098 \\x03\\x098=\\x03\\x0c(\\x1a\\x03\\x0c(\\x16\\x03\\x09\" +\n\t\"\\x0a+\\x03\\x09\\x16\\x12\\x03\\x09\\x13\\x0e\\x03\\x09\\x153\\x03\\x08)!\\x03\\x09\\x1a\" +\n\t\"\\x01\\x03\\x09\\x18\\x01\\x03\\x08%#\\x03\\x08>\\x22\\x03\\x08\\x05%\\x03\\x08\\x02*\" +\n\t\"\\x03\\x08\\x15;\\x03\\x08\\x1b7\\x03\\x0f\\x07\\x1d\\x03\\x0f\\x04\\x03\\x03\\x070\\x0c\" +\n\t\"\\x03\\x07;\\x0b\\x03\\x07\\x08\\x17\\x03\\x07\\x12\\x06\\x03\\x06/-\\x03\\x0671\\x03\" +\n\t\"\\x065+\\x03\\x06>7\\x03\\x06\\x049\\x03\\x05+\\x1e\\x03\\x05,\\x17\\x03\\x05 \\x1d\\x03\" +\n\t\"\\x05\\x22\\x05\\x03\\x050\\x1d\"\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *idnaTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn idnaValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = idnaIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *idnaTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn idnaValues[c0]\n\t}\n\ti := idnaIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *idnaTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn idnaValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := idnaIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = idnaIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = idnaIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *idnaTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn idnaValues[c0]\n\t}\n\ti := idnaIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = idnaIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// idnaTrie. Total size: 28600 bytes (27.93 KiB). Checksum: 95575047b5d8fff.\ntype idnaTrie struct{}\n\nfunc newIdnaTrie(i int) *idnaTrie {\n\treturn &idnaTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *idnaTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 124:\n\t\treturn uint16(idnaValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 124\n\t\treturn uint16(idnaSparse.lookup(n, b))\n\t}\n}\n\n// idnaValues: 126 blocks, 8064 entries, 16128 bytes\n// The third block is the zero block.\nvar idnaValues = [8064]uint16{\n\t// Block 0x0, offset 0x0\n\t0x00: 0x0080, 0x01: 0x0080, 0x02: 0x0080, 0x03: 0x0080, 0x04: 0x0080, 0x05: 0x0080,\n\t0x06: 0x0080, 0x07: 0x0080, 0x08: 0x0080, 0x09: 0x0080, 0x0a: 0x0080, 0x0b: 0x0080,\n\t0x0c: 0x0080, 0x0d: 0x0080, 0x0e: 0x0080, 0x0f: 0x0080, 0x10: 0x0080, 0x11: 0x0080,\n\t0x12: 0x0080, 0x13: 0x0080, 0x14: 0x0080, 0x15: 0x0080, 0x16: 0x0080, 0x17: 0x0080,\n\t0x18: 0x0080, 0x19: 0x0080, 0x1a: 0x0080, 0x1b: 0x0080, 0x1c: 0x0080, 0x1d: 0x0080,\n\t0x1e: 0x0080, 0x1f: 0x0080, 0x20: 0x0080, 0x21: 0x0080, 0x22: 0x0080, 0x23: 0x0080,\n\t0x24: 0x0080, 0x25: 0x0080, 0x26: 0x0080, 0x27: 0x0080, 0x28: 0x0080, 0x29: 0x0080,\n\t0x2a: 0x0080, 0x2b: 0x0080, 0x2c: 0x0080, 0x2d: 0x0008, 0x2e: 0x0008, 0x2f: 0x0080,\n\t0x30: 0x0008, 0x31: 0x0008, 0x32: 0x0008, 0x33: 0x0008, 0x34: 0x0008, 0x35: 0x0008,\n\t0x36: 0x0008, 0x37: 0x0008, 0x38: 0x0008, 0x39: 0x0008, 0x3a: 0x0080, 0x3b: 0x0080,\n\t0x3c: 0x0080, 0x3d: 0x0080, 0x3e: 0x0080, 0x3f: 0x0080,\n\t// Block 0x1, offset 0x40\n\t0x40: 0x0080, 0x41: 0xe105, 0x42: 0xe105, 0x43: 0xe105, 0x44: 0xe105, 0x45: 0xe105,\n\t0x46: 0xe105, 0x47: 0xe105, 0x48: 0xe105, 0x49: 0xe105, 0x4a: 0xe105, 0x4b: 0xe105,\n\t0x4c: 0xe105, 0x4d: 0xe105, 0x4e: 0xe105, 0x4f: 0xe105, 0x50: 0xe105, 0x51: 0xe105,\n\t0x52: 0xe105, 0x53: 0xe105, 0x54: 0xe105, 0x55: 0xe105, 0x56: 0xe105, 0x57: 0xe105,\n\t0x58: 0xe105, 0x59: 0xe105, 0x5a: 0xe105, 0x5b: 0x0080, 0x5c: 0x0080, 0x5d: 0x0080,\n\t0x5e: 0x0080, 0x5f: 0x0080, 0x60: 0x0080, 0x61: 0x0008, 0x62: 0x0008, 0x63: 0x0008,\n\t0x64: 0x0008, 0x65: 0x0008, 0x66: 0x0008, 0x67: 0x0008, 0x68: 0x0008, 0x69: 0x0008,\n\t0x6a: 0x0008, 0x6b: 0x0008, 0x6c: 0x0008, 0x6d: 0x0008, 0x6e: 0x0008, 0x6f: 0x0008,\n\t0x70: 0x0008, 0x71: 0x0008, 0x72: 0x0008, 0x73: 0x0008, 0x74: 0x0008, 0x75: 0x0008,\n\t0x76: 0x0008, 0x77: 0x0008, 0x78: 0x0008, 0x79: 0x0008, 0x7a: 0x0008, 0x7b: 0x0080,\n\t0x7c: 0x0080, 0x7d: 0x0080, 0x7e: 0x0080, 0x7f: 0x0080,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x0040, 0xc1: 0x0040, 0xc2: 0x0040, 0xc3: 0x0040, 0xc4: 0x0040, 0xc5: 0x0040,\n\t0xc6: 0x0040, 0xc7: 0x0040, 0xc8: 0x0040, 0xc9: 0x0040, 0xca: 0x0040, 0xcb: 0x0040,\n\t0xcc: 0x0040, 0xcd: 0x0040, 0xce: 0x0040, 0xcf: 0x0040, 0xd0: 0x0040, 0xd1: 0x0040,\n\t0xd2: 0x0040, 0xd3: 0x0040, 0xd4: 0x0040, 0xd5: 0x0040, 0xd6: 0x0040, 0xd7: 0x0040,\n\t0xd8: 0x0040, 0xd9: 0x0040, 0xda: 0x0040, 0xdb: 0x0040, 0xdc: 0x0040, 0xdd: 0x0040,\n\t0xde: 0x0040, 0xdf: 0x0040, 0xe0: 0x000a, 0xe1: 0x0018, 0xe2: 0x0018, 0xe3: 0x0018,\n\t0xe4: 0x0018, 0xe5: 0x0018, 0xe6: 0x0018, 0xe7: 0x0018, 0xe8: 0x001a, 0xe9: 0x0018,\n\t0xea: 0x0039, 0xeb: 0x0018, 0xec: 0x0018, 0xed: 0x03c0, 0xee: 0x0018, 0xef: 0x004a,\n\t0xf0: 0x0018, 0xf1: 0x0018, 0xf2: 0x0069, 0xf3: 0x0079, 0xf4: 0x008a, 0xf5: 0x0005,\n\t0xf6: 0x0018, 0xf7: 0x0008, 0xf8: 0x00aa, 0xf9: 0x00c9, 0xfa: 0x00d9, 0xfb: 0x0018,\n\t0xfc: 0x00e9, 0xfd: 0x0119, 0xfe: 0x0149, 0xff: 0x0018,\n\t// Block 0x4, offset 0x100\n\t0x100: 0xe00d, 0x101: 0x0008, 0x102: 0xe00d, 0x103: 0x0008, 0x104: 0xe00d, 0x105: 0x0008,\n\t0x106: 0xe00d, 0x107: 0x0008, 0x108: 0xe00d, 0x109: 0x0008, 0x10a: 0xe00d, 0x10b: 0x0008,\n\t0x10c: 0xe00d, 0x10d: 0x0008, 0x10e: 0xe00d, 0x10f: 0x0008, 0x110: 0xe00d, 0x111: 0x0008,\n\t0x112: 0xe00d, 0x113: 0x0008, 0x114: 0xe00d, 0x115: 0x0008, 0x116: 0xe00d, 0x117: 0x0008,\n\t0x118: 0xe00d, 0x119: 0x0008, 0x11a: 0xe00d, 0x11b: 0x0008, 0x11c: 0xe00d, 0x11d: 0x0008,\n\t0x11e: 0xe00d, 0x11f: 0x0008, 0x120: 0xe00d, 0x121: 0x0008, 0x122: 0xe00d, 0x123: 0x0008,\n\t0x124: 0xe00d, 0x125: 0x0008, 0x126: 0xe00d, 0x127: 0x0008, 0x128: 0xe00d, 0x129: 0x0008,\n\t0x12a: 0xe00d, 0x12b: 0x0008, 0x12c: 0xe00d, 0x12d: 0x0008, 0x12e: 0xe00d, 0x12f: 0x0008,\n\t0x130: 0x0179, 0x131: 0x0008, 0x132: 0x0035, 0x133: 0x004d, 0x134: 0xe00d, 0x135: 0x0008,\n\t0x136: 0xe00d, 0x137: 0x0008, 0x138: 0x0008, 0x139: 0xe01d, 0x13a: 0x0008, 0x13b: 0xe03d,\n\t0x13c: 0x0008, 0x13d: 0xe01d, 0x13e: 0x0008, 0x13f: 0x0199,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x0199, 0x141: 0xe01d, 0x142: 0x0008, 0x143: 0xe03d, 0x144: 0x0008, 0x145: 0xe01d,\n\t0x146: 0x0008, 0x147: 0xe07d, 0x148: 0x0008, 0x149: 0x01b9, 0x14a: 0xe00d, 0x14b: 0x0008,\n\t0x14c: 0xe00d, 0x14d: 0x0008, 0x14e: 0xe00d, 0x14f: 0x0008, 0x150: 0xe00d, 0x151: 0x0008,\n\t0x152: 0xe00d, 0x153: 0x0008, 0x154: 0xe00d, 0x155: 0x0008, 0x156: 0xe00d, 0x157: 0x0008,\n\t0x158: 0xe00d, 0x159: 0x0008, 0x15a: 0xe00d, 0x15b: 0x0008, 0x15c: 0xe00d, 0x15d: 0x0008,\n\t0x15e: 0xe00d, 0x15f: 0x0008, 0x160: 0xe00d, 0x161: 0x0008, 0x162: 0xe00d, 0x163: 0x0008,\n\t0x164: 0xe00d, 0x165: 0x0008, 0x166: 0xe00d, 0x167: 0x0008, 0x168: 0xe00d, 0x169: 0x0008,\n\t0x16a: 0xe00d, 0x16b: 0x0008, 0x16c: 0xe00d, 0x16d: 0x0008, 0x16e: 0xe00d, 0x16f: 0x0008,\n\t0x170: 0xe00d, 0x171: 0x0008, 0x172: 0xe00d, 0x173: 0x0008, 0x174: 0xe00d, 0x175: 0x0008,\n\t0x176: 0xe00d, 0x177: 0x0008, 0x178: 0x0065, 0x179: 0xe01d, 0x17a: 0x0008, 0x17b: 0xe03d,\n\t0x17c: 0x0008, 0x17d: 0xe01d, 0x17e: 0x0008, 0x17f: 0x01d9,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x0008, 0x181: 0x007d, 0x182: 0xe00d, 0x183: 0x0008, 0x184: 0xe00d, 0x185: 0x0008,\n\t0x186: 0x007d, 0x187: 0xe07d, 0x188: 0x0008, 0x189: 0x0095, 0x18a: 0x00ad, 0x18b: 0xe03d,\n\t0x18c: 0x0008, 0x18d: 0x0008, 0x18e: 0x00c5, 0x18f: 0x00dd, 0x190: 0x00f5, 0x191: 0xe01d,\n\t0x192: 0x0008, 0x193: 0x010d, 0x194: 0x0125, 0x195: 0x0008, 0x196: 0x013d, 0x197: 0x013d,\n\t0x198: 0xe00d, 0x199: 0x0008, 0x19a: 0x0008, 0x19b: 0x0008, 0x19c: 0x010d, 0x19d: 0x0155,\n\t0x19e: 0x0008, 0x19f: 0x016d, 0x1a0: 0xe00d, 0x1a1: 0x0008, 0x1a2: 0xe00d, 0x1a3: 0x0008,\n\t0x1a4: 0xe00d, 0x1a5: 0x0008, 0x1a6: 0x0185, 0x1a7: 0xe07d, 0x1a8: 0x0008, 0x1a9: 0x019d,\n\t0x1aa: 0x0008, 0x1ab: 0x0008, 0x1ac: 0xe00d, 0x1ad: 0x0008, 0x1ae: 0x0185, 0x1af: 0xe0fd,\n\t0x1b0: 0x0008, 0x1b1: 0x01b5, 0x1b2: 0x01cd, 0x1b3: 0xe03d, 0x1b4: 0x0008, 0x1b5: 0xe01d,\n\t0x1b6: 0x0008, 0x1b7: 0x01e5, 0x1b8: 0xe00d, 0x1b9: 0x0008, 0x1ba: 0x0008, 0x1bb: 0x0008,\n\t0x1bc: 0xe00d, 0x1bd: 0x0008, 0x1be: 0x0008, 0x1bf: 0x0008,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x0008, 0x1c1: 0x0008, 0x1c2: 0x0008, 0x1c3: 0x0008, 0x1c4: 0x01e9, 0x1c5: 0x01e9,\n\t0x1c6: 0x01e9, 0x1c7: 0x01fd, 0x1c8: 0x0215, 0x1c9: 0x022d, 0x1ca: 0x0245, 0x1cb: 0x025d,\n\t0x1cc: 0x0275, 0x1cd: 0xe01d, 0x1ce: 0x0008, 0x1cf: 0xe0fd, 0x1d0: 0x0008, 0x1d1: 0xe01d,\n\t0x1d2: 0x0008, 0x1d3: 0xe03d, 0x1d4: 0x0008, 0x1d5: 0xe01d, 0x1d6: 0x0008, 0x1d7: 0xe07d,\n\t0x1d8: 0x0008, 0x1d9: 0xe01d, 0x1da: 0x0008, 0x1db: 0xe03d, 0x1dc: 0x0008, 0x1dd: 0x0008,\n\t0x1de: 0xe00d, 0x1df: 0x0008, 0x1e0: 0xe00d, 0x1e1: 0x0008, 0x1e2: 0xe00d, 0x1e3: 0x0008,\n\t0x1e4: 0xe00d, 0x1e5: 0x0008, 0x1e6: 0xe00d, 0x1e7: 0x0008, 0x1e8: 0xe00d, 0x1e9: 0x0008,\n\t0x1ea: 0xe00d, 0x1eb: 0x0008, 0x1ec: 0xe00d, 0x1ed: 0x0008, 0x1ee: 0xe00d, 0x1ef: 0x0008,\n\t0x1f0: 0x0008, 0x1f1: 0x028d, 0x1f2: 0x02a5, 0x1f3: 0x02bd, 0x1f4: 0xe00d, 0x1f5: 0x0008,\n\t0x1f6: 0x02d5, 0x1f7: 0x02ed, 0x1f8: 0xe00d, 0x1f9: 0x0008, 0x1fa: 0xe00d, 0x1fb: 0x0008,\n\t0x1fc: 0xe00d, 0x1fd: 0x0008, 0x1fe: 0xe00d, 0x1ff: 0x0008,\n\t// Block 0x8, offset 0x200\n\t0x200: 0xe00d, 0x201: 0x0008, 0x202: 0xe00d, 0x203: 0x0008, 0x204: 0xe00d, 0x205: 0x0008,\n\t0x206: 0xe00d, 0x207: 0x0008, 0x208: 0xe00d, 0x209: 0x0008, 0x20a: 0xe00d, 0x20b: 0x0008,\n\t0x20c: 0xe00d, 0x20d: 0x0008, 0x20e: 0xe00d, 0x20f: 0x0008, 0x210: 0xe00d, 0x211: 0x0008,\n\t0x212: 0xe00d, 0x213: 0x0008, 0x214: 0xe00d, 0x215: 0x0008, 0x216: 0xe00d, 0x217: 0x0008,\n\t0x218: 0xe00d, 0x219: 0x0008, 0x21a: 0xe00d, 0x21b: 0x0008, 0x21c: 0xe00d, 0x21d: 0x0008,\n\t0x21e: 0xe00d, 0x21f: 0x0008, 0x220: 0x0305, 0x221: 0x0008, 0x222: 0xe00d, 0x223: 0x0008,\n\t0x224: 0xe00d, 0x225: 0x0008, 0x226: 0xe00d, 0x227: 0x0008, 0x228: 0xe00d, 0x229: 0x0008,\n\t0x22a: 0xe00d, 0x22b: 0x0008, 0x22c: 0xe00d, 0x22d: 0x0008, 0x22e: 0xe00d, 0x22f: 0x0008,\n\t0x230: 0xe00d, 0x231: 0x0008, 0x232: 0xe00d, 0x233: 0x0008, 0x234: 0x0008, 0x235: 0x0008,\n\t0x236: 0x0008, 0x237: 0x0008, 0x238: 0x0008, 0x239: 0x0008, 0x23a: 0x0209, 0x23b: 0xe03d,\n\t0x23c: 0x0008, 0x23d: 0x031d, 0x23e: 0x0229, 0x23f: 0x0008,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x0008, 0x241: 0x0008, 0x242: 0x0018, 0x243: 0x0018, 0x244: 0x0018, 0x245: 0x0018,\n\t0x246: 0x0008, 0x247: 0x0008, 0x248: 0x0008, 0x249: 0x0008, 0x24a: 0x0008, 0x24b: 0x0008,\n\t0x24c: 0x0008, 0x24d: 0x0008, 0x24e: 0x0008, 0x24f: 0x0008, 0x250: 0x0008, 0x251: 0x0008,\n\t0x252: 0x0018, 0x253: 0x0018, 0x254: 0x0018, 0x255: 0x0018, 0x256: 0x0018, 0x257: 0x0018,\n\t0x258: 0x029a, 0x259: 0x02ba, 0x25a: 0x02da, 0x25b: 0x02fa, 0x25c: 0x031a, 0x25d: 0x033a,\n\t0x25e: 0x0018, 0x25f: 0x0018, 0x260: 0x03ad, 0x261: 0x0359, 0x262: 0x01d9, 0x263: 0x0369,\n\t0x264: 0x03c5, 0x265: 0x0018, 0x266: 0x0018, 0x267: 0x0018, 0x268: 0x0018, 0x269: 0x0018,\n\t0x26a: 0x0018, 0x26b: 0x0018, 0x26c: 0x0008, 0x26d: 0x0018, 0x26e: 0x0008, 0x26f: 0x0018,\n\t0x270: 0x0018, 0x271: 0x0018, 0x272: 0x0018, 0x273: 0x0018, 0x274: 0x0018, 0x275: 0x0018,\n\t0x276: 0x0018, 0x277: 0x0018, 0x278: 0x0018, 0x279: 0x0018, 0x27a: 0x0018, 0x27b: 0x0018,\n\t0x27c: 0x0018, 0x27d: 0x0018, 0x27e: 0x0018, 0x27f: 0x0018,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x03dd, 0x281: 0x03dd, 0x282: 0x3308, 0x283: 0x03f5, 0x284: 0x0379, 0x285: 0x040d,\n\t0x286: 0x3308, 0x287: 0x3308, 0x288: 0x3308, 0x289: 0x3308, 0x28a: 0x3308, 0x28b: 0x3308,\n\t0x28c: 0x3308, 0x28d: 0x3308, 0x28e: 0x3308, 0x28f: 0x33c0, 0x290: 0x3308, 0x291: 0x3308,\n\t0x292: 0x3308, 0x293: 0x3308, 0x294: 0x3308, 0x295: 0x3308, 0x296: 0x3308, 0x297: 0x3308,\n\t0x298: 0x3308, 0x299: 0x3308, 0x29a: 0x3308, 0x29b: 0x3308, 0x29c: 0x3308, 0x29d: 0x3308,\n\t0x29e: 0x3308, 0x29f: 0x3308, 0x2a0: 0x3308, 0x2a1: 0x3308, 0x2a2: 0x3308, 0x2a3: 0x3308,\n\t0x2a4: 0x3308, 0x2a5: 0x3308, 0x2a6: 0x3308, 0x2a7: 0x3308, 0x2a8: 0x3308, 0x2a9: 0x3308,\n\t0x2aa: 0x3308, 0x2ab: 0x3308, 0x2ac: 0x3308, 0x2ad: 0x3308, 0x2ae: 0x3308, 0x2af: 0x3308,\n\t0x2b0: 0xe00d, 0x2b1: 0x0008, 0x2b2: 0xe00d, 0x2b3: 0x0008, 0x2b4: 0x0425, 0x2b5: 0x0008,\n\t0x2b6: 0xe00d, 0x2b7: 0x0008, 0x2b8: 0x0040, 0x2b9: 0x0040, 0x2ba: 0x03a2, 0x2bb: 0x0008,\n\t0x2bc: 0x0008, 0x2bd: 0x0008, 0x2be: 0x03c2, 0x2bf: 0x043d,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x0040, 0x2c1: 0x0040, 0x2c2: 0x0040, 0x2c3: 0x0040, 0x2c4: 0x008a, 0x2c5: 0x03d2,\n\t0x2c6: 0xe155, 0x2c7: 0x0455, 0x2c8: 0xe12d, 0x2c9: 0xe13d, 0x2ca: 0xe12d, 0x2cb: 0x0040,\n\t0x2cc: 0x03dd, 0x2cd: 0x0040, 0x2ce: 0x046d, 0x2cf: 0x0485, 0x2d0: 0x0008, 0x2d1: 0xe105,\n\t0x2d2: 0xe105, 0x2d3: 0xe105, 0x2d4: 0xe105, 0x2d5: 0xe105, 0x2d6: 0xe105, 0x2d7: 0xe105,\n\t0x2d8: 0xe105, 0x2d9: 0xe105, 0x2da: 0xe105, 0x2db: 0xe105, 0x2dc: 0xe105, 0x2dd: 0xe105,\n\t0x2de: 0xe105, 0x2df: 0xe105, 0x2e0: 0x049d, 0x2e1: 0x049d, 0x2e2: 0x0040, 0x2e3: 0x049d,\n\t0x2e4: 0x049d, 0x2e5: 0x049d, 0x2e6: 0x049d, 0x2e7: 0x049d, 0x2e8: 0x049d, 0x2e9: 0x049d,\n\t0x2ea: 0x049d, 0x2eb: 0x049d, 0x2ec: 0x0008, 0x2ed: 0x0008, 0x2ee: 0x0008, 0x2ef: 0x0008,\n\t0x2f0: 0x0008, 0x2f1: 0x0008, 0x2f2: 0x0008, 0x2f3: 0x0008, 0x2f4: 0x0008, 0x2f5: 0x0008,\n\t0x2f6: 0x0008, 0x2f7: 0x0008, 0x2f8: 0x0008, 0x2f9: 0x0008, 0x2fa: 0x0008, 0x2fb: 0x0008,\n\t0x2fc: 0x0008, 0x2fd: 0x0008, 0x2fe: 0x0008, 0x2ff: 0x0008,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x0008, 0x301: 0x0008, 0x302: 0xe00f, 0x303: 0x0008, 0x304: 0x0008, 0x305: 0x0008,\n\t0x306: 0x0008, 0x307: 0x0008, 0x308: 0x0008, 0x309: 0x0008, 0x30a: 0x0008, 0x30b: 0x0008,\n\t0x30c: 0x0008, 0x30d: 0x0008, 0x30e: 0x0008, 0x30f: 0xe0c5, 0x310: 0x04b5, 0x311: 0x04cd,\n\t0x312: 0xe0bd, 0x313: 0xe0f5, 0x314: 0xe0fd, 0x315: 0xe09d, 0x316: 0xe0b5, 0x317: 0x0008,\n\t0x318: 0xe00d, 0x319: 0x0008, 0x31a: 0xe00d, 0x31b: 0x0008, 0x31c: 0xe00d, 0x31d: 0x0008,\n\t0x31e: 0xe00d, 0x31f: 0x0008, 0x320: 0xe00d, 0x321: 0x0008, 0x322: 0xe00d, 0x323: 0x0008,\n\t0x324: 0xe00d, 0x325: 0x0008, 0x326: 0xe00d, 0x327: 0x0008, 0x328: 0xe00d, 0x329: 0x0008,\n\t0x32a: 0xe00d, 0x32b: 0x0008, 0x32c: 0xe00d, 0x32d: 0x0008, 0x32e: 0xe00d, 0x32f: 0x0008,\n\t0x330: 0x04e5, 0x331: 0xe185, 0x332: 0xe18d, 0x333: 0x0008, 0x334: 0x04fd, 0x335: 0x03dd,\n\t0x336: 0x0018, 0x337: 0xe07d, 0x338: 0x0008, 0x339: 0xe1d5, 0x33a: 0xe00d, 0x33b: 0x0008,\n\t0x33c: 0x0008, 0x33d: 0x0515, 0x33e: 0x052d, 0x33f: 0x052d,\n\t// Block 0xd, offset 0x340\n\t0x340: 0x0008, 0x341: 0x0008, 0x342: 0x0008, 0x343: 0x0008, 0x344: 0x0008, 0x345: 0x0008,\n\t0x346: 0x0008, 0x347: 0x0008, 0x348: 0x0008, 0x349: 0x0008, 0x34a: 0x0008, 0x34b: 0x0008,\n\t0x34c: 0x0008, 0x34d: 0x0008, 0x34e: 0x0008, 0x34f: 0x0008, 0x350: 0x0008, 0x351: 0x0008,\n\t0x352: 0x0008, 0x353: 0x0008, 0x354: 0x0008, 0x355: 0x0008, 0x356: 0x0008, 0x357: 0x0008,\n\t0x358: 0x0008, 0x359: 0x0008, 0x35a: 0x0008, 0x35b: 0x0008, 0x35c: 0x0008, 0x35d: 0x0008,\n\t0x35e: 0x0008, 0x35f: 0x0008, 0x360: 0xe00d, 0x361: 0x0008, 0x362: 0xe00d, 0x363: 0x0008,\n\t0x364: 0xe00d, 0x365: 0x0008, 0x366: 0xe00d, 0x367: 0x0008, 0x368: 0xe00d, 0x369: 0x0008,\n\t0x36a: 0xe00d, 0x36b: 0x0008, 0x36c: 0xe00d, 0x36d: 0x0008, 0x36e: 0xe00d, 0x36f: 0x0008,\n\t0x370: 0xe00d, 0x371: 0x0008, 0x372: 0xe00d, 0x373: 0x0008, 0x374: 0xe00d, 0x375: 0x0008,\n\t0x376: 0xe00d, 0x377: 0x0008, 0x378: 0xe00d, 0x379: 0x0008, 0x37a: 0xe00d, 0x37b: 0x0008,\n\t0x37c: 0xe00d, 0x37d: 0x0008, 0x37e: 0xe00d, 0x37f: 0x0008,\n\t// Block 0xe, offset 0x380\n\t0x380: 0xe00d, 0x381: 0x0008, 0x382: 0x0018, 0x383: 0x3308, 0x384: 0x3308, 0x385: 0x3308,\n\t0x386: 0x3308, 0x387: 0x3308, 0x388: 0x3318, 0x389: 0x3318, 0x38a: 0xe00d, 0x38b: 0x0008,\n\t0x38c: 0xe00d, 0x38d: 0x0008, 0x38e: 0xe00d, 0x38f: 0x0008, 0x390: 0xe00d, 0x391: 0x0008,\n\t0x392: 0xe00d, 0x393: 0x0008, 0x394: 0xe00d, 0x395: 0x0008, 0x396: 0xe00d, 0x397: 0x0008,\n\t0x398: 0xe00d, 0x399: 0x0008, 0x39a: 0xe00d, 0x39b: 0x0008, 0x39c: 0xe00d, 0x39d: 0x0008,\n\t0x39e: 0xe00d, 0x39f: 0x0008, 0x3a0: 0xe00d, 0x3a1: 0x0008, 0x3a2: 0xe00d, 0x3a3: 0x0008,\n\t0x3a4: 0xe00d, 0x3a5: 0x0008, 0x3a6: 0xe00d, 0x3a7: 0x0008, 0x3a8: 0xe00d, 0x3a9: 0x0008,\n\t0x3aa: 0xe00d, 0x3ab: 0x0008, 0x3ac: 0xe00d, 0x3ad: 0x0008, 0x3ae: 0xe00d, 0x3af: 0x0008,\n\t0x3b0: 0xe00d, 0x3b1: 0x0008, 0x3b2: 0xe00d, 0x3b3: 0x0008, 0x3b4: 0xe00d, 0x3b5: 0x0008,\n\t0x3b6: 0xe00d, 0x3b7: 0x0008, 0x3b8: 0xe00d, 0x3b9: 0x0008, 0x3ba: 0xe00d, 0x3bb: 0x0008,\n\t0x3bc: 0xe00d, 0x3bd: 0x0008, 0x3be: 0xe00d, 0x3bf: 0x0008,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x0040, 0x3c1: 0xe01d, 0x3c2: 0x0008, 0x3c3: 0xe03d, 0x3c4: 0x0008, 0x3c5: 0xe01d,\n\t0x3c6: 0x0008, 0x3c7: 0xe07d, 0x3c8: 0x0008, 0x3c9: 0xe01d, 0x3ca: 0x0008, 0x3cb: 0xe03d,\n\t0x3cc: 0x0008, 0x3cd: 0xe01d, 0x3ce: 0x0008, 0x3cf: 0x0008, 0x3d0: 0xe00d, 0x3d1: 0x0008,\n\t0x3d2: 0xe00d, 0x3d3: 0x0008, 0x3d4: 0xe00d, 0x3d5: 0x0008, 0x3d6: 0xe00d, 0x3d7: 0x0008,\n\t0x3d8: 0xe00d, 0x3d9: 0x0008, 0x3da: 0xe00d, 0x3db: 0x0008, 0x3dc: 0xe00d, 0x3dd: 0x0008,\n\t0x3de: 0xe00d, 0x3df: 0x0008, 0x3e0: 0xe00d, 0x3e1: 0x0008, 0x3e2: 0xe00d, 0x3e3: 0x0008,\n\t0x3e4: 0xe00d, 0x3e5: 0x0008, 0x3e6: 0xe00d, 0x3e7: 0x0008, 0x3e8: 0xe00d, 0x3e9: 0x0008,\n\t0x3ea: 0xe00d, 0x3eb: 0x0008, 0x3ec: 0xe00d, 0x3ed: 0x0008, 0x3ee: 0xe00d, 0x3ef: 0x0008,\n\t0x3f0: 0xe00d, 0x3f1: 0x0008, 0x3f2: 0xe00d, 0x3f3: 0x0008, 0x3f4: 0xe00d, 0x3f5: 0x0008,\n\t0x3f6: 0xe00d, 0x3f7: 0x0008, 0x3f8: 0xe00d, 0x3f9: 0x0008, 0x3fa: 0xe00d, 0x3fb: 0x0008,\n\t0x3fc: 0xe00d, 0x3fd: 0x0008, 0x3fe: 0xe00d, 0x3ff: 0x0008,\n\t// Block 0x10, offset 0x400\n\t0x400: 0xe00d, 0x401: 0x0008, 0x402: 0xe00d, 0x403: 0x0008, 0x404: 0xe00d, 0x405: 0x0008,\n\t0x406: 0xe00d, 0x407: 0x0008, 0x408: 0xe00d, 0x409: 0x0008, 0x40a: 0xe00d, 0x40b: 0x0008,\n\t0x40c: 0xe00d, 0x40d: 0x0008, 0x40e: 0xe00d, 0x40f: 0x0008, 0x410: 0xe00d, 0x411: 0x0008,\n\t0x412: 0xe00d, 0x413: 0x0008, 0x414: 0xe00d, 0x415: 0x0008, 0x416: 0xe00d, 0x417: 0x0008,\n\t0x418: 0xe00d, 0x419: 0x0008, 0x41a: 0xe00d, 0x41b: 0x0008, 0x41c: 0xe00d, 0x41d: 0x0008,\n\t0x41e: 0xe00d, 0x41f: 0x0008, 0x420: 0xe00d, 0x421: 0x0008, 0x422: 0xe00d, 0x423: 0x0008,\n\t0x424: 0xe00d, 0x425: 0x0008, 0x426: 0xe00d, 0x427: 0x0008, 0x428: 0xe00d, 0x429: 0x0008,\n\t0x42a: 0xe00d, 0x42b: 0x0008, 0x42c: 0xe00d, 0x42d: 0x0008, 0x42e: 0xe00d, 0x42f: 0x0008,\n\t0x430: 0x0040, 0x431: 0x03f5, 0x432: 0x03f5, 0x433: 0x03f5, 0x434: 0x03f5, 0x435: 0x03f5,\n\t0x436: 0x03f5, 0x437: 0x03f5, 0x438: 0x03f5, 0x439: 0x03f5, 0x43a: 0x03f5, 0x43b: 0x03f5,\n\t0x43c: 0x03f5, 0x43d: 0x03f5, 0x43e: 0x03f5, 0x43f: 0x03f5,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x0840, 0x441: 0x0840, 0x442: 0x0840, 0x443: 0x0840, 0x444: 0x0840, 0x445: 0x0840,\n\t0x446: 0x0018, 0x447: 0x0018, 0x448: 0x0818, 0x449: 0x0018, 0x44a: 0x0018, 0x44b: 0x0818,\n\t0x44c: 0x0018, 0x44d: 0x0818, 0x44e: 0x0018, 0x44f: 0x0018, 0x450: 0x3308, 0x451: 0x3308,\n\t0x452: 0x3308, 0x453: 0x3308, 0x454: 0x3308, 0x455: 0x3308, 0x456: 0x3308, 0x457: 0x3308,\n\t0x458: 0x3308, 0x459: 0x3308, 0x45a: 0x3308, 0x45b: 0x0818, 0x45c: 0x0b40, 0x45d: 0x0040,\n\t0x45e: 0x0818, 0x45f: 0x0818, 0x460: 0x0a08, 0x461: 0x0808, 0x462: 0x0c08, 0x463: 0x0c08,\n\t0x464: 0x0c08, 0x465: 0x0c08, 0x466: 0x0a08, 0x467: 0x0c08, 0x468: 0x0a08, 0x469: 0x0c08,\n\t0x46a: 0x0a08, 0x46b: 0x0a08, 0x46c: 0x0a08, 0x46d: 0x0a08, 0x46e: 0x0a08, 0x46f: 0x0c08,\n\t0x470: 0x0c08, 0x471: 0x0c08, 0x472: 0x0c08, 0x473: 0x0a08, 0x474: 0x0a08, 0x475: 0x0a08,\n\t0x476: 0x0a08, 0x477: 0x0a08, 0x478: 0x0a08, 0x479: 0x0a08, 0x47a: 0x0a08, 0x47b: 0x0a08,\n\t0x47c: 0x0a08, 0x47d: 0x0a08, 0x47e: 0x0a08, 0x47f: 0x0a08,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x0818, 0x481: 0x0a08, 0x482: 0x0a08, 0x483: 0x0a08, 0x484: 0x0a08, 0x485: 0x0a08,\n\t0x486: 0x0a08, 0x487: 0x0a08, 0x488: 0x0c08, 0x489: 0x0a08, 0x48a: 0x0a08, 0x48b: 0x3308,\n\t0x48c: 0x3308, 0x48d: 0x3308, 0x48e: 0x3308, 0x48f: 0x3308, 0x490: 0x3308, 0x491: 0x3308,\n\t0x492: 0x3308, 0x493: 0x3308, 0x494: 0x3308, 0x495: 0x3308, 0x496: 0x3308, 0x497: 0x3308,\n\t0x498: 0x3308, 0x499: 0x3308, 0x49a: 0x3308, 0x49b: 0x3308, 0x49c: 0x3308, 0x49d: 0x3308,\n\t0x49e: 0x3308, 0x49f: 0x3308, 0x4a0: 0x0808, 0x4a1: 0x0808, 0x4a2: 0x0808, 0x4a3: 0x0808,\n\t0x4a4: 0x0808, 0x4a5: 0x0808, 0x4a6: 0x0808, 0x4a7: 0x0808, 0x4a8: 0x0808, 0x4a9: 0x0808,\n\t0x4aa: 0x0018, 0x4ab: 0x0818, 0x4ac: 0x0818, 0x4ad: 0x0818, 0x4ae: 0x0a08, 0x4af: 0x0a08,\n\t0x4b0: 0x3308, 0x4b1: 0x0c08, 0x4b2: 0x0c08, 0x4b3: 0x0c08, 0x4b4: 0x0808, 0x4b5: 0x0429,\n\t0x4b6: 0x0451, 0x4b7: 0x0479, 0x4b8: 0x04a1, 0x4b9: 0x0a08, 0x4ba: 0x0a08, 0x4bb: 0x0a08,\n\t0x4bc: 0x0a08, 0x4bd: 0x0a08, 0x4be: 0x0a08, 0x4bf: 0x0a08,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x0c08, 0x4c1: 0x0a08, 0x4c2: 0x0a08, 0x4c3: 0x0c08, 0x4c4: 0x0c08, 0x4c5: 0x0c08,\n\t0x4c6: 0x0c08, 0x4c7: 0x0c08, 0x4c8: 0x0c08, 0x4c9: 0x0c08, 0x4ca: 0x0c08, 0x4cb: 0x0c08,\n\t0x4cc: 0x0a08, 0x4cd: 0x0c08, 0x4ce: 0x0a08, 0x4cf: 0x0c08, 0x4d0: 0x0a08, 0x4d1: 0x0a08,\n\t0x4d2: 0x0c08, 0x4d3: 0x0c08, 0x4d4: 0x0818, 0x4d5: 0x0c08, 0x4d6: 0x3308, 0x4d7: 0x3308,\n\t0x4d8: 0x3308, 0x4d9: 0x3308, 0x4da: 0x3308, 0x4db: 0x3308, 0x4dc: 0x3308, 0x4dd: 0x0840,\n\t0x4de: 0x0018, 0x4df: 0x3308, 0x4e0: 0x3308, 0x4e1: 0x3308, 0x4e2: 0x3308, 0x4e3: 0x3308,\n\t0x4e4: 0x3308, 0x4e5: 0x0808, 0x4e6: 0x0808, 0x4e7: 0x3308, 0x4e8: 0x3308, 0x4e9: 0x0018,\n\t0x4ea: 0x3308, 0x4eb: 0x3308, 0x4ec: 0x3308, 0x4ed: 0x3308, 0x4ee: 0x0c08, 0x4ef: 0x0c08,\n\t0x4f0: 0x0008, 0x4f1: 0x0008, 0x4f2: 0x0008, 0x4f3: 0x0008, 0x4f4: 0x0008, 0x4f5: 0x0008,\n\t0x4f6: 0x0008, 0x4f7: 0x0008, 0x4f8: 0x0008, 0x4f9: 0x0008, 0x4fa: 0x0a08, 0x4fb: 0x0a08,\n\t0x4fc: 0x0a08, 0x4fd: 0x0808, 0x4fe: 0x0808, 0x4ff: 0x0a08,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x0818, 0x501: 0x0818, 0x502: 0x0818, 0x503: 0x0818, 0x504: 0x0818, 0x505: 0x0818,\n\t0x506: 0x0818, 0x507: 0x0818, 0x508: 0x0818, 0x509: 0x0818, 0x50a: 0x0818, 0x50b: 0x0818,\n\t0x50c: 0x0818, 0x50d: 0x0818, 0x50e: 0x0040, 0x50f: 0x0b40, 0x510: 0x0c08, 0x511: 0x3308,\n\t0x512: 0x0a08, 0x513: 0x0a08, 0x514: 0x0a08, 0x515: 0x0c08, 0x516: 0x0c08, 0x517: 0x0c08,\n\t0x518: 0x0c08, 0x519: 0x0c08, 0x51a: 0x0a08, 0x51b: 0x0a08, 0x51c: 0x0a08, 0x51d: 0x0a08,\n\t0x51e: 0x0c08, 0x51f: 0x0a08, 0x520: 0x0a08, 0x521: 0x0a08, 0x522: 0x0a08, 0x523: 0x0a08,\n\t0x524: 0x0a08, 0x525: 0x0a08, 0x526: 0x0a08, 0x527: 0x0a08, 0x528: 0x0c08, 0x529: 0x0a08,\n\t0x52a: 0x0c08, 0x52b: 0x0a08, 0x52c: 0x0c08, 0x52d: 0x0a08, 0x52e: 0x0a08, 0x52f: 0x0c08,\n\t0x530: 0x3308, 0x531: 0x3308, 0x532: 0x3308, 0x533: 0x3308, 0x534: 0x3308, 0x535: 0x3308,\n\t0x536: 0x3308, 0x537: 0x3308, 0x538: 0x3308, 0x539: 0x3308, 0x53a: 0x3308, 0x53b: 0x3308,\n\t0x53c: 0x3308, 0x53d: 0x3308, 0x53e: 0x3308, 0x53f: 0x3308,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x3008, 0x541: 0x3308, 0x542: 0x3308, 0x543: 0x3308, 0x544: 0x3308, 0x545: 0x3308,\n\t0x546: 0x3308, 0x547: 0x3308, 0x548: 0x3308, 0x549: 0x3008, 0x54a: 0x3008, 0x54b: 0x3008,\n\t0x54c: 0x3008, 0x54d: 0x3b08, 0x54e: 0x3008, 0x54f: 0x3008, 0x550: 0x0008, 0x551: 0x3308,\n\t0x552: 0x3308, 0x553: 0x3308, 0x554: 0x3308, 0x555: 0x3308, 0x556: 0x3308, 0x557: 0x3308,\n\t0x558: 0x04c9, 0x559: 0x0501, 0x55a: 0x0539, 0x55b: 0x0571, 0x55c: 0x05a9, 0x55d: 0x05e1,\n\t0x55e: 0x0619, 0x55f: 0x0651, 0x560: 0x0008, 0x561: 0x0008, 0x562: 0x3308, 0x563: 0x3308,\n\t0x564: 0x0018, 0x565: 0x0018, 0x566: 0x0008, 0x567: 0x0008, 0x568: 0x0008, 0x569: 0x0008,\n\t0x56a: 0x0008, 0x56b: 0x0008, 0x56c: 0x0008, 0x56d: 0x0008, 0x56e: 0x0008, 0x56f: 0x0008,\n\t0x570: 0x0018, 0x571: 0x0008, 0x572: 0x0008, 0x573: 0x0008, 0x574: 0x0008, 0x575: 0x0008,\n\t0x576: 0x0008, 0x577: 0x0008, 0x578: 0x0008, 0x579: 0x0008, 0x57a: 0x0008, 0x57b: 0x0008,\n\t0x57c: 0x0008, 0x57d: 0x0008, 0x57e: 0x0008, 0x57f: 0x0008,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x0008, 0x581: 0x3308, 0x582: 0x3008, 0x583: 0x3008, 0x584: 0x0040, 0x585: 0x0008,\n\t0x586: 0x0008, 0x587: 0x0008, 0x588: 0x0008, 0x589: 0x0008, 0x58a: 0x0008, 0x58b: 0x0008,\n\t0x58c: 0x0008, 0x58d: 0x0040, 0x58e: 0x0040, 0x58f: 0x0008, 0x590: 0x0008, 0x591: 0x0040,\n\t0x592: 0x0040, 0x593: 0x0008, 0x594: 0x0008, 0x595: 0x0008, 0x596: 0x0008, 0x597: 0x0008,\n\t0x598: 0x0008, 0x599: 0x0008, 0x59a: 0x0008, 0x59b: 0x0008, 0x59c: 0x0008, 0x59d: 0x0008,\n\t0x59e: 0x0008, 0x59f: 0x0008, 0x5a0: 0x0008, 0x5a1: 0x0008, 0x5a2: 0x0008, 0x5a3: 0x0008,\n\t0x5a4: 0x0008, 0x5a5: 0x0008, 0x5a6: 0x0008, 0x5a7: 0x0008, 0x5a8: 0x0008, 0x5a9: 0x0040,\n\t0x5aa: 0x0008, 0x5ab: 0x0008, 0x5ac: 0x0008, 0x5ad: 0x0008, 0x5ae: 0x0008, 0x5af: 0x0008,\n\t0x5b0: 0x0008, 0x5b1: 0x0040, 0x5b2: 0x0008, 0x5b3: 0x0040, 0x5b4: 0x0040, 0x5b5: 0x0040,\n\t0x5b6: 0x0008, 0x5b7: 0x0008, 0x5b8: 0x0008, 0x5b9: 0x0008, 0x5ba: 0x0040, 0x5bb: 0x0040,\n\t0x5bc: 0x3308, 0x5bd: 0x0008, 0x5be: 0x3008, 0x5bf: 0x3008,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x3008, 0x5c1: 0x3308, 0x5c2: 0x3308, 0x5c3: 0x3308, 0x5c4: 0x3308, 0x5c5: 0x0040,\n\t0x5c6: 0x0040, 0x5c7: 0x3008, 0x5c8: 0x3008, 0x5c9: 0x0040, 0x5ca: 0x0040, 0x5cb: 0x3008,\n\t0x5cc: 0x3008, 0x5cd: 0x3b08, 0x5ce: 0x0008, 0x5cf: 0x0040, 0x5d0: 0x0040, 0x5d1: 0x0040,\n\t0x5d2: 0x0040, 0x5d3: 0x0040, 0x5d4: 0x0040, 0x5d5: 0x0040, 0x5d6: 0x0040, 0x5d7: 0x3008,\n\t0x5d8: 0x0040, 0x5d9: 0x0040, 0x5da: 0x0040, 0x5db: 0x0040, 0x5dc: 0x0689, 0x5dd: 0x06c1,\n\t0x5de: 0x0040, 0x5df: 0x06f9, 0x5e0: 0x0008, 0x5e1: 0x0008, 0x5e2: 0x3308, 0x5e3: 0x3308,\n\t0x5e4: 0x0040, 0x5e5: 0x0040, 0x5e6: 0x0008, 0x5e7: 0x0008, 0x5e8: 0x0008, 0x5e9: 0x0008,\n\t0x5ea: 0x0008, 0x5eb: 0x0008, 0x5ec: 0x0008, 0x5ed: 0x0008, 0x5ee: 0x0008, 0x5ef: 0x0008,\n\t0x5f0: 0x0008, 0x5f1: 0x0008, 0x5f2: 0x0018, 0x5f3: 0x0018, 0x5f4: 0x0018, 0x5f5: 0x0018,\n\t0x5f6: 0x0018, 0x5f7: 0x0018, 0x5f8: 0x0018, 0x5f9: 0x0018, 0x5fa: 0x0018, 0x5fb: 0x0018,\n\t0x5fc: 0x0040, 0x5fd: 0x0040, 0x5fe: 0x0040, 0x5ff: 0x0040,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x0040, 0x601: 0x3308, 0x602: 0x3308, 0x603: 0x3008, 0x604: 0x0040, 0x605: 0x0008,\n\t0x606: 0x0008, 0x607: 0x0008, 0x608: 0x0008, 0x609: 0x0008, 0x60a: 0x0008, 0x60b: 0x0040,\n\t0x60c: 0x0040, 0x60d: 0x0040, 0x60e: 0x0040, 0x60f: 0x0008, 0x610: 0x0008, 0x611: 0x0040,\n\t0x612: 0x0040, 0x613: 0x0008, 0x614: 0x0008, 0x615: 0x0008, 0x616: 0x0008, 0x617: 0x0008,\n\t0x618: 0x0008, 0x619: 0x0008, 0x61a: 0x0008, 0x61b: 0x0008, 0x61c: 0x0008, 0x61d: 0x0008,\n\t0x61e: 0x0008, 0x61f: 0x0008, 0x620: 0x0008, 0x621: 0x0008, 0x622: 0x0008, 0x623: 0x0008,\n\t0x624: 0x0008, 0x625: 0x0008, 0x626: 0x0008, 0x627: 0x0008, 0x628: 0x0008, 0x629: 0x0040,\n\t0x62a: 0x0008, 0x62b: 0x0008, 0x62c: 0x0008, 0x62d: 0x0008, 0x62e: 0x0008, 0x62f: 0x0008,\n\t0x630: 0x0008, 0x631: 0x0040, 0x632: 0x0008, 0x633: 0x0731, 0x634: 0x0040, 0x635: 0x0008,\n\t0x636: 0x0769, 0x637: 0x0040, 0x638: 0x0008, 0x639: 0x0008, 0x63a: 0x0040, 0x63b: 0x0040,\n\t0x63c: 0x3308, 0x63d: 0x0040, 0x63e: 0x3008, 0x63f: 0x3008,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x3008, 0x641: 0x3308, 0x642: 0x3308, 0x643: 0x0040, 0x644: 0x0040, 0x645: 0x0040,\n\t0x646: 0x0040, 0x647: 0x3308, 0x648: 0x3308, 0x649: 0x0040, 0x64a: 0x0040, 0x64b: 0x3308,\n\t0x64c: 0x3308, 0x64d: 0x3b08, 0x64e: 0x0040, 0x64f: 0x0040, 0x650: 0x0040, 0x651: 0x3308,\n\t0x652: 0x0040, 0x653: 0x0040, 0x654: 0x0040, 0x655: 0x0040, 0x656: 0x0040, 0x657: 0x0040,\n\t0x658: 0x0040, 0x659: 0x07a1, 0x65a: 0x07d9, 0x65b: 0x0811, 0x65c: 0x0008, 0x65d: 0x0040,\n\t0x65e: 0x0849, 0x65f: 0x0040, 0x660: 0x0040, 0x661: 0x0040, 0x662: 0x0040, 0x663: 0x0040,\n\t0x664: 0x0040, 0x665: 0x0040, 0x666: 0x0008, 0x667: 0x0008, 0x668: 0x0008, 0x669: 0x0008,\n\t0x66a: 0x0008, 0x66b: 0x0008, 0x66c: 0x0008, 0x66d: 0x0008, 0x66e: 0x0008, 0x66f: 0x0008,\n\t0x670: 0x3308, 0x671: 0x3308, 0x672: 0x0008, 0x673: 0x0008, 0x674: 0x0008, 0x675: 0x3308,\n\t0x676: 0x0040, 0x677: 0x0040, 0x678: 0x0040, 0x679: 0x0040, 0x67a: 0x0040, 0x67b: 0x0040,\n\t0x67c: 0x0040, 0x67d: 0x0040, 0x67e: 0x0040, 0x67f: 0x0040,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x0040, 0x681: 0x3308, 0x682: 0x3308, 0x683: 0x3008, 0x684: 0x0040, 0x685: 0x0008,\n\t0x686: 0x0008, 0x687: 0x0008, 0x688: 0x0008, 0x689: 0x0008, 0x68a: 0x0008, 0x68b: 0x0008,\n\t0x68c: 0x0008, 0x68d: 0x0008, 0x68e: 0x0040, 0x68f: 0x0008, 0x690: 0x0008, 0x691: 0x0008,\n\t0x692: 0x0040, 0x693: 0x0008, 0x694: 0x0008, 0x695: 0x0008, 0x696: 0x0008, 0x697: 0x0008,\n\t0x698: 0x0008, 0x699: 0x0008, 0x69a: 0x0008, 0x69b: 0x0008, 0x69c: 0x0008, 0x69d: 0x0008,\n\t0x69e: 0x0008, 0x69f: 0x0008, 0x6a0: 0x0008, 0x6a1: 0x0008, 0x6a2: 0x0008, 0x6a3: 0x0008,\n\t0x6a4: 0x0008, 0x6a5: 0x0008, 0x6a6: 0x0008, 0x6a7: 0x0008, 0x6a8: 0x0008, 0x6a9: 0x0040,\n\t0x6aa: 0x0008, 0x6ab: 0x0008, 0x6ac: 0x0008, 0x6ad: 0x0008, 0x6ae: 0x0008, 0x6af: 0x0008,\n\t0x6b0: 0x0008, 0x6b1: 0x0040, 0x6b2: 0x0008, 0x6b3: 0x0008, 0x6b4: 0x0040, 0x6b5: 0x0008,\n\t0x6b6: 0x0008, 0x6b7: 0x0008, 0x6b8: 0x0008, 0x6b9: 0x0008, 0x6ba: 0x0040, 0x6bb: 0x0040,\n\t0x6bc: 0x3308, 0x6bd: 0x0008, 0x6be: 0x3008, 0x6bf: 0x3008,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x3008, 0x6c1: 0x3308, 0x6c2: 0x3308, 0x6c3: 0x3308, 0x6c4: 0x3308, 0x6c5: 0x3308,\n\t0x6c6: 0x0040, 0x6c7: 0x3308, 0x6c8: 0x3308, 0x6c9: 0x3008, 0x6ca: 0x0040, 0x6cb: 0x3008,\n\t0x6cc: 0x3008, 0x6cd: 0x3b08, 0x6ce: 0x0040, 0x6cf: 0x0040, 0x6d0: 0x0008, 0x6d1: 0x0040,\n\t0x6d2: 0x0040, 0x6d3: 0x0040, 0x6d4: 0x0040, 0x6d5: 0x0040, 0x6d6: 0x0040, 0x6d7: 0x0040,\n\t0x6d8: 0x0040, 0x6d9: 0x0040, 0x6da: 0x0040, 0x6db: 0x0040, 0x6dc: 0x0040, 0x6dd: 0x0040,\n\t0x6de: 0x0040, 0x6df: 0x0040, 0x6e0: 0x0008, 0x6e1: 0x0008, 0x6e2: 0x3308, 0x6e3: 0x3308,\n\t0x6e4: 0x0040, 0x6e5: 0x0040, 0x6e6: 0x0008, 0x6e7: 0x0008, 0x6e8: 0x0008, 0x6e9: 0x0008,\n\t0x6ea: 0x0008, 0x6eb: 0x0008, 0x6ec: 0x0008, 0x6ed: 0x0008, 0x6ee: 0x0008, 0x6ef: 0x0008,\n\t0x6f0: 0x0018, 0x6f1: 0x0018, 0x6f2: 0x0040, 0x6f3: 0x0040, 0x6f4: 0x0040, 0x6f5: 0x0040,\n\t0x6f6: 0x0040, 0x6f7: 0x0040, 0x6f8: 0x0040, 0x6f9: 0x0008, 0x6fa: 0x0040, 0x6fb: 0x0040,\n\t0x6fc: 0x0040, 0x6fd: 0x0040, 0x6fe: 0x0040, 0x6ff: 0x0040,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x0040, 0x701: 0x3308, 0x702: 0x3008, 0x703: 0x3008, 0x704: 0x0040, 0x705: 0x0008,\n\t0x706: 0x0008, 0x707: 0x0008, 0x708: 0x0008, 0x709: 0x0008, 0x70a: 0x0008, 0x70b: 0x0008,\n\t0x70c: 0x0008, 0x70d: 0x0040, 0x70e: 0x0040, 0x70f: 0x0008, 0x710: 0x0008, 0x711: 0x0040,\n\t0x712: 0x0040, 0x713: 0x0008, 0x714: 0x0008, 0x715: 0x0008, 0x716: 0x0008, 0x717: 0x0008,\n\t0x718: 0x0008, 0x719: 0x0008, 0x71a: 0x0008, 0x71b: 0x0008, 0x71c: 0x0008, 0x71d: 0x0008,\n\t0x71e: 0x0008, 0x71f: 0x0008, 0x720: 0x0008, 0x721: 0x0008, 0x722: 0x0008, 0x723: 0x0008,\n\t0x724: 0x0008, 0x725: 0x0008, 0x726: 0x0008, 0x727: 0x0008, 0x728: 0x0008, 0x729: 0x0040,\n\t0x72a: 0x0008, 0x72b: 0x0008, 0x72c: 0x0008, 0x72d: 0x0008, 0x72e: 0x0008, 0x72f: 0x0008,\n\t0x730: 0x0008, 0x731: 0x0040, 0x732: 0x0008, 0x733: 0x0008, 0x734: 0x0040, 0x735: 0x0008,\n\t0x736: 0x0008, 0x737: 0x0008, 0x738: 0x0008, 0x739: 0x0008, 0x73a: 0x0040, 0x73b: 0x0040,\n\t0x73c: 0x3308, 0x73d: 0x0008, 0x73e: 0x3008, 0x73f: 0x3308,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0x3008, 0x741: 0x3308, 0x742: 0x3308, 0x743: 0x3308, 0x744: 0x3308, 0x745: 0x0040,\n\t0x746: 0x0040, 0x747: 0x3008, 0x748: 0x3008, 0x749: 0x0040, 0x74a: 0x0040, 0x74b: 0x3008,\n\t0x74c: 0x3008, 0x74d: 0x3b08, 0x74e: 0x0040, 0x74f: 0x0040, 0x750: 0x0040, 0x751: 0x0040,\n\t0x752: 0x0040, 0x753: 0x0040, 0x754: 0x0040, 0x755: 0x0040, 0x756: 0x3308, 0x757: 0x3008,\n\t0x758: 0x0040, 0x759: 0x0040, 0x75a: 0x0040, 0x75b: 0x0040, 0x75c: 0x0881, 0x75d: 0x08b9,\n\t0x75e: 0x0040, 0x75f: 0x0008, 0x760: 0x0008, 0x761: 0x0008, 0x762: 0x3308, 0x763: 0x3308,\n\t0x764: 0x0040, 0x765: 0x0040, 0x766: 0x0008, 0x767: 0x0008, 0x768: 0x0008, 0x769: 0x0008,\n\t0x76a: 0x0008, 0x76b: 0x0008, 0x76c: 0x0008, 0x76d: 0x0008, 0x76e: 0x0008, 0x76f: 0x0008,\n\t0x770: 0x0018, 0x771: 0x0008, 0x772: 0x0018, 0x773: 0x0018, 0x774: 0x0018, 0x775: 0x0018,\n\t0x776: 0x0018, 0x777: 0x0018, 0x778: 0x0040, 0x779: 0x0040, 0x77a: 0x0040, 0x77b: 0x0040,\n\t0x77c: 0x0040, 0x77d: 0x0040, 0x77e: 0x0040, 0x77f: 0x0040,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0x0040, 0x781: 0x0040, 0x782: 0x3308, 0x783: 0x0008, 0x784: 0x0040, 0x785: 0x0008,\n\t0x786: 0x0008, 0x787: 0x0008, 0x788: 0x0008, 0x789: 0x0008, 0x78a: 0x0008, 0x78b: 0x0040,\n\t0x78c: 0x0040, 0x78d: 0x0040, 0x78e: 0x0008, 0x78f: 0x0008, 0x790: 0x0008, 0x791: 0x0040,\n\t0x792: 0x0008, 0x793: 0x0008, 0x794: 0x0008, 0x795: 0x0008, 0x796: 0x0040, 0x797: 0x0040,\n\t0x798: 0x0040, 0x799: 0x0008, 0x79a: 0x0008, 0x79b: 0x0040, 0x79c: 0x0008, 0x79d: 0x0040,\n\t0x79e: 0x0008, 0x79f: 0x0008, 0x7a0: 0x0040, 0x7a1: 0x0040, 0x7a2: 0x0040, 0x7a3: 0x0008,\n\t0x7a4: 0x0008, 0x7a5: 0x0040, 0x7a6: 0x0040, 0x7a7: 0x0040, 0x7a8: 0x0008, 0x7a9: 0x0008,\n\t0x7aa: 0x0008, 0x7ab: 0x0040, 0x7ac: 0x0040, 0x7ad: 0x0040, 0x7ae: 0x0008, 0x7af: 0x0008,\n\t0x7b0: 0x0008, 0x7b1: 0x0008, 0x7b2: 0x0008, 0x7b3: 0x0008, 0x7b4: 0x0008, 0x7b5: 0x0008,\n\t0x7b6: 0x0008, 0x7b7: 0x0008, 0x7b8: 0x0008, 0x7b9: 0x0008, 0x7ba: 0x0040, 0x7bb: 0x0040,\n\t0x7bc: 0x0040, 0x7bd: 0x0040, 0x7be: 0x3008, 0x7bf: 0x3008,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0x3308, 0x7c1: 0x3008, 0x7c2: 0x3008, 0x7c3: 0x3008, 0x7c4: 0x3008, 0x7c5: 0x0040,\n\t0x7c6: 0x3308, 0x7c7: 0x3308, 0x7c8: 0x3308, 0x7c9: 0x0040, 0x7ca: 0x3308, 0x7cb: 0x3308,\n\t0x7cc: 0x3308, 0x7cd: 0x3b08, 0x7ce: 0x0040, 0x7cf: 0x0040, 0x7d0: 0x0040, 0x7d1: 0x0040,\n\t0x7d2: 0x0040, 0x7d3: 0x0040, 0x7d4: 0x0040, 0x7d5: 0x3308, 0x7d6: 0x3308, 0x7d7: 0x0040,\n\t0x7d8: 0x0008, 0x7d9: 0x0008, 0x7da: 0x0008, 0x7db: 0x0040, 0x7dc: 0x0040, 0x7dd: 0x0040,\n\t0x7de: 0x0040, 0x7df: 0x0040, 0x7e0: 0x0008, 0x7e1: 0x0008, 0x7e2: 0x3308, 0x7e3: 0x3308,\n\t0x7e4: 0x0040, 0x7e5: 0x0040, 0x7e6: 0x0008, 0x7e7: 0x0008, 0x7e8: 0x0008, 0x7e9: 0x0008,\n\t0x7ea: 0x0008, 0x7eb: 0x0008, 0x7ec: 0x0008, 0x7ed: 0x0008, 0x7ee: 0x0008, 0x7ef: 0x0008,\n\t0x7f0: 0x0040, 0x7f1: 0x0040, 0x7f2: 0x0040, 0x7f3: 0x0040, 0x7f4: 0x0040, 0x7f5: 0x0040,\n\t0x7f6: 0x0040, 0x7f7: 0x0040, 0x7f8: 0x0018, 0x7f9: 0x0018, 0x7fa: 0x0018, 0x7fb: 0x0018,\n\t0x7fc: 0x0018, 0x7fd: 0x0018, 0x7fe: 0x0018, 0x7ff: 0x0018,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x0008, 0x801: 0x3308, 0x802: 0x3008, 0x803: 0x3008, 0x804: 0x0040, 0x805: 0x0008,\n\t0x806: 0x0008, 0x807: 0x0008, 0x808: 0x0008, 0x809: 0x0008, 0x80a: 0x0008, 0x80b: 0x0008,\n\t0x80c: 0x0008, 0x80d: 0x0040, 0x80e: 0x0008, 0x80f: 0x0008, 0x810: 0x0008, 0x811: 0x0040,\n\t0x812: 0x0008, 0x813: 0x0008, 0x814: 0x0008, 0x815: 0x0008, 0x816: 0x0008, 0x817: 0x0008,\n\t0x818: 0x0008, 0x819: 0x0008, 0x81a: 0x0008, 0x81b: 0x0008, 0x81c: 0x0008, 0x81d: 0x0008,\n\t0x81e: 0x0008, 0x81f: 0x0008, 0x820: 0x0008, 0x821: 0x0008, 0x822: 0x0008, 0x823: 0x0008,\n\t0x824: 0x0008, 0x825: 0x0008, 0x826: 0x0008, 0x827: 0x0008, 0x828: 0x0008, 0x829: 0x0040,\n\t0x82a: 0x0008, 0x82b: 0x0008, 0x82c: 0x0008, 0x82d: 0x0008, 0x82e: 0x0008, 0x82f: 0x0008,\n\t0x830: 0x0008, 0x831: 0x0008, 0x832: 0x0008, 0x833: 0x0008, 0x834: 0x0040, 0x835: 0x0008,\n\t0x836: 0x0008, 0x837: 0x0008, 0x838: 0x0008, 0x839: 0x0008, 0x83a: 0x0040, 0x83b: 0x0040,\n\t0x83c: 0x3308, 0x83d: 0x0008, 0x83e: 0x3008, 0x83f: 0x3308,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x3008, 0x841: 0x3008, 0x842: 0x3008, 0x843: 0x3008, 0x844: 0x3008, 0x845: 0x0040,\n\t0x846: 0x3308, 0x847: 0x3008, 0x848: 0x3008, 0x849: 0x0040, 0x84a: 0x3008, 0x84b: 0x3008,\n\t0x84c: 0x3308, 0x84d: 0x3b08, 0x84e: 0x0040, 0x84f: 0x0040, 0x850: 0x0040, 0x851: 0x0040,\n\t0x852: 0x0040, 0x853: 0x0040, 0x854: 0x0040, 0x855: 0x3008, 0x856: 0x3008, 0x857: 0x0040,\n\t0x858: 0x0040, 0x859: 0x0040, 0x85a: 0x0040, 0x85b: 0x0040, 0x85c: 0x0040, 0x85d: 0x0040,\n\t0x85e: 0x0008, 0x85f: 0x0040, 0x860: 0x0008, 0x861: 0x0008, 0x862: 0x3308, 0x863: 0x3308,\n\t0x864: 0x0040, 0x865: 0x0040, 0x866: 0x0008, 0x867: 0x0008, 0x868: 0x0008, 0x869: 0x0008,\n\t0x86a: 0x0008, 0x86b: 0x0008, 0x86c: 0x0008, 0x86d: 0x0008, 0x86e: 0x0008, 0x86f: 0x0008,\n\t0x870: 0x0040, 0x871: 0x0008, 0x872: 0x0008, 0x873: 0x0040, 0x874: 0x0040, 0x875: 0x0040,\n\t0x876: 0x0040, 0x877: 0x0040, 0x878: 0x0040, 0x879: 0x0040, 0x87a: 0x0040, 0x87b: 0x0040,\n\t0x87c: 0x0040, 0x87d: 0x0040, 0x87e: 0x0040, 0x87f: 0x0040,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x3008, 0x881: 0x3308, 0x882: 0x3308, 0x883: 0x3308, 0x884: 0x3308, 0x885: 0x0040,\n\t0x886: 0x3008, 0x887: 0x3008, 0x888: 0x3008, 0x889: 0x0040, 0x88a: 0x3008, 0x88b: 0x3008,\n\t0x88c: 0x3008, 0x88d: 0x3b08, 0x88e: 0x0008, 0x88f: 0x0018, 0x890: 0x0040, 0x891: 0x0040,\n\t0x892: 0x0040, 0x893: 0x0040, 0x894: 0x0008, 0x895: 0x0008, 0x896: 0x0008, 0x897: 0x3008,\n\t0x898: 0x0018, 0x899: 0x0018, 0x89a: 0x0018, 0x89b: 0x0018, 0x89c: 0x0018, 0x89d: 0x0018,\n\t0x89e: 0x0018, 0x89f: 0x0008, 0x8a0: 0x0008, 0x8a1: 0x0008, 0x8a2: 0x3308, 0x8a3: 0x3308,\n\t0x8a4: 0x0040, 0x8a5: 0x0040, 0x8a6: 0x0008, 0x8a7: 0x0008, 0x8a8: 0x0008, 0x8a9: 0x0008,\n\t0x8aa: 0x0008, 0x8ab: 0x0008, 0x8ac: 0x0008, 0x8ad: 0x0008, 0x8ae: 0x0008, 0x8af: 0x0008,\n\t0x8b0: 0x0018, 0x8b1: 0x0018, 0x8b2: 0x0018, 0x8b3: 0x0018, 0x8b4: 0x0018, 0x8b5: 0x0018,\n\t0x8b6: 0x0018, 0x8b7: 0x0018, 0x8b8: 0x0018, 0x8b9: 0x0018, 0x8ba: 0x0008, 0x8bb: 0x0008,\n\t0x8bc: 0x0008, 0x8bd: 0x0008, 0x8be: 0x0008, 0x8bf: 0x0008,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x0040, 0x8c1: 0x0008, 0x8c2: 0x0008, 0x8c3: 0x0040, 0x8c4: 0x0008, 0x8c5: 0x0040,\n\t0x8c6: 0x0040, 0x8c7: 0x0008, 0x8c8: 0x0008, 0x8c9: 0x0040, 0x8ca: 0x0008, 0x8cb: 0x0040,\n\t0x8cc: 0x0040, 0x8cd: 0x0008, 0x8ce: 0x0040, 0x8cf: 0x0040, 0x8d0: 0x0040, 0x8d1: 0x0040,\n\t0x8d2: 0x0040, 0x8d3: 0x0040, 0x8d4: 0x0008, 0x8d5: 0x0008, 0x8d6: 0x0008, 0x8d7: 0x0008,\n\t0x8d8: 0x0040, 0x8d9: 0x0008, 0x8da: 0x0008, 0x8db: 0x0008, 0x8dc: 0x0008, 0x8dd: 0x0008,\n\t0x8de: 0x0008, 0x8df: 0x0008, 0x8e0: 0x0040, 0x8e1: 0x0008, 0x8e2: 0x0008, 0x8e3: 0x0008,\n\t0x8e4: 0x0040, 0x8e5: 0x0008, 0x8e6: 0x0040, 0x8e7: 0x0008, 0x8e8: 0x0040, 0x8e9: 0x0040,\n\t0x8ea: 0x0008, 0x8eb: 0x0008, 0x8ec: 0x0040, 0x8ed: 0x0008, 0x8ee: 0x0008, 0x8ef: 0x0008,\n\t0x8f0: 0x0008, 0x8f1: 0x3308, 0x8f2: 0x0008, 0x8f3: 0x0929, 0x8f4: 0x3308, 0x8f5: 0x3308,\n\t0x8f6: 0x3308, 0x8f7: 0x3308, 0x8f8: 0x3308, 0x8f9: 0x3308, 0x8fa: 0x0040, 0x8fb: 0x3308,\n\t0x8fc: 0x3308, 0x8fd: 0x0008, 0x8fe: 0x0040, 0x8ff: 0x0040,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x0008, 0x901: 0x0008, 0x902: 0x0008, 0x903: 0x09d1, 0x904: 0x0008, 0x905: 0x0008,\n\t0x906: 0x0008, 0x907: 0x0008, 0x908: 0x0040, 0x909: 0x0008, 0x90a: 0x0008, 0x90b: 0x0008,\n\t0x90c: 0x0008, 0x90d: 0x0a09, 0x90e: 0x0008, 0x90f: 0x0008, 0x910: 0x0008, 0x911: 0x0008,\n\t0x912: 0x0a41, 0x913: 0x0008, 0x914: 0x0008, 0x915: 0x0008, 0x916: 0x0008, 0x917: 0x0a79,\n\t0x918: 0x0008, 0x919: 0x0008, 0x91a: 0x0008, 0x91b: 0x0008, 0x91c: 0x0ab1, 0x91d: 0x0008,\n\t0x91e: 0x0008, 0x91f: 0x0008, 0x920: 0x0008, 0x921: 0x0008, 0x922: 0x0008, 0x923: 0x0008,\n\t0x924: 0x0008, 0x925: 0x0008, 0x926: 0x0008, 0x927: 0x0008, 0x928: 0x0008, 0x929: 0x0ae9,\n\t0x92a: 0x0008, 0x92b: 0x0008, 0x92c: 0x0008, 0x92d: 0x0040, 0x92e: 0x0040, 0x92f: 0x0040,\n\t0x930: 0x0040, 0x931: 0x3308, 0x932: 0x3308, 0x933: 0x0b21, 0x934: 0x3308, 0x935: 0x0b59,\n\t0x936: 0x0b91, 0x937: 0x0bc9, 0x938: 0x0c19, 0x939: 0x0c51, 0x93a: 0x3308, 0x93b: 0x3308,\n\t0x93c: 0x3308, 0x93d: 0x3308, 0x93e: 0x3308, 0x93f: 0x3008,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x3308, 0x941: 0x0ca1, 0x942: 0x3308, 0x943: 0x3308, 0x944: 0x3b08, 0x945: 0x0018,\n\t0x946: 0x3308, 0x947: 0x3308, 0x948: 0x0008, 0x949: 0x0008, 0x94a: 0x0008, 0x94b: 0x0008,\n\t0x94c: 0x0008, 0x94d: 0x3308, 0x94e: 0x3308, 0x94f: 0x3308, 0x950: 0x3308, 0x951: 0x3308,\n\t0x952: 0x3308, 0x953: 0x0cd9, 0x954: 0x3308, 0x955: 0x3308, 0x956: 0x3308, 0x957: 0x3308,\n\t0x958: 0x0040, 0x959: 0x3308, 0x95a: 0x3308, 0x95b: 0x3308, 0x95c: 0x3308, 0x95d: 0x0d11,\n\t0x95e: 0x3308, 0x95f: 0x3308, 0x960: 0x3308, 0x961: 0x3308, 0x962: 0x0d49, 0x963: 0x3308,\n\t0x964: 0x3308, 0x965: 0x3308, 0x966: 0x3308, 0x967: 0x0d81, 0x968: 0x3308, 0x969: 0x3308,\n\t0x96a: 0x3308, 0x96b: 0x3308, 0x96c: 0x0db9, 0x96d: 0x3308, 0x96e: 0x3308, 0x96f: 0x3308,\n\t0x970: 0x3308, 0x971: 0x3308, 0x972: 0x3308, 0x973: 0x3308, 0x974: 0x3308, 0x975: 0x3308,\n\t0x976: 0x3308, 0x977: 0x3308, 0x978: 0x3308, 0x979: 0x0df1, 0x97a: 0x3308, 0x97b: 0x3308,\n\t0x97c: 0x3308, 0x97d: 0x0040, 0x97e: 0x0018, 0x97f: 0x0018,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x0008, 0x981: 0x0008, 0x982: 0x0008, 0x983: 0x0008, 0x984: 0x0008, 0x985: 0x0008,\n\t0x986: 0x0008, 0x987: 0x0008, 0x988: 0x0008, 0x989: 0x0008, 0x98a: 0x0008, 0x98b: 0x0008,\n\t0x98c: 0x0008, 0x98d: 0x0008, 0x98e: 0x0008, 0x98f: 0x0008, 0x990: 0x0008, 0x991: 0x0008,\n\t0x992: 0x0008, 0x993: 0x0008, 0x994: 0x0008, 0x995: 0x0008, 0x996: 0x0008, 0x997: 0x0008,\n\t0x998: 0x0008, 0x999: 0x0008, 0x99a: 0x0008, 0x99b: 0x0008, 0x99c: 0x0008, 0x99d: 0x0008,\n\t0x99e: 0x0008, 0x99f: 0x0008, 0x9a0: 0x0008, 0x9a1: 0x0008, 0x9a2: 0x0008, 0x9a3: 0x0008,\n\t0x9a4: 0x0008, 0x9a5: 0x0008, 0x9a6: 0x0008, 0x9a7: 0x0008, 0x9a8: 0x0008, 0x9a9: 0x0008,\n\t0x9aa: 0x0008, 0x9ab: 0x0008, 0x9ac: 0x0039, 0x9ad: 0x0ed1, 0x9ae: 0x0ee9, 0x9af: 0x0008,\n\t0x9b0: 0x0ef9, 0x9b1: 0x0f09, 0x9b2: 0x0f19, 0x9b3: 0x0f31, 0x9b4: 0x0249, 0x9b5: 0x0f41,\n\t0x9b6: 0x0259, 0x9b7: 0x0f51, 0x9b8: 0x0359, 0x9b9: 0x0f61, 0x9ba: 0x0f71, 0x9bb: 0x0008,\n\t0x9bc: 0x00d9, 0x9bd: 0x0f81, 0x9be: 0x0f99, 0x9bf: 0x0269,\n\t// Block 0x27, offset 0x9c0\n\t0x9c0: 0x0fa9, 0x9c1: 0x0fb9, 0x9c2: 0x0279, 0x9c3: 0x0039, 0x9c4: 0x0fc9, 0x9c5: 0x0fe1,\n\t0x9c6: 0x059d, 0x9c7: 0x0ee9, 0x9c8: 0x0ef9, 0x9c9: 0x0f09, 0x9ca: 0x0ff9, 0x9cb: 0x1011,\n\t0x9cc: 0x1029, 0x9cd: 0x0f31, 0x9ce: 0x0008, 0x9cf: 0x0f51, 0x9d0: 0x0f61, 0x9d1: 0x1041,\n\t0x9d2: 0x00d9, 0x9d3: 0x1059, 0x9d4: 0x05b5, 0x9d5: 0x05b5, 0x9d6: 0x0f99, 0x9d7: 0x0fa9,\n\t0x9d8: 0x0fb9, 0x9d9: 0x059d, 0x9da: 0x1071, 0x9db: 0x1089, 0x9dc: 0x05cd, 0x9dd: 0x1099,\n\t0x9de: 0x10b1, 0x9df: 0x10c9, 0x9e0: 0x10e1, 0x9e1: 0x10f9, 0x9e2: 0x0f41, 0x9e3: 0x0269,\n\t0x9e4: 0x0fb9, 0x9e5: 0x1089, 0x9e6: 0x1099, 0x9e7: 0x10b1, 0x9e8: 0x1111, 0x9e9: 0x10e1,\n\t0x9ea: 0x10f9, 0x9eb: 0x0008, 0x9ec: 0x0008, 0x9ed: 0x0008, 0x9ee: 0x0008, 0x9ef: 0x0008,\n\t0x9f0: 0x0008, 0x9f1: 0x0008, 0x9f2: 0x0008, 0x9f3: 0x0008, 0x9f4: 0x0008, 0x9f5: 0x0008,\n\t0x9f6: 0x0008, 0x9f7: 0x0008, 0x9f8: 0x1129, 0x9f9: 0x0008, 0x9fa: 0x0008, 0x9fb: 0x0008,\n\t0x9fc: 0x0008, 0x9fd: 0x0008, 0x9fe: 0x0008, 0x9ff: 0x0008,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x0008, 0xa01: 0x0008, 0xa02: 0x0008, 0xa03: 0x0008, 0xa04: 0x0008, 0xa05: 0x0008,\n\t0xa06: 0x0008, 0xa07: 0x0008, 0xa08: 0x0008, 0xa09: 0x0008, 0xa0a: 0x0008, 0xa0b: 0x0008,\n\t0xa0c: 0x0008, 0xa0d: 0x0008, 0xa0e: 0x0008, 0xa0f: 0x0008, 0xa10: 0x0008, 0xa11: 0x0008,\n\t0xa12: 0x0008, 0xa13: 0x0008, 0xa14: 0x0008, 0xa15: 0x0008, 0xa16: 0x0008, 0xa17: 0x0008,\n\t0xa18: 0x0008, 0xa19: 0x0008, 0xa1a: 0x0008, 0xa1b: 0x1141, 0xa1c: 0x1159, 0xa1d: 0x1169,\n\t0xa1e: 0x1181, 0xa1f: 0x1029, 0xa20: 0x1199, 0xa21: 0x11a9, 0xa22: 0x11c1, 0xa23: 0x11d9,\n\t0xa24: 0x11f1, 0xa25: 0x1209, 0xa26: 0x1221, 0xa27: 0x05e5, 0xa28: 0x1239, 0xa29: 0x1251,\n\t0xa2a: 0xe17d, 0xa2b: 0x1269, 0xa2c: 0x1281, 0xa2d: 0x1299, 0xa2e: 0x12b1, 0xa2f: 0x12c9,\n\t0xa30: 0x12e1, 0xa31: 0x12f9, 0xa32: 0x1311, 0xa33: 0x1329, 0xa34: 0x1341, 0xa35: 0x1359,\n\t0xa36: 0x1371, 0xa37: 0x1389, 0xa38: 0x05fd, 0xa39: 0x13a1, 0xa3a: 0x13b9, 0xa3b: 0x13d1,\n\t0xa3c: 0x13e1, 0xa3d: 0x13f9, 0xa3e: 0x1411, 0xa3f: 0x1429,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0xe00d, 0xa41: 0x0008, 0xa42: 0xe00d, 0xa43: 0x0008, 0xa44: 0xe00d, 0xa45: 0x0008,\n\t0xa46: 0xe00d, 0xa47: 0x0008, 0xa48: 0xe00d, 0xa49: 0x0008, 0xa4a: 0xe00d, 0xa4b: 0x0008,\n\t0xa4c: 0xe00d, 0xa4d: 0x0008, 0xa4e: 0xe00d, 0xa4f: 0x0008, 0xa50: 0xe00d, 0xa51: 0x0008,\n\t0xa52: 0xe00d, 0xa53: 0x0008, 0xa54: 0xe00d, 0xa55: 0x0008, 0xa56: 0xe00d, 0xa57: 0x0008,\n\t0xa58: 0xe00d, 0xa59: 0x0008, 0xa5a: 0xe00d, 0xa5b: 0x0008, 0xa5c: 0xe00d, 0xa5d: 0x0008,\n\t0xa5e: 0xe00d, 0xa5f: 0x0008, 0xa60: 0xe00d, 0xa61: 0x0008, 0xa62: 0xe00d, 0xa63: 0x0008,\n\t0xa64: 0xe00d, 0xa65: 0x0008, 0xa66: 0xe00d, 0xa67: 0x0008, 0xa68: 0xe00d, 0xa69: 0x0008,\n\t0xa6a: 0xe00d, 0xa6b: 0x0008, 0xa6c: 0xe00d, 0xa6d: 0x0008, 0xa6e: 0xe00d, 0xa6f: 0x0008,\n\t0xa70: 0xe00d, 0xa71: 0x0008, 0xa72: 0xe00d, 0xa73: 0x0008, 0xa74: 0xe00d, 0xa75: 0x0008,\n\t0xa76: 0xe00d, 0xa77: 0x0008, 0xa78: 0xe00d, 0xa79: 0x0008, 0xa7a: 0xe00d, 0xa7b: 0x0008,\n\t0xa7c: 0xe00d, 0xa7d: 0x0008, 0xa7e: 0xe00d, 0xa7f: 0x0008,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0xe00d, 0xa81: 0x0008, 0xa82: 0xe00d, 0xa83: 0x0008, 0xa84: 0xe00d, 0xa85: 0x0008,\n\t0xa86: 0xe00d, 0xa87: 0x0008, 0xa88: 0xe00d, 0xa89: 0x0008, 0xa8a: 0xe00d, 0xa8b: 0x0008,\n\t0xa8c: 0xe00d, 0xa8d: 0x0008, 0xa8e: 0xe00d, 0xa8f: 0x0008, 0xa90: 0xe00d, 0xa91: 0x0008,\n\t0xa92: 0xe00d, 0xa93: 0x0008, 0xa94: 0xe00d, 0xa95: 0x0008, 0xa96: 0x0008, 0xa97: 0x0008,\n\t0xa98: 0x0008, 0xa99: 0x0008, 0xa9a: 0x0615, 0xa9b: 0x0635, 0xa9c: 0x0008, 0xa9d: 0x0008,\n\t0xa9e: 0x1441, 0xa9f: 0x0008, 0xaa0: 0xe00d, 0xaa1: 0x0008, 0xaa2: 0xe00d, 0xaa3: 0x0008,\n\t0xaa4: 0xe00d, 0xaa5: 0x0008, 0xaa6: 0xe00d, 0xaa7: 0x0008, 0xaa8: 0xe00d, 0xaa9: 0x0008,\n\t0xaaa: 0xe00d, 0xaab: 0x0008, 0xaac: 0xe00d, 0xaad: 0x0008, 0xaae: 0xe00d, 0xaaf: 0x0008,\n\t0xab0: 0xe00d, 0xab1: 0x0008, 0xab2: 0xe00d, 0xab3: 0x0008, 0xab4: 0xe00d, 0xab5: 0x0008,\n\t0xab6: 0xe00d, 0xab7: 0x0008, 0xab8: 0xe00d, 0xab9: 0x0008, 0xaba: 0xe00d, 0xabb: 0x0008,\n\t0xabc: 0xe00d, 0xabd: 0x0008, 0xabe: 0xe00d, 0xabf: 0x0008,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0x0008, 0xac1: 0x0008, 0xac2: 0x0008, 0xac3: 0x0008, 0xac4: 0x0008, 0xac5: 0x0008,\n\t0xac6: 0x0040, 0xac7: 0x0040, 0xac8: 0xe045, 0xac9: 0xe045, 0xaca: 0xe045, 0xacb: 0xe045,\n\t0xacc: 0xe045, 0xacd: 0xe045, 0xace: 0x0040, 0xacf: 0x0040, 0xad0: 0x0008, 0xad1: 0x0008,\n\t0xad2: 0x0008, 0xad3: 0x0008, 0xad4: 0x0008, 0xad5: 0x0008, 0xad6: 0x0008, 0xad7: 0x0008,\n\t0xad8: 0x0040, 0xad9: 0xe045, 0xada: 0x0040, 0xadb: 0xe045, 0xadc: 0x0040, 0xadd: 0xe045,\n\t0xade: 0x0040, 0xadf: 0xe045, 0xae0: 0x0008, 0xae1: 0x0008, 0xae2: 0x0008, 0xae3: 0x0008,\n\t0xae4: 0x0008, 0xae5: 0x0008, 0xae6: 0x0008, 0xae7: 0x0008, 0xae8: 0xe045, 0xae9: 0xe045,\n\t0xaea: 0xe045, 0xaeb: 0xe045, 0xaec: 0xe045, 0xaed: 0xe045, 0xaee: 0xe045, 0xaef: 0xe045,\n\t0xaf0: 0x0008, 0xaf1: 0x1459, 0xaf2: 0x0008, 0xaf3: 0x1471, 0xaf4: 0x0008, 0xaf5: 0x1489,\n\t0xaf6: 0x0008, 0xaf7: 0x14a1, 0xaf8: 0x0008, 0xaf9: 0x14b9, 0xafa: 0x0008, 0xafb: 0x14d1,\n\t0xafc: 0x0008, 0xafd: 0x14e9, 0xafe: 0x0040, 0xaff: 0x0040,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0x1501, 0xb01: 0x1531, 0xb02: 0x1561, 0xb03: 0x1591, 0xb04: 0x15c1, 0xb05: 0x15f1,\n\t0xb06: 0x1621, 0xb07: 0x1651, 0xb08: 0x1501, 0xb09: 0x1531, 0xb0a: 0x1561, 0xb0b: 0x1591,\n\t0xb0c: 0x15c1, 0xb0d: 0x15f1, 0xb0e: 0x1621, 0xb0f: 0x1651, 0xb10: 0x1681, 0xb11: 0x16b1,\n\t0xb12: 0x16e1, 0xb13: 0x1711, 0xb14: 0x1741, 0xb15: 0x1771, 0xb16: 0x17a1, 0xb17: 0x17d1,\n\t0xb18: 0x1681, 0xb19: 0x16b1, 0xb1a: 0x16e1, 0xb1b: 0x1711, 0xb1c: 0x1741, 0xb1d: 0x1771,\n\t0xb1e: 0x17a1, 0xb1f: 0x17d1, 0xb20: 0x1801, 0xb21: 0x1831, 0xb22: 0x1861, 0xb23: 0x1891,\n\t0xb24: 0x18c1, 0xb25: 0x18f1, 0xb26: 0x1921, 0xb27: 0x1951, 0xb28: 0x1801, 0xb29: 0x1831,\n\t0xb2a: 0x1861, 0xb2b: 0x1891, 0xb2c: 0x18c1, 0xb2d: 0x18f1, 0xb2e: 0x1921, 0xb2f: 0x1951,\n\t0xb30: 0x0008, 0xb31: 0x0008, 0xb32: 0x1981, 0xb33: 0x19b1, 0xb34: 0x19d9, 0xb35: 0x0040,\n\t0xb36: 0x0008, 0xb37: 0x1a01, 0xb38: 0xe045, 0xb39: 0xe045, 0xb3a: 0x064d, 0xb3b: 0x1459,\n\t0xb3c: 0x19b1, 0xb3d: 0x0666, 0xb3e: 0x1a31, 0xb3f: 0x0686,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x06a6, 0xb41: 0x1a4a, 0xb42: 0x1a79, 0xb43: 0x1aa9, 0xb44: 0x1ad1, 0xb45: 0x0040,\n\t0xb46: 0x0008, 0xb47: 0x1af9, 0xb48: 0x06c5, 0xb49: 0x1471, 0xb4a: 0x06dd, 0xb4b: 0x1489,\n\t0xb4c: 0x1aa9, 0xb4d: 0x1b2a, 0xb4e: 0x1b5a, 0xb4f: 0x1b8a, 0xb50: 0x0008, 0xb51: 0x0008,\n\t0xb52: 0x0008, 0xb53: 0x1bb9, 0xb54: 0x0040, 0xb55: 0x0040, 0xb56: 0x0008, 0xb57: 0x0008,\n\t0xb58: 0xe045, 0xb59: 0xe045, 0xb5a: 0x06f5, 0xb5b: 0x14a1, 0xb5c: 0x0040, 0xb5d: 0x1bd2,\n\t0xb5e: 0x1c02, 0xb5f: 0x1c32, 0xb60: 0x0008, 0xb61: 0x0008, 0xb62: 0x0008, 0xb63: 0x1c61,\n\t0xb64: 0x0008, 0xb65: 0x0008, 0xb66: 0x0008, 0xb67: 0x0008, 0xb68: 0xe045, 0xb69: 0xe045,\n\t0xb6a: 0x070d, 0xb6b: 0x14d1, 0xb6c: 0xe04d, 0xb6d: 0x1c7a, 0xb6e: 0x03d2, 0xb6f: 0x1caa,\n\t0xb70: 0x0040, 0xb71: 0x0040, 0xb72: 0x1cb9, 0xb73: 0x1ce9, 0xb74: 0x1d11, 0xb75: 0x0040,\n\t0xb76: 0x0008, 0xb77: 0x1d39, 0xb78: 0x0725, 0xb79: 0x14b9, 0xb7a: 0x0515, 0xb7b: 0x14e9,\n\t0xb7c: 0x1ce9, 0xb7d: 0x073e, 0xb7e: 0x075e, 0xb7f: 0x0040,\n\t// Block 0x2e, offset 0xb80\n\t0xb80: 0x000a, 0xb81: 0x000a, 0xb82: 0x000a, 0xb83: 0x000a, 0xb84: 0x000a, 0xb85: 0x000a,\n\t0xb86: 0x000a, 0xb87: 0x000a, 0xb88: 0x000a, 0xb89: 0x000a, 0xb8a: 0x000a, 0xb8b: 0x03c0,\n\t0xb8c: 0x0003, 0xb8d: 0x0003, 0xb8e: 0x0340, 0xb8f: 0x0b40, 0xb90: 0x0018, 0xb91: 0xe00d,\n\t0xb92: 0x0018, 0xb93: 0x0018, 0xb94: 0x0018, 0xb95: 0x0018, 0xb96: 0x0018, 0xb97: 0x077e,\n\t0xb98: 0x0018, 0xb99: 0x0018, 0xb9a: 0x0018, 0xb9b: 0x0018, 0xb9c: 0x0018, 0xb9d: 0x0018,\n\t0xb9e: 0x0018, 0xb9f: 0x0018, 0xba0: 0x0018, 0xba1: 0x0018, 0xba2: 0x0018, 0xba3: 0x0018,\n\t0xba4: 0x0040, 0xba5: 0x0040, 0xba6: 0x0040, 0xba7: 0x0018, 0xba8: 0x0040, 0xba9: 0x0040,\n\t0xbaa: 0x0340, 0xbab: 0x0340, 0xbac: 0x0340, 0xbad: 0x0340, 0xbae: 0x0340, 0xbaf: 0x000a,\n\t0xbb0: 0x0018, 0xbb1: 0x0018, 0xbb2: 0x0018, 0xbb3: 0x1d69, 0xbb4: 0x1da1, 0xbb5: 0x0018,\n\t0xbb6: 0x1df1, 0xbb7: 0x1e29, 0xbb8: 0x0018, 0xbb9: 0x0018, 0xbba: 0x0018, 0xbbb: 0x0018,\n\t0xbbc: 0x1e7a, 0xbbd: 0x0018, 0xbbe: 0x079e, 0xbbf: 0x0018,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc0: 0x0018, 0xbc1: 0x0018, 0xbc2: 0x0018, 0xbc3: 0x0018, 0xbc4: 0x0018, 0xbc5: 0x0018,\n\t0xbc6: 0x0018, 0xbc7: 0x1e92, 0xbc8: 0x1eaa, 0xbc9: 0x1ec2, 0xbca: 0x0018, 0xbcb: 0x0018,\n\t0xbcc: 0x0018, 0xbcd: 0x0018, 0xbce: 0x0018, 0xbcf: 0x0018, 0xbd0: 0x0018, 0xbd1: 0x0018,\n\t0xbd2: 0x0018, 0xbd3: 0x0018, 0xbd4: 0x0018, 0xbd5: 0x0018, 0xbd6: 0x0018, 0xbd7: 0x1ed9,\n\t0xbd8: 0x0018, 0xbd9: 0x0018, 0xbda: 0x0018, 0xbdb: 0x0018, 0xbdc: 0x0018, 0xbdd: 0x0018,\n\t0xbde: 0x0018, 0xbdf: 0x000a, 0xbe0: 0x03c0, 0xbe1: 0x0340, 0xbe2: 0x0340, 0xbe3: 0x0340,\n\t0xbe4: 0x03c0, 0xbe5: 0x0040, 0xbe6: 0x0040, 0xbe7: 0x0040, 0xbe8: 0x0040, 0xbe9: 0x0040,\n\t0xbea: 0x0340, 0xbeb: 0x0340, 0xbec: 0x0340, 0xbed: 0x0340, 0xbee: 0x0340, 0xbef: 0x0340,\n\t0xbf0: 0x1f41, 0xbf1: 0x0f41, 0xbf2: 0x0040, 0xbf3: 0x0040, 0xbf4: 0x1f51, 0xbf5: 0x1f61,\n\t0xbf6: 0x1f71, 0xbf7: 0x1f81, 0xbf8: 0x1f91, 0xbf9: 0x1fa1, 0xbfa: 0x1fb2, 0xbfb: 0x07bd,\n\t0xbfc: 0x1fc2, 0xbfd: 0x1fd2, 0xbfe: 0x1fe2, 0xbff: 0x0f71,\n\t// Block 0x30, offset 0xc00\n\t0xc00: 0x1f41, 0xc01: 0x00c9, 0xc02: 0x0069, 0xc03: 0x0079, 0xc04: 0x1f51, 0xc05: 0x1f61,\n\t0xc06: 0x1f71, 0xc07: 0x1f81, 0xc08: 0x1f91, 0xc09: 0x1fa1, 0xc0a: 0x1fb2, 0xc0b: 0x07d5,\n\t0xc0c: 0x1fc2, 0xc0d: 0x1fd2, 0xc0e: 0x1fe2, 0xc0f: 0x0040, 0xc10: 0x0039, 0xc11: 0x0f09,\n\t0xc12: 0x00d9, 0xc13: 0x0369, 0xc14: 0x0ff9, 0xc15: 0x0249, 0xc16: 0x0f51, 0xc17: 0x0359,\n\t0xc18: 0x0f61, 0xc19: 0x0f71, 0xc1a: 0x0f99, 0xc1b: 0x01d9, 0xc1c: 0x0fa9, 0xc1d: 0x0040,\n\t0xc1e: 0x0040, 0xc1f: 0x0040, 0xc20: 0x0018, 0xc21: 0x0018, 0xc22: 0x0018, 0xc23: 0x0018,\n\t0xc24: 0x0018, 0xc25: 0x0018, 0xc26: 0x0018, 0xc27: 0x0018, 0xc28: 0x1ff1, 0xc29: 0x0018,\n\t0xc2a: 0x0018, 0xc2b: 0x0018, 0xc2c: 0x0018, 0xc2d: 0x0018, 0xc2e: 0x0018, 0xc2f: 0x0018,\n\t0xc30: 0x0018, 0xc31: 0x0018, 0xc32: 0x0018, 0xc33: 0x0018, 0xc34: 0x0018, 0xc35: 0x0018,\n\t0xc36: 0x0018, 0xc37: 0x0018, 0xc38: 0x0018, 0xc39: 0x0018, 0xc3a: 0x0018, 0xc3b: 0x0018,\n\t0xc3c: 0x0018, 0xc3d: 0x0018, 0xc3e: 0x0018, 0xc3f: 0x0040,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x07ee, 0xc41: 0x080e, 0xc42: 0x1159, 0xc43: 0x082d, 0xc44: 0x0018, 0xc45: 0x084e,\n\t0xc46: 0x086e, 0xc47: 0x1011, 0xc48: 0x0018, 0xc49: 0x088d, 0xc4a: 0x0f31, 0xc4b: 0x0249,\n\t0xc4c: 0x0249, 0xc4d: 0x0249, 0xc4e: 0x0249, 0xc4f: 0x2009, 0xc50: 0x0f41, 0xc51: 0x0f41,\n\t0xc52: 0x0359, 0xc53: 0x0359, 0xc54: 0x0018, 0xc55: 0x0f71, 0xc56: 0x2021, 0xc57: 0x0018,\n\t0xc58: 0x0018, 0xc59: 0x0f99, 0xc5a: 0x2039, 0xc5b: 0x0269, 0xc5c: 0x0269, 0xc5d: 0x0269,\n\t0xc5e: 0x0018, 0xc5f: 0x0018, 0xc60: 0x2049, 0xc61: 0x08ad, 0xc62: 0x2061, 0xc63: 0x0018,\n\t0xc64: 0x13d1, 0xc65: 0x0018, 0xc66: 0x2079, 0xc67: 0x0018, 0xc68: 0x13d1, 0xc69: 0x0018,\n\t0xc6a: 0x0f51, 0xc6b: 0x2091, 0xc6c: 0x0ee9, 0xc6d: 0x1159, 0xc6e: 0x0018, 0xc6f: 0x0f09,\n\t0xc70: 0x0f09, 0xc71: 0x1199, 0xc72: 0x0040, 0xc73: 0x0f61, 0xc74: 0x00d9, 0xc75: 0x20a9,\n\t0xc76: 0x20c1, 0xc77: 0x20d9, 0xc78: 0x20f1, 0xc79: 0x0f41, 0xc7a: 0x0018, 0xc7b: 0x08cd,\n\t0xc7c: 0x2109, 0xc7d: 0x10b1, 0xc7e: 0x10b1, 0xc7f: 0x2109,\n\t// Block 0x32, offset 0xc80\n\t0xc80: 0x08ed, 0xc81: 0x0018, 0xc82: 0x0018, 0xc83: 0x0018, 0xc84: 0x0018, 0xc85: 0x0ef9,\n\t0xc86: 0x0ef9, 0xc87: 0x0f09, 0xc88: 0x0f41, 0xc89: 0x0259, 0xc8a: 0x0018, 0xc8b: 0x0018,\n\t0xc8c: 0x0018, 0xc8d: 0x0018, 0xc8e: 0x0008, 0xc8f: 0x0018, 0xc90: 0x2121, 0xc91: 0x2151,\n\t0xc92: 0x2181, 0xc93: 0x21b9, 0xc94: 0x21e9, 0xc95: 0x2219, 0xc96: 0x2249, 0xc97: 0x2279,\n\t0xc98: 0x22a9, 0xc99: 0x22d9, 0xc9a: 0x2309, 0xc9b: 0x2339, 0xc9c: 0x2369, 0xc9d: 0x2399,\n\t0xc9e: 0x23c9, 0xc9f: 0x23f9, 0xca0: 0x0f41, 0xca1: 0x2421, 0xca2: 0x0905, 0xca3: 0x2439,\n\t0xca4: 0x1089, 0xca5: 0x2451, 0xca6: 0x0925, 0xca7: 0x2469, 0xca8: 0x2491, 0xca9: 0x0369,\n\t0xcaa: 0x24a9, 0xcab: 0x0945, 0xcac: 0x0359, 0xcad: 0x1159, 0xcae: 0x0ef9, 0xcaf: 0x0f61,\n\t0xcb0: 0x0f41, 0xcb1: 0x2421, 0xcb2: 0x0965, 0xcb3: 0x2439, 0xcb4: 0x1089, 0xcb5: 0x2451,\n\t0xcb6: 0x0985, 0xcb7: 0x2469, 0xcb8: 0x2491, 0xcb9: 0x0369, 0xcba: 0x24a9, 0xcbb: 0x09a5,\n\t0xcbc: 0x0359, 0xcbd: 0x1159, 0xcbe: 0x0ef9, 0xcbf: 0x0f61,\n\t// Block 0x33, offset 0xcc0\n\t0xcc0: 0x0018, 0xcc1: 0x0018, 0xcc2: 0x0018, 0xcc3: 0x0018, 0xcc4: 0x0018, 0xcc5: 0x0018,\n\t0xcc6: 0x0018, 0xcc7: 0x0018, 0xcc8: 0x0018, 0xcc9: 0x0018, 0xcca: 0x0018, 0xccb: 0x0040,\n\t0xccc: 0x0040, 0xccd: 0x0040, 0xcce: 0x0040, 0xccf: 0x0040, 0xcd0: 0x0040, 0xcd1: 0x0040,\n\t0xcd2: 0x0040, 0xcd3: 0x0040, 0xcd4: 0x0040, 0xcd5: 0x0040, 0xcd6: 0x0040, 0xcd7: 0x0040,\n\t0xcd8: 0x0040, 0xcd9: 0x0040, 0xcda: 0x0040, 0xcdb: 0x0040, 0xcdc: 0x0040, 0xcdd: 0x0040,\n\t0xcde: 0x0040, 0xcdf: 0x0040, 0xce0: 0x00c9, 0xce1: 0x0069, 0xce2: 0x0079, 0xce3: 0x1f51,\n\t0xce4: 0x1f61, 0xce5: 0x1f71, 0xce6: 0x1f81, 0xce7: 0x1f91, 0xce8: 0x1fa1, 0xce9: 0x2601,\n\t0xcea: 0x2619, 0xceb: 0x2631, 0xcec: 0x2649, 0xced: 0x2661, 0xcee: 0x2679, 0xcef: 0x2691,\n\t0xcf0: 0x26a9, 0xcf1: 0x26c1, 0xcf2: 0x26d9, 0xcf3: 0x26f1, 0xcf4: 0x0a06, 0xcf5: 0x0a26,\n\t0xcf6: 0x0a46, 0xcf7: 0x0a66, 0xcf8: 0x0a86, 0xcf9: 0x0aa6, 0xcfa: 0x0ac6, 0xcfb: 0x0ae6,\n\t0xcfc: 0x0b06, 0xcfd: 0x270a, 0xcfe: 0x2732, 0xcff: 0x275a,\n\t// Block 0x34, offset 0xd00\n\t0xd00: 0x2782, 0xd01: 0x27aa, 0xd02: 0x27d2, 0xd03: 0x27fa, 0xd04: 0x2822, 0xd05: 0x284a,\n\t0xd06: 0x2872, 0xd07: 0x289a, 0xd08: 0x0040, 0xd09: 0x0040, 0xd0a: 0x0040, 0xd0b: 0x0040,\n\t0xd0c: 0x0040, 0xd0d: 0x0040, 0xd0e: 0x0040, 0xd0f: 0x0040, 0xd10: 0x0040, 0xd11: 0x0040,\n\t0xd12: 0x0040, 0xd13: 0x0040, 0xd14: 0x0040, 0xd15: 0x0040, 0xd16: 0x0040, 0xd17: 0x0040,\n\t0xd18: 0x0040, 0xd19: 0x0040, 0xd1a: 0x0040, 0xd1b: 0x0040, 0xd1c: 0x0b26, 0xd1d: 0x0b46,\n\t0xd1e: 0x0b66, 0xd1f: 0x0b86, 0xd20: 0x0ba6, 0xd21: 0x0bc6, 0xd22: 0x0be6, 0xd23: 0x0c06,\n\t0xd24: 0x0c26, 0xd25: 0x0c46, 0xd26: 0x0c66, 0xd27: 0x0c86, 0xd28: 0x0ca6, 0xd29: 0x0cc6,\n\t0xd2a: 0x0ce6, 0xd2b: 0x0d06, 0xd2c: 0x0d26, 0xd2d: 0x0d46, 0xd2e: 0x0d66, 0xd2f: 0x0d86,\n\t0xd30: 0x0da6, 0xd31: 0x0dc6, 0xd32: 0x0de6, 0xd33: 0x0e06, 0xd34: 0x0e26, 0xd35: 0x0e46,\n\t0xd36: 0x0039, 0xd37: 0x0ee9, 0xd38: 0x1159, 0xd39: 0x0ef9, 0xd3a: 0x0f09, 0xd3b: 0x1199,\n\t0xd3c: 0x0f31, 0xd3d: 0x0249, 0xd3e: 0x0f41, 0xd3f: 0x0259,\n\t// Block 0x35, offset 0xd40\n\t0xd40: 0x0f51, 0xd41: 0x0359, 0xd42: 0x0f61, 0xd43: 0x0f71, 0xd44: 0x00d9, 0xd45: 0x0f99,\n\t0xd46: 0x2039, 0xd47: 0x0269, 0xd48: 0x01d9, 0xd49: 0x0fa9, 0xd4a: 0x0fb9, 0xd4b: 0x1089,\n\t0xd4c: 0x0279, 0xd4d: 0x0369, 0xd4e: 0x0289, 0xd4f: 0x13d1, 0xd50: 0x0039, 0xd51: 0x0ee9,\n\t0xd52: 0x1159, 0xd53: 0x0ef9, 0xd54: 0x0f09, 0xd55: 0x1199, 0xd56: 0x0f31, 0xd57: 0x0249,\n\t0xd58: 0x0f41, 0xd59: 0x0259, 0xd5a: 0x0f51, 0xd5b: 0x0359, 0xd5c: 0x0f61, 0xd5d: 0x0f71,\n\t0xd5e: 0x00d9, 0xd5f: 0x0f99, 0xd60: 0x2039, 0xd61: 0x0269, 0xd62: 0x01d9, 0xd63: 0x0fa9,\n\t0xd64: 0x0fb9, 0xd65: 0x1089, 0xd66: 0x0279, 0xd67: 0x0369, 0xd68: 0x0289, 0xd69: 0x13d1,\n\t0xd6a: 0x1f41, 0xd6b: 0x0018, 0xd6c: 0x0018, 0xd6d: 0x0018, 0xd6e: 0x0018, 0xd6f: 0x0018,\n\t0xd70: 0x0018, 0xd71: 0x0018, 0xd72: 0x0018, 0xd73: 0x0018, 0xd74: 0x0018, 0xd75: 0x0018,\n\t0xd76: 0x0018, 0xd77: 0x0018, 0xd78: 0x0018, 0xd79: 0x0018, 0xd7a: 0x0018, 0xd7b: 0x0018,\n\t0xd7c: 0x0018, 0xd7d: 0x0018, 0xd7e: 0x0018, 0xd7f: 0x0018,\n\t// Block 0x36, offset 0xd80\n\t0xd80: 0x0008, 0xd81: 0x0008, 0xd82: 0x0008, 0xd83: 0x0008, 0xd84: 0x0008, 0xd85: 0x0008,\n\t0xd86: 0x0008, 0xd87: 0x0008, 0xd88: 0x0008, 0xd89: 0x0008, 0xd8a: 0x0008, 0xd8b: 0x0008,\n\t0xd8c: 0x0008, 0xd8d: 0x0008, 0xd8e: 0x0008, 0xd8f: 0x0008, 0xd90: 0x0008, 0xd91: 0x0008,\n\t0xd92: 0x0008, 0xd93: 0x0008, 0xd94: 0x0008, 0xd95: 0x0008, 0xd96: 0x0008, 0xd97: 0x0008,\n\t0xd98: 0x0008, 0xd99: 0x0008, 0xd9a: 0x0008, 0xd9b: 0x0008, 0xd9c: 0x0008, 0xd9d: 0x0008,\n\t0xd9e: 0x0008, 0xd9f: 0x0040, 0xda0: 0xe00d, 0xda1: 0x0008, 0xda2: 0x2971, 0xda3: 0x0ebd,\n\t0xda4: 0x2989, 0xda5: 0x0008, 0xda6: 0x0008, 0xda7: 0xe07d, 0xda8: 0x0008, 0xda9: 0xe01d,\n\t0xdaa: 0x0008, 0xdab: 0xe03d, 0xdac: 0x0008, 0xdad: 0x0fe1, 0xdae: 0x1281, 0xdaf: 0x0fc9,\n\t0xdb0: 0x1141, 0xdb1: 0x0008, 0xdb2: 0xe00d, 0xdb3: 0x0008, 0xdb4: 0x0008, 0xdb5: 0xe01d,\n\t0xdb6: 0x0008, 0xdb7: 0x0008, 0xdb8: 0x0008, 0xdb9: 0x0008, 0xdba: 0x0008, 0xdbb: 0x0008,\n\t0xdbc: 0x0259, 0xdbd: 0x1089, 0xdbe: 0x29a1, 0xdbf: 0x29b9,\n\t// Block 0x37, offset 0xdc0\n\t0xdc0: 0xe00d, 0xdc1: 0x0008, 0xdc2: 0xe00d, 0xdc3: 0x0008, 0xdc4: 0xe00d, 0xdc5: 0x0008,\n\t0xdc6: 0xe00d, 0xdc7: 0x0008, 0xdc8: 0xe00d, 0xdc9: 0x0008, 0xdca: 0xe00d, 0xdcb: 0x0008,\n\t0xdcc: 0xe00d, 0xdcd: 0x0008, 0xdce: 0xe00d, 0xdcf: 0x0008, 0xdd0: 0xe00d, 0xdd1: 0x0008,\n\t0xdd2: 0xe00d, 0xdd3: 0x0008, 0xdd4: 0xe00d, 0xdd5: 0x0008, 0xdd6: 0xe00d, 0xdd7: 0x0008,\n\t0xdd8: 0xe00d, 0xdd9: 0x0008, 0xdda: 0xe00d, 0xddb: 0x0008, 0xddc: 0xe00d, 0xddd: 0x0008,\n\t0xdde: 0xe00d, 0xddf: 0x0008, 0xde0: 0xe00d, 0xde1: 0x0008, 0xde2: 0xe00d, 0xde3: 0x0008,\n\t0xde4: 0x0008, 0xde5: 0x0018, 0xde6: 0x0018, 0xde7: 0x0018, 0xde8: 0x0018, 0xde9: 0x0018,\n\t0xdea: 0x0018, 0xdeb: 0xe03d, 0xdec: 0x0008, 0xded: 0xe01d, 0xdee: 0x0008, 0xdef: 0x3308,\n\t0xdf0: 0x3308, 0xdf1: 0x3308, 0xdf2: 0xe00d, 0xdf3: 0x0008, 0xdf4: 0x0040, 0xdf5: 0x0040,\n\t0xdf6: 0x0040, 0xdf7: 0x0040, 0xdf8: 0x0040, 0xdf9: 0x0018, 0xdfa: 0x0018, 0xdfb: 0x0018,\n\t0xdfc: 0x0018, 0xdfd: 0x0018, 0xdfe: 0x0018, 0xdff: 0x0018,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0x26fd, 0xe01: 0x271d, 0xe02: 0x273d, 0xe03: 0x275d, 0xe04: 0x277d, 0xe05: 0x279d,\n\t0xe06: 0x27bd, 0xe07: 0x27dd, 0xe08: 0x27fd, 0xe09: 0x281d, 0xe0a: 0x283d, 0xe0b: 0x285d,\n\t0xe0c: 0x287d, 0xe0d: 0x289d, 0xe0e: 0x28bd, 0xe0f: 0x28dd, 0xe10: 0x28fd, 0xe11: 0x291d,\n\t0xe12: 0x293d, 0xe13: 0x295d, 0xe14: 0x297d, 0xe15: 0x299d, 0xe16: 0x0040, 0xe17: 0x0040,\n\t0xe18: 0x0040, 0xe19: 0x0040, 0xe1a: 0x0040, 0xe1b: 0x0040, 0xe1c: 0x0040, 0xe1d: 0x0040,\n\t0xe1e: 0x0040, 0xe1f: 0x0040, 0xe20: 0x0040, 0xe21: 0x0040, 0xe22: 0x0040, 0xe23: 0x0040,\n\t0xe24: 0x0040, 0xe25: 0x0040, 0xe26: 0x0040, 0xe27: 0x0040, 0xe28: 0x0040, 0xe29: 0x0040,\n\t0xe2a: 0x0040, 0xe2b: 0x0040, 0xe2c: 0x0040, 0xe2d: 0x0040, 0xe2e: 0x0040, 0xe2f: 0x0040,\n\t0xe30: 0x0040, 0xe31: 0x0040, 0xe32: 0x0040, 0xe33: 0x0040, 0xe34: 0x0040, 0xe35: 0x0040,\n\t0xe36: 0x0040, 0xe37: 0x0040, 0xe38: 0x0040, 0xe39: 0x0040, 0xe3a: 0x0040, 0xe3b: 0x0040,\n\t0xe3c: 0x0040, 0xe3d: 0x0040, 0xe3e: 0x0040, 0xe3f: 0x0040,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x000a, 0xe41: 0x0018, 0xe42: 0x29d1, 0xe43: 0x0018, 0xe44: 0x0018, 0xe45: 0x0008,\n\t0xe46: 0x0008, 0xe47: 0x0008, 0xe48: 0x0018, 0xe49: 0x0018, 0xe4a: 0x0018, 0xe4b: 0x0018,\n\t0xe4c: 0x0018, 0xe4d: 0x0018, 0xe4e: 0x0018, 0xe4f: 0x0018, 0xe50: 0x0018, 0xe51: 0x0018,\n\t0xe52: 0x0018, 0xe53: 0x0018, 0xe54: 0x0018, 0xe55: 0x0018, 0xe56: 0x0018, 0xe57: 0x0018,\n\t0xe58: 0x0018, 0xe59: 0x0018, 0xe5a: 0x0018, 0xe5b: 0x0018, 0xe5c: 0x0018, 0xe5d: 0x0018,\n\t0xe5e: 0x0018, 0xe5f: 0x0018, 0xe60: 0x0018, 0xe61: 0x0018, 0xe62: 0x0018, 0xe63: 0x0018,\n\t0xe64: 0x0018, 0xe65: 0x0018, 0xe66: 0x0018, 0xe67: 0x0018, 0xe68: 0x0018, 0xe69: 0x0018,\n\t0xe6a: 0x3308, 0xe6b: 0x3308, 0xe6c: 0x3308, 0xe6d: 0x3308, 0xe6e: 0x3018, 0xe6f: 0x3018,\n\t0xe70: 0x0018, 0xe71: 0x0018, 0xe72: 0x0018, 0xe73: 0x0018, 0xe74: 0x0018, 0xe75: 0x0018,\n\t0xe76: 0xe125, 0xe77: 0x0018, 0xe78: 0x29bd, 0xe79: 0x29dd, 0xe7a: 0x29fd, 0xe7b: 0x0018,\n\t0xe7c: 0x0008, 0xe7d: 0x0018, 0xe7e: 0x0018, 0xe7f: 0x0018,\n\t// Block 0x3a, offset 0xe80\n\t0xe80: 0x2b3d, 0xe81: 0x2b5d, 0xe82: 0x2b7d, 0xe83: 0x2b9d, 0xe84: 0x2bbd, 0xe85: 0x2bdd,\n\t0xe86: 0x2bdd, 0xe87: 0x2bdd, 0xe88: 0x2bfd, 0xe89: 0x2bfd, 0xe8a: 0x2bfd, 0xe8b: 0x2bfd,\n\t0xe8c: 0x2c1d, 0xe8d: 0x2c1d, 0xe8e: 0x2c1d, 0xe8f: 0x2c3d, 0xe90: 0x2c5d, 0xe91: 0x2c5d,\n\t0xe92: 0x2a7d, 0xe93: 0x2a7d, 0xe94: 0x2c5d, 0xe95: 0x2c5d, 0xe96: 0x2c7d, 0xe97: 0x2c7d,\n\t0xe98: 0x2c5d, 0xe99: 0x2c5d, 0xe9a: 0x2a7d, 0xe9b: 0x2a7d, 0xe9c: 0x2c5d, 0xe9d: 0x2c5d,\n\t0xe9e: 0x2c3d, 0xe9f: 0x2c3d, 0xea0: 0x2c9d, 0xea1: 0x2c9d, 0xea2: 0x2cbd, 0xea3: 0x2cbd,\n\t0xea4: 0x0040, 0xea5: 0x2cdd, 0xea6: 0x2cfd, 0xea7: 0x2d1d, 0xea8: 0x2d1d, 0xea9: 0x2d3d,\n\t0xeaa: 0x2d5d, 0xeab: 0x2d7d, 0xeac: 0x2d9d, 0xead: 0x2dbd, 0xeae: 0x2ddd, 0xeaf: 0x2dfd,\n\t0xeb0: 0x2e1d, 0xeb1: 0x2e3d, 0xeb2: 0x2e3d, 0xeb3: 0x2e5d, 0xeb4: 0x2e7d, 0xeb5: 0x2e7d,\n\t0xeb6: 0x2e9d, 0xeb7: 0x2ebd, 0xeb8: 0x2e5d, 0xeb9: 0x2edd, 0xeba: 0x2efd, 0xebb: 0x2edd,\n\t0xebc: 0x2e5d, 0xebd: 0x2f1d, 0xebe: 0x2f3d, 0xebf: 0x2f5d,\n\t// Block 0x3b, offset 0xec0\n\t0xec0: 0x2f7d, 0xec1: 0x2f9d, 0xec2: 0x2cfd, 0xec3: 0x2cdd, 0xec4: 0x2fbd, 0xec5: 0x2fdd,\n\t0xec6: 0x2ffd, 0xec7: 0x301d, 0xec8: 0x303d, 0xec9: 0x305d, 0xeca: 0x307d, 0xecb: 0x309d,\n\t0xecc: 0x30bd, 0xecd: 0x30dd, 0xece: 0x30fd, 0xecf: 0x0040, 0xed0: 0x0018, 0xed1: 0x0018,\n\t0xed2: 0x311d, 0xed3: 0x313d, 0xed4: 0x315d, 0xed5: 0x317d, 0xed6: 0x319d, 0xed7: 0x31bd,\n\t0xed8: 0x31dd, 0xed9: 0x31fd, 0xeda: 0x321d, 0xedb: 0x323d, 0xedc: 0x315d, 0xedd: 0x325d,\n\t0xede: 0x327d, 0xedf: 0x329d, 0xee0: 0x0008, 0xee1: 0x0008, 0xee2: 0x0008, 0xee3: 0x0008,\n\t0xee4: 0x0008, 0xee5: 0x0008, 0xee6: 0x0008, 0xee7: 0x0008, 0xee8: 0x0008, 0xee9: 0x0008,\n\t0xeea: 0x0008, 0xeeb: 0x0008, 0xeec: 0x0008, 0xeed: 0x0008, 0xeee: 0x0008, 0xeef: 0x0008,\n\t0xef0: 0x0008, 0xef1: 0x0008, 0xef2: 0x0008, 0xef3: 0x0008, 0xef4: 0x0008, 0xef5: 0x0008,\n\t0xef6: 0x0008, 0xef7: 0x0008, 0xef8: 0x0008, 0xef9: 0x0008, 0xefa: 0x0008, 0xefb: 0x0040,\n\t0xefc: 0x0040, 0xefd: 0x0040, 0xefe: 0x0040, 0xeff: 0x0040,\n\t// Block 0x3c, offset 0xf00\n\t0xf00: 0x36a2, 0xf01: 0x36d2, 0xf02: 0x3702, 0xf03: 0x3732, 0xf04: 0x32bd, 0xf05: 0x32dd,\n\t0xf06: 0x32fd, 0xf07: 0x331d, 0xf08: 0x0018, 0xf09: 0x0018, 0xf0a: 0x0018, 0xf0b: 0x0018,\n\t0xf0c: 0x0018, 0xf0d: 0x0018, 0xf0e: 0x0018, 0xf0f: 0x0018, 0xf10: 0x333d, 0xf11: 0x3761,\n\t0xf12: 0x3779, 0xf13: 0x3791, 0xf14: 0x37a9, 0xf15: 0x37c1, 0xf16: 0x37d9, 0xf17: 0x37f1,\n\t0xf18: 0x3809, 0xf19: 0x3821, 0xf1a: 0x3839, 0xf1b: 0x3851, 0xf1c: 0x3869, 0xf1d: 0x3881,\n\t0xf1e: 0x3899, 0xf1f: 0x38b1, 0xf20: 0x335d, 0xf21: 0x337d, 0xf22: 0x339d, 0xf23: 0x33bd,\n\t0xf24: 0x33dd, 0xf25: 0x33dd, 0xf26: 0x33fd, 0xf27: 0x341d, 0xf28: 0x343d, 0xf29: 0x345d,\n\t0xf2a: 0x347d, 0xf2b: 0x349d, 0xf2c: 0x34bd, 0xf2d: 0x34dd, 0xf2e: 0x34fd, 0xf2f: 0x351d,\n\t0xf30: 0x353d, 0xf31: 0x355d, 0xf32: 0x357d, 0xf33: 0x359d, 0xf34: 0x35bd, 0xf35: 0x35dd,\n\t0xf36: 0x35fd, 0xf37: 0x361d, 0xf38: 0x363d, 0xf39: 0x365d, 0xf3a: 0x367d, 0xf3b: 0x369d,\n\t0xf3c: 0x38c9, 0xf3d: 0x3901, 0xf3e: 0x36bd, 0xf3f: 0x0018,\n\t// Block 0x3d, offset 0xf40\n\t0xf40: 0x36dd, 0xf41: 0x36fd, 0xf42: 0x371d, 0xf43: 0x373d, 0xf44: 0x375d, 0xf45: 0x377d,\n\t0xf46: 0x379d, 0xf47: 0x37bd, 0xf48: 0x37dd, 0xf49: 0x37fd, 0xf4a: 0x381d, 0xf4b: 0x383d,\n\t0xf4c: 0x385d, 0xf4d: 0x387d, 0xf4e: 0x389d, 0xf4f: 0x38bd, 0xf50: 0x38dd, 0xf51: 0x38fd,\n\t0xf52: 0x391d, 0xf53: 0x393d, 0xf54: 0x395d, 0xf55: 0x397d, 0xf56: 0x399d, 0xf57: 0x39bd,\n\t0xf58: 0x39dd, 0xf59: 0x39fd, 0xf5a: 0x3a1d, 0xf5b: 0x3a3d, 0xf5c: 0x3a5d, 0xf5d: 0x3a7d,\n\t0xf5e: 0x3a9d, 0xf5f: 0x3abd, 0xf60: 0x3add, 0xf61: 0x3afd, 0xf62: 0x3b1d, 0xf63: 0x3b3d,\n\t0xf64: 0x3b5d, 0xf65: 0x3b7d, 0xf66: 0x127d, 0xf67: 0x3b9d, 0xf68: 0x3bbd, 0xf69: 0x3bdd,\n\t0xf6a: 0x3bfd, 0xf6b: 0x3c1d, 0xf6c: 0x3c3d, 0xf6d: 0x3c5d, 0xf6e: 0x239d, 0xf6f: 0x3c7d,\n\t0xf70: 0x3c9d, 0xf71: 0x3939, 0xf72: 0x3951, 0xf73: 0x3969, 0xf74: 0x3981, 0xf75: 0x3999,\n\t0xf76: 0x39b1, 0xf77: 0x39c9, 0xf78: 0x39e1, 0xf79: 0x39f9, 0xf7a: 0x3a11, 0xf7b: 0x3a29,\n\t0xf7c: 0x3a41, 0xf7d: 0x3a59, 0xf7e: 0x3a71, 0xf7f: 0x3a89,\n\t// Block 0x3e, offset 0xf80\n\t0xf80: 0x3aa1, 0xf81: 0x3ac9, 0xf82: 0x3af1, 0xf83: 0x3b19, 0xf84: 0x3b41, 0xf85: 0x3b69,\n\t0xf86: 0x3b91, 0xf87: 0x3bb9, 0xf88: 0x3be1, 0xf89: 0x3c09, 0xf8a: 0x3c39, 0xf8b: 0x3c69,\n\t0xf8c: 0x3c99, 0xf8d: 0x3cbd, 0xf8e: 0x3cb1, 0xf8f: 0x3cdd, 0xf90: 0x3cfd, 0xf91: 0x3d15,\n\t0xf92: 0x3d2d, 0xf93: 0x3d45, 0xf94: 0x3d5d, 0xf95: 0x3d5d, 0xf96: 0x3d45, 0xf97: 0x3d75,\n\t0xf98: 0x07bd, 0xf99: 0x3d8d, 0xf9a: 0x3da5, 0xf9b: 0x3dbd, 0xf9c: 0x3dd5, 0xf9d: 0x3ded,\n\t0xf9e: 0x3e05, 0xf9f: 0x3e1d, 0xfa0: 0x3e35, 0xfa1: 0x3e4d, 0xfa2: 0x3e65, 0xfa3: 0x3e7d,\n\t0xfa4: 0x3e95, 0xfa5: 0x3e95, 0xfa6: 0x3ead, 0xfa7: 0x3ead, 0xfa8: 0x3ec5, 0xfa9: 0x3ec5,\n\t0xfaa: 0x3edd, 0xfab: 0x3ef5, 0xfac: 0x3f0d, 0xfad: 0x3f25, 0xfae: 0x3f3d, 0xfaf: 0x3f3d,\n\t0xfb0: 0x3f55, 0xfb1: 0x3f55, 0xfb2: 0x3f55, 0xfb3: 0x3f6d, 0xfb4: 0x3f85, 0xfb5: 0x3f9d,\n\t0xfb6: 0x3fb5, 0xfb7: 0x3f9d, 0xfb8: 0x3fcd, 0xfb9: 0x3fe5, 0xfba: 0x3f6d, 0xfbb: 0x3ffd,\n\t0xfbc: 0x4015, 0xfbd: 0x4015, 0xfbe: 0x4015, 0xfbf: 0x0040,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc0: 0x3cc9, 0xfc1: 0x3d31, 0xfc2: 0x3d99, 0xfc3: 0x3e01, 0xfc4: 0x3e51, 0xfc5: 0x3eb9,\n\t0xfc6: 0x3f09, 0xfc7: 0x3f59, 0xfc8: 0x3fd9, 0xfc9: 0x4041, 0xfca: 0x4091, 0xfcb: 0x40e1,\n\t0xfcc: 0x4131, 0xfcd: 0x4199, 0xfce: 0x4201, 0xfcf: 0x4251, 0xfd0: 0x42a1, 0xfd1: 0x42d9,\n\t0xfd2: 0x4329, 0xfd3: 0x4391, 0xfd4: 0x43f9, 0xfd5: 0x4431, 0xfd6: 0x44b1, 0xfd7: 0x4549,\n\t0xfd8: 0x45c9, 0xfd9: 0x4619, 0xfda: 0x4699, 0xfdb: 0x4719, 0xfdc: 0x4781, 0xfdd: 0x47d1,\n\t0xfde: 0x4821, 0xfdf: 0x4871, 0xfe0: 0x48d9, 0xfe1: 0x4959, 0xfe2: 0x49c1, 0xfe3: 0x4a11,\n\t0xfe4: 0x4a61, 0xfe5: 0x4ab1, 0xfe6: 0x4ae9, 0xfe7: 0x4b21, 0xfe8: 0x4b59, 0xfe9: 0x4b91,\n\t0xfea: 0x4be1, 0xfeb: 0x4c31, 0xfec: 0x4cb1, 0xfed: 0x4d01, 0xfee: 0x4d69, 0xfef: 0x4de9,\n\t0xff0: 0x4e39, 0xff1: 0x4e71, 0xff2: 0x4ea9, 0xff3: 0x4f29, 0xff4: 0x4f91, 0xff5: 0x5011,\n\t0xff6: 0x5061, 0xff7: 0x50e1, 0xff8: 0x5119, 0xff9: 0x5169, 0xffa: 0x51b9, 0xffb: 0x5209,\n\t0xffc: 0x5259, 0xffd: 0x52a9, 0xffe: 0x5311, 0xfff: 0x5361,\n\t// Block 0x40, offset 0x1000\n\t0x1000: 0x5399, 0x1001: 0x53e9, 0x1002: 0x5439, 0x1003: 0x5489, 0x1004: 0x54f1, 0x1005: 0x5541,\n\t0x1006: 0x5591, 0x1007: 0x55e1, 0x1008: 0x5661, 0x1009: 0x56c9, 0x100a: 0x5701, 0x100b: 0x5781,\n\t0x100c: 0x57b9, 0x100d: 0x5821, 0x100e: 0x5889, 0x100f: 0x58d9, 0x1010: 0x5929, 0x1011: 0x5979,\n\t0x1012: 0x59e1, 0x1013: 0x5a19, 0x1014: 0x5a69, 0x1015: 0x5ad1, 0x1016: 0x5b09, 0x1017: 0x5b89,\n\t0x1018: 0x5bd9, 0x1019: 0x5c01, 0x101a: 0x5c29, 0x101b: 0x5c51, 0x101c: 0x5c79, 0x101d: 0x5ca1,\n\t0x101e: 0x5cc9, 0x101f: 0x5cf1, 0x1020: 0x5d19, 0x1021: 0x5d41, 0x1022: 0x5d69, 0x1023: 0x5d99,\n\t0x1024: 0x5dc9, 0x1025: 0x5df9, 0x1026: 0x5e29, 0x1027: 0x5e59, 0x1028: 0x5e89, 0x1029: 0x5eb9,\n\t0x102a: 0x5ee9, 0x102b: 0x5f19, 0x102c: 0x5f49, 0x102d: 0x5f79, 0x102e: 0x5fa9, 0x102f: 0x5fd9,\n\t0x1030: 0x6009, 0x1031: 0x402d, 0x1032: 0x6039, 0x1033: 0x6051, 0x1034: 0x404d, 0x1035: 0x6069,\n\t0x1036: 0x6081, 0x1037: 0x6099, 0x1038: 0x406d, 0x1039: 0x406d, 0x103a: 0x60b1, 0x103b: 0x60c9,\n\t0x103c: 0x6101, 0x103d: 0x6139, 0x103e: 0x6171, 0x103f: 0x61a9,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x6211, 0x1041: 0x6229, 0x1042: 0x408d, 0x1043: 0x6241, 0x1044: 0x6259, 0x1045: 0x6271,\n\t0x1046: 0x6289, 0x1047: 0x62a1, 0x1048: 0x40ad, 0x1049: 0x62b9, 0x104a: 0x62e1, 0x104b: 0x62f9,\n\t0x104c: 0x40cd, 0x104d: 0x40cd, 0x104e: 0x6311, 0x104f: 0x6329, 0x1050: 0x6341, 0x1051: 0x40ed,\n\t0x1052: 0x410d, 0x1053: 0x412d, 0x1054: 0x414d, 0x1055: 0x416d, 0x1056: 0x6359, 0x1057: 0x6371,\n\t0x1058: 0x6389, 0x1059: 0x63a1, 0x105a: 0x63b9, 0x105b: 0x418d, 0x105c: 0x63d1, 0x105d: 0x63e9,\n\t0x105e: 0x6401, 0x105f: 0x41ad, 0x1060: 0x41cd, 0x1061: 0x6419, 0x1062: 0x41ed, 0x1063: 0x420d,\n\t0x1064: 0x422d, 0x1065: 0x6431, 0x1066: 0x424d, 0x1067: 0x6449, 0x1068: 0x6479, 0x1069: 0x6211,\n\t0x106a: 0x426d, 0x106b: 0x428d, 0x106c: 0x42ad, 0x106d: 0x42cd, 0x106e: 0x64b1, 0x106f: 0x64f1,\n\t0x1070: 0x6539, 0x1071: 0x6551, 0x1072: 0x42ed, 0x1073: 0x6569, 0x1074: 0x6581, 0x1075: 0x6599,\n\t0x1076: 0x430d, 0x1077: 0x65b1, 0x1078: 0x65c9, 0x1079: 0x65b1, 0x107a: 0x65e1, 0x107b: 0x65f9,\n\t0x107c: 0x432d, 0x107d: 0x6611, 0x107e: 0x6629, 0x107f: 0x6611,\n\t// Block 0x42, offset 0x1080\n\t0x1080: 0x434d, 0x1081: 0x436d, 0x1082: 0x0040, 0x1083: 0x6641, 0x1084: 0x6659, 0x1085: 0x6671,\n\t0x1086: 0x6689, 0x1087: 0x0040, 0x1088: 0x66c1, 0x1089: 0x66d9, 0x108a: 0x66f1, 0x108b: 0x6709,\n\t0x108c: 0x6721, 0x108d: 0x6739, 0x108e: 0x6401, 0x108f: 0x6751, 0x1090: 0x6769, 0x1091: 0x6781,\n\t0x1092: 0x438d, 0x1093: 0x6799, 0x1094: 0x6289, 0x1095: 0x43ad, 0x1096: 0x43cd, 0x1097: 0x67b1,\n\t0x1098: 0x0040, 0x1099: 0x43ed, 0x109a: 0x67c9, 0x109b: 0x67e1, 0x109c: 0x67f9, 0x109d: 0x6811,\n\t0x109e: 0x6829, 0x109f: 0x6859, 0x10a0: 0x6889, 0x10a1: 0x68b1, 0x10a2: 0x68d9, 0x10a3: 0x6901,\n\t0x10a4: 0x6929, 0x10a5: 0x6951, 0x10a6: 0x6979, 0x10a7: 0x69a1, 0x10a8: 0x69c9, 0x10a9: 0x69f1,\n\t0x10aa: 0x6a21, 0x10ab: 0x6a51, 0x10ac: 0x6a81, 0x10ad: 0x6ab1, 0x10ae: 0x6ae1, 0x10af: 0x6b11,\n\t0x10b0: 0x6b41, 0x10b1: 0x6b71, 0x10b2: 0x6ba1, 0x10b3: 0x6bd1, 0x10b4: 0x6c01, 0x10b5: 0x6c31,\n\t0x10b6: 0x6c61, 0x10b7: 0x6c91, 0x10b8: 0x6cc1, 0x10b9: 0x6cf1, 0x10ba: 0x6d21, 0x10bb: 0x6d51,\n\t0x10bc: 0x6d81, 0x10bd: 0x6db1, 0x10be: 0x6de1, 0x10bf: 0x440d,\n\t// Block 0x43, offset 0x10c0\n\t0x10c0: 0xe00d, 0x10c1: 0x0008, 0x10c2: 0xe00d, 0x10c3: 0x0008, 0x10c4: 0xe00d, 0x10c5: 0x0008,\n\t0x10c6: 0xe00d, 0x10c7: 0x0008, 0x10c8: 0xe00d, 0x10c9: 0x0008, 0x10ca: 0xe00d, 0x10cb: 0x0008,\n\t0x10cc: 0xe00d, 0x10cd: 0x0008, 0x10ce: 0xe00d, 0x10cf: 0x0008, 0x10d0: 0xe00d, 0x10d1: 0x0008,\n\t0x10d2: 0xe00d, 0x10d3: 0x0008, 0x10d4: 0xe00d, 0x10d5: 0x0008, 0x10d6: 0xe00d, 0x10d7: 0x0008,\n\t0x10d8: 0xe00d, 0x10d9: 0x0008, 0x10da: 0xe00d, 0x10db: 0x0008, 0x10dc: 0xe00d, 0x10dd: 0x0008,\n\t0x10de: 0xe00d, 0x10df: 0x0008, 0x10e0: 0xe00d, 0x10e1: 0x0008, 0x10e2: 0xe00d, 0x10e3: 0x0008,\n\t0x10e4: 0xe00d, 0x10e5: 0x0008, 0x10e6: 0xe00d, 0x10e7: 0x0008, 0x10e8: 0xe00d, 0x10e9: 0x0008,\n\t0x10ea: 0xe00d, 0x10eb: 0x0008, 0x10ec: 0xe00d, 0x10ed: 0x0008, 0x10ee: 0x0008, 0x10ef: 0x3308,\n\t0x10f0: 0x3318, 0x10f1: 0x3318, 0x10f2: 0x3318, 0x10f3: 0x0018, 0x10f4: 0x3308, 0x10f5: 0x3308,\n\t0x10f6: 0x3308, 0x10f7: 0x3308, 0x10f8: 0x3308, 0x10f9: 0x3308, 0x10fa: 0x3308, 0x10fb: 0x3308,\n\t0x10fc: 0x3308, 0x10fd: 0x3308, 0x10fe: 0x0018, 0x10ff: 0x0008,\n\t// Block 0x44, offset 0x1100\n\t0x1100: 0xe00d, 0x1101: 0x0008, 0x1102: 0xe00d, 0x1103: 0x0008, 0x1104: 0xe00d, 0x1105: 0x0008,\n\t0x1106: 0xe00d, 0x1107: 0x0008, 0x1108: 0xe00d, 0x1109: 0x0008, 0x110a: 0xe00d, 0x110b: 0x0008,\n\t0x110c: 0xe00d, 0x110d: 0x0008, 0x110e: 0xe00d, 0x110f: 0x0008, 0x1110: 0xe00d, 0x1111: 0x0008,\n\t0x1112: 0xe00d, 0x1113: 0x0008, 0x1114: 0xe00d, 0x1115: 0x0008, 0x1116: 0xe00d, 0x1117: 0x0008,\n\t0x1118: 0xe00d, 0x1119: 0x0008, 0x111a: 0xe00d, 0x111b: 0x0008, 0x111c: 0x0ea1, 0x111d: 0x6e11,\n\t0x111e: 0x3308, 0x111f: 0x3308, 0x1120: 0x0008, 0x1121: 0x0008, 0x1122: 0x0008, 0x1123: 0x0008,\n\t0x1124: 0x0008, 0x1125: 0x0008, 0x1126: 0x0008, 0x1127: 0x0008, 0x1128: 0x0008, 0x1129: 0x0008,\n\t0x112a: 0x0008, 0x112b: 0x0008, 0x112c: 0x0008, 0x112d: 0x0008, 0x112e: 0x0008, 0x112f: 0x0008,\n\t0x1130: 0x0008, 0x1131: 0x0008, 0x1132: 0x0008, 0x1133: 0x0008, 0x1134: 0x0008, 0x1135: 0x0008,\n\t0x1136: 0x0008, 0x1137: 0x0008, 0x1138: 0x0008, 0x1139: 0x0008, 0x113a: 0x0008, 0x113b: 0x0008,\n\t0x113c: 0x0008, 0x113d: 0x0008, 0x113e: 0x0008, 0x113f: 0x0008,\n\t// Block 0x45, offset 0x1140\n\t0x1140: 0x0018, 0x1141: 0x0018, 0x1142: 0x0018, 0x1143: 0x0018, 0x1144: 0x0018, 0x1145: 0x0018,\n\t0x1146: 0x0018, 0x1147: 0x0018, 0x1148: 0x0018, 0x1149: 0x0018, 0x114a: 0x0018, 0x114b: 0x0018,\n\t0x114c: 0x0018, 0x114d: 0x0018, 0x114e: 0x0018, 0x114f: 0x0018, 0x1150: 0x0018, 0x1151: 0x0018,\n\t0x1152: 0x0018, 0x1153: 0x0018, 0x1154: 0x0018, 0x1155: 0x0018, 0x1156: 0x0018, 0x1157: 0x0008,\n\t0x1158: 0x0008, 0x1159: 0x0008, 0x115a: 0x0008, 0x115b: 0x0008, 0x115c: 0x0008, 0x115d: 0x0008,\n\t0x115e: 0x0008, 0x115f: 0x0008, 0x1160: 0x0018, 0x1161: 0x0018, 0x1162: 0xe00d, 0x1163: 0x0008,\n\t0x1164: 0xe00d, 0x1165: 0x0008, 0x1166: 0xe00d, 0x1167: 0x0008, 0x1168: 0xe00d, 0x1169: 0x0008,\n\t0x116a: 0xe00d, 0x116b: 0x0008, 0x116c: 0xe00d, 0x116d: 0x0008, 0x116e: 0xe00d, 0x116f: 0x0008,\n\t0x1170: 0x0008, 0x1171: 0x0008, 0x1172: 0xe00d, 0x1173: 0x0008, 0x1174: 0xe00d, 0x1175: 0x0008,\n\t0x1176: 0xe00d, 0x1177: 0x0008, 0x1178: 0xe00d, 0x1179: 0x0008, 0x117a: 0xe00d, 0x117b: 0x0008,\n\t0x117c: 0xe00d, 0x117d: 0x0008, 0x117e: 0xe00d, 0x117f: 0x0008,\n\t// Block 0x46, offset 0x1180\n\t0x1180: 0xe00d, 0x1181: 0x0008, 0x1182: 0xe00d, 0x1183: 0x0008, 0x1184: 0xe00d, 0x1185: 0x0008,\n\t0x1186: 0xe00d, 0x1187: 0x0008, 0x1188: 0xe00d, 0x1189: 0x0008, 0x118a: 0xe00d, 0x118b: 0x0008,\n\t0x118c: 0xe00d, 0x118d: 0x0008, 0x118e: 0xe00d, 0x118f: 0x0008, 0x1190: 0xe00d, 0x1191: 0x0008,\n\t0x1192: 0xe00d, 0x1193: 0x0008, 0x1194: 0xe00d, 0x1195: 0x0008, 0x1196: 0xe00d, 0x1197: 0x0008,\n\t0x1198: 0xe00d, 0x1199: 0x0008, 0x119a: 0xe00d, 0x119b: 0x0008, 0x119c: 0xe00d, 0x119d: 0x0008,\n\t0x119e: 0xe00d, 0x119f: 0x0008, 0x11a0: 0xe00d, 0x11a1: 0x0008, 0x11a2: 0xe00d, 0x11a3: 0x0008,\n\t0x11a4: 0xe00d, 0x11a5: 0x0008, 0x11a6: 0xe00d, 0x11a7: 0x0008, 0x11a8: 0xe00d, 0x11a9: 0x0008,\n\t0x11aa: 0xe00d, 0x11ab: 0x0008, 0x11ac: 0xe00d, 0x11ad: 0x0008, 0x11ae: 0xe00d, 0x11af: 0x0008,\n\t0x11b0: 0xe0fd, 0x11b1: 0x0008, 0x11b2: 0x0008, 0x11b3: 0x0008, 0x11b4: 0x0008, 0x11b5: 0x0008,\n\t0x11b6: 0x0008, 0x11b7: 0x0008, 0x11b8: 0x0008, 0x11b9: 0xe01d, 0x11ba: 0x0008, 0x11bb: 0xe03d,\n\t0x11bc: 0x0008, 0x11bd: 0x442d, 0x11be: 0xe00d, 0x11bf: 0x0008,\n\t// Block 0x47, offset 0x11c0\n\t0x11c0: 0xe00d, 0x11c1: 0x0008, 0x11c2: 0xe00d, 0x11c3: 0x0008, 0x11c4: 0xe00d, 0x11c5: 0x0008,\n\t0x11c6: 0xe00d, 0x11c7: 0x0008, 0x11c8: 0x0008, 0x11c9: 0x0018, 0x11ca: 0x0018, 0x11cb: 0xe03d,\n\t0x11cc: 0x0008, 0x11cd: 0x11d9, 0x11ce: 0x0008, 0x11cf: 0x0008, 0x11d0: 0xe00d, 0x11d1: 0x0008,\n\t0x11d2: 0xe00d, 0x11d3: 0x0008, 0x11d4: 0x0008, 0x11d5: 0x0008, 0x11d6: 0xe00d, 0x11d7: 0x0008,\n\t0x11d8: 0xe00d, 0x11d9: 0x0008, 0x11da: 0xe00d, 0x11db: 0x0008, 0x11dc: 0xe00d, 0x11dd: 0x0008,\n\t0x11de: 0xe00d, 0x11df: 0x0008, 0x11e0: 0xe00d, 0x11e1: 0x0008, 0x11e2: 0xe00d, 0x11e3: 0x0008,\n\t0x11e4: 0xe00d, 0x11e5: 0x0008, 0x11e6: 0xe00d, 0x11e7: 0x0008, 0x11e8: 0xe00d, 0x11e9: 0x0008,\n\t0x11ea: 0x6e29, 0x11eb: 0x1029, 0x11ec: 0x11c1, 0x11ed: 0x6e41, 0x11ee: 0x1221, 0x11ef: 0x0040,\n\t0x11f0: 0x6e59, 0x11f1: 0x6e71, 0x11f2: 0x1239, 0x11f3: 0x444d, 0x11f4: 0xe00d, 0x11f5: 0x0008,\n\t0x11f6: 0xe00d, 0x11f7: 0x0008, 0x11f8: 0x0040, 0x11f9: 0x0040, 0x11fa: 0x0040, 0x11fb: 0x0040,\n\t0x11fc: 0x0040, 0x11fd: 0x0040, 0x11fe: 0x0040, 0x11ff: 0x0040,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0x64d5, 0x1201: 0x64f5, 0x1202: 0x6515, 0x1203: 0x6535, 0x1204: 0x6555, 0x1205: 0x6575,\n\t0x1206: 0x6595, 0x1207: 0x65b5, 0x1208: 0x65d5, 0x1209: 0x65f5, 0x120a: 0x6615, 0x120b: 0x6635,\n\t0x120c: 0x6655, 0x120d: 0x6675, 0x120e: 0x0008, 0x120f: 0x0008, 0x1210: 0x6695, 0x1211: 0x0008,\n\t0x1212: 0x66b5, 0x1213: 0x0008, 0x1214: 0x0008, 0x1215: 0x66d5, 0x1216: 0x66f5, 0x1217: 0x6715,\n\t0x1218: 0x6735, 0x1219: 0x6755, 0x121a: 0x6775, 0x121b: 0x6795, 0x121c: 0x67b5, 0x121d: 0x67d5,\n\t0x121e: 0x67f5, 0x121f: 0x0008, 0x1220: 0x6815, 0x1221: 0x0008, 0x1222: 0x6835, 0x1223: 0x0008,\n\t0x1224: 0x0008, 0x1225: 0x6855, 0x1226: 0x6875, 0x1227: 0x0008, 0x1228: 0x0008, 0x1229: 0x0008,\n\t0x122a: 0x6895, 0x122b: 0x68b5, 0x122c: 0x68d5, 0x122d: 0x68f5, 0x122e: 0x6915, 0x122f: 0x6935,\n\t0x1230: 0x6955, 0x1231: 0x6975, 0x1232: 0x6995, 0x1233: 0x69b5, 0x1234: 0x69d5, 0x1235: 0x69f5,\n\t0x1236: 0x6a15, 0x1237: 0x6a35, 0x1238: 0x6a55, 0x1239: 0x6a75, 0x123a: 0x6a95, 0x123b: 0x6ab5,\n\t0x123c: 0x6ad5, 0x123d: 0x6af5, 0x123e: 0x6b15, 0x123f: 0x6b35,\n\t// Block 0x49, offset 0x1240\n\t0x1240: 0x7a95, 0x1241: 0x7ab5, 0x1242: 0x7ad5, 0x1243: 0x7af5, 0x1244: 0x7b15, 0x1245: 0x7b35,\n\t0x1246: 0x7b55, 0x1247: 0x7b75, 0x1248: 0x7b95, 0x1249: 0x7bb5, 0x124a: 0x7bd5, 0x124b: 0x7bf5,\n\t0x124c: 0x7c15, 0x124d: 0x7c35, 0x124e: 0x7c55, 0x124f: 0x6ec9, 0x1250: 0x6ef1, 0x1251: 0x6f19,\n\t0x1252: 0x7c75, 0x1253: 0x7c95, 0x1254: 0x7cb5, 0x1255: 0x6f41, 0x1256: 0x6f69, 0x1257: 0x6f91,\n\t0x1258: 0x7cd5, 0x1259: 0x7cf5, 0x125a: 0x0040, 0x125b: 0x0040, 0x125c: 0x0040, 0x125d: 0x0040,\n\t0x125e: 0x0040, 0x125f: 0x0040, 0x1260: 0x0040, 0x1261: 0x0040, 0x1262: 0x0040, 0x1263: 0x0040,\n\t0x1264: 0x0040, 0x1265: 0x0040, 0x1266: 0x0040, 0x1267: 0x0040, 0x1268: 0x0040, 0x1269: 0x0040,\n\t0x126a: 0x0040, 0x126b: 0x0040, 0x126c: 0x0040, 0x126d: 0x0040, 0x126e: 0x0040, 0x126f: 0x0040,\n\t0x1270: 0x0040, 0x1271: 0x0040, 0x1272: 0x0040, 0x1273: 0x0040, 0x1274: 0x0040, 0x1275: 0x0040,\n\t0x1276: 0x0040, 0x1277: 0x0040, 0x1278: 0x0040, 0x1279: 0x0040, 0x127a: 0x0040, 0x127b: 0x0040,\n\t0x127c: 0x0040, 0x127d: 0x0040, 0x127e: 0x0040, 0x127f: 0x0040,\n\t// Block 0x4a, offset 0x1280\n\t0x1280: 0x6fb9, 0x1281: 0x6fd1, 0x1282: 0x6fe9, 0x1283: 0x7d15, 0x1284: 0x7d35, 0x1285: 0x7001,\n\t0x1286: 0x7001, 0x1287: 0x0040, 0x1288: 0x0040, 0x1289: 0x0040, 0x128a: 0x0040, 0x128b: 0x0040,\n\t0x128c: 0x0040, 0x128d: 0x0040, 0x128e: 0x0040, 0x128f: 0x0040, 0x1290: 0x0040, 0x1291: 0x0040,\n\t0x1292: 0x0040, 0x1293: 0x7019, 0x1294: 0x7041, 0x1295: 0x7069, 0x1296: 0x7091, 0x1297: 0x70b9,\n\t0x1298: 0x0040, 0x1299: 0x0040, 0x129a: 0x0040, 0x129b: 0x0040, 0x129c: 0x0040, 0x129d: 0x70e1,\n\t0x129e: 0x3308, 0x129f: 0x7109, 0x12a0: 0x7131, 0x12a1: 0x20a9, 0x12a2: 0x20f1, 0x12a3: 0x7149,\n\t0x12a4: 0x7161, 0x12a5: 0x7179, 0x12a6: 0x7191, 0x12a7: 0x71a9, 0x12a8: 0x71c1, 0x12a9: 0x1fb2,\n\t0x12aa: 0x71d9, 0x12ab: 0x7201, 0x12ac: 0x7229, 0x12ad: 0x7261, 0x12ae: 0x7299, 0x12af: 0x72c1,\n\t0x12b0: 0x72e9, 0x12b1: 0x7311, 0x12b2: 0x7339, 0x12b3: 0x7361, 0x12b4: 0x7389, 0x12b5: 0x73b1,\n\t0x12b6: 0x73d9, 0x12b7: 0x0040, 0x12b8: 0x7401, 0x12b9: 0x7429, 0x12ba: 0x7451, 0x12bb: 0x7479,\n\t0x12bc: 0x74a1, 0x12bd: 0x0040, 0x12be: 0x74c9, 0x12bf: 0x0040,\n\t// Block 0x4b, offset 0x12c0\n\t0x12c0: 0x74f1, 0x12c1: 0x7519, 0x12c2: 0x0040, 0x12c3: 0x7541, 0x12c4: 0x7569, 0x12c5: 0x0040,\n\t0x12c6: 0x7591, 0x12c7: 0x75b9, 0x12c8: 0x75e1, 0x12c9: 0x7609, 0x12ca: 0x7631, 0x12cb: 0x7659,\n\t0x12cc: 0x7681, 0x12cd: 0x76a9, 0x12ce: 0x76d1, 0x12cf: 0x76f9, 0x12d0: 0x7721, 0x12d1: 0x7721,\n\t0x12d2: 0x7739, 0x12d3: 0x7739, 0x12d4: 0x7739, 0x12d5: 0x7739, 0x12d6: 0x7751, 0x12d7: 0x7751,\n\t0x12d8: 0x7751, 0x12d9: 0x7751, 0x12da: 0x7769, 0x12db: 0x7769, 0x12dc: 0x7769, 0x12dd: 0x7769,\n\t0x12de: 0x7781, 0x12df: 0x7781, 0x12e0: 0x7781, 0x12e1: 0x7781, 0x12e2: 0x7799, 0x12e3: 0x7799,\n\t0x12e4: 0x7799, 0x12e5: 0x7799, 0x12e6: 0x77b1, 0x12e7: 0x77b1, 0x12e8: 0x77b1, 0x12e9: 0x77b1,\n\t0x12ea: 0x77c9, 0x12eb: 0x77c9, 0x12ec: 0x77c9, 0x12ed: 0x77c9, 0x12ee: 0x77e1, 0x12ef: 0x77e1,\n\t0x12f0: 0x77e1, 0x12f1: 0x77e1, 0x12f2: 0x77f9, 0x12f3: 0x77f9, 0x12f4: 0x77f9, 0x12f5: 0x77f9,\n\t0x12f6: 0x7811, 0x12f7: 0x7811, 0x12f8: 0x7811, 0x12f9: 0x7811, 0x12fa: 0x7829, 0x12fb: 0x7829,\n\t0x12fc: 0x7829, 0x12fd: 0x7829, 0x12fe: 0x7841, 0x12ff: 0x7841,\n\t// Block 0x4c, offset 0x1300\n\t0x1300: 0x7841, 0x1301: 0x7841, 0x1302: 0x7859, 0x1303: 0x7859, 0x1304: 0x7871, 0x1305: 0x7871,\n\t0x1306: 0x7889, 0x1307: 0x7889, 0x1308: 0x78a1, 0x1309: 0x78a1, 0x130a: 0x78b9, 0x130b: 0x78b9,\n\t0x130c: 0x78d1, 0x130d: 0x78d1, 0x130e: 0x78e9, 0x130f: 0x78e9, 0x1310: 0x78e9, 0x1311: 0x78e9,\n\t0x1312: 0x7901, 0x1313: 0x7901, 0x1314: 0x7901, 0x1315: 0x7901, 0x1316: 0x7919, 0x1317: 0x7919,\n\t0x1318: 0x7919, 0x1319: 0x7919, 0x131a: 0x7931, 0x131b: 0x7931, 0x131c: 0x7931, 0x131d: 0x7931,\n\t0x131e: 0x7949, 0x131f: 0x7949, 0x1320: 0x7961, 0x1321: 0x7961, 0x1322: 0x7961, 0x1323: 0x7961,\n\t0x1324: 0x7979, 0x1325: 0x7979, 0x1326: 0x7991, 0x1327: 0x7991, 0x1328: 0x7991, 0x1329: 0x7991,\n\t0x132a: 0x79a9, 0x132b: 0x79a9, 0x132c: 0x79a9, 0x132d: 0x79a9, 0x132e: 0x79c1, 0x132f: 0x79c1,\n\t0x1330: 0x79d9, 0x1331: 0x79d9, 0x1332: 0x0818, 0x1333: 0x0818, 0x1334: 0x0818, 0x1335: 0x0818,\n\t0x1336: 0x0818, 0x1337: 0x0818, 0x1338: 0x0818, 0x1339: 0x0818, 0x133a: 0x0818, 0x133b: 0x0818,\n\t0x133c: 0x0818, 0x133d: 0x0818, 0x133e: 0x0818, 0x133f: 0x0818,\n\t// Block 0x4d, offset 0x1340\n\t0x1340: 0x0818, 0x1341: 0x0818, 0x1342: 0x0040, 0x1343: 0x0040, 0x1344: 0x0040, 0x1345: 0x0040,\n\t0x1346: 0x0040, 0x1347: 0x0040, 0x1348: 0x0040, 0x1349: 0x0040, 0x134a: 0x0040, 0x134b: 0x0040,\n\t0x134c: 0x0040, 0x134d: 0x0040, 0x134e: 0x0040, 0x134f: 0x0040, 0x1350: 0x0040, 0x1351: 0x0040,\n\t0x1352: 0x0040, 0x1353: 0x79f1, 0x1354: 0x79f1, 0x1355: 0x79f1, 0x1356: 0x79f1, 0x1357: 0x7a09,\n\t0x1358: 0x7a09, 0x1359: 0x7a21, 0x135a: 0x7a21, 0x135b: 0x7a39, 0x135c: 0x7a39, 0x135d: 0x0479,\n\t0x135e: 0x7a51, 0x135f: 0x7a51, 0x1360: 0x7a69, 0x1361: 0x7a69, 0x1362: 0x7a81, 0x1363: 0x7a81,\n\t0x1364: 0x7a99, 0x1365: 0x7a99, 0x1366: 0x7a99, 0x1367: 0x7a99, 0x1368: 0x7ab1, 0x1369: 0x7ab1,\n\t0x136a: 0x7ac9, 0x136b: 0x7ac9, 0x136c: 0x7af1, 0x136d: 0x7af1, 0x136e: 0x7b19, 0x136f: 0x7b19,\n\t0x1370: 0x7b41, 0x1371: 0x7b41, 0x1372: 0x7b69, 0x1373: 0x7b69, 0x1374: 0x7b91, 0x1375: 0x7b91,\n\t0x1376: 0x7bb9, 0x1377: 0x7bb9, 0x1378: 0x7bb9, 0x1379: 0x7be1, 0x137a: 0x7be1, 0x137b: 0x7be1,\n\t0x137c: 0x7c09, 0x137d: 0x7c09, 0x137e: 0x7c09, 0x137f: 0x7c09,\n\t// Block 0x4e, offset 0x1380\n\t0x1380: 0x85f9, 0x1381: 0x8621, 0x1382: 0x8649, 0x1383: 0x8671, 0x1384: 0x8699, 0x1385: 0x86c1,\n\t0x1386: 0x86e9, 0x1387: 0x8711, 0x1388: 0x8739, 0x1389: 0x8761, 0x138a: 0x8789, 0x138b: 0x87b1,\n\t0x138c: 0x87d9, 0x138d: 0x8801, 0x138e: 0x8829, 0x138f: 0x8851, 0x1390: 0x8879, 0x1391: 0x88a1,\n\t0x1392: 0x88c9, 0x1393: 0x88f1, 0x1394: 0x8919, 0x1395: 0x8941, 0x1396: 0x8969, 0x1397: 0x8991,\n\t0x1398: 0x89b9, 0x1399: 0x89e1, 0x139a: 0x8a09, 0x139b: 0x8a31, 0x139c: 0x8a59, 0x139d: 0x8a81,\n\t0x139e: 0x8aaa, 0x139f: 0x8ada, 0x13a0: 0x8b0a, 0x13a1: 0x8b3a, 0x13a2: 0x8b6a, 0x13a3: 0x8b9a,\n\t0x13a4: 0x8bc9, 0x13a5: 0x8bf1, 0x13a6: 0x7c71, 0x13a7: 0x8c19, 0x13a8: 0x7be1, 0x13a9: 0x7c99,\n\t0x13aa: 0x8c41, 0x13ab: 0x8c69, 0x13ac: 0x7d39, 0x13ad: 0x8c91, 0x13ae: 0x7d61, 0x13af: 0x7d89,\n\t0x13b0: 0x8cb9, 0x13b1: 0x8ce1, 0x13b2: 0x7e29, 0x13b3: 0x8d09, 0x13b4: 0x7e51, 0x13b5: 0x7e79,\n\t0x13b6: 0x8d31, 0x13b7: 0x8d59, 0x13b8: 0x7ec9, 0x13b9: 0x8d81, 0x13ba: 0x7ef1, 0x13bb: 0x7f19,\n\t0x13bc: 0x83a1, 0x13bd: 0x83c9, 0x13be: 0x8441, 0x13bf: 0x8469,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c0: 0x8491, 0x13c1: 0x8531, 0x13c2: 0x8559, 0x13c3: 0x8581, 0x13c4: 0x85a9, 0x13c5: 0x8649,\n\t0x13c6: 0x8671, 0x13c7: 0x8699, 0x13c8: 0x8da9, 0x13c9: 0x8739, 0x13ca: 0x8dd1, 0x13cb: 0x8df9,\n\t0x13cc: 0x8829, 0x13cd: 0x8e21, 0x13ce: 0x8851, 0x13cf: 0x8879, 0x13d0: 0x8a81, 0x13d1: 0x8e49,\n\t0x13d2: 0x8e71, 0x13d3: 0x89b9, 0x13d4: 0x8e99, 0x13d5: 0x89e1, 0x13d6: 0x8a09, 0x13d7: 0x7c21,\n\t0x13d8: 0x7c49, 0x13d9: 0x8ec1, 0x13da: 0x7c71, 0x13db: 0x8ee9, 0x13dc: 0x7cc1, 0x13dd: 0x7ce9,\n\t0x13de: 0x7d11, 0x13df: 0x7d39, 0x13e0: 0x8f11, 0x13e1: 0x7db1, 0x13e2: 0x7dd9, 0x13e3: 0x7e01,\n\t0x13e4: 0x7e29, 0x13e5: 0x8f39, 0x13e6: 0x7ec9, 0x13e7: 0x7f41, 0x13e8: 0x7f69, 0x13e9: 0x7f91,\n\t0x13ea: 0x7fb9, 0x13eb: 0x7fe1, 0x13ec: 0x8031, 0x13ed: 0x8059, 0x13ee: 0x8081, 0x13ef: 0x80a9,\n\t0x13f0: 0x80d1, 0x13f1: 0x80f9, 0x13f2: 0x8f61, 0x13f3: 0x8121, 0x13f4: 0x8149, 0x13f5: 0x8171,\n\t0x13f6: 0x8199, 0x13f7: 0x81c1, 0x13f8: 0x81e9, 0x13f9: 0x8239, 0x13fa: 0x8261, 0x13fb: 0x8289,\n\t0x13fc: 0x82b1, 0x13fd: 0x82d9, 0x13fe: 0x8301, 0x13ff: 0x8329,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x8351, 0x1401: 0x8379, 0x1402: 0x83f1, 0x1403: 0x8419, 0x1404: 0x84b9, 0x1405: 0x84e1,\n\t0x1406: 0x8509, 0x1407: 0x8531, 0x1408: 0x8559, 0x1409: 0x85d1, 0x140a: 0x85f9, 0x140b: 0x8621,\n\t0x140c: 0x8649, 0x140d: 0x8f89, 0x140e: 0x86c1, 0x140f: 0x86e9, 0x1410: 0x8711, 0x1411: 0x8739,\n\t0x1412: 0x87b1, 0x1413: 0x87d9, 0x1414: 0x8801, 0x1415: 0x8829, 0x1416: 0x8fb1, 0x1417: 0x88a1,\n\t0x1418: 0x88c9, 0x1419: 0x8fd9, 0x141a: 0x8941, 0x141b: 0x8969, 0x141c: 0x8991, 0x141d: 0x89b9,\n\t0x141e: 0x9001, 0x141f: 0x7c71, 0x1420: 0x8ee9, 0x1421: 0x7d39, 0x1422: 0x8f11, 0x1423: 0x7e29,\n\t0x1424: 0x8f39, 0x1425: 0x7ec9, 0x1426: 0x9029, 0x1427: 0x80d1, 0x1428: 0x9051, 0x1429: 0x9079,\n\t0x142a: 0x90a1, 0x142b: 0x8531, 0x142c: 0x8559, 0x142d: 0x8649, 0x142e: 0x8829, 0x142f: 0x8fb1,\n\t0x1430: 0x89b9, 0x1431: 0x9001, 0x1432: 0x90c9, 0x1433: 0x9101, 0x1434: 0x9139, 0x1435: 0x9171,\n\t0x1436: 0x9199, 0x1437: 0x91c1, 0x1438: 0x91e9, 0x1439: 0x9211, 0x143a: 0x9239, 0x143b: 0x9261,\n\t0x143c: 0x9289, 0x143d: 0x92b1, 0x143e: 0x92d9, 0x143f: 0x9301,\n\t// Block 0x51, offset 0x1440\n\t0x1440: 0x9329, 0x1441: 0x9351, 0x1442: 0x9379, 0x1443: 0x93a1, 0x1444: 0x93c9, 0x1445: 0x93f1,\n\t0x1446: 0x9419, 0x1447: 0x9441, 0x1448: 0x9469, 0x1449: 0x9491, 0x144a: 0x94b9, 0x144b: 0x94e1,\n\t0x144c: 0x9079, 0x144d: 0x9509, 0x144e: 0x9531, 0x144f: 0x9559, 0x1450: 0x9581, 0x1451: 0x9171,\n\t0x1452: 0x9199, 0x1453: 0x91c1, 0x1454: 0x91e9, 0x1455: 0x9211, 0x1456: 0x9239, 0x1457: 0x9261,\n\t0x1458: 0x9289, 0x1459: 0x92b1, 0x145a: 0x92d9, 0x145b: 0x9301, 0x145c: 0x9329, 0x145d: 0x9351,\n\t0x145e: 0x9379, 0x145f: 0x93a1, 0x1460: 0x93c9, 0x1461: 0x93f1, 0x1462: 0x9419, 0x1463: 0x9441,\n\t0x1464: 0x9469, 0x1465: 0x9491, 0x1466: 0x94b9, 0x1467: 0x94e1, 0x1468: 0x9079, 0x1469: 0x9509,\n\t0x146a: 0x9531, 0x146b: 0x9559, 0x146c: 0x9581, 0x146d: 0x9491, 0x146e: 0x94b9, 0x146f: 0x94e1,\n\t0x1470: 0x9079, 0x1471: 0x9051, 0x1472: 0x90a1, 0x1473: 0x8211, 0x1474: 0x8059, 0x1475: 0x8081,\n\t0x1476: 0x80a9, 0x1477: 0x9491, 0x1478: 0x94b9, 0x1479: 0x94e1, 0x147a: 0x8211, 0x147b: 0x8239,\n\t0x147c: 0x95a9, 0x147d: 0x95a9, 0x147e: 0x0018, 0x147f: 0x0018,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x0040, 0x1481: 0x0040, 0x1482: 0x0040, 0x1483: 0x0040, 0x1484: 0x0040, 0x1485: 0x0040,\n\t0x1486: 0x0040, 0x1487: 0x0040, 0x1488: 0x0040, 0x1489: 0x0040, 0x148a: 0x0040, 0x148b: 0x0040,\n\t0x148c: 0x0040, 0x148d: 0x0040, 0x148e: 0x0040, 0x148f: 0x0040, 0x1490: 0x95d1, 0x1491: 0x9609,\n\t0x1492: 0x9609, 0x1493: 0x9641, 0x1494: 0x9679, 0x1495: 0x96b1, 0x1496: 0x96e9, 0x1497: 0x9721,\n\t0x1498: 0x9759, 0x1499: 0x9759, 0x149a: 0x9791, 0x149b: 0x97c9, 0x149c: 0x9801, 0x149d: 0x9839,\n\t0x149e: 0x9871, 0x149f: 0x98a9, 0x14a0: 0x98a9, 0x14a1: 0x98e1, 0x14a2: 0x9919, 0x14a3: 0x9919,\n\t0x14a4: 0x9951, 0x14a5: 0x9951, 0x14a6: 0x9989, 0x14a7: 0x99c1, 0x14a8: 0x99c1, 0x14a9: 0x99f9,\n\t0x14aa: 0x9a31, 0x14ab: 0x9a31, 0x14ac: 0x9a69, 0x14ad: 0x9a69, 0x14ae: 0x9aa1, 0x14af: 0x9ad9,\n\t0x14b0: 0x9ad9, 0x14b1: 0x9b11, 0x14b2: 0x9b11, 0x14b3: 0x9b49, 0x14b4: 0x9b81, 0x14b5: 0x9bb9,\n\t0x14b6: 0x9bf1, 0x14b7: 0x9bf1, 0x14b8: 0x9c29, 0x14b9: 0x9c61, 0x14ba: 0x9c99, 0x14bb: 0x9cd1,\n\t0x14bc: 0x9d09, 0x14bd: 0x9d09, 0x14be: 0x9d41, 0x14bf: 0x9d79,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0xa949, 0x14c1: 0xa981, 0x14c2: 0xa9b9, 0x14c3: 0xa8a1, 0x14c4: 0x9bb9, 0x14c5: 0x9989,\n\t0x14c6: 0xa9f1, 0x14c7: 0xaa29, 0x14c8: 0x0040, 0x14c9: 0x0040, 0x14ca: 0x0040, 0x14cb: 0x0040,\n\t0x14cc: 0x0040, 0x14cd: 0x0040, 0x14ce: 0x0040, 0x14cf: 0x0040, 0x14d0: 0x0040, 0x14d1: 0x0040,\n\t0x14d2: 0x0040, 0x14d3: 0x0040, 0x14d4: 0x0040, 0x14d5: 0x0040, 0x14d6: 0x0040, 0x14d7: 0x0040,\n\t0x14d8: 0x0040, 0x14d9: 0x0040, 0x14da: 0x0040, 0x14db: 0x0040, 0x14dc: 0x0040, 0x14dd: 0x0040,\n\t0x14de: 0x0040, 0x14df: 0x0040, 0x14e0: 0x0040, 0x14e1: 0x0040, 0x14e2: 0x0040, 0x14e3: 0x0040,\n\t0x14e4: 0x0040, 0x14e5: 0x0040, 0x14e6: 0x0040, 0x14e7: 0x0040, 0x14e8: 0x0040, 0x14e9: 0x0040,\n\t0x14ea: 0x0040, 0x14eb: 0x0040, 0x14ec: 0x0040, 0x14ed: 0x0040, 0x14ee: 0x0040, 0x14ef: 0x0040,\n\t0x14f0: 0xaa61, 0x14f1: 0xaa99, 0x14f2: 0xaad1, 0x14f3: 0xab19, 0x14f4: 0xab61, 0x14f5: 0xaba9,\n\t0x14f6: 0xabf1, 0x14f7: 0xac39, 0x14f8: 0xac81, 0x14f9: 0xacc9, 0x14fa: 0xad02, 0x14fb: 0xae12,\n\t0x14fc: 0xae91, 0x14fd: 0x0018, 0x14fe: 0x0040, 0x14ff: 0x0040,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0x33c0, 0x1501: 0x33c0, 0x1502: 0x33c0, 0x1503: 0x33c0, 0x1504: 0x33c0, 0x1505: 0x33c0,\n\t0x1506: 0x33c0, 0x1507: 0x33c0, 0x1508: 0x33c0, 0x1509: 0x33c0, 0x150a: 0x33c0, 0x150b: 0x33c0,\n\t0x150c: 0x33c0, 0x150d: 0x33c0, 0x150e: 0x33c0, 0x150f: 0x33c0, 0x1510: 0xaeda, 0x1511: 0x7d55,\n\t0x1512: 0x0040, 0x1513: 0xaeea, 0x1514: 0x03c2, 0x1515: 0xaefa, 0x1516: 0xaf0a, 0x1517: 0x7d75,\n\t0x1518: 0x7d95, 0x1519: 0x0040, 0x151a: 0x0040, 0x151b: 0x0040, 0x151c: 0x0040, 0x151d: 0x0040,\n\t0x151e: 0x0040, 0x151f: 0x0040, 0x1520: 0x3308, 0x1521: 0x3308, 0x1522: 0x3308, 0x1523: 0x3308,\n\t0x1524: 0x3308, 0x1525: 0x3308, 0x1526: 0x3308, 0x1527: 0x3308, 0x1528: 0x3308, 0x1529: 0x3308,\n\t0x152a: 0x3308, 0x152b: 0x3308, 0x152c: 0x3308, 0x152d: 0x3308, 0x152e: 0x3308, 0x152f: 0x3308,\n\t0x1530: 0x0040, 0x1531: 0x7db5, 0x1532: 0x7dd5, 0x1533: 0xaf1a, 0x1534: 0xaf1a, 0x1535: 0x1fd2,\n\t0x1536: 0x1fe2, 0x1537: 0xaf2a, 0x1538: 0xaf3a, 0x1539: 0x7df5, 0x153a: 0x7e15, 0x153b: 0x7e35,\n\t0x153c: 0x7df5, 0x153d: 0x7e55, 0x153e: 0x7e75, 0x153f: 0x7e55,\n\t// Block 0x55, offset 0x1540\n\t0x1540: 0x7e95, 0x1541: 0x7eb5, 0x1542: 0x7ed5, 0x1543: 0x7eb5, 0x1544: 0x7ef5, 0x1545: 0x0018,\n\t0x1546: 0x0018, 0x1547: 0xaf4a, 0x1548: 0xaf5a, 0x1549: 0x7f16, 0x154a: 0x7f36, 0x154b: 0x7f56,\n\t0x154c: 0x7f76, 0x154d: 0xaf1a, 0x154e: 0xaf1a, 0x154f: 0xaf1a, 0x1550: 0xaeda, 0x1551: 0x7f95,\n\t0x1552: 0x0040, 0x1553: 0x0040, 0x1554: 0x03c2, 0x1555: 0xaeea, 0x1556: 0xaf0a, 0x1557: 0xaefa,\n\t0x1558: 0x7fb5, 0x1559: 0x1fd2, 0x155a: 0x1fe2, 0x155b: 0xaf2a, 0x155c: 0xaf3a, 0x155d: 0x7e95,\n\t0x155e: 0x7ef5, 0x155f: 0xaf6a, 0x1560: 0xaf7a, 0x1561: 0xaf8a, 0x1562: 0x1fb2, 0x1563: 0xaf99,\n\t0x1564: 0xafaa, 0x1565: 0xafba, 0x1566: 0x1fc2, 0x1567: 0x0040, 0x1568: 0xafca, 0x1569: 0xafda,\n\t0x156a: 0xafea, 0x156b: 0xaffa, 0x156c: 0x0040, 0x156d: 0x0040, 0x156e: 0x0040, 0x156f: 0x0040,\n\t0x1570: 0x7fd6, 0x1571: 0xb009, 0x1572: 0x7ff6, 0x1573: 0x0808, 0x1574: 0x8016, 0x1575: 0x0040,\n\t0x1576: 0x8036, 0x1577: 0xb031, 0x1578: 0x8056, 0x1579: 0xb059, 0x157a: 0x8076, 0x157b: 0xb081,\n\t0x157c: 0x8096, 0x157d: 0xb0a9, 0x157e: 0x80b6, 0x157f: 0xb0d1,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0xb0f9, 0x1581: 0xb111, 0x1582: 0xb111, 0x1583: 0xb129, 0x1584: 0xb129, 0x1585: 0xb141,\n\t0x1586: 0xb141, 0x1587: 0xb159, 0x1588: 0xb159, 0x1589: 0xb171, 0x158a: 0xb171, 0x158b: 0xb171,\n\t0x158c: 0xb171, 0x158d: 0xb189, 0x158e: 0xb189, 0x158f: 0xb1a1, 0x1590: 0xb1a1, 0x1591: 0xb1a1,\n\t0x1592: 0xb1a1, 0x1593: 0xb1b9, 0x1594: 0xb1b9, 0x1595: 0xb1d1, 0x1596: 0xb1d1, 0x1597: 0xb1d1,\n\t0x1598: 0xb1d1, 0x1599: 0xb1e9, 0x159a: 0xb1e9, 0x159b: 0xb1e9, 0x159c: 0xb1e9, 0x159d: 0xb201,\n\t0x159e: 0xb201, 0x159f: 0xb201, 0x15a0: 0xb201, 0x15a1: 0xb219, 0x15a2: 0xb219, 0x15a3: 0xb219,\n\t0x15a4: 0xb219, 0x15a5: 0xb231, 0x15a6: 0xb231, 0x15a7: 0xb231, 0x15a8: 0xb231, 0x15a9: 0xb249,\n\t0x15aa: 0xb249, 0x15ab: 0xb261, 0x15ac: 0xb261, 0x15ad: 0xb279, 0x15ae: 0xb279, 0x15af: 0xb291,\n\t0x15b0: 0xb291, 0x15b1: 0xb2a9, 0x15b2: 0xb2a9, 0x15b3: 0xb2a9, 0x15b4: 0xb2a9, 0x15b5: 0xb2c1,\n\t0x15b6: 0xb2c1, 0x15b7: 0xb2c1, 0x15b8: 0xb2c1, 0x15b9: 0xb2d9, 0x15ba: 0xb2d9, 0x15bb: 0xb2d9,\n\t0x15bc: 0xb2d9, 0x15bd: 0xb2f1, 0x15be: 0xb2f1, 0x15bf: 0xb2f1,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0xb2f1, 0x15c1: 0xb309, 0x15c2: 0xb309, 0x15c3: 0xb309, 0x15c4: 0xb309, 0x15c5: 0xb321,\n\t0x15c6: 0xb321, 0x15c7: 0xb321, 0x15c8: 0xb321, 0x15c9: 0xb339, 0x15ca: 0xb339, 0x15cb: 0xb339,\n\t0x15cc: 0xb339, 0x15cd: 0xb351, 0x15ce: 0xb351, 0x15cf: 0xb351, 0x15d0: 0xb351, 0x15d1: 0xb369,\n\t0x15d2: 0xb369, 0x15d3: 0xb369, 0x15d4: 0xb369, 0x15d5: 0xb381, 0x15d6: 0xb381, 0x15d7: 0xb381,\n\t0x15d8: 0xb381, 0x15d9: 0xb399, 0x15da: 0xb399, 0x15db: 0xb399, 0x15dc: 0xb399, 0x15dd: 0xb3b1,\n\t0x15de: 0xb3b1, 0x15df: 0xb3b1, 0x15e0: 0xb3b1, 0x15e1: 0xb3c9, 0x15e2: 0xb3c9, 0x15e3: 0xb3c9,\n\t0x15e4: 0xb3c9, 0x15e5: 0xb3e1, 0x15e6: 0xb3e1, 0x15e7: 0xb3e1, 0x15e8: 0xb3e1, 0x15e9: 0xb3f9,\n\t0x15ea: 0xb3f9, 0x15eb: 0xb3f9, 0x15ec: 0xb3f9, 0x15ed: 0xb411, 0x15ee: 0xb411, 0x15ef: 0x7ab1,\n\t0x15f0: 0x7ab1, 0x15f1: 0xb429, 0x15f2: 0xb429, 0x15f3: 0xb429, 0x15f4: 0xb429, 0x15f5: 0xb441,\n\t0x15f6: 0xb441, 0x15f7: 0xb469, 0x15f8: 0xb469, 0x15f9: 0xb491, 0x15fa: 0xb491, 0x15fb: 0xb4b9,\n\t0x15fc: 0xb4b9, 0x15fd: 0x0040, 0x15fe: 0x0040, 0x15ff: 0x03c0,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0x0040, 0x1601: 0xaefa, 0x1602: 0xb4e2, 0x1603: 0xaf6a, 0x1604: 0xafda, 0x1605: 0xafea,\n\t0x1606: 0xaf7a, 0x1607: 0xb4f2, 0x1608: 0x1fd2, 0x1609: 0x1fe2, 0x160a: 0xaf8a, 0x160b: 0x1fb2,\n\t0x160c: 0xaeda, 0x160d: 0xaf99, 0x160e: 0x29d1, 0x160f: 0xb502, 0x1610: 0x1f41, 0x1611: 0x00c9,\n\t0x1612: 0x0069, 0x1613: 0x0079, 0x1614: 0x1f51, 0x1615: 0x1f61, 0x1616: 0x1f71, 0x1617: 0x1f81,\n\t0x1618: 0x1f91, 0x1619: 0x1fa1, 0x161a: 0xaeea, 0x161b: 0x03c2, 0x161c: 0xafaa, 0x161d: 0x1fc2,\n\t0x161e: 0xafba, 0x161f: 0xaf0a, 0x1620: 0xaffa, 0x1621: 0x0039, 0x1622: 0x0ee9, 0x1623: 0x1159,\n\t0x1624: 0x0ef9, 0x1625: 0x0f09, 0x1626: 0x1199, 0x1627: 0x0f31, 0x1628: 0x0249, 0x1629: 0x0f41,\n\t0x162a: 0x0259, 0x162b: 0x0f51, 0x162c: 0x0359, 0x162d: 0x0f61, 0x162e: 0x0f71, 0x162f: 0x00d9,\n\t0x1630: 0x0f99, 0x1631: 0x2039, 0x1632: 0x0269, 0x1633: 0x01d9, 0x1634: 0x0fa9, 0x1635: 0x0fb9,\n\t0x1636: 0x1089, 0x1637: 0x0279, 0x1638: 0x0369, 0x1639: 0x0289, 0x163a: 0x13d1, 0x163b: 0xaf4a,\n\t0x163c: 0xafca, 0x163d: 0xaf5a, 0x163e: 0xb512, 0x163f: 0xaf1a,\n\t// Block 0x59, offset 0x1640\n\t0x1640: 0x1caa, 0x1641: 0x0039, 0x1642: 0x0ee9, 0x1643: 0x1159, 0x1644: 0x0ef9, 0x1645: 0x0f09,\n\t0x1646: 0x1199, 0x1647: 0x0f31, 0x1648: 0x0249, 0x1649: 0x0f41, 0x164a: 0x0259, 0x164b: 0x0f51,\n\t0x164c: 0x0359, 0x164d: 0x0f61, 0x164e: 0x0f71, 0x164f: 0x00d9, 0x1650: 0x0f99, 0x1651: 0x2039,\n\t0x1652: 0x0269, 0x1653: 0x01d9, 0x1654: 0x0fa9, 0x1655: 0x0fb9, 0x1656: 0x1089, 0x1657: 0x0279,\n\t0x1658: 0x0369, 0x1659: 0x0289, 0x165a: 0x13d1, 0x165b: 0xaf2a, 0x165c: 0xb522, 0x165d: 0xaf3a,\n\t0x165e: 0xb532, 0x165f: 0x80d5, 0x1660: 0x80f5, 0x1661: 0x29d1, 0x1662: 0x8115, 0x1663: 0x8115,\n\t0x1664: 0x8135, 0x1665: 0x8155, 0x1666: 0x8175, 0x1667: 0x8195, 0x1668: 0x81b5, 0x1669: 0x81d5,\n\t0x166a: 0x81f5, 0x166b: 0x8215, 0x166c: 0x8235, 0x166d: 0x8255, 0x166e: 0x8275, 0x166f: 0x8295,\n\t0x1670: 0x82b5, 0x1671: 0x82d5, 0x1672: 0x82f5, 0x1673: 0x8315, 0x1674: 0x8335, 0x1675: 0x8355,\n\t0x1676: 0x8375, 0x1677: 0x8395, 0x1678: 0x83b5, 0x1679: 0x83d5, 0x167a: 0x83f5, 0x167b: 0x8415,\n\t0x167c: 0x81b5, 0x167d: 0x8435, 0x167e: 0x8455, 0x167f: 0x8215,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x8475, 0x1681: 0x8495, 0x1682: 0x84b5, 0x1683: 0x84d5, 0x1684: 0x84f5, 0x1685: 0x8515,\n\t0x1686: 0x8535, 0x1687: 0x8555, 0x1688: 0x84d5, 0x1689: 0x8575, 0x168a: 0x84d5, 0x168b: 0x8595,\n\t0x168c: 0x8595, 0x168d: 0x85b5, 0x168e: 0x85b5, 0x168f: 0x85d5, 0x1690: 0x8515, 0x1691: 0x85f5,\n\t0x1692: 0x8615, 0x1693: 0x85f5, 0x1694: 0x8635, 0x1695: 0x8615, 0x1696: 0x8655, 0x1697: 0x8655,\n\t0x1698: 0x8675, 0x1699: 0x8675, 0x169a: 0x8695, 0x169b: 0x8695, 0x169c: 0x8615, 0x169d: 0x8115,\n\t0x169e: 0x86b5, 0x169f: 0x86d5, 0x16a0: 0x0040, 0x16a1: 0x86f5, 0x16a2: 0x8715, 0x16a3: 0x8735,\n\t0x16a4: 0x8755, 0x16a5: 0x8735, 0x16a6: 0x8775, 0x16a7: 0x8795, 0x16a8: 0x87b5, 0x16a9: 0x87b5,\n\t0x16aa: 0x87d5, 0x16ab: 0x87d5, 0x16ac: 0x87f5, 0x16ad: 0x87f5, 0x16ae: 0x87d5, 0x16af: 0x87d5,\n\t0x16b0: 0x8815, 0x16b1: 0x8835, 0x16b2: 0x8855, 0x16b3: 0x8875, 0x16b4: 0x8895, 0x16b5: 0x88b5,\n\t0x16b6: 0x88b5, 0x16b7: 0x88b5, 0x16b8: 0x88d5, 0x16b9: 0x88d5, 0x16ba: 0x88d5, 0x16bb: 0x88d5,\n\t0x16bc: 0x87b5, 0x16bd: 0x87b5, 0x16be: 0x87b5, 0x16bf: 0x0040,\n\t// Block 0x5b, offset 0x16c0\n\t0x16c0: 0x0040, 0x16c1: 0x0040, 0x16c2: 0x8715, 0x16c3: 0x86f5, 0x16c4: 0x88f5, 0x16c5: 0x86f5,\n\t0x16c6: 0x8715, 0x16c7: 0x86f5, 0x16c8: 0x0040, 0x16c9: 0x0040, 0x16ca: 0x8915, 0x16cb: 0x8715,\n\t0x16cc: 0x8935, 0x16cd: 0x88f5, 0x16ce: 0x8935, 0x16cf: 0x8715, 0x16d0: 0x0040, 0x16d1: 0x0040,\n\t0x16d2: 0x8955, 0x16d3: 0x8975, 0x16d4: 0x8875, 0x16d5: 0x8935, 0x16d6: 0x88f5, 0x16d7: 0x8935,\n\t0x16d8: 0x0040, 0x16d9: 0x0040, 0x16da: 0x8995, 0x16db: 0x89b5, 0x16dc: 0x8995, 0x16dd: 0x0040,\n\t0x16de: 0x0040, 0x16df: 0x0040, 0x16e0: 0xb541, 0x16e1: 0xb559, 0x16e2: 0xb571, 0x16e3: 0x89d6,\n\t0x16e4: 0xb589, 0x16e5: 0xb5a1, 0x16e6: 0x89f5, 0x16e7: 0x0040, 0x16e8: 0x8a15, 0x16e9: 0x8a35,\n\t0x16ea: 0x8a55, 0x16eb: 0x8a35, 0x16ec: 0x8a75, 0x16ed: 0x8a95, 0x16ee: 0x8ab5, 0x16ef: 0x0040,\n\t0x16f0: 0x0040, 0x16f1: 0x0040, 0x16f2: 0x0040, 0x16f3: 0x0040, 0x16f4: 0x0040, 0x16f5: 0x0040,\n\t0x16f6: 0x0040, 0x16f7: 0x0040, 0x16f8: 0x0040, 0x16f9: 0x0340, 0x16fa: 0x0340, 0x16fb: 0x0340,\n\t0x16fc: 0x0040, 0x16fd: 0x0040, 0x16fe: 0x0040, 0x16ff: 0x0040,\n\t// Block 0x5c, offset 0x1700\n\t0x1700: 0x0a08, 0x1701: 0x0a08, 0x1702: 0x0a08, 0x1703: 0x0a08, 0x1704: 0x0a08, 0x1705: 0x0c08,\n\t0x1706: 0x0808, 0x1707: 0x0c08, 0x1708: 0x0818, 0x1709: 0x0c08, 0x170a: 0x0c08, 0x170b: 0x0808,\n\t0x170c: 0x0808, 0x170d: 0x0908, 0x170e: 0x0c08, 0x170f: 0x0c08, 0x1710: 0x0c08, 0x1711: 0x0c08,\n\t0x1712: 0x0c08, 0x1713: 0x0a08, 0x1714: 0x0a08, 0x1715: 0x0a08, 0x1716: 0x0a08, 0x1717: 0x0908,\n\t0x1718: 0x0a08, 0x1719: 0x0a08, 0x171a: 0x0a08, 0x171b: 0x0a08, 0x171c: 0x0a08, 0x171d: 0x0c08,\n\t0x171e: 0x0a08, 0x171f: 0x0a08, 0x1720: 0x0a08, 0x1721: 0x0c08, 0x1722: 0x0808, 0x1723: 0x0808,\n\t0x1724: 0x0c08, 0x1725: 0x3308, 0x1726: 0x3308, 0x1727: 0x0040, 0x1728: 0x0040, 0x1729: 0x0040,\n\t0x172a: 0x0040, 0x172b: 0x0a18, 0x172c: 0x0a18, 0x172d: 0x0a18, 0x172e: 0x0a18, 0x172f: 0x0c18,\n\t0x1730: 0x0818, 0x1731: 0x0818, 0x1732: 0x0818, 0x1733: 0x0818, 0x1734: 0x0818, 0x1735: 0x0818,\n\t0x1736: 0x0818, 0x1737: 0x0040, 0x1738: 0x0040, 0x1739: 0x0040, 0x173a: 0x0040, 0x173b: 0x0040,\n\t0x173c: 0x0040, 0x173d: 0x0040, 0x173e: 0x0040, 0x173f: 0x0040,\n\t// Block 0x5d, offset 0x1740\n\t0x1740: 0x0a08, 0x1741: 0x0c08, 0x1742: 0x0a08, 0x1743: 0x0c08, 0x1744: 0x0c08, 0x1745: 0x0c08,\n\t0x1746: 0x0a08, 0x1747: 0x0a08, 0x1748: 0x0a08, 0x1749: 0x0c08, 0x174a: 0x0a08, 0x174b: 0x0a08,\n\t0x174c: 0x0c08, 0x174d: 0x0a08, 0x174e: 0x0c08, 0x174f: 0x0c08, 0x1750: 0x0a08, 0x1751: 0x0c08,\n\t0x1752: 0x0040, 0x1753: 0x0040, 0x1754: 0x0040, 0x1755: 0x0040, 0x1756: 0x0040, 0x1757: 0x0040,\n\t0x1758: 0x0040, 0x1759: 0x0818, 0x175a: 0x0818, 0x175b: 0x0818, 0x175c: 0x0818, 0x175d: 0x0040,\n\t0x175e: 0x0040, 0x175f: 0x0040, 0x1760: 0x0040, 0x1761: 0x0040, 0x1762: 0x0040, 0x1763: 0x0040,\n\t0x1764: 0x0040, 0x1765: 0x0040, 0x1766: 0x0040, 0x1767: 0x0040, 0x1768: 0x0040, 0x1769: 0x0c18,\n\t0x176a: 0x0c18, 0x176b: 0x0c18, 0x176c: 0x0c18, 0x176d: 0x0a18, 0x176e: 0x0a18, 0x176f: 0x0818,\n\t0x1770: 0x0040, 0x1771: 0x0040, 0x1772: 0x0040, 0x1773: 0x0040, 0x1774: 0x0040, 0x1775: 0x0040,\n\t0x1776: 0x0040, 0x1777: 0x0040, 0x1778: 0x0040, 0x1779: 0x0040, 0x177a: 0x0040, 0x177b: 0x0040,\n\t0x177c: 0x0040, 0x177d: 0x0040, 0x177e: 0x0040, 0x177f: 0x0040,\n\t// Block 0x5e, offset 0x1780\n\t0x1780: 0x3308, 0x1781: 0x3308, 0x1782: 0x3008, 0x1783: 0x3008, 0x1784: 0x0040, 0x1785: 0x0008,\n\t0x1786: 0x0008, 0x1787: 0x0008, 0x1788: 0x0008, 0x1789: 0x0008, 0x178a: 0x0008, 0x178b: 0x0008,\n\t0x178c: 0x0008, 0x178d: 0x0040, 0x178e: 0x0040, 0x178f: 0x0008, 0x1790: 0x0008, 0x1791: 0x0040,\n\t0x1792: 0x0040, 0x1793: 0x0008, 0x1794: 0x0008, 0x1795: 0x0008, 0x1796: 0x0008, 0x1797: 0x0008,\n\t0x1798: 0x0008, 0x1799: 0x0008, 0x179a: 0x0008, 0x179b: 0x0008, 0x179c: 0x0008, 0x179d: 0x0008,\n\t0x179e: 0x0008, 0x179f: 0x0008, 0x17a0: 0x0008, 0x17a1: 0x0008, 0x17a2: 0x0008, 0x17a3: 0x0008,\n\t0x17a4: 0x0008, 0x17a5: 0x0008, 0x17a6: 0x0008, 0x17a7: 0x0008, 0x17a8: 0x0008, 0x17a9: 0x0040,\n\t0x17aa: 0x0008, 0x17ab: 0x0008, 0x17ac: 0x0008, 0x17ad: 0x0008, 0x17ae: 0x0008, 0x17af: 0x0008,\n\t0x17b0: 0x0008, 0x17b1: 0x0040, 0x17b2: 0x0008, 0x17b3: 0x0008, 0x17b4: 0x0040, 0x17b5: 0x0008,\n\t0x17b6: 0x0008, 0x17b7: 0x0008, 0x17b8: 0x0008, 0x17b9: 0x0008, 0x17ba: 0x0040, 0x17bb: 0x0040,\n\t0x17bc: 0x3308, 0x17bd: 0x0008, 0x17be: 0x3008, 0x17bf: 0x3008,\n\t// Block 0x5f, offset 0x17c0\n\t0x17c0: 0x3308, 0x17c1: 0x3008, 0x17c2: 0x3008, 0x17c3: 0x3008, 0x17c4: 0x3008, 0x17c5: 0x0040,\n\t0x17c6: 0x0040, 0x17c7: 0x3008, 0x17c8: 0x3008, 0x17c9: 0x0040, 0x17ca: 0x0040, 0x17cb: 0x3008,\n\t0x17cc: 0x3008, 0x17cd: 0x3808, 0x17ce: 0x0040, 0x17cf: 0x0040, 0x17d0: 0x0008, 0x17d1: 0x0040,\n\t0x17d2: 0x0040, 0x17d3: 0x0040, 0x17d4: 0x0040, 0x17d5: 0x0040, 0x17d6: 0x0040, 0x17d7: 0x3008,\n\t0x17d8: 0x0040, 0x17d9: 0x0040, 0x17da: 0x0040, 0x17db: 0x0040, 0x17dc: 0x0040, 0x17dd: 0x0008,\n\t0x17de: 0x0008, 0x17df: 0x0008, 0x17e0: 0x0008, 0x17e1: 0x0008, 0x17e2: 0x3008, 0x17e3: 0x3008,\n\t0x17e4: 0x0040, 0x17e5: 0x0040, 0x17e6: 0x3308, 0x17e7: 0x3308, 0x17e8: 0x3308, 0x17e9: 0x3308,\n\t0x17ea: 0x3308, 0x17eb: 0x3308, 0x17ec: 0x3308, 0x17ed: 0x0040, 0x17ee: 0x0040, 0x17ef: 0x0040,\n\t0x17f0: 0x3308, 0x17f1: 0x3308, 0x17f2: 0x3308, 0x17f3: 0x3308, 0x17f4: 0x3308, 0x17f5: 0x0040,\n\t0x17f6: 0x0040, 0x17f7: 0x0040, 0x17f8: 0x0040, 0x17f9: 0x0040, 0x17fa: 0x0040, 0x17fb: 0x0040,\n\t0x17fc: 0x0040, 0x17fd: 0x0040, 0x17fe: 0x0040, 0x17ff: 0x0040,\n\t// Block 0x60, offset 0x1800\n\t0x1800: 0x0039, 0x1801: 0x0ee9, 0x1802: 0x1159, 0x1803: 0x0ef9, 0x1804: 0x0f09, 0x1805: 0x1199,\n\t0x1806: 0x0f31, 0x1807: 0x0249, 0x1808: 0x0f41, 0x1809: 0x0259, 0x180a: 0x0f51, 0x180b: 0x0359,\n\t0x180c: 0x0f61, 0x180d: 0x0f71, 0x180e: 0x00d9, 0x180f: 0x0f99, 0x1810: 0x2039, 0x1811: 0x0269,\n\t0x1812: 0x01d9, 0x1813: 0x0fa9, 0x1814: 0x0fb9, 0x1815: 0x1089, 0x1816: 0x0279, 0x1817: 0x0369,\n\t0x1818: 0x0289, 0x1819: 0x13d1, 0x181a: 0x0039, 0x181b: 0x0ee9, 0x181c: 0x1159, 0x181d: 0x0ef9,\n\t0x181e: 0x0f09, 0x181f: 0x1199, 0x1820: 0x0f31, 0x1821: 0x0249, 0x1822: 0x0f41, 0x1823: 0x0259,\n\t0x1824: 0x0f51, 0x1825: 0x0359, 0x1826: 0x0f61, 0x1827: 0x0f71, 0x1828: 0x00d9, 0x1829: 0x0f99,\n\t0x182a: 0x2039, 0x182b: 0x0269, 0x182c: 0x01d9, 0x182d: 0x0fa9, 0x182e: 0x0fb9, 0x182f: 0x1089,\n\t0x1830: 0x0279, 0x1831: 0x0369, 0x1832: 0x0289, 0x1833: 0x13d1, 0x1834: 0x0039, 0x1835: 0x0ee9,\n\t0x1836: 0x1159, 0x1837: 0x0ef9, 0x1838: 0x0f09, 0x1839: 0x1199, 0x183a: 0x0f31, 0x183b: 0x0249,\n\t0x183c: 0x0f41, 0x183d: 0x0259, 0x183e: 0x0f51, 0x183f: 0x0359,\n\t// Block 0x61, offset 0x1840\n\t0x1840: 0x0f61, 0x1841: 0x0f71, 0x1842: 0x00d9, 0x1843: 0x0f99, 0x1844: 0x2039, 0x1845: 0x0269,\n\t0x1846: 0x01d9, 0x1847: 0x0fa9, 0x1848: 0x0fb9, 0x1849: 0x1089, 0x184a: 0x0279, 0x184b: 0x0369,\n\t0x184c: 0x0289, 0x184d: 0x13d1, 0x184e: 0x0039, 0x184f: 0x0ee9, 0x1850: 0x1159, 0x1851: 0x0ef9,\n\t0x1852: 0x0f09, 0x1853: 0x1199, 0x1854: 0x0f31, 0x1855: 0x0040, 0x1856: 0x0f41, 0x1857: 0x0259,\n\t0x1858: 0x0f51, 0x1859: 0x0359, 0x185a: 0x0f61, 0x185b: 0x0f71, 0x185c: 0x00d9, 0x185d: 0x0f99,\n\t0x185e: 0x2039, 0x185f: 0x0269, 0x1860: 0x01d9, 0x1861: 0x0fa9, 0x1862: 0x0fb9, 0x1863: 0x1089,\n\t0x1864: 0x0279, 0x1865: 0x0369, 0x1866: 0x0289, 0x1867: 0x13d1, 0x1868: 0x0039, 0x1869: 0x0ee9,\n\t0x186a: 0x1159, 0x186b: 0x0ef9, 0x186c: 0x0f09, 0x186d: 0x1199, 0x186e: 0x0f31, 0x186f: 0x0249,\n\t0x1870: 0x0f41, 0x1871: 0x0259, 0x1872: 0x0f51, 0x1873: 0x0359, 0x1874: 0x0f61, 0x1875: 0x0f71,\n\t0x1876: 0x00d9, 0x1877: 0x0f99, 0x1878: 0x2039, 0x1879: 0x0269, 0x187a: 0x01d9, 0x187b: 0x0fa9,\n\t0x187c: 0x0fb9, 0x187d: 0x1089, 0x187e: 0x0279, 0x187f: 0x0369,\n\t// Block 0x62, offset 0x1880\n\t0x1880: 0x0289, 0x1881: 0x13d1, 0x1882: 0x0039, 0x1883: 0x0ee9, 0x1884: 0x1159, 0x1885: 0x0ef9,\n\t0x1886: 0x0f09, 0x1887: 0x1199, 0x1888: 0x0f31, 0x1889: 0x0249, 0x188a: 0x0f41, 0x188b: 0x0259,\n\t0x188c: 0x0f51, 0x188d: 0x0359, 0x188e: 0x0f61, 0x188f: 0x0f71, 0x1890: 0x00d9, 0x1891: 0x0f99,\n\t0x1892: 0x2039, 0x1893: 0x0269, 0x1894: 0x01d9, 0x1895: 0x0fa9, 0x1896: 0x0fb9, 0x1897: 0x1089,\n\t0x1898: 0x0279, 0x1899: 0x0369, 0x189a: 0x0289, 0x189b: 0x13d1, 0x189c: 0x0039, 0x189d: 0x0040,\n\t0x189e: 0x1159, 0x189f: 0x0ef9, 0x18a0: 0x0040, 0x18a1: 0x0040, 0x18a2: 0x0f31, 0x18a3: 0x0040,\n\t0x18a4: 0x0040, 0x18a5: 0x0259, 0x18a6: 0x0f51, 0x18a7: 0x0040, 0x18a8: 0x0040, 0x18a9: 0x0f71,\n\t0x18aa: 0x00d9, 0x18ab: 0x0f99, 0x18ac: 0x2039, 0x18ad: 0x0040, 0x18ae: 0x01d9, 0x18af: 0x0fa9,\n\t0x18b0: 0x0fb9, 0x18b1: 0x1089, 0x18b2: 0x0279, 0x18b3: 0x0369, 0x18b4: 0x0289, 0x18b5: 0x13d1,\n\t0x18b6: 0x0039, 0x18b7: 0x0ee9, 0x18b8: 0x1159, 0x18b9: 0x0ef9, 0x18ba: 0x0040, 0x18bb: 0x1199,\n\t0x18bc: 0x0040, 0x18bd: 0x0249, 0x18be: 0x0f41, 0x18bf: 0x0259,\n\t// Block 0x63, offset 0x18c0\n\t0x18c0: 0x0f51, 0x18c1: 0x0359, 0x18c2: 0x0f61, 0x18c3: 0x0f71, 0x18c4: 0x0040, 0x18c5: 0x0f99,\n\t0x18c6: 0x2039, 0x18c7: 0x0269, 0x18c8: 0x01d9, 0x18c9: 0x0fa9, 0x18ca: 0x0fb9, 0x18cb: 0x1089,\n\t0x18cc: 0x0279, 0x18cd: 0x0369, 0x18ce: 0x0289, 0x18cf: 0x13d1, 0x18d0: 0x0039, 0x18d1: 0x0ee9,\n\t0x18d2: 0x1159, 0x18d3: 0x0ef9, 0x18d4: 0x0f09, 0x18d5: 0x1199, 0x18d6: 0x0f31, 0x18d7: 0x0249,\n\t0x18d8: 0x0f41, 0x18d9: 0x0259, 0x18da: 0x0f51, 0x18db: 0x0359, 0x18dc: 0x0f61, 0x18dd: 0x0f71,\n\t0x18de: 0x00d9, 0x18df: 0x0f99, 0x18e0: 0x2039, 0x18e1: 0x0269, 0x18e2: 0x01d9, 0x18e3: 0x0fa9,\n\t0x18e4: 0x0fb9, 0x18e5: 0x1089, 0x18e6: 0x0279, 0x18e7: 0x0369, 0x18e8: 0x0289, 0x18e9: 0x13d1,\n\t0x18ea: 0x0039, 0x18eb: 0x0ee9, 0x18ec: 0x1159, 0x18ed: 0x0ef9, 0x18ee: 0x0f09, 0x18ef: 0x1199,\n\t0x18f0: 0x0f31, 0x18f1: 0x0249, 0x18f2: 0x0f41, 0x18f3: 0x0259, 0x18f4: 0x0f51, 0x18f5: 0x0359,\n\t0x18f6: 0x0f61, 0x18f7: 0x0f71, 0x18f8: 0x00d9, 0x18f9: 0x0f99, 0x18fa: 0x2039, 0x18fb: 0x0269,\n\t0x18fc: 0x01d9, 0x18fd: 0x0fa9, 0x18fe: 0x0fb9, 0x18ff: 0x1089,\n\t// Block 0x64, offset 0x1900\n\t0x1900: 0x0279, 0x1901: 0x0369, 0x1902: 0x0289, 0x1903: 0x13d1, 0x1904: 0x0039, 0x1905: 0x0ee9,\n\t0x1906: 0x0040, 0x1907: 0x0ef9, 0x1908: 0x0f09, 0x1909: 0x1199, 0x190a: 0x0f31, 0x190b: 0x0040,\n\t0x190c: 0x0040, 0x190d: 0x0259, 0x190e: 0x0f51, 0x190f: 0x0359, 0x1910: 0x0f61, 0x1911: 0x0f71,\n\t0x1912: 0x00d9, 0x1913: 0x0f99, 0x1914: 0x2039, 0x1915: 0x0040, 0x1916: 0x01d9, 0x1917: 0x0fa9,\n\t0x1918: 0x0fb9, 0x1919: 0x1089, 0x191a: 0x0279, 0x191b: 0x0369, 0x191c: 0x0289, 0x191d: 0x0040,\n\t0x191e: 0x0039, 0x191f: 0x0ee9, 0x1920: 0x1159, 0x1921: 0x0ef9, 0x1922: 0x0f09, 0x1923: 0x1199,\n\t0x1924: 0x0f31, 0x1925: 0x0249, 0x1926: 0x0f41, 0x1927: 0x0259, 0x1928: 0x0f51, 0x1929: 0x0359,\n\t0x192a: 0x0f61, 0x192b: 0x0f71, 0x192c: 0x00d9, 0x192d: 0x0f99, 0x192e: 0x2039, 0x192f: 0x0269,\n\t0x1930: 0x01d9, 0x1931: 0x0fa9, 0x1932: 0x0fb9, 0x1933: 0x1089, 0x1934: 0x0279, 0x1935: 0x0369,\n\t0x1936: 0x0289, 0x1937: 0x13d1, 0x1938: 0x0039, 0x1939: 0x0ee9, 0x193a: 0x0040, 0x193b: 0x0ef9,\n\t0x193c: 0x0f09, 0x193d: 0x1199, 0x193e: 0x0f31, 0x193f: 0x0040,\n\t// Block 0x65, offset 0x1940\n\t0x1940: 0x0f41, 0x1941: 0x0259, 0x1942: 0x0f51, 0x1943: 0x0359, 0x1944: 0x0f61, 0x1945: 0x0040,\n\t0x1946: 0x00d9, 0x1947: 0x0040, 0x1948: 0x0040, 0x1949: 0x0040, 0x194a: 0x01d9, 0x194b: 0x0fa9,\n\t0x194c: 0x0fb9, 0x194d: 0x1089, 0x194e: 0x0279, 0x194f: 0x0369, 0x1950: 0x0289, 0x1951: 0x0040,\n\t0x1952: 0x0039, 0x1953: 0x0ee9, 0x1954: 0x1159, 0x1955: 0x0ef9, 0x1956: 0x0f09, 0x1957: 0x1199,\n\t0x1958: 0x0f31, 0x1959: 0x0249, 0x195a: 0x0f41, 0x195b: 0x0259, 0x195c: 0x0f51, 0x195d: 0x0359,\n\t0x195e: 0x0f61, 0x195f: 0x0f71, 0x1960: 0x00d9, 0x1961: 0x0f99, 0x1962: 0x2039, 0x1963: 0x0269,\n\t0x1964: 0x01d9, 0x1965: 0x0fa9, 0x1966: 0x0fb9, 0x1967: 0x1089, 0x1968: 0x0279, 0x1969: 0x0369,\n\t0x196a: 0x0289, 0x196b: 0x13d1, 0x196c: 0x0039, 0x196d: 0x0ee9, 0x196e: 0x1159, 0x196f: 0x0ef9,\n\t0x1970: 0x0f09, 0x1971: 0x1199, 0x1972: 0x0f31, 0x1973: 0x0249, 0x1974: 0x0f41, 0x1975: 0x0259,\n\t0x1976: 0x0f51, 0x1977: 0x0359, 0x1978: 0x0f61, 0x1979: 0x0f71, 0x197a: 0x00d9, 0x197b: 0x0f99,\n\t0x197c: 0x2039, 0x197d: 0x0269, 0x197e: 0x01d9, 0x197f: 0x0fa9,\n\t// Block 0x66, offset 0x1980\n\t0x1980: 0x0fb9, 0x1981: 0x1089, 0x1982: 0x0279, 0x1983: 0x0369, 0x1984: 0x0289, 0x1985: 0x13d1,\n\t0x1986: 0x0039, 0x1987: 0x0ee9, 0x1988: 0x1159, 0x1989: 0x0ef9, 0x198a: 0x0f09, 0x198b: 0x1199,\n\t0x198c: 0x0f31, 0x198d: 0x0249, 0x198e: 0x0f41, 0x198f: 0x0259, 0x1990: 0x0f51, 0x1991: 0x0359,\n\t0x1992: 0x0f61, 0x1993: 0x0f71, 0x1994: 0x00d9, 0x1995: 0x0f99, 0x1996: 0x2039, 0x1997: 0x0269,\n\t0x1998: 0x01d9, 0x1999: 0x0fa9, 0x199a: 0x0fb9, 0x199b: 0x1089, 0x199c: 0x0279, 0x199d: 0x0369,\n\t0x199e: 0x0289, 0x199f: 0x13d1, 0x19a0: 0x0039, 0x19a1: 0x0ee9, 0x19a2: 0x1159, 0x19a3: 0x0ef9,\n\t0x19a4: 0x0f09, 0x19a5: 0x1199, 0x19a6: 0x0f31, 0x19a7: 0x0249, 0x19a8: 0x0f41, 0x19a9: 0x0259,\n\t0x19aa: 0x0f51, 0x19ab: 0x0359, 0x19ac: 0x0f61, 0x19ad: 0x0f71, 0x19ae: 0x00d9, 0x19af: 0x0f99,\n\t0x19b0: 0x2039, 0x19b1: 0x0269, 0x19b2: 0x01d9, 0x19b3: 0x0fa9, 0x19b4: 0x0fb9, 0x19b5: 0x1089,\n\t0x19b6: 0x0279, 0x19b7: 0x0369, 0x19b8: 0x0289, 0x19b9: 0x13d1, 0x19ba: 0x0039, 0x19bb: 0x0ee9,\n\t0x19bc: 0x1159, 0x19bd: 0x0ef9, 0x19be: 0x0f09, 0x19bf: 0x1199,\n\t// Block 0x67, offset 0x19c0\n\t0x19c0: 0x0f31, 0x19c1: 0x0249, 0x19c2: 0x0f41, 0x19c3: 0x0259, 0x19c4: 0x0f51, 0x19c5: 0x0359,\n\t0x19c6: 0x0f61, 0x19c7: 0x0f71, 0x19c8: 0x00d9, 0x19c9: 0x0f99, 0x19ca: 0x2039, 0x19cb: 0x0269,\n\t0x19cc: 0x01d9, 0x19cd: 0x0fa9, 0x19ce: 0x0fb9, 0x19cf: 0x1089, 0x19d0: 0x0279, 0x19d1: 0x0369,\n\t0x19d2: 0x0289, 0x19d3: 0x13d1, 0x19d4: 0x0039, 0x19d5: 0x0ee9, 0x19d6: 0x1159, 0x19d7: 0x0ef9,\n\t0x19d8: 0x0f09, 0x19d9: 0x1199, 0x19da: 0x0f31, 0x19db: 0x0249, 0x19dc: 0x0f41, 0x19dd: 0x0259,\n\t0x19de: 0x0f51, 0x19df: 0x0359, 0x19e0: 0x0f61, 0x19e1: 0x0f71, 0x19e2: 0x00d9, 0x19e3: 0x0f99,\n\t0x19e4: 0x2039, 0x19e5: 0x0269, 0x19e6: 0x01d9, 0x19e7: 0x0fa9, 0x19e8: 0x0fb9, 0x19e9: 0x1089,\n\t0x19ea: 0x0279, 0x19eb: 0x0369, 0x19ec: 0x0289, 0x19ed: 0x13d1, 0x19ee: 0x0039, 0x19ef: 0x0ee9,\n\t0x19f0: 0x1159, 0x19f1: 0x0ef9, 0x19f2: 0x0f09, 0x19f3: 0x1199, 0x19f4: 0x0f31, 0x19f5: 0x0249,\n\t0x19f6: 0x0f41, 0x19f7: 0x0259, 0x19f8: 0x0f51, 0x19f9: 0x0359, 0x19fa: 0x0f61, 0x19fb: 0x0f71,\n\t0x19fc: 0x00d9, 0x19fd: 0x0f99, 0x19fe: 0x2039, 0x19ff: 0x0269,\n\t// Block 0x68, offset 0x1a00\n\t0x1a00: 0x01d9, 0x1a01: 0x0fa9, 0x1a02: 0x0fb9, 0x1a03: 0x1089, 0x1a04: 0x0279, 0x1a05: 0x0369,\n\t0x1a06: 0x0289, 0x1a07: 0x13d1, 0x1a08: 0x0039, 0x1a09: 0x0ee9, 0x1a0a: 0x1159, 0x1a0b: 0x0ef9,\n\t0x1a0c: 0x0f09, 0x1a0d: 0x1199, 0x1a0e: 0x0f31, 0x1a0f: 0x0249, 0x1a10: 0x0f41, 0x1a11: 0x0259,\n\t0x1a12: 0x0f51, 0x1a13: 0x0359, 0x1a14: 0x0f61, 0x1a15: 0x0f71, 0x1a16: 0x00d9, 0x1a17: 0x0f99,\n\t0x1a18: 0x2039, 0x1a19: 0x0269, 0x1a1a: 0x01d9, 0x1a1b: 0x0fa9, 0x1a1c: 0x0fb9, 0x1a1d: 0x1089,\n\t0x1a1e: 0x0279, 0x1a1f: 0x0369, 0x1a20: 0x0289, 0x1a21: 0x13d1, 0x1a22: 0x0039, 0x1a23: 0x0ee9,\n\t0x1a24: 0x1159, 0x1a25: 0x0ef9, 0x1a26: 0x0f09, 0x1a27: 0x1199, 0x1a28: 0x0f31, 0x1a29: 0x0249,\n\t0x1a2a: 0x0f41, 0x1a2b: 0x0259, 0x1a2c: 0x0f51, 0x1a2d: 0x0359, 0x1a2e: 0x0f61, 0x1a2f: 0x0f71,\n\t0x1a30: 0x00d9, 0x1a31: 0x0f99, 0x1a32: 0x2039, 0x1a33: 0x0269, 0x1a34: 0x01d9, 0x1a35: 0x0fa9,\n\t0x1a36: 0x0fb9, 0x1a37: 0x1089, 0x1a38: 0x0279, 0x1a39: 0x0369, 0x1a3a: 0x0289, 0x1a3b: 0x13d1,\n\t0x1a3c: 0x0039, 0x1a3d: 0x0ee9, 0x1a3e: 0x1159, 0x1a3f: 0x0ef9,\n\t// Block 0x69, offset 0x1a40\n\t0x1a40: 0x0f09, 0x1a41: 0x1199, 0x1a42: 0x0f31, 0x1a43: 0x0249, 0x1a44: 0x0f41, 0x1a45: 0x0259,\n\t0x1a46: 0x0f51, 0x1a47: 0x0359, 0x1a48: 0x0f61, 0x1a49: 0x0f71, 0x1a4a: 0x00d9, 0x1a4b: 0x0f99,\n\t0x1a4c: 0x2039, 0x1a4d: 0x0269, 0x1a4e: 0x01d9, 0x1a4f: 0x0fa9, 0x1a50: 0x0fb9, 0x1a51: 0x1089,\n\t0x1a52: 0x0279, 0x1a53: 0x0369, 0x1a54: 0x0289, 0x1a55: 0x13d1, 0x1a56: 0x0039, 0x1a57: 0x0ee9,\n\t0x1a58: 0x1159, 0x1a59: 0x0ef9, 0x1a5a: 0x0f09, 0x1a5b: 0x1199, 0x1a5c: 0x0f31, 0x1a5d: 0x0249,\n\t0x1a5e: 0x0f41, 0x1a5f: 0x0259, 0x1a60: 0x0f51, 0x1a61: 0x0359, 0x1a62: 0x0f61, 0x1a63: 0x0f71,\n\t0x1a64: 0x00d9, 0x1a65: 0x0f99, 0x1a66: 0x2039, 0x1a67: 0x0269, 0x1a68: 0x01d9, 0x1a69: 0x0fa9,\n\t0x1a6a: 0x0fb9, 0x1a6b: 0x1089, 0x1a6c: 0x0279, 0x1a6d: 0x0369, 0x1a6e: 0x0289, 0x1a6f: 0x13d1,\n\t0x1a70: 0x0039, 0x1a71: 0x0ee9, 0x1a72: 0x1159, 0x1a73: 0x0ef9, 0x1a74: 0x0f09, 0x1a75: 0x1199,\n\t0x1a76: 0x0f31, 0x1a77: 0x0249, 0x1a78: 0x0f41, 0x1a79: 0x0259, 0x1a7a: 0x0f51, 0x1a7b: 0x0359,\n\t0x1a7c: 0x0f61, 0x1a7d: 0x0f71, 0x1a7e: 0x00d9, 0x1a7f: 0x0f99,\n\t// Block 0x6a, offset 0x1a80\n\t0x1a80: 0x2039, 0x1a81: 0x0269, 0x1a82: 0x01d9, 0x1a83: 0x0fa9, 0x1a84: 0x0fb9, 0x1a85: 0x1089,\n\t0x1a86: 0x0279, 0x1a87: 0x0369, 0x1a88: 0x0289, 0x1a89: 0x13d1, 0x1a8a: 0x0039, 0x1a8b: 0x0ee9,\n\t0x1a8c: 0x1159, 0x1a8d: 0x0ef9, 0x1a8e: 0x0f09, 0x1a8f: 0x1199, 0x1a90: 0x0f31, 0x1a91: 0x0249,\n\t0x1a92: 0x0f41, 0x1a93: 0x0259, 0x1a94: 0x0f51, 0x1a95: 0x0359, 0x1a96: 0x0f61, 0x1a97: 0x0f71,\n\t0x1a98: 0x00d9, 0x1a99: 0x0f99, 0x1a9a: 0x2039, 0x1a9b: 0x0269, 0x1a9c: 0x01d9, 0x1a9d: 0x0fa9,\n\t0x1a9e: 0x0fb9, 0x1a9f: 0x1089, 0x1aa0: 0x0279, 0x1aa1: 0x0369, 0x1aa2: 0x0289, 0x1aa3: 0x13d1,\n\t0x1aa4: 0xba81, 0x1aa5: 0xba99, 0x1aa6: 0x0040, 0x1aa7: 0x0040, 0x1aa8: 0xbab1, 0x1aa9: 0x1099,\n\t0x1aaa: 0x10b1, 0x1aab: 0x10c9, 0x1aac: 0xbac9, 0x1aad: 0xbae1, 0x1aae: 0xbaf9, 0x1aaf: 0x1429,\n\t0x1ab0: 0x1a31, 0x1ab1: 0xbb11, 0x1ab2: 0xbb29, 0x1ab3: 0xbb41, 0x1ab4: 0xbb59, 0x1ab5: 0xbb71,\n\t0x1ab6: 0xbb89, 0x1ab7: 0x2109, 0x1ab8: 0x1111, 0x1ab9: 0x1429, 0x1aba: 0xbba1, 0x1abb: 0xbbb9,\n\t0x1abc: 0xbbd1, 0x1abd: 0x10e1, 0x1abe: 0x10f9, 0x1abf: 0xbbe9,\n\t// Block 0x6b, offset 0x1ac0\n\t0x1ac0: 0x2079, 0x1ac1: 0xbc01, 0x1ac2: 0xbab1, 0x1ac3: 0x1099, 0x1ac4: 0x10b1, 0x1ac5: 0x10c9,\n\t0x1ac6: 0xbac9, 0x1ac7: 0xbae1, 0x1ac8: 0xbaf9, 0x1ac9: 0x1429, 0x1aca: 0x1a31, 0x1acb: 0xbb11,\n\t0x1acc: 0xbb29, 0x1acd: 0xbb41, 0x1ace: 0xbb59, 0x1acf: 0xbb71, 0x1ad0: 0xbb89, 0x1ad1: 0x2109,\n\t0x1ad2: 0x1111, 0x1ad3: 0xbba1, 0x1ad4: 0xbba1, 0x1ad5: 0xbbb9, 0x1ad6: 0xbbd1, 0x1ad7: 0x10e1,\n\t0x1ad8: 0x10f9, 0x1ad9: 0xbbe9, 0x1ada: 0x2079, 0x1adb: 0xbc21, 0x1adc: 0xbac9, 0x1add: 0x1429,\n\t0x1ade: 0xbb11, 0x1adf: 0x10e1, 0x1ae0: 0x1111, 0x1ae1: 0x2109, 0x1ae2: 0xbab1, 0x1ae3: 0x1099,\n\t0x1ae4: 0x10b1, 0x1ae5: 0x10c9, 0x1ae6: 0xbac9, 0x1ae7: 0xbae1, 0x1ae8: 0xbaf9, 0x1ae9: 0x1429,\n\t0x1aea: 0x1a31, 0x1aeb: 0xbb11, 0x1aec: 0xbb29, 0x1aed: 0xbb41, 0x1aee: 0xbb59, 0x1aef: 0xbb71,\n\t0x1af0: 0xbb89, 0x1af1: 0x2109, 0x1af2: 0x1111, 0x1af3: 0x1429, 0x1af4: 0xbba1, 0x1af5: 0xbbb9,\n\t0x1af6: 0xbbd1, 0x1af7: 0x10e1, 0x1af8: 0x10f9, 0x1af9: 0xbbe9, 0x1afa: 0x2079, 0x1afb: 0xbc01,\n\t0x1afc: 0xbab1, 0x1afd: 0x1099, 0x1afe: 0x10b1, 0x1aff: 0x10c9,\n\t// Block 0x6c, offset 0x1b00\n\t0x1b00: 0xbac9, 0x1b01: 0xbae1, 0x1b02: 0xbaf9, 0x1b03: 0x1429, 0x1b04: 0x1a31, 0x1b05: 0xbb11,\n\t0x1b06: 0xbb29, 0x1b07: 0xbb41, 0x1b08: 0xbb59, 0x1b09: 0xbb71, 0x1b0a: 0xbb89, 0x1b0b: 0x2109,\n\t0x1b0c: 0x1111, 0x1b0d: 0xbba1, 0x1b0e: 0xbba1, 0x1b0f: 0xbbb9, 0x1b10: 0xbbd1, 0x1b11: 0x10e1,\n\t0x1b12: 0x10f9, 0x1b13: 0xbbe9, 0x1b14: 0x2079, 0x1b15: 0xbc21, 0x1b16: 0xbac9, 0x1b17: 0x1429,\n\t0x1b18: 0xbb11, 0x1b19: 0x10e1, 0x1b1a: 0x1111, 0x1b1b: 0x2109, 0x1b1c: 0xbab1, 0x1b1d: 0x1099,\n\t0x1b1e: 0x10b1, 0x1b1f: 0x10c9, 0x1b20: 0xbac9, 0x1b21: 0xbae1, 0x1b22: 0xbaf9, 0x1b23: 0x1429,\n\t0x1b24: 0x1a31, 0x1b25: 0xbb11, 0x1b26: 0xbb29, 0x1b27: 0xbb41, 0x1b28: 0xbb59, 0x1b29: 0xbb71,\n\t0x1b2a: 0xbb89, 0x1b2b: 0x2109, 0x1b2c: 0x1111, 0x1b2d: 0x1429, 0x1b2e: 0xbba1, 0x1b2f: 0xbbb9,\n\t0x1b30: 0xbbd1, 0x1b31: 0x10e1, 0x1b32: 0x10f9, 0x1b33: 0xbbe9, 0x1b34: 0x2079, 0x1b35: 0xbc01,\n\t0x1b36: 0xbab1, 0x1b37: 0x1099, 0x1b38: 0x10b1, 0x1b39: 0x10c9, 0x1b3a: 0xbac9, 0x1b3b: 0xbae1,\n\t0x1b3c: 0xbaf9, 0x1b3d: 0x1429, 0x1b3e: 0x1a31, 0x1b3f: 0xbb11,\n\t// Block 0x6d, offset 0x1b40\n\t0x1b40: 0xbb29, 0x1b41: 0xbb41, 0x1b42: 0xbb59, 0x1b43: 0xbb71, 0x1b44: 0xbb89, 0x1b45: 0x2109,\n\t0x1b46: 0x1111, 0x1b47: 0xbba1, 0x1b48: 0xbba1, 0x1b49: 0xbbb9, 0x1b4a: 0xbbd1, 0x1b4b: 0x10e1,\n\t0x1b4c: 0x10f9, 0x1b4d: 0xbbe9, 0x1b4e: 0x2079, 0x1b4f: 0xbc21, 0x1b50: 0xbac9, 0x1b51: 0x1429,\n\t0x1b52: 0xbb11, 0x1b53: 0x10e1, 0x1b54: 0x1111, 0x1b55: 0x2109, 0x1b56: 0xbab1, 0x1b57: 0x1099,\n\t0x1b58: 0x10b1, 0x1b59: 0x10c9, 0x1b5a: 0xbac9, 0x1b5b: 0xbae1, 0x1b5c: 0xbaf9, 0x1b5d: 0x1429,\n\t0x1b5e: 0x1a31, 0x1b5f: 0xbb11, 0x1b60: 0xbb29, 0x1b61: 0xbb41, 0x1b62: 0xbb59, 0x1b63: 0xbb71,\n\t0x1b64: 0xbb89, 0x1b65: 0x2109, 0x1b66: 0x1111, 0x1b67: 0x1429, 0x1b68: 0xbba1, 0x1b69: 0xbbb9,\n\t0x1b6a: 0xbbd1, 0x1b6b: 0x10e1, 0x1b6c: 0x10f9, 0x1b6d: 0xbbe9, 0x1b6e: 0x2079, 0x1b6f: 0xbc01,\n\t0x1b70: 0xbab1, 0x1b71: 0x1099, 0x1b72: 0x10b1, 0x1b73: 0x10c9, 0x1b74: 0xbac9, 0x1b75: 0xbae1,\n\t0x1b76: 0xbaf9, 0x1b77: 0x1429, 0x1b78: 0x1a31, 0x1b79: 0xbb11, 0x1b7a: 0xbb29, 0x1b7b: 0xbb41,\n\t0x1b7c: 0xbb59, 0x1b7d: 0xbb71, 0x1b7e: 0xbb89, 0x1b7f: 0x2109,\n\t// Block 0x6e, offset 0x1b80\n\t0x1b80: 0x1111, 0x1b81: 0xbba1, 0x1b82: 0xbba1, 0x1b83: 0xbbb9, 0x1b84: 0xbbd1, 0x1b85: 0x10e1,\n\t0x1b86: 0x10f9, 0x1b87: 0xbbe9, 0x1b88: 0x2079, 0x1b89: 0xbc21, 0x1b8a: 0xbac9, 0x1b8b: 0x1429,\n\t0x1b8c: 0xbb11, 0x1b8d: 0x10e1, 0x1b8e: 0x1111, 0x1b8f: 0x2109, 0x1b90: 0xbab1, 0x1b91: 0x1099,\n\t0x1b92: 0x10b1, 0x1b93: 0x10c9, 0x1b94: 0xbac9, 0x1b95: 0xbae1, 0x1b96: 0xbaf9, 0x1b97: 0x1429,\n\t0x1b98: 0x1a31, 0x1b99: 0xbb11, 0x1b9a: 0xbb29, 0x1b9b: 0xbb41, 0x1b9c: 0xbb59, 0x1b9d: 0xbb71,\n\t0x1b9e: 0xbb89, 0x1b9f: 0x2109, 0x1ba0: 0x1111, 0x1ba1: 0x1429, 0x1ba2: 0xbba1, 0x1ba3: 0xbbb9,\n\t0x1ba4: 0xbbd1, 0x1ba5: 0x10e1, 0x1ba6: 0x10f9, 0x1ba7: 0xbbe9, 0x1ba8: 0x2079, 0x1ba9: 0xbc01,\n\t0x1baa: 0xbab1, 0x1bab: 0x1099, 0x1bac: 0x10b1, 0x1bad: 0x10c9, 0x1bae: 0xbac9, 0x1baf: 0xbae1,\n\t0x1bb0: 0xbaf9, 0x1bb1: 0x1429, 0x1bb2: 0x1a31, 0x1bb3: 0xbb11, 0x1bb4: 0xbb29, 0x1bb5: 0xbb41,\n\t0x1bb6: 0xbb59, 0x1bb7: 0xbb71, 0x1bb8: 0xbb89, 0x1bb9: 0x2109, 0x1bba: 0x1111, 0x1bbb: 0xbba1,\n\t0x1bbc: 0xbba1, 0x1bbd: 0xbbb9, 0x1bbe: 0xbbd1, 0x1bbf: 0x10e1,\n\t// Block 0x6f, offset 0x1bc0\n\t0x1bc0: 0x10f9, 0x1bc1: 0xbbe9, 0x1bc2: 0x2079, 0x1bc3: 0xbc21, 0x1bc4: 0xbac9, 0x1bc5: 0x1429,\n\t0x1bc6: 0xbb11, 0x1bc7: 0x10e1, 0x1bc8: 0x1111, 0x1bc9: 0x2109, 0x1bca: 0xbc41, 0x1bcb: 0xbc41,\n\t0x1bcc: 0x0040, 0x1bcd: 0x0040, 0x1bce: 0x1f41, 0x1bcf: 0x00c9, 0x1bd0: 0x0069, 0x1bd1: 0x0079,\n\t0x1bd2: 0x1f51, 0x1bd3: 0x1f61, 0x1bd4: 0x1f71, 0x1bd5: 0x1f81, 0x1bd6: 0x1f91, 0x1bd7: 0x1fa1,\n\t0x1bd8: 0x1f41, 0x1bd9: 0x00c9, 0x1bda: 0x0069, 0x1bdb: 0x0079, 0x1bdc: 0x1f51, 0x1bdd: 0x1f61,\n\t0x1bde: 0x1f71, 0x1bdf: 0x1f81, 0x1be0: 0x1f91, 0x1be1: 0x1fa1, 0x1be2: 0x1f41, 0x1be3: 0x00c9,\n\t0x1be4: 0x0069, 0x1be5: 0x0079, 0x1be6: 0x1f51, 0x1be7: 0x1f61, 0x1be8: 0x1f71, 0x1be9: 0x1f81,\n\t0x1bea: 0x1f91, 0x1beb: 0x1fa1, 0x1bec: 0x1f41, 0x1bed: 0x00c9, 0x1bee: 0x0069, 0x1bef: 0x0079,\n\t0x1bf0: 0x1f51, 0x1bf1: 0x1f61, 0x1bf2: 0x1f71, 0x1bf3: 0x1f81, 0x1bf4: 0x1f91, 0x1bf5: 0x1fa1,\n\t0x1bf6: 0x1f41, 0x1bf7: 0x00c9, 0x1bf8: 0x0069, 0x1bf9: 0x0079, 0x1bfa: 0x1f51, 0x1bfb: 0x1f61,\n\t0x1bfc: 0x1f71, 0x1bfd: 0x1f81, 0x1bfe: 0x1f91, 0x1bff: 0x1fa1,\n\t// Block 0x70, offset 0x1c00\n\t0x1c00: 0xe115, 0x1c01: 0xe115, 0x1c02: 0xe135, 0x1c03: 0xe135, 0x1c04: 0xe115, 0x1c05: 0xe115,\n\t0x1c06: 0xe175, 0x1c07: 0xe175, 0x1c08: 0xe115, 0x1c09: 0xe115, 0x1c0a: 0xe135, 0x1c0b: 0xe135,\n\t0x1c0c: 0xe115, 0x1c0d: 0xe115, 0x1c0e: 0xe1f5, 0x1c0f: 0xe1f5, 0x1c10: 0xe115, 0x1c11: 0xe115,\n\t0x1c12: 0xe135, 0x1c13: 0xe135, 0x1c14: 0xe115, 0x1c15: 0xe115, 0x1c16: 0xe175, 0x1c17: 0xe175,\n\t0x1c18: 0xe115, 0x1c19: 0xe115, 0x1c1a: 0xe135, 0x1c1b: 0xe135, 0x1c1c: 0xe115, 0x1c1d: 0xe115,\n\t0x1c1e: 0x8b05, 0x1c1f: 0x8b05, 0x1c20: 0x04b5, 0x1c21: 0x04b5, 0x1c22: 0x0a08, 0x1c23: 0x0a08,\n\t0x1c24: 0x0a08, 0x1c25: 0x0a08, 0x1c26: 0x0a08, 0x1c27: 0x0a08, 0x1c28: 0x0a08, 0x1c29: 0x0a08,\n\t0x1c2a: 0x0a08, 0x1c2b: 0x0a08, 0x1c2c: 0x0a08, 0x1c2d: 0x0a08, 0x1c2e: 0x0a08, 0x1c2f: 0x0a08,\n\t0x1c30: 0x0a08, 0x1c31: 0x0a08, 0x1c32: 0x0a08, 0x1c33: 0x0a08, 0x1c34: 0x0a08, 0x1c35: 0x0a08,\n\t0x1c36: 0x0a08, 0x1c37: 0x0a08, 0x1c38: 0x0a08, 0x1c39: 0x0a08, 0x1c3a: 0x0a08, 0x1c3b: 0x0a08,\n\t0x1c3c: 0x0a08, 0x1c3d: 0x0a08, 0x1c3e: 0x0a08, 0x1c3f: 0x0a08,\n\t// Block 0x71, offset 0x1c40\n\t0x1c40: 0xb189, 0x1c41: 0xb1a1, 0x1c42: 0xb201, 0x1c43: 0xb249, 0x1c44: 0x0040, 0x1c45: 0xb411,\n\t0x1c46: 0xb291, 0x1c47: 0xb219, 0x1c48: 0xb309, 0x1c49: 0xb429, 0x1c4a: 0xb399, 0x1c4b: 0xb3b1,\n\t0x1c4c: 0xb3c9, 0x1c4d: 0xb3e1, 0x1c4e: 0xb2a9, 0x1c4f: 0xb339, 0x1c50: 0xb369, 0x1c51: 0xb2d9,\n\t0x1c52: 0xb381, 0x1c53: 0xb279, 0x1c54: 0xb2c1, 0x1c55: 0xb1d1, 0x1c56: 0xb1e9, 0x1c57: 0xb231,\n\t0x1c58: 0xb261, 0x1c59: 0xb2f1, 0x1c5a: 0xb321, 0x1c5b: 0xb351, 0x1c5c: 0xbc59, 0x1c5d: 0x7949,\n\t0x1c5e: 0xbc71, 0x1c5f: 0xbc89, 0x1c60: 0x0040, 0x1c61: 0xb1a1, 0x1c62: 0xb201, 0x1c63: 0x0040,\n\t0x1c64: 0xb3f9, 0x1c65: 0x0040, 0x1c66: 0x0040, 0x1c67: 0xb219, 0x1c68: 0x0040, 0x1c69: 0xb429,\n\t0x1c6a: 0xb399, 0x1c6b: 0xb3b1, 0x1c6c: 0xb3c9, 0x1c6d: 0xb3e1, 0x1c6e: 0xb2a9, 0x1c6f: 0xb339,\n\t0x1c70: 0xb369, 0x1c71: 0xb2d9, 0x1c72: 0xb381, 0x1c73: 0x0040, 0x1c74: 0xb2c1, 0x1c75: 0xb1d1,\n\t0x1c76: 0xb1e9, 0x1c77: 0xb231, 0x1c78: 0x0040, 0x1c79: 0xb2f1, 0x1c7a: 0x0040, 0x1c7b: 0xb351,\n\t0x1c7c: 0x0040, 0x1c7d: 0x0040, 0x1c7e: 0x0040, 0x1c7f: 0x0040,\n\t// Block 0x72, offset 0x1c80\n\t0x1c80: 0x0040, 0x1c81: 0x0040, 0x1c82: 0xb201, 0x1c83: 0x0040, 0x1c84: 0x0040, 0x1c85: 0x0040,\n\t0x1c86: 0x0040, 0x1c87: 0xb219, 0x1c88: 0x0040, 0x1c89: 0xb429, 0x1c8a: 0x0040, 0x1c8b: 0xb3b1,\n\t0x1c8c: 0x0040, 0x1c8d: 0xb3e1, 0x1c8e: 0xb2a9, 0x1c8f: 0xb339, 0x1c90: 0x0040, 0x1c91: 0xb2d9,\n\t0x1c92: 0xb381, 0x1c93: 0x0040, 0x1c94: 0xb2c1, 0x1c95: 0x0040, 0x1c96: 0x0040, 0x1c97: 0xb231,\n\t0x1c98: 0x0040, 0x1c99: 0xb2f1, 0x1c9a: 0x0040, 0x1c9b: 0xb351, 0x1c9c: 0x0040, 0x1c9d: 0x7949,\n\t0x1c9e: 0x0040, 0x1c9f: 0xbc89, 0x1ca0: 0x0040, 0x1ca1: 0xb1a1, 0x1ca2: 0xb201, 0x1ca3: 0x0040,\n\t0x1ca4: 0xb3f9, 0x1ca5: 0x0040, 0x1ca6: 0x0040, 0x1ca7: 0xb219, 0x1ca8: 0xb309, 0x1ca9: 0xb429,\n\t0x1caa: 0xb399, 0x1cab: 0x0040, 0x1cac: 0xb3c9, 0x1cad: 0xb3e1, 0x1cae: 0xb2a9, 0x1caf: 0xb339,\n\t0x1cb0: 0xb369, 0x1cb1: 0xb2d9, 0x1cb2: 0xb381, 0x1cb3: 0x0040, 0x1cb4: 0xb2c1, 0x1cb5: 0xb1d1,\n\t0x1cb6: 0xb1e9, 0x1cb7: 0xb231, 0x1cb8: 0x0040, 0x1cb9: 0xb2f1, 0x1cba: 0xb321, 0x1cbb: 0xb351,\n\t0x1cbc: 0xbc59, 0x1cbd: 0x0040, 0x1cbe: 0xbc71, 0x1cbf: 0x0040,\n\t// Block 0x73, offset 0x1cc0\n\t0x1cc0: 0xb189, 0x1cc1: 0xb1a1, 0x1cc2: 0xb201, 0x1cc3: 0xb249, 0x1cc4: 0xb3f9, 0x1cc5: 0xb411,\n\t0x1cc6: 0xb291, 0x1cc7: 0xb219, 0x1cc8: 0xb309, 0x1cc9: 0xb429, 0x1cca: 0x0040, 0x1ccb: 0xb3b1,\n\t0x1ccc: 0xb3c9, 0x1ccd: 0xb3e1, 0x1cce: 0xb2a9, 0x1ccf: 0xb339, 0x1cd0: 0xb369, 0x1cd1: 0xb2d9,\n\t0x1cd2: 0xb381, 0x1cd3: 0xb279, 0x1cd4: 0xb2c1, 0x1cd5: 0xb1d1, 0x1cd6: 0xb1e9, 0x1cd7: 0xb231,\n\t0x1cd8: 0xb261, 0x1cd9: 0xb2f1, 0x1cda: 0xb321, 0x1cdb: 0xb351, 0x1cdc: 0x0040, 0x1cdd: 0x0040,\n\t0x1cde: 0x0040, 0x1cdf: 0x0040, 0x1ce0: 0x0040, 0x1ce1: 0xb1a1, 0x1ce2: 0xb201, 0x1ce3: 0xb249,\n\t0x1ce4: 0x0040, 0x1ce5: 0xb411, 0x1ce6: 0xb291, 0x1ce7: 0xb219, 0x1ce8: 0xb309, 0x1ce9: 0xb429,\n\t0x1cea: 0x0040, 0x1ceb: 0xb3b1, 0x1cec: 0xb3c9, 0x1ced: 0xb3e1, 0x1cee: 0xb2a9, 0x1cef: 0xb339,\n\t0x1cf0: 0xb369, 0x1cf1: 0xb2d9, 0x1cf2: 0xb381, 0x1cf3: 0xb279, 0x1cf4: 0xb2c1, 0x1cf5: 0xb1d1,\n\t0x1cf6: 0xb1e9, 0x1cf7: 0xb231, 0x1cf8: 0xb261, 0x1cf9: 0xb2f1, 0x1cfa: 0xb321, 0x1cfb: 0xb351,\n\t0x1cfc: 0x0040, 0x1cfd: 0x0040, 0x1cfe: 0x0040, 0x1cff: 0x0040,\n\t// Block 0x74, offset 0x1d00\n\t0x1d00: 0x0040, 0x1d01: 0xbca2, 0x1d02: 0xbcba, 0x1d03: 0xbcd2, 0x1d04: 0xbcea, 0x1d05: 0xbd02,\n\t0x1d06: 0xbd1a, 0x1d07: 0xbd32, 0x1d08: 0xbd4a, 0x1d09: 0xbd62, 0x1d0a: 0xbd7a, 0x1d0b: 0x0018,\n\t0x1d0c: 0x0018, 0x1d0d: 0x0040, 0x1d0e: 0x0040, 0x1d0f: 0x0040, 0x1d10: 0xbd92, 0x1d11: 0xbdb2,\n\t0x1d12: 0xbdd2, 0x1d13: 0xbdf2, 0x1d14: 0xbe12, 0x1d15: 0xbe32, 0x1d16: 0xbe52, 0x1d17: 0xbe72,\n\t0x1d18: 0xbe92, 0x1d19: 0xbeb2, 0x1d1a: 0xbed2, 0x1d1b: 0xbef2, 0x1d1c: 0xbf12, 0x1d1d: 0xbf32,\n\t0x1d1e: 0xbf52, 0x1d1f: 0xbf72, 0x1d20: 0xbf92, 0x1d21: 0xbfb2, 0x1d22: 0xbfd2, 0x1d23: 0xbff2,\n\t0x1d24: 0xc012, 0x1d25: 0xc032, 0x1d26: 0xc052, 0x1d27: 0xc072, 0x1d28: 0xc092, 0x1d29: 0xc0b2,\n\t0x1d2a: 0xc0d1, 0x1d2b: 0x1159, 0x1d2c: 0x0269, 0x1d2d: 0x6671, 0x1d2e: 0xc111, 0x1d2f: 0x0040,\n\t0x1d30: 0x0039, 0x1d31: 0x0ee9, 0x1d32: 0x1159, 0x1d33: 0x0ef9, 0x1d34: 0x0f09, 0x1d35: 0x1199,\n\t0x1d36: 0x0f31, 0x1d37: 0x0249, 0x1d38: 0x0f41, 0x1d39: 0x0259, 0x1d3a: 0x0f51, 0x1d3b: 0x0359,\n\t0x1d3c: 0x0f61, 0x1d3d: 0x0f71, 0x1d3e: 0x00d9, 0x1d3f: 0x0f99,\n\t// Block 0x75, offset 0x1d40\n\t0x1d40: 0x2039, 0x1d41: 0x0269, 0x1d42: 0x01d9, 0x1d43: 0x0fa9, 0x1d44: 0x0fb9, 0x1d45: 0x1089,\n\t0x1d46: 0x0279, 0x1d47: 0x0369, 0x1d48: 0x0289, 0x1d49: 0x13d1, 0x1d4a: 0xc129, 0x1d4b: 0x65b1,\n\t0x1d4c: 0xc141, 0x1d4d: 0x1441, 0x1d4e: 0xc159, 0x1d4f: 0xc179, 0x1d50: 0x0018, 0x1d51: 0x0018,\n\t0x1d52: 0x0018, 0x1d53: 0x0018, 0x1d54: 0x0018, 0x1d55: 0x0018, 0x1d56: 0x0018, 0x1d57: 0x0018,\n\t0x1d58: 0x0018, 0x1d59: 0x0018, 0x1d5a: 0x0018, 0x1d5b: 0x0018, 0x1d5c: 0x0018, 0x1d5d: 0x0018,\n\t0x1d5e: 0x0018, 0x1d5f: 0x0018, 0x1d60: 0x0018, 0x1d61: 0x0018, 0x1d62: 0x0018, 0x1d63: 0x0018,\n\t0x1d64: 0x0018, 0x1d65: 0x0018, 0x1d66: 0x0018, 0x1d67: 0x0018, 0x1d68: 0x0018, 0x1d69: 0x0018,\n\t0x1d6a: 0xc191, 0x1d6b: 0xc1a9, 0x1d6c: 0x0040, 0x1d6d: 0x0040, 0x1d6e: 0x0040, 0x1d6f: 0x0040,\n\t0x1d70: 0x0018, 0x1d71: 0x0018, 0x1d72: 0x0018, 0x1d73: 0x0018, 0x1d74: 0x0018, 0x1d75: 0x0018,\n\t0x1d76: 0x0018, 0x1d77: 0x0018, 0x1d78: 0x0018, 0x1d79: 0x0018, 0x1d7a: 0x0018, 0x1d7b: 0x0018,\n\t0x1d7c: 0x0018, 0x1d7d: 0x0018, 0x1d7e: 0x0018, 0x1d7f: 0x0018,\n\t// Block 0x76, offset 0x1d80\n\t0x1d80: 0xc1d9, 0x1d81: 0xc211, 0x1d82: 0xc249, 0x1d83: 0x0040, 0x1d84: 0x0040, 0x1d85: 0x0040,\n\t0x1d86: 0x0040, 0x1d87: 0x0040, 0x1d88: 0x0040, 0x1d89: 0x0040, 0x1d8a: 0x0040, 0x1d8b: 0x0040,\n\t0x1d8c: 0x0040, 0x1d8d: 0x0040, 0x1d8e: 0x0040, 0x1d8f: 0x0040, 0x1d90: 0xc269, 0x1d91: 0xc289,\n\t0x1d92: 0xc2a9, 0x1d93: 0xc2c9, 0x1d94: 0xc2e9, 0x1d95: 0xc309, 0x1d96: 0xc329, 0x1d97: 0xc349,\n\t0x1d98: 0xc369, 0x1d99: 0xc389, 0x1d9a: 0xc3a9, 0x1d9b: 0xc3c9, 0x1d9c: 0xc3e9, 0x1d9d: 0xc409,\n\t0x1d9e: 0xc429, 0x1d9f: 0xc449, 0x1da0: 0xc469, 0x1da1: 0xc489, 0x1da2: 0xc4a9, 0x1da3: 0xc4c9,\n\t0x1da4: 0xc4e9, 0x1da5: 0xc509, 0x1da6: 0xc529, 0x1da7: 0xc549, 0x1da8: 0xc569, 0x1da9: 0xc589,\n\t0x1daa: 0xc5a9, 0x1dab: 0xc5c9, 0x1dac: 0xc5e9, 0x1dad: 0xc609, 0x1dae: 0xc629, 0x1daf: 0xc649,\n\t0x1db0: 0xc669, 0x1db1: 0xc689, 0x1db2: 0xc6a9, 0x1db3: 0xc6c9, 0x1db4: 0xc6e9, 0x1db5: 0xc709,\n\t0x1db6: 0xc729, 0x1db7: 0xc749, 0x1db8: 0xc769, 0x1db9: 0xc789, 0x1dba: 0xc7a9, 0x1dbb: 0xc7c9,\n\t0x1dbc: 0x0040, 0x1dbd: 0x0040, 0x1dbe: 0x0040, 0x1dbf: 0x0040,\n\t// Block 0x77, offset 0x1dc0\n\t0x1dc0: 0xcaf9, 0x1dc1: 0xcb19, 0x1dc2: 0xcb39, 0x1dc3: 0x8b1d, 0x1dc4: 0xcb59, 0x1dc5: 0xcb79,\n\t0x1dc6: 0xcb99, 0x1dc7: 0xcbb9, 0x1dc8: 0xcbd9, 0x1dc9: 0xcbf9, 0x1dca: 0xcc19, 0x1dcb: 0xcc39,\n\t0x1dcc: 0xcc59, 0x1dcd: 0x8b3d, 0x1dce: 0xcc79, 0x1dcf: 0xcc99, 0x1dd0: 0xccb9, 0x1dd1: 0xccd9,\n\t0x1dd2: 0x8b5d, 0x1dd3: 0xccf9, 0x1dd4: 0xcd19, 0x1dd5: 0xc429, 0x1dd6: 0x8b7d, 0x1dd7: 0xcd39,\n\t0x1dd8: 0xcd59, 0x1dd9: 0xcd79, 0x1dda: 0xcd99, 0x1ddb: 0xcdb9, 0x1ddc: 0x8b9d, 0x1ddd: 0xcdd9,\n\t0x1dde: 0xcdf9, 0x1ddf: 0xce19, 0x1de0: 0xce39, 0x1de1: 0xce59, 0x1de2: 0xc789, 0x1de3: 0xce79,\n\t0x1de4: 0xce99, 0x1de5: 0xceb9, 0x1de6: 0xced9, 0x1de7: 0xcef9, 0x1de8: 0xcf19, 0x1de9: 0xcf39,\n\t0x1dea: 0xcf59, 0x1deb: 0xcf79, 0x1dec: 0xcf99, 0x1ded: 0xcfb9, 0x1dee: 0xcfd9, 0x1def: 0xcff9,\n\t0x1df0: 0xd019, 0x1df1: 0xd039, 0x1df2: 0xd039, 0x1df3: 0xd039, 0x1df4: 0x8bbd, 0x1df5: 0xd059,\n\t0x1df6: 0xd079, 0x1df7: 0xd099, 0x1df8: 0x8bdd, 0x1df9: 0xd0b9, 0x1dfa: 0xd0d9, 0x1dfb: 0xd0f9,\n\t0x1dfc: 0xd119, 0x1dfd: 0xd139, 0x1dfe: 0xd159, 0x1dff: 0xd179,\n\t// Block 0x78, offset 0x1e00\n\t0x1e00: 0xd199, 0x1e01: 0xd1b9, 0x1e02: 0xd1d9, 0x1e03: 0xd1f9, 0x1e04: 0xd219, 0x1e05: 0xd239,\n\t0x1e06: 0xd239, 0x1e07: 0xd259, 0x1e08: 0xd279, 0x1e09: 0xd299, 0x1e0a: 0xd2b9, 0x1e0b: 0xd2d9,\n\t0x1e0c: 0xd2f9, 0x1e0d: 0xd319, 0x1e0e: 0xd339, 0x1e0f: 0xd359, 0x1e10: 0xd379, 0x1e11: 0xd399,\n\t0x1e12: 0xd3b9, 0x1e13: 0xd3d9, 0x1e14: 0xd3f9, 0x1e15: 0xd419, 0x1e16: 0xd439, 0x1e17: 0xd459,\n\t0x1e18: 0xd479, 0x1e19: 0x8bfd, 0x1e1a: 0xd499, 0x1e1b: 0xd4b9, 0x1e1c: 0xd4d9, 0x1e1d: 0xc309,\n\t0x1e1e: 0xd4f9, 0x1e1f: 0xd519, 0x1e20: 0x8c1d, 0x1e21: 0x8c3d, 0x1e22: 0xd539, 0x1e23: 0xd559,\n\t0x1e24: 0xd579, 0x1e25: 0xd599, 0x1e26: 0xd5b9, 0x1e27: 0xd5d9, 0x1e28: 0x2040, 0x1e29: 0xd5f9,\n\t0x1e2a: 0xd619, 0x1e2b: 0xd619, 0x1e2c: 0x8c5d, 0x1e2d: 0xd639, 0x1e2e: 0xd659, 0x1e2f: 0xd679,\n\t0x1e30: 0xd699, 0x1e31: 0x8c7d, 0x1e32: 0xd6b9, 0x1e33: 0xd6d9, 0x1e34: 0x2040, 0x1e35: 0xd6f9,\n\t0x1e36: 0xd719, 0x1e37: 0xd739, 0x1e38: 0xd759, 0x1e39: 0xd779, 0x1e3a: 0xd799, 0x1e3b: 0x8c9d,\n\t0x1e3c: 0xd7b9, 0x1e3d: 0x8cbd, 0x1e3e: 0xd7d9, 0x1e3f: 0xd7f9,\n\t// Block 0x79, offset 0x1e40\n\t0x1e40: 0xd819, 0x1e41: 0xd839, 0x1e42: 0xd859, 0x1e43: 0xd879, 0x1e44: 0xd899, 0x1e45: 0xd8b9,\n\t0x1e46: 0xd8d9, 0x1e47: 0xd8f9, 0x1e48: 0xd919, 0x1e49: 0x8cdd, 0x1e4a: 0xd939, 0x1e4b: 0xd959,\n\t0x1e4c: 0xd979, 0x1e4d: 0xd999, 0x1e4e: 0xd9b9, 0x1e4f: 0x8cfd, 0x1e50: 0xd9d9, 0x1e51: 0x8d1d,\n\t0x1e52: 0x8d3d, 0x1e53: 0xd9f9, 0x1e54: 0xda19, 0x1e55: 0xda19, 0x1e56: 0xda39, 0x1e57: 0x8d5d,\n\t0x1e58: 0x8d7d, 0x1e59: 0xda59, 0x1e5a: 0xda79, 0x1e5b: 0xda99, 0x1e5c: 0xdab9, 0x1e5d: 0xdad9,\n\t0x1e5e: 0xdaf9, 0x1e5f: 0xdb19, 0x1e60: 0xdb39, 0x1e61: 0xdb59, 0x1e62: 0xdb79, 0x1e63: 0xdb99,\n\t0x1e64: 0x8d9d, 0x1e65: 0xdbb9, 0x1e66: 0xdbd9, 0x1e67: 0xdbf9, 0x1e68: 0xdc19, 0x1e69: 0xdbf9,\n\t0x1e6a: 0xdc39, 0x1e6b: 0xdc59, 0x1e6c: 0xdc79, 0x1e6d: 0xdc99, 0x1e6e: 0xdcb9, 0x1e6f: 0xdcd9,\n\t0x1e70: 0xdcf9, 0x1e71: 0xdd19, 0x1e72: 0xdd39, 0x1e73: 0xdd59, 0x1e74: 0xdd79, 0x1e75: 0xdd99,\n\t0x1e76: 0xddb9, 0x1e77: 0xddd9, 0x1e78: 0x8dbd, 0x1e79: 0xddf9, 0x1e7a: 0xde19, 0x1e7b: 0xde39,\n\t0x1e7c: 0xde59, 0x1e7d: 0xde79, 0x1e7e: 0x8ddd, 0x1e7f: 0xde99,\n\t// Block 0x7a, offset 0x1e80\n\t0x1e80: 0xe599, 0x1e81: 0xe5b9, 0x1e82: 0xe5d9, 0x1e83: 0xe5f9, 0x1e84: 0xe619, 0x1e85: 0xe639,\n\t0x1e86: 0x8efd, 0x1e87: 0xe659, 0x1e88: 0xe679, 0x1e89: 0xe699, 0x1e8a: 0xe6b9, 0x1e8b: 0xe6d9,\n\t0x1e8c: 0xe6f9, 0x1e8d: 0x8f1d, 0x1e8e: 0xe719, 0x1e8f: 0xe739, 0x1e90: 0x8f3d, 0x1e91: 0x8f5d,\n\t0x1e92: 0xe759, 0x1e93: 0xe779, 0x1e94: 0xe799, 0x1e95: 0xe7b9, 0x1e96: 0xe7d9, 0x1e97: 0xe7f9,\n\t0x1e98: 0xe819, 0x1e99: 0xe839, 0x1e9a: 0xe859, 0x1e9b: 0x8f7d, 0x1e9c: 0xe879, 0x1e9d: 0x8f9d,\n\t0x1e9e: 0xe899, 0x1e9f: 0x2040, 0x1ea0: 0xe8b9, 0x1ea1: 0xe8d9, 0x1ea2: 0xe8f9, 0x1ea3: 0x8fbd,\n\t0x1ea4: 0xe919, 0x1ea5: 0xe939, 0x1ea6: 0x8fdd, 0x1ea7: 0x8ffd, 0x1ea8: 0xe959, 0x1ea9: 0xe979,\n\t0x1eaa: 0xe999, 0x1eab: 0xe9b9, 0x1eac: 0xe9d9, 0x1ead: 0xe9d9, 0x1eae: 0xe9f9, 0x1eaf: 0xea19,\n\t0x1eb0: 0xea39, 0x1eb1: 0xea59, 0x1eb2: 0xea79, 0x1eb3: 0xea99, 0x1eb4: 0xeab9, 0x1eb5: 0x901d,\n\t0x1eb6: 0xead9, 0x1eb7: 0x903d, 0x1eb8: 0xeaf9, 0x1eb9: 0x905d, 0x1eba: 0xeb19, 0x1ebb: 0x907d,\n\t0x1ebc: 0x909d, 0x1ebd: 0x90bd, 0x1ebe: 0xeb39, 0x1ebf: 0xeb59,\n\t// Block 0x7b, offset 0x1ec0\n\t0x1ec0: 0xeb79, 0x1ec1: 0x90dd, 0x1ec2: 0x90fd, 0x1ec3: 0x911d, 0x1ec4: 0x913d, 0x1ec5: 0xeb99,\n\t0x1ec6: 0xebb9, 0x1ec7: 0xebb9, 0x1ec8: 0xebd9, 0x1ec9: 0xebf9, 0x1eca: 0xec19, 0x1ecb: 0xec39,\n\t0x1ecc: 0xec59, 0x1ecd: 0x915d, 0x1ece: 0xec79, 0x1ecf: 0xec99, 0x1ed0: 0xecb9, 0x1ed1: 0xecd9,\n\t0x1ed2: 0x917d, 0x1ed3: 0xecf9, 0x1ed4: 0x919d, 0x1ed5: 0x91bd, 0x1ed6: 0xed19, 0x1ed7: 0xed39,\n\t0x1ed8: 0xed59, 0x1ed9: 0xed79, 0x1eda: 0xed99, 0x1edb: 0xedb9, 0x1edc: 0x91dd, 0x1edd: 0x91fd,\n\t0x1ede: 0x921d, 0x1edf: 0x2040, 0x1ee0: 0xedd9, 0x1ee1: 0x923d, 0x1ee2: 0xedf9, 0x1ee3: 0xee19,\n\t0x1ee4: 0xee39, 0x1ee5: 0x925d, 0x1ee6: 0xee59, 0x1ee7: 0xee79, 0x1ee8: 0xee99, 0x1ee9: 0xeeb9,\n\t0x1eea: 0xeed9, 0x1eeb: 0x927d, 0x1eec: 0xeef9, 0x1eed: 0xef19, 0x1eee: 0xef39, 0x1eef: 0xef59,\n\t0x1ef0: 0xef79, 0x1ef1: 0xef99, 0x1ef2: 0x929d, 0x1ef3: 0x92bd, 0x1ef4: 0xefb9, 0x1ef5: 0x92dd,\n\t0x1ef6: 0xefd9, 0x1ef7: 0x92fd, 0x1ef8: 0xeff9, 0x1ef9: 0xf019, 0x1efa: 0xf039, 0x1efb: 0x931d,\n\t0x1efc: 0x933d, 0x1efd: 0xf059, 0x1efe: 0x935d, 0x1eff: 0xf079,\n\t// Block 0x7c, offset 0x1f00\n\t0x1f00: 0xf6b9, 0x1f01: 0xf6d9, 0x1f02: 0xf6f9, 0x1f03: 0xf719, 0x1f04: 0xf739, 0x1f05: 0x951d,\n\t0x1f06: 0xf759, 0x1f07: 0xf779, 0x1f08: 0xf799, 0x1f09: 0xf7b9, 0x1f0a: 0xf7d9, 0x1f0b: 0x953d,\n\t0x1f0c: 0x955d, 0x1f0d: 0xf7f9, 0x1f0e: 0xf819, 0x1f0f: 0xf839, 0x1f10: 0xf859, 0x1f11: 0xf879,\n\t0x1f12: 0xf899, 0x1f13: 0x957d, 0x1f14: 0xf8b9, 0x1f15: 0xf8d9, 0x1f16: 0xf8f9, 0x1f17: 0xf919,\n\t0x1f18: 0x959d, 0x1f19: 0x95bd, 0x1f1a: 0xf939, 0x1f1b: 0xf959, 0x1f1c: 0xf979, 0x1f1d: 0x95dd,\n\t0x1f1e: 0xf999, 0x1f1f: 0xf9b9, 0x1f20: 0x6815, 0x1f21: 0x95fd, 0x1f22: 0xf9d9, 0x1f23: 0xf9f9,\n\t0x1f24: 0xfa19, 0x1f25: 0x961d, 0x1f26: 0xfa39, 0x1f27: 0xfa59, 0x1f28: 0xfa79, 0x1f29: 0xfa99,\n\t0x1f2a: 0xfab9, 0x1f2b: 0xfad9, 0x1f2c: 0xfaf9, 0x1f2d: 0x963d, 0x1f2e: 0xfb19, 0x1f2f: 0xfb39,\n\t0x1f30: 0xfb59, 0x1f31: 0x965d, 0x1f32: 0xfb79, 0x1f33: 0xfb99, 0x1f34: 0xfbb9, 0x1f35: 0xfbd9,\n\t0x1f36: 0x7b35, 0x1f37: 0x967d, 0x1f38: 0xfbf9, 0x1f39: 0xfc19, 0x1f3a: 0xfc39, 0x1f3b: 0x969d,\n\t0x1f3c: 0xfc59, 0x1f3d: 0x96bd, 0x1f3e: 0xfc79, 0x1f3f: 0xfc79,\n\t// Block 0x7d, offset 0x1f40\n\t0x1f40: 0xfc99, 0x1f41: 0x96dd, 0x1f42: 0xfcb9, 0x1f43: 0xfcd9, 0x1f44: 0xfcf9, 0x1f45: 0xfd19,\n\t0x1f46: 0xfd39, 0x1f47: 0xfd59, 0x1f48: 0xfd79, 0x1f49: 0x96fd, 0x1f4a: 0xfd99, 0x1f4b: 0xfdb9,\n\t0x1f4c: 0xfdd9, 0x1f4d: 0xfdf9, 0x1f4e: 0xfe19, 0x1f4f: 0xfe39, 0x1f50: 0x971d, 0x1f51: 0xfe59,\n\t0x1f52: 0x973d, 0x1f53: 0x975d, 0x1f54: 0x977d, 0x1f55: 0xfe79, 0x1f56: 0xfe99, 0x1f57: 0xfeb9,\n\t0x1f58: 0xfed9, 0x1f59: 0xfef9, 0x1f5a: 0xff19, 0x1f5b: 0xff39, 0x1f5c: 0xff59, 0x1f5d: 0x979d,\n\t0x1f5e: 0x0040, 0x1f5f: 0x0040, 0x1f60: 0x0040, 0x1f61: 0x0040, 0x1f62: 0x0040, 0x1f63: 0x0040,\n\t0x1f64: 0x0040, 0x1f65: 0x0040, 0x1f66: 0x0040, 0x1f67: 0x0040, 0x1f68: 0x0040, 0x1f69: 0x0040,\n\t0x1f6a: 0x0040, 0x1f6b: 0x0040, 0x1f6c: 0x0040, 0x1f6d: 0x0040, 0x1f6e: 0x0040, 0x1f6f: 0x0040,\n\t0x1f70: 0x0040, 0x1f71: 0x0040, 0x1f72: 0x0040, 0x1f73: 0x0040, 0x1f74: 0x0040, 0x1f75: 0x0040,\n\t0x1f76: 0x0040, 0x1f77: 0x0040, 0x1f78: 0x0040, 0x1f79: 0x0040, 0x1f7a: 0x0040, 0x1f7b: 0x0040,\n\t0x1f7c: 0x0040, 0x1f7d: 0x0040, 0x1f7e: 0x0040, 0x1f7f: 0x0040,\n}\n\n// idnaIndex: 35 blocks, 2240 entries, 4480 bytes\n// Block 0 is the zero block.\nvar idnaIndex = [2240]uint16{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x01, 0xc3: 0x7c, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x04, 0xc7: 0x05,\n\t0xc8: 0x06, 0xc9: 0x7d, 0xca: 0x7e, 0xcb: 0x07, 0xcc: 0x7f, 0xcd: 0x08, 0xce: 0x09, 0xcf: 0x0a,\n\t0xd0: 0x80, 0xd1: 0x0b, 0xd2: 0x0c, 0xd3: 0x0d, 0xd4: 0x0e, 0xd5: 0x81, 0xd6: 0x82, 0xd7: 0x83,\n\t0xd8: 0x0f, 0xd9: 0x10, 0xda: 0x84, 0xdb: 0x11, 0xdc: 0x12, 0xdd: 0x85, 0xde: 0x86, 0xdf: 0x87,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06, 0xe5: 0x07, 0xe6: 0x07, 0xe7: 0x07,\n\t0xe8: 0x07, 0xe9: 0x08, 0xea: 0x09, 0xeb: 0x07, 0xec: 0x07, 0xed: 0x0a, 0xee: 0x0b, 0xef: 0x0c,\n\t0xf0: 0x1c, 0xf1: 0x1d, 0xf2: 0x1d, 0xf3: 0x1f, 0xf4: 0x20,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x88, 0x121: 0x89, 0x122: 0x8a, 0x123: 0x8b, 0x124: 0x8c, 0x125: 0x13, 0x126: 0x14, 0x127: 0x15,\n\t0x128: 0x16, 0x129: 0x17, 0x12a: 0x18, 0x12b: 0x19, 0x12c: 0x1a, 0x12d: 0x1b, 0x12e: 0x1c, 0x12f: 0x8d,\n\t0x130: 0x8e, 0x131: 0x1d, 0x132: 0x1e, 0x133: 0x1f, 0x134: 0x8f, 0x135: 0x20, 0x136: 0x90, 0x137: 0x91,\n\t0x138: 0x92, 0x139: 0x93, 0x13a: 0x21, 0x13b: 0x94, 0x13c: 0x95, 0x13d: 0x22, 0x13e: 0x23, 0x13f: 0x96,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x97, 0x141: 0x98, 0x142: 0x99, 0x143: 0x9a, 0x144: 0x9b, 0x145: 0x9c, 0x146: 0x9d, 0x147: 0x9e,\n\t0x148: 0x9f, 0x149: 0xa0, 0x14a: 0xa1, 0x14b: 0xa2, 0x14c: 0xa3, 0x14d: 0xa4, 0x14e: 0xa5, 0x14f: 0xa6,\n\t0x150: 0xa7, 0x151: 0x9f, 0x152: 0x9f, 0x153: 0x9f, 0x154: 0x9f, 0x155: 0x9f, 0x156: 0x9f, 0x157: 0x9f,\n\t0x158: 0x9f, 0x159: 0xa8, 0x15a: 0xa9, 0x15b: 0xaa, 0x15c: 0xab, 0x15d: 0xac, 0x15e: 0xad, 0x15f: 0xae,\n\t0x160: 0xaf, 0x161: 0xb0, 0x162: 0xb1, 0x163: 0xb2, 0x164: 0xb3, 0x165: 0xb4, 0x166: 0xb5, 0x167: 0xb6,\n\t0x168: 0xb7, 0x169: 0xb8, 0x16a: 0xb9, 0x16b: 0xba, 0x16c: 0xbb, 0x16d: 0xbc, 0x16e: 0xbd, 0x16f: 0xbe,\n\t0x170: 0xbf, 0x171: 0xc0, 0x172: 0xc1, 0x173: 0xc2, 0x174: 0x24, 0x175: 0x25, 0x176: 0x26, 0x177: 0xc3,\n\t0x178: 0x27, 0x179: 0x27, 0x17a: 0x28, 0x17b: 0x27, 0x17c: 0xc4, 0x17d: 0x29, 0x17e: 0x2a, 0x17f: 0x2b,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x2c, 0x181: 0x2d, 0x182: 0x2e, 0x183: 0xc5, 0x184: 0x2f, 0x185: 0x30, 0x186: 0xc6, 0x187: 0x9b,\n\t0x188: 0xc7, 0x189: 0xc8, 0x18a: 0x9b, 0x18b: 0x9b, 0x18c: 0xc9, 0x18d: 0x9b, 0x18e: 0x9b, 0x18f: 0xca,\n\t0x190: 0xcb, 0x191: 0x31, 0x192: 0x32, 0x193: 0x33, 0x194: 0x9b, 0x195: 0x9b, 0x196: 0x9b, 0x197: 0x9b,\n\t0x198: 0x9b, 0x199: 0x9b, 0x19a: 0x9b, 0x19b: 0x9b, 0x19c: 0x9b, 0x19d: 0x9b, 0x19e: 0x9b, 0x19f: 0x9b,\n\t0x1a0: 0x9b, 0x1a1: 0x9b, 0x1a2: 0x9b, 0x1a3: 0x9b, 0x1a4: 0x9b, 0x1a5: 0x9b, 0x1a6: 0x9b, 0x1a7: 0x9b,\n\t0x1a8: 0xcc, 0x1a9: 0xcd, 0x1aa: 0x9b, 0x1ab: 0xce, 0x1ac: 0x9b, 0x1ad: 0xcf, 0x1ae: 0xd0, 0x1af: 0xd1,\n\t0x1b0: 0xd2, 0x1b1: 0x34, 0x1b2: 0x27, 0x1b3: 0x35, 0x1b4: 0xd3, 0x1b5: 0xd4, 0x1b6: 0xd5, 0x1b7: 0xd6,\n\t0x1b8: 0xd7, 0x1b9: 0xd8, 0x1ba: 0xd9, 0x1bb: 0xda, 0x1bc: 0xdb, 0x1bd: 0xdc, 0x1be: 0xdd, 0x1bf: 0x36,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x37, 0x1c1: 0xde, 0x1c2: 0xdf, 0x1c3: 0xe0, 0x1c4: 0xe1, 0x1c5: 0x38, 0x1c6: 0x39, 0x1c7: 0xe2,\n\t0x1c8: 0xe3, 0x1c9: 0x3a, 0x1ca: 0x3b, 0x1cb: 0x3c, 0x1cc: 0x3d, 0x1cd: 0x3e, 0x1ce: 0x3f, 0x1cf: 0x40,\n\t0x1d0: 0x9f, 0x1d1: 0x9f, 0x1d2: 0x9f, 0x1d3: 0x9f, 0x1d4: 0x9f, 0x1d5: 0x9f, 0x1d6: 0x9f, 0x1d7: 0x9f,\n\t0x1d8: 0x9f, 0x1d9: 0x9f, 0x1da: 0x9f, 0x1db: 0x9f, 0x1dc: 0x9f, 0x1dd: 0x9f, 0x1de: 0x9f, 0x1df: 0x9f,\n\t0x1e0: 0x9f, 0x1e1: 0x9f, 0x1e2: 0x9f, 0x1e3: 0x9f, 0x1e4: 0x9f, 0x1e5: 0x9f, 0x1e6: 0x9f, 0x1e7: 0x9f,\n\t0x1e8: 0x9f, 0x1e9: 0x9f, 0x1ea: 0x9f, 0x1eb: 0x9f, 0x1ec: 0x9f, 0x1ed: 0x9f, 0x1ee: 0x9f, 0x1ef: 0x9f,\n\t0x1f0: 0x9f, 0x1f1: 0x9f, 0x1f2: 0x9f, 0x1f3: 0x9f, 0x1f4: 0x9f, 0x1f5: 0x9f, 0x1f6: 0x9f, 0x1f7: 0x9f,\n\t0x1f8: 0x9f, 0x1f9: 0x9f, 0x1fa: 0x9f, 0x1fb: 0x9f, 0x1fc: 0x9f, 0x1fd: 0x9f, 0x1fe: 0x9f, 0x1ff: 0x9f,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x9f, 0x201: 0x9f, 0x202: 0x9f, 0x203: 0x9f, 0x204: 0x9f, 0x205: 0x9f, 0x206: 0x9f, 0x207: 0x9f,\n\t0x208: 0x9f, 0x209: 0x9f, 0x20a: 0x9f, 0x20b: 0x9f, 0x20c: 0x9f, 0x20d: 0x9f, 0x20e: 0x9f, 0x20f: 0x9f,\n\t0x210: 0x9f, 0x211: 0x9f, 0x212: 0x9f, 0x213: 0x9f, 0x214: 0x9f, 0x215: 0x9f, 0x216: 0x9f, 0x217: 0x9f,\n\t0x218: 0x9f, 0x219: 0x9f, 0x21a: 0x9f, 0x21b: 0x9f, 0x21c: 0x9f, 0x21d: 0x9f, 0x21e: 0x9f, 0x21f: 0x9f,\n\t0x220: 0x9f, 0x221: 0x9f, 0x222: 0x9f, 0x223: 0x9f, 0x224: 0x9f, 0x225: 0x9f, 0x226: 0x9f, 0x227: 0x9f,\n\t0x228: 0x9f, 0x229: 0x9f, 0x22a: 0x9f, 0x22b: 0x9f, 0x22c: 0x9f, 0x22d: 0x9f, 0x22e: 0x9f, 0x22f: 0x9f,\n\t0x230: 0x9f, 0x231: 0x9f, 0x232: 0x9f, 0x233: 0x9f, 0x234: 0x9f, 0x235: 0x9f, 0x236: 0xb2, 0x237: 0x9b,\n\t0x238: 0x9f, 0x239: 0x9f, 0x23a: 0x9f, 0x23b: 0x9f, 0x23c: 0x9f, 0x23d: 0x9f, 0x23e: 0x9f, 0x23f: 0x9f,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x9f, 0x241: 0x9f, 0x242: 0x9f, 0x243: 0x9f, 0x244: 0x9f, 0x245: 0x9f, 0x246: 0x9f, 0x247: 0x9f,\n\t0x248: 0x9f, 0x249: 0x9f, 0x24a: 0x9f, 0x24b: 0x9f, 0x24c: 0x9f, 0x24d: 0x9f, 0x24e: 0x9f, 0x24f: 0x9f,\n\t0x250: 0x9f, 0x251: 0x9f, 0x252: 0x9f, 0x253: 0x9f, 0x254: 0x9f, 0x255: 0x9f, 0x256: 0x9f, 0x257: 0x9f,\n\t0x258: 0x9f, 0x259: 0x9f, 0x25a: 0x9f, 0x25b: 0x9f, 0x25c: 0x9f, 0x25d: 0x9f, 0x25e: 0x9f, 0x25f: 0x9f,\n\t0x260: 0x9f, 0x261: 0x9f, 0x262: 0x9f, 0x263: 0x9f, 0x264: 0x9f, 0x265: 0x9f, 0x266: 0x9f, 0x267: 0x9f,\n\t0x268: 0x9f, 0x269: 0x9f, 0x26a: 0x9f, 0x26b: 0x9f, 0x26c: 0x9f, 0x26d: 0x9f, 0x26e: 0x9f, 0x26f: 0x9f,\n\t0x270: 0x9f, 0x271: 0x9f, 0x272: 0x9f, 0x273: 0x9f, 0x274: 0x9f, 0x275: 0x9f, 0x276: 0x9f, 0x277: 0x9f,\n\t0x278: 0x9f, 0x279: 0x9f, 0x27a: 0x9f, 0x27b: 0x9f, 0x27c: 0x9f, 0x27d: 0x9f, 0x27e: 0x9f, 0x27f: 0x9f,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x9f, 0x281: 0x9f, 0x282: 0x9f, 0x283: 0x9f, 0x284: 0x9f, 0x285: 0x9f, 0x286: 0x9f, 0x287: 0x9f,\n\t0x288: 0x9f, 0x289: 0x9f, 0x28a: 0x9f, 0x28b: 0x9f, 0x28c: 0x9f, 0x28d: 0x9f, 0x28e: 0x9f, 0x28f: 0x9f,\n\t0x290: 0x9f, 0x291: 0x9f, 0x292: 0x9f, 0x293: 0x9f, 0x294: 0x9f, 0x295: 0x9f, 0x296: 0x9f, 0x297: 0x9f,\n\t0x298: 0x9f, 0x299: 0x9f, 0x29a: 0x9f, 0x29b: 0x9f, 0x29c: 0x9f, 0x29d: 0x9f, 0x29e: 0x9f, 0x29f: 0x9f,\n\t0x2a0: 0x9f, 0x2a1: 0x9f, 0x2a2: 0x9f, 0x2a3: 0x9f, 0x2a4: 0x9f, 0x2a5: 0x9f, 0x2a6: 0x9f, 0x2a7: 0x9f,\n\t0x2a8: 0x9f, 0x2a9: 0x9f, 0x2aa: 0x9f, 0x2ab: 0x9f, 0x2ac: 0x9f, 0x2ad: 0x9f, 0x2ae: 0x9f, 0x2af: 0x9f,\n\t0x2b0: 0x9f, 0x2b1: 0x9f, 0x2b2: 0x9f, 0x2b3: 0x9f, 0x2b4: 0x9f, 0x2b5: 0x9f, 0x2b6: 0x9f, 0x2b7: 0x9f,\n\t0x2b8: 0x9f, 0x2b9: 0x9f, 0x2ba: 0x9f, 0x2bb: 0x9f, 0x2bc: 0x9f, 0x2bd: 0x9f, 0x2be: 0x9f, 0x2bf: 0xe4,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x9f, 0x2c1: 0x9f, 0x2c2: 0x9f, 0x2c3: 0x9f, 0x2c4: 0x9f, 0x2c5: 0x9f, 0x2c6: 0x9f, 0x2c7: 0x9f,\n\t0x2c8: 0x9f, 0x2c9: 0x9f, 0x2ca: 0x9f, 0x2cb: 0x9f, 0x2cc: 0x9f, 0x2cd: 0x9f, 0x2ce: 0x9f, 0x2cf: 0x9f,\n\t0x2d0: 0x9f, 0x2d1: 0x9f, 0x2d2: 0xe5, 0x2d3: 0xe6, 0x2d4: 0x9f, 0x2d5: 0x9f, 0x2d6: 0x9f, 0x2d7: 0x9f,\n\t0x2d8: 0xe7, 0x2d9: 0x41, 0x2da: 0x42, 0x2db: 0xe8, 0x2dc: 0x43, 0x2dd: 0x44, 0x2de: 0x45, 0x2df: 0xe9,\n\t0x2e0: 0xea, 0x2e1: 0xeb, 0x2e2: 0xec, 0x2e3: 0xed, 0x2e4: 0xee, 0x2e5: 0xef, 0x2e6: 0xf0, 0x2e7: 0xf1,\n\t0x2e8: 0xf2, 0x2e9: 0xf3, 0x2ea: 0xf4, 0x2eb: 0xf5, 0x2ec: 0xf6, 0x2ed: 0xf7, 0x2ee: 0xf8, 0x2ef: 0xf9,\n\t0x2f0: 0x9f, 0x2f1: 0x9f, 0x2f2: 0x9f, 0x2f3: 0x9f, 0x2f4: 0x9f, 0x2f5: 0x9f, 0x2f6: 0x9f, 0x2f7: 0x9f,\n\t0x2f8: 0x9f, 0x2f9: 0x9f, 0x2fa: 0x9f, 0x2fb: 0x9f, 0x2fc: 0x9f, 0x2fd: 0x9f, 0x2fe: 0x9f, 0x2ff: 0x9f,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x9f, 0x301: 0x9f, 0x302: 0x9f, 0x303: 0x9f, 0x304: 0x9f, 0x305: 0x9f, 0x306: 0x9f, 0x307: 0x9f,\n\t0x308: 0x9f, 0x309: 0x9f, 0x30a: 0x9f, 0x30b: 0x9f, 0x30c: 0x9f, 0x30d: 0x9f, 0x30e: 0x9f, 0x30f: 0x9f,\n\t0x310: 0x9f, 0x311: 0x9f, 0x312: 0x9f, 0x313: 0x9f, 0x314: 0x9f, 0x315: 0x9f, 0x316: 0x9f, 0x317: 0x9f,\n\t0x318: 0x9f, 0x319: 0x9f, 0x31a: 0x9f, 0x31b: 0x9f, 0x31c: 0x9f, 0x31d: 0x9f, 0x31e: 0xfa, 0x31f: 0xfb,\n\t// Block 0xd, offset 0x340\n\t0x340: 0xba, 0x341: 0xba, 0x342: 0xba, 0x343: 0xba, 0x344: 0xba, 0x345: 0xba, 0x346: 0xba, 0x347: 0xba,\n\t0x348: 0xba, 0x349: 0xba, 0x34a: 0xba, 0x34b: 0xba, 0x34c: 0xba, 0x34d: 0xba, 0x34e: 0xba, 0x34f: 0xba,\n\t0x350: 0xba, 0x351: 0xba, 0x352: 0xba, 0x353: 0xba, 0x354: 0xba, 0x355: 0xba, 0x356: 0xba, 0x357: 0xba,\n\t0x358: 0xba, 0x359: 0xba, 0x35a: 0xba, 0x35b: 0xba, 0x35c: 0xba, 0x35d: 0xba, 0x35e: 0xba, 0x35f: 0xba,\n\t0x360: 0xba, 0x361: 0xba, 0x362: 0xba, 0x363: 0xba, 0x364: 0xba, 0x365: 0xba, 0x366: 0xba, 0x367: 0xba,\n\t0x368: 0xba, 0x369: 0xba, 0x36a: 0xba, 0x36b: 0xba, 0x36c: 0xba, 0x36d: 0xba, 0x36e: 0xba, 0x36f: 0xba,\n\t0x370: 0xba, 0x371: 0xba, 0x372: 0xba, 0x373: 0xba, 0x374: 0xba, 0x375: 0xba, 0x376: 0xba, 0x377: 0xba,\n\t0x378: 0xba, 0x379: 0xba, 0x37a: 0xba, 0x37b: 0xba, 0x37c: 0xba, 0x37d: 0xba, 0x37e: 0xba, 0x37f: 0xba,\n\t// Block 0xe, offset 0x380\n\t0x380: 0xba, 0x381: 0xba, 0x382: 0xba, 0x383: 0xba, 0x384: 0xba, 0x385: 0xba, 0x386: 0xba, 0x387: 0xba,\n\t0x388: 0xba, 0x389: 0xba, 0x38a: 0xba, 0x38b: 0xba, 0x38c: 0xba, 0x38d: 0xba, 0x38e: 0xba, 0x38f: 0xba,\n\t0x390: 0xba, 0x391: 0xba, 0x392: 0xba, 0x393: 0xba, 0x394: 0xba, 0x395: 0xba, 0x396: 0xba, 0x397: 0xba,\n\t0x398: 0xba, 0x399: 0xba, 0x39a: 0xba, 0x39b: 0xba, 0x39c: 0xba, 0x39d: 0xba, 0x39e: 0xba, 0x39f: 0xba,\n\t0x3a0: 0xba, 0x3a1: 0xba, 0x3a2: 0xba, 0x3a3: 0xba, 0x3a4: 0xfc, 0x3a5: 0xfd, 0x3a6: 0xfe, 0x3a7: 0xff,\n\t0x3a8: 0x46, 0x3a9: 0x100, 0x3aa: 0x101, 0x3ab: 0x47, 0x3ac: 0x48, 0x3ad: 0x49, 0x3ae: 0x4a, 0x3af: 0x4b,\n\t0x3b0: 0x102, 0x3b1: 0x4c, 0x3b2: 0x4d, 0x3b3: 0x4e, 0x3b4: 0x4f, 0x3b5: 0x50, 0x3b6: 0x103, 0x3b7: 0x51,\n\t0x3b8: 0x52, 0x3b9: 0x53, 0x3ba: 0x54, 0x3bb: 0x55, 0x3bc: 0x56, 0x3bd: 0x57, 0x3be: 0x58, 0x3bf: 0x59,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x104, 0x3c1: 0x105, 0x3c2: 0x9f, 0x3c3: 0x106, 0x3c4: 0x107, 0x3c5: 0x9b, 0x3c6: 0x108, 0x3c7: 0x109,\n\t0x3c8: 0xba, 0x3c9: 0xba, 0x3ca: 0x10a, 0x3cb: 0x10b, 0x3cc: 0x10c, 0x3cd: 0x10d, 0x3ce: 0x10e, 0x3cf: 0x10f,\n\t0x3d0: 0x110, 0x3d1: 0x9f, 0x3d2: 0x111, 0x3d3: 0x112, 0x3d4: 0x113, 0x3d5: 0x114, 0x3d6: 0xba, 0x3d7: 0xba,\n\t0x3d8: 0x9f, 0x3d9: 0x9f, 0x3da: 0x9f, 0x3db: 0x9f, 0x3dc: 0x115, 0x3dd: 0x116, 0x3de: 0xba, 0x3df: 0xba,\n\t0x3e0: 0x117, 0x3e1: 0x118, 0x3e2: 0x119, 0x3e3: 0x11a, 0x3e4: 0x11b, 0x3e5: 0xba, 0x3e6: 0x11c, 0x3e7: 0x11d,\n\t0x3e8: 0x11e, 0x3e9: 0x11f, 0x3ea: 0x120, 0x3eb: 0x5a, 0x3ec: 0x121, 0x3ed: 0x122, 0x3ee: 0x5b, 0x3ef: 0xba,\n\t0x3f0: 0x123, 0x3f1: 0x124, 0x3f2: 0x125, 0x3f3: 0x126, 0x3f4: 0xba, 0x3f5: 0xba, 0x3f6: 0xba, 0x3f7: 0xba,\n\t0x3f8: 0xba, 0x3f9: 0x127, 0x3fa: 0xba, 0x3fb: 0xba, 0x3fc: 0xba, 0x3fd: 0xba, 0x3fe: 0xba, 0x3ff: 0xba,\n\t// Block 0x10, offset 0x400\n\t0x400: 0x128, 0x401: 0x129, 0x402: 0x12a, 0x403: 0x12b, 0x404: 0x12c, 0x405: 0x12d, 0x406: 0x12e, 0x407: 0x12f,\n\t0x408: 0x130, 0x409: 0xba, 0x40a: 0x131, 0x40b: 0x132, 0x40c: 0x5c, 0x40d: 0x5d, 0x40e: 0xba, 0x40f: 0xba,\n\t0x410: 0x133, 0x411: 0x134, 0x412: 0x135, 0x413: 0x136, 0x414: 0xba, 0x415: 0xba, 0x416: 0x137, 0x417: 0x138,\n\t0x418: 0x139, 0x419: 0x13a, 0x41a: 0x13b, 0x41b: 0x13c, 0x41c: 0x13d, 0x41d: 0xba, 0x41e: 0xba, 0x41f: 0xba,\n\t0x420: 0xba, 0x421: 0xba, 0x422: 0x13e, 0x423: 0x13f, 0x424: 0xba, 0x425: 0xba, 0x426: 0xba, 0x427: 0xba,\n\t0x428: 0xba, 0x429: 0xba, 0x42a: 0xba, 0x42b: 0x140, 0x42c: 0xba, 0x42d: 0xba, 0x42e: 0xba, 0x42f: 0xba,\n\t0x430: 0x141, 0x431: 0x142, 0x432: 0x143, 0x433: 0xba, 0x434: 0xba, 0x435: 0xba, 0x436: 0xba, 0x437: 0xba,\n\t0x438: 0xba, 0x439: 0xba, 0x43a: 0xba, 0x43b: 0xba, 0x43c: 0xba, 0x43d: 0xba, 0x43e: 0xba, 0x43f: 0xba,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x9f, 0x441: 0x9f, 0x442: 0x9f, 0x443: 0x9f, 0x444: 0x9f, 0x445: 0x9f, 0x446: 0x9f, 0x447: 0x9f,\n\t0x448: 0x9f, 0x449: 0x9f, 0x44a: 0x9f, 0x44b: 0x9f, 0x44c: 0x9f, 0x44d: 0x9f, 0x44e: 0x144, 0x44f: 0xba,\n\t0x450: 0x9b, 0x451: 0x145, 0x452: 0x9f, 0x453: 0x9f, 0x454: 0x9f, 0x455: 0x146, 0x456: 0xba, 0x457: 0xba,\n\t0x458: 0xba, 0x459: 0xba, 0x45a: 0xba, 0x45b: 0xba, 0x45c: 0xba, 0x45d: 0xba, 0x45e: 0xba, 0x45f: 0xba,\n\t0x460: 0xba, 0x461: 0xba, 0x462: 0xba, 0x463: 0xba, 0x464: 0xba, 0x465: 0xba, 0x466: 0xba, 0x467: 0xba,\n\t0x468: 0xba, 0x469: 0xba, 0x46a: 0xba, 0x46b: 0xba, 0x46c: 0xba, 0x46d: 0xba, 0x46e: 0xba, 0x46f: 0xba,\n\t0x470: 0xba, 0x471: 0xba, 0x472: 0xba, 0x473: 0xba, 0x474: 0xba, 0x475: 0xba, 0x476: 0xba, 0x477: 0xba,\n\t0x478: 0xba, 0x479: 0xba, 0x47a: 0xba, 0x47b: 0xba, 0x47c: 0xba, 0x47d: 0xba, 0x47e: 0xba, 0x47f: 0xba,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x9f, 0x481: 0x9f, 0x482: 0x9f, 0x483: 0x9f, 0x484: 0x9f, 0x485: 0x9f, 0x486: 0x9f, 0x487: 0x9f,\n\t0x488: 0x9f, 0x489: 0x9f, 0x48a: 0x9f, 0x48b: 0x9f, 0x48c: 0x9f, 0x48d: 0x9f, 0x48e: 0x9f, 0x48f: 0x9f,\n\t0x490: 0x147, 0x491: 0xba, 0x492: 0xba, 0x493: 0xba, 0x494: 0xba, 0x495: 0xba, 0x496: 0xba, 0x497: 0xba,\n\t0x498: 0xba, 0x499: 0xba, 0x49a: 0xba, 0x49b: 0xba, 0x49c: 0xba, 0x49d: 0xba, 0x49e: 0xba, 0x49f: 0xba,\n\t0x4a0: 0xba, 0x4a1: 0xba, 0x4a2: 0xba, 0x4a3: 0xba, 0x4a4: 0xba, 0x4a5: 0xba, 0x4a6: 0xba, 0x4a7: 0xba,\n\t0x4a8: 0xba, 0x4a9: 0xba, 0x4aa: 0xba, 0x4ab: 0xba, 0x4ac: 0xba, 0x4ad: 0xba, 0x4ae: 0xba, 0x4af: 0xba,\n\t0x4b0: 0xba, 0x4b1: 0xba, 0x4b2: 0xba, 0x4b3: 0xba, 0x4b4: 0xba, 0x4b5: 0xba, 0x4b6: 0xba, 0x4b7: 0xba,\n\t0x4b8: 0xba, 0x4b9: 0xba, 0x4ba: 0xba, 0x4bb: 0xba, 0x4bc: 0xba, 0x4bd: 0xba, 0x4be: 0xba, 0x4bf: 0xba,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0xba, 0x4c1: 0xba, 0x4c2: 0xba, 0x4c3: 0xba, 0x4c4: 0xba, 0x4c5: 0xba, 0x4c6: 0xba, 0x4c7: 0xba,\n\t0x4c8: 0xba, 0x4c9: 0xba, 0x4ca: 0xba, 0x4cb: 0xba, 0x4cc: 0xba, 0x4cd: 0xba, 0x4ce: 0xba, 0x4cf: 0xba,\n\t0x4d0: 0x9f, 0x4d1: 0x9f, 0x4d2: 0x9f, 0x4d3: 0x9f, 0x4d4: 0x9f, 0x4d5: 0x9f, 0x4d6: 0x9f, 0x4d7: 0x9f,\n\t0x4d8: 0x9f, 0x4d9: 0x148, 0x4da: 0xba, 0x4db: 0xba, 0x4dc: 0xba, 0x4dd: 0xba, 0x4de: 0xba, 0x4df: 0xba,\n\t0x4e0: 0xba, 0x4e1: 0xba, 0x4e2: 0xba, 0x4e3: 0xba, 0x4e4: 0xba, 0x4e5: 0xba, 0x4e6: 0xba, 0x4e7: 0xba,\n\t0x4e8: 0xba, 0x4e9: 0xba, 0x4ea: 0xba, 0x4eb: 0xba, 0x4ec: 0xba, 0x4ed: 0xba, 0x4ee: 0xba, 0x4ef: 0xba,\n\t0x4f0: 0xba, 0x4f1: 0xba, 0x4f2: 0xba, 0x4f3: 0xba, 0x4f4: 0xba, 0x4f5: 0xba, 0x4f6: 0xba, 0x4f7: 0xba,\n\t0x4f8: 0xba, 0x4f9: 0xba, 0x4fa: 0xba, 0x4fb: 0xba, 0x4fc: 0xba, 0x4fd: 0xba, 0x4fe: 0xba, 0x4ff: 0xba,\n\t// Block 0x14, offset 0x500\n\t0x500: 0xba, 0x501: 0xba, 0x502: 0xba, 0x503: 0xba, 0x504: 0xba, 0x505: 0xba, 0x506: 0xba, 0x507: 0xba,\n\t0x508: 0xba, 0x509: 0xba, 0x50a: 0xba, 0x50b: 0xba, 0x50c: 0xba, 0x50d: 0xba, 0x50e: 0xba, 0x50f: 0xba,\n\t0x510: 0xba, 0x511: 0xba, 0x512: 0xba, 0x513: 0xba, 0x514: 0xba, 0x515: 0xba, 0x516: 0xba, 0x517: 0xba,\n\t0x518: 0xba, 0x519: 0xba, 0x51a: 0xba, 0x51b: 0xba, 0x51c: 0xba, 0x51d: 0xba, 0x51e: 0xba, 0x51f: 0xba,\n\t0x520: 0x9f, 0x521: 0x9f, 0x522: 0x9f, 0x523: 0x9f, 0x524: 0x9f, 0x525: 0x9f, 0x526: 0x9f, 0x527: 0x9f,\n\t0x528: 0x140, 0x529: 0x149, 0x52a: 0xba, 0x52b: 0x14a, 0x52c: 0x14b, 0x52d: 0x14c, 0x52e: 0x14d, 0x52f: 0xba,\n\t0x530: 0xba, 0x531: 0xba, 0x532: 0xba, 0x533: 0xba, 0x534: 0xba, 0x535: 0xba, 0x536: 0xba, 0x537: 0xba,\n\t0x538: 0xba, 0x539: 0xba, 0x53a: 0xba, 0x53b: 0xba, 0x53c: 0x9f, 0x53d: 0x14e, 0x53e: 0x14f, 0x53f: 0x150,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x9f, 0x541: 0x9f, 0x542: 0x9f, 0x543: 0x9f, 0x544: 0x9f, 0x545: 0x9f, 0x546: 0x9f, 0x547: 0x9f,\n\t0x548: 0x9f, 0x549: 0x9f, 0x54a: 0x9f, 0x54b: 0x9f, 0x54c: 0x9f, 0x54d: 0x9f, 0x54e: 0x9f, 0x54f: 0x9f,\n\t0x550: 0x9f, 0x551: 0x9f, 0x552: 0x9f, 0x553: 0x9f, 0x554: 0x9f, 0x555: 0x9f, 0x556: 0x9f, 0x557: 0x9f,\n\t0x558: 0x9f, 0x559: 0x9f, 0x55a: 0x9f, 0x55b: 0x9f, 0x55c: 0x9f, 0x55d: 0x9f, 0x55e: 0x9f, 0x55f: 0x151,\n\t0x560: 0x9f, 0x561: 0x9f, 0x562: 0x9f, 0x563: 0x9f, 0x564: 0x9f, 0x565: 0x9f, 0x566: 0x9f, 0x567: 0x9f,\n\t0x568: 0x9f, 0x569: 0x9f, 0x56a: 0x9f, 0x56b: 0x152, 0x56c: 0xba, 0x56d: 0xba, 0x56e: 0xba, 0x56f: 0xba,\n\t0x570: 0xba, 0x571: 0xba, 0x572: 0xba, 0x573: 0xba, 0x574: 0xba, 0x575: 0xba, 0x576: 0xba, 0x577: 0xba,\n\t0x578: 0xba, 0x579: 0xba, 0x57a: 0xba, 0x57b: 0xba, 0x57c: 0xba, 0x57d: 0xba, 0x57e: 0xba, 0x57f: 0xba,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x153, 0x581: 0xba, 0x582: 0xba, 0x583: 0xba, 0x584: 0xba, 0x585: 0xba, 0x586: 0xba, 0x587: 0xba,\n\t0x588: 0xba, 0x589: 0xba, 0x58a: 0xba, 0x58b: 0xba, 0x58c: 0xba, 0x58d: 0xba, 0x58e: 0xba, 0x58f: 0xba,\n\t0x590: 0xba, 0x591: 0xba, 0x592: 0xba, 0x593: 0xba, 0x594: 0xba, 0x595: 0xba, 0x596: 0xba, 0x597: 0xba,\n\t0x598: 0xba, 0x599: 0xba, 0x59a: 0xba, 0x59b: 0xba, 0x59c: 0xba, 0x59d: 0xba, 0x59e: 0xba, 0x59f: 0xba,\n\t0x5a0: 0xba, 0x5a1: 0xba, 0x5a2: 0xba, 0x5a3: 0xba, 0x5a4: 0xba, 0x5a5: 0xba, 0x5a6: 0xba, 0x5a7: 0xba,\n\t0x5a8: 0xba, 0x5a9: 0xba, 0x5aa: 0xba, 0x5ab: 0xba, 0x5ac: 0xba, 0x5ad: 0xba, 0x5ae: 0xba, 0x5af: 0xba,\n\t0x5b0: 0x9f, 0x5b1: 0x154, 0x5b2: 0x155, 0x5b3: 0xba, 0x5b4: 0xba, 0x5b5: 0xba, 0x5b6: 0xba, 0x5b7: 0xba,\n\t0x5b8: 0xba, 0x5b9: 0xba, 0x5ba: 0xba, 0x5bb: 0xba, 0x5bc: 0xba, 0x5bd: 0xba, 0x5be: 0xba, 0x5bf: 0xba,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x9b, 0x5c1: 0x9b, 0x5c2: 0x9b, 0x5c3: 0x156, 0x5c4: 0x157, 0x5c5: 0x158, 0x5c6: 0x159, 0x5c7: 0x15a,\n\t0x5c8: 0x9b, 0x5c9: 0x15b, 0x5ca: 0xba, 0x5cb: 0xba, 0x5cc: 0x9b, 0x5cd: 0x15c, 0x5ce: 0xba, 0x5cf: 0xba,\n\t0x5d0: 0x5e, 0x5d1: 0x5f, 0x5d2: 0x60, 0x5d3: 0x61, 0x5d4: 0x62, 0x5d5: 0x63, 0x5d6: 0x64, 0x5d7: 0x65,\n\t0x5d8: 0x66, 0x5d9: 0x67, 0x5da: 0x68, 0x5db: 0x69, 0x5dc: 0x6a, 0x5dd: 0x6b, 0x5de: 0x6c, 0x5df: 0x6d,\n\t0x5e0: 0x9b, 0x5e1: 0x9b, 0x5e2: 0x9b, 0x5e3: 0x9b, 0x5e4: 0x9b, 0x5e5: 0x9b, 0x5e6: 0x9b, 0x5e7: 0x9b,\n\t0x5e8: 0x15d, 0x5e9: 0x15e, 0x5ea: 0x15f, 0x5eb: 0xba, 0x5ec: 0xba, 0x5ed: 0xba, 0x5ee: 0xba, 0x5ef: 0xba,\n\t0x5f0: 0xba, 0x5f1: 0xba, 0x5f2: 0xba, 0x5f3: 0xba, 0x5f4: 0xba, 0x5f5: 0xba, 0x5f6: 0xba, 0x5f7: 0xba,\n\t0x5f8: 0xba, 0x5f9: 0xba, 0x5fa: 0xba, 0x5fb: 0xba, 0x5fc: 0xba, 0x5fd: 0xba, 0x5fe: 0xba, 0x5ff: 0xba,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x160, 0x601: 0xba, 0x602: 0xba, 0x603: 0xba, 0x604: 0xba, 0x605: 0xba, 0x606: 0xba, 0x607: 0xba,\n\t0x608: 0xba, 0x609: 0xba, 0x60a: 0xba, 0x60b: 0xba, 0x60c: 0xba, 0x60d: 0xba, 0x60e: 0xba, 0x60f: 0xba,\n\t0x610: 0xba, 0x611: 0xba, 0x612: 0xba, 0x613: 0xba, 0x614: 0xba, 0x615: 0xba, 0x616: 0xba, 0x617: 0xba,\n\t0x618: 0xba, 0x619: 0xba, 0x61a: 0xba, 0x61b: 0xba, 0x61c: 0xba, 0x61d: 0xba, 0x61e: 0xba, 0x61f: 0xba,\n\t0x620: 0x123, 0x621: 0x123, 0x622: 0x123, 0x623: 0x161, 0x624: 0x6e, 0x625: 0x162, 0x626: 0xba, 0x627: 0xba,\n\t0x628: 0xba, 0x629: 0xba, 0x62a: 0xba, 0x62b: 0xba, 0x62c: 0xba, 0x62d: 0xba, 0x62e: 0xba, 0x62f: 0xba,\n\t0x630: 0xba, 0x631: 0xba, 0x632: 0xba, 0x633: 0xba, 0x634: 0xba, 0x635: 0xba, 0x636: 0xba, 0x637: 0xba,\n\t0x638: 0x6f, 0x639: 0x70, 0x63a: 0x71, 0x63b: 0x163, 0x63c: 0xba, 0x63d: 0xba, 0x63e: 0xba, 0x63f: 0xba,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x164, 0x641: 0x9b, 0x642: 0x165, 0x643: 0x166, 0x644: 0x72, 0x645: 0x73, 0x646: 0x167, 0x647: 0x168,\n\t0x648: 0x74, 0x649: 0x169, 0x64a: 0xba, 0x64b: 0xba, 0x64c: 0x9b, 0x64d: 0x9b, 0x64e: 0x9b, 0x64f: 0x9b,\n\t0x650: 0x9b, 0x651: 0x9b, 0x652: 0x9b, 0x653: 0x9b, 0x654: 0x9b, 0x655: 0x9b, 0x656: 0x9b, 0x657: 0x9b,\n\t0x658: 0x9b, 0x659: 0x9b, 0x65a: 0x9b, 0x65b: 0x16a, 0x65c: 0x9b, 0x65d: 0x16b, 0x65e: 0x9b, 0x65f: 0x16c,\n\t0x660: 0x16d, 0x661: 0x16e, 0x662: 0x16f, 0x663: 0xba, 0x664: 0x170, 0x665: 0x171, 0x666: 0x172, 0x667: 0x173,\n\t0x668: 0xba, 0x669: 0xba, 0x66a: 0xba, 0x66b: 0xba, 0x66c: 0xba, 0x66d: 0xba, 0x66e: 0xba, 0x66f: 0xba,\n\t0x670: 0xba, 0x671: 0xba, 0x672: 0xba, 0x673: 0xba, 0x674: 0xba, 0x675: 0xba, 0x676: 0xba, 0x677: 0xba,\n\t0x678: 0xba, 0x679: 0xba, 0x67a: 0xba, 0x67b: 0xba, 0x67c: 0xba, 0x67d: 0xba, 0x67e: 0xba, 0x67f: 0xba,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x9f, 0x681: 0x9f, 0x682: 0x9f, 0x683: 0x9f, 0x684: 0x9f, 0x685: 0x9f, 0x686: 0x9f, 0x687: 0x9f,\n\t0x688: 0x9f, 0x689: 0x9f, 0x68a: 0x9f, 0x68b: 0x9f, 0x68c: 0x9f, 0x68d: 0x9f, 0x68e: 0x9f, 0x68f: 0x9f,\n\t0x690: 0x9f, 0x691: 0x9f, 0x692: 0x9f, 0x693: 0x9f, 0x694: 0x9f, 0x695: 0x9f, 0x696: 0x9f, 0x697: 0x9f,\n\t0x698: 0x9f, 0x699: 0x9f, 0x69a: 0x9f, 0x69b: 0x174, 0x69c: 0x9f, 0x69d: 0x9f, 0x69e: 0x9f, 0x69f: 0x9f,\n\t0x6a0: 0x9f, 0x6a1: 0x9f, 0x6a2: 0x9f, 0x6a3: 0x9f, 0x6a4: 0x9f, 0x6a5: 0x9f, 0x6a6: 0x9f, 0x6a7: 0x9f,\n\t0x6a8: 0x9f, 0x6a9: 0x9f, 0x6aa: 0x9f, 0x6ab: 0x9f, 0x6ac: 0x9f, 0x6ad: 0x9f, 0x6ae: 0x9f, 0x6af: 0x9f,\n\t0x6b0: 0x9f, 0x6b1: 0x9f, 0x6b2: 0x9f, 0x6b3: 0x9f, 0x6b4: 0x9f, 0x6b5: 0x9f, 0x6b6: 0x9f, 0x6b7: 0x9f,\n\t0x6b8: 0x9f, 0x6b9: 0x9f, 0x6ba: 0x9f, 0x6bb: 0x9f, 0x6bc: 0x9f, 0x6bd: 0x9f, 0x6be: 0x9f, 0x6bf: 0x9f,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x9f, 0x6c1: 0x9f, 0x6c2: 0x9f, 0x6c3: 0x9f, 0x6c4: 0x9f, 0x6c5: 0x9f, 0x6c6: 0x9f, 0x6c7: 0x9f,\n\t0x6c8: 0x9f, 0x6c9: 0x9f, 0x6ca: 0x9f, 0x6cb: 0x9f, 0x6cc: 0x9f, 0x6cd: 0x9f, 0x6ce: 0x9f, 0x6cf: 0x9f,\n\t0x6d0: 0x9f, 0x6d1: 0x9f, 0x6d2: 0x9f, 0x6d3: 0x9f, 0x6d4: 0x9f, 0x6d5: 0x9f, 0x6d6: 0x9f, 0x6d7: 0x9f,\n\t0x6d8: 0x9f, 0x6d9: 0x9f, 0x6da: 0x9f, 0x6db: 0x9f, 0x6dc: 0x175, 0x6dd: 0x9f, 0x6de: 0x9f, 0x6df: 0x9f,\n\t0x6e0: 0x176, 0x6e1: 0x9f, 0x6e2: 0x9f, 0x6e3: 0x9f, 0x6e4: 0x9f, 0x6e5: 0x9f, 0x6e6: 0x9f, 0x6e7: 0x9f,\n\t0x6e8: 0x9f, 0x6e9: 0x9f, 0x6ea: 0x9f, 0x6eb: 0x9f, 0x6ec: 0x9f, 0x6ed: 0x9f, 0x6ee: 0x9f, 0x6ef: 0x9f,\n\t0x6f0: 0x9f, 0x6f1: 0x9f, 0x6f2: 0x9f, 0x6f3: 0x9f, 0x6f4: 0x9f, 0x6f5: 0x9f, 0x6f6: 0x9f, 0x6f7: 0x9f,\n\t0x6f8: 0x9f, 0x6f9: 0x9f, 0x6fa: 0x9f, 0x6fb: 0x9f, 0x6fc: 0x9f, 0x6fd: 0x9f, 0x6fe: 0x9f, 0x6ff: 0x9f,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x9f, 0x701: 0x9f, 0x702: 0x9f, 0x703: 0x9f, 0x704: 0x9f, 0x705: 0x9f, 0x706: 0x9f, 0x707: 0x9f,\n\t0x708: 0x9f, 0x709: 0x9f, 0x70a: 0x9f, 0x70b: 0x9f, 0x70c: 0x9f, 0x70d: 0x9f, 0x70e: 0x9f, 0x70f: 0x9f,\n\t0x710: 0x9f, 0x711: 0x9f, 0x712: 0x9f, 0x713: 0x9f, 0x714: 0x9f, 0x715: 0x9f, 0x716: 0x9f, 0x717: 0x9f,\n\t0x718: 0x9f, 0x719: 0x9f, 0x71a: 0x9f, 0x71b: 0x9f, 0x71c: 0x9f, 0x71d: 0x9f, 0x71e: 0x9f, 0x71f: 0x9f,\n\t0x720: 0x9f, 0x721: 0x9f, 0x722: 0x9f, 0x723: 0x9f, 0x724: 0x9f, 0x725: 0x9f, 0x726: 0x9f, 0x727: 0x9f,\n\t0x728: 0x9f, 0x729: 0x9f, 0x72a: 0x9f, 0x72b: 0x9f, 0x72c: 0x9f, 0x72d: 0x9f, 0x72e: 0x9f, 0x72f: 0x9f,\n\t0x730: 0x9f, 0x731: 0x9f, 0x732: 0x9f, 0x733: 0x9f, 0x734: 0x9f, 0x735: 0x9f, 0x736: 0x9f, 0x737: 0x9f,\n\t0x738: 0x9f, 0x739: 0x9f, 0x73a: 0x177, 0x73b: 0xba, 0x73c: 0xba, 0x73d: 0xba, 0x73e: 0xba, 0x73f: 0xba,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0xba, 0x741: 0xba, 0x742: 0xba, 0x743: 0xba, 0x744: 0xba, 0x745: 0xba, 0x746: 0xba, 0x747: 0xba,\n\t0x748: 0xba, 0x749: 0xba, 0x74a: 0xba, 0x74b: 0xba, 0x74c: 0xba, 0x74d: 0xba, 0x74e: 0xba, 0x74f: 0xba,\n\t0x750: 0xba, 0x751: 0xba, 0x752: 0xba, 0x753: 0xba, 0x754: 0xba, 0x755: 0xba, 0x756: 0xba, 0x757: 0xba,\n\t0x758: 0xba, 0x759: 0xba, 0x75a: 0xba, 0x75b: 0xba, 0x75c: 0xba, 0x75d: 0xba, 0x75e: 0xba, 0x75f: 0xba,\n\t0x760: 0x75, 0x761: 0x76, 0x762: 0x77, 0x763: 0x178, 0x764: 0x78, 0x765: 0x79, 0x766: 0x179, 0x767: 0x7a,\n\t0x768: 0x7b, 0x769: 0xba, 0x76a: 0xba, 0x76b: 0xba, 0x76c: 0xba, 0x76d: 0xba, 0x76e: 0xba, 0x76f: 0xba,\n\t0x770: 0xba, 0x771: 0xba, 0x772: 0xba, 0x773: 0xba, 0x774: 0xba, 0x775: 0xba, 0x776: 0xba, 0x777: 0xba,\n\t0x778: 0xba, 0x779: 0xba, 0x77a: 0xba, 0x77b: 0xba, 0x77c: 0xba, 0x77d: 0xba, 0x77e: 0xba, 0x77f: 0xba,\n\t// Block 0x1e, offset 0x780\n\t0x790: 0x0d, 0x791: 0x0e, 0x792: 0x0f, 0x793: 0x10, 0x794: 0x11, 0x795: 0x0b, 0x796: 0x12, 0x797: 0x07,\n\t0x798: 0x13, 0x799: 0x0b, 0x79a: 0x0b, 0x79b: 0x14, 0x79c: 0x0b, 0x79d: 0x15, 0x79e: 0x16, 0x79f: 0x17,\n\t0x7a0: 0x07, 0x7a1: 0x07, 0x7a2: 0x07, 0x7a3: 0x07, 0x7a4: 0x07, 0x7a5: 0x07, 0x7a6: 0x07, 0x7a7: 0x07,\n\t0x7a8: 0x07, 0x7a9: 0x07, 0x7aa: 0x18, 0x7ab: 0x19, 0x7ac: 0x1a, 0x7ad: 0x0b, 0x7ae: 0x0b, 0x7af: 0x1b,\n\t0x7b0: 0x0b, 0x7b1: 0x0b, 0x7b2: 0x0b, 0x7b3: 0x0b, 0x7b4: 0x0b, 0x7b5: 0x0b, 0x7b6: 0x0b, 0x7b7: 0x0b,\n\t0x7b8: 0x0b, 0x7b9: 0x0b, 0x7ba: 0x0b, 0x7bb: 0x0b, 0x7bc: 0x0b, 0x7bd: 0x0b, 0x7be: 0x0b, 0x7bf: 0x0b,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0x0b, 0x7c1: 0x0b, 0x7c2: 0x0b, 0x7c3: 0x0b, 0x7c4: 0x0b, 0x7c5: 0x0b, 0x7c6: 0x0b, 0x7c7: 0x0b,\n\t0x7c8: 0x0b, 0x7c9: 0x0b, 0x7ca: 0x0b, 0x7cb: 0x0b, 0x7cc: 0x0b, 0x7cd: 0x0b, 0x7ce: 0x0b, 0x7cf: 0x0b,\n\t0x7d0: 0x0b, 0x7d1: 0x0b, 0x7d2: 0x0b, 0x7d3: 0x0b, 0x7d4: 0x0b, 0x7d5: 0x0b, 0x7d6: 0x0b, 0x7d7: 0x0b,\n\t0x7d8: 0x0b, 0x7d9: 0x0b, 0x7da: 0x0b, 0x7db: 0x0b, 0x7dc: 0x0b, 0x7dd: 0x0b, 0x7de: 0x0b, 0x7df: 0x0b,\n\t0x7e0: 0x0b, 0x7e1: 0x0b, 0x7e2: 0x0b, 0x7e3: 0x0b, 0x7e4: 0x0b, 0x7e5: 0x0b, 0x7e6: 0x0b, 0x7e7: 0x0b,\n\t0x7e8: 0x0b, 0x7e9: 0x0b, 0x7ea: 0x0b, 0x7eb: 0x0b, 0x7ec: 0x0b, 0x7ed: 0x0b, 0x7ee: 0x0b, 0x7ef: 0x0b,\n\t0x7f0: 0x0b, 0x7f1: 0x0b, 0x7f2: 0x0b, 0x7f3: 0x0b, 0x7f4: 0x0b, 0x7f5: 0x0b, 0x7f6: 0x0b, 0x7f7: 0x0b,\n\t0x7f8: 0x0b, 0x7f9: 0x0b, 0x7fa: 0x0b, 0x7fb: 0x0b, 0x7fc: 0x0b, 0x7fd: 0x0b, 0x7fe: 0x0b, 0x7ff: 0x0b,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x17a, 0x801: 0x17b, 0x802: 0xba, 0x803: 0xba, 0x804: 0x17c, 0x805: 0x17c, 0x806: 0x17c, 0x807: 0x17d,\n\t0x808: 0xba, 0x809: 0xba, 0x80a: 0xba, 0x80b: 0xba, 0x80c: 0xba, 0x80d: 0xba, 0x80e: 0xba, 0x80f: 0xba,\n\t0x810: 0xba, 0x811: 0xba, 0x812: 0xba, 0x813: 0xba, 0x814: 0xba, 0x815: 0xba, 0x816: 0xba, 0x817: 0xba,\n\t0x818: 0xba, 0x819: 0xba, 0x81a: 0xba, 0x81b: 0xba, 0x81c: 0xba, 0x81d: 0xba, 0x81e: 0xba, 0x81f: 0xba,\n\t0x820: 0xba, 0x821: 0xba, 0x822: 0xba, 0x823: 0xba, 0x824: 0xba, 0x825: 0xba, 0x826: 0xba, 0x827: 0xba,\n\t0x828: 0xba, 0x829: 0xba, 0x82a: 0xba, 0x82b: 0xba, 0x82c: 0xba, 0x82d: 0xba, 0x82e: 0xba, 0x82f: 0xba,\n\t0x830: 0xba, 0x831: 0xba, 0x832: 0xba, 0x833: 0xba, 0x834: 0xba, 0x835: 0xba, 0x836: 0xba, 0x837: 0xba,\n\t0x838: 0xba, 0x839: 0xba, 0x83a: 0xba, 0x83b: 0xba, 0x83c: 0xba, 0x83d: 0xba, 0x83e: 0xba, 0x83f: 0xba,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x0b, 0x841: 0x0b, 0x842: 0x0b, 0x843: 0x0b, 0x844: 0x0b, 0x845: 0x0b, 0x846: 0x0b, 0x847: 0x0b,\n\t0x848: 0x0b, 0x849: 0x0b, 0x84a: 0x0b, 0x84b: 0x0b, 0x84c: 0x0b, 0x84d: 0x0b, 0x84e: 0x0b, 0x84f: 0x0b,\n\t0x850: 0x0b, 0x851: 0x0b, 0x852: 0x0b, 0x853: 0x0b, 0x854: 0x0b, 0x855: 0x0b, 0x856: 0x0b, 0x857: 0x0b,\n\t0x858: 0x0b, 0x859: 0x0b, 0x85a: 0x0b, 0x85b: 0x0b, 0x85c: 0x0b, 0x85d: 0x0b, 0x85e: 0x0b, 0x85f: 0x0b,\n\t0x860: 0x1e, 0x861: 0x0b, 0x862: 0x0b, 0x863: 0x0b, 0x864: 0x0b, 0x865: 0x0b, 0x866: 0x0b, 0x867: 0x0b,\n\t0x868: 0x0b, 0x869: 0x0b, 0x86a: 0x0b, 0x86b: 0x0b, 0x86c: 0x0b, 0x86d: 0x0b, 0x86e: 0x0b, 0x86f: 0x0b,\n\t0x870: 0x0b, 0x871: 0x0b, 0x872: 0x0b, 0x873: 0x0b, 0x874: 0x0b, 0x875: 0x0b, 0x876: 0x0b, 0x877: 0x0b,\n\t0x878: 0x0b, 0x879: 0x0b, 0x87a: 0x0b, 0x87b: 0x0b, 0x87c: 0x0b, 0x87d: 0x0b, 0x87e: 0x0b, 0x87f: 0x0b,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x0b, 0x881: 0x0b, 0x882: 0x0b, 0x883: 0x0b, 0x884: 0x0b, 0x885: 0x0b, 0x886: 0x0b, 0x887: 0x0b,\n\t0x888: 0x0b, 0x889: 0x0b, 0x88a: 0x0b, 0x88b: 0x0b, 0x88c: 0x0b, 0x88d: 0x0b, 0x88e: 0x0b, 0x88f: 0x0b,\n}\n\n// idnaSparseOffset: 258 entries, 516 bytes\nvar idnaSparseOffset = []uint16{0x0, 0x8, 0x19, 0x25, 0x27, 0x2c, 0x34, 0x3f, 0x4b, 0x4f, 0x5e, 0x63, 0x6b, 0x77, 0x85, 0x93, 0x98, 0xa1, 0xb1, 0xbf, 0xcc, 0xd8, 0xe9, 0xf3, 0xfa, 0x107, 0x118, 0x11f, 0x12a, 0x139, 0x147, 0x151, 0x153, 0x158, 0x15b, 0x15e, 0x160, 0x16c, 0x177, 0x17f, 0x185, 0x18b, 0x190, 0x195, 0x198, 0x19c, 0x1a2, 0x1a7, 0x1b3, 0x1bd, 0x1c3, 0x1d4, 0x1de, 0x1e1, 0x1e9, 0x1ec, 0x1f9, 0x201, 0x205, 0x20c, 0x214, 0x224, 0x230, 0x232, 0x23c, 0x248, 0x254, 0x260, 0x268, 0x26d, 0x277, 0x288, 0x28c, 0x297, 0x29b, 0x2a4, 0x2ac, 0x2b2, 0x2b7, 0x2ba, 0x2bd, 0x2c1, 0x2c7, 0x2cb, 0x2cf, 0x2d5, 0x2dc, 0x2e2, 0x2ea, 0x2f1, 0x2fc, 0x306, 0x30a, 0x30d, 0x313, 0x317, 0x319, 0x31c, 0x31e, 0x321, 0x32b, 0x32e, 0x33d, 0x341, 0x346, 0x349, 0x34d, 0x352, 0x357, 0x35d, 0x363, 0x372, 0x378, 0x37c, 0x38b, 0x390, 0x398, 0x3a2, 0x3ad, 0x3b5, 0x3c6, 0x3cf, 0x3df, 0x3ec, 0x3f6, 0x3fb, 0x408, 0x40c, 0x411, 0x413, 0x417, 0x419, 0x41d, 0x426, 0x42c, 0x430, 0x440, 0x44a, 0x44f, 0x452, 0x458, 0x45f, 0x464, 0x468, 0x46e, 0x473, 0x47c, 0x481, 0x487, 0x48e, 0x495, 0x49c, 0x4a0, 0x4a5, 0x4a8, 0x4ad, 0x4b9, 0x4bf, 0x4c4, 0x4cb, 0x4d3, 0x4d8, 0x4dc, 0x4ec, 0x4f3, 0x4f7, 0x4fb, 0x502, 0x504, 0x507, 0x50a, 0x50e, 0x512, 0x518, 0x521, 0x52d, 0x534, 0x53d, 0x545, 0x54c, 0x55a, 0x567, 0x574, 0x57d, 0x581, 0x58f, 0x597, 0x5a2, 0x5ab, 0x5b1, 0x5b9, 0x5c2, 0x5cc, 0x5cf, 0x5db, 0x5de, 0x5e3, 0x5e6, 0x5f0, 0x5f9, 0x605, 0x608, 0x60d, 0x610, 0x613, 0x616, 0x61d, 0x624, 0x628, 0x633, 0x636, 0x63c, 0x641, 0x645, 0x648, 0x64b, 0x64e, 0x653, 0x65d, 0x660, 0x664, 0x673, 0x67f, 0x683, 0x688, 0x68d, 0x691, 0x696, 0x69f, 0x6aa, 0x6b0, 0x6b8, 0x6bc, 0x6c0, 0x6c6, 0x6cc, 0x6d1, 0x6d4, 0x6e2, 0x6e9, 0x6ec, 0x6ef, 0x6f3, 0x6f9, 0x6fe, 0x708, 0x70d, 0x710, 0x713, 0x716, 0x719, 0x71d, 0x720, 0x730, 0x741, 0x746, 0x748, 0x74a}\n\n// idnaSparseValues: 1869 entries, 7476 bytes\nvar idnaSparseValues = [1869]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xe105, lo: 0x80, hi: 0x96},\n\t{value: 0x0018, lo: 0x97, hi: 0x97},\n\t{value: 0xe105, lo: 0x98, hi: 0x9e},\n\t{value: 0x001f, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbf},\n\t// Block 0x1, offset 0x8\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0xe01d, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x82},\n\t{value: 0x0335, lo: 0x83, hi: 0x83},\n\t{value: 0x034d, lo: 0x84, hi: 0x84},\n\t{value: 0x0365, lo: 0x85, hi: 0x85},\n\t{value: 0xe00d, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x87},\n\t{value: 0xe00d, lo: 0x88, hi: 0x88},\n\t{value: 0x0008, lo: 0x89, hi: 0x89},\n\t{value: 0xe00d, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0x8b},\n\t{value: 0xe00d, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0x8d},\n\t{value: 0xe00d, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0xbf},\n\t// Block 0x2, offset 0x19\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x0249, lo: 0xb0, hi: 0xb0},\n\t{value: 0x037d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0259, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0269, lo: 0xb3, hi: 0xb3},\n\t{value: 0x034d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0395, lo: 0xb5, hi: 0xb5},\n\t{value: 0xe1bd, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0279, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0289, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0008, lo: 0xb9, hi: 0xbf},\n\t// Block 0x3, offset 0x25\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x3308, lo: 0x80, hi: 0xbf},\n\t// Block 0x4, offset 0x27\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x03f5, lo: 0x80, hi: 0x8f},\n\t{value: 0xe105, lo: 0x90, hi: 0x9f},\n\t{value: 0x049d, lo: 0xa0, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x5, offset 0x2c\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xe185, lo: 0x80, hi: 0x8f},\n\t{value: 0x0545, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x98},\n\t{value: 0x0008, lo: 0x99, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0008, lo: 0xa1, hi: 0xbf},\n\t// Block 0x6, offset 0x34\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0401, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x88},\n\t{value: 0x0018, lo: 0x89, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x3308, lo: 0x91, hi: 0xbd},\n\t{value: 0x0818, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7, offset 0x3f\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0818, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x82},\n\t{value: 0x0818, lo: 0x83, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x85},\n\t{value: 0x0818, lo: 0x86, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0808, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x8, offset 0x4b\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0a08, lo: 0x80, hi: 0x87},\n\t{value: 0x0c08, lo: 0x88, hi: 0x99},\n\t{value: 0x0a08, lo: 0x9a, hi: 0xbf},\n\t// Block 0x9, offset 0x4f\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3308, lo: 0x80, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8c},\n\t{value: 0x0c08, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0a08, lo: 0x8e, hi: 0x98},\n\t{value: 0x0c08, lo: 0x99, hi: 0x9b},\n\t{value: 0x0a08, lo: 0x9c, hi: 0xaa},\n\t{value: 0x0c08, lo: 0xab, hi: 0xac},\n\t{value: 0x0a08, lo: 0xad, hi: 0xb0},\n\t{value: 0x0c08, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0a08, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0c08, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0a08, lo: 0xb5, hi: 0xb7},\n\t{value: 0x0c08, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0a08, lo: 0xba, hi: 0xbf},\n\t// Block 0xa, offset 0x5e\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xb0},\n\t{value: 0x0808, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0xb, offset 0x63\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0808, lo: 0x80, hi: 0x89},\n\t{value: 0x0a08, lo: 0x8a, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xb3},\n\t{value: 0x0808, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xb9},\n\t{value: 0x0818, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0xc, offset 0x6b\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x99},\n\t{value: 0x0808, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0xa3},\n\t{value: 0x0808, lo: 0xa4, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa7},\n\t{value: 0x0808, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0818, lo: 0xb0, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xd, offset 0x77\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0c08, lo: 0x80, hi: 0x80},\n\t{value: 0x0a08, lo: 0x81, hi: 0x85},\n\t{value: 0x0c08, lo: 0x86, hi: 0x87},\n\t{value: 0x0a08, lo: 0x88, hi: 0x88},\n\t{value: 0x0c08, lo: 0x89, hi: 0x89},\n\t{value: 0x0a08, lo: 0x8a, hi: 0x93},\n\t{value: 0x0c08, lo: 0x94, hi: 0x94},\n\t{value: 0x0a08, lo: 0x95, hi: 0x95},\n\t{value: 0x0808, lo: 0x96, hi: 0x98},\n\t{value: 0x3308, lo: 0x99, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0818, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xbf},\n\t// Block 0xe, offset 0x85\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0a08, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0c08, lo: 0xaa, hi: 0xac},\n\t{value: 0x0808, lo: 0xad, hi: 0xad},\n\t{value: 0x0c08, lo: 0xae, hi: 0xae},\n\t{value: 0x0a08, lo: 0xaf, hi: 0xb0},\n\t{value: 0x0c08, lo: 0xb1, hi: 0xb2},\n\t{value: 0x0a08, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0a08, lo: 0xb6, hi: 0xb8},\n\t{value: 0x0c08, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0a08, lo: 0xba, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0xf, offset 0x93\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x93},\n\t{value: 0x3308, lo: 0x94, hi: 0xa1},\n\t{value: 0x0840, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3308, lo: 0xa3, hi: 0xbf},\n\t// Block 0x10, offset 0x98\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x11, offset 0xa1\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x85},\n\t{value: 0x3008, lo: 0x86, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x3008, lo: 0x8a, hi: 0x8c},\n\t{value: 0x3b08, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x97},\n\t{value: 0x0040, lo: 0x98, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x12, offset 0xb1\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0008, lo: 0xaa, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbf},\n\t// Block 0x13, offset 0xbf\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x14, offset 0xcc\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0040, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0008, lo: 0xb3, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x15, offset 0xd8\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x89},\n\t{value: 0x3b08, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8e},\n\t{value: 0x3008, lo: 0x8f, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x94},\n\t{value: 0x0040, lo: 0x95, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x3008, lo: 0x98, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xb1},\n\t{value: 0x3008, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x16, offset 0xe9\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb2},\n\t{value: 0x08f1, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb9},\n\t{value: 0x3b08, lo: 0xba, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbe},\n\t{value: 0x0018, lo: 0xbf, hi: 0xbf},\n\t// Block 0x17, offset 0xf3\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x8e},\n\t{value: 0x0018, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0xbf},\n\t// Block 0x18, offset 0xfa\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x3308, lo: 0x88, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0961, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0999, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0008, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0x19, offset 0x107\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8a},\n\t{value: 0x0008, lo: 0x8b, hi: 0x8b},\n\t{value: 0xe03d, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xb8},\n\t{value: 0x3308, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0018, lo: 0xba, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x1a, offset 0x118\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0018, lo: 0x8e, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0xbf},\n\t// Block 0x1b, offset 0x11f\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x3008, lo: 0xab, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xb0},\n\t{value: 0x3008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb7},\n\t{value: 0x3008, lo: 0xb8, hi: 0xb8},\n\t{value: 0x3b08, lo: 0xb9, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1c, offset 0x12a\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x95},\n\t{value: 0x3008, lo: 0x96, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0x9d},\n\t{value: 0x3308, lo: 0x9e, hi: 0xa0},\n\t{value: 0x0008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3008, lo: 0xa2, hi: 0xa4},\n\t{value: 0x0008, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xbf},\n\t// Block 0x1d, offset 0x139\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x3008, lo: 0x87, hi: 0x8c},\n\t{value: 0x3308, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x8e},\n\t{value: 0x3008, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x3008, lo: 0x9a, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0x1e, offset 0x147\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0040, lo: 0x80, hi: 0x86},\n\t{value: 0x055d, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8c},\n\t{value: 0x055d, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbb},\n\t{value: 0xe105, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbf},\n\t// Block 0x1f, offset 0x151\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0018, lo: 0x80, hi: 0xbf},\n\t// Block 0x20, offset 0x153\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xa0},\n\t{value: 0x2018, lo: 0xa1, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0x21, offset 0x158\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xa7},\n\t{value: 0x2018, lo: 0xa8, hi: 0xbf},\n\t// Block 0x22, offset 0x15b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x2018, lo: 0x80, hi: 0x82},\n\t{value: 0x0018, lo: 0x83, hi: 0xbf},\n\t// Block 0x23, offset 0x15e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0008, lo: 0x80, hi: 0xbf},\n\t// Block 0x24, offset 0x160\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x99},\n\t{value: 0x0008, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x25, offset 0x16c\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x26, offset 0x177\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0040, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbf},\n\t// Block 0x27, offset 0x17f\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0x0008, lo: 0x92, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbf},\n\t// Block 0x28, offset 0x185\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x29, offset 0x18b\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x2a, offset 0x190\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0xe045, lo: 0xb8, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x2b, offset 0x195\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xbf},\n\t// Block 0x2c, offset 0x198\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xac},\n\t{value: 0x0018, lo: 0xad, hi: 0xae},\n\t{value: 0x0008, lo: 0xaf, hi: 0xbf},\n\t// Block 0x2d, offset 0x19c\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9c},\n\t{value: 0x0040, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x2e, offset 0x1a2\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xb0},\n\t{value: 0x0008, lo: 0xb1, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0x2f, offset 0x1a7\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0008, lo: 0x8e, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x93},\n\t{value: 0x3b08, lo: 0x94, hi: 0x94},\n\t{value: 0x0040, lo: 0x95, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3b08, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0018, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x30, offset 0x1b3\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0x31, offset 0x1bd\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0xb3},\n\t{value: 0x3340, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3008, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x32, offset 0x1c3\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x3008, lo: 0x80, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x3008, lo: 0x87, hi: 0x88},\n\t{value: 0x3308, lo: 0x89, hi: 0x91},\n\t{value: 0x3b08, lo: 0x92, hi: 0x92},\n\t{value: 0x3308, lo: 0x93, hi: 0x93},\n\t{value: 0x0018, lo: 0x94, hi: 0x96},\n\t{value: 0x0008, lo: 0x97, hi: 0x97},\n\t{value: 0x0018, lo: 0x98, hi: 0x9b},\n\t{value: 0x0008, lo: 0x9c, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x33, offset 0x1d4\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0018, lo: 0x80, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x86},\n\t{value: 0x0218, lo: 0x87, hi: 0x87},\n\t{value: 0x0018, lo: 0x88, hi: 0x8a},\n\t{value: 0x33c0, lo: 0x8b, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0208, lo: 0xa0, hi: 0xbf},\n\t// Block 0x34, offset 0x1de\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0208, lo: 0x80, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0x35, offset 0x1e1\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x0208, lo: 0x87, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0208, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x36, offset 0x1e9\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0x37, offset 0x1ec\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb8},\n\t{value: 0x3308, lo: 0xb9, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x38, offset 0x1f9\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0018, lo: 0x80, hi: 0x80},\n\t{value: 0x0040, lo: 0x81, hi: 0x83},\n\t{value: 0x0018, lo: 0x84, hi: 0x85},\n\t{value: 0x0008, lo: 0x86, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0x39, offset 0x201\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x3a, offset 0x205\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0028, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0040, lo: 0x9b, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0xbf},\n\t// Block 0x3b, offset 0x20c\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x3308, lo: 0x97, hi: 0x98},\n\t{value: 0x3008, lo: 0x99, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x3c, offset 0x214\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0008, lo: 0x80, hi: 0x94},\n\t{value: 0x3008, lo: 0x95, hi: 0x95},\n\t{value: 0x3308, lo: 0x96, hi: 0x96},\n\t{value: 0x3008, lo: 0x97, hi: 0x97},\n\t{value: 0x3308, lo: 0x98, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3b08, lo: 0xa0, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xac},\n\t{value: 0x3008, lo: 0xad, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3d, offset 0x224\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0018, lo: 0xa8, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xbd},\n\t{value: 0x3318, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3e, offset 0x230\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0040, lo: 0x80, hi: 0xbf},\n\t// Block 0x3f, offset 0x232\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x3308, lo: 0x80, hi: 0x83},\n\t{value: 0x3008, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x3008, lo: 0xbd, hi: 0xbf},\n\t// Block 0x40, offset 0x23c\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x3808, lo: 0x84, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x41, offset 0x248\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa9},\n\t{value: 0x3808, lo: 0xaa, hi: 0xaa},\n\t{value: 0x3b08, lo: 0xab, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xbf},\n\t// Block 0x42, offset 0x254\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa9},\n\t{value: 0x3008, lo: 0xaa, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xae},\n\t{value: 0x3308, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3808, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbb},\n\t{value: 0x0018, lo: 0xbc, hi: 0xbf},\n\t// Block 0x43, offset 0x260\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa3},\n\t{value: 0x3008, lo: 0xa4, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbf},\n\t// Block 0x44, offset 0x268\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0x45, offset 0x26d\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0e29, lo: 0x80, hi: 0x80},\n\t{value: 0x0e41, lo: 0x81, hi: 0x81},\n\t{value: 0x0e59, lo: 0x82, hi: 0x82},\n\t{value: 0x0e71, lo: 0x83, hi: 0x83},\n\t{value: 0x0e89, lo: 0x84, hi: 0x85},\n\t{value: 0x0ea1, lo: 0x86, hi: 0x86},\n\t{value: 0x0eb9, lo: 0x87, hi: 0x87},\n\t{value: 0x057d, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0xbf},\n\t// Block 0x46, offset 0x277\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x3308, lo: 0x90, hi: 0x92},\n\t{value: 0x0018, lo: 0x93, hi: 0x93},\n\t{value: 0x3308, lo: 0x94, hi: 0xa0},\n\t{value: 0x3008, lo: 0xa1, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa8},\n\t{value: 0x0008, lo: 0xa9, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x0008, lo: 0xae, hi: 0xb1},\n\t{value: 0x3008, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x47, offset 0x288\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3308, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xba},\n\t{value: 0x3308, lo: 0xbb, hi: 0xbf},\n\t// Block 0x48, offset 0x28c\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x87},\n\t{value: 0xe045, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0xe045, lo: 0x98, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa7},\n\t{value: 0xe045, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb7},\n\t{value: 0xe045, lo: 0xb8, hi: 0xbf},\n\t// Block 0x49, offset 0x297\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x3318, lo: 0x90, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xbf},\n\t// Block 0x4a, offset 0x29b\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x88},\n\t{value: 0x24c1, lo: 0x89, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0x4b, offset 0x2a4\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0018, lo: 0x80, hi: 0xab},\n\t{value: 0x24f1, lo: 0xac, hi: 0xac},\n\t{value: 0x2529, lo: 0xad, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xae},\n\t{value: 0x2579, lo: 0xaf, hi: 0xaf},\n\t{value: 0x25b1, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0018, lo: 0xb1, hi: 0xbf},\n\t// Block 0x4c, offset 0x2ac\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x9f},\n\t{value: 0x0080, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xad},\n\t{value: 0x0080, lo: 0xae, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x4d, offset 0x2b2\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0xa8},\n\t{value: 0x09c5, lo: 0xa9, hi: 0xa9},\n\t{value: 0x09e5, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xbf},\n\t// Block 0x4e, offset 0x2b7\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x4f, offset 0x2ba\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xbf},\n\t// Block 0x50, offset 0x2bd\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x8b},\n\t{value: 0x28c1, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0xbf},\n\t// Block 0x51, offset 0x2c1\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0xb3},\n\t{value: 0x0e66, lo: 0xb4, hi: 0xb4},\n\t{value: 0x292a, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0e86, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0x52, offset 0x2c7\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x9b},\n\t{value: 0x2941, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0xbf},\n\t// Block 0x53, offset 0x2cb\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0x54, offset 0x2cf\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0x0018, lo: 0x98, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbc},\n\t{value: 0x0018, lo: 0xbd, hi: 0xbf},\n\t// Block 0x55, offset 0x2d5\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0xab},\n\t{value: 0x0018, lo: 0xac, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0x56, offset 0x2dc\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xe185, lo: 0x80, hi: 0x8f},\n\t{value: 0x03f5, lo: 0x90, hi: 0x9f},\n\t{value: 0x0ea5, lo: 0xa0, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x57, offset 0x2e2\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xac},\n\t{value: 0x0008, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x58, offset 0x2ea\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xae},\n\t{value: 0xe075, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0x59, offset 0x2f1\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0008, lo: 0xb8, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x5a, offset 0x2fc\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xbf},\n\t// Block 0x5b, offset 0x306\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xae},\n\t{value: 0x0008, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x5c, offset 0x30a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0xbf},\n\t// Block 0x5d, offset 0x30d\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9e},\n\t{value: 0x0edd, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbf},\n\t// Block 0x5e, offset 0x313\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xb2},\n\t{value: 0x0efd, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0x5f, offset 0x317\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x0f1d, lo: 0x80, hi: 0xbf},\n\t// Block 0x60, offset 0x319\n\t{value: 0x0020, lo: 0x02},\n\t{value: 0x171d, lo: 0x80, hi: 0x8f},\n\t{value: 0x18fd, lo: 0x90, hi: 0xbf},\n\t// Block 0x61, offset 0x31c\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x1efd, lo: 0x80, hi: 0xbf},\n\t// Block 0x62, offset 0x31e\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0xbf},\n\t// Block 0x63, offset 0x321\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x98},\n\t{value: 0x3308, lo: 0x99, hi: 0x9a},\n\t{value: 0x29e2, lo: 0x9b, hi: 0x9b},\n\t{value: 0x2a0a, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0008, lo: 0x9d, hi: 0x9e},\n\t{value: 0x2a31, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0008, lo: 0xa1, hi: 0xbf},\n\t// Block 0x64, offset 0x32b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xbe},\n\t{value: 0x2a69, lo: 0xbf, hi: 0xbf},\n\t// Block 0x65, offset 0x32e\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0040, lo: 0x80, hi: 0x84},\n\t{value: 0x0008, lo: 0x85, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xb0},\n\t{value: 0x2a1d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x2a3d, lo: 0xb2, hi: 0xb2},\n\t{value: 0x2a5d, lo: 0xb3, hi: 0xb3},\n\t{value: 0x2a7d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x2a5d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x2a9d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x2abd, lo: 0xb7, hi: 0xb7},\n\t{value: 0x2add, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2afd, lo: 0xba, hi: 0xbb},\n\t{value: 0x2b1d, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2afd, lo: 0xbe, hi: 0xbf},\n\t// Block 0x66, offset 0x33d\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x67, offset 0x341\n\t{value: 0x0030, lo: 0x04},\n\t{value: 0x2aa2, lo: 0x80, hi: 0x9d},\n\t{value: 0x305a, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x30a2, lo: 0xa0, hi: 0xbf},\n\t// Block 0x68, offset 0x346\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0xbf},\n\t// Block 0x69, offset 0x349\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x8c},\n\t{value: 0x0040, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0x6a, offset 0x34d\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0x6b, offset 0x352\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xbf},\n\t// Block 0x6c, offset 0x357\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x0018, lo: 0xa6, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0018, lo: 0xb2, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0x6d, offset 0x35d\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0040, lo: 0x80, hi: 0xb6},\n\t{value: 0x0008, lo: 0xb7, hi: 0xb7},\n\t{value: 0x2009, lo: 0xb8, hi: 0xb8},\n\t{value: 0x6e89, lo: 0xb9, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xbf},\n\t// Block 0x6e, offset 0x363\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0008, lo: 0x80, hi: 0x81},\n\t{value: 0x3308, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0x85},\n\t{value: 0x3b08, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x8a},\n\t{value: 0x3308, lo: 0x8b, hi: 0x8b},\n\t{value: 0x0008, lo: 0x8c, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3008, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0018, lo: 0xa8, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x6f, offset 0x372\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0208, lo: 0x80, hi: 0xb1},\n\t{value: 0x0108, lo: 0xb2, hi: 0xb2},\n\t{value: 0x0008, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0x70, offset 0x378\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xbf},\n\t// Block 0x71, offset 0x37c\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3008, lo: 0x80, hi: 0x83},\n\t{value: 0x3b08, lo: 0x84, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8d},\n\t{value: 0x0018, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xba},\n\t{value: 0x0008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0018, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x72, offset 0x38b\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x73, offset 0x390\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x3308, lo: 0x87, hi: 0x91},\n\t{value: 0x3008, lo: 0x92, hi: 0x92},\n\t{value: 0x3808, lo: 0x93, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0x74, offset 0x398\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x3008, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb9},\n\t{value: 0x3008, lo: 0xba, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x3008, lo: 0xbd, hi: 0xbf},\n\t// Block 0x75, offset 0x3a2\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3808, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0x76, offset 0x3ad\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xa8},\n\t{value: 0x3308, lo: 0xa9, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xb0},\n\t{value: 0x3308, lo: 0xb1, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x77, offset 0x3b5\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x0008, lo: 0x80, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x8b},\n\t{value: 0x3308, lo: 0x8c, hi: 0x8c},\n\t{value: 0x3008, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0018, lo: 0x9c, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xb9},\n\t{value: 0x0008, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbc},\n\t{value: 0x3008, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0008, lo: 0xbe, hi: 0xbf},\n\t// Block 0x78, offset 0x3c6\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb4},\n\t{value: 0x0008, lo: 0xb5, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb8},\n\t{value: 0x0008, lo: 0xb9, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbf},\n\t// Block 0x79, offset 0x3cf\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x9a},\n\t{value: 0x0008, lo: 0x9b, hi: 0x9d},\n\t{value: 0x0018, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xaa},\n\t{value: 0x3008, lo: 0xab, hi: 0xab},\n\t{value: 0x3308, lo: 0xac, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3b08, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x7a, offset 0x3df\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x88},\n\t{value: 0x0008, lo: 0x89, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x90},\n\t{value: 0x0008, lo: 0x91, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7b, offset 0x3ec\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9b},\n\t{value: 0x4465, lo: 0x9c, hi: 0x9c},\n\t{value: 0x447d, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2971, lo: 0x9e, hi: 0x9e},\n\t{value: 0xe06d, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa5},\n\t{value: 0x0040, lo: 0xa6, hi: 0xaf},\n\t{value: 0x4495, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7c, offset 0x3f6\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x44b5, lo: 0x80, hi: 0x8f},\n\t{value: 0x44d5, lo: 0x90, hi: 0x9f},\n\t{value: 0x44f5, lo: 0xa0, hi: 0xaf},\n\t{value: 0x44d5, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7d, offset 0x3fb\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0xa2},\n\t{value: 0x3008, lo: 0xa3, hi: 0xa4},\n\t{value: 0x3308, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa7},\n\t{value: 0x3308, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xaa},\n\t{value: 0x0018, lo: 0xab, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3b08, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0x7e, offset 0x408\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0x7f, offset 0x40c\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8a},\n\t{value: 0x0018, lo: 0x8b, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x80, offset 0x411\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x4515, lo: 0x80, hi: 0xbf},\n\t// Block 0x81, offset 0x413\n\t{value: 0x0020, lo: 0x03},\n\t{value: 0x4d15, lo: 0x80, hi: 0x94},\n\t{value: 0x4ad5, lo: 0x95, hi: 0x95},\n\t{value: 0x4fb5, lo: 0x96, hi: 0xbf},\n\t// Block 0x82, offset 0x417\n\t{value: 0x0020, lo: 0x01},\n\t{value: 0x54f5, lo: 0x80, hi: 0xbf},\n\t// Block 0x83, offset 0x419\n\t{value: 0x0020, lo: 0x03},\n\t{value: 0x5cf5, lo: 0x80, hi: 0x84},\n\t{value: 0x5655, lo: 0x85, hi: 0x85},\n\t{value: 0x5d95, lo: 0x86, hi: 0xbf},\n\t// Block 0x84, offset 0x41d\n\t{value: 0x0020, lo: 0x08},\n\t{value: 0x6b55, lo: 0x80, hi: 0x8f},\n\t{value: 0x6d15, lo: 0x90, hi: 0x90},\n\t{value: 0x6d55, lo: 0x91, hi: 0xab},\n\t{value: 0x6ea1, lo: 0xac, hi: 0xac},\n\t{value: 0x70b5, lo: 0xad, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x70d5, lo: 0xb0, hi: 0xbf},\n\t// Block 0x85, offset 0x426\n\t{value: 0x0020, lo: 0x05},\n\t{value: 0x72d5, lo: 0x80, hi: 0xad},\n\t{value: 0x6535, lo: 0xae, hi: 0xae},\n\t{value: 0x7895, lo: 0xaf, hi: 0xb5},\n\t{value: 0x6f55, lo: 0xb6, hi: 0xb6},\n\t{value: 0x7975, lo: 0xb7, hi: 0xbf},\n\t// Block 0x86, offset 0x42c\n\t{value: 0x0028, lo: 0x03},\n\t{value: 0x7c21, lo: 0x80, hi: 0x82},\n\t{value: 0x7be1, lo: 0x83, hi: 0x83},\n\t{value: 0x7c99, lo: 0x84, hi: 0xbf},\n\t// Block 0x87, offset 0x430\n\t{value: 0x0038, lo: 0x0f},\n\t{value: 0x9db1, lo: 0x80, hi: 0x83},\n\t{value: 0x9e59, lo: 0x84, hi: 0x85},\n\t{value: 0x9e91, lo: 0x86, hi: 0x87},\n\t{value: 0x9ec9, lo: 0x88, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x91},\n\t{value: 0xa089, lo: 0x92, hi: 0x97},\n\t{value: 0xa1a1, lo: 0x98, hi: 0x9c},\n\t{value: 0xa281, lo: 0x9d, hi: 0xb3},\n\t{value: 0x9d41, lo: 0xb4, hi: 0xb4},\n\t{value: 0x9db1, lo: 0xb5, hi: 0xb5},\n\t{value: 0xa789, lo: 0xb6, hi: 0xbb},\n\t{value: 0xa869, lo: 0xbc, hi: 0xbc},\n\t{value: 0xa7f9, lo: 0xbd, hi: 0xbd},\n\t{value: 0xa8d9, lo: 0xbe, hi: 0xbf},\n\t// Block 0x88, offset 0x440\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0008, lo: 0x8d, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0008, lo: 0xbc, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0x89, offset 0x44a\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0xbf},\n\t// Block 0x8a, offset 0x44f\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x8b, offset 0x452\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x82},\n\t{value: 0x0040, lo: 0x83, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0x8c, offset 0x458\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x8e},\n\t{value: 0x0040, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0040, lo: 0xa1, hi: 0xbf},\n\t// Block 0x8d, offset 0x45f\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0040, lo: 0xbe, hi: 0xbf},\n\t// Block 0x8e, offset 0x464\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x9c},\n\t{value: 0x0040, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x8f, offset 0x468\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x90},\n\t{value: 0x0040, lo: 0x91, hi: 0x9f},\n\t{value: 0x3308, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x90, offset 0x46e\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x91, offset 0x473\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x81},\n\t{value: 0x0008, lo: 0x82, hi: 0x89},\n\t{value: 0x0018, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbf},\n\t// Block 0x92, offset 0x47c\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0x93, offset 0x481\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0xbf},\n\t// Block 0x94, offset 0x487\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe145, lo: 0x80, hi: 0x87},\n\t{value: 0xe1c5, lo: 0x88, hi: 0x8f},\n\t{value: 0xe145, lo: 0x90, hi: 0x97},\n\t{value: 0x8ad5, lo: 0x98, hi: 0x9f},\n\t{value: 0x8aed, lo: 0xa0, hi: 0xa7},\n\t{value: 0x0008, lo: 0xa8, hi: 0xbf},\n\t// Block 0x95, offset 0x48e\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x8aed, lo: 0xb0, hi: 0xb7},\n\t{value: 0x8ad5, lo: 0xb8, hi: 0xbf},\n\t// Block 0x96, offset 0x495\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe145, lo: 0x80, hi: 0x87},\n\t{value: 0xe1c5, lo: 0x88, hi: 0x8f},\n\t{value: 0xe145, lo: 0x90, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0xbb},\n\t{value: 0x0040, lo: 0xbc, hi: 0xbf},\n\t// Block 0x97, offset 0x49c\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0x98, offset 0x4a0\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xae},\n\t{value: 0x0018, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0x99, offset 0x4a5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0x9a, offset 0x4a8\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xbf},\n\t// Block 0x9b, offset 0x4ad\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0808, lo: 0x80, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x87},\n\t{value: 0x0808, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0808, lo: 0x8a, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0808, lo: 0xb7, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbb},\n\t{value: 0x0808, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbe},\n\t{value: 0x0808, lo: 0xbf, hi: 0xbf},\n\t// Block 0x9c, offset 0x4b9\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x96},\n\t{value: 0x0818, lo: 0x97, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb6},\n\t{value: 0x0818, lo: 0xb7, hi: 0xbf},\n\t// Block 0x9d, offset 0x4bf\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xa6},\n\t{value: 0x0818, lo: 0xa7, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0x9e, offset 0x4c4\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0808, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xba},\n\t{value: 0x0818, lo: 0xbb, hi: 0xbf},\n\t// Block 0x9f, offset 0x4cb\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0818, lo: 0x96, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbe},\n\t{value: 0x0818, lo: 0xbf, hi: 0xbf},\n\t// Block 0xa0, offset 0x4d3\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0808, lo: 0x80, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbb},\n\t{value: 0x0818, lo: 0xbc, hi: 0xbd},\n\t{value: 0x0808, lo: 0xbe, hi: 0xbf},\n\t// Block 0xa1, offset 0x4d8\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0818, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x91},\n\t{value: 0x0818, lo: 0x92, hi: 0xbf},\n\t// Block 0xa2, offset 0x4dc\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x0808, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x84},\n\t{value: 0x3308, lo: 0x85, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x8b},\n\t{value: 0x3308, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x94},\n\t{value: 0x0808, lo: 0x95, hi: 0x97},\n\t{value: 0x0040, lo: 0x98, hi: 0x98},\n\t{value: 0x0808, lo: 0x99, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xba},\n\t{value: 0x0040, lo: 0xbb, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xa3, offset 0x4ec\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0818, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0818, lo: 0x90, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xbc},\n\t{value: 0x0818, lo: 0xbd, hi: 0xbf},\n\t// Block 0xa4, offset 0x4f3\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0x9c},\n\t{value: 0x0818, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0xa5, offset 0x4f7\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb8},\n\t{value: 0x0018, lo: 0xb9, hi: 0xbf},\n\t// Block 0xa6, offset 0x4fb\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0808, lo: 0x80, hi: 0x95},\n\t{value: 0x0040, lo: 0x96, hi: 0x97},\n\t{value: 0x0818, lo: 0x98, hi: 0x9f},\n\t{value: 0x0808, lo: 0xa0, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb7},\n\t{value: 0x0818, lo: 0xb8, hi: 0xbf},\n\t// Block 0xa7, offset 0x502\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0808, lo: 0x80, hi: 0xbf},\n\t// Block 0xa8, offset 0x504\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0808, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0xbf},\n\t// Block 0xa9, offset 0x507\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x03dd, lo: 0x80, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbf},\n\t// Block 0xaa, offset 0x50a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0808, lo: 0x80, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xb9},\n\t{value: 0x0818, lo: 0xba, hi: 0xbf},\n\t// Block 0xab, offset 0x50e\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0818, lo: 0xa0, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xac, offset 0x512\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x3008, lo: 0x80, hi: 0x80},\n\t{value: 0x3308, lo: 0x81, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbf},\n\t// Block 0xad, offset 0x518\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x85},\n\t{value: 0x3b08, lo: 0x86, hi: 0x86},\n\t{value: 0x0018, lo: 0x87, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x91},\n\t{value: 0x0018, lo: 0x92, hi: 0xa5},\n\t{value: 0x0008, lo: 0xa6, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xae, offset 0x521\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb6},\n\t{value: 0x3008, lo: 0xb7, hi: 0xb8},\n\t{value: 0x3b08, lo: 0xb9, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x0018, lo: 0xbb, hi: 0xbc},\n\t{value: 0x0340, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0018, lo: 0xbe, hi: 0xbf},\n\t// Block 0xaf, offset 0x52d\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x81},\n\t{value: 0x0040, lo: 0x82, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xb0, offset 0x534\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xb2},\n\t{value: 0x3b08, lo: 0xb3, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0008, lo: 0xb6, hi: 0xbf},\n\t// Block 0xb1, offset 0x53d\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0018, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0018, lo: 0xb4, hi: 0xb5},\n\t{value: 0x0008, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0xb2, offset 0x545\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x3308, lo: 0x80, hi: 0x81},\n\t{value: 0x3008, lo: 0x82, hi: 0x82},\n\t{value: 0x0008, lo: 0x83, hi: 0xb2},\n\t{value: 0x3008, lo: 0xb3, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xbe},\n\t{value: 0x3008, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb3, offset 0x54c\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x3808, lo: 0x80, hi: 0x80},\n\t{value: 0x0008, lo: 0x81, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x89},\n\t{value: 0x3308, lo: 0x8a, hi: 0x8c},\n\t{value: 0x0018, lo: 0x8d, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0008, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0018, lo: 0xa1, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0xb4, offset 0x55a\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0x92},\n\t{value: 0x0008, lo: 0x93, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xae},\n\t{value: 0x3308, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3008, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3308, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3808, lo: 0xb5, hi: 0xb5},\n\t{value: 0x3308, lo: 0xb6, hi: 0xb7},\n\t{value: 0x0018, lo: 0xb8, hi: 0xbd},\n\t{value: 0x3308, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb5, offset 0x567\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x0008, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0x8d},\n\t{value: 0x0040, lo: 0x8e, hi: 0x8e},\n\t{value: 0x0008, lo: 0x8f, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9e},\n\t{value: 0x0008, lo: 0x9f, hi: 0xa8},\n\t{value: 0x0018, lo: 0xa9, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbf},\n\t// Block 0xb6, offset 0x574\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x3308, lo: 0x9f, hi: 0x9f},\n\t{value: 0x3008, lo: 0xa0, hi: 0xa2},\n\t{value: 0x3308, lo: 0xa3, hi: 0xa9},\n\t{value: 0x3b08, lo: 0xaa, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0040, lo: 0xba, hi: 0xbf},\n\t// Block 0xb7, offset 0x57d\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xb4},\n\t{value: 0x3008, lo: 0xb5, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbf},\n\t// Block 0xb8, offset 0x581\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x3008, lo: 0x80, hi: 0x81},\n\t{value: 0x3b08, lo: 0x82, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x84},\n\t{value: 0x3008, lo: 0x85, hi: 0x85},\n\t{value: 0x3308, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x8a},\n\t{value: 0x0018, lo: 0x8b, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0040, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0018, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0xbf},\n\t// Block 0xb9, offset 0x58f\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xb8},\n\t{value: 0x3008, lo: 0xb9, hi: 0xb9},\n\t{value: 0x3308, lo: 0xba, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbe},\n\t{value: 0x3308, lo: 0xbf, hi: 0xbf},\n\t// Block 0xba, offset 0x597\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x3008, lo: 0x81, hi: 0x81},\n\t{value: 0x3b08, lo: 0x82, hi: 0x82},\n\t{value: 0x3308, lo: 0x83, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x85},\n\t{value: 0x0018, lo: 0x86, hi: 0x86},\n\t{value: 0x0008, lo: 0x87, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xbb, offset 0x5a2\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xb7},\n\t{value: 0x3008, lo: 0xb8, hi: 0xbb},\n\t{value: 0x3308, lo: 0xbc, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xbc, offset 0x5ab\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x97},\n\t{value: 0x0008, lo: 0x98, hi: 0x9b},\n\t{value: 0x3308, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0xbf},\n\t// Block 0xbd, offset 0x5b1\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3008, lo: 0xb0, hi: 0xb2},\n\t{value: 0x3308, lo: 0xb3, hi: 0xba},\n\t{value: 0x3008, lo: 0xbb, hi: 0xbc},\n\t{value: 0x3308, lo: 0xbd, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xbe, offset 0x5b9\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x3308, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x83},\n\t{value: 0x0008, lo: 0x84, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xbf},\n\t// Block 0xbf, offset 0x5c2\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x3308, lo: 0xab, hi: 0xab},\n\t{value: 0x3008, lo: 0xac, hi: 0xac},\n\t{value: 0x3308, lo: 0xad, hi: 0xad},\n\t{value: 0x3008, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb5},\n\t{value: 0x3808, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3308, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbf},\n\t// Block 0xc0, offset 0x5cc\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x89},\n\t{value: 0x0040, lo: 0x8a, hi: 0xbf},\n\t// Block 0xc1, offset 0x5cf\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9f},\n\t{value: 0x3008, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3308, lo: 0xa2, hi: 0xa5},\n\t{value: 0x3008, lo: 0xa6, hi: 0xa6},\n\t{value: 0x3308, lo: 0xa7, hi: 0xaa},\n\t{value: 0x3b08, lo: 0xab, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xb9},\n\t{value: 0x0018, lo: 0xba, hi: 0xbf},\n\t// Block 0xc2, offset 0x5db\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x049d, lo: 0xa0, hi: 0xbf},\n\t// Block 0xc3, offset 0x5de\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbe},\n\t{value: 0x0008, lo: 0xbf, hi: 0xbf},\n\t// Block 0xc4, offset 0x5e3\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb8},\n\t{value: 0x0040, lo: 0xb9, hi: 0xbf},\n\t// Block 0xc5, offset 0x5e6\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x89},\n\t{value: 0x0008, lo: 0x8a, hi: 0xae},\n\t{value: 0x3008, lo: 0xaf, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xb7},\n\t{value: 0x3308, lo: 0xb8, hi: 0xbd},\n\t{value: 0x3008, lo: 0xbe, hi: 0xbe},\n\t{value: 0x3b08, lo: 0xbf, hi: 0xbf},\n\t// Block 0xc6, offset 0x5f0\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0008, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0018, lo: 0x9a, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0008, lo: 0xb2, hi: 0xbf},\n\t// Block 0xc7, offset 0x5f9\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x91},\n\t{value: 0x3308, lo: 0x92, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3008, lo: 0xa9, hi: 0xa9},\n\t{value: 0x3308, lo: 0xaa, hi: 0xb0},\n\t{value: 0x3008, lo: 0xb1, hi: 0xb1},\n\t{value: 0x3308, lo: 0xb2, hi: 0xb3},\n\t{value: 0x3008, lo: 0xb4, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0xc8, offset 0x605\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0xbf},\n\t// Block 0xc9, offset 0x608\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0xca, offset 0x60d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0040, lo: 0x84, hi: 0xbf},\n\t// Block 0xcb, offset 0x610\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xbf},\n\t// Block 0xcc, offset 0x613\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0xbf},\n\t// Block 0xcd, offset 0x616\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0008, lo: 0x80, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa9},\n\t{value: 0x0040, lo: 0xaa, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0xce, offset 0x61d\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb4},\n\t{value: 0x0018, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0xcf, offset 0x624\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0xaf},\n\t{value: 0x3308, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xbf},\n\t// Block 0xd0, offset 0x628\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x0008, lo: 0x80, hi: 0x83},\n\t{value: 0x0018, lo: 0x84, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9a},\n\t{value: 0x0018, lo: 0x9b, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0008, lo: 0xa3, hi: 0xb7},\n\t{value: 0x0040, lo: 0xb8, hi: 0xbc},\n\t{value: 0x0008, lo: 0xbd, hi: 0xbf},\n\t// Block 0xd1, offset 0x633\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0xbf},\n\t// Block 0xd2, offset 0x636\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0008, lo: 0x80, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x90},\n\t{value: 0x3008, lo: 0x91, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xd3, offset 0x63c\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x8e},\n\t{value: 0x3308, lo: 0x8f, hi: 0x92},\n\t{value: 0x0008, lo: 0x93, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0xd4, offset 0x641\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0040, lo: 0xa1, hi: 0xbf},\n\t// Block 0xd5, offset 0x645\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xbf},\n\t// Block 0xd6, offset 0x648\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb2},\n\t{value: 0x0040, lo: 0xb3, hi: 0xbf},\n\t// Block 0xd7, offset 0x64b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x81},\n\t{value: 0x0040, lo: 0x82, hi: 0xbf},\n\t// Block 0xd8, offset 0x64e\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0008, lo: 0x80, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xaf},\n\t{value: 0x0008, lo: 0xb0, hi: 0xbc},\n\t{value: 0x0040, lo: 0xbd, hi: 0xbf},\n\t// Block 0xd9, offset 0x653\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0008, lo: 0x80, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0x0008, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9b},\n\t{value: 0x0018, lo: 0x9c, hi: 0x9c},\n\t{value: 0x3308, lo: 0x9d, hi: 0x9e},\n\t{value: 0x0018, lo: 0x9f, hi: 0x9f},\n\t{value: 0x03c0, lo: 0xa0, hi: 0xa3},\n\t{value: 0x0040, lo: 0xa4, hi: 0xbf},\n\t// Block 0xda, offset 0x65d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0xdb, offset 0x660\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xa6},\n\t{value: 0x0040, lo: 0xa7, hi: 0xa8},\n\t{value: 0x0018, lo: 0xa9, hi: 0xbf},\n\t// Block 0xdc, offset 0x664\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x0018, lo: 0x80, hi: 0x9d},\n\t{value: 0xb5b9, lo: 0x9e, hi: 0x9e},\n\t{value: 0xb601, lo: 0x9f, hi: 0x9f},\n\t{value: 0xb649, lo: 0xa0, hi: 0xa0},\n\t{value: 0xb6b1, lo: 0xa1, hi: 0xa1},\n\t{value: 0xb719, lo: 0xa2, hi: 0xa2},\n\t{value: 0xb781, lo: 0xa3, hi: 0xa3},\n\t{value: 0xb7e9, lo: 0xa4, hi: 0xa4},\n\t{value: 0x3018, lo: 0xa5, hi: 0xa6},\n\t{value: 0x3318, lo: 0xa7, hi: 0xa9},\n\t{value: 0x0018, lo: 0xaa, hi: 0xac},\n\t{value: 0x3018, lo: 0xad, hi: 0xb2},\n\t{value: 0x0340, lo: 0xb3, hi: 0xba},\n\t{value: 0x3318, lo: 0xbb, hi: 0xbf},\n\t// Block 0xdd, offset 0x673\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x3318, lo: 0x80, hi: 0x82},\n\t{value: 0x0018, lo: 0x83, hi: 0x84},\n\t{value: 0x3318, lo: 0x85, hi: 0x8b},\n\t{value: 0x0018, lo: 0x8c, hi: 0xa9},\n\t{value: 0x3318, lo: 0xaa, hi: 0xad},\n\t{value: 0x0018, lo: 0xae, hi: 0xba},\n\t{value: 0xb851, lo: 0xbb, hi: 0xbb},\n\t{value: 0xb899, lo: 0xbc, hi: 0xbc},\n\t{value: 0xb8e1, lo: 0xbd, hi: 0xbd},\n\t{value: 0xb949, lo: 0xbe, hi: 0xbe},\n\t{value: 0xb9b1, lo: 0xbf, hi: 0xbf},\n\t// Block 0xde, offset 0x67f\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xba19, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0xa8},\n\t{value: 0x0040, lo: 0xa9, hi: 0xbf},\n\t// Block 0xdf, offset 0x683\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x81},\n\t{value: 0x3318, lo: 0x82, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x85},\n\t{value: 0x0040, lo: 0x86, hi: 0xbf},\n\t// Block 0xe0, offset 0x688\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0xe1, offset 0x68d\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x3308, lo: 0x80, hi: 0xb6},\n\t{value: 0x0018, lo: 0xb7, hi: 0xba},\n\t{value: 0x3308, lo: 0xbb, hi: 0xbf},\n\t// Block 0xe2, offset 0x691\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x3308, lo: 0x80, hi: 0xac},\n\t{value: 0x0018, lo: 0xad, hi: 0xb4},\n\t{value: 0x3308, lo: 0xb5, hi: 0xb5},\n\t{value: 0x0018, lo: 0xb6, hi: 0xbf},\n\t// Block 0xe3, offset 0x696\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x0018, lo: 0x80, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x84},\n\t{value: 0x0018, lo: 0x85, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xa0},\n\t{value: 0x3308, lo: 0xa1, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n\t// Block 0xe4, offset 0x69f\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x3308, lo: 0x80, hi: 0x86},\n\t{value: 0x0040, lo: 0x87, hi: 0x87},\n\t{value: 0x3308, lo: 0x88, hi: 0x98},\n\t{value: 0x0040, lo: 0x99, hi: 0x9a},\n\t{value: 0x3308, lo: 0x9b, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3308, lo: 0xa3, hi: 0xa4},\n\t{value: 0x0040, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3308, lo: 0xa6, hi: 0xaa},\n\t{value: 0x0040, lo: 0xab, hi: 0xbf},\n\t// Block 0xe5, offset 0x6aa\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0808, lo: 0x80, hi: 0x84},\n\t{value: 0x0040, lo: 0x85, hi: 0x86},\n\t{value: 0x0818, lo: 0x87, hi: 0x8f},\n\t{value: 0x3308, lo: 0x90, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0xbf},\n\t// Block 0xe6, offset 0x6b0\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x0a08, lo: 0x80, hi: 0x83},\n\t{value: 0x3308, lo: 0x84, hi: 0x8a},\n\t{value: 0x0040, lo: 0x8b, hi: 0x8f},\n\t{value: 0x0808, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9d},\n\t{value: 0x0818, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0040, lo: 0xa0, hi: 0xbf},\n\t// Block 0xe7, offset 0x6b8\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0040, lo: 0x80, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb1},\n\t{value: 0x0040, lo: 0xb2, hi: 0xbf},\n\t// Block 0xe8, offset 0x6bc\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0xab},\n\t{value: 0x0040, lo: 0xac, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xbf},\n\t// Block 0xe9, offset 0x6c0\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x93},\n\t{value: 0x0040, lo: 0x94, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xae},\n\t{value: 0x0040, lo: 0xaf, hi: 0xb0},\n\t{value: 0x0018, lo: 0xb1, hi: 0xbf},\n\t// Block 0xea, offset 0x6c6\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0018, lo: 0x81, hi: 0x8f},\n\t{value: 0x0040, lo: 0x90, hi: 0x90},\n\t{value: 0x0018, lo: 0x91, hi: 0xb5},\n\t{value: 0x0040, lo: 0xb6, hi: 0xbf},\n\t// Block 0xeb, offset 0x6cc\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x8f},\n\t{value: 0xc1c1, lo: 0x90, hi: 0x90},\n\t{value: 0x0018, lo: 0x91, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xbf},\n\t// Block 0xec, offset 0x6d1\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0040, lo: 0x80, hi: 0xa5},\n\t{value: 0x0018, lo: 0xa6, hi: 0xbf},\n\t// Block 0xed, offset 0x6d4\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0xc7e9, lo: 0x80, hi: 0x80},\n\t{value: 0xc839, lo: 0x81, hi: 0x81},\n\t{value: 0xc889, lo: 0x82, hi: 0x82},\n\t{value: 0xc8d9, lo: 0x83, hi: 0x83},\n\t{value: 0xc929, lo: 0x84, hi: 0x84},\n\t{value: 0xc979, lo: 0x85, hi: 0x85},\n\t{value: 0xc9c9, lo: 0x86, hi: 0x86},\n\t{value: 0xca19, lo: 0x87, hi: 0x87},\n\t{value: 0xca69, lo: 0x88, hi: 0x88},\n\t{value: 0x0040, lo: 0x89, hi: 0x8f},\n\t{value: 0xcab9, lo: 0x90, hi: 0x90},\n\t{value: 0xcad9, lo: 0x91, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0xbf},\n\t// Block 0xee, offset 0x6e2\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x0018, lo: 0x80, hi: 0x92},\n\t{value: 0x0040, lo: 0x93, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xac},\n\t{value: 0x0040, lo: 0xad, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb6},\n\t{value: 0x0040, lo: 0xb7, hi: 0xbf},\n\t// Block 0xef, offset 0x6e9\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0xb3},\n\t{value: 0x0040, lo: 0xb4, hi: 0xbf},\n\t// Block 0xf0, offset 0x6ec\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x94},\n\t{value: 0x0040, lo: 0x95, hi: 0xbf},\n\t// Block 0xf1, offset 0x6ef\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0018, lo: 0x80, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xbf},\n\t// Block 0xf2, offset 0x6f3\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x99},\n\t{value: 0x0040, lo: 0x9a, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xbf},\n\t// Block 0xf3, offset 0x6f9\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x87},\n\t{value: 0x0040, lo: 0x88, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0xad},\n\t{value: 0x0040, lo: 0xae, hi: 0xbf},\n\t// Block 0xf4, offset 0x6fe\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x0040, lo: 0x80, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0018, lo: 0xa0, hi: 0xa7},\n\t{value: 0x0040, lo: 0xa8, hi: 0xaf},\n\t{value: 0x0018, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0040, lo: 0xb1, hi: 0xb2},\n\t{value: 0x0018, lo: 0xb3, hi: 0xbe},\n\t{value: 0x0040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xf5, offset 0x708\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0018, lo: 0x80, hi: 0x8b},\n\t{value: 0x0040, lo: 0x8c, hi: 0x8f},\n\t{value: 0x0018, lo: 0x90, hi: 0x9e},\n\t{value: 0x0040, lo: 0x9f, hi: 0xbf},\n\t// Block 0xf6, offset 0x70d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x91},\n\t{value: 0x0040, lo: 0x92, hi: 0xbf},\n\t// Block 0xf7, offset 0x710\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0018, lo: 0x80, hi: 0x80},\n\t{value: 0x0040, lo: 0x81, hi: 0xbf},\n\t// Block 0xf8, offset 0x713\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0x96},\n\t{value: 0x0040, lo: 0x97, hi: 0xbf},\n\t// Block 0xf9, offset 0x716\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xb4},\n\t{value: 0x0040, lo: 0xb5, hi: 0xbf},\n\t// Block 0xfa, offset 0x719\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0008, lo: 0x80, hi: 0x9d},\n\t{value: 0x0040, lo: 0x9e, hi: 0x9f},\n\t{value: 0x0008, lo: 0xa0, hi: 0xbf},\n\t// Block 0xfb, offset 0x71d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0008, lo: 0x80, hi: 0xa1},\n\t{value: 0x0040, lo: 0xa2, hi: 0xbf},\n\t// Block 0xfc, offset 0x720\n\t{value: 0x0020, lo: 0x0f},\n\t{value: 0xdeb9, lo: 0x80, hi: 0x89},\n\t{value: 0x8dfd, lo: 0x8a, hi: 0x8a},\n\t{value: 0xdff9, lo: 0x8b, hi: 0x9c},\n\t{value: 0x8e1d, lo: 0x9d, hi: 0x9d},\n\t{value: 0xe239, lo: 0x9e, hi: 0xa2},\n\t{value: 0x8e3d, lo: 0xa3, hi: 0xa3},\n\t{value: 0xe2d9, lo: 0xa4, hi: 0xab},\n\t{value: 0x7ed5, lo: 0xac, hi: 0xac},\n\t{value: 0xe3d9, lo: 0xad, hi: 0xaf},\n\t{value: 0x8e5d, lo: 0xb0, hi: 0xb0},\n\t{value: 0xe439, lo: 0xb1, hi: 0xb6},\n\t{value: 0x8e7d, lo: 0xb7, hi: 0xb9},\n\t{value: 0xe4f9, lo: 0xba, hi: 0xba},\n\t{value: 0x8edd, lo: 0xbb, hi: 0xbb},\n\t{value: 0xe519, lo: 0xbc, hi: 0xbf},\n\t// Block 0xfd, offset 0x730\n\t{value: 0x0020, lo: 0x10},\n\t{value: 0x937d, lo: 0x80, hi: 0x80},\n\t{value: 0xf099, lo: 0x81, hi: 0x86},\n\t{value: 0x939d, lo: 0x87, hi: 0x8a},\n\t{value: 0xd9f9, lo: 0x8b, hi: 0x8b},\n\t{value: 0xf159, lo: 0x8c, hi: 0x96},\n\t{value: 0x941d, lo: 0x97, hi: 0x97},\n\t{value: 0xf2b9, lo: 0x98, hi: 0xa3},\n\t{value: 0x943d, lo: 0xa4, hi: 0xa6},\n\t{value: 0xf439, lo: 0xa7, hi: 0xaa},\n\t{value: 0x949d, lo: 0xab, hi: 0xab},\n\t{value: 0xf4b9, lo: 0xac, hi: 0xac},\n\t{value: 0x94bd, lo: 0xad, hi: 0xad},\n\t{value: 0xf4d9, lo: 0xae, hi: 0xaf},\n\t{value: 0x94dd, lo: 0xb0, hi: 0xb1},\n\t{value: 0xf519, lo: 0xb2, hi: 0xbe},\n\t{value: 0x2040, lo: 0xbf, hi: 0xbf},\n\t// Block 0xfe, offset 0x741\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x0040, lo: 0x80, hi: 0x80},\n\t{value: 0x0340, lo: 0x81, hi: 0x81},\n\t{value: 0x0040, lo: 0x82, hi: 0x9f},\n\t{value: 0x0340, lo: 0xa0, hi: 0xbf},\n\t// Block 0xff, offset 0x746\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0340, lo: 0x80, hi: 0xbf},\n\t// Block 0x100, offset 0x748\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x33c0, lo: 0x80, hi: 0xbf},\n\t// Block 0x101, offset 0x74a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x33c0, lo: 0x80, hi: 0xaf},\n\t{value: 0x0040, lo: 0xb0, hi: 0xbf},\n}\n\n// Total table size 41662 bytes (40KiB); checksum: 355A58A4\n"
  },
  {
    "path": "vendor/golang.org/x/net/idna/trie.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage idna\n\n// Sparse block handling code.\n\ntype valueRange struct {\n\tvalue  uint16 // header: value:stride\n\tlo, hi byte   // header: lo:n\n}\n\ntype sparseBlocks struct {\n\tvalues []valueRange\n\toffset []uint16\n}\n\nvar idnaSparse = sparseBlocks{\n\tvalues: idnaSparseValues[:],\n\toffset: idnaSparseOffset[:],\n}\n\n// Don't use newIdnaTrie to avoid unconditional linking in of the table.\nvar trie = &idnaTrie{}\n\n// lookup determines the type of block n and looks up the value for b.\n// For n < t.cutoff, the block is a simple lookup table. Otherwise, the block\n// is a list of ranges with an accompanying value. Given a matching range r,\n// the value for b is by r.value + (b - r.lo) * stride.\nfunc (t *sparseBlocks) lookup(n uint32, b byte) uint16 {\n\toffset := t.offset[n]\n\theader := t.values[offset]\n\tlo := offset + 1\n\thi := lo + uint16(header.lo)\n\tfor lo < hi {\n\t\tm := lo + (hi-lo)/2\n\t\tr := t.values[m]\n\t\tif r.lo <= b && b <= r.hi {\n\t\t\treturn r.value + uint16(b-r.lo)*header.value\n\t\t}\n\t\tif b < r.lo {\n\t\t\thi = m\n\t\t} else {\n\t\t\tlo = m + 1\n\t\t}\n\t}\n\treturn 0\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/idna/trie12.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build !go1.16\n\npackage idna\n\n// appendMapping appends the mapping for the respective rune. isMapped must be\n// true. A mapping is a categorization of a rune as defined in UTS #46.\nfunc (c info) appendMapping(b []byte, s string) []byte {\n\tindex := int(c >> indexShift)\n\tif c&xorBit == 0 {\n\t\ts := mappings[index:]\n\t\treturn append(b, s[1:s[0]+1]...)\n\t}\n\tb = append(b, s...)\n\tif c&inlineXOR == inlineXOR {\n\t\t// TODO: support and handle two-byte inline masks\n\t\tb[len(b)-1] ^= byte(index)\n\t} else {\n\t\tfor p := len(b) - int(xorData[index]); p < len(b); p++ {\n\t\t\tindex++\n\t\t\tb[p] ^= xorData[index]\n\t\t}\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/idna/trie13.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build go1.16\n\npackage idna\n\n// appendMapping appends the mapping for the respective rune. isMapped must be\n// true. A mapping is a categorization of a rune as defined in UTS #46.\nfunc (c info) appendMapping(b []byte, s string) []byte {\n\tindex := int(c >> indexShift)\n\tif c&xorBit == 0 {\n\t\tp := index\n\t\treturn append(b, mappings[mappingIndex[p]:mappingIndex[p+1]]...)\n\t}\n\tb = append(b, s...)\n\tif c&inlineXOR == inlineXOR {\n\t\t// TODO: support and handle two-byte inline masks\n\t\tb[len(b)-1] ^= byte(index)\n\t} else {\n\t\tfor p := len(b) - int(xorData[index]); p < len(b); p++ {\n\t\t\tindex++\n\t\t\tb[p] ^= xorData[index]\n\t\t}\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/idna/trieval.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\npackage idna\n\n// This file contains definitions for interpreting the trie value of the idna\n// trie generated by \"go run gen*.go\". It is shared by both the generator\n// program and the resultant package. Sharing is achieved by the generator\n// copying gen_trieval.go to trieval.go and changing what's above this comment.\n\n// info holds information from the IDNA mapping table for a single rune. It is\n// the value returned by a trie lookup. In most cases, all information fits in\n// a 16-bit value. For mappings, this value may contain an index into a slice\n// with the mapped string. Such mappings can consist of the actual mapped value\n// or an XOR pattern to be applied to the bytes of the UTF8 encoding of the\n// input rune. This technique is used by the cases packages and reduces the\n// table size significantly.\n//\n// The per-rune values have the following format:\n//\n//\tif mapped {\n//\t  if inlinedXOR {\n//\t    15..13 inline XOR marker\n//\t    12..11 unused\n//\t    10..3  inline XOR mask\n//\t  } else {\n//\t    15..3  index into xor or mapping table\n//\t  }\n//\t} else {\n//\t    15..14 unused\n//\t    13     mayNeedNorm\n//\t    12..11 attributes\n//\t    10..8  joining type\n//\t     7..3  category type\n//\t}\n//\t   2  use xor pattern\n//\t1..0  mapped category\n//\n// See the definitions below for a more detailed description of the various\n// bits.\ntype info uint16\n\nconst (\n\tcatSmallMask = 0x3\n\tcatBigMask   = 0xF8\n\tindexShift   = 3\n\txorBit       = 0x4    // interpret the index as an xor pattern\n\tinlineXOR    = 0xE000 // These bits are set if the XOR pattern is inlined.\n\n\tjoinShift = 8\n\tjoinMask  = 0x07\n\n\t// Attributes\n\tattributesMask = 0x1800\n\tviramaModifier = 0x1800\n\tmodifier       = 0x1000\n\trtl            = 0x0800\n\n\tmayNeedNorm = 0x2000\n)\n\n// A category corresponds to a category defined in the IDNA mapping table.\ntype category uint16\n\nconst (\n\tunknown              category = 0 // not currently defined in unicode.\n\tmapped               category = 1\n\tdisallowedSTD3Mapped category = 2\n\tdeviation            category = 3\n)\n\nconst (\n\tvalid               category = 0x08\n\tvalidNV8            category = 0x18\n\tvalidXV8            category = 0x28\n\tdisallowed          category = 0x40\n\tdisallowedSTD3Valid category = 0x80\n\tignored             category = 0xC0\n)\n\n// join types and additional rune information\nconst (\n\tjoiningL = (iota + 1)\n\tjoiningD\n\tjoiningT\n\tjoiningR\n\n\t//the following types are derived during processing\n\tjoinZWJ\n\tjoinZWNJ\n\tjoinVirama\n\tnumJoinTypes\n)\n\nfunc (c info) isMapped() bool {\n\treturn c&0x3 != 0\n}\n\nfunc (c info) category() category {\n\tsmall := c & catSmallMask\n\tif small != 0 {\n\t\treturn category(small)\n\t}\n\treturn category(c & catBigMask)\n}\n\nfunc (c info) joinType() info {\n\tif c.isMapped() {\n\t\treturn 0\n\t}\n\treturn (c >> joinShift) & joinMask\n}\n\nfunc (c info) isModifier() bool {\n\treturn c&(modifier|catSmallMask) == modifier\n}\n\nfunc (c info) isViramaModifier() bool {\n\treturn c&(attributesMask|catSmallMask) == viramaModifier\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/internal/httpcommon/ascii.go",
    "content": "// Copyright 2025 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage httpcommon\n\nimport \"strings\"\n\n// The HTTP protocols are defined in terms of ASCII, not Unicode. This file\n// contains helper functions which may use Unicode-aware functions which would\n// otherwise be unsafe and could introduce vulnerabilities if used improperly.\n\n// asciiEqualFold is strings.EqualFold, ASCII only. It reports whether s and t\n// are equal, ASCII-case-insensitively.\nfunc asciiEqualFold(s, t string) bool {\n\tif len(s) != len(t) {\n\t\treturn false\n\t}\n\tfor i := 0; i < len(s); i++ {\n\t\tif lower(s[i]) != lower(t[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// lower returns the ASCII lowercase version of b.\nfunc lower(b byte) byte {\n\tif 'A' <= b && b <= 'Z' {\n\t\treturn b + ('a' - 'A')\n\t}\n\treturn b\n}\n\n// isASCIIPrint returns whether s is ASCII and printable according to\n// https://tools.ietf.org/html/rfc20#section-4.2.\nfunc isASCIIPrint(s string) bool {\n\tfor i := 0; i < len(s); i++ {\n\t\tif s[i] < ' ' || s[i] > '~' {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// asciiToLower returns the lowercase version of s if s is ASCII and printable,\n// and whether or not it was.\nfunc asciiToLower(s string) (lower string, ok bool) {\n\tif !isASCIIPrint(s) {\n\t\treturn \"\", false\n\t}\n\treturn strings.ToLower(s), true\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/internal/httpcommon/headermap.go",
    "content": "// Copyright 2025 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage httpcommon\n\nimport (\n\t\"net/textproto\"\n\t\"sync\"\n)\n\nvar (\n\tcommonBuildOnce   sync.Once\n\tcommonLowerHeader map[string]string // Go-Canonical-Case -> lower-case\n\tcommonCanonHeader map[string]string // lower-case -> Go-Canonical-Case\n)\n\nfunc buildCommonHeaderMapsOnce() {\n\tcommonBuildOnce.Do(buildCommonHeaderMaps)\n}\n\nfunc buildCommonHeaderMaps() {\n\tcommon := []string{\n\t\t\"accept\",\n\t\t\"accept-charset\",\n\t\t\"accept-encoding\",\n\t\t\"accept-language\",\n\t\t\"accept-ranges\",\n\t\t\"age\",\n\t\t\"access-control-allow-credentials\",\n\t\t\"access-control-allow-headers\",\n\t\t\"access-control-allow-methods\",\n\t\t\"access-control-allow-origin\",\n\t\t\"access-control-expose-headers\",\n\t\t\"access-control-max-age\",\n\t\t\"access-control-request-headers\",\n\t\t\"access-control-request-method\",\n\t\t\"allow\",\n\t\t\"authorization\",\n\t\t\"cache-control\",\n\t\t\"content-disposition\",\n\t\t\"content-encoding\",\n\t\t\"content-language\",\n\t\t\"content-length\",\n\t\t\"content-location\",\n\t\t\"content-range\",\n\t\t\"content-type\",\n\t\t\"cookie\",\n\t\t\"date\",\n\t\t\"etag\",\n\t\t\"expect\",\n\t\t\"expires\",\n\t\t\"from\",\n\t\t\"host\",\n\t\t\"if-match\",\n\t\t\"if-modified-since\",\n\t\t\"if-none-match\",\n\t\t\"if-unmodified-since\",\n\t\t\"last-modified\",\n\t\t\"link\",\n\t\t\"location\",\n\t\t\"max-forwards\",\n\t\t\"origin\",\n\t\t\"proxy-authenticate\",\n\t\t\"proxy-authorization\",\n\t\t\"range\",\n\t\t\"referer\",\n\t\t\"refresh\",\n\t\t\"retry-after\",\n\t\t\"server\",\n\t\t\"set-cookie\",\n\t\t\"strict-transport-security\",\n\t\t\"trailer\",\n\t\t\"transfer-encoding\",\n\t\t\"user-agent\",\n\t\t\"vary\",\n\t\t\"via\",\n\t\t\"www-authenticate\",\n\t\t\"x-forwarded-for\",\n\t\t\"x-forwarded-proto\",\n\t}\n\tcommonLowerHeader = make(map[string]string, len(common))\n\tcommonCanonHeader = make(map[string]string, len(common))\n\tfor _, v := range common {\n\t\tchk := textproto.CanonicalMIMEHeaderKey(v)\n\t\tcommonLowerHeader[chk] = v\n\t\tcommonCanonHeader[v] = chk\n\t}\n}\n\n// LowerHeader returns the lowercase form of a header name,\n// used on the wire for HTTP/2 and HTTP/3 requests.\nfunc LowerHeader(v string) (lower string, ascii bool) {\n\tbuildCommonHeaderMapsOnce()\n\tif s, ok := commonLowerHeader[v]; ok {\n\t\treturn s, true\n\t}\n\treturn asciiToLower(v)\n}\n\n// CanonicalHeader canonicalizes a header name. (For example, \"host\" becomes \"Host\".)\nfunc CanonicalHeader(v string) string {\n\tbuildCommonHeaderMapsOnce()\n\tif s, ok := commonCanonHeader[v]; ok {\n\t\treturn s\n\t}\n\treturn textproto.CanonicalMIMEHeaderKey(v)\n}\n\n// CachedCanonicalHeader returns the canonical form of a well-known header name.\nfunc CachedCanonicalHeader(v string) (string, bool) {\n\tbuildCommonHeaderMapsOnce()\n\ts, ok := commonCanonHeader[v]\n\treturn s, ok\n}\n"
  },
  {
    "path": "vendor/golang.org/x/net/internal/httpcommon/request.go",
    "content": "// Copyright 2025 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage httpcommon\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"net/http/httptrace\"\n\t\"net/textproto\"\n\t\"net/url\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"golang.org/x/net/http/httpguts\"\n\t\"golang.org/x/net/http2/hpack\"\n)\n\nvar (\n\tErrRequestHeaderListSize = errors.New(\"request header list larger than peer's advertised limit\")\n)\n\n// Request is a subset of http.Request.\n// It'd be simpler to pass an *http.Request, of course, but we can't depend on net/http\n// without creating a dependency cycle.\ntype Request struct {\n\tURL                 *url.URL\n\tMethod              string\n\tHost                string\n\tHeader              map[string][]string\n\tTrailer             map[string][]string\n\tActualContentLength int64 // 0 means 0, -1 means unknown\n}\n\n// EncodeHeadersParam is parameters to EncodeHeaders.\ntype EncodeHeadersParam struct {\n\tRequest Request\n\n\t// AddGzipHeader indicates that an \"accept-encoding: gzip\" header should be\n\t// added to the request.\n\tAddGzipHeader bool\n\n\t// PeerMaxHeaderListSize, when non-zero, is the peer's MAX_HEADER_LIST_SIZE setting.\n\tPeerMaxHeaderListSize uint64\n\n\t// DefaultUserAgent is the User-Agent header to send when the request\n\t// neither contains a User-Agent nor disables it.\n\tDefaultUserAgent string\n}\n\n// EncodeHeadersParam is the result of EncodeHeaders.\ntype EncodeHeadersResult struct {\n\tHasBody     bool\n\tHasTrailers bool\n}\n\n// EncodeHeaders constructs request headers common to HTTP/2 and HTTP/3.\n// It validates a request and calls headerf with each pseudo-header and header\n// for the request.\n// The headerf function is called with the validated, canonicalized header name.\nfunc EncodeHeaders(ctx context.Context, param EncodeHeadersParam, headerf func(name, value string)) (res EncodeHeadersResult, _ error) {\n\treq := param.Request\n\n\t// Check for invalid connection-level headers.\n\tif err := checkConnHeaders(req.Header); err != nil {\n\t\treturn res, err\n\t}\n\n\tif req.URL == nil {\n\t\treturn res, errors.New(\"Request.URL is nil\")\n\t}\n\n\thost := req.Host\n\tif host == \"\" {\n\t\thost = req.URL.Host\n\t}\n\thost, err := httpguts.PunycodeHostPort(host)\n\tif err != nil {\n\t\treturn res, err\n\t}\n\tif !httpguts.ValidHostHeader(host) {\n\t\treturn res, errors.New(\"invalid Host header\")\n\t}\n\n\t// isNormalConnect is true if this is a non-extended CONNECT request.\n\tisNormalConnect := false\n\tvar protocol string\n\tif vv := req.Header[\":protocol\"]; len(vv) > 0 {\n\t\tprotocol = vv[0]\n\t}\n\tif req.Method == \"CONNECT\" && protocol == \"\" {\n\t\tisNormalConnect = true\n\t} else if protocol != \"\" && req.Method != \"CONNECT\" {\n\t\treturn res, errors.New(\"invalid :protocol header in non-CONNECT request\")\n\t}\n\n\t// Validate the path, except for non-extended CONNECT requests which have no path.\n\tvar path string\n\tif !isNormalConnect {\n\t\tpath = req.URL.RequestURI()\n\t\tif !validPseudoPath(path) {\n\t\t\torig := path\n\t\t\tpath = strings.TrimPrefix(path, req.URL.Scheme+\"://\"+host)\n\t\t\tif !validPseudoPath(path) {\n\t\t\t\tif req.URL.Opaque != \"\" {\n\t\t\t\t\treturn res, fmt.Errorf(\"invalid request :path %q from URL.Opaque = %q\", orig, req.URL.Opaque)\n\t\t\t\t} else {\n\t\t\t\t\treturn res, fmt.Errorf(\"invalid request :path %q\", orig)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check for any invalid headers+trailers and return an error before we\n\t// potentially pollute our hpack state. (We want to be able to\n\t// continue to reuse the hpack encoder for future requests)\n\tif err := validateHeaders(req.Header); err != \"\" {\n\t\treturn res, fmt.Errorf(\"invalid HTTP header %s\", err)\n\t}\n\tif err := validateHeaders(req.Trailer); err != \"\" {\n\t\treturn res, fmt.Errorf(\"invalid HTTP trailer %s\", err)\n\t}\n\n\ttrailers, err := commaSeparatedTrailers(req.Trailer)\n\tif err != nil {\n\t\treturn res, err\n\t}\n\n\tenumerateHeaders := func(f func(name, value string)) {\n\t\t// 8.1.2.3 Request Pseudo-Header Fields\n\t\t// The :path pseudo-header field includes the path and query parts of the\n\t\t// target URI (the path-absolute production and optionally a '?' character\n\t\t// followed by the query production, see Sections 3.3 and 3.4 of\n\t\t// [RFC3986]).\n\t\tf(\":authority\", host)\n\t\tm := req.Method\n\t\tif m == \"\" {\n\t\t\tm = \"GET\"\n\t\t}\n\t\tf(\":method\", m)\n\t\tif !isNormalConnect {\n\t\t\tf(\":path\", path)\n\t\t\tf(\":scheme\", req.URL.Scheme)\n\t\t}\n\t\tif protocol != \"\" {\n\t\t\tf(\":protocol\", protocol)\n\t\t}\n\t\tif trailers != \"\" {\n\t\t\tf(\"trailer\", trailers)\n\t\t}\n\n\t\tvar didUA bool\n\t\tfor k, vv := range req.Header {\n\t\t\tif asciiEqualFold(k, \"host\") || asciiEqualFold(k, \"content-length\") {\n\t\t\t\t// Host is :authority, already sent.\n\t\t\t\t// Content-Length is automatic, set below.\n\t\t\t\tcontinue\n\t\t\t} else if asciiEqualFold(k, \"connection\") ||\n\t\t\t\tasciiEqualFold(k, \"proxy-connection\") ||\n\t\t\t\tasciiEqualFold(k, \"transfer-encoding\") ||\n\t\t\t\tasciiEqualFold(k, \"upgrade\") ||\n\t\t\t\tasciiEqualFold(k, \"keep-alive\") {\n\t\t\t\t// Per 8.1.2.2 Connection-Specific Header\n\t\t\t\t// Fields, don't send connection-specific\n\t\t\t\t// fields. We have already checked if any\n\t\t\t\t// are error-worthy so just ignore the rest.\n\t\t\t\tcontinue\n\t\t\t} else if asciiEqualFold(k, \"user-agent\") {\n\t\t\t\t// Match Go's http1 behavior: at most one\n\t\t\t\t// User-Agent. If set to nil or empty string,\n\t\t\t\t// then omit it. Otherwise if not mentioned,\n\t\t\t\t// include the default (below).\n\t\t\t\tdidUA = true\n\t\t\t\tif len(vv) < 1 {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tvv = vv[:1]\n\t\t\t\tif vv[0] == \"\" {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t} else if asciiEqualFold(k, \"cookie\") {\n\t\t\t\t// Per 8.1.2.5 To allow for better compression efficiency, the\n\t\t\t\t// Cookie header field MAY be split into separate header fields,\n\t\t\t\t// each with one or more cookie-pairs.\n\t\t\t\tfor _, v := range vv {\n\t\t\t\t\tfor {\n\t\t\t\t\t\tp := strings.IndexByte(v, ';')\n\t\t\t\t\t\tif p < 0 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\tf(\"cookie\", v[:p])\n\t\t\t\t\t\tp++\n\t\t\t\t\t\t// strip space after semicolon if any.\n\t\t\t\t\t\tfor p+1 <= len(v) && v[p] == ' ' {\n\t\t\t\t\t\t\tp++\n\t\t\t\t\t\t}\n\t\t\t\t\t\tv = v[p:]\n\t\t\t\t\t}\n\t\t\t\t\tif len(v) > 0 {\n\t\t\t\t\t\tf(\"cookie\", v)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t} else if k == \":protocol\" {\n\t\t\t\t// :protocol pseudo-header was already sent above.\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tfor _, v := range vv {\n\t\t\t\tf(k, v)\n\t\t\t}\n\t\t}\n\t\tif shouldSendReqContentLength(req.Method, req.ActualContentLength) {\n\t\t\tf(\"content-length\", strconv.FormatInt(req.ActualContentLength, 10))\n\t\t}\n\t\tif param.AddGzipHeader {\n\t\t\tf(\"accept-encoding\", \"gzip\")\n\t\t}\n\t\tif !didUA {\n\t\t\tf(\"user-agent\", param.DefaultUserAgent)\n\t\t}\n\t}\n\n\t// Do a first pass over the headers counting bytes to ensure\n\t// we don't exceed cc.peerMaxHeaderListSize. This is done as a\n\t// separate pass before encoding the headers to prevent\n\t// modifying the hpack state.\n\tif param.PeerMaxHeaderListSize > 0 {\n\t\thlSize := uint64(0)\n\t\tenumerateHeaders(func(name, value string) {\n\t\t\thf := hpack.HeaderField{Name: name, Value: value}\n\t\t\thlSize += uint64(hf.Size())\n\t\t})\n\n\t\tif hlSize > param.PeerMaxHeaderListSize {\n\t\t\treturn res, ErrRequestHeaderListSize\n\t\t}\n\t}\n\n\ttrace := httptrace.ContextClientTrace(ctx)\n\n\t// Header list size is ok. Write the headers.\n\tenumerateHeaders(func(name, value string) {\n\t\tname, ascii := LowerHeader(name)\n\t\tif !ascii {\n\t\t\t// Skip writing invalid headers. Per RFC 7540, Section 8.1.2, header\n\t\t\t// field names have to be ASCII characters (just as in HTTP/1.x).\n\t\t\treturn\n\t\t}\n\n\t\theaderf(name, value)\n\n\t\tif trace != nil && trace.WroteHeaderField != nil {\n\t\t\ttrace.WroteHeaderField(name, []string{value})\n\t\t}\n\t})\n\n\tres.HasBody = req.ActualContentLength != 0\n\tres.HasTrailers = trailers != \"\"\n\treturn res, nil\n}\n\n// IsRequestGzip reports whether we should add an Accept-Encoding: gzip header\n// for a request.\nfunc IsRequestGzip(method string, header map[string][]string, disableCompression bool) bool {\n\t// TODO(bradfitz): this is a copy of the logic in net/http. Unify somewhere?\n\tif !disableCompression &&\n\t\tlen(header[\"Accept-Encoding\"]) == 0 &&\n\t\tlen(header[\"Range\"]) == 0 &&\n\t\tmethod != \"HEAD\" {\n\t\t// Request gzip only, not deflate. Deflate is ambiguous and\n\t\t// not as universally supported anyway.\n\t\t// See: https://zlib.net/zlib_faq.html#faq39\n\t\t//\n\t\t// Note that we don't request this for HEAD requests,\n\t\t// due to a bug in nginx:\n\t\t//   http://trac.nginx.org/nginx/ticket/358\n\t\t//   https://golang.org/issue/5522\n\t\t//\n\t\t// We don't request gzip if the request is for a range, since\n\t\t// auto-decoding a portion of a gzipped document will just fail\n\t\t// anyway. See https://golang.org/issue/8923\n\t\treturn true\n\t}\n\treturn false\n}\n\n// checkConnHeaders checks whether req has any invalid connection-level headers.\n//\n// https://www.rfc-editor.org/rfc/rfc9114.html#section-4.2-3\n// https://www.rfc-editor.org/rfc/rfc9113.html#section-8.2.2-1\n//\n// Certain headers are special-cased as okay but not transmitted later.\n// For example, we allow \"Transfer-Encoding: chunked\", but drop the header when encoding.\nfunc checkConnHeaders(h map[string][]string) error {\n\tif vv := h[\"Upgrade\"]; len(vv) > 0 && (vv[0] != \"\" && vv[0] != \"chunked\") {\n\t\treturn fmt.Errorf(\"invalid Upgrade request header: %q\", vv)\n\t}\n\tif vv := h[\"Transfer-Encoding\"]; len(vv) > 0 && (len(vv) > 1 || vv[0] != \"\" && vv[0] != \"chunked\") {\n\t\treturn fmt.Errorf(\"invalid Transfer-Encoding request header: %q\", vv)\n\t}\n\tif vv := h[\"Connection\"]; len(vv) > 0 && (len(vv) > 1 || vv[0] != \"\" && !asciiEqualFold(vv[0], \"close\") && !asciiEqualFold(vv[0], \"keep-alive\")) {\n\t\treturn fmt.Errorf(\"invalid Connection request header: %q\", vv)\n\t}\n\treturn nil\n}\n\nfunc commaSeparatedTrailers(trailer map[string][]string) (string, error) {\n\tkeys := make([]string, 0, len(trailer))\n\tfor k := range trailer {\n\t\tk = CanonicalHeader(k)\n\t\tswitch k {\n\t\tcase \"Transfer-Encoding\", \"Trailer\", \"Content-Length\":\n\t\t\treturn \"\", fmt.Errorf(\"invalid Trailer key %q\", k)\n\t\t}\n\t\tkeys = append(keys, k)\n\t}\n\tif len(keys) > 0 {\n\t\tsort.Strings(keys)\n\t\treturn strings.Join(keys, \",\"), nil\n\t}\n\treturn \"\", nil\n}\n\n// validPseudoPath reports whether v is a valid :path pseudo-header\n// value. It must be either:\n//\n//   - a non-empty string starting with '/'\n//   - the string '*', for OPTIONS requests.\n//\n// For now this is only used a quick check for deciding when to clean\n// up Opaque URLs before sending requests from the Transport.\n// See golang.org/issue/16847\n//\n// We used to enforce that the path also didn't start with \"//\", but\n// Google's GFE accepts such paths and Chrome sends them, so ignore\n// that part of the spec. See golang.org/issue/19103.\nfunc validPseudoPath(v string) bool {\n\treturn (len(v) > 0 && v[0] == '/') || v == \"*\"\n}\n\nfunc validateHeaders(hdrs map[string][]string) string {\n\tfor k, vv := range hdrs {\n\t\tif !httpguts.ValidHeaderFieldName(k) && k != \":protocol\" {\n\t\t\treturn fmt.Sprintf(\"name %q\", k)\n\t\t}\n\t\tfor _, v := range vv {\n\t\t\tif !httpguts.ValidHeaderFieldValue(v) {\n\t\t\t\t// Don't include the value in the error,\n\t\t\t\t// because it may be sensitive.\n\t\t\t\treturn fmt.Sprintf(\"value for header %q\", k)\n\t\t\t}\n\t\t}\n\t}\n\treturn \"\"\n}\n\n// shouldSendReqContentLength reports whether we should send\n// a \"content-length\" request header. This logic is basically a copy of the net/http\n// transferWriter.shouldSendContentLength.\n// The contentLength is the corrected contentLength (so 0 means actually 0, not unknown).\n// -1 means unknown.\nfunc shouldSendReqContentLength(method string, contentLength int64) bool {\n\tif contentLength > 0 {\n\t\treturn true\n\t}\n\tif contentLength < 0 {\n\t\treturn false\n\t}\n\t// For zero bodies, whether we send a content-length depends on the method.\n\t// It also kinda doesn't matter for http2 either way, with END_STREAM.\n\tswitch method {\n\tcase \"POST\", \"PUT\", \"PATCH\":\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\n// ServerRequestParam is parameters to NewServerRequest.\ntype ServerRequestParam struct {\n\tMethod                  string\n\tScheme, Authority, Path string\n\tProtocol                string\n\tHeader                  map[string][]string\n}\n\n// ServerRequestResult is the result of NewServerRequest.\ntype ServerRequestResult struct {\n\t// Various http.Request fields.\n\tURL        *url.URL\n\tRequestURI string\n\tTrailer    map[string][]string\n\n\tNeedsContinue bool // client provided an \"Expect: 100-continue\" header\n\n\t// If the request should be rejected, this is a short string suitable for passing\n\t// to the http2 package's CountError function.\n\t// It might be a bit odd to return errors this way rather than returing an error,\n\t// but this ensures we don't forget to include a CountError reason.\n\tInvalidReason string\n}\n\nfunc NewServerRequest(rp ServerRequestParam) ServerRequestResult {\n\tneedsContinue := httpguts.HeaderValuesContainsToken(rp.Header[\"Expect\"], \"100-continue\")\n\tif needsContinue {\n\t\tdelete(rp.Header, \"Expect\")\n\t}\n\t// Merge Cookie headers into one \"; \"-delimited value.\n\tif cookies := rp.Header[\"Cookie\"]; len(cookies) > 1 {\n\t\trp.Header[\"Cookie\"] = []string{strings.Join(cookies, \"; \")}\n\t}\n\n\t// Setup Trailers\n\tvar trailer map[string][]string\n\tfor _, v := range rp.Header[\"Trailer\"] {\n\t\tfor _, key := range strings.Split(v, \",\") {\n\t\t\tkey = textproto.CanonicalMIMEHeaderKey(textproto.TrimString(key))\n\t\t\tswitch key {\n\t\t\tcase \"Transfer-Encoding\", \"Trailer\", \"Content-Length\":\n\t\t\t\t// Bogus. (copy of http1 rules)\n\t\t\t\t// Ignore.\n\t\t\tdefault:\n\t\t\t\tif trailer == nil {\n\t\t\t\t\ttrailer = make(map[string][]string)\n\t\t\t\t}\n\t\t\t\ttrailer[key] = nil\n\t\t\t}\n\t\t}\n\t}\n\tdelete(rp.Header, \"Trailer\")\n\n\t// \"':authority' MUST NOT include the deprecated userinfo subcomponent\n\t// for \"http\" or \"https\" schemed URIs.\"\n\t// https://www.rfc-editor.org/rfc/rfc9113.html#section-8.3.1-2.3.8\n\tif strings.IndexByte(rp.Authority, '@') != -1 && (rp.Scheme == \"http\" || rp.Scheme == \"https\") {\n\t\treturn ServerRequestResult{\n\t\t\tInvalidReason: \"userinfo_in_authority\",\n\t\t}\n\t}\n\n\tvar url_ *url.URL\n\tvar requestURI string\n\tif rp.Method == \"CONNECT\" && rp.Protocol == \"\" {\n\t\turl_ = &url.URL{Host: rp.Authority}\n\t\trequestURI = rp.Authority // mimic HTTP/1 server behavior\n\t} else {\n\t\tvar err error\n\t\turl_, err = url.ParseRequestURI(rp.Path)\n\t\tif err != nil {\n\t\t\treturn ServerRequestResult{\n\t\t\t\tInvalidReason: \"bad_path\",\n\t\t\t}\n\t\t}\n\t\trequestURI = rp.Path\n\t}\n\n\treturn ServerRequestResult{\n\t\tURL:           url_,\n\t\tNeedsContinue: needsContinue,\n\t\tRequestURI:    requestURI,\n\t\tTrailer:       trailer,\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/oauth2/.travis.yml",
    "content": "language: go\n\ngo:\n  - tip\n\ninstall:\n  - export GOPATH=\"$HOME/gopath\"\n  - mkdir -p \"$GOPATH/src/golang.org/x\"\n  - mv \"$TRAVIS_BUILD_DIR\" \"$GOPATH/src/golang.org/x/oauth2\"\n  - go get -v -t -d golang.org/x/oauth2/...\n\nscript:\n  - go test -v golang.org/x/oauth2/...\n"
  },
  {
    "path": "vendor/golang.org/x/oauth2/CONTRIBUTING.md",
    "content": "# Contributing to Go\n\nGo is an open source project.\n\nIt is the work of hundreds of contributors. We appreciate your help!\n\n## Filing issues\n\nWhen [filing an issue](https://github.com/golang/oauth2/issues), make sure to answer these five questions:\n\n1.  What version of Go are you using (`go version`)?\n2.  What operating system and processor architecture are you using?\n3.  What did you do?\n4.  What did you expect to see?\n5.  What did you see instead?\n\nGeneral questions should go to the [golang-nuts mailing list](https://groups.google.com/group/golang-nuts) instead of the issue tracker.\nThe gophers there will answer or ask you to file an issue if you've tripped over a bug.\n\n## Contributing code\n\nPlease read the [Contribution Guidelines](https://golang.org/doc/contribute.html)\nbefore sending patches.\n\nUnless otherwise noted, the Go source files are distributed under\nthe BSD-style license found in the LICENSE file.\n"
  },
  {
    "path": "vendor/golang.org/x/oauth2/LICENSE",
    "content": "Copyright 2009 The Go Authors.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google LLC nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/golang.org/x/oauth2/README.md",
    "content": "# OAuth2 for Go\n\n[![Go Reference](https://pkg.go.dev/badge/golang.org/x/oauth2.svg)](https://pkg.go.dev/golang.org/x/oauth2)\n[![Build Status](https://travis-ci.org/golang/oauth2.svg?branch=master)](https://travis-ci.org/golang/oauth2)\n\noauth2 package contains a client implementation for OAuth 2.0 spec.\n\n## Installation\n\n~~~~\ngo get golang.org/x/oauth2\n~~~~\n\nOr you can manually git clone the repository to\n`$(go env GOPATH)/src/golang.org/x/oauth2`.\n\nSee pkg.go.dev for further documentation and examples.\n\n* [pkg.go.dev/golang.org/x/oauth2](https://pkg.go.dev/golang.org/x/oauth2)\n* [pkg.go.dev/golang.org/x/oauth2/google](https://pkg.go.dev/golang.org/x/oauth2/google)\n\n## Policy for new endpoints\n\nWe no longer accept new provider-specific packages in this repo if all\nthey do is add a single endpoint variable. If you just want to add a\nsingle endpoint, add it to the\n[pkg.go.dev/golang.org/x/oauth2/endpoints](https://pkg.go.dev/golang.org/x/oauth2/endpoints)\npackage.\n\n## Report Issues / Send Patches\n\nThe main issue tracker for the oauth2 repository is located at\nhttps://github.com/golang/oauth2/issues.\n\nThis repository uses Gerrit for code changes. To learn how to submit changes to\nthis repository, see https://golang.org/doc/contribute.html. In particular:\n\n* Excluding trivial changes, all contributions should be connected to an existing issue.\n* API changes must go through the [change proposal process](https://go.dev/s/proposal-process) before they can be accepted.\n* The code owners are listed at [dev.golang.org/owners](https://dev.golang.org/owners#:~:text=x/oauth2).\n"
  },
  {
    "path": "vendor/golang.org/x/oauth2/deviceauth.go",
    "content": "package oauth2\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"strings\"\n\t\"time\"\n\n\t\"golang.org/x/oauth2/internal\"\n)\n\n// https://datatracker.ietf.org/doc/html/rfc8628#section-3.5\nconst (\n\terrAuthorizationPending = \"authorization_pending\"\n\terrSlowDown             = \"slow_down\"\n\terrAccessDenied         = \"access_denied\"\n\terrExpiredToken         = \"expired_token\"\n)\n\n// DeviceAuthResponse describes a successful RFC 8628 Device Authorization Response\n// https://datatracker.ietf.org/doc/html/rfc8628#section-3.2\ntype DeviceAuthResponse struct {\n\t// DeviceCode\n\tDeviceCode string `json:\"device_code\"`\n\t// UserCode is the code the user should enter at the verification uri\n\tUserCode string `json:\"user_code\"`\n\t// VerificationURI is where user should enter the user code\n\tVerificationURI string `json:\"verification_uri\"`\n\t// VerificationURIComplete (if populated) includes the user code in the verification URI. This is typically shown to the user in non-textual form, such as a QR code.\n\tVerificationURIComplete string `json:\"verification_uri_complete,omitempty\"`\n\t// Expiry is when the device code and user code expire\n\tExpiry time.Time `json:\"expires_in,omitempty\"`\n\t// Interval is the duration in seconds that Poll should wait between requests\n\tInterval int64 `json:\"interval,omitempty\"`\n}\n\nfunc (d DeviceAuthResponse) MarshalJSON() ([]byte, error) {\n\ttype Alias DeviceAuthResponse\n\tvar expiresIn int64\n\tif !d.Expiry.IsZero() {\n\t\texpiresIn = int64(time.Until(d.Expiry).Seconds())\n\t}\n\treturn json.Marshal(&struct {\n\t\tExpiresIn int64 `json:\"expires_in,omitempty\"`\n\t\t*Alias\n\t}{\n\t\tExpiresIn: expiresIn,\n\t\tAlias:     (*Alias)(&d),\n\t})\n\n}\n\nfunc (c *DeviceAuthResponse) UnmarshalJSON(data []byte) error {\n\ttype Alias DeviceAuthResponse\n\taux := &struct {\n\t\tExpiresIn int64 `json:\"expires_in\"`\n\t\t// workaround misspelling of verification_uri\n\t\tVerificationURL string `json:\"verification_url\"`\n\t\t*Alias\n\t}{\n\t\tAlias: (*Alias)(c),\n\t}\n\tif err := json.Unmarshal(data, &aux); err != nil {\n\t\treturn err\n\t}\n\tif aux.ExpiresIn != 0 {\n\t\tc.Expiry = time.Now().UTC().Add(time.Second * time.Duration(aux.ExpiresIn))\n\t}\n\tif c.VerificationURI == \"\" {\n\t\tc.VerificationURI = aux.VerificationURL\n\t}\n\treturn nil\n}\n\n// DeviceAuth returns a device auth struct which contains a device code\n// and authorization information provided for users to enter on another device.\nfunc (c *Config) DeviceAuth(ctx context.Context, opts ...AuthCodeOption) (*DeviceAuthResponse, error) {\n\t// https://datatracker.ietf.org/doc/html/rfc8628#section-3.1\n\tv := url.Values{\n\t\t\"client_id\": {c.ClientID},\n\t}\n\tif len(c.Scopes) > 0 {\n\t\tv.Set(\"scope\", strings.Join(c.Scopes, \" \"))\n\t}\n\tfor _, opt := range opts {\n\t\topt.setValue(v)\n\t}\n\treturn retrieveDeviceAuth(ctx, c, v)\n}\n\nfunc retrieveDeviceAuth(ctx context.Context, c *Config, v url.Values) (*DeviceAuthResponse, error) {\n\tif c.Endpoint.DeviceAuthURL == \"\" {\n\t\treturn nil, errors.New(\"endpoint missing DeviceAuthURL\")\n\t}\n\n\treq, err := http.NewRequest(\"POST\", c.Endpoint.DeviceAuthURL, strings.NewReader(v.Encode()))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treq.Header.Set(\"Content-Type\", \"application/x-www-form-urlencoded\")\n\treq.Header.Set(\"Accept\", \"application/json\")\n\n\tt := time.Now()\n\tr, err := internal.ContextClient(ctx).Do(req)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tbody, err := io.ReadAll(io.LimitReader(r.Body, 1<<20))\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"oauth2: cannot auth device: %v\", err)\n\t}\n\tif code := r.StatusCode; code < 200 || code > 299 {\n\t\treturn nil, &RetrieveError{\n\t\t\tResponse: r,\n\t\t\tBody:     body,\n\t\t}\n\t}\n\n\tda := &DeviceAuthResponse{}\n\terr = json.Unmarshal(body, &da)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"unmarshal %s\", err)\n\t}\n\n\tif !da.Expiry.IsZero() {\n\t\t// Make a small adjustment to account for time taken by the request\n\t\tda.Expiry = da.Expiry.Add(-time.Since(t))\n\t}\n\n\treturn da, nil\n}\n\n// DeviceAccessToken polls the server to exchange a device code for a token.\nfunc (c *Config) DeviceAccessToken(ctx context.Context, da *DeviceAuthResponse, opts ...AuthCodeOption) (*Token, error) {\n\tif !da.Expiry.IsZero() {\n\t\tvar cancel context.CancelFunc\n\t\tctx, cancel = context.WithDeadline(ctx, da.Expiry)\n\t\tdefer cancel()\n\t}\n\n\t// https://datatracker.ietf.org/doc/html/rfc8628#section-3.4\n\tv := url.Values{\n\t\t\"client_id\":   {c.ClientID},\n\t\t\"grant_type\":  {\"urn:ietf:params:oauth:grant-type:device_code\"},\n\t\t\"device_code\": {da.DeviceCode},\n\t}\n\tif len(c.Scopes) > 0 {\n\t\tv.Set(\"scope\", strings.Join(c.Scopes, \" \"))\n\t}\n\tfor _, opt := range opts {\n\t\topt.setValue(v)\n\t}\n\n\t// \"If no value is provided, clients MUST use 5 as the default.\"\n\t// https://datatracker.ietf.org/doc/html/rfc8628#section-3.2\n\tinterval := da.Interval\n\tif interval == 0 {\n\t\tinterval = 5\n\t}\n\n\tticker := time.NewTicker(time.Duration(interval) * time.Second)\n\tdefer ticker.Stop()\n\tfor {\n\t\tselect {\n\t\tcase <-ctx.Done():\n\t\t\treturn nil, ctx.Err()\n\t\tcase <-ticker.C:\n\t\t\ttok, err := retrieveToken(ctx, c, v)\n\t\t\tif err == nil {\n\t\t\t\treturn tok, nil\n\t\t\t}\n\n\t\t\te, ok := err.(*RetrieveError)\n\t\t\tif !ok {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tswitch e.ErrorCode {\n\t\t\tcase errSlowDown:\n\t\t\t\t// https://datatracker.ietf.org/doc/html/rfc8628#section-3.5\n\t\t\t\t// \"the interval MUST be increased by 5 seconds for this and all subsequent requests\"\n\t\t\t\tinterval += 5\n\t\t\t\tticker.Reset(time.Duration(interval) * time.Second)\n\t\t\tcase errAuthorizationPending:\n\t\t\t\t// Do nothing.\n\t\t\tcase errAccessDenied, errExpiredToken:\n\t\t\t\tfallthrough\n\t\t\tdefault:\n\t\t\t\treturn tok, err\n\t\t\t}\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/oauth2/internal/doc.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package internal contains support packages for oauth2 package.\npackage internal\n"
  },
  {
    "path": "vendor/golang.org/x/oauth2/internal/oauth2.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage internal\n\nimport (\n\t\"crypto/rsa\"\n\t\"crypto/x509\"\n\t\"encoding/pem\"\n\t\"errors\"\n\t\"fmt\"\n)\n\n// ParseKey converts the binary contents of a private key file\n// to an *rsa.PrivateKey. It detects whether the private key is in a\n// PEM container or not. If so, it extracts the private key\n// from PEM container before conversion. It only supports PEM\n// containers with no passphrase.\nfunc ParseKey(key []byte) (*rsa.PrivateKey, error) {\n\tblock, _ := pem.Decode(key)\n\tif block != nil {\n\t\tkey = block.Bytes\n\t}\n\tparsedKey, err := x509.ParsePKCS8PrivateKey(key)\n\tif err != nil {\n\t\tparsedKey, err = x509.ParsePKCS1PrivateKey(key)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"private key should be a PEM or plain PKCS1 or PKCS8; parse error: %v\", err)\n\t\t}\n\t}\n\tparsed, ok := parsedKey.(*rsa.PrivateKey)\n\tif !ok {\n\t\treturn nil, errors.New(\"private key is invalid\")\n\t}\n\treturn parsed, nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/oauth2/internal/token.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage internal\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"math\"\n\t\"mime\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"time\"\n)\n\n// Token represents the credentials used to authorize\n// the requests to access protected resources on the OAuth 2.0\n// provider's backend.\n//\n// This type is a mirror of oauth2.Token and exists to break\n// an otherwise-circular dependency. Other internal packages\n// should convert this Token into an oauth2.Token before use.\ntype Token struct {\n\t// AccessToken is the token that authorizes and authenticates\n\t// the requests.\n\tAccessToken string\n\n\t// TokenType is the type of token.\n\t// The Type method returns either this or \"Bearer\", the default.\n\tTokenType string\n\n\t// RefreshToken is a token that's used by the application\n\t// (as opposed to the user) to refresh the access token\n\t// if it expires.\n\tRefreshToken string\n\n\t// Expiry is the optional expiration time of the access token.\n\t//\n\t// If zero, TokenSource implementations will reuse the same\n\t// token forever and RefreshToken or equivalent\n\t// mechanisms for that TokenSource will not be used.\n\tExpiry time.Time\n\n\t// Raw optionally contains extra metadata from the server\n\t// when updating a token.\n\tRaw interface{}\n}\n\n// tokenJSON is the struct representing the HTTP response from OAuth2\n// providers returning a token or error in JSON form.\n// https://datatracker.ietf.org/doc/html/rfc6749#section-5.1\ntype tokenJSON struct {\n\tAccessToken  string         `json:\"access_token\"`\n\tTokenType    string         `json:\"token_type\"`\n\tRefreshToken string         `json:\"refresh_token\"`\n\tExpiresIn    expirationTime `json:\"expires_in\"` // at least PayPal returns string, while most return number\n\t// error fields\n\t// https://datatracker.ietf.org/doc/html/rfc6749#section-5.2\n\tErrorCode        string `json:\"error\"`\n\tErrorDescription string `json:\"error_description\"`\n\tErrorURI         string `json:\"error_uri\"`\n}\n\nfunc (e *tokenJSON) expiry() (t time.Time) {\n\tif v := e.ExpiresIn; v != 0 {\n\t\treturn time.Now().Add(time.Duration(v) * time.Second)\n\t}\n\treturn\n}\n\ntype expirationTime int32\n\nfunc (e *expirationTime) UnmarshalJSON(b []byte) error {\n\tif len(b) == 0 || string(b) == \"null\" {\n\t\treturn nil\n\t}\n\tvar n json.Number\n\terr := json.Unmarshal(b, &n)\n\tif err != nil {\n\t\treturn err\n\t}\n\ti, err := n.Int64()\n\tif err != nil {\n\t\treturn err\n\t}\n\tif i > math.MaxInt32 {\n\t\ti = math.MaxInt32\n\t}\n\t*e = expirationTime(i)\n\treturn nil\n}\n\n// RegisterBrokenAuthHeaderProvider previously did something. It is now a no-op.\n//\n// Deprecated: this function no longer does anything. Caller code that\n// wants to avoid potential extra HTTP requests made during\n// auto-probing of the provider's auth style should set\n// Endpoint.AuthStyle.\nfunc RegisterBrokenAuthHeaderProvider(tokenURL string) {}\n\n// AuthStyle is a copy of the golang.org/x/oauth2 package's AuthStyle type.\ntype AuthStyle int\n\nconst (\n\tAuthStyleUnknown  AuthStyle = 0\n\tAuthStyleInParams AuthStyle = 1\n\tAuthStyleInHeader AuthStyle = 2\n)\n\n// LazyAuthStyleCache is a backwards compatibility compromise to let Configs\n// have a lazily-initialized AuthStyleCache.\n//\n// The two users of this, oauth2.Config and oauth2/clientcredentials.Config,\n// both would ideally just embed an unexported AuthStyleCache but because both\n// were historically allowed to be copied by value we can't retroactively add an\n// uncopyable Mutex to them.\n//\n// We could use an atomic.Pointer, but that was added recently enough (in Go\n// 1.18) that we'd break Go 1.17 users where the tests as of 2023-08-03\n// still pass. By using an atomic.Value, it supports both Go 1.17 and\n// copying by value, even if that's not ideal.\ntype LazyAuthStyleCache struct {\n\tv atomic.Value // of *AuthStyleCache\n}\n\nfunc (lc *LazyAuthStyleCache) Get() *AuthStyleCache {\n\tif c, ok := lc.v.Load().(*AuthStyleCache); ok {\n\t\treturn c\n\t}\n\tc := new(AuthStyleCache)\n\tif !lc.v.CompareAndSwap(nil, c) {\n\t\tc = lc.v.Load().(*AuthStyleCache)\n\t}\n\treturn c\n}\n\n// AuthStyleCache is the set of tokenURLs we've successfully used via\n// RetrieveToken and which style auth we ended up using.\n// It's called a cache, but it doesn't (yet?) shrink. It's expected that\n// the set of OAuth2 servers a program contacts over time is fixed and\n// small.\ntype AuthStyleCache struct {\n\tmu sync.Mutex\n\tm  map[string]AuthStyle // keyed by tokenURL\n}\n\n// lookupAuthStyle reports which auth style we last used with tokenURL\n// when calling RetrieveToken and whether we have ever done so.\nfunc (c *AuthStyleCache) lookupAuthStyle(tokenURL string) (style AuthStyle, ok bool) {\n\tc.mu.Lock()\n\tdefer c.mu.Unlock()\n\tstyle, ok = c.m[tokenURL]\n\treturn\n}\n\n// setAuthStyle adds an entry to authStyleCache, documented above.\nfunc (c *AuthStyleCache) setAuthStyle(tokenURL string, v AuthStyle) {\n\tc.mu.Lock()\n\tdefer c.mu.Unlock()\n\tif c.m == nil {\n\t\tc.m = make(map[string]AuthStyle)\n\t}\n\tc.m[tokenURL] = v\n}\n\n// newTokenRequest returns a new *http.Request to retrieve a new token\n// from tokenURL using the provided clientID, clientSecret, and POST\n// body parameters.\n//\n// inParams is whether the clientID & clientSecret should be encoded\n// as the POST body. An 'inParams' value of true means to send it in\n// the POST body (along with any values in v); false means to send it\n// in the Authorization header.\nfunc newTokenRequest(tokenURL, clientID, clientSecret string, v url.Values, authStyle AuthStyle) (*http.Request, error) {\n\tif authStyle == AuthStyleInParams {\n\t\tv = cloneURLValues(v)\n\t\tif clientID != \"\" {\n\t\t\tv.Set(\"client_id\", clientID)\n\t\t}\n\t\tif clientSecret != \"\" {\n\t\t\tv.Set(\"client_secret\", clientSecret)\n\t\t}\n\t}\n\treq, err := http.NewRequest(\"POST\", tokenURL, strings.NewReader(v.Encode()))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treq.Header.Set(\"Content-Type\", \"application/x-www-form-urlencoded\")\n\tif authStyle == AuthStyleInHeader {\n\t\treq.SetBasicAuth(url.QueryEscape(clientID), url.QueryEscape(clientSecret))\n\t}\n\treturn req, nil\n}\n\nfunc cloneURLValues(v url.Values) url.Values {\n\tv2 := make(url.Values, len(v))\n\tfor k, vv := range v {\n\t\tv2[k] = append([]string(nil), vv...)\n\t}\n\treturn v2\n}\n\nfunc RetrieveToken(ctx context.Context, clientID, clientSecret, tokenURL string, v url.Values, authStyle AuthStyle, styleCache *AuthStyleCache) (*Token, error) {\n\tneedsAuthStyleProbe := authStyle == 0\n\tif needsAuthStyleProbe {\n\t\tif style, ok := styleCache.lookupAuthStyle(tokenURL); ok {\n\t\t\tauthStyle = style\n\t\t\tneedsAuthStyleProbe = false\n\t\t} else {\n\t\t\tauthStyle = AuthStyleInHeader // the first way we'll try\n\t\t}\n\t}\n\treq, err := newTokenRequest(tokenURL, clientID, clientSecret, v, authStyle)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\ttoken, err := doTokenRoundTrip(ctx, req)\n\tif err != nil && needsAuthStyleProbe {\n\t\t// If we get an error, assume the server wants the\n\t\t// clientID & clientSecret in a different form.\n\t\t// See https://code.google.com/p/goauth2/issues/detail?id=31 for background.\n\t\t// In summary:\n\t\t// - Reddit only accepts client secret in the Authorization header\n\t\t// - Dropbox accepts either it in URL param or Auth header, but not both.\n\t\t// - Google only accepts URL param (not spec compliant?), not Auth header\n\t\t// - Stripe only accepts client secret in Auth header with Bearer method, not Basic\n\t\t//\n\t\t// We used to maintain a big table in this code of all the sites and which way\n\t\t// they went, but maintaining it didn't scale & got annoying.\n\t\t// So just try both ways.\n\t\tauthStyle = AuthStyleInParams // the second way we'll try\n\t\treq, _ = newTokenRequest(tokenURL, clientID, clientSecret, v, authStyle)\n\t\ttoken, err = doTokenRoundTrip(ctx, req)\n\t}\n\tif needsAuthStyleProbe && err == nil {\n\t\tstyleCache.setAuthStyle(tokenURL, authStyle)\n\t}\n\t// Don't overwrite `RefreshToken` with an empty value\n\t// if this was a token refreshing request.\n\tif token != nil && token.RefreshToken == \"\" {\n\t\ttoken.RefreshToken = v.Get(\"refresh_token\")\n\t}\n\treturn token, err\n}\n\nfunc doTokenRoundTrip(ctx context.Context, req *http.Request) (*Token, error) {\n\tr, err := ContextClient(ctx).Do(req.WithContext(ctx))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tbody, err := ioutil.ReadAll(io.LimitReader(r.Body, 1<<20))\n\tr.Body.Close()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"oauth2: cannot fetch token: %v\", err)\n\t}\n\n\tfailureStatus := r.StatusCode < 200 || r.StatusCode > 299\n\tretrieveError := &RetrieveError{\n\t\tResponse: r,\n\t\tBody:     body,\n\t\t// attempt to populate error detail below\n\t}\n\n\tvar token *Token\n\tcontent, _, _ := mime.ParseMediaType(r.Header.Get(\"Content-Type\"))\n\tswitch content {\n\tcase \"application/x-www-form-urlencoded\", \"text/plain\":\n\t\t// some endpoints return a query string\n\t\tvals, err := url.ParseQuery(string(body))\n\t\tif err != nil {\n\t\t\tif failureStatus {\n\t\t\t\treturn nil, retrieveError\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"oauth2: cannot parse response: %v\", err)\n\t\t}\n\t\tretrieveError.ErrorCode = vals.Get(\"error\")\n\t\tretrieveError.ErrorDescription = vals.Get(\"error_description\")\n\t\tretrieveError.ErrorURI = vals.Get(\"error_uri\")\n\t\ttoken = &Token{\n\t\t\tAccessToken:  vals.Get(\"access_token\"),\n\t\t\tTokenType:    vals.Get(\"token_type\"),\n\t\t\tRefreshToken: vals.Get(\"refresh_token\"),\n\t\t\tRaw:          vals,\n\t\t}\n\t\te := vals.Get(\"expires_in\")\n\t\texpires, _ := strconv.Atoi(e)\n\t\tif expires != 0 {\n\t\t\ttoken.Expiry = time.Now().Add(time.Duration(expires) * time.Second)\n\t\t}\n\tdefault:\n\t\tvar tj tokenJSON\n\t\tif err = json.Unmarshal(body, &tj); err != nil {\n\t\t\tif failureStatus {\n\t\t\t\treturn nil, retrieveError\n\t\t\t}\n\t\t\treturn nil, fmt.Errorf(\"oauth2: cannot parse json: %v\", err)\n\t\t}\n\t\tretrieveError.ErrorCode = tj.ErrorCode\n\t\tretrieveError.ErrorDescription = tj.ErrorDescription\n\t\tretrieveError.ErrorURI = tj.ErrorURI\n\t\ttoken = &Token{\n\t\t\tAccessToken:  tj.AccessToken,\n\t\t\tTokenType:    tj.TokenType,\n\t\t\tRefreshToken: tj.RefreshToken,\n\t\t\tExpiry:       tj.expiry(),\n\t\t\tRaw:          make(map[string]interface{}),\n\t\t}\n\t\tjson.Unmarshal(body, &token.Raw) // no error checks for optional fields\n\t}\n\t// according to spec, servers should respond status 400 in error case\n\t// https://www.rfc-editor.org/rfc/rfc6749#section-5.2\n\t// but some unorthodox servers respond 200 in error case\n\tif failureStatus || retrieveError.ErrorCode != \"\" {\n\t\treturn nil, retrieveError\n\t}\n\tif token.AccessToken == \"\" {\n\t\treturn nil, errors.New(\"oauth2: server response missing access_token\")\n\t}\n\treturn token, nil\n}\n\n// mirrors oauth2.RetrieveError\ntype RetrieveError struct {\n\tResponse         *http.Response\n\tBody             []byte\n\tErrorCode        string\n\tErrorDescription string\n\tErrorURI         string\n}\n\nfunc (r *RetrieveError) Error() string {\n\tif r.ErrorCode != \"\" {\n\t\ts := fmt.Sprintf(\"oauth2: %q\", r.ErrorCode)\n\t\tif r.ErrorDescription != \"\" {\n\t\t\ts += fmt.Sprintf(\" %q\", r.ErrorDescription)\n\t\t}\n\t\tif r.ErrorURI != \"\" {\n\t\t\ts += fmt.Sprintf(\" %q\", r.ErrorURI)\n\t\t}\n\t\treturn s\n\t}\n\treturn fmt.Sprintf(\"oauth2: cannot fetch token: %v\\nResponse: %s\", r.Response.Status, r.Body)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/oauth2/internal/transport.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage internal\n\nimport (\n\t\"context\"\n\t\"net/http\"\n)\n\n// HTTPClient is the context key to use with golang.org/x/net/context's\n// WithValue function to associate an *http.Client value with a context.\nvar HTTPClient ContextKey\n\n// ContextKey is just an empty struct. It exists so HTTPClient can be\n// an immutable public variable with a unique type. It's immutable\n// because nobody else can create a ContextKey, being unexported.\ntype ContextKey struct{}\n\nfunc ContextClient(ctx context.Context) *http.Client {\n\tif ctx != nil {\n\t\tif hc, ok := ctx.Value(HTTPClient).(*http.Client); ok {\n\t\t\treturn hc\n\t\t}\n\t}\n\treturn http.DefaultClient\n}\n"
  },
  {
    "path": "vendor/golang.org/x/oauth2/oauth2.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package oauth2 provides support for making\n// OAuth2 authorized and authenticated HTTP requests,\n// as specified in RFC 6749.\n// It can additionally grant authorization with Bearer JWT.\npackage oauth2 // import \"golang.org/x/oauth2\"\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"errors\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"golang.org/x/oauth2/internal\"\n)\n\n// NoContext is the default context you should supply if not using\n// your own context.Context (see https://golang.org/x/net/context).\n//\n// Deprecated: Use context.Background() or context.TODO() instead.\nvar NoContext = context.TODO()\n\n// RegisterBrokenAuthHeaderProvider previously did something. It is now a no-op.\n//\n// Deprecated: this function no longer does anything. Caller code that\n// wants to avoid potential extra HTTP requests made during\n// auto-probing of the provider's auth style should set\n// Endpoint.AuthStyle.\nfunc RegisterBrokenAuthHeaderProvider(tokenURL string) {}\n\n// Config describes a typical 3-legged OAuth2 flow, with both the\n// client application information and the server's endpoint URLs.\n// For the client credentials 2-legged OAuth2 flow, see the clientcredentials\n// package (https://golang.org/x/oauth2/clientcredentials).\ntype Config struct {\n\t// ClientID is the application's ID.\n\tClientID string\n\n\t// ClientSecret is the application's secret.\n\tClientSecret string\n\n\t// Endpoint contains the resource server's token endpoint\n\t// URLs. These are constants specific to each server and are\n\t// often available via site-specific packages, such as\n\t// google.Endpoint or github.Endpoint.\n\tEndpoint Endpoint\n\n\t// RedirectURL is the URL to redirect users going through\n\t// the OAuth flow, after the resource owner's URLs.\n\tRedirectURL string\n\n\t// Scope specifies optional requested permissions.\n\tScopes []string\n\n\t// authStyleCache caches which auth style to use when Endpoint.AuthStyle is\n\t// the zero value (AuthStyleAutoDetect).\n\tauthStyleCache internal.LazyAuthStyleCache\n}\n\n// A TokenSource is anything that can return a token.\ntype TokenSource interface {\n\t// Token returns a token or an error.\n\t// Token must be safe for concurrent use by multiple goroutines.\n\t// The returned Token must not be modified.\n\tToken() (*Token, error)\n}\n\n// Endpoint represents an OAuth 2.0 provider's authorization and token\n// endpoint URLs.\ntype Endpoint struct {\n\tAuthURL       string\n\tDeviceAuthURL string\n\tTokenURL      string\n\n\t// AuthStyle optionally specifies how the endpoint wants the\n\t// client ID & client secret sent. The zero value means to\n\t// auto-detect.\n\tAuthStyle AuthStyle\n}\n\n// AuthStyle represents how requests for tokens are authenticated\n// to the server.\ntype AuthStyle int\n\nconst (\n\t// AuthStyleAutoDetect means to auto-detect which authentication\n\t// style the provider wants by trying both ways and caching\n\t// the successful way for the future.\n\tAuthStyleAutoDetect AuthStyle = 0\n\n\t// AuthStyleInParams sends the \"client_id\" and \"client_secret\"\n\t// in the POST body as application/x-www-form-urlencoded parameters.\n\tAuthStyleInParams AuthStyle = 1\n\n\t// AuthStyleInHeader sends the client_id and client_password\n\t// using HTTP Basic Authorization. This is an optional style\n\t// described in the OAuth2 RFC 6749 section 2.3.1.\n\tAuthStyleInHeader AuthStyle = 2\n)\n\nvar (\n\t// AccessTypeOnline and AccessTypeOffline are options passed\n\t// to the Options.AuthCodeURL method. They modify the\n\t// \"access_type\" field that gets sent in the URL returned by\n\t// AuthCodeURL.\n\t//\n\t// Online is the default if neither is specified. If your\n\t// application needs to refresh access tokens when the user\n\t// is not present at the browser, then use offline. This will\n\t// result in your application obtaining a refresh token the\n\t// first time your application exchanges an authorization\n\t// code for a user.\n\tAccessTypeOnline  AuthCodeOption = SetAuthURLParam(\"access_type\", \"online\")\n\tAccessTypeOffline AuthCodeOption = SetAuthURLParam(\"access_type\", \"offline\")\n\n\t// ApprovalForce forces the users to view the consent dialog\n\t// and confirm the permissions request at the URL returned\n\t// from AuthCodeURL, even if they've already done so.\n\tApprovalForce AuthCodeOption = SetAuthURLParam(\"prompt\", \"consent\")\n)\n\n// An AuthCodeOption is passed to Config.AuthCodeURL.\ntype AuthCodeOption interface {\n\tsetValue(url.Values)\n}\n\ntype setParam struct{ k, v string }\n\nfunc (p setParam) setValue(m url.Values) { m.Set(p.k, p.v) }\n\n// SetAuthURLParam builds an AuthCodeOption which passes key/value parameters\n// to a provider's authorization endpoint.\nfunc SetAuthURLParam(key, value string) AuthCodeOption {\n\treturn setParam{key, value}\n}\n\n// AuthCodeURL returns a URL to OAuth 2.0 provider's consent page\n// that asks for permissions for the required scopes explicitly.\n//\n// State is an opaque value used by the client to maintain state between the\n// request and callback. The authorization server includes this value when\n// redirecting the user agent back to the client.\n//\n// Opts may include AccessTypeOnline or AccessTypeOffline, as well\n// as ApprovalForce.\n//\n// To protect against CSRF attacks, opts should include a PKCE challenge\n// (S256ChallengeOption). Not all servers support PKCE. An alternative is to\n// generate a random state parameter and verify it after exchange.\n// See https://datatracker.ietf.org/doc/html/rfc6749#section-10.12 (predating\n// PKCE), https://www.oauth.com/oauth2-servers/pkce/ and\n// https://www.ietf.org/archive/id/draft-ietf-oauth-v2-1-09.html#name-cross-site-request-forgery (describing both approaches)\nfunc (c *Config) AuthCodeURL(state string, opts ...AuthCodeOption) string {\n\tvar buf bytes.Buffer\n\tbuf.WriteString(c.Endpoint.AuthURL)\n\tv := url.Values{\n\t\t\"response_type\": {\"code\"},\n\t\t\"client_id\":     {c.ClientID},\n\t}\n\tif c.RedirectURL != \"\" {\n\t\tv.Set(\"redirect_uri\", c.RedirectURL)\n\t}\n\tif len(c.Scopes) > 0 {\n\t\tv.Set(\"scope\", strings.Join(c.Scopes, \" \"))\n\t}\n\tif state != \"\" {\n\t\tv.Set(\"state\", state)\n\t}\n\tfor _, opt := range opts {\n\t\topt.setValue(v)\n\t}\n\tif strings.Contains(c.Endpoint.AuthURL, \"?\") {\n\t\tbuf.WriteByte('&')\n\t} else {\n\t\tbuf.WriteByte('?')\n\t}\n\tbuf.WriteString(v.Encode())\n\treturn buf.String()\n}\n\n// PasswordCredentialsToken converts a resource owner username and password\n// pair into a token.\n//\n// Per the RFC, this grant type should only be used \"when there is a high\n// degree of trust between the resource owner and the client (e.g., the client\n// is part of the device operating system or a highly privileged application),\n// and when other authorization grant types are not available.\"\n// See https://tools.ietf.org/html/rfc6749#section-4.3 for more info.\n//\n// The provided context optionally controls which HTTP client is used. See the HTTPClient variable.\nfunc (c *Config) PasswordCredentialsToken(ctx context.Context, username, password string) (*Token, error) {\n\tv := url.Values{\n\t\t\"grant_type\": {\"password\"},\n\t\t\"username\":   {username},\n\t\t\"password\":   {password},\n\t}\n\tif len(c.Scopes) > 0 {\n\t\tv.Set(\"scope\", strings.Join(c.Scopes, \" \"))\n\t}\n\treturn retrieveToken(ctx, c, v)\n}\n\n// Exchange converts an authorization code into a token.\n//\n// It is used after a resource provider redirects the user back\n// to the Redirect URI (the URL obtained from AuthCodeURL).\n//\n// The provided context optionally controls which HTTP client is used. See the HTTPClient variable.\n//\n// The code will be in the *http.Request.FormValue(\"code\"). Before\n// calling Exchange, be sure to validate FormValue(\"state\") if you are\n// using it to protect against CSRF attacks.\n//\n// If using PKCE to protect against CSRF attacks, opts should include a\n// VerifierOption.\nfunc (c *Config) Exchange(ctx context.Context, code string, opts ...AuthCodeOption) (*Token, error) {\n\tv := url.Values{\n\t\t\"grant_type\": {\"authorization_code\"},\n\t\t\"code\":       {code},\n\t}\n\tif c.RedirectURL != \"\" {\n\t\tv.Set(\"redirect_uri\", c.RedirectURL)\n\t}\n\tfor _, opt := range opts {\n\t\topt.setValue(v)\n\t}\n\treturn retrieveToken(ctx, c, v)\n}\n\n// Client returns an HTTP client using the provided token.\n// The token will auto-refresh as necessary. The underlying\n// HTTP transport will be obtained using the provided context.\n// The returned client and its Transport should not be modified.\nfunc (c *Config) Client(ctx context.Context, t *Token) *http.Client {\n\treturn NewClient(ctx, c.TokenSource(ctx, t))\n}\n\n// TokenSource returns a TokenSource that returns t until t expires,\n// automatically refreshing it as necessary using the provided context.\n//\n// Most users will use Config.Client instead.\nfunc (c *Config) TokenSource(ctx context.Context, t *Token) TokenSource {\n\ttkr := &tokenRefresher{\n\t\tctx:  ctx,\n\t\tconf: c,\n\t}\n\tif t != nil {\n\t\ttkr.refreshToken = t.RefreshToken\n\t}\n\treturn &reuseTokenSource{\n\t\tt:   t,\n\t\tnew: tkr,\n\t}\n}\n\n// tokenRefresher is a TokenSource that makes \"grant_type\"==\"refresh_token\"\n// HTTP requests to renew a token using a RefreshToken.\ntype tokenRefresher struct {\n\tctx          context.Context // used to get HTTP requests\n\tconf         *Config\n\trefreshToken string\n}\n\n// WARNING: Token is not safe for concurrent access, as it\n// updates the tokenRefresher's refreshToken field.\n// Within this package, it is used by reuseTokenSource which\n// synchronizes calls to this method with its own mutex.\nfunc (tf *tokenRefresher) Token() (*Token, error) {\n\tif tf.refreshToken == \"\" {\n\t\treturn nil, errors.New(\"oauth2: token expired and refresh token is not set\")\n\t}\n\n\ttk, err := retrieveToken(tf.ctx, tf.conf, url.Values{\n\t\t\"grant_type\":    {\"refresh_token\"},\n\t\t\"refresh_token\": {tf.refreshToken},\n\t})\n\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif tf.refreshToken != tk.RefreshToken {\n\t\ttf.refreshToken = tk.RefreshToken\n\t}\n\treturn tk, err\n}\n\n// reuseTokenSource is a TokenSource that holds a single token in memory\n// and validates its expiry before each call to retrieve it with\n// Token. If it's expired, it will be auto-refreshed using the\n// new TokenSource.\ntype reuseTokenSource struct {\n\tnew TokenSource // called when t is expired.\n\n\tmu sync.Mutex // guards t\n\tt  *Token\n\n\texpiryDelta time.Duration\n}\n\n// Token returns the current token if it's still valid, else will\n// refresh the current token (using r.Context for HTTP client\n// information) and return the new one.\nfunc (s *reuseTokenSource) Token() (*Token, error) {\n\ts.mu.Lock()\n\tdefer s.mu.Unlock()\n\tif s.t.Valid() {\n\t\treturn s.t, nil\n\t}\n\tt, err := s.new.Token()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tt.expiryDelta = s.expiryDelta\n\ts.t = t\n\treturn t, nil\n}\n\n// StaticTokenSource returns a TokenSource that always returns the same token.\n// Because the provided token t is never refreshed, StaticTokenSource is only\n// useful for tokens that never expire.\nfunc StaticTokenSource(t *Token) TokenSource {\n\treturn staticTokenSource{t}\n}\n\n// staticTokenSource is a TokenSource that always returns the same Token.\ntype staticTokenSource struct {\n\tt *Token\n}\n\nfunc (s staticTokenSource) Token() (*Token, error) {\n\treturn s.t, nil\n}\n\n// HTTPClient is the context key to use with golang.org/x/net/context's\n// WithValue function to associate an *http.Client value with a context.\nvar HTTPClient internal.ContextKey\n\n// NewClient creates an *http.Client from a Context and TokenSource.\n// The returned client is not valid beyond the lifetime of the context.\n//\n// Note that if a custom *http.Client is provided via the Context it\n// is used only for token acquisition and is not used to configure the\n// *http.Client returned from NewClient.\n//\n// As a special case, if src is nil, a non-OAuth2 client is returned\n// using the provided context. This exists to support related OAuth2\n// packages.\nfunc NewClient(ctx context.Context, src TokenSource) *http.Client {\n\tif src == nil {\n\t\treturn internal.ContextClient(ctx)\n\t}\n\treturn &http.Client{\n\t\tTransport: &Transport{\n\t\t\tBase:   internal.ContextClient(ctx).Transport,\n\t\t\tSource: ReuseTokenSource(nil, src),\n\t\t},\n\t}\n}\n\n// ReuseTokenSource returns a TokenSource which repeatedly returns the\n// same token as long as it's valid, starting with t.\n// When its cached token is invalid, a new token is obtained from src.\n//\n// ReuseTokenSource is typically used to reuse tokens from a cache\n// (such as a file on disk) between runs of a program, rather than\n// obtaining new tokens unnecessarily.\n//\n// The initial token t may be nil, in which case the TokenSource is\n// wrapped in a caching version if it isn't one already. This also\n// means it's always safe to wrap ReuseTokenSource around any other\n// TokenSource without adverse effects.\nfunc ReuseTokenSource(t *Token, src TokenSource) TokenSource {\n\t// Don't wrap a reuseTokenSource in itself. That would work,\n\t// but cause an unnecessary number of mutex operations.\n\t// Just build the equivalent one.\n\tif rt, ok := src.(*reuseTokenSource); ok {\n\t\tif t == nil {\n\t\t\t// Just use it directly.\n\t\t\treturn rt\n\t\t}\n\t\tsrc = rt.new\n\t}\n\treturn &reuseTokenSource{\n\t\tt:   t,\n\t\tnew: src,\n\t}\n}\n\n// ReuseTokenSourceWithExpiry returns a TokenSource that acts in the same manner as the\n// TokenSource returned by ReuseTokenSource, except the expiry buffer is\n// configurable. The expiration time of a token is calculated as\n// t.Expiry.Add(-earlyExpiry).\nfunc ReuseTokenSourceWithExpiry(t *Token, src TokenSource, earlyExpiry time.Duration) TokenSource {\n\t// Don't wrap a reuseTokenSource in itself. That would work,\n\t// but cause an unnecessary number of mutex operations.\n\t// Just build the equivalent one.\n\tif rt, ok := src.(*reuseTokenSource); ok {\n\t\tif t == nil {\n\t\t\t// Just use it directly, but set the expiryDelta to earlyExpiry,\n\t\t\t// so the behavior matches what the user expects.\n\t\t\trt.expiryDelta = earlyExpiry\n\t\t\treturn rt\n\t\t}\n\t\tsrc = rt.new\n\t}\n\tif t != nil {\n\t\tt.expiryDelta = earlyExpiry\n\t}\n\treturn &reuseTokenSource{\n\t\tt:           t,\n\t\tnew:         src,\n\t\texpiryDelta: earlyExpiry,\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/oauth2/pkce.go",
    "content": "// Copyright 2023 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\npackage oauth2\n\nimport (\n\t\"crypto/rand\"\n\t\"crypto/sha256\"\n\t\"encoding/base64\"\n\t\"net/url\"\n)\n\nconst (\n\tcodeChallengeKey       = \"code_challenge\"\n\tcodeChallengeMethodKey = \"code_challenge_method\"\n\tcodeVerifierKey        = \"code_verifier\"\n)\n\n// GenerateVerifier generates a PKCE code verifier with 32 octets of randomness.\n// This follows recommendations in RFC 7636.\n//\n// A fresh verifier should be generated for each authorization.\n// S256ChallengeOption(verifier) should then be passed to Config.AuthCodeURL\n// (or Config.DeviceAccess) and VerifierOption(verifier) to Config.Exchange\n// (or Config.DeviceAccessToken).\nfunc GenerateVerifier() string {\n\t// \"RECOMMENDED that the output of a suitable random number generator be\n\t// used to create a 32-octet sequence.  The octet sequence is then\n\t// base64url-encoded to produce a 43-octet URL-safe string to use as the\n\t// code verifier.\"\n\t// https://datatracker.ietf.org/doc/html/rfc7636#section-4.1\n\tdata := make([]byte, 32)\n\tif _, err := rand.Read(data); err != nil {\n\t\tpanic(err)\n\t}\n\treturn base64.RawURLEncoding.EncodeToString(data)\n}\n\n// VerifierOption returns a PKCE code verifier AuthCodeOption. It should be\n// passed to Config.Exchange or Config.DeviceAccessToken only.\nfunc VerifierOption(verifier string) AuthCodeOption {\n\treturn setParam{k: codeVerifierKey, v: verifier}\n}\n\n// S256ChallengeFromVerifier returns a PKCE code challenge derived from verifier with method S256.\n//\n// Prefer to use S256ChallengeOption where possible.\nfunc S256ChallengeFromVerifier(verifier string) string {\n\tsha := sha256.Sum256([]byte(verifier))\n\treturn base64.RawURLEncoding.EncodeToString(sha[:])\n}\n\n// S256ChallengeOption derives a PKCE code challenge derived from verifier with\n// method S256. It should be passed to Config.AuthCodeURL or Config.DeviceAccess\n// only.\nfunc S256ChallengeOption(verifier string) AuthCodeOption {\n\treturn challengeOption{\n\t\tchallenge_method: \"S256\",\n\t\tchallenge:        S256ChallengeFromVerifier(verifier),\n\t}\n}\n\ntype challengeOption struct{ challenge_method, challenge string }\n\nfunc (p challengeOption) setValue(m url.Values) {\n\tm.Set(codeChallengeMethodKey, p.challenge_method)\n\tm.Set(codeChallengeKey, p.challenge)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/oauth2/token.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage oauth2\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\t\"golang.org/x/oauth2/internal\"\n)\n\n// defaultExpiryDelta determines how earlier a token should be considered\n// expired than its actual expiration time. It is used to avoid late\n// expirations due to client-server time mismatches.\nconst defaultExpiryDelta = 10 * time.Second\n\n// Token represents the credentials used to authorize\n// the requests to access protected resources on the OAuth 2.0\n// provider's backend.\n//\n// Most users of this package should not access fields of Token\n// directly. They're exported mostly for use by related packages\n// implementing derivative OAuth2 flows.\ntype Token struct {\n\t// AccessToken is the token that authorizes and authenticates\n\t// the requests.\n\tAccessToken string `json:\"access_token\"`\n\n\t// TokenType is the type of token.\n\t// The Type method returns either this or \"Bearer\", the default.\n\tTokenType string `json:\"token_type,omitempty\"`\n\n\t// RefreshToken is a token that's used by the application\n\t// (as opposed to the user) to refresh the access token\n\t// if it expires.\n\tRefreshToken string `json:\"refresh_token,omitempty\"`\n\n\t// Expiry is the optional expiration time of the access token.\n\t//\n\t// If zero, TokenSource implementations will reuse the same\n\t// token forever and RefreshToken or equivalent\n\t// mechanisms for that TokenSource will not be used.\n\tExpiry time.Time `json:\"expiry,omitempty\"`\n\n\t// ExpiresIn is the OAuth2 wire format \"expires_in\" field,\n\t// which specifies how many seconds later the token expires,\n\t// relative to an unknown time base approximately around \"now\".\n\t// It is the application's responsibility to populate\n\t// `Expiry` from `ExpiresIn` when required.\n\tExpiresIn int64 `json:\"expires_in,omitempty\"`\n\n\t// raw optionally contains extra metadata from the server\n\t// when updating a token.\n\traw interface{}\n\n\t// expiryDelta is used to calculate when a token is considered\n\t// expired, by subtracting from Expiry. If zero, defaultExpiryDelta\n\t// is used.\n\texpiryDelta time.Duration\n}\n\n// Type returns t.TokenType if non-empty, else \"Bearer\".\nfunc (t *Token) Type() string {\n\tif strings.EqualFold(t.TokenType, \"bearer\") {\n\t\treturn \"Bearer\"\n\t}\n\tif strings.EqualFold(t.TokenType, \"mac\") {\n\t\treturn \"MAC\"\n\t}\n\tif strings.EqualFold(t.TokenType, \"basic\") {\n\t\treturn \"Basic\"\n\t}\n\tif t.TokenType != \"\" {\n\t\treturn t.TokenType\n\t}\n\treturn \"Bearer\"\n}\n\n// SetAuthHeader sets the Authorization header to r using the access\n// token in t.\n//\n// This method is unnecessary when using Transport or an HTTP Client\n// returned by this package.\nfunc (t *Token) SetAuthHeader(r *http.Request) {\n\tr.Header.Set(\"Authorization\", t.Type()+\" \"+t.AccessToken)\n}\n\n// WithExtra returns a new Token that's a clone of t, but using the\n// provided raw extra map. This is only intended for use by packages\n// implementing derivative OAuth2 flows.\nfunc (t *Token) WithExtra(extra interface{}) *Token {\n\tt2 := new(Token)\n\t*t2 = *t\n\tt2.raw = extra\n\treturn t2\n}\n\n// Extra returns an extra field.\n// Extra fields are key-value pairs returned by the server as a\n// part of the token retrieval response.\nfunc (t *Token) Extra(key string) interface{} {\n\tif raw, ok := t.raw.(map[string]interface{}); ok {\n\t\treturn raw[key]\n\t}\n\n\tvals, ok := t.raw.(url.Values)\n\tif !ok {\n\t\treturn nil\n\t}\n\n\tv := vals.Get(key)\n\tswitch s := strings.TrimSpace(v); strings.Count(s, \".\") {\n\tcase 0: // Contains no \".\"; try to parse as int\n\t\tif i, err := strconv.ParseInt(s, 10, 64); err == nil {\n\t\t\treturn i\n\t\t}\n\tcase 1: // Contains a single \".\"; try to parse as float\n\t\tif f, err := strconv.ParseFloat(s, 64); err == nil {\n\t\t\treturn f\n\t\t}\n\t}\n\n\treturn v\n}\n\n// timeNow is time.Now but pulled out as a variable for tests.\nvar timeNow = time.Now\n\n// expired reports whether the token is expired.\n// t must be non-nil.\nfunc (t *Token) expired() bool {\n\tif t.Expiry.IsZero() {\n\t\treturn false\n\t}\n\n\texpiryDelta := defaultExpiryDelta\n\tif t.expiryDelta != 0 {\n\t\texpiryDelta = t.expiryDelta\n\t}\n\treturn t.Expiry.Round(0).Add(-expiryDelta).Before(timeNow())\n}\n\n// Valid reports whether t is non-nil, has an AccessToken, and is not expired.\nfunc (t *Token) Valid() bool {\n\treturn t != nil && t.AccessToken != \"\" && !t.expired()\n}\n\n// tokenFromInternal maps an *internal.Token struct into\n// a *Token struct.\nfunc tokenFromInternal(t *internal.Token) *Token {\n\tif t == nil {\n\t\treturn nil\n\t}\n\treturn &Token{\n\t\tAccessToken:  t.AccessToken,\n\t\tTokenType:    t.TokenType,\n\t\tRefreshToken: t.RefreshToken,\n\t\tExpiry:       t.Expiry,\n\t\traw:          t.Raw,\n\t}\n}\n\n// retrieveToken takes a *Config and uses that to retrieve an *internal.Token.\n// This token is then mapped from *internal.Token into an *oauth2.Token which is returned along\n// with an error..\nfunc retrieveToken(ctx context.Context, c *Config, v url.Values) (*Token, error) {\n\ttk, err := internal.RetrieveToken(ctx, c.ClientID, c.ClientSecret, c.Endpoint.TokenURL, v, internal.AuthStyle(c.Endpoint.AuthStyle), c.authStyleCache.Get())\n\tif err != nil {\n\t\tif rErr, ok := err.(*internal.RetrieveError); ok {\n\t\t\treturn nil, (*RetrieveError)(rErr)\n\t\t}\n\t\treturn nil, err\n\t}\n\treturn tokenFromInternal(tk), nil\n}\n\n// RetrieveError is the error returned when the token endpoint returns a\n// non-2XX HTTP status code or populates RFC 6749's 'error' parameter.\n// https://datatracker.ietf.org/doc/html/rfc6749#section-5.2\ntype RetrieveError struct {\n\tResponse *http.Response\n\t// Body is the body that was consumed by reading Response.Body.\n\t// It may be truncated.\n\tBody []byte\n\t// ErrorCode is RFC 6749's 'error' parameter.\n\tErrorCode string\n\t// ErrorDescription is RFC 6749's 'error_description' parameter.\n\tErrorDescription string\n\t// ErrorURI is RFC 6749's 'error_uri' parameter.\n\tErrorURI string\n}\n\nfunc (r *RetrieveError) Error() string {\n\tif r.ErrorCode != \"\" {\n\t\ts := fmt.Sprintf(\"oauth2: %q\", r.ErrorCode)\n\t\tif r.ErrorDescription != \"\" {\n\t\t\ts += fmt.Sprintf(\" %q\", r.ErrorDescription)\n\t\t}\n\t\tif r.ErrorURI != \"\" {\n\t\t\ts += fmt.Sprintf(\" %q\", r.ErrorURI)\n\t\t}\n\t\treturn s\n\t}\n\treturn fmt.Sprintf(\"oauth2: cannot fetch token: %v\\nResponse: %s\", r.Response.Status, r.Body)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/oauth2/transport.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage oauth2\n\nimport (\n\t\"errors\"\n\t\"log\"\n\t\"net/http\"\n\t\"sync\"\n)\n\n// Transport is an http.RoundTripper that makes OAuth 2.0 HTTP requests,\n// wrapping a base RoundTripper and adding an Authorization header\n// with a token from the supplied Sources.\n//\n// Transport is a low-level mechanism. Most code will use the\n// higher-level Config.Client method instead.\ntype Transport struct {\n\t// Source supplies the token to add to outgoing requests'\n\t// Authorization headers.\n\tSource TokenSource\n\n\t// Base is the base RoundTripper used to make HTTP requests.\n\t// If nil, http.DefaultTransport is used.\n\tBase http.RoundTripper\n}\n\n// RoundTrip authorizes and authenticates the request with an\n// access token from Transport's Source.\nfunc (t *Transport) RoundTrip(req *http.Request) (*http.Response, error) {\n\treqBodyClosed := false\n\tif req.Body != nil {\n\t\tdefer func() {\n\t\t\tif !reqBodyClosed {\n\t\t\t\treq.Body.Close()\n\t\t\t}\n\t\t}()\n\t}\n\n\tif t.Source == nil {\n\t\treturn nil, errors.New(\"oauth2: Transport's Source is nil\")\n\t}\n\ttoken, err := t.Source.Token()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treq2 := cloneRequest(req) // per RoundTripper contract\n\ttoken.SetAuthHeader(req2)\n\n\t// req.Body is assumed to be closed by the base RoundTripper.\n\treqBodyClosed = true\n\treturn t.base().RoundTrip(req2)\n}\n\nvar cancelOnce sync.Once\n\n// CancelRequest does nothing. It used to be a legacy cancellation mechanism\n// but now only it only logs on first use to warn that it's deprecated.\n//\n// Deprecated: use contexts for cancellation instead.\nfunc (t *Transport) CancelRequest(req *http.Request) {\n\tcancelOnce.Do(func() {\n\t\tlog.Printf(\"deprecated: golang.org/x/oauth2: Transport.CancelRequest no longer does anything; use contexts\")\n\t})\n}\n\nfunc (t *Transport) base() http.RoundTripper {\n\tif t.Base != nil {\n\t\treturn t.Base\n\t}\n\treturn http.DefaultTransport\n}\n\n// cloneRequest returns a clone of the provided *http.Request.\n// The clone is a shallow copy of the struct and its Header map.\nfunc cloneRequest(r *http.Request) *http.Request {\n\t// shallow copy of the struct\n\tr2 := new(http.Request)\n\t*r2 = *r\n\t// deep copy of the Header\n\tr2.Header = make(http.Header, len(r.Header))\n\tfor k, s := range r.Header {\n\t\tr2.Header[k] = append([]string(nil), s...)\n\t}\n\treturn r2\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/LICENSE",
    "content": "Copyright 2009 The Go Authors.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google LLC nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/golang.org/x/sys/PATENTS",
    "content": "Additional IP Rights Grant (Patents)\n\n\"This implementation\" means the copyrightable works distributed by\nGoogle as part of the Go project.\n\nGoogle hereby grants to You a perpetual, worldwide, non-exclusive,\nno-charge, royalty-free, irrevocable (except as stated in this section)\npatent license to make, have made, use, offer to sell, sell, import,\ntransfer and otherwise run, modify and propagate the contents of this\nimplementation of Go, where such license applies only to those patent\nclaims, both currently owned or controlled by Google and acquired in\nthe future, licensable by Google that are necessarily infringed by this\nimplementation of Go.  This grant does not include claims that would be\ninfringed only as a consequence of further modification of this\nimplementation.  If you or your agent or exclusive licensee institute or\norder or agree to the institution of patent litigation against any\nentity (including a cross-claim or counterclaim in a lawsuit) alleging\nthat this implementation of Go or any code incorporated within this\nimplementation of Go constitutes direct or contributory patent\ninfringement, or inducement of patent infringement, then any patent\nrights granted to you under this License for this implementation of Go\nshall terminate as of the date such litigation is filed.\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/asm.s",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n#include \"textflag.h\"\n\nTEXT ·use(SB),NOSPLIT,$0\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/asm_plan9_386.s",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n#include \"textflag.h\"\n\n//\n// System call support for 386, Plan 9\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-32\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-44\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-28\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT ·RawSyscall6(SB),NOSPLIT,$0-40\n\tJMP\tsyscall·RawSyscall6(SB)\n\nTEXT ·seek(SB),NOSPLIT,$0-36\n\tJMP\tsyscall·seek(SB)\n\nTEXT ·exit(SB),NOSPLIT,$4-4\n\tJMP\tsyscall·exit(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/asm_plan9_amd64.s",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n#include \"textflag.h\"\n\n//\n// System call support for amd64, Plan 9\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-64\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-88\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT\t·RawSyscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·RawSyscall6(SB)\n\nTEXT ·seek(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·seek(SB)\n\nTEXT ·exit(SB),NOSPLIT,$8-8\n\tJMP\tsyscall·exit(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/asm_plan9_arm.s",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n#include \"textflag.h\"\n\n// System call support for plan9 on arm\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT ·Syscall(SB),NOSPLIT,$0-32\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT ·Syscall6(SB),NOSPLIT,$0-44\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-28\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT ·RawSyscall6(SB),NOSPLIT,$0-40\n\tJMP\tsyscall·RawSyscall6(SB)\n\nTEXT ·seek(SB),NOSPLIT,$0-36\n\tJMP\tsyscall·exit(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/const_plan9.go",
    "content": "package plan9\n\n// Plan 9 Constants\n\n// Open modes\nconst (\n\tO_RDONLY  = 0\n\tO_WRONLY  = 1\n\tO_RDWR    = 2\n\tO_TRUNC   = 16\n\tO_CLOEXEC = 32\n\tO_EXCL    = 0x1000\n)\n\n// Rfork flags\nconst (\n\tRFNAMEG  = 1 << 0\n\tRFENVG   = 1 << 1\n\tRFFDG    = 1 << 2\n\tRFNOTEG  = 1 << 3\n\tRFPROC   = 1 << 4\n\tRFMEM    = 1 << 5\n\tRFNOWAIT = 1 << 6\n\tRFCNAMEG = 1 << 10\n\tRFCENVG  = 1 << 11\n\tRFCFDG   = 1 << 12\n\tRFREND   = 1 << 13\n\tRFNOMNT  = 1 << 14\n)\n\n// Qid.Type bits\nconst (\n\tQTDIR    = 0x80\n\tQTAPPEND = 0x40\n\tQTEXCL   = 0x20\n\tQTMOUNT  = 0x10\n\tQTAUTH   = 0x08\n\tQTTMP    = 0x04\n\tQTFILE   = 0x00\n)\n\n// Dir.Mode bits\nconst (\n\tDMDIR    = 0x80000000\n\tDMAPPEND = 0x40000000\n\tDMEXCL   = 0x20000000\n\tDMMOUNT  = 0x10000000\n\tDMAUTH   = 0x08000000\n\tDMTMP    = 0x04000000\n\tDMREAD   = 0x4\n\tDMWRITE  = 0x2\n\tDMEXEC   = 0x1\n)\n\nconst (\n\tSTATMAX    = 65535\n\tERRMAX     = 128\n\tSTATFIXLEN = 49\n)\n\n// Mount and bind flags\nconst (\n\tMREPL   = 0x0000\n\tMBEFORE = 0x0001\n\tMAFTER  = 0x0002\n\tMORDER  = 0x0003\n\tMCREATE = 0x0004\n\tMCACHE  = 0x0010\n\tMMASK   = 0x0017\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/dir_plan9.go",
    "content": "// Copyright 2012 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Plan 9 directory marshalling. See intro(5).\n\npackage plan9\n\nimport \"errors\"\n\nvar (\n\tErrShortStat = errors.New(\"stat buffer too short\")\n\tErrBadStat   = errors.New(\"malformed stat buffer\")\n\tErrBadName   = errors.New(\"bad character in file name\")\n)\n\n// A Qid represents a 9P server's unique identification for a file.\ntype Qid struct {\n\tPath uint64 // the file server's unique identification for the file\n\tVers uint32 // version number for given Path\n\tType uint8  // the type of the file (plan9.QTDIR for example)\n}\n\n// A Dir contains the metadata for a file.\ntype Dir struct {\n\t// system-modified data\n\tType uint16 // server type\n\tDev  uint32 // server subtype\n\n\t// file data\n\tQid    Qid    // unique id from server\n\tMode   uint32 // permissions\n\tAtime  uint32 // last read time\n\tMtime  uint32 // last write time\n\tLength int64  // file length\n\tName   string // last element of path\n\tUid    string // owner name\n\tGid    string // group name\n\tMuid   string // last modifier name\n}\n\nvar nullDir = Dir{\n\tType: ^uint16(0),\n\tDev:  ^uint32(0),\n\tQid: Qid{\n\t\tPath: ^uint64(0),\n\t\tVers: ^uint32(0),\n\t\tType: ^uint8(0),\n\t},\n\tMode:   ^uint32(0),\n\tAtime:  ^uint32(0),\n\tMtime:  ^uint32(0),\n\tLength: ^int64(0),\n}\n\n// Null assigns special \"don't touch\" values to members of d to\n// avoid modifying them during plan9.Wstat.\nfunc (d *Dir) Null() { *d = nullDir }\n\n// Marshal encodes a 9P stat message corresponding to d into b\n//\n// If there isn't enough space in b for a stat message, ErrShortStat is returned.\nfunc (d *Dir) Marshal(b []byte) (n int, err error) {\n\tn = STATFIXLEN + len(d.Name) + len(d.Uid) + len(d.Gid) + len(d.Muid)\n\tif n > len(b) {\n\t\treturn n, ErrShortStat\n\t}\n\n\tfor _, c := range d.Name {\n\t\tif c == '/' {\n\t\t\treturn n, ErrBadName\n\t\t}\n\t}\n\n\tb = pbit16(b, uint16(n)-2)\n\tb = pbit16(b, d.Type)\n\tb = pbit32(b, d.Dev)\n\tb = pbit8(b, d.Qid.Type)\n\tb = pbit32(b, d.Qid.Vers)\n\tb = pbit64(b, d.Qid.Path)\n\tb = pbit32(b, d.Mode)\n\tb = pbit32(b, d.Atime)\n\tb = pbit32(b, d.Mtime)\n\tb = pbit64(b, uint64(d.Length))\n\tb = pstring(b, d.Name)\n\tb = pstring(b, d.Uid)\n\tb = pstring(b, d.Gid)\n\tb = pstring(b, d.Muid)\n\n\treturn n, nil\n}\n\n// UnmarshalDir decodes a single 9P stat message from b and returns the resulting Dir.\n//\n// If b is too small to hold a valid stat message, ErrShortStat is returned.\n//\n// If the stat message itself is invalid, ErrBadStat is returned.\nfunc UnmarshalDir(b []byte) (*Dir, error) {\n\tif len(b) < STATFIXLEN {\n\t\treturn nil, ErrShortStat\n\t}\n\tsize, buf := gbit16(b)\n\tif len(b) != int(size)+2 {\n\t\treturn nil, ErrBadStat\n\t}\n\tb = buf\n\n\tvar d Dir\n\td.Type, b = gbit16(b)\n\td.Dev, b = gbit32(b)\n\td.Qid.Type, b = gbit8(b)\n\td.Qid.Vers, b = gbit32(b)\n\td.Qid.Path, b = gbit64(b)\n\td.Mode, b = gbit32(b)\n\td.Atime, b = gbit32(b)\n\td.Mtime, b = gbit32(b)\n\n\tn, b := gbit64(b)\n\td.Length = int64(n)\n\n\tvar ok bool\n\tif d.Name, b, ok = gstring(b); !ok {\n\t\treturn nil, ErrBadStat\n\t}\n\tif d.Uid, b, ok = gstring(b); !ok {\n\t\treturn nil, ErrBadStat\n\t}\n\tif d.Gid, b, ok = gstring(b); !ok {\n\t\treturn nil, ErrBadStat\n\t}\n\tif d.Muid, b, ok = gstring(b); !ok {\n\t\treturn nil, ErrBadStat\n\t}\n\n\treturn &d, nil\n}\n\n// pbit8 copies the 8-bit number v to b and returns the remaining slice of b.\nfunc pbit8(b []byte, v uint8) []byte {\n\tb[0] = byte(v)\n\treturn b[1:]\n}\n\n// pbit16 copies the 16-bit number v to b in little-endian order and returns the remaining slice of b.\nfunc pbit16(b []byte, v uint16) []byte {\n\tb[0] = byte(v)\n\tb[1] = byte(v >> 8)\n\treturn b[2:]\n}\n\n// pbit32 copies the 32-bit number v to b in little-endian order and returns the remaining slice of b.\nfunc pbit32(b []byte, v uint32) []byte {\n\tb[0] = byte(v)\n\tb[1] = byte(v >> 8)\n\tb[2] = byte(v >> 16)\n\tb[3] = byte(v >> 24)\n\treturn b[4:]\n}\n\n// pbit64 copies the 64-bit number v to b in little-endian order and returns the remaining slice of b.\nfunc pbit64(b []byte, v uint64) []byte {\n\tb[0] = byte(v)\n\tb[1] = byte(v >> 8)\n\tb[2] = byte(v >> 16)\n\tb[3] = byte(v >> 24)\n\tb[4] = byte(v >> 32)\n\tb[5] = byte(v >> 40)\n\tb[6] = byte(v >> 48)\n\tb[7] = byte(v >> 56)\n\treturn b[8:]\n}\n\n// pstring copies the string s to b, prepending it with a 16-bit length in little-endian order, and\n// returning the remaining slice of b..\nfunc pstring(b []byte, s string) []byte {\n\tb = pbit16(b, uint16(len(s)))\n\tn := copy(b, s)\n\treturn b[n:]\n}\n\n// gbit8 reads an 8-bit number from b and returns it with the remaining slice of b.\nfunc gbit8(b []byte) (uint8, []byte) {\n\treturn uint8(b[0]), b[1:]\n}\n\n// gbit16 reads a 16-bit number in little-endian order from b and returns it with the remaining slice of b.\nfunc gbit16(b []byte) (uint16, []byte) {\n\treturn uint16(b[0]) | uint16(b[1])<<8, b[2:]\n}\n\n// gbit32 reads a 32-bit number in little-endian order from b and returns it with the remaining slice of b.\nfunc gbit32(b []byte) (uint32, []byte) {\n\treturn uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24, b[4:]\n}\n\n// gbit64 reads a 64-bit number in little-endian order from b and returns it with the remaining slice of b.\nfunc gbit64(b []byte) (uint64, []byte) {\n\tlo := uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24\n\thi := uint32(b[4]) | uint32(b[5])<<8 | uint32(b[6])<<16 | uint32(b[7])<<24\n\treturn uint64(lo) | uint64(hi)<<32, b[8:]\n}\n\n// gstring reads a string from b, prefixed with a 16-bit length in little-endian order.\n// It returns the string with the remaining slice of b and a boolean. If the length is\n// greater than the number of bytes in b, the boolean will be false.\nfunc gstring(b []byte) (string, []byte, bool) {\n\tn, b := gbit16(b)\n\tif int(n) > len(b) {\n\t\treturn \"\", b, false\n\t}\n\treturn string(b[:n]), b[n:], true\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/env_plan9.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Plan 9 environment variables.\n\npackage plan9\n\nimport (\n\t\"syscall\"\n)\n\nfunc Getenv(key string) (value string, found bool) {\n\treturn syscall.Getenv(key)\n}\n\nfunc Setenv(key, value string) error {\n\treturn syscall.Setenv(key, value)\n}\n\nfunc Clearenv() {\n\tsyscall.Clearenv()\n}\n\nfunc Environ() []string {\n\treturn syscall.Environ()\n}\n\nfunc Unsetenv(key string) error {\n\treturn syscall.Unsetenv(key)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/errors_plan9.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage plan9\n\nimport \"syscall\"\n\n// Constants\nconst (\n\t// Invented values to support what package os expects.\n\tO_CREAT    = 0x02000\n\tO_APPEND   = 0x00400\n\tO_NOCTTY   = 0x00000\n\tO_NONBLOCK = 0x00000\n\tO_SYNC     = 0x00000\n\tO_ASYNC    = 0x00000\n\n\tS_IFMT   = 0x1f000\n\tS_IFIFO  = 0x1000\n\tS_IFCHR  = 0x2000\n\tS_IFDIR  = 0x4000\n\tS_IFBLK  = 0x6000\n\tS_IFREG  = 0x8000\n\tS_IFLNK  = 0xa000\n\tS_IFSOCK = 0xc000\n)\n\n// Errors\nvar (\n\tEINVAL       = syscall.NewError(\"bad arg in system call\")\n\tENOTDIR      = syscall.NewError(\"not a directory\")\n\tEISDIR       = syscall.NewError(\"file is a directory\")\n\tENOENT       = syscall.NewError(\"file does not exist\")\n\tEEXIST       = syscall.NewError(\"file already exists\")\n\tEMFILE       = syscall.NewError(\"no free file descriptors\")\n\tEIO          = syscall.NewError(\"i/o error\")\n\tENAMETOOLONG = syscall.NewError(\"file name too long\")\n\tEINTR        = syscall.NewError(\"interrupted\")\n\tEPERM        = syscall.NewError(\"permission denied\")\n\tEBUSY        = syscall.NewError(\"no free devices\")\n\tETIMEDOUT    = syscall.NewError(\"connection timed out\")\n\tEPLAN9       = syscall.NewError(\"not supported by plan 9\")\n\n\t// The following errors do not correspond to any\n\t// Plan 9 system messages. Invented to support\n\t// what package os and others expect.\n\tEACCES       = syscall.NewError(\"access permission denied\")\n\tEAFNOSUPPORT = syscall.NewError(\"address family not supported by protocol\")\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/mkall.sh",
    "content": "#!/usr/bin/env bash\n# Copyright 2009 The Go Authors. All rights reserved.\n# Use of this source code is governed by a BSD-style\n# license that can be found in the LICENSE file.\n\n# The plan9 package provides access to the raw system call\n# interface of the underlying operating system.  Porting Go to\n# a new architecture/operating system combination requires\n# some manual effort, though there are tools that automate\n# much of the process.  The auto-generated files have names\n# beginning with z.\n#\n# This script runs or (given -n) prints suggested commands to generate z files\n# for the current system.  Running those commands is not automatic.\n# This script is documentation more than anything else.\n#\n# * asm_${GOOS}_${GOARCH}.s\n#\n# This hand-written assembly file implements system call dispatch.\n# There are three entry points:\n#\n# \tfunc Syscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr);\n# \tfunc Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr);\n# \tfunc RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr);\n#\n# The first and second are the standard ones; they differ only in\n# how many arguments can be passed to the kernel.\n# The third is for low-level use by the ForkExec wrapper;\n# unlike the first two, it does not call into the scheduler to\n# let it know that a system call is running.\n#\n# * syscall_${GOOS}.go\n#\n# This hand-written Go file implements system calls that need\n# special handling and lists \"//sys\" comments giving prototypes\n# for ones that can be auto-generated.  Mksyscall reads those\n# comments to generate the stubs.\n#\n# * syscall_${GOOS}_${GOARCH}.go\n#\n# Same as syscall_${GOOS}.go except that it contains code specific\n# to ${GOOS} on one particular architecture.\n#\n# * types_${GOOS}.c\n#\n# This hand-written C file includes standard C headers and then\n# creates typedef or enum names beginning with a dollar sign\n# (use of $ in variable names is a gcc extension).  The hardest\n# part about preparing this file is figuring out which headers to\n# include and which symbols need to be #defined to get the\n# actual data structures that pass through to the kernel system calls.\n# Some C libraries present alternate versions for binary compatibility\n# and translate them on the way in and out of system calls, but\n# there is almost always a #define that can get the real ones.\n# See types_darwin.c and types_linux.c for examples.\n#\n# * zerror_${GOOS}_${GOARCH}.go\n#\n# This machine-generated file defines the system's error numbers,\n# error strings, and signal numbers.  The generator is \"mkerrors.sh\".\n# Usually no arguments are needed, but mkerrors.sh will pass its\n# arguments on to godefs.\n#\n# * zsyscall_${GOOS}_${GOARCH}.go\n#\n# Generated by mksyscall.pl; see syscall_${GOOS}.go above.\n#\n# * zsysnum_${GOOS}_${GOARCH}.go\n#\n# Generated by mksysnum_${GOOS}.\n#\n# * ztypes_${GOOS}_${GOARCH}.go\n#\n# Generated by godefs; see types_${GOOS}.c above.\n\nGOOSARCH=\"${GOOS}_${GOARCH}\"\n\n# defaults\nmksyscall=\"go run mksyscall.go\"\nmkerrors=\"./mkerrors.sh\"\nzerrors=\"zerrors_$GOOSARCH.go\"\nmksysctl=\"\"\nzsysctl=\"zsysctl_$GOOSARCH.go\"\nmksysnum=\nmktypes=\nrun=\"sh\"\n\ncase \"$1\" in\n-syscalls)\n\tfor i in zsyscall*go\n\tdo\n\t\tsed 1q $i | sed 's;^// ;;' | sh > _$i && gofmt < _$i > $i\n\t\trm _$i\n\tdone\n\texit 0\n\t;;\n-n)\n\trun=\"cat\"\n\tshift\nesac\n\ncase \"$#\" in\n0)\n\t;;\n*)\n\techo 'usage: mkall.sh [-n]' 1>&2\n\texit 2\nesac\n\ncase \"$GOOSARCH\" in\n_* | *_ | _)\n\techo 'undefined $GOOS_$GOARCH:' \"$GOOSARCH\" 1>&2\n\texit 1\n\t;;\nplan9_386)\n\tmkerrors=\n\tmksyscall=\"go run mksyscall.go -l32 -plan9 -tags plan9,386\"\n\tmksysnum=\"./mksysnum_plan9.sh /n/sources/plan9/sys/src/libc/9syscall/sys.h\"\n\tmktypes=\"XXX\"\n\t;;\nplan9_amd64)\n\tmkerrors=\n\tmksyscall=\"go run mksyscall.go -l32 -plan9 -tags plan9,amd64\"\n\tmksysnum=\"./mksysnum_plan9.sh /n/sources/plan9/sys/src/libc/9syscall/sys.h\"\n\tmktypes=\"XXX\"\n\t;;\nplan9_arm)\n\tmkerrors=\n\tmksyscall=\"go run mksyscall.go -l32 -plan9 -tags plan9,arm\"\n\tmksysnum=\"./mksysnum_plan9.sh /n/sources/plan9/sys/src/libc/9syscall/sys.h\"\n\tmktypes=\"XXX\"\n\t;;\n*)\n\techo 'unrecognized $GOOS_$GOARCH: ' \"$GOOSARCH\" 1>&2\n\texit 1\n\t;;\nesac\n\n(\n\tif [ -n \"$mkerrors\" ]; then echo \"$mkerrors |gofmt >$zerrors\"; fi\n\tcase \"$GOOS\" in\n\tplan9)\n\t\tsyscall_goos=\"syscall_$GOOS.go\"\n\t\tif [ -n \"$mksyscall\" ]; then echo \"$mksyscall $syscall_goos |gofmt >zsyscall_$GOOSARCH.go\"; fi\n\t\t;;\n\tesac\n\tif [ -n \"$mksysctl\" ]; then echo \"$mksysctl |gofmt >$zsysctl\"; fi\n\tif [ -n \"$mksysnum\" ]; then echo \"$mksysnum |gofmt >zsysnum_$GOOSARCH.go\"; fi\n\tif [ -n \"$mktypes\" ]; then echo \"$mktypes types_$GOOS.go |gofmt >ztypes_$GOOSARCH.go\"; fi\n) | $run\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/mkerrors.sh",
    "content": "#!/usr/bin/env bash\n# Copyright 2009 The Go Authors. All rights reserved.\n# Use of this source code is governed by a BSD-style\n# license that can be found in the LICENSE file.\n\n# Generate Go code listing errors and other #defined constant\n# values (ENAMETOOLONG etc.), by asking the preprocessor\n# about the definitions.\n\nunset LANG\nexport LC_ALL=C\nexport LC_CTYPE=C\n\nCC=${CC:-gcc}\n\nuname=$(uname)\n\nincludes='\n#include <sys/types.h>\n#include <sys/file.h>\n#include <fcntl.h>\n#include <dirent.h>\n#include <sys/socket.h>\n#include <netinet/in.h>\n#include <netinet/ip.h>\n#include <netinet/ip6.h>\n#include <netinet/tcp.h>\n#include <errno.h>\n#include <sys/signal.h>\n#include <signal.h>\n#include <sys/resource.h>\n'\n\nccflags=\"$@\"\n\n# Write go tool cgo -godefs input.\n(\n\techo package plan9\n\techo\n\techo '/*'\n\tindirect=\"includes_$(uname)\"\n\techo \"${!indirect} $includes\"\n\techo '*/'\n\techo 'import \"C\"'\n\techo\n\techo 'const ('\n\n\t# The gcc command line prints all the #defines\n\t# it encounters while processing the input\n\techo \"${!indirect} $includes\" | $CC -x c - -E -dM $ccflags |\n\tawk '\n\t\t$1 != \"#define\" || $2 ~ /\\(/ || $3 == \"\" {next}\n\n\t\t$2 ~ /^E([ABCD]X|[BIS]P|[SD]I|S|FL)$/ {next}  # 386 registers\n\t\t$2 ~ /^(SIGEV_|SIGSTKSZ|SIGRT(MIN|MAX))/ {next}\n\t\t$2 ~ /^(SCM_SRCRT)$/ {next}\n\t\t$2 ~ /^(MAP_FAILED)$/ {next}\n\n\t\t$2 !~ /^ETH_/ &&\n\t\t$2 !~ /^EPROC_/ &&\n\t\t$2 !~ /^EQUIV_/ &&\n\t\t$2 !~ /^EXPR_/ &&\n\t\t$2 ~ /^E[A-Z0-9_]+$/ ||\n\t\t$2 ~ /^B[0-9_]+$/ ||\n\t\t$2 ~ /^V[A-Z0-9]+$/ ||\n\t\t$2 ~ /^CS[A-Z0-9]/ ||\n\t\t$2 ~ /^I(SIG|CANON|CRNL|EXTEN|MAXBEL|STRIP|UTF8)$/ ||\n\t\t$2 ~ /^IGN/ ||\n\t\t$2 ~ /^IX(ON|ANY|OFF)$/ ||\n\t\t$2 ~ /^IN(LCR|PCK)$/ ||\n\t\t$2 ~ /(^FLU?SH)|(FLU?SH$)/ ||\n\t\t$2 ~ /^C(LOCAL|READ)$/ ||\n\t\t$2 == \"BRKINT\" ||\n\t\t$2 == \"HUPCL\" ||\n\t\t$2 == \"PENDIN\" ||\n\t\t$2 == \"TOSTOP\" ||\n\t\t$2 ~ /^PAR/ ||\n\t\t$2 ~ /^SIG[^_]/ ||\n\t\t$2 ~ /^O[CNPFP][A-Z]+[^_][A-Z]+$/ ||\n\t\t$2 ~ /^IN_/ ||\n\t\t$2 ~ /^LOCK_(SH|EX|NB|UN)$/ ||\n\t\t$2 ~ /^(AF|SOCK|SO|SOL|IPPROTO|IP|IPV6|ICMP6|TCP|EVFILT|NOTE|EV|SHUT|PROT|MAP|PACKET|MSG|SCM|MCL|DT|MADV|PR)_/ ||\n\t\t$2 == \"ICMPV6_FILTER\" ||\n\t\t$2 == \"SOMAXCONN\" ||\n\t\t$2 == \"NAME_MAX\" ||\n\t\t$2 == \"IFNAMSIZ\" ||\n\t\t$2 ~ /^CTL_(MAXNAME|NET|QUERY)$/ ||\n\t\t$2 ~ /^SYSCTL_VERS/ ||\n\t\t$2 ~ /^(MS|MNT)_/ ||\n\t\t$2 ~ /^TUN(SET|GET|ATTACH|DETACH)/ ||\n\t\t$2 ~ /^(O|F|FD|NAME|S|PTRACE|PT)_/ ||\n\t\t$2 ~ /^LINUX_REBOOT_CMD_/ ||\n\t\t$2 ~ /^LINUX_REBOOT_MAGIC[12]$/ ||\n\t\t$2 !~ \"NLA_TYPE_MASK\" &&\n\t\t$2 ~ /^(NETLINK|NLM|NLMSG|NLA|IFA|IFAN|RT|RTCF|RTN|RTPROT|RTNH|ARPHRD|ETH_P)_/ ||\n\t\t$2 ~ /^SIOC/ ||\n\t\t$2 ~ /^TIOC/ ||\n\t\t$2 !~ \"RTF_BITS\" &&\n\t\t$2 ~ /^(IFF|IFT|NET_RT|RTM|RTF|RTV|RTA|RTAX)_/ ||\n\t\t$2 ~ /^BIOC/ ||\n\t\t$2 ~ /^RUSAGE_(SELF|CHILDREN|THREAD)/ ||\n\t\t$2 ~ /^RLIMIT_(AS|CORE|CPU|DATA|FSIZE|NOFILE|STACK)|RLIM_INFINITY/ ||\n\t\t$2 ~ /^PRIO_(PROCESS|PGRP|USER)/ ||\n\t\t$2 ~ /^CLONE_[A-Z_]+/ ||\n\t\t$2 !~ /^(BPF_TIMEVAL)$/ &&\n\t\t$2 ~ /^(BPF|DLT)_/ ||\n\t\t$2 !~ \"WMESGLEN\" &&\n\t\t$2 ~ /^W[A-Z0-9]+$/ {printf(\"\\t%s = C.%s\\n\", $2, $2)}\n\t\t$2 ~ /^__WCOREFLAG$/ {next}\n\t\t$2 ~ /^__W[A-Z0-9]+$/ {printf(\"\\t%s = C.%s\\n\", substr($2,3), $2)}\n\n\t\t{next}\n\t' | sort\n\n\techo ')'\n) >_const.go\n\n# Pull out the error names for later.\nerrors=$(\n\techo '#include <errno.h>' | $CC -x c - -E -dM $ccflags |\n\tawk '$1==\"#define\" && $2 ~ /^E[A-Z0-9_]+$/ { print $2 }' |\n\tsort\n)\n\n# Pull out the signal names for later.\nsignals=$(\n\techo '#include <signal.h>' | $CC -x c - -E -dM $ccflags |\n\tawk '$1==\"#define\" && $2 ~ /^SIG[A-Z0-9]+$/ { print $2 }' |\n\tgrep -v 'SIGSTKSIZE\\|SIGSTKSZ\\|SIGRT' |\n\tsort\n)\n\n# Again, writing regexps to a file.\necho '#include <errno.h>' | $CC -x c - -E -dM $ccflags |\n\tawk '$1==\"#define\" && $2 ~ /^E[A-Z0-9_]+$/ { print \"^\\t\" $2 \"[ \\t]*=\" }' |\n\tsort >_error.grep\necho '#include <signal.h>' | $CC -x c - -E -dM $ccflags |\n\tawk '$1==\"#define\" && $2 ~ /^SIG[A-Z0-9]+$/ { print \"^\\t\" $2 \"[ \\t]*=\" }' |\n\tgrep -v 'SIGSTKSIZE\\|SIGSTKSZ\\|SIGRT' |\n\tsort >_signal.grep\n\necho '// mkerrors.sh' \"$@\"\necho '// Code generated by the command above; DO NOT EDIT.'\necho\ngo tool cgo -godefs -- \"$@\" _const.go >_error.out\ncat _error.out | grep -vf _error.grep | grep -vf _signal.grep\necho\necho '// Errors'\necho 'const ('\ncat _error.out | grep -f _error.grep | sed 's/=\\(.*\\)/= Errno(\\1)/'\necho ')'\n\necho\necho '// Signals'\necho 'const ('\ncat _error.out | grep -f _signal.grep | sed 's/=\\(.*\\)/= Signal(\\1)/'\necho ')'\n\n# Run C program to print error and syscall strings.\n(\n\techo -E \"\n#include <stdio.h>\n#include <stdlib.h>\n#include <errno.h>\n#include <ctype.h>\n#include <string.h>\n#include <signal.h>\n\n#define nelem(x) (sizeof(x)/sizeof((x)[0]))\n\nenum { A = 'A', Z = 'Z', a = 'a', z = 'z' }; // avoid need for single quotes below\n\nint errors[] = {\n\"\n\tfor i in $errors\n\tdo\n\t\techo -E '\t'$i,\n\tdone\n\n\techo -E \"\n};\n\nint signals[] = {\n\"\n\tfor i in $signals\n\tdo\n\t\techo -E '\t'$i,\n\tdone\n\n\t# Use -E because on some systems bash builtin interprets \\n itself.\n\techo -E '\n};\n\nstatic int\nintcmp(const void *a, const void *b)\n{\n\treturn *(int*)a - *(int*)b;\n}\n\nint\nmain(void)\n{\n\tint i, j, e;\n\tchar buf[1024], *p;\n\n\tprintf(\"\\n\\n// Error table\\n\");\n\tprintf(\"var errors = [...]string {\\n\");\n\tqsort(errors, nelem(errors), sizeof errors[0], intcmp);\n\tfor(i=0; i<nelem(errors); i++) {\n\t\te = errors[i];\n\t\tif(i > 0 && errors[i-1] == e)\n\t\t\tcontinue;\n\t\tstrcpy(buf, strerror(e));\n\t\t// lowercase first letter: Bad -> bad, but STREAM -> STREAM.\n\t\tif(A <= buf[0] && buf[0] <= Z && a <= buf[1] && buf[1] <= z)\n\t\t\tbuf[0] += a - A;\n\t\tprintf(\"\\t%d: \\\"%s\\\",\\n\", e, buf);\n\t}\n\tprintf(\"}\\n\\n\");\n\t\n\tprintf(\"\\n\\n// Signal table\\n\");\n\tprintf(\"var signals = [...]string {\\n\");\n\tqsort(signals, nelem(signals), sizeof signals[0], intcmp);\n\tfor(i=0; i<nelem(signals); i++) {\n\t\te = signals[i];\n\t\tif(i > 0 && signals[i-1] == e)\n\t\t\tcontinue;\n\t\tstrcpy(buf, strsignal(e));\n\t\t// lowercase first letter: Bad -> bad, but STREAM -> STREAM.\n\t\tif(A <= buf[0] && buf[0] <= Z && a <= buf[1] && buf[1] <= z)\n\t\t\tbuf[0] += a - A;\n\t\t// cut trailing : number.\n\t\tp = strrchr(buf, \":\"[0]);\n\t\tif(p)\n\t\t\t*p = '\\0';\n\t\tprintf(\"\\t%d: \\\"%s\\\",\\n\", e, buf);\n\t}\n\tprintf(\"}\\n\\n\");\n\n\treturn 0;\n}\n\n'\n) >_errors.c\n\n$CC $ccflags -o _errors _errors.c && $GORUN ./_errors && rm -f _errors.c _errors _const.go _error.grep _signal.grep _error.out\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/mksysnum_plan9.sh",
    "content": "#!/bin/sh\n# Copyright 2009 The Go Authors. All rights reserved.\n# Use of this source code is governed by a BSD-style\n# license that can be found in the LICENSE file.\n\nCOMMAND=\"mksysnum_plan9.sh $@\"\n\ncat <<EOF\n// $COMMAND\n// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT\n\npackage plan9\n\nconst(\nEOF\n\nSP='[ \t]' # space or tab\nsed \"s/^#define${SP}\\\\([A-Z0-9_][A-Z0-9_]*\\\\)${SP}${SP}*\\\\([0-9][0-9]*\\\\)/SYS_\\\\1=\\\\2/g\" \\\n\t< $1 | grep -v SYS__\n\ncat <<EOF\n)\nEOF\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/pwd_go15_plan9.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build go1.5\n\npackage plan9\n\nimport \"syscall\"\n\nfunc fixwd() {\n\tsyscall.Fixwd()\n}\n\nfunc Getwd() (wd string, err error) {\n\treturn syscall.Getwd()\n}\n\nfunc Chdir(path string) error {\n\treturn syscall.Chdir(path)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/pwd_plan9.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build !go1.5\n\npackage plan9\n\nfunc fixwd() {\n}\n\nfunc Getwd() (wd string, err error) {\n\tfd, err := open(\".\", O_RDONLY)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tdefer Close(fd)\n\treturn Fd2path(fd)\n}\n\nfunc Chdir(path string) error {\n\treturn chdir(path)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/race.go",
    "content": "// Copyright 2012 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build plan9 && race\n\npackage plan9\n\nimport (\n\t\"runtime\"\n\t\"unsafe\"\n)\n\nconst raceenabled = true\n\nfunc raceAcquire(addr unsafe.Pointer) {\n\truntime.RaceAcquire(addr)\n}\n\nfunc raceReleaseMerge(addr unsafe.Pointer) {\n\truntime.RaceReleaseMerge(addr)\n}\n\nfunc raceReadRange(addr unsafe.Pointer, len int) {\n\truntime.RaceReadRange(addr, len)\n}\n\nfunc raceWriteRange(addr unsafe.Pointer, len int) {\n\truntime.RaceWriteRange(addr, len)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/race0.go",
    "content": "// Copyright 2012 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build plan9 && !race\n\npackage plan9\n\nimport (\n\t\"unsafe\"\n)\n\nconst raceenabled = false\n\nfunc raceAcquire(addr unsafe.Pointer) {\n}\n\nfunc raceReleaseMerge(addr unsafe.Pointer) {\n}\n\nfunc raceReadRange(addr unsafe.Pointer, len int) {\n}\n\nfunc raceWriteRange(addr unsafe.Pointer, len int) {\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/str.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build plan9\n\npackage plan9\n\nfunc itoa(val int) string { // do it here rather than with fmt to avoid dependency\n\tif val < 0 {\n\t\treturn \"-\" + itoa(-val)\n\t}\n\tvar buf [32]byte // big enough for int64\n\ti := len(buf) - 1\n\tfor val >= 10 {\n\t\tbuf[i] = byte(val%10 + '0')\n\t\ti--\n\t\tval /= 10\n\t}\n\tbuf[i] = byte(val + '0')\n\treturn string(buf[i:])\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/syscall.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build plan9\n\n// Package plan9 contains an interface to the low-level operating system\n// primitives. OS details vary depending on the underlying system, and\n// by default, godoc will display the OS-specific documentation for the current\n// system. If you want godoc to display documentation for another\n// system, set $GOOS and $GOARCH to the desired system. For example, if\n// you want to view documentation for freebsd/arm on linux/amd64, set $GOOS\n// to freebsd and $GOARCH to arm.\n//\n// The primary use of this package is inside other packages that provide a more\n// portable interface to the system, such as \"os\", \"time\" and \"net\".  Use\n// those packages rather than this one if you can.\n//\n// For details of the functions and data types in this package consult\n// the manuals for the appropriate operating system.\n//\n// These calls return err == nil to indicate success; otherwise\n// err represents an operating system error describing the failure and\n// holds a value of type syscall.ErrorString.\npackage plan9 // import \"golang.org/x/sys/plan9\"\n\nimport (\n\t\"bytes\"\n\t\"strings\"\n\t\"unsafe\"\n)\n\n// ByteSliceFromString returns a NUL-terminated slice of bytes\n// containing the text of s. If s contains a NUL byte at any\n// location, it returns (nil, EINVAL).\nfunc ByteSliceFromString(s string) ([]byte, error) {\n\tif strings.IndexByte(s, 0) != -1 {\n\t\treturn nil, EINVAL\n\t}\n\ta := make([]byte, len(s)+1)\n\tcopy(a, s)\n\treturn a, nil\n}\n\n// BytePtrFromString returns a pointer to a NUL-terminated array of\n// bytes containing the text of s. If s contains a NUL byte at any\n// location, it returns (nil, EINVAL).\nfunc BytePtrFromString(s string) (*byte, error) {\n\ta, err := ByteSliceFromString(s)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &a[0], nil\n}\n\n// ByteSliceToString returns a string form of the text represented by the slice s, with a terminating NUL and any\n// bytes after the NUL removed.\nfunc ByteSliceToString(s []byte) string {\n\tif i := bytes.IndexByte(s, 0); i != -1 {\n\t\ts = s[:i]\n\t}\n\treturn string(s)\n}\n\n// BytePtrToString takes a pointer to a sequence of text and returns the corresponding string.\n// If the pointer is nil, it returns the empty string. It assumes that the text sequence is terminated\n// at a zero byte; if the zero byte is not present, the program may crash.\nfunc BytePtrToString(p *byte) string {\n\tif p == nil {\n\t\treturn \"\"\n\t}\n\tif *p == 0 {\n\t\treturn \"\"\n\t}\n\n\t// Find NUL terminator.\n\tn := 0\n\tfor ptr := unsafe.Pointer(p); *(*byte)(ptr) != 0; n++ {\n\t\tptr = unsafe.Pointer(uintptr(ptr) + 1)\n\t}\n\n\treturn string(unsafe.Slice(p, n))\n}\n\n// Single-word zero for use when we need a valid pointer to 0 bytes.\n// See mksyscall.pl.\nvar _zero uintptr\n\nfunc (ts *Timespec) Unix() (sec int64, nsec int64) {\n\treturn int64(ts.Sec), int64(ts.Nsec)\n}\n\nfunc (tv *Timeval) Unix() (sec int64, nsec int64) {\n\treturn int64(tv.Sec), int64(tv.Usec) * 1000\n}\n\nfunc (ts *Timespec) Nano() int64 {\n\treturn int64(ts.Sec)*1e9 + int64(ts.Nsec)\n}\n\nfunc (tv *Timeval) Nano() int64 {\n\treturn int64(tv.Sec)*1e9 + int64(tv.Usec)*1000\n}\n\n// use is a no-op, but the compiler cannot see that it is.\n// Calling use(p) ensures that p is kept live until that point.\n//\n//go:noescape\nfunc use(p unsafe.Pointer)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/syscall_plan9.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Plan 9 system calls.\n// This file is compiled as ordinary Go code,\n// but it is also input to mksyscall,\n// which parses the //sys lines and generates system call stubs.\n// Note that sometimes we use a lowercase //sys name and\n// wrap it in our own nicer implementation.\n\npackage plan9\n\nimport (\n\t\"bytes\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n// A Note is a string describing a process note.\n// It implements the os.Signal interface.\ntype Note string\n\nfunc (n Note) Signal() {}\n\nfunc (n Note) String() string {\n\treturn string(n)\n}\n\nvar (\n\tStdin  = 0\n\tStdout = 1\n\tStderr = 2\n)\n\n// For testing: clients can set this flag to force\n// creation of IPv6 sockets to return EAFNOSUPPORT.\nvar SocketDisableIPv6 bool\n\nfunc Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.ErrorString)\nfunc Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.ErrorString)\nfunc RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr)\nfunc RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr)\n\nfunc atoi(b []byte) (n uint) {\n\tn = 0\n\tfor i := 0; i < len(b); i++ {\n\t\tn = n*10 + uint(b[i]-'0')\n\t}\n\treturn\n}\n\nfunc cstring(s []byte) string {\n\ti := bytes.IndexByte(s, 0)\n\tif i == -1 {\n\t\ti = len(s)\n\t}\n\treturn string(s[:i])\n}\n\nfunc errstr() string {\n\tvar buf [ERRMAX]byte\n\n\tRawSyscall(SYS_ERRSTR, uintptr(unsafe.Pointer(&buf[0])), uintptr(len(buf)), 0)\n\n\tbuf[len(buf)-1] = 0\n\treturn cstring(buf[:])\n}\n\n// Implemented in assembly to import from runtime.\nfunc exit(code int)\n\nfunc Exit(code int) { exit(code) }\n\nfunc readnum(path string) (uint, error) {\n\tvar b [12]byte\n\n\tfd, e := Open(path, O_RDONLY)\n\tif e != nil {\n\t\treturn 0, e\n\t}\n\tdefer Close(fd)\n\n\tn, e := Pread(fd, b[:], 0)\n\n\tif e != nil {\n\t\treturn 0, e\n\t}\n\n\tm := 0\n\tfor ; m < n && b[m] == ' '; m++ {\n\t}\n\n\treturn atoi(b[m : n-1]), nil\n}\n\nfunc Getpid() (pid int) {\n\tn, _ := readnum(\"#c/pid\")\n\treturn int(n)\n}\n\nfunc Getppid() (ppid int) {\n\tn, _ := readnum(\"#c/ppid\")\n\treturn int(n)\n}\n\nfunc Read(fd int, p []byte) (n int, err error) {\n\treturn Pread(fd, p, -1)\n}\n\nfunc Write(fd int, p []byte) (n int, err error) {\n\treturn Pwrite(fd, p, -1)\n}\n\nvar ioSync int64\n\n//sys\tfd2path(fd int, buf []byte) (err error)\n\nfunc Fd2path(fd int) (path string, err error) {\n\tvar buf [512]byte\n\n\te := fd2path(fd, buf[:])\n\tif e != nil {\n\t\treturn \"\", e\n\t}\n\treturn cstring(buf[:]), nil\n}\n\n//sys\tpipe(p *[2]int32) (err error)\n\nfunc Pipe(p []int) (err error) {\n\tif len(p) != 2 {\n\t\treturn syscall.ErrorString(\"bad arg in system call\")\n\t}\n\tvar pp [2]int32\n\terr = pipe(&pp)\n\tif err == nil {\n\t\tp[0] = int(pp[0])\n\t\tp[1] = int(pp[1])\n\t}\n\treturn\n}\n\n// Underlying system call writes to newoffset via pointer.\n// Implemented in assembly to avoid allocation.\nfunc seek(placeholder uintptr, fd int, offset int64, whence int) (newoffset int64, err string)\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tnewoffset, e := seek(0, fd, offset, whence)\n\n\tif newoffset == -1 {\n\t\terr = syscall.ErrorString(e)\n\t}\n\treturn\n}\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tfd, err := Create(path, O_RDONLY, DMDIR|mode)\n\n\tif fd != -1 {\n\t\tClose(fd)\n\t}\n\n\treturn\n}\n\ntype Waitmsg struct {\n\tPid  int\n\tTime [3]uint32\n\tMsg  string\n}\n\nfunc (w Waitmsg) Exited() bool   { return true }\nfunc (w Waitmsg) Signaled() bool { return false }\n\nfunc (w Waitmsg) ExitStatus() int {\n\tif len(w.Msg) == 0 {\n\t\t// a normal exit returns no message\n\t\treturn 0\n\t}\n\treturn 1\n}\n\n//sys\tawait(s []byte) (n int, err error)\n\nfunc Await(w *Waitmsg) (err error) {\n\tvar buf [512]byte\n\tvar f [5][]byte\n\n\tn, err := await(buf[:])\n\n\tif err != nil || w == nil {\n\t\treturn\n\t}\n\n\tnf := 0\n\tp := 0\n\tfor i := 0; i < n && nf < len(f)-1; i++ {\n\t\tif buf[i] == ' ' {\n\t\t\tf[nf] = buf[p:i]\n\t\t\tp = i + 1\n\t\t\tnf++\n\t\t}\n\t}\n\tf[nf] = buf[p:]\n\tnf++\n\n\tif nf != len(f) {\n\t\treturn syscall.ErrorString(\"invalid wait message\")\n\t}\n\tw.Pid = int(atoi(f[0]))\n\tw.Time[0] = uint32(atoi(f[1]))\n\tw.Time[1] = uint32(atoi(f[2]))\n\tw.Time[2] = uint32(atoi(f[3]))\n\tw.Msg = cstring(f[4])\n\tif w.Msg == \"''\" {\n\t\t// await() returns '' for no error\n\t\tw.Msg = \"\"\n\t}\n\treturn\n}\n\nfunc Unmount(name, old string) (err error) {\n\tfixwd()\n\toldp, err := BytePtrFromString(old)\n\tif err != nil {\n\t\treturn err\n\t}\n\toldptr := uintptr(unsafe.Pointer(oldp))\n\n\tvar r0 uintptr\n\tvar e syscall.ErrorString\n\n\t// bind(2) man page: If name is zero, everything bound or mounted upon old is unbound or unmounted.\n\tif name == \"\" {\n\t\tr0, _, e = Syscall(SYS_UNMOUNT, _zero, oldptr, 0)\n\t} else {\n\t\tnamep, err := BytePtrFromString(name)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tr0, _, e = Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(namep)), oldptr, 0)\n\t}\n\n\tif int32(r0) == -1 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc Fchdir(fd int) (err error) {\n\tpath, err := Fd2path(fd)\n\n\tif err != nil {\n\t\treturn\n\t}\n\n\treturn Chdir(path)\n}\n\ntype Timespec struct {\n\tSec  int32\n\tNsec int32\n}\n\ntype Timeval struct {\n\tSec  int32\n\tUsec int32\n}\n\nfunc NsecToTimeval(nsec int64) (tv Timeval) {\n\tnsec += 999 // round up to microsecond\n\ttv.Usec = int32(nsec % 1e9 / 1e3)\n\ttv.Sec = int32(nsec / 1e9)\n\treturn\n}\n\nfunc nsec() int64 {\n\tvar scratch int64\n\n\tr0, _, _ := Syscall(SYS_NSEC, uintptr(unsafe.Pointer(&scratch)), 0, 0)\n\t// TODO(aram): remove hack after I fix _nsec in the pc64 kernel.\n\tif r0 == 0 {\n\t\treturn scratch\n\t}\n\treturn int64(r0)\n}\n\nfunc Gettimeofday(tv *Timeval) error {\n\tnsec := nsec()\n\t*tv = NsecToTimeval(nsec)\n\treturn nil\n}\n\nfunc Getpagesize() int { return 0x1000 }\n\nfunc Getegid() (egid int) { return -1 }\nfunc Geteuid() (euid int) { return -1 }\nfunc Getgid() (gid int)   { return -1 }\nfunc Getuid() (uid int)   { return -1 }\n\nfunc Getgroups() (gids []int, err error) {\n\treturn make([]int, 0), nil\n}\n\n//sys\topen(path string, mode int) (fd int, err error)\n\nfunc Open(path string, mode int) (fd int, err error) {\n\tfixwd()\n\treturn open(path, mode)\n}\n\n//sys\tcreate(path string, mode int, perm uint32) (fd int, err error)\n\nfunc Create(path string, mode int, perm uint32) (fd int, err error) {\n\tfixwd()\n\treturn create(path, mode, perm)\n}\n\n//sys\tremove(path string) (err error)\n\nfunc Remove(path string) error {\n\tfixwd()\n\treturn remove(path)\n}\n\n//sys\tstat(path string, edir []byte) (n int, err error)\n\nfunc Stat(path string, edir []byte) (n int, err error) {\n\tfixwd()\n\treturn stat(path, edir)\n}\n\n//sys\tbind(name string, old string, flag int) (err error)\n\nfunc Bind(name string, old string, flag int) (err error) {\n\tfixwd()\n\treturn bind(name, old, flag)\n}\n\n//sys\tmount(fd int, afd int, old string, flag int, aname string) (err error)\n\nfunc Mount(fd int, afd int, old string, flag int, aname string) (err error) {\n\tfixwd()\n\treturn mount(fd, afd, old, flag, aname)\n}\n\n//sys\twstat(path string, edir []byte) (err error)\n\nfunc Wstat(path string, edir []byte) (err error) {\n\tfixwd()\n\treturn wstat(path, edir)\n}\n\n//sys\tchdir(path string) (err error)\n//sys\tDup(oldfd int, newfd int) (fd int, err error)\n//sys\tPread(fd int, p []byte, offset int64) (n int, err error)\n//sys\tPwrite(fd int, p []byte, offset int64) (n int, err error)\n//sys\tClose(fd int) (err error)\n//sys\tFstat(fd int, edir []byte) (n int, err error)\n//sys\tFwstat(fd int, edir []byte) (err error)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/zsyscall_plan9_386.go",
    "content": "// go run mksyscall.go -l32 -plan9 -tags plan9,386 syscall_plan9.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build plan9 && 386\n\npackage plan9\n\nimport \"unsafe\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fd2path(fd int, buf []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_FD2PATH, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe(p *[2]int32) (err error) {\n\tr0, _, e1 := Syscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc await(s []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(s) > 0 {\n\t\t_p0 = unsafe.Pointer(&s[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_AWAIT, uintptr(_p0), uintptr(len(s)), 0)\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc open(path string, mode int) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tfd = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc create(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc remove(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_REMOVE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc stat(path string, edir []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(edir) > 0 {\n\t\t_p1 = unsafe.Pointer(&edir[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir)))\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(name string, old string, flag int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(old)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_BIND, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flag))\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mount(fd int, afd int, old string, flag int, aname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(old)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(aname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_MOUNT, uintptr(fd), uintptr(afd), uintptr(unsafe.Pointer(_p0)), uintptr(flag), uintptr(unsafe.Pointer(_p1)), 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wstat(path string, edir []byte) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(edir) > 0 {\n\t\t_p1 = unsafe.Pointer(&edir[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir)))\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(oldfd int, newfd int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), uintptr(newfd), 0)\n\tfd = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\tr0, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, edir []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(edir) > 0 {\n\t\t_p0 = unsafe.Pointer(&edir[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(_p0), uintptr(len(edir)))\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fwstat(fd int, edir []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(edir) > 0 {\n\t\t_p0 = unsafe.Pointer(&edir[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_FWSTAT, uintptr(fd), uintptr(_p0), uintptr(len(edir)))\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/zsyscall_plan9_amd64.go",
    "content": "// go run mksyscall.go -l32 -plan9 -tags plan9,amd64 syscall_plan9.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build plan9 && amd64\n\npackage plan9\n\nimport \"unsafe\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fd2path(fd int, buf []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_FD2PATH, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe(p *[2]int32) (err error) {\n\tr0, _, e1 := Syscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc await(s []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(s) > 0 {\n\t\t_p0 = unsafe.Pointer(&s[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_AWAIT, uintptr(_p0), uintptr(len(s)), 0)\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc open(path string, mode int) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tfd = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc create(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc remove(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_REMOVE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc stat(path string, edir []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(edir) > 0 {\n\t\t_p1 = unsafe.Pointer(&edir[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir)))\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(name string, old string, flag int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(old)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_BIND, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flag))\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mount(fd int, afd int, old string, flag int, aname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(old)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(aname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_MOUNT, uintptr(fd), uintptr(afd), uintptr(unsafe.Pointer(_p0)), uintptr(flag), uintptr(unsafe.Pointer(_p1)), 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wstat(path string, edir []byte) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(edir) > 0 {\n\t\t_p1 = unsafe.Pointer(&edir[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir)))\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(oldfd int, newfd int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), uintptr(newfd), 0)\n\tfd = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\tr0, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, edir []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(edir) > 0 {\n\t\t_p0 = unsafe.Pointer(&edir[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(_p0), uintptr(len(edir)))\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fwstat(fd int, edir []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(edir) > 0 {\n\t\t_p0 = unsafe.Pointer(&edir[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_FWSTAT, uintptr(fd), uintptr(_p0), uintptr(len(edir)))\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/zsyscall_plan9_arm.go",
    "content": "// go run mksyscall.go -l32 -plan9 -tags plan9,arm syscall_plan9.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build plan9 && arm\n\npackage plan9\n\nimport \"unsafe\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fd2path(fd int, buf []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_FD2PATH, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe(p *[2]int32) (err error) {\n\tr0, _, e1 := Syscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc await(s []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(s) > 0 {\n\t\t_p0 = unsafe.Pointer(&s[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_AWAIT, uintptr(_p0), uintptr(len(s)), 0)\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc open(path string, mode int) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tfd = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc create(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc remove(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_REMOVE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc stat(path string, edir []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(edir) > 0 {\n\t\t_p1 = unsafe.Pointer(&edir[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir)))\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(name string, old string, flag int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(old)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_BIND, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flag))\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mount(fd int, afd int, old string, flag int, aname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(old)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(aname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_MOUNT, uintptr(fd), uintptr(afd), uintptr(unsafe.Pointer(_p0)), uintptr(flag), uintptr(unsafe.Pointer(_p1)), 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wstat(path string, edir []byte) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(edir) > 0 {\n\t\t_p1 = unsafe.Pointer(&edir[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir)))\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(oldfd int, newfd int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), uintptr(newfd), 0)\n\tfd = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\tr0, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, edir []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(edir) > 0 {\n\t\t_p0 = unsafe.Pointer(&edir[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(_p0), uintptr(len(edir)))\n\tn = int(r0)\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fwstat(fd int, edir []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(edir) > 0 {\n\t\t_p0 = unsafe.Pointer(&edir[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_FWSTAT, uintptr(fd), uintptr(_p0), uintptr(len(edir)))\n\tif int32(r0) == -1 {\n\t\terr = e1\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/plan9/zsysnum_plan9.go",
    "content": "// mksysnum_plan9.sh /opt/plan9/sys/src/libc/9syscall/sys.h\n// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT\n\npackage plan9\n\nconst (\n\tSYS_SYSR1       = 0\n\tSYS_BIND        = 2\n\tSYS_CHDIR       = 3\n\tSYS_CLOSE       = 4\n\tSYS_DUP         = 5\n\tSYS_ALARM       = 6\n\tSYS_EXEC        = 7\n\tSYS_EXITS       = 8\n\tSYS_FAUTH       = 10\n\tSYS_SEGBRK      = 12\n\tSYS_OPEN        = 14\n\tSYS_OSEEK       = 16\n\tSYS_SLEEP       = 17\n\tSYS_RFORK       = 19\n\tSYS_PIPE        = 21\n\tSYS_CREATE      = 22\n\tSYS_FD2PATH     = 23\n\tSYS_BRK_        = 24\n\tSYS_REMOVE      = 25\n\tSYS_NOTIFY      = 28\n\tSYS_NOTED       = 29\n\tSYS_SEGATTACH   = 30\n\tSYS_SEGDETACH   = 31\n\tSYS_SEGFREE     = 32\n\tSYS_SEGFLUSH    = 33\n\tSYS_RENDEZVOUS  = 34\n\tSYS_UNMOUNT     = 35\n\tSYS_SEMACQUIRE  = 37\n\tSYS_SEMRELEASE  = 38\n\tSYS_SEEK        = 39\n\tSYS_FVERSION    = 40\n\tSYS_ERRSTR      = 41\n\tSYS_STAT        = 42\n\tSYS_FSTAT       = 43\n\tSYS_WSTAT       = 44\n\tSYS_FWSTAT      = 45\n\tSYS_MOUNT       = 46\n\tSYS_AWAIT       = 47\n\tSYS_PREAD       = 50\n\tSYS_PWRITE      = 51\n\tSYS_TSEMACQUIRE = 52\n\tSYS_NSEC        = 53\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/.gitignore",
    "content": "_obj/\nunix.test\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/README.md",
    "content": "# Building `sys/unix`\n\nThe sys/unix package provides access to the raw system call interface of the\nunderlying operating system. See: https://godoc.org/golang.org/x/sys/unix\n\nPorting Go to a new architecture/OS combination or adding syscalls, types, or\nconstants to an existing architecture/OS pair requires some manual effort;\nhowever, there are tools that automate much of the process.\n\n## Build Systems\n\nThere are currently two ways we generate the necessary files. We are currently\nmigrating the build system to use containers so the builds are reproducible.\nThis is being done on an OS-by-OS basis. Please update this documentation as\ncomponents of the build system change.\n\n### Old Build System (currently for `GOOS != \"linux\"`)\n\nThe old build system generates the Go files based on the C header files\npresent on your system. This means that files\nfor a given GOOS/GOARCH pair must be generated on a system with that OS and\narchitecture. This also means that the generated code can differ from system\nto system, based on differences in the header files.\n\nTo avoid this, if you are using the old build system, only generate the Go\nfiles on an installation with unmodified header files. It is also important to\nkeep track of which version of the OS the files were generated from (ex.\nDarwin 14 vs Darwin 15). This makes it easier to track the progress of changes\nand have each OS upgrade correspond to a single change.\n\nTo build the files for your current OS and architecture, make sure GOOS and\nGOARCH are set correctly and run `mkall.sh`. This will generate the files for\nyour specific system. Running `mkall.sh -n` shows the commands that will be run.\n\nRequirements: bash, go\n\n### New Build System (currently for `GOOS == \"linux\"`)\n\nThe new build system uses a Docker container to generate the go files directly\nfrom source checkouts of the kernel and various system libraries. This means\nthat on any platform that supports Docker, all the files using the new build\nsystem can be generated at once, and generated files will not change based on\nwhat the person running the scripts has installed on their computer.\n\nThe OS specific files for the new build system are located in the `${GOOS}`\ndirectory, and the build is coordinated by the `${GOOS}/mkall.go` program. When\nthe kernel or system library updates, modify the Dockerfile at\n`${GOOS}/Dockerfile` to checkout the new release of the source.\n\nTo build all the files under the new build system, you must be on an amd64/Linux\nsystem and have your GOOS and GOARCH set accordingly. Running `mkall.sh` will\nthen generate all of the files for all of the GOOS/GOARCH pairs in the new build\nsystem. Running `mkall.sh -n` shows the commands that will be run.\n\nRequirements: bash, go, docker\n\n## Component files\n\nThis section describes the various files used in the code generation process.\nIt also contains instructions on how to modify these files to add a new\narchitecture/OS or to add additional syscalls, types, or constants. Note that\nif you are using the new build system, the scripts/programs cannot be called normally.\nThey must be called from within the docker container.\n\n### asm files\n\nThe hand-written assembly file at `asm_${GOOS}_${GOARCH}.s` implements system\ncall dispatch. There are three entry points:\n```\n  func Syscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr)\n  func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr)\n  func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr)\n```\nThe first and second are the standard ones; they differ only in how many\narguments can be passed to the kernel. The third is for low-level use by the\nForkExec wrapper. Unlike the first two, it does not call into the scheduler to\nlet it know that a system call is running.\n\nWhen porting Go to a new architecture/OS, this file must be implemented for\neach GOOS/GOARCH pair.\n\n### mksysnum\n\nMksysnum is a Go program located at `${GOOS}/mksysnum.go` (or `mksysnum_${GOOS}.go`\nfor the old system). This program takes in a list of header files containing the\nsyscall number declarations and parses them to produce the corresponding list of\nGo numeric constants. See `zsysnum_${GOOS}_${GOARCH}.go` for the generated\nconstants.\n\nAdding new syscall numbers is mostly done by running the build on a sufficiently\nnew installation of the target OS (or updating the source checkouts for the\nnew build system). However, depending on the OS, you may need to update the\nparsing in mksysnum.\n\n### mksyscall.go\n\nThe `syscall.go`, `syscall_${GOOS}.go`, `syscall_${GOOS}_${GOARCH}.go` are\nhand-written Go files which implement system calls (for unix, the specific OS,\nor the specific OS/Architecture pair respectively) that need special handling\nand list `//sys` comments giving prototypes for ones that can be generated.\n\nThe mksyscall.go program takes the `//sys` and `//sysnb` comments and converts\nthem into syscalls. This requires the name of the prototype in the comment to\nmatch a syscall number in the `zsysnum_${GOOS}_${GOARCH}.go` file. The function\nprototype can be exported (capitalized) or not.\n\nAdding a new syscall often just requires adding a new `//sys` function prototype\nwith the desired arguments and a capitalized name so it is exported. However, if\nyou want the interface to the syscall to be different, often one will make an\nunexported `//sys` prototype, and then write a custom wrapper in\n`syscall_${GOOS}.go`.\n\n### types files\n\nFor each OS, there is a hand-written Go file at `${GOOS}/types.go` (or\n`types_${GOOS}.go` on the old system). This file includes standard C headers and\ncreates Go type aliases to the corresponding C types. The file is then fed\nthrough godef to get the Go compatible definitions. Finally, the generated code\nis fed though mkpost.go to format the code correctly and remove any hidden or\nprivate identifiers. This cleaned-up code is written to\n`ztypes_${GOOS}_${GOARCH}.go`.\n\nThe hardest part about preparing this file is figuring out which headers to\ninclude and which symbols need to be `#define`d to get the actual data\nstructures that pass through to the kernel system calls. Some C libraries\npreset alternate versions for binary compatibility and translate them on the\nway in and out of system calls, but there is almost always a `#define` that can\nget the real ones.\nSee `types_darwin.go` and `linux/types.go` for examples.\n\nTo add a new type, add in the necessary include statement at the top of the\nfile (if it is not already there) and add in a type alias line. Note that if\nyour type is significantly different on different architectures, you may need\nsome `#if/#elif` macros in your include statements.\n\n### mkerrors.sh\n\nThis script is used to generate the system's various constants. This doesn't\njust include the error numbers and error strings, but also the signal numbers\nand a wide variety of miscellaneous constants. The constants come from the list\nof include files in the `includes_${uname}` variable. A regex then picks out\nthe desired `#define` statements, and generates the corresponding Go constants.\nThe error numbers and strings are generated from `#include <errno.h>`, and the\nsignal numbers and strings are generated from `#include <signal.h>`. All of\nthese constants are written to `zerrors_${GOOS}_${GOARCH}.go` via a C program,\n`_errors.c`, which prints out all the constants.\n\nTo add a constant, add the header that includes it to the appropriate variable.\nThen, edit the regex (if necessary) to match the desired constant. Avoid making\nthe regex too broad to avoid matching unintended constants.\n\n### internal/mkmerge\n\nThis program is used to extract duplicate const, func, and type declarations\nfrom the generated architecture-specific files listed below, and merge these\ninto a common file for each OS.\n\nThe merge is performed in the following steps:\n1. Construct the set of common code that is identical in all architecture-specific files.\n2. Write this common code to the merged file.\n3. Remove the common code from all architecture-specific files.\n\n\n## Generated files\n\n### `zerrors_${GOOS}_${GOARCH}.go`\n\nA file containing all of the system's generated error numbers, error strings,\nsignal numbers, and constants. Generated by `mkerrors.sh` (see above).\n\n### `zsyscall_${GOOS}_${GOARCH}.go`\n\nA file containing all the generated syscalls for a specific GOOS and GOARCH.\nGenerated by `mksyscall.go` (see above).\n\n### `zsysnum_${GOOS}_${GOARCH}.go`\n\nA list of numeric constants for all the syscall number of the specific GOOS\nand GOARCH. Generated by mksysnum (see above).\n\n### `ztypes_${GOOS}_${GOARCH}.go`\n\nA file containing Go types for passing into (or returning from) syscalls.\nGenerated by godefs and the types file (see above).\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/affinity_linux.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// CPU affinity functions\n\npackage unix\n\nimport (\n\t\"math/bits\"\n\t\"unsafe\"\n)\n\nconst cpuSetSize = _CPU_SETSIZE / _NCPUBITS\n\n// CPUSet represents a CPU affinity mask.\ntype CPUSet [cpuSetSize]cpuMask\n\nfunc schedAffinity(trap uintptr, pid int, set *CPUSet) error {\n\t_, _, e := RawSyscall(trap, uintptr(pid), uintptr(unsafe.Sizeof(*set)), uintptr(unsafe.Pointer(set)))\n\tif e != 0 {\n\t\treturn errnoErr(e)\n\t}\n\treturn nil\n}\n\n// SchedGetaffinity gets the CPU affinity mask of the thread specified by pid.\n// If pid is 0 the calling thread is used.\nfunc SchedGetaffinity(pid int, set *CPUSet) error {\n\treturn schedAffinity(SYS_SCHED_GETAFFINITY, pid, set)\n}\n\n// SchedSetaffinity sets the CPU affinity mask of the thread specified by pid.\n// If pid is 0 the calling thread is used.\nfunc SchedSetaffinity(pid int, set *CPUSet) error {\n\treturn schedAffinity(SYS_SCHED_SETAFFINITY, pid, set)\n}\n\n// Zero clears the set s, so that it contains no CPUs.\nfunc (s *CPUSet) Zero() {\n\tfor i := range s {\n\t\ts[i] = 0\n\t}\n}\n\nfunc cpuBitsIndex(cpu int) int {\n\treturn cpu / _NCPUBITS\n}\n\nfunc cpuBitsMask(cpu int) cpuMask {\n\treturn cpuMask(1 << (uint(cpu) % _NCPUBITS))\n}\n\n// Set adds cpu to the set s.\nfunc (s *CPUSet) Set(cpu int) {\n\ti := cpuBitsIndex(cpu)\n\tif i < len(s) {\n\t\ts[i] |= cpuBitsMask(cpu)\n\t}\n}\n\n// Clear removes cpu from the set s.\nfunc (s *CPUSet) Clear(cpu int) {\n\ti := cpuBitsIndex(cpu)\n\tif i < len(s) {\n\t\ts[i] &^= cpuBitsMask(cpu)\n\t}\n}\n\n// IsSet reports whether cpu is in the set s.\nfunc (s *CPUSet) IsSet(cpu int) bool {\n\ti := cpuBitsIndex(cpu)\n\tif i < len(s) {\n\t\treturn s[i]&cpuBitsMask(cpu) != 0\n\t}\n\treturn false\n}\n\n// Count returns the number of CPUs in the set s.\nfunc (s *CPUSet) Count() int {\n\tc := 0\n\tfor _, b := range s {\n\t\tc += bits.OnesCount64(uint64(b))\n\t}\n\treturn c\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/aliases.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos\n\npackage unix\n\nimport \"syscall\"\n\ntype Signal = syscall.Signal\ntype Errno = syscall.Errno\ntype SysProcAttr = syscall.SysProcAttr\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_aix_ppc64.s",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build gc\n\n#include \"textflag.h\"\n\n//\n// System calls for ppc64, AIX are implemented in runtime/syscall_aix.go\n//\n\nTEXT ·syscall6(SB),NOSPLIT,$0-88\n\tJMP\tsyscall·syscall6(SB)\n\nTEXT ·rawSyscall6(SB),NOSPLIT,$0-88\n\tJMP\tsyscall·rawSyscall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_bsd_386.s",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build (freebsd || netbsd || openbsd) && gc\n\n#include \"textflag.h\"\n\n// System call support for 386 BSD\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-28\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-40\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT\t·Syscall9(SB),NOSPLIT,$0-52\n\tJMP\tsyscall·Syscall9(SB)\n\nTEXT\t·RawSyscall(SB),NOSPLIT,$0-28\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT\t·RawSyscall6(SB),NOSPLIT,$0-40\n\tJMP\tsyscall·RawSyscall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_bsd_amd64.s",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build (darwin || dragonfly || freebsd || netbsd || openbsd) && gc\n\n#include \"textflag.h\"\n\n// System call support for AMD64 BSD\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT\t·Syscall9(SB),NOSPLIT,$0-104\n\tJMP\tsyscall·Syscall9(SB)\n\nTEXT\t·RawSyscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT\t·RawSyscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·RawSyscall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_bsd_arm.s",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build (freebsd || netbsd || openbsd) && gc\n\n#include \"textflag.h\"\n\n// System call support for ARM BSD\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-28\n\tB\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-40\n\tB\tsyscall·Syscall6(SB)\n\nTEXT\t·Syscall9(SB),NOSPLIT,$0-52\n\tB\tsyscall·Syscall9(SB)\n\nTEXT\t·RawSyscall(SB),NOSPLIT,$0-28\n\tB\tsyscall·RawSyscall(SB)\n\nTEXT\t·RawSyscall6(SB),NOSPLIT,$0-40\n\tB\tsyscall·RawSyscall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_bsd_arm64.s",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build (darwin || freebsd || netbsd || openbsd) && gc\n\n#include \"textflag.h\"\n\n// System call support for ARM64 BSD\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT\t·Syscall9(SB),NOSPLIT,$0-104\n\tJMP\tsyscall·Syscall9(SB)\n\nTEXT\t·RawSyscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT\t·RawSyscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·RawSyscall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s",
    "content": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build (darwin || freebsd || netbsd || openbsd) && gc\n\n#include \"textflag.h\"\n\n//\n// System call support for ppc64, BSD\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT\t·Syscall9(SB),NOSPLIT,$0-104\n\tJMP\tsyscall·Syscall9(SB)\n\nTEXT\t·RawSyscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT\t·RawSyscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·RawSyscall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_bsd_riscv64.s",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build (darwin || freebsd || netbsd || openbsd) && gc\n\n#include \"textflag.h\"\n\n// System call support for RISCV64 BSD\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT\t·Syscall9(SB),NOSPLIT,$0-104\n\tJMP\tsyscall·Syscall9(SB)\n\nTEXT\t·RawSyscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT\t·RawSyscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·RawSyscall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_linux_386.s",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build gc\n\n#include \"textflag.h\"\n\n//\n// System calls for 386, Linux\n//\n\n// See ../runtime/sys_linux_386.s for the reason why we always use int 0x80\n// instead of the glibc-specific \"CALL 0x10(GS)\".\n#define INVOKE_SYSCALL\tINT\t$0x80\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT ·Syscall(SB),NOSPLIT,$0-28\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT ·Syscall6(SB),NOSPLIT,$0-40\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT ·SyscallNoError(SB),NOSPLIT,$0-24\n\tCALL\truntime·entersyscall(SB)\n\tMOVL\ttrap+0(FP), AX  // syscall entry\n\tMOVL\ta1+4(FP), BX\n\tMOVL\ta2+8(FP), CX\n\tMOVL\ta3+12(FP), DX\n\tMOVL\t$0, SI\n\tMOVL\t$0, DI\n\tINVOKE_SYSCALL\n\tMOVL\tAX, r1+16(FP)\n\tMOVL\tDX, r2+20(FP)\n\tCALL\truntime·exitsyscall(SB)\n\tRET\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-28\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT ·RawSyscall6(SB),NOSPLIT,$0-40\n\tJMP\tsyscall·RawSyscall6(SB)\n\nTEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24\n\tMOVL\ttrap+0(FP), AX  // syscall entry\n\tMOVL\ta1+4(FP), BX\n\tMOVL\ta2+8(FP), CX\n\tMOVL\ta3+12(FP), DX\n\tMOVL\t$0, SI\n\tMOVL\t$0, DI\n\tINVOKE_SYSCALL\n\tMOVL\tAX, r1+16(FP)\n\tMOVL\tDX, r2+20(FP)\n\tRET\n\nTEXT ·socketcall(SB),NOSPLIT,$0-36\n\tJMP\tsyscall·socketcall(SB)\n\nTEXT ·rawsocketcall(SB),NOSPLIT,$0-36\n\tJMP\tsyscall·rawsocketcall(SB)\n\nTEXT ·seek(SB),NOSPLIT,$0-28\n\tJMP\tsyscall·seek(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_linux_amd64.s",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build gc\n\n#include \"textflag.h\"\n\n//\n// System calls for AMD64, Linux\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT ·Syscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT ·Syscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT ·SyscallNoError(SB),NOSPLIT,$0-48\n\tCALL\truntime·entersyscall(SB)\n\tMOVQ\ta1+8(FP), DI\n\tMOVQ\ta2+16(FP), SI\n\tMOVQ\ta3+24(FP), DX\n\tMOVQ\t$0, R10\n\tMOVQ\t$0, R8\n\tMOVQ\t$0, R9\n\tMOVQ\ttrap+0(FP), AX\t// syscall entry\n\tSYSCALL\n\tMOVQ\tAX, r1+32(FP)\n\tMOVQ\tDX, r2+40(FP)\n\tCALL\truntime·exitsyscall(SB)\n\tRET\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT ·RawSyscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·RawSyscall6(SB)\n\nTEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48\n\tMOVQ\ta1+8(FP), DI\n\tMOVQ\ta2+16(FP), SI\n\tMOVQ\ta3+24(FP), DX\n\tMOVQ\t$0, R10\n\tMOVQ\t$0, R8\n\tMOVQ\t$0, R9\n\tMOVQ\ttrap+0(FP), AX\t// syscall entry\n\tSYSCALL\n\tMOVQ\tAX, r1+32(FP)\n\tMOVQ\tDX, r2+40(FP)\n\tRET\n\nTEXT ·gettimeofday(SB),NOSPLIT,$0-16\n\tJMP\tsyscall·gettimeofday(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_linux_arm.s",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build gc\n\n#include \"textflag.h\"\n\n//\n// System calls for arm, Linux\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT ·Syscall(SB),NOSPLIT,$0-28\n\tB\tsyscall·Syscall(SB)\n\nTEXT ·Syscall6(SB),NOSPLIT,$0-40\n\tB\tsyscall·Syscall6(SB)\n\nTEXT ·SyscallNoError(SB),NOSPLIT,$0-24\n\tBL\truntime·entersyscall(SB)\n\tMOVW\ttrap+0(FP), R7\n\tMOVW\ta1+4(FP), R0\n\tMOVW\ta2+8(FP), R1\n\tMOVW\ta3+12(FP), R2\n\tMOVW\t$0, R3\n\tMOVW\t$0, R4\n\tMOVW\t$0, R5\n\tSWI\t$0\n\tMOVW\tR0, r1+16(FP)\n\tMOVW\t$0, R0\n\tMOVW\tR0, r2+20(FP)\n\tBL\truntime·exitsyscall(SB)\n\tRET\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-28\n\tB\tsyscall·RawSyscall(SB)\n\nTEXT ·RawSyscall6(SB),NOSPLIT,$0-40\n\tB\tsyscall·RawSyscall6(SB)\n\nTEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24\n\tMOVW\ttrap+0(FP), R7\t// syscall entry\n\tMOVW\ta1+4(FP), R0\n\tMOVW\ta2+8(FP), R1\n\tMOVW\ta3+12(FP), R2\n\tSWI\t$0\n\tMOVW\tR0, r1+16(FP)\n\tMOVW\t$0, R0\n\tMOVW\tR0, r2+20(FP)\n\tRET\n\nTEXT ·seek(SB),NOSPLIT,$0-28\n\tB\tsyscall·seek(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_linux_arm64.s",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && arm64 && gc\n\n#include \"textflag.h\"\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT ·Syscall(SB),NOSPLIT,$0-56\n\tB\tsyscall·Syscall(SB)\n\nTEXT ·Syscall6(SB),NOSPLIT,$0-80\n\tB\tsyscall·Syscall6(SB)\n\nTEXT ·SyscallNoError(SB),NOSPLIT,$0-48\n\tBL\truntime·entersyscall(SB)\n\tMOVD\ta1+8(FP), R0\n\tMOVD\ta2+16(FP), R1\n\tMOVD\ta3+24(FP), R2\n\tMOVD\t$0, R3\n\tMOVD\t$0, R4\n\tMOVD\t$0, R5\n\tMOVD\ttrap+0(FP), R8\t// syscall entry\n\tSVC\n\tMOVD\tR0, r1+32(FP)\t// r1\n\tMOVD\tR1, r2+40(FP)\t// r2\n\tBL\truntime·exitsyscall(SB)\n\tRET\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-56\n\tB\tsyscall·RawSyscall(SB)\n\nTEXT ·RawSyscall6(SB),NOSPLIT,$0-80\n\tB\tsyscall·RawSyscall6(SB)\n\nTEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48\n\tMOVD\ta1+8(FP), R0\n\tMOVD\ta2+16(FP), R1\n\tMOVD\ta3+24(FP), R2\n\tMOVD\t$0, R3\n\tMOVD\t$0, R4\n\tMOVD\t$0, R5\n\tMOVD\ttrap+0(FP), R8\t// syscall entry\n\tSVC\n\tMOVD\tR0, r1+32(FP)\n\tMOVD\tR1, r2+40(FP)\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_linux_loong64.s",
    "content": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && loong64 && gc\n\n#include \"textflag.h\"\n\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT ·Syscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT ·Syscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT ·SyscallNoError(SB),NOSPLIT,$0-48\n\tJAL\truntime·entersyscall(SB)\n\tMOVV\ta1+8(FP), R4\n\tMOVV\ta2+16(FP), R5\n\tMOVV\ta3+24(FP), R6\n\tMOVV\tR0, R7\n\tMOVV\tR0, R8\n\tMOVV\tR0, R9\n\tMOVV\ttrap+0(FP), R11\t// syscall entry\n\tSYSCALL\n\tMOVV\tR4, r1+32(FP)\n\tMOVV\tR0, r2+40(FP)\t// r2 is not used. Always set to 0\n\tJAL\truntime·exitsyscall(SB)\n\tRET\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT ·RawSyscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·RawSyscall6(SB)\n\nTEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48\n\tMOVV\ta1+8(FP), R4\n\tMOVV\ta2+16(FP), R5\n\tMOVV\ta3+24(FP), R6\n\tMOVV\tR0, R7\n\tMOVV\tR0, R8\n\tMOVV\tR0, R9\n\tMOVV\ttrap+0(FP), R11\t// syscall entry\n\tSYSCALL\n\tMOVV\tR4, r1+32(FP)\n\tMOVV\tR0, r2+40(FP)\t// r2 is not used. Always set to 0\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_linux_mips64x.s",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && (mips64 || mips64le) && gc\n\n#include \"textflag.h\"\n\n//\n// System calls for mips64, Linux\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT ·Syscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT ·Syscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT ·SyscallNoError(SB),NOSPLIT,$0-48\n\tJAL\truntime·entersyscall(SB)\n\tMOVV\ta1+8(FP), R4\n\tMOVV\ta2+16(FP), R5\n\tMOVV\ta3+24(FP), R6\n\tMOVV\tR0, R7\n\tMOVV\tR0, R8\n\tMOVV\tR0, R9\n\tMOVV\ttrap+0(FP), R2\t// syscall entry\n\tSYSCALL\n\tMOVV\tR2, r1+32(FP)\n\tMOVV\tR3, r2+40(FP)\n\tJAL\truntime·exitsyscall(SB)\n\tRET\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT ·RawSyscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·RawSyscall6(SB)\n\nTEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48\n\tMOVV\ta1+8(FP), R4\n\tMOVV\ta2+16(FP), R5\n\tMOVV\ta3+24(FP), R6\n\tMOVV\tR0, R7\n\tMOVV\tR0, R8\n\tMOVV\tR0, R9\n\tMOVV\ttrap+0(FP), R2\t// syscall entry\n\tSYSCALL\n\tMOVV\tR2, r1+32(FP)\n\tMOVV\tR3, r2+40(FP)\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_linux_mipsx.s",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && (mips || mipsle) && gc\n\n#include \"textflag.h\"\n\n//\n// System calls for mips, Linux\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT ·Syscall(SB),NOSPLIT,$0-28\n\tJMP syscall·Syscall(SB)\n\nTEXT ·Syscall6(SB),NOSPLIT,$0-40\n\tJMP syscall·Syscall6(SB)\n\nTEXT ·Syscall9(SB),NOSPLIT,$0-52\n\tJMP syscall·Syscall9(SB)\n\nTEXT ·SyscallNoError(SB),NOSPLIT,$0-24\n\tJAL\truntime·entersyscall(SB)\n\tMOVW\ta1+4(FP), R4\n\tMOVW\ta2+8(FP), R5\n\tMOVW\ta3+12(FP), R6\n\tMOVW\tR0, R7\n\tMOVW\ttrap+0(FP), R2\t// syscall entry\n\tSYSCALL\n\tMOVW\tR2, r1+16(FP)\t// r1\n\tMOVW\tR3, r2+20(FP)\t// r2\n\tJAL\truntime·exitsyscall(SB)\n\tRET\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-28\n\tJMP syscall·RawSyscall(SB)\n\nTEXT ·RawSyscall6(SB),NOSPLIT,$0-40\n\tJMP syscall·RawSyscall6(SB)\n\nTEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24\n\tMOVW\ta1+4(FP), R4\n\tMOVW\ta2+8(FP), R5\n\tMOVW\ta3+12(FP), R6\n\tMOVW\ttrap+0(FP), R2\t// syscall entry\n\tSYSCALL\n\tMOVW\tR2, r1+16(FP)\n\tMOVW\tR3, r2+20(FP)\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && (ppc64 || ppc64le) && gc\n\n#include \"textflag.h\"\n\n//\n// System calls for ppc64, Linux\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT ·SyscallNoError(SB),NOSPLIT,$0-48\n\tBL\truntime·entersyscall(SB)\n\tMOVD\ta1+8(FP), R3\n\tMOVD\ta2+16(FP), R4\n\tMOVD\ta3+24(FP), R5\n\tMOVD\tR0, R6\n\tMOVD\tR0, R7\n\tMOVD\tR0, R8\n\tMOVD\ttrap+0(FP), R9\t// syscall entry\n\tSYSCALL R9\n\tMOVD\tR3, r1+32(FP)\n\tMOVD\tR4, r2+40(FP)\n\tBL\truntime·exitsyscall(SB)\n\tRET\n\nTEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48\n\tMOVD\ta1+8(FP), R3\n\tMOVD\ta2+16(FP), R4\n\tMOVD\ta3+24(FP), R5\n\tMOVD\tR0, R6\n\tMOVD\tR0, R7\n\tMOVD\tR0, R8\n\tMOVD\ttrap+0(FP), R9\t// syscall entry\n\tSYSCALL R9\n\tMOVD\tR3, r1+32(FP)\n\tMOVD\tR4, r2+40(FP)\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_linux_riscv64.s",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build riscv64 && gc\n\n#include \"textflag.h\"\n\n//\n// System calls for linux/riscv64.\n//\n// Where available, just jump to package syscall's implementation of\n// these functions.\n\nTEXT ·Syscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT ·Syscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT ·SyscallNoError(SB),NOSPLIT,$0-48\n\tCALL\truntime·entersyscall(SB)\n\tMOV\ta1+8(FP), A0\n\tMOV\ta2+16(FP), A1\n\tMOV\ta3+24(FP), A2\n\tMOV\ttrap+0(FP), A7\t// syscall entry\n\tECALL\n\tMOV\tA0, r1+32(FP)\t// r1\n\tMOV\tA1, r2+40(FP)\t// r2\n\tCALL\truntime·exitsyscall(SB)\n\tRET\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT ·RawSyscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·RawSyscall6(SB)\n\nTEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48\n\tMOV\ta1+8(FP), A0\n\tMOV\ta2+16(FP), A1\n\tMOV\ta3+24(FP), A2\n\tMOV\ttrap+0(FP), A7\t// syscall entry\n\tECALL\n\tMOV\tA0, r1+32(FP)\n\tMOV\tA1, r2+40(FP)\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_linux_s390x.s",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && s390x && gc\n\n#include \"textflag.h\"\n\n//\n// System calls for s390x, Linux\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT ·Syscall(SB),NOSPLIT,$0-56\n\tBR\tsyscall·Syscall(SB)\n\nTEXT ·Syscall6(SB),NOSPLIT,$0-80\n\tBR\tsyscall·Syscall6(SB)\n\nTEXT ·SyscallNoError(SB),NOSPLIT,$0-48\n\tBL\truntime·entersyscall(SB)\n\tMOVD\ta1+8(FP), R2\n\tMOVD\ta2+16(FP), R3\n\tMOVD\ta3+24(FP), R4\n\tMOVD\t$0, R5\n\tMOVD\t$0, R6\n\tMOVD\t$0, R7\n\tMOVD\ttrap+0(FP), R1\t// syscall entry\n\tSYSCALL\n\tMOVD\tR2, r1+32(FP)\n\tMOVD\tR3, r2+40(FP)\n\tBL\truntime·exitsyscall(SB)\n\tRET\n\nTEXT ·RawSyscall(SB),NOSPLIT,$0-56\n\tBR\tsyscall·RawSyscall(SB)\n\nTEXT ·RawSyscall6(SB),NOSPLIT,$0-80\n\tBR\tsyscall·RawSyscall6(SB)\n\nTEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48\n\tMOVD\ta1+8(FP), R2\n\tMOVD\ta2+16(FP), R3\n\tMOVD\ta3+24(FP), R4\n\tMOVD\t$0, R5\n\tMOVD\t$0, R6\n\tMOVD\t$0, R7\n\tMOVD\ttrap+0(FP), R1\t// syscall entry\n\tSYSCALL\n\tMOVD\tR2, r1+32(FP)\n\tMOVD\tR3, r2+40(FP)\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build gc\n\n#include \"textflag.h\"\n\n//\n// System call support for mips64, OpenBSD\n//\n\n// Just jump to package syscall's implementation for all these functions.\n// The runtime may know about them.\n\nTEXT\t·Syscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·Syscall(SB)\n\nTEXT\t·Syscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·Syscall6(SB)\n\nTEXT\t·Syscall9(SB),NOSPLIT,$0-104\n\tJMP\tsyscall·Syscall9(SB)\n\nTEXT\t·RawSyscall(SB),NOSPLIT,$0-56\n\tJMP\tsyscall·RawSyscall(SB)\n\nTEXT\t·RawSyscall6(SB),NOSPLIT,$0-80\n\tJMP\tsyscall·RawSyscall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_solaris_amd64.s",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build gc\n\n#include \"textflag.h\"\n\n//\n// System calls for amd64, Solaris are implemented in runtime/syscall_solaris.go\n//\n\nTEXT ·sysvicall6(SB),NOSPLIT,$0-88\n\tJMP\tsyscall·sysvicall6(SB)\n\nTEXT ·rawSysvicall6(SB),NOSPLIT,$0-88\n\tJMP\tsyscall·rawSysvicall6(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/asm_zos_s390x.s",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build zos && s390x && gc\n\n#include \"textflag.h\"\n\n#define PSALAA            1208(R0)\n#define GTAB64(x)           80(x)\n#define LCA64(x)            88(x)\n#define SAVSTACK_ASYNC(x)  336(x) // in the LCA\n#define CAA(x)               8(x)\n#define CEECAATHDID(x)     976(x) // in the CAA\n#define EDCHPXV(x)        1016(x) // in the CAA\n#define GOCB(x)           1104(x) // in the CAA\n\n// SS_*, where x=SAVSTACK_ASYNC\n#define SS_LE(x)             0(x)\n#define SS_GO(x)             8(x)\n#define SS_ERRNO(x)         16(x)\n#define SS_ERRNOJR(x)       20(x)\n\n// Function Descriptor Offsets\n#define __errno  0x156*16\n#define __err2ad 0x16C*16\n\n// Call Instructions\n#define LE_CALL    BYTE $0x0D; BYTE $0x76 // BL R7, R6\n#define SVC_LOAD   BYTE $0x0A; BYTE $0x08 // SVC 08 LOAD\n#define SVC_DELETE BYTE $0x0A; BYTE $0x09 // SVC 09 DELETE\n\nDATA zosLibVec<>(SB)/8, $0\nGLOBL zosLibVec<>(SB), NOPTR, $8\n\nTEXT ·initZosLibVec(SB), NOSPLIT|NOFRAME, $0-0\n\tMOVW PSALAA, R8\n\tMOVD LCA64(R8), R8\n\tMOVD CAA(R8), R8\n\tMOVD EDCHPXV(R8), R8\n\tMOVD R8, zosLibVec<>(SB)\n\tRET\n\nTEXT ·GetZosLibVec(SB), NOSPLIT|NOFRAME, $0-0\n\tMOVD zosLibVec<>(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\nTEXT ·clearErrno(SB), NOSPLIT, $0-0\n\tBL   addrerrno<>(SB)\n\tMOVD $0, 0(R3)\n\tRET\n\n// Returns the address of errno in R3.\nTEXT addrerrno<>(SB), NOSPLIT|NOFRAME, $0-0\n\t// Get library control area (LCA).\n\tMOVW PSALAA, R8\n\tMOVD LCA64(R8), R8\n\n\t// Get __errno FuncDesc.\n\tMOVD CAA(R8), R9\n\tMOVD EDCHPXV(R9), R9\n\tADD  $(__errno), R9\n\tLMG  0(R9), R5, R6\n\n\t// Switch to saved LE stack.\n\tMOVD SAVSTACK_ASYNC(R8), R9\n\tMOVD 0(R9), R4\n\tMOVD $0, 0(R9)\n\n\t// Call __errno function.\n\tLE_CALL\n\tNOPH\n\n\t// Switch back to Go stack.\n\tXOR  R0, R0    // Restore R0 to $0.\n\tMOVD R4, 0(R9) // Save stack pointer.\n\tRET\n\n// func svcCall(fnptr unsafe.Pointer, argv *unsafe.Pointer, dsa *uint64)\nTEXT ·svcCall(SB), NOSPLIT, $0\n\tBL   runtime·save_g(SB)     // Save g and stack pointer\n\tMOVW PSALAA, R8\n\tMOVD LCA64(R8), R8\n\tMOVD SAVSTACK_ASYNC(R8), R9\n\tMOVD R15, 0(R9)\n\n\tMOVD argv+8(FP), R1   // Move function arguments into registers\n\tMOVD dsa+16(FP), g\n\tMOVD fnptr+0(FP), R15\n\n\tBYTE $0x0D // Branch to function\n\tBYTE $0xEF\n\n\tBL   runtime·load_g(SB)     // Restore g and stack pointer\n\tMOVW PSALAA, R8\n\tMOVD LCA64(R8), R8\n\tMOVD SAVSTACK_ASYNC(R8), R9\n\tMOVD 0(R9), R15\n\n\tRET\n\n// func svcLoad(name *byte) unsafe.Pointer\nTEXT ·svcLoad(SB), NOSPLIT, $0\n\tMOVD R15, R2         // Save go stack pointer\n\tMOVD name+0(FP), R0  // Move SVC args into registers\n\tMOVD $0x80000000, R1\n\tMOVD $0, R15\n\tSVC_LOAD\n\tMOVW R15, R3         // Save return code from SVC\n\tMOVD R2, R15         // Restore go stack pointer\n\tCMP  R3, $0          // Check SVC return code\n\tBNE  error\n\n\tMOVD $-2, R3       // Reset last bit of entry point to zero\n\tAND  R0, R3\n\tMOVD R3, ret+8(FP) // Return entry point returned by SVC\n\tCMP  R0, R3        // Check if last bit of entry point was set\n\tBNE  done\n\n\tMOVD R15, R2 // Save go stack pointer\n\tMOVD $0, R15 // Move SVC args into registers (entry point still in r0 from SVC 08)\n\tSVC_DELETE\n\tMOVD R2, R15 // Restore go stack pointer\n\nerror:\n\tMOVD $0, ret+8(FP) // Return 0 on failure\n\ndone:\n\tXOR R0, R0 // Reset r0 to 0\n\tRET\n\n// func svcUnload(name *byte, fnptr unsafe.Pointer) int64\nTEXT ·svcUnload(SB), NOSPLIT, $0\n\tMOVD R15, R2          // Save go stack pointer\n\tMOVD name+0(FP), R0   // Move SVC args into registers\n\tMOVD fnptr+8(FP), R15\n\tSVC_DELETE\n\tXOR  R0, R0           // Reset r0 to 0\n\tMOVD R15, R1          // Save SVC return code\n\tMOVD R2, R15          // Restore go stack pointer\n\tMOVD R1, ret+16(FP)   // Return SVC return code\n\tRET\n\n// func gettid() uint64\nTEXT ·gettid(SB), NOSPLIT, $0\n\t// Get library control area (LCA).\n\tMOVW PSALAA, R8\n\tMOVD LCA64(R8), R8\n\n\t// Get CEECAATHDID\n\tMOVD CAA(R8), R9\n\tMOVD CEECAATHDID(R9), R9\n\tMOVD R9, ret+0(FP)\n\n\tRET\n\n//\n// Call LE function, if the return is -1\n// errno and errno2 is retrieved\n//\nTEXT ·CallLeFuncWithErr(SB), NOSPLIT, $0\n\tMOVW PSALAA, R8\n\tMOVD LCA64(R8), R8\n\tMOVD CAA(R8), R9\n\tMOVD g, GOCB(R9)\n\n\t// Restore LE stack.\n\tMOVD SAVSTACK_ASYNC(R8), R9 // R9-> LE stack frame saving address\n\tMOVD 0(R9), R4              // R4-> restore previously saved stack frame pointer\n\n\tMOVD parms_base+8(FP), R7 // R7 -> argument array\n\tMOVD parms_len+16(FP), R8 // R8 number of arguments\n\n\t//  arg 1 ---> R1\n\tCMP  R8, $0\n\tBEQ  docall\n\tSUB  $1, R8\n\tMOVD 0(R7), R1\n\n\t//  arg 2 ---> R2\n\tCMP  R8, $0\n\tBEQ  docall\n\tSUB  $1, R8\n\tADD  $8, R7\n\tMOVD 0(R7), R2\n\n\t//  arg 3 --> R3\n\tCMP  R8, $0\n\tBEQ  docall\n\tSUB  $1, R8\n\tADD  $8, R7\n\tMOVD 0(R7), R3\n\n\tCMP  R8, $0\n\tBEQ  docall\n\tMOVD $2176+16, R6 // starting LE stack address-8 to store 4th argument\n\nrepeat:\n\tADD  $8, R7\n\tMOVD 0(R7), R0      // advance arg pointer by 8 byte\n\tADD  $8, R6         // advance LE argument address by 8 byte\n\tMOVD R0, (R4)(R6*1) // copy argument from go-slice to le-frame\n\tSUB  $1, R8\n\tCMP  R8, $0\n\tBNE  repeat\n\ndocall:\n\tMOVD funcdesc+0(FP), R8 // R8-> function descriptor\n\tLMG  0(R8), R5, R6\n\tMOVD $0, 0(R9)          // R9 address of SAVSTACK_ASYNC\n\tLE_CALL                 // balr R7, R6 (return #1)\n\tNOPH\n\tMOVD R3, ret+32(FP)\n\tCMP  R3, $-1            // compare result to -1\n\tBNE  done\n\n\t// retrieve errno and errno2\n\tMOVD  zosLibVec<>(SB), R8\n\tADD   $(__errno), R8\n\tLMG   0(R8), R5, R6\n\tLE_CALL                   // balr R7, R6 __errno (return #3)\n\tNOPH\n\tMOVWZ 0(R3), R3\n\tMOVD  R3, err+48(FP)\n\tMOVD  zosLibVec<>(SB), R8\n\tADD   $(__err2ad), R8\n\tLMG   0(R8), R5, R6\n\tLE_CALL                   // balr R7, R6 __err2ad (return #2)\n\tNOPH\n\tMOVW  (R3), R2            // retrieve errno2\n\tMOVD  R2, errno2+40(FP)   // store in return area\n\ndone:\n\tMOVD R4, 0(R9)            // Save stack pointer.\n\tRET\n\n//\n// Call LE function, if the return is 0\n// errno and errno2 is retrieved\n//\nTEXT ·CallLeFuncWithPtrReturn(SB), NOSPLIT, $0\n\tMOVW PSALAA, R8\n\tMOVD LCA64(R8), R8\n\tMOVD CAA(R8), R9\n\tMOVD g, GOCB(R9)\n\n\t// Restore LE stack.\n\tMOVD SAVSTACK_ASYNC(R8), R9 // R9-> LE stack frame saving address\n\tMOVD 0(R9), R4              // R4-> restore previously saved stack frame pointer\n\n\tMOVD parms_base+8(FP), R7 // R7 -> argument array\n\tMOVD parms_len+16(FP), R8 // R8 number of arguments\n\n\t//  arg 1 ---> R1\n\tCMP  R8, $0\n\tBEQ  docall\n\tSUB  $1, R8\n\tMOVD 0(R7), R1\n\n\t//  arg 2 ---> R2\n\tCMP  R8, $0\n\tBEQ  docall\n\tSUB  $1, R8\n\tADD  $8, R7\n\tMOVD 0(R7), R2\n\n\t//  arg 3 --> R3\n\tCMP  R8, $0\n\tBEQ  docall\n\tSUB  $1, R8\n\tADD  $8, R7\n\tMOVD 0(R7), R3\n\n\tCMP  R8, $0\n\tBEQ  docall\n\tMOVD $2176+16, R6 // starting LE stack address-8 to store 4th argument\n\nrepeat:\n\tADD  $8, R7\n\tMOVD 0(R7), R0      // advance arg pointer by 8 byte\n\tADD  $8, R6         // advance LE argument address by 8 byte\n\tMOVD R0, (R4)(R6*1) // copy argument from go-slice to le-frame\n\tSUB  $1, R8\n\tCMP  R8, $0\n\tBNE  repeat\n\ndocall:\n\tMOVD funcdesc+0(FP), R8 // R8-> function descriptor\n\tLMG  0(R8), R5, R6\n\tMOVD $0, 0(R9)          // R9 address of SAVSTACK_ASYNC\n\tLE_CALL                 // balr R7, R6 (return #1)\n\tNOPH\n\tMOVD R3, ret+32(FP)\n\tCMP  R3, $0             // compare result to 0\n\tBNE  done\n\n\t// retrieve errno and errno2\n\tMOVD  zosLibVec<>(SB), R8\n\tADD   $(__errno), R8\n\tLMG   0(R8), R5, R6\n\tLE_CALL                   // balr R7, R6 __errno (return #3)\n\tNOPH\n\tMOVWZ 0(R3), R3\n\tMOVD  R3, err+48(FP)\n\tMOVD  zosLibVec<>(SB), R8\n\tADD   $(__err2ad), R8\n\tLMG   0(R8), R5, R6\n\tLE_CALL                   // balr R7, R6 __err2ad (return #2)\n\tNOPH\n\tMOVW  (R3), R2            // retrieve errno2\n\tMOVD  R2, errno2+40(FP)   // store in return area\n\tXOR   R2, R2\n\tMOVWZ R2, (R3)            // clear errno2\n\ndone:\n\tMOVD R4, 0(R9)            // Save stack pointer.\n\tRET\n\n//\n// function to test if a pointer can be safely dereferenced (content read)\n// return 0 for succces\n//\nTEXT ·ptrtest(SB), NOSPLIT, $0-16\n\tMOVD arg+0(FP), R10 // test pointer in R10\n\n\t// set up R2 to point to CEECAADMC\n\tBYTE $0xE3; BYTE $0x20; BYTE $0x04; BYTE $0xB8; BYTE $0x00; BYTE $0x17 // llgt  2,1208\n\tBYTE $0xB9; BYTE $0x17; BYTE $0x00; BYTE $0x22                         // llgtr 2,2\n\tBYTE $0xA5; BYTE $0x26; BYTE $0x7F; BYTE $0xFF                         // nilh  2,32767\n\tBYTE $0xE3; BYTE $0x22; BYTE $0x00; BYTE $0x58; BYTE $0x00; BYTE $0x04 // lg    2,88(2)\n\tBYTE $0xE3; BYTE $0x22; BYTE $0x00; BYTE $0x08; BYTE $0x00; BYTE $0x04 // lg    2,8(2)\n\tBYTE $0x41; BYTE $0x22; BYTE $0x03; BYTE $0x68                         // la    2,872(2)\n\n\t// set up R5 to point to the \"shunt\" path which set 1 to R3 (failure)\n\tBYTE $0xB9; BYTE $0x82; BYTE $0x00; BYTE $0x33 // xgr   3,3\n\tBYTE $0xA7; BYTE $0x55; BYTE $0x00; BYTE $0x04 // bras  5,lbl1\n\tBYTE $0xA7; BYTE $0x39; BYTE $0x00; BYTE $0x01 // lghi  3,1\n\n\t// if r3 is not zero (failed) then branch to finish\n\tBYTE $0xB9; BYTE $0x02; BYTE $0x00; BYTE $0x33 // lbl1     ltgr  3,3\n\tBYTE $0xA7; BYTE $0x74; BYTE $0x00; BYTE $0x08 // brc   b'0111',lbl2\n\n\t// stomic store shunt address in R5 into CEECAADMC\n\tBYTE $0xE3; BYTE $0x52; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x24 // stg   5,0(2)\n\n\t// now try reading from the test pointer in R10, if it fails it branches to the \"lghi\" instruction above\n\tBYTE $0xE3; BYTE $0x9A; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x04 // lg    9,0(10)\n\n\t// finish here, restore 0 into CEECAADMC\n\tBYTE $0xB9; BYTE $0x82; BYTE $0x00; BYTE $0x99                         // lbl2     xgr   9,9\n\tBYTE $0xE3; BYTE $0x92; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x24 // stg   9,0(2)\n\tMOVD R3, ret+8(FP)                                                     // result in R3\n\tRET\n\n//\n// function to test if a untptr can be loaded from a pointer\n// return 1: the 8-byte content\n//        2: 0 for success, 1 for failure\n//\n// func safeload(ptr uintptr) ( value uintptr, error uintptr)\nTEXT ·safeload(SB), NOSPLIT, $0-24\n\tMOVD ptr+0(FP), R10                                                    // test pointer in R10\n\tMOVD $0x0, R6\n\tBYTE $0xE3; BYTE $0x20; BYTE $0x04; BYTE $0xB8; BYTE $0x00; BYTE $0x17 // llgt  2,1208\n\tBYTE $0xB9; BYTE $0x17; BYTE $0x00; BYTE $0x22                         // llgtr 2,2\n\tBYTE $0xA5; BYTE $0x26; BYTE $0x7F; BYTE $0xFF                         // nilh  2,32767\n\tBYTE $0xE3; BYTE $0x22; BYTE $0x00; BYTE $0x58; BYTE $0x00; BYTE $0x04 // lg    2,88(2)\n\tBYTE $0xE3; BYTE $0x22; BYTE $0x00; BYTE $0x08; BYTE $0x00; BYTE $0x04 // lg    2,8(2)\n\tBYTE $0x41; BYTE $0x22; BYTE $0x03; BYTE $0x68                         // la    2,872(2)\n\tBYTE $0xB9; BYTE $0x82; BYTE $0x00; BYTE $0x33                         // xgr   3,3\n\tBYTE $0xA7; BYTE $0x55; BYTE $0x00; BYTE $0x04                         // bras  5,lbl1\n\tBYTE $0xA7; BYTE $0x39; BYTE $0x00; BYTE $0x01                         // lghi  3,1\n\tBYTE $0xB9; BYTE $0x02; BYTE $0x00; BYTE $0x33                         // lbl1     ltgr  3,3\n\tBYTE $0xA7; BYTE $0x74; BYTE $0x00; BYTE $0x08                         // brc   b'0111',lbl2\n\tBYTE $0xE3; BYTE $0x52; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x24 // stg 5,0(2)\n\tBYTE $0xE3; BYTE $0x6A; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x04 // lg    6,0(10)\n\tBYTE $0xB9; BYTE $0x82; BYTE $0x00; BYTE $0x99                         // lbl2     xgr   9,9\n\tBYTE $0xE3; BYTE $0x92; BYTE $0x00; BYTE $0x00; BYTE $0x00; BYTE $0x24 // stg   9,0(2)\n\tMOVD R6, value+8(FP)                                                   // result in R6\n\tMOVD R3, error+16(FP)                                                  // error in R3\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/auxv.go",
    "content": "// Copyright 2025 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build go1.21 && (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos)\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n//go:linkname runtime_getAuxv runtime.getAuxv\nfunc runtime_getAuxv() []uintptr\n\n// Auxv returns the ELF auxiliary vector as a sequence of key/value pairs.\n// The returned slice is always a fresh copy, owned by the caller.\n// It returns an error on non-ELF platforms, or if the auxiliary vector cannot be accessed,\n// which happens in some locked-down environments and build modes.\nfunc Auxv() ([][2]uintptr, error) {\n\tvec := runtime_getAuxv()\n\tvecLen := len(vec)\n\n\tif vecLen == 0 {\n\t\treturn nil, syscall.ENOENT\n\t}\n\n\tif vecLen%2 != 0 {\n\t\treturn nil, syscall.EINVAL\n\t}\n\n\tresult := make([]uintptr, vecLen)\n\tcopy(result, vec)\n\treturn unsafe.Slice((*[2]uintptr)(unsafe.Pointer(&result[0])), vecLen/2), nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/auxv_unsupported.go",
    "content": "// Copyright 2025 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build !go1.21 && (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos)\n\npackage unix\n\nimport \"syscall\"\n\nfunc Auxv() ([][2]uintptr, error) {\n\treturn nil, syscall.ENOTSUP\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/bluetooth_linux.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Bluetooth sockets and messages\n\npackage unix\n\n// Bluetooth Protocols\nconst (\n\tBTPROTO_L2CAP  = 0\n\tBTPROTO_HCI    = 1\n\tBTPROTO_SCO    = 2\n\tBTPROTO_RFCOMM = 3\n\tBTPROTO_BNEP   = 4\n\tBTPROTO_CMTP   = 5\n\tBTPROTO_HIDP   = 6\n\tBTPROTO_AVDTP  = 7\n)\n\nconst (\n\tHCI_CHANNEL_RAW     = 0\n\tHCI_CHANNEL_USER    = 1\n\tHCI_CHANNEL_MONITOR = 2\n\tHCI_CHANNEL_CONTROL = 3\n\tHCI_CHANNEL_LOGGING = 4\n)\n\n// Socketoption Level\nconst (\n\tSOL_BLUETOOTH = 0x112\n\tSOL_HCI       = 0x0\n\tSOL_L2CAP     = 0x6\n\tSOL_RFCOMM    = 0x12\n\tSOL_SCO       = 0x11\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/bpxsvc_zos.go",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build zos\n\npackage unix\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"unsafe\"\n)\n\n//go:noescape\nfunc bpxcall(plist []unsafe.Pointer, bpx_offset int64)\n\n//go:noescape\nfunc A2e([]byte)\n\n//go:noescape\nfunc E2a([]byte)\n\nconst (\n\tBPX4STA = 192  // stat\n\tBPX4FST = 104  // fstat\n\tBPX4LST = 132  // lstat\n\tBPX4OPN = 156  // open\n\tBPX4CLO = 72   // close\n\tBPX4CHR = 500  // chattr\n\tBPX4FCR = 504  // fchattr\n\tBPX4LCR = 1180 // lchattr\n\tBPX4CTW = 492  // cond_timed_wait\n\tBPX4GTH = 1056 // __getthent\n\tBPX4PTQ = 412  // pthread_quiesc\n\tBPX4PTR = 320  // ptrace\n)\n\nconst (\n\t//options\n\t//byte1\n\tBPX_OPNFHIGH = 0x80\n\t//byte2\n\tBPX_OPNFEXEC = 0x80\n\t//byte3\n\tBPX_O_NOLARGEFILE = 0x08\n\tBPX_O_LARGEFILE   = 0x04\n\tBPX_O_ASYNCSIG    = 0x02\n\tBPX_O_SYNC        = 0x01\n\t//byte4\n\tBPX_O_CREXCL   = 0xc0\n\tBPX_O_CREAT    = 0x80\n\tBPX_O_EXCL     = 0x40\n\tBPX_O_NOCTTY   = 0x20\n\tBPX_O_TRUNC    = 0x10\n\tBPX_O_APPEND   = 0x08\n\tBPX_O_NONBLOCK = 0x04\n\tBPX_FNDELAY    = 0x04\n\tBPX_O_RDWR     = 0x03\n\tBPX_O_RDONLY   = 0x02\n\tBPX_O_WRONLY   = 0x01\n\tBPX_O_ACCMODE  = 0x03\n\tBPX_O_GETFL    = 0x0f\n\n\t//mode\n\t// byte1 (file type)\n\tBPX_FT_DIR      = 1\n\tBPX_FT_CHARSPEC = 2\n\tBPX_FT_REGFILE  = 3\n\tBPX_FT_FIFO     = 4\n\tBPX_FT_SYMLINK  = 5\n\tBPX_FT_SOCKET   = 6\n\t//byte3\n\tBPX_S_ISUID  = 0x08\n\tBPX_S_ISGID  = 0x04\n\tBPX_S_ISVTX  = 0x02\n\tBPX_S_IRWXU1 = 0x01\n\tBPX_S_IRUSR  = 0x01\n\t//byte4\n\tBPX_S_IRWXU2 = 0xc0\n\tBPX_S_IWUSR  = 0x80\n\tBPX_S_IXUSR  = 0x40\n\tBPX_S_IRWXG  = 0x38\n\tBPX_S_IRGRP  = 0x20\n\tBPX_S_IWGRP  = 0x10\n\tBPX_S_IXGRP  = 0x08\n\tBPX_S_IRWXOX = 0x07\n\tBPX_S_IROTH  = 0x04\n\tBPX_S_IWOTH  = 0x02\n\tBPX_S_IXOTH  = 0x01\n\n\tCW_INTRPT  = 1\n\tCW_CONDVAR = 32\n\tCW_TIMEOUT = 64\n\n\tPGTHA_NEXT        = 2\n\tPGTHA_CURRENT     = 1\n\tPGTHA_FIRST       = 0\n\tPGTHA_LAST        = 3\n\tPGTHA_PROCESS     = 0x80\n\tPGTHA_CONTTY      = 0x40\n\tPGTHA_PATH        = 0x20\n\tPGTHA_COMMAND     = 0x10\n\tPGTHA_FILEDATA    = 0x08\n\tPGTHA_THREAD      = 0x04\n\tPGTHA_PTAG        = 0x02\n\tPGTHA_COMMANDLONG = 0x01\n\tPGTHA_THREADFAST  = 0x80\n\tPGTHA_FILEPATH    = 0x40\n\tPGTHA_THDSIGMASK  = 0x20\n\t// thread quiece mode\n\tQUIESCE_TERM       int32 = 1\n\tQUIESCE_FORCE      int32 = 2\n\tQUIESCE_QUERY      int32 = 3\n\tQUIESCE_FREEZE     int32 = 4\n\tQUIESCE_UNFREEZE   int32 = 5\n\tFREEZE_THIS_THREAD int32 = 6\n\tFREEZE_EXIT        int32 = 8\n\tQUIESCE_SRB        int32 = 9\n)\n\ntype Pgtha struct {\n\tPid        uint32 // 0\n\tTid0       uint32 // 4\n\tTid1       uint32\n\tAccesspid  byte    // C\n\tAccesstid  byte    // D\n\tAccessasid uint16  // E\n\tLoginname  [8]byte // 10\n\tFlag1      byte    // 18\n\tFlag1b2    byte    // 19\n}\n\ntype Bpxystat_t struct { // DSECT BPXYSTAT\n\tSt_id           [4]uint8  // 0\n\tSt_length       uint16    // 0x4\n\tSt_version      uint16    // 0x6\n\tSt_mode         uint32    // 0x8\n\tSt_ino          uint32    // 0xc\n\tSt_dev          uint32    // 0x10\n\tSt_nlink        uint32    // 0x14\n\tSt_uid          uint32    // 0x18\n\tSt_gid          uint32    // 0x1c\n\tSt_size         uint64    // 0x20\n\tSt_atime        uint32    // 0x28\n\tSt_mtime        uint32    // 0x2c\n\tSt_ctime        uint32    // 0x30\n\tSt_rdev         uint32    // 0x34\n\tSt_auditoraudit uint32    // 0x38\n\tSt_useraudit    uint32    // 0x3c\n\tSt_blksize      uint32    // 0x40\n\tSt_createtime   uint32    // 0x44\n\tSt_auditid      [4]uint32 // 0x48\n\tSt_res01        uint32    // 0x58\n\tFt_ccsid        uint16    // 0x5c\n\tFt_flags        uint16    // 0x5e\n\tSt_res01a       [2]uint32 // 0x60\n\tSt_res02        uint32    // 0x68\n\tSt_blocks       uint32    // 0x6c\n\tSt_opaque       [3]uint8  // 0x70\n\tSt_visible      uint8     // 0x73\n\tSt_reftime      uint32    // 0x74\n\tSt_fid          uint64    // 0x78\n\tSt_filefmt      uint8     // 0x80\n\tSt_fspflag2     uint8     // 0x81\n\tSt_res03        [2]uint8  // 0x82\n\tSt_ctimemsec    uint32    // 0x84\n\tSt_seclabel     [8]uint8  // 0x88\n\tSt_res04        [4]uint8  // 0x90\n\t// end of version 1\n\t_               uint32    // 0x94\n\tSt_atime64      uint64    // 0x98\n\tSt_mtime64      uint64    // 0xa0\n\tSt_ctime64      uint64    // 0xa8\n\tSt_createtime64 uint64    // 0xb0\n\tSt_reftime64    uint64    // 0xb8\n\t_               uint64    // 0xc0\n\tSt_res05        [16]uint8 // 0xc8\n\t// end of version 2\n}\n\ntype BpxFilestatus struct {\n\tOflag1 byte\n\tOflag2 byte\n\tOflag3 byte\n\tOflag4 byte\n}\n\ntype BpxMode struct {\n\tFtype byte\n\tMode1 byte\n\tMode2 byte\n\tMode3 byte\n}\n\n// Thr attribute structure for extended attributes\ntype Bpxyatt_t struct { // DSECT BPXYATT\n\tAtt_id           [4]uint8\n\tAtt_version      uint16\n\tAtt_res01        [2]uint8\n\tAtt_setflags1    uint8\n\tAtt_setflags2    uint8\n\tAtt_setflags3    uint8\n\tAtt_setflags4    uint8\n\tAtt_mode         uint32\n\tAtt_uid          uint32\n\tAtt_gid          uint32\n\tAtt_opaquemask   [3]uint8\n\tAtt_visblmaskres uint8\n\tAtt_opaque       [3]uint8\n\tAtt_visibleres   uint8\n\tAtt_size_h       uint32\n\tAtt_size_l       uint32\n\tAtt_atime        uint32\n\tAtt_mtime        uint32\n\tAtt_auditoraudit uint32\n\tAtt_useraudit    uint32\n\tAtt_ctime        uint32\n\tAtt_reftime      uint32\n\t// end of version 1\n\tAtt_filefmt uint8\n\tAtt_res02   [3]uint8\n\tAtt_filetag uint32\n\tAtt_res03   [8]uint8\n\t// end of version 2\n\tAtt_atime64   uint64\n\tAtt_mtime64   uint64\n\tAtt_ctime64   uint64\n\tAtt_reftime64 uint64\n\tAtt_seclabel  [8]uint8\n\tAtt_ver3res02 [8]uint8\n\t// end of version 3\n}\n\nfunc BpxOpen(name string, options *BpxFilestatus, mode *BpxMode) (rv int32, rc int32, rn int32) {\n\tif len(name) < 1024 {\n\t\tvar namebuf [1024]byte\n\t\tsz := int32(copy(namebuf[:], name))\n\t\tA2e(namebuf[:sz])\n\t\tvar parms [7]unsafe.Pointer\n\t\tparms[0] = unsafe.Pointer(&sz)\n\t\tparms[1] = unsafe.Pointer(&namebuf[0])\n\t\tparms[2] = unsafe.Pointer(options)\n\t\tparms[3] = unsafe.Pointer(mode)\n\t\tparms[4] = unsafe.Pointer(&rv)\n\t\tparms[5] = unsafe.Pointer(&rc)\n\t\tparms[6] = unsafe.Pointer(&rn)\n\t\tbpxcall(parms[:], BPX4OPN)\n\t\treturn rv, rc, rn\n\t}\n\treturn -1, -1, -1\n}\n\nfunc BpxClose(fd int32) (rv int32, rc int32, rn int32) {\n\tvar parms [4]unsafe.Pointer\n\tparms[0] = unsafe.Pointer(&fd)\n\tparms[1] = unsafe.Pointer(&rv)\n\tparms[2] = unsafe.Pointer(&rc)\n\tparms[3] = unsafe.Pointer(&rn)\n\tbpxcall(parms[:], BPX4CLO)\n\treturn rv, rc, rn\n}\n\nfunc BpxFileFStat(fd int32, st *Bpxystat_t) (rv int32, rc int32, rn int32) {\n\tst.St_id = [4]uint8{0xe2, 0xe3, 0xc1, 0xe3}\n\tst.St_version = 2\n\tstat_sz := uint32(unsafe.Sizeof(*st))\n\tvar parms [6]unsafe.Pointer\n\tparms[0] = unsafe.Pointer(&fd)\n\tparms[1] = unsafe.Pointer(&stat_sz)\n\tparms[2] = unsafe.Pointer(st)\n\tparms[3] = unsafe.Pointer(&rv)\n\tparms[4] = unsafe.Pointer(&rc)\n\tparms[5] = unsafe.Pointer(&rn)\n\tbpxcall(parms[:], BPX4FST)\n\treturn rv, rc, rn\n}\n\nfunc BpxFileStat(name string, st *Bpxystat_t) (rv int32, rc int32, rn int32) {\n\tif len(name) < 1024 {\n\t\tvar namebuf [1024]byte\n\t\tsz := int32(copy(namebuf[:], name))\n\t\tA2e(namebuf[:sz])\n\t\tst.St_id = [4]uint8{0xe2, 0xe3, 0xc1, 0xe3}\n\t\tst.St_version = 2\n\t\tstat_sz := uint32(unsafe.Sizeof(*st))\n\t\tvar parms [7]unsafe.Pointer\n\t\tparms[0] = unsafe.Pointer(&sz)\n\t\tparms[1] = unsafe.Pointer(&namebuf[0])\n\t\tparms[2] = unsafe.Pointer(&stat_sz)\n\t\tparms[3] = unsafe.Pointer(st)\n\t\tparms[4] = unsafe.Pointer(&rv)\n\t\tparms[5] = unsafe.Pointer(&rc)\n\t\tparms[6] = unsafe.Pointer(&rn)\n\t\tbpxcall(parms[:], BPX4STA)\n\t\treturn rv, rc, rn\n\t}\n\treturn -1, -1, -1\n}\n\nfunc BpxFileLStat(name string, st *Bpxystat_t) (rv int32, rc int32, rn int32) {\n\tif len(name) < 1024 {\n\t\tvar namebuf [1024]byte\n\t\tsz := int32(copy(namebuf[:], name))\n\t\tA2e(namebuf[:sz])\n\t\tst.St_id = [4]uint8{0xe2, 0xe3, 0xc1, 0xe3}\n\t\tst.St_version = 2\n\t\tstat_sz := uint32(unsafe.Sizeof(*st))\n\t\tvar parms [7]unsafe.Pointer\n\t\tparms[0] = unsafe.Pointer(&sz)\n\t\tparms[1] = unsafe.Pointer(&namebuf[0])\n\t\tparms[2] = unsafe.Pointer(&stat_sz)\n\t\tparms[3] = unsafe.Pointer(st)\n\t\tparms[4] = unsafe.Pointer(&rv)\n\t\tparms[5] = unsafe.Pointer(&rc)\n\t\tparms[6] = unsafe.Pointer(&rn)\n\t\tbpxcall(parms[:], BPX4LST)\n\t\treturn rv, rc, rn\n\t}\n\treturn -1, -1, -1\n}\n\nfunc BpxChattr(path string, attr *Bpxyatt_t) (rv int32, rc int32, rn int32) {\n\tif len(path) >= 1024 {\n\t\treturn -1, -1, -1\n\t}\n\tvar namebuf [1024]byte\n\tsz := int32(copy(namebuf[:], path))\n\tA2e(namebuf[:sz])\n\tattr_sz := uint32(unsafe.Sizeof(*attr))\n\tvar parms [7]unsafe.Pointer\n\tparms[0] = unsafe.Pointer(&sz)\n\tparms[1] = unsafe.Pointer(&namebuf[0])\n\tparms[2] = unsafe.Pointer(&attr_sz)\n\tparms[3] = unsafe.Pointer(attr)\n\tparms[4] = unsafe.Pointer(&rv)\n\tparms[5] = unsafe.Pointer(&rc)\n\tparms[6] = unsafe.Pointer(&rn)\n\tbpxcall(parms[:], BPX4CHR)\n\treturn rv, rc, rn\n}\n\nfunc BpxLchattr(path string, attr *Bpxyatt_t) (rv int32, rc int32, rn int32) {\n\tif len(path) >= 1024 {\n\t\treturn -1, -1, -1\n\t}\n\tvar namebuf [1024]byte\n\tsz := int32(copy(namebuf[:], path))\n\tA2e(namebuf[:sz])\n\tattr_sz := uint32(unsafe.Sizeof(*attr))\n\tvar parms [7]unsafe.Pointer\n\tparms[0] = unsafe.Pointer(&sz)\n\tparms[1] = unsafe.Pointer(&namebuf[0])\n\tparms[2] = unsafe.Pointer(&attr_sz)\n\tparms[3] = unsafe.Pointer(attr)\n\tparms[4] = unsafe.Pointer(&rv)\n\tparms[5] = unsafe.Pointer(&rc)\n\tparms[6] = unsafe.Pointer(&rn)\n\tbpxcall(parms[:], BPX4LCR)\n\treturn rv, rc, rn\n}\n\nfunc BpxFchattr(fd int32, attr *Bpxyatt_t) (rv int32, rc int32, rn int32) {\n\tattr_sz := uint32(unsafe.Sizeof(*attr))\n\tvar parms [6]unsafe.Pointer\n\tparms[0] = unsafe.Pointer(&fd)\n\tparms[1] = unsafe.Pointer(&attr_sz)\n\tparms[2] = unsafe.Pointer(attr)\n\tparms[3] = unsafe.Pointer(&rv)\n\tparms[4] = unsafe.Pointer(&rc)\n\tparms[5] = unsafe.Pointer(&rn)\n\tbpxcall(parms[:], BPX4FCR)\n\treturn rv, rc, rn\n}\n\nfunc BpxCondTimedWait(sec uint32, nsec uint32, events uint32, secrem *uint32, nsecrem *uint32) (rv int32, rc int32, rn int32) {\n\tvar parms [8]unsafe.Pointer\n\tparms[0] = unsafe.Pointer(&sec)\n\tparms[1] = unsafe.Pointer(&nsec)\n\tparms[2] = unsafe.Pointer(&events)\n\tparms[3] = unsafe.Pointer(secrem)\n\tparms[4] = unsafe.Pointer(nsecrem)\n\tparms[5] = unsafe.Pointer(&rv)\n\tparms[6] = unsafe.Pointer(&rc)\n\tparms[7] = unsafe.Pointer(&rn)\n\tbpxcall(parms[:], BPX4CTW)\n\treturn rv, rc, rn\n}\nfunc BpxGetthent(in *Pgtha, outlen *uint32, out unsafe.Pointer) (rv int32, rc int32, rn int32) {\n\tvar parms [7]unsafe.Pointer\n\tinlen := uint32(26) // nothing else will work. Go says Pgtha is 28-byte because of alignment, but Pgtha is \"packed\" and must be 26-byte\n\tparms[0] = unsafe.Pointer(&inlen)\n\tparms[1] = unsafe.Pointer(&in)\n\tparms[2] = unsafe.Pointer(outlen)\n\tparms[3] = unsafe.Pointer(&out)\n\tparms[4] = unsafe.Pointer(&rv)\n\tparms[5] = unsafe.Pointer(&rc)\n\tparms[6] = unsafe.Pointer(&rn)\n\tbpxcall(parms[:], BPX4GTH)\n\treturn rv, rc, rn\n}\nfunc ZosJobname() (jobname string, err error) {\n\tvar pgtha Pgtha\n\tpgtha.Pid = uint32(Getpid())\n\tpgtha.Accesspid = PGTHA_CURRENT\n\tpgtha.Flag1 = PGTHA_PROCESS\n\tvar out [256]byte\n\tvar outlen uint32\n\toutlen = 256\n\trv, rc, rn := BpxGetthent(&pgtha, &outlen, unsafe.Pointer(&out[0]))\n\tif rv == 0 {\n\t\tgthc := []byte{0x87, 0xa3, 0x88, 0x83} // 'gthc' in ebcdic\n\t\tix := bytes.Index(out[:], gthc)\n\t\tif ix == -1 {\n\t\t\terr = fmt.Errorf(\"BPX4GTH: gthc return data not found\")\n\t\t\treturn\n\t\t}\n\t\tjn := out[ix+80 : ix+88] // we didn't declare Pgthc, but jobname is 8-byte at offset 80\n\t\tE2a(jn)\n\t\tjobname = string(bytes.TrimRight(jn, \" \"))\n\n\t} else {\n\t\terr = fmt.Errorf(\"BPX4GTH: rc=%d errno=%d reason=code=0x%x\", rv, rc, rn)\n\t}\n\treturn\n}\nfunc Bpx4ptq(code int32, data string) (rv int32, rc int32, rn int32) {\n\tvar userdata [8]byte\n\tvar parms [5]unsafe.Pointer\n\tcopy(userdata[:], data+\"        \")\n\tA2e(userdata[:])\n\tparms[0] = unsafe.Pointer(&code)\n\tparms[1] = unsafe.Pointer(&userdata[0])\n\tparms[2] = unsafe.Pointer(&rv)\n\tparms[3] = unsafe.Pointer(&rc)\n\tparms[4] = unsafe.Pointer(&rn)\n\tbpxcall(parms[:], BPX4PTQ)\n\treturn rv, rc, rn\n}\n\nconst (\n\tPT_TRACE_ME             = 0  // Debug this process\n\tPT_READ_I               = 1  // Read a full word\n\tPT_READ_D               = 2  // Read a full word\n\tPT_READ_U               = 3  // Read control info\n\tPT_WRITE_I              = 4  //Write a full word\n\tPT_WRITE_D              = 5  //Write a full word\n\tPT_CONTINUE             = 7  //Continue the process\n\tPT_KILL                 = 8  //Terminate the process\n\tPT_READ_GPR             = 11 // Read GPR, CR, PSW\n\tPT_READ_FPR             = 12 // Read FPR\n\tPT_READ_VR              = 13 // Read VR\n\tPT_WRITE_GPR            = 14 // Write GPR, CR, PSW\n\tPT_WRITE_FPR            = 15 // Write FPR\n\tPT_WRITE_VR             = 16 // Write VR\n\tPT_READ_BLOCK           = 17 // Read storage\n\tPT_WRITE_BLOCK          = 19 // Write storage\n\tPT_READ_GPRH            = 20 // Read GPRH\n\tPT_WRITE_GPRH           = 21 // Write GPRH\n\tPT_REGHSET              = 22 // Read all GPRHs\n\tPT_ATTACH               = 30 // Attach to a process\n\tPT_DETACH               = 31 // Detach from a process\n\tPT_REGSET               = 32 // Read all GPRs\n\tPT_REATTACH             = 33 // Reattach to a process\n\tPT_LDINFO               = 34 // Read loader info\n\tPT_MULTI                = 35 // Multi process mode\n\tPT_LD64INFO             = 36 // RMODE64 Info Area\n\tPT_BLOCKREQ             = 40 // Block request\n\tPT_THREAD_INFO          = 60 // Read thread info\n\tPT_THREAD_MODIFY        = 61\n\tPT_THREAD_READ_FOCUS    = 62\n\tPT_THREAD_WRITE_FOCUS   = 63\n\tPT_THREAD_HOLD          = 64\n\tPT_THREAD_SIGNAL        = 65\n\tPT_EXPLAIN              = 66\n\tPT_EVENTS               = 67\n\tPT_THREAD_INFO_EXTENDED = 68\n\tPT_REATTACH2            = 71\n\tPT_CAPTURE              = 72\n\tPT_UNCAPTURE            = 73\n\tPT_GET_THREAD_TCB       = 74\n\tPT_GET_ALET             = 75\n\tPT_SWAPIN               = 76\n\tPT_EXTENDED_EVENT       = 98\n\tPT_RECOVER              = 99  // Debug a program check\n\tPT_GPR0                 = 0   // General purpose register 0\n\tPT_GPR1                 = 1   // General purpose register 1\n\tPT_GPR2                 = 2   // General purpose register 2\n\tPT_GPR3                 = 3   // General purpose register 3\n\tPT_GPR4                 = 4   // General purpose register 4\n\tPT_GPR5                 = 5   // General purpose register 5\n\tPT_GPR6                 = 6   // General purpose register 6\n\tPT_GPR7                 = 7   // General purpose register 7\n\tPT_GPR8                 = 8   // General purpose register 8\n\tPT_GPR9                 = 9   // General purpose register 9\n\tPT_GPR10                = 10  // General purpose register 10\n\tPT_GPR11                = 11  // General purpose register 11\n\tPT_GPR12                = 12  // General purpose register 12\n\tPT_GPR13                = 13  // General purpose register 13\n\tPT_GPR14                = 14  // General purpose register 14\n\tPT_GPR15                = 15  // General purpose register 15\n\tPT_FPR0                 = 16  // Floating point register 0\n\tPT_FPR1                 = 17  // Floating point register 1\n\tPT_FPR2                 = 18  // Floating point register 2\n\tPT_FPR3                 = 19  // Floating point register 3\n\tPT_FPR4                 = 20  // Floating point register 4\n\tPT_FPR5                 = 21  // Floating point register 5\n\tPT_FPR6                 = 22  // Floating point register 6\n\tPT_FPR7                 = 23  // Floating point register 7\n\tPT_FPR8                 = 24  // Floating point register 8\n\tPT_FPR9                 = 25  // Floating point register 9\n\tPT_FPR10                = 26  // Floating point register 10\n\tPT_FPR11                = 27  // Floating point register 11\n\tPT_FPR12                = 28  // Floating point register 12\n\tPT_FPR13                = 29  // Floating point register 13\n\tPT_FPR14                = 30  // Floating point register 14\n\tPT_FPR15                = 31  // Floating point register 15\n\tPT_FPC                  = 32  // Floating point control register\n\tPT_PSW                  = 40  // PSW\n\tPT_PSW0                 = 40  // Left half of the PSW\n\tPT_PSW1                 = 41  // Right half of the PSW\n\tPT_CR0                  = 42  // Control register 0\n\tPT_CR1                  = 43  // Control register 1\n\tPT_CR2                  = 44  // Control register 2\n\tPT_CR3                  = 45  // Control register 3\n\tPT_CR4                  = 46  // Control register 4\n\tPT_CR5                  = 47  // Control register 5\n\tPT_CR6                  = 48  // Control register 6\n\tPT_CR7                  = 49  // Control register 7\n\tPT_CR8                  = 50  // Control register 8\n\tPT_CR9                  = 51  // Control register 9\n\tPT_CR10                 = 52  // Control register 10\n\tPT_CR11                 = 53  // Control register 11\n\tPT_CR12                 = 54  // Control register 12\n\tPT_CR13                 = 55  // Control register 13\n\tPT_CR14                 = 56  // Control register 14\n\tPT_CR15                 = 57  // Control register 15\n\tPT_GPRH0                = 58  // GP High register 0\n\tPT_GPRH1                = 59  // GP High register 1\n\tPT_GPRH2                = 60  // GP High register 2\n\tPT_GPRH3                = 61  // GP High register 3\n\tPT_GPRH4                = 62  // GP High register 4\n\tPT_GPRH5                = 63  // GP High register 5\n\tPT_GPRH6                = 64  // GP High register 6\n\tPT_GPRH7                = 65  // GP High register 7\n\tPT_GPRH8                = 66  // GP High register 8\n\tPT_GPRH9                = 67  // GP High register 9\n\tPT_GPRH10               = 68  // GP High register 10\n\tPT_GPRH11               = 69  // GP High register 11\n\tPT_GPRH12               = 70  // GP High register 12\n\tPT_GPRH13               = 71  // GP High register 13\n\tPT_GPRH14               = 72  // GP High register 14\n\tPT_GPRH15               = 73  // GP High register 15\n\tPT_VR0                  = 74  // Vector register 0\n\tPT_VR1                  = 75  // Vector register 1\n\tPT_VR2                  = 76  // Vector register 2\n\tPT_VR3                  = 77  // Vector register 3\n\tPT_VR4                  = 78  // Vector register 4\n\tPT_VR5                  = 79  // Vector register 5\n\tPT_VR6                  = 80  // Vector register 6\n\tPT_VR7                  = 81  // Vector register 7\n\tPT_VR8                  = 82  // Vector register 8\n\tPT_VR9                  = 83  // Vector register 9\n\tPT_VR10                 = 84  // Vector register 10\n\tPT_VR11                 = 85  // Vector register 11\n\tPT_VR12                 = 86  // Vector register 12\n\tPT_VR13                 = 87  // Vector register 13\n\tPT_VR14                 = 88  // Vector register 14\n\tPT_VR15                 = 89  // Vector register 15\n\tPT_VR16                 = 90  // Vector register 16\n\tPT_VR17                 = 91  // Vector register 17\n\tPT_VR18                 = 92  // Vector register 18\n\tPT_VR19                 = 93  // Vector register 19\n\tPT_VR20                 = 94  // Vector register 20\n\tPT_VR21                 = 95  // Vector register 21\n\tPT_VR22                 = 96  // Vector register 22\n\tPT_VR23                 = 97  // Vector register 23\n\tPT_VR24                 = 98  // Vector register 24\n\tPT_VR25                 = 99  // Vector register 25\n\tPT_VR26                 = 100 // Vector register 26\n\tPT_VR27                 = 101 // Vector register 27\n\tPT_VR28                 = 102 // Vector register 28\n\tPT_VR29                 = 103 // Vector register 29\n\tPT_VR30                 = 104 // Vector register 30\n\tPT_VR31                 = 105 // Vector register 31\n\tPT_PSWG                 = 106 // PSWG\n\tPT_PSWG0                = 106 // Bytes 0-3\n\tPT_PSWG1                = 107 // Bytes 4-7\n\tPT_PSWG2                = 108 // Bytes 8-11 (IA high word)\n\tPT_PSWG3                = 109 // Bytes 12-15 (IA low word)\n)\n\nfunc Bpx4ptr(request int32, pid int32, addr unsafe.Pointer, data unsafe.Pointer, buffer unsafe.Pointer) (rv int32, rc int32, rn int32) {\n\tvar parms [8]unsafe.Pointer\n\tparms[0] = unsafe.Pointer(&request)\n\tparms[1] = unsafe.Pointer(&pid)\n\tparms[2] = unsafe.Pointer(&addr)\n\tparms[3] = unsafe.Pointer(&data)\n\tparms[4] = unsafe.Pointer(&buffer)\n\tparms[5] = unsafe.Pointer(&rv)\n\tparms[6] = unsafe.Pointer(&rc)\n\tparms[7] = unsafe.Pointer(&rn)\n\tbpxcall(parms[:], BPX4PTR)\n\treturn rv, rc, rn\n}\n\nfunc copyU8(val uint8, dest []uint8) int {\n\tif len(dest) < 1 {\n\t\treturn 0\n\t}\n\tdest[0] = val\n\treturn 1\n}\n\nfunc copyU8Arr(src, dest []uint8) int {\n\tif len(dest) < len(src) {\n\t\treturn 0\n\t}\n\tfor i, v := range src {\n\t\tdest[i] = v\n\t}\n\treturn len(src)\n}\n\nfunc copyU16(val uint16, dest []uint16) int {\n\tif len(dest) < 1 {\n\t\treturn 0\n\t}\n\tdest[0] = val\n\treturn 1\n}\n\nfunc copyU32(val uint32, dest []uint32) int {\n\tif len(dest) < 1 {\n\t\treturn 0\n\t}\n\tdest[0] = val\n\treturn 1\n}\n\nfunc copyU32Arr(src, dest []uint32) int {\n\tif len(dest) < len(src) {\n\t\treturn 0\n\t}\n\tfor i, v := range src {\n\t\tdest[i] = v\n\t}\n\treturn len(src)\n}\n\nfunc copyU64(val uint64, dest []uint64) int {\n\tif len(dest) < 1 {\n\t\treturn 0\n\t}\n\tdest[0] = val\n\treturn 1\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/bpxsvc_zos.s",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n#include \"go_asm.h\"\n#include \"textflag.h\"\n\n// function to call USS assembly language services\n//\n// doc: https://www.ibm.com/support/knowledgecenter/en/SSLTBW_3.1.0/com.ibm.zos.v3r1.bpxb100/bit64env.htm\n//\n//   arg1 unsafe.Pointer array that ressembles an OS PLIST\n//\n//   arg2 function offset as in\n//       doc: https://www.ibm.com/support/knowledgecenter/en/SSLTBW_3.1.0/com.ibm.zos.v3r1.bpxb100/bpx2cr_List_of_offsets.htm\n//\n// func bpxcall(plist []unsafe.Pointer, bpx_offset int64)\n\nTEXT ·bpxcall(SB), NOSPLIT|NOFRAME, $0\n\tMOVD  plist_base+0(FP), R1  // r1 points to plist\n\tMOVD  bpx_offset+24(FP), R2 // r2 offset to BPX vector table\n\tMOVD  R14, R7               // save r14\n\tMOVD  R15, R8               // save r15\n\tMOVWZ 16(R0), R9\n\tMOVWZ 544(R9), R9\n\tMOVWZ 24(R9), R9            // call vector in r9\n\tADD   R2, R9                // add offset to vector table\n\tMOVWZ (R9), R9              // r9 points to entry point\n\tBYTE  $0x0D                 // BL R14,R9 --> basr r14,r9\n\tBYTE  $0xE9                 // clobbers 0,1,14,15\n\tMOVD  R8, R15               // restore 15\n\tJMP   R7                    // return via saved return address\n\n//   func A2e(arr [] byte)\n//   code page conversion from  819 to 1047\nTEXT ·A2e(SB), NOSPLIT|NOFRAME, $0\n\tMOVD arg_base+0(FP), R2                        // pointer to arry of characters\n\tMOVD arg_len+8(FP), R3                         // count\n\tXOR  R0, R0\n\tXOR  R1, R1\n\tBYTE $0xA7; BYTE $0x15; BYTE $0x00; BYTE $0x82 // BRAS 1,(2+(256/2))\n\n\t// ASCII -> EBCDIC conversion table:\n\tBYTE $0x00; BYTE $0x01; BYTE $0x02; BYTE $0x03\n\tBYTE $0x37; BYTE $0x2d; BYTE $0x2e; BYTE $0x2f\n\tBYTE $0x16; BYTE $0x05; BYTE $0x15; BYTE $0x0b\n\tBYTE $0x0c; BYTE $0x0d; BYTE $0x0e; BYTE $0x0f\n\tBYTE $0x10; BYTE $0x11; BYTE $0x12; BYTE $0x13\n\tBYTE $0x3c; BYTE $0x3d; BYTE $0x32; BYTE $0x26\n\tBYTE $0x18; BYTE $0x19; BYTE $0x3f; BYTE $0x27\n\tBYTE $0x1c; BYTE $0x1d; BYTE $0x1e; BYTE $0x1f\n\tBYTE $0x40; BYTE $0x5a; BYTE $0x7f; BYTE $0x7b\n\tBYTE $0x5b; BYTE $0x6c; BYTE $0x50; BYTE $0x7d\n\tBYTE $0x4d; BYTE $0x5d; BYTE $0x5c; BYTE $0x4e\n\tBYTE $0x6b; BYTE $0x60; BYTE $0x4b; BYTE $0x61\n\tBYTE $0xf0; BYTE $0xf1; BYTE $0xf2; BYTE $0xf3\n\tBYTE $0xf4; BYTE $0xf5; BYTE $0xf6; BYTE $0xf7\n\tBYTE $0xf8; BYTE $0xf9; BYTE $0x7a; BYTE $0x5e\n\tBYTE $0x4c; BYTE $0x7e; BYTE $0x6e; BYTE $0x6f\n\tBYTE $0x7c; BYTE $0xc1; BYTE $0xc2; BYTE $0xc3\n\tBYTE $0xc4; BYTE $0xc5; BYTE $0xc6; BYTE $0xc7\n\tBYTE $0xc8; BYTE $0xc9; BYTE $0xd1; BYTE $0xd2\n\tBYTE $0xd3; BYTE $0xd4; BYTE $0xd5; BYTE $0xd6\n\tBYTE $0xd7; BYTE $0xd8; BYTE $0xd9; BYTE $0xe2\n\tBYTE $0xe3; BYTE $0xe4; BYTE $0xe5; BYTE $0xe6\n\tBYTE $0xe7; BYTE $0xe8; BYTE $0xe9; BYTE $0xad\n\tBYTE $0xe0; BYTE $0xbd; BYTE $0x5f; BYTE $0x6d\n\tBYTE $0x79; BYTE $0x81; BYTE $0x82; BYTE $0x83\n\tBYTE $0x84; BYTE $0x85; BYTE $0x86; BYTE $0x87\n\tBYTE $0x88; BYTE $0x89; BYTE $0x91; BYTE $0x92\n\tBYTE $0x93; BYTE $0x94; BYTE $0x95; BYTE $0x96\n\tBYTE $0x97; BYTE $0x98; BYTE $0x99; BYTE $0xa2\n\tBYTE $0xa3; BYTE $0xa4; BYTE $0xa5; BYTE $0xa6\n\tBYTE $0xa7; BYTE $0xa8; BYTE $0xa9; BYTE $0xc0\n\tBYTE $0x4f; BYTE $0xd0; BYTE $0xa1; BYTE $0x07\n\tBYTE $0x20; BYTE $0x21; BYTE $0x22; BYTE $0x23\n\tBYTE $0x24; BYTE $0x25; BYTE $0x06; BYTE $0x17\n\tBYTE $0x28; BYTE $0x29; BYTE $0x2a; BYTE $0x2b\n\tBYTE $0x2c; BYTE $0x09; BYTE $0x0a; BYTE $0x1b\n\tBYTE $0x30; BYTE $0x31; BYTE $0x1a; BYTE $0x33\n\tBYTE $0x34; BYTE $0x35; BYTE $0x36; BYTE $0x08\n\tBYTE $0x38; BYTE $0x39; BYTE $0x3a; BYTE $0x3b\n\tBYTE $0x04; BYTE $0x14; BYTE $0x3e; BYTE $0xff\n\tBYTE $0x41; BYTE $0xaa; BYTE $0x4a; BYTE $0xb1\n\tBYTE $0x9f; BYTE $0xb2; BYTE $0x6a; BYTE $0xb5\n\tBYTE $0xbb; BYTE $0xb4; BYTE $0x9a; BYTE $0x8a\n\tBYTE $0xb0; BYTE $0xca; BYTE $0xaf; BYTE $0xbc\n\tBYTE $0x90; BYTE $0x8f; BYTE $0xea; BYTE $0xfa\n\tBYTE $0xbe; BYTE $0xa0; BYTE $0xb6; BYTE $0xb3\n\tBYTE $0x9d; BYTE $0xda; BYTE $0x9b; BYTE $0x8b\n\tBYTE $0xb7; BYTE $0xb8; BYTE $0xb9; BYTE $0xab\n\tBYTE $0x64; BYTE $0x65; BYTE $0x62; BYTE $0x66\n\tBYTE $0x63; BYTE $0x67; BYTE $0x9e; BYTE $0x68\n\tBYTE $0x74; BYTE $0x71; BYTE $0x72; BYTE $0x73\n\tBYTE $0x78; BYTE $0x75; BYTE $0x76; BYTE $0x77\n\tBYTE $0xac; BYTE $0x69; BYTE $0xed; BYTE $0xee\n\tBYTE $0xeb; BYTE $0xef; BYTE $0xec; BYTE $0xbf\n\tBYTE $0x80; BYTE $0xfd; BYTE $0xfe; BYTE $0xfb\n\tBYTE $0xfc; BYTE $0xba; BYTE $0xae; BYTE $0x59\n\tBYTE $0x44; BYTE $0x45; BYTE $0x42; BYTE $0x46\n\tBYTE $0x43; BYTE $0x47; BYTE $0x9c; BYTE $0x48\n\tBYTE $0x54; BYTE $0x51; BYTE $0x52; BYTE $0x53\n\tBYTE $0x58; BYTE $0x55; BYTE $0x56; BYTE $0x57\n\tBYTE $0x8c; BYTE $0x49; BYTE $0xcd; BYTE $0xce\n\tBYTE $0xcb; BYTE $0xcf; BYTE $0xcc; BYTE $0xe1\n\tBYTE $0x70; BYTE $0xdd; BYTE $0xde; BYTE $0xdb\n\tBYTE $0xdc; BYTE $0x8d; BYTE $0x8e; BYTE $0xdf\n\nretry:\n\tWORD $0xB9931022 // TROO 2,2,b'0001'\n\tBVS  retry\n\tRET\n\n//   func e2a(arr [] byte)\n//   code page conversion from  1047 to 819\nTEXT ·E2a(SB), NOSPLIT|NOFRAME, $0\n\tMOVD arg_base+0(FP), R2                        // pointer to arry of characters\n\tMOVD arg_len+8(FP), R3                         // count\n\tXOR  R0, R0\n\tXOR  R1, R1\n\tBYTE $0xA7; BYTE $0x15; BYTE $0x00; BYTE $0x82 // BRAS 1,(2+(256/2))\n\n\t// EBCDIC -> ASCII conversion table:\n\tBYTE $0x00; BYTE $0x01; BYTE $0x02; BYTE $0x03\n\tBYTE $0x9c; BYTE $0x09; BYTE $0x86; BYTE $0x7f\n\tBYTE $0x97; BYTE $0x8d; BYTE $0x8e; BYTE $0x0b\n\tBYTE $0x0c; BYTE $0x0d; BYTE $0x0e; BYTE $0x0f\n\tBYTE $0x10; BYTE $0x11; BYTE $0x12; BYTE $0x13\n\tBYTE $0x9d; BYTE $0x0a; BYTE $0x08; BYTE $0x87\n\tBYTE $0x18; BYTE $0x19; BYTE $0x92; BYTE $0x8f\n\tBYTE $0x1c; BYTE $0x1d; BYTE $0x1e; BYTE $0x1f\n\tBYTE $0x80; BYTE $0x81; BYTE $0x82; BYTE $0x83\n\tBYTE $0x84; BYTE $0x85; BYTE $0x17; BYTE $0x1b\n\tBYTE $0x88; BYTE $0x89; BYTE $0x8a; BYTE $0x8b\n\tBYTE $0x8c; BYTE $0x05; BYTE $0x06; BYTE $0x07\n\tBYTE $0x90; BYTE $0x91; BYTE $0x16; BYTE $0x93\n\tBYTE $0x94; BYTE $0x95; BYTE $0x96; BYTE $0x04\n\tBYTE $0x98; BYTE $0x99; BYTE $0x9a; BYTE $0x9b\n\tBYTE $0x14; BYTE $0x15; BYTE $0x9e; BYTE $0x1a\n\tBYTE $0x20; BYTE $0xa0; BYTE $0xe2; BYTE $0xe4\n\tBYTE $0xe0; BYTE $0xe1; BYTE $0xe3; BYTE $0xe5\n\tBYTE $0xe7; BYTE $0xf1; BYTE $0xa2; BYTE $0x2e\n\tBYTE $0x3c; BYTE $0x28; BYTE $0x2b; BYTE $0x7c\n\tBYTE $0x26; BYTE $0xe9; BYTE $0xea; BYTE $0xeb\n\tBYTE $0xe8; BYTE $0xed; BYTE $0xee; BYTE $0xef\n\tBYTE $0xec; BYTE $0xdf; BYTE $0x21; BYTE $0x24\n\tBYTE $0x2a; BYTE $0x29; BYTE $0x3b; BYTE $0x5e\n\tBYTE $0x2d; BYTE $0x2f; BYTE $0xc2; BYTE $0xc4\n\tBYTE $0xc0; BYTE $0xc1; BYTE $0xc3; BYTE $0xc5\n\tBYTE $0xc7; BYTE $0xd1; BYTE $0xa6; BYTE $0x2c\n\tBYTE $0x25; BYTE $0x5f; BYTE $0x3e; BYTE $0x3f\n\tBYTE $0xf8; BYTE $0xc9; BYTE $0xca; BYTE $0xcb\n\tBYTE $0xc8; BYTE $0xcd; BYTE $0xce; BYTE $0xcf\n\tBYTE $0xcc; BYTE $0x60; BYTE $0x3a; BYTE $0x23\n\tBYTE $0x40; BYTE $0x27; BYTE $0x3d; BYTE $0x22\n\tBYTE $0xd8; BYTE $0x61; BYTE $0x62; BYTE $0x63\n\tBYTE $0x64; BYTE $0x65; BYTE $0x66; BYTE $0x67\n\tBYTE $0x68; BYTE $0x69; BYTE $0xab; BYTE $0xbb\n\tBYTE $0xf0; BYTE $0xfd; BYTE $0xfe; BYTE $0xb1\n\tBYTE $0xb0; BYTE $0x6a; BYTE $0x6b; BYTE $0x6c\n\tBYTE $0x6d; BYTE $0x6e; BYTE $0x6f; BYTE $0x70\n\tBYTE $0x71; BYTE $0x72; BYTE $0xaa; BYTE $0xba\n\tBYTE $0xe6; BYTE $0xb8; BYTE $0xc6; BYTE $0xa4\n\tBYTE $0xb5; BYTE $0x7e; BYTE $0x73; BYTE $0x74\n\tBYTE $0x75; BYTE $0x76; BYTE $0x77; BYTE $0x78\n\tBYTE $0x79; BYTE $0x7a; BYTE $0xa1; BYTE $0xbf\n\tBYTE $0xd0; BYTE $0x5b; BYTE $0xde; BYTE $0xae\n\tBYTE $0xac; BYTE $0xa3; BYTE $0xa5; BYTE $0xb7\n\tBYTE $0xa9; BYTE $0xa7; BYTE $0xb6; BYTE $0xbc\n\tBYTE $0xbd; BYTE $0xbe; BYTE $0xdd; BYTE $0xa8\n\tBYTE $0xaf; BYTE $0x5d; BYTE $0xb4; BYTE $0xd7\n\tBYTE $0x7b; BYTE $0x41; BYTE $0x42; BYTE $0x43\n\tBYTE $0x44; BYTE $0x45; BYTE $0x46; BYTE $0x47\n\tBYTE $0x48; BYTE $0x49; BYTE $0xad; BYTE $0xf4\n\tBYTE $0xf6; BYTE $0xf2; BYTE $0xf3; BYTE $0xf5\n\tBYTE $0x7d; BYTE $0x4a; BYTE $0x4b; BYTE $0x4c\n\tBYTE $0x4d; BYTE $0x4e; BYTE $0x4f; BYTE $0x50\n\tBYTE $0x51; BYTE $0x52; BYTE $0xb9; BYTE $0xfb\n\tBYTE $0xfc; BYTE $0xf9; BYTE $0xfa; BYTE $0xff\n\tBYTE $0x5c; BYTE $0xf7; BYTE $0x53; BYTE $0x54\n\tBYTE $0x55; BYTE $0x56; BYTE $0x57; BYTE $0x58\n\tBYTE $0x59; BYTE $0x5a; BYTE $0xb2; BYTE $0xd4\n\tBYTE $0xd6; BYTE $0xd2; BYTE $0xd3; BYTE $0xd5\n\tBYTE $0x30; BYTE $0x31; BYTE $0x32; BYTE $0x33\n\tBYTE $0x34; BYTE $0x35; BYTE $0x36; BYTE $0x37\n\tBYTE $0x38; BYTE $0x39; BYTE $0xb3; BYTE $0xdb\n\tBYTE $0xdc; BYTE $0xd9; BYTE $0xda; BYTE $0x9f\n\nretry:\n\tWORD $0xB9931022 // TROO 2,2,b'0001'\n\tBVS  retry\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/cap_freebsd.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build freebsd\n\npackage unix\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n)\n\n// Go implementation of C mostly found in /usr/src/sys/kern/subr_capability.c\n\nconst (\n\t// This is the version of CapRights this package understands. See C implementation for parallels.\n\tcapRightsGoVersion = CAP_RIGHTS_VERSION_00\n\tcapArSizeMin       = CAP_RIGHTS_VERSION_00 + 2\n\tcapArSizeMax       = capRightsGoVersion + 2\n)\n\nvar (\n\tbit2idx = []int{\n\t\t-1, 0, 1, -1, 2, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1,\n\t\t4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n\t}\n)\n\nfunc capidxbit(right uint64) int {\n\treturn int((right >> 57) & 0x1f)\n}\n\nfunc rightToIndex(right uint64) (int, error) {\n\tidx := capidxbit(right)\n\tif idx < 0 || idx >= len(bit2idx) {\n\t\treturn -2, fmt.Errorf(\"index for right 0x%x out of range\", right)\n\t}\n\treturn bit2idx[idx], nil\n}\n\nfunc caprver(right uint64) int {\n\treturn int(right >> 62)\n}\n\nfunc capver(rights *CapRights) int {\n\treturn caprver(rights.Rights[0])\n}\n\nfunc caparsize(rights *CapRights) int {\n\treturn capver(rights) + 2\n}\n\n// CapRightsSet sets the permissions in setrights in rights.\nfunc CapRightsSet(rights *CapRights, setrights []uint64) error {\n\t// This is essentially a copy of cap_rights_vset()\n\tif capver(rights) != CAP_RIGHTS_VERSION_00 {\n\t\treturn fmt.Errorf(\"bad rights version %d\", capver(rights))\n\t}\n\n\tn := caparsize(rights)\n\tif n < capArSizeMin || n > capArSizeMax {\n\t\treturn errors.New(\"bad rights size\")\n\t}\n\n\tfor _, right := range setrights {\n\t\tif caprver(right) != CAP_RIGHTS_VERSION_00 {\n\t\t\treturn errors.New(\"bad right version\")\n\t\t}\n\t\ti, err := rightToIndex(right)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif i >= n {\n\t\t\treturn errors.New(\"index overflow\")\n\t\t}\n\t\tif capidxbit(rights.Rights[i]) != capidxbit(right) {\n\t\t\treturn errors.New(\"index mismatch\")\n\t\t}\n\t\trights.Rights[i] |= right\n\t\tif capidxbit(rights.Rights[i]) != capidxbit(right) {\n\t\t\treturn errors.New(\"index mismatch (after assign)\")\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// CapRightsClear clears the permissions in clearrights from rights.\nfunc CapRightsClear(rights *CapRights, clearrights []uint64) error {\n\t// This is essentially a copy of cap_rights_vclear()\n\tif capver(rights) != CAP_RIGHTS_VERSION_00 {\n\t\treturn fmt.Errorf(\"bad rights version %d\", capver(rights))\n\t}\n\n\tn := caparsize(rights)\n\tif n < capArSizeMin || n > capArSizeMax {\n\t\treturn errors.New(\"bad rights size\")\n\t}\n\n\tfor _, right := range clearrights {\n\t\tif caprver(right) != CAP_RIGHTS_VERSION_00 {\n\t\t\treturn errors.New(\"bad right version\")\n\t\t}\n\t\ti, err := rightToIndex(right)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif i >= n {\n\t\t\treturn errors.New(\"index overflow\")\n\t\t}\n\t\tif capidxbit(rights.Rights[i]) != capidxbit(right) {\n\t\t\treturn errors.New(\"index mismatch\")\n\t\t}\n\t\trights.Rights[i] &= ^(right & 0x01FFFFFFFFFFFFFF)\n\t\tif capidxbit(rights.Rights[i]) != capidxbit(right) {\n\t\t\treturn errors.New(\"index mismatch (after assign)\")\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// CapRightsIsSet checks whether all the permissions in setrights are present in rights.\nfunc CapRightsIsSet(rights *CapRights, setrights []uint64) (bool, error) {\n\t// This is essentially a copy of cap_rights_is_vset()\n\tif capver(rights) != CAP_RIGHTS_VERSION_00 {\n\t\treturn false, fmt.Errorf(\"bad rights version %d\", capver(rights))\n\t}\n\n\tn := caparsize(rights)\n\tif n < capArSizeMin || n > capArSizeMax {\n\t\treturn false, errors.New(\"bad rights size\")\n\t}\n\n\tfor _, right := range setrights {\n\t\tif caprver(right) != CAP_RIGHTS_VERSION_00 {\n\t\t\treturn false, errors.New(\"bad right version\")\n\t\t}\n\t\ti, err := rightToIndex(right)\n\t\tif err != nil {\n\t\t\treturn false, err\n\t\t}\n\t\tif i >= n {\n\t\t\treturn false, errors.New(\"index overflow\")\n\t\t}\n\t\tif capidxbit(rights.Rights[i]) != capidxbit(right) {\n\t\t\treturn false, errors.New(\"index mismatch\")\n\t\t}\n\t\tif (rights.Rights[i] & right) != right {\n\t\t\treturn false, nil\n\t\t}\n\t}\n\n\treturn true, nil\n}\n\nfunc capright(idx uint64, bit uint64) uint64 {\n\treturn ((1 << (57 + idx)) | bit)\n}\n\n// CapRightsInit returns a pointer to an initialised CapRights structure filled with rights.\n// See man cap_rights_init(3) and rights(4).\nfunc CapRightsInit(rights []uint64) (*CapRights, error) {\n\tvar r CapRights\n\tr.Rights[0] = (capRightsGoVersion << 62) | capright(0, 0)\n\tr.Rights[1] = capright(1, 0)\n\n\terr := CapRightsSet(&r, rights)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &r, nil\n}\n\n// CapRightsLimit reduces the operations permitted on fd to at most those contained in rights.\n// The capability rights on fd can never be increased by CapRightsLimit.\n// See man cap_rights_limit(2) and rights(4).\nfunc CapRightsLimit(fd uintptr, rights *CapRights) error {\n\treturn capRightsLimit(int(fd), rights)\n}\n\n// CapRightsGet returns a CapRights structure containing the operations permitted on fd.\n// See man cap_rights_get(3) and rights(4).\nfunc CapRightsGet(fd uintptr) (*CapRights, error) {\n\tr, err := CapRightsInit(nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\terr = capRightsGet(capRightsGoVersion, int(fd), r)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn r, nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/constants.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos\n\npackage unix\n\nconst (\n\tR_OK = 0x4\n\tW_OK = 0x2\n\tX_OK = 0x1\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/dev_aix_ppc.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix && ppc\n\n// Functions to access/create device major and minor numbers matching the\n// encoding used by AIX.\n\npackage unix\n\n// Major returns the major component of a Linux device number.\nfunc Major(dev uint64) uint32 {\n\treturn uint32((dev >> 16) & 0xffff)\n}\n\n// Minor returns the minor component of a Linux device number.\nfunc Minor(dev uint64) uint32 {\n\treturn uint32(dev & 0xffff)\n}\n\n// Mkdev returns a Linux device number generated from the given major and minor\n// components.\nfunc Mkdev(major, minor uint32) uint64 {\n\treturn uint64(((major) << 16) | (minor))\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/dev_aix_ppc64.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix && ppc64\n\n// Functions to access/create device major and minor numbers matching the\n// encoding used AIX.\n\npackage unix\n\n// Major returns the major component of a Linux device number.\nfunc Major(dev uint64) uint32 {\n\treturn uint32((dev & 0x3fffffff00000000) >> 32)\n}\n\n// Minor returns the minor component of a Linux device number.\nfunc Minor(dev uint64) uint32 {\n\treturn uint32((dev & 0x00000000ffffffff) >> 0)\n}\n\n// Mkdev returns a Linux device number generated from the given major and minor\n// components.\nfunc Mkdev(major, minor uint32) uint64 {\n\tvar DEVNO64 uint64\n\tDEVNO64 = 0x8000000000000000\n\treturn ((uint64(major) << 32) | (uint64(minor) & 0x00000000FFFFFFFF) | DEVNO64)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/dev_darwin.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Functions to access/create device major and minor numbers matching the\n// encoding used in Darwin's sys/types.h header.\n\npackage unix\n\n// Major returns the major component of a Darwin device number.\nfunc Major(dev uint64) uint32 {\n\treturn uint32((dev >> 24) & 0xff)\n}\n\n// Minor returns the minor component of a Darwin device number.\nfunc Minor(dev uint64) uint32 {\n\treturn uint32(dev & 0xffffff)\n}\n\n// Mkdev returns a Darwin device number generated from the given major and minor\n// components.\nfunc Mkdev(major, minor uint32) uint64 {\n\treturn (uint64(major) << 24) | uint64(minor)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/dev_dragonfly.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Functions to access/create device major and minor numbers matching the\n// encoding used in Dragonfly's sys/types.h header.\n//\n// The information below is extracted and adapted from sys/types.h:\n//\n// Minor gives a cookie instead of an index since in order to avoid changing the\n// meanings of bits 0-15 or wasting time and space shifting bits 16-31 for\n// devices that don't use them.\n\npackage unix\n\n// Major returns the major component of a DragonFlyBSD device number.\nfunc Major(dev uint64) uint32 {\n\treturn uint32((dev >> 8) & 0xff)\n}\n\n// Minor returns the minor component of a DragonFlyBSD device number.\nfunc Minor(dev uint64) uint32 {\n\treturn uint32(dev & 0xffff00ff)\n}\n\n// Mkdev returns a DragonFlyBSD device number generated from the given major and\n// minor components.\nfunc Mkdev(major, minor uint32) uint64 {\n\treturn (uint64(major) << 8) | uint64(minor)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/dev_freebsd.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Functions to access/create device major and minor numbers matching the\n// encoding used in FreeBSD's sys/types.h header.\n//\n// The information below is extracted and adapted from sys/types.h:\n//\n// Minor gives a cookie instead of an index since in order to avoid changing the\n// meanings of bits 0-15 or wasting time and space shifting bits 16-31 for\n// devices that don't use them.\n\npackage unix\n\n// Major returns the major component of a FreeBSD device number.\nfunc Major(dev uint64) uint32 {\n\treturn uint32((dev >> 8) & 0xff)\n}\n\n// Minor returns the minor component of a FreeBSD device number.\nfunc Minor(dev uint64) uint32 {\n\treturn uint32(dev & 0xffff00ff)\n}\n\n// Mkdev returns a FreeBSD device number generated from the given major and\n// minor components.\nfunc Mkdev(major, minor uint32) uint64 {\n\treturn (uint64(major) << 8) | uint64(minor)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/dev_linux.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Functions to access/create device major and minor numbers matching the\n// encoding used by the Linux kernel and glibc.\n//\n// The information below is extracted and adapted from bits/sysmacros.h in the\n// glibc sources:\n//\n// dev_t in glibc is 64-bit, with 32-bit major and minor numbers. glibc's\n// default encoding is MMMM Mmmm mmmM MMmm, where M is a hex digit of the major\n// number and m is a hex digit of the minor number. This is backward compatible\n// with legacy systems where dev_t is 16 bits wide, encoded as MMmm. It is also\n// backward compatible with the Linux kernel, which for some architectures uses\n// 32-bit dev_t, encoded as mmmM MMmm.\n\npackage unix\n\n// Major returns the major component of a Linux device number.\nfunc Major(dev uint64) uint32 {\n\tmajor := uint32((dev & 0x00000000000fff00) >> 8)\n\tmajor |= uint32((dev & 0xfffff00000000000) >> 32)\n\treturn major\n}\n\n// Minor returns the minor component of a Linux device number.\nfunc Minor(dev uint64) uint32 {\n\tminor := uint32((dev & 0x00000000000000ff) >> 0)\n\tminor |= uint32((dev & 0x00000ffffff00000) >> 12)\n\treturn minor\n}\n\n// Mkdev returns a Linux device number generated from the given major and minor\n// components.\nfunc Mkdev(major, minor uint32) uint64 {\n\tdev := (uint64(major) & 0x00000fff) << 8\n\tdev |= (uint64(major) & 0xfffff000) << 32\n\tdev |= (uint64(minor) & 0x000000ff) << 0\n\tdev |= (uint64(minor) & 0xffffff00) << 12\n\treturn dev\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/dev_netbsd.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Functions to access/create device major and minor numbers matching the\n// encoding used in NetBSD's sys/types.h header.\n\npackage unix\n\n// Major returns the major component of a NetBSD device number.\nfunc Major(dev uint64) uint32 {\n\treturn uint32((dev & 0x000fff00) >> 8)\n}\n\n// Minor returns the minor component of a NetBSD device number.\nfunc Minor(dev uint64) uint32 {\n\tminor := uint32((dev & 0x000000ff) >> 0)\n\tminor |= uint32((dev & 0xfff00000) >> 12)\n\treturn minor\n}\n\n// Mkdev returns a NetBSD device number generated from the given major and minor\n// components.\nfunc Mkdev(major, minor uint32) uint64 {\n\tdev := (uint64(major) << 8) & 0x000fff00\n\tdev |= (uint64(minor) << 12) & 0xfff00000\n\tdev |= (uint64(minor) << 0) & 0x000000ff\n\treturn dev\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/dev_openbsd.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Functions to access/create device major and minor numbers matching the\n// encoding used in OpenBSD's sys/types.h header.\n\npackage unix\n\n// Major returns the major component of an OpenBSD device number.\nfunc Major(dev uint64) uint32 {\n\treturn uint32((dev & 0x0000ff00) >> 8)\n}\n\n// Minor returns the minor component of an OpenBSD device number.\nfunc Minor(dev uint64) uint32 {\n\tminor := uint32((dev & 0x000000ff) >> 0)\n\tminor |= uint32((dev & 0xffff0000) >> 8)\n\treturn minor\n}\n\n// Mkdev returns an OpenBSD device number generated from the given major and minor\n// components.\nfunc Mkdev(major, minor uint32) uint64 {\n\tdev := (uint64(major) << 8) & 0x0000ff00\n\tdev |= (uint64(minor) << 8) & 0xffff0000\n\tdev |= (uint64(minor) << 0) & 0x000000ff\n\treturn dev\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/dev_zos.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build zos && s390x\n\n// Functions to access/create device major and minor numbers matching the\n// encoding used by z/OS.\n//\n// The information below is extracted and adapted from <sys/stat.h> macros.\n\npackage unix\n\n// Major returns the major component of a z/OS device number.\nfunc Major(dev uint64) uint32 {\n\treturn uint32((dev >> 16) & 0x0000FFFF)\n}\n\n// Minor returns the minor component of a z/OS device number.\nfunc Minor(dev uint64) uint32 {\n\treturn uint32(dev & 0x0000FFFF)\n}\n\n// Mkdev returns a z/OS device number generated from the given major and minor\n// components.\nfunc Mkdev(major, minor uint32) uint64 {\n\treturn (uint64(major) << 16) | uint64(minor)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/dirent.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos\n\npackage unix\n\nimport \"unsafe\"\n\n// readInt returns the size-bytes unsigned integer in native byte order at offset off.\nfunc readInt(b []byte, off, size uintptr) (u uint64, ok bool) {\n\tif len(b) < int(off+size) {\n\t\treturn 0, false\n\t}\n\tif isBigEndian {\n\t\treturn readIntBE(b[off:], size), true\n\t}\n\treturn readIntLE(b[off:], size), true\n}\n\nfunc readIntBE(b []byte, size uintptr) uint64 {\n\tswitch size {\n\tcase 1:\n\t\treturn uint64(b[0])\n\tcase 2:\n\t\t_ = b[1] // bounds check hint to compiler; see golang.org/issue/14808\n\t\treturn uint64(b[1]) | uint64(b[0])<<8\n\tcase 4:\n\t\t_ = b[3] // bounds check hint to compiler; see golang.org/issue/14808\n\t\treturn uint64(b[3]) | uint64(b[2])<<8 | uint64(b[1])<<16 | uint64(b[0])<<24\n\tcase 8:\n\t\t_ = b[7] // bounds check hint to compiler; see golang.org/issue/14808\n\t\treturn uint64(b[7]) | uint64(b[6])<<8 | uint64(b[5])<<16 | uint64(b[4])<<24 |\n\t\t\tuint64(b[3])<<32 | uint64(b[2])<<40 | uint64(b[1])<<48 | uint64(b[0])<<56\n\tdefault:\n\t\tpanic(\"syscall: readInt with unsupported size\")\n\t}\n}\n\nfunc readIntLE(b []byte, size uintptr) uint64 {\n\tswitch size {\n\tcase 1:\n\t\treturn uint64(b[0])\n\tcase 2:\n\t\t_ = b[1] // bounds check hint to compiler; see golang.org/issue/14808\n\t\treturn uint64(b[0]) | uint64(b[1])<<8\n\tcase 4:\n\t\t_ = b[3] // bounds check hint to compiler; see golang.org/issue/14808\n\t\treturn uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24\n\tcase 8:\n\t\t_ = b[7] // bounds check hint to compiler; see golang.org/issue/14808\n\t\treturn uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 |\n\t\t\tuint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56\n\tdefault:\n\t\tpanic(\"syscall: readInt with unsupported size\")\n\t}\n}\n\n// ParseDirent parses up to max directory entries in buf,\n// appending the names to names. It returns the number of\n// bytes consumed from buf, the number of entries added\n// to names, and the new names slice.\nfunc ParseDirent(buf []byte, max int, names []string) (consumed int, count int, newnames []string) {\n\toriglen := len(buf)\n\tcount = 0\n\tfor max != 0 && len(buf) > 0 {\n\t\treclen, ok := direntReclen(buf)\n\t\tif !ok || reclen > uint64(len(buf)) {\n\t\t\treturn origlen, count, names\n\t\t}\n\t\trec := buf[:reclen]\n\t\tbuf = buf[reclen:]\n\t\tino, ok := direntIno(rec)\n\t\tif !ok {\n\t\t\tbreak\n\t\t}\n\t\tif ino == 0 { // File absent in directory.\n\t\t\tcontinue\n\t\t}\n\t\tconst namoff = uint64(unsafe.Offsetof(Dirent{}.Name))\n\t\tnamlen, ok := direntNamlen(rec)\n\t\tif !ok || namoff+namlen > uint64(len(rec)) {\n\t\t\tbreak\n\t\t}\n\t\tname := rec[namoff : namoff+namlen]\n\t\tfor i, c := range name {\n\t\t\tif c == 0 {\n\t\t\t\tname = name[:i]\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// Check for useless names before allocating a string.\n\t\tif string(name) == \".\" || string(name) == \"..\" {\n\t\t\tcontinue\n\t\t}\n\t\tmax--\n\t\tcount++\n\t\tnames = append(names, string(name))\n\t}\n\treturn origlen - len(buf), count, names\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/endian_big.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n//\n//go:build armbe || arm64be || m68k || mips || mips64 || mips64p32 || ppc || ppc64 || s390 || s390x || shbe || sparc || sparc64\n\npackage unix\n\nconst isBigEndian = true\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/endian_little.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n//\n//go:build 386 || amd64 || amd64p32 || alpha || arm || arm64 || loong64 || mipsle || mips64le || mips64p32le || nios2 || ppc64le || riscv || riscv64 || sh\n\npackage unix\n\nconst isBigEndian = false\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/env_unix.go",
    "content": "// Copyright 2010 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos\n\n// Unix environment variables.\n\npackage unix\n\nimport \"syscall\"\n\nfunc Getenv(key string) (value string, found bool) {\n\treturn syscall.Getenv(key)\n}\n\nfunc Setenv(key, value string) error {\n\treturn syscall.Setenv(key, value)\n}\n\nfunc Clearenv() {\n\tsyscall.Clearenv()\n}\n\nfunc Environ() []string {\n\treturn syscall.Environ()\n}\n\nfunc Unsetenv(key string) error {\n\treturn syscall.Unsetenv(key)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/fcntl.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build dragonfly || freebsd || linux || netbsd\n\npackage unix\n\nimport \"unsafe\"\n\n// fcntl64Syscall is usually SYS_FCNTL, but is overridden on 32-bit Linux\n// systems by fcntl_linux_32bit.go to be SYS_FCNTL64.\nvar fcntl64Syscall uintptr = SYS_FCNTL\n\nfunc fcntl(fd int, cmd, arg int) (int, error) {\n\tvalptr, _, errno := Syscall(fcntl64Syscall, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tvar err error\n\tif errno != 0 {\n\t\terr = errno\n\t}\n\treturn int(valptr), err\n}\n\n// FcntlInt performs a fcntl syscall on fd with the provided command and argument.\nfunc FcntlInt(fd uintptr, cmd, arg int) (int, error) {\n\treturn fcntl(int(fd), cmd, arg)\n}\n\n// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command.\nfunc FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error {\n\t_, _, errno := Syscall(fcntl64Syscall, fd, uintptr(cmd), uintptr(unsafe.Pointer(lk)))\n\tif errno == 0 {\n\t\treturn nil\n\t}\n\treturn errno\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/fcntl_darwin.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage unix\n\nimport \"unsafe\"\n\n// FcntlInt performs a fcntl syscall on fd with the provided command and argument.\nfunc FcntlInt(fd uintptr, cmd, arg int) (int, error) {\n\treturn fcntl(int(fd), cmd, arg)\n}\n\n// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command.\nfunc FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error {\n\t_, err := fcntl(int(fd), cmd, int(uintptr(unsafe.Pointer(lk))))\n\treturn err\n}\n\n// FcntlFstore performs a fcntl syscall for the F_PREALLOCATE command.\nfunc FcntlFstore(fd uintptr, cmd int, fstore *Fstore_t) error {\n\t_, err := fcntl(int(fd), cmd, int(uintptr(unsafe.Pointer(fstore))))\n\treturn err\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go",
    "content": "// Copyright 2014 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build (linux && 386) || (linux && arm) || (linux && mips) || (linux && mipsle) || (linux && ppc)\n\npackage unix\n\nfunc init() {\n\t// On 32-bit Linux systems, the fcntl syscall that matches Go's\n\t// Flock_t type is SYS_FCNTL64, not SYS_FCNTL.\n\tfcntl64Syscall = SYS_FCNTL64\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/fdset.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos\n\npackage unix\n\n// Set adds fd to the set fds.\nfunc (fds *FdSet) Set(fd int) {\n\tfds.Bits[fd/NFDBITS] |= (1 << (uintptr(fd) % NFDBITS))\n}\n\n// Clear removes fd from the set fds.\nfunc (fds *FdSet) Clear(fd int) {\n\tfds.Bits[fd/NFDBITS] &^= (1 << (uintptr(fd) % NFDBITS))\n}\n\n// IsSet returns whether fd is in the set fds.\nfunc (fds *FdSet) IsSet(fd int) bool {\n\treturn fds.Bits[fd/NFDBITS]&(1<<(uintptr(fd)%NFDBITS)) != 0\n}\n\n// Zero clears the set fds.\nfunc (fds *FdSet) Zero() {\n\tfor i := range fds.Bits {\n\t\tfds.Bits[i] = 0\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/gccgo.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build gccgo && !aix && !hurd\n\npackage unix\n\nimport \"syscall\"\n\n// We can't use the gc-syntax .s files for gccgo. On the plus side\n// much of the functionality can be written directly in Go.\n\nfunc realSyscallNoError(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r uintptr)\n\nfunc realSyscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r, errno uintptr)\n\nfunc SyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) {\n\tsyscall.Entersyscall()\n\tr := realSyscallNoError(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0)\n\tsyscall.Exitsyscall()\n\treturn r, 0\n}\n\nfunc Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) {\n\tsyscall.Entersyscall()\n\tr, errno := realSyscall(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0)\n\tsyscall.Exitsyscall()\n\treturn r, 0, syscall.Errno(errno)\n}\n\nfunc Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) {\n\tsyscall.Entersyscall()\n\tr, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, 0, 0, 0)\n\tsyscall.Exitsyscall()\n\treturn r, 0, syscall.Errno(errno)\n}\n\nfunc Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) {\n\tsyscall.Entersyscall()\n\tr, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9)\n\tsyscall.Exitsyscall()\n\treturn r, 0, syscall.Errno(errno)\n}\n\nfunc RawSyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) {\n\tr := realSyscallNoError(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0)\n\treturn r, 0\n}\n\nfunc RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) {\n\tr, errno := realSyscall(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0)\n\treturn r, 0, syscall.Errno(errno)\n}\n\nfunc RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) {\n\tr, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, 0, 0, 0)\n\treturn r, 0, syscall.Errno(errno)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/gccgo_c.c",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build gccgo && !aix && !hurd\n\n#include <errno.h>\n#include <stdint.h>\n#include <unistd.h>\n\n#define _STRINGIFY2_(x) #x\n#define _STRINGIFY_(x) _STRINGIFY2_(x)\n#define GOSYM_PREFIX _STRINGIFY_(__USER_LABEL_PREFIX__)\n\n// Call syscall from C code because the gccgo support for calling from\n// Go to C does not support varargs functions.\n\nstruct ret {\n\tuintptr_t r;\n\tuintptr_t err;\n};\n\nstruct ret gccgoRealSyscall(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9)\n  __asm__(GOSYM_PREFIX GOPKGPATH \".realSyscall\");\n\nstruct ret\ngccgoRealSyscall(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9)\n{\n\tstruct ret r;\n\n\terrno = 0;\n\tr.r = syscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9);\n\tr.err = errno;\n\treturn r;\n}\n\nuintptr_t gccgoRealSyscallNoError(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9)\n  __asm__(GOSYM_PREFIX GOPKGPATH \".realSyscallNoError\");\n\nuintptr_t\ngccgoRealSyscallNoError(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9)\n{\n\treturn syscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9);\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build gccgo && linux && amd64\n\npackage unix\n\nimport \"syscall\"\n\n//extern gettimeofday\nfunc realGettimeofday(*Timeval, *byte) int32\n\nfunc gettimeofday(tv *Timeval) (err syscall.Errno) {\n\tr := realGettimeofday(tv, nil)\n\tif r < 0 {\n\t\treturn syscall.GetErrno()\n\t}\n\treturn 0\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ifreq_linux.go",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux\n\npackage unix\n\nimport (\n\t\"unsafe\"\n)\n\n// Helpers for dealing with ifreq since it contains a union and thus requires a\n// lot of unsafe.Pointer casts to use properly.\n\n// An Ifreq is a type-safe wrapper around the raw ifreq struct. An Ifreq\n// contains an interface name and a union of arbitrary data which can be\n// accessed using the Ifreq's methods. To create an Ifreq, use the NewIfreq\n// function.\n//\n// Use the Name method to access the stored interface name. The union data\n// fields can be get and set using the following methods:\n//   - Uint16/SetUint16: flags\n//   - Uint32/SetUint32: ifindex, metric, mtu\ntype Ifreq struct{ raw ifreq }\n\n// NewIfreq creates an Ifreq with the input network interface name after\n// validating the name does not exceed IFNAMSIZ-1 (trailing NULL required)\n// bytes.\nfunc NewIfreq(name string) (*Ifreq, error) {\n\t// Leave room for terminating NULL byte.\n\tif len(name) >= IFNAMSIZ {\n\t\treturn nil, EINVAL\n\t}\n\n\tvar ifr ifreq\n\tcopy(ifr.Ifrn[:], name)\n\n\treturn &Ifreq{raw: ifr}, nil\n}\n\n// TODO(mdlayher): get/set methods for hardware address sockaddr, char array, etc.\n\n// Name returns the interface name associated with the Ifreq.\nfunc (ifr *Ifreq) Name() string {\n\treturn ByteSliceToString(ifr.raw.Ifrn[:])\n}\n\n// According to netdevice(7), only AF_INET addresses are returned for numerous\n// sockaddr ioctls. For convenience, we expose these as Inet4Addr since the Port\n// field and other data is always empty.\n\n// Inet4Addr returns the Ifreq union data from an embedded sockaddr as a C\n// in_addr/Go []byte (4-byte IPv4 address) value. If the sockaddr family is not\n// AF_INET, an error is returned.\nfunc (ifr *Ifreq) Inet4Addr() ([]byte, error) {\n\traw := *(*RawSockaddrInet4)(unsafe.Pointer(&ifr.raw.Ifru[:SizeofSockaddrInet4][0]))\n\tif raw.Family != AF_INET {\n\t\t// Cannot safely interpret raw.Addr bytes as an IPv4 address.\n\t\treturn nil, EINVAL\n\t}\n\n\treturn raw.Addr[:], nil\n}\n\n// SetInet4Addr sets a C in_addr/Go []byte (4-byte IPv4 address) value in an\n// embedded sockaddr within the Ifreq's union data. v must be 4 bytes in length\n// or an error will be returned.\nfunc (ifr *Ifreq) SetInet4Addr(v []byte) error {\n\tif len(v) != 4 {\n\t\treturn EINVAL\n\t}\n\n\tvar addr [4]byte\n\tcopy(addr[:], v)\n\n\tifr.clear()\n\t*(*RawSockaddrInet4)(\n\t\tunsafe.Pointer(&ifr.raw.Ifru[:SizeofSockaddrInet4][0]),\n\t) = RawSockaddrInet4{\n\t\t// Always set IP family as ioctls would require it anyway.\n\t\tFamily: AF_INET,\n\t\tAddr:   addr,\n\t}\n\n\treturn nil\n}\n\n// Uint16 returns the Ifreq union data as a C short/Go uint16 value.\nfunc (ifr *Ifreq) Uint16() uint16 {\n\treturn *(*uint16)(unsafe.Pointer(&ifr.raw.Ifru[:2][0]))\n}\n\n// SetUint16 sets a C short/Go uint16 value as the Ifreq's union data.\nfunc (ifr *Ifreq) SetUint16(v uint16) {\n\tifr.clear()\n\t*(*uint16)(unsafe.Pointer(&ifr.raw.Ifru[:2][0])) = v\n}\n\n// Uint32 returns the Ifreq union data as a C int/Go uint32 value.\nfunc (ifr *Ifreq) Uint32() uint32 {\n\treturn *(*uint32)(unsafe.Pointer(&ifr.raw.Ifru[:4][0]))\n}\n\n// SetUint32 sets a C int/Go uint32 value as the Ifreq's union data.\nfunc (ifr *Ifreq) SetUint32(v uint32) {\n\tifr.clear()\n\t*(*uint32)(unsafe.Pointer(&ifr.raw.Ifru[:4][0])) = v\n}\n\n// clear zeroes the ifreq's union field to prevent trailing garbage data from\n// being sent to the kernel if an ifreq is reused.\nfunc (ifr *Ifreq) clear() {\n\tfor i := range ifr.raw.Ifru {\n\t\tifr.raw.Ifru[i] = 0\n\t}\n}\n\n// TODO(mdlayher): export as IfreqData? For now we can provide helpers such as\n// IoctlGetEthtoolDrvinfo which use these APIs under the hood.\n\n// An ifreqData is an Ifreq which carries pointer data. To produce an ifreqData,\n// use the Ifreq.withData method.\ntype ifreqData struct {\n\tname [IFNAMSIZ]byte\n\t// A type separate from ifreq is required in order to comply with the\n\t// unsafe.Pointer rules since the \"pointer-ness\" of data would not be\n\t// preserved if it were cast into the byte array of a raw ifreq.\n\tdata unsafe.Pointer\n\t// Pad to the same size as ifreq.\n\t_ [len(ifreq{}.Ifru) - SizeofPtr]byte\n}\n\n// withData produces an ifreqData with the pointer p set for ioctls which require\n// arbitrary pointer data.\nfunc (ifr Ifreq) withData(p unsafe.Pointer) ifreqData {\n\treturn ifreqData{\n\t\tname: ifr.raw.Ifrn,\n\t\tdata: p,\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ioctl_linux.go",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage unix\n\nimport \"unsafe\"\n\n// IoctlRetInt performs an ioctl operation specified by req on a device\n// associated with opened file descriptor fd, and returns a non-negative\n// integer that is returned by the ioctl syscall.\nfunc IoctlRetInt(fd int, req uint) (int, error) {\n\tret, _, err := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), 0)\n\tif err != 0 {\n\t\treturn 0, err\n\t}\n\treturn int(ret), nil\n}\n\nfunc IoctlGetUint32(fd int, req uint) (uint32, error) {\n\tvar value uint32\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&value))\n\treturn value, err\n}\n\nfunc IoctlGetRTCTime(fd int) (*RTCTime, error) {\n\tvar value RTCTime\n\terr := ioctlPtr(fd, RTC_RD_TIME, unsafe.Pointer(&value))\n\treturn &value, err\n}\n\nfunc IoctlSetRTCTime(fd int, value *RTCTime) error {\n\treturn ioctlPtr(fd, RTC_SET_TIME, unsafe.Pointer(value))\n}\n\nfunc IoctlGetRTCWkAlrm(fd int) (*RTCWkAlrm, error) {\n\tvar value RTCWkAlrm\n\terr := ioctlPtr(fd, RTC_WKALM_RD, unsafe.Pointer(&value))\n\treturn &value, err\n}\n\nfunc IoctlSetRTCWkAlrm(fd int, value *RTCWkAlrm) error {\n\treturn ioctlPtr(fd, RTC_WKALM_SET, unsafe.Pointer(value))\n}\n\n// IoctlGetEthtoolDrvinfo fetches ethtool driver information for the network\n// device specified by ifname.\nfunc IoctlGetEthtoolDrvinfo(fd int, ifname string) (*EthtoolDrvinfo, error) {\n\tifr, err := NewIfreq(ifname)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvalue := EthtoolDrvinfo{Cmd: ETHTOOL_GDRVINFO}\n\tifrd := ifr.withData(unsafe.Pointer(&value))\n\n\terr = ioctlIfreqData(fd, SIOCETHTOOL, &ifrd)\n\treturn &value, err\n}\n\n// IoctlGetEthtoolTsInfo fetches ethtool timestamping and PHC\n// association for the network device specified by ifname.\nfunc IoctlGetEthtoolTsInfo(fd int, ifname string) (*EthtoolTsInfo, error) {\n\tifr, err := NewIfreq(ifname)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvalue := EthtoolTsInfo{Cmd: ETHTOOL_GET_TS_INFO}\n\tifrd := ifr.withData(unsafe.Pointer(&value))\n\n\terr = ioctlIfreqData(fd, SIOCETHTOOL, &ifrd)\n\treturn &value, err\n}\n\n// IoctlGetHwTstamp retrieves the hardware timestamping configuration\n// for the network device specified by ifname.\nfunc IoctlGetHwTstamp(fd int, ifname string) (*HwTstampConfig, error) {\n\tifr, err := NewIfreq(ifname)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvalue := HwTstampConfig{}\n\tifrd := ifr.withData(unsafe.Pointer(&value))\n\n\terr = ioctlIfreqData(fd, SIOCGHWTSTAMP, &ifrd)\n\treturn &value, err\n}\n\n// IoctlSetHwTstamp updates the hardware timestamping configuration for\n// the network device specified by ifname.\nfunc IoctlSetHwTstamp(fd int, ifname string, cfg *HwTstampConfig) error {\n\tifr, err := NewIfreq(ifname)\n\tif err != nil {\n\t\treturn err\n\t}\n\tifrd := ifr.withData(unsafe.Pointer(cfg))\n\treturn ioctlIfreqData(fd, SIOCSHWTSTAMP, &ifrd)\n}\n\n// FdToClockID derives the clock ID from the file descriptor number\n// - see clock_gettime(3), FD_TO_CLOCKID macros. The resulting ID is\n// suitable for system calls like ClockGettime.\nfunc FdToClockID(fd int) int32 { return int32((int(^fd) << 3) | 3) }\n\n// IoctlPtpClockGetcaps returns the description of a given PTP device.\nfunc IoctlPtpClockGetcaps(fd int) (*PtpClockCaps, error) {\n\tvar value PtpClockCaps\n\terr := ioctlPtr(fd, PTP_CLOCK_GETCAPS2, unsafe.Pointer(&value))\n\treturn &value, err\n}\n\n// IoctlPtpSysOffsetPrecise returns a description of the clock\n// offset compared to the system clock.\nfunc IoctlPtpSysOffsetPrecise(fd int) (*PtpSysOffsetPrecise, error) {\n\tvar value PtpSysOffsetPrecise\n\terr := ioctlPtr(fd, PTP_SYS_OFFSET_PRECISE2, unsafe.Pointer(&value))\n\treturn &value, err\n}\n\n// IoctlPtpSysOffsetExtended returns an extended description of the\n// clock offset compared to the system clock. The samples parameter\n// specifies the desired number of measurements.\nfunc IoctlPtpSysOffsetExtended(fd int, samples uint) (*PtpSysOffsetExtended, error) {\n\tvalue := PtpSysOffsetExtended{Samples: uint32(samples)}\n\terr := ioctlPtr(fd, PTP_SYS_OFFSET_EXTENDED2, unsafe.Pointer(&value))\n\treturn &value, err\n}\n\n// IoctlPtpPinGetfunc returns the configuration of the specified\n// I/O pin on given PTP device.\nfunc IoctlPtpPinGetfunc(fd int, index uint) (*PtpPinDesc, error) {\n\tvalue := PtpPinDesc{Index: uint32(index)}\n\terr := ioctlPtr(fd, PTP_PIN_GETFUNC2, unsafe.Pointer(&value))\n\treturn &value, err\n}\n\n// IoctlPtpPinSetfunc updates configuration of the specified PTP\n// I/O pin.\nfunc IoctlPtpPinSetfunc(fd int, pd *PtpPinDesc) error {\n\treturn ioctlPtr(fd, PTP_PIN_SETFUNC2, unsafe.Pointer(pd))\n}\n\n// IoctlPtpPeroutRequest configures the periodic output mode of the\n// PTP I/O pins.\nfunc IoctlPtpPeroutRequest(fd int, r *PtpPeroutRequest) error {\n\treturn ioctlPtr(fd, PTP_PEROUT_REQUEST2, unsafe.Pointer(r))\n}\n\n// IoctlPtpExttsRequest configures the external timestamping mode\n// of the PTP I/O pins.\nfunc IoctlPtpExttsRequest(fd int, r *PtpExttsRequest) error {\n\treturn ioctlPtr(fd, PTP_EXTTS_REQUEST2, unsafe.Pointer(r))\n}\n\n// IoctlGetWatchdogInfo fetches information about a watchdog device from the\n// Linux watchdog API. For more information, see:\n// https://www.kernel.org/doc/html/latest/watchdog/watchdog-api.html.\nfunc IoctlGetWatchdogInfo(fd int) (*WatchdogInfo, error) {\n\tvar value WatchdogInfo\n\terr := ioctlPtr(fd, WDIOC_GETSUPPORT, unsafe.Pointer(&value))\n\treturn &value, err\n}\n\n// IoctlWatchdogKeepalive issues a keepalive ioctl to a watchdog device. For\n// more information, see:\n// https://www.kernel.org/doc/html/latest/watchdog/watchdog-api.html.\nfunc IoctlWatchdogKeepalive(fd int) error {\n\t// arg is ignored and not a pointer, so ioctl is fine instead of ioctlPtr.\n\treturn ioctl(fd, WDIOC_KEEPALIVE, 0)\n}\n\n// IoctlFileCloneRange performs an FICLONERANGE ioctl operation to clone the\n// range of data conveyed in value to the file associated with the file\n// descriptor destFd. See the ioctl_ficlonerange(2) man page for details.\nfunc IoctlFileCloneRange(destFd int, value *FileCloneRange) error {\n\treturn ioctlPtr(destFd, FICLONERANGE, unsafe.Pointer(value))\n}\n\n// IoctlFileClone performs an FICLONE ioctl operation to clone the entire file\n// associated with the file description srcFd to the file associated with the\n// file descriptor destFd. See the ioctl_ficlone(2) man page for details.\nfunc IoctlFileClone(destFd, srcFd int) error {\n\treturn ioctl(destFd, FICLONE, uintptr(srcFd))\n}\n\ntype FileDedupeRange struct {\n\tSrc_offset uint64\n\tSrc_length uint64\n\tReserved1  uint16\n\tReserved2  uint32\n\tInfo       []FileDedupeRangeInfo\n}\n\ntype FileDedupeRangeInfo struct {\n\tDest_fd       int64\n\tDest_offset   uint64\n\tBytes_deduped uint64\n\tStatus        int32\n\tReserved      uint32\n}\n\n// IoctlFileDedupeRange performs an FIDEDUPERANGE ioctl operation to share the\n// range of data conveyed in value from the file associated with the file\n// descriptor srcFd to the value.Info destinations. See the\n// ioctl_fideduperange(2) man page for details.\nfunc IoctlFileDedupeRange(srcFd int, value *FileDedupeRange) error {\n\tbuf := make([]byte, SizeofRawFileDedupeRange+\n\t\tlen(value.Info)*SizeofRawFileDedupeRangeInfo)\n\trawrange := (*RawFileDedupeRange)(unsafe.Pointer(&buf[0]))\n\trawrange.Src_offset = value.Src_offset\n\trawrange.Src_length = value.Src_length\n\trawrange.Dest_count = uint16(len(value.Info))\n\trawrange.Reserved1 = value.Reserved1\n\trawrange.Reserved2 = value.Reserved2\n\n\tfor i := range value.Info {\n\t\trawinfo := (*RawFileDedupeRangeInfo)(unsafe.Pointer(\n\t\t\tuintptr(unsafe.Pointer(&buf[0])) + uintptr(SizeofRawFileDedupeRange) +\n\t\t\t\tuintptr(i*SizeofRawFileDedupeRangeInfo)))\n\t\trawinfo.Dest_fd = value.Info[i].Dest_fd\n\t\trawinfo.Dest_offset = value.Info[i].Dest_offset\n\t\trawinfo.Bytes_deduped = value.Info[i].Bytes_deduped\n\t\trawinfo.Status = value.Info[i].Status\n\t\trawinfo.Reserved = value.Info[i].Reserved\n\t}\n\n\terr := ioctlPtr(srcFd, FIDEDUPERANGE, unsafe.Pointer(&buf[0]))\n\n\t// Output\n\tfor i := range value.Info {\n\t\trawinfo := (*RawFileDedupeRangeInfo)(unsafe.Pointer(\n\t\t\tuintptr(unsafe.Pointer(&buf[0])) + uintptr(SizeofRawFileDedupeRange) +\n\t\t\t\tuintptr(i*SizeofRawFileDedupeRangeInfo)))\n\t\tvalue.Info[i].Dest_fd = rawinfo.Dest_fd\n\t\tvalue.Info[i].Dest_offset = rawinfo.Dest_offset\n\t\tvalue.Info[i].Bytes_deduped = rawinfo.Bytes_deduped\n\t\tvalue.Info[i].Status = rawinfo.Status\n\t\tvalue.Info[i].Reserved = rawinfo.Reserved\n\t}\n\n\treturn err\n}\n\nfunc IoctlHIDGetDesc(fd int, value *HIDRawReportDescriptor) error {\n\treturn ioctlPtr(fd, HIDIOCGRDESC, unsafe.Pointer(value))\n}\n\nfunc IoctlHIDGetRawInfo(fd int) (*HIDRawDevInfo, error) {\n\tvar value HIDRawDevInfo\n\terr := ioctlPtr(fd, HIDIOCGRAWINFO, unsafe.Pointer(&value))\n\treturn &value, err\n}\n\nfunc IoctlHIDGetRawName(fd int) (string, error) {\n\tvar value [_HIDIOCGRAWNAME_LEN]byte\n\terr := ioctlPtr(fd, _HIDIOCGRAWNAME, unsafe.Pointer(&value[0]))\n\treturn ByteSliceToString(value[:]), err\n}\n\nfunc IoctlHIDGetRawPhys(fd int) (string, error) {\n\tvar value [_HIDIOCGRAWPHYS_LEN]byte\n\terr := ioctlPtr(fd, _HIDIOCGRAWPHYS, unsafe.Pointer(&value[0]))\n\treturn ByteSliceToString(value[:]), err\n}\n\nfunc IoctlHIDGetRawUniq(fd int) (string, error) {\n\tvar value [_HIDIOCGRAWUNIQ_LEN]byte\n\terr := ioctlPtr(fd, _HIDIOCGRAWUNIQ, unsafe.Pointer(&value[0]))\n\treturn ByteSliceToString(value[:]), err\n}\n\n// IoctlIfreq performs an ioctl using an Ifreq structure for input and/or\n// output. See the netdevice(7) man page for details.\nfunc IoctlIfreq(fd int, req uint, value *Ifreq) error {\n\t// It is possible we will add more fields to *Ifreq itself later to prevent\n\t// misuse, so pass the raw *ifreq directly.\n\treturn ioctlPtr(fd, req, unsafe.Pointer(&value.raw))\n}\n\n// TODO(mdlayher): export if and when IfreqData is exported.\n\n// ioctlIfreqData performs an ioctl using an ifreqData structure for input\n// and/or output. See the netdevice(7) man page for details.\nfunc ioctlIfreqData(fd int, req uint, value *ifreqData) error {\n\t// The memory layout of IfreqData (type-safe) and ifreq (not type-safe) are\n\t// identical so pass *IfreqData directly.\n\treturn ioctlPtr(fd, req, unsafe.Pointer(value))\n}\n\n// IoctlKCMClone attaches a new file descriptor to a multiplexor by cloning an\n// existing KCM socket, returning a structure containing the file descriptor of\n// the new socket.\nfunc IoctlKCMClone(fd int) (*KCMClone, error) {\n\tvar info KCMClone\n\tif err := ioctlPtr(fd, SIOCKCMCLONE, unsafe.Pointer(&info)); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &info, nil\n}\n\n// IoctlKCMAttach attaches a TCP socket and associated BPF program file\n// descriptor to a multiplexor.\nfunc IoctlKCMAttach(fd int, info KCMAttach) error {\n\treturn ioctlPtr(fd, SIOCKCMATTACH, unsafe.Pointer(&info))\n}\n\n// IoctlKCMUnattach unattaches a TCP socket file descriptor from a multiplexor.\nfunc IoctlKCMUnattach(fd int, info KCMUnattach) error {\n\treturn ioctlPtr(fd, SIOCKCMUNATTACH, unsafe.Pointer(&info))\n}\n\n// IoctlLoopGetStatus64 gets the status of the loop device associated with the\n// file descriptor fd using the LOOP_GET_STATUS64 operation.\nfunc IoctlLoopGetStatus64(fd int) (*LoopInfo64, error) {\n\tvar value LoopInfo64\n\tif err := ioctlPtr(fd, LOOP_GET_STATUS64, unsafe.Pointer(&value)); err != nil {\n\t\treturn nil, err\n\t}\n\treturn &value, nil\n}\n\n// IoctlLoopSetStatus64 sets the status of the loop device associated with the\n// file descriptor fd using the LOOP_SET_STATUS64 operation.\nfunc IoctlLoopSetStatus64(fd int, value *LoopInfo64) error {\n\treturn ioctlPtr(fd, LOOP_SET_STATUS64, unsafe.Pointer(value))\n}\n\n// IoctlLoopConfigure configures all loop device parameters in a single step\nfunc IoctlLoopConfigure(fd int, value *LoopConfig) error {\n\treturn ioctlPtr(fd, LOOP_CONFIGURE, unsafe.Pointer(value))\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ioctl_signed.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || solaris\n\npackage unix\n\nimport (\n\t\"unsafe\"\n)\n\n// ioctl itself should not be exposed directly, but additional get/set\n// functions for specific types are permissible.\n\n// IoctlSetInt performs an ioctl operation which sets an integer value\n// on fd, using the specified request number.\nfunc IoctlSetInt(fd int, req int, value int) error {\n\treturn ioctl(fd, req, uintptr(value))\n}\n\n// IoctlSetPointerInt performs an ioctl operation which sets an\n// integer value on fd, using the specified request number. The ioctl\n// argument is called with a pointer to the integer value, rather than\n// passing the integer value directly.\nfunc IoctlSetPointerInt(fd int, req int, value int) error {\n\tv := int32(value)\n\treturn ioctlPtr(fd, req, unsafe.Pointer(&v))\n}\n\n// IoctlSetWinsize performs an ioctl on fd with a *Winsize argument.\n//\n// To change fd's window size, the req argument should be TIOCSWINSZ.\nfunc IoctlSetWinsize(fd int, req int, value *Winsize) error {\n\t// TODO: if we get the chance, remove the req parameter and\n\t// hardcode TIOCSWINSZ.\n\treturn ioctlPtr(fd, req, unsafe.Pointer(value))\n}\n\n// IoctlSetTermios performs an ioctl on fd with a *Termios.\n//\n// The req value will usually be TCSETA or TIOCSETA.\nfunc IoctlSetTermios(fd int, req int, value *Termios) error {\n\t// TODO: if we get the chance, remove the req parameter.\n\treturn ioctlPtr(fd, req, unsafe.Pointer(value))\n}\n\n// IoctlGetInt performs an ioctl operation which gets an integer value\n// from fd, using the specified request number.\n//\n// A few ioctl requests use the return value as an output parameter;\n// for those, IoctlRetInt should be used instead of this function.\nfunc IoctlGetInt(fd int, req int) (int, error) {\n\tvar value int\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&value))\n\treturn value, err\n}\n\nfunc IoctlGetWinsize(fd int, req int) (*Winsize, error) {\n\tvar value Winsize\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&value))\n\treturn &value, err\n}\n\nfunc IoctlGetTermios(fd int, req int) (*Termios, error) {\n\tvar value Termios\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&value))\n\treturn &value, err\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ioctl_unsigned.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build darwin || dragonfly || freebsd || hurd || linux || netbsd || openbsd\n\npackage unix\n\nimport (\n\t\"unsafe\"\n)\n\n// ioctl itself should not be exposed directly, but additional get/set\n// functions for specific types are permissible.\n\n// IoctlSetInt performs an ioctl operation which sets an integer value\n// on fd, using the specified request number.\nfunc IoctlSetInt(fd int, req uint, value int) error {\n\treturn ioctl(fd, req, uintptr(value))\n}\n\n// IoctlSetPointerInt performs an ioctl operation which sets an\n// integer value on fd, using the specified request number. The ioctl\n// argument is called with a pointer to the integer value, rather than\n// passing the integer value directly.\nfunc IoctlSetPointerInt(fd int, req uint, value int) error {\n\tv := int32(value)\n\treturn ioctlPtr(fd, req, unsafe.Pointer(&v))\n}\n\n// IoctlSetWinsize performs an ioctl on fd with a *Winsize argument.\n//\n// To change fd's window size, the req argument should be TIOCSWINSZ.\nfunc IoctlSetWinsize(fd int, req uint, value *Winsize) error {\n\t// TODO: if we get the chance, remove the req parameter and\n\t// hardcode TIOCSWINSZ.\n\treturn ioctlPtr(fd, req, unsafe.Pointer(value))\n}\n\n// IoctlSetTermios performs an ioctl on fd with a *Termios.\n//\n// The req value will usually be TCSETA or TIOCSETA.\nfunc IoctlSetTermios(fd int, req uint, value *Termios) error {\n\t// TODO: if we get the chance, remove the req parameter.\n\treturn ioctlPtr(fd, req, unsafe.Pointer(value))\n}\n\n// IoctlGetInt performs an ioctl operation which gets an integer value\n// from fd, using the specified request number.\n//\n// A few ioctl requests use the return value as an output parameter;\n// for those, IoctlRetInt should be used instead of this function.\nfunc IoctlGetInt(fd int, req uint) (int, error) {\n\tvar value int\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&value))\n\treturn value, err\n}\n\nfunc IoctlGetWinsize(fd int, req uint) (*Winsize, error) {\n\tvar value Winsize\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&value))\n\treturn &value, err\n}\n\nfunc IoctlGetTermios(fd int, req uint) (*Termios, error) {\n\tvar value Termios\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&value))\n\treturn &value, err\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ioctl_zos.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build zos && s390x\n\npackage unix\n\nimport (\n\t\"runtime\"\n\t\"unsafe\"\n)\n\n// ioctl itself should not be exposed directly, but additional get/set\n// functions for specific types are permissible.\n\n// IoctlSetInt performs an ioctl operation which sets an integer value\n// on fd, using the specified request number.\nfunc IoctlSetInt(fd int, req int, value int) error {\n\treturn ioctl(fd, req, uintptr(value))\n}\n\n// IoctlSetWinsize performs an ioctl on fd with a *Winsize argument.\n//\n// To change fd's window size, the req argument should be TIOCSWINSZ.\nfunc IoctlSetWinsize(fd int, req int, value *Winsize) error {\n\t// TODO: if we get the chance, remove the req parameter and\n\t// hardcode TIOCSWINSZ.\n\treturn ioctlPtr(fd, req, unsafe.Pointer(value))\n}\n\n// IoctlSetTermios performs an ioctl on fd with a *Termios.\n//\n// The req value is expected to be TCSETS, TCSETSW, or TCSETSF\nfunc IoctlSetTermios(fd int, req int, value *Termios) error {\n\tif (req != TCSETS) && (req != TCSETSW) && (req != TCSETSF) {\n\t\treturn ENOSYS\n\t}\n\terr := Tcsetattr(fd, int(req), value)\n\truntime.KeepAlive(value)\n\treturn err\n}\n\n// IoctlGetInt performs an ioctl operation which gets an integer value\n// from fd, using the specified request number.\n//\n// A few ioctl requests use the return value as an output parameter;\n// for those, IoctlRetInt should be used instead of this function.\nfunc IoctlGetInt(fd int, req int) (int, error) {\n\tvar value int\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&value))\n\treturn value, err\n}\n\nfunc IoctlGetWinsize(fd int, req int) (*Winsize, error) {\n\tvar value Winsize\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&value))\n\treturn &value, err\n}\n\n// IoctlGetTermios performs an ioctl on fd with a *Termios.\n//\n// The req value is expected to be TCGETS\nfunc IoctlGetTermios(fd int, req int) (*Termios, error) {\n\tvar value Termios\n\tif req != TCGETS {\n\t\treturn &value, ENOSYS\n\t}\n\terr := Tcgetattr(fd, &value)\n\treturn &value, err\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/mkall.sh",
    "content": "#!/usr/bin/env bash\n# Copyright 2009 The Go Authors. All rights reserved.\n# Use of this source code is governed by a BSD-style\n# license that can be found in the LICENSE file.\n\n# This script runs or (given -n) prints suggested commands to generate files for\n# the Architecture/OS specified by the GOARCH and GOOS environment variables.\n# See README.md for more information about how the build system works.\n\nGOOSARCH=\"${GOOS}_${GOARCH}\"\n\n# defaults\nmksyscall=\"go run mksyscall.go\"\nmkerrors=\"./mkerrors.sh\"\nzerrors=\"zerrors_$GOOSARCH.go\"\nmksysctl=\"\"\nzsysctl=\"zsysctl_$GOOSARCH.go\"\nmksysnum=\nmktypes=\nmkasm=\nrun=\"sh\"\ncmd=\"\"\n\ncase \"$1\" in\n-syscalls)\n\tfor i in zsyscall*go\n\tdo\n\t\t# Run the command line that appears in the first line\n\t\t# of the generated file to regenerate it.\n\t\tsed 1q $i | sed 's;^// ;;' | sh > _$i && gofmt < _$i > $i\n\t\trm _$i\n\tdone\n\texit 0\n\t;;\n-n)\n\trun=\"cat\"\n\tcmd=\"echo\"\n\tshift\nesac\n\ncase \"$#\" in\n0)\n\t;;\n*)\n\techo 'usage: mkall.sh [-n]' 1>&2\n\texit 2\nesac\n\nif [[ \"$GOOS\" = \"linux\" ]]; then\n\t# Use the Docker-based build system\n\t# Files generated through docker (use $cmd so you can Ctl-C the build or run)\n\t$cmd docker build --tag generate:$GOOS $GOOS\n\t$cmd docker run --interactive --tty --volume $(cd -- \"$(dirname -- \"$0\")/..\" && pwd):/build generate:$GOOS\n\texit\nfi\n\nGOOSARCH_in=syscall_$GOOSARCH.go\ncase \"$GOOSARCH\" in\n_* | *_ | _)\n\techo 'undefined $GOOS_$GOARCH:' \"$GOOSARCH\" 1>&2\n\texit 1\n\t;;\naix_ppc)\n\tmkerrors=\"$mkerrors -maix32\"\n\tmksyscall=\"go run mksyscall_aix_ppc.go -aix\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\naix_ppc64)\n\tmkerrors=\"$mkerrors -maix64\"\n\tmksyscall=\"go run mksyscall_aix_ppc64.go -aix\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\ndarwin_amd64)\n\tmkerrors=\"$mkerrors -m64\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\tmkasm=\"go run mkasm.go\"\n\t;;\ndarwin_arm64)\n\tmkerrors=\"$mkerrors -m64\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\tmkasm=\"go run mkasm.go\"\n\t;;\ndragonfly_amd64)\n\tmkerrors=\"$mkerrors -m64\"\n\tmksyscall=\"go run mksyscall.go -dragonfly\"\n\tmksysnum=\"go run mksysnum.go 'https://gitweb.dragonflybsd.org/dragonfly.git/blob_plain/HEAD:/sys/kern/syscalls.master'\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\nfreebsd_386)\n\tmkerrors=\"$mkerrors -m32\"\n\tmksyscall=\"go run mksyscall.go -l32\"\n\tmksysnum=\"go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\nfreebsd_amd64)\n\tmkerrors=\"$mkerrors -m64\"\n\tmksysnum=\"go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\nfreebsd_arm)\n\tmkerrors=\"$mkerrors\"\n\tmksyscall=\"go run mksyscall.go -l32 -arm\"\n\tmksysnum=\"go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'\"\n\t# Let the type of C char be signed for making the bare syscall\n\t# API consistent across platforms.\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char\"\n\t;;\nfreebsd_arm64)\n\tmkerrors=\"$mkerrors -m64\"\n\tmksysnum=\"go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char\"\n\t;;\nfreebsd_riscv64)\n\tmkerrors=\"$mkerrors -m64\"\n\tmksysnum=\"go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char\"\n\t;;\nnetbsd_386)\n\tmkerrors=\"$mkerrors -m32\"\n\tmksyscall=\"go run mksyscall.go -l32 -netbsd\"\n\tmksysnum=\"go run mksysnum.go 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master'\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\nnetbsd_amd64)\n\tmkerrors=\"$mkerrors -m64\"\n\tmksyscall=\"go run mksyscall.go -netbsd\"\n\tmksysnum=\"go run mksysnum.go 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master'\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\nnetbsd_arm)\n\tmkerrors=\"$mkerrors\"\n\tmksyscall=\"go run mksyscall.go -l32 -netbsd -arm\"\n\tmksysnum=\"go run mksysnum.go 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master'\"\n\t# Let the type of C char be signed for making the bare syscall\n\t# API consistent across platforms.\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char\"\n\t;;\nnetbsd_arm64)\n\tmkerrors=\"$mkerrors -m64\"\n\tmksyscall=\"go run mksyscall.go -netbsd\"\n\tmksysnum=\"go run mksysnum.go 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master'\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\nopenbsd_386)\n\tmkasm=\"go run mkasm.go\"\n\tmkerrors=\"$mkerrors -m32\"\n\tmksyscall=\"go run mksyscall.go -l32 -openbsd -libc\"\n\tmksysctl=\"go run mksysctl_openbsd.go\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\nopenbsd_amd64)\n\tmkasm=\"go run mkasm.go\"\n\tmkerrors=\"$mkerrors -m64\"\n\tmksyscall=\"go run mksyscall.go -openbsd -libc\"\n\tmksysctl=\"go run mksysctl_openbsd.go\"\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\nopenbsd_arm)\n\tmkasm=\"go run mkasm.go\"\n\tmkerrors=\"$mkerrors\"\n\tmksyscall=\"go run mksyscall.go -l32 -openbsd -arm -libc\"\n\tmksysctl=\"go run mksysctl_openbsd.go\"\n\t# Let the type of C char be signed for making the bare syscall\n\t# API consistent across platforms.\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char\"\n\t;;\nopenbsd_arm64)\n\tmkasm=\"go run mkasm.go\"\n\tmkerrors=\"$mkerrors -m64\"\n\tmksyscall=\"go run mksyscall.go -openbsd -libc\"\n\tmksysctl=\"go run mksysctl_openbsd.go\"\n\t# Let the type of C char be signed for making the bare syscall\n\t# API consistent across platforms.\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char\"\n\t;;\nopenbsd_mips64)\n\tmkasm=\"go run mkasm.go\"\n\tmkerrors=\"$mkerrors -m64\"\n\tmksyscall=\"go run mksyscall.go -openbsd -libc\"\n\tmksysctl=\"go run mksysctl_openbsd.go\"\n\t# Let the type of C char be signed for making the bare syscall\n\t# API consistent across platforms.\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char\"\n\t;;\nopenbsd_ppc64)\n\tmkasm=\"go run mkasm.go\"\n\tmkerrors=\"$mkerrors -m64\"\n\tmksyscall=\"go run mksyscall.go -openbsd -libc\"\n\tmksysctl=\"go run mksysctl_openbsd.go\"\n\t# Let the type of C char be signed for making the bare syscall\n\t# API consistent across platforms.\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char\"\n\t;;\nopenbsd_riscv64)\n\tmkasm=\"go run mkasm.go\"\n\tmkerrors=\"$mkerrors -m64\"\n\tmksyscall=\"go run mksyscall.go -openbsd -libc\"\n\tmksysctl=\"go run mksysctl_openbsd.go\"\n\t# Let the type of C char be signed for making the bare syscall\n\t# API consistent across platforms.\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char\"\n\t;;\nsolaris_amd64)\n\tmksyscall=\"go run mksyscall_solaris.go\"\n\tmkerrors=\"$mkerrors -m64\"\n\tmksysnum=\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\nillumos_amd64)\n        mksyscall=\"go run mksyscall_solaris.go\"\n\tmkerrors=\n\tmksysnum=\n\tmktypes=\"GOARCH=$GOARCH go tool cgo -godefs\"\n\t;;\n*)\n\techo 'unrecognized $GOOS_$GOARCH: ' \"$GOOSARCH\" 1>&2\n\texit 1\n\t;;\nesac\n\n(\n\tif [ -n \"$mkerrors\" ]; then echo \"$mkerrors |gofmt >$zerrors\"; fi\n\tcase \"$GOOS\" in\n\t*)\n\t\tsyscall_goos=\"syscall_$GOOS.go\"\n\t\tcase \"$GOOS\" in\n\t\tdarwin | dragonfly | freebsd | netbsd | openbsd)\n\t\t\tsyscall_goos=\"syscall_bsd.go $syscall_goos\"\n\t\t\t;;\n\t\tesac\n\t\tif [ -n \"$mksyscall\" ]; then\n\t\t\tif [ \"$GOOSARCH\" == \"aix_ppc64\" ]; then\n\t\t\t\t# aix/ppc64 script generates files instead of writing to stdin.\n\t\t\t\techo \"$mksyscall -tags $GOOS,$GOARCH $syscall_goos $GOOSARCH_in && gofmt -w zsyscall_$GOOSARCH.go && gofmt -w zsyscall_\"$GOOSARCH\"_gccgo.go && gofmt -w zsyscall_\"$GOOSARCH\"_gc.go \" ;\n\t\t\telif [ \"$GOOS\" == \"illumos\" ]; then\n\t\t\t        # illumos code generation requires a --illumos switch\n\t\t\t        echo \"$mksyscall -illumos -tags illumos,$GOARCH syscall_illumos.go |gofmt > zsyscall_illumos_$GOARCH.go\";\n\t\t\t        # illumos implies solaris, so solaris code generation is also required\n\t\t\t\techo \"$mksyscall -tags solaris,$GOARCH syscall_solaris.go syscall_solaris_$GOARCH.go |gofmt >zsyscall_solaris_$GOARCH.go\";\n\t\t\telse\n\t\t\t\techo \"$mksyscall -tags $GOOS,$GOARCH $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.go\";\n\t\t\tfi\n\t\tfi\n\tesac\n\tif [ -n \"$mksysctl\" ]; then echo \"$mksysctl |gofmt >$zsysctl\"; fi\n\tif [ -n \"$mksysnum\" ]; then echo \"$mksysnum |gofmt >zsysnum_$GOOSARCH.go\"; fi\n\tif [ -n \"$mktypes\" ]; then echo \"$mktypes types_$GOOS.go | go run mkpost.go > ztypes_$GOOSARCH.go\"; fi\n\tif [ -n \"$mkasm\" ]; then echo \"$mkasm $GOOS $GOARCH\"; fi\n) | $run\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/mkerrors.sh",
    "content": "#!/usr/bin/env bash\n# Copyright 2009 The Go Authors. All rights reserved.\n# Use of this source code is governed by a BSD-style\n# license that can be found in the LICENSE file.\n\n# Generate Go code listing errors and other #defined constant\n# values (ENAMETOOLONG etc.), by asking the preprocessor\n# about the definitions.\n\nunset LANG\nexport LC_ALL=C\nexport LC_CTYPE=C\n\nif test -z \"$GOARCH\" -o -z \"$GOOS\"; then\n\techo 1>&2 \"GOARCH or GOOS not defined in environment\"\n\texit 1\nfi\n\n# Check that we are using the new build system if we should\nif [[ \"$GOOS\" = \"linux\" ]] && [[ \"$GOLANG_SYS_BUILD\" != \"docker\" ]]; then\n\techo 1>&2 \"In the Docker based build system, mkerrors should not be called directly.\"\n\techo 1>&2 \"See README.md\"\n\texit 1\nfi\n\nif [[ \"$GOOS\" = \"aix\" ]]; then\n\tCC=${CC:-gcc}\nelse\n\tCC=${CC:-cc}\nfi\n\nif [[ \"$GOOS\" = \"solaris\" ]]; then\n\t# Assumes GNU versions of utilities in PATH.\n\texport PATH=/usr/gnu/bin:$PATH\nfi\n\nuname=$(uname)\n\nincludes_AIX='\n#include <net/if.h>\n#include <net/netopt.h>\n#include <netinet/ip_mroute.h>\n#include <sys/protosw.h>\n#include <sys/stropts.h>\n#include <sys/mman.h>\n#include <sys/poll.h>\n#include <sys/select.h>\n#include <sys/termio.h>\n#include <termios.h>\n#include <fcntl.h>\n\n#define AF_LOCAL AF_UNIX\n'\n\nincludes_Darwin='\n#define _DARWIN_C_SOURCE\n#define KERNEL 1\n#define _DARWIN_USE_64_BIT_INODE\n#define __APPLE_USE_RFC_3542\n#include <stdint.h>\n#include <sys/stdio.h>\n#include <sys/attr.h>\n#include <sys/clonefile.h>\n#include <sys/kern_control.h>\n#include <sys/types.h>\n#include <sys/event.h>\n#include <sys/ptrace.h>\n#include <sys/select.h>\n#include <sys/socket.h>\n#include <sys/stat.h>\n#include <sys/un.h>\n#include <sys/sockio.h>\n#include <sys/sys_domain.h>\n#include <sys/sysctl.h>\n#include <sys/mman.h>\n#include <sys/mount.h>\n#include <sys/utsname.h>\n#include <sys/wait.h>\n#include <sys/xattr.h>\n#include <sys/vsock.h>\n#include <net/bpf.h>\n#include <net/if.h>\n#include <net/if_types.h>\n#include <net/route.h>\n#include <netinet/in.h>\n#include <netinet/ip.h>\n#include <termios.h>\n\n// for backwards compatibility because moved TIOCREMOTE to Kernel.framework after MacOSX12.0.sdk.\n#define TIOCREMOTE 0x80047469\n'\n\nincludes_DragonFly='\n#include <sys/types.h>\n#include <sys/event.h>\n#include <sys/select.h>\n#include <sys/socket.h>\n#include <sys/sockio.h>\n#include <sys/stat.h>\n#include <sys/sysctl.h>\n#include <sys/mman.h>\n#include <sys/mount.h>\n#include <sys/wait.h>\n#include <sys/ioctl.h>\n#include <net/bpf.h>\n#include <net/if.h>\n#include <net/if_clone.h>\n#include <net/if_types.h>\n#include <net/route.h>\n#include <netinet/in.h>\n#include <termios.h>\n#include <netinet/ip.h>\n#include <net/ip_mroute/ip_mroute.h>\n'\n\nincludes_FreeBSD='\n#include <sys/capsicum.h>\n#include <sys/param.h>\n#include <sys/types.h>\n#include <sys/disk.h>\n#include <sys/event.h>\n#include <sys/sched.h>\n#include <sys/select.h>\n#include <sys/socket.h>\n#include <sys/un.h>\n#include <sys/sockio.h>\n#include <sys/stat.h>\n#include <sys/sysctl.h>\n#include <sys/mman.h>\n#include <sys/mount.h>\n#include <sys/wait.h>\n#include <sys/ioctl.h>\n#include <sys/ptrace.h>\n#include <net/bpf.h>\n#include <net/if.h>\n#include <net/if_types.h>\n#include <net/route.h>\n#include <netinet/in.h>\n#include <termios.h>\n#include <netinet/ip.h>\n#include <netinet/ip_mroute.h>\n#include <sys/extattr.h>\n\n#if __FreeBSD__ >= 10\n#define IFT_CARP\t0xf8\t// IFT_CARP is deprecated in FreeBSD 10\n#undef SIOCAIFADDR\n#define SIOCAIFADDR\t_IOW(105, 26, struct oifaliasreq)\t// ifaliasreq contains if_data\n#undef SIOCSIFPHYADDR\n#define SIOCSIFPHYADDR\t_IOW(105, 70, struct oifaliasreq)\t// ifaliasreq contains if_data\n#endif\n'\n\nincludes_Linux='\n#define _LARGEFILE_SOURCE\n#define _LARGEFILE64_SOURCE\n#ifndef __LP64__\n#define _FILE_OFFSET_BITS 64\n#endif\n#define _GNU_SOURCE\n\n// See the description in unix/linux/types.go\n#if defined(__ARM_EABI__) || \\\n\t(defined(__mips__) && (_MIPS_SIM == _ABIO32)) || \\\n\t(defined(__powerpc__) && (!defined(__powerpc64__)))\n# ifdef   _TIME_BITS\n#  undef  _TIME_BITS\n# endif\n# define  _TIME_BITS 32\n#endif\n\n// <sys/ioctl.h> is broken on powerpc64, as it fails to include definitions of\n// these structures. We just include them copied from <bits/termios.h>.\n#if defined(__powerpc__)\nstruct sgttyb {\n        char    sg_ispeed;\n        char    sg_ospeed;\n        char    sg_erase;\n        char    sg_kill;\n        short   sg_flags;\n};\n\nstruct tchars {\n        char    t_intrc;\n        char    t_quitc;\n        char    t_startc;\n        char    t_stopc;\n        char    t_eofc;\n        char    t_brkc;\n};\n\nstruct ltchars {\n        char    t_suspc;\n        char    t_dsuspc;\n        char    t_rprntc;\n        char    t_flushc;\n        char    t_werasc;\n        char    t_lnextc;\n};\n#endif\n\n#include <bits/sockaddr.h>\n#include <sys/epoll.h>\n#include <sys/eventfd.h>\n#include <sys/inotify.h>\n#include <sys/ioctl.h>\n#include <sys/mman.h>\n#include <sys/mount.h>\n#include <sys/prctl.h>\n#include <sys/stat.h>\n#include <sys/types.h>\n#include <sys/time.h>\n#include <sys/select.h>\n#include <sys/signalfd.h>\n#include <sys/socket.h>\n#include <sys/timerfd.h>\n#include <sys/uio.h>\n#include <sys/xattr.h>\n#include <netinet/udp.h>\n#include <linux/audit.h>\n#include <linux/bpf.h>\n#include <linux/can.h>\n#include <linux/can/error.h>\n#include <linux/can/netlink.h>\n#include <linux/can/raw.h>\n#include <linux/capability.h>\n#include <linux/cryptouser.h>\n#include <linux/devlink.h>\n#include <linux/dm-ioctl.h>\n#include <linux/errqueue.h>\n#include <linux/ethtool_netlink.h>\n#include <linux/falloc.h>\n#include <linux/fanotify.h>\n#include <linux/fib_rules.h>\n#include <linux/filter.h>\n#include <linux/fs.h>\n#include <linux/fscrypt.h>\n#include <linux/fsverity.h>\n#include <linux/genetlink.h>\n#include <linux/hdreg.h>\n#include <linux/hidraw.h>\n#include <linux/if.h>\n#include <linux/if_addr.h>\n#include <linux/if_alg.h>\n#include <linux/if_arp.h>\n#include <linux/if_ether.h>\n#include <linux/if_ppp.h>\n#include <linux/if_tun.h>\n#include <linux/if_packet.h>\n#include <linux/if_xdp.h>\n#include <linux/input.h>\n#include <linux/kcm.h>\n#include <linux/kexec.h>\n#include <linux/keyctl.h>\n#include <linux/landlock.h>\n#include <linux/loop.h>\n#include <linux/lwtunnel.h>\n#include <linux/magic.h>\n#include <linux/memfd.h>\n#include <linux/module.h>\n#include <linux/mount.h>\n#include <linux/netfilter/nfnetlink.h>\n#include <linux/netfilter/nf_tables.h>\n#include <linux/netlink.h>\n#include <linux/net_namespace.h>\n#include <linux/nfc.h>\n#include <linux/nsfs.h>\n#include <linux/perf_event.h>\n#include <linux/pps.h>\n#include <linux/ptp_clock.h>\n#include <linux/ptrace.h>\n#include <linux/random.h>\n#include <linux/reboot.h>\n#include <linux/rtc.h>\n#include <linux/rtnetlink.h>\n#include <linux/sched.h>\n#include <linux/seccomp.h>\n#include <linux/serial.h>\n#include <linux/sock_diag.h>\n#include <linux/sockios.h>\n#include <linux/taskstats.h>\n#include <linux/tipc.h>\n#include <linux/vm_sockets.h>\n#include <linux/wait.h>\n#include <linux/watchdog.h>\n#include <linux/wireguard.h>\n\n#include <mtd/ubi-user.h>\n#include <mtd/mtd-user.h>\n#include <net/route.h>\n\n#if defined(__sparc__)\n// On sparc{,64}, the kernel defines struct termios2 itself which clashes with the\n// definition in glibc. As only the error constants are needed here, include the\n// generic termibits.h (which is included by termbits.h on sparc).\n#include <asm-generic/termbits.h>\n#else\n#include <asm/termbits.h>\n#endif\n\n#ifndef PTRACE_GETREGS\n#define PTRACE_GETREGS\t0xc\n#endif\n\n#ifndef PTRACE_SETREGS\n#define PTRACE_SETREGS\t0xd\n#endif\n\n#ifdef SOL_BLUETOOTH\n// SPARC includes this in /usr/include/sparc64-linux-gnu/bits/socket.h\n// but it is already in bluetooth_linux.go\n#undef SOL_BLUETOOTH\n#endif\n\n// Certain constants are missing from the fs/crypto UAPI\n#define FS_KEY_DESC_PREFIX              \"fscrypt:\"\n#define FS_KEY_DESC_PREFIX_SIZE         8\n#define FS_MAX_KEY_SIZE                 64\n\n// The code generator produces -0x1 for (~0), but an unsigned value is necessary\n// for the tipc_subscr timeout __u32 field.\n#undef TIPC_WAIT_FOREVER\n#define TIPC_WAIT_FOREVER 0xffffffff\n\n// Copied from linux/netfilter/nf_nat.h\n// Including linux/netfilter/nf_nat.h here causes conflicts between linux/in.h\n// and netinet/in.h.\n#define NF_NAT_RANGE_MAP_IPS\t\t\t(1 << 0)\n#define NF_NAT_RANGE_PROTO_SPECIFIED\t\t(1 << 1)\n#define NF_NAT_RANGE_PROTO_RANDOM\t\t(1 << 2)\n#define NF_NAT_RANGE_PERSISTENT\t\t\t(1 << 3)\n#define NF_NAT_RANGE_PROTO_RANDOM_FULLY\t\t(1 << 4)\n#define NF_NAT_RANGE_PROTO_OFFSET\t\t(1 << 5)\n#define NF_NAT_RANGE_NETMAP\t\t\t(1 << 6)\n#define NF_NAT_RANGE_PROTO_RANDOM_ALL\t\t\\\n\t(NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PROTO_RANDOM_FULLY)\n#define NF_NAT_RANGE_MASK\t\t\t\t\t\\\n\t(NF_NAT_RANGE_MAP_IPS | NF_NAT_RANGE_PROTO_SPECIFIED |\t\\\n\t NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PERSISTENT |\t\\\n\t NF_NAT_RANGE_PROTO_RANDOM_FULLY | NF_NAT_RANGE_PROTO_OFFSET | \\\n\t NF_NAT_RANGE_NETMAP)\n\n// Copied from linux/hid.h.\n// Keep in sync with the size of the referenced fields.\n#define _HIDIOCGRAWNAME_LEN\t128 // sizeof_field(struct hid_device, name)\n#define _HIDIOCGRAWPHYS_LEN\t64  // sizeof_field(struct hid_device, phys)\n#define _HIDIOCGRAWUNIQ_LEN\t64  // sizeof_field(struct hid_device, uniq)\n\n#define _HIDIOCGRAWNAME\t\tHIDIOCGRAWNAME(_HIDIOCGRAWNAME_LEN)\n#define _HIDIOCGRAWPHYS\t\tHIDIOCGRAWPHYS(_HIDIOCGRAWPHYS_LEN)\n#define _HIDIOCGRAWUNIQ\t\tHIDIOCGRAWUNIQ(_HIDIOCGRAWUNIQ_LEN)\n\n'\n\nincludes_NetBSD='\n#include <sys/types.h>\n#include <sys/param.h>\n#include <sys/event.h>\n#include <sys/extattr.h>\n#include <sys/mman.h>\n#include <sys/mount.h>\n#include <sys/sched.h>\n#include <sys/select.h>\n#include <sys/socket.h>\n#include <sys/sockio.h>\n#include <sys/sysctl.h>\n#include <sys/termios.h>\n#include <sys/ttycom.h>\n#include <sys/wait.h>\n#include <net/bpf.h>\n#include <net/if.h>\n#include <net/if_types.h>\n#include <net/route.h>\n#include <netinet/in.h>\n#include <netinet/in_systm.h>\n#include <netinet/ip.h>\n#include <netinet/ip_mroute.h>\n#include <netinet/if_ether.h>\n\n// Needed since <sys/param.h> refers to it...\n#define schedppq 1\n'\n\nincludes_OpenBSD='\n#include <sys/types.h>\n#include <sys/param.h>\n#include <sys/event.h>\n#include <sys/mman.h>\n#include <sys/mount.h>\n#include <sys/select.h>\n#include <sys/sched.h>\n#include <sys/socket.h>\n#include <sys/sockio.h>\n#include <sys/stat.h>\n#include <sys/sysctl.h>\n#include <sys/termios.h>\n#include <sys/ttycom.h>\n#include <sys/unistd.h>\n#include <sys/wait.h>\n#include <net/bpf.h>\n#include <net/if.h>\n#include <net/if_types.h>\n#include <net/if_var.h>\n#include <net/route.h>\n#include <netinet/in.h>\n#include <netinet/in_systm.h>\n#include <netinet/ip.h>\n#include <netinet/ip_mroute.h>\n#include <netinet/if_ether.h>\n#include <net/if_bridge.h>\n\n// We keep some constants not supported in OpenBSD 5.5 and beyond for\n// the promise of compatibility.\n#define EMUL_ENABLED\t\t0x1\n#define EMUL_NATIVE\t\t0x2\n#define IPV6_FAITH\t\t0x1d\n#define IPV6_OPTIONS\t\t0x1\n#define IPV6_RTHDR_STRICT\t0x1\n#define IPV6_SOCKOPT_RESERVED1\t0x3\n#define SIOCGIFGENERIC\t\t0xc020693a\n#define SIOCSIFGENERIC\t\t0x80206939\n#define WALTSIG\t\t\t0x4\n'\n\nincludes_SunOS='\n#include <limits.h>\n#include <sys/types.h>\n#include <sys/select.h>\n#include <sys/socket.h>\n#include <sys/sockio.h>\n#include <sys/stat.h>\n#include <sys/stream.h>\n#include <sys/mman.h>\n#include <sys/wait.h>\n#include <sys/ioctl.h>\n#include <sys/mkdev.h>\n#include <net/bpf.h>\n#include <net/if.h>\n#include <net/if_arp.h>\n#include <net/if_types.h>\n#include <net/route.h>\n#include <netinet/icmp6.h>\n#include <netinet/in.h>\n#include <netinet/ip.h>\n#include <netinet/ip_mroute.h>\n#include <termios.h>\n'\n\n\nincludes='\n#include <sys/types.h>\n#include <sys/file.h>\n#include <fcntl.h>\n#include <dirent.h>\n#include <sys/socket.h>\n#include <netinet/in.h>\n#include <netinet/ip.h>\n#include <netinet/ip6.h>\n#include <netinet/tcp.h>\n#include <errno.h>\n#include <sys/signal.h>\n#include <signal.h>\n#include <sys/resource.h>\n#include <time.h>\n'\nccflags=\"$@\"\n\n# Write go tool cgo -godefs input.\n(\n\techo package unix\n\techo\n\techo '/*'\n\tindirect=\"includes_$(uname)\"\n\techo \"${!indirect} $includes\"\n\techo '*/'\n\techo 'import \"C\"'\n\techo 'import \"syscall\"'\n\techo\n\techo 'const ('\n\n\t# The gcc command line prints all the #defines\n\t# it encounters while processing the input\n\techo \"${!indirect} $includes\" | $CC -x c - -E -dM $ccflags |\n\tawk '\n\t\t$1 != \"#define\" || $2 ~ /\\(/ || $3 == \"\" {next}\n\n\t\t$2 ~ /^E([ABCD]X|[BIS]P|[SD]I|S|FL)$/ {next}  # 386 registers\n\t\t$2 ~ /^(SIGEV_|SIGSTKSZ|SIGRT(MIN|MAX))/ {next}\n\t\t$2 ~ /^(SCM_SRCRT)$/ {next}\n\t\t$2 ~ /^(MAP_FAILED)$/ {next}\n\t\t$2 ~ /^ELF_.*$/ {next}# <asm/elf.h> contains ELF_ARCH, etc.\n\n\t\t$2 ~ /^EXTATTR_NAMESPACE_NAMES/ ||\n\t\t$2 ~ /^EXTATTR_NAMESPACE_[A-Z]+_STRING/ {next}\n\n\t\t$2 !~ /^ECCAPBITS/ &&\n\t\t$2 !~ /^ETH_/ &&\n\t\t$2 !~ /^EPROC_/ &&\n\t\t$2 !~ /^EQUIV_/ &&\n\t\t$2 !~ /^EXPR_/ &&\n\t\t$2 !~ /^EVIOC/ &&\n\t\t$2 ~ /^E[A-Z0-9_]+$/ ||\n\t\t$2 ~ /^B[0-9_]+$/ ||\n\t\t$2 ~ /^(OLD|NEW)DEV$/ ||\n\t\t$2 == \"BOTHER\" ||\n\t\t$2 ~ /^CI?BAUD(EX)?$/ ||\n\t\t$2 == \"IBSHIFT\" ||\n\t\t$2 ~ /^V[A-Z0-9]+$/ ||\n\t\t$2 ~ /^CS[A-Z0-9]/ ||\n\t\t$2 ~ /^I(SIG|CANON|CRNL|UCLC|EXTEN|MAXBEL|STRIP|UTF8)$/ ||\n\t\t$2 ~ /^IGN/ ||\n\t\t$2 ~ /^IX(ON|ANY|OFF)$/ ||\n\t\t$2 ~ /^IN(LCR|PCK)$/ ||\n\t\t$2 !~ \"X86_CR3_PCID_NOFLUSH\" &&\n\t\t$2 ~ /(^FLU?SH)|(FLU?SH$)/ ||\n\t\t$2 ~ /^C(LOCAL|READ|MSPAR|RTSCTS)$/ ||\n\t\t$2 == \"BRKINT\" ||\n\t\t$2 == \"HUPCL\" ||\n\t\t$2 == \"PENDIN\" ||\n\t\t$2 == \"TOSTOP\" ||\n\t\t$2 == \"XCASE\" ||\n\t\t$2 == \"ALTWERASE\" ||\n\t\t$2 == \"NOKERNINFO\" ||\n\t\t$2 == \"NFDBITS\" ||\n\t\t$2 ~ /^PAR/ ||\n\t\t$2 ~ /^SIG[^_]/ ||\n\t\t$2 ~ /^O[CNPFPL][A-Z]+[^_][A-Z]+$/ ||\n\t\t$2 ~ /^(NL|CR|TAB|BS|VT|FF)DLY$/ ||\n\t\t$2 ~ /^(NL|CR|TAB|BS|VT|FF)[0-9]$/ ||\n\t\t$2 ~ /^O?XTABS$/ ||\n\t\t$2 ~ /^TC[IO](ON|OFF)$/ ||\n\t\t$2 ~ /^IN_/ ||\n\t\t$2 ~ /^KCM/ ||\n\t\t$2 ~ /^LANDLOCK_/ ||\n\t\t$2 ~ /^LOCK_(SH|EX|NB|UN)$/ ||\n\t\t$2 ~ /^LO_(KEY|NAME)_SIZE$/ ||\n\t\t$2 ~ /^LOOP_(CLR|CTL|GET|SET)_/ ||\n\t\t$2 == \"LOOP_CONFIGURE\" ||\n\t\t$2 ~ /^(AF|SOCK|SO|SOL|IPPROTO|IP|IPV6|TCP|MCAST|EVFILT|NOTE|SHUT|PROT|MAP|MREMAP|MFD|T?PACKET|MSG|SCM|MCL|DT|MADV|PR|LOCAL|TCPOPT|UDP)_/ ||\n\t\t$2 ~ /^NFC_(GENL|PROTO|COMM|RF|SE|DIRECTION|LLCP|SOCKPROTO)_/ ||\n\t\t$2 ~ /^NFC_.*_(MAX)?SIZE$/ ||\n\t\t$2 ~ /^PTP_/ ||\n\t\t$2 ~ /^RAW_PAYLOAD_/ ||\n\t\t$2 ~ /^[US]F_/ ||\n\t\t$2 ~ /^TP_STATUS_/ ||\n\t\t$2 ~ /^FALLOC_/ ||\n\t\t$2 ~ /^ICMPV?6?_(FILTER|SEC)/ ||\n\t\t$2 == \"SOMAXCONN\" ||\n\t\t$2 == \"NAME_MAX\" ||\n\t\t$2 == \"IFNAMSIZ\" ||\n\t\t$2 ~ /^CTL_(HW|KERN|MAXNAME|NET|QUERY)$/ ||\n\t\t$2 ~ /^KERN_(HOSTNAME|OS(RELEASE|TYPE)|VERSION)$/ ||\n\t\t$2 ~ /^HW_MACHINE$/ ||\n\t\t$2 ~ /^SYSCTL_VERS/ ||\n\t\t$2 !~ \"MNT_BITS\" &&\n\t\t$2 ~ /^(MS|MNT|MOUNT|UMOUNT)_/ ||\n\t\t$2 ~ /^NS_GET_/ ||\n\t\t$2 ~ /^TUN(SET|GET|ATTACH|DETACH)/ ||\n\t\t$2 ~ /^(O|F|[ES]?FD|NAME|S|PTRACE|PT|PIOD|TFD)_/ ||\n\t\t$2 ~ /^KEXEC_/ ||\n\t\t$2 ~ /^LINUX_REBOOT_CMD_/ ||\n\t\t$2 ~ /^LINUX_REBOOT_MAGIC[12]$/ ||\n\t\t$2 ~ /^MODULE_INIT_/ ||\n\t\t$2 !~ \"NLA_TYPE_MASK\" &&\n\t\t$2 !~ /^RTC_VL_(ACCURACY|BACKUP|DATA)/ &&\n\t\t$2 ~ /^(NETLINK|NLM|NLMSG|NLA|IFA|IFAN|RT|RTC|RTCF|RTN|RTPROT|RTNH|ARPHRD|ETH_P|NETNSA)_/ ||\n\t\t$2 ~ /^SOCK_|SK_DIAG_|SKNLGRP_$/ ||\n\t\t$2 ~ /^(CONNECT|SAE)_/ ||\n\t\t$2 ~ /^FIORDCHK$/ ||\n\t\t$2 ~ /^SIOC/ ||\n\t\t$2 ~ /^TIOC/ ||\n\t\t$2 ~ /^TCGET/ ||\n\t\t$2 ~ /^TCSET/ ||\n\t\t$2 ~ /^TC(FLSH|SBRKP?|XONC)$/ ||\n\t\t$2 !~ \"RTF_BITS\" &&\n\t\t$2 ~ /^(IFF|IFT|NET_RT|RTM(GRP)?|RTF|RTV|RTA|RTAX)_/ ||\n\t\t$2 ~ /^BIOC/ ||\n\t\t$2 ~ /^DIOC/ ||\n\t\t$2 ~ /^RUSAGE_(SELF|CHILDREN|THREAD)/ ||\n\t\t$2 ~ /^RLIMIT_(AS|CORE|CPU|DATA|FSIZE|LOCKS|MEMLOCK|MSGQUEUE|NICE|NOFILE|NPROC|RSS|RTPRIO|RTTIME|SIGPENDING|STACK)|RLIM_INFINITY/ ||\n\t\t$2 ~ /^PRIO_(PROCESS|PGRP|USER)/ ||\n\t\t$2 ~ /^CLONE_[A-Z_]+/ ||\n\t\t$2 !~ /^(BPF_TIMEVAL|BPF_FIB_LOOKUP_[A-Z]+|BPF_F_LINK)$/ &&\n\t\t$2 ~ /^(BPF|DLT)_/ ||\n\t\t$2 ~ /^AUDIT_/ ||\n\t\t$2 ~ /^(CLOCK|TIMER)_/ ||\n\t\t$2 ~ /^CAN_/ ||\n\t\t$2 ~ /^CAP_/ ||\n\t\t$2 ~ /^CP_/ ||\n\t\t$2 ~ /^CPUSTATES$/ ||\n\t\t$2 ~ /^CTLIOCGINFO$/ ||\n\t\t$2 ~ /^ALG_/ ||\n\t\t$2 ~ /^FI(CLONE|DEDUPERANGE)/ ||\n\t\t$2 ~ /^FS_(POLICY_FLAGS|KEY_DESC|ENCRYPTION_MODE|[A-Z0-9_]+_KEY_SIZE)/ ||\n\t\t$2 ~ /^FS_IOC_.*(ENCRYPTION|VERITY|[GS]ETFLAGS)/ ||\n\t\t$2 ~ /^FS_VERITY_/ ||\n\t\t$2 ~ /^FSCRYPT_/ ||\n\t\t$2 ~ /^DM_/ ||\n\t\t$2 ~ /^GRND_/ ||\n\t\t$2 ~ /^RND/ ||\n\t\t$2 ~ /^KEY_(SPEC|REQKEY_DEFL)_/ ||\n\t\t$2 ~ /^KEYCTL_/ ||\n\t\t$2 ~ /^PERF_/ ||\n\t\t$2 ~ /^SECCOMP_/ ||\n\t\t$2 ~ /^SEEK_/ ||\n\t\t$2 ~ /^SCHED_/ ||\n\t\t$2 ~ /^SPLICE_/ ||\n\t\t$2 ~ /^SYNC_FILE_RANGE_/ ||\n\t\t$2 !~ /IOC_MAGIC/ &&\n\t\t$2 ~ /^[A-Z][A-Z0-9_]+_MAGIC2?$/ ||\n\t\t$2 ~ /^(VM|VMADDR)_/ ||\n\t\t$2 ~ /^IOCTL_VM_SOCKETS_/ ||\n\t\t$2 ~ /^(TASKSTATS|TS)_/ ||\n\t\t$2 ~ /^CGROUPSTATS_/ ||\n\t\t$2 ~ /^GENL_/ ||\n\t\t$2 ~ /^STATX_/ ||\n\t\t$2 ~ /^RENAME/ ||\n\t\t$2 ~ /^UBI_IOC[A-Z]/ ||\n\t\t$2 ~ /^UTIME_/ ||\n\t\t$2 ~ /^XATTR_(CREATE|REPLACE|NO(DEFAULT|FOLLOW|SECURITY)|SHOWCOMPRESSION)/ ||\n\t\t$2 ~ /^ATTR_(BIT_MAP_COUNT|(CMN|VOL|FILE)_)/ ||\n\t\t$2 ~ /^FSOPT_/ ||\n\t\t$2 ~ /^WDIO[CFS]_/ ||\n\t\t$2 ~ /^NFN/ ||\n\t\t$2 !~ /^NFT_META_IIFTYPE/ &&\n\t\t$2 ~ /^NFT_/ ||\n\t\t$2 ~ /^NF_NAT_/ ||\n\t\t$2 ~ /^XDP_/ ||\n\t\t$2 ~ /^RWF_/ ||\n\t\t$2 ~ /^(HDIO|WIN|SMART)_/ ||\n\t\t$2 ~ /^CRYPTO_/ ||\n\t\t$2 ~ /^TIPC_/ ||\n\t\t$2 !~  \"DEVLINK_RELOAD_LIMITS_VALID_MASK\" &&\n\t\t$2 ~ /^DEVLINK_/ ||\n\t\t$2 ~ /^ETHTOOL_/ ||\n\t\t$2 ~ /^LWTUNNEL_IP/ ||\n\t\t$2 ~ /^ITIMER_/ ||\n\t\t$2 !~ \"WMESGLEN\" &&\n\t\t$2 ~ /^W[A-Z0-9]+$/ ||\n\t\t$2 ~ /^P_/ ||\n\t\t$2 ~/^PPPIOC/ ||\n\t\t$2 ~ /^FAN_|FANOTIFY_/ ||\n\t\t$2 == \"HID_MAX_DESCRIPTOR_SIZE\" ||\n\t\t$2 ~ /^_?HIDIOC/ ||\n\t\t$2 ~ /^BUS_(USB|HIL|BLUETOOTH|VIRTUAL)$/ ||\n\t\t$2 ~ /^MTD/ ||\n\t\t$2 ~ /^OTP/ ||\n\t\t$2 ~ /^MEM/ ||\n\t\t$2 ~ /^WG/ ||\n\t\t$2 ~ /^FIB_RULE_/ ||\n\t\t$2 ~ /^BLK[A-Z]*(GET$|SET$|BUF$|PART$|SIZE|IOMIN$|IOOPT$|ALIGNOFF$|DISCARD|ROTATIONAL$|ZEROOUT$|GETDISKSEQ$)/ {printf(\"\\t%s = C.%s\\n\", $2, $2)}\n\t\t$2 ~ /^__WCOREFLAG$/ {next}\n\t\t$2 ~ /^__W[A-Z0-9]+$/ {printf(\"\\t%s = C.%s\\n\", substr($2,3), $2)}\n\n\t\t{next}\n\t' | sort\n\n\techo ')'\n) >_const.go\n\n# Pull out the error names for later.\nerrors=$(\n\techo '#include <errno.h>' | $CC -x c - -E -dM $ccflags |\n\tawk '$1==\"#define\" && $2 ~ /^E[A-Z0-9_]+$/ { print $2 }' |\n\tsort\n)\n\n# Pull out the signal names for later.\nsignals=$(\n\techo '#include <signal.h>' | $CC -x c - -E -dM $ccflags |\n\tawk '$1==\"#define\" && $2 ~ /^SIG[A-Z0-9]+$/ { print $2 }' |\n\tgrep -E -v '(SIGSTKSIZE|SIGSTKSZ|SIGRT|SIGMAX64)' |\n\tsort\n)\n\n# Again, writing regexps to a file.\necho '#include <errno.h>' | $CC -x c - -E -dM $ccflags |\n\tawk '$1==\"#define\" && $2 ~ /^E[A-Z0-9_]+$/ { print \"^\\t\" $2 \"[ \\t]*=\" }' |\n\tsort >_error.grep\necho '#include <signal.h>' | $CC -x c - -E -dM $ccflags |\n\tawk '$1==\"#define\" && $2 ~ /^SIG[A-Z0-9]+$/ { print \"^\\t\" $2 \"[ \\t]*=\" }' |\n\tgrep -E -v '(SIGSTKSIZE|SIGSTKSZ|SIGRT|SIGMAX64)' |\n\tsort >_signal.grep\n\necho '// mkerrors.sh' \"$@\"\necho '// Code generated by the command above; see README.md. DO NOT EDIT.'\necho\necho \"//go:build ${GOARCH} && ${GOOS}\"\necho\ngo tool cgo -godefs -- \"$@\" _const.go >_error.out\ncat _error.out | grep -vf _error.grep | grep -vf _signal.grep\necho\necho '// Errors'\necho 'const ('\ncat _error.out | grep -f _error.grep | sed 's/=\\(.*\\)/= syscall.Errno(\\1)/'\necho ')'\n\necho\necho '// Signals'\necho 'const ('\ncat _error.out | grep -f _signal.grep | sed 's/=\\(.*\\)/= syscall.Signal(\\1)/'\necho ')'\n\n# Run C program to print error and syscall strings.\n(\n\techo -E \"\n#include <stdio.h>\n#include <stdlib.h>\n#include <errno.h>\n#include <ctype.h>\n#include <string.h>\n#include <signal.h>\n\n#define nelem(x) (sizeof(x)/sizeof((x)[0]))\n\nenum { A = 'A', Z = 'Z', a = 'a', z = 'z' }; // avoid need for single quotes below\n\nstruct tuple {\n\tint num;\n\tconst char *name;\n};\n\nstruct tuple errors[] = {\n\"\n\tfor i in $errors\n\tdo\n\t\techo -E '\t{'$i', \"'$i'\" },'\n\tdone\n\n\techo -E \"\n};\n\nstruct tuple signals[] = {\n\"\n\tfor i in $signals\n\tdo\n\t\techo -E '\t{'$i', \"'$i'\" },'\n\tdone\n\n\t# Use -E because on some systems bash builtin interprets \\n itself.\n\techo -E '\n};\n\nstatic int\ntuplecmp(const void *a, const void *b)\n{\n\treturn ((struct tuple *)a)->num - ((struct tuple *)b)->num;\n}\n\nint\nmain(void)\n{\n\tint i, e;\n\tchar buf[1024], *p;\n\n\tprintf(\"\\n\\n// Error table\\n\");\n\tprintf(\"var errorList = [...]struct {\\n\");\n\tprintf(\"\\tnum  syscall.Errno\\n\");\n\tprintf(\"\\tname string\\n\");\n\tprintf(\"\\tdesc string\\n\");\n\tprintf(\"} {\\n\");\n\tqsort(errors, nelem(errors), sizeof errors[0], tuplecmp);\n\tfor(i=0; i<nelem(errors); i++) {\n\t\te = errors[i].num;\n\t\tif(i > 0 && errors[i-1].num == e)\n\t\t\tcontinue;\n\t\tstrncpy(buf, strerror(e), sizeof(buf) - 1);\n\t\tbuf[sizeof(buf) - 1] = '\\0';\n\t\t// lowercase first letter: Bad -> bad, but STREAM -> STREAM.\n\t\tif(A <= buf[0] && buf[0] <= Z && a <= buf[1] && buf[1] <= z)\n\t\t\tbuf[0] += a - A;\n\t\tprintf(\"\\t{ %d, \\\"%s\\\", \\\"%s\\\" },\\n\", e, errors[i].name, buf);\n\t}\n\tprintf(\"}\\n\\n\");\n\n\tprintf(\"\\n\\n// Signal table\\n\");\n\tprintf(\"var signalList = [...]struct {\\n\");\n\tprintf(\"\\tnum  syscall.Signal\\n\");\n\tprintf(\"\\tname string\\n\");\n\tprintf(\"\\tdesc string\\n\");\n\tprintf(\"} {\\n\");\n\tqsort(signals, nelem(signals), sizeof signals[0], tuplecmp);\n\tfor(i=0; i<nelem(signals); i++) {\n\t\te = signals[i].num;\n\t\tif(i > 0 && signals[i-1].num == e)\n\t\t\tcontinue;\n\t\tstrncpy(buf, strsignal(e), sizeof(buf) - 1);\n\t\tbuf[sizeof(buf) - 1] = '\\0';\n\t\t// lowercase first letter: Bad -> bad, but STREAM -> STREAM.\n\t\tif(A <= buf[0] && buf[0] <= Z && a <= buf[1] && buf[1] <= z)\n\t\t\tbuf[0] += a - A;\n\t\t// cut trailing : number.\n\t\tp = strrchr(buf, \":\"[0]);\n\t\tif(p)\n\t\t\t*p = '\\0';\n\t\tprintf(\"\\t{ %d, \\\"%s\\\", \\\"%s\\\" },\\n\", e, signals[i].name, buf);\n\t}\n\tprintf(\"}\\n\\n\");\n\n\treturn 0;\n}\n\n'\n) >_errors.c\n\n$CC $ccflags -o _errors _errors.c && $GORUN ./_errors && rm -f _errors.c _errors _const.go _error.grep _signal.grep _error.out\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/mmap_nomremap.go",
    "content": "// Copyright 2023 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || darwin || dragonfly || freebsd || openbsd || solaris || zos\n\npackage unix\n\nvar mapper = &mmapper{\n\tactive: make(map[*byte][]byte),\n\tmmap:   mmap,\n\tmunmap: munmap,\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/mremap.go",
    "content": "// Copyright 2023 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux || netbsd\n\npackage unix\n\nimport \"unsafe\"\n\ntype mremapMmapper struct {\n\tmmapper\n\tmremap func(oldaddr uintptr, oldlength uintptr, newlength uintptr, flags int, newaddr uintptr) (xaddr uintptr, err error)\n}\n\nvar mapper = &mremapMmapper{\n\tmmapper: mmapper{\n\t\tactive: make(map[*byte][]byte),\n\t\tmmap:   mmap,\n\t\tmunmap: munmap,\n\t},\n\tmremap: mremap,\n}\n\nfunc (m *mremapMmapper) Mremap(oldData []byte, newLength int, flags int) (data []byte, err error) {\n\tif newLength <= 0 || len(oldData) == 0 || len(oldData) != cap(oldData) || flags&mremapFixed != 0 {\n\t\treturn nil, EINVAL\n\t}\n\n\tpOld := &oldData[cap(oldData)-1]\n\tm.Lock()\n\tdefer m.Unlock()\n\tbOld := m.active[pOld]\n\tif bOld == nil || &bOld[0] != &oldData[0] {\n\t\treturn nil, EINVAL\n\t}\n\tnewAddr, errno := m.mremap(uintptr(unsafe.Pointer(&bOld[0])), uintptr(len(bOld)), uintptr(newLength), flags, 0)\n\tif errno != nil {\n\t\treturn nil, errno\n\t}\n\tbNew := unsafe.Slice((*byte)(unsafe.Pointer(newAddr)), newLength)\n\tpNew := &bNew[cap(bNew)-1]\n\tif flags&mremapDontunmap == 0 {\n\t\tdelete(m.active, pOld)\n\t}\n\tm.active[pNew] = bNew\n\treturn bNew, nil\n}\n\nfunc Mremap(oldData []byte, newLength int, flags int) (data []byte, err error) {\n\treturn mapper.Mremap(oldData, newLength, flags)\n}\n\nfunc MremapPtr(oldAddr unsafe.Pointer, oldSize uintptr, newAddr unsafe.Pointer, newSize uintptr, flags int) (ret unsafe.Pointer, err error) {\n\txaddr, err := mapper.mremap(uintptr(oldAddr), oldSize, newSize, flags, uintptr(newAddr))\n\treturn unsafe.Pointer(xaddr), err\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/pagesize_unix.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos\n\n// For Unix, get the pagesize from the runtime.\n\npackage unix\n\nimport \"syscall\"\n\nfunc Getpagesize() int {\n\treturn syscall.Getpagesize()\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/pledge_openbsd.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage unix\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n)\n\n// Pledge implements the pledge syscall.\n//\n// This changes both the promises and execpromises; use PledgePromises or\n// PledgeExecpromises to only change the promises or execpromises\n// respectively.\n//\n// For more information see pledge(2).\nfunc Pledge(promises, execpromises string) error {\n\tif err := pledgeAvailable(); err != nil {\n\t\treturn err\n\t}\n\n\tpptr, err := BytePtrFromString(promises)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\texptr, err := BytePtrFromString(execpromises)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn pledge(pptr, exptr)\n}\n\n// PledgePromises implements the pledge syscall.\n//\n// This changes the promises and leaves the execpromises untouched.\n//\n// For more information see pledge(2).\nfunc PledgePromises(promises string) error {\n\tif err := pledgeAvailable(); err != nil {\n\t\treturn err\n\t}\n\n\tpptr, err := BytePtrFromString(promises)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn pledge(pptr, nil)\n}\n\n// PledgeExecpromises implements the pledge syscall.\n//\n// This changes the execpromises and leaves the promises untouched.\n//\n// For more information see pledge(2).\nfunc PledgeExecpromises(execpromises string) error {\n\tif err := pledgeAvailable(); err != nil {\n\t\treturn err\n\t}\n\n\texptr, err := BytePtrFromString(execpromises)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn pledge(nil, exptr)\n}\n\n// majmin returns major and minor version number for an OpenBSD system.\nfunc majmin() (major int, minor int, err error) {\n\tvar v Utsname\n\terr = Uname(&v)\n\tif err != nil {\n\t\treturn\n\t}\n\n\tmajor, err = strconv.Atoi(string(v.Release[0]))\n\tif err != nil {\n\t\terr = errors.New(\"cannot parse major version number returned by uname\")\n\t\treturn\n\t}\n\n\tminor, err = strconv.Atoi(string(v.Release[2]))\n\tif err != nil {\n\t\terr = errors.New(\"cannot parse minor version number returned by uname\")\n\t\treturn\n\t}\n\n\treturn\n}\n\n// pledgeAvailable checks for availability of the pledge(2) syscall\n// based on the running OpenBSD version.\nfunc pledgeAvailable() error {\n\tmaj, min, err := majmin()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Require OpenBSD 6.4 as a minimum.\n\tif maj < 6 || (maj == 6 && min <= 3) {\n\t\treturn fmt.Errorf(\"cannot call Pledge on OpenBSD %d.%d\", maj, min)\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ptrace_darwin.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build darwin && !ios\n\npackage unix\n\nfunc ptrace(request int, pid int, addr uintptr, data uintptr) error {\n\treturn ptrace1(request, pid, addr, data)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ptrace_ios.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build ios\n\npackage unix\n\nfunc ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {\n\treturn ENOTSUP\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/race.go",
    "content": "// Copyright 2012 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build (darwin && race) || (linux && race) || (freebsd && race)\n\npackage unix\n\nimport (\n\t\"runtime\"\n\t\"unsafe\"\n)\n\nconst raceenabled = true\n\nfunc raceAcquire(addr unsafe.Pointer) {\n\truntime.RaceAcquire(addr)\n}\n\nfunc raceReleaseMerge(addr unsafe.Pointer) {\n\truntime.RaceReleaseMerge(addr)\n}\n\nfunc raceReadRange(addr unsafe.Pointer, len int) {\n\truntime.RaceReadRange(addr, len)\n}\n\nfunc raceWriteRange(addr unsafe.Pointer, len int) {\n\truntime.RaceWriteRange(addr, len)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/race0.go",
    "content": "// Copyright 2012 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || (darwin && !race) || (linux && !race) || (freebsd && !race) || netbsd || openbsd || solaris || dragonfly || zos\n\npackage unix\n\nimport (\n\t\"unsafe\"\n)\n\nconst raceenabled = false\n\nfunc raceAcquire(addr unsafe.Pointer) {\n}\n\nfunc raceReleaseMerge(addr unsafe.Pointer) {\n}\n\nfunc raceReadRange(addr unsafe.Pointer, len int) {\n}\n\nfunc raceWriteRange(addr unsafe.Pointer, len int) {\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/readdirent_getdents.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || dragonfly || freebsd || linux || netbsd || openbsd\n\npackage unix\n\n// ReadDirent reads directory entries from fd and writes them into buf.\nfunc ReadDirent(fd int, buf []byte) (n int, err error) {\n\treturn Getdents(fd, buf)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/readdirent_getdirentries.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build darwin || zos\n\npackage unix\n\nimport \"unsafe\"\n\n// ReadDirent reads directory entries from fd and writes them into buf.\nfunc ReadDirent(fd int, buf []byte) (n int, err error) {\n\t// Final argument is (basep *uintptr) and the syscall doesn't take nil.\n\t// 64 bits should be enough. (32 bits isn't even on 386). Since the\n\t// actual system call is getdirentries64, 64 is a good guess.\n\t// TODO(rsc): Can we use a single global basep for all calls?\n\tvar base = (*uintptr)(unsafe.Pointer(new(uint64)))\n\treturn Getdirentries(fd, buf, base)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage unix\n\n// Round the length of a raw sockaddr up to align it properly.\nfunc cmsgAlignOf(salen int) int {\n\tsalign := SizeofPtr\n\tif SizeofPtr == 8 && !supportsABI(_dragonflyABIChangeVersion) {\n\t\t// 64-bit Dragonfly before the September 2019 ABI changes still requires\n\t\t// 32-bit aligned access to network subsystem.\n\t\tsalign = 4\n\t}\n\treturn (salen + salign - 1) & ^(salign - 1)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/sockcmsg_linux.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Socket control messages\n\npackage unix\n\nimport \"unsafe\"\n\n// UnixCredentials encodes credentials into a socket control message\n// for sending to another process. This can be used for\n// authentication.\nfunc UnixCredentials(ucred *Ucred) []byte {\n\tb := make([]byte, CmsgSpace(SizeofUcred))\n\th := (*Cmsghdr)(unsafe.Pointer(&b[0]))\n\th.Level = SOL_SOCKET\n\th.Type = SCM_CREDENTIALS\n\th.SetLen(CmsgLen(SizeofUcred))\n\t*(*Ucred)(h.data(0)) = *ucred\n\treturn b\n}\n\n// ParseUnixCredentials decodes a socket control message that contains\n// credentials in a Ucred structure. To receive such a message, the\n// SO_PASSCRED option must be enabled on the socket.\nfunc ParseUnixCredentials(m *SocketControlMessage) (*Ucred, error) {\n\tif m.Header.Level != SOL_SOCKET {\n\t\treturn nil, EINVAL\n\t}\n\tif m.Header.Type != SCM_CREDENTIALS {\n\t\treturn nil, EINVAL\n\t}\n\tucred := *(*Ucred)(unsafe.Pointer(&m.Data[0]))\n\treturn &ucred, nil\n}\n\n// PktInfo4 encodes Inet4Pktinfo into a socket control message of type IP_PKTINFO.\nfunc PktInfo4(info *Inet4Pktinfo) []byte {\n\tb := make([]byte, CmsgSpace(SizeofInet4Pktinfo))\n\th := (*Cmsghdr)(unsafe.Pointer(&b[0]))\n\th.Level = SOL_IP\n\th.Type = IP_PKTINFO\n\th.SetLen(CmsgLen(SizeofInet4Pktinfo))\n\t*(*Inet4Pktinfo)(h.data(0)) = *info\n\treturn b\n}\n\n// PktInfo6 encodes Inet6Pktinfo into a socket control message of type IPV6_PKTINFO.\nfunc PktInfo6(info *Inet6Pktinfo) []byte {\n\tb := make([]byte, CmsgSpace(SizeofInet6Pktinfo))\n\th := (*Cmsghdr)(unsafe.Pointer(&b[0]))\n\th.Level = SOL_IPV6\n\th.Type = IPV6_PKTINFO\n\th.SetLen(CmsgLen(SizeofInet6Pktinfo))\n\t*(*Inet6Pktinfo)(h.data(0)) = *info\n\treturn b\n}\n\n// ParseOrigDstAddr decodes a socket control message containing the original\n// destination address. To receive such a message the IP_RECVORIGDSTADDR or\n// IPV6_RECVORIGDSTADDR option must be enabled on the socket.\nfunc ParseOrigDstAddr(m *SocketControlMessage) (Sockaddr, error) {\n\tswitch {\n\tcase m.Header.Level == SOL_IP && m.Header.Type == IP_ORIGDSTADDR:\n\t\tpp := (*RawSockaddrInet4)(unsafe.Pointer(&m.Data[0]))\n\t\tsa := new(SockaddrInet4)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tsa.Addr = pp.Addr\n\t\treturn sa, nil\n\n\tcase m.Header.Level == SOL_IPV6 && m.Header.Type == IPV6_ORIGDSTADDR:\n\t\tpp := (*RawSockaddrInet6)(unsafe.Pointer(&m.Data[0]))\n\t\tsa := new(SockaddrInet6)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tsa.ZoneId = pp.Scope_id\n\t\tsa.Addr = pp.Addr\n\t\treturn sa, nil\n\n\tdefault:\n\t\treturn nil, EINVAL\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/sockcmsg_unix.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos\n\n// Socket control messages\n\npackage unix\n\nimport (\n\t\"unsafe\"\n)\n\n// CmsgLen returns the value to store in the Len field of the Cmsghdr\n// structure, taking into account any necessary alignment.\nfunc CmsgLen(datalen int) int {\n\treturn cmsgAlignOf(SizeofCmsghdr) + datalen\n}\n\n// CmsgSpace returns the number of bytes an ancillary element with\n// payload of the passed data length occupies.\nfunc CmsgSpace(datalen int) int {\n\treturn cmsgAlignOf(SizeofCmsghdr) + cmsgAlignOf(datalen)\n}\n\nfunc (h *Cmsghdr) data(offset uintptr) unsafe.Pointer {\n\treturn unsafe.Pointer(uintptr(unsafe.Pointer(h)) + uintptr(cmsgAlignOf(SizeofCmsghdr)) + offset)\n}\n\n// SocketControlMessage represents a socket control message.\ntype SocketControlMessage struct {\n\tHeader Cmsghdr\n\tData   []byte\n}\n\n// ParseSocketControlMessage parses b as an array of socket control\n// messages.\nfunc ParseSocketControlMessage(b []byte) ([]SocketControlMessage, error) {\n\tvar msgs []SocketControlMessage\n\ti := 0\n\tfor i+CmsgLen(0) <= len(b) {\n\t\th, dbuf, err := socketControlMessageHeaderAndData(b[i:])\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tm := SocketControlMessage{Header: *h, Data: dbuf}\n\t\tmsgs = append(msgs, m)\n\t\ti += cmsgAlignOf(int(h.Len))\n\t}\n\treturn msgs, nil\n}\n\n// ParseOneSocketControlMessage parses a single socket control message from b, returning the message header,\n// message data (a slice of b), and the remainder of b after that single message.\n// When there are no remaining messages, len(remainder) == 0.\nfunc ParseOneSocketControlMessage(b []byte) (hdr Cmsghdr, data []byte, remainder []byte, err error) {\n\th, dbuf, err := socketControlMessageHeaderAndData(b)\n\tif err != nil {\n\t\treturn Cmsghdr{}, nil, nil, err\n\t}\n\tif i := cmsgAlignOf(int(h.Len)); i < len(b) {\n\t\tremainder = b[i:]\n\t}\n\treturn *h, dbuf, remainder, nil\n}\n\nfunc socketControlMessageHeaderAndData(b []byte) (*Cmsghdr, []byte, error) {\n\th := (*Cmsghdr)(unsafe.Pointer(&b[0]))\n\tif h.Len < SizeofCmsghdr || uint64(h.Len) > uint64(len(b)) {\n\t\treturn nil, nil, EINVAL\n\t}\n\treturn h, b[cmsgAlignOf(SizeofCmsghdr):h.Len], nil\n}\n\n// UnixRights encodes a set of open file descriptors into a socket\n// control message for sending to another process.\nfunc UnixRights(fds ...int) []byte {\n\tdatalen := len(fds) * 4\n\tb := make([]byte, CmsgSpace(datalen))\n\th := (*Cmsghdr)(unsafe.Pointer(&b[0]))\n\th.Level = SOL_SOCKET\n\th.Type = SCM_RIGHTS\n\th.SetLen(CmsgLen(datalen))\n\tfor i, fd := range fds {\n\t\t*(*int32)(h.data(4 * uintptr(i))) = int32(fd)\n\t}\n\treturn b\n}\n\n// ParseUnixRights decodes a socket control message that contains an\n// integer array of open file descriptors from another process.\nfunc ParseUnixRights(m *SocketControlMessage) ([]int, error) {\n\tif m.Header.Level != SOL_SOCKET {\n\t\treturn nil, EINVAL\n\t}\n\tif m.Header.Type != SCM_RIGHTS {\n\t\treturn nil, EINVAL\n\t}\n\tfds := make([]int, len(m.Data)>>2)\n\tfor i, j := 0, 0; i < len(m.Data); i += 4 {\n\t\tfds[j] = int(*(*int32)(unsafe.Pointer(&m.Data[i])))\n\t\tj++\n\t}\n\treturn fds, nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || darwin || freebsd || linux || netbsd || openbsd || solaris || zos\n\npackage unix\n\nimport (\n\t\"runtime\"\n)\n\n// Round the length of a raw sockaddr up to align it properly.\nfunc cmsgAlignOf(salen int) int {\n\tsalign := SizeofPtr\n\n\t// dragonfly needs to check ABI version at runtime, see cmsgAlignOf in\n\t// sockcmsg_dragonfly.go\n\tswitch runtime.GOOS {\n\tcase \"aix\":\n\t\t// There is no alignment on AIX.\n\t\tsalign = 1\n\tcase \"darwin\", \"ios\", \"illumos\", \"solaris\":\n\t\t// NOTE: It seems like 64-bit Darwin, Illumos and Solaris\n\t\t// kernels still require 32-bit aligned access to network\n\t\t// subsystem.\n\t\tif SizeofPtr == 8 {\n\t\t\tsalign = 4\n\t\t}\n\tcase \"netbsd\", \"openbsd\":\n\t\t// NetBSD and OpenBSD armv7 require 64-bit alignment.\n\t\tif runtime.GOARCH == \"arm\" {\n\t\t\tsalign = 8\n\t\t}\n\t\t// NetBSD aarch64 requires 128-bit alignment.\n\t\tif runtime.GOOS == \"netbsd\" && runtime.GOARCH == \"arm64\" {\n\t\t\tsalign = 16\n\t\t}\n\tcase \"zos\":\n\t\t// z/OS socket macros use [32-bit] sizeof(int) alignment,\n\t\t// not pointer width.\n\t\tsalign = SizeofInt\n\t}\n\n\treturn (salen + salign - 1) & ^(salign - 1)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/sockcmsg_zos.go",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Socket control messages\n\npackage unix\n\nimport \"unsafe\"\n\n// UnixCredentials encodes credentials into a socket control message\n// for sending to another process. This can be used for\n// authentication.\nfunc UnixCredentials(ucred *Ucred) []byte {\n\tb := make([]byte, CmsgSpace(SizeofUcred))\n\th := (*Cmsghdr)(unsafe.Pointer(&b[0]))\n\th.Level = SOL_SOCKET\n\th.Type = SCM_CREDENTIALS\n\th.SetLen(CmsgLen(SizeofUcred))\n\t*(*Ucred)(h.data(0)) = *ucred\n\treturn b\n}\n\n// ParseUnixCredentials decodes a socket control message that contains\n// credentials in a Ucred structure. To receive such a message, the\n// SO_PASSCRED option must be enabled on the socket.\nfunc ParseUnixCredentials(m *SocketControlMessage) (*Ucred, error) {\n\tif m.Header.Level != SOL_SOCKET {\n\t\treturn nil, EINVAL\n\t}\n\tif m.Header.Type != SCM_CREDENTIALS {\n\t\treturn nil, EINVAL\n\t}\n\tucred := *(*Ucred)(unsafe.Pointer(&m.Data[0]))\n\treturn &ucred, nil\n}\n\n// PktInfo4 encodes Inet4Pktinfo into a socket control message of type IP_PKTINFO.\nfunc PktInfo4(info *Inet4Pktinfo) []byte {\n\tb := make([]byte, CmsgSpace(SizeofInet4Pktinfo))\n\th := (*Cmsghdr)(unsafe.Pointer(&b[0]))\n\th.Level = SOL_IP\n\th.Type = IP_PKTINFO\n\th.SetLen(CmsgLen(SizeofInet4Pktinfo))\n\t*(*Inet4Pktinfo)(h.data(0)) = *info\n\treturn b\n}\n\n// PktInfo6 encodes Inet6Pktinfo into a socket control message of type IPV6_PKTINFO.\nfunc PktInfo6(info *Inet6Pktinfo) []byte {\n\tb := make([]byte, CmsgSpace(SizeofInet6Pktinfo))\n\th := (*Cmsghdr)(unsafe.Pointer(&b[0]))\n\th.Level = SOL_IPV6\n\th.Type = IPV6_PKTINFO\n\th.SetLen(CmsgLen(SizeofInet6Pktinfo))\n\t*(*Inet6Pktinfo)(h.data(0)) = *info\n\treturn b\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/symaddr_zos_s390x.s",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build zos && s390x && gc\n\n#include \"textflag.h\"\n\n//  provide the address of function variable to be fixed up.\n\nTEXT ·getPipe2Addr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Pipe2(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\nTEXT ·get_FlockAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Flock(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\nTEXT ·get_GetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Getxattr(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\nTEXT ·get_NanosleepAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Nanosleep(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\nTEXT ·get_SetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Setxattr(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\nTEXT ·get_Wait4Addr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Wait4(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\nTEXT ·get_MountAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Mount(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\nTEXT ·get_UnmountAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Unmount(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\nTEXT ·get_UtimesNanoAtAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·UtimesNanoAt(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\nTEXT ·get_UtimesNanoAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·UtimesNano(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\nTEXT ·get_MkfifoatAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Mkfifoat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\nTEXT ·get_ChtagAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Chtag(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\nTEXT ·get_ReadlinkatAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Readlinkat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\t\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos\n\n// Package unix contains an interface to the low-level operating system\n// primitives. OS details vary depending on the underlying system, and\n// by default, godoc will display OS-specific documentation for the current\n// system. If you want godoc to display OS documentation for another\n// system, set $GOOS and $GOARCH to the desired system. For example, if\n// you want to view documentation for freebsd/arm on linux/amd64, set $GOOS\n// to freebsd and $GOARCH to arm.\n//\n// The primary use of this package is inside other packages that provide a more\n// portable interface to the system, such as \"os\", \"time\" and \"net\".  Use\n// those packages rather than this one if you can.\n//\n// For details of the functions and data types in this package consult\n// the manuals for the appropriate operating system.\n//\n// These calls return err == nil to indicate success; otherwise\n// err represents an operating system error describing the failure and\n// holds a value of type syscall.Errno.\npackage unix // import \"golang.org/x/sys/unix\"\n\nimport (\n\t\"bytes\"\n\t\"strings\"\n\t\"unsafe\"\n)\n\n// ByteSliceFromString returns a NUL-terminated slice of bytes\n// containing the text of s. If s contains a NUL byte at any\n// location, it returns (nil, EINVAL).\nfunc ByteSliceFromString(s string) ([]byte, error) {\n\tif strings.IndexByte(s, 0) != -1 {\n\t\treturn nil, EINVAL\n\t}\n\ta := make([]byte, len(s)+1)\n\tcopy(a, s)\n\treturn a, nil\n}\n\n// BytePtrFromString returns a pointer to a NUL-terminated array of\n// bytes containing the text of s. If s contains a NUL byte at any\n// location, it returns (nil, EINVAL).\nfunc BytePtrFromString(s string) (*byte, error) {\n\ta, err := ByteSliceFromString(s)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &a[0], nil\n}\n\n// ByteSliceToString returns a string form of the text represented by the slice s, with a terminating NUL and any\n// bytes after the NUL removed.\nfunc ByteSliceToString(s []byte) string {\n\tif i := bytes.IndexByte(s, 0); i != -1 {\n\t\ts = s[:i]\n\t}\n\treturn string(s)\n}\n\n// BytePtrToString takes a pointer to a sequence of text and returns the corresponding string.\n// If the pointer is nil, it returns the empty string. It assumes that the text sequence is terminated\n// at a zero byte; if the zero byte is not present, the program may crash.\nfunc BytePtrToString(p *byte) string {\n\tif p == nil {\n\t\treturn \"\"\n\t}\n\tif *p == 0 {\n\t\treturn \"\"\n\t}\n\n\t// Find NUL terminator.\n\tn := 0\n\tfor ptr := unsafe.Pointer(p); *(*byte)(ptr) != 0; n++ {\n\t\tptr = unsafe.Pointer(uintptr(ptr) + 1)\n\t}\n\n\treturn string(unsafe.Slice(p, n))\n}\n\n// Single-word zero for use when we need a valid pointer to 0 bytes.\nvar _zero uintptr\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_aix.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix\n\n// Aix system calls.\n// This file is compiled as ordinary Go code,\n// but it is also input to mksyscall,\n// which parses the //sys lines and generates system call stubs.\n// Note that sometimes we use a lowercase //sys name and\n// wrap it in our own nicer implementation.\n\npackage unix\n\nimport \"unsafe\"\n\n/*\n * Wrapped\n */\n\nfunc Access(path string, mode uint32) (err error) {\n\treturn Faccessat(AT_FDCWD, path, mode, 0)\n}\n\nfunc Chmod(path string, mode uint32) (err error) {\n\treturn Fchmodat(AT_FDCWD, path, mode, 0)\n}\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\treturn Fchownat(AT_FDCWD, path, uid, gid, 0)\n}\n\nfunc Creat(path string, mode uint32) (fd int, err error) {\n\treturn Open(path, O_CREAT|O_WRONLY|O_TRUNC, mode)\n}\n\n//sys\tutimes(path string, times *[2]Timeval) (err error)\n\nfunc Utimes(path string, tv []Timeval) error {\n\tif len(tv) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))\n}\n\n//sys\tutimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error)\n\nfunc UtimesNano(path string, ts []Timespec) error {\n\tif len(ts) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)\n}\n\nfunc UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error {\n\tif ts == nil {\n\t\treturn utimensat(dirfd, path, nil, flags)\n\t}\n\tif len(ts) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags)\n}\n\nfunc (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_INET\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tsa.raw.Addr = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrInet4, nil\n}\n\nfunc (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_INET6\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tsa.raw.Scope_id = sa.ZoneId\n\tsa.raw.Addr = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrInet6, nil\n}\n\nfunc (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tname := sa.Name\n\tn := len(name)\n\tif n > len(sa.raw.Path) {\n\t\treturn nil, 0, EINVAL\n\t}\n\tif n == len(sa.raw.Path) && name[0] != '@' {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_UNIX\n\tfor i := 0; i < n; i++ {\n\t\tsa.raw.Path[i] = uint8(name[i])\n\t}\n\t// length is family (uint16), name, NUL.\n\tsl := _Socklen(2)\n\tif n > 0 {\n\t\tsl += _Socklen(n) + 1\n\t}\n\tif sa.raw.Path[0] == '@' || (sa.raw.Path[0] == 0 && sl > 3) {\n\t\t// Check sl > 3 so we don't change unnamed socket behavior.\n\t\tsa.raw.Path[0] = 0\n\t\t// Don't count trailing NUL for abstract address.\n\t\tsl--\n\t}\n\n\treturn unsafe.Pointer(&sa.raw), sl, nil\n}\n\nfunc Getsockname(fd int) (sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tif err = getsockname(fd, &rsa, &len); err != nil {\n\t\treturn\n\t}\n\treturn anyToSockaddr(fd, &rsa)\n}\n\n//sys\tgetcwd(buf []byte) (err error)\n\nconst ImplementsGetwd = true\n\nfunc Getwd() (ret string, err error) {\n\tfor len := uint64(4096); ; len *= 2 {\n\t\tb := make([]byte, len)\n\t\terr := getcwd(b)\n\t\tif err == nil {\n\t\t\ti := 0\n\t\t\tfor b[i] != 0 {\n\t\t\t\ti++\n\t\t\t}\n\t\t\treturn string(b[0:i]), nil\n\t\t}\n\t\tif err != ERANGE {\n\t\t\treturn \"\", err\n\t\t}\n\t}\n}\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\terr = getcwd(buf)\n\tif err == nil {\n\t\ti := 0\n\t\tfor buf[i] != 0 {\n\t\t\ti++\n\t\t}\n\t\tn = i + 1\n\t}\n\treturn\n}\n\nfunc Getgroups() (gids []int, err error) {\n\tn, err := getgroups(0, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif n == 0 {\n\t\treturn nil, nil\n\t}\n\n\t// Sanity check group count. Max is 16 on BSD.\n\tif n < 0 || n > 1000 {\n\t\treturn nil, EINVAL\n\t}\n\n\ta := make([]_Gid_t, n)\n\tn, err = getgroups(n, &a[0])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tgids = make([]int, n)\n\tfor i, v := range a[0:n] {\n\t\tgids[i] = int(v)\n\t}\n\treturn\n}\n\nfunc Setgroups(gids []int) (err error) {\n\tif len(gids) == 0 {\n\t\treturn setgroups(0, nil)\n\t}\n\n\ta := make([]_Gid_t, len(gids))\n\tfor i, v := range gids {\n\t\ta[i] = _Gid_t(v)\n\t}\n\treturn setgroups(len(a), &a[0])\n}\n\n/*\n * Socket\n */\n\n//sys\taccept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)\n\nfunc Accept(fd int) (nfd int, sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tnfd, err = accept(fd, &rsa, &len)\n\tif nfd == -1 {\n\t\treturn\n\t}\n\tsa, err = anyToSockaddr(fd, &rsa)\n\tif err != nil {\n\t\tClose(nfd)\n\t\tnfd = 0\n\t}\n\treturn\n}\n\nfunc recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) {\n\tvar msg Msghdr\n\tmsg.Name = (*byte)(unsafe.Pointer(rsa))\n\tmsg.Namelen = uint32(SizeofSockaddrAny)\n\tvar dummy byte\n\tif len(oob) > 0 {\n\t\t// receive at least one normal byte\n\t\tif emptyIovecs(iov) {\n\t\t\tvar iova [1]Iovec\n\t\t\tiova[0].Base = &dummy\n\t\t\tiova[0].SetLen(1)\n\t\t\tiov = iova[:]\n\t\t}\n\t\tmsg.Control = (*byte)(unsafe.Pointer(&oob[0]))\n\t\tmsg.SetControllen(len(oob))\n\t}\n\tif len(iov) > 0 {\n\t\tmsg.Iov = &iov[0]\n\t\tmsg.SetIovlen(len(iov))\n\t}\n\tif n, err = recvmsg(fd, &msg, flags); n == -1 {\n\t\treturn\n\t}\n\toobn = int(msg.Controllen)\n\trecvflags = int(msg.Flags)\n\treturn\n}\n\nfunc sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) {\n\tvar msg Msghdr\n\tmsg.Name = (*byte)(unsafe.Pointer(ptr))\n\tmsg.Namelen = uint32(salen)\n\tvar dummy byte\n\tvar empty bool\n\tif len(oob) > 0 {\n\t\t// send at least one normal byte\n\t\tempty = emptyIovecs(iov)\n\t\tif empty {\n\t\t\tvar iova [1]Iovec\n\t\t\tiova[0].Base = &dummy\n\t\t\tiova[0].SetLen(1)\n\t\t\tiov = iova[:]\n\t\t}\n\t\tmsg.Control = (*byte)(unsafe.Pointer(&oob[0]))\n\t\tmsg.SetControllen(len(oob))\n\t}\n\tif len(iov) > 0 {\n\t\tmsg.Iov = &iov[0]\n\t\tmsg.SetIovlen(len(iov))\n\t}\n\tif n, err = sendmsg(fd, &msg, flags); err != nil {\n\t\treturn 0, err\n\t}\n\tif len(oob) > 0 && empty {\n\t\tn = 0\n\t}\n\treturn n, nil\n}\n\nfunc anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {\n\tswitch rsa.Addr.Family {\n\n\tcase AF_UNIX:\n\t\tpp := (*RawSockaddrUnix)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrUnix)\n\n\t\t// Some versions of AIX have a bug in getsockname (see IV78655).\n\t\t// We can't rely on sa.Len being set correctly.\n\t\tn := SizeofSockaddrUnix - 3 // subtract leading Family, Len, terminating NUL.\n\t\tfor i := 0; i < n; i++ {\n\t\t\tif pp.Path[i] == 0 {\n\t\t\t\tn = i\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tsa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n))\n\t\treturn sa, nil\n\n\tcase AF_INET:\n\t\tpp := (*RawSockaddrInet4)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrInet4)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tsa.Addr = pp.Addr\n\t\treturn sa, nil\n\n\tcase AF_INET6:\n\t\tpp := (*RawSockaddrInet6)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrInet6)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tsa.ZoneId = pp.Scope_id\n\t\tsa.Addr = pp.Addr\n\t\treturn sa, nil\n\t}\n\treturn nil, EAFNOSUPPORT\n}\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\terr = gettimeofday(tv, nil)\n\treturn\n}\n\nfunc Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\treturn sendfile(outfd, infd, offset, count)\n}\n\n// TODO\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\treturn -1, ENOSYS\n}\n\nfunc direntIno(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino))\n}\n\nfunc direntReclen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen))\n}\n\nfunc direntNamlen(buf []byte) (uint64, bool) {\n\treclen, ok := direntReclen(buf)\n\tif !ok {\n\t\treturn 0, false\n\t}\n\treturn reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true\n}\n\n//sys\tgetdirent(fd int, buf []byte) (n int, err error)\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\treturn getdirent(fd, buf)\n}\n\n//sys\twait4(pid Pid_t, status *_C_int, options int, rusage *Rusage) (wpid Pid_t, err error)\n\nfunc Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) {\n\tvar status _C_int\n\tvar r Pid_t\n\terr = ERESTART\n\t// AIX wait4 may return with ERESTART errno, while the process is still\n\t// active.\n\tfor err == ERESTART {\n\t\tr, err = wait4(Pid_t(pid), &status, options, rusage)\n\t}\n\twpid = int(r)\n\tif wstatus != nil {\n\t\t*wstatus = WaitStatus(status)\n\t}\n\treturn\n}\n\n/*\n * Wait\n */\n\ntype WaitStatus uint32\n\nfunc (w WaitStatus) Stopped() bool { return w&0x40 != 0 }\nfunc (w WaitStatus) StopSignal() Signal {\n\tif !w.Stopped() {\n\t\treturn -1\n\t}\n\treturn Signal(w>>8) & 0xFF\n}\n\nfunc (w WaitStatus) Exited() bool { return w&0xFF == 0 }\nfunc (w WaitStatus) ExitStatus() int {\n\tif !w.Exited() {\n\t\treturn -1\n\t}\n\treturn int((w >> 8) & 0xFF)\n}\n\nfunc (w WaitStatus) Signaled() bool { return w&0x40 == 0 && w&0xFF != 0 }\nfunc (w WaitStatus) Signal() Signal {\n\tif !w.Signaled() {\n\t\treturn -1\n\t}\n\treturn Signal(w>>16) & 0xFF\n}\n\nfunc (w WaitStatus) Continued() bool { return w&0x01000000 != 0 }\n\nfunc (w WaitStatus) CoreDump() bool { return w&0x80 == 0x80 }\n\nfunc (w WaitStatus) TrapCause() int { return -1 }\n\n//sys\tioctl(fd int, req int, arg uintptr) (err error)\n//sys\tioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) = ioctl\n\n// fcntl must never be called with cmd=F_DUP2FD because it doesn't work on AIX\n// There is no way to create a custom fcntl and to keep //sys fcntl easily,\n// Therefore, the programmer must call dup2 instead of fcntl in this case.\n\n// FcntlInt performs a fcntl syscall on fd with the provided command and argument.\n//sys\tFcntlInt(fd uintptr, cmd int, arg int) (r int,err error) = fcntl\n\n// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command.\n//sys\tFcntlFlock(fd uintptr, cmd int, lk *Flock_t) (err error) = fcntl\n\n//sys\tfcntl(fd int, cmd int, arg int) (val int, err error)\n\n//sys\tfsyncRange(fd int, how int, start int64, length int64) (err error) = fsync_range\n\nfunc Fsync(fd int) error {\n\treturn fsyncRange(fd, O_SYNC, 0, 0)\n}\n\n/*\n * Direct access\n */\n\n//sys\tAcct(path string) (err error)\n//sys\tChdir(path string) (err error)\n//sys\tChroot(path string) (err error)\n//sys\tClose(fd int) (err error)\n//sys\tDup(oldfd int) (fd int, err error)\n//sys\tExit(code int)\n//sys\tFaccessat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchdir(fd int) (err error)\n//sys\tFchmod(fd int, mode uint32) (err error)\n//sys\tFchmodat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchownat(dirfd int, path string, uid int, gid int, flags int) (err error)\n//sys\tFdatasync(fd int) (err error)\n// readdir_r\n//sysnb\tGetpgid(pid int) (pgid int, err error)\n\n//sys\tGetpgrp() (pid int)\n\n//sysnb\tGetpid() (pid int)\n//sysnb\tGetppid() (ppid int)\n//sys\tGetpriority(which int, who int) (prio int, err error)\n//sysnb\tGetrusage(who int, rusage *Rusage) (err error)\n//sysnb\tGetsid(pid int) (sid int, err error)\n//sysnb\tKill(pid int, sig Signal) (err error)\n//sys\tKlogctl(typ int, buf []byte) (n int, err error) = syslog\n//sys\tMkdir(dirfd int, path string, mode uint32) (err error)\n//sys\tMkdirat(dirfd int, path string, mode uint32) (err error)\n//sys\tMkfifo(path string, mode uint32) (err error)\n//sys\tMknod(path string, mode uint32, dev int) (err error)\n//sys\tMknodat(dirfd int, path string, mode uint32, dev int) (err error)\n//sys\tNanosleep(time *Timespec, leftover *Timespec) (err error)\n//sys\tOpen(path string, mode int, perm uint32) (fd int, err error) = open64\n//sys\tOpenat(dirfd int, path string, flags int, mode uint32) (fd int, err error)\n//sys\tread(fd int, p []byte) (n int, err error)\n//sys\tReadlink(path string, buf []byte) (n int, err error)\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSetdomainname(p []byte) (err error)\n//sys\tSethostname(p []byte) (err error)\n//sysnb\tSetpgid(pid int, pgid int) (err error)\n//sysnb\tSetsid() (pid int, err error)\n//sysnb\tSettimeofday(tv *Timeval) (err error)\n\n//sys\tSetuid(uid int) (err error)\n//sys\tSetgid(uid int) (err error)\n\n//sys\tSetpriority(which int, who int, prio int) (err error)\n//sys\tStatx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error)\n//sys\tSync()\n//sysnb\tTimes(tms *Tms) (ticks uintptr, err error)\n//sysnb\tUmask(mask int) (oldmask int)\n//sysnb\tUname(buf *Utsname) (err error)\n//sys\tUnlink(path string) (err error)\n//sys\tUnlinkat(dirfd int, path string, flags int) (err error)\n//sys\tUstat(dev int, ubuf *Ustat_t) (err error)\n//sys\twrite(fd int, p []byte) (n int, err error)\n\n//sys\tDup2(oldfd int, newfd int) (err error)\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = posix_fadvise64\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tfstat(fd int, stat *Stat_t) (err error)\n//sys\tfstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = fstatat\n//sys\tFstatfs(fd int, buf *Statfs_t) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (euid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetuid() (uid int)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tListen(s int, n int) (err error)\n//sys\tlstat(path string, stat *Stat_t) (err error)\n//sys\tPause() (err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error) = pread64\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error) = pwrite64\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)\n//sys\tPselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error)\n//sysnb\tSetregid(rgid int, egid int) (err error)\n//sysnb\tSetreuid(ruid int, euid int) (err error)\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)\n//sys\tstat(path string, statptr *Stat_t) (err error)\n//sys\tStatfs(path string, buf *Statfs_t) (err error)\n//sys\tTruncate(path string, length int64) (err error)\n\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n\n// In order to use msghdr structure with Control, Controllen, nrecvmsg and nsendmsg must be used.\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error) = nrecvmsg\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error) = nsendmsg\n\n//sys\tmunmap(addr uintptr, length uintptr) (err error)\n//sys\tMadvise(b []byte, advice int) (err error)\n//sys\tMprotect(b []byte, prot int) (err error)\n//sys\tMlock(b []byte) (err error)\n//sys\tMlockall(flags int) (err error)\n//sys\tMsync(b []byte, flags int) (err error)\n//sys\tMunlock(b []byte) (err error)\n//sys\tMunlockall() (err error)\n\n//sysnb\tpipe(p *[2]_C_int) (err error)\n\nfunc Pipe(p []int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\terr = pipe(&pp)\n\tif err == nil {\n\t\tp[0] = int(pp[0])\n\t\tp[1] = int(pp[1])\n\t}\n\treturn\n}\n\n//sys\tpoll(fds *PollFd, nfds int, timeout int) (n int, err error)\n\nfunc Poll(fds []PollFd, timeout int) (n int, err error) {\n\tif len(fds) == 0 {\n\t\treturn poll(nil, 0, timeout)\n\t}\n\treturn poll(&fds[0], len(fds), timeout)\n}\n\n//sys\tgettimeofday(tv *Timeval, tzp *Timezone) (err error)\n//sysnb\tTime(t *Time_t) (tt Time_t, err error)\n//sys\tUtime(path string, buf *Utimbuf) (err error)\n\n//sys\tGetsystemcfg(label int) (n uint64)\n\n//sys\tumount(target string) (err error)\n\nfunc Unmount(target string, flags int) (err error) {\n\tif flags != 0 {\n\t\t// AIX doesn't have any flags for umount.\n\t\treturn ENOSYS\n\t}\n\treturn umount(target)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_aix_ppc.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix && ppc\n\npackage unix\n\n//sysnb\tGetrlimit(resource int, rlim *Rlimit) (err error) = getrlimit64\n//sys\tSeek(fd int, offset int64, whence int) (off int64, err error) = lseek64\n\n//sys\tmmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: int32(sec), Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: int32(sec), Usec: int32(usec)}\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc Fstat(fd int, stat *Stat_t) error {\n\treturn fstat(fd, stat)\n}\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) error {\n\treturn fstatat(dirfd, path, stat, flags)\n}\n\nfunc Lstat(path string, stat *Stat_t) error {\n\treturn lstat(path, stat)\n}\n\nfunc Stat(path string, statptr *Stat_t) error {\n\treturn stat(path, statptr)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix && ppc64\n\npackage unix\n\n//sysnb\tGetrlimit(resource int, rlim *Rlimit) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (off int64, err error) = lseek\n\n//sys\tmmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) = mmap64\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: int64(sec), Usec: int32(usec)}\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\n// In order to only have Timespec structure, type of Stat_t's fields\n// Atim, Mtim and Ctim is changed from StTimespec to Timespec during\n// ztypes generation.\n// On ppc64, Timespec.Nsec is an int64 while StTimespec.Nsec is an\n// int32, so the fields' value must be modified.\nfunc fixStatTimFields(stat *Stat_t) {\n\tstat.Atim.Nsec >>= 32\n\tstat.Mtim.Nsec >>= 32\n\tstat.Ctim.Nsec >>= 32\n}\n\nfunc Fstat(fd int, stat *Stat_t) error {\n\terr := fstat(fd, stat)\n\tif err != nil {\n\t\treturn err\n\t}\n\tfixStatTimFields(stat)\n\treturn nil\n}\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) error {\n\terr := fstatat(dirfd, path, stat, flags)\n\tif err != nil {\n\t\treturn err\n\t}\n\tfixStatTimFields(stat)\n\treturn nil\n}\n\nfunc Lstat(path string, stat *Stat_t) error {\n\terr := lstat(path, stat)\n\tif err != nil {\n\t\treturn err\n\t}\n\tfixStatTimFields(stat)\n\treturn nil\n}\n\nfunc Stat(path string, statptr *Stat_t) error {\n\terr := stat(path, statptr)\n\tif err != nil {\n\t\treturn err\n\t}\n\tfixStatTimFields(statptr)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_bsd.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build darwin || dragonfly || freebsd || netbsd || openbsd\n\n// BSD system call wrappers shared by *BSD based systems\n// including OS X (Darwin) and FreeBSD.  Like the other\n// syscall_*.go files it is compiled as Go code but also\n// used as input to mksyscall which parses the //sys\n// lines and generates system call stubs.\n\npackage unix\n\nimport (\n\t\"runtime\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nconst ImplementsGetwd = true\n\nfunc Getwd() (string, error) {\n\tvar buf [PathMax]byte\n\t_, err := Getcwd(buf[0:])\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tn := clen(buf[:])\n\tif n < 1 {\n\t\treturn \"\", EINVAL\n\t}\n\treturn string(buf[:n]), nil\n}\n\n/*\n * Wrapped\n */\n\n//sysnb\tgetgroups(ngid int, gid *_Gid_t) (n int, err error)\n//sysnb\tsetgroups(ngid int, gid *_Gid_t) (err error)\n\nfunc Getgroups() (gids []int, err error) {\n\tn, err := getgroups(0, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif n == 0 {\n\t\treturn nil, nil\n\t}\n\n\t// Sanity check group count. Max is 16 on BSD.\n\tif n < 0 || n > 1000 {\n\t\treturn nil, EINVAL\n\t}\n\n\ta := make([]_Gid_t, n)\n\tn, err = getgroups(n, &a[0])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tgids = make([]int, n)\n\tfor i, v := range a[0:n] {\n\t\tgids[i] = int(v)\n\t}\n\treturn\n}\n\nfunc Setgroups(gids []int) (err error) {\n\tif len(gids) == 0 {\n\t\treturn setgroups(0, nil)\n\t}\n\n\ta := make([]_Gid_t, len(gids))\n\tfor i, v := range gids {\n\t\ta[i] = _Gid_t(v)\n\t}\n\treturn setgroups(len(a), &a[0])\n}\n\n// Wait status is 7 bits at bottom, either 0 (exited),\n// 0x7F (stopped), or a signal number that caused an exit.\n// The 0x80 bit is whether there was a core dump.\n// An extra number (exit code, signal causing a stop)\n// is in the high bits.\n\ntype WaitStatus uint32\n\nconst (\n\tmask  = 0x7F\n\tcore  = 0x80\n\tshift = 8\n\n\texited  = 0\n\tkilled  = 9\n\tstopped = 0x7F\n)\n\nfunc (w WaitStatus) Exited() bool { return w&mask == exited }\n\nfunc (w WaitStatus) ExitStatus() int {\n\tif w&mask != exited {\n\t\treturn -1\n\t}\n\treturn int(w >> shift)\n}\n\nfunc (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != 0 }\n\nfunc (w WaitStatus) Signal() syscall.Signal {\n\tsig := syscall.Signal(w & mask)\n\tif sig == stopped || sig == 0 {\n\t\treturn -1\n\t}\n\treturn sig\n}\n\nfunc (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 }\n\nfunc (w WaitStatus) Stopped() bool { return w&mask == stopped && syscall.Signal(w>>shift) != SIGSTOP }\n\nfunc (w WaitStatus) Killed() bool { return w&mask == killed && syscall.Signal(w>>shift) != SIGKILL }\n\nfunc (w WaitStatus) Continued() bool { return w&mask == stopped && syscall.Signal(w>>shift) == SIGSTOP }\n\nfunc (w WaitStatus) StopSignal() syscall.Signal {\n\tif !w.Stopped() {\n\t\treturn -1\n\t}\n\treturn syscall.Signal(w>>shift) & 0xFF\n}\n\nfunc (w WaitStatus) TrapCause() int { return -1 }\n\n//sys\twait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error)\n\nfunc Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) {\n\tvar status _C_int\n\twpid, err = wait4(pid, &status, options, rusage)\n\tif wstatus != nil {\n\t\t*wstatus = WaitStatus(status)\n\t}\n\treturn\n}\n\n//sys\taccept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\tShutdown(s int, how int) (err error)\n\nfunc (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Len = SizeofSockaddrInet4\n\tsa.raw.Family = AF_INET\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tsa.raw.Addr = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil\n}\n\nfunc (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Len = SizeofSockaddrInet6\n\tsa.raw.Family = AF_INET6\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tsa.raw.Scope_id = sa.ZoneId\n\tsa.raw.Addr = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil\n}\n\nfunc (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tname := sa.Name\n\tn := len(name)\n\tif n >= len(sa.raw.Path) || n == 0 {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Len = byte(3 + n) // 2 for Family, Len; 1 for NUL\n\tsa.raw.Family = AF_UNIX\n\tfor i := 0; i < n; i++ {\n\t\tsa.raw.Path[i] = int8(name[i])\n\t}\n\treturn unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil\n}\n\nfunc (sa *SockaddrDatalink) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Index == 0 {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Len = sa.Len\n\tsa.raw.Family = AF_LINK\n\tsa.raw.Index = sa.Index\n\tsa.raw.Type = sa.Type\n\tsa.raw.Nlen = sa.Nlen\n\tsa.raw.Alen = sa.Alen\n\tsa.raw.Slen = sa.Slen\n\tsa.raw.Data = sa.Data\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrDatalink, nil\n}\n\nfunc anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {\n\tswitch rsa.Addr.Family {\n\tcase AF_LINK:\n\t\tpp := (*RawSockaddrDatalink)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrDatalink)\n\t\tsa.Len = pp.Len\n\t\tsa.Family = pp.Family\n\t\tsa.Index = pp.Index\n\t\tsa.Type = pp.Type\n\t\tsa.Nlen = pp.Nlen\n\t\tsa.Alen = pp.Alen\n\t\tsa.Slen = pp.Slen\n\t\tsa.Data = pp.Data\n\t\treturn sa, nil\n\n\tcase AF_UNIX:\n\t\tpp := (*RawSockaddrUnix)(unsafe.Pointer(rsa))\n\t\tif pp.Len < 2 || pp.Len > SizeofSockaddrUnix {\n\t\t\treturn nil, EINVAL\n\t\t}\n\t\tsa := new(SockaddrUnix)\n\n\t\t// Some BSDs include the trailing NUL in the length, whereas\n\t\t// others do not. Work around this by subtracting the leading\n\t\t// family and len. The path is then scanned to see if a NUL\n\t\t// terminator still exists within the length.\n\t\tn := int(pp.Len) - 2 // subtract leading Family, Len\n\t\tfor i := 0; i < n; i++ {\n\t\t\tif pp.Path[i] == 0 {\n\t\t\t\t// found early NUL; assume Len included the NUL\n\t\t\t\t// or was overestimating.\n\t\t\t\tn = i\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tsa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n))\n\t\treturn sa, nil\n\n\tcase AF_INET:\n\t\tpp := (*RawSockaddrInet4)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrInet4)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tsa.Addr = pp.Addr\n\t\treturn sa, nil\n\n\tcase AF_INET6:\n\t\tpp := (*RawSockaddrInet6)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrInet6)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tsa.ZoneId = pp.Scope_id\n\t\tsa.Addr = pp.Addr\n\t\treturn sa, nil\n\t}\n\treturn anyToSockaddrGOOS(fd, rsa)\n}\n\nfunc Accept(fd int) (nfd int, sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tnfd, err = accept(fd, &rsa, &len)\n\tif err != nil {\n\t\treturn\n\t}\n\tif (runtime.GOOS == \"darwin\" || runtime.GOOS == \"ios\") && len == 0 {\n\t\t// Accepted socket has no address.\n\t\t// This is likely due to a bug in xnu kernels,\n\t\t// where instead of ECONNABORTED error socket\n\t\t// is accepted, but has no address.\n\t\tClose(nfd)\n\t\treturn 0, nil, ECONNABORTED\n\t}\n\tsa, err = anyToSockaddr(fd, &rsa)\n\tif err != nil {\n\t\tClose(nfd)\n\t\tnfd = 0\n\t}\n\treturn\n}\n\nfunc Getsockname(fd int) (sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tif err = getsockname(fd, &rsa, &len); err != nil {\n\t\treturn\n\t}\n\t// TODO(jsing): DragonFly has a \"bug\" (see issue 3349), which should be\n\t// reported upstream.\n\tif runtime.GOOS == \"dragonfly\" && rsa.Addr.Family == AF_UNSPEC && rsa.Addr.Len == 0 {\n\t\trsa.Addr.Family = AF_UNIX\n\t\trsa.Addr.Len = SizeofSockaddrUnix\n\t}\n\treturn anyToSockaddr(fd, &rsa)\n}\n\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n\n// GetsockoptString returns the string value of the socket option opt for the\n// socket associated with fd at the given socket level.\nfunc GetsockoptString(fd, level, opt int) (string, error) {\n\tbuf := make([]byte, 256)\n\tvallen := _Socklen(len(buf))\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\treturn ByteSliceToString(buf[:vallen]), nil\n}\n\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error)\n\nfunc recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) {\n\tvar msg Msghdr\n\tmsg.Name = (*byte)(unsafe.Pointer(rsa))\n\tmsg.Namelen = uint32(SizeofSockaddrAny)\n\tvar dummy byte\n\tif len(oob) > 0 {\n\t\t// receive at least one normal byte\n\t\tif emptyIovecs(iov) {\n\t\t\tvar iova [1]Iovec\n\t\t\tiova[0].Base = &dummy\n\t\t\tiova[0].SetLen(1)\n\t\t\tiov = iova[:]\n\t\t}\n\t\tmsg.Control = (*byte)(unsafe.Pointer(&oob[0]))\n\t\tmsg.SetControllen(len(oob))\n\t}\n\tif len(iov) > 0 {\n\t\tmsg.Iov = &iov[0]\n\t\tmsg.SetIovlen(len(iov))\n\t}\n\tif n, err = recvmsg(fd, &msg, flags); err != nil {\n\t\treturn\n\t}\n\toobn = int(msg.Controllen)\n\trecvflags = int(msg.Flags)\n\treturn\n}\n\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error)\n\nfunc sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) {\n\tvar msg Msghdr\n\tmsg.Name = (*byte)(unsafe.Pointer(ptr))\n\tmsg.Namelen = uint32(salen)\n\tvar dummy byte\n\tvar empty bool\n\tif len(oob) > 0 {\n\t\t// send at least one normal byte\n\t\tempty = emptyIovecs(iov)\n\t\tif empty {\n\t\t\tvar iova [1]Iovec\n\t\t\tiova[0].Base = &dummy\n\t\t\tiova[0].SetLen(1)\n\t\t\tiov = iova[:]\n\t\t}\n\t\tmsg.Control = (*byte)(unsafe.Pointer(&oob[0]))\n\t\tmsg.SetControllen(len(oob))\n\t}\n\tif len(iov) > 0 {\n\t\tmsg.Iov = &iov[0]\n\t\tmsg.SetIovlen(len(iov))\n\t}\n\tif n, err = sendmsg(fd, &msg, flags); err != nil {\n\t\treturn 0, err\n\t}\n\tif len(oob) > 0 && empty {\n\t\tn = 0\n\t}\n\treturn n, nil\n}\n\n//sys\tkevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error)\n\nfunc Kevent(kq int, changes, events []Kevent_t, timeout *Timespec) (n int, err error) {\n\tvar change, event unsafe.Pointer\n\tif len(changes) > 0 {\n\t\tchange = unsafe.Pointer(&changes[0])\n\t}\n\tif len(events) > 0 {\n\t\tevent = unsafe.Pointer(&events[0])\n\t}\n\treturn kevent(kq, change, len(changes), event, len(events), timeout)\n}\n\n// sysctlmib translates name to mib number and appends any additional args.\nfunc sysctlmib(name string, args ...int) ([]_C_int, error) {\n\t// Translate name to mib number.\n\tmib, err := nametomib(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfor _, a := range args {\n\t\tmib = append(mib, _C_int(a))\n\t}\n\n\treturn mib, nil\n}\n\nfunc Sysctl(name string) (string, error) {\n\treturn SysctlArgs(name)\n}\n\nfunc SysctlArgs(name string, args ...int) (string, error) {\n\tbuf, err := SysctlRaw(name, args...)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tn := len(buf)\n\n\t// Throw away terminating NUL.\n\tif n > 0 && buf[n-1] == '\\x00' {\n\t\tn--\n\t}\n\treturn string(buf[0:n]), nil\n}\n\nfunc SysctlUint32(name string) (uint32, error) {\n\treturn SysctlUint32Args(name)\n}\n\nfunc SysctlUint32Args(name string, args ...int) (uint32, error) {\n\tmib, err := sysctlmib(name, args...)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\tn := uintptr(4)\n\tbuf := make([]byte, 4)\n\tif err := sysctl(mib, &buf[0], &n, nil, 0); err != nil {\n\t\treturn 0, err\n\t}\n\tif n != 4 {\n\t\treturn 0, EIO\n\t}\n\treturn *(*uint32)(unsafe.Pointer(&buf[0])), nil\n}\n\nfunc SysctlUint64(name string, args ...int) (uint64, error) {\n\tmib, err := sysctlmib(name, args...)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\tn := uintptr(8)\n\tbuf := make([]byte, 8)\n\tif err := sysctl(mib, &buf[0], &n, nil, 0); err != nil {\n\t\treturn 0, err\n\t}\n\tif n != 8 {\n\t\treturn 0, EIO\n\t}\n\treturn *(*uint64)(unsafe.Pointer(&buf[0])), nil\n}\n\nfunc SysctlRaw(name string, args ...int) ([]byte, error) {\n\tmib, err := sysctlmib(name, args...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Find size.\n\tn := uintptr(0)\n\tif err := sysctl(mib, nil, &n, nil, 0); err != nil {\n\t\treturn nil, err\n\t}\n\tif n == 0 {\n\t\treturn nil, nil\n\t}\n\n\t// Read into buffer of that size.\n\tbuf := make([]byte, n)\n\tif err := sysctl(mib, &buf[0], &n, nil, 0); err != nil {\n\t\treturn nil, err\n\t}\n\n\t// The actual call may return less than the original reported required\n\t// size so ensure we deal with that.\n\treturn buf[:n], nil\n}\n\nfunc SysctlClockinfo(name string) (*Clockinfo, error) {\n\tmib, err := sysctlmib(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tn := uintptr(SizeofClockinfo)\n\tvar ci Clockinfo\n\tif err := sysctl(mib, (*byte)(unsafe.Pointer(&ci)), &n, nil, 0); err != nil {\n\t\treturn nil, err\n\t}\n\tif n != SizeofClockinfo {\n\t\treturn nil, EIO\n\t}\n\treturn &ci, nil\n}\n\nfunc SysctlTimeval(name string) (*Timeval, error) {\n\tmib, err := sysctlmib(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar tv Timeval\n\tn := uintptr(unsafe.Sizeof(tv))\n\tif err := sysctl(mib, (*byte)(unsafe.Pointer(&tv)), &n, nil, 0); err != nil {\n\t\treturn nil, err\n\t}\n\tif n != unsafe.Sizeof(tv) {\n\t\treturn nil, EIO\n\t}\n\treturn &tv, nil\n}\n\n//sys\tutimes(path string, timeval *[2]Timeval) (err error)\n\nfunc Utimes(path string, tv []Timeval) error {\n\tif tv == nil {\n\t\treturn utimes(path, nil)\n\t}\n\tif len(tv) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))\n}\n\nfunc UtimesNano(path string, ts []Timespec) error {\n\tif ts == nil {\n\t\terr := utimensat(AT_FDCWD, path, nil, 0)\n\t\tif err != ENOSYS {\n\t\t\treturn err\n\t\t}\n\t\treturn utimes(path, nil)\n\t}\n\tif len(ts) != 2 {\n\t\treturn EINVAL\n\t}\n\terr := utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)\n\tif err != ENOSYS {\n\t\treturn err\n\t}\n\t// Not as efficient as it could be because Timespec and\n\t// Timeval have different types in the different OSes\n\ttv := [2]Timeval{\n\t\tNsecToTimeval(TimespecToNsec(ts[0])),\n\t\tNsecToTimeval(TimespecToNsec(ts[1])),\n\t}\n\treturn utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))\n}\n\nfunc UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error {\n\tif ts == nil {\n\t\treturn utimensat(dirfd, path, nil, flags)\n\t}\n\tif len(ts) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags)\n}\n\n//sys\tfutimes(fd int, timeval *[2]Timeval) (err error)\n\nfunc Futimes(fd int, tv []Timeval) error {\n\tif tv == nil {\n\t\treturn futimes(fd, nil)\n\t}\n\tif len(tv) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn futimes(fd, (*[2]Timeval)(unsafe.Pointer(&tv[0])))\n}\n\n//sys\tpoll(fds *PollFd, nfds int, timeout int) (n int, err error)\n\nfunc Poll(fds []PollFd, timeout int) (n int, err error) {\n\tif len(fds) == 0 {\n\t\treturn poll(nil, 0, timeout)\n\t}\n\treturn poll(&fds[0], len(fds), timeout)\n}\n\n// TODO: wrap\n//\tAcct(name nil-string) (err error)\n//\tGethostuuid(uuid *byte, timeout *Timespec) (err error)\n//\tPtrace(req int, pid int, addr uintptr, data int) (ret uintptr, err error)\n\n//sys\tMadvise(b []byte, behav int) (err error)\n//sys\tMlock(b []byte) (err error)\n//sys\tMlockall(flags int) (err error)\n//sys\tMprotect(b []byte, prot int) (err error)\n//sys\tMsync(b []byte, flags int) (err error)\n//sys\tMunlock(b []byte) (err error)\n//sys\tMunlockall() (err error)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_darwin.go",
    "content": "// Copyright 2009,2010 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Darwin system calls.\n// This file is compiled as ordinary Go code,\n// but it is also input to mksyscall,\n// which parses the //sys lines and generates system call stubs.\n// Note that sometimes we use a lowercase //sys name and wrap\n// it in our own nicer implementation, either here or in\n// syscall_bsd.go or syscall_unix.go.\n\npackage unix\n\nimport (\n\t\"fmt\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n//sys\tclosedir(dir uintptr) (err error)\n//sys\treaddir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno)\n\nfunc fdopendir(fd int) (dir uintptr, err error) {\n\tr0, _, e1 := syscall_syscallPtr(libc_fdopendir_trampoline_addr, uintptr(fd), 0, 0)\n\tdir = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fdopendir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fdopendir fdopendir \"/usr/lib/libSystem.B.dylib\"\n\nfunc Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {\n\t// Simulate Getdirentries using fdopendir/readdir_r/closedir.\n\t// We store the number of entries to skip in the seek\n\t// offset of fd. See issue #31368.\n\t// It's not the full required semantics, but should handle the case\n\t// of calling Getdirentries or ReadDirent repeatedly.\n\t// It won't handle assigning the results of lseek to *basep, or handle\n\t// the directory being edited underfoot.\n\tskip, err := Seek(fd, 0, 1 /* SEEK_CUR */)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\t// We need to duplicate the incoming file descriptor\n\t// because the caller expects to retain control of it, but\n\t// fdopendir expects to take control of its argument.\n\t// Just Dup'ing the file descriptor is not enough, as the\n\t// result shares underlying state. Use Openat to make a really\n\t// new file descriptor referring to the same directory.\n\tfd2, err := Openat(fd, \".\", O_RDONLY, 0)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\td, err := fdopendir(fd2)\n\tif err != nil {\n\t\tClose(fd2)\n\t\treturn 0, err\n\t}\n\tdefer closedir(d)\n\n\tvar cnt int64\n\tfor {\n\t\tvar entry Dirent\n\t\tvar entryp *Dirent\n\t\te := readdir_r(d, &entry, &entryp)\n\t\tif e != 0 {\n\t\t\treturn n, errnoErr(e)\n\t\t}\n\t\tif entryp == nil {\n\t\t\tbreak\n\t\t}\n\t\tif skip > 0 {\n\t\t\tskip--\n\t\t\tcnt++\n\t\t\tcontinue\n\t\t}\n\n\t\treclen := int(entry.Reclen)\n\t\tif reclen > len(buf) {\n\t\t\t// Not enough room. Return for now.\n\t\t\t// The counter will let us know where we should start up again.\n\t\t\t// Note: this strategy for suspending in the middle and\n\t\t\t// restarting is O(n^2) in the length of the directory. Oh well.\n\t\t\tbreak\n\t\t}\n\n\t\t// Copy entry into return buffer.\n\t\ts := unsafe.Slice((*byte)(unsafe.Pointer(&entry)), reclen)\n\t\tcopy(buf, s)\n\n\t\tbuf = buf[reclen:]\n\t\tn += reclen\n\t\tcnt++\n\t}\n\t// Set the seek offset of the input fd to record\n\t// how many files we've already returned.\n\t_, err = Seek(fd, cnt, 0 /* SEEK_SET */)\n\tif err != nil {\n\t\treturn n, err\n\t}\n\n\treturn n, nil\n}\n\n// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets.\ntype SockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n\traw    RawSockaddrDatalink\n}\n\n// SockaddrCtl implements the Sockaddr interface for AF_SYSTEM type sockets.\ntype SockaddrCtl struct {\n\tID   uint32\n\tUnit uint32\n\traw  RawSockaddrCtl\n}\n\nfunc (sa *SockaddrCtl) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Sc_len = SizeofSockaddrCtl\n\tsa.raw.Sc_family = AF_SYSTEM\n\tsa.raw.Ss_sysaddr = AF_SYS_CONTROL\n\tsa.raw.Sc_id = sa.ID\n\tsa.raw.Sc_unit = sa.Unit\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrCtl, nil\n}\n\n// SockaddrVM implements the Sockaddr interface for AF_VSOCK type sockets.\n// SockaddrVM provides access to Darwin VM sockets: a mechanism that enables\n// bidirectional communication between a hypervisor and its guest virtual\n// machines.\ntype SockaddrVM struct {\n\t// CID and Port specify a context ID and port address for a VM socket.\n\t// Guests have a unique CID, and hosts may have a well-known CID of:\n\t//  - VMADDR_CID_HYPERVISOR: refers to the hypervisor process.\n\t//  - VMADDR_CID_LOCAL: refers to local communication (loopback).\n\t//  - VMADDR_CID_HOST: refers to other processes on the host.\n\tCID  uint32\n\tPort uint32\n\traw  RawSockaddrVM\n}\n\nfunc (sa *SockaddrVM) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Len = SizeofSockaddrVM\n\tsa.raw.Family = AF_VSOCK\n\tsa.raw.Port = sa.Port\n\tsa.raw.Cid = sa.CID\n\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrVM, nil\n}\n\nfunc anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {\n\tswitch rsa.Addr.Family {\n\tcase AF_SYSTEM:\n\t\tpp := (*RawSockaddrCtl)(unsafe.Pointer(rsa))\n\t\tif pp.Ss_sysaddr == AF_SYS_CONTROL {\n\t\t\tsa := new(SockaddrCtl)\n\t\t\tsa.ID = pp.Sc_id\n\t\t\tsa.Unit = pp.Sc_unit\n\t\t\treturn sa, nil\n\t\t}\n\tcase AF_VSOCK:\n\t\tpp := (*RawSockaddrVM)(unsafe.Pointer(rsa))\n\t\tsa := &SockaddrVM{\n\t\t\tCID:  pp.Cid,\n\t\t\tPort: pp.Port,\n\t\t}\n\t\treturn sa, nil\n\t}\n\treturn nil, EAFNOSUPPORT\n}\n\n// Some external packages rely on SYS___SYSCTL being defined to implement their\n// own sysctl wrappers. Provide it here, even though direct syscalls are no\n// longer supported on darwin.\nconst SYS___SYSCTL = SYS_SYSCTL\n\n// Translate \"kern.hostname\" to []_C_int{0,1,2,3}.\nfunc nametomib(name string) (mib []_C_int, err error) {\n\tconst siz = unsafe.Sizeof(mib[0])\n\n\t// NOTE(rsc): It seems strange to set the buffer to have\n\t// size CTL_MAXNAME+2 but use only CTL_MAXNAME\n\t// as the size. I don't know why the +2 is here, but the\n\t// kernel uses +2 for its own implementation of this function.\n\t// I am scared that if we don't include the +2 here, the kernel\n\t// will silently write 2 words farther than we specify\n\t// and we'll get memory corruption.\n\tvar buf [CTL_MAXNAME + 2]_C_int\n\tn := uintptr(CTL_MAXNAME) * siz\n\n\tp := (*byte)(unsafe.Pointer(&buf[0]))\n\tbytes, err := ByteSliceFromString(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Magic sysctl: \"setting\" 0.3 to a string name\n\t// lets you read back the array of integers form.\n\tif err = sysctl([]_C_int{0, 3}, p, &n, &bytes[0], uintptr(len(name))); err != nil {\n\t\treturn nil, err\n\t}\n\treturn buf[0 : n/siz], nil\n}\n\nfunc direntIno(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino))\n}\n\nfunc direntReclen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen))\n}\n\nfunc direntNamlen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen))\n}\n\nfunc PtraceAttach(pid int) (err error) { return ptrace(PT_ATTACH, pid, 0, 0) }\nfunc PtraceDetach(pid int) (err error) { return ptrace(PT_DETACH, pid, 0, 0) }\nfunc PtraceDenyAttach() (err error)    { return ptrace(PT_DENY_ATTACH, 0, 0, 0) }\n\n//sysnb\tpipe(p *[2]int32) (err error)\n\nfunc Pipe(p []int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar x [2]int32\n\terr = pipe(&x)\n\tif err == nil {\n\t\tp[0] = int(x[0])\n\t\tp[1] = int(x[1])\n\t}\n\treturn\n}\n\nfunc Getfsstat(buf []Statfs_t, flags int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tvar bufsize uintptr\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t\tbufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf))\n\t}\n\treturn getfsstat(_p0, bufsize, flags)\n}\n\nfunc xattrPointer(dest []byte) *byte {\n\t// It's only when dest is set to NULL that the OS X implementations of\n\t// getxattr() and listxattr() return the current sizes of the named attributes.\n\t// An empty byte array is not sufficient. To maintain the same behaviour as the\n\t// linux implementation, we wrap around the system calls and pass in NULL when\n\t// dest is empty.\n\tvar destp *byte\n\tif len(dest) > 0 {\n\t\tdestp = &dest[0]\n\t}\n\treturn destp\n}\n\n//sys\tgetxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error)\n\nfunc Getxattr(path string, attr string, dest []byte) (sz int, err error) {\n\treturn getxattr(path, attr, xattrPointer(dest), len(dest), 0, 0)\n}\n\nfunc Lgetxattr(link string, attr string, dest []byte) (sz int, err error) {\n\treturn getxattr(link, attr, xattrPointer(dest), len(dest), 0, XATTR_NOFOLLOW)\n}\n\n//sys\tfgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error)\n\nfunc Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) {\n\treturn fgetxattr(fd, attr, xattrPointer(dest), len(dest), 0, 0)\n}\n\n//sys\tsetxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error)\n\nfunc Setxattr(path string, attr string, data []byte, flags int) (err error) {\n\t// The parameters for the OS X implementation vary slightly compared to the\n\t// linux system call, specifically the position parameter:\n\t//\n\t//  linux:\n\t//      int setxattr(\n\t//          const char *path,\n\t//          const char *name,\n\t//          const void *value,\n\t//          size_t size,\n\t//          int flags\n\t//      );\n\t//\n\t//  darwin:\n\t//      int setxattr(\n\t//          const char *path,\n\t//          const char *name,\n\t//          void *value,\n\t//          size_t size,\n\t//          u_int32_t position,\n\t//          int options\n\t//      );\n\t//\n\t// position specifies the offset within the extended attribute. In the\n\t// current implementation, only the resource fork extended attribute makes\n\t// use of this argument. For all others, position is reserved. We simply\n\t// default to setting it to zero.\n\treturn setxattr(path, attr, xattrPointer(data), len(data), 0, flags)\n}\n\nfunc Lsetxattr(link string, attr string, data []byte, flags int) (err error) {\n\treturn setxattr(link, attr, xattrPointer(data), len(data), 0, flags|XATTR_NOFOLLOW)\n}\n\n//sys\tfsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error)\n\nfunc Fsetxattr(fd int, attr string, data []byte, flags int) (err error) {\n\treturn fsetxattr(fd, attr, xattrPointer(data), len(data), 0, 0)\n}\n\n//sys\tremovexattr(path string, attr string, options int) (err error)\n\nfunc Removexattr(path string, attr string) (err error) {\n\t// We wrap around and explicitly zero out the options provided to the OS X\n\t// implementation of removexattr, we do so for interoperability with the\n\t// linux variant.\n\treturn removexattr(path, attr, 0)\n}\n\nfunc Lremovexattr(link string, attr string) (err error) {\n\treturn removexattr(link, attr, XATTR_NOFOLLOW)\n}\n\n//sys\tfremovexattr(fd int, attr string, options int) (err error)\n\nfunc Fremovexattr(fd int, attr string) (err error) {\n\treturn fremovexattr(fd, attr, 0)\n}\n\n//sys\tlistxattr(path string, dest *byte, size int, options int) (sz int, err error)\n\nfunc Listxattr(path string, dest []byte) (sz int, err error) {\n\treturn listxattr(path, xattrPointer(dest), len(dest), 0)\n}\n\nfunc Llistxattr(link string, dest []byte) (sz int, err error) {\n\treturn listxattr(link, xattrPointer(dest), len(dest), XATTR_NOFOLLOW)\n}\n\n//sys\tflistxattr(fd int, dest *byte, size int, options int) (sz int, err error)\n\nfunc Flistxattr(fd int, dest []byte) (sz int, err error) {\n\treturn flistxattr(fd, xattrPointer(dest), len(dest), 0)\n}\n\n//sys\tutimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error)\n\n/*\n * Wrapped\n */\n\n//sys\tfcntl(fd int, cmd int, arg int) (val int, err error)\n\n//sys\tkill(pid int, signum int, posix int) (err error)\n\nfunc Kill(pid int, signum syscall.Signal) (err error) { return kill(pid, int(signum), 1) }\n\n//sys\tioctl(fd int, req uint, arg uintptr) (err error)\n//sys\tioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL\n\nfunc IoctlCtlInfo(fd int, ctlInfo *CtlInfo) error {\n\treturn ioctlPtr(fd, CTLIOCGINFO, unsafe.Pointer(ctlInfo))\n}\n\n// IfreqMTU is struct ifreq used to get or set a network device's MTU.\ntype IfreqMTU struct {\n\tName [IFNAMSIZ]byte\n\tMTU  int32\n}\n\n// IoctlGetIfreqMTU performs the SIOCGIFMTU ioctl operation on fd to get the MTU\n// of the network device specified by ifname.\nfunc IoctlGetIfreqMTU(fd int, ifname string) (*IfreqMTU, error) {\n\tvar ifreq IfreqMTU\n\tcopy(ifreq.Name[:], ifname)\n\terr := ioctlPtr(fd, SIOCGIFMTU, unsafe.Pointer(&ifreq))\n\treturn &ifreq, err\n}\n\n// IoctlSetIfreqMTU performs the SIOCSIFMTU ioctl operation on fd to set the MTU\n// of the network device specified by ifreq.Name.\nfunc IoctlSetIfreqMTU(fd int, ifreq *IfreqMTU) error {\n\treturn ioctlPtr(fd, SIOCSIFMTU, unsafe.Pointer(ifreq))\n}\n\n//sys\trenamexNp(from string, to string, flag uint32) (err error)\n\nfunc RenamexNp(from string, to string, flag uint32) (err error) {\n\treturn renamexNp(from, to, flag)\n}\n\n//sys\trenameatxNp(fromfd int, from string, tofd int, to string, flag uint32) (err error)\n\nfunc RenameatxNp(fromfd int, from string, tofd int, to string, flag uint32) (err error) {\n\treturn renameatxNp(fromfd, from, tofd, to, flag)\n}\n\n//sys\tsysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS_SYSCTL\n\nfunc Uname(uname *Utsname) error {\n\tmib := []_C_int{CTL_KERN, KERN_OSTYPE}\n\tn := unsafe.Sizeof(uname.Sysname)\n\tif err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_HOSTNAME}\n\tn = unsafe.Sizeof(uname.Nodename)\n\tif err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_OSRELEASE}\n\tn = unsafe.Sizeof(uname.Release)\n\tif err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_VERSION}\n\tn = unsafe.Sizeof(uname.Version)\n\tif err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\t// The version might have newlines or tabs in it, convert them to\n\t// spaces.\n\tfor i, b := range uname.Version {\n\t\tif b == '\\n' || b == '\\t' {\n\t\t\tif i == len(uname.Version)-1 {\n\t\t\t\tuname.Version[i] = 0\n\t\t\t} else {\n\t\t\t\tuname.Version[i] = ' '\n\t\t\t}\n\t\t}\n\t}\n\n\tmib = []_C_int{CTL_HW, HW_MACHINE}\n\tn = unsafe.Sizeof(uname.Machine)\n\tif err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\tvar length = int64(count)\n\terr = sendfile(infd, outfd, *offset, &length, nil, 0)\n\twritten = int(length)\n\treturn\n}\n\nfunc GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) {\n\tvar value IPMreqn\n\tvallen := _Socklen(SizeofIPMreqn)\n\terrno := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, errno\n}\n\nfunc SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq))\n}\n\n// GetsockoptXucred is a getsockopt wrapper that returns an Xucred struct.\n// The usual level and opt are SOL_LOCAL and LOCAL_PEERCRED, respectively.\nfunc GetsockoptXucred(fd, level, opt int) (*Xucred, error) {\n\tx := new(Xucred)\n\tvallen := _Socklen(SizeofXucred)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(x), &vallen)\n\treturn x, err\n}\n\nfunc GetsockoptTCPConnectionInfo(fd, level, opt int) (*TCPConnectionInfo, error) {\n\tvar value TCPConnectionInfo\n\tvallen := _Socklen(SizeofTCPConnectionInfo)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc SysctlKinfoProc(name string, args ...int) (*KinfoProc, error) {\n\tmib, err := sysctlmib(name, args...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar kinfo KinfoProc\n\tn := uintptr(SizeofKinfoProc)\n\tif err := sysctl(mib, (*byte)(unsafe.Pointer(&kinfo)), &n, nil, 0); err != nil {\n\t\treturn nil, err\n\t}\n\tif n != SizeofKinfoProc {\n\t\treturn nil, EIO\n\t}\n\treturn &kinfo, nil\n}\n\nfunc SysctlKinfoProcSlice(name string, args ...int) ([]KinfoProc, error) {\n\tmib, err := sysctlmib(name, args...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tfor {\n\t\t// Find size.\n\t\tn := uintptr(0)\n\t\tif err := sysctl(mib, nil, &n, nil, 0); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif n == 0 {\n\t\t\treturn nil, nil\n\t\t}\n\t\tif n%SizeofKinfoProc != 0 {\n\t\t\treturn nil, fmt.Errorf(\"sysctl() returned a size of %d, which is not a multiple of %d\", n, SizeofKinfoProc)\n\t\t}\n\n\t\t// Read into buffer of that size.\n\t\tbuf := make([]KinfoProc, n/SizeofKinfoProc)\n\t\tif err := sysctl(mib, (*byte)(unsafe.Pointer(&buf[0])), &n, nil, 0); err != nil {\n\t\t\tif err == ENOMEM {\n\t\t\t\t// Process table grew. Try again.\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn nil, err\n\t\t}\n\t\tif n%SizeofKinfoProc != 0 {\n\t\t\treturn nil, fmt.Errorf(\"sysctl() returned a size of %d, which is not a multiple of %d\", n, SizeofKinfoProc)\n\t\t}\n\n\t\t// The actual call may return less than the original reported required\n\t\t// size so ensure we deal with that.\n\t\treturn buf[:n/SizeofKinfoProc], nil\n\t}\n}\n\n//sys\tpthread_chdir_np(path string) (err error)\n\nfunc PthreadChdir(path string) (err error) {\n\treturn pthread_chdir_np(path)\n}\n\n//sys\tpthread_fchdir_np(fd int) (err error)\n\nfunc PthreadFchdir(fd int) (err error) {\n\treturn pthread_fchdir_np(fd)\n}\n\n// Connectx calls connectx(2) to initiate a connection on a socket.\n//\n// srcIf, srcAddr, and dstAddr are filled into a [SaEndpoints] struct and passed as the endpoints argument.\n//\n//   - srcIf is the optional source interface index. 0 means unspecified.\n//   - srcAddr is the optional source address. nil means unspecified.\n//   - dstAddr is the destination address.\n//\n// On success, Connectx returns the number of bytes enqueued for transmission.\nfunc Connectx(fd int, srcIf uint32, srcAddr, dstAddr Sockaddr, associd SaeAssocID, flags uint32, iov []Iovec, connid *SaeConnID) (n uintptr, err error) {\n\tendpoints := SaEndpoints{\n\t\tSrcif: srcIf,\n\t}\n\n\tif srcAddr != nil {\n\t\taddrp, addrlen, err := srcAddr.sockaddr()\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\tendpoints.Srcaddr = (*RawSockaddr)(addrp)\n\t\tendpoints.Srcaddrlen = uint32(addrlen)\n\t}\n\n\tif dstAddr != nil {\n\t\taddrp, addrlen, err := dstAddr.sockaddr()\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\tendpoints.Dstaddr = (*RawSockaddr)(addrp)\n\t\tendpoints.Dstaddrlen = uint32(addrlen)\n\t}\n\n\terr = connectx(fd, &endpoints, associd, flags, iov, &n, connid)\n\treturn\n}\n\n//sys\tconnectx(fd int, endpoints *SaEndpoints, associd SaeAssocID, flags uint32, iov []Iovec, n *uintptr, connid *SaeConnID) (err error)\n//sys\tsendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error)\n\n//sys\tshmat(id int, addr uintptr, flag int) (ret uintptr, err error)\n//sys\tshmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error)\n//sys\tshmdt(addr uintptr) (err error)\n//sys\tshmget(key int, size int, flag int) (id int, err error)\n\n/*\n * Exposed directly\n */\n//sys\tAccess(path string, mode uint32) (err error)\n//sys\tAdjtime(delta *Timeval, olddelta *Timeval) (err error)\n//sys\tChdir(path string) (err error)\n//sys\tChflags(path string, flags int) (err error)\n//sys\tChmod(path string, mode uint32) (err error)\n//sys\tChown(path string, uid int, gid int) (err error)\n//sys\tChroot(path string) (err error)\n//sys\tClockGettime(clockid int32, time *Timespec) (err error)\n//sys\tClose(fd int) (err error)\n//sys\tClonefile(src string, dst string, flags int) (err error)\n//sys\tClonefileat(srcDirfd int, src string, dstDirfd int, dst string, flags int) (err error)\n//sys\tDup(fd int) (nfd int, err error)\n//sys\tDup2(from int, to int) (err error)\n//sys\tExchangedata(path1 string, path2 string, options int) (err error)\n//sys\tExit(code int)\n//sys\tFaccessat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchdir(fd int) (err error)\n//sys\tFchflags(fd int, flags int) (err error)\n//sys\tFchmod(fd int, mode uint32) (err error)\n//sys\tFchmodat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFchownat(dirfd int, path string, uid int, gid int, flags int) (err error)\n//sys\tFclonefileat(srcDirfd int, dstDirfd int, dst string, flags int) (err error)\n//sys\tFlock(fd int, how int) (err error)\n//sys\tFpathconf(fd int, name int) (val int, err error)\n//sys\tFsync(fd int) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sys\tGetcwd(buf []byte) (n int, err error)\n//sys\tGetdtablesize() (size int)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (uid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetpgid(pid int) (pgid int, err error)\n//sysnb\tGetpgrp() (pgrp int)\n//sysnb\tGetpid() (pid int)\n//sysnb\tGetppid() (ppid int)\n//sys\tGetpriority(which int, who int) (prio int, err error)\n//sysnb\tGetrlimit(which int, lim *Rlimit) (err error)\n//sysnb\tGetrusage(who int, rusage *Rusage) (err error)\n//sysnb\tGetsid(pid int) (sid int, err error)\n//sysnb\tGettimeofday(tp *Timeval) (err error)\n//sysnb\tGetuid() (uid int)\n//sysnb\tIssetugid() (tainted bool)\n//sys\tKqueue() (fd int, err error)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tLink(path string, link string) (err error)\n//sys\tLinkat(pathfd int, path string, linkfd int, link string, flags int) (err error)\n//sys\tListen(s int, backlog int) (err error)\n//sys\tMkdir(path string, mode uint32) (err error)\n//sys\tMkdirat(dirfd int, path string, mode uint32) (err error)\n//sys\tMkfifo(path string, mode uint32) (err error)\n//sys\tMknod(path string, mode uint32, dev int) (err error)\n//sys\tMount(fsType string, dir string, flags int, data unsafe.Pointer) (err error)\n//sys\tOpen(path string, mode int, perm uint32) (fd int, err error)\n//sys\tOpenat(dirfd int, path string, mode int, perm uint32) (fd int, err error)\n//sys\tPathconf(path string, name int) (val int, err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error)\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error)\n//sys\tread(fd int, p []byte) (n int, err error)\n//sys\tReadlink(path string, buf []byte) (n int, err error)\n//sys\tReadlinkat(dirfd int, path string, buf []byte) (n int, err error)\n//sys\tRename(from string, to string) (err error)\n//sys\tRenameat(fromfd int, from string, tofd int, to string) (err error)\n//sys\tRevoke(path string) (err error)\n//sys\tRmdir(path string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)\n//sys\tSetattrlist(path string, attrlist *Attrlist, attrBuf []byte, options int) (err error)\n//sys\tSetegid(egid int) (err error)\n//sysnb\tSeteuid(euid int) (err error)\n//sysnb\tSetgid(gid int) (err error)\n//sys\tSetlogin(name string) (err error)\n//sysnb\tSetpgid(pid int, pgid int) (err error)\n//sys\tSetpriority(which int, who int, prio int) (err error)\n//sys\tSetprivexec(flag int) (err error)\n//sysnb\tSetregid(rgid int, egid int) (err error)\n//sysnb\tSetreuid(ruid int, euid int) (err error)\n//sysnb\tSetsid() (pid int, err error)\n//sysnb\tSettimeofday(tp *Timeval) (err error)\n//sysnb\tSetuid(uid int) (err error)\n//sys\tSymlink(path string, link string) (err error)\n//sys\tSymlinkat(oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSync() (err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\tUmask(newmask int) (oldmask int)\n//sys\tUndelete(path string) (err error)\n//sys\tUnlink(path string) (err error)\n//sys\tUnlinkat(dirfd int, path string, flags int) (err error)\n//sys\tUnmount(path string, flags int) (err error)\n//sys\twrite(fd int, p []byte) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error)\n//sys\tmunmap(addr uintptr, length uintptr) (err error)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build amd64 && darwin\n\npackage unix\n\nimport \"syscall\"\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: int32(usec)}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)\n\n//sys\tFstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64\n//sys\tFstatat(fd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64\n//sys\tFstatfs(fd int, stat *Statfs_t) (err error) = SYS_FSTATFS64\n//sys\tgetfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT64\n//sys\tLstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64\n//sys\tptrace1(request int, pid int, addr uintptr, data uintptr) (err error) = SYS_ptrace\n//sys\tStat(path string, stat *Stat_t) (err error) = SYS_STAT64\n//sys\tStatfs(path string, stat *Statfs_t) (err error) = SYS_STATFS64\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build arm64 && darwin\n\npackage unix\n\nimport \"syscall\"\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: int32(usec)}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) // sic\n\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(fd int, path string, stat *Stat_t, flags int) (err error)\n//sys\tFstatfs(fd int, stat *Statfs_t) (err error)\n//sys\tgetfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT\n//sys\tLstat(path string, stat *Stat_t) (err error)\n//sys\tptrace1(request int, pid int, addr uintptr, data uintptr) (err error) = SYS_ptrace\n//sys\tStat(path string, stat *Stat_t) (err error)\n//sys\tStatfs(path string, stat *Statfs_t) (err error)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build darwin\n\npackage unix\n\nimport _ \"unsafe\"\n\n// Implemented in the runtime package (runtime/sys_darwin.go)\nfunc syscall_syscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno)\nfunc syscall_syscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)\nfunc syscall_syscall6X(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)\nfunc syscall_syscall9(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno) // 32-bit only\nfunc syscall_rawSyscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno)\nfunc syscall_rawSyscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)\nfunc syscall_syscallPtr(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno)\n\n//go:linkname syscall_syscall syscall.syscall\n//go:linkname syscall_syscall6 syscall.syscall6\n//go:linkname syscall_syscall6X syscall.syscall6X\n//go:linkname syscall_syscall9 syscall.syscall9\n//go:linkname syscall_rawSyscall syscall.rawSyscall\n//go:linkname syscall_rawSyscall6 syscall.rawSyscall6\n//go:linkname syscall_syscallPtr syscall.syscallPtr\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_dragonfly.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// DragonFly BSD system calls.\n// This file is compiled as ordinary Go code,\n// but it is also input to mksyscall,\n// which parses the //sys lines and generates system call stubs.\n// Note that sometimes we use a lowercase //sys name and wrap\n// it in our own nicer implementation, either here or in\n// syscall_bsd.go or syscall_unix.go.\n\npackage unix\n\nimport (\n\t\"sync\"\n\t\"unsafe\"\n)\n\n// See version list in https://github.com/DragonFlyBSD/DragonFlyBSD/blob/master/sys/sys/param.h\nvar (\n\tosreldateOnce sync.Once\n\tosreldate     uint32\n)\n\n// First __DragonFly_version after September 2019 ABI changes\n// http://lists.dragonflybsd.org/pipermail/users/2019-September/358280.html\nconst _dragonflyABIChangeVersion = 500705\n\nfunc supportsABI(ver uint32) bool {\n\tosreldateOnce.Do(func() { osreldate, _ = SysctlUint32(\"kern.osreldate\") })\n\treturn osreldate >= ver\n}\n\n// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets.\ntype SockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n\tRcf    uint16\n\tRoute  [16]uint16\n\traw    RawSockaddrDatalink\n}\n\nfunc anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {\n\treturn nil, EAFNOSUPPORT\n}\n\n// Translate \"kern.hostname\" to []_C_int{0,1,2,3}.\nfunc nametomib(name string) (mib []_C_int, err error) {\n\tconst siz = unsafe.Sizeof(mib[0])\n\n\t// NOTE(rsc): It seems strange to set the buffer to have\n\t// size CTL_MAXNAME+2 but use only CTL_MAXNAME\n\t// as the size. I don't know why the +2 is here, but the\n\t// kernel uses +2 for its own implementation of this function.\n\t// I am scared that if we don't include the +2 here, the kernel\n\t// will silently write 2 words farther than we specify\n\t// and we'll get memory corruption.\n\tvar buf [CTL_MAXNAME + 2]_C_int\n\tn := uintptr(CTL_MAXNAME) * siz\n\n\tp := (*byte)(unsafe.Pointer(&buf[0]))\n\tbytes, err := ByteSliceFromString(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Magic sysctl: \"setting\" 0.3 to a string name\n\t// lets you read back the array of integers form.\n\tif err = sysctl([]_C_int{0, 3}, p, &n, &bytes[0], uintptr(len(name))); err != nil {\n\t\treturn nil, err\n\t}\n\treturn buf[0 : n/siz], nil\n}\n\nfunc direntIno(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno))\n}\n\nfunc direntReclen(buf []byte) (uint64, bool) {\n\tnamlen, ok := direntNamlen(buf)\n\tif !ok {\n\t\treturn 0, false\n\t}\n\treturn (16 + namlen + 1 + 7) &^ 7, true\n}\n\nfunc direntNamlen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen))\n}\n\n//sysnb\tpipe() (r int, w int, err error)\n\nfunc Pipe(p []int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tr, w, err := pipe()\n\tif err == nil {\n\t\tp[0], p[1] = r, w\n\t}\n\treturn\n}\n\n//sysnb\tpipe2(p *[2]_C_int, flags int) (r int, w int, err error)\n\nfunc Pipe2(p []int, flags int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\t// pipe2 on dragonfly takes an fds array as an argument, but still\n\t// returns the file descriptors.\n\tr, w, err := pipe2(&pp, flags)\n\tif err == nil {\n\t\tp[0], p[1] = r, w\n\t}\n\treturn err\n}\n\n//sys\textpread(fd int, p []byte, flags int, offset int64) (n int, err error)\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\treturn extpread(fd, p, 0, offset)\n}\n\n//sys\textpwrite(fd int, p []byte, flags int, offset int64) (n int, err error)\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\treturn extpwrite(fd, p, 0, offset)\n}\n\nfunc Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tnfd, err = accept4(fd, &rsa, &len, flags)\n\tif err != nil {\n\t\treturn\n\t}\n\tif len > SizeofSockaddrAny {\n\t\tpanic(\"RawSockaddrAny too small\")\n\t}\n\tsa, err = anyToSockaddr(fd, &rsa)\n\tif err != nil {\n\t\tClose(nfd)\n\t\tnfd = 0\n\t}\n\treturn\n}\n\n//sys\tGetcwd(buf []byte) (n int, err error) = SYS___GETCWD\n\nfunc Getfsstat(buf []Statfs_t, flags int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tvar bufsize uintptr\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t\tbufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf))\n\t}\n\tr0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(_p0), bufsize, uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n//sys\tioctl(fd int, req uint, arg uintptr) (err error)\n//sys\tioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL\n\n//sys\tsysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL\n\nfunc sysctlUname(mib []_C_int, old *byte, oldlen *uintptr) error {\n\terr := sysctl(mib, old, oldlen, nil, 0)\n\tif err != nil {\n\t\t// Utsname members on Dragonfly are only 32 bytes and\n\t\t// the syscall returns ENOMEM in case the actual value\n\t\t// is longer.\n\t\tif err == ENOMEM {\n\t\t\terr = nil\n\t\t}\n\t}\n\treturn err\n}\n\nfunc Uname(uname *Utsname) error {\n\tmib := []_C_int{CTL_KERN, KERN_OSTYPE}\n\tn := unsafe.Sizeof(uname.Sysname)\n\tif err := sysctlUname(mib, &uname.Sysname[0], &n); err != nil {\n\t\treturn err\n\t}\n\tuname.Sysname[unsafe.Sizeof(uname.Sysname)-1] = 0\n\n\tmib = []_C_int{CTL_KERN, KERN_HOSTNAME}\n\tn = unsafe.Sizeof(uname.Nodename)\n\tif err := sysctlUname(mib, &uname.Nodename[0], &n); err != nil {\n\t\treturn err\n\t}\n\tuname.Nodename[unsafe.Sizeof(uname.Nodename)-1] = 0\n\n\tmib = []_C_int{CTL_KERN, KERN_OSRELEASE}\n\tn = unsafe.Sizeof(uname.Release)\n\tif err := sysctlUname(mib, &uname.Release[0], &n); err != nil {\n\t\treturn err\n\t}\n\tuname.Release[unsafe.Sizeof(uname.Release)-1] = 0\n\n\tmib = []_C_int{CTL_KERN, KERN_VERSION}\n\tn = unsafe.Sizeof(uname.Version)\n\tif err := sysctlUname(mib, &uname.Version[0], &n); err != nil {\n\t\treturn err\n\t}\n\n\t// The version might have newlines or tabs in it, convert them to\n\t// spaces.\n\tfor i, b := range uname.Version {\n\t\tif b == '\\n' || b == '\\t' {\n\t\t\tif i == len(uname.Version)-1 {\n\t\t\t\tuname.Version[i] = 0\n\t\t\t} else {\n\t\t\t\tuname.Version[i] = ' '\n\t\t\t}\n\t\t}\n\t}\n\n\tmib = []_C_int{CTL_HW, HW_MACHINE}\n\tn = unsafe.Sizeof(uname.Machine)\n\tif err := sysctlUname(mib, &uname.Machine[0], &n); err != nil {\n\t\treturn err\n\t}\n\tuname.Machine[unsafe.Sizeof(uname.Machine)-1] = 0\n\n\treturn nil\n}\n\nfunc Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\treturn sendfile(outfd, infd, offset, count)\n}\n\nfunc Dup3(oldfd, newfd, flags int) error {\n\tif oldfd == newfd || flags&^O_CLOEXEC != 0 {\n\t\treturn EINVAL\n\t}\n\thow := F_DUP2FD\n\tif flags&O_CLOEXEC != 0 {\n\t\thow = F_DUP2FD_CLOEXEC\n\t}\n\t_, err := fcntl(oldfd, how, newfd)\n\treturn err\n}\n\n/*\n * Exposed directly\n */\n//sys\tAccess(path string, mode uint32) (err error)\n//sys\tAdjtime(delta *Timeval, olddelta *Timeval) (err error)\n//sys\tChdir(path string) (err error)\n//sys\tChflags(path string, flags int) (err error)\n//sys\tChmod(path string, mode uint32) (err error)\n//sys\tChown(path string, uid int, gid int) (err error)\n//sys\tChroot(path string) (err error)\n//sys\tClockGettime(clockid int32, time *Timespec) (err error)\n//sys\tClose(fd int) (err error)\n//sys\tDup(fd int) (nfd int, err error)\n//sys\tDup2(from int, to int) (err error)\n//sys\tExit(code int)\n//sys\tFaccessat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchdir(fd int) (err error)\n//sys\tFchflags(fd int, flags int) (err error)\n//sys\tFchmod(fd int, mode uint32) (err error)\n//sys\tFchmodat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFchownat(dirfd int, path string, uid int, gid int, flags int) (err error)\n//sys\tFlock(fd int, how int) (err error)\n//sys\tFpathconf(fd int, name int) (val int, err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(fd int, path string, stat *Stat_t, flags int) (err error)\n//sys\tFstatfs(fd int, stat *Statfs_t) (err error)\n//sys\tFsync(fd int) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sys\tGetdents(fd int, buf []byte) (n int, err error)\n//sys\tGetdirentries(fd int, buf []byte, basep *uintptr) (n int, err error)\n//sys\tGetdtablesize() (size int)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (uid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetpgid(pid int) (pgid int, err error)\n//sysnb\tGetpgrp() (pgrp int)\n//sysnb\tGetpid() (pid int)\n//sysnb\tGetppid() (ppid int)\n//sys\tGetpriority(which int, who int) (prio int, err error)\n//sysnb\tGetrlimit(which int, lim *Rlimit) (err error)\n//sysnb\tGetrusage(who int, rusage *Rusage) (err error)\n//sysnb\tGetsid(pid int) (sid int, err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n//sysnb\tGetuid() (uid int)\n//sys\tIssetugid() (tainted bool)\n//sys\tKill(pid int, signum syscall.Signal) (err error)\n//sys\tKqueue() (fd int, err error)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tLink(path string, link string) (err error)\n//sys\tLinkat(pathfd int, path string, linkfd int, link string, flags int) (err error)\n//sys\tListen(s int, backlog int) (err error)\n//sys\tLstat(path string, stat *Stat_t) (err error)\n//sys\tMkdir(path string, mode uint32) (err error)\n//sys\tMkdirat(dirfd int, path string, mode uint32) (err error)\n//sys\tMkfifo(path string, mode uint32) (err error)\n//sys\tMknod(path string, mode uint32, dev int) (err error)\n//sys\tMknodat(fd int, path string, mode uint32, dev int) (err error)\n//sys\tNanosleep(time *Timespec, leftover *Timespec) (err error)\n//sys\tOpen(path string, mode int, perm uint32) (fd int, err error)\n//sys\tOpenat(dirfd int, path string, mode int, perm uint32) (fd int, err error)\n//sys\tPathconf(path string, name int) (val int, err error)\n//sys\tread(fd int, p []byte) (n int, err error)\n//sys\tReadlink(path string, buf []byte) (n int, err error)\n//sys\tRename(from string, to string) (err error)\n//sys\tRenameat(fromfd int, from string, tofd int, to string) (err error)\n//sys\tRevoke(path string) (err error)\n//sys\tRmdir(path string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)\n//sysnb\tSetegid(egid int) (err error)\n//sysnb\tSeteuid(euid int) (err error)\n//sysnb\tSetgid(gid int) (err error)\n//sys\tSetlogin(name string) (err error)\n//sysnb\tSetpgid(pid int, pgid int) (err error)\n//sys\tSetpriority(which int, who int, prio int) (err error)\n//sysnb\tSetregid(rgid int, egid int) (err error)\n//sysnb\tSetreuid(ruid int, euid int) (err error)\n//sysnb\tSetresgid(rgid int, egid int, sgid int) (err error)\n//sysnb\tSetresuid(ruid int, euid int, suid int) (err error)\n//sysnb\tSetsid() (pid int, err error)\n//sysnb\tSettimeofday(tp *Timeval) (err error)\n//sysnb\tSetuid(uid int) (err error)\n//sys\tStat(path string, stat *Stat_t) (err error)\n//sys\tStatfs(path string, stat *Statfs_t) (err error)\n//sys\tSymlink(path string, link string) (err error)\n//sys\tSymlinkat(oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSync() (err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\tUmask(newmask int) (oldmask int)\n//sys\tUndelete(path string) (err error)\n//sys\tUnlink(path string) (err error)\n//sys\tUnlinkat(dirfd int, path string, flags int) (err error)\n//sys\tUnmount(path string, flags int) (err error)\n//sys\twrite(fd int, p []byte) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error)\n//sys\tmunmap(addr uintptr, length uintptr) (err error)\n//sys\taccept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error)\n//sys\tutimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build amd64 && dragonfly\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tvar writtenOut uint64 = 0\n\t_, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0)\n\n\twritten = int(writtenOut)\n\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\nfunc Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_freebsd.go",
    "content": "// Copyright 2009,2010 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// FreeBSD system calls.\n// This file is compiled as ordinary Go code,\n// but it is also input to mksyscall,\n// which parses the //sys lines and generates system call stubs.\n// Note that sometimes we use a lowercase //sys name and wrap\n// it in our own nicer implementation, either here or in\n// syscall_bsd.go or syscall_unix.go.\n\npackage unix\n\nimport (\n\t\"errors\"\n\t\"sync\"\n\t\"unsafe\"\n)\n\n// See https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/versions.html.\nvar (\n\tosreldateOnce sync.Once\n\tosreldate     uint32\n)\n\nfunc supportsABI(ver uint32) bool {\n\tosreldateOnce.Do(func() { osreldate, _ = SysctlUint32(\"kern.osreldate\") })\n\treturn osreldate >= ver\n}\n\n// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets.\ntype SockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [46]int8\n\traw    RawSockaddrDatalink\n}\n\nfunc anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {\n\treturn nil, EAFNOSUPPORT\n}\n\n// Translate \"kern.hostname\" to []_C_int{0,1,2,3}.\nfunc nametomib(name string) (mib []_C_int, err error) {\n\tconst siz = unsafe.Sizeof(mib[0])\n\n\t// NOTE(rsc): It seems strange to set the buffer to have\n\t// size CTL_MAXNAME+2 but use only CTL_MAXNAME\n\t// as the size. I don't know why the +2 is here, but the\n\t// kernel uses +2 for its own implementation of this function.\n\t// I am scared that if we don't include the +2 here, the kernel\n\t// will silently write 2 words farther than we specify\n\t// and we'll get memory corruption.\n\tvar buf [CTL_MAXNAME + 2]_C_int\n\tn := uintptr(CTL_MAXNAME) * siz\n\n\tp := (*byte)(unsafe.Pointer(&buf[0]))\n\tbytes, err := ByteSliceFromString(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Magic sysctl: \"setting\" 0.3 to a string name\n\t// lets you read back the array of integers form.\n\tif err = sysctl([]_C_int{0, 3}, p, &n, &bytes[0], uintptr(len(name))); err != nil {\n\t\treturn nil, err\n\t}\n\treturn buf[0 : n/siz], nil\n}\n\nfunc direntIno(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno))\n}\n\nfunc direntReclen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen))\n}\n\nfunc direntNamlen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen))\n}\n\nfunc Pipe(p []int) (err error) {\n\treturn Pipe2(p, 0)\n}\n\n//sysnb\tpipe2(p *[2]_C_int, flags int) (err error)\n\nfunc Pipe2(p []int, flags int) error {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\terr := pipe2(&pp, flags)\n\tif err == nil {\n\t\tp[0] = int(pp[0])\n\t\tp[1] = int(pp[1])\n\t}\n\treturn err\n}\n\nfunc GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) {\n\tvar value IPMreqn\n\tvallen := _Socklen(SizeofIPMreqn)\n\terrno := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, errno\n}\n\nfunc SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq))\n}\n\n// GetsockoptXucred is a getsockopt wrapper that returns an Xucred struct.\n// The usual level and opt are SOL_LOCAL and LOCAL_PEERCRED, respectively.\nfunc GetsockoptXucred(fd, level, opt int) (*Xucred, error) {\n\tx := new(Xucred)\n\tvallen := _Socklen(SizeofXucred)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(x), &vallen)\n\treturn x, err\n}\n\nfunc Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tnfd, err = accept4(fd, &rsa, &len, flags)\n\tif err != nil {\n\t\treturn\n\t}\n\tif len > SizeofSockaddrAny {\n\t\tpanic(\"RawSockaddrAny too small\")\n\t}\n\tsa, err = anyToSockaddr(fd, &rsa)\n\tif err != nil {\n\t\tClose(nfd)\n\t\tnfd = 0\n\t}\n\treturn\n}\n\n//sys\tGetcwd(buf []byte) (n int, err error) = SYS___GETCWD\n\nfunc Getfsstat(buf []Statfs_t, flags int) (n int, err error) {\n\tvar (\n\t\t_p0     unsafe.Pointer\n\t\tbufsize uintptr\n\t)\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t\tbufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf))\n\t}\n\tr0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(_p0), bufsize, uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\n//sys\tioctl(fd int, req uint, arg uintptr) (err error) = SYS_IOCTL\n//sys\tioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL\n\n//sys\tsysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL\n\nfunc Uname(uname *Utsname) error {\n\tmib := []_C_int{CTL_KERN, KERN_OSTYPE}\n\tn := unsafe.Sizeof(uname.Sysname)\n\t// Suppress ENOMEM errors to be compatible with the C library __xuname() implementation.\n\tif err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_HOSTNAME}\n\tn = unsafe.Sizeof(uname.Nodename)\n\tif err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_OSRELEASE}\n\tn = unsafe.Sizeof(uname.Release)\n\tif err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_VERSION}\n\tn = unsafe.Sizeof(uname.Version)\n\tif err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) {\n\t\treturn err\n\t}\n\n\t// The version might have newlines or tabs in it, convert them to\n\t// spaces.\n\tfor i, b := range uname.Version {\n\t\tif b == '\\n' || b == '\\t' {\n\t\t\tif i == len(uname.Version)-1 {\n\t\t\t\tuname.Version[i] = 0\n\t\t\t} else {\n\t\t\t\tuname.Version[i] = ' '\n\t\t\t}\n\t\t}\n\t}\n\n\tmib = []_C_int{CTL_HW, HW_MACHINE}\n\tn = unsafe.Sizeof(uname.Machine)\n\tif err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc Stat(path string, st *Stat_t) (err error) {\n\treturn Fstatat(AT_FDCWD, path, st, 0)\n}\n\nfunc Lstat(path string, st *Stat_t) (err error) {\n\treturn Fstatat(AT_FDCWD, path, st, AT_SYMLINK_NOFOLLOW)\n}\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\treturn Getdirentries(fd, buf, nil)\n}\n\nfunc Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {\n\tif basep == nil || unsafe.Sizeof(*basep) == 8 {\n\t\treturn getdirentries(fd, buf, (*uint64)(unsafe.Pointer(basep)))\n\t}\n\t// The syscall needs a 64-bit base. On 32-bit machines\n\t// we can't just use the basep passed in. See #32498.\n\tvar base uint64 = uint64(*basep)\n\tn, err = getdirentries(fd, buf, &base)\n\t*basep = uintptr(base)\n\tif base>>32 != 0 {\n\t\t// We can't stuff the base back into a uintptr, so any\n\t\t// future calls would be suspect. Generate an error.\n\t\t// EIO is allowed by getdirentries.\n\t\terr = EIO\n\t}\n\treturn\n}\n\nfunc Mknod(path string, mode uint32, dev uint64) (err error) {\n\treturn Mknodat(AT_FDCWD, path, mode, dev)\n}\n\nfunc Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\treturn sendfile(outfd, infd, offset, count)\n}\n\n//sys\tptrace(request int, pid int, addr uintptr, data int) (err error)\n//sys\tptracePtr(request int, pid int, addr unsafe.Pointer, data int) (err error) = SYS_PTRACE\n\nfunc PtraceAttach(pid int) (err error) {\n\treturn ptrace(PT_ATTACH, pid, 0, 0)\n}\n\nfunc PtraceCont(pid int, signal int) (err error) {\n\treturn ptrace(PT_CONTINUE, pid, 1, signal)\n}\n\nfunc PtraceDetach(pid int) (err error) {\n\treturn ptrace(PT_DETACH, pid, 1, 0)\n}\n\nfunc PtraceGetFpRegs(pid int, fpregsout *FpReg) (err error) {\n\treturn ptracePtr(PT_GETFPREGS, pid, unsafe.Pointer(fpregsout), 0)\n}\n\nfunc PtraceGetRegs(pid int, regsout *Reg) (err error) {\n\treturn ptracePtr(PT_GETREGS, pid, unsafe.Pointer(regsout), 0)\n}\n\nfunc PtraceIO(req int, pid int, offs uintptr, out []byte, countin int) (count int, err error) {\n\tioDesc := PtraceIoDesc{\n\t\tOp:   int32(req),\n\t\tOffs: offs,\n\t}\n\tif countin > 0 {\n\t\t_ = out[:countin] // check bounds\n\t\tioDesc.Addr = &out[0]\n\t} else if out != nil {\n\t\tioDesc.Addr = (*byte)(unsafe.Pointer(&_zero))\n\t}\n\tioDesc.SetLen(countin)\n\n\terr = ptracePtr(PT_IO, pid, unsafe.Pointer(&ioDesc), 0)\n\treturn int(ioDesc.Len), err\n}\n\nfunc PtraceLwpEvents(pid int, enable int) (err error) {\n\treturn ptrace(PT_LWP_EVENTS, pid, 0, enable)\n}\n\nfunc PtraceLwpInfo(pid int, info *PtraceLwpInfoStruct) (err error) {\n\treturn ptracePtr(PT_LWPINFO, pid, unsafe.Pointer(info), int(unsafe.Sizeof(*info)))\n}\n\nfunc PtracePeekData(pid int, addr uintptr, out []byte) (count int, err error) {\n\treturn PtraceIO(PIOD_READ_D, pid, addr, out, SizeofLong)\n}\n\nfunc PtracePeekText(pid int, addr uintptr, out []byte) (count int, err error) {\n\treturn PtraceIO(PIOD_READ_I, pid, addr, out, SizeofLong)\n}\n\nfunc PtracePokeData(pid int, addr uintptr, data []byte) (count int, err error) {\n\treturn PtraceIO(PIOD_WRITE_D, pid, addr, data, SizeofLong)\n}\n\nfunc PtracePokeText(pid int, addr uintptr, data []byte) (count int, err error) {\n\treturn PtraceIO(PIOD_WRITE_I, pid, addr, data, SizeofLong)\n}\n\nfunc PtraceSetRegs(pid int, regs *Reg) (err error) {\n\treturn ptracePtr(PT_SETREGS, pid, unsafe.Pointer(regs), 0)\n}\n\nfunc PtraceSingleStep(pid int) (err error) {\n\treturn ptrace(PT_STEP, pid, 1, 0)\n}\n\nfunc Dup3(oldfd, newfd, flags int) error {\n\tif oldfd == newfd || flags&^O_CLOEXEC != 0 {\n\t\treturn EINVAL\n\t}\n\thow := F_DUP2FD\n\tif flags&O_CLOEXEC != 0 {\n\t\thow = F_DUP2FD_CLOEXEC\n\t}\n\t_, err := fcntl(oldfd, how, newfd)\n\treturn err\n}\n\n/*\n * Exposed directly\n */\n//sys\tAccess(path string, mode uint32) (err error)\n//sys\tAdjtime(delta *Timeval, olddelta *Timeval) (err error)\n//sys\tCapEnter() (err error)\n//sys\tcapRightsGet(version int, fd int, rightsp *CapRights) (err error) = SYS___CAP_RIGHTS_GET\n//sys\tcapRightsLimit(fd int, rightsp *CapRights) (err error)\n//sys\tChdir(path string) (err error)\n//sys\tChflags(path string, flags int) (err error)\n//sys\tChmod(path string, mode uint32) (err error)\n//sys\tChown(path string, uid int, gid int) (err error)\n//sys\tChroot(path string) (err error)\n//sys\tClockGettime(clockid int32, time *Timespec) (err error)\n//sys\tClose(fd int) (err error)\n//sys\tDup(fd int) (nfd int, err error)\n//sys\tDup2(from int, to int) (err error)\n//sys\tExit(code int)\n//sys\tExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error)\n//sys\tExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error)\n//sys\tExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error)\n//sys\tExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error)\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_POSIX_FADVISE\n//sys\tFaccessat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchdir(fd int) (err error)\n//sys\tFchflags(fd int, flags int) (err error)\n//sys\tFchmod(fd int, mode uint32) (err error)\n//sys\tFchmodat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFchownat(dirfd int, path string, uid int, gid int, flags int) (err error)\n//sys\tFlock(fd int, how int) (err error)\n//sys\tFpathconf(fd int, name int) (val int, err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(fd int, path string, stat *Stat_t, flags int) (err error)\n//sys\tFstatfs(fd int, stat *Statfs_t) (err error)\n//sys\tFsync(fd int) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sys\tgetdirentries(fd int, buf []byte, basep *uint64) (n int, err error)\n//sys\tGetdtablesize() (size int)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (uid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetpgid(pid int) (pgid int, err error)\n//sysnb\tGetpgrp() (pgrp int)\n//sysnb\tGetpid() (pid int)\n//sysnb\tGetppid() (ppid int)\n//sys\tGetpriority(which int, who int) (prio int, err error)\n//sysnb\tGetrlimit(which int, lim *Rlimit) (err error)\n//sysnb\tGetrusage(who int, rusage *Rusage) (err error)\n//sysnb\tGetsid(pid int) (sid int, err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n//sysnb\tGetuid() (uid int)\n//sys\tIssetugid() (tainted bool)\n//sys\tKill(pid int, signum syscall.Signal) (err error)\n//sys\tKqueue() (fd int, err error)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tLink(path string, link string) (err error)\n//sys\tLinkat(pathfd int, path string, linkfd int, link string, flags int) (err error)\n//sys\tListen(s int, backlog int) (err error)\n//sys\tMkdir(path string, mode uint32) (err error)\n//sys\tMkdirat(dirfd int, path string, mode uint32) (err error)\n//sys\tMkfifo(path string, mode uint32) (err error)\n//sys\tMknodat(fd int, path string, mode uint32, dev uint64) (err error)\n//sys\tNanosleep(time *Timespec, leftover *Timespec) (err error)\n//sys\tOpen(path string, mode int, perm uint32) (fd int, err error)\n//sys\tOpenat(fdat int, path string, mode int, perm uint32) (fd int, err error)\n//sys\tPathconf(path string, name int) (val int, err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error)\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error)\n//sys\tread(fd int, p []byte) (n int, err error)\n//sys\tReadlink(path string, buf []byte) (n int, err error)\n//sys\tReadlinkat(dirfd int, path string, buf []byte) (n int, err error)\n//sys\tRename(from string, to string) (err error)\n//sys\tRenameat(fromfd int, from string, tofd int, to string) (err error)\n//sys\tRevoke(path string) (err error)\n//sys\tRmdir(path string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)\n//sysnb\tSetegid(egid int) (err error)\n//sysnb\tSeteuid(euid int) (err error)\n//sysnb\tSetgid(gid int) (err error)\n//sys\tSetlogin(name string) (err error)\n//sysnb\tSetpgid(pid int, pgid int) (err error)\n//sys\tSetpriority(which int, who int, prio int) (err error)\n//sysnb\tSetregid(rgid int, egid int) (err error)\n//sysnb\tSetreuid(ruid int, euid int) (err error)\n//sysnb\tSetresgid(rgid int, egid int, sgid int) (err error)\n//sysnb\tSetresuid(ruid int, euid int, suid int) (err error)\n//sysnb\tSetsid() (pid int, err error)\n//sysnb\tSettimeofday(tp *Timeval) (err error)\n//sysnb\tSetuid(uid int) (err error)\n//sys\tStatfs(path string, stat *Statfs_t) (err error)\n//sys\tSymlink(path string, link string) (err error)\n//sys\tSymlinkat(oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSync() (err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\tUmask(newmask int) (oldmask int)\n//sys\tUndelete(path string) (err error)\n//sys\tUnlink(path string) (err error)\n//sys\tUnlinkat(dirfd int, path string, flags int) (err error)\n//sys\tUnmount(path string, flags int) (err error)\n//sys\twrite(fd int, p []byte) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error)\n//sys\tmunmap(addr uintptr, length uintptr) (err error)\n//sys\taccept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error)\n//sys\tutimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_freebsd_386.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build 386 && freebsd\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: int32(sec), Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: int32(sec), Usec: int32(usec)}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint32(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc (d *PtraceIoDesc) SetLen(length int) {\n\td.Len = uint32(length)\n}\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tvar writtenOut uint64 = 0\n\t_, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr((*offset)>>32), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0)\n\n\twritten = int(writtenOut)\n\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\nfunc Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)\n\nfunc PtraceGetFsBase(pid int, fsbase *int64) (err error) {\n\treturn ptracePtr(PT_GETFSBASE, pid, unsafe.Pointer(fsbase), 0)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build amd64 && freebsd\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc (d *PtraceIoDesc) SetLen(length int) {\n\td.Len = uint64(length)\n}\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tvar writtenOut uint64 = 0\n\t_, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0)\n\n\twritten = int(writtenOut)\n\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\nfunc Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)\n\nfunc PtraceGetFsBase(pid int, fsbase *int64) (err error) {\n\treturn ptracePtr(PT_GETFSBASE, pid, unsafe.Pointer(fsbase), 0)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go",
    "content": "// Copyright 2012 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build arm && freebsd\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: int32(usec)}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint32(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc (d *PtraceIoDesc) SetLen(length int) {\n\td.Len = uint32(length)\n}\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tvar writtenOut uint64 = 0\n\t_, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr((*offset)>>32), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0)\n\n\twritten = int(writtenOut)\n\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\nfunc Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build arm64 && freebsd\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc (d *PtraceIoDesc) SetLen(length int) {\n\td.Len = uint64(length)\n}\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tvar writtenOut uint64 = 0\n\t_, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0)\n\n\twritten = int(writtenOut)\n\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\nfunc Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go",
    "content": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build riscv64 && freebsd\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc (d *PtraceIoDesc) SetLen(length int) {\n\td.Len = uint64(length)\n}\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tvar writtenOut uint64 = 0\n\t_, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0)\n\n\twritten = int(writtenOut)\n\n\tif e1 != 0 {\n\t\terr = e1\n\t}\n\treturn\n}\n\nfunc Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_hurd.go",
    "content": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build hurd\n\npackage unix\n\n/*\n#include <stdint.h>\nint ioctl(int, unsigned long int, uintptr_t);\n*/\nimport \"C\"\nimport \"unsafe\"\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\tr0, er := C.ioctl(C.int(fd), C.ulong(req), C.uintptr_t(arg))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\tr0, er := C.ioctl(C.int(fd), C.ulong(req), C.uintptr_t(uintptr(arg)))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_hurd_386.go",
    "content": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build 386 && hurd\n\npackage unix\n\nconst (\n\tTIOCGETA = 0x62251713\n)\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_illumos.go",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// illumos system calls not present on Solaris.\n\n//go:build amd64 && illumos\n\npackage unix\n\nimport (\n\t\"unsafe\"\n)\n\nfunc bytes2iovec(bs [][]byte) []Iovec {\n\tiovecs := make([]Iovec, len(bs))\n\tfor i, b := range bs {\n\t\tiovecs[i].SetLen(len(b))\n\t\tif len(b) > 0 {\n\t\t\tiovecs[i].Base = &b[0]\n\t\t} else {\n\t\t\tiovecs[i].Base = (*byte)(unsafe.Pointer(&_zero))\n\t\t}\n\t}\n\treturn iovecs\n}\n\n//sys\treadv(fd int, iovs []Iovec) (n int, err error)\n\nfunc Readv(fd int, iovs [][]byte) (n int, err error) {\n\tiovecs := bytes2iovec(iovs)\n\tn, err = readv(fd, iovecs)\n\treturn n, err\n}\n\n//sys\tpreadv(fd int, iovs []Iovec, off int64) (n int, err error)\n\nfunc Preadv(fd int, iovs [][]byte, off int64) (n int, err error) {\n\tiovecs := bytes2iovec(iovs)\n\tn, err = preadv(fd, iovecs, off)\n\treturn n, err\n}\n\n//sys\twritev(fd int, iovs []Iovec) (n int, err error)\n\nfunc Writev(fd int, iovs [][]byte) (n int, err error) {\n\tiovecs := bytes2iovec(iovs)\n\tn, err = writev(fd, iovecs)\n\treturn n, err\n}\n\n//sys\tpwritev(fd int, iovs []Iovec, off int64) (n int, err error)\n\nfunc Pwritev(fd int, iovs [][]byte, off int64) (n int, err error) {\n\tiovecs := bytes2iovec(iovs)\n\tn, err = pwritev(fd, iovecs, off)\n\treturn n, err\n}\n\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) = libsocket.accept4\n\nfunc Accept4(fd int, flags int) (nfd int, sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tnfd, err = accept4(fd, &rsa, &len, flags)\n\tif err != nil {\n\t\treturn\n\t}\n\tif len > SizeofSockaddrAny {\n\t\tpanic(\"RawSockaddrAny too small\")\n\t}\n\tsa, err = anyToSockaddr(fd, &rsa)\n\tif err != nil {\n\t\tClose(nfd)\n\t\tnfd = 0\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Linux system calls.\n// This file is compiled as ordinary Go code,\n// but it is also input to mksyscall,\n// which parses the //sys lines and generates system call stubs.\n// Note that sometimes we use a lowercase //sys name and\n// wrap it in our own nicer implementation.\n\npackage unix\n\nimport (\n\t\"encoding/binary\"\n\t\"strconv\"\n\t\"syscall\"\n\t\"time\"\n\t\"unsafe\"\n)\n\n/*\n * Wrapped\n */\n\nfunc Access(path string, mode uint32) (err error) {\n\treturn Faccessat(AT_FDCWD, path, mode, 0)\n}\n\nfunc Chmod(path string, mode uint32) (err error) {\n\treturn Fchmodat(AT_FDCWD, path, mode, 0)\n}\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\treturn Fchownat(AT_FDCWD, path, uid, gid, 0)\n}\n\nfunc Creat(path string, mode uint32) (fd int, err error) {\n\treturn Open(path, O_CREAT|O_WRONLY|O_TRUNC, mode)\n}\n\nfunc EpollCreate(size int) (fd int, err error) {\n\tif size <= 0 {\n\t\treturn -1, EINVAL\n\t}\n\treturn EpollCreate1(0)\n}\n\n//sys\tFanotifyInit(flags uint, event_f_flags uint) (fd int, err error)\n//sys\tfanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error)\n\nfunc FanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname string) (err error) {\n\tif pathname == \"\" {\n\t\treturn fanotifyMark(fd, flags, mask, dirFd, nil)\n\t}\n\tp, err := BytePtrFromString(pathname)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn fanotifyMark(fd, flags, mask, dirFd, p)\n}\n\n//sys\tfchmodat(dirfd int, path string, mode uint32) (err error)\n//sys\tfchmodat2(dirfd int, path string, mode uint32, flags int) (err error)\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) error {\n\t// Linux fchmodat doesn't support the flags parameter, but fchmodat2 does.\n\t// Try fchmodat2 if flags are specified.\n\tif flags != 0 {\n\t\terr := fchmodat2(dirfd, path, mode, flags)\n\t\tif err == ENOSYS {\n\t\t\t// fchmodat2 isn't available. If the flags are known to be valid,\n\t\t\t// return EOPNOTSUPP to indicate that fchmodat doesn't support them.\n\t\t\tif flags&^(AT_SYMLINK_NOFOLLOW|AT_EMPTY_PATH) != 0 {\n\t\t\t\treturn EINVAL\n\t\t\t} else if flags&(AT_SYMLINK_NOFOLLOW|AT_EMPTY_PATH) != 0 {\n\t\t\t\treturn EOPNOTSUPP\n\t\t\t}\n\t\t}\n\t\treturn err\n\t}\n\treturn fchmodat(dirfd, path, mode)\n}\n\nfunc InotifyInit() (fd int, err error) {\n\treturn InotifyInit1(0)\n}\n\n//sys\tioctl(fd int, req uint, arg uintptr) (err error) = SYS_IOCTL\n//sys\tioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL\n\n// ioctl itself should not be exposed directly, but additional get/set functions\n// for specific types are permissible. These are defined in ioctl.go and\n// ioctl_linux.go.\n//\n// The third argument to ioctl is often a pointer but sometimes an integer.\n// Callers should use ioctlPtr when the third argument is a pointer and ioctl\n// when the third argument is an integer.\n//\n// TODO: some existing code incorrectly uses ioctl when it should use ioctlPtr.\n\n//sys\tLinkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error)\n\nfunc Link(oldpath string, newpath string) (err error) {\n\treturn Linkat(AT_FDCWD, oldpath, AT_FDCWD, newpath, 0)\n}\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\treturn Mkdirat(AT_FDCWD, path, mode)\n}\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\treturn Mknodat(AT_FDCWD, path, mode, dev)\n}\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\treturn openat(AT_FDCWD, path, mode|O_LARGEFILE, perm)\n}\n\n//sys\topenat(dirfd int, path string, flags int, mode uint32) (fd int, err error)\n\nfunc Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\treturn openat(dirfd, path, flags|O_LARGEFILE, mode)\n}\n\n//sys\topenat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error)\n\nfunc Openat2(dirfd int, path string, how *OpenHow) (fd int, err error) {\n\treturn openat2(dirfd, path, how, SizeofOpenHow)\n}\n\nfunc Pipe(p []int) error {\n\treturn Pipe2(p, 0)\n}\n\n//sysnb\tpipe2(p *[2]_C_int, flags int) (err error)\n\nfunc Pipe2(p []int, flags int) error {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\terr := pipe2(&pp, flags)\n\tif err == nil {\n\t\tp[0] = int(pp[0])\n\t\tp[1] = int(pp[1])\n\t}\n\treturn err\n}\n\n//sys\tppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error)\n\nfunc Ppoll(fds []PollFd, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tif len(fds) == 0 {\n\t\treturn ppoll(nil, 0, timeout, sigmask)\n\t}\n\treturn ppoll(&fds[0], len(fds), timeout, sigmask)\n}\n\nfunc Poll(fds []PollFd, timeout int) (n int, err error) {\n\tvar ts *Timespec\n\tif timeout >= 0 {\n\t\tts = new(Timespec)\n\t\t*ts = NsecToTimespec(int64(timeout) * 1e6)\n\t}\n\treturn Ppoll(fds, ts, nil)\n}\n\n//sys\tReadlinkat(dirfd int, path string, buf []byte) (n int, err error)\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\treturn Readlinkat(AT_FDCWD, path, buf)\n}\n\nfunc Rename(oldpath string, newpath string) (err error) {\n\treturn Renameat(AT_FDCWD, oldpath, AT_FDCWD, newpath)\n}\n\nfunc Rmdir(path string) error {\n\treturn Unlinkat(AT_FDCWD, path, AT_REMOVEDIR)\n}\n\n//sys\tSymlinkat(oldpath string, newdirfd int, newpath string) (err error)\n\nfunc Symlink(oldpath string, newpath string) (err error) {\n\treturn Symlinkat(oldpath, AT_FDCWD, newpath)\n}\n\nfunc Unlink(path string) error {\n\treturn Unlinkat(AT_FDCWD, path, 0)\n}\n\n//sys\tUnlinkat(dirfd int, path string, flags int) (err error)\n\nfunc Utimes(path string, tv []Timeval) error {\n\tif tv == nil {\n\t\terr := utimensat(AT_FDCWD, path, nil, 0)\n\t\tif err != ENOSYS {\n\t\t\treturn err\n\t\t}\n\t\treturn utimes(path, nil)\n\t}\n\tif len(tv) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar ts [2]Timespec\n\tts[0] = NsecToTimespec(TimevalToNsec(tv[0]))\n\tts[1] = NsecToTimespec(TimevalToNsec(tv[1]))\n\terr := utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)\n\tif err != ENOSYS {\n\t\treturn err\n\t}\n\treturn utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))\n}\n\n//sys\tutimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error)\n\nfunc UtimesNano(path string, ts []Timespec) error {\n\treturn UtimesNanoAt(AT_FDCWD, path, ts, 0)\n}\n\nfunc UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error {\n\tif ts == nil {\n\t\treturn utimensat(dirfd, path, nil, flags)\n\t}\n\tif len(ts) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags)\n}\n\nfunc Futimesat(dirfd int, path string, tv []Timeval) error {\n\tif tv == nil {\n\t\treturn futimesat(dirfd, path, nil)\n\t}\n\tif len(tv) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn futimesat(dirfd, path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))\n}\n\nfunc Futimes(fd int, tv []Timeval) (err error) {\n\t// Believe it or not, this is the best we can do on Linux\n\t// (and is what glibc does).\n\treturn Utimes(\"/proc/self/fd/\"+strconv.Itoa(fd), tv)\n}\n\nconst ImplementsGetwd = true\n\n//sys\tGetcwd(buf []byte) (n int, err error)\n\nfunc Getwd() (wd string, err error) {\n\tvar buf [PathMax]byte\n\tn, err := Getcwd(buf[0:])\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\t// Getcwd returns the number of bytes written to buf, including the NUL.\n\tif n < 1 || n > len(buf) || buf[n-1] != 0 {\n\t\treturn \"\", EINVAL\n\t}\n\t// In some cases, Linux can return a path that starts with the\n\t// \"(unreachable)\" prefix, which can potentially be a valid relative\n\t// path. To work around that, return ENOENT if path is not absolute.\n\tif buf[0] != '/' {\n\t\treturn \"\", ENOENT\n\t}\n\n\treturn string(buf[0 : n-1]), nil\n}\n\nfunc Getgroups() (gids []int, err error) {\n\tn, err := getgroups(0, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif n == 0 {\n\t\treturn nil, nil\n\t}\n\n\t// Sanity check group count. Max is 1<<16 on Linux.\n\tif n < 0 || n > 1<<20 {\n\t\treturn nil, EINVAL\n\t}\n\n\ta := make([]_Gid_t, n)\n\tn, err = getgroups(n, &a[0])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tgids = make([]int, n)\n\tfor i, v := range a[0:n] {\n\t\tgids[i] = int(v)\n\t}\n\treturn\n}\n\nfunc Setgroups(gids []int) (err error) {\n\tif len(gids) == 0 {\n\t\treturn setgroups(0, nil)\n\t}\n\n\ta := make([]_Gid_t, len(gids))\n\tfor i, v := range gids {\n\t\ta[i] = _Gid_t(v)\n\t}\n\treturn setgroups(len(a), &a[0])\n}\n\ntype WaitStatus uint32\n\n// Wait status is 7 bits at bottom, either 0 (exited),\n// 0x7F (stopped), or a signal number that caused an exit.\n// The 0x80 bit is whether there was a core dump.\n// An extra number (exit code, signal causing a stop)\n// is in the high bits. At least that's the idea.\n// There are various irregularities. For example, the\n// \"continued\" status is 0xFFFF, distinguishing itself\n// from stopped via the core dump bit.\n\nconst (\n\tmask    = 0x7F\n\tcore    = 0x80\n\texited  = 0x00\n\tstopped = 0x7F\n\tshift   = 8\n)\n\nfunc (w WaitStatus) Exited() bool { return w&mask == exited }\n\nfunc (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != exited }\n\nfunc (w WaitStatus) Stopped() bool { return w&0xFF == stopped }\n\nfunc (w WaitStatus) Continued() bool { return w == 0xFFFF }\n\nfunc (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 }\n\nfunc (w WaitStatus) ExitStatus() int {\n\tif !w.Exited() {\n\t\treturn -1\n\t}\n\treturn int(w>>shift) & 0xFF\n}\n\nfunc (w WaitStatus) Signal() syscall.Signal {\n\tif !w.Signaled() {\n\t\treturn -1\n\t}\n\treturn syscall.Signal(w & mask)\n}\n\nfunc (w WaitStatus) StopSignal() syscall.Signal {\n\tif !w.Stopped() {\n\t\treturn -1\n\t}\n\treturn syscall.Signal(w>>shift) & 0xFF\n}\n\nfunc (w WaitStatus) TrapCause() int {\n\tif w.StopSignal() != SIGTRAP {\n\t\treturn -1\n\t}\n\treturn int(w>>shift) >> 8\n}\n\n//sys\twait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error)\n\nfunc Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) {\n\tvar status _C_int\n\twpid, err = wait4(pid, &status, options, rusage)\n\tif wstatus != nil {\n\t\t*wstatus = WaitStatus(status)\n\t}\n\treturn\n}\n\n//sys\tWaitid(idType int, id int, info *Siginfo, options int, rusage *Rusage) (err error)\n\nfunc Mkfifo(path string, mode uint32) error {\n\treturn Mknod(path, mode|S_IFIFO, 0)\n}\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) error {\n\treturn Mknodat(dirfd, path, mode|S_IFIFO, 0)\n}\n\nfunc (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_INET\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tsa.raw.Addr = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrInet4, nil\n}\n\nfunc (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_INET6\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tsa.raw.Scope_id = sa.ZoneId\n\tsa.raw.Addr = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrInet6, nil\n}\n\nfunc (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tname := sa.Name\n\tn := len(name)\n\tif n >= len(sa.raw.Path) {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_UNIX\n\tfor i := 0; i < n; i++ {\n\t\tsa.raw.Path[i] = int8(name[i])\n\t}\n\t// length is family (uint16), name, NUL.\n\tsl := _Socklen(2)\n\tif n > 0 {\n\t\tsl += _Socklen(n) + 1\n\t}\n\tif sa.raw.Path[0] == '@' || (sa.raw.Path[0] == 0 && sl > 3) {\n\t\t// Check sl > 3 so we don't change unnamed socket behavior.\n\t\tsa.raw.Path[0] = 0\n\t\t// Don't count trailing NUL for abstract address.\n\t\tsl--\n\t}\n\n\treturn unsafe.Pointer(&sa.raw), sl, nil\n}\n\n// SockaddrLinklayer implements the Sockaddr interface for AF_PACKET type sockets.\ntype SockaddrLinklayer struct {\n\tProtocol uint16\n\tIfindex  int\n\tHatype   uint16\n\tPkttype  uint8\n\tHalen    uint8\n\tAddr     [8]byte\n\traw      RawSockaddrLinklayer\n}\n\nfunc (sa *SockaddrLinklayer) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Ifindex < 0 || sa.Ifindex > 0x7fffffff {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_PACKET\n\tsa.raw.Protocol = sa.Protocol\n\tsa.raw.Ifindex = int32(sa.Ifindex)\n\tsa.raw.Hatype = sa.Hatype\n\tsa.raw.Pkttype = sa.Pkttype\n\tsa.raw.Halen = sa.Halen\n\tsa.raw.Addr = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrLinklayer, nil\n}\n\n// SockaddrNetlink implements the Sockaddr interface for AF_NETLINK type sockets.\ntype SockaddrNetlink struct {\n\tFamily uint16\n\tPad    uint16\n\tPid    uint32\n\tGroups uint32\n\traw    RawSockaddrNetlink\n}\n\nfunc (sa *SockaddrNetlink) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Family = AF_NETLINK\n\tsa.raw.Pad = sa.Pad\n\tsa.raw.Pid = sa.Pid\n\tsa.raw.Groups = sa.Groups\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrNetlink, nil\n}\n\n// SockaddrHCI implements the Sockaddr interface for AF_BLUETOOTH type sockets\n// using the HCI protocol.\ntype SockaddrHCI struct {\n\tDev     uint16\n\tChannel uint16\n\traw     RawSockaddrHCI\n}\n\nfunc (sa *SockaddrHCI) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Family = AF_BLUETOOTH\n\tsa.raw.Dev = sa.Dev\n\tsa.raw.Channel = sa.Channel\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrHCI, nil\n}\n\n// SockaddrL2 implements the Sockaddr interface for AF_BLUETOOTH type sockets\n// using the L2CAP protocol.\ntype SockaddrL2 struct {\n\tPSM      uint16\n\tCID      uint16\n\tAddr     [6]uint8\n\tAddrType uint8\n\traw      RawSockaddrL2\n}\n\nfunc (sa *SockaddrL2) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Family = AF_BLUETOOTH\n\tpsm := (*[2]byte)(unsafe.Pointer(&sa.raw.Psm))\n\tpsm[0] = byte(sa.PSM)\n\tpsm[1] = byte(sa.PSM >> 8)\n\tfor i := 0; i < len(sa.Addr); i++ {\n\t\tsa.raw.Bdaddr[i] = sa.Addr[len(sa.Addr)-1-i]\n\t}\n\tcid := (*[2]byte)(unsafe.Pointer(&sa.raw.Cid))\n\tcid[0] = byte(sa.CID)\n\tcid[1] = byte(sa.CID >> 8)\n\tsa.raw.Bdaddr_type = sa.AddrType\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrL2, nil\n}\n\n// SockaddrRFCOMM implements the Sockaddr interface for AF_BLUETOOTH type sockets\n// using the RFCOMM protocol.\n//\n// Server example:\n//\n//\tfd, _ := Socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM)\n//\t_ = unix.Bind(fd, &unix.SockaddrRFCOMM{\n//\t\tChannel: 1,\n//\t\tAddr:    [6]uint8{0, 0, 0, 0, 0, 0}, // BDADDR_ANY or 00:00:00:00:00:00\n//\t})\n//\t_ = Listen(fd, 1)\n//\tnfd, sa, _ := Accept(fd)\n//\tfmt.Printf(\"conn addr=%v fd=%d\", sa.(*unix.SockaddrRFCOMM).Addr, nfd)\n//\tRead(nfd, buf)\n//\n// Client example:\n//\n//\tfd, _ := Socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM)\n//\t_ = Connect(fd, &SockaddrRFCOMM{\n//\t\tChannel: 1,\n//\t\tAddr:    [6]byte{0x11, 0x22, 0x33, 0xaa, 0xbb, 0xcc}, // CC:BB:AA:33:22:11\n//\t})\n//\tWrite(fd, []byte(`hello`))\ntype SockaddrRFCOMM struct {\n\t// Addr represents a bluetooth address, byte ordering is little-endian.\n\tAddr [6]uint8\n\n\t// Channel is a designated bluetooth channel, only 1-30 are available for use.\n\t// Since Linux 2.6.7 and further zero value is the first available channel.\n\tChannel uint8\n\n\traw RawSockaddrRFCOMM\n}\n\nfunc (sa *SockaddrRFCOMM) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Family = AF_BLUETOOTH\n\tsa.raw.Channel = sa.Channel\n\tsa.raw.Bdaddr = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrRFCOMM, nil\n}\n\n// SockaddrCAN implements the Sockaddr interface for AF_CAN type sockets.\n// The RxID and TxID fields are used for transport protocol addressing in\n// (CAN_TP16, CAN_TP20, CAN_MCNET, and CAN_ISOTP), they can be left with\n// zero values for CAN_RAW and CAN_BCM sockets as they have no meaning.\n//\n// The SockaddrCAN struct must be bound to the socket file descriptor\n// using Bind before the CAN socket can be used.\n//\n//\t// Read one raw CAN frame\n//\tfd, _ := Socket(AF_CAN, SOCK_RAW, CAN_RAW)\n//\taddr := &SockaddrCAN{Ifindex: index}\n//\tBind(fd, addr)\n//\tframe := make([]byte, 16)\n//\tRead(fd, frame)\n//\n// The full SocketCAN documentation can be found in the linux kernel\n// archives at: https://www.kernel.org/doc/Documentation/networking/can.txt\ntype SockaddrCAN struct {\n\tIfindex int\n\tRxID    uint32\n\tTxID    uint32\n\traw     RawSockaddrCAN\n}\n\nfunc (sa *SockaddrCAN) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Ifindex < 0 || sa.Ifindex > 0x7fffffff {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_CAN\n\tsa.raw.Ifindex = int32(sa.Ifindex)\n\trx := (*[4]byte)(unsafe.Pointer(&sa.RxID))\n\tfor i := 0; i < 4; i++ {\n\t\tsa.raw.Addr[i] = rx[i]\n\t}\n\ttx := (*[4]byte)(unsafe.Pointer(&sa.TxID))\n\tfor i := 0; i < 4; i++ {\n\t\tsa.raw.Addr[i+4] = tx[i]\n\t}\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrCAN, nil\n}\n\n// SockaddrCANJ1939 implements the Sockaddr interface for AF_CAN using J1939\n// protocol (https://en.wikipedia.org/wiki/SAE_J1939). For more information\n// on the purposes of the fields, check the official linux kernel documentation\n// available here: https://www.kernel.org/doc/Documentation/networking/j1939.rst\ntype SockaddrCANJ1939 struct {\n\tIfindex int\n\tName    uint64\n\tPGN     uint32\n\tAddr    uint8\n\traw     RawSockaddrCAN\n}\n\nfunc (sa *SockaddrCANJ1939) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Ifindex < 0 || sa.Ifindex > 0x7fffffff {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_CAN\n\tsa.raw.Ifindex = int32(sa.Ifindex)\n\tn := (*[8]byte)(unsafe.Pointer(&sa.Name))\n\tfor i := 0; i < 8; i++ {\n\t\tsa.raw.Addr[i] = n[i]\n\t}\n\tp := (*[4]byte)(unsafe.Pointer(&sa.PGN))\n\tfor i := 0; i < 4; i++ {\n\t\tsa.raw.Addr[i+8] = p[i]\n\t}\n\tsa.raw.Addr[12] = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrCAN, nil\n}\n\n// SockaddrALG implements the Sockaddr interface for AF_ALG type sockets.\n// SockaddrALG enables userspace access to the Linux kernel's cryptography\n// subsystem. The Type and Name fields specify which type of hash or cipher\n// should be used with a given socket.\n//\n// To create a file descriptor that provides access to a hash or cipher, both\n// Bind and Accept must be used. Once the setup process is complete, input\n// data can be written to the socket, processed by the kernel, and then read\n// back as hash output or ciphertext.\n//\n// Here is an example of using an AF_ALG socket with SHA1 hashing.\n// The initial socket setup process is as follows:\n//\n//\t// Open a socket to perform SHA1 hashing.\n//\tfd, _ := unix.Socket(unix.AF_ALG, unix.SOCK_SEQPACKET, 0)\n//\taddr := &unix.SockaddrALG{Type: \"hash\", Name: \"sha1\"}\n//\tunix.Bind(fd, addr)\n//\t// Note: unix.Accept does not work at this time; must invoke accept()\n//\t// manually using unix.Syscall.\n//\thashfd, _, _ := unix.Syscall(unix.SYS_ACCEPT, uintptr(fd), 0, 0)\n//\n// Once a file descriptor has been returned from Accept, it may be used to\n// perform SHA1 hashing. The descriptor is not safe for concurrent use, but\n// may be re-used repeatedly with subsequent Write and Read operations.\n//\n// When hashing a small byte slice or string, a single Write and Read may\n// be used:\n//\n//\t// Assume hashfd is already configured using the setup process.\n//\thash := os.NewFile(hashfd, \"sha1\")\n//\t// Hash an input string and read the results. Each Write discards\n//\t// previous hash state. Read always reads the current state.\n//\tb := make([]byte, 20)\n//\tfor i := 0; i < 2; i++ {\n//\t    io.WriteString(hash, \"Hello, world.\")\n//\t    hash.Read(b)\n//\t    fmt.Println(hex.EncodeToString(b))\n//\t}\n//\t// Output:\n//\t// 2ae01472317d1935a84797ec1983ae243fc6aa28\n//\t// 2ae01472317d1935a84797ec1983ae243fc6aa28\n//\n// For hashing larger byte slices, or byte streams such as those read from\n// a file or socket, use Sendto with MSG_MORE to instruct the kernel to update\n// the hash digest instead of creating a new one for a given chunk and finalizing it.\n//\n//\t// Assume hashfd and addr are already configured using the setup process.\n//\thash := os.NewFile(hashfd, \"sha1\")\n//\t// Hash the contents of a file.\n//\tf, _ := os.Open(\"/tmp/linux-4.10-rc7.tar.xz\")\n//\tb := make([]byte, 4096)\n//\tfor {\n//\t    n, err := f.Read(b)\n//\t    if err == io.EOF {\n//\t        break\n//\t    }\n//\t    unix.Sendto(hashfd, b[:n], unix.MSG_MORE, addr)\n//\t}\n//\thash.Read(b)\n//\tfmt.Println(hex.EncodeToString(b))\n//\t// Output: 85cdcad0c06eef66f805ecce353bec9accbeecc5\n//\n// For more information, see: http://www.chronox.de/crypto-API/crypto/userspace-if.html.\ntype SockaddrALG struct {\n\tType    string\n\tName    string\n\tFeature uint32\n\tMask    uint32\n\traw     RawSockaddrALG\n}\n\nfunc (sa *SockaddrALG) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\t// Leave room for NUL byte terminator.\n\tif len(sa.Type) > len(sa.raw.Type)-1 {\n\t\treturn nil, 0, EINVAL\n\t}\n\tif len(sa.Name) > len(sa.raw.Name)-1 {\n\t\treturn nil, 0, EINVAL\n\t}\n\n\tsa.raw.Family = AF_ALG\n\tsa.raw.Feat = sa.Feature\n\tsa.raw.Mask = sa.Mask\n\n\tcopy(sa.raw.Type[:], sa.Type)\n\tcopy(sa.raw.Name[:], sa.Name)\n\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrALG, nil\n}\n\n// SockaddrVM implements the Sockaddr interface for AF_VSOCK type sockets.\n// SockaddrVM provides access to Linux VM sockets: a mechanism that enables\n// bidirectional communication between a hypervisor and its guest virtual\n// machines.\ntype SockaddrVM struct {\n\t// CID and Port specify a context ID and port address for a VM socket.\n\t// Guests have a unique CID, and hosts may have a well-known CID of:\n\t//  - VMADDR_CID_HYPERVISOR: refers to the hypervisor process.\n\t//  - VMADDR_CID_LOCAL: refers to local communication (loopback).\n\t//  - VMADDR_CID_HOST: refers to other processes on the host.\n\tCID   uint32\n\tPort  uint32\n\tFlags uint8\n\traw   RawSockaddrVM\n}\n\nfunc (sa *SockaddrVM) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Family = AF_VSOCK\n\tsa.raw.Port = sa.Port\n\tsa.raw.Cid = sa.CID\n\tsa.raw.Flags = sa.Flags\n\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrVM, nil\n}\n\ntype SockaddrXDP struct {\n\tFlags        uint16\n\tIfindex      uint32\n\tQueueID      uint32\n\tSharedUmemFD uint32\n\traw          RawSockaddrXDP\n}\n\nfunc (sa *SockaddrXDP) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Family = AF_XDP\n\tsa.raw.Flags = sa.Flags\n\tsa.raw.Ifindex = sa.Ifindex\n\tsa.raw.Queue_id = sa.QueueID\n\tsa.raw.Shared_umem_fd = sa.SharedUmemFD\n\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrXDP, nil\n}\n\n// This constant mirrors the #define of PX_PROTO_OE in\n// linux/if_pppox.h. We're defining this by hand here instead of\n// autogenerating through mkerrors.sh because including\n// linux/if_pppox.h causes some declaration conflicts with other\n// includes (linux/if_pppox.h includes linux/in.h, which conflicts\n// with netinet/in.h). Given that we only need a single zero constant\n// out of that file, it's cleaner to just define it by hand here.\nconst px_proto_oe = 0\n\ntype SockaddrPPPoE struct {\n\tSID    uint16\n\tRemote []byte\n\tDev    string\n\traw    RawSockaddrPPPoX\n}\n\nfunc (sa *SockaddrPPPoE) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif len(sa.Remote) != 6 {\n\t\treturn nil, 0, EINVAL\n\t}\n\tif len(sa.Dev) > IFNAMSIZ-1 {\n\t\treturn nil, 0, EINVAL\n\t}\n\n\t*(*uint16)(unsafe.Pointer(&sa.raw[0])) = AF_PPPOX\n\t// This next field is in host-endian byte order. We can't use the\n\t// same unsafe pointer cast as above, because this value is not\n\t// 32-bit aligned and some architectures don't allow unaligned\n\t// access.\n\t//\n\t// However, the value of px_proto_oe is 0, so we can use\n\t// encoding/binary helpers to write the bytes without worrying\n\t// about the ordering.\n\tbinary.BigEndian.PutUint32(sa.raw[2:6], px_proto_oe)\n\t// This field is deliberately big-endian, unlike the previous\n\t// one. The kernel expects SID to be in network byte order.\n\tbinary.BigEndian.PutUint16(sa.raw[6:8], sa.SID)\n\tcopy(sa.raw[8:14], sa.Remote)\n\tfor i := 14; i < 14+IFNAMSIZ; i++ {\n\t\tsa.raw[i] = 0\n\t}\n\tcopy(sa.raw[14:], sa.Dev)\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrPPPoX, nil\n}\n\n// SockaddrTIPC implements the Sockaddr interface for AF_TIPC type sockets.\n// For more information on TIPC, see: http://tipc.sourceforge.net/.\ntype SockaddrTIPC struct {\n\t// Scope is the publication scopes when binding service/service range.\n\t// Should be set to TIPC_CLUSTER_SCOPE or TIPC_NODE_SCOPE.\n\tScope int\n\n\t// Addr is the type of address used to manipulate a socket. Addr must be\n\t// one of:\n\t//  - *TIPCSocketAddr: \"id\" variant in the C addr union\n\t//  - *TIPCServiceRange: \"nameseq\" variant in the C addr union\n\t//  - *TIPCServiceName: \"name\" variant in the C addr union\n\t//\n\t// If nil, EINVAL will be returned when the structure is used.\n\tAddr TIPCAddr\n\n\traw RawSockaddrTIPC\n}\n\n// TIPCAddr is implemented by types that can be used as an address for\n// SockaddrTIPC. It is only implemented by *TIPCSocketAddr, *TIPCServiceRange,\n// and *TIPCServiceName.\ntype TIPCAddr interface {\n\ttipcAddrtype() uint8\n\ttipcAddr() [12]byte\n}\n\nfunc (sa *TIPCSocketAddr) tipcAddr() [12]byte {\n\tvar out [12]byte\n\tcopy(out[:], (*(*[unsafe.Sizeof(TIPCSocketAddr{})]byte)(unsafe.Pointer(sa)))[:])\n\treturn out\n}\n\nfunc (sa *TIPCSocketAddr) tipcAddrtype() uint8 { return TIPC_SOCKET_ADDR }\n\nfunc (sa *TIPCServiceRange) tipcAddr() [12]byte {\n\tvar out [12]byte\n\tcopy(out[:], (*(*[unsafe.Sizeof(TIPCServiceRange{})]byte)(unsafe.Pointer(sa)))[:])\n\treturn out\n}\n\nfunc (sa *TIPCServiceRange) tipcAddrtype() uint8 { return TIPC_SERVICE_RANGE }\n\nfunc (sa *TIPCServiceName) tipcAddr() [12]byte {\n\tvar out [12]byte\n\tcopy(out[:], (*(*[unsafe.Sizeof(TIPCServiceName{})]byte)(unsafe.Pointer(sa)))[:])\n\treturn out\n}\n\nfunc (sa *TIPCServiceName) tipcAddrtype() uint8 { return TIPC_SERVICE_ADDR }\n\nfunc (sa *SockaddrTIPC) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Addr == nil {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_TIPC\n\tsa.raw.Scope = int8(sa.Scope)\n\tsa.raw.Addrtype = sa.Addr.tipcAddrtype()\n\tsa.raw.Addr = sa.Addr.tipcAddr()\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrTIPC, nil\n}\n\n// SockaddrL2TPIP implements the Sockaddr interface for IPPROTO_L2TP/AF_INET sockets.\ntype SockaddrL2TPIP struct {\n\tAddr   [4]byte\n\tConnId uint32\n\traw    RawSockaddrL2TPIP\n}\n\nfunc (sa *SockaddrL2TPIP) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Family = AF_INET\n\tsa.raw.Conn_id = sa.ConnId\n\tsa.raw.Addr = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrL2TPIP, nil\n}\n\n// SockaddrL2TPIP6 implements the Sockaddr interface for IPPROTO_L2TP/AF_INET6 sockets.\ntype SockaddrL2TPIP6 struct {\n\tAddr   [16]byte\n\tZoneId uint32\n\tConnId uint32\n\traw    RawSockaddrL2TPIP6\n}\n\nfunc (sa *SockaddrL2TPIP6) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Family = AF_INET6\n\tsa.raw.Conn_id = sa.ConnId\n\tsa.raw.Scope_id = sa.ZoneId\n\tsa.raw.Addr = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrL2TPIP6, nil\n}\n\n// SockaddrIUCV implements the Sockaddr interface for AF_IUCV sockets.\ntype SockaddrIUCV struct {\n\tUserID string\n\tName   string\n\traw    RawSockaddrIUCV\n}\n\nfunc (sa *SockaddrIUCV) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Family = AF_IUCV\n\t// These are EBCDIC encoded by the kernel, but we still need to pad them\n\t// with blanks. Initializing with blanks allows the caller to feed in either\n\t// a padded or an unpadded string.\n\tfor i := 0; i < 8; i++ {\n\t\tsa.raw.Nodeid[i] = ' '\n\t\tsa.raw.User_id[i] = ' '\n\t\tsa.raw.Name[i] = ' '\n\t}\n\tif len(sa.UserID) > 8 || len(sa.Name) > 8 {\n\t\treturn nil, 0, EINVAL\n\t}\n\tfor i, b := range []byte(sa.UserID[:]) {\n\t\tsa.raw.User_id[i] = int8(b)\n\t}\n\tfor i, b := range []byte(sa.Name[:]) {\n\t\tsa.raw.Name[i] = int8(b)\n\t}\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrIUCV, nil\n}\n\ntype SockaddrNFC struct {\n\tDeviceIdx   uint32\n\tTargetIdx   uint32\n\tNFCProtocol uint32\n\traw         RawSockaddrNFC\n}\n\nfunc (sa *SockaddrNFC) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Sa_family = AF_NFC\n\tsa.raw.Dev_idx = sa.DeviceIdx\n\tsa.raw.Target_idx = sa.TargetIdx\n\tsa.raw.Nfc_protocol = sa.NFCProtocol\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrNFC, nil\n}\n\ntype SockaddrNFCLLCP struct {\n\tDeviceIdx      uint32\n\tTargetIdx      uint32\n\tNFCProtocol    uint32\n\tDestinationSAP uint8\n\tSourceSAP      uint8\n\tServiceName    string\n\traw            RawSockaddrNFCLLCP\n}\n\nfunc (sa *SockaddrNFCLLCP) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tsa.raw.Sa_family = AF_NFC\n\tsa.raw.Dev_idx = sa.DeviceIdx\n\tsa.raw.Target_idx = sa.TargetIdx\n\tsa.raw.Nfc_protocol = sa.NFCProtocol\n\tsa.raw.Dsap = sa.DestinationSAP\n\tsa.raw.Ssap = sa.SourceSAP\n\tif len(sa.ServiceName) > len(sa.raw.Service_name) {\n\t\treturn nil, 0, EINVAL\n\t}\n\tcopy(sa.raw.Service_name[:], sa.ServiceName)\n\tsa.raw.SetServiceNameLen(len(sa.ServiceName))\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrNFCLLCP, nil\n}\n\nvar socketProtocol = func(fd int) (int, error) {\n\treturn GetsockoptInt(fd, SOL_SOCKET, SO_PROTOCOL)\n}\n\nfunc anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {\n\tswitch rsa.Addr.Family {\n\tcase AF_NETLINK:\n\t\tpp := (*RawSockaddrNetlink)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrNetlink)\n\t\tsa.Family = pp.Family\n\t\tsa.Pad = pp.Pad\n\t\tsa.Pid = pp.Pid\n\t\tsa.Groups = pp.Groups\n\t\treturn sa, nil\n\n\tcase AF_PACKET:\n\t\tpp := (*RawSockaddrLinklayer)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrLinklayer)\n\t\tsa.Protocol = pp.Protocol\n\t\tsa.Ifindex = int(pp.Ifindex)\n\t\tsa.Hatype = pp.Hatype\n\t\tsa.Pkttype = pp.Pkttype\n\t\tsa.Halen = pp.Halen\n\t\tsa.Addr = pp.Addr\n\t\treturn sa, nil\n\n\tcase AF_UNIX:\n\t\tpp := (*RawSockaddrUnix)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrUnix)\n\t\tif pp.Path[0] == 0 {\n\t\t\t// \"Abstract\" Unix domain socket.\n\t\t\t// Rewrite leading NUL as @ for textual display.\n\t\t\t// (This is the standard convention.)\n\t\t\t// Not friendly to overwrite in place,\n\t\t\t// but the callers below don't care.\n\t\t\tpp.Path[0] = '@'\n\t\t}\n\n\t\t// Assume path ends at NUL.\n\t\t// This is not technically the Linux semantics for\n\t\t// abstract Unix domain sockets--they are supposed\n\t\t// to be uninterpreted fixed-size binary blobs--but\n\t\t// everyone uses this convention.\n\t\tn := 0\n\t\tfor n < len(pp.Path) && pp.Path[n] != 0 {\n\t\t\tn++\n\t\t}\n\t\tsa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n))\n\t\treturn sa, nil\n\n\tcase AF_INET:\n\t\tproto, err := socketProtocol(fd)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tswitch proto {\n\t\tcase IPPROTO_L2TP:\n\t\t\tpp := (*RawSockaddrL2TPIP)(unsafe.Pointer(rsa))\n\t\t\tsa := new(SockaddrL2TPIP)\n\t\t\tsa.ConnId = pp.Conn_id\n\t\t\tsa.Addr = pp.Addr\n\t\t\treturn sa, nil\n\t\tdefault:\n\t\t\tpp := (*RawSockaddrInet4)(unsafe.Pointer(rsa))\n\t\t\tsa := new(SockaddrInet4)\n\t\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\t\tsa.Addr = pp.Addr\n\t\t\treturn sa, nil\n\t\t}\n\n\tcase AF_INET6:\n\t\tproto, err := socketProtocol(fd)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tswitch proto {\n\t\tcase IPPROTO_L2TP:\n\t\t\tpp := (*RawSockaddrL2TPIP6)(unsafe.Pointer(rsa))\n\t\t\tsa := new(SockaddrL2TPIP6)\n\t\t\tsa.ConnId = pp.Conn_id\n\t\t\tsa.ZoneId = pp.Scope_id\n\t\t\tsa.Addr = pp.Addr\n\t\t\treturn sa, nil\n\t\tdefault:\n\t\t\tpp := (*RawSockaddrInet6)(unsafe.Pointer(rsa))\n\t\t\tsa := new(SockaddrInet6)\n\t\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\t\tsa.ZoneId = pp.Scope_id\n\t\t\tsa.Addr = pp.Addr\n\t\t\treturn sa, nil\n\t\t}\n\n\tcase AF_VSOCK:\n\t\tpp := (*RawSockaddrVM)(unsafe.Pointer(rsa))\n\t\tsa := &SockaddrVM{\n\t\t\tCID:   pp.Cid,\n\t\t\tPort:  pp.Port,\n\t\t\tFlags: pp.Flags,\n\t\t}\n\t\treturn sa, nil\n\tcase AF_BLUETOOTH:\n\t\tproto, err := socketProtocol(fd)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\t// only BTPROTO_L2CAP and BTPROTO_RFCOMM can accept connections\n\t\tswitch proto {\n\t\tcase BTPROTO_L2CAP:\n\t\t\tpp := (*RawSockaddrL2)(unsafe.Pointer(rsa))\n\t\t\tsa := &SockaddrL2{\n\t\t\t\tPSM:      pp.Psm,\n\t\t\t\tCID:      pp.Cid,\n\t\t\t\tAddr:     pp.Bdaddr,\n\t\t\t\tAddrType: pp.Bdaddr_type,\n\t\t\t}\n\t\t\treturn sa, nil\n\t\tcase BTPROTO_RFCOMM:\n\t\t\tpp := (*RawSockaddrRFCOMM)(unsafe.Pointer(rsa))\n\t\t\tsa := &SockaddrRFCOMM{\n\t\t\t\tChannel: pp.Channel,\n\t\t\t\tAddr:    pp.Bdaddr,\n\t\t\t}\n\t\t\treturn sa, nil\n\t\t}\n\tcase AF_XDP:\n\t\tpp := (*RawSockaddrXDP)(unsafe.Pointer(rsa))\n\t\tsa := &SockaddrXDP{\n\t\t\tFlags:        pp.Flags,\n\t\t\tIfindex:      pp.Ifindex,\n\t\t\tQueueID:      pp.Queue_id,\n\t\t\tSharedUmemFD: pp.Shared_umem_fd,\n\t\t}\n\t\treturn sa, nil\n\tcase AF_PPPOX:\n\t\tpp := (*RawSockaddrPPPoX)(unsafe.Pointer(rsa))\n\t\tif binary.BigEndian.Uint32(pp[2:6]) != px_proto_oe {\n\t\t\treturn nil, EINVAL\n\t\t}\n\t\tsa := &SockaddrPPPoE{\n\t\t\tSID:    binary.BigEndian.Uint16(pp[6:8]),\n\t\t\tRemote: pp[8:14],\n\t\t}\n\t\tfor i := 14; i < 14+IFNAMSIZ; i++ {\n\t\t\tif pp[i] == 0 {\n\t\t\t\tsa.Dev = string(pp[14:i])\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\treturn sa, nil\n\tcase AF_TIPC:\n\t\tpp := (*RawSockaddrTIPC)(unsafe.Pointer(rsa))\n\n\t\tsa := &SockaddrTIPC{\n\t\t\tScope: int(pp.Scope),\n\t\t}\n\n\t\t// Determine which union variant is present in pp.Addr by checking\n\t\t// pp.Addrtype.\n\t\tswitch pp.Addrtype {\n\t\tcase TIPC_SERVICE_RANGE:\n\t\t\tsa.Addr = (*TIPCServiceRange)(unsafe.Pointer(&pp.Addr))\n\t\tcase TIPC_SERVICE_ADDR:\n\t\t\tsa.Addr = (*TIPCServiceName)(unsafe.Pointer(&pp.Addr))\n\t\tcase TIPC_SOCKET_ADDR:\n\t\t\tsa.Addr = (*TIPCSocketAddr)(unsafe.Pointer(&pp.Addr))\n\t\tdefault:\n\t\t\treturn nil, EINVAL\n\t\t}\n\n\t\treturn sa, nil\n\tcase AF_IUCV:\n\t\tpp := (*RawSockaddrIUCV)(unsafe.Pointer(rsa))\n\n\t\tvar user [8]byte\n\t\tvar name [8]byte\n\n\t\tfor i := 0; i < 8; i++ {\n\t\t\tuser[i] = byte(pp.User_id[i])\n\t\t\tname[i] = byte(pp.Name[i])\n\t\t}\n\n\t\tsa := &SockaddrIUCV{\n\t\t\tUserID: string(user[:]),\n\t\t\tName:   string(name[:]),\n\t\t}\n\t\treturn sa, nil\n\n\tcase AF_CAN:\n\t\tproto, err := socketProtocol(fd)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tpp := (*RawSockaddrCAN)(unsafe.Pointer(rsa))\n\n\t\tswitch proto {\n\t\tcase CAN_J1939:\n\t\t\tsa := &SockaddrCANJ1939{\n\t\t\t\tIfindex: int(pp.Ifindex),\n\t\t\t}\n\t\t\tname := (*[8]byte)(unsafe.Pointer(&sa.Name))\n\t\t\tfor i := 0; i < 8; i++ {\n\t\t\t\tname[i] = pp.Addr[i]\n\t\t\t}\n\t\t\tpgn := (*[4]byte)(unsafe.Pointer(&sa.PGN))\n\t\t\tfor i := 0; i < 4; i++ {\n\t\t\t\tpgn[i] = pp.Addr[i+8]\n\t\t\t}\n\t\t\taddr := (*[1]byte)(unsafe.Pointer(&sa.Addr))\n\t\t\taddr[0] = pp.Addr[12]\n\t\t\treturn sa, nil\n\t\tdefault:\n\t\t\tsa := &SockaddrCAN{\n\t\t\t\tIfindex: int(pp.Ifindex),\n\t\t\t}\n\t\t\trx := (*[4]byte)(unsafe.Pointer(&sa.RxID))\n\t\t\tfor i := 0; i < 4; i++ {\n\t\t\t\trx[i] = pp.Addr[i]\n\t\t\t}\n\t\t\ttx := (*[4]byte)(unsafe.Pointer(&sa.TxID))\n\t\t\tfor i := 0; i < 4; i++ {\n\t\t\t\ttx[i] = pp.Addr[i+4]\n\t\t\t}\n\t\t\treturn sa, nil\n\t\t}\n\tcase AF_NFC:\n\t\tproto, err := socketProtocol(fd)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tswitch proto {\n\t\tcase NFC_SOCKPROTO_RAW:\n\t\t\tpp := (*RawSockaddrNFC)(unsafe.Pointer(rsa))\n\t\t\tsa := &SockaddrNFC{\n\t\t\t\tDeviceIdx:   pp.Dev_idx,\n\t\t\t\tTargetIdx:   pp.Target_idx,\n\t\t\t\tNFCProtocol: pp.Nfc_protocol,\n\t\t\t}\n\t\t\treturn sa, nil\n\t\tcase NFC_SOCKPROTO_LLCP:\n\t\t\tpp := (*RawSockaddrNFCLLCP)(unsafe.Pointer(rsa))\n\t\t\tif uint64(pp.Service_name_len) > uint64(len(pp.Service_name)) {\n\t\t\t\treturn nil, EINVAL\n\t\t\t}\n\t\t\tsa := &SockaddrNFCLLCP{\n\t\t\t\tDeviceIdx:      pp.Dev_idx,\n\t\t\t\tTargetIdx:      pp.Target_idx,\n\t\t\t\tNFCProtocol:    pp.Nfc_protocol,\n\t\t\t\tDestinationSAP: pp.Dsap,\n\t\t\t\tSourceSAP:      pp.Ssap,\n\t\t\t\tServiceName:    string(pp.Service_name[:pp.Service_name_len]),\n\t\t\t}\n\t\t\treturn sa, nil\n\t\tdefault:\n\t\t\treturn nil, EINVAL\n\t\t}\n\t}\n\treturn nil, EAFNOSUPPORT\n}\n\nfunc Accept(fd int) (nfd int, sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tnfd, err = accept4(fd, &rsa, &len, 0)\n\tif err != nil {\n\t\treturn\n\t}\n\tsa, err = anyToSockaddr(fd, &rsa)\n\tif err != nil {\n\t\tClose(nfd)\n\t\tnfd = 0\n\t}\n\treturn\n}\n\nfunc Accept4(fd int, flags int) (nfd int, sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tnfd, err = accept4(fd, &rsa, &len, flags)\n\tif err != nil {\n\t\treturn\n\t}\n\tif len > SizeofSockaddrAny {\n\t\tpanic(\"RawSockaddrAny too small\")\n\t}\n\tsa, err = anyToSockaddr(fd, &rsa)\n\tif err != nil {\n\t\tClose(nfd)\n\t\tnfd = 0\n\t}\n\treturn\n}\n\nfunc Getsockname(fd int) (sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tif err = getsockname(fd, &rsa, &len); err != nil {\n\t\treturn\n\t}\n\treturn anyToSockaddr(fd, &rsa)\n}\n\nfunc GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) {\n\tvar value IPMreqn\n\tvallen := _Socklen(SizeofIPMreqn)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc GetsockoptUcred(fd, level, opt int) (*Ucred, error) {\n\tvar value Ucred\n\tvallen := _Socklen(SizeofUcred)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc GetsockoptTCPInfo(fd, level, opt int) (*TCPInfo, error) {\n\tvar value TCPInfo\n\tvallen := _Socklen(SizeofTCPInfo)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\n// GetsockoptTCPCCVegasInfo returns algorithm specific congestion control information for a socket using the \"vegas\"\n// algorithm.\n//\n// The socket's congestion control algorighm can be retrieved via [GetsockoptString] with the [TCP_CONGESTION] option:\n//\n//\talgo, err := unix.GetsockoptString(fd, unix.IPPROTO_TCP, unix.TCP_CONGESTION)\nfunc GetsockoptTCPCCVegasInfo(fd, level, opt int) (*TCPVegasInfo, error) {\n\tvar value [SizeofTCPCCInfo / 4]uint32 // ensure proper alignment\n\tvallen := _Socklen(SizeofTCPCCInfo)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen)\n\tout := (*TCPVegasInfo)(unsafe.Pointer(&value[0]))\n\treturn out, err\n}\n\n// GetsockoptTCPCCDCTCPInfo returns algorithm specific congestion control information for a socket using the \"dctp\"\n// algorithm.\n//\n// The socket's congestion control algorighm can be retrieved via [GetsockoptString] with the [TCP_CONGESTION] option:\n//\n//\talgo, err := unix.GetsockoptString(fd, unix.IPPROTO_TCP, unix.TCP_CONGESTION)\nfunc GetsockoptTCPCCDCTCPInfo(fd, level, opt int) (*TCPDCTCPInfo, error) {\n\tvar value [SizeofTCPCCInfo / 4]uint32 // ensure proper alignment\n\tvallen := _Socklen(SizeofTCPCCInfo)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen)\n\tout := (*TCPDCTCPInfo)(unsafe.Pointer(&value[0]))\n\treturn out, err\n}\n\n// GetsockoptTCPCCBBRInfo returns algorithm specific congestion control information for a socket using the \"bbr\"\n// algorithm.\n//\n// The socket's congestion control algorighm can be retrieved via [GetsockoptString] with the [TCP_CONGESTION] option:\n//\n//\talgo, err := unix.GetsockoptString(fd, unix.IPPROTO_TCP, unix.TCP_CONGESTION)\nfunc GetsockoptTCPCCBBRInfo(fd, level, opt int) (*TCPBBRInfo, error) {\n\tvar value [SizeofTCPCCInfo / 4]uint32 // ensure proper alignment\n\tvallen := _Socklen(SizeofTCPCCInfo)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen)\n\tout := (*TCPBBRInfo)(unsafe.Pointer(&value[0]))\n\treturn out, err\n}\n\n// GetsockoptString returns the string value of the socket option opt for the\n// socket associated with fd at the given socket level.\nfunc GetsockoptString(fd, level, opt int) (string, error) {\n\tbuf := make([]byte, 256)\n\tvallen := _Socklen(len(buf))\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen)\n\tif err != nil {\n\t\tif err == ERANGE {\n\t\t\tbuf = make([]byte, vallen)\n\t\t\terr = getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen)\n\t\t}\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t}\n\treturn ByteSliceToString(buf[:vallen]), nil\n}\n\nfunc GetsockoptTpacketStats(fd, level, opt int) (*TpacketStats, error) {\n\tvar value TpacketStats\n\tvallen := _Socklen(SizeofTpacketStats)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc GetsockoptTpacketStatsV3(fd, level, opt int) (*TpacketStatsV3, error) {\n\tvar value TpacketStatsV3\n\tvallen := _Socklen(SizeofTpacketStatsV3)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq))\n}\n\nfunc SetsockoptPacketMreq(fd, level, opt int, mreq *PacketMreq) error {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq))\n}\n\n// SetsockoptSockFprog attaches a classic BPF or an extended BPF program to a\n// socket to filter incoming packets.  See 'man 7 socket' for usage information.\nfunc SetsockoptSockFprog(fd, level, opt int, fprog *SockFprog) error {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(fprog), unsafe.Sizeof(*fprog))\n}\n\nfunc SetsockoptCanRawFilter(fd, level, opt int, filter []CanFilter) error {\n\tvar p unsafe.Pointer\n\tif len(filter) > 0 {\n\t\tp = unsafe.Pointer(&filter[0])\n\t}\n\treturn setsockopt(fd, level, opt, p, uintptr(len(filter)*SizeofCanFilter))\n}\n\nfunc SetsockoptTpacketReq(fd, level, opt int, tp *TpacketReq) error {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(tp), unsafe.Sizeof(*tp))\n}\n\nfunc SetsockoptTpacketReq3(fd, level, opt int, tp *TpacketReq3) error {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(tp), unsafe.Sizeof(*tp))\n}\n\nfunc SetsockoptTCPRepairOpt(fd, level, opt int, o []TCPRepairOpt) (err error) {\n\tif len(o) == 0 {\n\t\treturn EINVAL\n\t}\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(&o[0]), uintptr(SizeofTCPRepairOpt*len(o)))\n}\n\nfunc SetsockoptTCPMD5Sig(fd, level, opt int, s *TCPMD5Sig) error {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(s), unsafe.Sizeof(*s))\n}\n\n// Keyctl Commands (http://man7.org/linux/man-pages/man2/keyctl.2.html)\n\n// KeyctlInt calls keyctl commands in which each argument is an int.\n// These commands are KEYCTL_REVOKE, KEYCTL_CHOWN, KEYCTL_CLEAR, KEYCTL_LINK,\n// KEYCTL_UNLINK, KEYCTL_NEGATE, KEYCTL_SET_REQKEY_KEYRING, KEYCTL_SET_TIMEOUT,\n// KEYCTL_ASSUME_AUTHORITY, KEYCTL_SESSION_TO_PARENT, KEYCTL_REJECT,\n// KEYCTL_INVALIDATE, and KEYCTL_GET_PERSISTENT.\n//sys\tKeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) = SYS_KEYCTL\n\n// KeyctlBuffer calls keyctl commands in which the third and fourth\n// arguments are a buffer and its length, respectively.\n// These commands are KEYCTL_UPDATE, KEYCTL_READ, and KEYCTL_INSTANTIATE.\n//sys\tKeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) = SYS_KEYCTL\n\n// KeyctlString calls keyctl commands which return a string.\n// These commands are KEYCTL_DESCRIBE and KEYCTL_GET_SECURITY.\nfunc KeyctlString(cmd int, id int) (string, error) {\n\t// We must loop as the string data may change in between the syscalls.\n\t// We could allocate a large buffer here to reduce the chance that the\n\t// syscall needs to be called twice; however, this is unnecessary as\n\t// the performance loss is negligible.\n\tvar buffer []byte\n\tfor {\n\t\t// Try to fill the buffer with data\n\t\tlength, err := KeyctlBuffer(cmd, id, buffer, 0)\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\n\t\t// Check if the data was written\n\t\tif length <= len(buffer) {\n\t\t\t// Exclude the null terminator\n\t\t\treturn string(buffer[:length-1]), nil\n\t\t}\n\n\t\t// Make a bigger buffer if needed\n\t\tbuffer = make([]byte, length)\n\t}\n}\n\n// Keyctl commands with special signatures.\n\n// KeyctlGetKeyringID implements the KEYCTL_GET_KEYRING_ID command.\n// See the full documentation at:\n// http://man7.org/linux/man-pages/man3/keyctl_get_keyring_ID.3.html\nfunc KeyctlGetKeyringID(id int, create bool) (ringid int, err error) {\n\tcreateInt := 0\n\tif create {\n\t\tcreateInt = 1\n\t}\n\treturn KeyctlInt(KEYCTL_GET_KEYRING_ID, id, createInt, 0, 0)\n}\n\n// KeyctlSetperm implements the KEYCTL_SETPERM command. The perm value is the\n// key handle permission mask as described in the \"keyctl setperm\" section of\n// http://man7.org/linux/man-pages/man1/keyctl.1.html.\n// See the full documentation at:\n// http://man7.org/linux/man-pages/man3/keyctl_setperm.3.html\nfunc KeyctlSetperm(id int, perm uint32) error {\n\t_, err := KeyctlInt(KEYCTL_SETPERM, id, int(perm), 0, 0)\n\treturn err\n}\n\n//sys\tkeyctlJoin(cmd int, arg2 string) (ret int, err error) = SYS_KEYCTL\n\n// KeyctlJoinSessionKeyring implements the KEYCTL_JOIN_SESSION_KEYRING command.\n// See the full documentation at:\n// http://man7.org/linux/man-pages/man3/keyctl_join_session_keyring.3.html\nfunc KeyctlJoinSessionKeyring(name string) (ringid int, err error) {\n\treturn keyctlJoin(KEYCTL_JOIN_SESSION_KEYRING, name)\n}\n\n//sys\tkeyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) = SYS_KEYCTL\n\n// KeyctlSearch implements the KEYCTL_SEARCH command.\n// See the full documentation at:\n// http://man7.org/linux/man-pages/man3/keyctl_search.3.html\nfunc KeyctlSearch(ringid int, keyType, description string, destRingid int) (id int, err error) {\n\treturn keyctlSearch(KEYCTL_SEARCH, ringid, keyType, description, destRingid)\n}\n\n//sys\tkeyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) = SYS_KEYCTL\n\n// KeyctlInstantiateIOV implements the KEYCTL_INSTANTIATE_IOV command. This\n// command is similar to KEYCTL_INSTANTIATE, except that the payload is a slice\n// of Iovec (each of which represents a buffer) instead of a single buffer.\n// See the full documentation at:\n// http://man7.org/linux/man-pages/man3/keyctl_instantiate_iov.3.html\nfunc KeyctlInstantiateIOV(id int, payload []Iovec, ringid int) error {\n\treturn keyctlIOV(KEYCTL_INSTANTIATE_IOV, id, payload, ringid)\n}\n\n//sys\tkeyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) = SYS_KEYCTL\n\n// KeyctlDHCompute implements the KEYCTL_DH_COMPUTE command. This command\n// computes a Diffie-Hellman shared secret based on the provide params. The\n// secret is written to the provided buffer and the returned size is the number\n// of bytes written (returning an error if there is insufficient space in the\n// buffer). If a nil buffer is passed in, this function returns the minimum\n// buffer length needed to store the appropriate data. Note that this differs\n// from KEYCTL_READ's behavior which always returns the requested payload size.\n// See the full documentation at:\n// http://man7.org/linux/man-pages/man3/keyctl_dh_compute.3.html\nfunc KeyctlDHCompute(params *KeyctlDHParams, buffer []byte) (size int, err error) {\n\treturn keyctlDH(KEYCTL_DH_COMPUTE, params, buffer)\n}\n\n// KeyctlRestrictKeyring implements the KEYCTL_RESTRICT_KEYRING command. This\n// command limits the set of keys that can be linked to the keyring, regardless\n// of keyring permissions. The command requires the \"setattr\" permission.\n//\n// When called with an empty keyType the command locks the keyring, preventing\n// any further keys from being linked to the keyring.\n//\n// The \"asymmetric\" keyType defines restrictions requiring key payloads to be\n// DER encoded X.509 certificates signed by keys in another keyring. Restrictions\n// for \"asymmetric\" include \"builtin_trusted\", \"builtin_and_secondary_trusted\",\n// \"key_or_keyring:<key>\", and \"key_or_keyring:<key>:chain\".\n//\n// As of Linux 4.12, only the \"asymmetric\" keyType defines type-specific\n// restrictions.\n//\n// See the full documentation at:\n// http://man7.org/linux/man-pages/man3/keyctl_restrict_keyring.3.html\n// http://man7.org/linux/man-pages/man2/keyctl.2.html\nfunc KeyctlRestrictKeyring(ringid int, keyType string, restriction string) error {\n\tif keyType == \"\" {\n\t\treturn keyctlRestrictKeyring(KEYCTL_RESTRICT_KEYRING, ringid)\n\t}\n\treturn keyctlRestrictKeyringByType(KEYCTL_RESTRICT_KEYRING, ringid, keyType, restriction)\n}\n\n//sys\tkeyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) = SYS_KEYCTL\n//sys\tkeyctlRestrictKeyring(cmd int, arg2 int) (err error) = SYS_KEYCTL\n\nfunc recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) {\n\tvar msg Msghdr\n\tmsg.Name = (*byte)(unsafe.Pointer(rsa))\n\tmsg.Namelen = uint32(SizeofSockaddrAny)\n\tvar dummy byte\n\tif len(oob) > 0 {\n\t\tif emptyIovecs(iov) {\n\t\t\tvar sockType int\n\t\t\tsockType, err = GetsockoptInt(fd, SOL_SOCKET, SO_TYPE)\n\t\t\tif err != nil {\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// receive at least one normal byte\n\t\t\tif sockType != SOCK_DGRAM {\n\t\t\t\tvar iova [1]Iovec\n\t\t\t\tiova[0].Base = &dummy\n\t\t\t\tiova[0].SetLen(1)\n\t\t\t\tiov = iova[:]\n\t\t\t}\n\t\t}\n\t\tmsg.Control = &oob[0]\n\t\tmsg.SetControllen(len(oob))\n\t}\n\tif len(iov) > 0 {\n\t\tmsg.Iov = &iov[0]\n\t\tmsg.SetIovlen(len(iov))\n\t}\n\tif n, err = recvmsg(fd, &msg, flags); err != nil {\n\t\treturn\n\t}\n\toobn = int(msg.Controllen)\n\trecvflags = int(msg.Flags)\n\treturn\n}\n\nfunc sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) {\n\tvar msg Msghdr\n\tmsg.Name = (*byte)(ptr)\n\tmsg.Namelen = uint32(salen)\n\tvar dummy byte\n\tvar empty bool\n\tif len(oob) > 0 {\n\t\tempty = emptyIovecs(iov)\n\t\tif empty {\n\t\t\tvar sockType int\n\t\t\tsockType, err = GetsockoptInt(fd, SOL_SOCKET, SO_TYPE)\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\t// send at least one normal byte\n\t\t\tif sockType != SOCK_DGRAM {\n\t\t\t\tvar iova [1]Iovec\n\t\t\t\tiova[0].Base = &dummy\n\t\t\t\tiova[0].SetLen(1)\n\t\t\t\tiov = iova[:]\n\t\t\t}\n\t\t}\n\t\tmsg.Control = &oob[0]\n\t\tmsg.SetControllen(len(oob))\n\t}\n\tif len(iov) > 0 {\n\t\tmsg.Iov = &iov[0]\n\t\tmsg.SetIovlen(len(iov))\n\t}\n\tif n, err = sendmsg(fd, &msg, flags); err != nil {\n\t\treturn 0, err\n\t}\n\tif len(oob) > 0 && empty {\n\t\tn = 0\n\t}\n\treturn n, nil\n}\n\n// BindToDevice binds the socket associated with fd to device.\nfunc BindToDevice(fd int, device string) (err error) {\n\treturn SetsockoptString(fd, SOL_SOCKET, SO_BINDTODEVICE, device)\n}\n\n//sys\tptrace(request int, pid int, addr uintptr, data uintptr) (err error)\n//sys\tptracePtr(request int, pid int, addr uintptr, data unsafe.Pointer) (err error) = SYS_PTRACE\n\nfunc ptracePeek(req int, pid int, addr uintptr, out []byte) (count int, err error) {\n\t// The peek requests are machine-size oriented, so we wrap it\n\t// to retrieve arbitrary-length data.\n\n\t// The ptrace syscall differs from glibc's ptrace.\n\t// Peeks returns the word in *data, not as the return value.\n\n\tvar buf [SizeofPtr]byte\n\n\t// Leading edge. PEEKTEXT/PEEKDATA don't require aligned\n\t// access (PEEKUSER warns that it might), but if we don't\n\t// align our reads, we might straddle an unmapped page\n\t// boundary and not get the bytes leading up to the page\n\t// boundary.\n\tn := 0\n\tif addr%SizeofPtr != 0 {\n\t\terr = ptracePtr(req, pid, addr-addr%SizeofPtr, unsafe.Pointer(&buf[0]))\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\tn += copy(out, buf[addr%SizeofPtr:])\n\t\tout = out[n:]\n\t}\n\n\t// Remainder.\n\tfor len(out) > 0 {\n\t\t// We use an internal buffer to guarantee alignment.\n\t\t// It's not documented if this is necessary, but we're paranoid.\n\t\terr = ptracePtr(req, pid, addr+uintptr(n), unsafe.Pointer(&buf[0]))\n\t\tif err != nil {\n\t\t\treturn n, err\n\t\t}\n\t\tcopied := copy(out, buf[0:])\n\t\tn += copied\n\t\tout = out[copied:]\n\t}\n\n\treturn n, nil\n}\n\nfunc PtracePeekText(pid int, addr uintptr, out []byte) (count int, err error) {\n\treturn ptracePeek(PTRACE_PEEKTEXT, pid, addr, out)\n}\n\nfunc PtracePeekData(pid int, addr uintptr, out []byte) (count int, err error) {\n\treturn ptracePeek(PTRACE_PEEKDATA, pid, addr, out)\n}\n\nfunc PtracePeekUser(pid int, addr uintptr, out []byte) (count int, err error) {\n\treturn ptracePeek(PTRACE_PEEKUSR, pid, addr, out)\n}\n\nfunc ptracePoke(pokeReq int, peekReq int, pid int, addr uintptr, data []byte) (count int, err error) {\n\t// As for ptracePeek, we need to align our accesses to deal\n\t// with the possibility of straddling an invalid page.\n\n\t// Leading edge.\n\tn := 0\n\tif addr%SizeofPtr != 0 {\n\t\tvar buf [SizeofPtr]byte\n\t\terr = ptracePtr(peekReq, pid, addr-addr%SizeofPtr, unsafe.Pointer(&buf[0]))\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\tn += copy(buf[addr%SizeofPtr:], data)\n\t\tword := *((*uintptr)(unsafe.Pointer(&buf[0])))\n\t\terr = ptrace(pokeReq, pid, addr-addr%SizeofPtr, word)\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\tdata = data[n:]\n\t}\n\n\t// Interior.\n\tfor len(data) > SizeofPtr {\n\t\tword := *((*uintptr)(unsafe.Pointer(&data[0])))\n\t\terr = ptrace(pokeReq, pid, addr+uintptr(n), word)\n\t\tif err != nil {\n\t\t\treturn n, err\n\t\t}\n\t\tn += SizeofPtr\n\t\tdata = data[SizeofPtr:]\n\t}\n\n\t// Trailing edge.\n\tif len(data) > 0 {\n\t\tvar buf [SizeofPtr]byte\n\t\terr = ptracePtr(peekReq, pid, addr+uintptr(n), unsafe.Pointer(&buf[0]))\n\t\tif err != nil {\n\t\t\treturn n, err\n\t\t}\n\t\tcopy(buf[0:], data)\n\t\tword := *((*uintptr)(unsafe.Pointer(&buf[0])))\n\t\terr = ptrace(pokeReq, pid, addr+uintptr(n), word)\n\t\tif err != nil {\n\t\t\treturn n, err\n\t\t}\n\t\tn += len(data)\n\t}\n\n\treturn n, nil\n}\n\nfunc PtracePokeText(pid int, addr uintptr, data []byte) (count int, err error) {\n\treturn ptracePoke(PTRACE_POKETEXT, PTRACE_PEEKTEXT, pid, addr, data)\n}\n\nfunc PtracePokeData(pid int, addr uintptr, data []byte) (count int, err error) {\n\treturn ptracePoke(PTRACE_POKEDATA, PTRACE_PEEKDATA, pid, addr, data)\n}\n\nfunc PtracePokeUser(pid int, addr uintptr, data []byte) (count int, err error) {\n\treturn ptracePoke(PTRACE_POKEUSR, PTRACE_PEEKUSR, pid, addr, data)\n}\n\n// elfNT_PRSTATUS is a copy of the debug/elf.NT_PRSTATUS constant so\n// x/sys/unix doesn't need to depend on debug/elf and thus\n// compress/zlib, debug/dwarf, and other packages.\nconst elfNT_PRSTATUS = 1\n\nfunc PtraceGetRegs(pid int, regsout *PtraceRegs) (err error) {\n\tvar iov Iovec\n\tiov.Base = (*byte)(unsafe.Pointer(regsout))\n\tiov.SetLen(int(unsafe.Sizeof(*regsout)))\n\treturn ptracePtr(PTRACE_GETREGSET, pid, uintptr(elfNT_PRSTATUS), unsafe.Pointer(&iov))\n}\n\nfunc PtraceSetRegs(pid int, regs *PtraceRegs) (err error) {\n\tvar iov Iovec\n\tiov.Base = (*byte)(unsafe.Pointer(regs))\n\tiov.SetLen(int(unsafe.Sizeof(*regs)))\n\treturn ptracePtr(PTRACE_SETREGSET, pid, uintptr(elfNT_PRSTATUS), unsafe.Pointer(&iov))\n}\n\nfunc PtraceSetOptions(pid int, options int) (err error) {\n\treturn ptrace(PTRACE_SETOPTIONS, pid, 0, uintptr(options))\n}\n\nfunc PtraceGetEventMsg(pid int) (msg uint, err error) {\n\tvar data _C_long\n\terr = ptracePtr(PTRACE_GETEVENTMSG, pid, 0, unsafe.Pointer(&data))\n\tmsg = uint(data)\n\treturn\n}\n\nfunc PtraceCont(pid int, signal int) (err error) {\n\treturn ptrace(PTRACE_CONT, pid, 0, uintptr(signal))\n}\n\nfunc PtraceSyscall(pid int, signal int) (err error) {\n\treturn ptrace(PTRACE_SYSCALL, pid, 0, uintptr(signal))\n}\n\nfunc PtraceSingleStep(pid int) (err error) { return ptrace(PTRACE_SINGLESTEP, pid, 0, 0) }\n\nfunc PtraceInterrupt(pid int) (err error) { return ptrace(PTRACE_INTERRUPT, pid, 0, 0) }\n\nfunc PtraceAttach(pid int) (err error) { return ptrace(PTRACE_ATTACH, pid, 0, 0) }\n\nfunc PtraceSeize(pid int) (err error) { return ptrace(PTRACE_SEIZE, pid, 0, 0) }\n\nfunc PtraceDetach(pid int) (err error) { return ptrace(PTRACE_DETACH, pid, 0, 0) }\n\n//sys\treboot(magic1 uint, magic2 uint, cmd int, arg string) (err error)\n\nfunc Reboot(cmd int) (err error) {\n\treturn reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, cmd, \"\")\n}\n\nfunc direntIno(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino))\n}\n\nfunc direntReclen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen))\n}\n\nfunc direntNamlen(buf []byte) (uint64, bool) {\n\treclen, ok := direntReclen(buf)\n\tif !ok {\n\t\treturn 0, false\n\t}\n\treturn reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true\n}\n\n//sys\tmount(source string, target string, fstype string, flags uintptr, data *byte) (err error)\n\nfunc Mount(source string, target string, fstype string, flags uintptr, data string) (err error) {\n\t// Certain file systems get rather angry and EINVAL if you give\n\t// them an empty string of data, rather than NULL.\n\tif data == \"\" {\n\t\treturn mount(source, target, fstype, flags, nil)\n\t}\n\tdatap, err := BytePtrFromString(data)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn mount(source, target, fstype, flags, datap)\n}\n\n//sys\tmountSetattr(dirfd int, pathname string, flags uint, attr *MountAttr, size uintptr) (err error) = SYS_MOUNT_SETATTR\n\n// MountSetattr is a wrapper for mount_setattr(2).\n// https://man7.org/linux/man-pages/man2/mount_setattr.2.html\n//\n// Requires kernel >= 5.12.\nfunc MountSetattr(dirfd int, pathname string, flags uint, attr *MountAttr) error {\n\treturn mountSetattr(dirfd, pathname, flags, attr, unsafe.Sizeof(*attr))\n}\n\nfunc Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\treturn sendfile(outfd, infd, offset, count)\n}\n\n// Sendto\n// Recvfrom\n// Socketpair\n\n/*\n * Direct access\n */\n//sys\tAcct(path string) (err error)\n//sys\tAddKey(keyType string, description string, payload []byte, ringid int) (id int, err error)\n//sys\tAdjtimex(buf *Timex) (state int, err error)\n//sysnb\tCapget(hdr *CapUserHeader, data *CapUserData) (err error)\n//sysnb\tCapset(hdr *CapUserHeader, data *CapUserData) (err error)\n//sys\tChdir(path string) (err error)\n//sys\tChroot(path string) (err error)\n//sys\tClockAdjtime(clockid int32, buf *Timex) (state int, err error)\n//sys\tClockGetres(clockid int32, res *Timespec) (err error)\n//sys\tClockGettime(clockid int32, time *Timespec) (err error)\n//sys\tClockSettime(clockid int32, time *Timespec) (err error)\n//sys\tClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error)\n//sys\tClose(fd int) (err error)\n//sys\tCloseRange(first uint, last uint, flags uint) (err error)\n//sys\tCopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error)\n//sys\tDeleteModule(name string, flags int) (err error)\n//sys\tDup(oldfd int) (fd int, err error)\n\nfunc Dup2(oldfd, newfd int) error {\n\treturn Dup3(oldfd, newfd, 0)\n}\n\n//sys\tDup3(oldfd int, newfd int, flags int) (err error)\n//sysnb\tEpollCreate1(flag int) (fd int, err error)\n//sysnb\tEpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error)\n//sys\tEventfd(initval uint, flags int) (fd int, err error) = SYS_EVENTFD2\n//sys\tExit(code int) = SYS_EXIT_GROUP\n//sys\tFallocate(fd int, mode uint32, off int64, len int64) (err error)\n//sys\tFchdir(fd int) (err error)\n//sys\tFchmod(fd int, mode uint32) (err error)\n//sys\tFchownat(dirfd int, path string, uid int, gid int, flags int) (err error)\n//sys\tFdatasync(fd int) (err error)\n//sys\tFgetxattr(fd int, attr string, dest []byte) (sz int, err error)\n//sys\tFinitModule(fd int, params string, flags int) (err error)\n//sys\tFlistxattr(fd int, dest []byte) (sz int, err error)\n//sys\tFlock(fd int, how int) (err error)\n//sys\tFremovexattr(fd int, attr string) (err error)\n//sys\tFsetxattr(fd int, attr string, dest []byte, flags int) (err error)\n//sys\tFsync(fd int) (err error)\n//sys\tFsmount(fd int, flags int, mountAttrs int) (fsfd int, err error)\n//sys\tFsopen(fsName string, flags int) (fd int, err error)\n//sys\tFspick(dirfd int, pathName string, flags int) (fd int, err error)\n\n//sys\tfsconfig(fd int, cmd uint, key *byte, value *byte, aux int) (err error)\n\nfunc fsconfigCommon(fd int, cmd uint, key string, value *byte, aux int) (err error) {\n\tvar keyp *byte\n\tif keyp, err = BytePtrFromString(key); err != nil {\n\t\treturn\n\t}\n\treturn fsconfig(fd, cmd, keyp, value, aux)\n}\n\n// FsconfigSetFlag is equivalent to fsconfig(2) called\n// with cmd == FSCONFIG_SET_FLAG.\n//\n// fd is the filesystem context to act upon.\n// key the parameter key to set.\nfunc FsconfigSetFlag(fd int, key string) (err error) {\n\treturn fsconfigCommon(fd, FSCONFIG_SET_FLAG, key, nil, 0)\n}\n\n// FsconfigSetString is equivalent to fsconfig(2) called\n// with cmd == FSCONFIG_SET_STRING.\n//\n// fd is the filesystem context to act upon.\n// key the parameter key to set.\n// value is the parameter value to set.\nfunc FsconfigSetString(fd int, key string, value string) (err error) {\n\tvar valuep *byte\n\tif valuep, err = BytePtrFromString(value); err != nil {\n\t\treturn\n\t}\n\treturn fsconfigCommon(fd, FSCONFIG_SET_STRING, key, valuep, 0)\n}\n\n// FsconfigSetBinary is equivalent to fsconfig(2) called\n// with cmd == FSCONFIG_SET_BINARY.\n//\n// fd is the filesystem context to act upon.\n// key the parameter key to set.\n// value is the parameter value to set.\nfunc FsconfigSetBinary(fd int, key string, value []byte) (err error) {\n\tif len(value) == 0 {\n\t\treturn EINVAL\n\t}\n\treturn fsconfigCommon(fd, FSCONFIG_SET_BINARY, key, &value[0], len(value))\n}\n\n// FsconfigSetPath is equivalent to fsconfig(2) called\n// with cmd == FSCONFIG_SET_PATH.\n//\n// fd is the filesystem context to act upon.\n// key the parameter key to set.\n// path is a non-empty path for specified key.\n// atfd is a file descriptor at which to start lookup from or AT_FDCWD.\nfunc FsconfigSetPath(fd int, key string, path string, atfd int) (err error) {\n\tvar valuep *byte\n\tif valuep, err = BytePtrFromString(path); err != nil {\n\t\treturn\n\t}\n\treturn fsconfigCommon(fd, FSCONFIG_SET_PATH, key, valuep, atfd)\n}\n\n// FsconfigSetPathEmpty is equivalent to fsconfig(2) called\n// with cmd == FSCONFIG_SET_PATH_EMPTY. The same as\n// FconfigSetPath but with AT_PATH_EMPTY implied.\nfunc FsconfigSetPathEmpty(fd int, key string, path string, atfd int) (err error) {\n\tvar valuep *byte\n\tif valuep, err = BytePtrFromString(path); err != nil {\n\t\treturn\n\t}\n\treturn fsconfigCommon(fd, FSCONFIG_SET_PATH_EMPTY, key, valuep, atfd)\n}\n\n// FsconfigSetFd is equivalent to fsconfig(2) called\n// with cmd == FSCONFIG_SET_FD.\n//\n// fd is the filesystem context to act upon.\n// key the parameter key to set.\n// value is a file descriptor to be assigned to specified key.\nfunc FsconfigSetFd(fd int, key string, value int) (err error) {\n\treturn fsconfigCommon(fd, FSCONFIG_SET_FD, key, nil, value)\n}\n\n// FsconfigCreate is equivalent to fsconfig(2) called\n// with cmd == FSCONFIG_CMD_CREATE.\n//\n// fd is the filesystem context to act upon.\nfunc FsconfigCreate(fd int) (err error) {\n\treturn fsconfig(fd, FSCONFIG_CMD_CREATE, nil, nil, 0)\n}\n\n// FsconfigReconfigure is equivalent to fsconfig(2) called\n// with cmd == FSCONFIG_CMD_RECONFIGURE.\n//\n// fd is the filesystem context to act upon.\nfunc FsconfigReconfigure(fd int) (err error) {\n\treturn fsconfig(fd, FSCONFIG_CMD_RECONFIGURE, nil, nil, 0)\n}\n\n//sys\tGetdents(fd int, buf []byte) (n int, err error) = SYS_GETDENTS64\n//sysnb\tGetpgid(pid int) (pgid int, err error)\n\nfunc Getpgrp() (pid int) {\n\tpid, _ = Getpgid(0)\n\treturn\n}\n\n//sysnb\tGetpid() (pid int)\n//sysnb\tGetppid() (ppid int)\n//sys\tGetpriority(which int, who int) (prio int, err error)\n\nfunc Getrandom(buf []byte, flags int) (n int, err error) {\n\tvdsoRet, supported := vgetrandom(buf, uint32(flags))\n\tif supported {\n\t\tif vdsoRet < 0 {\n\t\t\treturn 0, errnoErr(syscall.Errno(-vdsoRet))\n\t\t}\n\t\treturn vdsoRet, nil\n\t}\n\tvar p *byte\n\tif len(buf) > 0 {\n\t\tp = &buf[0]\n\t}\n\tr, _, e := Syscall(SYS_GETRANDOM, uintptr(unsafe.Pointer(p)), uintptr(len(buf)), uintptr(flags))\n\tif e != 0 {\n\t\treturn 0, errnoErr(e)\n\t}\n\treturn int(r), nil\n}\n\n//sysnb\tGetrusage(who int, rusage *Rusage) (err error)\n//sysnb\tGetsid(pid int) (sid int, err error)\n//sysnb\tGettid() (tid int)\n//sys\tGetxattr(path string, attr string, dest []byte) (sz int, err error)\n//sys\tInitModule(moduleImage []byte, params string) (err error)\n//sys\tInotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error)\n//sysnb\tInotifyInit1(flags int) (fd int, err error)\n//sysnb\tInotifyRmWatch(fd int, watchdesc uint32) (success int, err error)\n//sysnb\tKill(pid int, sig syscall.Signal) (err error)\n//sys\tKlogctl(typ int, buf []byte) (n int, err error) = SYS_SYSLOG\n//sys\tLgetxattr(path string, attr string, dest []byte) (sz int, err error)\n//sys\tListxattr(path string, dest []byte) (sz int, err error)\n//sys\tLlistxattr(path string, dest []byte) (sz int, err error)\n//sys\tLremovexattr(path string, attr string) (err error)\n//sys\tLsetxattr(path string, attr string, data []byte, flags int) (err error)\n//sys\tMemfdCreate(name string, flags int) (fd int, err error)\n//sys\tMkdirat(dirfd int, path string, mode uint32) (err error)\n//sys\tMknodat(dirfd int, path string, mode uint32, dev int) (err error)\n//sys\tMoveMount(fromDirfd int, fromPathName string, toDirfd int, toPathName string, flags int) (err error)\n//sys\tNanosleep(time *Timespec, leftover *Timespec) (err error)\n//sys\tOpenTree(dfd int, fileName string, flags uint) (r int, err error)\n//sys\tPerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error)\n//sys\tPivotRoot(newroot string, putold string) (err error) = SYS_PIVOT_ROOT\n//sys\tPrctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error)\n//sys\tpselect6(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *sigset_argpack) (n int, err error)\n//sys\tread(fd int, p []byte) (n int, err error)\n//sys\tRemovexattr(path string, attr string) (err error)\n//sys\tRenameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error)\n//sys\tRequestKey(keyType string, description string, callback string, destRingid int) (id int, err error)\n//sys\tSetdomainname(p []byte) (err error)\n//sys\tSethostname(p []byte) (err error)\n//sysnb\tSetpgid(pid int, pgid int) (err error)\n//sysnb\tSetsid() (pid int, err error)\n//sysnb\tSettimeofday(tv *Timeval) (err error)\n//sys\tSetns(fd int, nstype int) (err error)\n\n//go:linkname syscall_prlimit syscall.prlimit\nfunc syscall_prlimit(pid, resource int, newlimit, old *syscall.Rlimit) error\n\nfunc Prlimit(pid, resource int, newlimit, old *Rlimit) error {\n\t// Just call the syscall version, because as of Go 1.21\n\t// it will affect starting a new process.\n\treturn syscall_prlimit(pid, resource, (*syscall.Rlimit)(newlimit), (*syscall.Rlimit)(old))\n}\n\n// PrctlRetInt performs a prctl operation specified by option and further\n// optional arguments arg2 through arg5 depending on option. It returns a\n// non-negative integer that is returned by the prctl syscall.\nfunc PrctlRetInt(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (int, error) {\n\tret, _, err := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)\n\tif err != 0 {\n\t\treturn 0, err\n\t}\n\treturn int(ret), nil\n}\n\nfunc Setuid(uid int) (err error) {\n\treturn syscall.Setuid(uid)\n}\n\nfunc Setgid(gid int) (err error) {\n\treturn syscall.Setgid(gid)\n}\n\nfunc Setreuid(ruid, euid int) (err error) {\n\treturn syscall.Setreuid(ruid, euid)\n}\n\nfunc Setregid(rgid, egid int) (err error) {\n\treturn syscall.Setregid(rgid, egid)\n}\n\nfunc Setresuid(ruid, euid, suid int) (err error) {\n\treturn syscall.Setresuid(ruid, euid, suid)\n}\n\nfunc Setresgid(rgid, egid, sgid int) (err error) {\n\treturn syscall.Setresgid(rgid, egid, sgid)\n}\n\n// SetfsgidRetGid sets fsgid for current thread and returns previous fsgid set.\n// setfsgid(2) will return a non-nil error only if its caller lacks CAP_SETUID capability.\n// If the call fails due to other reasons, current fsgid will be returned.\nfunc SetfsgidRetGid(gid int) (int, error) {\n\treturn setfsgid(gid)\n}\n\n// SetfsuidRetUid sets fsuid for current thread and returns previous fsuid set.\n// setfsgid(2) will return a non-nil error only if its caller lacks CAP_SETUID capability\n// If the call fails due to other reasons, current fsuid will be returned.\nfunc SetfsuidRetUid(uid int) (int, error) {\n\treturn setfsuid(uid)\n}\n\nfunc Setfsgid(gid int) error {\n\t_, err := setfsgid(gid)\n\treturn err\n}\n\nfunc Setfsuid(uid int) error {\n\t_, err := setfsuid(uid)\n\treturn err\n}\n\nfunc Signalfd(fd int, sigmask *Sigset_t, flags int) (newfd int, err error) {\n\treturn signalfd(fd, sigmask, _C__NSIG/8, flags)\n}\n\n//sys\tSetpriority(which int, who int, prio int) (err error)\n//sys\tSetxattr(path string, attr string, data []byte, flags int) (err error)\n//sys\tsignalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) = SYS_SIGNALFD4\n//sys\tStatx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error)\n//sys\tSync()\n//sys\tSyncfs(fd int) (err error)\n//sysnb\tSysinfo(info *Sysinfo_t) (err error)\n//sys\tTee(rfd int, wfd int, len int, flags int) (n int64, err error)\n//sysnb\tTimerfdCreate(clockid int, flags int) (fd int, err error)\n//sysnb\tTimerfdGettime(fd int, currValue *ItimerSpec) (err error)\n//sysnb\tTimerfdSettime(fd int, flags int, newValue *ItimerSpec, oldValue *ItimerSpec) (err error)\n//sysnb\tTgkill(tgid int, tid int, sig syscall.Signal) (err error)\n//sysnb\tTimes(tms *Tms) (ticks uintptr, err error)\n//sysnb\tUmask(mask int) (oldmask int)\n//sysnb\tUname(buf *Utsname) (err error)\n//sys\tUnmount(target string, flags int) (err error) = SYS_UMOUNT2\n//sys\tUnshare(flags int) (err error)\n//sys\twrite(fd int, p []byte) (n int, err error)\n//sys\texitThread(code int) (err error) = SYS_EXIT\n//sys\treadv(fd int, iovs []Iovec) (n int, err error) = SYS_READV\n//sys\twritev(fd int, iovs []Iovec) (n int, err error) = SYS_WRITEV\n//sys\tpreadv(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) = SYS_PREADV\n//sys\tpwritev(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) = SYS_PWRITEV\n//sys\tpreadv2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) = SYS_PREADV2\n//sys\tpwritev2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) = SYS_PWRITEV2\n\n// minIovec is the size of the small initial allocation used by\n// Readv, Writev, etc.\n//\n// This small allocation gets stack allocated, which lets the\n// common use case of len(iovs) <= minIovs avoid more expensive\n// heap allocations.\nconst minIovec = 8\n\n// appendBytes converts bs to Iovecs and appends them to vecs.\nfunc appendBytes(vecs []Iovec, bs [][]byte) []Iovec {\n\tfor _, b := range bs {\n\t\tvar v Iovec\n\t\tv.SetLen(len(b))\n\t\tif len(b) > 0 {\n\t\t\tv.Base = &b[0]\n\t\t} else {\n\t\t\tv.Base = (*byte)(unsafe.Pointer(&_zero))\n\t\t}\n\t\tvecs = append(vecs, v)\n\t}\n\treturn vecs\n}\n\n// offs2lohi splits offs into its low and high order bits.\nfunc offs2lohi(offs int64) (lo, hi uintptr) {\n\tconst longBits = SizeofLong * 8\n\treturn uintptr(offs), uintptr(uint64(offs) >> (longBits - 1) >> 1) // two shifts to avoid false positive in vet\n}\n\nfunc Readv(fd int, iovs [][]byte) (n int, err error) {\n\tiovecs := make([]Iovec, 0, minIovec)\n\tiovecs = appendBytes(iovecs, iovs)\n\tn, err = readv(fd, iovecs)\n\treadvRacedetect(iovecs, n, err)\n\treturn n, err\n}\n\nfunc Preadv(fd int, iovs [][]byte, offset int64) (n int, err error) {\n\tiovecs := make([]Iovec, 0, minIovec)\n\tiovecs = appendBytes(iovecs, iovs)\n\tlo, hi := offs2lohi(offset)\n\tn, err = preadv(fd, iovecs, lo, hi)\n\treadvRacedetect(iovecs, n, err)\n\treturn n, err\n}\n\nfunc Preadv2(fd int, iovs [][]byte, offset int64, flags int) (n int, err error) {\n\tiovecs := make([]Iovec, 0, minIovec)\n\tiovecs = appendBytes(iovecs, iovs)\n\tlo, hi := offs2lohi(offset)\n\tn, err = preadv2(fd, iovecs, lo, hi, flags)\n\treadvRacedetect(iovecs, n, err)\n\treturn n, err\n}\n\nfunc readvRacedetect(iovecs []Iovec, n int, err error) {\n\tif !raceenabled {\n\t\treturn\n\t}\n\tfor i := 0; n > 0 && i < len(iovecs); i++ {\n\t\tm := int(iovecs[i].Len)\n\t\tif m > n {\n\t\t\tm = n\n\t\t}\n\t\tn -= m\n\t\tif m > 0 {\n\t\t\traceWriteRange(unsafe.Pointer(iovecs[i].Base), m)\n\t\t}\n\t}\n\tif err == nil {\n\t\traceAcquire(unsafe.Pointer(&ioSync))\n\t}\n}\n\nfunc Writev(fd int, iovs [][]byte) (n int, err error) {\n\tiovecs := make([]Iovec, 0, minIovec)\n\tiovecs = appendBytes(iovecs, iovs)\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\tn, err = writev(fd, iovecs)\n\twritevRacedetect(iovecs, n)\n\treturn n, err\n}\n\nfunc Pwritev(fd int, iovs [][]byte, offset int64) (n int, err error) {\n\tiovecs := make([]Iovec, 0, minIovec)\n\tiovecs = appendBytes(iovecs, iovs)\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\tlo, hi := offs2lohi(offset)\n\tn, err = pwritev(fd, iovecs, lo, hi)\n\twritevRacedetect(iovecs, n)\n\treturn n, err\n}\n\nfunc Pwritev2(fd int, iovs [][]byte, offset int64, flags int) (n int, err error) {\n\tiovecs := make([]Iovec, 0, minIovec)\n\tiovecs = appendBytes(iovecs, iovs)\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\tlo, hi := offs2lohi(offset)\n\tn, err = pwritev2(fd, iovecs, lo, hi, flags)\n\twritevRacedetect(iovecs, n)\n\treturn n, err\n}\n\nfunc writevRacedetect(iovecs []Iovec, n int) {\n\tif !raceenabled {\n\t\treturn\n\t}\n\tfor i := 0; n > 0 && i < len(iovecs); i++ {\n\t\tm := int(iovecs[i].Len)\n\t\tif m > n {\n\t\t\tm = n\n\t\t}\n\t\tn -= m\n\t\tif m > 0 {\n\t\t\traceReadRange(unsafe.Pointer(iovecs[i].Base), m)\n\t\t}\n\t}\n}\n\n// mmap varies by architecture; see syscall_linux_*.go.\n//sys\tmunmap(addr uintptr, length uintptr) (err error)\n//sys\tmremap(oldaddr uintptr, oldlength uintptr, newlength uintptr, flags int, newaddr uintptr) (xaddr uintptr, err error)\n//sys\tMadvise(b []byte, advice int) (err error)\n//sys\tMprotect(b []byte, prot int) (err error)\n//sys\tMlock(b []byte) (err error)\n//sys\tMlockall(flags int) (err error)\n//sys\tMsync(b []byte, flags int) (err error)\n//sys\tMunlock(b []byte) (err error)\n//sys\tMunlockall() (err error)\n\nconst (\n\tmremapFixed     = MREMAP_FIXED\n\tmremapDontunmap = MREMAP_DONTUNMAP\n\tmremapMaymove   = MREMAP_MAYMOVE\n)\n\n// Vmsplice splices user pages from a slice of Iovecs into a pipe specified by fd,\n// using the specified flags.\nfunc Vmsplice(fd int, iovs []Iovec, flags int) (int, error) {\n\tvar p unsafe.Pointer\n\tif len(iovs) > 0 {\n\t\tp = unsafe.Pointer(&iovs[0])\n\t}\n\n\tn, _, errno := Syscall6(SYS_VMSPLICE, uintptr(fd), uintptr(p), uintptr(len(iovs)), uintptr(flags), 0, 0)\n\tif errno != 0 {\n\t\treturn 0, syscall.Errno(errno)\n\t}\n\n\treturn int(n), nil\n}\n\nfunc isGroupMember(gid int) bool {\n\tgroups, err := Getgroups()\n\tif err != nil {\n\t\treturn false\n\t}\n\n\tfor _, g := range groups {\n\t\tif g == gid {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc isCapDacOverrideSet() bool {\n\thdr := CapUserHeader{Version: LINUX_CAPABILITY_VERSION_3}\n\tdata := [2]CapUserData{}\n\terr := Capget(&hdr, &data[0])\n\n\treturn err == nil && data[0].Effective&(1<<CAP_DAC_OVERRIDE) != 0\n}\n\n//sys\tfaccessat(dirfd int, path string, mode uint32) (err error)\n//sys\tFaccessat2(dirfd int, path string, mode uint32, flags int) (err error)\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tif flags == 0 {\n\t\treturn faccessat(dirfd, path, mode)\n\t}\n\n\tif err := Faccessat2(dirfd, path, mode, flags); err != ENOSYS && err != EPERM {\n\t\treturn err\n\t}\n\n\t// The Linux kernel faccessat system call does not take any flags.\n\t// The glibc faccessat implements the flags itself; see\n\t// https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysv/linux/faccessat.c;hb=HEAD\n\t// Because people naturally expect syscall.Faccessat to act\n\t// like C faccessat, we do the same.\n\n\tif flags & ^(AT_SYMLINK_NOFOLLOW|AT_EACCESS) != 0 {\n\t\treturn EINVAL\n\t}\n\n\tvar st Stat_t\n\tif err := Fstatat(dirfd, path, &st, flags&AT_SYMLINK_NOFOLLOW); err != nil {\n\t\treturn err\n\t}\n\n\tmode &= 7\n\tif mode == 0 {\n\t\treturn nil\n\t}\n\n\tvar uid int\n\tif flags&AT_EACCESS != 0 {\n\t\tuid = Geteuid()\n\t\tif uid != 0 && isCapDacOverrideSet() {\n\t\t\t// If CAP_DAC_OVERRIDE is set, file access check is\n\t\t\t// done by the kernel in the same way as for root\n\t\t\t// (see generic_permission() in the Linux sources).\n\t\t\tuid = 0\n\t\t}\n\t} else {\n\t\tuid = Getuid()\n\t}\n\n\tif uid == 0 {\n\t\tif mode&1 == 0 {\n\t\t\t// Root can read and write any file.\n\t\t\treturn nil\n\t\t}\n\t\tif st.Mode&0111 != 0 {\n\t\t\t// Root can execute any file that anybody can execute.\n\t\t\treturn nil\n\t\t}\n\t\treturn EACCES\n\t}\n\n\tvar fmode uint32\n\tif uint32(uid) == st.Uid {\n\t\tfmode = (st.Mode >> 6) & 7\n\t} else {\n\t\tvar gid int\n\t\tif flags&AT_EACCESS != 0 {\n\t\t\tgid = Getegid()\n\t\t} else {\n\t\t\tgid = Getgid()\n\t\t}\n\n\t\tif uint32(gid) == st.Gid || isGroupMember(int(st.Gid)) {\n\t\t\tfmode = (st.Mode >> 3) & 7\n\t\t} else {\n\t\t\tfmode = st.Mode & 7\n\t\t}\n\t}\n\n\tif fmode&mode == mode {\n\t\treturn nil\n\t}\n\n\treturn EACCES\n}\n\n//sys\tnameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) = SYS_NAME_TO_HANDLE_AT\n//sys\topenByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) = SYS_OPEN_BY_HANDLE_AT\n\n// fileHandle is the argument to nameToHandleAt and openByHandleAt. We\n// originally tried to generate it via unix/linux/types.go with \"type\n// fileHandle C.struct_file_handle\" but that generated empty structs\n// for mips64 and mips64le. Instead, hard code it for now (it's the\n// same everywhere else) until the mips64 generator issue is fixed.\ntype fileHandle struct {\n\tBytes uint32\n\tType  int32\n}\n\n// FileHandle represents the C struct file_handle used by\n// name_to_handle_at (see NameToHandleAt) and open_by_handle_at (see\n// OpenByHandleAt).\ntype FileHandle struct {\n\t*fileHandle\n}\n\n// NewFileHandle constructs a FileHandle.\nfunc NewFileHandle(handleType int32, handle []byte) FileHandle {\n\tconst hdrSize = unsafe.Sizeof(fileHandle{})\n\tbuf := make([]byte, hdrSize+uintptr(len(handle)))\n\tcopy(buf[hdrSize:], handle)\n\tfh := (*fileHandle)(unsafe.Pointer(&buf[0]))\n\tfh.Type = handleType\n\tfh.Bytes = uint32(len(handle))\n\treturn FileHandle{fh}\n}\n\nfunc (fh *FileHandle) Size() int   { return int(fh.fileHandle.Bytes) }\nfunc (fh *FileHandle) Type() int32 { return fh.fileHandle.Type }\nfunc (fh *FileHandle) Bytes() []byte {\n\tn := fh.Size()\n\tif n == 0 {\n\t\treturn nil\n\t}\n\treturn unsafe.Slice((*byte)(unsafe.Pointer(uintptr(unsafe.Pointer(&fh.fileHandle.Type))+4)), n)\n}\n\n// NameToHandleAt wraps the name_to_handle_at system call; it obtains\n// a handle for a path name.\nfunc NameToHandleAt(dirfd int, path string, flags int) (handle FileHandle, mountID int, err error) {\n\tvar mid _C_int\n\t// Try first with a small buffer, assuming the handle will\n\t// only be 32 bytes.\n\tsize := uint32(32 + unsafe.Sizeof(fileHandle{}))\n\tdidResize := false\n\tfor {\n\t\tbuf := make([]byte, size)\n\t\tfh := (*fileHandle)(unsafe.Pointer(&buf[0]))\n\t\tfh.Bytes = size - uint32(unsafe.Sizeof(fileHandle{}))\n\t\terr = nameToHandleAt(dirfd, path, fh, &mid, flags)\n\t\tif err == EOVERFLOW {\n\t\t\tif didResize {\n\t\t\t\t// We shouldn't need to resize more than once\n\t\t\t\treturn\n\t\t\t}\n\t\t\tdidResize = true\n\t\t\tsize = fh.Bytes + uint32(unsafe.Sizeof(fileHandle{}))\n\t\t\tcontinue\n\t\t}\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t\treturn FileHandle{fh}, int(mid), nil\n\t}\n}\n\n// OpenByHandleAt wraps the open_by_handle_at system call; it opens a\n// file via a handle as previously returned by NameToHandleAt.\nfunc OpenByHandleAt(mountFD int, handle FileHandle, flags int) (fd int, err error) {\n\treturn openByHandleAt(mountFD, handle.fileHandle, flags)\n}\n\n// Klogset wraps the sys_syslog system call; it sets console_loglevel to\n// the value specified by arg and passes a dummy pointer to bufp.\nfunc Klogset(typ int, arg int) (err error) {\n\tvar p unsafe.Pointer\n\t_, _, errno := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(p), uintptr(arg))\n\tif errno != 0 {\n\t\treturn errnoErr(errno)\n\t}\n\treturn nil\n}\n\n// RemoteIovec is Iovec with the pointer replaced with an integer.\n// It is used for ProcessVMReadv and ProcessVMWritev, where the pointer\n// refers to a location in a different process' address space, which\n// would confuse the Go garbage collector.\ntype RemoteIovec struct {\n\tBase uintptr\n\tLen  int\n}\n\n//sys\tProcessVMReadv(pid int, localIov []Iovec, remoteIov []RemoteIovec, flags uint) (n int, err error) = SYS_PROCESS_VM_READV\n//sys\tProcessVMWritev(pid int, localIov []Iovec, remoteIov []RemoteIovec, flags uint) (n int, err error) = SYS_PROCESS_VM_WRITEV\n\n//sys\tPidfdOpen(pid int, flags int) (fd int, err error) = SYS_PIDFD_OPEN\n//sys\tPidfdGetfd(pidfd int, targetfd int, flags int) (fd int, err error) = SYS_PIDFD_GETFD\n//sys\tPidfdSendSignal(pidfd int, sig Signal, info *Siginfo, flags int) (err error) = SYS_PIDFD_SEND_SIGNAL\n\n//sys\tshmat(id int, addr uintptr, flag int) (ret uintptr, err error)\n//sys\tshmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error)\n//sys\tshmdt(addr uintptr) (err error)\n//sys\tshmget(key int, size int, flag int) (id int, err error)\n\n//sys\tgetitimer(which int, currValue *Itimerval) (err error)\n//sys\tsetitimer(which int, newValue *Itimerval, oldValue *Itimerval) (err error)\n\n// MakeItimerval creates an Itimerval from interval and value durations.\nfunc MakeItimerval(interval, value time.Duration) Itimerval {\n\treturn Itimerval{\n\t\tInterval: NsecToTimeval(interval.Nanoseconds()),\n\t\tValue:    NsecToTimeval(value.Nanoseconds()),\n\t}\n}\n\n// A value which may be passed to the which parameter for Getitimer and\n// Setitimer.\ntype ItimerWhich int\n\n// Possible which values for Getitimer and Setitimer.\nconst (\n\tItimerReal    ItimerWhich = ITIMER_REAL\n\tItimerVirtual ItimerWhich = ITIMER_VIRTUAL\n\tItimerProf    ItimerWhich = ITIMER_PROF\n)\n\n// Getitimer wraps getitimer(2) to return the current value of the timer\n// specified by which.\nfunc Getitimer(which ItimerWhich) (Itimerval, error) {\n\tvar it Itimerval\n\tif err := getitimer(int(which), &it); err != nil {\n\t\treturn Itimerval{}, err\n\t}\n\n\treturn it, nil\n}\n\n// Setitimer wraps setitimer(2) to arm or disarm the timer specified by which.\n// It returns the previous value of the timer.\n//\n// If the Itimerval argument is the zero value, the timer will be disarmed.\nfunc Setitimer(which ItimerWhich, it Itimerval) (Itimerval, error) {\n\tvar prev Itimerval\n\tif err := setitimer(int(which), &it, &prev); err != nil {\n\t\treturn Itimerval{}, err\n\t}\n\n\treturn prev, nil\n}\n\n//sysnb\trtSigprocmask(how int, set *Sigset_t, oldset *Sigset_t, sigsetsize uintptr) (err error) = SYS_RT_SIGPROCMASK\n\nfunc PthreadSigmask(how int, set, oldset *Sigset_t) error {\n\tif oldset != nil {\n\t\t// Explicitly clear in case Sigset_t is larger than _C__NSIG.\n\t\t*oldset = Sigset_t{}\n\t}\n\treturn rtSigprocmask(how, set, oldset, _C__NSIG/8)\n}\n\n//sysnb\tgetresuid(ruid *_C_int, euid *_C_int, suid *_C_int)\n//sysnb\tgetresgid(rgid *_C_int, egid *_C_int, sgid *_C_int)\n\nfunc Getresuid() (ruid, euid, suid int) {\n\tvar r, e, s _C_int\n\tgetresuid(&r, &e, &s)\n\treturn int(r), int(e), int(s)\n}\n\nfunc Getresgid() (rgid, egid, sgid int) {\n\tvar r, e, s _C_int\n\tgetresgid(&r, &e, &s)\n\treturn int(r), int(e), int(s)\n}\n\n// Pselect is a wrapper around the Linux pselect6 system call.\n// This version does not modify the timeout argument.\nfunc Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\t// Per https://man7.org/linux/man-pages/man2/select.2.html#NOTES,\n\t// The Linux pselect6() system call modifies its timeout argument.\n\t// [Not modifying the argument] is the behavior required by POSIX.1-2001.\n\tvar mutableTimeout *Timespec\n\tif timeout != nil {\n\t\tmutableTimeout = new(Timespec)\n\t\t*mutableTimeout = *timeout\n\t}\n\n\t// The final argument of the pselect6() system call is not a\n\t// sigset_t * pointer, but is instead a structure\n\tvar kernelMask *sigset_argpack\n\tif sigmask != nil {\n\t\twordBits := 32 << (^uintptr(0) >> 63) // see math.intSize\n\n\t\t// A sigset stores one bit per signal,\n\t\t// offset by 1 (because signal 0 does not exist).\n\t\t// So the number of words needed is ⌈__C_NSIG - 1 / wordBits⌉.\n\t\tsigsetWords := (_C__NSIG - 1 + wordBits - 1) / (wordBits)\n\n\t\tsigsetBytes := uintptr(sigsetWords * (wordBits / 8))\n\t\tkernelMask = &sigset_argpack{\n\t\t\tss:    sigmask,\n\t\t\tssLen: sigsetBytes,\n\t\t}\n\t}\n\n\treturn pselect6(nfd, r, w, e, mutableTimeout, kernelMask)\n}\n\n//sys\tschedSetattr(pid int, attr *SchedAttr, flags uint) (err error)\n//sys\tschedGetattr(pid int, attr *SchedAttr, size uint, flags uint) (err error)\n\n// SchedSetAttr is a wrapper for sched_setattr(2) syscall.\n// https://man7.org/linux/man-pages/man2/sched_setattr.2.html\nfunc SchedSetAttr(pid int, attr *SchedAttr, flags uint) error {\n\tif attr == nil {\n\t\treturn EINVAL\n\t}\n\tattr.Size = SizeofSchedAttr\n\treturn schedSetattr(pid, attr, flags)\n}\n\n// SchedGetAttr is a wrapper for sched_getattr(2) syscall.\n// https://man7.org/linux/man-pages/man2/sched_getattr.2.html\nfunc SchedGetAttr(pid int, flags uint) (*SchedAttr, error) {\n\tattr := &SchedAttr{}\n\tif err := schedGetattr(pid, attr, SizeofSchedAttr, flags); err != nil {\n\t\treturn nil, err\n\t}\n\treturn attr, nil\n}\n\n//sys\tCachestat(fd uint, crange *CachestatRange, cstat *Cachestat_t, flags uint) (err error)\n//sys\tMseal(b []byte, flags uint) (err error)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_386.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build 386 && linux\n\npackage unix\n\nimport (\n\t\"unsafe\"\n)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: int32(sec), Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: int32(sec), Usec: int32(usec)}\n}\n\n// 64-bit file system and 32-bit uid calls\n// (386 default is 32-bit file system and 16-bit uid).\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64_64\n//sys\tFchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32\n//sys\tFstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64\n//sys\tFstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64\n//sys\tFtruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64\n//sysnb\tGetegid() (egid int) = SYS_GETEGID32\n//sysnb\tGeteuid() (euid int) = SYS_GETEUID32\n//sysnb\tGetgid() (gid int) = SYS_GETGID32\n//sysnb\tGetuid() (uid int) = SYS_GETUID32\n//sys\tIoperm(from int, num int, on int) (err error)\n//sys\tIopl(level int) (err error)\n//sys\tLchown(path string, uid int, gid int) (err error) = SYS_LCHOWN32\n//sys\tLstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64\n//sys\tsetfsgid(gid int) (prev int, err error) = SYS_SETFSGID32\n//sys\tsetfsuid(uid int) (prev int, err error) = SYS_SETFSUID32\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error)\n//sys\tStat(path string, stat *Stat_t) (err error) = SYS_STAT64\n//sys\tSyncFileRange(fd int, off int64, n int64, flags int) (err error)\n//sys\tTruncate(path string, length int64) (err error) = SYS_TRUNCATE64\n//sys\tUstat(dev int, ubuf *Ustat_t) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error) = SYS_GETGROUPS32\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error) = SYS_SETGROUPS32\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT\n\n//sys\tmmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error)\n//sys\tPause() (err error)\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tpage := uintptr(offset / 4096)\n\tif offset != int64(page)*4096 {\n\t\treturn 0, EINVAL\n\t}\n\treturn mmap2(addr, length, prot, flags, fd, page)\n}\n\ntype rlimit32 struct {\n\tCur uint32\n\tMax uint32\n}\n\n//sysnb\tgetrlimit(resource int, rlim *rlimit32) (err error) = SYS_GETRLIMIT\n\nconst rlimInf32 = ^uint32(0)\nconst rlimInf64 = ^uint64(0)\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\terr = Prlimit(0, resource, nil, rlim)\n\tif err != ENOSYS {\n\t\treturn err\n\t}\n\n\trl := rlimit32{}\n\terr = getrlimit(resource, &rl)\n\tif err != nil {\n\t\treturn\n\t}\n\n\tif rl.Cur == rlimInf32 {\n\t\trlim.Cur = rlimInf64\n\t} else {\n\t\trlim.Cur = uint64(rl.Cur)\n\t}\n\n\tif rl.Max == rlimInf32 {\n\t\trlim.Max = rlimInf64\n\t} else {\n\t\trlim.Max = uint64(rl.Max)\n\t}\n\treturn\n}\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tnewoffset, errno := seek(fd, offset, whence)\n\tif errno != 0 {\n\t\treturn 0, errno\n\t}\n\treturn newoffset, nil\n}\n\n//sys\tfutimesat(dirfd int, path string, times *[2]Timeval) (err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n//sysnb\tTime(t *Time_t) (tt Time_t, err error)\n//sys\tUtime(path string, buf *Utimbuf) (err error)\n//sys\tutimes(path string, times *[2]Timeval) (err error)\n\n// On x86 Linux, all the socket calls go through an extra indirection,\n// I think because the 5-register system call interface can't handle\n// the 6-argument calls like sendto and recvfrom. Instead the\n// arguments to the underlying system call are the number below\n// and a pointer to an array of uintptr. We hide the pointer in the\n// socketcall assembly to avoid allocation on every system call.\n\nconst (\n\t// see linux/net.h\n\t_SOCKET      = 1\n\t_BIND        = 2\n\t_CONNECT     = 3\n\t_LISTEN      = 4\n\t_ACCEPT      = 5\n\t_GETSOCKNAME = 6\n\t_GETPEERNAME = 7\n\t_SOCKETPAIR  = 8\n\t_SEND        = 9\n\t_RECV        = 10\n\t_SENDTO      = 11\n\t_RECVFROM    = 12\n\t_SHUTDOWN    = 13\n\t_SETSOCKOPT  = 14\n\t_GETSOCKOPT  = 15\n\t_SENDMSG     = 16\n\t_RECVMSG     = 17\n\t_ACCEPT4     = 18\n\t_RECVMMSG    = 19\n\t_SENDMMSG    = 20\n)\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tfd, e := socketcall(_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc getsockname(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, e := rawsocketcall(_GETSOCKNAME, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc getpeername(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, e := rawsocketcall(_GETPEERNAME, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc socketpair(domain int, typ int, flags int, fd *[2]int32) (err error) {\n\t_, e := rawsocketcall(_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(flags), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, e := socketcall(_BIND, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, e := socketcall(_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tfd, e := rawsocketcall(_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto), 0, 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, e := socketcall(_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, e := socketcall(_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), vallen, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc recvfrom(s int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar base uintptr\n\tif len(p) > 0 {\n\t\tbase = uintptr(unsafe.Pointer(&p[0]))\n\t}\n\tn, e := socketcall(_RECVFROM, uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc sendto(s int, p []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar base uintptr\n\tif len(p) > 0 {\n\t\tbase = uintptr(unsafe.Pointer(&p[0]))\n\t}\n\t_, e := socketcall(_SENDTO, uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tn, e := socketcall(_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tn, e := socketcall(_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc Listen(s int, n int) (err error) {\n\t_, e := socketcall(_LISTEN, uintptr(s), uintptr(n), 0, 0, 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc Shutdown(s, how int) (err error) {\n\t_, e := socketcall(_SHUTDOWN, uintptr(s), uintptr(how), 0, 0, 0, 0)\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tpathp, err := BytePtrFromString(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\t_, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(pathp)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc (r *PtraceRegs) PC() uint64 { return uint64(uint32(r.Eip)) }\n\nfunc (r *PtraceRegs) SetPC(pc uint64) { r.Eip = int32(pc) }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {\n\trsa.Service_name_len = uint32(length)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_alarm.go",
    "content": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && (386 || amd64 || mips || mipsle || mips64 || mipsle || ppc64 || ppc64le || ppc || s390x || sparc64)\n\npackage unix\n\n// SYS_ALARM is not defined on arm or riscv, but is available for other GOARCH\n// values.\n\n//sys\tAlarm(seconds uint) (remaining uint, err error)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_amd64.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build amd64 && linux\n\npackage unix\n\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_NEWFSTATAT\n//sys\tFstatfs(fd int, buf *Statfs_t) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (euid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetrlimit(resource int, rlim *Rlimit) (err error)\n//sysnb\tGetuid() (uid int)\n//sys\tIoperm(from int, num int, on int) (err error)\n//sys\tIopl(level int) (err error)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tListen(s int, n int) (err error)\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\treturn Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW)\n}\n\n//sys\tMemfdSecret(flags int) (fd int, err error)\n//sys\tPause() (err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tvar ts *Timespec\n\tif timeout != nil {\n\t\tts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000}\n\t}\n\treturn pselect6(nfd, r, w, e, ts, nil)\n}\n\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error)\n//sys\tsetfsgid(gid int) (prev int, err error)\n//sys\tsetfsuid(uid int) (prev int, err error)\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\t// Use fstatat, because Android's seccomp policy blocks stat.\n\treturn Fstatat(AT_FDCWD, path, stat, 0)\n}\n\n//sys\tStatfs(path string, buf *Statfs_t) (err error)\n//sys\tSyncFileRange(fd int, off int64, n int64, flags int) (err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\tUstat(dev int, ubuf *Ustat_t) (err error)\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)\n\n//sys\tfutimesat(dirfd int, path string, times *[2]Timeval) (err error)\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\terrno := gettimeofday(tv)\n\tif errno != 0 {\n\t\treturn errno\n\t}\n\treturn nil\n}\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tvar tv Timeval\n\terrno := gettimeofday(&tv)\n\tif errno != 0 {\n\t\treturn 0, errno\n\t}\n\tif t != nil {\n\t\t*t = Time_t(tv.Sec)\n\t}\n\treturn Time_t(tv.Sec), nil\n}\n\n//sys\tUtime(path string, buf *Utimbuf) (err error)\n//sys\tutimes(path string, times *[2]Timeval) (err error)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc (r *PtraceRegs) PC() uint64 { return r.Rip }\n\nfunc (r *PtraceRegs) SetPC(pc uint64) { r.Rip = pc }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint64(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint64(length)\n}\n\nfunc (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {\n\trsa.Service_name_len = uint64(length)\n}\n\n//sys\tkexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)\n\nfunc KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {\n\tcmdlineLen := len(cmdline)\n\tif cmdlineLen > 0 {\n\t\t// Account for the additional NULL byte added by\n\t\t// BytePtrFromString in kexecFileLoad. The kexec_file_load\n\t\t// syscall expects a NULL-terminated string.\n\t\tcmdlineLen++\n\t}\n\treturn kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build amd64 && linux && gc\n\npackage unix\n\nimport \"syscall\"\n\n//go:noescape\nfunc gettimeofday(tv *Timeval) (err syscall.Errno)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_arm.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build arm && linux\n\npackage unix\n\nimport (\n\t\"unsafe\"\n)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: int32(sec), Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: int32(sec), Usec: int32(usec)}\n}\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tnewoffset, errno := seek(fd, offset, whence)\n\tif errno != 0 {\n\t\treturn 0, errno\n\t}\n\treturn newoffset, nil\n}\n\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error) = SYS_GETGROUPS32\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error) = SYS_SETGROUPS32\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tsocketpair(domain int, typ int, flags int, fd *[2]int32) (err error)\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error)\n\n// 64-bit file system and 32-bit uid calls\n// (16-bit uid calls are not always supported in newer kernels)\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)\n//sys\tFchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32\n//sys\tFstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64\n//sys\tFstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64\n//sysnb\tGetegid() (egid int) = SYS_GETEGID32\n//sysnb\tGeteuid() (euid int) = SYS_GETEUID32\n//sysnb\tGetgid() (gid int) = SYS_GETGID32\n//sysnb\tGetuid() (uid int) = SYS_GETUID32\n//sys\tLchown(path string, uid int, gid int) (err error) = SYS_LCHOWN32\n//sys\tListen(s int, n int) (err error)\n//sys\tLstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64\n//sys\tPause() (err error)\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT\n//sys\tsetfsgid(gid int) (prev int, err error) = SYS_SETFSGID32\n//sys\tsetfsuid(uid int) (prev int, err error) = SYS_SETFSUID32\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error)\n//sys\tStat(path string, stat *Stat_t) (err error) = SYS_STAT64\n//sys\tUstat(dev int, ubuf *Ustat_t) (err error)\n\n//sys\tfutimesat(dirfd int, path string, times *[2]Timeval) (err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n\nfunc Time(t *Time_t) (Time_t, error) {\n\tvar tv Timeval\n\terr := Gettimeofday(&tv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tif t != nil {\n\t\t*t = Time_t(tv.Sec)\n\t}\n\treturn Time_t(tv.Sec), nil\n}\n\nfunc Utime(path string, buf *Utimbuf) error {\n\ttv := []Timeval{\n\t\t{Sec: buf.Actime},\n\t\t{Sec: buf.Modtime},\n\t}\n\treturn Utimes(path, tv)\n}\n\n//sys\tutimes(path string, times *[2]Timeval) (err error)\n\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tTruncate(path string, length int64) (err error) = SYS_TRUNCATE64\n//sys\tFtruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_ARM_FADVISE64_64, uintptr(fd), uintptr(advice), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n//sys\tmmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error)\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tpathp, err := BytePtrFromString(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\t_, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(pathp)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tpage := uintptr(offset / 4096)\n\tif offset != int64(page)*4096 {\n\t\treturn 0, EINVAL\n\t}\n\treturn mmap2(addr, length, prot, flags, fd, page)\n}\n\ntype rlimit32 struct {\n\tCur uint32\n\tMax uint32\n}\n\n//sysnb\tgetrlimit(resource int, rlim *rlimit32) (err error) = SYS_UGETRLIMIT\n\nconst rlimInf32 = ^uint32(0)\nconst rlimInf64 = ^uint64(0)\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\terr = Prlimit(0, resource, nil, rlim)\n\tif err != ENOSYS {\n\t\treturn err\n\t}\n\n\trl := rlimit32{}\n\terr = getrlimit(resource, &rl)\n\tif err != nil {\n\t\treturn\n\t}\n\n\tif rl.Cur == rlimInf32 {\n\t\trlim.Cur = rlimInf64\n\t} else {\n\t\trlim.Cur = uint64(rl.Cur)\n\t}\n\n\tif rl.Max == rlimInf32 {\n\t\trlim.Max = rlimInf64\n\t} else {\n\t\trlim.Max = uint64(rl.Max)\n\t}\n\treturn\n}\n\nfunc (r *PtraceRegs) PC() uint64 { return uint64(r.Uregs[15]) }\n\nfunc (r *PtraceRegs) SetPC(pc uint64) { r.Uregs[15] = uint32(pc) }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {\n\trsa.Service_name_len = uint32(length)\n}\n\n//sys\tarmSyncFileRange(fd int, flags int, off int64, n int64) (err error) = SYS_ARM_SYNC_FILE_RANGE\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) error {\n\t// The sync_file_range and arm_sync_file_range syscalls differ only in the\n\t// order of their arguments.\n\treturn armSyncFileRange(fd, flags, off, n)\n}\n\n//sys\tkexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)\n\nfunc KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {\n\tcmdlineLen := len(cmdline)\n\tif cmdlineLen > 0 {\n\t\t// Account for the additional NULL byte added by\n\t\t// BytePtrFromString in kexecFileLoad. The kexec_file_load\n\t\t// syscall expects a NULL-terminated string.\n\t\tcmdlineLen++\n\t}\n\treturn kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_arm64.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build arm64 && linux\n\npackage unix\n\nimport \"unsafe\"\n\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(fd int, path string, stat *Stat_t, flags int) (err error)\n//sys\tFstatfs(fd int, buf *Statfs_t) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (euid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tgetrlimit(resource int, rlim *Rlimit) (err error)\n//sysnb\tGetuid() (uid int)\n//sys\tListen(s int, n int) (err error)\n//sys\tMemfdSecret(flags int) (fd int, err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tvar ts *Timespec\n\tif timeout != nil {\n\t\tts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000}\n\t}\n\treturn pselect6(nfd, r, w, e, ts, nil)\n}\n\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error)\n//sys\tsetfsgid(gid int) (prev int, err error)\n//sys\tsetfsuid(uid int) (prev int, err error)\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\treturn Fstatat(AT_FDCWD, path, stat, 0)\n}\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\treturn Fchownat(AT_FDCWD, path, uid, gid, AT_SYMLINK_NOFOLLOW)\n}\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\treturn Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW)\n}\n\n//sys\tStatfs(path string, buf *Statfs_t) (err error)\n//sys\tSyncFileRange(fd int, off int64, n int64, flags int) (err error)\n//sys\tTruncate(path string, length int64) (err error)\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\treturn ENOSYS\n}\n\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)\n\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc futimesat(dirfd int, path string, tv *[2]Timeval) (err error) {\n\tif tv == nil {\n\t\treturn utimensat(dirfd, path, nil, 0)\n\t}\n\n\tts := []Timespec{\n\t\tNsecToTimespec(TimevalToNsec(tv[0])),\n\t\tNsecToTimespec(TimevalToNsec(tv[1])),\n\t}\n\treturn utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)\n}\n\nfunc Time(t *Time_t) (Time_t, error) {\n\tvar tv Timeval\n\terr := Gettimeofday(&tv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tif t != nil {\n\t\t*t = Time_t(tv.Sec)\n\t}\n\treturn Time_t(tv.Sec), nil\n}\n\nfunc Utime(path string, buf *Utimbuf) error {\n\ttv := []Timeval{\n\t\t{Sec: buf.Actime},\n\t\t{Sec: buf.Modtime},\n\t}\n\treturn Utimes(path, tv)\n}\n\nfunc utimes(path string, tv *[2]Timeval) (err error) {\n\tif tv == nil {\n\t\treturn utimensat(AT_FDCWD, path, nil, 0)\n\t}\n\n\tts := []Timespec{\n\t\tNsecToTimespec(TimevalToNsec(tv[0])),\n\t\tNsecToTimespec(TimevalToNsec(tv[1])),\n\t}\n\treturn utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)\n}\n\n// Getrlimit prefers the prlimit64 system call. See issue 38604.\nfunc Getrlimit(resource int, rlim *Rlimit) error {\n\terr := Prlimit(0, resource, nil, rlim)\n\tif err != ENOSYS {\n\t\treturn err\n\t}\n\treturn getrlimit(resource, rlim)\n}\n\nfunc (r *PtraceRegs) PC() uint64 { return r.Pc }\n\nfunc (r *PtraceRegs) SetPC(pc uint64) { r.Pc = pc }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint64(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint64(length)\n}\n\nfunc (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {\n\trsa.Service_name_len = uint64(length)\n}\n\nfunc Pause() error {\n\t_, err := ppoll(nil, 0, nil, nil)\n\treturn err\n}\n\n//sys\tkexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)\n\nfunc KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {\n\tcmdlineLen := len(cmdline)\n\tif cmdlineLen > 0 {\n\t\t// Account for the additional NULL byte added by\n\t\t// BytePtrFromString in kexecFileLoad. The kexec_file_load\n\t\t// syscall expects a NULL-terminated string.\n\t\tcmdlineLen++\n\t}\n\treturn kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)\n}\n\nconst SYS_FSTATAT = SYS_NEWFSTATAT\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_gc.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && gc\n\npackage unix\n\n// SyscallNoError may be used instead of Syscall for syscalls that don't fail.\nfunc SyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr)\n\n// RawSyscallNoError may be used instead of RawSyscall for syscalls that don't\n// fail.\nfunc RawSyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && gc && 386\n\npackage unix\n\nimport \"syscall\"\n\n// Underlying system call writes to newoffset via pointer.\n// Implemented in assembly to avoid allocation.\nfunc seek(fd int, offset int64, whence int) (newoffset int64, err syscall.Errno)\n\nfunc socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno)\nfunc rawsocketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build arm && gc && linux\n\npackage unix\n\nimport \"syscall\"\n\n// Underlying system call writes to newoffset via pointer.\n// Implemented in assembly to avoid allocation.\nfunc seek(fd int, offset int64, whence int) (newoffset int64, err syscall.Errno)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && gccgo && 386\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc seek(fd int, offset int64, whence int) (int64, syscall.Errno) {\n\tvar newoffset int64\n\toffsetLow := uint32(offset & 0xffffffff)\n\toffsetHigh := uint32((offset >> 32) & 0xffffffff)\n\t_, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0)\n\treturn newoffset, err\n}\n\nfunc socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (int, syscall.Errno) {\n\tfd, _, err := Syscall(SYS_SOCKETCALL, uintptr(call), uintptr(unsafe.Pointer(&a0)), 0)\n\treturn int(fd), err\n}\n\nfunc rawsocketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (int, syscall.Errno) {\n\tfd, _, err := RawSyscall(SYS_SOCKETCALL, uintptr(call), uintptr(unsafe.Pointer(&a0)), 0)\n\treturn int(fd), err\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && gccgo && arm\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc seek(fd int, offset int64, whence int) (int64, syscall.Errno) {\n\tvar newoffset int64\n\toffsetLow := uint32(offset & 0xffffffff)\n\toffsetHigh := uint32((offset >> 32) & 0xffffffff)\n\t_, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0)\n\treturn newoffset, err\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_loong64.go",
    "content": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build loong64 && linux\n\npackage unix\n\nimport \"unsafe\"\n\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFstatfs(fd int, buf *Statfs_t) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (euid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetuid() (uid int)\n//sys\tListen(s int, n int) (err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tSeek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tvar ts *Timespec\n\tif timeout != nil {\n\t\tts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000}\n\t}\n\treturn pselect6(nfd, r, w, e, ts, nil)\n}\n\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error)\n//sys\tsetfsgid(gid int) (prev int, err error)\n//sys\tsetfsuid(uid int) (prev int, err error)\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)\n\nfunc timespecFromStatxTimestamp(x StatxTimestamp) Timespec {\n\treturn Timespec{\n\t\tSec:  x.Sec,\n\t\tNsec: int64(x.Nsec),\n\t}\n}\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) error {\n\tvar r Statx_t\n\t// Do it the glibc way, add AT_NO_AUTOMOUNT.\n\tif err := Statx(fd, path, AT_NO_AUTOMOUNT|flags, STATX_BASIC_STATS, &r); err != nil {\n\t\treturn err\n\t}\n\n\tstat.Dev = Mkdev(r.Dev_major, r.Dev_minor)\n\tstat.Ino = r.Ino\n\tstat.Mode = uint32(r.Mode)\n\tstat.Nlink = r.Nlink\n\tstat.Uid = r.Uid\n\tstat.Gid = r.Gid\n\tstat.Rdev = Mkdev(r.Rdev_major, r.Rdev_minor)\n\t// hope we don't get to process files so large to overflow these size\n\t// fields...\n\tstat.Size = int64(r.Size)\n\tstat.Blksize = int32(r.Blksize)\n\tstat.Blocks = int64(r.Blocks)\n\tstat.Atim = timespecFromStatxTimestamp(r.Atime)\n\tstat.Mtim = timespecFromStatxTimestamp(r.Mtime)\n\tstat.Ctim = timespecFromStatxTimestamp(r.Ctime)\n\n\treturn nil\n}\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\treturn Fstatat(fd, \"\", stat, AT_EMPTY_PATH)\n}\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\treturn Fstatat(AT_FDCWD, path, stat, 0)\n}\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\treturn Fchownat(AT_FDCWD, path, uid, gid, AT_SYMLINK_NOFOLLOW)\n}\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\treturn Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW)\n}\n\n//sys\tStatfs(path string, buf *Statfs_t) (err error)\n//sys\tSyncFileRange(fd int, off int64, n int64, flags int) (err error)\n//sys\tTruncate(path string, length int64) (err error)\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\treturn ENOSYS\n}\n\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)\n\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\terr = Prlimit(0, resource, nil, rlim)\n\treturn\n}\n\nfunc futimesat(dirfd int, path string, tv *[2]Timeval) (err error) {\n\tif tv == nil {\n\t\treturn utimensat(dirfd, path, nil, 0)\n\t}\n\n\tts := []Timespec{\n\t\tNsecToTimespec(TimevalToNsec(tv[0])),\n\t\tNsecToTimespec(TimevalToNsec(tv[1])),\n\t}\n\treturn utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)\n}\n\nfunc Time(t *Time_t) (Time_t, error) {\n\tvar tv Timeval\n\terr := Gettimeofday(&tv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tif t != nil {\n\t\t*t = Time_t(tv.Sec)\n\t}\n\treturn Time_t(tv.Sec), nil\n}\n\nfunc Utime(path string, buf *Utimbuf) error {\n\ttv := []Timeval{\n\t\t{Sec: buf.Actime},\n\t\t{Sec: buf.Modtime},\n\t}\n\treturn Utimes(path, tv)\n}\n\nfunc utimes(path string, tv *[2]Timeval) (err error) {\n\tif tv == nil {\n\t\treturn utimensat(AT_FDCWD, path, nil, 0)\n\t}\n\n\tts := []Timespec{\n\t\tNsecToTimespec(TimevalToNsec(tv[0])),\n\t\tNsecToTimespec(TimevalToNsec(tv[1])),\n\t}\n\treturn utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)\n}\n\nfunc (r *PtraceRegs) PC() uint64 { return r.Era }\n\nfunc (r *PtraceRegs) SetPC(era uint64) { r.Era = era }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint64(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint64(length)\n}\n\nfunc (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {\n\trsa.Service_name_len = uint64(length)\n}\n\nfunc Pause() error {\n\t_, err := ppoll(nil, 0, nil, nil)\n\treturn err\n}\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\treturn Renameat2(olddirfd, oldpath, newdirfd, newpath, 0)\n}\n\n//sys\tkexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)\n\nfunc KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {\n\tcmdlineLen := len(cmdline)\n\tif cmdlineLen > 0 {\n\t\t// Account for the additional NULL byte added by\n\t\t// BytePtrFromString in kexecFileLoad. The kexec_file_load\n\t\t// syscall expects a NULL-terminated string.\n\t\tcmdlineLen++\n\t}\n\treturn kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)\n}\n\nconst SYS_FSTATAT = SYS_NEWFSTATAT\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && (mips64 || mips64le)\n\npackage unix\n\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFstatfs(fd int, buf *Statfs_t) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (euid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetrlimit(resource int, rlim *Rlimit) (err error)\n//sysnb\tGetuid() (uid int)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tListen(s int, n int) (err error)\n//sys\tPause() (err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tvar ts *Timespec\n\tif timeout != nil {\n\t\tts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000}\n\t}\n\treturn pselect6(nfd, r, w, e, ts, nil)\n}\n\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error)\n//sys\tsetfsgid(gid int) (prev int, err error)\n//sys\tsetfsuid(uid int) (prev int, err error)\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)\n//sys\tStatfs(path string, buf *Statfs_t) (err error)\n//sys\tSyncFileRange(fd int, off int64, n int64, flags int) (err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\tUstat(dev int, ubuf *Ustat_t) (err error)\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)\n\n//sys\tfutimesat(dirfd int, path string, times *[2]Timeval) (err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tvar tv Timeval\n\terr = Gettimeofday(&tv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tif t != nil {\n\t\t*t = Time_t(tv.Sec)\n\t}\n\treturn Time_t(tv.Sec), nil\n}\n\n//sys\tUtime(path string, buf *Utimbuf) (err error)\n//sys\tutimes(path string, times *[2]Timeval) (err error)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc Ioperm(from int, num int, on int) (err error) {\n\treturn ENOSYS\n}\n\nfunc Iopl(level int) (err error) {\n\treturn ENOSYS\n}\n\ntype stat_t struct {\n\tDev        uint32\n\tPad0       [3]int32\n\tIno        uint64\n\tMode       uint32\n\tNlink      uint32\n\tUid        uint32\n\tGid        uint32\n\tRdev       uint32\n\tPad1       [3]uint32\n\tSize       int64\n\tAtime      uint32\n\tAtime_nsec uint32\n\tMtime      uint32\n\tMtime_nsec uint32\n\tCtime      uint32\n\tCtime_nsec uint32\n\tBlksize    uint32\n\tPad2       uint32\n\tBlocks     int64\n}\n\n//sys\tfstat(fd int, st *stat_t) (err error)\n//sys\tfstatat(dirfd int, path string, st *stat_t, flags int) (err error) = SYS_NEWFSTATAT\n//sys\tlstat(path string, st *stat_t) (err error)\n//sys\tstat(path string, st *stat_t) (err error)\n\nfunc Fstat(fd int, s *Stat_t) (err error) {\n\tst := &stat_t{}\n\terr = fstat(fd, st)\n\tfillStat_t(s, st)\n\treturn\n}\n\nfunc Fstatat(dirfd int, path string, s *Stat_t, flags int) (err error) {\n\tst := &stat_t{}\n\terr = fstatat(dirfd, path, st, flags)\n\tfillStat_t(s, st)\n\treturn\n}\n\nfunc Lstat(path string, s *Stat_t) (err error) {\n\tst := &stat_t{}\n\terr = lstat(path, st)\n\tfillStat_t(s, st)\n\treturn\n}\n\nfunc Stat(path string, s *Stat_t) (err error) {\n\tst := &stat_t{}\n\terr = stat(path, st)\n\tfillStat_t(s, st)\n\treturn\n}\n\nfunc fillStat_t(s *Stat_t, st *stat_t) {\n\ts.Dev = st.Dev\n\ts.Ino = st.Ino\n\ts.Mode = st.Mode\n\ts.Nlink = st.Nlink\n\ts.Uid = st.Uid\n\ts.Gid = st.Gid\n\ts.Rdev = st.Rdev\n\ts.Size = st.Size\n\ts.Atim = Timespec{int64(st.Atime), int64(st.Atime_nsec)}\n\ts.Mtim = Timespec{int64(st.Mtime), int64(st.Mtime_nsec)}\n\ts.Ctim = Timespec{int64(st.Ctime), int64(st.Ctime_nsec)}\n\ts.Blksize = st.Blksize\n\ts.Blocks = st.Blocks\n}\n\nfunc (r *PtraceRegs) PC() uint64 { return r.Epc }\n\nfunc (r *PtraceRegs) SetPC(pc uint64) { r.Epc = pc }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint64(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint64(length)\n}\n\nfunc (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {\n\trsa.Service_name_len = uint64(length)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && (mips || mipsle)\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)\n\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFtruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (euid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetuid() (uid int)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tListen(s int, n int) (err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64\n//sys\tsetfsgid(gid int) (prev int, err error)\n//sys\tsetfsuid(uid int) (prev int, err error)\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error)\n//sys\tSyncFileRange(fd int, off int64, n int64, flags int) (err error)\n//sys\tTruncate(path string, length int64) (err error) = SYS_TRUNCATE64\n//sys\tUstat(dev int, ubuf *Ustat_t) (err error)\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error)\n\n//sys\tIoperm(from int, num int, on int) (err error)\n//sys\tIopl(level int) (err error)\n\n//sys\tfutimesat(dirfd int, path string, times *[2]Timeval) (err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n//sysnb\tTime(t *Time_t) (tt Time_t, err error)\n//sys\tUtime(path string, buf *Utimbuf) (err error)\n//sys\tutimes(path string, times *[2]Timeval) (err error)\n\n//sys\tLstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64\n//sys\tFstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64\n//sys\tFstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64\n//sys\tStat(path string, stat *Stat_t) (err error) = SYS_STAT64\n\n//sys\tPause() (err error)\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))\n\tif e != 0 {\n\t\terr = errnoErr(e)\n\t}\n\treturn\n}\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tp, err := BytePtrFromString(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\t_, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(p)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))\n\tif e != 0 {\n\t\terr = errnoErr(e)\n\t}\n\treturn\n}\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\t_, _, e := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offset>>32), uintptr(offset), uintptr(unsafe.Pointer(&off)), uintptr(whence), 0)\n\tif e != 0 {\n\t\terr = errnoErr(e)\n\t}\n\treturn\n}\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: int32(sec), Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: int32(sec), Usec: int32(usec)}\n}\n\n//sys\tmmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error)\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tpage := uintptr(offset / 4096)\n\tif offset != int64(page)*4096 {\n\t\treturn 0, EINVAL\n\t}\n\treturn mmap2(addr, length, prot, flags, fd, page)\n}\n\nconst rlimInf32 = ^uint32(0)\nconst rlimInf64 = ^uint64(0)\n\ntype rlimit32 struct {\n\tCur uint32\n\tMax uint32\n}\n\n//sysnb\tgetrlimit(resource int, rlim *rlimit32) (err error) = SYS_GETRLIMIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\terr = Prlimit(0, resource, nil, rlim)\n\tif err != ENOSYS {\n\t\treturn err\n\t}\n\n\trl := rlimit32{}\n\terr = getrlimit(resource, &rl)\n\tif err != nil {\n\t\treturn\n\t}\n\n\tif rl.Cur == rlimInf32 {\n\t\trlim.Cur = rlimInf64\n\t} else {\n\t\trlim.Cur = uint64(rl.Cur)\n\t}\n\n\tif rl.Max == rlimInf32 {\n\t\trlim.Max = rlimInf64\n\t} else {\n\t\trlim.Max = uint64(rl.Max)\n\t}\n\treturn\n}\n\nfunc (r *PtraceRegs) PC() uint64 { return r.Epc }\n\nfunc (r *PtraceRegs) SetPC(pc uint64) { r.Epc = pc }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {\n\trsa.Service_name_len = uint32(length)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_ppc.go",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && ppc\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64\n//sys\tFstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64\n//sys\tFtruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (euid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetuid() (uid int)\n//sys\tIoperm(from int, num int, on int) (err error)\n//sys\tIopl(level int) (err error)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tListen(s int, n int) (err error)\n//sys\tLstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64\n//sys\tPause() (err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64\n//sys\tsetfsgid(gid int) (prev int, err error)\n//sys\tsetfsuid(uid int) (prev int, err error)\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error)\n//sys\tStat(path string, stat *Stat_t) (err error) = SYS_STAT64\n//sys\tTruncate(path string, length int64) (err error) = SYS_TRUNCATE64\n//sys\tUstat(dev int, ubuf *Ustat_t) (err error)\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error)\n\n//sys\tfutimesat(dirfd int, path string, times *[2]Timeval) (err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n//sysnb\tTime(t *Time_t) (tt Time_t, err error)\n//sys\tUtime(path string, buf *Utimbuf) (err error)\n//sys\tutimes(path string, times *[2]Timeval) (err error)\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64_64, uintptr(fd), uintptr(advice), uintptr(offset>>32), uintptr(offset), uintptr(length>>32), uintptr(length))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc seek(fd int, offset int64, whence int) (int64, syscall.Errno) {\n\tvar newoffset int64\n\toffsetLow := uint32(offset & 0xffffffff)\n\toffsetHigh := uint32((offset >> 32) & 0xffffffff)\n\t_, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0)\n\treturn newoffset, err\n}\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tnewoffset, errno := seek(fd, offset, whence)\n\tif errno != 0 {\n\t\treturn 0, errno\n\t}\n\treturn newoffset, nil\n}\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tpathp, err := BytePtrFromString(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\t_, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(pathp)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))\n\tif e != 0 {\n\t\terr = e\n\t}\n\treturn\n}\n\n//sys\tmmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error)\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tpage := uintptr(offset / 4096)\n\tif offset != int64(page)*4096 {\n\t\treturn 0, EINVAL\n\t}\n\treturn mmap2(addr, length, prot, flags, fd, page)\n}\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: int32(sec), Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: int32(sec), Usec: int32(usec)}\n}\n\ntype rlimit32 struct {\n\tCur uint32\n\tMax uint32\n}\n\n//sysnb\tgetrlimit(resource int, rlim *rlimit32) (err error) = SYS_UGETRLIMIT\n\nconst rlimInf32 = ^uint32(0)\nconst rlimInf64 = ^uint64(0)\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\terr = Prlimit(0, resource, nil, rlim)\n\tif err != ENOSYS {\n\t\treturn err\n\t}\n\n\trl := rlimit32{}\n\terr = getrlimit(resource, &rl)\n\tif err != nil {\n\t\treturn\n\t}\n\n\tif rl.Cur == rlimInf32 {\n\t\trlim.Cur = rlimInf64\n\t} else {\n\t\trlim.Cur = uint64(rl.Cur)\n\t}\n\n\tif rl.Max == rlimInf32 {\n\t\trlim.Max = rlimInf64\n\t} else {\n\t\trlim.Max = uint64(rl.Max)\n\t}\n\treturn\n}\n\nfunc (r *PtraceRegs) PC() uint32 { return r.Nip }\n\nfunc (r *PtraceRegs) SetPC(pc uint32) { r.Nip = pc }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\nfunc (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {\n\trsa.Service_name_len = uint32(length)\n}\n\n//sys\tsyncFileRange2(fd int, flags int, off int64, n int64) (err error) = SYS_SYNC_FILE_RANGE2\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) error {\n\t// The sync_file_range and sync_file_range2 syscalls differ only in the\n\t// order of their arguments.\n\treturn syncFileRange2(fd, flags, off, n)\n}\n\n//sys\tkexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)\n\nfunc KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {\n\tcmdlineLen := len(cmdline)\n\tif cmdlineLen > 0 {\n\t\t// Account for the additional NULL byte added by\n\t\t// BytePtrFromString in kexecFileLoad. The kexec_file_load\n\t\t// syscall expects a NULL-terminated string.\n\t\tcmdlineLen++\n\t}\n\treturn kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && (ppc64 || ppc64le)\n\npackage unix\n\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_NEWFSTATAT\n//sys\tFstatfs(fd int, buf *Statfs_t) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (euid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetrlimit(resource int, rlim *Rlimit) (err error) = SYS_UGETRLIMIT\n//sysnb\tGetuid() (uid int)\n//sys\tIoperm(from int, num int, on int) (err error)\n//sys\tIopl(level int) (err error)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tListen(s int, n int) (err error)\n//sys\tLstat(path string, stat *Stat_t) (err error)\n//sys\tPause() (err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error)\n//sys\tsetfsgid(gid int) (prev int, err error)\n//sys\tsetfsuid(uid int) (prev int, err error)\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)\n//sys\tStat(path string, stat *Stat_t) (err error)\n//sys\tStatfs(path string, buf *Statfs_t) (err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\tUstat(dev int, ubuf *Ustat_t) (err error)\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)\n\n//sys\tfutimesat(dirfd int, path string, times *[2]Timeval) (err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n//sysnb\tTime(t *Time_t) (tt Time_t, err error)\n//sys\tUtime(path string, buf *Utimbuf) (err error)\n//sys\tutimes(path string, times *[2]Timeval) (err error)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc (r *PtraceRegs) PC() uint64 { return r.Nip }\n\nfunc (r *PtraceRegs) SetPC(pc uint64) { r.Nip = pc }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint64(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint64(length)\n}\n\nfunc (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {\n\trsa.Service_name_len = uint64(length)\n}\n\n//sys\tsyncFileRange2(fd int, flags int, off int64, n int64) (err error) = SYS_SYNC_FILE_RANGE2\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) error {\n\t// The sync_file_range and sync_file_range2 syscalls differ only in the\n\t// order of their arguments.\n\treturn syncFileRange2(fd, flags, off, n)\n}\n\n//sys\tkexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)\n\nfunc KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {\n\tcmdlineLen := len(cmdline)\n\tif cmdlineLen > 0 {\n\t\t// Account for the additional NULL byte added by\n\t\t// BytePtrFromString in kexecFileLoad. The kexec_file_load\n\t\t// syscall expects a NULL-terminated string.\n\t\tcmdlineLen++\n\t}\n\treturn kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build riscv64 && linux\n\npackage unix\n\nimport \"unsafe\"\n\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(fd int, path string, stat *Stat_t, flags int) (err error)\n//sys\tFstatfs(fd int, buf *Statfs_t) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (euid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetrlimit(resource int, rlim *Rlimit) (err error)\n//sysnb\tGetuid() (uid int)\n//sys\tListen(s int, n int) (err error)\n//sys\tMemfdSecret(flags int) (fd int, err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tSeek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tvar ts *Timespec\n\tif timeout != nil {\n\t\tts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000}\n\t}\n\treturn pselect6(nfd, r, w, e, ts, nil)\n}\n\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error)\n//sys\tsetfsgid(gid int) (prev int, err error)\n//sys\tsetfsuid(uid int) (prev int, err error)\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\treturn Fstatat(AT_FDCWD, path, stat, 0)\n}\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\treturn Fchownat(AT_FDCWD, path, uid, gid, AT_SYMLINK_NOFOLLOW)\n}\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\treturn Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW)\n}\n\n//sys\tStatfs(path string, buf *Statfs_t) (err error)\n//sys\tSyncFileRange(fd int, off int64, n int64, flags int) (err error)\n//sys\tTruncate(path string, length int64) (err error)\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\treturn ENOSYS\n}\n\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)\n\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc futimesat(dirfd int, path string, tv *[2]Timeval) (err error) {\n\tif tv == nil {\n\t\treturn utimensat(dirfd, path, nil, 0)\n\t}\n\n\tts := []Timespec{\n\t\tNsecToTimespec(TimevalToNsec(tv[0])),\n\t\tNsecToTimespec(TimevalToNsec(tv[1])),\n\t}\n\treturn utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)\n}\n\nfunc Time(t *Time_t) (Time_t, error) {\n\tvar tv Timeval\n\terr := Gettimeofday(&tv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tif t != nil {\n\t\t*t = Time_t(tv.Sec)\n\t}\n\treturn Time_t(tv.Sec), nil\n}\n\nfunc Utime(path string, buf *Utimbuf) error {\n\ttv := []Timeval{\n\t\t{Sec: buf.Actime},\n\t\t{Sec: buf.Modtime},\n\t}\n\treturn Utimes(path, tv)\n}\n\nfunc utimes(path string, tv *[2]Timeval) (err error) {\n\tif tv == nil {\n\t\treturn utimensat(AT_FDCWD, path, nil, 0)\n\t}\n\n\tts := []Timespec{\n\t\tNsecToTimespec(TimevalToNsec(tv[0])),\n\t\tNsecToTimespec(TimevalToNsec(tv[1])),\n\t}\n\treturn utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)\n}\n\nfunc (r *PtraceRegs) PC() uint64 { return r.Pc }\n\nfunc (r *PtraceRegs) SetPC(pc uint64) { r.Pc = pc }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint64(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint64(length)\n}\n\nfunc (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {\n\trsa.Service_name_len = uint64(length)\n}\n\nfunc Pause() error {\n\t_, err := ppoll(nil, 0, nil, nil)\n\treturn err\n}\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\treturn Renameat2(olddirfd, oldpath, newdirfd, newpath, 0)\n}\n\n//sys\tkexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)\n\nfunc KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {\n\tcmdlineLen := len(cmdline)\n\tif cmdlineLen > 0 {\n\t\t// Account for the additional NULL byte added by\n\t\t// BytePtrFromString in kexecFileLoad. The kexec_file_load\n\t\t// syscall expects a NULL-terminated string.\n\t\tcmdlineLen++\n\t}\n\treturn kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)\n}\n\n//sys\triscvHWProbe(pairs []RISCVHWProbePairs, cpuCount uintptr, cpus *CPUSet, flags uint) (err error)\n\nfunc RISCVHWProbe(pairs []RISCVHWProbePairs, set *CPUSet, flags uint) (err error) {\n\tvar setSize uintptr\n\n\tif set != nil {\n\t\tsetSize = uintptr(unsafe.Sizeof(*set))\n\t}\n\treturn riscvHWProbe(pairs, setSize, set, flags)\n}\n\nconst SYS_FSTATAT = SYS_NEWFSTATAT\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_s390x.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build s390x && linux\n\npackage unix\n\nimport (\n\t\"unsafe\"\n)\n\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_NEWFSTATAT\n//sys\tFstatfs(fd int, buf *Statfs_t) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (euid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetrlimit(resource int, rlim *Rlimit) (err error)\n//sysnb\tGetuid() (uid int)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tLstat(path string, stat *Stat_t) (err error)\n//sys\tPause() (err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error)\n//sys\tsetfsgid(gid int) (prev int, err error)\n//sys\tsetfsuid(uid int) (prev int, err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)\n//sys\tStat(path string, stat *Stat_t) (err error)\n//sys\tStatfs(path string, buf *Statfs_t) (err error)\n//sys\tSyncFileRange(fd int, off int64, n int64, flags int) (err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\tUstat(dev int, ubuf *Ustat_t) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n\n//sys\tfutimesat(dirfd int, path string, times *[2]Timeval) (err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tvar tv Timeval\n\terr = Gettimeofday(&tv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tif t != nil {\n\t\t*t = Time_t(tv.Sec)\n\t}\n\treturn Time_t(tv.Sec), nil\n}\n\n//sys\tUtime(path string, buf *Utimbuf) (err error)\n//sys\tutimes(path string, times *[2]Timeval) (err error)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc Ioperm(from int, num int, on int) (err error) {\n\treturn ENOSYS\n}\n\nfunc Iopl(level int) (err error) {\n\treturn ENOSYS\n}\n\nfunc (r *PtraceRegs) PC() uint64 { return r.Psw.Addr }\n\nfunc (r *PtraceRegs) SetPC(pc uint64) { r.Psw.Addr = pc }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint64(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint64(length)\n}\n\nfunc (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {\n\trsa.Service_name_len = uint64(length)\n}\n\n// Linux on s390x uses the old mmap interface, which requires arguments to be passed in a struct.\n// mmap2 also requires arguments to be passed in a struct; it is currently not exposed in <asm/unistd.h>.\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tmmap_args := [6]uintptr{addr, length, uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)}\n\tr0, _, e1 := Syscall(SYS_MMAP, uintptr(unsafe.Pointer(&mmap_args[0])), 0, 0)\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// On s390x Linux, all the socket calls go through an extra indirection.\n// The arguments to the underlying system call (SYS_SOCKETCALL) are the\n// number below and a pointer to an array of uintptr.\nconst (\n\t// see linux/net.h\n\tnetSocket      = 1\n\tnetBind        = 2\n\tnetConnect     = 3\n\tnetListen      = 4\n\tnetAccept      = 5\n\tnetGetSockName = 6\n\tnetGetPeerName = 7\n\tnetSocketPair  = 8\n\tnetSend        = 9\n\tnetRecv        = 10\n\tnetSendTo      = 11\n\tnetRecvFrom    = 12\n\tnetShutdown    = 13\n\tnetSetSockOpt  = 14\n\tnetGetSockOpt  = 15\n\tnetSendMsg     = 16\n\tnetRecvMsg     = 17\n\tnetAccept4     = 18\n\tnetRecvMMsg    = 19\n\tnetSendMMsg    = 20\n)\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (int, error) {\n\targs := [4]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags)}\n\tfd, _, err := Syscall(SYS_SOCKETCALL, netAccept4, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn 0, err\n\t}\n\treturn int(fd), nil\n}\n\nfunc getsockname(s int, rsa *RawSockaddrAny, addrlen *_Socklen) error {\n\targs := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))}\n\t_, _, err := RawSyscall(SYS_SOCKETCALL, netGetSockName, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc getpeername(s int, rsa *RawSockaddrAny, addrlen *_Socklen) error {\n\targs := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))}\n\t_, _, err := RawSyscall(SYS_SOCKETCALL, netGetPeerName, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc socketpair(domain int, typ int, flags int, fd *[2]int32) error {\n\targs := [4]uintptr{uintptr(domain), uintptr(typ), uintptr(flags), uintptr(unsafe.Pointer(fd))}\n\t_, _, err := RawSyscall(SYS_SOCKETCALL, netSocketPair, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) error {\n\targs := [3]uintptr{uintptr(s), uintptr(addr), uintptr(addrlen)}\n\t_, _, err := Syscall(SYS_SOCKETCALL, netBind, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) error {\n\targs := [3]uintptr{uintptr(s), uintptr(addr), uintptr(addrlen)}\n\t_, _, err := Syscall(SYS_SOCKETCALL, netConnect, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc socket(domain int, typ int, proto int) (int, error) {\n\targs := [3]uintptr{uintptr(domain), uintptr(typ), uintptr(proto)}\n\tfd, _, err := RawSyscall(SYS_SOCKETCALL, netSocket, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn 0, err\n\t}\n\treturn int(fd), nil\n}\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) error {\n\targs := [5]uintptr{uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen))}\n\t_, _, err := Syscall(SYS_SOCKETCALL, netGetSockOpt, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) error {\n\targs := [5]uintptr{uintptr(s), uintptr(level), uintptr(name), uintptr(val), vallen}\n\t_, _, err := Syscall(SYS_SOCKETCALL, netSetSockOpt, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc recvfrom(s int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (int, error) {\n\tvar base uintptr\n\tif len(p) > 0 {\n\t\tbase = uintptr(unsafe.Pointer(&p[0]))\n\t}\n\targs := [6]uintptr{uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))}\n\tn, _, err := Syscall(SYS_SOCKETCALL, netRecvFrom, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn 0, err\n\t}\n\treturn int(n), nil\n}\n\nfunc sendto(s int, p []byte, flags int, to unsafe.Pointer, addrlen _Socklen) error {\n\tvar base uintptr\n\tif len(p) > 0 {\n\t\tbase = uintptr(unsafe.Pointer(&p[0]))\n\t}\n\targs := [6]uintptr{uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(to), uintptr(addrlen)}\n\t_, _, err := Syscall(SYS_SOCKETCALL, netSendTo, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (int, error) {\n\targs := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)}\n\tn, _, err := Syscall(SYS_SOCKETCALL, netRecvMsg, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn 0, err\n\t}\n\treturn int(n), nil\n}\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (int, error) {\n\targs := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)}\n\tn, _, err := Syscall(SYS_SOCKETCALL, netSendMsg, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn 0, err\n\t}\n\treturn int(n), nil\n}\n\nfunc Listen(s int, n int) error {\n\targs := [2]uintptr{uintptr(s), uintptr(n)}\n\t_, _, err := Syscall(SYS_SOCKETCALL, netListen, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc Shutdown(s, how int) error {\n\targs := [2]uintptr{uintptr(s), uintptr(how)}\n\t_, _, err := Syscall(SYS_SOCKETCALL, netShutdown, uintptr(unsafe.Pointer(&args)), 0)\n\tif err != 0 {\n\t\treturn err\n\t}\n\treturn nil\n}\n\n//sys\tkexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)\n\nfunc KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {\n\tcmdlineLen := len(cmdline)\n\tif cmdlineLen > 0 {\n\t\t// Account for the additional NULL byte added by\n\t\t// BytePtrFromString in kexecFileLoad. The kexec_file_load\n\t\t// syscall expects a NULL-terminated string.\n\t\tcmdlineLen++\n\t}\n\treturn kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build sparc64 && linux\n\npackage unix\n\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64\n//sys\tFstatfs(fd int, buf *Statfs_t) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (euid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetrlimit(resource int, rlim *Rlimit) (err error)\n//sysnb\tGetuid() (uid int)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tListen(s int, n int) (err error)\n//sys\tLstat(path string, stat *Stat_t) (err error)\n//sys\tPause() (err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error)\n//sys\tsetfsgid(gid int) (prev int, err error)\n//sys\tsetfsuid(uid int) (prev int, err error)\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tSplice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)\n//sys\tStat(path string, stat *Stat_t) (err error)\n//sys\tStatfs(path string, buf *Statfs_t) (err error)\n//sys\tSyncFileRange(fd int, off int64, n int64, flags int) (err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)\n\nfunc Ioperm(from int, num int, on int) (err error) {\n\treturn ENOSYS\n}\n\nfunc Iopl(level int) (err error) {\n\treturn ENOSYS\n}\n\n//sys\tfutimesat(dirfd int, path string, times *[2]Timeval) (err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tvar tv Timeval\n\terr = Gettimeofday(&tv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tif t != nil {\n\t\t*t = Time_t(tv.Sec)\n\t}\n\treturn Time_t(tv.Sec), nil\n}\n\n//sys\tUtime(path string, buf *Utimbuf) (err error)\n//sys\tutimes(path string, times *[2]Timeval) (err error)\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: int32(usec)}\n}\n\nfunc (r *PtraceRegs) PC() uint64 { return r.Tpc }\n\nfunc (r *PtraceRegs) SetPC(pc uint64) { r.Tpc = pc }\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint64(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint64(length)\n}\n\nfunc (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {\n\trsa.Service_name_len = uint64(length)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_netbsd.go",
    "content": "// Copyright 2009,2010 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// NetBSD system calls.\n// This file is compiled as ordinary Go code,\n// but it is also input to mksyscall,\n// which parses the //sys lines and generates system call stubs.\n// Note that sometimes we use a lowercase //sys name and wrap\n// it in our own nicer implementation, either here or in\n// syscall_bsd.go or syscall_unix.go.\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets.\ntype SockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n\traw    RawSockaddrDatalink\n}\n\nfunc anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {\n\treturn nil, EAFNOSUPPORT\n}\n\nfunc Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)\n\nfunc sysctlNodes(mib []_C_int) (nodes []Sysctlnode, err error) {\n\tvar olen uintptr\n\n\t// Get a list of all sysctl nodes below the given MIB by performing\n\t// a sysctl for the given MIB with CTL_QUERY appended.\n\tmib = append(mib, CTL_QUERY)\n\tqnode := Sysctlnode{Flags: SYSCTL_VERS_1}\n\tqp := (*byte)(unsafe.Pointer(&qnode))\n\tsz := unsafe.Sizeof(qnode)\n\tif err = sysctl(mib, nil, &olen, qp, sz); err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Now that we know the size, get the actual nodes.\n\tnodes = make([]Sysctlnode, olen/sz)\n\tnp := (*byte)(unsafe.Pointer(&nodes[0]))\n\tif err = sysctl(mib, np, &olen, qp, sz); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn nodes, nil\n}\n\nfunc nametomib(name string) (mib []_C_int, err error) {\n\t// Split name into components.\n\tvar parts []string\n\tlast := 0\n\tfor i := 0; i < len(name); i++ {\n\t\tif name[i] == '.' {\n\t\t\tparts = append(parts, name[last:i])\n\t\t\tlast = i + 1\n\t\t}\n\t}\n\tparts = append(parts, name[last:])\n\n\t// Discover the nodes and construct the MIB OID.\n\tfor partno, part := range parts {\n\t\tnodes, err := sysctlNodes(mib)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tfor _, node := range nodes {\n\t\t\tn := make([]byte, 0)\n\t\t\tfor i := range node.Name {\n\t\t\t\tif node.Name[i] != 0 {\n\t\t\t\t\tn = append(n, byte(node.Name[i]))\n\t\t\t\t}\n\t\t\t}\n\t\t\tif string(n) == part {\n\t\t\t\tmib = append(mib, _C_int(node.Num))\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif len(mib) != partno+1 {\n\t\t\treturn nil, EINVAL\n\t\t}\n\t}\n\n\treturn mib, nil\n}\n\nfunc direntIno(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno))\n}\n\nfunc direntReclen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen))\n}\n\nfunc direntNamlen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen))\n}\n\nfunc SysctlUvmexp(name string) (*Uvmexp, error) {\n\tmib, err := sysctlmib(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tn := uintptr(SizeofUvmexp)\n\tvar u Uvmexp\n\tif err := sysctl(mib, (*byte)(unsafe.Pointer(&u)), &n, nil, 0); err != nil {\n\t\treturn nil, err\n\t}\n\treturn &u, nil\n}\n\nfunc Pipe(p []int) (err error) {\n\treturn Pipe2(p, 0)\n}\n\n//sysnb\tpipe2(p *[2]_C_int, flags int) (err error)\n\nfunc Pipe2(p []int, flags int) error {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\terr := pipe2(&pp, flags)\n\tif err == nil {\n\t\tp[0] = int(pp[0])\n\t\tp[1] = int(pp[1])\n\t}\n\treturn err\n}\n\n//sys\tGetdents(fd int, buf []byte) (n int, err error)\n\nfunc Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {\n\tn, err = Getdents(fd, buf)\n\tif err != nil || basep == nil {\n\t\treturn\n\t}\n\n\tvar off int64\n\toff, err = Seek(fd, 0, 1 /* SEEK_CUR */)\n\tif err != nil {\n\t\t*basep = ^uintptr(0)\n\t\treturn\n\t}\n\t*basep = uintptr(off)\n\tif unsafe.Sizeof(*basep) == 8 {\n\t\treturn\n\t}\n\tif off>>32 != 0 {\n\t\t// We can't stuff the offset back into a uintptr, so any\n\t\t// future calls would be suspect. Generate an error.\n\t\t// EIO is allowed by getdirentries.\n\t\terr = EIO\n\t}\n\treturn\n}\n\n//sys\tGetcwd(buf []byte) (n int, err error) = SYS___GETCWD\n\n// TODO\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\treturn -1, ENOSYS\n}\n\n//sys\tioctl(fd int, req uint, arg uintptr) (err error)\n//sys\tioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL\n\n//sys\tsysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL\n\nfunc IoctlGetPtmget(fd int, req uint) (*Ptmget, error) {\n\tvar value Ptmget\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&value))\n\treturn &value, err\n}\n\nfunc Uname(uname *Utsname) error {\n\tmib := []_C_int{CTL_KERN, KERN_OSTYPE}\n\tn := unsafe.Sizeof(uname.Sysname)\n\tif err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_HOSTNAME}\n\tn = unsafe.Sizeof(uname.Nodename)\n\tif err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_OSRELEASE}\n\tn = unsafe.Sizeof(uname.Release)\n\tif err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_VERSION}\n\tn = unsafe.Sizeof(uname.Version)\n\tif err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\t// The version might have newlines or tabs in it, convert them to\n\t// spaces.\n\tfor i, b := range uname.Version {\n\t\tif b == '\\n' || b == '\\t' {\n\t\t\tif i == len(uname.Version)-1 {\n\t\t\t\tuname.Version[i] = 0\n\t\t\t} else {\n\t\t\t\tuname.Version[i] = ' '\n\t\t\t}\n\t\t}\n\t}\n\n\tmib = []_C_int{CTL_HW, HW_MACHINE}\n\tn = unsafe.Sizeof(uname.Machine)\n\tif err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\treturn sendfile(outfd, infd, offset, count)\n}\n\nfunc Fstatvfs(fd int, buf *Statvfs_t) (err error) {\n\treturn Fstatvfs1(fd, buf, ST_WAIT)\n}\n\nfunc Statvfs(path string, buf *Statvfs_t) (err error) {\n\treturn Statvfs1(path, buf, ST_WAIT)\n}\n\n/*\n * Exposed directly\n */\n//sys\tAccess(path string, mode uint32) (err error)\n//sys\tAdjtime(delta *Timeval, olddelta *Timeval) (err error)\n//sys\tChdir(path string) (err error)\n//sys\tChflags(path string, flags int) (err error)\n//sys\tChmod(path string, mode uint32) (err error)\n//sys\tChown(path string, uid int, gid int) (err error)\n//sys\tChroot(path string) (err error)\n//sys\tClockGettime(clockid int32, time *Timespec) (err error)\n//sys\tClose(fd int) (err error)\n//sys\tDup(fd int) (nfd int, err error)\n//sys\tDup2(from int, to int) (err error)\n//sys\tDup3(from int, to int, flags int) (err error)\n//sys\tExit(code int)\n//sys\tExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error)\n//sys\tExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error)\n//sys\tExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error)\n//sys\tExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error)\n//sys\tExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error)\n//sys\tFaccessat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_POSIX_FADVISE\n//sys\tFchdir(fd int) (err error)\n//sys\tFchflags(fd int, flags int) (err error)\n//sys\tFchmod(fd int, mode uint32) (err error)\n//sys\tFchmodat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFchownat(dirfd int, path string, uid int, gid int, flags int) (err error)\n//sys\tFlock(fd int, how int) (err error)\n//sys\tFpathconf(fd int, name int) (val int, err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(fd int, path string, stat *Stat_t, flags int) (err error)\n//sys\tFstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) = SYS_FSTATVFS1\n//sys\tFsync(fd int) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (uid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetpgid(pid int) (pgid int, err error)\n//sysnb\tGetpgrp() (pgrp int)\n//sysnb\tGetpid() (pid int)\n//sysnb\tGetppid() (ppid int)\n//sys\tGetpriority(which int, who int) (prio int, err error)\n//sysnb\tGetrlimit(which int, lim *Rlimit) (err error)\n//sysnb\tGetrusage(who int, rusage *Rusage) (err error)\n//sysnb\tGetsid(pid int) (sid int, err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n//sysnb\tGetuid() (uid int)\n//sys\tIssetugid() (tainted bool)\n//sys\tKill(pid int, signum syscall.Signal) (err error)\n//sys\tKqueue() (fd int, err error)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tLink(path string, link string) (err error)\n//sys\tLinkat(pathfd int, path string, linkfd int, link string, flags int) (err error)\n//sys\tListen(s int, backlog int) (err error)\n//sys\tLstat(path string, stat *Stat_t) (err error)\n//sys\tMkdir(path string, mode uint32) (err error)\n//sys\tMkdirat(dirfd int, path string, mode uint32) (err error)\n//sys\tMkfifo(path string, mode uint32) (err error)\n//sys\tMkfifoat(dirfd int, path string, mode uint32) (err error)\n//sys\tMknod(path string, mode uint32, dev int) (err error)\n//sys\tMknodat(dirfd int, path string, mode uint32, dev int) (err error)\n//sys\tNanosleep(time *Timespec, leftover *Timespec) (err error)\n//sys\tOpen(path string, mode int, perm uint32) (fd int, err error)\n//sys\tOpenat(dirfd int, path string, mode int, perm uint32) (fd int, err error)\n//sys\tPathconf(path string, name int) (val int, err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error)\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error)\n//sys\tread(fd int, p []byte) (n int, err error)\n//sys\tReadlink(path string, buf []byte) (n int, err error)\n//sys\tReadlinkat(dirfd int, path string, buf []byte) (n int, err error)\n//sys\tRename(from string, to string) (err error)\n//sys\tRenameat(fromfd int, from string, tofd int, to string) (err error)\n//sys\tRevoke(path string) (err error)\n//sys\tRmdir(path string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)\n//sysnb\tSetegid(egid int) (err error)\n//sysnb\tSeteuid(euid int) (err error)\n//sysnb\tSetgid(gid int) (err error)\n//sysnb\tSetpgid(pid int, pgid int) (err error)\n//sys\tSetpriority(which int, who int, prio int) (err error)\n//sysnb\tSetregid(rgid int, egid int) (err error)\n//sysnb\tSetreuid(ruid int, euid int) (err error)\n//sysnb\tSetsid() (pid int, err error)\n//sysnb\tSettimeofday(tp *Timeval) (err error)\n//sysnb\tSetuid(uid int) (err error)\n//sys\tStat(path string, stat *Stat_t) (err error)\n//sys\tStatvfs1(path string, buf *Statvfs_t, flags int) (err error) = SYS_STATVFS1\n//sys\tSymlink(path string, link string) (err error)\n//sys\tSymlinkat(oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSync() (err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\tUmask(newmask int) (oldmask int)\n//sys\tUnlink(path string) (err error)\n//sys\tUnlinkat(dirfd int, path string, flags int) (err error)\n//sys\tUnmount(path string, flags int) (err error)\n//sys\twrite(fd int, p []byte) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error)\n//sys\tmunmap(addr uintptr, length uintptr) (err error)\n//sys\tutimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error)\n\nconst (\n\tmremapFixed     = MAP_FIXED\n\tmremapDontunmap = 0\n\tmremapMaymove   = 0\n)\n\n//sys\tmremapNetBSD(oldp uintptr, oldsize uintptr, newp uintptr, newsize uintptr, flags int) (xaddr uintptr, err error) = SYS_MREMAP\n\nfunc mremap(oldaddr uintptr, oldlength uintptr, newlength uintptr, flags int, newaddr uintptr) (uintptr, error) {\n\treturn mremapNetBSD(oldaddr, oldlength, newaddr, newlength, flags)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_netbsd_386.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build 386 && netbsd\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: int32(usec)}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint32(fd)\n\tk.Filter = uint32(mode)\n\tk.Flags = uint32(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build amd64 && netbsd\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: int32(usec)}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = uint32(mode)\n\tk.Flags = uint32(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go",
    "content": "// Copyright 2013 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build arm && netbsd\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: int32(usec)}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint32(fd)\n\tk.Filter = uint32(mode)\n\tk.Flags = uint32(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build arm64 && netbsd\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: int32(usec)}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = uint32(mode)\n\tk.Flags = uint32(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_openbsd.go",
    "content": "// Copyright 2009,2010 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// OpenBSD system calls.\n// This file is compiled as ordinary Go code,\n// but it is also input to mksyscall,\n// which parses the //sys lines and generates system call stubs.\n// Note that sometimes we use a lowercase //sys name and wrap\n// it in our own nicer implementation, either here or in\n// syscall_bsd.go or syscall_unix.go.\n\npackage unix\n\nimport (\n\t\"sort\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets.\ntype SockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [24]int8\n\traw    RawSockaddrDatalink\n}\n\nfunc anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {\n\treturn nil, EAFNOSUPPORT\n}\n\nfunc Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)\n\nfunc nametomib(name string) (mib []_C_int, err error) {\n\ti := sort.Search(len(sysctlMib), func(i int) bool {\n\t\treturn sysctlMib[i].ctlname >= name\n\t})\n\tif i < len(sysctlMib) && sysctlMib[i].ctlname == name {\n\t\treturn sysctlMib[i].ctloid, nil\n\t}\n\treturn nil, EINVAL\n}\n\nfunc direntIno(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno))\n}\n\nfunc direntReclen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen))\n}\n\nfunc direntNamlen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen))\n}\n\nfunc SysctlUvmexp(name string) (*Uvmexp, error) {\n\tmib, err := sysctlmib(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tn := uintptr(SizeofUvmexp)\n\tvar u Uvmexp\n\tif err := sysctl(mib, (*byte)(unsafe.Pointer(&u)), &n, nil, 0); err != nil {\n\t\treturn nil, err\n\t}\n\tif n != SizeofUvmexp {\n\t\treturn nil, EIO\n\t}\n\treturn &u, nil\n}\n\nfunc Pipe(p []int) (err error) {\n\treturn Pipe2(p, 0)\n}\n\n//sysnb\tpipe2(p *[2]_C_int, flags int) (err error)\n\nfunc Pipe2(p []int, flags int) error {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\terr := pipe2(&pp, flags)\n\tif err == nil {\n\t\tp[0] = int(pp[0])\n\t\tp[1] = int(pp[1])\n\t}\n\treturn err\n}\n\n//sys\tGetdents(fd int, buf []byte) (n int, err error)\n\nfunc Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {\n\tn, err = Getdents(fd, buf)\n\tif err != nil || basep == nil {\n\t\treturn\n\t}\n\n\tvar off int64\n\toff, err = Seek(fd, 0, 1 /* SEEK_CUR */)\n\tif err != nil {\n\t\t*basep = ^uintptr(0)\n\t\treturn\n\t}\n\t*basep = uintptr(off)\n\tif unsafe.Sizeof(*basep) == 8 {\n\t\treturn\n\t}\n\tif off>>32 != 0 {\n\t\t// We can't stuff the offset back into a uintptr, so any\n\t\t// future calls would be suspect. Generate an error.\n\t\t// EIO was allowed by getdirentries.\n\t\terr = EIO\n\t}\n\treturn\n}\n\n//sys\tGetcwd(buf []byte) (n int, err error) = SYS___GETCWD\n\nfunc Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\treturn sendfile(outfd, infd, offset, count)\n}\n\n// TODO\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\treturn -1, ENOSYS\n}\n\nfunc Getfsstat(buf []Statfs_t, flags int) (n int, err error) {\n\tvar bufptr *Statfs_t\n\tvar bufsize uintptr\n\tif len(buf) > 0 {\n\t\tbufptr = &buf[0]\n\t\tbufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf))\n\t}\n\treturn getfsstat(bufptr, bufsize, flags)\n}\n\n//sysnb\tgetresuid(ruid *_C_int, euid *_C_int, suid *_C_int)\n//sysnb\tgetresgid(rgid *_C_int, egid *_C_int, sgid *_C_int)\n\nfunc Getresuid() (ruid, euid, suid int) {\n\tvar r, e, s _C_int\n\tgetresuid(&r, &e, &s)\n\treturn int(r), int(e), int(s)\n}\n\nfunc Getresgid() (rgid, egid, sgid int) {\n\tvar r, e, s _C_int\n\tgetresgid(&r, &e, &s)\n\treturn int(r), int(e), int(s)\n}\n\n//sys\tioctl(fd int, req uint, arg uintptr) (err error)\n//sys\tioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL\n\n//sys\tsysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL\n\n//sys\tfcntl(fd int, cmd int, arg int) (n int, err error)\n//sys\tfcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) = SYS_FCNTL\n\n// FcntlInt performs a fcntl syscall on fd with the provided command and argument.\nfunc FcntlInt(fd uintptr, cmd, arg int) (int, error) {\n\treturn fcntl(int(fd), cmd, arg)\n}\n\n// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command.\nfunc FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error {\n\t_, err := fcntlPtr(int(fd), cmd, unsafe.Pointer(lk))\n\treturn err\n}\n\n//sys\tppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error)\n\nfunc Ppoll(fds []PollFd, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tif len(fds) == 0 {\n\t\treturn ppoll(nil, 0, timeout, sigmask)\n\t}\n\treturn ppoll(&fds[0], len(fds), timeout, sigmask)\n}\n\nfunc Uname(uname *Utsname) error {\n\tmib := []_C_int{CTL_KERN, KERN_OSTYPE}\n\tn := unsafe.Sizeof(uname.Sysname)\n\tif err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_HOSTNAME}\n\tn = unsafe.Sizeof(uname.Nodename)\n\tif err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_OSRELEASE}\n\tn = unsafe.Sizeof(uname.Release)\n\tif err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\tmib = []_C_int{CTL_KERN, KERN_VERSION}\n\tn = unsafe.Sizeof(uname.Version)\n\tif err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\t// The version might have newlines or tabs in it, convert them to\n\t// spaces.\n\tfor i, b := range uname.Version {\n\t\tif b == '\\n' || b == '\\t' {\n\t\t\tif i == len(uname.Version)-1 {\n\t\t\t\tuname.Version[i] = 0\n\t\t\t} else {\n\t\t\t\tuname.Version[i] = ' '\n\t\t\t}\n\t\t}\n\t}\n\n\tmib = []_C_int{CTL_HW, HW_MACHINE}\n\tn = unsafe.Sizeof(uname.Machine)\n\tif err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\n/*\n * Exposed directly\n */\n//sys\tAccess(path string, mode uint32) (err error)\n//sys\tAdjtime(delta *Timeval, olddelta *Timeval) (err error)\n//sys\tChdir(path string) (err error)\n//sys\tChflags(path string, flags int) (err error)\n//sys\tChmod(path string, mode uint32) (err error)\n//sys\tChown(path string, uid int, gid int) (err error)\n//sys\tChroot(path string) (err error)\n//sys\tClockGettime(clockid int32, time *Timespec) (err error)\n//sys\tClose(fd int) (err error)\n//sys\tDup(fd int) (nfd int, err error)\n//sys\tDup2(from int, to int) (err error)\n//sys\tDup3(from int, to int, flags int) (err error)\n//sys\tExit(code int)\n//sys\tFaccessat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchdir(fd int) (err error)\n//sys\tFchflags(fd int, flags int) (err error)\n//sys\tFchmod(fd int, mode uint32) (err error)\n//sys\tFchmodat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFchownat(dirfd int, path string, uid int, gid int, flags int) (err error)\n//sys\tFlock(fd int, how int) (err error)\n//sys\tFpathconf(fd int, name int) (val int, err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(fd int, path string, stat *Stat_t, flags int) (err error)\n//sys\tFstatfs(fd int, stat *Statfs_t) (err error)\n//sys\tFsync(fd int) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sysnb\tGetegid() (egid int)\n//sysnb\tGeteuid() (uid int)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetpgid(pid int) (pgid int, err error)\n//sysnb\tGetpgrp() (pgrp int)\n//sysnb\tGetpid() (pid int)\n//sysnb\tGetppid() (ppid int)\n//sys\tGetpriority(which int, who int) (prio int, err error)\n//sysnb\tGetrlimit(which int, lim *Rlimit) (err error)\n//sysnb\tGetrtable() (rtable int, err error)\n//sysnb\tGetrusage(who int, rusage *Rusage) (err error)\n//sysnb\tGetsid(pid int) (sid int, err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n//sysnb\tGetuid() (uid int)\n//sys\tIssetugid() (tainted bool)\n//sys\tKill(pid int, signum syscall.Signal) (err error)\n//sys\tKqueue() (fd int, err error)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tLink(path string, link string) (err error)\n//sys\tLinkat(pathfd int, path string, linkfd int, link string, flags int) (err error)\n//sys\tListen(s int, backlog int) (err error)\n//sys\tLstat(path string, stat *Stat_t) (err error)\n//sys\tMkdir(path string, mode uint32) (err error)\n//sys\tMkdirat(dirfd int, path string, mode uint32) (err error)\n//sys\tMkfifo(path string, mode uint32) (err error)\n//sys\tMkfifoat(dirfd int, path string, mode uint32) (err error)\n//sys\tMknod(path string, mode uint32, dev int) (err error)\n//sys\tMknodat(dirfd int, path string, mode uint32, dev int) (err error)\n//sys\tMount(fsType string, dir string, flags int, data unsafe.Pointer) (err error)\n//sys\tNanosleep(time *Timespec, leftover *Timespec) (err error)\n//sys\tOpen(path string, mode int, perm uint32) (fd int, err error)\n//sys\tOpenat(dirfd int, path string, mode int, perm uint32) (fd int, err error)\n//sys\tPathconf(path string, name int) (val int, err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error)\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error)\n//sys\tread(fd int, p []byte) (n int, err error)\n//sys\tReadlink(path string, buf []byte) (n int, err error)\n//sys\tReadlinkat(dirfd int, path string, buf []byte) (n int, err error)\n//sys\tRename(from string, to string) (err error)\n//sys\tRenameat(fromfd int, from string, tofd int, to string) (err error)\n//sys\tRevoke(path string) (err error)\n//sys\tRmdir(path string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)\n//sysnb\tSetegid(egid int) (err error)\n//sysnb\tSeteuid(euid int) (err error)\n//sysnb\tSetgid(gid int) (err error)\n//sys\tSetlogin(name string) (err error)\n//sysnb\tSetpgid(pid int, pgid int) (err error)\n//sys\tSetpriority(which int, who int, prio int) (err error)\n//sysnb\tSetregid(rgid int, egid int) (err error)\n//sysnb\tSetreuid(ruid int, euid int) (err error)\n//sysnb\tSetresgid(rgid int, egid int, sgid int) (err error)\n//sysnb\tSetresuid(ruid int, euid int, suid int) (err error)\n//sysnb\tSetrtable(rtable int) (err error)\n//sysnb\tSetsid() (pid int, err error)\n//sysnb\tSettimeofday(tp *Timeval) (err error)\n//sysnb\tSetuid(uid int) (err error)\n//sys\tStat(path string, stat *Stat_t) (err error)\n//sys\tStatfs(path string, stat *Statfs_t) (err error)\n//sys\tSymlink(path string, link string) (err error)\n//sys\tSymlinkat(oldpath string, newdirfd int, newpath string) (err error)\n//sys\tSync() (err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\tUmask(newmask int) (oldmask int)\n//sys\tUnlink(path string) (err error)\n//sys\tUnlinkat(dirfd int, path string, flags int) (err error)\n//sys\tUnmount(path string, flags int) (err error)\n//sys\twrite(fd int, p []byte) (n int, err error)\n//sys\tmmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error)\n//sys\tmunmap(addr uintptr, length uintptr) (err error)\n//sys\tgetfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error)\n//sys\tutimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error)\n//sys\tpledge(promises *byte, execpromises *byte) (err error)\n//sys\tunveil(path *byte, flags *byte) (err error)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_openbsd_386.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build 386 && openbsd\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: int32(usec)}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint32(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\n// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions\n// of openbsd/386 the syscall is called sysctl instead of __sysctl.\nconst SYS___SYSCTL = SYS_SYSCTL\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build amd64 && openbsd\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\n// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions\n// of openbsd/amd64 the syscall is called sysctl instead of __sysctl.\nconst SYS___SYSCTL = SYS_SYSCTL\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build arm && openbsd\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: int32(nsec)}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: int32(usec)}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint32(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\n// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions\n// of openbsd/arm the syscall is called sysctl instead of __sysctl.\nconst SYS___SYSCTL = SYS_SYSCTL\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build arm64 && openbsd\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\n// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions\n// of openbsd/amd64 the syscall is called sysctl instead of __sysctl.\nconst SYS___SYSCTL = SYS_SYSCTL\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_openbsd_libc.go",
    "content": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build openbsd\n\npackage unix\n\nimport _ \"unsafe\"\n\n// Implemented in the runtime package (runtime/sys_openbsd3.go)\nfunc syscall_syscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno)\nfunc syscall_syscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)\nfunc syscall_syscall10(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10 uintptr) (r1, r2 uintptr, err Errno)\nfunc syscall_rawSyscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno)\nfunc syscall_rawSyscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)\n\n//go:linkname syscall_syscall syscall.syscall\n//go:linkname syscall_syscall6 syscall.syscall6\n//go:linkname syscall_syscall10 syscall.syscall10\n//go:linkname syscall_rawSyscall syscall.rawSyscall\n//go:linkname syscall_rawSyscall6 syscall.rawSyscall6\n\nfunc syscall_syscall9(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno) {\n\treturn syscall_syscall10(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9, 0)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\n// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions\n// of OpenBSD the syscall is called sysctl instead of __sysctl.\nconst SYS___SYSCTL = SYS_SYSCTL\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build ppc64 && openbsd\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\n// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions\n// of openbsd/ppc64 the syscall is called sysctl instead of __sysctl.\nconst SYS___SYSCTL = SYS_SYSCTL\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build riscv64 && openbsd\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc SetKevent(k *Kevent_t, fd, mode, flags int) {\n\tk.Ident = uint64(fd)\n\tk.Filter = int16(mode)\n\tk.Flags = uint16(flags)\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = uint32(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = uint32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n\n// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions\n// of openbsd/riscv64 the syscall is called sysctl instead of __sysctl.\nconst SYS___SYSCTL = SYS_SYSCTL\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_solaris.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Solaris system calls.\n// This file is compiled as ordinary Go code,\n// but it is also input to mksyscall,\n// which parses the //sys lines and generates system call stubs.\n// Note that sometimes we use a lowercase //sys name and wrap\n// it in our own nicer implementation, either here or in\n// syscall_solaris.go or syscall_unix.go.\n\npackage unix\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"runtime\"\n\t\"sync\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n// Implemented in runtime/syscall_solaris.go.\ntype syscallFunc uintptr\n\nfunc rawSysvicall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno)\nfunc sysvicall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno)\n\n// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets.\ntype SockaddrDatalink struct {\n\tFamily uint16\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [244]int8\n\traw    RawSockaddrDatalink\n}\n\nfunc direntIno(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino))\n}\n\nfunc direntReclen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen))\n}\n\nfunc direntNamlen(buf []byte) (uint64, bool) {\n\treclen, ok := direntReclen(buf)\n\tif !ok {\n\t\treturn 0, false\n\t}\n\treturn reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true\n}\n\n//sysnb\tpipe(p *[2]_C_int) (n int, err error)\n\nfunc Pipe(p []int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\tn, err := pipe(&pp)\n\tif n != 0 {\n\t\treturn err\n\t}\n\tif err == nil {\n\t\tp[0] = int(pp[0])\n\t\tp[1] = int(pp[1])\n\t}\n\treturn nil\n}\n\n//sysnb\tpipe2(p *[2]_C_int, flags int) (err error)\n\nfunc Pipe2(p []int, flags int) error {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\terr := pipe2(&pp, flags)\n\tif err == nil {\n\t\tp[0] = int(pp[0])\n\t\tp[1] = int(pp[1])\n\t}\n\treturn err\n}\n\nfunc (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_INET\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tsa.raw.Addr = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrInet4, nil\n}\n\nfunc (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_INET6\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tsa.raw.Scope_id = sa.ZoneId\n\tsa.raw.Addr = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), SizeofSockaddrInet6, nil\n}\n\nfunc (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tname := sa.Name\n\tn := len(name)\n\tif n >= len(sa.raw.Path) {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Family = AF_UNIX\n\tfor i := 0; i < n; i++ {\n\t\tsa.raw.Path[i] = int8(name[i])\n\t}\n\t// length is family (uint16), name, NUL.\n\tsl := _Socklen(2)\n\tif n > 0 {\n\t\tsl += _Socklen(n) + 1\n\t}\n\tif sa.raw.Path[0] == '@' || (sa.raw.Path[0] == 0 && sl > 3) {\n\t\t// Check sl > 3 so we don't change unnamed socket behavior.\n\t\tsa.raw.Path[0] = 0\n\t\t// Don't count trailing NUL for abstract address.\n\t\tsl--\n\t}\n\n\treturn unsafe.Pointer(&sa.raw), sl, nil\n}\n\n//sys\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = libsocket.getsockname\n\nfunc Getsockname(fd int) (sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tif err = getsockname(fd, &rsa, &len); err != nil {\n\t\treturn\n\t}\n\treturn anyToSockaddr(fd, &rsa)\n}\n\n// GetsockoptString returns the string value of the socket option opt for the\n// socket associated with fd at the given socket level.\nfunc GetsockoptString(fd, level, opt int) (string, error) {\n\tbuf := make([]byte, 256)\n\tvallen := _Socklen(len(buf))\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\treturn ByteSliceToString(buf[:vallen]), nil\n}\n\nconst ImplementsGetwd = true\n\n//sys\tGetcwd(buf []byte) (n int, err error)\n\nfunc Getwd() (wd string, err error) {\n\tvar buf [PathMax]byte\n\t// Getcwd will return an error if it failed for any reason.\n\t_, err = Getcwd(buf[0:])\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tn := clen(buf[:])\n\tif n < 1 {\n\t\treturn \"\", EINVAL\n\t}\n\treturn string(buf[:n]), nil\n}\n\n/*\n * Wrapped\n */\n\n//sysnb\tgetgroups(ngid int, gid *_Gid_t) (n int, err error)\n//sysnb\tsetgroups(ngid int, gid *_Gid_t) (err error)\n\nfunc Getgroups() (gids []int, err error) {\n\tn, err := getgroups(0, nil)\n\t// Check for error and sanity check group count. Newer versions of\n\t// Solaris allow up to 1024 (NGROUPS_MAX).\n\tif n < 0 || n > 1024 {\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn nil, EINVAL\n\t} else if n == 0 {\n\t\treturn nil, nil\n\t}\n\n\ta := make([]_Gid_t, n)\n\tn, err = getgroups(n, &a[0])\n\tif n == -1 {\n\t\treturn nil, err\n\t}\n\tgids = make([]int, n)\n\tfor i, v := range a[0:n] {\n\t\tgids[i] = int(v)\n\t}\n\treturn\n}\n\nfunc Setgroups(gids []int) (err error) {\n\tif len(gids) == 0 {\n\t\treturn setgroups(0, nil)\n\t}\n\n\ta := make([]_Gid_t, len(gids))\n\tfor i, v := range gids {\n\t\ta[i] = _Gid_t(v)\n\t}\n\treturn setgroups(len(a), &a[0])\n}\n\n// ReadDirent reads directory entries from fd and writes them into buf.\nfunc ReadDirent(fd int, buf []byte) (n int, err error) {\n\t// Final argument is (basep *uintptr) and the syscall doesn't take nil.\n\t// TODO(rsc): Can we use a single global basep for all calls?\n\treturn Getdents(fd, buf, new(uintptr))\n}\n\n// Wait status is 7 bits at bottom, either 0 (exited),\n// 0x7F (stopped), or a signal number that caused an exit.\n// The 0x80 bit is whether there was a core dump.\n// An extra number (exit code, signal causing a stop)\n// is in the high bits.\n\ntype WaitStatus uint32\n\nconst (\n\tmask  = 0x7F\n\tcore  = 0x80\n\tshift = 8\n\n\texited  = 0\n\tstopped = 0x7F\n)\n\nfunc (w WaitStatus) Exited() bool { return w&mask == exited }\n\nfunc (w WaitStatus) ExitStatus() int {\n\tif w&mask != exited {\n\t\treturn -1\n\t}\n\treturn int(w >> shift)\n}\n\nfunc (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != 0 }\n\nfunc (w WaitStatus) Signal() syscall.Signal {\n\tsig := syscall.Signal(w & mask)\n\tif sig == stopped || sig == 0 {\n\t\treturn -1\n\t}\n\treturn sig\n}\n\nfunc (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 }\n\nfunc (w WaitStatus) Stopped() bool { return w&mask == stopped && syscall.Signal(w>>shift) != SIGSTOP }\n\nfunc (w WaitStatus) Continued() bool { return w&mask == stopped && syscall.Signal(w>>shift) == SIGSTOP }\n\nfunc (w WaitStatus) StopSignal() syscall.Signal {\n\tif !w.Stopped() {\n\t\treturn -1\n\t}\n\treturn syscall.Signal(w>>shift) & 0xFF\n}\n\nfunc (w WaitStatus) TrapCause() int { return -1 }\n\n//sys\twait4(pid int32, statusp *_C_int, options int, rusage *Rusage) (wpid int32, err error)\n\nfunc Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (int, error) {\n\tvar status _C_int\n\trpid, err := wait4(int32(pid), &status, options, rusage)\n\twpid := int(rpid)\n\tif wpid == -1 {\n\t\treturn wpid, err\n\t}\n\tif wstatus != nil {\n\t\t*wstatus = WaitStatus(status)\n\t}\n\treturn wpid, nil\n}\n\n//sys\tgethostname(buf []byte) (n int, err error)\n\nfunc Gethostname() (name string, err error) {\n\tvar buf [MaxHostNameLen]byte\n\tn, err := gethostname(buf[:])\n\tif n != 0 {\n\t\treturn \"\", err\n\t}\n\tn = clen(buf[:])\n\tif n < 1 {\n\t\treturn \"\", EFAULT\n\t}\n\treturn string(buf[:n]), nil\n}\n\n//sys\tutimes(path string, times *[2]Timeval) (err error)\n\nfunc Utimes(path string, tv []Timeval) (err error) {\n\tif tv == nil {\n\t\treturn utimes(path, nil)\n\t}\n\tif len(tv) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))\n}\n\n//sys\tutimensat(fd int, path string, times *[2]Timespec, flag int) (err error)\n\nfunc UtimesNano(path string, ts []Timespec) error {\n\tif ts == nil {\n\t\treturn utimensat(AT_FDCWD, path, nil, 0)\n\t}\n\tif len(ts) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)\n}\n\nfunc UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error {\n\tif ts == nil {\n\t\treturn utimensat(dirfd, path, nil, flags)\n\t}\n\tif len(ts) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags)\n}\n\n//sys\tfcntl(fd int, cmd int, arg int) (val int, err error)\n\n// FcntlInt performs a fcntl syscall on fd with the provided command and argument.\nfunc FcntlInt(fd uintptr, cmd, arg int) (int, error) {\n\tvalptr, _, errno := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(arg), 0, 0, 0)\n\tvar err error\n\tif errno != 0 {\n\t\terr = errno\n\t}\n\treturn int(valptr), err\n}\n\n// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command.\nfunc FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(unsafe.Pointer(lk)), 0, 0, 0)\n\tif e1 != 0 {\n\t\treturn e1\n\t}\n\treturn nil\n}\n\n//sys\tfutimesat(fildes int, path *byte, times *[2]Timeval) (err error)\n\nfunc Futimesat(dirfd int, path string, tv []Timeval) error {\n\tpathp, err := BytePtrFromString(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif tv == nil {\n\t\treturn futimesat(dirfd, pathp, nil)\n\t}\n\tif len(tv) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn futimesat(dirfd, pathp, (*[2]Timeval)(unsafe.Pointer(&tv[0])))\n}\n\n// Solaris doesn't have an futimes function because it allows NULL to be\n// specified as the path for futimesat. However, Go doesn't like\n// NULL-style string interfaces, so this simple wrapper is provided.\nfunc Futimes(fd int, tv []Timeval) error {\n\tif tv == nil {\n\t\treturn futimesat(fd, nil, nil)\n\t}\n\tif len(tv) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn futimesat(fd, nil, (*[2]Timeval)(unsafe.Pointer(&tv[0])))\n}\n\nfunc anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {\n\tswitch rsa.Addr.Family {\n\tcase AF_UNIX:\n\t\tpp := (*RawSockaddrUnix)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrUnix)\n\t\t// Assume path ends at NUL.\n\t\t// This is not technically the Solaris semantics for\n\t\t// abstract Unix domain sockets -- they are supposed\n\t\t// to be uninterpreted fixed-size binary blobs -- but\n\t\t// everyone uses this convention.\n\t\tn := 0\n\t\tfor n < len(pp.Path) && pp.Path[n] != 0 {\n\t\t\tn++\n\t\t}\n\t\tsa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n))\n\t\treturn sa, nil\n\n\tcase AF_INET:\n\t\tpp := (*RawSockaddrInet4)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrInet4)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tsa.Addr = pp.Addr\n\t\treturn sa, nil\n\n\tcase AF_INET6:\n\t\tpp := (*RawSockaddrInet6)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrInet6)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tsa.ZoneId = pp.Scope_id\n\t\tsa.Addr = pp.Addr\n\t\treturn sa, nil\n\t}\n\treturn nil, EAFNOSUPPORT\n}\n\n//sys\taccept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) = libsocket.accept\n\nfunc Accept(fd int) (nfd int, sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tnfd, err = accept(fd, &rsa, &len)\n\tif nfd == -1 {\n\t\treturn\n\t}\n\tsa, err = anyToSockaddr(fd, &rsa)\n\tif err != nil {\n\t\tClose(nfd)\n\t\tnfd = 0\n\t}\n\treturn\n}\n\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error) = libsocket.__xnet_recvmsg\n\nfunc recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) {\n\tvar msg Msghdr\n\tmsg.Name = (*byte)(unsafe.Pointer(rsa))\n\tmsg.Namelen = uint32(SizeofSockaddrAny)\n\tvar dummy byte\n\tif len(oob) > 0 {\n\t\t// receive at least one normal byte\n\t\tif emptyIovecs(iov) {\n\t\t\tvar iova [1]Iovec\n\t\t\tiova[0].Base = &dummy\n\t\t\tiova[0].SetLen(1)\n\t\t\tiov = iova[:]\n\t\t}\n\t\tmsg.Accrightslen = int32(len(oob))\n\t}\n\tif len(iov) > 0 {\n\t\tmsg.Iov = &iov[0]\n\t\tmsg.SetIovlen(len(iov))\n\t}\n\tif n, err = recvmsg(fd, &msg, flags); n == -1 {\n\t\treturn\n\t}\n\toobn = int(msg.Accrightslen)\n\treturn\n}\n\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error) = libsocket.__xnet_sendmsg\n\nfunc sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) {\n\tvar msg Msghdr\n\tmsg.Name = (*byte)(unsafe.Pointer(ptr))\n\tmsg.Namelen = uint32(salen)\n\tvar dummy byte\n\tvar empty bool\n\tif len(oob) > 0 {\n\t\t// send at least one normal byte\n\t\tempty = emptyIovecs(iov)\n\t\tif empty {\n\t\t\tvar iova [1]Iovec\n\t\t\tiova[0].Base = &dummy\n\t\t\tiova[0].SetLen(1)\n\t\t\tiov = iova[:]\n\t\t}\n\t\tmsg.Accrightslen = int32(len(oob))\n\t}\n\tif len(iov) > 0 {\n\t\tmsg.Iov = &iov[0]\n\t\tmsg.SetIovlen(len(iov))\n\t}\n\tif n, err = sendmsg(fd, &msg, flags); err != nil {\n\t\treturn 0, err\n\t}\n\tif len(oob) > 0 && empty {\n\t\tn = 0\n\t}\n\treturn n, nil\n}\n\n//sys\tacct(path *byte) (err error)\n\nfunc Acct(path string) (err error) {\n\tif len(path) == 0 {\n\t\t// Assume caller wants to disable accounting.\n\t\treturn acct(nil)\n\t}\n\n\tpathp, err := BytePtrFromString(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn acct(pathp)\n}\n\n//sys\t__makedev(version int, major uint, minor uint) (val uint64)\n\nfunc Mkdev(major, minor uint32) uint64 {\n\treturn __makedev(NEWDEV, uint(major), uint(minor))\n}\n\n//sys\t__major(version int, dev uint64) (val uint)\n\nfunc Major(dev uint64) uint32 {\n\treturn uint32(__major(NEWDEV, dev))\n}\n\n//sys\t__minor(version int, dev uint64) (val uint)\n\nfunc Minor(dev uint64) uint32 {\n\treturn uint32(__minor(NEWDEV, dev))\n}\n\n/*\n * Expose the ioctl function\n */\n\n//sys\tioctlRet(fd int, req int, arg uintptr) (ret int, err error) = libc.ioctl\n//sys\tioctlPtrRet(fd int, req int, arg unsafe.Pointer) (ret int, err error) = libc.ioctl\n\nfunc ioctl(fd int, req int, arg uintptr) (err error) {\n\t_, err = ioctlRet(fd, req, arg)\n\treturn err\n}\n\nfunc ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) {\n\t_, err = ioctlPtrRet(fd, req, arg)\n\treturn err\n}\n\nfunc IoctlSetTermio(fd int, req int, value *Termio) error {\n\treturn ioctlPtr(fd, req, unsafe.Pointer(value))\n}\n\nfunc IoctlGetTermio(fd int, req int) (*Termio, error) {\n\tvar value Termio\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&value))\n\treturn &value, err\n}\n\n//sys\tpoll(fds *PollFd, nfds int, timeout int) (n int, err error)\n\nfunc Poll(fds []PollFd, timeout int) (n int, err error) {\n\tif len(fds) == 0 {\n\t\treturn poll(nil, 0, timeout)\n\t}\n\treturn poll(&fds[0], len(fds), timeout)\n}\n\nfunc Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\treturn sendfile(outfd, infd, offset, count)\n}\n\n/*\n * Exposed directly\n */\n//sys\tAccess(path string, mode uint32) (err error)\n//sys\tAdjtime(delta *Timeval, olddelta *Timeval) (err error)\n//sys\tChdir(path string) (err error)\n//sys\tChmod(path string, mode uint32) (err error)\n//sys\tChown(path string, uid int, gid int) (err error)\n//sys\tChroot(path string) (err error)\n//sys\tClockGettime(clockid int32, time *Timespec) (err error)\n//sys\tClose(fd int) (err error)\n//sys\tCreat(path string, mode uint32) (fd int, err error)\n//sys\tDup(fd int) (nfd int, err error)\n//sys\tDup2(oldfd int, newfd int) (err error)\n//sys\tExit(code int)\n//sys\tFaccessat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchdir(fd int) (err error)\n//sys\tFchmod(fd int, mode uint32) (err error)\n//sys\tFchmodat(dirfd int, path string, mode uint32, flags int) (err error)\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFchownat(dirfd int, path string, uid int, gid int, flags int) (err error)\n//sys\tFdatasync(fd int) (err error)\n//sys\tFlock(fd int, how int) (err error)\n//sys\tFpathconf(fd int, name int) (val int, err error)\n//sys\tFstat(fd int, stat *Stat_t) (err error)\n//sys\tFstatat(fd int, path string, stat *Stat_t, flags int) (err error)\n//sys\tFstatvfs(fd int, vfsstat *Statvfs_t) (err error)\n//sys\tGetdents(fd int, buf []byte, basep *uintptr) (n int, err error)\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetpid() (pid int)\n//sysnb\tGetpgid(pid int) (pgid int, err error)\n//sysnb\tGetpgrp() (pgid int, err error)\n//sys\tGeteuid() (euid int)\n//sys\tGetegid() (egid int)\n//sys\tGetppid() (ppid int)\n//sys\tGetpriority(which int, who int) (n int, err error)\n//sysnb\tGetrlimit(which int, lim *Rlimit) (err error)\n//sysnb\tGetrusage(who int, rusage *Rusage) (err error)\n//sysnb\tGetsid(pid int) (sid int, err error)\n//sysnb\tGettimeofday(tv *Timeval) (err error)\n//sysnb\tGetuid() (uid int)\n//sys\tKill(pid int, signum syscall.Signal) (err error)\n//sys\tLchown(path string, uid int, gid int) (err error)\n//sys\tLink(path string, link string) (err error)\n//sys\tListen(s int, backlog int) (err error) = libsocket.__xnet_llisten\n//sys\tLstat(path string, stat *Stat_t) (err error)\n//sys\tMadvise(b []byte, advice int) (err error)\n//sys\tMkdir(path string, mode uint32) (err error)\n//sys\tMkdirat(dirfd int, path string, mode uint32) (err error)\n//sys\tMkfifo(path string, mode uint32) (err error)\n//sys\tMkfifoat(dirfd int, path string, mode uint32) (err error)\n//sys\tMknod(path string, mode uint32, dev int) (err error)\n//sys\tMknodat(dirfd int, path string, mode uint32, dev int) (err error)\n//sys\tMlock(b []byte) (err error)\n//sys\tMlockall(flags int) (err error)\n//sys\tMprotect(b []byte, prot int) (err error)\n//sys\tMsync(b []byte, flags int) (err error)\n//sys\tMunlock(b []byte) (err error)\n//sys\tMunlockall() (err error)\n//sys\tNanosleep(time *Timespec, leftover *Timespec) (err error)\n//sys\tOpen(path string, mode int, perm uint32) (fd int, err error)\n//sys\tOpenat(dirfd int, path string, flags int, mode uint32) (fd int, err error)\n//sys\tPathconf(path string, name int) (val int, err error)\n//sys\tPause() (err error)\n//sys\tpread(fd int, p []byte, offset int64) (n int, err error)\n//sys\tpwrite(fd int, p []byte, offset int64) (n int, err error)\n//sys\tread(fd int, p []byte) (n int, err error)\n//sys\tReadlink(path string, buf []byte) (n int, err error)\n//sys\tRename(from string, to string) (err error)\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)\n//sys\tRmdir(path string) (err error)\n//sys\tSeek(fd int, offset int64, whence int) (newoffset int64, err error) = lseek\n//sys\tSelect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)\n//sysnb\tSetegid(egid int) (err error)\n//sysnb\tSeteuid(euid int) (err error)\n//sysnb\tSetgid(gid int) (err error)\n//sys\tSethostname(p []byte) (err error)\n//sysnb\tSetpgid(pid int, pgid int) (err error)\n//sys\tSetpriority(which int, who int, prio int) (err error)\n//sysnb\tSetregid(rgid int, egid int) (err error)\n//sysnb\tSetreuid(ruid int, euid int) (err error)\n//sysnb\tSetsid() (pid int, err error)\n//sysnb\tSetuid(uid int) (err error)\n//sys\tShutdown(s int, how int) (err error) = libsocket.shutdown\n//sys\tStat(path string, stat *Stat_t) (err error)\n//sys\tStatvfs(path string, vfsstat *Statvfs_t) (err error)\n//sys\tSymlink(path string, link string) (err error)\n//sys\tSync() (err error)\n//sys\tSysconf(which int) (n int64, err error)\n//sysnb\tTimes(tms *Tms) (ticks uintptr, err error)\n//sys\tTruncate(path string, length int64) (err error)\n//sys\tFsync(fd int) (err error)\n//sys\tFtruncate(fd int, length int64) (err error)\n//sys\tUmask(mask int) (oldmask int)\n//sysnb\tUname(buf *Utsname) (err error)\n//sys\tUnmount(target string, flags int) (err error) = libc.umount\n//sys\tUnlink(path string) (err error)\n//sys\tUnlinkat(dirfd int, path string, flags int) (err error)\n//sys\tUstat(dev int, ubuf *Ustat_t) (err error)\n//sys\tUtime(path string, buf *Utimbuf) (err error)\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.__xnet_bind\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.__xnet_connect\n//sys\tmmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error)\n//sys\tmunmap(addr uintptr, length uintptr) (err error)\n//sys\tsendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = libsendfile.sendfile\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.__xnet_sendto\n//sys\tsocket(domain int, typ int, proto int) (fd int, err error) = libsocket.__xnet_socket\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error) = libsocket.__xnet_socketpair\n//sys\twrite(fd int, p []byte) (n int, err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) = libsocket.__xnet_getsockopt\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = libsocket.getpeername\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) = libsocket.setsockopt\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) = libsocket.recvfrom\n\n// Event Ports\n\ntype fileObjCookie struct {\n\tfobj   *fileObj\n\tcookie interface{}\n}\n\n// EventPort provides a safe abstraction on top of Solaris/illumos Event Ports.\ntype EventPort struct {\n\tport  int\n\tmu    sync.Mutex\n\tfds   map[uintptr]*fileObjCookie\n\tpaths map[string]*fileObjCookie\n\t// The user cookie presents an interesting challenge from a memory management perspective.\n\t// There are two paths by which we can discover that it is no longer in use:\n\t// 1. The user calls port_dissociate before any events fire\n\t// 2. An event fires and we return it to the user\n\t// The tricky situation is if the event has fired in the kernel but\n\t// the user hasn't requested/received it yet.\n\t// If the user wants to port_dissociate before the event has been processed,\n\t// we should handle things gracefully. To do so, we need to keep an extra\n\t// reference to the cookie around until the event is processed\n\t// thus the otherwise seemingly extraneous \"cookies\" map\n\t// The key of this map is a pointer to the corresponding fCookie\n\tcookies map[*fileObjCookie]struct{}\n}\n\n// PortEvent is an abstraction of the port_event C struct.\n// Compare Source against PORT_SOURCE_FILE or PORT_SOURCE_FD\n// to see if Path or Fd was the event source. The other will be\n// uninitialized.\ntype PortEvent struct {\n\tCookie interface{}\n\tEvents int32\n\tFd     uintptr\n\tPath   string\n\tSource uint16\n\tfobj   *fileObj\n}\n\n// NewEventPort creates a new EventPort including the\n// underlying call to port_create(3c).\nfunc NewEventPort() (*EventPort, error) {\n\tport, err := port_create()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\te := &EventPort{\n\t\tport:    port,\n\t\tfds:     make(map[uintptr]*fileObjCookie),\n\t\tpaths:   make(map[string]*fileObjCookie),\n\t\tcookies: make(map[*fileObjCookie]struct{}),\n\t}\n\treturn e, nil\n}\n\n//sys\tport_create() (n int, err error)\n//sys\tport_associate(port int, source int, object uintptr, events int, user *byte) (n int, err error)\n//sys\tport_dissociate(port int, source int, object uintptr) (n int, err error)\n//sys\tport_get(port int, pe *portEvent, timeout *Timespec) (n int, err error)\n//sys\tport_getn(port int, pe *portEvent, max uint32, nget *uint32, timeout *Timespec) (n int, err error)\n\n// Close closes the event port.\nfunc (e *EventPort) Close() error {\n\te.mu.Lock()\n\tdefer e.mu.Unlock()\n\terr := Close(e.port)\n\tif err != nil {\n\t\treturn err\n\t}\n\te.fds = nil\n\te.paths = nil\n\te.cookies = nil\n\treturn nil\n}\n\n// PathIsWatched checks to see if path is associated with this EventPort.\nfunc (e *EventPort) PathIsWatched(path string) bool {\n\te.mu.Lock()\n\tdefer e.mu.Unlock()\n\t_, found := e.paths[path]\n\treturn found\n}\n\n// FdIsWatched checks to see if fd is associated with this EventPort.\nfunc (e *EventPort) FdIsWatched(fd uintptr) bool {\n\te.mu.Lock()\n\tdefer e.mu.Unlock()\n\t_, found := e.fds[fd]\n\treturn found\n}\n\n// AssociatePath wraps port_associate(3c) for a filesystem path including\n// creating the necessary file_obj from the provided stat information.\nfunc (e *EventPort) AssociatePath(path string, stat os.FileInfo, events int, cookie interface{}) error {\n\te.mu.Lock()\n\tdefer e.mu.Unlock()\n\tif _, found := e.paths[path]; found {\n\t\treturn fmt.Errorf(\"%v is already associated with this Event Port\", path)\n\t}\n\tfCookie, err := createFileObjCookie(path, stat, cookie)\n\tif err != nil {\n\t\treturn err\n\t}\n\t_, err = port_associate(e.port, PORT_SOURCE_FILE, uintptr(unsafe.Pointer(fCookie.fobj)), events, (*byte)(unsafe.Pointer(fCookie)))\n\tif err != nil {\n\t\treturn err\n\t}\n\te.paths[path] = fCookie\n\te.cookies[fCookie] = struct{}{}\n\treturn nil\n}\n\n// DissociatePath wraps port_dissociate(3c) for a filesystem path.\nfunc (e *EventPort) DissociatePath(path string) error {\n\te.mu.Lock()\n\tdefer e.mu.Unlock()\n\tf, ok := e.paths[path]\n\tif !ok {\n\t\treturn fmt.Errorf(\"%v is not associated with this Event Port\", path)\n\t}\n\t_, err := port_dissociate(e.port, PORT_SOURCE_FILE, uintptr(unsafe.Pointer(f.fobj)))\n\t// If the path is no longer associated with this event port (ENOENT)\n\t// we should delete it from our map. We can still return ENOENT to the caller.\n\t// But we need to save the cookie\n\tif err != nil && err != ENOENT {\n\t\treturn err\n\t}\n\tif err == nil {\n\t\t// dissociate was successful, safe to delete the cookie\n\t\tfCookie := e.paths[path]\n\t\tdelete(e.cookies, fCookie)\n\t}\n\tdelete(e.paths, path)\n\treturn err\n}\n\n// AssociateFd wraps calls to port_associate(3c) on file descriptors.\nfunc (e *EventPort) AssociateFd(fd uintptr, events int, cookie interface{}) error {\n\te.mu.Lock()\n\tdefer e.mu.Unlock()\n\tif _, found := e.fds[fd]; found {\n\t\treturn fmt.Errorf(\"%v is already associated with this Event Port\", fd)\n\t}\n\tfCookie, err := createFileObjCookie(\"\", nil, cookie)\n\tif err != nil {\n\t\treturn err\n\t}\n\t_, err = port_associate(e.port, PORT_SOURCE_FD, fd, events, (*byte)(unsafe.Pointer(fCookie)))\n\tif err != nil {\n\t\treturn err\n\t}\n\te.fds[fd] = fCookie\n\te.cookies[fCookie] = struct{}{}\n\treturn nil\n}\n\n// DissociateFd wraps calls to port_dissociate(3c) on file descriptors.\nfunc (e *EventPort) DissociateFd(fd uintptr) error {\n\te.mu.Lock()\n\tdefer e.mu.Unlock()\n\t_, ok := e.fds[fd]\n\tif !ok {\n\t\treturn fmt.Errorf(\"%v is not associated with this Event Port\", fd)\n\t}\n\t_, err := port_dissociate(e.port, PORT_SOURCE_FD, fd)\n\tif err != nil && err != ENOENT {\n\t\treturn err\n\t}\n\tif err == nil {\n\t\t// dissociate was successful, safe to delete the cookie\n\t\tfCookie := e.fds[fd]\n\t\tdelete(e.cookies, fCookie)\n\t}\n\tdelete(e.fds, fd)\n\treturn err\n}\n\nfunc createFileObjCookie(name string, stat os.FileInfo, cookie interface{}) (*fileObjCookie, error) {\n\tfCookie := new(fileObjCookie)\n\tfCookie.cookie = cookie\n\tif name != \"\" && stat != nil {\n\t\tfCookie.fobj = new(fileObj)\n\t\tbs, err := ByteSliceFromString(name)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tfCookie.fobj.Name = (*int8)(unsafe.Pointer(&bs[0]))\n\t\ts := stat.Sys().(*syscall.Stat_t)\n\t\tfCookie.fobj.Atim.Sec = s.Atim.Sec\n\t\tfCookie.fobj.Atim.Nsec = s.Atim.Nsec\n\t\tfCookie.fobj.Mtim.Sec = s.Mtim.Sec\n\t\tfCookie.fobj.Mtim.Nsec = s.Mtim.Nsec\n\t\tfCookie.fobj.Ctim.Sec = s.Ctim.Sec\n\t\tfCookie.fobj.Ctim.Nsec = s.Ctim.Nsec\n\t}\n\treturn fCookie, nil\n}\n\n// GetOne wraps port_get(3c) and returns a single PortEvent.\nfunc (e *EventPort) GetOne(t *Timespec) (*PortEvent, error) {\n\tpe := new(portEvent)\n\t_, err := port_get(e.port, pe, t)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tp := new(PortEvent)\n\te.mu.Lock()\n\tdefer e.mu.Unlock()\n\terr = e.peIntToExt(pe, p)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn p, nil\n}\n\n// peIntToExt converts a cgo portEvent struct into the friendlier PortEvent\n// NOTE: Always call this function while holding the e.mu mutex\nfunc (e *EventPort) peIntToExt(peInt *portEvent, peExt *PortEvent) error {\n\tif e.cookies == nil {\n\t\treturn fmt.Errorf(\"this EventPort is already closed\")\n\t}\n\tpeExt.Events = peInt.Events\n\tpeExt.Source = peInt.Source\n\tfCookie := (*fileObjCookie)(unsafe.Pointer(peInt.User))\n\t_, found := e.cookies[fCookie]\n\n\tif !found {\n\t\tpanic(\"unexpected event port address; may be due to kernel bug; see https://go.dev/issue/54254\")\n\t}\n\tpeExt.Cookie = fCookie.cookie\n\tdelete(e.cookies, fCookie)\n\n\tswitch peInt.Source {\n\tcase PORT_SOURCE_FD:\n\t\tpeExt.Fd = uintptr(peInt.Object)\n\t\t// Only remove the fds entry if it exists and this cookie matches\n\t\tif fobj, ok := e.fds[peExt.Fd]; ok {\n\t\t\tif fobj == fCookie {\n\t\t\t\tdelete(e.fds, peExt.Fd)\n\t\t\t}\n\t\t}\n\tcase PORT_SOURCE_FILE:\n\t\tpeExt.fobj = fCookie.fobj\n\t\tpeExt.Path = BytePtrToString((*byte)(unsafe.Pointer(peExt.fobj.Name)))\n\t\t// Only remove the paths entry if it exists and this cookie matches\n\t\tif fobj, ok := e.paths[peExt.Path]; ok {\n\t\t\tif fobj == fCookie {\n\t\t\t\tdelete(e.paths, peExt.Path)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\n// Pending wraps port_getn(3c) and returns how many events are pending.\nfunc (e *EventPort) Pending() (int, error) {\n\tvar n uint32 = 0\n\t_, err := port_getn(e.port, nil, 0, &n, nil)\n\treturn int(n), err\n}\n\n// Get wraps port_getn(3c) and fills a slice of PortEvent.\n// It will block until either min events have been received\n// or the timeout has been exceeded. It will return how many\n// events were actually received along with any error information.\nfunc (e *EventPort) Get(s []PortEvent, min int, timeout *Timespec) (int, error) {\n\tif min == 0 {\n\t\treturn 0, fmt.Errorf(\"need to request at least one event or use Pending() instead\")\n\t}\n\tif len(s) < min {\n\t\treturn 0, fmt.Errorf(\"len(s) (%d) is less than min events requested (%d)\", len(s), min)\n\t}\n\tgot := uint32(min)\n\tmax := uint32(len(s))\n\tvar err error\n\tps := make([]portEvent, max)\n\t_, err = port_getn(e.port, &ps[0], max, &got, timeout)\n\t// got will be trustworthy with ETIME, but not any other error.\n\tif err != nil && err != ETIME {\n\t\treturn 0, err\n\t}\n\te.mu.Lock()\n\tdefer e.mu.Unlock()\n\tvalid := 0\n\tfor i := 0; i < int(got); i++ {\n\t\terr2 := e.peIntToExt(&ps[i], &s[i])\n\t\tif err2 != nil {\n\t\t\tif valid == 0 && err == nil {\n\t\t\t\t// If err2 is the only error and there are no valid events\n\t\t\t\t// to return, return it to the caller.\n\t\t\t\terr = err2\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t\tvalid = i + 1\n\t}\n\treturn valid, err\n}\n\n//sys\tputmsg(fd int, clptr *strbuf, dataptr *strbuf, flags int) (err error)\n\nfunc Putmsg(fd int, cl []byte, data []byte, flags int) (err error) {\n\tvar clp, datap *strbuf\n\tif len(cl) > 0 {\n\t\tclp = &strbuf{\n\t\t\tLen: int32(len(cl)),\n\t\t\tBuf: (*int8)(unsafe.Pointer(&cl[0])),\n\t\t}\n\t}\n\tif len(data) > 0 {\n\t\tdatap = &strbuf{\n\t\t\tLen: int32(len(data)),\n\t\t\tBuf: (*int8)(unsafe.Pointer(&data[0])),\n\t\t}\n\t}\n\treturn putmsg(fd, clp, datap, flags)\n}\n\n//sys\tgetmsg(fd int, clptr *strbuf, dataptr *strbuf, flags *int) (err error)\n\nfunc Getmsg(fd int, cl []byte, data []byte) (retCl []byte, retData []byte, flags int, err error) {\n\tvar clp, datap *strbuf\n\tif len(cl) > 0 {\n\t\tclp = &strbuf{\n\t\t\tMaxlen: int32(len(cl)),\n\t\t\tBuf:    (*int8)(unsafe.Pointer(&cl[0])),\n\t\t}\n\t}\n\tif len(data) > 0 {\n\t\tdatap = &strbuf{\n\t\t\tMaxlen: int32(len(data)),\n\t\t\tBuf:    (*int8)(unsafe.Pointer(&data[0])),\n\t\t}\n\t}\n\n\tif err = getmsg(fd, clp, datap, &flags); err != nil {\n\t\treturn nil, nil, 0, err\n\t}\n\n\tif len(cl) > 0 {\n\t\tretCl = cl[:clp.Len]\n\t}\n\tif len(data) > 0 {\n\t\tretData = data[:datap.Len]\n\t}\n\treturn retCl, retData, flags, nil\n}\n\nfunc IoctlSetIntRetInt(fd int, req int, arg int) (int, error) {\n\treturn ioctlRet(fd, req, uintptr(arg))\n}\n\nfunc IoctlSetString(fd int, req int, val string) error {\n\tbs := make([]byte, len(val)+1)\n\tcopy(bs[:len(bs)-1], val)\n\terr := ioctlPtr(fd, req, unsafe.Pointer(&bs[0]))\n\truntime.KeepAlive(&bs[0])\n\treturn err\n}\n\n// Lifreq Helpers\n\nfunc (l *Lifreq) SetName(name string) error {\n\tif len(name) >= len(l.Name) {\n\t\treturn fmt.Errorf(\"name cannot be more than %d characters\", len(l.Name)-1)\n\t}\n\tfor i := range name {\n\t\tl.Name[i] = int8(name[i])\n\t}\n\treturn nil\n}\n\nfunc (l *Lifreq) SetLifruInt(d int) {\n\t*(*int)(unsafe.Pointer(&l.Lifru[0])) = d\n}\n\nfunc (l *Lifreq) GetLifruInt() int {\n\treturn *(*int)(unsafe.Pointer(&l.Lifru[0]))\n}\n\nfunc (l *Lifreq) SetLifruUint(d uint) {\n\t*(*uint)(unsafe.Pointer(&l.Lifru[0])) = d\n}\n\nfunc (l *Lifreq) GetLifruUint() uint {\n\treturn *(*uint)(unsafe.Pointer(&l.Lifru[0]))\n}\n\nfunc IoctlLifreq(fd int, req int, l *Lifreq) error {\n\treturn ioctlPtr(fd, req, unsafe.Pointer(l))\n}\n\n// Strioctl Helpers\n\nfunc (s *Strioctl) SetInt(i int) {\n\ts.Len = int32(unsafe.Sizeof(i))\n\ts.Dp = (*int8)(unsafe.Pointer(&i))\n}\n\nfunc IoctlSetStrioctlRetInt(fd int, req int, s *Strioctl) (int, error) {\n\treturn ioctlPtrRet(fd, req, unsafe.Pointer(s))\n}\n\n// Ucred Helpers\n// See ucred(3c) and getpeerucred(3c)\n\n//sys\tgetpeerucred(fd uintptr, ucred *uintptr) (err error)\n//sys\tucredFree(ucred uintptr) = ucred_free\n//sys\tucredGet(pid int) (ucred uintptr, err error) = ucred_get\n//sys\tucredGeteuid(ucred uintptr) (uid int) = ucred_geteuid\n//sys\tucredGetegid(ucred uintptr) (gid int) = ucred_getegid\n//sys\tucredGetruid(ucred uintptr) (uid int) = ucred_getruid\n//sys\tucredGetrgid(ucred uintptr) (gid int) = ucred_getrgid\n//sys\tucredGetsuid(ucred uintptr) (uid int) = ucred_getsuid\n//sys\tucredGetsgid(ucred uintptr) (gid int) = ucred_getsgid\n//sys\tucredGetpid(ucred uintptr) (pid int) = ucred_getpid\n\n// Ucred is an opaque struct that holds user credentials.\ntype Ucred struct {\n\tucred uintptr\n}\n\n// We need to ensure that ucredFree is called on the underlying ucred\n// when the Ucred is garbage collected.\nfunc ucredFinalizer(u *Ucred) {\n\tucredFree(u.ucred)\n}\n\nfunc GetPeerUcred(fd uintptr) (*Ucred, error) {\n\tvar ucred uintptr\n\terr := getpeerucred(fd, &ucred)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tresult := &Ucred{\n\t\tucred: ucred,\n\t}\n\t// set the finalizer on the result so that the ucred will be freed\n\truntime.SetFinalizer(result, ucredFinalizer)\n\treturn result, nil\n}\n\nfunc UcredGet(pid int) (*Ucred, error) {\n\tucred, err := ucredGet(pid)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tresult := &Ucred{\n\t\tucred: ucred,\n\t}\n\t// set the finalizer on the result so that the ucred will be freed\n\truntime.SetFinalizer(result, ucredFinalizer)\n\treturn result, nil\n}\n\nfunc (u *Ucred) Geteuid() int {\n\tdefer runtime.KeepAlive(u)\n\treturn ucredGeteuid(u.ucred)\n}\n\nfunc (u *Ucred) Getruid() int {\n\tdefer runtime.KeepAlive(u)\n\treturn ucredGetruid(u.ucred)\n}\n\nfunc (u *Ucred) Getsuid() int {\n\tdefer runtime.KeepAlive(u)\n\treturn ucredGetsuid(u.ucred)\n}\n\nfunc (u *Ucred) Getegid() int {\n\tdefer runtime.KeepAlive(u)\n\treturn ucredGetegid(u.ucred)\n}\n\nfunc (u *Ucred) Getrgid() int {\n\tdefer runtime.KeepAlive(u)\n\treturn ucredGetrgid(u.ucred)\n}\n\nfunc (u *Ucred) Getsgid() int {\n\tdefer runtime.KeepAlive(u)\n\treturn ucredGetsgid(u.ucred)\n}\n\nfunc (u *Ucred) Getpid() int {\n\tdefer runtime.KeepAlive(u)\n\treturn ucredGetpid(u.ucred)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build amd64 && solaris\n\npackage unix\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval {\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetIovlen(length int) {\n\tmsghdr.Iovlen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = uint32(length)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_unix.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris\n\npackage unix\n\nimport (\n\t\"bytes\"\n\t\"sort\"\n\t\"sync\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar (\n\tStdin  = 0\n\tStdout = 1\n\tStderr = 2\n)\n\n// Do the interface allocations only once for common\n// Errno values.\nvar (\n\terrEAGAIN error = syscall.EAGAIN\n\terrEINVAL error = syscall.EINVAL\n\terrENOENT error = syscall.ENOENT\n)\n\nvar (\n\tsignalNameMapOnce sync.Once\n\tsignalNameMap     map[string]syscall.Signal\n)\n\n// errnoErr returns common boxed Errno values, to prevent\n// allocations at runtime.\nfunc errnoErr(e syscall.Errno) error {\n\tswitch e {\n\tcase 0:\n\t\treturn nil\n\tcase EAGAIN:\n\t\treturn errEAGAIN\n\tcase EINVAL:\n\t\treturn errEINVAL\n\tcase ENOENT:\n\t\treturn errENOENT\n\t}\n\treturn e\n}\n\n// ErrnoName returns the error name for error number e.\nfunc ErrnoName(e syscall.Errno) string {\n\ti := sort.Search(len(errorList), func(i int) bool {\n\t\treturn errorList[i].num >= e\n\t})\n\tif i < len(errorList) && errorList[i].num == e {\n\t\treturn errorList[i].name\n\t}\n\treturn \"\"\n}\n\n// SignalName returns the signal name for signal number s.\nfunc SignalName(s syscall.Signal) string {\n\ti := sort.Search(len(signalList), func(i int) bool {\n\t\treturn signalList[i].num >= s\n\t})\n\tif i < len(signalList) && signalList[i].num == s {\n\t\treturn signalList[i].name\n\t}\n\treturn \"\"\n}\n\n// SignalNum returns the syscall.Signal for signal named s,\n// or 0 if a signal with such name is not found.\n// The signal name should start with \"SIG\".\nfunc SignalNum(s string) syscall.Signal {\n\tsignalNameMapOnce.Do(func() {\n\t\tsignalNameMap = make(map[string]syscall.Signal, len(signalList))\n\t\tfor _, signal := range signalList {\n\t\t\tsignalNameMap[signal.name] = signal.num\n\t\t}\n\t})\n\treturn signalNameMap[s]\n}\n\n// clen returns the index of the first NULL byte in n or len(n) if n contains no NULL byte.\nfunc clen(n []byte) int {\n\ti := bytes.IndexByte(n, 0)\n\tif i == -1 {\n\t\ti = len(n)\n\t}\n\treturn i\n}\n\n// Mmap manager, for use by operating system-specific implementations.\n\ntype mmapper struct {\n\tsync.Mutex\n\tactive map[*byte][]byte // active mappings; key is last byte in mapping\n\tmmap   func(addr, length uintptr, prot, flags, fd int, offset int64) (uintptr, error)\n\tmunmap func(addr uintptr, length uintptr) error\n}\n\nfunc (m *mmapper) Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) {\n\tif length <= 0 {\n\t\treturn nil, EINVAL\n\t}\n\n\t// Map the requested memory.\n\taddr, errno := m.mmap(0, uintptr(length), prot, flags, fd, offset)\n\tif errno != nil {\n\t\treturn nil, errno\n\t}\n\n\t// Use unsafe to convert addr into a []byte.\n\tb := unsafe.Slice((*byte)(unsafe.Pointer(addr)), length)\n\n\t// Register mapping in m and return it.\n\tp := &b[cap(b)-1]\n\tm.Lock()\n\tdefer m.Unlock()\n\tm.active[p] = b\n\treturn b, nil\n}\n\nfunc (m *mmapper) Munmap(data []byte) (err error) {\n\tif len(data) == 0 || len(data) != cap(data) {\n\t\treturn EINVAL\n\t}\n\n\t// Find the base of the mapping.\n\tp := &data[cap(data)-1]\n\tm.Lock()\n\tdefer m.Unlock()\n\tb := m.active[p]\n\tif b == nil || &b[0] != &data[0] {\n\t\treturn EINVAL\n\t}\n\n\t// Unmap the memory and update m.\n\tif errno := m.munmap(uintptr(unsafe.Pointer(&b[0])), uintptr(len(b))); errno != nil {\n\t\treturn errno\n\t}\n\tdelete(m.active, p)\n\treturn nil\n}\n\nfunc Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) {\n\treturn mapper.Mmap(fd, offset, length, prot, flags)\n}\n\nfunc Munmap(b []byte) (err error) {\n\treturn mapper.Munmap(b)\n}\n\nfunc MmapPtr(fd int, offset int64, addr unsafe.Pointer, length uintptr, prot int, flags int) (ret unsafe.Pointer, err error) {\n\txaddr, err := mapper.mmap(uintptr(addr), length, prot, flags, fd, offset)\n\treturn unsafe.Pointer(xaddr), err\n}\n\nfunc MunmapPtr(addr unsafe.Pointer, length uintptr) (err error) {\n\treturn mapper.munmap(uintptr(addr), length)\n}\n\nfunc Read(fd int, p []byte) (n int, err error) {\n\tn, err = read(fd, p)\n\tif raceenabled {\n\t\tif n > 0 {\n\t\t\traceWriteRange(unsafe.Pointer(&p[0]), n)\n\t\t}\n\t\tif err == nil {\n\t\t\traceAcquire(unsafe.Pointer(&ioSync))\n\t\t}\n\t}\n\treturn\n}\n\nfunc Write(fd int, p []byte) (n int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\tn, err = write(fd, p)\n\tif raceenabled && n > 0 {\n\t\traceReadRange(unsafe.Pointer(&p[0]), n)\n\t}\n\treturn\n}\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tn, err = pread(fd, p, offset)\n\tif raceenabled {\n\t\tif n > 0 {\n\t\t\traceWriteRange(unsafe.Pointer(&p[0]), n)\n\t\t}\n\t\tif err == nil {\n\t\t\traceAcquire(unsafe.Pointer(&ioSync))\n\t\t}\n\t}\n\treturn\n}\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\tn, err = pwrite(fd, p, offset)\n\tif raceenabled && n > 0 {\n\t\traceReadRange(unsafe.Pointer(&p[0]), n)\n\t}\n\treturn\n}\n\n// For testing: clients can set this flag to force\n// creation of IPv6 sockets to return EAFNOSUPPORT.\nvar SocketDisableIPv6 bool\n\n// Sockaddr represents a socket address.\ntype Sockaddr interface {\n\tsockaddr() (ptr unsafe.Pointer, len _Socklen, err error) // lowercase; only we can define Sockaddrs\n}\n\n// SockaddrInet4 implements the Sockaddr interface for AF_INET type sockets.\ntype SockaddrInet4 struct {\n\tPort int\n\tAddr [4]byte\n\traw  RawSockaddrInet4\n}\n\n// SockaddrInet6 implements the Sockaddr interface for AF_INET6 type sockets.\ntype SockaddrInet6 struct {\n\tPort   int\n\tZoneId uint32\n\tAddr   [16]byte\n\traw    RawSockaddrInet6\n}\n\n// SockaddrUnix implements the Sockaddr interface for AF_UNIX type sockets.\ntype SockaddrUnix struct {\n\tName string\n\traw  RawSockaddrUnix\n}\n\nfunc Bind(fd int, sa Sockaddr) (err error) {\n\tptr, n, err := sa.sockaddr()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn bind(fd, ptr, n)\n}\n\nfunc Connect(fd int, sa Sockaddr) (err error) {\n\tptr, n, err := sa.sockaddr()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn connect(fd, ptr, n)\n}\n\nfunc Getpeername(fd int) (sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tif err = getpeername(fd, &rsa, &len); err != nil {\n\t\treturn\n\t}\n\treturn anyToSockaddr(fd, &rsa)\n}\n\nfunc GetsockoptByte(fd, level, opt int) (value byte, err error) {\n\tvar n byte\n\tvallen := _Socklen(1)\n\terr = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen)\n\treturn n, err\n}\n\nfunc GetsockoptInt(fd, level, opt int) (value int, err error) {\n\tvar n int32\n\tvallen := _Socklen(4)\n\terr = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen)\n\treturn int(n), err\n}\n\nfunc GetsockoptInet4Addr(fd, level, opt int) (value [4]byte, err error) {\n\tvallen := _Socklen(4)\n\terr = getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen)\n\treturn value, err\n}\n\nfunc GetsockoptIPMreq(fd, level, opt int) (*IPMreq, error) {\n\tvar value IPMreq\n\tvallen := _Socklen(SizeofIPMreq)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc GetsockoptIPv6Mreq(fd, level, opt int) (*IPv6Mreq, error) {\n\tvar value IPv6Mreq\n\tvallen := _Socklen(SizeofIPv6Mreq)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc GetsockoptIPv6MTUInfo(fd, level, opt int) (*IPv6MTUInfo, error) {\n\tvar value IPv6MTUInfo\n\tvallen := _Socklen(SizeofIPv6MTUInfo)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc GetsockoptICMPv6Filter(fd, level, opt int) (*ICMPv6Filter, error) {\n\tvar value ICMPv6Filter\n\tvallen := _Socklen(SizeofICMPv6Filter)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc GetsockoptLinger(fd, level, opt int) (*Linger, error) {\n\tvar linger Linger\n\tvallen := _Socklen(SizeofLinger)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&linger), &vallen)\n\treturn &linger, err\n}\n\nfunc GetsockoptTimeval(fd, level, opt int) (*Timeval, error) {\n\tvar tv Timeval\n\tvallen := _Socklen(unsafe.Sizeof(tv))\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&tv), &vallen)\n\treturn &tv, err\n}\n\nfunc GetsockoptUint64(fd, level, opt int) (value uint64, err error) {\n\tvar n uint64\n\tvallen := _Socklen(8)\n\terr = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen)\n\treturn n, err\n}\n\nfunc Recvfrom(fd int, p []byte, flags int) (n int, from Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tif n, err = recvfrom(fd, p, flags, &rsa, &len); err != nil {\n\t\treturn\n\t}\n\tif rsa.Addr.Family != AF_UNSPEC {\n\t\tfrom, err = anyToSockaddr(fd, &rsa)\n\t}\n\treturn\n}\n\n// Recvmsg receives a message from a socket using the recvmsg system call. The\n// received non-control data will be written to p, and any \"out of band\"\n// control data will be written to oob. The flags are passed to recvmsg.\n//\n// The results are:\n//   - n is the number of non-control data bytes read into p\n//   - oobn is the number of control data bytes read into oob; this may be interpreted using [ParseSocketControlMessage]\n//   - recvflags is flags returned by recvmsg\n//   - from is the address of the sender\n//\n// If the underlying socket type is not SOCK_DGRAM, a received message\n// containing oob data and a single '\\0' of non-control data is treated as if\n// the message contained only control data, i.e. n will be zero on return.\nfunc Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) {\n\tvar iov [1]Iovec\n\tif len(p) > 0 {\n\t\tiov[0].Base = &p[0]\n\t\tiov[0].SetLen(len(p))\n\t}\n\tvar rsa RawSockaddrAny\n\tn, oobn, recvflags, err = recvmsgRaw(fd, iov[:], oob, flags, &rsa)\n\t// source address is only specified if the socket is unconnected\n\tif rsa.Addr.Family != AF_UNSPEC {\n\t\tfrom, err = anyToSockaddr(fd, &rsa)\n\t}\n\treturn\n}\n\n// RecvmsgBuffers receives a message from a socket using the recvmsg system\n// call. This function is equivalent to Recvmsg, but non-control data read is\n// scattered into the buffers slices.\nfunc RecvmsgBuffers(fd int, buffers [][]byte, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) {\n\tiov := make([]Iovec, len(buffers))\n\tfor i := range buffers {\n\t\tif len(buffers[i]) > 0 {\n\t\t\tiov[i].Base = &buffers[i][0]\n\t\t\tiov[i].SetLen(len(buffers[i]))\n\t\t} else {\n\t\t\tiov[i].Base = (*byte)(unsafe.Pointer(&_zero))\n\t\t}\n\t}\n\tvar rsa RawSockaddrAny\n\tn, oobn, recvflags, err = recvmsgRaw(fd, iov, oob, flags, &rsa)\n\tif err == nil && rsa.Addr.Family != AF_UNSPEC {\n\t\tfrom, err = anyToSockaddr(fd, &rsa)\n\t}\n\treturn\n}\n\n// Sendmsg sends a message on a socket to an address using the sendmsg system\n// call. This function is equivalent to SendmsgN, but does not return the\n// number of bytes actually sent.\nfunc Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error) {\n\t_, err = SendmsgN(fd, p, oob, to, flags)\n\treturn\n}\n\n// SendmsgN sends a message on a socket to an address using the sendmsg system\n// call. p contains the non-control data to send, and oob contains the \"out of\n// band\" control data. The flags are passed to sendmsg. The number of\n// non-control bytes actually written to the socket is returned.\n//\n// Some socket types do not support sending control data without accompanying\n// non-control data. If p is empty, and oob contains control data, and the\n// underlying socket type is not SOCK_DGRAM, p will be treated as containing a\n// single '\\0' and the return value will indicate zero bytes sent.\n//\n// The Go function Recvmsg, if called with an empty p and a non-empty oob,\n// will read and ignore this additional '\\0'.  If the message is received by\n// code that does not use Recvmsg, or that does not use Go at all, that code\n// will need to be written to expect and ignore the additional '\\0'.\n//\n// If you need to send non-empty oob with p actually empty, and if the\n// underlying socket type supports it, you can do so via a raw system call as\n// follows:\n//\n//\tmsg := &unix.Msghdr{\n//\t    Control: &oob[0],\n//\t}\n//\tmsg.SetControllen(len(oob))\n//\tn, _, errno := unix.Syscall(unix.SYS_SENDMSG, uintptr(fd), uintptr(unsafe.Pointer(msg)), flags)\nfunc SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) {\n\tvar iov [1]Iovec\n\tif len(p) > 0 {\n\t\tiov[0].Base = &p[0]\n\t\tiov[0].SetLen(len(p))\n\t}\n\tvar ptr unsafe.Pointer\n\tvar salen _Socklen\n\tif to != nil {\n\t\tptr, salen, err = to.sockaddr()\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t}\n\treturn sendmsgN(fd, iov[:], oob, ptr, salen, flags)\n}\n\n// SendmsgBuffers sends a message on a socket to an address using the sendmsg\n// system call. This function is equivalent to SendmsgN, but the non-control\n// data is gathered from buffers.\nfunc SendmsgBuffers(fd int, buffers [][]byte, oob []byte, to Sockaddr, flags int) (n int, err error) {\n\tiov := make([]Iovec, len(buffers))\n\tfor i := range buffers {\n\t\tif len(buffers[i]) > 0 {\n\t\t\tiov[i].Base = &buffers[i][0]\n\t\t\tiov[i].SetLen(len(buffers[i]))\n\t\t} else {\n\t\t\tiov[i].Base = (*byte)(unsafe.Pointer(&_zero))\n\t\t}\n\t}\n\tvar ptr unsafe.Pointer\n\tvar salen _Socklen\n\tif to != nil {\n\t\tptr, salen, err = to.sockaddr()\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t}\n\treturn sendmsgN(fd, iov, oob, ptr, salen, flags)\n}\n\nfunc Send(s int, buf []byte, flags int) (err error) {\n\treturn sendto(s, buf, flags, nil, 0)\n}\n\nfunc Sendto(fd int, p []byte, flags int, to Sockaddr) (err error) {\n\tvar ptr unsafe.Pointer\n\tvar salen _Socklen\n\tif to != nil {\n\t\tptr, salen, err = to.sockaddr()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn sendto(fd, p, flags, ptr, salen)\n}\n\nfunc SetsockoptByte(fd, level, opt int, value byte) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(&value), 1)\n}\n\nfunc SetsockoptInt(fd, level, opt int, value int) (err error) {\n\tvar n = int32(value)\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(&n), 4)\n}\n\nfunc SetsockoptInet4Addr(fd, level, opt int, value [4]byte) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(&value[0]), 4)\n}\n\nfunc SetsockoptIPMreq(fd, level, opt int, mreq *IPMreq) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(mreq), SizeofIPMreq)\n}\n\nfunc SetsockoptIPv6Mreq(fd, level, opt int, mreq *IPv6Mreq) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(mreq), SizeofIPv6Mreq)\n}\n\nfunc SetsockoptICMPv6Filter(fd, level, opt int, filter *ICMPv6Filter) error {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(filter), SizeofICMPv6Filter)\n}\n\nfunc SetsockoptLinger(fd, level, opt int, l *Linger) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(l), SizeofLinger)\n}\n\nfunc SetsockoptString(fd, level, opt int, s string) (err error) {\n\tvar p unsafe.Pointer\n\tif len(s) > 0 {\n\t\tp = unsafe.Pointer(&[]byte(s)[0])\n\t}\n\treturn setsockopt(fd, level, opt, p, uintptr(len(s)))\n}\n\nfunc SetsockoptTimeval(fd, level, opt int, tv *Timeval) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(tv), unsafe.Sizeof(*tv))\n}\n\nfunc SetsockoptUint64(fd, level, opt int, value uint64) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(&value), 8)\n}\n\nfunc Socket(domain, typ, proto int) (fd int, err error) {\n\tif domain == AF_INET6 && SocketDisableIPv6 {\n\t\treturn -1, EAFNOSUPPORT\n\t}\n\tfd, err = socket(domain, typ, proto)\n\treturn\n}\n\nfunc Socketpair(domain, typ, proto int) (fd [2]int, err error) {\n\tvar fdx [2]int32\n\terr = socketpair(domain, typ, proto, &fdx)\n\tif err == nil {\n\t\tfd[0] = int(fdx[0])\n\t\tfd[1] = int(fdx[1])\n\t}\n\treturn\n}\n\nvar ioSync int64\n\nfunc CloseOnExec(fd int) { fcntl(fd, F_SETFD, FD_CLOEXEC) }\n\nfunc SetNonblock(fd int, nonblocking bool) (err error) {\n\tflag, err := fcntl(fd, F_GETFL, 0)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif (flag&O_NONBLOCK != 0) == nonblocking {\n\t\treturn nil\n\t}\n\tif nonblocking {\n\t\tflag |= O_NONBLOCK\n\t} else {\n\t\tflag &= ^O_NONBLOCK\n\t}\n\t_, err = fcntl(fd, F_SETFL, flag)\n\treturn err\n}\n\n// Exec calls execve(2), which replaces the calling executable in the process\n// tree. argv0 should be the full path to an executable (\"/bin/ls\") and the\n// executable name should also be the first argument in argv ([\"ls\", \"-l\"]).\n// envv are the environment variables that should be passed to the new\n// process ([\"USER=go\", \"PWD=/tmp\"]).\nfunc Exec(argv0 string, argv []string, envv []string) error {\n\treturn syscall.Exec(argv0, argv, envv)\n}\n\n// Lutimes sets the access and modification times tv on path. If path refers to\n// a symlink, it is not dereferenced and the timestamps are set on the symlink.\n// If tv is nil, the access and modification times are set to the current time.\n// Otherwise tv must contain exactly 2 elements, with access time as the first\n// element and modification time as the second element.\nfunc Lutimes(path string, tv []Timeval) error {\n\tif tv == nil {\n\t\treturn UtimesNanoAt(AT_FDCWD, path, nil, AT_SYMLINK_NOFOLLOW)\n\t}\n\tif len(tv) != 2 {\n\t\treturn EINVAL\n\t}\n\tts := []Timespec{\n\t\tNsecToTimespec(TimevalToNsec(tv[0])),\n\t\tNsecToTimespec(TimevalToNsec(tv[1])),\n\t}\n\treturn UtimesNanoAt(AT_FDCWD, path, ts, AT_SYMLINK_NOFOLLOW)\n}\n\n// emptyIovecs reports whether there are no bytes in the slice of Iovec.\nfunc emptyIovecs(iov []Iovec) bool {\n\tfor i := range iov {\n\t\tif iov[i].Len > 0 {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Setrlimit sets a resource limit.\nfunc Setrlimit(resource int, rlim *Rlimit) error {\n\t// Just call the syscall version, because as of Go 1.21\n\t// it will affect starting a new process.\n\treturn syscall.Setrlimit(resource, (*syscall.Rlimit)(rlim))\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_unix_gc.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build (darwin || dragonfly || freebsd || (linux && !ppc64 && !ppc64le) || netbsd || openbsd || solaris) && gc\n\npackage unix\n\nimport \"syscall\"\n\nfunc Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno)\nfunc Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno)\nfunc RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno)\nfunc RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && (ppc64le || ppc64) && gc\n\npackage unix\n\nimport \"syscall\"\n\nfunc Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) {\n\treturn syscall.Syscall(trap, a1, a2, a3)\n}\nfunc Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) {\n\treturn syscall.Syscall6(trap, a1, a2, a3, a4, a5, a6)\n}\nfunc RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) {\n\treturn syscall.RawSyscall(trap, a1, a2, a3)\n}\nfunc RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) {\n\treturn syscall.RawSyscall6(trap, a1, a2, a3, a4, a5, a6)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/syscall_zos_s390x.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build zos && s390x\n\n// Many of the following syscalls are not available on all versions of z/OS.\n// Some missing calls have legacy implementations/simulations but others\n// will be missing completely. To achieve consistent failing behaviour on\n// legacy systems, we first test the function pointer via a safeloading\n// mechanism to see if the function exists on a given system. Then execution\n// is branched to either continue the function call, or return an error.\n\npackage unix\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"os\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"runtime\"\n\t\"sort\"\n\t\"strings\"\n\t\"sync\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n//go:noescape\nfunc initZosLibVec()\n\n//go:noescape\nfunc GetZosLibVec() uintptr\n\nfunc init() {\n\tinitZosLibVec()\n\tr0, _, _ := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS_____GETENV_A<<4, uintptr(unsafe.Pointer(&([]byte(\"__ZOS_XSYSTRACE\\x00\"))[0])))\n\tif r0 != 0 {\n\t\tn, _, _ := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___ATOI_A<<4, r0)\n\t\tZosTraceLevel = int(n)\n\t\tr0, _, _ := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS_____GETENV_A<<4, uintptr(unsafe.Pointer(&([]byte(\"__ZOS_XSYSTRACEFD\\x00\"))[0])))\n\t\tif r0 != 0 {\n\t\t\tfd, _, _ := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___ATOI_A<<4, r0)\n\t\t\tf := os.NewFile(fd, \"zostracefile\")\n\t\t\tif f != nil {\n\t\t\t\tZosTracefile = f\n\t\t\t}\n\t\t}\n\n\t}\n}\n\n//go:noescape\nfunc CallLeFuncWithErr(funcdesc uintptr, parms ...uintptr) (ret, errno2 uintptr, err Errno)\n\n//go:noescape\nfunc CallLeFuncWithPtrReturn(funcdesc uintptr, parms ...uintptr) (ret, errno2 uintptr, err Errno)\n\n// -------------------------------\n// pointer validity test\n// good pointer returns 0\n// bad pointer returns 1\n//\n//go:nosplit\nfunc ptrtest(uintptr) uint64\n\n// Load memory at ptr location with error handling if the location is invalid\n//\n//go:noescape\nfunc safeload(ptr uintptr) (value uintptr, error uintptr)\n\nconst (\n\tentrypointLocationOffset = 8 // From function descriptor\n\n\txplinkEyecatcher   = 0x00c300c500c500f1 // \".C.E.E.1\"\n\teyecatcherOffset   = 16                 // From function entrypoint (negative)\n\tppa1LocationOffset = 8                  // From function entrypoint (negative)\n\n\tnameLenOffset = 0x14 // From PPA1 start\n\tnameOffset    = 0x16 // From PPA1 start\n)\n\nfunc getPpaOffset(funcptr uintptr) int64 {\n\tentrypoint, err := safeload(funcptr + entrypointLocationOffset)\n\tif err != 0 {\n\t\treturn -1\n\t}\n\n\t// XPLink functions have \".C.E.E.1\" as the first 8 bytes (EBCDIC)\n\tval, err := safeload(entrypoint - eyecatcherOffset)\n\tif err != 0 {\n\t\treturn -1\n\t}\n\tif val != xplinkEyecatcher {\n\t\treturn -1\n\t}\n\n\tppaoff, err := safeload(entrypoint - ppa1LocationOffset)\n\tif err != 0 {\n\t\treturn -1\n\t}\n\n\tppaoff >>= 32\n\treturn int64(ppaoff)\n}\n\n//-------------------------------\n// function descriptor pointer validity test\n// good pointer returns 0\n// bad pointer returns 1\n\n// TODO: currently mksyscall_zos_s390x.go generate empty string for funcName\n// have correct funcName pass to the funcptrtest function\nfunc funcptrtest(funcptr uintptr, funcName string) uint64 {\n\tentrypoint, err := safeload(funcptr + entrypointLocationOffset)\n\tif err != 0 {\n\t\treturn 1\n\t}\n\n\tppaoff := getPpaOffset(funcptr)\n\tif ppaoff == -1 {\n\t\treturn 1\n\t}\n\n\t// PPA1 offset value is from the start of the entire function block, not the entrypoint\n\tppa1 := (entrypoint - eyecatcherOffset) + uintptr(ppaoff)\n\n\tnameLen, err := safeload(ppa1 + nameLenOffset)\n\tif err != 0 {\n\t\treturn 1\n\t}\n\n\tnameLen >>= 48\n\tif nameLen > 128 {\n\t\treturn 1\n\t}\n\n\t// no function name input to argument end here\n\tif funcName == \"\" {\n\t\treturn 0\n\t}\n\n\tvar funcname [128]byte\n\tfor i := 0; i < int(nameLen); i += 8 {\n\t\tv, err := safeload(ppa1 + nameOffset + uintptr(i))\n\t\tif err != 0 {\n\t\t\treturn 1\n\t\t}\n\t\tfuncname[i] = byte(v >> 56)\n\t\tfuncname[i+1] = byte(v >> 48)\n\t\tfuncname[i+2] = byte(v >> 40)\n\t\tfuncname[i+3] = byte(v >> 32)\n\t\tfuncname[i+4] = byte(v >> 24)\n\t\tfuncname[i+5] = byte(v >> 16)\n\t\tfuncname[i+6] = byte(v >> 8)\n\t\tfuncname[i+7] = byte(v)\n\t}\n\n\truntime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___E2A_L<<4, // __e2a_l\n\t\t[]uintptr{uintptr(unsafe.Pointer(&funcname[0])), nameLen})\n\n\tname := string(funcname[:nameLen])\n\tif name != funcName {\n\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n// For detection of capabilities on a system.\n// Is function descriptor f a valid function?\nfunc isValidLeFunc(f uintptr) error {\n\tret := funcptrtest(f, \"\")\n\tif ret != 0 {\n\t\treturn fmt.Errorf(\"Bad pointer, not an LE function \")\n\t}\n\treturn nil\n}\n\n// Retrieve function name from descriptor\nfunc getLeFuncName(f uintptr) (string, error) {\n\t// assume it has been checked, only check ppa1 validity here\n\tentry := ((*[2]uintptr)(unsafe.Pointer(f)))[1]\n\tpreamp := ((*[4]uint32)(unsafe.Pointer(entry - eyecatcherOffset)))\n\n\toffsetPpa1 := preamp[2]\n\tif offsetPpa1 > 0x0ffff {\n\t\treturn \"\", fmt.Errorf(\"PPA1 offset seems too big 0x%x\\n\", offsetPpa1)\n\t}\n\n\tppa1 := uintptr(unsafe.Pointer(preamp)) + uintptr(offsetPpa1)\n\tres := ptrtest(ppa1)\n\tif res != 0 {\n\t\treturn \"\", fmt.Errorf(\"PPA1 address not valid\")\n\t}\n\n\tsize := *(*uint16)(unsafe.Pointer(ppa1 + nameLenOffset))\n\tif size > 128 {\n\t\treturn \"\", fmt.Errorf(\"Function name seems too long, length=%d\\n\", size)\n\t}\n\n\tvar name [128]byte\n\tfuncname := (*[128]byte)(unsafe.Pointer(ppa1 + nameOffset))\n\tcopy(name[0:size], funcname[0:size])\n\n\truntime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___E2A_L<<4, // __e2a_l\n\t\t[]uintptr{uintptr(unsafe.Pointer(&name[0])), uintptr(size)})\n\n\treturn string(name[:size]), nil\n}\n\n// Check z/OS version\nfunc zosLeVersion() (version, release uint32) {\n\tp1 := (*(*uintptr)(unsafe.Pointer(uintptr(1208)))) >> 32\n\tp1 = *(*uintptr)(unsafe.Pointer(uintptr(p1 + 88)))\n\tp1 = *(*uintptr)(unsafe.Pointer(uintptr(p1 + 8)))\n\tp1 = *(*uintptr)(unsafe.Pointer(uintptr(p1 + 984)))\n\tvrm := *(*uint32)(unsafe.Pointer(p1 + 80))\n\tversion = (vrm & 0x00ff0000) >> 16\n\trelease = (vrm & 0x0000ff00) >> 8\n\treturn\n}\n\n// returns a zos C FILE * for stdio fd 0, 1, 2\nfunc ZosStdioFilep(fd int32) uintptr {\n\treturn uintptr(*(*uint64)(unsafe.Pointer(uintptr(*(*uint64)(unsafe.Pointer(uintptr(*(*uint64)(unsafe.Pointer(uintptr(uint64(*(*uint32)(unsafe.Pointer(uintptr(1208)))) + 80))) + uint64((fd+2)<<3))))))))\n}\n\nfunc copyStat(stat *Stat_t, statLE *Stat_LE_t) {\n\tstat.Dev = uint64(statLE.Dev)\n\tstat.Ino = uint64(statLE.Ino)\n\tstat.Nlink = uint64(statLE.Nlink)\n\tstat.Mode = uint32(statLE.Mode)\n\tstat.Uid = uint32(statLE.Uid)\n\tstat.Gid = uint32(statLE.Gid)\n\tstat.Rdev = uint64(statLE.Rdev)\n\tstat.Size = statLE.Size\n\tstat.Atim.Sec = int64(statLE.Atim)\n\tstat.Atim.Nsec = 0 //zos doesn't return nanoseconds\n\tstat.Mtim.Sec = int64(statLE.Mtim)\n\tstat.Mtim.Nsec = 0 //zos doesn't return nanoseconds\n\tstat.Ctim.Sec = int64(statLE.Ctim)\n\tstat.Ctim.Nsec = 0 //zos doesn't return nanoseconds\n\tstat.Blksize = int64(statLE.Blksize)\n\tstat.Blocks = statLE.Blocks\n}\n\nfunc svcCall(fnptr unsafe.Pointer, argv *unsafe.Pointer, dsa *uint64)\nfunc svcLoad(name *byte) unsafe.Pointer\nfunc svcUnload(name *byte, fnptr unsafe.Pointer) int64\n\nfunc (d *Dirent) NameString() string {\n\tif d == nil {\n\t\treturn \"\"\n\t}\n\ts := string(d.Name[:])\n\tidx := strings.IndexByte(s, 0)\n\tif idx == -1 {\n\t\treturn s\n\t} else {\n\t\treturn s[:idx]\n\t}\n}\n\nfunc DecodeData(dest []byte, sz int, val uint64) {\n\tfor i := 0; i < sz; i++ {\n\t\tdest[sz-1-i] = byte((val >> (uint64(i * 8))) & 0xff)\n\t}\n}\n\nfunc EncodeData(data []byte) uint64 {\n\tvar value uint64\n\tsz := len(data)\n\tfor i := 0; i < sz; i++ {\n\t\tvalue |= uint64(data[i]) << uint64(((sz - i - 1) * 8))\n\t}\n\treturn value\n}\n\nfunc (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Len = SizeofSockaddrInet4\n\tsa.raw.Family = AF_INET\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tfor i := 0; i < len(sa.Addr); i++ {\n\t\tsa.raw.Addr[i] = sa.Addr[i]\n\t}\n\treturn unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil\n}\n\nfunc (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Len = SizeofSockaddrInet6\n\tsa.raw.Family = AF_INET6\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tsa.raw.Scope_id = sa.ZoneId\n\tfor i := 0; i < len(sa.Addr); i++ {\n\t\tsa.raw.Addr[i] = sa.Addr[i]\n\t}\n\treturn unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil\n}\n\nfunc (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) {\n\tname := sa.Name\n\tn := len(name)\n\tif n >= len(sa.raw.Path) || n == 0 {\n\t\treturn nil, 0, EINVAL\n\t}\n\tsa.raw.Len = byte(3 + n) // 2 for Family, Len; 1 for NUL\n\tsa.raw.Family = AF_UNIX\n\tfor i := 0; i < n; i++ {\n\t\tsa.raw.Path[i] = int8(name[i])\n\t}\n\treturn unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil\n}\n\nfunc anyToSockaddr(_ int, rsa *RawSockaddrAny) (Sockaddr, error) {\n\t// TODO(neeilan): Implement use of first param (fd)\n\tswitch rsa.Addr.Family {\n\tcase AF_UNIX:\n\t\tpp := (*RawSockaddrUnix)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrUnix)\n\t\t// For z/OS, only replace NUL with @ when the\n\t\t// length is not zero.\n\t\tif pp.Len != 0 && pp.Path[0] == 0 {\n\t\t\t// \"Abstract\" Unix domain socket.\n\t\t\t// Rewrite leading NUL as @ for textual display.\n\t\t\t// (This is the standard convention.)\n\t\t\t// Not friendly to overwrite in place,\n\t\t\t// but the callers below don't care.\n\t\t\tpp.Path[0] = '@'\n\t\t}\n\n\t\t// Assume path ends at NUL.\n\t\t//\n\t\t// For z/OS, the length of the name is a field\n\t\t// in the structure. To be on the safe side, we\n\t\t// will still scan the name for a NUL but only\n\t\t// to the length provided in the structure.\n\t\t//\n\t\t// This is not technically the Linux semantics for\n\t\t// abstract Unix domain sockets--they are supposed\n\t\t// to be uninterpreted fixed-size binary blobs--but\n\t\t// everyone uses this convention.\n\t\tn := 0\n\t\tfor n < int(pp.Len) && pp.Path[n] != 0 {\n\t\t\tn++\n\t\t}\n\t\tsa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n))\n\t\treturn sa, nil\n\n\tcase AF_INET:\n\t\tpp := (*RawSockaddrInet4)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrInet4)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tfor i := 0; i < len(sa.Addr); i++ {\n\t\t\tsa.Addr[i] = pp.Addr[i]\n\t\t}\n\t\treturn sa, nil\n\n\tcase AF_INET6:\n\t\tpp := (*RawSockaddrInet6)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrInet6)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tsa.ZoneId = pp.Scope_id\n\t\tfor i := 0; i < len(sa.Addr); i++ {\n\t\t\tsa.Addr[i] = pp.Addr[i]\n\t\t}\n\t\treturn sa, nil\n\t}\n\treturn nil, EAFNOSUPPORT\n}\n\nfunc Accept(fd int) (nfd int, sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tnfd, err = accept(fd, &rsa, &len)\n\tif err != nil {\n\t\treturn\n\t}\n\t// TODO(neeilan): Remove 0 in call\n\tsa, err = anyToSockaddr(0, &rsa)\n\tif err != nil {\n\t\tClose(nfd)\n\t\tnfd = 0\n\t}\n\treturn\n}\n\nfunc Accept4(fd int, flags int) (nfd int, sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tnfd, err = accept4(fd, &rsa, &len, flags)\n\tif err != nil {\n\t\treturn\n\t}\n\tif len > SizeofSockaddrAny {\n\t\tpanic(\"RawSockaddrAny too small\")\n\t}\n\t// TODO(neeilan): Remove 0 in call\n\tsa, err = anyToSockaddr(0, &rsa)\n\tif err != nil {\n\t\tClose(nfd)\n\t\tnfd = 0\n\t}\n\treturn\n}\n\nfunc Ctermid() (tty string, err error) {\n\tvar termdev [1025]byte\n\truntime.EnterSyscall()\n\tr0, err2, err1 := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___CTERMID_A<<4, uintptr(unsafe.Pointer(&termdev[0])))\n\truntime.ExitSyscall()\n\tif r0 == 0 {\n\t\treturn \"\", fmt.Errorf(\"%s (errno2=0x%x)\\n\", err1.Error(), err2)\n\t}\n\ts := string(termdev[:])\n\tidx := strings.Index(s, string(rune(0)))\n\tif idx == -1 {\n\t\ttty = s\n\t} else {\n\t\ttty = s[:idx]\n\t}\n\treturn\n}\n\nfunc (iov *Iovec) SetLen(length int) {\n\tiov.Len = uint64(length)\n}\n\nfunc (msghdr *Msghdr) SetControllen(length int) {\n\tmsghdr.Controllen = int32(length)\n}\n\nfunc (cmsg *Cmsghdr) SetLen(length int) {\n\tcmsg.Len = int32(length)\n}\n\n//sys   fcntl(fd int, cmd int, arg int) (val int, err error)\n//sys   Flistxattr(fd int, dest []byte) (sz int, err error) = SYS___FLISTXATTR_A\n//sys   Fremovexattr(fd int, attr string) (err error) = SYS___FREMOVEXATTR_A\n//sys\tread(fd int, p []byte) (n int, err error)\n//sys\twrite(fd int, p []byte) (n int, err error)\n\n//sys   Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) = SYS___FGETXATTR_A\n//sys   Fsetxattr(fd int, attr string, data []byte, flag int) (err error) = SYS___FSETXATTR_A\n\n//sys\taccept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) = SYS___ACCEPT_A\n//sys\taccept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) = SYS___ACCEPT4_A\n//sys\tbind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = SYS___BIND_A\n//sys\tconnect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = SYS___CONNECT_A\n//sysnb\tgetgroups(n int, list *_Gid_t) (nn int, err error)\n//sysnb\tsetgroups(n int, list *_Gid_t) (err error)\n//sys\tgetsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)\n//sys\tsetsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)\n//sysnb\tsocket(domain int, typ int, proto int) (fd int, err error)\n//sysnb\tsocketpair(domain int, typ int, proto int, fd *[2]int32) (err error)\n//sysnb\tgetpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = SYS___GETPEERNAME_A\n//sysnb\tgetsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = SYS___GETSOCKNAME_A\n//sys   Removexattr(path string, attr string) (err error) = SYS___REMOVEXATTR_A\n//sys\trecvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) = SYS___RECVFROM_A\n//sys\tsendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) = SYS___SENDTO_A\n//sys\trecvmsg(s int, msg *Msghdr, flags int) (n int, err error) = SYS___RECVMSG_A\n//sys\tsendmsg(s int, msg *Msghdr, flags int) (n int, err error) = SYS___SENDMSG_A\n//sys   mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) = SYS_MMAP\n//sys   munmap(addr uintptr, length uintptr) (err error) = SYS_MUNMAP\n//sys   ioctl(fd int, req int, arg uintptr) (err error) = SYS_IOCTL\n//sys   ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) = SYS_IOCTL\n//sys\tshmat(id int, addr uintptr, flag int) (ret uintptr, err error) = SYS_SHMAT\n//sys\tshmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) = SYS_SHMCTL64\n//sys\tshmdt(addr uintptr) (err error) = SYS_SHMDT\n//sys\tshmget(key int, size int, flag int) (id int, err error) = SYS_SHMGET\n\n//sys   Access(path string, mode uint32) (err error) = SYS___ACCESS_A\n//sys   Chdir(path string) (err error) = SYS___CHDIR_A\n//sys\tChown(path string, uid int, gid int) (err error) = SYS___CHOWN_A\n//sys\tChmod(path string, mode uint32) (err error) = SYS___CHMOD_A\n//sys   Creat(path string, mode uint32) (fd int, err error) = SYS___CREAT_A\n//sys\tDup(oldfd int) (fd int, err error)\n//sys\tDup2(oldfd int, newfd int) (err error)\n//sys\tDup3(oldfd int, newfd int, flags int) (err error) = SYS_DUP3\n//sys\tDirfd(dirp uintptr) (fd int, err error) = SYS_DIRFD\n//sys\tEpollCreate(size int) (fd int, err error) = SYS_EPOLL_CREATE\n//sys\tEpollCreate1(flags int) (fd int, err error) = SYS_EPOLL_CREATE1\n//sys\tEpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) = SYS_EPOLL_CTL\n//sys\tEpollPwait(epfd int, events []EpollEvent, msec int, sigmask *int) (n int, err error) = SYS_EPOLL_PWAIT\n//sys\tEpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_WAIT\n//sys\tErrno2() (er2 int) = SYS___ERRNO2\n//sys\tEventfd(initval uint, flags int) (fd int, err error) = SYS_EVENTFD\n//sys\tExit(code int)\n//sys\tFaccessat(dirfd int, path string, mode uint32, flags int) (err error) = SYS___FACCESSAT_A\n\nfunc Faccessat2(dirfd int, path string, mode uint32, flags int) (err error) {\n\treturn Faccessat(dirfd, path, mode, flags)\n}\n\n//sys\tFchdir(fd int) (err error)\n//sys\tFchmod(fd int, mode uint32) (err error)\n//sys\tFchmodat(dirfd int, path string, mode uint32, flags int) (err error) = SYS___FCHMODAT_A\n//sys\tFchown(fd int, uid int, gid int) (err error)\n//sys\tFchownat(fd int, path string, uid int, gid int, flags int) (err error) = SYS___FCHOWNAT_A\n//sys\tFcntlInt(fd uintptr, cmd int, arg int) (retval int, err error) = SYS_FCNTL\n//sys\tFdatasync(fd int) (err error) = SYS_FDATASYNC\n//sys\tfstat(fd int, stat *Stat_LE_t) (err error)\n//sys\tfstatat(dirfd int, path string, stat *Stat_LE_t, flags int) (err error) = SYS___FSTATAT_A\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\tvar statLE Stat_LE_t\n\terr = fstat(fd, &statLE)\n\tcopyStat(stat, &statLE)\n\treturn\n}\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar statLE Stat_LE_t\n\terr = fstatat(dirfd, path, &statLE, flags)\n\tcopyStat(stat, &statLE)\n\treturn\n}\n\nfunc impl_Getxattr(path string, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p2 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___GETXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)))\n\tsz = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_GetxattrAddr() *(func(path string, attr string, dest []byte) (sz int, err error))\n\nvar Getxattr = enter_Getxattr\n\nfunc enter_Getxattr(path string, attr string, dest []byte) (sz int, err error) {\n\tfuncref := get_GetxattrAddr()\n\tif validGetxattr() {\n\t\t*funcref = impl_Getxattr\n\t} else {\n\t\t*funcref = error_Getxattr\n\t}\n\treturn (*funcref)(path, attr, dest)\n}\n\nfunc error_Getxattr(path string, attr string, dest []byte) (sz int, err error) {\n\treturn -1, ENOSYS\n}\n\nfunc validGetxattr() bool {\n\tif funcptrtest(GetZosLibVec()+SYS___GETXATTR_A<<4, \"\") == 0 {\n\t\tif name, err := getLeFuncName(GetZosLibVec() + SYS___GETXATTR_A<<4); err == nil {\n\t\t\treturn name == \"__getxattr_a\"\n\t\t}\n\t}\n\treturn false\n}\n\n//sys   Lgetxattr(link string, attr string, dest []byte) (sz int, err error) = SYS___LGETXATTR_A\n//sys   Lsetxattr(path string, attr string, data []byte, flags int) (err error) = SYS___LSETXATTR_A\n\nfunc impl_Setxattr(path string, attr string, data []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(data) > 0 {\n\t\t_p2 = unsafe.Pointer(&data[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SETXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_SetxattrAddr() *(func(path string, attr string, data []byte, flags int) (err error))\n\nvar Setxattr = enter_Setxattr\n\nfunc enter_Setxattr(path string, attr string, data []byte, flags int) (err error) {\n\tfuncref := get_SetxattrAddr()\n\tif validSetxattr() {\n\t\t*funcref = impl_Setxattr\n\t} else {\n\t\t*funcref = error_Setxattr\n\t}\n\treturn (*funcref)(path, attr, data, flags)\n}\n\nfunc error_Setxattr(path string, attr string, data []byte, flags int) (err error) {\n\treturn ENOSYS\n}\n\nfunc validSetxattr() bool {\n\tif funcptrtest(GetZosLibVec()+SYS___SETXATTR_A<<4, \"\") == 0 {\n\t\tif name, err := getLeFuncName(GetZosLibVec() + SYS___SETXATTR_A<<4); err == nil {\n\t\t\treturn name == \"__setxattr_a\"\n\t\t}\n\t}\n\treturn false\n}\n\n//sys\tFstatfs(fd int, buf *Statfs_t) (err error) = SYS_FSTATFS\n//sys\tFstatvfs(fd int, stat *Statvfs_t) (err error) = SYS_FSTATVFS\n//sys\tFsync(fd int) (err error)\n//sys\tFutimes(fd int, tv []Timeval) (err error) = SYS_FUTIMES\n//sys\tFutimesat(dirfd int, path string, tv []Timeval) (err error) = SYS___FUTIMESAT_A\n//sys\tFtruncate(fd int, length int64) (err error)\n//sys\tGetrandom(buf []byte, flags int) (n int, err error) = SYS_GETRANDOM\n//sys\tInotifyInit() (fd int, err error) = SYS_INOTIFY_INIT\n//sys\tInotifyInit1(flags int) (fd int, err error) = SYS_INOTIFY_INIT1\n//sys\tInotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) = SYS___INOTIFY_ADD_WATCH_A\n//sys\tInotifyRmWatch(fd int, watchdesc uint32) (success int, err error) = SYS_INOTIFY_RM_WATCH\n//sys   Listxattr(path string, dest []byte) (sz int, err error) = SYS___LISTXATTR_A\n//sys   Llistxattr(path string, dest []byte) (sz int, err error) = SYS___LLISTXATTR_A\n//sys   Lremovexattr(path string, attr string) (err error) = SYS___LREMOVEXATTR_A\n//sys\tLutimes(path string, tv []Timeval) (err error) = SYS___LUTIMES_A\n//sys   Mprotect(b []byte, prot int) (err error) = SYS_MPROTECT\n//sys   Msync(b []byte, flags int) (err error) = SYS_MSYNC\n//sys   Console2(cmsg *ConsMsg2, modstr *byte, concmd *uint32) (err error) = SYS___CONSOLE2\n\n// Pipe2 begin\n\n//go:nosplit\nfunc getPipe2Addr() *(func([]int, int) error)\n\nvar Pipe2 = pipe2Enter\n\nfunc pipe2Enter(p []int, flags int) (err error) {\n\tif funcptrtest(GetZosLibVec()+SYS_PIPE2<<4, \"\") == 0 {\n\t\t*getPipe2Addr() = pipe2Impl\n\t} else {\n\t\t*getPipe2Addr() = pipe2Error\n\t}\n\treturn (*getPipe2Addr())(p, flags)\n}\n\nfunc pipe2Impl(p []int, flags int) (err error) {\n\tvar pp [2]_C_int\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_PIPE2<<4, uintptr(unsafe.Pointer(&pp[0])), uintptr(flags))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t} else {\n\t\tp[0] = int(pp[0])\n\t\tp[1] = int(pp[1])\n\t}\n\treturn\n}\nfunc pipe2Error(p []int, flags int) (err error) {\n\treturn fmt.Errorf(\"Pipe2 is not available on this system\")\n}\n\n// Pipe2 end\n\n//sys   Poll(fds []PollFd, timeout int) (n int, err error) = SYS_POLL\n\nfunc Readdir(dir uintptr) (dirent *Dirent, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___READDIR_A<<4, uintptr(dir))\n\truntime.ExitSyscall()\n\tdirent = (*Dirent)(unsafe.Pointer(r0))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//sys\tReaddir_r(dirp uintptr, entry *direntLE, result **direntLE) (err error) = SYS___READDIR_R_A\n//sys\tStatfs(path string, buf *Statfs_t) (err error) = SYS___STATFS_A\n//sys\tSyncfs(fd int) (err error) = SYS_SYNCFS\n//sys   Times(tms *Tms) (ticks uintptr, err error) = SYS_TIMES\n//sys   W_Getmntent(buff *byte, size int) (lastsys int, err error) = SYS_W_GETMNTENT\n//sys   W_Getmntent_A(buff *byte, size int) (lastsys int, err error) = SYS___W_GETMNTENT_A\n\n//sys   mount_LE(path string, filesystem string, fstype string, mtm uint32, parmlen int32, parm string) (err error) = SYS___MOUNT_A\n//sys   unmount_LE(filesystem string, mtm int) (err error) = SYS___UMOUNT_A\n//sys   Chroot(path string) (err error) = SYS___CHROOT_A\n//sys   Select(nmsgsfds int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (ret int, err error) = SYS_SELECT\n//sysnb Uname(buf *Utsname) (err error) = SYS_____OSNAME_A\n//sys   Unshare(flags int) (err error) = SYS_UNSHARE\n\nfunc Ptsname(fd int) (name string, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___PTSNAME_A<<4, uintptr(fd))\n\truntime.ExitSyscall()\n\tif r0 == 0 {\n\t\terr = errnoErr2(e1, e2)\n\t} else {\n\t\tname = u2s(unsafe.Pointer(r0))\n\t}\n\treturn\n}\n\nfunc u2s(cstr unsafe.Pointer) string {\n\tstr := (*[1024]uint8)(cstr)\n\ti := 0\n\tfor str[i] != 0 {\n\t\ti++\n\t}\n\treturn string(str[:i])\n}\n\nfunc Close(fd int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_CLOSE<<4, uintptr(fd))\n\truntime.ExitSyscall()\n\tfor i := 0; e1 == EAGAIN && i < 10; i++ {\n\t\truntime.EnterSyscall()\n\t\tCallLeFuncWithErr(GetZosLibVec()+SYS_USLEEP<<4, uintptr(10))\n\t\truntime.ExitSyscall()\n\t\truntime.EnterSyscall()\n\t\tr0, e2, e1 = CallLeFuncWithErr(GetZosLibVec()+SYS_CLOSE<<4, uintptr(fd))\n\t\truntime.ExitSyscall()\n\t}\n\tif r0 != 0 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// Dummy function: there are no semantics for Madvise on z/OS\nfunc Madvise(b []byte, advice int) (err error) {\n\treturn\n}\n\nfunc Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) {\n\treturn mapper.Mmap(fd, offset, length, prot, flags)\n}\n\nfunc Munmap(b []byte) (err error) {\n\treturn mapper.Munmap(b)\n}\n\nfunc MmapPtr(fd int, offset int64, addr unsafe.Pointer, length uintptr, prot int, flags int) (ret unsafe.Pointer, err error) {\n\txaddr, err := mapper.mmap(uintptr(addr), length, prot, flags, fd, offset)\n\treturn unsafe.Pointer(xaddr), err\n}\n\nfunc MunmapPtr(addr unsafe.Pointer, length uintptr) (err error) {\n\treturn mapper.munmap(uintptr(addr), length)\n}\n\n//sys   Gethostname(buf []byte) (err error) = SYS___GETHOSTNAME_A\n//sysnb\tGetgid() (gid int)\n//sysnb\tGetpid() (pid int)\n//sysnb\tGetpgid(pid int) (pgid int, err error) = SYS_GETPGID\n\nfunc Getpgrp() (pid int) {\n\tpid, _ = Getpgid(0)\n\treturn\n}\n\n//sysnb\tGetppid() (pid int)\n//sys\tGetpriority(which int, who int) (prio int, err error)\n//sysnb\tGetrlimit(resource int, rlim *Rlimit) (err error) = SYS_GETRLIMIT\n\n//sysnb getrusage(who int, rusage *rusage_zos) (err error) = SYS_GETRUSAGE\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\tvar ruz rusage_zos\n\terr = getrusage(who, &ruz)\n\t//Only the first two fields of Rusage are set\n\trusage.Utime.Sec = ruz.Utime.Sec\n\trusage.Utime.Usec = int64(ruz.Utime.Usec)\n\trusage.Stime.Sec = ruz.Stime.Sec\n\trusage.Stime.Usec = int64(ruz.Stime.Usec)\n\treturn\n}\n\n//sys\tGetegid() (egid int) = SYS_GETEGID\n//sys\tGeteuid() (euid int) = SYS_GETEUID\n//sysnb Getsid(pid int) (sid int, err error) = SYS_GETSID\n//sysnb\tGetuid() (uid int)\n//sysnb\tKill(pid int, sig Signal) (err error)\n//sys\tLchown(path string, uid int, gid int) (err error) = SYS___LCHOWN_A\n//sys\tLink(path string, link string) (err error) = SYS___LINK_A\n//sys\tLinkat(oldDirFd int, oldPath string, newDirFd int, newPath string, flags int) (err error) = SYS___LINKAT_A\n//sys\tListen(s int, n int) (err error)\n//sys\tlstat(path string, stat *Stat_LE_t) (err error) = SYS___LSTAT_A\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar statLE Stat_LE_t\n\terr = lstat(path, &statLE)\n\tcopyStat(stat, &statLE)\n\treturn\n}\n\n// for checking symlinks begins with $VERSION/ $SYSNAME/ $SYSSYMR/ $SYSSYMA/\nfunc isSpecialPath(path []byte) (v bool) {\n\tvar special = [4][8]byte{\n\t\t{'V', 'E', 'R', 'S', 'I', 'O', 'N', '/'},\n\t\t{'S', 'Y', 'S', 'N', 'A', 'M', 'E', '/'},\n\t\t{'S', 'Y', 'S', 'S', 'Y', 'M', 'R', '/'},\n\t\t{'S', 'Y', 'S', 'S', 'Y', 'M', 'A', '/'}}\n\n\tvar i, j int\n\tfor i = 0; i < len(special); i++ {\n\t\tfor j = 0; j < len(special[i]); j++ {\n\t\t\tif path[j] != special[i][j] {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif j == len(special[i]) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc realpath(srcpath string, abspath []byte) (pathlen int, errno int) {\n\tvar source [1024]byte\n\tcopy(source[:], srcpath)\n\tsource[len(srcpath)] = 0\n\tret := runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___REALPATH_A<<4, //__realpath_a()\n\t\t[]uintptr{uintptr(unsafe.Pointer(&source[0])),\n\t\t\tuintptr(unsafe.Pointer(&abspath[0]))})\n\tif ret != 0 {\n\t\tindex := bytes.IndexByte(abspath[:], byte(0))\n\t\tif index != -1 {\n\t\t\treturn index, 0\n\t\t}\n\t} else {\n\t\terrptr := (*int)(unsafe.Pointer(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___ERRNO<<4, []uintptr{}))) //__errno()\n\t\treturn 0, *errptr\n\t}\n\treturn 0, 245 // EBADDATA   245\n}\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tn = int(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___READLINK_A<<4,\n\t\t[]uintptr{uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))}))\n\truntime.KeepAlive(unsafe.Pointer(_p0))\n\tif n == -1 {\n\t\tvalue := *(*int32)(unsafe.Pointer(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___ERRNO<<4, []uintptr{})))\n\t\terr = errnoErr(Errno(value))\n\t} else {\n\t\tif buf[0] == '$' {\n\t\t\tif isSpecialPath(buf[1:9]) {\n\t\t\t\tcnt, err1 := realpath(path, buf)\n\t\t\t\tif err1 == 0 {\n\t\t\t\t\tn = cnt\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn\n}\n\nfunc impl_Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___READLINKAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\truntime.ExitSyscall()\n\tn = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t\treturn n, err\n\t} else {\n\t\tif buf[0] == '$' {\n\t\t\tif isSpecialPath(buf[1:9]) {\n\t\t\t\tcnt, err1 := realpath(path, buf)\n\t\t\t\tif err1 == 0 {\n\t\t\t\t\tn = cnt\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_ReadlinkatAddr() *(func(dirfd int, path string, buf []byte) (n int, err error))\n\nvar Readlinkat = enter_Readlinkat\n\nfunc enter_Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tfuncref := get_ReadlinkatAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___READLINKAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Readlinkat\n\t} else {\n\t\t*funcref = error_Readlinkat\n\t}\n\treturn (*funcref)(dirfd, path, buf)\n}\n\nfunc error_Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tn = -1\n\terr = ENOSYS\n\treturn\n}\n\n//sys\tMkdir(path string, mode uint32) (err error) = SYS___MKDIR_A\n//sys\tMkdirat(dirfd int, path string, mode uint32) (err error) = SYS___MKDIRAT_A\n//sys   Mkfifo(path string, mode uint32) (err error) = SYS___MKFIFO_A\n//sys\tMknod(path string, mode uint32, dev int) (err error) = SYS___MKNOD_A\n//sys\tMknodat(dirfd int, path string, mode uint32, dev int) (err error) = SYS___MKNODAT_A\n//sys\tPivotRoot(newroot string, oldroot string) (err error) = SYS___PIVOT_ROOT_A\n//sys\tPread(fd int, p []byte, offset int64) (n int, err error)\n//sys\tPwrite(fd int, p []byte, offset int64) (n int, err error)\n//sys\tPrctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) = SYS___PRCTL_A\n//sysnb\tPrlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) = SYS_PRLIMIT\n//sys\tRename(from string, to string) (err error) = SYS___RENAME_A\n//sys\tRenameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) = SYS___RENAMEAT_A\n//sys\tRenameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) = SYS___RENAMEAT2_A\n//sys\tRmdir(path string) (err error) = SYS___RMDIR_A\n//sys   Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK\n//sys\tSetegid(egid int) (err error) = SYS_SETEGID\n//sys\tSeteuid(euid int) (err error) = SYS_SETEUID\n//sys\tSethostname(p []byte) (err error) = SYS___SETHOSTNAME_A\n//sys   Setns(fd int, nstype int) (err error) = SYS_SETNS\n//sys\tSetpriority(which int, who int, prio int) (err error)\n//sysnb\tSetpgid(pid int, pgid int) (err error) = SYS_SETPGID\n//sysnb\tSetrlimit(resource int, lim *Rlimit) (err error)\n//sysnb\tSetregid(rgid int, egid int) (err error) = SYS_SETREGID\n//sysnb\tSetreuid(ruid int, euid int) (err error) = SYS_SETREUID\n//sysnb\tSetsid() (pid int, err error) = SYS_SETSID\n//sys\tSetuid(uid int) (err error) = SYS_SETUID\n//sys\tSetgid(uid int) (err error) = SYS_SETGID\n//sys\tShutdown(fd int, how int) (err error)\n//sys\tstat(path string, statLE *Stat_LE_t) (err error) = SYS___STAT_A\n\nfunc Stat(path string, sta *Stat_t) (err error) {\n\tvar statLE Stat_LE_t\n\terr = stat(path, &statLE)\n\tcopyStat(sta, &statLE)\n\treturn\n}\n\n//sys\tSymlink(path string, link string) (err error) = SYS___SYMLINK_A\n//sys\tSymlinkat(oldPath string, dirfd int, newPath string) (err error) = SYS___SYMLINKAT_A\n//sys\tSync() = SYS_SYNC\n//sys\tTruncate(path string, length int64) (err error) = SYS___TRUNCATE_A\n//sys\tTcgetattr(fildes int, termptr *Termios) (err error) = SYS_TCGETATTR\n//sys\tTcsetattr(fildes int, when int, termptr *Termios) (err error) = SYS_TCSETATTR\n//sys\tUmask(mask int) (oldmask int)\n//sys\tUnlink(path string) (err error) = SYS___UNLINK_A\n//sys\tUnlinkat(dirfd int, path string, flags int) (err error) = SYS___UNLINKAT_A\n//sys\tUtime(path string, utim *Utimbuf) (err error) = SYS___UTIME_A\n\n//sys\topen(path string, mode int, perm uint32) (fd int, err error) = SYS___OPEN_A\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tif mode&O_ACCMODE == 0 {\n\t\tmode |= O_RDONLY\n\t}\n\treturn open(path, mode, perm)\n}\n\n//sys\topenat(dirfd int, path string, flags int, mode uint32) (fd int, err error) = SYS___OPENAT_A\n\nfunc Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\tif flags&O_ACCMODE == 0 {\n\t\tflags |= O_RDONLY\n\t}\n\treturn openat(dirfd, path, flags, mode)\n}\n\n//sys\topenat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) = SYS___OPENAT2_A\n\nfunc Openat2(dirfd int, path string, how *OpenHow) (fd int, err error) {\n\tif how.Flags&O_ACCMODE == 0 {\n\t\thow.Flags |= O_RDONLY\n\t}\n\treturn openat2(dirfd, path, how, SizeofOpenHow)\n}\n\nfunc ZosFdToPath(dirfd int) (path string, err error) {\n\tvar buffer [1024]byte\n\truntime.EnterSyscall()\n\tret, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_W_IOCTL<<4, uintptr(dirfd), 17, 1024, uintptr(unsafe.Pointer(&buffer[0])))\n\truntime.ExitSyscall()\n\tif ret == 0 {\n\t\tzb := bytes.IndexByte(buffer[:], 0)\n\t\tif zb == -1 {\n\t\t\tzb = len(buffer)\n\t\t}\n\t\tCallLeFuncWithErr(GetZosLibVec()+SYS___E2A_L<<4, uintptr(unsafe.Pointer(&buffer[0])), uintptr(zb))\n\t\treturn string(buffer[:zb]), nil\n\t}\n\treturn \"\", errnoErr2(e1, e2)\n}\n\n//sys\tremove(path string) (err error)\n\nfunc Remove(path string) error {\n\treturn remove(path)\n}\n\nconst ImplementsGetwd = true\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar p unsafe.Pointer\n\tif len(buf) > 0 {\n\t\tp = unsafe.Pointer(&buf[0])\n\t} else {\n\t\tp = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___GETCWD_A<<4, uintptr(p), uintptr(len(buf)))\n\truntime.ExitSyscall()\n\tn = clen(buf) + 1\n\tif r0 == 0 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\nfunc Getwd() (wd string, err error) {\n\tvar buf [PathMax]byte\n\tn, err := Getcwd(buf[0:])\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\t// Getcwd returns the number of bytes written to buf, including the NUL.\n\tif n < 1 || n > len(buf) || buf[n-1] != 0 {\n\t\treturn \"\", EINVAL\n\t}\n\treturn string(buf[0 : n-1]), nil\n}\n\nfunc Getgroups() (gids []int, err error) {\n\tn, err := getgroups(0, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif n == 0 {\n\t\treturn nil, nil\n\t}\n\n\t// Sanity check group count.  Max is 1<<16 on Linux.\n\tif n < 0 || n > 1<<20 {\n\t\treturn nil, EINVAL\n\t}\n\n\ta := make([]_Gid_t, n)\n\tn, err = getgroups(n, &a[0])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tgids = make([]int, n)\n\tfor i, v := range a[0:n] {\n\t\tgids[i] = int(v)\n\t}\n\treturn\n}\n\nfunc Setgroups(gids []int) (err error) {\n\tif len(gids) == 0 {\n\t\treturn setgroups(0, nil)\n\t}\n\n\ta := make([]_Gid_t, len(gids))\n\tfor i, v := range gids {\n\t\ta[i] = _Gid_t(v)\n\t}\n\treturn setgroups(len(a), &a[0])\n}\n\nfunc gettid() uint64\n\nfunc Gettid() (tid int) {\n\treturn int(gettid())\n}\n\ntype WaitStatus uint32\n\n// Wait status is 7 bits at bottom, either 0 (exited),\n// 0x7F (stopped), or a signal number that caused an exit.\n// The 0x80 bit is whether there was a core dump.\n// An extra number (exit code, signal causing a stop)\n// is in the high bits.  At least that's the idea.\n// There are various irregularities.  For example, the\n// \"continued\" status is 0xFFFF, distinguishing itself\n// from stopped via the core dump bit.\n\nconst (\n\tmask    = 0x7F\n\tcore    = 0x80\n\texited  = 0x00\n\tstopped = 0x7F\n\tshift   = 8\n)\n\nfunc (w WaitStatus) Exited() bool { return w&mask == exited }\n\nfunc (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != exited }\n\nfunc (w WaitStatus) Stopped() bool { return w&0xFF == stopped }\n\nfunc (w WaitStatus) Continued() bool { return w == 0xFFFF }\n\nfunc (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 }\n\nfunc (w WaitStatus) ExitStatus() int {\n\tif !w.Exited() {\n\t\treturn -1\n\t}\n\treturn int(w>>shift) & 0xFF\n}\n\nfunc (w WaitStatus) Signal() Signal {\n\tif !w.Signaled() {\n\t\treturn -1\n\t}\n\treturn Signal(w & mask)\n}\n\nfunc (w WaitStatus) StopSignal() Signal {\n\tif !w.Stopped() {\n\t\treturn -1\n\t}\n\treturn Signal(w>>shift) & 0xFF\n}\n\nfunc (w WaitStatus) TrapCause() int { return -1 }\n\n//sys\twaitid(idType int, id int, info *Siginfo, options int) (err error)\n\nfunc Waitid(idType int, id int, info *Siginfo, options int, rusage *Rusage) (err error) {\n\treturn waitid(idType, id, info, options)\n}\n\n//sys\twaitpid(pid int, wstatus *_C_int, options int) (wpid int, err error)\n\nfunc impl_Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_WAIT4<<4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)))\n\truntime.ExitSyscall()\n\twpid = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_Wait4Addr() *(func(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error))\n\nvar Wait4 = enter_Wait4\n\nfunc enter_Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) {\n\tfuncref := get_Wait4Addr()\n\tif funcptrtest(GetZosLibVec()+SYS_WAIT4<<4, \"\") == 0 {\n\t\t*funcref = impl_Wait4\n\t} else {\n\t\t*funcref = legacyWait4\n\t}\n\treturn (*funcref)(pid, wstatus, options, rusage)\n}\n\nfunc legacyWait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) {\n\t// TODO(mundaym): z/OS doesn't have wait4. I don't think getrusage does what we want.\n\t// At the moment rusage will not be touched.\n\tvar status _C_int\n\twpid, err = waitpid(pid, &status, options)\n\tif wstatus != nil {\n\t\t*wstatus = WaitStatus(status)\n\t}\n\treturn\n}\n\n//sysnb\tgettimeofday(tv *timeval_zos) (err error)\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\tvar tvz timeval_zos\n\terr = gettimeofday(&tvz)\n\ttv.Sec = tvz.Sec\n\ttv.Usec = int64(tvz.Usec)\n\treturn\n}\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tvar tv Timeval\n\terr = Gettimeofday(&tv)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tif t != nil {\n\t\t*t = Time_t(tv.Sec)\n\t}\n\treturn Time_t(tv.Sec), nil\n}\n\nfunc setTimespec(sec, nsec int64) Timespec {\n\treturn Timespec{Sec: sec, Nsec: nsec}\n}\n\nfunc setTimeval(sec, usec int64) Timeval { //fix\n\treturn Timeval{Sec: sec, Usec: usec}\n}\n\n//sysnb pipe(p *[2]_C_int) (err error)\n\nfunc Pipe(p []int) (err error) {\n\tif len(p) != 2 {\n\t\treturn EINVAL\n\t}\n\tvar pp [2]_C_int\n\terr = pipe(&pp)\n\tp[0] = int(pp[0])\n\tp[1] = int(pp[1])\n\treturn\n}\n\n//sys\tutimes(path string, timeval *[2]Timeval) (err error) = SYS___UTIMES_A\n\nfunc Utimes(path string, tv []Timeval) (err error) {\n\tif tv == nil {\n\t\treturn utimes(path, nil)\n\t}\n\tif len(tv) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))\n}\n\n//sys\tutimensat(dirfd int, path string, ts *[2]Timespec, flags int) (err error) = SYS___UTIMENSAT_A\n\nfunc validUtimensat() bool {\n\tif funcptrtest(GetZosLibVec()+SYS___UTIMENSAT_A<<4, \"\") == 0 {\n\t\tif name, err := getLeFuncName(GetZosLibVec() + SYS___UTIMENSAT_A<<4); err == nil {\n\t\t\treturn name == \"__utimensat_a\"\n\t\t}\n\t}\n\treturn false\n}\n\n// Begin UtimesNano\n\n//go:nosplit\nfunc get_UtimesNanoAddr() *(func(path string, ts []Timespec) (err error))\n\nvar UtimesNano = enter_UtimesNano\n\nfunc enter_UtimesNano(path string, ts []Timespec) (err error) {\n\tfuncref := get_UtimesNanoAddr()\n\tif validUtimensat() {\n\t\t*funcref = utimesNanoImpl\n\t} else {\n\t\t*funcref = legacyUtimesNano\n\t}\n\treturn (*funcref)(path, ts)\n}\n\nfunc utimesNanoImpl(path string, ts []Timespec) (err error) {\n\tif ts == nil {\n\t\treturn utimensat(AT_FDCWD, path, nil, 0)\n\t}\n\tif len(ts) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)\n}\n\nfunc legacyUtimesNano(path string, ts []Timespec) (err error) {\n\tif len(ts) != 2 {\n\t\treturn EINVAL\n\t}\n\t// Not as efficient as it could be because Timespec and\n\t// Timeval have different types in the different OSes\n\ttv := [2]Timeval{\n\t\tNsecToTimeval(TimespecToNsec(ts[0])),\n\t\tNsecToTimeval(TimespecToNsec(ts[1])),\n\t}\n\treturn utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))\n}\n\n// End UtimesNano\n\n// Begin UtimesNanoAt\n\n//go:nosplit\nfunc get_UtimesNanoAtAddr() *(func(dirfd int, path string, ts []Timespec, flags int) (err error))\n\nvar UtimesNanoAt = enter_UtimesNanoAt\n\nfunc enter_UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) (err error) {\n\tfuncref := get_UtimesNanoAtAddr()\n\tif validUtimensat() {\n\t\t*funcref = utimesNanoAtImpl\n\t} else {\n\t\t*funcref = legacyUtimesNanoAt\n\t}\n\treturn (*funcref)(dirfd, path, ts, flags)\n}\n\nfunc utimesNanoAtImpl(dirfd int, path string, ts []Timespec, flags int) (err error) {\n\tif ts == nil {\n\t\treturn utimensat(dirfd, path, nil, flags)\n\t}\n\tif len(ts) != 2 {\n\t\treturn EINVAL\n\t}\n\treturn utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags)\n}\n\nfunc legacyUtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) (err error) {\n\tif path[0] != '/' {\n\t\tdirPath, err := ZosFdToPath(dirfd)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpath = dirPath + \"/\" + path\n\t}\n\tif flags == AT_SYMLINK_NOFOLLOW {\n\t\tif len(ts) != 2 {\n\t\t\treturn EINVAL\n\t\t}\n\n\t\tif ts[0].Nsec >= 5e8 {\n\t\t\tts[0].Sec++\n\t\t}\n\t\tts[0].Nsec = 0\n\t\tif ts[1].Nsec >= 5e8 {\n\t\t\tts[1].Sec++\n\t\t}\n\t\tts[1].Nsec = 0\n\n\t\t// Not as efficient as it could be because Timespec and\n\t\t// Timeval have different types in the different OSes\n\t\ttv := []Timeval{\n\t\t\tNsecToTimeval(TimespecToNsec(ts[0])),\n\t\t\tNsecToTimeval(TimespecToNsec(ts[1])),\n\t\t}\n\t\treturn Lutimes(path, tv)\n\t}\n\treturn UtimesNano(path, ts)\n}\n\n// End UtimesNanoAt\n\nfunc Getsockname(fd int) (sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tif err = getsockname(fd, &rsa, &len); err != nil {\n\t\treturn\n\t}\n\t// TODO(neeilan) : Remove this 0 ( added to get sys/unix compiling on z/OS )\n\treturn anyToSockaddr(0, &rsa)\n}\n\nconst (\n\t// identifier constants\n\tnwmHeaderIdentifier    = 0xd5e6d4c8\n\tnwmFilterIdentifier    = 0xd5e6d4c6\n\tnwmTCPConnIdentifier   = 0xd5e6d4c3\n\tnwmRecHeaderIdentifier = 0xd5e6d4d9\n\tnwmIPStatsIdentifier   = 0xd5e6d4c9d7e2e340\n\tnwmIPGStatsIdentifier  = 0xd5e6d4c9d7c7e2e3\n\tnwmTCPStatsIdentifier  = 0xd5e6d4e3c3d7e2e3\n\tnwmUDPStatsIdentifier  = 0xd5e6d4e4c4d7e2e3\n\tnwmICMPGStatsEntry     = 0xd5e6d4c9c3d4d7c7\n\tnwmICMPTStatsEntry     = 0xd5e6d4c9c3d4d7e3\n\n\t// nwmHeader constants\n\tnwmVersion1   = 1\n\tnwmVersion2   = 2\n\tnwmCurrentVer = 2\n\n\tnwmTCPConnType     = 1\n\tnwmGlobalStatsType = 14\n\n\t// nwmFilter constants\n\tnwmFilterLclAddrMask = 0x20000000 // Local address\n\tnwmFilterSrcAddrMask = 0x20000000 // Source address\n\tnwmFilterLclPortMask = 0x10000000 // Local port\n\tnwmFilterSrcPortMask = 0x10000000 // Source port\n\n\t// nwmConnEntry constants\n\tnwmTCPStateClosed   = 1\n\tnwmTCPStateListen   = 2\n\tnwmTCPStateSynSent  = 3\n\tnwmTCPStateSynRcvd  = 4\n\tnwmTCPStateEstab    = 5\n\tnwmTCPStateFinWait1 = 6\n\tnwmTCPStateFinWait2 = 7\n\tnwmTCPStateClosWait = 8\n\tnwmTCPStateLastAck  = 9\n\tnwmTCPStateClosing  = 10\n\tnwmTCPStateTimeWait = 11\n\tnwmTCPStateDeletTCB = 12\n\n\t// Existing constants on linux\n\tBPF_TCP_CLOSE        = 1\n\tBPF_TCP_LISTEN       = 2\n\tBPF_TCP_SYN_SENT     = 3\n\tBPF_TCP_SYN_RECV     = 4\n\tBPF_TCP_ESTABLISHED  = 5\n\tBPF_TCP_FIN_WAIT1    = 6\n\tBPF_TCP_FIN_WAIT2    = 7\n\tBPF_TCP_CLOSE_WAIT   = 8\n\tBPF_TCP_LAST_ACK     = 9\n\tBPF_TCP_CLOSING      = 10\n\tBPF_TCP_TIME_WAIT    = 11\n\tBPF_TCP_NEW_SYN_RECV = -1\n\tBPF_TCP_MAX_STATES   = -2\n)\n\ntype nwmTriplet struct {\n\toffset uint32\n\tlength uint32\n\tnumber uint32\n}\n\ntype nwmQuadruplet struct {\n\toffset uint32\n\tlength uint32\n\tnumber uint32\n\tmatch  uint32\n}\n\ntype nwmHeader struct {\n\tident       uint32\n\tlength      uint32\n\tversion     uint16\n\tnwmType     uint16\n\tbytesNeeded uint32\n\toptions     uint32\n\t_           [16]byte\n\tinputDesc   nwmTriplet\n\toutputDesc  nwmQuadruplet\n}\n\ntype nwmFilter struct {\n\tident         uint32\n\tflags         uint32\n\tresourceName  [8]byte\n\tresourceId    uint32\n\tlistenerId    uint32\n\tlocal         [28]byte // union of sockaddr4 and sockaddr6\n\tremote        [28]byte // union of sockaddr4 and sockaddr6\n\t_             uint16\n\t_             uint16\n\tasid          uint16\n\t_             [2]byte\n\ttnLuName      [8]byte\n\ttnMonGrp      uint32\n\ttnAppl        [8]byte\n\tapplData      [40]byte\n\tnInterface    [16]byte\n\tdVipa         [16]byte\n\tdVipaPfx      uint16\n\tdVipaPort     uint16\n\tdVipaFamily   byte\n\t_             [3]byte\n\tdestXCF       [16]byte\n\tdestXCFPfx    uint16\n\tdestXCFFamily byte\n\t_             [1]byte\n\ttargIP        [16]byte\n\ttargIPPfx     uint16\n\ttargIPFamily  byte\n\t_             [1]byte\n\t_             [20]byte\n}\n\ntype nwmRecHeader struct {\n\tident  uint32\n\tlength uint32\n\tnumber byte\n\t_      [3]byte\n}\n\ntype nwmTCPStatsEntry struct {\n\tident             uint64\n\tcurrEstab         uint32\n\tactiveOpened      uint32\n\tpassiveOpened     uint32\n\tconnClosed        uint32\n\testabResets       uint32\n\tattemptFails      uint32\n\tpassiveDrops      uint32\n\ttimeWaitReused    uint32\n\tinSegs            uint64\n\tpredictAck        uint32\n\tpredictData       uint32\n\tinDupAck          uint32\n\tinBadSum          uint32\n\tinBadLen          uint32\n\tinShort           uint32\n\tinDiscOldTime     uint32\n\tinAllBeforeWin    uint32\n\tinSomeBeforeWin   uint32\n\tinAllAfterWin     uint32\n\tinSomeAfterWin    uint32\n\tinOutOfOrder      uint32\n\tinAfterClose      uint32\n\tinWinProbes       uint32\n\tinWinUpdates      uint32\n\toutWinUpdates     uint32\n\toutSegs           uint64\n\toutDelayAcks      uint32\n\toutRsts           uint32\n\tretransSegs       uint32\n\tretransTimeouts   uint32\n\tretransDrops      uint32\n\tpmtuRetrans       uint32\n\tpmtuErrors        uint32\n\toutWinProbes      uint32\n\tprobeDrops        uint32\n\tkeepAliveProbes   uint32\n\tkeepAliveDrops    uint32\n\tfinwait2Drops     uint32\n\tacceptCount       uint64\n\tinBulkQSegs       uint64\n\tinDiscards        uint64\n\tconnFloods        uint32\n\tconnStalls        uint32\n\tcfgEphemDef       uint16\n\tephemInUse        uint16\n\tephemHiWater      uint16\n\tflags             byte\n\t_                 [1]byte\n\tephemExhaust      uint32\n\tsmcRCurrEstabLnks uint32\n\tsmcRLnkActTimeOut uint32\n\tsmcRActLnkOpened  uint32\n\tsmcRPasLnkOpened  uint32\n\tsmcRLnksClosed    uint32\n\tsmcRCurrEstab     uint32\n\tsmcRActiveOpened  uint32\n\tsmcRPassiveOpened uint32\n\tsmcRConnClosed    uint32\n\tsmcRInSegs        uint64\n\tsmcROutSegs       uint64\n\tsmcRInRsts        uint32\n\tsmcROutRsts       uint32\n\tsmcDCurrEstabLnks uint32\n\tsmcDActLnkOpened  uint32\n\tsmcDPasLnkOpened  uint32\n\tsmcDLnksClosed    uint32\n\tsmcDCurrEstab     uint32\n\tsmcDActiveOpened  uint32\n\tsmcDPassiveOpened uint32\n\tsmcDConnClosed    uint32\n\tsmcDInSegs        uint64\n\tsmcDOutSegs       uint64\n\tsmcDInRsts        uint32\n\tsmcDOutRsts       uint32\n}\n\ntype nwmConnEntry struct {\n\tident             uint32\n\tlocal             [28]byte // union of sockaddr4 and sockaddr6\n\tremote            [28]byte // union of sockaddr4 and sockaddr6\n\tstartTime         [8]byte  // uint64, changed to prevent padding from being inserted\n\tlastActivity      [8]byte  // uint64\n\tbytesIn           [8]byte  // uint64\n\tbytesOut          [8]byte  // uint64\n\tinSegs            [8]byte  // uint64\n\toutSegs           [8]byte  // uint64\n\tstate             uint16\n\tactiveOpen        byte\n\tflag01            byte\n\toutBuffered       uint32\n\tinBuffered        uint32\n\tmaxSndWnd         uint32\n\treXmtCount        uint32\n\tcongestionWnd     uint32\n\tssThresh          uint32\n\troundTripTime     uint32\n\troundTripVar      uint32\n\tsendMSS           uint32\n\tsndWnd            uint32\n\trcvBufSize        uint32\n\tsndBufSize        uint32\n\toutOfOrderCount   uint32\n\tlcl0WindowCount   uint32\n\trmt0WindowCount   uint32\n\tdupacks           uint32\n\tflag02            byte\n\tsockOpt6Cont      byte\n\tasid              uint16\n\tresourceName      [8]byte\n\tresourceId        uint32\n\tsubtask           uint32\n\tsockOpt           byte\n\tsockOpt6          byte\n\tclusterConnFlag   byte\n\tproto             byte\n\ttargetAppl        [8]byte\n\tluName            [8]byte\n\tclientUserId      [8]byte\n\tlogMode           [8]byte\n\ttimeStamp         uint32\n\ttimeStampAge      uint32\n\tserverResourceId  uint32\n\tintfName          [16]byte\n\tttlsStatPol       byte\n\tttlsStatConn      byte\n\tttlsSSLProt       uint16\n\tttlsNegCiph       [2]byte\n\tttlsSecType       byte\n\tttlsFIPS140Mode   byte\n\tttlsUserID        [8]byte\n\tapplData          [40]byte\n\tinOldestTime      [8]byte // uint64\n\toutOldestTime     [8]byte // uint64\n\ttcpTrustedPartner byte\n\t_                 [3]byte\n\tbulkDataIntfName  [16]byte\n\tttlsNegCiph4      [4]byte\n\tsmcReason         uint32\n\tlclSMCLinkId      uint32\n\trmtSMCLinkId      uint32\n\tsmcStatus         byte\n\tsmcFlags          byte\n\t_                 [2]byte\n\trcvWnd            uint32\n\tlclSMCBufSz       uint32\n\trmtSMCBufSz       uint32\n\tttlsSessID        [32]byte\n\tttlsSessIDLen     int16\n\t_                 [1]byte\n\tsmcDStatus        byte\n\tsmcDReason        uint32\n}\n\nvar svcNameTable [][]byte = [][]byte{\n\t[]byte(\"\\xc5\\xe9\\xc2\\xd5\\xd4\\xc9\\xc6\\xf4\"), // svc_EZBNMIF4\n}\n\nconst (\n\tsvc_EZBNMIF4 = 0\n)\n\nfunc GetsockoptTCPInfo(fd, level, opt int) (*TCPInfo, error) {\n\tjobname := []byte(\"\\x5c\\x40\\x40\\x40\\x40\\x40\\x40\\x40\") // \"*\"\n\tresponseBuffer := [4096]byte{0}\n\tvar bufferAlet, reasonCode uint32 = 0, 0\n\tvar bufferLen, returnValue, returnCode int32 = 4096, 0, 0\n\n\tdsa := [18]uint64{0}\n\tvar argv [7]unsafe.Pointer\n\targv[0] = unsafe.Pointer(&jobname[0])\n\targv[1] = unsafe.Pointer(&responseBuffer[0])\n\targv[2] = unsafe.Pointer(&bufferAlet)\n\targv[3] = unsafe.Pointer(&bufferLen)\n\targv[4] = unsafe.Pointer(&returnValue)\n\targv[5] = unsafe.Pointer(&returnCode)\n\targv[6] = unsafe.Pointer(&reasonCode)\n\n\trequest := (*struct {\n\t\theader nwmHeader\n\t\tfilter nwmFilter\n\t})(unsafe.Pointer(&responseBuffer[0]))\n\n\tEZBNMIF4 := svcLoad(&svcNameTable[svc_EZBNMIF4][0])\n\tif EZBNMIF4 == nil {\n\t\treturn nil, errnoErr(EINVAL)\n\t}\n\n\t// GetGlobalStats EZBNMIF4 call\n\trequest.header.ident = nwmHeaderIdentifier\n\trequest.header.length = uint32(unsafe.Sizeof(request.header))\n\trequest.header.version = nwmCurrentVer\n\trequest.header.nwmType = nwmGlobalStatsType\n\trequest.header.options = 0x80000000\n\n\tsvcCall(EZBNMIF4, &argv[0], &dsa[0])\n\n\t// outputDesc field is filled by EZBNMIF4 on success\n\tif returnCode != 0 || request.header.outputDesc.offset == 0 {\n\t\treturn nil, errnoErr(EINVAL)\n\t}\n\n\t// Check that EZBNMIF4 returned a nwmRecHeader\n\trecHeader := (*nwmRecHeader)(unsafe.Pointer(&responseBuffer[request.header.outputDesc.offset]))\n\tif recHeader.ident != nwmRecHeaderIdentifier {\n\t\treturn nil, errnoErr(EINVAL)\n\t}\n\n\t// Parse nwmTriplets to get offsets of returned entries\n\tvar sections []*uint64\n\tvar sectionDesc *nwmTriplet = (*nwmTriplet)(unsafe.Pointer(&responseBuffer[0]))\n\tfor i := uint32(0); i < uint32(recHeader.number); i++ {\n\t\toffset := request.header.outputDesc.offset + uint32(unsafe.Sizeof(*recHeader)) + i*uint32(unsafe.Sizeof(*sectionDesc))\n\t\tsectionDesc = (*nwmTriplet)(unsafe.Pointer(&responseBuffer[offset]))\n\t\tfor j := uint32(0); j < sectionDesc.number; j++ {\n\t\t\toffset = request.header.outputDesc.offset + sectionDesc.offset + j*sectionDesc.length\n\t\t\tsections = append(sections, (*uint64)(unsafe.Pointer(&responseBuffer[offset])))\n\t\t}\n\t}\n\n\t// Find nwmTCPStatsEntry in returned entries\n\tvar tcpStats *nwmTCPStatsEntry = nil\n\tfor _, ptr := range sections {\n\t\tswitch *ptr {\n\t\tcase nwmTCPStatsIdentifier:\n\t\t\tif tcpStats != nil {\n\t\t\t\treturn nil, errnoErr(EINVAL)\n\t\t\t}\n\t\t\ttcpStats = (*nwmTCPStatsEntry)(unsafe.Pointer(ptr))\n\t\tcase nwmIPStatsIdentifier:\n\t\tcase nwmIPGStatsIdentifier:\n\t\tcase nwmUDPStatsIdentifier:\n\t\tcase nwmICMPGStatsEntry:\n\t\tcase nwmICMPTStatsEntry:\n\t\tdefault:\n\t\t\treturn nil, errnoErr(EINVAL)\n\t\t}\n\t}\n\tif tcpStats == nil {\n\t\treturn nil, errnoErr(EINVAL)\n\t}\n\n\t// GetConnectionDetail EZBNMIF4 call\n\tresponseBuffer = [4096]byte{0}\n\tdsa = [18]uint64{0}\n\tbufferAlet, reasonCode = 0, 0\n\tbufferLen, returnValue, returnCode = 4096, 0, 0\n\tnameptr := (*uint32)(unsafe.Pointer(uintptr(0x21c))) // Get jobname of current process\n\tnameptr = (*uint32)(unsafe.Pointer(uintptr(*nameptr + 12)))\n\targv[0] = unsafe.Pointer(uintptr(*nameptr))\n\n\trequest.header.ident = nwmHeaderIdentifier\n\trequest.header.length = uint32(unsafe.Sizeof(request.header))\n\trequest.header.version = nwmCurrentVer\n\trequest.header.nwmType = nwmTCPConnType\n\trequest.header.options = 0x80000000\n\n\trequest.filter.ident = nwmFilterIdentifier\n\n\tvar localSockaddr RawSockaddrAny\n\tsocklen := _Socklen(SizeofSockaddrAny)\n\terr := getsockname(fd, &localSockaddr, &socklen)\n\tif err != nil {\n\t\treturn nil, errnoErr(EINVAL)\n\t}\n\tif localSockaddr.Addr.Family == AF_INET {\n\t\tlocalSockaddr := (*RawSockaddrInet4)(unsafe.Pointer(&localSockaddr.Addr))\n\t\tlocalSockFilter := (*RawSockaddrInet4)(unsafe.Pointer(&request.filter.local[0]))\n\t\tlocalSockFilter.Family = AF_INET\n\t\tvar i int\n\t\tfor i = 0; i < 4; i++ {\n\t\t\tif localSockaddr.Addr[i] != 0 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif i != 4 {\n\t\t\trequest.filter.flags |= nwmFilterLclAddrMask\n\t\t\tfor i = 0; i < 4; i++ {\n\t\t\t\tlocalSockFilter.Addr[i] = localSockaddr.Addr[i]\n\t\t\t}\n\t\t}\n\t\tif localSockaddr.Port != 0 {\n\t\t\trequest.filter.flags |= nwmFilterLclPortMask\n\t\t\tlocalSockFilter.Port = localSockaddr.Port\n\t\t}\n\t} else if localSockaddr.Addr.Family == AF_INET6 {\n\t\tlocalSockaddr := (*RawSockaddrInet6)(unsafe.Pointer(&localSockaddr.Addr))\n\t\tlocalSockFilter := (*RawSockaddrInet6)(unsafe.Pointer(&request.filter.local[0]))\n\t\tlocalSockFilter.Family = AF_INET6\n\t\tvar i int\n\t\tfor i = 0; i < 16; i++ {\n\t\t\tif localSockaddr.Addr[i] != 0 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif i != 16 {\n\t\t\trequest.filter.flags |= nwmFilterLclAddrMask\n\t\t\tfor i = 0; i < 16; i++ {\n\t\t\t\tlocalSockFilter.Addr[i] = localSockaddr.Addr[i]\n\t\t\t}\n\t\t}\n\t\tif localSockaddr.Port != 0 {\n\t\t\trequest.filter.flags |= nwmFilterLclPortMask\n\t\t\tlocalSockFilter.Port = localSockaddr.Port\n\t\t}\n\t}\n\n\tsvcCall(EZBNMIF4, &argv[0], &dsa[0])\n\n\t// outputDesc field is filled by EZBNMIF4 on success\n\tif returnCode != 0 || request.header.outputDesc.offset == 0 {\n\t\treturn nil, errnoErr(EINVAL)\n\t}\n\n\t// Check that EZBNMIF4 returned a nwmConnEntry\n\tconn := (*nwmConnEntry)(unsafe.Pointer(&responseBuffer[request.header.outputDesc.offset]))\n\tif conn.ident != nwmTCPConnIdentifier {\n\t\treturn nil, errnoErr(EINVAL)\n\t}\n\n\t// Copy data from the returned data structures into tcpInfo\n\t// Stats from nwmConnEntry are specific to that connection.\n\t// Stats from nwmTCPStatsEntry are global (to the interface?)\n\t// Fields may not be an exact match. Some fields have no equivalent.\n\tvar tcpinfo TCPInfo\n\ttcpinfo.State = uint8(conn.state)\n\ttcpinfo.Ca_state = 0 // dummy\n\ttcpinfo.Retransmits = uint8(tcpStats.retransSegs)\n\ttcpinfo.Probes = uint8(tcpStats.outWinProbes)\n\ttcpinfo.Backoff = 0 // dummy\n\ttcpinfo.Options = 0 // dummy\n\ttcpinfo.Rto = tcpStats.retransTimeouts\n\ttcpinfo.Ato = tcpStats.outDelayAcks\n\ttcpinfo.Snd_mss = conn.sendMSS\n\ttcpinfo.Rcv_mss = conn.sendMSS // dummy\n\ttcpinfo.Unacked = 0            // dummy\n\ttcpinfo.Sacked = 0             // dummy\n\ttcpinfo.Lost = 0               // dummy\n\ttcpinfo.Retrans = conn.reXmtCount\n\ttcpinfo.Fackets = 0 // dummy\n\ttcpinfo.Last_data_sent = uint32(*(*uint64)(unsafe.Pointer(&conn.lastActivity[0])))\n\ttcpinfo.Last_ack_sent = uint32(*(*uint64)(unsafe.Pointer(&conn.outOldestTime[0])))\n\ttcpinfo.Last_data_recv = uint32(*(*uint64)(unsafe.Pointer(&conn.inOldestTime[0])))\n\ttcpinfo.Last_ack_recv = uint32(*(*uint64)(unsafe.Pointer(&conn.inOldestTime[0])))\n\ttcpinfo.Pmtu = conn.sendMSS // dummy, NWMIfRouteMtu is a candidate\n\ttcpinfo.Rcv_ssthresh = conn.ssThresh\n\ttcpinfo.Rtt = conn.roundTripTime\n\ttcpinfo.Rttvar = conn.roundTripVar\n\ttcpinfo.Snd_ssthresh = conn.ssThresh // dummy\n\ttcpinfo.Snd_cwnd = conn.congestionWnd\n\ttcpinfo.Advmss = conn.sendMSS        // dummy\n\ttcpinfo.Reordering = 0               // dummy\n\ttcpinfo.Rcv_rtt = conn.roundTripTime // dummy\n\ttcpinfo.Rcv_space = conn.sendMSS     // dummy\n\ttcpinfo.Total_retrans = conn.reXmtCount\n\n\tsvcUnload(&svcNameTable[svc_EZBNMIF4][0], EZBNMIF4)\n\n\treturn &tcpinfo, nil\n}\n\n// GetsockoptString returns the string value of the socket option opt for the\n// socket associated with fd at the given socket level.\nfunc GetsockoptString(fd, level, opt int) (string, error) {\n\tbuf := make([]byte, 256)\n\tvallen := _Socklen(len(buf))\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\n\treturn ByteSliceToString(buf[:vallen]), nil\n}\n\nfunc Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) {\n\tvar msg Msghdr\n\tvar rsa RawSockaddrAny\n\tmsg.Name = (*byte)(unsafe.Pointer(&rsa))\n\tmsg.Namelen = SizeofSockaddrAny\n\tvar iov Iovec\n\tif len(p) > 0 {\n\t\tiov.Base = (*byte)(unsafe.Pointer(&p[0]))\n\t\tiov.SetLen(len(p))\n\t}\n\tvar dummy byte\n\tif len(oob) > 0 {\n\t\t// receive at least one normal byte\n\t\tif len(p) == 0 {\n\t\t\tiov.Base = &dummy\n\t\t\tiov.SetLen(1)\n\t\t}\n\t\tmsg.Control = (*byte)(unsafe.Pointer(&oob[0]))\n\t\tmsg.SetControllen(len(oob))\n\t}\n\tmsg.Iov = &iov\n\tmsg.Iovlen = 1\n\tif n, err = recvmsg(fd, &msg, flags); err != nil {\n\t\treturn\n\t}\n\toobn = int(msg.Controllen)\n\trecvflags = int(msg.Flags)\n\t// source address is only specified if the socket is unconnected\n\tif rsa.Addr.Family != AF_UNSPEC {\n\t\t// TODO(neeilan): Remove 0 arg added to get this compiling on z/OS\n\t\tfrom, err = anyToSockaddr(0, &rsa)\n\t}\n\treturn\n}\n\nfunc Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error) {\n\t_, err = SendmsgN(fd, p, oob, to, flags)\n\treturn\n}\n\nfunc SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) {\n\tvar ptr unsafe.Pointer\n\tvar salen _Socklen\n\tif to != nil {\n\t\tvar err error\n\t\tptr, salen, err = to.sockaddr()\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t}\n\tvar msg Msghdr\n\tmsg.Name = (*byte)(unsafe.Pointer(ptr))\n\tmsg.Namelen = int32(salen)\n\tvar iov Iovec\n\tif len(p) > 0 {\n\t\tiov.Base = (*byte)(unsafe.Pointer(&p[0]))\n\t\tiov.SetLen(len(p))\n\t}\n\tvar dummy byte\n\tif len(oob) > 0 {\n\t\t// send at least one normal byte\n\t\tif len(p) == 0 {\n\t\t\tiov.Base = &dummy\n\t\t\tiov.SetLen(1)\n\t\t}\n\t\tmsg.Control = (*byte)(unsafe.Pointer(&oob[0]))\n\t\tmsg.SetControllen(len(oob))\n\t}\n\tmsg.Iov = &iov\n\tmsg.Iovlen = 1\n\tif n, err = sendmsg(fd, &msg, flags); err != nil {\n\t\treturn 0, err\n\t}\n\tif len(oob) > 0 && len(p) == 0 {\n\t\tn = 0\n\t}\n\treturn n, nil\n}\n\nfunc Opendir(name string) (uintptr, error) {\n\tp, err := BytePtrFromString(name)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\terr = nil\n\truntime.EnterSyscall()\n\tdir, e2, e1 := CallLeFuncWithPtrReturn(GetZosLibVec()+SYS___OPENDIR_A<<4, uintptr(unsafe.Pointer(p)))\n\truntime.ExitSyscall()\n\truntime.KeepAlive(unsafe.Pointer(p))\n\tif dir == 0 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn dir, err\n}\n\n// clearsyscall.Errno resets the errno value to 0.\nfunc clearErrno()\n\nfunc Closedir(dir uintptr) error {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_CLOSEDIR<<4, dir)\n\truntime.ExitSyscall()\n\tif r0 != 0 {\n\t\treturn errnoErr2(e1, e2)\n\t}\n\treturn nil\n}\n\nfunc Seekdir(dir uintptr, pos int) {\n\truntime.EnterSyscall()\n\tCallLeFuncWithErr(GetZosLibVec()+SYS_SEEKDIR<<4, dir, uintptr(pos))\n\truntime.ExitSyscall()\n}\n\nfunc Telldir(dir uintptr) (int, error) {\n\tp, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_TELLDIR<<4, dir)\n\tpos := int(p)\n\tif int64(p) == -1 {\n\t\treturn pos, errnoErr2(e1, e2)\n\t}\n\treturn pos, nil\n}\n\n// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command.\nfunc FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error {\n\t// struct flock is packed on z/OS. We can't emulate that in Go so\n\t// instead we pack it here.\n\tvar flock [24]byte\n\t*(*int16)(unsafe.Pointer(&flock[0])) = lk.Type\n\t*(*int16)(unsafe.Pointer(&flock[2])) = lk.Whence\n\t*(*int64)(unsafe.Pointer(&flock[4])) = lk.Start\n\t*(*int64)(unsafe.Pointer(&flock[12])) = lk.Len\n\t*(*int32)(unsafe.Pointer(&flock[20])) = lk.Pid\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCNTL<<4, fd, uintptr(cmd), uintptr(unsafe.Pointer(&flock)))\n\truntime.ExitSyscall()\n\tlk.Type = *(*int16)(unsafe.Pointer(&flock[0]))\n\tlk.Whence = *(*int16)(unsafe.Pointer(&flock[2]))\n\tlk.Start = *(*int64)(unsafe.Pointer(&flock[4]))\n\tlk.Len = *(*int64)(unsafe.Pointer(&flock[12]))\n\tlk.Pid = *(*int32)(unsafe.Pointer(&flock[20]))\n\tif r0 == 0 {\n\t\treturn nil\n\t}\n\treturn errnoErr2(e1, e2)\n}\n\nfunc impl_Flock(fd int, how int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FLOCK<<4, uintptr(fd), uintptr(how))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_FlockAddr() *(func(fd int, how int) (err error))\n\nvar Flock = enter_Flock\n\nfunc validFlock(fp uintptr) bool {\n\tif funcptrtest(GetZosLibVec()+SYS_FLOCK<<4, \"\") == 0 {\n\t\tif name, err := getLeFuncName(GetZosLibVec() + SYS_FLOCK<<4); err == nil {\n\t\t\treturn name == \"flock\"\n\t\t}\n\t}\n\treturn false\n}\n\nfunc enter_Flock(fd int, how int) (err error) {\n\tfuncref := get_FlockAddr()\n\tif validFlock(GetZosLibVec() + SYS_FLOCK<<4) {\n\t\t*funcref = impl_Flock\n\t} else {\n\t\t*funcref = legacyFlock\n\t}\n\treturn (*funcref)(fd, how)\n}\n\nfunc legacyFlock(fd int, how int) error {\n\n\tvar flock_type int16\n\tvar fcntl_cmd int\n\n\tswitch how {\n\tcase LOCK_SH | LOCK_NB:\n\t\tflock_type = F_RDLCK\n\t\tfcntl_cmd = F_SETLK\n\tcase LOCK_EX | LOCK_NB:\n\t\tflock_type = F_WRLCK\n\t\tfcntl_cmd = F_SETLK\n\tcase LOCK_EX:\n\t\tflock_type = F_WRLCK\n\t\tfcntl_cmd = F_SETLKW\n\tcase LOCK_UN:\n\t\tflock_type = F_UNLCK\n\t\tfcntl_cmd = F_SETLKW\n\tdefault:\n\t}\n\n\tflock := Flock_t{\n\t\tType:   int16(flock_type),\n\t\tWhence: int16(0),\n\t\tStart:  int64(0),\n\t\tLen:    int64(0),\n\t\tPid:    int32(Getppid()),\n\t}\n\n\terr := FcntlFlock(uintptr(fd), fcntl_cmd, &flock)\n\treturn err\n}\n\nfunc Mlock(b []byte) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MLOCKALL<<4, _BPX_NONSWAP)\n\truntime.ExitSyscall()\n\tif r0 != 0 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\nfunc Mlock2(b []byte, flags int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MLOCKALL<<4, _BPX_NONSWAP)\n\truntime.ExitSyscall()\n\tif r0 != 0 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\nfunc Mlockall(flags int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MLOCKALL<<4, _BPX_NONSWAP)\n\truntime.ExitSyscall()\n\tif r0 != 0 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\nfunc Munlock(b []byte) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MLOCKALL<<4, _BPX_SWAP)\n\truntime.ExitSyscall()\n\tif r0 != 0 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\nfunc Munlockall() (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MLOCKALL<<4, _BPX_SWAP)\n\truntime.ExitSyscall()\n\tif r0 != 0 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\nfunc ClockGettime(clockid int32, ts *Timespec) error {\n\n\tvar ticks_per_sec uint32 = 100 //TODO(kenan): value is currently hardcoded; need sysconf() call otherwise\n\tvar nsec_per_sec int64 = 1000000000\n\n\tif ts == nil {\n\t\treturn EFAULT\n\t}\n\tif clockid == CLOCK_REALTIME || clockid == CLOCK_MONOTONIC {\n\t\tvar nanotime int64 = runtime.Nanotime1()\n\t\tts.Sec = nanotime / nsec_per_sec\n\t\tts.Nsec = nanotime % nsec_per_sec\n\t} else if clockid == CLOCK_PROCESS_CPUTIME_ID || clockid == CLOCK_THREAD_CPUTIME_ID {\n\t\tvar tm Tms\n\t\t_, err := Times(&tm)\n\t\tif err != nil {\n\t\t\treturn EFAULT\n\t\t}\n\t\tts.Sec = int64(tm.Utime / ticks_per_sec)\n\t\tts.Nsec = int64(tm.Utime) * nsec_per_sec / int64(ticks_per_sec)\n\t} else {\n\t\treturn EINVAL\n\t}\n\treturn nil\n}\n\n// Chtag\n\n//go:nosplit\nfunc get_ChtagAddr() *(func(path string, ccsid uint64, textbit uint64) error)\n\nvar Chtag = enter_Chtag\n\nfunc enter_Chtag(path string, ccsid uint64, textbit uint64) error {\n\tfuncref := get_ChtagAddr()\n\tif validSetxattr() {\n\t\t*funcref = impl_Chtag\n\t} else {\n\t\t*funcref = legacy_Chtag\n\t}\n\treturn (*funcref)(path, ccsid, textbit)\n}\n\nfunc legacy_Chtag(path string, ccsid uint64, textbit uint64) error {\n\ttag := ccsid<<16 | textbit<<15\n\tvar tag_buff [8]byte\n\tDecodeData(tag_buff[:], 8, tag)\n\treturn Setxattr(path, \"filetag\", tag_buff[:], XATTR_REPLACE)\n}\n\nfunc impl_Chtag(path string, ccsid uint64, textbit uint64) error {\n\ttag := ccsid<<16 | textbit<<15\n\tvar tag_buff [4]byte\n\tDecodeData(tag_buff[:], 4, tag)\n\treturn Setxattr(path, \"system.filetag\", tag_buff[:], XATTR_REPLACE)\n}\n\n// End of Chtag\n\n// Nanosleep\n\n//go:nosplit\nfunc get_NanosleepAddr() *(func(time *Timespec, leftover *Timespec) error)\n\nvar Nanosleep = enter_Nanosleep\n\nfunc enter_Nanosleep(time *Timespec, leftover *Timespec) error {\n\tfuncref := get_NanosleepAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_NANOSLEEP<<4, \"\") == 0 {\n\t\t*funcref = impl_Nanosleep\n\t} else {\n\t\t*funcref = legacyNanosleep\n\t}\n\treturn (*funcref)(time, leftover)\n}\n\nfunc impl_Nanosleep(time *Timespec, leftover *Timespec) error {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_NANOSLEEP<<4, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\treturn errnoErr2(e1, e2)\n\t}\n\treturn nil\n}\n\nfunc legacyNanosleep(time *Timespec, leftover *Timespec) error {\n\tt0 := runtime.Nanotime1()\n\tvar secrem uint32\n\tvar nsecrem uint32\n\ttotal := time.Sec*1000000000 + time.Nsec\n\telapsed := runtime.Nanotime1() - t0\n\tvar rv int32\n\tvar rc int32\n\tvar err error\n\t// repeatedly sleep for 1 second until less than 1 second left\n\tfor total-elapsed > 1000000000 {\n\t\trv, rc, _ = BpxCondTimedWait(uint32(1), uint32(0), uint32(CW_CONDVAR), &secrem, &nsecrem)\n\t\tif rv != 0 && rc != 112 { // 112 is EAGAIN\n\t\t\tif leftover != nil && rc == 120 { // 120 is EINTR\n\t\t\t\tleftover.Sec = int64(secrem)\n\t\t\t\tleftover.Nsec = int64(nsecrem)\n\t\t\t}\n\t\t\terr = Errno(rc)\n\t\t\treturn err\n\t\t}\n\t\telapsed = runtime.Nanotime1() - t0\n\t}\n\t// sleep the remainder\n\tif total > elapsed {\n\t\trv, rc, _ = BpxCondTimedWait(uint32(0), uint32(total-elapsed), uint32(CW_CONDVAR), &secrem, &nsecrem)\n\t}\n\tif leftover != nil && rc == 120 {\n\t\tleftover.Sec = int64(secrem)\n\t\tleftover.Nsec = int64(nsecrem)\n\t}\n\tif rv != 0 && rc != 112 {\n\t\terr = Errno(rc)\n\t}\n\treturn err\n}\n\n// End of Nanosleep\n\nvar (\n\tStdin  = 0\n\tStdout = 1\n\tStderr = 2\n)\n\n// Do the interface allocations only once for common\n// Errno values.\nvar (\n\terrEAGAIN error = syscall.EAGAIN\n\terrEINVAL error = syscall.EINVAL\n\terrENOENT error = syscall.ENOENT\n)\n\nvar ZosTraceLevel int\nvar ZosTracefile *os.File\n\nvar (\n\tsignalNameMapOnce sync.Once\n\tsignalNameMap     map[string]syscall.Signal\n)\n\n// errnoErr returns common boxed Errno values, to prevent\n// allocations at runtime.\nfunc errnoErr(e Errno) error {\n\tswitch e {\n\tcase 0:\n\t\treturn nil\n\tcase EAGAIN:\n\t\treturn errEAGAIN\n\tcase EINVAL:\n\t\treturn errEINVAL\n\tcase ENOENT:\n\t\treturn errENOENT\n\t}\n\treturn e\n}\n\nvar reg *regexp.Regexp\n\n// enhanced with zos specific errno2\nfunc errnoErr2(e Errno, e2 uintptr) error {\n\tswitch e {\n\tcase 0:\n\t\treturn nil\n\tcase EAGAIN:\n\t\treturn errEAGAIN\n\t\t/*\n\t\t\tAllow the retrieval of errno2 for EINVAL and ENOENT on zos\n\t\t\t\tcase EINVAL:\n\t\t\t\t\treturn errEINVAL\n\t\t\t\tcase ENOENT:\n\t\t\t\t\treturn errENOENT\n\t\t*/\n\t}\n\tif ZosTraceLevel > 0 {\n\t\tvar name string\n\t\tif reg == nil {\n\t\t\treg = regexp.MustCompile(\"(^unix\\\\.[^/]+$|.*\\\\/unix\\\\.[^/]+$)\")\n\t\t}\n\t\ti := 1\n\t\tpc, file, line, ok := runtime.Caller(i)\n\t\tif ok {\n\t\t\tname = runtime.FuncForPC(pc).Name()\n\t\t}\n\t\tfor ok && reg.MatchString(runtime.FuncForPC(pc).Name()) {\n\t\t\ti += 1\n\t\t\tpc, file, line, ok = runtime.Caller(i)\n\t\t}\n\t\tif ok {\n\t\t\tif ZosTracefile == nil {\n\t\t\t\tZosConsolePrintf(\"From %s:%d\\n\", file, line)\n\t\t\t\tZosConsolePrintf(\"%s: %s (errno2=0x%x)\\n\", name, e.Error(), e2)\n\t\t\t} else {\n\t\t\t\tfmt.Fprintf(ZosTracefile, \"From %s:%d\\n\", file, line)\n\t\t\t\tfmt.Fprintf(ZosTracefile, \"%s: %s (errno2=0x%x)\\n\", name, e.Error(), e2)\n\t\t\t}\n\t\t} else {\n\t\t\tif ZosTracefile == nil {\n\t\t\t\tZosConsolePrintf(\"%s (errno2=0x%x)\\n\", e.Error(), e2)\n\t\t\t} else {\n\t\t\t\tfmt.Fprintf(ZosTracefile, \"%s (errno2=0x%x)\\n\", e.Error(), e2)\n\t\t\t}\n\t\t}\n\t}\n\treturn e\n}\n\n// ErrnoName returns the error name for error number e.\nfunc ErrnoName(e Errno) string {\n\ti := sort.Search(len(errorList), func(i int) bool {\n\t\treturn errorList[i].num >= e\n\t})\n\tif i < len(errorList) && errorList[i].num == e {\n\t\treturn errorList[i].name\n\t}\n\treturn \"\"\n}\n\n// SignalName returns the signal name for signal number s.\nfunc SignalName(s syscall.Signal) string {\n\ti := sort.Search(len(signalList), func(i int) bool {\n\t\treturn signalList[i].num >= s\n\t})\n\tif i < len(signalList) && signalList[i].num == s {\n\t\treturn signalList[i].name\n\t}\n\treturn \"\"\n}\n\n// SignalNum returns the syscall.Signal for signal named s,\n// or 0 if a signal with such name is not found.\n// The signal name should start with \"SIG\".\nfunc SignalNum(s string) syscall.Signal {\n\tsignalNameMapOnce.Do(func() {\n\t\tsignalNameMap = make(map[string]syscall.Signal, len(signalList))\n\t\tfor _, signal := range signalList {\n\t\t\tsignalNameMap[signal.name] = signal.num\n\t\t}\n\t})\n\treturn signalNameMap[s]\n}\n\n// clen returns the index of the first NULL byte in n or len(n) if n contains no NULL byte.\nfunc clen(n []byte) int {\n\ti := bytes.IndexByte(n, 0)\n\tif i == -1 {\n\t\ti = len(n)\n\t}\n\treturn i\n}\n\n// Mmap manager, for use by operating system-specific implementations.\n\ntype mmapper struct {\n\tsync.Mutex\n\tactive map[*byte][]byte // active mappings; key is last byte in mapping\n\tmmap   func(addr, length uintptr, prot, flags, fd int, offset int64) (uintptr, error)\n\tmunmap func(addr uintptr, length uintptr) error\n}\n\nfunc (m *mmapper) Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) {\n\tif length <= 0 {\n\t\treturn nil, EINVAL\n\t}\n\n\t// Set __MAP_64 by default\n\tflags |= __MAP_64\n\n\t// Map the requested memory.\n\taddr, errno := m.mmap(0, uintptr(length), prot, flags, fd, offset)\n\tif errno != nil {\n\t\treturn nil, errno\n\t}\n\n\t// Slice memory layout\n\tvar sl = struct {\n\t\taddr uintptr\n\t\tlen  int\n\t\tcap  int\n\t}{addr, length, length}\n\n\t// Use unsafe to turn sl into a []byte.\n\tb := *(*[]byte)(unsafe.Pointer(&sl))\n\n\t// Register mapping in m and return it.\n\tp := &b[cap(b)-1]\n\tm.Lock()\n\tdefer m.Unlock()\n\tm.active[p] = b\n\treturn b, nil\n}\n\nfunc (m *mmapper) Munmap(data []byte) (err error) {\n\tif len(data) == 0 || len(data) != cap(data) {\n\t\treturn EINVAL\n\t}\n\n\t// Find the base of the mapping.\n\tp := &data[cap(data)-1]\n\tm.Lock()\n\tdefer m.Unlock()\n\tb := m.active[p]\n\tif b == nil || &b[0] != &data[0] {\n\t\treturn EINVAL\n\t}\n\n\t// Unmap the memory and update m.\n\tif errno := m.munmap(uintptr(unsafe.Pointer(&b[0])), uintptr(len(b))); errno != nil {\n\t\treturn errno\n\t}\n\tdelete(m.active, p)\n\treturn nil\n}\n\nfunc Read(fd int, p []byte) (n int, err error) {\n\tn, err = read(fd, p)\n\tif raceenabled {\n\t\tif n > 0 {\n\t\t\traceWriteRange(unsafe.Pointer(&p[0]), n)\n\t\t}\n\t\tif err == nil {\n\t\t\traceAcquire(unsafe.Pointer(&ioSync))\n\t\t}\n\t}\n\treturn\n}\n\nfunc Write(fd int, p []byte) (n int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\tn, err = write(fd, p)\n\tif raceenabled && n > 0 {\n\t\traceReadRange(unsafe.Pointer(&p[0]), n)\n\t}\n\treturn\n}\n\n// For testing: clients can set this flag to force\n// creation of IPv6 sockets to return EAFNOSUPPORT.\nvar SocketDisableIPv6 bool\n\n// Sockaddr represents a socket address.\ntype Sockaddr interface {\n\tsockaddr() (ptr unsafe.Pointer, len _Socklen, err error) // lowercase; only we can define Sockaddrs\n}\n\n// SockaddrInet4 implements the Sockaddr interface for AF_INET type sockets.\ntype SockaddrInet4 struct {\n\tPort int\n\tAddr [4]byte\n\traw  RawSockaddrInet4\n}\n\n// SockaddrInet6 implements the Sockaddr interface for AF_INET6 type sockets.\ntype SockaddrInet6 struct {\n\tPort   int\n\tZoneId uint32\n\tAddr   [16]byte\n\traw    RawSockaddrInet6\n}\n\n// SockaddrUnix implements the Sockaddr interface for AF_UNIX type sockets.\ntype SockaddrUnix struct {\n\tName string\n\traw  RawSockaddrUnix\n}\n\nfunc Bind(fd int, sa Sockaddr) (err error) {\n\tptr, n, err := sa.sockaddr()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn bind(fd, ptr, n)\n}\n\nfunc Connect(fd int, sa Sockaddr) (err error) {\n\tptr, n, err := sa.sockaddr()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn connect(fd, ptr, n)\n}\n\nfunc Getpeername(fd int) (sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tif err = getpeername(fd, &rsa, &len); err != nil {\n\t\treturn\n\t}\n\treturn anyToSockaddr(fd, &rsa)\n}\n\nfunc GetsockoptByte(fd, level, opt int) (value byte, err error) {\n\tvar n byte\n\tvallen := _Socklen(1)\n\terr = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen)\n\treturn n, err\n}\n\nfunc GetsockoptInt(fd, level, opt int) (value int, err error) {\n\tvar n int32\n\tvallen := _Socklen(4)\n\terr = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen)\n\treturn int(n), err\n}\n\nfunc GetsockoptInet4Addr(fd, level, opt int) (value [4]byte, err error) {\n\tvallen := _Socklen(4)\n\terr = getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen)\n\treturn value, err\n}\n\nfunc GetsockoptIPMreq(fd, level, opt int) (*IPMreq, error) {\n\tvar value IPMreq\n\tvallen := _Socklen(SizeofIPMreq)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc GetsockoptIPv6Mreq(fd, level, opt int) (*IPv6Mreq, error) {\n\tvar value IPv6Mreq\n\tvallen := _Socklen(SizeofIPv6Mreq)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc GetsockoptIPv6MTUInfo(fd, level, opt int) (*IPv6MTUInfo, error) {\n\tvar value IPv6MTUInfo\n\tvallen := _Socklen(SizeofIPv6MTUInfo)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc GetsockoptICMPv6Filter(fd, level, opt int) (*ICMPv6Filter, error) {\n\tvar value ICMPv6Filter\n\tvallen := _Socklen(SizeofICMPv6Filter)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)\n\treturn &value, err\n}\n\nfunc GetsockoptLinger(fd, level, opt int) (*Linger, error) {\n\tvar linger Linger\n\tvallen := _Socklen(SizeofLinger)\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&linger), &vallen)\n\treturn &linger, err\n}\n\nfunc GetsockoptTimeval(fd, level, opt int) (*Timeval, error) {\n\tvar tv Timeval\n\tvallen := _Socklen(unsafe.Sizeof(tv))\n\terr := getsockopt(fd, level, opt, unsafe.Pointer(&tv), &vallen)\n\treturn &tv, err\n}\n\nfunc GetsockoptUint64(fd, level, opt int) (value uint64, err error) {\n\tvar n uint64\n\tvallen := _Socklen(8)\n\terr = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen)\n\treturn n, err\n}\n\nfunc Recvfrom(fd int, p []byte, flags int) (n int, from Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tvar len _Socklen = SizeofSockaddrAny\n\tif n, err = recvfrom(fd, p, flags, &rsa, &len); err != nil {\n\t\treturn\n\t}\n\tif rsa.Addr.Family != AF_UNSPEC {\n\t\tfrom, err = anyToSockaddr(fd, &rsa)\n\t}\n\treturn\n}\n\nfunc Sendto(fd int, p []byte, flags int, to Sockaddr) (err error) {\n\tptr, n, err := to.sockaddr()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn sendto(fd, p, flags, ptr, n)\n}\n\nfunc SetsockoptByte(fd, level, opt int, value byte) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(&value), 1)\n}\n\nfunc SetsockoptInt(fd, level, opt int, value int) (err error) {\n\tvar n = int32(value)\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(&n), 4)\n}\n\nfunc SetsockoptInet4Addr(fd, level, opt int, value [4]byte) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(&value[0]), 4)\n}\n\nfunc SetsockoptIPMreq(fd, level, opt int, mreq *IPMreq) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(mreq), SizeofIPMreq)\n}\n\nfunc SetsockoptIPv6Mreq(fd, level, opt int, mreq *IPv6Mreq) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(mreq), SizeofIPv6Mreq)\n}\n\nfunc SetsockoptICMPv6Filter(fd, level, opt int, filter *ICMPv6Filter) error {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(filter), SizeofICMPv6Filter)\n}\n\nfunc SetsockoptLinger(fd, level, opt int, l *Linger) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(l), SizeofLinger)\n}\n\nfunc SetsockoptString(fd, level, opt int, s string) (err error) {\n\tvar p unsafe.Pointer\n\tif len(s) > 0 {\n\t\tp = unsafe.Pointer(&[]byte(s)[0])\n\t}\n\treturn setsockopt(fd, level, opt, p, uintptr(len(s)))\n}\n\nfunc SetsockoptTimeval(fd, level, opt int, tv *Timeval) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(tv), unsafe.Sizeof(*tv))\n}\n\nfunc SetsockoptUint64(fd, level, opt int, value uint64) (err error) {\n\treturn setsockopt(fd, level, opt, unsafe.Pointer(&value), 8)\n}\n\nfunc Socket(domain, typ, proto int) (fd int, err error) {\n\tif domain == AF_INET6 && SocketDisableIPv6 {\n\t\treturn -1, EAFNOSUPPORT\n\t}\n\tfd, err = socket(domain, typ, proto)\n\treturn\n}\n\nfunc Socketpair(domain, typ, proto int) (fd [2]int, err error) {\n\tvar fdx [2]int32\n\terr = socketpair(domain, typ, proto, &fdx)\n\tif err == nil {\n\t\tfd[0] = int(fdx[0])\n\t\tfd[1] = int(fdx[1])\n\t}\n\treturn\n}\n\nvar ioSync int64\n\nfunc CloseOnExec(fd int) { fcntl(fd, F_SETFD, FD_CLOEXEC) }\n\nfunc SetNonblock(fd int, nonblocking bool) (err error) {\n\tflag, err := fcntl(fd, F_GETFL, 0)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif nonblocking {\n\t\tflag |= O_NONBLOCK\n\t} else {\n\t\tflag &= ^O_NONBLOCK\n\t}\n\t_, err = fcntl(fd, F_SETFL, flag)\n\treturn err\n}\n\n// Exec calls execve(2), which replaces the calling executable in the process\n// tree. argv0 should be the full path to an executable (\"/bin/ls\") and the\n// executable name should also be the first argument in argv ([\"ls\", \"-l\"]).\n// envv are the environment variables that should be passed to the new\n// process ([\"USER=go\", \"PWD=/tmp\"]).\nfunc Exec(argv0 string, argv []string, envv []string) error {\n\treturn syscall.Exec(argv0, argv, envv)\n}\n\nfunc Getag(path string) (ccsid uint16, flag uint16, err error) {\n\tvar val [8]byte\n\tsz, err := Getxattr(path, \"ccsid\", val[:])\n\tif err != nil {\n\t\treturn\n\t}\n\tccsid = uint16(EncodeData(val[0:sz]))\n\tsz, err = Getxattr(path, \"flags\", val[:])\n\tif err != nil {\n\t\treturn\n\t}\n\tflag = uint16(EncodeData(val[0:sz]) >> 15)\n\treturn\n}\n\n// Mount begin\nfunc impl_Mount(source string, target string, fstype string, flags uintptr, data string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(source)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 *byte\n\t_p2, err = BytePtrFromString(fstype)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p3 *byte\n\t_p3, err = BytePtrFromString(data)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MOUNT1_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(_p3)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_MountAddr() *(func(source string, target string, fstype string, flags uintptr, data string) (err error))\n\nvar Mount = enter_Mount\n\nfunc enter_Mount(source string, target string, fstype string, flags uintptr, data string) (err error) {\n\tfuncref := get_MountAddr()\n\tif validMount() {\n\t\t*funcref = impl_Mount\n\t} else {\n\t\t*funcref = legacyMount\n\t}\n\treturn (*funcref)(source, target, fstype, flags, data)\n}\n\nfunc legacyMount(source string, target string, fstype string, flags uintptr, data string) (err error) {\n\tif needspace := 8 - len(fstype); needspace <= 0 {\n\t\tfstype = fstype[0:8]\n\t} else {\n\t\tfstype += \"        \"[0:needspace]\n\t}\n\treturn mount_LE(target, source, fstype, uint32(flags), int32(len(data)), data)\n}\n\nfunc validMount() bool {\n\tif funcptrtest(GetZosLibVec()+SYS___MOUNT1_A<<4, \"\") == 0 {\n\t\tif name, err := getLeFuncName(GetZosLibVec() + SYS___MOUNT1_A<<4); err == nil {\n\t\t\treturn name == \"__mount1_a\"\n\t\t}\n\t}\n\treturn false\n}\n\n// Mount end\n\n// Unmount begin\nfunc impl_Unmount(target string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UMOUNT2_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_UnmountAddr() *(func(target string, flags int) (err error))\n\nvar Unmount = enter_Unmount\n\nfunc enter_Unmount(target string, flags int) (err error) {\n\tfuncref := get_UnmountAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___UMOUNT2_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Unmount\n\t} else {\n\t\t*funcref = legacyUnmount\n\t}\n\treturn (*funcref)(target, flags)\n}\n\nfunc legacyUnmount(name string, mtm int) (err error) {\n\t// mountpoint is always a full path and starts with a '/'\n\t// check if input string is not a mountpoint but a filesystem name\n\tif name[0] != '/' {\n\t\treturn unmount_LE(name, mtm)\n\t}\n\t// treat name as mountpoint\n\tb2s := func(arr []byte) string {\n\t\tvar str string\n\t\tfor i := 0; i < len(arr); i++ {\n\t\t\tif arr[i] == 0 {\n\t\t\t\tstr = string(arr[:i])\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\treturn str\n\t}\n\tvar buffer struct {\n\t\theader W_Mnth\n\t\tfsinfo [64]W_Mntent\n\t}\n\tfs_count, err := W_Getmntent_A((*byte)(unsafe.Pointer(&buffer)), int(unsafe.Sizeof(buffer)))\n\tif err == nil {\n\t\terr = EINVAL\n\t\tfor i := 0; i < fs_count; i++ {\n\t\t\tif b2s(buffer.fsinfo[i].Mountpoint[:]) == name {\n\t\t\t\terr = unmount_LE(b2s(buffer.fsinfo[i].Fsname[:]), mtm)\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t} else if fs_count == 0 {\n\t\terr = EINVAL\n\t}\n\treturn err\n}\n\n// Unmount end\n\nfunc direntIno(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino))\n}\n\nfunc direntReclen(buf []byte) (uint64, bool) {\n\treturn readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen))\n}\n\nfunc direntNamlen(buf []byte) (uint64, bool) {\n\treclen, ok := direntReclen(buf)\n\tif !ok {\n\t\treturn 0, false\n\t}\n\treturn reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true\n}\n\nfunc direntLeToDirentUnix(dirent *direntLE, dir uintptr, path string) (Dirent, error) {\n\tvar d Dirent\n\n\td.Ino = uint64(dirent.Ino)\n\toffset, err := Telldir(dir)\n\tif err != nil {\n\t\treturn d, err\n\t}\n\n\td.Off = int64(offset)\n\ts := string(bytes.Split(dirent.Name[:], []byte{0})[0])\n\tcopy(d.Name[:], s)\n\n\td.Reclen = uint16(24 + len(d.NameString()))\n\tvar st Stat_t\n\tpath = path + \"/\" + s\n\terr = Lstat(path, &st)\n\tif err != nil {\n\t\treturn d, err\n\t}\n\n\td.Type = uint8(st.Mode >> 24)\n\treturn d, err\n}\n\nfunc Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {\n\t// Simulation of Getdirentries port from the Darwin implementation.\n\t// COMMENTS FROM DARWIN:\n\t// It's not the full required semantics, but should handle the case\n\t// of calling Getdirentries or ReadDirent repeatedly.\n\t// It won't handle assigning the results of lseek to *basep, or handle\n\t// the directory being edited underfoot.\n\n\tskip, err := Seek(fd, 0, 1 /* SEEK_CUR */)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\n\t// Get path from fd to avoid unavailable call (fdopendir)\n\tpath, err := ZosFdToPath(fd)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\td, err := Opendir(path)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tdefer Closedir(d)\n\n\tvar cnt int64\n\tfor {\n\t\tvar entryLE direntLE\n\t\tvar entrypLE *direntLE\n\t\te := Readdir_r(d, &entryLE, &entrypLE)\n\t\tif e != nil {\n\t\t\treturn n, e\n\t\t}\n\t\tif entrypLE == nil {\n\t\t\tbreak\n\t\t}\n\t\tif skip > 0 {\n\t\t\tskip--\n\t\t\tcnt++\n\t\t\tcontinue\n\t\t}\n\n\t\t// Dirent on zos has a different structure\n\t\tentry, e := direntLeToDirentUnix(&entryLE, d, path)\n\t\tif e != nil {\n\t\t\treturn n, e\n\t\t}\n\n\t\treclen := int(entry.Reclen)\n\t\tif reclen > len(buf) {\n\t\t\t// Not enough room. Return for now.\n\t\t\t// The counter will let us know where we should start up again.\n\t\t\t// Note: this strategy for suspending in the middle and\n\t\t\t// restarting is O(n^2) in the length of the directory. Oh well.\n\t\t\tbreak\n\t\t}\n\n\t\t// Copy entry into return buffer.\n\t\ts := unsafe.Slice((*byte)(unsafe.Pointer(&entry)), reclen)\n\t\tcopy(buf, s)\n\n\t\tbuf = buf[reclen:]\n\t\tn += reclen\n\t\tcnt++\n\t}\n\t// Set the seek offset of the input fd to record\n\t// how many files we've already returned.\n\t_, err = Seek(fd, cnt, 0 /* SEEK_SET */)\n\tif err != nil {\n\t\treturn n, err\n\t}\n\n\treturn n, nil\n}\n\nfunc Err2ad() (eadd *int) {\n\tr0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS___ERR2AD<<4)\n\teadd = (*int)(unsafe.Pointer(r0))\n\treturn\n}\n\nfunc ZosConsolePrintf(format string, v ...interface{}) (int, error) {\n\ttype __cmsg struct {\n\t\t_            uint16\n\t\t_            [2]uint8\n\t\t__msg_length uint32\n\t\t__msg        uintptr\n\t\t_            [4]uint8\n\t}\n\tmsg := fmt.Sprintf(format, v...)\n\tstrptr := unsafe.Pointer((*reflect.StringHeader)(unsafe.Pointer(&msg)).Data)\n\tlen := (*reflect.StringHeader)(unsafe.Pointer(&msg)).Len\n\tcmsg := __cmsg{__msg_length: uint32(len), __msg: uintptr(strptr)}\n\tcmd := uint32(0)\n\truntime.EnterSyscall()\n\trc, err2, err1 := CallLeFuncWithErr(GetZosLibVec()+SYS_____CONSOLE_A<<4, uintptr(unsafe.Pointer(&cmsg)), 0, uintptr(unsafe.Pointer(&cmd)))\n\truntime.ExitSyscall()\n\tif rc != 0 {\n\t\treturn 0, fmt.Errorf(\"%s (errno2=0x%x)\\n\", err1.Error(), err2)\n\t}\n\treturn 0, nil\n}\nfunc ZosStringToEbcdicBytes(str string, nullterm bool) (ebcdicBytes []byte) {\n\tif nullterm {\n\t\tebcdicBytes = []byte(str + \"\\x00\")\n\t} else {\n\t\tebcdicBytes = []byte(str)\n\t}\n\tA2e(ebcdicBytes)\n\treturn\n}\nfunc ZosEbcdicBytesToString(b []byte, trimRight bool) (str string) {\n\tres := make([]byte, len(b))\n\tcopy(res, b)\n\tE2a(res)\n\tif trimRight {\n\t\tstr = string(bytes.TrimRight(res, \" \\x00\"))\n\t} else {\n\t\tstr = string(res)\n\t}\n\treturn\n}\n\nfunc fdToPath(dirfd int) (path string, err error) {\n\tvar buffer [1024]byte\n\t// w_ctrl()\n\tret := runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS_W_IOCTL<<4,\n\t\t[]uintptr{uintptr(dirfd), 17, 1024, uintptr(unsafe.Pointer(&buffer[0]))})\n\tif ret == 0 {\n\t\tzb := bytes.IndexByte(buffer[:], 0)\n\t\tif zb == -1 {\n\t\t\tzb = len(buffer)\n\t\t}\n\t\t// __e2a_l()\n\t\truntime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___E2A_L<<4,\n\t\t\t[]uintptr{uintptr(unsafe.Pointer(&buffer[0])), uintptr(zb)})\n\t\treturn string(buffer[:zb]), nil\n\t}\n\t// __errno()\n\terrno := int(*(*int32)(unsafe.Pointer(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___ERRNO<<4,\n\t\t[]uintptr{}))))\n\t// __errno2()\n\terrno2 := int(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___ERRNO2<<4,\n\t\t[]uintptr{}))\n\t// strerror_r()\n\tret = runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS_STRERROR_R<<4,\n\t\t[]uintptr{uintptr(errno), uintptr(unsafe.Pointer(&buffer[0])), 1024})\n\tif ret == 0 {\n\t\tzb := bytes.IndexByte(buffer[:], 0)\n\t\tif zb == -1 {\n\t\t\tzb = len(buffer)\n\t\t}\n\t\treturn \"\", fmt.Errorf(\"%s (errno2=0x%x)\", buffer[:zb], errno2)\n\t} else {\n\t\treturn \"\", fmt.Errorf(\"fdToPath errno %d (errno2=0x%x)\", errno, errno2)\n\t}\n}\n\nfunc impl_Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKFIFOAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_MkfifoatAddr() *(func(dirfd int, path string, mode uint32) (err error))\n\nvar Mkfifoat = enter_Mkfifoat\n\nfunc enter_Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tfuncref := get_MkfifoatAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___MKFIFOAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Mkfifoat\n\t} else {\n\t\t*funcref = legacy_Mkfifoat\n\t}\n\treturn (*funcref)(dirfd, path, mode)\n}\n\nfunc legacy_Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tdirname, err := ZosFdToPath(dirfd)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn Mkfifo(dirname+\"/\"+path, mode)\n}\n\n//sys\tPosix_openpt(oflag int) (fd int, err error) = SYS_POSIX_OPENPT\n//sys\tGrantpt(fildes int) (rc int, err error) = SYS_GRANTPT\n//sys\tUnlockpt(fildes int) (rc int, err error) = SYS_UNLOCKPT\n\nfunc fcntlAsIs(fd uintptr, cmd int, arg uintptr) (val int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCNTL<<4, uintptr(fd), uintptr(cmd), arg)\n\truntime.ExitSyscall()\n\tval = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\nfunc Fcntl(fd uintptr, cmd int, op interface{}) (ret int, err error) {\n\tswitch op.(type) {\n\tcase *Flock_t:\n\t\terr = FcntlFlock(fd, cmd, op.(*Flock_t))\n\t\tif err != nil {\n\t\t\tret = -1\n\t\t}\n\t\treturn\n\tcase int:\n\t\treturn FcntlInt(fd, cmd, op.(int))\n\tcase *F_cnvrt:\n\t\treturn fcntlAsIs(fd, cmd, uintptr(unsafe.Pointer(op.(*F_cnvrt))))\n\tcase unsafe.Pointer:\n\t\treturn fcntlAsIs(fd, cmd, uintptr(op.(unsafe.Pointer)))\n\tdefault:\n\t\treturn -1, EINVAL\n\t}\n\treturn\n}\n\nfunc Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\treturn sendfile(outfd, infd, offset, count)\n}\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\t// TODO: use LE call instead if the call is implemented\n\toriginalOffset, err := Seek(infd, 0, SEEK_CUR)\n\tif err != nil {\n\t\treturn -1, err\n\t}\n\t//start reading data from in_fd\n\tif offset != nil {\n\t\t_, err := Seek(infd, *offset, SEEK_SET)\n\t\tif err != nil {\n\t\t\treturn -1, err\n\t\t}\n\t}\n\n\tbuf := make([]byte, count)\n\treadBuf := make([]byte, 0)\n\tvar n int = 0\n\tfor i := 0; i < count; i += n {\n\t\tn, err := Read(infd, buf)\n\t\tif n == 0 {\n\t\t\tif err != nil {\n\t\t\t\treturn -1, err\n\t\t\t} else { // EOF\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\treadBuf = append(readBuf, buf...)\n\t\tbuf = buf[0:0]\n\t}\n\n\tn2, err := Write(outfd, readBuf)\n\tif err != nil {\n\t\treturn -1, err\n\t}\n\n\t//When sendfile() returns, this variable will be set to the\n\t// offset of the byte following the last byte that was read.\n\tif offset != nil {\n\t\t*offset = *offset + int64(n)\n\t\t// If offset is not NULL, then sendfile() does not modify the file\n\t\t// offset of in_fd\n\t\t_, err := Seek(infd, originalOffset, SEEK_SET)\n\t\tif err != nil {\n\t\t\treturn -1, err\n\t\t}\n\t}\n\treturn n2, nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/sysvshm_linux.go",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux\n\npackage unix\n\nimport \"runtime\"\n\n// SysvShmCtl performs control operations on the shared memory segment\n// specified by id.\nfunc SysvShmCtl(id, cmd int, desc *SysvShmDesc) (result int, err error) {\n\tif runtime.GOARCH == \"arm\" ||\n\t\truntime.GOARCH == \"mips64\" || runtime.GOARCH == \"mips64le\" {\n\t\tcmd |= ipc_64\n\t}\n\n\treturn shmctl(id, cmd, desc)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/sysvshm_unix.go",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build (darwin && !ios) || linux || zos\n\npackage unix\n\nimport \"unsafe\"\n\n// SysvShmAttach attaches the Sysv shared memory segment associated with the\n// shared memory identifier id.\nfunc SysvShmAttach(id int, addr uintptr, flag int) ([]byte, error) {\n\taddr, errno := shmat(id, addr, flag)\n\tif errno != nil {\n\t\treturn nil, errno\n\t}\n\n\t// Retrieve the size of the shared memory to enable slice creation\n\tvar info SysvShmDesc\n\n\t_, err := SysvShmCtl(id, IPC_STAT, &info)\n\tif err != nil {\n\t\t// release the shared memory if we can't find the size\n\n\t\t// ignoring error from shmdt as there's nothing sensible to return here\n\t\tshmdt(addr)\n\t\treturn nil, err\n\t}\n\n\t// Use unsafe to convert addr into a []byte.\n\tb := unsafe.Slice((*byte)(unsafe.Pointer(addr)), int(info.Segsz))\n\treturn b, nil\n}\n\n// SysvShmDetach unmaps the shared memory slice returned from SysvShmAttach.\n//\n// It is not safe to use the slice after calling this function.\nfunc SysvShmDetach(data []byte) error {\n\tif len(data) == 0 {\n\t\treturn EINVAL\n\t}\n\n\treturn shmdt(uintptr(unsafe.Pointer(&data[0])))\n}\n\n// SysvShmGet returns the Sysv shared memory identifier associated with key.\n// If the IPC_CREAT flag is specified a new segment is created.\nfunc SysvShmGet(key, size, flag int) (id int, err error) {\n\treturn shmget(key, size, flag)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/sysvshm_unix_other.go",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build (darwin && !ios) || zos\n\npackage unix\n\n// SysvShmCtl performs control operations on the shared memory segment\n// specified by id.\nfunc SysvShmCtl(id, cmd int, desc *SysvShmDesc) (result int, err error) {\n\treturn shmctl(id, cmd, desc)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/timestruct.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos\n\npackage unix\n\nimport \"time\"\n\n// TimespecToNsec returns the time stored in ts as nanoseconds.\nfunc TimespecToNsec(ts Timespec) int64 { return ts.Nano() }\n\n// NsecToTimespec converts a number of nanoseconds into a Timespec.\nfunc NsecToTimespec(nsec int64) Timespec {\n\tsec := nsec / 1e9\n\tnsec = nsec % 1e9\n\tif nsec < 0 {\n\t\tnsec += 1e9\n\t\tsec--\n\t}\n\treturn setTimespec(sec, nsec)\n}\n\n// TimeToTimespec converts t into a Timespec.\n// On some 32-bit systems the range of valid Timespec values are smaller\n// than that of time.Time values.  So if t is out of the valid range of\n// Timespec, it returns a zero Timespec and ERANGE.\nfunc TimeToTimespec(t time.Time) (Timespec, error) {\n\tsec := t.Unix()\n\tnsec := int64(t.Nanosecond())\n\tts := setTimespec(sec, nsec)\n\n\t// Currently all targets have either int32 or int64 for Timespec.Sec.\n\t// If there were a new target with floating point type for it, we have\n\t// to consider the rounding error.\n\tif int64(ts.Sec) != sec {\n\t\treturn Timespec{}, ERANGE\n\t}\n\treturn ts, nil\n}\n\n// TimevalToNsec returns the time stored in tv as nanoseconds.\nfunc TimevalToNsec(tv Timeval) int64 { return tv.Nano() }\n\n// NsecToTimeval converts a number of nanoseconds into a Timeval.\nfunc NsecToTimeval(nsec int64) Timeval {\n\tnsec += 999 // round up to microsecond\n\tusec := nsec % 1e9 / 1e3\n\tsec := nsec / 1e9\n\tif usec < 0 {\n\t\tusec += 1e6\n\t\tsec--\n\t}\n\treturn setTimeval(sec, usec)\n}\n\n// Unix returns the time stored in ts as seconds plus nanoseconds.\nfunc (ts *Timespec) Unix() (sec int64, nsec int64) {\n\treturn int64(ts.Sec), int64(ts.Nsec)\n}\n\n// Unix returns the time stored in tv as seconds plus nanoseconds.\nfunc (tv *Timeval) Unix() (sec int64, nsec int64) {\n\treturn int64(tv.Sec), int64(tv.Usec) * 1000\n}\n\n// Nano returns the time stored in ts as nanoseconds.\nfunc (ts *Timespec) Nano() int64 {\n\treturn int64(ts.Sec)*1e9 + int64(ts.Nsec)\n}\n\n// Nano returns the time stored in tv as nanoseconds.\nfunc (tv *Timeval) Nano() int64 {\n\treturn int64(tv.Sec)*1e9 + int64(tv.Usec)*1000\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/unveil_openbsd.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage unix\n\nimport \"fmt\"\n\n// Unveil implements the unveil syscall.\n// For more information see unveil(2).\n// Note that the special case of blocking further\n// unveil calls is handled by UnveilBlock.\nfunc Unveil(path string, flags string) error {\n\tif err := supportsUnveil(); err != nil {\n\t\treturn err\n\t}\n\tpathPtr, err := BytePtrFromString(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\tflagsPtr, err := BytePtrFromString(flags)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn unveil(pathPtr, flagsPtr)\n}\n\n// UnveilBlock blocks future unveil calls.\n// For more information see unveil(2).\nfunc UnveilBlock() error {\n\tif err := supportsUnveil(); err != nil {\n\t\treturn err\n\t}\n\treturn unveil(nil, nil)\n}\n\n// supportsUnveil checks for availability of the unveil(2) system call based\n// on the running OpenBSD version.\nfunc supportsUnveil() error {\n\tmaj, min, err := majmin()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// unveil is not available before 6.4\n\tif maj < 6 || (maj == 6 && min <= 3) {\n\t\treturn fmt.Errorf(\"cannot call Unveil on OpenBSD %d.%d\", maj, min)\n\t}\n\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/vgetrandom_linux.go",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build linux && go1.24\n\npackage unix\n\nimport _ \"unsafe\"\n\n//go:linkname vgetrandom runtime.vgetrandom\n//go:noescape\nfunc vgetrandom(p []byte, flags uint32) (ret int, supported bool)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/vgetrandom_unsupported.go",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build !linux || !go1.24\n\npackage unix\n\nfunc vgetrandom(p []byte, flags uint32) (ret int, supported bool) {\n\treturn -1, false\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/xattr_bsd.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build freebsd || netbsd\n\npackage unix\n\nimport (\n\t\"strings\"\n\t\"unsafe\"\n)\n\n// Derive extattr namespace and attribute name\n\nfunc xattrnamespace(fullattr string) (ns int, attr string, err error) {\n\ts := strings.IndexByte(fullattr, '.')\n\tif s == -1 {\n\t\treturn -1, \"\", ENOATTR\n\t}\n\n\tnamespace := fullattr[0:s]\n\tattr = fullattr[s+1:]\n\n\tswitch namespace {\n\tcase \"user\":\n\t\treturn EXTATTR_NAMESPACE_USER, attr, nil\n\tcase \"system\":\n\t\treturn EXTATTR_NAMESPACE_SYSTEM, attr, nil\n\tdefault:\n\t\treturn -1, \"\", ENOATTR\n\t}\n}\n\nfunc initxattrdest(dest []byte, idx int) (d unsafe.Pointer) {\n\tif len(dest) > idx {\n\t\treturn unsafe.Pointer(&dest[idx])\n\t}\n\tif dest != nil {\n\t\t// extattr_get_file and extattr_list_file treat NULL differently from\n\t\t// a non-NULL pointer of length zero. Preserve the property of nilness,\n\t\t// even if we can't use dest directly.\n\t\treturn unsafe.Pointer(&_zero)\n\t}\n\treturn nil\n}\n\n// FreeBSD and NetBSD implement their own syscalls to handle extended attributes\n\nfunc Getxattr(file string, attr string, dest []byte) (sz int, err error) {\n\td := initxattrdest(dest, 0)\n\tdestsize := len(dest)\n\n\tnsid, a, err := xattrnamespace(attr)\n\tif err != nil {\n\t\treturn -1, err\n\t}\n\n\treturn ExtattrGetFile(file, nsid, a, uintptr(d), destsize)\n}\n\nfunc Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) {\n\td := initxattrdest(dest, 0)\n\tdestsize := len(dest)\n\n\tnsid, a, err := xattrnamespace(attr)\n\tif err != nil {\n\t\treturn -1, err\n\t}\n\n\treturn ExtattrGetFd(fd, nsid, a, uintptr(d), destsize)\n}\n\nfunc Lgetxattr(link string, attr string, dest []byte) (sz int, err error) {\n\td := initxattrdest(dest, 0)\n\tdestsize := len(dest)\n\n\tnsid, a, err := xattrnamespace(attr)\n\tif err != nil {\n\t\treturn -1, err\n\t}\n\n\treturn ExtattrGetLink(link, nsid, a, uintptr(d), destsize)\n}\n\n// flags are unused on FreeBSD\n\nfunc Fsetxattr(fd int, attr string, data []byte, flags int) (err error) {\n\tvar d unsafe.Pointer\n\tif len(data) > 0 {\n\t\td = unsafe.Pointer(&data[0])\n\t}\n\tdatasiz := len(data)\n\n\tnsid, a, err := xattrnamespace(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\n\t_, err = ExtattrSetFd(fd, nsid, a, uintptr(d), datasiz)\n\treturn\n}\n\nfunc Setxattr(file string, attr string, data []byte, flags int) (err error) {\n\tvar d unsafe.Pointer\n\tif len(data) > 0 {\n\t\td = unsafe.Pointer(&data[0])\n\t}\n\tdatasiz := len(data)\n\n\tnsid, a, err := xattrnamespace(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\n\t_, err = ExtattrSetFile(file, nsid, a, uintptr(d), datasiz)\n\treturn\n}\n\nfunc Lsetxattr(link string, attr string, data []byte, flags int) (err error) {\n\tvar d unsafe.Pointer\n\tif len(data) > 0 {\n\t\td = unsafe.Pointer(&data[0])\n\t}\n\tdatasiz := len(data)\n\n\tnsid, a, err := xattrnamespace(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\n\t_, err = ExtattrSetLink(link, nsid, a, uintptr(d), datasiz)\n\treturn\n}\n\nfunc Removexattr(file string, attr string) (err error) {\n\tnsid, a, err := xattrnamespace(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\n\terr = ExtattrDeleteFile(file, nsid, a)\n\treturn\n}\n\nfunc Fremovexattr(fd int, attr string) (err error) {\n\tnsid, a, err := xattrnamespace(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\n\terr = ExtattrDeleteFd(fd, nsid, a)\n\treturn\n}\n\nfunc Lremovexattr(link string, attr string) (err error) {\n\tnsid, a, err := xattrnamespace(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\n\terr = ExtattrDeleteLink(link, nsid, a)\n\treturn\n}\n\nfunc Listxattr(file string, dest []byte) (sz int, err error) {\n\tdestsiz := len(dest)\n\n\t// FreeBSD won't allow you to list xattrs from multiple namespaces\n\ts, pos := 0, 0\n\tfor _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} {\n\t\tstmp, e := ListxattrNS(file, nsid, dest[pos:])\n\n\t\t/* Errors accessing system attrs are ignored so that\n\t\t * we can implement the Linux-like behavior of omitting errors that\n\t\t * we don't have read permissions on\n\t\t *\n\t\t * Linux will still error if we ask for user attributes on a file that\n\t\t * we don't have read permissions on, so don't ignore those errors\n\t\t */\n\t\tif e != nil {\n\t\t\tif e == EPERM && nsid != EXTATTR_NAMESPACE_USER {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn s, e\n\t\t}\n\n\t\ts += stmp\n\t\tpos = s\n\t\tif pos > destsiz {\n\t\t\tpos = destsiz\n\t\t}\n\t}\n\n\treturn s, nil\n}\n\nfunc ListxattrNS(file string, nsid int, dest []byte) (sz int, err error) {\n\td := initxattrdest(dest, 0)\n\tdestsiz := len(dest)\n\n\ts, e := ExtattrListFile(file, nsid, uintptr(d), destsiz)\n\tif e != nil {\n\t\treturn 0, err\n\t}\n\n\treturn s, nil\n}\n\nfunc Flistxattr(fd int, dest []byte) (sz int, err error) {\n\tdestsiz := len(dest)\n\n\ts, pos := 0, 0\n\tfor _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} {\n\t\tstmp, e := FlistxattrNS(fd, nsid, dest[pos:])\n\n\t\tif e != nil {\n\t\t\tif e == EPERM && nsid != EXTATTR_NAMESPACE_USER {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn s, e\n\t\t}\n\n\t\ts += stmp\n\t\tpos = s\n\t\tif pos > destsiz {\n\t\t\tpos = destsiz\n\t\t}\n\t}\n\n\treturn s, nil\n}\n\nfunc FlistxattrNS(fd int, nsid int, dest []byte) (sz int, err error) {\n\td := initxattrdest(dest, 0)\n\tdestsiz := len(dest)\n\n\ts, e := ExtattrListFd(fd, nsid, uintptr(d), destsiz)\n\tif e != nil {\n\t\treturn 0, err\n\t}\n\n\treturn s, nil\n}\n\nfunc Llistxattr(link string, dest []byte) (sz int, err error) {\n\tdestsiz := len(dest)\n\n\ts, pos := 0, 0\n\tfor _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} {\n\t\tstmp, e := LlistxattrNS(link, nsid, dest[pos:])\n\n\t\tif e != nil {\n\t\t\tif e == EPERM && nsid != EXTATTR_NAMESPACE_USER {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn s, e\n\t\t}\n\n\t\ts += stmp\n\t\tpos = s\n\t\tif pos > destsiz {\n\t\t\tpos = destsiz\n\t\t}\n\t}\n\n\treturn s, nil\n}\n\nfunc LlistxattrNS(link string, nsid int, dest []byte) (sz int, err error) {\n\td := initxattrdest(dest, 0)\n\tdestsiz := len(dest)\n\n\ts, e := ExtattrListLink(link, nsid, uintptr(d), destsiz)\n\tif e != nil {\n\t\treturn 0, err\n\t}\n\n\treturn s, nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go",
    "content": "// mkerrors.sh -maix32\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc && aix\n\n// Created by cgo -godefs - DO NOT EDIT\n// cgo -godefs -- -maix32 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                  = 0x10\n\tAF_BYPASS                     = 0x19\n\tAF_CCITT                      = 0xa\n\tAF_CHAOS                      = 0x5\n\tAF_DATAKIT                    = 0x9\n\tAF_DECnet                     = 0xc\n\tAF_DLI                        = 0xd\n\tAF_ECMA                       = 0x8\n\tAF_HYLINK                     = 0xf\n\tAF_IMPLINK                    = 0x3\n\tAF_INET                       = 0x2\n\tAF_INET6                      = 0x18\n\tAF_INTF                       = 0x14\n\tAF_ISO                        = 0x7\n\tAF_LAT                        = 0xe\n\tAF_LINK                       = 0x12\n\tAF_LOCAL                      = 0x1\n\tAF_MAX                        = 0x1e\n\tAF_NDD                        = 0x17\n\tAF_NETWARE                    = 0x16\n\tAF_NS                         = 0x6\n\tAF_OSI                        = 0x7\n\tAF_PUP                        = 0x4\n\tAF_RIF                        = 0x15\n\tAF_ROUTE                      = 0x11\n\tAF_SNA                        = 0xb\n\tAF_UNIX                       = 0x1\n\tAF_UNSPEC                     = 0x0\n\tALTWERASE                     = 0x400000\n\tARPHRD_802_3                  = 0x6\n\tARPHRD_802_5                  = 0x6\n\tARPHRD_ETHER                  = 0x1\n\tARPHRD_FDDI                   = 0x1\n\tB0                            = 0x0\n\tB110                          = 0x3\n\tB1200                         = 0x9\n\tB134                          = 0x4\n\tB150                          = 0x5\n\tB1800                         = 0xa\n\tB19200                        = 0xe\n\tB200                          = 0x6\n\tB2400                         = 0xb\n\tB300                          = 0x7\n\tB38400                        = 0xf\n\tB4800                         = 0xc\n\tB50                           = 0x1\n\tB600                          = 0x8\n\tB75                           = 0x2\n\tB9600                         = 0xd\n\tBRKINT                        = 0x2\n\tBS0                           = 0x0\n\tBS1                           = 0x1000\n\tBSDLY                         = 0x1000\n\tCAP_AACCT                     = 0x6\n\tCAP_ARM_APPLICATION           = 0x5\n\tCAP_BYPASS_RAC_VMM            = 0x3\n\tCAP_CLEAR                     = 0x0\n\tCAP_CREDENTIALS               = 0x7\n\tCAP_EFFECTIVE                 = 0x1\n\tCAP_EWLM_AGENT                = 0x4\n\tCAP_INHERITABLE               = 0x2\n\tCAP_MAXIMUM                   = 0x7\n\tCAP_NUMA_ATTACH               = 0x2\n\tCAP_PERMITTED                 = 0x3\n\tCAP_PROPAGATE                 = 0x1\n\tCAP_PROPOGATE                 = 0x1\n\tCAP_SET                       = 0x1\n\tCBAUD                         = 0xf\n\tCFLUSH                        = 0xf\n\tCIBAUD                        = 0xf0000\n\tCLOCAL                        = 0x800\n\tCLOCK_MONOTONIC               = 0xa\n\tCLOCK_PROCESS_CPUTIME_ID      = 0xb\n\tCLOCK_REALTIME                = 0x9\n\tCLOCK_THREAD_CPUTIME_ID       = 0xc\n\tCR0                           = 0x0\n\tCR1                           = 0x100\n\tCR2                           = 0x200\n\tCR3                           = 0x300\n\tCRDLY                         = 0x300\n\tCREAD                         = 0x80\n\tCS5                           = 0x0\n\tCS6                           = 0x10\n\tCS7                           = 0x20\n\tCS8                           = 0x30\n\tCSIOCGIFCONF                  = -0x3ff796dc\n\tCSIZE                         = 0x30\n\tCSMAP_DIR                     = \"/usr/lib/nls/csmap/\"\n\tCSTART                        = '\\021'\n\tCSTOP                         = '\\023'\n\tCSTOPB                        = 0x40\n\tCSUSP                         = 0x1a\n\tECHO                          = 0x8\n\tECHOCTL                       = 0x20000\n\tECHOE                         = 0x10\n\tECHOK                         = 0x20\n\tECHOKE                        = 0x80000\n\tECHONL                        = 0x40\n\tECHOPRT                       = 0x40000\n\tECH_ICMPID                    = 0x2\n\tETHERNET_CSMACD               = 0x6\n\tEVENP                         = 0x80\n\tEXCONTINUE                    = 0x0\n\tEXDLOK                        = 0x3\n\tEXIO                          = 0x2\n\tEXPGIO                        = 0x0\n\tEXRESUME                      = 0x2\n\tEXRETURN                      = 0x1\n\tEXSIG                         = 0x4\n\tEXTA                          = 0xe\n\tEXTB                          = 0xf\n\tEXTRAP                        = 0x1\n\tEYEC_RTENTRYA                 = 0x257274656e747241\n\tEYEC_RTENTRYF                 = 0x257274656e747246\n\tE_ACC                         = 0x0\n\tFD_CLOEXEC                    = 0x1\n\tFD_SETSIZE                    = 0xfffe\n\tFF0                           = 0x0\n\tFF1                           = 0x2000\n\tFFDLY                         = 0x2000\n\tFLUSHBAND                     = 0x40\n\tFLUSHLOW                      = 0x8\n\tFLUSHO                        = 0x100000\n\tFLUSHR                        = 0x1\n\tFLUSHRW                       = 0x3\n\tFLUSHW                        = 0x2\n\tF_CLOSEM                      = 0xa\n\tF_DUP2FD                      = 0xe\n\tF_DUPFD                       = 0x0\n\tF_GETFD                       = 0x1\n\tF_GETFL                       = 0x3\n\tF_GETLK                       = 0x5\n\tF_GETLK64                     = 0xb\n\tF_GETOWN                      = 0x8\n\tF_LOCK                        = 0x1\n\tF_OK                          = 0x0\n\tF_RDLCK                       = 0x1\n\tF_SETFD                       = 0x2\n\tF_SETFL                       = 0x4\n\tF_SETLK                       = 0x6\n\tF_SETLK64                     = 0xc\n\tF_SETLKW                      = 0x7\n\tF_SETLKW64                    = 0xd\n\tF_SETOWN                      = 0x9\n\tF_TEST                        = 0x3\n\tF_TLOCK                       = 0x2\n\tF_TSTLK                       = 0xf\n\tF_ULOCK                       = 0x0\n\tF_UNLCK                       = 0x3\n\tF_WRLCK                       = 0x2\n\tHUPCL                         = 0x400\n\tIBSHIFT                       = 0x10\n\tICANON                        = 0x2\n\tICMP6_FILTER                  = 0x26\n\tICMP6_SEC_SEND_DEL            = 0x46\n\tICMP6_SEC_SEND_GET            = 0x47\n\tICMP6_SEC_SEND_SET            = 0x44\n\tICMP6_SEC_SEND_SET_CGA_ADDR   = 0x45\n\tICRNL                         = 0x100\n\tIEXTEN                        = 0x200000\n\tIFA_FIRSTALIAS                = 0x2000\n\tIFA_ROUTE                     = 0x1\n\tIFF_64BIT                     = 0x4000000\n\tIFF_ALLCAST                   = 0x20000\n\tIFF_ALLMULTI                  = 0x200\n\tIFF_BPF                       = 0x8000000\n\tIFF_BRIDGE                    = 0x40000\n\tIFF_BROADCAST                 = 0x2\n\tIFF_CANTCHANGE                = 0x80c52\n\tIFF_CHECKSUM_OFFLOAD          = 0x10000000\n\tIFF_D1                        = 0x8000\n\tIFF_D2                        = 0x4000\n\tIFF_D3                        = 0x2000\n\tIFF_D4                        = 0x1000\n\tIFF_DEBUG                     = 0x4\n\tIFF_DEVHEALTH                 = 0x4000\n\tIFF_DO_HW_LOOPBACK            = 0x10000\n\tIFF_GROUP_ROUTING             = 0x2000000\n\tIFF_IFBUFMGT                  = 0x800000\n\tIFF_LINK0                     = 0x100000\n\tIFF_LINK1                     = 0x200000\n\tIFF_LINK2                     = 0x400000\n\tIFF_LOOPBACK                  = 0x8\n\tIFF_MULTICAST                 = 0x80000\n\tIFF_NOARP                     = 0x80\n\tIFF_NOECHO                    = 0x800\n\tIFF_NOTRAILERS                = 0x20\n\tIFF_OACTIVE                   = 0x400\n\tIFF_POINTOPOINT               = 0x10\n\tIFF_PROMISC                   = 0x100\n\tIFF_PSEG                      = 0x40000000\n\tIFF_RUNNING                   = 0x40\n\tIFF_SIMPLEX                   = 0x800\n\tIFF_SNAP                      = 0x8000\n\tIFF_TCP_DISABLE_CKSUM         = 0x20000000\n\tIFF_TCP_NOCKSUM               = 0x1000000\n\tIFF_UP                        = 0x1\n\tIFF_VIPA                      = 0x80000000\n\tIFNAMSIZ                      = 0x10\n\tIFO_FLUSH                     = 0x1\n\tIFT_1822                      = 0x2\n\tIFT_AAL5                      = 0x31\n\tIFT_ARCNET                    = 0x23\n\tIFT_ARCNETPLUS                = 0x24\n\tIFT_ATM                       = 0x25\n\tIFT_CEPT                      = 0x13\n\tIFT_CLUSTER                   = 0x3e\n\tIFT_DS3                       = 0x1e\n\tIFT_EON                       = 0x19\n\tIFT_ETHER                     = 0x6\n\tIFT_FCS                       = 0x3a\n\tIFT_FDDI                      = 0xf\n\tIFT_FRELAY                    = 0x20\n\tIFT_FRELAYDCE                 = 0x2c\n\tIFT_GIFTUNNEL                 = 0x3c\n\tIFT_HDH1822                   = 0x3\n\tIFT_HF                        = 0x3d\n\tIFT_HIPPI                     = 0x2f\n\tIFT_HSSI                      = 0x2e\n\tIFT_HY                        = 0xe\n\tIFT_IB                        = 0xc7\n\tIFT_ISDNBASIC                 = 0x14\n\tIFT_ISDNPRIMARY               = 0x15\n\tIFT_ISO88022LLC               = 0x29\n\tIFT_ISO88023                  = 0x7\n\tIFT_ISO88024                  = 0x8\n\tIFT_ISO88025                  = 0x9\n\tIFT_ISO88026                  = 0xa\n\tIFT_LAPB                      = 0x10\n\tIFT_LOCALTALK                 = 0x2a\n\tIFT_LOOP                      = 0x18\n\tIFT_MIOX25                    = 0x26\n\tIFT_MODEM                     = 0x30\n\tIFT_NSIP                      = 0x1b\n\tIFT_OTHER                     = 0x1\n\tIFT_P10                       = 0xc\n\tIFT_P80                       = 0xd\n\tIFT_PARA                      = 0x22\n\tIFT_PPP                       = 0x17\n\tIFT_PROPMUX                   = 0x36\n\tIFT_PROPVIRTUAL               = 0x35\n\tIFT_PTPSERIAL                 = 0x16\n\tIFT_RS232                     = 0x21\n\tIFT_SDLC                      = 0x11\n\tIFT_SIP                       = 0x1f\n\tIFT_SLIP                      = 0x1c\n\tIFT_SMDSDXI                   = 0x2b\n\tIFT_SMDSICIP                  = 0x34\n\tIFT_SN                        = 0x38\n\tIFT_SONET                     = 0x27\n\tIFT_SONETPATH                 = 0x32\n\tIFT_SONETVT                   = 0x33\n\tIFT_SP                        = 0x39\n\tIFT_STARLAN                   = 0xb\n\tIFT_T1                        = 0x12\n\tIFT_TUNNEL                    = 0x3b\n\tIFT_ULTRA                     = 0x1d\n\tIFT_V35                       = 0x2d\n\tIFT_VIPA                      = 0x37\n\tIFT_X25                       = 0x5\n\tIFT_X25DDN                    = 0x4\n\tIFT_X25PLE                    = 0x28\n\tIFT_XETHER                    = 0x1a\n\tIGNBRK                        = 0x1\n\tIGNCR                         = 0x80\n\tIGNPAR                        = 0x4\n\tIMAXBEL                       = 0x10000\n\tINLCR                         = 0x40\n\tINPCK                         = 0x10\n\tIN_CLASSA_HOST                = 0xffffff\n\tIN_CLASSA_MAX                 = 0x80\n\tIN_CLASSA_NET                 = 0xff000000\n\tIN_CLASSA_NSHIFT              = 0x18\n\tIN_CLASSB_HOST                = 0xffff\n\tIN_CLASSB_MAX                 = 0x10000\n\tIN_CLASSB_NET                 = 0xffff0000\n\tIN_CLASSB_NSHIFT              = 0x10\n\tIN_CLASSC_HOST                = 0xff\n\tIN_CLASSC_NET                 = 0xffffff00\n\tIN_CLASSC_NSHIFT              = 0x8\n\tIN_CLASSD_HOST                = 0xfffffff\n\tIN_CLASSD_NET                 = 0xf0000000\n\tIN_CLASSD_NSHIFT              = 0x1c\n\tIN_LOOPBACKNET                = 0x7f\n\tIN_USE                        = 0x1\n\tIPPROTO_AH                    = 0x33\n\tIPPROTO_BIP                   = 0x53\n\tIPPROTO_DSTOPTS               = 0x3c\n\tIPPROTO_EGP                   = 0x8\n\tIPPROTO_EON                   = 0x50\n\tIPPROTO_ESP                   = 0x32\n\tIPPROTO_FRAGMENT              = 0x2c\n\tIPPROTO_GGP                   = 0x3\n\tIPPROTO_GIF                   = 0x8c\n\tIPPROTO_GRE                   = 0x2f\n\tIPPROTO_HOPOPTS               = 0x0\n\tIPPROTO_ICMP                  = 0x1\n\tIPPROTO_ICMPV6                = 0x3a\n\tIPPROTO_IDP                   = 0x16\n\tIPPROTO_IGMP                  = 0x2\n\tIPPROTO_IP                    = 0x0\n\tIPPROTO_IPIP                  = 0x4\n\tIPPROTO_IPV6                  = 0x29\n\tIPPROTO_LOCAL                 = 0x3f\n\tIPPROTO_MAX                   = 0x100\n\tIPPROTO_MH                    = 0x87\n\tIPPROTO_NONE                  = 0x3b\n\tIPPROTO_PUP                   = 0xc\n\tIPPROTO_QOS                   = 0x2d\n\tIPPROTO_RAW                   = 0xff\n\tIPPROTO_ROUTING               = 0x2b\n\tIPPROTO_RSVP                  = 0x2e\n\tIPPROTO_SCTP                  = 0x84\n\tIPPROTO_TCP                   = 0x6\n\tIPPROTO_TP                    = 0x1d\n\tIPPROTO_UDP                   = 0x11\n\tIPV6_ADDRFORM                 = 0x16\n\tIPV6_ADDR_PREFERENCES         = 0x4a\n\tIPV6_ADD_MEMBERSHIP           = 0xc\n\tIPV6_AIXRAWSOCKET             = 0x39\n\tIPV6_CHECKSUM                 = 0x27\n\tIPV6_DONTFRAG                 = 0x2d\n\tIPV6_DROP_MEMBERSHIP          = 0xd\n\tIPV6_DSTOPTS                  = 0x36\n\tIPV6_FLOWINFO_FLOWLABEL       = 0xffffff\n\tIPV6_FLOWINFO_PRIFLOW         = 0xfffffff\n\tIPV6_FLOWINFO_PRIORITY        = 0xf000000\n\tIPV6_FLOWINFO_SRFLAG          = 0x10000000\n\tIPV6_FLOWINFO_VERSION         = 0xf0000000\n\tIPV6_HOPLIMIT                 = 0x28\n\tIPV6_HOPOPTS                  = 0x34\n\tIPV6_JOIN_GROUP               = 0xc\n\tIPV6_LEAVE_GROUP              = 0xd\n\tIPV6_MIPDSTOPTS               = 0x36\n\tIPV6_MULTICAST_HOPS           = 0xa\n\tIPV6_MULTICAST_IF             = 0x9\n\tIPV6_MULTICAST_LOOP           = 0xb\n\tIPV6_NEXTHOP                  = 0x30\n\tIPV6_NOPROBE                  = 0x1c\n\tIPV6_PATHMTU                  = 0x2e\n\tIPV6_PKTINFO                  = 0x21\n\tIPV6_PKTOPTIONS               = 0x24\n\tIPV6_PRIORITY_10              = 0xa000000\n\tIPV6_PRIORITY_11              = 0xb000000\n\tIPV6_PRIORITY_12              = 0xc000000\n\tIPV6_PRIORITY_13              = 0xd000000\n\tIPV6_PRIORITY_14              = 0xe000000\n\tIPV6_PRIORITY_15              = 0xf000000\n\tIPV6_PRIORITY_8               = 0x8000000\n\tIPV6_PRIORITY_9               = 0x9000000\n\tIPV6_PRIORITY_BULK            = 0x4000000\n\tIPV6_PRIORITY_CONTROL         = 0x7000000\n\tIPV6_PRIORITY_FILLER          = 0x1000000\n\tIPV6_PRIORITY_INTERACTIVE     = 0x6000000\n\tIPV6_PRIORITY_RESERVED1       = 0x3000000\n\tIPV6_PRIORITY_RESERVED2       = 0x5000000\n\tIPV6_PRIORITY_UNATTENDED      = 0x2000000\n\tIPV6_PRIORITY_UNCHARACTERIZED = 0x0\n\tIPV6_RECVDSTOPTS              = 0x38\n\tIPV6_RECVHOPLIMIT             = 0x29\n\tIPV6_RECVHOPOPTS              = 0x35\n\tIPV6_RECVHOPS                 = 0x22\n\tIPV6_RECVIF                   = 0x1e\n\tIPV6_RECVPATHMTU              = 0x2f\n\tIPV6_RECVPKTINFO              = 0x23\n\tIPV6_RECVRTHDR                = 0x33\n\tIPV6_RECVSRCRT                = 0x1d\n\tIPV6_RECVTCLASS               = 0x2a\n\tIPV6_RTHDR                    = 0x32\n\tIPV6_RTHDRDSTOPTS             = 0x37\n\tIPV6_RTHDR_TYPE_0             = 0x0\n\tIPV6_RTHDR_TYPE_2             = 0x2\n\tIPV6_SENDIF                   = 0x1f\n\tIPV6_SRFLAG_LOOSE             = 0x0\n\tIPV6_SRFLAG_STRICT            = 0x10000000\n\tIPV6_TCLASS                   = 0x2b\n\tIPV6_TOKEN_LENGTH             = 0x40\n\tIPV6_UNICAST_HOPS             = 0x4\n\tIPV6_USE_MIN_MTU              = 0x2c\n\tIPV6_V6ONLY                   = 0x25\n\tIPV6_VERSION                  = 0x60000000\n\tIP_ADDRFORM                   = 0x16\n\tIP_ADD_MEMBERSHIP             = 0xc\n\tIP_ADD_SOURCE_MEMBERSHIP      = 0x3c\n\tIP_BLOCK_SOURCE               = 0x3a\n\tIP_BROADCAST_IF               = 0x10\n\tIP_CACHE_LINE_SIZE            = 0x80\n\tIP_DEFAULT_MULTICAST_LOOP     = 0x1\n\tIP_DEFAULT_MULTICAST_TTL      = 0x1\n\tIP_DF                         = 0x4000\n\tIP_DHCPMODE                   = 0x11\n\tIP_DONTFRAG                   = 0x19\n\tIP_DROP_MEMBERSHIP            = 0xd\n\tIP_DROP_SOURCE_MEMBERSHIP     = 0x3d\n\tIP_FINDPMTU                   = 0x1a\n\tIP_HDRINCL                    = 0x2\n\tIP_INC_MEMBERSHIPS            = 0x14\n\tIP_INIT_MEMBERSHIP            = 0x14\n\tIP_MAXPACKET                  = 0xffff\n\tIP_MF                         = 0x2000\n\tIP_MSS                        = 0x240\n\tIP_MULTICAST_HOPS             = 0xa\n\tIP_MULTICAST_IF               = 0x9\n\tIP_MULTICAST_LOOP             = 0xb\n\tIP_MULTICAST_TTL              = 0xa\n\tIP_OPT                        = 0x1b\n\tIP_OPTIONS                    = 0x1\n\tIP_PMTUAGE                    = 0x1b\n\tIP_RECVDSTADDR                = 0x7\n\tIP_RECVIF                     = 0x14\n\tIP_RECVIFINFO                 = 0xf\n\tIP_RECVINTERFACE              = 0x20\n\tIP_RECVMACHDR                 = 0xe\n\tIP_RECVOPTS                   = 0x5\n\tIP_RECVRETOPTS                = 0x6\n\tIP_RECVTTL                    = 0x22\n\tIP_RETOPTS                    = 0x8\n\tIP_SOURCE_FILTER              = 0x48\n\tIP_TOS                        = 0x3\n\tIP_TTL                        = 0x4\n\tIP_UNBLOCK_SOURCE             = 0x3b\n\tIP_UNICAST_HOPS               = 0x4\n\tISIG                          = 0x1\n\tISTRIP                        = 0x20\n\tIUCLC                         = 0x800\n\tIXANY                         = 0x1000\n\tIXOFF                         = 0x400\n\tIXON                          = 0x200\n\tI_FLUSH                       = 0x20005305\n\tLNOFLSH                       = 0x8000\n\tLOCK_EX                       = 0x2\n\tLOCK_NB                       = 0x4\n\tLOCK_SH                       = 0x1\n\tLOCK_UN                       = 0x8\n\tMADV_DONTNEED                 = 0x4\n\tMADV_NORMAL                   = 0x0\n\tMADV_RANDOM                   = 0x1\n\tMADV_SEQUENTIAL               = 0x2\n\tMADV_SPACEAVAIL               = 0x5\n\tMADV_WILLNEED                 = 0x3\n\tMAP_ANON                      = 0x10\n\tMAP_ANONYMOUS                 = 0x10\n\tMAP_FILE                      = 0x0\n\tMAP_FIXED                     = 0x100\n\tMAP_PRIVATE                   = 0x2\n\tMAP_SHARED                    = 0x1\n\tMAP_TYPE                      = 0xf0\n\tMAP_VARIABLE                  = 0x0\n\tMCAST_BLOCK_SOURCE            = 0x40\n\tMCAST_EXCLUDE                 = 0x2\n\tMCAST_INCLUDE                 = 0x1\n\tMCAST_JOIN_GROUP              = 0x3e\n\tMCAST_JOIN_SOURCE_GROUP       = 0x42\n\tMCAST_LEAVE_GROUP             = 0x3f\n\tMCAST_LEAVE_SOURCE_GROUP      = 0x43\n\tMCAST_SOURCE_FILTER           = 0x49\n\tMCAST_UNBLOCK_SOURCE          = 0x41\n\tMCL_CURRENT                   = 0x100\n\tMCL_FUTURE                    = 0x200\n\tMSG_ANY                       = 0x4\n\tMSG_ARGEXT                    = 0x400\n\tMSG_BAND                      = 0x2\n\tMSG_COMPAT                    = 0x8000\n\tMSG_CTRUNC                    = 0x20\n\tMSG_DONTROUTE                 = 0x4\n\tMSG_EOR                       = 0x8\n\tMSG_HIPRI                     = 0x1\n\tMSG_MAXIOVLEN                 = 0x10\n\tMSG_MPEG2                     = 0x80\n\tMSG_NONBLOCK                  = 0x4000\n\tMSG_NOSIGNAL                  = 0x100\n\tMSG_OOB                       = 0x1\n\tMSG_PEEK                      = 0x2\n\tMSG_TRUNC                     = 0x10\n\tMSG_WAITALL                   = 0x40\n\tMSG_WAITFORONE                = 0x200\n\tMS_ASYNC                      = 0x10\n\tMS_EINTR                      = 0x80\n\tMS_INVALIDATE                 = 0x40\n\tMS_PER_SEC                    = 0x3e8\n\tMS_SYNC                       = 0x20\n\tNFDBITS                       = 0x20\n\tNL0                           = 0x0\n\tNL1                           = 0x4000\n\tNL2                           = 0x8000\n\tNL3                           = 0xc000\n\tNLDLY                         = 0x4000\n\tNOFLSH                        = 0x80\n\tNOFLUSH                       = 0x80000000\n\tOCRNL                         = 0x8\n\tOFDEL                         = 0x80\n\tOFILL                         = 0x40\n\tOLCUC                         = 0x2\n\tONLCR                         = 0x4\n\tONLRET                        = 0x20\n\tONOCR                         = 0x10\n\tONOEOT                        = 0x80000\n\tOPOST                         = 0x1\n\tOXTABS                        = 0x40000\n\tO_ACCMODE                     = 0x23\n\tO_APPEND                      = 0x8\n\tO_CIO                         = 0x80\n\tO_CIOR                        = 0x800000000\n\tO_CLOEXEC                     = 0x800000\n\tO_CREAT                       = 0x100\n\tO_DEFER                       = 0x2000\n\tO_DELAY                       = 0x4000\n\tO_DIRECT                      = 0x8000000\n\tO_DIRECTORY                   = 0x80000\n\tO_DSYNC                       = 0x400000\n\tO_EFSOFF                      = 0x400000000\n\tO_EFSON                       = 0x200000000\n\tO_EXCL                        = 0x400\n\tO_EXEC                        = 0x20\n\tO_LARGEFILE                   = 0x4000000\n\tO_NDELAY                      = 0x8000\n\tO_NOCACHE                     = 0x100000\n\tO_NOCTTY                      = 0x800\n\tO_NOFOLLOW                    = 0x1000000\n\tO_NONBLOCK                    = 0x4\n\tO_NONE                        = 0x3\n\tO_NSHARE                      = 0x10000\n\tO_RAW                         = 0x100000000\n\tO_RDONLY                      = 0x0\n\tO_RDWR                        = 0x2\n\tO_RSHARE                      = 0x1000\n\tO_RSYNC                       = 0x200000\n\tO_SEARCH                      = 0x20\n\tO_SNAPSHOT                    = 0x40\n\tO_SYNC                        = 0x10\n\tO_TRUNC                       = 0x200\n\tO_TTY_INIT                    = 0x0\n\tO_WRONLY                      = 0x1\n\tPARENB                        = 0x100\n\tPAREXT                        = 0x100000\n\tPARMRK                        = 0x8\n\tPARODD                        = 0x200\n\tPENDIN                        = 0x20000000\n\tPRIO_PGRP                     = 0x1\n\tPRIO_PROCESS                  = 0x0\n\tPRIO_USER                     = 0x2\n\tPROT_EXEC                     = 0x4\n\tPROT_NONE                     = 0x0\n\tPROT_READ                     = 0x1\n\tPROT_WRITE                    = 0x2\n\tPR_64BIT                      = 0x20\n\tPR_ADDR                       = 0x2\n\tPR_ARGEXT                     = 0x400\n\tPR_ATOMIC                     = 0x1\n\tPR_CONNREQUIRED               = 0x4\n\tPR_FASTHZ                     = 0x5\n\tPR_INP                        = 0x40\n\tPR_INTRLEVEL                  = 0x8000\n\tPR_MLS                        = 0x100\n\tPR_MLS_1_LABEL                = 0x200\n\tPR_NOEOR                      = 0x4000\n\tPR_RIGHTS                     = 0x10\n\tPR_SLOWHZ                     = 0x2\n\tPR_WANTRCVD                   = 0x8\n\tRLIMIT_AS                     = 0x6\n\tRLIMIT_CORE                   = 0x4\n\tRLIMIT_CPU                    = 0x0\n\tRLIMIT_DATA                   = 0x2\n\tRLIMIT_FSIZE                  = 0x1\n\tRLIMIT_NOFILE                 = 0x7\n\tRLIMIT_NPROC                  = 0x9\n\tRLIMIT_RSS                    = 0x5\n\tRLIMIT_STACK                  = 0x3\n\tRLIM_INFINITY                 = 0x7fffffff\n\tRTAX_AUTHOR                   = 0x6\n\tRTAX_BRD                      = 0x7\n\tRTAX_DST                      = 0x0\n\tRTAX_GATEWAY                  = 0x1\n\tRTAX_GENMASK                  = 0x3\n\tRTAX_IFA                      = 0x5\n\tRTAX_IFP                      = 0x4\n\tRTAX_MAX                      = 0x8\n\tRTAX_NETMASK                  = 0x2\n\tRTA_AUTHOR                    = 0x40\n\tRTA_BRD                       = 0x80\n\tRTA_DOWNSTREAM                = 0x100\n\tRTA_DST                       = 0x1\n\tRTA_GATEWAY                   = 0x2\n\tRTA_GENMASK                   = 0x8\n\tRTA_IFA                       = 0x20\n\tRTA_IFP                       = 0x10\n\tRTA_NETMASK                   = 0x4\n\tRTC_IA64                      = 0x3\n\tRTC_POWER                     = 0x1\n\tRTC_POWER_PC                  = 0x2\n\tRTF_ACTIVE_DGD                = 0x1000000\n\tRTF_BCE                       = 0x80000\n\tRTF_BLACKHOLE                 = 0x1000\n\tRTF_BROADCAST                 = 0x400000\n\tRTF_BUL                       = 0x2000\n\tRTF_CLONE                     = 0x10000\n\tRTF_CLONED                    = 0x20000\n\tRTF_CLONING                   = 0x100\n\tRTF_DONE                      = 0x40\n\tRTF_DYNAMIC                   = 0x10\n\tRTF_FREE_IN_PROG              = 0x4000000\n\tRTF_GATEWAY                   = 0x2\n\tRTF_HOST                      = 0x4\n\tRTF_LLINFO                    = 0x400\n\tRTF_LOCAL                     = 0x200000\n\tRTF_MASK                      = 0x80\n\tRTF_MODIFIED                  = 0x20\n\tRTF_MULTICAST                 = 0x800000\n\tRTF_PERMANENT6                = 0x8000000\n\tRTF_PINNED                    = 0x100000\n\tRTF_PROTO1                    = 0x8000\n\tRTF_PROTO2                    = 0x4000\n\tRTF_PROTO3                    = 0x40000\n\tRTF_REJECT                    = 0x8\n\tRTF_SMALLMTU                  = 0x40000\n\tRTF_STATIC                    = 0x800\n\tRTF_STOPSRCH                  = 0x2000000\n\tRTF_UNREACHABLE               = 0x10000000\n\tRTF_UP                        = 0x1\n\tRTF_XRESOLVE                  = 0x200\n\tRTM_ADD                       = 0x1\n\tRTM_CHANGE                    = 0x3\n\tRTM_DELADDR                   = 0xd\n\tRTM_DELETE                    = 0x2\n\tRTM_EXPIRE                    = 0xf\n\tRTM_GET                       = 0x4\n\tRTM_GETNEXT                   = 0x11\n\tRTM_IFINFO                    = 0xe\n\tRTM_LOCK                      = 0x8\n\tRTM_LOSING                    = 0x5\n\tRTM_MISS                      = 0x7\n\tRTM_NEWADDR                   = 0xc\n\tRTM_OLDADD                    = 0x9\n\tRTM_OLDDEL                    = 0xa\n\tRTM_REDIRECT                  = 0x6\n\tRTM_RESOLVE                   = 0xb\n\tRTM_RTLOST                    = 0x10\n\tRTM_RTTUNIT                   = 0xf4240\n\tRTM_SAMEADDR                  = 0x12\n\tRTM_SET                       = 0x13\n\tRTM_VERSION                   = 0x2\n\tRTM_VERSION_GR                = 0x4\n\tRTM_VERSION_GR_COMPAT         = 0x3\n\tRTM_VERSION_POLICY            = 0x5\n\tRTM_VERSION_POLICY_EXT        = 0x6\n\tRTM_VERSION_POLICY_PRFN       = 0x7\n\tRTV_EXPIRE                    = 0x4\n\tRTV_HOPCOUNT                  = 0x2\n\tRTV_MTU                       = 0x1\n\tRTV_RPIPE                     = 0x8\n\tRTV_RTT                       = 0x40\n\tRTV_RTTVAR                    = 0x80\n\tRTV_SPIPE                     = 0x10\n\tRTV_SSTHRESH                  = 0x20\n\tRUSAGE_CHILDREN               = -0x1\n\tRUSAGE_SELF                   = 0x0\n\tRUSAGE_THREAD                 = 0x1\n\tSCM_RIGHTS                    = 0x1\n\tSHUT_RD                       = 0x0\n\tSHUT_RDWR                     = 0x2\n\tSHUT_WR                       = 0x1\n\tSIGMAX64                      = 0xff\n\tSIGQUEUE_MAX                  = 0x20\n\tSIOCADDIFVIPA                 = 0x20006942\n\tSIOCADDMTU                    = -0x7ffb9690\n\tSIOCADDMULTI                  = -0x7fdf96cf\n\tSIOCADDNETID                  = -0x7fd796a9\n\tSIOCADDRT                     = -0x7fcf8df6\n\tSIOCAIFADDR                   = -0x7fbf96e6\n\tSIOCATMARK                    = 0x40047307\n\tSIOCDARP                      = -0x7fb396e0\n\tSIOCDELIFVIPA                 = 0x20006943\n\tSIOCDELMTU                    = -0x7ffb968f\n\tSIOCDELMULTI                  = -0x7fdf96ce\n\tSIOCDELPMTU                   = -0x7fd78ff6\n\tSIOCDELRT                     = -0x7fcf8df5\n\tSIOCDIFADDR                   = -0x7fd796e7\n\tSIOCDNETOPT                   = -0x3ffe9680\n\tSIOCDX25XLATE                 = -0x7fd7969b\n\tSIOCFIFADDR                   = -0x7fdf966d\n\tSIOCGARP                      = -0x3fb396da\n\tSIOCGETMTUS                   = 0x2000696f\n\tSIOCGETSGCNT                  = -0x3feb8acc\n\tSIOCGETVIFCNT                 = -0x3feb8acd\n\tSIOCGHIWAT                    = 0x40047301\n\tSIOCGIFADDR                   = -0x3fd796df\n\tSIOCGIFADDRS                  = 0x2000698c\n\tSIOCGIFBAUDRATE               = -0x3fdf9669\n\tSIOCGIFBRDADDR                = -0x3fd796dd\n\tSIOCGIFCONF                   = -0x3ff796bb\n\tSIOCGIFCONFGLOB               = -0x3ff79670\n\tSIOCGIFDSTADDR                = -0x3fd796de\n\tSIOCGIFFLAGS                  = -0x3fd796ef\n\tSIOCGIFGIDLIST                = 0x20006968\n\tSIOCGIFHWADDR                 = -0x3fab966b\n\tSIOCGIFMETRIC                 = -0x3fd796e9\n\tSIOCGIFMTU                    = -0x3fd796aa\n\tSIOCGIFNETMASK                = -0x3fd796db\n\tSIOCGIFOPTIONS                = -0x3fd796d6\n\tSIOCGISNO                     = -0x3fd79695\n\tSIOCGLOADF                    = -0x3ffb967e\n\tSIOCGLOWAT                    = 0x40047303\n\tSIOCGNETOPT                   = -0x3ffe96a5\n\tSIOCGNETOPT1                  = -0x3fdf967f\n\tSIOCGNMTUS                    = 0x2000696e\n\tSIOCGPGRP                     = 0x40047309\n\tSIOCGSIZIFCONF                = 0x4004696a\n\tSIOCGSRCFILTER                = -0x3fe796cb\n\tSIOCGTUNEPHASE                = -0x3ffb9676\n\tSIOCGX25XLATE                 = -0x3fd7969c\n\tSIOCIFATTACH                  = -0x7fdf9699\n\tSIOCIFDETACH                  = -0x7fdf969a\n\tSIOCIFGETPKEY                 = -0x7fdf969b\n\tSIOCIF_ATM_DARP               = -0x7fdf9683\n\tSIOCIF_ATM_DUMPARP            = -0x7fdf9685\n\tSIOCIF_ATM_GARP               = -0x7fdf9682\n\tSIOCIF_ATM_IDLE               = -0x7fdf9686\n\tSIOCIF_ATM_SARP               = -0x7fdf9681\n\tSIOCIF_ATM_SNMPARP            = -0x7fdf9687\n\tSIOCIF_ATM_SVC                = -0x7fdf9684\n\tSIOCIF_ATM_UBR                = -0x7fdf9688\n\tSIOCIF_DEVHEALTH              = -0x7ffb966c\n\tSIOCIF_IB_ARP_INCOMP          = -0x7fdf9677\n\tSIOCIF_IB_ARP_TIMER           = -0x7fdf9678\n\tSIOCIF_IB_CLEAR_PINFO         = -0x3fdf966f\n\tSIOCIF_IB_DEL_ARP             = -0x7fdf967f\n\tSIOCIF_IB_DEL_PINFO           = -0x3fdf9670\n\tSIOCIF_IB_DUMP_ARP            = -0x7fdf9680\n\tSIOCIF_IB_GET_ARP             = -0x7fdf967e\n\tSIOCIF_IB_GET_INFO            = -0x3f879675\n\tSIOCIF_IB_GET_STATS           = -0x3f879672\n\tSIOCIF_IB_NOTIFY_ADDR_REM     = -0x3f87966a\n\tSIOCIF_IB_RESET_STATS         = -0x3f879671\n\tSIOCIF_IB_RESIZE_CQ           = -0x7fdf9679\n\tSIOCIF_IB_SET_ARP             = -0x7fdf967d\n\tSIOCIF_IB_SET_PKEY            = -0x7fdf967c\n\tSIOCIF_IB_SET_PORT            = -0x7fdf967b\n\tSIOCIF_IB_SET_QKEY            = -0x7fdf9676\n\tSIOCIF_IB_SET_QSIZE           = -0x7fdf967a\n\tSIOCLISTIFVIPA                = 0x20006944\n\tSIOCSARP                      = -0x7fb396e2\n\tSIOCSHIWAT                    = 0x80047300\n\tSIOCSIFADDR                   = -0x7fd796f4\n\tSIOCSIFADDRORI                = -0x7fdb9673\n\tSIOCSIFBRDADDR                = -0x7fd796ed\n\tSIOCSIFDSTADDR                = -0x7fd796f2\n\tSIOCSIFFLAGS                  = -0x7fd796f0\n\tSIOCSIFGIDLIST                = 0x20006969\n\tSIOCSIFMETRIC                 = -0x7fd796e8\n\tSIOCSIFMTU                    = -0x7fd796a8\n\tSIOCSIFNETDUMP                = -0x7fd796e4\n\tSIOCSIFNETMASK                = -0x7fd796ea\n\tSIOCSIFOPTIONS                = -0x7fd796d7\n\tSIOCSIFSUBCHAN                = -0x7fd796e5\n\tSIOCSISNO                     = -0x7fd79694\n\tSIOCSLOADF                    = -0x3ffb967d\n\tSIOCSLOWAT                    = 0x80047302\n\tSIOCSNETOPT                   = -0x7ffe96a6\n\tSIOCSPGRP                     = 0x80047308\n\tSIOCSX25XLATE                 = -0x7fd7969d\n\tSOCK_CONN_DGRAM               = 0x6\n\tSOCK_DGRAM                    = 0x2\n\tSOCK_RAW                      = 0x3\n\tSOCK_RDM                      = 0x4\n\tSOCK_SEQPACKET                = 0x5\n\tSOCK_STREAM                   = 0x1\n\tSOL_SOCKET                    = 0xffff\n\tSOMAXCONN                     = 0x400\n\tSO_ACCEPTCONN                 = 0x2\n\tSO_AUDIT                      = 0x8000\n\tSO_BROADCAST                  = 0x20\n\tSO_CKSUMRECV                  = 0x800\n\tSO_DEBUG                      = 0x1\n\tSO_DONTROUTE                  = 0x10\n\tSO_ERROR                      = 0x1007\n\tSO_KEEPALIVE                  = 0x8\n\tSO_KERNACCEPT                 = 0x2000\n\tSO_LINGER                     = 0x80\n\tSO_NOMULTIPATH                = 0x4000\n\tSO_NOREUSEADDR                = 0x1000\n\tSO_OOBINLINE                  = 0x100\n\tSO_PEERID                     = 0x1009\n\tSO_RCVBUF                     = 0x1002\n\tSO_RCVLOWAT                   = 0x1004\n\tSO_RCVTIMEO                   = 0x1006\n\tSO_REUSEADDR                  = 0x4\n\tSO_REUSEPORT                  = 0x200\n\tSO_SNDBUF                     = 0x1001\n\tSO_SNDLOWAT                   = 0x1003\n\tSO_SNDTIMEO                   = 0x1005\n\tSO_TIMESTAMPNS                = 0x100a\n\tSO_TYPE                       = 0x1008\n\tSO_USELOOPBACK                = 0x40\n\tSO_USE_IFBUFS                 = 0x400\n\tS_BANDURG                     = 0x400\n\tS_EMODFMT                     = 0x3c000000\n\tS_ENFMT                       = 0x400\n\tS_ERROR                       = 0x100\n\tS_HANGUP                      = 0x200\n\tS_HIPRI                       = 0x2\n\tS_ICRYPTO                     = 0x80000\n\tS_IEXEC                       = 0x40\n\tS_IFBLK                       = 0x6000\n\tS_IFCHR                       = 0x2000\n\tS_IFDIR                       = 0x4000\n\tS_IFIFO                       = 0x1000\n\tS_IFJOURNAL                   = 0x10000\n\tS_IFLNK                       = 0xa000\n\tS_IFMPX                       = 0x2200\n\tS_IFMT                        = 0xf000\n\tS_IFPDIR                      = 0x4000000\n\tS_IFPSDIR                     = 0x8000000\n\tS_IFPSSDIR                    = 0xc000000\n\tS_IFREG                       = 0x8000\n\tS_IFSOCK                      = 0xc000\n\tS_IFSYSEA                     = 0x30000000\n\tS_INPUT                       = 0x1\n\tS_IREAD                       = 0x100\n\tS_IRGRP                       = 0x20\n\tS_IROTH                       = 0x4\n\tS_IRUSR                       = 0x100\n\tS_IRWXG                       = 0x38\n\tS_IRWXO                       = 0x7\n\tS_IRWXU                       = 0x1c0\n\tS_ISGID                       = 0x400\n\tS_ISUID                       = 0x800\n\tS_ISVTX                       = 0x200\n\tS_ITCB                        = 0x1000000\n\tS_ITP                         = 0x800000\n\tS_IWGRP                       = 0x10\n\tS_IWOTH                       = 0x2\n\tS_IWRITE                      = 0x80\n\tS_IWUSR                       = 0x80\n\tS_IXACL                       = 0x2000000\n\tS_IXATTR                      = 0x40000\n\tS_IXGRP                       = 0x8\n\tS_IXINTERFACE                 = 0x100000\n\tS_IXMOD                       = 0x40000000\n\tS_IXOTH                       = 0x1\n\tS_IXUSR                       = 0x40\n\tS_MSG                         = 0x8\n\tS_OUTPUT                      = 0x4\n\tS_RDBAND                      = 0x20\n\tS_RDNORM                      = 0x10\n\tS_RESERVED1                   = 0x20000\n\tS_RESERVED2                   = 0x200000\n\tS_RESERVED3                   = 0x400000\n\tS_RESERVED4                   = 0x80000000\n\tS_RESFMT1                     = 0x10000000\n\tS_RESFMT10                    = 0x34000000\n\tS_RESFMT11                    = 0x38000000\n\tS_RESFMT12                    = 0x3c000000\n\tS_RESFMT2                     = 0x14000000\n\tS_RESFMT3                     = 0x18000000\n\tS_RESFMT4                     = 0x1c000000\n\tS_RESFMT5                     = 0x20000000\n\tS_RESFMT6                     = 0x24000000\n\tS_RESFMT7                     = 0x28000000\n\tS_RESFMT8                     = 0x2c000000\n\tS_WRBAND                      = 0x80\n\tS_WRNORM                      = 0x40\n\tTAB0                          = 0x0\n\tTAB1                          = 0x400\n\tTAB2                          = 0x800\n\tTAB3                          = 0xc00\n\tTABDLY                        = 0xc00\n\tTCFLSH                        = 0x540c\n\tTCGETA                        = 0x5405\n\tTCGETS                        = 0x5401\n\tTCIFLUSH                      = 0x0\n\tTCIOFF                        = 0x2\n\tTCIOFLUSH                     = 0x2\n\tTCION                         = 0x3\n\tTCOFLUSH                      = 0x1\n\tTCOOFF                        = 0x0\n\tTCOON                         = 0x1\n\tTCP_24DAYS_WORTH_OF_SLOWTICKS = 0x3f4800\n\tTCP_ACLADD                    = 0x23\n\tTCP_ACLBIND                   = 0x26\n\tTCP_ACLCLEAR                  = 0x22\n\tTCP_ACLDEL                    = 0x24\n\tTCP_ACLDENY                   = 0x8\n\tTCP_ACLFLUSH                  = 0x21\n\tTCP_ACLGID                    = 0x1\n\tTCP_ACLLS                     = 0x25\n\tTCP_ACLSUBNET                 = 0x4\n\tTCP_ACLUID                    = 0x2\n\tTCP_CWND_DF                   = 0x16\n\tTCP_CWND_IF                   = 0x15\n\tTCP_DELAY_ACK_FIN             = 0x2\n\tTCP_DELAY_ACK_SYN             = 0x1\n\tTCP_FASTNAME                  = 0x101080a\n\tTCP_KEEPCNT                   = 0x13\n\tTCP_KEEPIDLE                  = 0x11\n\tTCP_KEEPINTVL                 = 0x12\n\tTCP_LSPRIV                    = 0x29\n\tTCP_LUID                      = 0x20\n\tTCP_MAXBURST                  = 0x8\n\tTCP_MAXDF                     = 0x64\n\tTCP_MAXIF                     = 0x64\n\tTCP_MAXSEG                    = 0x2\n\tTCP_MAXWIN                    = 0xffff\n\tTCP_MAXWINDOWSCALE            = 0xe\n\tTCP_MAX_SACK                  = 0x4\n\tTCP_MSS                       = 0x5b4\n\tTCP_NODELAY                   = 0x1\n\tTCP_NODELAYACK                = 0x14\n\tTCP_NOREDUCE_CWND_EXIT_FRXMT  = 0x19\n\tTCP_NOREDUCE_CWND_IN_FRXMT    = 0x18\n\tTCP_NOTENTER_SSTART           = 0x17\n\tTCP_OPT                       = 0x19\n\tTCP_RFC1323                   = 0x4\n\tTCP_SETPRIV                   = 0x27\n\tTCP_STDURG                    = 0x10\n\tTCP_TIMESTAMP_OPTLEN          = 0xc\n\tTCP_UNSETPRIV                 = 0x28\n\tTCSAFLUSH                     = 0x2\n\tTCSBRK                        = 0x5409\n\tTCSETA                        = 0x5406\n\tTCSETAF                       = 0x5408\n\tTCSETAW                       = 0x5407\n\tTCSETS                        = 0x5402\n\tTCSETSF                       = 0x5404\n\tTCSETSW                       = 0x5403\n\tTCXONC                        = 0x540b\n\tTIMER_ABSTIME                 = 0x3e7\n\tTIMER_MAX                     = 0x20\n\tTIOC                          = 0x5400\n\tTIOCCBRK                      = 0x2000747a\n\tTIOCCDTR                      = 0x20007478\n\tTIOCCONS                      = 0x80047462\n\tTIOCEXCL                      = 0x2000740d\n\tTIOCFLUSH                     = 0x80047410\n\tTIOCGETC                      = 0x40067412\n\tTIOCGETD                      = 0x40047400\n\tTIOCGETP                      = 0x40067408\n\tTIOCGLTC                      = 0x40067474\n\tTIOCGPGRP                     = 0x40047477\n\tTIOCGSID                      = 0x40047448\n\tTIOCGSIZE                     = 0x40087468\n\tTIOCGWINSZ                    = 0x40087468\n\tTIOCHPCL                      = 0x20007402\n\tTIOCLBIC                      = 0x8004747e\n\tTIOCLBIS                      = 0x8004747f\n\tTIOCLGET                      = 0x4004747c\n\tTIOCLSET                      = 0x8004747d\n\tTIOCMBIC                      = 0x8004746b\n\tTIOCMBIS                      = 0x8004746c\n\tTIOCMGET                      = 0x4004746a\n\tTIOCMIWAIT                    = 0x80047464\n\tTIOCMODG                      = 0x40047403\n\tTIOCMODS                      = 0x80047404\n\tTIOCMSET                      = 0x8004746d\n\tTIOCM_CAR                     = 0x40\n\tTIOCM_CD                      = 0x40\n\tTIOCM_CTS                     = 0x20\n\tTIOCM_DSR                     = 0x100\n\tTIOCM_DTR                     = 0x2\n\tTIOCM_LE                      = 0x1\n\tTIOCM_RI                      = 0x80\n\tTIOCM_RNG                     = 0x80\n\tTIOCM_RTS                     = 0x4\n\tTIOCM_SR                      = 0x10\n\tTIOCM_ST                      = 0x8\n\tTIOCNOTTY                     = 0x20007471\n\tTIOCNXCL                      = 0x2000740e\n\tTIOCOUTQ                      = 0x40047473\n\tTIOCPKT                       = 0x80047470\n\tTIOCPKT_DATA                  = 0x0\n\tTIOCPKT_DOSTOP                = 0x20\n\tTIOCPKT_FLUSHREAD             = 0x1\n\tTIOCPKT_FLUSHWRITE            = 0x2\n\tTIOCPKT_NOSTOP                = 0x10\n\tTIOCPKT_START                 = 0x8\n\tTIOCPKT_STOP                  = 0x4\n\tTIOCREMOTE                    = 0x80047469\n\tTIOCSBRK                      = 0x2000747b\n\tTIOCSDTR                      = 0x20007479\n\tTIOCSETC                      = 0x80067411\n\tTIOCSETD                      = 0x80047401\n\tTIOCSETN                      = 0x8006740a\n\tTIOCSETP                      = 0x80067409\n\tTIOCSLTC                      = 0x80067475\n\tTIOCSPGRP                     = 0x80047476\n\tTIOCSSIZE                     = 0x80087467\n\tTIOCSTART                     = 0x2000746e\n\tTIOCSTI                       = 0x80017472\n\tTIOCSTOP                      = 0x2000746f\n\tTIOCSWINSZ                    = 0x80087467\n\tTIOCUCNTL                     = 0x80047466\n\tTOSTOP                        = 0x10000\n\tUTIME_NOW                     = -0x2\n\tUTIME_OMIT                    = -0x3\n\tVDISCRD                       = 0xc\n\tVDSUSP                        = 0xa\n\tVEOF                          = 0x4\n\tVEOL                          = 0x5\n\tVEOL2                         = 0x6\n\tVERASE                        = 0x2\n\tVINTR                         = 0x0\n\tVKILL                         = 0x3\n\tVLNEXT                        = 0xe\n\tVMIN                          = 0x4\n\tVQUIT                         = 0x1\n\tVREPRINT                      = 0xb\n\tVSTART                        = 0x7\n\tVSTOP                         = 0x8\n\tVSTRT                         = 0x7\n\tVSUSP                         = 0x9\n\tVT0                           = 0x0\n\tVT1                           = 0x8000\n\tVTDELAY                       = 0x2000\n\tVTDLY                         = 0x8000\n\tVTIME                         = 0x5\n\tVWERSE                        = 0xd\n\tWPARSTART                     = 0x1\n\tWPARSTOP                      = 0x2\n\tWPARTTYNAME                   = \"Global\"\n\tXCASE                         = 0x4\n\tXTABS                         = 0xc00\n\t_FDATAFLUSH                   = 0x2000000000\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x43)\n\tEADDRNOTAVAIL   = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x42)\n\tEAGAIN          = syscall.Errno(0xb)\n\tEALREADY        = syscall.Errno(0x38)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x78)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x75)\n\tECHILD          = syscall.Errno(0xa)\n\tECHRNG          = syscall.Errno(0x25)\n\tECLONEME        = syscall.Errno(0x52)\n\tECONNABORTED    = syscall.Errno(0x48)\n\tECONNREFUSED    = syscall.Errno(0x4f)\n\tECONNRESET      = syscall.Errno(0x49)\n\tECORRUPT        = syscall.Errno(0x59)\n\tEDEADLK         = syscall.Errno(0x2d)\n\tEDESTADDREQ     = syscall.Errno(0x3a)\n\tEDESTADDRREQ    = syscall.Errno(0x3a)\n\tEDIST           = syscall.Errno(0x35)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x58)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFORMAT         = syscall.Errno(0x30)\n\tEHOSTDOWN       = syscall.Errno(0x50)\n\tEHOSTUNREACH    = syscall.Errno(0x51)\n\tEIDRM           = syscall.Errno(0x24)\n\tEILSEQ          = syscall.Errno(0x74)\n\tEINPROGRESS     = syscall.Errno(0x37)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x4b)\n\tEISDIR          = syscall.Errno(0x15)\n\tEL2HLT          = syscall.Errno(0x2c)\n\tEL2NSYNC        = syscall.Errno(0x26)\n\tEL3HLT          = syscall.Errno(0x27)\n\tEL3RST          = syscall.Errno(0x28)\n\tELNRNG          = syscall.Errno(0x29)\n\tELOOP           = syscall.Errno(0x55)\n\tEMEDIA          = syscall.Errno(0x6e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x3b)\n\tEMULTIHOP       = syscall.Errno(0x7d)\n\tENAMETOOLONG    = syscall.Errno(0x56)\n\tENETDOWN        = syscall.Errno(0x45)\n\tENETRESET       = syscall.Errno(0x47)\n\tENETUNREACH     = syscall.Errno(0x46)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x70)\n\tENOBUFS         = syscall.Errno(0x4a)\n\tENOCONNECT      = syscall.Errno(0x32)\n\tENOCSI          = syscall.Errno(0x2b)\n\tENODATA         = syscall.Errno(0x7a)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x31)\n\tENOLINK         = syscall.Errno(0x7e)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x23)\n\tENOPROTOOPT     = syscall.Errno(0x3d)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x76)\n\tENOSTR          = syscall.Errno(0x7b)\n\tENOSYS          = syscall.Errno(0x6d)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x4c)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x11)\n\tENOTREADY       = syscall.Errno(0x2e)\n\tENOTRECOVERABLE = syscall.Errno(0x5e)\n\tENOTRUST        = syscall.Errno(0x72)\n\tENOTSOCK        = syscall.Errno(0x39)\n\tENOTSUP         = syscall.Errno(0x7c)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x40)\n\tEOVERFLOW       = syscall.Errno(0x7f)\n\tEOWNERDEAD      = syscall.Errno(0x5f)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x41)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x53)\n\tEPROTO          = syscall.Errno(0x79)\n\tEPROTONOSUPPORT = syscall.Errno(0x3e)\n\tEPROTOTYPE      = syscall.Errno(0x3c)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x5d)\n\tERESTART        = syscall.Errno(0x52)\n\tEROFS           = syscall.Errno(0x1e)\n\tESAD            = syscall.Errno(0x71)\n\tESHUTDOWN       = syscall.Errno(0x4d)\n\tESOCKTNOSUPPORT = syscall.Errno(0x3f)\n\tESOFT           = syscall.Errno(0x6f)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x34)\n\tESYSERROR       = syscall.Errno(0x5a)\n\tETIME           = syscall.Errno(0x77)\n\tETIMEDOUT       = syscall.Errno(0x4e)\n\tETOOMANYREFS    = syscall.Errno(0x73)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUNATCH         = syscall.Errno(0x2a)\n\tEUSERS          = syscall.Errno(0x54)\n\tEWOULDBLOCK     = syscall.Errno(0xb)\n\tEWRPROTECT      = syscall.Errno(0x2f)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT     = syscall.Signal(0x6)\n\tSIGAIO      = syscall.Signal(0x17)\n\tSIGALRM     = syscall.Signal(0xe)\n\tSIGALRM1    = syscall.Signal(0x26)\n\tSIGBUS      = syscall.Signal(0xa)\n\tSIGCAPI     = syscall.Signal(0x31)\n\tSIGCHLD     = syscall.Signal(0x14)\n\tSIGCLD      = syscall.Signal(0x14)\n\tSIGCONT     = syscall.Signal(0x13)\n\tSIGCPUFAIL  = syscall.Signal(0x3b)\n\tSIGDANGER   = syscall.Signal(0x21)\n\tSIGEMT      = syscall.Signal(0x7)\n\tSIGFPE      = syscall.Signal(0x8)\n\tSIGGRANT    = syscall.Signal(0x3c)\n\tSIGHUP      = syscall.Signal(0x1)\n\tSIGILL      = syscall.Signal(0x4)\n\tSIGINT      = syscall.Signal(0x2)\n\tSIGIO       = syscall.Signal(0x17)\n\tSIGIOINT    = syscall.Signal(0x10)\n\tSIGIOT      = syscall.Signal(0x6)\n\tSIGKAP      = syscall.Signal(0x3c)\n\tSIGKILL     = syscall.Signal(0x9)\n\tSIGLOST     = syscall.Signal(0x6)\n\tSIGMAX      = syscall.Signal(0x3f)\n\tSIGMAX32    = syscall.Signal(0x3f)\n\tSIGMIGRATE  = syscall.Signal(0x23)\n\tSIGMSG      = syscall.Signal(0x1b)\n\tSIGPIPE     = syscall.Signal(0xd)\n\tSIGPOLL     = syscall.Signal(0x17)\n\tSIGPRE      = syscall.Signal(0x24)\n\tSIGPROF     = syscall.Signal(0x20)\n\tSIGPTY      = syscall.Signal(0x17)\n\tSIGPWR      = syscall.Signal(0x1d)\n\tSIGQUIT     = syscall.Signal(0x3)\n\tSIGRECONFIG = syscall.Signal(0x3a)\n\tSIGRETRACT  = syscall.Signal(0x3d)\n\tSIGSAK      = syscall.Signal(0x3f)\n\tSIGSEGV     = syscall.Signal(0xb)\n\tSIGSOUND    = syscall.Signal(0x3e)\n\tSIGSTOP     = syscall.Signal(0x11)\n\tSIGSYS      = syscall.Signal(0xc)\n\tSIGSYSERROR = syscall.Signal(0x30)\n\tSIGTALRM    = syscall.Signal(0x26)\n\tSIGTERM     = syscall.Signal(0xf)\n\tSIGTRAP     = syscall.Signal(0x5)\n\tSIGTSTP     = syscall.Signal(0x12)\n\tSIGTTIN     = syscall.Signal(0x15)\n\tSIGTTOU     = syscall.Signal(0x16)\n\tSIGURG      = syscall.Signal(0x10)\n\tSIGUSR1     = syscall.Signal(0x1e)\n\tSIGUSR2     = syscall.Signal(0x1f)\n\tSIGVIRT     = syscall.Signal(0x25)\n\tSIGVTALRM   = syscall.Signal(0x22)\n\tSIGWAITING  = syscall.Signal(0x27)\n\tSIGWINCH    = syscall.Signal(0x1c)\n\tSIGXCPU     = syscall.Signal(0x18)\n\tSIGXFSZ     = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"not owner\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"I/O error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"arg list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file number\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EWOULDBLOCK\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"not enough space\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"ENOTEMPTY\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"file table overflow\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"not a typewriter\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"ENOMSG\", \"no message of desired type\"},\n\t{36, \"EIDRM\", \"identifier removed\"},\n\t{37, \"ECHRNG\", \"channel number out of range\"},\n\t{38, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{39, \"EL3HLT\", \"level 3 halted\"},\n\t{40, \"EL3RST\", \"level 3 reset\"},\n\t{41, \"ELNRNG\", \"link number out of range\"},\n\t{42, \"EUNATCH\", \"protocol driver not attached\"},\n\t{43, \"ENOCSI\", \"no CSI structure available\"},\n\t{44, \"EL2HLT\", \"level 2 halted\"},\n\t{45, \"EDEADLK\", \"deadlock condition if locked\"},\n\t{46, \"ENOTREADY\", \"device not ready\"},\n\t{47, \"EWRPROTECT\", \"write-protected media\"},\n\t{48, \"EFORMAT\", \"unformatted or incompatible media\"},\n\t{49, \"ENOLCK\", \"no locks available\"},\n\t{50, \"ENOCONNECT\", \"cannot Establish Connection\"},\n\t{52, \"ESTALE\", \"missing file or filesystem\"},\n\t{53, \"EDIST\", \"requests blocked by Administrator\"},\n\t{55, \"EINPROGRESS\", \"operation now in progress\"},\n\t{56, \"EALREADY\", \"operation already in progress\"},\n\t{57, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{58, \"EDESTADDREQ\", \"destination address required\"},\n\t{59, \"EMSGSIZE\", \"message too long\"},\n\t{60, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{61, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{62, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{63, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{64, \"EOPNOTSUPP\", \"operation not supported on socket\"},\n\t{65, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{66, \"EAFNOSUPPORT\", \"addr family not supported by protocol\"},\n\t{67, \"EADDRINUSE\", \"address already in use\"},\n\t{68, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{69, \"ENETDOWN\", \"network is down\"},\n\t{70, \"ENETUNREACH\", \"network is unreachable\"},\n\t{71, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{72, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{73, \"ECONNRESET\", \"connection reset by peer\"},\n\t{74, \"ENOBUFS\", \"no buffer space available\"},\n\t{75, \"EISCONN\", \"socket is already connected\"},\n\t{76, \"ENOTCONN\", \"socket is not connected\"},\n\t{77, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{78, \"ETIMEDOUT\", \"connection timed out\"},\n\t{79, \"ECONNREFUSED\", \"connection refused\"},\n\t{80, \"EHOSTDOWN\", \"host is down\"},\n\t{81, \"EHOSTUNREACH\", \"no route to host\"},\n\t{82, \"ERESTART\", \"restart the system call\"},\n\t{83, \"EPROCLIM\", \"too many processes\"},\n\t{84, \"EUSERS\", \"too many users\"},\n\t{85, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{86, \"ENAMETOOLONG\", \"file name too long\"},\n\t{88, \"EDQUOT\", \"disk quota exceeded\"},\n\t{89, \"ECORRUPT\", \"invalid file system control data detected\"},\n\t{90, \"ESYSERROR\", \"for future use \"},\n\t{93, \"EREMOTE\", \"item is not local to host\"},\n\t{94, \"ENOTRECOVERABLE\", \"state not recoverable \"},\n\t{95, \"EOWNERDEAD\", \"previous owner died \"},\n\t{109, \"ENOSYS\", \"function not implemented\"},\n\t{110, \"EMEDIA\", \"media surface error\"},\n\t{111, \"ESOFT\", \"I/O completed, but needs relocation\"},\n\t{112, \"ENOATTR\", \"no attribute found\"},\n\t{113, \"ESAD\", \"security Authentication Denied\"},\n\t{114, \"ENOTRUST\", \"not a Trusted Program\"},\n\t{115, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{116, \"EILSEQ\", \"invalid wide character\"},\n\t{117, \"ECANCELED\", \"asynchronous I/O cancelled\"},\n\t{118, \"ENOSR\", \"out of STREAMS resources\"},\n\t{119, \"ETIME\", \"system call timed out\"},\n\t{120, \"EBADMSG\", \"next message has wrong type\"},\n\t{121, \"EPROTO\", \"error in protocol\"},\n\t{122, \"ENODATA\", \"no message on stream head read q\"},\n\t{123, \"ENOSTR\", \"fd not associated with a stream\"},\n\t{124, \"ENOTSUP\", \"unsupported attribute value\"},\n\t{125, \"EMULTIHOP\", \"multihop is not allowed\"},\n\t{126, \"ENOLINK\", \"the server link has been severed\"},\n\t{127, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"IOT/Abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"stopped (signal)\"},\n\t{18, \"SIGTSTP\", \"stopped\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible/complete\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{27, \"SIGMSG\", \"input device data\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGPWR\", \"power-failure\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGPROF\", \"profiling timer expired\"},\n\t{33, \"SIGDANGER\", \"paging space low\"},\n\t{34, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{35, \"SIGMIGRATE\", \"signal 35\"},\n\t{36, \"SIGPRE\", \"signal 36\"},\n\t{37, \"SIGVIRT\", \"signal 37\"},\n\t{38, \"SIGTALRM\", \"signal 38\"},\n\t{39, \"SIGWAITING\", \"signal 39\"},\n\t{48, \"SIGSYSERROR\", \"signal 48\"},\n\t{49, \"SIGCAPI\", \"signal 49\"},\n\t{58, \"SIGRECONFIG\", \"signal 58\"},\n\t{59, \"SIGCPUFAIL\", \"CPU Failure Predicted\"},\n\t{60, \"SIGKAP\", \"monitor mode granted\"},\n\t{61, \"SIGRETRACT\", \"monitor mode retracted\"},\n\t{62, \"SIGSOUND\", \"sound completed\"},\n\t{63, \"SIGSAK\", \"secure attention\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go",
    "content": "// mkerrors.sh -maix64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc64 && aix\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -maix64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                  = 0x10\n\tAF_BYPASS                     = 0x19\n\tAF_CCITT                      = 0xa\n\tAF_CHAOS                      = 0x5\n\tAF_DATAKIT                    = 0x9\n\tAF_DECnet                     = 0xc\n\tAF_DLI                        = 0xd\n\tAF_ECMA                       = 0x8\n\tAF_HYLINK                     = 0xf\n\tAF_IMPLINK                    = 0x3\n\tAF_INET                       = 0x2\n\tAF_INET6                      = 0x18\n\tAF_INTF                       = 0x14\n\tAF_ISO                        = 0x7\n\tAF_LAT                        = 0xe\n\tAF_LINK                       = 0x12\n\tAF_LOCAL                      = 0x1\n\tAF_MAX                        = 0x1e\n\tAF_NDD                        = 0x17\n\tAF_NETWARE                    = 0x16\n\tAF_NS                         = 0x6\n\tAF_OSI                        = 0x7\n\tAF_PUP                        = 0x4\n\tAF_RIF                        = 0x15\n\tAF_ROUTE                      = 0x11\n\tAF_SNA                        = 0xb\n\tAF_UNIX                       = 0x1\n\tAF_UNSPEC                     = 0x0\n\tALTWERASE                     = 0x400000\n\tARPHRD_802_3                  = 0x6\n\tARPHRD_802_5                  = 0x6\n\tARPHRD_ETHER                  = 0x1\n\tARPHRD_FDDI                   = 0x1\n\tB0                            = 0x0\n\tB110                          = 0x3\n\tB1200                         = 0x9\n\tB134                          = 0x4\n\tB150                          = 0x5\n\tB1800                         = 0xa\n\tB19200                        = 0xe\n\tB200                          = 0x6\n\tB2400                         = 0xb\n\tB300                          = 0x7\n\tB38400                        = 0xf\n\tB4800                         = 0xc\n\tB50                           = 0x1\n\tB600                          = 0x8\n\tB75                           = 0x2\n\tB9600                         = 0xd\n\tBRKINT                        = 0x2\n\tBS0                           = 0x0\n\tBS1                           = 0x1000\n\tBSDLY                         = 0x1000\n\tCAP_AACCT                     = 0x6\n\tCAP_ARM_APPLICATION           = 0x5\n\tCAP_BYPASS_RAC_VMM            = 0x3\n\tCAP_CLEAR                     = 0x0\n\tCAP_CREDENTIALS               = 0x7\n\tCAP_EFFECTIVE                 = 0x1\n\tCAP_EWLM_AGENT                = 0x4\n\tCAP_INHERITABLE               = 0x2\n\tCAP_MAXIMUM                   = 0x7\n\tCAP_NUMA_ATTACH               = 0x2\n\tCAP_PERMITTED                 = 0x3\n\tCAP_PROPAGATE                 = 0x1\n\tCAP_PROPOGATE                 = 0x1\n\tCAP_SET                       = 0x1\n\tCBAUD                         = 0xf\n\tCFLUSH                        = 0xf\n\tCIBAUD                        = 0xf0000\n\tCLOCAL                        = 0x800\n\tCLOCK_MONOTONIC               = 0xa\n\tCLOCK_PROCESS_CPUTIME_ID      = 0xb\n\tCLOCK_REALTIME                = 0x9\n\tCLOCK_THREAD_CPUTIME_ID       = 0xc\n\tCR0                           = 0x0\n\tCR1                           = 0x100\n\tCR2                           = 0x200\n\tCR3                           = 0x300\n\tCRDLY                         = 0x300\n\tCREAD                         = 0x80\n\tCS5                           = 0x0\n\tCS6                           = 0x10\n\tCS7                           = 0x20\n\tCS8                           = 0x30\n\tCSIOCGIFCONF                  = -0x3fef96dc\n\tCSIZE                         = 0x30\n\tCSMAP_DIR                     = \"/usr/lib/nls/csmap/\"\n\tCSTART                        = '\\021'\n\tCSTOP                         = '\\023'\n\tCSTOPB                        = 0x40\n\tCSUSP                         = 0x1a\n\tECHO                          = 0x8\n\tECHOCTL                       = 0x20000\n\tECHOE                         = 0x10\n\tECHOK                         = 0x20\n\tECHOKE                        = 0x80000\n\tECHONL                        = 0x40\n\tECHOPRT                       = 0x40000\n\tECH_ICMPID                    = 0x2\n\tETHERNET_CSMACD               = 0x6\n\tEVENP                         = 0x80\n\tEXCONTINUE                    = 0x0\n\tEXDLOK                        = 0x3\n\tEXIO                          = 0x2\n\tEXPGIO                        = 0x0\n\tEXRESUME                      = 0x2\n\tEXRETURN                      = 0x1\n\tEXSIG                         = 0x4\n\tEXTA                          = 0xe\n\tEXTB                          = 0xf\n\tEXTRAP                        = 0x1\n\tEYEC_RTENTRYA                 = 0x257274656e747241\n\tEYEC_RTENTRYF                 = 0x257274656e747246\n\tE_ACC                         = 0x0\n\tFD_CLOEXEC                    = 0x1\n\tFD_SETSIZE                    = 0xfffe\n\tFF0                           = 0x0\n\tFF1                           = 0x2000\n\tFFDLY                         = 0x2000\n\tFLUSHBAND                     = 0x40\n\tFLUSHLOW                      = 0x8\n\tFLUSHO                        = 0x100000\n\tFLUSHR                        = 0x1\n\tFLUSHRW                       = 0x3\n\tFLUSHW                        = 0x2\n\tF_CLOSEM                      = 0xa\n\tF_DUP2FD                      = 0xe\n\tF_DUPFD                       = 0x0\n\tF_GETFD                       = 0x1\n\tF_GETFL                       = 0x3\n\tF_GETLK                       = 0xb\n\tF_GETLK64                     = 0xb\n\tF_GETOWN                      = 0x8\n\tF_LOCK                        = 0x1\n\tF_OK                          = 0x0\n\tF_RDLCK                       = 0x1\n\tF_SETFD                       = 0x2\n\tF_SETFL                       = 0x4\n\tF_SETLK                       = 0xc\n\tF_SETLK64                     = 0xc\n\tF_SETLKW                      = 0xd\n\tF_SETLKW64                    = 0xd\n\tF_SETOWN                      = 0x9\n\tF_TEST                        = 0x3\n\tF_TLOCK                       = 0x2\n\tF_TSTLK                       = 0xf\n\tF_ULOCK                       = 0x0\n\tF_UNLCK                       = 0x3\n\tF_WRLCK                       = 0x2\n\tHUPCL                         = 0x400\n\tIBSHIFT                       = 0x10\n\tICANON                        = 0x2\n\tICMP6_FILTER                  = 0x26\n\tICMP6_SEC_SEND_DEL            = 0x46\n\tICMP6_SEC_SEND_GET            = 0x47\n\tICMP6_SEC_SEND_SET            = 0x44\n\tICMP6_SEC_SEND_SET_CGA_ADDR   = 0x45\n\tICRNL                         = 0x100\n\tIEXTEN                        = 0x200000\n\tIFA_FIRSTALIAS                = 0x2000\n\tIFA_ROUTE                     = 0x1\n\tIFF_64BIT                     = 0x4000000\n\tIFF_ALLCAST                   = 0x20000\n\tIFF_ALLMULTI                  = 0x200\n\tIFF_BPF                       = 0x8000000\n\tIFF_BRIDGE                    = 0x40000\n\tIFF_BROADCAST                 = 0x2\n\tIFF_CANTCHANGE                = 0x80c52\n\tIFF_CHECKSUM_OFFLOAD          = 0x10000000\n\tIFF_D1                        = 0x8000\n\tIFF_D2                        = 0x4000\n\tIFF_D3                        = 0x2000\n\tIFF_D4                        = 0x1000\n\tIFF_DEBUG                     = 0x4\n\tIFF_DEVHEALTH                 = 0x4000\n\tIFF_DO_HW_LOOPBACK            = 0x10000\n\tIFF_GROUP_ROUTING             = 0x2000000\n\tIFF_IFBUFMGT                  = 0x800000\n\tIFF_LINK0                     = 0x100000\n\tIFF_LINK1                     = 0x200000\n\tIFF_LINK2                     = 0x400000\n\tIFF_LOOPBACK                  = 0x8\n\tIFF_MULTICAST                 = 0x80000\n\tIFF_NOARP                     = 0x80\n\tIFF_NOECHO                    = 0x800\n\tIFF_NOTRAILERS                = 0x20\n\tIFF_OACTIVE                   = 0x400\n\tIFF_POINTOPOINT               = 0x10\n\tIFF_PROMISC                   = 0x100\n\tIFF_PSEG                      = 0x40000000\n\tIFF_RUNNING                   = 0x40\n\tIFF_SIMPLEX                   = 0x800\n\tIFF_SNAP                      = 0x8000\n\tIFF_TCP_DISABLE_CKSUM         = 0x20000000\n\tIFF_TCP_NOCKSUM               = 0x1000000\n\tIFF_UP                        = 0x1\n\tIFF_VIPA                      = 0x80000000\n\tIFNAMSIZ                      = 0x10\n\tIFO_FLUSH                     = 0x1\n\tIFT_1822                      = 0x2\n\tIFT_AAL5                      = 0x31\n\tIFT_ARCNET                    = 0x23\n\tIFT_ARCNETPLUS                = 0x24\n\tIFT_ATM                       = 0x25\n\tIFT_CEPT                      = 0x13\n\tIFT_CLUSTER                   = 0x3e\n\tIFT_DS3                       = 0x1e\n\tIFT_EON                       = 0x19\n\tIFT_ETHER                     = 0x6\n\tIFT_FCS                       = 0x3a\n\tIFT_FDDI                      = 0xf\n\tIFT_FRELAY                    = 0x20\n\tIFT_FRELAYDCE                 = 0x2c\n\tIFT_GIFTUNNEL                 = 0x3c\n\tIFT_HDH1822                   = 0x3\n\tIFT_HF                        = 0x3d\n\tIFT_HIPPI                     = 0x2f\n\tIFT_HSSI                      = 0x2e\n\tIFT_HY                        = 0xe\n\tIFT_IB                        = 0xc7\n\tIFT_ISDNBASIC                 = 0x14\n\tIFT_ISDNPRIMARY               = 0x15\n\tIFT_ISO88022LLC               = 0x29\n\tIFT_ISO88023                  = 0x7\n\tIFT_ISO88024                  = 0x8\n\tIFT_ISO88025                  = 0x9\n\tIFT_ISO88026                  = 0xa\n\tIFT_LAPB                      = 0x10\n\tIFT_LOCALTALK                 = 0x2a\n\tIFT_LOOP                      = 0x18\n\tIFT_MIOX25                    = 0x26\n\tIFT_MODEM                     = 0x30\n\tIFT_NSIP                      = 0x1b\n\tIFT_OTHER                     = 0x1\n\tIFT_P10                       = 0xc\n\tIFT_P80                       = 0xd\n\tIFT_PARA                      = 0x22\n\tIFT_PPP                       = 0x17\n\tIFT_PROPMUX                   = 0x36\n\tIFT_PROPVIRTUAL               = 0x35\n\tIFT_PTPSERIAL                 = 0x16\n\tIFT_RS232                     = 0x21\n\tIFT_SDLC                      = 0x11\n\tIFT_SIP                       = 0x1f\n\tIFT_SLIP                      = 0x1c\n\tIFT_SMDSDXI                   = 0x2b\n\tIFT_SMDSICIP                  = 0x34\n\tIFT_SN                        = 0x38\n\tIFT_SONET                     = 0x27\n\tIFT_SONETPATH                 = 0x32\n\tIFT_SONETVT                   = 0x33\n\tIFT_SP                        = 0x39\n\tIFT_STARLAN                   = 0xb\n\tIFT_T1                        = 0x12\n\tIFT_TUNNEL                    = 0x3b\n\tIFT_ULTRA                     = 0x1d\n\tIFT_V35                       = 0x2d\n\tIFT_VIPA                      = 0x37\n\tIFT_X25                       = 0x5\n\tIFT_X25DDN                    = 0x4\n\tIFT_X25PLE                    = 0x28\n\tIFT_XETHER                    = 0x1a\n\tIGNBRK                        = 0x1\n\tIGNCR                         = 0x80\n\tIGNPAR                        = 0x4\n\tIMAXBEL                       = 0x10000\n\tINLCR                         = 0x40\n\tINPCK                         = 0x10\n\tIN_CLASSA_HOST                = 0xffffff\n\tIN_CLASSA_MAX                 = 0x80\n\tIN_CLASSA_NET                 = 0xff000000\n\tIN_CLASSA_NSHIFT              = 0x18\n\tIN_CLASSB_HOST                = 0xffff\n\tIN_CLASSB_MAX                 = 0x10000\n\tIN_CLASSB_NET                 = 0xffff0000\n\tIN_CLASSB_NSHIFT              = 0x10\n\tIN_CLASSC_HOST                = 0xff\n\tIN_CLASSC_NET                 = 0xffffff00\n\tIN_CLASSC_NSHIFT              = 0x8\n\tIN_CLASSD_HOST                = 0xfffffff\n\tIN_CLASSD_NET                 = 0xf0000000\n\tIN_CLASSD_NSHIFT              = 0x1c\n\tIN_LOOPBACKNET                = 0x7f\n\tIN_USE                        = 0x1\n\tIPPROTO_AH                    = 0x33\n\tIPPROTO_BIP                   = 0x53\n\tIPPROTO_DSTOPTS               = 0x3c\n\tIPPROTO_EGP                   = 0x8\n\tIPPROTO_EON                   = 0x50\n\tIPPROTO_ESP                   = 0x32\n\tIPPROTO_FRAGMENT              = 0x2c\n\tIPPROTO_GGP                   = 0x3\n\tIPPROTO_GIF                   = 0x8c\n\tIPPROTO_GRE                   = 0x2f\n\tIPPROTO_HOPOPTS               = 0x0\n\tIPPROTO_ICMP                  = 0x1\n\tIPPROTO_ICMPV6                = 0x3a\n\tIPPROTO_IDP                   = 0x16\n\tIPPROTO_IGMP                  = 0x2\n\tIPPROTO_IP                    = 0x0\n\tIPPROTO_IPIP                  = 0x4\n\tIPPROTO_IPV6                  = 0x29\n\tIPPROTO_LOCAL                 = 0x3f\n\tIPPROTO_MAX                   = 0x100\n\tIPPROTO_MH                    = 0x87\n\tIPPROTO_NONE                  = 0x3b\n\tIPPROTO_PUP                   = 0xc\n\tIPPROTO_QOS                   = 0x2d\n\tIPPROTO_RAW                   = 0xff\n\tIPPROTO_ROUTING               = 0x2b\n\tIPPROTO_RSVP                  = 0x2e\n\tIPPROTO_SCTP                  = 0x84\n\tIPPROTO_TCP                   = 0x6\n\tIPPROTO_TP                    = 0x1d\n\tIPPROTO_UDP                   = 0x11\n\tIPV6_ADDRFORM                 = 0x16\n\tIPV6_ADDR_PREFERENCES         = 0x4a\n\tIPV6_ADD_MEMBERSHIP           = 0xc\n\tIPV6_AIXRAWSOCKET             = 0x39\n\tIPV6_CHECKSUM                 = 0x27\n\tIPV6_DONTFRAG                 = 0x2d\n\tIPV6_DROP_MEMBERSHIP          = 0xd\n\tIPV6_DSTOPTS                  = 0x36\n\tIPV6_FLOWINFO_FLOWLABEL       = 0xffffff\n\tIPV6_FLOWINFO_PRIFLOW         = 0xfffffff\n\tIPV6_FLOWINFO_PRIORITY        = 0xf000000\n\tIPV6_FLOWINFO_SRFLAG          = 0x10000000\n\tIPV6_FLOWINFO_VERSION         = 0xf0000000\n\tIPV6_HOPLIMIT                 = 0x28\n\tIPV6_HOPOPTS                  = 0x34\n\tIPV6_JOIN_GROUP               = 0xc\n\tIPV6_LEAVE_GROUP              = 0xd\n\tIPV6_MIPDSTOPTS               = 0x36\n\tIPV6_MULTICAST_HOPS           = 0xa\n\tIPV6_MULTICAST_IF             = 0x9\n\tIPV6_MULTICAST_LOOP           = 0xb\n\tIPV6_NEXTHOP                  = 0x30\n\tIPV6_NOPROBE                  = 0x1c\n\tIPV6_PATHMTU                  = 0x2e\n\tIPV6_PKTINFO                  = 0x21\n\tIPV6_PKTOPTIONS               = 0x24\n\tIPV6_PRIORITY_10              = 0xa000000\n\tIPV6_PRIORITY_11              = 0xb000000\n\tIPV6_PRIORITY_12              = 0xc000000\n\tIPV6_PRIORITY_13              = 0xd000000\n\tIPV6_PRIORITY_14              = 0xe000000\n\tIPV6_PRIORITY_15              = 0xf000000\n\tIPV6_PRIORITY_8               = 0x8000000\n\tIPV6_PRIORITY_9               = 0x9000000\n\tIPV6_PRIORITY_BULK            = 0x4000000\n\tIPV6_PRIORITY_CONTROL         = 0x7000000\n\tIPV6_PRIORITY_FILLER          = 0x1000000\n\tIPV6_PRIORITY_INTERACTIVE     = 0x6000000\n\tIPV6_PRIORITY_RESERVED1       = 0x3000000\n\tIPV6_PRIORITY_RESERVED2       = 0x5000000\n\tIPV6_PRIORITY_UNATTENDED      = 0x2000000\n\tIPV6_PRIORITY_UNCHARACTERIZED = 0x0\n\tIPV6_RECVDSTOPTS              = 0x38\n\tIPV6_RECVHOPLIMIT             = 0x29\n\tIPV6_RECVHOPOPTS              = 0x35\n\tIPV6_RECVHOPS                 = 0x22\n\tIPV6_RECVIF                   = 0x1e\n\tIPV6_RECVPATHMTU              = 0x2f\n\tIPV6_RECVPKTINFO              = 0x23\n\tIPV6_RECVRTHDR                = 0x33\n\tIPV6_RECVSRCRT                = 0x1d\n\tIPV6_RECVTCLASS               = 0x2a\n\tIPV6_RTHDR                    = 0x32\n\tIPV6_RTHDRDSTOPTS             = 0x37\n\tIPV6_RTHDR_TYPE_0             = 0x0\n\tIPV6_RTHDR_TYPE_2             = 0x2\n\tIPV6_SENDIF                   = 0x1f\n\tIPV6_SRFLAG_LOOSE             = 0x0\n\tIPV6_SRFLAG_STRICT            = 0x10000000\n\tIPV6_TCLASS                   = 0x2b\n\tIPV6_TOKEN_LENGTH             = 0x40\n\tIPV6_UNICAST_HOPS             = 0x4\n\tIPV6_USE_MIN_MTU              = 0x2c\n\tIPV6_V6ONLY                   = 0x25\n\tIPV6_VERSION                  = 0x60000000\n\tIP_ADDRFORM                   = 0x16\n\tIP_ADD_MEMBERSHIP             = 0xc\n\tIP_ADD_SOURCE_MEMBERSHIP      = 0x3c\n\tIP_BLOCK_SOURCE               = 0x3a\n\tIP_BROADCAST_IF               = 0x10\n\tIP_CACHE_LINE_SIZE            = 0x80\n\tIP_DEFAULT_MULTICAST_LOOP     = 0x1\n\tIP_DEFAULT_MULTICAST_TTL      = 0x1\n\tIP_DF                         = 0x4000\n\tIP_DHCPMODE                   = 0x11\n\tIP_DONTFRAG                   = 0x19\n\tIP_DROP_MEMBERSHIP            = 0xd\n\tIP_DROP_SOURCE_MEMBERSHIP     = 0x3d\n\tIP_FINDPMTU                   = 0x1a\n\tIP_HDRINCL                    = 0x2\n\tIP_INC_MEMBERSHIPS            = 0x14\n\tIP_INIT_MEMBERSHIP            = 0x14\n\tIP_MAXPACKET                  = 0xffff\n\tIP_MF                         = 0x2000\n\tIP_MSS                        = 0x240\n\tIP_MULTICAST_HOPS             = 0xa\n\tIP_MULTICAST_IF               = 0x9\n\tIP_MULTICAST_LOOP             = 0xb\n\tIP_MULTICAST_TTL              = 0xa\n\tIP_OPT                        = 0x1b\n\tIP_OPTIONS                    = 0x1\n\tIP_PMTUAGE                    = 0x1b\n\tIP_RECVDSTADDR                = 0x7\n\tIP_RECVIF                     = 0x14\n\tIP_RECVIFINFO                 = 0xf\n\tIP_RECVINTERFACE              = 0x20\n\tIP_RECVMACHDR                 = 0xe\n\tIP_RECVOPTS                   = 0x5\n\tIP_RECVRETOPTS                = 0x6\n\tIP_RECVTTL                    = 0x22\n\tIP_RETOPTS                    = 0x8\n\tIP_SOURCE_FILTER              = 0x48\n\tIP_TOS                        = 0x3\n\tIP_TTL                        = 0x4\n\tIP_UNBLOCK_SOURCE             = 0x3b\n\tIP_UNICAST_HOPS               = 0x4\n\tISIG                          = 0x1\n\tISTRIP                        = 0x20\n\tIUCLC                         = 0x800\n\tIXANY                         = 0x1000\n\tIXOFF                         = 0x400\n\tIXON                          = 0x200\n\tI_FLUSH                       = 0x20005305\n\tLNOFLSH                       = 0x8000\n\tLOCK_EX                       = 0x2\n\tLOCK_NB                       = 0x4\n\tLOCK_SH                       = 0x1\n\tLOCK_UN                       = 0x8\n\tMADV_DONTNEED                 = 0x4\n\tMADV_NORMAL                   = 0x0\n\tMADV_RANDOM                   = 0x1\n\tMADV_SEQUENTIAL               = 0x2\n\tMADV_SPACEAVAIL               = 0x5\n\tMADV_WILLNEED                 = 0x3\n\tMAP_ANON                      = 0x10\n\tMAP_ANONYMOUS                 = 0x10\n\tMAP_FILE                      = 0x0\n\tMAP_FIXED                     = 0x100\n\tMAP_PRIVATE                   = 0x2\n\tMAP_SHARED                    = 0x1\n\tMAP_TYPE                      = 0xf0\n\tMAP_VARIABLE                  = 0x0\n\tMCAST_BLOCK_SOURCE            = 0x40\n\tMCAST_EXCLUDE                 = 0x2\n\tMCAST_INCLUDE                 = 0x1\n\tMCAST_JOIN_GROUP              = 0x3e\n\tMCAST_JOIN_SOURCE_GROUP       = 0x42\n\tMCAST_LEAVE_GROUP             = 0x3f\n\tMCAST_LEAVE_SOURCE_GROUP      = 0x43\n\tMCAST_SOURCE_FILTER           = 0x49\n\tMCAST_UNBLOCK_SOURCE          = 0x41\n\tMCL_CURRENT                   = 0x100\n\tMCL_FUTURE                    = 0x200\n\tMSG_ANY                       = 0x4\n\tMSG_ARGEXT                    = 0x400\n\tMSG_BAND                      = 0x2\n\tMSG_COMPAT                    = 0x8000\n\tMSG_CTRUNC                    = 0x20\n\tMSG_DONTROUTE                 = 0x4\n\tMSG_EOR                       = 0x8\n\tMSG_HIPRI                     = 0x1\n\tMSG_MAXIOVLEN                 = 0x10\n\tMSG_MPEG2                     = 0x80\n\tMSG_NONBLOCK                  = 0x4000\n\tMSG_NOSIGNAL                  = 0x100\n\tMSG_OOB                       = 0x1\n\tMSG_PEEK                      = 0x2\n\tMSG_TRUNC                     = 0x10\n\tMSG_WAITALL                   = 0x40\n\tMSG_WAITFORONE                = 0x200\n\tMS_ASYNC                      = 0x10\n\tMS_EINTR                      = 0x80\n\tMS_INVALIDATE                 = 0x40\n\tMS_PER_SEC                    = 0x3e8\n\tMS_SYNC                       = 0x20\n\tNFDBITS                       = 0x40\n\tNL0                           = 0x0\n\tNL1                           = 0x4000\n\tNL2                           = 0x8000\n\tNL3                           = 0xc000\n\tNLDLY                         = 0x4000\n\tNOFLSH                        = 0x80\n\tNOFLUSH                       = 0x80000000\n\tOCRNL                         = 0x8\n\tOFDEL                         = 0x80\n\tOFILL                         = 0x40\n\tOLCUC                         = 0x2\n\tONLCR                         = 0x4\n\tONLRET                        = 0x20\n\tONOCR                         = 0x10\n\tONOEOT                        = 0x80000\n\tOPOST                         = 0x1\n\tOXTABS                        = 0x40000\n\tO_ACCMODE                     = 0x23\n\tO_APPEND                      = 0x8\n\tO_CIO                         = 0x80\n\tO_CIOR                        = 0x800000000\n\tO_CLOEXEC                     = 0x800000\n\tO_CREAT                       = 0x100\n\tO_DEFER                       = 0x2000\n\tO_DELAY                       = 0x4000\n\tO_DIRECT                      = 0x8000000\n\tO_DIRECTORY                   = 0x80000\n\tO_DSYNC                       = 0x400000\n\tO_EFSOFF                      = 0x400000000\n\tO_EFSON                       = 0x200000000\n\tO_EXCL                        = 0x400\n\tO_EXEC                        = 0x20\n\tO_LARGEFILE                   = 0x4000000\n\tO_NDELAY                      = 0x8000\n\tO_NOCACHE                     = 0x100000\n\tO_NOCTTY                      = 0x800\n\tO_NOFOLLOW                    = 0x1000000\n\tO_NONBLOCK                    = 0x4\n\tO_NONE                        = 0x3\n\tO_NSHARE                      = 0x10000\n\tO_RAW                         = 0x100000000\n\tO_RDONLY                      = 0x0\n\tO_RDWR                        = 0x2\n\tO_RSHARE                      = 0x1000\n\tO_RSYNC                       = 0x200000\n\tO_SEARCH                      = 0x20\n\tO_SNAPSHOT                    = 0x40\n\tO_SYNC                        = 0x10\n\tO_TRUNC                       = 0x200\n\tO_TTY_INIT                    = 0x0\n\tO_WRONLY                      = 0x1\n\tPARENB                        = 0x100\n\tPAREXT                        = 0x100000\n\tPARMRK                        = 0x8\n\tPARODD                        = 0x200\n\tPENDIN                        = 0x20000000\n\tPRIO_PGRP                     = 0x1\n\tPRIO_PROCESS                  = 0x0\n\tPRIO_USER                     = 0x2\n\tPROT_EXEC                     = 0x4\n\tPROT_NONE                     = 0x0\n\tPROT_READ                     = 0x1\n\tPROT_WRITE                    = 0x2\n\tPR_64BIT                      = 0x20\n\tPR_ADDR                       = 0x2\n\tPR_ARGEXT                     = 0x400\n\tPR_ATOMIC                     = 0x1\n\tPR_CONNREQUIRED               = 0x4\n\tPR_FASTHZ                     = 0x5\n\tPR_INP                        = 0x40\n\tPR_INTRLEVEL                  = 0x8000\n\tPR_MLS                        = 0x100\n\tPR_MLS_1_LABEL                = 0x200\n\tPR_NOEOR                      = 0x4000\n\tPR_RIGHTS                     = 0x10\n\tPR_SLOWHZ                     = 0x2\n\tPR_WANTRCVD                   = 0x8\n\tRLIMIT_AS                     = 0x6\n\tRLIMIT_CORE                   = 0x4\n\tRLIMIT_CPU                    = 0x0\n\tRLIMIT_DATA                   = 0x2\n\tRLIMIT_FSIZE                  = 0x1\n\tRLIMIT_NOFILE                 = 0x7\n\tRLIMIT_NPROC                  = 0x9\n\tRLIMIT_RSS                    = 0x5\n\tRLIMIT_STACK                  = 0x3\n\tRLIM_INFINITY                 = 0x7fffffffffffffff\n\tRTAX_AUTHOR                   = 0x6\n\tRTAX_BRD                      = 0x7\n\tRTAX_DST                      = 0x0\n\tRTAX_GATEWAY                  = 0x1\n\tRTAX_GENMASK                  = 0x3\n\tRTAX_IFA                      = 0x5\n\tRTAX_IFP                      = 0x4\n\tRTAX_MAX                      = 0x8\n\tRTAX_NETMASK                  = 0x2\n\tRTA_AUTHOR                    = 0x40\n\tRTA_BRD                       = 0x80\n\tRTA_DOWNSTREAM                = 0x100\n\tRTA_DST                       = 0x1\n\tRTA_GATEWAY                   = 0x2\n\tRTA_GENMASK                   = 0x8\n\tRTA_IFA                       = 0x20\n\tRTA_IFP                       = 0x10\n\tRTA_NETMASK                   = 0x4\n\tRTC_IA64                      = 0x3\n\tRTC_POWER                     = 0x1\n\tRTC_POWER_PC                  = 0x2\n\tRTF_ACTIVE_DGD                = 0x1000000\n\tRTF_BCE                       = 0x80000\n\tRTF_BLACKHOLE                 = 0x1000\n\tRTF_BROADCAST                 = 0x400000\n\tRTF_BUL                       = 0x2000\n\tRTF_CLONE                     = 0x10000\n\tRTF_CLONED                    = 0x20000\n\tRTF_CLONING                   = 0x100\n\tRTF_DONE                      = 0x40\n\tRTF_DYNAMIC                   = 0x10\n\tRTF_FREE_IN_PROG              = 0x4000000\n\tRTF_GATEWAY                   = 0x2\n\tRTF_HOST                      = 0x4\n\tRTF_LLINFO                    = 0x400\n\tRTF_LOCAL                     = 0x200000\n\tRTF_MASK                      = 0x80\n\tRTF_MODIFIED                  = 0x20\n\tRTF_MULTICAST                 = 0x800000\n\tRTF_PERMANENT6                = 0x8000000\n\tRTF_PINNED                    = 0x100000\n\tRTF_PROTO1                    = 0x8000\n\tRTF_PROTO2                    = 0x4000\n\tRTF_PROTO3                    = 0x40000\n\tRTF_REJECT                    = 0x8\n\tRTF_SMALLMTU                  = 0x40000\n\tRTF_STATIC                    = 0x800\n\tRTF_STOPSRCH                  = 0x2000000\n\tRTF_UNREACHABLE               = 0x10000000\n\tRTF_UP                        = 0x1\n\tRTF_XRESOLVE                  = 0x200\n\tRTM_ADD                       = 0x1\n\tRTM_CHANGE                    = 0x3\n\tRTM_DELADDR                   = 0xd\n\tRTM_DELETE                    = 0x2\n\tRTM_EXPIRE                    = 0xf\n\tRTM_GET                       = 0x4\n\tRTM_GETNEXT                   = 0x11\n\tRTM_IFINFO                    = 0xe\n\tRTM_LOCK                      = 0x8\n\tRTM_LOSING                    = 0x5\n\tRTM_MISS                      = 0x7\n\tRTM_NEWADDR                   = 0xc\n\tRTM_OLDADD                    = 0x9\n\tRTM_OLDDEL                    = 0xa\n\tRTM_REDIRECT                  = 0x6\n\tRTM_RESOLVE                   = 0xb\n\tRTM_RTLOST                    = 0x10\n\tRTM_RTTUNIT                   = 0xf4240\n\tRTM_SAMEADDR                  = 0x12\n\tRTM_SET                       = 0x13\n\tRTM_VERSION                   = 0x2\n\tRTM_VERSION_GR                = 0x4\n\tRTM_VERSION_GR_COMPAT         = 0x3\n\tRTM_VERSION_POLICY            = 0x5\n\tRTM_VERSION_POLICY_EXT        = 0x6\n\tRTM_VERSION_POLICY_PRFN       = 0x7\n\tRTV_EXPIRE                    = 0x4\n\tRTV_HOPCOUNT                  = 0x2\n\tRTV_MTU                       = 0x1\n\tRTV_RPIPE                     = 0x8\n\tRTV_RTT                       = 0x40\n\tRTV_RTTVAR                    = 0x80\n\tRTV_SPIPE                     = 0x10\n\tRTV_SSTHRESH                  = 0x20\n\tRUSAGE_CHILDREN               = -0x1\n\tRUSAGE_SELF                   = 0x0\n\tRUSAGE_THREAD                 = 0x1\n\tSCM_RIGHTS                    = 0x1\n\tSHUT_RD                       = 0x0\n\tSHUT_RDWR                     = 0x2\n\tSHUT_WR                       = 0x1\n\tSIGMAX64                      = 0xff\n\tSIGQUEUE_MAX                  = 0x20\n\tSIOCADDIFVIPA                 = 0x20006942\n\tSIOCADDMTU                    = -0x7ffb9690\n\tSIOCADDMULTI                  = -0x7fdf96cf\n\tSIOCADDNETID                  = -0x7fd796a9\n\tSIOCADDRT                     = -0x7fc78df6\n\tSIOCAIFADDR                   = -0x7fbf96e6\n\tSIOCATMARK                    = 0x40047307\n\tSIOCDARP                      = -0x7fb396e0\n\tSIOCDELIFVIPA                 = 0x20006943\n\tSIOCDELMTU                    = -0x7ffb968f\n\tSIOCDELMULTI                  = -0x7fdf96ce\n\tSIOCDELPMTU                   = -0x7fd78ff6\n\tSIOCDELRT                     = -0x7fc78df5\n\tSIOCDIFADDR                   = -0x7fd796e7\n\tSIOCDNETOPT                   = -0x3ffe9680\n\tSIOCDX25XLATE                 = -0x7fd7969b\n\tSIOCFIFADDR                   = -0x7fdf966d\n\tSIOCGARP                      = -0x3fb396da\n\tSIOCGETMTUS                   = 0x2000696f\n\tSIOCGETSGCNT                  = -0x3feb8acc\n\tSIOCGETVIFCNT                 = -0x3feb8acd\n\tSIOCGHIWAT                    = 0x40047301\n\tSIOCGIFADDR                   = -0x3fd796df\n\tSIOCGIFADDRS                  = 0x2000698c\n\tSIOCGIFBAUDRATE               = -0x3fdf9669\n\tSIOCGIFBRDADDR                = -0x3fd796dd\n\tSIOCGIFCONF                   = -0x3fef96bb\n\tSIOCGIFCONFGLOB               = -0x3fef9670\n\tSIOCGIFDSTADDR                = -0x3fd796de\n\tSIOCGIFFLAGS                  = -0x3fd796ef\n\tSIOCGIFGIDLIST                = 0x20006968\n\tSIOCGIFHWADDR                 = -0x3fab966b\n\tSIOCGIFMETRIC                 = -0x3fd796e9\n\tSIOCGIFMTU                    = -0x3fd796aa\n\tSIOCGIFNETMASK                = -0x3fd796db\n\tSIOCGIFOPTIONS                = -0x3fd796d6\n\tSIOCGISNO                     = -0x3fd79695\n\tSIOCGLOADF                    = -0x3ffb967e\n\tSIOCGLOWAT                    = 0x40047303\n\tSIOCGNETOPT                   = -0x3ffe96a5\n\tSIOCGNETOPT1                  = -0x3fdf967f\n\tSIOCGNMTUS                    = 0x2000696e\n\tSIOCGPGRP                     = 0x40047309\n\tSIOCGSIZIFCONF                = 0x4004696a\n\tSIOCGSRCFILTER                = -0x3fe796cb\n\tSIOCGTUNEPHASE                = -0x3ffb9676\n\tSIOCGX25XLATE                 = -0x3fd7969c\n\tSIOCIFATTACH                  = -0x7fdf9699\n\tSIOCIFDETACH                  = -0x7fdf969a\n\tSIOCIFGETPKEY                 = -0x7fdf969b\n\tSIOCIF_ATM_DARP               = -0x7fdf9683\n\tSIOCIF_ATM_DUMPARP            = -0x7fdf9685\n\tSIOCIF_ATM_GARP               = -0x7fdf9682\n\tSIOCIF_ATM_IDLE               = -0x7fdf9686\n\tSIOCIF_ATM_SARP               = -0x7fdf9681\n\tSIOCIF_ATM_SNMPARP            = -0x7fdf9687\n\tSIOCIF_ATM_SVC                = -0x7fdf9684\n\tSIOCIF_ATM_UBR                = -0x7fdf9688\n\tSIOCIF_DEVHEALTH              = -0x7ffb966c\n\tSIOCIF_IB_ARP_INCOMP          = -0x7fdf9677\n\tSIOCIF_IB_ARP_TIMER           = -0x7fdf9678\n\tSIOCIF_IB_CLEAR_PINFO         = -0x3fdf966f\n\tSIOCIF_IB_DEL_ARP             = -0x7fdf967f\n\tSIOCIF_IB_DEL_PINFO           = -0x3fdf9670\n\tSIOCIF_IB_DUMP_ARP            = -0x7fdf9680\n\tSIOCIF_IB_GET_ARP             = -0x7fdf967e\n\tSIOCIF_IB_GET_INFO            = -0x3f879675\n\tSIOCIF_IB_GET_STATS           = -0x3f879672\n\tSIOCIF_IB_NOTIFY_ADDR_REM     = -0x3f87966a\n\tSIOCIF_IB_RESET_STATS         = -0x3f879671\n\tSIOCIF_IB_RESIZE_CQ           = -0x7fdf9679\n\tSIOCIF_IB_SET_ARP             = -0x7fdf967d\n\tSIOCIF_IB_SET_PKEY            = -0x7fdf967c\n\tSIOCIF_IB_SET_PORT            = -0x7fdf967b\n\tSIOCIF_IB_SET_QKEY            = -0x7fdf9676\n\tSIOCIF_IB_SET_QSIZE           = -0x7fdf967a\n\tSIOCLISTIFVIPA                = 0x20006944\n\tSIOCSARP                      = -0x7fb396e2\n\tSIOCSHIWAT                    = 0xffffffff80047300\n\tSIOCSIFADDR                   = -0x7fd796f4\n\tSIOCSIFADDRORI                = -0x7fdb9673\n\tSIOCSIFBRDADDR                = -0x7fd796ed\n\tSIOCSIFDSTADDR                = -0x7fd796f2\n\tSIOCSIFFLAGS                  = -0x7fd796f0\n\tSIOCSIFGIDLIST                = 0x20006969\n\tSIOCSIFMETRIC                 = -0x7fd796e8\n\tSIOCSIFMTU                    = -0x7fd796a8\n\tSIOCSIFNETDUMP                = -0x7fd796e4\n\tSIOCSIFNETMASK                = -0x7fd796ea\n\tSIOCSIFOPTIONS                = -0x7fd796d7\n\tSIOCSIFSUBCHAN                = -0x7fd796e5\n\tSIOCSISNO                     = -0x7fd79694\n\tSIOCSLOADF                    = -0x3ffb967d\n\tSIOCSLOWAT                    = 0xffffffff80047302\n\tSIOCSNETOPT                   = -0x7ffe96a6\n\tSIOCSPGRP                     = 0xffffffff80047308\n\tSIOCSX25XLATE                 = -0x7fd7969d\n\tSOCK_CONN_DGRAM               = 0x6\n\tSOCK_DGRAM                    = 0x2\n\tSOCK_RAW                      = 0x3\n\tSOCK_RDM                      = 0x4\n\tSOCK_SEQPACKET                = 0x5\n\tSOCK_STREAM                   = 0x1\n\tSOL_SOCKET                    = 0xffff\n\tSOMAXCONN                     = 0x400\n\tSO_ACCEPTCONN                 = 0x2\n\tSO_AUDIT                      = 0x8000\n\tSO_BROADCAST                  = 0x20\n\tSO_CKSUMRECV                  = 0x800\n\tSO_DEBUG                      = 0x1\n\tSO_DONTROUTE                  = 0x10\n\tSO_ERROR                      = 0x1007\n\tSO_KEEPALIVE                  = 0x8\n\tSO_KERNACCEPT                 = 0x2000\n\tSO_LINGER                     = 0x80\n\tSO_NOMULTIPATH                = 0x4000\n\tSO_NOREUSEADDR                = 0x1000\n\tSO_OOBINLINE                  = 0x100\n\tSO_PEERID                     = 0x1009\n\tSO_RCVBUF                     = 0x1002\n\tSO_RCVLOWAT                   = 0x1004\n\tSO_RCVTIMEO                   = 0x1006\n\tSO_REUSEADDR                  = 0x4\n\tSO_REUSEPORT                  = 0x200\n\tSO_SNDBUF                     = 0x1001\n\tSO_SNDLOWAT                   = 0x1003\n\tSO_SNDTIMEO                   = 0x1005\n\tSO_TIMESTAMPNS                = 0x100a\n\tSO_TYPE                       = 0x1008\n\tSO_USELOOPBACK                = 0x40\n\tSO_USE_IFBUFS                 = 0x400\n\tS_BANDURG                     = 0x400\n\tS_EMODFMT                     = 0x3c000000\n\tS_ENFMT                       = 0x400\n\tS_ERROR                       = 0x100\n\tS_HANGUP                      = 0x200\n\tS_HIPRI                       = 0x2\n\tS_ICRYPTO                     = 0x80000\n\tS_IEXEC                       = 0x40\n\tS_IFBLK                       = 0x6000\n\tS_IFCHR                       = 0x2000\n\tS_IFDIR                       = 0x4000\n\tS_IFIFO                       = 0x1000\n\tS_IFJOURNAL                   = 0x10000\n\tS_IFLNK                       = 0xa000\n\tS_IFMPX                       = 0x2200\n\tS_IFMT                        = 0xf000\n\tS_IFPDIR                      = 0x4000000\n\tS_IFPSDIR                     = 0x8000000\n\tS_IFPSSDIR                    = 0xc000000\n\tS_IFREG                       = 0x8000\n\tS_IFSOCK                      = 0xc000\n\tS_IFSYSEA                     = 0x30000000\n\tS_INPUT                       = 0x1\n\tS_IREAD                       = 0x100\n\tS_IRGRP                       = 0x20\n\tS_IROTH                       = 0x4\n\tS_IRUSR                       = 0x100\n\tS_IRWXG                       = 0x38\n\tS_IRWXO                       = 0x7\n\tS_IRWXU                       = 0x1c0\n\tS_ISGID                       = 0x400\n\tS_ISUID                       = 0x800\n\tS_ISVTX                       = 0x200\n\tS_ITCB                        = 0x1000000\n\tS_ITP                         = 0x800000\n\tS_IWGRP                       = 0x10\n\tS_IWOTH                       = 0x2\n\tS_IWRITE                      = 0x80\n\tS_IWUSR                       = 0x80\n\tS_IXACL                       = 0x2000000\n\tS_IXATTR                      = 0x40000\n\tS_IXGRP                       = 0x8\n\tS_IXINTERFACE                 = 0x100000\n\tS_IXMOD                       = 0x40000000\n\tS_IXOTH                       = 0x1\n\tS_IXUSR                       = 0x40\n\tS_MSG                         = 0x8\n\tS_OUTPUT                      = 0x4\n\tS_RDBAND                      = 0x20\n\tS_RDNORM                      = 0x10\n\tS_RESERVED1                   = 0x20000\n\tS_RESERVED2                   = 0x200000\n\tS_RESERVED3                   = 0x400000\n\tS_RESERVED4                   = 0x80000000\n\tS_RESFMT1                     = 0x10000000\n\tS_RESFMT10                    = 0x34000000\n\tS_RESFMT11                    = 0x38000000\n\tS_RESFMT12                    = 0x3c000000\n\tS_RESFMT2                     = 0x14000000\n\tS_RESFMT3                     = 0x18000000\n\tS_RESFMT4                     = 0x1c000000\n\tS_RESFMT5                     = 0x20000000\n\tS_RESFMT6                     = 0x24000000\n\tS_RESFMT7                     = 0x28000000\n\tS_RESFMT8                     = 0x2c000000\n\tS_WRBAND                      = 0x80\n\tS_WRNORM                      = 0x40\n\tTAB0                          = 0x0\n\tTAB1                          = 0x400\n\tTAB2                          = 0x800\n\tTAB3                          = 0xc00\n\tTABDLY                        = 0xc00\n\tTCFLSH                        = 0x540c\n\tTCGETA                        = 0x5405\n\tTCGETS                        = 0x5401\n\tTCIFLUSH                      = 0x0\n\tTCIOFF                        = 0x2\n\tTCIOFLUSH                     = 0x2\n\tTCION                         = 0x3\n\tTCOFLUSH                      = 0x1\n\tTCOOFF                        = 0x0\n\tTCOON                         = 0x1\n\tTCP_24DAYS_WORTH_OF_SLOWTICKS = 0x3f4800\n\tTCP_ACLADD                    = 0x23\n\tTCP_ACLBIND                   = 0x26\n\tTCP_ACLCLEAR                  = 0x22\n\tTCP_ACLDEL                    = 0x24\n\tTCP_ACLDENY                   = 0x8\n\tTCP_ACLFLUSH                  = 0x21\n\tTCP_ACLGID                    = 0x1\n\tTCP_ACLLS                     = 0x25\n\tTCP_ACLSUBNET                 = 0x4\n\tTCP_ACLUID                    = 0x2\n\tTCP_CWND_DF                   = 0x16\n\tTCP_CWND_IF                   = 0x15\n\tTCP_DELAY_ACK_FIN             = 0x2\n\tTCP_DELAY_ACK_SYN             = 0x1\n\tTCP_FASTNAME                  = 0x101080a\n\tTCP_KEEPCNT                   = 0x13\n\tTCP_KEEPIDLE                  = 0x11\n\tTCP_KEEPINTVL                 = 0x12\n\tTCP_LSPRIV                    = 0x29\n\tTCP_LUID                      = 0x20\n\tTCP_MAXBURST                  = 0x8\n\tTCP_MAXDF                     = 0x64\n\tTCP_MAXIF                     = 0x64\n\tTCP_MAXSEG                    = 0x2\n\tTCP_MAXWIN                    = 0xffff\n\tTCP_MAXWINDOWSCALE            = 0xe\n\tTCP_MAX_SACK                  = 0x4\n\tTCP_MSS                       = 0x5b4\n\tTCP_NODELAY                   = 0x1\n\tTCP_NODELAYACK                = 0x14\n\tTCP_NOREDUCE_CWND_EXIT_FRXMT  = 0x19\n\tTCP_NOREDUCE_CWND_IN_FRXMT    = 0x18\n\tTCP_NOTENTER_SSTART           = 0x17\n\tTCP_OPT                       = 0x19\n\tTCP_RFC1323                   = 0x4\n\tTCP_SETPRIV                   = 0x27\n\tTCP_STDURG                    = 0x10\n\tTCP_TIMESTAMP_OPTLEN          = 0xc\n\tTCP_UNSETPRIV                 = 0x28\n\tTCSAFLUSH                     = 0x2\n\tTCSBRK                        = 0x5409\n\tTCSETA                        = 0x5406\n\tTCSETAF                       = 0x5408\n\tTCSETAW                       = 0x5407\n\tTCSETS                        = 0x5402\n\tTCSETSF                       = 0x5404\n\tTCSETSW                       = 0x5403\n\tTCXONC                        = 0x540b\n\tTIMER_ABSTIME                 = 0x3e7\n\tTIMER_MAX                     = 0x20\n\tTIOC                          = 0x5400\n\tTIOCCBRK                      = 0x2000747a\n\tTIOCCDTR                      = 0x20007478\n\tTIOCCONS                      = 0xffffffff80047462\n\tTIOCEXCL                      = 0x2000740d\n\tTIOCFLUSH                     = 0xffffffff80047410\n\tTIOCGETC                      = 0x40067412\n\tTIOCGETD                      = 0x40047400\n\tTIOCGETP                      = 0x40067408\n\tTIOCGLTC                      = 0x40067474\n\tTIOCGPGRP                     = 0x40047477\n\tTIOCGSID                      = 0x40047448\n\tTIOCGSIZE                     = 0x40087468\n\tTIOCGWINSZ                    = 0x40087468\n\tTIOCHPCL                      = 0x20007402\n\tTIOCLBIC                      = 0xffffffff8004747e\n\tTIOCLBIS                      = 0xffffffff8004747f\n\tTIOCLGET                      = 0x4004747c\n\tTIOCLSET                      = 0xffffffff8004747d\n\tTIOCMBIC                      = 0xffffffff8004746b\n\tTIOCMBIS                      = 0xffffffff8004746c\n\tTIOCMGET                      = 0x4004746a\n\tTIOCMIWAIT                    = 0xffffffff80047464\n\tTIOCMODG                      = 0x40047403\n\tTIOCMODS                      = 0xffffffff80047404\n\tTIOCMSET                      = 0xffffffff8004746d\n\tTIOCM_CAR                     = 0x40\n\tTIOCM_CD                      = 0x40\n\tTIOCM_CTS                     = 0x20\n\tTIOCM_DSR                     = 0x100\n\tTIOCM_DTR                     = 0x2\n\tTIOCM_LE                      = 0x1\n\tTIOCM_RI                      = 0x80\n\tTIOCM_RNG                     = 0x80\n\tTIOCM_RTS                     = 0x4\n\tTIOCM_SR                      = 0x10\n\tTIOCM_ST                      = 0x8\n\tTIOCNOTTY                     = 0x20007471\n\tTIOCNXCL                      = 0x2000740e\n\tTIOCOUTQ                      = 0x40047473\n\tTIOCPKT                       = 0xffffffff80047470\n\tTIOCPKT_DATA                  = 0x0\n\tTIOCPKT_DOSTOP                = 0x20\n\tTIOCPKT_FLUSHREAD             = 0x1\n\tTIOCPKT_FLUSHWRITE            = 0x2\n\tTIOCPKT_NOSTOP                = 0x10\n\tTIOCPKT_START                 = 0x8\n\tTIOCPKT_STOP                  = 0x4\n\tTIOCREMOTE                    = 0xffffffff80047469\n\tTIOCSBRK                      = 0x2000747b\n\tTIOCSDTR                      = 0x20007479\n\tTIOCSETC                      = 0xffffffff80067411\n\tTIOCSETD                      = 0xffffffff80047401\n\tTIOCSETN                      = 0xffffffff8006740a\n\tTIOCSETP                      = 0xffffffff80067409\n\tTIOCSLTC                      = 0xffffffff80067475\n\tTIOCSPGRP                     = 0xffffffff80047476\n\tTIOCSSIZE                     = 0xffffffff80087467\n\tTIOCSTART                     = 0x2000746e\n\tTIOCSTI                       = 0xffffffff80017472\n\tTIOCSTOP                      = 0x2000746f\n\tTIOCSWINSZ                    = 0xffffffff80087467\n\tTIOCUCNTL                     = 0xffffffff80047466\n\tTOSTOP                        = 0x10000\n\tUTIME_NOW                     = -0x2\n\tUTIME_OMIT                    = -0x3\n\tVDISCRD                       = 0xc\n\tVDSUSP                        = 0xa\n\tVEOF                          = 0x4\n\tVEOL                          = 0x5\n\tVEOL2                         = 0x6\n\tVERASE                        = 0x2\n\tVINTR                         = 0x0\n\tVKILL                         = 0x3\n\tVLNEXT                        = 0xe\n\tVMIN                          = 0x4\n\tVQUIT                         = 0x1\n\tVREPRINT                      = 0xb\n\tVSTART                        = 0x7\n\tVSTOP                         = 0x8\n\tVSTRT                         = 0x7\n\tVSUSP                         = 0x9\n\tVT0                           = 0x0\n\tVT1                           = 0x8000\n\tVTDELAY                       = 0x2000\n\tVTDLY                         = 0x8000\n\tVTIME                         = 0x5\n\tVWERSE                        = 0xd\n\tWPARSTART                     = 0x1\n\tWPARSTOP                      = 0x2\n\tWPARTTYNAME                   = \"Global\"\n\tXCASE                         = 0x4\n\tXTABS                         = 0xc00\n\t_FDATAFLUSH                   = 0x2000000000\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x43)\n\tEADDRNOTAVAIL   = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x42)\n\tEAGAIN          = syscall.Errno(0xb)\n\tEALREADY        = syscall.Errno(0x38)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x78)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x75)\n\tECHILD          = syscall.Errno(0xa)\n\tECHRNG          = syscall.Errno(0x25)\n\tECLONEME        = syscall.Errno(0x52)\n\tECONNABORTED    = syscall.Errno(0x48)\n\tECONNREFUSED    = syscall.Errno(0x4f)\n\tECONNRESET      = syscall.Errno(0x49)\n\tECORRUPT        = syscall.Errno(0x59)\n\tEDEADLK         = syscall.Errno(0x2d)\n\tEDESTADDREQ     = syscall.Errno(0x3a)\n\tEDESTADDRREQ    = syscall.Errno(0x3a)\n\tEDIST           = syscall.Errno(0x35)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x58)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFORMAT         = syscall.Errno(0x30)\n\tEHOSTDOWN       = syscall.Errno(0x50)\n\tEHOSTUNREACH    = syscall.Errno(0x51)\n\tEIDRM           = syscall.Errno(0x24)\n\tEILSEQ          = syscall.Errno(0x74)\n\tEINPROGRESS     = syscall.Errno(0x37)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x4b)\n\tEISDIR          = syscall.Errno(0x15)\n\tEL2HLT          = syscall.Errno(0x2c)\n\tEL2NSYNC        = syscall.Errno(0x26)\n\tEL3HLT          = syscall.Errno(0x27)\n\tEL3RST          = syscall.Errno(0x28)\n\tELNRNG          = syscall.Errno(0x29)\n\tELOOP           = syscall.Errno(0x55)\n\tEMEDIA          = syscall.Errno(0x6e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x3b)\n\tEMULTIHOP       = syscall.Errno(0x7d)\n\tENAMETOOLONG    = syscall.Errno(0x56)\n\tENETDOWN        = syscall.Errno(0x45)\n\tENETRESET       = syscall.Errno(0x47)\n\tENETUNREACH     = syscall.Errno(0x46)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x70)\n\tENOBUFS         = syscall.Errno(0x4a)\n\tENOCONNECT      = syscall.Errno(0x32)\n\tENOCSI          = syscall.Errno(0x2b)\n\tENODATA         = syscall.Errno(0x7a)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x31)\n\tENOLINK         = syscall.Errno(0x7e)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x23)\n\tENOPROTOOPT     = syscall.Errno(0x3d)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x76)\n\tENOSTR          = syscall.Errno(0x7b)\n\tENOSYS          = syscall.Errno(0x6d)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x4c)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x11)\n\tENOTREADY       = syscall.Errno(0x2e)\n\tENOTRECOVERABLE = syscall.Errno(0x5e)\n\tENOTRUST        = syscall.Errno(0x72)\n\tENOTSOCK        = syscall.Errno(0x39)\n\tENOTSUP         = syscall.Errno(0x7c)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x40)\n\tEOVERFLOW       = syscall.Errno(0x7f)\n\tEOWNERDEAD      = syscall.Errno(0x5f)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x41)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x53)\n\tEPROTO          = syscall.Errno(0x79)\n\tEPROTONOSUPPORT = syscall.Errno(0x3e)\n\tEPROTOTYPE      = syscall.Errno(0x3c)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x5d)\n\tERESTART        = syscall.Errno(0x52)\n\tEROFS           = syscall.Errno(0x1e)\n\tESAD            = syscall.Errno(0x71)\n\tESHUTDOWN       = syscall.Errno(0x4d)\n\tESOCKTNOSUPPORT = syscall.Errno(0x3f)\n\tESOFT           = syscall.Errno(0x6f)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x34)\n\tESYSERROR       = syscall.Errno(0x5a)\n\tETIME           = syscall.Errno(0x77)\n\tETIMEDOUT       = syscall.Errno(0x4e)\n\tETOOMANYREFS    = syscall.Errno(0x73)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUNATCH         = syscall.Errno(0x2a)\n\tEUSERS          = syscall.Errno(0x54)\n\tEWOULDBLOCK     = syscall.Errno(0xb)\n\tEWRPROTECT      = syscall.Errno(0x2f)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT     = syscall.Signal(0x6)\n\tSIGAIO      = syscall.Signal(0x17)\n\tSIGALRM     = syscall.Signal(0xe)\n\tSIGALRM1    = syscall.Signal(0x26)\n\tSIGBUS      = syscall.Signal(0xa)\n\tSIGCAPI     = syscall.Signal(0x31)\n\tSIGCHLD     = syscall.Signal(0x14)\n\tSIGCLD      = syscall.Signal(0x14)\n\tSIGCONT     = syscall.Signal(0x13)\n\tSIGCPUFAIL  = syscall.Signal(0x3b)\n\tSIGDANGER   = syscall.Signal(0x21)\n\tSIGEMT      = syscall.Signal(0x7)\n\tSIGFPE      = syscall.Signal(0x8)\n\tSIGGRANT    = syscall.Signal(0x3c)\n\tSIGHUP      = syscall.Signal(0x1)\n\tSIGILL      = syscall.Signal(0x4)\n\tSIGINT      = syscall.Signal(0x2)\n\tSIGIO       = syscall.Signal(0x17)\n\tSIGIOINT    = syscall.Signal(0x10)\n\tSIGIOT      = syscall.Signal(0x6)\n\tSIGKAP      = syscall.Signal(0x3c)\n\tSIGKILL     = syscall.Signal(0x9)\n\tSIGLOST     = syscall.Signal(0x6)\n\tSIGMAX      = syscall.Signal(0xff)\n\tSIGMAX32    = syscall.Signal(0x3f)\n\tSIGMIGRATE  = syscall.Signal(0x23)\n\tSIGMSG      = syscall.Signal(0x1b)\n\tSIGPIPE     = syscall.Signal(0xd)\n\tSIGPOLL     = syscall.Signal(0x17)\n\tSIGPRE      = syscall.Signal(0x24)\n\tSIGPROF     = syscall.Signal(0x20)\n\tSIGPTY      = syscall.Signal(0x17)\n\tSIGPWR      = syscall.Signal(0x1d)\n\tSIGQUIT     = syscall.Signal(0x3)\n\tSIGRECONFIG = syscall.Signal(0x3a)\n\tSIGRETRACT  = syscall.Signal(0x3d)\n\tSIGSAK      = syscall.Signal(0x3f)\n\tSIGSEGV     = syscall.Signal(0xb)\n\tSIGSOUND    = syscall.Signal(0x3e)\n\tSIGSTOP     = syscall.Signal(0x11)\n\tSIGSYS      = syscall.Signal(0xc)\n\tSIGSYSERROR = syscall.Signal(0x30)\n\tSIGTALRM    = syscall.Signal(0x26)\n\tSIGTERM     = syscall.Signal(0xf)\n\tSIGTRAP     = syscall.Signal(0x5)\n\tSIGTSTP     = syscall.Signal(0x12)\n\tSIGTTIN     = syscall.Signal(0x15)\n\tSIGTTOU     = syscall.Signal(0x16)\n\tSIGURG      = syscall.Signal(0x10)\n\tSIGUSR1     = syscall.Signal(0x1e)\n\tSIGUSR2     = syscall.Signal(0x1f)\n\tSIGVIRT     = syscall.Signal(0x25)\n\tSIGVTALRM   = syscall.Signal(0x22)\n\tSIGWAITING  = syscall.Signal(0x27)\n\tSIGWINCH    = syscall.Signal(0x1c)\n\tSIGXCPU     = syscall.Signal(0x18)\n\tSIGXFSZ     = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"not owner\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"I/O error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"arg list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file number\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EWOULDBLOCK\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"not enough space\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"ENOTEMPTY\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"file table overflow\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"not a typewriter\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"ENOMSG\", \"no message of desired type\"},\n\t{36, \"EIDRM\", \"identifier removed\"},\n\t{37, \"ECHRNG\", \"channel number out of range\"},\n\t{38, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{39, \"EL3HLT\", \"level 3 halted\"},\n\t{40, \"EL3RST\", \"level 3 reset\"},\n\t{41, \"ELNRNG\", \"link number out of range\"},\n\t{42, \"EUNATCH\", \"protocol driver not attached\"},\n\t{43, \"ENOCSI\", \"no CSI structure available\"},\n\t{44, \"EL2HLT\", \"level 2 halted\"},\n\t{45, \"EDEADLK\", \"deadlock condition if locked\"},\n\t{46, \"ENOTREADY\", \"device not ready\"},\n\t{47, \"EWRPROTECT\", \"write-protected media\"},\n\t{48, \"EFORMAT\", \"unformatted or incompatible media\"},\n\t{49, \"ENOLCK\", \"no locks available\"},\n\t{50, \"ENOCONNECT\", \"cannot Establish Connection\"},\n\t{52, \"ESTALE\", \"missing file or filesystem\"},\n\t{53, \"EDIST\", \"requests blocked by Administrator\"},\n\t{55, \"EINPROGRESS\", \"operation now in progress\"},\n\t{56, \"EALREADY\", \"operation already in progress\"},\n\t{57, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{58, \"EDESTADDREQ\", \"destination address required\"},\n\t{59, \"EMSGSIZE\", \"message too long\"},\n\t{60, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{61, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{62, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{63, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{64, \"EOPNOTSUPP\", \"operation not supported on socket\"},\n\t{65, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{66, \"EAFNOSUPPORT\", \"addr family not supported by protocol\"},\n\t{67, \"EADDRINUSE\", \"address already in use\"},\n\t{68, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{69, \"ENETDOWN\", \"network is down\"},\n\t{70, \"ENETUNREACH\", \"network is unreachable\"},\n\t{71, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{72, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{73, \"ECONNRESET\", \"connection reset by peer\"},\n\t{74, \"ENOBUFS\", \"no buffer space available\"},\n\t{75, \"EISCONN\", \"socket is already connected\"},\n\t{76, \"ENOTCONN\", \"socket is not connected\"},\n\t{77, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{78, \"ETIMEDOUT\", \"connection timed out\"},\n\t{79, \"ECONNREFUSED\", \"connection refused\"},\n\t{80, \"EHOSTDOWN\", \"host is down\"},\n\t{81, \"EHOSTUNREACH\", \"no route to host\"},\n\t{82, \"ERESTART\", \"restart the system call\"},\n\t{83, \"EPROCLIM\", \"too many processes\"},\n\t{84, \"EUSERS\", \"too many users\"},\n\t{85, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{86, \"ENAMETOOLONG\", \"file name too long\"},\n\t{88, \"EDQUOT\", \"disk quota exceeded\"},\n\t{89, \"ECORRUPT\", \"invalid file system control data detected\"},\n\t{90, \"ESYSERROR\", \"for future use \"},\n\t{93, \"EREMOTE\", \"item is not local to host\"},\n\t{94, \"ENOTRECOVERABLE\", \"state not recoverable \"},\n\t{95, \"EOWNERDEAD\", \"previous owner died \"},\n\t{109, \"ENOSYS\", \"function not implemented\"},\n\t{110, \"EMEDIA\", \"media surface error\"},\n\t{111, \"ESOFT\", \"I/O completed, but needs relocation\"},\n\t{112, \"ENOATTR\", \"no attribute found\"},\n\t{113, \"ESAD\", \"security Authentication Denied\"},\n\t{114, \"ENOTRUST\", \"not a Trusted Program\"},\n\t{115, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{116, \"EILSEQ\", \"invalid wide character\"},\n\t{117, \"ECANCELED\", \"asynchronous I/O cancelled\"},\n\t{118, \"ENOSR\", \"out of STREAMS resources\"},\n\t{119, \"ETIME\", \"system call timed out\"},\n\t{120, \"EBADMSG\", \"next message has wrong type\"},\n\t{121, \"EPROTO\", \"error in protocol\"},\n\t{122, \"ENODATA\", \"no message on stream head read q\"},\n\t{123, \"ENOSTR\", \"fd not associated with a stream\"},\n\t{124, \"ENOTSUP\", \"unsupported attribute value\"},\n\t{125, \"EMULTIHOP\", \"multihop is not allowed\"},\n\t{126, \"ENOLINK\", \"the server link has been severed\"},\n\t{127, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"IOT/Abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"stopped (signal)\"},\n\t{18, \"SIGTSTP\", \"stopped\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible/complete\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{27, \"SIGMSG\", \"input device data\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGPWR\", \"power-failure\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGPROF\", \"profiling timer expired\"},\n\t{33, \"SIGDANGER\", \"paging space low\"},\n\t{34, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{35, \"SIGMIGRATE\", \"signal 35\"},\n\t{36, \"SIGPRE\", \"signal 36\"},\n\t{37, \"SIGVIRT\", \"signal 37\"},\n\t{38, \"SIGTALRM\", \"signal 38\"},\n\t{39, \"SIGWAITING\", \"signal 39\"},\n\t{48, \"SIGSYSERROR\", \"signal 48\"},\n\t{49, \"SIGCAPI\", \"signal 49\"},\n\t{58, \"SIGRECONFIG\", \"signal 58\"},\n\t{59, \"SIGCPUFAIL\", \"CPU Failure Predicted\"},\n\t{60, \"SIGGRANT\", \"monitor mode granted\"},\n\t{61, \"SIGRETRACT\", \"monitor mode retracted\"},\n\t{62, \"SIGSOUND\", \"sound completed\"},\n\t{63, \"SIGMAX32\", \"secure attention\"},\n\t{255, \"SIGMAX\", \"signal 255\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && darwin\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                            = 0x10\n\tAF_CCITT                                = 0xa\n\tAF_CHAOS                                = 0x5\n\tAF_CNT                                  = 0x15\n\tAF_COIP                                 = 0x14\n\tAF_DATAKIT                              = 0x9\n\tAF_DECnet                               = 0xc\n\tAF_DLI                                  = 0xd\n\tAF_E164                                 = 0x1c\n\tAF_ECMA                                 = 0x8\n\tAF_HYLINK                               = 0xf\n\tAF_IEEE80211                            = 0x25\n\tAF_IMPLINK                              = 0x3\n\tAF_INET                                 = 0x2\n\tAF_INET6                                = 0x1e\n\tAF_IPX                                  = 0x17\n\tAF_ISDN                                 = 0x1c\n\tAF_ISO                                  = 0x7\n\tAF_LAT                                  = 0xe\n\tAF_LINK                                 = 0x12\n\tAF_LOCAL                                = 0x1\n\tAF_MAX                                  = 0x29\n\tAF_NATM                                 = 0x1f\n\tAF_NDRV                                 = 0x1b\n\tAF_NETBIOS                              = 0x21\n\tAF_NS                                   = 0x6\n\tAF_OSI                                  = 0x7\n\tAF_PPP                                  = 0x22\n\tAF_PUP                                  = 0x4\n\tAF_RESERVED_36                          = 0x24\n\tAF_ROUTE                                = 0x11\n\tAF_SIP                                  = 0x18\n\tAF_SNA                                  = 0xb\n\tAF_SYSTEM                               = 0x20\n\tAF_SYS_CONTROL                          = 0x2\n\tAF_UNIX                                 = 0x1\n\tAF_UNSPEC                               = 0x0\n\tAF_UTUN                                 = 0x26\n\tAF_VSOCK                                = 0x28\n\tALTWERASE                               = 0x200\n\tATTR_BIT_MAP_COUNT                      = 0x5\n\tATTR_CMN_ACCESSMASK                     = 0x20000\n\tATTR_CMN_ACCTIME                        = 0x1000\n\tATTR_CMN_ADDEDTIME                      = 0x10000000\n\tATTR_CMN_BKUPTIME                       = 0x2000\n\tATTR_CMN_CHGTIME                        = 0x800\n\tATTR_CMN_CRTIME                         = 0x200\n\tATTR_CMN_DATA_PROTECT_FLAGS             = 0x40000000\n\tATTR_CMN_DEVID                          = 0x2\n\tATTR_CMN_DOCUMENT_ID                    = 0x100000\n\tATTR_CMN_ERROR                          = 0x20000000\n\tATTR_CMN_EXTENDED_SECURITY              = 0x400000\n\tATTR_CMN_FILEID                         = 0x2000000\n\tATTR_CMN_FLAGS                          = 0x40000\n\tATTR_CMN_FNDRINFO                       = 0x4000\n\tATTR_CMN_FSID                           = 0x4\n\tATTR_CMN_FULLPATH                       = 0x8000000\n\tATTR_CMN_GEN_COUNT                      = 0x80000\n\tATTR_CMN_GRPID                          = 0x10000\n\tATTR_CMN_GRPUUID                        = 0x1000000\n\tATTR_CMN_MODTIME                        = 0x400\n\tATTR_CMN_NAME                           = 0x1\n\tATTR_CMN_NAMEDATTRCOUNT                 = 0x80000\n\tATTR_CMN_NAMEDATTRLIST                  = 0x100000\n\tATTR_CMN_OBJID                          = 0x20\n\tATTR_CMN_OBJPERMANENTID                 = 0x40\n\tATTR_CMN_OBJTAG                         = 0x10\n\tATTR_CMN_OBJTYPE                        = 0x8\n\tATTR_CMN_OWNERID                        = 0x8000\n\tATTR_CMN_PARENTID                       = 0x4000000\n\tATTR_CMN_PAROBJID                       = 0x80\n\tATTR_CMN_RETURNED_ATTRS                 = 0x80000000\n\tATTR_CMN_SCRIPT                         = 0x100\n\tATTR_CMN_SETMASK                        = 0x51c7ff00\n\tATTR_CMN_USERACCESS                     = 0x200000\n\tATTR_CMN_UUID                           = 0x800000\n\tATTR_CMN_VALIDMASK                      = 0xffffffff\n\tATTR_CMN_VOLSETMASK                     = 0x6700\n\tATTR_FILE_ALLOCSIZE                     = 0x4\n\tATTR_FILE_CLUMPSIZE                     = 0x10\n\tATTR_FILE_DATAALLOCSIZE                 = 0x400\n\tATTR_FILE_DATAEXTENTS                   = 0x800\n\tATTR_FILE_DATALENGTH                    = 0x200\n\tATTR_FILE_DEVTYPE                       = 0x20\n\tATTR_FILE_FILETYPE                      = 0x40\n\tATTR_FILE_FORKCOUNT                     = 0x80\n\tATTR_FILE_FORKLIST                      = 0x100\n\tATTR_FILE_IOBLOCKSIZE                   = 0x8\n\tATTR_FILE_LINKCOUNT                     = 0x1\n\tATTR_FILE_RSRCALLOCSIZE                 = 0x2000\n\tATTR_FILE_RSRCEXTENTS                   = 0x4000\n\tATTR_FILE_RSRCLENGTH                    = 0x1000\n\tATTR_FILE_SETMASK                       = 0x20\n\tATTR_FILE_TOTALSIZE                     = 0x2\n\tATTR_FILE_VALIDMASK                     = 0x37ff\n\tATTR_VOL_ALLOCATIONCLUMP                = 0x40\n\tATTR_VOL_ATTRIBUTES                     = 0x40000000\n\tATTR_VOL_CAPABILITIES                   = 0x20000\n\tATTR_VOL_DIRCOUNT                       = 0x400\n\tATTR_VOL_ENCODINGSUSED                  = 0x10000\n\tATTR_VOL_FILECOUNT                      = 0x200\n\tATTR_VOL_FSTYPE                         = 0x1\n\tATTR_VOL_INFO                           = 0x80000000\n\tATTR_VOL_IOBLOCKSIZE                    = 0x80\n\tATTR_VOL_MAXOBJCOUNT                    = 0x800\n\tATTR_VOL_MINALLOCATION                  = 0x20\n\tATTR_VOL_MOUNTEDDEVICE                  = 0x8000\n\tATTR_VOL_MOUNTFLAGS                     = 0x4000\n\tATTR_VOL_MOUNTPOINT                     = 0x1000\n\tATTR_VOL_NAME                           = 0x2000\n\tATTR_VOL_OBJCOUNT                       = 0x100\n\tATTR_VOL_QUOTA_SIZE                     = 0x10000000\n\tATTR_VOL_RESERVED_SIZE                  = 0x20000000\n\tATTR_VOL_SETMASK                        = 0x80002000\n\tATTR_VOL_SIGNATURE                      = 0x2\n\tATTR_VOL_SIZE                           = 0x4\n\tATTR_VOL_SPACEAVAIL                     = 0x10\n\tATTR_VOL_SPACEFREE                      = 0x8\n\tATTR_VOL_SPACEUSED                      = 0x800000\n\tATTR_VOL_UUID                           = 0x40000\n\tATTR_VOL_VALIDMASK                      = 0xf087ffff\n\tB0                                      = 0x0\n\tB110                                    = 0x6e\n\tB115200                                 = 0x1c200\n\tB1200                                   = 0x4b0\n\tB134                                    = 0x86\n\tB14400                                  = 0x3840\n\tB150                                    = 0x96\n\tB1800                                   = 0x708\n\tB19200                                  = 0x4b00\n\tB200                                    = 0xc8\n\tB230400                                 = 0x38400\n\tB2400                                   = 0x960\n\tB28800                                  = 0x7080\n\tB300                                    = 0x12c\n\tB38400                                  = 0x9600\n\tB4800                                   = 0x12c0\n\tB50                                     = 0x32\n\tB57600                                  = 0xe100\n\tB600                                    = 0x258\n\tB7200                                   = 0x1c20\n\tB75                                     = 0x4b\n\tB76800                                  = 0x12c00\n\tB9600                                   = 0x2580\n\tBIOCFLUSH                               = 0x20004268\n\tBIOCGBLEN                               = 0x40044266\n\tBIOCGDLT                                = 0x4004426a\n\tBIOCGDLTLIST                            = 0xc00c4279\n\tBIOCGETIF                               = 0x4020426b\n\tBIOCGHDRCMPLT                           = 0x40044274\n\tBIOCGRSIG                               = 0x40044272\n\tBIOCGRTIMEOUT                           = 0x4010426e\n\tBIOCGSEESENT                            = 0x40044276\n\tBIOCGSTATS                              = 0x4008426f\n\tBIOCIMMEDIATE                           = 0x80044270\n\tBIOCPROMISC                             = 0x20004269\n\tBIOCSBLEN                               = 0xc0044266\n\tBIOCSDLT                                = 0x80044278\n\tBIOCSETF                                = 0x80104267\n\tBIOCSETFNR                              = 0x8010427e\n\tBIOCSETIF                               = 0x8020426c\n\tBIOCSHDRCMPLT                           = 0x80044275\n\tBIOCSRSIG                               = 0x80044273\n\tBIOCSRTIMEOUT                           = 0x8010426d\n\tBIOCSSEESENT                            = 0x80044277\n\tBIOCVERSION                             = 0x40044271\n\tBPF_A                                   = 0x10\n\tBPF_ABS                                 = 0x20\n\tBPF_ADD                                 = 0x0\n\tBPF_ALIGNMENT                           = 0x4\n\tBPF_ALU                                 = 0x4\n\tBPF_AND                                 = 0x50\n\tBPF_B                                   = 0x10\n\tBPF_DIV                                 = 0x30\n\tBPF_H                                   = 0x8\n\tBPF_IMM                                 = 0x0\n\tBPF_IND                                 = 0x40\n\tBPF_JA                                  = 0x0\n\tBPF_JEQ                                 = 0x10\n\tBPF_JGE                                 = 0x30\n\tBPF_JGT                                 = 0x20\n\tBPF_JMP                                 = 0x5\n\tBPF_JSET                                = 0x40\n\tBPF_K                                   = 0x0\n\tBPF_LD                                  = 0x0\n\tBPF_LDX                                 = 0x1\n\tBPF_LEN                                 = 0x80\n\tBPF_LSH                                 = 0x60\n\tBPF_MAJOR_VERSION                       = 0x1\n\tBPF_MAXBUFSIZE                          = 0x80000\n\tBPF_MAXINSNS                            = 0x200\n\tBPF_MEM                                 = 0x60\n\tBPF_MEMWORDS                            = 0x10\n\tBPF_MINBUFSIZE                          = 0x20\n\tBPF_MINOR_VERSION                       = 0x1\n\tBPF_MISC                                = 0x7\n\tBPF_MSH                                 = 0xa0\n\tBPF_MUL                                 = 0x20\n\tBPF_NEG                                 = 0x80\n\tBPF_OR                                  = 0x40\n\tBPF_RELEASE                             = 0x30bb6\n\tBPF_RET                                 = 0x6\n\tBPF_RSH                                 = 0x70\n\tBPF_ST                                  = 0x2\n\tBPF_STX                                 = 0x3\n\tBPF_SUB                                 = 0x10\n\tBPF_TAX                                 = 0x0\n\tBPF_TXA                                 = 0x80\n\tBPF_W                                   = 0x0\n\tBPF_X                                   = 0x8\n\tBRKINT                                  = 0x2\n\tBS0                                     = 0x0\n\tBS1                                     = 0x8000\n\tBSDLY                                   = 0x8000\n\tCFLUSH                                  = 0xf\n\tCLOCAL                                  = 0x8000\n\tCLOCK_MONOTONIC                         = 0x6\n\tCLOCK_MONOTONIC_RAW                     = 0x4\n\tCLOCK_MONOTONIC_RAW_APPROX              = 0x5\n\tCLOCK_PROCESS_CPUTIME_ID                = 0xc\n\tCLOCK_REALTIME                          = 0x0\n\tCLOCK_THREAD_CPUTIME_ID                 = 0x10\n\tCLOCK_UPTIME_RAW                        = 0x8\n\tCLOCK_UPTIME_RAW_APPROX                 = 0x9\n\tCLONE_NOFOLLOW                          = 0x1\n\tCLONE_NOOWNERCOPY                       = 0x2\n\tCONNECT_DATA_AUTHENTICATED              = 0x4\n\tCONNECT_DATA_IDEMPOTENT                 = 0x2\n\tCONNECT_RESUME_ON_READ_WRITE            = 0x1\n\tCR0                                     = 0x0\n\tCR1                                     = 0x1000\n\tCR2                                     = 0x2000\n\tCR3                                     = 0x3000\n\tCRDLY                                   = 0x3000\n\tCREAD                                   = 0x800\n\tCRTSCTS                                 = 0x30000\n\tCS5                                     = 0x0\n\tCS6                                     = 0x100\n\tCS7                                     = 0x200\n\tCS8                                     = 0x300\n\tCSIZE                                   = 0x300\n\tCSTART                                  = 0x11\n\tCSTATUS                                 = 0x14\n\tCSTOP                                   = 0x13\n\tCSTOPB                                  = 0x400\n\tCSUSP                                   = 0x1a\n\tCTLIOCGINFO                             = 0xc0644e03\n\tCTL_HW                                  = 0x6\n\tCTL_KERN                                = 0x1\n\tCTL_MAXNAME                             = 0xc\n\tCTL_NET                                 = 0x4\n\tDLT_A429                                = 0xb8\n\tDLT_A653_ICM                            = 0xb9\n\tDLT_AIRONET_HEADER                      = 0x78\n\tDLT_AOS                                 = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394              = 0x8a\n\tDLT_ARCNET                              = 0x7\n\tDLT_ARCNET_LINUX                        = 0x81\n\tDLT_ATM_CLIP                            = 0x13\n\tDLT_ATM_RFC1483                         = 0xb\n\tDLT_AURORA                              = 0x7e\n\tDLT_AX25                                = 0x3\n\tDLT_AX25_KISS                           = 0xca\n\tDLT_BACNET_MS_TP                        = 0xa5\n\tDLT_BLUETOOTH_HCI_H4                    = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR          = 0xc9\n\tDLT_CAN20B                              = 0xbe\n\tDLT_CAN_SOCKETCAN                       = 0xe3\n\tDLT_CHAOS                               = 0x5\n\tDLT_CHDLC                               = 0x68\n\tDLT_CISCO_IOS                           = 0x76\n\tDLT_C_HDLC                              = 0x68\n\tDLT_C_HDLC_WITH_DIR                     = 0xcd\n\tDLT_DBUS                                = 0xe7\n\tDLT_DECT                                = 0xdd\n\tDLT_DOCSIS                              = 0x8f\n\tDLT_DVB_CI                              = 0xeb\n\tDLT_ECONET                              = 0x73\n\tDLT_EN10MB                              = 0x1\n\tDLT_EN3MB                               = 0x2\n\tDLT_ENC                                 = 0x6d\n\tDLT_ERF                                 = 0xc5\n\tDLT_ERF_ETH                             = 0xaf\n\tDLT_ERF_POS                             = 0xb0\n\tDLT_FC_2                                = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS              = 0xe1\n\tDLT_FDDI                                = 0xa\n\tDLT_FLEXRAY                             = 0xd2\n\tDLT_FRELAY                              = 0x6b\n\tDLT_FRELAY_WITH_DIR                     = 0xce\n\tDLT_GCOM_SERIAL                         = 0xad\n\tDLT_GCOM_T1E1                           = 0xac\n\tDLT_GPF_F                               = 0xab\n\tDLT_GPF_T                               = 0xaa\n\tDLT_GPRS_LLC                            = 0xa9\n\tDLT_GSMTAP_ABIS                         = 0xda\n\tDLT_GSMTAP_UM                           = 0xd9\n\tDLT_HHDLC                               = 0x79\n\tDLT_IBM_SN                              = 0x92\n\tDLT_IBM_SP                              = 0x91\n\tDLT_IEEE802                             = 0x6\n\tDLT_IEEE802_11                          = 0x69\n\tDLT_IEEE802_11_RADIO                    = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS                = 0xa3\n\tDLT_IEEE802_15_4                        = 0xc3\n\tDLT_IEEE802_15_4_LINUX                  = 0xbf\n\tDLT_IEEE802_15_4_NOFCS                  = 0xe6\n\tDLT_IEEE802_15_4_NONASK_PHY             = 0xd7\n\tDLT_IEEE802_16_MAC_CPS                  = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO            = 0xc1\n\tDLT_IPFILTER                            = 0x74\n\tDLT_IPMB                                = 0xc7\n\tDLT_IPMB_LINUX                          = 0xd1\n\tDLT_IPNET                               = 0xe2\n\tDLT_IPOIB                               = 0xf2\n\tDLT_IPV4                                = 0xe4\n\tDLT_IPV6                                = 0xe5\n\tDLT_IP_OVER_FC                          = 0x7a\n\tDLT_JUNIPER_ATM1                        = 0x89\n\tDLT_JUNIPER_ATM2                        = 0x87\n\tDLT_JUNIPER_ATM_CEMIC                   = 0xee\n\tDLT_JUNIPER_CHDLC                       = 0xb5\n\tDLT_JUNIPER_ES                          = 0x84\n\tDLT_JUNIPER_ETHER                       = 0xb2\n\tDLT_JUNIPER_FIBRECHANNEL                = 0xea\n\tDLT_JUNIPER_FRELAY                      = 0xb4\n\tDLT_JUNIPER_GGSN                        = 0x85\n\tDLT_JUNIPER_ISM                         = 0xc2\n\tDLT_JUNIPER_MFR                         = 0x86\n\tDLT_JUNIPER_MLFR                        = 0x83\n\tDLT_JUNIPER_MLPPP                       = 0x82\n\tDLT_JUNIPER_MONITOR                     = 0xa4\n\tDLT_JUNIPER_PIC_PEER                    = 0xae\n\tDLT_JUNIPER_PPP                         = 0xb3\n\tDLT_JUNIPER_PPPOE                       = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM                   = 0xa8\n\tDLT_JUNIPER_SERVICES                    = 0x88\n\tDLT_JUNIPER_SRX_E2E                     = 0xe9\n\tDLT_JUNIPER_ST                          = 0xc8\n\tDLT_JUNIPER_VP                          = 0xb7\n\tDLT_JUNIPER_VS                          = 0xe8\n\tDLT_LAPB_WITH_DIR                       = 0xcf\n\tDLT_LAPD                                = 0xcb\n\tDLT_LIN                                 = 0xd4\n\tDLT_LINUX_EVDEV                         = 0xd8\n\tDLT_LINUX_IRDA                          = 0x90\n\tDLT_LINUX_LAPD                          = 0xb1\n\tDLT_LINUX_PPP_WITHDIRECTION             = 0xa6\n\tDLT_LINUX_SLL                           = 0x71\n\tDLT_LOOP                                = 0x6c\n\tDLT_LTALK                               = 0x72\n\tDLT_MATCHING_MAX                        = 0x10a\n\tDLT_MATCHING_MIN                        = 0x68\n\tDLT_MFR                                 = 0xb6\n\tDLT_MOST                                = 0xd3\n\tDLT_MPEG_2_TS                           = 0xf3\n\tDLT_MPLS                                = 0xdb\n\tDLT_MTP2                                = 0x8c\n\tDLT_MTP2_WITH_PHDR                      = 0x8b\n\tDLT_MTP3                                = 0x8d\n\tDLT_MUX27010                            = 0xec\n\tDLT_NETANALYZER                         = 0xf0\n\tDLT_NETANALYZER_TRANSPARENT             = 0xf1\n\tDLT_NFC_LLCP                            = 0xf5\n\tDLT_NFLOG                               = 0xef\n\tDLT_NG40                                = 0xf4\n\tDLT_NULL                                = 0x0\n\tDLT_PCI_EXP                             = 0x7d\n\tDLT_PFLOG                               = 0x75\n\tDLT_PFSYNC                              = 0x12\n\tDLT_PPI                                 = 0xc0\n\tDLT_PPP                                 = 0x9\n\tDLT_PPP_BSDOS                           = 0x10\n\tDLT_PPP_ETHER                           = 0x33\n\tDLT_PPP_PPPD                            = 0xa6\n\tDLT_PPP_SERIAL                          = 0x32\n\tDLT_PPP_WITH_DIR                        = 0xcc\n\tDLT_PPP_WITH_DIRECTION                  = 0xa6\n\tDLT_PRISM_HEADER                        = 0x77\n\tDLT_PRONET                              = 0x4\n\tDLT_RAIF1                               = 0xc6\n\tDLT_RAW                                 = 0xc\n\tDLT_RIO                                 = 0x7c\n\tDLT_SCCP                                = 0x8e\n\tDLT_SITA                                = 0xc4\n\tDLT_SLIP                                = 0x8\n\tDLT_SLIP_BSDOS                          = 0xf\n\tDLT_STANAG_5066_D_PDU                   = 0xed\n\tDLT_SUNATM                              = 0x7b\n\tDLT_SYMANTEC_FIREWALL                   = 0x63\n\tDLT_TZSP                                = 0x80\n\tDLT_USB                                 = 0xba\n\tDLT_USB_DARWIN                          = 0x10a\n\tDLT_USB_LINUX                           = 0xbd\n\tDLT_USB_LINUX_MMAPPED                   = 0xdc\n\tDLT_USER0                               = 0x93\n\tDLT_USER1                               = 0x94\n\tDLT_USER10                              = 0x9d\n\tDLT_USER11                              = 0x9e\n\tDLT_USER12                              = 0x9f\n\tDLT_USER13                              = 0xa0\n\tDLT_USER14                              = 0xa1\n\tDLT_USER15                              = 0xa2\n\tDLT_USER2                               = 0x95\n\tDLT_USER3                               = 0x96\n\tDLT_USER4                               = 0x97\n\tDLT_USER5                               = 0x98\n\tDLT_USER6                               = 0x99\n\tDLT_USER7                               = 0x9a\n\tDLT_USER8                               = 0x9b\n\tDLT_USER9                               = 0x9c\n\tDLT_WIHART                              = 0xdf\n\tDLT_X2E_SERIAL                          = 0xd5\n\tDLT_X2E_XORAYA                          = 0xd6\n\tDT_BLK                                  = 0x6\n\tDT_CHR                                  = 0x2\n\tDT_DIR                                  = 0x4\n\tDT_FIFO                                 = 0x1\n\tDT_LNK                                  = 0xa\n\tDT_REG                                  = 0x8\n\tDT_SOCK                                 = 0xc\n\tDT_UNKNOWN                              = 0x0\n\tDT_WHT                                  = 0xe\n\tECHO                                    = 0x8\n\tECHOCTL                                 = 0x40\n\tECHOE                                   = 0x2\n\tECHOK                                   = 0x4\n\tECHOKE                                  = 0x1\n\tECHONL                                  = 0x10\n\tECHOPRT                                 = 0x20\n\tEVFILT_AIO                              = -0x3\n\tEVFILT_EXCEPT                           = -0xf\n\tEVFILT_FS                               = -0x9\n\tEVFILT_MACHPORT                         = -0x8\n\tEVFILT_PROC                             = -0x5\n\tEVFILT_READ                             = -0x1\n\tEVFILT_SIGNAL                           = -0x6\n\tEVFILT_SYSCOUNT                         = 0x11\n\tEVFILT_THREADMARKER                     = 0x11\n\tEVFILT_TIMER                            = -0x7\n\tEVFILT_USER                             = -0xa\n\tEVFILT_VM                               = -0xc\n\tEVFILT_VNODE                            = -0x4\n\tEVFILT_WRITE                            = -0x2\n\tEV_ADD                                  = 0x1\n\tEV_CLEAR                                = 0x20\n\tEV_DELETE                               = 0x2\n\tEV_DISABLE                              = 0x8\n\tEV_DISPATCH                             = 0x80\n\tEV_DISPATCH2                            = 0x180\n\tEV_ENABLE                               = 0x4\n\tEV_EOF                                  = 0x8000\n\tEV_ERROR                                = 0x4000\n\tEV_FLAG0                                = 0x1000\n\tEV_FLAG1                                = 0x2000\n\tEV_ONESHOT                              = 0x10\n\tEV_OOBAND                               = 0x2000\n\tEV_POLL                                 = 0x1000\n\tEV_RECEIPT                              = 0x40\n\tEV_SYSFLAGS                             = 0xf000\n\tEV_UDATA_SPECIFIC                       = 0x100\n\tEV_VANISHED                             = 0x200\n\tEXTA                                    = 0x4b00\n\tEXTB                                    = 0x9600\n\tEXTPROC                                 = 0x800\n\tFD_CLOEXEC                              = 0x1\n\tFD_SETSIZE                              = 0x400\n\tFF0                                     = 0x0\n\tFF1                                     = 0x4000\n\tFFDLY                                   = 0x4000\n\tFLUSHO                                  = 0x800000\n\tFSOPT_ATTR_CMN_EXTENDED                 = 0x20\n\tFSOPT_NOFOLLOW                          = 0x1\n\tFSOPT_NOINMEMUPDATE                     = 0x2\n\tFSOPT_PACK_INVAL_ATTRS                  = 0x8\n\tFSOPT_REPORT_FULLSIZE                   = 0x4\n\tFSOPT_RETURN_REALDEV                    = 0x200\n\tF_ADDFILESIGS                           = 0x3d\n\tF_ADDFILESIGS_FOR_DYLD_SIM              = 0x53\n\tF_ADDFILESIGS_INFO                      = 0x67\n\tF_ADDFILESIGS_RETURN                    = 0x61\n\tF_ADDFILESUPPL                          = 0x68\n\tF_ADDSIGS                               = 0x3b\n\tF_ALLOCATEALL                           = 0x4\n\tF_ALLOCATECONTIG                        = 0x2\n\tF_BARRIERFSYNC                          = 0x55\n\tF_CHECK_LV                              = 0x62\n\tF_CHKCLEAN                              = 0x29\n\tF_DUPFD                                 = 0x0\n\tF_DUPFD_CLOEXEC                         = 0x43\n\tF_FINDSIGS                              = 0x4e\n\tF_FLUSH_DATA                            = 0x28\n\tF_FREEZE_FS                             = 0x35\n\tF_FULLFSYNC                             = 0x33\n\tF_GETCODEDIR                            = 0x48\n\tF_GETFD                                 = 0x1\n\tF_GETFL                                 = 0x3\n\tF_GETLK                                 = 0x7\n\tF_GETLKPID                              = 0x42\n\tF_GETNOSIGPIPE                          = 0x4a\n\tF_GETOWN                                = 0x5\n\tF_GETPATH                               = 0x32\n\tF_GETPATH_MTMINFO                       = 0x47\n\tF_GETPATH_NOFIRMLINK                    = 0x66\n\tF_GETPROTECTIONCLASS                    = 0x3f\n\tF_GETPROTECTIONLEVEL                    = 0x4d\n\tF_GETSIGSINFO                           = 0x69\n\tF_GLOBAL_NOCACHE                        = 0x37\n\tF_LOG2PHYS                              = 0x31\n\tF_LOG2PHYS_EXT                          = 0x41\n\tF_NOCACHE                               = 0x30\n\tF_NODIRECT                              = 0x3e\n\tF_OK                                    = 0x0\n\tF_PATHPKG_CHECK                         = 0x34\n\tF_PEOFPOSMODE                           = 0x3\n\tF_PREALLOCATE                           = 0x2a\n\tF_PUNCHHOLE                             = 0x63\n\tF_RDADVISE                              = 0x2c\n\tF_RDAHEAD                               = 0x2d\n\tF_RDLCK                                 = 0x1\n\tF_SETBACKINGSTORE                       = 0x46\n\tF_SETFD                                 = 0x2\n\tF_SETFL                                 = 0x4\n\tF_SETLK                                 = 0x8\n\tF_SETLKW                                = 0x9\n\tF_SETLKWTIMEOUT                         = 0xa\n\tF_SETNOSIGPIPE                          = 0x49\n\tF_SETOWN                                = 0x6\n\tF_SETPROTECTIONCLASS                    = 0x40\n\tF_SETSIZE                               = 0x2b\n\tF_SINGLE_WRITER                         = 0x4c\n\tF_SPECULATIVE_READ                      = 0x65\n\tF_THAW_FS                               = 0x36\n\tF_TRANSCODEKEY                          = 0x4b\n\tF_TRIM_ACTIVE_FILE                      = 0x64\n\tF_UNLCK                                 = 0x2\n\tF_VOLPOSMODE                            = 0x4\n\tF_WRLCK                                 = 0x3\n\tHUPCL                                   = 0x4000\n\tHW_MACHINE                              = 0x1\n\tICANON                                  = 0x100\n\tICMP6_FILTER                            = 0x12\n\tICRNL                                   = 0x100\n\tIEXTEN                                  = 0x400\n\tIFF_ALLMULTI                            = 0x200\n\tIFF_ALTPHYS                             = 0x4000\n\tIFF_BROADCAST                           = 0x2\n\tIFF_DEBUG                               = 0x4\n\tIFF_LINK0                               = 0x1000\n\tIFF_LINK1                               = 0x2000\n\tIFF_LINK2                               = 0x4000\n\tIFF_LOOPBACK                            = 0x8\n\tIFF_MULTICAST                           = 0x8000\n\tIFF_NOARP                               = 0x80\n\tIFF_NOTRAILERS                          = 0x20\n\tIFF_OACTIVE                             = 0x400\n\tIFF_POINTOPOINT                         = 0x10\n\tIFF_PROMISC                             = 0x100\n\tIFF_RUNNING                             = 0x40\n\tIFF_SIMPLEX                             = 0x800\n\tIFF_UP                                  = 0x1\n\tIFNAMSIZ                                = 0x10\n\tIFT_1822                                = 0x2\n\tIFT_6LOWPAN                             = 0x40\n\tIFT_AAL5                                = 0x31\n\tIFT_ARCNET                              = 0x23\n\tIFT_ARCNETPLUS                          = 0x24\n\tIFT_ATM                                 = 0x25\n\tIFT_BRIDGE                              = 0xd1\n\tIFT_CARP                                = 0xf8\n\tIFT_CELLULAR                            = 0xff\n\tIFT_CEPT                                = 0x13\n\tIFT_DS3                                 = 0x1e\n\tIFT_ENC                                 = 0xf4\n\tIFT_EON                                 = 0x19\n\tIFT_ETHER                               = 0x6\n\tIFT_FAITH                               = 0x38\n\tIFT_FDDI                                = 0xf\n\tIFT_FRELAY                              = 0x20\n\tIFT_FRELAYDCE                           = 0x2c\n\tIFT_GIF                                 = 0x37\n\tIFT_HDH1822                             = 0x3\n\tIFT_HIPPI                               = 0x2f\n\tIFT_HSSI                                = 0x2e\n\tIFT_HY                                  = 0xe\n\tIFT_IEEE1394                            = 0x90\n\tIFT_IEEE8023ADLAG                       = 0x88\n\tIFT_ISDNBASIC                           = 0x14\n\tIFT_ISDNPRIMARY                         = 0x15\n\tIFT_ISO88022LLC                         = 0x29\n\tIFT_ISO88023                            = 0x7\n\tIFT_ISO88024                            = 0x8\n\tIFT_ISO88025                            = 0x9\n\tIFT_ISO88026                            = 0xa\n\tIFT_L2VLAN                              = 0x87\n\tIFT_LAPB                                = 0x10\n\tIFT_LOCALTALK                           = 0x2a\n\tIFT_LOOP                                = 0x18\n\tIFT_MIOX25                              = 0x26\n\tIFT_MODEM                               = 0x30\n\tIFT_NSIP                                = 0x1b\n\tIFT_OTHER                               = 0x1\n\tIFT_P10                                 = 0xc\n\tIFT_P80                                 = 0xd\n\tIFT_PARA                                = 0x22\n\tIFT_PDP                                 = 0xff\n\tIFT_PFLOG                               = 0xf5\n\tIFT_PFSYNC                              = 0xf6\n\tIFT_PKTAP                               = 0xfe\n\tIFT_PPP                                 = 0x17\n\tIFT_PROPMUX                             = 0x36\n\tIFT_PROPVIRTUAL                         = 0x35\n\tIFT_PTPSERIAL                           = 0x16\n\tIFT_RS232                               = 0x21\n\tIFT_SDLC                                = 0x11\n\tIFT_SIP                                 = 0x1f\n\tIFT_SLIP                                = 0x1c\n\tIFT_SMDSDXI                             = 0x2b\n\tIFT_SMDSICIP                            = 0x34\n\tIFT_SONET                               = 0x27\n\tIFT_SONETPATH                           = 0x32\n\tIFT_SONETVT                             = 0x33\n\tIFT_STARLAN                             = 0xb\n\tIFT_STF                                 = 0x39\n\tIFT_T1                                  = 0x12\n\tIFT_ULTRA                               = 0x1d\n\tIFT_V35                                 = 0x2d\n\tIFT_X25                                 = 0x5\n\tIFT_X25DDN                              = 0x4\n\tIFT_X25PLE                              = 0x28\n\tIFT_XETHER                              = 0x1a\n\tIGNBRK                                  = 0x1\n\tIGNCR                                   = 0x80\n\tIGNPAR                                  = 0x4\n\tIMAXBEL                                 = 0x2000\n\tINLCR                                   = 0x40\n\tINPCK                                   = 0x10\n\tIN_CLASSA_HOST                          = 0xffffff\n\tIN_CLASSA_MAX                           = 0x80\n\tIN_CLASSA_NET                           = 0xff000000\n\tIN_CLASSA_NSHIFT                        = 0x18\n\tIN_CLASSB_HOST                          = 0xffff\n\tIN_CLASSB_MAX                           = 0x10000\n\tIN_CLASSB_NET                           = 0xffff0000\n\tIN_CLASSB_NSHIFT                        = 0x10\n\tIN_CLASSC_HOST                          = 0xff\n\tIN_CLASSC_NET                           = 0xffffff00\n\tIN_CLASSC_NSHIFT                        = 0x8\n\tIN_CLASSD_HOST                          = 0xfffffff\n\tIN_CLASSD_NET                           = 0xf0000000\n\tIN_CLASSD_NSHIFT                        = 0x1c\n\tIN_LINKLOCALNETNUM                      = 0xa9fe0000\n\tIN_LOOPBACKNET                          = 0x7f\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID          = 0x400473d1\n\tIPPROTO_3PC                             = 0x22\n\tIPPROTO_ADFS                            = 0x44\n\tIPPROTO_AH                              = 0x33\n\tIPPROTO_AHIP                            = 0x3d\n\tIPPROTO_APES                            = 0x63\n\tIPPROTO_ARGUS                           = 0xd\n\tIPPROTO_AX25                            = 0x5d\n\tIPPROTO_BHA                             = 0x31\n\tIPPROTO_BLT                             = 0x1e\n\tIPPROTO_BRSATMON                        = 0x4c\n\tIPPROTO_CFTP                            = 0x3e\n\tIPPROTO_CHAOS                           = 0x10\n\tIPPROTO_CMTP                            = 0x26\n\tIPPROTO_CPHB                            = 0x49\n\tIPPROTO_CPNX                            = 0x48\n\tIPPROTO_DDP                             = 0x25\n\tIPPROTO_DGP                             = 0x56\n\tIPPROTO_DIVERT                          = 0xfe\n\tIPPROTO_DONE                            = 0x101\n\tIPPROTO_DSTOPTS                         = 0x3c\n\tIPPROTO_EGP                             = 0x8\n\tIPPROTO_EMCON                           = 0xe\n\tIPPROTO_ENCAP                           = 0x62\n\tIPPROTO_EON                             = 0x50\n\tIPPROTO_ESP                             = 0x32\n\tIPPROTO_ETHERIP                         = 0x61\n\tIPPROTO_FRAGMENT                        = 0x2c\n\tIPPROTO_GGP                             = 0x3\n\tIPPROTO_GMTP                            = 0x64\n\tIPPROTO_GRE                             = 0x2f\n\tIPPROTO_HELLO                           = 0x3f\n\tIPPROTO_HMP                             = 0x14\n\tIPPROTO_HOPOPTS                         = 0x0\n\tIPPROTO_ICMP                            = 0x1\n\tIPPROTO_ICMPV6                          = 0x3a\n\tIPPROTO_IDP                             = 0x16\n\tIPPROTO_IDPR                            = 0x23\n\tIPPROTO_IDRP                            = 0x2d\n\tIPPROTO_IGMP                            = 0x2\n\tIPPROTO_IGP                             = 0x55\n\tIPPROTO_IGRP                            = 0x58\n\tIPPROTO_IL                              = 0x28\n\tIPPROTO_INLSP                           = 0x34\n\tIPPROTO_INP                             = 0x20\n\tIPPROTO_IP                              = 0x0\n\tIPPROTO_IPCOMP                          = 0x6c\n\tIPPROTO_IPCV                            = 0x47\n\tIPPROTO_IPEIP                           = 0x5e\n\tIPPROTO_IPIP                            = 0x4\n\tIPPROTO_IPPC                            = 0x43\n\tIPPROTO_IPV4                            = 0x4\n\tIPPROTO_IPV6                            = 0x29\n\tIPPROTO_IRTP                            = 0x1c\n\tIPPROTO_KRYPTOLAN                       = 0x41\n\tIPPROTO_LARP                            = 0x5b\n\tIPPROTO_LEAF1                           = 0x19\n\tIPPROTO_LEAF2                           = 0x1a\n\tIPPROTO_MAX                             = 0x100\n\tIPPROTO_MAXID                           = 0x34\n\tIPPROTO_MEAS                            = 0x13\n\tIPPROTO_MHRP                            = 0x30\n\tIPPROTO_MICP                            = 0x5f\n\tIPPROTO_MTP                             = 0x5c\n\tIPPROTO_MUX                             = 0x12\n\tIPPROTO_ND                              = 0x4d\n\tIPPROTO_NHRP                            = 0x36\n\tIPPROTO_NONE                            = 0x3b\n\tIPPROTO_NSP                             = 0x1f\n\tIPPROTO_NVPII                           = 0xb\n\tIPPROTO_OSPFIGP                         = 0x59\n\tIPPROTO_PGM                             = 0x71\n\tIPPROTO_PIGP                            = 0x9\n\tIPPROTO_PIM                             = 0x67\n\tIPPROTO_PRM                             = 0x15\n\tIPPROTO_PUP                             = 0xc\n\tIPPROTO_PVP                             = 0x4b\n\tIPPROTO_RAW                             = 0xff\n\tIPPROTO_RCCMON                          = 0xa\n\tIPPROTO_RDP                             = 0x1b\n\tIPPROTO_ROUTING                         = 0x2b\n\tIPPROTO_RSVP                            = 0x2e\n\tIPPROTO_RVD                             = 0x42\n\tIPPROTO_SATEXPAK                        = 0x40\n\tIPPROTO_SATMON                          = 0x45\n\tIPPROTO_SCCSP                           = 0x60\n\tIPPROTO_SCTP                            = 0x84\n\tIPPROTO_SDRP                            = 0x2a\n\tIPPROTO_SEP                             = 0x21\n\tIPPROTO_SRPC                            = 0x5a\n\tIPPROTO_ST                              = 0x7\n\tIPPROTO_SVMTP                           = 0x52\n\tIPPROTO_SWIPE                           = 0x35\n\tIPPROTO_TCF                             = 0x57\n\tIPPROTO_TCP                             = 0x6\n\tIPPROTO_TP                              = 0x1d\n\tIPPROTO_TPXX                            = 0x27\n\tIPPROTO_TRUNK1                          = 0x17\n\tIPPROTO_TRUNK2                          = 0x18\n\tIPPROTO_TTP                             = 0x54\n\tIPPROTO_UDP                             = 0x11\n\tIPPROTO_VINES                           = 0x53\n\tIPPROTO_VISA                            = 0x46\n\tIPPROTO_VMTP                            = 0x51\n\tIPPROTO_WBEXPAK                         = 0x4f\n\tIPPROTO_WBMON                           = 0x4e\n\tIPPROTO_WSN                             = 0x4a\n\tIPPROTO_XNET                            = 0xf\n\tIPPROTO_XTP                             = 0x24\n\tIPV6_2292DSTOPTS                        = 0x17\n\tIPV6_2292HOPLIMIT                       = 0x14\n\tIPV6_2292HOPOPTS                        = 0x16\n\tIPV6_2292NEXTHOP                        = 0x15\n\tIPV6_2292PKTINFO                        = 0x13\n\tIPV6_2292PKTOPTIONS                     = 0x19\n\tIPV6_2292RTHDR                          = 0x18\n\tIPV6_3542DSTOPTS                        = 0x32\n\tIPV6_3542HOPLIMIT                       = 0x2f\n\tIPV6_3542HOPOPTS                        = 0x31\n\tIPV6_3542NEXTHOP                        = 0x30\n\tIPV6_3542PKTINFO                        = 0x2e\n\tIPV6_3542RTHDR                          = 0x33\n\tIPV6_ADDR_MC_FLAGS_PREFIX               = 0x20\n\tIPV6_ADDR_MC_FLAGS_TRANSIENT            = 0x10\n\tIPV6_ADDR_MC_FLAGS_UNICAST_BASED        = 0x30\n\tIPV6_AUTOFLOWLABEL                      = 0x3b\n\tIPV6_BINDV6ONLY                         = 0x1b\n\tIPV6_BOUND_IF                           = 0x7d\n\tIPV6_CHECKSUM                           = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS             = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP             = 0x1\n\tIPV6_DEFHLIM                            = 0x40\n\tIPV6_DONTFRAG                           = 0x3e\n\tIPV6_DSTOPTS                            = 0x32\n\tIPV6_FAITH                              = 0x1d\n\tIPV6_FLOWINFO_MASK                      = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK                     = 0xffff0f00\n\tIPV6_FLOW_ECN_MASK                      = 0x3000\n\tIPV6_FRAGTTL                            = 0x3c\n\tIPV6_FW_ADD                             = 0x1e\n\tIPV6_FW_DEL                             = 0x1f\n\tIPV6_FW_FLUSH                           = 0x20\n\tIPV6_FW_GET                             = 0x22\n\tIPV6_FW_ZERO                            = 0x21\n\tIPV6_HLIMDEC                            = 0x1\n\tIPV6_HOPLIMIT                           = 0x2f\n\tIPV6_HOPOPTS                            = 0x31\n\tIPV6_IPSEC_POLICY                       = 0x1c\n\tIPV6_JOIN_GROUP                         = 0xc\n\tIPV6_LEAVE_GROUP                        = 0xd\n\tIPV6_MAXHLIM                            = 0xff\n\tIPV6_MAXOPTHDR                          = 0x800\n\tIPV6_MAXPACKET                          = 0xffff\n\tIPV6_MAX_GROUP_SRC_FILTER               = 0x200\n\tIPV6_MAX_MEMBERSHIPS                    = 0xfff\n\tIPV6_MAX_SOCK_SRC_FILTER                = 0x80\n\tIPV6_MIN_MEMBERSHIPS                    = 0x1f\n\tIPV6_MMTU                               = 0x500\n\tIPV6_MSFILTER                           = 0x4a\n\tIPV6_MULTICAST_HOPS                     = 0xa\n\tIPV6_MULTICAST_IF                       = 0x9\n\tIPV6_MULTICAST_LOOP                     = 0xb\n\tIPV6_NEXTHOP                            = 0x30\n\tIPV6_PATHMTU                            = 0x2c\n\tIPV6_PKTINFO                            = 0x2e\n\tIPV6_PORTRANGE                          = 0xe\n\tIPV6_PORTRANGE_DEFAULT                  = 0x0\n\tIPV6_PORTRANGE_HIGH                     = 0x1\n\tIPV6_PORTRANGE_LOW                      = 0x2\n\tIPV6_PREFER_TEMPADDR                    = 0x3f\n\tIPV6_RECVDSTOPTS                        = 0x28\n\tIPV6_RECVHOPLIMIT                       = 0x25\n\tIPV6_RECVHOPOPTS                        = 0x27\n\tIPV6_RECVPATHMTU                        = 0x2b\n\tIPV6_RECVPKTINFO                        = 0x3d\n\tIPV6_RECVRTHDR                          = 0x26\n\tIPV6_RECVTCLASS                         = 0x23\n\tIPV6_RTHDR                              = 0x33\n\tIPV6_RTHDRDSTOPTS                       = 0x39\n\tIPV6_RTHDR_LOOSE                        = 0x0\n\tIPV6_RTHDR_STRICT                       = 0x1\n\tIPV6_RTHDR_TYPE_0                       = 0x0\n\tIPV6_SOCKOPT_RESERVED1                  = 0x3\n\tIPV6_TCLASS                             = 0x24\n\tIPV6_UNICAST_HOPS                       = 0x4\n\tIPV6_USE_MIN_MTU                        = 0x2a\n\tIPV6_V6ONLY                             = 0x1b\n\tIPV6_VERSION                            = 0x60\n\tIPV6_VERSION_MASK                       = 0xf0\n\tIP_ADD_MEMBERSHIP                       = 0xc\n\tIP_ADD_SOURCE_MEMBERSHIP                = 0x46\n\tIP_BLOCK_SOURCE                         = 0x48\n\tIP_BOUND_IF                             = 0x19\n\tIP_DEFAULT_MULTICAST_LOOP               = 0x1\n\tIP_DEFAULT_MULTICAST_TTL                = 0x1\n\tIP_DF                                   = 0x4000\n\tIP_DONTFRAG                             = 0x1c\n\tIP_DROP_MEMBERSHIP                      = 0xd\n\tIP_DROP_SOURCE_MEMBERSHIP               = 0x47\n\tIP_DUMMYNET_CONFIGURE                   = 0x3c\n\tIP_DUMMYNET_DEL                         = 0x3d\n\tIP_DUMMYNET_FLUSH                       = 0x3e\n\tIP_DUMMYNET_GET                         = 0x40\n\tIP_FAITH                                = 0x16\n\tIP_FW_ADD                               = 0x28\n\tIP_FW_DEL                               = 0x29\n\tIP_FW_FLUSH                             = 0x2a\n\tIP_FW_GET                               = 0x2c\n\tIP_FW_RESETLOG                          = 0x2d\n\tIP_FW_ZERO                              = 0x2b\n\tIP_HDRINCL                              = 0x2\n\tIP_IPSEC_POLICY                         = 0x15\n\tIP_MAXPACKET                            = 0xffff\n\tIP_MAX_GROUP_SRC_FILTER                 = 0x200\n\tIP_MAX_MEMBERSHIPS                      = 0xfff\n\tIP_MAX_SOCK_MUTE_FILTER                 = 0x80\n\tIP_MAX_SOCK_SRC_FILTER                  = 0x80\n\tIP_MF                                   = 0x2000\n\tIP_MIN_MEMBERSHIPS                      = 0x1f\n\tIP_MSFILTER                             = 0x4a\n\tIP_MSS                                  = 0x240\n\tIP_MULTICAST_IF                         = 0x9\n\tIP_MULTICAST_IFINDEX                    = 0x42\n\tIP_MULTICAST_LOOP                       = 0xb\n\tIP_MULTICAST_TTL                        = 0xa\n\tIP_MULTICAST_VIF                        = 0xe\n\tIP_NAT__XXX                             = 0x37\n\tIP_OFFMASK                              = 0x1fff\n\tIP_OLD_FW_ADD                           = 0x32\n\tIP_OLD_FW_DEL                           = 0x33\n\tIP_OLD_FW_FLUSH                         = 0x34\n\tIP_OLD_FW_GET                           = 0x36\n\tIP_OLD_FW_RESETLOG                      = 0x38\n\tIP_OLD_FW_ZERO                          = 0x35\n\tIP_OPTIONS                              = 0x1\n\tIP_PKTINFO                              = 0x1a\n\tIP_PORTRANGE                            = 0x13\n\tIP_PORTRANGE_DEFAULT                    = 0x0\n\tIP_PORTRANGE_HIGH                       = 0x1\n\tIP_PORTRANGE_LOW                        = 0x2\n\tIP_RECVDSTADDR                          = 0x7\n\tIP_RECVIF                               = 0x14\n\tIP_RECVOPTS                             = 0x5\n\tIP_RECVPKTINFO                          = 0x1a\n\tIP_RECVRETOPTS                          = 0x6\n\tIP_RECVTOS                              = 0x1b\n\tIP_RECVTTL                              = 0x18\n\tIP_RETOPTS                              = 0x8\n\tIP_RF                                   = 0x8000\n\tIP_RSVP_OFF                             = 0x10\n\tIP_RSVP_ON                              = 0xf\n\tIP_RSVP_VIF_OFF                         = 0x12\n\tIP_RSVP_VIF_ON                          = 0x11\n\tIP_STRIPHDR                             = 0x17\n\tIP_TOS                                  = 0x3\n\tIP_TRAFFIC_MGT_BACKGROUND               = 0x41\n\tIP_TTL                                  = 0x4\n\tIP_UNBLOCK_SOURCE                       = 0x49\n\tISIG                                    = 0x80\n\tISTRIP                                  = 0x20\n\tIUTF8                                   = 0x4000\n\tIXANY                                   = 0x800\n\tIXOFF                                   = 0x400\n\tIXON                                    = 0x200\n\tKERN_HOSTNAME                           = 0xa\n\tKERN_OSRELEASE                          = 0x2\n\tKERN_OSTYPE                             = 0x1\n\tKERN_VERSION                            = 0x4\n\tLOCAL_PEERCRED                          = 0x1\n\tLOCAL_PEEREPID                          = 0x3\n\tLOCAL_PEEREUUID                         = 0x5\n\tLOCAL_PEERPID                           = 0x2\n\tLOCAL_PEERTOKEN                         = 0x6\n\tLOCAL_PEERUUID                          = 0x4\n\tLOCK_EX                                 = 0x2\n\tLOCK_NB                                 = 0x4\n\tLOCK_SH                                 = 0x1\n\tLOCK_UN                                 = 0x8\n\tMADV_CAN_REUSE                          = 0x9\n\tMADV_DONTNEED                           = 0x4\n\tMADV_FREE                               = 0x5\n\tMADV_FREE_REUSABLE                      = 0x7\n\tMADV_FREE_REUSE                         = 0x8\n\tMADV_NORMAL                             = 0x0\n\tMADV_PAGEOUT                            = 0xa\n\tMADV_RANDOM                             = 0x1\n\tMADV_SEQUENTIAL                         = 0x2\n\tMADV_WILLNEED                           = 0x3\n\tMADV_ZERO_WIRED_PAGES                   = 0x6\n\tMAP_32BIT                               = 0x8000\n\tMAP_ANON                                = 0x1000\n\tMAP_ANONYMOUS                           = 0x1000\n\tMAP_COPY                                = 0x2\n\tMAP_FILE                                = 0x0\n\tMAP_FIXED                               = 0x10\n\tMAP_HASSEMAPHORE                        = 0x200\n\tMAP_JIT                                 = 0x800\n\tMAP_NOCACHE                             = 0x400\n\tMAP_NOEXTEND                            = 0x100\n\tMAP_NORESERVE                           = 0x40\n\tMAP_PRIVATE                             = 0x2\n\tMAP_RENAME                              = 0x20\n\tMAP_RESERVED0080                        = 0x80\n\tMAP_RESILIENT_CODESIGN                  = 0x2000\n\tMAP_RESILIENT_MEDIA                     = 0x4000\n\tMAP_SHARED                              = 0x1\n\tMAP_TRANSLATED_ALLOW_EXECUTE            = 0x20000\n\tMAP_UNIX03                              = 0x40000\n\tMCAST_BLOCK_SOURCE                      = 0x54\n\tMCAST_EXCLUDE                           = 0x2\n\tMCAST_INCLUDE                           = 0x1\n\tMCAST_JOIN_GROUP                        = 0x50\n\tMCAST_JOIN_SOURCE_GROUP                 = 0x52\n\tMCAST_LEAVE_GROUP                       = 0x51\n\tMCAST_LEAVE_SOURCE_GROUP                = 0x53\n\tMCAST_UNBLOCK_SOURCE                    = 0x55\n\tMCAST_UNDEFINED                         = 0x0\n\tMCL_CURRENT                             = 0x1\n\tMCL_FUTURE                              = 0x2\n\tMNT_ASYNC                               = 0x40\n\tMNT_AUTOMOUNTED                         = 0x400000\n\tMNT_CMDFLAGS                            = 0xf0000\n\tMNT_CPROTECT                            = 0x80\n\tMNT_DEFWRITE                            = 0x2000000\n\tMNT_DONTBROWSE                          = 0x100000\n\tMNT_DOVOLFS                             = 0x8000\n\tMNT_DWAIT                               = 0x4\n\tMNT_EXPORTED                            = 0x100\n\tMNT_EXT_ROOT_DATA_VOL                   = 0x1\n\tMNT_FORCE                               = 0x80000\n\tMNT_IGNORE_OWNERSHIP                    = 0x200000\n\tMNT_JOURNALED                           = 0x800000\n\tMNT_LOCAL                               = 0x1000\n\tMNT_MULTILABEL                          = 0x4000000\n\tMNT_NOATIME                             = 0x10000000\n\tMNT_NOBLOCK                             = 0x20000\n\tMNT_NODEV                               = 0x10\n\tMNT_NOEXEC                              = 0x4\n\tMNT_NOSUID                              = 0x8\n\tMNT_NOUSERXATTR                         = 0x1000000\n\tMNT_NOWAIT                              = 0x2\n\tMNT_QUARANTINE                          = 0x400\n\tMNT_QUOTA                               = 0x2000\n\tMNT_RDONLY                              = 0x1\n\tMNT_RELOAD                              = 0x40000\n\tMNT_REMOVABLE                           = 0x200\n\tMNT_ROOTFS                              = 0x4000\n\tMNT_SNAPSHOT                            = 0x40000000\n\tMNT_STRICTATIME                         = 0x80000000\n\tMNT_SYNCHRONOUS                         = 0x2\n\tMNT_UNION                               = 0x20\n\tMNT_UNKNOWNPERMISSIONS                  = 0x200000\n\tMNT_UPDATE                              = 0x10000\n\tMNT_VISFLAGMASK                         = 0xd7f0f7ff\n\tMNT_WAIT                                = 0x1\n\tMSG_CTRUNC                              = 0x20\n\tMSG_DONTROUTE                           = 0x4\n\tMSG_DONTWAIT                            = 0x80\n\tMSG_EOF                                 = 0x100\n\tMSG_EOR                                 = 0x8\n\tMSG_FLUSH                               = 0x400\n\tMSG_HAVEMORE                            = 0x2000\n\tMSG_HOLD                                = 0x800\n\tMSG_NEEDSA                              = 0x10000\n\tMSG_NOSIGNAL                            = 0x80000\n\tMSG_OOB                                 = 0x1\n\tMSG_PEEK                                = 0x2\n\tMSG_RCVMORE                             = 0x4000\n\tMSG_SEND                                = 0x1000\n\tMSG_TRUNC                               = 0x10\n\tMSG_WAITALL                             = 0x40\n\tMSG_WAITSTREAM                          = 0x200\n\tMS_ASYNC                                = 0x1\n\tMS_DEACTIVATE                           = 0x8\n\tMS_INVALIDATE                           = 0x2\n\tMS_KILLPAGES                            = 0x4\n\tMS_SYNC                                 = 0x10\n\tNAME_MAX                                = 0xff\n\tNET_RT_DUMP                             = 0x1\n\tNET_RT_DUMP2                            = 0x7\n\tNET_RT_FLAGS                            = 0x2\n\tNET_RT_FLAGS_PRIV                       = 0xa\n\tNET_RT_IFLIST                           = 0x3\n\tNET_RT_IFLIST2                          = 0x6\n\tNET_RT_MAXID                            = 0xb\n\tNET_RT_STAT                             = 0x4\n\tNET_RT_TRASH                            = 0x5\n\tNFDBITS                                 = 0x20\n\tNL0                                     = 0x0\n\tNL1                                     = 0x100\n\tNL2                                     = 0x200\n\tNL3                                     = 0x300\n\tNLDLY                                   = 0x300\n\tNOFLSH                                  = 0x80000000\n\tNOKERNINFO                              = 0x2000000\n\tNOTE_ABSOLUTE                           = 0x8\n\tNOTE_ATTRIB                             = 0x8\n\tNOTE_BACKGROUND                         = 0x40\n\tNOTE_CHILD                              = 0x4\n\tNOTE_CRITICAL                           = 0x20\n\tNOTE_DELETE                             = 0x1\n\tNOTE_EXEC                               = 0x20000000\n\tNOTE_EXIT                               = 0x80000000\n\tNOTE_EXITSTATUS                         = 0x4000000\n\tNOTE_EXIT_CSERROR                       = 0x40000\n\tNOTE_EXIT_DECRYPTFAIL                   = 0x10000\n\tNOTE_EXIT_DETAIL                        = 0x2000000\n\tNOTE_EXIT_DETAIL_MASK                   = 0x70000\n\tNOTE_EXIT_MEMORY                        = 0x20000\n\tNOTE_EXIT_REPARENTED                    = 0x80000\n\tNOTE_EXTEND                             = 0x4\n\tNOTE_FFAND                              = 0x40000000\n\tNOTE_FFCOPY                             = 0xc0000000\n\tNOTE_FFCTRLMASK                         = 0xc0000000\n\tNOTE_FFLAGSMASK                         = 0xffffff\n\tNOTE_FFNOP                              = 0x0\n\tNOTE_FFOR                               = 0x80000000\n\tNOTE_FORK                               = 0x40000000\n\tNOTE_FUNLOCK                            = 0x100\n\tNOTE_LEEWAY                             = 0x10\n\tNOTE_LINK                               = 0x10\n\tNOTE_LOWAT                              = 0x1\n\tNOTE_MACHTIME                           = 0x100\n\tNOTE_MACH_CONTINUOUS_TIME               = 0x80\n\tNOTE_NONE                               = 0x80\n\tNOTE_NSECONDS                           = 0x4\n\tNOTE_OOB                                = 0x2\n\tNOTE_PCTRLMASK                          = -0x100000\n\tNOTE_PDATAMASK                          = 0xfffff\n\tNOTE_REAP                               = 0x10000000\n\tNOTE_RENAME                             = 0x20\n\tNOTE_REVOKE                             = 0x40\n\tNOTE_SECONDS                            = 0x1\n\tNOTE_SIGNAL                             = 0x8000000\n\tNOTE_TRACK                              = 0x1\n\tNOTE_TRACKERR                           = 0x2\n\tNOTE_TRIGGER                            = 0x1000000\n\tNOTE_USECONDS                           = 0x2\n\tNOTE_VM_ERROR                           = 0x10000000\n\tNOTE_VM_PRESSURE                        = 0x80000000\n\tNOTE_VM_PRESSURE_SUDDEN_TERMINATE       = 0x20000000\n\tNOTE_VM_PRESSURE_TERMINATE              = 0x40000000\n\tNOTE_WRITE                              = 0x2\n\tOCRNL                                   = 0x10\n\tOFDEL                                   = 0x20000\n\tOFILL                                   = 0x80\n\tONLCR                                   = 0x2\n\tONLRET                                  = 0x40\n\tONOCR                                   = 0x20\n\tONOEOT                                  = 0x8\n\tOPOST                                   = 0x1\n\tOXTABS                                  = 0x4\n\tO_ACCMODE                               = 0x3\n\tO_ALERT                                 = 0x20000000\n\tO_APPEND                                = 0x8\n\tO_ASYNC                                 = 0x40\n\tO_CLOEXEC                               = 0x1000000\n\tO_CREAT                                 = 0x200\n\tO_DIRECTORY                             = 0x100000\n\tO_DP_GETRAWENCRYPTED                    = 0x1\n\tO_DP_GETRAWUNENCRYPTED                  = 0x2\n\tO_DSYNC                                 = 0x400000\n\tO_EVTONLY                               = 0x8000\n\tO_EXCL                                  = 0x800\n\tO_EXLOCK                                = 0x20\n\tO_FSYNC                                 = 0x80\n\tO_NDELAY                                = 0x4\n\tO_NOCTTY                                = 0x20000\n\tO_NOFOLLOW                              = 0x100\n\tO_NOFOLLOW_ANY                          = 0x20000000\n\tO_NONBLOCK                              = 0x4\n\tO_POPUP                                 = 0x80000000\n\tO_RDONLY                                = 0x0\n\tO_RDWR                                  = 0x2\n\tO_SHLOCK                                = 0x10\n\tO_SYMLINK                               = 0x200000\n\tO_SYNC                                  = 0x80\n\tO_TRUNC                                 = 0x400\n\tO_WRONLY                                = 0x1\n\tPARENB                                  = 0x1000\n\tPARMRK                                  = 0x8\n\tPARODD                                  = 0x2000\n\tPENDIN                                  = 0x20000000\n\tPRIO_PGRP                               = 0x1\n\tPRIO_PROCESS                            = 0x0\n\tPRIO_USER                               = 0x2\n\tPROT_EXEC                               = 0x4\n\tPROT_NONE                               = 0x0\n\tPROT_READ                               = 0x1\n\tPROT_WRITE                              = 0x2\n\tPT_ATTACH                               = 0xa\n\tPT_ATTACHEXC                            = 0xe\n\tPT_CONTINUE                             = 0x7\n\tPT_DENY_ATTACH                          = 0x1f\n\tPT_DETACH                               = 0xb\n\tPT_FIRSTMACH                            = 0x20\n\tPT_FORCEQUOTA                           = 0x1e\n\tPT_KILL                                 = 0x8\n\tPT_READ_D                               = 0x2\n\tPT_READ_I                               = 0x1\n\tPT_READ_U                               = 0x3\n\tPT_SIGEXC                               = 0xc\n\tPT_STEP                                 = 0x9\n\tPT_THUPDATE                             = 0xd\n\tPT_TRACE_ME                             = 0x0\n\tPT_WRITE_D                              = 0x5\n\tPT_WRITE_I                              = 0x4\n\tPT_WRITE_U                              = 0x6\n\tRENAME_EXCL                             = 0x4\n\tRENAME_NOFOLLOW_ANY                     = 0x10\n\tRENAME_RESERVED1                        = 0x8\n\tRENAME_SECLUDE                          = 0x1\n\tRENAME_SWAP                             = 0x2\n\tRLIMIT_AS                               = 0x5\n\tRLIMIT_CORE                             = 0x4\n\tRLIMIT_CPU                              = 0x0\n\tRLIMIT_CPU_USAGE_MONITOR                = 0x2\n\tRLIMIT_DATA                             = 0x2\n\tRLIMIT_FSIZE                            = 0x1\n\tRLIMIT_MEMLOCK                          = 0x6\n\tRLIMIT_NOFILE                           = 0x8\n\tRLIMIT_NPROC                            = 0x7\n\tRLIMIT_RSS                              = 0x5\n\tRLIMIT_STACK                            = 0x3\n\tRLIM_INFINITY                           = 0x7fffffffffffffff\n\tRTAX_AUTHOR                             = 0x6\n\tRTAX_BRD                                = 0x7\n\tRTAX_DST                                = 0x0\n\tRTAX_GATEWAY                            = 0x1\n\tRTAX_GENMASK                            = 0x3\n\tRTAX_IFA                                = 0x5\n\tRTAX_IFP                                = 0x4\n\tRTAX_MAX                                = 0x8\n\tRTAX_NETMASK                            = 0x2\n\tRTA_AUTHOR                              = 0x40\n\tRTA_BRD                                 = 0x80\n\tRTA_DST                                 = 0x1\n\tRTA_GATEWAY                             = 0x2\n\tRTA_GENMASK                             = 0x8\n\tRTA_IFA                                 = 0x20\n\tRTA_IFP                                 = 0x10\n\tRTA_NETMASK                             = 0x4\n\tRTF_BLACKHOLE                           = 0x1000\n\tRTF_BROADCAST                           = 0x400000\n\tRTF_CLONING                             = 0x100\n\tRTF_CONDEMNED                           = 0x2000000\n\tRTF_DEAD                                = 0x20000000\n\tRTF_DELCLONE                            = 0x80\n\tRTF_DONE                                = 0x40\n\tRTF_DYNAMIC                             = 0x10\n\tRTF_GATEWAY                             = 0x2\n\tRTF_GLOBAL                              = 0x40000000\n\tRTF_HOST                                = 0x4\n\tRTF_IFREF                               = 0x4000000\n\tRTF_IFSCOPE                             = 0x1000000\n\tRTF_LLDATA                              = 0x400\n\tRTF_LLINFO                              = 0x400\n\tRTF_LOCAL                               = 0x200000\n\tRTF_MODIFIED                            = 0x20\n\tRTF_MULTICAST                           = 0x800000\n\tRTF_NOIFREF                             = 0x2000\n\tRTF_PINNED                              = 0x100000\n\tRTF_PRCLONING                           = 0x10000\n\tRTF_PROTO1                              = 0x8000\n\tRTF_PROTO2                              = 0x4000\n\tRTF_PROTO3                              = 0x40000\n\tRTF_PROXY                               = 0x8000000\n\tRTF_REJECT                              = 0x8\n\tRTF_ROUTER                              = 0x10000000\n\tRTF_STATIC                              = 0x800\n\tRTF_UP                                  = 0x1\n\tRTF_WASCLONED                           = 0x20000\n\tRTF_XRESOLVE                            = 0x200\n\tRTM_ADD                                 = 0x1\n\tRTM_CHANGE                              = 0x3\n\tRTM_DELADDR                             = 0xd\n\tRTM_DELETE                              = 0x2\n\tRTM_DELMADDR                            = 0x10\n\tRTM_GET                                 = 0x4\n\tRTM_GET2                                = 0x14\n\tRTM_IFINFO                              = 0xe\n\tRTM_IFINFO2                             = 0x12\n\tRTM_LOCK                                = 0x8\n\tRTM_LOSING                              = 0x5\n\tRTM_MISS                                = 0x7\n\tRTM_NEWADDR                             = 0xc\n\tRTM_NEWMADDR                            = 0xf\n\tRTM_NEWMADDR2                           = 0x13\n\tRTM_OLDADD                              = 0x9\n\tRTM_OLDDEL                              = 0xa\n\tRTM_REDIRECT                            = 0x6\n\tRTM_RESOLVE                             = 0xb\n\tRTM_RTTUNIT                             = 0xf4240\n\tRTM_VERSION                             = 0x5\n\tRTV_EXPIRE                              = 0x4\n\tRTV_HOPCOUNT                            = 0x2\n\tRTV_MTU                                 = 0x1\n\tRTV_RPIPE                               = 0x8\n\tRTV_RTT                                 = 0x40\n\tRTV_RTTVAR                              = 0x80\n\tRTV_SPIPE                               = 0x10\n\tRTV_SSTHRESH                            = 0x20\n\tRUSAGE_CHILDREN                         = -0x1\n\tRUSAGE_SELF                             = 0x0\n\tSAE_ASSOCID_ALL                         = 0xffffffff\n\tSAE_ASSOCID_ANY                         = 0x0\n\tSAE_CONNID_ALL                          = 0xffffffff\n\tSAE_CONNID_ANY                          = 0x0\n\tSCM_CREDS                               = 0x3\n\tSCM_RIGHTS                              = 0x1\n\tSCM_TIMESTAMP                           = 0x2\n\tSCM_TIMESTAMP_MONOTONIC                 = 0x4\n\tSEEK_CUR                                = 0x1\n\tSEEK_DATA                               = 0x4\n\tSEEK_END                                = 0x2\n\tSEEK_HOLE                               = 0x3\n\tSEEK_SET                                = 0x0\n\tSF_APPEND                               = 0x40000\n\tSF_ARCHIVED                             = 0x10000\n\tSF_DATALESS                             = 0x40000000\n\tSF_FIRMLINK                             = 0x800000\n\tSF_IMMUTABLE                            = 0x20000\n\tSF_NOUNLINK                             = 0x100000\n\tSF_RESTRICTED                           = 0x80000\n\tSF_SETTABLE                             = 0x3fff0000\n\tSF_SUPPORTED                            = 0x9f0000\n\tSF_SYNTHETIC                            = 0xc0000000\n\tSHUT_RD                                 = 0x0\n\tSHUT_RDWR                               = 0x2\n\tSHUT_WR                                 = 0x1\n\tSIOCADDMULTI                            = 0x80206931\n\tSIOCAIFADDR                             = 0x8040691a\n\tSIOCARPIPLL                             = 0xc0206928\n\tSIOCATMARK                              = 0x40047307\n\tSIOCAUTOADDR                            = 0xc0206926\n\tSIOCAUTONETMASK                         = 0x80206927\n\tSIOCDELMULTI                            = 0x80206932\n\tSIOCDIFADDR                             = 0x80206919\n\tSIOCDIFPHYADDR                          = 0x80206941\n\tSIOCGDRVSPEC                            = 0xc028697b\n\tSIOCGETVLAN                             = 0xc020697f\n\tSIOCGHIWAT                              = 0x40047301\n\tSIOCGIF6LOWPAN                          = 0xc02069c5\n\tSIOCGIFADDR                             = 0xc0206921\n\tSIOCGIFALTMTU                           = 0xc0206948\n\tSIOCGIFASYNCMAP                         = 0xc020697c\n\tSIOCGIFBOND                             = 0xc0206947\n\tSIOCGIFBRDADDR                          = 0xc0206923\n\tSIOCGIFCAP                              = 0xc020695b\n\tSIOCGIFCONF                             = 0xc00c6924\n\tSIOCGIFDEVMTU                           = 0xc0206944\n\tSIOCGIFDSTADDR                          = 0xc0206922\n\tSIOCGIFFLAGS                            = 0xc0206911\n\tSIOCGIFFUNCTIONALTYPE                   = 0xc02069ad\n\tSIOCGIFGENERIC                          = 0xc020693a\n\tSIOCGIFKPI                              = 0xc0206987\n\tSIOCGIFMAC                              = 0xc0206982\n\tSIOCGIFMEDIA                            = 0xc02c6938\n\tSIOCGIFMETRIC                           = 0xc0206917\n\tSIOCGIFMTU                              = 0xc0206933\n\tSIOCGIFNETMASK                          = 0xc0206925\n\tSIOCGIFPDSTADDR                         = 0xc0206940\n\tSIOCGIFPHYS                             = 0xc0206935\n\tSIOCGIFPSRCADDR                         = 0xc020693f\n\tSIOCGIFSTATUS                           = 0xc331693d\n\tSIOCGIFVLAN                             = 0xc020697f\n\tSIOCGIFWAKEFLAGS                        = 0xc0206988\n\tSIOCGIFXMEDIA                           = 0xc02c6948\n\tSIOCGLOWAT                              = 0x40047303\n\tSIOCGPGRP                               = 0x40047309\n\tSIOCIFCREATE                            = 0xc0206978\n\tSIOCIFCREATE2                           = 0xc020697a\n\tSIOCIFDESTROY                           = 0x80206979\n\tSIOCIFGCLONERS                          = 0xc0106981\n\tSIOCRSLVMULTI                           = 0xc010693b\n\tSIOCSDRVSPEC                            = 0x8028697b\n\tSIOCSETVLAN                             = 0x8020697e\n\tSIOCSHIWAT                              = 0x80047300\n\tSIOCSIF6LOWPAN                          = 0x802069c4\n\tSIOCSIFADDR                             = 0x8020690c\n\tSIOCSIFALTMTU                           = 0x80206945\n\tSIOCSIFASYNCMAP                         = 0x8020697d\n\tSIOCSIFBOND                             = 0x80206946\n\tSIOCSIFBRDADDR                          = 0x80206913\n\tSIOCSIFCAP                              = 0x8020695a\n\tSIOCSIFDSTADDR                          = 0x8020690e\n\tSIOCSIFFLAGS                            = 0x80206910\n\tSIOCSIFGENERIC                          = 0x80206939\n\tSIOCSIFKPI                              = 0x80206986\n\tSIOCSIFLLADDR                           = 0x8020693c\n\tSIOCSIFMAC                              = 0x80206983\n\tSIOCSIFMEDIA                            = 0xc0206937\n\tSIOCSIFMETRIC                           = 0x80206918\n\tSIOCSIFMTU                              = 0x80206934\n\tSIOCSIFNETMASK                          = 0x80206916\n\tSIOCSIFPHYADDR                          = 0x8040693e\n\tSIOCSIFPHYS                             = 0x80206936\n\tSIOCSIFVLAN                             = 0x8020697e\n\tSIOCSLOWAT                              = 0x80047302\n\tSIOCSPGRP                               = 0x80047308\n\tSOCK_DGRAM                              = 0x2\n\tSOCK_MAXADDRLEN                         = 0xff\n\tSOCK_RAW                                = 0x3\n\tSOCK_RDM                                = 0x4\n\tSOCK_SEQPACKET                          = 0x5\n\tSOCK_STREAM                             = 0x1\n\tSOL_LOCAL                               = 0x0\n\tSOL_SOCKET                              = 0xffff\n\tSOMAXCONN                               = 0x80\n\tSO_ACCEPTCONN                           = 0x2\n\tSO_BROADCAST                            = 0x20\n\tSO_DEBUG                                = 0x1\n\tSO_DONTROUTE                            = 0x10\n\tSO_DONTTRUNC                            = 0x2000\n\tSO_ERROR                                = 0x1007\n\tSO_KEEPALIVE                            = 0x8\n\tSO_LABEL                                = 0x1010\n\tSO_LINGER                               = 0x80\n\tSO_LINGER_SEC                           = 0x1080\n\tSO_NETSVC_MARKING_LEVEL                 = 0x1119\n\tSO_NET_SERVICE_TYPE                     = 0x1116\n\tSO_NKE                                  = 0x1021\n\tSO_NOADDRERR                            = 0x1023\n\tSO_NOSIGPIPE                            = 0x1022\n\tSO_NOTIFYCONFLICT                       = 0x1026\n\tSO_NP_EXTENSIONS                        = 0x1083\n\tSO_NREAD                                = 0x1020\n\tSO_NUMRCVPKT                            = 0x1112\n\tSO_NWRITE                               = 0x1024\n\tSO_OOBINLINE                            = 0x100\n\tSO_PEERLABEL                            = 0x1011\n\tSO_RANDOMPORT                           = 0x1082\n\tSO_RCVBUF                               = 0x1002\n\tSO_RCVLOWAT                             = 0x1004\n\tSO_RCVTIMEO                             = 0x1006\n\tSO_REUSEADDR                            = 0x4\n\tSO_REUSEPORT                            = 0x200\n\tSO_REUSESHAREUID                        = 0x1025\n\tSO_SNDBUF                               = 0x1001\n\tSO_SNDLOWAT                             = 0x1003\n\tSO_SNDTIMEO                             = 0x1005\n\tSO_TIMESTAMP                            = 0x400\n\tSO_TIMESTAMP_MONOTONIC                  = 0x800\n\tSO_TRACKER_ATTRIBUTE_FLAGS_APP_APPROVED = 0x1\n\tSO_TRACKER_ATTRIBUTE_FLAGS_DOMAIN_SHORT = 0x4\n\tSO_TRACKER_ATTRIBUTE_FLAGS_TRACKER      = 0x2\n\tSO_TRACKER_TRANSPARENCY_VERSION         = 0x3\n\tSO_TYPE                                 = 0x1008\n\tSO_UPCALLCLOSEWAIT                      = 0x1027\n\tSO_USELOOPBACK                          = 0x40\n\tSO_WANTMORE                             = 0x4000\n\tSO_WANTOOBFLAG                          = 0x8000\n\tS_IEXEC                                 = 0x40\n\tS_IFBLK                                 = 0x6000\n\tS_IFCHR                                 = 0x2000\n\tS_IFDIR                                 = 0x4000\n\tS_IFIFO                                 = 0x1000\n\tS_IFLNK                                 = 0xa000\n\tS_IFMT                                  = 0xf000\n\tS_IFREG                                 = 0x8000\n\tS_IFSOCK                                = 0xc000\n\tS_IFWHT                                 = 0xe000\n\tS_IREAD                                 = 0x100\n\tS_IRGRP                                 = 0x20\n\tS_IROTH                                 = 0x4\n\tS_IRUSR                                 = 0x100\n\tS_IRWXG                                 = 0x38\n\tS_IRWXO                                 = 0x7\n\tS_IRWXU                                 = 0x1c0\n\tS_ISGID                                 = 0x400\n\tS_ISTXT                                 = 0x200\n\tS_ISUID                                 = 0x800\n\tS_ISVTX                                 = 0x200\n\tS_IWGRP                                 = 0x10\n\tS_IWOTH                                 = 0x2\n\tS_IWRITE                                = 0x80\n\tS_IWUSR                                 = 0x80\n\tS_IXGRP                                 = 0x8\n\tS_IXOTH                                 = 0x1\n\tS_IXUSR                                 = 0x40\n\tTAB0                                    = 0x0\n\tTAB1                                    = 0x400\n\tTAB2                                    = 0x800\n\tTAB3                                    = 0x4\n\tTABDLY                                  = 0xc04\n\tTCIFLUSH                                = 0x1\n\tTCIOFF                                  = 0x3\n\tTCIOFLUSH                               = 0x3\n\tTCION                                   = 0x4\n\tTCOFLUSH                                = 0x2\n\tTCOOFF                                  = 0x1\n\tTCOON                                   = 0x2\n\tTCPOPT_CC                               = 0xb\n\tTCPOPT_CCECHO                           = 0xd\n\tTCPOPT_CCNEW                            = 0xc\n\tTCPOPT_EOL                              = 0x0\n\tTCPOPT_FASTOPEN                         = 0x22\n\tTCPOPT_MAXSEG                           = 0x2\n\tTCPOPT_NOP                              = 0x1\n\tTCPOPT_SACK                             = 0x5\n\tTCPOPT_SACK_HDR                         = 0x1010500\n\tTCPOPT_SACK_PERMITTED                   = 0x4\n\tTCPOPT_SACK_PERMIT_HDR                  = 0x1010402\n\tTCPOPT_SIGNATURE                        = 0x13\n\tTCPOPT_TIMESTAMP                        = 0x8\n\tTCPOPT_TSTAMP_HDR                       = 0x101080a\n\tTCPOPT_WINDOW                           = 0x3\n\tTCP_CONNECTIONTIMEOUT                   = 0x20\n\tTCP_CONNECTION_INFO                     = 0x106\n\tTCP_ENABLE_ECN                          = 0x104\n\tTCP_FASTOPEN                            = 0x105\n\tTCP_KEEPALIVE                           = 0x10\n\tTCP_KEEPCNT                             = 0x102\n\tTCP_KEEPINTVL                           = 0x101\n\tTCP_MAXHLEN                             = 0x3c\n\tTCP_MAXOLEN                             = 0x28\n\tTCP_MAXSEG                              = 0x2\n\tTCP_MAXWIN                              = 0xffff\n\tTCP_MAX_SACK                            = 0x4\n\tTCP_MAX_WINSHIFT                        = 0xe\n\tTCP_MINMSS                              = 0xd8\n\tTCP_MSS                                 = 0x200\n\tTCP_NODELAY                             = 0x1\n\tTCP_NOOPT                               = 0x8\n\tTCP_NOPUSH                              = 0x4\n\tTCP_NOTSENT_LOWAT                       = 0x201\n\tTCP_RXT_CONNDROPTIME                    = 0x80\n\tTCP_RXT_FINDROP                         = 0x100\n\tTCP_SENDMOREACKS                        = 0x103\n\tTCSAFLUSH                               = 0x2\n\tTIOCCBRK                                = 0x2000747a\n\tTIOCCDTR                                = 0x20007478\n\tTIOCCONS                                = 0x80047462\n\tTIOCDCDTIMESTAMP                        = 0x40107458\n\tTIOCDRAIN                               = 0x2000745e\n\tTIOCDSIMICROCODE                        = 0x20007455\n\tTIOCEXCL                                = 0x2000740d\n\tTIOCEXT                                 = 0x80047460\n\tTIOCFLUSH                               = 0x80047410\n\tTIOCGDRAINWAIT                          = 0x40047456\n\tTIOCGETA                                = 0x40487413\n\tTIOCGETD                                = 0x4004741a\n\tTIOCGPGRP                               = 0x40047477\n\tTIOCGWINSZ                              = 0x40087468\n\tTIOCIXOFF                               = 0x20007480\n\tTIOCIXON                                = 0x20007481\n\tTIOCMBIC                                = 0x8004746b\n\tTIOCMBIS                                = 0x8004746c\n\tTIOCMGDTRWAIT                           = 0x4004745a\n\tTIOCMGET                                = 0x4004746a\n\tTIOCMODG                                = 0x40047403\n\tTIOCMODS                                = 0x80047404\n\tTIOCMSDTRWAIT                           = 0x8004745b\n\tTIOCMSET                                = 0x8004746d\n\tTIOCM_CAR                               = 0x40\n\tTIOCM_CD                                = 0x40\n\tTIOCM_CTS                               = 0x20\n\tTIOCM_DSR                               = 0x100\n\tTIOCM_DTR                               = 0x2\n\tTIOCM_LE                                = 0x1\n\tTIOCM_RI                                = 0x80\n\tTIOCM_RNG                               = 0x80\n\tTIOCM_RTS                               = 0x4\n\tTIOCM_SR                                = 0x10\n\tTIOCM_ST                                = 0x8\n\tTIOCNOTTY                               = 0x20007471\n\tTIOCNXCL                                = 0x2000740e\n\tTIOCOUTQ                                = 0x40047473\n\tTIOCPKT                                 = 0x80047470\n\tTIOCPKT_DATA                            = 0x0\n\tTIOCPKT_DOSTOP                          = 0x20\n\tTIOCPKT_FLUSHREAD                       = 0x1\n\tTIOCPKT_FLUSHWRITE                      = 0x2\n\tTIOCPKT_IOCTL                           = 0x40\n\tTIOCPKT_NOSTOP                          = 0x10\n\tTIOCPKT_START                           = 0x8\n\tTIOCPKT_STOP                            = 0x4\n\tTIOCPTYGNAME                            = 0x40807453\n\tTIOCPTYGRANT                            = 0x20007454\n\tTIOCPTYUNLK                             = 0x20007452\n\tTIOCREMOTE                              = 0x80047469\n\tTIOCSBRK                                = 0x2000747b\n\tTIOCSCONS                               = 0x20007463\n\tTIOCSCTTY                               = 0x20007461\n\tTIOCSDRAINWAIT                          = 0x80047457\n\tTIOCSDTR                                = 0x20007479\n\tTIOCSETA                                = 0x80487414\n\tTIOCSETAF                               = 0x80487416\n\tTIOCSETAW                               = 0x80487415\n\tTIOCSETD                                = 0x8004741b\n\tTIOCSIG                                 = 0x2000745f\n\tTIOCSPGRP                               = 0x80047476\n\tTIOCSTART                               = 0x2000746e\n\tTIOCSTAT                                = 0x20007465\n\tTIOCSTI                                 = 0x80017472\n\tTIOCSTOP                                = 0x2000746f\n\tTIOCSWINSZ                              = 0x80087467\n\tTIOCTIMESTAMP                           = 0x40107459\n\tTIOCUCNTL                               = 0x80047466\n\tTOSTOP                                  = 0x400000\n\tUF_APPEND                               = 0x4\n\tUF_COMPRESSED                           = 0x20\n\tUF_DATAVAULT                            = 0x80\n\tUF_HIDDEN                               = 0x8000\n\tUF_IMMUTABLE                            = 0x2\n\tUF_NODUMP                               = 0x1\n\tUF_OPAQUE                               = 0x8\n\tUF_SETTABLE                             = 0xffff\n\tUF_TRACKED                              = 0x40\n\tVDISCARD                                = 0xf\n\tVDSUSP                                  = 0xb\n\tVEOF                                    = 0x0\n\tVEOL                                    = 0x1\n\tVEOL2                                   = 0x2\n\tVERASE                                  = 0x3\n\tVINTR                                   = 0x8\n\tVKILL                                   = 0x5\n\tVLNEXT                                  = 0xe\n\tVMADDR_CID_ANY                          = 0xffffffff\n\tVMADDR_CID_HOST                         = 0x2\n\tVMADDR_CID_HYPERVISOR                   = 0x0\n\tVMADDR_CID_RESERVED                     = 0x1\n\tVMADDR_PORT_ANY                         = 0xffffffff\n\tVMIN                                    = 0x10\n\tVM_LOADAVG                              = 0x2\n\tVM_MACHFACTOR                           = 0x4\n\tVM_MAXID                                = 0x6\n\tVM_METER                                = 0x1\n\tVM_SWAPUSAGE                            = 0x5\n\tVQUIT                                   = 0x9\n\tVREPRINT                                = 0x6\n\tVSTART                                  = 0xc\n\tVSTATUS                                 = 0x12\n\tVSTOP                                   = 0xd\n\tVSUSP                                   = 0xa\n\tVT0                                     = 0x0\n\tVT1                                     = 0x10000\n\tVTDLY                                   = 0x10000\n\tVTIME                                   = 0x11\n\tVWERASE                                 = 0x4\n\tWCONTINUED                              = 0x10\n\tWCOREFLAG                               = 0x80\n\tWEXITED                                 = 0x4\n\tWNOHANG                                 = 0x1\n\tWNOWAIT                                 = 0x20\n\tWORDSIZE                                = 0x40\n\tWSTOPPED                                = 0x8\n\tWUNTRACED                               = 0x2\n\tXATTR_CREATE                            = 0x2\n\tXATTR_NODEFAULT                         = 0x10\n\tXATTR_NOFOLLOW                          = 0x1\n\tXATTR_NOSECURITY                        = 0x8\n\tXATTR_REPLACE                           = 0x4\n\tXATTR_SHOWCOMPRESSION                   = 0x20\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADARCH        = syscall.Errno(0x56)\n\tEBADEXEC        = syscall.Errno(0x55)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMACHO       = syscall.Errno(0x58)\n\tEBADMSG         = syscall.Errno(0x5e)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x59)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDEVERR         = syscall.Errno(0x53)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x5a)\n\tEILSEQ          = syscall.Errno(0x5c)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x6a)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5f)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x5d)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODATA         = syscall.Errno(0x60)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x61)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x5b)\n\tENOPOLICY       = syscall.Errno(0x67)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x62)\n\tENOSTR          = syscall.Errno(0x63)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x68)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x2d)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x66)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEOWNERDEAD      = syscall.Errno(0x69)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x64)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tEPWROFF         = syscall.Errno(0x52)\n\tEQFULL          = syscall.Errno(0x6a)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHLIBVERS      = syscall.Errno(0x57)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIME           = syscall.Errno(0x65)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"ENOTSUP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EPWROFF\", \"device power is off\"},\n\t{83, \"EDEVERR\", \"device error\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"EBADEXEC\", \"bad executable (or shared library)\"},\n\t{86, \"EBADARCH\", \"bad CPU type in executable\"},\n\t{87, \"ESHLIBVERS\", \"shared library version mismatch\"},\n\t{88, \"EBADMACHO\", \"malformed Mach-o file\"},\n\t{89, \"ECANCELED\", \"operation canceled\"},\n\t{90, \"EIDRM\", \"identifier removed\"},\n\t{91, \"ENOMSG\", \"no message of desired type\"},\n\t{92, \"EILSEQ\", \"illegal byte sequence\"},\n\t{93, \"ENOATTR\", \"attribute not found\"},\n\t{94, \"EBADMSG\", \"bad message\"},\n\t{95, \"EMULTIHOP\", \"EMULTIHOP (Reserved)\"},\n\t{96, \"ENODATA\", \"no message available on STREAM\"},\n\t{97, \"ENOLINK\", \"ENOLINK (Reserved)\"},\n\t{98, \"ENOSR\", \"no STREAM resources\"},\n\t{99, \"ENOSTR\", \"not a STREAM\"},\n\t{100, \"EPROTO\", \"protocol error\"},\n\t{101, \"ETIME\", \"STREAM ioctl timeout\"},\n\t{102, \"EOPNOTSUPP\", \"operation not supported on socket\"},\n\t{103, \"ENOPOLICY\", \"policy not found\"},\n\t{104, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{105, \"EOWNERDEAD\", \"previous owner died\"},\n\t{106, \"EQFULL\", \"interface output queue is full\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGABRT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && darwin\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                            = 0x10\n\tAF_CCITT                                = 0xa\n\tAF_CHAOS                                = 0x5\n\tAF_CNT                                  = 0x15\n\tAF_COIP                                 = 0x14\n\tAF_DATAKIT                              = 0x9\n\tAF_DECnet                               = 0xc\n\tAF_DLI                                  = 0xd\n\tAF_E164                                 = 0x1c\n\tAF_ECMA                                 = 0x8\n\tAF_HYLINK                               = 0xf\n\tAF_IEEE80211                            = 0x25\n\tAF_IMPLINK                              = 0x3\n\tAF_INET                                 = 0x2\n\tAF_INET6                                = 0x1e\n\tAF_IPX                                  = 0x17\n\tAF_ISDN                                 = 0x1c\n\tAF_ISO                                  = 0x7\n\tAF_LAT                                  = 0xe\n\tAF_LINK                                 = 0x12\n\tAF_LOCAL                                = 0x1\n\tAF_MAX                                  = 0x29\n\tAF_NATM                                 = 0x1f\n\tAF_NDRV                                 = 0x1b\n\tAF_NETBIOS                              = 0x21\n\tAF_NS                                   = 0x6\n\tAF_OSI                                  = 0x7\n\tAF_PPP                                  = 0x22\n\tAF_PUP                                  = 0x4\n\tAF_RESERVED_36                          = 0x24\n\tAF_ROUTE                                = 0x11\n\tAF_SIP                                  = 0x18\n\tAF_SNA                                  = 0xb\n\tAF_SYSTEM                               = 0x20\n\tAF_SYS_CONTROL                          = 0x2\n\tAF_UNIX                                 = 0x1\n\tAF_UNSPEC                               = 0x0\n\tAF_UTUN                                 = 0x26\n\tAF_VSOCK                                = 0x28\n\tALTWERASE                               = 0x200\n\tATTR_BIT_MAP_COUNT                      = 0x5\n\tATTR_CMN_ACCESSMASK                     = 0x20000\n\tATTR_CMN_ACCTIME                        = 0x1000\n\tATTR_CMN_ADDEDTIME                      = 0x10000000\n\tATTR_CMN_BKUPTIME                       = 0x2000\n\tATTR_CMN_CHGTIME                        = 0x800\n\tATTR_CMN_CRTIME                         = 0x200\n\tATTR_CMN_DATA_PROTECT_FLAGS             = 0x40000000\n\tATTR_CMN_DEVID                          = 0x2\n\tATTR_CMN_DOCUMENT_ID                    = 0x100000\n\tATTR_CMN_ERROR                          = 0x20000000\n\tATTR_CMN_EXTENDED_SECURITY              = 0x400000\n\tATTR_CMN_FILEID                         = 0x2000000\n\tATTR_CMN_FLAGS                          = 0x40000\n\tATTR_CMN_FNDRINFO                       = 0x4000\n\tATTR_CMN_FSID                           = 0x4\n\tATTR_CMN_FULLPATH                       = 0x8000000\n\tATTR_CMN_GEN_COUNT                      = 0x80000\n\tATTR_CMN_GRPID                          = 0x10000\n\tATTR_CMN_GRPUUID                        = 0x1000000\n\tATTR_CMN_MODTIME                        = 0x400\n\tATTR_CMN_NAME                           = 0x1\n\tATTR_CMN_NAMEDATTRCOUNT                 = 0x80000\n\tATTR_CMN_NAMEDATTRLIST                  = 0x100000\n\tATTR_CMN_OBJID                          = 0x20\n\tATTR_CMN_OBJPERMANENTID                 = 0x40\n\tATTR_CMN_OBJTAG                         = 0x10\n\tATTR_CMN_OBJTYPE                        = 0x8\n\tATTR_CMN_OWNERID                        = 0x8000\n\tATTR_CMN_PARENTID                       = 0x4000000\n\tATTR_CMN_PAROBJID                       = 0x80\n\tATTR_CMN_RETURNED_ATTRS                 = 0x80000000\n\tATTR_CMN_SCRIPT                         = 0x100\n\tATTR_CMN_SETMASK                        = 0x51c7ff00\n\tATTR_CMN_USERACCESS                     = 0x200000\n\tATTR_CMN_UUID                           = 0x800000\n\tATTR_CMN_VALIDMASK                      = 0xffffffff\n\tATTR_CMN_VOLSETMASK                     = 0x6700\n\tATTR_FILE_ALLOCSIZE                     = 0x4\n\tATTR_FILE_CLUMPSIZE                     = 0x10\n\tATTR_FILE_DATAALLOCSIZE                 = 0x400\n\tATTR_FILE_DATAEXTENTS                   = 0x800\n\tATTR_FILE_DATALENGTH                    = 0x200\n\tATTR_FILE_DEVTYPE                       = 0x20\n\tATTR_FILE_FILETYPE                      = 0x40\n\tATTR_FILE_FORKCOUNT                     = 0x80\n\tATTR_FILE_FORKLIST                      = 0x100\n\tATTR_FILE_IOBLOCKSIZE                   = 0x8\n\tATTR_FILE_LINKCOUNT                     = 0x1\n\tATTR_FILE_RSRCALLOCSIZE                 = 0x2000\n\tATTR_FILE_RSRCEXTENTS                   = 0x4000\n\tATTR_FILE_RSRCLENGTH                    = 0x1000\n\tATTR_FILE_SETMASK                       = 0x20\n\tATTR_FILE_TOTALSIZE                     = 0x2\n\tATTR_FILE_VALIDMASK                     = 0x37ff\n\tATTR_VOL_ALLOCATIONCLUMP                = 0x40\n\tATTR_VOL_ATTRIBUTES                     = 0x40000000\n\tATTR_VOL_CAPABILITIES                   = 0x20000\n\tATTR_VOL_DIRCOUNT                       = 0x400\n\tATTR_VOL_ENCODINGSUSED                  = 0x10000\n\tATTR_VOL_FILECOUNT                      = 0x200\n\tATTR_VOL_FSTYPE                         = 0x1\n\tATTR_VOL_INFO                           = 0x80000000\n\tATTR_VOL_IOBLOCKSIZE                    = 0x80\n\tATTR_VOL_MAXOBJCOUNT                    = 0x800\n\tATTR_VOL_MINALLOCATION                  = 0x20\n\tATTR_VOL_MOUNTEDDEVICE                  = 0x8000\n\tATTR_VOL_MOUNTFLAGS                     = 0x4000\n\tATTR_VOL_MOUNTPOINT                     = 0x1000\n\tATTR_VOL_NAME                           = 0x2000\n\tATTR_VOL_OBJCOUNT                       = 0x100\n\tATTR_VOL_QUOTA_SIZE                     = 0x10000000\n\tATTR_VOL_RESERVED_SIZE                  = 0x20000000\n\tATTR_VOL_SETMASK                        = 0x80002000\n\tATTR_VOL_SIGNATURE                      = 0x2\n\tATTR_VOL_SIZE                           = 0x4\n\tATTR_VOL_SPACEAVAIL                     = 0x10\n\tATTR_VOL_SPACEFREE                      = 0x8\n\tATTR_VOL_SPACEUSED                      = 0x800000\n\tATTR_VOL_UUID                           = 0x40000\n\tATTR_VOL_VALIDMASK                      = 0xf087ffff\n\tB0                                      = 0x0\n\tB110                                    = 0x6e\n\tB115200                                 = 0x1c200\n\tB1200                                   = 0x4b0\n\tB134                                    = 0x86\n\tB14400                                  = 0x3840\n\tB150                                    = 0x96\n\tB1800                                   = 0x708\n\tB19200                                  = 0x4b00\n\tB200                                    = 0xc8\n\tB230400                                 = 0x38400\n\tB2400                                   = 0x960\n\tB28800                                  = 0x7080\n\tB300                                    = 0x12c\n\tB38400                                  = 0x9600\n\tB4800                                   = 0x12c0\n\tB50                                     = 0x32\n\tB57600                                  = 0xe100\n\tB600                                    = 0x258\n\tB7200                                   = 0x1c20\n\tB75                                     = 0x4b\n\tB76800                                  = 0x12c00\n\tB9600                                   = 0x2580\n\tBIOCFLUSH                               = 0x20004268\n\tBIOCGBLEN                               = 0x40044266\n\tBIOCGDLT                                = 0x4004426a\n\tBIOCGDLTLIST                            = 0xc00c4279\n\tBIOCGETIF                               = 0x4020426b\n\tBIOCGHDRCMPLT                           = 0x40044274\n\tBIOCGRSIG                               = 0x40044272\n\tBIOCGRTIMEOUT                           = 0x4010426e\n\tBIOCGSEESENT                            = 0x40044276\n\tBIOCGSTATS                              = 0x4008426f\n\tBIOCIMMEDIATE                           = 0x80044270\n\tBIOCPROMISC                             = 0x20004269\n\tBIOCSBLEN                               = 0xc0044266\n\tBIOCSDLT                                = 0x80044278\n\tBIOCSETF                                = 0x80104267\n\tBIOCSETFNR                              = 0x8010427e\n\tBIOCSETIF                               = 0x8020426c\n\tBIOCSHDRCMPLT                           = 0x80044275\n\tBIOCSRSIG                               = 0x80044273\n\tBIOCSRTIMEOUT                           = 0x8010426d\n\tBIOCSSEESENT                            = 0x80044277\n\tBIOCVERSION                             = 0x40044271\n\tBPF_A                                   = 0x10\n\tBPF_ABS                                 = 0x20\n\tBPF_ADD                                 = 0x0\n\tBPF_ALIGNMENT                           = 0x4\n\tBPF_ALU                                 = 0x4\n\tBPF_AND                                 = 0x50\n\tBPF_B                                   = 0x10\n\tBPF_DIV                                 = 0x30\n\tBPF_H                                   = 0x8\n\tBPF_IMM                                 = 0x0\n\tBPF_IND                                 = 0x40\n\tBPF_JA                                  = 0x0\n\tBPF_JEQ                                 = 0x10\n\tBPF_JGE                                 = 0x30\n\tBPF_JGT                                 = 0x20\n\tBPF_JMP                                 = 0x5\n\tBPF_JSET                                = 0x40\n\tBPF_K                                   = 0x0\n\tBPF_LD                                  = 0x0\n\tBPF_LDX                                 = 0x1\n\tBPF_LEN                                 = 0x80\n\tBPF_LSH                                 = 0x60\n\tBPF_MAJOR_VERSION                       = 0x1\n\tBPF_MAXBUFSIZE                          = 0x80000\n\tBPF_MAXINSNS                            = 0x200\n\tBPF_MEM                                 = 0x60\n\tBPF_MEMWORDS                            = 0x10\n\tBPF_MINBUFSIZE                          = 0x20\n\tBPF_MINOR_VERSION                       = 0x1\n\tBPF_MISC                                = 0x7\n\tBPF_MSH                                 = 0xa0\n\tBPF_MUL                                 = 0x20\n\tBPF_NEG                                 = 0x80\n\tBPF_OR                                  = 0x40\n\tBPF_RELEASE                             = 0x30bb6\n\tBPF_RET                                 = 0x6\n\tBPF_RSH                                 = 0x70\n\tBPF_ST                                  = 0x2\n\tBPF_STX                                 = 0x3\n\tBPF_SUB                                 = 0x10\n\tBPF_TAX                                 = 0x0\n\tBPF_TXA                                 = 0x80\n\tBPF_W                                   = 0x0\n\tBPF_X                                   = 0x8\n\tBRKINT                                  = 0x2\n\tBS0                                     = 0x0\n\tBS1                                     = 0x8000\n\tBSDLY                                   = 0x8000\n\tCFLUSH                                  = 0xf\n\tCLOCAL                                  = 0x8000\n\tCLOCK_MONOTONIC                         = 0x6\n\tCLOCK_MONOTONIC_RAW                     = 0x4\n\tCLOCK_MONOTONIC_RAW_APPROX              = 0x5\n\tCLOCK_PROCESS_CPUTIME_ID                = 0xc\n\tCLOCK_REALTIME                          = 0x0\n\tCLOCK_THREAD_CPUTIME_ID                 = 0x10\n\tCLOCK_UPTIME_RAW                        = 0x8\n\tCLOCK_UPTIME_RAW_APPROX                 = 0x9\n\tCLONE_NOFOLLOW                          = 0x1\n\tCLONE_NOOWNERCOPY                       = 0x2\n\tCONNECT_DATA_AUTHENTICATED              = 0x4\n\tCONNECT_DATA_IDEMPOTENT                 = 0x2\n\tCONNECT_RESUME_ON_READ_WRITE            = 0x1\n\tCR0                                     = 0x0\n\tCR1                                     = 0x1000\n\tCR2                                     = 0x2000\n\tCR3                                     = 0x3000\n\tCRDLY                                   = 0x3000\n\tCREAD                                   = 0x800\n\tCRTSCTS                                 = 0x30000\n\tCS5                                     = 0x0\n\tCS6                                     = 0x100\n\tCS7                                     = 0x200\n\tCS8                                     = 0x300\n\tCSIZE                                   = 0x300\n\tCSTART                                  = 0x11\n\tCSTATUS                                 = 0x14\n\tCSTOP                                   = 0x13\n\tCSTOPB                                  = 0x400\n\tCSUSP                                   = 0x1a\n\tCTLIOCGINFO                             = 0xc0644e03\n\tCTL_HW                                  = 0x6\n\tCTL_KERN                                = 0x1\n\tCTL_MAXNAME                             = 0xc\n\tCTL_NET                                 = 0x4\n\tDLT_A429                                = 0xb8\n\tDLT_A653_ICM                            = 0xb9\n\tDLT_AIRONET_HEADER                      = 0x78\n\tDLT_AOS                                 = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394              = 0x8a\n\tDLT_ARCNET                              = 0x7\n\tDLT_ARCNET_LINUX                        = 0x81\n\tDLT_ATM_CLIP                            = 0x13\n\tDLT_ATM_RFC1483                         = 0xb\n\tDLT_AURORA                              = 0x7e\n\tDLT_AX25                                = 0x3\n\tDLT_AX25_KISS                           = 0xca\n\tDLT_BACNET_MS_TP                        = 0xa5\n\tDLT_BLUETOOTH_HCI_H4                    = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR          = 0xc9\n\tDLT_CAN20B                              = 0xbe\n\tDLT_CAN_SOCKETCAN                       = 0xe3\n\tDLT_CHAOS                               = 0x5\n\tDLT_CHDLC                               = 0x68\n\tDLT_CISCO_IOS                           = 0x76\n\tDLT_C_HDLC                              = 0x68\n\tDLT_C_HDLC_WITH_DIR                     = 0xcd\n\tDLT_DBUS                                = 0xe7\n\tDLT_DECT                                = 0xdd\n\tDLT_DOCSIS                              = 0x8f\n\tDLT_DVB_CI                              = 0xeb\n\tDLT_ECONET                              = 0x73\n\tDLT_EN10MB                              = 0x1\n\tDLT_EN3MB                               = 0x2\n\tDLT_ENC                                 = 0x6d\n\tDLT_ERF                                 = 0xc5\n\tDLT_ERF_ETH                             = 0xaf\n\tDLT_ERF_POS                             = 0xb0\n\tDLT_FC_2                                = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS              = 0xe1\n\tDLT_FDDI                                = 0xa\n\tDLT_FLEXRAY                             = 0xd2\n\tDLT_FRELAY                              = 0x6b\n\tDLT_FRELAY_WITH_DIR                     = 0xce\n\tDLT_GCOM_SERIAL                         = 0xad\n\tDLT_GCOM_T1E1                           = 0xac\n\tDLT_GPF_F                               = 0xab\n\tDLT_GPF_T                               = 0xaa\n\tDLT_GPRS_LLC                            = 0xa9\n\tDLT_GSMTAP_ABIS                         = 0xda\n\tDLT_GSMTAP_UM                           = 0xd9\n\tDLT_HHDLC                               = 0x79\n\tDLT_IBM_SN                              = 0x92\n\tDLT_IBM_SP                              = 0x91\n\tDLT_IEEE802                             = 0x6\n\tDLT_IEEE802_11                          = 0x69\n\tDLT_IEEE802_11_RADIO                    = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS                = 0xa3\n\tDLT_IEEE802_15_4                        = 0xc3\n\tDLT_IEEE802_15_4_LINUX                  = 0xbf\n\tDLT_IEEE802_15_4_NOFCS                  = 0xe6\n\tDLT_IEEE802_15_4_NONASK_PHY             = 0xd7\n\tDLT_IEEE802_16_MAC_CPS                  = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO            = 0xc1\n\tDLT_IPFILTER                            = 0x74\n\tDLT_IPMB                                = 0xc7\n\tDLT_IPMB_LINUX                          = 0xd1\n\tDLT_IPNET                               = 0xe2\n\tDLT_IPOIB                               = 0xf2\n\tDLT_IPV4                                = 0xe4\n\tDLT_IPV6                                = 0xe5\n\tDLT_IP_OVER_FC                          = 0x7a\n\tDLT_JUNIPER_ATM1                        = 0x89\n\tDLT_JUNIPER_ATM2                        = 0x87\n\tDLT_JUNIPER_ATM_CEMIC                   = 0xee\n\tDLT_JUNIPER_CHDLC                       = 0xb5\n\tDLT_JUNIPER_ES                          = 0x84\n\tDLT_JUNIPER_ETHER                       = 0xb2\n\tDLT_JUNIPER_FIBRECHANNEL                = 0xea\n\tDLT_JUNIPER_FRELAY                      = 0xb4\n\tDLT_JUNIPER_GGSN                        = 0x85\n\tDLT_JUNIPER_ISM                         = 0xc2\n\tDLT_JUNIPER_MFR                         = 0x86\n\tDLT_JUNIPER_MLFR                        = 0x83\n\tDLT_JUNIPER_MLPPP                       = 0x82\n\tDLT_JUNIPER_MONITOR                     = 0xa4\n\tDLT_JUNIPER_PIC_PEER                    = 0xae\n\tDLT_JUNIPER_PPP                         = 0xb3\n\tDLT_JUNIPER_PPPOE                       = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM                   = 0xa8\n\tDLT_JUNIPER_SERVICES                    = 0x88\n\tDLT_JUNIPER_SRX_E2E                     = 0xe9\n\tDLT_JUNIPER_ST                          = 0xc8\n\tDLT_JUNIPER_VP                          = 0xb7\n\tDLT_JUNIPER_VS                          = 0xe8\n\tDLT_LAPB_WITH_DIR                       = 0xcf\n\tDLT_LAPD                                = 0xcb\n\tDLT_LIN                                 = 0xd4\n\tDLT_LINUX_EVDEV                         = 0xd8\n\tDLT_LINUX_IRDA                          = 0x90\n\tDLT_LINUX_LAPD                          = 0xb1\n\tDLT_LINUX_PPP_WITHDIRECTION             = 0xa6\n\tDLT_LINUX_SLL                           = 0x71\n\tDLT_LOOP                                = 0x6c\n\tDLT_LTALK                               = 0x72\n\tDLT_MATCHING_MAX                        = 0x10a\n\tDLT_MATCHING_MIN                        = 0x68\n\tDLT_MFR                                 = 0xb6\n\tDLT_MOST                                = 0xd3\n\tDLT_MPEG_2_TS                           = 0xf3\n\tDLT_MPLS                                = 0xdb\n\tDLT_MTP2                                = 0x8c\n\tDLT_MTP2_WITH_PHDR                      = 0x8b\n\tDLT_MTP3                                = 0x8d\n\tDLT_MUX27010                            = 0xec\n\tDLT_NETANALYZER                         = 0xf0\n\tDLT_NETANALYZER_TRANSPARENT             = 0xf1\n\tDLT_NFC_LLCP                            = 0xf5\n\tDLT_NFLOG                               = 0xef\n\tDLT_NG40                                = 0xf4\n\tDLT_NULL                                = 0x0\n\tDLT_PCI_EXP                             = 0x7d\n\tDLT_PFLOG                               = 0x75\n\tDLT_PFSYNC                              = 0x12\n\tDLT_PPI                                 = 0xc0\n\tDLT_PPP                                 = 0x9\n\tDLT_PPP_BSDOS                           = 0x10\n\tDLT_PPP_ETHER                           = 0x33\n\tDLT_PPP_PPPD                            = 0xa6\n\tDLT_PPP_SERIAL                          = 0x32\n\tDLT_PPP_WITH_DIR                        = 0xcc\n\tDLT_PPP_WITH_DIRECTION                  = 0xa6\n\tDLT_PRISM_HEADER                        = 0x77\n\tDLT_PRONET                              = 0x4\n\tDLT_RAIF1                               = 0xc6\n\tDLT_RAW                                 = 0xc\n\tDLT_RIO                                 = 0x7c\n\tDLT_SCCP                                = 0x8e\n\tDLT_SITA                                = 0xc4\n\tDLT_SLIP                                = 0x8\n\tDLT_SLIP_BSDOS                          = 0xf\n\tDLT_STANAG_5066_D_PDU                   = 0xed\n\tDLT_SUNATM                              = 0x7b\n\tDLT_SYMANTEC_FIREWALL                   = 0x63\n\tDLT_TZSP                                = 0x80\n\tDLT_USB                                 = 0xba\n\tDLT_USB_DARWIN                          = 0x10a\n\tDLT_USB_LINUX                           = 0xbd\n\tDLT_USB_LINUX_MMAPPED                   = 0xdc\n\tDLT_USER0                               = 0x93\n\tDLT_USER1                               = 0x94\n\tDLT_USER10                              = 0x9d\n\tDLT_USER11                              = 0x9e\n\tDLT_USER12                              = 0x9f\n\tDLT_USER13                              = 0xa0\n\tDLT_USER14                              = 0xa1\n\tDLT_USER15                              = 0xa2\n\tDLT_USER2                               = 0x95\n\tDLT_USER3                               = 0x96\n\tDLT_USER4                               = 0x97\n\tDLT_USER5                               = 0x98\n\tDLT_USER6                               = 0x99\n\tDLT_USER7                               = 0x9a\n\tDLT_USER8                               = 0x9b\n\tDLT_USER9                               = 0x9c\n\tDLT_WIHART                              = 0xdf\n\tDLT_X2E_SERIAL                          = 0xd5\n\tDLT_X2E_XORAYA                          = 0xd6\n\tDT_BLK                                  = 0x6\n\tDT_CHR                                  = 0x2\n\tDT_DIR                                  = 0x4\n\tDT_FIFO                                 = 0x1\n\tDT_LNK                                  = 0xa\n\tDT_REG                                  = 0x8\n\tDT_SOCK                                 = 0xc\n\tDT_UNKNOWN                              = 0x0\n\tDT_WHT                                  = 0xe\n\tECHO                                    = 0x8\n\tECHOCTL                                 = 0x40\n\tECHOE                                   = 0x2\n\tECHOK                                   = 0x4\n\tECHOKE                                  = 0x1\n\tECHONL                                  = 0x10\n\tECHOPRT                                 = 0x20\n\tEVFILT_AIO                              = -0x3\n\tEVFILT_EXCEPT                           = -0xf\n\tEVFILT_FS                               = -0x9\n\tEVFILT_MACHPORT                         = -0x8\n\tEVFILT_PROC                             = -0x5\n\tEVFILT_READ                             = -0x1\n\tEVFILT_SIGNAL                           = -0x6\n\tEVFILT_SYSCOUNT                         = 0x11\n\tEVFILT_THREADMARKER                     = 0x11\n\tEVFILT_TIMER                            = -0x7\n\tEVFILT_USER                             = -0xa\n\tEVFILT_VM                               = -0xc\n\tEVFILT_VNODE                            = -0x4\n\tEVFILT_WRITE                            = -0x2\n\tEV_ADD                                  = 0x1\n\tEV_CLEAR                                = 0x20\n\tEV_DELETE                               = 0x2\n\tEV_DISABLE                              = 0x8\n\tEV_DISPATCH                             = 0x80\n\tEV_DISPATCH2                            = 0x180\n\tEV_ENABLE                               = 0x4\n\tEV_EOF                                  = 0x8000\n\tEV_ERROR                                = 0x4000\n\tEV_FLAG0                                = 0x1000\n\tEV_FLAG1                                = 0x2000\n\tEV_ONESHOT                              = 0x10\n\tEV_OOBAND                               = 0x2000\n\tEV_POLL                                 = 0x1000\n\tEV_RECEIPT                              = 0x40\n\tEV_SYSFLAGS                             = 0xf000\n\tEV_UDATA_SPECIFIC                       = 0x100\n\tEV_VANISHED                             = 0x200\n\tEXTA                                    = 0x4b00\n\tEXTB                                    = 0x9600\n\tEXTPROC                                 = 0x800\n\tFD_CLOEXEC                              = 0x1\n\tFD_SETSIZE                              = 0x400\n\tFF0                                     = 0x0\n\tFF1                                     = 0x4000\n\tFFDLY                                   = 0x4000\n\tFLUSHO                                  = 0x800000\n\tFSOPT_ATTR_CMN_EXTENDED                 = 0x20\n\tFSOPT_NOFOLLOW                          = 0x1\n\tFSOPT_NOINMEMUPDATE                     = 0x2\n\tFSOPT_PACK_INVAL_ATTRS                  = 0x8\n\tFSOPT_REPORT_FULLSIZE                   = 0x4\n\tFSOPT_RETURN_REALDEV                    = 0x200\n\tF_ADDFILESIGS                           = 0x3d\n\tF_ADDFILESIGS_FOR_DYLD_SIM              = 0x53\n\tF_ADDFILESIGS_INFO                      = 0x67\n\tF_ADDFILESIGS_RETURN                    = 0x61\n\tF_ADDFILESUPPL                          = 0x68\n\tF_ADDSIGS                               = 0x3b\n\tF_ALLOCATEALL                           = 0x4\n\tF_ALLOCATECONTIG                        = 0x2\n\tF_BARRIERFSYNC                          = 0x55\n\tF_CHECK_LV                              = 0x62\n\tF_CHKCLEAN                              = 0x29\n\tF_DUPFD                                 = 0x0\n\tF_DUPFD_CLOEXEC                         = 0x43\n\tF_FINDSIGS                              = 0x4e\n\tF_FLUSH_DATA                            = 0x28\n\tF_FREEZE_FS                             = 0x35\n\tF_FULLFSYNC                             = 0x33\n\tF_GETCODEDIR                            = 0x48\n\tF_GETFD                                 = 0x1\n\tF_GETFL                                 = 0x3\n\tF_GETLK                                 = 0x7\n\tF_GETLKPID                              = 0x42\n\tF_GETNOSIGPIPE                          = 0x4a\n\tF_GETOWN                                = 0x5\n\tF_GETPATH                               = 0x32\n\tF_GETPATH_MTMINFO                       = 0x47\n\tF_GETPATH_NOFIRMLINK                    = 0x66\n\tF_GETPROTECTIONCLASS                    = 0x3f\n\tF_GETPROTECTIONLEVEL                    = 0x4d\n\tF_GETSIGSINFO                           = 0x69\n\tF_GLOBAL_NOCACHE                        = 0x37\n\tF_LOG2PHYS                              = 0x31\n\tF_LOG2PHYS_EXT                          = 0x41\n\tF_NOCACHE                               = 0x30\n\tF_NODIRECT                              = 0x3e\n\tF_OK                                    = 0x0\n\tF_PATHPKG_CHECK                         = 0x34\n\tF_PEOFPOSMODE                           = 0x3\n\tF_PREALLOCATE                           = 0x2a\n\tF_PUNCHHOLE                             = 0x63\n\tF_RDADVISE                              = 0x2c\n\tF_RDAHEAD                               = 0x2d\n\tF_RDLCK                                 = 0x1\n\tF_SETBACKINGSTORE                       = 0x46\n\tF_SETFD                                 = 0x2\n\tF_SETFL                                 = 0x4\n\tF_SETLK                                 = 0x8\n\tF_SETLKW                                = 0x9\n\tF_SETLKWTIMEOUT                         = 0xa\n\tF_SETNOSIGPIPE                          = 0x49\n\tF_SETOWN                                = 0x6\n\tF_SETPROTECTIONCLASS                    = 0x40\n\tF_SETSIZE                               = 0x2b\n\tF_SINGLE_WRITER                         = 0x4c\n\tF_SPECULATIVE_READ                      = 0x65\n\tF_THAW_FS                               = 0x36\n\tF_TRANSCODEKEY                          = 0x4b\n\tF_TRIM_ACTIVE_FILE                      = 0x64\n\tF_UNLCK                                 = 0x2\n\tF_VOLPOSMODE                            = 0x4\n\tF_WRLCK                                 = 0x3\n\tHUPCL                                   = 0x4000\n\tHW_MACHINE                              = 0x1\n\tICANON                                  = 0x100\n\tICMP6_FILTER                            = 0x12\n\tICRNL                                   = 0x100\n\tIEXTEN                                  = 0x400\n\tIFF_ALLMULTI                            = 0x200\n\tIFF_ALTPHYS                             = 0x4000\n\tIFF_BROADCAST                           = 0x2\n\tIFF_DEBUG                               = 0x4\n\tIFF_LINK0                               = 0x1000\n\tIFF_LINK1                               = 0x2000\n\tIFF_LINK2                               = 0x4000\n\tIFF_LOOPBACK                            = 0x8\n\tIFF_MULTICAST                           = 0x8000\n\tIFF_NOARP                               = 0x80\n\tIFF_NOTRAILERS                          = 0x20\n\tIFF_OACTIVE                             = 0x400\n\tIFF_POINTOPOINT                         = 0x10\n\tIFF_PROMISC                             = 0x100\n\tIFF_RUNNING                             = 0x40\n\tIFF_SIMPLEX                             = 0x800\n\tIFF_UP                                  = 0x1\n\tIFNAMSIZ                                = 0x10\n\tIFT_1822                                = 0x2\n\tIFT_6LOWPAN                             = 0x40\n\tIFT_AAL5                                = 0x31\n\tIFT_ARCNET                              = 0x23\n\tIFT_ARCNETPLUS                          = 0x24\n\tIFT_ATM                                 = 0x25\n\tIFT_BRIDGE                              = 0xd1\n\tIFT_CARP                                = 0xf8\n\tIFT_CELLULAR                            = 0xff\n\tIFT_CEPT                                = 0x13\n\tIFT_DS3                                 = 0x1e\n\tIFT_ENC                                 = 0xf4\n\tIFT_EON                                 = 0x19\n\tIFT_ETHER                               = 0x6\n\tIFT_FAITH                               = 0x38\n\tIFT_FDDI                                = 0xf\n\tIFT_FRELAY                              = 0x20\n\tIFT_FRELAYDCE                           = 0x2c\n\tIFT_GIF                                 = 0x37\n\tIFT_HDH1822                             = 0x3\n\tIFT_HIPPI                               = 0x2f\n\tIFT_HSSI                                = 0x2e\n\tIFT_HY                                  = 0xe\n\tIFT_IEEE1394                            = 0x90\n\tIFT_IEEE8023ADLAG                       = 0x88\n\tIFT_ISDNBASIC                           = 0x14\n\tIFT_ISDNPRIMARY                         = 0x15\n\tIFT_ISO88022LLC                         = 0x29\n\tIFT_ISO88023                            = 0x7\n\tIFT_ISO88024                            = 0x8\n\tIFT_ISO88025                            = 0x9\n\tIFT_ISO88026                            = 0xa\n\tIFT_L2VLAN                              = 0x87\n\tIFT_LAPB                                = 0x10\n\tIFT_LOCALTALK                           = 0x2a\n\tIFT_LOOP                                = 0x18\n\tIFT_MIOX25                              = 0x26\n\tIFT_MODEM                               = 0x30\n\tIFT_NSIP                                = 0x1b\n\tIFT_OTHER                               = 0x1\n\tIFT_P10                                 = 0xc\n\tIFT_P80                                 = 0xd\n\tIFT_PARA                                = 0x22\n\tIFT_PDP                                 = 0xff\n\tIFT_PFLOG                               = 0xf5\n\tIFT_PFSYNC                              = 0xf6\n\tIFT_PKTAP                               = 0xfe\n\tIFT_PPP                                 = 0x17\n\tIFT_PROPMUX                             = 0x36\n\tIFT_PROPVIRTUAL                         = 0x35\n\tIFT_PTPSERIAL                           = 0x16\n\tIFT_RS232                               = 0x21\n\tIFT_SDLC                                = 0x11\n\tIFT_SIP                                 = 0x1f\n\tIFT_SLIP                                = 0x1c\n\tIFT_SMDSDXI                             = 0x2b\n\tIFT_SMDSICIP                            = 0x34\n\tIFT_SONET                               = 0x27\n\tIFT_SONETPATH                           = 0x32\n\tIFT_SONETVT                             = 0x33\n\tIFT_STARLAN                             = 0xb\n\tIFT_STF                                 = 0x39\n\tIFT_T1                                  = 0x12\n\tIFT_ULTRA                               = 0x1d\n\tIFT_V35                                 = 0x2d\n\tIFT_X25                                 = 0x5\n\tIFT_X25DDN                              = 0x4\n\tIFT_X25PLE                              = 0x28\n\tIFT_XETHER                              = 0x1a\n\tIGNBRK                                  = 0x1\n\tIGNCR                                   = 0x80\n\tIGNPAR                                  = 0x4\n\tIMAXBEL                                 = 0x2000\n\tINLCR                                   = 0x40\n\tINPCK                                   = 0x10\n\tIN_CLASSA_HOST                          = 0xffffff\n\tIN_CLASSA_MAX                           = 0x80\n\tIN_CLASSA_NET                           = 0xff000000\n\tIN_CLASSA_NSHIFT                        = 0x18\n\tIN_CLASSB_HOST                          = 0xffff\n\tIN_CLASSB_MAX                           = 0x10000\n\tIN_CLASSB_NET                           = 0xffff0000\n\tIN_CLASSB_NSHIFT                        = 0x10\n\tIN_CLASSC_HOST                          = 0xff\n\tIN_CLASSC_NET                           = 0xffffff00\n\tIN_CLASSC_NSHIFT                        = 0x8\n\tIN_CLASSD_HOST                          = 0xfffffff\n\tIN_CLASSD_NET                           = 0xf0000000\n\tIN_CLASSD_NSHIFT                        = 0x1c\n\tIN_LINKLOCALNETNUM                      = 0xa9fe0000\n\tIN_LOOPBACKNET                          = 0x7f\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID          = 0x400473d1\n\tIPPROTO_3PC                             = 0x22\n\tIPPROTO_ADFS                            = 0x44\n\tIPPROTO_AH                              = 0x33\n\tIPPROTO_AHIP                            = 0x3d\n\tIPPROTO_APES                            = 0x63\n\tIPPROTO_ARGUS                           = 0xd\n\tIPPROTO_AX25                            = 0x5d\n\tIPPROTO_BHA                             = 0x31\n\tIPPROTO_BLT                             = 0x1e\n\tIPPROTO_BRSATMON                        = 0x4c\n\tIPPROTO_CFTP                            = 0x3e\n\tIPPROTO_CHAOS                           = 0x10\n\tIPPROTO_CMTP                            = 0x26\n\tIPPROTO_CPHB                            = 0x49\n\tIPPROTO_CPNX                            = 0x48\n\tIPPROTO_DDP                             = 0x25\n\tIPPROTO_DGP                             = 0x56\n\tIPPROTO_DIVERT                          = 0xfe\n\tIPPROTO_DONE                            = 0x101\n\tIPPROTO_DSTOPTS                         = 0x3c\n\tIPPROTO_EGP                             = 0x8\n\tIPPROTO_EMCON                           = 0xe\n\tIPPROTO_ENCAP                           = 0x62\n\tIPPROTO_EON                             = 0x50\n\tIPPROTO_ESP                             = 0x32\n\tIPPROTO_ETHERIP                         = 0x61\n\tIPPROTO_FRAGMENT                        = 0x2c\n\tIPPROTO_GGP                             = 0x3\n\tIPPROTO_GMTP                            = 0x64\n\tIPPROTO_GRE                             = 0x2f\n\tIPPROTO_HELLO                           = 0x3f\n\tIPPROTO_HMP                             = 0x14\n\tIPPROTO_HOPOPTS                         = 0x0\n\tIPPROTO_ICMP                            = 0x1\n\tIPPROTO_ICMPV6                          = 0x3a\n\tIPPROTO_IDP                             = 0x16\n\tIPPROTO_IDPR                            = 0x23\n\tIPPROTO_IDRP                            = 0x2d\n\tIPPROTO_IGMP                            = 0x2\n\tIPPROTO_IGP                             = 0x55\n\tIPPROTO_IGRP                            = 0x58\n\tIPPROTO_IL                              = 0x28\n\tIPPROTO_INLSP                           = 0x34\n\tIPPROTO_INP                             = 0x20\n\tIPPROTO_IP                              = 0x0\n\tIPPROTO_IPCOMP                          = 0x6c\n\tIPPROTO_IPCV                            = 0x47\n\tIPPROTO_IPEIP                           = 0x5e\n\tIPPROTO_IPIP                            = 0x4\n\tIPPROTO_IPPC                            = 0x43\n\tIPPROTO_IPV4                            = 0x4\n\tIPPROTO_IPV6                            = 0x29\n\tIPPROTO_IRTP                            = 0x1c\n\tIPPROTO_KRYPTOLAN                       = 0x41\n\tIPPROTO_LARP                            = 0x5b\n\tIPPROTO_LEAF1                           = 0x19\n\tIPPROTO_LEAF2                           = 0x1a\n\tIPPROTO_MAX                             = 0x100\n\tIPPROTO_MAXID                           = 0x34\n\tIPPROTO_MEAS                            = 0x13\n\tIPPROTO_MHRP                            = 0x30\n\tIPPROTO_MICP                            = 0x5f\n\tIPPROTO_MTP                             = 0x5c\n\tIPPROTO_MUX                             = 0x12\n\tIPPROTO_ND                              = 0x4d\n\tIPPROTO_NHRP                            = 0x36\n\tIPPROTO_NONE                            = 0x3b\n\tIPPROTO_NSP                             = 0x1f\n\tIPPROTO_NVPII                           = 0xb\n\tIPPROTO_OSPFIGP                         = 0x59\n\tIPPROTO_PGM                             = 0x71\n\tIPPROTO_PIGP                            = 0x9\n\tIPPROTO_PIM                             = 0x67\n\tIPPROTO_PRM                             = 0x15\n\tIPPROTO_PUP                             = 0xc\n\tIPPROTO_PVP                             = 0x4b\n\tIPPROTO_RAW                             = 0xff\n\tIPPROTO_RCCMON                          = 0xa\n\tIPPROTO_RDP                             = 0x1b\n\tIPPROTO_ROUTING                         = 0x2b\n\tIPPROTO_RSVP                            = 0x2e\n\tIPPROTO_RVD                             = 0x42\n\tIPPROTO_SATEXPAK                        = 0x40\n\tIPPROTO_SATMON                          = 0x45\n\tIPPROTO_SCCSP                           = 0x60\n\tIPPROTO_SCTP                            = 0x84\n\tIPPROTO_SDRP                            = 0x2a\n\tIPPROTO_SEP                             = 0x21\n\tIPPROTO_SRPC                            = 0x5a\n\tIPPROTO_ST                              = 0x7\n\tIPPROTO_SVMTP                           = 0x52\n\tIPPROTO_SWIPE                           = 0x35\n\tIPPROTO_TCF                             = 0x57\n\tIPPROTO_TCP                             = 0x6\n\tIPPROTO_TP                              = 0x1d\n\tIPPROTO_TPXX                            = 0x27\n\tIPPROTO_TRUNK1                          = 0x17\n\tIPPROTO_TRUNK2                          = 0x18\n\tIPPROTO_TTP                             = 0x54\n\tIPPROTO_UDP                             = 0x11\n\tIPPROTO_VINES                           = 0x53\n\tIPPROTO_VISA                            = 0x46\n\tIPPROTO_VMTP                            = 0x51\n\tIPPROTO_WBEXPAK                         = 0x4f\n\tIPPROTO_WBMON                           = 0x4e\n\tIPPROTO_WSN                             = 0x4a\n\tIPPROTO_XNET                            = 0xf\n\tIPPROTO_XTP                             = 0x24\n\tIPV6_2292DSTOPTS                        = 0x17\n\tIPV6_2292HOPLIMIT                       = 0x14\n\tIPV6_2292HOPOPTS                        = 0x16\n\tIPV6_2292NEXTHOP                        = 0x15\n\tIPV6_2292PKTINFO                        = 0x13\n\tIPV6_2292PKTOPTIONS                     = 0x19\n\tIPV6_2292RTHDR                          = 0x18\n\tIPV6_3542DSTOPTS                        = 0x32\n\tIPV6_3542HOPLIMIT                       = 0x2f\n\tIPV6_3542HOPOPTS                        = 0x31\n\tIPV6_3542NEXTHOP                        = 0x30\n\tIPV6_3542PKTINFO                        = 0x2e\n\tIPV6_3542RTHDR                          = 0x33\n\tIPV6_ADDR_MC_FLAGS_PREFIX               = 0x20\n\tIPV6_ADDR_MC_FLAGS_TRANSIENT            = 0x10\n\tIPV6_ADDR_MC_FLAGS_UNICAST_BASED        = 0x30\n\tIPV6_AUTOFLOWLABEL                      = 0x3b\n\tIPV6_BINDV6ONLY                         = 0x1b\n\tIPV6_BOUND_IF                           = 0x7d\n\tIPV6_CHECKSUM                           = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS             = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP             = 0x1\n\tIPV6_DEFHLIM                            = 0x40\n\tIPV6_DONTFRAG                           = 0x3e\n\tIPV6_DSTOPTS                            = 0x32\n\tIPV6_FAITH                              = 0x1d\n\tIPV6_FLOWINFO_MASK                      = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK                     = 0xffff0f00\n\tIPV6_FLOW_ECN_MASK                      = 0x3000\n\tIPV6_FRAGTTL                            = 0x3c\n\tIPV6_FW_ADD                             = 0x1e\n\tIPV6_FW_DEL                             = 0x1f\n\tIPV6_FW_FLUSH                           = 0x20\n\tIPV6_FW_GET                             = 0x22\n\tIPV6_FW_ZERO                            = 0x21\n\tIPV6_HLIMDEC                            = 0x1\n\tIPV6_HOPLIMIT                           = 0x2f\n\tIPV6_HOPOPTS                            = 0x31\n\tIPV6_IPSEC_POLICY                       = 0x1c\n\tIPV6_JOIN_GROUP                         = 0xc\n\tIPV6_LEAVE_GROUP                        = 0xd\n\tIPV6_MAXHLIM                            = 0xff\n\tIPV6_MAXOPTHDR                          = 0x800\n\tIPV6_MAXPACKET                          = 0xffff\n\tIPV6_MAX_GROUP_SRC_FILTER               = 0x200\n\tIPV6_MAX_MEMBERSHIPS                    = 0xfff\n\tIPV6_MAX_SOCK_SRC_FILTER                = 0x80\n\tIPV6_MIN_MEMBERSHIPS                    = 0x1f\n\tIPV6_MMTU                               = 0x500\n\tIPV6_MSFILTER                           = 0x4a\n\tIPV6_MULTICAST_HOPS                     = 0xa\n\tIPV6_MULTICAST_IF                       = 0x9\n\tIPV6_MULTICAST_LOOP                     = 0xb\n\tIPV6_NEXTHOP                            = 0x30\n\tIPV6_PATHMTU                            = 0x2c\n\tIPV6_PKTINFO                            = 0x2e\n\tIPV6_PORTRANGE                          = 0xe\n\tIPV6_PORTRANGE_DEFAULT                  = 0x0\n\tIPV6_PORTRANGE_HIGH                     = 0x1\n\tIPV6_PORTRANGE_LOW                      = 0x2\n\tIPV6_PREFER_TEMPADDR                    = 0x3f\n\tIPV6_RECVDSTOPTS                        = 0x28\n\tIPV6_RECVHOPLIMIT                       = 0x25\n\tIPV6_RECVHOPOPTS                        = 0x27\n\tIPV6_RECVPATHMTU                        = 0x2b\n\tIPV6_RECVPKTINFO                        = 0x3d\n\tIPV6_RECVRTHDR                          = 0x26\n\tIPV6_RECVTCLASS                         = 0x23\n\tIPV6_RTHDR                              = 0x33\n\tIPV6_RTHDRDSTOPTS                       = 0x39\n\tIPV6_RTHDR_LOOSE                        = 0x0\n\tIPV6_RTHDR_STRICT                       = 0x1\n\tIPV6_RTHDR_TYPE_0                       = 0x0\n\tIPV6_SOCKOPT_RESERVED1                  = 0x3\n\tIPV6_TCLASS                             = 0x24\n\tIPV6_UNICAST_HOPS                       = 0x4\n\tIPV6_USE_MIN_MTU                        = 0x2a\n\tIPV6_V6ONLY                             = 0x1b\n\tIPV6_VERSION                            = 0x60\n\tIPV6_VERSION_MASK                       = 0xf0\n\tIP_ADD_MEMBERSHIP                       = 0xc\n\tIP_ADD_SOURCE_MEMBERSHIP                = 0x46\n\tIP_BLOCK_SOURCE                         = 0x48\n\tIP_BOUND_IF                             = 0x19\n\tIP_DEFAULT_MULTICAST_LOOP               = 0x1\n\tIP_DEFAULT_MULTICAST_TTL                = 0x1\n\tIP_DF                                   = 0x4000\n\tIP_DONTFRAG                             = 0x1c\n\tIP_DROP_MEMBERSHIP                      = 0xd\n\tIP_DROP_SOURCE_MEMBERSHIP               = 0x47\n\tIP_DUMMYNET_CONFIGURE                   = 0x3c\n\tIP_DUMMYNET_DEL                         = 0x3d\n\tIP_DUMMYNET_FLUSH                       = 0x3e\n\tIP_DUMMYNET_GET                         = 0x40\n\tIP_FAITH                                = 0x16\n\tIP_FW_ADD                               = 0x28\n\tIP_FW_DEL                               = 0x29\n\tIP_FW_FLUSH                             = 0x2a\n\tIP_FW_GET                               = 0x2c\n\tIP_FW_RESETLOG                          = 0x2d\n\tIP_FW_ZERO                              = 0x2b\n\tIP_HDRINCL                              = 0x2\n\tIP_IPSEC_POLICY                         = 0x15\n\tIP_MAXPACKET                            = 0xffff\n\tIP_MAX_GROUP_SRC_FILTER                 = 0x200\n\tIP_MAX_MEMBERSHIPS                      = 0xfff\n\tIP_MAX_SOCK_MUTE_FILTER                 = 0x80\n\tIP_MAX_SOCK_SRC_FILTER                  = 0x80\n\tIP_MF                                   = 0x2000\n\tIP_MIN_MEMBERSHIPS                      = 0x1f\n\tIP_MSFILTER                             = 0x4a\n\tIP_MSS                                  = 0x240\n\tIP_MULTICAST_IF                         = 0x9\n\tIP_MULTICAST_IFINDEX                    = 0x42\n\tIP_MULTICAST_LOOP                       = 0xb\n\tIP_MULTICAST_TTL                        = 0xa\n\tIP_MULTICAST_VIF                        = 0xe\n\tIP_NAT__XXX                             = 0x37\n\tIP_OFFMASK                              = 0x1fff\n\tIP_OLD_FW_ADD                           = 0x32\n\tIP_OLD_FW_DEL                           = 0x33\n\tIP_OLD_FW_FLUSH                         = 0x34\n\tIP_OLD_FW_GET                           = 0x36\n\tIP_OLD_FW_RESETLOG                      = 0x38\n\tIP_OLD_FW_ZERO                          = 0x35\n\tIP_OPTIONS                              = 0x1\n\tIP_PKTINFO                              = 0x1a\n\tIP_PORTRANGE                            = 0x13\n\tIP_PORTRANGE_DEFAULT                    = 0x0\n\tIP_PORTRANGE_HIGH                       = 0x1\n\tIP_PORTRANGE_LOW                        = 0x2\n\tIP_RECVDSTADDR                          = 0x7\n\tIP_RECVIF                               = 0x14\n\tIP_RECVOPTS                             = 0x5\n\tIP_RECVPKTINFO                          = 0x1a\n\tIP_RECVRETOPTS                          = 0x6\n\tIP_RECVTOS                              = 0x1b\n\tIP_RECVTTL                              = 0x18\n\tIP_RETOPTS                              = 0x8\n\tIP_RF                                   = 0x8000\n\tIP_RSVP_OFF                             = 0x10\n\tIP_RSVP_ON                              = 0xf\n\tIP_RSVP_VIF_OFF                         = 0x12\n\tIP_RSVP_VIF_ON                          = 0x11\n\tIP_STRIPHDR                             = 0x17\n\tIP_TOS                                  = 0x3\n\tIP_TRAFFIC_MGT_BACKGROUND               = 0x41\n\tIP_TTL                                  = 0x4\n\tIP_UNBLOCK_SOURCE                       = 0x49\n\tISIG                                    = 0x80\n\tISTRIP                                  = 0x20\n\tIUTF8                                   = 0x4000\n\tIXANY                                   = 0x800\n\tIXOFF                                   = 0x400\n\tIXON                                    = 0x200\n\tKERN_HOSTNAME                           = 0xa\n\tKERN_OSRELEASE                          = 0x2\n\tKERN_OSTYPE                             = 0x1\n\tKERN_VERSION                            = 0x4\n\tLOCAL_PEERCRED                          = 0x1\n\tLOCAL_PEEREPID                          = 0x3\n\tLOCAL_PEEREUUID                         = 0x5\n\tLOCAL_PEERPID                           = 0x2\n\tLOCAL_PEERTOKEN                         = 0x6\n\tLOCAL_PEERUUID                          = 0x4\n\tLOCK_EX                                 = 0x2\n\tLOCK_NB                                 = 0x4\n\tLOCK_SH                                 = 0x1\n\tLOCK_UN                                 = 0x8\n\tMADV_CAN_REUSE                          = 0x9\n\tMADV_DONTNEED                           = 0x4\n\tMADV_FREE                               = 0x5\n\tMADV_FREE_REUSABLE                      = 0x7\n\tMADV_FREE_REUSE                         = 0x8\n\tMADV_NORMAL                             = 0x0\n\tMADV_PAGEOUT                            = 0xa\n\tMADV_RANDOM                             = 0x1\n\tMADV_SEQUENTIAL                         = 0x2\n\tMADV_WILLNEED                           = 0x3\n\tMADV_ZERO_WIRED_PAGES                   = 0x6\n\tMAP_32BIT                               = 0x8000\n\tMAP_ANON                                = 0x1000\n\tMAP_ANONYMOUS                           = 0x1000\n\tMAP_COPY                                = 0x2\n\tMAP_FILE                                = 0x0\n\tMAP_FIXED                               = 0x10\n\tMAP_HASSEMAPHORE                        = 0x200\n\tMAP_JIT                                 = 0x800\n\tMAP_NOCACHE                             = 0x400\n\tMAP_NOEXTEND                            = 0x100\n\tMAP_NORESERVE                           = 0x40\n\tMAP_PRIVATE                             = 0x2\n\tMAP_RENAME                              = 0x20\n\tMAP_RESERVED0080                        = 0x80\n\tMAP_RESILIENT_CODESIGN                  = 0x2000\n\tMAP_RESILIENT_MEDIA                     = 0x4000\n\tMAP_SHARED                              = 0x1\n\tMAP_TRANSLATED_ALLOW_EXECUTE            = 0x20000\n\tMAP_UNIX03                              = 0x40000\n\tMCAST_BLOCK_SOURCE                      = 0x54\n\tMCAST_EXCLUDE                           = 0x2\n\tMCAST_INCLUDE                           = 0x1\n\tMCAST_JOIN_GROUP                        = 0x50\n\tMCAST_JOIN_SOURCE_GROUP                 = 0x52\n\tMCAST_LEAVE_GROUP                       = 0x51\n\tMCAST_LEAVE_SOURCE_GROUP                = 0x53\n\tMCAST_UNBLOCK_SOURCE                    = 0x55\n\tMCAST_UNDEFINED                         = 0x0\n\tMCL_CURRENT                             = 0x1\n\tMCL_FUTURE                              = 0x2\n\tMNT_ASYNC                               = 0x40\n\tMNT_AUTOMOUNTED                         = 0x400000\n\tMNT_CMDFLAGS                            = 0xf0000\n\tMNT_CPROTECT                            = 0x80\n\tMNT_DEFWRITE                            = 0x2000000\n\tMNT_DONTBROWSE                          = 0x100000\n\tMNT_DOVOLFS                             = 0x8000\n\tMNT_DWAIT                               = 0x4\n\tMNT_EXPORTED                            = 0x100\n\tMNT_EXT_ROOT_DATA_VOL                   = 0x1\n\tMNT_FORCE                               = 0x80000\n\tMNT_IGNORE_OWNERSHIP                    = 0x200000\n\tMNT_JOURNALED                           = 0x800000\n\tMNT_LOCAL                               = 0x1000\n\tMNT_MULTILABEL                          = 0x4000000\n\tMNT_NOATIME                             = 0x10000000\n\tMNT_NOBLOCK                             = 0x20000\n\tMNT_NODEV                               = 0x10\n\tMNT_NOEXEC                              = 0x4\n\tMNT_NOSUID                              = 0x8\n\tMNT_NOUSERXATTR                         = 0x1000000\n\tMNT_NOWAIT                              = 0x2\n\tMNT_QUARANTINE                          = 0x400\n\tMNT_QUOTA                               = 0x2000\n\tMNT_RDONLY                              = 0x1\n\tMNT_RELOAD                              = 0x40000\n\tMNT_REMOVABLE                           = 0x200\n\tMNT_ROOTFS                              = 0x4000\n\tMNT_SNAPSHOT                            = 0x40000000\n\tMNT_STRICTATIME                         = 0x80000000\n\tMNT_SYNCHRONOUS                         = 0x2\n\tMNT_UNION                               = 0x20\n\tMNT_UNKNOWNPERMISSIONS                  = 0x200000\n\tMNT_UPDATE                              = 0x10000\n\tMNT_VISFLAGMASK                         = 0xd7f0f7ff\n\tMNT_WAIT                                = 0x1\n\tMSG_CTRUNC                              = 0x20\n\tMSG_DONTROUTE                           = 0x4\n\tMSG_DONTWAIT                            = 0x80\n\tMSG_EOF                                 = 0x100\n\tMSG_EOR                                 = 0x8\n\tMSG_FLUSH                               = 0x400\n\tMSG_HAVEMORE                            = 0x2000\n\tMSG_HOLD                                = 0x800\n\tMSG_NEEDSA                              = 0x10000\n\tMSG_NOSIGNAL                            = 0x80000\n\tMSG_OOB                                 = 0x1\n\tMSG_PEEK                                = 0x2\n\tMSG_RCVMORE                             = 0x4000\n\tMSG_SEND                                = 0x1000\n\tMSG_TRUNC                               = 0x10\n\tMSG_WAITALL                             = 0x40\n\tMSG_WAITSTREAM                          = 0x200\n\tMS_ASYNC                                = 0x1\n\tMS_DEACTIVATE                           = 0x8\n\tMS_INVALIDATE                           = 0x2\n\tMS_KILLPAGES                            = 0x4\n\tMS_SYNC                                 = 0x10\n\tNAME_MAX                                = 0xff\n\tNET_RT_DUMP                             = 0x1\n\tNET_RT_DUMP2                            = 0x7\n\tNET_RT_FLAGS                            = 0x2\n\tNET_RT_FLAGS_PRIV                       = 0xa\n\tNET_RT_IFLIST                           = 0x3\n\tNET_RT_IFLIST2                          = 0x6\n\tNET_RT_MAXID                            = 0xb\n\tNET_RT_STAT                             = 0x4\n\tNET_RT_TRASH                            = 0x5\n\tNFDBITS                                 = 0x20\n\tNL0                                     = 0x0\n\tNL1                                     = 0x100\n\tNL2                                     = 0x200\n\tNL3                                     = 0x300\n\tNLDLY                                   = 0x300\n\tNOFLSH                                  = 0x80000000\n\tNOKERNINFO                              = 0x2000000\n\tNOTE_ABSOLUTE                           = 0x8\n\tNOTE_ATTRIB                             = 0x8\n\tNOTE_BACKGROUND                         = 0x40\n\tNOTE_CHILD                              = 0x4\n\tNOTE_CRITICAL                           = 0x20\n\tNOTE_DELETE                             = 0x1\n\tNOTE_EXEC                               = 0x20000000\n\tNOTE_EXIT                               = 0x80000000\n\tNOTE_EXITSTATUS                         = 0x4000000\n\tNOTE_EXIT_CSERROR                       = 0x40000\n\tNOTE_EXIT_DECRYPTFAIL                   = 0x10000\n\tNOTE_EXIT_DETAIL                        = 0x2000000\n\tNOTE_EXIT_DETAIL_MASK                   = 0x70000\n\tNOTE_EXIT_MEMORY                        = 0x20000\n\tNOTE_EXIT_REPARENTED                    = 0x80000\n\tNOTE_EXTEND                             = 0x4\n\tNOTE_FFAND                              = 0x40000000\n\tNOTE_FFCOPY                             = 0xc0000000\n\tNOTE_FFCTRLMASK                         = 0xc0000000\n\tNOTE_FFLAGSMASK                         = 0xffffff\n\tNOTE_FFNOP                              = 0x0\n\tNOTE_FFOR                               = 0x80000000\n\tNOTE_FORK                               = 0x40000000\n\tNOTE_FUNLOCK                            = 0x100\n\tNOTE_LEEWAY                             = 0x10\n\tNOTE_LINK                               = 0x10\n\tNOTE_LOWAT                              = 0x1\n\tNOTE_MACHTIME                           = 0x100\n\tNOTE_MACH_CONTINUOUS_TIME               = 0x80\n\tNOTE_NONE                               = 0x80\n\tNOTE_NSECONDS                           = 0x4\n\tNOTE_OOB                                = 0x2\n\tNOTE_PCTRLMASK                          = -0x100000\n\tNOTE_PDATAMASK                          = 0xfffff\n\tNOTE_REAP                               = 0x10000000\n\tNOTE_RENAME                             = 0x20\n\tNOTE_REVOKE                             = 0x40\n\tNOTE_SECONDS                            = 0x1\n\tNOTE_SIGNAL                             = 0x8000000\n\tNOTE_TRACK                              = 0x1\n\tNOTE_TRACKERR                           = 0x2\n\tNOTE_TRIGGER                            = 0x1000000\n\tNOTE_USECONDS                           = 0x2\n\tNOTE_VM_ERROR                           = 0x10000000\n\tNOTE_VM_PRESSURE                        = 0x80000000\n\tNOTE_VM_PRESSURE_SUDDEN_TERMINATE       = 0x20000000\n\tNOTE_VM_PRESSURE_TERMINATE              = 0x40000000\n\tNOTE_WRITE                              = 0x2\n\tOCRNL                                   = 0x10\n\tOFDEL                                   = 0x20000\n\tOFILL                                   = 0x80\n\tONLCR                                   = 0x2\n\tONLRET                                  = 0x40\n\tONOCR                                   = 0x20\n\tONOEOT                                  = 0x8\n\tOPOST                                   = 0x1\n\tOXTABS                                  = 0x4\n\tO_ACCMODE                               = 0x3\n\tO_ALERT                                 = 0x20000000\n\tO_APPEND                                = 0x8\n\tO_ASYNC                                 = 0x40\n\tO_CLOEXEC                               = 0x1000000\n\tO_CREAT                                 = 0x200\n\tO_DIRECTORY                             = 0x100000\n\tO_DP_GETRAWENCRYPTED                    = 0x1\n\tO_DP_GETRAWUNENCRYPTED                  = 0x2\n\tO_DSYNC                                 = 0x400000\n\tO_EVTONLY                               = 0x8000\n\tO_EXCL                                  = 0x800\n\tO_EXLOCK                                = 0x20\n\tO_FSYNC                                 = 0x80\n\tO_NDELAY                                = 0x4\n\tO_NOCTTY                                = 0x20000\n\tO_NOFOLLOW                              = 0x100\n\tO_NOFOLLOW_ANY                          = 0x20000000\n\tO_NONBLOCK                              = 0x4\n\tO_POPUP                                 = 0x80000000\n\tO_RDONLY                                = 0x0\n\tO_RDWR                                  = 0x2\n\tO_SHLOCK                                = 0x10\n\tO_SYMLINK                               = 0x200000\n\tO_SYNC                                  = 0x80\n\tO_TRUNC                                 = 0x400\n\tO_WRONLY                                = 0x1\n\tPARENB                                  = 0x1000\n\tPARMRK                                  = 0x8\n\tPARODD                                  = 0x2000\n\tPENDIN                                  = 0x20000000\n\tPRIO_PGRP                               = 0x1\n\tPRIO_PROCESS                            = 0x0\n\tPRIO_USER                               = 0x2\n\tPROT_EXEC                               = 0x4\n\tPROT_NONE                               = 0x0\n\tPROT_READ                               = 0x1\n\tPROT_WRITE                              = 0x2\n\tPT_ATTACH                               = 0xa\n\tPT_ATTACHEXC                            = 0xe\n\tPT_CONTINUE                             = 0x7\n\tPT_DENY_ATTACH                          = 0x1f\n\tPT_DETACH                               = 0xb\n\tPT_FIRSTMACH                            = 0x20\n\tPT_FORCEQUOTA                           = 0x1e\n\tPT_KILL                                 = 0x8\n\tPT_READ_D                               = 0x2\n\tPT_READ_I                               = 0x1\n\tPT_READ_U                               = 0x3\n\tPT_SIGEXC                               = 0xc\n\tPT_STEP                                 = 0x9\n\tPT_THUPDATE                             = 0xd\n\tPT_TRACE_ME                             = 0x0\n\tPT_WRITE_D                              = 0x5\n\tPT_WRITE_I                              = 0x4\n\tPT_WRITE_U                              = 0x6\n\tRENAME_EXCL                             = 0x4\n\tRENAME_NOFOLLOW_ANY                     = 0x10\n\tRENAME_RESERVED1                        = 0x8\n\tRENAME_SECLUDE                          = 0x1\n\tRENAME_SWAP                             = 0x2\n\tRLIMIT_AS                               = 0x5\n\tRLIMIT_CORE                             = 0x4\n\tRLIMIT_CPU                              = 0x0\n\tRLIMIT_CPU_USAGE_MONITOR                = 0x2\n\tRLIMIT_DATA                             = 0x2\n\tRLIMIT_FSIZE                            = 0x1\n\tRLIMIT_MEMLOCK                          = 0x6\n\tRLIMIT_NOFILE                           = 0x8\n\tRLIMIT_NPROC                            = 0x7\n\tRLIMIT_RSS                              = 0x5\n\tRLIMIT_STACK                            = 0x3\n\tRLIM_INFINITY                           = 0x7fffffffffffffff\n\tRTAX_AUTHOR                             = 0x6\n\tRTAX_BRD                                = 0x7\n\tRTAX_DST                                = 0x0\n\tRTAX_GATEWAY                            = 0x1\n\tRTAX_GENMASK                            = 0x3\n\tRTAX_IFA                                = 0x5\n\tRTAX_IFP                                = 0x4\n\tRTAX_MAX                                = 0x8\n\tRTAX_NETMASK                            = 0x2\n\tRTA_AUTHOR                              = 0x40\n\tRTA_BRD                                 = 0x80\n\tRTA_DST                                 = 0x1\n\tRTA_GATEWAY                             = 0x2\n\tRTA_GENMASK                             = 0x8\n\tRTA_IFA                                 = 0x20\n\tRTA_IFP                                 = 0x10\n\tRTA_NETMASK                             = 0x4\n\tRTF_BLACKHOLE                           = 0x1000\n\tRTF_BROADCAST                           = 0x400000\n\tRTF_CLONING                             = 0x100\n\tRTF_CONDEMNED                           = 0x2000000\n\tRTF_DEAD                                = 0x20000000\n\tRTF_DELCLONE                            = 0x80\n\tRTF_DONE                                = 0x40\n\tRTF_DYNAMIC                             = 0x10\n\tRTF_GATEWAY                             = 0x2\n\tRTF_GLOBAL                              = 0x40000000\n\tRTF_HOST                                = 0x4\n\tRTF_IFREF                               = 0x4000000\n\tRTF_IFSCOPE                             = 0x1000000\n\tRTF_LLDATA                              = 0x400\n\tRTF_LLINFO                              = 0x400\n\tRTF_LOCAL                               = 0x200000\n\tRTF_MODIFIED                            = 0x20\n\tRTF_MULTICAST                           = 0x800000\n\tRTF_NOIFREF                             = 0x2000\n\tRTF_PINNED                              = 0x100000\n\tRTF_PRCLONING                           = 0x10000\n\tRTF_PROTO1                              = 0x8000\n\tRTF_PROTO2                              = 0x4000\n\tRTF_PROTO3                              = 0x40000\n\tRTF_PROXY                               = 0x8000000\n\tRTF_REJECT                              = 0x8\n\tRTF_ROUTER                              = 0x10000000\n\tRTF_STATIC                              = 0x800\n\tRTF_UP                                  = 0x1\n\tRTF_WASCLONED                           = 0x20000\n\tRTF_XRESOLVE                            = 0x200\n\tRTM_ADD                                 = 0x1\n\tRTM_CHANGE                              = 0x3\n\tRTM_DELADDR                             = 0xd\n\tRTM_DELETE                              = 0x2\n\tRTM_DELMADDR                            = 0x10\n\tRTM_GET                                 = 0x4\n\tRTM_GET2                                = 0x14\n\tRTM_IFINFO                              = 0xe\n\tRTM_IFINFO2                             = 0x12\n\tRTM_LOCK                                = 0x8\n\tRTM_LOSING                              = 0x5\n\tRTM_MISS                                = 0x7\n\tRTM_NEWADDR                             = 0xc\n\tRTM_NEWMADDR                            = 0xf\n\tRTM_NEWMADDR2                           = 0x13\n\tRTM_OLDADD                              = 0x9\n\tRTM_OLDDEL                              = 0xa\n\tRTM_REDIRECT                            = 0x6\n\tRTM_RESOLVE                             = 0xb\n\tRTM_RTTUNIT                             = 0xf4240\n\tRTM_VERSION                             = 0x5\n\tRTV_EXPIRE                              = 0x4\n\tRTV_HOPCOUNT                            = 0x2\n\tRTV_MTU                                 = 0x1\n\tRTV_RPIPE                               = 0x8\n\tRTV_RTT                                 = 0x40\n\tRTV_RTTVAR                              = 0x80\n\tRTV_SPIPE                               = 0x10\n\tRTV_SSTHRESH                            = 0x20\n\tRUSAGE_CHILDREN                         = -0x1\n\tRUSAGE_SELF                             = 0x0\n\tSAE_ASSOCID_ALL                         = 0xffffffff\n\tSAE_ASSOCID_ANY                         = 0x0\n\tSAE_CONNID_ALL                          = 0xffffffff\n\tSAE_CONNID_ANY                          = 0x0\n\tSCM_CREDS                               = 0x3\n\tSCM_RIGHTS                              = 0x1\n\tSCM_TIMESTAMP                           = 0x2\n\tSCM_TIMESTAMP_MONOTONIC                 = 0x4\n\tSEEK_CUR                                = 0x1\n\tSEEK_DATA                               = 0x4\n\tSEEK_END                                = 0x2\n\tSEEK_HOLE                               = 0x3\n\tSEEK_SET                                = 0x0\n\tSF_APPEND                               = 0x40000\n\tSF_ARCHIVED                             = 0x10000\n\tSF_DATALESS                             = 0x40000000\n\tSF_FIRMLINK                             = 0x800000\n\tSF_IMMUTABLE                            = 0x20000\n\tSF_NOUNLINK                             = 0x100000\n\tSF_RESTRICTED                           = 0x80000\n\tSF_SETTABLE                             = 0x3fff0000\n\tSF_SUPPORTED                            = 0x9f0000\n\tSF_SYNTHETIC                            = 0xc0000000\n\tSHUT_RD                                 = 0x0\n\tSHUT_RDWR                               = 0x2\n\tSHUT_WR                                 = 0x1\n\tSIOCADDMULTI                            = 0x80206931\n\tSIOCAIFADDR                             = 0x8040691a\n\tSIOCARPIPLL                             = 0xc0206928\n\tSIOCATMARK                              = 0x40047307\n\tSIOCAUTOADDR                            = 0xc0206926\n\tSIOCAUTONETMASK                         = 0x80206927\n\tSIOCDELMULTI                            = 0x80206932\n\tSIOCDIFADDR                             = 0x80206919\n\tSIOCDIFPHYADDR                          = 0x80206941\n\tSIOCGDRVSPEC                            = 0xc028697b\n\tSIOCGETVLAN                             = 0xc020697f\n\tSIOCGHIWAT                              = 0x40047301\n\tSIOCGIF6LOWPAN                          = 0xc02069c5\n\tSIOCGIFADDR                             = 0xc0206921\n\tSIOCGIFALTMTU                           = 0xc0206948\n\tSIOCGIFASYNCMAP                         = 0xc020697c\n\tSIOCGIFBOND                             = 0xc0206947\n\tSIOCGIFBRDADDR                          = 0xc0206923\n\tSIOCGIFCAP                              = 0xc020695b\n\tSIOCGIFCONF                             = 0xc00c6924\n\tSIOCGIFDEVMTU                           = 0xc0206944\n\tSIOCGIFDSTADDR                          = 0xc0206922\n\tSIOCGIFFLAGS                            = 0xc0206911\n\tSIOCGIFFUNCTIONALTYPE                   = 0xc02069ad\n\tSIOCGIFGENERIC                          = 0xc020693a\n\tSIOCGIFKPI                              = 0xc0206987\n\tSIOCGIFMAC                              = 0xc0206982\n\tSIOCGIFMEDIA                            = 0xc02c6938\n\tSIOCGIFMETRIC                           = 0xc0206917\n\tSIOCGIFMTU                              = 0xc0206933\n\tSIOCGIFNETMASK                          = 0xc0206925\n\tSIOCGIFPDSTADDR                         = 0xc0206940\n\tSIOCGIFPHYS                             = 0xc0206935\n\tSIOCGIFPSRCADDR                         = 0xc020693f\n\tSIOCGIFSTATUS                           = 0xc331693d\n\tSIOCGIFVLAN                             = 0xc020697f\n\tSIOCGIFWAKEFLAGS                        = 0xc0206988\n\tSIOCGIFXMEDIA                           = 0xc02c6948\n\tSIOCGLOWAT                              = 0x40047303\n\tSIOCGPGRP                               = 0x40047309\n\tSIOCIFCREATE                            = 0xc0206978\n\tSIOCIFCREATE2                           = 0xc020697a\n\tSIOCIFDESTROY                           = 0x80206979\n\tSIOCIFGCLONERS                          = 0xc0106981\n\tSIOCRSLVMULTI                           = 0xc010693b\n\tSIOCSDRVSPEC                            = 0x8028697b\n\tSIOCSETVLAN                             = 0x8020697e\n\tSIOCSHIWAT                              = 0x80047300\n\tSIOCSIF6LOWPAN                          = 0x802069c4\n\tSIOCSIFADDR                             = 0x8020690c\n\tSIOCSIFALTMTU                           = 0x80206945\n\tSIOCSIFASYNCMAP                         = 0x8020697d\n\tSIOCSIFBOND                             = 0x80206946\n\tSIOCSIFBRDADDR                          = 0x80206913\n\tSIOCSIFCAP                              = 0x8020695a\n\tSIOCSIFDSTADDR                          = 0x8020690e\n\tSIOCSIFFLAGS                            = 0x80206910\n\tSIOCSIFGENERIC                          = 0x80206939\n\tSIOCSIFKPI                              = 0x80206986\n\tSIOCSIFLLADDR                           = 0x8020693c\n\tSIOCSIFMAC                              = 0x80206983\n\tSIOCSIFMEDIA                            = 0xc0206937\n\tSIOCSIFMETRIC                           = 0x80206918\n\tSIOCSIFMTU                              = 0x80206934\n\tSIOCSIFNETMASK                          = 0x80206916\n\tSIOCSIFPHYADDR                          = 0x8040693e\n\tSIOCSIFPHYS                             = 0x80206936\n\tSIOCSIFVLAN                             = 0x8020697e\n\tSIOCSLOWAT                              = 0x80047302\n\tSIOCSPGRP                               = 0x80047308\n\tSOCK_DGRAM                              = 0x2\n\tSOCK_MAXADDRLEN                         = 0xff\n\tSOCK_RAW                                = 0x3\n\tSOCK_RDM                                = 0x4\n\tSOCK_SEQPACKET                          = 0x5\n\tSOCK_STREAM                             = 0x1\n\tSOL_LOCAL                               = 0x0\n\tSOL_SOCKET                              = 0xffff\n\tSOMAXCONN                               = 0x80\n\tSO_ACCEPTCONN                           = 0x2\n\tSO_BROADCAST                            = 0x20\n\tSO_DEBUG                                = 0x1\n\tSO_DONTROUTE                            = 0x10\n\tSO_DONTTRUNC                            = 0x2000\n\tSO_ERROR                                = 0x1007\n\tSO_KEEPALIVE                            = 0x8\n\tSO_LABEL                                = 0x1010\n\tSO_LINGER                               = 0x80\n\tSO_LINGER_SEC                           = 0x1080\n\tSO_NETSVC_MARKING_LEVEL                 = 0x1119\n\tSO_NET_SERVICE_TYPE                     = 0x1116\n\tSO_NKE                                  = 0x1021\n\tSO_NOADDRERR                            = 0x1023\n\tSO_NOSIGPIPE                            = 0x1022\n\tSO_NOTIFYCONFLICT                       = 0x1026\n\tSO_NP_EXTENSIONS                        = 0x1083\n\tSO_NREAD                                = 0x1020\n\tSO_NUMRCVPKT                            = 0x1112\n\tSO_NWRITE                               = 0x1024\n\tSO_OOBINLINE                            = 0x100\n\tSO_PEERLABEL                            = 0x1011\n\tSO_RANDOMPORT                           = 0x1082\n\tSO_RCVBUF                               = 0x1002\n\tSO_RCVLOWAT                             = 0x1004\n\tSO_RCVTIMEO                             = 0x1006\n\tSO_REUSEADDR                            = 0x4\n\tSO_REUSEPORT                            = 0x200\n\tSO_REUSESHAREUID                        = 0x1025\n\tSO_SNDBUF                               = 0x1001\n\tSO_SNDLOWAT                             = 0x1003\n\tSO_SNDTIMEO                             = 0x1005\n\tSO_TIMESTAMP                            = 0x400\n\tSO_TIMESTAMP_MONOTONIC                  = 0x800\n\tSO_TRACKER_ATTRIBUTE_FLAGS_APP_APPROVED = 0x1\n\tSO_TRACKER_ATTRIBUTE_FLAGS_DOMAIN_SHORT = 0x4\n\tSO_TRACKER_ATTRIBUTE_FLAGS_TRACKER      = 0x2\n\tSO_TRACKER_TRANSPARENCY_VERSION         = 0x3\n\tSO_TYPE                                 = 0x1008\n\tSO_UPCALLCLOSEWAIT                      = 0x1027\n\tSO_USELOOPBACK                          = 0x40\n\tSO_WANTMORE                             = 0x4000\n\tSO_WANTOOBFLAG                          = 0x8000\n\tS_IEXEC                                 = 0x40\n\tS_IFBLK                                 = 0x6000\n\tS_IFCHR                                 = 0x2000\n\tS_IFDIR                                 = 0x4000\n\tS_IFIFO                                 = 0x1000\n\tS_IFLNK                                 = 0xa000\n\tS_IFMT                                  = 0xf000\n\tS_IFREG                                 = 0x8000\n\tS_IFSOCK                                = 0xc000\n\tS_IFWHT                                 = 0xe000\n\tS_IREAD                                 = 0x100\n\tS_IRGRP                                 = 0x20\n\tS_IROTH                                 = 0x4\n\tS_IRUSR                                 = 0x100\n\tS_IRWXG                                 = 0x38\n\tS_IRWXO                                 = 0x7\n\tS_IRWXU                                 = 0x1c0\n\tS_ISGID                                 = 0x400\n\tS_ISTXT                                 = 0x200\n\tS_ISUID                                 = 0x800\n\tS_ISVTX                                 = 0x200\n\tS_IWGRP                                 = 0x10\n\tS_IWOTH                                 = 0x2\n\tS_IWRITE                                = 0x80\n\tS_IWUSR                                 = 0x80\n\tS_IXGRP                                 = 0x8\n\tS_IXOTH                                 = 0x1\n\tS_IXUSR                                 = 0x40\n\tTAB0                                    = 0x0\n\tTAB1                                    = 0x400\n\tTAB2                                    = 0x800\n\tTAB3                                    = 0x4\n\tTABDLY                                  = 0xc04\n\tTCIFLUSH                                = 0x1\n\tTCIOFF                                  = 0x3\n\tTCIOFLUSH                               = 0x3\n\tTCION                                   = 0x4\n\tTCOFLUSH                                = 0x2\n\tTCOOFF                                  = 0x1\n\tTCOON                                   = 0x2\n\tTCPOPT_CC                               = 0xb\n\tTCPOPT_CCECHO                           = 0xd\n\tTCPOPT_CCNEW                            = 0xc\n\tTCPOPT_EOL                              = 0x0\n\tTCPOPT_FASTOPEN                         = 0x22\n\tTCPOPT_MAXSEG                           = 0x2\n\tTCPOPT_NOP                              = 0x1\n\tTCPOPT_SACK                             = 0x5\n\tTCPOPT_SACK_HDR                         = 0x1010500\n\tTCPOPT_SACK_PERMITTED                   = 0x4\n\tTCPOPT_SACK_PERMIT_HDR                  = 0x1010402\n\tTCPOPT_SIGNATURE                        = 0x13\n\tTCPOPT_TIMESTAMP                        = 0x8\n\tTCPOPT_TSTAMP_HDR                       = 0x101080a\n\tTCPOPT_WINDOW                           = 0x3\n\tTCP_CONNECTIONTIMEOUT                   = 0x20\n\tTCP_CONNECTION_INFO                     = 0x106\n\tTCP_ENABLE_ECN                          = 0x104\n\tTCP_FASTOPEN                            = 0x105\n\tTCP_KEEPALIVE                           = 0x10\n\tTCP_KEEPCNT                             = 0x102\n\tTCP_KEEPINTVL                           = 0x101\n\tTCP_MAXHLEN                             = 0x3c\n\tTCP_MAXOLEN                             = 0x28\n\tTCP_MAXSEG                              = 0x2\n\tTCP_MAXWIN                              = 0xffff\n\tTCP_MAX_SACK                            = 0x4\n\tTCP_MAX_WINSHIFT                        = 0xe\n\tTCP_MINMSS                              = 0xd8\n\tTCP_MSS                                 = 0x200\n\tTCP_NODELAY                             = 0x1\n\tTCP_NOOPT                               = 0x8\n\tTCP_NOPUSH                              = 0x4\n\tTCP_NOTSENT_LOWAT                       = 0x201\n\tTCP_RXT_CONNDROPTIME                    = 0x80\n\tTCP_RXT_FINDROP                         = 0x100\n\tTCP_SENDMOREACKS                        = 0x103\n\tTCSAFLUSH                               = 0x2\n\tTIOCCBRK                                = 0x2000747a\n\tTIOCCDTR                                = 0x20007478\n\tTIOCCONS                                = 0x80047462\n\tTIOCDCDTIMESTAMP                        = 0x40107458\n\tTIOCDRAIN                               = 0x2000745e\n\tTIOCDSIMICROCODE                        = 0x20007455\n\tTIOCEXCL                                = 0x2000740d\n\tTIOCEXT                                 = 0x80047460\n\tTIOCFLUSH                               = 0x80047410\n\tTIOCGDRAINWAIT                          = 0x40047456\n\tTIOCGETA                                = 0x40487413\n\tTIOCGETD                                = 0x4004741a\n\tTIOCGPGRP                               = 0x40047477\n\tTIOCGWINSZ                              = 0x40087468\n\tTIOCIXOFF                               = 0x20007480\n\tTIOCIXON                                = 0x20007481\n\tTIOCMBIC                                = 0x8004746b\n\tTIOCMBIS                                = 0x8004746c\n\tTIOCMGDTRWAIT                           = 0x4004745a\n\tTIOCMGET                                = 0x4004746a\n\tTIOCMODG                                = 0x40047403\n\tTIOCMODS                                = 0x80047404\n\tTIOCMSDTRWAIT                           = 0x8004745b\n\tTIOCMSET                                = 0x8004746d\n\tTIOCM_CAR                               = 0x40\n\tTIOCM_CD                                = 0x40\n\tTIOCM_CTS                               = 0x20\n\tTIOCM_DSR                               = 0x100\n\tTIOCM_DTR                               = 0x2\n\tTIOCM_LE                                = 0x1\n\tTIOCM_RI                                = 0x80\n\tTIOCM_RNG                               = 0x80\n\tTIOCM_RTS                               = 0x4\n\tTIOCM_SR                                = 0x10\n\tTIOCM_ST                                = 0x8\n\tTIOCNOTTY                               = 0x20007471\n\tTIOCNXCL                                = 0x2000740e\n\tTIOCOUTQ                                = 0x40047473\n\tTIOCPKT                                 = 0x80047470\n\tTIOCPKT_DATA                            = 0x0\n\tTIOCPKT_DOSTOP                          = 0x20\n\tTIOCPKT_FLUSHREAD                       = 0x1\n\tTIOCPKT_FLUSHWRITE                      = 0x2\n\tTIOCPKT_IOCTL                           = 0x40\n\tTIOCPKT_NOSTOP                          = 0x10\n\tTIOCPKT_START                           = 0x8\n\tTIOCPKT_STOP                            = 0x4\n\tTIOCPTYGNAME                            = 0x40807453\n\tTIOCPTYGRANT                            = 0x20007454\n\tTIOCPTYUNLK                             = 0x20007452\n\tTIOCREMOTE                              = 0x80047469\n\tTIOCSBRK                                = 0x2000747b\n\tTIOCSCONS                               = 0x20007463\n\tTIOCSCTTY                               = 0x20007461\n\tTIOCSDRAINWAIT                          = 0x80047457\n\tTIOCSDTR                                = 0x20007479\n\tTIOCSETA                                = 0x80487414\n\tTIOCSETAF                               = 0x80487416\n\tTIOCSETAW                               = 0x80487415\n\tTIOCSETD                                = 0x8004741b\n\tTIOCSIG                                 = 0x2000745f\n\tTIOCSPGRP                               = 0x80047476\n\tTIOCSTART                               = 0x2000746e\n\tTIOCSTAT                                = 0x20007465\n\tTIOCSTI                                 = 0x80017472\n\tTIOCSTOP                                = 0x2000746f\n\tTIOCSWINSZ                              = 0x80087467\n\tTIOCTIMESTAMP                           = 0x40107459\n\tTIOCUCNTL                               = 0x80047466\n\tTOSTOP                                  = 0x400000\n\tUF_APPEND                               = 0x4\n\tUF_COMPRESSED                           = 0x20\n\tUF_DATAVAULT                            = 0x80\n\tUF_HIDDEN                               = 0x8000\n\tUF_IMMUTABLE                            = 0x2\n\tUF_NODUMP                               = 0x1\n\tUF_OPAQUE                               = 0x8\n\tUF_SETTABLE                             = 0xffff\n\tUF_TRACKED                              = 0x40\n\tVDISCARD                                = 0xf\n\tVDSUSP                                  = 0xb\n\tVEOF                                    = 0x0\n\tVEOL                                    = 0x1\n\tVEOL2                                   = 0x2\n\tVERASE                                  = 0x3\n\tVINTR                                   = 0x8\n\tVKILL                                   = 0x5\n\tVLNEXT                                  = 0xe\n\tVMADDR_CID_ANY                          = 0xffffffff\n\tVMADDR_CID_HOST                         = 0x2\n\tVMADDR_CID_HYPERVISOR                   = 0x0\n\tVMADDR_CID_RESERVED                     = 0x1\n\tVMADDR_PORT_ANY                         = 0xffffffff\n\tVMIN                                    = 0x10\n\tVM_LOADAVG                              = 0x2\n\tVM_MACHFACTOR                           = 0x4\n\tVM_MAXID                                = 0x6\n\tVM_METER                                = 0x1\n\tVM_SWAPUSAGE                            = 0x5\n\tVQUIT                                   = 0x9\n\tVREPRINT                                = 0x6\n\tVSTART                                  = 0xc\n\tVSTATUS                                 = 0x12\n\tVSTOP                                   = 0xd\n\tVSUSP                                   = 0xa\n\tVT0                                     = 0x0\n\tVT1                                     = 0x10000\n\tVTDLY                                   = 0x10000\n\tVTIME                                   = 0x11\n\tVWERASE                                 = 0x4\n\tWCONTINUED                              = 0x10\n\tWCOREFLAG                               = 0x80\n\tWEXITED                                 = 0x4\n\tWNOHANG                                 = 0x1\n\tWNOWAIT                                 = 0x20\n\tWORDSIZE                                = 0x40\n\tWSTOPPED                                = 0x8\n\tWUNTRACED                               = 0x2\n\tXATTR_CREATE                            = 0x2\n\tXATTR_NODEFAULT                         = 0x10\n\tXATTR_NOFOLLOW                          = 0x1\n\tXATTR_NOSECURITY                        = 0x8\n\tXATTR_REPLACE                           = 0x4\n\tXATTR_SHOWCOMPRESSION                   = 0x20\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADARCH        = syscall.Errno(0x56)\n\tEBADEXEC        = syscall.Errno(0x55)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMACHO       = syscall.Errno(0x58)\n\tEBADMSG         = syscall.Errno(0x5e)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x59)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDEVERR         = syscall.Errno(0x53)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x5a)\n\tEILSEQ          = syscall.Errno(0x5c)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x6a)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5f)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x5d)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODATA         = syscall.Errno(0x60)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x61)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x5b)\n\tENOPOLICY       = syscall.Errno(0x67)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x62)\n\tENOSTR          = syscall.Errno(0x63)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x68)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x2d)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x66)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEOWNERDEAD      = syscall.Errno(0x69)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x64)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tEPWROFF         = syscall.Errno(0x52)\n\tEQFULL          = syscall.Errno(0x6a)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHLIBVERS      = syscall.Errno(0x57)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIME           = syscall.Errno(0x65)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"ENOTSUP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EPWROFF\", \"device power is off\"},\n\t{83, \"EDEVERR\", \"device error\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"EBADEXEC\", \"bad executable (or shared library)\"},\n\t{86, \"EBADARCH\", \"bad CPU type in executable\"},\n\t{87, \"ESHLIBVERS\", \"shared library version mismatch\"},\n\t{88, \"EBADMACHO\", \"malformed Mach-o file\"},\n\t{89, \"ECANCELED\", \"operation canceled\"},\n\t{90, \"EIDRM\", \"identifier removed\"},\n\t{91, \"ENOMSG\", \"no message of desired type\"},\n\t{92, \"EILSEQ\", \"illegal byte sequence\"},\n\t{93, \"ENOATTR\", \"attribute not found\"},\n\t{94, \"EBADMSG\", \"bad message\"},\n\t{95, \"EMULTIHOP\", \"EMULTIHOP (Reserved)\"},\n\t{96, \"ENODATA\", \"no message available on STREAM\"},\n\t{97, \"ENOLINK\", \"ENOLINK (Reserved)\"},\n\t{98, \"ENOSR\", \"no STREAM resources\"},\n\t{99, \"ENOSTR\", \"not a STREAM\"},\n\t{100, \"EPROTO\", \"protocol error\"},\n\t{101, \"ETIME\", \"STREAM ioctl timeout\"},\n\t{102, \"EOPNOTSUPP\", \"operation not supported on socket\"},\n\t{103, \"ENOPOLICY\", \"policy not found\"},\n\t{104, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{105, \"EOWNERDEAD\", \"previous owner died\"},\n\t{106, \"EQFULL\", \"interface output queue is full\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGABRT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && dragonfly\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_ATM                            = 0x1e\n\tAF_BLUETOOTH                      = 0x21\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_HYLINK                         = 0xf\n\tAF_IEEE80211                      = 0x23\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x1c\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x24\n\tAF_MPLS                           = 0x22\n\tAF_NATM                           = 0x1d\n\tAF_NETBIOS                        = 0x6\n\tAF_NETGRAPH                       = 0x20\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x11\n\tAF_SIP                            = 0x18\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tALTWERASE                         = 0x200\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB460800                           = 0x70800\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB921600                           = 0xe1000\n\tB9600                             = 0x2580\n\tBIOCFEEDBACK                      = 0x8004427d\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc0104279\n\tBIOCGETIF                         = 0x4020426b\n\tBIOCGFEEDBACK                     = 0x4004427c\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRSIG                         = 0x40044272\n\tBIOCGRTIMEOUT                     = 0x4010426e\n\tBIOCGSEESENT                      = 0x40044276\n\tBIOCGSTATS                        = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCLOCK                          = 0x2000427a\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDLT                          = 0x80044278\n\tBIOCSETF                          = 0x80104267\n\tBIOCSETIF                         = 0x8020426c\n\tBIOCSETWF                         = 0x8010427b\n\tBIOCSFEEDBACK                     = 0x8004427d\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRSIG                         = 0x80044273\n\tBIOCSRTIMEOUT                     = 0x8010426d\n\tBIOCSSEESENT                      = 0x80044277\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x8\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DEFAULTBUFSIZE                = 0x1000\n\tBPF_DIV                           = 0x30\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x80000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MAX_CLONES                    = 0x80\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MOD                           = 0x90\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBPF_XOR                           = 0xa0\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCLOCK_MONOTONIC                   = 0x4\n\tCLOCK_MONOTONIC_FAST              = 0xc\n\tCLOCK_MONOTONIC_PRECISE           = 0xb\n\tCLOCK_PROCESS_CPUTIME_ID          = 0xf\n\tCLOCK_PROF                        = 0x2\n\tCLOCK_REALTIME                    = 0x0\n\tCLOCK_REALTIME_FAST               = 0xa\n\tCLOCK_REALTIME_PRECISE            = 0x9\n\tCLOCK_SECOND                      = 0xd\n\tCLOCK_THREAD_CPUTIME_ID           = 0xe\n\tCLOCK_UPTIME                      = 0x5\n\tCLOCK_UPTIME_FAST                 = 0x8\n\tCLOCK_UPTIME_PRECISE              = 0x7\n\tCLOCK_VIRTUAL                     = 0x1\n\tCPUSTATES                         = 0x5\n\tCP_IDLE                           = 0x4\n\tCP_INTR                           = 0x3\n\tCP_NICE                           = 0x1\n\tCP_SYS                            = 0x2\n\tCP_USER                           = 0x0\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x30000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0x14\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tDLT_A429                          = 0xb8\n\tDLT_A653_ICM                      = 0xb9\n\tDLT_AIRONET_HEADER                = 0x78\n\tDLT_AOS                           = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394        = 0x8a\n\tDLT_ARCNET                        = 0x7\n\tDLT_ARCNET_LINUX                  = 0x81\n\tDLT_ATM_CLIP                      = 0x13\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AURORA                        = 0x7e\n\tDLT_AX25                          = 0x3\n\tDLT_AX25_KISS                     = 0xca\n\tDLT_BACNET_MS_TP                  = 0xa5\n\tDLT_BLUETOOTH_BREDR_BB            = 0xff\n\tDLT_BLUETOOTH_HCI_H4              = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR    = 0xc9\n\tDLT_BLUETOOTH_LE_LL               = 0xfb\n\tDLT_BLUETOOTH_LE_LL_WITH_PHDR     = 0x100\n\tDLT_BLUETOOTH_LINUX_MONITOR       = 0xfe\n\tDLT_CAN20B                        = 0xbe\n\tDLT_CAN_SOCKETCAN                 = 0xe3\n\tDLT_CHAOS                         = 0x5\n\tDLT_CHDLC                         = 0x68\n\tDLT_CISCO_IOS                     = 0x76\n\tDLT_C_HDLC                        = 0x68\n\tDLT_C_HDLC_WITH_DIR               = 0xcd\n\tDLT_DBUS                          = 0xe7\n\tDLT_DECT                          = 0xdd\n\tDLT_DOCSIS                        = 0x8f\n\tDLT_DVB_CI                        = 0xeb\n\tDLT_ECONET                        = 0x73\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0x6d\n\tDLT_EPON                          = 0x103\n\tDLT_ERF                           = 0xc5\n\tDLT_ERF_ETH                       = 0xaf\n\tDLT_ERF_POS                       = 0xb0\n\tDLT_FC_2                          = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS        = 0xe1\n\tDLT_FDDI                          = 0xa\n\tDLT_FLEXRAY                       = 0xd2\n\tDLT_FRELAY                        = 0x6b\n\tDLT_FRELAY_WITH_DIR               = 0xce\n\tDLT_GCOM_SERIAL                   = 0xad\n\tDLT_GCOM_T1E1                     = 0xac\n\tDLT_GPF_F                         = 0xab\n\tDLT_GPF_T                         = 0xaa\n\tDLT_GPRS_LLC                      = 0xa9\n\tDLT_GSMTAP_ABIS                   = 0xda\n\tDLT_GSMTAP_UM                     = 0xd9\n\tDLT_HHDLC                         = 0x79\n\tDLT_IBM_SN                        = 0x92\n\tDLT_IBM_SP                        = 0x91\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS          = 0xa3\n\tDLT_IEEE802_15_4                  = 0xc3\n\tDLT_IEEE802_15_4_LINUX            = 0xbf\n\tDLT_IEEE802_15_4_NOFCS            = 0xe6\n\tDLT_IEEE802_15_4_NONASK_PHY       = 0xd7\n\tDLT_IEEE802_16_MAC_CPS            = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO      = 0xc1\n\tDLT_INFINIBAND                    = 0xf7\n\tDLT_IPFILTER                      = 0x74\n\tDLT_IPMB                          = 0xc7\n\tDLT_IPMB_LINUX                    = 0xd1\n\tDLT_IPMI_HPM_2                    = 0x104\n\tDLT_IPNET                         = 0xe2\n\tDLT_IPOIB                         = 0xf2\n\tDLT_IPV4                          = 0xe4\n\tDLT_IPV6                          = 0xe5\n\tDLT_IP_OVER_FC                    = 0x7a\n\tDLT_ISO_14443                     = 0x108\n\tDLT_JUNIPER_ATM1                  = 0x89\n\tDLT_JUNIPER_ATM2                  = 0x87\n\tDLT_JUNIPER_ATM_CEMIC             = 0xee\n\tDLT_JUNIPER_CHDLC                 = 0xb5\n\tDLT_JUNIPER_ES                    = 0x84\n\tDLT_JUNIPER_ETHER                 = 0xb2\n\tDLT_JUNIPER_FIBRECHANNEL          = 0xea\n\tDLT_JUNIPER_FRELAY                = 0xb4\n\tDLT_JUNIPER_GGSN                  = 0x85\n\tDLT_JUNIPER_ISM                   = 0xc2\n\tDLT_JUNIPER_MFR                   = 0x86\n\tDLT_JUNIPER_MLFR                  = 0x83\n\tDLT_JUNIPER_MLPPP                 = 0x82\n\tDLT_JUNIPER_MONITOR               = 0xa4\n\tDLT_JUNIPER_PIC_PEER              = 0xae\n\tDLT_JUNIPER_PPP                   = 0xb3\n\tDLT_JUNIPER_PPPOE                 = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM             = 0xa8\n\tDLT_JUNIPER_SERVICES              = 0x88\n\tDLT_JUNIPER_SRX_E2E               = 0xe9\n\tDLT_JUNIPER_ST                    = 0xc8\n\tDLT_JUNIPER_VP                    = 0xb7\n\tDLT_JUNIPER_VS                    = 0xe8\n\tDLT_LAPB_WITH_DIR                 = 0xcf\n\tDLT_LAPD                          = 0xcb\n\tDLT_LIN                           = 0xd4\n\tDLT_LINUX_EVDEV                   = 0xd8\n\tDLT_LINUX_IRDA                    = 0x90\n\tDLT_LINUX_LAPD                    = 0xb1\n\tDLT_LINUX_SLL                     = 0x71\n\tDLT_LOOP                          = 0x6c\n\tDLT_LTALK                         = 0x72\n\tDLT_MATCHING_MAX                  = 0x109\n\tDLT_MATCHING_MIN                  = 0x68\n\tDLT_MFR                           = 0xb6\n\tDLT_MOST                          = 0xd3\n\tDLT_MPEG_2_TS                     = 0xf3\n\tDLT_MPLS                          = 0xdb\n\tDLT_MTP2                          = 0x8c\n\tDLT_MTP2_WITH_PHDR                = 0x8b\n\tDLT_MTP3                          = 0x8d\n\tDLT_MUX27010                      = 0xec\n\tDLT_NETANALYZER                   = 0xf0\n\tDLT_NETANALYZER_TRANSPARENT       = 0xf1\n\tDLT_NETLINK                       = 0xfd\n\tDLT_NFC_LLCP                      = 0xf5\n\tDLT_NFLOG                         = 0xef\n\tDLT_NG40                          = 0xf4\n\tDLT_NULL                          = 0x0\n\tDLT_PCI_EXP                       = 0x7d\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PKTAP                         = 0x102\n\tDLT_PPI                           = 0xc0\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0x10\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_PPPD                      = 0xa6\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PPP_WITH_DIR                  = 0xcc\n\tDLT_PRISM_HEADER                  = 0x77\n\tDLT_PROFIBUS_DL                   = 0x101\n\tDLT_PRONET                        = 0x4\n\tDLT_RAIF1                         = 0xc6\n\tDLT_RAW                           = 0xc\n\tDLT_RDS                           = 0x109\n\tDLT_REDBACK_SMARTEDGE             = 0x20\n\tDLT_RIO                           = 0x7c\n\tDLT_RTAC_SERIAL                   = 0xfa\n\tDLT_SCCP                          = 0x8e\n\tDLT_SCTP                          = 0xf8\n\tDLT_SITA                          = 0xc4\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xf\n\tDLT_STANAG_5066_D_PDU             = 0xed\n\tDLT_SUNATM                        = 0x7b\n\tDLT_SYMANTEC_FIREWALL             = 0x63\n\tDLT_TZSP                          = 0x80\n\tDLT_USB                           = 0xba\n\tDLT_USBPCAP                       = 0xf9\n\tDLT_USB_FREEBSD                   = 0xba\n\tDLT_USB_LINUX                     = 0xbd\n\tDLT_USB_LINUX_MMAPPED             = 0xdc\n\tDLT_USER0                         = 0x93\n\tDLT_USER1                         = 0x94\n\tDLT_USER10                        = 0x9d\n\tDLT_USER11                        = 0x9e\n\tDLT_USER12                        = 0x9f\n\tDLT_USER13                        = 0xa0\n\tDLT_USER14                        = 0xa1\n\tDLT_USER15                        = 0xa2\n\tDLT_USER2                         = 0x95\n\tDLT_USER3                         = 0x96\n\tDLT_USER4                         = 0x97\n\tDLT_USER5                         = 0x98\n\tDLT_USER6                         = 0x99\n\tDLT_USER7                         = 0x9a\n\tDLT_USER8                         = 0x9b\n\tDLT_USER9                         = 0x9c\n\tDLT_WATTSTOPPER_DLM               = 0x107\n\tDLT_WIHART                        = 0xdf\n\tDLT_WIRESHARK_UPPER_PDU           = 0xfc\n\tDLT_X2E_SERIAL                    = 0xd5\n\tDLT_X2E_XORAYA                    = 0xd6\n\tDLT_ZWAVE_R1_R2                   = 0x105\n\tDLT_ZWAVE_R3                      = 0x106\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DBF                            = 0xf\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tDT_WHT                            = 0xe\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEVFILT_AIO                        = -0x3\n\tEVFILT_EXCEPT                     = -0x8\n\tEVFILT_FS                         = -0xa\n\tEVFILT_MARKER                     = 0xf\n\tEVFILT_PROC                       = -0x5\n\tEVFILT_READ                       = -0x1\n\tEVFILT_SIGNAL                     = -0x6\n\tEVFILT_SYSCOUNT                   = 0xa\n\tEVFILT_TIMER                      = -0x7\n\tEVFILT_USER                       = -0x9\n\tEVFILT_VNODE                      = -0x4\n\tEVFILT_WRITE                      = -0x2\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_DISPATCH                       = 0x80\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_HUP                            = 0x800\n\tEV_NODATA                         = 0x1000\n\tEV_ONESHOT                        = 0x10\n\tEV_RECEIPT                        = 0x40\n\tEV_SYSFLAGS                       = 0xf800\n\tEXTA                              = 0x4b00\n\tEXTB                              = 0x9600\n\tEXTEXIT_LWP                       = 0x10000\n\tEXTEXIT_PROC                      = 0x0\n\tEXTEXIT_SETINT                    = 0x1\n\tEXTEXIT_SIMPLE                    = 0x0\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x400\n\tFLUSHO                            = 0x800000\n\tF_DUP2FD                          = 0xa\n\tF_DUP2FD_CLOEXEC                  = 0x12\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0x11\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETOWN                          = 0x5\n\tF_OK                              = 0x0\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_ALTPHYS                       = 0x4000\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x318e72\n\tIFF_DEBUG                         = 0x4\n\tIFF_IDIRECT                       = 0x200000\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MONITOR                       = 0x40000\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_NPOLLING                      = 0x100000\n\tIFF_OACTIVE                       = 0x400\n\tIFF_OACTIVE_COMPAT                = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_POLLING                       = 0x10000\n\tIFF_POLLING_COMPAT                = 0x10000\n\tIFF_PPROMISC                      = 0x20000\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_SMART                         = 0x20\n\tIFF_STATICARP                     = 0x80000\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf8\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ENC                           = 0xf4\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf1\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_STF                           = 0xf3\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIN_RFC3021_MASK                   = 0xfffffffe\n\tIPPROTO_3PC                       = 0x22\n\tIPPROTO_ADFS                      = 0x44\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_AHIP                      = 0x3d\n\tIPPROTO_APES                      = 0x63\n\tIPPROTO_ARGUS                     = 0xd\n\tIPPROTO_AX25                      = 0x5d\n\tIPPROTO_BHA                       = 0x31\n\tIPPROTO_BLT                       = 0x1e\n\tIPPROTO_BRSATMON                  = 0x4c\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_CFTP                      = 0x3e\n\tIPPROTO_CHAOS                     = 0x10\n\tIPPROTO_CMTP                      = 0x26\n\tIPPROTO_CPHB                      = 0x49\n\tIPPROTO_CPNX                      = 0x48\n\tIPPROTO_DDP                       = 0x25\n\tIPPROTO_DGP                       = 0x56\n\tIPPROTO_DIVERT                    = 0xfe\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_EMCON                     = 0xe\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GMTP                      = 0x64\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HELLO                     = 0x3f\n\tIPPROTO_HMP                       = 0x14\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IDPR                      = 0x23\n\tIPPROTO_IDRP                      = 0x2d\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IGP                       = 0x55\n\tIPPROTO_IGRP                      = 0x58\n\tIPPROTO_IL                        = 0x28\n\tIPPROTO_INLSP                     = 0x34\n\tIPPROTO_INP                       = 0x20\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPCV                      = 0x47\n\tIPPROTO_IPEIP                     = 0x5e\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPPC                      = 0x43\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_IRTP                      = 0x1c\n\tIPPROTO_KRYPTOLAN                 = 0x41\n\tIPPROTO_LARP                      = 0x5b\n\tIPPROTO_LEAF1                     = 0x19\n\tIPPROTO_LEAF2                     = 0x1a\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x34\n\tIPPROTO_MEAS                      = 0x13\n\tIPPROTO_MHRP                      = 0x30\n\tIPPROTO_MICP                      = 0x5f\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_MTP                       = 0x5c\n\tIPPROTO_MUX                       = 0x12\n\tIPPROTO_ND                        = 0x4d\n\tIPPROTO_NHRP                      = 0x36\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_NSP                       = 0x1f\n\tIPPROTO_NVPII                     = 0xb\n\tIPPROTO_OSPFIGP                   = 0x59\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PGM                       = 0x71\n\tIPPROTO_PIGP                      = 0x9\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PRM                       = 0x15\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_PVP                       = 0x4b\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_RCCMON                    = 0xa\n\tIPPROTO_RDP                       = 0x1b\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_RVD                       = 0x42\n\tIPPROTO_SATEXPAK                  = 0x40\n\tIPPROTO_SATMON                    = 0x45\n\tIPPROTO_SCCSP                     = 0x60\n\tIPPROTO_SDRP                      = 0x2a\n\tIPPROTO_SEP                       = 0x21\n\tIPPROTO_SKIP                      = 0x39\n\tIPPROTO_SRPC                      = 0x5a\n\tIPPROTO_ST                        = 0x7\n\tIPPROTO_SVMTP                     = 0x52\n\tIPPROTO_SWIPE                     = 0x35\n\tIPPROTO_TCF                       = 0x57\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TLSP                      = 0x38\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_TPXX                      = 0x27\n\tIPPROTO_TRUNK1                    = 0x17\n\tIPPROTO_TRUNK2                    = 0x18\n\tIPPROTO_TTP                       = 0x54\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_UNKNOWN                   = 0x102\n\tIPPROTO_VINES                     = 0x53\n\tIPPROTO_VISA                      = 0x46\n\tIPPROTO_VMTP                      = 0x51\n\tIPPROTO_WBEXPAK                   = 0x4f\n\tIPPROTO_WBMON                     = 0x4e\n\tIPPROTO_WSN                       = 0x4a\n\tIPPROTO_XNET                      = 0xf\n\tIPPROTO_XTP                       = 0x24\n\tIPV6_AUTOFLOWLABEL                = 0x3b\n\tIPV6_BINDV6ONLY                   = 0x1b\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_FLOWINFO_MASK                = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK               = 0xffff0f00\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_FW_ADD                       = 0x1e\n\tIPV6_FW_DEL                       = 0x1f\n\tIPV6_FW_FLUSH                     = 0x20\n\tIPV6_FW_GET                       = 0x22\n\tIPV6_FW_ZERO                      = 0x21\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MINHLIM                      = 0x28\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MSFILTER                     = 0x4a\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PKTOPTIONS                   = 0x34\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_PREFER_TEMPADDR              = 0x3f\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_DUMMYNET_CONFIGURE             = 0x3c\n\tIP_DUMMYNET_DEL                   = 0x3d\n\tIP_DUMMYNET_FLUSH                 = 0x3e\n\tIP_DUMMYNET_GET                   = 0x40\n\tIP_FW_ADD                         = 0x32\n\tIP_FW_DEL                         = 0x33\n\tIP_FW_FLUSH                       = 0x34\n\tIP_FW_GET                         = 0x36\n\tIP_FW_RESETLOG                    = 0x37\n\tIP_FW_TBL_ADD                     = 0x2a\n\tIP_FW_TBL_CREATE                  = 0x28\n\tIP_FW_TBL_DEL                     = 0x2b\n\tIP_FW_TBL_DESTROY                 = 0x29\n\tIP_FW_TBL_EXPIRE                  = 0x2f\n\tIP_FW_TBL_FLUSH                   = 0x2c\n\tIP_FW_TBL_GET                     = 0x2d\n\tIP_FW_TBL_ZERO                    = 0x2e\n\tIP_FW_X                           = 0x31\n\tIP_FW_ZERO                        = 0x35\n\tIP_HDRINCL                        = 0x2\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0x14\n\tIP_MF                             = 0x2000\n\tIP_MINTTL                         = 0x42\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_MULTICAST_VIF                  = 0xe\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVIF                         = 0x14\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVTTL                        = 0x41\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_RSVP_OFF                       = 0x10\n\tIP_RSVP_ON                        = 0xf\n\tIP_RSVP_VIF_OFF                   = 0x12\n\tIP_RSVP_VIF_ON                    = 0x11\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_AUTOSYNC                     = 0x7\n\tMADV_CONTROL_END                  = 0xb\n\tMADV_CONTROL_START                = 0xa\n\tMADV_CORE                         = 0x9\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x5\n\tMADV_INVAL                        = 0xa\n\tMADV_NOCORE                       = 0x8\n\tMADV_NORMAL                       = 0x0\n\tMADV_NOSYNC                       = 0x6\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SETMAP                       = 0xb\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ANON                          = 0x1000\n\tMAP_ANONYMOUS                     = 0x1000\n\tMAP_COPY                          = 0x2\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_HASSEMAPHORE                  = 0x200\n\tMAP_INHERIT                       = 0x80\n\tMAP_NOCORE                        = 0x20000\n\tMAP_NOEXTEND                      = 0x100\n\tMAP_NORESERVE                     = 0x40\n\tMAP_NOSYNC                        = 0x800\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x20\n\tMAP_SHARED                        = 0x1\n\tMAP_SIZEALIGN                     = 0x40000\n\tMAP_STACK                         = 0x400\n\tMAP_TRYFIXED                      = 0x10000\n\tMAP_VPAGETABLE                    = 0x2000\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_AUTOMOUNTED                   = 0x20\n\tMNT_CMDFLAGS                      = 0xf0000\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DELEXPORT                     = 0x20000\n\tMNT_EXKERB                        = 0x800\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXPUBLIC                      = 0x20000000\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_FORCE                         = 0x80000\n\tMNT_IGNORE                        = 0x800000\n\tMNT_LAZY                          = 0x4\n\tMNT_LOCAL                         = 0x1000\n\tMNT_NOATIME                       = 0x10000000\n\tMNT_NOCLUSTERR                    = 0x40000000\n\tMNT_NOCLUSTERW                    = 0x80000000\n\tMNT_NODEV                         = 0x10\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOSYMFOLLOW                   = 0x400000\n\tMNT_NOWAIT                        = 0x2\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x200000\n\tMNT_SUIDDIR                       = 0x100000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_TRIM                          = 0x1000000\n\tMNT_UPDATE                        = 0x10000\n\tMNT_USER                          = 0x8000\n\tMNT_VISFLAGMASK                   = 0xf1f0ffff\n\tMNT_WAIT                          = 0x1\n\tMSG_CMSG_CLOEXEC                  = 0x1000\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOF                           = 0x100\n\tMSG_EOR                           = 0x8\n\tMSG_FBLOCKING                     = 0x10000\n\tMSG_FMASK                         = 0xffff0000\n\tMSG_FNONBLOCKING                  = 0x20000\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_SYNC                          = 0x800\n\tMSG_TRUNC                         = 0x10\n\tMSG_UNUSED09                      = 0x200\n\tMSG_WAITALL                       = 0x40\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x2\n\tMS_SYNC                           = 0x0\n\tNAME_MAX                          = 0xff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x3\n\tNET_RT_MAXID                      = 0x4\n\tNFDBITS                           = 0x40\n\tNOFLSH                            = 0x80000000\n\tNOKERNINFO                        = 0x2000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FFAND                        = 0x40000000\n\tNOTE_FFCOPY                       = 0xc0000000\n\tNOTE_FFCTRLMASK                   = 0xc0000000\n\tNOTE_FFLAGSMASK                   = 0xffffff\n\tNOTE_FFNOP                        = 0x0\n\tNOTE_FFOR                         = 0x80000000\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_OOB                          = 0x2\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_TRIGGER                      = 0x1000000\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tONLCR                             = 0x2\n\tONLRET                            = 0x40\n\tONOCR                             = 0x20\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tOXTABS                            = 0x4\n\tO_ACCMODE                         = 0x3\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x20000\n\tO_CREAT                           = 0x200\n\tO_DIRECT                          = 0x10000\n\tO_DIRECTORY                       = 0x8000000\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FAPPEND                         = 0x100000\n\tO_FASYNCWRITE                     = 0x800000\n\tO_FBLOCKING                       = 0x40000\n\tO_FMASK                           = 0xfc0000\n\tO_FNONBLOCKING                    = 0x80000\n\tO_FOFFSET                         = 0x200000\n\tO_FSYNC                           = 0x80\n\tO_FSYNCWRITE                      = 0x400000\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tRLIMIT_AS                         = 0xa\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BRD                          = 0x7\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_MAX                          = 0xb\n\tRTAX_MPLS1                        = 0x8\n\tRTAX_MPLS2                        = 0x9\n\tRTAX_MPLS3                        = 0xa\n\tRTAX_NETMASK                      = 0x2\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BRD                           = 0x80\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_MPLS1                         = 0x100\n\tRTA_MPLS2                         = 0x200\n\tRTA_MPLS3                         = 0x400\n\tRTA_NETMASK                       = 0x4\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_BROADCAST                     = 0x400000\n\tRTF_CLONING                       = 0x100\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_LOCAL                         = 0x200000\n\tRTF_MODIFIED                      = 0x20\n\tRTF_MPLSOPS                       = 0x1000000\n\tRTF_MULTICAST                     = 0x800000\n\tRTF_PINNED                        = 0x100000\n\tRTF_PRCLONING                     = 0x10000\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_PROTO3                        = 0x40000\n\tRTF_REJECT                        = 0x8\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_WASCLONED                     = 0x20000\n\tRTF_XRESOLVE                      = 0x200\n\tRTM_ADD                           = 0x1\n\tRTM_CHANGE                        = 0x3\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_DELMADDR                      = 0x10\n\tRTM_GET                           = 0x4\n\tRTM_IEEE80211                     = 0x12\n\tRTM_IFANNOUNCE                    = 0x11\n\tRTM_IFINFO                        = 0xe\n\tRTM_LOCK                          = 0x8\n\tRTM_LOSING                        = 0x5\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_NEWMADDR                      = 0xf\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_RTTUNIT                       = 0xf4240\n\tRTM_VERSION                       = 0x7\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_IWCAPSEGS                     = 0x400\n\tRTV_IWMAXSEGS                     = 0x200\n\tRTV_MSL                           = 0x100\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tSCM_CREDS                         = 0x3\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x2\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80206931\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCAIFGROUP                      = 0x80286987\n\tSIOCALIFADDR                      = 0x8118691b\n\tSIOCATMARK                        = 0x40047307\n\tSIOCDELMULTI                      = 0x80206932\n\tSIOCDIFADDR                       = 0x80206919\n\tSIOCDIFGROUP                      = 0x80286989\n\tSIOCDIFPHYADDR                    = 0x80206949\n\tSIOCDLIFADDR                      = 0x8118691d\n\tSIOCGDRVSPEC                      = 0xc028697b\n\tSIOCGETSGCNT                      = 0xc0207210\n\tSIOCGETVIFCNT                     = 0xc028720f\n\tSIOCGHIWAT                        = 0x40047301\n\tSIOCGIFADDR                       = 0xc0206921\n\tSIOCGIFALIAS                      = 0xc0406929\n\tSIOCGIFBRDADDR                    = 0xc0206923\n\tSIOCGIFCAP                        = 0xc020691f\n\tSIOCGIFCONF                       = 0xc0106924\n\tSIOCGIFDATA                       = 0xc0206926\n\tSIOCGIFDSTADDR                    = 0xc0206922\n\tSIOCGIFFLAGS                      = 0xc0206911\n\tSIOCGIFGENERIC                    = 0xc020693a\n\tSIOCGIFGMEMB                      = 0xc028698a\n\tSIOCGIFGROUP                      = 0xc0286988\n\tSIOCGIFINDEX                      = 0xc0206920\n\tSIOCGIFMEDIA                      = 0xc0306938\n\tSIOCGIFMETRIC                     = 0xc0206917\n\tSIOCGIFMTU                        = 0xc0206933\n\tSIOCGIFNETMASK                    = 0xc0206925\n\tSIOCGIFPDSTADDR                   = 0xc0206948\n\tSIOCGIFPHYS                       = 0xc0206935\n\tSIOCGIFPOLLCPU                    = 0xc020697e\n\tSIOCGIFPSRCADDR                   = 0xc0206947\n\tSIOCGIFSTATUS                     = 0xc331693b\n\tSIOCGIFTSOLEN                     = 0xc0206980\n\tSIOCGLIFADDR                      = 0xc118691c\n\tSIOCGLIFPHYADDR                   = 0xc118694b\n\tSIOCGLOWAT                        = 0x40047303\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGPRIVATE_0                    = 0xc0206950\n\tSIOCGPRIVATE_1                    = 0xc0206951\n\tSIOCIFCREATE                      = 0xc020697a\n\tSIOCIFCREATE2                     = 0xc020697c\n\tSIOCIFDESTROY                     = 0x80206979\n\tSIOCIFGCLONERS                    = 0xc0106978\n\tSIOCSDRVSPEC                      = 0x8028697b\n\tSIOCSHIWAT                        = 0x80047300\n\tSIOCSIFADDR                       = 0x8020690c\n\tSIOCSIFBRDADDR                    = 0x80206913\n\tSIOCSIFCAP                        = 0x8020691e\n\tSIOCSIFDSTADDR                    = 0x8020690e\n\tSIOCSIFFLAGS                      = 0x80206910\n\tSIOCSIFGENERIC                    = 0x80206939\n\tSIOCSIFLLADDR                     = 0x8020693c\n\tSIOCSIFMEDIA                      = 0xc0206937\n\tSIOCSIFMETRIC                     = 0x80206918\n\tSIOCSIFMTU                        = 0x80206934\n\tSIOCSIFNAME                       = 0x80206928\n\tSIOCSIFNETMASK                    = 0x80206916\n\tSIOCSIFPHYADDR                    = 0x80406946\n\tSIOCSIFPHYS                       = 0x80206936\n\tSIOCSIFPOLLCPU                    = 0x8020697d\n\tSIOCSIFTSOLEN                     = 0x8020697f\n\tSIOCSLIFPHYADDR                   = 0x8118694a\n\tSIOCSLOWAT                        = 0x80047302\n\tSIOCSPGRP                         = 0x80047308\n\tSOCK_CLOEXEC                      = 0x10000000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_MAXADDRLEN                   = 0xff\n\tSOCK_NONBLOCK                     = 0x20000000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_ACCEPTFILTER                   = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_CPUHINT                        = 0x1030\n\tSO_DEBUG                          = 0x1\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NOSIGPIPE                      = 0x800\n\tSO_OOBINLINE                      = 0x100\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x1006\n\tSO_RERROR                         = 0x2000\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDSPACE                       = 0x100a\n\tSO_SNDTIMEO                       = 0x1005\n\tSO_TIMESTAMP                      = 0x400\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDB                            = 0x9000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IFWHT                           = 0xe000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tTAB0                              = 0x0\n\tTAB3                              = 0x4\n\tTABDLY                            = 0x4\n\tTCIFLUSH                          = 0x1\n\tTCIOFF                            = 0x3\n\tTCIOFLUSH                         = 0x3\n\tTCION                             = 0x4\n\tTCOFLUSH                          = 0x2\n\tTCOOFF                            = 0x1\n\tTCOON                             = 0x2\n\tTCP_FASTKEEP                      = 0x80\n\tTCP_KEEPCNT                       = 0x400\n\tTCP_KEEPIDLE                      = 0x100\n\tTCP_KEEPINIT                      = 0x20\n\tTCP_KEEPINTVL                     = 0x200\n\tTCP_MAXBURST                      = 0x4\n\tTCP_MAXHLEN                       = 0x3c\n\tTCP_MAXOLEN                       = 0x28\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MINMSS                        = 0x100\n\tTCP_MIN_WINSHIFT                  = 0x5\n\tTCP_MSS                           = 0x200\n\tTCP_NODELAY                       = 0x1\n\tTCP_NOOPT                         = 0x8\n\tTCP_NOPUSH                        = 0x4\n\tTCP_SIGNATURE_ENABLE              = 0x10\n\tTCSAFLUSH                         = 0x2\n\tTIMER_ABSTIME                     = 0x1\n\tTIMER_RELTIME                     = 0x0\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCONS                          = 0x80047462\n\tTIOCDCDTIMESTAMP                  = 0x40107458\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGDRAINWAIT                    = 0x40047456\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGSID                          = 0x40047463\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCISPTMASTER                    = 0x20007455\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGDTRWAIT                     = 0x4004745a\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMODG                          = 0x40047403\n\tTIOCMODS                          = 0x80047404\n\tTIOCMSDTRWAIT                     = 0x8004745b\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDRAINWAIT                    = 0x80047457\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSIG                           = 0x2000745f\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x20007465\n\tTIOCSTI                           = 0x80017472\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCTIMESTAMP                     = 0x40107459\n\tTIOCUCNTL                         = 0x80047466\n\tTOSTOP                            = 0x400000\n\tUTIME_NOW                         = -0x1\n\tUTIME_OMIT                        = -0x2\n\tVCHECKPT                          = 0x13\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVERASE2                           = 0x7\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVM_BCACHE_SIZE_MAX                = 0x0\n\tVM_SWZONE_SIZE_MAX                = 0x4000000000\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWCONTINUED                        = 0x4\n\tWCOREFLAG                         = 0x80\n\tWEXITED                           = 0x10\n\tWLINUXCLONE                       = 0x80000000\n\tWNOHANG                           = 0x1\n\tWNOWAIT                           = 0x8\n\tWSTOPPED                          = 0x2\n\tWTRAPPED                          = 0x20\n\tWUNTRACED                         = 0x2\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEASYNC          = syscall.Errno(0x63)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x59)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x55)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDOOFUS         = syscall.Errno(0x58)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x52)\n\tEILSEQ          = syscall.Errno(0x56)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x63)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5a)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x57)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x5b)\n\tENOMEDIUM       = syscall.Errno(0x5d)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x53)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x2d)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5c)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT     = syscall.Signal(0x6)\n\tSIGALRM     = syscall.Signal(0xe)\n\tSIGBUS      = syscall.Signal(0xa)\n\tSIGCHLD     = syscall.Signal(0x14)\n\tSIGCKPT     = syscall.Signal(0x21)\n\tSIGCKPTEXIT = syscall.Signal(0x22)\n\tSIGCONT     = syscall.Signal(0x13)\n\tSIGEMT      = syscall.Signal(0x7)\n\tSIGFPE      = syscall.Signal(0x8)\n\tSIGHUP      = syscall.Signal(0x1)\n\tSIGILL      = syscall.Signal(0x4)\n\tSIGINFO     = syscall.Signal(0x1d)\n\tSIGINT      = syscall.Signal(0x2)\n\tSIGIO       = syscall.Signal(0x17)\n\tSIGIOT      = syscall.Signal(0x6)\n\tSIGKILL     = syscall.Signal(0x9)\n\tSIGPIPE     = syscall.Signal(0xd)\n\tSIGPROF     = syscall.Signal(0x1b)\n\tSIGQUIT     = syscall.Signal(0x3)\n\tSIGSEGV     = syscall.Signal(0xb)\n\tSIGSTOP     = syscall.Signal(0x11)\n\tSIGSYS      = syscall.Signal(0xc)\n\tSIGTERM     = syscall.Signal(0xf)\n\tSIGTHR      = syscall.Signal(0x20)\n\tSIGTRAP     = syscall.Signal(0x5)\n\tSIGTSTP     = syscall.Signal(0x12)\n\tSIGTTIN     = syscall.Signal(0x15)\n\tSIGTTOU     = syscall.Signal(0x16)\n\tSIGURG      = syscall.Signal(0x10)\n\tSIGUSR1     = syscall.Signal(0x1e)\n\tSIGUSR2     = syscall.Signal(0x1f)\n\tSIGVTALRM   = syscall.Signal(0x1a)\n\tSIGWINCH    = syscall.Signal(0x1c)\n\tSIGXCPU     = syscall.Signal(0x18)\n\tSIGXFSZ     = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EWOULDBLOCK\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIDRM\", \"identifier removed\"},\n\t{83, \"ENOMSG\", \"no message of desired type\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"ECANCELED\", \"operation canceled\"},\n\t{86, \"EILSEQ\", \"illegal byte sequence\"},\n\t{87, \"ENOATTR\", \"attribute not found\"},\n\t{88, \"EDOOFUS\", \"programming error\"},\n\t{89, \"EBADMSG\", \"bad message\"},\n\t{90, \"EMULTIHOP\", \"multihop attempted\"},\n\t{91, \"ENOLINK\", \"link has been severed\"},\n\t{92, \"EPROTO\", \"protocol error\"},\n\t{93, \"ENOMEDIUM\", \"no medium found\"},\n\t{99, \"EASYNC\", \"unknown error: 99\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"thread Scheduler\"},\n\t{33, \"SIGCKPT\", \"checkPoint\"},\n\t{34, \"SIGCKPTEXIT\", \"checkPointExit\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go",
    "content": "// mkerrors.sh -m32\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build 386 && freebsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m32 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                   = 0x10\n\tAF_ARP                         = 0x23\n\tAF_ATM                         = 0x1e\n\tAF_BLUETOOTH                   = 0x24\n\tAF_CCITT                       = 0xa\n\tAF_CHAOS                       = 0x5\n\tAF_CNT                         = 0x15\n\tAF_COIP                        = 0x14\n\tAF_DATAKIT                     = 0x9\n\tAF_DECnet                      = 0xc\n\tAF_DLI                         = 0xd\n\tAF_E164                        = 0x1a\n\tAF_ECMA                        = 0x8\n\tAF_HYLINK                      = 0xf\n\tAF_IEEE80211                   = 0x25\n\tAF_IMPLINK                     = 0x3\n\tAF_INET                        = 0x2\n\tAF_INET6                       = 0x1c\n\tAF_INET6_SDP                   = 0x2a\n\tAF_INET_SDP                    = 0x28\n\tAF_IPX                         = 0x17\n\tAF_ISDN                        = 0x1a\n\tAF_ISO                         = 0x7\n\tAF_LAT                         = 0xe\n\tAF_LINK                        = 0x12\n\tAF_LOCAL                       = 0x1\n\tAF_MAX                         = 0x2a\n\tAF_NATM                        = 0x1d\n\tAF_NETBIOS                     = 0x6\n\tAF_NETGRAPH                    = 0x20\n\tAF_OSI                         = 0x7\n\tAF_PUP                         = 0x4\n\tAF_ROUTE                       = 0x11\n\tAF_SCLUSTER                    = 0x22\n\tAF_SIP                         = 0x18\n\tAF_SLOW                        = 0x21\n\tAF_SNA                         = 0xb\n\tAF_UNIX                        = 0x1\n\tAF_UNSPEC                      = 0x0\n\tAF_VENDOR00                    = 0x27\n\tAF_VENDOR01                    = 0x29\n\tAF_VENDOR02                    = 0x2b\n\tAF_VENDOR03                    = 0x2d\n\tAF_VENDOR04                    = 0x2f\n\tAF_VENDOR05                    = 0x31\n\tAF_VENDOR06                    = 0x33\n\tAF_VENDOR07                    = 0x35\n\tAF_VENDOR08                    = 0x37\n\tAF_VENDOR09                    = 0x39\n\tAF_VENDOR10                    = 0x3b\n\tAF_VENDOR11                    = 0x3d\n\tAF_VENDOR12                    = 0x3f\n\tAF_VENDOR13                    = 0x41\n\tAF_VENDOR14                    = 0x43\n\tAF_VENDOR15                    = 0x45\n\tAF_VENDOR16                    = 0x47\n\tAF_VENDOR17                    = 0x49\n\tAF_VENDOR18                    = 0x4b\n\tAF_VENDOR19                    = 0x4d\n\tAF_VENDOR20                    = 0x4f\n\tAF_VENDOR21                    = 0x51\n\tAF_VENDOR22                    = 0x53\n\tAF_VENDOR23                    = 0x55\n\tAF_VENDOR24                    = 0x57\n\tAF_VENDOR25                    = 0x59\n\tAF_VENDOR26                    = 0x5b\n\tAF_VENDOR27                    = 0x5d\n\tAF_VENDOR28                    = 0x5f\n\tAF_VENDOR29                    = 0x61\n\tAF_VENDOR30                    = 0x63\n\tAF_VENDOR31                    = 0x65\n\tAF_VENDOR32                    = 0x67\n\tAF_VENDOR33                    = 0x69\n\tAF_VENDOR34                    = 0x6b\n\tAF_VENDOR35                    = 0x6d\n\tAF_VENDOR36                    = 0x6f\n\tAF_VENDOR37                    = 0x71\n\tAF_VENDOR38                    = 0x73\n\tAF_VENDOR39                    = 0x75\n\tAF_VENDOR40                    = 0x77\n\tAF_VENDOR41                    = 0x79\n\tAF_VENDOR42                    = 0x7b\n\tAF_VENDOR43                    = 0x7d\n\tAF_VENDOR44                    = 0x7f\n\tAF_VENDOR45                    = 0x81\n\tAF_VENDOR46                    = 0x83\n\tAF_VENDOR47                    = 0x85\n\tALTWERASE                      = 0x200\n\tB0                             = 0x0\n\tB110                           = 0x6e\n\tB115200                        = 0x1c200\n\tB1200                          = 0x4b0\n\tB134                           = 0x86\n\tB14400                         = 0x3840\n\tB150                           = 0x96\n\tB1800                          = 0x708\n\tB19200                         = 0x4b00\n\tB200                           = 0xc8\n\tB230400                        = 0x38400\n\tB2400                          = 0x960\n\tB28800                         = 0x7080\n\tB300                           = 0x12c\n\tB38400                         = 0x9600\n\tB460800                        = 0x70800\n\tB4800                          = 0x12c0\n\tB50                            = 0x32\n\tB57600                         = 0xe100\n\tB600                           = 0x258\n\tB7200                          = 0x1c20\n\tB75                            = 0x4b\n\tB76800                         = 0x12c00\n\tB921600                        = 0xe1000\n\tB9600                          = 0x2580\n\tBIOCFEEDBACK                   = 0x8004427c\n\tBIOCFLUSH                      = 0x20004268\n\tBIOCGBLEN                      = 0x40044266\n\tBIOCGDIRECTION                 = 0x40044276\n\tBIOCGDLT                       = 0x4004426a\n\tBIOCGDLTLIST                   = 0xc0084279\n\tBIOCGETBUFMODE                 = 0x4004427d\n\tBIOCGETIF                      = 0x4020426b\n\tBIOCGETZMAX                    = 0x4004427f\n\tBIOCGHDRCMPLT                  = 0x40044274\n\tBIOCGRSIG                      = 0x40044272\n\tBIOCGRTIMEOUT                  = 0x4008426e\n\tBIOCGSEESENT                   = 0x40044276\n\tBIOCGSTATS                     = 0x4008426f\n\tBIOCGTSTAMP                    = 0x40044283\n\tBIOCIMMEDIATE                  = 0x80044270\n\tBIOCLOCK                       = 0x2000427a\n\tBIOCPROMISC                    = 0x20004269\n\tBIOCROTZBUF                    = 0x400c4280\n\tBIOCSBLEN                      = 0xc0044266\n\tBIOCSDIRECTION                 = 0x80044277\n\tBIOCSDLT                       = 0x80044278\n\tBIOCSETBUFMODE                 = 0x8004427e\n\tBIOCSETF                       = 0x80084267\n\tBIOCSETFNR                     = 0x80084282\n\tBIOCSETIF                      = 0x8020426c\n\tBIOCSETVLANPCP                 = 0x80044285\n\tBIOCSETWF                      = 0x8008427b\n\tBIOCSETZBUF                    = 0x800c4281\n\tBIOCSHDRCMPLT                  = 0x80044275\n\tBIOCSRSIG                      = 0x80044273\n\tBIOCSRTIMEOUT                  = 0x8008426d\n\tBIOCSSEESENT                   = 0x80044277\n\tBIOCSTSTAMP                    = 0x80044284\n\tBIOCVERSION                    = 0x40044271\n\tBPF_A                          = 0x10\n\tBPF_ABS                        = 0x20\n\tBPF_ADD                        = 0x0\n\tBPF_ALIGNMENT                  = 0x4\n\tBPF_ALU                        = 0x4\n\tBPF_AND                        = 0x50\n\tBPF_B                          = 0x10\n\tBPF_BUFMODE_BUFFER             = 0x1\n\tBPF_BUFMODE_ZBUF               = 0x2\n\tBPF_DIV                        = 0x30\n\tBPF_H                          = 0x8\n\tBPF_IMM                        = 0x0\n\tBPF_IND                        = 0x40\n\tBPF_JA                         = 0x0\n\tBPF_JEQ                        = 0x10\n\tBPF_JGE                        = 0x30\n\tBPF_JGT                        = 0x20\n\tBPF_JMP                        = 0x5\n\tBPF_JSET                       = 0x40\n\tBPF_K                          = 0x0\n\tBPF_LD                         = 0x0\n\tBPF_LDX                        = 0x1\n\tBPF_LEN                        = 0x80\n\tBPF_LSH                        = 0x60\n\tBPF_MAJOR_VERSION              = 0x1\n\tBPF_MAXBUFSIZE                 = 0x80000\n\tBPF_MAXINSNS                   = 0x200\n\tBPF_MEM                        = 0x60\n\tBPF_MEMWORDS                   = 0x10\n\tBPF_MINBUFSIZE                 = 0x20\n\tBPF_MINOR_VERSION              = 0x1\n\tBPF_MISC                       = 0x7\n\tBPF_MOD                        = 0x90\n\tBPF_MSH                        = 0xa0\n\tBPF_MUL                        = 0x20\n\tBPF_NEG                        = 0x80\n\tBPF_OR                         = 0x40\n\tBPF_RELEASE                    = 0x30bb6\n\tBPF_RET                        = 0x6\n\tBPF_RSH                        = 0x70\n\tBPF_ST                         = 0x2\n\tBPF_STX                        = 0x3\n\tBPF_SUB                        = 0x10\n\tBPF_TAX                        = 0x0\n\tBPF_TXA                        = 0x80\n\tBPF_T_BINTIME                  = 0x2\n\tBPF_T_BINTIME_FAST             = 0x102\n\tBPF_T_BINTIME_MONOTONIC        = 0x202\n\tBPF_T_BINTIME_MONOTONIC_FAST   = 0x302\n\tBPF_T_FAST                     = 0x100\n\tBPF_T_FLAG_MASK                = 0x300\n\tBPF_T_FORMAT_MASK              = 0x3\n\tBPF_T_MICROTIME                = 0x0\n\tBPF_T_MICROTIME_FAST           = 0x100\n\tBPF_T_MICROTIME_MONOTONIC      = 0x200\n\tBPF_T_MICROTIME_MONOTONIC_FAST = 0x300\n\tBPF_T_MONOTONIC                = 0x200\n\tBPF_T_MONOTONIC_FAST           = 0x300\n\tBPF_T_NANOTIME                 = 0x1\n\tBPF_T_NANOTIME_FAST            = 0x101\n\tBPF_T_NANOTIME_MONOTONIC       = 0x201\n\tBPF_T_NANOTIME_MONOTONIC_FAST  = 0x301\n\tBPF_T_NONE                     = 0x3\n\tBPF_T_NORMAL                   = 0x0\n\tBPF_W                          = 0x0\n\tBPF_X                          = 0x8\n\tBPF_XOR                        = 0xa0\n\tBRKINT                         = 0x2\n\tCAP_ACCEPT                     = 0x200000020000000\n\tCAP_ACL_CHECK                  = 0x400000000010000\n\tCAP_ACL_DELETE                 = 0x400000000020000\n\tCAP_ACL_GET                    = 0x400000000040000\n\tCAP_ACL_SET                    = 0x400000000080000\n\tCAP_ALL0                       = 0x20007ffffffffff\n\tCAP_ALL1                       = 0x4000000001fffff\n\tCAP_BIND                       = 0x200000040000000\n\tCAP_BINDAT                     = 0x200008000000400\n\tCAP_CHFLAGSAT                  = 0x200000000001400\n\tCAP_CONNECT                    = 0x200000080000000\n\tCAP_CONNECTAT                  = 0x200010000000400\n\tCAP_CREATE                     = 0x200000000000040\n\tCAP_EVENT                      = 0x400000000000020\n\tCAP_EXTATTR_DELETE             = 0x400000000001000\n\tCAP_EXTATTR_GET                = 0x400000000002000\n\tCAP_EXTATTR_LIST               = 0x400000000004000\n\tCAP_EXTATTR_SET                = 0x400000000008000\n\tCAP_FCHDIR                     = 0x200000000000800\n\tCAP_FCHFLAGS                   = 0x200000000001000\n\tCAP_FCHMOD                     = 0x200000000002000\n\tCAP_FCHMODAT                   = 0x200000000002400\n\tCAP_FCHOWN                     = 0x200000000004000\n\tCAP_FCHOWNAT                   = 0x200000000004400\n\tCAP_FCNTL                      = 0x200000000008000\n\tCAP_FCNTL_ALL                  = 0x78\n\tCAP_FCNTL_GETFL                = 0x8\n\tCAP_FCNTL_GETOWN               = 0x20\n\tCAP_FCNTL_SETFL                = 0x10\n\tCAP_FCNTL_SETOWN               = 0x40\n\tCAP_FEXECVE                    = 0x200000000000080\n\tCAP_FLOCK                      = 0x200000000010000\n\tCAP_FPATHCONF                  = 0x200000000020000\n\tCAP_FSCK                       = 0x200000000040000\n\tCAP_FSTAT                      = 0x200000000080000\n\tCAP_FSTATAT                    = 0x200000000080400\n\tCAP_FSTATFS                    = 0x200000000100000\n\tCAP_FSYNC                      = 0x200000000000100\n\tCAP_FTRUNCATE                  = 0x200000000000200\n\tCAP_FUTIMES                    = 0x200000000200000\n\tCAP_FUTIMESAT                  = 0x200000000200400\n\tCAP_GETPEERNAME                = 0x200000100000000\n\tCAP_GETSOCKNAME                = 0x200000200000000\n\tCAP_GETSOCKOPT                 = 0x200000400000000\n\tCAP_IOCTL                      = 0x400000000000080\n\tCAP_IOCTLS_ALL                 = 0x7fffffff\n\tCAP_KQUEUE                     = 0x400000000100040\n\tCAP_KQUEUE_CHANGE              = 0x400000000100000\n\tCAP_KQUEUE_EVENT               = 0x400000000000040\n\tCAP_LINKAT_SOURCE              = 0x200020000000400\n\tCAP_LINKAT_TARGET              = 0x200000000400400\n\tCAP_LISTEN                     = 0x200000800000000\n\tCAP_LOOKUP                     = 0x200000000000400\n\tCAP_MAC_GET                    = 0x400000000000001\n\tCAP_MAC_SET                    = 0x400000000000002\n\tCAP_MKDIRAT                    = 0x200000000800400\n\tCAP_MKFIFOAT                   = 0x200000001000400\n\tCAP_MKNODAT                    = 0x200000002000400\n\tCAP_MMAP                       = 0x200000000000010\n\tCAP_MMAP_R                     = 0x20000000000001d\n\tCAP_MMAP_RW                    = 0x20000000000001f\n\tCAP_MMAP_RWX                   = 0x20000000000003f\n\tCAP_MMAP_RX                    = 0x20000000000003d\n\tCAP_MMAP_W                     = 0x20000000000001e\n\tCAP_MMAP_WX                    = 0x20000000000003e\n\tCAP_MMAP_X                     = 0x20000000000003c\n\tCAP_PDGETPID                   = 0x400000000000200\n\tCAP_PDKILL                     = 0x400000000000800\n\tCAP_PDWAIT                     = 0x400000000000400\n\tCAP_PEELOFF                    = 0x200001000000000\n\tCAP_POLL_EVENT                 = 0x400000000000020\n\tCAP_PREAD                      = 0x20000000000000d\n\tCAP_PWRITE                     = 0x20000000000000e\n\tCAP_READ                       = 0x200000000000001\n\tCAP_RECV                       = 0x200000000000001\n\tCAP_RENAMEAT_SOURCE            = 0x200000004000400\n\tCAP_RENAMEAT_TARGET            = 0x200040000000400\n\tCAP_RIGHTS_VERSION             = 0x0\n\tCAP_RIGHTS_VERSION_00          = 0x0\n\tCAP_SEEK                       = 0x20000000000000c\n\tCAP_SEEK_TELL                  = 0x200000000000004\n\tCAP_SEM_GETVALUE               = 0x400000000000004\n\tCAP_SEM_POST                   = 0x400000000000008\n\tCAP_SEM_WAIT                   = 0x400000000000010\n\tCAP_SEND                       = 0x200000000000002\n\tCAP_SETSOCKOPT                 = 0x200002000000000\n\tCAP_SHUTDOWN                   = 0x200004000000000\n\tCAP_SOCK_CLIENT                = 0x200007780000003\n\tCAP_SOCK_SERVER                = 0x200007f60000003\n\tCAP_SYMLINKAT                  = 0x200000008000400\n\tCAP_TTYHOOK                    = 0x400000000000100\n\tCAP_UNLINKAT                   = 0x200000010000400\n\tCAP_UNUSED0_44                 = 0x200080000000000\n\tCAP_UNUSED0_57                 = 0x300000000000000\n\tCAP_UNUSED1_22                 = 0x400000000200000\n\tCAP_UNUSED1_57                 = 0x500000000000000\n\tCAP_WRITE                      = 0x200000000000002\n\tCFLUSH                         = 0xf\n\tCLOCAL                         = 0x8000\n\tCLOCK_MONOTONIC                = 0x4\n\tCLOCK_MONOTONIC_FAST           = 0xc\n\tCLOCK_MONOTONIC_PRECISE        = 0xb\n\tCLOCK_PROCESS_CPUTIME_ID       = 0xf\n\tCLOCK_PROF                     = 0x2\n\tCLOCK_REALTIME                 = 0x0\n\tCLOCK_REALTIME_FAST            = 0xa\n\tCLOCK_REALTIME_PRECISE         = 0x9\n\tCLOCK_SECOND                   = 0xd\n\tCLOCK_THREAD_CPUTIME_ID        = 0xe\n\tCLOCK_UPTIME                   = 0x5\n\tCLOCK_UPTIME_FAST              = 0x8\n\tCLOCK_UPTIME_PRECISE           = 0x7\n\tCLOCK_VIRTUAL                  = 0x1\n\tCPUSTATES                      = 0x5\n\tCP_IDLE                        = 0x4\n\tCP_INTR                        = 0x3\n\tCP_NICE                        = 0x1\n\tCP_SYS                         = 0x2\n\tCP_USER                        = 0x0\n\tCREAD                          = 0x800\n\tCRTSCTS                        = 0x30000\n\tCS5                            = 0x0\n\tCS6                            = 0x100\n\tCS7                            = 0x200\n\tCS8                            = 0x300\n\tCSIZE                          = 0x300\n\tCSTART                         = 0x11\n\tCSTATUS                        = 0x14\n\tCSTOP                          = 0x13\n\tCSTOPB                         = 0x400\n\tCSUSP                          = 0x1a\n\tCTL_HW                         = 0x6\n\tCTL_KERN                       = 0x1\n\tCTL_MAXNAME                    = 0x18\n\tCTL_NET                        = 0x4\n\tDIOCGATTR                      = 0xc144648e\n\tDIOCGDELETE                    = 0x80106488\n\tDIOCGFLUSH                     = 0x20006487\n\tDIOCGFRONTSTUFF                = 0x40086486\n\tDIOCGFWHEADS                   = 0x40046483\n\tDIOCGFWSECTORS                 = 0x40046482\n\tDIOCGIDENT                     = 0x41006489\n\tDIOCGMEDIASIZE                 = 0x40086481\n\tDIOCGPHYSPATH                  = 0x4400648d\n\tDIOCGPROVIDERNAME              = 0x4400648a\n\tDIOCGSECTORSIZE                = 0x40046480\n\tDIOCGSTRIPEOFFSET              = 0x4008648c\n\tDIOCGSTRIPESIZE                = 0x4008648b\n\tDIOCSKERNELDUMP                = 0x804c6490\n\tDIOCSKERNELDUMP_FREEBSD11      = 0x80046485\n\tDIOCZONECMD                    = 0xc06c648f\n\tDLT_A429                       = 0xb8\n\tDLT_A653_ICM                   = 0xb9\n\tDLT_AIRONET_HEADER             = 0x78\n\tDLT_AOS                        = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394     = 0x8a\n\tDLT_ARCNET                     = 0x7\n\tDLT_ARCNET_LINUX               = 0x81\n\tDLT_ATM_CLIP                   = 0x13\n\tDLT_ATM_RFC1483                = 0xb\n\tDLT_AURORA                     = 0x7e\n\tDLT_AX25                       = 0x3\n\tDLT_AX25_KISS                  = 0xca\n\tDLT_BACNET_MS_TP               = 0xa5\n\tDLT_BLUETOOTH_BREDR_BB         = 0xff\n\tDLT_BLUETOOTH_HCI_H4           = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9\n\tDLT_BLUETOOTH_LE_LL            = 0xfb\n\tDLT_BLUETOOTH_LE_LL_WITH_PHDR  = 0x100\n\tDLT_BLUETOOTH_LINUX_MONITOR    = 0xfe\n\tDLT_CAN20B                     = 0xbe\n\tDLT_CAN_SOCKETCAN              = 0xe3\n\tDLT_CHAOS                      = 0x5\n\tDLT_CHDLC                      = 0x68\n\tDLT_CISCO_IOS                  = 0x76\n\tDLT_CLASS_NETBSD_RAWAF         = 0x2240000\n\tDLT_C_HDLC                     = 0x68\n\tDLT_C_HDLC_WITH_DIR            = 0xcd\n\tDLT_DBUS                       = 0xe7\n\tDLT_DECT                       = 0xdd\n\tDLT_DISPLAYPORT_AUX            = 0x113\n\tDLT_DOCSIS                     = 0x8f\n\tDLT_DOCSIS31_XRA31             = 0x111\n\tDLT_DVB_CI                     = 0xeb\n\tDLT_ECONET                     = 0x73\n\tDLT_EN10MB                     = 0x1\n\tDLT_EN3MB                      = 0x2\n\tDLT_ENC                        = 0x6d\n\tDLT_EPON                       = 0x103\n\tDLT_ERF                        = 0xc5\n\tDLT_ERF_ETH                    = 0xaf\n\tDLT_ERF_POS                    = 0xb0\n\tDLT_ETHERNET_MPACKET           = 0x112\n\tDLT_FC_2                       = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS     = 0xe1\n\tDLT_FDDI                       = 0xa\n\tDLT_FLEXRAY                    = 0xd2\n\tDLT_FRELAY                     = 0x6b\n\tDLT_FRELAY_WITH_DIR            = 0xce\n\tDLT_GCOM_SERIAL                = 0xad\n\tDLT_GCOM_T1E1                  = 0xac\n\tDLT_GPF_F                      = 0xab\n\tDLT_GPF_T                      = 0xaa\n\tDLT_GPRS_LLC                   = 0xa9\n\tDLT_GSMTAP_ABIS                = 0xda\n\tDLT_GSMTAP_UM                  = 0xd9\n\tDLT_IBM_SN                     = 0x92\n\tDLT_IBM_SP                     = 0x91\n\tDLT_IEEE802                    = 0x6\n\tDLT_IEEE802_11                 = 0x69\n\tDLT_IEEE802_11_RADIO           = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS       = 0xa3\n\tDLT_IEEE802_15_4               = 0xc3\n\tDLT_IEEE802_15_4_LINUX         = 0xbf\n\tDLT_IEEE802_15_4_NOFCS         = 0xe6\n\tDLT_IEEE802_15_4_NONASK_PHY    = 0xd7\n\tDLT_IEEE802_16_MAC_CPS         = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO   = 0xc1\n\tDLT_INFINIBAND                 = 0xf7\n\tDLT_IPFILTER                   = 0x74\n\tDLT_IPMB_KONTRON               = 0xc7\n\tDLT_IPMB_LINUX                 = 0xd1\n\tDLT_IPMI_HPM_2                 = 0x104\n\tDLT_IPNET                      = 0xe2\n\tDLT_IPOIB                      = 0xf2\n\tDLT_IPV4                       = 0xe4\n\tDLT_IPV6                       = 0xe5\n\tDLT_IP_OVER_FC                 = 0x7a\n\tDLT_ISO_14443                  = 0x108\n\tDLT_JUNIPER_ATM1               = 0x89\n\tDLT_JUNIPER_ATM2               = 0x87\n\tDLT_JUNIPER_ATM_CEMIC          = 0xee\n\tDLT_JUNIPER_CHDLC              = 0xb5\n\tDLT_JUNIPER_ES                 = 0x84\n\tDLT_JUNIPER_ETHER              = 0xb2\n\tDLT_JUNIPER_FIBRECHANNEL       = 0xea\n\tDLT_JUNIPER_FRELAY             = 0xb4\n\tDLT_JUNIPER_GGSN               = 0x85\n\tDLT_JUNIPER_ISM                = 0xc2\n\tDLT_JUNIPER_MFR                = 0x86\n\tDLT_JUNIPER_MLFR               = 0x83\n\tDLT_JUNIPER_MLPPP              = 0x82\n\tDLT_JUNIPER_MONITOR            = 0xa4\n\tDLT_JUNIPER_PIC_PEER           = 0xae\n\tDLT_JUNIPER_PPP                = 0xb3\n\tDLT_JUNIPER_PPPOE              = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM          = 0xa8\n\tDLT_JUNIPER_SERVICES           = 0x88\n\tDLT_JUNIPER_SRX_E2E            = 0xe9\n\tDLT_JUNIPER_ST                 = 0xc8\n\tDLT_JUNIPER_VP                 = 0xb7\n\tDLT_JUNIPER_VS                 = 0xe8\n\tDLT_LAPB_WITH_DIR              = 0xcf\n\tDLT_LAPD                       = 0xcb\n\tDLT_LIN                        = 0xd4\n\tDLT_LINUX_EVDEV                = 0xd8\n\tDLT_LINUX_IRDA                 = 0x90\n\tDLT_LINUX_LAPD                 = 0xb1\n\tDLT_LINUX_PPP_WITHDIRECTION    = 0xa6\n\tDLT_LINUX_SLL                  = 0x71\n\tDLT_LINUX_SLL2                 = 0x114\n\tDLT_LOOP                       = 0x6c\n\tDLT_LORATAP                    = 0x10e\n\tDLT_LTALK                      = 0x72\n\tDLT_MATCHING_MAX               = 0x114\n\tDLT_MATCHING_MIN               = 0x68\n\tDLT_MFR                        = 0xb6\n\tDLT_MOST                       = 0xd3\n\tDLT_MPEG_2_TS                  = 0xf3\n\tDLT_MPLS                       = 0xdb\n\tDLT_MTP2                       = 0x8c\n\tDLT_MTP2_WITH_PHDR             = 0x8b\n\tDLT_MTP3                       = 0x8d\n\tDLT_MUX27010                   = 0xec\n\tDLT_NETANALYZER                = 0xf0\n\tDLT_NETANALYZER_TRANSPARENT    = 0xf1\n\tDLT_NETLINK                    = 0xfd\n\tDLT_NFC_LLCP                   = 0xf5\n\tDLT_NFLOG                      = 0xef\n\tDLT_NG40                       = 0xf4\n\tDLT_NORDIC_BLE                 = 0x110\n\tDLT_NULL                       = 0x0\n\tDLT_OPENFLOW                   = 0x10b\n\tDLT_PCI_EXP                    = 0x7d\n\tDLT_PFLOG                      = 0x75\n\tDLT_PFSYNC                     = 0x79\n\tDLT_PKTAP                      = 0x102\n\tDLT_PPI                        = 0xc0\n\tDLT_PPP                        = 0x9\n\tDLT_PPP_BSDOS                  = 0xe\n\tDLT_PPP_ETHER                  = 0x33\n\tDLT_PPP_PPPD                   = 0xa6\n\tDLT_PPP_SERIAL                 = 0x32\n\tDLT_PPP_WITH_DIR               = 0xcc\n\tDLT_PPP_WITH_DIRECTION         = 0xa6\n\tDLT_PRISM_HEADER               = 0x77\n\tDLT_PROFIBUS_DL                = 0x101\n\tDLT_PRONET                     = 0x4\n\tDLT_RAIF1                      = 0xc6\n\tDLT_RAW                        = 0xc\n\tDLT_RDS                        = 0x109\n\tDLT_REDBACK_SMARTEDGE          = 0x20\n\tDLT_RIO                        = 0x7c\n\tDLT_RTAC_SERIAL                = 0xfa\n\tDLT_SCCP                       = 0x8e\n\tDLT_SCTP                       = 0xf8\n\tDLT_SDLC                       = 0x10c\n\tDLT_SITA                       = 0xc4\n\tDLT_SLIP                       = 0x8\n\tDLT_SLIP_BSDOS                 = 0xd\n\tDLT_STANAG_5066_D_PDU          = 0xed\n\tDLT_SUNATM                     = 0x7b\n\tDLT_SYMANTEC_FIREWALL          = 0x63\n\tDLT_TI_LLN_SNIFFER             = 0x10d\n\tDLT_TZSP                       = 0x80\n\tDLT_USB                        = 0xba\n\tDLT_USBPCAP                    = 0xf9\n\tDLT_USB_DARWIN                 = 0x10a\n\tDLT_USB_FREEBSD                = 0xba\n\tDLT_USB_LINUX                  = 0xbd\n\tDLT_USB_LINUX_MMAPPED          = 0xdc\n\tDLT_USER0                      = 0x93\n\tDLT_USER1                      = 0x94\n\tDLT_USER10                     = 0x9d\n\tDLT_USER11                     = 0x9e\n\tDLT_USER12                     = 0x9f\n\tDLT_USER13                     = 0xa0\n\tDLT_USER14                     = 0xa1\n\tDLT_USER15                     = 0xa2\n\tDLT_USER2                      = 0x95\n\tDLT_USER3                      = 0x96\n\tDLT_USER4                      = 0x97\n\tDLT_USER5                      = 0x98\n\tDLT_USER6                      = 0x99\n\tDLT_USER7                      = 0x9a\n\tDLT_USER8                      = 0x9b\n\tDLT_USER9                      = 0x9c\n\tDLT_VSOCK                      = 0x10f\n\tDLT_WATTSTOPPER_DLM            = 0x107\n\tDLT_WIHART                     = 0xdf\n\tDLT_WIRESHARK_UPPER_PDU        = 0xfc\n\tDLT_X2E_SERIAL                 = 0xd5\n\tDLT_X2E_XORAYA                 = 0xd6\n\tDLT_ZWAVE_R1_R2                = 0x105\n\tDLT_ZWAVE_R3                   = 0x106\n\tDT_BLK                         = 0x6\n\tDT_CHR                         = 0x2\n\tDT_DIR                         = 0x4\n\tDT_FIFO                        = 0x1\n\tDT_LNK                         = 0xa\n\tDT_REG                         = 0x8\n\tDT_SOCK                        = 0xc\n\tDT_UNKNOWN                     = 0x0\n\tDT_WHT                         = 0xe\n\tECHO                           = 0x8\n\tECHOCTL                        = 0x40\n\tECHOE                          = 0x2\n\tECHOK                          = 0x4\n\tECHOKE                         = 0x1\n\tECHONL                         = 0x10\n\tECHOPRT                        = 0x20\n\tEVFILT_AIO                     = -0x3\n\tEVFILT_EMPTY                   = -0xd\n\tEVFILT_FS                      = -0x9\n\tEVFILT_LIO                     = -0xa\n\tEVFILT_PROC                    = -0x5\n\tEVFILT_PROCDESC                = -0x8\n\tEVFILT_READ                    = -0x1\n\tEVFILT_SENDFILE                = -0xc\n\tEVFILT_SIGNAL                  = -0x6\n\tEVFILT_SYSCOUNT                = 0xd\n\tEVFILT_TIMER                   = -0x7\n\tEVFILT_USER                    = -0xb\n\tEVFILT_VNODE                   = -0x4\n\tEVFILT_WRITE                   = -0x2\n\tEVNAMEMAP_NAME_SIZE            = 0x40\n\tEV_ADD                         = 0x1\n\tEV_CLEAR                       = 0x20\n\tEV_DELETE                      = 0x2\n\tEV_DISABLE                     = 0x8\n\tEV_DISPATCH                    = 0x80\n\tEV_DROP                        = 0x1000\n\tEV_ENABLE                      = 0x4\n\tEV_EOF                         = 0x8000\n\tEV_ERROR                       = 0x4000\n\tEV_FLAG1                       = 0x2000\n\tEV_FLAG2                       = 0x4000\n\tEV_FORCEONESHOT                = 0x100\n\tEV_ONESHOT                     = 0x10\n\tEV_RECEIPT                     = 0x40\n\tEV_SYSFLAGS                    = 0xf000\n\tEXTA                           = 0x4b00\n\tEXTATTR_MAXNAMELEN             = 0xff\n\tEXTATTR_NAMESPACE_EMPTY        = 0x0\n\tEXTATTR_NAMESPACE_SYSTEM       = 0x2\n\tEXTATTR_NAMESPACE_USER         = 0x1\n\tEXTB                           = 0x9600\n\tEXTPROC                        = 0x800\n\tFD_CLOEXEC                     = 0x1\n\tFD_SETSIZE                     = 0x400\n\tFLUSHO                         = 0x800000\n\tF_CANCEL                       = 0x5\n\tF_DUP2FD                       = 0xa\n\tF_DUP2FD_CLOEXEC               = 0x12\n\tF_DUPFD                        = 0x0\n\tF_DUPFD_CLOEXEC                = 0x11\n\tF_GETFD                        = 0x1\n\tF_GETFL                        = 0x3\n\tF_GETLK                        = 0xb\n\tF_GETOWN                       = 0x5\n\tF_OGETLK                       = 0x7\n\tF_OK                           = 0x0\n\tF_OSETLK                       = 0x8\n\tF_OSETLKW                      = 0x9\n\tF_RDAHEAD                      = 0x10\n\tF_RDLCK                        = 0x1\n\tF_READAHEAD                    = 0xf\n\tF_SETFD                        = 0x2\n\tF_SETFL                        = 0x4\n\tF_SETLK                        = 0xc\n\tF_SETLKW                       = 0xd\n\tF_SETLK_REMOTE                 = 0xe\n\tF_SETOWN                       = 0x6\n\tF_UNLCK                        = 0x2\n\tF_UNLCKSYS                     = 0x4\n\tF_WRLCK                        = 0x3\n\tHUPCL                          = 0x4000\n\tHW_MACHINE                     = 0x1\n\tICANON                         = 0x100\n\tICMP6_FILTER                   = 0x12\n\tICRNL                          = 0x100\n\tIEXTEN                         = 0x400\n\tIFAN_ARRIVAL                   = 0x0\n\tIFAN_DEPARTURE                 = 0x1\n\tIFCAP_WOL_MAGIC                = 0x2000\n\tIFF_ALLMULTI                   = 0x200\n\tIFF_ALTPHYS                    = 0x4000\n\tIFF_BROADCAST                  = 0x2\n\tIFF_CANTCHANGE                 = 0x218f52\n\tIFF_CANTCONFIG                 = 0x10000\n\tIFF_DEBUG                      = 0x4\n\tIFF_DRV_OACTIVE                = 0x400\n\tIFF_DRV_RUNNING                = 0x40\n\tIFF_DYING                      = 0x200000\n\tIFF_LINK0                      = 0x1000\n\tIFF_LINK1                      = 0x2000\n\tIFF_LINK2                      = 0x4000\n\tIFF_LOOPBACK                   = 0x8\n\tIFF_MONITOR                    = 0x40000\n\tIFF_MULTICAST                  = 0x8000\n\tIFF_NOARP                      = 0x80\n\tIFF_NOGROUP                    = 0x800000\n\tIFF_OACTIVE                    = 0x400\n\tIFF_POINTOPOINT                = 0x10\n\tIFF_PPROMISC                   = 0x20000\n\tIFF_PROMISC                    = 0x100\n\tIFF_RENAMING                   = 0x400000\n\tIFF_RUNNING                    = 0x40\n\tIFF_SIMPLEX                    = 0x800\n\tIFF_STATICARP                  = 0x80000\n\tIFF_UP                         = 0x1\n\tIFNAMSIZ                       = 0x10\n\tIFT_BRIDGE                     = 0xd1\n\tIFT_CARP                       = 0xf8\n\tIFT_IEEE1394                   = 0x90\n\tIFT_INFINIBAND                 = 0xc7\n\tIFT_L2VLAN                     = 0x87\n\tIFT_L3IPVLAN                   = 0x88\n\tIFT_PPP                        = 0x17\n\tIFT_PROPVIRTUAL                = 0x35\n\tIGNBRK                         = 0x1\n\tIGNCR                          = 0x80\n\tIGNPAR                         = 0x4\n\tIMAXBEL                        = 0x2000\n\tINLCR                          = 0x40\n\tINPCK                          = 0x10\n\tIN_CLASSA_HOST                 = 0xffffff\n\tIN_CLASSA_MAX                  = 0x80\n\tIN_CLASSA_NET                  = 0xff000000\n\tIN_CLASSA_NSHIFT               = 0x18\n\tIN_CLASSB_HOST                 = 0xffff\n\tIN_CLASSB_MAX                  = 0x10000\n\tIN_CLASSB_NET                  = 0xffff0000\n\tIN_CLASSB_NSHIFT               = 0x10\n\tIN_CLASSC_HOST                 = 0xff\n\tIN_CLASSC_NET                  = 0xffffff00\n\tIN_CLASSC_NSHIFT               = 0x8\n\tIN_CLASSD_HOST                 = 0xfffffff\n\tIN_CLASSD_NET                  = 0xf0000000\n\tIN_CLASSD_NSHIFT               = 0x1c\n\tIN_LOOPBACKNET                 = 0x7f\n\tIN_RFC3021_MASK                = 0xfffffffe\n\tIPPROTO_3PC                    = 0x22\n\tIPPROTO_ADFS                   = 0x44\n\tIPPROTO_AH                     = 0x33\n\tIPPROTO_AHIP                   = 0x3d\n\tIPPROTO_APES                   = 0x63\n\tIPPROTO_ARGUS                  = 0xd\n\tIPPROTO_AX25                   = 0x5d\n\tIPPROTO_BHA                    = 0x31\n\tIPPROTO_BLT                    = 0x1e\n\tIPPROTO_BRSATMON               = 0x4c\n\tIPPROTO_CARP                   = 0x70\n\tIPPROTO_CFTP                   = 0x3e\n\tIPPROTO_CHAOS                  = 0x10\n\tIPPROTO_CMTP                   = 0x26\n\tIPPROTO_CPHB                   = 0x49\n\tIPPROTO_CPNX                   = 0x48\n\tIPPROTO_DCCP                   = 0x21\n\tIPPROTO_DDP                    = 0x25\n\tIPPROTO_DGP                    = 0x56\n\tIPPROTO_DIVERT                 = 0x102\n\tIPPROTO_DONE                   = 0x101\n\tIPPROTO_DSTOPTS                = 0x3c\n\tIPPROTO_EGP                    = 0x8\n\tIPPROTO_EMCON                  = 0xe\n\tIPPROTO_ENCAP                  = 0x62\n\tIPPROTO_EON                    = 0x50\n\tIPPROTO_ESP                    = 0x32\n\tIPPROTO_ETHERIP                = 0x61\n\tIPPROTO_FRAGMENT               = 0x2c\n\tIPPROTO_GGP                    = 0x3\n\tIPPROTO_GMTP                   = 0x64\n\tIPPROTO_GRE                    = 0x2f\n\tIPPROTO_HELLO                  = 0x3f\n\tIPPROTO_HIP                    = 0x8b\n\tIPPROTO_HMP                    = 0x14\n\tIPPROTO_HOPOPTS                = 0x0\n\tIPPROTO_ICMP                   = 0x1\n\tIPPROTO_ICMPV6                 = 0x3a\n\tIPPROTO_IDP                    = 0x16\n\tIPPROTO_IDPR                   = 0x23\n\tIPPROTO_IDRP                   = 0x2d\n\tIPPROTO_IGMP                   = 0x2\n\tIPPROTO_IGP                    = 0x55\n\tIPPROTO_IGRP                   = 0x58\n\tIPPROTO_IL                     = 0x28\n\tIPPROTO_INLSP                  = 0x34\n\tIPPROTO_INP                    = 0x20\n\tIPPROTO_IP                     = 0x0\n\tIPPROTO_IPCOMP                 = 0x6c\n\tIPPROTO_IPCV                   = 0x47\n\tIPPROTO_IPEIP                  = 0x5e\n\tIPPROTO_IPIP                   = 0x4\n\tIPPROTO_IPPC                   = 0x43\n\tIPPROTO_IPV4                   = 0x4\n\tIPPROTO_IPV6                   = 0x29\n\tIPPROTO_IRTP                   = 0x1c\n\tIPPROTO_KRYPTOLAN              = 0x41\n\tIPPROTO_LARP                   = 0x5b\n\tIPPROTO_LEAF1                  = 0x19\n\tIPPROTO_LEAF2                  = 0x1a\n\tIPPROTO_MAX                    = 0x100\n\tIPPROTO_MEAS                   = 0x13\n\tIPPROTO_MH                     = 0x87\n\tIPPROTO_MHRP                   = 0x30\n\tIPPROTO_MICP                   = 0x5f\n\tIPPROTO_MOBILE                 = 0x37\n\tIPPROTO_MPLS                   = 0x89\n\tIPPROTO_MTP                    = 0x5c\n\tIPPROTO_MUX                    = 0x12\n\tIPPROTO_ND                     = 0x4d\n\tIPPROTO_NHRP                   = 0x36\n\tIPPROTO_NONE                   = 0x3b\n\tIPPROTO_NSP                    = 0x1f\n\tIPPROTO_NVPII                  = 0xb\n\tIPPROTO_OLD_DIVERT             = 0xfe\n\tIPPROTO_OSPFIGP                = 0x59\n\tIPPROTO_PFSYNC                 = 0xf0\n\tIPPROTO_PGM                    = 0x71\n\tIPPROTO_PIGP                   = 0x9\n\tIPPROTO_PIM                    = 0x67\n\tIPPROTO_PRM                    = 0x15\n\tIPPROTO_PUP                    = 0xc\n\tIPPROTO_PVP                    = 0x4b\n\tIPPROTO_RAW                    = 0xff\n\tIPPROTO_RCCMON                 = 0xa\n\tIPPROTO_RDP                    = 0x1b\n\tIPPROTO_RESERVED_253           = 0xfd\n\tIPPROTO_RESERVED_254           = 0xfe\n\tIPPROTO_ROUTING                = 0x2b\n\tIPPROTO_RSVP                   = 0x2e\n\tIPPROTO_RVD                    = 0x42\n\tIPPROTO_SATEXPAK               = 0x40\n\tIPPROTO_SATMON                 = 0x45\n\tIPPROTO_SCCSP                  = 0x60\n\tIPPROTO_SCTP                   = 0x84\n\tIPPROTO_SDRP                   = 0x2a\n\tIPPROTO_SEND                   = 0x103\n\tIPPROTO_SHIM6                  = 0x8c\n\tIPPROTO_SKIP                   = 0x39\n\tIPPROTO_SPACER                 = 0x7fff\n\tIPPROTO_SRPC                   = 0x5a\n\tIPPROTO_ST                     = 0x7\n\tIPPROTO_SVMTP                  = 0x52\n\tIPPROTO_SWIPE                  = 0x35\n\tIPPROTO_TCF                    = 0x57\n\tIPPROTO_TCP                    = 0x6\n\tIPPROTO_TLSP                   = 0x38\n\tIPPROTO_TP                     = 0x1d\n\tIPPROTO_TPXX                   = 0x27\n\tIPPROTO_TRUNK1                 = 0x17\n\tIPPROTO_TRUNK2                 = 0x18\n\tIPPROTO_TTP                    = 0x54\n\tIPPROTO_UDP                    = 0x11\n\tIPPROTO_UDPLITE                = 0x88\n\tIPPROTO_VINES                  = 0x53\n\tIPPROTO_VISA                   = 0x46\n\tIPPROTO_VMTP                   = 0x51\n\tIPPROTO_WBEXPAK                = 0x4f\n\tIPPROTO_WBMON                  = 0x4e\n\tIPPROTO_WSN                    = 0x4a\n\tIPPROTO_XNET                   = 0xf\n\tIPPROTO_XTP                    = 0x24\n\tIPV6_AUTOFLOWLABEL             = 0x3b\n\tIPV6_BINDANY                   = 0x40\n\tIPV6_BINDMULTI                 = 0x41\n\tIPV6_BINDV6ONLY                = 0x1b\n\tIPV6_CHECKSUM                  = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS    = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP    = 0x1\n\tIPV6_DEFHLIM                   = 0x40\n\tIPV6_DONTFRAG                  = 0x3e\n\tIPV6_DSTOPTS                   = 0x32\n\tIPV6_FLOWID                    = 0x43\n\tIPV6_FLOWINFO_MASK             = 0xffffff0f\n\tIPV6_FLOWLABEL_LEN             = 0x14\n\tIPV6_FLOWLABEL_MASK            = 0xffff0f00\n\tIPV6_FLOWTYPE                  = 0x44\n\tIPV6_FRAGTTL                   = 0x78\n\tIPV6_FW_ADD                    = 0x1e\n\tIPV6_FW_DEL                    = 0x1f\n\tIPV6_FW_FLUSH                  = 0x20\n\tIPV6_FW_GET                    = 0x22\n\tIPV6_FW_ZERO                   = 0x21\n\tIPV6_HLIMDEC                   = 0x1\n\tIPV6_HOPLIMIT                  = 0x2f\n\tIPV6_HOPOPTS                   = 0x31\n\tIPV6_IPSEC_POLICY              = 0x1c\n\tIPV6_JOIN_GROUP                = 0xc\n\tIPV6_LEAVE_GROUP               = 0xd\n\tIPV6_MAXHLIM                   = 0xff\n\tIPV6_MAXOPTHDR                 = 0x800\n\tIPV6_MAXPACKET                 = 0xffff\n\tIPV6_MAX_GROUP_SRC_FILTER      = 0x200\n\tIPV6_MAX_MEMBERSHIPS           = 0xfff\n\tIPV6_MAX_SOCK_SRC_FILTER       = 0x80\n\tIPV6_MMTU                      = 0x500\n\tIPV6_MSFILTER                  = 0x4a\n\tIPV6_MULTICAST_HOPS            = 0xa\n\tIPV6_MULTICAST_IF              = 0x9\n\tIPV6_MULTICAST_LOOP            = 0xb\n\tIPV6_NEXTHOP                   = 0x30\n\tIPV6_ORIGDSTADDR               = 0x48\n\tIPV6_PATHMTU                   = 0x2c\n\tIPV6_PKTINFO                   = 0x2e\n\tIPV6_PORTRANGE                 = 0xe\n\tIPV6_PORTRANGE_DEFAULT         = 0x0\n\tIPV6_PORTRANGE_HIGH            = 0x1\n\tIPV6_PORTRANGE_LOW             = 0x2\n\tIPV6_PREFER_TEMPADDR           = 0x3f\n\tIPV6_RECVDSTOPTS               = 0x28\n\tIPV6_RECVFLOWID                = 0x46\n\tIPV6_RECVHOPLIMIT              = 0x25\n\tIPV6_RECVHOPOPTS               = 0x27\n\tIPV6_RECVORIGDSTADDR           = 0x48\n\tIPV6_RECVPATHMTU               = 0x2b\n\tIPV6_RECVPKTINFO               = 0x24\n\tIPV6_RECVRSSBUCKETID           = 0x47\n\tIPV6_RECVRTHDR                 = 0x26\n\tIPV6_RECVTCLASS                = 0x39\n\tIPV6_RSSBUCKETID               = 0x45\n\tIPV6_RSS_LISTEN_BUCKET         = 0x42\n\tIPV6_RTHDR                     = 0x33\n\tIPV6_RTHDRDSTOPTS              = 0x23\n\tIPV6_RTHDR_LOOSE               = 0x0\n\tIPV6_RTHDR_STRICT              = 0x1\n\tIPV6_RTHDR_TYPE_0              = 0x0\n\tIPV6_SOCKOPT_RESERVED1         = 0x3\n\tIPV6_TCLASS                    = 0x3d\n\tIPV6_UNICAST_HOPS              = 0x4\n\tIPV6_USE_MIN_MTU               = 0x2a\n\tIPV6_V6ONLY                    = 0x1b\n\tIPV6_VERSION                   = 0x60\n\tIPV6_VERSION_MASK              = 0xf0\n\tIPV6_VLAN_PCP                  = 0x4b\n\tIP_ADD_MEMBERSHIP              = 0xc\n\tIP_ADD_SOURCE_MEMBERSHIP       = 0x46\n\tIP_BINDANY                     = 0x18\n\tIP_BINDMULTI                   = 0x19\n\tIP_BLOCK_SOURCE                = 0x48\n\tIP_DEFAULT_MULTICAST_LOOP      = 0x1\n\tIP_DEFAULT_MULTICAST_TTL       = 0x1\n\tIP_DF                          = 0x4000\n\tIP_DONTFRAG                    = 0x43\n\tIP_DROP_MEMBERSHIP             = 0xd\n\tIP_DROP_SOURCE_MEMBERSHIP      = 0x47\n\tIP_DUMMYNET3                   = 0x31\n\tIP_DUMMYNET_CONFIGURE          = 0x3c\n\tIP_DUMMYNET_DEL                = 0x3d\n\tIP_DUMMYNET_FLUSH              = 0x3e\n\tIP_DUMMYNET_GET                = 0x40\n\tIP_FLOWID                      = 0x5a\n\tIP_FLOWTYPE                    = 0x5b\n\tIP_FW3                         = 0x30\n\tIP_FW_ADD                      = 0x32\n\tIP_FW_DEL                      = 0x33\n\tIP_FW_FLUSH                    = 0x34\n\tIP_FW_GET                      = 0x36\n\tIP_FW_NAT_CFG                  = 0x38\n\tIP_FW_NAT_DEL                  = 0x39\n\tIP_FW_NAT_GET_CONFIG           = 0x3a\n\tIP_FW_NAT_GET_LOG              = 0x3b\n\tIP_FW_RESETLOG                 = 0x37\n\tIP_FW_TABLE_ADD                = 0x28\n\tIP_FW_TABLE_DEL                = 0x29\n\tIP_FW_TABLE_FLUSH              = 0x2a\n\tIP_FW_TABLE_GETSIZE            = 0x2b\n\tIP_FW_TABLE_LIST               = 0x2c\n\tIP_FW_ZERO                     = 0x35\n\tIP_HDRINCL                     = 0x2\n\tIP_IPSEC_POLICY                = 0x15\n\tIP_MAXPACKET                   = 0xffff\n\tIP_MAX_GROUP_SRC_FILTER        = 0x200\n\tIP_MAX_MEMBERSHIPS             = 0xfff\n\tIP_MAX_SOCK_MUTE_FILTER        = 0x80\n\tIP_MAX_SOCK_SRC_FILTER         = 0x80\n\tIP_MF                          = 0x2000\n\tIP_MINTTL                      = 0x42\n\tIP_MSFILTER                    = 0x4a\n\tIP_MSS                         = 0x240\n\tIP_MULTICAST_IF                = 0x9\n\tIP_MULTICAST_LOOP              = 0xb\n\tIP_MULTICAST_TTL               = 0xa\n\tIP_MULTICAST_VIF               = 0xe\n\tIP_OFFMASK                     = 0x1fff\n\tIP_ONESBCAST                   = 0x17\n\tIP_OPTIONS                     = 0x1\n\tIP_ORIGDSTADDR                 = 0x1b\n\tIP_PORTRANGE                   = 0x13\n\tIP_PORTRANGE_DEFAULT           = 0x0\n\tIP_PORTRANGE_HIGH              = 0x1\n\tIP_PORTRANGE_LOW               = 0x2\n\tIP_RECVDSTADDR                 = 0x7\n\tIP_RECVFLOWID                  = 0x5d\n\tIP_RECVIF                      = 0x14\n\tIP_RECVOPTS                    = 0x5\n\tIP_RECVORIGDSTADDR             = 0x1b\n\tIP_RECVRETOPTS                 = 0x6\n\tIP_RECVRSSBUCKETID             = 0x5e\n\tIP_RECVTOS                     = 0x44\n\tIP_RECVTTL                     = 0x41\n\tIP_RETOPTS                     = 0x8\n\tIP_RF                          = 0x8000\n\tIP_RSSBUCKETID                 = 0x5c\n\tIP_RSS_LISTEN_BUCKET           = 0x1a\n\tIP_RSVP_OFF                    = 0x10\n\tIP_RSVP_ON                     = 0xf\n\tIP_RSVP_VIF_OFF                = 0x12\n\tIP_RSVP_VIF_ON                 = 0x11\n\tIP_SENDSRCADDR                 = 0x7\n\tIP_TOS                         = 0x3\n\tIP_TTL                         = 0x4\n\tIP_UNBLOCK_SOURCE              = 0x49\n\tIP_VLAN_PCP                    = 0x4b\n\tISIG                           = 0x80\n\tISTRIP                         = 0x20\n\tITIMER_PROF                    = 0x2\n\tITIMER_REAL                    = 0x0\n\tITIMER_VIRTUAL                 = 0x1\n\tIXANY                          = 0x800\n\tIXOFF                          = 0x400\n\tIXON                           = 0x200\n\tKERN_HOSTNAME                  = 0xa\n\tKERN_OSRELEASE                 = 0x2\n\tKERN_OSTYPE                    = 0x1\n\tKERN_VERSION                   = 0x4\n\tLOCAL_CONNWAIT                 = 0x4\n\tLOCAL_CREDS                    = 0x2\n\tLOCAL_PEERCRED                 = 0x1\n\tLOCAL_VENDOR                   = 0x80000000\n\tLOCK_EX                        = 0x2\n\tLOCK_NB                        = 0x4\n\tLOCK_SH                        = 0x1\n\tLOCK_UN                        = 0x8\n\tMADV_AUTOSYNC                  = 0x7\n\tMADV_CORE                      = 0x9\n\tMADV_DONTNEED                  = 0x4\n\tMADV_FREE                      = 0x5\n\tMADV_NOCORE                    = 0x8\n\tMADV_NORMAL                    = 0x0\n\tMADV_NOSYNC                    = 0x6\n\tMADV_PROTECT                   = 0xa\n\tMADV_RANDOM                    = 0x1\n\tMADV_SEQUENTIAL                = 0x2\n\tMADV_WILLNEED                  = 0x3\n\tMAP_ALIGNED_SUPER              = 0x1000000\n\tMAP_ALIGNMENT_MASK             = -0x1000000\n\tMAP_ALIGNMENT_SHIFT            = 0x18\n\tMAP_ANON                       = 0x1000\n\tMAP_ANONYMOUS                  = 0x1000\n\tMAP_COPY                       = 0x2\n\tMAP_EXCL                       = 0x4000\n\tMAP_FILE                       = 0x0\n\tMAP_FIXED                      = 0x10\n\tMAP_GUARD                      = 0x2000\n\tMAP_HASSEMAPHORE               = 0x200\n\tMAP_NOCORE                     = 0x20000\n\tMAP_NOSYNC                     = 0x800\n\tMAP_PREFAULT_READ              = 0x40000\n\tMAP_PRIVATE                    = 0x2\n\tMAP_RESERVED0020               = 0x20\n\tMAP_RESERVED0040               = 0x40\n\tMAP_RESERVED0080               = 0x80\n\tMAP_RESERVED0100               = 0x100\n\tMAP_SHARED                     = 0x1\n\tMAP_STACK                      = 0x400\n\tMCAST_BLOCK_SOURCE             = 0x54\n\tMCAST_EXCLUDE                  = 0x2\n\tMCAST_INCLUDE                  = 0x1\n\tMCAST_JOIN_GROUP               = 0x50\n\tMCAST_JOIN_SOURCE_GROUP        = 0x52\n\tMCAST_LEAVE_GROUP              = 0x51\n\tMCAST_LEAVE_SOURCE_GROUP       = 0x53\n\tMCAST_UNBLOCK_SOURCE           = 0x55\n\tMCAST_UNDEFINED                = 0x0\n\tMCL_CURRENT                    = 0x1\n\tMCL_FUTURE                     = 0x2\n\tMNT_ACLS                       = 0x8000000\n\tMNT_ASYNC                      = 0x40\n\tMNT_AUTOMOUNTED                = 0x200000000\n\tMNT_BYFSID                     = 0x8000000\n\tMNT_CMDFLAGS                   = 0xd0f0000\n\tMNT_DEFEXPORTED                = 0x200\n\tMNT_DELEXPORT                  = 0x20000\n\tMNT_EXKERB                     = 0x800\n\tMNT_EXPORTANON                 = 0x400\n\tMNT_EXPORTED                   = 0x100\n\tMNT_EXPUBLIC                   = 0x20000000\n\tMNT_EXRDONLY                   = 0x80\n\tMNT_FORCE                      = 0x80000\n\tMNT_GJOURNAL                   = 0x2000000\n\tMNT_IGNORE                     = 0x800000\n\tMNT_LAZY                       = 0x3\n\tMNT_LOCAL                      = 0x1000\n\tMNT_MULTILABEL                 = 0x4000000\n\tMNT_NFS4ACLS                   = 0x10\n\tMNT_NOATIME                    = 0x10000000\n\tMNT_NOCLUSTERR                 = 0x40000000\n\tMNT_NOCLUSTERW                 = 0x80000000\n\tMNT_NOEXEC                     = 0x4\n\tMNT_NONBUSY                    = 0x4000000\n\tMNT_NOSUID                     = 0x8\n\tMNT_NOSYMFOLLOW                = 0x400000\n\tMNT_NOWAIT                     = 0x2\n\tMNT_QUOTA                      = 0x2000\n\tMNT_RDONLY                     = 0x1\n\tMNT_RELOAD                     = 0x40000\n\tMNT_ROOTFS                     = 0x4000\n\tMNT_SNAPSHOT                   = 0x1000000\n\tMNT_SOFTDEP                    = 0x200000\n\tMNT_SUIDDIR                    = 0x100000\n\tMNT_SUJ                        = 0x100000000\n\tMNT_SUSPEND                    = 0x4\n\tMNT_SYNCHRONOUS                = 0x2\n\tMNT_UNION                      = 0x20\n\tMNT_UNTRUSTED                  = 0x800000000\n\tMNT_UPDATE                     = 0x10000\n\tMNT_UPDATEMASK                 = 0xad8d0807e\n\tMNT_USER                       = 0x8000\n\tMNT_VERIFIED                   = 0x400000000\n\tMNT_VISFLAGMASK                = 0xffef0ffff\n\tMNT_WAIT                       = 0x1\n\tMSG_CMSG_CLOEXEC               = 0x40000\n\tMSG_COMPAT                     = 0x8000\n\tMSG_CTRUNC                     = 0x20\n\tMSG_DONTROUTE                  = 0x4\n\tMSG_DONTWAIT                   = 0x80\n\tMSG_EOF                        = 0x100\n\tMSG_EOR                        = 0x8\n\tMSG_NBIO                       = 0x4000\n\tMSG_NOSIGNAL                   = 0x20000\n\tMSG_NOTIFICATION               = 0x2000\n\tMSG_OOB                        = 0x1\n\tMSG_PEEK                       = 0x2\n\tMSG_TRUNC                      = 0x10\n\tMSG_WAITALL                    = 0x40\n\tMSG_WAITFORONE                 = 0x80000\n\tMS_ASYNC                       = 0x1\n\tMS_INVALIDATE                  = 0x2\n\tMS_SYNC                        = 0x0\n\tNAME_MAX                       = 0xff\n\tNET_RT_DUMP                    = 0x1\n\tNET_RT_FLAGS                   = 0x2\n\tNET_RT_IFLIST                  = 0x3\n\tNET_RT_IFLISTL                 = 0x5\n\tNET_RT_IFMALIST                = 0x4\n\tNFDBITS                        = 0x20\n\tNOFLSH                         = 0x80000000\n\tNOKERNINFO                     = 0x2000000\n\tNOTE_ABSTIME                   = 0x10\n\tNOTE_ATTRIB                    = 0x8\n\tNOTE_CHILD                     = 0x4\n\tNOTE_CLOSE                     = 0x100\n\tNOTE_CLOSE_WRITE               = 0x200\n\tNOTE_DELETE                    = 0x1\n\tNOTE_EXEC                      = 0x20000000\n\tNOTE_EXIT                      = 0x80000000\n\tNOTE_EXTEND                    = 0x4\n\tNOTE_FFAND                     = 0x40000000\n\tNOTE_FFCOPY                    = 0xc0000000\n\tNOTE_FFCTRLMASK                = 0xc0000000\n\tNOTE_FFLAGSMASK                = 0xffffff\n\tNOTE_FFNOP                     = 0x0\n\tNOTE_FFOR                      = 0x80000000\n\tNOTE_FILE_POLL                 = 0x2\n\tNOTE_FORK                      = 0x40000000\n\tNOTE_LINK                      = 0x10\n\tNOTE_LOWAT                     = 0x1\n\tNOTE_MSECONDS                  = 0x2\n\tNOTE_NSECONDS                  = 0x8\n\tNOTE_OPEN                      = 0x80\n\tNOTE_PCTRLMASK                 = 0xf0000000\n\tNOTE_PDATAMASK                 = 0xfffff\n\tNOTE_READ                      = 0x400\n\tNOTE_RENAME                    = 0x20\n\tNOTE_REVOKE                    = 0x40\n\tNOTE_SECONDS                   = 0x1\n\tNOTE_TRACK                     = 0x1\n\tNOTE_TRACKERR                  = 0x2\n\tNOTE_TRIGGER                   = 0x1000000\n\tNOTE_USECONDS                  = 0x4\n\tNOTE_WRITE                     = 0x2\n\tOCRNL                          = 0x10\n\tONLCR                          = 0x2\n\tONLRET                         = 0x40\n\tONOCR                          = 0x20\n\tONOEOT                         = 0x8\n\tOPOST                          = 0x1\n\tOXTABS                         = 0x4\n\tO_ACCMODE                      = 0x3\n\tO_APPEND                       = 0x8\n\tO_ASYNC                        = 0x40\n\tO_CLOEXEC                      = 0x100000\n\tO_CREAT                        = 0x200\n\tO_DIRECT                       = 0x10000\n\tO_DIRECTORY                    = 0x20000\n\tO_EXCL                         = 0x800\n\tO_EXEC                         = 0x40000\n\tO_EXLOCK                       = 0x20\n\tO_FSYNC                        = 0x80\n\tO_NDELAY                       = 0x4\n\tO_NOCTTY                       = 0x8000\n\tO_NOFOLLOW                     = 0x100\n\tO_NONBLOCK                     = 0x4\n\tO_RDONLY                       = 0x0\n\tO_RDWR                         = 0x2\n\tO_RESOLVE_BENEATH              = 0x800000\n\tO_SEARCH                       = 0x40000\n\tO_SHLOCK                       = 0x10\n\tO_SYNC                         = 0x80\n\tO_TRUNC                        = 0x400\n\tO_TTY_INIT                     = 0x80000\n\tO_VERIFY                       = 0x200000\n\tO_WRONLY                       = 0x1\n\tPARENB                         = 0x1000\n\tPARMRK                         = 0x8\n\tPARODD                         = 0x2000\n\tPENDIN                         = 0x20000000\n\tPIOD_READ_D                    = 0x1\n\tPIOD_READ_I                    = 0x3\n\tPIOD_WRITE_D                   = 0x2\n\tPIOD_WRITE_I                   = 0x4\n\tPRIO_PGRP                      = 0x1\n\tPRIO_PROCESS                   = 0x0\n\tPRIO_USER                      = 0x2\n\tPROT_EXEC                      = 0x4\n\tPROT_NONE                      = 0x0\n\tPROT_READ                      = 0x1\n\tPROT_WRITE                     = 0x2\n\tPTRACE_DEFAULT                 = 0x1\n\tPTRACE_EXEC                    = 0x1\n\tPTRACE_FORK                    = 0x8\n\tPTRACE_LWP                     = 0x10\n\tPTRACE_SCE                     = 0x2\n\tPTRACE_SCX                     = 0x4\n\tPTRACE_SYSCALL                 = 0x6\n\tPTRACE_VFORK                   = 0x20\n\tPT_ATTACH                      = 0xa\n\tPT_CLEARSTEP                   = 0x10\n\tPT_CONTINUE                    = 0x7\n\tPT_DETACH                      = 0xb\n\tPT_FIRSTMACH                   = 0x40\n\tPT_FOLLOW_FORK                 = 0x17\n\tPT_GETDBREGS                   = 0x25\n\tPT_GETFPREGS                   = 0x23\n\tPT_GETFSBASE                   = 0x47\n\tPT_GETGSBASE                   = 0x49\n\tPT_GETLWPLIST                  = 0xf\n\tPT_GETNUMLWPS                  = 0xe\n\tPT_GETREGS                     = 0x21\n\tPT_GETXMMREGS                  = 0x40\n\tPT_GETXSTATE                   = 0x45\n\tPT_GETXSTATE_INFO              = 0x44\n\tPT_GET_EVENT_MASK              = 0x19\n\tPT_GET_SC_ARGS                 = 0x1b\n\tPT_GET_SC_RET                  = 0x1c\n\tPT_IO                          = 0xc\n\tPT_KILL                        = 0x8\n\tPT_LWPINFO                     = 0xd\n\tPT_LWP_EVENTS                  = 0x18\n\tPT_READ_D                      = 0x2\n\tPT_READ_I                      = 0x1\n\tPT_RESUME                      = 0x13\n\tPT_SETDBREGS                   = 0x26\n\tPT_SETFPREGS                   = 0x24\n\tPT_SETFSBASE                   = 0x48\n\tPT_SETGSBASE                   = 0x4a\n\tPT_SETREGS                     = 0x22\n\tPT_SETSTEP                     = 0x11\n\tPT_SETXMMREGS                  = 0x41\n\tPT_SETXSTATE                   = 0x46\n\tPT_SET_EVENT_MASK              = 0x1a\n\tPT_STEP                        = 0x9\n\tPT_SUSPEND                     = 0x12\n\tPT_SYSCALL                     = 0x16\n\tPT_TO_SCE                      = 0x14\n\tPT_TO_SCX                      = 0x15\n\tPT_TRACE_ME                    = 0x0\n\tPT_VM_ENTRY                    = 0x29\n\tPT_VM_TIMESTAMP                = 0x28\n\tPT_WRITE_D                     = 0x5\n\tPT_WRITE_I                     = 0x4\n\tP_ZONEID                       = 0xc\n\tRLIMIT_AS                      = 0xa\n\tRLIMIT_CORE                    = 0x4\n\tRLIMIT_CPU                     = 0x0\n\tRLIMIT_DATA                    = 0x2\n\tRLIMIT_FSIZE                   = 0x1\n\tRLIMIT_MEMLOCK                 = 0x6\n\tRLIMIT_NOFILE                  = 0x8\n\tRLIMIT_NPROC                   = 0x7\n\tRLIMIT_RSS                     = 0x5\n\tRLIMIT_STACK                   = 0x3\n\tRLIM_INFINITY                  = 0x7fffffffffffffff\n\tRTAX_AUTHOR                    = 0x6\n\tRTAX_BRD                       = 0x7\n\tRTAX_DST                       = 0x0\n\tRTAX_GATEWAY                   = 0x1\n\tRTAX_GENMASK                   = 0x3\n\tRTAX_IFA                       = 0x5\n\tRTAX_IFP                       = 0x4\n\tRTAX_MAX                       = 0x8\n\tRTAX_NETMASK                   = 0x2\n\tRTA_AUTHOR                     = 0x40\n\tRTA_BRD                        = 0x80\n\tRTA_DST                        = 0x1\n\tRTA_GATEWAY                    = 0x2\n\tRTA_GENMASK                    = 0x8\n\tRTA_IFA                        = 0x20\n\tRTA_IFP                        = 0x10\n\tRTA_NETMASK                    = 0x4\n\tRTF_BLACKHOLE                  = 0x1000\n\tRTF_BROADCAST                  = 0x400000\n\tRTF_DONE                       = 0x40\n\tRTF_DYNAMIC                    = 0x10\n\tRTF_FIXEDMTU                   = 0x80000\n\tRTF_FMASK                      = 0x1004d808\n\tRTF_GATEWAY                    = 0x2\n\tRTF_GWFLAG_COMPAT              = 0x80000000\n\tRTF_HOST                       = 0x4\n\tRTF_LLDATA                     = 0x400\n\tRTF_LLINFO                     = 0x400\n\tRTF_LOCAL                      = 0x200000\n\tRTF_MODIFIED                   = 0x20\n\tRTF_MULTICAST                  = 0x800000\n\tRTF_PINNED                     = 0x100000\n\tRTF_PROTO1                     = 0x8000\n\tRTF_PROTO2                     = 0x4000\n\tRTF_PROTO3                     = 0x40000\n\tRTF_REJECT                     = 0x8\n\tRTF_RNH_LOCKED                 = 0x40000000\n\tRTF_STATIC                     = 0x800\n\tRTF_STICKY                     = 0x10000000\n\tRTF_UP                         = 0x1\n\tRTF_XRESOLVE                   = 0x200\n\tRTM_ADD                        = 0x1\n\tRTM_CHANGE                     = 0x3\n\tRTM_DELADDR                    = 0xd\n\tRTM_DELETE                     = 0x2\n\tRTM_DELMADDR                   = 0x10\n\tRTM_GET                        = 0x4\n\tRTM_IEEE80211                  = 0x12\n\tRTM_IFANNOUNCE                 = 0x11\n\tRTM_IFINFO                     = 0xe\n\tRTM_LOCK                       = 0x8\n\tRTM_LOSING                     = 0x5\n\tRTM_MISS                       = 0x7\n\tRTM_NEWADDR                    = 0xc\n\tRTM_NEWMADDR                   = 0xf\n\tRTM_REDIRECT                   = 0x6\n\tRTM_RESOLVE                    = 0xb\n\tRTM_RTTUNIT                    = 0xf4240\n\tRTM_VERSION                    = 0x5\n\tRTV_EXPIRE                     = 0x4\n\tRTV_HOPCOUNT                   = 0x2\n\tRTV_MTU                        = 0x1\n\tRTV_RPIPE                      = 0x8\n\tRTV_RTT                        = 0x40\n\tRTV_RTTVAR                     = 0x80\n\tRTV_SPIPE                      = 0x10\n\tRTV_SSTHRESH                   = 0x20\n\tRTV_WEIGHT                     = 0x100\n\tRT_ALL_FIBS                    = -0x1\n\tRT_BLACKHOLE                   = 0x40\n\tRT_DEFAULT_FIB                 = 0x0\n\tRT_HAS_GW                      = 0x80\n\tRT_HAS_HEADER                  = 0x10\n\tRT_HAS_HEADER_BIT              = 0x4\n\tRT_L2_ME                       = 0x4\n\tRT_L2_ME_BIT                   = 0x2\n\tRT_LLE_CACHE                   = 0x100\n\tRT_MAY_LOOP                    = 0x8\n\tRT_MAY_LOOP_BIT                = 0x3\n\tRT_REJECT                      = 0x20\n\tRUSAGE_CHILDREN                = -0x1\n\tRUSAGE_SELF                    = 0x0\n\tRUSAGE_THREAD                  = 0x1\n\tSCM_BINTIME                    = 0x4\n\tSCM_CREDS                      = 0x3\n\tSCM_MONOTONIC                  = 0x6\n\tSCM_REALTIME                   = 0x5\n\tSCM_RIGHTS                     = 0x1\n\tSCM_TIMESTAMP                  = 0x2\n\tSCM_TIME_INFO                  = 0x7\n\tSEEK_CUR                       = 0x1\n\tSEEK_DATA                      = 0x3\n\tSEEK_END                       = 0x2\n\tSEEK_HOLE                      = 0x4\n\tSEEK_SET                       = 0x0\n\tSHUT_RD                        = 0x0\n\tSHUT_RDWR                      = 0x2\n\tSHUT_WR                        = 0x1\n\tSIOCADDMULTI                   = 0x80206931\n\tSIOCAIFADDR                    = 0x8040691a\n\tSIOCAIFGROUP                   = 0x80246987\n\tSIOCATMARK                     = 0x40047307\n\tSIOCDELMULTI                   = 0x80206932\n\tSIOCDIFADDR                    = 0x80206919\n\tSIOCDIFGROUP                   = 0x80246989\n\tSIOCDIFPHYADDR                 = 0x80206949\n\tSIOCGDRVSPEC                   = 0xc01c697b\n\tSIOCGETSGCNT                   = 0xc0147210\n\tSIOCGETVIFCNT                  = 0xc014720f\n\tSIOCGHIWAT                     = 0x40047301\n\tSIOCGHWADDR                    = 0xc020693e\n\tSIOCGI2C                       = 0xc020693d\n\tSIOCGIFADDR                    = 0xc0206921\n\tSIOCGIFALIAS                   = 0xc044692d\n\tSIOCGIFBRDADDR                 = 0xc0206923\n\tSIOCGIFCAP                     = 0xc020691f\n\tSIOCGIFCONF                    = 0xc0086924\n\tSIOCGIFDESCR                   = 0xc020692a\n\tSIOCGIFDOWNREASON              = 0xc058699a\n\tSIOCGIFDSTADDR                 = 0xc0206922\n\tSIOCGIFFIB                     = 0xc020695c\n\tSIOCGIFFLAGS                   = 0xc0206911\n\tSIOCGIFGENERIC                 = 0xc020693a\n\tSIOCGIFGMEMB                   = 0xc024698a\n\tSIOCGIFGROUP                   = 0xc0246988\n\tSIOCGIFINDEX                   = 0xc0206920\n\tSIOCGIFMAC                     = 0xc0206926\n\tSIOCGIFMEDIA                   = 0xc0286938\n\tSIOCGIFMETRIC                  = 0xc0206917\n\tSIOCGIFMTU                     = 0xc0206933\n\tSIOCGIFNETMASK                 = 0xc0206925\n\tSIOCGIFPDSTADDR                = 0xc0206948\n\tSIOCGIFPHYS                    = 0xc0206935\n\tSIOCGIFPSRCADDR                = 0xc0206947\n\tSIOCGIFRSSHASH                 = 0xc0186997\n\tSIOCGIFRSSKEY                  = 0xc0946996\n\tSIOCGIFSTATUS                  = 0xc331693b\n\tSIOCGIFXMEDIA                  = 0xc028698b\n\tSIOCGLANPCP                    = 0xc0206998\n\tSIOCGLOWAT                     = 0x40047303\n\tSIOCGPGRP                      = 0x40047309\n\tSIOCGPRIVATE_0                 = 0xc0206950\n\tSIOCGPRIVATE_1                 = 0xc0206951\n\tSIOCGTUNFIB                    = 0xc020695e\n\tSIOCIFCREATE                   = 0xc020697a\n\tSIOCIFCREATE2                  = 0xc020697c\n\tSIOCIFDESTROY                  = 0x80206979\n\tSIOCIFGCLONERS                 = 0xc00c6978\n\tSIOCSDRVSPEC                   = 0x801c697b\n\tSIOCSHIWAT                     = 0x80047300\n\tSIOCSIFADDR                    = 0x8020690c\n\tSIOCSIFBRDADDR                 = 0x80206913\n\tSIOCSIFCAP                     = 0x8020691e\n\tSIOCSIFDESCR                   = 0x80206929\n\tSIOCSIFDSTADDR                 = 0x8020690e\n\tSIOCSIFFIB                     = 0x8020695d\n\tSIOCSIFFLAGS                   = 0x80206910\n\tSIOCSIFGENERIC                 = 0x80206939\n\tSIOCSIFLLADDR                  = 0x8020693c\n\tSIOCSIFMAC                     = 0x80206927\n\tSIOCSIFMEDIA                   = 0xc0206937\n\tSIOCSIFMETRIC                  = 0x80206918\n\tSIOCSIFMTU                     = 0x80206934\n\tSIOCSIFNAME                    = 0x80206928\n\tSIOCSIFNETMASK                 = 0x80206916\n\tSIOCSIFPHYADDR                 = 0x80406946\n\tSIOCSIFPHYS                    = 0x80206936\n\tSIOCSIFRVNET                   = 0xc020695b\n\tSIOCSIFVNET                    = 0xc020695a\n\tSIOCSLANPCP                    = 0x80206999\n\tSIOCSLOWAT                     = 0x80047302\n\tSIOCSPGRP                      = 0x80047308\n\tSIOCSTUNFIB                    = 0x8020695f\n\tSOCK_CLOEXEC                   = 0x10000000\n\tSOCK_DGRAM                     = 0x2\n\tSOCK_MAXADDRLEN                = 0xff\n\tSOCK_NONBLOCK                  = 0x20000000\n\tSOCK_RAW                       = 0x3\n\tSOCK_RDM                       = 0x4\n\tSOCK_SEQPACKET                 = 0x5\n\tSOCK_STREAM                    = 0x1\n\tSOL_LOCAL                      = 0x0\n\tSOL_SOCKET                     = 0xffff\n\tSOMAXCONN                      = 0x80\n\tSO_ACCEPTCONN                  = 0x2\n\tSO_ACCEPTFILTER                = 0x1000\n\tSO_BINTIME                     = 0x2000\n\tSO_BROADCAST                   = 0x20\n\tSO_DEBUG                       = 0x1\n\tSO_DOMAIN                      = 0x1019\n\tSO_DONTROUTE                   = 0x10\n\tSO_ERROR                       = 0x1007\n\tSO_KEEPALIVE                   = 0x8\n\tSO_LABEL                       = 0x1009\n\tSO_LINGER                      = 0x80\n\tSO_LISTENINCQLEN               = 0x1013\n\tSO_LISTENQLEN                  = 0x1012\n\tSO_LISTENQLIMIT                = 0x1011\n\tSO_MAX_PACING_RATE             = 0x1018\n\tSO_NOSIGPIPE                   = 0x800\n\tSO_NO_DDP                      = 0x8000\n\tSO_NO_OFFLOAD                  = 0x4000\n\tSO_OOBINLINE                   = 0x100\n\tSO_PEERLABEL                   = 0x1010\n\tSO_PROTOCOL                    = 0x1016\n\tSO_PROTOTYPE                   = 0x1016\n\tSO_RCVBUF                      = 0x1002\n\tSO_RCVLOWAT                    = 0x1004\n\tSO_RCVTIMEO                    = 0x1006\n\tSO_RERROR                      = 0x20000\n\tSO_REUSEADDR                   = 0x4\n\tSO_REUSEPORT                   = 0x200\n\tSO_REUSEPORT_LB                = 0x10000\n\tSO_SETFIB                      = 0x1014\n\tSO_SNDBUF                      = 0x1001\n\tSO_SNDLOWAT                    = 0x1003\n\tSO_SNDTIMEO                    = 0x1005\n\tSO_TIMESTAMP                   = 0x400\n\tSO_TS_BINTIME                  = 0x1\n\tSO_TS_CLOCK                    = 0x1017\n\tSO_TS_CLOCK_MAX                = 0x3\n\tSO_TS_DEFAULT                  = 0x0\n\tSO_TS_MONOTONIC                = 0x3\n\tSO_TS_REALTIME                 = 0x2\n\tSO_TS_REALTIME_MICRO           = 0x0\n\tSO_TYPE                        = 0x1008\n\tSO_USELOOPBACK                 = 0x40\n\tSO_USER_COOKIE                 = 0x1015\n\tSO_VENDOR                      = 0x80000000\n\tS_BLKSIZE                      = 0x200\n\tS_IEXEC                        = 0x40\n\tS_IFBLK                        = 0x6000\n\tS_IFCHR                        = 0x2000\n\tS_IFDIR                        = 0x4000\n\tS_IFIFO                        = 0x1000\n\tS_IFLNK                        = 0xa000\n\tS_IFMT                         = 0xf000\n\tS_IFREG                        = 0x8000\n\tS_IFSOCK                       = 0xc000\n\tS_IFWHT                        = 0xe000\n\tS_IREAD                        = 0x100\n\tS_IRGRP                        = 0x20\n\tS_IROTH                        = 0x4\n\tS_IRUSR                        = 0x100\n\tS_IRWXG                        = 0x38\n\tS_IRWXO                        = 0x7\n\tS_IRWXU                        = 0x1c0\n\tS_ISGID                        = 0x400\n\tS_ISTXT                        = 0x200\n\tS_ISUID                        = 0x800\n\tS_ISVTX                        = 0x200\n\tS_IWGRP                        = 0x10\n\tS_IWOTH                        = 0x2\n\tS_IWRITE                       = 0x80\n\tS_IWUSR                        = 0x80\n\tS_IXGRP                        = 0x8\n\tS_IXOTH                        = 0x1\n\tS_IXUSR                        = 0x40\n\tTAB0                           = 0x0\n\tTAB3                           = 0x4\n\tTABDLY                         = 0x4\n\tTCIFLUSH                       = 0x1\n\tTCIOFF                         = 0x3\n\tTCIOFLUSH                      = 0x3\n\tTCION                          = 0x4\n\tTCOFLUSH                       = 0x2\n\tTCOOFF                         = 0x1\n\tTCOON                          = 0x2\n\tTCPOPT_EOL                     = 0x0\n\tTCPOPT_FAST_OPEN               = 0x22\n\tTCPOPT_MAXSEG                  = 0x2\n\tTCPOPT_NOP                     = 0x1\n\tTCPOPT_PAD                     = 0x0\n\tTCPOPT_SACK                    = 0x5\n\tTCPOPT_SACK_PERMITTED          = 0x4\n\tTCPOPT_SIGNATURE               = 0x13\n\tTCPOPT_TIMESTAMP               = 0x8\n\tTCPOPT_WINDOW                  = 0x3\n\tTCP_BBR_ACK_COMP_ALG           = 0x448\n\tTCP_BBR_ALGORITHM              = 0x43b\n\tTCP_BBR_DRAIN_INC_EXTRA        = 0x43c\n\tTCP_BBR_DRAIN_PG               = 0x42e\n\tTCP_BBR_EXTRA_GAIN             = 0x449\n\tTCP_BBR_EXTRA_STATE            = 0x453\n\tTCP_BBR_FLOOR_MIN_TSO          = 0x454\n\tTCP_BBR_HDWR_PACE              = 0x451\n\tTCP_BBR_HOLD_TARGET            = 0x436\n\tTCP_BBR_IWINTSO                = 0x42b\n\tTCP_BBR_LOWGAIN_FD             = 0x436\n\tTCP_BBR_LOWGAIN_HALF           = 0x435\n\tTCP_BBR_LOWGAIN_THRESH         = 0x434\n\tTCP_BBR_MAX_RTO                = 0x439\n\tTCP_BBR_MIN_RTO                = 0x438\n\tTCP_BBR_MIN_TOPACEOUT          = 0x455\n\tTCP_BBR_ONE_RETRAN             = 0x431\n\tTCP_BBR_PACE_CROSS             = 0x442\n\tTCP_BBR_PACE_DEL_TAR           = 0x43f\n\tTCP_BBR_PACE_OH                = 0x435\n\tTCP_BBR_PACE_PER_SEC           = 0x43e\n\tTCP_BBR_PACE_SEG_MAX           = 0x440\n\tTCP_BBR_PACE_SEG_MIN           = 0x441\n\tTCP_BBR_POLICER_DETECT         = 0x457\n\tTCP_BBR_PROBE_RTT_GAIN         = 0x44d\n\tTCP_BBR_PROBE_RTT_INT          = 0x430\n\tTCP_BBR_PROBE_RTT_LEN          = 0x44e\n\tTCP_BBR_RACK_RTT_USE           = 0x44a\n\tTCP_BBR_RECFORCE               = 0x42c\n\tTCP_BBR_REC_OVER_HPTS          = 0x43a\n\tTCP_BBR_RETRAN_WTSO            = 0x44b\n\tTCP_BBR_RWND_IS_APP            = 0x42f\n\tTCP_BBR_SEND_IWND_IN_TSO       = 0x44f\n\tTCP_BBR_STARTUP_EXIT_EPOCH     = 0x43d\n\tTCP_BBR_STARTUP_LOSS_EXIT      = 0x432\n\tTCP_BBR_STARTUP_PG             = 0x42d\n\tTCP_BBR_TMR_PACE_OH            = 0x448\n\tTCP_BBR_TSLIMITS               = 0x434\n\tTCP_BBR_TSTMP_RAISES           = 0x456\n\tTCP_BBR_UNLIMITED              = 0x43b\n\tTCP_BBR_USEDEL_RATE            = 0x437\n\tTCP_BBR_USE_LOWGAIN            = 0x433\n\tTCP_BBR_USE_RACK_CHEAT         = 0x450\n\tTCP_BBR_UTTER_MAX_TSO          = 0x452\n\tTCP_CA_NAME_MAX                = 0x10\n\tTCP_CCALGOOPT                  = 0x41\n\tTCP_CONGESTION                 = 0x40\n\tTCP_DATA_AFTER_CLOSE           = 0x44c\n\tTCP_DELACK                     = 0x48\n\tTCP_FASTOPEN                   = 0x401\n\tTCP_FASTOPEN_MAX_COOKIE_LEN    = 0x10\n\tTCP_FASTOPEN_MIN_COOKIE_LEN    = 0x4\n\tTCP_FASTOPEN_PSK_LEN           = 0x10\n\tTCP_FUNCTION_BLK               = 0x2000\n\tTCP_FUNCTION_NAME_LEN_MAX      = 0x20\n\tTCP_INFO                       = 0x20\n\tTCP_KEEPCNT                    = 0x400\n\tTCP_KEEPIDLE                   = 0x100\n\tTCP_KEEPINIT                   = 0x80\n\tTCP_KEEPINTVL                  = 0x200\n\tTCP_LOG                        = 0x22\n\tTCP_LOGBUF                     = 0x23\n\tTCP_LOGDUMP                    = 0x25\n\tTCP_LOGDUMPID                  = 0x26\n\tTCP_LOGID                      = 0x24\n\tTCP_LOG_ID_LEN                 = 0x40\n\tTCP_MAXBURST                   = 0x4\n\tTCP_MAXHLEN                    = 0x3c\n\tTCP_MAXOLEN                    = 0x28\n\tTCP_MAXSEG                     = 0x2\n\tTCP_MAXWIN                     = 0xffff\n\tTCP_MAX_SACK                   = 0x4\n\tTCP_MAX_WINSHIFT               = 0xe\n\tTCP_MD5SIG                     = 0x10\n\tTCP_MINMSS                     = 0xd8\n\tTCP_MSS                        = 0x218\n\tTCP_NODELAY                    = 0x1\n\tTCP_NOOPT                      = 0x8\n\tTCP_NOPUSH                     = 0x4\n\tTCP_PCAP_IN                    = 0x1000\n\tTCP_PCAP_OUT                   = 0x800\n\tTCP_RACK_EARLY_RECOV           = 0x423\n\tTCP_RACK_EARLY_SEG             = 0x424\n\tTCP_RACK_GP_INCREASE           = 0x446\n\tTCP_RACK_IDLE_REDUCE_HIGH      = 0x444\n\tTCP_RACK_MIN_PACE              = 0x445\n\tTCP_RACK_MIN_PACE_SEG          = 0x446\n\tTCP_RACK_MIN_TO                = 0x422\n\tTCP_RACK_PACE_ALWAYS           = 0x41f\n\tTCP_RACK_PACE_MAX_SEG          = 0x41e\n\tTCP_RACK_PACE_REDUCE           = 0x41d\n\tTCP_RACK_PKT_DELAY             = 0x428\n\tTCP_RACK_PROP                  = 0x41b\n\tTCP_RACK_PROP_RATE             = 0x420\n\tTCP_RACK_PRR_SENDALOT          = 0x421\n\tTCP_RACK_REORD_FADE            = 0x426\n\tTCP_RACK_REORD_THRESH          = 0x425\n\tTCP_RACK_TLP_INC_VAR           = 0x429\n\tTCP_RACK_TLP_REDUCE            = 0x41c\n\tTCP_RACK_TLP_THRESH            = 0x427\n\tTCP_RACK_TLP_USE               = 0x447\n\tTCP_VENDOR                     = 0x80000000\n\tTCSAFLUSH                      = 0x2\n\tTIMER_ABSTIME                  = 0x1\n\tTIMER_RELTIME                  = 0x0\n\tTIOCCBRK                       = 0x2000747a\n\tTIOCCDTR                       = 0x20007478\n\tTIOCCONS                       = 0x80047462\n\tTIOCDRAIN                      = 0x2000745e\n\tTIOCEXCL                       = 0x2000740d\n\tTIOCEXT                        = 0x80047460\n\tTIOCFLUSH                      = 0x80047410\n\tTIOCGDRAINWAIT                 = 0x40047456\n\tTIOCGETA                       = 0x402c7413\n\tTIOCGETD                       = 0x4004741a\n\tTIOCGPGRP                      = 0x40047477\n\tTIOCGPTN                       = 0x4004740f\n\tTIOCGSID                       = 0x40047463\n\tTIOCGWINSZ                     = 0x40087468\n\tTIOCMBIC                       = 0x8004746b\n\tTIOCMBIS                       = 0x8004746c\n\tTIOCMGDTRWAIT                  = 0x4004745a\n\tTIOCMGET                       = 0x4004746a\n\tTIOCMSDTRWAIT                  = 0x8004745b\n\tTIOCMSET                       = 0x8004746d\n\tTIOCM_CAR                      = 0x40\n\tTIOCM_CD                       = 0x40\n\tTIOCM_CTS                      = 0x20\n\tTIOCM_DCD                      = 0x40\n\tTIOCM_DSR                      = 0x100\n\tTIOCM_DTR                      = 0x2\n\tTIOCM_LE                       = 0x1\n\tTIOCM_RI                       = 0x80\n\tTIOCM_RNG                      = 0x80\n\tTIOCM_RTS                      = 0x4\n\tTIOCM_SR                       = 0x10\n\tTIOCM_ST                       = 0x8\n\tTIOCNOTTY                      = 0x20007471\n\tTIOCNXCL                       = 0x2000740e\n\tTIOCOUTQ                       = 0x40047473\n\tTIOCPKT                        = 0x80047470\n\tTIOCPKT_DATA                   = 0x0\n\tTIOCPKT_DOSTOP                 = 0x20\n\tTIOCPKT_FLUSHREAD              = 0x1\n\tTIOCPKT_FLUSHWRITE             = 0x2\n\tTIOCPKT_IOCTL                  = 0x40\n\tTIOCPKT_NOSTOP                 = 0x10\n\tTIOCPKT_START                  = 0x8\n\tTIOCPKT_STOP                   = 0x4\n\tTIOCPTMASTER                   = 0x2000741c\n\tTIOCSBRK                       = 0x2000747b\n\tTIOCSCTTY                      = 0x20007461\n\tTIOCSDRAINWAIT                 = 0x80047457\n\tTIOCSDTR                       = 0x20007479\n\tTIOCSETA                       = 0x802c7414\n\tTIOCSETAF                      = 0x802c7416\n\tTIOCSETAW                      = 0x802c7415\n\tTIOCSETD                       = 0x8004741b\n\tTIOCSIG                        = 0x2004745f\n\tTIOCSPGRP                      = 0x80047476\n\tTIOCSTART                      = 0x2000746e\n\tTIOCSTAT                       = 0x20007465\n\tTIOCSTI                        = 0x80017472\n\tTIOCSTOP                       = 0x2000746f\n\tTIOCSWINSZ                     = 0x80087467\n\tTIOCTIMESTAMP                  = 0x40087459\n\tTIOCUCNTL                      = 0x80047466\n\tTOSTOP                         = 0x400000\n\tUTIME_NOW                      = -0x1\n\tUTIME_OMIT                     = -0x2\n\tVDISCARD                       = 0xf\n\tVDSUSP                         = 0xb\n\tVEOF                           = 0x0\n\tVEOL                           = 0x1\n\tVEOL2                          = 0x2\n\tVERASE                         = 0x3\n\tVERASE2                        = 0x7\n\tVINTR                          = 0x8\n\tVKILL                          = 0x5\n\tVLNEXT                         = 0xe\n\tVMIN                           = 0x10\n\tVM_BCACHE_SIZE_MAX             = 0x70e0000\n\tVM_SWZONE_SIZE_MAX             = 0x2280000\n\tVQUIT                          = 0x9\n\tVREPRINT                       = 0x6\n\tVSTART                         = 0xc\n\tVSTATUS                        = 0x12\n\tVSTOP                          = 0xd\n\tVSUSP                          = 0xa\n\tVTIME                          = 0x11\n\tVWERASE                        = 0x4\n\tWCONTINUED                     = 0x4\n\tWCOREFLAG                      = 0x80\n\tWEXITED                        = 0x10\n\tWLINUXCLONE                    = 0x80000000\n\tWNOHANG                        = 0x1\n\tWNOWAIT                        = 0x8\n\tWSTOPPED                       = 0x2\n\tWTRAPPED                       = 0x20\n\tWUNTRACED                      = 0x2\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x59)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x55)\n\tECAPMODE        = syscall.Errno(0x5e)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDOOFUS         = syscall.Errno(0x58)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x52)\n\tEILSEQ          = syscall.Errno(0x56)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTEGRITY      = syscall.Errno(0x61)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x61)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5a)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x57)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x5b)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x53)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCAPABLE     = syscall.Errno(0x5d)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x5f)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x2d)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEOWNERDEAD      = syscall.Errno(0x60)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5c)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGLIBRT  = syscall.Signal(0x21)\n\tSIGLWP    = syscall.Signal(0x20)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EWOULDBLOCK\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIDRM\", \"identifier removed\"},\n\t{83, \"ENOMSG\", \"no message of desired type\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"ECANCELED\", \"operation canceled\"},\n\t{86, \"EILSEQ\", \"illegal byte sequence\"},\n\t{87, \"ENOATTR\", \"attribute not found\"},\n\t{88, \"EDOOFUS\", \"programming error\"},\n\t{89, \"EBADMSG\", \"bad message\"},\n\t{90, \"EMULTIHOP\", \"multihop attempted\"},\n\t{91, \"ENOLINK\", \"link has been severed\"},\n\t{92, \"EPROTO\", \"protocol error\"},\n\t{93, \"ENOTCAPABLE\", \"capabilities insufficient\"},\n\t{94, \"ECAPMODE\", \"not permitted in capability mode\"},\n\t{95, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{96, \"EOWNERDEAD\", \"previous owner died\"},\n\t{97, \"EINTEGRITY\", \"integrity check failed\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"unknown signal\"},\n\t{33, \"SIGLIBRT\", \"unknown signal\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && freebsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                   = 0x10\n\tAF_ARP                         = 0x23\n\tAF_ATM                         = 0x1e\n\tAF_BLUETOOTH                   = 0x24\n\tAF_CCITT                       = 0xa\n\tAF_CHAOS                       = 0x5\n\tAF_CNT                         = 0x15\n\tAF_COIP                        = 0x14\n\tAF_DATAKIT                     = 0x9\n\tAF_DECnet                      = 0xc\n\tAF_DLI                         = 0xd\n\tAF_E164                        = 0x1a\n\tAF_ECMA                        = 0x8\n\tAF_HYLINK                      = 0xf\n\tAF_IEEE80211                   = 0x25\n\tAF_IMPLINK                     = 0x3\n\tAF_INET                        = 0x2\n\tAF_INET6                       = 0x1c\n\tAF_INET6_SDP                   = 0x2a\n\tAF_INET_SDP                    = 0x28\n\tAF_IPX                         = 0x17\n\tAF_ISDN                        = 0x1a\n\tAF_ISO                         = 0x7\n\tAF_LAT                         = 0xe\n\tAF_LINK                        = 0x12\n\tAF_LOCAL                       = 0x1\n\tAF_MAX                         = 0x2a\n\tAF_NATM                        = 0x1d\n\tAF_NETBIOS                     = 0x6\n\tAF_NETGRAPH                    = 0x20\n\tAF_OSI                         = 0x7\n\tAF_PUP                         = 0x4\n\tAF_ROUTE                       = 0x11\n\tAF_SCLUSTER                    = 0x22\n\tAF_SIP                         = 0x18\n\tAF_SLOW                        = 0x21\n\tAF_SNA                         = 0xb\n\tAF_UNIX                        = 0x1\n\tAF_UNSPEC                      = 0x0\n\tAF_VENDOR00                    = 0x27\n\tAF_VENDOR01                    = 0x29\n\tAF_VENDOR02                    = 0x2b\n\tAF_VENDOR03                    = 0x2d\n\tAF_VENDOR04                    = 0x2f\n\tAF_VENDOR05                    = 0x31\n\tAF_VENDOR06                    = 0x33\n\tAF_VENDOR07                    = 0x35\n\tAF_VENDOR08                    = 0x37\n\tAF_VENDOR09                    = 0x39\n\tAF_VENDOR10                    = 0x3b\n\tAF_VENDOR11                    = 0x3d\n\tAF_VENDOR12                    = 0x3f\n\tAF_VENDOR13                    = 0x41\n\tAF_VENDOR14                    = 0x43\n\tAF_VENDOR15                    = 0x45\n\tAF_VENDOR16                    = 0x47\n\tAF_VENDOR17                    = 0x49\n\tAF_VENDOR18                    = 0x4b\n\tAF_VENDOR19                    = 0x4d\n\tAF_VENDOR20                    = 0x4f\n\tAF_VENDOR21                    = 0x51\n\tAF_VENDOR22                    = 0x53\n\tAF_VENDOR23                    = 0x55\n\tAF_VENDOR24                    = 0x57\n\tAF_VENDOR25                    = 0x59\n\tAF_VENDOR26                    = 0x5b\n\tAF_VENDOR27                    = 0x5d\n\tAF_VENDOR28                    = 0x5f\n\tAF_VENDOR29                    = 0x61\n\tAF_VENDOR30                    = 0x63\n\tAF_VENDOR31                    = 0x65\n\tAF_VENDOR32                    = 0x67\n\tAF_VENDOR33                    = 0x69\n\tAF_VENDOR34                    = 0x6b\n\tAF_VENDOR35                    = 0x6d\n\tAF_VENDOR36                    = 0x6f\n\tAF_VENDOR37                    = 0x71\n\tAF_VENDOR38                    = 0x73\n\tAF_VENDOR39                    = 0x75\n\tAF_VENDOR40                    = 0x77\n\tAF_VENDOR41                    = 0x79\n\tAF_VENDOR42                    = 0x7b\n\tAF_VENDOR43                    = 0x7d\n\tAF_VENDOR44                    = 0x7f\n\tAF_VENDOR45                    = 0x81\n\tAF_VENDOR46                    = 0x83\n\tAF_VENDOR47                    = 0x85\n\tALTWERASE                      = 0x200\n\tB0                             = 0x0\n\tB110                           = 0x6e\n\tB115200                        = 0x1c200\n\tB1200                          = 0x4b0\n\tB134                           = 0x86\n\tB14400                         = 0x3840\n\tB150                           = 0x96\n\tB1800                          = 0x708\n\tB19200                         = 0x4b00\n\tB200                           = 0xc8\n\tB230400                        = 0x38400\n\tB2400                          = 0x960\n\tB28800                         = 0x7080\n\tB300                           = 0x12c\n\tB38400                         = 0x9600\n\tB460800                        = 0x70800\n\tB4800                          = 0x12c0\n\tB50                            = 0x32\n\tB57600                         = 0xe100\n\tB600                           = 0x258\n\tB7200                          = 0x1c20\n\tB75                            = 0x4b\n\tB76800                         = 0x12c00\n\tB921600                        = 0xe1000\n\tB9600                          = 0x2580\n\tBIOCFEEDBACK                   = 0x8004427c\n\tBIOCFLUSH                      = 0x20004268\n\tBIOCGBLEN                      = 0x40044266\n\tBIOCGDIRECTION                 = 0x40044276\n\tBIOCGDLT                       = 0x4004426a\n\tBIOCGDLTLIST                   = 0xc0104279\n\tBIOCGETBUFMODE                 = 0x4004427d\n\tBIOCGETIF                      = 0x4020426b\n\tBIOCGETZMAX                    = 0x4008427f\n\tBIOCGHDRCMPLT                  = 0x40044274\n\tBIOCGRSIG                      = 0x40044272\n\tBIOCGRTIMEOUT                  = 0x4010426e\n\tBIOCGSEESENT                   = 0x40044276\n\tBIOCGSTATS                     = 0x4008426f\n\tBIOCGTSTAMP                    = 0x40044283\n\tBIOCIMMEDIATE                  = 0x80044270\n\tBIOCLOCK                       = 0x2000427a\n\tBIOCPROMISC                    = 0x20004269\n\tBIOCROTZBUF                    = 0x40184280\n\tBIOCSBLEN                      = 0xc0044266\n\tBIOCSDIRECTION                 = 0x80044277\n\tBIOCSDLT                       = 0x80044278\n\tBIOCSETBUFMODE                 = 0x8004427e\n\tBIOCSETF                       = 0x80104267\n\tBIOCSETFNR                     = 0x80104282\n\tBIOCSETIF                      = 0x8020426c\n\tBIOCSETVLANPCP                 = 0x80044285\n\tBIOCSETWF                      = 0x8010427b\n\tBIOCSETZBUF                    = 0x80184281\n\tBIOCSHDRCMPLT                  = 0x80044275\n\tBIOCSRSIG                      = 0x80044273\n\tBIOCSRTIMEOUT                  = 0x8010426d\n\tBIOCSSEESENT                   = 0x80044277\n\tBIOCSTSTAMP                    = 0x80044284\n\tBIOCVERSION                    = 0x40044271\n\tBPF_A                          = 0x10\n\tBPF_ABS                        = 0x20\n\tBPF_ADD                        = 0x0\n\tBPF_ALIGNMENT                  = 0x8\n\tBPF_ALU                        = 0x4\n\tBPF_AND                        = 0x50\n\tBPF_B                          = 0x10\n\tBPF_BUFMODE_BUFFER             = 0x1\n\tBPF_BUFMODE_ZBUF               = 0x2\n\tBPF_DIV                        = 0x30\n\tBPF_H                          = 0x8\n\tBPF_IMM                        = 0x0\n\tBPF_IND                        = 0x40\n\tBPF_JA                         = 0x0\n\tBPF_JEQ                        = 0x10\n\tBPF_JGE                        = 0x30\n\tBPF_JGT                        = 0x20\n\tBPF_JMP                        = 0x5\n\tBPF_JSET                       = 0x40\n\tBPF_K                          = 0x0\n\tBPF_LD                         = 0x0\n\tBPF_LDX                        = 0x1\n\tBPF_LEN                        = 0x80\n\tBPF_LSH                        = 0x60\n\tBPF_MAJOR_VERSION              = 0x1\n\tBPF_MAXBUFSIZE                 = 0x80000\n\tBPF_MAXINSNS                   = 0x200\n\tBPF_MEM                        = 0x60\n\tBPF_MEMWORDS                   = 0x10\n\tBPF_MINBUFSIZE                 = 0x20\n\tBPF_MINOR_VERSION              = 0x1\n\tBPF_MISC                       = 0x7\n\tBPF_MOD                        = 0x90\n\tBPF_MSH                        = 0xa0\n\tBPF_MUL                        = 0x20\n\tBPF_NEG                        = 0x80\n\tBPF_OR                         = 0x40\n\tBPF_RELEASE                    = 0x30bb6\n\tBPF_RET                        = 0x6\n\tBPF_RSH                        = 0x70\n\tBPF_ST                         = 0x2\n\tBPF_STX                        = 0x3\n\tBPF_SUB                        = 0x10\n\tBPF_TAX                        = 0x0\n\tBPF_TXA                        = 0x80\n\tBPF_T_BINTIME                  = 0x2\n\tBPF_T_BINTIME_FAST             = 0x102\n\tBPF_T_BINTIME_MONOTONIC        = 0x202\n\tBPF_T_BINTIME_MONOTONIC_FAST   = 0x302\n\tBPF_T_FAST                     = 0x100\n\tBPF_T_FLAG_MASK                = 0x300\n\tBPF_T_FORMAT_MASK              = 0x3\n\tBPF_T_MICROTIME                = 0x0\n\tBPF_T_MICROTIME_FAST           = 0x100\n\tBPF_T_MICROTIME_MONOTONIC      = 0x200\n\tBPF_T_MICROTIME_MONOTONIC_FAST = 0x300\n\tBPF_T_MONOTONIC                = 0x200\n\tBPF_T_MONOTONIC_FAST           = 0x300\n\tBPF_T_NANOTIME                 = 0x1\n\tBPF_T_NANOTIME_FAST            = 0x101\n\tBPF_T_NANOTIME_MONOTONIC       = 0x201\n\tBPF_T_NANOTIME_MONOTONIC_FAST  = 0x301\n\tBPF_T_NONE                     = 0x3\n\tBPF_T_NORMAL                   = 0x0\n\tBPF_W                          = 0x0\n\tBPF_X                          = 0x8\n\tBPF_XOR                        = 0xa0\n\tBRKINT                         = 0x2\n\tCAP_ACCEPT                     = 0x200000020000000\n\tCAP_ACL_CHECK                  = 0x400000000010000\n\tCAP_ACL_DELETE                 = 0x400000000020000\n\tCAP_ACL_GET                    = 0x400000000040000\n\tCAP_ACL_SET                    = 0x400000000080000\n\tCAP_ALL0                       = 0x20007ffffffffff\n\tCAP_ALL1                       = 0x4000000001fffff\n\tCAP_BIND                       = 0x200000040000000\n\tCAP_BINDAT                     = 0x200008000000400\n\tCAP_CHFLAGSAT                  = 0x200000000001400\n\tCAP_CONNECT                    = 0x200000080000000\n\tCAP_CONNECTAT                  = 0x200010000000400\n\tCAP_CREATE                     = 0x200000000000040\n\tCAP_EVENT                      = 0x400000000000020\n\tCAP_EXTATTR_DELETE             = 0x400000000001000\n\tCAP_EXTATTR_GET                = 0x400000000002000\n\tCAP_EXTATTR_LIST               = 0x400000000004000\n\tCAP_EXTATTR_SET                = 0x400000000008000\n\tCAP_FCHDIR                     = 0x200000000000800\n\tCAP_FCHFLAGS                   = 0x200000000001000\n\tCAP_FCHMOD                     = 0x200000000002000\n\tCAP_FCHMODAT                   = 0x200000000002400\n\tCAP_FCHOWN                     = 0x200000000004000\n\tCAP_FCHOWNAT                   = 0x200000000004400\n\tCAP_FCNTL                      = 0x200000000008000\n\tCAP_FCNTL_ALL                  = 0x78\n\tCAP_FCNTL_GETFL                = 0x8\n\tCAP_FCNTL_GETOWN               = 0x20\n\tCAP_FCNTL_SETFL                = 0x10\n\tCAP_FCNTL_SETOWN               = 0x40\n\tCAP_FEXECVE                    = 0x200000000000080\n\tCAP_FLOCK                      = 0x200000000010000\n\tCAP_FPATHCONF                  = 0x200000000020000\n\tCAP_FSCK                       = 0x200000000040000\n\tCAP_FSTAT                      = 0x200000000080000\n\tCAP_FSTATAT                    = 0x200000000080400\n\tCAP_FSTATFS                    = 0x200000000100000\n\tCAP_FSYNC                      = 0x200000000000100\n\tCAP_FTRUNCATE                  = 0x200000000000200\n\tCAP_FUTIMES                    = 0x200000000200000\n\tCAP_FUTIMESAT                  = 0x200000000200400\n\tCAP_GETPEERNAME                = 0x200000100000000\n\tCAP_GETSOCKNAME                = 0x200000200000000\n\tCAP_GETSOCKOPT                 = 0x200000400000000\n\tCAP_IOCTL                      = 0x400000000000080\n\tCAP_IOCTLS_ALL                 = 0x7fffffffffffffff\n\tCAP_KQUEUE                     = 0x400000000100040\n\tCAP_KQUEUE_CHANGE              = 0x400000000100000\n\tCAP_KQUEUE_EVENT               = 0x400000000000040\n\tCAP_LINKAT_SOURCE              = 0x200020000000400\n\tCAP_LINKAT_TARGET              = 0x200000000400400\n\tCAP_LISTEN                     = 0x200000800000000\n\tCAP_LOOKUP                     = 0x200000000000400\n\tCAP_MAC_GET                    = 0x400000000000001\n\tCAP_MAC_SET                    = 0x400000000000002\n\tCAP_MKDIRAT                    = 0x200000000800400\n\tCAP_MKFIFOAT                   = 0x200000001000400\n\tCAP_MKNODAT                    = 0x200000002000400\n\tCAP_MMAP                       = 0x200000000000010\n\tCAP_MMAP_R                     = 0x20000000000001d\n\tCAP_MMAP_RW                    = 0x20000000000001f\n\tCAP_MMAP_RWX                   = 0x20000000000003f\n\tCAP_MMAP_RX                    = 0x20000000000003d\n\tCAP_MMAP_W                     = 0x20000000000001e\n\tCAP_MMAP_WX                    = 0x20000000000003e\n\tCAP_MMAP_X                     = 0x20000000000003c\n\tCAP_PDGETPID                   = 0x400000000000200\n\tCAP_PDKILL                     = 0x400000000000800\n\tCAP_PDWAIT                     = 0x400000000000400\n\tCAP_PEELOFF                    = 0x200001000000000\n\tCAP_POLL_EVENT                 = 0x400000000000020\n\tCAP_PREAD                      = 0x20000000000000d\n\tCAP_PWRITE                     = 0x20000000000000e\n\tCAP_READ                       = 0x200000000000001\n\tCAP_RECV                       = 0x200000000000001\n\tCAP_RENAMEAT_SOURCE            = 0x200000004000400\n\tCAP_RENAMEAT_TARGET            = 0x200040000000400\n\tCAP_RIGHTS_VERSION             = 0x0\n\tCAP_RIGHTS_VERSION_00          = 0x0\n\tCAP_SEEK                       = 0x20000000000000c\n\tCAP_SEEK_TELL                  = 0x200000000000004\n\tCAP_SEM_GETVALUE               = 0x400000000000004\n\tCAP_SEM_POST                   = 0x400000000000008\n\tCAP_SEM_WAIT                   = 0x400000000000010\n\tCAP_SEND                       = 0x200000000000002\n\tCAP_SETSOCKOPT                 = 0x200002000000000\n\tCAP_SHUTDOWN                   = 0x200004000000000\n\tCAP_SOCK_CLIENT                = 0x200007780000003\n\tCAP_SOCK_SERVER                = 0x200007f60000003\n\tCAP_SYMLINKAT                  = 0x200000008000400\n\tCAP_TTYHOOK                    = 0x400000000000100\n\tCAP_UNLINKAT                   = 0x200000010000400\n\tCAP_UNUSED0_44                 = 0x200080000000000\n\tCAP_UNUSED0_57                 = 0x300000000000000\n\tCAP_UNUSED1_22                 = 0x400000000200000\n\tCAP_UNUSED1_57                 = 0x500000000000000\n\tCAP_WRITE                      = 0x200000000000002\n\tCFLUSH                         = 0xf\n\tCLOCAL                         = 0x8000\n\tCLOCK_MONOTONIC                = 0x4\n\tCLOCK_MONOTONIC_FAST           = 0xc\n\tCLOCK_MONOTONIC_PRECISE        = 0xb\n\tCLOCK_PROCESS_CPUTIME_ID       = 0xf\n\tCLOCK_PROF                     = 0x2\n\tCLOCK_REALTIME                 = 0x0\n\tCLOCK_REALTIME_FAST            = 0xa\n\tCLOCK_REALTIME_PRECISE         = 0x9\n\tCLOCK_SECOND                   = 0xd\n\tCLOCK_THREAD_CPUTIME_ID        = 0xe\n\tCLOCK_UPTIME                   = 0x5\n\tCLOCK_UPTIME_FAST              = 0x8\n\tCLOCK_UPTIME_PRECISE           = 0x7\n\tCLOCK_VIRTUAL                  = 0x1\n\tCPUSTATES                      = 0x5\n\tCP_IDLE                        = 0x4\n\tCP_INTR                        = 0x3\n\tCP_NICE                        = 0x1\n\tCP_SYS                         = 0x2\n\tCP_USER                        = 0x0\n\tCREAD                          = 0x800\n\tCRTSCTS                        = 0x30000\n\tCS5                            = 0x0\n\tCS6                            = 0x100\n\tCS7                            = 0x200\n\tCS8                            = 0x300\n\tCSIZE                          = 0x300\n\tCSTART                         = 0x11\n\tCSTATUS                        = 0x14\n\tCSTOP                          = 0x13\n\tCSTOPB                         = 0x400\n\tCSUSP                          = 0x1a\n\tCTL_HW                         = 0x6\n\tCTL_KERN                       = 0x1\n\tCTL_MAXNAME                    = 0x18\n\tCTL_NET                        = 0x4\n\tDIOCGATTR                      = 0xc148648e\n\tDIOCGDELETE                    = 0x80106488\n\tDIOCGFLUSH                     = 0x20006487\n\tDIOCGFRONTSTUFF                = 0x40086486\n\tDIOCGFWHEADS                   = 0x40046483\n\tDIOCGFWSECTORS                 = 0x40046482\n\tDIOCGIDENT                     = 0x41006489\n\tDIOCGMEDIASIZE                 = 0x40086481\n\tDIOCGPHYSPATH                  = 0x4400648d\n\tDIOCGPROVIDERNAME              = 0x4400648a\n\tDIOCGSECTORSIZE                = 0x40046480\n\tDIOCGSTRIPEOFFSET              = 0x4008648c\n\tDIOCGSTRIPESIZE                = 0x4008648b\n\tDIOCSKERNELDUMP                = 0x80506490\n\tDIOCSKERNELDUMP_FREEBSD11      = 0x80046485\n\tDIOCZONECMD                    = 0xc080648f\n\tDLT_A429                       = 0xb8\n\tDLT_A653_ICM                   = 0xb9\n\tDLT_AIRONET_HEADER             = 0x78\n\tDLT_AOS                        = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394     = 0x8a\n\tDLT_ARCNET                     = 0x7\n\tDLT_ARCNET_LINUX               = 0x81\n\tDLT_ATM_CLIP                   = 0x13\n\tDLT_ATM_RFC1483                = 0xb\n\tDLT_AURORA                     = 0x7e\n\tDLT_AX25                       = 0x3\n\tDLT_AX25_KISS                  = 0xca\n\tDLT_BACNET_MS_TP               = 0xa5\n\tDLT_BLUETOOTH_BREDR_BB         = 0xff\n\tDLT_BLUETOOTH_HCI_H4           = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9\n\tDLT_BLUETOOTH_LE_LL            = 0xfb\n\tDLT_BLUETOOTH_LE_LL_WITH_PHDR  = 0x100\n\tDLT_BLUETOOTH_LINUX_MONITOR    = 0xfe\n\tDLT_CAN20B                     = 0xbe\n\tDLT_CAN_SOCKETCAN              = 0xe3\n\tDLT_CHAOS                      = 0x5\n\tDLT_CHDLC                      = 0x68\n\tDLT_CISCO_IOS                  = 0x76\n\tDLT_CLASS_NETBSD_RAWAF         = 0x2240000\n\tDLT_C_HDLC                     = 0x68\n\tDLT_C_HDLC_WITH_DIR            = 0xcd\n\tDLT_DBUS                       = 0xe7\n\tDLT_DECT                       = 0xdd\n\tDLT_DISPLAYPORT_AUX            = 0x113\n\tDLT_DOCSIS                     = 0x8f\n\tDLT_DOCSIS31_XRA31             = 0x111\n\tDLT_DVB_CI                     = 0xeb\n\tDLT_ECONET                     = 0x73\n\tDLT_EN10MB                     = 0x1\n\tDLT_EN3MB                      = 0x2\n\tDLT_ENC                        = 0x6d\n\tDLT_EPON                       = 0x103\n\tDLT_ERF                        = 0xc5\n\tDLT_ERF_ETH                    = 0xaf\n\tDLT_ERF_POS                    = 0xb0\n\tDLT_ETHERNET_MPACKET           = 0x112\n\tDLT_FC_2                       = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS     = 0xe1\n\tDLT_FDDI                       = 0xa\n\tDLT_FLEXRAY                    = 0xd2\n\tDLT_FRELAY                     = 0x6b\n\tDLT_FRELAY_WITH_DIR            = 0xce\n\tDLT_GCOM_SERIAL                = 0xad\n\tDLT_GCOM_T1E1                  = 0xac\n\tDLT_GPF_F                      = 0xab\n\tDLT_GPF_T                      = 0xaa\n\tDLT_GPRS_LLC                   = 0xa9\n\tDLT_GSMTAP_ABIS                = 0xda\n\tDLT_GSMTAP_UM                  = 0xd9\n\tDLT_IBM_SN                     = 0x92\n\tDLT_IBM_SP                     = 0x91\n\tDLT_IEEE802                    = 0x6\n\tDLT_IEEE802_11                 = 0x69\n\tDLT_IEEE802_11_RADIO           = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS       = 0xa3\n\tDLT_IEEE802_15_4               = 0xc3\n\tDLT_IEEE802_15_4_LINUX         = 0xbf\n\tDLT_IEEE802_15_4_NOFCS         = 0xe6\n\tDLT_IEEE802_15_4_NONASK_PHY    = 0xd7\n\tDLT_IEEE802_16_MAC_CPS         = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO   = 0xc1\n\tDLT_INFINIBAND                 = 0xf7\n\tDLT_IPFILTER                   = 0x74\n\tDLT_IPMB_KONTRON               = 0xc7\n\tDLT_IPMB_LINUX                 = 0xd1\n\tDLT_IPMI_HPM_2                 = 0x104\n\tDLT_IPNET                      = 0xe2\n\tDLT_IPOIB                      = 0xf2\n\tDLT_IPV4                       = 0xe4\n\tDLT_IPV6                       = 0xe5\n\tDLT_IP_OVER_FC                 = 0x7a\n\tDLT_ISO_14443                  = 0x108\n\tDLT_JUNIPER_ATM1               = 0x89\n\tDLT_JUNIPER_ATM2               = 0x87\n\tDLT_JUNIPER_ATM_CEMIC          = 0xee\n\tDLT_JUNIPER_CHDLC              = 0xb5\n\tDLT_JUNIPER_ES                 = 0x84\n\tDLT_JUNIPER_ETHER              = 0xb2\n\tDLT_JUNIPER_FIBRECHANNEL       = 0xea\n\tDLT_JUNIPER_FRELAY             = 0xb4\n\tDLT_JUNIPER_GGSN               = 0x85\n\tDLT_JUNIPER_ISM                = 0xc2\n\tDLT_JUNIPER_MFR                = 0x86\n\tDLT_JUNIPER_MLFR               = 0x83\n\tDLT_JUNIPER_MLPPP              = 0x82\n\tDLT_JUNIPER_MONITOR            = 0xa4\n\tDLT_JUNIPER_PIC_PEER           = 0xae\n\tDLT_JUNIPER_PPP                = 0xb3\n\tDLT_JUNIPER_PPPOE              = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM          = 0xa8\n\tDLT_JUNIPER_SERVICES           = 0x88\n\tDLT_JUNIPER_SRX_E2E            = 0xe9\n\tDLT_JUNIPER_ST                 = 0xc8\n\tDLT_JUNIPER_VP                 = 0xb7\n\tDLT_JUNIPER_VS                 = 0xe8\n\tDLT_LAPB_WITH_DIR              = 0xcf\n\tDLT_LAPD                       = 0xcb\n\tDLT_LIN                        = 0xd4\n\tDLT_LINUX_EVDEV                = 0xd8\n\tDLT_LINUX_IRDA                 = 0x90\n\tDLT_LINUX_LAPD                 = 0xb1\n\tDLT_LINUX_PPP_WITHDIRECTION    = 0xa6\n\tDLT_LINUX_SLL                  = 0x71\n\tDLT_LINUX_SLL2                 = 0x114\n\tDLT_LOOP                       = 0x6c\n\tDLT_LORATAP                    = 0x10e\n\tDLT_LTALK                      = 0x72\n\tDLT_MATCHING_MAX               = 0x114\n\tDLT_MATCHING_MIN               = 0x68\n\tDLT_MFR                        = 0xb6\n\tDLT_MOST                       = 0xd3\n\tDLT_MPEG_2_TS                  = 0xf3\n\tDLT_MPLS                       = 0xdb\n\tDLT_MTP2                       = 0x8c\n\tDLT_MTP2_WITH_PHDR             = 0x8b\n\tDLT_MTP3                       = 0x8d\n\tDLT_MUX27010                   = 0xec\n\tDLT_NETANALYZER                = 0xf0\n\tDLT_NETANALYZER_TRANSPARENT    = 0xf1\n\tDLT_NETLINK                    = 0xfd\n\tDLT_NFC_LLCP                   = 0xf5\n\tDLT_NFLOG                      = 0xef\n\tDLT_NG40                       = 0xf4\n\tDLT_NORDIC_BLE                 = 0x110\n\tDLT_NULL                       = 0x0\n\tDLT_OPENFLOW                   = 0x10b\n\tDLT_PCI_EXP                    = 0x7d\n\tDLT_PFLOG                      = 0x75\n\tDLT_PFSYNC                     = 0x79\n\tDLT_PKTAP                      = 0x102\n\tDLT_PPI                        = 0xc0\n\tDLT_PPP                        = 0x9\n\tDLT_PPP_BSDOS                  = 0xe\n\tDLT_PPP_ETHER                  = 0x33\n\tDLT_PPP_PPPD                   = 0xa6\n\tDLT_PPP_SERIAL                 = 0x32\n\tDLT_PPP_WITH_DIR               = 0xcc\n\tDLT_PPP_WITH_DIRECTION         = 0xa6\n\tDLT_PRISM_HEADER               = 0x77\n\tDLT_PROFIBUS_DL                = 0x101\n\tDLT_PRONET                     = 0x4\n\tDLT_RAIF1                      = 0xc6\n\tDLT_RAW                        = 0xc\n\tDLT_RDS                        = 0x109\n\tDLT_REDBACK_SMARTEDGE          = 0x20\n\tDLT_RIO                        = 0x7c\n\tDLT_RTAC_SERIAL                = 0xfa\n\tDLT_SCCP                       = 0x8e\n\tDLT_SCTP                       = 0xf8\n\tDLT_SDLC                       = 0x10c\n\tDLT_SITA                       = 0xc4\n\tDLT_SLIP                       = 0x8\n\tDLT_SLIP_BSDOS                 = 0xd\n\tDLT_STANAG_5066_D_PDU          = 0xed\n\tDLT_SUNATM                     = 0x7b\n\tDLT_SYMANTEC_FIREWALL          = 0x63\n\tDLT_TI_LLN_SNIFFER             = 0x10d\n\tDLT_TZSP                       = 0x80\n\tDLT_USB                        = 0xba\n\tDLT_USBPCAP                    = 0xf9\n\tDLT_USB_DARWIN                 = 0x10a\n\tDLT_USB_FREEBSD                = 0xba\n\tDLT_USB_LINUX                  = 0xbd\n\tDLT_USB_LINUX_MMAPPED          = 0xdc\n\tDLT_USER0                      = 0x93\n\tDLT_USER1                      = 0x94\n\tDLT_USER10                     = 0x9d\n\tDLT_USER11                     = 0x9e\n\tDLT_USER12                     = 0x9f\n\tDLT_USER13                     = 0xa0\n\tDLT_USER14                     = 0xa1\n\tDLT_USER15                     = 0xa2\n\tDLT_USER2                      = 0x95\n\tDLT_USER3                      = 0x96\n\tDLT_USER4                      = 0x97\n\tDLT_USER5                      = 0x98\n\tDLT_USER6                      = 0x99\n\tDLT_USER7                      = 0x9a\n\tDLT_USER8                      = 0x9b\n\tDLT_USER9                      = 0x9c\n\tDLT_VSOCK                      = 0x10f\n\tDLT_WATTSTOPPER_DLM            = 0x107\n\tDLT_WIHART                     = 0xdf\n\tDLT_WIRESHARK_UPPER_PDU        = 0xfc\n\tDLT_X2E_SERIAL                 = 0xd5\n\tDLT_X2E_XORAYA                 = 0xd6\n\tDLT_ZWAVE_R1_R2                = 0x105\n\tDLT_ZWAVE_R3                   = 0x106\n\tDT_BLK                         = 0x6\n\tDT_CHR                         = 0x2\n\tDT_DIR                         = 0x4\n\tDT_FIFO                        = 0x1\n\tDT_LNK                         = 0xa\n\tDT_REG                         = 0x8\n\tDT_SOCK                        = 0xc\n\tDT_UNKNOWN                     = 0x0\n\tDT_WHT                         = 0xe\n\tECHO                           = 0x8\n\tECHOCTL                        = 0x40\n\tECHOE                          = 0x2\n\tECHOK                          = 0x4\n\tECHOKE                         = 0x1\n\tECHONL                         = 0x10\n\tECHOPRT                        = 0x20\n\tEVFILT_AIO                     = -0x3\n\tEVFILT_EMPTY                   = -0xd\n\tEVFILT_FS                      = -0x9\n\tEVFILT_LIO                     = -0xa\n\tEVFILT_PROC                    = -0x5\n\tEVFILT_PROCDESC                = -0x8\n\tEVFILT_READ                    = -0x1\n\tEVFILT_SENDFILE                = -0xc\n\tEVFILT_SIGNAL                  = -0x6\n\tEVFILT_SYSCOUNT                = 0xd\n\tEVFILT_TIMER                   = -0x7\n\tEVFILT_USER                    = -0xb\n\tEVFILT_VNODE                   = -0x4\n\tEVFILT_WRITE                   = -0x2\n\tEVNAMEMAP_NAME_SIZE            = 0x40\n\tEV_ADD                         = 0x1\n\tEV_CLEAR                       = 0x20\n\tEV_DELETE                      = 0x2\n\tEV_DISABLE                     = 0x8\n\tEV_DISPATCH                    = 0x80\n\tEV_DROP                        = 0x1000\n\tEV_ENABLE                      = 0x4\n\tEV_EOF                         = 0x8000\n\tEV_ERROR                       = 0x4000\n\tEV_FLAG1                       = 0x2000\n\tEV_FLAG2                       = 0x4000\n\tEV_FORCEONESHOT                = 0x100\n\tEV_ONESHOT                     = 0x10\n\tEV_RECEIPT                     = 0x40\n\tEV_SYSFLAGS                    = 0xf000\n\tEXTA                           = 0x4b00\n\tEXTATTR_MAXNAMELEN             = 0xff\n\tEXTATTR_NAMESPACE_EMPTY        = 0x0\n\tEXTATTR_NAMESPACE_SYSTEM       = 0x2\n\tEXTATTR_NAMESPACE_USER         = 0x1\n\tEXTB                           = 0x9600\n\tEXTPROC                        = 0x800\n\tFD_CLOEXEC                     = 0x1\n\tFD_SETSIZE                     = 0x400\n\tFLUSHO                         = 0x800000\n\tF_CANCEL                       = 0x5\n\tF_DUP2FD                       = 0xa\n\tF_DUP2FD_CLOEXEC               = 0x12\n\tF_DUPFD                        = 0x0\n\tF_DUPFD_CLOEXEC                = 0x11\n\tF_GETFD                        = 0x1\n\tF_GETFL                        = 0x3\n\tF_GETLK                        = 0xb\n\tF_GETOWN                       = 0x5\n\tF_OGETLK                       = 0x7\n\tF_OK                           = 0x0\n\tF_OSETLK                       = 0x8\n\tF_OSETLKW                      = 0x9\n\tF_RDAHEAD                      = 0x10\n\tF_RDLCK                        = 0x1\n\tF_READAHEAD                    = 0xf\n\tF_SETFD                        = 0x2\n\tF_SETFL                        = 0x4\n\tF_SETLK                        = 0xc\n\tF_SETLKW                       = 0xd\n\tF_SETLK_REMOTE                 = 0xe\n\tF_SETOWN                       = 0x6\n\tF_UNLCK                        = 0x2\n\tF_UNLCKSYS                     = 0x4\n\tF_WRLCK                        = 0x3\n\tHUPCL                          = 0x4000\n\tHW_MACHINE                     = 0x1\n\tICANON                         = 0x100\n\tICMP6_FILTER                   = 0x12\n\tICRNL                          = 0x100\n\tIEXTEN                         = 0x400\n\tIFAN_ARRIVAL                   = 0x0\n\tIFAN_DEPARTURE                 = 0x1\n\tIFCAP_WOL_MAGIC                = 0x2000\n\tIFF_ALLMULTI                   = 0x200\n\tIFF_ALTPHYS                    = 0x4000\n\tIFF_BROADCAST                  = 0x2\n\tIFF_CANTCHANGE                 = 0x218f52\n\tIFF_CANTCONFIG                 = 0x10000\n\tIFF_DEBUG                      = 0x4\n\tIFF_DRV_OACTIVE                = 0x400\n\tIFF_DRV_RUNNING                = 0x40\n\tIFF_DYING                      = 0x200000\n\tIFF_LINK0                      = 0x1000\n\tIFF_LINK1                      = 0x2000\n\tIFF_LINK2                      = 0x4000\n\tIFF_LOOPBACK                   = 0x8\n\tIFF_MONITOR                    = 0x40000\n\tIFF_MULTICAST                  = 0x8000\n\tIFF_NOARP                      = 0x80\n\tIFF_NOGROUP                    = 0x800000\n\tIFF_OACTIVE                    = 0x400\n\tIFF_POINTOPOINT                = 0x10\n\tIFF_PPROMISC                   = 0x20000\n\tIFF_PROMISC                    = 0x100\n\tIFF_RENAMING                   = 0x400000\n\tIFF_RUNNING                    = 0x40\n\tIFF_SIMPLEX                    = 0x800\n\tIFF_STATICARP                  = 0x80000\n\tIFF_UP                         = 0x1\n\tIFNAMSIZ                       = 0x10\n\tIFT_BRIDGE                     = 0xd1\n\tIFT_CARP                       = 0xf8\n\tIFT_IEEE1394                   = 0x90\n\tIFT_INFINIBAND                 = 0xc7\n\tIFT_L2VLAN                     = 0x87\n\tIFT_L3IPVLAN                   = 0x88\n\tIFT_PPP                        = 0x17\n\tIFT_PROPVIRTUAL                = 0x35\n\tIGNBRK                         = 0x1\n\tIGNCR                          = 0x80\n\tIGNPAR                         = 0x4\n\tIMAXBEL                        = 0x2000\n\tINLCR                          = 0x40\n\tINPCK                          = 0x10\n\tIN_CLASSA_HOST                 = 0xffffff\n\tIN_CLASSA_MAX                  = 0x80\n\tIN_CLASSA_NET                  = 0xff000000\n\tIN_CLASSA_NSHIFT               = 0x18\n\tIN_CLASSB_HOST                 = 0xffff\n\tIN_CLASSB_MAX                  = 0x10000\n\tIN_CLASSB_NET                  = 0xffff0000\n\tIN_CLASSB_NSHIFT               = 0x10\n\tIN_CLASSC_HOST                 = 0xff\n\tIN_CLASSC_NET                  = 0xffffff00\n\tIN_CLASSC_NSHIFT               = 0x8\n\tIN_CLASSD_HOST                 = 0xfffffff\n\tIN_CLASSD_NET                  = 0xf0000000\n\tIN_CLASSD_NSHIFT               = 0x1c\n\tIN_LOOPBACKNET                 = 0x7f\n\tIN_RFC3021_MASK                = 0xfffffffe\n\tIPPROTO_3PC                    = 0x22\n\tIPPROTO_ADFS                   = 0x44\n\tIPPROTO_AH                     = 0x33\n\tIPPROTO_AHIP                   = 0x3d\n\tIPPROTO_APES                   = 0x63\n\tIPPROTO_ARGUS                  = 0xd\n\tIPPROTO_AX25                   = 0x5d\n\tIPPROTO_BHA                    = 0x31\n\tIPPROTO_BLT                    = 0x1e\n\tIPPROTO_BRSATMON               = 0x4c\n\tIPPROTO_CARP                   = 0x70\n\tIPPROTO_CFTP                   = 0x3e\n\tIPPROTO_CHAOS                  = 0x10\n\tIPPROTO_CMTP                   = 0x26\n\tIPPROTO_CPHB                   = 0x49\n\tIPPROTO_CPNX                   = 0x48\n\tIPPROTO_DCCP                   = 0x21\n\tIPPROTO_DDP                    = 0x25\n\tIPPROTO_DGP                    = 0x56\n\tIPPROTO_DIVERT                 = 0x102\n\tIPPROTO_DONE                   = 0x101\n\tIPPROTO_DSTOPTS                = 0x3c\n\tIPPROTO_EGP                    = 0x8\n\tIPPROTO_EMCON                  = 0xe\n\tIPPROTO_ENCAP                  = 0x62\n\tIPPROTO_EON                    = 0x50\n\tIPPROTO_ESP                    = 0x32\n\tIPPROTO_ETHERIP                = 0x61\n\tIPPROTO_FRAGMENT               = 0x2c\n\tIPPROTO_GGP                    = 0x3\n\tIPPROTO_GMTP                   = 0x64\n\tIPPROTO_GRE                    = 0x2f\n\tIPPROTO_HELLO                  = 0x3f\n\tIPPROTO_HIP                    = 0x8b\n\tIPPROTO_HMP                    = 0x14\n\tIPPROTO_HOPOPTS                = 0x0\n\tIPPROTO_ICMP                   = 0x1\n\tIPPROTO_ICMPV6                 = 0x3a\n\tIPPROTO_IDP                    = 0x16\n\tIPPROTO_IDPR                   = 0x23\n\tIPPROTO_IDRP                   = 0x2d\n\tIPPROTO_IGMP                   = 0x2\n\tIPPROTO_IGP                    = 0x55\n\tIPPROTO_IGRP                   = 0x58\n\tIPPROTO_IL                     = 0x28\n\tIPPROTO_INLSP                  = 0x34\n\tIPPROTO_INP                    = 0x20\n\tIPPROTO_IP                     = 0x0\n\tIPPROTO_IPCOMP                 = 0x6c\n\tIPPROTO_IPCV                   = 0x47\n\tIPPROTO_IPEIP                  = 0x5e\n\tIPPROTO_IPIP                   = 0x4\n\tIPPROTO_IPPC                   = 0x43\n\tIPPROTO_IPV4                   = 0x4\n\tIPPROTO_IPV6                   = 0x29\n\tIPPROTO_IRTP                   = 0x1c\n\tIPPROTO_KRYPTOLAN              = 0x41\n\tIPPROTO_LARP                   = 0x5b\n\tIPPROTO_LEAF1                  = 0x19\n\tIPPROTO_LEAF2                  = 0x1a\n\tIPPROTO_MAX                    = 0x100\n\tIPPROTO_MEAS                   = 0x13\n\tIPPROTO_MH                     = 0x87\n\tIPPROTO_MHRP                   = 0x30\n\tIPPROTO_MICP                   = 0x5f\n\tIPPROTO_MOBILE                 = 0x37\n\tIPPROTO_MPLS                   = 0x89\n\tIPPROTO_MTP                    = 0x5c\n\tIPPROTO_MUX                    = 0x12\n\tIPPROTO_ND                     = 0x4d\n\tIPPROTO_NHRP                   = 0x36\n\tIPPROTO_NONE                   = 0x3b\n\tIPPROTO_NSP                    = 0x1f\n\tIPPROTO_NVPII                  = 0xb\n\tIPPROTO_OLD_DIVERT             = 0xfe\n\tIPPROTO_OSPFIGP                = 0x59\n\tIPPROTO_PFSYNC                 = 0xf0\n\tIPPROTO_PGM                    = 0x71\n\tIPPROTO_PIGP                   = 0x9\n\tIPPROTO_PIM                    = 0x67\n\tIPPROTO_PRM                    = 0x15\n\tIPPROTO_PUP                    = 0xc\n\tIPPROTO_PVP                    = 0x4b\n\tIPPROTO_RAW                    = 0xff\n\tIPPROTO_RCCMON                 = 0xa\n\tIPPROTO_RDP                    = 0x1b\n\tIPPROTO_RESERVED_253           = 0xfd\n\tIPPROTO_RESERVED_254           = 0xfe\n\tIPPROTO_ROUTING                = 0x2b\n\tIPPROTO_RSVP                   = 0x2e\n\tIPPROTO_RVD                    = 0x42\n\tIPPROTO_SATEXPAK               = 0x40\n\tIPPROTO_SATMON                 = 0x45\n\tIPPROTO_SCCSP                  = 0x60\n\tIPPROTO_SCTP                   = 0x84\n\tIPPROTO_SDRP                   = 0x2a\n\tIPPROTO_SEND                   = 0x103\n\tIPPROTO_SHIM6                  = 0x8c\n\tIPPROTO_SKIP                   = 0x39\n\tIPPROTO_SPACER                 = 0x7fff\n\tIPPROTO_SRPC                   = 0x5a\n\tIPPROTO_ST                     = 0x7\n\tIPPROTO_SVMTP                  = 0x52\n\tIPPROTO_SWIPE                  = 0x35\n\tIPPROTO_TCF                    = 0x57\n\tIPPROTO_TCP                    = 0x6\n\tIPPROTO_TLSP                   = 0x38\n\tIPPROTO_TP                     = 0x1d\n\tIPPROTO_TPXX                   = 0x27\n\tIPPROTO_TRUNK1                 = 0x17\n\tIPPROTO_TRUNK2                 = 0x18\n\tIPPROTO_TTP                    = 0x54\n\tIPPROTO_UDP                    = 0x11\n\tIPPROTO_UDPLITE                = 0x88\n\tIPPROTO_VINES                  = 0x53\n\tIPPROTO_VISA                   = 0x46\n\tIPPROTO_VMTP                   = 0x51\n\tIPPROTO_WBEXPAK                = 0x4f\n\tIPPROTO_WBMON                  = 0x4e\n\tIPPROTO_WSN                    = 0x4a\n\tIPPROTO_XNET                   = 0xf\n\tIPPROTO_XTP                    = 0x24\n\tIPV6_AUTOFLOWLABEL             = 0x3b\n\tIPV6_BINDANY                   = 0x40\n\tIPV6_BINDMULTI                 = 0x41\n\tIPV6_BINDV6ONLY                = 0x1b\n\tIPV6_CHECKSUM                  = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS    = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP    = 0x1\n\tIPV6_DEFHLIM                   = 0x40\n\tIPV6_DONTFRAG                  = 0x3e\n\tIPV6_DSTOPTS                   = 0x32\n\tIPV6_FLOWID                    = 0x43\n\tIPV6_FLOWINFO_MASK             = 0xffffff0f\n\tIPV6_FLOWLABEL_LEN             = 0x14\n\tIPV6_FLOWLABEL_MASK            = 0xffff0f00\n\tIPV6_FLOWTYPE                  = 0x44\n\tIPV6_FRAGTTL                   = 0x78\n\tIPV6_FW_ADD                    = 0x1e\n\tIPV6_FW_DEL                    = 0x1f\n\tIPV6_FW_FLUSH                  = 0x20\n\tIPV6_FW_GET                    = 0x22\n\tIPV6_FW_ZERO                   = 0x21\n\tIPV6_HLIMDEC                   = 0x1\n\tIPV6_HOPLIMIT                  = 0x2f\n\tIPV6_HOPOPTS                   = 0x31\n\tIPV6_IPSEC_POLICY              = 0x1c\n\tIPV6_JOIN_GROUP                = 0xc\n\tIPV6_LEAVE_GROUP               = 0xd\n\tIPV6_MAXHLIM                   = 0xff\n\tIPV6_MAXOPTHDR                 = 0x800\n\tIPV6_MAXPACKET                 = 0xffff\n\tIPV6_MAX_GROUP_SRC_FILTER      = 0x200\n\tIPV6_MAX_MEMBERSHIPS           = 0xfff\n\tIPV6_MAX_SOCK_SRC_FILTER       = 0x80\n\tIPV6_MMTU                      = 0x500\n\tIPV6_MSFILTER                  = 0x4a\n\tIPV6_MULTICAST_HOPS            = 0xa\n\tIPV6_MULTICAST_IF              = 0x9\n\tIPV6_MULTICAST_LOOP            = 0xb\n\tIPV6_NEXTHOP                   = 0x30\n\tIPV6_ORIGDSTADDR               = 0x48\n\tIPV6_PATHMTU                   = 0x2c\n\tIPV6_PKTINFO                   = 0x2e\n\tIPV6_PORTRANGE                 = 0xe\n\tIPV6_PORTRANGE_DEFAULT         = 0x0\n\tIPV6_PORTRANGE_HIGH            = 0x1\n\tIPV6_PORTRANGE_LOW             = 0x2\n\tIPV6_PREFER_TEMPADDR           = 0x3f\n\tIPV6_RECVDSTOPTS               = 0x28\n\tIPV6_RECVFLOWID                = 0x46\n\tIPV6_RECVHOPLIMIT              = 0x25\n\tIPV6_RECVHOPOPTS               = 0x27\n\tIPV6_RECVORIGDSTADDR           = 0x48\n\tIPV6_RECVPATHMTU               = 0x2b\n\tIPV6_RECVPKTINFO               = 0x24\n\tIPV6_RECVRSSBUCKETID           = 0x47\n\tIPV6_RECVRTHDR                 = 0x26\n\tIPV6_RECVTCLASS                = 0x39\n\tIPV6_RSSBUCKETID               = 0x45\n\tIPV6_RSS_LISTEN_BUCKET         = 0x42\n\tIPV6_RTHDR                     = 0x33\n\tIPV6_RTHDRDSTOPTS              = 0x23\n\tIPV6_RTHDR_LOOSE               = 0x0\n\tIPV6_RTHDR_STRICT              = 0x1\n\tIPV6_RTHDR_TYPE_0              = 0x0\n\tIPV6_SOCKOPT_RESERVED1         = 0x3\n\tIPV6_TCLASS                    = 0x3d\n\tIPV6_UNICAST_HOPS              = 0x4\n\tIPV6_USE_MIN_MTU               = 0x2a\n\tIPV6_V6ONLY                    = 0x1b\n\tIPV6_VERSION                   = 0x60\n\tIPV6_VERSION_MASK              = 0xf0\n\tIPV6_VLAN_PCP                  = 0x4b\n\tIP_ADD_MEMBERSHIP              = 0xc\n\tIP_ADD_SOURCE_MEMBERSHIP       = 0x46\n\tIP_BINDANY                     = 0x18\n\tIP_BINDMULTI                   = 0x19\n\tIP_BLOCK_SOURCE                = 0x48\n\tIP_DEFAULT_MULTICAST_LOOP      = 0x1\n\tIP_DEFAULT_MULTICAST_TTL       = 0x1\n\tIP_DF                          = 0x4000\n\tIP_DONTFRAG                    = 0x43\n\tIP_DROP_MEMBERSHIP             = 0xd\n\tIP_DROP_SOURCE_MEMBERSHIP      = 0x47\n\tIP_DUMMYNET3                   = 0x31\n\tIP_DUMMYNET_CONFIGURE          = 0x3c\n\tIP_DUMMYNET_DEL                = 0x3d\n\tIP_DUMMYNET_FLUSH              = 0x3e\n\tIP_DUMMYNET_GET                = 0x40\n\tIP_FLOWID                      = 0x5a\n\tIP_FLOWTYPE                    = 0x5b\n\tIP_FW3                         = 0x30\n\tIP_FW_ADD                      = 0x32\n\tIP_FW_DEL                      = 0x33\n\tIP_FW_FLUSH                    = 0x34\n\tIP_FW_GET                      = 0x36\n\tIP_FW_NAT_CFG                  = 0x38\n\tIP_FW_NAT_DEL                  = 0x39\n\tIP_FW_NAT_GET_CONFIG           = 0x3a\n\tIP_FW_NAT_GET_LOG              = 0x3b\n\tIP_FW_RESETLOG                 = 0x37\n\tIP_FW_TABLE_ADD                = 0x28\n\tIP_FW_TABLE_DEL                = 0x29\n\tIP_FW_TABLE_FLUSH              = 0x2a\n\tIP_FW_TABLE_GETSIZE            = 0x2b\n\tIP_FW_TABLE_LIST               = 0x2c\n\tIP_FW_ZERO                     = 0x35\n\tIP_HDRINCL                     = 0x2\n\tIP_IPSEC_POLICY                = 0x15\n\tIP_MAXPACKET                   = 0xffff\n\tIP_MAX_GROUP_SRC_FILTER        = 0x200\n\tIP_MAX_MEMBERSHIPS             = 0xfff\n\tIP_MAX_SOCK_MUTE_FILTER        = 0x80\n\tIP_MAX_SOCK_SRC_FILTER         = 0x80\n\tIP_MF                          = 0x2000\n\tIP_MINTTL                      = 0x42\n\tIP_MSFILTER                    = 0x4a\n\tIP_MSS                         = 0x240\n\tIP_MULTICAST_IF                = 0x9\n\tIP_MULTICAST_LOOP              = 0xb\n\tIP_MULTICAST_TTL               = 0xa\n\tIP_MULTICAST_VIF               = 0xe\n\tIP_OFFMASK                     = 0x1fff\n\tIP_ONESBCAST                   = 0x17\n\tIP_OPTIONS                     = 0x1\n\tIP_ORIGDSTADDR                 = 0x1b\n\tIP_PORTRANGE                   = 0x13\n\tIP_PORTRANGE_DEFAULT           = 0x0\n\tIP_PORTRANGE_HIGH              = 0x1\n\tIP_PORTRANGE_LOW               = 0x2\n\tIP_RECVDSTADDR                 = 0x7\n\tIP_RECVFLOWID                  = 0x5d\n\tIP_RECVIF                      = 0x14\n\tIP_RECVOPTS                    = 0x5\n\tIP_RECVORIGDSTADDR             = 0x1b\n\tIP_RECVRETOPTS                 = 0x6\n\tIP_RECVRSSBUCKETID             = 0x5e\n\tIP_RECVTOS                     = 0x44\n\tIP_RECVTTL                     = 0x41\n\tIP_RETOPTS                     = 0x8\n\tIP_RF                          = 0x8000\n\tIP_RSSBUCKETID                 = 0x5c\n\tIP_RSS_LISTEN_BUCKET           = 0x1a\n\tIP_RSVP_OFF                    = 0x10\n\tIP_RSVP_ON                     = 0xf\n\tIP_RSVP_VIF_OFF                = 0x12\n\tIP_RSVP_VIF_ON                 = 0x11\n\tIP_SENDSRCADDR                 = 0x7\n\tIP_TOS                         = 0x3\n\tIP_TTL                         = 0x4\n\tIP_UNBLOCK_SOURCE              = 0x49\n\tIP_VLAN_PCP                    = 0x4b\n\tISIG                           = 0x80\n\tISTRIP                         = 0x20\n\tITIMER_PROF                    = 0x2\n\tITIMER_REAL                    = 0x0\n\tITIMER_VIRTUAL                 = 0x1\n\tIXANY                          = 0x800\n\tIXOFF                          = 0x400\n\tIXON                           = 0x200\n\tKERN_HOSTNAME                  = 0xa\n\tKERN_OSRELEASE                 = 0x2\n\tKERN_OSTYPE                    = 0x1\n\tKERN_VERSION                   = 0x4\n\tLOCAL_CONNWAIT                 = 0x4\n\tLOCAL_CREDS                    = 0x2\n\tLOCAL_PEERCRED                 = 0x1\n\tLOCAL_VENDOR                   = 0x80000000\n\tLOCK_EX                        = 0x2\n\tLOCK_NB                        = 0x4\n\tLOCK_SH                        = 0x1\n\tLOCK_UN                        = 0x8\n\tMADV_AUTOSYNC                  = 0x7\n\tMADV_CORE                      = 0x9\n\tMADV_DONTNEED                  = 0x4\n\tMADV_FREE                      = 0x5\n\tMADV_NOCORE                    = 0x8\n\tMADV_NORMAL                    = 0x0\n\tMADV_NOSYNC                    = 0x6\n\tMADV_PROTECT                   = 0xa\n\tMADV_RANDOM                    = 0x1\n\tMADV_SEQUENTIAL                = 0x2\n\tMADV_WILLNEED                  = 0x3\n\tMAP_32BIT                      = 0x80000\n\tMAP_ALIGNED_SUPER              = 0x1000000\n\tMAP_ALIGNMENT_MASK             = -0x1000000\n\tMAP_ALIGNMENT_SHIFT            = 0x18\n\tMAP_ANON                       = 0x1000\n\tMAP_ANONYMOUS                  = 0x1000\n\tMAP_COPY                       = 0x2\n\tMAP_EXCL                       = 0x4000\n\tMAP_FILE                       = 0x0\n\tMAP_FIXED                      = 0x10\n\tMAP_GUARD                      = 0x2000\n\tMAP_HASSEMAPHORE               = 0x200\n\tMAP_NOCORE                     = 0x20000\n\tMAP_NOSYNC                     = 0x800\n\tMAP_PREFAULT_READ              = 0x40000\n\tMAP_PRIVATE                    = 0x2\n\tMAP_RESERVED0020               = 0x20\n\tMAP_RESERVED0040               = 0x40\n\tMAP_RESERVED0080               = 0x80\n\tMAP_RESERVED0100               = 0x100\n\tMAP_SHARED                     = 0x1\n\tMAP_STACK                      = 0x400\n\tMCAST_BLOCK_SOURCE             = 0x54\n\tMCAST_EXCLUDE                  = 0x2\n\tMCAST_INCLUDE                  = 0x1\n\tMCAST_JOIN_GROUP               = 0x50\n\tMCAST_JOIN_SOURCE_GROUP        = 0x52\n\tMCAST_LEAVE_GROUP              = 0x51\n\tMCAST_LEAVE_SOURCE_GROUP       = 0x53\n\tMCAST_UNBLOCK_SOURCE           = 0x55\n\tMCAST_UNDEFINED                = 0x0\n\tMCL_CURRENT                    = 0x1\n\tMCL_FUTURE                     = 0x2\n\tMNT_ACLS                       = 0x8000000\n\tMNT_ASYNC                      = 0x40\n\tMNT_AUTOMOUNTED                = 0x200000000\n\tMNT_BYFSID                     = 0x8000000\n\tMNT_CMDFLAGS                   = 0xd0f0000\n\tMNT_DEFEXPORTED                = 0x200\n\tMNT_DELEXPORT                  = 0x20000\n\tMNT_EXKERB                     = 0x800\n\tMNT_EXPORTANON                 = 0x400\n\tMNT_EXPORTED                   = 0x100\n\tMNT_EXPUBLIC                   = 0x20000000\n\tMNT_EXRDONLY                   = 0x80\n\tMNT_FORCE                      = 0x80000\n\tMNT_GJOURNAL                   = 0x2000000\n\tMNT_IGNORE                     = 0x800000\n\tMNT_LAZY                       = 0x3\n\tMNT_LOCAL                      = 0x1000\n\tMNT_MULTILABEL                 = 0x4000000\n\tMNT_NFS4ACLS                   = 0x10\n\tMNT_NOATIME                    = 0x10000000\n\tMNT_NOCLUSTERR                 = 0x40000000\n\tMNT_NOCLUSTERW                 = 0x80000000\n\tMNT_NOEXEC                     = 0x4\n\tMNT_NONBUSY                    = 0x4000000\n\tMNT_NOSUID                     = 0x8\n\tMNT_NOSYMFOLLOW                = 0x400000\n\tMNT_NOWAIT                     = 0x2\n\tMNT_QUOTA                      = 0x2000\n\tMNT_RDONLY                     = 0x1\n\tMNT_RELOAD                     = 0x40000\n\tMNT_ROOTFS                     = 0x4000\n\tMNT_SNAPSHOT                   = 0x1000000\n\tMNT_SOFTDEP                    = 0x200000\n\tMNT_SUIDDIR                    = 0x100000\n\tMNT_SUJ                        = 0x100000000\n\tMNT_SUSPEND                    = 0x4\n\tMNT_SYNCHRONOUS                = 0x2\n\tMNT_UNION                      = 0x20\n\tMNT_UNTRUSTED                  = 0x800000000\n\tMNT_UPDATE                     = 0x10000\n\tMNT_UPDATEMASK                 = 0xad8d0807e\n\tMNT_USER                       = 0x8000\n\tMNT_VERIFIED                   = 0x400000000\n\tMNT_VISFLAGMASK                = 0xffef0ffff\n\tMNT_WAIT                       = 0x1\n\tMSG_CMSG_CLOEXEC               = 0x40000\n\tMSG_COMPAT                     = 0x8000\n\tMSG_CTRUNC                     = 0x20\n\tMSG_DONTROUTE                  = 0x4\n\tMSG_DONTWAIT                   = 0x80\n\tMSG_EOF                        = 0x100\n\tMSG_EOR                        = 0x8\n\tMSG_NBIO                       = 0x4000\n\tMSG_NOSIGNAL                   = 0x20000\n\tMSG_NOTIFICATION               = 0x2000\n\tMSG_OOB                        = 0x1\n\tMSG_PEEK                       = 0x2\n\tMSG_TRUNC                      = 0x10\n\tMSG_WAITALL                    = 0x40\n\tMSG_WAITFORONE                 = 0x80000\n\tMS_ASYNC                       = 0x1\n\tMS_INVALIDATE                  = 0x2\n\tMS_SYNC                        = 0x0\n\tNAME_MAX                       = 0xff\n\tNET_RT_DUMP                    = 0x1\n\tNET_RT_FLAGS                   = 0x2\n\tNET_RT_IFLIST                  = 0x3\n\tNET_RT_IFLISTL                 = 0x5\n\tNET_RT_IFMALIST                = 0x4\n\tNFDBITS                        = 0x40\n\tNOFLSH                         = 0x80000000\n\tNOKERNINFO                     = 0x2000000\n\tNOTE_ABSTIME                   = 0x10\n\tNOTE_ATTRIB                    = 0x8\n\tNOTE_CHILD                     = 0x4\n\tNOTE_CLOSE                     = 0x100\n\tNOTE_CLOSE_WRITE               = 0x200\n\tNOTE_DELETE                    = 0x1\n\tNOTE_EXEC                      = 0x20000000\n\tNOTE_EXIT                      = 0x80000000\n\tNOTE_EXTEND                    = 0x4\n\tNOTE_FFAND                     = 0x40000000\n\tNOTE_FFCOPY                    = 0xc0000000\n\tNOTE_FFCTRLMASK                = 0xc0000000\n\tNOTE_FFLAGSMASK                = 0xffffff\n\tNOTE_FFNOP                     = 0x0\n\tNOTE_FFOR                      = 0x80000000\n\tNOTE_FILE_POLL                 = 0x2\n\tNOTE_FORK                      = 0x40000000\n\tNOTE_LINK                      = 0x10\n\tNOTE_LOWAT                     = 0x1\n\tNOTE_MSECONDS                  = 0x2\n\tNOTE_NSECONDS                  = 0x8\n\tNOTE_OPEN                      = 0x80\n\tNOTE_PCTRLMASK                 = 0xf0000000\n\tNOTE_PDATAMASK                 = 0xfffff\n\tNOTE_READ                      = 0x400\n\tNOTE_RENAME                    = 0x20\n\tNOTE_REVOKE                    = 0x40\n\tNOTE_SECONDS                   = 0x1\n\tNOTE_TRACK                     = 0x1\n\tNOTE_TRACKERR                  = 0x2\n\tNOTE_TRIGGER                   = 0x1000000\n\tNOTE_USECONDS                  = 0x4\n\tNOTE_WRITE                     = 0x2\n\tOCRNL                          = 0x10\n\tONLCR                          = 0x2\n\tONLRET                         = 0x40\n\tONOCR                          = 0x20\n\tONOEOT                         = 0x8\n\tOPOST                          = 0x1\n\tOXTABS                         = 0x4\n\tO_ACCMODE                      = 0x3\n\tO_APPEND                       = 0x8\n\tO_ASYNC                        = 0x40\n\tO_CLOEXEC                      = 0x100000\n\tO_CREAT                        = 0x200\n\tO_DIRECT                       = 0x10000\n\tO_DIRECTORY                    = 0x20000\n\tO_EXCL                         = 0x800\n\tO_EXEC                         = 0x40000\n\tO_EXLOCK                       = 0x20\n\tO_FSYNC                        = 0x80\n\tO_NDELAY                       = 0x4\n\tO_NOCTTY                       = 0x8000\n\tO_NOFOLLOW                     = 0x100\n\tO_NONBLOCK                     = 0x4\n\tO_RDONLY                       = 0x0\n\tO_RDWR                         = 0x2\n\tO_RESOLVE_BENEATH              = 0x800000\n\tO_SEARCH                       = 0x40000\n\tO_SHLOCK                       = 0x10\n\tO_SYNC                         = 0x80\n\tO_TRUNC                        = 0x400\n\tO_TTY_INIT                     = 0x80000\n\tO_VERIFY                       = 0x200000\n\tO_WRONLY                       = 0x1\n\tPARENB                         = 0x1000\n\tPARMRK                         = 0x8\n\tPARODD                         = 0x2000\n\tPENDIN                         = 0x20000000\n\tPIOD_READ_D                    = 0x1\n\tPIOD_READ_I                    = 0x3\n\tPIOD_WRITE_D                   = 0x2\n\tPIOD_WRITE_I                   = 0x4\n\tPRIO_PGRP                      = 0x1\n\tPRIO_PROCESS                   = 0x0\n\tPRIO_USER                      = 0x2\n\tPROT_EXEC                      = 0x4\n\tPROT_NONE                      = 0x0\n\tPROT_READ                      = 0x1\n\tPROT_WRITE                     = 0x2\n\tPTRACE_DEFAULT                 = 0x1\n\tPTRACE_EXEC                    = 0x1\n\tPTRACE_FORK                    = 0x8\n\tPTRACE_LWP                     = 0x10\n\tPTRACE_SCE                     = 0x2\n\tPTRACE_SCX                     = 0x4\n\tPTRACE_SYSCALL                 = 0x6\n\tPTRACE_VFORK                   = 0x20\n\tPT_ATTACH                      = 0xa\n\tPT_CLEARSTEP                   = 0x10\n\tPT_CONTINUE                    = 0x7\n\tPT_DETACH                      = 0xb\n\tPT_FIRSTMACH                   = 0x40\n\tPT_FOLLOW_FORK                 = 0x17\n\tPT_GETDBREGS                   = 0x25\n\tPT_GETFPREGS                   = 0x23\n\tPT_GETFSBASE                   = 0x47\n\tPT_GETGSBASE                   = 0x49\n\tPT_GETLWPLIST                  = 0xf\n\tPT_GETNUMLWPS                  = 0xe\n\tPT_GETREGS                     = 0x21\n\tPT_GETXSTATE                   = 0x45\n\tPT_GETXSTATE_INFO              = 0x44\n\tPT_GET_EVENT_MASK              = 0x19\n\tPT_GET_SC_ARGS                 = 0x1b\n\tPT_GET_SC_RET                  = 0x1c\n\tPT_IO                          = 0xc\n\tPT_KILL                        = 0x8\n\tPT_LWPINFO                     = 0xd\n\tPT_LWP_EVENTS                  = 0x18\n\tPT_READ_D                      = 0x2\n\tPT_READ_I                      = 0x1\n\tPT_RESUME                      = 0x13\n\tPT_SETDBREGS                   = 0x26\n\tPT_SETFPREGS                   = 0x24\n\tPT_SETFSBASE                   = 0x48\n\tPT_SETGSBASE                   = 0x4a\n\tPT_SETREGS                     = 0x22\n\tPT_SETSTEP                     = 0x11\n\tPT_SETXSTATE                   = 0x46\n\tPT_SET_EVENT_MASK              = 0x1a\n\tPT_STEP                        = 0x9\n\tPT_SUSPEND                     = 0x12\n\tPT_SYSCALL                     = 0x16\n\tPT_TO_SCE                      = 0x14\n\tPT_TO_SCX                      = 0x15\n\tPT_TRACE_ME                    = 0x0\n\tPT_VM_ENTRY                    = 0x29\n\tPT_VM_TIMESTAMP                = 0x28\n\tPT_WRITE_D                     = 0x5\n\tPT_WRITE_I                     = 0x4\n\tP_ZONEID                       = 0xc\n\tRLIMIT_AS                      = 0xa\n\tRLIMIT_CORE                    = 0x4\n\tRLIMIT_CPU                     = 0x0\n\tRLIMIT_DATA                    = 0x2\n\tRLIMIT_FSIZE                   = 0x1\n\tRLIMIT_MEMLOCK                 = 0x6\n\tRLIMIT_NOFILE                  = 0x8\n\tRLIMIT_NPROC                   = 0x7\n\tRLIMIT_RSS                     = 0x5\n\tRLIMIT_STACK                   = 0x3\n\tRLIM_INFINITY                  = 0x7fffffffffffffff\n\tRTAX_AUTHOR                    = 0x6\n\tRTAX_BRD                       = 0x7\n\tRTAX_DST                       = 0x0\n\tRTAX_GATEWAY                   = 0x1\n\tRTAX_GENMASK                   = 0x3\n\tRTAX_IFA                       = 0x5\n\tRTAX_IFP                       = 0x4\n\tRTAX_MAX                       = 0x8\n\tRTAX_NETMASK                   = 0x2\n\tRTA_AUTHOR                     = 0x40\n\tRTA_BRD                        = 0x80\n\tRTA_DST                        = 0x1\n\tRTA_GATEWAY                    = 0x2\n\tRTA_GENMASK                    = 0x8\n\tRTA_IFA                        = 0x20\n\tRTA_IFP                        = 0x10\n\tRTA_NETMASK                    = 0x4\n\tRTF_BLACKHOLE                  = 0x1000\n\tRTF_BROADCAST                  = 0x400000\n\tRTF_DONE                       = 0x40\n\tRTF_DYNAMIC                    = 0x10\n\tRTF_FIXEDMTU                   = 0x80000\n\tRTF_FMASK                      = 0x1004d808\n\tRTF_GATEWAY                    = 0x2\n\tRTF_GWFLAG_COMPAT              = 0x80000000\n\tRTF_HOST                       = 0x4\n\tRTF_LLDATA                     = 0x400\n\tRTF_LLINFO                     = 0x400\n\tRTF_LOCAL                      = 0x200000\n\tRTF_MODIFIED                   = 0x20\n\tRTF_MULTICAST                  = 0x800000\n\tRTF_PINNED                     = 0x100000\n\tRTF_PROTO1                     = 0x8000\n\tRTF_PROTO2                     = 0x4000\n\tRTF_PROTO3                     = 0x40000\n\tRTF_REJECT                     = 0x8\n\tRTF_RNH_LOCKED                 = 0x40000000\n\tRTF_STATIC                     = 0x800\n\tRTF_STICKY                     = 0x10000000\n\tRTF_UP                         = 0x1\n\tRTF_XRESOLVE                   = 0x200\n\tRTM_ADD                        = 0x1\n\tRTM_CHANGE                     = 0x3\n\tRTM_DELADDR                    = 0xd\n\tRTM_DELETE                     = 0x2\n\tRTM_DELMADDR                   = 0x10\n\tRTM_GET                        = 0x4\n\tRTM_IEEE80211                  = 0x12\n\tRTM_IFANNOUNCE                 = 0x11\n\tRTM_IFINFO                     = 0xe\n\tRTM_LOCK                       = 0x8\n\tRTM_LOSING                     = 0x5\n\tRTM_MISS                       = 0x7\n\tRTM_NEWADDR                    = 0xc\n\tRTM_NEWMADDR                   = 0xf\n\tRTM_REDIRECT                   = 0x6\n\tRTM_RESOLVE                    = 0xb\n\tRTM_RTTUNIT                    = 0xf4240\n\tRTM_VERSION                    = 0x5\n\tRTV_EXPIRE                     = 0x4\n\tRTV_HOPCOUNT                   = 0x2\n\tRTV_MTU                        = 0x1\n\tRTV_RPIPE                      = 0x8\n\tRTV_RTT                        = 0x40\n\tRTV_RTTVAR                     = 0x80\n\tRTV_SPIPE                      = 0x10\n\tRTV_SSTHRESH                   = 0x20\n\tRTV_WEIGHT                     = 0x100\n\tRT_ALL_FIBS                    = -0x1\n\tRT_BLACKHOLE                   = 0x40\n\tRT_DEFAULT_FIB                 = 0x0\n\tRT_HAS_GW                      = 0x80\n\tRT_HAS_HEADER                  = 0x10\n\tRT_HAS_HEADER_BIT              = 0x4\n\tRT_L2_ME                       = 0x4\n\tRT_L2_ME_BIT                   = 0x2\n\tRT_LLE_CACHE                   = 0x100\n\tRT_MAY_LOOP                    = 0x8\n\tRT_MAY_LOOP_BIT                = 0x3\n\tRT_REJECT                      = 0x20\n\tRUSAGE_CHILDREN                = -0x1\n\tRUSAGE_SELF                    = 0x0\n\tRUSAGE_THREAD                  = 0x1\n\tSCM_BINTIME                    = 0x4\n\tSCM_CREDS                      = 0x3\n\tSCM_MONOTONIC                  = 0x6\n\tSCM_REALTIME                   = 0x5\n\tSCM_RIGHTS                     = 0x1\n\tSCM_TIMESTAMP                  = 0x2\n\tSCM_TIME_INFO                  = 0x7\n\tSEEK_CUR                       = 0x1\n\tSEEK_DATA                      = 0x3\n\tSEEK_END                       = 0x2\n\tSEEK_HOLE                      = 0x4\n\tSEEK_SET                       = 0x0\n\tSHUT_RD                        = 0x0\n\tSHUT_RDWR                      = 0x2\n\tSHUT_WR                        = 0x1\n\tSIOCADDMULTI                   = 0x80206931\n\tSIOCAIFADDR                    = 0x8040691a\n\tSIOCAIFGROUP                   = 0x80286987\n\tSIOCATMARK                     = 0x40047307\n\tSIOCDELMULTI                   = 0x80206932\n\tSIOCDIFADDR                    = 0x80206919\n\tSIOCDIFGROUP                   = 0x80286989\n\tSIOCDIFPHYADDR                 = 0x80206949\n\tSIOCGDRVSPEC                   = 0xc028697b\n\tSIOCGETSGCNT                   = 0xc0207210\n\tSIOCGETVIFCNT                  = 0xc028720f\n\tSIOCGHIWAT                     = 0x40047301\n\tSIOCGHWADDR                    = 0xc020693e\n\tSIOCGI2C                       = 0xc020693d\n\tSIOCGIFADDR                    = 0xc0206921\n\tSIOCGIFALIAS                   = 0xc044692d\n\tSIOCGIFBRDADDR                 = 0xc0206923\n\tSIOCGIFCAP                     = 0xc020691f\n\tSIOCGIFCONF                    = 0xc0106924\n\tSIOCGIFDESCR                   = 0xc020692a\n\tSIOCGIFDOWNREASON              = 0xc058699a\n\tSIOCGIFDSTADDR                 = 0xc0206922\n\tSIOCGIFFIB                     = 0xc020695c\n\tSIOCGIFFLAGS                   = 0xc0206911\n\tSIOCGIFGENERIC                 = 0xc020693a\n\tSIOCGIFGMEMB                   = 0xc028698a\n\tSIOCGIFGROUP                   = 0xc0286988\n\tSIOCGIFINDEX                   = 0xc0206920\n\tSIOCGIFMAC                     = 0xc0206926\n\tSIOCGIFMEDIA                   = 0xc0306938\n\tSIOCGIFMETRIC                  = 0xc0206917\n\tSIOCGIFMTU                     = 0xc0206933\n\tSIOCGIFNETMASK                 = 0xc0206925\n\tSIOCGIFPDSTADDR                = 0xc0206948\n\tSIOCGIFPHYS                    = 0xc0206935\n\tSIOCGIFPSRCADDR                = 0xc0206947\n\tSIOCGIFRSSHASH                 = 0xc0186997\n\tSIOCGIFRSSKEY                  = 0xc0946996\n\tSIOCGIFSTATUS                  = 0xc331693b\n\tSIOCGIFXMEDIA                  = 0xc030698b\n\tSIOCGLANPCP                    = 0xc0206998\n\tSIOCGLOWAT                     = 0x40047303\n\tSIOCGPGRP                      = 0x40047309\n\tSIOCGPRIVATE_0                 = 0xc0206950\n\tSIOCGPRIVATE_1                 = 0xc0206951\n\tSIOCGTUNFIB                    = 0xc020695e\n\tSIOCIFCREATE                   = 0xc020697a\n\tSIOCIFCREATE2                  = 0xc020697c\n\tSIOCIFDESTROY                  = 0x80206979\n\tSIOCIFGCLONERS                 = 0xc0106978\n\tSIOCSDRVSPEC                   = 0x8028697b\n\tSIOCSHIWAT                     = 0x80047300\n\tSIOCSIFADDR                    = 0x8020690c\n\tSIOCSIFBRDADDR                 = 0x80206913\n\tSIOCSIFCAP                     = 0x8020691e\n\tSIOCSIFDESCR                   = 0x80206929\n\tSIOCSIFDSTADDR                 = 0x8020690e\n\tSIOCSIFFIB                     = 0x8020695d\n\tSIOCSIFFLAGS                   = 0x80206910\n\tSIOCSIFGENERIC                 = 0x80206939\n\tSIOCSIFLLADDR                  = 0x8020693c\n\tSIOCSIFMAC                     = 0x80206927\n\tSIOCSIFMEDIA                   = 0xc0206937\n\tSIOCSIFMETRIC                  = 0x80206918\n\tSIOCSIFMTU                     = 0x80206934\n\tSIOCSIFNAME                    = 0x80206928\n\tSIOCSIFNETMASK                 = 0x80206916\n\tSIOCSIFPHYADDR                 = 0x80406946\n\tSIOCSIFPHYS                    = 0x80206936\n\tSIOCSIFRVNET                   = 0xc020695b\n\tSIOCSIFVNET                    = 0xc020695a\n\tSIOCSLANPCP                    = 0x80206999\n\tSIOCSLOWAT                     = 0x80047302\n\tSIOCSPGRP                      = 0x80047308\n\tSIOCSTUNFIB                    = 0x8020695f\n\tSOCK_CLOEXEC                   = 0x10000000\n\tSOCK_DGRAM                     = 0x2\n\tSOCK_MAXADDRLEN                = 0xff\n\tSOCK_NONBLOCK                  = 0x20000000\n\tSOCK_RAW                       = 0x3\n\tSOCK_RDM                       = 0x4\n\tSOCK_SEQPACKET                 = 0x5\n\tSOCK_STREAM                    = 0x1\n\tSOL_LOCAL                      = 0x0\n\tSOL_SOCKET                     = 0xffff\n\tSOMAXCONN                      = 0x80\n\tSO_ACCEPTCONN                  = 0x2\n\tSO_ACCEPTFILTER                = 0x1000\n\tSO_BINTIME                     = 0x2000\n\tSO_BROADCAST                   = 0x20\n\tSO_DEBUG                       = 0x1\n\tSO_DOMAIN                      = 0x1019\n\tSO_DONTROUTE                   = 0x10\n\tSO_ERROR                       = 0x1007\n\tSO_KEEPALIVE                   = 0x8\n\tSO_LABEL                       = 0x1009\n\tSO_LINGER                      = 0x80\n\tSO_LISTENINCQLEN               = 0x1013\n\tSO_LISTENQLEN                  = 0x1012\n\tSO_LISTENQLIMIT                = 0x1011\n\tSO_MAX_PACING_RATE             = 0x1018\n\tSO_NOSIGPIPE                   = 0x800\n\tSO_NO_DDP                      = 0x8000\n\tSO_NO_OFFLOAD                  = 0x4000\n\tSO_OOBINLINE                   = 0x100\n\tSO_PEERLABEL                   = 0x1010\n\tSO_PROTOCOL                    = 0x1016\n\tSO_PROTOTYPE                   = 0x1016\n\tSO_RCVBUF                      = 0x1002\n\tSO_RCVLOWAT                    = 0x1004\n\tSO_RCVTIMEO                    = 0x1006\n\tSO_RERROR                      = 0x20000\n\tSO_REUSEADDR                   = 0x4\n\tSO_REUSEPORT                   = 0x200\n\tSO_REUSEPORT_LB                = 0x10000\n\tSO_SETFIB                      = 0x1014\n\tSO_SNDBUF                      = 0x1001\n\tSO_SNDLOWAT                    = 0x1003\n\tSO_SNDTIMEO                    = 0x1005\n\tSO_TIMESTAMP                   = 0x400\n\tSO_TS_BINTIME                  = 0x1\n\tSO_TS_CLOCK                    = 0x1017\n\tSO_TS_CLOCK_MAX                = 0x3\n\tSO_TS_DEFAULT                  = 0x0\n\tSO_TS_MONOTONIC                = 0x3\n\tSO_TS_REALTIME                 = 0x2\n\tSO_TS_REALTIME_MICRO           = 0x0\n\tSO_TYPE                        = 0x1008\n\tSO_USELOOPBACK                 = 0x40\n\tSO_USER_COOKIE                 = 0x1015\n\tSO_VENDOR                      = 0x80000000\n\tS_BLKSIZE                      = 0x200\n\tS_IEXEC                        = 0x40\n\tS_IFBLK                        = 0x6000\n\tS_IFCHR                        = 0x2000\n\tS_IFDIR                        = 0x4000\n\tS_IFIFO                        = 0x1000\n\tS_IFLNK                        = 0xa000\n\tS_IFMT                         = 0xf000\n\tS_IFREG                        = 0x8000\n\tS_IFSOCK                       = 0xc000\n\tS_IFWHT                        = 0xe000\n\tS_IREAD                        = 0x100\n\tS_IRGRP                        = 0x20\n\tS_IROTH                        = 0x4\n\tS_IRUSR                        = 0x100\n\tS_IRWXG                        = 0x38\n\tS_IRWXO                        = 0x7\n\tS_IRWXU                        = 0x1c0\n\tS_ISGID                        = 0x400\n\tS_ISTXT                        = 0x200\n\tS_ISUID                        = 0x800\n\tS_ISVTX                        = 0x200\n\tS_IWGRP                        = 0x10\n\tS_IWOTH                        = 0x2\n\tS_IWRITE                       = 0x80\n\tS_IWUSR                        = 0x80\n\tS_IXGRP                        = 0x8\n\tS_IXOTH                        = 0x1\n\tS_IXUSR                        = 0x40\n\tTAB0                           = 0x0\n\tTAB3                           = 0x4\n\tTABDLY                         = 0x4\n\tTCIFLUSH                       = 0x1\n\tTCIOFF                         = 0x3\n\tTCIOFLUSH                      = 0x3\n\tTCION                          = 0x4\n\tTCOFLUSH                       = 0x2\n\tTCOOFF                         = 0x1\n\tTCOON                          = 0x2\n\tTCPOPT_EOL                     = 0x0\n\tTCPOPT_FAST_OPEN               = 0x22\n\tTCPOPT_MAXSEG                  = 0x2\n\tTCPOPT_NOP                     = 0x1\n\tTCPOPT_PAD                     = 0x0\n\tTCPOPT_SACK                    = 0x5\n\tTCPOPT_SACK_PERMITTED          = 0x4\n\tTCPOPT_SIGNATURE               = 0x13\n\tTCPOPT_TIMESTAMP               = 0x8\n\tTCPOPT_WINDOW                  = 0x3\n\tTCP_BBR_ACK_COMP_ALG           = 0x448\n\tTCP_BBR_ALGORITHM              = 0x43b\n\tTCP_BBR_DRAIN_INC_EXTRA        = 0x43c\n\tTCP_BBR_DRAIN_PG               = 0x42e\n\tTCP_BBR_EXTRA_GAIN             = 0x449\n\tTCP_BBR_EXTRA_STATE            = 0x453\n\tTCP_BBR_FLOOR_MIN_TSO          = 0x454\n\tTCP_BBR_HDWR_PACE              = 0x451\n\tTCP_BBR_HOLD_TARGET            = 0x436\n\tTCP_BBR_IWINTSO                = 0x42b\n\tTCP_BBR_LOWGAIN_FD             = 0x436\n\tTCP_BBR_LOWGAIN_HALF           = 0x435\n\tTCP_BBR_LOWGAIN_THRESH         = 0x434\n\tTCP_BBR_MAX_RTO                = 0x439\n\tTCP_BBR_MIN_RTO                = 0x438\n\tTCP_BBR_MIN_TOPACEOUT          = 0x455\n\tTCP_BBR_ONE_RETRAN             = 0x431\n\tTCP_BBR_PACE_CROSS             = 0x442\n\tTCP_BBR_PACE_DEL_TAR           = 0x43f\n\tTCP_BBR_PACE_OH                = 0x435\n\tTCP_BBR_PACE_PER_SEC           = 0x43e\n\tTCP_BBR_PACE_SEG_MAX           = 0x440\n\tTCP_BBR_PACE_SEG_MIN           = 0x441\n\tTCP_BBR_POLICER_DETECT         = 0x457\n\tTCP_BBR_PROBE_RTT_GAIN         = 0x44d\n\tTCP_BBR_PROBE_RTT_INT          = 0x430\n\tTCP_BBR_PROBE_RTT_LEN          = 0x44e\n\tTCP_BBR_RACK_RTT_USE           = 0x44a\n\tTCP_BBR_RECFORCE               = 0x42c\n\tTCP_BBR_REC_OVER_HPTS          = 0x43a\n\tTCP_BBR_RETRAN_WTSO            = 0x44b\n\tTCP_BBR_RWND_IS_APP            = 0x42f\n\tTCP_BBR_SEND_IWND_IN_TSO       = 0x44f\n\tTCP_BBR_STARTUP_EXIT_EPOCH     = 0x43d\n\tTCP_BBR_STARTUP_LOSS_EXIT      = 0x432\n\tTCP_BBR_STARTUP_PG             = 0x42d\n\tTCP_BBR_TMR_PACE_OH            = 0x448\n\tTCP_BBR_TSLIMITS               = 0x434\n\tTCP_BBR_TSTMP_RAISES           = 0x456\n\tTCP_BBR_UNLIMITED              = 0x43b\n\tTCP_BBR_USEDEL_RATE            = 0x437\n\tTCP_BBR_USE_LOWGAIN            = 0x433\n\tTCP_BBR_USE_RACK_CHEAT         = 0x450\n\tTCP_BBR_UTTER_MAX_TSO          = 0x452\n\tTCP_CA_NAME_MAX                = 0x10\n\tTCP_CCALGOOPT                  = 0x41\n\tTCP_CONGESTION                 = 0x40\n\tTCP_DATA_AFTER_CLOSE           = 0x44c\n\tTCP_DELACK                     = 0x48\n\tTCP_FASTOPEN                   = 0x401\n\tTCP_FASTOPEN_MAX_COOKIE_LEN    = 0x10\n\tTCP_FASTOPEN_MIN_COOKIE_LEN    = 0x4\n\tTCP_FASTOPEN_PSK_LEN           = 0x10\n\tTCP_FUNCTION_BLK               = 0x2000\n\tTCP_FUNCTION_NAME_LEN_MAX      = 0x20\n\tTCP_INFO                       = 0x20\n\tTCP_KEEPCNT                    = 0x400\n\tTCP_KEEPIDLE                   = 0x100\n\tTCP_KEEPINIT                   = 0x80\n\tTCP_KEEPINTVL                  = 0x200\n\tTCP_LOG                        = 0x22\n\tTCP_LOGBUF                     = 0x23\n\tTCP_LOGDUMP                    = 0x25\n\tTCP_LOGDUMPID                  = 0x26\n\tTCP_LOGID                      = 0x24\n\tTCP_LOG_ID_LEN                 = 0x40\n\tTCP_MAXBURST                   = 0x4\n\tTCP_MAXHLEN                    = 0x3c\n\tTCP_MAXOLEN                    = 0x28\n\tTCP_MAXSEG                     = 0x2\n\tTCP_MAXWIN                     = 0xffff\n\tTCP_MAX_SACK                   = 0x4\n\tTCP_MAX_WINSHIFT               = 0xe\n\tTCP_MD5SIG                     = 0x10\n\tTCP_MINMSS                     = 0xd8\n\tTCP_MSS                        = 0x218\n\tTCP_NODELAY                    = 0x1\n\tTCP_NOOPT                      = 0x8\n\tTCP_NOPUSH                     = 0x4\n\tTCP_PCAP_IN                    = 0x1000\n\tTCP_PCAP_OUT                   = 0x800\n\tTCP_RACK_EARLY_RECOV           = 0x423\n\tTCP_RACK_EARLY_SEG             = 0x424\n\tTCP_RACK_GP_INCREASE           = 0x446\n\tTCP_RACK_IDLE_REDUCE_HIGH      = 0x444\n\tTCP_RACK_MIN_PACE              = 0x445\n\tTCP_RACK_MIN_PACE_SEG          = 0x446\n\tTCP_RACK_MIN_TO                = 0x422\n\tTCP_RACK_PACE_ALWAYS           = 0x41f\n\tTCP_RACK_PACE_MAX_SEG          = 0x41e\n\tTCP_RACK_PACE_REDUCE           = 0x41d\n\tTCP_RACK_PKT_DELAY             = 0x428\n\tTCP_RACK_PROP                  = 0x41b\n\tTCP_RACK_PROP_RATE             = 0x420\n\tTCP_RACK_PRR_SENDALOT          = 0x421\n\tTCP_RACK_REORD_FADE            = 0x426\n\tTCP_RACK_REORD_THRESH          = 0x425\n\tTCP_RACK_TLP_INC_VAR           = 0x429\n\tTCP_RACK_TLP_REDUCE            = 0x41c\n\tTCP_RACK_TLP_THRESH            = 0x427\n\tTCP_RACK_TLP_USE               = 0x447\n\tTCP_VENDOR                     = 0x80000000\n\tTCSAFLUSH                      = 0x2\n\tTIMER_ABSTIME                  = 0x1\n\tTIMER_RELTIME                  = 0x0\n\tTIOCCBRK                       = 0x2000747a\n\tTIOCCDTR                       = 0x20007478\n\tTIOCCONS                       = 0x80047462\n\tTIOCDRAIN                      = 0x2000745e\n\tTIOCEXCL                       = 0x2000740d\n\tTIOCEXT                        = 0x80047460\n\tTIOCFLUSH                      = 0x80047410\n\tTIOCGDRAINWAIT                 = 0x40047456\n\tTIOCGETA                       = 0x402c7413\n\tTIOCGETD                       = 0x4004741a\n\tTIOCGPGRP                      = 0x40047477\n\tTIOCGPTN                       = 0x4004740f\n\tTIOCGSID                       = 0x40047463\n\tTIOCGWINSZ                     = 0x40087468\n\tTIOCMBIC                       = 0x8004746b\n\tTIOCMBIS                       = 0x8004746c\n\tTIOCMGDTRWAIT                  = 0x4004745a\n\tTIOCMGET                       = 0x4004746a\n\tTIOCMSDTRWAIT                  = 0x8004745b\n\tTIOCMSET                       = 0x8004746d\n\tTIOCM_CAR                      = 0x40\n\tTIOCM_CD                       = 0x40\n\tTIOCM_CTS                      = 0x20\n\tTIOCM_DCD                      = 0x40\n\tTIOCM_DSR                      = 0x100\n\tTIOCM_DTR                      = 0x2\n\tTIOCM_LE                       = 0x1\n\tTIOCM_RI                       = 0x80\n\tTIOCM_RNG                      = 0x80\n\tTIOCM_RTS                      = 0x4\n\tTIOCM_SR                       = 0x10\n\tTIOCM_ST                       = 0x8\n\tTIOCNOTTY                      = 0x20007471\n\tTIOCNXCL                       = 0x2000740e\n\tTIOCOUTQ                       = 0x40047473\n\tTIOCPKT                        = 0x80047470\n\tTIOCPKT_DATA                   = 0x0\n\tTIOCPKT_DOSTOP                 = 0x20\n\tTIOCPKT_FLUSHREAD              = 0x1\n\tTIOCPKT_FLUSHWRITE             = 0x2\n\tTIOCPKT_IOCTL                  = 0x40\n\tTIOCPKT_NOSTOP                 = 0x10\n\tTIOCPKT_START                  = 0x8\n\tTIOCPKT_STOP                   = 0x4\n\tTIOCPTMASTER                   = 0x2000741c\n\tTIOCSBRK                       = 0x2000747b\n\tTIOCSCTTY                      = 0x20007461\n\tTIOCSDRAINWAIT                 = 0x80047457\n\tTIOCSDTR                       = 0x20007479\n\tTIOCSETA                       = 0x802c7414\n\tTIOCSETAF                      = 0x802c7416\n\tTIOCSETAW                      = 0x802c7415\n\tTIOCSETD                       = 0x8004741b\n\tTIOCSIG                        = 0x2004745f\n\tTIOCSPGRP                      = 0x80047476\n\tTIOCSTART                      = 0x2000746e\n\tTIOCSTAT                       = 0x20007465\n\tTIOCSTI                        = 0x80017472\n\tTIOCSTOP                       = 0x2000746f\n\tTIOCSWINSZ                     = 0x80087467\n\tTIOCTIMESTAMP                  = 0x40107459\n\tTIOCUCNTL                      = 0x80047466\n\tTOSTOP                         = 0x400000\n\tUTIME_NOW                      = -0x1\n\tUTIME_OMIT                     = -0x2\n\tVDISCARD                       = 0xf\n\tVDSUSP                         = 0xb\n\tVEOF                           = 0x0\n\tVEOL                           = 0x1\n\tVEOL2                          = 0x2\n\tVERASE                         = 0x3\n\tVERASE2                        = 0x7\n\tVINTR                          = 0x8\n\tVKILL                          = 0x5\n\tVLNEXT                         = 0xe\n\tVMIN                           = 0x10\n\tVQUIT                          = 0x9\n\tVREPRINT                       = 0x6\n\tVSTART                         = 0xc\n\tVSTATUS                        = 0x12\n\tVSTOP                          = 0xd\n\tVSUSP                          = 0xa\n\tVTIME                          = 0x11\n\tVWERASE                        = 0x4\n\tWCONTINUED                     = 0x4\n\tWCOREFLAG                      = 0x80\n\tWEXITED                        = 0x10\n\tWLINUXCLONE                    = 0x80000000\n\tWNOHANG                        = 0x1\n\tWNOWAIT                        = 0x8\n\tWSTOPPED                       = 0x2\n\tWTRAPPED                       = 0x20\n\tWUNTRACED                      = 0x2\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x59)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x55)\n\tECAPMODE        = syscall.Errno(0x5e)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDOOFUS         = syscall.Errno(0x58)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x52)\n\tEILSEQ          = syscall.Errno(0x56)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTEGRITY      = syscall.Errno(0x61)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x61)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5a)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x57)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x5b)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x53)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCAPABLE     = syscall.Errno(0x5d)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x5f)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x2d)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEOWNERDEAD      = syscall.Errno(0x60)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5c)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGLIBRT  = syscall.Signal(0x21)\n\tSIGLWP    = syscall.Signal(0x20)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EWOULDBLOCK\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIDRM\", \"identifier removed\"},\n\t{83, \"ENOMSG\", \"no message of desired type\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"ECANCELED\", \"operation canceled\"},\n\t{86, \"EILSEQ\", \"illegal byte sequence\"},\n\t{87, \"ENOATTR\", \"attribute not found\"},\n\t{88, \"EDOOFUS\", \"programming error\"},\n\t{89, \"EBADMSG\", \"bad message\"},\n\t{90, \"EMULTIHOP\", \"multihop attempted\"},\n\t{91, \"ENOLINK\", \"link has been severed\"},\n\t{92, \"EPROTO\", \"protocol error\"},\n\t{93, \"ENOTCAPABLE\", \"capabilities insufficient\"},\n\t{94, \"ECAPMODE\", \"not permitted in capability mode\"},\n\t{95, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{96, \"EOWNERDEAD\", \"previous owner died\"},\n\t{97, \"EINTEGRITY\", \"integrity check failed\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"unknown signal\"},\n\t{33, \"SIGLIBRT\", \"unknown signal\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go",
    "content": "// mkerrors.sh\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm && freebsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                   = 0x10\n\tAF_ARP                         = 0x23\n\tAF_ATM                         = 0x1e\n\tAF_BLUETOOTH                   = 0x24\n\tAF_CCITT                       = 0xa\n\tAF_CHAOS                       = 0x5\n\tAF_CNT                         = 0x15\n\tAF_COIP                        = 0x14\n\tAF_DATAKIT                     = 0x9\n\tAF_DECnet                      = 0xc\n\tAF_DLI                         = 0xd\n\tAF_E164                        = 0x1a\n\tAF_ECMA                        = 0x8\n\tAF_HYLINK                      = 0xf\n\tAF_IEEE80211                   = 0x25\n\tAF_IMPLINK                     = 0x3\n\tAF_INET                        = 0x2\n\tAF_INET6                       = 0x1c\n\tAF_INET6_SDP                   = 0x2a\n\tAF_INET_SDP                    = 0x28\n\tAF_IPX                         = 0x17\n\tAF_ISDN                        = 0x1a\n\tAF_ISO                         = 0x7\n\tAF_LAT                         = 0xe\n\tAF_LINK                        = 0x12\n\tAF_LOCAL                       = 0x1\n\tAF_MAX                         = 0x2a\n\tAF_NATM                        = 0x1d\n\tAF_NETBIOS                     = 0x6\n\tAF_NETGRAPH                    = 0x20\n\tAF_OSI                         = 0x7\n\tAF_PUP                         = 0x4\n\tAF_ROUTE                       = 0x11\n\tAF_SCLUSTER                    = 0x22\n\tAF_SIP                         = 0x18\n\tAF_SLOW                        = 0x21\n\tAF_SNA                         = 0xb\n\tAF_UNIX                        = 0x1\n\tAF_UNSPEC                      = 0x0\n\tAF_VENDOR00                    = 0x27\n\tAF_VENDOR01                    = 0x29\n\tAF_VENDOR02                    = 0x2b\n\tAF_VENDOR03                    = 0x2d\n\tAF_VENDOR04                    = 0x2f\n\tAF_VENDOR05                    = 0x31\n\tAF_VENDOR06                    = 0x33\n\tAF_VENDOR07                    = 0x35\n\tAF_VENDOR08                    = 0x37\n\tAF_VENDOR09                    = 0x39\n\tAF_VENDOR10                    = 0x3b\n\tAF_VENDOR11                    = 0x3d\n\tAF_VENDOR12                    = 0x3f\n\tAF_VENDOR13                    = 0x41\n\tAF_VENDOR14                    = 0x43\n\tAF_VENDOR15                    = 0x45\n\tAF_VENDOR16                    = 0x47\n\tAF_VENDOR17                    = 0x49\n\tAF_VENDOR18                    = 0x4b\n\tAF_VENDOR19                    = 0x4d\n\tAF_VENDOR20                    = 0x4f\n\tAF_VENDOR21                    = 0x51\n\tAF_VENDOR22                    = 0x53\n\tAF_VENDOR23                    = 0x55\n\tAF_VENDOR24                    = 0x57\n\tAF_VENDOR25                    = 0x59\n\tAF_VENDOR26                    = 0x5b\n\tAF_VENDOR27                    = 0x5d\n\tAF_VENDOR28                    = 0x5f\n\tAF_VENDOR29                    = 0x61\n\tAF_VENDOR30                    = 0x63\n\tAF_VENDOR31                    = 0x65\n\tAF_VENDOR32                    = 0x67\n\tAF_VENDOR33                    = 0x69\n\tAF_VENDOR34                    = 0x6b\n\tAF_VENDOR35                    = 0x6d\n\tAF_VENDOR36                    = 0x6f\n\tAF_VENDOR37                    = 0x71\n\tAF_VENDOR38                    = 0x73\n\tAF_VENDOR39                    = 0x75\n\tAF_VENDOR40                    = 0x77\n\tAF_VENDOR41                    = 0x79\n\tAF_VENDOR42                    = 0x7b\n\tAF_VENDOR43                    = 0x7d\n\tAF_VENDOR44                    = 0x7f\n\tAF_VENDOR45                    = 0x81\n\tAF_VENDOR46                    = 0x83\n\tAF_VENDOR47                    = 0x85\n\tALTWERASE                      = 0x200\n\tB0                             = 0x0\n\tB110                           = 0x6e\n\tB115200                        = 0x1c200\n\tB1200                          = 0x4b0\n\tB134                           = 0x86\n\tB14400                         = 0x3840\n\tB150                           = 0x96\n\tB1800                          = 0x708\n\tB19200                         = 0x4b00\n\tB200                           = 0xc8\n\tB230400                        = 0x38400\n\tB2400                          = 0x960\n\tB28800                         = 0x7080\n\tB300                           = 0x12c\n\tB38400                         = 0x9600\n\tB460800                        = 0x70800\n\tB4800                          = 0x12c0\n\tB50                            = 0x32\n\tB57600                         = 0xe100\n\tB600                           = 0x258\n\tB7200                          = 0x1c20\n\tB75                            = 0x4b\n\tB76800                         = 0x12c00\n\tB921600                        = 0xe1000\n\tB9600                          = 0x2580\n\tBIOCFEEDBACK                   = 0x8004427c\n\tBIOCFLUSH                      = 0x20004268\n\tBIOCGBLEN                      = 0x40044266\n\tBIOCGDIRECTION                 = 0x40044276\n\tBIOCGDLT                       = 0x4004426a\n\tBIOCGDLTLIST                   = 0xc0084279\n\tBIOCGETBUFMODE                 = 0x4004427d\n\tBIOCGETIF                      = 0x4020426b\n\tBIOCGETZMAX                    = 0x4004427f\n\tBIOCGHDRCMPLT                  = 0x40044274\n\tBIOCGRSIG                      = 0x40044272\n\tBIOCGRTIMEOUT                  = 0x4010426e\n\tBIOCGSEESENT                   = 0x40044276\n\tBIOCGSTATS                     = 0x4008426f\n\tBIOCGTSTAMP                    = 0x40044283\n\tBIOCIMMEDIATE                  = 0x80044270\n\tBIOCLOCK                       = 0x2000427a\n\tBIOCPROMISC                    = 0x20004269\n\tBIOCROTZBUF                    = 0x400c4280\n\tBIOCSBLEN                      = 0xc0044266\n\tBIOCSDIRECTION                 = 0x80044277\n\tBIOCSDLT                       = 0x80044278\n\tBIOCSETBUFMODE                 = 0x8004427e\n\tBIOCSETF                       = 0x80084267\n\tBIOCSETFNR                     = 0x80084282\n\tBIOCSETIF                      = 0x8020426c\n\tBIOCSETVLANPCP                 = 0x80044285\n\tBIOCSETWF                      = 0x8008427b\n\tBIOCSETZBUF                    = 0x800c4281\n\tBIOCSHDRCMPLT                  = 0x80044275\n\tBIOCSRSIG                      = 0x80044273\n\tBIOCSRTIMEOUT                  = 0x8010426d\n\tBIOCSSEESENT                   = 0x80044277\n\tBIOCSTSTAMP                    = 0x80044284\n\tBIOCVERSION                    = 0x40044271\n\tBPF_A                          = 0x10\n\tBPF_ABS                        = 0x20\n\tBPF_ADD                        = 0x0\n\tBPF_ALIGNMENT                  = 0x4\n\tBPF_ALU                        = 0x4\n\tBPF_AND                        = 0x50\n\tBPF_B                          = 0x10\n\tBPF_BUFMODE_BUFFER             = 0x1\n\tBPF_BUFMODE_ZBUF               = 0x2\n\tBPF_DIV                        = 0x30\n\tBPF_H                          = 0x8\n\tBPF_IMM                        = 0x0\n\tBPF_IND                        = 0x40\n\tBPF_JA                         = 0x0\n\tBPF_JEQ                        = 0x10\n\tBPF_JGE                        = 0x30\n\tBPF_JGT                        = 0x20\n\tBPF_JMP                        = 0x5\n\tBPF_JSET                       = 0x40\n\tBPF_K                          = 0x0\n\tBPF_LD                         = 0x0\n\tBPF_LDX                        = 0x1\n\tBPF_LEN                        = 0x80\n\tBPF_LSH                        = 0x60\n\tBPF_MAJOR_VERSION              = 0x1\n\tBPF_MAXBUFSIZE                 = 0x80000\n\tBPF_MAXINSNS                   = 0x200\n\tBPF_MEM                        = 0x60\n\tBPF_MEMWORDS                   = 0x10\n\tBPF_MINBUFSIZE                 = 0x20\n\tBPF_MINOR_VERSION              = 0x1\n\tBPF_MISC                       = 0x7\n\tBPF_MOD                        = 0x90\n\tBPF_MSH                        = 0xa0\n\tBPF_MUL                        = 0x20\n\tBPF_NEG                        = 0x80\n\tBPF_OR                         = 0x40\n\tBPF_RELEASE                    = 0x30bb6\n\tBPF_RET                        = 0x6\n\tBPF_RSH                        = 0x70\n\tBPF_ST                         = 0x2\n\tBPF_STX                        = 0x3\n\tBPF_SUB                        = 0x10\n\tBPF_TAX                        = 0x0\n\tBPF_TXA                        = 0x80\n\tBPF_T_BINTIME                  = 0x2\n\tBPF_T_BINTIME_FAST             = 0x102\n\tBPF_T_BINTIME_MONOTONIC        = 0x202\n\tBPF_T_BINTIME_MONOTONIC_FAST   = 0x302\n\tBPF_T_FAST                     = 0x100\n\tBPF_T_FLAG_MASK                = 0x300\n\tBPF_T_FORMAT_MASK              = 0x3\n\tBPF_T_MICROTIME                = 0x0\n\tBPF_T_MICROTIME_FAST           = 0x100\n\tBPF_T_MICROTIME_MONOTONIC      = 0x200\n\tBPF_T_MICROTIME_MONOTONIC_FAST = 0x300\n\tBPF_T_MONOTONIC                = 0x200\n\tBPF_T_MONOTONIC_FAST           = 0x300\n\tBPF_T_NANOTIME                 = 0x1\n\tBPF_T_NANOTIME_FAST            = 0x101\n\tBPF_T_NANOTIME_MONOTONIC       = 0x201\n\tBPF_T_NANOTIME_MONOTONIC_FAST  = 0x301\n\tBPF_T_NONE                     = 0x3\n\tBPF_T_NORMAL                   = 0x0\n\tBPF_W                          = 0x0\n\tBPF_X                          = 0x8\n\tBPF_XOR                        = 0xa0\n\tBRKINT                         = 0x2\n\tCAP_ACCEPT                     = 0x200000020000000\n\tCAP_ACL_CHECK                  = 0x400000000010000\n\tCAP_ACL_DELETE                 = 0x400000000020000\n\tCAP_ACL_GET                    = 0x400000000040000\n\tCAP_ACL_SET                    = 0x400000000080000\n\tCAP_ALL0                       = 0x20007ffffffffff\n\tCAP_ALL1                       = 0x4000000001fffff\n\tCAP_BIND                       = 0x200000040000000\n\tCAP_BINDAT                     = 0x200008000000400\n\tCAP_CHFLAGSAT                  = 0x200000000001400\n\tCAP_CONNECT                    = 0x200000080000000\n\tCAP_CONNECTAT                  = 0x200010000000400\n\tCAP_CREATE                     = 0x200000000000040\n\tCAP_EVENT                      = 0x400000000000020\n\tCAP_EXTATTR_DELETE             = 0x400000000001000\n\tCAP_EXTATTR_GET                = 0x400000000002000\n\tCAP_EXTATTR_LIST               = 0x400000000004000\n\tCAP_EXTATTR_SET                = 0x400000000008000\n\tCAP_FCHDIR                     = 0x200000000000800\n\tCAP_FCHFLAGS                   = 0x200000000001000\n\tCAP_FCHMOD                     = 0x200000000002000\n\tCAP_FCHMODAT                   = 0x200000000002400\n\tCAP_FCHOWN                     = 0x200000000004000\n\tCAP_FCHOWNAT                   = 0x200000000004400\n\tCAP_FCNTL                      = 0x200000000008000\n\tCAP_FCNTL_ALL                  = 0x78\n\tCAP_FCNTL_GETFL                = 0x8\n\tCAP_FCNTL_GETOWN               = 0x20\n\tCAP_FCNTL_SETFL                = 0x10\n\tCAP_FCNTL_SETOWN               = 0x40\n\tCAP_FEXECVE                    = 0x200000000000080\n\tCAP_FLOCK                      = 0x200000000010000\n\tCAP_FPATHCONF                  = 0x200000000020000\n\tCAP_FSCK                       = 0x200000000040000\n\tCAP_FSTAT                      = 0x200000000080000\n\tCAP_FSTATAT                    = 0x200000000080400\n\tCAP_FSTATFS                    = 0x200000000100000\n\tCAP_FSYNC                      = 0x200000000000100\n\tCAP_FTRUNCATE                  = 0x200000000000200\n\tCAP_FUTIMES                    = 0x200000000200000\n\tCAP_FUTIMESAT                  = 0x200000000200400\n\tCAP_GETPEERNAME                = 0x200000100000000\n\tCAP_GETSOCKNAME                = 0x200000200000000\n\tCAP_GETSOCKOPT                 = 0x200000400000000\n\tCAP_IOCTL                      = 0x400000000000080\n\tCAP_IOCTLS_ALL                 = 0x7fffffff\n\tCAP_KQUEUE                     = 0x400000000100040\n\tCAP_KQUEUE_CHANGE              = 0x400000000100000\n\tCAP_KQUEUE_EVENT               = 0x400000000000040\n\tCAP_LINKAT_SOURCE              = 0x200020000000400\n\tCAP_LINKAT_TARGET              = 0x200000000400400\n\tCAP_LISTEN                     = 0x200000800000000\n\tCAP_LOOKUP                     = 0x200000000000400\n\tCAP_MAC_GET                    = 0x400000000000001\n\tCAP_MAC_SET                    = 0x400000000000002\n\tCAP_MKDIRAT                    = 0x200000000800400\n\tCAP_MKFIFOAT                   = 0x200000001000400\n\tCAP_MKNODAT                    = 0x200000002000400\n\tCAP_MMAP                       = 0x200000000000010\n\tCAP_MMAP_R                     = 0x20000000000001d\n\tCAP_MMAP_RW                    = 0x20000000000001f\n\tCAP_MMAP_RWX                   = 0x20000000000003f\n\tCAP_MMAP_RX                    = 0x20000000000003d\n\tCAP_MMAP_W                     = 0x20000000000001e\n\tCAP_MMAP_WX                    = 0x20000000000003e\n\tCAP_MMAP_X                     = 0x20000000000003c\n\tCAP_PDGETPID                   = 0x400000000000200\n\tCAP_PDKILL                     = 0x400000000000800\n\tCAP_PDWAIT                     = 0x400000000000400\n\tCAP_PEELOFF                    = 0x200001000000000\n\tCAP_POLL_EVENT                 = 0x400000000000020\n\tCAP_PREAD                      = 0x20000000000000d\n\tCAP_PWRITE                     = 0x20000000000000e\n\tCAP_READ                       = 0x200000000000001\n\tCAP_RECV                       = 0x200000000000001\n\tCAP_RENAMEAT_SOURCE            = 0x200000004000400\n\tCAP_RENAMEAT_TARGET            = 0x200040000000400\n\tCAP_RIGHTS_VERSION             = 0x0\n\tCAP_RIGHTS_VERSION_00          = 0x0\n\tCAP_SEEK                       = 0x20000000000000c\n\tCAP_SEEK_TELL                  = 0x200000000000004\n\tCAP_SEM_GETVALUE               = 0x400000000000004\n\tCAP_SEM_POST                   = 0x400000000000008\n\tCAP_SEM_WAIT                   = 0x400000000000010\n\tCAP_SEND                       = 0x200000000000002\n\tCAP_SETSOCKOPT                 = 0x200002000000000\n\tCAP_SHUTDOWN                   = 0x200004000000000\n\tCAP_SOCK_CLIENT                = 0x200007780000003\n\tCAP_SOCK_SERVER                = 0x200007f60000003\n\tCAP_SYMLINKAT                  = 0x200000008000400\n\tCAP_TTYHOOK                    = 0x400000000000100\n\tCAP_UNLINKAT                   = 0x200000010000400\n\tCAP_UNUSED0_44                 = 0x200080000000000\n\tCAP_UNUSED0_57                 = 0x300000000000000\n\tCAP_UNUSED1_22                 = 0x400000000200000\n\tCAP_UNUSED1_57                 = 0x500000000000000\n\tCAP_WRITE                      = 0x200000000000002\n\tCFLUSH                         = 0xf\n\tCLOCAL                         = 0x8000\n\tCLOCK_MONOTONIC                = 0x4\n\tCLOCK_MONOTONIC_FAST           = 0xc\n\tCLOCK_MONOTONIC_PRECISE        = 0xb\n\tCLOCK_PROCESS_CPUTIME_ID       = 0xf\n\tCLOCK_PROF                     = 0x2\n\tCLOCK_REALTIME                 = 0x0\n\tCLOCK_REALTIME_FAST            = 0xa\n\tCLOCK_REALTIME_PRECISE         = 0x9\n\tCLOCK_SECOND                   = 0xd\n\tCLOCK_THREAD_CPUTIME_ID        = 0xe\n\tCLOCK_UPTIME                   = 0x5\n\tCLOCK_UPTIME_FAST              = 0x8\n\tCLOCK_UPTIME_PRECISE           = 0x7\n\tCLOCK_VIRTUAL                  = 0x1\n\tCPUSTATES                      = 0x5\n\tCP_IDLE                        = 0x4\n\tCP_INTR                        = 0x3\n\tCP_NICE                        = 0x1\n\tCP_SYS                         = 0x2\n\tCP_USER                        = 0x0\n\tCREAD                          = 0x800\n\tCRTSCTS                        = 0x30000\n\tCS5                            = 0x0\n\tCS6                            = 0x100\n\tCS7                            = 0x200\n\tCS8                            = 0x300\n\tCSIZE                          = 0x300\n\tCSTART                         = 0x11\n\tCSTATUS                        = 0x14\n\tCSTOP                          = 0x13\n\tCSTOPB                         = 0x400\n\tCSUSP                          = 0x1a\n\tCTL_HW                         = 0x6\n\tCTL_KERN                       = 0x1\n\tCTL_MAXNAME                    = 0x18\n\tCTL_NET                        = 0x4\n\tDIOCGATTR                      = 0xc148648e\n\tDIOCGDELETE                    = 0x80106488\n\tDIOCGFLUSH                     = 0x20006487\n\tDIOCGFRONTSTUFF                = 0x40086486\n\tDIOCGFWHEADS                   = 0x40046483\n\tDIOCGFWSECTORS                 = 0x40046482\n\tDIOCGIDENT                     = 0x41006489\n\tDIOCGMEDIASIZE                 = 0x40086481\n\tDIOCGPHYSPATH                  = 0x4400648d\n\tDIOCGPROVIDERNAME              = 0x4400648a\n\tDIOCGSECTORSIZE                = 0x40046480\n\tDIOCGSTRIPEOFFSET              = 0x4008648c\n\tDIOCGSTRIPESIZE                = 0x4008648b\n\tDIOCSKERNELDUMP                = 0x804c6490\n\tDIOCSKERNELDUMP_FREEBSD11      = 0x80046485\n\tDIOCZONECMD                    = 0xc078648f\n\tDLT_A429                       = 0xb8\n\tDLT_A653_ICM                   = 0xb9\n\tDLT_AIRONET_HEADER             = 0x78\n\tDLT_AOS                        = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394     = 0x8a\n\tDLT_ARCNET                     = 0x7\n\tDLT_ARCNET_LINUX               = 0x81\n\tDLT_ATM_CLIP                   = 0x13\n\tDLT_ATM_RFC1483                = 0xb\n\tDLT_AURORA                     = 0x7e\n\tDLT_AX25                       = 0x3\n\tDLT_AX25_KISS                  = 0xca\n\tDLT_BACNET_MS_TP               = 0xa5\n\tDLT_BLUETOOTH_BREDR_BB         = 0xff\n\tDLT_BLUETOOTH_HCI_H4           = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9\n\tDLT_BLUETOOTH_LE_LL            = 0xfb\n\tDLT_BLUETOOTH_LE_LL_WITH_PHDR  = 0x100\n\tDLT_BLUETOOTH_LINUX_MONITOR    = 0xfe\n\tDLT_CAN20B                     = 0xbe\n\tDLT_CAN_SOCKETCAN              = 0xe3\n\tDLT_CHAOS                      = 0x5\n\tDLT_CHDLC                      = 0x68\n\tDLT_CISCO_IOS                  = 0x76\n\tDLT_CLASS_NETBSD_RAWAF         = 0x2240000\n\tDLT_C_HDLC                     = 0x68\n\tDLT_C_HDLC_WITH_DIR            = 0xcd\n\tDLT_DBUS                       = 0xe7\n\tDLT_DECT                       = 0xdd\n\tDLT_DISPLAYPORT_AUX            = 0x113\n\tDLT_DOCSIS                     = 0x8f\n\tDLT_DOCSIS31_XRA31             = 0x111\n\tDLT_DVB_CI                     = 0xeb\n\tDLT_ECONET                     = 0x73\n\tDLT_EN10MB                     = 0x1\n\tDLT_EN3MB                      = 0x2\n\tDLT_ENC                        = 0x6d\n\tDLT_EPON                       = 0x103\n\tDLT_ERF                        = 0xc5\n\tDLT_ERF_ETH                    = 0xaf\n\tDLT_ERF_POS                    = 0xb0\n\tDLT_ETHERNET_MPACKET           = 0x112\n\tDLT_FC_2                       = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS     = 0xe1\n\tDLT_FDDI                       = 0xa\n\tDLT_FLEXRAY                    = 0xd2\n\tDLT_FRELAY                     = 0x6b\n\tDLT_FRELAY_WITH_DIR            = 0xce\n\tDLT_GCOM_SERIAL                = 0xad\n\tDLT_GCOM_T1E1                  = 0xac\n\tDLT_GPF_F                      = 0xab\n\tDLT_GPF_T                      = 0xaa\n\tDLT_GPRS_LLC                   = 0xa9\n\tDLT_GSMTAP_ABIS                = 0xda\n\tDLT_GSMTAP_UM                  = 0xd9\n\tDLT_IBM_SN                     = 0x92\n\tDLT_IBM_SP                     = 0x91\n\tDLT_IEEE802                    = 0x6\n\tDLT_IEEE802_11                 = 0x69\n\tDLT_IEEE802_11_RADIO           = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS       = 0xa3\n\tDLT_IEEE802_15_4               = 0xc3\n\tDLT_IEEE802_15_4_LINUX         = 0xbf\n\tDLT_IEEE802_15_4_NOFCS         = 0xe6\n\tDLT_IEEE802_15_4_NONASK_PHY    = 0xd7\n\tDLT_IEEE802_16_MAC_CPS         = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO   = 0xc1\n\tDLT_INFINIBAND                 = 0xf7\n\tDLT_IPFILTER                   = 0x74\n\tDLT_IPMB_KONTRON               = 0xc7\n\tDLT_IPMB_LINUX                 = 0xd1\n\tDLT_IPMI_HPM_2                 = 0x104\n\tDLT_IPNET                      = 0xe2\n\tDLT_IPOIB                      = 0xf2\n\tDLT_IPV4                       = 0xe4\n\tDLT_IPV6                       = 0xe5\n\tDLT_IP_OVER_FC                 = 0x7a\n\tDLT_ISO_14443                  = 0x108\n\tDLT_JUNIPER_ATM1               = 0x89\n\tDLT_JUNIPER_ATM2               = 0x87\n\tDLT_JUNIPER_ATM_CEMIC          = 0xee\n\tDLT_JUNIPER_CHDLC              = 0xb5\n\tDLT_JUNIPER_ES                 = 0x84\n\tDLT_JUNIPER_ETHER              = 0xb2\n\tDLT_JUNIPER_FIBRECHANNEL       = 0xea\n\tDLT_JUNIPER_FRELAY             = 0xb4\n\tDLT_JUNIPER_GGSN               = 0x85\n\tDLT_JUNIPER_ISM                = 0xc2\n\tDLT_JUNIPER_MFR                = 0x86\n\tDLT_JUNIPER_MLFR               = 0x83\n\tDLT_JUNIPER_MLPPP              = 0x82\n\tDLT_JUNIPER_MONITOR            = 0xa4\n\tDLT_JUNIPER_PIC_PEER           = 0xae\n\tDLT_JUNIPER_PPP                = 0xb3\n\tDLT_JUNIPER_PPPOE              = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM          = 0xa8\n\tDLT_JUNIPER_SERVICES           = 0x88\n\tDLT_JUNIPER_SRX_E2E            = 0xe9\n\tDLT_JUNIPER_ST                 = 0xc8\n\tDLT_JUNIPER_VP                 = 0xb7\n\tDLT_JUNIPER_VS                 = 0xe8\n\tDLT_LAPB_WITH_DIR              = 0xcf\n\tDLT_LAPD                       = 0xcb\n\tDLT_LIN                        = 0xd4\n\tDLT_LINUX_EVDEV                = 0xd8\n\tDLT_LINUX_IRDA                 = 0x90\n\tDLT_LINUX_LAPD                 = 0xb1\n\tDLT_LINUX_PPP_WITHDIRECTION    = 0xa6\n\tDLT_LINUX_SLL                  = 0x71\n\tDLT_LINUX_SLL2                 = 0x114\n\tDLT_LOOP                       = 0x6c\n\tDLT_LORATAP                    = 0x10e\n\tDLT_LTALK                      = 0x72\n\tDLT_MATCHING_MAX               = 0x114\n\tDLT_MATCHING_MIN               = 0x68\n\tDLT_MFR                        = 0xb6\n\tDLT_MOST                       = 0xd3\n\tDLT_MPEG_2_TS                  = 0xf3\n\tDLT_MPLS                       = 0xdb\n\tDLT_MTP2                       = 0x8c\n\tDLT_MTP2_WITH_PHDR             = 0x8b\n\tDLT_MTP3                       = 0x8d\n\tDLT_MUX27010                   = 0xec\n\tDLT_NETANALYZER                = 0xf0\n\tDLT_NETANALYZER_TRANSPARENT    = 0xf1\n\tDLT_NETLINK                    = 0xfd\n\tDLT_NFC_LLCP                   = 0xf5\n\tDLT_NFLOG                      = 0xef\n\tDLT_NG40                       = 0xf4\n\tDLT_NORDIC_BLE                 = 0x110\n\tDLT_NULL                       = 0x0\n\tDLT_OPENFLOW                   = 0x10b\n\tDLT_PCI_EXP                    = 0x7d\n\tDLT_PFLOG                      = 0x75\n\tDLT_PFSYNC                     = 0x79\n\tDLT_PKTAP                      = 0x102\n\tDLT_PPI                        = 0xc0\n\tDLT_PPP                        = 0x9\n\tDLT_PPP_BSDOS                  = 0xe\n\tDLT_PPP_ETHER                  = 0x33\n\tDLT_PPP_PPPD                   = 0xa6\n\tDLT_PPP_SERIAL                 = 0x32\n\tDLT_PPP_WITH_DIR               = 0xcc\n\tDLT_PPP_WITH_DIRECTION         = 0xa6\n\tDLT_PRISM_HEADER               = 0x77\n\tDLT_PROFIBUS_DL                = 0x101\n\tDLT_PRONET                     = 0x4\n\tDLT_RAIF1                      = 0xc6\n\tDLT_RAW                        = 0xc\n\tDLT_RDS                        = 0x109\n\tDLT_REDBACK_SMARTEDGE          = 0x20\n\tDLT_RIO                        = 0x7c\n\tDLT_RTAC_SERIAL                = 0xfa\n\tDLT_SCCP                       = 0x8e\n\tDLT_SCTP                       = 0xf8\n\tDLT_SDLC                       = 0x10c\n\tDLT_SITA                       = 0xc4\n\tDLT_SLIP                       = 0x8\n\tDLT_SLIP_BSDOS                 = 0xd\n\tDLT_STANAG_5066_D_PDU          = 0xed\n\tDLT_SUNATM                     = 0x7b\n\tDLT_SYMANTEC_FIREWALL          = 0x63\n\tDLT_TI_LLN_SNIFFER             = 0x10d\n\tDLT_TZSP                       = 0x80\n\tDLT_USB                        = 0xba\n\tDLT_USBPCAP                    = 0xf9\n\tDLT_USB_DARWIN                 = 0x10a\n\tDLT_USB_FREEBSD                = 0xba\n\tDLT_USB_LINUX                  = 0xbd\n\tDLT_USB_LINUX_MMAPPED          = 0xdc\n\tDLT_USER0                      = 0x93\n\tDLT_USER1                      = 0x94\n\tDLT_USER10                     = 0x9d\n\tDLT_USER11                     = 0x9e\n\tDLT_USER12                     = 0x9f\n\tDLT_USER13                     = 0xa0\n\tDLT_USER14                     = 0xa1\n\tDLT_USER15                     = 0xa2\n\tDLT_USER2                      = 0x95\n\tDLT_USER3                      = 0x96\n\tDLT_USER4                      = 0x97\n\tDLT_USER5                      = 0x98\n\tDLT_USER6                      = 0x99\n\tDLT_USER7                      = 0x9a\n\tDLT_USER8                      = 0x9b\n\tDLT_USER9                      = 0x9c\n\tDLT_VSOCK                      = 0x10f\n\tDLT_WATTSTOPPER_DLM            = 0x107\n\tDLT_WIHART                     = 0xdf\n\tDLT_WIRESHARK_UPPER_PDU        = 0xfc\n\tDLT_X2E_SERIAL                 = 0xd5\n\tDLT_X2E_XORAYA                 = 0xd6\n\tDLT_ZWAVE_R1_R2                = 0x105\n\tDLT_ZWAVE_R3                   = 0x106\n\tDT_BLK                         = 0x6\n\tDT_CHR                         = 0x2\n\tDT_DIR                         = 0x4\n\tDT_FIFO                        = 0x1\n\tDT_LNK                         = 0xa\n\tDT_REG                         = 0x8\n\tDT_SOCK                        = 0xc\n\tDT_UNKNOWN                     = 0x0\n\tDT_WHT                         = 0xe\n\tECHO                           = 0x8\n\tECHOCTL                        = 0x40\n\tECHOE                          = 0x2\n\tECHOK                          = 0x4\n\tECHOKE                         = 0x1\n\tECHONL                         = 0x10\n\tECHOPRT                        = 0x20\n\tEVFILT_AIO                     = -0x3\n\tEVFILT_EMPTY                   = -0xd\n\tEVFILT_FS                      = -0x9\n\tEVFILT_LIO                     = -0xa\n\tEVFILT_PROC                    = -0x5\n\tEVFILT_PROCDESC                = -0x8\n\tEVFILT_READ                    = -0x1\n\tEVFILT_SENDFILE                = -0xc\n\tEVFILT_SIGNAL                  = -0x6\n\tEVFILT_SYSCOUNT                = 0xd\n\tEVFILT_TIMER                   = -0x7\n\tEVFILT_USER                    = -0xb\n\tEVFILT_VNODE                   = -0x4\n\tEVFILT_WRITE                   = -0x2\n\tEVNAMEMAP_NAME_SIZE            = 0x40\n\tEV_ADD                         = 0x1\n\tEV_CLEAR                       = 0x20\n\tEV_DELETE                      = 0x2\n\tEV_DISABLE                     = 0x8\n\tEV_DISPATCH                    = 0x80\n\tEV_DROP                        = 0x1000\n\tEV_ENABLE                      = 0x4\n\tEV_EOF                         = 0x8000\n\tEV_ERROR                       = 0x4000\n\tEV_FLAG1                       = 0x2000\n\tEV_FLAG2                       = 0x4000\n\tEV_FORCEONESHOT                = 0x100\n\tEV_ONESHOT                     = 0x10\n\tEV_RECEIPT                     = 0x40\n\tEV_SYSFLAGS                    = 0xf000\n\tEXTA                           = 0x4b00\n\tEXTATTR_MAXNAMELEN             = 0xff\n\tEXTATTR_NAMESPACE_EMPTY        = 0x0\n\tEXTATTR_NAMESPACE_SYSTEM       = 0x2\n\tEXTATTR_NAMESPACE_USER         = 0x1\n\tEXTB                           = 0x9600\n\tEXTPROC                        = 0x800\n\tFD_CLOEXEC                     = 0x1\n\tFD_SETSIZE                     = 0x400\n\tFLUSHO                         = 0x800000\n\tF_CANCEL                       = 0x5\n\tF_DUP2FD                       = 0xa\n\tF_DUP2FD_CLOEXEC               = 0x12\n\tF_DUPFD                        = 0x0\n\tF_DUPFD_CLOEXEC                = 0x11\n\tF_GETFD                        = 0x1\n\tF_GETFL                        = 0x3\n\tF_GETLK                        = 0xb\n\tF_GETOWN                       = 0x5\n\tF_OGETLK                       = 0x7\n\tF_OK                           = 0x0\n\tF_OSETLK                       = 0x8\n\tF_OSETLKW                      = 0x9\n\tF_RDAHEAD                      = 0x10\n\tF_RDLCK                        = 0x1\n\tF_READAHEAD                    = 0xf\n\tF_SETFD                        = 0x2\n\tF_SETFL                        = 0x4\n\tF_SETLK                        = 0xc\n\tF_SETLKW                       = 0xd\n\tF_SETLK_REMOTE                 = 0xe\n\tF_SETOWN                       = 0x6\n\tF_UNLCK                        = 0x2\n\tF_UNLCKSYS                     = 0x4\n\tF_WRLCK                        = 0x3\n\tHUPCL                          = 0x4000\n\tHW_MACHINE                     = 0x1\n\tICANON                         = 0x100\n\tICMP6_FILTER                   = 0x12\n\tICRNL                          = 0x100\n\tIEXTEN                         = 0x400\n\tIFAN_ARRIVAL                   = 0x0\n\tIFAN_DEPARTURE                 = 0x1\n\tIFCAP_WOL_MAGIC                = 0x2000\n\tIFF_ALLMULTI                   = 0x200\n\tIFF_ALTPHYS                    = 0x4000\n\tIFF_BROADCAST                  = 0x2\n\tIFF_CANTCHANGE                 = 0x218f52\n\tIFF_CANTCONFIG                 = 0x10000\n\tIFF_DEBUG                      = 0x4\n\tIFF_DRV_OACTIVE                = 0x400\n\tIFF_DRV_RUNNING                = 0x40\n\tIFF_DYING                      = 0x200000\n\tIFF_LINK0                      = 0x1000\n\tIFF_LINK1                      = 0x2000\n\tIFF_LINK2                      = 0x4000\n\tIFF_LOOPBACK                   = 0x8\n\tIFF_MONITOR                    = 0x40000\n\tIFF_MULTICAST                  = 0x8000\n\tIFF_NOARP                      = 0x80\n\tIFF_NOGROUP                    = 0x800000\n\tIFF_OACTIVE                    = 0x400\n\tIFF_POINTOPOINT                = 0x10\n\tIFF_PPROMISC                   = 0x20000\n\tIFF_PROMISC                    = 0x100\n\tIFF_RENAMING                   = 0x400000\n\tIFF_RUNNING                    = 0x40\n\tIFF_SIMPLEX                    = 0x800\n\tIFF_STATICARP                  = 0x80000\n\tIFF_UP                         = 0x1\n\tIFNAMSIZ                       = 0x10\n\tIFT_BRIDGE                     = 0xd1\n\tIFT_CARP                       = 0xf8\n\tIFT_IEEE1394                   = 0x90\n\tIFT_INFINIBAND                 = 0xc7\n\tIFT_L2VLAN                     = 0x87\n\tIFT_L3IPVLAN                   = 0x88\n\tIFT_PPP                        = 0x17\n\tIFT_PROPVIRTUAL                = 0x35\n\tIGNBRK                         = 0x1\n\tIGNCR                          = 0x80\n\tIGNPAR                         = 0x4\n\tIMAXBEL                        = 0x2000\n\tINLCR                          = 0x40\n\tINPCK                          = 0x10\n\tIN_CLASSA_HOST                 = 0xffffff\n\tIN_CLASSA_MAX                  = 0x80\n\tIN_CLASSA_NET                  = 0xff000000\n\tIN_CLASSA_NSHIFT               = 0x18\n\tIN_CLASSB_HOST                 = 0xffff\n\tIN_CLASSB_MAX                  = 0x10000\n\tIN_CLASSB_NET                  = 0xffff0000\n\tIN_CLASSB_NSHIFT               = 0x10\n\tIN_CLASSC_HOST                 = 0xff\n\tIN_CLASSC_NET                  = 0xffffff00\n\tIN_CLASSC_NSHIFT               = 0x8\n\tIN_CLASSD_HOST                 = 0xfffffff\n\tIN_CLASSD_NET                  = 0xf0000000\n\tIN_CLASSD_NSHIFT               = 0x1c\n\tIN_LOOPBACKNET                 = 0x7f\n\tIN_RFC3021_MASK                = 0xfffffffe\n\tIPPROTO_3PC                    = 0x22\n\tIPPROTO_ADFS                   = 0x44\n\tIPPROTO_AH                     = 0x33\n\tIPPROTO_AHIP                   = 0x3d\n\tIPPROTO_APES                   = 0x63\n\tIPPROTO_ARGUS                  = 0xd\n\tIPPROTO_AX25                   = 0x5d\n\tIPPROTO_BHA                    = 0x31\n\tIPPROTO_BLT                    = 0x1e\n\tIPPROTO_BRSATMON               = 0x4c\n\tIPPROTO_CARP                   = 0x70\n\tIPPROTO_CFTP                   = 0x3e\n\tIPPROTO_CHAOS                  = 0x10\n\tIPPROTO_CMTP                   = 0x26\n\tIPPROTO_CPHB                   = 0x49\n\tIPPROTO_CPNX                   = 0x48\n\tIPPROTO_DCCP                   = 0x21\n\tIPPROTO_DDP                    = 0x25\n\tIPPROTO_DGP                    = 0x56\n\tIPPROTO_DIVERT                 = 0x102\n\tIPPROTO_DONE                   = 0x101\n\tIPPROTO_DSTOPTS                = 0x3c\n\tIPPROTO_EGP                    = 0x8\n\tIPPROTO_EMCON                  = 0xe\n\tIPPROTO_ENCAP                  = 0x62\n\tIPPROTO_EON                    = 0x50\n\tIPPROTO_ESP                    = 0x32\n\tIPPROTO_ETHERIP                = 0x61\n\tIPPROTO_FRAGMENT               = 0x2c\n\tIPPROTO_GGP                    = 0x3\n\tIPPROTO_GMTP                   = 0x64\n\tIPPROTO_GRE                    = 0x2f\n\tIPPROTO_HELLO                  = 0x3f\n\tIPPROTO_HIP                    = 0x8b\n\tIPPROTO_HMP                    = 0x14\n\tIPPROTO_HOPOPTS                = 0x0\n\tIPPROTO_ICMP                   = 0x1\n\tIPPROTO_ICMPV6                 = 0x3a\n\tIPPROTO_IDP                    = 0x16\n\tIPPROTO_IDPR                   = 0x23\n\tIPPROTO_IDRP                   = 0x2d\n\tIPPROTO_IGMP                   = 0x2\n\tIPPROTO_IGP                    = 0x55\n\tIPPROTO_IGRP                   = 0x58\n\tIPPROTO_IL                     = 0x28\n\tIPPROTO_INLSP                  = 0x34\n\tIPPROTO_INP                    = 0x20\n\tIPPROTO_IP                     = 0x0\n\tIPPROTO_IPCOMP                 = 0x6c\n\tIPPROTO_IPCV                   = 0x47\n\tIPPROTO_IPEIP                  = 0x5e\n\tIPPROTO_IPIP                   = 0x4\n\tIPPROTO_IPPC                   = 0x43\n\tIPPROTO_IPV4                   = 0x4\n\tIPPROTO_IPV6                   = 0x29\n\tIPPROTO_IRTP                   = 0x1c\n\tIPPROTO_KRYPTOLAN              = 0x41\n\tIPPROTO_LARP                   = 0x5b\n\tIPPROTO_LEAF1                  = 0x19\n\tIPPROTO_LEAF2                  = 0x1a\n\tIPPROTO_MAX                    = 0x100\n\tIPPROTO_MEAS                   = 0x13\n\tIPPROTO_MH                     = 0x87\n\tIPPROTO_MHRP                   = 0x30\n\tIPPROTO_MICP                   = 0x5f\n\tIPPROTO_MOBILE                 = 0x37\n\tIPPROTO_MPLS                   = 0x89\n\tIPPROTO_MTP                    = 0x5c\n\tIPPROTO_MUX                    = 0x12\n\tIPPROTO_ND                     = 0x4d\n\tIPPROTO_NHRP                   = 0x36\n\tIPPROTO_NONE                   = 0x3b\n\tIPPROTO_NSP                    = 0x1f\n\tIPPROTO_NVPII                  = 0xb\n\tIPPROTO_OLD_DIVERT             = 0xfe\n\tIPPROTO_OSPFIGP                = 0x59\n\tIPPROTO_PFSYNC                 = 0xf0\n\tIPPROTO_PGM                    = 0x71\n\tIPPROTO_PIGP                   = 0x9\n\tIPPROTO_PIM                    = 0x67\n\tIPPROTO_PRM                    = 0x15\n\tIPPROTO_PUP                    = 0xc\n\tIPPROTO_PVP                    = 0x4b\n\tIPPROTO_RAW                    = 0xff\n\tIPPROTO_RCCMON                 = 0xa\n\tIPPROTO_RDP                    = 0x1b\n\tIPPROTO_RESERVED_253           = 0xfd\n\tIPPROTO_RESERVED_254           = 0xfe\n\tIPPROTO_ROUTING                = 0x2b\n\tIPPROTO_RSVP                   = 0x2e\n\tIPPROTO_RVD                    = 0x42\n\tIPPROTO_SATEXPAK               = 0x40\n\tIPPROTO_SATMON                 = 0x45\n\tIPPROTO_SCCSP                  = 0x60\n\tIPPROTO_SCTP                   = 0x84\n\tIPPROTO_SDRP                   = 0x2a\n\tIPPROTO_SEND                   = 0x103\n\tIPPROTO_SHIM6                  = 0x8c\n\tIPPROTO_SKIP                   = 0x39\n\tIPPROTO_SPACER                 = 0x7fff\n\tIPPROTO_SRPC                   = 0x5a\n\tIPPROTO_ST                     = 0x7\n\tIPPROTO_SVMTP                  = 0x52\n\tIPPROTO_SWIPE                  = 0x35\n\tIPPROTO_TCF                    = 0x57\n\tIPPROTO_TCP                    = 0x6\n\tIPPROTO_TLSP                   = 0x38\n\tIPPROTO_TP                     = 0x1d\n\tIPPROTO_TPXX                   = 0x27\n\tIPPROTO_TRUNK1                 = 0x17\n\tIPPROTO_TRUNK2                 = 0x18\n\tIPPROTO_TTP                    = 0x54\n\tIPPROTO_UDP                    = 0x11\n\tIPPROTO_UDPLITE                = 0x88\n\tIPPROTO_VINES                  = 0x53\n\tIPPROTO_VISA                   = 0x46\n\tIPPROTO_VMTP                   = 0x51\n\tIPPROTO_WBEXPAK                = 0x4f\n\tIPPROTO_WBMON                  = 0x4e\n\tIPPROTO_WSN                    = 0x4a\n\tIPPROTO_XNET                   = 0xf\n\tIPPROTO_XTP                    = 0x24\n\tIPV6_AUTOFLOWLABEL             = 0x3b\n\tIPV6_BINDANY                   = 0x40\n\tIPV6_BINDMULTI                 = 0x41\n\tIPV6_BINDV6ONLY                = 0x1b\n\tIPV6_CHECKSUM                  = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS    = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP    = 0x1\n\tIPV6_DEFHLIM                   = 0x40\n\tIPV6_DONTFRAG                  = 0x3e\n\tIPV6_DSTOPTS                   = 0x32\n\tIPV6_FLOWID                    = 0x43\n\tIPV6_FLOWINFO_MASK             = 0xffffff0f\n\tIPV6_FLOWLABEL_LEN             = 0x14\n\tIPV6_FLOWLABEL_MASK            = 0xffff0f00\n\tIPV6_FLOWTYPE                  = 0x44\n\tIPV6_FRAGTTL                   = 0x78\n\tIPV6_FW_ADD                    = 0x1e\n\tIPV6_FW_DEL                    = 0x1f\n\tIPV6_FW_FLUSH                  = 0x20\n\tIPV6_FW_GET                    = 0x22\n\tIPV6_FW_ZERO                   = 0x21\n\tIPV6_HLIMDEC                   = 0x1\n\tIPV6_HOPLIMIT                  = 0x2f\n\tIPV6_HOPOPTS                   = 0x31\n\tIPV6_IPSEC_POLICY              = 0x1c\n\tIPV6_JOIN_GROUP                = 0xc\n\tIPV6_LEAVE_GROUP               = 0xd\n\tIPV6_MAXHLIM                   = 0xff\n\tIPV6_MAXOPTHDR                 = 0x800\n\tIPV6_MAXPACKET                 = 0xffff\n\tIPV6_MAX_GROUP_SRC_FILTER      = 0x200\n\tIPV6_MAX_MEMBERSHIPS           = 0xfff\n\tIPV6_MAX_SOCK_SRC_FILTER       = 0x80\n\tIPV6_MMTU                      = 0x500\n\tIPV6_MSFILTER                  = 0x4a\n\tIPV6_MULTICAST_HOPS            = 0xa\n\tIPV6_MULTICAST_IF              = 0x9\n\tIPV6_MULTICAST_LOOP            = 0xb\n\tIPV6_NEXTHOP                   = 0x30\n\tIPV6_ORIGDSTADDR               = 0x48\n\tIPV6_PATHMTU                   = 0x2c\n\tIPV6_PKTINFO                   = 0x2e\n\tIPV6_PORTRANGE                 = 0xe\n\tIPV6_PORTRANGE_DEFAULT         = 0x0\n\tIPV6_PORTRANGE_HIGH            = 0x1\n\tIPV6_PORTRANGE_LOW             = 0x2\n\tIPV6_PREFER_TEMPADDR           = 0x3f\n\tIPV6_RECVDSTOPTS               = 0x28\n\tIPV6_RECVFLOWID                = 0x46\n\tIPV6_RECVHOPLIMIT              = 0x25\n\tIPV6_RECVHOPOPTS               = 0x27\n\tIPV6_RECVORIGDSTADDR           = 0x48\n\tIPV6_RECVPATHMTU               = 0x2b\n\tIPV6_RECVPKTINFO               = 0x24\n\tIPV6_RECVRSSBUCKETID           = 0x47\n\tIPV6_RECVRTHDR                 = 0x26\n\tIPV6_RECVTCLASS                = 0x39\n\tIPV6_RSSBUCKETID               = 0x45\n\tIPV6_RSS_LISTEN_BUCKET         = 0x42\n\tIPV6_RTHDR                     = 0x33\n\tIPV6_RTHDRDSTOPTS              = 0x23\n\tIPV6_RTHDR_LOOSE               = 0x0\n\tIPV6_RTHDR_STRICT              = 0x1\n\tIPV6_RTHDR_TYPE_0              = 0x0\n\tIPV6_SOCKOPT_RESERVED1         = 0x3\n\tIPV6_TCLASS                    = 0x3d\n\tIPV6_UNICAST_HOPS              = 0x4\n\tIPV6_USE_MIN_MTU               = 0x2a\n\tIPV6_V6ONLY                    = 0x1b\n\tIPV6_VERSION                   = 0x60\n\tIPV6_VERSION_MASK              = 0xf0\n\tIPV6_VLAN_PCP                  = 0x4b\n\tIP_ADD_MEMBERSHIP              = 0xc\n\tIP_ADD_SOURCE_MEMBERSHIP       = 0x46\n\tIP_BINDANY                     = 0x18\n\tIP_BINDMULTI                   = 0x19\n\tIP_BLOCK_SOURCE                = 0x48\n\tIP_DEFAULT_MULTICAST_LOOP      = 0x1\n\tIP_DEFAULT_MULTICAST_TTL       = 0x1\n\tIP_DF                          = 0x4000\n\tIP_DONTFRAG                    = 0x43\n\tIP_DROP_MEMBERSHIP             = 0xd\n\tIP_DROP_SOURCE_MEMBERSHIP      = 0x47\n\tIP_DUMMYNET3                   = 0x31\n\tIP_DUMMYNET_CONFIGURE          = 0x3c\n\tIP_DUMMYNET_DEL                = 0x3d\n\tIP_DUMMYNET_FLUSH              = 0x3e\n\tIP_DUMMYNET_GET                = 0x40\n\tIP_FLOWID                      = 0x5a\n\tIP_FLOWTYPE                    = 0x5b\n\tIP_FW3                         = 0x30\n\tIP_FW_ADD                      = 0x32\n\tIP_FW_DEL                      = 0x33\n\tIP_FW_FLUSH                    = 0x34\n\tIP_FW_GET                      = 0x36\n\tIP_FW_NAT_CFG                  = 0x38\n\tIP_FW_NAT_DEL                  = 0x39\n\tIP_FW_NAT_GET_CONFIG           = 0x3a\n\tIP_FW_NAT_GET_LOG              = 0x3b\n\tIP_FW_RESETLOG                 = 0x37\n\tIP_FW_TABLE_ADD                = 0x28\n\tIP_FW_TABLE_DEL                = 0x29\n\tIP_FW_TABLE_FLUSH              = 0x2a\n\tIP_FW_TABLE_GETSIZE            = 0x2b\n\tIP_FW_TABLE_LIST               = 0x2c\n\tIP_FW_ZERO                     = 0x35\n\tIP_HDRINCL                     = 0x2\n\tIP_IPSEC_POLICY                = 0x15\n\tIP_MAXPACKET                   = 0xffff\n\tIP_MAX_GROUP_SRC_FILTER        = 0x200\n\tIP_MAX_MEMBERSHIPS             = 0xfff\n\tIP_MAX_SOCK_MUTE_FILTER        = 0x80\n\tIP_MAX_SOCK_SRC_FILTER         = 0x80\n\tIP_MF                          = 0x2000\n\tIP_MINTTL                      = 0x42\n\tIP_MSFILTER                    = 0x4a\n\tIP_MSS                         = 0x240\n\tIP_MULTICAST_IF                = 0x9\n\tIP_MULTICAST_LOOP              = 0xb\n\tIP_MULTICAST_TTL               = 0xa\n\tIP_MULTICAST_VIF               = 0xe\n\tIP_OFFMASK                     = 0x1fff\n\tIP_ONESBCAST                   = 0x17\n\tIP_OPTIONS                     = 0x1\n\tIP_ORIGDSTADDR                 = 0x1b\n\tIP_PORTRANGE                   = 0x13\n\tIP_PORTRANGE_DEFAULT           = 0x0\n\tIP_PORTRANGE_HIGH              = 0x1\n\tIP_PORTRANGE_LOW               = 0x2\n\tIP_RECVDSTADDR                 = 0x7\n\tIP_RECVFLOWID                  = 0x5d\n\tIP_RECVIF                      = 0x14\n\tIP_RECVOPTS                    = 0x5\n\tIP_RECVORIGDSTADDR             = 0x1b\n\tIP_RECVRETOPTS                 = 0x6\n\tIP_RECVRSSBUCKETID             = 0x5e\n\tIP_RECVTOS                     = 0x44\n\tIP_RECVTTL                     = 0x41\n\tIP_RETOPTS                     = 0x8\n\tIP_RF                          = 0x8000\n\tIP_RSSBUCKETID                 = 0x5c\n\tIP_RSS_LISTEN_BUCKET           = 0x1a\n\tIP_RSVP_OFF                    = 0x10\n\tIP_RSVP_ON                     = 0xf\n\tIP_RSVP_VIF_OFF                = 0x12\n\tIP_RSVP_VIF_ON                 = 0x11\n\tIP_SENDSRCADDR                 = 0x7\n\tIP_TOS                         = 0x3\n\tIP_TTL                         = 0x4\n\tIP_UNBLOCK_SOURCE              = 0x49\n\tIP_VLAN_PCP                    = 0x4b\n\tISIG                           = 0x80\n\tISTRIP                         = 0x20\n\tITIMER_PROF                    = 0x2\n\tITIMER_REAL                    = 0x0\n\tITIMER_VIRTUAL                 = 0x1\n\tIXANY                          = 0x800\n\tIXOFF                          = 0x400\n\tIXON                           = 0x200\n\tKERN_HOSTNAME                  = 0xa\n\tKERN_OSRELEASE                 = 0x2\n\tKERN_OSTYPE                    = 0x1\n\tKERN_VERSION                   = 0x4\n\tLOCAL_CONNWAIT                 = 0x4\n\tLOCAL_CREDS                    = 0x2\n\tLOCAL_PEERCRED                 = 0x1\n\tLOCAL_VENDOR                   = 0x80000000\n\tLOCK_EX                        = 0x2\n\tLOCK_NB                        = 0x4\n\tLOCK_SH                        = 0x1\n\tLOCK_UN                        = 0x8\n\tMADV_AUTOSYNC                  = 0x7\n\tMADV_CORE                      = 0x9\n\tMADV_DONTNEED                  = 0x4\n\tMADV_FREE                      = 0x5\n\tMADV_NOCORE                    = 0x8\n\tMADV_NORMAL                    = 0x0\n\tMADV_NOSYNC                    = 0x6\n\tMADV_PROTECT                   = 0xa\n\tMADV_RANDOM                    = 0x1\n\tMADV_SEQUENTIAL                = 0x2\n\tMADV_WILLNEED                  = 0x3\n\tMAP_ALIGNED_SUPER              = 0x1000000\n\tMAP_ALIGNMENT_MASK             = -0x1000000\n\tMAP_ALIGNMENT_SHIFT            = 0x18\n\tMAP_ANON                       = 0x1000\n\tMAP_ANONYMOUS                  = 0x1000\n\tMAP_COPY                       = 0x2\n\tMAP_EXCL                       = 0x4000\n\tMAP_FILE                       = 0x0\n\tMAP_FIXED                      = 0x10\n\tMAP_GUARD                      = 0x2000\n\tMAP_HASSEMAPHORE               = 0x200\n\tMAP_NOCORE                     = 0x20000\n\tMAP_NOSYNC                     = 0x800\n\tMAP_PREFAULT_READ              = 0x40000\n\tMAP_PRIVATE                    = 0x2\n\tMAP_RESERVED0020               = 0x20\n\tMAP_RESERVED0040               = 0x40\n\tMAP_RESERVED0080               = 0x80\n\tMAP_RESERVED0100               = 0x100\n\tMAP_SHARED                     = 0x1\n\tMAP_STACK                      = 0x400\n\tMCAST_BLOCK_SOURCE             = 0x54\n\tMCAST_EXCLUDE                  = 0x2\n\tMCAST_INCLUDE                  = 0x1\n\tMCAST_JOIN_GROUP               = 0x50\n\tMCAST_JOIN_SOURCE_GROUP        = 0x52\n\tMCAST_LEAVE_GROUP              = 0x51\n\tMCAST_LEAVE_SOURCE_GROUP       = 0x53\n\tMCAST_UNBLOCK_SOURCE           = 0x55\n\tMCAST_UNDEFINED                = 0x0\n\tMCL_CURRENT                    = 0x1\n\tMCL_FUTURE                     = 0x2\n\tMNT_ACLS                       = 0x8000000\n\tMNT_ASYNC                      = 0x40\n\tMNT_AUTOMOUNTED                = 0x200000000\n\tMNT_BYFSID                     = 0x8000000\n\tMNT_CMDFLAGS                   = 0xd0f0000\n\tMNT_DEFEXPORTED                = 0x200\n\tMNT_DELEXPORT                  = 0x20000\n\tMNT_EXKERB                     = 0x800\n\tMNT_EXPORTANON                 = 0x400\n\tMNT_EXPORTED                   = 0x100\n\tMNT_EXPUBLIC                   = 0x20000000\n\tMNT_EXRDONLY                   = 0x80\n\tMNT_FORCE                      = 0x80000\n\tMNT_GJOURNAL                   = 0x2000000\n\tMNT_IGNORE                     = 0x800000\n\tMNT_LAZY                       = 0x3\n\tMNT_LOCAL                      = 0x1000\n\tMNT_MULTILABEL                 = 0x4000000\n\tMNT_NFS4ACLS                   = 0x10\n\tMNT_NOATIME                    = 0x10000000\n\tMNT_NOCLUSTERR                 = 0x40000000\n\tMNT_NOCLUSTERW                 = 0x80000000\n\tMNT_NOEXEC                     = 0x4\n\tMNT_NONBUSY                    = 0x4000000\n\tMNT_NOSUID                     = 0x8\n\tMNT_NOSYMFOLLOW                = 0x400000\n\tMNT_NOWAIT                     = 0x2\n\tMNT_QUOTA                      = 0x2000\n\tMNT_RDONLY                     = 0x1\n\tMNT_RELOAD                     = 0x40000\n\tMNT_ROOTFS                     = 0x4000\n\tMNT_SNAPSHOT                   = 0x1000000\n\tMNT_SOFTDEP                    = 0x200000\n\tMNT_SUIDDIR                    = 0x100000\n\tMNT_SUJ                        = 0x100000000\n\tMNT_SUSPEND                    = 0x4\n\tMNT_SYNCHRONOUS                = 0x2\n\tMNT_UNION                      = 0x20\n\tMNT_UNTRUSTED                  = 0x800000000\n\tMNT_UPDATE                     = 0x10000\n\tMNT_UPDATEMASK                 = 0xad8d0807e\n\tMNT_USER                       = 0x8000\n\tMNT_VERIFIED                   = 0x400000000\n\tMNT_VISFLAGMASK                = 0xffef0ffff\n\tMNT_WAIT                       = 0x1\n\tMSG_CMSG_CLOEXEC               = 0x40000\n\tMSG_COMPAT                     = 0x8000\n\tMSG_CTRUNC                     = 0x20\n\tMSG_DONTROUTE                  = 0x4\n\tMSG_DONTWAIT                   = 0x80\n\tMSG_EOF                        = 0x100\n\tMSG_EOR                        = 0x8\n\tMSG_NBIO                       = 0x4000\n\tMSG_NOSIGNAL                   = 0x20000\n\tMSG_NOTIFICATION               = 0x2000\n\tMSG_OOB                        = 0x1\n\tMSG_PEEK                       = 0x2\n\tMSG_TRUNC                      = 0x10\n\tMSG_WAITALL                    = 0x40\n\tMSG_WAITFORONE                 = 0x80000\n\tMS_ASYNC                       = 0x1\n\tMS_INVALIDATE                  = 0x2\n\tMS_SYNC                        = 0x0\n\tNAME_MAX                       = 0xff\n\tNET_RT_DUMP                    = 0x1\n\tNET_RT_FLAGS                   = 0x2\n\tNET_RT_IFLIST                  = 0x3\n\tNET_RT_IFLISTL                 = 0x5\n\tNET_RT_IFMALIST                = 0x4\n\tNFDBITS                        = 0x20\n\tNOFLSH                         = 0x80000000\n\tNOKERNINFO                     = 0x2000000\n\tNOTE_ABSTIME                   = 0x10\n\tNOTE_ATTRIB                    = 0x8\n\tNOTE_CHILD                     = 0x4\n\tNOTE_CLOSE                     = 0x100\n\tNOTE_CLOSE_WRITE               = 0x200\n\tNOTE_DELETE                    = 0x1\n\tNOTE_EXEC                      = 0x20000000\n\tNOTE_EXIT                      = 0x80000000\n\tNOTE_EXTEND                    = 0x4\n\tNOTE_FFAND                     = 0x40000000\n\tNOTE_FFCOPY                    = 0xc0000000\n\tNOTE_FFCTRLMASK                = 0xc0000000\n\tNOTE_FFLAGSMASK                = 0xffffff\n\tNOTE_FFNOP                     = 0x0\n\tNOTE_FFOR                      = 0x80000000\n\tNOTE_FILE_POLL                 = 0x2\n\tNOTE_FORK                      = 0x40000000\n\tNOTE_LINK                      = 0x10\n\tNOTE_LOWAT                     = 0x1\n\tNOTE_MSECONDS                  = 0x2\n\tNOTE_NSECONDS                  = 0x8\n\tNOTE_OPEN                      = 0x80\n\tNOTE_PCTRLMASK                 = 0xf0000000\n\tNOTE_PDATAMASK                 = 0xfffff\n\tNOTE_READ                      = 0x400\n\tNOTE_RENAME                    = 0x20\n\tNOTE_REVOKE                    = 0x40\n\tNOTE_SECONDS                   = 0x1\n\tNOTE_TRACK                     = 0x1\n\tNOTE_TRACKERR                  = 0x2\n\tNOTE_TRIGGER                   = 0x1000000\n\tNOTE_USECONDS                  = 0x4\n\tNOTE_WRITE                     = 0x2\n\tOCRNL                          = 0x10\n\tONLCR                          = 0x2\n\tONLRET                         = 0x40\n\tONOCR                          = 0x20\n\tONOEOT                         = 0x8\n\tOPOST                          = 0x1\n\tOXTABS                         = 0x4\n\tO_ACCMODE                      = 0x3\n\tO_APPEND                       = 0x8\n\tO_ASYNC                        = 0x40\n\tO_CLOEXEC                      = 0x100000\n\tO_CREAT                        = 0x200\n\tO_DIRECT                       = 0x10000\n\tO_DIRECTORY                    = 0x20000\n\tO_EXCL                         = 0x800\n\tO_EXEC                         = 0x40000\n\tO_EXLOCK                       = 0x20\n\tO_FSYNC                        = 0x80\n\tO_NDELAY                       = 0x4\n\tO_NOCTTY                       = 0x8000\n\tO_NOFOLLOW                     = 0x100\n\tO_NONBLOCK                     = 0x4\n\tO_RDONLY                       = 0x0\n\tO_RDWR                         = 0x2\n\tO_RESOLVE_BENEATH              = 0x800000\n\tO_SEARCH                       = 0x40000\n\tO_SHLOCK                       = 0x10\n\tO_SYNC                         = 0x80\n\tO_TRUNC                        = 0x400\n\tO_TTY_INIT                     = 0x80000\n\tO_VERIFY                       = 0x200000\n\tO_WRONLY                       = 0x1\n\tPARENB                         = 0x1000\n\tPARMRK                         = 0x8\n\tPARODD                         = 0x2000\n\tPENDIN                         = 0x20000000\n\tPIOD_READ_D                    = 0x1\n\tPIOD_READ_I                    = 0x3\n\tPIOD_WRITE_D                   = 0x2\n\tPIOD_WRITE_I                   = 0x4\n\tPRIO_PGRP                      = 0x1\n\tPRIO_PROCESS                   = 0x0\n\tPRIO_USER                      = 0x2\n\tPROT_EXEC                      = 0x4\n\tPROT_NONE                      = 0x0\n\tPROT_READ                      = 0x1\n\tPROT_WRITE                     = 0x2\n\tPTRACE_DEFAULT                 = 0x1\n\tPTRACE_EXEC                    = 0x1\n\tPTRACE_FORK                    = 0x8\n\tPTRACE_LWP                     = 0x10\n\tPTRACE_SCE                     = 0x2\n\tPTRACE_SCX                     = 0x4\n\tPTRACE_SYSCALL                 = 0x6\n\tPTRACE_VFORK                   = 0x20\n\tPT_ATTACH                      = 0xa\n\tPT_CLEARSTEP                   = 0x10\n\tPT_CONTINUE                    = 0x7\n\tPT_DETACH                      = 0xb\n\tPT_FIRSTMACH                   = 0x40\n\tPT_FOLLOW_FORK                 = 0x17\n\tPT_GETDBREGS                   = 0x25\n\tPT_GETFPREGS                   = 0x23\n\tPT_GETLWPLIST                  = 0xf\n\tPT_GETNUMLWPS                  = 0xe\n\tPT_GETREGS                     = 0x21\n\tPT_GETVFPREGS                  = 0x40\n\tPT_GET_EVENT_MASK              = 0x19\n\tPT_GET_SC_ARGS                 = 0x1b\n\tPT_GET_SC_RET                  = 0x1c\n\tPT_IO                          = 0xc\n\tPT_KILL                        = 0x8\n\tPT_LWPINFO                     = 0xd\n\tPT_LWP_EVENTS                  = 0x18\n\tPT_READ_D                      = 0x2\n\tPT_READ_I                      = 0x1\n\tPT_RESUME                      = 0x13\n\tPT_SETDBREGS                   = 0x26\n\tPT_SETFPREGS                   = 0x24\n\tPT_SETREGS                     = 0x22\n\tPT_SETSTEP                     = 0x11\n\tPT_SETVFPREGS                  = 0x41\n\tPT_SET_EVENT_MASK              = 0x1a\n\tPT_STEP                        = 0x9\n\tPT_SUSPEND                     = 0x12\n\tPT_SYSCALL                     = 0x16\n\tPT_TO_SCE                      = 0x14\n\tPT_TO_SCX                      = 0x15\n\tPT_TRACE_ME                    = 0x0\n\tPT_VM_ENTRY                    = 0x29\n\tPT_VM_TIMESTAMP                = 0x28\n\tPT_WRITE_D                     = 0x5\n\tPT_WRITE_I                     = 0x4\n\tP_ZONEID                       = 0xc\n\tRLIMIT_AS                      = 0xa\n\tRLIMIT_CORE                    = 0x4\n\tRLIMIT_CPU                     = 0x0\n\tRLIMIT_DATA                    = 0x2\n\tRLIMIT_FSIZE                   = 0x1\n\tRLIMIT_MEMLOCK                 = 0x6\n\tRLIMIT_NOFILE                  = 0x8\n\tRLIMIT_NPROC                   = 0x7\n\tRLIMIT_RSS                     = 0x5\n\tRLIMIT_STACK                   = 0x3\n\tRLIM_INFINITY                  = 0x7fffffffffffffff\n\tRTAX_AUTHOR                    = 0x6\n\tRTAX_BRD                       = 0x7\n\tRTAX_DST                       = 0x0\n\tRTAX_GATEWAY                   = 0x1\n\tRTAX_GENMASK                   = 0x3\n\tRTAX_IFA                       = 0x5\n\tRTAX_IFP                       = 0x4\n\tRTAX_MAX                       = 0x8\n\tRTAX_NETMASK                   = 0x2\n\tRTA_AUTHOR                     = 0x40\n\tRTA_BRD                        = 0x80\n\tRTA_DST                        = 0x1\n\tRTA_GATEWAY                    = 0x2\n\tRTA_GENMASK                    = 0x8\n\tRTA_IFA                        = 0x20\n\tRTA_IFP                        = 0x10\n\tRTA_NETMASK                    = 0x4\n\tRTF_BLACKHOLE                  = 0x1000\n\tRTF_BROADCAST                  = 0x400000\n\tRTF_DONE                       = 0x40\n\tRTF_DYNAMIC                    = 0x10\n\tRTF_FIXEDMTU                   = 0x80000\n\tRTF_FMASK                      = 0x1004d808\n\tRTF_GATEWAY                    = 0x2\n\tRTF_GWFLAG_COMPAT              = 0x80000000\n\tRTF_HOST                       = 0x4\n\tRTF_LLDATA                     = 0x400\n\tRTF_LLINFO                     = 0x400\n\tRTF_LOCAL                      = 0x200000\n\tRTF_MODIFIED                   = 0x20\n\tRTF_MULTICAST                  = 0x800000\n\tRTF_PINNED                     = 0x100000\n\tRTF_PROTO1                     = 0x8000\n\tRTF_PROTO2                     = 0x4000\n\tRTF_PROTO3                     = 0x40000\n\tRTF_REJECT                     = 0x8\n\tRTF_RNH_LOCKED                 = 0x40000000\n\tRTF_STATIC                     = 0x800\n\tRTF_STICKY                     = 0x10000000\n\tRTF_UP                         = 0x1\n\tRTF_XRESOLVE                   = 0x200\n\tRTM_ADD                        = 0x1\n\tRTM_CHANGE                     = 0x3\n\tRTM_DELADDR                    = 0xd\n\tRTM_DELETE                     = 0x2\n\tRTM_DELMADDR                   = 0x10\n\tRTM_GET                        = 0x4\n\tRTM_IEEE80211                  = 0x12\n\tRTM_IFANNOUNCE                 = 0x11\n\tRTM_IFINFO                     = 0xe\n\tRTM_LOCK                       = 0x8\n\tRTM_LOSING                     = 0x5\n\tRTM_MISS                       = 0x7\n\tRTM_NEWADDR                    = 0xc\n\tRTM_NEWMADDR                   = 0xf\n\tRTM_REDIRECT                   = 0x6\n\tRTM_RESOLVE                    = 0xb\n\tRTM_RTTUNIT                    = 0xf4240\n\tRTM_VERSION                    = 0x5\n\tRTV_EXPIRE                     = 0x4\n\tRTV_HOPCOUNT                   = 0x2\n\tRTV_MTU                        = 0x1\n\tRTV_RPIPE                      = 0x8\n\tRTV_RTT                        = 0x40\n\tRTV_RTTVAR                     = 0x80\n\tRTV_SPIPE                      = 0x10\n\tRTV_SSTHRESH                   = 0x20\n\tRTV_WEIGHT                     = 0x100\n\tRT_ALL_FIBS                    = -0x1\n\tRT_BLACKHOLE                   = 0x40\n\tRT_DEFAULT_FIB                 = 0x0\n\tRT_HAS_GW                      = 0x80\n\tRT_HAS_HEADER                  = 0x10\n\tRT_HAS_HEADER_BIT              = 0x4\n\tRT_L2_ME                       = 0x4\n\tRT_L2_ME_BIT                   = 0x2\n\tRT_LLE_CACHE                   = 0x100\n\tRT_MAY_LOOP                    = 0x8\n\tRT_MAY_LOOP_BIT                = 0x3\n\tRT_REJECT                      = 0x20\n\tRUSAGE_CHILDREN                = -0x1\n\tRUSAGE_SELF                    = 0x0\n\tRUSAGE_THREAD                  = 0x1\n\tSCM_BINTIME                    = 0x4\n\tSCM_CREDS                      = 0x3\n\tSCM_MONOTONIC                  = 0x6\n\tSCM_REALTIME                   = 0x5\n\tSCM_RIGHTS                     = 0x1\n\tSCM_TIMESTAMP                  = 0x2\n\tSCM_TIME_INFO                  = 0x7\n\tSEEK_CUR                       = 0x1\n\tSEEK_DATA                      = 0x3\n\tSEEK_END                       = 0x2\n\tSEEK_HOLE                      = 0x4\n\tSEEK_SET                       = 0x0\n\tSHUT_RD                        = 0x0\n\tSHUT_RDWR                      = 0x2\n\tSHUT_WR                        = 0x1\n\tSIOCADDMULTI                   = 0x80206931\n\tSIOCAIFADDR                    = 0x8040691a\n\tSIOCAIFGROUP                   = 0x80246987\n\tSIOCATMARK                     = 0x40047307\n\tSIOCDELMULTI                   = 0x80206932\n\tSIOCDIFADDR                    = 0x80206919\n\tSIOCDIFGROUP                   = 0x80246989\n\tSIOCDIFPHYADDR                 = 0x80206949\n\tSIOCGDRVSPEC                   = 0xc01c697b\n\tSIOCGETSGCNT                   = 0xc0147210\n\tSIOCGETVIFCNT                  = 0xc014720f\n\tSIOCGHIWAT                     = 0x40047301\n\tSIOCGHWADDR                    = 0xc020693e\n\tSIOCGI2C                       = 0xc020693d\n\tSIOCGIFADDR                    = 0xc0206921\n\tSIOCGIFALIAS                   = 0xc044692d\n\tSIOCGIFBRDADDR                 = 0xc0206923\n\tSIOCGIFCAP                     = 0xc020691f\n\tSIOCGIFCONF                    = 0xc0086924\n\tSIOCGIFDESCR                   = 0xc020692a\n\tSIOCGIFDOWNREASON              = 0xc058699a\n\tSIOCGIFDSTADDR                 = 0xc0206922\n\tSIOCGIFFIB                     = 0xc020695c\n\tSIOCGIFFLAGS                   = 0xc0206911\n\tSIOCGIFGENERIC                 = 0xc020693a\n\tSIOCGIFGMEMB                   = 0xc024698a\n\tSIOCGIFGROUP                   = 0xc0246988\n\tSIOCGIFINDEX                   = 0xc0206920\n\tSIOCGIFMAC                     = 0xc0206926\n\tSIOCGIFMEDIA                   = 0xc0286938\n\tSIOCGIFMETRIC                  = 0xc0206917\n\tSIOCGIFMTU                     = 0xc0206933\n\tSIOCGIFNETMASK                 = 0xc0206925\n\tSIOCGIFPDSTADDR                = 0xc0206948\n\tSIOCGIFPHYS                    = 0xc0206935\n\tSIOCGIFPSRCADDR                = 0xc0206947\n\tSIOCGIFRSSHASH                 = 0xc0186997\n\tSIOCGIFRSSKEY                  = 0xc0946996\n\tSIOCGIFSTATUS                  = 0xc331693b\n\tSIOCGIFXMEDIA                  = 0xc028698b\n\tSIOCGLANPCP                    = 0xc0206998\n\tSIOCGLOWAT                     = 0x40047303\n\tSIOCGPGRP                      = 0x40047309\n\tSIOCGPRIVATE_0                 = 0xc0206950\n\tSIOCGPRIVATE_1                 = 0xc0206951\n\tSIOCGTUNFIB                    = 0xc020695e\n\tSIOCIFCREATE                   = 0xc020697a\n\tSIOCIFCREATE2                  = 0xc020697c\n\tSIOCIFDESTROY                  = 0x80206979\n\tSIOCIFGCLONERS                 = 0xc00c6978\n\tSIOCSDRVSPEC                   = 0x801c697b\n\tSIOCSHIWAT                     = 0x80047300\n\tSIOCSIFADDR                    = 0x8020690c\n\tSIOCSIFBRDADDR                 = 0x80206913\n\tSIOCSIFCAP                     = 0x8020691e\n\tSIOCSIFDESCR                   = 0x80206929\n\tSIOCSIFDSTADDR                 = 0x8020690e\n\tSIOCSIFFIB                     = 0x8020695d\n\tSIOCSIFFLAGS                   = 0x80206910\n\tSIOCSIFGENERIC                 = 0x80206939\n\tSIOCSIFLLADDR                  = 0x8020693c\n\tSIOCSIFMAC                     = 0x80206927\n\tSIOCSIFMEDIA                   = 0xc0206937\n\tSIOCSIFMETRIC                  = 0x80206918\n\tSIOCSIFMTU                     = 0x80206934\n\tSIOCSIFNAME                    = 0x80206928\n\tSIOCSIFNETMASK                 = 0x80206916\n\tSIOCSIFPHYADDR                 = 0x80406946\n\tSIOCSIFPHYS                    = 0x80206936\n\tSIOCSIFRVNET                   = 0xc020695b\n\tSIOCSIFVNET                    = 0xc020695a\n\tSIOCSLANPCP                    = 0x80206999\n\tSIOCSLOWAT                     = 0x80047302\n\tSIOCSPGRP                      = 0x80047308\n\tSIOCSTUNFIB                    = 0x8020695f\n\tSOCK_CLOEXEC                   = 0x10000000\n\tSOCK_DGRAM                     = 0x2\n\tSOCK_MAXADDRLEN                = 0xff\n\tSOCK_NONBLOCK                  = 0x20000000\n\tSOCK_RAW                       = 0x3\n\tSOCK_RDM                       = 0x4\n\tSOCK_SEQPACKET                 = 0x5\n\tSOCK_STREAM                    = 0x1\n\tSOL_LOCAL                      = 0x0\n\tSOL_SOCKET                     = 0xffff\n\tSOMAXCONN                      = 0x80\n\tSO_ACCEPTCONN                  = 0x2\n\tSO_ACCEPTFILTER                = 0x1000\n\tSO_BINTIME                     = 0x2000\n\tSO_BROADCAST                   = 0x20\n\tSO_DEBUG                       = 0x1\n\tSO_DOMAIN                      = 0x1019\n\tSO_DONTROUTE                   = 0x10\n\tSO_ERROR                       = 0x1007\n\tSO_KEEPALIVE                   = 0x8\n\tSO_LABEL                       = 0x1009\n\tSO_LINGER                      = 0x80\n\tSO_LISTENINCQLEN               = 0x1013\n\tSO_LISTENQLEN                  = 0x1012\n\tSO_LISTENQLIMIT                = 0x1011\n\tSO_MAX_PACING_RATE             = 0x1018\n\tSO_NOSIGPIPE                   = 0x800\n\tSO_NO_DDP                      = 0x8000\n\tSO_NO_OFFLOAD                  = 0x4000\n\tSO_OOBINLINE                   = 0x100\n\tSO_PEERLABEL                   = 0x1010\n\tSO_PROTOCOL                    = 0x1016\n\tSO_PROTOTYPE                   = 0x1016\n\tSO_RCVBUF                      = 0x1002\n\tSO_RCVLOWAT                    = 0x1004\n\tSO_RCVTIMEO                    = 0x1006\n\tSO_RERROR                      = 0x20000\n\tSO_REUSEADDR                   = 0x4\n\tSO_REUSEPORT                   = 0x200\n\tSO_REUSEPORT_LB                = 0x10000\n\tSO_SETFIB                      = 0x1014\n\tSO_SNDBUF                      = 0x1001\n\tSO_SNDLOWAT                    = 0x1003\n\tSO_SNDTIMEO                    = 0x1005\n\tSO_TIMESTAMP                   = 0x400\n\tSO_TS_BINTIME                  = 0x1\n\tSO_TS_CLOCK                    = 0x1017\n\tSO_TS_CLOCK_MAX                = 0x3\n\tSO_TS_DEFAULT                  = 0x0\n\tSO_TS_MONOTONIC                = 0x3\n\tSO_TS_REALTIME                 = 0x2\n\tSO_TS_REALTIME_MICRO           = 0x0\n\tSO_TYPE                        = 0x1008\n\tSO_USELOOPBACK                 = 0x40\n\tSO_USER_COOKIE                 = 0x1015\n\tSO_VENDOR                      = 0x80000000\n\tS_BLKSIZE                      = 0x200\n\tS_IEXEC                        = 0x40\n\tS_IFBLK                        = 0x6000\n\tS_IFCHR                        = 0x2000\n\tS_IFDIR                        = 0x4000\n\tS_IFIFO                        = 0x1000\n\tS_IFLNK                        = 0xa000\n\tS_IFMT                         = 0xf000\n\tS_IFREG                        = 0x8000\n\tS_IFSOCK                       = 0xc000\n\tS_IFWHT                        = 0xe000\n\tS_IREAD                        = 0x100\n\tS_IRGRP                        = 0x20\n\tS_IROTH                        = 0x4\n\tS_IRUSR                        = 0x100\n\tS_IRWXG                        = 0x38\n\tS_IRWXO                        = 0x7\n\tS_IRWXU                        = 0x1c0\n\tS_ISGID                        = 0x400\n\tS_ISTXT                        = 0x200\n\tS_ISUID                        = 0x800\n\tS_ISVTX                        = 0x200\n\tS_IWGRP                        = 0x10\n\tS_IWOTH                        = 0x2\n\tS_IWRITE                       = 0x80\n\tS_IWUSR                        = 0x80\n\tS_IXGRP                        = 0x8\n\tS_IXOTH                        = 0x1\n\tS_IXUSR                        = 0x40\n\tTAB0                           = 0x0\n\tTAB3                           = 0x4\n\tTABDLY                         = 0x4\n\tTCIFLUSH                       = 0x1\n\tTCIOFF                         = 0x3\n\tTCIOFLUSH                      = 0x3\n\tTCION                          = 0x4\n\tTCOFLUSH                       = 0x2\n\tTCOOFF                         = 0x1\n\tTCOON                          = 0x2\n\tTCPOPT_EOL                     = 0x0\n\tTCPOPT_FAST_OPEN               = 0x22\n\tTCPOPT_MAXSEG                  = 0x2\n\tTCPOPT_NOP                     = 0x1\n\tTCPOPT_PAD                     = 0x0\n\tTCPOPT_SACK                    = 0x5\n\tTCPOPT_SACK_PERMITTED          = 0x4\n\tTCPOPT_SIGNATURE               = 0x13\n\tTCPOPT_TIMESTAMP               = 0x8\n\tTCPOPT_WINDOW                  = 0x3\n\tTCP_BBR_ACK_COMP_ALG           = 0x448\n\tTCP_BBR_ALGORITHM              = 0x43b\n\tTCP_BBR_DRAIN_INC_EXTRA        = 0x43c\n\tTCP_BBR_DRAIN_PG               = 0x42e\n\tTCP_BBR_EXTRA_GAIN             = 0x449\n\tTCP_BBR_EXTRA_STATE            = 0x453\n\tTCP_BBR_FLOOR_MIN_TSO          = 0x454\n\tTCP_BBR_HDWR_PACE              = 0x451\n\tTCP_BBR_HOLD_TARGET            = 0x436\n\tTCP_BBR_IWINTSO                = 0x42b\n\tTCP_BBR_LOWGAIN_FD             = 0x436\n\tTCP_BBR_LOWGAIN_HALF           = 0x435\n\tTCP_BBR_LOWGAIN_THRESH         = 0x434\n\tTCP_BBR_MAX_RTO                = 0x439\n\tTCP_BBR_MIN_RTO                = 0x438\n\tTCP_BBR_MIN_TOPACEOUT          = 0x455\n\tTCP_BBR_ONE_RETRAN             = 0x431\n\tTCP_BBR_PACE_CROSS             = 0x442\n\tTCP_BBR_PACE_DEL_TAR           = 0x43f\n\tTCP_BBR_PACE_OH                = 0x435\n\tTCP_BBR_PACE_PER_SEC           = 0x43e\n\tTCP_BBR_PACE_SEG_MAX           = 0x440\n\tTCP_BBR_PACE_SEG_MIN           = 0x441\n\tTCP_BBR_POLICER_DETECT         = 0x457\n\tTCP_BBR_PROBE_RTT_GAIN         = 0x44d\n\tTCP_BBR_PROBE_RTT_INT          = 0x430\n\tTCP_BBR_PROBE_RTT_LEN          = 0x44e\n\tTCP_BBR_RACK_RTT_USE           = 0x44a\n\tTCP_BBR_RECFORCE               = 0x42c\n\tTCP_BBR_REC_OVER_HPTS          = 0x43a\n\tTCP_BBR_RETRAN_WTSO            = 0x44b\n\tTCP_BBR_RWND_IS_APP            = 0x42f\n\tTCP_BBR_SEND_IWND_IN_TSO       = 0x44f\n\tTCP_BBR_STARTUP_EXIT_EPOCH     = 0x43d\n\tTCP_BBR_STARTUP_LOSS_EXIT      = 0x432\n\tTCP_BBR_STARTUP_PG             = 0x42d\n\tTCP_BBR_TMR_PACE_OH            = 0x448\n\tTCP_BBR_TSLIMITS               = 0x434\n\tTCP_BBR_TSTMP_RAISES           = 0x456\n\tTCP_BBR_UNLIMITED              = 0x43b\n\tTCP_BBR_USEDEL_RATE            = 0x437\n\tTCP_BBR_USE_LOWGAIN            = 0x433\n\tTCP_BBR_USE_RACK_CHEAT         = 0x450\n\tTCP_BBR_UTTER_MAX_TSO          = 0x452\n\tTCP_CA_NAME_MAX                = 0x10\n\tTCP_CCALGOOPT                  = 0x41\n\tTCP_CONGESTION                 = 0x40\n\tTCP_DATA_AFTER_CLOSE           = 0x44c\n\tTCP_DELACK                     = 0x48\n\tTCP_FASTOPEN                   = 0x401\n\tTCP_FASTOPEN_MAX_COOKIE_LEN    = 0x10\n\tTCP_FASTOPEN_MIN_COOKIE_LEN    = 0x4\n\tTCP_FASTOPEN_PSK_LEN           = 0x10\n\tTCP_FUNCTION_BLK               = 0x2000\n\tTCP_FUNCTION_NAME_LEN_MAX      = 0x20\n\tTCP_INFO                       = 0x20\n\tTCP_KEEPCNT                    = 0x400\n\tTCP_KEEPIDLE                   = 0x100\n\tTCP_KEEPINIT                   = 0x80\n\tTCP_KEEPINTVL                  = 0x200\n\tTCP_LOG                        = 0x22\n\tTCP_LOGBUF                     = 0x23\n\tTCP_LOGDUMP                    = 0x25\n\tTCP_LOGDUMPID                  = 0x26\n\tTCP_LOGID                      = 0x24\n\tTCP_LOG_ID_LEN                 = 0x40\n\tTCP_MAXBURST                   = 0x4\n\tTCP_MAXHLEN                    = 0x3c\n\tTCP_MAXOLEN                    = 0x28\n\tTCP_MAXSEG                     = 0x2\n\tTCP_MAXWIN                     = 0xffff\n\tTCP_MAX_SACK                   = 0x4\n\tTCP_MAX_WINSHIFT               = 0xe\n\tTCP_MD5SIG                     = 0x10\n\tTCP_MINMSS                     = 0xd8\n\tTCP_MSS                        = 0x218\n\tTCP_NODELAY                    = 0x1\n\tTCP_NOOPT                      = 0x8\n\tTCP_NOPUSH                     = 0x4\n\tTCP_PCAP_IN                    = 0x1000\n\tTCP_PCAP_OUT                   = 0x800\n\tTCP_RACK_EARLY_RECOV           = 0x423\n\tTCP_RACK_EARLY_SEG             = 0x424\n\tTCP_RACK_GP_INCREASE           = 0x446\n\tTCP_RACK_IDLE_REDUCE_HIGH      = 0x444\n\tTCP_RACK_MIN_PACE              = 0x445\n\tTCP_RACK_MIN_PACE_SEG          = 0x446\n\tTCP_RACK_MIN_TO                = 0x422\n\tTCP_RACK_PACE_ALWAYS           = 0x41f\n\tTCP_RACK_PACE_MAX_SEG          = 0x41e\n\tTCP_RACK_PACE_REDUCE           = 0x41d\n\tTCP_RACK_PKT_DELAY             = 0x428\n\tTCP_RACK_PROP                  = 0x41b\n\tTCP_RACK_PROP_RATE             = 0x420\n\tTCP_RACK_PRR_SENDALOT          = 0x421\n\tTCP_RACK_REORD_FADE            = 0x426\n\tTCP_RACK_REORD_THRESH          = 0x425\n\tTCP_RACK_TLP_INC_VAR           = 0x429\n\tTCP_RACK_TLP_REDUCE            = 0x41c\n\tTCP_RACK_TLP_THRESH            = 0x427\n\tTCP_RACK_TLP_USE               = 0x447\n\tTCP_VENDOR                     = 0x80000000\n\tTCSAFLUSH                      = 0x2\n\tTIMER_ABSTIME                  = 0x1\n\tTIMER_RELTIME                  = 0x0\n\tTIOCCBRK                       = 0x2000747a\n\tTIOCCDTR                       = 0x20007478\n\tTIOCCONS                       = 0x80047462\n\tTIOCDRAIN                      = 0x2000745e\n\tTIOCEXCL                       = 0x2000740d\n\tTIOCEXT                        = 0x80047460\n\tTIOCFLUSH                      = 0x80047410\n\tTIOCGDRAINWAIT                 = 0x40047456\n\tTIOCGETA                       = 0x402c7413\n\tTIOCGETD                       = 0x4004741a\n\tTIOCGPGRP                      = 0x40047477\n\tTIOCGPTN                       = 0x4004740f\n\tTIOCGSID                       = 0x40047463\n\tTIOCGWINSZ                     = 0x40087468\n\tTIOCMBIC                       = 0x8004746b\n\tTIOCMBIS                       = 0x8004746c\n\tTIOCMGDTRWAIT                  = 0x4004745a\n\tTIOCMGET                       = 0x4004746a\n\tTIOCMSDTRWAIT                  = 0x8004745b\n\tTIOCMSET                       = 0x8004746d\n\tTIOCM_CAR                      = 0x40\n\tTIOCM_CD                       = 0x40\n\tTIOCM_CTS                      = 0x20\n\tTIOCM_DCD                      = 0x40\n\tTIOCM_DSR                      = 0x100\n\tTIOCM_DTR                      = 0x2\n\tTIOCM_LE                       = 0x1\n\tTIOCM_RI                       = 0x80\n\tTIOCM_RNG                      = 0x80\n\tTIOCM_RTS                      = 0x4\n\tTIOCM_SR                       = 0x10\n\tTIOCM_ST                       = 0x8\n\tTIOCNOTTY                      = 0x20007471\n\tTIOCNXCL                       = 0x2000740e\n\tTIOCOUTQ                       = 0x40047473\n\tTIOCPKT                        = 0x80047470\n\tTIOCPKT_DATA                   = 0x0\n\tTIOCPKT_DOSTOP                 = 0x20\n\tTIOCPKT_FLUSHREAD              = 0x1\n\tTIOCPKT_FLUSHWRITE             = 0x2\n\tTIOCPKT_IOCTL                  = 0x40\n\tTIOCPKT_NOSTOP                 = 0x10\n\tTIOCPKT_START                  = 0x8\n\tTIOCPKT_STOP                   = 0x4\n\tTIOCPTMASTER                   = 0x2000741c\n\tTIOCSBRK                       = 0x2000747b\n\tTIOCSCTTY                      = 0x20007461\n\tTIOCSDRAINWAIT                 = 0x80047457\n\tTIOCSDTR                       = 0x20007479\n\tTIOCSETA                       = 0x802c7414\n\tTIOCSETAF                      = 0x802c7416\n\tTIOCSETAW                      = 0x802c7415\n\tTIOCSETD                       = 0x8004741b\n\tTIOCSIG                        = 0x2004745f\n\tTIOCSPGRP                      = 0x80047476\n\tTIOCSTART                      = 0x2000746e\n\tTIOCSTAT                       = 0x20007465\n\tTIOCSTI                        = 0x80017472\n\tTIOCSTOP                       = 0x2000746f\n\tTIOCSWINSZ                     = 0x80087467\n\tTIOCTIMESTAMP                  = 0x40107459\n\tTIOCUCNTL                      = 0x80047466\n\tTOSTOP                         = 0x400000\n\tUTIME_NOW                      = -0x1\n\tUTIME_OMIT                     = -0x2\n\tVDISCARD                       = 0xf\n\tVDSUSP                         = 0xb\n\tVEOF                           = 0x0\n\tVEOL                           = 0x1\n\tVEOL2                          = 0x2\n\tVERASE                         = 0x3\n\tVERASE2                        = 0x7\n\tVINTR                          = 0x8\n\tVKILL                          = 0x5\n\tVLNEXT                         = 0xe\n\tVMIN                           = 0x10\n\tVQUIT                          = 0x9\n\tVREPRINT                       = 0x6\n\tVSTART                         = 0xc\n\tVSTATUS                        = 0x12\n\tVSTOP                          = 0xd\n\tVSUSP                          = 0xa\n\tVTIME                          = 0x11\n\tVWERASE                        = 0x4\n\tWCONTINUED                     = 0x4\n\tWCOREFLAG                      = 0x80\n\tWEXITED                        = 0x10\n\tWLINUXCLONE                    = 0x80000000\n\tWNOHANG                        = 0x1\n\tWNOWAIT                        = 0x8\n\tWSTOPPED                       = 0x2\n\tWTRAPPED                       = 0x20\n\tWUNTRACED                      = 0x2\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x59)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x55)\n\tECAPMODE        = syscall.Errno(0x5e)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDOOFUS         = syscall.Errno(0x58)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x52)\n\tEILSEQ          = syscall.Errno(0x56)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTEGRITY      = syscall.Errno(0x61)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x61)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5a)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x57)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x5b)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x53)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCAPABLE     = syscall.Errno(0x5d)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x5f)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x2d)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEOWNERDEAD      = syscall.Errno(0x60)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5c)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGLIBRT  = syscall.Signal(0x21)\n\tSIGLWP    = syscall.Signal(0x20)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EWOULDBLOCK\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIDRM\", \"identifier removed\"},\n\t{83, \"ENOMSG\", \"no message of desired type\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"ECANCELED\", \"operation canceled\"},\n\t{86, \"EILSEQ\", \"illegal byte sequence\"},\n\t{87, \"ENOATTR\", \"attribute not found\"},\n\t{88, \"EDOOFUS\", \"programming error\"},\n\t{89, \"EBADMSG\", \"bad message\"},\n\t{90, \"EMULTIHOP\", \"multihop attempted\"},\n\t{91, \"ENOLINK\", \"link has been severed\"},\n\t{92, \"EPROTO\", \"protocol error\"},\n\t{93, \"ENOTCAPABLE\", \"capabilities insufficient\"},\n\t{94, \"ECAPMODE\", \"not permitted in capability mode\"},\n\t{95, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{96, \"EOWNERDEAD\", \"previous owner died\"},\n\t{97, \"EINTEGRITY\", \"integrity check failed\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"unknown signal\"},\n\t{33, \"SIGLIBRT\", \"unknown signal\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && freebsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                   = 0x10\n\tAF_ARP                         = 0x23\n\tAF_ATM                         = 0x1e\n\tAF_BLUETOOTH                   = 0x24\n\tAF_CCITT                       = 0xa\n\tAF_CHAOS                       = 0x5\n\tAF_CNT                         = 0x15\n\tAF_COIP                        = 0x14\n\tAF_DATAKIT                     = 0x9\n\tAF_DECnet                      = 0xc\n\tAF_DLI                         = 0xd\n\tAF_E164                        = 0x1a\n\tAF_ECMA                        = 0x8\n\tAF_HYLINK                      = 0xf\n\tAF_IEEE80211                   = 0x25\n\tAF_IMPLINK                     = 0x3\n\tAF_INET                        = 0x2\n\tAF_INET6                       = 0x1c\n\tAF_INET6_SDP                   = 0x2a\n\tAF_INET_SDP                    = 0x28\n\tAF_IPX                         = 0x17\n\tAF_ISDN                        = 0x1a\n\tAF_ISO                         = 0x7\n\tAF_LAT                         = 0xe\n\tAF_LINK                        = 0x12\n\tAF_LOCAL                       = 0x1\n\tAF_MAX                         = 0x2a\n\tAF_NATM                        = 0x1d\n\tAF_NETBIOS                     = 0x6\n\tAF_NETGRAPH                    = 0x20\n\tAF_OSI                         = 0x7\n\tAF_PUP                         = 0x4\n\tAF_ROUTE                       = 0x11\n\tAF_SCLUSTER                    = 0x22\n\tAF_SIP                         = 0x18\n\tAF_SLOW                        = 0x21\n\tAF_SNA                         = 0xb\n\tAF_UNIX                        = 0x1\n\tAF_UNSPEC                      = 0x0\n\tAF_VENDOR00                    = 0x27\n\tAF_VENDOR01                    = 0x29\n\tAF_VENDOR02                    = 0x2b\n\tAF_VENDOR03                    = 0x2d\n\tAF_VENDOR04                    = 0x2f\n\tAF_VENDOR05                    = 0x31\n\tAF_VENDOR06                    = 0x33\n\tAF_VENDOR07                    = 0x35\n\tAF_VENDOR08                    = 0x37\n\tAF_VENDOR09                    = 0x39\n\tAF_VENDOR10                    = 0x3b\n\tAF_VENDOR11                    = 0x3d\n\tAF_VENDOR12                    = 0x3f\n\tAF_VENDOR13                    = 0x41\n\tAF_VENDOR14                    = 0x43\n\tAF_VENDOR15                    = 0x45\n\tAF_VENDOR16                    = 0x47\n\tAF_VENDOR17                    = 0x49\n\tAF_VENDOR18                    = 0x4b\n\tAF_VENDOR19                    = 0x4d\n\tAF_VENDOR20                    = 0x4f\n\tAF_VENDOR21                    = 0x51\n\tAF_VENDOR22                    = 0x53\n\tAF_VENDOR23                    = 0x55\n\tAF_VENDOR24                    = 0x57\n\tAF_VENDOR25                    = 0x59\n\tAF_VENDOR26                    = 0x5b\n\tAF_VENDOR27                    = 0x5d\n\tAF_VENDOR28                    = 0x5f\n\tAF_VENDOR29                    = 0x61\n\tAF_VENDOR30                    = 0x63\n\tAF_VENDOR31                    = 0x65\n\tAF_VENDOR32                    = 0x67\n\tAF_VENDOR33                    = 0x69\n\tAF_VENDOR34                    = 0x6b\n\tAF_VENDOR35                    = 0x6d\n\tAF_VENDOR36                    = 0x6f\n\tAF_VENDOR37                    = 0x71\n\tAF_VENDOR38                    = 0x73\n\tAF_VENDOR39                    = 0x75\n\tAF_VENDOR40                    = 0x77\n\tAF_VENDOR41                    = 0x79\n\tAF_VENDOR42                    = 0x7b\n\tAF_VENDOR43                    = 0x7d\n\tAF_VENDOR44                    = 0x7f\n\tAF_VENDOR45                    = 0x81\n\tAF_VENDOR46                    = 0x83\n\tAF_VENDOR47                    = 0x85\n\tALTWERASE                      = 0x200\n\tB0                             = 0x0\n\tB110                           = 0x6e\n\tB115200                        = 0x1c200\n\tB1200                          = 0x4b0\n\tB134                           = 0x86\n\tB14400                         = 0x3840\n\tB150                           = 0x96\n\tB1800                          = 0x708\n\tB19200                         = 0x4b00\n\tB200                           = 0xc8\n\tB230400                        = 0x38400\n\tB2400                          = 0x960\n\tB28800                         = 0x7080\n\tB300                           = 0x12c\n\tB38400                         = 0x9600\n\tB460800                        = 0x70800\n\tB4800                          = 0x12c0\n\tB50                            = 0x32\n\tB57600                         = 0xe100\n\tB600                           = 0x258\n\tB7200                          = 0x1c20\n\tB75                            = 0x4b\n\tB76800                         = 0x12c00\n\tB921600                        = 0xe1000\n\tB9600                          = 0x2580\n\tBIOCFEEDBACK                   = 0x8004427c\n\tBIOCFLUSH                      = 0x20004268\n\tBIOCGBLEN                      = 0x40044266\n\tBIOCGDIRECTION                 = 0x40044276\n\tBIOCGDLT                       = 0x4004426a\n\tBIOCGDLTLIST                   = 0xc0104279\n\tBIOCGETBUFMODE                 = 0x4004427d\n\tBIOCGETIF                      = 0x4020426b\n\tBIOCGETZMAX                    = 0x4008427f\n\tBIOCGHDRCMPLT                  = 0x40044274\n\tBIOCGRSIG                      = 0x40044272\n\tBIOCGRTIMEOUT                  = 0x4010426e\n\tBIOCGSEESENT                   = 0x40044276\n\tBIOCGSTATS                     = 0x4008426f\n\tBIOCGTSTAMP                    = 0x40044283\n\tBIOCIMMEDIATE                  = 0x80044270\n\tBIOCLOCK                       = 0x2000427a\n\tBIOCPROMISC                    = 0x20004269\n\tBIOCROTZBUF                    = 0x40184280\n\tBIOCSBLEN                      = 0xc0044266\n\tBIOCSDIRECTION                 = 0x80044277\n\tBIOCSDLT                       = 0x80044278\n\tBIOCSETBUFMODE                 = 0x8004427e\n\tBIOCSETF                       = 0x80104267\n\tBIOCSETFNR                     = 0x80104282\n\tBIOCSETIF                      = 0x8020426c\n\tBIOCSETVLANPCP                 = 0x80044285\n\tBIOCSETWF                      = 0x8010427b\n\tBIOCSETZBUF                    = 0x80184281\n\tBIOCSHDRCMPLT                  = 0x80044275\n\tBIOCSRSIG                      = 0x80044273\n\tBIOCSRTIMEOUT                  = 0x8010426d\n\tBIOCSSEESENT                   = 0x80044277\n\tBIOCSTSTAMP                    = 0x80044284\n\tBIOCVERSION                    = 0x40044271\n\tBPF_A                          = 0x10\n\tBPF_ABS                        = 0x20\n\tBPF_ADD                        = 0x0\n\tBPF_ALIGNMENT                  = 0x8\n\tBPF_ALU                        = 0x4\n\tBPF_AND                        = 0x50\n\tBPF_B                          = 0x10\n\tBPF_BUFMODE_BUFFER             = 0x1\n\tBPF_BUFMODE_ZBUF               = 0x2\n\tBPF_DIV                        = 0x30\n\tBPF_H                          = 0x8\n\tBPF_IMM                        = 0x0\n\tBPF_IND                        = 0x40\n\tBPF_JA                         = 0x0\n\tBPF_JEQ                        = 0x10\n\tBPF_JGE                        = 0x30\n\tBPF_JGT                        = 0x20\n\tBPF_JMP                        = 0x5\n\tBPF_JSET                       = 0x40\n\tBPF_K                          = 0x0\n\tBPF_LD                         = 0x0\n\tBPF_LDX                        = 0x1\n\tBPF_LEN                        = 0x80\n\tBPF_LSH                        = 0x60\n\tBPF_MAJOR_VERSION              = 0x1\n\tBPF_MAXBUFSIZE                 = 0x80000\n\tBPF_MAXINSNS                   = 0x200\n\tBPF_MEM                        = 0x60\n\tBPF_MEMWORDS                   = 0x10\n\tBPF_MINBUFSIZE                 = 0x20\n\tBPF_MINOR_VERSION              = 0x1\n\tBPF_MISC                       = 0x7\n\tBPF_MOD                        = 0x90\n\tBPF_MSH                        = 0xa0\n\tBPF_MUL                        = 0x20\n\tBPF_NEG                        = 0x80\n\tBPF_OR                         = 0x40\n\tBPF_RELEASE                    = 0x30bb6\n\tBPF_RET                        = 0x6\n\tBPF_RSH                        = 0x70\n\tBPF_ST                         = 0x2\n\tBPF_STX                        = 0x3\n\tBPF_SUB                        = 0x10\n\tBPF_TAX                        = 0x0\n\tBPF_TXA                        = 0x80\n\tBPF_T_BINTIME                  = 0x2\n\tBPF_T_BINTIME_FAST             = 0x102\n\tBPF_T_BINTIME_MONOTONIC        = 0x202\n\tBPF_T_BINTIME_MONOTONIC_FAST   = 0x302\n\tBPF_T_FAST                     = 0x100\n\tBPF_T_FLAG_MASK                = 0x300\n\tBPF_T_FORMAT_MASK              = 0x3\n\tBPF_T_MICROTIME                = 0x0\n\tBPF_T_MICROTIME_FAST           = 0x100\n\tBPF_T_MICROTIME_MONOTONIC      = 0x200\n\tBPF_T_MICROTIME_MONOTONIC_FAST = 0x300\n\tBPF_T_MONOTONIC                = 0x200\n\tBPF_T_MONOTONIC_FAST           = 0x300\n\tBPF_T_NANOTIME                 = 0x1\n\tBPF_T_NANOTIME_FAST            = 0x101\n\tBPF_T_NANOTIME_MONOTONIC       = 0x201\n\tBPF_T_NANOTIME_MONOTONIC_FAST  = 0x301\n\tBPF_T_NONE                     = 0x3\n\tBPF_T_NORMAL                   = 0x0\n\tBPF_W                          = 0x0\n\tBPF_X                          = 0x8\n\tBPF_XOR                        = 0xa0\n\tBRKINT                         = 0x2\n\tCAP_ACCEPT                     = 0x200000020000000\n\tCAP_ACL_CHECK                  = 0x400000000010000\n\tCAP_ACL_DELETE                 = 0x400000000020000\n\tCAP_ACL_GET                    = 0x400000000040000\n\tCAP_ACL_SET                    = 0x400000000080000\n\tCAP_ALL0                       = 0x20007ffffffffff\n\tCAP_ALL1                       = 0x4000000001fffff\n\tCAP_BIND                       = 0x200000040000000\n\tCAP_BINDAT                     = 0x200008000000400\n\tCAP_CHFLAGSAT                  = 0x200000000001400\n\tCAP_CONNECT                    = 0x200000080000000\n\tCAP_CONNECTAT                  = 0x200010000000400\n\tCAP_CREATE                     = 0x200000000000040\n\tCAP_EVENT                      = 0x400000000000020\n\tCAP_EXTATTR_DELETE             = 0x400000000001000\n\tCAP_EXTATTR_GET                = 0x400000000002000\n\tCAP_EXTATTR_LIST               = 0x400000000004000\n\tCAP_EXTATTR_SET                = 0x400000000008000\n\tCAP_FCHDIR                     = 0x200000000000800\n\tCAP_FCHFLAGS                   = 0x200000000001000\n\tCAP_FCHMOD                     = 0x200000000002000\n\tCAP_FCHMODAT                   = 0x200000000002400\n\tCAP_FCHOWN                     = 0x200000000004000\n\tCAP_FCHOWNAT                   = 0x200000000004400\n\tCAP_FCNTL                      = 0x200000000008000\n\tCAP_FCNTL_ALL                  = 0x78\n\tCAP_FCNTL_GETFL                = 0x8\n\tCAP_FCNTL_GETOWN               = 0x20\n\tCAP_FCNTL_SETFL                = 0x10\n\tCAP_FCNTL_SETOWN               = 0x40\n\tCAP_FEXECVE                    = 0x200000000000080\n\tCAP_FLOCK                      = 0x200000000010000\n\tCAP_FPATHCONF                  = 0x200000000020000\n\tCAP_FSCK                       = 0x200000000040000\n\tCAP_FSTAT                      = 0x200000000080000\n\tCAP_FSTATAT                    = 0x200000000080400\n\tCAP_FSTATFS                    = 0x200000000100000\n\tCAP_FSYNC                      = 0x200000000000100\n\tCAP_FTRUNCATE                  = 0x200000000000200\n\tCAP_FUTIMES                    = 0x200000000200000\n\tCAP_FUTIMESAT                  = 0x200000000200400\n\tCAP_GETPEERNAME                = 0x200000100000000\n\tCAP_GETSOCKNAME                = 0x200000200000000\n\tCAP_GETSOCKOPT                 = 0x200000400000000\n\tCAP_IOCTL                      = 0x400000000000080\n\tCAP_IOCTLS_ALL                 = 0x7fffffffffffffff\n\tCAP_KQUEUE                     = 0x400000000100040\n\tCAP_KQUEUE_CHANGE              = 0x400000000100000\n\tCAP_KQUEUE_EVENT               = 0x400000000000040\n\tCAP_LINKAT_SOURCE              = 0x200020000000400\n\tCAP_LINKAT_TARGET              = 0x200000000400400\n\tCAP_LISTEN                     = 0x200000800000000\n\tCAP_LOOKUP                     = 0x200000000000400\n\tCAP_MAC_GET                    = 0x400000000000001\n\tCAP_MAC_SET                    = 0x400000000000002\n\tCAP_MKDIRAT                    = 0x200000000800400\n\tCAP_MKFIFOAT                   = 0x200000001000400\n\tCAP_MKNODAT                    = 0x200000002000400\n\tCAP_MMAP                       = 0x200000000000010\n\tCAP_MMAP_R                     = 0x20000000000001d\n\tCAP_MMAP_RW                    = 0x20000000000001f\n\tCAP_MMAP_RWX                   = 0x20000000000003f\n\tCAP_MMAP_RX                    = 0x20000000000003d\n\tCAP_MMAP_W                     = 0x20000000000001e\n\tCAP_MMAP_WX                    = 0x20000000000003e\n\tCAP_MMAP_X                     = 0x20000000000003c\n\tCAP_PDGETPID                   = 0x400000000000200\n\tCAP_PDKILL                     = 0x400000000000800\n\tCAP_PDWAIT                     = 0x400000000000400\n\tCAP_PEELOFF                    = 0x200001000000000\n\tCAP_POLL_EVENT                 = 0x400000000000020\n\tCAP_PREAD                      = 0x20000000000000d\n\tCAP_PWRITE                     = 0x20000000000000e\n\tCAP_READ                       = 0x200000000000001\n\tCAP_RECV                       = 0x200000000000001\n\tCAP_RENAMEAT_SOURCE            = 0x200000004000400\n\tCAP_RENAMEAT_TARGET            = 0x200040000000400\n\tCAP_RIGHTS_VERSION             = 0x0\n\tCAP_RIGHTS_VERSION_00          = 0x0\n\tCAP_SEEK                       = 0x20000000000000c\n\tCAP_SEEK_TELL                  = 0x200000000000004\n\tCAP_SEM_GETVALUE               = 0x400000000000004\n\tCAP_SEM_POST                   = 0x400000000000008\n\tCAP_SEM_WAIT                   = 0x400000000000010\n\tCAP_SEND                       = 0x200000000000002\n\tCAP_SETSOCKOPT                 = 0x200002000000000\n\tCAP_SHUTDOWN                   = 0x200004000000000\n\tCAP_SOCK_CLIENT                = 0x200007780000003\n\tCAP_SOCK_SERVER                = 0x200007f60000003\n\tCAP_SYMLINKAT                  = 0x200000008000400\n\tCAP_TTYHOOK                    = 0x400000000000100\n\tCAP_UNLINKAT                   = 0x200000010000400\n\tCAP_UNUSED0_44                 = 0x200080000000000\n\tCAP_UNUSED0_57                 = 0x300000000000000\n\tCAP_UNUSED1_22                 = 0x400000000200000\n\tCAP_UNUSED1_57                 = 0x500000000000000\n\tCAP_WRITE                      = 0x200000000000002\n\tCFLUSH                         = 0xf\n\tCLOCAL                         = 0x8000\n\tCLOCK_MONOTONIC                = 0x4\n\tCLOCK_MONOTONIC_FAST           = 0xc\n\tCLOCK_MONOTONIC_PRECISE        = 0xb\n\tCLOCK_PROCESS_CPUTIME_ID       = 0xf\n\tCLOCK_PROF                     = 0x2\n\tCLOCK_REALTIME                 = 0x0\n\tCLOCK_REALTIME_FAST            = 0xa\n\tCLOCK_REALTIME_PRECISE         = 0x9\n\tCLOCK_SECOND                   = 0xd\n\tCLOCK_THREAD_CPUTIME_ID        = 0xe\n\tCLOCK_UPTIME                   = 0x5\n\tCLOCK_UPTIME_FAST              = 0x8\n\tCLOCK_UPTIME_PRECISE           = 0x7\n\tCLOCK_VIRTUAL                  = 0x1\n\tCPUSTATES                      = 0x5\n\tCP_IDLE                        = 0x4\n\tCP_INTR                        = 0x3\n\tCP_NICE                        = 0x1\n\tCP_SYS                         = 0x2\n\tCP_USER                        = 0x0\n\tCREAD                          = 0x800\n\tCRTSCTS                        = 0x30000\n\tCS5                            = 0x0\n\tCS6                            = 0x100\n\tCS7                            = 0x200\n\tCS8                            = 0x300\n\tCSIZE                          = 0x300\n\tCSTART                         = 0x11\n\tCSTATUS                        = 0x14\n\tCSTOP                          = 0x13\n\tCSTOPB                         = 0x400\n\tCSUSP                          = 0x1a\n\tCTL_HW                         = 0x6\n\tCTL_KERN                       = 0x1\n\tCTL_MAXNAME                    = 0x18\n\tCTL_NET                        = 0x4\n\tDIOCGATTR                      = 0xc148648e\n\tDIOCGDELETE                    = 0x80106488\n\tDIOCGFLUSH                     = 0x20006487\n\tDIOCGFRONTSTUFF                = 0x40086486\n\tDIOCGFWHEADS                   = 0x40046483\n\tDIOCGFWSECTORS                 = 0x40046482\n\tDIOCGIDENT                     = 0x41006489\n\tDIOCGMEDIASIZE                 = 0x40086481\n\tDIOCGPHYSPATH                  = 0x4400648d\n\tDIOCGPROVIDERNAME              = 0x4400648a\n\tDIOCGSECTORSIZE                = 0x40046480\n\tDIOCGSTRIPEOFFSET              = 0x4008648c\n\tDIOCGSTRIPESIZE                = 0x4008648b\n\tDIOCSKERNELDUMP                = 0x80506490\n\tDIOCSKERNELDUMP_FREEBSD11      = 0x80046485\n\tDIOCZONECMD                    = 0xc080648f\n\tDLT_A429                       = 0xb8\n\tDLT_A653_ICM                   = 0xb9\n\tDLT_AIRONET_HEADER             = 0x78\n\tDLT_AOS                        = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394     = 0x8a\n\tDLT_ARCNET                     = 0x7\n\tDLT_ARCNET_LINUX               = 0x81\n\tDLT_ATM_CLIP                   = 0x13\n\tDLT_ATM_RFC1483                = 0xb\n\tDLT_AURORA                     = 0x7e\n\tDLT_AX25                       = 0x3\n\tDLT_AX25_KISS                  = 0xca\n\tDLT_BACNET_MS_TP               = 0xa5\n\tDLT_BLUETOOTH_BREDR_BB         = 0xff\n\tDLT_BLUETOOTH_HCI_H4           = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9\n\tDLT_BLUETOOTH_LE_LL            = 0xfb\n\tDLT_BLUETOOTH_LE_LL_WITH_PHDR  = 0x100\n\tDLT_BLUETOOTH_LINUX_MONITOR    = 0xfe\n\tDLT_CAN20B                     = 0xbe\n\tDLT_CAN_SOCKETCAN              = 0xe3\n\tDLT_CHAOS                      = 0x5\n\tDLT_CHDLC                      = 0x68\n\tDLT_CISCO_IOS                  = 0x76\n\tDLT_CLASS_NETBSD_RAWAF         = 0x2240000\n\tDLT_C_HDLC                     = 0x68\n\tDLT_C_HDLC_WITH_DIR            = 0xcd\n\tDLT_DBUS                       = 0xe7\n\tDLT_DECT                       = 0xdd\n\tDLT_DISPLAYPORT_AUX            = 0x113\n\tDLT_DOCSIS                     = 0x8f\n\tDLT_DOCSIS31_XRA31             = 0x111\n\tDLT_DVB_CI                     = 0xeb\n\tDLT_ECONET                     = 0x73\n\tDLT_EN10MB                     = 0x1\n\tDLT_EN3MB                      = 0x2\n\tDLT_ENC                        = 0x6d\n\tDLT_EPON                       = 0x103\n\tDLT_ERF                        = 0xc5\n\tDLT_ERF_ETH                    = 0xaf\n\tDLT_ERF_POS                    = 0xb0\n\tDLT_ETHERNET_MPACKET           = 0x112\n\tDLT_FC_2                       = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS     = 0xe1\n\tDLT_FDDI                       = 0xa\n\tDLT_FLEXRAY                    = 0xd2\n\tDLT_FRELAY                     = 0x6b\n\tDLT_FRELAY_WITH_DIR            = 0xce\n\tDLT_GCOM_SERIAL                = 0xad\n\tDLT_GCOM_T1E1                  = 0xac\n\tDLT_GPF_F                      = 0xab\n\tDLT_GPF_T                      = 0xaa\n\tDLT_GPRS_LLC                   = 0xa9\n\tDLT_GSMTAP_ABIS                = 0xda\n\tDLT_GSMTAP_UM                  = 0xd9\n\tDLT_IBM_SN                     = 0x92\n\tDLT_IBM_SP                     = 0x91\n\tDLT_IEEE802                    = 0x6\n\tDLT_IEEE802_11                 = 0x69\n\tDLT_IEEE802_11_RADIO           = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS       = 0xa3\n\tDLT_IEEE802_15_4               = 0xc3\n\tDLT_IEEE802_15_4_LINUX         = 0xbf\n\tDLT_IEEE802_15_4_NOFCS         = 0xe6\n\tDLT_IEEE802_15_4_NONASK_PHY    = 0xd7\n\tDLT_IEEE802_16_MAC_CPS         = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO   = 0xc1\n\tDLT_INFINIBAND                 = 0xf7\n\tDLT_IPFILTER                   = 0x74\n\tDLT_IPMB_KONTRON               = 0xc7\n\tDLT_IPMB_LINUX                 = 0xd1\n\tDLT_IPMI_HPM_2                 = 0x104\n\tDLT_IPNET                      = 0xe2\n\tDLT_IPOIB                      = 0xf2\n\tDLT_IPV4                       = 0xe4\n\tDLT_IPV6                       = 0xe5\n\tDLT_IP_OVER_FC                 = 0x7a\n\tDLT_ISO_14443                  = 0x108\n\tDLT_JUNIPER_ATM1               = 0x89\n\tDLT_JUNIPER_ATM2               = 0x87\n\tDLT_JUNIPER_ATM_CEMIC          = 0xee\n\tDLT_JUNIPER_CHDLC              = 0xb5\n\tDLT_JUNIPER_ES                 = 0x84\n\tDLT_JUNIPER_ETHER              = 0xb2\n\tDLT_JUNIPER_FIBRECHANNEL       = 0xea\n\tDLT_JUNIPER_FRELAY             = 0xb4\n\tDLT_JUNIPER_GGSN               = 0x85\n\tDLT_JUNIPER_ISM                = 0xc2\n\tDLT_JUNIPER_MFR                = 0x86\n\tDLT_JUNIPER_MLFR               = 0x83\n\tDLT_JUNIPER_MLPPP              = 0x82\n\tDLT_JUNIPER_MONITOR            = 0xa4\n\tDLT_JUNIPER_PIC_PEER           = 0xae\n\tDLT_JUNIPER_PPP                = 0xb3\n\tDLT_JUNIPER_PPPOE              = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM          = 0xa8\n\tDLT_JUNIPER_SERVICES           = 0x88\n\tDLT_JUNIPER_SRX_E2E            = 0xe9\n\tDLT_JUNIPER_ST                 = 0xc8\n\tDLT_JUNIPER_VP                 = 0xb7\n\tDLT_JUNIPER_VS                 = 0xe8\n\tDLT_LAPB_WITH_DIR              = 0xcf\n\tDLT_LAPD                       = 0xcb\n\tDLT_LIN                        = 0xd4\n\tDLT_LINUX_EVDEV                = 0xd8\n\tDLT_LINUX_IRDA                 = 0x90\n\tDLT_LINUX_LAPD                 = 0xb1\n\tDLT_LINUX_PPP_WITHDIRECTION    = 0xa6\n\tDLT_LINUX_SLL                  = 0x71\n\tDLT_LINUX_SLL2                 = 0x114\n\tDLT_LOOP                       = 0x6c\n\tDLT_LORATAP                    = 0x10e\n\tDLT_LTALK                      = 0x72\n\tDLT_MATCHING_MAX               = 0x114\n\tDLT_MATCHING_MIN               = 0x68\n\tDLT_MFR                        = 0xb6\n\tDLT_MOST                       = 0xd3\n\tDLT_MPEG_2_TS                  = 0xf3\n\tDLT_MPLS                       = 0xdb\n\tDLT_MTP2                       = 0x8c\n\tDLT_MTP2_WITH_PHDR             = 0x8b\n\tDLT_MTP3                       = 0x8d\n\tDLT_MUX27010                   = 0xec\n\tDLT_NETANALYZER                = 0xf0\n\tDLT_NETANALYZER_TRANSPARENT    = 0xf1\n\tDLT_NETLINK                    = 0xfd\n\tDLT_NFC_LLCP                   = 0xf5\n\tDLT_NFLOG                      = 0xef\n\tDLT_NG40                       = 0xf4\n\tDLT_NORDIC_BLE                 = 0x110\n\tDLT_NULL                       = 0x0\n\tDLT_OPENFLOW                   = 0x10b\n\tDLT_PCI_EXP                    = 0x7d\n\tDLT_PFLOG                      = 0x75\n\tDLT_PFSYNC                     = 0x79\n\tDLT_PKTAP                      = 0x102\n\tDLT_PPI                        = 0xc0\n\tDLT_PPP                        = 0x9\n\tDLT_PPP_BSDOS                  = 0xe\n\tDLT_PPP_ETHER                  = 0x33\n\tDLT_PPP_PPPD                   = 0xa6\n\tDLT_PPP_SERIAL                 = 0x32\n\tDLT_PPP_WITH_DIR               = 0xcc\n\tDLT_PPP_WITH_DIRECTION         = 0xa6\n\tDLT_PRISM_HEADER               = 0x77\n\tDLT_PROFIBUS_DL                = 0x101\n\tDLT_PRONET                     = 0x4\n\tDLT_RAIF1                      = 0xc6\n\tDLT_RAW                        = 0xc\n\tDLT_RDS                        = 0x109\n\tDLT_REDBACK_SMARTEDGE          = 0x20\n\tDLT_RIO                        = 0x7c\n\tDLT_RTAC_SERIAL                = 0xfa\n\tDLT_SCCP                       = 0x8e\n\tDLT_SCTP                       = 0xf8\n\tDLT_SDLC                       = 0x10c\n\tDLT_SITA                       = 0xc4\n\tDLT_SLIP                       = 0x8\n\tDLT_SLIP_BSDOS                 = 0xd\n\tDLT_STANAG_5066_D_PDU          = 0xed\n\tDLT_SUNATM                     = 0x7b\n\tDLT_SYMANTEC_FIREWALL          = 0x63\n\tDLT_TI_LLN_SNIFFER             = 0x10d\n\tDLT_TZSP                       = 0x80\n\tDLT_USB                        = 0xba\n\tDLT_USBPCAP                    = 0xf9\n\tDLT_USB_DARWIN                 = 0x10a\n\tDLT_USB_FREEBSD                = 0xba\n\tDLT_USB_LINUX                  = 0xbd\n\tDLT_USB_LINUX_MMAPPED          = 0xdc\n\tDLT_USER0                      = 0x93\n\tDLT_USER1                      = 0x94\n\tDLT_USER10                     = 0x9d\n\tDLT_USER11                     = 0x9e\n\tDLT_USER12                     = 0x9f\n\tDLT_USER13                     = 0xa0\n\tDLT_USER14                     = 0xa1\n\tDLT_USER15                     = 0xa2\n\tDLT_USER2                      = 0x95\n\tDLT_USER3                      = 0x96\n\tDLT_USER4                      = 0x97\n\tDLT_USER5                      = 0x98\n\tDLT_USER6                      = 0x99\n\tDLT_USER7                      = 0x9a\n\tDLT_USER8                      = 0x9b\n\tDLT_USER9                      = 0x9c\n\tDLT_VSOCK                      = 0x10f\n\tDLT_WATTSTOPPER_DLM            = 0x107\n\tDLT_WIHART                     = 0xdf\n\tDLT_WIRESHARK_UPPER_PDU        = 0xfc\n\tDLT_X2E_SERIAL                 = 0xd5\n\tDLT_X2E_XORAYA                 = 0xd6\n\tDLT_ZWAVE_R1_R2                = 0x105\n\tDLT_ZWAVE_R3                   = 0x106\n\tDT_BLK                         = 0x6\n\tDT_CHR                         = 0x2\n\tDT_DIR                         = 0x4\n\tDT_FIFO                        = 0x1\n\tDT_LNK                         = 0xa\n\tDT_REG                         = 0x8\n\tDT_SOCK                        = 0xc\n\tDT_UNKNOWN                     = 0x0\n\tDT_WHT                         = 0xe\n\tECHO                           = 0x8\n\tECHOCTL                        = 0x40\n\tECHOE                          = 0x2\n\tECHOK                          = 0x4\n\tECHOKE                         = 0x1\n\tECHONL                         = 0x10\n\tECHOPRT                        = 0x20\n\tEVFILT_AIO                     = -0x3\n\tEVFILT_EMPTY                   = -0xd\n\tEVFILT_FS                      = -0x9\n\tEVFILT_LIO                     = -0xa\n\tEVFILT_PROC                    = -0x5\n\tEVFILT_PROCDESC                = -0x8\n\tEVFILT_READ                    = -0x1\n\tEVFILT_SENDFILE                = -0xc\n\tEVFILT_SIGNAL                  = -0x6\n\tEVFILT_SYSCOUNT                = 0xd\n\tEVFILT_TIMER                   = -0x7\n\tEVFILT_USER                    = -0xb\n\tEVFILT_VNODE                   = -0x4\n\tEVFILT_WRITE                   = -0x2\n\tEVNAMEMAP_NAME_SIZE            = 0x40\n\tEV_ADD                         = 0x1\n\tEV_CLEAR                       = 0x20\n\tEV_DELETE                      = 0x2\n\tEV_DISABLE                     = 0x8\n\tEV_DISPATCH                    = 0x80\n\tEV_DROP                        = 0x1000\n\tEV_ENABLE                      = 0x4\n\tEV_EOF                         = 0x8000\n\tEV_ERROR                       = 0x4000\n\tEV_FLAG1                       = 0x2000\n\tEV_FLAG2                       = 0x4000\n\tEV_FORCEONESHOT                = 0x100\n\tEV_ONESHOT                     = 0x10\n\tEV_RECEIPT                     = 0x40\n\tEV_SYSFLAGS                    = 0xf000\n\tEXTA                           = 0x4b00\n\tEXTATTR_MAXNAMELEN             = 0xff\n\tEXTATTR_NAMESPACE_EMPTY        = 0x0\n\tEXTATTR_NAMESPACE_SYSTEM       = 0x2\n\tEXTATTR_NAMESPACE_USER         = 0x1\n\tEXTB                           = 0x9600\n\tEXTPROC                        = 0x800\n\tFD_CLOEXEC                     = 0x1\n\tFD_SETSIZE                     = 0x400\n\tFLUSHO                         = 0x800000\n\tF_CANCEL                       = 0x5\n\tF_DUP2FD                       = 0xa\n\tF_DUP2FD_CLOEXEC               = 0x12\n\tF_DUPFD                        = 0x0\n\tF_DUPFD_CLOEXEC                = 0x11\n\tF_GETFD                        = 0x1\n\tF_GETFL                        = 0x3\n\tF_GETLK                        = 0xb\n\tF_GETOWN                       = 0x5\n\tF_OGETLK                       = 0x7\n\tF_OK                           = 0x0\n\tF_OSETLK                       = 0x8\n\tF_OSETLKW                      = 0x9\n\tF_RDAHEAD                      = 0x10\n\tF_RDLCK                        = 0x1\n\tF_READAHEAD                    = 0xf\n\tF_SETFD                        = 0x2\n\tF_SETFL                        = 0x4\n\tF_SETLK                        = 0xc\n\tF_SETLKW                       = 0xd\n\tF_SETLK_REMOTE                 = 0xe\n\tF_SETOWN                       = 0x6\n\tF_UNLCK                        = 0x2\n\tF_UNLCKSYS                     = 0x4\n\tF_WRLCK                        = 0x3\n\tHUPCL                          = 0x4000\n\tHW_MACHINE                     = 0x1\n\tICANON                         = 0x100\n\tICMP6_FILTER                   = 0x12\n\tICRNL                          = 0x100\n\tIEXTEN                         = 0x400\n\tIFAN_ARRIVAL                   = 0x0\n\tIFAN_DEPARTURE                 = 0x1\n\tIFCAP_WOL_MAGIC                = 0x2000\n\tIFF_ALLMULTI                   = 0x200\n\tIFF_ALTPHYS                    = 0x4000\n\tIFF_BROADCAST                  = 0x2\n\tIFF_CANTCHANGE                 = 0x218f52\n\tIFF_CANTCONFIG                 = 0x10000\n\tIFF_DEBUG                      = 0x4\n\tIFF_DRV_OACTIVE                = 0x400\n\tIFF_DRV_RUNNING                = 0x40\n\tIFF_DYING                      = 0x200000\n\tIFF_LINK0                      = 0x1000\n\tIFF_LINK1                      = 0x2000\n\tIFF_LINK2                      = 0x4000\n\tIFF_LOOPBACK                   = 0x8\n\tIFF_MONITOR                    = 0x40000\n\tIFF_MULTICAST                  = 0x8000\n\tIFF_NOARP                      = 0x80\n\tIFF_NOGROUP                    = 0x800000\n\tIFF_OACTIVE                    = 0x400\n\tIFF_POINTOPOINT                = 0x10\n\tIFF_PPROMISC                   = 0x20000\n\tIFF_PROMISC                    = 0x100\n\tIFF_RENAMING                   = 0x400000\n\tIFF_RUNNING                    = 0x40\n\tIFF_SIMPLEX                    = 0x800\n\tIFF_STATICARP                  = 0x80000\n\tIFF_UP                         = 0x1\n\tIFNAMSIZ                       = 0x10\n\tIFT_BRIDGE                     = 0xd1\n\tIFT_CARP                       = 0xf8\n\tIFT_IEEE1394                   = 0x90\n\tIFT_INFINIBAND                 = 0xc7\n\tIFT_L2VLAN                     = 0x87\n\tIFT_L3IPVLAN                   = 0x88\n\tIFT_PPP                        = 0x17\n\tIFT_PROPVIRTUAL                = 0x35\n\tIGNBRK                         = 0x1\n\tIGNCR                          = 0x80\n\tIGNPAR                         = 0x4\n\tIMAXBEL                        = 0x2000\n\tINLCR                          = 0x40\n\tINPCK                          = 0x10\n\tIN_CLASSA_HOST                 = 0xffffff\n\tIN_CLASSA_MAX                  = 0x80\n\tIN_CLASSA_NET                  = 0xff000000\n\tIN_CLASSA_NSHIFT               = 0x18\n\tIN_CLASSB_HOST                 = 0xffff\n\tIN_CLASSB_MAX                  = 0x10000\n\tIN_CLASSB_NET                  = 0xffff0000\n\tIN_CLASSB_NSHIFT               = 0x10\n\tIN_CLASSC_HOST                 = 0xff\n\tIN_CLASSC_NET                  = 0xffffff00\n\tIN_CLASSC_NSHIFT               = 0x8\n\tIN_CLASSD_HOST                 = 0xfffffff\n\tIN_CLASSD_NET                  = 0xf0000000\n\tIN_CLASSD_NSHIFT               = 0x1c\n\tIN_LOOPBACKNET                 = 0x7f\n\tIN_RFC3021_MASK                = 0xfffffffe\n\tIPPROTO_3PC                    = 0x22\n\tIPPROTO_ADFS                   = 0x44\n\tIPPROTO_AH                     = 0x33\n\tIPPROTO_AHIP                   = 0x3d\n\tIPPROTO_APES                   = 0x63\n\tIPPROTO_ARGUS                  = 0xd\n\tIPPROTO_AX25                   = 0x5d\n\tIPPROTO_BHA                    = 0x31\n\tIPPROTO_BLT                    = 0x1e\n\tIPPROTO_BRSATMON               = 0x4c\n\tIPPROTO_CARP                   = 0x70\n\tIPPROTO_CFTP                   = 0x3e\n\tIPPROTO_CHAOS                  = 0x10\n\tIPPROTO_CMTP                   = 0x26\n\tIPPROTO_CPHB                   = 0x49\n\tIPPROTO_CPNX                   = 0x48\n\tIPPROTO_DCCP                   = 0x21\n\tIPPROTO_DDP                    = 0x25\n\tIPPROTO_DGP                    = 0x56\n\tIPPROTO_DIVERT                 = 0x102\n\tIPPROTO_DONE                   = 0x101\n\tIPPROTO_DSTOPTS                = 0x3c\n\tIPPROTO_EGP                    = 0x8\n\tIPPROTO_EMCON                  = 0xe\n\tIPPROTO_ENCAP                  = 0x62\n\tIPPROTO_EON                    = 0x50\n\tIPPROTO_ESP                    = 0x32\n\tIPPROTO_ETHERIP                = 0x61\n\tIPPROTO_FRAGMENT               = 0x2c\n\tIPPROTO_GGP                    = 0x3\n\tIPPROTO_GMTP                   = 0x64\n\tIPPROTO_GRE                    = 0x2f\n\tIPPROTO_HELLO                  = 0x3f\n\tIPPROTO_HIP                    = 0x8b\n\tIPPROTO_HMP                    = 0x14\n\tIPPROTO_HOPOPTS                = 0x0\n\tIPPROTO_ICMP                   = 0x1\n\tIPPROTO_ICMPV6                 = 0x3a\n\tIPPROTO_IDP                    = 0x16\n\tIPPROTO_IDPR                   = 0x23\n\tIPPROTO_IDRP                   = 0x2d\n\tIPPROTO_IGMP                   = 0x2\n\tIPPROTO_IGP                    = 0x55\n\tIPPROTO_IGRP                   = 0x58\n\tIPPROTO_IL                     = 0x28\n\tIPPROTO_INLSP                  = 0x34\n\tIPPROTO_INP                    = 0x20\n\tIPPROTO_IP                     = 0x0\n\tIPPROTO_IPCOMP                 = 0x6c\n\tIPPROTO_IPCV                   = 0x47\n\tIPPROTO_IPEIP                  = 0x5e\n\tIPPROTO_IPIP                   = 0x4\n\tIPPROTO_IPPC                   = 0x43\n\tIPPROTO_IPV4                   = 0x4\n\tIPPROTO_IPV6                   = 0x29\n\tIPPROTO_IRTP                   = 0x1c\n\tIPPROTO_KRYPTOLAN              = 0x41\n\tIPPROTO_LARP                   = 0x5b\n\tIPPROTO_LEAF1                  = 0x19\n\tIPPROTO_LEAF2                  = 0x1a\n\tIPPROTO_MAX                    = 0x100\n\tIPPROTO_MEAS                   = 0x13\n\tIPPROTO_MH                     = 0x87\n\tIPPROTO_MHRP                   = 0x30\n\tIPPROTO_MICP                   = 0x5f\n\tIPPROTO_MOBILE                 = 0x37\n\tIPPROTO_MPLS                   = 0x89\n\tIPPROTO_MTP                    = 0x5c\n\tIPPROTO_MUX                    = 0x12\n\tIPPROTO_ND                     = 0x4d\n\tIPPROTO_NHRP                   = 0x36\n\tIPPROTO_NONE                   = 0x3b\n\tIPPROTO_NSP                    = 0x1f\n\tIPPROTO_NVPII                  = 0xb\n\tIPPROTO_OLD_DIVERT             = 0xfe\n\tIPPROTO_OSPFIGP                = 0x59\n\tIPPROTO_PFSYNC                 = 0xf0\n\tIPPROTO_PGM                    = 0x71\n\tIPPROTO_PIGP                   = 0x9\n\tIPPROTO_PIM                    = 0x67\n\tIPPROTO_PRM                    = 0x15\n\tIPPROTO_PUP                    = 0xc\n\tIPPROTO_PVP                    = 0x4b\n\tIPPROTO_RAW                    = 0xff\n\tIPPROTO_RCCMON                 = 0xa\n\tIPPROTO_RDP                    = 0x1b\n\tIPPROTO_RESERVED_253           = 0xfd\n\tIPPROTO_RESERVED_254           = 0xfe\n\tIPPROTO_ROUTING                = 0x2b\n\tIPPROTO_RSVP                   = 0x2e\n\tIPPROTO_RVD                    = 0x42\n\tIPPROTO_SATEXPAK               = 0x40\n\tIPPROTO_SATMON                 = 0x45\n\tIPPROTO_SCCSP                  = 0x60\n\tIPPROTO_SCTP                   = 0x84\n\tIPPROTO_SDRP                   = 0x2a\n\tIPPROTO_SEND                   = 0x103\n\tIPPROTO_SHIM6                  = 0x8c\n\tIPPROTO_SKIP                   = 0x39\n\tIPPROTO_SPACER                 = 0x7fff\n\tIPPROTO_SRPC                   = 0x5a\n\tIPPROTO_ST                     = 0x7\n\tIPPROTO_SVMTP                  = 0x52\n\tIPPROTO_SWIPE                  = 0x35\n\tIPPROTO_TCF                    = 0x57\n\tIPPROTO_TCP                    = 0x6\n\tIPPROTO_TLSP                   = 0x38\n\tIPPROTO_TP                     = 0x1d\n\tIPPROTO_TPXX                   = 0x27\n\tIPPROTO_TRUNK1                 = 0x17\n\tIPPROTO_TRUNK2                 = 0x18\n\tIPPROTO_TTP                    = 0x54\n\tIPPROTO_UDP                    = 0x11\n\tIPPROTO_UDPLITE                = 0x88\n\tIPPROTO_VINES                  = 0x53\n\tIPPROTO_VISA                   = 0x46\n\tIPPROTO_VMTP                   = 0x51\n\tIPPROTO_WBEXPAK                = 0x4f\n\tIPPROTO_WBMON                  = 0x4e\n\tIPPROTO_WSN                    = 0x4a\n\tIPPROTO_XNET                   = 0xf\n\tIPPROTO_XTP                    = 0x24\n\tIPV6_AUTOFLOWLABEL             = 0x3b\n\tIPV6_BINDANY                   = 0x40\n\tIPV6_BINDMULTI                 = 0x41\n\tIPV6_BINDV6ONLY                = 0x1b\n\tIPV6_CHECKSUM                  = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS    = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP    = 0x1\n\tIPV6_DEFHLIM                   = 0x40\n\tIPV6_DONTFRAG                  = 0x3e\n\tIPV6_DSTOPTS                   = 0x32\n\tIPV6_FLOWID                    = 0x43\n\tIPV6_FLOWINFO_MASK             = 0xffffff0f\n\tIPV6_FLOWLABEL_LEN             = 0x14\n\tIPV6_FLOWLABEL_MASK            = 0xffff0f00\n\tIPV6_FLOWTYPE                  = 0x44\n\tIPV6_FRAGTTL                   = 0x78\n\tIPV6_FW_ADD                    = 0x1e\n\tIPV6_FW_DEL                    = 0x1f\n\tIPV6_FW_FLUSH                  = 0x20\n\tIPV6_FW_GET                    = 0x22\n\tIPV6_FW_ZERO                   = 0x21\n\tIPV6_HLIMDEC                   = 0x1\n\tIPV6_HOPLIMIT                  = 0x2f\n\tIPV6_HOPOPTS                   = 0x31\n\tIPV6_IPSEC_POLICY              = 0x1c\n\tIPV6_JOIN_GROUP                = 0xc\n\tIPV6_LEAVE_GROUP               = 0xd\n\tIPV6_MAXHLIM                   = 0xff\n\tIPV6_MAXOPTHDR                 = 0x800\n\tIPV6_MAXPACKET                 = 0xffff\n\tIPV6_MAX_GROUP_SRC_FILTER      = 0x200\n\tIPV6_MAX_MEMBERSHIPS           = 0xfff\n\tIPV6_MAX_SOCK_SRC_FILTER       = 0x80\n\tIPV6_MMTU                      = 0x500\n\tIPV6_MSFILTER                  = 0x4a\n\tIPV6_MULTICAST_HOPS            = 0xa\n\tIPV6_MULTICAST_IF              = 0x9\n\tIPV6_MULTICAST_LOOP            = 0xb\n\tIPV6_NEXTHOP                   = 0x30\n\tIPV6_ORIGDSTADDR               = 0x48\n\tIPV6_PATHMTU                   = 0x2c\n\tIPV6_PKTINFO                   = 0x2e\n\tIPV6_PORTRANGE                 = 0xe\n\tIPV6_PORTRANGE_DEFAULT         = 0x0\n\tIPV6_PORTRANGE_HIGH            = 0x1\n\tIPV6_PORTRANGE_LOW             = 0x2\n\tIPV6_PREFER_TEMPADDR           = 0x3f\n\tIPV6_RECVDSTOPTS               = 0x28\n\tIPV6_RECVFLOWID                = 0x46\n\tIPV6_RECVHOPLIMIT              = 0x25\n\tIPV6_RECVHOPOPTS               = 0x27\n\tIPV6_RECVORIGDSTADDR           = 0x48\n\tIPV6_RECVPATHMTU               = 0x2b\n\tIPV6_RECVPKTINFO               = 0x24\n\tIPV6_RECVRSSBUCKETID           = 0x47\n\tIPV6_RECVRTHDR                 = 0x26\n\tIPV6_RECVTCLASS                = 0x39\n\tIPV6_RSSBUCKETID               = 0x45\n\tIPV6_RSS_LISTEN_BUCKET         = 0x42\n\tIPV6_RTHDR                     = 0x33\n\tIPV6_RTHDRDSTOPTS              = 0x23\n\tIPV6_RTHDR_LOOSE               = 0x0\n\tIPV6_RTHDR_STRICT              = 0x1\n\tIPV6_RTHDR_TYPE_0              = 0x0\n\tIPV6_SOCKOPT_RESERVED1         = 0x3\n\tIPV6_TCLASS                    = 0x3d\n\tIPV6_UNICAST_HOPS              = 0x4\n\tIPV6_USE_MIN_MTU               = 0x2a\n\tIPV6_V6ONLY                    = 0x1b\n\tIPV6_VERSION                   = 0x60\n\tIPV6_VERSION_MASK              = 0xf0\n\tIPV6_VLAN_PCP                  = 0x4b\n\tIP_ADD_MEMBERSHIP              = 0xc\n\tIP_ADD_SOURCE_MEMBERSHIP       = 0x46\n\tIP_BINDANY                     = 0x18\n\tIP_BINDMULTI                   = 0x19\n\tIP_BLOCK_SOURCE                = 0x48\n\tIP_DEFAULT_MULTICAST_LOOP      = 0x1\n\tIP_DEFAULT_MULTICAST_TTL       = 0x1\n\tIP_DF                          = 0x4000\n\tIP_DONTFRAG                    = 0x43\n\tIP_DROP_MEMBERSHIP             = 0xd\n\tIP_DROP_SOURCE_MEMBERSHIP      = 0x47\n\tIP_DUMMYNET3                   = 0x31\n\tIP_DUMMYNET_CONFIGURE          = 0x3c\n\tIP_DUMMYNET_DEL                = 0x3d\n\tIP_DUMMYNET_FLUSH              = 0x3e\n\tIP_DUMMYNET_GET                = 0x40\n\tIP_FLOWID                      = 0x5a\n\tIP_FLOWTYPE                    = 0x5b\n\tIP_FW3                         = 0x30\n\tIP_FW_ADD                      = 0x32\n\tIP_FW_DEL                      = 0x33\n\tIP_FW_FLUSH                    = 0x34\n\tIP_FW_GET                      = 0x36\n\tIP_FW_NAT_CFG                  = 0x38\n\tIP_FW_NAT_DEL                  = 0x39\n\tIP_FW_NAT_GET_CONFIG           = 0x3a\n\tIP_FW_NAT_GET_LOG              = 0x3b\n\tIP_FW_RESETLOG                 = 0x37\n\tIP_FW_TABLE_ADD                = 0x28\n\tIP_FW_TABLE_DEL                = 0x29\n\tIP_FW_TABLE_FLUSH              = 0x2a\n\tIP_FW_TABLE_GETSIZE            = 0x2b\n\tIP_FW_TABLE_LIST               = 0x2c\n\tIP_FW_ZERO                     = 0x35\n\tIP_HDRINCL                     = 0x2\n\tIP_IPSEC_POLICY                = 0x15\n\tIP_MAXPACKET                   = 0xffff\n\tIP_MAX_GROUP_SRC_FILTER        = 0x200\n\tIP_MAX_MEMBERSHIPS             = 0xfff\n\tIP_MAX_SOCK_MUTE_FILTER        = 0x80\n\tIP_MAX_SOCK_SRC_FILTER         = 0x80\n\tIP_MF                          = 0x2000\n\tIP_MINTTL                      = 0x42\n\tIP_MSFILTER                    = 0x4a\n\tIP_MSS                         = 0x240\n\tIP_MULTICAST_IF                = 0x9\n\tIP_MULTICAST_LOOP              = 0xb\n\tIP_MULTICAST_TTL               = 0xa\n\tIP_MULTICAST_VIF               = 0xe\n\tIP_OFFMASK                     = 0x1fff\n\tIP_ONESBCAST                   = 0x17\n\tIP_OPTIONS                     = 0x1\n\tIP_ORIGDSTADDR                 = 0x1b\n\tIP_PORTRANGE                   = 0x13\n\tIP_PORTRANGE_DEFAULT           = 0x0\n\tIP_PORTRANGE_HIGH              = 0x1\n\tIP_PORTRANGE_LOW               = 0x2\n\tIP_RECVDSTADDR                 = 0x7\n\tIP_RECVFLOWID                  = 0x5d\n\tIP_RECVIF                      = 0x14\n\tIP_RECVOPTS                    = 0x5\n\tIP_RECVORIGDSTADDR             = 0x1b\n\tIP_RECVRETOPTS                 = 0x6\n\tIP_RECVRSSBUCKETID             = 0x5e\n\tIP_RECVTOS                     = 0x44\n\tIP_RECVTTL                     = 0x41\n\tIP_RETOPTS                     = 0x8\n\tIP_RF                          = 0x8000\n\tIP_RSSBUCKETID                 = 0x5c\n\tIP_RSS_LISTEN_BUCKET           = 0x1a\n\tIP_RSVP_OFF                    = 0x10\n\tIP_RSVP_ON                     = 0xf\n\tIP_RSVP_VIF_OFF                = 0x12\n\tIP_RSVP_VIF_ON                 = 0x11\n\tIP_SENDSRCADDR                 = 0x7\n\tIP_TOS                         = 0x3\n\tIP_TTL                         = 0x4\n\tIP_UNBLOCK_SOURCE              = 0x49\n\tIP_VLAN_PCP                    = 0x4b\n\tISIG                           = 0x80\n\tISTRIP                         = 0x20\n\tITIMER_PROF                    = 0x2\n\tITIMER_REAL                    = 0x0\n\tITIMER_VIRTUAL                 = 0x1\n\tIXANY                          = 0x800\n\tIXOFF                          = 0x400\n\tIXON                           = 0x200\n\tKERN_HOSTNAME                  = 0xa\n\tKERN_OSRELEASE                 = 0x2\n\tKERN_OSTYPE                    = 0x1\n\tKERN_VERSION                   = 0x4\n\tLOCAL_CONNWAIT                 = 0x4\n\tLOCAL_CREDS                    = 0x2\n\tLOCAL_PEERCRED                 = 0x1\n\tLOCAL_VENDOR                   = 0x80000000\n\tLOCK_EX                        = 0x2\n\tLOCK_NB                        = 0x4\n\tLOCK_SH                        = 0x1\n\tLOCK_UN                        = 0x8\n\tMADV_AUTOSYNC                  = 0x7\n\tMADV_CORE                      = 0x9\n\tMADV_DONTNEED                  = 0x4\n\tMADV_FREE                      = 0x5\n\tMADV_NOCORE                    = 0x8\n\tMADV_NORMAL                    = 0x0\n\tMADV_NOSYNC                    = 0x6\n\tMADV_PROTECT                   = 0xa\n\tMADV_RANDOM                    = 0x1\n\tMADV_SEQUENTIAL                = 0x2\n\tMADV_WILLNEED                  = 0x3\n\tMAP_32BIT                      = 0x80000\n\tMAP_ALIGNED_SUPER              = 0x1000000\n\tMAP_ALIGNMENT_MASK             = -0x1000000\n\tMAP_ALIGNMENT_SHIFT            = 0x18\n\tMAP_ANON                       = 0x1000\n\tMAP_ANONYMOUS                  = 0x1000\n\tMAP_COPY                       = 0x2\n\tMAP_EXCL                       = 0x4000\n\tMAP_FILE                       = 0x0\n\tMAP_FIXED                      = 0x10\n\tMAP_GUARD                      = 0x2000\n\tMAP_HASSEMAPHORE               = 0x200\n\tMAP_NOCORE                     = 0x20000\n\tMAP_NOSYNC                     = 0x800\n\tMAP_PREFAULT_READ              = 0x40000\n\tMAP_PRIVATE                    = 0x2\n\tMAP_RESERVED0020               = 0x20\n\tMAP_RESERVED0040               = 0x40\n\tMAP_RESERVED0080               = 0x80\n\tMAP_RESERVED0100               = 0x100\n\tMAP_SHARED                     = 0x1\n\tMAP_STACK                      = 0x400\n\tMCAST_BLOCK_SOURCE             = 0x54\n\tMCAST_EXCLUDE                  = 0x2\n\tMCAST_INCLUDE                  = 0x1\n\tMCAST_JOIN_GROUP               = 0x50\n\tMCAST_JOIN_SOURCE_GROUP        = 0x52\n\tMCAST_LEAVE_GROUP              = 0x51\n\tMCAST_LEAVE_SOURCE_GROUP       = 0x53\n\tMCAST_UNBLOCK_SOURCE           = 0x55\n\tMCAST_UNDEFINED                = 0x0\n\tMCL_CURRENT                    = 0x1\n\tMCL_FUTURE                     = 0x2\n\tMNT_ACLS                       = 0x8000000\n\tMNT_ASYNC                      = 0x40\n\tMNT_AUTOMOUNTED                = 0x200000000\n\tMNT_BYFSID                     = 0x8000000\n\tMNT_CMDFLAGS                   = 0xd0f0000\n\tMNT_DEFEXPORTED                = 0x200\n\tMNT_DELEXPORT                  = 0x20000\n\tMNT_EXKERB                     = 0x800\n\tMNT_EXPORTANON                 = 0x400\n\tMNT_EXPORTED                   = 0x100\n\tMNT_EXPUBLIC                   = 0x20000000\n\tMNT_EXRDONLY                   = 0x80\n\tMNT_FORCE                      = 0x80000\n\tMNT_GJOURNAL                   = 0x2000000\n\tMNT_IGNORE                     = 0x800000\n\tMNT_LAZY                       = 0x3\n\tMNT_LOCAL                      = 0x1000\n\tMNT_MULTILABEL                 = 0x4000000\n\tMNT_NFS4ACLS                   = 0x10\n\tMNT_NOATIME                    = 0x10000000\n\tMNT_NOCLUSTERR                 = 0x40000000\n\tMNT_NOCLUSTERW                 = 0x80000000\n\tMNT_NOEXEC                     = 0x4\n\tMNT_NONBUSY                    = 0x4000000\n\tMNT_NOSUID                     = 0x8\n\tMNT_NOSYMFOLLOW                = 0x400000\n\tMNT_NOWAIT                     = 0x2\n\tMNT_QUOTA                      = 0x2000\n\tMNT_RDONLY                     = 0x1\n\tMNT_RELOAD                     = 0x40000\n\tMNT_ROOTFS                     = 0x4000\n\tMNT_SNAPSHOT                   = 0x1000000\n\tMNT_SOFTDEP                    = 0x200000\n\tMNT_SUIDDIR                    = 0x100000\n\tMNT_SUJ                        = 0x100000000\n\tMNT_SUSPEND                    = 0x4\n\tMNT_SYNCHRONOUS                = 0x2\n\tMNT_UNION                      = 0x20\n\tMNT_UNTRUSTED                  = 0x800000000\n\tMNT_UPDATE                     = 0x10000\n\tMNT_UPDATEMASK                 = 0xad8d0807e\n\tMNT_USER                       = 0x8000\n\tMNT_VERIFIED                   = 0x400000000\n\tMNT_VISFLAGMASK                = 0xffef0ffff\n\tMNT_WAIT                       = 0x1\n\tMSG_CMSG_CLOEXEC               = 0x40000\n\tMSG_COMPAT                     = 0x8000\n\tMSG_CTRUNC                     = 0x20\n\tMSG_DONTROUTE                  = 0x4\n\tMSG_DONTWAIT                   = 0x80\n\tMSG_EOF                        = 0x100\n\tMSG_EOR                        = 0x8\n\tMSG_NBIO                       = 0x4000\n\tMSG_NOSIGNAL                   = 0x20000\n\tMSG_NOTIFICATION               = 0x2000\n\tMSG_OOB                        = 0x1\n\tMSG_PEEK                       = 0x2\n\tMSG_TRUNC                      = 0x10\n\tMSG_WAITALL                    = 0x40\n\tMSG_WAITFORONE                 = 0x80000\n\tMS_ASYNC                       = 0x1\n\tMS_INVALIDATE                  = 0x2\n\tMS_SYNC                        = 0x0\n\tNAME_MAX                       = 0xff\n\tNET_RT_DUMP                    = 0x1\n\tNET_RT_FLAGS                   = 0x2\n\tNET_RT_IFLIST                  = 0x3\n\tNET_RT_IFLISTL                 = 0x5\n\tNET_RT_IFMALIST                = 0x4\n\tNFDBITS                        = 0x40\n\tNOFLSH                         = 0x80000000\n\tNOKERNINFO                     = 0x2000000\n\tNOTE_ABSTIME                   = 0x10\n\tNOTE_ATTRIB                    = 0x8\n\tNOTE_CHILD                     = 0x4\n\tNOTE_CLOSE                     = 0x100\n\tNOTE_CLOSE_WRITE               = 0x200\n\tNOTE_DELETE                    = 0x1\n\tNOTE_EXEC                      = 0x20000000\n\tNOTE_EXIT                      = 0x80000000\n\tNOTE_EXTEND                    = 0x4\n\tNOTE_FFAND                     = 0x40000000\n\tNOTE_FFCOPY                    = 0xc0000000\n\tNOTE_FFCTRLMASK                = 0xc0000000\n\tNOTE_FFLAGSMASK                = 0xffffff\n\tNOTE_FFNOP                     = 0x0\n\tNOTE_FFOR                      = 0x80000000\n\tNOTE_FILE_POLL                 = 0x2\n\tNOTE_FORK                      = 0x40000000\n\tNOTE_LINK                      = 0x10\n\tNOTE_LOWAT                     = 0x1\n\tNOTE_MSECONDS                  = 0x2\n\tNOTE_NSECONDS                  = 0x8\n\tNOTE_OPEN                      = 0x80\n\tNOTE_PCTRLMASK                 = 0xf0000000\n\tNOTE_PDATAMASK                 = 0xfffff\n\tNOTE_READ                      = 0x400\n\tNOTE_RENAME                    = 0x20\n\tNOTE_REVOKE                    = 0x40\n\tNOTE_SECONDS                   = 0x1\n\tNOTE_TRACK                     = 0x1\n\tNOTE_TRACKERR                  = 0x2\n\tNOTE_TRIGGER                   = 0x1000000\n\tNOTE_USECONDS                  = 0x4\n\tNOTE_WRITE                     = 0x2\n\tOCRNL                          = 0x10\n\tONLCR                          = 0x2\n\tONLRET                         = 0x40\n\tONOCR                          = 0x20\n\tONOEOT                         = 0x8\n\tOPOST                          = 0x1\n\tOXTABS                         = 0x4\n\tO_ACCMODE                      = 0x3\n\tO_APPEND                       = 0x8\n\tO_ASYNC                        = 0x40\n\tO_CLOEXEC                      = 0x100000\n\tO_CREAT                        = 0x200\n\tO_DIRECT                       = 0x10000\n\tO_DIRECTORY                    = 0x20000\n\tO_EXCL                         = 0x800\n\tO_EXEC                         = 0x40000\n\tO_EXLOCK                       = 0x20\n\tO_FSYNC                        = 0x80\n\tO_NDELAY                       = 0x4\n\tO_NOCTTY                       = 0x8000\n\tO_NOFOLLOW                     = 0x100\n\tO_NONBLOCK                     = 0x4\n\tO_RDONLY                       = 0x0\n\tO_RDWR                         = 0x2\n\tO_RESOLVE_BENEATH              = 0x800000\n\tO_SEARCH                       = 0x40000\n\tO_SHLOCK                       = 0x10\n\tO_SYNC                         = 0x80\n\tO_TRUNC                        = 0x400\n\tO_TTY_INIT                     = 0x80000\n\tO_VERIFY                       = 0x200000\n\tO_WRONLY                       = 0x1\n\tPARENB                         = 0x1000\n\tPARMRK                         = 0x8\n\tPARODD                         = 0x2000\n\tPENDIN                         = 0x20000000\n\tPIOD_READ_D                    = 0x1\n\tPIOD_READ_I                    = 0x3\n\tPIOD_WRITE_D                   = 0x2\n\tPIOD_WRITE_I                   = 0x4\n\tPRIO_PGRP                      = 0x1\n\tPRIO_PROCESS                   = 0x0\n\tPRIO_USER                      = 0x2\n\tPROT_EXEC                      = 0x4\n\tPROT_NONE                      = 0x0\n\tPROT_READ                      = 0x1\n\tPROT_WRITE                     = 0x2\n\tPTRACE_DEFAULT                 = 0x1\n\tPTRACE_EXEC                    = 0x1\n\tPTRACE_FORK                    = 0x8\n\tPTRACE_LWP                     = 0x10\n\tPTRACE_SCE                     = 0x2\n\tPTRACE_SCX                     = 0x4\n\tPTRACE_SYSCALL                 = 0x6\n\tPTRACE_VFORK                   = 0x20\n\tPT_ATTACH                      = 0xa\n\tPT_CLEARSTEP                   = 0x10\n\tPT_CONTINUE                    = 0x7\n\tPT_DETACH                      = 0xb\n\tPT_FIRSTMACH                   = 0x40\n\tPT_FOLLOW_FORK                 = 0x17\n\tPT_GETDBREGS                   = 0x25\n\tPT_GETFPREGS                   = 0x23\n\tPT_GETLWPLIST                  = 0xf\n\tPT_GETNUMLWPS                  = 0xe\n\tPT_GETREGS                     = 0x21\n\tPT_GET_EVENT_MASK              = 0x19\n\tPT_GET_SC_ARGS                 = 0x1b\n\tPT_GET_SC_RET                  = 0x1c\n\tPT_IO                          = 0xc\n\tPT_KILL                        = 0x8\n\tPT_LWPINFO                     = 0xd\n\tPT_LWP_EVENTS                  = 0x18\n\tPT_READ_D                      = 0x2\n\tPT_READ_I                      = 0x1\n\tPT_RESUME                      = 0x13\n\tPT_SETDBREGS                   = 0x26\n\tPT_SETFPREGS                   = 0x24\n\tPT_SETREGS                     = 0x22\n\tPT_SETSTEP                     = 0x11\n\tPT_SET_EVENT_MASK              = 0x1a\n\tPT_STEP                        = 0x9\n\tPT_SUSPEND                     = 0x12\n\tPT_SYSCALL                     = 0x16\n\tPT_TO_SCE                      = 0x14\n\tPT_TO_SCX                      = 0x15\n\tPT_TRACE_ME                    = 0x0\n\tPT_VM_ENTRY                    = 0x29\n\tPT_VM_TIMESTAMP                = 0x28\n\tPT_WRITE_D                     = 0x5\n\tPT_WRITE_I                     = 0x4\n\tP_ZONEID                       = 0xc\n\tRLIMIT_AS                      = 0xa\n\tRLIMIT_CORE                    = 0x4\n\tRLIMIT_CPU                     = 0x0\n\tRLIMIT_DATA                    = 0x2\n\tRLIMIT_FSIZE                   = 0x1\n\tRLIMIT_MEMLOCK                 = 0x6\n\tRLIMIT_NOFILE                  = 0x8\n\tRLIMIT_NPROC                   = 0x7\n\tRLIMIT_RSS                     = 0x5\n\tRLIMIT_STACK                   = 0x3\n\tRLIM_INFINITY                  = 0x7fffffffffffffff\n\tRTAX_AUTHOR                    = 0x6\n\tRTAX_BRD                       = 0x7\n\tRTAX_DST                       = 0x0\n\tRTAX_GATEWAY                   = 0x1\n\tRTAX_GENMASK                   = 0x3\n\tRTAX_IFA                       = 0x5\n\tRTAX_IFP                       = 0x4\n\tRTAX_MAX                       = 0x8\n\tRTAX_NETMASK                   = 0x2\n\tRTA_AUTHOR                     = 0x40\n\tRTA_BRD                        = 0x80\n\tRTA_DST                        = 0x1\n\tRTA_GATEWAY                    = 0x2\n\tRTA_GENMASK                    = 0x8\n\tRTA_IFA                        = 0x20\n\tRTA_IFP                        = 0x10\n\tRTA_NETMASK                    = 0x4\n\tRTF_BLACKHOLE                  = 0x1000\n\tRTF_BROADCAST                  = 0x400000\n\tRTF_DONE                       = 0x40\n\tRTF_DYNAMIC                    = 0x10\n\tRTF_FIXEDMTU                   = 0x80000\n\tRTF_FMASK                      = 0x1004d808\n\tRTF_GATEWAY                    = 0x2\n\tRTF_GWFLAG_COMPAT              = 0x80000000\n\tRTF_HOST                       = 0x4\n\tRTF_LLDATA                     = 0x400\n\tRTF_LLINFO                     = 0x400\n\tRTF_LOCAL                      = 0x200000\n\tRTF_MODIFIED                   = 0x20\n\tRTF_MULTICAST                  = 0x800000\n\tRTF_PINNED                     = 0x100000\n\tRTF_PROTO1                     = 0x8000\n\tRTF_PROTO2                     = 0x4000\n\tRTF_PROTO3                     = 0x40000\n\tRTF_REJECT                     = 0x8\n\tRTF_RNH_LOCKED                 = 0x40000000\n\tRTF_STATIC                     = 0x800\n\tRTF_STICKY                     = 0x10000000\n\tRTF_UP                         = 0x1\n\tRTF_XRESOLVE                   = 0x200\n\tRTM_ADD                        = 0x1\n\tRTM_CHANGE                     = 0x3\n\tRTM_DELADDR                    = 0xd\n\tRTM_DELETE                     = 0x2\n\tRTM_DELMADDR                   = 0x10\n\tRTM_GET                        = 0x4\n\tRTM_IEEE80211                  = 0x12\n\tRTM_IFANNOUNCE                 = 0x11\n\tRTM_IFINFO                     = 0xe\n\tRTM_LOCK                       = 0x8\n\tRTM_LOSING                     = 0x5\n\tRTM_MISS                       = 0x7\n\tRTM_NEWADDR                    = 0xc\n\tRTM_NEWMADDR                   = 0xf\n\tRTM_REDIRECT                   = 0x6\n\tRTM_RESOLVE                    = 0xb\n\tRTM_RTTUNIT                    = 0xf4240\n\tRTM_VERSION                    = 0x5\n\tRTV_EXPIRE                     = 0x4\n\tRTV_HOPCOUNT                   = 0x2\n\tRTV_MTU                        = 0x1\n\tRTV_RPIPE                      = 0x8\n\tRTV_RTT                        = 0x40\n\tRTV_RTTVAR                     = 0x80\n\tRTV_SPIPE                      = 0x10\n\tRTV_SSTHRESH                   = 0x20\n\tRTV_WEIGHT                     = 0x100\n\tRT_ALL_FIBS                    = -0x1\n\tRT_BLACKHOLE                   = 0x40\n\tRT_DEFAULT_FIB                 = 0x0\n\tRT_HAS_GW                      = 0x80\n\tRT_HAS_HEADER                  = 0x10\n\tRT_HAS_HEADER_BIT              = 0x4\n\tRT_L2_ME                       = 0x4\n\tRT_L2_ME_BIT                   = 0x2\n\tRT_LLE_CACHE                   = 0x100\n\tRT_MAY_LOOP                    = 0x8\n\tRT_MAY_LOOP_BIT                = 0x3\n\tRT_REJECT                      = 0x20\n\tRUSAGE_CHILDREN                = -0x1\n\tRUSAGE_SELF                    = 0x0\n\tRUSAGE_THREAD                  = 0x1\n\tSCM_BINTIME                    = 0x4\n\tSCM_CREDS                      = 0x3\n\tSCM_MONOTONIC                  = 0x6\n\tSCM_REALTIME                   = 0x5\n\tSCM_RIGHTS                     = 0x1\n\tSCM_TIMESTAMP                  = 0x2\n\tSCM_TIME_INFO                  = 0x7\n\tSEEK_CUR                       = 0x1\n\tSEEK_DATA                      = 0x3\n\tSEEK_END                       = 0x2\n\tSEEK_HOLE                      = 0x4\n\tSEEK_SET                       = 0x0\n\tSHUT_RD                        = 0x0\n\tSHUT_RDWR                      = 0x2\n\tSHUT_WR                        = 0x1\n\tSIOCADDMULTI                   = 0x80206931\n\tSIOCAIFADDR                    = 0x8040691a\n\tSIOCAIFGROUP                   = 0x80286987\n\tSIOCATMARK                     = 0x40047307\n\tSIOCDELMULTI                   = 0x80206932\n\tSIOCDIFADDR                    = 0x80206919\n\tSIOCDIFGROUP                   = 0x80286989\n\tSIOCDIFPHYADDR                 = 0x80206949\n\tSIOCGDRVSPEC                   = 0xc028697b\n\tSIOCGETSGCNT                   = 0xc0207210\n\tSIOCGETVIFCNT                  = 0xc028720f\n\tSIOCGHIWAT                     = 0x40047301\n\tSIOCGHWADDR                    = 0xc020693e\n\tSIOCGI2C                       = 0xc020693d\n\tSIOCGIFADDR                    = 0xc0206921\n\tSIOCGIFALIAS                   = 0xc044692d\n\tSIOCGIFBRDADDR                 = 0xc0206923\n\tSIOCGIFCAP                     = 0xc020691f\n\tSIOCGIFCONF                    = 0xc0106924\n\tSIOCGIFDESCR                   = 0xc020692a\n\tSIOCGIFDOWNREASON              = 0xc058699a\n\tSIOCGIFDSTADDR                 = 0xc0206922\n\tSIOCGIFFIB                     = 0xc020695c\n\tSIOCGIFFLAGS                   = 0xc0206911\n\tSIOCGIFGENERIC                 = 0xc020693a\n\tSIOCGIFGMEMB                   = 0xc028698a\n\tSIOCGIFGROUP                   = 0xc0286988\n\tSIOCGIFINDEX                   = 0xc0206920\n\tSIOCGIFMAC                     = 0xc0206926\n\tSIOCGIFMEDIA                   = 0xc0306938\n\tSIOCGIFMETRIC                  = 0xc0206917\n\tSIOCGIFMTU                     = 0xc0206933\n\tSIOCGIFNETMASK                 = 0xc0206925\n\tSIOCGIFPDSTADDR                = 0xc0206948\n\tSIOCGIFPHYS                    = 0xc0206935\n\tSIOCGIFPSRCADDR                = 0xc0206947\n\tSIOCGIFRSSHASH                 = 0xc0186997\n\tSIOCGIFRSSKEY                  = 0xc0946996\n\tSIOCGIFSTATUS                  = 0xc331693b\n\tSIOCGIFXMEDIA                  = 0xc030698b\n\tSIOCGLANPCP                    = 0xc0206998\n\tSIOCGLOWAT                     = 0x40047303\n\tSIOCGPGRP                      = 0x40047309\n\tSIOCGPRIVATE_0                 = 0xc0206950\n\tSIOCGPRIVATE_1                 = 0xc0206951\n\tSIOCGTUNFIB                    = 0xc020695e\n\tSIOCIFCREATE                   = 0xc020697a\n\tSIOCIFCREATE2                  = 0xc020697c\n\tSIOCIFDESTROY                  = 0x80206979\n\tSIOCIFGCLONERS                 = 0xc0106978\n\tSIOCSDRVSPEC                   = 0x8028697b\n\tSIOCSHIWAT                     = 0x80047300\n\tSIOCSIFADDR                    = 0x8020690c\n\tSIOCSIFBRDADDR                 = 0x80206913\n\tSIOCSIFCAP                     = 0x8020691e\n\tSIOCSIFDESCR                   = 0x80206929\n\tSIOCSIFDSTADDR                 = 0x8020690e\n\tSIOCSIFFIB                     = 0x8020695d\n\tSIOCSIFFLAGS                   = 0x80206910\n\tSIOCSIFGENERIC                 = 0x80206939\n\tSIOCSIFLLADDR                  = 0x8020693c\n\tSIOCSIFMAC                     = 0x80206927\n\tSIOCSIFMEDIA                   = 0xc0206937\n\tSIOCSIFMETRIC                  = 0x80206918\n\tSIOCSIFMTU                     = 0x80206934\n\tSIOCSIFNAME                    = 0x80206928\n\tSIOCSIFNETMASK                 = 0x80206916\n\tSIOCSIFPHYADDR                 = 0x80406946\n\tSIOCSIFPHYS                    = 0x80206936\n\tSIOCSIFRVNET                   = 0xc020695b\n\tSIOCSIFVNET                    = 0xc020695a\n\tSIOCSLANPCP                    = 0x80206999\n\tSIOCSLOWAT                     = 0x80047302\n\tSIOCSPGRP                      = 0x80047308\n\tSIOCSTUNFIB                    = 0x8020695f\n\tSOCK_CLOEXEC                   = 0x10000000\n\tSOCK_DGRAM                     = 0x2\n\tSOCK_MAXADDRLEN                = 0xff\n\tSOCK_NONBLOCK                  = 0x20000000\n\tSOCK_RAW                       = 0x3\n\tSOCK_RDM                       = 0x4\n\tSOCK_SEQPACKET                 = 0x5\n\tSOCK_STREAM                    = 0x1\n\tSOL_LOCAL                      = 0x0\n\tSOL_SOCKET                     = 0xffff\n\tSOMAXCONN                      = 0x80\n\tSO_ACCEPTCONN                  = 0x2\n\tSO_ACCEPTFILTER                = 0x1000\n\tSO_BINTIME                     = 0x2000\n\tSO_BROADCAST                   = 0x20\n\tSO_DEBUG                       = 0x1\n\tSO_DOMAIN                      = 0x1019\n\tSO_DONTROUTE                   = 0x10\n\tSO_ERROR                       = 0x1007\n\tSO_KEEPALIVE                   = 0x8\n\tSO_LABEL                       = 0x1009\n\tSO_LINGER                      = 0x80\n\tSO_LISTENINCQLEN               = 0x1013\n\tSO_LISTENQLEN                  = 0x1012\n\tSO_LISTENQLIMIT                = 0x1011\n\tSO_MAX_PACING_RATE             = 0x1018\n\tSO_NOSIGPIPE                   = 0x800\n\tSO_NO_DDP                      = 0x8000\n\tSO_NO_OFFLOAD                  = 0x4000\n\tSO_OOBINLINE                   = 0x100\n\tSO_PEERLABEL                   = 0x1010\n\tSO_PROTOCOL                    = 0x1016\n\tSO_PROTOTYPE                   = 0x1016\n\tSO_RCVBUF                      = 0x1002\n\tSO_RCVLOWAT                    = 0x1004\n\tSO_RCVTIMEO                    = 0x1006\n\tSO_RERROR                      = 0x20000\n\tSO_REUSEADDR                   = 0x4\n\tSO_REUSEPORT                   = 0x200\n\tSO_REUSEPORT_LB                = 0x10000\n\tSO_SETFIB                      = 0x1014\n\tSO_SNDBUF                      = 0x1001\n\tSO_SNDLOWAT                    = 0x1003\n\tSO_SNDTIMEO                    = 0x1005\n\tSO_TIMESTAMP                   = 0x400\n\tSO_TS_BINTIME                  = 0x1\n\tSO_TS_CLOCK                    = 0x1017\n\tSO_TS_CLOCK_MAX                = 0x3\n\tSO_TS_DEFAULT                  = 0x0\n\tSO_TS_MONOTONIC                = 0x3\n\tSO_TS_REALTIME                 = 0x2\n\tSO_TS_REALTIME_MICRO           = 0x0\n\tSO_TYPE                        = 0x1008\n\tSO_USELOOPBACK                 = 0x40\n\tSO_USER_COOKIE                 = 0x1015\n\tSO_VENDOR                      = 0x80000000\n\tS_BLKSIZE                      = 0x200\n\tS_IEXEC                        = 0x40\n\tS_IFBLK                        = 0x6000\n\tS_IFCHR                        = 0x2000\n\tS_IFDIR                        = 0x4000\n\tS_IFIFO                        = 0x1000\n\tS_IFLNK                        = 0xa000\n\tS_IFMT                         = 0xf000\n\tS_IFREG                        = 0x8000\n\tS_IFSOCK                       = 0xc000\n\tS_IFWHT                        = 0xe000\n\tS_IREAD                        = 0x100\n\tS_IRGRP                        = 0x20\n\tS_IROTH                        = 0x4\n\tS_IRUSR                        = 0x100\n\tS_IRWXG                        = 0x38\n\tS_IRWXO                        = 0x7\n\tS_IRWXU                        = 0x1c0\n\tS_ISGID                        = 0x400\n\tS_ISTXT                        = 0x200\n\tS_ISUID                        = 0x800\n\tS_ISVTX                        = 0x200\n\tS_IWGRP                        = 0x10\n\tS_IWOTH                        = 0x2\n\tS_IWRITE                       = 0x80\n\tS_IWUSR                        = 0x80\n\tS_IXGRP                        = 0x8\n\tS_IXOTH                        = 0x1\n\tS_IXUSR                        = 0x40\n\tTAB0                           = 0x0\n\tTAB3                           = 0x4\n\tTABDLY                         = 0x4\n\tTCIFLUSH                       = 0x1\n\tTCIOFF                         = 0x3\n\tTCIOFLUSH                      = 0x3\n\tTCION                          = 0x4\n\tTCOFLUSH                       = 0x2\n\tTCOOFF                         = 0x1\n\tTCOON                          = 0x2\n\tTCPOPT_EOL                     = 0x0\n\tTCPOPT_FAST_OPEN               = 0x22\n\tTCPOPT_MAXSEG                  = 0x2\n\tTCPOPT_NOP                     = 0x1\n\tTCPOPT_PAD                     = 0x0\n\tTCPOPT_SACK                    = 0x5\n\tTCPOPT_SACK_PERMITTED          = 0x4\n\tTCPOPT_SIGNATURE               = 0x13\n\tTCPOPT_TIMESTAMP               = 0x8\n\tTCPOPT_WINDOW                  = 0x3\n\tTCP_BBR_ACK_COMP_ALG           = 0x448\n\tTCP_BBR_ALGORITHM              = 0x43b\n\tTCP_BBR_DRAIN_INC_EXTRA        = 0x43c\n\tTCP_BBR_DRAIN_PG               = 0x42e\n\tTCP_BBR_EXTRA_GAIN             = 0x449\n\tTCP_BBR_EXTRA_STATE            = 0x453\n\tTCP_BBR_FLOOR_MIN_TSO          = 0x454\n\tTCP_BBR_HDWR_PACE              = 0x451\n\tTCP_BBR_HOLD_TARGET            = 0x436\n\tTCP_BBR_IWINTSO                = 0x42b\n\tTCP_BBR_LOWGAIN_FD             = 0x436\n\tTCP_BBR_LOWGAIN_HALF           = 0x435\n\tTCP_BBR_LOWGAIN_THRESH         = 0x434\n\tTCP_BBR_MAX_RTO                = 0x439\n\tTCP_BBR_MIN_RTO                = 0x438\n\tTCP_BBR_MIN_TOPACEOUT          = 0x455\n\tTCP_BBR_ONE_RETRAN             = 0x431\n\tTCP_BBR_PACE_CROSS             = 0x442\n\tTCP_BBR_PACE_DEL_TAR           = 0x43f\n\tTCP_BBR_PACE_OH                = 0x435\n\tTCP_BBR_PACE_PER_SEC           = 0x43e\n\tTCP_BBR_PACE_SEG_MAX           = 0x440\n\tTCP_BBR_PACE_SEG_MIN           = 0x441\n\tTCP_BBR_POLICER_DETECT         = 0x457\n\tTCP_BBR_PROBE_RTT_GAIN         = 0x44d\n\tTCP_BBR_PROBE_RTT_INT          = 0x430\n\tTCP_BBR_PROBE_RTT_LEN          = 0x44e\n\tTCP_BBR_RACK_RTT_USE           = 0x44a\n\tTCP_BBR_RECFORCE               = 0x42c\n\tTCP_BBR_REC_OVER_HPTS          = 0x43a\n\tTCP_BBR_RETRAN_WTSO            = 0x44b\n\tTCP_BBR_RWND_IS_APP            = 0x42f\n\tTCP_BBR_SEND_IWND_IN_TSO       = 0x44f\n\tTCP_BBR_STARTUP_EXIT_EPOCH     = 0x43d\n\tTCP_BBR_STARTUP_LOSS_EXIT      = 0x432\n\tTCP_BBR_STARTUP_PG             = 0x42d\n\tTCP_BBR_TMR_PACE_OH            = 0x448\n\tTCP_BBR_TSLIMITS               = 0x434\n\tTCP_BBR_TSTMP_RAISES           = 0x456\n\tTCP_BBR_UNLIMITED              = 0x43b\n\tTCP_BBR_USEDEL_RATE            = 0x437\n\tTCP_BBR_USE_LOWGAIN            = 0x433\n\tTCP_BBR_USE_RACK_CHEAT         = 0x450\n\tTCP_BBR_UTTER_MAX_TSO          = 0x452\n\tTCP_CA_NAME_MAX                = 0x10\n\tTCP_CCALGOOPT                  = 0x41\n\tTCP_CONGESTION                 = 0x40\n\tTCP_DATA_AFTER_CLOSE           = 0x44c\n\tTCP_DELACK                     = 0x48\n\tTCP_FASTOPEN                   = 0x401\n\tTCP_FASTOPEN_MAX_COOKIE_LEN    = 0x10\n\tTCP_FASTOPEN_MIN_COOKIE_LEN    = 0x4\n\tTCP_FASTOPEN_PSK_LEN           = 0x10\n\tTCP_FUNCTION_BLK               = 0x2000\n\tTCP_FUNCTION_NAME_LEN_MAX      = 0x20\n\tTCP_INFO                       = 0x20\n\tTCP_KEEPCNT                    = 0x400\n\tTCP_KEEPIDLE                   = 0x100\n\tTCP_KEEPINIT                   = 0x80\n\tTCP_KEEPINTVL                  = 0x200\n\tTCP_LOG                        = 0x22\n\tTCP_LOGBUF                     = 0x23\n\tTCP_LOGDUMP                    = 0x25\n\tTCP_LOGDUMPID                  = 0x26\n\tTCP_LOGID                      = 0x24\n\tTCP_LOG_ID_LEN                 = 0x40\n\tTCP_MAXBURST                   = 0x4\n\tTCP_MAXHLEN                    = 0x3c\n\tTCP_MAXOLEN                    = 0x28\n\tTCP_MAXSEG                     = 0x2\n\tTCP_MAXWIN                     = 0xffff\n\tTCP_MAX_SACK                   = 0x4\n\tTCP_MAX_WINSHIFT               = 0xe\n\tTCP_MD5SIG                     = 0x10\n\tTCP_MINMSS                     = 0xd8\n\tTCP_MSS                        = 0x218\n\tTCP_NODELAY                    = 0x1\n\tTCP_NOOPT                      = 0x8\n\tTCP_NOPUSH                     = 0x4\n\tTCP_PCAP_IN                    = 0x1000\n\tTCP_PCAP_OUT                   = 0x800\n\tTCP_RACK_EARLY_RECOV           = 0x423\n\tTCP_RACK_EARLY_SEG             = 0x424\n\tTCP_RACK_GP_INCREASE           = 0x446\n\tTCP_RACK_IDLE_REDUCE_HIGH      = 0x444\n\tTCP_RACK_MIN_PACE              = 0x445\n\tTCP_RACK_MIN_PACE_SEG          = 0x446\n\tTCP_RACK_MIN_TO                = 0x422\n\tTCP_RACK_PACE_ALWAYS           = 0x41f\n\tTCP_RACK_PACE_MAX_SEG          = 0x41e\n\tTCP_RACK_PACE_REDUCE           = 0x41d\n\tTCP_RACK_PKT_DELAY             = 0x428\n\tTCP_RACK_PROP                  = 0x41b\n\tTCP_RACK_PROP_RATE             = 0x420\n\tTCP_RACK_PRR_SENDALOT          = 0x421\n\tTCP_RACK_REORD_FADE            = 0x426\n\tTCP_RACK_REORD_THRESH          = 0x425\n\tTCP_RACK_TLP_INC_VAR           = 0x429\n\tTCP_RACK_TLP_REDUCE            = 0x41c\n\tTCP_RACK_TLP_THRESH            = 0x427\n\tTCP_RACK_TLP_USE               = 0x447\n\tTCP_VENDOR                     = 0x80000000\n\tTCSAFLUSH                      = 0x2\n\tTIMER_ABSTIME                  = 0x1\n\tTIMER_RELTIME                  = 0x0\n\tTIOCCBRK                       = 0x2000747a\n\tTIOCCDTR                       = 0x20007478\n\tTIOCCONS                       = 0x80047462\n\tTIOCDRAIN                      = 0x2000745e\n\tTIOCEXCL                       = 0x2000740d\n\tTIOCEXT                        = 0x80047460\n\tTIOCFLUSH                      = 0x80047410\n\tTIOCGDRAINWAIT                 = 0x40047456\n\tTIOCGETA                       = 0x402c7413\n\tTIOCGETD                       = 0x4004741a\n\tTIOCGPGRP                      = 0x40047477\n\tTIOCGPTN                       = 0x4004740f\n\tTIOCGSID                       = 0x40047463\n\tTIOCGWINSZ                     = 0x40087468\n\tTIOCMBIC                       = 0x8004746b\n\tTIOCMBIS                       = 0x8004746c\n\tTIOCMGDTRWAIT                  = 0x4004745a\n\tTIOCMGET                       = 0x4004746a\n\tTIOCMSDTRWAIT                  = 0x8004745b\n\tTIOCMSET                       = 0x8004746d\n\tTIOCM_CAR                      = 0x40\n\tTIOCM_CD                       = 0x40\n\tTIOCM_CTS                      = 0x20\n\tTIOCM_DCD                      = 0x40\n\tTIOCM_DSR                      = 0x100\n\tTIOCM_DTR                      = 0x2\n\tTIOCM_LE                       = 0x1\n\tTIOCM_RI                       = 0x80\n\tTIOCM_RNG                      = 0x80\n\tTIOCM_RTS                      = 0x4\n\tTIOCM_SR                       = 0x10\n\tTIOCM_ST                       = 0x8\n\tTIOCNOTTY                      = 0x20007471\n\tTIOCNXCL                       = 0x2000740e\n\tTIOCOUTQ                       = 0x40047473\n\tTIOCPKT                        = 0x80047470\n\tTIOCPKT_DATA                   = 0x0\n\tTIOCPKT_DOSTOP                 = 0x20\n\tTIOCPKT_FLUSHREAD              = 0x1\n\tTIOCPKT_FLUSHWRITE             = 0x2\n\tTIOCPKT_IOCTL                  = 0x40\n\tTIOCPKT_NOSTOP                 = 0x10\n\tTIOCPKT_START                  = 0x8\n\tTIOCPKT_STOP                   = 0x4\n\tTIOCPTMASTER                   = 0x2000741c\n\tTIOCSBRK                       = 0x2000747b\n\tTIOCSCTTY                      = 0x20007461\n\tTIOCSDRAINWAIT                 = 0x80047457\n\tTIOCSDTR                       = 0x20007479\n\tTIOCSETA                       = 0x802c7414\n\tTIOCSETAF                      = 0x802c7416\n\tTIOCSETAW                      = 0x802c7415\n\tTIOCSETD                       = 0x8004741b\n\tTIOCSIG                        = 0x2004745f\n\tTIOCSPGRP                      = 0x80047476\n\tTIOCSTART                      = 0x2000746e\n\tTIOCSTAT                       = 0x20007465\n\tTIOCSTI                        = 0x80017472\n\tTIOCSTOP                       = 0x2000746f\n\tTIOCSWINSZ                     = 0x80087467\n\tTIOCTIMESTAMP                  = 0x40107459\n\tTIOCUCNTL                      = 0x80047466\n\tTOSTOP                         = 0x400000\n\tUTIME_NOW                      = -0x1\n\tUTIME_OMIT                     = -0x2\n\tVDISCARD                       = 0xf\n\tVDSUSP                         = 0xb\n\tVEOF                           = 0x0\n\tVEOL                           = 0x1\n\tVEOL2                          = 0x2\n\tVERASE                         = 0x3\n\tVERASE2                        = 0x7\n\tVINTR                          = 0x8\n\tVKILL                          = 0x5\n\tVLNEXT                         = 0xe\n\tVMIN                           = 0x10\n\tVM_BCACHE_SIZE_MAX             = 0x19000000\n\tVQUIT                          = 0x9\n\tVREPRINT                       = 0x6\n\tVSTART                         = 0xc\n\tVSTATUS                        = 0x12\n\tVSTOP                          = 0xd\n\tVSUSP                          = 0xa\n\tVTIME                          = 0x11\n\tVWERASE                        = 0x4\n\tWCONTINUED                     = 0x4\n\tWCOREFLAG                      = 0x80\n\tWEXITED                        = 0x10\n\tWLINUXCLONE                    = 0x80000000\n\tWNOHANG                        = 0x1\n\tWNOWAIT                        = 0x8\n\tWSTOPPED                       = 0x2\n\tWTRAPPED                       = 0x20\n\tWUNTRACED                      = 0x2\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x59)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x55)\n\tECAPMODE        = syscall.Errno(0x5e)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDOOFUS         = syscall.Errno(0x58)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x52)\n\tEILSEQ          = syscall.Errno(0x56)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTEGRITY      = syscall.Errno(0x61)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x61)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5a)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x57)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x5b)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x53)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCAPABLE     = syscall.Errno(0x5d)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x5f)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x2d)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEOWNERDEAD      = syscall.Errno(0x60)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5c)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGLIBRT  = syscall.Signal(0x21)\n\tSIGLWP    = syscall.Signal(0x20)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EWOULDBLOCK\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIDRM\", \"identifier removed\"},\n\t{83, \"ENOMSG\", \"no message of desired type\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"ECANCELED\", \"operation canceled\"},\n\t{86, \"EILSEQ\", \"illegal byte sequence\"},\n\t{87, \"ENOATTR\", \"attribute not found\"},\n\t{88, \"EDOOFUS\", \"programming error\"},\n\t{89, \"EBADMSG\", \"bad message\"},\n\t{90, \"EMULTIHOP\", \"multihop attempted\"},\n\t{91, \"ENOLINK\", \"link has been severed\"},\n\t{92, \"EPROTO\", \"protocol error\"},\n\t{93, \"ENOTCAPABLE\", \"capabilities insufficient\"},\n\t{94, \"ECAPMODE\", \"not permitted in capability mode\"},\n\t{95, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{96, \"EOWNERDEAD\", \"previous owner died\"},\n\t{97, \"EINTEGRITY\", \"integrity check failed\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"unknown signal\"},\n\t{33, \"SIGLIBRT\", \"unknown signal\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build riscv64 && freebsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                   = 0x10\n\tAF_ARP                         = 0x23\n\tAF_ATM                         = 0x1e\n\tAF_BLUETOOTH                   = 0x24\n\tAF_CCITT                       = 0xa\n\tAF_CHAOS                       = 0x5\n\tAF_CNT                         = 0x15\n\tAF_COIP                        = 0x14\n\tAF_DATAKIT                     = 0x9\n\tAF_DECnet                      = 0xc\n\tAF_DLI                         = 0xd\n\tAF_E164                        = 0x1a\n\tAF_ECMA                        = 0x8\n\tAF_HYLINK                      = 0xf\n\tAF_HYPERV                      = 0x2b\n\tAF_IEEE80211                   = 0x25\n\tAF_IMPLINK                     = 0x3\n\tAF_INET                        = 0x2\n\tAF_INET6                       = 0x1c\n\tAF_INET6_SDP                   = 0x2a\n\tAF_INET_SDP                    = 0x28\n\tAF_IPX                         = 0x17\n\tAF_ISDN                        = 0x1a\n\tAF_ISO                         = 0x7\n\tAF_LAT                         = 0xe\n\tAF_LINK                        = 0x12\n\tAF_LOCAL                       = 0x1\n\tAF_MAX                         = 0x2b\n\tAF_NATM                        = 0x1d\n\tAF_NETBIOS                     = 0x6\n\tAF_NETGRAPH                    = 0x20\n\tAF_OSI                         = 0x7\n\tAF_PUP                         = 0x4\n\tAF_ROUTE                       = 0x11\n\tAF_SCLUSTER                    = 0x22\n\tAF_SIP                         = 0x18\n\tAF_SLOW                        = 0x21\n\tAF_SNA                         = 0xb\n\tAF_UNIX                        = 0x1\n\tAF_UNSPEC                      = 0x0\n\tAF_VENDOR00                    = 0x27\n\tAF_VENDOR01                    = 0x29\n\tAF_VENDOR03                    = 0x2d\n\tAF_VENDOR04                    = 0x2f\n\tAF_VENDOR05                    = 0x31\n\tAF_VENDOR06                    = 0x33\n\tAF_VENDOR07                    = 0x35\n\tAF_VENDOR08                    = 0x37\n\tAF_VENDOR09                    = 0x39\n\tAF_VENDOR10                    = 0x3b\n\tAF_VENDOR11                    = 0x3d\n\tAF_VENDOR12                    = 0x3f\n\tAF_VENDOR13                    = 0x41\n\tAF_VENDOR14                    = 0x43\n\tAF_VENDOR15                    = 0x45\n\tAF_VENDOR16                    = 0x47\n\tAF_VENDOR17                    = 0x49\n\tAF_VENDOR18                    = 0x4b\n\tAF_VENDOR19                    = 0x4d\n\tAF_VENDOR20                    = 0x4f\n\tAF_VENDOR21                    = 0x51\n\tAF_VENDOR22                    = 0x53\n\tAF_VENDOR23                    = 0x55\n\tAF_VENDOR24                    = 0x57\n\tAF_VENDOR25                    = 0x59\n\tAF_VENDOR26                    = 0x5b\n\tAF_VENDOR27                    = 0x5d\n\tAF_VENDOR28                    = 0x5f\n\tAF_VENDOR29                    = 0x61\n\tAF_VENDOR30                    = 0x63\n\tAF_VENDOR31                    = 0x65\n\tAF_VENDOR32                    = 0x67\n\tAF_VENDOR33                    = 0x69\n\tAF_VENDOR34                    = 0x6b\n\tAF_VENDOR35                    = 0x6d\n\tAF_VENDOR36                    = 0x6f\n\tAF_VENDOR37                    = 0x71\n\tAF_VENDOR38                    = 0x73\n\tAF_VENDOR39                    = 0x75\n\tAF_VENDOR40                    = 0x77\n\tAF_VENDOR41                    = 0x79\n\tAF_VENDOR42                    = 0x7b\n\tAF_VENDOR43                    = 0x7d\n\tAF_VENDOR44                    = 0x7f\n\tAF_VENDOR45                    = 0x81\n\tAF_VENDOR46                    = 0x83\n\tAF_VENDOR47                    = 0x85\n\tALTWERASE                      = 0x200\n\tB0                             = 0x0\n\tB1000000                       = 0xf4240\n\tB110                           = 0x6e\n\tB115200                        = 0x1c200\n\tB1200                          = 0x4b0\n\tB134                           = 0x86\n\tB14400                         = 0x3840\n\tB150                           = 0x96\n\tB1500000                       = 0x16e360\n\tB1800                          = 0x708\n\tB19200                         = 0x4b00\n\tB200                           = 0xc8\n\tB2000000                       = 0x1e8480\n\tB230400                        = 0x38400\n\tB2400                          = 0x960\n\tB2500000                       = 0x2625a0\n\tB28800                         = 0x7080\n\tB300                           = 0x12c\n\tB3000000                       = 0x2dc6c0\n\tB3500000                       = 0x3567e0\n\tB38400                         = 0x9600\n\tB4000000                       = 0x3d0900\n\tB460800                        = 0x70800\n\tB4800                          = 0x12c0\n\tB50                            = 0x32\n\tB500000                        = 0x7a120\n\tB57600                         = 0xe100\n\tB600                           = 0x258\n\tB7200                          = 0x1c20\n\tB75                            = 0x4b\n\tB76800                         = 0x12c00\n\tB921600                        = 0xe1000\n\tB9600                          = 0x2580\n\tBIOCFEEDBACK                   = 0x8004427c\n\tBIOCFLUSH                      = 0x20004268\n\tBIOCGBLEN                      = 0x40044266\n\tBIOCGDIRECTION                 = 0x40044276\n\tBIOCGDLT                       = 0x4004426a\n\tBIOCGDLTLIST                   = 0xc0104279\n\tBIOCGETBUFMODE                 = 0x4004427d\n\tBIOCGETIF                      = 0x4020426b\n\tBIOCGETZMAX                    = 0x4008427f\n\tBIOCGHDRCMPLT                  = 0x40044274\n\tBIOCGRSIG                      = 0x40044272\n\tBIOCGRTIMEOUT                  = 0x4010426e\n\tBIOCGSEESENT                   = 0x40044276\n\tBIOCGSTATS                     = 0x4008426f\n\tBIOCGTSTAMP                    = 0x40044283\n\tBIOCIMMEDIATE                  = 0x80044270\n\tBIOCLOCK                       = 0x2000427a\n\tBIOCPROMISC                    = 0x20004269\n\tBIOCROTZBUF                    = 0x40184280\n\tBIOCSBLEN                      = 0xc0044266\n\tBIOCSDIRECTION                 = 0x80044277\n\tBIOCSDLT                       = 0x80044278\n\tBIOCSETBUFMODE                 = 0x8004427e\n\tBIOCSETF                       = 0x80104267\n\tBIOCSETFNR                     = 0x80104282\n\tBIOCSETIF                      = 0x8020426c\n\tBIOCSETVLANPCP                 = 0x80044285\n\tBIOCSETWF                      = 0x8010427b\n\tBIOCSETZBUF                    = 0x80184281\n\tBIOCSHDRCMPLT                  = 0x80044275\n\tBIOCSRSIG                      = 0x80044273\n\tBIOCSRTIMEOUT                  = 0x8010426d\n\tBIOCSSEESENT                   = 0x80044277\n\tBIOCSTSTAMP                    = 0x80044284\n\tBIOCVERSION                    = 0x40044271\n\tBPF_A                          = 0x10\n\tBPF_ABS                        = 0x20\n\tBPF_ADD                        = 0x0\n\tBPF_ALIGNMENT                  = 0x8\n\tBPF_ALU                        = 0x4\n\tBPF_AND                        = 0x50\n\tBPF_B                          = 0x10\n\tBPF_BUFMODE_BUFFER             = 0x1\n\tBPF_BUFMODE_ZBUF               = 0x2\n\tBPF_DIV                        = 0x30\n\tBPF_H                          = 0x8\n\tBPF_IMM                        = 0x0\n\tBPF_IND                        = 0x40\n\tBPF_JA                         = 0x0\n\tBPF_JEQ                        = 0x10\n\tBPF_JGE                        = 0x30\n\tBPF_JGT                        = 0x20\n\tBPF_JMP                        = 0x5\n\tBPF_JSET                       = 0x40\n\tBPF_K                          = 0x0\n\tBPF_LD                         = 0x0\n\tBPF_LDX                        = 0x1\n\tBPF_LEN                        = 0x80\n\tBPF_LSH                        = 0x60\n\tBPF_MAJOR_VERSION              = 0x1\n\tBPF_MAXBUFSIZE                 = 0x80000\n\tBPF_MAXINSNS                   = 0x200\n\tBPF_MEM                        = 0x60\n\tBPF_MEMWORDS                   = 0x10\n\tBPF_MINBUFSIZE                 = 0x20\n\tBPF_MINOR_VERSION              = 0x1\n\tBPF_MISC                       = 0x7\n\tBPF_MOD                        = 0x90\n\tBPF_MSH                        = 0xa0\n\tBPF_MUL                        = 0x20\n\tBPF_NEG                        = 0x80\n\tBPF_OR                         = 0x40\n\tBPF_RELEASE                    = 0x30bb6\n\tBPF_RET                        = 0x6\n\tBPF_RSH                        = 0x70\n\tBPF_ST                         = 0x2\n\tBPF_STX                        = 0x3\n\tBPF_SUB                        = 0x10\n\tBPF_TAX                        = 0x0\n\tBPF_TXA                        = 0x80\n\tBPF_T_BINTIME                  = 0x2\n\tBPF_T_BINTIME_FAST             = 0x102\n\tBPF_T_BINTIME_MONOTONIC        = 0x202\n\tBPF_T_BINTIME_MONOTONIC_FAST   = 0x302\n\tBPF_T_FAST                     = 0x100\n\tBPF_T_FLAG_MASK                = 0x300\n\tBPF_T_FORMAT_MASK              = 0x3\n\tBPF_T_MICROTIME                = 0x0\n\tBPF_T_MICROTIME_FAST           = 0x100\n\tBPF_T_MICROTIME_MONOTONIC      = 0x200\n\tBPF_T_MICROTIME_MONOTONIC_FAST = 0x300\n\tBPF_T_MONOTONIC                = 0x200\n\tBPF_T_MONOTONIC_FAST           = 0x300\n\tBPF_T_NANOTIME                 = 0x1\n\tBPF_T_NANOTIME_FAST            = 0x101\n\tBPF_T_NANOTIME_MONOTONIC       = 0x201\n\tBPF_T_NANOTIME_MONOTONIC_FAST  = 0x301\n\tBPF_T_NONE                     = 0x3\n\tBPF_T_NORMAL                   = 0x0\n\tBPF_W                          = 0x0\n\tBPF_X                          = 0x8\n\tBPF_XOR                        = 0xa0\n\tBRKINT                         = 0x2\n\tCAP_ACCEPT                     = 0x200000020000000\n\tCAP_ACL_CHECK                  = 0x400000000010000\n\tCAP_ACL_DELETE                 = 0x400000000020000\n\tCAP_ACL_GET                    = 0x400000000040000\n\tCAP_ACL_SET                    = 0x400000000080000\n\tCAP_ALL0                       = 0x20007ffffffffff\n\tCAP_ALL1                       = 0x4000000001fffff\n\tCAP_BIND                       = 0x200000040000000\n\tCAP_BINDAT                     = 0x200008000000400\n\tCAP_CHFLAGSAT                  = 0x200000000001400\n\tCAP_CONNECT                    = 0x200000080000000\n\tCAP_CONNECTAT                  = 0x200010000000400\n\tCAP_CREATE                     = 0x200000000000040\n\tCAP_EVENT                      = 0x400000000000020\n\tCAP_EXTATTR_DELETE             = 0x400000000001000\n\tCAP_EXTATTR_GET                = 0x400000000002000\n\tCAP_EXTATTR_LIST               = 0x400000000004000\n\tCAP_EXTATTR_SET                = 0x400000000008000\n\tCAP_FCHDIR                     = 0x200000000000800\n\tCAP_FCHFLAGS                   = 0x200000000001000\n\tCAP_FCHMOD                     = 0x200000000002000\n\tCAP_FCHMODAT                   = 0x200000000002400\n\tCAP_FCHOWN                     = 0x200000000004000\n\tCAP_FCHOWNAT                   = 0x200000000004400\n\tCAP_FCNTL                      = 0x200000000008000\n\tCAP_FCNTL_ALL                  = 0x78\n\tCAP_FCNTL_GETFL                = 0x8\n\tCAP_FCNTL_GETOWN               = 0x20\n\tCAP_FCNTL_SETFL                = 0x10\n\tCAP_FCNTL_SETOWN               = 0x40\n\tCAP_FEXECVE                    = 0x200000000000080\n\tCAP_FLOCK                      = 0x200000000010000\n\tCAP_FPATHCONF                  = 0x200000000020000\n\tCAP_FSCK                       = 0x200000000040000\n\tCAP_FSTAT                      = 0x200000000080000\n\tCAP_FSTATAT                    = 0x200000000080400\n\tCAP_FSTATFS                    = 0x200000000100000\n\tCAP_FSYNC                      = 0x200000000000100\n\tCAP_FTRUNCATE                  = 0x200000000000200\n\tCAP_FUTIMES                    = 0x200000000200000\n\tCAP_FUTIMESAT                  = 0x200000000200400\n\tCAP_GETPEERNAME                = 0x200000100000000\n\tCAP_GETSOCKNAME                = 0x200000200000000\n\tCAP_GETSOCKOPT                 = 0x200000400000000\n\tCAP_IOCTL                      = 0x400000000000080\n\tCAP_IOCTLS_ALL                 = 0x7fffffffffffffff\n\tCAP_KQUEUE                     = 0x400000000100040\n\tCAP_KQUEUE_CHANGE              = 0x400000000100000\n\tCAP_KQUEUE_EVENT               = 0x400000000000040\n\tCAP_LINKAT_SOURCE              = 0x200020000000400\n\tCAP_LINKAT_TARGET              = 0x200000000400400\n\tCAP_LISTEN                     = 0x200000800000000\n\tCAP_LOOKUP                     = 0x200000000000400\n\tCAP_MAC_GET                    = 0x400000000000001\n\tCAP_MAC_SET                    = 0x400000000000002\n\tCAP_MKDIRAT                    = 0x200000000800400\n\tCAP_MKFIFOAT                   = 0x200000001000400\n\tCAP_MKNODAT                    = 0x200000002000400\n\tCAP_MMAP                       = 0x200000000000010\n\tCAP_MMAP_R                     = 0x20000000000001d\n\tCAP_MMAP_RW                    = 0x20000000000001f\n\tCAP_MMAP_RWX                   = 0x20000000000003f\n\tCAP_MMAP_RX                    = 0x20000000000003d\n\tCAP_MMAP_W                     = 0x20000000000001e\n\tCAP_MMAP_WX                    = 0x20000000000003e\n\tCAP_MMAP_X                     = 0x20000000000003c\n\tCAP_PDGETPID                   = 0x400000000000200\n\tCAP_PDKILL                     = 0x400000000000800\n\tCAP_PDWAIT                     = 0x400000000000400\n\tCAP_PEELOFF                    = 0x200001000000000\n\tCAP_POLL_EVENT                 = 0x400000000000020\n\tCAP_PREAD                      = 0x20000000000000d\n\tCAP_PWRITE                     = 0x20000000000000e\n\tCAP_READ                       = 0x200000000000001\n\tCAP_RECV                       = 0x200000000000001\n\tCAP_RENAMEAT_SOURCE            = 0x200000004000400\n\tCAP_RENAMEAT_TARGET            = 0x200040000000400\n\tCAP_RIGHTS_VERSION             = 0x0\n\tCAP_RIGHTS_VERSION_00          = 0x0\n\tCAP_SEEK                       = 0x20000000000000c\n\tCAP_SEEK_TELL                  = 0x200000000000004\n\tCAP_SEM_GETVALUE               = 0x400000000000004\n\tCAP_SEM_POST                   = 0x400000000000008\n\tCAP_SEM_WAIT                   = 0x400000000000010\n\tCAP_SEND                       = 0x200000000000002\n\tCAP_SETSOCKOPT                 = 0x200002000000000\n\tCAP_SHUTDOWN                   = 0x200004000000000\n\tCAP_SOCK_CLIENT                = 0x200007780000003\n\tCAP_SOCK_SERVER                = 0x200007f60000003\n\tCAP_SYMLINKAT                  = 0x200000008000400\n\tCAP_TTYHOOK                    = 0x400000000000100\n\tCAP_UNLINKAT                   = 0x200000010000400\n\tCAP_UNUSED0_44                 = 0x200080000000000\n\tCAP_UNUSED0_57                 = 0x300000000000000\n\tCAP_UNUSED1_22                 = 0x400000000200000\n\tCAP_UNUSED1_57                 = 0x500000000000000\n\tCAP_WRITE                      = 0x200000000000002\n\tCFLUSH                         = 0xf\n\tCLOCAL                         = 0x8000\n\tCLOCK_BOOTTIME                 = 0x5\n\tCLOCK_MONOTONIC                = 0x4\n\tCLOCK_MONOTONIC_COARSE         = 0xc\n\tCLOCK_MONOTONIC_FAST           = 0xc\n\tCLOCK_MONOTONIC_PRECISE        = 0xb\n\tCLOCK_PROCESS_CPUTIME_ID       = 0xf\n\tCLOCK_PROF                     = 0x2\n\tCLOCK_REALTIME                 = 0x0\n\tCLOCK_REALTIME_COARSE          = 0xa\n\tCLOCK_REALTIME_FAST            = 0xa\n\tCLOCK_REALTIME_PRECISE         = 0x9\n\tCLOCK_SECOND                   = 0xd\n\tCLOCK_THREAD_CPUTIME_ID        = 0xe\n\tCLOCK_UPTIME                   = 0x5\n\tCLOCK_UPTIME_FAST              = 0x8\n\tCLOCK_UPTIME_PRECISE           = 0x7\n\tCLOCK_VIRTUAL                  = 0x1\n\tCPUSTATES                      = 0x5\n\tCP_IDLE                        = 0x4\n\tCP_INTR                        = 0x3\n\tCP_NICE                        = 0x1\n\tCP_SYS                         = 0x2\n\tCP_USER                        = 0x0\n\tCREAD                          = 0x800\n\tCRTSCTS                        = 0x30000\n\tCS5                            = 0x0\n\tCS6                            = 0x100\n\tCS7                            = 0x200\n\tCS8                            = 0x300\n\tCSIZE                          = 0x300\n\tCSTART                         = 0x11\n\tCSTATUS                        = 0x14\n\tCSTOP                          = 0x13\n\tCSTOPB                         = 0x400\n\tCSUSP                          = 0x1a\n\tCTL_HW                         = 0x6\n\tCTL_KERN                       = 0x1\n\tCTL_MAXNAME                    = 0x18\n\tCTL_NET                        = 0x4\n\tDIOCGATTR                      = 0xc148648e\n\tDIOCGDELETE                    = 0x80106488\n\tDIOCGFLUSH                     = 0x20006487\n\tDIOCGFWHEADS                   = 0x40046483\n\tDIOCGFWSECTORS                 = 0x40046482\n\tDIOCGIDENT                     = 0x41006489\n\tDIOCGKERNELDUMP                = 0xc0986492\n\tDIOCGMEDIASIZE                 = 0x40086481\n\tDIOCGPHYSPATH                  = 0x4400648d\n\tDIOCGPROVIDERNAME              = 0x4400648a\n\tDIOCGSECTORSIZE                = 0x40046480\n\tDIOCGSTRIPEOFFSET              = 0x4008648c\n\tDIOCGSTRIPESIZE                = 0x4008648b\n\tDIOCSKERNELDUMP                = 0x80986491\n\tDIOCSKERNELDUMP_FREEBSD11      = 0x80046485\n\tDIOCSKERNELDUMP_FREEBSD12      = 0x80506490\n\tDIOCZONECMD                    = 0xc080648f\n\tDLT_A429                       = 0xb8\n\tDLT_A653_ICM                   = 0xb9\n\tDLT_AIRONET_HEADER             = 0x78\n\tDLT_AOS                        = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394     = 0x8a\n\tDLT_ARCNET                     = 0x7\n\tDLT_ARCNET_LINUX               = 0x81\n\tDLT_ATM_CLIP                   = 0x13\n\tDLT_ATM_RFC1483                = 0xb\n\tDLT_AURORA                     = 0x7e\n\tDLT_AX25                       = 0x3\n\tDLT_AX25_KISS                  = 0xca\n\tDLT_BACNET_MS_TP               = 0xa5\n\tDLT_BLUETOOTH_BREDR_BB         = 0xff\n\tDLT_BLUETOOTH_HCI_H4           = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9\n\tDLT_BLUETOOTH_LE_LL            = 0xfb\n\tDLT_BLUETOOTH_LE_LL_WITH_PHDR  = 0x100\n\tDLT_BLUETOOTH_LINUX_MONITOR    = 0xfe\n\tDLT_CAN20B                     = 0xbe\n\tDLT_CAN_SOCKETCAN              = 0xe3\n\tDLT_CHAOS                      = 0x5\n\tDLT_CHDLC                      = 0x68\n\tDLT_CISCO_IOS                  = 0x76\n\tDLT_CLASS_NETBSD_RAWAF         = 0x2240000\n\tDLT_C_HDLC                     = 0x68\n\tDLT_C_HDLC_WITH_DIR            = 0xcd\n\tDLT_DBUS                       = 0xe7\n\tDLT_DECT                       = 0xdd\n\tDLT_DISPLAYPORT_AUX            = 0x113\n\tDLT_DOCSIS                     = 0x8f\n\tDLT_DOCSIS31_XRA31             = 0x111\n\tDLT_DVB_CI                     = 0xeb\n\tDLT_ECONET                     = 0x73\n\tDLT_EN10MB                     = 0x1\n\tDLT_EN3MB                      = 0x2\n\tDLT_ENC                        = 0x6d\n\tDLT_EPON                       = 0x103\n\tDLT_ERF                        = 0xc5\n\tDLT_ERF_ETH                    = 0xaf\n\tDLT_ERF_POS                    = 0xb0\n\tDLT_ETHERNET_MPACKET           = 0x112\n\tDLT_FC_2                       = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS     = 0xe1\n\tDLT_FDDI                       = 0xa\n\tDLT_FLEXRAY                    = 0xd2\n\tDLT_FRELAY                     = 0x6b\n\tDLT_FRELAY_WITH_DIR            = 0xce\n\tDLT_GCOM_SERIAL                = 0xad\n\tDLT_GCOM_T1E1                  = 0xac\n\tDLT_GPF_F                      = 0xab\n\tDLT_GPF_T                      = 0xaa\n\tDLT_GPRS_LLC                   = 0xa9\n\tDLT_GSMTAP_ABIS                = 0xda\n\tDLT_GSMTAP_UM                  = 0xd9\n\tDLT_IBM_SN                     = 0x92\n\tDLT_IBM_SP                     = 0x91\n\tDLT_IEEE802                    = 0x6\n\tDLT_IEEE802_11                 = 0x69\n\tDLT_IEEE802_11_RADIO           = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS       = 0xa3\n\tDLT_IEEE802_15_4               = 0xc3\n\tDLT_IEEE802_15_4_LINUX         = 0xbf\n\tDLT_IEEE802_15_4_NOFCS         = 0xe6\n\tDLT_IEEE802_15_4_NONASK_PHY    = 0xd7\n\tDLT_IEEE802_16_MAC_CPS         = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO   = 0xc1\n\tDLT_INFINIBAND                 = 0xf7\n\tDLT_IPFILTER                   = 0x74\n\tDLT_IPMB_KONTRON               = 0xc7\n\tDLT_IPMB_LINUX                 = 0xd1\n\tDLT_IPMI_HPM_2                 = 0x104\n\tDLT_IPNET                      = 0xe2\n\tDLT_IPOIB                      = 0xf2\n\tDLT_IPV4                       = 0xe4\n\tDLT_IPV6                       = 0xe5\n\tDLT_IP_OVER_FC                 = 0x7a\n\tDLT_ISO_14443                  = 0x108\n\tDLT_JUNIPER_ATM1               = 0x89\n\tDLT_JUNIPER_ATM2               = 0x87\n\tDLT_JUNIPER_ATM_CEMIC          = 0xee\n\tDLT_JUNIPER_CHDLC              = 0xb5\n\tDLT_JUNIPER_ES                 = 0x84\n\tDLT_JUNIPER_ETHER              = 0xb2\n\tDLT_JUNIPER_FIBRECHANNEL       = 0xea\n\tDLT_JUNIPER_FRELAY             = 0xb4\n\tDLT_JUNIPER_GGSN               = 0x85\n\tDLT_JUNIPER_ISM                = 0xc2\n\tDLT_JUNIPER_MFR                = 0x86\n\tDLT_JUNIPER_MLFR               = 0x83\n\tDLT_JUNIPER_MLPPP              = 0x82\n\tDLT_JUNIPER_MONITOR            = 0xa4\n\tDLT_JUNIPER_PIC_PEER           = 0xae\n\tDLT_JUNIPER_PPP                = 0xb3\n\tDLT_JUNIPER_PPPOE              = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM          = 0xa8\n\tDLT_JUNIPER_SERVICES           = 0x88\n\tDLT_JUNIPER_SRX_E2E            = 0xe9\n\tDLT_JUNIPER_ST                 = 0xc8\n\tDLT_JUNIPER_VP                 = 0xb7\n\tDLT_JUNIPER_VS                 = 0xe8\n\tDLT_LAPB_WITH_DIR              = 0xcf\n\tDLT_LAPD                       = 0xcb\n\tDLT_LIN                        = 0xd4\n\tDLT_LINUX_EVDEV                = 0xd8\n\tDLT_LINUX_IRDA                 = 0x90\n\tDLT_LINUX_LAPD                 = 0xb1\n\tDLT_LINUX_PPP_WITHDIRECTION    = 0xa6\n\tDLT_LINUX_SLL                  = 0x71\n\tDLT_LINUX_SLL2                 = 0x114\n\tDLT_LOOP                       = 0x6c\n\tDLT_LORATAP                    = 0x10e\n\tDLT_LTALK                      = 0x72\n\tDLT_MATCHING_MAX               = 0x114\n\tDLT_MATCHING_MIN               = 0x68\n\tDLT_MFR                        = 0xb6\n\tDLT_MOST                       = 0xd3\n\tDLT_MPEG_2_TS                  = 0xf3\n\tDLT_MPLS                       = 0xdb\n\tDLT_MTP2                       = 0x8c\n\tDLT_MTP2_WITH_PHDR             = 0x8b\n\tDLT_MTP3                       = 0x8d\n\tDLT_MUX27010                   = 0xec\n\tDLT_NETANALYZER                = 0xf0\n\tDLT_NETANALYZER_TRANSPARENT    = 0xf1\n\tDLT_NETLINK                    = 0xfd\n\tDLT_NFC_LLCP                   = 0xf5\n\tDLT_NFLOG                      = 0xef\n\tDLT_NG40                       = 0xf4\n\tDLT_NORDIC_BLE                 = 0x110\n\tDLT_NULL                       = 0x0\n\tDLT_OPENFLOW                   = 0x10b\n\tDLT_PCI_EXP                    = 0x7d\n\tDLT_PFLOG                      = 0x75\n\tDLT_PFSYNC                     = 0x79\n\tDLT_PKTAP                      = 0x102\n\tDLT_PPI                        = 0xc0\n\tDLT_PPP                        = 0x9\n\tDLT_PPP_BSDOS                  = 0xe\n\tDLT_PPP_ETHER                  = 0x33\n\tDLT_PPP_PPPD                   = 0xa6\n\tDLT_PPP_SERIAL                 = 0x32\n\tDLT_PPP_WITH_DIR               = 0xcc\n\tDLT_PPP_WITH_DIRECTION         = 0xa6\n\tDLT_PRISM_HEADER               = 0x77\n\tDLT_PROFIBUS_DL                = 0x101\n\tDLT_PRONET                     = 0x4\n\tDLT_RAIF1                      = 0xc6\n\tDLT_RAW                        = 0xc\n\tDLT_RDS                        = 0x109\n\tDLT_REDBACK_SMARTEDGE          = 0x20\n\tDLT_RIO                        = 0x7c\n\tDLT_RTAC_SERIAL                = 0xfa\n\tDLT_SCCP                       = 0x8e\n\tDLT_SCTP                       = 0xf8\n\tDLT_SDLC                       = 0x10c\n\tDLT_SITA                       = 0xc4\n\tDLT_SLIP                       = 0x8\n\tDLT_SLIP_BSDOS                 = 0xd\n\tDLT_STANAG_5066_D_PDU          = 0xed\n\tDLT_SUNATM                     = 0x7b\n\tDLT_SYMANTEC_FIREWALL          = 0x63\n\tDLT_TI_LLN_SNIFFER             = 0x10d\n\tDLT_TZSP                       = 0x80\n\tDLT_USB                        = 0xba\n\tDLT_USBPCAP                    = 0xf9\n\tDLT_USB_DARWIN                 = 0x10a\n\tDLT_USB_FREEBSD                = 0xba\n\tDLT_USB_LINUX                  = 0xbd\n\tDLT_USB_LINUX_MMAPPED          = 0xdc\n\tDLT_USER0                      = 0x93\n\tDLT_USER1                      = 0x94\n\tDLT_USER10                     = 0x9d\n\tDLT_USER11                     = 0x9e\n\tDLT_USER12                     = 0x9f\n\tDLT_USER13                     = 0xa0\n\tDLT_USER14                     = 0xa1\n\tDLT_USER15                     = 0xa2\n\tDLT_USER2                      = 0x95\n\tDLT_USER3                      = 0x96\n\tDLT_USER4                      = 0x97\n\tDLT_USER5                      = 0x98\n\tDLT_USER6                      = 0x99\n\tDLT_USER7                      = 0x9a\n\tDLT_USER8                      = 0x9b\n\tDLT_USER9                      = 0x9c\n\tDLT_VSOCK                      = 0x10f\n\tDLT_WATTSTOPPER_DLM            = 0x107\n\tDLT_WIHART                     = 0xdf\n\tDLT_WIRESHARK_UPPER_PDU        = 0xfc\n\tDLT_X2E_SERIAL                 = 0xd5\n\tDLT_X2E_XORAYA                 = 0xd6\n\tDLT_ZWAVE_R1_R2                = 0x105\n\tDLT_ZWAVE_R3                   = 0x106\n\tDT_BLK                         = 0x6\n\tDT_CHR                         = 0x2\n\tDT_DIR                         = 0x4\n\tDT_FIFO                        = 0x1\n\tDT_LNK                         = 0xa\n\tDT_REG                         = 0x8\n\tDT_SOCK                        = 0xc\n\tDT_UNKNOWN                     = 0x0\n\tDT_WHT                         = 0xe\n\tECHO                           = 0x8\n\tECHOCTL                        = 0x40\n\tECHOE                          = 0x2\n\tECHOK                          = 0x4\n\tECHOKE                         = 0x1\n\tECHONL                         = 0x10\n\tECHOPRT                        = 0x20\n\tEHE_DEAD_PRIORITY              = -0x1\n\tEVFILT_AIO                     = -0x3\n\tEVFILT_EMPTY                   = -0xd\n\tEVFILT_FS                      = -0x9\n\tEVFILT_LIO                     = -0xa\n\tEVFILT_PROC                    = -0x5\n\tEVFILT_PROCDESC                = -0x8\n\tEVFILT_READ                    = -0x1\n\tEVFILT_SENDFILE                = -0xc\n\tEVFILT_SIGNAL                  = -0x6\n\tEVFILT_SYSCOUNT                = 0xd\n\tEVFILT_TIMER                   = -0x7\n\tEVFILT_USER                    = -0xb\n\tEVFILT_VNODE                   = -0x4\n\tEVFILT_WRITE                   = -0x2\n\tEVNAMEMAP_NAME_SIZE            = 0x40\n\tEV_ADD                         = 0x1\n\tEV_CLEAR                       = 0x20\n\tEV_DELETE                      = 0x2\n\tEV_DISABLE                     = 0x8\n\tEV_DISPATCH                    = 0x80\n\tEV_DROP                        = 0x1000\n\tEV_ENABLE                      = 0x4\n\tEV_EOF                         = 0x8000\n\tEV_ERROR                       = 0x4000\n\tEV_FLAG1                       = 0x2000\n\tEV_FLAG2                       = 0x4000\n\tEV_FORCEONESHOT                = 0x100\n\tEV_ONESHOT                     = 0x10\n\tEV_RECEIPT                     = 0x40\n\tEV_SYSFLAGS                    = 0xf000\n\tEXTA                           = 0x4b00\n\tEXTATTR_MAXNAMELEN             = 0xff\n\tEXTATTR_NAMESPACE_EMPTY        = 0x0\n\tEXTATTR_NAMESPACE_SYSTEM       = 0x2\n\tEXTATTR_NAMESPACE_USER         = 0x1\n\tEXTB                           = 0x9600\n\tEXTPROC                        = 0x800\n\tFD_CLOEXEC                     = 0x1\n\tFD_NONE                        = -0xc8\n\tFD_SETSIZE                     = 0x400\n\tFLUSHO                         = 0x800000\n\tF_ADD_SEALS                    = 0x13\n\tF_CANCEL                       = 0x5\n\tF_DUP2FD                       = 0xa\n\tF_DUP2FD_CLOEXEC               = 0x12\n\tF_DUPFD                        = 0x0\n\tF_DUPFD_CLOEXEC                = 0x11\n\tF_GETFD                        = 0x1\n\tF_GETFL                        = 0x3\n\tF_GETLK                        = 0xb\n\tF_GETOWN                       = 0x5\n\tF_GET_SEALS                    = 0x14\n\tF_ISUNIONSTACK                 = 0x15\n\tF_KINFO                        = 0x16\n\tF_OGETLK                       = 0x7\n\tF_OK                           = 0x0\n\tF_OSETLK                       = 0x8\n\tF_OSETLKW                      = 0x9\n\tF_RDAHEAD                      = 0x10\n\tF_RDLCK                        = 0x1\n\tF_READAHEAD                    = 0xf\n\tF_SEAL_GROW                    = 0x4\n\tF_SEAL_SEAL                    = 0x1\n\tF_SEAL_SHRINK                  = 0x2\n\tF_SEAL_WRITE                   = 0x8\n\tF_SETFD                        = 0x2\n\tF_SETFL                        = 0x4\n\tF_SETLK                        = 0xc\n\tF_SETLKW                       = 0xd\n\tF_SETLK_REMOTE                 = 0xe\n\tF_SETOWN                       = 0x6\n\tF_UNLCK                        = 0x2\n\tF_UNLCKSYS                     = 0x4\n\tF_WRLCK                        = 0x3\n\tHUPCL                          = 0x4000\n\tHW_MACHINE                     = 0x1\n\tICANON                         = 0x100\n\tICMP6_FILTER                   = 0x12\n\tICRNL                          = 0x100\n\tIEXTEN                         = 0x400\n\tIFAN_ARRIVAL                   = 0x0\n\tIFAN_DEPARTURE                 = 0x1\n\tIFCAP_WOL_MAGIC                = 0x2000\n\tIFF_ALLMULTI                   = 0x200\n\tIFF_ALTPHYS                    = 0x4000\n\tIFF_BROADCAST                  = 0x2\n\tIFF_CANTCHANGE                 = 0x218f72\n\tIFF_CANTCONFIG                 = 0x10000\n\tIFF_DEBUG                      = 0x4\n\tIFF_DRV_OACTIVE                = 0x400\n\tIFF_DRV_RUNNING                = 0x40\n\tIFF_DYING                      = 0x200000\n\tIFF_KNOWSEPOCH                 = 0x20\n\tIFF_LINK0                      = 0x1000\n\tIFF_LINK1                      = 0x2000\n\tIFF_LINK2                      = 0x4000\n\tIFF_LOOPBACK                   = 0x8\n\tIFF_MONITOR                    = 0x40000\n\tIFF_MULTICAST                  = 0x8000\n\tIFF_NOARP                      = 0x80\n\tIFF_NOGROUP                    = 0x800000\n\tIFF_OACTIVE                    = 0x400\n\tIFF_POINTOPOINT                = 0x10\n\tIFF_PPROMISC                   = 0x20000\n\tIFF_PROMISC                    = 0x100\n\tIFF_RENAMING                   = 0x400000\n\tIFF_RUNNING                    = 0x40\n\tIFF_SIMPLEX                    = 0x800\n\tIFF_STATICARP                  = 0x80000\n\tIFF_UP                         = 0x1\n\tIFNAMSIZ                       = 0x10\n\tIFT_BRIDGE                     = 0xd1\n\tIFT_CARP                       = 0xf8\n\tIFT_IEEE1394                   = 0x90\n\tIFT_INFINIBAND                 = 0xc7\n\tIFT_L2VLAN                     = 0x87\n\tIFT_L3IPVLAN                   = 0x88\n\tIFT_PPP                        = 0x17\n\tIFT_PROPVIRTUAL                = 0x35\n\tIGNBRK                         = 0x1\n\tIGNCR                          = 0x80\n\tIGNPAR                         = 0x4\n\tIMAXBEL                        = 0x2000\n\tINLCR                          = 0x40\n\tINPCK                          = 0x10\n\tIN_CLASSA_HOST                 = 0xffffff\n\tIN_CLASSA_MAX                  = 0x80\n\tIN_CLASSA_NET                  = 0xff000000\n\tIN_CLASSA_NSHIFT               = 0x18\n\tIN_CLASSB_HOST                 = 0xffff\n\tIN_CLASSB_MAX                  = 0x10000\n\tIN_CLASSB_NET                  = 0xffff0000\n\tIN_CLASSB_NSHIFT               = 0x10\n\tIN_CLASSC_HOST                 = 0xff\n\tIN_CLASSC_NET                  = 0xffffff00\n\tIN_CLASSC_NSHIFT               = 0x8\n\tIN_CLASSD_HOST                 = 0xfffffff\n\tIN_CLASSD_NET                  = 0xf0000000\n\tIN_CLASSD_NSHIFT               = 0x1c\n\tIN_LOOPBACKNET                 = 0x7f\n\tIN_NETMASK_DEFAULT             = 0xffffff00\n\tIN_RFC3021_MASK                = 0xfffffffe\n\tIPPROTO_3PC                    = 0x22\n\tIPPROTO_ADFS                   = 0x44\n\tIPPROTO_AH                     = 0x33\n\tIPPROTO_AHIP                   = 0x3d\n\tIPPROTO_APES                   = 0x63\n\tIPPROTO_ARGUS                  = 0xd\n\tIPPROTO_AX25                   = 0x5d\n\tIPPROTO_BHA                    = 0x31\n\tIPPROTO_BLT                    = 0x1e\n\tIPPROTO_BRSATMON               = 0x4c\n\tIPPROTO_CARP                   = 0x70\n\tIPPROTO_CFTP                   = 0x3e\n\tIPPROTO_CHAOS                  = 0x10\n\tIPPROTO_CMTP                   = 0x26\n\tIPPROTO_CPHB                   = 0x49\n\tIPPROTO_CPNX                   = 0x48\n\tIPPROTO_DCCP                   = 0x21\n\tIPPROTO_DDP                    = 0x25\n\tIPPROTO_DGP                    = 0x56\n\tIPPROTO_DIVERT                 = 0x102\n\tIPPROTO_DONE                   = 0x101\n\tIPPROTO_DSTOPTS                = 0x3c\n\tIPPROTO_EGP                    = 0x8\n\tIPPROTO_EMCON                  = 0xe\n\tIPPROTO_ENCAP                  = 0x62\n\tIPPROTO_EON                    = 0x50\n\tIPPROTO_ESP                    = 0x32\n\tIPPROTO_ETHERIP                = 0x61\n\tIPPROTO_FRAGMENT               = 0x2c\n\tIPPROTO_GGP                    = 0x3\n\tIPPROTO_GMTP                   = 0x64\n\tIPPROTO_GRE                    = 0x2f\n\tIPPROTO_HELLO                  = 0x3f\n\tIPPROTO_HIP                    = 0x8b\n\tIPPROTO_HMP                    = 0x14\n\tIPPROTO_HOPOPTS                = 0x0\n\tIPPROTO_ICMP                   = 0x1\n\tIPPROTO_ICMPV6                 = 0x3a\n\tIPPROTO_IDP                    = 0x16\n\tIPPROTO_IDPR                   = 0x23\n\tIPPROTO_IDRP                   = 0x2d\n\tIPPROTO_IGMP                   = 0x2\n\tIPPROTO_IGP                    = 0x55\n\tIPPROTO_IGRP                   = 0x58\n\tIPPROTO_IL                     = 0x28\n\tIPPROTO_INLSP                  = 0x34\n\tIPPROTO_INP                    = 0x20\n\tIPPROTO_IP                     = 0x0\n\tIPPROTO_IPCOMP                 = 0x6c\n\tIPPROTO_IPCV                   = 0x47\n\tIPPROTO_IPEIP                  = 0x5e\n\tIPPROTO_IPIP                   = 0x4\n\tIPPROTO_IPPC                   = 0x43\n\tIPPROTO_IPV4                   = 0x4\n\tIPPROTO_IPV6                   = 0x29\n\tIPPROTO_IRTP                   = 0x1c\n\tIPPROTO_KRYPTOLAN              = 0x41\n\tIPPROTO_LARP                   = 0x5b\n\tIPPROTO_LEAF1                  = 0x19\n\tIPPROTO_LEAF2                  = 0x1a\n\tIPPROTO_MAX                    = 0x100\n\tIPPROTO_MEAS                   = 0x13\n\tIPPROTO_MH                     = 0x87\n\tIPPROTO_MHRP                   = 0x30\n\tIPPROTO_MICP                   = 0x5f\n\tIPPROTO_MOBILE                 = 0x37\n\tIPPROTO_MPLS                   = 0x89\n\tIPPROTO_MTP                    = 0x5c\n\tIPPROTO_MUX                    = 0x12\n\tIPPROTO_ND                     = 0x4d\n\tIPPROTO_NHRP                   = 0x36\n\tIPPROTO_NONE                   = 0x3b\n\tIPPROTO_NSP                    = 0x1f\n\tIPPROTO_NVPII                  = 0xb\n\tIPPROTO_OLD_DIVERT             = 0xfe\n\tIPPROTO_OSPFIGP                = 0x59\n\tIPPROTO_PFSYNC                 = 0xf0\n\tIPPROTO_PGM                    = 0x71\n\tIPPROTO_PIGP                   = 0x9\n\tIPPROTO_PIM                    = 0x67\n\tIPPROTO_PRM                    = 0x15\n\tIPPROTO_PUP                    = 0xc\n\tIPPROTO_PVP                    = 0x4b\n\tIPPROTO_RAW                    = 0xff\n\tIPPROTO_RCCMON                 = 0xa\n\tIPPROTO_RDP                    = 0x1b\n\tIPPROTO_RESERVED_253           = 0xfd\n\tIPPROTO_RESERVED_254           = 0xfe\n\tIPPROTO_ROUTING                = 0x2b\n\tIPPROTO_RSVP                   = 0x2e\n\tIPPROTO_RVD                    = 0x42\n\tIPPROTO_SATEXPAK               = 0x40\n\tIPPROTO_SATMON                 = 0x45\n\tIPPROTO_SCCSP                  = 0x60\n\tIPPROTO_SCTP                   = 0x84\n\tIPPROTO_SDRP                   = 0x2a\n\tIPPROTO_SEND                   = 0x103\n\tIPPROTO_SHIM6                  = 0x8c\n\tIPPROTO_SKIP                   = 0x39\n\tIPPROTO_SPACER                 = 0x7fff\n\tIPPROTO_SRPC                   = 0x5a\n\tIPPROTO_ST                     = 0x7\n\tIPPROTO_SVMTP                  = 0x52\n\tIPPROTO_SWIPE                  = 0x35\n\tIPPROTO_TCF                    = 0x57\n\tIPPROTO_TCP                    = 0x6\n\tIPPROTO_TLSP                   = 0x38\n\tIPPROTO_TP                     = 0x1d\n\tIPPROTO_TPXX                   = 0x27\n\tIPPROTO_TRUNK1                 = 0x17\n\tIPPROTO_TRUNK2                 = 0x18\n\tIPPROTO_TTP                    = 0x54\n\tIPPROTO_UDP                    = 0x11\n\tIPPROTO_UDPLITE                = 0x88\n\tIPPROTO_VINES                  = 0x53\n\tIPPROTO_VISA                   = 0x46\n\tIPPROTO_VMTP                   = 0x51\n\tIPPROTO_WBEXPAK                = 0x4f\n\tIPPROTO_WBMON                  = 0x4e\n\tIPPROTO_WSN                    = 0x4a\n\tIPPROTO_XNET                   = 0xf\n\tIPPROTO_XTP                    = 0x24\n\tIPV6_AUTOFLOWLABEL             = 0x3b\n\tIPV6_BINDANY                   = 0x40\n\tIPV6_BINDMULTI                 = 0x41\n\tIPV6_BINDV6ONLY                = 0x1b\n\tIPV6_CHECKSUM                  = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS    = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP    = 0x1\n\tIPV6_DEFHLIM                   = 0x40\n\tIPV6_DONTFRAG                  = 0x3e\n\tIPV6_DSTOPTS                   = 0x32\n\tIPV6_FLOWID                    = 0x43\n\tIPV6_FLOWINFO_MASK             = 0xffffff0f\n\tIPV6_FLOWLABEL_LEN             = 0x14\n\tIPV6_FLOWLABEL_MASK            = 0xffff0f00\n\tIPV6_FLOWTYPE                  = 0x44\n\tIPV6_FRAGTTL                   = 0x78\n\tIPV6_FW_ADD                    = 0x1e\n\tIPV6_FW_DEL                    = 0x1f\n\tIPV6_FW_FLUSH                  = 0x20\n\tIPV6_FW_GET                    = 0x22\n\tIPV6_FW_ZERO                   = 0x21\n\tIPV6_HLIMDEC                   = 0x1\n\tIPV6_HOPLIMIT                  = 0x2f\n\tIPV6_HOPOPTS                   = 0x31\n\tIPV6_IPSEC_POLICY              = 0x1c\n\tIPV6_JOIN_GROUP                = 0xc\n\tIPV6_LEAVE_GROUP               = 0xd\n\tIPV6_MAXHLIM                   = 0xff\n\tIPV6_MAXOPTHDR                 = 0x800\n\tIPV6_MAXPACKET                 = 0xffff\n\tIPV6_MAX_GROUP_SRC_FILTER      = 0x200\n\tIPV6_MAX_MEMBERSHIPS           = 0xfff\n\tIPV6_MAX_SOCK_SRC_FILTER       = 0x80\n\tIPV6_MMTU                      = 0x500\n\tIPV6_MSFILTER                  = 0x4a\n\tIPV6_MULTICAST_HOPS            = 0xa\n\tIPV6_MULTICAST_IF              = 0x9\n\tIPV6_MULTICAST_LOOP            = 0xb\n\tIPV6_NEXTHOP                   = 0x30\n\tIPV6_ORIGDSTADDR               = 0x48\n\tIPV6_PATHMTU                   = 0x2c\n\tIPV6_PKTINFO                   = 0x2e\n\tIPV6_PORTRANGE                 = 0xe\n\tIPV6_PORTRANGE_DEFAULT         = 0x0\n\tIPV6_PORTRANGE_HIGH            = 0x1\n\tIPV6_PORTRANGE_LOW             = 0x2\n\tIPV6_PREFER_TEMPADDR           = 0x3f\n\tIPV6_RECVDSTOPTS               = 0x28\n\tIPV6_RECVFLOWID                = 0x46\n\tIPV6_RECVHOPLIMIT              = 0x25\n\tIPV6_RECVHOPOPTS               = 0x27\n\tIPV6_RECVORIGDSTADDR           = 0x48\n\tIPV6_RECVPATHMTU               = 0x2b\n\tIPV6_RECVPKTINFO               = 0x24\n\tIPV6_RECVRSSBUCKETID           = 0x47\n\tIPV6_RECVRTHDR                 = 0x26\n\tIPV6_RECVTCLASS                = 0x39\n\tIPV6_RSSBUCKETID               = 0x45\n\tIPV6_RSS_LISTEN_BUCKET         = 0x42\n\tIPV6_RTHDR                     = 0x33\n\tIPV6_RTHDRDSTOPTS              = 0x23\n\tIPV6_RTHDR_LOOSE               = 0x0\n\tIPV6_RTHDR_STRICT              = 0x1\n\tIPV6_RTHDR_TYPE_0              = 0x0\n\tIPV6_SOCKOPT_RESERVED1         = 0x3\n\tIPV6_TCLASS                    = 0x3d\n\tIPV6_UNICAST_HOPS              = 0x4\n\tIPV6_USE_MIN_MTU               = 0x2a\n\tIPV6_V6ONLY                    = 0x1b\n\tIPV6_VERSION                   = 0x60\n\tIPV6_VERSION_MASK              = 0xf0\n\tIPV6_VLAN_PCP                  = 0x4b\n\tIP_ADD_MEMBERSHIP              = 0xc\n\tIP_ADD_SOURCE_MEMBERSHIP       = 0x46\n\tIP_BINDANY                     = 0x18\n\tIP_BINDMULTI                   = 0x19\n\tIP_BLOCK_SOURCE                = 0x48\n\tIP_DEFAULT_MULTICAST_LOOP      = 0x1\n\tIP_DEFAULT_MULTICAST_TTL       = 0x1\n\tIP_DF                          = 0x4000\n\tIP_DONTFRAG                    = 0x43\n\tIP_DROP_MEMBERSHIP             = 0xd\n\tIP_DROP_SOURCE_MEMBERSHIP      = 0x47\n\tIP_DUMMYNET3                   = 0x31\n\tIP_DUMMYNET_CONFIGURE          = 0x3c\n\tIP_DUMMYNET_DEL                = 0x3d\n\tIP_DUMMYNET_FLUSH              = 0x3e\n\tIP_DUMMYNET_GET                = 0x40\n\tIP_FLOWID                      = 0x5a\n\tIP_FLOWTYPE                    = 0x5b\n\tIP_FW3                         = 0x30\n\tIP_FW_ADD                      = 0x32\n\tIP_FW_DEL                      = 0x33\n\tIP_FW_FLUSH                    = 0x34\n\tIP_FW_GET                      = 0x36\n\tIP_FW_NAT_CFG                  = 0x38\n\tIP_FW_NAT_DEL                  = 0x39\n\tIP_FW_NAT_GET_CONFIG           = 0x3a\n\tIP_FW_NAT_GET_LOG              = 0x3b\n\tIP_FW_RESETLOG                 = 0x37\n\tIP_FW_TABLE_ADD                = 0x28\n\tIP_FW_TABLE_DEL                = 0x29\n\tIP_FW_TABLE_FLUSH              = 0x2a\n\tIP_FW_TABLE_GETSIZE            = 0x2b\n\tIP_FW_TABLE_LIST               = 0x2c\n\tIP_FW_ZERO                     = 0x35\n\tIP_HDRINCL                     = 0x2\n\tIP_IPSEC_POLICY                = 0x15\n\tIP_MAXPACKET                   = 0xffff\n\tIP_MAX_GROUP_SRC_FILTER        = 0x200\n\tIP_MAX_MEMBERSHIPS             = 0xfff\n\tIP_MAX_SOCK_MUTE_FILTER        = 0x80\n\tIP_MAX_SOCK_SRC_FILTER         = 0x80\n\tIP_MF                          = 0x2000\n\tIP_MINTTL                      = 0x42\n\tIP_MSFILTER                    = 0x4a\n\tIP_MSS                         = 0x240\n\tIP_MULTICAST_IF                = 0x9\n\tIP_MULTICAST_LOOP              = 0xb\n\tIP_MULTICAST_TTL               = 0xa\n\tIP_MULTICAST_VIF               = 0xe\n\tIP_OFFMASK                     = 0x1fff\n\tIP_ONESBCAST                   = 0x17\n\tIP_OPTIONS                     = 0x1\n\tIP_ORIGDSTADDR                 = 0x1b\n\tIP_PORTRANGE                   = 0x13\n\tIP_PORTRANGE_DEFAULT           = 0x0\n\tIP_PORTRANGE_HIGH              = 0x1\n\tIP_PORTRANGE_LOW               = 0x2\n\tIP_RECVDSTADDR                 = 0x7\n\tIP_RECVFLOWID                  = 0x5d\n\tIP_RECVIF                      = 0x14\n\tIP_RECVOPTS                    = 0x5\n\tIP_RECVORIGDSTADDR             = 0x1b\n\tIP_RECVRETOPTS                 = 0x6\n\tIP_RECVRSSBUCKETID             = 0x5e\n\tIP_RECVTOS                     = 0x44\n\tIP_RECVTTL                     = 0x41\n\tIP_RETOPTS                     = 0x8\n\tIP_RF                          = 0x8000\n\tIP_RSSBUCKETID                 = 0x5c\n\tIP_RSS_LISTEN_BUCKET           = 0x1a\n\tIP_RSVP_OFF                    = 0x10\n\tIP_RSVP_ON                     = 0xf\n\tIP_RSVP_VIF_OFF                = 0x12\n\tIP_RSVP_VIF_ON                 = 0x11\n\tIP_SENDSRCADDR                 = 0x7\n\tIP_TOS                         = 0x3\n\tIP_TTL                         = 0x4\n\tIP_UNBLOCK_SOURCE              = 0x49\n\tIP_VLAN_PCP                    = 0x4b\n\tISIG                           = 0x80\n\tISTRIP                         = 0x20\n\tITIMER_PROF                    = 0x2\n\tITIMER_REAL                    = 0x0\n\tITIMER_VIRTUAL                 = 0x1\n\tIXANY                          = 0x800\n\tIXOFF                          = 0x400\n\tIXON                           = 0x200\n\tKERN_HOSTNAME                  = 0xa\n\tKERN_OSRELEASE                 = 0x2\n\tKERN_OSTYPE                    = 0x1\n\tKERN_VERSION                   = 0x4\n\tLOCAL_CONNWAIT                 = 0x4\n\tLOCAL_CREDS                    = 0x2\n\tLOCAL_CREDS_PERSISTENT         = 0x3\n\tLOCAL_PEERCRED                 = 0x1\n\tLOCAL_VENDOR                   = 0x80000000\n\tLOCK_EX                        = 0x2\n\tLOCK_NB                        = 0x4\n\tLOCK_SH                        = 0x1\n\tLOCK_UN                        = 0x8\n\tMADV_AUTOSYNC                  = 0x7\n\tMADV_CORE                      = 0x9\n\tMADV_DONTNEED                  = 0x4\n\tMADV_FREE                      = 0x5\n\tMADV_NOCORE                    = 0x8\n\tMADV_NORMAL                    = 0x0\n\tMADV_NOSYNC                    = 0x6\n\tMADV_PROTECT                   = 0xa\n\tMADV_RANDOM                    = 0x1\n\tMADV_SEQUENTIAL                = 0x2\n\tMADV_WILLNEED                  = 0x3\n\tMAP_32BIT                      = 0x80000\n\tMAP_ALIGNED_SUPER              = 0x1000000\n\tMAP_ALIGNMENT_MASK             = -0x1000000\n\tMAP_ALIGNMENT_SHIFT            = 0x18\n\tMAP_ANON                       = 0x1000\n\tMAP_ANONYMOUS                  = 0x1000\n\tMAP_COPY                       = 0x2\n\tMAP_EXCL                       = 0x4000\n\tMAP_FILE                       = 0x0\n\tMAP_FIXED                      = 0x10\n\tMAP_GUARD                      = 0x2000\n\tMAP_HASSEMAPHORE               = 0x200\n\tMAP_NOCORE                     = 0x20000\n\tMAP_NOSYNC                     = 0x800\n\tMAP_PREFAULT_READ              = 0x40000\n\tMAP_PRIVATE                    = 0x2\n\tMAP_RESERVED0020               = 0x20\n\tMAP_RESERVED0040               = 0x40\n\tMAP_RESERVED0080               = 0x80\n\tMAP_RESERVED0100               = 0x100\n\tMAP_SHARED                     = 0x1\n\tMAP_STACK                      = 0x400\n\tMCAST_BLOCK_SOURCE             = 0x54\n\tMCAST_EXCLUDE                  = 0x2\n\tMCAST_INCLUDE                  = 0x1\n\tMCAST_JOIN_GROUP               = 0x50\n\tMCAST_JOIN_SOURCE_GROUP        = 0x52\n\tMCAST_LEAVE_GROUP              = 0x51\n\tMCAST_LEAVE_SOURCE_GROUP       = 0x53\n\tMCAST_UNBLOCK_SOURCE           = 0x55\n\tMCAST_UNDEFINED                = 0x0\n\tMCL_CURRENT                    = 0x1\n\tMCL_FUTURE                     = 0x2\n\tMFD_ALLOW_SEALING              = 0x2\n\tMFD_CLOEXEC                    = 0x1\n\tMFD_HUGETLB                    = 0x4\n\tMFD_HUGE_16GB                  = -0x78000000\n\tMFD_HUGE_16MB                  = 0x60000000\n\tMFD_HUGE_1GB                   = 0x78000000\n\tMFD_HUGE_1MB                   = 0x50000000\n\tMFD_HUGE_256MB                 = 0x70000000\n\tMFD_HUGE_2GB                   = 0x7c000000\n\tMFD_HUGE_2MB                   = 0x54000000\n\tMFD_HUGE_32MB                  = 0x64000000\n\tMFD_HUGE_512KB                 = 0x4c000000\n\tMFD_HUGE_512MB                 = 0x74000000\n\tMFD_HUGE_64KB                  = 0x40000000\n\tMFD_HUGE_8MB                   = 0x5c000000\n\tMFD_HUGE_MASK                  = 0xfc000000\n\tMFD_HUGE_SHIFT                 = 0x1a\n\tMNT_ACLS                       = 0x8000000\n\tMNT_ASYNC                      = 0x40\n\tMNT_AUTOMOUNTED                = 0x200000000\n\tMNT_BYFSID                     = 0x8000000\n\tMNT_CMDFLAGS                   = 0x300d0f0000\n\tMNT_DEFEXPORTED                = 0x200\n\tMNT_DELEXPORT                  = 0x20000\n\tMNT_EMPTYDIR                   = 0x2000000000\n\tMNT_EXKERB                     = 0x800\n\tMNT_EXPORTANON                 = 0x400\n\tMNT_EXPORTED                   = 0x100\n\tMNT_EXPUBLIC                   = 0x20000000\n\tMNT_EXRDONLY                   = 0x80\n\tMNT_EXTLS                      = 0x4000000000\n\tMNT_EXTLSCERT                  = 0x8000000000\n\tMNT_EXTLSCERTUSER              = 0x10000000000\n\tMNT_FORCE                      = 0x80000\n\tMNT_GJOURNAL                   = 0x2000000\n\tMNT_IGNORE                     = 0x800000\n\tMNT_LAZY                       = 0x3\n\tMNT_LOCAL                      = 0x1000\n\tMNT_MULTILABEL                 = 0x4000000\n\tMNT_NFS4ACLS                   = 0x10\n\tMNT_NOATIME                    = 0x10000000\n\tMNT_NOCLUSTERR                 = 0x40000000\n\tMNT_NOCLUSTERW                 = 0x80000000\n\tMNT_NOCOVER                    = 0x1000000000\n\tMNT_NOEXEC                     = 0x4\n\tMNT_NONBUSY                    = 0x4000000\n\tMNT_NOSUID                     = 0x8\n\tMNT_NOSYMFOLLOW                = 0x400000\n\tMNT_NOWAIT                     = 0x2\n\tMNT_QUOTA                      = 0x2000\n\tMNT_RDONLY                     = 0x1\n\tMNT_RELOAD                     = 0x40000\n\tMNT_ROOTFS                     = 0x4000\n\tMNT_SNAPSHOT                   = 0x1000000\n\tMNT_SOFTDEP                    = 0x200000\n\tMNT_SUIDDIR                    = 0x100000\n\tMNT_SUJ                        = 0x100000000\n\tMNT_SUSPEND                    = 0x4\n\tMNT_SYNCHRONOUS                = 0x2\n\tMNT_UNION                      = 0x20\n\tMNT_UNTRUSTED                  = 0x800000000\n\tMNT_UPDATE                     = 0x10000\n\tMNT_UPDATEMASK                 = 0xad8d0807e\n\tMNT_USER                       = 0x8000\n\tMNT_VERIFIED                   = 0x400000000\n\tMNT_VISFLAGMASK                = 0xffef0ffff\n\tMNT_WAIT                       = 0x1\n\tMSG_CMSG_CLOEXEC               = 0x40000\n\tMSG_COMPAT                     = 0x8000\n\tMSG_CTRUNC                     = 0x20\n\tMSG_DONTROUTE                  = 0x4\n\tMSG_DONTWAIT                   = 0x80\n\tMSG_EOF                        = 0x100\n\tMSG_EOR                        = 0x8\n\tMSG_NBIO                       = 0x4000\n\tMSG_NOSIGNAL                   = 0x20000\n\tMSG_NOTIFICATION               = 0x2000\n\tMSG_OOB                        = 0x1\n\tMSG_PEEK                       = 0x2\n\tMSG_TRUNC                      = 0x10\n\tMSG_WAITALL                    = 0x40\n\tMSG_WAITFORONE                 = 0x80000\n\tMS_ASYNC                       = 0x1\n\tMS_INVALIDATE                  = 0x2\n\tMS_SYNC                        = 0x0\n\tNAME_MAX                       = 0xff\n\tNET_RT_DUMP                    = 0x1\n\tNET_RT_FLAGS                   = 0x2\n\tNET_RT_IFLIST                  = 0x3\n\tNET_RT_IFLISTL                 = 0x5\n\tNET_RT_IFMALIST                = 0x4\n\tNET_RT_NHGRP                   = 0x7\n\tNET_RT_NHOP                    = 0x6\n\tNFDBITS                        = 0x40\n\tNOFLSH                         = 0x80000000\n\tNOKERNINFO                     = 0x2000000\n\tNOTE_ABSTIME                   = 0x10\n\tNOTE_ATTRIB                    = 0x8\n\tNOTE_CHILD                     = 0x4\n\tNOTE_CLOSE                     = 0x100\n\tNOTE_CLOSE_WRITE               = 0x200\n\tNOTE_DELETE                    = 0x1\n\tNOTE_EXEC                      = 0x20000000\n\tNOTE_EXIT                      = 0x80000000\n\tNOTE_EXTEND                    = 0x4\n\tNOTE_FFAND                     = 0x40000000\n\tNOTE_FFCOPY                    = 0xc0000000\n\tNOTE_FFCTRLMASK                = 0xc0000000\n\tNOTE_FFLAGSMASK                = 0xffffff\n\tNOTE_FFNOP                     = 0x0\n\tNOTE_FFOR                      = 0x80000000\n\tNOTE_FILE_POLL                 = 0x2\n\tNOTE_FORK                      = 0x40000000\n\tNOTE_LINK                      = 0x10\n\tNOTE_LOWAT                     = 0x1\n\tNOTE_MSECONDS                  = 0x2\n\tNOTE_NSECONDS                  = 0x8\n\tNOTE_OPEN                      = 0x80\n\tNOTE_PCTRLMASK                 = 0xf0000000\n\tNOTE_PDATAMASK                 = 0xfffff\n\tNOTE_READ                      = 0x400\n\tNOTE_RENAME                    = 0x20\n\tNOTE_REVOKE                    = 0x40\n\tNOTE_SECONDS                   = 0x1\n\tNOTE_TRACK                     = 0x1\n\tNOTE_TRACKERR                  = 0x2\n\tNOTE_TRIGGER                   = 0x1000000\n\tNOTE_USECONDS                  = 0x4\n\tNOTE_WRITE                     = 0x2\n\tOCRNL                          = 0x10\n\tONLCR                          = 0x2\n\tONLRET                         = 0x40\n\tONOCR                          = 0x20\n\tONOEOT                         = 0x8\n\tOPOST                          = 0x1\n\tOXTABS                         = 0x4\n\tO_ACCMODE                      = 0x3\n\tO_APPEND                       = 0x8\n\tO_ASYNC                        = 0x40\n\tO_CLOEXEC                      = 0x100000\n\tO_CREAT                        = 0x200\n\tO_DIRECT                       = 0x10000\n\tO_DIRECTORY                    = 0x20000\n\tO_DSYNC                        = 0x1000000\n\tO_EMPTY_PATH                   = 0x2000000\n\tO_EXCL                         = 0x800\n\tO_EXEC                         = 0x40000\n\tO_EXLOCK                       = 0x20\n\tO_FSYNC                        = 0x80\n\tO_NDELAY                       = 0x4\n\tO_NOCTTY                       = 0x8000\n\tO_NOFOLLOW                     = 0x100\n\tO_NONBLOCK                     = 0x4\n\tO_PATH                         = 0x400000\n\tO_RDONLY                       = 0x0\n\tO_RDWR                         = 0x2\n\tO_RESOLVE_BENEATH              = 0x800000\n\tO_SEARCH                       = 0x40000\n\tO_SHLOCK                       = 0x10\n\tO_SYNC                         = 0x80\n\tO_TRUNC                        = 0x400\n\tO_TTY_INIT                     = 0x80000\n\tO_VERIFY                       = 0x200000\n\tO_WRONLY                       = 0x1\n\tPARENB                         = 0x1000\n\tPARMRK                         = 0x8\n\tPARODD                         = 0x2000\n\tPENDIN                         = 0x20000000\n\tPIOD_READ_D                    = 0x1\n\tPIOD_READ_I                    = 0x3\n\tPIOD_WRITE_D                   = 0x2\n\tPIOD_WRITE_I                   = 0x4\n\tPRIO_PGRP                      = 0x1\n\tPRIO_PROCESS                   = 0x0\n\tPRIO_USER                      = 0x2\n\tPROT_EXEC                      = 0x4\n\tPROT_NONE                      = 0x0\n\tPROT_READ                      = 0x1\n\tPROT_WRITE                     = 0x2\n\tPTRACE_DEFAULT                 = 0x1\n\tPTRACE_EXEC                    = 0x1\n\tPTRACE_FORK                    = 0x8\n\tPTRACE_LWP                     = 0x10\n\tPTRACE_SCE                     = 0x2\n\tPTRACE_SCX                     = 0x4\n\tPTRACE_SYSCALL                 = 0x6\n\tPTRACE_VFORK                   = 0x20\n\tPT_ATTACH                      = 0xa\n\tPT_CLEARSTEP                   = 0x10\n\tPT_CONTINUE                    = 0x7\n\tPT_COREDUMP                    = 0x1d\n\tPT_DETACH                      = 0xb\n\tPT_FIRSTMACH                   = 0x40\n\tPT_FOLLOW_FORK                 = 0x17\n\tPT_GETDBREGS                   = 0x25\n\tPT_GETFPREGS                   = 0x23\n\tPT_GETLWPLIST                  = 0xf\n\tPT_GETNUMLWPS                  = 0xe\n\tPT_GETREGS                     = 0x21\n\tPT_GET_EVENT_MASK              = 0x19\n\tPT_GET_SC_ARGS                 = 0x1b\n\tPT_GET_SC_RET                  = 0x1c\n\tPT_IO                          = 0xc\n\tPT_KILL                        = 0x8\n\tPT_LWPINFO                     = 0xd\n\tPT_LWP_EVENTS                  = 0x18\n\tPT_READ_D                      = 0x2\n\tPT_READ_I                      = 0x1\n\tPT_RESUME                      = 0x13\n\tPT_SETDBREGS                   = 0x26\n\tPT_SETFPREGS                   = 0x24\n\tPT_SETREGS                     = 0x22\n\tPT_SETSTEP                     = 0x11\n\tPT_SET_EVENT_MASK              = 0x1a\n\tPT_STEP                        = 0x9\n\tPT_SUSPEND                     = 0x12\n\tPT_SYSCALL                     = 0x16\n\tPT_TO_SCE                      = 0x14\n\tPT_TO_SCX                      = 0x15\n\tPT_TRACE_ME                    = 0x0\n\tPT_VM_ENTRY                    = 0x29\n\tPT_VM_TIMESTAMP                = 0x28\n\tPT_WRITE_D                     = 0x5\n\tPT_WRITE_I                     = 0x4\n\tP_ZONEID                       = 0xc\n\tRLIMIT_AS                      = 0xa\n\tRLIMIT_CORE                    = 0x4\n\tRLIMIT_CPU                     = 0x0\n\tRLIMIT_DATA                    = 0x2\n\tRLIMIT_FSIZE                   = 0x1\n\tRLIMIT_MEMLOCK                 = 0x6\n\tRLIMIT_NOFILE                  = 0x8\n\tRLIMIT_NPROC                   = 0x7\n\tRLIMIT_RSS                     = 0x5\n\tRLIMIT_STACK                   = 0x3\n\tRLIM_INFINITY                  = 0x7fffffffffffffff\n\tRTAX_AUTHOR                    = 0x6\n\tRTAX_BRD                       = 0x7\n\tRTAX_DST                       = 0x0\n\tRTAX_GATEWAY                   = 0x1\n\tRTAX_GENMASK                   = 0x3\n\tRTAX_IFA                       = 0x5\n\tRTAX_IFP                       = 0x4\n\tRTAX_MAX                       = 0x8\n\tRTAX_NETMASK                   = 0x2\n\tRTA_AUTHOR                     = 0x40\n\tRTA_BRD                        = 0x80\n\tRTA_DST                        = 0x1\n\tRTA_GATEWAY                    = 0x2\n\tRTA_GENMASK                    = 0x8\n\tRTA_IFA                        = 0x20\n\tRTA_IFP                        = 0x10\n\tRTA_NETMASK                    = 0x4\n\tRTF_BLACKHOLE                  = 0x1000\n\tRTF_BROADCAST                  = 0x400000\n\tRTF_DONE                       = 0x40\n\tRTF_DYNAMIC                    = 0x10\n\tRTF_FIXEDMTU                   = 0x80000\n\tRTF_FMASK                      = 0x1004d808\n\tRTF_GATEWAY                    = 0x2\n\tRTF_GWFLAG_COMPAT              = 0x80000000\n\tRTF_HOST                       = 0x4\n\tRTF_LLDATA                     = 0x400\n\tRTF_LLINFO                     = 0x400\n\tRTF_LOCAL                      = 0x200000\n\tRTF_MODIFIED                   = 0x20\n\tRTF_MULTICAST                  = 0x800000\n\tRTF_PINNED                     = 0x100000\n\tRTF_PROTO1                     = 0x8000\n\tRTF_PROTO2                     = 0x4000\n\tRTF_PROTO3                     = 0x40000\n\tRTF_REJECT                     = 0x8\n\tRTF_STATIC                     = 0x800\n\tRTF_STICKY                     = 0x10000000\n\tRTF_UP                         = 0x1\n\tRTF_XRESOLVE                   = 0x200\n\tRTM_ADD                        = 0x1\n\tRTM_CHANGE                     = 0x3\n\tRTM_DELADDR                    = 0xd\n\tRTM_DELETE                     = 0x2\n\tRTM_DELMADDR                   = 0x10\n\tRTM_GET                        = 0x4\n\tRTM_IEEE80211                  = 0x12\n\tRTM_IFANNOUNCE                 = 0x11\n\tRTM_IFINFO                     = 0xe\n\tRTM_LOCK                       = 0x8\n\tRTM_LOSING                     = 0x5\n\tRTM_MISS                       = 0x7\n\tRTM_NEWADDR                    = 0xc\n\tRTM_NEWMADDR                   = 0xf\n\tRTM_REDIRECT                   = 0x6\n\tRTM_RESOLVE                    = 0xb\n\tRTM_RTTUNIT                    = 0xf4240\n\tRTM_VERSION                    = 0x5\n\tRTV_EXPIRE                     = 0x4\n\tRTV_HOPCOUNT                   = 0x2\n\tRTV_MTU                        = 0x1\n\tRTV_RPIPE                      = 0x8\n\tRTV_RTT                        = 0x40\n\tRTV_RTTVAR                     = 0x80\n\tRTV_SPIPE                      = 0x10\n\tRTV_SSTHRESH                   = 0x20\n\tRTV_WEIGHT                     = 0x100\n\tRT_ALL_FIBS                    = -0x1\n\tRT_BLACKHOLE                   = 0x40\n\tRT_DEFAULT_FIB                 = 0x0\n\tRT_DEFAULT_WEIGHT              = 0x1\n\tRT_HAS_GW                      = 0x80\n\tRT_HAS_HEADER                  = 0x10\n\tRT_HAS_HEADER_BIT              = 0x4\n\tRT_L2_ME                       = 0x4\n\tRT_L2_ME_BIT                   = 0x2\n\tRT_LLE_CACHE                   = 0x100\n\tRT_MAX_WEIGHT                  = 0xffffff\n\tRT_MAY_LOOP                    = 0x8\n\tRT_MAY_LOOP_BIT                = 0x3\n\tRT_REJECT                      = 0x20\n\tRUSAGE_CHILDREN                = -0x1\n\tRUSAGE_SELF                    = 0x0\n\tRUSAGE_THREAD                  = 0x1\n\tSCM_BINTIME                    = 0x4\n\tSCM_CREDS                      = 0x3\n\tSCM_CREDS2                     = 0x8\n\tSCM_MONOTONIC                  = 0x6\n\tSCM_REALTIME                   = 0x5\n\tSCM_RIGHTS                     = 0x1\n\tSCM_TIMESTAMP                  = 0x2\n\tSCM_TIME_INFO                  = 0x7\n\tSEEK_CUR                       = 0x1\n\tSEEK_DATA                      = 0x3\n\tSEEK_END                       = 0x2\n\tSEEK_HOLE                      = 0x4\n\tSEEK_SET                       = 0x0\n\tSHUT_RD                        = 0x0\n\tSHUT_RDWR                      = 0x2\n\tSHUT_WR                        = 0x1\n\tSIOCADDMULTI                   = 0x80206931\n\tSIOCAIFADDR                    = 0x8040691a\n\tSIOCAIFGROUP                   = 0x80286987\n\tSIOCATMARK                     = 0x40047307\n\tSIOCDELMULTI                   = 0x80206932\n\tSIOCDIFADDR                    = 0x80206919\n\tSIOCDIFGROUP                   = 0x80286989\n\tSIOCDIFPHYADDR                 = 0x80206949\n\tSIOCGDRVSPEC                   = 0xc028697b\n\tSIOCGETSGCNT                   = 0xc0207210\n\tSIOCGETVIFCNT                  = 0xc028720f\n\tSIOCGHIWAT                     = 0x40047301\n\tSIOCGHWADDR                    = 0xc020693e\n\tSIOCGI2C                       = 0xc020693d\n\tSIOCGIFADDR                    = 0xc0206921\n\tSIOCGIFALIAS                   = 0xc044692d\n\tSIOCGIFBRDADDR                 = 0xc0206923\n\tSIOCGIFCAP                     = 0xc020691f\n\tSIOCGIFCONF                    = 0xc0106924\n\tSIOCGIFDATA                    = 0x8020692c\n\tSIOCGIFDESCR                   = 0xc020692a\n\tSIOCGIFDOWNREASON              = 0xc058699a\n\tSIOCGIFDSTADDR                 = 0xc0206922\n\tSIOCGIFFIB                     = 0xc020695c\n\tSIOCGIFFLAGS                   = 0xc0206911\n\tSIOCGIFGENERIC                 = 0xc020693a\n\tSIOCGIFGMEMB                   = 0xc028698a\n\tSIOCGIFGROUP                   = 0xc0286988\n\tSIOCGIFINDEX                   = 0xc0206920\n\tSIOCGIFMAC                     = 0xc0206926\n\tSIOCGIFMEDIA                   = 0xc0306938\n\tSIOCGIFMETRIC                  = 0xc0206917\n\tSIOCGIFMTU                     = 0xc0206933\n\tSIOCGIFNETMASK                 = 0xc0206925\n\tSIOCGIFPDSTADDR                = 0xc0206948\n\tSIOCGIFPHYS                    = 0xc0206935\n\tSIOCGIFPSRCADDR                = 0xc0206947\n\tSIOCGIFRSSHASH                 = 0xc0186997\n\tSIOCGIFRSSKEY                  = 0xc0946996\n\tSIOCGIFSTATUS                  = 0xc331693b\n\tSIOCGIFXMEDIA                  = 0xc030698b\n\tSIOCGLANPCP                    = 0xc0206998\n\tSIOCGLOWAT                     = 0x40047303\n\tSIOCGPGRP                      = 0x40047309\n\tSIOCGPRIVATE_0                 = 0xc0206950\n\tSIOCGPRIVATE_1                 = 0xc0206951\n\tSIOCGTUNFIB                    = 0xc020695e\n\tSIOCIFCREATE                   = 0xc020697a\n\tSIOCIFCREATE2                  = 0xc020697c\n\tSIOCIFDESTROY                  = 0x80206979\n\tSIOCIFGCLONERS                 = 0xc0106978\n\tSIOCSDRVSPEC                   = 0x8028697b\n\tSIOCSHIWAT                     = 0x80047300\n\tSIOCSIFADDR                    = 0x8020690c\n\tSIOCSIFBRDADDR                 = 0x80206913\n\tSIOCSIFCAP                     = 0x8020691e\n\tSIOCSIFDESCR                   = 0x80206929\n\tSIOCSIFDSTADDR                 = 0x8020690e\n\tSIOCSIFFIB                     = 0x8020695d\n\tSIOCSIFFLAGS                   = 0x80206910\n\tSIOCSIFGENERIC                 = 0x80206939\n\tSIOCSIFLLADDR                  = 0x8020693c\n\tSIOCSIFMAC                     = 0x80206927\n\tSIOCSIFMEDIA                   = 0xc0206937\n\tSIOCSIFMETRIC                  = 0x80206918\n\tSIOCSIFMTU                     = 0x80206934\n\tSIOCSIFNAME                    = 0x80206928\n\tSIOCSIFNETMASK                 = 0x80206916\n\tSIOCSIFPHYADDR                 = 0x80406946\n\tSIOCSIFPHYS                    = 0x80206936\n\tSIOCSIFRVNET                   = 0xc020695b\n\tSIOCSIFVNET                    = 0xc020695a\n\tSIOCSLANPCP                    = 0x80206999\n\tSIOCSLOWAT                     = 0x80047302\n\tSIOCSPGRP                      = 0x80047308\n\tSIOCSTUNFIB                    = 0x8020695f\n\tSOCK_CLOEXEC                   = 0x10000000\n\tSOCK_DGRAM                     = 0x2\n\tSOCK_MAXADDRLEN                = 0xff\n\tSOCK_NONBLOCK                  = 0x20000000\n\tSOCK_RAW                       = 0x3\n\tSOCK_RDM                       = 0x4\n\tSOCK_SEQPACKET                 = 0x5\n\tSOCK_STREAM                    = 0x1\n\tSOL_LOCAL                      = 0x0\n\tSOL_SOCKET                     = 0xffff\n\tSOMAXCONN                      = 0x80\n\tSO_ACCEPTCONN                  = 0x2\n\tSO_ACCEPTFILTER                = 0x1000\n\tSO_BINTIME                     = 0x2000\n\tSO_BROADCAST                   = 0x20\n\tSO_DEBUG                       = 0x1\n\tSO_DOMAIN                      = 0x1019\n\tSO_DONTROUTE                   = 0x10\n\tSO_ERROR                       = 0x1007\n\tSO_KEEPALIVE                   = 0x8\n\tSO_LABEL                       = 0x1009\n\tSO_LINGER                      = 0x80\n\tSO_LISTENINCQLEN               = 0x1013\n\tSO_LISTENQLEN                  = 0x1012\n\tSO_LISTENQLIMIT                = 0x1011\n\tSO_MAX_PACING_RATE             = 0x1018\n\tSO_NOSIGPIPE                   = 0x800\n\tSO_NO_DDP                      = 0x8000\n\tSO_NO_OFFLOAD                  = 0x4000\n\tSO_OOBINLINE                   = 0x100\n\tSO_PEERLABEL                   = 0x1010\n\tSO_PROTOCOL                    = 0x1016\n\tSO_PROTOTYPE                   = 0x1016\n\tSO_RCVBUF                      = 0x1002\n\tSO_RCVLOWAT                    = 0x1004\n\tSO_RCVTIMEO                    = 0x1006\n\tSO_RERROR                      = 0x20000\n\tSO_REUSEADDR                   = 0x4\n\tSO_REUSEPORT                   = 0x200\n\tSO_REUSEPORT_LB                = 0x10000\n\tSO_SETFIB                      = 0x1014\n\tSO_SNDBUF                      = 0x1001\n\tSO_SNDLOWAT                    = 0x1003\n\tSO_SNDTIMEO                    = 0x1005\n\tSO_TIMESTAMP                   = 0x400\n\tSO_TS_BINTIME                  = 0x1\n\tSO_TS_CLOCK                    = 0x1017\n\tSO_TS_CLOCK_MAX                = 0x3\n\tSO_TS_DEFAULT                  = 0x0\n\tSO_TS_MONOTONIC                = 0x3\n\tSO_TS_REALTIME                 = 0x2\n\tSO_TS_REALTIME_MICRO           = 0x0\n\tSO_TYPE                        = 0x1008\n\tSO_USELOOPBACK                 = 0x40\n\tSO_USER_COOKIE                 = 0x1015\n\tSO_VENDOR                      = 0x80000000\n\tS_BLKSIZE                      = 0x200\n\tS_IEXEC                        = 0x40\n\tS_IFBLK                        = 0x6000\n\tS_IFCHR                        = 0x2000\n\tS_IFDIR                        = 0x4000\n\tS_IFIFO                        = 0x1000\n\tS_IFLNK                        = 0xa000\n\tS_IFMT                         = 0xf000\n\tS_IFREG                        = 0x8000\n\tS_IFSOCK                       = 0xc000\n\tS_IFWHT                        = 0xe000\n\tS_IREAD                        = 0x100\n\tS_IRGRP                        = 0x20\n\tS_IROTH                        = 0x4\n\tS_IRUSR                        = 0x100\n\tS_IRWXG                        = 0x38\n\tS_IRWXO                        = 0x7\n\tS_IRWXU                        = 0x1c0\n\tS_ISGID                        = 0x400\n\tS_ISTXT                        = 0x200\n\tS_ISUID                        = 0x800\n\tS_ISVTX                        = 0x200\n\tS_IWGRP                        = 0x10\n\tS_IWOTH                        = 0x2\n\tS_IWRITE                       = 0x80\n\tS_IWUSR                        = 0x80\n\tS_IXGRP                        = 0x8\n\tS_IXOTH                        = 0x1\n\tS_IXUSR                        = 0x40\n\tTAB0                           = 0x0\n\tTAB3                           = 0x4\n\tTABDLY                         = 0x4\n\tTCIFLUSH                       = 0x1\n\tTCIOFF                         = 0x3\n\tTCIOFLUSH                      = 0x3\n\tTCION                          = 0x4\n\tTCOFLUSH                       = 0x2\n\tTCOOFF                         = 0x1\n\tTCOON                          = 0x2\n\tTCPOPT_EOL                     = 0x0\n\tTCPOPT_FAST_OPEN               = 0x22\n\tTCPOPT_MAXSEG                  = 0x2\n\tTCPOPT_NOP                     = 0x1\n\tTCPOPT_PAD                     = 0x0\n\tTCPOPT_SACK                    = 0x5\n\tTCPOPT_SACK_PERMITTED          = 0x4\n\tTCPOPT_SIGNATURE               = 0x13\n\tTCPOPT_TIMESTAMP               = 0x8\n\tTCPOPT_WINDOW                  = 0x3\n\tTCP_BBR_ACK_COMP_ALG           = 0x448\n\tTCP_BBR_ALGORITHM              = 0x43b\n\tTCP_BBR_DRAIN_INC_EXTRA        = 0x43c\n\tTCP_BBR_DRAIN_PG               = 0x42e\n\tTCP_BBR_EXTRA_GAIN             = 0x449\n\tTCP_BBR_EXTRA_STATE            = 0x453\n\tTCP_BBR_FLOOR_MIN_TSO          = 0x454\n\tTCP_BBR_HDWR_PACE              = 0x451\n\tTCP_BBR_HOLD_TARGET            = 0x436\n\tTCP_BBR_IWINTSO                = 0x42b\n\tTCP_BBR_LOWGAIN_FD             = 0x436\n\tTCP_BBR_LOWGAIN_HALF           = 0x435\n\tTCP_BBR_LOWGAIN_THRESH         = 0x434\n\tTCP_BBR_MAX_RTO                = 0x439\n\tTCP_BBR_MIN_RTO                = 0x438\n\tTCP_BBR_MIN_TOPACEOUT          = 0x455\n\tTCP_BBR_ONE_RETRAN             = 0x431\n\tTCP_BBR_PACE_CROSS             = 0x442\n\tTCP_BBR_PACE_DEL_TAR           = 0x43f\n\tTCP_BBR_PACE_OH                = 0x435\n\tTCP_BBR_PACE_PER_SEC           = 0x43e\n\tTCP_BBR_PACE_SEG_MAX           = 0x440\n\tTCP_BBR_PACE_SEG_MIN           = 0x441\n\tTCP_BBR_POLICER_DETECT         = 0x457\n\tTCP_BBR_PROBE_RTT_GAIN         = 0x44d\n\tTCP_BBR_PROBE_RTT_INT          = 0x430\n\tTCP_BBR_PROBE_RTT_LEN          = 0x44e\n\tTCP_BBR_RACK_INIT_RATE         = 0x458\n\tTCP_BBR_RACK_RTT_USE           = 0x44a\n\tTCP_BBR_RECFORCE               = 0x42c\n\tTCP_BBR_REC_OVER_HPTS          = 0x43a\n\tTCP_BBR_RETRAN_WTSO            = 0x44b\n\tTCP_BBR_RWND_IS_APP            = 0x42f\n\tTCP_BBR_SEND_IWND_IN_TSO       = 0x44f\n\tTCP_BBR_STARTUP_EXIT_EPOCH     = 0x43d\n\tTCP_BBR_STARTUP_LOSS_EXIT      = 0x432\n\tTCP_BBR_STARTUP_PG             = 0x42d\n\tTCP_BBR_TMR_PACE_OH            = 0x448\n\tTCP_BBR_TSLIMITS               = 0x434\n\tTCP_BBR_TSTMP_RAISES           = 0x456\n\tTCP_BBR_UNLIMITED              = 0x43b\n\tTCP_BBR_USEDEL_RATE            = 0x437\n\tTCP_BBR_USE_LOWGAIN            = 0x433\n\tTCP_BBR_USE_RACK_CHEAT         = 0x450\n\tTCP_BBR_USE_RACK_RR            = 0x450\n\tTCP_BBR_UTTER_MAX_TSO          = 0x452\n\tTCP_CA_NAME_MAX                = 0x10\n\tTCP_CCALGOOPT                  = 0x41\n\tTCP_CONGESTION                 = 0x40\n\tTCP_DATA_AFTER_CLOSE           = 0x44c\n\tTCP_DEFER_OPTIONS              = 0x470\n\tTCP_DELACK                     = 0x48\n\tTCP_FASTOPEN                   = 0x401\n\tTCP_FASTOPEN_MAX_COOKIE_LEN    = 0x10\n\tTCP_FASTOPEN_MIN_COOKIE_LEN    = 0x4\n\tTCP_FASTOPEN_PSK_LEN           = 0x10\n\tTCP_FAST_RSM_HACK              = 0x471\n\tTCP_FIN_IS_RST                 = 0x49\n\tTCP_FUNCTION_BLK               = 0x2000\n\tTCP_FUNCTION_NAME_LEN_MAX      = 0x20\n\tTCP_HDWR_RATE_CAP              = 0x46a\n\tTCP_HDWR_UP_ONLY               = 0x46c\n\tTCP_IDLE_REDUCE                = 0x46\n\tTCP_INFO                       = 0x20\n\tTCP_IWND_NB                    = 0x2b\n\tTCP_IWND_NSEG                  = 0x2c\n\tTCP_KEEPCNT                    = 0x400\n\tTCP_KEEPIDLE                   = 0x100\n\tTCP_KEEPINIT                   = 0x80\n\tTCP_KEEPINTVL                  = 0x200\n\tTCP_LOG                        = 0x22\n\tTCP_LOGBUF                     = 0x23\n\tTCP_LOGDUMP                    = 0x25\n\tTCP_LOGDUMPID                  = 0x26\n\tTCP_LOGID                      = 0x24\n\tTCP_LOGID_CNT                  = 0x2e\n\tTCP_LOG_ID_LEN                 = 0x40\n\tTCP_LOG_LIMIT                  = 0x4a\n\tTCP_LOG_TAG                    = 0x2f\n\tTCP_MAXBURST                   = 0x4\n\tTCP_MAXHLEN                    = 0x3c\n\tTCP_MAXOLEN                    = 0x28\n\tTCP_MAXPEAKRATE                = 0x45\n\tTCP_MAXSEG                     = 0x2\n\tTCP_MAXUNACKTIME               = 0x44\n\tTCP_MAXWIN                     = 0xffff\n\tTCP_MAX_SACK                   = 0x4\n\tTCP_MAX_WINSHIFT               = 0xe\n\tTCP_MD5SIG                     = 0x10\n\tTCP_MINMSS                     = 0xd8\n\tTCP_MSS                        = 0x218\n\tTCP_NODELAY                    = 0x1\n\tTCP_NOOPT                      = 0x8\n\tTCP_NOPUSH                     = 0x4\n\tTCP_NO_PRR                     = 0x462\n\tTCP_PACING_RATE_CAP            = 0x46b\n\tTCP_PCAP_IN                    = 0x1000\n\tTCP_PCAP_OUT                   = 0x800\n\tTCP_PERF_INFO                  = 0x4e\n\tTCP_PROC_ACCOUNTING            = 0x4c\n\tTCP_RACK_ABC_VAL               = 0x46d\n\tTCP_RACK_CHEAT_NOT_CONF_RATE   = 0x459\n\tTCP_RACK_DO_DETECTION          = 0x449\n\tTCP_RACK_EARLY_RECOV           = 0x423\n\tTCP_RACK_EARLY_SEG             = 0x424\n\tTCP_RACK_FORCE_MSEG            = 0x45d\n\tTCP_RACK_GP_INCREASE           = 0x446\n\tTCP_RACK_GP_INCREASE_CA        = 0x45a\n\tTCP_RACK_GP_INCREASE_REC       = 0x45c\n\tTCP_RACK_GP_INCREASE_SS        = 0x45b\n\tTCP_RACK_IDLE_REDUCE_HIGH      = 0x444\n\tTCP_RACK_MBUF_QUEUE            = 0x41a\n\tTCP_RACK_MEASURE_CNT           = 0x46f\n\tTCP_RACK_MIN_PACE              = 0x445\n\tTCP_RACK_MIN_PACE_SEG          = 0x446\n\tTCP_RACK_MIN_TO                = 0x422\n\tTCP_RACK_NONRXT_CFG_RATE       = 0x463\n\tTCP_RACK_NO_PUSH_AT_MAX        = 0x466\n\tTCP_RACK_PACE_ALWAYS           = 0x41f\n\tTCP_RACK_PACE_MAX_SEG          = 0x41e\n\tTCP_RACK_PACE_RATE_CA          = 0x45e\n\tTCP_RACK_PACE_RATE_REC         = 0x460\n\tTCP_RACK_PACE_RATE_SS          = 0x45f\n\tTCP_RACK_PACE_REDUCE           = 0x41d\n\tTCP_RACK_PACE_TO_FILL          = 0x467\n\tTCP_RACK_PACING_BETA           = 0x472\n\tTCP_RACK_PACING_BETA_ECN       = 0x473\n\tTCP_RACK_PKT_DELAY             = 0x428\n\tTCP_RACK_PROFILE               = 0x469\n\tTCP_RACK_PROP                  = 0x41b\n\tTCP_RACK_PROP_RATE             = 0x420\n\tTCP_RACK_PRR_SENDALOT          = 0x421\n\tTCP_RACK_REORD_FADE            = 0x426\n\tTCP_RACK_REORD_THRESH          = 0x425\n\tTCP_RACK_RR_CONF               = 0x459\n\tTCP_RACK_TIMER_SLOP            = 0x474\n\tTCP_RACK_TLP_INC_VAR           = 0x429\n\tTCP_RACK_TLP_REDUCE            = 0x41c\n\tTCP_RACK_TLP_THRESH            = 0x427\n\tTCP_RACK_TLP_USE               = 0x447\n\tTCP_REC_ABC_VAL                = 0x46e\n\tTCP_REMOTE_UDP_ENCAPS_PORT     = 0x47\n\tTCP_REUSPORT_LB_NUMA           = 0x402\n\tTCP_REUSPORT_LB_NUMA_CURDOM    = -0x1\n\tTCP_REUSPORT_LB_NUMA_NODOM     = -0x2\n\tTCP_RXTLS_ENABLE               = 0x29\n\tTCP_RXTLS_MODE                 = 0x2a\n\tTCP_SHARED_CWND_ALLOWED        = 0x4b\n\tTCP_SHARED_CWND_ENABLE         = 0x464\n\tTCP_SHARED_CWND_TIME_LIMIT     = 0x468\n\tTCP_STATS                      = 0x21\n\tTCP_TIMELY_DYN_ADJ             = 0x465\n\tTCP_TLS_MODE_IFNET             = 0x2\n\tTCP_TLS_MODE_NONE              = 0x0\n\tTCP_TLS_MODE_SW                = 0x1\n\tTCP_TLS_MODE_TOE               = 0x3\n\tTCP_TXTLS_ENABLE               = 0x27\n\tTCP_TXTLS_MODE                 = 0x28\n\tTCP_USER_LOG                   = 0x30\n\tTCP_USE_CMP_ACKS               = 0x4d\n\tTCP_VENDOR                     = 0x80000000\n\tTCSAFLUSH                      = 0x2\n\tTIMER_ABSTIME                  = 0x1\n\tTIMER_RELTIME                  = 0x0\n\tTIOCCBRK                       = 0x2000747a\n\tTIOCCDTR                       = 0x20007478\n\tTIOCCONS                       = 0x80047462\n\tTIOCDRAIN                      = 0x2000745e\n\tTIOCEXCL                       = 0x2000740d\n\tTIOCEXT                        = 0x80047460\n\tTIOCFLUSH                      = 0x80047410\n\tTIOCGDRAINWAIT                 = 0x40047456\n\tTIOCGETA                       = 0x402c7413\n\tTIOCGETD                       = 0x4004741a\n\tTIOCGPGRP                      = 0x40047477\n\tTIOCGPTN                       = 0x4004740f\n\tTIOCGSID                       = 0x40047463\n\tTIOCGWINSZ                     = 0x40087468\n\tTIOCMBIC                       = 0x8004746b\n\tTIOCMBIS                       = 0x8004746c\n\tTIOCMGDTRWAIT                  = 0x4004745a\n\tTIOCMGET                       = 0x4004746a\n\tTIOCMSDTRWAIT                  = 0x8004745b\n\tTIOCMSET                       = 0x8004746d\n\tTIOCM_CAR                      = 0x40\n\tTIOCM_CD                       = 0x40\n\tTIOCM_CTS                      = 0x20\n\tTIOCM_DCD                      = 0x40\n\tTIOCM_DSR                      = 0x100\n\tTIOCM_DTR                      = 0x2\n\tTIOCM_LE                       = 0x1\n\tTIOCM_RI                       = 0x80\n\tTIOCM_RNG                      = 0x80\n\tTIOCM_RTS                      = 0x4\n\tTIOCM_SR                       = 0x10\n\tTIOCM_ST                       = 0x8\n\tTIOCNOTTY                      = 0x20007471\n\tTIOCNXCL                       = 0x2000740e\n\tTIOCOUTQ                       = 0x40047473\n\tTIOCPKT                        = 0x80047470\n\tTIOCPKT_DATA                   = 0x0\n\tTIOCPKT_DOSTOP                 = 0x20\n\tTIOCPKT_FLUSHREAD              = 0x1\n\tTIOCPKT_FLUSHWRITE             = 0x2\n\tTIOCPKT_IOCTL                  = 0x40\n\tTIOCPKT_NOSTOP                 = 0x10\n\tTIOCPKT_START                  = 0x8\n\tTIOCPKT_STOP                   = 0x4\n\tTIOCPTMASTER                   = 0x2000741c\n\tTIOCSBRK                       = 0x2000747b\n\tTIOCSCTTY                      = 0x20007461\n\tTIOCSDRAINWAIT                 = 0x80047457\n\tTIOCSDTR                       = 0x20007479\n\tTIOCSETA                       = 0x802c7414\n\tTIOCSETAF                      = 0x802c7416\n\tTIOCSETAW                      = 0x802c7415\n\tTIOCSETD                       = 0x8004741b\n\tTIOCSIG                        = 0x2004745f\n\tTIOCSPGRP                      = 0x80047476\n\tTIOCSTART                      = 0x2000746e\n\tTIOCSTAT                       = 0x20007465\n\tTIOCSTI                        = 0x80017472\n\tTIOCSTOP                       = 0x2000746f\n\tTIOCSWINSZ                     = 0x80087467\n\tTIOCTIMESTAMP                  = 0x40107459\n\tTIOCUCNTL                      = 0x80047466\n\tTOSTOP                         = 0x400000\n\tUTIME_NOW                      = -0x1\n\tUTIME_OMIT                     = -0x2\n\tVDISCARD                       = 0xf\n\tVDSUSP                         = 0xb\n\tVEOF                           = 0x0\n\tVEOL                           = 0x1\n\tVEOL2                          = 0x2\n\tVERASE                         = 0x3\n\tVERASE2                        = 0x7\n\tVINTR                          = 0x8\n\tVKILL                          = 0x5\n\tVLNEXT                         = 0xe\n\tVMIN                           = 0x10\n\tVQUIT                          = 0x9\n\tVREPRINT                       = 0x6\n\tVSTART                         = 0xc\n\tVSTATUS                        = 0x12\n\tVSTOP                          = 0xd\n\tVSUSP                          = 0xa\n\tVTIME                          = 0x11\n\tVWERASE                        = 0x4\n\tWCONTINUED                     = 0x4\n\tWCOREFLAG                      = 0x80\n\tWEXITED                        = 0x10\n\tWLINUXCLONE                    = 0x80000000\n\tWNOHANG                        = 0x1\n\tWNOWAIT                        = 0x8\n\tWSTOPPED                       = 0x2\n\tWTRAPPED                       = 0x20\n\tWUNTRACED                      = 0x2\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x59)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x55)\n\tECAPMODE        = syscall.Errno(0x5e)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDOOFUS         = syscall.Errno(0x58)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x52)\n\tEILSEQ          = syscall.Errno(0x56)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTEGRITY      = syscall.Errno(0x61)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x61)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5a)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x57)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x5b)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x53)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCAPABLE     = syscall.Errno(0x5d)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x5f)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x2d)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEOWNERDEAD      = syscall.Errno(0x60)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5c)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGLIBRT  = syscall.Signal(0x21)\n\tSIGLWP    = syscall.Signal(0x20)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EWOULDBLOCK\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIDRM\", \"identifier removed\"},\n\t{83, \"ENOMSG\", \"no message of desired type\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"ECANCELED\", \"operation canceled\"},\n\t{86, \"EILSEQ\", \"illegal byte sequence\"},\n\t{87, \"ENOATTR\", \"attribute not found\"},\n\t{88, \"EDOOFUS\", \"programming error\"},\n\t{89, \"EBADMSG\", \"bad message\"},\n\t{90, \"EMULTIHOP\", \"multihop attempted\"},\n\t{91, \"ENOLINK\", \"link has been severed\"},\n\t{92, \"EPROTO\", \"protocol error\"},\n\t{93, \"ENOTCAPABLE\", \"capabilities insufficient\"},\n\t{94, \"ECAPMODE\", \"not permitted in capability mode\"},\n\t{95, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{96, \"EOWNERDEAD\", \"previous owner died\"},\n\t{97, \"EINTEGRITY\", \"integrity check failed\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"unknown signal\"},\n\t{33, \"SIGLIBRT\", \"unknown signal\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux.go",
    "content": "// Code generated by mkmerge; DO NOT EDIT.\n\n//go:build linux\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAAFS_MAGIC                                  = 0x5a3c69f0\n\tADFS_SUPER_MAGIC                            = 0xadf5\n\tAFFS_SUPER_MAGIC                            = 0xadff\n\tAFS_FS_MAGIC                                = 0x6b414653\n\tAFS_SUPER_MAGIC                             = 0x5346414f\n\tAF_ALG                                      = 0x26\n\tAF_APPLETALK                                = 0x5\n\tAF_ASH                                      = 0x12\n\tAF_ATMPVC                                   = 0x8\n\tAF_ATMSVC                                   = 0x14\n\tAF_AX25                                     = 0x3\n\tAF_BLUETOOTH                                = 0x1f\n\tAF_BRIDGE                                   = 0x7\n\tAF_CAIF                                     = 0x25\n\tAF_CAN                                      = 0x1d\n\tAF_DECnet                                   = 0xc\n\tAF_ECONET                                   = 0x13\n\tAF_FILE                                     = 0x1\n\tAF_IB                                       = 0x1b\n\tAF_IEEE802154                               = 0x24\n\tAF_INET                                     = 0x2\n\tAF_INET6                                    = 0xa\n\tAF_IPX                                      = 0x4\n\tAF_IRDA                                     = 0x17\n\tAF_ISDN                                     = 0x22\n\tAF_IUCV                                     = 0x20\n\tAF_KCM                                      = 0x29\n\tAF_KEY                                      = 0xf\n\tAF_LLC                                      = 0x1a\n\tAF_LOCAL                                    = 0x1\n\tAF_MAX                                      = 0x2e\n\tAF_MCTP                                     = 0x2d\n\tAF_MPLS                                     = 0x1c\n\tAF_NETBEUI                                  = 0xd\n\tAF_NETLINK                                  = 0x10\n\tAF_NETROM                                   = 0x6\n\tAF_NFC                                      = 0x27\n\tAF_PACKET                                   = 0x11\n\tAF_PHONET                                   = 0x23\n\tAF_PPPOX                                    = 0x18\n\tAF_QIPCRTR                                  = 0x2a\n\tAF_RDS                                      = 0x15\n\tAF_ROSE                                     = 0xb\n\tAF_ROUTE                                    = 0x10\n\tAF_RXRPC                                    = 0x21\n\tAF_SECURITY                                 = 0xe\n\tAF_SMC                                      = 0x2b\n\tAF_SNA                                      = 0x16\n\tAF_TIPC                                     = 0x1e\n\tAF_UNIX                                     = 0x1\n\tAF_UNSPEC                                   = 0x0\n\tAF_VSOCK                                    = 0x28\n\tAF_WANPIPE                                  = 0x19\n\tAF_X25                                      = 0x9\n\tAF_XDP                                      = 0x2c\n\tALG_OP_DECRYPT                              = 0x0\n\tALG_OP_ENCRYPT                              = 0x1\n\tALG_SET_AEAD_ASSOCLEN                       = 0x4\n\tALG_SET_AEAD_AUTHSIZE                       = 0x5\n\tALG_SET_DRBG_ENTROPY                        = 0x6\n\tALG_SET_IV                                  = 0x2\n\tALG_SET_KEY                                 = 0x1\n\tALG_SET_KEY_BY_KEY_SERIAL                   = 0x7\n\tALG_SET_OP                                  = 0x3\n\tANON_INODE_FS_MAGIC                         = 0x9041934\n\tARPHRD_6LOWPAN                              = 0x339\n\tARPHRD_ADAPT                                = 0x108\n\tARPHRD_APPLETLK                             = 0x8\n\tARPHRD_ARCNET                               = 0x7\n\tARPHRD_ASH                                  = 0x30d\n\tARPHRD_ATM                                  = 0x13\n\tARPHRD_AX25                                 = 0x3\n\tARPHRD_BIF                                  = 0x307\n\tARPHRD_CAIF                                 = 0x336\n\tARPHRD_CAN                                  = 0x118\n\tARPHRD_CHAOS                                = 0x5\n\tARPHRD_CISCO                                = 0x201\n\tARPHRD_CSLIP                                = 0x101\n\tARPHRD_CSLIP6                               = 0x103\n\tARPHRD_DDCMP                                = 0x205\n\tARPHRD_DLCI                                 = 0xf\n\tARPHRD_ECONET                               = 0x30e\n\tARPHRD_EETHER                               = 0x2\n\tARPHRD_ETHER                                = 0x1\n\tARPHRD_EUI64                                = 0x1b\n\tARPHRD_FCAL                                 = 0x311\n\tARPHRD_FCFABRIC                             = 0x313\n\tARPHRD_FCPL                                 = 0x312\n\tARPHRD_FCPP                                 = 0x310\n\tARPHRD_FDDI                                 = 0x306\n\tARPHRD_FRAD                                 = 0x302\n\tARPHRD_HDLC                                 = 0x201\n\tARPHRD_HIPPI                                = 0x30c\n\tARPHRD_HWX25                                = 0x110\n\tARPHRD_IEEE1394                             = 0x18\n\tARPHRD_IEEE802                              = 0x6\n\tARPHRD_IEEE80211                            = 0x321\n\tARPHRD_IEEE80211_PRISM                      = 0x322\n\tARPHRD_IEEE80211_RADIOTAP                   = 0x323\n\tARPHRD_IEEE802154                           = 0x324\n\tARPHRD_IEEE802154_MONITOR                   = 0x325\n\tARPHRD_IEEE802_TR                           = 0x320\n\tARPHRD_INFINIBAND                           = 0x20\n\tARPHRD_IP6GRE                               = 0x337\n\tARPHRD_IPDDP                                = 0x309\n\tARPHRD_IPGRE                                = 0x30a\n\tARPHRD_IRDA                                 = 0x30f\n\tARPHRD_LAPB                                 = 0x204\n\tARPHRD_LOCALTLK                             = 0x305\n\tARPHRD_LOOPBACK                             = 0x304\n\tARPHRD_MCTP                                 = 0x122\n\tARPHRD_METRICOM                             = 0x17\n\tARPHRD_NETLINK                              = 0x338\n\tARPHRD_NETROM                               = 0x0\n\tARPHRD_NONE                                 = 0xfffe\n\tARPHRD_PHONET                               = 0x334\n\tARPHRD_PHONET_PIPE                          = 0x335\n\tARPHRD_PIMREG                               = 0x30b\n\tARPHRD_PPP                                  = 0x200\n\tARPHRD_PRONET                               = 0x4\n\tARPHRD_RAWHDLC                              = 0x206\n\tARPHRD_RAWIP                                = 0x207\n\tARPHRD_ROSE                                 = 0x10e\n\tARPHRD_RSRVD                                = 0x104\n\tARPHRD_SIT                                  = 0x308\n\tARPHRD_SKIP                                 = 0x303\n\tARPHRD_SLIP                                 = 0x100\n\tARPHRD_SLIP6                                = 0x102\n\tARPHRD_TUNNEL                               = 0x300\n\tARPHRD_TUNNEL6                              = 0x301\n\tARPHRD_VOID                                 = 0xffff\n\tARPHRD_VSOCKMON                             = 0x33a\n\tARPHRD_X25                                  = 0x10f\n\tAUDIT_ADD                                   = 0x3eb\n\tAUDIT_ADD_RULE                              = 0x3f3\n\tAUDIT_ALWAYS                                = 0x2\n\tAUDIT_ANOM_ABEND                            = 0x6a5\n\tAUDIT_ANOM_CREAT                            = 0x6a7\n\tAUDIT_ANOM_LINK                             = 0x6a6\n\tAUDIT_ANOM_PROMISCUOUS                      = 0x6a4\n\tAUDIT_ARCH                                  = 0xb\n\tAUDIT_ARCH_AARCH64                          = 0xc00000b7\n\tAUDIT_ARCH_ALPHA                            = 0xc0009026\n\tAUDIT_ARCH_ARCOMPACT                        = 0x4000005d\n\tAUDIT_ARCH_ARCOMPACTBE                      = 0x5d\n\tAUDIT_ARCH_ARCV2                            = 0x400000c3\n\tAUDIT_ARCH_ARCV2BE                          = 0xc3\n\tAUDIT_ARCH_ARM                              = 0x40000028\n\tAUDIT_ARCH_ARMEB                            = 0x28\n\tAUDIT_ARCH_C6X                              = 0x4000008c\n\tAUDIT_ARCH_C6XBE                            = 0x8c\n\tAUDIT_ARCH_CRIS                             = 0x4000004c\n\tAUDIT_ARCH_CSKY                             = 0x400000fc\n\tAUDIT_ARCH_FRV                              = 0x5441\n\tAUDIT_ARCH_H8300                            = 0x2e\n\tAUDIT_ARCH_HEXAGON                          = 0xa4\n\tAUDIT_ARCH_I386                             = 0x40000003\n\tAUDIT_ARCH_IA64                             = 0xc0000032\n\tAUDIT_ARCH_LOONGARCH32                      = 0x40000102\n\tAUDIT_ARCH_LOONGARCH64                      = 0xc0000102\n\tAUDIT_ARCH_M32R                             = 0x58\n\tAUDIT_ARCH_M68K                             = 0x4\n\tAUDIT_ARCH_MICROBLAZE                       = 0xbd\n\tAUDIT_ARCH_MIPS                             = 0x8\n\tAUDIT_ARCH_MIPS64                           = 0x80000008\n\tAUDIT_ARCH_MIPS64N32                        = 0xa0000008\n\tAUDIT_ARCH_MIPSEL                           = 0x40000008\n\tAUDIT_ARCH_MIPSEL64                         = 0xc0000008\n\tAUDIT_ARCH_MIPSEL64N32                      = 0xe0000008\n\tAUDIT_ARCH_NDS32                            = 0x400000a7\n\tAUDIT_ARCH_NDS32BE                          = 0xa7\n\tAUDIT_ARCH_NIOS2                            = 0x40000071\n\tAUDIT_ARCH_OPENRISC                         = 0x5c\n\tAUDIT_ARCH_PARISC                           = 0xf\n\tAUDIT_ARCH_PARISC64                         = 0x8000000f\n\tAUDIT_ARCH_PPC                              = 0x14\n\tAUDIT_ARCH_PPC64                            = 0x80000015\n\tAUDIT_ARCH_PPC64LE                          = 0xc0000015\n\tAUDIT_ARCH_RISCV32                          = 0x400000f3\n\tAUDIT_ARCH_RISCV64                          = 0xc00000f3\n\tAUDIT_ARCH_S390                             = 0x16\n\tAUDIT_ARCH_S390X                            = 0x80000016\n\tAUDIT_ARCH_SH                               = 0x2a\n\tAUDIT_ARCH_SH64                             = 0x8000002a\n\tAUDIT_ARCH_SHEL                             = 0x4000002a\n\tAUDIT_ARCH_SHEL64                           = 0xc000002a\n\tAUDIT_ARCH_SPARC                            = 0x2\n\tAUDIT_ARCH_SPARC64                          = 0x8000002b\n\tAUDIT_ARCH_TILEGX                           = 0xc00000bf\n\tAUDIT_ARCH_TILEGX32                         = 0x400000bf\n\tAUDIT_ARCH_TILEPRO                          = 0x400000bc\n\tAUDIT_ARCH_UNICORE                          = 0x4000006e\n\tAUDIT_ARCH_X86_64                           = 0xc000003e\n\tAUDIT_ARCH_XTENSA                           = 0x5e\n\tAUDIT_ARG0                                  = 0xc8\n\tAUDIT_ARG1                                  = 0xc9\n\tAUDIT_ARG2                                  = 0xca\n\tAUDIT_ARG3                                  = 0xcb\n\tAUDIT_AVC                                   = 0x578\n\tAUDIT_AVC_PATH                              = 0x57a\n\tAUDIT_BITMASK_SIZE                          = 0x40\n\tAUDIT_BIT_MASK                              = 0x8000000\n\tAUDIT_BIT_TEST                              = 0x48000000\n\tAUDIT_BPF                                   = 0x536\n\tAUDIT_BPRM_FCAPS                            = 0x529\n\tAUDIT_CAPSET                                = 0x52a\n\tAUDIT_CLASS_CHATTR                          = 0x2\n\tAUDIT_CLASS_CHATTR_32                       = 0x3\n\tAUDIT_CLASS_DIR_WRITE                       = 0x0\n\tAUDIT_CLASS_DIR_WRITE_32                    = 0x1\n\tAUDIT_CLASS_READ                            = 0x4\n\tAUDIT_CLASS_READ_32                         = 0x5\n\tAUDIT_CLASS_SIGNAL                          = 0x8\n\tAUDIT_CLASS_SIGNAL_32                       = 0x9\n\tAUDIT_CLASS_WRITE                           = 0x6\n\tAUDIT_CLASS_WRITE_32                        = 0x7\n\tAUDIT_COMPARE_AUID_TO_EUID                  = 0x10\n\tAUDIT_COMPARE_AUID_TO_FSUID                 = 0xe\n\tAUDIT_COMPARE_AUID_TO_OBJ_UID               = 0x5\n\tAUDIT_COMPARE_AUID_TO_SUID                  = 0xf\n\tAUDIT_COMPARE_EGID_TO_FSGID                 = 0x17\n\tAUDIT_COMPARE_EGID_TO_OBJ_GID               = 0x4\n\tAUDIT_COMPARE_EGID_TO_SGID                  = 0x18\n\tAUDIT_COMPARE_EUID_TO_FSUID                 = 0x12\n\tAUDIT_COMPARE_EUID_TO_OBJ_UID               = 0x3\n\tAUDIT_COMPARE_EUID_TO_SUID                  = 0x11\n\tAUDIT_COMPARE_FSGID_TO_OBJ_GID              = 0x9\n\tAUDIT_COMPARE_FSUID_TO_OBJ_UID              = 0x8\n\tAUDIT_COMPARE_GID_TO_EGID                   = 0x14\n\tAUDIT_COMPARE_GID_TO_FSGID                  = 0x15\n\tAUDIT_COMPARE_GID_TO_OBJ_GID                = 0x2\n\tAUDIT_COMPARE_GID_TO_SGID                   = 0x16\n\tAUDIT_COMPARE_SGID_TO_FSGID                 = 0x19\n\tAUDIT_COMPARE_SGID_TO_OBJ_GID               = 0x7\n\tAUDIT_COMPARE_SUID_TO_FSUID                 = 0x13\n\tAUDIT_COMPARE_SUID_TO_OBJ_UID               = 0x6\n\tAUDIT_COMPARE_UID_TO_AUID                   = 0xa\n\tAUDIT_COMPARE_UID_TO_EUID                   = 0xb\n\tAUDIT_COMPARE_UID_TO_FSUID                  = 0xc\n\tAUDIT_COMPARE_UID_TO_OBJ_UID                = 0x1\n\tAUDIT_COMPARE_UID_TO_SUID                   = 0xd\n\tAUDIT_CONFIG_CHANGE                         = 0x519\n\tAUDIT_CWD                                   = 0x51b\n\tAUDIT_DAEMON_ABORT                          = 0x4b2\n\tAUDIT_DAEMON_CONFIG                         = 0x4b3\n\tAUDIT_DAEMON_END                            = 0x4b1\n\tAUDIT_DAEMON_START                          = 0x4b0\n\tAUDIT_DEL                                   = 0x3ec\n\tAUDIT_DEL_RULE                              = 0x3f4\n\tAUDIT_DEVMAJOR                              = 0x64\n\tAUDIT_DEVMINOR                              = 0x65\n\tAUDIT_DIR                                   = 0x6b\n\tAUDIT_DM_CTRL                               = 0x53a\n\tAUDIT_DM_EVENT                              = 0x53b\n\tAUDIT_EGID                                  = 0x6\n\tAUDIT_EOE                                   = 0x528\n\tAUDIT_EQUAL                                 = 0x40000000\n\tAUDIT_EUID                                  = 0x2\n\tAUDIT_EVENT_LISTENER                        = 0x537\n\tAUDIT_EXE                                   = 0x70\n\tAUDIT_EXECVE                                = 0x51d\n\tAUDIT_EXIT                                  = 0x67\n\tAUDIT_FAIL_PANIC                            = 0x2\n\tAUDIT_FAIL_PRINTK                           = 0x1\n\tAUDIT_FAIL_SILENT                           = 0x0\n\tAUDIT_FANOTIFY                              = 0x533\n\tAUDIT_FD_PAIR                               = 0x525\n\tAUDIT_FEATURE_BITMAP_ALL                    = 0x7f\n\tAUDIT_FEATURE_BITMAP_BACKLOG_LIMIT          = 0x1\n\tAUDIT_FEATURE_BITMAP_BACKLOG_WAIT_TIME      = 0x2\n\tAUDIT_FEATURE_BITMAP_EXCLUDE_EXTEND         = 0x8\n\tAUDIT_FEATURE_BITMAP_EXECUTABLE_PATH        = 0x4\n\tAUDIT_FEATURE_BITMAP_FILTER_FS              = 0x40\n\tAUDIT_FEATURE_BITMAP_LOST_RESET             = 0x20\n\tAUDIT_FEATURE_BITMAP_SESSIONID_FILTER       = 0x10\n\tAUDIT_FEATURE_CHANGE                        = 0x530\n\tAUDIT_FEATURE_LOGINUID_IMMUTABLE            = 0x1\n\tAUDIT_FEATURE_ONLY_UNSET_LOGINUID           = 0x0\n\tAUDIT_FEATURE_VERSION                       = 0x1\n\tAUDIT_FIELD_COMPARE                         = 0x6f\n\tAUDIT_FILETYPE                              = 0x6c\n\tAUDIT_FILTERKEY                             = 0xd2\n\tAUDIT_FILTER_ENTRY                          = 0x2\n\tAUDIT_FILTER_EXCLUDE                        = 0x5\n\tAUDIT_FILTER_EXIT                           = 0x4\n\tAUDIT_FILTER_FS                             = 0x6\n\tAUDIT_FILTER_PREPEND                        = 0x10\n\tAUDIT_FILTER_TASK                           = 0x1\n\tAUDIT_FILTER_TYPE                           = 0x5\n\tAUDIT_FILTER_URING_EXIT                     = 0x7\n\tAUDIT_FILTER_USER                           = 0x0\n\tAUDIT_FILTER_WATCH                          = 0x3\n\tAUDIT_FIRST_KERN_ANOM_MSG                   = 0x6a4\n\tAUDIT_FIRST_USER_MSG                        = 0x44c\n\tAUDIT_FIRST_USER_MSG2                       = 0x834\n\tAUDIT_FSGID                                 = 0x8\n\tAUDIT_FSTYPE                                = 0x1a\n\tAUDIT_FSUID                                 = 0x4\n\tAUDIT_GET                                   = 0x3e8\n\tAUDIT_GET_FEATURE                           = 0x3fb\n\tAUDIT_GID                                   = 0x5\n\tAUDIT_GREATER_THAN                          = 0x20000000\n\tAUDIT_GREATER_THAN_OR_EQUAL                 = 0x60000000\n\tAUDIT_INODE                                 = 0x66\n\tAUDIT_INTEGRITY_DATA                        = 0x708\n\tAUDIT_INTEGRITY_EVM_XATTR                   = 0x70e\n\tAUDIT_INTEGRITY_HASH                        = 0x70b\n\tAUDIT_INTEGRITY_METADATA                    = 0x709\n\tAUDIT_INTEGRITY_PCR                         = 0x70c\n\tAUDIT_INTEGRITY_POLICY_RULE                 = 0x70f\n\tAUDIT_INTEGRITY_RULE                        = 0x70d\n\tAUDIT_INTEGRITY_STATUS                      = 0x70a\n\tAUDIT_IPC                                   = 0x517\n\tAUDIT_IPC_SET_PERM                          = 0x51f\n\tAUDIT_IPE_ACCESS                            = 0x58c\n\tAUDIT_IPE_CONFIG_CHANGE                     = 0x58d\n\tAUDIT_IPE_POLICY_LOAD                       = 0x58e\n\tAUDIT_KERNEL                                = 0x7d0\n\tAUDIT_KERNEL_OTHER                          = 0x524\n\tAUDIT_KERN_MODULE                           = 0x532\n\tAUDIT_LAST_FEATURE                          = 0x1\n\tAUDIT_LAST_KERN_ANOM_MSG                    = 0x707\n\tAUDIT_LAST_USER_MSG                         = 0x4af\n\tAUDIT_LAST_USER_MSG2                        = 0xbb7\n\tAUDIT_LESS_THAN                             = 0x10000000\n\tAUDIT_LESS_THAN_OR_EQUAL                    = 0x50000000\n\tAUDIT_LIST                                  = 0x3ea\n\tAUDIT_LIST_RULES                            = 0x3f5\n\tAUDIT_LOGIN                                 = 0x3ee\n\tAUDIT_LOGINUID                              = 0x9\n\tAUDIT_LOGINUID_SET                          = 0x18\n\tAUDIT_MAC_CALIPSO_ADD                       = 0x58a\n\tAUDIT_MAC_CALIPSO_DEL                       = 0x58b\n\tAUDIT_MAC_CIPSOV4_ADD                       = 0x57f\n\tAUDIT_MAC_CIPSOV4_DEL                       = 0x580\n\tAUDIT_MAC_CONFIG_CHANGE                     = 0x57d\n\tAUDIT_MAC_IPSEC_ADDSA                       = 0x583\n\tAUDIT_MAC_IPSEC_ADDSPD                      = 0x585\n\tAUDIT_MAC_IPSEC_DELSA                       = 0x584\n\tAUDIT_MAC_IPSEC_DELSPD                      = 0x586\n\tAUDIT_MAC_IPSEC_EVENT                       = 0x587\n\tAUDIT_MAC_MAP_ADD                           = 0x581\n\tAUDIT_MAC_MAP_DEL                           = 0x582\n\tAUDIT_MAC_POLICY_LOAD                       = 0x57b\n\tAUDIT_MAC_STATUS                            = 0x57c\n\tAUDIT_MAC_UNLBL_ALLOW                       = 0x57e\n\tAUDIT_MAC_UNLBL_STCADD                      = 0x588\n\tAUDIT_MAC_UNLBL_STCDEL                      = 0x589\n\tAUDIT_MAKE_EQUIV                            = 0x3f7\n\tAUDIT_MAX_FIELDS                            = 0x40\n\tAUDIT_MAX_FIELD_COMPARE                     = 0x19\n\tAUDIT_MAX_KEY_LEN                           = 0x100\n\tAUDIT_MESSAGE_TEXT_MAX                      = 0x2170\n\tAUDIT_MMAP                                  = 0x52b\n\tAUDIT_MQ_GETSETATTR                         = 0x523\n\tAUDIT_MQ_NOTIFY                             = 0x522\n\tAUDIT_MQ_OPEN                               = 0x520\n\tAUDIT_MQ_SENDRECV                           = 0x521\n\tAUDIT_MSGTYPE                               = 0xc\n\tAUDIT_NEGATE                                = 0x80000000\n\tAUDIT_NETFILTER_CFG                         = 0x52d\n\tAUDIT_NETFILTER_PKT                         = 0x52c\n\tAUDIT_NEVER                                 = 0x0\n\tAUDIT_NLGRP_MAX                             = 0x1\n\tAUDIT_NOT_EQUAL                             = 0x30000000\n\tAUDIT_NR_FILTERS                            = 0x8\n\tAUDIT_OBJ_GID                               = 0x6e\n\tAUDIT_OBJ_LEV_HIGH                          = 0x17\n\tAUDIT_OBJ_LEV_LOW                           = 0x16\n\tAUDIT_OBJ_PID                               = 0x526\n\tAUDIT_OBJ_ROLE                              = 0x14\n\tAUDIT_OBJ_TYPE                              = 0x15\n\tAUDIT_OBJ_UID                               = 0x6d\n\tAUDIT_OBJ_USER                              = 0x13\n\tAUDIT_OPENAT2                               = 0x539\n\tAUDIT_OPERATORS                             = 0x78000000\n\tAUDIT_PATH                                  = 0x516\n\tAUDIT_PERM                                  = 0x6a\n\tAUDIT_PERM_ATTR                             = 0x8\n\tAUDIT_PERM_EXEC                             = 0x1\n\tAUDIT_PERM_READ                             = 0x4\n\tAUDIT_PERM_WRITE                            = 0x2\n\tAUDIT_PERS                                  = 0xa\n\tAUDIT_PID                                   = 0x0\n\tAUDIT_POSSIBLE                              = 0x1\n\tAUDIT_PPID                                  = 0x12\n\tAUDIT_PROCTITLE                             = 0x52f\n\tAUDIT_REPLACE                               = 0x531\n\tAUDIT_SADDR_FAM                             = 0x71\n\tAUDIT_SECCOMP                               = 0x52e\n\tAUDIT_SELINUX_ERR                           = 0x579\n\tAUDIT_SESSIONID                             = 0x19\n\tAUDIT_SET                                   = 0x3e9\n\tAUDIT_SET_FEATURE                           = 0x3fa\n\tAUDIT_SGID                                  = 0x7\n\tAUDIT_SID_UNSET                             = 0xffffffff\n\tAUDIT_SIGNAL_INFO                           = 0x3f2\n\tAUDIT_SOCKADDR                              = 0x51a\n\tAUDIT_SOCKETCALL                            = 0x518\n\tAUDIT_STATUS_BACKLOG_LIMIT                  = 0x10\n\tAUDIT_STATUS_BACKLOG_WAIT_TIME              = 0x20\n\tAUDIT_STATUS_BACKLOG_WAIT_TIME_ACTUAL       = 0x80\n\tAUDIT_STATUS_ENABLED                        = 0x1\n\tAUDIT_STATUS_FAILURE                        = 0x2\n\tAUDIT_STATUS_LOST                           = 0x40\n\tAUDIT_STATUS_PID                            = 0x4\n\tAUDIT_STATUS_RATE_LIMIT                     = 0x8\n\tAUDIT_SUBJ_CLR                              = 0x11\n\tAUDIT_SUBJ_ROLE                             = 0xe\n\tAUDIT_SUBJ_SEN                              = 0x10\n\tAUDIT_SUBJ_TYPE                             = 0xf\n\tAUDIT_SUBJ_USER                             = 0xd\n\tAUDIT_SUCCESS                               = 0x68\n\tAUDIT_SUID                                  = 0x3\n\tAUDIT_SYSCALL                               = 0x514\n\tAUDIT_SYSCALL_CLASSES                       = 0x10\n\tAUDIT_TIME_ADJNTPVAL                        = 0x535\n\tAUDIT_TIME_INJOFFSET                        = 0x534\n\tAUDIT_TRIM                                  = 0x3f6\n\tAUDIT_TTY                                   = 0x527\n\tAUDIT_TTY_GET                               = 0x3f8\n\tAUDIT_TTY_SET                               = 0x3f9\n\tAUDIT_UID                                   = 0x1\n\tAUDIT_UID_UNSET                             = 0xffffffff\n\tAUDIT_UNUSED_BITS                           = 0x7fffc00\n\tAUDIT_URINGOP                               = 0x538\n\tAUDIT_USER                                  = 0x3ed\n\tAUDIT_USER_AVC                              = 0x453\n\tAUDIT_USER_TTY                              = 0x464\n\tAUDIT_VERSION_BACKLOG_LIMIT                 = 0x1\n\tAUDIT_VERSION_BACKLOG_WAIT_TIME             = 0x2\n\tAUDIT_VERSION_LATEST                        = 0x7f\n\tAUDIT_WATCH                                 = 0x69\n\tAUDIT_WATCH_INS                             = 0x3ef\n\tAUDIT_WATCH_LIST                            = 0x3f1\n\tAUDIT_WATCH_REM                             = 0x3f0\n\tAUTOFS_SUPER_MAGIC                          = 0x187\n\tB0                                          = 0x0\n\tB110                                        = 0x3\n\tB1200                                       = 0x9\n\tB134                                        = 0x4\n\tB150                                        = 0x5\n\tB1800                                       = 0xa\n\tB19200                                      = 0xe\n\tB200                                        = 0x6\n\tB2400                                       = 0xb\n\tB300                                        = 0x7\n\tB38400                                      = 0xf\n\tB4800                                       = 0xc\n\tB50                                         = 0x1\n\tB600                                        = 0x8\n\tB75                                         = 0x2\n\tB9600                                       = 0xd\n\tBCACHEFS_SUPER_MAGIC                        = 0xca451a4e\n\tBDEVFS_MAGIC                                = 0x62646576\n\tBINDERFS_SUPER_MAGIC                        = 0x6c6f6f70\n\tBINFMTFS_MAGIC                              = 0x42494e4d\n\tBPF_A                                       = 0x10\n\tBPF_ABS                                     = 0x20\n\tBPF_ADD                                     = 0x0\n\tBPF_ALU                                     = 0x4\n\tBPF_ALU64                                   = 0x7\n\tBPF_AND                                     = 0x50\n\tBPF_ARSH                                    = 0xc0\n\tBPF_ATOMIC                                  = 0xc0\n\tBPF_B                                       = 0x10\n\tBPF_BUILD_ID_SIZE                           = 0x14\n\tBPF_CALL                                    = 0x80\n\tBPF_CMPXCHG                                 = 0xf1\n\tBPF_DIV                                     = 0x30\n\tBPF_DW                                      = 0x18\n\tBPF_END                                     = 0xd0\n\tBPF_EXIT                                    = 0x90\n\tBPF_FETCH                                   = 0x1\n\tBPF_FROM_BE                                 = 0x8\n\tBPF_FROM_LE                                 = 0x0\n\tBPF_FS_MAGIC                                = 0xcafe4a11\n\tBPF_F_AFTER                                 = 0x10\n\tBPF_F_ALLOW_MULTI                           = 0x2\n\tBPF_F_ALLOW_OVERRIDE                        = 0x1\n\tBPF_F_ANY_ALIGNMENT                         = 0x2\n\tBPF_F_BEFORE                                = 0x8\n\tBPF_F_ID                                    = 0x20\n\tBPF_F_NETFILTER_IP_DEFRAG                   = 0x1\n\tBPF_F_QUERY_EFFECTIVE                       = 0x1\n\tBPF_F_REDIRECT_FLAGS                        = 0x19\n\tBPF_F_REPLACE                               = 0x4\n\tBPF_F_SLEEPABLE                             = 0x10\n\tBPF_F_STRICT_ALIGNMENT                      = 0x1\n\tBPF_F_TEST_REG_INVARIANTS                   = 0x80\n\tBPF_F_TEST_RND_HI32                         = 0x4\n\tBPF_F_TEST_RUN_ON_CPU                       = 0x1\n\tBPF_F_TEST_SKB_CHECKSUM_COMPLETE            = 0x4\n\tBPF_F_TEST_STATE_FREQ                       = 0x8\n\tBPF_F_TEST_XDP_LIVE_FRAMES                  = 0x2\n\tBPF_F_XDP_DEV_BOUND_ONLY                    = 0x40\n\tBPF_F_XDP_HAS_FRAGS                         = 0x20\n\tBPF_H                                       = 0x8\n\tBPF_IMM                                     = 0x0\n\tBPF_IND                                     = 0x40\n\tBPF_JA                                      = 0x0\n\tBPF_JCOND                                   = 0xe0\n\tBPF_JEQ                                     = 0x10\n\tBPF_JGE                                     = 0x30\n\tBPF_JGT                                     = 0x20\n\tBPF_JLE                                     = 0xb0\n\tBPF_JLT                                     = 0xa0\n\tBPF_JMP                                     = 0x5\n\tBPF_JMP32                                   = 0x6\n\tBPF_JNE                                     = 0x50\n\tBPF_JSET                                    = 0x40\n\tBPF_JSGE                                    = 0x70\n\tBPF_JSGT                                    = 0x60\n\tBPF_JSLE                                    = 0xd0\n\tBPF_JSLT                                    = 0xc0\n\tBPF_K                                       = 0x0\n\tBPF_LD                                      = 0x0\n\tBPF_LDX                                     = 0x1\n\tBPF_LEN                                     = 0x80\n\tBPF_LL_OFF                                  = -0x200000\n\tBPF_LSH                                     = 0x60\n\tBPF_MAJOR_VERSION                           = 0x1\n\tBPF_MAXINSNS                                = 0x1000\n\tBPF_MEM                                     = 0x60\n\tBPF_MEMSX                                   = 0x80\n\tBPF_MEMWORDS                                = 0x10\n\tBPF_MINOR_VERSION                           = 0x1\n\tBPF_MISC                                    = 0x7\n\tBPF_MOD                                     = 0x90\n\tBPF_MOV                                     = 0xb0\n\tBPF_MSH                                     = 0xa0\n\tBPF_MUL                                     = 0x20\n\tBPF_NEG                                     = 0x80\n\tBPF_NET_OFF                                 = -0x100000\n\tBPF_OBJ_NAME_LEN                            = 0x10\n\tBPF_OR                                      = 0x40\n\tBPF_PSEUDO_BTF_ID                           = 0x3\n\tBPF_PSEUDO_CALL                             = 0x1\n\tBPF_PSEUDO_FUNC                             = 0x4\n\tBPF_PSEUDO_KFUNC_CALL                       = 0x2\n\tBPF_PSEUDO_MAP_FD                           = 0x1\n\tBPF_PSEUDO_MAP_IDX                          = 0x5\n\tBPF_PSEUDO_MAP_IDX_VALUE                    = 0x6\n\tBPF_PSEUDO_MAP_VALUE                        = 0x2\n\tBPF_RET                                     = 0x6\n\tBPF_RSH                                     = 0x70\n\tBPF_ST                                      = 0x2\n\tBPF_STX                                     = 0x3\n\tBPF_SUB                                     = 0x10\n\tBPF_TAG_SIZE                                = 0x8\n\tBPF_TAX                                     = 0x0\n\tBPF_TO_BE                                   = 0x8\n\tBPF_TO_LE                                   = 0x0\n\tBPF_TXA                                     = 0x80\n\tBPF_W                                       = 0x0\n\tBPF_X                                       = 0x8\n\tBPF_XADD                                    = 0xc0\n\tBPF_XCHG                                    = 0xe1\n\tBPF_XOR                                     = 0xa0\n\tBRKINT                                      = 0x2\n\tBS0                                         = 0x0\n\tBTRFS_SUPER_MAGIC                           = 0x9123683e\n\tBTRFS_TEST_MAGIC                            = 0x73727279\n\tBUS_BLUETOOTH                               = 0x5\n\tBUS_HIL                                     = 0x4\n\tBUS_USB                                     = 0x3\n\tBUS_VIRTUAL                                 = 0x6\n\tCAN_BCM                                     = 0x2\n\tCAN_BUS_OFF_THRESHOLD                       = 0x100\n\tCAN_CTRLMODE_3_SAMPLES                      = 0x4\n\tCAN_CTRLMODE_BERR_REPORTING                 = 0x10\n\tCAN_CTRLMODE_CC_LEN8_DLC                    = 0x100\n\tCAN_CTRLMODE_FD                             = 0x20\n\tCAN_CTRLMODE_FD_NON_ISO                     = 0x80\n\tCAN_CTRLMODE_LISTENONLY                     = 0x2\n\tCAN_CTRLMODE_LOOPBACK                       = 0x1\n\tCAN_CTRLMODE_ONE_SHOT                       = 0x8\n\tCAN_CTRLMODE_PRESUME_ACK                    = 0x40\n\tCAN_CTRLMODE_TDC_AUTO                       = 0x200\n\tCAN_CTRLMODE_TDC_MANUAL                     = 0x400\n\tCAN_EFF_FLAG                                = 0x80000000\n\tCAN_EFF_ID_BITS                             = 0x1d\n\tCAN_EFF_MASK                                = 0x1fffffff\n\tCAN_ERROR_PASSIVE_THRESHOLD                 = 0x80\n\tCAN_ERROR_WARNING_THRESHOLD                 = 0x60\n\tCAN_ERR_ACK                                 = 0x20\n\tCAN_ERR_BUSERROR                            = 0x80\n\tCAN_ERR_BUSOFF                              = 0x40\n\tCAN_ERR_CNT                                 = 0x200\n\tCAN_ERR_CRTL                                = 0x4\n\tCAN_ERR_CRTL_ACTIVE                         = 0x40\n\tCAN_ERR_CRTL_RX_OVERFLOW                    = 0x1\n\tCAN_ERR_CRTL_RX_PASSIVE                     = 0x10\n\tCAN_ERR_CRTL_RX_WARNING                     = 0x4\n\tCAN_ERR_CRTL_TX_OVERFLOW                    = 0x2\n\tCAN_ERR_CRTL_TX_PASSIVE                     = 0x20\n\tCAN_ERR_CRTL_TX_WARNING                     = 0x8\n\tCAN_ERR_CRTL_UNSPEC                         = 0x0\n\tCAN_ERR_DLC                                 = 0x8\n\tCAN_ERR_FLAG                                = 0x20000000\n\tCAN_ERR_LOSTARB                             = 0x2\n\tCAN_ERR_LOSTARB_UNSPEC                      = 0x0\n\tCAN_ERR_MASK                                = 0x1fffffff\n\tCAN_ERR_PROT                                = 0x8\n\tCAN_ERR_PROT_ACTIVE                         = 0x40\n\tCAN_ERR_PROT_BIT                            = 0x1\n\tCAN_ERR_PROT_BIT0                           = 0x8\n\tCAN_ERR_PROT_BIT1                           = 0x10\n\tCAN_ERR_PROT_FORM                           = 0x2\n\tCAN_ERR_PROT_LOC_ACK                        = 0x19\n\tCAN_ERR_PROT_LOC_ACK_DEL                    = 0x1b\n\tCAN_ERR_PROT_LOC_CRC_DEL                    = 0x18\n\tCAN_ERR_PROT_LOC_CRC_SEQ                    = 0x8\n\tCAN_ERR_PROT_LOC_DATA                       = 0xa\n\tCAN_ERR_PROT_LOC_DLC                        = 0xb\n\tCAN_ERR_PROT_LOC_EOF                        = 0x1a\n\tCAN_ERR_PROT_LOC_ID04_00                    = 0xe\n\tCAN_ERR_PROT_LOC_ID12_05                    = 0xf\n\tCAN_ERR_PROT_LOC_ID17_13                    = 0x7\n\tCAN_ERR_PROT_LOC_ID20_18                    = 0x6\n\tCAN_ERR_PROT_LOC_ID28_21                    = 0x2\n\tCAN_ERR_PROT_LOC_IDE                        = 0x5\n\tCAN_ERR_PROT_LOC_INTERM                     = 0x12\n\tCAN_ERR_PROT_LOC_RES0                       = 0x9\n\tCAN_ERR_PROT_LOC_RES1                       = 0xd\n\tCAN_ERR_PROT_LOC_RTR                        = 0xc\n\tCAN_ERR_PROT_LOC_SOF                        = 0x3\n\tCAN_ERR_PROT_LOC_SRTR                       = 0x4\n\tCAN_ERR_PROT_LOC_UNSPEC                     = 0x0\n\tCAN_ERR_PROT_OVERLOAD                       = 0x20\n\tCAN_ERR_PROT_STUFF                          = 0x4\n\tCAN_ERR_PROT_TX                             = 0x80\n\tCAN_ERR_PROT_UNSPEC                         = 0x0\n\tCAN_ERR_RESTARTED                           = 0x100\n\tCAN_ERR_TRX                                 = 0x10\n\tCAN_ERR_TRX_CANH_NO_WIRE                    = 0x4\n\tCAN_ERR_TRX_CANH_SHORT_TO_BAT               = 0x5\n\tCAN_ERR_TRX_CANH_SHORT_TO_GND               = 0x7\n\tCAN_ERR_TRX_CANH_SHORT_TO_VCC               = 0x6\n\tCAN_ERR_TRX_CANL_NO_WIRE                    = 0x40\n\tCAN_ERR_TRX_CANL_SHORT_TO_BAT               = 0x50\n\tCAN_ERR_TRX_CANL_SHORT_TO_CANH              = 0x80\n\tCAN_ERR_TRX_CANL_SHORT_TO_GND               = 0x70\n\tCAN_ERR_TRX_CANL_SHORT_TO_VCC               = 0x60\n\tCAN_ERR_TRX_UNSPEC                          = 0x0\n\tCAN_ERR_TX_TIMEOUT                          = 0x1\n\tCAN_INV_FILTER                              = 0x20000000\n\tCAN_ISOTP                                   = 0x6\n\tCAN_J1939                                   = 0x7\n\tCAN_MAX_DLC                                 = 0x8\n\tCAN_MAX_DLEN                                = 0x8\n\tCAN_MAX_RAW_DLC                             = 0xf\n\tCAN_MCNET                                   = 0x5\n\tCAN_MTU                                     = 0x10\n\tCAN_NPROTO                                  = 0x8\n\tCAN_RAW                                     = 0x1\n\tCAN_RAW_FILTER_MAX                          = 0x200\n\tCAN_RAW_XL_VCID_RX_FILTER                   = 0x4\n\tCAN_RAW_XL_VCID_TX_PASS                     = 0x2\n\tCAN_RAW_XL_VCID_TX_SET                      = 0x1\n\tCAN_RTR_FLAG                                = 0x40000000\n\tCAN_SFF_ID_BITS                             = 0xb\n\tCAN_SFF_MASK                                = 0x7ff\n\tCAN_TERMINATION_DISABLED                    = 0x0\n\tCAN_TP16                                    = 0x3\n\tCAN_TP20                                    = 0x4\n\tCAP_AUDIT_CONTROL                           = 0x1e\n\tCAP_AUDIT_READ                              = 0x25\n\tCAP_AUDIT_WRITE                             = 0x1d\n\tCAP_BLOCK_SUSPEND                           = 0x24\n\tCAP_BPF                                     = 0x27\n\tCAP_CHECKPOINT_RESTORE                      = 0x28\n\tCAP_CHOWN                                   = 0x0\n\tCAP_DAC_OVERRIDE                            = 0x1\n\tCAP_DAC_READ_SEARCH                         = 0x2\n\tCAP_FOWNER                                  = 0x3\n\tCAP_FSETID                                  = 0x4\n\tCAP_IPC_LOCK                                = 0xe\n\tCAP_IPC_OWNER                               = 0xf\n\tCAP_KILL                                    = 0x5\n\tCAP_LAST_CAP                                = 0x28\n\tCAP_LEASE                                   = 0x1c\n\tCAP_LINUX_IMMUTABLE                         = 0x9\n\tCAP_MAC_ADMIN                               = 0x21\n\tCAP_MAC_OVERRIDE                            = 0x20\n\tCAP_MKNOD                                   = 0x1b\n\tCAP_NET_ADMIN                               = 0xc\n\tCAP_NET_BIND_SERVICE                        = 0xa\n\tCAP_NET_BROADCAST                           = 0xb\n\tCAP_NET_RAW                                 = 0xd\n\tCAP_PERFMON                                 = 0x26\n\tCAP_SETFCAP                                 = 0x1f\n\tCAP_SETGID                                  = 0x6\n\tCAP_SETPCAP                                 = 0x8\n\tCAP_SETUID                                  = 0x7\n\tCAP_SYSLOG                                  = 0x22\n\tCAP_SYS_ADMIN                               = 0x15\n\tCAP_SYS_BOOT                                = 0x16\n\tCAP_SYS_CHROOT                              = 0x12\n\tCAP_SYS_MODULE                              = 0x10\n\tCAP_SYS_NICE                                = 0x17\n\tCAP_SYS_PACCT                               = 0x14\n\tCAP_SYS_PTRACE                              = 0x13\n\tCAP_SYS_RAWIO                               = 0x11\n\tCAP_SYS_RESOURCE                            = 0x18\n\tCAP_SYS_TIME                                = 0x19\n\tCAP_SYS_TTY_CONFIG                          = 0x1a\n\tCAP_WAKE_ALARM                              = 0x23\n\tCEPH_SUPER_MAGIC                            = 0xc36400\n\tCFLUSH                                      = 0xf\n\tCGROUP2_SUPER_MAGIC                         = 0x63677270\n\tCGROUP_SUPER_MAGIC                          = 0x27e0eb\n\tCIFS_SUPER_MAGIC                            = 0xff534d42\n\tCLOCK_BOOTTIME                              = 0x7\n\tCLOCK_BOOTTIME_ALARM                        = 0x9\n\tCLOCK_DEFAULT                               = 0x0\n\tCLOCK_EXT                                   = 0x1\n\tCLOCK_INT                                   = 0x2\n\tCLOCK_MONOTONIC                             = 0x1\n\tCLOCK_MONOTONIC_COARSE                      = 0x6\n\tCLOCK_MONOTONIC_RAW                         = 0x4\n\tCLOCK_PROCESS_CPUTIME_ID                    = 0x2\n\tCLOCK_REALTIME                              = 0x0\n\tCLOCK_REALTIME_ALARM                        = 0x8\n\tCLOCK_REALTIME_COARSE                       = 0x5\n\tCLOCK_TAI                                   = 0xb\n\tCLOCK_THREAD_CPUTIME_ID                     = 0x3\n\tCLOCK_TXFROMRX                              = 0x4\n\tCLOCK_TXINT                                 = 0x3\n\tCLONE_ARGS_SIZE_VER0                        = 0x40\n\tCLONE_ARGS_SIZE_VER1                        = 0x50\n\tCLONE_ARGS_SIZE_VER2                        = 0x58\n\tCLONE_CHILD_CLEARTID                        = 0x200000\n\tCLONE_CHILD_SETTID                          = 0x1000000\n\tCLONE_CLEAR_SIGHAND                         = 0x100000000\n\tCLONE_DETACHED                              = 0x400000\n\tCLONE_FILES                                 = 0x400\n\tCLONE_FS                                    = 0x200\n\tCLONE_INTO_CGROUP                           = 0x200000000\n\tCLONE_IO                                    = 0x80000000\n\tCLONE_NEWCGROUP                             = 0x2000000\n\tCLONE_NEWIPC                                = 0x8000000\n\tCLONE_NEWNET                                = 0x40000000\n\tCLONE_NEWNS                                 = 0x20000\n\tCLONE_NEWPID                                = 0x20000000\n\tCLONE_NEWTIME                               = 0x80\n\tCLONE_NEWUSER                               = 0x10000000\n\tCLONE_NEWUTS                                = 0x4000000\n\tCLONE_PARENT                                = 0x8000\n\tCLONE_PARENT_SETTID                         = 0x100000\n\tCLONE_PIDFD                                 = 0x1000\n\tCLONE_PTRACE                                = 0x2000\n\tCLONE_SETTLS                                = 0x80000\n\tCLONE_SIGHAND                               = 0x800\n\tCLONE_SYSVSEM                               = 0x40000\n\tCLONE_THREAD                                = 0x10000\n\tCLONE_UNTRACED                              = 0x800000\n\tCLONE_VFORK                                 = 0x4000\n\tCLONE_VM                                    = 0x100\n\tCMSPAR                                      = 0x40000000\n\tCODA_SUPER_MAGIC                            = 0x73757245\n\tCR0                                         = 0x0\n\tCRAMFS_MAGIC                                = 0x28cd3d45\n\tCRTSCTS                                     = 0x80000000\n\tCRYPTO_MAX_NAME                             = 0x40\n\tCRYPTO_MSG_MAX                              = 0x15\n\tCRYPTO_NR_MSGTYPES                          = 0x6\n\tCRYPTO_REPORT_MAXSIZE                       = 0x160\n\tCS5                                         = 0x0\n\tCSIGNAL                                     = 0xff\n\tCSTART                                      = 0x11\n\tCSTATUS                                     = 0x0\n\tCSTOP                                       = 0x13\n\tCSUSP                                       = 0x1a\n\tDAXFS_MAGIC                                 = 0x64646178\n\tDEBUGFS_MAGIC                               = 0x64626720\n\tDEVLINK_CMD_ESWITCH_MODE_GET                = 0x1d\n\tDEVLINK_CMD_ESWITCH_MODE_SET                = 0x1e\n\tDEVLINK_FLASH_OVERWRITE_IDENTIFIERS         = 0x2\n\tDEVLINK_FLASH_OVERWRITE_SETTINGS            = 0x1\n\tDEVLINK_GENL_MCGRP_CONFIG_NAME              = \"config\"\n\tDEVLINK_GENL_NAME                           = \"devlink\"\n\tDEVLINK_GENL_VERSION                        = 0x1\n\tDEVLINK_PORT_FN_CAP_IPSEC_CRYPTO            = 0x4\n\tDEVLINK_PORT_FN_CAP_IPSEC_PACKET            = 0x8\n\tDEVLINK_PORT_FN_CAP_MIGRATABLE              = 0x2\n\tDEVLINK_PORT_FN_CAP_ROCE                    = 0x1\n\tDEVLINK_SB_THRESHOLD_TO_ALPHA_MAX           = 0x14\n\tDEVLINK_SUPPORTED_FLASH_OVERWRITE_SECTIONS  = 0x3\n\tDEVMEM_MAGIC                                = 0x454d444d\n\tDEVPTS_SUPER_MAGIC                          = 0x1cd1\n\tDMA_BUF_MAGIC                               = 0x444d4142\n\tDM_ACTIVE_PRESENT_FLAG                      = 0x20\n\tDM_BUFFER_FULL_FLAG                         = 0x100\n\tDM_CONTROL_NODE                             = \"control\"\n\tDM_DATA_OUT_FLAG                            = 0x10000\n\tDM_DEFERRED_REMOVE                          = 0x20000\n\tDM_DEV_ARM_POLL                             = 0xc138fd10\n\tDM_DEV_CREATE                               = 0xc138fd03\n\tDM_DEV_REMOVE                               = 0xc138fd04\n\tDM_DEV_RENAME                               = 0xc138fd05\n\tDM_DEV_SET_GEOMETRY                         = 0xc138fd0f\n\tDM_DEV_STATUS                               = 0xc138fd07\n\tDM_DEV_SUSPEND                              = 0xc138fd06\n\tDM_DEV_WAIT                                 = 0xc138fd08\n\tDM_DIR                                      = \"mapper\"\n\tDM_GET_TARGET_VERSION                       = 0xc138fd11\n\tDM_IMA_MEASUREMENT_FLAG                     = 0x80000\n\tDM_INACTIVE_PRESENT_FLAG                    = 0x40\n\tDM_INTERNAL_SUSPEND_FLAG                    = 0x40000\n\tDM_IOCTL                                    = 0xfd\n\tDM_LIST_DEVICES                             = 0xc138fd02\n\tDM_LIST_VERSIONS                            = 0xc138fd0d\n\tDM_MAX_TYPE_NAME                            = 0x10\n\tDM_NAME_LEN                                 = 0x80\n\tDM_NAME_LIST_FLAG_DOESNT_HAVE_UUID          = 0x2\n\tDM_NAME_LIST_FLAG_HAS_UUID                  = 0x1\n\tDM_NOFLUSH_FLAG                             = 0x800\n\tDM_PERSISTENT_DEV_FLAG                      = 0x8\n\tDM_QUERY_INACTIVE_TABLE_FLAG                = 0x1000\n\tDM_READONLY_FLAG                            = 0x1\n\tDM_REMOVE_ALL                               = 0xc138fd01\n\tDM_SECURE_DATA_FLAG                         = 0x8000\n\tDM_SKIP_BDGET_FLAG                          = 0x200\n\tDM_SKIP_LOCKFS_FLAG                         = 0x400\n\tDM_STATUS_TABLE_FLAG                        = 0x10\n\tDM_SUSPEND_FLAG                             = 0x2\n\tDM_TABLE_CLEAR                              = 0xc138fd0a\n\tDM_TABLE_DEPS                               = 0xc138fd0b\n\tDM_TABLE_LOAD                               = 0xc138fd09\n\tDM_TABLE_STATUS                             = 0xc138fd0c\n\tDM_TARGET_MSG                               = 0xc138fd0e\n\tDM_UEVENT_GENERATED_FLAG                    = 0x2000\n\tDM_UUID_FLAG                                = 0x4000\n\tDM_UUID_LEN                                 = 0x81\n\tDM_VERSION                                  = 0xc138fd00\n\tDM_VERSION_EXTRA                            = \"-ioctl (2023-03-01)\"\n\tDM_VERSION_MAJOR                            = 0x4\n\tDM_VERSION_MINOR                            = 0x30\n\tDM_VERSION_PATCHLEVEL                       = 0x0\n\tDT_BLK                                      = 0x6\n\tDT_CHR                                      = 0x2\n\tDT_DIR                                      = 0x4\n\tDT_FIFO                                     = 0x1\n\tDT_LNK                                      = 0xa\n\tDT_REG                                      = 0x8\n\tDT_SOCK                                     = 0xc\n\tDT_UNKNOWN                                  = 0x0\n\tDT_WHT                                      = 0xe\n\tECHO                                        = 0x8\n\tECRYPTFS_SUPER_MAGIC                        = 0xf15f\n\tEFD_SEMAPHORE                               = 0x1\n\tEFIVARFS_MAGIC                              = 0xde5e81e4\n\tEFS_SUPER_MAGIC                             = 0x414a53\n\tEM_386                                      = 0x3\n\tEM_486                                      = 0x6\n\tEM_68K                                      = 0x4\n\tEM_860                                      = 0x7\n\tEM_88K                                      = 0x5\n\tEM_AARCH64                                  = 0xb7\n\tEM_ALPHA                                    = 0x9026\n\tEM_ALTERA_NIOS2                             = 0x71\n\tEM_ARCOMPACT                                = 0x5d\n\tEM_ARCV2                                    = 0xc3\n\tEM_ARM                                      = 0x28\n\tEM_BLACKFIN                                 = 0x6a\n\tEM_BPF                                      = 0xf7\n\tEM_CRIS                                     = 0x4c\n\tEM_CSKY                                     = 0xfc\n\tEM_CYGNUS_M32R                              = 0x9041\n\tEM_CYGNUS_MN10300                           = 0xbeef\n\tEM_FRV                                      = 0x5441\n\tEM_H8_300                                   = 0x2e\n\tEM_HEXAGON                                  = 0xa4\n\tEM_IA_64                                    = 0x32\n\tEM_LOONGARCH                                = 0x102\n\tEM_M32                                      = 0x1\n\tEM_M32R                                     = 0x58\n\tEM_MICROBLAZE                               = 0xbd\n\tEM_MIPS                                     = 0x8\n\tEM_MIPS_RS3_LE                              = 0xa\n\tEM_MIPS_RS4_BE                              = 0xa\n\tEM_MN10300                                  = 0x59\n\tEM_NDS32                                    = 0xa7\n\tEM_NONE                                     = 0x0\n\tEM_OPENRISC                                 = 0x5c\n\tEM_PARISC                                   = 0xf\n\tEM_PPC                                      = 0x14\n\tEM_PPC64                                    = 0x15\n\tEM_RISCV                                    = 0xf3\n\tEM_S390                                     = 0x16\n\tEM_S390_OLD                                 = 0xa390\n\tEM_SH                                       = 0x2a\n\tEM_SPARC                                    = 0x2\n\tEM_SPARC32PLUS                              = 0x12\n\tEM_SPARCV9                                  = 0x2b\n\tEM_SPU                                      = 0x17\n\tEM_TILEGX                                   = 0xbf\n\tEM_TILEPRO                                  = 0xbc\n\tEM_TI_C6000                                 = 0x8c\n\tEM_UNICORE                                  = 0x6e\n\tEM_X86_64                                   = 0x3e\n\tEM_XTENSA                                   = 0x5e\n\tENCODING_DEFAULT                            = 0x0\n\tENCODING_FM_MARK                            = 0x3\n\tENCODING_FM_SPACE                           = 0x4\n\tENCODING_MANCHESTER                         = 0x5\n\tENCODING_NRZ                                = 0x1\n\tENCODING_NRZI                               = 0x2\n\tEPOLLERR                                    = 0x8\n\tEPOLLET                                     = 0x80000000\n\tEPOLLEXCLUSIVE                              = 0x10000000\n\tEPOLLHUP                                    = 0x10\n\tEPOLLIN                                     = 0x1\n\tEPOLLMSG                                    = 0x400\n\tEPOLLONESHOT                                = 0x40000000\n\tEPOLLOUT                                    = 0x4\n\tEPOLLPRI                                    = 0x2\n\tEPOLLRDBAND                                 = 0x80\n\tEPOLLRDHUP                                  = 0x2000\n\tEPOLLRDNORM                                 = 0x40\n\tEPOLLWAKEUP                                 = 0x20000000\n\tEPOLLWRBAND                                 = 0x200\n\tEPOLLWRNORM                                 = 0x100\n\tEPOLL_CTL_ADD                               = 0x1\n\tEPOLL_CTL_DEL                               = 0x2\n\tEPOLL_CTL_MOD                               = 0x3\n\tEPOLL_IOC_TYPE                              = 0x8a\n\tEROFS_SUPER_MAGIC_V1                        = 0xe0f5e1e2\n\tESP_V4_FLOW                                 = 0xa\n\tESP_V6_FLOW                                 = 0xc\n\tETHER_FLOW                                  = 0x12\n\tETHTOOL_BUSINFO_LEN                         = 0x20\n\tETHTOOL_EROMVERS_LEN                        = 0x20\n\tETHTOOL_FEC_AUTO                            = 0x2\n\tETHTOOL_FEC_BASER                           = 0x10\n\tETHTOOL_FEC_LLRS                            = 0x20\n\tETHTOOL_FEC_NONE                            = 0x1\n\tETHTOOL_FEC_OFF                             = 0x4\n\tETHTOOL_FEC_RS                              = 0x8\n\tETHTOOL_FLAG_ALL                            = 0x7\n\tETHTOOL_FLASHDEV                            = 0x33\n\tETHTOOL_FLASH_MAX_FILENAME                  = 0x80\n\tETHTOOL_FWVERS_LEN                          = 0x20\n\tETHTOOL_F_COMPAT                            = 0x4\n\tETHTOOL_F_UNSUPPORTED                       = 0x1\n\tETHTOOL_F_WISH                              = 0x2\n\tETHTOOL_GCHANNELS                           = 0x3c\n\tETHTOOL_GCOALESCE                           = 0xe\n\tETHTOOL_GDRVINFO                            = 0x3\n\tETHTOOL_GEEE                                = 0x44\n\tETHTOOL_GEEPROM                             = 0xb\n\tETHTOOL_GENL_NAME                           = \"ethtool\"\n\tETHTOOL_GENL_VERSION                        = 0x1\n\tETHTOOL_GET_DUMP_DATA                       = 0x40\n\tETHTOOL_GET_DUMP_FLAG                       = 0x3f\n\tETHTOOL_GET_TS_INFO                         = 0x41\n\tETHTOOL_GFEATURES                           = 0x3a\n\tETHTOOL_GFECPARAM                           = 0x50\n\tETHTOOL_GFLAGS                              = 0x25\n\tETHTOOL_GGRO                                = 0x2b\n\tETHTOOL_GGSO                                = 0x23\n\tETHTOOL_GLINK                               = 0xa\n\tETHTOOL_GLINKSETTINGS                       = 0x4c\n\tETHTOOL_GMODULEEEPROM                       = 0x43\n\tETHTOOL_GMODULEINFO                         = 0x42\n\tETHTOOL_GMSGLVL                             = 0x7\n\tETHTOOL_GPAUSEPARAM                         = 0x12\n\tETHTOOL_GPERMADDR                           = 0x20\n\tETHTOOL_GPFLAGS                             = 0x27\n\tETHTOOL_GPHYSTATS                           = 0x4a\n\tETHTOOL_GREGS                               = 0x4\n\tETHTOOL_GRINGPARAM                          = 0x10\n\tETHTOOL_GRSSH                               = 0x46\n\tETHTOOL_GRXCLSRLALL                         = 0x30\n\tETHTOOL_GRXCLSRLCNT                         = 0x2e\n\tETHTOOL_GRXCLSRULE                          = 0x2f\n\tETHTOOL_GRXCSUM                             = 0x14\n\tETHTOOL_GRXFH                               = 0x29\n\tETHTOOL_GRXFHINDIR                          = 0x38\n\tETHTOOL_GRXNTUPLE                           = 0x36\n\tETHTOOL_GRXRINGS                            = 0x2d\n\tETHTOOL_GSET                                = 0x1\n\tETHTOOL_GSG                                 = 0x18\n\tETHTOOL_GSSET_INFO                          = 0x37\n\tETHTOOL_GSTATS                              = 0x1d\n\tETHTOOL_GSTRINGS                            = 0x1b\n\tETHTOOL_GTSO                                = 0x1e\n\tETHTOOL_GTUNABLE                            = 0x48\n\tETHTOOL_GTXCSUM                             = 0x16\n\tETHTOOL_GUFO                                = 0x21\n\tETHTOOL_GWOL                                = 0x5\n\tETHTOOL_MCGRP_MONITOR_NAME                  = \"monitor\"\n\tETHTOOL_NWAY_RST                            = 0x9\n\tETHTOOL_PERQUEUE                            = 0x4b\n\tETHTOOL_PHYS_ID                             = 0x1c\n\tETHTOOL_PHY_EDPD_DFLT_TX_MSECS              = 0xffff\n\tETHTOOL_PHY_EDPD_DISABLE                    = 0x0\n\tETHTOOL_PHY_EDPD_NO_TX                      = 0xfffe\n\tETHTOOL_PHY_FAST_LINK_DOWN_OFF              = 0xff\n\tETHTOOL_PHY_FAST_LINK_DOWN_ON               = 0x0\n\tETHTOOL_PHY_GTUNABLE                        = 0x4e\n\tETHTOOL_PHY_STUNABLE                        = 0x4f\n\tETHTOOL_RESET                               = 0x34\n\tETHTOOL_RXNTUPLE_ACTION_CLEAR               = -0x2\n\tETHTOOL_RXNTUPLE_ACTION_DROP                = -0x1\n\tETHTOOL_RX_FLOW_SPEC_RING                   = 0xffffffff\n\tETHTOOL_RX_FLOW_SPEC_RING_VF                = 0xff00000000\n\tETHTOOL_RX_FLOW_SPEC_RING_VF_OFF            = 0x20\n\tETHTOOL_SCHANNELS                           = 0x3d\n\tETHTOOL_SCOALESCE                           = 0xf\n\tETHTOOL_SEEE                                = 0x45\n\tETHTOOL_SEEPROM                             = 0xc\n\tETHTOOL_SET_DUMP                            = 0x3e\n\tETHTOOL_SFEATURES                           = 0x3b\n\tETHTOOL_SFECPARAM                           = 0x51\n\tETHTOOL_SFLAGS                              = 0x26\n\tETHTOOL_SGRO                                = 0x2c\n\tETHTOOL_SGSO                                = 0x24\n\tETHTOOL_SLINKSETTINGS                       = 0x4d\n\tETHTOOL_SMSGLVL                             = 0x8\n\tETHTOOL_SPAUSEPARAM                         = 0x13\n\tETHTOOL_SPFLAGS                             = 0x28\n\tETHTOOL_SRINGPARAM                          = 0x11\n\tETHTOOL_SRSSH                               = 0x47\n\tETHTOOL_SRXCLSRLDEL                         = 0x31\n\tETHTOOL_SRXCLSRLINS                         = 0x32\n\tETHTOOL_SRXCSUM                             = 0x15\n\tETHTOOL_SRXFH                               = 0x2a\n\tETHTOOL_SRXFHINDIR                          = 0x39\n\tETHTOOL_SRXNTUPLE                           = 0x35\n\tETHTOOL_SSET                                = 0x2\n\tETHTOOL_SSG                                 = 0x19\n\tETHTOOL_STSO                                = 0x1f\n\tETHTOOL_STUNABLE                            = 0x49\n\tETHTOOL_STXCSUM                             = 0x17\n\tETHTOOL_SUFO                                = 0x22\n\tETHTOOL_SWOL                                = 0x6\n\tETHTOOL_TEST                                = 0x1a\n\tETH_P_1588                                  = 0x88f7\n\tETH_P_8021AD                                = 0x88a8\n\tETH_P_8021AH                                = 0x88e7\n\tETH_P_8021Q                                 = 0x8100\n\tETH_P_80221                                 = 0x8917\n\tETH_P_802_2                                 = 0x4\n\tETH_P_802_3                                 = 0x1\n\tETH_P_802_3_MIN                             = 0x600\n\tETH_P_802_EX1                               = 0x88b5\n\tETH_P_AARP                                  = 0x80f3\n\tETH_P_AF_IUCV                               = 0xfbfb\n\tETH_P_ALL                                   = 0x3\n\tETH_P_AOE                                   = 0x88a2\n\tETH_P_ARCNET                                = 0x1a\n\tETH_P_ARP                                   = 0x806\n\tETH_P_ATALK                                 = 0x809b\n\tETH_P_ATMFATE                               = 0x8884\n\tETH_P_ATMMPOA                               = 0x884c\n\tETH_P_AX25                                  = 0x2\n\tETH_P_BATMAN                                = 0x4305\n\tETH_P_BPQ                                   = 0x8ff\n\tETH_P_CAIF                                  = 0xf7\n\tETH_P_CAN                                   = 0xc\n\tETH_P_CANFD                                 = 0xd\n\tETH_P_CANXL                                 = 0xe\n\tETH_P_CFM                                   = 0x8902\n\tETH_P_CONTROL                               = 0x16\n\tETH_P_CUST                                  = 0x6006\n\tETH_P_DDCMP                                 = 0x6\n\tETH_P_DEC                                   = 0x6000\n\tETH_P_DIAG                                  = 0x6005\n\tETH_P_DNA_DL                                = 0x6001\n\tETH_P_DNA_RC                                = 0x6002\n\tETH_P_DNA_RT                                = 0x6003\n\tETH_P_DSA                                   = 0x1b\n\tETH_P_DSA_8021Q                             = 0xdadb\n\tETH_P_DSA_A5PSW                             = 0xe001\n\tETH_P_ECONET                                = 0x18\n\tETH_P_EDSA                                  = 0xdada\n\tETH_P_ERSPAN                                = 0x88be\n\tETH_P_ERSPAN2                               = 0x22eb\n\tETH_P_ETHERCAT                              = 0x88a4\n\tETH_P_FCOE                                  = 0x8906\n\tETH_P_FIP                                   = 0x8914\n\tETH_P_HDLC                                  = 0x19\n\tETH_P_HSR                                   = 0x892f\n\tETH_P_IBOE                                  = 0x8915\n\tETH_P_IEEE802154                            = 0xf6\n\tETH_P_IEEEPUP                               = 0xa00\n\tETH_P_IEEEPUPAT                             = 0xa01\n\tETH_P_IFE                                   = 0xed3e\n\tETH_P_IP                                    = 0x800\n\tETH_P_IPV6                                  = 0x86dd\n\tETH_P_IPX                                   = 0x8137\n\tETH_P_IRDA                                  = 0x17\n\tETH_P_LAT                                   = 0x6004\n\tETH_P_LINK_CTL                              = 0x886c\n\tETH_P_LLDP                                  = 0x88cc\n\tETH_P_LOCALTALK                             = 0x9\n\tETH_P_LOOP                                  = 0x60\n\tETH_P_LOOPBACK                              = 0x9000\n\tETH_P_MACSEC                                = 0x88e5\n\tETH_P_MAP                                   = 0xf9\n\tETH_P_MCTP                                  = 0xfa\n\tETH_P_MOBITEX                               = 0x15\n\tETH_P_MPLS_MC                               = 0x8848\n\tETH_P_MPLS_UC                               = 0x8847\n\tETH_P_MRP                                   = 0x88e3\n\tETH_P_MVRP                                  = 0x88f5\n\tETH_P_NCSI                                  = 0x88f8\n\tETH_P_NSH                                   = 0x894f\n\tETH_P_PAE                                   = 0x888e\n\tETH_P_PAUSE                                 = 0x8808\n\tETH_P_PHONET                                = 0xf5\n\tETH_P_PPPTALK                               = 0x10\n\tETH_P_PPP_DISC                              = 0x8863\n\tETH_P_PPP_MP                                = 0x8\n\tETH_P_PPP_SES                               = 0x8864\n\tETH_P_PREAUTH                               = 0x88c7\n\tETH_P_PROFINET                              = 0x8892\n\tETH_P_PRP                                   = 0x88fb\n\tETH_P_PUP                                   = 0x200\n\tETH_P_PUPAT                                 = 0x201\n\tETH_P_QINQ1                                 = 0x9100\n\tETH_P_QINQ2                                 = 0x9200\n\tETH_P_QINQ3                                 = 0x9300\n\tETH_P_RARP                                  = 0x8035\n\tETH_P_REALTEK                               = 0x8899\n\tETH_P_SCA                                   = 0x6007\n\tETH_P_SLOW                                  = 0x8809\n\tETH_P_SNAP                                  = 0x5\n\tETH_P_TDLS                                  = 0x890d\n\tETH_P_TEB                                   = 0x6558\n\tETH_P_TIPC                                  = 0x88ca\n\tETH_P_TRAILER                               = 0x1c\n\tETH_P_TR_802_2                              = 0x11\n\tETH_P_TSN                                   = 0x22f0\n\tETH_P_WAN_PPP                               = 0x7\n\tETH_P_WCCP                                  = 0x883e\n\tETH_P_X25                                   = 0x805\n\tETH_P_XDSA                                  = 0xf8\n\tEV_ABS                                      = 0x3\n\tEV_CNT                                      = 0x20\n\tEV_FF                                       = 0x15\n\tEV_FF_STATUS                                = 0x17\n\tEV_KEY                                      = 0x1\n\tEV_LED                                      = 0x11\n\tEV_MAX                                      = 0x1f\n\tEV_MSC                                      = 0x4\n\tEV_PWR                                      = 0x16\n\tEV_REL                                      = 0x2\n\tEV_REP                                      = 0x14\n\tEV_SND                                      = 0x12\n\tEV_SW                                       = 0x5\n\tEV_SYN                                      = 0x0\n\tEV_VERSION                                  = 0x10001\n\tEXABYTE_ENABLE_NEST                         = 0xf0\n\tEXFAT_SUPER_MAGIC                           = 0x2011bab0\n\tEXT2_SUPER_MAGIC                            = 0xef53\n\tEXT3_SUPER_MAGIC                            = 0xef53\n\tEXT4_SUPER_MAGIC                            = 0xef53\n\tEXTA                                        = 0xe\n\tEXTB                                        = 0xf\n\tF2FS_SUPER_MAGIC                            = 0xf2f52010\n\tFALLOC_FL_ALLOCATE_RANGE                    = 0x0\n\tFALLOC_FL_COLLAPSE_RANGE                    = 0x8\n\tFALLOC_FL_INSERT_RANGE                      = 0x20\n\tFALLOC_FL_KEEP_SIZE                         = 0x1\n\tFALLOC_FL_NO_HIDE_STALE                     = 0x4\n\tFALLOC_FL_PUNCH_HOLE                        = 0x2\n\tFALLOC_FL_UNSHARE_RANGE                     = 0x40\n\tFALLOC_FL_ZERO_RANGE                        = 0x10\n\tFANOTIFY_METADATA_VERSION                   = 0x3\n\tFAN_ACCESS                                  = 0x1\n\tFAN_ACCESS_PERM                             = 0x20000\n\tFAN_ALLOW                                   = 0x1\n\tFAN_ALL_CLASS_BITS                          = 0xc\n\tFAN_ALL_EVENTS                              = 0x3b\n\tFAN_ALL_INIT_FLAGS                          = 0x3f\n\tFAN_ALL_MARK_FLAGS                          = 0xff\n\tFAN_ALL_OUTGOING_EVENTS                     = 0x3403b\n\tFAN_ALL_PERM_EVENTS                         = 0x30000\n\tFAN_ATTRIB                                  = 0x4\n\tFAN_AUDIT                                   = 0x10\n\tFAN_CLASS_CONTENT                           = 0x4\n\tFAN_CLASS_NOTIF                             = 0x0\n\tFAN_CLASS_PRE_CONTENT                       = 0x8\n\tFAN_CLOEXEC                                 = 0x1\n\tFAN_CLOSE                                   = 0x18\n\tFAN_CLOSE_NOWRITE                           = 0x10\n\tFAN_CLOSE_WRITE                             = 0x8\n\tFAN_CREATE                                  = 0x100\n\tFAN_DELETE                                  = 0x200\n\tFAN_DELETE_SELF                             = 0x400\n\tFAN_DENY                                    = 0x2\n\tFAN_ENABLE_AUDIT                            = 0x40\n\tFAN_EPIDFD                                  = -0x2\n\tFAN_EVENT_INFO_TYPE_DFID                    = 0x3\n\tFAN_EVENT_INFO_TYPE_DFID_NAME               = 0x2\n\tFAN_EVENT_INFO_TYPE_ERROR                   = 0x5\n\tFAN_EVENT_INFO_TYPE_FID                     = 0x1\n\tFAN_EVENT_INFO_TYPE_NEW_DFID_NAME           = 0xc\n\tFAN_EVENT_INFO_TYPE_OLD_DFID_NAME           = 0xa\n\tFAN_EVENT_INFO_TYPE_PIDFD                   = 0x4\n\tFAN_EVENT_METADATA_LEN                      = 0x18\n\tFAN_EVENT_ON_CHILD                          = 0x8000000\n\tFAN_FS_ERROR                                = 0x8000\n\tFAN_INFO                                    = 0x20\n\tFAN_MARK_ADD                                = 0x1\n\tFAN_MARK_DONT_FOLLOW                        = 0x4\n\tFAN_MARK_EVICTABLE                          = 0x200\n\tFAN_MARK_FILESYSTEM                         = 0x100\n\tFAN_MARK_FLUSH                              = 0x80\n\tFAN_MARK_IGNORE                             = 0x400\n\tFAN_MARK_IGNORED_MASK                       = 0x20\n\tFAN_MARK_IGNORED_SURV_MODIFY                = 0x40\n\tFAN_MARK_IGNORE_SURV                        = 0x440\n\tFAN_MARK_INODE                              = 0x0\n\tFAN_MARK_MOUNT                              = 0x10\n\tFAN_MARK_ONLYDIR                            = 0x8\n\tFAN_MARK_REMOVE                             = 0x2\n\tFAN_MODIFY                                  = 0x2\n\tFAN_MOVE                                    = 0xc0\n\tFAN_MOVED_FROM                              = 0x40\n\tFAN_MOVED_TO                                = 0x80\n\tFAN_MOVE_SELF                               = 0x800\n\tFAN_NOFD                                    = -0x1\n\tFAN_NONBLOCK                                = 0x2\n\tFAN_NOPIDFD                                 = -0x1\n\tFAN_ONDIR                                   = 0x40000000\n\tFAN_OPEN                                    = 0x20\n\tFAN_OPEN_EXEC                               = 0x1000\n\tFAN_OPEN_EXEC_PERM                          = 0x40000\n\tFAN_OPEN_PERM                               = 0x10000\n\tFAN_Q_OVERFLOW                              = 0x4000\n\tFAN_RENAME                                  = 0x10000000\n\tFAN_REPORT_DFID_NAME                        = 0xc00\n\tFAN_REPORT_DFID_NAME_TARGET                 = 0x1e00\n\tFAN_REPORT_DIR_FID                          = 0x400\n\tFAN_REPORT_FD_ERROR                         = 0x2000\n\tFAN_REPORT_FID                              = 0x200\n\tFAN_REPORT_NAME                             = 0x800\n\tFAN_REPORT_PIDFD                            = 0x80\n\tFAN_REPORT_TARGET_FID                       = 0x1000\n\tFAN_REPORT_TID                              = 0x100\n\tFAN_RESPONSE_INFO_AUDIT_RULE                = 0x1\n\tFAN_RESPONSE_INFO_NONE                      = 0x0\n\tFAN_UNLIMITED_MARKS                         = 0x20\n\tFAN_UNLIMITED_QUEUE                         = 0x10\n\tFD_CLOEXEC                                  = 0x1\n\tFD_SETSIZE                                  = 0x400\n\tFF0                                         = 0x0\n\tFIB_RULE_DEV_DETACHED                       = 0x8\n\tFIB_RULE_FIND_SADDR                         = 0x10000\n\tFIB_RULE_IIF_DETACHED                       = 0x8\n\tFIB_RULE_INVERT                             = 0x2\n\tFIB_RULE_OIF_DETACHED                       = 0x10\n\tFIB_RULE_PERMANENT                          = 0x1\n\tFIB_RULE_UNRESOLVED                         = 0x4\n\tFIDEDUPERANGE                               = 0xc0189436\n\tFSCRYPT_KEY_DESCRIPTOR_SIZE                 = 0x8\n\tFSCRYPT_KEY_DESC_PREFIX                     = \"fscrypt:\"\n\tFSCRYPT_KEY_DESC_PREFIX_SIZE                = 0x8\n\tFSCRYPT_KEY_IDENTIFIER_SIZE                 = 0x10\n\tFSCRYPT_KEY_REMOVAL_STATUS_FLAG_FILES_BUSY  = 0x1\n\tFSCRYPT_KEY_REMOVAL_STATUS_FLAG_OTHER_USERS = 0x2\n\tFSCRYPT_KEY_SPEC_TYPE_DESCRIPTOR            = 0x1\n\tFSCRYPT_KEY_SPEC_TYPE_IDENTIFIER            = 0x2\n\tFSCRYPT_KEY_STATUS_ABSENT                   = 0x1\n\tFSCRYPT_KEY_STATUS_FLAG_ADDED_BY_SELF       = 0x1\n\tFSCRYPT_KEY_STATUS_INCOMPLETELY_REMOVED     = 0x3\n\tFSCRYPT_KEY_STATUS_PRESENT                  = 0x2\n\tFSCRYPT_MAX_KEY_SIZE                        = 0x40\n\tFSCRYPT_MODE_ADIANTUM                       = 0x9\n\tFSCRYPT_MODE_AES_128_CBC                    = 0x5\n\tFSCRYPT_MODE_AES_128_CTS                    = 0x6\n\tFSCRYPT_MODE_AES_256_CTS                    = 0x4\n\tFSCRYPT_MODE_AES_256_HCTR2                  = 0xa\n\tFSCRYPT_MODE_AES_256_XTS                    = 0x1\n\tFSCRYPT_MODE_SM4_CTS                        = 0x8\n\tFSCRYPT_MODE_SM4_XTS                        = 0x7\n\tFSCRYPT_POLICY_FLAGS_PAD_16                 = 0x2\n\tFSCRYPT_POLICY_FLAGS_PAD_32                 = 0x3\n\tFSCRYPT_POLICY_FLAGS_PAD_4                  = 0x0\n\tFSCRYPT_POLICY_FLAGS_PAD_8                  = 0x1\n\tFSCRYPT_POLICY_FLAGS_PAD_MASK               = 0x3\n\tFSCRYPT_POLICY_FLAG_DIRECT_KEY              = 0x4\n\tFSCRYPT_POLICY_FLAG_IV_INO_LBLK_32          = 0x10\n\tFSCRYPT_POLICY_FLAG_IV_INO_LBLK_64          = 0x8\n\tFSCRYPT_POLICY_V1                           = 0x0\n\tFSCRYPT_POLICY_V2                           = 0x2\n\tFS_ENCRYPTION_MODE_ADIANTUM                 = 0x9\n\tFS_ENCRYPTION_MODE_AES_128_CBC              = 0x5\n\tFS_ENCRYPTION_MODE_AES_128_CTS              = 0x6\n\tFS_ENCRYPTION_MODE_AES_256_CBC              = 0x3\n\tFS_ENCRYPTION_MODE_AES_256_CTS              = 0x4\n\tFS_ENCRYPTION_MODE_AES_256_GCM              = 0x2\n\tFS_ENCRYPTION_MODE_AES_256_XTS              = 0x1\n\tFS_ENCRYPTION_MODE_INVALID                  = 0x0\n\tFS_IOC_ADD_ENCRYPTION_KEY                   = 0xc0506617\n\tFS_IOC_GET_ENCRYPTION_KEY_STATUS            = 0xc080661a\n\tFS_IOC_GET_ENCRYPTION_POLICY_EX             = 0xc0096616\n\tFS_IOC_MEASURE_VERITY                       = 0xc0046686\n\tFS_IOC_READ_VERITY_METADATA                 = 0xc0286687\n\tFS_IOC_REMOVE_ENCRYPTION_KEY                = 0xc0406618\n\tFS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS      = 0xc0406619\n\tFS_KEY_DESCRIPTOR_SIZE                      = 0x8\n\tFS_KEY_DESC_PREFIX                          = \"fscrypt:\"\n\tFS_KEY_DESC_PREFIX_SIZE                     = 0x8\n\tFS_MAX_KEY_SIZE                             = 0x40\n\tFS_POLICY_FLAGS_PAD_16                      = 0x2\n\tFS_POLICY_FLAGS_PAD_32                      = 0x3\n\tFS_POLICY_FLAGS_PAD_4                       = 0x0\n\tFS_POLICY_FLAGS_PAD_8                       = 0x1\n\tFS_POLICY_FLAGS_PAD_MASK                    = 0x3\n\tFS_POLICY_FLAGS_VALID                       = 0x7\n\tFS_VERITY_FL                                = 0x100000\n\tFS_VERITY_HASH_ALG_SHA256                   = 0x1\n\tFS_VERITY_HASH_ALG_SHA512                   = 0x2\n\tFS_VERITY_METADATA_TYPE_DESCRIPTOR          = 0x2\n\tFS_VERITY_METADATA_TYPE_MERKLE_TREE         = 0x1\n\tFS_VERITY_METADATA_TYPE_SIGNATURE           = 0x3\n\tFUSE_SUPER_MAGIC                            = 0x65735546\n\tFUTEXFS_SUPER_MAGIC                         = 0xbad1dea\n\tF_ADD_SEALS                                 = 0x409\n\tF_CREATED_QUERY                             = 0x404\n\tF_DUPFD                                     = 0x0\n\tF_DUPFD_CLOEXEC                             = 0x406\n\tF_DUPFD_QUERY                               = 0x403\n\tF_EXLCK                                     = 0x4\n\tF_GETFD                                     = 0x1\n\tF_GETFL                                     = 0x3\n\tF_GETLEASE                                  = 0x401\n\tF_GETOWN_EX                                 = 0x10\n\tF_GETPIPE_SZ                                = 0x408\n\tF_GETSIG                                    = 0xb\n\tF_GET_FILE_RW_HINT                          = 0x40d\n\tF_GET_RW_HINT                               = 0x40b\n\tF_GET_SEALS                                 = 0x40a\n\tF_LOCK                                      = 0x1\n\tF_NOTIFY                                    = 0x402\n\tF_OFD_GETLK                                 = 0x24\n\tF_OFD_SETLK                                 = 0x25\n\tF_OFD_SETLKW                                = 0x26\n\tF_OK                                        = 0x0\n\tF_SEAL_EXEC                                 = 0x20\n\tF_SEAL_FUTURE_WRITE                         = 0x10\n\tF_SEAL_GROW                                 = 0x4\n\tF_SEAL_SEAL                                 = 0x1\n\tF_SEAL_SHRINK                               = 0x2\n\tF_SEAL_WRITE                                = 0x8\n\tF_SETFD                                     = 0x2\n\tF_SETFL                                     = 0x4\n\tF_SETLEASE                                  = 0x400\n\tF_SETOWN_EX                                 = 0xf\n\tF_SETPIPE_SZ                                = 0x407\n\tF_SETSIG                                    = 0xa\n\tF_SET_FILE_RW_HINT                          = 0x40e\n\tF_SET_RW_HINT                               = 0x40c\n\tF_SHLCK                                     = 0x8\n\tF_TEST                                      = 0x3\n\tF_TLOCK                                     = 0x2\n\tF_ULOCK                                     = 0x0\n\tGENL_ADMIN_PERM                             = 0x1\n\tGENL_CMD_CAP_DO                             = 0x2\n\tGENL_CMD_CAP_DUMP                           = 0x4\n\tGENL_CMD_CAP_HASPOL                         = 0x8\n\tGENL_HDRLEN                                 = 0x4\n\tGENL_ID_CTRL                                = 0x10\n\tGENL_ID_PMCRAID                             = 0x12\n\tGENL_ID_VFS_DQUOT                           = 0x11\n\tGENL_MAX_ID                                 = 0x3ff\n\tGENL_MIN_ID                                 = 0x10\n\tGENL_NAMSIZ                                 = 0x10\n\tGENL_START_ALLOC                            = 0x13\n\tGENL_UNS_ADMIN_PERM                         = 0x10\n\tGRND_INSECURE                               = 0x4\n\tGRND_NONBLOCK                               = 0x1\n\tGRND_RANDOM                                 = 0x2\n\tHDIO_DRIVE_CMD                              = 0x31f\n\tHDIO_DRIVE_CMD_AEB                          = 0x31e\n\tHDIO_DRIVE_CMD_HDR_SIZE                     = 0x4\n\tHDIO_DRIVE_HOB_HDR_SIZE                     = 0x8\n\tHDIO_DRIVE_RESET                            = 0x31c\n\tHDIO_DRIVE_TASK                             = 0x31e\n\tHDIO_DRIVE_TASKFILE                         = 0x31d\n\tHDIO_DRIVE_TASK_HDR_SIZE                    = 0x8\n\tHDIO_GETGEO                                 = 0x301\n\tHDIO_GET_32BIT                              = 0x309\n\tHDIO_GET_ACOUSTIC                           = 0x30f\n\tHDIO_GET_ADDRESS                            = 0x310\n\tHDIO_GET_BUSSTATE                           = 0x31a\n\tHDIO_GET_DMA                                = 0x30b\n\tHDIO_GET_IDENTITY                           = 0x30d\n\tHDIO_GET_KEEPSETTINGS                       = 0x308\n\tHDIO_GET_MULTCOUNT                          = 0x304\n\tHDIO_GET_NICE                               = 0x30c\n\tHDIO_GET_NOWERR                             = 0x30a\n\tHDIO_GET_QDMA                               = 0x305\n\tHDIO_GET_UNMASKINTR                         = 0x302\n\tHDIO_GET_WCACHE                             = 0x30e\n\tHDIO_OBSOLETE_IDENTITY                      = 0x307\n\tHDIO_SCAN_HWIF                              = 0x328\n\tHDIO_SET_32BIT                              = 0x324\n\tHDIO_SET_ACOUSTIC                           = 0x32c\n\tHDIO_SET_ADDRESS                            = 0x32f\n\tHDIO_SET_BUSSTATE                           = 0x32d\n\tHDIO_SET_DMA                                = 0x326\n\tHDIO_SET_KEEPSETTINGS                       = 0x323\n\tHDIO_SET_MULTCOUNT                          = 0x321\n\tHDIO_SET_NICE                               = 0x329\n\tHDIO_SET_NOWERR                             = 0x325\n\tHDIO_SET_PIO_MODE                           = 0x327\n\tHDIO_SET_QDMA                               = 0x32e\n\tHDIO_SET_UNMASKINTR                         = 0x322\n\tHDIO_SET_WCACHE                             = 0x32b\n\tHDIO_SET_XFER                               = 0x306\n\tHDIO_TRISTATE_HWIF                          = 0x31b\n\tHDIO_UNREGISTER_HWIF                        = 0x32a\n\tHID_MAX_DESCRIPTOR_SIZE                     = 0x1000\n\tHOSTFS_SUPER_MAGIC                          = 0xc0ffee\n\tHPFS_SUPER_MAGIC                            = 0xf995e849\n\tHUGETLBFS_MAGIC                             = 0x958458f6\n\tIBSHIFT                                     = 0x10\n\tICRNL                                       = 0x100\n\tIFA_F_DADFAILED                             = 0x8\n\tIFA_F_DEPRECATED                            = 0x20\n\tIFA_F_HOMEADDRESS                           = 0x10\n\tIFA_F_MANAGETEMPADDR                        = 0x100\n\tIFA_F_MCAUTOJOIN                            = 0x400\n\tIFA_F_NODAD                                 = 0x2\n\tIFA_F_NOPREFIXROUTE                         = 0x200\n\tIFA_F_OPTIMISTIC                            = 0x4\n\tIFA_F_PERMANENT                             = 0x80\n\tIFA_F_SECONDARY                             = 0x1\n\tIFA_F_STABLE_PRIVACY                        = 0x800\n\tIFA_F_TEMPORARY                             = 0x1\n\tIFA_F_TENTATIVE                             = 0x40\n\tIFA_MAX                                     = 0xb\n\tIFF_ALLMULTI                                = 0x200\n\tIFF_ATTACH_QUEUE                            = 0x200\n\tIFF_AUTOMEDIA                               = 0x4000\n\tIFF_BROADCAST                               = 0x2\n\tIFF_DEBUG                                   = 0x4\n\tIFF_DETACH_QUEUE                            = 0x400\n\tIFF_DORMANT                                 = 0x20000\n\tIFF_DYNAMIC                                 = 0x8000\n\tIFF_ECHO                                    = 0x40000\n\tIFF_LOOPBACK                                = 0x8\n\tIFF_LOWER_UP                                = 0x10000\n\tIFF_MASTER                                  = 0x400\n\tIFF_MULTICAST                               = 0x1000\n\tIFF_MULTI_QUEUE                             = 0x100\n\tIFF_NAPI                                    = 0x10\n\tIFF_NAPI_FRAGS                              = 0x20\n\tIFF_NOARP                                   = 0x80\n\tIFF_NOFILTER                                = 0x1000\n\tIFF_NOTRAILERS                              = 0x20\n\tIFF_NO_CARRIER                              = 0x40\n\tIFF_NO_PI                                   = 0x1000\n\tIFF_ONE_QUEUE                               = 0x2000\n\tIFF_PERSIST                                 = 0x800\n\tIFF_POINTOPOINT                             = 0x10\n\tIFF_PORTSEL                                 = 0x2000\n\tIFF_PROMISC                                 = 0x100\n\tIFF_RUNNING                                 = 0x40\n\tIFF_SLAVE                                   = 0x800\n\tIFF_TAP                                     = 0x2\n\tIFF_TUN                                     = 0x1\n\tIFF_TUN_EXCL                                = 0x8000\n\tIFF_UP                                      = 0x1\n\tIFF_VNET_HDR                                = 0x4000\n\tIFF_VOLATILE                                = 0x70c5a\n\tIFNAMSIZ                                    = 0x10\n\tIGNBRK                                      = 0x1\n\tIGNCR                                       = 0x80\n\tIGNPAR                                      = 0x4\n\tIMAXBEL                                     = 0x2000\n\tINLCR                                       = 0x40\n\tINPCK                                       = 0x10\n\tIN_ACCESS                                   = 0x1\n\tIN_ALL_EVENTS                               = 0xfff\n\tIN_ATTRIB                                   = 0x4\n\tIN_CLASSA_HOST                              = 0xffffff\n\tIN_CLASSA_MAX                               = 0x80\n\tIN_CLASSA_NET                               = 0xff000000\n\tIN_CLASSA_NSHIFT                            = 0x18\n\tIN_CLASSB_HOST                              = 0xffff\n\tIN_CLASSB_MAX                               = 0x10000\n\tIN_CLASSB_NET                               = 0xffff0000\n\tIN_CLASSB_NSHIFT                            = 0x10\n\tIN_CLASSC_HOST                              = 0xff\n\tIN_CLASSC_NET                               = 0xffffff00\n\tIN_CLASSC_NSHIFT                            = 0x8\n\tIN_CLOSE                                    = 0x18\n\tIN_CLOSE_NOWRITE                            = 0x10\n\tIN_CLOSE_WRITE                              = 0x8\n\tIN_CREATE                                   = 0x100\n\tIN_DELETE                                   = 0x200\n\tIN_DELETE_SELF                              = 0x400\n\tIN_DONT_FOLLOW                              = 0x2000000\n\tIN_EXCL_UNLINK                              = 0x4000000\n\tIN_IGNORED                                  = 0x8000\n\tIN_ISDIR                                    = 0x40000000\n\tIN_LOOPBACKNET                              = 0x7f\n\tIN_MASK_ADD                                 = 0x20000000\n\tIN_MASK_CREATE                              = 0x10000000\n\tIN_MODIFY                                   = 0x2\n\tIN_MOVE                                     = 0xc0\n\tIN_MOVED_FROM                               = 0x40\n\tIN_MOVED_TO                                 = 0x80\n\tIN_MOVE_SELF                                = 0x800\n\tIN_ONESHOT                                  = 0x80000000\n\tIN_ONLYDIR                                  = 0x1000000\n\tIN_OPEN                                     = 0x20\n\tIN_Q_OVERFLOW                               = 0x4000\n\tIN_UNMOUNT                                  = 0x2000\n\tIPPROTO_AH                                  = 0x33\n\tIPPROTO_BEETPH                              = 0x5e\n\tIPPROTO_COMP                                = 0x6c\n\tIPPROTO_DCCP                                = 0x21\n\tIPPROTO_DSTOPTS                             = 0x3c\n\tIPPROTO_EGP                                 = 0x8\n\tIPPROTO_ENCAP                               = 0x62\n\tIPPROTO_ESP                                 = 0x32\n\tIPPROTO_ETHERNET                            = 0x8f\n\tIPPROTO_FRAGMENT                            = 0x2c\n\tIPPROTO_GRE                                 = 0x2f\n\tIPPROTO_HOPOPTS                             = 0x0\n\tIPPROTO_ICMP                                = 0x1\n\tIPPROTO_ICMPV6                              = 0x3a\n\tIPPROTO_IDP                                 = 0x16\n\tIPPROTO_IGMP                                = 0x2\n\tIPPROTO_IP                                  = 0x0\n\tIPPROTO_IPIP                                = 0x4\n\tIPPROTO_IPV6                                = 0x29\n\tIPPROTO_L2TP                                = 0x73\n\tIPPROTO_MH                                  = 0x87\n\tIPPROTO_MPLS                                = 0x89\n\tIPPROTO_MPTCP                               = 0x106\n\tIPPROTO_MTP                                 = 0x5c\n\tIPPROTO_NONE                                = 0x3b\n\tIPPROTO_PIM                                 = 0x67\n\tIPPROTO_PUP                                 = 0xc\n\tIPPROTO_RAW                                 = 0xff\n\tIPPROTO_ROUTING                             = 0x2b\n\tIPPROTO_RSVP                                = 0x2e\n\tIPPROTO_SCTP                                = 0x84\n\tIPPROTO_SMC                                 = 0x100\n\tIPPROTO_TCP                                 = 0x6\n\tIPPROTO_TP                                  = 0x1d\n\tIPPROTO_UDP                                 = 0x11\n\tIPPROTO_UDPLITE                             = 0x88\n\tIPV6_2292DSTOPTS                            = 0x4\n\tIPV6_2292HOPLIMIT                           = 0x8\n\tIPV6_2292HOPOPTS                            = 0x3\n\tIPV6_2292PKTINFO                            = 0x2\n\tIPV6_2292PKTOPTIONS                         = 0x6\n\tIPV6_2292RTHDR                              = 0x5\n\tIPV6_ADDRFORM                               = 0x1\n\tIPV6_ADDR_PREFERENCES                       = 0x48\n\tIPV6_ADD_MEMBERSHIP                         = 0x14\n\tIPV6_AUTHHDR                                = 0xa\n\tIPV6_AUTOFLOWLABEL                          = 0x46\n\tIPV6_CHECKSUM                               = 0x7\n\tIPV6_DONTFRAG                               = 0x3e\n\tIPV6_DROP_MEMBERSHIP                        = 0x15\n\tIPV6_DSTOPTS                                = 0x3b\n\tIPV6_FLOW                                   = 0x11\n\tIPV6_FREEBIND                               = 0x4e\n\tIPV6_HDRINCL                                = 0x24\n\tIPV6_HOPLIMIT                               = 0x34\n\tIPV6_HOPOPTS                                = 0x36\n\tIPV6_IPSEC_POLICY                           = 0x22\n\tIPV6_JOIN_ANYCAST                           = 0x1b\n\tIPV6_JOIN_GROUP                             = 0x14\n\tIPV6_LEAVE_ANYCAST                          = 0x1c\n\tIPV6_LEAVE_GROUP                            = 0x15\n\tIPV6_MINHOPCOUNT                            = 0x49\n\tIPV6_MTU                                    = 0x18\n\tIPV6_MTU_DISCOVER                           = 0x17\n\tIPV6_MULTICAST_ALL                          = 0x1d\n\tIPV6_MULTICAST_HOPS                         = 0x12\n\tIPV6_MULTICAST_IF                           = 0x11\n\tIPV6_MULTICAST_LOOP                         = 0x13\n\tIPV6_NEXTHOP                                = 0x9\n\tIPV6_ORIGDSTADDR                            = 0x4a\n\tIPV6_PATHMTU                                = 0x3d\n\tIPV6_PKTINFO                                = 0x32\n\tIPV6_PMTUDISC_DO                            = 0x2\n\tIPV6_PMTUDISC_DONT                          = 0x0\n\tIPV6_PMTUDISC_INTERFACE                     = 0x4\n\tIPV6_PMTUDISC_OMIT                          = 0x5\n\tIPV6_PMTUDISC_PROBE                         = 0x3\n\tIPV6_PMTUDISC_WANT                          = 0x1\n\tIPV6_RECVDSTOPTS                            = 0x3a\n\tIPV6_RECVERR                                = 0x19\n\tIPV6_RECVERR_RFC4884                        = 0x1f\n\tIPV6_RECVFRAGSIZE                           = 0x4d\n\tIPV6_RECVHOPLIMIT                           = 0x33\n\tIPV6_RECVHOPOPTS                            = 0x35\n\tIPV6_RECVORIGDSTADDR                        = 0x4a\n\tIPV6_RECVPATHMTU                            = 0x3c\n\tIPV6_RECVPKTINFO                            = 0x31\n\tIPV6_RECVRTHDR                              = 0x38\n\tIPV6_RECVTCLASS                             = 0x42\n\tIPV6_ROUTER_ALERT                           = 0x16\n\tIPV6_ROUTER_ALERT_ISOLATE                   = 0x1e\n\tIPV6_RTHDR                                  = 0x39\n\tIPV6_RTHDRDSTOPTS                           = 0x37\n\tIPV6_RTHDR_LOOSE                            = 0x0\n\tIPV6_RTHDR_STRICT                           = 0x1\n\tIPV6_RTHDR_TYPE_0                           = 0x0\n\tIPV6_RXDSTOPTS                              = 0x3b\n\tIPV6_RXHOPOPTS                              = 0x36\n\tIPV6_TCLASS                                 = 0x43\n\tIPV6_TRANSPARENT                            = 0x4b\n\tIPV6_UNICAST_HOPS                           = 0x10\n\tIPV6_UNICAST_IF                             = 0x4c\n\tIPV6_USER_FLOW                              = 0xe\n\tIPV6_V6ONLY                                 = 0x1a\n\tIPV6_VERSION                                = 0x60\n\tIPV6_VERSION_MASK                           = 0xf0\n\tIPV6_XFRM_POLICY                            = 0x23\n\tIP_ADD_MEMBERSHIP                           = 0x23\n\tIP_ADD_SOURCE_MEMBERSHIP                    = 0x27\n\tIP_BIND_ADDRESS_NO_PORT                     = 0x18\n\tIP_BLOCK_SOURCE                             = 0x26\n\tIP_CHECKSUM                                 = 0x17\n\tIP_DEFAULT_MULTICAST_LOOP                   = 0x1\n\tIP_DEFAULT_MULTICAST_TTL                    = 0x1\n\tIP_DF                                       = 0x4000\n\tIP_DROP_MEMBERSHIP                          = 0x24\n\tIP_DROP_SOURCE_MEMBERSHIP                   = 0x28\n\tIP_FREEBIND                                 = 0xf\n\tIP_HDRINCL                                  = 0x3\n\tIP_IPSEC_POLICY                             = 0x10\n\tIP_LOCAL_PORT_RANGE                         = 0x33\n\tIP_MAXPACKET                                = 0xffff\n\tIP_MAX_MEMBERSHIPS                          = 0x14\n\tIP_MF                                       = 0x2000\n\tIP_MINTTL                                   = 0x15\n\tIP_MSFILTER                                 = 0x29\n\tIP_MSS                                      = 0x240\n\tIP_MTU                                      = 0xe\n\tIP_MTU_DISCOVER                             = 0xa\n\tIP_MULTICAST_ALL                            = 0x31\n\tIP_MULTICAST_IF                             = 0x20\n\tIP_MULTICAST_LOOP                           = 0x22\n\tIP_MULTICAST_TTL                            = 0x21\n\tIP_NODEFRAG                                 = 0x16\n\tIP_OFFMASK                                  = 0x1fff\n\tIP_OPTIONS                                  = 0x4\n\tIP_ORIGDSTADDR                              = 0x14\n\tIP_PASSSEC                                  = 0x12\n\tIP_PKTINFO                                  = 0x8\n\tIP_PKTOPTIONS                               = 0x9\n\tIP_PMTUDISC                                 = 0xa\n\tIP_PMTUDISC_DO                              = 0x2\n\tIP_PMTUDISC_DONT                            = 0x0\n\tIP_PMTUDISC_INTERFACE                       = 0x4\n\tIP_PMTUDISC_OMIT                            = 0x5\n\tIP_PMTUDISC_PROBE                           = 0x3\n\tIP_PMTUDISC_WANT                            = 0x1\n\tIP_PROTOCOL                                 = 0x34\n\tIP_RECVERR                                  = 0xb\n\tIP_RECVERR_RFC4884                          = 0x1a\n\tIP_RECVFRAGSIZE                             = 0x19\n\tIP_RECVOPTS                                 = 0x6\n\tIP_RECVORIGDSTADDR                          = 0x14\n\tIP_RECVRETOPTS                              = 0x7\n\tIP_RECVTOS                                  = 0xd\n\tIP_RECVTTL                                  = 0xc\n\tIP_RETOPTS                                  = 0x7\n\tIP_RF                                       = 0x8000\n\tIP_ROUTER_ALERT                             = 0x5\n\tIP_TOS                                      = 0x1\n\tIP_TRANSPARENT                              = 0x13\n\tIP_TTL                                      = 0x2\n\tIP_UNBLOCK_SOURCE                           = 0x25\n\tIP_UNICAST_IF                               = 0x32\n\tIP_USER_FLOW                                = 0xd\n\tIP_XFRM_POLICY                              = 0x11\n\tISOFS_SUPER_MAGIC                           = 0x9660\n\tISTRIP                                      = 0x20\n\tITIMER_PROF                                 = 0x2\n\tITIMER_REAL                                 = 0x0\n\tITIMER_VIRTUAL                              = 0x1\n\tIUTF8                                       = 0x4000\n\tIXANY                                       = 0x800\n\tJFFS2_SUPER_MAGIC                           = 0x72b6\n\tKCMPROTO_CONNECTED                          = 0x0\n\tKCM_RECV_DISABLE                            = 0x1\n\tKEXEC_ARCH_386                              = 0x30000\n\tKEXEC_ARCH_68K                              = 0x40000\n\tKEXEC_ARCH_AARCH64                          = 0xb70000\n\tKEXEC_ARCH_ARM                              = 0x280000\n\tKEXEC_ARCH_DEFAULT                          = 0x0\n\tKEXEC_ARCH_IA_64                            = 0x320000\n\tKEXEC_ARCH_LOONGARCH                        = 0x1020000\n\tKEXEC_ARCH_MASK                             = 0xffff0000\n\tKEXEC_ARCH_MIPS                             = 0x80000\n\tKEXEC_ARCH_MIPS_LE                          = 0xa0000\n\tKEXEC_ARCH_PARISC                           = 0xf0000\n\tKEXEC_ARCH_PPC                              = 0x140000\n\tKEXEC_ARCH_PPC64                            = 0x150000\n\tKEXEC_ARCH_RISCV                            = 0xf30000\n\tKEXEC_ARCH_S390                             = 0x160000\n\tKEXEC_ARCH_SH                               = 0x2a0000\n\tKEXEC_ARCH_X86_64                           = 0x3e0000\n\tKEXEC_CRASH_HOTPLUG_SUPPORT                 = 0x8\n\tKEXEC_FILE_DEBUG                            = 0x8\n\tKEXEC_FILE_NO_INITRAMFS                     = 0x4\n\tKEXEC_FILE_ON_CRASH                         = 0x2\n\tKEXEC_FILE_UNLOAD                           = 0x1\n\tKEXEC_ON_CRASH                              = 0x1\n\tKEXEC_PRESERVE_CONTEXT                      = 0x2\n\tKEXEC_SEGMENT_MAX                           = 0x10\n\tKEXEC_UPDATE_ELFCOREHDR                     = 0x4\n\tKEYCTL_ASSUME_AUTHORITY                     = 0x10\n\tKEYCTL_CAPABILITIES                         = 0x1f\n\tKEYCTL_CAPS0_BIG_KEY                        = 0x10\n\tKEYCTL_CAPS0_CAPABILITIES                   = 0x1\n\tKEYCTL_CAPS0_DIFFIE_HELLMAN                 = 0x4\n\tKEYCTL_CAPS0_INVALIDATE                     = 0x20\n\tKEYCTL_CAPS0_MOVE                           = 0x80\n\tKEYCTL_CAPS0_PERSISTENT_KEYRINGS            = 0x2\n\tKEYCTL_CAPS0_PUBLIC_KEY                     = 0x8\n\tKEYCTL_CAPS0_RESTRICT_KEYRING               = 0x40\n\tKEYCTL_CAPS1_NOTIFICATIONS                  = 0x4\n\tKEYCTL_CAPS1_NS_KEYRING_NAME                = 0x1\n\tKEYCTL_CAPS1_NS_KEY_TAG                     = 0x2\n\tKEYCTL_CHOWN                                = 0x4\n\tKEYCTL_CLEAR                                = 0x7\n\tKEYCTL_DESCRIBE                             = 0x6\n\tKEYCTL_DH_COMPUTE                           = 0x17\n\tKEYCTL_GET_KEYRING_ID                       = 0x0\n\tKEYCTL_GET_PERSISTENT                       = 0x16\n\tKEYCTL_GET_SECURITY                         = 0x11\n\tKEYCTL_INSTANTIATE                          = 0xc\n\tKEYCTL_INSTANTIATE_IOV                      = 0x14\n\tKEYCTL_INVALIDATE                           = 0x15\n\tKEYCTL_JOIN_SESSION_KEYRING                 = 0x1\n\tKEYCTL_LINK                                 = 0x8\n\tKEYCTL_MOVE                                 = 0x1e\n\tKEYCTL_MOVE_EXCL                            = 0x1\n\tKEYCTL_NEGATE                               = 0xd\n\tKEYCTL_PKEY_DECRYPT                         = 0x1a\n\tKEYCTL_PKEY_ENCRYPT                         = 0x19\n\tKEYCTL_PKEY_QUERY                           = 0x18\n\tKEYCTL_PKEY_SIGN                            = 0x1b\n\tKEYCTL_PKEY_VERIFY                          = 0x1c\n\tKEYCTL_READ                                 = 0xb\n\tKEYCTL_REJECT                               = 0x13\n\tKEYCTL_RESTRICT_KEYRING                     = 0x1d\n\tKEYCTL_REVOKE                               = 0x3\n\tKEYCTL_SEARCH                               = 0xa\n\tKEYCTL_SESSION_TO_PARENT                    = 0x12\n\tKEYCTL_SETPERM                              = 0x5\n\tKEYCTL_SET_REQKEY_KEYRING                   = 0xe\n\tKEYCTL_SET_TIMEOUT                          = 0xf\n\tKEYCTL_SUPPORTS_DECRYPT                     = 0x2\n\tKEYCTL_SUPPORTS_ENCRYPT                     = 0x1\n\tKEYCTL_SUPPORTS_SIGN                        = 0x4\n\tKEYCTL_SUPPORTS_VERIFY                      = 0x8\n\tKEYCTL_UNLINK                               = 0x9\n\tKEYCTL_UPDATE                               = 0x2\n\tKEYCTL_WATCH_KEY                            = 0x20\n\tKEY_REQKEY_DEFL_DEFAULT                     = 0x0\n\tKEY_REQKEY_DEFL_GROUP_KEYRING               = 0x6\n\tKEY_REQKEY_DEFL_NO_CHANGE                   = -0x1\n\tKEY_REQKEY_DEFL_PROCESS_KEYRING             = 0x2\n\tKEY_REQKEY_DEFL_REQUESTOR_KEYRING           = 0x7\n\tKEY_REQKEY_DEFL_SESSION_KEYRING             = 0x3\n\tKEY_REQKEY_DEFL_THREAD_KEYRING              = 0x1\n\tKEY_REQKEY_DEFL_USER_KEYRING                = 0x4\n\tKEY_REQKEY_DEFL_USER_SESSION_KEYRING        = 0x5\n\tKEY_SPEC_GROUP_KEYRING                      = -0x6\n\tKEY_SPEC_PROCESS_KEYRING                    = -0x2\n\tKEY_SPEC_REQKEY_AUTH_KEY                    = -0x7\n\tKEY_SPEC_REQUESTOR_KEYRING                  = -0x8\n\tKEY_SPEC_SESSION_KEYRING                    = -0x3\n\tKEY_SPEC_THREAD_KEYRING                     = -0x1\n\tKEY_SPEC_USER_KEYRING                       = -0x4\n\tKEY_SPEC_USER_SESSION_KEYRING               = -0x5\n\tLANDLOCK_ACCESS_FS_EXECUTE                  = 0x1\n\tLANDLOCK_ACCESS_FS_IOCTL_DEV                = 0x8000\n\tLANDLOCK_ACCESS_FS_MAKE_BLOCK               = 0x800\n\tLANDLOCK_ACCESS_FS_MAKE_CHAR                = 0x40\n\tLANDLOCK_ACCESS_FS_MAKE_DIR                 = 0x80\n\tLANDLOCK_ACCESS_FS_MAKE_FIFO                = 0x400\n\tLANDLOCK_ACCESS_FS_MAKE_REG                 = 0x100\n\tLANDLOCK_ACCESS_FS_MAKE_SOCK                = 0x200\n\tLANDLOCK_ACCESS_FS_MAKE_SYM                 = 0x1000\n\tLANDLOCK_ACCESS_FS_READ_DIR                 = 0x8\n\tLANDLOCK_ACCESS_FS_READ_FILE                = 0x4\n\tLANDLOCK_ACCESS_FS_REFER                    = 0x2000\n\tLANDLOCK_ACCESS_FS_REMOVE_DIR               = 0x10\n\tLANDLOCK_ACCESS_FS_REMOVE_FILE              = 0x20\n\tLANDLOCK_ACCESS_FS_TRUNCATE                 = 0x4000\n\tLANDLOCK_ACCESS_FS_WRITE_FILE               = 0x2\n\tLANDLOCK_ACCESS_NET_BIND_TCP                = 0x1\n\tLANDLOCK_ACCESS_NET_CONNECT_TCP             = 0x2\n\tLANDLOCK_CREATE_RULESET_VERSION             = 0x1\n\tLANDLOCK_SCOPE_ABSTRACT_UNIX_SOCKET         = 0x1\n\tLANDLOCK_SCOPE_SIGNAL                       = 0x2\n\tLINUX_REBOOT_CMD_CAD_OFF                    = 0x0\n\tLINUX_REBOOT_CMD_CAD_ON                     = 0x89abcdef\n\tLINUX_REBOOT_CMD_HALT                       = 0xcdef0123\n\tLINUX_REBOOT_CMD_KEXEC                      = 0x45584543\n\tLINUX_REBOOT_CMD_POWER_OFF                  = 0x4321fedc\n\tLINUX_REBOOT_CMD_RESTART                    = 0x1234567\n\tLINUX_REBOOT_CMD_RESTART2                   = 0xa1b2c3d4\n\tLINUX_REBOOT_CMD_SW_SUSPEND                 = 0xd000fce2\n\tLINUX_REBOOT_MAGIC1                         = 0xfee1dead\n\tLINUX_REBOOT_MAGIC2                         = 0x28121969\n\tLOCK_EX                                     = 0x2\n\tLOCK_NB                                     = 0x4\n\tLOCK_SH                                     = 0x1\n\tLOCK_UN                                     = 0x8\n\tLOOP_CLR_FD                                 = 0x4c01\n\tLOOP_CONFIGURE                              = 0x4c0a\n\tLOOP_CTL_ADD                                = 0x4c80\n\tLOOP_CTL_GET_FREE                           = 0x4c82\n\tLOOP_CTL_REMOVE                             = 0x4c81\n\tLOOP_GET_STATUS                             = 0x4c03\n\tLOOP_GET_STATUS64                           = 0x4c05\n\tLOOP_SET_BLOCK_SIZE                         = 0x4c09\n\tLOOP_SET_CAPACITY                           = 0x4c07\n\tLOOP_SET_DIRECT_IO                          = 0x4c08\n\tLOOP_SET_FD                                 = 0x4c00\n\tLOOP_SET_STATUS                             = 0x4c02\n\tLOOP_SET_STATUS64                           = 0x4c04\n\tLOOP_SET_STATUS_CLEARABLE_FLAGS             = 0x4\n\tLOOP_SET_STATUS_SETTABLE_FLAGS              = 0xc\n\tLO_KEY_SIZE                                 = 0x20\n\tLO_NAME_SIZE                                = 0x40\n\tLWTUNNEL_IP6_MAX                            = 0x8\n\tLWTUNNEL_IP_MAX                             = 0x8\n\tLWTUNNEL_IP_OPTS_MAX                        = 0x3\n\tLWTUNNEL_IP_OPT_ERSPAN_MAX                  = 0x4\n\tLWTUNNEL_IP_OPT_GENEVE_MAX                  = 0x3\n\tLWTUNNEL_IP_OPT_VXLAN_MAX                   = 0x1\n\tMADV_COLD                                   = 0x14\n\tMADV_COLLAPSE                               = 0x19\n\tMADV_DODUMP                                 = 0x11\n\tMADV_DOFORK                                 = 0xb\n\tMADV_DONTDUMP                               = 0x10\n\tMADV_DONTFORK                               = 0xa\n\tMADV_DONTNEED                               = 0x4\n\tMADV_DONTNEED_LOCKED                        = 0x18\n\tMADV_FREE                                   = 0x8\n\tMADV_HUGEPAGE                               = 0xe\n\tMADV_HWPOISON                               = 0x64\n\tMADV_KEEPONFORK                             = 0x13\n\tMADV_MERGEABLE                              = 0xc\n\tMADV_NOHUGEPAGE                             = 0xf\n\tMADV_NORMAL                                 = 0x0\n\tMADV_PAGEOUT                                = 0x15\n\tMADV_POPULATE_READ                          = 0x16\n\tMADV_POPULATE_WRITE                         = 0x17\n\tMADV_RANDOM                                 = 0x1\n\tMADV_REMOVE                                 = 0x9\n\tMADV_SEQUENTIAL                             = 0x2\n\tMADV_UNMERGEABLE                            = 0xd\n\tMADV_WILLNEED                               = 0x3\n\tMADV_WIPEONFORK                             = 0x12\n\tMAP_DROPPABLE                               = 0x8\n\tMAP_FILE                                    = 0x0\n\tMAP_FIXED                                   = 0x10\n\tMAP_FIXED_NOREPLACE                         = 0x100000\n\tMAP_HUGE_16GB                               = 0x88000000\n\tMAP_HUGE_16KB                               = 0x38000000\n\tMAP_HUGE_16MB                               = 0x60000000\n\tMAP_HUGE_1GB                                = 0x78000000\n\tMAP_HUGE_1MB                                = 0x50000000\n\tMAP_HUGE_256MB                              = 0x70000000\n\tMAP_HUGE_2GB                                = 0x7c000000\n\tMAP_HUGE_2MB                                = 0x54000000\n\tMAP_HUGE_32MB                               = 0x64000000\n\tMAP_HUGE_512KB                              = 0x4c000000\n\tMAP_HUGE_512MB                              = 0x74000000\n\tMAP_HUGE_64KB                               = 0x40000000\n\tMAP_HUGE_8MB                                = 0x5c000000\n\tMAP_HUGE_MASK                               = 0x3f\n\tMAP_HUGE_SHIFT                              = 0x1a\n\tMAP_PRIVATE                                 = 0x2\n\tMAP_SHARED                                  = 0x1\n\tMAP_SHARED_VALIDATE                         = 0x3\n\tMAP_TYPE                                    = 0xf\n\tMCAST_BLOCK_SOURCE                          = 0x2b\n\tMCAST_EXCLUDE                               = 0x0\n\tMCAST_INCLUDE                               = 0x1\n\tMCAST_JOIN_GROUP                            = 0x2a\n\tMCAST_JOIN_SOURCE_GROUP                     = 0x2e\n\tMCAST_LEAVE_GROUP                           = 0x2d\n\tMCAST_LEAVE_SOURCE_GROUP                    = 0x2f\n\tMCAST_MSFILTER                              = 0x30\n\tMCAST_UNBLOCK_SOURCE                        = 0x2c\n\tMEMGETREGIONINFO                            = 0xc0104d08\n\tMEMREADOOB64                                = 0xc0184d16\n\tMEMWRITE                                    = 0xc0304d18\n\tMEMWRITEOOB64                               = 0xc0184d15\n\tMFD_ALLOW_SEALING                           = 0x2\n\tMFD_CLOEXEC                                 = 0x1\n\tMFD_EXEC                                    = 0x10\n\tMFD_HUGETLB                                 = 0x4\n\tMFD_HUGE_16GB                               = 0x88000000\n\tMFD_HUGE_16MB                               = 0x60000000\n\tMFD_HUGE_1GB                                = 0x78000000\n\tMFD_HUGE_1MB                                = 0x50000000\n\tMFD_HUGE_256MB                              = 0x70000000\n\tMFD_HUGE_2GB                                = 0x7c000000\n\tMFD_HUGE_2MB                                = 0x54000000\n\tMFD_HUGE_32MB                               = 0x64000000\n\tMFD_HUGE_512KB                              = 0x4c000000\n\tMFD_HUGE_512MB                              = 0x74000000\n\tMFD_HUGE_64KB                               = 0x40000000\n\tMFD_HUGE_8MB                                = 0x5c000000\n\tMFD_HUGE_MASK                               = 0x3f\n\tMFD_HUGE_SHIFT                              = 0x1a\n\tMFD_NOEXEC_SEAL                             = 0x8\n\tMINIX2_SUPER_MAGIC                          = 0x2468\n\tMINIX2_SUPER_MAGIC2                         = 0x2478\n\tMINIX3_SUPER_MAGIC                          = 0x4d5a\n\tMINIX_SUPER_MAGIC                           = 0x137f\n\tMINIX_SUPER_MAGIC2                          = 0x138f\n\tMNT_DETACH                                  = 0x2\n\tMNT_EXPIRE                                  = 0x4\n\tMNT_FORCE                                   = 0x1\n\tMNT_ID_REQ_SIZE_VER0                        = 0x18\n\tMNT_ID_REQ_SIZE_VER1                        = 0x20\n\tMNT_NS_INFO_SIZE_VER0                       = 0x10\n\tMODULE_INIT_COMPRESSED_FILE                 = 0x4\n\tMODULE_INIT_IGNORE_MODVERSIONS              = 0x1\n\tMODULE_INIT_IGNORE_VERMAGIC                 = 0x2\n\tMOUNT_ATTR_IDMAP                            = 0x100000\n\tMOUNT_ATTR_NOATIME                          = 0x10\n\tMOUNT_ATTR_NODEV                            = 0x4\n\tMOUNT_ATTR_NODIRATIME                       = 0x80\n\tMOUNT_ATTR_NOEXEC                           = 0x8\n\tMOUNT_ATTR_NOSUID                           = 0x2\n\tMOUNT_ATTR_NOSYMFOLLOW                      = 0x200000\n\tMOUNT_ATTR_RDONLY                           = 0x1\n\tMOUNT_ATTR_RELATIME                         = 0x0\n\tMOUNT_ATTR_SIZE_VER0                        = 0x20\n\tMOUNT_ATTR_STRICTATIME                      = 0x20\n\tMOUNT_ATTR__ATIME                           = 0x70\n\tMREMAP_DONTUNMAP                            = 0x4\n\tMREMAP_FIXED                                = 0x2\n\tMREMAP_MAYMOVE                              = 0x1\n\tMSDOS_SUPER_MAGIC                           = 0x4d44\n\tMSG_BATCH                                   = 0x40000\n\tMSG_CMSG_CLOEXEC                            = 0x40000000\n\tMSG_CONFIRM                                 = 0x800\n\tMSG_CTRUNC                                  = 0x8\n\tMSG_DONTROUTE                               = 0x4\n\tMSG_DONTWAIT                                = 0x40\n\tMSG_EOR                                     = 0x80\n\tMSG_ERRQUEUE                                = 0x2000\n\tMSG_FASTOPEN                                = 0x20000000\n\tMSG_FIN                                     = 0x200\n\tMSG_MORE                                    = 0x8000\n\tMSG_NOSIGNAL                                = 0x4000\n\tMSG_OOB                                     = 0x1\n\tMSG_PEEK                                    = 0x2\n\tMSG_PROXY                                   = 0x10\n\tMSG_RST                                     = 0x1000\n\tMSG_SOCK_DEVMEM                             = 0x2000000\n\tMSG_SYN                                     = 0x400\n\tMSG_TRUNC                                   = 0x20\n\tMSG_TRYHARD                                 = 0x4\n\tMSG_WAITALL                                 = 0x100\n\tMSG_WAITFORONE                              = 0x10000\n\tMSG_ZEROCOPY                                = 0x4000000\n\tMS_ACTIVE                                   = 0x40000000\n\tMS_ASYNC                                    = 0x1\n\tMS_BIND                                     = 0x1000\n\tMS_BORN                                     = 0x20000000\n\tMS_DIRSYNC                                  = 0x80\n\tMS_INVALIDATE                               = 0x2\n\tMS_I_VERSION                                = 0x800000\n\tMS_KERNMOUNT                                = 0x400000\n\tMS_LAZYTIME                                 = 0x2000000\n\tMS_MANDLOCK                                 = 0x40\n\tMS_MGC_MSK                                  = 0xffff0000\n\tMS_MGC_VAL                                  = 0xc0ed0000\n\tMS_MOVE                                     = 0x2000\n\tMS_NOATIME                                  = 0x400\n\tMS_NODEV                                    = 0x4\n\tMS_NODIRATIME                               = 0x800\n\tMS_NOEXEC                                   = 0x8\n\tMS_NOREMOTELOCK                             = 0x8000000\n\tMS_NOSEC                                    = 0x10000000\n\tMS_NOSUID                                   = 0x2\n\tMS_NOSYMFOLLOW                              = 0x100\n\tMS_NOUSER                                   = -0x80000000\n\tMS_POSIXACL                                 = 0x10000\n\tMS_PRIVATE                                  = 0x40000\n\tMS_RDONLY                                   = 0x1\n\tMS_REC                                      = 0x4000\n\tMS_RELATIME                                 = 0x200000\n\tMS_REMOUNT                                  = 0x20\n\tMS_RMT_MASK                                 = 0x2800051\n\tMS_SHARED                                   = 0x100000\n\tMS_SILENT                                   = 0x8000\n\tMS_SLAVE                                    = 0x80000\n\tMS_STRICTATIME                              = 0x1000000\n\tMS_SUBMOUNT                                 = 0x4000000\n\tMS_SYNC                                     = 0x4\n\tMS_SYNCHRONOUS                              = 0x10\n\tMS_UNBINDABLE                               = 0x20000\n\tMS_VERBOSE                                  = 0x8000\n\tMTD_ABSENT                                  = 0x0\n\tMTD_BIT_WRITEABLE                           = 0x800\n\tMTD_CAP_NANDFLASH                           = 0x400\n\tMTD_CAP_NORFLASH                            = 0xc00\n\tMTD_CAP_NVRAM                               = 0x1c00\n\tMTD_CAP_RAM                                 = 0x1c00\n\tMTD_CAP_ROM                                 = 0x0\n\tMTD_DATAFLASH                               = 0x6\n\tMTD_INODE_FS_MAGIC                          = 0x11307854\n\tMTD_MAX_ECCPOS_ENTRIES                      = 0x40\n\tMTD_MAX_OOBFREE_ENTRIES                     = 0x8\n\tMTD_MLCNANDFLASH                            = 0x8\n\tMTD_NANDECC_AUTOPLACE                       = 0x2\n\tMTD_NANDECC_AUTOPL_USR                      = 0x4\n\tMTD_NANDECC_OFF                             = 0x0\n\tMTD_NANDECC_PLACE                           = 0x1\n\tMTD_NANDECC_PLACEONLY                       = 0x3\n\tMTD_NANDFLASH                               = 0x4\n\tMTD_NORFLASH                                = 0x3\n\tMTD_NO_ERASE                                = 0x1000\n\tMTD_OTP_FACTORY                             = 0x1\n\tMTD_OTP_OFF                                 = 0x0\n\tMTD_OTP_USER                                = 0x2\n\tMTD_POWERUP_LOCK                            = 0x2000\n\tMTD_RAM                                     = 0x1\n\tMTD_ROM                                     = 0x2\n\tMTD_SLC_ON_MLC_EMULATION                    = 0x4000\n\tMTD_UBIVOLUME                               = 0x7\n\tMTD_WRITEABLE                               = 0x400\n\tNAME_MAX                                    = 0xff\n\tNCP_SUPER_MAGIC                             = 0x564c\n\tNETLINK_ADD_MEMBERSHIP                      = 0x1\n\tNETLINK_AUDIT                               = 0x9\n\tNETLINK_BROADCAST_ERROR                     = 0x4\n\tNETLINK_CAP_ACK                             = 0xa\n\tNETLINK_CONNECTOR                           = 0xb\n\tNETLINK_CRYPTO                              = 0x15\n\tNETLINK_DNRTMSG                             = 0xe\n\tNETLINK_DROP_MEMBERSHIP                     = 0x2\n\tNETLINK_ECRYPTFS                            = 0x13\n\tNETLINK_EXT_ACK                             = 0xb\n\tNETLINK_FIB_LOOKUP                          = 0xa\n\tNETLINK_FIREWALL                            = 0x3\n\tNETLINK_GENERIC                             = 0x10\n\tNETLINK_GET_STRICT_CHK                      = 0xc\n\tNETLINK_INET_DIAG                           = 0x4\n\tNETLINK_IP6_FW                              = 0xd\n\tNETLINK_ISCSI                               = 0x8\n\tNETLINK_KOBJECT_UEVENT                      = 0xf\n\tNETLINK_LISTEN_ALL_NSID                     = 0x8\n\tNETLINK_LIST_MEMBERSHIPS                    = 0x9\n\tNETLINK_NETFILTER                           = 0xc\n\tNETLINK_NFLOG                               = 0x5\n\tNETLINK_NO_ENOBUFS                          = 0x5\n\tNETLINK_PKTINFO                             = 0x3\n\tNETLINK_RDMA                                = 0x14\n\tNETLINK_ROUTE                               = 0x0\n\tNETLINK_RX_RING                             = 0x6\n\tNETLINK_SCSITRANSPORT                       = 0x12\n\tNETLINK_SELINUX                             = 0x7\n\tNETLINK_SMC                                 = 0x16\n\tNETLINK_SOCK_DIAG                           = 0x4\n\tNETLINK_TX_RING                             = 0x7\n\tNETLINK_UNUSED                              = 0x1\n\tNETLINK_USERSOCK                            = 0x2\n\tNETLINK_XFRM                                = 0x6\n\tNETNSA_MAX                                  = 0x5\n\tNETNSA_NSID_NOT_ASSIGNED                    = -0x1\n\tNFC_ATR_REQ_GB_MAXSIZE                      = 0x30\n\tNFC_ATR_REQ_MAXSIZE                         = 0x40\n\tNFC_ATR_RES_GB_MAXSIZE                      = 0x2f\n\tNFC_ATR_RES_MAXSIZE                         = 0x40\n\tNFC_ATS_MAXSIZE                             = 0x14\n\tNFC_COMM_ACTIVE                             = 0x0\n\tNFC_COMM_PASSIVE                            = 0x1\n\tNFC_DEVICE_NAME_MAXSIZE                     = 0x8\n\tNFC_DIRECTION_RX                            = 0x0\n\tNFC_DIRECTION_TX                            = 0x1\n\tNFC_FIRMWARE_NAME_MAXSIZE                   = 0x20\n\tNFC_GB_MAXSIZE                              = 0x30\n\tNFC_GENL_MCAST_EVENT_NAME                   = \"events\"\n\tNFC_GENL_NAME                               = \"nfc\"\n\tNFC_GENL_VERSION                            = 0x1\n\tNFC_HEADER_SIZE                             = 0x1\n\tNFC_ISO15693_UID_MAXSIZE                    = 0x8\n\tNFC_LLCP_MAX_SERVICE_NAME                   = 0x3f\n\tNFC_LLCP_MIUX                               = 0x1\n\tNFC_LLCP_REMOTE_LTO                         = 0x3\n\tNFC_LLCP_REMOTE_MIU                         = 0x2\n\tNFC_LLCP_REMOTE_RW                          = 0x4\n\tNFC_LLCP_RW                                 = 0x0\n\tNFC_NFCID1_MAXSIZE                          = 0xa\n\tNFC_NFCID2_MAXSIZE                          = 0x8\n\tNFC_NFCID3_MAXSIZE                          = 0xa\n\tNFC_PROTO_FELICA                            = 0x3\n\tNFC_PROTO_FELICA_MASK                       = 0x8\n\tNFC_PROTO_ISO14443                          = 0x4\n\tNFC_PROTO_ISO14443_B                        = 0x6\n\tNFC_PROTO_ISO14443_B_MASK                   = 0x40\n\tNFC_PROTO_ISO14443_MASK                     = 0x10\n\tNFC_PROTO_ISO15693                          = 0x7\n\tNFC_PROTO_ISO15693_MASK                     = 0x80\n\tNFC_PROTO_JEWEL                             = 0x1\n\tNFC_PROTO_JEWEL_MASK                        = 0x2\n\tNFC_PROTO_MAX                               = 0x8\n\tNFC_PROTO_MIFARE                            = 0x2\n\tNFC_PROTO_MIFARE_MASK                       = 0x4\n\tNFC_PROTO_NFC_DEP                           = 0x5\n\tNFC_PROTO_NFC_DEP_MASK                      = 0x20\n\tNFC_RAW_HEADER_SIZE                         = 0x2\n\tNFC_RF_INITIATOR                            = 0x0\n\tNFC_RF_NONE                                 = 0x2\n\tNFC_RF_TARGET                               = 0x1\n\tNFC_SENSB_RES_MAXSIZE                       = 0xc\n\tNFC_SENSF_RES_MAXSIZE                       = 0x12\n\tNFC_SE_DISABLED                             = 0x0\n\tNFC_SE_EMBEDDED                             = 0x2\n\tNFC_SE_ENABLED                              = 0x1\n\tNFC_SE_UICC                                 = 0x1\n\tNFC_SOCKPROTO_LLCP                          = 0x1\n\tNFC_SOCKPROTO_MAX                           = 0x2\n\tNFC_SOCKPROTO_RAW                           = 0x0\n\tNFNETLINK_V0                                = 0x0\n\tNFNLGRP_ACCT_QUOTA                          = 0x8\n\tNFNLGRP_CONNTRACK_DESTROY                   = 0x3\n\tNFNLGRP_CONNTRACK_EXP_DESTROY               = 0x6\n\tNFNLGRP_CONNTRACK_EXP_NEW                   = 0x4\n\tNFNLGRP_CONNTRACK_EXP_UPDATE                = 0x5\n\tNFNLGRP_CONNTRACK_NEW                       = 0x1\n\tNFNLGRP_CONNTRACK_UPDATE                    = 0x2\n\tNFNLGRP_MAX                                 = 0x9\n\tNFNLGRP_NFTABLES                            = 0x7\n\tNFNLGRP_NFTRACE                             = 0x9\n\tNFNLGRP_NONE                                = 0x0\n\tNFNL_BATCH_MAX                              = 0x1\n\tNFNL_MSG_BATCH_BEGIN                        = 0x10\n\tNFNL_MSG_BATCH_END                          = 0x11\n\tNFNL_NFA_NEST                               = 0x8000\n\tNFNL_SUBSYS_ACCT                            = 0x7\n\tNFNL_SUBSYS_COUNT                           = 0xd\n\tNFNL_SUBSYS_CTHELPER                        = 0x9\n\tNFNL_SUBSYS_CTNETLINK                       = 0x1\n\tNFNL_SUBSYS_CTNETLINK_EXP                   = 0x2\n\tNFNL_SUBSYS_CTNETLINK_TIMEOUT               = 0x8\n\tNFNL_SUBSYS_HOOK                            = 0xc\n\tNFNL_SUBSYS_IPSET                           = 0x6\n\tNFNL_SUBSYS_NFTABLES                        = 0xa\n\tNFNL_SUBSYS_NFT_COMPAT                      = 0xb\n\tNFNL_SUBSYS_NONE                            = 0x0\n\tNFNL_SUBSYS_OSF                             = 0x5\n\tNFNL_SUBSYS_QUEUE                           = 0x3\n\tNFNL_SUBSYS_ULOG                            = 0x4\n\tNFS_SUPER_MAGIC                             = 0x6969\n\tNFT_BITWISE_BOOL                            = 0x0\n\tNFT_CHAIN_FLAGS                             = 0x7\n\tNFT_CHAIN_MAXNAMELEN                        = 0x100\n\tNFT_CT_MAX                                  = 0x17\n\tNFT_DATA_RESERVED_MASK                      = 0xffffff00\n\tNFT_DATA_VALUE_MAXLEN                       = 0x40\n\tNFT_EXTHDR_OP_MAX                           = 0x4\n\tNFT_FIB_RESULT_MAX                          = 0x3\n\tNFT_INNER_MASK                              = 0xf\n\tNFT_LOGLEVEL_MAX                            = 0x8\n\tNFT_NAME_MAXLEN                             = 0x100\n\tNFT_NG_MAX                                  = 0x1\n\tNFT_OBJECT_CONNLIMIT                        = 0x5\n\tNFT_OBJECT_COUNTER                          = 0x1\n\tNFT_OBJECT_CT_EXPECT                        = 0x9\n\tNFT_OBJECT_CT_HELPER                        = 0x3\n\tNFT_OBJECT_CT_TIMEOUT                       = 0x7\n\tNFT_OBJECT_LIMIT                            = 0x4\n\tNFT_OBJECT_MAX                              = 0xa\n\tNFT_OBJECT_QUOTA                            = 0x2\n\tNFT_OBJECT_SECMARK                          = 0x8\n\tNFT_OBJECT_SYNPROXY                         = 0xa\n\tNFT_OBJECT_TUNNEL                           = 0x6\n\tNFT_OBJECT_UNSPEC                           = 0x0\n\tNFT_OBJ_MAXNAMELEN                          = 0x100\n\tNFT_OSF_MAXGENRELEN                         = 0x10\n\tNFT_QUEUE_FLAG_BYPASS                       = 0x1\n\tNFT_QUEUE_FLAG_CPU_FANOUT                   = 0x2\n\tNFT_QUEUE_FLAG_MASK                         = 0x3\n\tNFT_REG32_COUNT                             = 0x10\n\tNFT_REG32_SIZE                              = 0x4\n\tNFT_REG_MAX                                 = 0x4\n\tNFT_REG_SIZE                                = 0x10\n\tNFT_REJECT_ICMPX_MAX                        = 0x3\n\tNFT_RT_MAX                                  = 0x4\n\tNFT_SECMARK_CTX_MAXLEN                      = 0x1000\n\tNFT_SET_MAXNAMELEN                          = 0x100\n\tNFT_SOCKET_MAX                              = 0x3\n\tNFT_TABLE_F_MASK                            = 0x7\n\tNFT_TABLE_MAXNAMELEN                        = 0x100\n\tNFT_TRACETYPE_MAX                           = 0x3\n\tNFT_TUNNEL_F_MASK                           = 0x7\n\tNFT_TUNNEL_MAX                              = 0x1\n\tNFT_TUNNEL_MODE_MAX                         = 0x2\n\tNFT_USERDATA_MAXLEN                         = 0x100\n\tNFT_XFRM_KEY_MAX                            = 0x6\n\tNF_NAT_RANGE_MAP_IPS                        = 0x1\n\tNF_NAT_RANGE_MASK                           = 0x7f\n\tNF_NAT_RANGE_NETMAP                         = 0x40\n\tNF_NAT_RANGE_PERSISTENT                     = 0x8\n\tNF_NAT_RANGE_PROTO_OFFSET                   = 0x20\n\tNF_NAT_RANGE_PROTO_RANDOM                   = 0x4\n\tNF_NAT_RANGE_PROTO_RANDOM_ALL               = 0x14\n\tNF_NAT_RANGE_PROTO_RANDOM_FULLY             = 0x10\n\tNF_NAT_RANGE_PROTO_SPECIFIED                = 0x2\n\tNILFS_SUPER_MAGIC                           = 0x3434\n\tNL0                                         = 0x0\n\tNL1                                         = 0x100\n\tNLA_ALIGNTO                                 = 0x4\n\tNLA_F_NESTED                                = 0x8000\n\tNLA_F_NET_BYTEORDER                         = 0x4000\n\tNLA_HDRLEN                                  = 0x4\n\tNLMSG_ALIGNTO                               = 0x4\n\tNLMSG_DONE                                  = 0x3\n\tNLMSG_ERROR                                 = 0x2\n\tNLMSG_HDRLEN                                = 0x10\n\tNLMSG_MIN_TYPE                              = 0x10\n\tNLMSG_NOOP                                  = 0x1\n\tNLMSG_OVERRUN                               = 0x4\n\tNLM_F_ACK                                   = 0x4\n\tNLM_F_ACK_TLVS                              = 0x200\n\tNLM_F_APPEND                                = 0x800\n\tNLM_F_ATOMIC                                = 0x400\n\tNLM_F_BULK                                  = 0x200\n\tNLM_F_CAPPED                                = 0x100\n\tNLM_F_CREATE                                = 0x400\n\tNLM_F_DUMP                                  = 0x300\n\tNLM_F_DUMP_FILTERED                         = 0x20\n\tNLM_F_DUMP_INTR                             = 0x10\n\tNLM_F_ECHO                                  = 0x8\n\tNLM_F_EXCL                                  = 0x200\n\tNLM_F_MATCH                                 = 0x200\n\tNLM_F_MULTI                                 = 0x2\n\tNLM_F_NONREC                                = 0x100\n\tNLM_F_REPLACE                               = 0x100\n\tNLM_F_REQUEST                               = 0x1\n\tNLM_F_ROOT                                  = 0x100\n\tNSFS_MAGIC                                  = 0x6e736673\n\tOCFS2_SUPER_MAGIC                           = 0x7461636f\n\tOCRNL                                       = 0x8\n\tOFDEL                                       = 0x80\n\tOFILL                                       = 0x40\n\tONLRET                                      = 0x20\n\tONOCR                                       = 0x10\n\tOPENPROM_SUPER_MAGIC                        = 0x9fa1\n\tOPOST                                       = 0x1\n\tOVERLAYFS_SUPER_MAGIC                       = 0x794c7630\n\tO_ACCMODE                                   = 0x3\n\tO_RDONLY                                    = 0x0\n\tO_RDWR                                      = 0x2\n\tO_WRONLY                                    = 0x1\n\tPACKET_ADD_MEMBERSHIP                       = 0x1\n\tPACKET_AUXDATA                              = 0x8\n\tPACKET_BROADCAST                            = 0x1\n\tPACKET_COPY_THRESH                          = 0x7\n\tPACKET_DROP_MEMBERSHIP                      = 0x2\n\tPACKET_FANOUT                               = 0x12\n\tPACKET_FANOUT_CBPF                          = 0x6\n\tPACKET_FANOUT_CPU                           = 0x2\n\tPACKET_FANOUT_DATA                          = 0x16\n\tPACKET_FANOUT_EBPF                          = 0x7\n\tPACKET_FANOUT_FLAG_DEFRAG                   = 0x8000\n\tPACKET_FANOUT_FLAG_IGNORE_OUTGOING          = 0x4000\n\tPACKET_FANOUT_FLAG_ROLLOVER                 = 0x1000\n\tPACKET_FANOUT_FLAG_UNIQUEID                 = 0x2000\n\tPACKET_FANOUT_HASH                          = 0x0\n\tPACKET_FANOUT_LB                            = 0x1\n\tPACKET_FANOUT_QM                            = 0x5\n\tPACKET_FANOUT_RND                           = 0x4\n\tPACKET_FANOUT_ROLLOVER                      = 0x3\n\tPACKET_FASTROUTE                            = 0x6\n\tPACKET_HDRLEN                               = 0xb\n\tPACKET_HOST                                 = 0x0\n\tPACKET_IGNORE_OUTGOING                      = 0x17\n\tPACKET_KERNEL                               = 0x7\n\tPACKET_LOOPBACK                             = 0x5\n\tPACKET_LOSS                                 = 0xe\n\tPACKET_MR_ALLMULTI                          = 0x2\n\tPACKET_MR_MULTICAST                         = 0x0\n\tPACKET_MR_PROMISC                           = 0x1\n\tPACKET_MR_UNICAST                           = 0x3\n\tPACKET_MULTICAST                            = 0x2\n\tPACKET_ORIGDEV                              = 0x9\n\tPACKET_OTHERHOST                            = 0x3\n\tPACKET_OUTGOING                             = 0x4\n\tPACKET_QDISC_BYPASS                         = 0x14\n\tPACKET_RECV_OUTPUT                          = 0x3\n\tPACKET_RESERVE                              = 0xc\n\tPACKET_ROLLOVER_STATS                       = 0x15\n\tPACKET_RX_RING                              = 0x5\n\tPACKET_STATISTICS                           = 0x6\n\tPACKET_TIMESTAMP                            = 0x11\n\tPACKET_TX_HAS_OFF                           = 0x13\n\tPACKET_TX_RING                              = 0xd\n\tPACKET_TX_TIMESTAMP                         = 0x10\n\tPACKET_USER                                 = 0x6\n\tPACKET_VERSION                              = 0xa\n\tPACKET_VNET_HDR                             = 0xf\n\tPACKET_VNET_HDR_SZ                          = 0x18\n\tPARITY_CRC16_PR0                            = 0x2\n\tPARITY_CRC16_PR0_CCITT                      = 0x4\n\tPARITY_CRC16_PR1                            = 0x3\n\tPARITY_CRC16_PR1_CCITT                      = 0x5\n\tPARITY_CRC32_PR0_CCITT                      = 0x6\n\tPARITY_CRC32_PR1_CCITT                      = 0x7\n\tPARITY_DEFAULT                              = 0x0\n\tPARITY_NONE                                 = 0x1\n\tPARMRK                                      = 0x8\n\tPERF_ATTR_SIZE_VER0                         = 0x40\n\tPERF_ATTR_SIZE_VER1                         = 0x48\n\tPERF_ATTR_SIZE_VER2                         = 0x50\n\tPERF_ATTR_SIZE_VER3                         = 0x60\n\tPERF_ATTR_SIZE_VER4                         = 0x68\n\tPERF_ATTR_SIZE_VER5                         = 0x70\n\tPERF_ATTR_SIZE_VER6                         = 0x78\n\tPERF_ATTR_SIZE_VER7                         = 0x80\n\tPERF_ATTR_SIZE_VER8                         = 0x88\n\tPERF_AUX_FLAG_COLLISION                     = 0x8\n\tPERF_AUX_FLAG_CORESIGHT_FORMAT_CORESIGHT    = 0x0\n\tPERF_AUX_FLAG_CORESIGHT_FORMAT_RAW          = 0x100\n\tPERF_AUX_FLAG_OVERWRITE                     = 0x2\n\tPERF_AUX_FLAG_PARTIAL                       = 0x4\n\tPERF_AUX_FLAG_PMU_FORMAT_TYPE_MASK          = 0xff00\n\tPERF_AUX_FLAG_TRUNCATED                     = 0x1\n\tPERF_BRANCH_ENTRY_INFO_BITS_MAX             = 0x21\n\tPERF_BR_ARM64_DEBUG_DATA                    = 0x7\n\tPERF_BR_ARM64_DEBUG_EXIT                    = 0x5\n\tPERF_BR_ARM64_DEBUG_HALT                    = 0x4\n\tPERF_BR_ARM64_DEBUG_INST                    = 0x6\n\tPERF_BR_ARM64_FIQ                           = 0x3\n\tPERF_FLAG_FD_CLOEXEC                        = 0x8\n\tPERF_FLAG_FD_NO_GROUP                       = 0x1\n\tPERF_FLAG_FD_OUTPUT                         = 0x2\n\tPERF_FLAG_PID_CGROUP                        = 0x4\n\tPERF_HW_EVENT_MASK                          = 0xffffffff\n\tPERF_MAX_CONTEXTS_PER_STACK                 = 0x8\n\tPERF_MAX_STACK_DEPTH                        = 0x7f\n\tPERF_MEM_BLK_ADDR                           = 0x4\n\tPERF_MEM_BLK_DATA                           = 0x2\n\tPERF_MEM_BLK_NA                             = 0x1\n\tPERF_MEM_BLK_SHIFT                          = 0x28\n\tPERF_MEM_HOPS_0                             = 0x1\n\tPERF_MEM_HOPS_1                             = 0x2\n\tPERF_MEM_HOPS_2                             = 0x3\n\tPERF_MEM_HOPS_3                             = 0x4\n\tPERF_MEM_HOPS_SHIFT                         = 0x2b\n\tPERF_MEM_LOCK_LOCKED                        = 0x2\n\tPERF_MEM_LOCK_NA                            = 0x1\n\tPERF_MEM_LOCK_SHIFT                         = 0x18\n\tPERF_MEM_LVLNUM_ANY_CACHE                   = 0xb\n\tPERF_MEM_LVLNUM_CXL                         = 0x9\n\tPERF_MEM_LVLNUM_IO                          = 0xa\n\tPERF_MEM_LVLNUM_L1                          = 0x1\n\tPERF_MEM_LVLNUM_L2                          = 0x2\n\tPERF_MEM_LVLNUM_L2_MHB                      = 0x5\n\tPERF_MEM_LVLNUM_L3                          = 0x3\n\tPERF_MEM_LVLNUM_L4                          = 0x4\n\tPERF_MEM_LVLNUM_LFB                         = 0xc\n\tPERF_MEM_LVLNUM_MSC                         = 0x6\n\tPERF_MEM_LVLNUM_NA                          = 0xf\n\tPERF_MEM_LVLNUM_PMEM                        = 0xe\n\tPERF_MEM_LVLNUM_RAM                         = 0xd\n\tPERF_MEM_LVLNUM_SHIFT                       = 0x21\n\tPERF_MEM_LVLNUM_UNC                         = 0x8\n\tPERF_MEM_LVL_HIT                            = 0x2\n\tPERF_MEM_LVL_IO                             = 0x1000\n\tPERF_MEM_LVL_L1                             = 0x8\n\tPERF_MEM_LVL_L2                             = 0x20\n\tPERF_MEM_LVL_L3                             = 0x40\n\tPERF_MEM_LVL_LFB                            = 0x10\n\tPERF_MEM_LVL_LOC_RAM                        = 0x80\n\tPERF_MEM_LVL_MISS                           = 0x4\n\tPERF_MEM_LVL_NA                             = 0x1\n\tPERF_MEM_LVL_REM_CCE1                       = 0x400\n\tPERF_MEM_LVL_REM_CCE2                       = 0x800\n\tPERF_MEM_LVL_REM_RAM1                       = 0x100\n\tPERF_MEM_LVL_REM_RAM2                       = 0x200\n\tPERF_MEM_LVL_SHIFT                          = 0x5\n\tPERF_MEM_LVL_UNC                            = 0x2000\n\tPERF_MEM_OP_EXEC                            = 0x10\n\tPERF_MEM_OP_LOAD                            = 0x2\n\tPERF_MEM_OP_NA                              = 0x1\n\tPERF_MEM_OP_PFETCH                          = 0x8\n\tPERF_MEM_OP_SHIFT                           = 0x0\n\tPERF_MEM_OP_STORE                           = 0x4\n\tPERF_MEM_REMOTE_REMOTE                      = 0x1\n\tPERF_MEM_REMOTE_SHIFT                       = 0x25\n\tPERF_MEM_SNOOPX_FWD                         = 0x1\n\tPERF_MEM_SNOOPX_PEER                        = 0x2\n\tPERF_MEM_SNOOPX_SHIFT                       = 0x26\n\tPERF_MEM_SNOOP_HIT                          = 0x4\n\tPERF_MEM_SNOOP_HITM                         = 0x10\n\tPERF_MEM_SNOOP_MISS                         = 0x8\n\tPERF_MEM_SNOOP_NA                           = 0x1\n\tPERF_MEM_SNOOP_NONE                         = 0x2\n\tPERF_MEM_SNOOP_SHIFT                        = 0x13\n\tPERF_MEM_TLB_HIT                            = 0x2\n\tPERF_MEM_TLB_L1                             = 0x8\n\tPERF_MEM_TLB_L2                             = 0x10\n\tPERF_MEM_TLB_MISS                           = 0x4\n\tPERF_MEM_TLB_NA                             = 0x1\n\tPERF_MEM_TLB_OS                             = 0x40\n\tPERF_MEM_TLB_SHIFT                          = 0x1a\n\tPERF_MEM_TLB_WK                             = 0x20\n\tPERF_PMU_TYPE_SHIFT                         = 0x20\n\tPERF_RECORD_KSYMBOL_FLAGS_UNREGISTER        = 0x1\n\tPERF_RECORD_MISC_COMM_EXEC                  = 0x2000\n\tPERF_RECORD_MISC_CPUMODE_MASK               = 0x7\n\tPERF_RECORD_MISC_CPUMODE_UNKNOWN            = 0x0\n\tPERF_RECORD_MISC_EXACT_IP                   = 0x4000\n\tPERF_RECORD_MISC_EXT_RESERVED               = 0x8000\n\tPERF_RECORD_MISC_FORK_EXEC                  = 0x2000\n\tPERF_RECORD_MISC_GUEST_KERNEL               = 0x4\n\tPERF_RECORD_MISC_GUEST_USER                 = 0x5\n\tPERF_RECORD_MISC_HYPERVISOR                 = 0x3\n\tPERF_RECORD_MISC_KERNEL                     = 0x1\n\tPERF_RECORD_MISC_MMAP_BUILD_ID              = 0x4000\n\tPERF_RECORD_MISC_MMAP_DATA                  = 0x2000\n\tPERF_RECORD_MISC_PROC_MAP_PARSE_TIMEOUT     = 0x1000\n\tPERF_RECORD_MISC_SWITCH_OUT                 = 0x2000\n\tPERF_RECORD_MISC_SWITCH_OUT_PREEMPT         = 0x4000\n\tPERF_RECORD_MISC_USER                       = 0x2\n\tPERF_SAMPLE_BRANCH_PLM_ALL                  = 0x7\n\tPERF_SAMPLE_WEIGHT_TYPE                     = 0x1004000\n\tPID_FS_MAGIC                                = 0x50494446\n\tPIPEFS_MAGIC                                = 0x50495045\n\tPPPIOCGNPMODE                               = 0xc008744c\n\tPPPIOCNEWUNIT                               = 0xc004743e\n\tPRIO_PGRP                                   = 0x1\n\tPRIO_PROCESS                                = 0x0\n\tPRIO_USER                                   = 0x2\n\tPROCFS_IOCTL_MAGIC                          = 'f'\n\tPROC_SUPER_MAGIC                            = 0x9fa0\n\tPROT_EXEC                                   = 0x4\n\tPROT_GROWSDOWN                              = 0x1000000\n\tPROT_GROWSUP                                = 0x2000000\n\tPROT_NONE                                   = 0x0\n\tPROT_READ                                   = 0x1\n\tPROT_WRITE                                  = 0x2\n\tPR_CAPBSET_DROP                             = 0x18\n\tPR_CAPBSET_READ                             = 0x17\n\tPR_CAP_AMBIENT                              = 0x2f\n\tPR_CAP_AMBIENT_CLEAR_ALL                    = 0x4\n\tPR_CAP_AMBIENT_IS_SET                       = 0x1\n\tPR_CAP_AMBIENT_LOWER                        = 0x3\n\tPR_CAP_AMBIENT_RAISE                        = 0x2\n\tPR_ENDIAN_BIG                               = 0x0\n\tPR_ENDIAN_LITTLE                            = 0x1\n\tPR_ENDIAN_PPC_LITTLE                        = 0x2\n\tPR_FPEMU_NOPRINT                            = 0x1\n\tPR_FPEMU_SIGFPE                             = 0x2\n\tPR_FP_EXC_ASYNC                             = 0x2\n\tPR_FP_EXC_DISABLED                          = 0x0\n\tPR_FP_EXC_DIV                               = 0x10000\n\tPR_FP_EXC_INV                               = 0x100000\n\tPR_FP_EXC_NONRECOV                          = 0x1\n\tPR_FP_EXC_OVF                               = 0x20000\n\tPR_FP_EXC_PRECISE                           = 0x3\n\tPR_FP_EXC_RES                               = 0x80000\n\tPR_FP_EXC_SW_ENABLE                         = 0x80\n\tPR_FP_EXC_UND                               = 0x40000\n\tPR_FP_MODE_FR                               = 0x1\n\tPR_FP_MODE_FRE                              = 0x2\n\tPR_GET_AUXV                                 = 0x41555856\n\tPR_GET_CHILD_SUBREAPER                      = 0x25\n\tPR_GET_DUMPABLE                             = 0x3\n\tPR_GET_ENDIAN                               = 0x13\n\tPR_GET_FPEMU                                = 0x9\n\tPR_GET_FPEXC                                = 0xb\n\tPR_GET_FP_MODE                              = 0x2e\n\tPR_GET_IO_FLUSHER                           = 0x3a\n\tPR_GET_KEEPCAPS                             = 0x7\n\tPR_GET_MDWE                                 = 0x42\n\tPR_GET_MEMORY_MERGE                         = 0x44\n\tPR_GET_NAME                                 = 0x10\n\tPR_GET_NO_NEW_PRIVS                         = 0x27\n\tPR_GET_PDEATHSIG                            = 0x2\n\tPR_GET_SECCOMP                              = 0x15\n\tPR_GET_SECUREBITS                           = 0x1b\n\tPR_GET_SHADOW_STACK_STATUS                  = 0x4a\n\tPR_GET_SPECULATION_CTRL                     = 0x34\n\tPR_GET_TAGGED_ADDR_CTRL                     = 0x38\n\tPR_GET_THP_DISABLE                          = 0x2a\n\tPR_GET_TID_ADDRESS                          = 0x28\n\tPR_GET_TIMERSLACK                           = 0x1e\n\tPR_GET_TIMING                               = 0xd\n\tPR_GET_TSC                                  = 0x19\n\tPR_GET_UNALIGN                              = 0x5\n\tPR_LOCK_SHADOW_STACK_STATUS                 = 0x4c\n\tPR_MCE_KILL                                 = 0x21\n\tPR_MCE_KILL_CLEAR                           = 0x0\n\tPR_MCE_KILL_DEFAULT                         = 0x2\n\tPR_MCE_KILL_EARLY                           = 0x1\n\tPR_MCE_KILL_GET                             = 0x22\n\tPR_MCE_KILL_LATE                            = 0x0\n\tPR_MCE_KILL_SET                             = 0x1\n\tPR_MDWE_NO_INHERIT                          = 0x2\n\tPR_MDWE_REFUSE_EXEC_GAIN                    = 0x1\n\tPR_MPX_DISABLE_MANAGEMENT                   = 0x2c\n\tPR_MPX_ENABLE_MANAGEMENT                    = 0x2b\n\tPR_MTE_TAG_MASK                             = 0x7fff8\n\tPR_MTE_TAG_SHIFT                            = 0x3\n\tPR_MTE_TCF_ASYNC                            = 0x4\n\tPR_MTE_TCF_MASK                             = 0x6\n\tPR_MTE_TCF_NONE                             = 0x0\n\tPR_MTE_TCF_SHIFT                            = 0x1\n\tPR_MTE_TCF_SYNC                             = 0x2\n\tPR_PAC_APDAKEY                              = 0x4\n\tPR_PAC_APDBKEY                              = 0x8\n\tPR_PAC_APGAKEY                              = 0x10\n\tPR_PAC_APIAKEY                              = 0x1\n\tPR_PAC_APIBKEY                              = 0x2\n\tPR_PAC_GET_ENABLED_KEYS                     = 0x3d\n\tPR_PAC_RESET_KEYS                           = 0x36\n\tPR_PAC_SET_ENABLED_KEYS                     = 0x3c\n\tPR_PMLEN_MASK                               = 0x7f000000\n\tPR_PMLEN_SHIFT                              = 0x18\n\tPR_PPC_DEXCR_CTRL_CLEAR                     = 0x4\n\tPR_PPC_DEXCR_CTRL_CLEAR_ONEXEC              = 0x10\n\tPR_PPC_DEXCR_CTRL_EDITABLE                  = 0x1\n\tPR_PPC_DEXCR_CTRL_MASK                      = 0x1f\n\tPR_PPC_DEXCR_CTRL_SET                       = 0x2\n\tPR_PPC_DEXCR_CTRL_SET_ONEXEC                = 0x8\n\tPR_PPC_DEXCR_IBRTPD                         = 0x1\n\tPR_PPC_DEXCR_NPHIE                          = 0x3\n\tPR_PPC_DEXCR_SBHE                           = 0x0\n\tPR_PPC_DEXCR_SRAPD                          = 0x2\n\tPR_PPC_GET_DEXCR                            = 0x48\n\tPR_PPC_SET_DEXCR                            = 0x49\n\tPR_RISCV_CTX_SW_FENCEI_OFF                  = 0x1\n\tPR_RISCV_CTX_SW_FENCEI_ON                   = 0x0\n\tPR_RISCV_SCOPE_PER_PROCESS                  = 0x0\n\tPR_RISCV_SCOPE_PER_THREAD                   = 0x1\n\tPR_RISCV_SET_ICACHE_FLUSH_CTX               = 0x47\n\tPR_RISCV_V_GET_CONTROL                      = 0x46\n\tPR_RISCV_V_SET_CONTROL                      = 0x45\n\tPR_RISCV_V_VSTATE_CTRL_CUR_MASK             = 0x3\n\tPR_RISCV_V_VSTATE_CTRL_DEFAULT              = 0x0\n\tPR_RISCV_V_VSTATE_CTRL_INHERIT              = 0x10\n\tPR_RISCV_V_VSTATE_CTRL_MASK                 = 0x1f\n\tPR_RISCV_V_VSTATE_CTRL_NEXT_MASK            = 0xc\n\tPR_RISCV_V_VSTATE_CTRL_OFF                  = 0x1\n\tPR_RISCV_V_VSTATE_CTRL_ON                   = 0x2\n\tPR_SCHED_CORE                               = 0x3e\n\tPR_SCHED_CORE_CREATE                        = 0x1\n\tPR_SCHED_CORE_GET                           = 0x0\n\tPR_SCHED_CORE_MAX                           = 0x4\n\tPR_SCHED_CORE_SCOPE_PROCESS_GROUP           = 0x2\n\tPR_SCHED_CORE_SCOPE_THREAD                  = 0x0\n\tPR_SCHED_CORE_SCOPE_THREAD_GROUP            = 0x1\n\tPR_SCHED_CORE_SHARE_FROM                    = 0x3\n\tPR_SCHED_CORE_SHARE_TO                      = 0x2\n\tPR_SET_CHILD_SUBREAPER                      = 0x24\n\tPR_SET_DUMPABLE                             = 0x4\n\tPR_SET_ENDIAN                               = 0x14\n\tPR_SET_FPEMU                                = 0xa\n\tPR_SET_FPEXC                                = 0xc\n\tPR_SET_FP_MODE                              = 0x2d\n\tPR_SET_IO_FLUSHER                           = 0x39\n\tPR_SET_KEEPCAPS                             = 0x8\n\tPR_SET_MDWE                                 = 0x41\n\tPR_SET_MEMORY_MERGE                         = 0x43\n\tPR_SET_MM                                   = 0x23\n\tPR_SET_MM_ARG_END                           = 0x9\n\tPR_SET_MM_ARG_START                         = 0x8\n\tPR_SET_MM_AUXV                              = 0xc\n\tPR_SET_MM_BRK                               = 0x7\n\tPR_SET_MM_END_CODE                          = 0x2\n\tPR_SET_MM_END_DATA                          = 0x4\n\tPR_SET_MM_ENV_END                           = 0xb\n\tPR_SET_MM_ENV_START                         = 0xa\n\tPR_SET_MM_EXE_FILE                          = 0xd\n\tPR_SET_MM_MAP                               = 0xe\n\tPR_SET_MM_MAP_SIZE                          = 0xf\n\tPR_SET_MM_START_BRK                         = 0x6\n\tPR_SET_MM_START_CODE                        = 0x1\n\tPR_SET_MM_START_DATA                        = 0x3\n\tPR_SET_MM_START_STACK                       = 0x5\n\tPR_SET_NAME                                 = 0xf\n\tPR_SET_NO_NEW_PRIVS                         = 0x26\n\tPR_SET_PDEATHSIG                            = 0x1\n\tPR_SET_PTRACER                              = 0x59616d61\n\tPR_SET_SECCOMP                              = 0x16\n\tPR_SET_SECUREBITS                           = 0x1c\n\tPR_SET_SHADOW_STACK_STATUS                  = 0x4b\n\tPR_SET_SPECULATION_CTRL                     = 0x35\n\tPR_SET_SYSCALL_USER_DISPATCH                = 0x3b\n\tPR_SET_TAGGED_ADDR_CTRL                     = 0x37\n\tPR_SET_THP_DISABLE                          = 0x29\n\tPR_SET_TIMERSLACK                           = 0x1d\n\tPR_SET_TIMING                               = 0xe\n\tPR_SET_TSC                                  = 0x1a\n\tPR_SET_UNALIGN                              = 0x6\n\tPR_SET_VMA                                  = 0x53564d41\n\tPR_SET_VMA_ANON_NAME                        = 0x0\n\tPR_SHADOW_STACK_ENABLE                      = 0x1\n\tPR_SHADOW_STACK_PUSH                        = 0x4\n\tPR_SHADOW_STACK_WRITE                       = 0x2\n\tPR_SME_GET_VL                               = 0x40\n\tPR_SME_SET_VL                               = 0x3f\n\tPR_SME_SET_VL_ONEXEC                        = 0x40000\n\tPR_SME_VL_INHERIT                           = 0x20000\n\tPR_SME_VL_LEN_MASK                          = 0xffff\n\tPR_SPEC_DISABLE                             = 0x4\n\tPR_SPEC_DISABLE_NOEXEC                      = 0x10\n\tPR_SPEC_ENABLE                              = 0x2\n\tPR_SPEC_FORCE_DISABLE                       = 0x8\n\tPR_SPEC_INDIRECT_BRANCH                     = 0x1\n\tPR_SPEC_L1D_FLUSH                           = 0x2\n\tPR_SPEC_NOT_AFFECTED                        = 0x0\n\tPR_SPEC_PRCTL                               = 0x1\n\tPR_SPEC_STORE_BYPASS                        = 0x0\n\tPR_SVE_GET_VL                               = 0x33\n\tPR_SVE_SET_VL                               = 0x32\n\tPR_SVE_SET_VL_ONEXEC                        = 0x40000\n\tPR_SVE_VL_INHERIT                           = 0x20000\n\tPR_SVE_VL_LEN_MASK                          = 0xffff\n\tPR_SYS_DISPATCH_OFF                         = 0x0\n\tPR_SYS_DISPATCH_ON                          = 0x1\n\tPR_TAGGED_ADDR_ENABLE                       = 0x1\n\tPR_TASK_PERF_EVENTS_DISABLE                 = 0x1f\n\tPR_TASK_PERF_EVENTS_ENABLE                  = 0x20\n\tPR_TIMING_STATISTICAL                       = 0x0\n\tPR_TIMING_TIMESTAMP                         = 0x1\n\tPR_TSC_ENABLE                               = 0x1\n\tPR_TSC_SIGSEGV                              = 0x2\n\tPR_UNALIGN_NOPRINT                          = 0x1\n\tPR_UNALIGN_SIGBUS                           = 0x2\n\tPSTOREFS_MAGIC                              = 0x6165676c\n\tPTP_CLK_MAGIC                               = '='\n\tPTP_ENABLE_FEATURE                          = 0x1\n\tPTP_EXTTS_EDGES                             = 0x6\n\tPTP_EXTTS_EVENT_VALID                       = 0x1\n\tPTP_EXTTS_V1_VALID_FLAGS                    = 0x7\n\tPTP_EXTTS_VALID_FLAGS                       = 0x1f\n\tPTP_EXT_OFFSET                              = 0x10\n\tPTP_FALLING_EDGE                            = 0x4\n\tPTP_MAX_SAMPLES                             = 0x19\n\tPTP_PEROUT_DUTY_CYCLE                       = 0x2\n\tPTP_PEROUT_ONE_SHOT                         = 0x1\n\tPTP_PEROUT_PHASE                            = 0x4\n\tPTP_PEROUT_V1_VALID_FLAGS                   = 0x0\n\tPTP_PEROUT_VALID_FLAGS                      = 0x7\n\tPTP_PIN_GETFUNC                             = 0xc0603d06\n\tPTP_PIN_GETFUNC2                            = 0xc0603d0f\n\tPTP_RISING_EDGE                             = 0x2\n\tPTP_STRICT_FLAGS                            = 0x8\n\tPTP_SYS_OFFSET_EXTENDED                     = 0xc4c03d09\n\tPTP_SYS_OFFSET_EXTENDED2                    = 0xc4c03d12\n\tPTP_SYS_OFFSET_PRECISE                      = 0xc0403d08\n\tPTP_SYS_OFFSET_PRECISE2                     = 0xc0403d11\n\tPTRACE_ATTACH                               = 0x10\n\tPTRACE_CONT                                 = 0x7\n\tPTRACE_DETACH                               = 0x11\n\tPTRACE_EVENTMSG_SYSCALL_ENTRY               = 0x1\n\tPTRACE_EVENTMSG_SYSCALL_EXIT                = 0x2\n\tPTRACE_EVENT_CLONE                          = 0x3\n\tPTRACE_EVENT_EXEC                           = 0x4\n\tPTRACE_EVENT_EXIT                           = 0x6\n\tPTRACE_EVENT_FORK                           = 0x1\n\tPTRACE_EVENT_SECCOMP                        = 0x7\n\tPTRACE_EVENT_STOP                           = 0x80\n\tPTRACE_EVENT_VFORK                          = 0x2\n\tPTRACE_EVENT_VFORK_DONE                     = 0x5\n\tPTRACE_GETEVENTMSG                          = 0x4201\n\tPTRACE_GETREGS                              = 0xc\n\tPTRACE_GETREGSET                            = 0x4204\n\tPTRACE_GETSIGINFO                           = 0x4202\n\tPTRACE_GETSIGMASK                           = 0x420a\n\tPTRACE_GET_RSEQ_CONFIGURATION               = 0x420f\n\tPTRACE_GET_SYSCALL_INFO                     = 0x420e\n\tPTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG     = 0x4211\n\tPTRACE_INTERRUPT                            = 0x4207\n\tPTRACE_KILL                                 = 0x8\n\tPTRACE_LISTEN                               = 0x4208\n\tPTRACE_O_EXITKILL                           = 0x100000\n\tPTRACE_O_MASK                               = 0x3000ff\n\tPTRACE_O_SUSPEND_SECCOMP                    = 0x200000\n\tPTRACE_O_TRACECLONE                         = 0x8\n\tPTRACE_O_TRACEEXEC                          = 0x10\n\tPTRACE_O_TRACEEXIT                          = 0x40\n\tPTRACE_O_TRACEFORK                          = 0x2\n\tPTRACE_O_TRACESECCOMP                       = 0x80\n\tPTRACE_O_TRACESYSGOOD                       = 0x1\n\tPTRACE_O_TRACEVFORK                         = 0x4\n\tPTRACE_O_TRACEVFORKDONE                     = 0x20\n\tPTRACE_PEEKDATA                             = 0x2\n\tPTRACE_PEEKSIGINFO                          = 0x4209\n\tPTRACE_PEEKSIGINFO_SHARED                   = 0x1\n\tPTRACE_PEEKTEXT                             = 0x1\n\tPTRACE_PEEKUSR                              = 0x3\n\tPTRACE_POKEDATA                             = 0x5\n\tPTRACE_POKETEXT                             = 0x4\n\tPTRACE_POKEUSR                              = 0x6\n\tPTRACE_SECCOMP_GET_FILTER                   = 0x420c\n\tPTRACE_SECCOMP_GET_METADATA                 = 0x420d\n\tPTRACE_SEIZE                                = 0x4206\n\tPTRACE_SETOPTIONS                           = 0x4200\n\tPTRACE_SETREGS                              = 0xd\n\tPTRACE_SETREGSET                            = 0x4205\n\tPTRACE_SETSIGINFO                           = 0x4203\n\tPTRACE_SETSIGMASK                           = 0x420b\n\tPTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG     = 0x4210\n\tPTRACE_SINGLESTEP                           = 0x9\n\tPTRACE_SYSCALL                              = 0x18\n\tPTRACE_SYSCALL_INFO_ENTRY                   = 0x1\n\tPTRACE_SYSCALL_INFO_EXIT                    = 0x2\n\tPTRACE_SYSCALL_INFO_NONE                    = 0x0\n\tPTRACE_SYSCALL_INFO_SECCOMP                 = 0x3\n\tPTRACE_TRACEME                              = 0x0\n\tP_ALL                                       = 0x0\n\tP_PGID                                      = 0x2\n\tP_PID                                       = 0x1\n\tP_PIDFD                                     = 0x3\n\tQNX4_SUPER_MAGIC                            = 0x2f\n\tQNX6_SUPER_MAGIC                            = 0x68191122\n\tRAMFS_MAGIC                                 = 0x858458f6\n\tRAW_PAYLOAD_DIGITAL                         = 0x3\n\tRAW_PAYLOAD_HCI                             = 0x2\n\tRAW_PAYLOAD_LLCP                            = 0x0\n\tRAW_PAYLOAD_NCI                             = 0x1\n\tRAW_PAYLOAD_PROPRIETARY                     = 0x4\n\tRDTGROUP_SUPER_MAGIC                        = 0x7655821\n\tREISERFS_SUPER_MAGIC                        = 0x52654973\n\tRENAME_EXCHANGE                             = 0x2\n\tRENAME_NOREPLACE                            = 0x1\n\tRENAME_WHITEOUT                             = 0x4\n\tRLIMIT_CORE                                 = 0x4\n\tRLIMIT_CPU                                  = 0x0\n\tRLIMIT_DATA                                 = 0x2\n\tRLIMIT_FSIZE                                = 0x1\n\tRLIMIT_LOCKS                                = 0xa\n\tRLIMIT_MSGQUEUE                             = 0xc\n\tRLIMIT_NICE                                 = 0xd\n\tRLIMIT_RTPRIO                               = 0xe\n\tRLIMIT_RTTIME                               = 0xf\n\tRLIMIT_SIGPENDING                           = 0xb\n\tRLIMIT_STACK                                = 0x3\n\tRLIM_INFINITY                               = 0xffffffffffffffff\n\tRTAX_ADVMSS                                 = 0x8\n\tRTAX_CC_ALGO                                = 0x10\n\tRTAX_CWND                                   = 0x7\n\tRTAX_FASTOPEN_NO_COOKIE                     = 0x11\n\tRTAX_FEATURES                               = 0xc\n\tRTAX_FEATURE_ALLFRAG                        = 0x8\n\tRTAX_FEATURE_ECN                            = 0x1\n\tRTAX_FEATURE_MASK                           = 0x1f\n\tRTAX_FEATURE_SACK                           = 0x2\n\tRTAX_FEATURE_TCP_USEC_TS                    = 0x10\n\tRTAX_FEATURE_TIMESTAMP                      = 0x4\n\tRTAX_HOPLIMIT                               = 0xa\n\tRTAX_INITCWND                               = 0xb\n\tRTAX_INITRWND                               = 0xe\n\tRTAX_LOCK                                   = 0x1\n\tRTAX_MAX                                    = 0x11\n\tRTAX_MTU                                    = 0x2\n\tRTAX_QUICKACK                               = 0xf\n\tRTAX_REORDERING                             = 0x9\n\tRTAX_RTO_MIN                                = 0xd\n\tRTAX_RTT                                    = 0x4\n\tRTAX_RTTVAR                                 = 0x5\n\tRTAX_SSTHRESH                               = 0x6\n\tRTAX_UNSPEC                                 = 0x0\n\tRTAX_WINDOW                                 = 0x3\n\tRTA_ALIGNTO                                 = 0x4\n\tRTA_MAX                                     = 0x1e\n\tRTCF_DIRECTSRC                              = 0x4000000\n\tRTCF_DOREDIRECT                             = 0x1000000\n\tRTCF_LOG                                    = 0x2000000\n\tRTCF_MASQ                                   = 0x400000\n\tRTCF_NAT                                    = 0x800000\n\tRTCF_VALVE                                  = 0x200000\n\tRTC_AF                                      = 0x20\n\tRTC_BSM_DIRECT                              = 0x1\n\tRTC_BSM_DISABLED                            = 0x0\n\tRTC_BSM_LEVEL                               = 0x2\n\tRTC_BSM_STANDBY                             = 0x3\n\tRTC_FEATURE_ALARM                           = 0x0\n\tRTC_FEATURE_ALARM_RES_2S                    = 0x3\n\tRTC_FEATURE_ALARM_RES_MINUTE                = 0x1\n\tRTC_FEATURE_ALARM_WAKEUP_ONLY               = 0x7\n\tRTC_FEATURE_BACKUP_SWITCH_MODE              = 0x6\n\tRTC_FEATURE_CNT                             = 0x8\n\tRTC_FEATURE_CORRECTION                      = 0x5\n\tRTC_FEATURE_NEED_WEEK_DAY                   = 0x2\n\tRTC_FEATURE_UPDATE_INTERRUPT                = 0x4\n\tRTC_IRQF                                    = 0x80\n\tRTC_MAX_FREQ                                = 0x2000\n\tRTC_PARAM_BACKUP_SWITCH_MODE                = 0x2\n\tRTC_PARAM_CORRECTION                        = 0x1\n\tRTC_PARAM_FEATURES                          = 0x0\n\tRTC_PF                                      = 0x40\n\tRTC_UF                                      = 0x10\n\tRTF_ADDRCLASSMASK                           = 0xf8000000\n\tRTF_ADDRCONF                                = 0x40000\n\tRTF_ALLONLINK                               = 0x20000\n\tRTF_BROADCAST                               = 0x10000000\n\tRTF_CACHE                                   = 0x1000000\n\tRTF_DEFAULT                                 = 0x10000\n\tRTF_DYNAMIC                                 = 0x10\n\tRTF_FLOW                                    = 0x2000000\n\tRTF_GATEWAY                                 = 0x2\n\tRTF_HOST                                    = 0x4\n\tRTF_INTERFACE                               = 0x40000000\n\tRTF_IRTT                                    = 0x100\n\tRTF_LINKRT                                  = 0x100000\n\tRTF_LOCAL                                   = 0x80000000\n\tRTF_MODIFIED                                = 0x20\n\tRTF_MSS                                     = 0x40\n\tRTF_MTU                                     = 0x40\n\tRTF_MULTICAST                               = 0x20000000\n\tRTF_NAT                                     = 0x8000000\n\tRTF_NOFORWARD                               = 0x1000\n\tRTF_NONEXTHOP                               = 0x200000\n\tRTF_NOPMTUDISC                              = 0x4000\n\tRTF_POLICY                                  = 0x4000000\n\tRTF_REINSTATE                               = 0x8\n\tRTF_REJECT                                  = 0x200\n\tRTF_STATIC                                  = 0x400\n\tRTF_THROW                                   = 0x2000\n\tRTF_UP                                      = 0x1\n\tRTF_WINDOW                                  = 0x80\n\tRTF_XRESOLVE                                = 0x800\n\tRTMGRP_DECnet_IFADDR                        = 0x1000\n\tRTMGRP_DECnet_ROUTE                         = 0x4000\n\tRTMGRP_IPV4_IFADDR                          = 0x10\n\tRTMGRP_IPV4_MROUTE                          = 0x20\n\tRTMGRP_IPV4_ROUTE                           = 0x40\n\tRTMGRP_IPV4_RULE                            = 0x80\n\tRTMGRP_IPV6_IFADDR                          = 0x100\n\tRTMGRP_IPV6_IFINFO                          = 0x800\n\tRTMGRP_IPV6_MROUTE                          = 0x200\n\tRTMGRP_IPV6_PREFIX                          = 0x20000\n\tRTMGRP_IPV6_ROUTE                           = 0x400\n\tRTMGRP_LINK                                 = 0x1\n\tRTMGRP_NEIGH                                = 0x4\n\tRTMGRP_NOTIFY                               = 0x2\n\tRTMGRP_TC                                   = 0x8\n\tRTM_BASE                                    = 0x10\n\tRTM_DELACTION                               = 0x31\n\tRTM_DELADDR                                 = 0x15\n\tRTM_DELADDRLABEL                            = 0x49\n\tRTM_DELCHAIN                                = 0x65\n\tRTM_DELLINK                                 = 0x11\n\tRTM_DELLINKPROP                             = 0x6d\n\tRTM_DELMDB                                  = 0x55\n\tRTM_DELNEIGH                                = 0x1d\n\tRTM_DELNETCONF                              = 0x51\n\tRTM_DELNEXTHOP                              = 0x69\n\tRTM_DELNEXTHOPBUCKET                        = 0x75\n\tRTM_DELNSID                                 = 0x59\n\tRTM_DELQDISC                                = 0x25\n\tRTM_DELROUTE                                = 0x19\n\tRTM_DELRULE                                 = 0x21\n\tRTM_DELTCLASS                               = 0x29\n\tRTM_DELTFILTER                              = 0x2d\n\tRTM_DELTUNNEL                               = 0x79\n\tRTM_DELVLAN                                 = 0x71\n\tRTM_F_CLONED                                = 0x200\n\tRTM_F_EQUALIZE                              = 0x400\n\tRTM_F_FIB_MATCH                             = 0x2000\n\tRTM_F_LOOKUP_TABLE                          = 0x1000\n\tRTM_F_NOTIFY                                = 0x100\n\tRTM_F_OFFLOAD                               = 0x4000\n\tRTM_F_OFFLOAD_FAILED                        = 0x20000000\n\tRTM_F_PREFIX                                = 0x800\n\tRTM_F_TRAP                                  = 0x8000\n\tRTM_GETACTION                               = 0x32\n\tRTM_GETADDR                                 = 0x16\n\tRTM_GETADDRLABEL                            = 0x4a\n\tRTM_GETANYCAST                              = 0x3e\n\tRTM_GETCHAIN                                = 0x66\n\tRTM_GETDCB                                  = 0x4e\n\tRTM_GETLINK                                 = 0x12\n\tRTM_GETLINKPROP                             = 0x6e\n\tRTM_GETMDB                                  = 0x56\n\tRTM_GETMULTICAST                            = 0x3a\n\tRTM_GETNEIGH                                = 0x1e\n\tRTM_GETNEIGHTBL                             = 0x42\n\tRTM_GETNETCONF                              = 0x52\n\tRTM_GETNEXTHOP                              = 0x6a\n\tRTM_GETNEXTHOPBUCKET                        = 0x76\n\tRTM_GETNSID                                 = 0x5a\n\tRTM_GETQDISC                                = 0x26\n\tRTM_GETROUTE                                = 0x1a\n\tRTM_GETRULE                                 = 0x22\n\tRTM_GETSTATS                                = 0x5e\n\tRTM_GETTCLASS                               = 0x2a\n\tRTM_GETTFILTER                              = 0x2e\n\tRTM_GETTUNNEL                               = 0x7a\n\tRTM_GETVLAN                                 = 0x72\n\tRTM_MAX                                     = 0x7b\n\tRTM_NEWACTION                               = 0x30\n\tRTM_NEWADDR                                 = 0x14\n\tRTM_NEWADDRLABEL                            = 0x48\n\tRTM_NEWCACHEREPORT                          = 0x60\n\tRTM_NEWCHAIN                                = 0x64\n\tRTM_NEWLINK                                 = 0x10\n\tRTM_NEWLINKPROP                             = 0x6c\n\tRTM_NEWMDB                                  = 0x54\n\tRTM_NEWNDUSEROPT                            = 0x44\n\tRTM_NEWNEIGH                                = 0x1c\n\tRTM_NEWNEIGHTBL                             = 0x40\n\tRTM_NEWNETCONF                              = 0x50\n\tRTM_NEWNEXTHOP                              = 0x68\n\tRTM_NEWNEXTHOPBUCKET                        = 0x74\n\tRTM_NEWNSID                                 = 0x58\n\tRTM_NEWPREFIX                               = 0x34\n\tRTM_NEWQDISC                                = 0x24\n\tRTM_NEWROUTE                                = 0x18\n\tRTM_NEWRULE                                 = 0x20\n\tRTM_NEWSTATS                                = 0x5c\n\tRTM_NEWTCLASS                               = 0x28\n\tRTM_NEWTFILTER                              = 0x2c\n\tRTM_NEWTUNNEL                               = 0x78\n\tRTM_NEWVLAN                                 = 0x70\n\tRTM_NR_FAMILIES                             = 0x1b\n\tRTM_NR_MSGTYPES                             = 0x6c\n\tRTM_SETDCB                                  = 0x4f\n\tRTM_SETLINK                                 = 0x13\n\tRTM_SETNEIGHTBL                             = 0x43\n\tRTM_SETSTATS                                = 0x5f\n\tRTNH_ALIGNTO                                = 0x4\n\tRTNH_COMPARE_MASK                           = 0x59\n\tRTNH_F_DEAD                                 = 0x1\n\tRTNH_F_LINKDOWN                             = 0x10\n\tRTNH_F_OFFLOAD                              = 0x8\n\tRTNH_F_ONLINK                               = 0x4\n\tRTNH_F_PERVASIVE                            = 0x2\n\tRTNH_F_TRAP                                 = 0x40\n\tRTNH_F_UNRESOLVED                           = 0x20\n\tRTN_MAX                                     = 0xb\n\tRTPROT_BABEL                                = 0x2a\n\tRTPROT_BGP                                  = 0xba\n\tRTPROT_BIRD                                 = 0xc\n\tRTPROT_BOOT                                 = 0x3\n\tRTPROT_DHCP                                 = 0x10\n\tRTPROT_DNROUTED                             = 0xd\n\tRTPROT_EIGRP                                = 0xc0\n\tRTPROT_GATED                                = 0x8\n\tRTPROT_ISIS                                 = 0xbb\n\tRTPROT_KEEPALIVED                           = 0x12\n\tRTPROT_KERNEL                               = 0x2\n\tRTPROT_MROUTED                              = 0x11\n\tRTPROT_MRT                                  = 0xa\n\tRTPROT_NTK                                  = 0xf\n\tRTPROT_OPENR                                = 0x63\n\tRTPROT_OSPF                                 = 0xbc\n\tRTPROT_RA                                   = 0x9\n\tRTPROT_REDIRECT                             = 0x1\n\tRTPROT_RIP                                  = 0xbd\n\tRTPROT_STATIC                               = 0x4\n\tRTPROT_UNSPEC                               = 0x0\n\tRTPROT_XORP                                 = 0xe\n\tRTPROT_ZEBRA                                = 0xb\n\tRT_CLASS_DEFAULT                            = 0xfd\n\tRT_CLASS_LOCAL                              = 0xff\n\tRT_CLASS_MAIN                               = 0xfe\n\tRT_CLASS_MAX                                = 0xff\n\tRT_CLASS_UNSPEC                             = 0x0\n\tRUSAGE_CHILDREN                             = -0x1\n\tRUSAGE_SELF                                 = 0x0\n\tRUSAGE_THREAD                               = 0x1\n\tRWF_APPEND                                  = 0x10\n\tRWF_ATOMIC                                  = 0x40\n\tRWF_DSYNC                                   = 0x2\n\tRWF_HIPRI                                   = 0x1\n\tRWF_NOAPPEND                                = 0x20\n\tRWF_NOWAIT                                  = 0x8\n\tRWF_SUPPORTED                               = 0x7f\n\tRWF_SYNC                                    = 0x4\n\tRWF_WRITE_LIFE_NOT_SET                      = 0x0\n\tSCHED_BATCH                                 = 0x3\n\tSCHED_DEADLINE                              = 0x6\n\tSCHED_EXT                                   = 0x7\n\tSCHED_FIFO                                  = 0x1\n\tSCHED_FLAG_ALL                              = 0x7f\n\tSCHED_FLAG_DL_OVERRUN                       = 0x4\n\tSCHED_FLAG_KEEP_ALL                         = 0x18\n\tSCHED_FLAG_KEEP_PARAMS                      = 0x10\n\tSCHED_FLAG_KEEP_POLICY                      = 0x8\n\tSCHED_FLAG_RECLAIM                          = 0x2\n\tSCHED_FLAG_RESET_ON_FORK                    = 0x1\n\tSCHED_FLAG_UTIL_CLAMP                       = 0x60\n\tSCHED_FLAG_UTIL_CLAMP_MAX                   = 0x40\n\tSCHED_FLAG_UTIL_CLAMP_MIN                   = 0x20\n\tSCHED_IDLE                                  = 0x5\n\tSCHED_NORMAL                                = 0x0\n\tSCHED_RESET_ON_FORK                         = 0x40000000\n\tSCHED_RR                                    = 0x2\n\tSCM_CREDENTIALS                             = 0x2\n\tSCM_PIDFD                                   = 0x4\n\tSCM_RIGHTS                                  = 0x1\n\tSCM_SECURITY                                = 0x3\n\tSCM_TIMESTAMP                               = 0x1d\n\tSC_LOG_FLUSH                                = 0x100000\n\tSECCOMP_ADDFD_FLAG_SEND                     = 0x2\n\tSECCOMP_ADDFD_FLAG_SETFD                    = 0x1\n\tSECCOMP_FILTER_FLAG_LOG                     = 0x2\n\tSECCOMP_FILTER_FLAG_NEW_LISTENER            = 0x8\n\tSECCOMP_FILTER_FLAG_SPEC_ALLOW              = 0x4\n\tSECCOMP_FILTER_FLAG_TSYNC                   = 0x1\n\tSECCOMP_FILTER_FLAG_TSYNC_ESRCH             = 0x10\n\tSECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV      = 0x20\n\tSECCOMP_GET_ACTION_AVAIL                    = 0x2\n\tSECCOMP_GET_NOTIF_SIZES                     = 0x3\n\tSECCOMP_IOCTL_NOTIF_RECV                    = 0xc0502100\n\tSECCOMP_IOCTL_NOTIF_SEND                    = 0xc0182101\n\tSECCOMP_IOC_MAGIC                           = '!'\n\tSECCOMP_MODE_DISABLED                       = 0x0\n\tSECCOMP_MODE_FILTER                         = 0x2\n\tSECCOMP_MODE_STRICT                         = 0x1\n\tSECCOMP_RET_ACTION                          = 0x7fff0000\n\tSECCOMP_RET_ACTION_FULL                     = 0xffff0000\n\tSECCOMP_RET_ALLOW                           = 0x7fff0000\n\tSECCOMP_RET_DATA                            = 0xffff\n\tSECCOMP_RET_ERRNO                           = 0x50000\n\tSECCOMP_RET_KILL                            = 0x0\n\tSECCOMP_RET_KILL_PROCESS                    = 0x80000000\n\tSECCOMP_RET_KILL_THREAD                     = 0x0\n\tSECCOMP_RET_LOG                             = 0x7ffc0000\n\tSECCOMP_RET_TRACE                           = 0x7ff00000\n\tSECCOMP_RET_TRAP                            = 0x30000\n\tSECCOMP_RET_USER_NOTIF                      = 0x7fc00000\n\tSECCOMP_SET_MODE_FILTER                     = 0x1\n\tSECCOMP_SET_MODE_STRICT                     = 0x0\n\tSECCOMP_USER_NOTIF_FD_SYNC_WAKE_UP          = 0x1\n\tSECCOMP_USER_NOTIF_FLAG_CONTINUE            = 0x1\n\tSECRETMEM_MAGIC                             = 0x5345434d\n\tSECURITYFS_MAGIC                            = 0x73636673\n\tSEEK_CUR                                    = 0x1\n\tSEEK_DATA                                   = 0x3\n\tSEEK_END                                    = 0x2\n\tSEEK_HOLE                                   = 0x4\n\tSEEK_MAX                                    = 0x4\n\tSEEK_SET                                    = 0x0\n\tSELINUX_MAGIC                               = 0xf97cff8c\n\tSHUT_RD                                     = 0x0\n\tSHUT_RDWR                                   = 0x2\n\tSHUT_WR                                     = 0x1\n\tSIOCADDDLCI                                 = 0x8980\n\tSIOCADDMULTI                                = 0x8931\n\tSIOCADDRT                                   = 0x890b\n\tSIOCBONDCHANGEACTIVE                        = 0x8995\n\tSIOCBONDENSLAVE                             = 0x8990\n\tSIOCBONDINFOQUERY                           = 0x8994\n\tSIOCBONDRELEASE                             = 0x8991\n\tSIOCBONDSETHWADDR                           = 0x8992\n\tSIOCBONDSLAVEINFOQUERY                      = 0x8993\n\tSIOCBRADDBR                                 = 0x89a0\n\tSIOCBRADDIF                                 = 0x89a2\n\tSIOCBRDELBR                                 = 0x89a1\n\tSIOCBRDELIF                                 = 0x89a3\n\tSIOCDARP                                    = 0x8953\n\tSIOCDELDLCI                                 = 0x8981\n\tSIOCDELMULTI                                = 0x8932\n\tSIOCDELRT                                   = 0x890c\n\tSIOCDEVPRIVATE                              = 0x89f0\n\tSIOCDIFADDR                                 = 0x8936\n\tSIOCDRARP                                   = 0x8960\n\tSIOCETHTOOL                                 = 0x8946\n\tSIOCGARP                                    = 0x8954\n\tSIOCGETLINKNAME                             = 0x89e0\n\tSIOCGETNODEID                               = 0x89e1\n\tSIOCGHWTSTAMP                               = 0x89b1\n\tSIOCGIFADDR                                 = 0x8915\n\tSIOCGIFBR                                   = 0x8940\n\tSIOCGIFBRDADDR                              = 0x8919\n\tSIOCGIFCONF                                 = 0x8912\n\tSIOCGIFCOUNT                                = 0x8938\n\tSIOCGIFDSTADDR                              = 0x8917\n\tSIOCGIFENCAP                                = 0x8925\n\tSIOCGIFFLAGS                                = 0x8913\n\tSIOCGIFHWADDR                               = 0x8927\n\tSIOCGIFINDEX                                = 0x8933\n\tSIOCGIFMAP                                  = 0x8970\n\tSIOCGIFMEM                                  = 0x891f\n\tSIOCGIFMETRIC                               = 0x891d\n\tSIOCGIFMTU                                  = 0x8921\n\tSIOCGIFNAME                                 = 0x8910\n\tSIOCGIFNETMASK                              = 0x891b\n\tSIOCGIFPFLAGS                               = 0x8935\n\tSIOCGIFSLAVE                                = 0x8929\n\tSIOCGIFTXQLEN                               = 0x8942\n\tSIOCGIFVLAN                                 = 0x8982\n\tSIOCGMIIPHY                                 = 0x8947\n\tSIOCGMIIREG                                 = 0x8948\n\tSIOCGPPPCSTATS                              = 0x89f2\n\tSIOCGPPPSTATS                               = 0x89f0\n\tSIOCGPPPVER                                 = 0x89f1\n\tSIOCGRARP                                   = 0x8961\n\tSIOCGSKNS                                   = 0x894c\n\tSIOCGSTAMP                                  = 0x8906\n\tSIOCGSTAMPNS                                = 0x8907\n\tSIOCGSTAMPNS_OLD                            = 0x8907\n\tSIOCGSTAMP_OLD                              = 0x8906\n\tSIOCKCMATTACH                               = 0x89e0\n\tSIOCKCMCLONE                                = 0x89e2\n\tSIOCKCMUNATTACH                             = 0x89e1\n\tSIOCOUTQNSD                                 = 0x894b\n\tSIOCPROTOPRIVATE                            = 0x89e0\n\tSIOCRTMSG                                   = 0x890d\n\tSIOCSARP                                    = 0x8955\n\tSIOCSHWTSTAMP                               = 0x89b0\n\tSIOCSIFADDR                                 = 0x8916\n\tSIOCSIFBR                                   = 0x8941\n\tSIOCSIFBRDADDR                              = 0x891a\n\tSIOCSIFDSTADDR                              = 0x8918\n\tSIOCSIFENCAP                                = 0x8926\n\tSIOCSIFFLAGS                                = 0x8914\n\tSIOCSIFHWADDR                               = 0x8924\n\tSIOCSIFHWBROADCAST                          = 0x8937\n\tSIOCSIFLINK                                 = 0x8911\n\tSIOCSIFMAP                                  = 0x8971\n\tSIOCSIFMEM                                  = 0x8920\n\tSIOCSIFMETRIC                               = 0x891e\n\tSIOCSIFMTU                                  = 0x8922\n\tSIOCSIFNAME                                 = 0x8923\n\tSIOCSIFNETMASK                              = 0x891c\n\tSIOCSIFPFLAGS                               = 0x8934\n\tSIOCSIFSLAVE                                = 0x8930\n\tSIOCSIFTXQLEN                               = 0x8943\n\tSIOCSIFVLAN                                 = 0x8983\n\tSIOCSMIIREG                                 = 0x8949\n\tSIOCSRARP                                   = 0x8962\n\tSIOCWANDEV                                  = 0x894a\n\tSK_DIAG_BPF_STORAGE_MAX                     = 0x3\n\tSK_DIAG_BPF_STORAGE_REQ_MAX                 = 0x1\n\tSMACK_MAGIC                                 = 0x43415d53\n\tSMART_AUTOSAVE                              = 0xd2\n\tSMART_AUTO_OFFLINE                          = 0xdb\n\tSMART_DISABLE                               = 0xd9\n\tSMART_ENABLE                                = 0xd8\n\tSMART_HCYL_PASS                             = 0xc2\n\tSMART_IMMEDIATE_OFFLINE                     = 0xd4\n\tSMART_LCYL_PASS                             = 0x4f\n\tSMART_READ_LOG_SECTOR                       = 0xd5\n\tSMART_READ_THRESHOLDS                       = 0xd1\n\tSMART_READ_VALUES                           = 0xd0\n\tSMART_SAVE                                  = 0xd3\n\tSMART_STATUS                                = 0xda\n\tSMART_WRITE_LOG_SECTOR                      = 0xd6\n\tSMART_WRITE_THRESHOLDS                      = 0xd7\n\tSMB2_SUPER_MAGIC                            = 0xfe534d42\n\tSMB_SUPER_MAGIC                             = 0x517b\n\tSOCKFS_MAGIC                                = 0x534f434b\n\tSOCK_BUF_LOCK_MASK                          = 0x3\n\tSOCK_DCCP                                   = 0x6\n\tSOCK_DESTROY                                = 0x15\n\tSOCK_DIAG_BY_FAMILY                         = 0x14\n\tSOCK_IOC_TYPE                               = 0x89\n\tSOCK_PACKET                                 = 0xa\n\tSOCK_RAW                                    = 0x3\n\tSOCK_RCVBUF_LOCK                            = 0x2\n\tSOCK_RDM                                    = 0x4\n\tSOCK_SEQPACKET                              = 0x5\n\tSOCK_SNDBUF_LOCK                            = 0x1\n\tSOCK_TXREHASH_DEFAULT                       = 0xff\n\tSOCK_TXREHASH_DISABLED                      = 0x0\n\tSOCK_TXREHASH_ENABLED                       = 0x1\n\tSOL_AAL                                     = 0x109\n\tSOL_ALG                                     = 0x117\n\tSOL_ATM                                     = 0x108\n\tSOL_CAIF                                    = 0x116\n\tSOL_CAN_BASE                                = 0x64\n\tSOL_CAN_RAW                                 = 0x65\n\tSOL_DCCP                                    = 0x10d\n\tSOL_DECNET                                  = 0x105\n\tSOL_ICMPV6                                  = 0x3a\n\tSOL_IP                                      = 0x0\n\tSOL_IPV6                                    = 0x29\n\tSOL_IRDA                                    = 0x10a\n\tSOL_IUCV                                    = 0x115\n\tSOL_KCM                                     = 0x119\n\tSOL_LLC                                     = 0x10c\n\tSOL_MCTP                                    = 0x11d\n\tSOL_MPTCP                                   = 0x11c\n\tSOL_NETBEUI                                 = 0x10b\n\tSOL_NETLINK                                 = 0x10e\n\tSOL_NFC                                     = 0x118\n\tSOL_PACKET                                  = 0x107\n\tSOL_PNPIPE                                  = 0x113\n\tSOL_PPPOL2TP                                = 0x111\n\tSOL_RAW                                     = 0xff\n\tSOL_RDS                                     = 0x114\n\tSOL_RXRPC                                   = 0x110\n\tSOL_SMC                                     = 0x11e\n\tSOL_TCP                                     = 0x6\n\tSOL_TIPC                                    = 0x10f\n\tSOL_TLS                                     = 0x11a\n\tSOL_UDP                                     = 0x11\n\tSOL_VSOCK                                   = 0x11f\n\tSOL_X25                                     = 0x106\n\tSOL_XDP                                     = 0x11b\n\tSOMAXCONN                                   = 0x1000\n\tSO_ATTACH_FILTER                            = 0x1a\n\tSO_DEBUG                                    = 0x1\n\tSO_DETACH_BPF                               = 0x1b\n\tSO_DETACH_FILTER                            = 0x1b\n\tSO_EE_CODE_TXTIME_INVALID_PARAM             = 0x1\n\tSO_EE_CODE_TXTIME_MISSED                    = 0x2\n\tSO_EE_CODE_ZEROCOPY_COPIED                  = 0x1\n\tSO_EE_ORIGIN_ICMP                           = 0x2\n\tSO_EE_ORIGIN_ICMP6                          = 0x3\n\tSO_EE_ORIGIN_LOCAL                          = 0x1\n\tSO_EE_ORIGIN_NONE                           = 0x0\n\tSO_EE_ORIGIN_TIMESTAMPING                   = 0x4\n\tSO_EE_ORIGIN_TXSTATUS                       = 0x4\n\tSO_EE_ORIGIN_TXTIME                         = 0x6\n\tSO_EE_ORIGIN_ZEROCOPY                       = 0x5\n\tSO_EE_RFC4884_FLAG_INVALID                  = 0x1\n\tSO_GET_FILTER                               = 0x1a\n\tSO_NO_CHECK                                 = 0xb\n\tSO_PEERNAME                                 = 0x1c\n\tSO_PRIORITY                                 = 0xc\n\tSO_TIMESTAMP                                = 0x1d\n\tSO_TIMESTAMP_OLD                            = 0x1d\n\tSO_VM_SOCKETS_BUFFER_MAX_SIZE               = 0x2\n\tSO_VM_SOCKETS_BUFFER_MIN_SIZE               = 0x1\n\tSO_VM_SOCKETS_BUFFER_SIZE                   = 0x0\n\tSO_VM_SOCKETS_CONNECT_TIMEOUT               = 0x6\n\tSO_VM_SOCKETS_CONNECT_TIMEOUT_NEW           = 0x8\n\tSO_VM_SOCKETS_CONNECT_TIMEOUT_OLD           = 0x6\n\tSO_VM_SOCKETS_NONBLOCK_TXRX                 = 0x7\n\tSO_VM_SOCKETS_PEER_HOST_VM_ID               = 0x3\n\tSO_VM_SOCKETS_TRUSTED                       = 0x5\n\tSPLICE_F_GIFT                               = 0x8\n\tSPLICE_F_MORE                               = 0x4\n\tSPLICE_F_MOVE                               = 0x1\n\tSPLICE_F_NONBLOCK                           = 0x2\n\tSQUASHFS_MAGIC                              = 0x73717368\n\tSTACK_END_MAGIC                             = 0x57ac6e9d\n\tSTATX_ALL                                   = 0xfff\n\tSTATX_ATIME                                 = 0x20\n\tSTATX_ATTR_APPEND                           = 0x20\n\tSTATX_ATTR_AUTOMOUNT                        = 0x1000\n\tSTATX_ATTR_COMPRESSED                       = 0x4\n\tSTATX_ATTR_DAX                              = 0x200000\n\tSTATX_ATTR_ENCRYPTED                        = 0x800\n\tSTATX_ATTR_IMMUTABLE                        = 0x10\n\tSTATX_ATTR_MOUNT_ROOT                       = 0x2000\n\tSTATX_ATTR_NODUMP                           = 0x40\n\tSTATX_ATTR_VERITY                           = 0x100000\n\tSTATX_ATTR_WRITE_ATOMIC                     = 0x400000\n\tSTATX_BASIC_STATS                           = 0x7ff\n\tSTATX_BLOCKS                                = 0x400\n\tSTATX_BTIME                                 = 0x800\n\tSTATX_CTIME                                 = 0x80\n\tSTATX_DIOALIGN                              = 0x2000\n\tSTATX_GID                                   = 0x10\n\tSTATX_INO                                   = 0x100\n\tSTATX_MNT_ID                                = 0x1000\n\tSTATX_MNT_ID_UNIQUE                         = 0x4000\n\tSTATX_MODE                                  = 0x2\n\tSTATX_MTIME                                 = 0x40\n\tSTATX_NLINK                                 = 0x4\n\tSTATX_SIZE                                  = 0x200\n\tSTATX_SUBVOL                                = 0x8000\n\tSTATX_TYPE                                  = 0x1\n\tSTATX_UID                                   = 0x8\n\tSTATX_WRITE_ATOMIC                          = 0x10000\n\tSTATX__RESERVED                             = 0x80000000\n\tSYNC_FILE_RANGE_WAIT_AFTER                  = 0x4\n\tSYNC_FILE_RANGE_WAIT_BEFORE                 = 0x1\n\tSYNC_FILE_RANGE_WRITE                       = 0x2\n\tSYNC_FILE_RANGE_WRITE_AND_WAIT              = 0x7\n\tSYSFS_MAGIC                                 = 0x62656572\n\tS_BLKSIZE                                   = 0x200\n\tS_IEXEC                                     = 0x40\n\tS_IFBLK                                     = 0x6000\n\tS_IFCHR                                     = 0x2000\n\tS_IFDIR                                     = 0x4000\n\tS_IFIFO                                     = 0x1000\n\tS_IFLNK                                     = 0xa000\n\tS_IFMT                                      = 0xf000\n\tS_IFREG                                     = 0x8000\n\tS_IFSOCK                                    = 0xc000\n\tS_IREAD                                     = 0x100\n\tS_IRGRP                                     = 0x20\n\tS_IROTH                                     = 0x4\n\tS_IRUSR                                     = 0x100\n\tS_IRWXG                                     = 0x38\n\tS_IRWXO                                     = 0x7\n\tS_IRWXU                                     = 0x1c0\n\tS_ISGID                                     = 0x400\n\tS_ISUID                                     = 0x800\n\tS_ISVTX                                     = 0x200\n\tS_IWGRP                                     = 0x10\n\tS_IWOTH                                     = 0x2\n\tS_IWRITE                                    = 0x80\n\tS_IWUSR                                     = 0x80\n\tS_IXGRP                                     = 0x8\n\tS_IXOTH                                     = 0x1\n\tS_IXUSR                                     = 0x40\n\tTAB0                                        = 0x0\n\tTASKSTATS_CMD_ATTR_MAX                      = 0x4\n\tTASKSTATS_CMD_MAX                           = 0x2\n\tTASKSTATS_GENL_NAME                         = \"TASKSTATS\"\n\tTASKSTATS_GENL_VERSION                      = 0x1\n\tTASKSTATS_TYPE_MAX                          = 0x6\n\tTASKSTATS_VERSION                           = 0xe\n\tTCIFLUSH                                    = 0x0\n\tTCIOFF                                      = 0x2\n\tTCIOFLUSH                                   = 0x2\n\tTCION                                       = 0x3\n\tTCOFLUSH                                    = 0x1\n\tTCOOFF                                      = 0x0\n\tTCOON                                       = 0x1\n\tTCPOPT_EOL                                  = 0x0\n\tTCPOPT_MAXSEG                               = 0x2\n\tTCPOPT_NOP                                  = 0x1\n\tTCPOPT_SACK                                 = 0x5\n\tTCPOPT_SACK_PERMITTED                       = 0x4\n\tTCPOPT_TIMESTAMP                            = 0x8\n\tTCPOPT_TSTAMP_HDR                           = 0x101080a\n\tTCPOPT_WINDOW                               = 0x3\n\tTCP_CC_INFO                                 = 0x1a\n\tTCP_CM_INQ                                  = 0x24\n\tTCP_CONGESTION                              = 0xd\n\tTCP_COOKIE_IN_ALWAYS                        = 0x1\n\tTCP_COOKIE_MAX                              = 0x10\n\tTCP_COOKIE_MIN                              = 0x8\n\tTCP_COOKIE_OUT_NEVER                        = 0x2\n\tTCP_COOKIE_PAIR_SIZE                        = 0x20\n\tTCP_COOKIE_TRANSACTIONS                     = 0xf\n\tTCP_CORK                                    = 0x3\n\tTCP_DEFER_ACCEPT                            = 0x9\n\tTCP_FASTOPEN                                = 0x17\n\tTCP_FASTOPEN_CONNECT                        = 0x1e\n\tTCP_FASTOPEN_KEY                            = 0x21\n\tTCP_FASTOPEN_NO_COOKIE                      = 0x22\n\tTCP_INFO                                    = 0xb\n\tTCP_INQ                                     = 0x24\n\tTCP_KEEPCNT                                 = 0x6\n\tTCP_KEEPIDLE                                = 0x4\n\tTCP_KEEPINTVL                               = 0x5\n\tTCP_LINGER2                                 = 0x8\n\tTCP_MAXSEG                                  = 0x2\n\tTCP_MAXWIN                                  = 0xffff\n\tTCP_MAX_WINSHIFT                            = 0xe\n\tTCP_MD5SIG                                  = 0xe\n\tTCP_MD5SIG_EXT                              = 0x20\n\tTCP_MD5SIG_FLAG_IFINDEX                     = 0x2\n\tTCP_MD5SIG_FLAG_PREFIX                      = 0x1\n\tTCP_MD5SIG_MAXKEYLEN                        = 0x50\n\tTCP_MSS                                     = 0x200\n\tTCP_MSS_DEFAULT                             = 0x218\n\tTCP_MSS_DESIRED                             = 0x4c4\n\tTCP_NODELAY                                 = 0x1\n\tTCP_NOTSENT_LOWAT                           = 0x19\n\tTCP_QUEUE_SEQ                               = 0x15\n\tTCP_QUICKACK                                = 0xc\n\tTCP_REPAIR                                  = 0x13\n\tTCP_REPAIR_OFF                              = 0x0\n\tTCP_REPAIR_OFF_NO_WP                        = -0x1\n\tTCP_REPAIR_ON                               = 0x1\n\tTCP_REPAIR_OPTIONS                          = 0x16\n\tTCP_REPAIR_QUEUE                            = 0x14\n\tTCP_REPAIR_WINDOW                           = 0x1d\n\tTCP_SAVED_SYN                               = 0x1c\n\tTCP_SAVE_SYN                                = 0x1b\n\tTCP_SYNCNT                                  = 0x7\n\tTCP_S_DATA_IN                               = 0x4\n\tTCP_S_DATA_OUT                              = 0x8\n\tTCP_THIN_DUPACK                             = 0x11\n\tTCP_THIN_LINEAR_TIMEOUTS                    = 0x10\n\tTCP_TIMESTAMP                               = 0x18\n\tTCP_TX_DELAY                                = 0x25\n\tTCP_ULP                                     = 0x1f\n\tTCP_USER_TIMEOUT                            = 0x12\n\tTCP_V4_FLOW                                 = 0x1\n\tTCP_V6_FLOW                                 = 0x5\n\tTCP_WINDOW_CLAMP                            = 0xa\n\tTCP_ZEROCOPY_RECEIVE                        = 0x23\n\tTFD_TIMER_ABSTIME                           = 0x1\n\tTFD_TIMER_CANCEL_ON_SET                     = 0x2\n\tTIMER_ABSTIME                               = 0x1\n\tTIOCM_DTR                                   = 0x2\n\tTIOCM_LE                                    = 0x1\n\tTIOCM_RTS                                   = 0x4\n\tTIOCPKT_DATA                                = 0x0\n\tTIOCPKT_DOSTOP                              = 0x20\n\tTIOCPKT_FLUSHREAD                           = 0x1\n\tTIOCPKT_FLUSHWRITE                          = 0x2\n\tTIOCPKT_IOCTL                               = 0x40\n\tTIOCPKT_NOSTOP                              = 0x10\n\tTIOCPKT_START                               = 0x8\n\tTIOCPKT_STOP                                = 0x4\n\tTIPC_ADDR_ID                                = 0x3\n\tTIPC_ADDR_MCAST                             = 0x1\n\tTIPC_ADDR_NAME                              = 0x2\n\tTIPC_ADDR_NAMESEQ                           = 0x1\n\tTIPC_AEAD_ALG_NAME                          = 0x20\n\tTIPC_AEAD_KEYLEN_MAX                        = 0x24\n\tTIPC_AEAD_KEYLEN_MIN                        = 0x14\n\tTIPC_AEAD_KEY_SIZE_MAX                      = 0x48\n\tTIPC_CFG_SRV                                = 0x0\n\tTIPC_CLUSTER_BITS                           = 0xc\n\tTIPC_CLUSTER_MASK                           = 0xfff000\n\tTIPC_CLUSTER_OFFSET                         = 0xc\n\tTIPC_CLUSTER_SIZE                           = 0xfff\n\tTIPC_CONN_SHUTDOWN                          = 0x5\n\tTIPC_CONN_TIMEOUT                           = 0x82\n\tTIPC_CRITICAL_IMPORTANCE                    = 0x3\n\tTIPC_DESTNAME                               = 0x3\n\tTIPC_DEST_DROPPABLE                         = 0x81\n\tTIPC_ERRINFO                                = 0x1\n\tTIPC_ERR_NO_NAME                            = 0x1\n\tTIPC_ERR_NO_NODE                            = 0x3\n\tTIPC_ERR_NO_PORT                            = 0x2\n\tTIPC_ERR_OVERLOAD                           = 0x4\n\tTIPC_GROUP_JOIN                             = 0x87\n\tTIPC_GROUP_LEAVE                            = 0x88\n\tTIPC_GROUP_LOOPBACK                         = 0x1\n\tTIPC_GROUP_MEMBER_EVTS                      = 0x2\n\tTIPC_HIGH_IMPORTANCE                        = 0x2\n\tTIPC_IMPORTANCE                             = 0x7f\n\tTIPC_LINK_STATE                             = 0x2\n\tTIPC_LOW_IMPORTANCE                         = 0x0\n\tTIPC_MAX_BEARER_NAME                        = 0x20\n\tTIPC_MAX_IF_NAME                            = 0x10\n\tTIPC_MAX_LINK_NAME                          = 0x44\n\tTIPC_MAX_MEDIA_NAME                         = 0x10\n\tTIPC_MAX_USER_MSG_SIZE                      = 0x101d0\n\tTIPC_MCAST_BROADCAST                        = 0x85\n\tTIPC_MCAST_REPLICAST                        = 0x86\n\tTIPC_MEDIUM_IMPORTANCE                      = 0x1\n\tTIPC_NODEID_LEN                             = 0x10\n\tTIPC_NODELAY                                = 0x8a\n\tTIPC_NODE_BITS                              = 0xc\n\tTIPC_NODE_MASK                              = 0xfff\n\tTIPC_NODE_OFFSET                            = 0x0\n\tTIPC_NODE_RECVQ_DEPTH                       = 0x83\n\tTIPC_NODE_SIZE                              = 0xfff\n\tTIPC_NODE_STATE                             = 0x0\n\tTIPC_OK                                     = 0x0\n\tTIPC_PUBLISHED                              = 0x1\n\tTIPC_REKEYING_NOW                           = 0xffffffff\n\tTIPC_RESERVED_TYPES                         = 0x40\n\tTIPC_RETDATA                                = 0x2\n\tTIPC_SERVICE_ADDR                           = 0x2\n\tTIPC_SERVICE_RANGE                          = 0x1\n\tTIPC_SOCKET_ADDR                            = 0x3\n\tTIPC_SOCK_RECVQ_DEPTH                       = 0x84\n\tTIPC_SOCK_RECVQ_USED                        = 0x89\n\tTIPC_SRC_DROPPABLE                          = 0x80\n\tTIPC_SUBSCR_TIMEOUT                         = 0x3\n\tTIPC_SUB_CANCEL                             = 0x4\n\tTIPC_SUB_PORTS                              = 0x1\n\tTIPC_SUB_SERVICE                            = 0x2\n\tTIPC_TOP_SRV                                = 0x1\n\tTIPC_WAIT_FOREVER                           = 0xffffffff\n\tTIPC_WITHDRAWN                              = 0x2\n\tTIPC_ZONE_BITS                              = 0x8\n\tTIPC_ZONE_CLUSTER_MASK                      = 0xfffff000\n\tTIPC_ZONE_MASK                              = 0xff000000\n\tTIPC_ZONE_OFFSET                            = 0x18\n\tTIPC_ZONE_SCOPE                             = 0x1\n\tTIPC_ZONE_SIZE                              = 0xff\n\tTMPFS_MAGIC                                 = 0x1021994\n\tTPACKET_ALIGNMENT                           = 0x10\n\tTPACKET_HDRLEN                              = 0x34\n\tTP_STATUS_AVAILABLE                         = 0x0\n\tTP_STATUS_BLK_TMO                           = 0x20\n\tTP_STATUS_COPY                              = 0x2\n\tTP_STATUS_CSUMNOTREADY                      = 0x8\n\tTP_STATUS_CSUM_VALID                        = 0x80\n\tTP_STATUS_GSO_TCP                           = 0x100\n\tTP_STATUS_KERNEL                            = 0x0\n\tTP_STATUS_LOSING                            = 0x4\n\tTP_STATUS_SENDING                           = 0x2\n\tTP_STATUS_SEND_REQUEST                      = 0x1\n\tTP_STATUS_TS_RAW_HARDWARE                   = 0x80000000\n\tTP_STATUS_TS_SOFTWARE                       = 0x20000000\n\tTP_STATUS_TS_SYS_HARDWARE                   = 0x40000000\n\tTP_STATUS_USER                              = 0x1\n\tTP_STATUS_VLAN_TPID_VALID                   = 0x40\n\tTP_STATUS_VLAN_VALID                        = 0x10\n\tTP_STATUS_WRONG_FORMAT                      = 0x4\n\tTRACEFS_MAGIC                               = 0x74726163\n\tTS_COMM_LEN                                 = 0x20\n\tUDF_SUPER_MAGIC                             = 0x15013346\n\tUDP_CORK                                    = 0x1\n\tUDP_ENCAP                                   = 0x64\n\tUDP_ENCAP_ESPINUDP                          = 0x2\n\tUDP_ENCAP_ESPINUDP_NON_IKE                  = 0x1\n\tUDP_ENCAP_GTP0                              = 0x4\n\tUDP_ENCAP_GTP1U                             = 0x5\n\tUDP_ENCAP_L2TPINUDP                         = 0x3\n\tUDP_GRO                                     = 0x68\n\tUDP_NO_CHECK6_RX                            = 0x66\n\tUDP_NO_CHECK6_TX                            = 0x65\n\tUDP_SEGMENT                                 = 0x67\n\tUDP_V4_FLOW                                 = 0x2\n\tUDP_V6_FLOW                                 = 0x6\n\tUMOUNT_NOFOLLOW                             = 0x8\n\tUSBDEVICE_SUPER_MAGIC                       = 0x9fa2\n\tUTIME_NOW                                   = 0x3fffffff\n\tUTIME_OMIT                                  = 0x3ffffffe\n\tV9FS_MAGIC                                  = 0x1021997\n\tVERASE                                      = 0x2\n\tVINTR                                       = 0x0\n\tVKILL                                       = 0x3\n\tVLNEXT                                      = 0xf\n\tVMADDR_CID_ANY                              = 0xffffffff\n\tVMADDR_CID_HOST                             = 0x2\n\tVMADDR_CID_HYPERVISOR                       = 0x0\n\tVMADDR_CID_LOCAL                            = 0x1\n\tVMADDR_FLAG_TO_HOST                         = 0x1\n\tVMADDR_PORT_ANY                             = 0xffffffff\n\tVM_SOCKETS_INVALID_VERSION                  = 0xffffffff\n\tVQUIT                                       = 0x1\n\tVT0                                         = 0x0\n\tWAKE_MAGIC                                  = 0x20\n\tWALL                                        = 0x40000000\n\tWCLONE                                      = 0x80000000\n\tWCONTINUED                                  = 0x8\n\tWDIOC_SETPRETIMEOUT                         = 0xc0045708\n\tWDIOC_SETTIMEOUT                            = 0xc0045706\n\tWDIOF_ALARMONLY                             = 0x400\n\tWDIOF_CARDRESET                             = 0x20\n\tWDIOF_EXTERN1                               = 0x4\n\tWDIOF_EXTERN2                               = 0x8\n\tWDIOF_FANFAULT                              = 0x2\n\tWDIOF_KEEPALIVEPING                         = 0x8000\n\tWDIOF_MAGICCLOSE                            = 0x100\n\tWDIOF_OVERHEAT                              = 0x1\n\tWDIOF_POWEROVER                             = 0x40\n\tWDIOF_POWERUNDER                            = 0x10\n\tWDIOF_PRETIMEOUT                            = 0x200\n\tWDIOF_SETTIMEOUT                            = 0x80\n\tWDIOF_UNKNOWN                               = -0x1\n\tWDIOS_DISABLECARD                           = 0x1\n\tWDIOS_ENABLECARD                            = 0x2\n\tWDIOS_TEMPPANIC                             = 0x4\n\tWDIOS_UNKNOWN                               = -0x1\n\tWEXITED                                     = 0x4\n\tWGALLOWEDIP_A_MAX                           = 0x3\n\tWGDEVICE_A_MAX                              = 0x8\n\tWGPEER_A_MAX                                = 0xa\n\tWG_CMD_MAX                                  = 0x1\n\tWG_GENL_NAME                                = \"wireguard\"\n\tWG_GENL_VERSION                             = 0x1\n\tWG_KEY_LEN                                  = 0x20\n\tWIN_ACKMEDIACHANGE                          = 0xdb\n\tWIN_CHECKPOWERMODE1                         = 0xe5\n\tWIN_CHECKPOWERMODE2                         = 0x98\n\tWIN_DEVICE_RESET                            = 0x8\n\tWIN_DIAGNOSE                                = 0x90\n\tWIN_DOORLOCK                                = 0xde\n\tWIN_DOORUNLOCK                              = 0xdf\n\tWIN_DOWNLOAD_MICROCODE                      = 0x92\n\tWIN_FLUSH_CACHE                             = 0xe7\n\tWIN_FLUSH_CACHE_EXT                         = 0xea\n\tWIN_FORMAT                                  = 0x50\n\tWIN_GETMEDIASTATUS                          = 0xda\n\tWIN_IDENTIFY                                = 0xec\n\tWIN_IDENTIFY_DMA                            = 0xee\n\tWIN_IDLEIMMEDIATE                           = 0xe1\n\tWIN_INIT                                    = 0x60\n\tWIN_MEDIAEJECT                              = 0xed\n\tWIN_MULTREAD                                = 0xc4\n\tWIN_MULTREAD_EXT                            = 0x29\n\tWIN_MULTWRITE                               = 0xc5\n\tWIN_MULTWRITE_EXT                           = 0x39\n\tWIN_NOP                                     = 0x0\n\tWIN_PACKETCMD                               = 0xa0\n\tWIN_PIDENTIFY                               = 0xa1\n\tWIN_POSTBOOT                                = 0xdc\n\tWIN_PREBOOT                                 = 0xdd\n\tWIN_QUEUED_SERVICE                          = 0xa2\n\tWIN_READ                                    = 0x20\n\tWIN_READDMA                                 = 0xc8\n\tWIN_READDMA_EXT                             = 0x25\n\tWIN_READDMA_ONCE                            = 0xc9\n\tWIN_READDMA_QUEUED                          = 0xc7\n\tWIN_READDMA_QUEUED_EXT                      = 0x26\n\tWIN_READ_BUFFER                             = 0xe4\n\tWIN_READ_EXT                                = 0x24\n\tWIN_READ_LONG                               = 0x22\n\tWIN_READ_LONG_ONCE                          = 0x23\n\tWIN_READ_NATIVE_MAX                         = 0xf8\n\tWIN_READ_NATIVE_MAX_EXT                     = 0x27\n\tWIN_READ_ONCE                               = 0x21\n\tWIN_RECAL                                   = 0x10\n\tWIN_RESTORE                                 = 0x10\n\tWIN_SECURITY_DISABLE                        = 0xf6\n\tWIN_SECURITY_ERASE_PREPARE                  = 0xf3\n\tWIN_SECURITY_ERASE_UNIT                     = 0xf4\n\tWIN_SECURITY_FREEZE_LOCK                    = 0xf5\n\tWIN_SECURITY_SET_PASS                       = 0xf1\n\tWIN_SECURITY_UNLOCK                         = 0xf2\n\tWIN_SEEK                                    = 0x70\n\tWIN_SETFEATURES                             = 0xef\n\tWIN_SETIDLE1                                = 0xe3\n\tWIN_SETIDLE2                                = 0x97\n\tWIN_SETMULT                                 = 0xc6\n\tWIN_SET_MAX                                 = 0xf9\n\tWIN_SET_MAX_EXT                             = 0x37\n\tWIN_SLEEPNOW1                               = 0xe6\n\tWIN_SLEEPNOW2                               = 0x99\n\tWIN_SMART                                   = 0xb0\n\tWIN_SPECIFY                                 = 0x91\n\tWIN_SRST                                    = 0x8\n\tWIN_STANDBY                                 = 0xe2\n\tWIN_STANDBY2                                = 0x96\n\tWIN_STANDBYNOW1                             = 0xe0\n\tWIN_STANDBYNOW2                             = 0x94\n\tWIN_VERIFY                                  = 0x40\n\tWIN_VERIFY_EXT                              = 0x42\n\tWIN_VERIFY_ONCE                             = 0x41\n\tWIN_WRITE                                   = 0x30\n\tWIN_WRITEDMA                                = 0xca\n\tWIN_WRITEDMA_EXT                            = 0x35\n\tWIN_WRITEDMA_ONCE                           = 0xcb\n\tWIN_WRITEDMA_QUEUED                         = 0xcc\n\tWIN_WRITEDMA_QUEUED_EXT                     = 0x36\n\tWIN_WRITE_BUFFER                            = 0xe8\n\tWIN_WRITE_EXT                               = 0x34\n\tWIN_WRITE_LONG                              = 0x32\n\tWIN_WRITE_LONG_ONCE                         = 0x33\n\tWIN_WRITE_ONCE                              = 0x31\n\tWIN_WRITE_SAME                              = 0xe9\n\tWIN_WRITE_VERIFY                            = 0x3c\n\tWNOHANG                                     = 0x1\n\tWNOTHREAD                                   = 0x20000000\n\tWNOWAIT                                     = 0x1000000\n\tWSTOPPED                                    = 0x2\n\tWUNTRACED                                   = 0x2\n\tXATTR_CREATE                                = 0x1\n\tXATTR_REPLACE                               = 0x2\n\tXDP_COPY                                    = 0x2\n\tXDP_FLAGS_DRV_MODE                          = 0x4\n\tXDP_FLAGS_HW_MODE                           = 0x8\n\tXDP_FLAGS_MASK                              = 0x1f\n\tXDP_FLAGS_MODES                             = 0xe\n\tXDP_FLAGS_REPLACE                           = 0x10\n\tXDP_FLAGS_SKB_MODE                          = 0x2\n\tXDP_FLAGS_UPDATE_IF_NOEXIST                 = 0x1\n\tXDP_MMAP_OFFSETS                            = 0x1\n\tXDP_OPTIONS                                 = 0x8\n\tXDP_OPTIONS_ZEROCOPY                        = 0x1\n\tXDP_PACKET_HEADROOM                         = 0x100\n\tXDP_PGOFF_RX_RING                           = 0x0\n\tXDP_PGOFF_TX_RING                           = 0x80000000\n\tXDP_PKT_CONTD                               = 0x1\n\tXDP_RING_NEED_WAKEUP                        = 0x1\n\tXDP_RX_RING                                 = 0x2\n\tXDP_SHARED_UMEM                             = 0x1\n\tXDP_STATISTICS                              = 0x7\n\tXDP_TXMD_FLAGS_CHECKSUM                     = 0x2\n\tXDP_TXMD_FLAGS_TIMESTAMP                    = 0x1\n\tXDP_TX_METADATA                             = 0x2\n\tXDP_TX_RING                                 = 0x3\n\tXDP_UMEM_COMPLETION_RING                    = 0x6\n\tXDP_UMEM_FILL_RING                          = 0x5\n\tXDP_UMEM_PGOFF_COMPLETION_RING              = 0x180000000\n\tXDP_UMEM_PGOFF_FILL_RING                    = 0x100000000\n\tXDP_UMEM_REG                                = 0x4\n\tXDP_UMEM_TX_METADATA_LEN                    = 0x4\n\tXDP_UMEM_TX_SW_CSUM                         = 0x2\n\tXDP_UMEM_UNALIGNED_CHUNK_FLAG               = 0x1\n\tXDP_USE_NEED_WAKEUP                         = 0x8\n\tXDP_USE_SG                                  = 0x10\n\tXDP_ZEROCOPY                                = 0x4\n\tXENFS_SUPER_MAGIC                           = 0xabba1974\n\tXFS_SUPER_MAGIC                             = 0x58465342\n\tZONEFS_MAGIC                                = 0x5a4f4653\n\t_HIDIOCGRAWNAME_LEN                         = 0x80\n\t_HIDIOCGRAWPHYS_LEN                         = 0x40\n\t_HIDIOCGRAWUNIQ_LEN                         = 0x40\n)\n\n// Errors\nconst (\n\tE2BIG       = syscall.Errno(0x7)\n\tEACCES      = syscall.Errno(0xd)\n\tEAGAIN      = syscall.Errno(0xb)\n\tEBADF       = syscall.Errno(0x9)\n\tEBUSY       = syscall.Errno(0x10)\n\tECHILD      = syscall.Errno(0xa)\n\tEDOM        = syscall.Errno(0x21)\n\tEEXIST      = syscall.Errno(0x11)\n\tEFAULT      = syscall.Errno(0xe)\n\tEFBIG       = syscall.Errno(0x1b)\n\tEINTR       = syscall.Errno(0x4)\n\tEINVAL      = syscall.Errno(0x16)\n\tEIO         = syscall.Errno(0x5)\n\tEISDIR      = syscall.Errno(0x15)\n\tEMFILE      = syscall.Errno(0x18)\n\tEMLINK      = syscall.Errno(0x1f)\n\tENFILE      = syscall.Errno(0x17)\n\tENODEV      = syscall.Errno(0x13)\n\tENOENT      = syscall.Errno(0x2)\n\tENOEXEC     = syscall.Errno(0x8)\n\tENOMEM      = syscall.Errno(0xc)\n\tENOSPC      = syscall.Errno(0x1c)\n\tENOTBLK     = syscall.Errno(0xf)\n\tENOTDIR     = syscall.Errno(0x14)\n\tENOTTY      = syscall.Errno(0x19)\n\tENXIO       = syscall.Errno(0x6)\n\tEPERM       = syscall.Errno(0x1)\n\tEPIPE       = syscall.Errno(0x20)\n\tERANGE      = syscall.Errno(0x22)\n\tEROFS       = syscall.Errno(0x1e)\n\tESPIPE      = syscall.Errno(0x1d)\n\tESRCH       = syscall.Errno(0x3)\n\tETXTBSY     = syscall.Errno(0x1a)\n\tEWOULDBLOCK = syscall.Errno(0xb)\n\tEXDEV       = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT = syscall.Signal(0x6)\n\tSIGALRM = syscall.Signal(0xe)\n\tSIGFPE  = syscall.Signal(0x8)\n\tSIGHUP  = syscall.Signal(0x1)\n\tSIGILL  = syscall.Signal(0x4)\n\tSIGINT  = syscall.Signal(0x2)\n\tSIGIOT  = syscall.Signal(0x6)\n\tSIGKILL = syscall.Signal(0x9)\n\tSIGPIPE = syscall.Signal(0xd)\n\tSIGQUIT = syscall.Signal(0x3)\n\tSIGSEGV = syscall.Signal(0xb)\n\tSIGTERM = syscall.Signal(0xf)\n\tSIGTRAP = syscall.Signal(0x5)\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_386.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/386/include -m32\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build 386 && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/386/include -m32 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tB1000000                         = 0x1008\n\tB115200                          = 0x1002\n\tB1152000                         = 0x1009\n\tB1500000                         = 0x100a\n\tB2000000                         = 0x100b\n\tB230400                          = 0x1003\n\tB2500000                         = 0x100c\n\tB3000000                         = 0x100d\n\tB3500000                         = 0x100e\n\tB4000000                         = 0x100f\n\tB460800                          = 0x1004\n\tB500000                          = 0x1005\n\tB57600                           = 0x1001\n\tB576000                          = 0x1006\n\tB921600                          = 0x1007\n\tBLKALIGNOFF                      = 0x127a\n\tBLKBSZGET                        = 0x80041270\n\tBLKBSZSET                        = 0x40041271\n\tBLKDISCARD                       = 0x1277\n\tBLKDISCARDZEROES                 = 0x127c\n\tBLKFLSBUF                        = 0x1261\n\tBLKFRAGET                        = 0x1265\n\tBLKFRASET                        = 0x1264\n\tBLKGETDISKSEQ                    = 0x80081280\n\tBLKGETSIZE                       = 0x1260\n\tBLKGETSIZE64                     = 0x80041272\n\tBLKIOMIN                         = 0x1278\n\tBLKIOOPT                         = 0x1279\n\tBLKPBSZGET                       = 0x127b\n\tBLKRAGET                         = 0x1263\n\tBLKRASET                         = 0x1262\n\tBLKROGET                         = 0x125e\n\tBLKROSET                         = 0x125d\n\tBLKROTATIONAL                    = 0x127e\n\tBLKRRPART                        = 0x125f\n\tBLKSECDISCARD                    = 0x127d\n\tBLKSECTGET                       = 0x1267\n\tBLKSECTSET                       = 0x1266\n\tBLKSSZGET                        = 0x1268\n\tBLKZEROOUT                       = 0x127f\n\tBOTHER                           = 0x1000\n\tBS1                              = 0x2000\n\tBSDLY                            = 0x2000\n\tCBAUD                            = 0x100f\n\tCBAUDEX                          = 0x1000\n\tCIBAUD                           = 0x100f0000\n\tCLOCAL                           = 0x800\n\tCR1                              = 0x200\n\tCR2                              = 0x400\n\tCR3                              = 0x600\n\tCRDLY                            = 0x600\n\tCREAD                            = 0x80\n\tCS6                              = 0x10\n\tCS7                              = 0x20\n\tCS8                              = 0x30\n\tCSIZE                            = 0x30\n\tCSTOPB                           = 0x40\n\tECCGETLAYOUT                     = 0x81484d11\n\tECCGETSTATS                      = 0x80104d12\n\tECHOCTL                          = 0x200\n\tECHOE                            = 0x10\n\tECHOK                            = 0x20\n\tECHOKE                           = 0x800\n\tECHONL                           = 0x40\n\tECHOPRT                          = 0x400\n\tEFD_CLOEXEC                      = 0x80000\n\tEFD_NONBLOCK                     = 0x800\n\tEPIOCGPARAMS                     = 0x80088a02\n\tEPIOCSPARAMS                     = 0x40088a01\n\tEPOLL_CLOEXEC                    = 0x80000\n\tEXTPROC                          = 0x10000\n\tFF1                              = 0x8000\n\tFFDLY                            = 0x8000\n\tFICLONE                          = 0x40049409\n\tFICLONERANGE                     = 0x4020940d\n\tFLUSHO                           = 0x1000\n\tFP_XSTATE_MAGIC2                 = 0x46505845\n\tFS_IOC_ENABLE_VERITY             = 0x40806685\n\tFS_IOC_GETFLAGS                  = 0x80046601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x8010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x400c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x40106614\n\tFS_IOC_SETFLAGS                  = 0x40046602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x800c6613\n\tF_GETLK                          = 0xc\n\tF_GETLK64                        = 0xc\n\tF_GETOWN                         = 0x9\n\tF_RDLCK                          = 0x0\n\tF_SETLK                          = 0xd\n\tF_SETLK64                        = 0xd\n\tF_SETLKW                         = 0xe\n\tF_SETLKW64                       = 0xe\n\tF_SETOWN                         = 0x8\n\tF_UNLCK                          = 0x2\n\tF_WRLCK                          = 0x1\n\tHIDIOCGRAWINFO                   = 0x80084803\n\tHIDIOCGRDESC                     = 0x90044802\n\tHIDIOCGRDESCSIZE                 = 0x80044801\n\tHIDIOCREVOKE                     = 0x4004480d\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x8000\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x800\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9\n\tIPV6_FLOWINFO_MASK               = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK              = 0xffff0f00\n\tISIG                             = 0x1\n\tIUCLC                            = 0x200\n\tIXOFF                            = 0x1000\n\tIXON                             = 0x400\n\tMAP_32BIT                        = 0x40\n\tMAP_ABOVE4G                      = 0x80\n\tMAP_ANON                         = 0x20\n\tMAP_ANONYMOUS                    = 0x20\n\tMAP_DENYWRITE                    = 0x800\n\tMAP_EXECUTABLE                   = 0x1000\n\tMAP_GROWSDOWN                    = 0x100\n\tMAP_HUGETLB                      = 0x40000\n\tMAP_LOCKED                       = 0x2000\n\tMAP_NONBLOCK                     = 0x10000\n\tMAP_NORESERVE                    = 0x4000\n\tMAP_POPULATE                     = 0x8000\n\tMAP_STACK                        = 0x20000\n\tMAP_SYNC                         = 0x80000\n\tMCL_CURRENT                      = 0x1\n\tMCL_FUTURE                       = 0x2\n\tMCL_ONFAULT                      = 0x4\n\tMEMERASE                         = 0x40084d02\n\tMEMERASE64                       = 0x40104d14\n\tMEMGETBADBLOCK                   = 0x40084d0b\n\tMEMGETINFO                       = 0x80204d01\n\tMEMGETOOBSEL                     = 0x80c84d0a\n\tMEMGETREGIONCOUNT                = 0x80044d07\n\tMEMISLOCKED                      = 0x80084d17\n\tMEMLOCK                          = 0x40084d05\n\tMEMREAD                          = 0xc03c4d1a\n\tMEMREADOOB                       = 0xc00c4d04\n\tMEMSETBADBLOCK                   = 0x40084d0c\n\tMEMUNLOCK                        = 0x40084d06\n\tMEMWRITEOOB                      = 0xc00c4d03\n\tMTDFILEMODE                      = 0x4d13\n\tNFDBITS                          = 0x20\n\tNLDLY                            = 0x100\n\tNOFLSH                           = 0x80\n\tNS_GET_MNTNS_ID                  = 0x8008b705\n\tNS_GET_NSTYPE                    = 0xb703\n\tNS_GET_OWNER_UID                 = 0xb704\n\tNS_GET_PARENT                    = 0xb702\n\tNS_GET_PID_FROM_PIDNS            = 0x8004b706\n\tNS_GET_PID_IN_PIDNS              = 0x8004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x8004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x8004b709\n\tNS_GET_USERNS                    = 0xb701\n\tOLCUC                            = 0x2\n\tONLCR                            = 0x4\n\tOTPERASE                         = 0x400c4d19\n\tOTPGETREGIONCOUNT                = 0x40044d0e\n\tOTPGETREGIONINFO                 = 0x400c4d0f\n\tOTPLOCK                          = 0x800c4d10\n\tOTPSELECT                        = 0x80044d0d\n\tO_APPEND                         = 0x400\n\tO_ASYNC                          = 0x2000\n\tO_CLOEXEC                        = 0x80000\n\tO_CREAT                          = 0x40\n\tO_DIRECT                         = 0x4000\n\tO_DIRECTORY                      = 0x10000\n\tO_DSYNC                          = 0x1000\n\tO_EXCL                           = 0x80\n\tO_FSYNC                          = 0x101000\n\tO_LARGEFILE                      = 0x8000\n\tO_NDELAY                         = 0x800\n\tO_NOATIME                        = 0x40000\n\tO_NOCTTY                         = 0x100\n\tO_NOFOLLOW                       = 0x20000\n\tO_NONBLOCK                       = 0x800\n\tO_PATH                           = 0x200000\n\tO_RSYNC                          = 0x101000\n\tO_SYNC                           = 0x101000\n\tO_TMPFILE                        = 0x410000\n\tO_TRUNC                          = 0x200\n\tPARENB                           = 0x100\n\tPARODD                           = 0x200\n\tPENDIN                           = 0x4000\n\tPERF_EVENT_IOC_DISABLE           = 0x2401\n\tPERF_EVENT_IOC_ENABLE            = 0x2400\n\tPERF_EVENT_IOC_ID                = 0x80042407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4004240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x40042409\n\tPERF_EVENT_IOC_PERIOD            = 0x40082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc004240a\n\tPERF_EVENT_IOC_REFRESH           = 0x2402\n\tPERF_EVENT_IOC_RESET             = 0x2403\n\tPERF_EVENT_IOC_SET_BPF           = 0x40042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x40042406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x2405\n\tPPPIOCATTACH                     = 0x4004743d\n\tPPPIOCATTCHAN                    = 0x40047438\n\tPPPIOCBRIDGECHAN                 = 0x40047435\n\tPPPIOCCONNECT                    = 0x4004743a\n\tPPPIOCDETACH                     = 0x4004743c\n\tPPPIOCDISCONN                    = 0x7439\n\tPPPIOCGASYNCMAP                  = 0x80047458\n\tPPPIOCGCHAN                      = 0x80047437\n\tPPPIOCGDEBUG                     = 0x80047441\n\tPPPIOCGFLAGS                     = 0x8004745a\n\tPPPIOCGIDLE                      = 0x8008743f\n\tPPPIOCGIDLE32                    = 0x8008743f\n\tPPPIOCGIDLE64                    = 0x8010743f\n\tPPPIOCGL2TPSTATS                 = 0x80487436\n\tPPPIOCGMRU                       = 0x80047453\n\tPPPIOCGRASYNCMAP                 = 0x80047455\n\tPPPIOCGUNIT                      = 0x80047456\n\tPPPIOCGXASYNCMAP                 = 0x80207450\n\tPPPIOCSACTIVE                    = 0x40087446\n\tPPPIOCSASYNCMAP                  = 0x40047457\n\tPPPIOCSCOMPRESS                  = 0x400c744d\n\tPPPIOCSDEBUG                     = 0x40047440\n\tPPPIOCSFLAGS                     = 0x40047459\n\tPPPIOCSMAXCID                    = 0x40047451\n\tPPPIOCSMRRU                      = 0x4004743b\n\tPPPIOCSMRU                       = 0x40047452\n\tPPPIOCSNPMODE                    = 0x4008744b\n\tPPPIOCSPASS                      = 0x40087447\n\tPPPIOCSRASYNCMAP                 = 0x40047454\n\tPPPIOCSXASYNCMAP                 = 0x4020744f\n\tPPPIOCUNBRIDGECHAN               = 0x7434\n\tPPPIOCXFERUNIT                   = 0x744e\n\tPR_SET_PTRACER_ANY               = 0xffffffff\n\tPTP_CLOCK_GETCAPS                = 0x80503d01\n\tPTP_CLOCK_GETCAPS2               = 0x80503d0a\n\tPTP_ENABLE_PPS                   = 0x40043d04\n\tPTP_ENABLE_PPS2                  = 0x40043d0d\n\tPTP_EXTTS_REQUEST                = 0x40103d02\n\tPTP_EXTTS_REQUEST2               = 0x40103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x3d13\n\tPTP_MASK_EN_SINGLE               = 0x40043d14\n\tPTP_PEROUT_REQUEST               = 0x40383d03\n\tPTP_PEROUT_REQUEST2              = 0x40383d0c\n\tPTP_PIN_SETFUNC                  = 0x40603d07\n\tPTP_PIN_SETFUNC2                 = 0x40603d10\n\tPTP_SYS_OFFSET                   = 0x43403d05\n\tPTP_SYS_OFFSET2                  = 0x43403d0e\n\tPTRACE_GETFPREGS                 = 0xe\n\tPTRACE_GETFPXREGS                = 0x12\n\tPTRACE_GET_THREAD_AREA           = 0x19\n\tPTRACE_OLDSETOPTIONS             = 0x15\n\tPTRACE_SETFPREGS                 = 0xf\n\tPTRACE_SETFPXREGS                = 0x13\n\tPTRACE_SET_THREAD_AREA           = 0x1a\n\tPTRACE_SINGLEBLOCK               = 0x21\n\tPTRACE_SYSEMU                    = 0x1f\n\tPTRACE_SYSEMU_SINGLESTEP         = 0x20\n\tRLIMIT_AS                        = 0x9\n\tRLIMIT_MEMLOCK                   = 0x8\n\tRLIMIT_NOFILE                    = 0x7\n\tRLIMIT_NPROC                     = 0x6\n\tRLIMIT_RSS                       = 0x5\n\tRNDADDENTROPY                    = 0x40085203\n\tRNDADDTOENTCNT                   = 0x40045201\n\tRNDCLEARPOOL                     = 0x5206\n\tRNDGETENTCNT                     = 0x80045200\n\tRNDGETPOOL                       = 0x80085202\n\tRNDRESEEDCRNG                    = 0x5207\n\tRNDZAPENTCNT                     = 0x5204\n\tRTC_AIE_OFF                      = 0x7002\n\tRTC_AIE_ON                       = 0x7001\n\tRTC_ALM_READ                     = 0x80247008\n\tRTC_ALM_SET                      = 0x40247007\n\tRTC_EPOCH_READ                   = 0x8004700d\n\tRTC_EPOCH_SET                    = 0x4004700e\n\tRTC_IRQP_READ                    = 0x8004700b\n\tRTC_IRQP_SET                     = 0x4004700c\n\tRTC_PARAM_GET                    = 0x40187013\n\tRTC_PARAM_SET                    = 0x40187014\n\tRTC_PIE_OFF                      = 0x7006\n\tRTC_PIE_ON                       = 0x7005\n\tRTC_PLL_GET                      = 0x801c7011\n\tRTC_PLL_SET                      = 0x401c7012\n\tRTC_RD_TIME                      = 0x80247009\n\tRTC_SET_TIME                     = 0x4024700a\n\tRTC_UIE_OFF                      = 0x7004\n\tRTC_UIE_ON                       = 0x7003\n\tRTC_VL_CLR                       = 0x7014\n\tRTC_VL_READ                      = 0x80047013\n\tRTC_WIE_OFF                      = 0x7010\n\tRTC_WIE_ON                       = 0x700f\n\tRTC_WKALM_RD                     = 0x80287010\n\tRTC_WKALM_SET                    = 0x4028700f\n\tSCM_DEVMEM_DMABUF                = 0x4f\n\tSCM_DEVMEM_LINEAR                = 0x4e\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TS_OPT_ID                    = 0x51\n\tSCM_TXTIME                       = 0x3d\n\tSCM_WIFI_STATUS                  = 0x29\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x40182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x40082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x40082104\n\tSFD_CLOEXEC                      = 0x80000\n\tSFD_NONBLOCK                     = 0x800\n\tSIOCATMARK                       = 0x8905\n\tSIOCGPGRP                        = 0x8904\n\tSIOCGSTAMPNS_NEW                 = 0x80108907\n\tSIOCGSTAMP_NEW                   = 0x80108906\n\tSIOCINQ                          = 0x541b\n\tSIOCOUTQ                         = 0x5411\n\tSIOCSPGRP                        = 0x8902\n\tSOCK_CLOEXEC                     = 0x80000\n\tSOCK_DGRAM                       = 0x2\n\tSOCK_NONBLOCK                    = 0x800\n\tSOCK_STREAM                      = 0x1\n\tSOL_SOCKET                       = 0x1\n\tSO_ACCEPTCONN                    = 0x1e\n\tSO_ATTACH_BPF                    = 0x32\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x34\n\tSO_BINDTODEVICE                  = 0x19\n\tSO_BINDTOIFINDEX                 = 0x3e\n\tSO_BPF_EXTENSIONS                = 0x30\n\tSO_BROADCAST                     = 0x6\n\tSO_BSDCOMPAT                     = 0xe\n\tSO_BUF_LOCK                      = 0x48\n\tSO_BUSY_POLL                     = 0x2e\n\tSO_BUSY_POLL_BUDGET              = 0x46\n\tSO_CNX_ADVICE                    = 0x35\n\tSO_COOKIE                        = 0x39\n\tSO_DETACH_REUSEPORT_BPF          = 0x44\n\tSO_DEVMEM_DMABUF                 = 0x4f\n\tSO_DEVMEM_DONTNEED               = 0x50\n\tSO_DEVMEM_LINEAR                 = 0x4e\n\tSO_DOMAIN                        = 0x27\n\tSO_DONTROUTE                     = 0x5\n\tSO_ERROR                         = 0x4\n\tSO_INCOMING_CPU                  = 0x31\n\tSO_INCOMING_NAPI_ID              = 0x38\n\tSO_KEEPALIVE                     = 0x9\n\tSO_LINGER                        = 0xd\n\tSO_LOCK_FILTER                   = 0x2c\n\tSO_MARK                          = 0x24\n\tSO_MAX_PACING_RATE               = 0x2f\n\tSO_MEMINFO                       = 0x37\n\tSO_NETNS_COOKIE                  = 0x47\n\tSO_NOFCS                         = 0x2b\n\tSO_OOBINLINE                     = 0xa\n\tSO_PASSCRED                      = 0x10\n\tSO_PASSPIDFD                     = 0x4c\n\tSO_PASSSEC                       = 0x22\n\tSO_PEEK_OFF                      = 0x2a\n\tSO_PEERCRED                      = 0x11\n\tSO_PEERGROUPS                    = 0x3b\n\tSO_PEERPIDFD                     = 0x4d\n\tSO_PEERSEC                       = 0x1f\n\tSO_PREFER_BUSY_POLL              = 0x45\n\tSO_PROTOCOL                      = 0x26\n\tSO_RCVBUF                        = 0x8\n\tSO_RCVBUFFORCE                   = 0x21\n\tSO_RCVLOWAT                      = 0x12\n\tSO_RCVMARK                       = 0x4b\n\tSO_RCVTIMEO                      = 0x14\n\tSO_RCVTIMEO_NEW                  = 0x42\n\tSO_RCVTIMEO_OLD                  = 0x14\n\tSO_RESERVE_MEM                   = 0x49\n\tSO_REUSEADDR                     = 0x2\n\tSO_REUSEPORT                     = 0xf\n\tSO_RXQ_OVFL                      = 0x28\n\tSO_SECURITY_AUTHENTICATION       = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x17\n\tSO_SELECT_ERR_QUEUE              = 0x2d\n\tSO_SNDBUF                        = 0x7\n\tSO_SNDBUFFORCE                   = 0x20\n\tSO_SNDLOWAT                      = 0x13\n\tSO_SNDTIMEO                      = 0x15\n\tSO_SNDTIMEO_NEW                  = 0x43\n\tSO_SNDTIMEO_OLD                  = 0x15\n\tSO_TIMESTAMPING                  = 0x25\n\tSO_TIMESTAMPING_NEW              = 0x41\n\tSO_TIMESTAMPING_OLD              = 0x25\n\tSO_TIMESTAMPNS                   = 0x23\n\tSO_TIMESTAMPNS_NEW               = 0x40\n\tSO_TIMESTAMPNS_OLD               = 0x23\n\tSO_TIMESTAMP_NEW                 = 0x3f\n\tSO_TXREHASH                      = 0x4a\n\tSO_TXTIME                        = 0x3d\n\tSO_TYPE                          = 0x3\n\tSO_WIFI_STATUS                   = 0x29\n\tSO_ZEROCOPY                      = 0x3c\n\tTAB1                             = 0x800\n\tTAB2                             = 0x1000\n\tTAB3                             = 0x1800\n\tTABDLY                           = 0x1800\n\tTCFLSH                           = 0x540b\n\tTCGETA                           = 0x5405\n\tTCGETS                           = 0x5401\n\tTCGETS2                          = 0x802c542a\n\tTCGETX                           = 0x5432\n\tTCSAFLUSH                        = 0x2\n\tTCSBRK                           = 0x5409\n\tTCSBRKP                          = 0x5425\n\tTCSETA                           = 0x5406\n\tTCSETAF                          = 0x5408\n\tTCSETAW                          = 0x5407\n\tTCSETS                           = 0x5402\n\tTCSETS2                          = 0x402c542b\n\tTCSETSF                          = 0x5404\n\tTCSETSF2                         = 0x402c542d\n\tTCSETSW                          = 0x5403\n\tTCSETSW2                         = 0x402c542c\n\tTCSETX                           = 0x5433\n\tTCSETXF                          = 0x5434\n\tTCSETXW                          = 0x5435\n\tTCXONC                           = 0x540a\n\tTFD_CLOEXEC                      = 0x80000\n\tTFD_NONBLOCK                     = 0x800\n\tTIOCCBRK                         = 0x5428\n\tTIOCCONS                         = 0x541d\n\tTIOCEXCL                         = 0x540c\n\tTIOCGDEV                         = 0x80045432\n\tTIOCGETD                         = 0x5424\n\tTIOCGEXCL                        = 0x80045440\n\tTIOCGICOUNT                      = 0x545d\n\tTIOCGISO7816                     = 0x80285442\n\tTIOCGLCKTRMIOS                   = 0x5456\n\tTIOCGPGRP                        = 0x540f\n\tTIOCGPKT                         = 0x80045438\n\tTIOCGPTLCK                       = 0x80045439\n\tTIOCGPTN                         = 0x80045430\n\tTIOCGPTPEER                      = 0x5441\n\tTIOCGRS485                       = 0x542e\n\tTIOCGSERIAL                      = 0x541e\n\tTIOCGSID                         = 0x5429\n\tTIOCGSOFTCAR                     = 0x5419\n\tTIOCGWINSZ                       = 0x5413\n\tTIOCINQ                          = 0x541b\n\tTIOCLINUX                        = 0x541c\n\tTIOCMBIC                         = 0x5417\n\tTIOCMBIS                         = 0x5416\n\tTIOCMGET                         = 0x5415\n\tTIOCMIWAIT                       = 0x545c\n\tTIOCMSET                         = 0x5418\n\tTIOCM_CAR                        = 0x40\n\tTIOCM_CD                         = 0x40\n\tTIOCM_CTS                        = 0x20\n\tTIOCM_DSR                        = 0x100\n\tTIOCM_RI                         = 0x80\n\tTIOCM_RNG                        = 0x80\n\tTIOCM_SR                         = 0x10\n\tTIOCM_ST                         = 0x8\n\tTIOCNOTTY                        = 0x5422\n\tTIOCNXCL                         = 0x540d\n\tTIOCOUTQ                         = 0x5411\n\tTIOCPKT                          = 0x5420\n\tTIOCSBRK                         = 0x5427\n\tTIOCSCTTY                        = 0x540e\n\tTIOCSERCONFIG                    = 0x5453\n\tTIOCSERGETLSR                    = 0x5459\n\tTIOCSERGETMULTI                  = 0x545a\n\tTIOCSERGSTRUCT                   = 0x5458\n\tTIOCSERGWILD                     = 0x5454\n\tTIOCSERSETMULTI                  = 0x545b\n\tTIOCSERSWILD                     = 0x5455\n\tTIOCSER_TEMT                     = 0x1\n\tTIOCSETD                         = 0x5423\n\tTIOCSIG                          = 0x40045436\n\tTIOCSISO7816                     = 0xc0285443\n\tTIOCSLCKTRMIOS                   = 0x5457\n\tTIOCSPGRP                        = 0x5410\n\tTIOCSPTLCK                       = 0x40045431\n\tTIOCSRS485                       = 0x542f\n\tTIOCSSERIAL                      = 0x541f\n\tTIOCSSOFTCAR                     = 0x541a\n\tTIOCSTI                          = 0x5412\n\tTIOCSWINSZ                       = 0x5414\n\tTIOCVHANGUP                      = 0x5437\n\tTOSTOP                           = 0x100\n\tTUNATTACHFILTER                  = 0x400854d5\n\tTUNDETACHFILTER                  = 0x400854d6\n\tTUNGETDEVNETNS                   = 0x54e3\n\tTUNGETFEATURES                   = 0x800454cf\n\tTUNGETFILTER                     = 0x800854db\n\tTUNGETIFF                        = 0x800454d2\n\tTUNGETSNDBUF                     = 0x800454d3\n\tTUNGETVNETBE                     = 0x800454df\n\tTUNGETVNETHDRSZ                  = 0x800454d7\n\tTUNGETVNETLE                     = 0x800454dd\n\tTUNSETCARRIER                    = 0x400454e2\n\tTUNSETDEBUG                      = 0x400454c9\n\tTUNSETFILTEREBPF                 = 0x800454e1\n\tTUNSETGROUP                      = 0x400454ce\n\tTUNSETIFF                        = 0x400454ca\n\tTUNSETIFINDEX                    = 0x400454da\n\tTUNSETLINK                       = 0x400454cd\n\tTUNSETNOCSUM                     = 0x400454c8\n\tTUNSETOFFLOAD                    = 0x400454d0\n\tTUNSETOWNER                      = 0x400454cc\n\tTUNSETPERSIST                    = 0x400454cb\n\tTUNSETQUEUE                      = 0x400454d9\n\tTUNSETSNDBUF                     = 0x400454d4\n\tTUNSETSTEERINGEBPF               = 0x800454e0\n\tTUNSETTXFILTER                   = 0x400454d1\n\tTUNSETVNETBE                     = 0x400454de\n\tTUNSETVNETHDRSZ                  = 0x400454d8\n\tTUNSETVNETLE                     = 0x400454dc\n\tUBI_IOCATT                       = 0x40186f40\n\tUBI_IOCDET                       = 0x40046f41\n\tUBI_IOCEBCH                      = 0x40044f02\n\tUBI_IOCEBER                      = 0x40044f01\n\tUBI_IOCEBISMAP                   = 0x80044f05\n\tUBI_IOCEBMAP                     = 0x40084f03\n\tUBI_IOCEBUNMAP                   = 0x40044f04\n\tUBI_IOCMKVOL                     = 0x40986f00\n\tUBI_IOCRMVOL                     = 0x40046f01\n\tUBI_IOCRNVOL                     = 0x51106f03\n\tUBI_IOCRPEB                      = 0x40046f04\n\tUBI_IOCRSVOL                     = 0x400c6f02\n\tUBI_IOCSETVOLPROP                = 0x40104f06\n\tUBI_IOCSPEB                      = 0x40046f05\n\tUBI_IOCVOLCRBLK                  = 0x40804f07\n\tUBI_IOCVOLRMBLK                  = 0x4f08\n\tUBI_IOCVOLUP                     = 0x40084f00\n\tVDISCARD                         = 0xd\n\tVEOF                             = 0x4\n\tVEOL                             = 0xb\n\tVEOL2                            = 0x10\n\tVMIN                             = 0x6\n\tVREPRINT                         = 0xc\n\tVSTART                           = 0x8\n\tVSTOP                            = 0x9\n\tVSUSP                            = 0xa\n\tVSWTC                            = 0x7\n\tVT1                              = 0x4000\n\tVTDLY                            = 0x4000\n\tVTIME                            = 0x5\n\tVWERASE                          = 0xe\n\tWDIOC_GETBOOTSTATUS              = 0x80045702\n\tWDIOC_GETPRETIMEOUT              = 0x80045709\n\tWDIOC_GETSTATUS                  = 0x80045701\n\tWDIOC_GETSUPPORT                 = 0x80285700\n\tWDIOC_GETTEMP                    = 0x80045703\n\tWDIOC_GETTIMELEFT                = 0x8004570a\n\tWDIOC_GETTIMEOUT                 = 0x80045707\n\tWDIOC_KEEPALIVE                  = 0x80045705\n\tWDIOC_SETOPTIONS                 = 0x80045704\n\tWORDSIZE                         = 0x20\n\tX86_FXSR_MAGIC                   = 0x0\n\tXCASE                            = 0x4\n\tXTABS                            = 0x1800\n\t_HIDIOCGRAWNAME                  = 0x80804804\n\t_HIDIOCGRAWPHYS                  = 0x80404805\n\t_HIDIOCGRAWUNIQ                  = 0x80404808\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x62)\n\tEADDRNOTAVAIL   = syscall.Errno(0x63)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x61)\n\tEALREADY        = syscall.Errno(0x72)\n\tEBADE           = syscall.Errno(0x34)\n\tEBADFD          = syscall.Errno(0x4d)\n\tEBADMSG         = syscall.Errno(0x4a)\n\tEBADR           = syscall.Errno(0x35)\n\tEBADRQC         = syscall.Errno(0x38)\n\tEBADSLT         = syscall.Errno(0x39)\n\tEBFONT          = syscall.Errno(0x3b)\n\tECANCELED       = syscall.Errno(0x7d)\n\tECHRNG          = syscall.Errno(0x2c)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x67)\n\tECONNREFUSED    = syscall.Errno(0x6f)\n\tECONNRESET      = syscall.Errno(0x68)\n\tEDEADLK         = syscall.Errno(0x23)\n\tEDEADLOCK       = syscall.Errno(0x23)\n\tEDESTADDRREQ    = syscall.Errno(0x59)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x7a)\n\tEHOSTDOWN       = syscall.Errno(0x70)\n\tEHOSTUNREACH    = syscall.Errno(0x71)\n\tEHWPOISON       = syscall.Errno(0x85)\n\tEIDRM           = syscall.Errno(0x2b)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x73)\n\tEISCONN         = syscall.Errno(0x6a)\n\tEISNAM          = syscall.Errno(0x78)\n\tEKEYEXPIRED     = syscall.Errno(0x7f)\n\tEKEYREJECTED    = syscall.Errno(0x81)\n\tEKEYREVOKED     = syscall.Errno(0x80)\n\tEL2HLT          = syscall.Errno(0x33)\n\tEL2NSYNC        = syscall.Errno(0x2d)\n\tEL3HLT          = syscall.Errno(0x2e)\n\tEL3RST          = syscall.Errno(0x2f)\n\tELIBACC         = syscall.Errno(0x4f)\n\tELIBBAD         = syscall.Errno(0x50)\n\tELIBEXEC        = syscall.Errno(0x53)\n\tELIBMAX         = syscall.Errno(0x52)\n\tELIBSCN         = syscall.Errno(0x51)\n\tELNRNG          = syscall.Errno(0x30)\n\tELOOP           = syscall.Errno(0x28)\n\tEMEDIUMTYPE     = syscall.Errno(0x7c)\n\tEMSGSIZE        = syscall.Errno(0x5a)\n\tEMULTIHOP       = syscall.Errno(0x48)\n\tENAMETOOLONG    = syscall.Errno(0x24)\n\tENAVAIL         = syscall.Errno(0x77)\n\tENETDOWN        = syscall.Errno(0x64)\n\tENETRESET       = syscall.Errno(0x66)\n\tENETUNREACH     = syscall.Errno(0x65)\n\tENOANO          = syscall.Errno(0x37)\n\tENOBUFS         = syscall.Errno(0x69)\n\tENOCSI          = syscall.Errno(0x32)\n\tENODATA         = syscall.Errno(0x3d)\n\tENOKEY          = syscall.Errno(0x7e)\n\tENOLCK          = syscall.Errno(0x25)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x7b)\n\tENOMSG          = syscall.Errno(0x2a)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x5c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x26)\n\tENOTCONN        = syscall.Errno(0x6b)\n\tENOTEMPTY       = syscall.Errno(0x27)\n\tENOTNAM         = syscall.Errno(0x76)\n\tENOTRECOVERABLE = syscall.Errno(0x83)\n\tENOTSOCK        = syscall.Errno(0x58)\n\tENOTSUP         = syscall.Errno(0x5f)\n\tENOTUNIQ        = syscall.Errno(0x4c)\n\tEOPNOTSUPP      = syscall.Errno(0x5f)\n\tEOVERFLOW       = syscall.Errno(0x4b)\n\tEOWNERDEAD      = syscall.Errno(0x82)\n\tEPFNOSUPPORT    = syscall.Errno(0x60)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x5d)\n\tEPROTOTYPE      = syscall.Errno(0x5b)\n\tEREMCHG         = syscall.Errno(0x4e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x79)\n\tERESTART        = syscall.Errno(0x55)\n\tERFKILL         = syscall.Errno(0x84)\n\tESHUTDOWN       = syscall.Errno(0x6c)\n\tESOCKTNOSUPPORT = syscall.Errno(0x5e)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x74)\n\tESTRPIPE        = syscall.Errno(0x56)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x6e)\n\tETOOMANYREFS    = syscall.Errno(0x6d)\n\tEUCLEAN         = syscall.Errno(0x75)\n\tEUNATCH         = syscall.Errno(0x31)\n\tEUSERS          = syscall.Errno(0x57)\n\tEXFULL          = syscall.Errno(0x36)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0x7)\n\tSIGCHLD   = syscall.Signal(0x11)\n\tSIGCLD    = syscall.Signal(0x11)\n\tSIGCONT   = syscall.Signal(0x12)\n\tSIGIO     = syscall.Signal(0x1d)\n\tSIGPOLL   = syscall.Signal(0x1d)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x1e)\n\tSIGSTKFLT = syscall.Signal(0x10)\n\tSIGSTOP   = syscall.Signal(0x13)\n\tSIGSYS    = syscall.Signal(0x1f)\n\tSIGTSTP   = syscall.Signal(0x14)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x17)\n\tSIGUSR1   = syscall.Signal(0xa)\n\tSIGUSR2   = syscall.Signal(0xc)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{36, \"ENAMETOOLONG\", \"file name too long\"},\n\t{37, \"ENOLCK\", \"no locks available\"},\n\t{38, \"ENOSYS\", \"function not implemented\"},\n\t{39, \"ENOTEMPTY\", \"directory not empty\"},\n\t{40, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{42, \"ENOMSG\", \"no message of desired type\"},\n\t{43, \"EIDRM\", \"identifier removed\"},\n\t{44, \"ECHRNG\", \"channel number out of range\"},\n\t{45, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{46, \"EL3HLT\", \"level 3 halted\"},\n\t{47, \"EL3RST\", \"level 3 reset\"},\n\t{48, \"ELNRNG\", \"link number out of range\"},\n\t{49, \"EUNATCH\", \"protocol driver not attached\"},\n\t{50, \"ENOCSI\", \"no CSI structure available\"},\n\t{51, \"EL2HLT\", \"level 2 halted\"},\n\t{52, \"EBADE\", \"invalid exchange\"},\n\t{53, \"EBADR\", \"invalid request descriptor\"},\n\t{54, \"EXFULL\", \"exchange full\"},\n\t{55, \"ENOANO\", \"no anode\"},\n\t{56, \"EBADRQC\", \"invalid request code\"},\n\t{57, \"EBADSLT\", \"invalid slot\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{72, \"EMULTIHOP\", \"multihop attempted\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EBADMSG\", \"bad message\"},\n\t{75, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{76, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{77, \"EBADFD\", \"file descriptor in bad state\"},\n\t{78, \"EREMCHG\", \"remote address changed\"},\n\t{79, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{80, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{81, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{82, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{83, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{84, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{85, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{86, \"ESTRPIPE\", \"streams pipe error\"},\n\t{87, \"EUSERS\", \"too many users\"},\n\t{88, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{89, \"EDESTADDRREQ\", \"destination address required\"},\n\t{90, \"EMSGSIZE\", \"message too long\"},\n\t{91, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{92, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{93, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{94, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{95, \"ENOTSUP\", \"operation not supported\"},\n\t{96, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{97, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{98, \"EADDRINUSE\", \"address already in use\"},\n\t{99, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{100, \"ENETDOWN\", \"network is down\"},\n\t{101, \"ENETUNREACH\", \"network is unreachable\"},\n\t{102, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{103, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{104, \"ECONNRESET\", \"connection reset by peer\"},\n\t{105, \"ENOBUFS\", \"no buffer space available\"},\n\t{106, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{107, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{108, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{109, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{110, \"ETIMEDOUT\", \"connection timed out\"},\n\t{111, \"ECONNREFUSED\", \"connection refused\"},\n\t{112, \"EHOSTDOWN\", \"host is down\"},\n\t{113, \"EHOSTUNREACH\", \"no route to host\"},\n\t{114, \"EALREADY\", \"operation already in progress\"},\n\t{115, \"EINPROGRESS\", \"operation now in progress\"},\n\t{116, \"ESTALE\", \"stale file handle\"},\n\t{117, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{118, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{119, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{120, \"EISNAM\", \"is a named type file\"},\n\t{121, \"EREMOTEIO\", \"remote I/O error\"},\n\t{122, \"EDQUOT\", \"disk quota exceeded\"},\n\t{123, \"ENOMEDIUM\", \"no medium found\"},\n\t{124, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{125, \"ECANCELED\", \"operation canceled\"},\n\t{126, \"ENOKEY\", \"required key not available\"},\n\t{127, \"EKEYEXPIRED\", \"key has expired\"},\n\t{128, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{129, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{130, \"EOWNERDEAD\", \"owner died\"},\n\t{131, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{132, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{133, \"EHWPOISON\", \"memory page has hardware error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGBUS\", \"bus error\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGUSR1\", \"user defined signal 1\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGUSR2\", \"user defined signal 2\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGSTKFLT\", \"stack fault\"},\n\t{17, \"SIGCHLD\", \"child exited\"},\n\t{18, \"SIGCONT\", \"continued\"},\n\t{19, \"SIGSTOP\", \"stopped (signal)\"},\n\t{20, \"SIGTSTP\", \"stopped\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGURG\", \"urgent I/O condition\"},\n\t{24, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGIO\", \"I/O possible\"},\n\t{30, \"SIGPWR\", \"power failure\"},\n\t{31, \"SIGSYS\", \"bad system call\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/amd64/include -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/amd64/include -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tB1000000                         = 0x1008\n\tB115200                          = 0x1002\n\tB1152000                         = 0x1009\n\tB1500000                         = 0x100a\n\tB2000000                         = 0x100b\n\tB230400                          = 0x1003\n\tB2500000                         = 0x100c\n\tB3000000                         = 0x100d\n\tB3500000                         = 0x100e\n\tB4000000                         = 0x100f\n\tB460800                          = 0x1004\n\tB500000                          = 0x1005\n\tB57600                           = 0x1001\n\tB576000                          = 0x1006\n\tB921600                          = 0x1007\n\tBLKALIGNOFF                      = 0x127a\n\tBLKBSZGET                        = 0x80081270\n\tBLKBSZSET                        = 0x40081271\n\tBLKDISCARD                       = 0x1277\n\tBLKDISCARDZEROES                 = 0x127c\n\tBLKFLSBUF                        = 0x1261\n\tBLKFRAGET                        = 0x1265\n\tBLKFRASET                        = 0x1264\n\tBLKGETDISKSEQ                    = 0x80081280\n\tBLKGETSIZE                       = 0x1260\n\tBLKGETSIZE64                     = 0x80081272\n\tBLKIOMIN                         = 0x1278\n\tBLKIOOPT                         = 0x1279\n\tBLKPBSZGET                       = 0x127b\n\tBLKRAGET                         = 0x1263\n\tBLKRASET                         = 0x1262\n\tBLKROGET                         = 0x125e\n\tBLKROSET                         = 0x125d\n\tBLKROTATIONAL                    = 0x127e\n\tBLKRRPART                        = 0x125f\n\tBLKSECDISCARD                    = 0x127d\n\tBLKSECTGET                       = 0x1267\n\tBLKSECTSET                       = 0x1266\n\tBLKSSZGET                        = 0x1268\n\tBLKZEROOUT                       = 0x127f\n\tBOTHER                           = 0x1000\n\tBS1                              = 0x2000\n\tBSDLY                            = 0x2000\n\tCBAUD                            = 0x100f\n\tCBAUDEX                          = 0x1000\n\tCIBAUD                           = 0x100f0000\n\tCLOCAL                           = 0x800\n\tCR1                              = 0x200\n\tCR2                              = 0x400\n\tCR3                              = 0x600\n\tCRDLY                            = 0x600\n\tCREAD                            = 0x80\n\tCS6                              = 0x10\n\tCS7                              = 0x20\n\tCS8                              = 0x30\n\tCSIZE                            = 0x30\n\tCSTOPB                           = 0x40\n\tECCGETLAYOUT                     = 0x81484d11\n\tECCGETSTATS                      = 0x80104d12\n\tECHOCTL                          = 0x200\n\tECHOE                            = 0x10\n\tECHOK                            = 0x20\n\tECHOKE                           = 0x800\n\tECHONL                           = 0x40\n\tECHOPRT                          = 0x400\n\tEFD_CLOEXEC                      = 0x80000\n\tEFD_NONBLOCK                     = 0x800\n\tEPIOCGPARAMS                     = 0x80088a02\n\tEPIOCSPARAMS                     = 0x40088a01\n\tEPOLL_CLOEXEC                    = 0x80000\n\tEXTPROC                          = 0x10000\n\tFF1                              = 0x8000\n\tFFDLY                            = 0x8000\n\tFICLONE                          = 0x40049409\n\tFICLONERANGE                     = 0x4020940d\n\tFLUSHO                           = 0x1000\n\tFP_XSTATE_MAGIC2                 = 0x46505845\n\tFS_IOC_ENABLE_VERITY             = 0x40806685\n\tFS_IOC_GETFLAGS                  = 0x80086601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x8010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x400c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x40106614\n\tFS_IOC_SETFLAGS                  = 0x40086602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x800c6613\n\tF_GETLK                          = 0x5\n\tF_GETLK64                        = 0x5\n\tF_GETOWN                         = 0x9\n\tF_RDLCK                          = 0x0\n\tF_SETLK                          = 0x6\n\tF_SETLK64                        = 0x6\n\tF_SETLKW                         = 0x7\n\tF_SETLKW64                       = 0x7\n\tF_SETOWN                         = 0x8\n\tF_UNLCK                          = 0x2\n\tF_WRLCK                          = 0x1\n\tHIDIOCGRAWINFO                   = 0x80084803\n\tHIDIOCGRDESC                     = 0x90044802\n\tHIDIOCGRDESCSIZE                 = 0x80044801\n\tHIDIOCREVOKE                     = 0x4004480d\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x8000\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x800\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9\n\tIPV6_FLOWINFO_MASK               = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK              = 0xffff0f00\n\tISIG                             = 0x1\n\tIUCLC                            = 0x200\n\tIXOFF                            = 0x1000\n\tIXON                             = 0x400\n\tMAP_32BIT                        = 0x40\n\tMAP_ABOVE4G                      = 0x80\n\tMAP_ANON                         = 0x20\n\tMAP_ANONYMOUS                    = 0x20\n\tMAP_DENYWRITE                    = 0x800\n\tMAP_EXECUTABLE                   = 0x1000\n\tMAP_GROWSDOWN                    = 0x100\n\tMAP_HUGETLB                      = 0x40000\n\tMAP_LOCKED                       = 0x2000\n\tMAP_NONBLOCK                     = 0x10000\n\tMAP_NORESERVE                    = 0x4000\n\tMAP_POPULATE                     = 0x8000\n\tMAP_STACK                        = 0x20000\n\tMAP_SYNC                         = 0x80000\n\tMCL_CURRENT                      = 0x1\n\tMCL_FUTURE                       = 0x2\n\tMCL_ONFAULT                      = 0x4\n\tMEMERASE                         = 0x40084d02\n\tMEMERASE64                       = 0x40104d14\n\tMEMGETBADBLOCK                   = 0x40084d0b\n\tMEMGETINFO                       = 0x80204d01\n\tMEMGETOOBSEL                     = 0x80c84d0a\n\tMEMGETREGIONCOUNT                = 0x80044d07\n\tMEMISLOCKED                      = 0x80084d17\n\tMEMLOCK                          = 0x40084d05\n\tMEMREAD                          = 0xc0404d1a\n\tMEMREADOOB                       = 0xc0104d04\n\tMEMSETBADBLOCK                   = 0x40084d0c\n\tMEMUNLOCK                        = 0x40084d06\n\tMEMWRITEOOB                      = 0xc0104d03\n\tMTDFILEMODE                      = 0x4d13\n\tNFDBITS                          = 0x40\n\tNLDLY                            = 0x100\n\tNOFLSH                           = 0x80\n\tNS_GET_MNTNS_ID                  = 0x8008b705\n\tNS_GET_NSTYPE                    = 0xb703\n\tNS_GET_OWNER_UID                 = 0xb704\n\tNS_GET_PARENT                    = 0xb702\n\tNS_GET_PID_FROM_PIDNS            = 0x8004b706\n\tNS_GET_PID_IN_PIDNS              = 0x8004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x8004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x8004b709\n\tNS_GET_USERNS                    = 0xb701\n\tOLCUC                            = 0x2\n\tONLCR                            = 0x4\n\tOTPERASE                         = 0x400c4d19\n\tOTPGETREGIONCOUNT                = 0x40044d0e\n\tOTPGETREGIONINFO                 = 0x400c4d0f\n\tOTPLOCK                          = 0x800c4d10\n\tOTPSELECT                        = 0x80044d0d\n\tO_APPEND                         = 0x400\n\tO_ASYNC                          = 0x2000\n\tO_CLOEXEC                        = 0x80000\n\tO_CREAT                          = 0x40\n\tO_DIRECT                         = 0x4000\n\tO_DIRECTORY                      = 0x10000\n\tO_DSYNC                          = 0x1000\n\tO_EXCL                           = 0x80\n\tO_FSYNC                          = 0x101000\n\tO_LARGEFILE                      = 0x0\n\tO_NDELAY                         = 0x800\n\tO_NOATIME                        = 0x40000\n\tO_NOCTTY                         = 0x100\n\tO_NOFOLLOW                       = 0x20000\n\tO_NONBLOCK                       = 0x800\n\tO_PATH                           = 0x200000\n\tO_RSYNC                          = 0x101000\n\tO_SYNC                           = 0x101000\n\tO_TMPFILE                        = 0x410000\n\tO_TRUNC                          = 0x200\n\tPARENB                           = 0x100\n\tPARODD                           = 0x200\n\tPENDIN                           = 0x4000\n\tPERF_EVENT_IOC_DISABLE           = 0x2401\n\tPERF_EVENT_IOC_ENABLE            = 0x2400\n\tPERF_EVENT_IOC_ID                = 0x80082407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x40042409\n\tPERF_EVENT_IOC_PERIOD            = 0x40082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc008240a\n\tPERF_EVENT_IOC_REFRESH           = 0x2402\n\tPERF_EVENT_IOC_RESET             = 0x2403\n\tPERF_EVENT_IOC_SET_BPF           = 0x40042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x40082406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x2405\n\tPPPIOCATTACH                     = 0x4004743d\n\tPPPIOCATTCHAN                    = 0x40047438\n\tPPPIOCBRIDGECHAN                 = 0x40047435\n\tPPPIOCCONNECT                    = 0x4004743a\n\tPPPIOCDETACH                     = 0x4004743c\n\tPPPIOCDISCONN                    = 0x7439\n\tPPPIOCGASYNCMAP                  = 0x80047458\n\tPPPIOCGCHAN                      = 0x80047437\n\tPPPIOCGDEBUG                     = 0x80047441\n\tPPPIOCGFLAGS                     = 0x8004745a\n\tPPPIOCGIDLE                      = 0x8010743f\n\tPPPIOCGIDLE32                    = 0x8008743f\n\tPPPIOCGIDLE64                    = 0x8010743f\n\tPPPIOCGL2TPSTATS                 = 0x80487436\n\tPPPIOCGMRU                       = 0x80047453\n\tPPPIOCGRASYNCMAP                 = 0x80047455\n\tPPPIOCGUNIT                      = 0x80047456\n\tPPPIOCGXASYNCMAP                 = 0x80207450\n\tPPPIOCSACTIVE                    = 0x40107446\n\tPPPIOCSASYNCMAP                  = 0x40047457\n\tPPPIOCSCOMPRESS                  = 0x4010744d\n\tPPPIOCSDEBUG                     = 0x40047440\n\tPPPIOCSFLAGS                     = 0x40047459\n\tPPPIOCSMAXCID                    = 0x40047451\n\tPPPIOCSMRRU                      = 0x4004743b\n\tPPPIOCSMRU                       = 0x40047452\n\tPPPIOCSNPMODE                    = 0x4008744b\n\tPPPIOCSPASS                      = 0x40107447\n\tPPPIOCSRASYNCMAP                 = 0x40047454\n\tPPPIOCSXASYNCMAP                 = 0x4020744f\n\tPPPIOCUNBRIDGECHAN               = 0x7434\n\tPPPIOCXFERUNIT                   = 0x744e\n\tPR_SET_PTRACER_ANY               = 0xffffffffffffffff\n\tPTP_CLOCK_GETCAPS                = 0x80503d01\n\tPTP_CLOCK_GETCAPS2               = 0x80503d0a\n\tPTP_ENABLE_PPS                   = 0x40043d04\n\tPTP_ENABLE_PPS2                  = 0x40043d0d\n\tPTP_EXTTS_REQUEST                = 0x40103d02\n\tPTP_EXTTS_REQUEST2               = 0x40103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x3d13\n\tPTP_MASK_EN_SINGLE               = 0x40043d14\n\tPTP_PEROUT_REQUEST               = 0x40383d03\n\tPTP_PEROUT_REQUEST2              = 0x40383d0c\n\tPTP_PIN_SETFUNC                  = 0x40603d07\n\tPTP_PIN_SETFUNC2                 = 0x40603d10\n\tPTP_SYS_OFFSET                   = 0x43403d05\n\tPTP_SYS_OFFSET2                  = 0x43403d0e\n\tPTRACE_ARCH_PRCTL                = 0x1e\n\tPTRACE_GETFPREGS                 = 0xe\n\tPTRACE_GETFPXREGS                = 0x12\n\tPTRACE_GET_THREAD_AREA           = 0x19\n\tPTRACE_OLDSETOPTIONS             = 0x15\n\tPTRACE_SETFPREGS                 = 0xf\n\tPTRACE_SETFPXREGS                = 0x13\n\tPTRACE_SET_THREAD_AREA           = 0x1a\n\tPTRACE_SINGLEBLOCK               = 0x21\n\tPTRACE_SYSEMU                    = 0x1f\n\tPTRACE_SYSEMU_SINGLESTEP         = 0x20\n\tRLIMIT_AS                        = 0x9\n\tRLIMIT_MEMLOCK                   = 0x8\n\tRLIMIT_NOFILE                    = 0x7\n\tRLIMIT_NPROC                     = 0x6\n\tRLIMIT_RSS                       = 0x5\n\tRNDADDENTROPY                    = 0x40085203\n\tRNDADDTOENTCNT                   = 0x40045201\n\tRNDCLEARPOOL                     = 0x5206\n\tRNDGETENTCNT                     = 0x80045200\n\tRNDGETPOOL                       = 0x80085202\n\tRNDRESEEDCRNG                    = 0x5207\n\tRNDZAPENTCNT                     = 0x5204\n\tRTC_AIE_OFF                      = 0x7002\n\tRTC_AIE_ON                       = 0x7001\n\tRTC_ALM_READ                     = 0x80247008\n\tRTC_ALM_SET                      = 0x40247007\n\tRTC_EPOCH_READ                   = 0x8008700d\n\tRTC_EPOCH_SET                    = 0x4008700e\n\tRTC_IRQP_READ                    = 0x8008700b\n\tRTC_IRQP_SET                     = 0x4008700c\n\tRTC_PARAM_GET                    = 0x40187013\n\tRTC_PARAM_SET                    = 0x40187014\n\tRTC_PIE_OFF                      = 0x7006\n\tRTC_PIE_ON                       = 0x7005\n\tRTC_PLL_GET                      = 0x80207011\n\tRTC_PLL_SET                      = 0x40207012\n\tRTC_RD_TIME                      = 0x80247009\n\tRTC_SET_TIME                     = 0x4024700a\n\tRTC_UIE_OFF                      = 0x7004\n\tRTC_UIE_ON                       = 0x7003\n\tRTC_VL_CLR                       = 0x7014\n\tRTC_VL_READ                      = 0x80047013\n\tRTC_WIE_OFF                      = 0x7010\n\tRTC_WIE_ON                       = 0x700f\n\tRTC_WKALM_RD                     = 0x80287010\n\tRTC_WKALM_SET                    = 0x4028700f\n\tSCM_DEVMEM_DMABUF                = 0x4f\n\tSCM_DEVMEM_LINEAR                = 0x4e\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TS_OPT_ID                    = 0x51\n\tSCM_TXTIME                       = 0x3d\n\tSCM_WIFI_STATUS                  = 0x29\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x40182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x40082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x40082104\n\tSFD_CLOEXEC                      = 0x80000\n\tSFD_NONBLOCK                     = 0x800\n\tSIOCATMARK                       = 0x8905\n\tSIOCGPGRP                        = 0x8904\n\tSIOCGSTAMPNS_NEW                 = 0x80108907\n\tSIOCGSTAMP_NEW                   = 0x80108906\n\tSIOCINQ                          = 0x541b\n\tSIOCOUTQ                         = 0x5411\n\tSIOCSPGRP                        = 0x8902\n\tSOCK_CLOEXEC                     = 0x80000\n\tSOCK_DGRAM                       = 0x2\n\tSOCK_NONBLOCK                    = 0x800\n\tSOCK_STREAM                      = 0x1\n\tSOL_SOCKET                       = 0x1\n\tSO_ACCEPTCONN                    = 0x1e\n\tSO_ATTACH_BPF                    = 0x32\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x34\n\tSO_BINDTODEVICE                  = 0x19\n\tSO_BINDTOIFINDEX                 = 0x3e\n\tSO_BPF_EXTENSIONS                = 0x30\n\tSO_BROADCAST                     = 0x6\n\tSO_BSDCOMPAT                     = 0xe\n\tSO_BUF_LOCK                      = 0x48\n\tSO_BUSY_POLL                     = 0x2e\n\tSO_BUSY_POLL_BUDGET              = 0x46\n\tSO_CNX_ADVICE                    = 0x35\n\tSO_COOKIE                        = 0x39\n\tSO_DETACH_REUSEPORT_BPF          = 0x44\n\tSO_DEVMEM_DMABUF                 = 0x4f\n\tSO_DEVMEM_DONTNEED               = 0x50\n\tSO_DEVMEM_LINEAR                 = 0x4e\n\tSO_DOMAIN                        = 0x27\n\tSO_DONTROUTE                     = 0x5\n\tSO_ERROR                         = 0x4\n\tSO_INCOMING_CPU                  = 0x31\n\tSO_INCOMING_NAPI_ID              = 0x38\n\tSO_KEEPALIVE                     = 0x9\n\tSO_LINGER                        = 0xd\n\tSO_LOCK_FILTER                   = 0x2c\n\tSO_MARK                          = 0x24\n\tSO_MAX_PACING_RATE               = 0x2f\n\tSO_MEMINFO                       = 0x37\n\tSO_NETNS_COOKIE                  = 0x47\n\tSO_NOFCS                         = 0x2b\n\tSO_OOBINLINE                     = 0xa\n\tSO_PASSCRED                      = 0x10\n\tSO_PASSPIDFD                     = 0x4c\n\tSO_PASSSEC                       = 0x22\n\tSO_PEEK_OFF                      = 0x2a\n\tSO_PEERCRED                      = 0x11\n\tSO_PEERGROUPS                    = 0x3b\n\tSO_PEERPIDFD                     = 0x4d\n\tSO_PEERSEC                       = 0x1f\n\tSO_PREFER_BUSY_POLL              = 0x45\n\tSO_PROTOCOL                      = 0x26\n\tSO_RCVBUF                        = 0x8\n\tSO_RCVBUFFORCE                   = 0x21\n\tSO_RCVLOWAT                      = 0x12\n\tSO_RCVMARK                       = 0x4b\n\tSO_RCVTIMEO                      = 0x14\n\tSO_RCVTIMEO_NEW                  = 0x42\n\tSO_RCVTIMEO_OLD                  = 0x14\n\tSO_RESERVE_MEM                   = 0x49\n\tSO_REUSEADDR                     = 0x2\n\tSO_REUSEPORT                     = 0xf\n\tSO_RXQ_OVFL                      = 0x28\n\tSO_SECURITY_AUTHENTICATION       = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x17\n\tSO_SELECT_ERR_QUEUE              = 0x2d\n\tSO_SNDBUF                        = 0x7\n\tSO_SNDBUFFORCE                   = 0x20\n\tSO_SNDLOWAT                      = 0x13\n\tSO_SNDTIMEO                      = 0x15\n\tSO_SNDTIMEO_NEW                  = 0x43\n\tSO_SNDTIMEO_OLD                  = 0x15\n\tSO_TIMESTAMPING                  = 0x25\n\tSO_TIMESTAMPING_NEW              = 0x41\n\tSO_TIMESTAMPING_OLD              = 0x25\n\tSO_TIMESTAMPNS                   = 0x23\n\tSO_TIMESTAMPNS_NEW               = 0x40\n\tSO_TIMESTAMPNS_OLD               = 0x23\n\tSO_TIMESTAMP_NEW                 = 0x3f\n\tSO_TXREHASH                      = 0x4a\n\tSO_TXTIME                        = 0x3d\n\tSO_TYPE                          = 0x3\n\tSO_WIFI_STATUS                   = 0x29\n\tSO_ZEROCOPY                      = 0x3c\n\tTAB1                             = 0x800\n\tTAB2                             = 0x1000\n\tTAB3                             = 0x1800\n\tTABDLY                           = 0x1800\n\tTCFLSH                           = 0x540b\n\tTCGETA                           = 0x5405\n\tTCGETS                           = 0x5401\n\tTCGETS2                          = 0x802c542a\n\tTCGETX                           = 0x5432\n\tTCSAFLUSH                        = 0x2\n\tTCSBRK                           = 0x5409\n\tTCSBRKP                          = 0x5425\n\tTCSETA                           = 0x5406\n\tTCSETAF                          = 0x5408\n\tTCSETAW                          = 0x5407\n\tTCSETS                           = 0x5402\n\tTCSETS2                          = 0x402c542b\n\tTCSETSF                          = 0x5404\n\tTCSETSF2                         = 0x402c542d\n\tTCSETSW                          = 0x5403\n\tTCSETSW2                         = 0x402c542c\n\tTCSETX                           = 0x5433\n\tTCSETXF                          = 0x5434\n\tTCSETXW                          = 0x5435\n\tTCXONC                           = 0x540a\n\tTFD_CLOEXEC                      = 0x80000\n\tTFD_NONBLOCK                     = 0x800\n\tTIOCCBRK                         = 0x5428\n\tTIOCCONS                         = 0x541d\n\tTIOCEXCL                         = 0x540c\n\tTIOCGDEV                         = 0x80045432\n\tTIOCGETD                         = 0x5424\n\tTIOCGEXCL                        = 0x80045440\n\tTIOCGICOUNT                      = 0x545d\n\tTIOCGISO7816                     = 0x80285442\n\tTIOCGLCKTRMIOS                   = 0x5456\n\tTIOCGPGRP                        = 0x540f\n\tTIOCGPKT                         = 0x80045438\n\tTIOCGPTLCK                       = 0x80045439\n\tTIOCGPTN                         = 0x80045430\n\tTIOCGPTPEER                      = 0x5441\n\tTIOCGRS485                       = 0x542e\n\tTIOCGSERIAL                      = 0x541e\n\tTIOCGSID                         = 0x5429\n\tTIOCGSOFTCAR                     = 0x5419\n\tTIOCGWINSZ                       = 0x5413\n\tTIOCINQ                          = 0x541b\n\tTIOCLINUX                        = 0x541c\n\tTIOCMBIC                         = 0x5417\n\tTIOCMBIS                         = 0x5416\n\tTIOCMGET                         = 0x5415\n\tTIOCMIWAIT                       = 0x545c\n\tTIOCMSET                         = 0x5418\n\tTIOCM_CAR                        = 0x40\n\tTIOCM_CD                         = 0x40\n\tTIOCM_CTS                        = 0x20\n\tTIOCM_DSR                        = 0x100\n\tTIOCM_RI                         = 0x80\n\tTIOCM_RNG                        = 0x80\n\tTIOCM_SR                         = 0x10\n\tTIOCM_ST                         = 0x8\n\tTIOCNOTTY                        = 0x5422\n\tTIOCNXCL                         = 0x540d\n\tTIOCOUTQ                         = 0x5411\n\tTIOCPKT                          = 0x5420\n\tTIOCSBRK                         = 0x5427\n\tTIOCSCTTY                        = 0x540e\n\tTIOCSERCONFIG                    = 0x5453\n\tTIOCSERGETLSR                    = 0x5459\n\tTIOCSERGETMULTI                  = 0x545a\n\tTIOCSERGSTRUCT                   = 0x5458\n\tTIOCSERGWILD                     = 0x5454\n\tTIOCSERSETMULTI                  = 0x545b\n\tTIOCSERSWILD                     = 0x5455\n\tTIOCSER_TEMT                     = 0x1\n\tTIOCSETD                         = 0x5423\n\tTIOCSIG                          = 0x40045436\n\tTIOCSISO7816                     = 0xc0285443\n\tTIOCSLCKTRMIOS                   = 0x5457\n\tTIOCSPGRP                        = 0x5410\n\tTIOCSPTLCK                       = 0x40045431\n\tTIOCSRS485                       = 0x542f\n\tTIOCSSERIAL                      = 0x541f\n\tTIOCSSOFTCAR                     = 0x541a\n\tTIOCSTI                          = 0x5412\n\tTIOCSWINSZ                       = 0x5414\n\tTIOCVHANGUP                      = 0x5437\n\tTOSTOP                           = 0x100\n\tTUNATTACHFILTER                  = 0x401054d5\n\tTUNDETACHFILTER                  = 0x401054d6\n\tTUNGETDEVNETNS                   = 0x54e3\n\tTUNGETFEATURES                   = 0x800454cf\n\tTUNGETFILTER                     = 0x801054db\n\tTUNGETIFF                        = 0x800454d2\n\tTUNGETSNDBUF                     = 0x800454d3\n\tTUNGETVNETBE                     = 0x800454df\n\tTUNGETVNETHDRSZ                  = 0x800454d7\n\tTUNGETVNETLE                     = 0x800454dd\n\tTUNSETCARRIER                    = 0x400454e2\n\tTUNSETDEBUG                      = 0x400454c9\n\tTUNSETFILTEREBPF                 = 0x800454e1\n\tTUNSETGROUP                      = 0x400454ce\n\tTUNSETIFF                        = 0x400454ca\n\tTUNSETIFINDEX                    = 0x400454da\n\tTUNSETLINK                       = 0x400454cd\n\tTUNSETNOCSUM                     = 0x400454c8\n\tTUNSETOFFLOAD                    = 0x400454d0\n\tTUNSETOWNER                      = 0x400454cc\n\tTUNSETPERSIST                    = 0x400454cb\n\tTUNSETQUEUE                      = 0x400454d9\n\tTUNSETSNDBUF                     = 0x400454d4\n\tTUNSETSTEERINGEBPF               = 0x800454e0\n\tTUNSETTXFILTER                   = 0x400454d1\n\tTUNSETVNETBE                     = 0x400454de\n\tTUNSETVNETHDRSZ                  = 0x400454d8\n\tTUNSETVNETLE                     = 0x400454dc\n\tUBI_IOCATT                       = 0x40186f40\n\tUBI_IOCDET                       = 0x40046f41\n\tUBI_IOCEBCH                      = 0x40044f02\n\tUBI_IOCEBER                      = 0x40044f01\n\tUBI_IOCEBISMAP                   = 0x80044f05\n\tUBI_IOCEBMAP                     = 0x40084f03\n\tUBI_IOCEBUNMAP                   = 0x40044f04\n\tUBI_IOCMKVOL                     = 0x40986f00\n\tUBI_IOCRMVOL                     = 0x40046f01\n\tUBI_IOCRNVOL                     = 0x51106f03\n\tUBI_IOCRPEB                      = 0x40046f04\n\tUBI_IOCRSVOL                     = 0x400c6f02\n\tUBI_IOCSETVOLPROP                = 0x40104f06\n\tUBI_IOCSPEB                      = 0x40046f05\n\tUBI_IOCVOLCRBLK                  = 0x40804f07\n\tUBI_IOCVOLRMBLK                  = 0x4f08\n\tUBI_IOCVOLUP                     = 0x40084f00\n\tVDISCARD                         = 0xd\n\tVEOF                             = 0x4\n\tVEOL                             = 0xb\n\tVEOL2                            = 0x10\n\tVMIN                             = 0x6\n\tVREPRINT                         = 0xc\n\tVSTART                           = 0x8\n\tVSTOP                            = 0x9\n\tVSUSP                            = 0xa\n\tVSWTC                            = 0x7\n\tVT1                              = 0x4000\n\tVTDLY                            = 0x4000\n\tVTIME                            = 0x5\n\tVWERASE                          = 0xe\n\tWDIOC_GETBOOTSTATUS              = 0x80045702\n\tWDIOC_GETPRETIMEOUT              = 0x80045709\n\tWDIOC_GETSTATUS                  = 0x80045701\n\tWDIOC_GETSUPPORT                 = 0x80285700\n\tWDIOC_GETTEMP                    = 0x80045703\n\tWDIOC_GETTIMELEFT                = 0x8004570a\n\tWDIOC_GETTIMEOUT                 = 0x80045707\n\tWDIOC_KEEPALIVE                  = 0x80045705\n\tWDIOC_SETOPTIONS                 = 0x80045704\n\tWORDSIZE                         = 0x40\n\tXCASE                            = 0x4\n\tXTABS                            = 0x1800\n\t_HIDIOCGRAWNAME                  = 0x80804804\n\t_HIDIOCGRAWPHYS                  = 0x80404805\n\t_HIDIOCGRAWUNIQ                  = 0x80404808\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x62)\n\tEADDRNOTAVAIL   = syscall.Errno(0x63)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x61)\n\tEALREADY        = syscall.Errno(0x72)\n\tEBADE           = syscall.Errno(0x34)\n\tEBADFD          = syscall.Errno(0x4d)\n\tEBADMSG         = syscall.Errno(0x4a)\n\tEBADR           = syscall.Errno(0x35)\n\tEBADRQC         = syscall.Errno(0x38)\n\tEBADSLT         = syscall.Errno(0x39)\n\tEBFONT          = syscall.Errno(0x3b)\n\tECANCELED       = syscall.Errno(0x7d)\n\tECHRNG          = syscall.Errno(0x2c)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x67)\n\tECONNREFUSED    = syscall.Errno(0x6f)\n\tECONNRESET      = syscall.Errno(0x68)\n\tEDEADLK         = syscall.Errno(0x23)\n\tEDEADLOCK       = syscall.Errno(0x23)\n\tEDESTADDRREQ    = syscall.Errno(0x59)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x7a)\n\tEHOSTDOWN       = syscall.Errno(0x70)\n\tEHOSTUNREACH    = syscall.Errno(0x71)\n\tEHWPOISON       = syscall.Errno(0x85)\n\tEIDRM           = syscall.Errno(0x2b)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x73)\n\tEISCONN         = syscall.Errno(0x6a)\n\tEISNAM          = syscall.Errno(0x78)\n\tEKEYEXPIRED     = syscall.Errno(0x7f)\n\tEKEYREJECTED    = syscall.Errno(0x81)\n\tEKEYREVOKED     = syscall.Errno(0x80)\n\tEL2HLT          = syscall.Errno(0x33)\n\tEL2NSYNC        = syscall.Errno(0x2d)\n\tEL3HLT          = syscall.Errno(0x2e)\n\tEL3RST          = syscall.Errno(0x2f)\n\tELIBACC         = syscall.Errno(0x4f)\n\tELIBBAD         = syscall.Errno(0x50)\n\tELIBEXEC        = syscall.Errno(0x53)\n\tELIBMAX         = syscall.Errno(0x52)\n\tELIBSCN         = syscall.Errno(0x51)\n\tELNRNG          = syscall.Errno(0x30)\n\tELOOP           = syscall.Errno(0x28)\n\tEMEDIUMTYPE     = syscall.Errno(0x7c)\n\tEMSGSIZE        = syscall.Errno(0x5a)\n\tEMULTIHOP       = syscall.Errno(0x48)\n\tENAMETOOLONG    = syscall.Errno(0x24)\n\tENAVAIL         = syscall.Errno(0x77)\n\tENETDOWN        = syscall.Errno(0x64)\n\tENETRESET       = syscall.Errno(0x66)\n\tENETUNREACH     = syscall.Errno(0x65)\n\tENOANO          = syscall.Errno(0x37)\n\tENOBUFS         = syscall.Errno(0x69)\n\tENOCSI          = syscall.Errno(0x32)\n\tENODATA         = syscall.Errno(0x3d)\n\tENOKEY          = syscall.Errno(0x7e)\n\tENOLCK          = syscall.Errno(0x25)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x7b)\n\tENOMSG          = syscall.Errno(0x2a)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x5c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x26)\n\tENOTCONN        = syscall.Errno(0x6b)\n\tENOTEMPTY       = syscall.Errno(0x27)\n\tENOTNAM         = syscall.Errno(0x76)\n\tENOTRECOVERABLE = syscall.Errno(0x83)\n\tENOTSOCK        = syscall.Errno(0x58)\n\tENOTSUP         = syscall.Errno(0x5f)\n\tENOTUNIQ        = syscall.Errno(0x4c)\n\tEOPNOTSUPP      = syscall.Errno(0x5f)\n\tEOVERFLOW       = syscall.Errno(0x4b)\n\tEOWNERDEAD      = syscall.Errno(0x82)\n\tEPFNOSUPPORT    = syscall.Errno(0x60)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x5d)\n\tEPROTOTYPE      = syscall.Errno(0x5b)\n\tEREMCHG         = syscall.Errno(0x4e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x79)\n\tERESTART        = syscall.Errno(0x55)\n\tERFKILL         = syscall.Errno(0x84)\n\tESHUTDOWN       = syscall.Errno(0x6c)\n\tESOCKTNOSUPPORT = syscall.Errno(0x5e)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x74)\n\tESTRPIPE        = syscall.Errno(0x56)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x6e)\n\tETOOMANYREFS    = syscall.Errno(0x6d)\n\tEUCLEAN         = syscall.Errno(0x75)\n\tEUNATCH         = syscall.Errno(0x31)\n\tEUSERS          = syscall.Errno(0x57)\n\tEXFULL          = syscall.Errno(0x36)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0x7)\n\tSIGCHLD   = syscall.Signal(0x11)\n\tSIGCLD    = syscall.Signal(0x11)\n\tSIGCONT   = syscall.Signal(0x12)\n\tSIGIO     = syscall.Signal(0x1d)\n\tSIGPOLL   = syscall.Signal(0x1d)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x1e)\n\tSIGSTKFLT = syscall.Signal(0x10)\n\tSIGSTOP   = syscall.Signal(0x13)\n\tSIGSYS    = syscall.Signal(0x1f)\n\tSIGTSTP   = syscall.Signal(0x14)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x17)\n\tSIGUSR1   = syscall.Signal(0xa)\n\tSIGUSR2   = syscall.Signal(0xc)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{36, \"ENAMETOOLONG\", \"file name too long\"},\n\t{37, \"ENOLCK\", \"no locks available\"},\n\t{38, \"ENOSYS\", \"function not implemented\"},\n\t{39, \"ENOTEMPTY\", \"directory not empty\"},\n\t{40, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{42, \"ENOMSG\", \"no message of desired type\"},\n\t{43, \"EIDRM\", \"identifier removed\"},\n\t{44, \"ECHRNG\", \"channel number out of range\"},\n\t{45, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{46, \"EL3HLT\", \"level 3 halted\"},\n\t{47, \"EL3RST\", \"level 3 reset\"},\n\t{48, \"ELNRNG\", \"link number out of range\"},\n\t{49, \"EUNATCH\", \"protocol driver not attached\"},\n\t{50, \"ENOCSI\", \"no CSI structure available\"},\n\t{51, \"EL2HLT\", \"level 2 halted\"},\n\t{52, \"EBADE\", \"invalid exchange\"},\n\t{53, \"EBADR\", \"invalid request descriptor\"},\n\t{54, \"EXFULL\", \"exchange full\"},\n\t{55, \"ENOANO\", \"no anode\"},\n\t{56, \"EBADRQC\", \"invalid request code\"},\n\t{57, \"EBADSLT\", \"invalid slot\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{72, \"EMULTIHOP\", \"multihop attempted\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EBADMSG\", \"bad message\"},\n\t{75, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{76, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{77, \"EBADFD\", \"file descriptor in bad state\"},\n\t{78, \"EREMCHG\", \"remote address changed\"},\n\t{79, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{80, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{81, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{82, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{83, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{84, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{85, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{86, \"ESTRPIPE\", \"streams pipe error\"},\n\t{87, \"EUSERS\", \"too many users\"},\n\t{88, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{89, \"EDESTADDRREQ\", \"destination address required\"},\n\t{90, \"EMSGSIZE\", \"message too long\"},\n\t{91, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{92, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{93, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{94, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{95, \"ENOTSUP\", \"operation not supported\"},\n\t{96, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{97, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{98, \"EADDRINUSE\", \"address already in use\"},\n\t{99, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{100, \"ENETDOWN\", \"network is down\"},\n\t{101, \"ENETUNREACH\", \"network is unreachable\"},\n\t{102, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{103, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{104, \"ECONNRESET\", \"connection reset by peer\"},\n\t{105, \"ENOBUFS\", \"no buffer space available\"},\n\t{106, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{107, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{108, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{109, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{110, \"ETIMEDOUT\", \"connection timed out\"},\n\t{111, \"ECONNREFUSED\", \"connection refused\"},\n\t{112, \"EHOSTDOWN\", \"host is down\"},\n\t{113, \"EHOSTUNREACH\", \"no route to host\"},\n\t{114, \"EALREADY\", \"operation already in progress\"},\n\t{115, \"EINPROGRESS\", \"operation now in progress\"},\n\t{116, \"ESTALE\", \"stale file handle\"},\n\t{117, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{118, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{119, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{120, \"EISNAM\", \"is a named type file\"},\n\t{121, \"EREMOTEIO\", \"remote I/O error\"},\n\t{122, \"EDQUOT\", \"disk quota exceeded\"},\n\t{123, \"ENOMEDIUM\", \"no medium found\"},\n\t{124, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{125, \"ECANCELED\", \"operation canceled\"},\n\t{126, \"ENOKEY\", \"required key not available\"},\n\t{127, \"EKEYEXPIRED\", \"key has expired\"},\n\t{128, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{129, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{130, \"EOWNERDEAD\", \"owner died\"},\n\t{131, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{132, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{133, \"EHWPOISON\", \"memory page has hardware error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGBUS\", \"bus error\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGUSR1\", \"user defined signal 1\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGUSR2\", \"user defined signal 2\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGSTKFLT\", \"stack fault\"},\n\t{17, \"SIGCHLD\", \"child exited\"},\n\t{18, \"SIGCONT\", \"continued\"},\n\t{19, \"SIGSTOP\", \"stopped (signal)\"},\n\t{20, \"SIGTSTP\", \"stopped\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGURG\", \"urgent I/O condition\"},\n\t{24, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGIO\", \"I/O possible\"},\n\t{30, \"SIGPWR\", \"power failure\"},\n\t{31, \"SIGSYS\", \"bad system call\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_arm.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/arm/include\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/arm/include _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tB1000000                         = 0x1008\n\tB115200                          = 0x1002\n\tB1152000                         = 0x1009\n\tB1500000                         = 0x100a\n\tB2000000                         = 0x100b\n\tB230400                          = 0x1003\n\tB2500000                         = 0x100c\n\tB3000000                         = 0x100d\n\tB3500000                         = 0x100e\n\tB4000000                         = 0x100f\n\tB460800                          = 0x1004\n\tB500000                          = 0x1005\n\tB57600                           = 0x1001\n\tB576000                          = 0x1006\n\tB921600                          = 0x1007\n\tBLKALIGNOFF                      = 0x127a\n\tBLKBSZGET                        = 0x80041270\n\tBLKBSZSET                        = 0x40041271\n\tBLKDISCARD                       = 0x1277\n\tBLKDISCARDZEROES                 = 0x127c\n\tBLKFLSBUF                        = 0x1261\n\tBLKFRAGET                        = 0x1265\n\tBLKFRASET                        = 0x1264\n\tBLKGETDISKSEQ                    = 0x80081280\n\tBLKGETSIZE                       = 0x1260\n\tBLKGETSIZE64                     = 0x80041272\n\tBLKIOMIN                         = 0x1278\n\tBLKIOOPT                         = 0x1279\n\tBLKPBSZGET                       = 0x127b\n\tBLKRAGET                         = 0x1263\n\tBLKRASET                         = 0x1262\n\tBLKROGET                         = 0x125e\n\tBLKROSET                         = 0x125d\n\tBLKROTATIONAL                    = 0x127e\n\tBLKRRPART                        = 0x125f\n\tBLKSECDISCARD                    = 0x127d\n\tBLKSECTGET                       = 0x1267\n\tBLKSECTSET                       = 0x1266\n\tBLKSSZGET                        = 0x1268\n\tBLKZEROOUT                       = 0x127f\n\tBOTHER                           = 0x1000\n\tBS1                              = 0x2000\n\tBSDLY                            = 0x2000\n\tCBAUD                            = 0x100f\n\tCBAUDEX                          = 0x1000\n\tCIBAUD                           = 0x100f0000\n\tCLOCAL                           = 0x800\n\tCR1                              = 0x200\n\tCR2                              = 0x400\n\tCR3                              = 0x600\n\tCRDLY                            = 0x600\n\tCREAD                            = 0x80\n\tCS6                              = 0x10\n\tCS7                              = 0x20\n\tCS8                              = 0x30\n\tCSIZE                            = 0x30\n\tCSTOPB                           = 0x40\n\tECCGETLAYOUT                     = 0x81484d11\n\tECCGETSTATS                      = 0x80104d12\n\tECHOCTL                          = 0x200\n\tECHOE                            = 0x10\n\tECHOK                            = 0x20\n\tECHOKE                           = 0x800\n\tECHONL                           = 0x40\n\tECHOPRT                          = 0x400\n\tEFD_CLOEXEC                      = 0x80000\n\tEFD_NONBLOCK                     = 0x800\n\tEPIOCGPARAMS                     = 0x80088a02\n\tEPIOCSPARAMS                     = 0x40088a01\n\tEPOLL_CLOEXEC                    = 0x80000\n\tEXTPROC                          = 0x10000\n\tFF1                              = 0x8000\n\tFFDLY                            = 0x8000\n\tFICLONE                          = 0x40049409\n\tFICLONERANGE                     = 0x4020940d\n\tFLUSHO                           = 0x1000\n\tFS_IOC_ENABLE_VERITY             = 0x40806685\n\tFS_IOC_GETFLAGS                  = 0x80046601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x8010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x400c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x40106614\n\tFS_IOC_SETFLAGS                  = 0x40046602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x800c6613\n\tF_GETLK                          = 0xc\n\tF_GETLK64                        = 0xc\n\tF_GETOWN                         = 0x9\n\tF_RDLCK                          = 0x0\n\tF_SETLK                          = 0xd\n\tF_SETLK64                        = 0xd\n\tF_SETLKW                         = 0xe\n\tF_SETLKW64                       = 0xe\n\tF_SETOWN                         = 0x8\n\tF_UNLCK                          = 0x2\n\tF_WRLCK                          = 0x1\n\tHIDIOCGRAWINFO                   = 0x80084803\n\tHIDIOCGRDESC                     = 0x90044802\n\tHIDIOCGRDESCSIZE                 = 0x80044801\n\tHIDIOCREVOKE                     = 0x4004480d\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x8000\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x800\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9\n\tIPV6_FLOWINFO_MASK               = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK              = 0xffff0f00\n\tISIG                             = 0x1\n\tIUCLC                            = 0x200\n\tIXOFF                            = 0x1000\n\tIXON                             = 0x400\n\tMAP_ANON                         = 0x20\n\tMAP_ANONYMOUS                    = 0x20\n\tMAP_DENYWRITE                    = 0x800\n\tMAP_EXECUTABLE                   = 0x1000\n\tMAP_GROWSDOWN                    = 0x100\n\tMAP_HUGETLB                      = 0x40000\n\tMAP_LOCKED                       = 0x2000\n\tMAP_NONBLOCK                     = 0x10000\n\tMAP_NORESERVE                    = 0x4000\n\tMAP_POPULATE                     = 0x8000\n\tMAP_STACK                        = 0x20000\n\tMAP_SYNC                         = 0x80000\n\tMCL_CURRENT                      = 0x1\n\tMCL_FUTURE                       = 0x2\n\tMCL_ONFAULT                      = 0x4\n\tMEMERASE                         = 0x40084d02\n\tMEMERASE64                       = 0x40104d14\n\tMEMGETBADBLOCK                   = 0x40084d0b\n\tMEMGETINFO                       = 0x80204d01\n\tMEMGETOOBSEL                     = 0x80c84d0a\n\tMEMGETREGIONCOUNT                = 0x80044d07\n\tMEMISLOCKED                      = 0x80084d17\n\tMEMLOCK                          = 0x40084d05\n\tMEMREAD                          = 0xc0404d1a\n\tMEMREADOOB                       = 0xc00c4d04\n\tMEMSETBADBLOCK                   = 0x40084d0c\n\tMEMUNLOCK                        = 0x40084d06\n\tMEMWRITEOOB                      = 0xc00c4d03\n\tMTDFILEMODE                      = 0x4d13\n\tNFDBITS                          = 0x20\n\tNLDLY                            = 0x100\n\tNOFLSH                           = 0x80\n\tNS_GET_MNTNS_ID                  = 0x8008b705\n\tNS_GET_NSTYPE                    = 0xb703\n\tNS_GET_OWNER_UID                 = 0xb704\n\tNS_GET_PARENT                    = 0xb702\n\tNS_GET_PID_FROM_PIDNS            = 0x8004b706\n\tNS_GET_PID_IN_PIDNS              = 0x8004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x8004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x8004b709\n\tNS_GET_USERNS                    = 0xb701\n\tOLCUC                            = 0x2\n\tONLCR                            = 0x4\n\tOTPERASE                         = 0x400c4d19\n\tOTPGETREGIONCOUNT                = 0x40044d0e\n\tOTPGETREGIONINFO                 = 0x400c4d0f\n\tOTPLOCK                          = 0x800c4d10\n\tOTPSELECT                        = 0x80044d0d\n\tO_APPEND                         = 0x400\n\tO_ASYNC                          = 0x2000\n\tO_CLOEXEC                        = 0x80000\n\tO_CREAT                          = 0x40\n\tO_DIRECT                         = 0x10000\n\tO_DIRECTORY                      = 0x4000\n\tO_DSYNC                          = 0x1000\n\tO_EXCL                           = 0x80\n\tO_FSYNC                          = 0x101000\n\tO_LARGEFILE                      = 0x20000\n\tO_NDELAY                         = 0x800\n\tO_NOATIME                        = 0x40000\n\tO_NOCTTY                         = 0x100\n\tO_NOFOLLOW                       = 0x8000\n\tO_NONBLOCK                       = 0x800\n\tO_PATH                           = 0x200000\n\tO_RSYNC                          = 0x101000\n\tO_SYNC                           = 0x101000\n\tO_TMPFILE                        = 0x404000\n\tO_TRUNC                          = 0x200\n\tPARENB                           = 0x100\n\tPARODD                           = 0x200\n\tPENDIN                           = 0x4000\n\tPERF_EVENT_IOC_DISABLE           = 0x2401\n\tPERF_EVENT_IOC_ENABLE            = 0x2400\n\tPERF_EVENT_IOC_ID                = 0x80042407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4004240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x40042409\n\tPERF_EVENT_IOC_PERIOD            = 0x40082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc004240a\n\tPERF_EVENT_IOC_REFRESH           = 0x2402\n\tPERF_EVENT_IOC_RESET             = 0x2403\n\tPERF_EVENT_IOC_SET_BPF           = 0x40042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x40042406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x2405\n\tPPPIOCATTACH                     = 0x4004743d\n\tPPPIOCATTCHAN                    = 0x40047438\n\tPPPIOCBRIDGECHAN                 = 0x40047435\n\tPPPIOCCONNECT                    = 0x4004743a\n\tPPPIOCDETACH                     = 0x4004743c\n\tPPPIOCDISCONN                    = 0x7439\n\tPPPIOCGASYNCMAP                  = 0x80047458\n\tPPPIOCGCHAN                      = 0x80047437\n\tPPPIOCGDEBUG                     = 0x80047441\n\tPPPIOCGFLAGS                     = 0x8004745a\n\tPPPIOCGIDLE                      = 0x8008743f\n\tPPPIOCGIDLE32                    = 0x8008743f\n\tPPPIOCGIDLE64                    = 0x8010743f\n\tPPPIOCGL2TPSTATS                 = 0x80487436\n\tPPPIOCGMRU                       = 0x80047453\n\tPPPIOCGRASYNCMAP                 = 0x80047455\n\tPPPIOCGUNIT                      = 0x80047456\n\tPPPIOCGXASYNCMAP                 = 0x80207450\n\tPPPIOCSACTIVE                    = 0x40087446\n\tPPPIOCSASYNCMAP                  = 0x40047457\n\tPPPIOCSCOMPRESS                  = 0x400c744d\n\tPPPIOCSDEBUG                     = 0x40047440\n\tPPPIOCSFLAGS                     = 0x40047459\n\tPPPIOCSMAXCID                    = 0x40047451\n\tPPPIOCSMRRU                      = 0x4004743b\n\tPPPIOCSMRU                       = 0x40047452\n\tPPPIOCSNPMODE                    = 0x4008744b\n\tPPPIOCSPASS                      = 0x40087447\n\tPPPIOCSRASYNCMAP                 = 0x40047454\n\tPPPIOCSXASYNCMAP                 = 0x4020744f\n\tPPPIOCUNBRIDGECHAN               = 0x7434\n\tPPPIOCXFERUNIT                   = 0x744e\n\tPR_SET_PTRACER_ANY               = 0xffffffff\n\tPTP_CLOCK_GETCAPS                = 0x80503d01\n\tPTP_CLOCK_GETCAPS2               = 0x80503d0a\n\tPTP_ENABLE_PPS                   = 0x40043d04\n\tPTP_ENABLE_PPS2                  = 0x40043d0d\n\tPTP_EXTTS_REQUEST                = 0x40103d02\n\tPTP_EXTTS_REQUEST2               = 0x40103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x3d13\n\tPTP_MASK_EN_SINGLE               = 0x40043d14\n\tPTP_PEROUT_REQUEST               = 0x40383d03\n\tPTP_PEROUT_REQUEST2              = 0x40383d0c\n\tPTP_PIN_SETFUNC                  = 0x40603d07\n\tPTP_PIN_SETFUNC2                 = 0x40603d10\n\tPTP_SYS_OFFSET                   = 0x43403d05\n\tPTP_SYS_OFFSET2                  = 0x43403d0e\n\tPTRACE_GETCRUNCHREGS             = 0x19\n\tPTRACE_GETFDPIC                  = 0x1f\n\tPTRACE_GETFDPIC_EXEC             = 0x0\n\tPTRACE_GETFDPIC_INTERP           = 0x1\n\tPTRACE_GETFPREGS                 = 0xe\n\tPTRACE_GETHBPREGS                = 0x1d\n\tPTRACE_GETVFPREGS                = 0x1b\n\tPTRACE_GETWMMXREGS               = 0x12\n\tPTRACE_GET_THREAD_AREA           = 0x16\n\tPTRACE_OLDSETOPTIONS             = 0x15\n\tPTRACE_SETCRUNCHREGS             = 0x1a\n\tPTRACE_SETFPREGS                 = 0xf\n\tPTRACE_SETHBPREGS                = 0x1e\n\tPTRACE_SETVFPREGS                = 0x1c\n\tPTRACE_SETWMMXREGS               = 0x13\n\tPTRACE_SET_SYSCALL               = 0x17\n\tPT_DATA_ADDR                     = 0x10004\n\tPT_TEXT_ADDR                     = 0x10000\n\tPT_TEXT_END_ADDR                 = 0x10008\n\tRLIMIT_AS                        = 0x9\n\tRLIMIT_MEMLOCK                   = 0x8\n\tRLIMIT_NOFILE                    = 0x7\n\tRLIMIT_NPROC                     = 0x6\n\tRLIMIT_RSS                       = 0x5\n\tRNDADDENTROPY                    = 0x40085203\n\tRNDADDTOENTCNT                   = 0x40045201\n\tRNDCLEARPOOL                     = 0x5206\n\tRNDGETENTCNT                     = 0x80045200\n\tRNDGETPOOL                       = 0x80085202\n\tRNDRESEEDCRNG                    = 0x5207\n\tRNDZAPENTCNT                     = 0x5204\n\tRTC_AIE_OFF                      = 0x7002\n\tRTC_AIE_ON                       = 0x7001\n\tRTC_ALM_READ                     = 0x80247008\n\tRTC_ALM_SET                      = 0x40247007\n\tRTC_EPOCH_READ                   = 0x8004700d\n\tRTC_EPOCH_SET                    = 0x4004700e\n\tRTC_IRQP_READ                    = 0x8004700b\n\tRTC_IRQP_SET                     = 0x4004700c\n\tRTC_PARAM_GET                    = 0x40187013\n\tRTC_PARAM_SET                    = 0x40187014\n\tRTC_PIE_OFF                      = 0x7006\n\tRTC_PIE_ON                       = 0x7005\n\tRTC_PLL_GET                      = 0x801c7011\n\tRTC_PLL_SET                      = 0x401c7012\n\tRTC_RD_TIME                      = 0x80247009\n\tRTC_SET_TIME                     = 0x4024700a\n\tRTC_UIE_OFF                      = 0x7004\n\tRTC_UIE_ON                       = 0x7003\n\tRTC_VL_CLR                       = 0x7014\n\tRTC_VL_READ                      = 0x80047013\n\tRTC_WIE_OFF                      = 0x7010\n\tRTC_WIE_ON                       = 0x700f\n\tRTC_WKALM_RD                     = 0x80287010\n\tRTC_WKALM_SET                    = 0x4028700f\n\tSCM_DEVMEM_DMABUF                = 0x4f\n\tSCM_DEVMEM_LINEAR                = 0x4e\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TS_OPT_ID                    = 0x51\n\tSCM_TXTIME                       = 0x3d\n\tSCM_WIFI_STATUS                  = 0x29\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x40182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x40082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x40082104\n\tSFD_CLOEXEC                      = 0x80000\n\tSFD_NONBLOCK                     = 0x800\n\tSIOCATMARK                       = 0x8905\n\tSIOCGPGRP                        = 0x8904\n\tSIOCGSTAMPNS_NEW                 = 0x80108907\n\tSIOCGSTAMP_NEW                   = 0x80108906\n\tSIOCINQ                          = 0x541b\n\tSIOCOUTQ                         = 0x5411\n\tSIOCSPGRP                        = 0x8902\n\tSOCK_CLOEXEC                     = 0x80000\n\tSOCK_DGRAM                       = 0x2\n\tSOCK_NONBLOCK                    = 0x800\n\tSOCK_STREAM                      = 0x1\n\tSOL_SOCKET                       = 0x1\n\tSO_ACCEPTCONN                    = 0x1e\n\tSO_ATTACH_BPF                    = 0x32\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x34\n\tSO_BINDTODEVICE                  = 0x19\n\tSO_BINDTOIFINDEX                 = 0x3e\n\tSO_BPF_EXTENSIONS                = 0x30\n\tSO_BROADCAST                     = 0x6\n\tSO_BSDCOMPAT                     = 0xe\n\tSO_BUF_LOCK                      = 0x48\n\tSO_BUSY_POLL                     = 0x2e\n\tSO_BUSY_POLL_BUDGET              = 0x46\n\tSO_CNX_ADVICE                    = 0x35\n\tSO_COOKIE                        = 0x39\n\tSO_DETACH_REUSEPORT_BPF          = 0x44\n\tSO_DEVMEM_DMABUF                 = 0x4f\n\tSO_DEVMEM_DONTNEED               = 0x50\n\tSO_DEVMEM_LINEAR                 = 0x4e\n\tSO_DOMAIN                        = 0x27\n\tSO_DONTROUTE                     = 0x5\n\tSO_ERROR                         = 0x4\n\tSO_INCOMING_CPU                  = 0x31\n\tSO_INCOMING_NAPI_ID              = 0x38\n\tSO_KEEPALIVE                     = 0x9\n\tSO_LINGER                        = 0xd\n\tSO_LOCK_FILTER                   = 0x2c\n\tSO_MARK                          = 0x24\n\tSO_MAX_PACING_RATE               = 0x2f\n\tSO_MEMINFO                       = 0x37\n\tSO_NETNS_COOKIE                  = 0x47\n\tSO_NOFCS                         = 0x2b\n\tSO_OOBINLINE                     = 0xa\n\tSO_PASSCRED                      = 0x10\n\tSO_PASSPIDFD                     = 0x4c\n\tSO_PASSSEC                       = 0x22\n\tSO_PEEK_OFF                      = 0x2a\n\tSO_PEERCRED                      = 0x11\n\tSO_PEERGROUPS                    = 0x3b\n\tSO_PEERPIDFD                     = 0x4d\n\tSO_PEERSEC                       = 0x1f\n\tSO_PREFER_BUSY_POLL              = 0x45\n\tSO_PROTOCOL                      = 0x26\n\tSO_RCVBUF                        = 0x8\n\tSO_RCVBUFFORCE                   = 0x21\n\tSO_RCVLOWAT                      = 0x12\n\tSO_RCVMARK                       = 0x4b\n\tSO_RCVTIMEO                      = 0x14\n\tSO_RCVTIMEO_NEW                  = 0x42\n\tSO_RCVTIMEO_OLD                  = 0x14\n\tSO_RESERVE_MEM                   = 0x49\n\tSO_REUSEADDR                     = 0x2\n\tSO_REUSEPORT                     = 0xf\n\tSO_RXQ_OVFL                      = 0x28\n\tSO_SECURITY_AUTHENTICATION       = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x17\n\tSO_SELECT_ERR_QUEUE              = 0x2d\n\tSO_SNDBUF                        = 0x7\n\tSO_SNDBUFFORCE                   = 0x20\n\tSO_SNDLOWAT                      = 0x13\n\tSO_SNDTIMEO                      = 0x15\n\tSO_SNDTIMEO_NEW                  = 0x43\n\tSO_SNDTIMEO_OLD                  = 0x15\n\tSO_TIMESTAMPING                  = 0x25\n\tSO_TIMESTAMPING_NEW              = 0x41\n\tSO_TIMESTAMPING_OLD              = 0x25\n\tSO_TIMESTAMPNS                   = 0x23\n\tSO_TIMESTAMPNS_NEW               = 0x40\n\tSO_TIMESTAMPNS_OLD               = 0x23\n\tSO_TIMESTAMP_NEW                 = 0x3f\n\tSO_TXREHASH                      = 0x4a\n\tSO_TXTIME                        = 0x3d\n\tSO_TYPE                          = 0x3\n\tSO_WIFI_STATUS                   = 0x29\n\tSO_ZEROCOPY                      = 0x3c\n\tTAB1                             = 0x800\n\tTAB2                             = 0x1000\n\tTAB3                             = 0x1800\n\tTABDLY                           = 0x1800\n\tTCFLSH                           = 0x540b\n\tTCGETA                           = 0x5405\n\tTCGETS                           = 0x5401\n\tTCGETS2                          = 0x802c542a\n\tTCGETX                           = 0x5432\n\tTCSAFLUSH                        = 0x2\n\tTCSBRK                           = 0x5409\n\tTCSBRKP                          = 0x5425\n\tTCSETA                           = 0x5406\n\tTCSETAF                          = 0x5408\n\tTCSETAW                          = 0x5407\n\tTCSETS                           = 0x5402\n\tTCSETS2                          = 0x402c542b\n\tTCSETSF                          = 0x5404\n\tTCSETSF2                         = 0x402c542d\n\tTCSETSW                          = 0x5403\n\tTCSETSW2                         = 0x402c542c\n\tTCSETX                           = 0x5433\n\tTCSETXF                          = 0x5434\n\tTCSETXW                          = 0x5435\n\tTCXONC                           = 0x540a\n\tTFD_CLOEXEC                      = 0x80000\n\tTFD_NONBLOCK                     = 0x800\n\tTIOCCBRK                         = 0x5428\n\tTIOCCONS                         = 0x541d\n\tTIOCEXCL                         = 0x540c\n\tTIOCGDEV                         = 0x80045432\n\tTIOCGETD                         = 0x5424\n\tTIOCGEXCL                        = 0x80045440\n\tTIOCGICOUNT                      = 0x545d\n\tTIOCGISO7816                     = 0x80285442\n\tTIOCGLCKTRMIOS                   = 0x5456\n\tTIOCGPGRP                        = 0x540f\n\tTIOCGPKT                         = 0x80045438\n\tTIOCGPTLCK                       = 0x80045439\n\tTIOCGPTN                         = 0x80045430\n\tTIOCGPTPEER                      = 0x5441\n\tTIOCGRS485                       = 0x542e\n\tTIOCGSERIAL                      = 0x541e\n\tTIOCGSID                         = 0x5429\n\tTIOCGSOFTCAR                     = 0x5419\n\tTIOCGWINSZ                       = 0x5413\n\tTIOCINQ                          = 0x541b\n\tTIOCLINUX                        = 0x541c\n\tTIOCMBIC                         = 0x5417\n\tTIOCMBIS                         = 0x5416\n\tTIOCMGET                         = 0x5415\n\tTIOCMIWAIT                       = 0x545c\n\tTIOCMSET                         = 0x5418\n\tTIOCM_CAR                        = 0x40\n\tTIOCM_CD                         = 0x40\n\tTIOCM_CTS                        = 0x20\n\tTIOCM_DSR                        = 0x100\n\tTIOCM_RI                         = 0x80\n\tTIOCM_RNG                        = 0x80\n\tTIOCM_SR                         = 0x10\n\tTIOCM_ST                         = 0x8\n\tTIOCNOTTY                        = 0x5422\n\tTIOCNXCL                         = 0x540d\n\tTIOCOUTQ                         = 0x5411\n\tTIOCPKT                          = 0x5420\n\tTIOCSBRK                         = 0x5427\n\tTIOCSCTTY                        = 0x540e\n\tTIOCSERCONFIG                    = 0x5453\n\tTIOCSERGETLSR                    = 0x5459\n\tTIOCSERGETMULTI                  = 0x545a\n\tTIOCSERGSTRUCT                   = 0x5458\n\tTIOCSERGWILD                     = 0x5454\n\tTIOCSERSETMULTI                  = 0x545b\n\tTIOCSERSWILD                     = 0x5455\n\tTIOCSER_TEMT                     = 0x1\n\tTIOCSETD                         = 0x5423\n\tTIOCSIG                          = 0x40045436\n\tTIOCSISO7816                     = 0xc0285443\n\tTIOCSLCKTRMIOS                   = 0x5457\n\tTIOCSPGRP                        = 0x5410\n\tTIOCSPTLCK                       = 0x40045431\n\tTIOCSRS485                       = 0x542f\n\tTIOCSSERIAL                      = 0x541f\n\tTIOCSSOFTCAR                     = 0x541a\n\tTIOCSTI                          = 0x5412\n\tTIOCSWINSZ                       = 0x5414\n\tTIOCVHANGUP                      = 0x5437\n\tTOSTOP                           = 0x100\n\tTUNATTACHFILTER                  = 0x400854d5\n\tTUNDETACHFILTER                  = 0x400854d6\n\tTUNGETDEVNETNS                   = 0x54e3\n\tTUNGETFEATURES                   = 0x800454cf\n\tTUNGETFILTER                     = 0x800854db\n\tTUNGETIFF                        = 0x800454d2\n\tTUNGETSNDBUF                     = 0x800454d3\n\tTUNGETVNETBE                     = 0x800454df\n\tTUNGETVNETHDRSZ                  = 0x800454d7\n\tTUNGETVNETLE                     = 0x800454dd\n\tTUNSETCARRIER                    = 0x400454e2\n\tTUNSETDEBUG                      = 0x400454c9\n\tTUNSETFILTEREBPF                 = 0x800454e1\n\tTUNSETGROUP                      = 0x400454ce\n\tTUNSETIFF                        = 0x400454ca\n\tTUNSETIFINDEX                    = 0x400454da\n\tTUNSETLINK                       = 0x400454cd\n\tTUNSETNOCSUM                     = 0x400454c8\n\tTUNSETOFFLOAD                    = 0x400454d0\n\tTUNSETOWNER                      = 0x400454cc\n\tTUNSETPERSIST                    = 0x400454cb\n\tTUNSETQUEUE                      = 0x400454d9\n\tTUNSETSNDBUF                     = 0x400454d4\n\tTUNSETSTEERINGEBPF               = 0x800454e0\n\tTUNSETTXFILTER                   = 0x400454d1\n\tTUNSETVNETBE                     = 0x400454de\n\tTUNSETVNETHDRSZ                  = 0x400454d8\n\tTUNSETVNETLE                     = 0x400454dc\n\tUBI_IOCATT                       = 0x40186f40\n\tUBI_IOCDET                       = 0x40046f41\n\tUBI_IOCEBCH                      = 0x40044f02\n\tUBI_IOCEBER                      = 0x40044f01\n\tUBI_IOCEBISMAP                   = 0x80044f05\n\tUBI_IOCEBMAP                     = 0x40084f03\n\tUBI_IOCEBUNMAP                   = 0x40044f04\n\tUBI_IOCMKVOL                     = 0x40986f00\n\tUBI_IOCRMVOL                     = 0x40046f01\n\tUBI_IOCRNVOL                     = 0x51106f03\n\tUBI_IOCRPEB                      = 0x40046f04\n\tUBI_IOCRSVOL                     = 0x400c6f02\n\tUBI_IOCSETVOLPROP                = 0x40104f06\n\tUBI_IOCSPEB                      = 0x40046f05\n\tUBI_IOCVOLCRBLK                  = 0x40804f07\n\tUBI_IOCVOLRMBLK                  = 0x4f08\n\tUBI_IOCVOLUP                     = 0x40084f00\n\tVDISCARD                         = 0xd\n\tVEOF                             = 0x4\n\tVEOL                             = 0xb\n\tVEOL2                            = 0x10\n\tVMIN                             = 0x6\n\tVREPRINT                         = 0xc\n\tVSTART                           = 0x8\n\tVSTOP                            = 0x9\n\tVSUSP                            = 0xa\n\tVSWTC                            = 0x7\n\tVT1                              = 0x4000\n\tVTDLY                            = 0x4000\n\tVTIME                            = 0x5\n\tVWERASE                          = 0xe\n\tWDIOC_GETBOOTSTATUS              = 0x80045702\n\tWDIOC_GETPRETIMEOUT              = 0x80045709\n\tWDIOC_GETSTATUS                  = 0x80045701\n\tWDIOC_GETSUPPORT                 = 0x80285700\n\tWDIOC_GETTEMP                    = 0x80045703\n\tWDIOC_GETTIMELEFT                = 0x8004570a\n\tWDIOC_GETTIMEOUT                 = 0x80045707\n\tWDIOC_KEEPALIVE                  = 0x80045705\n\tWDIOC_SETOPTIONS                 = 0x80045704\n\tWORDSIZE                         = 0x20\n\tXCASE                            = 0x4\n\tXTABS                            = 0x1800\n\t_HIDIOCGRAWNAME                  = 0x80804804\n\t_HIDIOCGRAWPHYS                  = 0x80404805\n\t_HIDIOCGRAWUNIQ                  = 0x80404808\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x62)\n\tEADDRNOTAVAIL   = syscall.Errno(0x63)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x61)\n\tEALREADY        = syscall.Errno(0x72)\n\tEBADE           = syscall.Errno(0x34)\n\tEBADFD          = syscall.Errno(0x4d)\n\tEBADMSG         = syscall.Errno(0x4a)\n\tEBADR           = syscall.Errno(0x35)\n\tEBADRQC         = syscall.Errno(0x38)\n\tEBADSLT         = syscall.Errno(0x39)\n\tEBFONT          = syscall.Errno(0x3b)\n\tECANCELED       = syscall.Errno(0x7d)\n\tECHRNG          = syscall.Errno(0x2c)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x67)\n\tECONNREFUSED    = syscall.Errno(0x6f)\n\tECONNRESET      = syscall.Errno(0x68)\n\tEDEADLK         = syscall.Errno(0x23)\n\tEDEADLOCK       = syscall.Errno(0x23)\n\tEDESTADDRREQ    = syscall.Errno(0x59)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x7a)\n\tEHOSTDOWN       = syscall.Errno(0x70)\n\tEHOSTUNREACH    = syscall.Errno(0x71)\n\tEHWPOISON       = syscall.Errno(0x85)\n\tEIDRM           = syscall.Errno(0x2b)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x73)\n\tEISCONN         = syscall.Errno(0x6a)\n\tEISNAM          = syscall.Errno(0x78)\n\tEKEYEXPIRED     = syscall.Errno(0x7f)\n\tEKEYREJECTED    = syscall.Errno(0x81)\n\tEKEYREVOKED     = syscall.Errno(0x80)\n\tEL2HLT          = syscall.Errno(0x33)\n\tEL2NSYNC        = syscall.Errno(0x2d)\n\tEL3HLT          = syscall.Errno(0x2e)\n\tEL3RST          = syscall.Errno(0x2f)\n\tELIBACC         = syscall.Errno(0x4f)\n\tELIBBAD         = syscall.Errno(0x50)\n\tELIBEXEC        = syscall.Errno(0x53)\n\tELIBMAX         = syscall.Errno(0x52)\n\tELIBSCN         = syscall.Errno(0x51)\n\tELNRNG          = syscall.Errno(0x30)\n\tELOOP           = syscall.Errno(0x28)\n\tEMEDIUMTYPE     = syscall.Errno(0x7c)\n\tEMSGSIZE        = syscall.Errno(0x5a)\n\tEMULTIHOP       = syscall.Errno(0x48)\n\tENAMETOOLONG    = syscall.Errno(0x24)\n\tENAVAIL         = syscall.Errno(0x77)\n\tENETDOWN        = syscall.Errno(0x64)\n\tENETRESET       = syscall.Errno(0x66)\n\tENETUNREACH     = syscall.Errno(0x65)\n\tENOANO          = syscall.Errno(0x37)\n\tENOBUFS         = syscall.Errno(0x69)\n\tENOCSI          = syscall.Errno(0x32)\n\tENODATA         = syscall.Errno(0x3d)\n\tENOKEY          = syscall.Errno(0x7e)\n\tENOLCK          = syscall.Errno(0x25)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x7b)\n\tENOMSG          = syscall.Errno(0x2a)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x5c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x26)\n\tENOTCONN        = syscall.Errno(0x6b)\n\tENOTEMPTY       = syscall.Errno(0x27)\n\tENOTNAM         = syscall.Errno(0x76)\n\tENOTRECOVERABLE = syscall.Errno(0x83)\n\tENOTSOCK        = syscall.Errno(0x58)\n\tENOTSUP         = syscall.Errno(0x5f)\n\tENOTUNIQ        = syscall.Errno(0x4c)\n\tEOPNOTSUPP      = syscall.Errno(0x5f)\n\tEOVERFLOW       = syscall.Errno(0x4b)\n\tEOWNERDEAD      = syscall.Errno(0x82)\n\tEPFNOSUPPORT    = syscall.Errno(0x60)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x5d)\n\tEPROTOTYPE      = syscall.Errno(0x5b)\n\tEREMCHG         = syscall.Errno(0x4e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x79)\n\tERESTART        = syscall.Errno(0x55)\n\tERFKILL         = syscall.Errno(0x84)\n\tESHUTDOWN       = syscall.Errno(0x6c)\n\tESOCKTNOSUPPORT = syscall.Errno(0x5e)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x74)\n\tESTRPIPE        = syscall.Errno(0x56)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x6e)\n\tETOOMANYREFS    = syscall.Errno(0x6d)\n\tEUCLEAN         = syscall.Errno(0x75)\n\tEUNATCH         = syscall.Errno(0x31)\n\tEUSERS          = syscall.Errno(0x57)\n\tEXFULL          = syscall.Errno(0x36)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0x7)\n\tSIGCHLD   = syscall.Signal(0x11)\n\tSIGCLD    = syscall.Signal(0x11)\n\tSIGCONT   = syscall.Signal(0x12)\n\tSIGIO     = syscall.Signal(0x1d)\n\tSIGPOLL   = syscall.Signal(0x1d)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x1e)\n\tSIGSTKFLT = syscall.Signal(0x10)\n\tSIGSTOP   = syscall.Signal(0x13)\n\tSIGSYS    = syscall.Signal(0x1f)\n\tSIGTSTP   = syscall.Signal(0x14)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x17)\n\tSIGUSR1   = syscall.Signal(0xa)\n\tSIGUSR2   = syscall.Signal(0xc)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{36, \"ENAMETOOLONG\", \"file name too long\"},\n\t{37, \"ENOLCK\", \"no locks available\"},\n\t{38, \"ENOSYS\", \"function not implemented\"},\n\t{39, \"ENOTEMPTY\", \"directory not empty\"},\n\t{40, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{42, \"ENOMSG\", \"no message of desired type\"},\n\t{43, \"EIDRM\", \"identifier removed\"},\n\t{44, \"ECHRNG\", \"channel number out of range\"},\n\t{45, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{46, \"EL3HLT\", \"level 3 halted\"},\n\t{47, \"EL3RST\", \"level 3 reset\"},\n\t{48, \"ELNRNG\", \"link number out of range\"},\n\t{49, \"EUNATCH\", \"protocol driver not attached\"},\n\t{50, \"ENOCSI\", \"no CSI structure available\"},\n\t{51, \"EL2HLT\", \"level 2 halted\"},\n\t{52, \"EBADE\", \"invalid exchange\"},\n\t{53, \"EBADR\", \"invalid request descriptor\"},\n\t{54, \"EXFULL\", \"exchange full\"},\n\t{55, \"ENOANO\", \"no anode\"},\n\t{56, \"EBADRQC\", \"invalid request code\"},\n\t{57, \"EBADSLT\", \"invalid slot\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{72, \"EMULTIHOP\", \"multihop attempted\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EBADMSG\", \"bad message\"},\n\t{75, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{76, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{77, \"EBADFD\", \"file descriptor in bad state\"},\n\t{78, \"EREMCHG\", \"remote address changed\"},\n\t{79, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{80, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{81, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{82, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{83, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{84, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{85, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{86, \"ESTRPIPE\", \"streams pipe error\"},\n\t{87, \"EUSERS\", \"too many users\"},\n\t{88, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{89, \"EDESTADDRREQ\", \"destination address required\"},\n\t{90, \"EMSGSIZE\", \"message too long\"},\n\t{91, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{92, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{93, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{94, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{95, \"ENOTSUP\", \"operation not supported\"},\n\t{96, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{97, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{98, \"EADDRINUSE\", \"address already in use\"},\n\t{99, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{100, \"ENETDOWN\", \"network is down\"},\n\t{101, \"ENETUNREACH\", \"network is unreachable\"},\n\t{102, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{103, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{104, \"ECONNRESET\", \"connection reset by peer\"},\n\t{105, \"ENOBUFS\", \"no buffer space available\"},\n\t{106, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{107, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{108, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{109, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{110, \"ETIMEDOUT\", \"connection timed out\"},\n\t{111, \"ECONNREFUSED\", \"connection refused\"},\n\t{112, \"EHOSTDOWN\", \"host is down\"},\n\t{113, \"EHOSTUNREACH\", \"no route to host\"},\n\t{114, \"EALREADY\", \"operation already in progress\"},\n\t{115, \"EINPROGRESS\", \"operation now in progress\"},\n\t{116, \"ESTALE\", \"stale file handle\"},\n\t{117, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{118, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{119, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{120, \"EISNAM\", \"is a named type file\"},\n\t{121, \"EREMOTEIO\", \"remote I/O error\"},\n\t{122, \"EDQUOT\", \"disk quota exceeded\"},\n\t{123, \"ENOMEDIUM\", \"no medium found\"},\n\t{124, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{125, \"ECANCELED\", \"operation canceled\"},\n\t{126, \"ENOKEY\", \"required key not available\"},\n\t{127, \"EKEYEXPIRED\", \"key has expired\"},\n\t{128, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{129, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{130, \"EOWNERDEAD\", \"owner died\"},\n\t{131, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{132, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{133, \"EHWPOISON\", \"memory page has hardware error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGBUS\", \"bus error\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGUSR1\", \"user defined signal 1\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGUSR2\", \"user defined signal 2\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGSTKFLT\", \"stack fault\"},\n\t{17, \"SIGCHLD\", \"child exited\"},\n\t{18, \"SIGCONT\", \"continued\"},\n\t{19, \"SIGSTOP\", \"stopped (signal)\"},\n\t{20, \"SIGTSTP\", \"stopped\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGURG\", \"urgent I/O condition\"},\n\t{24, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGIO\", \"I/O possible\"},\n\t{30, \"SIGPWR\", \"power failure\"},\n\t{31, \"SIGSYS\", \"bad system call\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/arm64/include -fsigned-char\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/arm64/include -fsigned-char _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tB1000000                         = 0x1008\n\tB115200                          = 0x1002\n\tB1152000                         = 0x1009\n\tB1500000                         = 0x100a\n\tB2000000                         = 0x100b\n\tB230400                          = 0x1003\n\tB2500000                         = 0x100c\n\tB3000000                         = 0x100d\n\tB3500000                         = 0x100e\n\tB4000000                         = 0x100f\n\tB460800                          = 0x1004\n\tB500000                          = 0x1005\n\tB57600                           = 0x1001\n\tB576000                          = 0x1006\n\tB921600                          = 0x1007\n\tBLKALIGNOFF                      = 0x127a\n\tBLKBSZGET                        = 0x80081270\n\tBLKBSZSET                        = 0x40081271\n\tBLKDISCARD                       = 0x1277\n\tBLKDISCARDZEROES                 = 0x127c\n\tBLKFLSBUF                        = 0x1261\n\tBLKFRAGET                        = 0x1265\n\tBLKFRASET                        = 0x1264\n\tBLKGETDISKSEQ                    = 0x80081280\n\tBLKGETSIZE                       = 0x1260\n\tBLKGETSIZE64                     = 0x80081272\n\tBLKIOMIN                         = 0x1278\n\tBLKIOOPT                         = 0x1279\n\tBLKPBSZGET                       = 0x127b\n\tBLKRAGET                         = 0x1263\n\tBLKRASET                         = 0x1262\n\tBLKROGET                         = 0x125e\n\tBLKROSET                         = 0x125d\n\tBLKROTATIONAL                    = 0x127e\n\tBLKRRPART                        = 0x125f\n\tBLKSECDISCARD                    = 0x127d\n\tBLKSECTGET                       = 0x1267\n\tBLKSECTSET                       = 0x1266\n\tBLKSSZGET                        = 0x1268\n\tBLKZEROOUT                       = 0x127f\n\tBOTHER                           = 0x1000\n\tBS1                              = 0x2000\n\tBSDLY                            = 0x2000\n\tCBAUD                            = 0x100f\n\tCBAUDEX                          = 0x1000\n\tCIBAUD                           = 0x100f0000\n\tCLOCAL                           = 0x800\n\tCR1                              = 0x200\n\tCR2                              = 0x400\n\tCR3                              = 0x600\n\tCRDLY                            = 0x600\n\tCREAD                            = 0x80\n\tCS6                              = 0x10\n\tCS7                              = 0x20\n\tCS8                              = 0x30\n\tCSIZE                            = 0x30\n\tCSTOPB                           = 0x40\n\tECCGETLAYOUT                     = 0x81484d11\n\tECCGETSTATS                      = 0x80104d12\n\tECHOCTL                          = 0x200\n\tECHOE                            = 0x10\n\tECHOK                            = 0x20\n\tECHOKE                           = 0x800\n\tECHONL                           = 0x40\n\tECHOPRT                          = 0x400\n\tEFD_CLOEXEC                      = 0x80000\n\tEFD_NONBLOCK                     = 0x800\n\tEPIOCGPARAMS                     = 0x80088a02\n\tEPIOCSPARAMS                     = 0x40088a01\n\tEPOLL_CLOEXEC                    = 0x80000\n\tESR_MAGIC                        = 0x45535201\n\tEXTPROC                          = 0x10000\n\tEXTRA_MAGIC                      = 0x45585401\n\tFF1                              = 0x8000\n\tFFDLY                            = 0x8000\n\tFICLONE                          = 0x40049409\n\tFICLONERANGE                     = 0x4020940d\n\tFLUSHO                           = 0x1000\n\tFPMR_MAGIC                       = 0x46504d52\n\tFPSIMD_MAGIC                     = 0x46508001\n\tFS_IOC_ENABLE_VERITY             = 0x40806685\n\tFS_IOC_GETFLAGS                  = 0x80086601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x8010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x400c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x40106614\n\tFS_IOC_SETFLAGS                  = 0x40086602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x800c6613\n\tF_GETLK                          = 0x5\n\tF_GETLK64                        = 0x5\n\tF_GETOWN                         = 0x9\n\tF_RDLCK                          = 0x0\n\tF_SETLK                          = 0x6\n\tF_SETLK64                        = 0x6\n\tF_SETLKW                         = 0x7\n\tF_SETLKW64                       = 0x7\n\tF_SETOWN                         = 0x8\n\tF_UNLCK                          = 0x2\n\tF_WRLCK                          = 0x1\n\tGCS_MAGIC                        = 0x47435300\n\tHIDIOCGRAWINFO                   = 0x80084803\n\tHIDIOCGRDESC                     = 0x90044802\n\tHIDIOCGRDESCSIZE                 = 0x80044801\n\tHIDIOCREVOKE                     = 0x4004480d\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x8000\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x800\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9\n\tIPV6_FLOWINFO_MASK               = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK              = 0xffff0f00\n\tISIG                             = 0x1\n\tIUCLC                            = 0x200\n\tIXOFF                            = 0x1000\n\tIXON                             = 0x400\n\tMAP_ANON                         = 0x20\n\tMAP_ANONYMOUS                    = 0x20\n\tMAP_DENYWRITE                    = 0x800\n\tMAP_EXECUTABLE                   = 0x1000\n\tMAP_GROWSDOWN                    = 0x100\n\tMAP_HUGETLB                      = 0x40000\n\tMAP_LOCKED                       = 0x2000\n\tMAP_NONBLOCK                     = 0x10000\n\tMAP_NORESERVE                    = 0x4000\n\tMAP_POPULATE                     = 0x8000\n\tMAP_STACK                        = 0x20000\n\tMAP_SYNC                         = 0x80000\n\tMCL_CURRENT                      = 0x1\n\tMCL_FUTURE                       = 0x2\n\tMCL_ONFAULT                      = 0x4\n\tMEMERASE                         = 0x40084d02\n\tMEMERASE64                       = 0x40104d14\n\tMEMGETBADBLOCK                   = 0x40084d0b\n\tMEMGETINFO                       = 0x80204d01\n\tMEMGETOOBSEL                     = 0x80c84d0a\n\tMEMGETREGIONCOUNT                = 0x80044d07\n\tMEMISLOCKED                      = 0x80084d17\n\tMEMLOCK                          = 0x40084d05\n\tMEMREAD                          = 0xc0404d1a\n\tMEMREADOOB                       = 0xc0104d04\n\tMEMSETBADBLOCK                   = 0x40084d0c\n\tMEMUNLOCK                        = 0x40084d06\n\tMEMWRITEOOB                      = 0xc0104d03\n\tMTDFILEMODE                      = 0x4d13\n\tNFDBITS                          = 0x40\n\tNLDLY                            = 0x100\n\tNOFLSH                           = 0x80\n\tNS_GET_MNTNS_ID                  = 0x8008b705\n\tNS_GET_NSTYPE                    = 0xb703\n\tNS_GET_OWNER_UID                 = 0xb704\n\tNS_GET_PARENT                    = 0xb702\n\tNS_GET_PID_FROM_PIDNS            = 0x8004b706\n\tNS_GET_PID_IN_PIDNS              = 0x8004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x8004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x8004b709\n\tNS_GET_USERNS                    = 0xb701\n\tOLCUC                            = 0x2\n\tONLCR                            = 0x4\n\tOTPERASE                         = 0x400c4d19\n\tOTPGETREGIONCOUNT                = 0x40044d0e\n\tOTPGETREGIONINFO                 = 0x400c4d0f\n\tOTPLOCK                          = 0x800c4d10\n\tOTPSELECT                        = 0x80044d0d\n\tO_APPEND                         = 0x400\n\tO_ASYNC                          = 0x2000\n\tO_CLOEXEC                        = 0x80000\n\tO_CREAT                          = 0x40\n\tO_DIRECT                         = 0x10000\n\tO_DIRECTORY                      = 0x4000\n\tO_DSYNC                          = 0x1000\n\tO_EXCL                           = 0x80\n\tO_FSYNC                          = 0x101000\n\tO_LARGEFILE                      = 0x0\n\tO_NDELAY                         = 0x800\n\tO_NOATIME                        = 0x40000\n\tO_NOCTTY                         = 0x100\n\tO_NOFOLLOW                       = 0x8000\n\tO_NONBLOCK                       = 0x800\n\tO_PATH                           = 0x200000\n\tO_RSYNC                          = 0x101000\n\tO_SYNC                           = 0x101000\n\tO_TMPFILE                        = 0x404000\n\tO_TRUNC                          = 0x200\n\tPARENB                           = 0x100\n\tPARODD                           = 0x200\n\tPENDIN                           = 0x4000\n\tPERF_EVENT_IOC_DISABLE           = 0x2401\n\tPERF_EVENT_IOC_ENABLE            = 0x2400\n\tPERF_EVENT_IOC_ID                = 0x80082407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x40042409\n\tPERF_EVENT_IOC_PERIOD            = 0x40082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc008240a\n\tPERF_EVENT_IOC_REFRESH           = 0x2402\n\tPERF_EVENT_IOC_RESET             = 0x2403\n\tPERF_EVENT_IOC_SET_BPF           = 0x40042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x40082406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x2405\n\tPOE_MAGIC                        = 0x504f4530\n\tPPPIOCATTACH                     = 0x4004743d\n\tPPPIOCATTCHAN                    = 0x40047438\n\tPPPIOCBRIDGECHAN                 = 0x40047435\n\tPPPIOCCONNECT                    = 0x4004743a\n\tPPPIOCDETACH                     = 0x4004743c\n\tPPPIOCDISCONN                    = 0x7439\n\tPPPIOCGASYNCMAP                  = 0x80047458\n\tPPPIOCGCHAN                      = 0x80047437\n\tPPPIOCGDEBUG                     = 0x80047441\n\tPPPIOCGFLAGS                     = 0x8004745a\n\tPPPIOCGIDLE                      = 0x8010743f\n\tPPPIOCGIDLE32                    = 0x8008743f\n\tPPPIOCGIDLE64                    = 0x8010743f\n\tPPPIOCGL2TPSTATS                 = 0x80487436\n\tPPPIOCGMRU                       = 0x80047453\n\tPPPIOCGRASYNCMAP                 = 0x80047455\n\tPPPIOCGUNIT                      = 0x80047456\n\tPPPIOCGXASYNCMAP                 = 0x80207450\n\tPPPIOCSACTIVE                    = 0x40107446\n\tPPPIOCSASYNCMAP                  = 0x40047457\n\tPPPIOCSCOMPRESS                  = 0x4010744d\n\tPPPIOCSDEBUG                     = 0x40047440\n\tPPPIOCSFLAGS                     = 0x40047459\n\tPPPIOCSMAXCID                    = 0x40047451\n\tPPPIOCSMRRU                      = 0x4004743b\n\tPPPIOCSMRU                       = 0x40047452\n\tPPPIOCSNPMODE                    = 0x4008744b\n\tPPPIOCSPASS                      = 0x40107447\n\tPPPIOCSRASYNCMAP                 = 0x40047454\n\tPPPIOCSXASYNCMAP                 = 0x4020744f\n\tPPPIOCUNBRIDGECHAN               = 0x7434\n\tPPPIOCXFERUNIT                   = 0x744e\n\tPROT_BTI                         = 0x10\n\tPROT_MTE                         = 0x20\n\tPR_SET_PTRACER_ANY               = 0xffffffffffffffff\n\tPTP_CLOCK_GETCAPS                = 0x80503d01\n\tPTP_CLOCK_GETCAPS2               = 0x80503d0a\n\tPTP_ENABLE_PPS                   = 0x40043d04\n\tPTP_ENABLE_PPS2                  = 0x40043d0d\n\tPTP_EXTTS_REQUEST                = 0x40103d02\n\tPTP_EXTTS_REQUEST2               = 0x40103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x3d13\n\tPTP_MASK_EN_SINGLE               = 0x40043d14\n\tPTP_PEROUT_REQUEST               = 0x40383d03\n\tPTP_PEROUT_REQUEST2              = 0x40383d0c\n\tPTP_PIN_SETFUNC                  = 0x40603d07\n\tPTP_PIN_SETFUNC2                 = 0x40603d10\n\tPTP_SYS_OFFSET                   = 0x43403d05\n\tPTP_SYS_OFFSET2                  = 0x43403d0e\n\tPTRACE_PEEKMTETAGS               = 0x21\n\tPTRACE_POKEMTETAGS               = 0x22\n\tPTRACE_SYSEMU                    = 0x1f\n\tPTRACE_SYSEMU_SINGLESTEP         = 0x20\n\tRLIMIT_AS                        = 0x9\n\tRLIMIT_MEMLOCK                   = 0x8\n\tRLIMIT_NOFILE                    = 0x7\n\tRLIMIT_NPROC                     = 0x6\n\tRLIMIT_RSS                       = 0x5\n\tRNDADDENTROPY                    = 0x40085203\n\tRNDADDTOENTCNT                   = 0x40045201\n\tRNDCLEARPOOL                     = 0x5206\n\tRNDGETENTCNT                     = 0x80045200\n\tRNDGETPOOL                       = 0x80085202\n\tRNDRESEEDCRNG                    = 0x5207\n\tRNDZAPENTCNT                     = 0x5204\n\tRTC_AIE_OFF                      = 0x7002\n\tRTC_AIE_ON                       = 0x7001\n\tRTC_ALM_READ                     = 0x80247008\n\tRTC_ALM_SET                      = 0x40247007\n\tRTC_EPOCH_READ                   = 0x8008700d\n\tRTC_EPOCH_SET                    = 0x4008700e\n\tRTC_IRQP_READ                    = 0x8008700b\n\tRTC_IRQP_SET                     = 0x4008700c\n\tRTC_PARAM_GET                    = 0x40187013\n\tRTC_PARAM_SET                    = 0x40187014\n\tRTC_PIE_OFF                      = 0x7006\n\tRTC_PIE_ON                       = 0x7005\n\tRTC_PLL_GET                      = 0x80207011\n\tRTC_PLL_SET                      = 0x40207012\n\tRTC_RD_TIME                      = 0x80247009\n\tRTC_SET_TIME                     = 0x4024700a\n\tRTC_UIE_OFF                      = 0x7004\n\tRTC_UIE_ON                       = 0x7003\n\tRTC_VL_CLR                       = 0x7014\n\tRTC_VL_READ                      = 0x80047013\n\tRTC_WIE_OFF                      = 0x7010\n\tRTC_WIE_ON                       = 0x700f\n\tRTC_WKALM_RD                     = 0x80287010\n\tRTC_WKALM_SET                    = 0x4028700f\n\tSCM_DEVMEM_DMABUF                = 0x4f\n\tSCM_DEVMEM_LINEAR                = 0x4e\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TS_OPT_ID                    = 0x51\n\tSCM_TXTIME                       = 0x3d\n\tSCM_WIFI_STATUS                  = 0x29\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x40182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x40082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x40082104\n\tSFD_CLOEXEC                      = 0x80000\n\tSFD_NONBLOCK                     = 0x800\n\tSIOCATMARK                       = 0x8905\n\tSIOCGPGRP                        = 0x8904\n\tSIOCGSTAMPNS_NEW                 = 0x80108907\n\tSIOCGSTAMP_NEW                   = 0x80108906\n\tSIOCINQ                          = 0x541b\n\tSIOCOUTQ                         = 0x5411\n\tSIOCSPGRP                        = 0x8902\n\tSOCK_CLOEXEC                     = 0x80000\n\tSOCK_DGRAM                       = 0x2\n\tSOCK_NONBLOCK                    = 0x800\n\tSOCK_STREAM                      = 0x1\n\tSOL_SOCKET                       = 0x1\n\tSO_ACCEPTCONN                    = 0x1e\n\tSO_ATTACH_BPF                    = 0x32\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x34\n\tSO_BINDTODEVICE                  = 0x19\n\tSO_BINDTOIFINDEX                 = 0x3e\n\tSO_BPF_EXTENSIONS                = 0x30\n\tSO_BROADCAST                     = 0x6\n\tSO_BSDCOMPAT                     = 0xe\n\tSO_BUF_LOCK                      = 0x48\n\tSO_BUSY_POLL                     = 0x2e\n\tSO_BUSY_POLL_BUDGET              = 0x46\n\tSO_CNX_ADVICE                    = 0x35\n\tSO_COOKIE                        = 0x39\n\tSO_DETACH_REUSEPORT_BPF          = 0x44\n\tSO_DEVMEM_DMABUF                 = 0x4f\n\tSO_DEVMEM_DONTNEED               = 0x50\n\tSO_DEVMEM_LINEAR                 = 0x4e\n\tSO_DOMAIN                        = 0x27\n\tSO_DONTROUTE                     = 0x5\n\tSO_ERROR                         = 0x4\n\tSO_INCOMING_CPU                  = 0x31\n\tSO_INCOMING_NAPI_ID              = 0x38\n\tSO_KEEPALIVE                     = 0x9\n\tSO_LINGER                        = 0xd\n\tSO_LOCK_FILTER                   = 0x2c\n\tSO_MARK                          = 0x24\n\tSO_MAX_PACING_RATE               = 0x2f\n\tSO_MEMINFO                       = 0x37\n\tSO_NETNS_COOKIE                  = 0x47\n\tSO_NOFCS                         = 0x2b\n\tSO_OOBINLINE                     = 0xa\n\tSO_PASSCRED                      = 0x10\n\tSO_PASSPIDFD                     = 0x4c\n\tSO_PASSSEC                       = 0x22\n\tSO_PEEK_OFF                      = 0x2a\n\tSO_PEERCRED                      = 0x11\n\tSO_PEERGROUPS                    = 0x3b\n\tSO_PEERPIDFD                     = 0x4d\n\tSO_PEERSEC                       = 0x1f\n\tSO_PREFER_BUSY_POLL              = 0x45\n\tSO_PROTOCOL                      = 0x26\n\tSO_RCVBUF                        = 0x8\n\tSO_RCVBUFFORCE                   = 0x21\n\tSO_RCVLOWAT                      = 0x12\n\tSO_RCVMARK                       = 0x4b\n\tSO_RCVTIMEO                      = 0x14\n\tSO_RCVTIMEO_NEW                  = 0x42\n\tSO_RCVTIMEO_OLD                  = 0x14\n\tSO_RESERVE_MEM                   = 0x49\n\tSO_REUSEADDR                     = 0x2\n\tSO_REUSEPORT                     = 0xf\n\tSO_RXQ_OVFL                      = 0x28\n\tSO_SECURITY_AUTHENTICATION       = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x17\n\tSO_SELECT_ERR_QUEUE              = 0x2d\n\tSO_SNDBUF                        = 0x7\n\tSO_SNDBUFFORCE                   = 0x20\n\tSO_SNDLOWAT                      = 0x13\n\tSO_SNDTIMEO                      = 0x15\n\tSO_SNDTIMEO_NEW                  = 0x43\n\tSO_SNDTIMEO_OLD                  = 0x15\n\tSO_TIMESTAMPING                  = 0x25\n\tSO_TIMESTAMPING_NEW              = 0x41\n\tSO_TIMESTAMPING_OLD              = 0x25\n\tSO_TIMESTAMPNS                   = 0x23\n\tSO_TIMESTAMPNS_NEW               = 0x40\n\tSO_TIMESTAMPNS_OLD               = 0x23\n\tSO_TIMESTAMP_NEW                 = 0x3f\n\tSO_TXREHASH                      = 0x4a\n\tSO_TXTIME                        = 0x3d\n\tSO_TYPE                          = 0x3\n\tSO_WIFI_STATUS                   = 0x29\n\tSO_ZEROCOPY                      = 0x3c\n\tSVE_MAGIC                        = 0x53564501\n\tTAB1                             = 0x800\n\tTAB2                             = 0x1000\n\tTAB3                             = 0x1800\n\tTABDLY                           = 0x1800\n\tTCFLSH                           = 0x540b\n\tTCGETA                           = 0x5405\n\tTCGETS                           = 0x5401\n\tTCGETS2                          = 0x802c542a\n\tTCGETX                           = 0x5432\n\tTCSAFLUSH                        = 0x2\n\tTCSBRK                           = 0x5409\n\tTCSBRKP                          = 0x5425\n\tTCSETA                           = 0x5406\n\tTCSETAF                          = 0x5408\n\tTCSETAW                          = 0x5407\n\tTCSETS                           = 0x5402\n\tTCSETS2                          = 0x402c542b\n\tTCSETSF                          = 0x5404\n\tTCSETSF2                         = 0x402c542d\n\tTCSETSW                          = 0x5403\n\tTCSETSW2                         = 0x402c542c\n\tTCSETX                           = 0x5433\n\tTCSETXF                          = 0x5434\n\tTCSETXW                          = 0x5435\n\tTCXONC                           = 0x540a\n\tTFD_CLOEXEC                      = 0x80000\n\tTFD_NONBLOCK                     = 0x800\n\tTIOCCBRK                         = 0x5428\n\tTIOCCONS                         = 0x541d\n\tTIOCEXCL                         = 0x540c\n\tTIOCGDEV                         = 0x80045432\n\tTIOCGETD                         = 0x5424\n\tTIOCGEXCL                        = 0x80045440\n\tTIOCGICOUNT                      = 0x545d\n\tTIOCGISO7816                     = 0x80285442\n\tTIOCGLCKTRMIOS                   = 0x5456\n\tTIOCGPGRP                        = 0x540f\n\tTIOCGPKT                         = 0x80045438\n\tTIOCGPTLCK                       = 0x80045439\n\tTIOCGPTN                         = 0x80045430\n\tTIOCGPTPEER                      = 0x5441\n\tTIOCGRS485                       = 0x542e\n\tTIOCGSERIAL                      = 0x541e\n\tTIOCGSID                         = 0x5429\n\tTIOCGSOFTCAR                     = 0x5419\n\tTIOCGWINSZ                       = 0x5413\n\tTIOCINQ                          = 0x541b\n\tTIOCLINUX                        = 0x541c\n\tTIOCMBIC                         = 0x5417\n\tTIOCMBIS                         = 0x5416\n\tTIOCMGET                         = 0x5415\n\tTIOCMIWAIT                       = 0x545c\n\tTIOCMSET                         = 0x5418\n\tTIOCM_CAR                        = 0x40\n\tTIOCM_CD                         = 0x40\n\tTIOCM_CTS                        = 0x20\n\tTIOCM_DSR                        = 0x100\n\tTIOCM_RI                         = 0x80\n\tTIOCM_RNG                        = 0x80\n\tTIOCM_SR                         = 0x10\n\tTIOCM_ST                         = 0x8\n\tTIOCNOTTY                        = 0x5422\n\tTIOCNXCL                         = 0x540d\n\tTIOCOUTQ                         = 0x5411\n\tTIOCPKT                          = 0x5420\n\tTIOCSBRK                         = 0x5427\n\tTIOCSCTTY                        = 0x540e\n\tTIOCSERCONFIG                    = 0x5453\n\tTIOCSERGETLSR                    = 0x5459\n\tTIOCSERGETMULTI                  = 0x545a\n\tTIOCSERGSTRUCT                   = 0x5458\n\tTIOCSERGWILD                     = 0x5454\n\tTIOCSERSETMULTI                  = 0x545b\n\tTIOCSERSWILD                     = 0x5455\n\tTIOCSER_TEMT                     = 0x1\n\tTIOCSETD                         = 0x5423\n\tTIOCSIG                          = 0x40045436\n\tTIOCSISO7816                     = 0xc0285443\n\tTIOCSLCKTRMIOS                   = 0x5457\n\tTIOCSPGRP                        = 0x5410\n\tTIOCSPTLCK                       = 0x40045431\n\tTIOCSRS485                       = 0x542f\n\tTIOCSSERIAL                      = 0x541f\n\tTIOCSSOFTCAR                     = 0x541a\n\tTIOCSTI                          = 0x5412\n\tTIOCSWINSZ                       = 0x5414\n\tTIOCVHANGUP                      = 0x5437\n\tTOSTOP                           = 0x100\n\tTPIDR2_MAGIC                     = 0x54504902\n\tTUNATTACHFILTER                  = 0x401054d5\n\tTUNDETACHFILTER                  = 0x401054d6\n\tTUNGETDEVNETNS                   = 0x54e3\n\tTUNGETFEATURES                   = 0x800454cf\n\tTUNGETFILTER                     = 0x801054db\n\tTUNGETIFF                        = 0x800454d2\n\tTUNGETSNDBUF                     = 0x800454d3\n\tTUNGETVNETBE                     = 0x800454df\n\tTUNGETVNETHDRSZ                  = 0x800454d7\n\tTUNGETVNETLE                     = 0x800454dd\n\tTUNSETCARRIER                    = 0x400454e2\n\tTUNSETDEBUG                      = 0x400454c9\n\tTUNSETFILTEREBPF                 = 0x800454e1\n\tTUNSETGROUP                      = 0x400454ce\n\tTUNSETIFF                        = 0x400454ca\n\tTUNSETIFINDEX                    = 0x400454da\n\tTUNSETLINK                       = 0x400454cd\n\tTUNSETNOCSUM                     = 0x400454c8\n\tTUNSETOFFLOAD                    = 0x400454d0\n\tTUNSETOWNER                      = 0x400454cc\n\tTUNSETPERSIST                    = 0x400454cb\n\tTUNSETQUEUE                      = 0x400454d9\n\tTUNSETSNDBUF                     = 0x400454d4\n\tTUNSETSTEERINGEBPF               = 0x800454e0\n\tTUNSETTXFILTER                   = 0x400454d1\n\tTUNSETVNETBE                     = 0x400454de\n\tTUNSETVNETHDRSZ                  = 0x400454d8\n\tTUNSETVNETLE                     = 0x400454dc\n\tUBI_IOCATT                       = 0x40186f40\n\tUBI_IOCDET                       = 0x40046f41\n\tUBI_IOCEBCH                      = 0x40044f02\n\tUBI_IOCEBER                      = 0x40044f01\n\tUBI_IOCEBISMAP                   = 0x80044f05\n\tUBI_IOCEBMAP                     = 0x40084f03\n\tUBI_IOCEBUNMAP                   = 0x40044f04\n\tUBI_IOCMKVOL                     = 0x40986f00\n\tUBI_IOCRMVOL                     = 0x40046f01\n\tUBI_IOCRNVOL                     = 0x51106f03\n\tUBI_IOCRPEB                      = 0x40046f04\n\tUBI_IOCRSVOL                     = 0x400c6f02\n\tUBI_IOCSETVOLPROP                = 0x40104f06\n\tUBI_IOCSPEB                      = 0x40046f05\n\tUBI_IOCVOLCRBLK                  = 0x40804f07\n\tUBI_IOCVOLRMBLK                  = 0x4f08\n\tUBI_IOCVOLUP                     = 0x40084f00\n\tVDISCARD                         = 0xd\n\tVEOF                             = 0x4\n\tVEOL                             = 0xb\n\tVEOL2                            = 0x10\n\tVMIN                             = 0x6\n\tVREPRINT                         = 0xc\n\tVSTART                           = 0x8\n\tVSTOP                            = 0x9\n\tVSUSP                            = 0xa\n\tVSWTC                            = 0x7\n\tVT1                              = 0x4000\n\tVTDLY                            = 0x4000\n\tVTIME                            = 0x5\n\tVWERASE                          = 0xe\n\tWDIOC_GETBOOTSTATUS              = 0x80045702\n\tWDIOC_GETPRETIMEOUT              = 0x80045709\n\tWDIOC_GETSTATUS                  = 0x80045701\n\tWDIOC_GETSUPPORT                 = 0x80285700\n\tWDIOC_GETTEMP                    = 0x80045703\n\tWDIOC_GETTIMELEFT                = 0x8004570a\n\tWDIOC_GETTIMEOUT                 = 0x80045707\n\tWDIOC_KEEPALIVE                  = 0x80045705\n\tWDIOC_SETOPTIONS                 = 0x80045704\n\tWORDSIZE                         = 0x40\n\tXCASE                            = 0x4\n\tXTABS                            = 0x1800\n\tZA_MAGIC                         = 0x54366345\n\tZT_MAGIC                         = 0x5a544e01\n\t_HIDIOCGRAWNAME                  = 0x80804804\n\t_HIDIOCGRAWPHYS                  = 0x80404805\n\t_HIDIOCGRAWUNIQ                  = 0x80404808\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x62)\n\tEADDRNOTAVAIL   = syscall.Errno(0x63)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x61)\n\tEALREADY        = syscall.Errno(0x72)\n\tEBADE           = syscall.Errno(0x34)\n\tEBADFD          = syscall.Errno(0x4d)\n\tEBADMSG         = syscall.Errno(0x4a)\n\tEBADR           = syscall.Errno(0x35)\n\tEBADRQC         = syscall.Errno(0x38)\n\tEBADSLT         = syscall.Errno(0x39)\n\tEBFONT          = syscall.Errno(0x3b)\n\tECANCELED       = syscall.Errno(0x7d)\n\tECHRNG          = syscall.Errno(0x2c)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x67)\n\tECONNREFUSED    = syscall.Errno(0x6f)\n\tECONNRESET      = syscall.Errno(0x68)\n\tEDEADLK         = syscall.Errno(0x23)\n\tEDEADLOCK       = syscall.Errno(0x23)\n\tEDESTADDRREQ    = syscall.Errno(0x59)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x7a)\n\tEHOSTDOWN       = syscall.Errno(0x70)\n\tEHOSTUNREACH    = syscall.Errno(0x71)\n\tEHWPOISON       = syscall.Errno(0x85)\n\tEIDRM           = syscall.Errno(0x2b)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x73)\n\tEISCONN         = syscall.Errno(0x6a)\n\tEISNAM          = syscall.Errno(0x78)\n\tEKEYEXPIRED     = syscall.Errno(0x7f)\n\tEKEYREJECTED    = syscall.Errno(0x81)\n\tEKEYREVOKED     = syscall.Errno(0x80)\n\tEL2HLT          = syscall.Errno(0x33)\n\tEL2NSYNC        = syscall.Errno(0x2d)\n\tEL3HLT          = syscall.Errno(0x2e)\n\tEL3RST          = syscall.Errno(0x2f)\n\tELIBACC         = syscall.Errno(0x4f)\n\tELIBBAD         = syscall.Errno(0x50)\n\tELIBEXEC        = syscall.Errno(0x53)\n\tELIBMAX         = syscall.Errno(0x52)\n\tELIBSCN         = syscall.Errno(0x51)\n\tELNRNG          = syscall.Errno(0x30)\n\tELOOP           = syscall.Errno(0x28)\n\tEMEDIUMTYPE     = syscall.Errno(0x7c)\n\tEMSGSIZE        = syscall.Errno(0x5a)\n\tEMULTIHOP       = syscall.Errno(0x48)\n\tENAMETOOLONG    = syscall.Errno(0x24)\n\tENAVAIL         = syscall.Errno(0x77)\n\tENETDOWN        = syscall.Errno(0x64)\n\tENETRESET       = syscall.Errno(0x66)\n\tENETUNREACH     = syscall.Errno(0x65)\n\tENOANO          = syscall.Errno(0x37)\n\tENOBUFS         = syscall.Errno(0x69)\n\tENOCSI          = syscall.Errno(0x32)\n\tENODATA         = syscall.Errno(0x3d)\n\tENOKEY          = syscall.Errno(0x7e)\n\tENOLCK          = syscall.Errno(0x25)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x7b)\n\tENOMSG          = syscall.Errno(0x2a)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x5c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x26)\n\tENOTCONN        = syscall.Errno(0x6b)\n\tENOTEMPTY       = syscall.Errno(0x27)\n\tENOTNAM         = syscall.Errno(0x76)\n\tENOTRECOVERABLE = syscall.Errno(0x83)\n\tENOTSOCK        = syscall.Errno(0x58)\n\tENOTSUP         = syscall.Errno(0x5f)\n\tENOTUNIQ        = syscall.Errno(0x4c)\n\tEOPNOTSUPP      = syscall.Errno(0x5f)\n\tEOVERFLOW       = syscall.Errno(0x4b)\n\tEOWNERDEAD      = syscall.Errno(0x82)\n\tEPFNOSUPPORT    = syscall.Errno(0x60)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x5d)\n\tEPROTOTYPE      = syscall.Errno(0x5b)\n\tEREMCHG         = syscall.Errno(0x4e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x79)\n\tERESTART        = syscall.Errno(0x55)\n\tERFKILL         = syscall.Errno(0x84)\n\tESHUTDOWN       = syscall.Errno(0x6c)\n\tESOCKTNOSUPPORT = syscall.Errno(0x5e)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x74)\n\tESTRPIPE        = syscall.Errno(0x56)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x6e)\n\tETOOMANYREFS    = syscall.Errno(0x6d)\n\tEUCLEAN         = syscall.Errno(0x75)\n\tEUNATCH         = syscall.Errno(0x31)\n\tEUSERS          = syscall.Errno(0x57)\n\tEXFULL          = syscall.Errno(0x36)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0x7)\n\tSIGCHLD   = syscall.Signal(0x11)\n\tSIGCLD    = syscall.Signal(0x11)\n\tSIGCONT   = syscall.Signal(0x12)\n\tSIGIO     = syscall.Signal(0x1d)\n\tSIGPOLL   = syscall.Signal(0x1d)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x1e)\n\tSIGSTKFLT = syscall.Signal(0x10)\n\tSIGSTOP   = syscall.Signal(0x13)\n\tSIGSYS    = syscall.Signal(0x1f)\n\tSIGTSTP   = syscall.Signal(0x14)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x17)\n\tSIGUSR1   = syscall.Signal(0xa)\n\tSIGUSR2   = syscall.Signal(0xc)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{36, \"ENAMETOOLONG\", \"file name too long\"},\n\t{37, \"ENOLCK\", \"no locks available\"},\n\t{38, \"ENOSYS\", \"function not implemented\"},\n\t{39, \"ENOTEMPTY\", \"directory not empty\"},\n\t{40, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{42, \"ENOMSG\", \"no message of desired type\"},\n\t{43, \"EIDRM\", \"identifier removed\"},\n\t{44, \"ECHRNG\", \"channel number out of range\"},\n\t{45, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{46, \"EL3HLT\", \"level 3 halted\"},\n\t{47, \"EL3RST\", \"level 3 reset\"},\n\t{48, \"ELNRNG\", \"link number out of range\"},\n\t{49, \"EUNATCH\", \"protocol driver not attached\"},\n\t{50, \"ENOCSI\", \"no CSI structure available\"},\n\t{51, \"EL2HLT\", \"level 2 halted\"},\n\t{52, \"EBADE\", \"invalid exchange\"},\n\t{53, \"EBADR\", \"invalid request descriptor\"},\n\t{54, \"EXFULL\", \"exchange full\"},\n\t{55, \"ENOANO\", \"no anode\"},\n\t{56, \"EBADRQC\", \"invalid request code\"},\n\t{57, \"EBADSLT\", \"invalid slot\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{72, \"EMULTIHOP\", \"multihop attempted\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EBADMSG\", \"bad message\"},\n\t{75, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{76, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{77, \"EBADFD\", \"file descriptor in bad state\"},\n\t{78, \"EREMCHG\", \"remote address changed\"},\n\t{79, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{80, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{81, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{82, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{83, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{84, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{85, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{86, \"ESTRPIPE\", \"streams pipe error\"},\n\t{87, \"EUSERS\", \"too many users\"},\n\t{88, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{89, \"EDESTADDRREQ\", \"destination address required\"},\n\t{90, \"EMSGSIZE\", \"message too long\"},\n\t{91, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{92, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{93, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{94, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{95, \"ENOTSUP\", \"operation not supported\"},\n\t{96, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{97, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{98, \"EADDRINUSE\", \"address already in use\"},\n\t{99, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{100, \"ENETDOWN\", \"network is down\"},\n\t{101, \"ENETUNREACH\", \"network is unreachable\"},\n\t{102, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{103, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{104, \"ECONNRESET\", \"connection reset by peer\"},\n\t{105, \"ENOBUFS\", \"no buffer space available\"},\n\t{106, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{107, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{108, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{109, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{110, \"ETIMEDOUT\", \"connection timed out\"},\n\t{111, \"ECONNREFUSED\", \"connection refused\"},\n\t{112, \"EHOSTDOWN\", \"host is down\"},\n\t{113, \"EHOSTUNREACH\", \"no route to host\"},\n\t{114, \"EALREADY\", \"operation already in progress\"},\n\t{115, \"EINPROGRESS\", \"operation now in progress\"},\n\t{116, \"ESTALE\", \"stale file handle\"},\n\t{117, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{118, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{119, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{120, \"EISNAM\", \"is a named type file\"},\n\t{121, \"EREMOTEIO\", \"remote I/O error\"},\n\t{122, \"EDQUOT\", \"disk quota exceeded\"},\n\t{123, \"ENOMEDIUM\", \"no medium found\"},\n\t{124, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{125, \"ECANCELED\", \"operation canceled\"},\n\t{126, \"ENOKEY\", \"required key not available\"},\n\t{127, \"EKEYEXPIRED\", \"key has expired\"},\n\t{128, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{129, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{130, \"EOWNERDEAD\", \"owner died\"},\n\t{131, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{132, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{133, \"EHWPOISON\", \"memory page has hardware error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGBUS\", \"bus error\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGUSR1\", \"user defined signal 1\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGUSR2\", \"user defined signal 2\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGSTKFLT\", \"stack fault\"},\n\t{17, \"SIGCHLD\", \"child exited\"},\n\t{18, \"SIGCONT\", \"continued\"},\n\t{19, \"SIGSTOP\", \"stopped (signal)\"},\n\t{20, \"SIGTSTP\", \"stopped\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGURG\", \"urgent I/O condition\"},\n\t{24, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGIO\", \"I/O possible\"},\n\t{30, \"SIGPWR\", \"power failure\"},\n\t{31, \"SIGSYS\", \"bad system call\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/loong64/include\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build loong64 && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/loong64/include _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tB1000000                         = 0x1008\n\tB115200                          = 0x1002\n\tB1152000                         = 0x1009\n\tB1500000                         = 0x100a\n\tB2000000                         = 0x100b\n\tB230400                          = 0x1003\n\tB2500000                         = 0x100c\n\tB3000000                         = 0x100d\n\tB3500000                         = 0x100e\n\tB4000000                         = 0x100f\n\tB460800                          = 0x1004\n\tB500000                          = 0x1005\n\tB57600                           = 0x1001\n\tB576000                          = 0x1006\n\tB921600                          = 0x1007\n\tBLKALIGNOFF                      = 0x127a\n\tBLKBSZGET                        = 0x80081270\n\tBLKBSZSET                        = 0x40081271\n\tBLKDISCARD                       = 0x1277\n\tBLKDISCARDZEROES                 = 0x127c\n\tBLKFLSBUF                        = 0x1261\n\tBLKFRAGET                        = 0x1265\n\tBLKFRASET                        = 0x1264\n\tBLKGETDISKSEQ                    = 0x80081280\n\tBLKGETSIZE                       = 0x1260\n\tBLKGETSIZE64                     = 0x80081272\n\tBLKIOMIN                         = 0x1278\n\tBLKIOOPT                         = 0x1279\n\tBLKPBSZGET                       = 0x127b\n\tBLKRAGET                         = 0x1263\n\tBLKRASET                         = 0x1262\n\tBLKROGET                         = 0x125e\n\tBLKROSET                         = 0x125d\n\tBLKROTATIONAL                    = 0x127e\n\tBLKRRPART                        = 0x125f\n\tBLKSECDISCARD                    = 0x127d\n\tBLKSECTGET                       = 0x1267\n\tBLKSECTSET                       = 0x1266\n\tBLKSSZGET                        = 0x1268\n\tBLKZEROOUT                       = 0x127f\n\tBOTHER                           = 0x1000\n\tBS1                              = 0x2000\n\tBSDLY                            = 0x2000\n\tCBAUD                            = 0x100f\n\tCBAUDEX                          = 0x1000\n\tCIBAUD                           = 0x100f0000\n\tCLOCAL                           = 0x800\n\tCR1                              = 0x200\n\tCR2                              = 0x400\n\tCR3                              = 0x600\n\tCRDLY                            = 0x600\n\tCREAD                            = 0x80\n\tCS6                              = 0x10\n\tCS7                              = 0x20\n\tCS8                              = 0x30\n\tCSIZE                            = 0x30\n\tCSTOPB                           = 0x40\n\tECCGETLAYOUT                     = 0x81484d11\n\tECCGETSTATS                      = 0x80104d12\n\tECHOCTL                          = 0x200\n\tECHOE                            = 0x10\n\tECHOK                            = 0x20\n\tECHOKE                           = 0x800\n\tECHONL                           = 0x40\n\tECHOPRT                          = 0x400\n\tEFD_CLOEXEC                      = 0x80000\n\tEFD_NONBLOCK                     = 0x800\n\tEPIOCGPARAMS                     = 0x80088a02\n\tEPIOCSPARAMS                     = 0x40088a01\n\tEPOLL_CLOEXEC                    = 0x80000\n\tEXTPROC                          = 0x10000\n\tFF1                              = 0x8000\n\tFFDLY                            = 0x8000\n\tFICLONE                          = 0x40049409\n\tFICLONERANGE                     = 0x4020940d\n\tFLUSHO                           = 0x1000\n\tFPU_CTX_MAGIC                    = 0x46505501\n\tFS_IOC_ENABLE_VERITY             = 0x40806685\n\tFS_IOC_GETFLAGS                  = 0x80086601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x8010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x400c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x40106614\n\tFS_IOC_SETFLAGS                  = 0x40086602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x800c6613\n\tF_GETLK                          = 0x5\n\tF_GETLK64                        = 0x5\n\tF_GETOWN                         = 0x9\n\tF_RDLCK                          = 0x0\n\tF_SETLK                          = 0x6\n\tF_SETLK64                        = 0x6\n\tF_SETLKW                         = 0x7\n\tF_SETLKW64                       = 0x7\n\tF_SETOWN                         = 0x8\n\tF_UNLCK                          = 0x2\n\tF_WRLCK                          = 0x1\n\tHIDIOCGRAWINFO                   = 0x80084803\n\tHIDIOCGRDESC                     = 0x90044802\n\tHIDIOCGRDESCSIZE                 = 0x80044801\n\tHIDIOCREVOKE                     = 0x4004480d\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x8000\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x800\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9\n\tIPV6_FLOWINFO_MASK               = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK              = 0xffff0f00\n\tISIG                             = 0x1\n\tIUCLC                            = 0x200\n\tIXOFF                            = 0x1000\n\tIXON                             = 0x400\n\tLASX_CTX_MAGIC                   = 0x41535801\n\tLBT_CTX_MAGIC                    = 0x42540001\n\tLSX_CTX_MAGIC                    = 0x53580001\n\tMAP_ANON                         = 0x20\n\tMAP_ANONYMOUS                    = 0x20\n\tMAP_DENYWRITE                    = 0x800\n\tMAP_EXECUTABLE                   = 0x1000\n\tMAP_GROWSDOWN                    = 0x100\n\tMAP_HUGETLB                      = 0x40000\n\tMAP_LOCKED                       = 0x2000\n\tMAP_NONBLOCK                     = 0x10000\n\tMAP_NORESERVE                    = 0x4000\n\tMAP_POPULATE                     = 0x8000\n\tMAP_STACK                        = 0x20000\n\tMAP_SYNC                         = 0x80000\n\tMCL_CURRENT                      = 0x1\n\tMCL_FUTURE                       = 0x2\n\tMCL_ONFAULT                      = 0x4\n\tMEMERASE                         = 0x40084d02\n\tMEMERASE64                       = 0x40104d14\n\tMEMGETBADBLOCK                   = 0x40084d0b\n\tMEMGETINFO                       = 0x80204d01\n\tMEMGETOOBSEL                     = 0x80c84d0a\n\tMEMGETREGIONCOUNT                = 0x80044d07\n\tMEMISLOCKED                      = 0x80084d17\n\tMEMLOCK                          = 0x40084d05\n\tMEMREAD                          = 0xc0404d1a\n\tMEMREADOOB                       = 0xc0104d04\n\tMEMSETBADBLOCK                   = 0x40084d0c\n\tMEMUNLOCK                        = 0x40084d06\n\tMEMWRITEOOB                      = 0xc0104d03\n\tMTDFILEMODE                      = 0x4d13\n\tNFDBITS                          = 0x40\n\tNLDLY                            = 0x100\n\tNOFLSH                           = 0x80\n\tNS_GET_MNTNS_ID                  = 0x8008b705\n\tNS_GET_NSTYPE                    = 0xb703\n\tNS_GET_OWNER_UID                 = 0xb704\n\tNS_GET_PARENT                    = 0xb702\n\tNS_GET_PID_FROM_PIDNS            = 0x8004b706\n\tNS_GET_PID_IN_PIDNS              = 0x8004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x8004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x8004b709\n\tNS_GET_USERNS                    = 0xb701\n\tOLCUC                            = 0x2\n\tONLCR                            = 0x4\n\tOTPERASE                         = 0x400c4d19\n\tOTPGETREGIONCOUNT                = 0x40044d0e\n\tOTPGETREGIONINFO                 = 0x400c4d0f\n\tOTPLOCK                          = 0x800c4d10\n\tOTPSELECT                        = 0x80044d0d\n\tO_APPEND                         = 0x400\n\tO_ASYNC                          = 0x2000\n\tO_CLOEXEC                        = 0x80000\n\tO_CREAT                          = 0x40\n\tO_DIRECT                         = 0x4000\n\tO_DIRECTORY                      = 0x10000\n\tO_DSYNC                          = 0x1000\n\tO_EXCL                           = 0x80\n\tO_FSYNC                          = 0x101000\n\tO_LARGEFILE                      = 0x0\n\tO_NDELAY                         = 0x800\n\tO_NOATIME                        = 0x40000\n\tO_NOCTTY                         = 0x100\n\tO_NOFOLLOW                       = 0x20000\n\tO_NONBLOCK                       = 0x800\n\tO_PATH                           = 0x200000\n\tO_RSYNC                          = 0x101000\n\tO_SYNC                           = 0x101000\n\tO_TMPFILE                        = 0x410000\n\tO_TRUNC                          = 0x200\n\tPARENB                           = 0x100\n\tPARODD                           = 0x200\n\tPENDIN                           = 0x4000\n\tPERF_EVENT_IOC_DISABLE           = 0x2401\n\tPERF_EVENT_IOC_ENABLE            = 0x2400\n\tPERF_EVENT_IOC_ID                = 0x80082407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x40042409\n\tPERF_EVENT_IOC_PERIOD            = 0x40082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc008240a\n\tPERF_EVENT_IOC_REFRESH           = 0x2402\n\tPERF_EVENT_IOC_RESET             = 0x2403\n\tPERF_EVENT_IOC_SET_BPF           = 0x40042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x40082406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x2405\n\tPPPIOCATTACH                     = 0x4004743d\n\tPPPIOCATTCHAN                    = 0x40047438\n\tPPPIOCBRIDGECHAN                 = 0x40047435\n\tPPPIOCCONNECT                    = 0x4004743a\n\tPPPIOCDETACH                     = 0x4004743c\n\tPPPIOCDISCONN                    = 0x7439\n\tPPPIOCGASYNCMAP                  = 0x80047458\n\tPPPIOCGCHAN                      = 0x80047437\n\tPPPIOCGDEBUG                     = 0x80047441\n\tPPPIOCGFLAGS                     = 0x8004745a\n\tPPPIOCGIDLE                      = 0x8010743f\n\tPPPIOCGIDLE32                    = 0x8008743f\n\tPPPIOCGIDLE64                    = 0x8010743f\n\tPPPIOCGL2TPSTATS                 = 0x80487436\n\tPPPIOCGMRU                       = 0x80047453\n\tPPPIOCGRASYNCMAP                 = 0x80047455\n\tPPPIOCGUNIT                      = 0x80047456\n\tPPPIOCGXASYNCMAP                 = 0x80207450\n\tPPPIOCSACTIVE                    = 0x40107446\n\tPPPIOCSASYNCMAP                  = 0x40047457\n\tPPPIOCSCOMPRESS                  = 0x4010744d\n\tPPPIOCSDEBUG                     = 0x40047440\n\tPPPIOCSFLAGS                     = 0x40047459\n\tPPPIOCSMAXCID                    = 0x40047451\n\tPPPIOCSMRRU                      = 0x4004743b\n\tPPPIOCSMRU                       = 0x40047452\n\tPPPIOCSNPMODE                    = 0x4008744b\n\tPPPIOCSPASS                      = 0x40107447\n\tPPPIOCSRASYNCMAP                 = 0x40047454\n\tPPPIOCSXASYNCMAP                 = 0x4020744f\n\tPPPIOCUNBRIDGECHAN               = 0x7434\n\tPPPIOCXFERUNIT                   = 0x744e\n\tPR_SET_PTRACER_ANY               = 0xffffffffffffffff\n\tPTP_CLOCK_GETCAPS                = 0x80503d01\n\tPTP_CLOCK_GETCAPS2               = 0x80503d0a\n\tPTP_ENABLE_PPS                   = 0x40043d04\n\tPTP_ENABLE_PPS2                  = 0x40043d0d\n\tPTP_EXTTS_REQUEST                = 0x40103d02\n\tPTP_EXTTS_REQUEST2               = 0x40103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x3d13\n\tPTP_MASK_EN_SINGLE               = 0x40043d14\n\tPTP_PEROUT_REQUEST               = 0x40383d03\n\tPTP_PEROUT_REQUEST2              = 0x40383d0c\n\tPTP_PIN_SETFUNC                  = 0x40603d07\n\tPTP_PIN_SETFUNC2                 = 0x40603d10\n\tPTP_SYS_OFFSET                   = 0x43403d05\n\tPTP_SYS_OFFSET2                  = 0x43403d0e\n\tPTRACE_SYSEMU                    = 0x1f\n\tPTRACE_SYSEMU_SINGLESTEP         = 0x20\n\tRLIMIT_AS                        = 0x9\n\tRLIMIT_MEMLOCK                   = 0x8\n\tRLIMIT_NOFILE                    = 0x7\n\tRLIMIT_NPROC                     = 0x6\n\tRLIMIT_RSS                       = 0x5\n\tRNDADDENTROPY                    = 0x40085203\n\tRNDADDTOENTCNT                   = 0x40045201\n\tRNDCLEARPOOL                     = 0x5206\n\tRNDGETENTCNT                     = 0x80045200\n\tRNDGETPOOL                       = 0x80085202\n\tRNDRESEEDCRNG                    = 0x5207\n\tRNDZAPENTCNT                     = 0x5204\n\tRTC_AIE_OFF                      = 0x7002\n\tRTC_AIE_ON                       = 0x7001\n\tRTC_ALM_READ                     = 0x80247008\n\tRTC_ALM_SET                      = 0x40247007\n\tRTC_EPOCH_READ                   = 0x8008700d\n\tRTC_EPOCH_SET                    = 0x4008700e\n\tRTC_IRQP_READ                    = 0x8008700b\n\tRTC_IRQP_SET                     = 0x4008700c\n\tRTC_PARAM_GET                    = 0x40187013\n\tRTC_PARAM_SET                    = 0x40187014\n\tRTC_PIE_OFF                      = 0x7006\n\tRTC_PIE_ON                       = 0x7005\n\tRTC_PLL_GET                      = 0x80207011\n\tRTC_PLL_SET                      = 0x40207012\n\tRTC_RD_TIME                      = 0x80247009\n\tRTC_SET_TIME                     = 0x4024700a\n\tRTC_UIE_OFF                      = 0x7004\n\tRTC_UIE_ON                       = 0x7003\n\tRTC_VL_CLR                       = 0x7014\n\tRTC_VL_READ                      = 0x80047013\n\tRTC_WIE_OFF                      = 0x7010\n\tRTC_WIE_ON                       = 0x700f\n\tRTC_WKALM_RD                     = 0x80287010\n\tRTC_WKALM_SET                    = 0x4028700f\n\tSCM_DEVMEM_DMABUF                = 0x4f\n\tSCM_DEVMEM_LINEAR                = 0x4e\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TS_OPT_ID                    = 0x51\n\tSCM_TXTIME                       = 0x3d\n\tSCM_WIFI_STATUS                  = 0x29\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x40182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x40082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x40082104\n\tSFD_CLOEXEC                      = 0x80000\n\tSFD_NONBLOCK                     = 0x800\n\tSIOCATMARK                       = 0x8905\n\tSIOCGPGRP                        = 0x8904\n\tSIOCGSTAMPNS_NEW                 = 0x80108907\n\tSIOCGSTAMP_NEW                   = 0x80108906\n\tSIOCINQ                          = 0x541b\n\tSIOCOUTQ                         = 0x5411\n\tSIOCSPGRP                        = 0x8902\n\tSOCK_CLOEXEC                     = 0x80000\n\tSOCK_DGRAM                       = 0x2\n\tSOCK_NONBLOCK                    = 0x800\n\tSOCK_STREAM                      = 0x1\n\tSOL_SOCKET                       = 0x1\n\tSO_ACCEPTCONN                    = 0x1e\n\tSO_ATTACH_BPF                    = 0x32\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x34\n\tSO_BINDTODEVICE                  = 0x19\n\tSO_BINDTOIFINDEX                 = 0x3e\n\tSO_BPF_EXTENSIONS                = 0x30\n\tSO_BROADCAST                     = 0x6\n\tSO_BSDCOMPAT                     = 0xe\n\tSO_BUF_LOCK                      = 0x48\n\tSO_BUSY_POLL                     = 0x2e\n\tSO_BUSY_POLL_BUDGET              = 0x46\n\tSO_CNX_ADVICE                    = 0x35\n\tSO_COOKIE                        = 0x39\n\tSO_DETACH_REUSEPORT_BPF          = 0x44\n\tSO_DEVMEM_DMABUF                 = 0x4f\n\tSO_DEVMEM_DONTNEED               = 0x50\n\tSO_DEVMEM_LINEAR                 = 0x4e\n\tSO_DOMAIN                        = 0x27\n\tSO_DONTROUTE                     = 0x5\n\tSO_ERROR                         = 0x4\n\tSO_INCOMING_CPU                  = 0x31\n\tSO_INCOMING_NAPI_ID              = 0x38\n\tSO_KEEPALIVE                     = 0x9\n\tSO_LINGER                        = 0xd\n\tSO_LOCK_FILTER                   = 0x2c\n\tSO_MARK                          = 0x24\n\tSO_MAX_PACING_RATE               = 0x2f\n\tSO_MEMINFO                       = 0x37\n\tSO_NETNS_COOKIE                  = 0x47\n\tSO_NOFCS                         = 0x2b\n\tSO_OOBINLINE                     = 0xa\n\tSO_PASSCRED                      = 0x10\n\tSO_PASSPIDFD                     = 0x4c\n\tSO_PASSSEC                       = 0x22\n\tSO_PEEK_OFF                      = 0x2a\n\tSO_PEERCRED                      = 0x11\n\tSO_PEERGROUPS                    = 0x3b\n\tSO_PEERPIDFD                     = 0x4d\n\tSO_PEERSEC                       = 0x1f\n\tSO_PREFER_BUSY_POLL              = 0x45\n\tSO_PROTOCOL                      = 0x26\n\tSO_RCVBUF                        = 0x8\n\tSO_RCVBUFFORCE                   = 0x21\n\tSO_RCVLOWAT                      = 0x12\n\tSO_RCVMARK                       = 0x4b\n\tSO_RCVTIMEO                      = 0x14\n\tSO_RCVTIMEO_NEW                  = 0x42\n\tSO_RCVTIMEO_OLD                  = 0x14\n\tSO_RESERVE_MEM                   = 0x49\n\tSO_REUSEADDR                     = 0x2\n\tSO_REUSEPORT                     = 0xf\n\tSO_RXQ_OVFL                      = 0x28\n\tSO_SECURITY_AUTHENTICATION       = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x17\n\tSO_SELECT_ERR_QUEUE              = 0x2d\n\tSO_SNDBUF                        = 0x7\n\tSO_SNDBUFFORCE                   = 0x20\n\tSO_SNDLOWAT                      = 0x13\n\tSO_SNDTIMEO                      = 0x15\n\tSO_SNDTIMEO_NEW                  = 0x43\n\tSO_SNDTIMEO_OLD                  = 0x15\n\tSO_TIMESTAMPING                  = 0x25\n\tSO_TIMESTAMPING_NEW              = 0x41\n\tSO_TIMESTAMPING_OLD              = 0x25\n\tSO_TIMESTAMPNS                   = 0x23\n\tSO_TIMESTAMPNS_NEW               = 0x40\n\tSO_TIMESTAMPNS_OLD               = 0x23\n\tSO_TIMESTAMP_NEW                 = 0x3f\n\tSO_TXREHASH                      = 0x4a\n\tSO_TXTIME                        = 0x3d\n\tSO_TYPE                          = 0x3\n\tSO_WIFI_STATUS                   = 0x29\n\tSO_ZEROCOPY                      = 0x3c\n\tTAB1                             = 0x800\n\tTAB2                             = 0x1000\n\tTAB3                             = 0x1800\n\tTABDLY                           = 0x1800\n\tTCFLSH                           = 0x540b\n\tTCGETA                           = 0x5405\n\tTCGETS                           = 0x5401\n\tTCGETS2                          = 0x802c542a\n\tTCGETX                           = 0x5432\n\tTCSAFLUSH                        = 0x2\n\tTCSBRK                           = 0x5409\n\tTCSBRKP                          = 0x5425\n\tTCSETA                           = 0x5406\n\tTCSETAF                          = 0x5408\n\tTCSETAW                          = 0x5407\n\tTCSETS                           = 0x5402\n\tTCSETS2                          = 0x402c542b\n\tTCSETSF                          = 0x5404\n\tTCSETSF2                         = 0x402c542d\n\tTCSETSW                          = 0x5403\n\tTCSETSW2                         = 0x402c542c\n\tTCSETX                           = 0x5433\n\tTCSETXF                          = 0x5434\n\tTCSETXW                          = 0x5435\n\tTCXONC                           = 0x540a\n\tTFD_CLOEXEC                      = 0x80000\n\tTFD_NONBLOCK                     = 0x800\n\tTIOCCBRK                         = 0x5428\n\tTIOCCONS                         = 0x541d\n\tTIOCEXCL                         = 0x540c\n\tTIOCGDEV                         = 0x80045432\n\tTIOCGETD                         = 0x5424\n\tTIOCGEXCL                        = 0x80045440\n\tTIOCGICOUNT                      = 0x545d\n\tTIOCGISO7816                     = 0x80285442\n\tTIOCGLCKTRMIOS                   = 0x5456\n\tTIOCGPGRP                        = 0x540f\n\tTIOCGPKT                         = 0x80045438\n\tTIOCGPTLCK                       = 0x80045439\n\tTIOCGPTN                         = 0x80045430\n\tTIOCGPTPEER                      = 0x5441\n\tTIOCGRS485                       = 0x542e\n\tTIOCGSERIAL                      = 0x541e\n\tTIOCGSID                         = 0x5429\n\tTIOCGSOFTCAR                     = 0x5419\n\tTIOCGWINSZ                       = 0x5413\n\tTIOCINQ                          = 0x541b\n\tTIOCLINUX                        = 0x541c\n\tTIOCMBIC                         = 0x5417\n\tTIOCMBIS                         = 0x5416\n\tTIOCMGET                         = 0x5415\n\tTIOCMIWAIT                       = 0x545c\n\tTIOCMSET                         = 0x5418\n\tTIOCM_CAR                        = 0x40\n\tTIOCM_CD                         = 0x40\n\tTIOCM_CTS                        = 0x20\n\tTIOCM_DSR                        = 0x100\n\tTIOCM_RI                         = 0x80\n\tTIOCM_RNG                        = 0x80\n\tTIOCM_SR                         = 0x10\n\tTIOCM_ST                         = 0x8\n\tTIOCNOTTY                        = 0x5422\n\tTIOCNXCL                         = 0x540d\n\tTIOCOUTQ                         = 0x5411\n\tTIOCPKT                          = 0x5420\n\tTIOCSBRK                         = 0x5427\n\tTIOCSCTTY                        = 0x540e\n\tTIOCSERCONFIG                    = 0x5453\n\tTIOCSERGETLSR                    = 0x5459\n\tTIOCSERGETMULTI                  = 0x545a\n\tTIOCSERGSTRUCT                   = 0x5458\n\tTIOCSERGWILD                     = 0x5454\n\tTIOCSERSETMULTI                  = 0x545b\n\tTIOCSERSWILD                     = 0x5455\n\tTIOCSER_TEMT                     = 0x1\n\tTIOCSETD                         = 0x5423\n\tTIOCSIG                          = 0x40045436\n\tTIOCSISO7816                     = 0xc0285443\n\tTIOCSLCKTRMIOS                   = 0x5457\n\tTIOCSPGRP                        = 0x5410\n\tTIOCSPTLCK                       = 0x40045431\n\tTIOCSRS485                       = 0x542f\n\tTIOCSSERIAL                      = 0x541f\n\tTIOCSSOFTCAR                     = 0x541a\n\tTIOCSTI                          = 0x5412\n\tTIOCSWINSZ                       = 0x5414\n\tTIOCVHANGUP                      = 0x5437\n\tTOSTOP                           = 0x100\n\tTUNATTACHFILTER                  = 0x401054d5\n\tTUNDETACHFILTER                  = 0x401054d6\n\tTUNGETDEVNETNS                   = 0x54e3\n\tTUNGETFEATURES                   = 0x800454cf\n\tTUNGETFILTER                     = 0x801054db\n\tTUNGETIFF                        = 0x800454d2\n\tTUNGETSNDBUF                     = 0x800454d3\n\tTUNGETVNETBE                     = 0x800454df\n\tTUNGETVNETHDRSZ                  = 0x800454d7\n\tTUNGETVNETLE                     = 0x800454dd\n\tTUNSETCARRIER                    = 0x400454e2\n\tTUNSETDEBUG                      = 0x400454c9\n\tTUNSETFILTEREBPF                 = 0x800454e1\n\tTUNSETGROUP                      = 0x400454ce\n\tTUNSETIFF                        = 0x400454ca\n\tTUNSETIFINDEX                    = 0x400454da\n\tTUNSETLINK                       = 0x400454cd\n\tTUNSETNOCSUM                     = 0x400454c8\n\tTUNSETOFFLOAD                    = 0x400454d0\n\tTUNSETOWNER                      = 0x400454cc\n\tTUNSETPERSIST                    = 0x400454cb\n\tTUNSETQUEUE                      = 0x400454d9\n\tTUNSETSNDBUF                     = 0x400454d4\n\tTUNSETSTEERINGEBPF               = 0x800454e0\n\tTUNSETTXFILTER                   = 0x400454d1\n\tTUNSETVNETBE                     = 0x400454de\n\tTUNSETVNETHDRSZ                  = 0x400454d8\n\tTUNSETVNETLE                     = 0x400454dc\n\tUBI_IOCATT                       = 0x40186f40\n\tUBI_IOCDET                       = 0x40046f41\n\tUBI_IOCEBCH                      = 0x40044f02\n\tUBI_IOCEBER                      = 0x40044f01\n\tUBI_IOCEBISMAP                   = 0x80044f05\n\tUBI_IOCEBMAP                     = 0x40084f03\n\tUBI_IOCEBUNMAP                   = 0x40044f04\n\tUBI_IOCMKVOL                     = 0x40986f00\n\tUBI_IOCRMVOL                     = 0x40046f01\n\tUBI_IOCRNVOL                     = 0x51106f03\n\tUBI_IOCRPEB                      = 0x40046f04\n\tUBI_IOCRSVOL                     = 0x400c6f02\n\tUBI_IOCSETVOLPROP                = 0x40104f06\n\tUBI_IOCSPEB                      = 0x40046f05\n\tUBI_IOCVOLCRBLK                  = 0x40804f07\n\tUBI_IOCVOLRMBLK                  = 0x4f08\n\tUBI_IOCVOLUP                     = 0x40084f00\n\tVDISCARD                         = 0xd\n\tVEOF                             = 0x4\n\tVEOL                             = 0xb\n\tVEOL2                            = 0x10\n\tVMIN                             = 0x6\n\tVREPRINT                         = 0xc\n\tVSTART                           = 0x8\n\tVSTOP                            = 0x9\n\tVSUSP                            = 0xa\n\tVSWTC                            = 0x7\n\tVT1                              = 0x4000\n\tVTDLY                            = 0x4000\n\tVTIME                            = 0x5\n\tVWERASE                          = 0xe\n\tWDIOC_GETBOOTSTATUS              = 0x80045702\n\tWDIOC_GETPRETIMEOUT              = 0x80045709\n\tWDIOC_GETSTATUS                  = 0x80045701\n\tWDIOC_GETSUPPORT                 = 0x80285700\n\tWDIOC_GETTEMP                    = 0x80045703\n\tWDIOC_GETTIMELEFT                = 0x8004570a\n\tWDIOC_GETTIMEOUT                 = 0x80045707\n\tWDIOC_KEEPALIVE                  = 0x80045705\n\tWDIOC_SETOPTIONS                 = 0x80045704\n\tWORDSIZE                         = 0x40\n\tXCASE                            = 0x4\n\tXTABS                            = 0x1800\n\t_HIDIOCGRAWNAME                  = 0x80804804\n\t_HIDIOCGRAWPHYS                  = 0x80404805\n\t_HIDIOCGRAWUNIQ                  = 0x80404808\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x62)\n\tEADDRNOTAVAIL   = syscall.Errno(0x63)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x61)\n\tEALREADY        = syscall.Errno(0x72)\n\tEBADE           = syscall.Errno(0x34)\n\tEBADFD          = syscall.Errno(0x4d)\n\tEBADMSG         = syscall.Errno(0x4a)\n\tEBADR           = syscall.Errno(0x35)\n\tEBADRQC         = syscall.Errno(0x38)\n\tEBADSLT         = syscall.Errno(0x39)\n\tEBFONT          = syscall.Errno(0x3b)\n\tECANCELED       = syscall.Errno(0x7d)\n\tECHRNG          = syscall.Errno(0x2c)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x67)\n\tECONNREFUSED    = syscall.Errno(0x6f)\n\tECONNRESET      = syscall.Errno(0x68)\n\tEDEADLK         = syscall.Errno(0x23)\n\tEDEADLOCK       = syscall.Errno(0x23)\n\tEDESTADDRREQ    = syscall.Errno(0x59)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x7a)\n\tEHOSTDOWN       = syscall.Errno(0x70)\n\tEHOSTUNREACH    = syscall.Errno(0x71)\n\tEHWPOISON       = syscall.Errno(0x85)\n\tEIDRM           = syscall.Errno(0x2b)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x73)\n\tEISCONN         = syscall.Errno(0x6a)\n\tEISNAM          = syscall.Errno(0x78)\n\tEKEYEXPIRED     = syscall.Errno(0x7f)\n\tEKEYREJECTED    = syscall.Errno(0x81)\n\tEKEYREVOKED     = syscall.Errno(0x80)\n\tEL2HLT          = syscall.Errno(0x33)\n\tEL2NSYNC        = syscall.Errno(0x2d)\n\tEL3HLT          = syscall.Errno(0x2e)\n\tEL3RST          = syscall.Errno(0x2f)\n\tELIBACC         = syscall.Errno(0x4f)\n\tELIBBAD         = syscall.Errno(0x50)\n\tELIBEXEC        = syscall.Errno(0x53)\n\tELIBMAX         = syscall.Errno(0x52)\n\tELIBSCN         = syscall.Errno(0x51)\n\tELNRNG          = syscall.Errno(0x30)\n\tELOOP           = syscall.Errno(0x28)\n\tEMEDIUMTYPE     = syscall.Errno(0x7c)\n\tEMSGSIZE        = syscall.Errno(0x5a)\n\tEMULTIHOP       = syscall.Errno(0x48)\n\tENAMETOOLONG    = syscall.Errno(0x24)\n\tENAVAIL         = syscall.Errno(0x77)\n\tENETDOWN        = syscall.Errno(0x64)\n\tENETRESET       = syscall.Errno(0x66)\n\tENETUNREACH     = syscall.Errno(0x65)\n\tENOANO          = syscall.Errno(0x37)\n\tENOBUFS         = syscall.Errno(0x69)\n\tENOCSI          = syscall.Errno(0x32)\n\tENODATA         = syscall.Errno(0x3d)\n\tENOKEY          = syscall.Errno(0x7e)\n\tENOLCK          = syscall.Errno(0x25)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x7b)\n\tENOMSG          = syscall.Errno(0x2a)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x5c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x26)\n\tENOTCONN        = syscall.Errno(0x6b)\n\tENOTEMPTY       = syscall.Errno(0x27)\n\tENOTNAM         = syscall.Errno(0x76)\n\tENOTRECOVERABLE = syscall.Errno(0x83)\n\tENOTSOCK        = syscall.Errno(0x58)\n\tENOTSUP         = syscall.Errno(0x5f)\n\tENOTUNIQ        = syscall.Errno(0x4c)\n\tEOPNOTSUPP      = syscall.Errno(0x5f)\n\tEOVERFLOW       = syscall.Errno(0x4b)\n\tEOWNERDEAD      = syscall.Errno(0x82)\n\tEPFNOSUPPORT    = syscall.Errno(0x60)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x5d)\n\tEPROTOTYPE      = syscall.Errno(0x5b)\n\tEREMCHG         = syscall.Errno(0x4e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x79)\n\tERESTART        = syscall.Errno(0x55)\n\tERFKILL         = syscall.Errno(0x84)\n\tESHUTDOWN       = syscall.Errno(0x6c)\n\tESOCKTNOSUPPORT = syscall.Errno(0x5e)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x74)\n\tESTRPIPE        = syscall.Errno(0x56)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x6e)\n\tETOOMANYREFS    = syscall.Errno(0x6d)\n\tEUCLEAN         = syscall.Errno(0x75)\n\tEUNATCH         = syscall.Errno(0x31)\n\tEUSERS          = syscall.Errno(0x57)\n\tEXFULL          = syscall.Errno(0x36)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0x7)\n\tSIGCHLD   = syscall.Signal(0x11)\n\tSIGCLD    = syscall.Signal(0x11)\n\tSIGCONT   = syscall.Signal(0x12)\n\tSIGIO     = syscall.Signal(0x1d)\n\tSIGPOLL   = syscall.Signal(0x1d)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x1e)\n\tSIGSTKFLT = syscall.Signal(0x10)\n\tSIGSTOP   = syscall.Signal(0x13)\n\tSIGSYS    = syscall.Signal(0x1f)\n\tSIGTSTP   = syscall.Signal(0x14)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x17)\n\tSIGUSR1   = syscall.Signal(0xa)\n\tSIGUSR2   = syscall.Signal(0xc)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{36, \"ENAMETOOLONG\", \"file name too long\"},\n\t{37, \"ENOLCK\", \"no locks available\"},\n\t{38, \"ENOSYS\", \"function not implemented\"},\n\t{39, \"ENOTEMPTY\", \"directory not empty\"},\n\t{40, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{42, \"ENOMSG\", \"no message of desired type\"},\n\t{43, \"EIDRM\", \"identifier removed\"},\n\t{44, \"ECHRNG\", \"channel number out of range\"},\n\t{45, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{46, \"EL3HLT\", \"level 3 halted\"},\n\t{47, \"EL3RST\", \"level 3 reset\"},\n\t{48, \"ELNRNG\", \"link number out of range\"},\n\t{49, \"EUNATCH\", \"protocol driver not attached\"},\n\t{50, \"ENOCSI\", \"no CSI structure available\"},\n\t{51, \"EL2HLT\", \"level 2 halted\"},\n\t{52, \"EBADE\", \"invalid exchange\"},\n\t{53, \"EBADR\", \"invalid request descriptor\"},\n\t{54, \"EXFULL\", \"exchange full\"},\n\t{55, \"ENOANO\", \"no anode\"},\n\t{56, \"EBADRQC\", \"invalid request code\"},\n\t{57, \"EBADSLT\", \"invalid slot\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{72, \"EMULTIHOP\", \"multihop attempted\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EBADMSG\", \"bad message\"},\n\t{75, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{76, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{77, \"EBADFD\", \"file descriptor in bad state\"},\n\t{78, \"EREMCHG\", \"remote address changed\"},\n\t{79, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{80, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{81, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{82, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{83, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{84, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{85, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{86, \"ESTRPIPE\", \"streams pipe error\"},\n\t{87, \"EUSERS\", \"too many users\"},\n\t{88, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{89, \"EDESTADDRREQ\", \"destination address required\"},\n\t{90, \"EMSGSIZE\", \"message too long\"},\n\t{91, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{92, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{93, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{94, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{95, \"ENOTSUP\", \"operation not supported\"},\n\t{96, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{97, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{98, \"EADDRINUSE\", \"address already in use\"},\n\t{99, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{100, \"ENETDOWN\", \"network is down\"},\n\t{101, \"ENETUNREACH\", \"network is unreachable\"},\n\t{102, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{103, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{104, \"ECONNRESET\", \"connection reset by peer\"},\n\t{105, \"ENOBUFS\", \"no buffer space available\"},\n\t{106, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{107, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{108, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{109, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{110, \"ETIMEDOUT\", \"connection timed out\"},\n\t{111, \"ECONNREFUSED\", \"connection refused\"},\n\t{112, \"EHOSTDOWN\", \"host is down\"},\n\t{113, \"EHOSTUNREACH\", \"no route to host\"},\n\t{114, \"EALREADY\", \"operation already in progress\"},\n\t{115, \"EINPROGRESS\", \"operation now in progress\"},\n\t{116, \"ESTALE\", \"stale file handle\"},\n\t{117, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{118, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{119, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{120, \"EISNAM\", \"is a named type file\"},\n\t{121, \"EREMOTEIO\", \"remote I/O error\"},\n\t{122, \"EDQUOT\", \"disk quota exceeded\"},\n\t{123, \"ENOMEDIUM\", \"no medium found\"},\n\t{124, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{125, \"ECANCELED\", \"operation canceled\"},\n\t{126, \"ENOKEY\", \"required key not available\"},\n\t{127, \"EKEYEXPIRED\", \"key has expired\"},\n\t{128, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{129, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{130, \"EOWNERDEAD\", \"owner died\"},\n\t{131, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{132, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{133, \"EHWPOISON\", \"memory page has hardware error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGBUS\", \"bus error\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGUSR1\", \"user defined signal 1\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGUSR2\", \"user defined signal 2\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGSTKFLT\", \"stack fault\"},\n\t{17, \"SIGCHLD\", \"child exited\"},\n\t{18, \"SIGCONT\", \"continued\"},\n\t{19, \"SIGSTOP\", \"stopped (signal)\"},\n\t{20, \"SIGTSTP\", \"stopped\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGURG\", \"urgent I/O condition\"},\n\t{24, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGIO\", \"I/O possible\"},\n\t{30, \"SIGPWR\", \"power failure\"},\n\t{31, \"SIGSYS\", \"bad system call\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_mips.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/mips/include\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mips && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/mips/include _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tB1000000                         = 0x1008\n\tB115200                          = 0x1002\n\tB1152000                         = 0x1009\n\tB1500000                         = 0x100a\n\tB2000000                         = 0x100b\n\tB230400                          = 0x1003\n\tB2500000                         = 0x100c\n\tB3000000                         = 0x100d\n\tB3500000                         = 0x100e\n\tB4000000                         = 0x100f\n\tB460800                          = 0x1004\n\tB500000                          = 0x1005\n\tB57600                           = 0x1001\n\tB576000                          = 0x1006\n\tB921600                          = 0x1007\n\tBLKALIGNOFF                      = 0x2000127a\n\tBLKBSZGET                        = 0x40041270\n\tBLKBSZSET                        = 0x80041271\n\tBLKDISCARD                       = 0x20001277\n\tBLKDISCARDZEROES                 = 0x2000127c\n\tBLKFLSBUF                        = 0x20001261\n\tBLKFRAGET                        = 0x20001265\n\tBLKFRASET                        = 0x20001264\n\tBLKGETDISKSEQ                    = 0x40081280\n\tBLKGETSIZE                       = 0x20001260\n\tBLKGETSIZE64                     = 0x40041272\n\tBLKIOMIN                         = 0x20001278\n\tBLKIOOPT                         = 0x20001279\n\tBLKPBSZGET                       = 0x2000127b\n\tBLKRAGET                         = 0x20001263\n\tBLKRASET                         = 0x20001262\n\tBLKROGET                         = 0x2000125e\n\tBLKROSET                         = 0x2000125d\n\tBLKROTATIONAL                    = 0x2000127e\n\tBLKRRPART                        = 0x2000125f\n\tBLKSECDISCARD                    = 0x2000127d\n\tBLKSECTGET                       = 0x20001267\n\tBLKSECTSET                       = 0x20001266\n\tBLKSSZGET                        = 0x20001268\n\tBLKZEROOUT                       = 0x2000127f\n\tBOTHER                           = 0x1000\n\tBS1                              = 0x2000\n\tBSDLY                            = 0x2000\n\tCBAUD                            = 0x100f\n\tCBAUDEX                          = 0x1000\n\tCIBAUD                           = 0x100f0000\n\tCLOCAL                           = 0x800\n\tCR1                              = 0x200\n\tCR2                              = 0x400\n\tCR3                              = 0x600\n\tCRDLY                            = 0x600\n\tCREAD                            = 0x80\n\tCS6                              = 0x10\n\tCS7                              = 0x20\n\tCS8                              = 0x30\n\tCSIZE                            = 0x30\n\tCSTOPB                           = 0x40\n\tECCGETLAYOUT                     = 0x41484d11\n\tECCGETSTATS                      = 0x40104d12\n\tECHOCTL                          = 0x200\n\tECHOE                            = 0x10\n\tECHOK                            = 0x20\n\tECHOKE                           = 0x800\n\tECHONL                           = 0x40\n\tECHOPRT                          = 0x400\n\tEFD_CLOEXEC                      = 0x80000\n\tEFD_NONBLOCK                     = 0x80\n\tEPIOCGPARAMS                     = 0x40088a02\n\tEPIOCSPARAMS                     = 0x80088a01\n\tEPOLL_CLOEXEC                    = 0x80000\n\tEXTPROC                          = 0x10000\n\tFF1                              = 0x8000\n\tFFDLY                            = 0x8000\n\tFICLONE                          = 0x80049409\n\tFICLONERANGE                     = 0x8020940d\n\tFLUSHO                           = 0x2000\n\tFS_IOC_ENABLE_VERITY             = 0x80806685\n\tFS_IOC_GETFLAGS                  = 0x40046601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x4010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x800c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x80106614\n\tFS_IOC_SETFLAGS                  = 0x80046602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x400c6613\n\tF_GETLK                          = 0x21\n\tF_GETLK64                        = 0x21\n\tF_GETOWN                         = 0x17\n\tF_RDLCK                          = 0x0\n\tF_SETLK                          = 0x22\n\tF_SETLK64                        = 0x22\n\tF_SETLKW                         = 0x23\n\tF_SETLKW64                       = 0x23\n\tF_SETOWN                         = 0x18\n\tF_UNLCK                          = 0x2\n\tF_WRLCK                          = 0x1\n\tHIDIOCGRAWINFO                   = 0x40084803\n\tHIDIOCGRDESC                     = 0x50044802\n\tHIDIOCGRDESCSIZE                 = 0x40044801\n\tHIDIOCREVOKE                     = 0x8004480d\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x100\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x80\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9\n\tIPV6_FLOWINFO_MASK               = 0xfffffff\n\tIPV6_FLOWLABEL_MASK              = 0xfffff\n\tISIG                             = 0x1\n\tIUCLC                            = 0x200\n\tIXOFF                            = 0x1000\n\tIXON                             = 0x400\n\tMAP_ANON                         = 0x800\n\tMAP_ANONYMOUS                    = 0x800\n\tMAP_DENYWRITE                    = 0x2000\n\tMAP_EXECUTABLE                   = 0x4000\n\tMAP_GROWSDOWN                    = 0x1000\n\tMAP_HUGETLB                      = 0x80000\n\tMAP_LOCKED                       = 0x8000\n\tMAP_NONBLOCK                     = 0x20000\n\tMAP_NORESERVE                    = 0x400\n\tMAP_POPULATE                     = 0x10000\n\tMAP_RENAME                       = 0x800\n\tMAP_STACK                        = 0x40000\n\tMCL_CURRENT                      = 0x1\n\tMCL_FUTURE                       = 0x2\n\tMCL_ONFAULT                      = 0x4\n\tMEMERASE                         = 0x80084d02\n\tMEMERASE64                       = 0x80104d14\n\tMEMGETBADBLOCK                   = 0x80084d0b\n\tMEMGETINFO                       = 0x40204d01\n\tMEMGETOOBSEL                     = 0x40c84d0a\n\tMEMGETREGIONCOUNT                = 0x40044d07\n\tMEMISLOCKED                      = 0x40084d17\n\tMEMLOCK                          = 0x80084d05\n\tMEMREAD                          = 0xc0404d1a\n\tMEMREADOOB                       = 0xc00c4d04\n\tMEMSETBADBLOCK                   = 0x80084d0c\n\tMEMUNLOCK                        = 0x80084d06\n\tMEMWRITEOOB                      = 0xc00c4d03\n\tMTDFILEMODE                      = 0x20004d13\n\tNFDBITS                          = 0x20\n\tNLDLY                            = 0x100\n\tNOFLSH                           = 0x80\n\tNS_GET_MNTNS_ID                  = 0x4008b705\n\tNS_GET_NSTYPE                    = 0x2000b703\n\tNS_GET_OWNER_UID                 = 0x2000b704\n\tNS_GET_PARENT                    = 0x2000b702\n\tNS_GET_PID_FROM_PIDNS            = 0x4004b706\n\tNS_GET_PID_IN_PIDNS              = 0x4004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x4004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x4004b709\n\tNS_GET_USERNS                    = 0x2000b701\n\tOLCUC                            = 0x2\n\tONLCR                            = 0x4\n\tOTPERASE                         = 0x800c4d19\n\tOTPGETREGIONCOUNT                = 0x80044d0e\n\tOTPGETREGIONINFO                 = 0x800c4d0f\n\tOTPLOCK                          = 0x400c4d10\n\tOTPSELECT                        = 0x40044d0d\n\tO_APPEND                         = 0x8\n\tO_ASYNC                          = 0x1000\n\tO_CLOEXEC                        = 0x80000\n\tO_CREAT                          = 0x100\n\tO_DIRECT                         = 0x8000\n\tO_DIRECTORY                      = 0x10000\n\tO_DSYNC                          = 0x10\n\tO_EXCL                           = 0x400\n\tO_FSYNC                          = 0x4010\n\tO_LARGEFILE                      = 0x2000\n\tO_NDELAY                         = 0x80\n\tO_NOATIME                        = 0x40000\n\tO_NOCTTY                         = 0x800\n\tO_NOFOLLOW                       = 0x20000\n\tO_NONBLOCK                       = 0x80\n\tO_PATH                           = 0x200000\n\tO_RSYNC                          = 0x4010\n\tO_SYNC                           = 0x4010\n\tO_TMPFILE                        = 0x410000\n\tO_TRUNC                          = 0x200\n\tPARENB                           = 0x100\n\tPARODD                           = 0x200\n\tPENDIN                           = 0x4000\n\tPERF_EVENT_IOC_DISABLE           = 0x20002401\n\tPERF_EVENT_IOC_ENABLE            = 0x20002400\n\tPERF_EVENT_IOC_ID                = 0x40042407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8004240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x80042409\n\tPERF_EVENT_IOC_PERIOD            = 0x80082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc004240a\n\tPERF_EVENT_IOC_REFRESH           = 0x20002402\n\tPERF_EVENT_IOC_RESET             = 0x20002403\n\tPERF_EVENT_IOC_SET_BPF           = 0x80042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x80042406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x20002405\n\tPPPIOCATTACH                     = 0x8004743d\n\tPPPIOCATTCHAN                    = 0x80047438\n\tPPPIOCBRIDGECHAN                 = 0x80047435\n\tPPPIOCCONNECT                    = 0x8004743a\n\tPPPIOCDETACH                     = 0x8004743c\n\tPPPIOCDISCONN                    = 0x20007439\n\tPPPIOCGASYNCMAP                  = 0x40047458\n\tPPPIOCGCHAN                      = 0x40047437\n\tPPPIOCGDEBUG                     = 0x40047441\n\tPPPIOCGFLAGS                     = 0x4004745a\n\tPPPIOCGIDLE                      = 0x4008743f\n\tPPPIOCGIDLE32                    = 0x4008743f\n\tPPPIOCGIDLE64                    = 0x4010743f\n\tPPPIOCGL2TPSTATS                 = 0x40487436\n\tPPPIOCGMRU                       = 0x40047453\n\tPPPIOCGRASYNCMAP                 = 0x40047455\n\tPPPIOCGUNIT                      = 0x40047456\n\tPPPIOCGXASYNCMAP                 = 0x40207450\n\tPPPIOCSACTIVE                    = 0x80087446\n\tPPPIOCSASYNCMAP                  = 0x80047457\n\tPPPIOCSCOMPRESS                  = 0x800c744d\n\tPPPIOCSDEBUG                     = 0x80047440\n\tPPPIOCSFLAGS                     = 0x80047459\n\tPPPIOCSMAXCID                    = 0x80047451\n\tPPPIOCSMRRU                      = 0x8004743b\n\tPPPIOCSMRU                       = 0x80047452\n\tPPPIOCSNPMODE                    = 0x8008744b\n\tPPPIOCSPASS                      = 0x80087447\n\tPPPIOCSRASYNCMAP                 = 0x80047454\n\tPPPIOCSXASYNCMAP                 = 0x8020744f\n\tPPPIOCUNBRIDGECHAN               = 0x20007434\n\tPPPIOCXFERUNIT                   = 0x2000744e\n\tPR_SET_PTRACER_ANY               = 0xffffffff\n\tPTP_CLOCK_GETCAPS                = 0x40503d01\n\tPTP_CLOCK_GETCAPS2               = 0x40503d0a\n\tPTP_ENABLE_PPS                   = 0x80043d04\n\tPTP_ENABLE_PPS2                  = 0x80043d0d\n\tPTP_EXTTS_REQUEST                = 0x80103d02\n\tPTP_EXTTS_REQUEST2               = 0x80103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x20003d13\n\tPTP_MASK_EN_SINGLE               = 0x80043d14\n\tPTP_PEROUT_REQUEST               = 0x80383d03\n\tPTP_PEROUT_REQUEST2              = 0x80383d0c\n\tPTP_PIN_SETFUNC                  = 0x80603d07\n\tPTP_PIN_SETFUNC2                 = 0x80603d10\n\tPTP_SYS_OFFSET                   = 0x83403d05\n\tPTP_SYS_OFFSET2                  = 0x83403d0e\n\tPTRACE_GETFPREGS                 = 0xe\n\tPTRACE_GET_THREAD_AREA           = 0x19\n\tPTRACE_GET_THREAD_AREA_3264      = 0xc4\n\tPTRACE_GET_WATCH_REGS            = 0xd0\n\tPTRACE_OLDSETOPTIONS             = 0x15\n\tPTRACE_PEEKDATA_3264             = 0xc1\n\tPTRACE_PEEKTEXT_3264             = 0xc0\n\tPTRACE_POKEDATA_3264             = 0xc3\n\tPTRACE_POKETEXT_3264             = 0xc2\n\tPTRACE_SETFPREGS                 = 0xf\n\tPTRACE_SET_THREAD_AREA           = 0x1a\n\tPTRACE_SET_WATCH_REGS            = 0xd1\n\tRLIMIT_AS                        = 0x6\n\tRLIMIT_MEMLOCK                   = 0x9\n\tRLIMIT_NOFILE                    = 0x5\n\tRLIMIT_NPROC                     = 0x8\n\tRLIMIT_RSS                       = 0x7\n\tRNDADDENTROPY                    = 0x80085203\n\tRNDADDTOENTCNT                   = 0x80045201\n\tRNDCLEARPOOL                     = 0x20005206\n\tRNDGETENTCNT                     = 0x40045200\n\tRNDGETPOOL                       = 0x40085202\n\tRNDRESEEDCRNG                    = 0x20005207\n\tRNDZAPENTCNT                     = 0x20005204\n\tRTC_AIE_OFF                      = 0x20007002\n\tRTC_AIE_ON                       = 0x20007001\n\tRTC_ALM_READ                     = 0x40247008\n\tRTC_ALM_SET                      = 0x80247007\n\tRTC_EPOCH_READ                   = 0x4004700d\n\tRTC_EPOCH_SET                    = 0x8004700e\n\tRTC_IRQP_READ                    = 0x4004700b\n\tRTC_IRQP_SET                     = 0x8004700c\n\tRTC_PARAM_GET                    = 0x80187013\n\tRTC_PARAM_SET                    = 0x80187014\n\tRTC_PIE_OFF                      = 0x20007006\n\tRTC_PIE_ON                       = 0x20007005\n\tRTC_PLL_GET                      = 0x401c7011\n\tRTC_PLL_SET                      = 0x801c7012\n\tRTC_RD_TIME                      = 0x40247009\n\tRTC_SET_TIME                     = 0x8024700a\n\tRTC_UIE_OFF                      = 0x20007004\n\tRTC_UIE_ON                       = 0x20007003\n\tRTC_VL_CLR                       = 0x20007014\n\tRTC_VL_READ                      = 0x40047013\n\tRTC_WIE_OFF                      = 0x20007010\n\tRTC_WIE_ON                       = 0x2000700f\n\tRTC_WKALM_RD                     = 0x40287010\n\tRTC_WKALM_SET                    = 0x8028700f\n\tSCM_DEVMEM_DMABUF                = 0x4f\n\tSCM_DEVMEM_LINEAR                = 0x4e\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TS_OPT_ID                    = 0x51\n\tSCM_TXTIME                       = 0x3d\n\tSCM_WIFI_STATUS                  = 0x29\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x80082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x80082104\n\tSFD_CLOEXEC                      = 0x80000\n\tSFD_NONBLOCK                     = 0x80\n\tSIOCATMARK                       = 0x40047307\n\tSIOCGPGRP                        = 0x40047309\n\tSIOCGSTAMPNS_NEW                 = 0x40108907\n\tSIOCGSTAMP_NEW                   = 0x40108906\n\tSIOCINQ                          = 0x467f\n\tSIOCOUTQ                         = 0x7472\n\tSIOCSPGRP                        = 0x80047308\n\tSOCK_CLOEXEC                     = 0x80000\n\tSOCK_DGRAM                       = 0x1\n\tSOCK_NONBLOCK                    = 0x80\n\tSOCK_STREAM                      = 0x2\n\tSOL_SOCKET                       = 0xffff\n\tSO_ACCEPTCONN                    = 0x1009\n\tSO_ATTACH_BPF                    = 0x32\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x34\n\tSO_BINDTODEVICE                  = 0x19\n\tSO_BINDTOIFINDEX                 = 0x3e\n\tSO_BPF_EXTENSIONS                = 0x30\n\tSO_BROADCAST                     = 0x20\n\tSO_BSDCOMPAT                     = 0xe\n\tSO_BUF_LOCK                      = 0x48\n\tSO_BUSY_POLL                     = 0x2e\n\tSO_BUSY_POLL_BUDGET              = 0x46\n\tSO_CNX_ADVICE                    = 0x35\n\tSO_COOKIE                        = 0x39\n\tSO_DETACH_REUSEPORT_BPF          = 0x44\n\tSO_DEVMEM_DMABUF                 = 0x4f\n\tSO_DEVMEM_DONTNEED               = 0x50\n\tSO_DEVMEM_LINEAR                 = 0x4e\n\tSO_DOMAIN                        = 0x1029\n\tSO_DONTROUTE                     = 0x10\n\tSO_ERROR                         = 0x1007\n\tSO_INCOMING_CPU                  = 0x31\n\tSO_INCOMING_NAPI_ID              = 0x38\n\tSO_KEEPALIVE                     = 0x8\n\tSO_LINGER                        = 0x80\n\tSO_LOCK_FILTER                   = 0x2c\n\tSO_MARK                          = 0x24\n\tSO_MAX_PACING_RATE               = 0x2f\n\tSO_MEMINFO                       = 0x37\n\tSO_NETNS_COOKIE                  = 0x47\n\tSO_NOFCS                         = 0x2b\n\tSO_OOBINLINE                     = 0x100\n\tSO_PASSCRED                      = 0x11\n\tSO_PASSPIDFD                     = 0x4c\n\tSO_PASSSEC                       = 0x22\n\tSO_PEEK_OFF                      = 0x2a\n\tSO_PEERCRED                      = 0x12\n\tSO_PEERGROUPS                    = 0x3b\n\tSO_PEERPIDFD                     = 0x4d\n\tSO_PEERSEC                       = 0x1e\n\tSO_PREFER_BUSY_POLL              = 0x45\n\tSO_PROTOCOL                      = 0x1028\n\tSO_RCVBUF                        = 0x1002\n\tSO_RCVBUFFORCE                   = 0x21\n\tSO_RCVLOWAT                      = 0x1004\n\tSO_RCVMARK                       = 0x4b\n\tSO_RCVTIMEO                      = 0x1006\n\tSO_RCVTIMEO_NEW                  = 0x42\n\tSO_RCVTIMEO_OLD                  = 0x1006\n\tSO_RESERVE_MEM                   = 0x49\n\tSO_REUSEADDR                     = 0x4\n\tSO_REUSEPORT                     = 0x200\n\tSO_RXQ_OVFL                      = 0x28\n\tSO_SECURITY_AUTHENTICATION       = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x17\n\tSO_SELECT_ERR_QUEUE              = 0x2d\n\tSO_SNDBUF                        = 0x1001\n\tSO_SNDBUFFORCE                   = 0x1f\n\tSO_SNDLOWAT                      = 0x1003\n\tSO_SNDTIMEO                      = 0x1005\n\tSO_SNDTIMEO_NEW                  = 0x43\n\tSO_SNDTIMEO_OLD                  = 0x1005\n\tSO_STYLE                         = 0x1008\n\tSO_TIMESTAMPING                  = 0x25\n\tSO_TIMESTAMPING_NEW              = 0x41\n\tSO_TIMESTAMPING_OLD              = 0x25\n\tSO_TIMESTAMPNS                   = 0x23\n\tSO_TIMESTAMPNS_NEW               = 0x40\n\tSO_TIMESTAMPNS_OLD               = 0x23\n\tSO_TIMESTAMP_NEW                 = 0x3f\n\tSO_TXREHASH                      = 0x4a\n\tSO_TXTIME                        = 0x3d\n\tSO_TYPE                          = 0x1008\n\tSO_WIFI_STATUS                   = 0x29\n\tSO_ZEROCOPY                      = 0x3c\n\tTAB1                             = 0x800\n\tTAB2                             = 0x1000\n\tTAB3                             = 0x1800\n\tTABDLY                           = 0x1800\n\tTCFLSH                           = 0x5407\n\tTCGETA                           = 0x5401\n\tTCGETS                           = 0x540d\n\tTCGETS2                          = 0x4030542a\n\tTCSAFLUSH                        = 0x5410\n\tTCSBRK                           = 0x5405\n\tTCSBRKP                          = 0x5486\n\tTCSETA                           = 0x5402\n\tTCSETAF                          = 0x5404\n\tTCSETAW                          = 0x5403\n\tTCSETS                           = 0x540e\n\tTCSETS2                          = 0x8030542b\n\tTCSETSF                          = 0x5410\n\tTCSETSF2                         = 0x8030542d\n\tTCSETSW                          = 0x540f\n\tTCSETSW2                         = 0x8030542c\n\tTCXONC                           = 0x5406\n\tTFD_CLOEXEC                      = 0x80000\n\tTFD_NONBLOCK                     = 0x80\n\tTIOCCBRK                         = 0x5428\n\tTIOCCONS                         = 0x80047478\n\tTIOCEXCL                         = 0x740d\n\tTIOCGDEV                         = 0x40045432\n\tTIOCGETD                         = 0x7400\n\tTIOCGETP                         = 0x7408\n\tTIOCGEXCL                        = 0x40045440\n\tTIOCGICOUNT                      = 0x5492\n\tTIOCGISO7816                     = 0x40285442\n\tTIOCGLCKTRMIOS                   = 0x548b\n\tTIOCGLTC                         = 0x7474\n\tTIOCGPGRP                        = 0x40047477\n\tTIOCGPKT                         = 0x40045438\n\tTIOCGPTLCK                       = 0x40045439\n\tTIOCGPTN                         = 0x40045430\n\tTIOCGPTPEER                      = 0x20005441\n\tTIOCGRS485                       = 0x4020542e\n\tTIOCGSERIAL                      = 0x5484\n\tTIOCGSID                         = 0x7416\n\tTIOCGSOFTCAR                     = 0x5481\n\tTIOCGWINSZ                       = 0x40087468\n\tTIOCINQ                          = 0x467f\n\tTIOCLINUX                        = 0x5483\n\tTIOCMBIC                         = 0x741c\n\tTIOCMBIS                         = 0x741b\n\tTIOCMGET                         = 0x741d\n\tTIOCMIWAIT                       = 0x5491\n\tTIOCMSET                         = 0x741a\n\tTIOCM_CAR                        = 0x100\n\tTIOCM_CD                         = 0x100\n\tTIOCM_CTS                        = 0x40\n\tTIOCM_DSR                        = 0x400\n\tTIOCM_RI                         = 0x200\n\tTIOCM_RNG                        = 0x200\n\tTIOCM_SR                         = 0x20\n\tTIOCM_ST                         = 0x10\n\tTIOCNOTTY                        = 0x5471\n\tTIOCNXCL                         = 0x740e\n\tTIOCOUTQ                         = 0x7472\n\tTIOCPKT                          = 0x5470\n\tTIOCSBRK                         = 0x5427\n\tTIOCSCTTY                        = 0x5480\n\tTIOCSERCONFIG                    = 0x5488\n\tTIOCSERGETLSR                    = 0x548e\n\tTIOCSERGETMULTI                  = 0x548f\n\tTIOCSERGSTRUCT                   = 0x548d\n\tTIOCSERGWILD                     = 0x5489\n\tTIOCSERSETMULTI                  = 0x5490\n\tTIOCSERSWILD                     = 0x548a\n\tTIOCSER_TEMT                     = 0x1\n\tTIOCSETD                         = 0x7401\n\tTIOCSETN                         = 0x740a\n\tTIOCSETP                         = 0x7409\n\tTIOCSIG                          = 0x80045436\n\tTIOCSISO7816                     = 0xc0285443\n\tTIOCSLCKTRMIOS                   = 0x548c\n\tTIOCSLTC                         = 0x7475\n\tTIOCSPGRP                        = 0x80047476\n\tTIOCSPTLCK                       = 0x80045431\n\tTIOCSRS485                       = 0xc020542f\n\tTIOCSSERIAL                      = 0x5485\n\tTIOCSSOFTCAR                     = 0x5482\n\tTIOCSTI                          = 0x5472\n\tTIOCSWINSZ                       = 0x80087467\n\tTIOCVHANGUP                      = 0x5437\n\tTOSTOP                           = 0x8000\n\tTUNATTACHFILTER                  = 0x800854d5\n\tTUNDETACHFILTER                  = 0x800854d6\n\tTUNGETDEVNETNS                   = 0x200054e3\n\tTUNGETFEATURES                   = 0x400454cf\n\tTUNGETFILTER                     = 0x400854db\n\tTUNGETIFF                        = 0x400454d2\n\tTUNGETSNDBUF                     = 0x400454d3\n\tTUNGETVNETBE                     = 0x400454df\n\tTUNGETVNETHDRSZ                  = 0x400454d7\n\tTUNGETVNETLE                     = 0x400454dd\n\tTUNSETCARRIER                    = 0x800454e2\n\tTUNSETDEBUG                      = 0x800454c9\n\tTUNSETFILTEREBPF                 = 0x400454e1\n\tTUNSETGROUP                      = 0x800454ce\n\tTUNSETIFF                        = 0x800454ca\n\tTUNSETIFINDEX                    = 0x800454da\n\tTUNSETLINK                       = 0x800454cd\n\tTUNSETNOCSUM                     = 0x800454c8\n\tTUNSETOFFLOAD                    = 0x800454d0\n\tTUNSETOWNER                      = 0x800454cc\n\tTUNSETPERSIST                    = 0x800454cb\n\tTUNSETQUEUE                      = 0x800454d9\n\tTUNSETSNDBUF                     = 0x800454d4\n\tTUNSETSTEERINGEBPF               = 0x400454e0\n\tTUNSETTXFILTER                   = 0x800454d1\n\tTUNSETVNETBE                     = 0x800454de\n\tTUNSETVNETHDRSZ                  = 0x800454d8\n\tTUNSETVNETLE                     = 0x800454dc\n\tUBI_IOCATT                       = 0x80186f40\n\tUBI_IOCDET                       = 0x80046f41\n\tUBI_IOCEBCH                      = 0x80044f02\n\tUBI_IOCEBER                      = 0x80044f01\n\tUBI_IOCEBISMAP                   = 0x40044f05\n\tUBI_IOCEBMAP                     = 0x80084f03\n\tUBI_IOCEBUNMAP                   = 0x80044f04\n\tUBI_IOCMKVOL                     = 0x80986f00\n\tUBI_IOCRMVOL                     = 0x80046f01\n\tUBI_IOCRNVOL                     = 0x91106f03\n\tUBI_IOCRPEB                      = 0x80046f04\n\tUBI_IOCRSVOL                     = 0x800c6f02\n\tUBI_IOCSETVOLPROP                = 0x80104f06\n\tUBI_IOCSPEB                      = 0x80046f05\n\tUBI_IOCVOLCRBLK                  = 0x80804f07\n\tUBI_IOCVOLRMBLK                  = 0x20004f08\n\tUBI_IOCVOLUP                     = 0x80084f00\n\tVDISCARD                         = 0xd\n\tVEOF                             = 0x10\n\tVEOL                             = 0x11\n\tVEOL2                            = 0x6\n\tVMIN                             = 0x4\n\tVREPRINT                         = 0xc\n\tVSTART                           = 0x8\n\tVSTOP                            = 0x9\n\tVSUSP                            = 0xa\n\tVSWTC                            = 0x7\n\tVSWTCH                           = 0x7\n\tVT1                              = 0x4000\n\tVTDLY                            = 0x4000\n\tVTIME                            = 0x5\n\tVWERASE                          = 0xe\n\tWDIOC_GETBOOTSTATUS              = 0x40045702\n\tWDIOC_GETPRETIMEOUT              = 0x40045709\n\tWDIOC_GETSTATUS                  = 0x40045701\n\tWDIOC_GETSUPPORT                 = 0x40285700\n\tWDIOC_GETTEMP                    = 0x40045703\n\tWDIOC_GETTIMELEFT                = 0x4004570a\n\tWDIOC_GETTIMEOUT                 = 0x40045707\n\tWDIOC_KEEPALIVE                  = 0x40045705\n\tWDIOC_SETOPTIONS                 = 0x40045704\n\tWORDSIZE                         = 0x20\n\tXCASE                            = 0x4\n\tXTABS                            = 0x1800\n\t_HIDIOCGRAWNAME                  = 0x40804804\n\t_HIDIOCGRAWPHYS                  = 0x40404805\n\t_HIDIOCGRAWUNIQ                  = 0x40404808\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x7d)\n\tEADDRNOTAVAIL   = syscall.Errno(0x7e)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x7c)\n\tEALREADY        = syscall.Errno(0x95)\n\tEBADE           = syscall.Errno(0x32)\n\tEBADFD          = syscall.Errno(0x51)\n\tEBADMSG         = syscall.Errno(0x4d)\n\tEBADR           = syscall.Errno(0x33)\n\tEBADRQC         = syscall.Errno(0x36)\n\tEBADSLT         = syscall.Errno(0x37)\n\tEBFONT          = syscall.Errno(0x3b)\n\tECANCELED       = syscall.Errno(0x9e)\n\tECHRNG          = syscall.Errno(0x25)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x82)\n\tECONNREFUSED    = syscall.Errno(0x92)\n\tECONNRESET      = syscall.Errno(0x83)\n\tEDEADLK         = syscall.Errno(0x2d)\n\tEDEADLOCK       = syscall.Errno(0x38)\n\tEDESTADDRREQ    = syscall.Errno(0x60)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x46d)\n\tEHOSTDOWN       = syscall.Errno(0x93)\n\tEHOSTUNREACH    = syscall.Errno(0x94)\n\tEHWPOISON       = syscall.Errno(0xa8)\n\tEIDRM           = syscall.Errno(0x24)\n\tEILSEQ          = syscall.Errno(0x58)\n\tEINIT           = syscall.Errno(0x8d)\n\tEINPROGRESS     = syscall.Errno(0x96)\n\tEISCONN         = syscall.Errno(0x85)\n\tEISNAM          = syscall.Errno(0x8b)\n\tEKEYEXPIRED     = syscall.Errno(0xa2)\n\tEKEYREJECTED    = syscall.Errno(0xa4)\n\tEKEYREVOKED     = syscall.Errno(0xa3)\n\tEL2HLT          = syscall.Errno(0x2c)\n\tEL2NSYNC        = syscall.Errno(0x26)\n\tEL3HLT          = syscall.Errno(0x27)\n\tEL3RST          = syscall.Errno(0x28)\n\tELIBACC         = syscall.Errno(0x53)\n\tELIBBAD         = syscall.Errno(0x54)\n\tELIBEXEC        = syscall.Errno(0x57)\n\tELIBMAX         = syscall.Errno(0x56)\n\tELIBSCN         = syscall.Errno(0x55)\n\tELNRNG          = syscall.Errno(0x29)\n\tELOOP           = syscall.Errno(0x5a)\n\tEMEDIUMTYPE     = syscall.Errno(0xa0)\n\tEMSGSIZE        = syscall.Errno(0x61)\n\tEMULTIHOP       = syscall.Errno(0x4a)\n\tENAMETOOLONG    = syscall.Errno(0x4e)\n\tENAVAIL         = syscall.Errno(0x8a)\n\tENETDOWN        = syscall.Errno(0x7f)\n\tENETRESET       = syscall.Errno(0x81)\n\tENETUNREACH     = syscall.Errno(0x80)\n\tENOANO          = syscall.Errno(0x35)\n\tENOBUFS         = syscall.Errno(0x84)\n\tENOCSI          = syscall.Errno(0x2b)\n\tENODATA         = syscall.Errno(0x3d)\n\tENOKEY          = syscall.Errno(0xa1)\n\tENOLCK          = syscall.Errno(0x2e)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x9f)\n\tENOMSG          = syscall.Errno(0x23)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x63)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x59)\n\tENOTCONN        = syscall.Errno(0x86)\n\tENOTEMPTY       = syscall.Errno(0x5d)\n\tENOTNAM         = syscall.Errno(0x89)\n\tENOTRECOVERABLE = syscall.Errno(0xa6)\n\tENOTSOCK        = syscall.Errno(0x5f)\n\tENOTSUP         = syscall.Errno(0x7a)\n\tENOTUNIQ        = syscall.Errno(0x50)\n\tEOPNOTSUPP      = syscall.Errno(0x7a)\n\tEOVERFLOW       = syscall.Errno(0x4f)\n\tEOWNERDEAD      = syscall.Errno(0xa5)\n\tEPFNOSUPPORT    = syscall.Errno(0x7b)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x78)\n\tEPROTOTYPE      = syscall.Errno(0x62)\n\tEREMCHG         = syscall.Errno(0x52)\n\tEREMDEV         = syscall.Errno(0x8e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x8c)\n\tERESTART        = syscall.Errno(0x5b)\n\tERFKILL         = syscall.Errno(0xa7)\n\tESHUTDOWN       = syscall.Errno(0x8f)\n\tESOCKTNOSUPPORT = syscall.Errno(0x79)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x97)\n\tESTRPIPE        = syscall.Errno(0x5c)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x91)\n\tETOOMANYREFS    = syscall.Errno(0x90)\n\tEUCLEAN         = syscall.Errno(0x87)\n\tEUNATCH         = syscall.Errno(0x2a)\n\tEUSERS          = syscall.Errno(0x5e)\n\tEXFULL          = syscall.Errno(0x34)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x12)\n\tSIGCLD    = syscall.Signal(0x12)\n\tSIGCONT   = syscall.Signal(0x19)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGIO     = syscall.Signal(0x16)\n\tSIGPOLL   = syscall.Signal(0x16)\n\tSIGPROF   = syscall.Signal(0x1d)\n\tSIGPWR    = syscall.Signal(0x13)\n\tSIGSTOP   = syscall.Signal(0x17)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTSTP   = syscall.Signal(0x18)\n\tSIGTTIN   = syscall.Signal(0x1a)\n\tSIGTTOU   = syscall.Signal(0x1b)\n\tSIGURG    = syscall.Signal(0x15)\n\tSIGUSR1   = syscall.Signal(0x10)\n\tSIGUSR2   = syscall.Signal(0x11)\n\tSIGVTALRM = syscall.Signal(0x1c)\n\tSIGWINCH  = syscall.Signal(0x14)\n\tSIGXCPU   = syscall.Signal(0x1e)\n\tSIGXFSZ   = syscall.Signal(0x1f)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"ENOMSG\", \"no message of desired type\"},\n\t{36, \"EIDRM\", \"identifier removed\"},\n\t{37, \"ECHRNG\", \"channel number out of range\"},\n\t{38, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{39, \"EL3HLT\", \"level 3 halted\"},\n\t{40, \"EL3RST\", \"level 3 reset\"},\n\t{41, \"ELNRNG\", \"link number out of range\"},\n\t{42, \"EUNATCH\", \"protocol driver not attached\"},\n\t{43, \"ENOCSI\", \"no CSI structure available\"},\n\t{44, \"EL2HLT\", \"level 2 halted\"},\n\t{45, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{46, \"ENOLCK\", \"no locks available\"},\n\t{50, \"EBADE\", \"invalid exchange\"},\n\t{51, \"EBADR\", \"invalid request descriptor\"},\n\t{52, \"EXFULL\", \"exchange full\"},\n\t{53, \"ENOANO\", \"no anode\"},\n\t{54, \"EBADRQC\", \"invalid request code\"},\n\t{55, \"EBADSLT\", \"invalid slot\"},\n\t{56, \"EDEADLOCK\", \"file locking deadlock error\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EMULTIHOP\", \"multihop attempted\"},\n\t{77, \"EBADMSG\", \"bad message\"},\n\t{78, \"ENAMETOOLONG\", \"file name too long\"},\n\t{79, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{80, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{81, \"EBADFD\", \"file descriptor in bad state\"},\n\t{82, \"EREMCHG\", \"remote address changed\"},\n\t{83, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{84, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{85, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{86, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{87, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{88, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{89, \"ENOSYS\", \"function not implemented\"},\n\t{90, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{91, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{92, \"ESTRPIPE\", \"streams pipe error\"},\n\t{93, \"ENOTEMPTY\", \"directory not empty\"},\n\t{94, \"EUSERS\", \"too many users\"},\n\t{95, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{96, \"EDESTADDRREQ\", \"destination address required\"},\n\t{97, \"EMSGSIZE\", \"message too long\"},\n\t{98, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{99, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{120, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{121, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{122, \"ENOTSUP\", \"operation not supported\"},\n\t{123, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{124, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{125, \"EADDRINUSE\", \"address already in use\"},\n\t{126, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{127, \"ENETDOWN\", \"network is down\"},\n\t{128, \"ENETUNREACH\", \"network is unreachable\"},\n\t{129, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{130, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{131, \"ECONNRESET\", \"connection reset by peer\"},\n\t{132, \"ENOBUFS\", \"no buffer space available\"},\n\t{133, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{134, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{135, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{137, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{138, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{139, \"EISNAM\", \"is a named type file\"},\n\t{140, \"EREMOTEIO\", \"remote I/O error\"},\n\t{141, \"EINIT\", \"unknown error 141\"},\n\t{142, \"EREMDEV\", \"unknown error 142\"},\n\t{143, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{144, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{145, \"ETIMEDOUT\", \"connection timed out\"},\n\t{146, \"ECONNREFUSED\", \"connection refused\"},\n\t{147, \"EHOSTDOWN\", \"host is down\"},\n\t{148, \"EHOSTUNREACH\", \"no route to host\"},\n\t{149, \"EALREADY\", \"operation already in progress\"},\n\t{150, \"EINPROGRESS\", \"operation now in progress\"},\n\t{151, \"ESTALE\", \"stale file handle\"},\n\t{158, \"ECANCELED\", \"operation canceled\"},\n\t{159, \"ENOMEDIUM\", \"no medium found\"},\n\t{160, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{161, \"ENOKEY\", \"required key not available\"},\n\t{162, \"EKEYEXPIRED\", \"key has expired\"},\n\t{163, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{164, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{165, \"EOWNERDEAD\", \"owner died\"},\n\t{166, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{167, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{168, \"EHWPOISON\", \"memory page has hardware error\"},\n\t{1133, \"EDQUOT\", \"disk quota exceeded\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGUSR1\", \"user defined signal 1\"},\n\t{17, \"SIGUSR2\", \"user defined signal 2\"},\n\t{18, \"SIGCHLD\", \"child exited\"},\n\t{19, \"SIGPWR\", \"power failure\"},\n\t{20, \"SIGWINCH\", \"window changed\"},\n\t{21, \"SIGURG\", \"urgent I/O condition\"},\n\t{22, \"SIGIO\", \"I/O possible\"},\n\t{23, \"SIGSTOP\", \"stopped (signal)\"},\n\t{24, \"SIGTSTP\", \"stopped\"},\n\t{25, \"SIGCONT\", \"continued\"},\n\t{26, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{27, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{28, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{29, \"SIGPROF\", \"profiling timer expired\"},\n\t{30, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{31, \"SIGXFSZ\", \"file size limit exceeded\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/mips64/include\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mips64 && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/mips64/include _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tB1000000                         = 0x1008\n\tB115200                          = 0x1002\n\tB1152000                         = 0x1009\n\tB1500000                         = 0x100a\n\tB2000000                         = 0x100b\n\tB230400                          = 0x1003\n\tB2500000                         = 0x100c\n\tB3000000                         = 0x100d\n\tB3500000                         = 0x100e\n\tB4000000                         = 0x100f\n\tB460800                          = 0x1004\n\tB500000                          = 0x1005\n\tB57600                           = 0x1001\n\tB576000                          = 0x1006\n\tB921600                          = 0x1007\n\tBLKALIGNOFF                      = 0x2000127a\n\tBLKBSZGET                        = 0x40081270\n\tBLKBSZSET                        = 0x80081271\n\tBLKDISCARD                       = 0x20001277\n\tBLKDISCARDZEROES                 = 0x2000127c\n\tBLKFLSBUF                        = 0x20001261\n\tBLKFRAGET                        = 0x20001265\n\tBLKFRASET                        = 0x20001264\n\tBLKGETDISKSEQ                    = 0x40081280\n\tBLKGETSIZE                       = 0x20001260\n\tBLKGETSIZE64                     = 0x40081272\n\tBLKIOMIN                         = 0x20001278\n\tBLKIOOPT                         = 0x20001279\n\tBLKPBSZGET                       = 0x2000127b\n\tBLKRAGET                         = 0x20001263\n\tBLKRASET                         = 0x20001262\n\tBLKROGET                         = 0x2000125e\n\tBLKROSET                         = 0x2000125d\n\tBLKROTATIONAL                    = 0x2000127e\n\tBLKRRPART                        = 0x2000125f\n\tBLKSECDISCARD                    = 0x2000127d\n\tBLKSECTGET                       = 0x20001267\n\tBLKSECTSET                       = 0x20001266\n\tBLKSSZGET                        = 0x20001268\n\tBLKZEROOUT                       = 0x2000127f\n\tBOTHER                           = 0x1000\n\tBS1                              = 0x2000\n\tBSDLY                            = 0x2000\n\tCBAUD                            = 0x100f\n\tCBAUDEX                          = 0x1000\n\tCIBAUD                           = 0x100f0000\n\tCLOCAL                           = 0x800\n\tCR1                              = 0x200\n\tCR2                              = 0x400\n\tCR3                              = 0x600\n\tCRDLY                            = 0x600\n\tCREAD                            = 0x80\n\tCS6                              = 0x10\n\tCS7                              = 0x20\n\tCS8                              = 0x30\n\tCSIZE                            = 0x30\n\tCSTOPB                           = 0x40\n\tECCGETLAYOUT                     = 0x41484d11\n\tECCGETSTATS                      = 0x40104d12\n\tECHOCTL                          = 0x200\n\tECHOE                            = 0x10\n\tECHOK                            = 0x20\n\tECHOKE                           = 0x800\n\tECHONL                           = 0x40\n\tECHOPRT                          = 0x400\n\tEFD_CLOEXEC                      = 0x80000\n\tEFD_NONBLOCK                     = 0x80\n\tEPIOCGPARAMS                     = 0x40088a02\n\tEPIOCSPARAMS                     = 0x80088a01\n\tEPOLL_CLOEXEC                    = 0x80000\n\tEXTPROC                          = 0x10000\n\tFF1                              = 0x8000\n\tFFDLY                            = 0x8000\n\tFICLONE                          = 0x80049409\n\tFICLONERANGE                     = 0x8020940d\n\tFLUSHO                           = 0x2000\n\tFS_IOC_ENABLE_VERITY             = 0x80806685\n\tFS_IOC_GETFLAGS                  = 0x40086601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x4010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x800c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x80106614\n\tFS_IOC_SETFLAGS                  = 0x80086602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x400c6613\n\tF_GETLK                          = 0xe\n\tF_GETLK64                        = 0xe\n\tF_GETOWN                         = 0x17\n\tF_RDLCK                          = 0x0\n\tF_SETLK                          = 0x6\n\tF_SETLK64                        = 0x6\n\tF_SETLKW                         = 0x7\n\tF_SETLKW64                       = 0x7\n\tF_SETOWN                         = 0x18\n\tF_UNLCK                          = 0x2\n\tF_WRLCK                          = 0x1\n\tHIDIOCGRAWINFO                   = 0x40084803\n\tHIDIOCGRDESC                     = 0x50044802\n\tHIDIOCGRDESCSIZE                 = 0x40044801\n\tHIDIOCREVOKE                     = 0x8004480d\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x100\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x80\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9\n\tIPV6_FLOWINFO_MASK               = 0xfffffff\n\tIPV6_FLOWLABEL_MASK              = 0xfffff\n\tISIG                             = 0x1\n\tIUCLC                            = 0x200\n\tIXOFF                            = 0x1000\n\tIXON                             = 0x400\n\tMAP_ANON                         = 0x800\n\tMAP_ANONYMOUS                    = 0x800\n\tMAP_DENYWRITE                    = 0x2000\n\tMAP_EXECUTABLE                   = 0x4000\n\tMAP_GROWSDOWN                    = 0x1000\n\tMAP_HUGETLB                      = 0x80000\n\tMAP_LOCKED                       = 0x8000\n\tMAP_NONBLOCK                     = 0x20000\n\tMAP_NORESERVE                    = 0x400\n\tMAP_POPULATE                     = 0x10000\n\tMAP_RENAME                       = 0x800\n\tMAP_STACK                        = 0x40000\n\tMCL_CURRENT                      = 0x1\n\tMCL_FUTURE                       = 0x2\n\tMCL_ONFAULT                      = 0x4\n\tMEMERASE                         = 0x80084d02\n\tMEMERASE64                       = 0x80104d14\n\tMEMGETBADBLOCK                   = 0x80084d0b\n\tMEMGETINFO                       = 0x40204d01\n\tMEMGETOOBSEL                     = 0x40c84d0a\n\tMEMGETREGIONCOUNT                = 0x40044d07\n\tMEMISLOCKED                      = 0x40084d17\n\tMEMLOCK                          = 0x80084d05\n\tMEMREAD                          = 0xc0404d1a\n\tMEMREADOOB                       = 0xc0104d04\n\tMEMSETBADBLOCK                   = 0x80084d0c\n\tMEMUNLOCK                        = 0x80084d06\n\tMEMWRITEOOB                      = 0xc0104d03\n\tMTDFILEMODE                      = 0x20004d13\n\tNFDBITS                          = 0x40\n\tNLDLY                            = 0x100\n\tNOFLSH                           = 0x80\n\tNS_GET_MNTNS_ID                  = 0x4008b705\n\tNS_GET_NSTYPE                    = 0x2000b703\n\tNS_GET_OWNER_UID                 = 0x2000b704\n\tNS_GET_PARENT                    = 0x2000b702\n\tNS_GET_PID_FROM_PIDNS            = 0x4004b706\n\tNS_GET_PID_IN_PIDNS              = 0x4004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x4004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x4004b709\n\tNS_GET_USERNS                    = 0x2000b701\n\tOLCUC                            = 0x2\n\tONLCR                            = 0x4\n\tOTPERASE                         = 0x800c4d19\n\tOTPGETREGIONCOUNT                = 0x80044d0e\n\tOTPGETREGIONINFO                 = 0x800c4d0f\n\tOTPLOCK                          = 0x400c4d10\n\tOTPSELECT                        = 0x40044d0d\n\tO_APPEND                         = 0x8\n\tO_ASYNC                          = 0x1000\n\tO_CLOEXEC                        = 0x80000\n\tO_CREAT                          = 0x100\n\tO_DIRECT                         = 0x8000\n\tO_DIRECTORY                      = 0x10000\n\tO_DSYNC                          = 0x10\n\tO_EXCL                           = 0x400\n\tO_FSYNC                          = 0x4010\n\tO_LARGEFILE                      = 0x0\n\tO_NDELAY                         = 0x80\n\tO_NOATIME                        = 0x40000\n\tO_NOCTTY                         = 0x800\n\tO_NOFOLLOW                       = 0x20000\n\tO_NONBLOCK                       = 0x80\n\tO_PATH                           = 0x200000\n\tO_RSYNC                          = 0x4010\n\tO_SYNC                           = 0x4010\n\tO_TMPFILE                        = 0x410000\n\tO_TRUNC                          = 0x200\n\tPARENB                           = 0x100\n\tPARODD                           = 0x200\n\tPENDIN                           = 0x4000\n\tPERF_EVENT_IOC_DISABLE           = 0x20002401\n\tPERF_EVENT_IOC_ENABLE            = 0x20002400\n\tPERF_EVENT_IOC_ID                = 0x40082407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x80042409\n\tPERF_EVENT_IOC_PERIOD            = 0x80082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc008240a\n\tPERF_EVENT_IOC_REFRESH           = 0x20002402\n\tPERF_EVENT_IOC_RESET             = 0x20002403\n\tPERF_EVENT_IOC_SET_BPF           = 0x80042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x80082406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x20002405\n\tPPPIOCATTACH                     = 0x8004743d\n\tPPPIOCATTCHAN                    = 0x80047438\n\tPPPIOCBRIDGECHAN                 = 0x80047435\n\tPPPIOCCONNECT                    = 0x8004743a\n\tPPPIOCDETACH                     = 0x8004743c\n\tPPPIOCDISCONN                    = 0x20007439\n\tPPPIOCGASYNCMAP                  = 0x40047458\n\tPPPIOCGCHAN                      = 0x40047437\n\tPPPIOCGDEBUG                     = 0x40047441\n\tPPPIOCGFLAGS                     = 0x4004745a\n\tPPPIOCGIDLE                      = 0x4010743f\n\tPPPIOCGIDLE32                    = 0x4008743f\n\tPPPIOCGIDLE64                    = 0x4010743f\n\tPPPIOCGL2TPSTATS                 = 0x40487436\n\tPPPIOCGMRU                       = 0x40047453\n\tPPPIOCGRASYNCMAP                 = 0x40047455\n\tPPPIOCGUNIT                      = 0x40047456\n\tPPPIOCGXASYNCMAP                 = 0x40207450\n\tPPPIOCSACTIVE                    = 0x80107446\n\tPPPIOCSASYNCMAP                  = 0x80047457\n\tPPPIOCSCOMPRESS                  = 0x8010744d\n\tPPPIOCSDEBUG                     = 0x80047440\n\tPPPIOCSFLAGS                     = 0x80047459\n\tPPPIOCSMAXCID                    = 0x80047451\n\tPPPIOCSMRRU                      = 0x8004743b\n\tPPPIOCSMRU                       = 0x80047452\n\tPPPIOCSNPMODE                    = 0x8008744b\n\tPPPIOCSPASS                      = 0x80107447\n\tPPPIOCSRASYNCMAP                 = 0x80047454\n\tPPPIOCSXASYNCMAP                 = 0x8020744f\n\tPPPIOCUNBRIDGECHAN               = 0x20007434\n\tPPPIOCXFERUNIT                   = 0x2000744e\n\tPR_SET_PTRACER_ANY               = 0xffffffffffffffff\n\tPTP_CLOCK_GETCAPS                = 0x40503d01\n\tPTP_CLOCK_GETCAPS2               = 0x40503d0a\n\tPTP_ENABLE_PPS                   = 0x80043d04\n\tPTP_ENABLE_PPS2                  = 0x80043d0d\n\tPTP_EXTTS_REQUEST                = 0x80103d02\n\tPTP_EXTTS_REQUEST2               = 0x80103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x20003d13\n\tPTP_MASK_EN_SINGLE               = 0x80043d14\n\tPTP_PEROUT_REQUEST               = 0x80383d03\n\tPTP_PEROUT_REQUEST2              = 0x80383d0c\n\tPTP_PIN_SETFUNC                  = 0x80603d07\n\tPTP_PIN_SETFUNC2                 = 0x80603d10\n\tPTP_SYS_OFFSET                   = 0x83403d05\n\tPTP_SYS_OFFSET2                  = 0x83403d0e\n\tPTRACE_GETFPREGS                 = 0xe\n\tPTRACE_GET_THREAD_AREA           = 0x19\n\tPTRACE_GET_THREAD_AREA_3264      = 0xc4\n\tPTRACE_GET_WATCH_REGS            = 0xd0\n\tPTRACE_OLDSETOPTIONS             = 0x15\n\tPTRACE_PEEKDATA_3264             = 0xc1\n\tPTRACE_PEEKTEXT_3264             = 0xc0\n\tPTRACE_POKEDATA_3264             = 0xc3\n\tPTRACE_POKETEXT_3264             = 0xc2\n\tPTRACE_SETFPREGS                 = 0xf\n\tPTRACE_SET_THREAD_AREA           = 0x1a\n\tPTRACE_SET_WATCH_REGS            = 0xd1\n\tRLIMIT_AS                        = 0x6\n\tRLIMIT_MEMLOCK                   = 0x9\n\tRLIMIT_NOFILE                    = 0x5\n\tRLIMIT_NPROC                     = 0x8\n\tRLIMIT_RSS                       = 0x7\n\tRNDADDENTROPY                    = 0x80085203\n\tRNDADDTOENTCNT                   = 0x80045201\n\tRNDCLEARPOOL                     = 0x20005206\n\tRNDGETENTCNT                     = 0x40045200\n\tRNDGETPOOL                       = 0x40085202\n\tRNDRESEEDCRNG                    = 0x20005207\n\tRNDZAPENTCNT                     = 0x20005204\n\tRTC_AIE_OFF                      = 0x20007002\n\tRTC_AIE_ON                       = 0x20007001\n\tRTC_ALM_READ                     = 0x40247008\n\tRTC_ALM_SET                      = 0x80247007\n\tRTC_EPOCH_READ                   = 0x4008700d\n\tRTC_EPOCH_SET                    = 0x8008700e\n\tRTC_IRQP_READ                    = 0x4008700b\n\tRTC_IRQP_SET                     = 0x8008700c\n\tRTC_PARAM_GET                    = 0x80187013\n\tRTC_PARAM_SET                    = 0x80187014\n\tRTC_PIE_OFF                      = 0x20007006\n\tRTC_PIE_ON                       = 0x20007005\n\tRTC_PLL_GET                      = 0x40207011\n\tRTC_PLL_SET                      = 0x80207012\n\tRTC_RD_TIME                      = 0x40247009\n\tRTC_SET_TIME                     = 0x8024700a\n\tRTC_UIE_OFF                      = 0x20007004\n\tRTC_UIE_ON                       = 0x20007003\n\tRTC_VL_CLR                       = 0x20007014\n\tRTC_VL_READ                      = 0x40047013\n\tRTC_WIE_OFF                      = 0x20007010\n\tRTC_WIE_ON                       = 0x2000700f\n\tRTC_WKALM_RD                     = 0x40287010\n\tRTC_WKALM_SET                    = 0x8028700f\n\tSCM_DEVMEM_DMABUF                = 0x4f\n\tSCM_DEVMEM_LINEAR                = 0x4e\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TS_OPT_ID                    = 0x51\n\tSCM_TXTIME                       = 0x3d\n\tSCM_WIFI_STATUS                  = 0x29\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x80082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x80082104\n\tSFD_CLOEXEC                      = 0x80000\n\tSFD_NONBLOCK                     = 0x80\n\tSIOCATMARK                       = 0x40047307\n\tSIOCGPGRP                        = 0x40047309\n\tSIOCGSTAMPNS_NEW                 = 0x40108907\n\tSIOCGSTAMP_NEW                   = 0x40108906\n\tSIOCINQ                          = 0x467f\n\tSIOCOUTQ                         = 0x7472\n\tSIOCSPGRP                        = 0x80047308\n\tSOCK_CLOEXEC                     = 0x80000\n\tSOCK_DGRAM                       = 0x1\n\tSOCK_NONBLOCK                    = 0x80\n\tSOCK_STREAM                      = 0x2\n\tSOL_SOCKET                       = 0xffff\n\tSO_ACCEPTCONN                    = 0x1009\n\tSO_ATTACH_BPF                    = 0x32\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x34\n\tSO_BINDTODEVICE                  = 0x19\n\tSO_BINDTOIFINDEX                 = 0x3e\n\tSO_BPF_EXTENSIONS                = 0x30\n\tSO_BROADCAST                     = 0x20\n\tSO_BSDCOMPAT                     = 0xe\n\tSO_BUF_LOCK                      = 0x48\n\tSO_BUSY_POLL                     = 0x2e\n\tSO_BUSY_POLL_BUDGET              = 0x46\n\tSO_CNX_ADVICE                    = 0x35\n\tSO_COOKIE                        = 0x39\n\tSO_DETACH_REUSEPORT_BPF          = 0x44\n\tSO_DEVMEM_DMABUF                 = 0x4f\n\tSO_DEVMEM_DONTNEED               = 0x50\n\tSO_DEVMEM_LINEAR                 = 0x4e\n\tSO_DOMAIN                        = 0x1029\n\tSO_DONTROUTE                     = 0x10\n\tSO_ERROR                         = 0x1007\n\tSO_INCOMING_CPU                  = 0x31\n\tSO_INCOMING_NAPI_ID              = 0x38\n\tSO_KEEPALIVE                     = 0x8\n\tSO_LINGER                        = 0x80\n\tSO_LOCK_FILTER                   = 0x2c\n\tSO_MARK                          = 0x24\n\tSO_MAX_PACING_RATE               = 0x2f\n\tSO_MEMINFO                       = 0x37\n\tSO_NETNS_COOKIE                  = 0x47\n\tSO_NOFCS                         = 0x2b\n\tSO_OOBINLINE                     = 0x100\n\tSO_PASSCRED                      = 0x11\n\tSO_PASSPIDFD                     = 0x4c\n\tSO_PASSSEC                       = 0x22\n\tSO_PEEK_OFF                      = 0x2a\n\tSO_PEERCRED                      = 0x12\n\tSO_PEERGROUPS                    = 0x3b\n\tSO_PEERPIDFD                     = 0x4d\n\tSO_PEERSEC                       = 0x1e\n\tSO_PREFER_BUSY_POLL              = 0x45\n\tSO_PROTOCOL                      = 0x1028\n\tSO_RCVBUF                        = 0x1002\n\tSO_RCVBUFFORCE                   = 0x21\n\tSO_RCVLOWAT                      = 0x1004\n\tSO_RCVMARK                       = 0x4b\n\tSO_RCVTIMEO                      = 0x1006\n\tSO_RCVTIMEO_NEW                  = 0x42\n\tSO_RCVTIMEO_OLD                  = 0x1006\n\tSO_RESERVE_MEM                   = 0x49\n\tSO_REUSEADDR                     = 0x4\n\tSO_REUSEPORT                     = 0x200\n\tSO_RXQ_OVFL                      = 0x28\n\tSO_SECURITY_AUTHENTICATION       = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x17\n\tSO_SELECT_ERR_QUEUE              = 0x2d\n\tSO_SNDBUF                        = 0x1001\n\tSO_SNDBUFFORCE                   = 0x1f\n\tSO_SNDLOWAT                      = 0x1003\n\tSO_SNDTIMEO                      = 0x1005\n\tSO_SNDTIMEO_NEW                  = 0x43\n\tSO_SNDTIMEO_OLD                  = 0x1005\n\tSO_STYLE                         = 0x1008\n\tSO_TIMESTAMPING                  = 0x25\n\tSO_TIMESTAMPING_NEW              = 0x41\n\tSO_TIMESTAMPING_OLD              = 0x25\n\tSO_TIMESTAMPNS                   = 0x23\n\tSO_TIMESTAMPNS_NEW               = 0x40\n\tSO_TIMESTAMPNS_OLD               = 0x23\n\tSO_TIMESTAMP_NEW                 = 0x3f\n\tSO_TXREHASH                      = 0x4a\n\tSO_TXTIME                        = 0x3d\n\tSO_TYPE                          = 0x1008\n\tSO_WIFI_STATUS                   = 0x29\n\tSO_ZEROCOPY                      = 0x3c\n\tTAB1                             = 0x800\n\tTAB2                             = 0x1000\n\tTAB3                             = 0x1800\n\tTABDLY                           = 0x1800\n\tTCFLSH                           = 0x5407\n\tTCGETA                           = 0x5401\n\tTCGETS                           = 0x540d\n\tTCGETS2                          = 0x4030542a\n\tTCSAFLUSH                        = 0x5410\n\tTCSBRK                           = 0x5405\n\tTCSBRKP                          = 0x5486\n\tTCSETA                           = 0x5402\n\tTCSETAF                          = 0x5404\n\tTCSETAW                          = 0x5403\n\tTCSETS                           = 0x540e\n\tTCSETS2                          = 0x8030542b\n\tTCSETSF                          = 0x5410\n\tTCSETSF2                         = 0x8030542d\n\tTCSETSW                          = 0x540f\n\tTCSETSW2                         = 0x8030542c\n\tTCXONC                           = 0x5406\n\tTFD_CLOEXEC                      = 0x80000\n\tTFD_NONBLOCK                     = 0x80\n\tTIOCCBRK                         = 0x5428\n\tTIOCCONS                         = 0x80047478\n\tTIOCEXCL                         = 0x740d\n\tTIOCGDEV                         = 0x40045432\n\tTIOCGETD                         = 0x7400\n\tTIOCGETP                         = 0x7408\n\tTIOCGEXCL                        = 0x40045440\n\tTIOCGICOUNT                      = 0x5492\n\tTIOCGISO7816                     = 0x40285442\n\tTIOCGLCKTRMIOS                   = 0x548b\n\tTIOCGLTC                         = 0x7474\n\tTIOCGPGRP                        = 0x40047477\n\tTIOCGPKT                         = 0x40045438\n\tTIOCGPTLCK                       = 0x40045439\n\tTIOCGPTN                         = 0x40045430\n\tTIOCGPTPEER                      = 0x20005441\n\tTIOCGRS485                       = 0x4020542e\n\tTIOCGSERIAL                      = 0x5484\n\tTIOCGSID                         = 0x7416\n\tTIOCGSOFTCAR                     = 0x5481\n\tTIOCGWINSZ                       = 0x40087468\n\tTIOCINQ                          = 0x467f\n\tTIOCLINUX                        = 0x5483\n\tTIOCMBIC                         = 0x741c\n\tTIOCMBIS                         = 0x741b\n\tTIOCMGET                         = 0x741d\n\tTIOCMIWAIT                       = 0x5491\n\tTIOCMSET                         = 0x741a\n\tTIOCM_CAR                        = 0x100\n\tTIOCM_CD                         = 0x100\n\tTIOCM_CTS                        = 0x40\n\tTIOCM_DSR                        = 0x400\n\tTIOCM_RI                         = 0x200\n\tTIOCM_RNG                        = 0x200\n\tTIOCM_SR                         = 0x20\n\tTIOCM_ST                         = 0x10\n\tTIOCNOTTY                        = 0x5471\n\tTIOCNXCL                         = 0x740e\n\tTIOCOUTQ                         = 0x7472\n\tTIOCPKT                          = 0x5470\n\tTIOCSBRK                         = 0x5427\n\tTIOCSCTTY                        = 0x5480\n\tTIOCSERCONFIG                    = 0x5488\n\tTIOCSERGETLSR                    = 0x548e\n\tTIOCSERGETMULTI                  = 0x548f\n\tTIOCSERGSTRUCT                   = 0x548d\n\tTIOCSERGWILD                     = 0x5489\n\tTIOCSERSETMULTI                  = 0x5490\n\tTIOCSERSWILD                     = 0x548a\n\tTIOCSER_TEMT                     = 0x1\n\tTIOCSETD                         = 0x7401\n\tTIOCSETN                         = 0x740a\n\tTIOCSETP                         = 0x7409\n\tTIOCSIG                          = 0x80045436\n\tTIOCSISO7816                     = 0xc0285443\n\tTIOCSLCKTRMIOS                   = 0x548c\n\tTIOCSLTC                         = 0x7475\n\tTIOCSPGRP                        = 0x80047476\n\tTIOCSPTLCK                       = 0x80045431\n\tTIOCSRS485                       = 0xc020542f\n\tTIOCSSERIAL                      = 0x5485\n\tTIOCSSOFTCAR                     = 0x5482\n\tTIOCSTI                          = 0x5472\n\tTIOCSWINSZ                       = 0x80087467\n\tTIOCVHANGUP                      = 0x5437\n\tTOSTOP                           = 0x8000\n\tTUNATTACHFILTER                  = 0x801054d5\n\tTUNDETACHFILTER                  = 0x801054d6\n\tTUNGETDEVNETNS                   = 0x200054e3\n\tTUNGETFEATURES                   = 0x400454cf\n\tTUNGETFILTER                     = 0x401054db\n\tTUNGETIFF                        = 0x400454d2\n\tTUNGETSNDBUF                     = 0x400454d3\n\tTUNGETVNETBE                     = 0x400454df\n\tTUNGETVNETHDRSZ                  = 0x400454d7\n\tTUNGETVNETLE                     = 0x400454dd\n\tTUNSETCARRIER                    = 0x800454e2\n\tTUNSETDEBUG                      = 0x800454c9\n\tTUNSETFILTEREBPF                 = 0x400454e1\n\tTUNSETGROUP                      = 0x800454ce\n\tTUNSETIFF                        = 0x800454ca\n\tTUNSETIFINDEX                    = 0x800454da\n\tTUNSETLINK                       = 0x800454cd\n\tTUNSETNOCSUM                     = 0x800454c8\n\tTUNSETOFFLOAD                    = 0x800454d0\n\tTUNSETOWNER                      = 0x800454cc\n\tTUNSETPERSIST                    = 0x800454cb\n\tTUNSETQUEUE                      = 0x800454d9\n\tTUNSETSNDBUF                     = 0x800454d4\n\tTUNSETSTEERINGEBPF               = 0x400454e0\n\tTUNSETTXFILTER                   = 0x800454d1\n\tTUNSETVNETBE                     = 0x800454de\n\tTUNSETVNETHDRSZ                  = 0x800454d8\n\tTUNSETVNETLE                     = 0x800454dc\n\tUBI_IOCATT                       = 0x80186f40\n\tUBI_IOCDET                       = 0x80046f41\n\tUBI_IOCEBCH                      = 0x80044f02\n\tUBI_IOCEBER                      = 0x80044f01\n\tUBI_IOCEBISMAP                   = 0x40044f05\n\tUBI_IOCEBMAP                     = 0x80084f03\n\tUBI_IOCEBUNMAP                   = 0x80044f04\n\tUBI_IOCMKVOL                     = 0x80986f00\n\tUBI_IOCRMVOL                     = 0x80046f01\n\tUBI_IOCRNVOL                     = 0x91106f03\n\tUBI_IOCRPEB                      = 0x80046f04\n\tUBI_IOCRSVOL                     = 0x800c6f02\n\tUBI_IOCSETVOLPROP                = 0x80104f06\n\tUBI_IOCSPEB                      = 0x80046f05\n\tUBI_IOCVOLCRBLK                  = 0x80804f07\n\tUBI_IOCVOLRMBLK                  = 0x20004f08\n\tUBI_IOCVOLUP                     = 0x80084f00\n\tVDISCARD                         = 0xd\n\tVEOF                             = 0x10\n\tVEOL                             = 0x11\n\tVEOL2                            = 0x6\n\tVMIN                             = 0x4\n\tVREPRINT                         = 0xc\n\tVSTART                           = 0x8\n\tVSTOP                            = 0x9\n\tVSUSP                            = 0xa\n\tVSWTC                            = 0x7\n\tVSWTCH                           = 0x7\n\tVT1                              = 0x4000\n\tVTDLY                            = 0x4000\n\tVTIME                            = 0x5\n\tVWERASE                          = 0xe\n\tWDIOC_GETBOOTSTATUS              = 0x40045702\n\tWDIOC_GETPRETIMEOUT              = 0x40045709\n\tWDIOC_GETSTATUS                  = 0x40045701\n\tWDIOC_GETSUPPORT                 = 0x40285700\n\tWDIOC_GETTEMP                    = 0x40045703\n\tWDIOC_GETTIMELEFT                = 0x4004570a\n\tWDIOC_GETTIMEOUT                 = 0x40045707\n\tWDIOC_KEEPALIVE                  = 0x40045705\n\tWDIOC_SETOPTIONS                 = 0x40045704\n\tWORDSIZE                         = 0x40\n\tXCASE                            = 0x4\n\tXTABS                            = 0x1800\n\t_HIDIOCGRAWNAME                  = 0x40804804\n\t_HIDIOCGRAWPHYS                  = 0x40404805\n\t_HIDIOCGRAWUNIQ                  = 0x40404808\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x7d)\n\tEADDRNOTAVAIL   = syscall.Errno(0x7e)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x7c)\n\tEALREADY        = syscall.Errno(0x95)\n\tEBADE           = syscall.Errno(0x32)\n\tEBADFD          = syscall.Errno(0x51)\n\tEBADMSG         = syscall.Errno(0x4d)\n\tEBADR           = syscall.Errno(0x33)\n\tEBADRQC         = syscall.Errno(0x36)\n\tEBADSLT         = syscall.Errno(0x37)\n\tEBFONT          = syscall.Errno(0x3b)\n\tECANCELED       = syscall.Errno(0x9e)\n\tECHRNG          = syscall.Errno(0x25)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x82)\n\tECONNREFUSED    = syscall.Errno(0x92)\n\tECONNRESET      = syscall.Errno(0x83)\n\tEDEADLK         = syscall.Errno(0x2d)\n\tEDEADLOCK       = syscall.Errno(0x38)\n\tEDESTADDRREQ    = syscall.Errno(0x60)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x46d)\n\tEHOSTDOWN       = syscall.Errno(0x93)\n\tEHOSTUNREACH    = syscall.Errno(0x94)\n\tEHWPOISON       = syscall.Errno(0xa8)\n\tEIDRM           = syscall.Errno(0x24)\n\tEILSEQ          = syscall.Errno(0x58)\n\tEINIT           = syscall.Errno(0x8d)\n\tEINPROGRESS     = syscall.Errno(0x96)\n\tEISCONN         = syscall.Errno(0x85)\n\tEISNAM          = syscall.Errno(0x8b)\n\tEKEYEXPIRED     = syscall.Errno(0xa2)\n\tEKEYREJECTED    = syscall.Errno(0xa4)\n\tEKEYREVOKED     = syscall.Errno(0xa3)\n\tEL2HLT          = syscall.Errno(0x2c)\n\tEL2NSYNC        = syscall.Errno(0x26)\n\tEL3HLT          = syscall.Errno(0x27)\n\tEL3RST          = syscall.Errno(0x28)\n\tELIBACC         = syscall.Errno(0x53)\n\tELIBBAD         = syscall.Errno(0x54)\n\tELIBEXEC        = syscall.Errno(0x57)\n\tELIBMAX         = syscall.Errno(0x56)\n\tELIBSCN         = syscall.Errno(0x55)\n\tELNRNG          = syscall.Errno(0x29)\n\tELOOP           = syscall.Errno(0x5a)\n\tEMEDIUMTYPE     = syscall.Errno(0xa0)\n\tEMSGSIZE        = syscall.Errno(0x61)\n\tEMULTIHOP       = syscall.Errno(0x4a)\n\tENAMETOOLONG    = syscall.Errno(0x4e)\n\tENAVAIL         = syscall.Errno(0x8a)\n\tENETDOWN        = syscall.Errno(0x7f)\n\tENETRESET       = syscall.Errno(0x81)\n\tENETUNREACH     = syscall.Errno(0x80)\n\tENOANO          = syscall.Errno(0x35)\n\tENOBUFS         = syscall.Errno(0x84)\n\tENOCSI          = syscall.Errno(0x2b)\n\tENODATA         = syscall.Errno(0x3d)\n\tENOKEY          = syscall.Errno(0xa1)\n\tENOLCK          = syscall.Errno(0x2e)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x9f)\n\tENOMSG          = syscall.Errno(0x23)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x63)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x59)\n\tENOTCONN        = syscall.Errno(0x86)\n\tENOTEMPTY       = syscall.Errno(0x5d)\n\tENOTNAM         = syscall.Errno(0x89)\n\tENOTRECOVERABLE = syscall.Errno(0xa6)\n\tENOTSOCK        = syscall.Errno(0x5f)\n\tENOTSUP         = syscall.Errno(0x7a)\n\tENOTUNIQ        = syscall.Errno(0x50)\n\tEOPNOTSUPP      = syscall.Errno(0x7a)\n\tEOVERFLOW       = syscall.Errno(0x4f)\n\tEOWNERDEAD      = syscall.Errno(0xa5)\n\tEPFNOSUPPORT    = syscall.Errno(0x7b)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x78)\n\tEPROTOTYPE      = syscall.Errno(0x62)\n\tEREMCHG         = syscall.Errno(0x52)\n\tEREMDEV         = syscall.Errno(0x8e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x8c)\n\tERESTART        = syscall.Errno(0x5b)\n\tERFKILL         = syscall.Errno(0xa7)\n\tESHUTDOWN       = syscall.Errno(0x8f)\n\tESOCKTNOSUPPORT = syscall.Errno(0x79)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x97)\n\tESTRPIPE        = syscall.Errno(0x5c)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x91)\n\tETOOMANYREFS    = syscall.Errno(0x90)\n\tEUCLEAN         = syscall.Errno(0x87)\n\tEUNATCH         = syscall.Errno(0x2a)\n\tEUSERS          = syscall.Errno(0x5e)\n\tEXFULL          = syscall.Errno(0x34)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x12)\n\tSIGCLD    = syscall.Signal(0x12)\n\tSIGCONT   = syscall.Signal(0x19)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGIO     = syscall.Signal(0x16)\n\tSIGPOLL   = syscall.Signal(0x16)\n\tSIGPROF   = syscall.Signal(0x1d)\n\tSIGPWR    = syscall.Signal(0x13)\n\tSIGSTOP   = syscall.Signal(0x17)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTSTP   = syscall.Signal(0x18)\n\tSIGTTIN   = syscall.Signal(0x1a)\n\tSIGTTOU   = syscall.Signal(0x1b)\n\tSIGURG    = syscall.Signal(0x15)\n\tSIGUSR1   = syscall.Signal(0x10)\n\tSIGUSR2   = syscall.Signal(0x11)\n\tSIGVTALRM = syscall.Signal(0x1c)\n\tSIGWINCH  = syscall.Signal(0x14)\n\tSIGXCPU   = syscall.Signal(0x1e)\n\tSIGXFSZ   = syscall.Signal(0x1f)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"ENOMSG\", \"no message of desired type\"},\n\t{36, \"EIDRM\", \"identifier removed\"},\n\t{37, \"ECHRNG\", \"channel number out of range\"},\n\t{38, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{39, \"EL3HLT\", \"level 3 halted\"},\n\t{40, \"EL3RST\", \"level 3 reset\"},\n\t{41, \"ELNRNG\", \"link number out of range\"},\n\t{42, \"EUNATCH\", \"protocol driver not attached\"},\n\t{43, \"ENOCSI\", \"no CSI structure available\"},\n\t{44, \"EL2HLT\", \"level 2 halted\"},\n\t{45, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{46, \"ENOLCK\", \"no locks available\"},\n\t{50, \"EBADE\", \"invalid exchange\"},\n\t{51, \"EBADR\", \"invalid request descriptor\"},\n\t{52, \"EXFULL\", \"exchange full\"},\n\t{53, \"ENOANO\", \"no anode\"},\n\t{54, \"EBADRQC\", \"invalid request code\"},\n\t{55, \"EBADSLT\", \"invalid slot\"},\n\t{56, \"EDEADLOCK\", \"file locking deadlock error\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EMULTIHOP\", \"multihop attempted\"},\n\t{77, \"EBADMSG\", \"bad message\"},\n\t{78, \"ENAMETOOLONG\", \"file name too long\"},\n\t{79, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{80, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{81, \"EBADFD\", \"file descriptor in bad state\"},\n\t{82, \"EREMCHG\", \"remote address changed\"},\n\t{83, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{84, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{85, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{86, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{87, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{88, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{89, \"ENOSYS\", \"function not implemented\"},\n\t{90, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{91, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{92, \"ESTRPIPE\", \"streams pipe error\"},\n\t{93, \"ENOTEMPTY\", \"directory not empty\"},\n\t{94, \"EUSERS\", \"too many users\"},\n\t{95, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{96, \"EDESTADDRREQ\", \"destination address required\"},\n\t{97, \"EMSGSIZE\", \"message too long\"},\n\t{98, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{99, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{120, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{121, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{122, \"ENOTSUP\", \"operation not supported\"},\n\t{123, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{124, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{125, \"EADDRINUSE\", \"address already in use\"},\n\t{126, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{127, \"ENETDOWN\", \"network is down\"},\n\t{128, \"ENETUNREACH\", \"network is unreachable\"},\n\t{129, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{130, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{131, \"ECONNRESET\", \"connection reset by peer\"},\n\t{132, \"ENOBUFS\", \"no buffer space available\"},\n\t{133, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{134, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{135, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{137, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{138, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{139, \"EISNAM\", \"is a named type file\"},\n\t{140, \"EREMOTEIO\", \"remote I/O error\"},\n\t{141, \"EINIT\", \"unknown error 141\"},\n\t{142, \"EREMDEV\", \"unknown error 142\"},\n\t{143, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{144, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{145, \"ETIMEDOUT\", \"connection timed out\"},\n\t{146, \"ECONNREFUSED\", \"connection refused\"},\n\t{147, \"EHOSTDOWN\", \"host is down\"},\n\t{148, \"EHOSTUNREACH\", \"no route to host\"},\n\t{149, \"EALREADY\", \"operation already in progress\"},\n\t{150, \"EINPROGRESS\", \"operation now in progress\"},\n\t{151, \"ESTALE\", \"stale file handle\"},\n\t{158, \"ECANCELED\", \"operation canceled\"},\n\t{159, \"ENOMEDIUM\", \"no medium found\"},\n\t{160, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{161, \"ENOKEY\", \"required key not available\"},\n\t{162, \"EKEYEXPIRED\", \"key has expired\"},\n\t{163, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{164, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{165, \"EOWNERDEAD\", \"owner died\"},\n\t{166, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{167, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{168, \"EHWPOISON\", \"memory page has hardware error\"},\n\t{1133, \"EDQUOT\", \"disk quota exceeded\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGUSR1\", \"user defined signal 1\"},\n\t{17, \"SIGUSR2\", \"user defined signal 2\"},\n\t{18, \"SIGCHLD\", \"child exited\"},\n\t{19, \"SIGPWR\", \"power failure\"},\n\t{20, \"SIGWINCH\", \"window changed\"},\n\t{21, \"SIGURG\", \"urgent I/O condition\"},\n\t{22, \"SIGIO\", \"I/O possible\"},\n\t{23, \"SIGSTOP\", \"stopped (signal)\"},\n\t{24, \"SIGTSTP\", \"stopped\"},\n\t{25, \"SIGCONT\", \"continued\"},\n\t{26, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{27, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{28, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{29, \"SIGPROF\", \"profiling timer expired\"},\n\t{30, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{31, \"SIGXFSZ\", \"file size limit exceeded\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/mips64le/include\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mips64le && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/mips64le/include _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tB1000000                         = 0x1008\n\tB115200                          = 0x1002\n\tB1152000                         = 0x1009\n\tB1500000                         = 0x100a\n\tB2000000                         = 0x100b\n\tB230400                          = 0x1003\n\tB2500000                         = 0x100c\n\tB3000000                         = 0x100d\n\tB3500000                         = 0x100e\n\tB4000000                         = 0x100f\n\tB460800                          = 0x1004\n\tB500000                          = 0x1005\n\tB57600                           = 0x1001\n\tB576000                          = 0x1006\n\tB921600                          = 0x1007\n\tBLKALIGNOFF                      = 0x2000127a\n\tBLKBSZGET                        = 0x40081270\n\tBLKBSZSET                        = 0x80081271\n\tBLKDISCARD                       = 0x20001277\n\tBLKDISCARDZEROES                 = 0x2000127c\n\tBLKFLSBUF                        = 0x20001261\n\tBLKFRAGET                        = 0x20001265\n\tBLKFRASET                        = 0x20001264\n\tBLKGETDISKSEQ                    = 0x40081280\n\tBLKGETSIZE                       = 0x20001260\n\tBLKGETSIZE64                     = 0x40081272\n\tBLKIOMIN                         = 0x20001278\n\tBLKIOOPT                         = 0x20001279\n\tBLKPBSZGET                       = 0x2000127b\n\tBLKRAGET                         = 0x20001263\n\tBLKRASET                         = 0x20001262\n\tBLKROGET                         = 0x2000125e\n\tBLKROSET                         = 0x2000125d\n\tBLKROTATIONAL                    = 0x2000127e\n\tBLKRRPART                        = 0x2000125f\n\tBLKSECDISCARD                    = 0x2000127d\n\tBLKSECTGET                       = 0x20001267\n\tBLKSECTSET                       = 0x20001266\n\tBLKSSZGET                        = 0x20001268\n\tBLKZEROOUT                       = 0x2000127f\n\tBOTHER                           = 0x1000\n\tBS1                              = 0x2000\n\tBSDLY                            = 0x2000\n\tCBAUD                            = 0x100f\n\tCBAUDEX                          = 0x1000\n\tCIBAUD                           = 0x100f0000\n\tCLOCAL                           = 0x800\n\tCR1                              = 0x200\n\tCR2                              = 0x400\n\tCR3                              = 0x600\n\tCRDLY                            = 0x600\n\tCREAD                            = 0x80\n\tCS6                              = 0x10\n\tCS7                              = 0x20\n\tCS8                              = 0x30\n\tCSIZE                            = 0x30\n\tCSTOPB                           = 0x40\n\tECCGETLAYOUT                     = 0x41484d11\n\tECCGETSTATS                      = 0x40104d12\n\tECHOCTL                          = 0x200\n\tECHOE                            = 0x10\n\tECHOK                            = 0x20\n\tECHOKE                           = 0x800\n\tECHONL                           = 0x40\n\tECHOPRT                          = 0x400\n\tEFD_CLOEXEC                      = 0x80000\n\tEFD_NONBLOCK                     = 0x80\n\tEPIOCGPARAMS                     = 0x40088a02\n\tEPIOCSPARAMS                     = 0x80088a01\n\tEPOLL_CLOEXEC                    = 0x80000\n\tEXTPROC                          = 0x10000\n\tFF1                              = 0x8000\n\tFFDLY                            = 0x8000\n\tFICLONE                          = 0x80049409\n\tFICLONERANGE                     = 0x8020940d\n\tFLUSHO                           = 0x2000\n\tFS_IOC_ENABLE_VERITY             = 0x80806685\n\tFS_IOC_GETFLAGS                  = 0x40086601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x4010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x800c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x80106614\n\tFS_IOC_SETFLAGS                  = 0x80086602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x400c6613\n\tF_GETLK                          = 0xe\n\tF_GETLK64                        = 0xe\n\tF_GETOWN                         = 0x17\n\tF_RDLCK                          = 0x0\n\tF_SETLK                          = 0x6\n\tF_SETLK64                        = 0x6\n\tF_SETLKW                         = 0x7\n\tF_SETLKW64                       = 0x7\n\tF_SETOWN                         = 0x18\n\tF_UNLCK                          = 0x2\n\tF_WRLCK                          = 0x1\n\tHIDIOCGRAWINFO                   = 0x40084803\n\tHIDIOCGRDESC                     = 0x50044802\n\tHIDIOCGRDESCSIZE                 = 0x40044801\n\tHIDIOCREVOKE                     = 0x8004480d\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x100\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x80\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9\n\tIPV6_FLOWINFO_MASK               = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK              = 0xffff0f00\n\tISIG                             = 0x1\n\tIUCLC                            = 0x200\n\tIXOFF                            = 0x1000\n\tIXON                             = 0x400\n\tMAP_ANON                         = 0x800\n\tMAP_ANONYMOUS                    = 0x800\n\tMAP_DENYWRITE                    = 0x2000\n\tMAP_EXECUTABLE                   = 0x4000\n\tMAP_GROWSDOWN                    = 0x1000\n\tMAP_HUGETLB                      = 0x80000\n\tMAP_LOCKED                       = 0x8000\n\tMAP_NONBLOCK                     = 0x20000\n\tMAP_NORESERVE                    = 0x400\n\tMAP_POPULATE                     = 0x10000\n\tMAP_RENAME                       = 0x800\n\tMAP_STACK                        = 0x40000\n\tMCL_CURRENT                      = 0x1\n\tMCL_FUTURE                       = 0x2\n\tMCL_ONFAULT                      = 0x4\n\tMEMERASE                         = 0x80084d02\n\tMEMERASE64                       = 0x80104d14\n\tMEMGETBADBLOCK                   = 0x80084d0b\n\tMEMGETINFO                       = 0x40204d01\n\tMEMGETOOBSEL                     = 0x40c84d0a\n\tMEMGETREGIONCOUNT                = 0x40044d07\n\tMEMISLOCKED                      = 0x40084d17\n\tMEMLOCK                          = 0x80084d05\n\tMEMREAD                          = 0xc0404d1a\n\tMEMREADOOB                       = 0xc0104d04\n\tMEMSETBADBLOCK                   = 0x80084d0c\n\tMEMUNLOCK                        = 0x80084d06\n\tMEMWRITEOOB                      = 0xc0104d03\n\tMTDFILEMODE                      = 0x20004d13\n\tNFDBITS                          = 0x40\n\tNLDLY                            = 0x100\n\tNOFLSH                           = 0x80\n\tNS_GET_MNTNS_ID                  = 0x4008b705\n\tNS_GET_NSTYPE                    = 0x2000b703\n\tNS_GET_OWNER_UID                 = 0x2000b704\n\tNS_GET_PARENT                    = 0x2000b702\n\tNS_GET_PID_FROM_PIDNS            = 0x4004b706\n\tNS_GET_PID_IN_PIDNS              = 0x4004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x4004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x4004b709\n\tNS_GET_USERNS                    = 0x2000b701\n\tOLCUC                            = 0x2\n\tONLCR                            = 0x4\n\tOTPERASE                         = 0x800c4d19\n\tOTPGETREGIONCOUNT                = 0x80044d0e\n\tOTPGETREGIONINFO                 = 0x800c4d0f\n\tOTPLOCK                          = 0x400c4d10\n\tOTPSELECT                        = 0x40044d0d\n\tO_APPEND                         = 0x8\n\tO_ASYNC                          = 0x1000\n\tO_CLOEXEC                        = 0x80000\n\tO_CREAT                          = 0x100\n\tO_DIRECT                         = 0x8000\n\tO_DIRECTORY                      = 0x10000\n\tO_DSYNC                          = 0x10\n\tO_EXCL                           = 0x400\n\tO_FSYNC                          = 0x4010\n\tO_LARGEFILE                      = 0x0\n\tO_NDELAY                         = 0x80\n\tO_NOATIME                        = 0x40000\n\tO_NOCTTY                         = 0x800\n\tO_NOFOLLOW                       = 0x20000\n\tO_NONBLOCK                       = 0x80\n\tO_PATH                           = 0x200000\n\tO_RSYNC                          = 0x4010\n\tO_SYNC                           = 0x4010\n\tO_TMPFILE                        = 0x410000\n\tO_TRUNC                          = 0x200\n\tPARENB                           = 0x100\n\tPARODD                           = 0x200\n\tPENDIN                           = 0x4000\n\tPERF_EVENT_IOC_DISABLE           = 0x20002401\n\tPERF_EVENT_IOC_ENABLE            = 0x20002400\n\tPERF_EVENT_IOC_ID                = 0x40082407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x80042409\n\tPERF_EVENT_IOC_PERIOD            = 0x80082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc008240a\n\tPERF_EVENT_IOC_REFRESH           = 0x20002402\n\tPERF_EVENT_IOC_RESET             = 0x20002403\n\tPERF_EVENT_IOC_SET_BPF           = 0x80042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x80082406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x20002405\n\tPPPIOCATTACH                     = 0x8004743d\n\tPPPIOCATTCHAN                    = 0x80047438\n\tPPPIOCBRIDGECHAN                 = 0x80047435\n\tPPPIOCCONNECT                    = 0x8004743a\n\tPPPIOCDETACH                     = 0x8004743c\n\tPPPIOCDISCONN                    = 0x20007439\n\tPPPIOCGASYNCMAP                  = 0x40047458\n\tPPPIOCGCHAN                      = 0x40047437\n\tPPPIOCGDEBUG                     = 0x40047441\n\tPPPIOCGFLAGS                     = 0x4004745a\n\tPPPIOCGIDLE                      = 0x4010743f\n\tPPPIOCGIDLE32                    = 0x4008743f\n\tPPPIOCGIDLE64                    = 0x4010743f\n\tPPPIOCGL2TPSTATS                 = 0x40487436\n\tPPPIOCGMRU                       = 0x40047453\n\tPPPIOCGRASYNCMAP                 = 0x40047455\n\tPPPIOCGUNIT                      = 0x40047456\n\tPPPIOCGXASYNCMAP                 = 0x40207450\n\tPPPIOCSACTIVE                    = 0x80107446\n\tPPPIOCSASYNCMAP                  = 0x80047457\n\tPPPIOCSCOMPRESS                  = 0x8010744d\n\tPPPIOCSDEBUG                     = 0x80047440\n\tPPPIOCSFLAGS                     = 0x80047459\n\tPPPIOCSMAXCID                    = 0x80047451\n\tPPPIOCSMRRU                      = 0x8004743b\n\tPPPIOCSMRU                       = 0x80047452\n\tPPPIOCSNPMODE                    = 0x8008744b\n\tPPPIOCSPASS                      = 0x80107447\n\tPPPIOCSRASYNCMAP                 = 0x80047454\n\tPPPIOCSXASYNCMAP                 = 0x8020744f\n\tPPPIOCUNBRIDGECHAN               = 0x20007434\n\tPPPIOCXFERUNIT                   = 0x2000744e\n\tPR_SET_PTRACER_ANY               = 0xffffffffffffffff\n\tPTP_CLOCK_GETCAPS                = 0x40503d01\n\tPTP_CLOCK_GETCAPS2               = 0x40503d0a\n\tPTP_ENABLE_PPS                   = 0x80043d04\n\tPTP_ENABLE_PPS2                  = 0x80043d0d\n\tPTP_EXTTS_REQUEST                = 0x80103d02\n\tPTP_EXTTS_REQUEST2               = 0x80103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x20003d13\n\tPTP_MASK_EN_SINGLE               = 0x80043d14\n\tPTP_PEROUT_REQUEST               = 0x80383d03\n\tPTP_PEROUT_REQUEST2              = 0x80383d0c\n\tPTP_PIN_SETFUNC                  = 0x80603d07\n\tPTP_PIN_SETFUNC2                 = 0x80603d10\n\tPTP_SYS_OFFSET                   = 0x83403d05\n\tPTP_SYS_OFFSET2                  = 0x83403d0e\n\tPTRACE_GETFPREGS                 = 0xe\n\tPTRACE_GET_THREAD_AREA           = 0x19\n\tPTRACE_GET_THREAD_AREA_3264      = 0xc4\n\tPTRACE_GET_WATCH_REGS            = 0xd0\n\tPTRACE_OLDSETOPTIONS             = 0x15\n\tPTRACE_PEEKDATA_3264             = 0xc1\n\tPTRACE_PEEKTEXT_3264             = 0xc0\n\tPTRACE_POKEDATA_3264             = 0xc3\n\tPTRACE_POKETEXT_3264             = 0xc2\n\tPTRACE_SETFPREGS                 = 0xf\n\tPTRACE_SET_THREAD_AREA           = 0x1a\n\tPTRACE_SET_WATCH_REGS            = 0xd1\n\tRLIMIT_AS                        = 0x6\n\tRLIMIT_MEMLOCK                   = 0x9\n\tRLIMIT_NOFILE                    = 0x5\n\tRLIMIT_NPROC                     = 0x8\n\tRLIMIT_RSS                       = 0x7\n\tRNDADDENTROPY                    = 0x80085203\n\tRNDADDTOENTCNT                   = 0x80045201\n\tRNDCLEARPOOL                     = 0x20005206\n\tRNDGETENTCNT                     = 0x40045200\n\tRNDGETPOOL                       = 0x40085202\n\tRNDRESEEDCRNG                    = 0x20005207\n\tRNDZAPENTCNT                     = 0x20005204\n\tRTC_AIE_OFF                      = 0x20007002\n\tRTC_AIE_ON                       = 0x20007001\n\tRTC_ALM_READ                     = 0x40247008\n\tRTC_ALM_SET                      = 0x80247007\n\tRTC_EPOCH_READ                   = 0x4008700d\n\tRTC_EPOCH_SET                    = 0x8008700e\n\tRTC_IRQP_READ                    = 0x4008700b\n\tRTC_IRQP_SET                     = 0x8008700c\n\tRTC_PARAM_GET                    = 0x80187013\n\tRTC_PARAM_SET                    = 0x80187014\n\tRTC_PIE_OFF                      = 0x20007006\n\tRTC_PIE_ON                       = 0x20007005\n\tRTC_PLL_GET                      = 0x40207011\n\tRTC_PLL_SET                      = 0x80207012\n\tRTC_RD_TIME                      = 0x40247009\n\tRTC_SET_TIME                     = 0x8024700a\n\tRTC_UIE_OFF                      = 0x20007004\n\tRTC_UIE_ON                       = 0x20007003\n\tRTC_VL_CLR                       = 0x20007014\n\tRTC_VL_READ                      = 0x40047013\n\tRTC_WIE_OFF                      = 0x20007010\n\tRTC_WIE_ON                       = 0x2000700f\n\tRTC_WKALM_RD                     = 0x40287010\n\tRTC_WKALM_SET                    = 0x8028700f\n\tSCM_DEVMEM_DMABUF                = 0x4f\n\tSCM_DEVMEM_LINEAR                = 0x4e\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TS_OPT_ID                    = 0x51\n\tSCM_TXTIME                       = 0x3d\n\tSCM_WIFI_STATUS                  = 0x29\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x80082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x80082104\n\tSFD_CLOEXEC                      = 0x80000\n\tSFD_NONBLOCK                     = 0x80\n\tSIOCATMARK                       = 0x40047307\n\tSIOCGPGRP                        = 0x40047309\n\tSIOCGSTAMPNS_NEW                 = 0x40108907\n\tSIOCGSTAMP_NEW                   = 0x40108906\n\tSIOCINQ                          = 0x467f\n\tSIOCOUTQ                         = 0x7472\n\tSIOCSPGRP                        = 0x80047308\n\tSOCK_CLOEXEC                     = 0x80000\n\tSOCK_DGRAM                       = 0x1\n\tSOCK_NONBLOCK                    = 0x80\n\tSOCK_STREAM                      = 0x2\n\tSOL_SOCKET                       = 0xffff\n\tSO_ACCEPTCONN                    = 0x1009\n\tSO_ATTACH_BPF                    = 0x32\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x34\n\tSO_BINDTODEVICE                  = 0x19\n\tSO_BINDTOIFINDEX                 = 0x3e\n\tSO_BPF_EXTENSIONS                = 0x30\n\tSO_BROADCAST                     = 0x20\n\tSO_BSDCOMPAT                     = 0xe\n\tSO_BUF_LOCK                      = 0x48\n\tSO_BUSY_POLL                     = 0x2e\n\tSO_BUSY_POLL_BUDGET              = 0x46\n\tSO_CNX_ADVICE                    = 0x35\n\tSO_COOKIE                        = 0x39\n\tSO_DETACH_REUSEPORT_BPF          = 0x44\n\tSO_DEVMEM_DMABUF                 = 0x4f\n\tSO_DEVMEM_DONTNEED               = 0x50\n\tSO_DEVMEM_LINEAR                 = 0x4e\n\tSO_DOMAIN                        = 0x1029\n\tSO_DONTROUTE                     = 0x10\n\tSO_ERROR                         = 0x1007\n\tSO_INCOMING_CPU                  = 0x31\n\tSO_INCOMING_NAPI_ID              = 0x38\n\tSO_KEEPALIVE                     = 0x8\n\tSO_LINGER                        = 0x80\n\tSO_LOCK_FILTER                   = 0x2c\n\tSO_MARK                          = 0x24\n\tSO_MAX_PACING_RATE               = 0x2f\n\tSO_MEMINFO                       = 0x37\n\tSO_NETNS_COOKIE                  = 0x47\n\tSO_NOFCS                         = 0x2b\n\tSO_OOBINLINE                     = 0x100\n\tSO_PASSCRED                      = 0x11\n\tSO_PASSPIDFD                     = 0x4c\n\tSO_PASSSEC                       = 0x22\n\tSO_PEEK_OFF                      = 0x2a\n\tSO_PEERCRED                      = 0x12\n\tSO_PEERGROUPS                    = 0x3b\n\tSO_PEERPIDFD                     = 0x4d\n\tSO_PEERSEC                       = 0x1e\n\tSO_PREFER_BUSY_POLL              = 0x45\n\tSO_PROTOCOL                      = 0x1028\n\tSO_RCVBUF                        = 0x1002\n\tSO_RCVBUFFORCE                   = 0x21\n\tSO_RCVLOWAT                      = 0x1004\n\tSO_RCVMARK                       = 0x4b\n\tSO_RCVTIMEO                      = 0x1006\n\tSO_RCVTIMEO_NEW                  = 0x42\n\tSO_RCVTIMEO_OLD                  = 0x1006\n\tSO_RESERVE_MEM                   = 0x49\n\tSO_REUSEADDR                     = 0x4\n\tSO_REUSEPORT                     = 0x200\n\tSO_RXQ_OVFL                      = 0x28\n\tSO_SECURITY_AUTHENTICATION       = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x17\n\tSO_SELECT_ERR_QUEUE              = 0x2d\n\tSO_SNDBUF                        = 0x1001\n\tSO_SNDBUFFORCE                   = 0x1f\n\tSO_SNDLOWAT                      = 0x1003\n\tSO_SNDTIMEO                      = 0x1005\n\tSO_SNDTIMEO_NEW                  = 0x43\n\tSO_SNDTIMEO_OLD                  = 0x1005\n\tSO_STYLE                         = 0x1008\n\tSO_TIMESTAMPING                  = 0x25\n\tSO_TIMESTAMPING_NEW              = 0x41\n\tSO_TIMESTAMPING_OLD              = 0x25\n\tSO_TIMESTAMPNS                   = 0x23\n\tSO_TIMESTAMPNS_NEW               = 0x40\n\tSO_TIMESTAMPNS_OLD               = 0x23\n\tSO_TIMESTAMP_NEW                 = 0x3f\n\tSO_TXREHASH                      = 0x4a\n\tSO_TXTIME                        = 0x3d\n\tSO_TYPE                          = 0x1008\n\tSO_WIFI_STATUS                   = 0x29\n\tSO_ZEROCOPY                      = 0x3c\n\tTAB1                             = 0x800\n\tTAB2                             = 0x1000\n\tTAB3                             = 0x1800\n\tTABDLY                           = 0x1800\n\tTCFLSH                           = 0x5407\n\tTCGETA                           = 0x5401\n\tTCGETS                           = 0x540d\n\tTCGETS2                          = 0x4030542a\n\tTCSAFLUSH                        = 0x5410\n\tTCSBRK                           = 0x5405\n\tTCSBRKP                          = 0x5486\n\tTCSETA                           = 0x5402\n\tTCSETAF                          = 0x5404\n\tTCSETAW                          = 0x5403\n\tTCSETS                           = 0x540e\n\tTCSETS2                          = 0x8030542b\n\tTCSETSF                          = 0x5410\n\tTCSETSF2                         = 0x8030542d\n\tTCSETSW                          = 0x540f\n\tTCSETSW2                         = 0x8030542c\n\tTCXONC                           = 0x5406\n\tTFD_CLOEXEC                      = 0x80000\n\tTFD_NONBLOCK                     = 0x80\n\tTIOCCBRK                         = 0x5428\n\tTIOCCONS                         = 0x80047478\n\tTIOCEXCL                         = 0x740d\n\tTIOCGDEV                         = 0x40045432\n\tTIOCGETD                         = 0x7400\n\tTIOCGETP                         = 0x7408\n\tTIOCGEXCL                        = 0x40045440\n\tTIOCGICOUNT                      = 0x5492\n\tTIOCGISO7816                     = 0x40285442\n\tTIOCGLCKTRMIOS                   = 0x548b\n\tTIOCGLTC                         = 0x7474\n\tTIOCGPGRP                        = 0x40047477\n\tTIOCGPKT                         = 0x40045438\n\tTIOCGPTLCK                       = 0x40045439\n\tTIOCGPTN                         = 0x40045430\n\tTIOCGPTPEER                      = 0x20005441\n\tTIOCGRS485                       = 0x4020542e\n\tTIOCGSERIAL                      = 0x5484\n\tTIOCGSID                         = 0x7416\n\tTIOCGSOFTCAR                     = 0x5481\n\tTIOCGWINSZ                       = 0x40087468\n\tTIOCINQ                          = 0x467f\n\tTIOCLINUX                        = 0x5483\n\tTIOCMBIC                         = 0x741c\n\tTIOCMBIS                         = 0x741b\n\tTIOCMGET                         = 0x741d\n\tTIOCMIWAIT                       = 0x5491\n\tTIOCMSET                         = 0x741a\n\tTIOCM_CAR                        = 0x100\n\tTIOCM_CD                         = 0x100\n\tTIOCM_CTS                        = 0x40\n\tTIOCM_DSR                        = 0x400\n\tTIOCM_RI                         = 0x200\n\tTIOCM_RNG                        = 0x200\n\tTIOCM_SR                         = 0x20\n\tTIOCM_ST                         = 0x10\n\tTIOCNOTTY                        = 0x5471\n\tTIOCNXCL                         = 0x740e\n\tTIOCOUTQ                         = 0x7472\n\tTIOCPKT                          = 0x5470\n\tTIOCSBRK                         = 0x5427\n\tTIOCSCTTY                        = 0x5480\n\tTIOCSERCONFIG                    = 0x5488\n\tTIOCSERGETLSR                    = 0x548e\n\tTIOCSERGETMULTI                  = 0x548f\n\tTIOCSERGSTRUCT                   = 0x548d\n\tTIOCSERGWILD                     = 0x5489\n\tTIOCSERSETMULTI                  = 0x5490\n\tTIOCSERSWILD                     = 0x548a\n\tTIOCSER_TEMT                     = 0x1\n\tTIOCSETD                         = 0x7401\n\tTIOCSETN                         = 0x740a\n\tTIOCSETP                         = 0x7409\n\tTIOCSIG                          = 0x80045436\n\tTIOCSISO7816                     = 0xc0285443\n\tTIOCSLCKTRMIOS                   = 0x548c\n\tTIOCSLTC                         = 0x7475\n\tTIOCSPGRP                        = 0x80047476\n\tTIOCSPTLCK                       = 0x80045431\n\tTIOCSRS485                       = 0xc020542f\n\tTIOCSSERIAL                      = 0x5485\n\tTIOCSSOFTCAR                     = 0x5482\n\tTIOCSTI                          = 0x5472\n\tTIOCSWINSZ                       = 0x80087467\n\tTIOCVHANGUP                      = 0x5437\n\tTOSTOP                           = 0x8000\n\tTUNATTACHFILTER                  = 0x801054d5\n\tTUNDETACHFILTER                  = 0x801054d6\n\tTUNGETDEVNETNS                   = 0x200054e3\n\tTUNGETFEATURES                   = 0x400454cf\n\tTUNGETFILTER                     = 0x401054db\n\tTUNGETIFF                        = 0x400454d2\n\tTUNGETSNDBUF                     = 0x400454d3\n\tTUNGETVNETBE                     = 0x400454df\n\tTUNGETVNETHDRSZ                  = 0x400454d7\n\tTUNGETVNETLE                     = 0x400454dd\n\tTUNSETCARRIER                    = 0x800454e2\n\tTUNSETDEBUG                      = 0x800454c9\n\tTUNSETFILTEREBPF                 = 0x400454e1\n\tTUNSETGROUP                      = 0x800454ce\n\tTUNSETIFF                        = 0x800454ca\n\tTUNSETIFINDEX                    = 0x800454da\n\tTUNSETLINK                       = 0x800454cd\n\tTUNSETNOCSUM                     = 0x800454c8\n\tTUNSETOFFLOAD                    = 0x800454d0\n\tTUNSETOWNER                      = 0x800454cc\n\tTUNSETPERSIST                    = 0x800454cb\n\tTUNSETQUEUE                      = 0x800454d9\n\tTUNSETSNDBUF                     = 0x800454d4\n\tTUNSETSTEERINGEBPF               = 0x400454e0\n\tTUNSETTXFILTER                   = 0x800454d1\n\tTUNSETVNETBE                     = 0x800454de\n\tTUNSETVNETHDRSZ                  = 0x800454d8\n\tTUNSETVNETLE                     = 0x800454dc\n\tUBI_IOCATT                       = 0x80186f40\n\tUBI_IOCDET                       = 0x80046f41\n\tUBI_IOCEBCH                      = 0x80044f02\n\tUBI_IOCEBER                      = 0x80044f01\n\tUBI_IOCEBISMAP                   = 0x40044f05\n\tUBI_IOCEBMAP                     = 0x80084f03\n\tUBI_IOCEBUNMAP                   = 0x80044f04\n\tUBI_IOCMKVOL                     = 0x80986f00\n\tUBI_IOCRMVOL                     = 0x80046f01\n\tUBI_IOCRNVOL                     = 0x91106f03\n\tUBI_IOCRPEB                      = 0x80046f04\n\tUBI_IOCRSVOL                     = 0x800c6f02\n\tUBI_IOCSETVOLPROP                = 0x80104f06\n\tUBI_IOCSPEB                      = 0x80046f05\n\tUBI_IOCVOLCRBLK                  = 0x80804f07\n\tUBI_IOCVOLRMBLK                  = 0x20004f08\n\tUBI_IOCVOLUP                     = 0x80084f00\n\tVDISCARD                         = 0xd\n\tVEOF                             = 0x10\n\tVEOL                             = 0x11\n\tVEOL2                            = 0x6\n\tVMIN                             = 0x4\n\tVREPRINT                         = 0xc\n\tVSTART                           = 0x8\n\tVSTOP                            = 0x9\n\tVSUSP                            = 0xa\n\tVSWTC                            = 0x7\n\tVSWTCH                           = 0x7\n\tVT1                              = 0x4000\n\tVTDLY                            = 0x4000\n\tVTIME                            = 0x5\n\tVWERASE                          = 0xe\n\tWDIOC_GETBOOTSTATUS              = 0x40045702\n\tWDIOC_GETPRETIMEOUT              = 0x40045709\n\tWDIOC_GETSTATUS                  = 0x40045701\n\tWDIOC_GETSUPPORT                 = 0x40285700\n\tWDIOC_GETTEMP                    = 0x40045703\n\tWDIOC_GETTIMELEFT                = 0x4004570a\n\tWDIOC_GETTIMEOUT                 = 0x40045707\n\tWDIOC_KEEPALIVE                  = 0x40045705\n\tWDIOC_SETOPTIONS                 = 0x40045704\n\tWORDSIZE                         = 0x40\n\tXCASE                            = 0x4\n\tXTABS                            = 0x1800\n\t_HIDIOCGRAWNAME                  = 0x40804804\n\t_HIDIOCGRAWPHYS                  = 0x40404805\n\t_HIDIOCGRAWUNIQ                  = 0x40404808\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x7d)\n\tEADDRNOTAVAIL   = syscall.Errno(0x7e)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x7c)\n\tEALREADY        = syscall.Errno(0x95)\n\tEBADE           = syscall.Errno(0x32)\n\tEBADFD          = syscall.Errno(0x51)\n\tEBADMSG         = syscall.Errno(0x4d)\n\tEBADR           = syscall.Errno(0x33)\n\tEBADRQC         = syscall.Errno(0x36)\n\tEBADSLT         = syscall.Errno(0x37)\n\tEBFONT          = syscall.Errno(0x3b)\n\tECANCELED       = syscall.Errno(0x9e)\n\tECHRNG          = syscall.Errno(0x25)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x82)\n\tECONNREFUSED    = syscall.Errno(0x92)\n\tECONNRESET      = syscall.Errno(0x83)\n\tEDEADLK         = syscall.Errno(0x2d)\n\tEDEADLOCK       = syscall.Errno(0x38)\n\tEDESTADDRREQ    = syscall.Errno(0x60)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x46d)\n\tEHOSTDOWN       = syscall.Errno(0x93)\n\tEHOSTUNREACH    = syscall.Errno(0x94)\n\tEHWPOISON       = syscall.Errno(0xa8)\n\tEIDRM           = syscall.Errno(0x24)\n\tEILSEQ          = syscall.Errno(0x58)\n\tEINIT           = syscall.Errno(0x8d)\n\tEINPROGRESS     = syscall.Errno(0x96)\n\tEISCONN         = syscall.Errno(0x85)\n\tEISNAM          = syscall.Errno(0x8b)\n\tEKEYEXPIRED     = syscall.Errno(0xa2)\n\tEKEYREJECTED    = syscall.Errno(0xa4)\n\tEKEYREVOKED     = syscall.Errno(0xa3)\n\tEL2HLT          = syscall.Errno(0x2c)\n\tEL2NSYNC        = syscall.Errno(0x26)\n\tEL3HLT          = syscall.Errno(0x27)\n\tEL3RST          = syscall.Errno(0x28)\n\tELIBACC         = syscall.Errno(0x53)\n\tELIBBAD         = syscall.Errno(0x54)\n\tELIBEXEC        = syscall.Errno(0x57)\n\tELIBMAX         = syscall.Errno(0x56)\n\tELIBSCN         = syscall.Errno(0x55)\n\tELNRNG          = syscall.Errno(0x29)\n\tELOOP           = syscall.Errno(0x5a)\n\tEMEDIUMTYPE     = syscall.Errno(0xa0)\n\tEMSGSIZE        = syscall.Errno(0x61)\n\tEMULTIHOP       = syscall.Errno(0x4a)\n\tENAMETOOLONG    = syscall.Errno(0x4e)\n\tENAVAIL         = syscall.Errno(0x8a)\n\tENETDOWN        = syscall.Errno(0x7f)\n\tENETRESET       = syscall.Errno(0x81)\n\tENETUNREACH     = syscall.Errno(0x80)\n\tENOANO          = syscall.Errno(0x35)\n\tENOBUFS         = syscall.Errno(0x84)\n\tENOCSI          = syscall.Errno(0x2b)\n\tENODATA         = syscall.Errno(0x3d)\n\tENOKEY          = syscall.Errno(0xa1)\n\tENOLCK          = syscall.Errno(0x2e)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x9f)\n\tENOMSG          = syscall.Errno(0x23)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x63)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x59)\n\tENOTCONN        = syscall.Errno(0x86)\n\tENOTEMPTY       = syscall.Errno(0x5d)\n\tENOTNAM         = syscall.Errno(0x89)\n\tENOTRECOVERABLE = syscall.Errno(0xa6)\n\tENOTSOCK        = syscall.Errno(0x5f)\n\tENOTSUP         = syscall.Errno(0x7a)\n\tENOTUNIQ        = syscall.Errno(0x50)\n\tEOPNOTSUPP      = syscall.Errno(0x7a)\n\tEOVERFLOW       = syscall.Errno(0x4f)\n\tEOWNERDEAD      = syscall.Errno(0xa5)\n\tEPFNOSUPPORT    = syscall.Errno(0x7b)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x78)\n\tEPROTOTYPE      = syscall.Errno(0x62)\n\tEREMCHG         = syscall.Errno(0x52)\n\tEREMDEV         = syscall.Errno(0x8e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x8c)\n\tERESTART        = syscall.Errno(0x5b)\n\tERFKILL         = syscall.Errno(0xa7)\n\tESHUTDOWN       = syscall.Errno(0x8f)\n\tESOCKTNOSUPPORT = syscall.Errno(0x79)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x97)\n\tESTRPIPE        = syscall.Errno(0x5c)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x91)\n\tETOOMANYREFS    = syscall.Errno(0x90)\n\tEUCLEAN         = syscall.Errno(0x87)\n\tEUNATCH         = syscall.Errno(0x2a)\n\tEUSERS          = syscall.Errno(0x5e)\n\tEXFULL          = syscall.Errno(0x34)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x12)\n\tSIGCLD    = syscall.Signal(0x12)\n\tSIGCONT   = syscall.Signal(0x19)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGIO     = syscall.Signal(0x16)\n\tSIGPOLL   = syscall.Signal(0x16)\n\tSIGPROF   = syscall.Signal(0x1d)\n\tSIGPWR    = syscall.Signal(0x13)\n\tSIGSTOP   = syscall.Signal(0x17)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTSTP   = syscall.Signal(0x18)\n\tSIGTTIN   = syscall.Signal(0x1a)\n\tSIGTTOU   = syscall.Signal(0x1b)\n\tSIGURG    = syscall.Signal(0x15)\n\tSIGUSR1   = syscall.Signal(0x10)\n\tSIGUSR2   = syscall.Signal(0x11)\n\tSIGVTALRM = syscall.Signal(0x1c)\n\tSIGWINCH  = syscall.Signal(0x14)\n\tSIGXCPU   = syscall.Signal(0x1e)\n\tSIGXFSZ   = syscall.Signal(0x1f)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"ENOMSG\", \"no message of desired type\"},\n\t{36, \"EIDRM\", \"identifier removed\"},\n\t{37, \"ECHRNG\", \"channel number out of range\"},\n\t{38, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{39, \"EL3HLT\", \"level 3 halted\"},\n\t{40, \"EL3RST\", \"level 3 reset\"},\n\t{41, \"ELNRNG\", \"link number out of range\"},\n\t{42, \"EUNATCH\", \"protocol driver not attached\"},\n\t{43, \"ENOCSI\", \"no CSI structure available\"},\n\t{44, \"EL2HLT\", \"level 2 halted\"},\n\t{45, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{46, \"ENOLCK\", \"no locks available\"},\n\t{50, \"EBADE\", \"invalid exchange\"},\n\t{51, \"EBADR\", \"invalid request descriptor\"},\n\t{52, \"EXFULL\", \"exchange full\"},\n\t{53, \"ENOANO\", \"no anode\"},\n\t{54, \"EBADRQC\", \"invalid request code\"},\n\t{55, \"EBADSLT\", \"invalid slot\"},\n\t{56, \"EDEADLOCK\", \"file locking deadlock error\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EMULTIHOP\", \"multihop attempted\"},\n\t{77, \"EBADMSG\", \"bad message\"},\n\t{78, \"ENAMETOOLONG\", \"file name too long\"},\n\t{79, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{80, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{81, \"EBADFD\", \"file descriptor in bad state\"},\n\t{82, \"EREMCHG\", \"remote address changed\"},\n\t{83, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{84, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{85, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{86, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{87, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{88, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{89, \"ENOSYS\", \"function not implemented\"},\n\t{90, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{91, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{92, \"ESTRPIPE\", \"streams pipe error\"},\n\t{93, \"ENOTEMPTY\", \"directory not empty\"},\n\t{94, \"EUSERS\", \"too many users\"},\n\t{95, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{96, \"EDESTADDRREQ\", \"destination address required\"},\n\t{97, \"EMSGSIZE\", \"message too long\"},\n\t{98, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{99, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{120, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{121, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{122, \"ENOTSUP\", \"operation not supported\"},\n\t{123, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{124, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{125, \"EADDRINUSE\", \"address already in use\"},\n\t{126, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{127, \"ENETDOWN\", \"network is down\"},\n\t{128, \"ENETUNREACH\", \"network is unreachable\"},\n\t{129, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{130, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{131, \"ECONNRESET\", \"connection reset by peer\"},\n\t{132, \"ENOBUFS\", \"no buffer space available\"},\n\t{133, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{134, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{135, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{137, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{138, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{139, \"EISNAM\", \"is a named type file\"},\n\t{140, \"EREMOTEIO\", \"remote I/O error\"},\n\t{141, \"EINIT\", \"unknown error 141\"},\n\t{142, \"EREMDEV\", \"unknown error 142\"},\n\t{143, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{144, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{145, \"ETIMEDOUT\", \"connection timed out\"},\n\t{146, \"ECONNREFUSED\", \"connection refused\"},\n\t{147, \"EHOSTDOWN\", \"host is down\"},\n\t{148, \"EHOSTUNREACH\", \"no route to host\"},\n\t{149, \"EALREADY\", \"operation already in progress\"},\n\t{150, \"EINPROGRESS\", \"operation now in progress\"},\n\t{151, \"ESTALE\", \"stale file handle\"},\n\t{158, \"ECANCELED\", \"operation canceled\"},\n\t{159, \"ENOMEDIUM\", \"no medium found\"},\n\t{160, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{161, \"ENOKEY\", \"required key not available\"},\n\t{162, \"EKEYEXPIRED\", \"key has expired\"},\n\t{163, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{164, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{165, \"EOWNERDEAD\", \"owner died\"},\n\t{166, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{167, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{168, \"EHWPOISON\", \"memory page has hardware error\"},\n\t{1133, \"EDQUOT\", \"disk quota exceeded\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGUSR1\", \"user defined signal 1\"},\n\t{17, \"SIGUSR2\", \"user defined signal 2\"},\n\t{18, \"SIGCHLD\", \"child exited\"},\n\t{19, \"SIGPWR\", \"power failure\"},\n\t{20, \"SIGWINCH\", \"window changed\"},\n\t{21, \"SIGURG\", \"urgent I/O condition\"},\n\t{22, \"SIGIO\", \"I/O possible\"},\n\t{23, \"SIGSTOP\", \"stopped (signal)\"},\n\t{24, \"SIGTSTP\", \"stopped\"},\n\t{25, \"SIGCONT\", \"continued\"},\n\t{26, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{27, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{28, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{29, \"SIGPROF\", \"profiling timer expired\"},\n\t{30, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{31, \"SIGXFSZ\", \"file size limit exceeded\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/mipsle/include\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mipsle && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/mipsle/include _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tB1000000                         = 0x1008\n\tB115200                          = 0x1002\n\tB1152000                         = 0x1009\n\tB1500000                         = 0x100a\n\tB2000000                         = 0x100b\n\tB230400                          = 0x1003\n\tB2500000                         = 0x100c\n\tB3000000                         = 0x100d\n\tB3500000                         = 0x100e\n\tB4000000                         = 0x100f\n\tB460800                          = 0x1004\n\tB500000                          = 0x1005\n\tB57600                           = 0x1001\n\tB576000                          = 0x1006\n\tB921600                          = 0x1007\n\tBLKALIGNOFF                      = 0x2000127a\n\tBLKBSZGET                        = 0x40041270\n\tBLKBSZSET                        = 0x80041271\n\tBLKDISCARD                       = 0x20001277\n\tBLKDISCARDZEROES                 = 0x2000127c\n\tBLKFLSBUF                        = 0x20001261\n\tBLKFRAGET                        = 0x20001265\n\tBLKFRASET                        = 0x20001264\n\tBLKGETDISKSEQ                    = 0x40081280\n\tBLKGETSIZE                       = 0x20001260\n\tBLKGETSIZE64                     = 0x40041272\n\tBLKIOMIN                         = 0x20001278\n\tBLKIOOPT                         = 0x20001279\n\tBLKPBSZGET                       = 0x2000127b\n\tBLKRAGET                         = 0x20001263\n\tBLKRASET                         = 0x20001262\n\tBLKROGET                         = 0x2000125e\n\tBLKROSET                         = 0x2000125d\n\tBLKROTATIONAL                    = 0x2000127e\n\tBLKRRPART                        = 0x2000125f\n\tBLKSECDISCARD                    = 0x2000127d\n\tBLKSECTGET                       = 0x20001267\n\tBLKSECTSET                       = 0x20001266\n\tBLKSSZGET                        = 0x20001268\n\tBLKZEROOUT                       = 0x2000127f\n\tBOTHER                           = 0x1000\n\tBS1                              = 0x2000\n\tBSDLY                            = 0x2000\n\tCBAUD                            = 0x100f\n\tCBAUDEX                          = 0x1000\n\tCIBAUD                           = 0x100f0000\n\tCLOCAL                           = 0x800\n\tCR1                              = 0x200\n\tCR2                              = 0x400\n\tCR3                              = 0x600\n\tCRDLY                            = 0x600\n\tCREAD                            = 0x80\n\tCS6                              = 0x10\n\tCS7                              = 0x20\n\tCS8                              = 0x30\n\tCSIZE                            = 0x30\n\tCSTOPB                           = 0x40\n\tECCGETLAYOUT                     = 0x41484d11\n\tECCGETSTATS                      = 0x40104d12\n\tECHOCTL                          = 0x200\n\tECHOE                            = 0x10\n\tECHOK                            = 0x20\n\tECHOKE                           = 0x800\n\tECHONL                           = 0x40\n\tECHOPRT                          = 0x400\n\tEFD_CLOEXEC                      = 0x80000\n\tEFD_NONBLOCK                     = 0x80\n\tEPIOCGPARAMS                     = 0x40088a02\n\tEPIOCSPARAMS                     = 0x80088a01\n\tEPOLL_CLOEXEC                    = 0x80000\n\tEXTPROC                          = 0x10000\n\tFF1                              = 0x8000\n\tFFDLY                            = 0x8000\n\tFICLONE                          = 0x80049409\n\tFICLONERANGE                     = 0x8020940d\n\tFLUSHO                           = 0x2000\n\tFS_IOC_ENABLE_VERITY             = 0x80806685\n\tFS_IOC_GETFLAGS                  = 0x40046601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x4010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x800c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x80106614\n\tFS_IOC_SETFLAGS                  = 0x80046602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x400c6613\n\tF_GETLK                          = 0x21\n\tF_GETLK64                        = 0x21\n\tF_GETOWN                         = 0x17\n\tF_RDLCK                          = 0x0\n\tF_SETLK                          = 0x22\n\tF_SETLK64                        = 0x22\n\tF_SETLKW                         = 0x23\n\tF_SETLKW64                       = 0x23\n\tF_SETOWN                         = 0x18\n\tF_UNLCK                          = 0x2\n\tF_WRLCK                          = 0x1\n\tHIDIOCGRAWINFO                   = 0x40084803\n\tHIDIOCGRDESC                     = 0x50044802\n\tHIDIOCGRDESCSIZE                 = 0x40044801\n\tHIDIOCREVOKE                     = 0x8004480d\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x100\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x80\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9\n\tIPV6_FLOWINFO_MASK               = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK              = 0xffff0f00\n\tISIG                             = 0x1\n\tIUCLC                            = 0x200\n\tIXOFF                            = 0x1000\n\tIXON                             = 0x400\n\tMAP_ANON                         = 0x800\n\tMAP_ANONYMOUS                    = 0x800\n\tMAP_DENYWRITE                    = 0x2000\n\tMAP_EXECUTABLE                   = 0x4000\n\tMAP_GROWSDOWN                    = 0x1000\n\tMAP_HUGETLB                      = 0x80000\n\tMAP_LOCKED                       = 0x8000\n\tMAP_NONBLOCK                     = 0x20000\n\tMAP_NORESERVE                    = 0x400\n\tMAP_POPULATE                     = 0x10000\n\tMAP_RENAME                       = 0x800\n\tMAP_STACK                        = 0x40000\n\tMCL_CURRENT                      = 0x1\n\tMCL_FUTURE                       = 0x2\n\tMCL_ONFAULT                      = 0x4\n\tMEMERASE                         = 0x80084d02\n\tMEMERASE64                       = 0x80104d14\n\tMEMGETBADBLOCK                   = 0x80084d0b\n\tMEMGETINFO                       = 0x40204d01\n\tMEMGETOOBSEL                     = 0x40c84d0a\n\tMEMGETREGIONCOUNT                = 0x40044d07\n\tMEMISLOCKED                      = 0x40084d17\n\tMEMLOCK                          = 0x80084d05\n\tMEMREAD                          = 0xc0404d1a\n\tMEMREADOOB                       = 0xc00c4d04\n\tMEMSETBADBLOCK                   = 0x80084d0c\n\tMEMUNLOCK                        = 0x80084d06\n\tMEMWRITEOOB                      = 0xc00c4d03\n\tMTDFILEMODE                      = 0x20004d13\n\tNFDBITS                          = 0x20\n\tNLDLY                            = 0x100\n\tNOFLSH                           = 0x80\n\tNS_GET_MNTNS_ID                  = 0x4008b705\n\tNS_GET_NSTYPE                    = 0x2000b703\n\tNS_GET_OWNER_UID                 = 0x2000b704\n\tNS_GET_PARENT                    = 0x2000b702\n\tNS_GET_PID_FROM_PIDNS            = 0x4004b706\n\tNS_GET_PID_IN_PIDNS              = 0x4004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x4004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x4004b709\n\tNS_GET_USERNS                    = 0x2000b701\n\tOLCUC                            = 0x2\n\tONLCR                            = 0x4\n\tOTPERASE                         = 0x800c4d19\n\tOTPGETREGIONCOUNT                = 0x80044d0e\n\tOTPGETREGIONINFO                 = 0x800c4d0f\n\tOTPLOCK                          = 0x400c4d10\n\tOTPSELECT                        = 0x40044d0d\n\tO_APPEND                         = 0x8\n\tO_ASYNC                          = 0x1000\n\tO_CLOEXEC                        = 0x80000\n\tO_CREAT                          = 0x100\n\tO_DIRECT                         = 0x8000\n\tO_DIRECTORY                      = 0x10000\n\tO_DSYNC                          = 0x10\n\tO_EXCL                           = 0x400\n\tO_FSYNC                          = 0x4010\n\tO_LARGEFILE                      = 0x2000\n\tO_NDELAY                         = 0x80\n\tO_NOATIME                        = 0x40000\n\tO_NOCTTY                         = 0x800\n\tO_NOFOLLOW                       = 0x20000\n\tO_NONBLOCK                       = 0x80\n\tO_PATH                           = 0x200000\n\tO_RSYNC                          = 0x4010\n\tO_SYNC                           = 0x4010\n\tO_TMPFILE                        = 0x410000\n\tO_TRUNC                          = 0x200\n\tPARENB                           = 0x100\n\tPARODD                           = 0x200\n\tPENDIN                           = 0x4000\n\tPERF_EVENT_IOC_DISABLE           = 0x20002401\n\tPERF_EVENT_IOC_ENABLE            = 0x20002400\n\tPERF_EVENT_IOC_ID                = 0x40042407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8004240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x80042409\n\tPERF_EVENT_IOC_PERIOD            = 0x80082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc004240a\n\tPERF_EVENT_IOC_REFRESH           = 0x20002402\n\tPERF_EVENT_IOC_RESET             = 0x20002403\n\tPERF_EVENT_IOC_SET_BPF           = 0x80042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x80042406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x20002405\n\tPPPIOCATTACH                     = 0x8004743d\n\tPPPIOCATTCHAN                    = 0x80047438\n\tPPPIOCBRIDGECHAN                 = 0x80047435\n\tPPPIOCCONNECT                    = 0x8004743a\n\tPPPIOCDETACH                     = 0x8004743c\n\tPPPIOCDISCONN                    = 0x20007439\n\tPPPIOCGASYNCMAP                  = 0x40047458\n\tPPPIOCGCHAN                      = 0x40047437\n\tPPPIOCGDEBUG                     = 0x40047441\n\tPPPIOCGFLAGS                     = 0x4004745a\n\tPPPIOCGIDLE                      = 0x4008743f\n\tPPPIOCGIDLE32                    = 0x4008743f\n\tPPPIOCGIDLE64                    = 0x4010743f\n\tPPPIOCGL2TPSTATS                 = 0x40487436\n\tPPPIOCGMRU                       = 0x40047453\n\tPPPIOCGRASYNCMAP                 = 0x40047455\n\tPPPIOCGUNIT                      = 0x40047456\n\tPPPIOCGXASYNCMAP                 = 0x40207450\n\tPPPIOCSACTIVE                    = 0x80087446\n\tPPPIOCSASYNCMAP                  = 0x80047457\n\tPPPIOCSCOMPRESS                  = 0x800c744d\n\tPPPIOCSDEBUG                     = 0x80047440\n\tPPPIOCSFLAGS                     = 0x80047459\n\tPPPIOCSMAXCID                    = 0x80047451\n\tPPPIOCSMRRU                      = 0x8004743b\n\tPPPIOCSMRU                       = 0x80047452\n\tPPPIOCSNPMODE                    = 0x8008744b\n\tPPPIOCSPASS                      = 0x80087447\n\tPPPIOCSRASYNCMAP                 = 0x80047454\n\tPPPIOCSXASYNCMAP                 = 0x8020744f\n\tPPPIOCUNBRIDGECHAN               = 0x20007434\n\tPPPIOCXFERUNIT                   = 0x2000744e\n\tPR_SET_PTRACER_ANY               = 0xffffffff\n\tPTP_CLOCK_GETCAPS                = 0x40503d01\n\tPTP_CLOCK_GETCAPS2               = 0x40503d0a\n\tPTP_ENABLE_PPS                   = 0x80043d04\n\tPTP_ENABLE_PPS2                  = 0x80043d0d\n\tPTP_EXTTS_REQUEST                = 0x80103d02\n\tPTP_EXTTS_REQUEST2               = 0x80103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x20003d13\n\tPTP_MASK_EN_SINGLE               = 0x80043d14\n\tPTP_PEROUT_REQUEST               = 0x80383d03\n\tPTP_PEROUT_REQUEST2              = 0x80383d0c\n\tPTP_PIN_SETFUNC                  = 0x80603d07\n\tPTP_PIN_SETFUNC2                 = 0x80603d10\n\tPTP_SYS_OFFSET                   = 0x83403d05\n\tPTP_SYS_OFFSET2                  = 0x83403d0e\n\tPTRACE_GETFPREGS                 = 0xe\n\tPTRACE_GET_THREAD_AREA           = 0x19\n\tPTRACE_GET_THREAD_AREA_3264      = 0xc4\n\tPTRACE_GET_WATCH_REGS            = 0xd0\n\tPTRACE_OLDSETOPTIONS             = 0x15\n\tPTRACE_PEEKDATA_3264             = 0xc1\n\tPTRACE_PEEKTEXT_3264             = 0xc0\n\tPTRACE_POKEDATA_3264             = 0xc3\n\tPTRACE_POKETEXT_3264             = 0xc2\n\tPTRACE_SETFPREGS                 = 0xf\n\tPTRACE_SET_THREAD_AREA           = 0x1a\n\tPTRACE_SET_WATCH_REGS            = 0xd1\n\tRLIMIT_AS                        = 0x6\n\tRLIMIT_MEMLOCK                   = 0x9\n\tRLIMIT_NOFILE                    = 0x5\n\tRLIMIT_NPROC                     = 0x8\n\tRLIMIT_RSS                       = 0x7\n\tRNDADDENTROPY                    = 0x80085203\n\tRNDADDTOENTCNT                   = 0x80045201\n\tRNDCLEARPOOL                     = 0x20005206\n\tRNDGETENTCNT                     = 0x40045200\n\tRNDGETPOOL                       = 0x40085202\n\tRNDRESEEDCRNG                    = 0x20005207\n\tRNDZAPENTCNT                     = 0x20005204\n\tRTC_AIE_OFF                      = 0x20007002\n\tRTC_AIE_ON                       = 0x20007001\n\tRTC_ALM_READ                     = 0x40247008\n\tRTC_ALM_SET                      = 0x80247007\n\tRTC_EPOCH_READ                   = 0x4004700d\n\tRTC_EPOCH_SET                    = 0x8004700e\n\tRTC_IRQP_READ                    = 0x4004700b\n\tRTC_IRQP_SET                     = 0x8004700c\n\tRTC_PARAM_GET                    = 0x80187013\n\tRTC_PARAM_SET                    = 0x80187014\n\tRTC_PIE_OFF                      = 0x20007006\n\tRTC_PIE_ON                       = 0x20007005\n\tRTC_PLL_GET                      = 0x401c7011\n\tRTC_PLL_SET                      = 0x801c7012\n\tRTC_RD_TIME                      = 0x40247009\n\tRTC_SET_TIME                     = 0x8024700a\n\tRTC_UIE_OFF                      = 0x20007004\n\tRTC_UIE_ON                       = 0x20007003\n\tRTC_VL_CLR                       = 0x20007014\n\tRTC_VL_READ                      = 0x40047013\n\tRTC_WIE_OFF                      = 0x20007010\n\tRTC_WIE_ON                       = 0x2000700f\n\tRTC_WKALM_RD                     = 0x40287010\n\tRTC_WKALM_SET                    = 0x8028700f\n\tSCM_DEVMEM_DMABUF                = 0x4f\n\tSCM_DEVMEM_LINEAR                = 0x4e\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TS_OPT_ID                    = 0x51\n\tSCM_TXTIME                       = 0x3d\n\tSCM_WIFI_STATUS                  = 0x29\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x80082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x80082104\n\tSFD_CLOEXEC                      = 0x80000\n\tSFD_NONBLOCK                     = 0x80\n\tSIOCATMARK                       = 0x40047307\n\tSIOCGPGRP                        = 0x40047309\n\tSIOCGSTAMPNS_NEW                 = 0x40108907\n\tSIOCGSTAMP_NEW                   = 0x40108906\n\tSIOCINQ                          = 0x467f\n\tSIOCOUTQ                         = 0x7472\n\tSIOCSPGRP                        = 0x80047308\n\tSOCK_CLOEXEC                     = 0x80000\n\tSOCK_DGRAM                       = 0x1\n\tSOCK_NONBLOCK                    = 0x80\n\tSOCK_STREAM                      = 0x2\n\tSOL_SOCKET                       = 0xffff\n\tSO_ACCEPTCONN                    = 0x1009\n\tSO_ATTACH_BPF                    = 0x32\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x34\n\tSO_BINDTODEVICE                  = 0x19\n\tSO_BINDTOIFINDEX                 = 0x3e\n\tSO_BPF_EXTENSIONS                = 0x30\n\tSO_BROADCAST                     = 0x20\n\tSO_BSDCOMPAT                     = 0xe\n\tSO_BUF_LOCK                      = 0x48\n\tSO_BUSY_POLL                     = 0x2e\n\tSO_BUSY_POLL_BUDGET              = 0x46\n\tSO_CNX_ADVICE                    = 0x35\n\tSO_COOKIE                        = 0x39\n\tSO_DETACH_REUSEPORT_BPF          = 0x44\n\tSO_DEVMEM_DMABUF                 = 0x4f\n\tSO_DEVMEM_DONTNEED               = 0x50\n\tSO_DEVMEM_LINEAR                 = 0x4e\n\tSO_DOMAIN                        = 0x1029\n\tSO_DONTROUTE                     = 0x10\n\tSO_ERROR                         = 0x1007\n\tSO_INCOMING_CPU                  = 0x31\n\tSO_INCOMING_NAPI_ID              = 0x38\n\tSO_KEEPALIVE                     = 0x8\n\tSO_LINGER                        = 0x80\n\tSO_LOCK_FILTER                   = 0x2c\n\tSO_MARK                          = 0x24\n\tSO_MAX_PACING_RATE               = 0x2f\n\tSO_MEMINFO                       = 0x37\n\tSO_NETNS_COOKIE                  = 0x47\n\tSO_NOFCS                         = 0x2b\n\tSO_OOBINLINE                     = 0x100\n\tSO_PASSCRED                      = 0x11\n\tSO_PASSPIDFD                     = 0x4c\n\tSO_PASSSEC                       = 0x22\n\tSO_PEEK_OFF                      = 0x2a\n\tSO_PEERCRED                      = 0x12\n\tSO_PEERGROUPS                    = 0x3b\n\tSO_PEERPIDFD                     = 0x4d\n\tSO_PEERSEC                       = 0x1e\n\tSO_PREFER_BUSY_POLL              = 0x45\n\tSO_PROTOCOL                      = 0x1028\n\tSO_RCVBUF                        = 0x1002\n\tSO_RCVBUFFORCE                   = 0x21\n\tSO_RCVLOWAT                      = 0x1004\n\tSO_RCVMARK                       = 0x4b\n\tSO_RCVTIMEO                      = 0x1006\n\tSO_RCVTIMEO_NEW                  = 0x42\n\tSO_RCVTIMEO_OLD                  = 0x1006\n\tSO_RESERVE_MEM                   = 0x49\n\tSO_REUSEADDR                     = 0x4\n\tSO_REUSEPORT                     = 0x200\n\tSO_RXQ_OVFL                      = 0x28\n\tSO_SECURITY_AUTHENTICATION       = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x17\n\tSO_SELECT_ERR_QUEUE              = 0x2d\n\tSO_SNDBUF                        = 0x1001\n\tSO_SNDBUFFORCE                   = 0x1f\n\tSO_SNDLOWAT                      = 0x1003\n\tSO_SNDTIMEO                      = 0x1005\n\tSO_SNDTIMEO_NEW                  = 0x43\n\tSO_SNDTIMEO_OLD                  = 0x1005\n\tSO_STYLE                         = 0x1008\n\tSO_TIMESTAMPING                  = 0x25\n\tSO_TIMESTAMPING_NEW              = 0x41\n\tSO_TIMESTAMPING_OLD              = 0x25\n\tSO_TIMESTAMPNS                   = 0x23\n\tSO_TIMESTAMPNS_NEW               = 0x40\n\tSO_TIMESTAMPNS_OLD               = 0x23\n\tSO_TIMESTAMP_NEW                 = 0x3f\n\tSO_TXREHASH                      = 0x4a\n\tSO_TXTIME                        = 0x3d\n\tSO_TYPE                          = 0x1008\n\tSO_WIFI_STATUS                   = 0x29\n\tSO_ZEROCOPY                      = 0x3c\n\tTAB1                             = 0x800\n\tTAB2                             = 0x1000\n\tTAB3                             = 0x1800\n\tTABDLY                           = 0x1800\n\tTCFLSH                           = 0x5407\n\tTCGETA                           = 0x5401\n\tTCGETS                           = 0x540d\n\tTCGETS2                          = 0x4030542a\n\tTCSAFLUSH                        = 0x5410\n\tTCSBRK                           = 0x5405\n\tTCSBRKP                          = 0x5486\n\tTCSETA                           = 0x5402\n\tTCSETAF                          = 0x5404\n\tTCSETAW                          = 0x5403\n\tTCSETS                           = 0x540e\n\tTCSETS2                          = 0x8030542b\n\tTCSETSF                          = 0x5410\n\tTCSETSF2                         = 0x8030542d\n\tTCSETSW                          = 0x540f\n\tTCSETSW2                         = 0x8030542c\n\tTCXONC                           = 0x5406\n\tTFD_CLOEXEC                      = 0x80000\n\tTFD_NONBLOCK                     = 0x80\n\tTIOCCBRK                         = 0x5428\n\tTIOCCONS                         = 0x80047478\n\tTIOCEXCL                         = 0x740d\n\tTIOCGDEV                         = 0x40045432\n\tTIOCGETD                         = 0x7400\n\tTIOCGETP                         = 0x7408\n\tTIOCGEXCL                        = 0x40045440\n\tTIOCGICOUNT                      = 0x5492\n\tTIOCGISO7816                     = 0x40285442\n\tTIOCGLCKTRMIOS                   = 0x548b\n\tTIOCGLTC                         = 0x7474\n\tTIOCGPGRP                        = 0x40047477\n\tTIOCGPKT                         = 0x40045438\n\tTIOCGPTLCK                       = 0x40045439\n\tTIOCGPTN                         = 0x40045430\n\tTIOCGPTPEER                      = 0x20005441\n\tTIOCGRS485                       = 0x4020542e\n\tTIOCGSERIAL                      = 0x5484\n\tTIOCGSID                         = 0x7416\n\tTIOCGSOFTCAR                     = 0x5481\n\tTIOCGWINSZ                       = 0x40087468\n\tTIOCINQ                          = 0x467f\n\tTIOCLINUX                        = 0x5483\n\tTIOCMBIC                         = 0x741c\n\tTIOCMBIS                         = 0x741b\n\tTIOCMGET                         = 0x741d\n\tTIOCMIWAIT                       = 0x5491\n\tTIOCMSET                         = 0x741a\n\tTIOCM_CAR                        = 0x100\n\tTIOCM_CD                         = 0x100\n\tTIOCM_CTS                        = 0x40\n\tTIOCM_DSR                        = 0x400\n\tTIOCM_RI                         = 0x200\n\tTIOCM_RNG                        = 0x200\n\tTIOCM_SR                         = 0x20\n\tTIOCM_ST                         = 0x10\n\tTIOCNOTTY                        = 0x5471\n\tTIOCNXCL                         = 0x740e\n\tTIOCOUTQ                         = 0x7472\n\tTIOCPKT                          = 0x5470\n\tTIOCSBRK                         = 0x5427\n\tTIOCSCTTY                        = 0x5480\n\tTIOCSERCONFIG                    = 0x5488\n\tTIOCSERGETLSR                    = 0x548e\n\tTIOCSERGETMULTI                  = 0x548f\n\tTIOCSERGSTRUCT                   = 0x548d\n\tTIOCSERGWILD                     = 0x5489\n\tTIOCSERSETMULTI                  = 0x5490\n\tTIOCSERSWILD                     = 0x548a\n\tTIOCSER_TEMT                     = 0x1\n\tTIOCSETD                         = 0x7401\n\tTIOCSETN                         = 0x740a\n\tTIOCSETP                         = 0x7409\n\tTIOCSIG                          = 0x80045436\n\tTIOCSISO7816                     = 0xc0285443\n\tTIOCSLCKTRMIOS                   = 0x548c\n\tTIOCSLTC                         = 0x7475\n\tTIOCSPGRP                        = 0x80047476\n\tTIOCSPTLCK                       = 0x80045431\n\tTIOCSRS485                       = 0xc020542f\n\tTIOCSSERIAL                      = 0x5485\n\tTIOCSSOFTCAR                     = 0x5482\n\tTIOCSTI                          = 0x5472\n\tTIOCSWINSZ                       = 0x80087467\n\tTIOCVHANGUP                      = 0x5437\n\tTOSTOP                           = 0x8000\n\tTUNATTACHFILTER                  = 0x800854d5\n\tTUNDETACHFILTER                  = 0x800854d6\n\tTUNGETDEVNETNS                   = 0x200054e3\n\tTUNGETFEATURES                   = 0x400454cf\n\tTUNGETFILTER                     = 0x400854db\n\tTUNGETIFF                        = 0x400454d2\n\tTUNGETSNDBUF                     = 0x400454d3\n\tTUNGETVNETBE                     = 0x400454df\n\tTUNGETVNETHDRSZ                  = 0x400454d7\n\tTUNGETVNETLE                     = 0x400454dd\n\tTUNSETCARRIER                    = 0x800454e2\n\tTUNSETDEBUG                      = 0x800454c9\n\tTUNSETFILTEREBPF                 = 0x400454e1\n\tTUNSETGROUP                      = 0x800454ce\n\tTUNSETIFF                        = 0x800454ca\n\tTUNSETIFINDEX                    = 0x800454da\n\tTUNSETLINK                       = 0x800454cd\n\tTUNSETNOCSUM                     = 0x800454c8\n\tTUNSETOFFLOAD                    = 0x800454d0\n\tTUNSETOWNER                      = 0x800454cc\n\tTUNSETPERSIST                    = 0x800454cb\n\tTUNSETQUEUE                      = 0x800454d9\n\tTUNSETSNDBUF                     = 0x800454d4\n\tTUNSETSTEERINGEBPF               = 0x400454e0\n\tTUNSETTXFILTER                   = 0x800454d1\n\tTUNSETVNETBE                     = 0x800454de\n\tTUNSETVNETHDRSZ                  = 0x800454d8\n\tTUNSETVNETLE                     = 0x800454dc\n\tUBI_IOCATT                       = 0x80186f40\n\tUBI_IOCDET                       = 0x80046f41\n\tUBI_IOCEBCH                      = 0x80044f02\n\tUBI_IOCEBER                      = 0x80044f01\n\tUBI_IOCEBISMAP                   = 0x40044f05\n\tUBI_IOCEBMAP                     = 0x80084f03\n\tUBI_IOCEBUNMAP                   = 0x80044f04\n\tUBI_IOCMKVOL                     = 0x80986f00\n\tUBI_IOCRMVOL                     = 0x80046f01\n\tUBI_IOCRNVOL                     = 0x91106f03\n\tUBI_IOCRPEB                      = 0x80046f04\n\tUBI_IOCRSVOL                     = 0x800c6f02\n\tUBI_IOCSETVOLPROP                = 0x80104f06\n\tUBI_IOCSPEB                      = 0x80046f05\n\tUBI_IOCVOLCRBLK                  = 0x80804f07\n\tUBI_IOCVOLRMBLK                  = 0x20004f08\n\tUBI_IOCVOLUP                     = 0x80084f00\n\tVDISCARD                         = 0xd\n\tVEOF                             = 0x10\n\tVEOL                             = 0x11\n\tVEOL2                            = 0x6\n\tVMIN                             = 0x4\n\tVREPRINT                         = 0xc\n\tVSTART                           = 0x8\n\tVSTOP                            = 0x9\n\tVSUSP                            = 0xa\n\tVSWTC                            = 0x7\n\tVSWTCH                           = 0x7\n\tVT1                              = 0x4000\n\tVTDLY                            = 0x4000\n\tVTIME                            = 0x5\n\tVWERASE                          = 0xe\n\tWDIOC_GETBOOTSTATUS              = 0x40045702\n\tWDIOC_GETPRETIMEOUT              = 0x40045709\n\tWDIOC_GETSTATUS                  = 0x40045701\n\tWDIOC_GETSUPPORT                 = 0x40285700\n\tWDIOC_GETTEMP                    = 0x40045703\n\tWDIOC_GETTIMELEFT                = 0x4004570a\n\tWDIOC_GETTIMEOUT                 = 0x40045707\n\tWDIOC_KEEPALIVE                  = 0x40045705\n\tWDIOC_SETOPTIONS                 = 0x40045704\n\tWORDSIZE                         = 0x20\n\tXCASE                            = 0x4\n\tXTABS                            = 0x1800\n\t_HIDIOCGRAWNAME                  = 0x40804804\n\t_HIDIOCGRAWPHYS                  = 0x40404805\n\t_HIDIOCGRAWUNIQ                  = 0x40404808\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x7d)\n\tEADDRNOTAVAIL   = syscall.Errno(0x7e)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x7c)\n\tEALREADY        = syscall.Errno(0x95)\n\tEBADE           = syscall.Errno(0x32)\n\tEBADFD          = syscall.Errno(0x51)\n\tEBADMSG         = syscall.Errno(0x4d)\n\tEBADR           = syscall.Errno(0x33)\n\tEBADRQC         = syscall.Errno(0x36)\n\tEBADSLT         = syscall.Errno(0x37)\n\tEBFONT          = syscall.Errno(0x3b)\n\tECANCELED       = syscall.Errno(0x9e)\n\tECHRNG          = syscall.Errno(0x25)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x82)\n\tECONNREFUSED    = syscall.Errno(0x92)\n\tECONNRESET      = syscall.Errno(0x83)\n\tEDEADLK         = syscall.Errno(0x2d)\n\tEDEADLOCK       = syscall.Errno(0x38)\n\tEDESTADDRREQ    = syscall.Errno(0x60)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x46d)\n\tEHOSTDOWN       = syscall.Errno(0x93)\n\tEHOSTUNREACH    = syscall.Errno(0x94)\n\tEHWPOISON       = syscall.Errno(0xa8)\n\tEIDRM           = syscall.Errno(0x24)\n\tEILSEQ          = syscall.Errno(0x58)\n\tEINIT           = syscall.Errno(0x8d)\n\tEINPROGRESS     = syscall.Errno(0x96)\n\tEISCONN         = syscall.Errno(0x85)\n\tEISNAM          = syscall.Errno(0x8b)\n\tEKEYEXPIRED     = syscall.Errno(0xa2)\n\tEKEYREJECTED    = syscall.Errno(0xa4)\n\tEKEYREVOKED     = syscall.Errno(0xa3)\n\tEL2HLT          = syscall.Errno(0x2c)\n\tEL2NSYNC        = syscall.Errno(0x26)\n\tEL3HLT          = syscall.Errno(0x27)\n\tEL3RST          = syscall.Errno(0x28)\n\tELIBACC         = syscall.Errno(0x53)\n\tELIBBAD         = syscall.Errno(0x54)\n\tELIBEXEC        = syscall.Errno(0x57)\n\tELIBMAX         = syscall.Errno(0x56)\n\tELIBSCN         = syscall.Errno(0x55)\n\tELNRNG          = syscall.Errno(0x29)\n\tELOOP           = syscall.Errno(0x5a)\n\tEMEDIUMTYPE     = syscall.Errno(0xa0)\n\tEMSGSIZE        = syscall.Errno(0x61)\n\tEMULTIHOP       = syscall.Errno(0x4a)\n\tENAMETOOLONG    = syscall.Errno(0x4e)\n\tENAVAIL         = syscall.Errno(0x8a)\n\tENETDOWN        = syscall.Errno(0x7f)\n\tENETRESET       = syscall.Errno(0x81)\n\tENETUNREACH     = syscall.Errno(0x80)\n\tENOANO          = syscall.Errno(0x35)\n\tENOBUFS         = syscall.Errno(0x84)\n\tENOCSI          = syscall.Errno(0x2b)\n\tENODATA         = syscall.Errno(0x3d)\n\tENOKEY          = syscall.Errno(0xa1)\n\tENOLCK          = syscall.Errno(0x2e)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x9f)\n\tENOMSG          = syscall.Errno(0x23)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x63)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x59)\n\tENOTCONN        = syscall.Errno(0x86)\n\tENOTEMPTY       = syscall.Errno(0x5d)\n\tENOTNAM         = syscall.Errno(0x89)\n\tENOTRECOVERABLE = syscall.Errno(0xa6)\n\tENOTSOCK        = syscall.Errno(0x5f)\n\tENOTSUP         = syscall.Errno(0x7a)\n\tENOTUNIQ        = syscall.Errno(0x50)\n\tEOPNOTSUPP      = syscall.Errno(0x7a)\n\tEOVERFLOW       = syscall.Errno(0x4f)\n\tEOWNERDEAD      = syscall.Errno(0xa5)\n\tEPFNOSUPPORT    = syscall.Errno(0x7b)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x78)\n\tEPROTOTYPE      = syscall.Errno(0x62)\n\tEREMCHG         = syscall.Errno(0x52)\n\tEREMDEV         = syscall.Errno(0x8e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x8c)\n\tERESTART        = syscall.Errno(0x5b)\n\tERFKILL         = syscall.Errno(0xa7)\n\tESHUTDOWN       = syscall.Errno(0x8f)\n\tESOCKTNOSUPPORT = syscall.Errno(0x79)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x97)\n\tESTRPIPE        = syscall.Errno(0x5c)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x91)\n\tETOOMANYREFS    = syscall.Errno(0x90)\n\tEUCLEAN         = syscall.Errno(0x87)\n\tEUNATCH         = syscall.Errno(0x2a)\n\tEUSERS          = syscall.Errno(0x5e)\n\tEXFULL          = syscall.Errno(0x34)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x12)\n\tSIGCLD    = syscall.Signal(0x12)\n\tSIGCONT   = syscall.Signal(0x19)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGIO     = syscall.Signal(0x16)\n\tSIGPOLL   = syscall.Signal(0x16)\n\tSIGPROF   = syscall.Signal(0x1d)\n\tSIGPWR    = syscall.Signal(0x13)\n\tSIGSTOP   = syscall.Signal(0x17)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTSTP   = syscall.Signal(0x18)\n\tSIGTTIN   = syscall.Signal(0x1a)\n\tSIGTTOU   = syscall.Signal(0x1b)\n\tSIGURG    = syscall.Signal(0x15)\n\tSIGUSR1   = syscall.Signal(0x10)\n\tSIGUSR2   = syscall.Signal(0x11)\n\tSIGVTALRM = syscall.Signal(0x1c)\n\tSIGWINCH  = syscall.Signal(0x14)\n\tSIGXCPU   = syscall.Signal(0x1e)\n\tSIGXFSZ   = syscall.Signal(0x1f)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"ENOMSG\", \"no message of desired type\"},\n\t{36, \"EIDRM\", \"identifier removed\"},\n\t{37, \"ECHRNG\", \"channel number out of range\"},\n\t{38, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{39, \"EL3HLT\", \"level 3 halted\"},\n\t{40, \"EL3RST\", \"level 3 reset\"},\n\t{41, \"ELNRNG\", \"link number out of range\"},\n\t{42, \"EUNATCH\", \"protocol driver not attached\"},\n\t{43, \"ENOCSI\", \"no CSI structure available\"},\n\t{44, \"EL2HLT\", \"level 2 halted\"},\n\t{45, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{46, \"ENOLCK\", \"no locks available\"},\n\t{50, \"EBADE\", \"invalid exchange\"},\n\t{51, \"EBADR\", \"invalid request descriptor\"},\n\t{52, \"EXFULL\", \"exchange full\"},\n\t{53, \"ENOANO\", \"no anode\"},\n\t{54, \"EBADRQC\", \"invalid request code\"},\n\t{55, \"EBADSLT\", \"invalid slot\"},\n\t{56, \"EDEADLOCK\", \"file locking deadlock error\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EMULTIHOP\", \"multihop attempted\"},\n\t{77, \"EBADMSG\", \"bad message\"},\n\t{78, \"ENAMETOOLONG\", \"file name too long\"},\n\t{79, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{80, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{81, \"EBADFD\", \"file descriptor in bad state\"},\n\t{82, \"EREMCHG\", \"remote address changed\"},\n\t{83, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{84, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{85, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{86, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{87, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{88, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{89, \"ENOSYS\", \"function not implemented\"},\n\t{90, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{91, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{92, \"ESTRPIPE\", \"streams pipe error\"},\n\t{93, \"ENOTEMPTY\", \"directory not empty\"},\n\t{94, \"EUSERS\", \"too many users\"},\n\t{95, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{96, \"EDESTADDRREQ\", \"destination address required\"},\n\t{97, \"EMSGSIZE\", \"message too long\"},\n\t{98, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{99, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{120, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{121, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{122, \"ENOTSUP\", \"operation not supported\"},\n\t{123, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{124, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{125, \"EADDRINUSE\", \"address already in use\"},\n\t{126, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{127, \"ENETDOWN\", \"network is down\"},\n\t{128, \"ENETUNREACH\", \"network is unreachable\"},\n\t{129, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{130, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{131, \"ECONNRESET\", \"connection reset by peer\"},\n\t{132, \"ENOBUFS\", \"no buffer space available\"},\n\t{133, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{134, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{135, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{137, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{138, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{139, \"EISNAM\", \"is a named type file\"},\n\t{140, \"EREMOTEIO\", \"remote I/O error\"},\n\t{141, \"EINIT\", \"unknown error 141\"},\n\t{142, \"EREMDEV\", \"unknown error 142\"},\n\t{143, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{144, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{145, \"ETIMEDOUT\", \"connection timed out\"},\n\t{146, \"ECONNREFUSED\", \"connection refused\"},\n\t{147, \"EHOSTDOWN\", \"host is down\"},\n\t{148, \"EHOSTUNREACH\", \"no route to host\"},\n\t{149, \"EALREADY\", \"operation already in progress\"},\n\t{150, \"EINPROGRESS\", \"operation now in progress\"},\n\t{151, \"ESTALE\", \"stale file handle\"},\n\t{158, \"ECANCELED\", \"operation canceled\"},\n\t{159, \"ENOMEDIUM\", \"no medium found\"},\n\t{160, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{161, \"ENOKEY\", \"required key not available\"},\n\t{162, \"EKEYEXPIRED\", \"key has expired\"},\n\t{163, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{164, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{165, \"EOWNERDEAD\", \"owner died\"},\n\t{166, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{167, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{168, \"EHWPOISON\", \"memory page has hardware error\"},\n\t{1133, \"EDQUOT\", \"disk quota exceeded\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGUSR1\", \"user defined signal 1\"},\n\t{17, \"SIGUSR2\", \"user defined signal 2\"},\n\t{18, \"SIGCHLD\", \"child exited\"},\n\t{19, \"SIGPWR\", \"power failure\"},\n\t{20, \"SIGWINCH\", \"window changed\"},\n\t{21, \"SIGURG\", \"urgent I/O condition\"},\n\t{22, \"SIGIO\", \"I/O possible\"},\n\t{23, \"SIGSTOP\", \"stopped (signal)\"},\n\t{24, \"SIGTSTP\", \"stopped\"},\n\t{25, \"SIGCONT\", \"continued\"},\n\t{26, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{27, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{28, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{29, \"SIGPROF\", \"profiling timer expired\"},\n\t{30, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{31, \"SIGXFSZ\", \"file size limit exceeded\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/ppc/include\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/ppc/include _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tB1000000                         = 0x17\n\tB115200                          = 0x11\n\tB1152000                         = 0x18\n\tB1500000                         = 0x19\n\tB2000000                         = 0x1a\n\tB230400                          = 0x12\n\tB2500000                         = 0x1b\n\tB3000000                         = 0x1c\n\tB3500000                         = 0x1d\n\tB4000000                         = 0x1e\n\tB460800                          = 0x13\n\tB500000                          = 0x14\n\tB57600                           = 0x10\n\tB576000                          = 0x15\n\tB921600                          = 0x16\n\tBLKALIGNOFF                      = 0x2000127a\n\tBLKBSZGET                        = 0x40041270\n\tBLKBSZSET                        = 0x80041271\n\tBLKDISCARD                       = 0x20001277\n\tBLKDISCARDZEROES                 = 0x2000127c\n\tBLKFLSBUF                        = 0x20001261\n\tBLKFRAGET                        = 0x20001265\n\tBLKFRASET                        = 0x20001264\n\tBLKGETDISKSEQ                    = 0x40081280\n\tBLKGETSIZE                       = 0x20001260\n\tBLKGETSIZE64                     = 0x40041272\n\tBLKIOMIN                         = 0x20001278\n\tBLKIOOPT                         = 0x20001279\n\tBLKPBSZGET                       = 0x2000127b\n\tBLKRAGET                         = 0x20001263\n\tBLKRASET                         = 0x20001262\n\tBLKROGET                         = 0x2000125e\n\tBLKROSET                         = 0x2000125d\n\tBLKROTATIONAL                    = 0x2000127e\n\tBLKRRPART                        = 0x2000125f\n\tBLKSECDISCARD                    = 0x2000127d\n\tBLKSECTGET                       = 0x20001267\n\tBLKSECTSET                       = 0x20001266\n\tBLKSSZGET                        = 0x20001268\n\tBLKZEROOUT                       = 0x2000127f\n\tBOTHER                           = 0x1f\n\tBS1                              = 0x8000\n\tBSDLY                            = 0x8000\n\tCBAUD                            = 0xff\n\tCBAUDEX                          = 0x0\n\tCIBAUD                           = 0xff0000\n\tCLOCAL                           = 0x8000\n\tCR1                              = 0x1000\n\tCR2                              = 0x2000\n\tCR3                              = 0x3000\n\tCRDLY                            = 0x3000\n\tCREAD                            = 0x800\n\tCS6                              = 0x100\n\tCS7                              = 0x200\n\tCS8                              = 0x300\n\tCSIZE                            = 0x300\n\tCSTOPB                           = 0x400\n\tECCGETLAYOUT                     = 0x41484d11\n\tECCGETSTATS                      = 0x40104d12\n\tECHOCTL                          = 0x40\n\tECHOE                            = 0x2\n\tECHOK                            = 0x4\n\tECHOKE                           = 0x1\n\tECHONL                           = 0x10\n\tECHOPRT                          = 0x20\n\tEFD_CLOEXEC                      = 0x80000\n\tEFD_NONBLOCK                     = 0x800\n\tEPIOCGPARAMS                     = 0x40088a02\n\tEPIOCSPARAMS                     = 0x80088a01\n\tEPOLL_CLOEXEC                    = 0x80000\n\tEXTPROC                          = 0x10000000\n\tFF1                              = 0x4000\n\tFFDLY                            = 0x4000\n\tFICLONE                          = 0x80049409\n\tFICLONERANGE                     = 0x8020940d\n\tFLUSHO                           = 0x800000\n\tFS_IOC_ENABLE_VERITY             = 0x80806685\n\tFS_IOC_GETFLAGS                  = 0x40046601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x4010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x800c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x80106614\n\tFS_IOC_SETFLAGS                  = 0x80046602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x400c6613\n\tF_GETLK                          = 0xc\n\tF_GETLK64                        = 0xc\n\tF_GETOWN                         = 0x9\n\tF_RDLCK                          = 0x0\n\tF_SETLK                          = 0xd\n\tF_SETLK64                        = 0xd\n\tF_SETLKW                         = 0xe\n\tF_SETLKW64                       = 0xe\n\tF_SETOWN                         = 0x8\n\tF_UNLCK                          = 0x2\n\tF_WRLCK                          = 0x1\n\tHIDIOCGRAWINFO                   = 0x40084803\n\tHIDIOCGRDESC                     = 0x50044802\n\tHIDIOCGRDESCSIZE                 = 0x40044801\n\tHIDIOCREVOKE                     = 0x8004480d\n\tHUPCL                            = 0x4000\n\tICANON                           = 0x100\n\tIEXTEN                           = 0x400\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x800\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9\n\tIPV6_FLOWINFO_MASK               = 0xfffffff\n\tIPV6_FLOWLABEL_MASK              = 0xfffff\n\tISIG                             = 0x80\n\tIUCLC                            = 0x1000\n\tIXOFF                            = 0x400\n\tIXON                             = 0x200\n\tMAP_ANON                         = 0x20\n\tMAP_ANONYMOUS                    = 0x20\n\tMAP_DENYWRITE                    = 0x800\n\tMAP_EXECUTABLE                   = 0x1000\n\tMAP_GROWSDOWN                    = 0x100\n\tMAP_HUGETLB                      = 0x40000\n\tMAP_LOCKED                       = 0x80\n\tMAP_NONBLOCK                     = 0x10000\n\tMAP_NORESERVE                    = 0x40\n\tMAP_POPULATE                     = 0x8000\n\tMAP_STACK                        = 0x20000\n\tMAP_SYNC                         = 0x80000\n\tMCL_CURRENT                      = 0x2000\n\tMCL_FUTURE                       = 0x4000\n\tMCL_ONFAULT                      = 0x8000\n\tMEMERASE                         = 0x80084d02\n\tMEMERASE64                       = 0x80104d14\n\tMEMGETBADBLOCK                   = 0x80084d0b\n\tMEMGETINFO                       = 0x40204d01\n\tMEMGETOOBSEL                     = 0x40c84d0a\n\tMEMGETREGIONCOUNT                = 0x40044d07\n\tMEMISLOCKED                      = 0x40084d17\n\tMEMLOCK                          = 0x80084d05\n\tMEMREAD                          = 0xc0404d1a\n\tMEMREADOOB                       = 0xc00c4d04\n\tMEMSETBADBLOCK                   = 0x80084d0c\n\tMEMUNLOCK                        = 0x80084d06\n\tMEMWRITEOOB                      = 0xc00c4d03\n\tMTDFILEMODE                      = 0x20004d13\n\tNFDBITS                          = 0x20\n\tNL2                              = 0x200\n\tNL3                              = 0x300\n\tNLDLY                            = 0x300\n\tNOFLSH                           = 0x80000000\n\tNS_GET_MNTNS_ID                  = 0x4008b705\n\tNS_GET_NSTYPE                    = 0x2000b703\n\tNS_GET_OWNER_UID                 = 0x2000b704\n\tNS_GET_PARENT                    = 0x2000b702\n\tNS_GET_PID_FROM_PIDNS            = 0x4004b706\n\tNS_GET_PID_IN_PIDNS              = 0x4004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x4004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x4004b709\n\tNS_GET_USERNS                    = 0x2000b701\n\tOLCUC                            = 0x4\n\tONLCR                            = 0x2\n\tOTPERASE                         = 0x800c4d19\n\tOTPGETREGIONCOUNT                = 0x80044d0e\n\tOTPGETREGIONINFO                 = 0x800c4d0f\n\tOTPLOCK                          = 0x400c4d10\n\tOTPSELECT                        = 0x40044d0d\n\tO_APPEND                         = 0x400\n\tO_ASYNC                          = 0x2000\n\tO_CLOEXEC                        = 0x80000\n\tO_CREAT                          = 0x40\n\tO_DIRECT                         = 0x20000\n\tO_DIRECTORY                      = 0x4000\n\tO_DSYNC                          = 0x1000\n\tO_EXCL                           = 0x80\n\tO_FSYNC                          = 0x101000\n\tO_LARGEFILE                      = 0x10000\n\tO_NDELAY                         = 0x800\n\tO_NOATIME                        = 0x40000\n\tO_NOCTTY                         = 0x100\n\tO_NOFOLLOW                       = 0x8000\n\tO_NONBLOCK                       = 0x800\n\tO_PATH                           = 0x200000\n\tO_RSYNC                          = 0x101000\n\tO_SYNC                           = 0x101000\n\tO_TMPFILE                        = 0x404000\n\tO_TRUNC                          = 0x200\n\tPARENB                           = 0x1000\n\tPARODD                           = 0x2000\n\tPENDIN                           = 0x20000000\n\tPERF_EVENT_IOC_DISABLE           = 0x20002401\n\tPERF_EVENT_IOC_ENABLE            = 0x20002400\n\tPERF_EVENT_IOC_ID                = 0x40042407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8004240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x80042409\n\tPERF_EVENT_IOC_PERIOD            = 0x80082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc004240a\n\tPERF_EVENT_IOC_REFRESH           = 0x20002402\n\tPERF_EVENT_IOC_RESET             = 0x20002403\n\tPERF_EVENT_IOC_SET_BPF           = 0x80042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x80042406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x20002405\n\tPPPIOCATTACH                     = 0x8004743d\n\tPPPIOCATTCHAN                    = 0x80047438\n\tPPPIOCBRIDGECHAN                 = 0x80047435\n\tPPPIOCCONNECT                    = 0x8004743a\n\tPPPIOCDETACH                     = 0x8004743c\n\tPPPIOCDISCONN                    = 0x20007439\n\tPPPIOCGASYNCMAP                  = 0x40047458\n\tPPPIOCGCHAN                      = 0x40047437\n\tPPPIOCGDEBUG                     = 0x40047441\n\tPPPIOCGFLAGS                     = 0x4004745a\n\tPPPIOCGIDLE                      = 0x4008743f\n\tPPPIOCGIDLE32                    = 0x4008743f\n\tPPPIOCGIDLE64                    = 0x4010743f\n\tPPPIOCGL2TPSTATS                 = 0x40487436\n\tPPPIOCGMRU                       = 0x40047453\n\tPPPIOCGRASYNCMAP                 = 0x40047455\n\tPPPIOCGUNIT                      = 0x40047456\n\tPPPIOCGXASYNCMAP                 = 0x40207450\n\tPPPIOCSACTIVE                    = 0x80087446\n\tPPPIOCSASYNCMAP                  = 0x80047457\n\tPPPIOCSCOMPRESS                  = 0x800c744d\n\tPPPIOCSDEBUG                     = 0x80047440\n\tPPPIOCSFLAGS                     = 0x80047459\n\tPPPIOCSMAXCID                    = 0x80047451\n\tPPPIOCSMRRU                      = 0x8004743b\n\tPPPIOCSMRU                       = 0x80047452\n\tPPPIOCSNPMODE                    = 0x8008744b\n\tPPPIOCSPASS                      = 0x80087447\n\tPPPIOCSRASYNCMAP                 = 0x80047454\n\tPPPIOCSXASYNCMAP                 = 0x8020744f\n\tPPPIOCUNBRIDGECHAN               = 0x20007434\n\tPPPIOCXFERUNIT                   = 0x2000744e\n\tPROT_SAO                         = 0x10\n\tPR_SET_PTRACER_ANY               = 0xffffffff\n\tPTP_CLOCK_GETCAPS                = 0x40503d01\n\tPTP_CLOCK_GETCAPS2               = 0x40503d0a\n\tPTP_ENABLE_PPS                   = 0x80043d04\n\tPTP_ENABLE_PPS2                  = 0x80043d0d\n\tPTP_EXTTS_REQUEST                = 0x80103d02\n\tPTP_EXTTS_REQUEST2               = 0x80103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x20003d13\n\tPTP_MASK_EN_SINGLE               = 0x80043d14\n\tPTP_PEROUT_REQUEST               = 0x80383d03\n\tPTP_PEROUT_REQUEST2              = 0x80383d0c\n\tPTP_PIN_SETFUNC                  = 0x80603d07\n\tPTP_PIN_SETFUNC2                 = 0x80603d10\n\tPTP_SYS_OFFSET                   = 0x83403d05\n\tPTP_SYS_OFFSET2                  = 0x83403d0e\n\tPTRACE_GETEVRREGS                = 0x14\n\tPTRACE_GETFPREGS                 = 0xe\n\tPTRACE_GETREGS64                 = 0x16\n\tPTRACE_GETVRREGS                 = 0x12\n\tPTRACE_GETVSRREGS                = 0x1b\n\tPTRACE_GET_DEBUGREG              = 0x19\n\tPTRACE_SETEVRREGS                = 0x15\n\tPTRACE_SETFPREGS                 = 0xf\n\tPTRACE_SETREGS64                 = 0x17\n\tPTRACE_SETVRREGS                 = 0x13\n\tPTRACE_SETVSRREGS                = 0x1c\n\tPTRACE_SET_DEBUGREG              = 0x1a\n\tPTRACE_SINGLEBLOCK               = 0x100\n\tPTRACE_SYSEMU                    = 0x1d\n\tPTRACE_SYSEMU_SINGLESTEP         = 0x1e\n\tPT_CCR                           = 0x26\n\tPT_CTR                           = 0x23\n\tPT_DAR                           = 0x29\n\tPT_DSCR                          = 0x2c\n\tPT_DSISR                         = 0x2a\n\tPT_FPR0                          = 0x30\n\tPT_FPR31                         = 0x6e\n\tPT_FPSCR                         = 0x71\n\tPT_LNK                           = 0x24\n\tPT_MQ                            = 0x27\n\tPT_MSR                           = 0x21\n\tPT_NIP                           = 0x20\n\tPT_ORIG_R3                       = 0x22\n\tPT_R0                            = 0x0\n\tPT_R1                            = 0x1\n\tPT_R10                           = 0xa\n\tPT_R11                           = 0xb\n\tPT_R12                           = 0xc\n\tPT_R13                           = 0xd\n\tPT_R14                           = 0xe\n\tPT_R15                           = 0xf\n\tPT_R16                           = 0x10\n\tPT_R17                           = 0x11\n\tPT_R18                           = 0x12\n\tPT_R19                           = 0x13\n\tPT_R2                            = 0x2\n\tPT_R20                           = 0x14\n\tPT_R21                           = 0x15\n\tPT_R22                           = 0x16\n\tPT_R23                           = 0x17\n\tPT_R24                           = 0x18\n\tPT_R25                           = 0x19\n\tPT_R26                           = 0x1a\n\tPT_R27                           = 0x1b\n\tPT_R28                           = 0x1c\n\tPT_R29                           = 0x1d\n\tPT_R3                            = 0x3\n\tPT_R30                           = 0x1e\n\tPT_R31                           = 0x1f\n\tPT_R4                            = 0x4\n\tPT_R5                            = 0x5\n\tPT_R6                            = 0x6\n\tPT_R7                            = 0x7\n\tPT_R8                            = 0x8\n\tPT_R9                            = 0x9\n\tPT_REGS_COUNT                    = 0x2c\n\tPT_RESULT                        = 0x2b\n\tPT_TRAP                          = 0x28\n\tPT_XER                           = 0x25\n\tRLIMIT_AS                        = 0x9\n\tRLIMIT_MEMLOCK                   = 0x8\n\tRLIMIT_NOFILE                    = 0x7\n\tRLIMIT_NPROC                     = 0x6\n\tRLIMIT_RSS                       = 0x5\n\tRNDADDENTROPY                    = 0x80085203\n\tRNDADDTOENTCNT                   = 0x80045201\n\tRNDCLEARPOOL                     = 0x20005206\n\tRNDGETENTCNT                     = 0x40045200\n\tRNDGETPOOL                       = 0x40085202\n\tRNDRESEEDCRNG                    = 0x20005207\n\tRNDZAPENTCNT                     = 0x20005204\n\tRTC_AIE_OFF                      = 0x20007002\n\tRTC_AIE_ON                       = 0x20007001\n\tRTC_ALM_READ                     = 0x40247008\n\tRTC_ALM_SET                      = 0x80247007\n\tRTC_EPOCH_READ                   = 0x4004700d\n\tRTC_EPOCH_SET                    = 0x8004700e\n\tRTC_IRQP_READ                    = 0x4004700b\n\tRTC_IRQP_SET                     = 0x8004700c\n\tRTC_PARAM_GET                    = 0x80187013\n\tRTC_PARAM_SET                    = 0x80187014\n\tRTC_PIE_OFF                      = 0x20007006\n\tRTC_PIE_ON                       = 0x20007005\n\tRTC_PLL_GET                      = 0x401c7011\n\tRTC_PLL_SET                      = 0x801c7012\n\tRTC_RD_TIME                      = 0x40247009\n\tRTC_SET_TIME                     = 0x8024700a\n\tRTC_UIE_OFF                      = 0x20007004\n\tRTC_UIE_ON                       = 0x20007003\n\tRTC_VL_CLR                       = 0x20007014\n\tRTC_VL_READ                      = 0x40047013\n\tRTC_WIE_OFF                      = 0x20007010\n\tRTC_WIE_ON                       = 0x2000700f\n\tRTC_WKALM_RD                     = 0x40287010\n\tRTC_WKALM_SET                    = 0x8028700f\n\tSCM_DEVMEM_DMABUF                = 0x4f\n\tSCM_DEVMEM_LINEAR                = 0x4e\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TS_OPT_ID                    = 0x51\n\tSCM_TXTIME                       = 0x3d\n\tSCM_WIFI_STATUS                  = 0x29\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x80082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x80082104\n\tSFD_CLOEXEC                      = 0x80000\n\tSFD_NONBLOCK                     = 0x800\n\tSIOCATMARK                       = 0x8905\n\tSIOCGPGRP                        = 0x8904\n\tSIOCGSTAMPNS_NEW                 = 0x40108907\n\tSIOCGSTAMP_NEW                   = 0x40108906\n\tSIOCINQ                          = 0x4004667f\n\tSIOCOUTQ                         = 0x40047473\n\tSIOCSPGRP                        = 0x8902\n\tSOCK_CLOEXEC                     = 0x80000\n\tSOCK_DGRAM                       = 0x2\n\tSOCK_NONBLOCK                    = 0x800\n\tSOCK_STREAM                      = 0x1\n\tSOL_SOCKET                       = 0x1\n\tSO_ACCEPTCONN                    = 0x1e\n\tSO_ATTACH_BPF                    = 0x32\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x34\n\tSO_BINDTODEVICE                  = 0x19\n\tSO_BINDTOIFINDEX                 = 0x3e\n\tSO_BPF_EXTENSIONS                = 0x30\n\tSO_BROADCAST                     = 0x6\n\tSO_BSDCOMPAT                     = 0xe\n\tSO_BUF_LOCK                      = 0x48\n\tSO_BUSY_POLL                     = 0x2e\n\tSO_BUSY_POLL_BUDGET              = 0x46\n\tSO_CNX_ADVICE                    = 0x35\n\tSO_COOKIE                        = 0x39\n\tSO_DETACH_REUSEPORT_BPF          = 0x44\n\tSO_DEVMEM_DMABUF                 = 0x4f\n\tSO_DEVMEM_DONTNEED               = 0x50\n\tSO_DEVMEM_LINEAR                 = 0x4e\n\tSO_DOMAIN                        = 0x27\n\tSO_DONTROUTE                     = 0x5\n\tSO_ERROR                         = 0x4\n\tSO_INCOMING_CPU                  = 0x31\n\tSO_INCOMING_NAPI_ID              = 0x38\n\tSO_KEEPALIVE                     = 0x9\n\tSO_LINGER                        = 0xd\n\tSO_LOCK_FILTER                   = 0x2c\n\tSO_MARK                          = 0x24\n\tSO_MAX_PACING_RATE               = 0x2f\n\tSO_MEMINFO                       = 0x37\n\tSO_NETNS_COOKIE                  = 0x47\n\tSO_NOFCS                         = 0x2b\n\tSO_OOBINLINE                     = 0xa\n\tSO_PASSCRED                      = 0x14\n\tSO_PASSPIDFD                     = 0x4c\n\tSO_PASSSEC                       = 0x22\n\tSO_PEEK_OFF                      = 0x2a\n\tSO_PEERCRED                      = 0x15\n\tSO_PEERGROUPS                    = 0x3b\n\tSO_PEERPIDFD                     = 0x4d\n\tSO_PEERSEC                       = 0x1f\n\tSO_PREFER_BUSY_POLL              = 0x45\n\tSO_PROTOCOL                      = 0x26\n\tSO_RCVBUF                        = 0x8\n\tSO_RCVBUFFORCE                   = 0x21\n\tSO_RCVLOWAT                      = 0x10\n\tSO_RCVMARK                       = 0x4b\n\tSO_RCVTIMEO                      = 0x12\n\tSO_RCVTIMEO_NEW                  = 0x42\n\tSO_RCVTIMEO_OLD                  = 0x12\n\tSO_RESERVE_MEM                   = 0x49\n\tSO_REUSEADDR                     = 0x2\n\tSO_REUSEPORT                     = 0xf\n\tSO_RXQ_OVFL                      = 0x28\n\tSO_SECURITY_AUTHENTICATION       = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x17\n\tSO_SELECT_ERR_QUEUE              = 0x2d\n\tSO_SNDBUF                        = 0x7\n\tSO_SNDBUFFORCE                   = 0x20\n\tSO_SNDLOWAT                      = 0x11\n\tSO_SNDTIMEO                      = 0x13\n\tSO_SNDTIMEO_NEW                  = 0x43\n\tSO_SNDTIMEO_OLD                  = 0x13\n\tSO_TIMESTAMPING                  = 0x25\n\tSO_TIMESTAMPING_NEW              = 0x41\n\tSO_TIMESTAMPING_OLD              = 0x25\n\tSO_TIMESTAMPNS                   = 0x23\n\tSO_TIMESTAMPNS_NEW               = 0x40\n\tSO_TIMESTAMPNS_OLD               = 0x23\n\tSO_TIMESTAMP_NEW                 = 0x3f\n\tSO_TXREHASH                      = 0x4a\n\tSO_TXTIME                        = 0x3d\n\tSO_TYPE                          = 0x3\n\tSO_WIFI_STATUS                   = 0x29\n\tSO_ZEROCOPY                      = 0x3c\n\tTAB1                             = 0x400\n\tTAB2                             = 0x800\n\tTAB3                             = 0xc00\n\tTABDLY                           = 0xc00\n\tTCFLSH                           = 0x2000741f\n\tTCGETA                           = 0x40147417\n\tTCGETS                           = 0x402c7413\n\tTCSAFLUSH                        = 0x2\n\tTCSBRK                           = 0x2000741d\n\tTCSBRKP                          = 0x5425\n\tTCSETA                           = 0x80147418\n\tTCSETAF                          = 0x8014741c\n\tTCSETAW                          = 0x80147419\n\tTCSETS                           = 0x802c7414\n\tTCSETSF                          = 0x802c7416\n\tTCSETSW                          = 0x802c7415\n\tTCXONC                           = 0x2000741e\n\tTFD_CLOEXEC                      = 0x80000\n\tTFD_NONBLOCK                     = 0x800\n\tTIOCCBRK                         = 0x5428\n\tTIOCCONS                         = 0x541d\n\tTIOCEXCL                         = 0x540c\n\tTIOCGDEV                         = 0x40045432\n\tTIOCGETC                         = 0x40067412\n\tTIOCGETD                         = 0x5424\n\tTIOCGETP                         = 0x40067408\n\tTIOCGEXCL                        = 0x40045440\n\tTIOCGICOUNT                      = 0x545d\n\tTIOCGISO7816                     = 0x40285442\n\tTIOCGLCKTRMIOS                   = 0x5456\n\tTIOCGLTC                         = 0x40067474\n\tTIOCGPGRP                        = 0x40047477\n\tTIOCGPKT                         = 0x40045438\n\tTIOCGPTLCK                       = 0x40045439\n\tTIOCGPTN                         = 0x40045430\n\tTIOCGPTPEER                      = 0x20005441\n\tTIOCGRS485                       = 0x542e\n\tTIOCGSERIAL                      = 0x541e\n\tTIOCGSID                         = 0x5429\n\tTIOCGSOFTCAR                     = 0x5419\n\tTIOCGWINSZ                       = 0x40087468\n\tTIOCINQ                          = 0x4004667f\n\tTIOCLINUX                        = 0x541c\n\tTIOCMBIC                         = 0x5417\n\tTIOCMBIS                         = 0x5416\n\tTIOCMGET                         = 0x5415\n\tTIOCMIWAIT                       = 0x545c\n\tTIOCMSET                         = 0x5418\n\tTIOCM_CAR                        = 0x40\n\tTIOCM_CD                         = 0x40\n\tTIOCM_CTS                        = 0x20\n\tTIOCM_DSR                        = 0x100\n\tTIOCM_LOOP                       = 0x8000\n\tTIOCM_OUT1                       = 0x2000\n\tTIOCM_OUT2                       = 0x4000\n\tTIOCM_RI                         = 0x80\n\tTIOCM_RNG                        = 0x80\n\tTIOCM_SR                         = 0x10\n\tTIOCM_ST                         = 0x8\n\tTIOCNOTTY                        = 0x5422\n\tTIOCNXCL                         = 0x540d\n\tTIOCOUTQ                         = 0x40047473\n\tTIOCPKT                          = 0x5420\n\tTIOCSBRK                         = 0x5427\n\tTIOCSCTTY                        = 0x540e\n\tTIOCSERCONFIG                    = 0x5453\n\tTIOCSERGETLSR                    = 0x5459\n\tTIOCSERGETMULTI                  = 0x545a\n\tTIOCSERGSTRUCT                   = 0x5458\n\tTIOCSERGWILD                     = 0x5454\n\tTIOCSERSETMULTI                  = 0x545b\n\tTIOCSERSWILD                     = 0x5455\n\tTIOCSER_TEMT                     = 0x1\n\tTIOCSETC                         = 0x80067411\n\tTIOCSETD                         = 0x5423\n\tTIOCSETN                         = 0x8006740a\n\tTIOCSETP                         = 0x80067409\n\tTIOCSIG                          = 0x80045436\n\tTIOCSISO7816                     = 0xc0285443\n\tTIOCSLCKTRMIOS                   = 0x5457\n\tTIOCSLTC                         = 0x80067475\n\tTIOCSPGRP                        = 0x80047476\n\tTIOCSPTLCK                       = 0x80045431\n\tTIOCSRS485                       = 0x542f\n\tTIOCSSERIAL                      = 0x541f\n\tTIOCSSOFTCAR                     = 0x541a\n\tTIOCSTART                        = 0x2000746e\n\tTIOCSTI                          = 0x5412\n\tTIOCSTOP                         = 0x2000746f\n\tTIOCSWINSZ                       = 0x80087467\n\tTIOCVHANGUP                      = 0x5437\n\tTOSTOP                           = 0x400000\n\tTUNATTACHFILTER                  = 0x800854d5\n\tTUNDETACHFILTER                  = 0x800854d6\n\tTUNGETDEVNETNS                   = 0x200054e3\n\tTUNGETFEATURES                   = 0x400454cf\n\tTUNGETFILTER                     = 0x400854db\n\tTUNGETIFF                        = 0x400454d2\n\tTUNGETSNDBUF                     = 0x400454d3\n\tTUNGETVNETBE                     = 0x400454df\n\tTUNGETVNETHDRSZ                  = 0x400454d7\n\tTUNGETVNETLE                     = 0x400454dd\n\tTUNSETCARRIER                    = 0x800454e2\n\tTUNSETDEBUG                      = 0x800454c9\n\tTUNSETFILTEREBPF                 = 0x400454e1\n\tTUNSETGROUP                      = 0x800454ce\n\tTUNSETIFF                        = 0x800454ca\n\tTUNSETIFINDEX                    = 0x800454da\n\tTUNSETLINK                       = 0x800454cd\n\tTUNSETNOCSUM                     = 0x800454c8\n\tTUNSETOFFLOAD                    = 0x800454d0\n\tTUNSETOWNER                      = 0x800454cc\n\tTUNSETPERSIST                    = 0x800454cb\n\tTUNSETQUEUE                      = 0x800454d9\n\tTUNSETSNDBUF                     = 0x800454d4\n\tTUNSETSTEERINGEBPF               = 0x400454e0\n\tTUNSETTXFILTER                   = 0x800454d1\n\tTUNSETVNETBE                     = 0x800454de\n\tTUNSETVNETHDRSZ                  = 0x800454d8\n\tTUNSETVNETLE                     = 0x800454dc\n\tUBI_IOCATT                       = 0x80186f40\n\tUBI_IOCDET                       = 0x80046f41\n\tUBI_IOCEBCH                      = 0x80044f02\n\tUBI_IOCEBER                      = 0x80044f01\n\tUBI_IOCEBISMAP                   = 0x40044f05\n\tUBI_IOCEBMAP                     = 0x80084f03\n\tUBI_IOCEBUNMAP                   = 0x80044f04\n\tUBI_IOCMKVOL                     = 0x80986f00\n\tUBI_IOCRMVOL                     = 0x80046f01\n\tUBI_IOCRNVOL                     = 0x91106f03\n\tUBI_IOCRPEB                      = 0x80046f04\n\tUBI_IOCRSVOL                     = 0x800c6f02\n\tUBI_IOCSETVOLPROP                = 0x80104f06\n\tUBI_IOCSPEB                      = 0x80046f05\n\tUBI_IOCVOLCRBLK                  = 0x80804f07\n\tUBI_IOCVOLRMBLK                  = 0x20004f08\n\tUBI_IOCVOLUP                     = 0x80084f00\n\tVDISCARD                         = 0x10\n\tVEOF                             = 0x4\n\tVEOL                             = 0x6\n\tVEOL2                            = 0x8\n\tVMIN                             = 0x5\n\tVREPRINT                         = 0xb\n\tVSTART                           = 0xd\n\tVSTOP                            = 0xe\n\tVSUSP                            = 0xc\n\tVSWTC                            = 0x9\n\tVT1                              = 0x10000\n\tVTDLY                            = 0x10000\n\tVTIME                            = 0x7\n\tVWERASE                          = 0xa\n\tWDIOC_GETBOOTSTATUS              = 0x40045702\n\tWDIOC_GETPRETIMEOUT              = 0x40045709\n\tWDIOC_GETSTATUS                  = 0x40045701\n\tWDIOC_GETSUPPORT                 = 0x40285700\n\tWDIOC_GETTEMP                    = 0x40045703\n\tWDIOC_GETTIMELEFT                = 0x4004570a\n\tWDIOC_GETTIMEOUT                 = 0x40045707\n\tWDIOC_KEEPALIVE                  = 0x40045705\n\tWDIOC_SETOPTIONS                 = 0x40045704\n\tWORDSIZE                         = 0x20\n\tXCASE                            = 0x4000\n\tXTABS                            = 0xc00\n\t_HIDIOCGRAWNAME                  = 0x40804804\n\t_HIDIOCGRAWPHYS                  = 0x40404805\n\t_HIDIOCGRAWUNIQ                  = 0x40404808\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x62)\n\tEADDRNOTAVAIL   = syscall.Errno(0x63)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x61)\n\tEALREADY        = syscall.Errno(0x72)\n\tEBADE           = syscall.Errno(0x34)\n\tEBADFD          = syscall.Errno(0x4d)\n\tEBADMSG         = syscall.Errno(0x4a)\n\tEBADR           = syscall.Errno(0x35)\n\tEBADRQC         = syscall.Errno(0x38)\n\tEBADSLT         = syscall.Errno(0x39)\n\tEBFONT          = syscall.Errno(0x3b)\n\tECANCELED       = syscall.Errno(0x7d)\n\tECHRNG          = syscall.Errno(0x2c)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x67)\n\tECONNREFUSED    = syscall.Errno(0x6f)\n\tECONNRESET      = syscall.Errno(0x68)\n\tEDEADLK         = syscall.Errno(0x23)\n\tEDEADLOCK       = syscall.Errno(0x3a)\n\tEDESTADDRREQ    = syscall.Errno(0x59)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x7a)\n\tEHOSTDOWN       = syscall.Errno(0x70)\n\tEHOSTUNREACH    = syscall.Errno(0x71)\n\tEHWPOISON       = syscall.Errno(0x85)\n\tEIDRM           = syscall.Errno(0x2b)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x73)\n\tEISCONN         = syscall.Errno(0x6a)\n\tEISNAM          = syscall.Errno(0x78)\n\tEKEYEXPIRED     = syscall.Errno(0x7f)\n\tEKEYREJECTED    = syscall.Errno(0x81)\n\tEKEYREVOKED     = syscall.Errno(0x80)\n\tEL2HLT          = syscall.Errno(0x33)\n\tEL2NSYNC        = syscall.Errno(0x2d)\n\tEL3HLT          = syscall.Errno(0x2e)\n\tEL3RST          = syscall.Errno(0x2f)\n\tELIBACC         = syscall.Errno(0x4f)\n\tELIBBAD         = syscall.Errno(0x50)\n\tELIBEXEC        = syscall.Errno(0x53)\n\tELIBMAX         = syscall.Errno(0x52)\n\tELIBSCN         = syscall.Errno(0x51)\n\tELNRNG          = syscall.Errno(0x30)\n\tELOOP           = syscall.Errno(0x28)\n\tEMEDIUMTYPE     = syscall.Errno(0x7c)\n\tEMSGSIZE        = syscall.Errno(0x5a)\n\tEMULTIHOP       = syscall.Errno(0x48)\n\tENAMETOOLONG    = syscall.Errno(0x24)\n\tENAVAIL         = syscall.Errno(0x77)\n\tENETDOWN        = syscall.Errno(0x64)\n\tENETRESET       = syscall.Errno(0x66)\n\tENETUNREACH     = syscall.Errno(0x65)\n\tENOANO          = syscall.Errno(0x37)\n\tENOBUFS         = syscall.Errno(0x69)\n\tENOCSI          = syscall.Errno(0x32)\n\tENODATA         = syscall.Errno(0x3d)\n\tENOKEY          = syscall.Errno(0x7e)\n\tENOLCK          = syscall.Errno(0x25)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x7b)\n\tENOMSG          = syscall.Errno(0x2a)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x5c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x26)\n\tENOTCONN        = syscall.Errno(0x6b)\n\tENOTEMPTY       = syscall.Errno(0x27)\n\tENOTNAM         = syscall.Errno(0x76)\n\tENOTRECOVERABLE = syscall.Errno(0x83)\n\tENOTSOCK        = syscall.Errno(0x58)\n\tENOTSUP         = syscall.Errno(0x5f)\n\tENOTUNIQ        = syscall.Errno(0x4c)\n\tEOPNOTSUPP      = syscall.Errno(0x5f)\n\tEOVERFLOW       = syscall.Errno(0x4b)\n\tEOWNERDEAD      = syscall.Errno(0x82)\n\tEPFNOSUPPORT    = syscall.Errno(0x60)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x5d)\n\tEPROTOTYPE      = syscall.Errno(0x5b)\n\tEREMCHG         = syscall.Errno(0x4e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x79)\n\tERESTART        = syscall.Errno(0x55)\n\tERFKILL         = syscall.Errno(0x84)\n\tESHUTDOWN       = syscall.Errno(0x6c)\n\tESOCKTNOSUPPORT = syscall.Errno(0x5e)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x74)\n\tESTRPIPE        = syscall.Errno(0x56)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x6e)\n\tETOOMANYREFS    = syscall.Errno(0x6d)\n\tEUCLEAN         = syscall.Errno(0x75)\n\tEUNATCH         = syscall.Errno(0x31)\n\tEUSERS          = syscall.Errno(0x57)\n\tEXFULL          = syscall.Errno(0x36)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0x7)\n\tSIGCHLD   = syscall.Signal(0x11)\n\tSIGCLD    = syscall.Signal(0x11)\n\tSIGCONT   = syscall.Signal(0x12)\n\tSIGIO     = syscall.Signal(0x1d)\n\tSIGPOLL   = syscall.Signal(0x1d)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x1e)\n\tSIGSTKFLT = syscall.Signal(0x10)\n\tSIGSTOP   = syscall.Signal(0x13)\n\tSIGSYS    = syscall.Signal(0x1f)\n\tSIGTSTP   = syscall.Signal(0x14)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x17)\n\tSIGUSR1   = syscall.Signal(0xa)\n\tSIGUSR2   = syscall.Signal(0xc)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{36, \"ENAMETOOLONG\", \"file name too long\"},\n\t{37, \"ENOLCK\", \"no locks available\"},\n\t{38, \"ENOSYS\", \"function not implemented\"},\n\t{39, \"ENOTEMPTY\", \"directory not empty\"},\n\t{40, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{42, \"ENOMSG\", \"no message of desired type\"},\n\t{43, \"EIDRM\", \"identifier removed\"},\n\t{44, \"ECHRNG\", \"channel number out of range\"},\n\t{45, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{46, \"EL3HLT\", \"level 3 halted\"},\n\t{47, \"EL3RST\", \"level 3 reset\"},\n\t{48, \"ELNRNG\", \"link number out of range\"},\n\t{49, \"EUNATCH\", \"protocol driver not attached\"},\n\t{50, \"ENOCSI\", \"no CSI structure available\"},\n\t{51, \"EL2HLT\", \"level 2 halted\"},\n\t{52, \"EBADE\", \"invalid exchange\"},\n\t{53, \"EBADR\", \"invalid request descriptor\"},\n\t{54, \"EXFULL\", \"exchange full\"},\n\t{55, \"ENOANO\", \"no anode\"},\n\t{56, \"EBADRQC\", \"invalid request code\"},\n\t{57, \"EBADSLT\", \"invalid slot\"},\n\t{58, \"EDEADLOCK\", \"file locking deadlock error\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{72, \"EMULTIHOP\", \"multihop attempted\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EBADMSG\", \"bad message\"},\n\t{75, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{76, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{77, \"EBADFD\", \"file descriptor in bad state\"},\n\t{78, \"EREMCHG\", \"remote address changed\"},\n\t{79, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{80, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{81, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{82, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{83, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{84, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{85, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{86, \"ESTRPIPE\", \"streams pipe error\"},\n\t{87, \"EUSERS\", \"too many users\"},\n\t{88, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{89, \"EDESTADDRREQ\", \"destination address required\"},\n\t{90, \"EMSGSIZE\", \"message too long\"},\n\t{91, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{92, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{93, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{94, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{95, \"ENOTSUP\", \"operation not supported\"},\n\t{96, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{97, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{98, \"EADDRINUSE\", \"address already in use\"},\n\t{99, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{100, \"ENETDOWN\", \"network is down\"},\n\t{101, \"ENETUNREACH\", \"network is unreachable\"},\n\t{102, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{103, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{104, \"ECONNRESET\", \"connection reset by peer\"},\n\t{105, \"ENOBUFS\", \"no buffer space available\"},\n\t{106, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{107, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{108, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{109, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{110, \"ETIMEDOUT\", \"connection timed out\"},\n\t{111, \"ECONNREFUSED\", \"connection refused\"},\n\t{112, \"EHOSTDOWN\", \"host is down\"},\n\t{113, \"EHOSTUNREACH\", \"no route to host\"},\n\t{114, \"EALREADY\", \"operation already in progress\"},\n\t{115, \"EINPROGRESS\", \"operation now in progress\"},\n\t{116, \"ESTALE\", \"stale file handle\"},\n\t{117, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{118, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{119, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{120, \"EISNAM\", \"is a named type file\"},\n\t{121, \"EREMOTEIO\", \"remote I/O error\"},\n\t{122, \"EDQUOT\", \"disk quota exceeded\"},\n\t{123, \"ENOMEDIUM\", \"no medium found\"},\n\t{124, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{125, \"ECANCELED\", \"operation canceled\"},\n\t{126, \"ENOKEY\", \"required key not available\"},\n\t{127, \"EKEYEXPIRED\", \"key has expired\"},\n\t{128, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{129, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{130, \"EOWNERDEAD\", \"owner died\"},\n\t{131, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{132, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{133, \"EHWPOISON\", \"memory page has hardware error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGBUS\", \"bus error\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGUSR1\", \"user defined signal 1\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGUSR2\", \"user defined signal 2\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGSTKFLT\", \"stack fault\"},\n\t{17, \"SIGCHLD\", \"child exited\"},\n\t{18, \"SIGCONT\", \"continued\"},\n\t{19, \"SIGSTOP\", \"stopped (signal)\"},\n\t{20, \"SIGTSTP\", \"stopped\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGURG\", \"urgent I/O condition\"},\n\t{24, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGIO\", \"I/O possible\"},\n\t{30, \"SIGPWR\", \"power failure\"},\n\t{31, \"SIGSYS\", \"bad system call\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/ppc64/include\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc64 && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/ppc64/include _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tB1000000                         = 0x17\n\tB115200                          = 0x11\n\tB1152000                         = 0x18\n\tB1500000                         = 0x19\n\tB2000000                         = 0x1a\n\tB230400                          = 0x12\n\tB2500000                         = 0x1b\n\tB3000000                         = 0x1c\n\tB3500000                         = 0x1d\n\tB4000000                         = 0x1e\n\tB460800                          = 0x13\n\tB500000                          = 0x14\n\tB57600                           = 0x10\n\tB576000                          = 0x15\n\tB921600                          = 0x16\n\tBLKALIGNOFF                      = 0x2000127a\n\tBLKBSZGET                        = 0x40081270\n\tBLKBSZSET                        = 0x80081271\n\tBLKDISCARD                       = 0x20001277\n\tBLKDISCARDZEROES                 = 0x2000127c\n\tBLKFLSBUF                        = 0x20001261\n\tBLKFRAGET                        = 0x20001265\n\tBLKFRASET                        = 0x20001264\n\tBLKGETDISKSEQ                    = 0x40081280\n\tBLKGETSIZE                       = 0x20001260\n\tBLKGETSIZE64                     = 0x40081272\n\tBLKIOMIN                         = 0x20001278\n\tBLKIOOPT                         = 0x20001279\n\tBLKPBSZGET                       = 0x2000127b\n\tBLKRAGET                         = 0x20001263\n\tBLKRASET                         = 0x20001262\n\tBLKROGET                         = 0x2000125e\n\tBLKROSET                         = 0x2000125d\n\tBLKROTATIONAL                    = 0x2000127e\n\tBLKRRPART                        = 0x2000125f\n\tBLKSECDISCARD                    = 0x2000127d\n\tBLKSECTGET                       = 0x20001267\n\tBLKSECTSET                       = 0x20001266\n\tBLKSSZGET                        = 0x20001268\n\tBLKZEROOUT                       = 0x2000127f\n\tBOTHER                           = 0x1f\n\tBS1                              = 0x8000\n\tBSDLY                            = 0x8000\n\tCBAUD                            = 0xff\n\tCBAUDEX                          = 0x0\n\tCIBAUD                           = 0xff0000\n\tCLOCAL                           = 0x8000\n\tCR1                              = 0x1000\n\tCR2                              = 0x2000\n\tCR3                              = 0x3000\n\tCRDLY                            = 0x3000\n\tCREAD                            = 0x800\n\tCS6                              = 0x100\n\tCS7                              = 0x200\n\tCS8                              = 0x300\n\tCSIZE                            = 0x300\n\tCSTOPB                           = 0x400\n\tECCGETLAYOUT                     = 0x41484d11\n\tECCGETSTATS                      = 0x40104d12\n\tECHOCTL                          = 0x40\n\tECHOE                            = 0x2\n\tECHOK                            = 0x4\n\tECHOKE                           = 0x1\n\tECHONL                           = 0x10\n\tECHOPRT                          = 0x20\n\tEFD_CLOEXEC                      = 0x80000\n\tEFD_NONBLOCK                     = 0x800\n\tEPIOCGPARAMS                     = 0x40088a02\n\tEPIOCSPARAMS                     = 0x80088a01\n\tEPOLL_CLOEXEC                    = 0x80000\n\tEXTPROC                          = 0x10000000\n\tFF1                              = 0x4000\n\tFFDLY                            = 0x4000\n\tFICLONE                          = 0x80049409\n\tFICLONERANGE                     = 0x8020940d\n\tFLUSHO                           = 0x800000\n\tFS_IOC_ENABLE_VERITY             = 0x80806685\n\tFS_IOC_GETFLAGS                  = 0x40086601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x4010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x800c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x80106614\n\tFS_IOC_SETFLAGS                  = 0x80086602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x400c6613\n\tF_GETLK                          = 0x5\n\tF_GETLK64                        = 0xc\n\tF_GETOWN                         = 0x9\n\tF_RDLCK                          = 0x0\n\tF_SETLK                          = 0x6\n\tF_SETLK64                        = 0xd\n\tF_SETLKW                         = 0x7\n\tF_SETLKW64                       = 0xe\n\tF_SETOWN                         = 0x8\n\tF_UNLCK                          = 0x2\n\tF_WRLCK                          = 0x1\n\tHIDIOCGRAWINFO                   = 0x40084803\n\tHIDIOCGRDESC                     = 0x50044802\n\tHIDIOCGRDESCSIZE                 = 0x40044801\n\tHIDIOCREVOKE                     = 0x8004480d\n\tHUPCL                            = 0x4000\n\tICANON                           = 0x100\n\tIEXTEN                           = 0x400\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x800\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9\n\tIPV6_FLOWINFO_MASK               = 0xfffffff\n\tIPV6_FLOWLABEL_MASK              = 0xfffff\n\tISIG                             = 0x80\n\tIUCLC                            = 0x1000\n\tIXOFF                            = 0x400\n\tIXON                             = 0x200\n\tMAP_ANON                         = 0x20\n\tMAP_ANONYMOUS                    = 0x20\n\tMAP_DENYWRITE                    = 0x800\n\tMAP_EXECUTABLE                   = 0x1000\n\tMAP_GROWSDOWN                    = 0x100\n\tMAP_HUGETLB                      = 0x40000\n\tMAP_LOCKED                       = 0x80\n\tMAP_NONBLOCK                     = 0x10000\n\tMAP_NORESERVE                    = 0x40\n\tMAP_POPULATE                     = 0x8000\n\tMAP_STACK                        = 0x20000\n\tMAP_SYNC                         = 0x80000\n\tMCL_CURRENT                      = 0x2000\n\tMCL_FUTURE                       = 0x4000\n\tMCL_ONFAULT                      = 0x8000\n\tMEMERASE                         = 0x80084d02\n\tMEMERASE64                       = 0x80104d14\n\tMEMGETBADBLOCK                   = 0x80084d0b\n\tMEMGETINFO                       = 0x40204d01\n\tMEMGETOOBSEL                     = 0x40c84d0a\n\tMEMGETREGIONCOUNT                = 0x40044d07\n\tMEMISLOCKED                      = 0x40084d17\n\tMEMLOCK                          = 0x80084d05\n\tMEMREAD                          = 0xc0404d1a\n\tMEMREADOOB                       = 0xc0104d04\n\tMEMSETBADBLOCK                   = 0x80084d0c\n\tMEMUNLOCK                        = 0x80084d06\n\tMEMWRITEOOB                      = 0xc0104d03\n\tMTDFILEMODE                      = 0x20004d13\n\tNFDBITS                          = 0x40\n\tNL2                              = 0x200\n\tNL3                              = 0x300\n\tNLDLY                            = 0x300\n\tNOFLSH                           = 0x80000000\n\tNS_GET_MNTNS_ID                  = 0x4008b705\n\tNS_GET_NSTYPE                    = 0x2000b703\n\tNS_GET_OWNER_UID                 = 0x2000b704\n\tNS_GET_PARENT                    = 0x2000b702\n\tNS_GET_PID_FROM_PIDNS            = 0x4004b706\n\tNS_GET_PID_IN_PIDNS              = 0x4004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x4004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x4004b709\n\tNS_GET_USERNS                    = 0x2000b701\n\tOLCUC                            = 0x4\n\tONLCR                            = 0x2\n\tOTPERASE                         = 0x800c4d19\n\tOTPGETREGIONCOUNT                = 0x80044d0e\n\tOTPGETREGIONINFO                 = 0x800c4d0f\n\tOTPLOCK                          = 0x400c4d10\n\tOTPSELECT                        = 0x40044d0d\n\tO_APPEND                         = 0x400\n\tO_ASYNC                          = 0x2000\n\tO_CLOEXEC                        = 0x80000\n\tO_CREAT                          = 0x40\n\tO_DIRECT                         = 0x20000\n\tO_DIRECTORY                      = 0x4000\n\tO_DSYNC                          = 0x1000\n\tO_EXCL                           = 0x80\n\tO_FSYNC                          = 0x101000\n\tO_LARGEFILE                      = 0x0\n\tO_NDELAY                         = 0x800\n\tO_NOATIME                        = 0x40000\n\tO_NOCTTY                         = 0x100\n\tO_NOFOLLOW                       = 0x8000\n\tO_NONBLOCK                       = 0x800\n\tO_PATH                           = 0x200000\n\tO_RSYNC                          = 0x101000\n\tO_SYNC                           = 0x101000\n\tO_TMPFILE                        = 0x404000\n\tO_TRUNC                          = 0x200\n\tPARENB                           = 0x1000\n\tPARODD                           = 0x2000\n\tPENDIN                           = 0x20000000\n\tPERF_EVENT_IOC_DISABLE           = 0x20002401\n\tPERF_EVENT_IOC_ENABLE            = 0x20002400\n\tPERF_EVENT_IOC_ID                = 0x40082407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x80042409\n\tPERF_EVENT_IOC_PERIOD            = 0x80082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc008240a\n\tPERF_EVENT_IOC_REFRESH           = 0x20002402\n\tPERF_EVENT_IOC_RESET             = 0x20002403\n\tPERF_EVENT_IOC_SET_BPF           = 0x80042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x80082406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x20002405\n\tPPPIOCATTACH                     = 0x8004743d\n\tPPPIOCATTCHAN                    = 0x80047438\n\tPPPIOCBRIDGECHAN                 = 0x80047435\n\tPPPIOCCONNECT                    = 0x8004743a\n\tPPPIOCDETACH                     = 0x8004743c\n\tPPPIOCDISCONN                    = 0x20007439\n\tPPPIOCGASYNCMAP                  = 0x40047458\n\tPPPIOCGCHAN                      = 0x40047437\n\tPPPIOCGDEBUG                     = 0x40047441\n\tPPPIOCGFLAGS                     = 0x4004745a\n\tPPPIOCGIDLE                      = 0x4010743f\n\tPPPIOCGIDLE32                    = 0x4008743f\n\tPPPIOCGIDLE64                    = 0x4010743f\n\tPPPIOCGL2TPSTATS                 = 0x40487436\n\tPPPIOCGMRU                       = 0x40047453\n\tPPPIOCGRASYNCMAP                 = 0x40047455\n\tPPPIOCGUNIT                      = 0x40047456\n\tPPPIOCGXASYNCMAP                 = 0x40207450\n\tPPPIOCSACTIVE                    = 0x80107446\n\tPPPIOCSASYNCMAP                  = 0x80047457\n\tPPPIOCSCOMPRESS                  = 0x8010744d\n\tPPPIOCSDEBUG                     = 0x80047440\n\tPPPIOCSFLAGS                     = 0x80047459\n\tPPPIOCSMAXCID                    = 0x80047451\n\tPPPIOCSMRRU                      = 0x8004743b\n\tPPPIOCSMRU                       = 0x80047452\n\tPPPIOCSNPMODE                    = 0x8008744b\n\tPPPIOCSPASS                      = 0x80107447\n\tPPPIOCSRASYNCMAP                 = 0x80047454\n\tPPPIOCSXASYNCMAP                 = 0x8020744f\n\tPPPIOCUNBRIDGECHAN               = 0x20007434\n\tPPPIOCXFERUNIT                   = 0x2000744e\n\tPROT_SAO                         = 0x10\n\tPR_SET_PTRACER_ANY               = 0xffffffffffffffff\n\tPTP_CLOCK_GETCAPS                = 0x40503d01\n\tPTP_CLOCK_GETCAPS2               = 0x40503d0a\n\tPTP_ENABLE_PPS                   = 0x80043d04\n\tPTP_ENABLE_PPS2                  = 0x80043d0d\n\tPTP_EXTTS_REQUEST                = 0x80103d02\n\tPTP_EXTTS_REQUEST2               = 0x80103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x20003d13\n\tPTP_MASK_EN_SINGLE               = 0x80043d14\n\tPTP_PEROUT_REQUEST               = 0x80383d03\n\tPTP_PEROUT_REQUEST2              = 0x80383d0c\n\tPTP_PIN_SETFUNC                  = 0x80603d07\n\tPTP_PIN_SETFUNC2                 = 0x80603d10\n\tPTP_SYS_OFFSET                   = 0x83403d05\n\tPTP_SYS_OFFSET2                  = 0x83403d0e\n\tPTRACE_GETEVRREGS                = 0x14\n\tPTRACE_GETFPREGS                 = 0xe\n\tPTRACE_GETREGS64                 = 0x16\n\tPTRACE_GETVRREGS                 = 0x12\n\tPTRACE_GETVSRREGS                = 0x1b\n\tPTRACE_GET_DEBUGREG              = 0x19\n\tPTRACE_SETEVRREGS                = 0x15\n\tPTRACE_SETFPREGS                 = 0xf\n\tPTRACE_SETREGS64                 = 0x17\n\tPTRACE_SETVRREGS                 = 0x13\n\tPTRACE_SETVSRREGS                = 0x1c\n\tPTRACE_SET_DEBUGREG              = 0x1a\n\tPTRACE_SINGLEBLOCK               = 0x100\n\tPTRACE_SYSEMU                    = 0x1d\n\tPTRACE_SYSEMU_SINGLESTEP         = 0x1e\n\tPT_CCR                           = 0x26\n\tPT_CTR                           = 0x23\n\tPT_DAR                           = 0x29\n\tPT_DSCR                          = 0x2c\n\tPT_DSISR                         = 0x2a\n\tPT_FPR0                          = 0x30\n\tPT_FPSCR                         = 0x50\n\tPT_LNK                           = 0x24\n\tPT_MSR                           = 0x21\n\tPT_NIP                           = 0x20\n\tPT_ORIG_R3                       = 0x22\n\tPT_R0                            = 0x0\n\tPT_R1                            = 0x1\n\tPT_R10                           = 0xa\n\tPT_R11                           = 0xb\n\tPT_R12                           = 0xc\n\tPT_R13                           = 0xd\n\tPT_R14                           = 0xe\n\tPT_R15                           = 0xf\n\tPT_R16                           = 0x10\n\tPT_R17                           = 0x11\n\tPT_R18                           = 0x12\n\tPT_R19                           = 0x13\n\tPT_R2                            = 0x2\n\tPT_R20                           = 0x14\n\tPT_R21                           = 0x15\n\tPT_R22                           = 0x16\n\tPT_R23                           = 0x17\n\tPT_R24                           = 0x18\n\tPT_R25                           = 0x19\n\tPT_R26                           = 0x1a\n\tPT_R27                           = 0x1b\n\tPT_R28                           = 0x1c\n\tPT_R29                           = 0x1d\n\tPT_R3                            = 0x3\n\tPT_R30                           = 0x1e\n\tPT_R31                           = 0x1f\n\tPT_R4                            = 0x4\n\tPT_R5                            = 0x5\n\tPT_R6                            = 0x6\n\tPT_R7                            = 0x7\n\tPT_R8                            = 0x8\n\tPT_R9                            = 0x9\n\tPT_REGS_COUNT                    = 0x2c\n\tPT_RESULT                        = 0x2b\n\tPT_SOFTE                         = 0x27\n\tPT_TRAP                          = 0x28\n\tPT_VR0                           = 0x52\n\tPT_VRSAVE                        = 0x94\n\tPT_VSCR                          = 0x93\n\tPT_VSR0                          = 0x96\n\tPT_VSR31                         = 0xd4\n\tPT_XER                           = 0x25\n\tRLIMIT_AS                        = 0x9\n\tRLIMIT_MEMLOCK                   = 0x8\n\tRLIMIT_NOFILE                    = 0x7\n\tRLIMIT_NPROC                     = 0x6\n\tRLIMIT_RSS                       = 0x5\n\tRNDADDENTROPY                    = 0x80085203\n\tRNDADDTOENTCNT                   = 0x80045201\n\tRNDCLEARPOOL                     = 0x20005206\n\tRNDGETENTCNT                     = 0x40045200\n\tRNDGETPOOL                       = 0x40085202\n\tRNDRESEEDCRNG                    = 0x20005207\n\tRNDZAPENTCNT                     = 0x20005204\n\tRTC_AIE_OFF                      = 0x20007002\n\tRTC_AIE_ON                       = 0x20007001\n\tRTC_ALM_READ                     = 0x40247008\n\tRTC_ALM_SET                      = 0x80247007\n\tRTC_EPOCH_READ                   = 0x4008700d\n\tRTC_EPOCH_SET                    = 0x8008700e\n\tRTC_IRQP_READ                    = 0x4008700b\n\tRTC_IRQP_SET                     = 0x8008700c\n\tRTC_PARAM_GET                    = 0x80187013\n\tRTC_PARAM_SET                    = 0x80187014\n\tRTC_PIE_OFF                      = 0x20007006\n\tRTC_PIE_ON                       = 0x20007005\n\tRTC_PLL_GET                      = 0x40207011\n\tRTC_PLL_SET                      = 0x80207012\n\tRTC_RD_TIME                      = 0x40247009\n\tRTC_SET_TIME                     = 0x8024700a\n\tRTC_UIE_OFF                      = 0x20007004\n\tRTC_UIE_ON                       = 0x20007003\n\tRTC_VL_CLR                       = 0x20007014\n\tRTC_VL_READ                      = 0x40047013\n\tRTC_WIE_OFF                      = 0x20007010\n\tRTC_WIE_ON                       = 0x2000700f\n\tRTC_WKALM_RD                     = 0x40287010\n\tRTC_WKALM_SET                    = 0x8028700f\n\tSCM_DEVMEM_DMABUF                = 0x4f\n\tSCM_DEVMEM_LINEAR                = 0x4e\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TS_OPT_ID                    = 0x51\n\tSCM_TXTIME                       = 0x3d\n\tSCM_WIFI_STATUS                  = 0x29\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x80082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x80082104\n\tSFD_CLOEXEC                      = 0x80000\n\tSFD_NONBLOCK                     = 0x800\n\tSIOCATMARK                       = 0x8905\n\tSIOCGPGRP                        = 0x8904\n\tSIOCGSTAMPNS_NEW                 = 0x40108907\n\tSIOCGSTAMP_NEW                   = 0x40108906\n\tSIOCINQ                          = 0x4004667f\n\tSIOCOUTQ                         = 0x40047473\n\tSIOCSPGRP                        = 0x8902\n\tSOCK_CLOEXEC                     = 0x80000\n\tSOCK_DGRAM                       = 0x2\n\tSOCK_NONBLOCK                    = 0x800\n\tSOCK_STREAM                      = 0x1\n\tSOL_SOCKET                       = 0x1\n\tSO_ACCEPTCONN                    = 0x1e\n\tSO_ATTACH_BPF                    = 0x32\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x34\n\tSO_BINDTODEVICE                  = 0x19\n\tSO_BINDTOIFINDEX                 = 0x3e\n\tSO_BPF_EXTENSIONS                = 0x30\n\tSO_BROADCAST                     = 0x6\n\tSO_BSDCOMPAT                     = 0xe\n\tSO_BUF_LOCK                      = 0x48\n\tSO_BUSY_POLL                     = 0x2e\n\tSO_BUSY_POLL_BUDGET              = 0x46\n\tSO_CNX_ADVICE                    = 0x35\n\tSO_COOKIE                        = 0x39\n\tSO_DETACH_REUSEPORT_BPF          = 0x44\n\tSO_DEVMEM_DMABUF                 = 0x4f\n\tSO_DEVMEM_DONTNEED               = 0x50\n\tSO_DEVMEM_LINEAR                 = 0x4e\n\tSO_DOMAIN                        = 0x27\n\tSO_DONTROUTE                     = 0x5\n\tSO_ERROR                         = 0x4\n\tSO_INCOMING_CPU                  = 0x31\n\tSO_INCOMING_NAPI_ID              = 0x38\n\tSO_KEEPALIVE                     = 0x9\n\tSO_LINGER                        = 0xd\n\tSO_LOCK_FILTER                   = 0x2c\n\tSO_MARK                          = 0x24\n\tSO_MAX_PACING_RATE               = 0x2f\n\tSO_MEMINFO                       = 0x37\n\tSO_NETNS_COOKIE                  = 0x47\n\tSO_NOFCS                         = 0x2b\n\tSO_OOBINLINE                     = 0xa\n\tSO_PASSCRED                      = 0x14\n\tSO_PASSPIDFD                     = 0x4c\n\tSO_PASSSEC                       = 0x22\n\tSO_PEEK_OFF                      = 0x2a\n\tSO_PEERCRED                      = 0x15\n\tSO_PEERGROUPS                    = 0x3b\n\tSO_PEERPIDFD                     = 0x4d\n\tSO_PEERSEC                       = 0x1f\n\tSO_PREFER_BUSY_POLL              = 0x45\n\tSO_PROTOCOL                      = 0x26\n\tSO_RCVBUF                        = 0x8\n\tSO_RCVBUFFORCE                   = 0x21\n\tSO_RCVLOWAT                      = 0x10\n\tSO_RCVMARK                       = 0x4b\n\tSO_RCVTIMEO                      = 0x12\n\tSO_RCVTIMEO_NEW                  = 0x42\n\tSO_RCVTIMEO_OLD                  = 0x12\n\tSO_RESERVE_MEM                   = 0x49\n\tSO_REUSEADDR                     = 0x2\n\tSO_REUSEPORT                     = 0xf\n\tSO_RXQ_OVFL                      = 0x28\n\tSO_SECURITY_AUTHENTICATION       = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x17\n\tSO_SELECT_ERR_QUEUE              = 0x2d\n\tSO_SNDBUF                        = 0x7\n\tSO_SNDBUFFORCE                   = 0x20\n\tSO_SNDLOWAT                      = 0x11\n\tSO_SNDTIMEO                      = 0x13\n\tSO_SNDTIMEO_NEW                  = 0x43\n\tSO_SNDTIMEO_OLD                  = 0x13\n\tSO_TIMESTAMPING                  = 0x25\n\tSO_TIMESTAMPING_NEW              = 0x41\n\tSO_TIMESTAMPING_OLD              = 0x25\n\tSO_TIMESTAMPNS                   = 0x23\n\tSO_TIMESTAMPNS_NEW               = 0x40\n\tSO_TIMESTAMPNS_OLD               = 0x23\n\tSO_TIMESTAMP_NEW                 = 0x3f\n\tSO_TXREHASH                      = 0x4a\n\tSO_TXTIME                        = 0x3d\n\tSO_TYPE                          = 0x3\n\tSO_WIFI_STATUS                   = 0x29\n\tSO_ZEROCOPY                      = 0x3c\n\tTAB1                             = 0x400\n\tTAB2                             = 0x800\n\tTAB3                             = 0xc00\n\tTABDLY                           = 0xc00\n\tTCFLSH                           = 0x2000741f\n\tTCGETA                           = 0x40147417\n\tTCGETS                           = 0x402c7413\n\tTCSAFLUSH                        = 0x2\n\tTCSBRK                           = 0x2000741d\n\tTCSBRKP                          = 0x5425\n\tTCSETA                           = 0x80147418\n\tTCSETAF                          = 0x8014741c\n\tTCSETAW                          = 0x80147419\n\tTCSETS                           = 0x802c7414\n\tTCSETSF                          = 0x802c7416\n\tTCSETSW                          = 0x802c7415\n\tTCXONC                           = 0x2000741e\n\tTFD_CLOEXEC                      = 0x80000\n\tTFD_NONBLOCK                     = 0x800\n\tTIOCCBRK                         = 0x5428\n\tTIOCCONS                         = 0x541d\n\tTIOCEXCL                         = 0x540c\n\tTIOCGDEV                         = 0x40045432\n\tTIOCGETC                         = 0x40067412\n\tTIOCGETD                         = 0x5424\n\tTIOCGETP                         = 0x40067408\n\tTIOCGEXCL                        = 0x40045440\n\tTIOCGICOUNT                      = 0x545d\n\tTIOCGISO7816                     = 0x40285442\n\tTIOCGLCKTRMIOS                   = 0x5456\n\tTIOCGLTC                         = 0x40067474\n\tTIOCGPGRP                        = 0x40047477\n\tTIOCGPKT                         = 0x40045438\n\tTIOCGPTLCK                       = 0x40045439\n\tTIOCGPTN                         = 0x40045430\n\tTIOCGPTPEER                      = 0x20005441\n\tTIOCGRS485                       = 0x542e\n\tTIOCGSERIAL                      = 0x541e\n\tTIOCGSID                         = 0x5429\n\tTIOCGSOFTCAR                     = 0x5419\n\tTIOCGWINSZ                       = 0x40087468\n\tTIOCINQ                          = 0x4004667f\n\tTIOCLINUX                        = 0x541c\n\tTIOCMBIC                         = 0x5417\n\tTIOCMBIS                         = 0x5416\n\tTIOCMGET                         = 0x5415\n\tTIOCMIWAIT                       = 0x545c\n\tTIOCMSET                         = 0x5418\n\tTIOCM_CAR                        = 0x40\n\tTIOCM_CD                         = 0x40\n\tTIOCM_CTS                        = 0x20\n\tTIOCM_DSR                        = 0x100\n\tTIOCM_LOOP                       = 0x8000\n\tTIOCM_OUT1                       = 0x2000\n\tTIOCM_OUT2                       = 0x4000\n\tTIOCM_RI                         = 0x80\n\tTIOCM_RNG                        = 0x80\n\tTIOCM_SR                         = 0x10\n\tTIOCM_ST                         = 0x8\n\tTIOCNOTTY                        = 0x5422\n\tTIOCNXCL                         = 0x540d\n\tTIOCOUTQ                         = 0x40047473\n\tTIOCPKT                          = 0x5420\n\tTIOCSBRK                         = 0x5427\n\tTIOCSCTTY                        = 0x540e\n\tTIOCSERCONFIG                    = 0x5453\n\tTIOCSERGETLSR                    = 0x5459\n\tTIOCSERGETMULTI                  = 0x545a\n\tTIOCSERGSTRUCT                   = 0x5458\n\tTIOCSERGWILD                     = 0x5454\n\tTIOCSERSETMULTI                  = 0x545b\n\tTIOCSERSWILD                     = 0x5455\n\tTIOCSER_TEMT                     = 0x1\n\tTIOCSETC                         = 0x80067411\n\tTIOCSETD                         = 0x5423\n\tTIOCSETN                         = 0x8006740a\n\tTIOCSETP                         = 0x80067409\n\tTIOCSIG                          = 0x80045436\n\tTIOCSISO7816                     = 0xc0285443\n\tTIOCSLCKTRMIOS                   = 0x5457\n\tTIOCSLTC                         = 0x80067475\n\tTIOCSPGRP                        = 0x80047476\n\tTIOCSPTLCK                       = 0x80045431\n\tTIOCSRS485                       = 0x542f\n\tTIOCSSERIAL                      = 0x541f\n\tTIOCSSOFTCAR                     = 0x541a\n\tTIOCSTART                        = 0x2000746e\n\tTIOCSTI                          = 0x5412\n\tTIOCSTOP                         = 0x2000746f\n\tTIOCSWINSZ                       = 0x80087467\n\tTIOCVHANGUP                      = 0x5437\n\tTOSTOP                           = 0x400000\n\tTUNATTACHFILTER                  = 0x801054d5\n\tTUNDETACHFILTER                  = 0x801054d6\n\tTUNGETDEVNETNS                   = 0x200054e3\n\tTUNGETFEATURES                   = 0x400454cf\n\tTUNGETFILTER                     = 0x401054db\n\tTUNGETIFF                        = 0x400454d2\n\tTUNGETSNDBUF                     = 0x400454d3\n\tTUNGETVNETBE                     = 0x400454df\n\tTUNGETVNETHDRSZ                  = 0x400454d7\n\tTUNGETVNETLE                     = 0x400454dd\n\tTUNSETCARRIER                    = 0x800454e2\n\tTUNSETDEBUG                      = 0x800454c9\n\tTUNSETFILTEREBPF                 = 0x400454e1\n\tTUNSETGROUP                      = 0x800454ce\n\tTUNSETIFF                        = 0x800454ca\n\tTUNSETIFINDEX                    = 0x800454da\n\tTUNSETLINK                       = 0x800454cd\n\tTUNSETNOCSUM                     = 0x800454c8\n\tTUNSETOFFLOAD                    = 0x800454d0\n\tTUNSETOWNER                      = 0x800454cc\n\tTUNSETPERSIST                    = 0x800454cb\n\tTUNSETQUEUE                      = 0x800454d9\n\tTUNSETSNDBUF                     = 0x800454d4\n\tTUNSETSTEERINGEBPF               = 0x400454e0\n\tTUNSETTXFILTER                   = 0x800454d1\n\tTUNSETVNETBE                     = 0x800454de\n\tTUNSETVNETHDRSZ                  = 0x800454d8\n\tTUNSETVNETLE                     = 0x800454dc\n\tUBI_IOCATT                       = 0x80186f40\n\tUBI_IOCDET                       = 0x80046f41\n\tUBI_IOCEBCH                      = 0x80044f02\n\tUBI_IOCEBER                      = 0x80044f01\n\tUBI_IOCEBISMAP                   = 0x40044f05\n\tUBI_IOCEBMAP                     = 0x80084f03\n\tUBI_IOCEBUNMAP                   = 0x80044f04\n\tUBI_IOCMKVOL                     = 0x80986f00\n\tUBI_IOCRMVOL                     = 0x80046f01\n\tUBI_IOCRNVOL                     = 0x91106f03\n\tUBI_IOCRPEB                      = 0x80046f04\n\tUBI_IOCRSVOL                     = 0x800c6f02\n\tUBI_IOCSETVOLPROP                = 0x80104f06\n\tUBI_IOCSPEB                      = 0x80046f05\n\tUBI_IOCVOLCRBLK                  = 0x80804f07\n\tUBI_IOCVOLRMBLK                  = 0x20004f08\n\tUBI_IOCVOLUP                     = 0x80084f00\n\tVDISCARD                         = 0x10\n\tVEOF                             = 0x4\n\tVEOL                             = 0x6\n\tVEOL2                            = 0x8\n\tVMIN                             = 0x5\n\tVREPRINT                         = 0xb\n\tVSTART                           = 0xd\n\tVSTOP                            = 0xe\n\tVSUSP                            = 0xc\n\tVSWTC                            = 0x9\n\tVT1                              = 0x10000\n\tVTDLY                            = 0x10000\n\tVTIME                            = 0x7\n\tVWERASE                          = 0xa\n\tWDIOC_GETBOOTSTATUS              = 0x40045702\n\tWDIOC_GETPRETIMEOUT              = 0x40045709\n\tWDIOC_GETSTATUS                  = 0x40045701\n\tWDIOC_GETSUPPORT                 = 0x40285700\n\tWDIOC_GETTEMP                    = 0x40045703\n\tWDIOC_GETTIMELEFT                = 0x4004570a\n\tWDIOC_GETTIMEOUT                 = 0x40045707\n\tWDIOC_KEEPALIVE                  = 0x40045705\n\tWDIOC_SETOPTIONS                 = 0x40045704\n\tWORDSIZE                         = 0x40\n\tXCASE                            = 0x4000\n\tXTABS                            = 0xc00\n\t_HIDIOCGRAWNAME                  = 0x40804804\n\t_HIDIOCGRAWPHYS                  = 0x40404805\n\t_HIDIOCGRAWUNIQ                  = 0x40404808\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x62)\n\tEADDRNOTAVAIL   = syscall.Errno(0x63)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x61)\n\tEALREADY        = syscall.Errno(0x72)\n\tEBADE           = syscall.Errno(0x34)\n\tEBADFD          = syscall.Errno(0x4d)\n\tEBADMSG         = syscall.Errno(0x4a)\n\tEBADR           = syscall.Errno(0x35)\n\tEBADRQC         = syscall.Errno(0x38)\n\tEBADSLT         = syscall.Errno(0x39)\n\tEBFONT          = syscall.Errno(0x3b)\n\tECANCELED       = syscall.Errno(0x7d)\n\tECHRNG          = syscall.Errno(0x2c)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x67)\n\tECONNREFUSED    = syscall.Errno(0x6f)\n\tECONNRESET      = syscall.Errno(0x68)\n\tEDEADLK         = syscall.Errno(0x23)\n\tEDEADLOCK       = syscall.Errno(0x3a)\n\tEDESTADDRREQ    = syscall.Errno(0x59)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x7a)\n\tEHOSTDOWN       = syscall.Errno(0x70)\n\tEHOSTUNREACH    = syscall.Errno(0x71)\n\tEHWPOISON       = syscall.Errno(0x85)\n\tEIDRM           = syscall.Errno(0x2b)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x73)\n\tEISCONN         = syscall.Errno(0x6a)\n\tEISNAM          = syscall.Errno(0x78)\n\tEKEYEXPIRED     = syscall.Errno(0x7f)\n\tEKEYREJECTED    = syscall.Errno(0x81)\n\tEKEYREVOKED     = syscall.Errno(0x80)\n\tEL2HLT          = syscall.Errno(0x33)\n\tEL2NSYNC        = syscall.Errno(0x2d)\n\tEL3HLT          = syscall.Errno(0x2e)\n\tEL3RST          = syscall.Errno(0x2f)\n\tELIBACC         = syscall.Errno(0x4f)\n\tELIBBAD         = syscall.Errno(0x50)\n\tELIBEXEC        = syscall.Errno(0x53)\n\tELIBMAX         = syscall.Errno(0x52)\n\tELIBSCN         = syscall.Errno(0x51)\n\tELNRNG          = syscall.Errno(0x30)\n\tELOOP           = syscall.Errno(0x28)\n\tEMEDIUMTYPE     = syscall.Errno(0x7c)\n\tEMSGSIZE        = syscall.Errno(0x5a)\n\tEMULTIHOP       = syscall.Errno(0x48)\n\tENAMETOOLONG    = syscall.Errno(0x24)\n\tENAVAIL         = syscall.Errno(0x77)\n\tENETDOWN        = syscall.Errno(0x64)\n\tENETRESET       = syscall.Errno(0x66)\n\tENETUNREACH     = syscall.Errno(0x65)\n\tENOANO          = syscall.Errno(0x37)\n\tENOBUFS         = syscall.Errno(0x69)\n\tENOCSI          = syscall.Errno(0x32)\n\tENODATA         = syscall.Errno(0x3d)\n\tENOKEY          = syscall.Errno(0x7e)\n\tENOLCK          = syscall.Errno(0x25)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x7b)\n\tENOMSG          = syscall.Errno(0x2a)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x5c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x26)\n\tENOTCONN        = syscall.Errno(0x6b)\n\tENOTEMPTY       = syscall.Errno(0x27)\n\tENOTNAM         = syscall.Errno(0x76)\n\tENOTRECOVERABLE = syscall.Errno(0x83)\n\tENOTSOCK        = syscall.Errno(0x58)\n\tENOTSUP         = syscall.Errno(0x5f)\n\tENOTUNIQ        = syscall.Errno(0x4c)\n\tEOPNOTSUPP      = syscall.Errno(0x5f)\n\tEOVERFLOW       = syscall.Errno(0x4b)\n\tEOWNERDEAD      = syscall.Errno(0x82)\n\tEPFNOSUPPORT    = syscall.Errno(0x60)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x5d)\n\tEPROTOTYPE      = syscall.Errno(0x5b)\n\tEREMCHG         = syscall.Errno(0x4e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x79)\n\tERESTART        = syscall.Errno(0x55)\n\tERFKILL         = syscall.Errno(0x84)\n\tESHUTDOWN       = syscall.Errno(0x6c)\n\tESOCKTNOSUPPORT = syscall.Errno(0x5e)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x74)\n\tESTRPIPE        = syscall.Errno(0x56)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x6e)\n\tETOOMANYREFS    = syscall.Errno(0x6d)\n\tEUCLEAN         = syscall.Errno(0x75)\n\tEUNATCH         = syscall.Errno(0x31)\n\tEUSERS          = syscall.Errno(0x57)\n\tEXFULL          = syscall.Errno(0x36)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0x7)\n\tSIGCHLD   = syscall.Signal(0x11)\n\tSIGCLD    = syscall.Signal(0x11)\n\tSIGCONT   = syscall.Signal(0x12)\n\tSIGIO     = syscall.Signal(0x1d)\n\tSIGPOLL   = syscall.Signal(0x1d)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x1e)\n\tSIGSTKFLT = syscall.Signal(0x10)\n\tSIGSTOP   = syscall.Signal(0x13)\n\tSIGSYS    = syscall.Signal(0x1f)\n\tSIGTSTP   = syscall.Signal(0x14)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x17)\n\tSIGUSR1   = syscall.Signal(0xa)\n\tSIGUSR2   = syscall.Signal(0xc)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{36, \"ENAMETOOLONG\", \"file name too long\"},\n\t{37, \"ENOLCK\", \"no locks available\"},\n\t{38, \"ENOSYS\", \"function not implemented\"},\n\t{39, \"ENOTEMPTY\", \"directory not empty\"},\n\t{40, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{42, \"ENOMSG\", \"no message of desired type\"},\n\t{43, \"EIDRM\", \"identifier removed\"},\n\t{44, \"ECHRNG\", \"channel number out of range\"},\n\t{45, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{46, \"EL3HLT\", \"level 3 halted\"},\n\t{47, \"EL3RST\", \"level 3 reset\"},\n\t{48, \"ELNRNG\", \"link number out of range\"},\n\t{49, \"EUNATCH\", \"protocol driver not attached\"},\n\t{50, \"ENOCSI\", \"no CSI structure available\"},\n\t{51, \"EL2HLT\", \"level 2 halted\"},\n\t{52, \"EBADE\", \"invalid exchange\"},\n\t{53, \"EBADR\", \"invalid request descriptor\"},\n\t{54, \"EXFULL\", \"exchange full\"},\n\t{55, \"ENOANO\", \"no anode\"},\n\t{56, \"EBADRQC\", \"invalid request code\"},\n\t{57, \"EBADSLT\", \"invalid slot\"},\n\t{58, \"EDEADLOCK\", \"file locking deadlock error\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{72, \"EMULTIHOP\", \"multihop attempted\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EBADMSG\", \"bad message\"},\n\t{75, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{76, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{77, \"EBADFD\", \"file descriptor in bad state\"},\n\t{78, \"EREMCHG\", \"remote address changed\"},\n\t{79, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{80, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{81, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{82, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{83, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{84, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{85, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{86, \"ESTRPIPE\", \"streams pipe error\"},\n\t{87, \"EUSERS\", \"too many users\"},\n\t{88, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{89, \"EDESTADDRREQ\", \"destination address required\"},\n\t{90, \"EMSGSIZE\", \"message too long\"},\n\t{91, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{92, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{93, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{94, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{95, \"ENOTSUP\", \"operation not supported\"},\n\t{96, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{97, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{98, \"EADDRINUSE\", \"address already in use\"},\n\t{99, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{100, \"ENETDOWN\", \"network is down\"},\n\t{101, \"ENETUNREACH\", \"network is unreachable\"},\n\t{102, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{103, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{104, \"ECONNRESET\", \"connection reset by peer\"},\n\t{105, \"ENOBUFS\", \"no buffer space available\"},\n\t{106, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{107, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{108, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{109, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{110, \"ETIMEDOUT\", \"connection timed out\"},\n\t{111, \"ECONNREFUSED\", \"connection refused\"},\n\t{112, \"EHOSTDOWN\", \"host is down\"},\n\t{113, \"EHOSTUNREACH\", \"no route to host\"},\n\t{114, \"EALREADY\", \"operation already in progress\"},\n\t{115, \"EINPROGRESS\", \"operation now in progress\"},\n\t{116, \"ESTALE\", \"stale file handle\"},\n\t{117, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{118, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{119, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{120, \"EISNAM\", \"is a named type file\"},\n\t{121, \"EREMOTEIO\", \"remote I/O error\"},\n\t{122, \"EDQUOT\", \"disk quota exceeded\"},\n\t{123, \"ENOMEDIUM\", \"no medium found\"},\n\t{124, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{125, \"ECANCELED\", \"operation canceled\"},\n\t{126, \"ENOKEY\", \"required key not available\"},\n\t{127, \"EKEYEXPIRED\", \"key has expired\"},\n\t{128, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{129, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{130, \"EOWNERDEAD\", \"owner died\"},\n\t{131, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{132, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{133, \"EHWPOISON\", \"memory page has hardware error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGBUS\", \"bus error\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGUSR1\", \"user defined signal 1\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGUSR2\", \"user defined signal 2\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGSTKFLT\", \"stack fault\"},\n\t{17, \"SIGCHLD\", \"child exited\"},\n\t{18, \"SIGCONT\", \"continued\"},\n\t{19, \"SIGSTOP\", \"stopped (signal)\"},\n\t{20, \"SIGTSTP\", \"stopped\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGURG\", \"urgent I/O condition\"},\n\t{24, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGIO\", \"I/O possible\"},\n\t{30, \"SIGPWR\", \"power failure\"},\n\t{31, \"SIGSYS\", \"bad system call\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/ppc64le/include\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc64le && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/ppc64le/include _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tB1000000                         = 0x17\n\tB115200                          = 0x11\n\tB1152000                         = 0x18\n\tB1500000                         = 0x19\n\tB2000000                         = 0x1a\n\tB230400                          = 0x12\n\tB2500000                         = 0x1b\n\tB3000000                         = 0x1c\n\tB3500000                         = 0x1d\n\tB4000000                         = 0x1e\n\tB460800                          = 0x13\n\tB500000                          = 0x14\n\tB57600                           = 0x10\n\tB576000                          = 0x15\n\tB921600                          = 0x16\n\tBLKALIGNOFF                      = 0x2000127a\n\tBLKBSZGET                        = 0x40081270\n\tBLKBSZSET                        = 0x80081271\n\tBLKDISCARD                       = 0x20001277\n\tBLKDISCARDZEROES                 = 0x2000127c\n\tBLKFLSBUF                        = 0x20001261\n\tBLKFRAGET                        = 0x20001265\n\tBLKFRASET                        = 0x20001264\n\tBLKGETDISKSEQ                    = 0x40081280\n\tBLKGETSIZE                       = 0x20001260\n\tBLKGETSIZE64                     = 0x40081272\n\tBLKIOMIN                         = 0x20001278\n\tBLKIOOPT                         = 0x20001279\n\tBLKPBSZGET                       = 0x2000127b\n\tBLKRAGET                         = 0x20001263\n\tBLKRASET                         = 0x20001262\n\tBLKROGET                         = 0x2000125e\n\tBLKROSET                         = 0x2000125d\n\tBLKROTATIONAL                    = 0x2000127e\n\tBLKRRPART                        = 0x2000125f\n\tBLKSECDISCARD                    = 0x2000127d\n\tBLKSECTGET                       = 0x20001267\n\tBLKSECTSET                       = 0x20001266\n\tBLKSSZGET                        = 0x20001268\n\tBLKZEROOUT                       = 0x2000127f\n\tBOTHER                           = 0x1f\n\tBS1                              = 0x8000\n\tBSDLY                            = 0x8000\n\tCBAUD                            = 0xff\n\tCBAUDEX                          = 0x0\n\tCIBAUD                           = 0xff0000\n\tCLOCAL                           = 0x8000\n\tCR1                              = 0x1000\n\tCR2                              = 0x2000\n\tCR3                              = 0x3000\n\tCRDLY                            = 0x3000\n\tCREAD                            = 0x800\n\tCS6                              = 0x100\n\tCS7                              = 0x200\n\tCS8                              = 0x300\n\tCSIZE                            = 0x300\n\tCSTOPB                           = 0x400\n\tECCGETLAYOUT                     = 0x41484d11\n\tECCGETSTATS                      = 0x40104d12\n\tECHOCTL                          = 0x40\n\tECHOE                            = 0x2\n\tECHOK                            = 0x4\n\tECHOKE                           = 0x1\n\tECHONL                           = 0x10\n\tECHOPRT                          = 0x20\n\tEFD_CLOEXEC                      = 0x80000\n\tEFD_NONBLOCK                     = 0x800\n\tEPIOCGPARAMS                     = 0x40088a02\n\tEPIOCSPARAMS                     = 0x80088a01\n\tEPOLL_CLOEXEC                    = 0x80000\n\tEXTPROC                          = 0x10000000\n\tFF1                              = 0x4000\n\tFFDLY                            = 0x4000\n\tFICLONE                          = 0x80049409\n\tFICLONERANGE                     = 0x8020940d\n\tFLUSHO                           = 0x800000\n\tFS_IOC_ENABLE_VERITY             = 0x80806685\n\tFS_IOC_GETFLAGS                  = 0x40086601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x4010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x800c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x80106614\n\tFS_IOC_SETFLAGS                  = 0x80086602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x400c6613\n\tF_GETLK                          = 0x5\n\tF_GETLK64                        = 0xc\n\tF_GETOWN                         = 0x9\n\tF_RDLCK                          = 0x0\n\tF_SETLK                          = 0x6\n\tF_SETLK64                        = 0xd\n\tF_SETLKW                         = 0x7\n\tF_SETLKW64                       = 0xe\n\tF_SETOWN                         = 0x8\n\tF_UNLCK                          = 0x2\n\tF_WRLCK                          = 0x1\n\tHIDIOCGRAWINFO                   = 0x40084803\n\tHIDIOCGRDESC                     = 0x50044802\n\tHIDIOCGRDESCSIZE                 = 0x40044801\n\tHIDIOCREVOKE                     = 0x8004480d\n\tHUPCL                            = 0x4000\n\tICANON                           = 0x100\n\tIEXTEN                           = 0x400\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x800\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9\n\tIPV6_FLOWINFO_MASK               = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK              = 0xffff0f00\n\tISIG                             = 0x80\n\tIUCLC                            = 0x1000\n\tIXOFF                            = 0x400\n\tIXON                             = 0x200\n\tMAP_ANON                         = 0x20\n\tMAP_ANONYMOUS                    = 0x20\n\tMAP_DENYWRITE                    = 0x800\n\tMAP_EXECUTABLE                   = 0x1000\n\tMAP_GROWSDOWN                    = 0x100\n\tMAP_HUGETLB                      = 0x40000\n\tMAP_LOCKED                       = 0x80\n\tMAP_NONBLOCK                     = 0x10000\n\tMAP_NORESERVE                    = 0x40\n\tMAP_POPULATE                     = 0x8000\n\tMAP_STACK                        = 0x20000\n\tMAP_SYNC                         = 0x80000\n\tMCL_CURRENT                      = 0x2000\n\tMCL_FUTURE                       = 0x4000\n\tMCL_ONFAULT                      = 0x8000\n\tMEMERASE                         = 0x80084d02\n\tMEMERASE64                       = 0x80104d14\n\tMEMGETBADBLOCK                   = 0x80084d0b\n\tMEMGETINFO                       = 0x40204d01\n\tMEMGETOOBSEL                     = 0x40c84d0a\n\tMEMGETREGIONCOUNT                = 0x40044d07\n\tMEMISLOCKED                      = 0x40084d17\n\tMEMLOCK                          = 0x80084d05\n\tMEMREAD                          = 0xc0404d1a\n\tMEMREADOOB                       = 0xc0104d04\n\tMEMSETBADBLOCK                   = 0x80084d0c\n\tMEMUNLOCK                        = 0x80084d06\n\tMEMWRITEOOB                      = 0xc0104d03\n\tMTDFILEMODE                      = 0x20004d13\n\tNFDBITS                          = 0x40\n\tNL2                              = 0x200\n\tNL3                              = 0x300\n\tNLDLY                            = 0x300\n\tNOFLSH                           = 0x80000000\n\tNS_GET_MNTNS_ID                  = 0x4008b705\n\tNS_GET_NSTYPE                    = 0x2000b703\n\tNS_GET_OWNER_UID                 = 0x2000b704\n\tNS_GET_PARENT                    = 0x2000b702\n\tNS_GET_PID_FROM_PIDNS            = 0x4004b706\n\tNS_GET_PID_IN_PIDNS              = 0x4004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x4004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x4004b709\n\tNS_GET_USERNS                    = 0x2000b701\n\tOLCUC                            = 0x4\n\tONLCR                            = 0x2\n\tOTPERASE                         = 0x800c4d19\n\tOTPGETREGIONCOUNT                = 0x80044d0e\n\tOTPGETREGIONINFO                 = 0x800c4d0f\n\tOTPLOCK                          = 0x400c4d10\n\tOTPSELECT                        = 0x40044d0d\n\tO_APPEND                         = 0x400\n\tO_ASYNC                          = 0x2000\n\tO_CLOEXEC                        = 0x80000\n\tO_CREAT                          = 0x40\n\tO_DIRECT                         = 0x20000\n\tO_DIRECTORY                      = 0x4000\n\tO_DSYNC                          = 0x1000\n\tO_EXCL                           = 0x80\n\tO_FSYNC                          = 0x101000\n\tO_LARGEFILE                      = 0x0\n\tO_NDELAY                         = 0x800\n\tO_NOATIME                        = 0x40000\n\tO_NOCTTY                         = 0x100\n\tO_NOFOLLOW                       = 0x8000\n\tO_NONBLOCK                       = 0x800\n\tO_PATH                           = 0x200000\n\tO_RSYNC                          = 0x101000\n\tO_SYNC                           = 0x101000\n\tO_TMPFILE                        = 0x404000\n\tO_TRUNC                          = 0x200\n\tPARENB                           = 0x1000\n\tPARODD                           = 0x2000\n\tPENDIN                           = 0x20000000\n\tPERF_EVENT_IOC_DISABLE           = 0x20002401\n\tPERF_EVENT_IOC_ENABLE            = 0x20002400\n\tPERF_EVENT_IOC_ID                = 0x40082407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x80042409\n\tPERF_EVENT_IOC_PERIOD            = 0x80082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc008240a\n\tPERF_EVENT_IOC_REFRESH           = 0x20002402\n\tPERF_EVENT_IOC_RESET             = 0x20002403\n\tPERF_EVENT_IOC_SET_BPF           = 0x80042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x80082406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x20002405\n\tPPPIOCATTACH                     = 0x8004743d\n\tPPPIOCATTCHAN                    = 0x80047438\n\tPPPIOCBRIDGECHAN                 = 0x80047435\n\tPPPIOCCONNECT                    = 0x8004743a\n\tPPPIOCDETACH                     = 0x8004743c\n\tPPPIOCDISCONN                    = 0x20007439\n\tPPPIOCGASYNCMAP                  = 0x40047458\n\tPPPIOCGCHAN                      = 0x40047437\n\tPPPIOCGDEBUG                     = 0x40047441\n\tPPPIOCGFLAGS                     = 0x4004745a\n\tPPPIOCGIDLE                      = 0x4010743f\n\tPPPIOCGIDLE32                    = 0x4008743f\n\tPPPIOCGIDLE64                    = 0x4010743f\n\tPPPIOCGL2TPSTATS                 = 0x40487436\n\tPPPIOCGMRU                       = 0x40047453\n\tPPPIOCGRASYNCMAP                 = 0x40047455\n\tPPPIOCGUNIT                      = 0x40047456\n\tPPPIOCGXASYNCMAP                 = 0x40207450\n\tPPPIOCSACTIVE                    = 0x80107446\n\tPPPIOCSASYNCMAP                  = 0x80047457\n\tPPPIOCSCOMPRESS                  = 0x8010744d\n\tPPPIOCSDEBUG                     = 0x80047440\n\tPPPIOCSFLAGS                     = 0x80047459\n\tPPPIOCSMAXCID                    = 0x80047451\n\tPPPIOCSMRRU                      = 0x8004743b\n\tPPPIOCSMRU                       = 0x80047452\n\tPPPIOCSNPMODE                    = 0x8008744b\n\tPPPIOCSPASS                      = 0x80107447\n\tPPPIOCSRASYNCMAP                 = 0x80047454\n\tPPPIOCSXASYNCMAP                 = 0x8020744f\n\tPPPIOCUNBRIDGECHAN               = 0x20007434\n\tPPPIOCXFERUNIT                   = 0x2000744e\n\tPROT_SAO                         = 0x10\n\tPR_SET_PTRACER_ANY               = 0xffffffffffffffff\n\tPTP_CLOCK_GETCAPS                = 0x40503d01\n\tPTP_CLOCK_GETCAPS2               = 0x40503d0a\n\tPTP_ENABLE_PPS                   = 0x80043d04\n\tPTP_ENABLE_PPS2                  = 0x80043d0d\n\tPTP_EXTTS_REQUEST                = 0x80103d02\n\tPTP_EXTTS_REQUEST2               = 0x80103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x20003d13\n\tPTP_MASK_EN_SINGLE               = 0x80043d14\n\tPTP_PEROUT_REQUEST               = 0x80383d03\n\tPTP_PEROUT_REQUEST2              = 0x80383d0c\n\tPTP_PIN_SETFUNC                  = 0x80603d07\n\tPTP_PIN_SETFUNC2                 = 0x80603d10\n\tPTP_SYS_OFFSET                   = 0x83403d05\n\tPTP_SYS_OFFSET2                  = 0x83403d0e\n\tPTRACE_GETEVRREGS                = 0x14\n\tPTRACE_GETFPREGS                 = 0xe\n\tPTRACE_GETREGS64                 = 0x16\n\tPTRACE_GETVRREGS                 = 0x12\n\tPTRACE_GETVSRREGS                = 0x1b\n\tPTRACE_GET_DEBUGREG              = 0x19\n\tPTRACE_SETEVRREGS                = 0x15\n\tPTRACE_SETFPREGS                 = 0xf\n\tPTRACE_SETREGS64                 = 0x17\n\tPTRACE_SETVRREGS                 = 0x13\n\tPTRACE_SETVSRREGS                = 0x1c\n\tPTRACE_SET_DEBUGREG              = 0x1a\n\tPTRACE_SINGLEBLOCK               = 0x100\n\tPTRACE_SYSEMU                    = 0x1d\n\tPTRACE_SYSEMU_SINGLESTEP         = 0x1e\n\tPT_CCR                           = 0x26\n\tPT_CTR                           = 0x23\n\tPT_DAR                           = 0x29\n\tPT_DSCR                          = 0x2c\n\tPT_DSISR                         = 0x2a\n\tPT_FPR0                          = 0x30\n\tPT_FPSCR                         = 0x50\n\tPT_LNK                           = 0x24\n\tPT_MSR                           = 0x21\n\tPT_NIP                           = 0x20\n\tPT_ORIG_R3                       = 0x22\n\tPT_R0                            = 0x0\n\tPT_R1                            = 0x1\n\tPT_R10                           = 0xa\n\tPT_R11                           = 0xb\n\tPT_R12                           = 0xc\n\tPT_R13                           = 0xd\n\tPT_R14                           = 0xe\n\tPT_R15                           = 0xf\n\tPT_R16                           = 0x10\n\tPT_R17                           = 0x11\n\tPT_R18                           = 0x12\n\tPT_R19                           = 0x13\n\tPT_R2                            = 0x2\n\tPT_R20                           = 0x14\n\tPT_R21                           = 0x15\n\tPT_R22                           = 0x16\n\tPT_R23                           = 0x17\n\tPT_R24                           = 0x18\n\tPT_R25                           = 0x19\n\tPT_R26                           = 0x1a\n\tPT_R27                           = 0x1b\n\tPT_R28                           = 0x1c\n\tPT_R29                           = 0x1d\n\tPT_R3                            = 0x3\n\tPT_R30                           = 0x1e\n\tPT_R31                           = 0x1f\n\tPT_R4                            = 0x4\n\tPT_R5                            = 0x5\n\tPT_R6                            = 0x6\n\tPT_R7                            = 0x7\n\tPT_R8                            = 0x8\n\tPT_R9                            = 0x9\n\tPT_REGS_COUNT                    = 0x2c\n\tPT_RESULT                        = 0x2b\n\tPT_SOFTE                         = 0x27\n\tPT_TRAP                          = 0x28\n\tPT_VR0                           = 0x52\n\tPT_VRSAVE                        = 0x94\n\tPT_VSCR                          = 0x93\n\tPT_VSR0                          = 0x96\n\tPT_VSR31                         = 0xd4\n\tPT_XER                           = 0x25\n\tRLIMIT_AS                        = 0x9\n\tRLIMIT_MEMLOCK                   = 0x8\n\tRLIMIT_NOFILE                    = 0x7\n\tRLIMIT_NPROC                     = 0x6\n\tRLIMIT_RSS                       = 0x5\n\tRNDADDENTROPY                    = 0x80085203\n\tRNDADDTOENTCNT                   = 0x80045201\n\tRNDCLEARPOOL                     = 0x20005206\n\tRNDGETENTCNT                     = 0x40045200\n\tRNDGETPOOL                       = 0x40085202\n\tRNDRESEEDCRNG                    = 0x20005207\n\tRNDZAPENTCNT                     = 0x20005204\n\tRTC_AIE_OFF                      = 0x20007002\n\tRTC_AIE_ON                       = 0x20007001\n\tRTC_ALM_READ                     = 0x40247008\n\tRTC_ALM_SET                      = 0x80247007\n\tRTC_EPOCH_READ                   = 0x4008700d\n\tRTC_EPOCH_SET                    = 0x8008700e\n\tRTC_IRQP_READ                    = 0x4008700b\n\tRTC_IRQP_SET                     = 0x8008700c\n\tRTC_PARAM_GET                    = 0x80187013\n\tRTC_PARAM_SET                    = 0x80187014\n\tRTC_PIE_OFF                      = 0x20007006\n\tRTC_PIE_ON                       = 0x20007005\n\tRTC_PLL_GET                      = 0x40207011\n\tRTC_PLL_SET                      = 0x80207012\n\tRTC_RD_TIME                      = 0x40247009\n\tRTC_SET_TIME                     = 0x8024700a\n\tRTC_UIE_OFF                      = 0x20007004\n\tRTC_UIE_ON                       = 0x20007003\n\tRTC_VL_CLR                       = 0x20007014\n\tRTC_VL_READ                      = 0x40047013\n\tRTC_WIE_OFF                      = 0x20007010\n\tRTC_WIE_ON                       = 0x2000700f\n\tRTC_WKALM_RD                     = 0x40287010\n\tRTC_WKALM_SET                    = 0x8028700f\n\tSCM_DEVMEM_DMABUF                = 0x4f\n\tSCM_DEVMEM_LINEAR                = 0x4e\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TS_OPT_ID                    = 0x51\n\tSCM_TXTIME                       = 0x3d\n\tSCM_WIFI_STATUS                  = 0x29\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x80082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x80082104\n\tSFD_CLOEXEC                      = 0x80000\n\tSFD_NONBLOCK                     = 0x800\n\tSIOCATMARK                       = 0x8905\n\tSIOCGPGRP                        = 0x8904\n\tSIOCGSTAMPNS_NEW                 = 0x40108907\n\tSIOCGSTAMP_NEW                   = 0x40108906\n\tSIOCINQ                          = 0x4004667f\n\tSIOCOUTQ                         = 0x40047473\n\tSIOCSPGRP                        = 0x8902\n\tSOCK_CLOEXEC                     = 0x80000\n\tSOCK_DGRAM                       = 0x2\n\tSOCK_NONBLOCK                    = 0x800\n\tSOCK_STREAM                      = 0x1\n\tSOL_SOCKET                       = 0x1\n\tSO_ACCEPTCONN                    = 0x1e\n\tSO_ATTACH_BPF                    = 0x32\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x34\n\tSO_BINDTODEVICE                  = 0x19\n\tSO_BINDTOIFINDEX                 = 0x3e\n\tSO_BPF_EXTENSIONS                = 0x30\n\tSO_BROADCAST                     = 0x6\n\tSO_BSDCOMPAT                     = 0xe\n\tSO_BUF_LOCK                      = 0x48\n\tSO_BUSY_POLL                     = 0x2e\n\tSO_BUSY_POLL_BUDGET              = 0x46\n\tSO_CNX_ADVICE                    = 0x35\n\tSO_COOKIE                        = 0x39\n\tSO_DETACH_REUSEPORT_BPF          = 0x44\n\tSO_DEVMEM_DMABUF                 = 0x4f\n\tSO_DEVMEM_DONTNEED               = 0x50\n\tSO_DEVMEM_LINEAR                 = 0x4e\n\tSO_DOMAIN                        = 0x27\n\tSO_DONTROUTE                     = 0x5\n\tSO_ERROR                         = 0x4\n\tSO_INCOMING_CPU                  = 0x31\n\tSO_INCOMING_NAPI_ID              = 0x38\n\tSO_KEEPALIVE                     = 0x9\n\tSO_LINGER                        = 0xd\n\tSO_LOCK_FILTER                   = 0x2c\n\tSO_MARK                          = 0x24\n\tSO_MAX_PACING_RATE               = 0x2f\n\tSO_MEMINFO                       = 0x37\n\tSO_NETNS_COOKIE                  = 0x47\n\tSO_NOFCS                         = 0x2b\n\tSO_OOBINLINE                     = 0xa\n\tSO_PASSCRED                      = 0x14\n\tSO_PASSPIDFD                     = 0x4c\n\tSO_PASSSEC                       = 0x22\n\tSO_PEEK_OFF                      = 0x2a\n\tSO_PEERCRED                      = 0x15\n\tSO_PEERGROUPS                    = 0x3b\n\tSO_PEERPIDFD                     = 0x4d\n\tSO_PEERSEC                       = 0x1f\n\tSO_PREFER_BUSY_POLL              = 0x45\n\tSO_PROTOCOL                      = 0x26\n\tSO_RCVBUF                        = 0x8\n\tSO_RCVBUFFORCE                   = 0x21\n\tSO_RCVLOWAT                      = 0x10\n\tSO_RCVMARK                       = 0x4b\n\tSO_RCVTIMEO                      = 0x12\n\tSO_RCVTIMEO_NEW                  = 0x42\n\tSO_RCVTIMEO_OLD                  = 0x12\n\tSO_RESERVE_MEM                   = 0x49\n\tSO_REUSEADDR                     = 0x2\n\tSO_REUSEPORT                     = 0xf\n\tSO_RXQ_OVFL                      = 0x28\n\tSO_SECURITY_AUTHENTICATION       = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x17\n\tSO_SELECT_ERR_QUEUE              = 0x2d\n\tSO_SNDBUF                        = 0x7\n\tSO_SNDBUFFORCE                   = 0x20\n\tSO_SNDLOWAT                      = 0x11\n\tSO_SNDTIMEO                      = 0x13\n\tSO_SNDTIMEO_NEW                  = 0x43\n\tSO_SNDTIMEO_OLD                  = 0x13\n\tSO_TIMESTAMPING                  = 0x25\n\tSO_TIMESTAMPING_NEW              = 0x41\n\tSO_TIMESTAMPING_OLD              = 0x25\n\tSO_TIMESTAMPNS                   = 0x23\n\tSO_TIMESTAMPNS_NEW               = 0x40\n\tSO_TIMESTAMPNS_OLD               = 0x23\n\tSO_TIMESTAMP_NEW                 = 0x3f\n\tSO_TXREHASH                      = 0x4a\n\tSO_TXTIME                        = 0x3d\n\tSO_TYPE                          = 0x3\n\tSO_WIFI_STATUS                   = 0x29\n\tSO_ZEROCOPY                      = 0x3c\n\tTAB1                             = 0x400\n\tTAB2                             = 0x800\n\tTAB3                             = 0xc00\n\tTABDLY                           = 0xc00\n\tTCFLSH                           = 0x2000741f\n\tTCGETA                           = 0x40147417\n\tTCGETS                           = 0x402c7413\n\tTCSAFLUSH                        = 0x2\n\tTCSBRK                           = 0x2000741d\n\tTCSBRKP                          = 0x5425\n\tTCSETA                           = 0x80147418\n\tTCSETAF                          = 0x8014741c\n\tTCSETAW                          = 0x80147419\n\tTCSETS                           = 0x802c7414\n\tTCSETSF                          = 0x802c7416\n\tTCSETSW                          = 0x802c7415\n\tTCXONC                           = 0x2000741e\n\tTFD_CLOEXEC                      = 0x80000\n\tTFD_NONBLOCK                     = 0x800\n\tTIOCCBRK                         = 0x5428\n\tTIOCCONS                         = 0x541d\n\tTIOCEXCL                         = 0x540c\n\tTIOCGDEV                         = 0x40045432\n\tTIOCGETC                         = 0x40067412\n\tTIOCGETD                         = 0x5424\n\tTIOCGETP                         = 0x40067408\n\tTIOCGEXCL                        = 0x40045440\n\tTIOCGICOUNT                      = 0x545d\n\tTIOCGISO7816                     = 0x40285442\n\tTIOCGLCKTRMIOS                   = 0x5456\n\tTIOCGLTC                         = 0x40067474\n\tTIOCGPGRP                        = 0x40047477\n\tTIOCGPKT                         = 0x40045438\n\tTIOCGPTLCK                       = 0x40045439\n\tTIOCGPTN                         = 0x40045430\n\tTIOCGPTPEER                      = 0x20005441\n\tTIOCGRS485                       = 0x542e\n\tTIOCGSERIAL                      = 0x541e\n\tTIOCGSID                         = 0x5429\n\tTIOCGSOFTCAR                     = 0x5419\n\tTIOCGWINSZ                       = 0x40087468\n\tTIOCINQ                          = 0x4004667f\n\tTIOCLINUX                        = 0x541c\n\tTIOCMBIC                         = 0x5417\n\tTIOCMBIS                         = 0x5416\n\tTIOCMGET                         = 0x5415\n\tTIOCMIWAIT                       = 0x545c\n\tTIOCMSET                         = 0x5418\n\tTIOCM_CAR                        = 0x40\n\tTIOCM_CD                         = 0x40\n\tTIOCM_CTS                        = 0x20\n\tTIOCM_DSR                        = 0x100\n\tTIOCM_LOOP                       = 0x8000\n\tTIOCM_OUT1                       = 0x2000\n\tTIOCM_OUT2                       = 0x4000\n\tTIOCM_RI                         = 0x80\n\tTIOCM_RNG                        = 0x80\n\tTIOCM_SR                         = 0x10\n\tTIOCM_ST                         = 0x8\n\tTIOCNOTTY                        = 0x5422\n\tTIOCNXCL                         = 0x540d\n\tTIOCOUTQ                         = 0x40047473\n\tTIOCPKT                          = 0x5420\n\tTIOCSBRK                         = 0x5427\n\tTIOCSCTTY                        = 0x540e\n\tTIOCSERCONFIG                    = 0x5453\n\tTIOCSERGETLSR                    = 0x5459\n\tTIOCSERGETMULTI                  = 0x545a\n\tTIOCSERGSTRUCT                   = 0x5458\n\tTIOCSERGWILD                     = 0x5454\n\tTIOCSERSETMULTI                  = 0x545b\n\tTIOCSERSWILD                     = 0x5455\n\tTIOCSER_TEMT                     = 0x1\n\tTIOCSETC                         = 0x80067411\n\tTIOCSETD                         = 0x5423\n\tTIOCSETN                         = 0x8006740a\n\tTIOCSETP                         = 0x80067409\n\tTIOCSIG                          = 0x80045436\n\tTIOCSISO7816                     = 0xc0285443\n\tTIOCSLCKTRMIOS                   = 0x5457\n\tTIOCSLTC                         = 0x80067475\n\tTIOCSPGRP                        = 0x80047476\n\tTIOCSPTLCK                       = 0x80045431\n\tTIOCSRS485                       = 0x542f\n\tTIOCSSERIAL                      = 0x541f\n\tTIOCSSOFTCAR                     = 0x541a\n\tTIOCSTART                        = 0x2000746e\n\tTIOCSTI                          = 0x5412\n\tTIOCSTOP                         = 0x2000746f\n\tTIOCSWINSZ                       = 0x80087467\n\tTIOCVHANGUP                      = 0x5437\n\tTOSTOP                           = 0x400000\n\tTUNATTACHFILTER                  = 0x801054d5\n\tTUNDETACHFILTER                  = 0x801054d6\n\tTUNGETDEVNETNS                   = 0x200054e3\n\tTUNGETFEATURES                   = 0x400454cf\n\tTUNGETFILTER                     = 0x401054db\n\tTUNGETIFF                        = 0x400454d2\n\tTUNGETSNDBUF                     = 0x400454d3\n\tTUNGETVNETBE                     = 0x400454df\n\tTUNGETVNETHDRSZ                  = 0x400454d7\n\tTUNGETVNETLE                     = 0x400454dd\n\tTUNSETCARRIER                    = 0x800454e2\n\tTUNSETDEBUG                      = 0x800454c9\n\tTUNSETFILTEREBPF                 = 0x400454e1\n\tTUNSETGROUP                      = 0x800454ce\n\tTUNSETIFF                        = 0x800454ca\n\tTUNSETIFINDEX                    = 0x800454da\n\tTUNSETLINK                       = 0x800454cd\n\tTUNSETNOCSUM                     = 0x800454c8\n\tTUNSETOFFLOAD                    = 0x800454d0\n\tTUNSETOWNER                      = 0x800454cc\n\tTUNSETPERSIST                    = 0x800454cb\n\tTUNSETQUEUE                      = 0x800454d9\n\tTUNSETSNDBUF                     = 0x800454d4\n\tTUNSETSTEERINGEBPF               = 0x400454e0\n\tTUNSETTXFILTER                   = 0x800454d1\n\tTUNSETVNETBE                     = 0x800454de\n\tTUNSETVNETHDRSZ                  = 0x800454d8\n\tTUNSETVNETLE                     = 0x800454dc\n\tUBI_IOCATT                       = 0x80186f40\n\tUBI_IOCDET                       = 0x80046f41\n\tUBI_IOCEBCH                      = 0x80044f02\n\tUBI_IOCEBER                      = 0x80044f01\n\tUBI_IOCEBISMAP                   = 0x40044f05\n\tUBI_IOCEBMAP                     = 0x80084f03\n\tUBI_IOCEBUNMAP                   = 0x80044f04\n\tUBI_IOCMKVOL                     = 0x80986f00\n\tUBI_IOCRMVOL                     = 0x80046f01\n\tUBI_IOCRNVOL                     = 0x91106f03\n\tUBI_IOCRPEB                      = 0x80046f04\n\tUBI_IOCRSVOL                     = 0x800c6f02\n\tUBI_IOCSETVOLPROP                = 0x80104f06\n\tUBI_IOCSPEB                      = 0x80046f05\n\tUBI_IOCVOLCRBLK                  = 0x80804f07\n\tUBI_IOCVOLRMBLK                  = 0x20004f08\n\tUBI_IOCVOLUP                     = 0x80084f00\n\tVDISCARD                         = 0x10\n\tVEOF                             = 0x4\n\tVEOL                             = 0x6\n\tVEOL2                            = 0x8\n\tVMIN                             = 0x5\n\tVREPRINT                         = 0xb\n\tVSTART                           = 0xd\n\tVSTOP                            = 0xe\n\tVSUSP                            = 0xc\n\tVSWTC                            = 0x9\n\tVT1                              = 0x10000\n\tVTDLY                            = 0x10000\n\tVTIME                            = 0x7\n\tVWERASE                          = 0xa\n\tWDIOC_GETBOOTSTATUS              = 0x40045702\n\tWDIOC_GETPRETIMEOUT              = 0x40045709\n\tWDIOC_GETSTATUS                  = 0x40045701\n\tWDIOC_GETSUPPORT                 = 0x40285700\n\tWDIOC_GETTEMP                    = 0x40045703\n\tWDIOC_GETTIMELEFT                = 0x4004570a\n\tWDIOC_GETTIMEOUT                 = 0x40045707\n\tWDIOC_KEEPALIVE                  = 0x40045705\n\tWDIOC_SETOPTIONS                 = 0x40045704\n\tWORDSIZE                         = 0x40\n\tXCASE                            = 0x4000\n\tXTABS                            = 0xc00\n\t_HIDIOCGRAWNAME                  = 0x40804804\n\t_HIDIOCGRAWPHYS                  = 0x40404805\n\t_HIDIOCGRAWUNIQ                  = 0x40404808\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x62)\n\tEADDRNOTAVAIL   = syscall.Errno(0x63)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x61)\n\tEALREADY        = syscall.Errno(0x72)\n\tEBADE           = syscall.Errno(0x34)\n\tEBADFD          = syscall.Errno(0x4d)\n\tEBADMSG         = syscall.Errno(0x4a)\n\tEBADR           = syscall.Errno(0x35)\n\tEBADRQC         = syscall.Errno(0x38)\n\tEBADSLT         = syscall.Errno(0x39)\n\tEBFONT          = syscall.Errno(0x3b)\n\tECANCELED       = syscall.Errno(0x7d)\n\tECHRNG          = syscall.Errno(0x2c)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x67)\n\tECONNREFUSED    = syscall.Errno(0x6f)\n\tECONNRESET      = syscall.Errno(0x68)\n\tEDEADLK         = syscall.Errno(0x23)\n\tEDEADLOCK       = syscall.Errno(0x3a)\n\tEDESTADDRREQ    = syscall.Errno(0x59)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x7a)\n\tEHOSTDOWN       = syscall.Errno(0x70)\n\tEHOSTUNREACH    = syscall.Errno(0x71)\n\tEHWPOISON       = syscall.Errno(0x85)\n\tEIDRM           = syscall.Errno(0x2b)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x73)\n\tEISCONN         = syscall.Errno(0x6a)\n\tEISNAM          = syscall.Errno(0x78)\n\tEKEYEXPIRED     = syscall.Errno(0x7f)\n\tEKEYREJECTED    = syscall.Errno(0x81)\n\tEKEYREVOKED     = syscall.Errno(0x80)\n\tEL2HLT          = syscall.Errno(0x33)\n\tEL2NSYNC        = syscall.Errno(0x2d)\n\tEL3HLT          = syscall.Errno(0x2e)\n\tEL3RST          = syscall.Errno(0x2f)\n\tELIBACC         = syscall.Errno(0x4f)\n\tELIBBAD         = syscall.Errno(0x50)\n\tELIBEXEC        = syscall.Errno(0x53)\n\tELIBMAX         = syscall.Errno(0x52)\n\tELIBSCN         = syscall.Errno(0x51)\n\tELNRNG          = syscall.Errno(0x30)\n\tELOOP           = syscall.Errno(0x28)\n\tEMEDIUMTYPE     = syscall.Errno(0x7c)\n\tEMSGSIZE        = syscall.Errno(0x5a)\n\tEMULTIHOP       = syscall.Errno(0x48)\n\tENAMETOOLONG    = syscall.Errno(0x24)\n\tENAVAIL         = syscall.Errno(0x77)\n\tENETDOWN        = syscall.Errno(0x64)\n\tENETRESET       = syscall.Errno(0x66)\n\tENETUNREACH     = syscall.Errno(0x65)\n\tENOANO          = syscall.Errno(0x37)\n\tENOBUFS         = syscall.Errno(0x69)\n\tENOCSI          = syscall.Errno(0x32)\n\tENODATA         = syscall.Errno(0x3d)\n\tENOKEY          = syscall.Errno(0x7e)\n\tENOLCK          = syscall.Errno(0x25)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x7b)\n\tENOMSG          = syscall.Errno(0x2a)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x5c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x26)\n\tENOTCONN        = syscall.Errno(0x6b)\n\tENOTEMPTY       = syscall.Errno(0x27)\n\tENOTNAM         = syscall.Errno(0x76)\n\tENOTRECOVERABLE = syscall.Errno(0x83)\n\tENOTSOCK        = syscall.Errno(0x58)\n\tENOTSUP         = syscall.Errno(0x5f)\n\tENOTUNIQ        = syscall.Errno(0x4c)\n\tEOPNOTSUPP      = syscall.Errno(0x5f)\n\tEOVERFLOW       = syscall.Errno(0x4b)\n\tEOWNERDEAD      = syscall.Errno(0x82)\n\tEPFNOSUPPORT    = syscall.Errno(0x60)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x5d)\n\tEPROTOTYPE      = syscall.Errno(0x5b)\n\tEREMCHG         = syscall.Errno(0x4e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x79)\n\tERESTART        = syscall.Errno(0x55)\n\tERFKILL         = syscall.Errno(0x84)\n\tESHUTDOWN       = syscall.Errno(0x6c)\n\tESOCKTNOSUPPORT = syscall.Errno(0x5e)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x74)\n\tESTRPIPE        = syscall.Errno(0x56)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x6e)\n\tETOOMANYREFS    = syscall.Errno(0x6d)\n\tEUCLEAN         = syscall.Errno(0x75)\n\tEUNATCH         = syscall.Errno(0x31)\n\tEUSERS          = syscall.Errno(0x57)\n\tEXFULL          = syscall.Errno(0x36)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0x7)\n\tSIGCHLD   = syscall.Signal(0x11)\n\tSIGCLD    = syscall.Signal(0x11)\n\tSIGCONT   = syscall.Signal(0x12)\n\tSIGIO     = syscall.Signal(0x1d)\n\tSIGPOLL   = syscall.Signal(0x1d)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x1e)\n\tSIGSTKFLT = syscall.Signal(0x10)\n\tSIGSTOP   = syscall.Signal(0x13)\n\tSIGSYS    = syscall.Signal(0x1f)\n\tSIGTSTP   = syscall.Signal(0x14)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x17)\n\tSIGUSR1   = syscall.Signal(0xa)\n\tSIGUSR2   = syscall.Signal(0xc)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{36, \"ENAMETOOLONG\", \"file name too long\"},\n\t{37, \"ENOLCK\", \"no locks available\"},\n\t{38, \"ENOSYS\", \"function not implemented\"},\n\t{39, \"ENOTEMPTY\", \"directory not empty\"},\n\t{40, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{42, \"ENOMSG\", \"no message of desired type\"},\n\t{43, \"EIDRM\", \"identifier removed\"},\n\t{44, \"ECHRNG\", \"channel number out of range\"},\n\t{45, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{46, \"EL3HLT\", \"level 3 halted\"},\n\t{47, \"EL3RST\", \"level 3 reset\"},\n\t{48, \"ELNRNG\", \"link number out of range\"},\n\t{49, \"EUNATCH\", \"protocol driver not attached\"},\n\t{50, \"ENOCSI\", \"no CSI structure available\"},\n\t{51, \"EL2HLT\", \"level 2 halted\"},\n\t{52, \"EBADE\", \"invalid exchange\"},\n\t{53, \"EBADR\", \"invalid request descriptor\"},\n\t{54, \"EXFULL\", \"exchange full\"},\n\t{55, \"ENOANO\", \"no anode\"},\n\t{56, \"EBADRQC\", \"invalid request code\"},\n\t{57, \"EBADSLT\", \"invalid slot\"},\n\t{58, \"EDEADLOCK\", \"file locking deadlock error\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{72, \"EMULTIHOP\", \"multihop attempted\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EBADMSG\", \"bad message\"},\n\t{75, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{76, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{77, \"EBADFD\", \"file descriptor in bad state\"},\n\t{78, \"EREMCHG\", \"remote address changed\"},\n\t{79, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{80, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{81, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{82, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{83, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{84, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{85, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{86, \"ESTRPIPE\", \"streams pipe error\"},\n\t{87, \"EUSERS\", \"too many users\"},\n\t{88, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{89, \"EDESTADDRREQ\", \"destination address required\"},\n\t{90, \"EMSGSIZE\", \"message too long\"},\n\t{91, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{92, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{93, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{94, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{95, \"ENOTSUP\", \"operation not supported\"},\n\t{96, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{97, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{98, \"EADDRINUSE\", \"address already in use\"},\n\t{99, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{100, \"ENETDOWN\", \"network is down\"},\n\t{101, \"ENETUNREACH\", \"network is unreachable\"},\n\t{102, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{103, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{104, \"ECONNRESET\", \"connection reset by peer\"},\n\t{105, \"ENOBUFS\", \"no buffer space available\"},\n\t{106, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{107, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{108, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{109, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{110, \"ETIMEDOUT\", \"connection timed out\"},\n\t{111, \"ECONNREFUSED\", \"connection refused\"},\n\t{112, \"EHOSTDOWN\", \"host is down\"},\n\t{113, \"EHOSTUNREACH\", \"no route to host\"},\n\t{114, \"EALREADY\", \"operation already in progress\"},\n\t{115, \"EINPROGRESS\", \"operation now in progress\"},\n\t{116, \"ESTALE\", \"stale file handle\"},\n\t{117, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{118, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{119, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{120, \"EISNAM\", \"is a named type file\"},\n\t{121, \"EREMOTEIO\", \"remote I/O error\"},\n\t{122, \"EDQUOT\", \"disk quota exceeded\"},\n\t{123, \"ENOMEDIUM\", \"no medium found\"},\n\t{124, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{125, \"ECANCELED\", \"operation canceled\"},\n\t{126, \"ENOKEY\", \"required key not available\"},\n\t{127, \"EKEYEXPIRED\", \"key has expired\"},\n\t{128, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{129, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{130, \"EOWNERDEAD\", \"owner died\"},\n\t{131, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{132, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{133, \"EHWPOISON\", \"memory page has hardware error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGBUS\", \"bus error\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGUSR1\", \"user defined signal 1\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGUSR2\", \"user defined signal 2\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGSTKFLT\", \"stack fault\"},\n\t{17, \"SIGCHLD\", \"child exited\"},\n\t{18, \"SIGCONT\", \"continued\"},\n\t{19, \"SIGSTOP\", \"stopped (signal)\"},\n\t{20, \"SIGTSTP\", \"stopped\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGURG\", \"urgent I/O condition\"},\n\t{24, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGIO\", \"I/O possible\"},\n\t{30, \"SIGPWR\", \"power failure\"},\n\t{31, \"SIGSYS\", \"bad system call\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/riscv64/include\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build riscv64 && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/riscv64/include _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tB1000000                         = 0x1008\n\tB115200                          = 0x1002\n\tB1152000                         = 0x1009\n\tB1500000                         = 0x100a\n\tB2000000                         = 0x100b\n\tB230400                          = 0x1003\n\tB2500000                         = 0x100c\n\tB3000000                         = 0x100d\n\tB3500000                         = 0x100e\n\tB4000000                         = 0x100f\n\tB460800                          = 0x1004\n\tB500000                          = 0x1005\n\tB57600                           = 0x1001\n\tB576000                          = 0x1006\n\tB921600                          = 0x1007\n\tBLKALIGNOFF                      = 0x127a\n\tBLKBSZGET                        = 0x80081270\n\tBLKBSZSET                        = 0x40081271\n\tBLKDISCARD                       = 0x1277\n\tBLKDISCARDZEROES                 = 0x127c\n\tBLKFLSBUF                        = 0x1261\n\tBLKFRAGET                        = 0x1265\n\tBLKFRASET                        = 0x1264\n\tBLKGETDISKSEQ                    = 0x80081280\n\tBLKGETSIZE                       = 0x1260\n\tBLKGETSIZE64                     = 0x80081272\n\tBLKIOMIN                         = 0x1278\n\tBLKIOOPT                         = 0x1279\n\tBLKPBSZGET                       = 0x127b\n\tBLKRAGET                         = 0x1263\n\tBLKRASET                         = 0x1262\n\tBLKROGET                         = 0x125e\n\tBLKROSET                         = 0x125d\n\tBLKROTATIONAL                    = 0x127e\n\tBLKRRPART                        = 0x125f\n\tBLKSECDISCARD                    = 0x127d\n\tBLKSECTGET                       = 0x1267\n\tBLKSECTSET                       = 0x1266\n\tBLKSSZGET                        = 0x1268\n\tBLKZEROOUT                       = 0x127f\n\tBOTHER                           = 0x1000\n\tBS1                              = 0x2000\n\tBSDLY                            = 0x2000\n\tCBAUD                            = 0x100f\n\tCBAUDEX                          = 0x1000\n\tCIBAUD                           = 0x100f0000\n\tCLOCAL                           = 0x800\n\tCR1                              = 0x200\n\tCR2                              = 0x400\n\tCR3                              = 0x600\n\tCRDLY                            = 0x600\n\tCREAD                            = 0x80\n\tCS6                              = 0x10\n\tCS7                              = 0x20\n\tCS8                              = 0x30\n\tCSIZE                            = 0x30\n\tCSTOPB                           = 0x40\n\tECCGETLAYOUT                     = 0x81484d11\n\tECCGETSTATS                      = 0x80104d12\n\tECHOCTL                          = 0x200\n\tECHOE                            = 0x10\n\tECHOK                            = 0x20\n\tECHOKE                           = 0x800\n\tECHONL                           = 0x40\n\tECHOPRT                          = 0x400\n\tEFD_CLOEXEC                      = 0x80000\n\tEFD_NONBLOCK                     = 0x800\n\tEPIOCGPARAMS                     = 0x80088a02\n\tEPIOCSPARAMS                     = 0x40088a01\n\tEPOLL_CLOEXEC                    = 0x80000\n\tEXTPROC                          = 0x10000\n\tFF1                              = 0x8000\n\tFFDLY                            = 0x8000\n\tFICLONE                          = 0x40049409\n\tFICLONERANGE                     = 0x4020940d\n\tFLUSHO                           = 0x1000\n\tFS_IOC_ENABLE_VERITY             = 0x40806685\n\tFS_IOC_GETFLAGS                  = 0x80086601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x8010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x400c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x40106614\n\tFS_IOC_SETFLAGS                  = 0x40086602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x800c6613\n\tF_GETLK                          = 0x5\n\tF_GETLK64                        = 0x5\n\tF_GETOWN                         = 0x9\n\tF_RDLCK                          = 0x0\n\tF_SETLK                          = 0x6\n\tF_SETLK64                        = 0x6\n\tF_SETLKW                         = 0x7\n\tF_SETLKW64                       = 0x7\n\tF_SETOWN                         = 0x8\n\tF_UNLCK                          = 0x2\n\tF_WRLCK                          = 0x1\n\tHIDIOCGRAWINFO                   = 0x80084803\n\tHIDIOCGRDESC                     = 0x90044802\n\tHIDIOCGRDESCSIZE                 = 0x80044801\n\tHIDIOCREVOKE                     = 0x4004480d\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x8000\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x800\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9\n\tIPV6_FLOWINFO_MASK               = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK              = 0xffff0f00\n\tISIG                             = 0x1\n\tIUCLC                            = 0x200\n\tIXOFF                            = 0x1000\n\tIXON                             = 0x400\n\tMAP_ANON                         = 0x20\n\tMAP_ANONYMOUS                    = 0x20\n\tMAP_DENYWRITE                    = 0x800\n\tMAP_EXECUTABLE                   = 0x1000\n\tMAP_GROWSDOWN                    = 0x100\n\tMAP_HUGETLB                      = 0x40000\n\tMAP_LOCKED                       = 0x2000\n\tMAP_NONBLOCK                     = 0x10000\n\tMAP_NORESERVE                    = 0x4000\n\tMAP_POPULATE                     = 0x8000\n\tMAP_STACK                        = 0x20000\n\tMAP_SYNC                         = 0x80000\n\tMCL_CURRENT                      = 0x1\n\tMCL_FUTURE                       = 0x2\n\tMCL_ONFAULT                      = 0x4\n\tMEMERASE                         = 0x40084d02\n\tMEMERASE64                       = 0x40104d14\n\tMEMGETBADBLOCK                   = 0x40084d0b\n\tMEMGETINFO                       = 0x80204d01\n\tMEMGETOOBSEL                     = 0x80c84d0a\n\tMEMGETREGIONCOUNT                = 0x80044d07\n\tMEMISLOCKED                      = 0x80084d17\n\tMEMLOCK                          = 0x40084d05\n\tMEMREAD                          = 0xc0404d1a\n\tMEMREADOOB                       = 0xc0104d04\n\tMEMSETBADBLOCK                   = 0x40084d0c\n\tMEMUNLOCK                        = 0x40084d06\n\tMEMWRITEOOB                      = 0xc0104d03\n\tMTDFILEMODE                      = 0x4d13\n\tNFDBITS                          = 0x40\n\tNLDLY                            = 0x100\n\tNOFLSH                           = 0x80\n\tNS_GET_MNTNS_ID                  = 0x8008b705\n\tNS_GET_NSTYPE                    = 0xb703\n\tNS_GET_OWNER_UID                 = 0xb704\n\tNS_GET_PARENT                    = 0xb702\n\tNS_GET_PID_FROM_PIDNS            = 0x8004b706\n\tNS_GET_PID_IN_PIDNS              = 0x8004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x8004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x8004b709\n\tNS_GET_USERNS                    = 0xb701\n\tOLCUC                            = 0x2\n\tONLCR                            = 0x4\n\tOTPERASE                         = 0x400c4d19\n\tOTPGETREGIONCOUNT                = 0x40044d0e\n\tOTPGETREGIONINFO                 = 0x400c4d0f\n\tOTPLOCK                          = 0x800c4d10\n\tOTPSELECT                        = 0x80044d0d\n\tO_APPEND                         = 0x400\n\tO_ASYNC                          = 0x2000\n\tO_CLOEXEC                        = 0x80000\n\tO_CREAT                          = 0x40\n\tO_DIRECT                         = 0x4000\n\tO_DIRECTORY                      = 0x10000\n\tO_DSYNC                          = 0x1000\n\tO_EXCL                           = 0x80\n\tO_FSYNC                          = 0x101000\n\tO_LARGEFILE                      = 0x0\n\tO_NDELAY                         = 0x800\n\tO_NOATIME                        = 0x40000\n\tO_NOCTTY                         = 0x100\n\tO_NOFOLLOW                       = 0x20000\n\tO_NONBLOCK                       = 0x800\n\tO_PATH                           = 0x200000\n\tO_RSYNC                          = 0x101000\n\tO_SYNC                           = 0x101000\n\tO_TMPFILE                        = 0x410000\n\tO_TRUNC                          = 0x200\n\tPARENB                           = 0x100\n\tPARODD                           = 0x200\n\tPENDIN                           = 0x4000\n\tPERF_EVENT_IOC_DISABLE           = 0x2401\n\tPERF_EVENT_IOC_ENABLE            = 0x2400\n\tPERF_EVENT_IOC_ID                = 0x80082407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x40042409\n\tPERF_EVENT_IOC_PERIOD            = 0x40082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc008240a\n\tPERF_EVENT_IOC_REFRESH           = 0x2402\n\tPERF_EVENT_IOC_RESET             = 0x2403\n\tPERF_EVENT_IOC_SET_BPF           = 0x40042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x40082406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x2405\n\tPPPIOCATTACH                     = 0x4004743d\n\tPPPIOCATTCHAN                    = 0x40047438\n\tPPPIOCBRIDGECHAN                 = 0x40047435\n\tPPPIOCCONNECT                    = 0x4004743a\n\tPPPIOCDETACH                     = 0x4004743c\n\tPPPIOCDISCONN                    = 0x7439\n\tPPPIOCGASYNCMAP                  = 0x80047458\n\tPPPIOCGCHAN                      = 0x80047437\n\tPPPIOCGDEBUG                     = 0x80047441\n\tPPPIOCGFLAGS                     = 0x8004745a\n\tPPPIOCGIDLE                      = 0x8010743f\n\tPPPIOCGIDLE32                    = 0x8008743f\n\tPPPIOCGIDLE64                    = 0x8010743f\n\tPPPIOCGL2TPSTATS                 = 0x80487436\n\tPPPIOCGMRU                       = 0x80047453\n\tPPPIOCGRASYNCMAP                 = 0x80047455\n\tPPPIOCGUNIT                      = 0x80047456\n\tPPPIOCGXASYNCMAP                 = 0x80207450\n\tPPPIOCSACTIVE                    = 0x40107446\n\tPPPIOCSASYNCMAP                  = 0x40047457\n\tPPPIOCSCOMPRESS                  = 0x4010744d\n\tPPPIOCSDEBUG                     = 0x40047440\n\tPPPIOCSFLAGS                     = 0x40047459\n\tPPPIOCSMAXCID                    = 0x40047451\n\tPPPIOCSMRRU                      = 0x4004743b\n\tPPPIOCSMRU                       = 0x40047452\n\tPPPIOCSNPMODE                    = 0x4008744b\n\tPPPIOCSPASS                      = 0x40107447\n\tPPPIOCSRASYNCMAP                 = 0x40047454\n\tPPPIOCSXASYNCMAP                 = 0x4020744f\n\tPPPIOCUNBRIDGECHAN               = 0x7434\n\tPPPIOCXFERUNIT                   = 0x744e\n\tPR_SET_PTRACER_ANY               = 0xffffffffffffffff\n\tPTP_CLOCK_GETCAPS                = 0x80503d01\n\tPTP_CLOCK_GETCAPS2               = 0x80503d0a\n\tPTP_ENABLE_PPS                   = 0x40043d04\n\tPTP_ENABLE_PPS2                  = 0x40043d0d\n\tPTP_EXTTS_REQUEST                = 0x40103d02\n\tPTP_EXTTS_REQUEST2               = 0x40103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x3d13\n\tPTP_MASK_EN_SINGLE               = 0x40043d14\n\tPTP_PEROUT_REQUEST               = 0x40383d03\n\tPTP_PEROUT_REQUEST2              = 0x40383d0c\n\tPTP_PIN_SETFUNC                  = 0x40603d07\n\tPTP_PIN_SETFUNC2                 = 0x40603d10\n\tPTP_SYS_OFFSET                   = 0x43403d05\n\tPTP_SYS_OFFSET2                  = 0x43403d0e\n\tPTRACE_GETFDPIC                  = 0x21\n\tPTRACE_GETFDPIC_EXEC             = 0x0\n\tPTRACE_GETFDPIC_INTERP           = 0x1\n\tRLIMIT_AS                        = 0x9\n\tRLIMIT_MEMLOCK                   = 0x8\n\tRLIMIT_NOFILE                    = 0x7\n\tRLIMIT_NPROC                     = 0x6\n\tRLIMIT_RSS                       = 0x5\n\tRNDADDENTROPY                    = 0x40085203\n\tRNDADDTOENTCNT                   = 0x40045201\n\tRNDCLEARPOOL                     = 0x5206\n\tRNDGETENTCNT                     = 0x80045200\n\tRNDGETPOOL                       = 0x80085202\n\tRNDRESEEDCRNG                    = 0x5207\n\tRNDZAPENTCNT                     = 0x5204\n\tRTC_AIE_OFF                      = 0x7002\n\tRTC_AIE_ON                       = 0x7001\n\tRTC_ALM_READ                     = 0x80247008\n\tRTC_ALM_SET                      = 0x40247007\n\tRTC_EPOCH_READ                   = 0x8008700d\n\tRTC_EPOCH_SET                    = 0x4008700e\n\tRTC_IRQP_READ                    = 0x8008700b\n\tRTC_IRQP_SET                     = 0x4008700c\n\tRTC_PARAM_GET                    = 0x40187013\n\tRTC_PARAM_SET                    = 0x40187014\n\tRTC_PIE_OFF                      = 0x7006\n\tRTC_PIE_ON                       = 0x7005\n\tRTC_PLL_GET                      = 0x80207011\n\tRTC_PLL_SET                      = 0x40207012\n\tRTC_RD_TIME                      = 0x80247009\n\tRTC_SET_TIME                     = 0x4024700a\n\tRTC_UIE_OFF                      = 0x7004\n\tRTC_UIE_ON                       = 0x7003\n\tRTC_VL_CLR                       = 0x7014\n\tRTC_VL_READ                      = 0x80047013\n\tRTC_WIE_OFF                      = 0x7010\n\tRTC_WIE_ON                       = 0x700f\n\tRTC_WKALM_RD                     = 0x80287010\n\tRTC_WKALM_SET                    = 0x4028700f\n\tSCM_DEVMEM_DMABUF                = 0x4f\n\tSCM_DEVMEM_LINEAR                = 0x4e\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TS_OPT_ID                    = 0x51\n\tSCM_TXTIME                       = 0x3d\n\tSCM_WIFI_STATUS                  = 0x29\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x40182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x40082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x40082104\n\tSFD_CLOEXEC                      = 0x80000\n\tSFD_NONBLOCK                     = 0x800\n\tSIOCATMARK                       = 0x8905\n\tSIOCGPGRP                        = 0x8904\n\tSIOCGSTAMPNS_NEW                 = 0x80108907\n\tSIOCGSTAMP_NEW                   = 0x80108906\n\tSIOCINQ                          = 0x541b\n\tSIOCOUTQ                         = 0x5411\n\tSIOCSPGRP                        = 0x8902\n\tSOCK_CLOEXEC                     = 0x80000\n\tSOCK_DGRAM                       = 0x2\n\tSOCK_NONBLOCK                    = 0x800\n\tSOCK_STREAM                      = 0x1\n\tSOL_SOCKET                       = 0x1\n\tSO_ACCEPTCONN                    = 0x1e\n\tSO_ATTACH_BPF                    = 0x32\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x34\n\tSO_BINDTODEVICE                  = 0x19\n\tSO_BINDTOIFINDEX                 = 0x3e\n\tSO_BPF_EXTENSIONS                = 0x30\n\tSO_BROADCAST                     = 0x6\n\tSO_BSDCOMPAT                     = 0xe\n\tSO_BUF_LOCK                      = 0x48\n\tSO_BUSY_POLL                     = 0x2e\n\tSO_BUSY_POLL_BUDGET              = 0x46\n\tSO_CNX_ADVICE                    = 0x35\n\tSO_COOKIE                        = 0x39\n\tSO_DETACH_REUSEPORT_BPF          = 0x44\n\tSO_DEVMEM_DMABUF                 = 0x4f\n\tSO_DEVMEM_DONTNEED               = 0x50\n\tSO_DEVMEM_LINEAR                 = 0x4e\n\tSO_DOMAIN                        = 0x27\n\tSO_DONTROUTE                     = 0x5\n\tSO_ERROR                         = 0x4\n\tSO_INCOMING_CPU                  = 0x31\n\tSO_INCOMING_NAPI_ID              = 0x38\n\tSO_KEEPALIVE                     = 0x9\n\tSO_LINGER                        = 0xd\n\tSO_LOCK_FILTER                   = 0x2c\n\tSO_MARK                          = 0x24\n\tSO_MAX_PACING_RATE               = 0x2f\n\tSO_MEMINFO                       = 0x37\n\tSO_NETNS_COOKIE                  = 0x47\n\tSO_NOFCS                         = 0x2b\n\tSO_OOBINLINE                     = 0xa\n\tSO_PASSCRED                      = 0x10\n\tSO_PASSPIDFD                     = 0x4c\n\tSO_PASSSEC                       = 0x22\n\tSO_PEEK_OFF                      = 0x2a\n\tSO_PEERCRED                      = 0x11\n\tSO_PEERGROUPS                    = 0x3b\n\tSO_PEERPIDFD                     = 0x4d\n\tSO_PEERSEC                       = 0x1f\n\tSO_PREFER_BUSY_POLL              = 0x45\n\tSO_PROTOCOL                      = 0x26\n\tSO_RCVBUF                        = 0x8\n\tSO_RCVBUFFORCE                   = 0x21\n\tSO_RCVLOWAT                      = 0x12\n\tSO_RCVMARK                       = 0x4b\n\tSO_RCVTIMEO                      = 0x14\n\tSO_RCVTIMEO_NEW                  = 0x42\n\tSO_RCVTIMEO_OLD                  = 0x14\n\tSO_RESERVE_MEM                   = 0x49\n\tSO_REUSEADDR                     = 0x2\n\tSO_REUSEPORT                     = 0xf\n\tSO_RXQ_OVFL                      = 0x28\n\tSO_SECURITY_AUTHENTICATION       = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x17\n\tSO_SELECT_ERR_QUEUE              = 0x2d\n\tSO_SNDBUF                        = 0x7\n\tSO_SNDBUFFORCE                   = 0x20\n\tSO_SNDLOWAT                      = 0x13\n\tSO_SNDTIMEO                      = 0x15\n\tSO_SNDTIMEO_NEW                  = 0x43\n\tSO_SNDTIMEO_OLD                  = 0x15\n\tSO_TIMESTAMPING                  = 0x25\n\tSO_TIMESTAMPING_NEW              = 0x41\n\tSO_TIMESTAMPING_OLD              = 0x25\n\tSO_TIMESTAMPNS                   = 0x23\n\tSO_TIMESTAMPNS_NEW               = 0x40\n\tSO_TIMESTAMPNS_OLD               = 0x23\n\tSO_TIMESTAMP_NEW                 = 0x3f\n\tSO_TXREHASH                      = 0x4a\n\tSO_TXTIME                        = 0x3d\n\tSO_TYPE                          = 0x3\n\tSO_WIFI_STATUS                   = 0x29\n\tSO_ZEROCOPY                      = 0x3c\n\tTAB1                             = 0x800\n\tTAB2                             = 0x1000\n\tTAB3                             = 0x1800\n\tTABDLY                           = 0x1800\n\tTCFLSH                           = 0x540b\n\tTCGETA                           = 0x5405\n\tTCGETS                           = 0x5401\n\tTCGETS2                          = 0x802c542a\n\tTCGETX                           = 0x5432\n\tTCSAFLUSH                        = 0x2\n\tTCSBRK                           = 0x5409\n\tTCSBRKP                          = 0x5425\n\tTCSETA                           = 0x5406\n\tTCSETAF                          = 0x5408\n\tTCSETAW                          = 0x5407\n\tTCSETS                           = 0x5402\n\tTCSETS2                          = 0x402c542b\n\tTCSETSF                          = 0x5404\n\tTCSETSF2                         = 0x402c542d\n\tTCSETSW                          = 0x5403\n\tTCSETSW2                         = 0x402c542c\n\tTCSETX                           = 0x5433\n\tTCSETXF                          = 0x5434\n\tTCSETXW                          = 0x5435\n\tTCXONC                           = 0x540a\n\tTFD_CLOEXEC                      = 0x80000\n\tTFD_NONBLOCK                     = 0x800\n\tTIOCCBRK                         = 0x5428\n\tTIOCCONS                         = 0x541d\n\tTIOCEXCL                         = 0x540c\n\tTIOCGDEV                         = 0x80045432\n\tTIOCGETD                         = 0x5424\n\tTIOCGEXCL                        = 0x80045440\n\tTIOCGICOUNT                      = 0x545d\n\tTIOCGISO7816                     = 0x80285442\n\tTIOCGLCKTRMIOS                   = 0x5456\n\tTIOCGPGRP                        = 0x540f\n\tTIOCGPKT                         = 0x80045438\n\tTIOCGPTLCK                       = 0x80045439\n\tTIOCGPTN                         = 0x80045430\n\tTIOCGPTPEER                      = 0x5441\n\tTIOCGRS485                       = 0x542e\n\tTIOCGSERIAL                      = 0x541e\n\tTIOCGSID                         = 0x5429\n\tTIOCGSOFTCAR                     = 0x5419\n\tTIOCGWINSZ                       = 0x5413\n\tTIOCINQ                          = 0x541b\n\tTIOCLINUX                        = 0x541c\n\tTIOCMBIC                         = 0x5417\n\tTIOCMBIS                         = 0x5416\n\tTIOCMGET                         = 0x5415\n\tTIOCMIWAIT                       = 0x545c\n\tTIOCMSET                         = 0x5418\n\tTIOCM_CAR                        = 0x40\n\tTIOCM_CD                         = 0x40\n\tTIOCM_CTS                        = 0x20\n\tTIOCM_DSR                        = 0x100\n\tTIOCM_RI                         = 0x80\n\tTIOCM_RNG                        = 0x80\n\tTIOCM_SR                         = 0x10\n\tTIOCM_ST                         = 0x8\n\tTIOCNOTTY                        = 0x5422\n\tTIOCNXCL                         = 0x540d\n\tTIOCOUTQ                         = 0x5411\n\tTIOCPKT                          = 0x5420\n\tTIOCSBRK                         = 0x5427\n\tTIOCSCTTY                        = 0x540e\n\tTIOCSERCONFIG                    = 0x5453\n\tTIOCSERGETLSR                    = 0x5459\n\tTIOCSERGETMULTI                  = 0x545a\n\tTIOCSERGSTRUCT                   = 0x5458\n\tTIOCSERGWILD                     = 0x5454\n\tTIOCSERSETMULTI                  = 0x545b\n\tTIOCSERSWILD                     = 0x5455\n\tTIOCSER_TEMT                     = 0x1\n\tTIOCSETD                         = 0x5423\n\tTIOCSIG                          = 0x40045436\n\tTIOCSISO7816                     = 0xc0285443\n\tTIOCSLCKTRMIOS                   = 0x5457\n\tTIOCSPGRP                        = 0x5410\n\tTIOCSPTLCK                       = 0x40045431\n\tTIOCSRS485                       = 0x542f\n\tTIOCSSERIAL                      = 0x541f\n\tTIOCSSOFTCAR                     = 0x541a\n\tTIOCSTI                          = 0x5412\n\tTIOCSWINSZ                       = 0x5414\n\tTIOCVHANGUP                      = 0x5437\n\tTOSTOP                           = 0x100\n\tTUNATTACHFILTER                  = 0x401054d5\n\tTUNDETACHFILTER                  = 0x401054d6\n\tTUNGETDEVNETNS                   = 0x54e3\n\tTUNGETFEATURES                   = 0x800454cf\n\tTUNGETFILTER                     = 0x801054db\n\tTUNGETIFF                        = 0x800454d2\n\tTUNGETSNDBUF                     = 0x800454d3\n\tTUNGETVNETBE                     = 0x800454df\n\tTUNGETVNETHDRSZ                  = 0x800454d7\n\tTUNGETVNETLE                     = 0x800454dd\n\tTUNSETCARRIER                    = 0x400454e2\n\tTUNSETDEBUG                      = 0x400454c9\n\tTUNSETFILTEREBPF                 = 0x800454e1\n\tTUNSETGROUP                      = 0x400454ce\n\tTUNSETIFF                        = 0x400454ca\n\tTUNSETIFINDEX                    = 0x400454da\n\tTUNSETLINK                       = 0x400454cd\n\tTUNSETNOCSUM                     = 0x400454c8\n\tTUNSETOFFLOAD                    = 0x400454d0\n\tTUNSETOWNER                      = 0x400454cc\n\tTUNSETPERSIST                    = 0x400454cb\n\tTUNSETQUEUE                      = 0x400454d9\n\tTUNSETSNDBUF                     = 0x400454d4\n\tTUNSETSTEERINGEBPF               = 0x800454e0\n\tTUNSETTXFILTER                   = 0x400454d1\n\tTUNSETVNETBE                     = 0x400454de\n\tTUNSETVNETHDRSZ                  = 0x400454d8\n\tTUNSETVNETLE                     = 0x400454dc\n\tUBI_IOCATT                       = 0x40186f40\n\tUBI_IOCDET                       = 0x40046f41\n\tUBI_IOCEBCH                      = 0x40044f02\n\tUBI_IOCEBER                      = 0x40044f01\n\tUBI_IOCEBISMAP                   = 0x80044f05\n\tUBI_IOCEBMAP                     = 0x40084f03\n\tUBI_IOCEBUNMAP                   = 0x40044f04\n\tUBI_IOCMKVOL                     = 0x40986f00\n\tUBI_IOCRMVOL                     = 0x40046f01\n\tUBI_IOCRNVOL                     = 0x51106f03\n\tUBI_IOCRPEB                      = 0x40046f04\n\tUBI_IOCRSVOL                     = 0x400c6f02\n\tUBI_IOCSETVOLPROP                = 0x40104f06\n\tUBI_IOCSPEB                      = 0x40046f05\n\tUBI_IOCVOLCRBLK                  = 0x40804f07\n\tUBI_IOCVOLRMBLK                  = 0x4f08\n\tUBI_IOCVOLUP                     = 0x40084f00\n\tVDISCARD                         = 0xd\n\tVEOF                             = 0x4\n\tVEOL                             = 0xb\n\tVEOL2                            = 0x10\n\tVMIN                             = 0x6\n\tVREPRINT                         = 0xc\n\tVSTART                           = 0x8\n\tVSTOP                            = 0x9\n\tVSUSP                            = 0xa\n\tVSWTC                            = 0x7\n\tVT1                              = 0x4000\n\tVTDLY                            = 0x4000\n\tVTIME                            = 0x5\n\tVWERASE                          = 0xe\n\tWDIOC_GETBOOTSTATUS              = 0x80045702\n\tWDIOC_GETPRETIMEOUT              = 0x80045709\n\tWDIOC_GETSTATUS                  = 0x80045701\n\tWDIOC_GETSUPPORT                 = 0x80285700\n\tWDIOC_GETTEMP                    = 0x80045703\n\tWDIOC_GETTIMELEFT                = 0x8004570a\n\tWDIOC_GETTIMEOUT                 = 0x80045707\n\tWDIOC_KEEPALIVE                  = 0x80045705\n\tWDIOC_SETOPTIONS                 = 0x80045704\n\tWORDSIZE                         = 0x40\n\tXCASE                            = 0x4\n\tXTABS                            = 0x1800\n\t_HIDIOCGRAWNAME                  = 0x80804804\n\t_HIDIOCGRAWPHYS                  = 0x80404805\n\t_HIDIOCGRAWUNIQ                  = 0x80404808\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x62)\n\tEADDRNOTAVAIL   = syscall.Errno(0x63)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x61)\n\tEALREADY        = syscall.Errno(0x72)\n\tEBADE           = syscall.Errno(0x34)\n\tEBADFD          = syscall.Errno(0x4d)\n\tEBADMSG         = syscall.Errno(0x4a)\n\tEBADR           = syscall.Errno(0x35)\n\tEBADRQC         = syscall.Errno(0x38)\n\tEBADSLT         = syscall.Errno(0x39)\n\tEBFONT          = syscall.Errno(0x3b)\n\tECANCELED       = syscall.Errno(0x7d)\n\tECHRNG          = syscall.Errno(0x2c)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x67)\n\tECONNREFUSED    = syscall.Errno(0x6f)\n\tECONNRESET      = syscall.Errno(0x68)\n\tEDEADLK         = syscall.Errno(0x23)\n\tEDEADLOCK       = syscall.Errno(0x23)\n\tEDESTADDRREQ    = syscall.Errno(0x59)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x7a)\n\tEHOSTDOWN       = syscall.Errno(0x70)\n\tEHOSTUNREACH    = syscall.Errno(0x71)\n\tEHWPOISON       = syscall.Errno(0x85)\n\tEIDRM           = syscall.Errno(0x2b)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x73)\n\tEISCONN         = syscall.Errno(0x6a)\n\tEISNAM          = syscall.Errno(0x78)\n\tEKEYEXPIRED     = syscall.Errno(0x7f)\n\tEKEYREJECTED    = syscall.Errno(0x81)\n\tEKEYREVOKED     = syscall.Errno(0x80)\n\tEL2HLT          = syscall.Errno(0x33)\n\tEL2NSYNC        = syscall.Errno(0x2d)\n\tEL3HLT          = syscall.Errno(0x2e)\n\tEL3RST          = syscall.Errno(0x2f)\n\tELIBACC         = syscall.Errno(0x4f)\n\tELIBBAD         = syscall.Errno(0x50)\n\tELIBEXEC        = syscall.Errno(0x53)\n\tELIBMAX         = syscall.Errno(0x52)\n\tELIBSCN         = syscall.Errno(0x51)\n\tELNRNG          = syscall.Errno(0x30)\n\tELOOP           = syscall.Errno(0x28)\n\tEMEDIUMTYPE     = syscall.Errno(0x7c)\n\tEMSGSIZE        = syscall.Errno(0x5a)\n\tEMULTIHOP       = syscall.Errno(0x48)\n\tENAMETOOLONG    = syscall.Errno(0x24)\n\tENAVAIL         = syscall.Errno(0x77)\n\tENETDOWN        = syscall.Errno(0x64)\n\tENETRESET       = syscall.Errno(0x66)\n\tENETUNREACH     = syscall.Errno(0x65)\n\tENOANO          = syscall.Errno(0x37)\n\tENOBUFS         = syscall.Errno(0x69)\n\tENOCSI          = syscall.Errno(0x32)\n\tENODATA         = syscall.Errno(0x3d)\n\tENOKEY          = syscall.Errno(0x7e)\n\tENOLCK          = syscall.Errno(0x25)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x7b)\n\tENOMSG          = syscall.Errno(0x2a)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x5c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x26)\n\tENOTCONN        = syscall.Errno(0x6b)\n\tENOTEMPTY       = syscall.Errno(0x27)\n\tENOTNAM         = syscall.Errno(0x76)\n\tENOTRECOVERABLE = syscall.Errno(0x83)\n\tENOTSOCK        = syscall.Errno(0x58)\n\tENOTSUP         = syscall.Errno(0x5f)\n\tENOTUNIQ        = syscall.Errno(0x4c)\n\tEOPNOTSUPP      = syscall.Errno(0x5f)\n\tEOVERFLOW       = syscall.Errno(0x4b)\n\tEOWNERDEAD      = syscall.Errno(0x82)\n\tEPFNOSUPPORT    = syscall.Errno(0x60)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x5d)\n\tEPROTOTYPE      = syscall.Errno(0x5b)\n\tEREMCHG         = syscall.Errno(0x4e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x79)\n\tERESTART        = syscall.Errno(0x55)\n\tERFKILL         = syscall.Errno(0x84)\n\tESHUTDOWN       = syscall.Errno(0x6c)\n\tESOCKTNOSUPPORT = syscall.Errno(0x5e)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x74)\n\tESTRPIPE        = syscall.Errno(0x56)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x6e)\n\tETOOMANYREFS    = syscall.Errno(0x6d)\n\tEUCLEAN         = syscall.Errno(0x75)\n\tEUNATCH         = syscall.Errno(0x31)\n\tEUSERS          = syscall.Errno(0x57)\n\tEXFULL          = syscall.Errno(0x36)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0x7)\n\tSIGCHLD   = syscall.Signal(0x11)\n\tSIGCLD    = syscall.Signal(0x11)\n\tSIGCONT   = syscall.Signal(0x12)\n\tSIGIO     = syscall.Signal(0x1d)\n\tSIGPOLL   = syscall.Signal(0x1d)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x1e)\n\tSIGSTKFLT = syscall.Signal(0x10)\n\tSIGSTOP   = syscall.Signal(0x13)\n\tSIGSYS    = syscall.Signal(0x1f)\n\tSIGTSTP   = syscall.Signal(0x14)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x17)\n\tSIGUSR1   = syscall.Signal(0xa)\n\tSIGUSR2   = syscall.Signal(0xc)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{36, \"ENAMETOOLONG\", \"file name too long\"},\n\t{37, \"ENOLCK\", \"no locks available\"},\n\t{38, \"ENOSYS\", \"function not implemented\"},\n\t{39, \"ENOTEMPTY\", \"directory not empty\"},\n\t{40, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{42, \"ENOMSG\", \"no message of desired type\"},\n\t{43, \"EIDRM\", \"identifier removed\"},\n\t{44, \"ECHRNG\", \"channel number out of range\"},\n\t{45, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{46, \"EL3HLT\", \"level 3 halted\"},\n\t{47, \"EL3RST\", \"level 3 reset\"},\n\t{48, \"ELNRNG\", \"link number out of range\"},\n\t{49, \"EUNATCH\", \"protocol driver not attached\"},\n\t{50, \"ENOCSI\", \"no CSI structure available\"},\n\t{51, \"EL2HLT\", \"level 2 halted\"},\n\t{52, \"EBADE\", \"invalid exchange\"},\n\t{53, \"EBADR\", \"invalid request descriptor\"},\n\t{54, \"EXFULL\", \"exchange full\"},\n\t{55, \"ENOANO\", \"no anode\"},\n\t{56, \"EBADRQC\", \"invalid request code\"},\n\t{57, \"EBADSLT\", \"invalid slot\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{72, \"EMULTIHOP\", \"multihop attempted\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EBADMSG\", \"bad message\"},\n\t{75, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{76, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{77, \"EBADFD\", \"file descriptor in bad state\"},\n\t{78, \"EREMCHG\", \"remote address changed\"},\n\t{79, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{80, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{81, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{82, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{83, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{84, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{85, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{86, \"ESTRPIPE\", \"streams pipe error\"},\n\t{87, \"EUSERS\", \"too many users\"},\n\t{88, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{89, \"EDESTADDRREQ\", \"destination address required\"},\n\t{90, \"EMSGSIZE\", \"message too long\"},\n\t{91, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{92, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{93, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{94, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{95, \"ENOTSUP\", \"operation not supported\"},\n\t{96, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{97, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{98, \"EADDRINUSE\", \"address already in use\"},\n\t{99, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{100, \"ENETDOWN\", \"network is down\"},\n\t{101, \"ENETUNREACH\", \"network is unreachable\"},\n\t{102, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{103, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{104, \"ECONNRESET\", \"connection reset by peer\"},\n\t{105, \"ENOBUFS\", \"no buffer space available\"},\n\t{106, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{107, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{108, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{109, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{110, \"ETIMEDOUT\", \"connection timed out\"},\n\t{111, \"ECONNREFUSED\", \"connection refused\"},\n\t{112, \"EHOSTDOWN\", \"host is down\"},\n\t{113, \"EHOSTUNREACH\", \"no route to host\"},\n\t{114, \"EALREADY\", \"operation already in progress\"},\n\t{115, \"EINPROGRESS\", \"operation now in progress\"},\n\t{116, \"ESTALE\", \"stale file handle\"},\n\t{117, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{118, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{119, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{120, \"EISNAM\", \"is a named type file\"},\n\t{121, \"EREMOTEIO\", \"remote I/O error\"},\n\t{122, \"EDQUOT\", \"disk quota exceeded\"},\n\t{123, \"ENOMEDIUM\", \"no medium found\"},\n\t{124, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{125, \"ECANCELED\", \"operation canceled\"},\n\t{126, \"ENOKEY\", \"required key not available\"},\n\t{127, \"EKEYEXPIRED\", \"key has expired\"},\n\t{128, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{129, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{130, \"EOWNERDEAD\", \"owner died\"},\n\t{131, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{132, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{133, \"EHWPOISON\", \"memory page has hardware error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGBUS\", \"bus error\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGUSR1\", \"user defined signal 1\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGUSR2\", \"user defined signal 2\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGSTKFLT\", \"stack fault\"},\n\t{17, \"SIGCHLD\", \"child exited\"},\n\t{18, \"SIGCONT\", \"continued\"},\n\t{19, \"SIGSTOP\", \"stopped (signal)\"},\n\t{20, \"SIGTSTP\", \"stopped\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGURG\", \"urgent I/O condition\"},\n\t{24, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGIO\", \"I/O possible\"},\n\t{30, \"SIGPWR\", \"power failure\"},\n\t{31, \"SIGSYS\", \"bad system call\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/s390x/include -fsigned-char\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build s390x && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/s390x/include -fsigned-char _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tB1000000                         = 0x1008\n\tB115200                          = 0x1002\n\tB1152000                         = 0x1009\n\tB1500000                         = 0x100a\n\tB2000000                         = 0x100b\n\tB230400                          = 0x1003\n\tB2500000                         = 0x100c\n\tB3000000                         = 0x100d\n\tB3500000                         = 0x100e\n\tB4000000                         = 0x100f\n\tB460800                          = 0x1004\n\tB500000                          = 0x1005\n\tB57600                           = 0x1001\n\tB576000                          = 0x1006\n\tB921600                          = 0x1007\n\tBLKALIGNOFF                      = 0x127a\n\tBLKBSZGET                        = 0x80081270\n\tBLKBSZSET                        = 0x40081271\n\tBLKDISCARD                       = 0x1277\n\tBLKDISCARDZEROES                 = 0x127c\n\tBLKFLSBUF                        = 0x1261\n\tBLKFRAGET                        = 0x1265\n\tBLKFRASET                        = 0x1264\n\tBLKGETDISKSEQ                    = 0x80081280\n\tBLKGETSIZE                       = 0x1260\n\tBLKGETSIZE64                     = 0x80081272\n\tBLKIOMIN                         = 0x1278\n\tBLKIOOPT                         = 0x1279\n\tBLKPBSZGET                       = 0x127b\n\tBLKRAGET                         = 0x1263\n\tBLKRASET                         = 0x1262\n\tBLKROGET                         = 0x125e\n\tBLKROSET                         = 0x125d\n\tBLKROTATIONAL                    = 0x127e\n\tBLKRRPART                        = 0x125f\n\tBLKSECDISCARD                    = 0x127d\n\tBLKSECTGET                       = 0x1267\n\tBLKSECTSET                       = 0x1266\n\tBLKSSZGET                        = 0x1268\n\tBLKZEROOUT                       = 0x127f\n\tBOTHER                           = 0x1000\n\tBS1                              = 0x2000\n\tBSDLY                            = 0x2000\n\tCBAUD                            = 0x100f\n\tCBAUDEX                          = 0x1000\n\tCIBAUD                           = 0x100f0000\n\tCLOCAL                           = 0x800\n\tCR1                              = 0x200\n\tCR2                              = 0x400\n\tCR3                              = 0x600\n\tCRDLY                            = 0x600\n\tCREAD                            = 0x80\n\tCS6                              = 0x10\n\tCS7                              = 0x20\n\tCS8                              = 0x30\n\tCSIZE                            = 0x30\n\tCSTOPB                           = 0x40\n\tECCGETLAYOUT                     = 0x81484d11\n\tECCGETSTATS                      = 0x80104d12\n\tECHOCTL                          = 0x200\n\tECHOE                            = 0x10\n\tECHOK                            = 0x20\n\tECHOKE                           = 0x800\n\tECHONL                           = 0x40\n\tECHOPRT                          = 0x400\n\tEFD_CLOEXEC                      = 0x80000\n\tEFD_NONBLOCK                     = 0x800\n\tEPIOCGPARAMS                     = 0x80088a02\n\tEPIOCSPARAMS                     = 0x40088a01\n\tEPOLL_CLOEXEC                    = 0x80000\n\tEXTPROC                          = 0x10000\n\tFF1                              = 0x8000\n\tFFDLY                            = 0x8000\n\tFICLONE                          = 0x40049409\n\tFICLONERANGE                     = 0x4020940d\n\tFLUSHO                           = 0x1000\n\tFS_IOC_ENABLE_VERITY             = 0x40806685\n\tFS_IOC_GETFLAGS                  = 0x80086601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x8010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x400c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x40106614\n\tFS_IOC_SETFLAGS                  = 0x40086602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x800c6613\n\tF_GETLK                          = 0x5\n\tF_GETLK64                        = 0x5\n\tF_GETOWN                         = 0x9\n\tF_RDLCK                          = 0x0\n\tF_SETLK                          = 0x6\n\tF_SETLK64                        = 0x6\n\tF_SETLKW                         = 0x7\n\tF_SETLKW64                       = 0x7\n\tF_SETOWN                         = 0x8\n\tF_UNLCK                          = 0x2\n\tF_WRLCK                          = 0x1\n\tHIDIOCGRAWINFO                   = 0x80084803\n\tHIDIOCGRDESC                     = 0x90044802\n\tHIDIOCGRDESCSIZE                 = 0x80044801\n\tHIDIOCREVOKE                     = 0x4004480d\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x8000\n\tIN_CLOEXEC                       = 0x80000\n\tIN_NONBLOCK                      = 0x800\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9\n\tIPV6_FLOWINFO_MASK               = 0xfffffff\n\tIPV6_FLOWLABEL_MASK              = 0xfffff\n\tISIG                             = 0x1\n\tIUCLC                            = 0x200\n\tIXOFF                            = 0x1000\n\tIXON                             = 0x400\n\tMAP_ANON                         = 0x20\n\tMAP_ANONYMOUS                    = 0x20\n\tMAP_DENYWRITE                    = 0x800\n\tMAP_EXECUTABLE                   = 0x1000\n\tMAP_GROWSDOWN                    = 0x100\n\tMAP_HUGETLB                      = 0x40000\n\tMAP_LOCKED                       = 0x2000\n\tMAP_NONBLOCK                     = 0x10000\n\tMAP_NORESERVE                    = 0x4000\n\tMAP_POPULATE                     = 0x8000\n\tMAP_STACK                        = 0x20000\n\tMAP_SYNC                         = 0x80000\n\tMCL_CURRENT                      = 0x1\n\tMCL_FUTURE                       = 0x2\n\tMCL_ONFAULT                      = 0x4\n\tMEMERASE                         = 0x40084d02\n\tMEMERASE64                       = 0x40104d14\n\tMEMGETBADBLOCK                   = 0x40084d0b\n\tMEMGETINFO                       = 0x80204d01\n\tMEMGETOOBSEL                     = 0x80c84d0a\n\tMEMGETREGIONCOUNT                = 0x80044d07\n\tMEMISLOCKED                      = 0x80084d17\n\tMEMLOCK                          = 0x40084d05\n\tMEMREAD                          = 0xc0404d1a\n\tMEMREADOOB                       = 0xc0104d04\n\tMEMSETBADBLOCK                   = 0x40084d0c\n\tMEMUNLOCK                        = 0x40084d06\n\tMEMWRITEOOB                      = 0xc0104d03\n\tMTDFILEMODE                      = 0x4d13\n\tNFDBITS                          = 0x40\n\tNLDLY                            = 0x100\n\tNOFLSH                           = 0x80\n\tNS_GET_MNTNS_ID                  = 0x8008b705\n\tNS_GET_NSTYPE                    = 0xb703\n\tNS_GET_OWNER_UID                 = 0xb704\n\tNS_GET_PARENT                    = 0xb702\n\tNS_GET_PID_FROM_PIDNS            = 0x8004b706\n\tNS_GET_PID_IN_PIDNS              = 0x8004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x8004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x8004b709\n\tNS_GET_USERNS                    = 0xb701\n\tOLCUC                            = 0x2\n\tONLCR                            = 0x4\n\tOTPERASE                         = 0x400c4d19\n\tOTPGETREGIONCOUNT                = 0x40044d0e\n\tOTPGETREGIONINFO                 = 0x400c4d0f\n\tOTPLOCK                          = 0x800c4d10\n\tOTPSELECT                        = 0x80044d0d\n\tO_APPEND                         = 0x400\n\tO_ASYNC                          = 0x2000\n\tO_CLOEXEC                        = 0x80000\n\tO_CREAT                          = 0x40\n\tO_DIRECT                         = 0x4000\n\tO_DIRECTORY                      = 0x10000\n\tO_DSYNC                          = 0x1000\n\tO_EXCL                           = 0x80\n\tO_FSYNC                          = 0x101000\n\tO_LARGEFILE                      = 0x0\n\tO_NDELAY                         = 0x800\n\tO_NOATIME                        = 0x40000\n\tO_NOCTTY                         = 0x100\n\tO_NOFOLLOW                       = 0x20000\n\tO_NONBLOCK                       = 0x800\n\tO_PATH                           = 0x200000\n\tO_RSYNC                          = 0x101000\n\tO_SYNC                           = 0x101000\n\tO_TMPFILE                        = 0x410000\n\tO_TRUNC                          = 0x200\n\tPARENB                           = 0x100\n\tPARODD                           = 0x200\n\tPENDIN                           = 0x4000\n\tPERF_EVENT_IOC_DISABLE           = 0x2401\n\tPERF_EVENT_IOC_ENABLE            = 0x2400\n\tPERF_EVENT_IOC_ID                = 0x80082407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x40042409\n\tPERF_EVENT_IOC_PERIOD            = 0x40082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc008240a\n\tPERF_EVENT_IOC_REFRESH           = 0x2402\n\tPERF_EVENT_IOC_RESET             = 0x2403\n\tPERF_EVENT_IOC_SET_BPF           = 0x40042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x40082406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x2405\n\tPPPIOCATTACH                     = 0x4004743d\n\tPPPIOCATTCHAN                    = 0x40047438\n\tPPPIOCBRIDGECHAN                 = 0x40047435\n\tPPPIOCCONNECT                    = 0x4004743a\n\tPPPIOCDETACH                     = 0x4004743c\n\tPPPIOCDISCONN                    = 0x7439\n\tPPPIOCGASYNCMAP                  = 0x80047458\n\tPPPIOCGCHAN                      = 0x80047437\n\tPPPIOCGDEBUG                     = 0x80047441\n\tPPPIOCGFLAGS                     = 0x8004745a\n\tPPPIOCGIDLE                      = 0x8010743f\n\tPPPIOCGIDLE32                    = 0x8008743f\n\tPPPIOCGIDLE64                    = 0x8010743f\n\tPPPIOCGL2TPSTATS                 = 0x80487436\n\tPPPIOCGMRU                       = 0x80047453\n\tPPPIOCGRASYNCMAP                 = 0x80047455\n\tPPPIOCGUNIT                      = 0x80047456\n\tPPPIOCGXASYNCMAP                 = 0x80207450\n\tPPPIOCSACTIVE                    = 0x40107446\n\tPPPIOCSASYNCMAP                  = 0x40047457\n\tPPPIOCSCOMPRESS                  = 0x4010744d\n\tPPPIOCSDEBUG                     = 0x40047440\n\tPPPIOCSFLAGS                     = 0x40047459\n\tPPPIOCSMAXCID                    = 0x40047451\n\tPPPIOCSMRRU                      = 0x4004743b\n\tPPPIOCSMRU                       = 0x40047452\n\tPPPIOCSNPMODE                    = 0x4008744b\n\tPPPIOCSPASS                      = 0x40107447\n\tPPPIOCSRASYNCMAP                 = 0x40047454\n\tPPPIOCSXASYNCMAP                 = 0x4020744f\n\tPPPIOCUNBRIDGECHAN               = 0x7434\n\tPPPIOCXFERUNIT                   = 0x744e\n\tPR_SET_PTRACER_ANY               = 0xffffffffffffffff\n\tPTP_CLOCK_GETCAPS                = 0x80503d01\n\tPTP_CLOCK_GETCAPS2               = 0x80503d0a\n\tPTP_ENABLE_PPS                   = 0x40043d04\n\tPTP_ENABLE_PPS2                  = 0x40043d0d\n\tPTP_EXTTS_REQUEST                = 0x40103d02\n\tPTP_EXTTS_REQUEST2               = 0x40103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x3d13\n\tPTP_MASK_EN_SINGLE               = 0x40043d14\n\tPTP_PEROUT_REQUEST               = 0x40383d03\n\tPTP_PEROUT_REQUEST2              = 0x40383d0c\n\tPTP_PIN_SETFUNC                  = 0x40603d07\n\tPTP_PIN_SETFUNC2                 = 0x40603d10\n\tPTP_SYS_OFFSET                   = 0x43403d05\n\tPTP_SYS_OFFSET2                  = 0x43403d0e\n\tPTRACE_DISABLE_TE                = 0x5010\n\tPTRACE_ENABLE_TE                 = 0x5009\n\tPTRACE_GET_LAST_BREAK            = 0x5006\n\tPTRACE_OLDSETOPTIONS             = 0x15\n\tPTRACE_PEEKDATA_AREA             = 0x5003\n\tPTRACE_PEEKTEXT_AREA             = 0x5002\n\tPTRACE_PEEKUSR_AREA              = 0x5000\n\tPTRACE_PEEK_SYSTEM_CALL          = 0x5007\n\tPTRACE_POKEDATA_AREA             = 0x5005\n\tPTRACE_POKETEXT_AREA             = 0x5004\n\tPTRACE_POKEUSR_AREA              = 0x5001\n\tPTRACE_POKE_SYSTEM_CALL          = 0x5008\n\tPTRACE_PROT                      = 0x15\n\tPTRACE_SINGLEBLOCK               = 0xc\n\tPTRACE_SYSEMU                    = 0x1f\n\tPTRACE_SYSEMU_SINGLESTEP         = 0x20\n\tPTRACE_TE_ABORT_RAND             = 0x5011\n\tPT_ACR0                          = 0x90\n\tPT_ACR1                          = 0x94\n\tPT_ACR10                         = 0xb8\n\tPT_ACR11                         = 0xbc\n\tPT_ACR12                         = 0xc0\n\tPT_ACR13                         = 0xc4\n\tPT_ACR14                         = 0xc8\n\tPT_ACR15                         = 0xcc\n\tPT_ACR2                          = 0x98\n\tPT_ACR3                          = 0x9c\n\tPT_ACR4                          = 0xa0\n\tPT_ACR5                          = 0xa4\n\tPT_ACR6                          = 0xa8\n\tPT_ACR7                          = 0xac\n\tPT_ACR8                          = 0xb0\n\tPT_ACR9                          = 0xb4\n\tPT_CR_10                         = 0x168\n\tPT_CR_11                         = 0x170\n\tPT_CR_9                          = 0x160\n\tPT_ENDREGS                       = 0x1af\n\tPT_FPC                           = 0xd8\n\tPT_FPR0                          = 0xe0\n\tPT_FPR1                          = 0xe8\n\tPT_FPR10                         = 0x130\n\tPT_FPR11                         = 0x138\n\tPT_FPR12                         = 0x140\n\tPT_FPR13                         = 0x148\n\tPT_FPR14                         = 0x150\n\tPT_FPR15                         = 0x158\n\tPT_FPR2                          = 0xf0\n\tPT_FPR3                          = 0xf8\n\tPT_FPR4                          = 0x100\n\tPT_FPR5                          = 0x108\n\tPT_FPR6                          = 0x110\n\tPT_FPR7                          = 0x118\n\tPT_FPR8                          = 0x120\n\tPT_FPR9                          = 0x128\n\tPT_GPR0                          = 0x10\n\tPT_GPR1                          = 0x18\n\tPT_GPR10                         = 0x60\n\tPT_GPR11                         = 0x68\n\tPT_GPR12                         = 0x70\n\tPT_GPR13                         = 0x78\n\tPT_GPR14                         = 0x80\n\tPT_GPR15                         = 0x88\n\tPT_GPR2                          = 0x20\n\tPT_GPR3                          = 0x28\n\tPT_GPR4                          = 0x30\n\tPT_GPR5                          = 0x38\n\tPT_GPR6                          = 0x40\n\tPT_GPR7                          = 0x48\n\tPT_GPR8                          = 0x50\n\tPT_GPR9                          = 0x58\n\tPT_IEEE_IP                       = 0x1a8\n\tPT_LASTOFF                       = 0x1a8\n\tPT_ORIGGPR2                      = 0xd0\n\tPT_PSWADDR                       = 0x8\n\tPT_PSWMASK                       = 0x0\n\tRLIMIT_AS                        = 0x9\n\tRLIMIT_MEMLOCK                   = 0x8\n\tRLIMIT_NOFILE                    = 0x7\n\tRLIMIT_NPROC                     = 0x6\n\tRLIMIT_RSS                       = 0x5\n\tRNDADDENTROPY                    = 0x40085203\n\tRNDADDTOENTCNT                   = 0x40045201\n\tRNDCLEARPOOL                     = 0x5206\n\tRNDGETENTCNT                     = 0x80045200\n\tRNDGETPOOL                       = 0x80085202\n\tRNDRESEEDCRNG                    = 0x5207\n\tRNDZAPENTCNT                     = 0x5204\n\tRTC_AIE_OFF                      = 0x7002\n\tRTC_AIE_ON                       = 0x7001\n\tRTC_ALM_READ                     = 0x80247008\n\tRTC_ALM_SET                      = 0x40247007\n\tRTC_EPOCH_READ                   = 0x8008700d\n\tRTC_EPOCH_SET                    = 0x4008700e\n\tRTC_IRQP_READ                    = 0x8008700b\n\tRTC_IRQP_SET                     = 0x4008700c\n\tRTC_PARAM_GET                    = 0x40187013\n\tRTC_PARAM_SET                    = 0x40187014\n\tRTC_PIE_OFF                      = 0x7006\n\tRTC_PIE_ON                       = 0x7005\n\tRTC_PLL_GET                      = 0x80207011\n\tRTC_PLL_SET                      = 0x40207012\n\tRTC_RD_TIME                      = 0x80247009\n\tRTC_SET_TIME                     = 0x4024700a\n\tRTC_UIE_OFF                      = 0x7004\n\tRTC_UIE_ON                       = 0x7003\n\tRTC_VL_CLR                       = 0x7014\n\tRTC_VL_READ                      = 0x80047013\n\tRTC_WIE_OFF                      = 0x7010\n\tRTC_WIE_ON                       = 0x700f\n\tRTC_WKALM_RD                     = 0x80287010\n\tRTC_WKALM_SET                    = 0x4028700f\n\tSCM_DEVMEM_DMABUF                = 0x4f\n\tSCM_DEVMEM_LINEAR                = 0x4e\n\tSCM_TIMESTAMPING                 = 0x25\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x36\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3a\n\tSCM_TIMESTAMPNS                  = 0x23\n\tSCM_TS_OPT_ID                    = 0x51\n\tSCM_TXTIME                       = 0x3d\n\tSCM_WIFI_STATUS                  = 0x29\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x40182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x40082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x40082104\n\tSFD_CLOEXEC                      = 0x80000\n\tSFD_NONBLOCK                     = 0x800\n\tSIOCATMARK                       = 0x8905\n\tSIOCGPGRP                        = 0x8904\n\tSIOCGSTAMPNS_NEW                 = 0x80108907\n\tSIOCGSTAMP_NEW                   = 0x80108906\n\tSIOCINQ                          = 0x541b\n\tSIOCOUTQ                         = 0x5411\n\tSIOCSPGRP                        = 0x8902\n\tSOCK_CLOEXEC                     = 0x80000\n\tSOCK_DGRAM                       = 0x2\n\tSOCK_NONBLOCK                    = 0x800\n\tSOCK_STREAM                      = 0x1\n\tSOL_SOCKET                       = 0x1\n\tSO_ACCEPTCONN                    = 0x1e\n\tSO_ATTACH_BPF                    = 0x32\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x33\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x34\n\tSO_BINDTODEVICE                  = 0x19\n\tSO_BINDTOIFINDEX                 = 0x3e\n\tSO_BPF_EXTENSIONS                = 0x30\n\tSO_BROADCAST                     = 0x6\n\tSO_BSDCOMPAT                     = 0xe\n\tSO_BUF_LOCK                      = 0x48\n\tSO_BUSY_POLL                     = 0x2e\n\tSO_BUSY_POLL_BUDGET              = 0x46\n\tSO_CNX_ADVICE                    = 0x35\n\tSO_COOKIE                        = 0x39\n\tSO_DETACH_REUSEPORT_BPF          = 0x44\n\tSO_DEVMEM_DMABUF                 = 0x4f\n\tSO_DEVMEM_DONTNEED               = 0x50\n\tSO_DEVMEM_LINEAR                 = 0x4e\n\tSO_DOMAIN                        = 0x27\n\tSO_DONTROUTE                     = 0x5\n\tSO_ERROR                         = 0x4\n\tSO_INCOMING_CPU                  = 0x31\n\tSO_INCOMING_NAPI_ID              = 0x38\n\tSO_KEEPALIVE                     = 0x9\n\tSO_LINGER                        = 0xd\n\tSO_LOCK_FILTER                   = 0x2c\n\tSO_MARK                          = 0x24\n\tSO_MAX_PACING_RATE               = 0x2f\n\tSO_MEMINFO                       = 0x37\n\tSO_NETNS_COOKIE                  = 0x47\n\tSO_NOFCS                         = 0x2b\n\tSO_OOBINLINE                     = 0xa\n\tSO_PASSCRED                      = 0x10\n\tSO_PASSPIDFD                     = 0x4c\n\tSO_PASSSEC                       = 0x22\n\tSO_PEEK_OFF                      = 0x2a\n\tSO_PEERCRED                      = 0x11\n\tSO_PEERGROUPS                    = 0x3b\n\tSO_PEERPIDFD                     = 0x4d\n\tSO_PEERSEC                       = 0x1f\n\tSO_PREFER_BUSY_POLL              = 0x45\n\tSO_PROTOCOL                      = 0x26\n\tSO_RCVBUF                        = 0x8\n\tSO_RCVBUFFORCE                   = 0x21\n\tSO_RCVLOWAT                      = 0x12\n\tSO_RCVMARK                       = 0x4b\n\tSO_RCVTIMEO                      = 0x14\n\tSO_RCVTIMEO_NEW                  = 0x42\n\tSO_RCVTIMEO_OLD                  = 0x14\n\tSO_RESERVE_MEM                   = 0x49\n\tSO_REUSEADDR                     = 0x2\n\tSO_REUSEPORT                     = 0xf\n\tSO_RXQ_OVFL                      = 0x28\n\tSO_SECURITY_AUTHENTICATION       = 0x16\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x18\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x17\n\tSO_SELECT_ERR_QUEUE              = 0x2d\n\tSO_SNDBUF                        = 0x7\n\tSO_SNDBUFFORCE                   = 0x20\n\tSO_SNDLOWAT                      = 0x13\n\tSO_SNDTIMEO                      = 0x15\n\tSO_SNDTIMEO_NEW                  = 0x43\n\tSO_SNDTIMEO_OLD                  = 0x15\n\tSO_TIMESTAMPING                  = 0x25\n\tSO_TIMESTAMPING_NEW              = 0x41\n\tSO_TIMESTAMPING_OLD              = 0x25\n\tSO_TIMESTAMPNS                   = 0x23\n\tSO_TIMESTAMPNS_NEW               = 0x40\n\tSO_TIMESTAMPNS_OLD               = 0x23\n\tSO_TIMESTAMP_NEW                 = 0x3f\n\tSO_TXREHASH                      = 0x4a\n\tSO_TXTIME                        = 0x3d\n\tSO_TYPE                          = 0x3\n\tSO_WIFI_STATUS                   = 0x29\n\tSO_ZEROCOPY                      = 0x3c\n\tTAB1                             = 0x800\n\tTAB2                             = 0x1000\n\tTAB3                             = 0x1800\n\tTABDLY                           = 0x1800\n\tTCFLSH                           = 0x540b\n\tTCGETA                           = 0x5405\n\tTCGETS                           = 0x5401\n\tTCGETS2                          = 0x802c542a\n\tTCGETX                           = 0x5432\n\tTCSAFLUSH                        = 0x2\n\tTCSBRK                           = 0x5409\n\tTCSBRKP                          = 0x5425\n\tTCSETA                           = 0x5406\n\tTCSETAF                          = 0x5408\n\tTCSETAW                          = 0x5407\n\tTCSETS                           = 0x5402\n\tTCSETS2                          = 0x402c542b\n\tTCSETSF                          = 0x5404\n\tTCSETSF2                         = 0x402c542d\n\tTCSETSW                          = 0x5403\n\tTCSETSW2                         = 0x402c542c\n\tTCSETX                           = 0x5433\n\tTCSETXF                          = 0x5434\n\tTCSETXW                          = 0x5435\n\tTCXONC                           = 0x540a\n\tTFD_CLOEXEC                      = 0x80000\n\tTFD_NONBLOCK                     = 0x800\n\tTIOCCBRK                         = 0x5428\n\tTIOCCONS                         = 0x541d\n\tTIOCEXCL                         = 0x540c\n\tTIOCGDEV                         = 0x80045432\n\tTIOCGETD                         = 0x5424\n\tTIOCGEXCL                        = 0x80045440\n\tTIOCGICOUNT                      = 0x545d\n\tTIOCGISO7816                     = 0x80285442\n\tTIOCGLCKTRMIOS                   = 0x5456\n\tTIOCGPGRP                        = 0x540f\n\tTIOCGPKT                         = 0x80045438\n\tTIOCGPTLCK                       = 0x80045439\n\tTIOCGPTN                         = 0x80045430\n\tTIOCGPTPEER                      = 0x5441\n\tTIOCGRS485                       = 0x542e\n\tTIOCGSERIAL                      = 0x541e\n\tTIOCGSID                         = 0x5429\n\tTIOCGSOFTCAR                     = 0x5419\n\tTIOCGWINSZ                       = 0x5413\n\tTIOCINQ                          = 0x541b\n\tTIOCLINUX                        = 0x541c\n\tTIOCMBIC                         = 0x5417\n\tTIOCMBIS                         = 0x5416\n\tTIOCMGET                         = 0x5415\n\tTIOCMIWAIT                       = 0x545c\n\tTIOCMSET                         = 0x5418\n\tTIOCM_CAR                        = 0x40\n\tTIOCM_CD                         = 0x40\n\tTIOCM_CTS                        = 0x20\n\tTIOCM_DSR                        = 0x100\n\tTIOCM_RI                         = 0x80\n\tTIOCM_RNG                        = 0x80\n\tTIOCM_SR                         = 0x10\n\tTIOCM_ST                         = 0x8\n\tTIOCNOTTY                        = 0x5422\n\tTIOCNXCL                         = 0x540d\n\tTIOCOUTQ                         = 0x5411\n\tTIOCPKT                          = 0x5420\n\tTIOCSBRK                         = 0x5427\n\tTIOCSCTTY                        = 0x540e\n\tTIOCSERCONFIG                    = 0x5453\n\tTIOCSERGETLSR                    = 0x5459\n\tTIOCSERGETMULTI                  = 0x545a\n\tTIOCSERGSTRUCT                   = 0x5458\n\tTIOCSERGWILD                     = 0x5454\n\tTIOCSERSETMULTI                  = 0x545b\n\tTIOCSERSWILD                     = 0x5455\n\tTIOCSER_TEMT                     = 0x1\n\tTIOCSETD                         = 0x5423\n\tTIOCSIG                          = 0x40045436\n\tTIOCSISO7816                     = 0xc0285443\n\tTIOCSLCKTRMIOS                   = 0x5457\n\tTIOCSPGRP                        = 0x5410\n\tTIOCSPTLCK                       = 0x40045431\n\tTIOCSRS485                       = 0x542f\n\tTIOCSSERIAL                      = 0x541f\n\tTIOCSSOFTCAR                     = 0x541a\n\tTIOCSTI                          = 0x5412\n\tTIOCSWINSZ                       = 0x5414\n\tTIOCVHANGUP                      = 0x5437\n\tTOSTOP                           = 0x100\n\tTUNATTACHFILTER                  = 0x401054d5\n\tTUNDETACHFILTER                  = 0x401054d6\n\tTUNGETDEVNETNS                   = 0x54e3\n\tTUNGETFEATURES                   = 0x800454cf\n\tTUNGETFILTER                     = 0x801054db\n\tTUNGETIFF                        = 0x800454d2\n\tTUNGETSNDBUF                     = 0x800454d3\n\tTUNGETVNETBE                     = 0x800454df\n\tTUNGETVNETHDRSZ                  = 0x800454d7\n\tTUNGETVNETLE                     = 0x800454dd\n\tTUNSETCARRIER                    = 0x400454e2\n\tTUNSETDEBUG                      = 0x400454c9\n\tTUNSETFILTEREBPF                 = 0x800454e1\n\tTUNSETGROUP                      = 0x400454ce\n\tTUNSETIFF                        = 0x400454ca\n\tTUNSETIFINDEX                    = 0x400454da\n\tTUNSETLINK                       = 0x400454cd\n\tTUNSETNOCSUM                     = 0x400454c8\n\tTUNSETOFFLOAD                    = 0x400454d0\n\tTUNSETOWNER                      = 0x400454cc\n\tTUNSETPERSIST                    = 0x400454cb\n\tTUNSETQUEUE                      = 0x400454d9\n\tTUNSETSNDBUF                     = 0x400454d4\n\tTUNSETSTEERINGEBPF               = 0x800454e0\n\tTUNSETTXFILTER                   = 0x400454d1\n\tTUNSETVNETBE                     = 0x400454de\n\tTUNSETVNETHDRSZ                  = 0x400454d8\n\tTUNSETVNETLE                     = 0x400454dc\n\tUBI_IOCATT                       = 0x40186f40\n\tUBI_IOCDET                       = 0x40046f41\n\tUBI_IOCEBCH                      = 0x40044f02\n\tUBI_IOCEBER                      = 0x40044f01\n\tUBI_IOCEBISMAP                   = 0x80044f05\n\tUBI_IOCEBMAP                     = 0x40084f03\n\tUBI_IOCEBUNMAP                   = 0x40044f04\n\tUBI_IOCMKVOL                     = 0x40986f00\n\tUBI_IOCRMVOL                     = 0x40046f01\n\tUBI_IOCRNVOL                     = 0x51106f03\n\tUBI_IOCRPEB                      = 0x40046f04\n\tUBI_IOCRSVOL                     = 0x400c6f02\n\tUBI_IOCSETVOLPROP                = 0x40104f06\n\tUBI_IOCSPEB                      = 0x40046f05\n\tUBI_IOCVOLCRBLK                  = 0x40804f07\n\tUBI_IOCVOLRMBLK                  = 0x4f08\n\tUBI_IOCVOLUP                     = 0x40084f00\n\tVDISCARD                         = 0xd\n\tVEOF                             = 0x4\n\tVEOL                             = 0xb\n\tVEOL2                            = 0x10\n\tVMIN                             = 0x6\n\tVREPRINT                         = 0xc\n\tVSTART                           = 0x8\n\tVSTOP                            = 0x9\n\tVSUSP                            = 0xa\n\tVSWTC                            = 0x7\n\tVT1                              = 0x4000\n\tVTDLY                            = 0x4000\n\tVTIME                            = 0x5\n\tVWERASE                          = 0xe\n\tWDIOC_GETBOOTSTATUS              = 0x80045702\n\tWDIOC_GETPRETIMEOUT              = 0x80045709\n\tWDIOC_GETSTATUS                  = 0x80045701\n\tWDIOC_GETSUPPORT                 = 0x80285700\n\tWDIOC_GETTEMP                    = 0x80045703\n\tWDIOC_GETTIMELEFT                = 0x8004570a\n\tWDIOC_GETTIMEOUT                 = 0x80045707\n\tWDIOC_KEEPALIVE                  = 0x80045705\n\tWDIOC_SETOPTIONS                 = 0x80045704\n\tWORDSIZE                         = 0x40\n\tXCASE                            = 0x4\n\tXTABS                            = 0x1800\n\t_HIDIOCGRAWNAME                  = 0x80804804\n\t_HIDIOCGRAWPHYS                  = 0x80404805\n\t_HIDIOCGRAWUNIQ                  = 0x80404808\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x62)\n\tEADDRNOTAVAIL   = syscall.Errno(0x63)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x61)\n\tEALREADY        = syscall.Errno(0x72)\n\tEBADE           = syscall.Errno(0x34)\n\tEBADFD          = syscall.Errno(0x4d)\n\tEBADMSG         = syscall.Errno(0x4a)\n\tEBADR           = syscall.Errno(0x35)\n\tEBADRQC         = syscall.Errno(0x38)\n\tEBADSLT         = syscall.Errno(0x39)\n\tEBFONT          = syscall.Errno(0x3b)\n\tECANCELED       = syscall.Errno(0x7d)\n\tECHRNG          = syscall.Errno(0x2c)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x67)\n\tECONNREFUSED    = syscall.Errno(0x6f)\n\tECONNRESET      = syscall.Errno(0x68)\n\tEDEADLK         = syscall.Errno(0x23)\n\tEDEADLOCK       = syscall.Errno(0x23)\n\tEDESTADDRREQ    = syscall.Errno(0x59)\n\tEDOTDOT         = syscall.Errno(0x49)\n\tEDQUOT          = syscall.Errno(0x7a)\n\tEHOSTDOWN       = syscall.Errno(0x70)\n\tEHOSTUNREACH    = syscall.Errno(0x71)\n\tEHWPOISON       = syscall.Errno(0x85)\n\tEIDRM           = syscall.Errno(0x2b)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x73)\n\tEISCONN         = syscall.Errno(0x6a)\n\tEISNAM          = syscall.Errno(0x78)\n\tEKEYEXPIRED     = syscall.Errno(0x7f)\n\tEKEYREJECTED    = syscall.Errno(0x81)\n\tEKEYREVOKED     = syscall.Errno(0x80)\n\tEL2HLT          = syscall.Errno(0x33)\n\tEL2NSYNC        = syscall.Errno(0x2d)\n\tEL3HLT          = syscall.Errno(0x2e)\n\tEL3RST          = syscall.Errno(0x2f)\n\tELIBACC         = syscall.Errno(0x4f)\n\tELIBBAD         = syscall.Errno(0x50)\n\tELIBEXEC        = syscall.Errno(0x53)\n\tELIBMAX         = syscall.Errno(0x52)\n\tELIBSCN         = syscall.Errno(0x51)\n\tELNRNG          = syscall.Errno(0x30)\n\tELOOP           = syscall.Errno(0x28)\n\tEMEDIUMTYPE     = syscall.Errno(0x7c)\n\tEMSGSIZE        = syscall.Errno(0x5a)\n\tEMULTIHOP       = syscall.Errno(0x48)\n\tENAMETOOLONG    = syscall.Errno(0x24)\n\tENAVAIL         = syscall.Errno(0x77)\n\tENETDOWN        = syscall.Errno(0x64)\n\tENETRESET       = syscall.Errno(0x66)\n\tENETUNREACH     = syscall.Errno(0x65)\n\tENOANO          = syscall.Errno(0x37)\n\tENOBUFS         = syscall.Errno(0x69)\n\tENOCSI          = syscall.Errno(0x32)\n\tENODATA         = syscall.Errno(0x3d)\n\tENOKEY          = syscall.Errno(0x7e)\n\tENOLCK          = syscall.Errno(0x25)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEDIUM       = syscall.Errno(0x7b)\n\tENOMSG          = syscall.Errno(0x2a)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x5c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x26)\n\tENOTCONN        = syscall.Errno(0x6b)\n\tENOTEMPTY       = syscall.Errno(0x27)\n\tENOTNAM         = syscall.Errno(0x76)\n\tENOTRECOVERABLE = syscall.Errno(0x83)\n\tENOTSOCK        = syscall.Errno(0x58)\n\tENOTSUP         = syscall.Errno(0x5f)\n\tENOTUNIQ        = syscall.Errno(0x4c)\n\tEOPNOTSUPP      = syscall.Errno(0x5f)\n\tEOVERFLOW       = syscall.Errno(0x4b)\n\tEOWNERDEAD      = syscall.Errno(0x82)\n\tEPFNOSUPPORT    = syscall.Errno(0x60)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x5d)\n\tEPROTOTYPE      = syscall.Errno(0x5b)\n\tEREMCHG         = syscall.Errno(0x4e)\n\tEREMOTE         = syscall.Errno(0x42)\n\tEREMOTEIO       = syscall.Errno(0x79)\n\tERESTART        = syscall.Errno(0x55)\n\tERFKILL         = syscall.Errno(0x84)\n\tESHUTDOWN       = syscall.Errno(0x6c)\n\tESOCKTNOSUPPORT = syscall.Errno(0x5e)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x74)\n\tESTRPIPE        = syscall.Errno(0x56)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x6e)\n\tETOOMANYREFS    = syscall.Errno(0x6d)\n\tEUCLEAN         = syscall.Errno(0x75)\n\tEUNATCH         = syscall.Errno(0x31)\n\tEUSERS          = syscall.Errno(0x57)\n\tEXFULL          = syscall.Errno(0x36)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0x7)\n\tSIGCHLD   = syscall.Signal(0x11)\n\tSIGCLD    = syscall.Signal(0x11)\n\tSIGCONT   = syscall.Signal(0x12)\n\tSIGIO     = syscall.Signal(0x1d)\n\tSIGPOLL   = syscall.Signal(0x1d)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x1e)\n\tSIGSTKFLT = syscall.Signal(0x10)\n\tSIGSTOP   = syscall.Signal(0x13)\n\tSIGSYS    = syscall.Signal(0x1f)\n\tSIGTSTP   = syscall.Signal(0x14)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x17)\n\tSIGUSR1   = syscall.Signal(0xa)\n\tSIGUSR2   = syscall.Signal(0xc)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{35, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{36, \"ENAMETOOLONG\", \"file name too long\"},\n\t{37, \"ENOLCK\", \"no locks available\"},\n\t{38, \"ENOSYS\", \"function not implemented\"},\n\t{39, \"ENOTEMPTY\", \"directory not empty\"},\n\t{40, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{42, \"ENOMSG\", \"no message of desired type\"},\n\t{43, \"EIDRM\", \"identifier removed\"},\n\t{44, \"ECHRNG\", \"channel number out of range\"},\n\t{45, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{46, \"EL3HLT\", \"level 3 halted\"},\n\t{47, \"EL3RST\", \"level 3 reset\"},\n\t{48, \"ELNRNG\", \"link number out of range\"},\n\t{49, \"EUNATCH\", \"protocol driver not attached\"},\n\t{50, \"ENOCSI\", \"no CSI structure available\"},\n\t{51, \"EL2HLT\", \"level 2 halted\"},\n\t{52, \"EBADE\", \"invalid exchange\"},\n\t{53, \"EBADR\", \"invalid request descriptor\"},\n\t{54, \"EXFULL\", \"exchange full\"},\n\t{55, \"ENOANO\", \"no anode\"},\n\t{56, \"EBADRQC\", \"invalid request code\"},\n\t{57, \"EBADSLT\", \"invalid slot\"},\n\t{59, \"EBFONT\", \"bad font file format\"},\n\t{60, \"ENOSTR\", \"device not a stream\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of streams resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{72, \"EMULTIHOP\", \"multihop attempted\"},\n\t{73, \"EDOTDOT\", \"RFS specific error\"},\n\t{74, \"EBADMSG\", \"bad message\"},\n\t{75, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{76, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{77, \"EBADFD\", \"file descriptor in bad state\"},\n\t{78, \"EREMCHG\", \"remote address changed\"},\n\t{79, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{80, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{81, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{82, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{83, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{84, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{85, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{86, \"ESTRPIPE\", \"streams pipe error\"},\n\t{87, \"EUSERS\", \"too many users\"},\n\t{88, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{89, \"EDESTADDRREQ\", \"destination address required\"},\n\t{90, \"EMSGSIZE\", \"message too long\"},\n\t{91, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{92, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{93, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{94, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{95, \"ENOTSUP\", \"operation not supported\"},\n\t{96, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{97, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{98, \"EADDRINUSE\", \"address already in use\"},\n\t{99, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{100, \"ENETDOWN\", \"network is down\"},\n\t{101, \"ENETUNREACH\", \"network is unreachable\"},\n\t{102, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{103, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{104, \"ECONNRESET\", \"connection reset by peer\"},\n\t{105, \"ENOBUFS\", \"no buffer space available\"},\n\t{106, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{107, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{108, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{109, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{110, \"ETIMEDOUT\", \"connection timed out\"},\n\t{111, \"ECONNREFUSED\", \"connection refused\"},\n\t{112, \"EHOSTDOWN\", \"host is down\"},\n\t{113, \"EHOSTUNREACH\", \"no route to host\"},\n\t{114, \"EALREADY\", \"operation already in progress\"},\n\t{115, \"EINPROGRESS\", \"operation now in progress\"},\n\t{116, \"ESTALE\", \"stale file handle\"},\n\t{117, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{118, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{119, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{120, \"EISNAM\", \"is a named type file\"},\n\t{121, \"EREMOTEIO\", \"remote I/O error\"},\n\t{122, \"EDQUOT\", \"disk quota exceeded\"},\n\t{123, \"ENOMEDIUM\", \"no medium found\"},\n\t{124, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{125, \"ECANCELED\", \"operation canceled\"},\n\t{126, \"ENOKEY\", \"required key not available\"},\n\t{127, \"EKEYEXPIRED\", \"key has expired\"},\n\t{128, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{129, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{130, \"EOWNERDEAD\", \"owner died\"},\n\t{131, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{132, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{133, \"EHWPOISON\", \"memory page has hardware error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGBUS\", \"bus error\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGUSR1\", \"user defined signal 1\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGUSR2\", \"user defined signal 2\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGSTKFLT\", \"stack fault\"},\n\t{17, \"SIGCHLD\", \"child exited\"},\n\t{18, \"SIGCONT\", \"continued\"},\n\t{19, \"SIGSTOP\", \"stopped (signal)\"},\n\t{20, \"SIGTSTP\", \"stopped\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGURG\", \"urgent I/O condition\"},\n\t{24, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGIO\", \"I/O possible\"},\n\t{30, \"SIGPWR\", \"power failure\"},\n\t{31, \"SIGSYS\", \"bad system call\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go",
    "content": "// mkerrors.sh -Wall -Werror -static -I/tmp/sparc64/include\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build sparc64 && linux\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -Wall -Werror -static -I/tmp/sparc64/include _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tASI_LEON_DFLUSH                  = 0x11\n\tASI_LEON_IFLUSH                  = 0x10\n\tASI_LEON_MMUFLUSH                = 0x18\n\tB1000000                         = 0x1008\n\tB115200                          = 0x1002\n\tB1152000                         = 0x1009\n\tB1500000                         = 0x100a\n\tB2000000                         = 0x100b\n\tB230400                          = 0x1003\n\tB2500000                         = 0x100c\n\tB3000000                         = 0x100d\n\tB3500000                         = 0x100e\n\tB4000000                         = 0x100f\n\tB460800                          = 0x1004\n\tB500000                          = 0x1005\n\tB57600                           = 0x1001\n\tB576000                          = 0x1006\n\tB921600                          = 0x1007\n\tBLKALIGNOFF                      = 0x2000127a\n\tBLKBSZGET                        = 0x40081270\n\tBLKBSZSET                        = 0x80081271\n\tBLKDISCARD                       = 0x20001277\n\tBLKDISCARDZEROES                 = 0x2000127c\n\tBLKFLSBUF                        = 0x20001261\n\tBLKFRAGET                        = 0x20001265\n\tBLKFRASET                        = 0x20001264\n\tBLKGETDISKSEQ                    = 0x40081280\n\tBLKGETSIZE                       = 0x20001260\n\tBLKGETSIZE64                     = 0x40081272\n\tBLKIOMIN                         = 0x20001278\n\tBLKIOOPT                         = 0x20001279\n\tBLKPBSZGET                       = 0x2000127b\n\tBLKRAGET                         = 0x20001263\n\tBLKRASET                         = 0x20001262\n\tBLKROGET                         = 0x2000125e\n\tBLKROSET                         = 0x2000125d\n\tBLKROTATIONAL                    = 0x2000127e\n\tBLKRRPART                        = 0x2000125f\n\tBLKSECDISCARD                    = 0x2000127d\n\tBLKSECTGET                       = 0x20001267\n\tBLKSECTSET                       = 0x20001266\n\tBLKSSZGET                        = 0x20001268\n\tBLKZEROOUT                       = 0x2000127f\n\tBOTHER                           = 0x1000\n\tBS1                              = 0x2000\n\tBSDLY                            = 0x2000\n\tCBAUD                            = 0x100f\n\tCBAUDEX                          = 0x1000\n\tCIBAUD                           = 0x100f0000\n\tCLOCAL                           = 0x800\n\tCR1                              = 0x200\n\tCR2                              = 0x400\n\tCR3                              = 0x600\n\tCRDLY                            = 0x600\n\tCREAD                            = 0x80\n\tCS6                              = 0x10\n\tCS7                              = 0x20\n\tCS8                              = 0x30\n\tCSIZE                            = 0x30\n\tCSTOPB                           = 0x40\n\tECCGETLAYOUT                     = 0x41484d11\n\tECCGETSTATS                      = 0x40104d12\n\tECHOCTL                          = 0x200\n\tECHOE                            = 0x10\n\tECHOK                            = 0x20\n\tECHOKE                           = 0x800\n\tECHONL                           = 0x40\n\tECHOPRT                          = 0x400\n\tEFD_CLOEXEC                      = 0x400000\n\tEFD_NONBLOCK                     = 0x4000\n\tEMT_TAGOVF                       = 0x1\n\tEPIOCGPARAMS                     = 0x40088a02\n\tEPIOCSPARAMS                     = 0x80088a01\n\tEPOLL_CLOEXEC                    = 0x400000\n\tEXTPROC                          = 0x10000\n\tFF1                              = 0x8000\n\tFFDLY                            = 0x8000\n\tFICLONE                          = 0x80049409\n\tFICLONERANGE                     = 0x8020940d\n\tFLUSHO                           = 0x1000\n\tFS_IOC_ENABLE_VERITY             = 0x80806685\n\tFS_IOC_GETFLAGS                  = 0x40086601\n\tFS_IOC_GET_ENCRYPTION_NONCE      = 0x4010661b\n\tFS_IOC_GET_ENCRYPTION_POLICY     = 0x800c6615\n\tFS_IOC_GET_ENCRYPTION_PWSALT     = 0x80106614\n\tFS_IOC_SETFLAGS                  = 0x80086602\n\tFS_IOC_SET_ENCRYPTION_POLICY     = 0x400c6613\n\tF_GETLK                          = 0x7\n\tF_GETLK64                        = 0x7\n\tF_GETOWN                         = 0x5\n\tF_RDLCK                          = 0x1\n\tF_SETLK                          = 0x8\n\tF_SETLK64                        = 0x8\n\tF_SETLKW                         = 0x9\n\tF_SETLKW64                       = 0x9\n\tF_SETOWN                         = 0x6\n\tF_UNLCK                          = 0x3\n\tF_WRLCK                          = 0x2\n\tHIDIOCGRAWINFO                   = 0x40084803\n\tHIDIOCGRDESC                     = 0x50044802\n\tHIDIOCGRDESCSIZE                 = 0x40044801\n\tHIDIOCREVOKE                     = 0x8004480d\n\tHUPCL                            = 0x400\n\tICANON                           = 0x2\n\tIEXTEN                           = 0x8000\n\tIN_CLOEXEC                       = 0x400000\n\tIN_NONBLOCK                      = 0x4000\n\tIOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9\n\tIPV6_FLOWINFO_MASK               = 0xfffffff\n\tIPV6_FLOWLABEL_MASK              = 0xfffff\n\tISIG                             = 0x1\n\tIUCLC                            = 0x200\n\tIXOFF                            = 0x1000\n\tIXON                             = 0x400\n\tMAP_ANON                         = 0x20\n\tMAP_ANONYMOUS                    = 0x20\n\tMAP_DENYWRITE                    = 0x800\n\tMAP_EXECUTABLE                   = 0x1000\n\tMAP_GROWSDOWN                    = 0x200\n\tMAP_HUGETLB                      = 0x40000\n\tMAP_LOCKED                       = 0x100\n\tMAP_NONBLOCK                     = 0x10000\n\tMAP_NORESERVE                    = 0x40\n\tMAP_POPULATE                     = 0x8000\n\tMAP_RENAME                       = 0x20\n\tMAP_STACK                        = 0x20000\n\tMAP_SYNC                         = 0x80000\n\tMCL_CURRENT                      = 0x2000\n\tMCL_FUTURE                       = 0x4000\n\tMCL_ONFAULT                      = 0x8000\n\tMEMERASE                         = 0x80084d02\n\tMEMERASE64                       = 0x80104d14\n\tMEMGETBADBLOCK                   = 0x80084d0b\n\tMEMGETINFO                       = 0x40204d01\n\tMEMGETOOBSEL                     = 0x40c84d0a\n\tMEMGETREGIONCOUNT                = 0x40044d07\n\tMEMISLOCKED                      = 0x40084d17\n\tMEMLOCK                          = 0x80084d05\n\tMEMREAD                          = 0xc0404d1a\n\tMEMREADOOB                       = 0xc0104d04\n\tMEMSETBADBLOCK                   = 0x80084d0c\n\tMEMUNLOCK                        = 0x80084d06\n\tMEMWRITEOOB                      = 0xc0104d03\n\tMTDFILEMODE                      = 0x20004d13\n\tNFDBITS                          = 0x40\n\tNLDLY                            = 0x100\n\tNOFLSH                           = 0x80\n\tNS_GET_MNTNS_ID                  = 0x4008b705\n\tNS_GET_NSTYPE                    = 0x2000b703\n\tNS_GET_OWNER_UID                 = 0x2000b704\n\tNS_GET_PARENT                    = 0x2000b702\n\tNS_GET_PID_FROM_PIDNS            = 0x4004b706\n\tNS_GET_PID_IN_PIDNS              = 0x4004b708\n\tNS_GET_TGID_FROM_PIDNS           = 0x4004b707\n\tNS_GET_TGID_IN_PIDNS             = 0x4004b709\n\tNS_GET_USERNS                    = 0x2000b701\n\tOLCUC                            = 0x2\n\tONLCR                            = 0x4\n\tOTPERASE                         = 0x800c4d19\n\tOTPGETREGIONCOUNT                = 0x80044d0e\n\tOTPGETREGIONINFO                 = 0x800c4d0f\n\tOTPLOCK                          = 0x400c4d10\n\tOTPSELECT                        = 0x40044d0d\n\tO_APPEND                         = 0x8\n\tO_ASYNC                          = 0x40\n\tO_CLOEXEC                        = 0x400000\n\tO_CREAT                          = 0x200\n\tO_DIRECT                         = 0x100000\n\tO_DIRECTORY                      = 0x10000\n\tO_DSYNC                          = 0x2000\n\tO_EXCL                           = 0x800\n\tO_FSYNC                          = 0x802000\n\tO_LARGEFILE                      = 0x0\n\tO_NDELAY                         = 0x4004\n\tO_NOATIME                        = 0x200000\n\tO_NOCTTY                         = 0x8000\n\tO_NOFOLLOW                       = 0x20000\n\tO_NONBLOCK                       = 0x4000\n\tO_PATH                           = 0x1000000\n\tO_RSYNC                          = 0x802000\n\tO_SYNC                           = 0x802000\n\tO_TMPFILE                        = 0x2010000\n\tO_TRUNC                          = 0x400\n\tPARENB                           = 0x100\n\tPARODD                           = 0x200\n\tPENDIN                           = 0x4000\n\tPERF_EVENT_IOC_DISABLE           = 0x20002401\n\tPERF_EVENT_IOC_ENABLE            = 0x20002400\n\tPERF_EVENT_IOC_ID                = 0x40082407\n\tPERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b\n\tPERF_EVENT_IOC_PAUSE_OUTPUT      = 0x80042409\n\tPERF_EVENT_IOC_PERIOD            = 0x80082404\n\tPERF_EVENT_IOC_QUERY_BPF         = 0xc008240a\n\tPERF_EVENT_IOC_REFRESH           = 0x20002402\n\tPERF_EVENT_IOC_RESET             = 0x20002403\n\tPERF_EVENT_IOC_SET_BPF           = 0x80042408\n\tPERF_EVENT_IOC_SET_FILTER        = 0x80082406\n\tPERF_EVENT_IOC_SET_OUTPUT        = 0x20002405\n\tPPPIOCATTACH                     = 0x8004743d\n\tPPPIOCATTCHAN                    = 0x80047438\n\tPPPIOCBRIDGECHAN                 = 0x80047435\n\tPPPIOCCONNECT                    = 0x8004743a\n\tPPPIOCDETACH                     = 0x8004743c\n\tPPPIOCDISCONN                    = 0x20007439\n\tPPPIOCGASYNCMAP                  = 0x40047458\n\tPPPIOCGCHAN                      = 0x40047437\n\tPPPIOCGDEBUG                     = 0x40047441\n\tPPPIOCGFLAGS                     = 0x4004745a\n\tPPPIOCGIDLE                      = 0x4010743f\n\tPPPIOCGIDLE32                    = 0x4008743f\n\tPPPIOCGIDLE64                    = 0x4010743f\n\tPPPIOCGL2TPSTATS                 = 0x40487436\n\tPPPIOCGMRU                       = 0x40047453\n\tPPPIOCGRASYNCMAP                 = 0x40047455\n\tPPPIOCGUNIT                      = 0x40047456\n\tPPPIOCGXASYNCMAP                 = 0x40207450\n\tPPPIOCSACTIVE                    = 0x80107446\n\tPPPIOCSASYNCMAP                  = 0x80047457\n\tPPPIOCSCOMPRESS                  = 0x8010744d\n\tPPPIOCSDEBUG                     = 0x80047440\n\tPPPIOCSFLAGS                     = 0x80047459\n\tPPPIOCSMAXCID                    = 0x80047451\n\tPPPIOCSMRRU                      = 0x8004743b\n\tPPPIOCSMRU                       = 0x80047452\n\tPPPIOCSNPMODE                    = 0x8008744b\n\tPPPIOCSPASS                      = 0x80107447\n\tPPPIOCSRASYNCMAP                 = 0x80047454\n\tPPPIOCSXASYNCMAP                 = 0x8020744f\n\tPPPIOCUNBRIDGECHAN               = 0x20007434\n\tPPPIOCXFERUNIT                   = 0x2000744e\n\tPR_SET_PTRACER_ANY               = 0xffffffffffffffff\n\tPTP_CLOCK_GETCAPS                = 0x40503d01\n\tPTP_CLOCK_GETCAPS2               = 0x40503d0a\n\tPTP_ENABLE_PPS                   = 0x80043d04\n\tPTP_ENABLE_PPS2                  = 0x80043d0d\n\tPTP_EXTTS_REQUEST                = 0x80103d02\n\tPTP_EXTTS_REQUEST2               = 0x80103d0b\n\tPTP_MASK_CLEAR_ALL               = 0x20003d13\n\tPTP_MASK_EN_SINGLE               = 0x80043d14\n\tPTP_PEROUT_REQUEST               = 0x80383d03\n\tPTP_PEROUT_REQUEST2              = 0x80383d0c\n\tPTP_PIN_SETFUNC                  = 0x80603d07\n\tPTP_PIN_SETFUNC2                 = 0x80603d10\n\tPTP_SYS_OFFSET                   = 0x83403d05\n\tPTP_SYS_OFFSET2                  = 0x83403d0e\n\tPTRACE_GETFPAREGS                = 0x14\n\tPTRACE_GETFPREGS                 = 0xe\n\tPTRACE_GETFPREGS64               = 0x19\n\tPTRACE_GETREGS64                 = 0x16\n\tPTRACE_READDATA                  = 0x10\n\tPTRACE_READTEXT                  = 0x12\n\tPTRACE_SETFPAREGS                = 0x15\n\tPTRACE_SETFPREGS                 = 0xf\n\tPTRACE_SETFPREGS64               = 0x1a\n\tPTRACE_SETREGS64                 = 0x17\n\tPTRACE_SPARC_DETACH              = 0xb\n\tPTRACE_WRITEDATA                 = 0x11\n\tPTRACE_WRITETEXT                 = 0x13\n\tPT_FP                            = 0x48\n\tPT_G0                            = 0x10\n\tPT_G1                            = 0x14\n\tPT_G2                            = 0x18\n\tPT_G3                            = 0x1c\n\tPT_G4                            = 0x20\n\tPT_G5                            = 0x24\n\tPT_G6                            = 0x28\n\tPT_G7                            = 0x2c\n\tPT_I0                            = 0x30\n\tPT_I1                            = 0x34\n\tPT_I2                            = 0x38\n\tPT_I3                            = 0x3c\n\tPT_I4                            = 0x40\n\tPT_I5                            = 0x44\n\tPT_I6                            = 0x48\n\tPT_I7                            = 0x4c\n\tPT_NPC                           = 0x8\n\tPT_PC                            = 0x4\n\tPT_PSR                           = 0x0\n\tPT_REGS_MAGIC                    = 0x57ac6c00\n\tPT_TNPC                          = 0x90\n\tPT_TPC                           = 0x88\n\tPT_TSTATE                        = 0x80\n\tPT_V9_FP                         = 0x70\n\tPT_V9_G0                         = 0x0\n\tPT_V9_G1                         = 0x8\n\tPT_V9_G2                         = 0x10\n\tPT_V9_G3                         = 0x18\n\tPT_V9_G4                         = 0x20\n\tPT_V9_G5                         = 0x28\n\tPT_V9_G6                         = 0x30\n\tPT_V9_G7                         = 0x38\n\tPT_V9_I0                         = 0x40\n\tPT_V9_I1                         = 0x48\n\tPT_V9_I2                         = 0x50\n\tPT_V9_I3                         = 0x58\n\tPT_V9_I4                         = 0x60\n\tPT_V9_I5                         = 0x68\n\tPT_V9_I6                         = 0x70\n\tPT_V9_I7                         = 0x78\n\tPT_V9_MAGIC                      = 0x9c\n\tPT_V9_TNPC                       = 0x90\n\tPT_V9_TPC                        = 0x88\n\tPT_V9_TSTATE                     = 0x80\n\tPT_V9_Y                          = 0x98\n\tPT_WIM                           = 0x10\n\tPT_Y                             = 0xc\n\tRLIMIT_AS                        = 0x9\n\tRLIMIT_MEMLOCK                   = 0x8\n\tRLIMIT_NOFILE                    = 0x6\n\tRLIMIT_NPROC                     = 0x7\n\tRLIMIT_RSS                       = 0x5\n\tRNDADDENTROPY                    = 0x80085203\n\tRNDADDTOENTCNT                   = 0x80045201\n\tRNDCLEARPOOL                     = 0x20005206\n\tRNDGETENTCNT                     = 0x40045200\n\tRNDGETPOOL                       = 0x40085202\n\tRNDRESEEDCRNG                    = 0x20005207\n\tRNDZAPENTCNT                     = 0x20005204\n\tRTC_AIE_OFF                      = 0x20007002\n\tRTC_AIE_ON                       = 0x20007001\n\tRTC_ALM_READ                     = 0x40247008\n\tRTC_ALM_SET                      = 0x80247007\n\tRTC_EPOCH_READ                   = 0x4008700d\n\tRTC_EPOCH_SET                    = 0x8008700e\n\tRTC_IRQP_READ                    = 0x4008700b\n\tRTC_IRQP_SET                     = 0x8008700c\n\tRTC_PARAM_GET                    = 0x80187013\n\tRTC_PARAM_SET                    = 0x80187014\n\tRTC_PIE_OFF                      = 0x20007006\n\tRTC_PIE_ON                       = 0x20007005\n\tRTC_PLL_GET                      = 0x40207011\n\tRTC_PLL_SET                      = 0x80207012\n\tRTC_RD_TIME                      = 0x40247009\n\tRTC_SET_TIME                     = 0x8024700a\n\tRTC_UIE_OFF                      = 0x20007004\n\tRTC_UIE_ON                       = 0x20007003\n\tRTC_VL_CLR                       = 0x20007014\n\tRTC_VL_READ                      = 0x40047013\n\tRTC_WIE_OFF                      = 0x20007010\n\tRTC_WIE_ON                       = 0x2000700f\n\tRTC_WKALM_RD                     = 0x40287010\n\tRTC_WKALM_SET                    = 0x8028700f\n\tSCM_DEVMEM_DMABUF                = 0x58\n\tSCM_DEVMEM_LINEAR                = 0x57\n\tSCM_TIMESTAMPING                 = 0x23\n\tSCM_TIMESTAMPING_OPT_STATS       = 0x38\n\tSCM_TIMESTAMPING_PKTINFO         = 0x3c\n\tSCM_TIMESTAMPNS                  = 0x21\n\tSCM_TS_OPT_ID                    = 0x5a\n\tSCM_TXTIME                       = 0x3f\n\tSCM_WIFI_STATUS                  = 0x25\n\tSECCOMP_IOCTL_NOTIF_ADDFD        = 0x80182103\n\tSECCOMP_IOCTL_NOTIF_ID_VALID     = 0x80082102\n\tSECCOMP_IOCTL_NOTIF_SET_FLAGS    = 0x80082104\n\tSFD_CLOEXEC                      = 0x400000\n\tSFD_NONBLOCK                     = 0x4000\n\tSF_FP                            = 0x38\n\tSF_I0                            = 0x20\n\tSF_I1                            = 0x24\n\tSF_I2                            = 0x28\n\tSF_I3                            = 0x2c\n\tSF_I4                            = 0x30\n\tSF_I5                            = 0x34\n\tSF_L0                            = 0x0\n\tSF_L1                            = 0x4\n\tSF_L2                            = 0x8\n\tSF_L3                            = 0xc\n\tSF_L4                            = 0x10\n\tSF_L5                            = 0x14\n\tSF_L6                            = 0x18\n\tSF_L7                            = 0x1c\n\tSF_PC                            = 0x3c\n\tSF_RETP                          = 0x40\n\tSF_V9_FP                         = 0x70\n\tSF_V9_I0                         = 0x40\n\tSF_V9_I1                         = 0x48\n\tSF_V9_I2                         = 0x50\n\tSF_V9_I3                         = 0x58\n\tSF_V9_I4                         = 0x60\n\tSF_V9_I5                         = 0x68\n\tSF_V9_L0                         = 0x0\n\tSF_V9_L1                         = 0x8\n\tSF_V9_L2                         = 0x10\n\tSF_V9_L3                         = 0x18\n\tSF_V9_L4                         = 0x20\n\tSF_V9_L5                         = 0x28\n\tSF_V9_L6                         = 0x30\n\tSF_V9_L7                         = 0x38\n\tSF_V9_PC                         = 0x78\n\tSF_V9_RETP                       = 0x80\n\tSF_V9_XARG0                      = 0x88\n\tSF_V9_XARG1                      = 0x90\n\tSF_V9_XARG2                      = 0x98\n\tSF_V9_XARG3                      = 0xa0\n\tSF_V9_XARG4                      = 0xa8\n\tSF_V9_XARG5                      = 0xb0\n\tSF_V9_XXARG                      = 0xb8\n\tSF_XARG0                         = 0x44\n\tSF_XARG1                         = 0x48\n\tSF_XARG2                         = 0x4c\n\tSF_XARG3                         = 0x50\n\tSF_XARG4                         = 0x54\n\tSF_XARG5                         = 0x58\n\tSF_XXARG                         = 0x5c\n\tSIOCATMARK                       = 0x8905\n\tSIOCGPGRP                        = 0x8904\n\tSIOCGSTAMPNS_NEW                 = 0x40108907\n\tSIOCGSTAMP_NEW                   = 0x40108906\n\tSIOCINQ                          = 0x4004667f\n\tSIOCOUTQ                         = 0x40047473\n\tSIOCSPGRP                        = 0x8902\n\tSOCK_CLOEXEC                     = 0x400000\n\tSOCK_DGRAM                       = 0x2\n\tSOCK_NONBLOCK                    = 0x4000\n\tSOCK_STREAM                      = 0x1\n\tSOL_SOCKET                       = 0xffff\n\tSO_ACCEPTCONN                    = 0x8000\n\tSO_ATTACH_BPF                    = 0x34\n\tSO_ATTACH_REUSEPORT_CBPF         = 0x35\n\tSO_ATTACH_REUSEPORT_EBPF         = 0x36\n\tSO_BINDTODEVICE                  = 0xd\n\tSO_BINDTOIFINDEX                 = 0x41\n\tSO_BPF_EXTENSIONS                = 0x32\n\tSO_BROADCAST                     = 0x20\n\tSO_BSDCOMPAT                     = 0x400\n\tSO_BUF_LOCK                      = 0x51\n\tSO_BUSY_POLL                     = 0x30\n\tSO_BUSY_POLL_BUDGET              = 0x49\n\tSO_CNX_ADVICE                    = 0x37\n\tSO_COOKIE                        = 0x3b\n\tSO_DETACH_REUSEPORT_BPF          = 0x47\n\tSO_DEVMEM_DMABUF                 = 0x58\n\tSO_DEVMEM_DONTNEED               = 0x59\n\tSO_DEVMEM_LINEAR                 = 0x57\n\tSO_DOMAIN                        = 0x1029\n\tSO_DONTROUTE                     = 0x10\n\tSO_ERROR                         = 0x1007\n\tSO_INCOMING_CPU                  = 0x33\n\tSO_INCOMING_NAPI_ID              = 0x3a\n\tSO_KEEPALIVE                     = 0x8\n\tSO_LINGER                        = 0x80\n\tSO_LOCK_FILTER                   = 0x28\n\tSO_MARK                          = 0x22\n\tSO_MAX_PACING_RATE               = 0x31\n\tSO_MEMINFO                       = 0x39\n\tSO_NETNS_COOKIE                  = 0x50\n\tSO_NOFCS                         = 0x27\n\tSO_OOBINLINE                     = 0x100\n\tSO_PASSCRED                      = 0x2\n\tSO_PASSPIDFD                     = 0x55\n\tSO_PASSSEC                       = 0x1f\n\tSO_PEEK_OFF                      = 0x26\n\tSO_PEERCRED                      = 0x40\n\tSO_PEERGROUPS                    = 0x3d\n\tSO_PEERPIDFD                     = 0x56\n\tSO_PEERSEC                       = 0x1e\n\tSO_PREFER_BUSY_POLL              = 0x48\n\tSO_PROTOCOL                      = 0x1028\n\tSO_RCVBUF                        = 0x1002\n\tSO_RCVBUFFORCE                   = 0x100b\n\tSO_RCVLOWAT                      = 0x800\n\tSO_RCVMARK                       = 0x54\n\tSO_RCVTIMEO                      = 0x2000\n\tSO_RCVTIMEO_NEW                  = 0x44\n\tSO_RCVTIMEO_OLD                  = 0x2000\n\tSO_RESERVE_MEM                   = 0x52\n\tSO_REUSEADDR                     = 0x4\n\tSO_REUSEPORT                     = 0x200\n\tSO_RXQ_OVFL                      = 0x24\n\tSO_SECURITY_AUTHENTICATION       = 0x5001\n\tSO_SECURITY_ENCRYPTION_NETWORK   = 0x5004\n\tSO_SECURITY_ENCRYPTION_TRANSPORT = 0x5002\n\tSO_SELECT_ERR_QUEUE              = 0x29\n\tSO_SNDBUF                        = 0x1001\n\tSO_SNDBUFFORCE                   = 0x100a\n\tSO_SNDLOWAT                      = 0x1000\n\tSO_SNDTIMEO                      = 0x4000\n\tSO_SNDTIMEO_NEW                  = 0x45\n\tSO_SNDTIMEO_OLD                  = 0x4000\n\tSO_TIMESTAMPING                  = 0x23\n\tSO_TIMESTAMPING_NEW              = 0x43\n\tSO_TIMESTAMPING_OLD              = 0x23\n\tSO_TIMESTAMPNS                   = 0x21\n\tSO_TIMESTAMPNS_NEW               = 0x42\n\tSO_TIMESTAMPNS_OLD               = 0x21\n\tSO_TIMESTAMP_NEW                 = 0x46\n\tSO_TXREHASH                      = 0x53\n\tSO_TXTIME                        = 0x3f\n\tSO_TYPE                          = 0x1008\n\tSO_WIFI_STATUS                   = 0x25\n\tSO_ZEROCOPY                      = 0x3e\n\tTAB1                             = 0x800\n\tTAB2                             = 0x1000\n\tTAB3                             = 0x1800\n\tTABDLY                           = 0x1800\n\tTCFLSH                           = 0x20005407\n\tTCGETA                           = 0x40125401\n\tTCGETS                           = 0x40245408\n\tTCGETS2                          = 0x402c540c\n\tTCSAFLUSH                        = 0x2\n\tTCSBRK                           = 0x20005405\n\tTCSBRKP                          = 0x5425\n\tTCSETA                           = 0x80125402\n\tTCSETAF                          = 0x80125404\n\tTCSETAW                          = 0x80125403\n\tTCSETS                           = 0x80245409\n\tTCSETS2                          = 0x802c540d\n\tTCSETSF                          = 0x8024540b\n\tTCSETSF2                         = 0x802c540f\n\tTCSETSW                          = 0x8024540a\n\tTCSETSW2                         = 0x802c540e\n\tTCXONC                           = 0x20005406\n\tTFD_CLOEXEC                      = 0x400000\n\tTFD_NONBLOCK                     = 0x4000\n\tTIOCCBRK                         = 0x2000747a\n\tTIOCCONS                         = 0x20007424\n\tTIOCEXCL                         = 0x2000740d\n\tTIOCGDEV                         = 0x40045432\n\tTIOCGETD                         = 0x40047400\n\tTIOCGEXCL                        = 0x40045440\n\tTIOCGICOUNT                      = 0x545d\n\tTIOCGISO7816                     = 0x40285443\n\tTIOCGLCKTRMIOS                   = 0x5456\n\tTIOCGPGRP                        = 0x40047483\n\tTIOCGPKT                         = 0x40045438\n\tTIOCGPTLCK                       = 0x40045439\n\tTIOCGPTN                         = 0x40047486\n\tTIOCGPTPEER                      = 0x20007489\n\tTIOCGRS485                       = 0x40205441\n\tTIOCGSERIAL                      = 0x541e\n\tTIOCGSID                         = 0x40047485\n\tTIOCGSOFTCAR                     = 0x40047464\n\tTIOCGWINSZ                       = 0x40087468\n\tTIOCINQ                          = 0x4004667f\n\tTIOCLINUX                        = 0x541c\n\tTIOCMBIC                         = 0x8004746b\n\tTIOCMBIS                         = 0x8004746c\n\tTIOCMGET                         = 0x4004746a\n\tTIOCMIWAIT                       = 0x545c\n\tTIOCMSET                         = 0x8004746d\n\tTIOCM_CAR                        = 0x40\n\tTIOCM_CD                         = 0x40\n\tTIOCM_CTS                        = 0x20\n\tTIOCM_DSR                        = 0x100\n\tTIOCM_RI                         = 0x80\n\tTIOCM_RNG                        = 0x80\n\tTIOCM_SR                         = 0x10\n\tTIOCM_ST                         = 0x8\n\tTIOCNOTTY                        = 0x20007471\n\tTIOCNXCL                         = 0x2000740e\n\tTIOCOUTQ                         = 0x40047473\n\tTIOCPKT                          = 0x80047470\n\tTIOCSBRK                         = 0x2000747b\n\tTIOCSCTTY                        = 0x20007484\n\tTIOCSERCONFIG                    = 0x5453\n\tTIOCSERGETLSR                    = 0x5459\n\tTIOCSERGETMULTI                  = 0x545a\n\tTIOCSERGSTRUCT                   = 0x5458\n\tTIOCSERGWILD                     = 0x5454\n\tTIOCSERSETMULTI                  = 0x545b\n\tTIOCSERSWILD                     = 0x5455\n\tTIOCSETD                         = 0x80047401\n\tTIOCSIG                          = 0x80047488\n\tTIOCSISO7816                     = 0xc0285444\n\tTIOCSLCKTRMIOS                   = 0x5457\n\tTIOCSPGRP                        = 0x80047482\n\tTIOCSPTLCK                       = 0x80047487\n\tTIOCSRS485                       = 0xc0205442\n\tTIOCSSERIAL                      = 0x541f\n\tTIOCSSOFTCAR                     = 0x80047465\n\tTIOCSTART                        = 0x2000746e\n\tTIOCSTI                          = 0x80017472\n\tTIOCSTOP                         = 0x2000746f\n\tTIOCSWINSZ                       = 0x80087467\n\tTIOCVHANGUP                      = 0x20005437\n\tTOSTOP                           = 0x100\n\tTUNATTACHFILTER                  = 0x801054d5\n\tTUNDETACHFILTER                  = 0x801054d6\n\tTUNGETDEVNETNS                   = 0x200054e3\n\tTUNGETFEATURES                   = 0x400454cf\n\tTUNGETFILTER                     = 0x401054db\n\tTUNGETIFF                        = 0x400454d2\n\tTUNGETSNDBUF                     = 0x400454d3\n\tTUNGETVNETBE                     = 0x400454df\n\tTUNGETVNETHDRSZ                  = 0x400454d7\n\tTUNGETVNETLE                     = 0x400454dd\n\tTUNSETCARRIER                    = 0x800454e2\n\tTUNSETDEBUG                      = 0x800454c9\n\tTUNSETFILTEREBPF                 = 0x400454e1\n\tTUNSETGROUP                      = 0x800454ce\n\tTUNSETIFF                        = 0x800454ca\n\tTUNSETIFINDEX                    = 0x800454da\n\tTUNSETLINK                       = 0x800454cd\n\tTUNSETNOCSUM                     = 0x800454c8\n\tTUNSETOFFLOAD                    = 0x800454d0\n\tTUNSETOWNER                      = 0x800454cc\n\tTUNSETPERSIST                    = 0x800454cb\n\tTUNSETQUEUE                      = 0x800454d9\n\tTUNSETSNDBUF                     = 0x800454d4\n\tTUNSETSTEERINGEBPF               = 0x400454e0\n\tTUNSETTXFILTER                   = 0x800454d1\n\tTUNSETVNETBE                     = 0x800454de\n\tTUNSETVNETHDRSZ                  = 0x800454d8\n\tTUNSETVNETLE                     = 0x800454dc\n\tUBI_IOCATT                       = 0x80186f40\n\tUBI_IOCDET                       = 0x80046f41\n\tUBI_IOCEBCH                      = 0x80044f02\n\tUBI_IOCEBER                      = 0x80044f01\n\tUBI_IOCEBISMAP                   = 0x40044f05\n\tUBI_IOCEBMAP                     = 0x80084f03\n\tUBI_IOCEBUNMAP                   = 0x80044f04\n\tUBI_IOCMKVOL                     = 0x80986f00\n\tUBI_IOCRMVOL                     = 0x80046f01\n\tUBI_IOCRNVOL                     = 0x91106f03\n\tUBI_IOCRPEB                      = 0x80046f04\n\tUBI_IOCRSVOL                     = 0x800c6f02\n\tUBI_IOCSETVOLPROP                = 0x80104f06\n\tUBI_IOCSPEB                      = 0x80046f05\n\tUBI_IOCVOLCRBLK                  = 0x80804f07\n\tUBI_IOCVOLRMBLK                  = 0x20004f08\n\tUBI_IOCVOLUP                     = 0x80084f00\n\tVDISCARD                         = 0xd\n\tVEOF                             = 0x4\n\tVEOL                             = 0xb\n\tVEOL2                            = 0x10\n\tVMIN                             = 0x6\n\tVREPRINT                         = 0xc\n\tVSTART                           = 0x8\n\tVSTOP                            = 0x9\n\tVSUSP                            = 0xa\n\tVSWTC                            = 0x7\n\tVT1                              = 0x4000\n\tVTDLY                            = 0x4000\n\tVTIME                            = 0x5\n\tVWERASE                          = 0xe\n\tWDIOC_GETBOOTSTATUS              = 0x40045702\n\tWDIOC_GETPRETIMEOUT              = 0x40045709\n\tWDIOC_GETSTATUS                  = 0x40045701\n\tWDIOC_GETSUPPORT                 = 0x40285700\n\tWDIOC_GETTEMP                    = 0x40045703\n\tWDIOC_GETTIMELEFT                = 0x4004570a\n\tWDIOC_GETTIMEOUT                 = 0x40045707\n\tWDIOC_KEEPALIVE                  = 0x40045705\n\tWDIOC_SETOPTIONS                 = 0x40045704\n\tWORDSIZE                         = 0x40\n\tXCASE                            = 0x4\n\tXTABS                            = 0x1800\n\t_HIDIOCGRAWNAME                  = 0x40804804\n\t_HIDIOCGRAWPHYS                  = 0x40404805\n\t_HIDIOCGRAWUNIQ                  = 0x40404808\n\t__TIOCFLUSH                      = 0x80047410\n)\n\n// Errors\nconst (\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEADV            = syscall.Errno(0x53)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEALREADY        = syscall.Errno(0x25)\n\tEBADE           = syscall.Errno(0x66)\n\tEBADFD          = syscall.Errno(0x5d)\n\tEBADMSG         = syscall.Errno(0x4c)\n\tEBADR           = syscall.Errno(0x67)\n\tEBADRQC         = syscall.Errno(0x6a)\n\tEBADSLT         = syscall.Errno(0x6b)\n\tEBFONT          = syscall.Errno(0x6d)\n\tECANCELED       = syscall.Errno(0x7f)\n\tECHRNG          = syscall.Errno(0x5e)\n\tECOMM           = syscall.Errno(0x55)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0x4e)\n\tEDEADLOCK       = syscall.Errno(0x6c)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOTDOT         = syscall.Errno(0x58)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEHWPOISON       = syscall.Errno(0x87)\n\tEIDRM           = syscall.Errno(0x4d)\n\tEILSEQ          = syscall.Errno(0x7a)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISNAM          = syscall.Errno(0x78)\n\tEKEYEXPIRED     = syscall.Errno(0x81)\n\tEKEYREJECTED    = syscall.Errno(0x83)\n\tEKEYREVOKED     = syscall.Errno(0x82)\n\tEL2HLT          = syscall.Errno(0x65)\n\tEL2NSYNC        = syscall.Errno(0x5f)\n\tEL3HLT          = syscall.Errno(0x60)\n\tEL3RST          = syscall.Errno(0x61)\n\tELIBACC         = syscall.Errno(0x72)\n\tELIBBAD         = syscall.Errno(0x70)\n\tELIBEXEC        = syscall.Errno(0x6e)\n\tELIBMAX         = syscall.Errno(0x7b)\n\tELIBSCN         = syscall.Errno(0x7c)\n\tELNRNG          = syscall.Errno(0x62)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMEDIUMTYPE     = syscall.Errno(0x7e)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x57)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENAVAIL         = syscall.Errno(0x77)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENOANO          = syscall.Errno(0x69)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENOCSI          = syscall.Errno(0x64)\n\tENODATA         = syscall.Errno(0x6f)\n\tENOKEY          = syscall.Errno(0x80)\n\tENOLCK          = syscall.Errno(0x4f)\n\tENOLINK         = syscall.Errno(0x52)\n\tENOMEDIUM       = syscall.Errno(0x7d)\n\tENOMSG          = syscall.Errno(0x4b)\n\tENONET          = syscall.Errno(0x50)\n\tENOPKG          = syscall.Errno(0x71)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSR           = syscall.Errno(0x4a)\n\tENOSTR          = syscall.Errno(0x48)\n\tENOSYS          = syscall.Errno(0x5a)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTNAM         = syscall.Errno(0x76)\n\tENOTRECOVERABLE = syscall.Errno(0x85)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x2d)\n\tENOTUNIQ        = syscall.Errno(0x73)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x5c)\n\tEOWNERDEAD      = syscall.Errno(0x84)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROTO          = syscall.Errno(0x56)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tEREMCHG         = syscall.Errno(0x59)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEREMOTEIO       = syscall.Errno(0x79)\n\tERESTART        = syscall.Errno(0x74)\n\tERFKILL         = syscall.Errno(0x86)\n\tERREMOTE        = syscall.Errno(0x51)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESRMNT          = syscall.Errno(0x54)\n\tESTALE          = syscall.Errno(0x46)\n\tESTRPIPE        = syscall.Errno(0x5b)\n\tETIME           = syscall.Errno(0x49)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tEUCLEAN         = syscall.Errno(0x75)\n\tEUNATCH         = syscall.Errno(0x63)\n\tEUSERS          = syscall.Errno(0x44)\n\tEXFULL          = syscall.Errno(0x68)\n)\n\n// Signals\nconst (\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCLD    = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGLOST   = syscall.Signal(0x1d)\n\tSIGPOLL   = syscall.Signal(0x17)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x1d)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device or resource busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"invalid cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"numerical result out of range\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"ENOTSUP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{57, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{58, \"ESHUTDOWN\", \"cannot send after transport endpoint shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{60, \"ETIMEDOUT\", \"connection timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disk quota exceeded\"},\n\t{70, \"ESTALE\", \"stale file handle\"},\n\t{71, \"EREMOTE\", \"object is remote\"},\n\t{72, \"ENOSTR\", \"device not a stream\"},\n\t{73, \"ETIME\", \"timer expired\"},\n\t{74, \"ENOSR\", \"out of streams resources\"},\n\t{75, \"ENOMSG\", \"no message of desired type\"},\n\t{76, \"EBADMSG\", \"bad message\"},\n\t{77, \"EIDRM\", \"identifier removed\"},\n\t{78, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{79, \"ENOLCK\", \"no locks available\"},\n\t{80, \"ENONET\", \"machine is not on the network\"},\n\t{81, \"ERREMOTE\", \"unknown error 81\"},\n\t{82, \"ENOLINK\", \"link has been severed\"},\n\t{83, \"EADV\", \"advertise error\"},\n\t{84, \"ESRMNT\", \"srmount error\"},\n\t{85, \"ECOMM\", \"communication error on send\"},\n\t{86, \"EPROTO\", \"protocol error\"},\n\t{87, \"EMULTIHOP\", \"multihop attempted\"},\n\t{88, \"EDOTDOT\", \"RFS specific error\"},\n\t{89, \"EREMCHG\", \"remote address changed\"},\n\t{90, \"ENOSYS\", \"function not implemented\"},\n\t{91, \"ESTRPIPE\", \"streams pipe error\"},\n\t{92, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{93, \"EBADFD\", \"file descriptor in bad state\"},\n\t{94, \"ECHRNG\", \"channel number out of range\"},\n\t{95, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{96, \"EL3HLT\", \"level 3 halted\"},\n\t{97, \"EL3RST\", \"level 3 reset\"},\n\t{98, \"ELNRNG\", \"link number out of range\"},\n\t{99, \"EUNATCH\", \"protocol driver not attached\"},\n\t{100, \"ENOCSI\", \"no CSI structure available\"},\n\t{101, \"EL2HLT\", \"level 2 halted\"},\n\t{102, \"EBADE\", \"invalid exchange\"},\n\t{103, \"EBADR\", \"invalid request descriptor\"},\n\t{104, \"EXFULL\", \"exchange full\"},\n\t{105, \"ENOANO\", \"no anode\"},\n\t{106, \"EBADRQC\", \"invalid request code\"},\n\t{107, \"EBADSLT\", \"invalid slot\"},\n\t{108, \"EDEADLOCK\", \"file locking deadlock error\"},\n\t{109, \"EBFONT\", \"bad font file format\"},\n\t{110, \"ELIBEXEC\", \"cannot exec a shared library directly\"},\n\t{111, \"ENODATA\", \"no data available\"},\n\t{112, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{113, \"ENOPKG\", \"package not installed\"},\n\t{114, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{115, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{116, \"ERESTART\", \"interrupted system call should be restarted\"},\n\t{117, \"EUCLEAN\", \"structure needs cleaning\"},\n\t{118, \"ENOTNAM\", \"not a XENIX named type file\"},\n\t{119, \"ENAVAIL\", \"no XENIX semaphores available\"},\n\t{120, \"EISNAM\", \"is a named type file\"},\n\t{121, \"EREMOTEIO\", \"remote I/O error\"},\n\t{122, \"EILSEQ\", \"invalid or incomplete multibyte or wide character\"},\n\t{123, \"ELIBMAX\", \"attempting to link in too many shared libraries\"},\n\t{124, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{125, \"ENOMEDIUM\", \"no medium found\"},\n\t{126, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{127, \"ECANCELED\", \"operation canceled\"},\n\t{128, \"ENOKEY\", \"required key not available\"},\n\t{129, \"EKEYEXPIRED\", \"key has expired\"},\n\t{130, \"EKEYREVOKED\", \"key has been revoked\"},\n\t{131, \"EKEYREJECTED\", \"key was rejected by service\"},\n\t{132, \"EOWNERDEAD\", \"owner died\"},\n\t{133, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{134, \"ERFKILL\", \"operation not possible due to RF-kill\"},\n\t{135, \"EHWPOISON\", \"memory page has hardware error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{6, \"SIGABRT\", \"aborted\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"stopped (signal)\"},\n\t{18, \"SIGTSTP\", \"stopped\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGLOST\", \"power failure\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go",
    "content": "// mkerrors.sh -m32\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build 386 && netbsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m32 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_ARP                            = 0x1c\n\tAF_BLUETOOTH                      = 0x1f\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_HYLINK                         = 0xf\n\tAF_IEEE80211                      = 0x20\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x18\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x23\n\tAF_MPLS                           = 0x21\n\tAF_NATM                           = 0x1b\n\tAF_NS                             = 0x6\n\tAF_OROUTE                         = 0x11\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x22\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tARPHRD_ARCNET                     = 0x7\n\tARPHRD_ETHER                      = 0x1\n\tARPHRD_FRELAY                     = 0xf\n\tARPHRD_IEEE1394                   = 0x18\n\tARPHRD_IEEE802                    = 0x6\n\tARPHRD_STRIP                      = 0x17\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB460800                           = 0x70800\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB921600                           = 0xe1000\n\tB9600                             = 0x2580\n\tBIOCFEEDBACK                      = 0x8004427d\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc0084277\n\tBIOCGETIF                         = 0x4090426b\n\tBIOCGFEEDBACK                     = 0x4004427c\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRTIMEOUT                     = 0x400c427b\n\tBIOCGSEESENT                      = 0x40044278\n\tBIOCGSTATS                        = 0x4080426f\n\tBIOCGSTATSOLD                     = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDLT                          = 0x80044276\n\tBIOCSETF                          = 0x80084267\n\tBIOCSETIF                         = 0x8090426c\n\tBIOCSFEEDBACK                     = 0x8004427d\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRTIMEOUT                     = 0x800c427a\n\tBIOCSSEESENT                      = 0x80044279\n\tBIOCSTCPF                         = 0x80084272\n\tBIOCSUDPF                         = 0x80084273\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x4\n\tBPF_ALIGNMENT32                   = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DFLTBUFSIZE                   = 0x100000\n\tBPF_DIV                           = 0x30\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x1000000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCLONE_CSIGNAL                     = 0xff\n\tCLONE_FILES                       = 0x400\n\tCLONE_FS                          = 0x200\n\tCLONE_PID                         = 0x1000\n\tCLONE_PTRACE                      = 0x2000\n\tCLONE_SIGHAND                     = 0x800\n\tCLONE_VFORK                       = 0x4000\n\tCLONE_VM                          = 0x100\n\tCPUSTATES                         = 0x5\n\tCP_IDLE                           = 0x4\n\tCP_INTR                           = 0x3\n\tCP_NICE                           = 0x1\n\tCP_SYS                            = 0x2\n\tCP_USER                           = 0x0\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x10000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0x14\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tCTL_QUERY                         = -0x2\n\tDIOCBSFLUSH                       = 0x20006478\n\tDLT_A429                          = 0xb8\n\tDLT_A653_ICM                      = 0xb9\n\tDLT_AIRONET_HEADER                = 0x78\n\tDLT_AOS                           = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394        = 0x8a\n\tDLT_ARCNET                        = 0x7\n\tDLT_ARCNET_LINUX                  = 0x81\n\tDLT_ATM_CLIP                      = 0x13\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AURORA                        = 0x7e\n\tDLT_AX25                          = 0x3\n\tDLT_AX25_KISS                     = 0xca\n\tDLT_BACNET_MS_TP                  = 0xa5\n\tDLT_BLUETOOTH_HCI_H4              = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR    = 0xc9\n\tDLT_CAN20B                        = 0xbe\n\tDLT_CAN_SOCKETCAN                 = 0xe3\n\tDLT_CHAOS                         = 0x5\n\tDLT_CISCO_IOS                     = 0x76\n\tDLT_C_HDLC                        = 0x68\n\tDLT_C_HDLC_WITH_DIR               = 0xcd\n\tDLT_DECT                          = 0xdd\n\tDLT_DOCSIS                        = 0x8f\n\tDLT_ECONET                        = 0x73\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0x6d\n\tDLT_ERF                           = 0xc5\n\tDLT_ERF_ETH                       = 0xaf\n\tDLT_ERF_POS                       = 0xb0\n\tDLT_FC_2                          = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS        = 0xe1\n\tDLT_FDDI                          = 0xa\n\tDLT_FLEXRAY                       = 0xd2\n\tDLT_FRELAY                        = 0x6b\n\tDLT_FRELAY_WITH_DIR               = 0xce\n\tDLT_GCOM_SERIAL                   = 0xad\n\tDLT_GCOM_T1E1                     = 0xac\n\tDLT_GPF_F                         = 0xab\n\tDLT_GPF_T                         = 0xaa\n\tDLT_GPRS_LLC                      = 0xa9\n\tDLT_GSMTAP_ABIS                   = 0xda\n\tDLT_GSMTAP_UM                     = 0xd9\n\tDLT_HDLC                          = 0x10\n\tDLT_HHDLC                         = 0x79\n\tDLT_HIPPI                         = 0xf\n\tDLT_IBM_SN                        = 0x92\n\tDLT_IBM_SP                        = 0x91\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS          = 0xa3\n\tDLT_IEEE802_15_4                  = 0xc3\n\tDLT_IEEE802_15_4_LINUX            = 0xbf\n\tDLT_IEEE802_15_4_NONASK_PHY       = 0xd7\n\tDLT_IEEE802_16_MAC_CPS            = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO      = 0xc1\n\tDLT_IPMB                          = 0xc7\n\tDLT_IPMB_LINUX                    = 0xd1\n\tDLT_IPNET                         = 0xe2\n\tDLT_IPV4                          = 0xe4\n\tDLT_IPV6                          = 0xe5\n\tDLT_IP_OVER_FC                    = 0x7a\n\tDLT_JUNIPER_ATM1                  = 0x89\n\tDLT_JUNIPER_ATM2                  = 0x87\n\tDLT_JUNIPER_CHDLC                 = 0xb5\n\tDLT_JUNIPER_ES                    = 0x84\n\tDLT_JUNIPER_ETHER                 = 0xb2\n\tDLT_JUNIPER_FRELAY                = 0xb4\n\tDLT_JUNIPER_GGSN                  = 0x85\n\tDLT_JUNIPER_ISM                   = 0xc2\n\tDLT_JUNIPER_MFR                   = 0x86\n\tDLT_JUNIPER_MLFR                  = 0x83\n\tDLT_JUNIPER_MLPPP                 = 0x82\n\tDLT_JUNIPER_MONITOR               = 0xa4\n\tDLT_JUNIPER_PIC_PEER              = 0xae\n\tDLT_JUNIPER_PPP                   = 0xb3\n\tDLT_JUNIPER_PPPOE                 = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM             = 0xa8\n\tDLT_JUNIPER_SERVICES              = 0x88\n\tDLT_JUNIPER_ST                    = 0xc8\n\tDLT_JUNIPER_VP                    = 0xb7\n\tDLT_LAPB_WITH_DIR                 = 0xcf\n\tDLT_LAPD                          = 0xcb\n\tDLT_LIN                           = 0xd4\n\tDLT_LINUX_EVDEV                   = 0xd8\n\tDLT_LINUX_IRDA                    = 0x90\n\tDLT_LINUX_LAPD                    = 0xb1\n\tDLT_LINUX_SLL                     = 0x71\n\tDLT_LOOP                          = 0x6c\n\tDLT_LTALK                         = 0x72\n\tDLT_MFR                           = 0xb6\n\tDLT_MOST                          = 0xd3\n\tDLT_MPLS                          = 0xdb\n\tDLT_MTP2                          = 0x8c\n\tDLT_MTP2_WITH_PHDR                = 0x8b\n\tDLT_MTP3                          = 0x8d\n\tDLT_NULL                          = 0x0\n\tDLT_PCI_EXP                       = 0x7d\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPI                           = 0xc0\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0xe\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_PPPD                      = 0xa6\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PPP_WITH_DIR                  = 0xcc\n\tDLT_PRISM_HEADER                  = 0x77\n\tDLT_PRONET                        = 0x4\n\tDLT_RAIF1                         = 0xc6\n\tDLT_RAW                           = 0xc\n\tDLT_RAWAF_MASK                    = 0x2240000\n\tDLT_RIO                           = 0x7c\n\tDLT_SCCP                          = 0x8e\n\tDLT_SITA                          = 0xc4\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xd\n\tDLT_SUNATM                        = 0x7b\n\tDLT_SYMANTEC_FIREWALL             = 0x63\n\tDLT_TZSP                          = 0x80\n\tDLT_USB                           = 0xba\n\tDLT_USB_LINUX                     = 0xbd\n\tDLT_USB_LINUX_MMAPPED             = 0xdc\n\tDLT_WIHART                        = 0xdf\n\tDLT_X2E_SERIAL                    = 0xd5\n\tDLT_X2E_XORAYA                    = 0xd6\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tDT_WHT                            = 0xe\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEMUL_LINUX                        = 0x1\n\tEMUL_LINUX32                      = 0x5\n\tEMUL_MAXID                        = 0x6\n\tEN_SW_CTL_INF                     = 0x1000\n\tEN_SW_CTL_PREC                    = 0x300\n\tEN_SW_CTL_ROUND                   = 0xc00\n\tEN_SW_DATACHAIN                   = 0x80\n\tEN_SW_DENORM                      = 0x2\n\tEN_SW_INVOP                       = 0x1\n\tEN_SW_OVERFLOW                    = 0x8\n\tEN_SW_PRECLOSS                    = 0x20\n\tEN_SW_UNDERFLOW                   = 0x10\n\tEN_SW_ZERODIV                     = 0x4\n\tETHERCAP_JUMBO_MTU                = 0x4\n\tETHERCAP_VLAN_HWTAGGING           = 0x2\n\tETHERCAP_VLAN_MTU                 = 0x1\n\tETHERMIN                          = 0x2e\n\tETHERMTU                          = 0x5dc\n\tETHERMTU_JUMBO                    = 0x2328\n\tETHERTYPE_8023                    = 0x4\n\tETHERTYPE_AARP                    = 0x80f3\n\tETHERTYPE_ACCTON                  = 0x8390\n\tETHERTYPE_AEONIC                  = 0x8036\n\tETHERTYPE_ALPHA                   = 0x814a\n\tETHERTYPE_AMBER                   = 0x6008\n\tETHERTYPE_AMOEBA                  = 0x8145\n\tETHERTYPE_APOLLO                  = 0x80f7\n\tETHERTYPE_APOLLODOMAIN            = 0x8019\n\tETHERTYPE_APPLETALK               = 0x809b\n\tETHERTYPE_APPLITEK                = 0x80c7\n\tETHERTYPE_ARGONAUT                = 0x803a\n\tETHERTYPE_ARP                     = 0x806\n\tETHERTYPE_AT                      = 0x809b\n\tETHERTYPE_ATALK                   = 0x809b\n\tETHERTYPE_ATOMIC                  = 0x86df\n\tETHERTYPE_ATT                     = 0x8069\n\tETHERTYPE_ATTSTANFORD             = 0x8008\n\tETHERTYPE_AUTOPHON                = 0x806a\n\tETHERTYPE_AXIS                    = 0x8856\n\tETHERTYPE_BCLOOP                  = 0x9003\n\tETHERTYPE_BOFL                    = 0x8102\n\tETHERTYPE_CABLETRON               = 0x7034\n\tETHERTYPE_CHAOS                   = 0x804\n\tETHERTYPE_COMDESIGN               = 0x806c\n\tETHERTYPE_COMPUGRAPHIC            = 0x806d\n\tETHERTYPE_COUNTERPOINT            = 0x8062\n\tETHERTYPE_CRONUS                  = 0x8004\n\tETHERTYPE_CRONUSVLN               = 0x8003\n\tETHERTYPE_DCA                     = 0x1234\n\tETHERTYPE_DDE                     = 0x807b\n\tETHERTYPE_DEBNI                   = 0xaaaa\n\tETHERTYPE_DECAM                   = 0x8048\n\tETHERTYPE_DECCUST                 = 0x6006\n\tETHERTYPE_DECDIAG                 = 0x6005\n\tETHERTYPE_DECDNS                  = 0x803c\n\tETHERTYPE_DECDTS                  = 0x803e\n\tETHERTYPE_DECEXPER                = 0x6000\n\tETHERTYPE_DECLAST                 = 0x8041\n\tETHERTYPE_DECLTM                  = 0x803f\n\tETHERTYPE_DECMUMPS                = 0x6009\n\tETHERTYPE_DECNETBIOS              = 0x8040\n\tETHERTYPE_DELTACON                = 0x86de\n\tETHERTYPE_DIDDLE                  = 0x4321\n\tETHERTYPE_DLOG1                   = 0x660\n\tETHERTYPE_DLOG2                   = 0x661\n\tETHERTYPE_DN                      = 0x6003\n\tETHERTYPE_DOGFIGHT                = 0x1989\n\tETHERTYPE_DSMD                    = 0x8039\n\tETHERTYPE_ECMA                    = 0x803\n\tETHERTYPE_ENCRYPT                 = 0x803d\n\tETHERTYPE_ES                      = 0x805d\n\tETHERTYPE_EXCELAN                 = 0x8010\n\tETHERTYPE_EXPERDATA               = 0x8049\n\tETHERTYPE_FLIP                    = 0x8146\n\tETHERTYPE_FLOWCONTROL             = 0x8808\n\tETHERTYPE_FRARP                   = 0x808\n\tETHERTYPE_GENDYN                  = 0x8068\n\tETHERTYPE_HAYES                   = 0x8130\n\tETHERTYPE_HIPPI_FP                = 0x8180\n\tETHERTYPE_HITACHI                 = 0x8820\n\tETHERTYPE_HP                      = 0x8005\n\tETHERTYPE_IEEEPUP                 = 0xa00\n\tETHERTYPE_IEEEPUPAT               = 0xa01\n\tETHERTYPE_IMLBL                   = 0x4c42\n\tETHERTYPE_IMLBLDIAG               = 0x424c\n\tETHERTYPE_IP                      = 0x800\n\tETHERTYPE_IPAS                    = 0x876c\n\tETHERTYPE_IPV6                    = 0x86dd\n\tETHERTYPE_IPX                     = 0x8137\n\tETHERTYPE_IPXNEW                  = 0x8037\n\tETHERTYPE_KALPANA                 = 0x8582\n\tETHERTYPE_LANBRIDGE               = 0x8038\n\tETHERTYPE_LANPROBE                = 0x8888\n\tETHERTYPE_LAT                     = 0x6004\n\tETHERTYPE_LBACK                   = 0x9000\n\tETHERTYPE_LITTLE                  = 0x8060\n\tETHERTYPE_LOGICRAFT               = 0x8148\n\tETHERTYPE_LOOPBACK                = 0x9000\n\tETHERTYPE_MATRA                   = 0x807a\n\tETHERTYPE_MAX                     = 0xffff\n\tETHERTYPE_MERIT                   = 0x807c\n\tETHERTYPE_MICP                    = 0x873a\n\tETHERTYPE_MOPDL                   = 0x6001\n\tETHERTYPE_MOPRC                   = 0x6002\n\tETHERTYPE_MOTOROLA                = 0x818d\n\tETHERTYPE_MPLS                    = 0x8847\n\tETHERTYPE_MPLS_MCAST              = 0x8848\n\tETHERTYPE_MUMPS                   = 0x813f\n\tETHERTYPE_NBPCC                   = 0x3c04\n\tETHERTYPE_NBPCLAIM                = 0x3c09\n\tETHERTYPE_NBPCLREQ                = 0x3c05\n\tETHERTYPE_NBPCLRSP                = 0x3c06\n\tETHERTYPE_NBPCREQ                 = 0x3c02\n\tETHERTYPE_NBPCRSP                 = 0x3c03\n\tETHERTYPE_NBPDG                   = 0x3c07\n\tETHERTYPE_NBPDGB                  = 0x3c08\n\tETHERTYPE_NBPDLTE                 = 0x3c0a\n\tETHERTYPE_NBPRAR                  = 0x3c0c\n\tETHERTYPE_NBPRAS                  = 0x3c0b\n\tETHERTYPE_NBPRST                  = 0x3c0d\n\tETHERTYPE_NBPSCD                  = 0x3c01\n\tETHERTYPE_NBPVCD                  = 0x3c00\n\tETHERTYPE_NBS                     = 0x802\n\tETHERTYPE_NCD                     = 0x8149\n\tETHERTYPE_NESTAR                  = 0x8006\n\tETHERTYPE_NETBEUI                 = 0x8191\n\tETHERTYPE_NOVELL                  = 0x8138\n\tETHERTYPE_NS                      = 0x600\n\tETHERTYPE_NSAT                    = 0x601\n\tETHERTYPE_NSCOMPAT                = 0x807\n\tETHERTYPE_NTRAILER                = 0x10\n\tETHERTYPE_OS9                     = 0x7007\n\tETHERTYPE_OS9NET                  = 0x7009\n\tETHERTYPE_PACER                   = 0x80c6\n\tETHERTYPE_PAE                     = 0x888e\n\tETHERTYPE_PCS                     = 0x4242\n\tETHERTYPE_PLANNING                = 0x8044\n\tETHERTYPE_PPP                     = 0x880b\n\tETHERTYPE_PPPOE                   = 0x8864\n\tETHERTYPE_PPPOEDISC               = 0x8863\n\tETHERTYPE_PRIMENTS                = 0x7031\n\tETHERTYPE_PUP                     = 0x200\n\tETHERTYPE_PUPAT                   = 0x200\n\tETHERTYPE_RACAL                   = 0x7030\n\tETHERTYPE_RATIONAL                = 0x8150\n\tETHERTYPE_RAWFR                   = 0x6559\n\tETHERTYPE_RCL                     = 0x1995\n\tETHERTYPE_RDP                     = 0x8739\n\tETHERTYPE_RETIX                   = 0x80f2\n\tETHERTYPE_REVARP                  = 0x8035\n\tETHERTYPE_SCA                     = 0x6007\n\tETHERTYPE_SECTRA                  = 0x86db\n\tETHERTYPE_SECUREDATA              = 0x876d\n\tETHERTYPE_SGITW                   = 0x817e\n\tETHERTYPE_SG_BOUNCE               = 0x8016\n\tETHERTYPE_SG_DIAG                 = 0x8013\n\tETHERTYPE_SG_NETGAMES             = 0x8014\n\tETHERTYPE_SG_RESV                 = 0x8015\n\tETHERTYPE_SIMNET                  = 0x5208\n\tETHERTYPE_SLOWPROTOCOLS           = 0x8809\n\tETHERTYPE_SNA                     = 0x80d5\n\tETHERTYPE_SNMP                    = 0x814c\n\tETHERTYPE_SONIX                   = 0xfaf5\n\tETHERTYPE_SPIDER                  = 0x809f\n\tETHERTYPE_SPRITE                  = 0x500\n\tETHERTYPE_STP                     = 0x8181\n\tETHERTYPE_TALARIS                 = 0x812b\n\tETHERTYPE_TALARISMC               = 0x852b\n\tETHERTYPE_TCPCOMP                 = 0x876b\n\tETHERTYPE_TCPSM                   = 0x9002\n\tETHERTYPE_TEC                     = 0x814f\n\tETHERTYPE_TIGAN                   = 0x802f\n\tETHERTYPE_TRAIL                   = 0x1000\n\tETHERTYPE_TRANSETHER              = 0x6558\n\tETHERTYPE_TYMSHARE                = 0x802e\n\tETHERTYPE_UBBST                   = 0x7005\n\tETHERTYPE_UBDEBUG                 = 0x900\n\tETHERTYPE_UBDIAGLOOP              = 0x7002\n\tETHERTYPE_UBDL                    = 0x7000\n\tETHERTYPE_UBNIU                   = 0x7001\n\tETHERTYPE_UBNMC                   = 0x7003\n\tETHERTYPE_VALID                   = 0x1600\n\tETHERTYPE_VARIAN                  = 0x80dd\n\tETHERTYPE_VAXELN                  = 0x803b\n\tETHERTYPE_VEECO                   = 0x8067\n\tETHERTYPE_VEXP                    = 0x805b\n\tETHERTYPE_VGLAB                   = 0x8131\n\tETHERTYPE_VINES                   = 0xbad\n\tETHERTYPE_VINESECHO               = 0xbaf\n\tETHERTYPE_VINESLOOP               = 0xbae\n\tETHERTYPE_VITAL                   = 0xff00\n\tETHERTYPE_VLAN                    = 0x8100\n\tETHERTYPE_VLTLMAN                 = 0x8080\n\tETHERTYPE_VPROD                   = 0x805c\n\tETHERTYPE_VURESERVED              = 0x8147\n\tETHERTYPE_WATERLOO                = 0x8130\n\tETHERTYPE_WELLFLEET               = 0x8103\n\tETHERTYPE_X25                     = 0x805\n\tETHERTYPE_X75                     = 0x801\n\tETHERTYPE_XNSSM                   = 0x9001\n\tETHERTYPE_XTP                     = 0x817d\n\tETHER_ADDR_LEN                    = 0x6\n\tETHER_CRC_LEN                     = 0x4\n\tETHER_CRC_POLY_BE                 = 0x4c11db6\n\tETHER_CRC_POLY_LE                 = 0xedb88320\n\tETHER_HDR_LEN                     = 0xe\n\tETHER_MAX_LEN                     = 0x5ee\n\tETHER_MAX_LEN_JUMBO               = 0x233a\n\tETHER_MIN_LEN                     = 0x40\n\tETHER_PPPOE_ENCAP_LEN             = 0x8\n\tETHER_TYPE_LEN                    = 0x2\n\tETHER_VLAN_ENCAP_LEN              = 0x4\n\tEVFILT_AIO                        = 0x2\n\tEVFILT_PROC                       = 0x4\n\tEVFILT_READ                       = 0x0\n\tEVFILT_SIGNAL                     = 0x5\n\tEVFILT_SYSCOUNT                   = 0x7\n\tEVFILT_TIMER                      = 0x6\n\tEVFILT_VNODE                      = 0x3\n\tEVFILT_WRITE                      = 0x1\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_SYSFLAGS                       = 0xf000\n\tEXTA                              = 0x4b00\n\tEXTATTR_CMD_START                 = 0x1\n\tEXTATTR_CMD_STOP                  = 0x2\n\tEXTATTR_NAMESPACE_SYSTEM          = 0x2\n\tEXTATTR_NAMESPACE_USER            = 0x1\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x100\n\tFLUSHO                            = 0x800000\n\tF_CLOSEM                          = 0xa\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0xc\n\tF_FSCTL                           = -0x80000000\n\tF_FSDIRMASK                       = 0x70000000\n\tF_FSIN                            = 0x10000000\n\tF_FSINOUT                         = 0x30000000\n\tF_FSOUT                           = 0x20000000\n\tF_FSPRIV                          = 0x8000\n\tF_FSVOID                          = 0x40000000\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETNOSIGPIPE                    = 0xd\n\tF_GETOWN                          = 0x5\n\tF_MAXFD                           = 0xb\n\tF_OK                              = 0x0\n\tF_PARAM_MASK                      = 0xfff\n\tF_PARAM_MAX                       = 0xfff\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETNOSIGPIPE                    = 0xe\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFA_ROUTE                         = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x8f52\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_NOTRAILERS                    = 0x20\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf8\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ECONET                        = 0xce\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf2\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INFINIBAND                    = 0xc7\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LINEGROUP                     = 0xd2\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_PON155                        = 0xcf\n\tIFT_PON622                        = 0xd0\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPATM                       = 0xc5\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf1\n\tIFT_Q2931                         = 0xc9\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SIPSIG                        = 0xcc\n\tIFT_SIPTG                         = 0xcb\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_STF                           = 0xd7\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TELINK                        = 0xc8\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VIRTUALTG                     = 0xca\n\tIFT_VOICEDID                      = 0xd5\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEEMFGD                    = 0xd3\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFGDEANA                  = 0xd4\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERCABLE                = 0xc6\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_IPV6_ICMP                 = 0x3a\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x34\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_VRRP                      = 0x70\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK               = 0xffff0f00\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_IPSEC_POLICY                 = 0x1c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_EF                             = 0x8000\n\tIP_ERRORMTU                       = 0x15\n\tIP_HDRINCL                        = 0x2\n\tIP_IPSEC_POLICY                   = 0x16\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0x14\n\tIP_MF                             = 0x2000\n\tIP_MINFRAGSIZE                    = 0x45\n\tIP_MINTTL                         = 0x18\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVIF                         = 0x14\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVTTL                        = 0x17\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x6\n\tMADV_NORMAL                       = 0x0\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SPACEAVAIL                   = 0x5\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ALIGNMENT_16MB                = 0x18000000\n\tMAP_ALIGNMENT_1TB                 = 0x28000000\n\tMAP_ALIGNMENT_256TB               = 0x30000000\n\tMAP_ALIGNMENT_4GB                 = 0x20000000\n\tMAP_ALIGNMENT_64KB                = 0x10000000\n\tMAP_ALIGNMENT_64PB                = 0x38000000\n\tMAP_ALIGNMENT_MASK                = -0x1000000\n\tMAP_ALIGNMENT_SHIFT               = 0x18\n\tMAP_ANON                          = 0x1000\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_HASSEMAPHORE                  = 0x200\n\tMAP_INHERIT                       = 0x80\n\tMAP_INHERIT_COPY                  = 0x1\n\tMAP_INHERIT_DEFAULT               = 0x1\n\tMAP_INHERIT_DONATE_COPY           = 0x3\n\tMAP_INHERIT_NONE                  = 0x2\n\tMAP_INHERIT_SHARE                 = 0x0\n\tMAP_NORESERVE                     = 0x40\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x20\n\tMAP_SHARED                        = 0x1\n\tMAP_STACK                         = 0x2000\n\tMAP_TRYFIXED                      = 0x400\n\tMAP_WIRED                         = 0x800\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_BASIC_FLAGS                   = 0xe782807f\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DISCARD                       = 0x800000\n\tMNT_EXKERB                        = 0x800\n\tMNT_EXNORESPORT                   = 0x8000000\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXPUBLIC                      = 0x10000000\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_EXTATTR                       = 0x1000000\n\tMNT_FORCE                         = 0x80000\n\tMNT_GETARGS                       = 0x400000\n\tMNT_IGNORE                        = 0x100000\n\tMNT_LAZY                          = 0x3\n\tMNT_LOCAL                         = 0x1000\n\tMNT_LOG                           = 0x2000000\n\tMNT_NOATIME                       = 0x4000000\n\tMNT_NOCOREDUMP                    = 0x8000\n\tMNT_NODEV                         = 0x10\n\tMNT_NODEVMTIME                    = 0x40000000\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOWAIT                        = 0x2\n\tMNT_OP_FLAGS                      = 0x4d0000\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELATIME                      = 0x20000\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x80000000\n\tMNT_SYMPERM                       = 0x20000000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UNION                         = 0x20\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0xff90ffff\n\tMNT_WAIT                          = 0x1\n\tMSG_BCAST                         = 0x100\n\tMSG_CMSG_CLOEXEC                  = 0x800\n\tMSG_CONTROLMBUF                   = 0x2000000\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOR                           = 0x8\n\tMSG_IOVUSRSPACE                   = 0x4000000\n\tMSG_LENUSRSPACE                   = 0x8000000\n\tMSG_MCAST                         = 0x200\n\tMSG_NAMEMBUF                      = 0x1000000\n\tMSG_NBIO                          = 0x1000\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_TRUNC                         = 0x10\n\tMSG_USERFLAGS                     = 0xffffff\n\tMSG_WAITALL                       = 0x40\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x2\n\tMS_SYNC                           = 0x4\n\tNAME_MAX                          = 0x1ff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x5\n\tNET_RT_MAXID                      = 0x6\n\tNET_RT_OIFLIST                    = 0x4\n\tNET_RT_OOIFLIST                   = 0x3\n\tNFDBITS                           = 0x20\n\tNOFLSH                            = 0x80000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tOFIOGETBMAP                       = 0xc004667a\n\tONLCR                             = 0x2\n\tONLRET                            = 0x40\n\tONOCR                             = 0x20\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tO_ACCMODE                         = 0x3\n\tO_ALT_IO                          = 0x40000\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x400000\n\tO_CREAT                           = 0x200\n\tO_DIRECT                          = 0x80000\n\tO_DIRECTORY                       = 0x200000\n\tO_DSYNC                           = 0x10000\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_NOSIGPIPE                       = 0x1000000\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_RSYNC                           = 0x20000\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPRI_IOFLUSH                       = 0x7c\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tRLIMIT_AS                         = 0xa\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BRD                          = 0x7\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_MAX                          = 0x9\n\tRTAX_NETMASK                      = 0x2\n\tRTAX_TAG                          = 0x8\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BRD                           = 0x80\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_NETMASK                       = 0x4\n\tRTA_TAG                           = 0x100\n\tRTF_ANNOUNCE                      = 0x20000\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_CLONED                        = 0x2000\n\tRTF_CLONING                       = 0x100\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_MASK                          = 0x80\n\tRTF_MODIFIED                      = 0x20\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_REJECT                        = 0x8\n\tRTF_SRC                           = 0x10000\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_XRESOLVE                      = 0x200\n\tRTM_ADD                           = 0x1\n\tRTM_CHANGE                        = 0x3\n\tRTM_CHGADDR                       = 0x15\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_GET                           = 0x4\n\tRTM_IEEE80211                     = 0x11\n\tRTM_IFANNOUNCE                    = 0x10\n\tRTM_IFINFO                        = 0x14\n\tRTM_LLINFO_UPD                    = 0x13\n\tRTM_LOCK                          = 0x8\n\tRTM_LOSING                        = 0x5\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_OIFINFO                       = 0xf\n\tRTM_OLDADD                        = 0x9\n\tRTM_OLDDEL                        = 0xa\n\tRTM_OOIFINFO                      = 0xe\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_RTTUNIT                       = 0xf4240\n\tRTM_SETGATE                       = 0x12\n\tRTM_VERSION                       = 0x4\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tSCM_CREDS                         = 0x4\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x8\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80906931\n\tSIOCADDRT                         = 0x8030720a\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCALIFADDR                      = 0x8118691c\n\tSIOCATMARK                        = 0x40047307\n\tSIOCDELMULTI                      = 0x80906932\n\tSIOCDELRT                         = 0x8030720b\n\tSIOCDIFADDR                       = 0x80906919\n\tSIOCDIFPHYADDR                    = 0x80906949\n\tSIOCDLIFADDR                      = 0x8118691e\n\tSIOCGDRVSPEC                      = 0xc01c697b\n\tSIOCGETPFSYNC                     = 0xc09069f8\n\tSIOCGETSGCNT                      = 0xc0147534\n\tSIOCGETVIFCNT                     = 0xc0147533\n\tSIOCGHIWAT                        = 0x40047301\n\tSIOCGIFADDR                       = 0xc0906921\n\tSIOCGIFADDRPREF                   = 0xc0946920\n\tSIOCGIFALIAS                      = 0xc040691b\n\tSIOCGIFBRDADDR                    = 0xc0906923\n\tSIOCGIFCAP                        = 0xc0206976\n\tSIOCGIFCONF                       = 0xc0086926\n\tSIOCGIFDATA                       = 0xc0946985\n\tSIOCGIFDLT                        = 0xc0906977\n\tSIOCGIFDSTADDR                    = 0xc0906922\n\tSIOCGIFFLAGS                      = 0xc0906911\n\tSIOCGIFGENERIC                    = 0xc090693a\n\tSIOCGIFMEDIA                      = 0xc0286936\n\tSIOCGIFMETRIC                     = 0xc0906917\n\tSIOCGIFMTU                        = 0xc090697e\n\tSIOCGIFNETMASK                    = 0xc0906925\n\tSIOCGIFPDSTADDR                   = 0xc0906948\n\tSIOCGIFPSRCADDR                   = 0xc0906947\n\tSIOCGLIFADDR                      = 0xc118691d\n\tSIOCGLIFPHYADDR                   = 0xc118694b\n\tSIOCGLINKSTR                      = 0xc01c6987\n\tSIOCGLOWAT                        = 0x40047303\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGVH                           = 0xc0906983\n\tSIOCIFCREATE                      = 0x8090697a\n\tSIOCIFDESTROY                     = 0x80906979\n\tSIOCIFGCLONERS                    = 0xc00c6978\n\tSIOCINITIFADDR                    = 0xc0446984\n\tSIOCSDRVSPEC                      = 0x801c697b\n\tSIOCSETPFSYNC                     = 0x809069f7\n\tSIOCSHIWAT                        = 0x80047300\n\tSIOCSIFADDR                       = 0x8090690c\n\tSIOCSIFADDRPREF                   = 0x8094691f\n\tSIOCSIFBRDADDR                    = 0x80906913\n\tSIOCSIFCAP                        = 0x80206975\n\tSIOCSIFDSTADDR                    = 0x8090690e\n\tSIOCSIFFLAGS                      = 0x80906910\n\tSIOCSIFGENERIC                    = 0x80906939\n\tSIOCSIFMEDIA                      = 0xc0906935\n\tSIOCSIFMETRIC                     = 0x80906918\n\tSIOCSIFMTU                        = 0x8090697f\n\tSIOCSIFNETMASK                    = 0x80906916\n\tSIOCSIFPHYADDR                    = 0x80406946\n\tSIOCSLIFPHYADDR                   = 0x8118694a\n\tSIOCSLINKSTR                      = 0x801c6988\n\tSIOCSLOWAT                        = 0x80047302\n\tSIOCSPGRP                         = 0x80047308\n\tSIOCSVH                           = 0xc0906982\n\tSIOCZIFDATA                       = 0xc0946986\n\tSOCK_CLOEXEC                      = 0x10000000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_FLAGS_MASK                   = 0xf0000000\n\tSOCK_NONBLOCK                     = 0x20000000\n\tSOCK_NOSIGPIPE                    = 0x40000000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_ACCEPTFILTER                   = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NOHEADER                       = 0x100a\n\tSO_NOSIGPIPE                      = 0x800\n\tSO_OOBINLINE                      = 0x100\n\tSO_OVERFLOWED                     = 0x1009\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x100c\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x100b\n\tSO_TIMESTAMP                      = 0x2000\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tSYSCTL_VERSION                    = 0x1000000\n\tSYSCTL_VERS_0                     = 0x0\n\tSYSCTL_VERS_1                     = 0x1000000\n\tSYSCTL_VERS_MASK                  = 0xff000000\n\tS_ARCH1                           = 0x10000\n\tS_ARCH2                           = 0x20000\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IFWHT                           = 0xe000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tS_LOGIN_SET                       = 0x1\n\tTCIFLUSH                          = 0x1\n\tTCIOFLUSH                         = 0x3\n\tTCOFLUSH                          = 0x2\n\tTCP_CONGCTL                       = 0x20\n\tTCP_KEEPCNT                       = 0x6\n\tTCP_KEEPIDLE                      = 0x3\n\tTCP_KEEPINIT                      = 0x7\n\tTCP_KEEPINTVL                     = 0x5\n\tTCP_MAXBURST                      = 0x4\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MD5SIG                        = 0x10\n\tTCP_MINMSS                        = 0xd8\n\tTCP_MSS                           = 0x218\n\tTCP_NODELAY                       = 0x1\n\tTCSAFLUSH                         = 0x2\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCONS                          = 0x80047462\n\tTIOCDCDTIMESTAMP                  = 0x400c7458\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLAG_CDTRCTS                  = 0x10\n\tTIOCFLAG_CLOCAL                   = 0x2\n\tTIOCFLAG_CRTSCTS                  = 0x4\n\tTIOCFLAG_MDMBUF                   = 0x8\n\tTIOCFLAG_SOFTCAR                  = 0x1\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGFLAGS                        = 0x4004745d\n\tTIOCGLINED                        = 0x40207442\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGQSIZE                        = 0x40047481\n\tTIOCGRANTPT                       = 0x20007447\n\tTIOCGSID                          = 0x40047463\n\tTIOCGSIZE                         = 0x40087468\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCPTMGET                        = 0x40287446\n\tTIOCPTSNAME                       = 0x40287448\n\tTIOCRCVFRAME                      = 0x80047445\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSFLAGS                        = 0x8004745c\n\tTIOCSIG                           = 0x2000745f\n\tTIOCSLINED                        = 0x80207443\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSQSIZE                        = 0x80047480\n\tTIOCSSIZE                         = 0x80087467\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x80047465\n\tTIOCSTI                           = 0x80017472\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCUCNTL                         = 0x80047466\n\tTIOCXMTFRAME                      = 0x80047444\n\tTOSTOP                            = 0x400000\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWALL                              = 0x8\n\tWALLSIG                           = 0x8\n\tWALTSIG                           = 0x4\n\tWCLONE                            = 0x4\n\tWCOREFLAG                         = 0x80\n\tWNOHANG                           = 0x1\n\tWNOWAIT                           = 0x10000\n\tWNOZOMBIE                         = 0x20000\n\tWOPTSCHECKED                      = 0x40000\n\tWSTOPPED                          = 0x7f\n\tWUNTRACED                         = 0x2\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x58)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x57)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x52)\n\tEILSEQ          = syscall.Errno(0x55)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x60)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5e)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x5d)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODATA         = syscall.Errno(0x59)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x5f)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x53)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x5a)\n\tENOSTR          = syscall.Errno(0x5b)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x56)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x60)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIME           = syscall.Errno(0x5c)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x20)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large or too small\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol option not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"connection timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIDRM\", \"identifier removed\"},\n\t{83, \"ENOMSG\", \"no message of desired type\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"EILSEQ\", \"illegal byte sequence\"},\n\t{86, \"ENOTSUP\", \"not supported\"},\n\t{87, \"ECANCELED\", \"operation Canceled\"},\n\t{88, \"EBADMSG\", \"bad or Corrupt message\"},\n\t{89, \"ENODATA\", \"no message available\"},\n\t{90, \"ENOSR\", \"no STREAM resources\"},\n\t{91, \"ENOSTR\", \"not a STREAM\"},\n\t{92, \"ETIME\", \"STREAM ioctl timeout\"},\n\t{93, \"ENOATTR\", \"attribute not found\"},\n\t{94, \"EMULTIHOP\", \"multihop attempted\"},\n\t{95, \"ENOLINK\", \"link has been severed\"},\n\t{96, \"ELAST\", \"protocol error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"stopped (signal)\"},\n\t{18, \"SIGTSTP\", \"stopped\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGPWR\", \"power fail/restart\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && netbsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_ARP                            = 0x1c\n\tAF_BLUETOOTH                      = 0x1f\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_HYLINK                         = 0xf\n\tAF_IEEE80211                      = 0x20\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x18\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x23\n\tAF_MPLS                           = 0x21\n\tAF_NATM                           = 0x1b\n\tAF_NS                             = 0x6\n\tAF_OROUTE                         = 0x11\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x22\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tARPHRD_ARCNET                     = 0x7\n\tARPHRD_ETHER                      = 0x1\n\tARPHRD_FRELAY                     = 0xf\n\tARPHRD_IEEE1394                   = 0x18\n\tARPHRD_IEEE802                    = 0x6\n\tARPHRD_STRIP                      = 0x17\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB460800                           = 0x70800\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB921600                           = 0xe1000\n\tB9600                             = 0x2580\n\tBIOCFEEDBACK                      = 0x8004427d\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc0104277\n\tBIOCGETIF                         = 0x4090426b\n\tBIOCGFEEDBACK                     = 0x4004427c\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRTIMEOUT                     = 0x4010427b\n\tBIOCGSEESENT                      = 0x40044278\n\tBIOCGSTATS                        = 0x4080426f\n\tBIOCGSTATSOLD                     = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDLT                          = 0x80044276\n\tBIOCSETF                          = 0x80104267\n\tBIOCSETIF                         = 0x8090426c\n\tBIOCSFEEDBACK                     = 0x8004427d\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRTIMEOUT                     = 0x8010427a\n\tBIOCSSEESENT                      = 0x80044279\n\tBIOCSTCPF                         = 0x80104272\n\tBIOCSUDPF                         = 0x80104273\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x8\n\tBPF_ALIGNMENT32                   = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DFLTBUFSIZE                   = 0x100000\n\tBPF_DIV                           = 0x30\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x1000000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCLONE_CSIGNAL                     = 0xff\n\tCLONE_FILES                       = 0x400\n\tCLONE_FS                          = 0x200\n\tCLONE_PID                         = 0x1000\n\tCLONE_PTRACE                      = 0x2000\n\tCLONE_SIGHAND                     = 0x800\n\tCLONE_VFORK                       = 0x4000\n\tCLONE_VM                          = 0x100\n\tCPUSTATES                         = 0x5\n\tCP_IDLE                           = 0x4\n\tCP_INTR                           = 0x3\n\tCP_NICE                           = 0x1\n\tCP_SYS                            = 0x2\n\tCP_USER                           = 0x0\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x10000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0x14\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tCTL_QUERY                         = -0x2\n\tDIOCBSFLUSH                       = 0x20006478\n\tDLT_A429                          = 0xb8\n\tDLT_A653_ICM                      = 0xb9\n\tDLT_AIRONET_HEADER                = 0x78\n\tDLT_AOS                           = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394        = 0x8a\n\tDLT_ARCNET                        = 0x7\n\tDLT_ARCNET_LINUX                  = 0x81\n\tDLT_ATM_CLIP                      = 0x13\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AURORA                        = 0x7e\n\tDLT_AX25                          = 0x3\n\tDLT_AX25_KISS                     = 0xca\n\tDLT_BACNET_MS_TP                  = 0xa5\n\tDLT_BLUETOOTH_HCI_H4              = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR    = 0xc9\n\tDLT_CAN20B                        = 0xbe\n\tDLT_CAN_SOCKETCAN                 = 0xe3\n\tDLT_CHAOS                         = 0x5\n\tDLT_CISCO_IOS                     = 0x76\n\tDLT_C_HDLC                        = 0x68\n\tDLT_C_HDLC_WITH_DIR               = 0xcd\n\tDLT_DECT                          = 0xdd\n\tDLT_DOCSIS                        = 0x8f\n\tDLT_ECONET                        = 0x73\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0x6d\n\tDLT_ERF                           = 0xc5\n\tDLT_ERF_ETH                       = 0xaf\n\tDLT_ERF_POS                       = 0xb0\n\tDLT_FC_2                          = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS        = 0xe1\n\tDLT_FDDI                          = 0xa\n\tDLT_FLEXRAY                       = 0xd2\n\tDLT_FRELAY                        = 0x6b\n\tDLT_FRELAY_WITH_DIR               = 0xce\n\tDLT_GCOM_SERIAL                   = 0xad\n\tDLT_GCOM_T1E1                     = 0xac\n\tDLT_GPF_F                         = 0xab\n\tDLT_GPF_T                         = 0xaa\n\tDLT_GPRS_LLC                      = 0xa9\n\tDLT_GSMTAP_ABIS                   = 0xda\n\tDLT_GSMTAP_UM                     = 0xd9\n\tDLT_HDLC                          = 0x10\n\tDLT_HHDLC                         = 0x79\n\tDLT_HIPPI                         = 0xf\n\tDLT_IBM_SN                        = 0x92\n\tDLT_IBM_SP                        = 0x91\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS          = 0xa3\n\tDLT_IEEE802_15_4                  = 0xc3\n\tDLT_IEEE802_15_4_LINUX            = 0xbf\n\tDLT_IEEE802_15_4_NONASK_PHY       = 0xd7\n\tDLT_IEEE802_16_MAC_CPS            = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO      = 0xc1\n\tDLT_IPMB                          = 0xc7\n\tDLT_IPMB_LINUX                    = 0xd1\n\tDLT_IPNET                         = 0xe2\n\tDLT_IPV4                          = 0xe4\n\tDLT_IPV6                          = 0xe5\n\tDLT_IP_OVER_FC                    = 0x7a\n\tDLT_JUNIPER_ATM1                  = 0x89\n\tDLT_JUNIPER_ATM2                  = 0x87\n\tDLT_JUNIPER_CHDLC                 = 0xb5\n\tDLT_JUNIPER_ES                    = 0x84\n\tDLT_JUNIPER_ETHER                 = 0xb2\n\tDLT_JUNIPER_FRELAY                = 0xb4\n\tDLT_JUNIPER_GGSN                  = 0x85\n\tDLT_JUNIPER_ISM                   = 0xc2\n\tDLT_JUNIPER_MFR                   = 0x86\n\tDLT_JUNIPER_MLFR                  = 0x83\n\tDLT_JUNIPER_MLPPP                 = 0x82\n\tDLT_JUNIPER_MONITOR               = 0xa4\n\tDLT_JUNIPER_PIC_PEER              = 0xae\n\tDLT_JUNIPER_PPP                   = 0xb3\n\tDLT_JUNIPER_PPPOE                 = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM             = 0xa8\n\tDLT_JUNIPER_SERVICES              = 0x88\n\tDLT_JUNIPER_ST                    = 0xc8\n\tDLT_JUNIPER_VP                    = 0xb7\n\tDLT_LAPB_WITH_DIR                 = 0xcf\n\tDLT_LAPD                          = 0xcb\n\tDLT_LIN                           = 0xd4\n\tDLT_LINUX_EVDEV                   = 0xd8\n\tDLT_LINUX_IRDA                    = 0x90\n\tDLT_LINUX_LAPD                    = 0xb1\n\tDLT_LINUX_SLL                     = 0x71\n\tDLT_LOOP                          = 0x6c\n\tDLT_LTALK                         = 0x72\n\tDLT_MFR                           = 0xb6\n\tDLT_MOST                          = 0xd3\n\tDLT_MPLS                          = 0xdb\n\tDLT_MTP2                          = 0x8c\n\tDLT_MTP2_WITH_PHDR                = 0x8b\n\tDLT_MTP3                          = 0x8d\n\tDLT_NULL                          = 0x0\n\tDLT_PCI_EXP                       = 0x7d\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPI                           = 0xc0\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0xe\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_PPPD                      = 0xa6\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PPP_WITH_DIR                  = 0xcc\n\tDLT_PRISM_HEADER                  = 0x77\n\tDLT_PRONET                        = 0x4\n\tDLT_RAIF1                         = 0xc6\n\tDLT_RAW                           = 0xc\n\tDLT_RAWAF_MASK                    = 0x2240000\n\tDLT_RIO                           = 0x7c\n\tDLT_SCCP                          = 0x8e\n\tDLT_SITA                          = 0xc4\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xd\n\tDLT_SUNATM                        = 0x7b\n\tDLT_SYMANTEC_FIREWALL             = 0x63\n\tDLT_TZSP                          = 0x80\n\tDLT_USB                           = 0xba\n\tDLT_USB_LINUX                     = 0xbd\n\tDLT_USB_LINUX_MMAPPED             = 0xdc\n\tDLT_WIHART                        = 0xdf\n\tDLT_X2E_SERIAL                    = 0xd5\n\tDLT_X2E_XORAYA                    = 0xd6\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tDT_WHT                            = 0xe\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEMUL_LINUX                        = 0x1\n\tEMUL_LINUX32                      = 0x5\n\tEMUL_MAXID                        = 0x6\n\tETHERCAP_JUMBO_MTU                = 0x4\n\tETHERCAP_VLAN_HWTAGGING           = 0x2\n\tETHERCAP_VLAN_MTU                 = 0x1\n\tETHERMIN                          = 0x2e\n\tETHERMTU                          = 0x5dc\n\tETHERMTU_JUMBO                    = 0x2328\n\tETHERTYPE_8023                    = 0x4\n\tETHERTYPE_AARP                    = 0x80f3\n\tETHERTYPE_ACCTON                  = 0x8390\n\tETHERTYPE_AEONIC                  = 0x8036\n\tETHERTYPE_ALPHA                   = 0x814a\n\tETHERTYPE_AMBER                   = 0x6008\n\tETHERTYPE_AMOEBA                  = 0x8145\n\tETHERTYPE_APOLLO                  = 0x80f7\n\tETHERTYPE_APOLLODOMAIN            = 0x8019\n\tETHERTYPE_APPLETALK               = 0x809b\n\tETHERTYPE_APPLITEK                = 0x80c7\n\tETHERTYPE_ARGONAUT                = 0x803a\n\tETHERTYPE_ARP                     = 0x806\n\tETHERTYPE_AT                      = 0x809b\n\tETHERTYPE_ATALK                   = 0x809b\n\tETHERTYPE_ATOMIC                  = 0x86df\n\tETHERTYPE_ATT                     = 0x8069\n\tETHERTYPE_ATTSTANFORD             = 0x8008\n\tETHERTYPE_AUTOPHON                = 0x806a\n\tETHERTYPE_AXIS                    = 0x8856\n\tETHERTYPE_BCLOOP                  = 0x9003\n\tETHERTYPE_BOFL                    = 0x8102\n\tETHERTYPE_CABLETRON               = 0x7034\n\tETHERTYPE_CHAOS                   = 0x804\n\tETHERTYPE_COMDESIGN               = 0x806c\n\tETHERTYPE_COMPUGRAPHIC            = 0x806d\n\tETHERTYPE_COUNTERPOINT            = 0x8062\n\tETHERTYPE_CRONUS                  = 0x8004\n\tETHERTYPE_CRONUSVLN               = 0x8003\n\tETHERTYPE_DCA                     = 0x1234\n\tETHERTYPE_DDE                     = 0x807b\n\tETHERTYPE_DEBNI                   = 0xaaaa\n\tETHERTYPE_DECAM                   = 0x8048\n\tETHERTYPE_DECCUST                 = 0x6006\n\tETHERTYPE_DECDIAG                 = 0x6005\n\tETHERTYPE_DECDNS                  = 0x803c\n\tETHERTYPE_DECDTS                  = 0x803e\n\tETHERTYPE_DECEXPER                = 0x6000\n\tETHERTYPE_DECLAST                 = 0x8041\n\tETHERTYPE_DECLTM                  = 0x803f\n\tETHERTYPE_DECMUMPS                = 0x6009\n\tETHERTYPE_DECNETBIOS              = 0x8040\n\tETHERTYPE_DELTACON                = 0x86de\n\tETHERTYPE_DIDDLE                  = 0x4321\n\tETHERTYPE_DLOG1                   = 0x660\n\tETHERTYPE_DLOG2                   = 0x661\n\tETHERTYPE_DN                      = 0x6003\n\tETHERTYPE_DOGFIGHT                = 0x1989\n\tETHERTYPE_DSMD                    = 0x8039\n\tETHERTYPE_ECMA                    = 0x803\n\tETHERTYPE_ENCRYPT                 = 0x803d\n\tETHERTYPE_ES                      = 0x805d\n\tETHERTYPE_EXCELAN                 = 0x8010\n\tETHERTYPE_EXPERDATA               = 0x8049\n\tETHERTYPE_FLIP                    = 0x8146\n\tETHERTYPE_FLOWCONTROL             = 0x8808\n\tETHERTYPE_FRARP                   = 0x808\n\tETHERTYPE_GENDYN                  = 0x8068\n\tETHERTYPE_HAYES                   = 0x8130\n\tETHERTYPE_HIPPI_FP                = 0x8180\n\tETHERTYPE_HITACHI                 = 0x8820\n\tETHERTYPE_HP                      = 0x8005\n\tETHERTYPE_IEEEPUP                 = 0xa00\n\tETHERTYPE_IEEEPUPAT               = 0xa01\n\tETHERTYPE_IMLBL                   = 0x4c42\n\tETHERTYPE_IMLBLDIAG               = 0x424c\n\tETHERTYPE_IP                      = 0x800\n\tETHERTYPE_IPAS                    = 0x876c\n\tETHERTYPE_IPV6                    = 0x86dd\n\tETHERTYPE_IPX                     = 0x8137\n\tETHERTYPE_IPXNEW                  = 0x8037\n\tETHERTYPE_KALPANA                 = 0x8582\n\tETHERTYPE_LANBRIDGE               = 0x8038\n\tETHERTYPE_LANPROBE                = 0x8888\n\tETHERTYPE_LAT                     = 0x6004\n\tETHERTYPE_LBACK                   = 0x9000\n\tETHERTYPE_LITTLE                  = 0x8060\n\tETHERTYPE_LOGICRAFT               = 0x8148\n\tETHERTYPE_LOOPBACK                = 0x9000\n\tETHERTYPE_MATRA                   = 0x807a\n\tETHERTYPE_MAX                     = 0xffff\n\tETHERTYPE_MERIT                   = 0x807c\n\tETHERTYPE_MICP                    = 0x873a\n\tETHERTYPE_MOPDL                   = 0x6001\n\tETHERTYPE_MOPRC                   = 0x6002\n\tETHERTYPE_MOTOROLA                = 0x818d\n\tETHERTYPE_MPLS                    = 0x8847\n\tETHERTYPE_MPLS_MCAST              = 0x8848\n\tETHERTYPE_MUMPS                   = 0x813f\n\tETHERTYPE_NBPCC                   = 0x3c04\n\tETHERTYPE_NBPCLAIM                = 0x3c09\n\tETHERTYPE_NBPCLREQ                = 0x3c05\n\tETHERTYPE_NBPCLRSP                = 0x3c06\n\tETHERTYPE_NBPCREQ                 = 0x3c02\n\tETHERTYPE_NBPCRSP                 = 0x3c03\n\tETHERTYPE_NBPDG                   = 0x3c07\n\tETHERTYPE_NBPDGB                  = 0x3c08\n\tETHERTYPE_NBPDLTE                 = 0x3c0a\n\tETHERTYPE_NBPRAR                  = 0x3c0c\n\tETHERTYPE_NBPRAS                  = 0x3c0b\n\tETHERTYPE_NBPRST                  = 0x3c0d\n\tETHERTYPE_NBPSCD                  = 0x3c01\n\tETHERTYPE_NBPVCD                  = 0x3c00\n\tETHERTYPE_NBS                     = 0x802\n\tETHERTYPE_NCD                     = 0x8149\n\tETHERTYPE_NESTAR                  = 0x8006\n\tETHERTYPE_NETBEUI                 = 0x8191\n\tETHERTYPE_NOVELL                  = 0x8138\n\tETHERTYPE_NS                      = 0x600\n\tETHERTYPE_NSAT                    = 0x601\n\tETHERTYPE_NSCOMPAT                = 0x807\n\tETHERTYPE_NTRAILER                = 0x10\n\tETHERTYPE_OS9                     = 0x7007\n\tETHERTYPE_OS9NET                  = 0x7009\n\tETHERTYPE_PACER                   = 0x80c6\n\tETHERTYPE_PAE                     = 0x888e\n\tETHERTYPE_PCS                     = 0x4242\n\tETHERTYPE_PLANNING                = 0x8044\n\tETHERTYPE_PPP                     = 0x880b\n\tETHERTYPE_PPPOE                   = 0x8864\n\tETHERTYPE_PPPOEDISC               = 0x8863\n\tETHERTYPE_PRIMENTS                = 0x7031\n\tETHERTYPE_PUP                     = 0x200\n\tETHERTYPE_PUPAT                   = 0x200\n\tETHERTYPE_RACAL                   = 0x7030\n\tETHERTYPE_RATIONAL                = 0x8150\n\tETHERTYPE_RAWFR                   = 0x6559\n\tETHERTYPE_RCL                     = 0x1995\n\tETHERTYPE_RDP                     = 0x8739\n\tETHERTYPE_RETIX                   = 0x80f2\n\tETHERTYPE_REVARP                  = 0x8035\n\tETHERTYPE_SCA                     = 0x6007\n\tETHERTYPE_SECTRA                  = 0x86db\n\tETHERTYPE_SECUREDATA              = 0x876d\n\tETHERTYPE_SGITW                   = 0x817e\n\tETHERTYPE_SG_BOUNCE               = 0x8016\n\tETHERTYPE_SG_DIAG                 = 0x8013\n\tETHERTYPE_SG_NETGAMES             = 0x8014\n\tETHERTYPE_SG_RESV                 = 0x8015\n\tETHERTYPE_SIMNET                  = 0x5208\n\tETHERTYPE_SLOWPROTOCOLS           = 0x8809\n\tETHERTYPE_SNA                     = 0x80d5\n\tETHERTYPE_SNMP                    = 0x814c\n\tETHERTYPE_SONIX                   = 0xfaf5\n\tETHERTYPE_SPIDER                  = 0x809f\n\tETHERTYPE_SPRITE                  = 0x500\n\tETHERTYPE_STP                     = 0x8181\n\tETHERTYPE_TALARIS                 = 0x812b\n\tETHERTYPE_TALARISMC               = 0x852b\n\tETHERTYPE_TCPCOMP                 = 0x876b\n\tETHERTYPE_TCPSM                   = 0x9002\n\tETHERTYPE_TEC                     = 0x814f\n\tETHERTYPE_TIGAN                   = 0x802f\n\tETHERTYPE_TRAIL                   = 0x1000\n\tETHERTYPE_TRANSETHER              = 0x6558\n\tETHERTYPE_TYMSHARE                = 0x802e\n\tETHERTYPE_UBBST                   = 0x7005\n\tETHERTYPE_UBDEBUG                 = 0x900\n\tETHERTYPE_UBDIAGLOOP              = 0x7002\n\tETHERTYPE_UBDL                    = 0x7000\n\tETHERTYPE_UBNIU                   = 0x7001\n\tETHERTYPE_UBNMC                   = 0x7003\n\tETHERTYPE_VALID                   = 0x1600\n\tETHERTYPE_VARIAN                  = 0x80dd\n\tETHERTYPE_VAXELN                  = 0x803b\n\tETHERTYPE_VEECO                   = 0x8067\n\tETHERTYPE_VEXP                    = 0x805b\n\tETHERTYPE_VGLAB                   = 0x8131\n\tETHERTYPE_VINES                   = 0xbad\n\tETHERTYPE_VINESECHO               = 0xbaf\n\tETHERTYPE_VINESLOOP               = 0xbae\n\tETHERTYPE_VITAL                   = 0xff00\n\tETHERTYPE_VLAN                    = 0x8100\n\tETHERTYPE_VLTLMAN                 = 0x8080\n\tETHERTYPE_VPROD                   = 0x805c\n\tETHERTYPE_VURESERVED              = 0x8147\n\tETHERTYPE_WATERLOO                = 0x8130\n\tETHERTYPE_WELLFLEET               = 0x8103\n\tETHERTYPE_X25                     = 0x805\n\tETHERTYPE_X75                     = 0x801\n\tETHERTYPE_XNSSM                   = 0x9001\n\tETHERTYPE_XTP                     = 0x817d\n\tETHER_ADDR_LEN                    = 0x6\n\tETHER_CRC_LEN                     = 0x4\n\tETHER_CRC_POLY_BE                 = 0x4c11db6\n\tETHER_CRC_POLY_LE                 = 0xedb88320\n\tETHER_HDR_LEN                     = 0xe\n\tETHER_MAX_LEN                     = 0x5ee\n\tETHER_MAX_LEN_JUMBO               = 0x233a\n\tETHER_MIN_LEN                     = 0x40\n\tETHER_PPPOE_ENCAP_LEN             = 0x8\n\tETHER_TYPE_LEN                    = 0x2\n\tETHER_VLAN_ENCAP_LEN              = 0x4\n\tEVFILT_AIO                        = 0x2\n\tEVFILT_PROC                       = 0x4\n\tEVFILT_READ                       = 0x0\n\tEVFILT_SIGNAL                     = 0x5\n\tEVFILT_SYSCOUNT                   = 0x7\n\tEVFILT_TIMER                      = 0x6\n\tEVFILT_VNODE                      = 0x3\n\tEVFILT_WRITE                      = 0x1\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_SYSFLAGS                       = 0xf000\n\tEXTA                              = 0x4b00\n\tEXTATTR_CMD_START                 = 0x1\n\tEXTATTR_CMD_STOP                  = 0x2\n\tEXTATTR_NAMESPACE_SYSTEM          = 0x2\n\tEXTATTR_NAMESPACE_USER            = 0x1\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x100\n\tFLUSHO                            = 0x800000\n\tF_CLOSEM                          = 0xa\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0xc\n\tF_FSCTL                           = -0x80000000\n\tF_FSDIRMASK                       = 0x70000000\n\tF_FSIN                            = 0x10000000\n\tF_FSINOUT                         = 0x30000000\n\tF_FSOUT                           = 0x20000000\n\tF_FSPRIV                          = 0x8000\n\tF_FSVOID                          = 0x40000000\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETNOSIGPIPE                    = 0xd\n\tF_GETOWN                          = 0x5\n\tF_MAXFD                           = 0xb\n\tF_OK                              = 0x0\n\tF_PARAM_MASK                      = 0xfff\n\tF_PARAM_MAX                       = 0xfff\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETNOSIGPIPE                    = 0xe\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFA_ROUTE                         = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x8f52\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_NOTRAILERS                    = 0x20\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf8\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ECONET                        = 0xce\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf2\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INFINIBAND                    = 0xc7\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LINEGROUP                     = 0xd2\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_PON155                        = 0xcf\n\tIFT_PON622                        = 0xd0\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPATM                       = 0xc5\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf1\n\tIFT_Q2931                         = 0xc9\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SIPSIG                        = 0xcc\n\tIFT_SIPTG                         = 0xcb\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_STF                           = 0xd7\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TELINK                        = 0xc8\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VIRTUALTG                     = 0xca\n\tIFT_VOICEDID                      = 0xd5\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEEMFGD                    = 0xd3\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFGDEANA                  = 0xd4\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERCABLE                = 0xc6\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_IPV6_ICMP                 = 0x3a\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x34\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_VRRP                      = 0x70\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK               = 0xffff0f00\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_IPSEC_POLICY                 = 0x1c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_EF                             = 0x8000\n\tIP_ERRORMTU                       = 0x15\n\tIP_HDRINCL                        = 0x2\n\tIP_IPSEC_POLICY                   = 0x16\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0x14\n\tIP_MF                             = 0x2000\n\tIP_MINFRAGSIZE                    = 0x45\n\tIP_MINTTL                         = 0x18\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVIF                         = 0x14\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVTTL                        = 0x17\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x6\n\tMADV_NORMAL                       = 0x0\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SPACEAVAIL                   = 0x5\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ALIGNMENT_16MB                = 0x18000000\n\tMAP_ALIGNMENT_1TB                 = 0x28000000\n\tMAP_ALIGNMENT_256TB               = 0x30000000\n\tMAP_ALIGNMENT_4GB                 = 0x20000000\n\tMAP_ALIGNMENT_64KB                = 0x10000000\n\tMAP_ALIGNMENT_64PB                = 0x38000000\n\tMAP_ALIGNMENT_MASK                = -0x1000000\n\tMAP_ALIGNMENT_SHIFT               = 0x18\n\tMAP_ANON                          = 0x1000\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_HASSEMAPHORE                  = 0x200\n\tMAP_INHERIT                       = 0x80\n\tMAP_INHERIT_COPY                  = 0x1\n\tMAP_INHERIT_DEFAULT               = 0x1\n\tMAP_INHERIT_DONATE_COPY           = 0x3\n\tMAP_INHERIT_NONE                  = 0x2\n\tMAP_INHERIT_SHARE                 = 0x0\n\tMAP_NORESERVE                     = 0x40\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x20\n\tMAP_SHARED                        = 0x1\n\tMAP_STACK                         = 0x2000\n\tMAP_TRYFIXED                      = 0x400\n\tMAP_WIRED                         = 0x800\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_BASIC_FLAGS                   = 0xe782807f\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DISCARD                       = 0x800000\n\tMNT_EXKERB                        = 0x800\n\tMNT_EXNORESPORT                   = 0x8000000\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXPUBLIC                      = 0x10000000\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_EXTATTR                       = 0x1000000\n\tMNT_FORCE                         = 0x80000\n\tMNT_GETARGS                       = 0x400000\n\tMNT_IGNORE                        = 0x100000\n\tMNT_LAZY                          = 0x3\n\tMNT_LOCAL                         = 0x1000\n\tMNT_LOG                           = 0x2000000\n\tMNT_NOATIME                       = 0x4000000\n\tMNT_NOCOREDUMP                    = 0x8000\n\tMNT_NODEV                         = 0x10\n\tMNT_NODEVMTIME                    = 0x40000000\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOWAIT                        = 0x2\n\tMNT_OP_FLAGS                      = 0x4d0000\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELATIME                      = 0x20000\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x80000000\n\tMNT_SYMPERM                       = 0x20000000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UNION                         = 0x20\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0xff90ffff\n\tMNT_WAIT                          = 0x1\n\tMSG_BCAST                         = 0x100\n\tMSG_CMSG_CLOEXEC                  = 0x800\n\tMSG_CONTROLMBUF                   = 0x2000000\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOR                           = 0x8\n\tMSG_IOVUSRSPACE                   = 0x4000000\n\tMSG_LENUSRSPACE                   = 0x8000000\n\tMSG_MCAST                         = 0x200\n\tMSG_NAMEMBUF                      = 0x1000000\n\tMSG_NBIO                          = 0x1000\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_TRUNC                         = 0x10\n\tMSG_USERFLAGS                     = 0xffffff\n\tMSG_WAITALL                       = 0x40\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x2\n\tMS_SYNC                           = 0x4\n\tNAME_MAX                          = 0x1ff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x5\n\tNET_RT_MAXID                      = 0x6\n\tNET_RT_OIFLIST                    = 0x4\n\tNET_RT_OOIFLIST                   = 0x3\n\tNFDBITS                           = 0x20\n\tNOFLSH                            = 0x80000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tOFIOGETBMAP                       = 0xc004667a\n\tONLCR                             = 0x2\n\tONLRET                            = 0x40\n\tONOCR                             = 0x20\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tO_ACCMODE                         = 0x3\n\tO_ALT_IO                          = 0x40000\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x400000\n\tO_CREAT                           = 0x200\n\tO_DIRECT                          = 0x80000\n\tO_DIRECTORY                       = 0x200000\n\tO_DSYNC                           = 0x10000\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_NOSIGPIPE                       = 0x1000000\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_RSYNC                           = 0x20000\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPRI_IOFLUSH                       = 0x7c\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tRLIMIT_AS                         = 0xa\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BRD                          = 0x7\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_MAX                          = 0x9\n\tRTAX_NETMASK                      = 0x2\n\tRTAX_TAG                          = 0x8\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BRD                           = 0x80\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_NETMASK                       = 0x4\n\tRTA_TAG                           = 0x100\n\tRTF_ANNOUNCE                      = 0x20000\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_CLONED                        = 0x2000\n\tRTF_CLONING                       = 0x100\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_MASK                          = 0x80\n\tRTF_MODIFIED                      = 0x20\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_REJECT                        = 0x8\n\tRTF_SRC                           = 0x10000\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_XRESOLVE                      = 0x200\n\tRTM_ADD                           = 0x1\n\tRTM_CHANGE                        = 0x3\n\tRTM_CHGADDR                       = 0x15\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_GET                           = 0x4\n\tRTM_IEEE80211                     = 0x11\n\tRTM_IFANNOUNCE                    = 0x10\n\tRTM_IFINFO                        = 0x14\n\tRTM_LLINFO_UPD                    = 0x13\n\tRTM_LOCK                          = 0x8\n\tRTM_LOSING                        = 0x5\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_OIFINFO                       = 0xf\n\tRTM_OLDADD                        = 0x9\n\tRTM_OLDDEL                        = 0xa\n\tRTM_OOIFINFO                      = 0xe\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_RTTUNIT                       = 0xf4240\n\tRTM_SETGATE                       = 0x12\n\tRTM_VERSION                       = 0x4\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tSCM_CREDS                         = 0x4\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x8\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80906931\n\tSIOCADDRT                         = 0x8038720a\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCALIFADDR                      = 0x8118691c\n\tSIOCATMARK                        = 0x40047307\n\tSIOCDELMULTI                      = 0x80906932\n\tSIOCDELRT                         = 0x8038720b\n\tSIOCDIFADDR                       = 0x80906919\n\tSIOCDIFPHYADDR                    = 0x80906949\n\tSIOCDLIFADDR                      = 0x8118691e\n\tSIOCGDRVSPEC                      = 0xc028697b\n\tSIOCGETPFSYNC                     = 0xc09069f8\n\tSIOCGETSGCNT                      = 0xc0207534\n\tSIOCGETVIFCNT                     = 0xc0287533\n\tSIOCGHIWAT                        = 0x40047301\n\tSIOCGIFADDR                       = 0xc0906921\n\tSIOCGIFADDRPREF                   = 0xc0986920\n\tSIOCGIFALIAS                      = 0xc040691b\n\tSIOCGIFBRDADDR                    = 0xc0906923\n\tSIOCGIFCAP                        = 0xc0206976\n\tSIOCGIFCONF                       = 0xc0106926\n\tSIOCGIFDATA                       = 0xc0986985\n\tSIOCGIFDLT                        = 0xc0906977\n\tSIOCGIFDSTADDR                    = 0xc0906922\n\tSIOCGIFFLAGS                      = 0xc0906911\n\tSIOCGIFGENERIC                    = 0xc090693a\n\tSIOCGIFMEDIA                      = 0xc0306936\n\tSIOCGIFMETRIC                     = 0xc0906917\n\tSIOCGIFMTU                        = 0xc090697e\n\tSIOCGIFNETMASK                    = 0xc0906925\n\tSIOCGIFPDSTADDR                   = 0xc0906948\n\tSIOCGIFPSRCADDR                   = 0xc0906947\n\tSIOCGLIFADDR                      = 0xc118691d\n\tSIOCGLIFPHYADDR                   = 0xc118694b\n\tSIOCGLINKSTR                      = 0xc0286987\n\tSIOCGLOWAT                        = 0x40047303\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGVH                           = 0xc0906983\n\tSIOCIFCREATE                      = 0x8090697a\n\tSIOCIFDESTROY                     = 0x80906979\n\tSIOCIFGCLONERS                    = 0xc0106978\n\tSIOCINITIFADDR                    = 0xc0706984\n\tSIOCSDRVSPEC                      = 0x8028697b\n\tSIOCSETPFSYNC                     = 0x809069f7\n\tSIOCSHIWAT                        = 0x80047300\n\tSIOCSIFADDR                       = 0x8090690c\n\tSIOCSIFADDRPREF                   = 0x8098691f\n\tSIOCSIFBRDADDR                    = 0x80906913\n\tSIOCSIFCAP                        = 0x80206975\n\tSIOCSIFDSTADDR                    = 0x8090690e\n\tSIOCSIFFLAGS                      = 0x80906910\n\tSIOCSIFGENERIC                    = 0x80906939\n\tSIOCSIFMEDIA                      = 0xc0906935\n\tSIOCSIFMETRIC                     = 0x80906918\n\tSIOCSIFMTU                        = 0x8090697f\n\tSIOCSIFNETMASK                    = 0x80906916\n\tSIOCSIFPHYADDR                    = 0x80406946\n\tSIOCSLIFPHYADDR                   = 0x8118694a\n\tSIOCSLINKSTR                      = 0x80286988\n\tSIOCSLOWAT                        = 0x80047302\n\tSIOCSPGRP                         = 0x80047308\n\tSIOCSVH                           = 0xc0906982\n\tSIOCZIFDATA                       = 0xc0986986\n\tSOCK_CLOEXEC                      = 0x10000000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_FLAGS_MASK                   = 0xf0000000\n\tSOCK_NONBLOCK                     = 0x20000000\n\tSOCK_NOSIGPIPE                    = 0x40000000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_ACCEPTFILTER                   = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NOHEADER                       = 0x100a\n\tSO_NOSIGPIPE                      = 0x800\n\tSO_OOBINLINE                      = 0x100\n\tSO_OVERFLOWED                     = 0x1009\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x100c\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x100b\n\tSO_TIMESTAMP                      = 0x2000\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tSYSCTL_VERSION                    = 0x1000000\n\tSYSCTL_VERS_0                     = 0x0\n\tSYSCTL_VERS_1                     = 0x1000000\n\tSYSCTL_VERS_MASK                  = 0xff000000\n\tS_ARCH1                           = 0x10000\n\tS_ARCH2                           = 0x20000\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IFWHT                           = 0xe000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tS_LOGIN_SET                       = 0x1\n\tTCIFLUSH                          = 0x1\n\tTCIOFLUSH                         = 0x3\n\tTCOFLUSH                          = 0x2\n\tTCP_CONGCTL                       = 0x20\n\tTCP_KEEPCNT                       = 0x6\n\tTCP_KEEPIDLE                      = 0x3\n\tTCP_KEEPINIT                      = 0x7\n\tTCP_KEEPINTVL                     = 0x5\n\tTCP_MAXBURST                      = 0x4\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MD5SIG                        = 0x10\n\tTCP_MINMSS                        = 0xd8\n\tTCP_MSS                           = 0x218\n\tTCP_NODELAY                       = 0x1\n\tTCSAFLUSH                         = 0x2\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCONS                          = 0x80047462\n\tTIOCDCDTIMESTAMP                  = 0x40107458\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLAG_CDTRCTS                  = 0x10\n\tTIOCFLAG_CLOCAL                   = 0x2\n\tTIOCFLAG_CRTSCTS                  = 0x4\n\tTIOCFLAG_MDMBUF                   = 0x8\n\tTIOCFLAG_SOFTCAR                  = 0x1\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGFLAGS                        = 0x4004745d\n\tTIOCGLINED                        = 0x40207442\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGQSIZE                        = 0x40047481\n\tTIOCGRANTPT                       = 0x20007447\n\tTIOCGSID                          = 0x40047463\n\tTIOCGSIZE                         = 0x40087468\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCPTMGET                        = 0x40287446\n\tTIOCPTSNAME                       = 0x40287448\n\tTIOCRCVFRAME                      = 0x80087445\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSFLAGS                        = 0x8004745c\n\tTIOCSIG                           = 0x2000745f\n\tTIOCSLINED                        = 0x80207443\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSQSIZE                        = 0x80047480\n\tTIOCSSIZE                         = 0x80087467\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x80047465\n\tTIOCSTI                           = 0x80017472\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCUCNTL                         = 0x80047466\n\tTIOCXMTFRAME                      = 0x80087444\n\tTOSTOP                            = 0x400000\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWALL                              = 0x8\n\tWALLSIG                           = 0x8\n\tWALTSIG                           = 0x4\n\tWCLONE                            = 0x4\n\tWCOREFLAG                         = 0x80\n\tWNOHANG                           = 0x1\n\tWNOWAIT                           = 0x10000\n\tWNOZOMBIE                         = 0x20000\n\tWOPTSCHECKED                      = 0x40000\n\tWSTOPPED                          = 0x7f\n\tWUNTRACED                         = 0x2\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x58)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x57)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x52)\n\tEILSEQ          = syscall.Errno(0x55)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x60)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5e)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x5d)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODATA         = syscall.Errno(0x59)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x5f)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x53)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x5a)\n\tENOSTR          = syscall.Errno(0x5b)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x56)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x60)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIME           = syscall.Errno(0x5c)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x20)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large or too small\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol option not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"connection timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIDRM\", \"identifier removed\"},\n\t{83, \"ENOMSG\", \"no message of desired type\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"EILSEQ\", \"illegal byte sequence\"},\n\t{86, \"ENOTSUP\", \"not supported\"},\n\t{87, \"ECANCELED\", \"operation Canceled\"},\n\t{88, \"EBADMSG\", \"bad or Corrupt message\"},\n\t{89, \"ENODATA\", \"no message available\"},\n\t{90, \"ENOSR\", \"no STREAM resources\"},\n\t{91, \"ENOSTR\", \"not a STREAM\"},\n\t{92, \"ETIME\", \"STREAM ioctl timeout\"},\n\t{93, \"ENOATTR\", \"attribute not found\"},\n\t{94, \"EMULTIHOP\", \"multihop attempted\"},\n\t{95, \"ENOLINK\", \"link has been severed\"},\n\t{96, \"ELAST\", \"protocol error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"stopped (signal)\"},\n\t{18, \"SIGTSTP\", \"stopped\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGPWR\", \"power fail/restart\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go",
    "content": "// mkerrors.sh -marm\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm && netbsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -marm _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_ARP                            = 0x1c\n\tAF_BLUETOOTH                      = 0x1f\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_HYLINK                         = 0xf\n\tAF_IEEE80211                      = 0x20\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x18\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x23\n\tAF_MPLS                           = 0x21\n\tAF_NATM                           = 0x1b\n\tAF_NS                             = 0x6\n\tAF_OROUTE                         = 0x11\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x22\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tARPHRD_ARCNET                     = 0x7\n\tARPHRD_ETHER                      = 0x1\n\tARPHRD_FRELAY                     = 0xf\n\tARPHRD_IEEE1394                   = 0x18\n\tARPHRD_IEEE802                    = 0x6\n\tARPHRD_STRIP                      = 0x17\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB460800                           = 0x70800\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB921600                           = 0xe1000\n\tB9600                             = 0x2580\n\tBIOCFEEDBACK                      = 0x8004427d\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc0084277\n\tBIOCGETIF                         = 0x4090426b\n\tBIOCGFEEDBACK                     = 0x4004427c\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRTIMEOUT                     = 0x400c427b\n\tBIOCGSEESENT                      = 0x40044278\n\tBIOCGSTATS                        = 0x4080426f\n\tBIOCGSTATSOLD                     = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDLT                          = 0x80044276\n\tBIOCSETF                          = 0x80084267\n\tBIOCSETIF                         = 0x8090426c\n\tBIOCSFEEDBACK                     = 0x8004427d\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRTIMEOUT                     = 0x800c427a\n\tBIOCSSEESENT                      = 0x80044279\n\tBIOCSTCPF                         = 0x80084272\n\tBIOCSUDPF                         = 0x80084273\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x4\n\tBPF_ALIGNMENT32                   = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DFLTBUFSIZE                   = 0x100000\n\tBPF_DIV                           = 0x30\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x1000000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCPUSTATES                         = 0x5\n\tCP_IDLE                           = 0x4\n\tCP_INTR                           = 0x3\n\tCP_NICE                           = 0x1\n\tCP_SYS                            = 0x2\n\tCP_USER                           = 0x0\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x10000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0x14\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tCTL_QUERY                         = -0x2\n\tDIOCBSFLUSH                       = 0x20006478\n\tDLT_A429                          = 0xb8\n\tDLT_A653_ICM                      = 0xb9\n\tDLT_AIRONET_HEADER                = 0x78\n\tDLT_AOS                           = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394        = 0x8a\n\tDLT_ARCNET                        = 0x7\n\tDLT_ARCNET_LINUX                  = 0x81\n\tDLT_ATM_CLIP                      = 0x13\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AURORA                        = 0x7e\n\tDLT_AX25                          = 0x3\n\tDLT_AX25_KISS                     = 0xca\n\tDLT_BACNET_MS_TP                  = 0xa5\n\tDLT_BLUETOOTH_HCI_H4              = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR    = 0xc9\n\tDLT_CAN20B                        = 0xbe\n\tDLT_CAN_SOCKETCAN                 = 0xe3\n\tDLT_CHAOS                         = 0x5\n\tDLT_CISCO_IOS                     = 0x76\n\tDLT_C_HDLC                        = 0x68\n\tDLT_C_HDLC_WITH_DIR               = 0xcd\n\tDLT_DECT                          = 0xdd\n\tDLT_DOCSIS                        = 0x8f\n\tDLT_ECONET                        = 0x73\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0x6d\n\tDLT_ERF                           = 0xc5\n\tDLT_ERF_ETH                       = 0xaf\n\tDLT_ERF_POS                       = 0xb0\n\tDLT_FC_2                          = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS        = 0xe1\n\tDLT_FDDI                          = 0xa\n\tDLT_FLEXRAY                       = 0xd2\n\tDLT_FRELAY                        = 0x6b\n\tDLT_FRELAY_WITH_DIR               = 0xce\n\tDLT_GCOM_SERIAL                   = 0xad\n\tDLT_GCOM_T1E1                     = 0xac\n\tDLT_GPF_F                         = 0xab\n\tDLT_GPF_T                         = 0xaa\n\tDLT_GPRS_LLC                      = 0xa9\n\tDLT_GSMTAP_ABIS                   = 0xda\n\tDLT_GSMTAP_UM                     = 0xd9\n\tDLT_HDLC                          = 0x10\n\tDLT_HHDLC                         = 0x79\n\tDLT_HIPPI                         = 0xf\n\tDLT_IBM_SN                        = 0x92\n\tDLT_IBM_SP                        = 0x91\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS          = 0xa3\n\tDLT_IEEE802_15_4                  = 0xc3\n\tDLT_IEEE802_15_4_LINUX            = 0xbf\n\tDLT_IEEE802_15_4_NONASK_PHY       = 0xd7\n\tDLT_IEEE802_16_MAC_CPS            = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO      = 0xc1\n\tDLT_IPMB                          = 0xc7\n\tDLT_IPMB_LINUX                    = 0xd1\n\tDLT_IPNET                         = 0xe2\n\tDLT_IPV4                          = 0xe4\n\tDLT_IPV6                          = 0xe5\n\tDLT_IP_OVER_FC                    = 0x7a\n\tDLT_JUNIPER_ATM1                  = 0x89\n\tDLT_JUNIPER_ATM2                  = 0x87\n\tDLT_JUNIPER_CHDLC                 = 0xb5\n\tDLT_JUNIPER_ES                    = 0x84\n\tDLT_JUNIPER_ETHER                 = 0xb2\n\tDLT_JUNIPER_FRELAY                = 0xb4\n\tDLT_JUNIPER_GGSN                  = 0x85\n\tDLT_JUNIPER_ISM                   = 0xc2\n\tDLT_JUNIPER_MFR                   = 0x86\n\tDLT_JUNIPER_MLFR                  = 0x83\n\tDLT_JUNIPER_MLPPP                 = 0x82\n\tDLT_JUNIPER_MONITOR               = 0xa4\n\tDLT_JUNIPER_PIC_PEER              = 0xae\n\tDLT_JUNIPER_PPP                   = 0xb3\n\tDLT_JUNIPER_PPPOE                 = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM             = 0xa8\n\tDLT_JUNIPER_SERVICES              = 0x88\n\tDLT_JUNIPER_ST                    = 0xc8\n\tDLT_JUNIPER_VP                    = 0xb7\n\tDLT_LAPB_WITH_DIR                 = 0xcf\n\tDLT_LAPD                          = 0xcb\n\tDLT_LIN                           = 0xd4\n\tDLT_LINUX_EVDEV                   = 0xd8\n\tDLT_LINUX_IRDA                    = 0x90\n\tDLT_LINUX_LAPD                    = 0xb1\n\tDLT_LINUX_SLL                     = 0x71\n\tDLT_LOOP                          = 0x6c\n\tDLT_LTALK                         = 0x72\n\tDLT_MFR                           = 0xb6\n\tDLT_MOST                          = 0xd3\n\tDLT_MPLS                          = 0xdb\n\tDLT_MTP2                          = 0x8c\n\tDLT_MTP2_WITH_PHDR                = 0x8b\n\tDLT_MTP3                          = 0x8d\n\tDLT_NULL                          = 0x0\n\tDLT_PCI_EXP                       = 0x7d\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPI                           = 0xc0\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0xe\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_PPPD                      = 0xa6\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PPP_WITH_DIR                  = 0xcc\n\tDLT_PRISM_HEADER                  = 0x77\n\tDLT_PRONET                        = 0x4\n\tDLT_RAIF1                         = 0xc6\n\tDLT_RAW                           = 0xc\n\tDLT_RAWAF_MASK                    = 0x2240000\n\tDLT_RIO                           = 0x7c\n\tDLT_SCCP                          = 0x8e\n\tDLT_SITA                          = 0xc4\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xd\n\tDLT_SUNATM                        = 0x7b\n\tDLT_SYMANTEC_FIREWALL             = 0x63\n\tDLT_TZSP                          = 0x80\n\tDLT_USB                           = 0xba\n\tDLT_USB_LINUX                     = 0xbd\n\tDLT_USB_LINUX_MMAPPED             = 0xdc\n\tDLT_WIHART                        = 0xdf\n\tDLT_X2E_SERIAL                    = 0xd5\n\tDLT_X2E_XORAYA                    = 0xd6\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tDT_WHT                            = 0xe\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEMUL_LINUX                        = 0x1\n\tEMUL_LINUX32                      = 0x5\n\tEMUL_MAXID                        = 0x6\n\tETHERCAP_JUMBO_MTU                = 0x4\n\tETHERCAP_VLAN_HWTAGGING           = 0x2\n\tETHERCAP_VLAN_MTU                 = 0x1\n\tETHERMIN                          = 0x2e\n\tETHERMTU                          = 0x5dc\n\tETHERMTU_JUMBO                    = 0x2328\n\tETHERTYPE_8023                    = 0x4\n\tETHERTYPE_AARP                    = 0x80f3\n\tETHERTYPE_ACCTON                  = 0x8390\n\tETHERTYPE_AEONIC                  = 0x8036\n\tETHERTYPE_ALPHA                   = 0x814a\n\tETHERTYPE_AMBER                   = 0x6008\n\tETHERTYPE_AMOEBA                  = 0x8145\n\tETHERTYPE_APOLLO                  = 0x80f7\n\tETHERTYPE_APOLLODOMAIN            = 0x8019\n\tETHERTYPE_APPLETALK               = 0x809b\n\tETHERTYPE_APPLITEK                = 0x80c7\n\tETHERTYPE_ARGONAUT                = 0x803a\n\tETHERTYPE_ARP                     = 0x806\n\tETHERTYPE_AT                      = 0x809b\n\tETHERTYPE_ATALK                   = 0x809b\n\tETHERTYPE_ATOMIC                  = 0x86df\n\tETHERTYPE_ATT                     = 0x8069\n\tETHERTYPE_ATTSTANFORD             = 0x8008\n\tETHERTYPE_AUTOPHON                = 0x806a\n\tETHERTYPE_AXIS                    = 0x8856\n\tETHERTYPE_BCLOOP                  = 0x9003\n\tETHERTYPE_BOFL                    = 0x8102\n\tETHERTYPE_CABLETRON               = 0x7034\n\tETHERTYPE_CHAOS                   = 0x804\n\tETHERTYPE_COMDESIGN               = 0x806c\n\tETHERTYPE_COMPUGRAPHIC            = 0x806d\n\tETHERTYPE_COUNTERPOINT            = 0x8062\n\tETHERTYPE_CRONUS                  = 0x8004\n\tETHERTYPE_CRONUSVLN               = 0x8003\n\tETHERTYPE_DCA                     = 0x1234\n\tETHERTYPE_DDE                     = 0x807b\n\tETHERTYPE_DEBNI                   = 0xaaaa\n\tETHERTYPE_DECAM                   = 0x8048\n\tETHERTYPE_DECCUST                 = 0x6006\n\tETHERTYPE_DECDIAG                 = 0x6005\n\tETHERTYPE_DECDNS                  = 0x803c\n\tETHERTYPE_DECDTS                  = 0x803e\n\tETHERTYPE_DECEXPER                = 0x6000\n\tETHERTYPE_DECLAST                 = 0x8041\n\tETHERTYPE_DECLTM                  = 0x803f\n\tETHERTYPE_DECMUMPS                = 0x6009\n\tETHERTYPE_DECNETBIOS              = 0x8040\n\tETHERTYPE_DELTACON                = 0x86de\n\tETHERTYPE_DIDDLE                  = 0x4321\n\tETHERTYPE_DLOG1                   = 0x660\n\tETHERTYPE_DLOG2                   = 0x661\n\tETHERTYPE_DN                      = 0x6003\n\tETHERTYPE_DOGFIGHT                = 0x1989\n\tETHERTYPE_DSMD                    = 0x8039\n\tETHERTYPE_ECMA                    = 0x803\n\tETHERTYPE_ENCRYPT                 = 0x803d\n\tETHERTYPE_ES                      = 0x805d\n\tETHERTYPE_EXCELAN                 = 0x8010\n\tETHERTYPE_EXPERDATA               = 0x8049\n\tETHERTYPE_FLIP                    = 0x8146\n\tETHERTYPE_FLOWCONTROL             = 0x8808\n\tETHERTYPE_FRARP                   = 0x808\n\tETHERTYPE_GENDYN                  = 0x8068\n\tETHERTYPE_HAYES                   = 0x8130\n\tETHERTYPE_HIPPI_FP                = 0x8180\n\tETHERTYPE_HITACHI                 = 0x8820\n\tETHERTYPE_HP                      = 0x8005\n\tETHERTYPE_IEEEPUP                 = 0xa00\n\tETHERTYPE_IEEEPUPAT               = 0xa01\n\tETHERTYPE_IMLBL                   = 0x4c42\n\tETHERTYPE_IMLBLDIAG               = 0x424c\n\tETHERTYPE_IP                      = 0x800\n\tETHERTYPE_IPAS                    = 0x876c\n\tETHERTYPE_IPV6                    = 0x86dd\n\tETHERTYPE_IPX                     = 0x8137\n\tETHERTYPE_IPXNEW                  = 0x8037\n\tETHERTYPE_KALPANA                 = 0x8582\n\tETHERTYPE_LANBRIDGE               = 0x8038\n\tETHERTYPE_LANPROBE                = 0x8888\n\tETHERTYPE_LAT                     = 0x6004\n\tETHERTYPE_LBACK                   = 0x9000\n\tETHERTYPE_LITTLE                  = 0x8060\n\tETHERTYPE_LOGICRAFT               = 0x8148\n\tETHERTYPE_LOOPBACK                = 0x9000\n\tETHERTYPE_MATRA                   = 0x807a\n\tETHERTYPE_MAX                     = 0xffff\n\tETHERTYPE_MERIT                   = 0x807c\n\tETHERTYPE_MICP                    = 0x873a\n\tETHERTYPE_MOPDL                   = 0x6001\n\tETHERTYPE_MOPRC                   = 0x6002\n\tETHERTYPE_MOTOROLA                = 0x818d\n\tETHERTYPE_MPLS                    = 0x8847\n\tETHERTYPE_MPLS_MCAST              = 0x8848\n\tETHERTYPE_MUMPS                   = 0x813f\n\tETHERTYPE_NBPCC                   = 0x3c04\n\tETHERTYPE_NBPCLAIM                = 0x3c09\n\tETHERTYPE_NBPCLREQ                = 0x3c05\n\tETHERTYPE_NBPCLRSP                = 0x3c06\n\tETHERTYPE_NBPCREQ                 = 0x3c02\n\tETHERTYPE_NBPCRSP                 = 0x3c03\n\tETHERTYPE_NBPDG                   = 0x3c07\n\tETHERTYPE_NBPDGB                  = 0x3c08\n\tETHERTYPE_NBPDLTE                 = 0x3c0a\n\tETHERTYPE_NBPRAR                  = 0x3c0c\n\tETHERTYPE_NBPRAS                  = 0x3c0b\n\tETHERTYPE_NBPRST                  = 0x3c0d\n\tETHERTYPE_NBPSCD                  = 0x3c01\n\tETHERTYPE_NBPVCD                  = 0x3c00\n\tETHERTYPE_NBS                     = 0x802\n\tETHERTYPE_NCD                     = 0x8149\n\tETHERTYPE_NESTAR                  = 0x8006\n\tETHERTYPE_NETBEUI                 = 0x8191\n\tETHERTYPE_NOVELL                  = 0x8138\n\tETHERTYPE_NS                      = 0x600\n\tETHERTYPE_NSAT                    = 0x601\n\tETHERTYPE_NSCOMPAT                = 0x807\n\tETHERTYPE_NTRAILER                = 0x10\n\tETHERTYPE_OS9                     = 0x7007\n\tETHERTYPE_OS9NET                  = 0x7009\n\tETHERTYPE_PACER                   = 0x80c6\n\tETHERTYPE_PAE                     = 0x888e\n\tETHERTYPE_PCS                     = 0x4242\n\tETHERTYPE_PLANNING                = 0x8044\n\tETHERTYPE_PPP                     = 0x880b\n\tETHERTYPE_PPPOE                   = 0x8864\n\tETHERTYPE_PPPOEDISC               = 0x8863\n\tETHERTYPE_PRIMENTS                = 0x7031\n\tETHERTYPE_PUP                     = 0x200\n\tETHERTYPE_PUPAT                   = 0x200\n\tETHERTYPE_RACAL                   = 0x7030\n\tETHERTYPE_RATIONAL                = 0x8150\n\tETHERTYPE_RAWFR                   = 0x6559\n\tETHERTYPE_RCL                     = 0x1995\n\tETHERTYPE_RDP                     = 0x8739\n\tETHERTYPE_RETIX                   = 0x80f2\n\tETHERTYPE_REVARP                  = 0x8035\n\tETHERTYPE_SCA                     = 0x6007\n\tETHERTYPE_SECTRA                  = 0x86db\n\tETHERTYPE_SECUREDATA              = 0x876d\n\tETHERTYPE_SGITW                   = 0x817e\n\tETHERTYPE_SG_BOUNCE               = 0x8016\n\tETHERTYPE_SG_DIAG                 = 0x8013\n\tETHERTYPE_SG_NETGAMES             = 0x8014\n\tETHERTYPE_SG_RESV                 = 0x8015\n\tETHERTYPE_SIMNET                  = 0x5208\n\tETHERTYPE_SLOWPROTOCOLS           = 0x8809\n\tETHERTYPE_SNA                     = 0x80d5\n\tETHERTYPE_SNMP                    = 0x814c\n\tETHERTYPE_SONIX                   = 0xfaf5\n\tETHERTYPE_SPIDER                  = 0x809f\n\tETHERTYPE_SPRITE                  = 0x500\n\tETHERTYPE_STP                     = 0x8181\n\tETHERTYPE_TALARIS                 = 0x812b\n\tETHERTYPE_TALARISMC               = 0x852b\n\tETHERTYPE_TCPCOMP                 = 0x876b\n\tETHERTYPE_TCPSM                   = 0x9002\n\tETHERTYPE_TEC                     = 0x814f\n\tETHERTYPE_TIGAN                   = 0x802f\n\tETHERTYPE_TRAIL                   = 0x1000\n\tETHERTYPE_TRANSETHER              = 0x6558\n\tETHERTYPE_TYMSHARE                = 0x802e\n\tETHERTYPE_UBBST                   = 0x7005\n\tETHERTYPE_UBDEBUG                 = 0x900\n\tETHERTYPE_UBDIAGLOOP              = 0x7002\n\tETHERTYPE_UBDL                    = 0x7000\n\tETHERTYPE_UBNIU                   = 0x7001\n\tETHERTYPE_UBNMC                   = 0x7003\n\tETHERTYPE_VALID                   = 0x1600\n\tETHERTYPE_VARIAN                  = 0x80dd\n\tETHERTYPE_VAXELN                  = 0x803b\n\tETHERTYPE_VEECO                   = 0x8067\n\tETHERTYPE_VEXP                    = 0x805b\n\tETHERTYPE_VGLAB                   = 0x8131\n\tETHERTYPE_VINES                   = 0xbad\n\tETHERTYPE_VINESECHO               = 0xbaf\n\tETHERTYPE_VINESLOOP               = 0xbae\n\tETHERTYPE_VITAL                   = 0xff00\n\tETHERTYPE_VLAN                    = 0x8100\n\tETHERTYPE_VLTLMAN                 = 0x8080\n\tETHERTYPE_VPROD                   = 0x805c\n\tETHERTYPE_VURESERVED              = 0x8147\n\tETHERTYPE_WATERLOO                = 0x8130\n\tETHERTYPE_WELLFLEET               = 0x8103\n\tETHERTYPE_X25                     = 0x805\n\tETHERTYPE_X75                     = 0x801\n\tETHERTYPE_XNSSM                   = 0x9001\n\tETHERTYPE_XTP                     = 0x817d\n\tETHER_ADDR_LEN                    = 0x6\n\tETHER_CRC_LEN                     = 0x4\n\tETHER_CRC_POLY_BE                 = 0x4c11db6\n\tETHER_CRC_POLY_LE                 = 0xedb88320\n\tETHER_HDR_LEN                     = 0xe\n\tETHER_MAX_LEN                     = 0x5ee\n\tETHER_MAX_LEN_JUMBO               = 0x233a\n\tETHER_MIN_LEN                     = 0x40\n\tETHER_PPPOE_ENCAP_LEN             = 0x8\n\tETHER_TYPE_LEN                    = 0x2\n\tETHER_VLAN_ENCAP_LEN              = 0x4\n\tEVFILT_AIO                        = 0x2\n\tEVFILT_PROC                       = 0x4\n\tEVFILT_READ                       = 0x0\n\tEVFILT_SIGNAL                     = 0x5\n\tEVFILT_SYSCOUNT                   = 0x7\n\tEVFILT_TIMER                      = 0x6\n\tEVFILT_VNODE                      = 0x3\n\tEVFILT_WRITE                      = 0x1\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_SYSFLAGS                       = 0xf000\n\tEXTA                              = 0x4b00\n\tEXTATTR_CMD_START                 = 0x1\n\tEXTATTR_CMD_STOP                  = 0x2\n\tEXTATTR_NAMESPACE_SYSTEM          = 0x2\n\tEXTATTR_NAMESPACE_USER            = 0x1\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x100\n\tFLUSHO                            = 0x800000\n\tF_CLOSEM                          = 0xa\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0xc\n\tF_FSCTL                           = -0x80000000\n\tF_FSDIRMASK                       = 0x70000000\n\tF_FSIN                            = 0x10000000\n\tF_FSINOUT                         = 0x30000000\n\tF_FSOUT                           = 0x20000000\n\tF_FSPRIV                          = 0x8000\n\tF_FSVOID                          = 0x40000000\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETNOSIGPIPE                    = 0xd\n\tF_GETOWN                          = 0x5\n\tF_MAXFD                           = 0xb\n\tF_OK                              = 0x0\n\tF_PARAM_MASK                      = 0xfff\n\tF_PARAM_MAX                       = 0xfff\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETNOSIGPIPE                    = 0xe\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFA_ROUTE                         = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x8f52\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_NOTRAILERS                    = 0x20\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf8\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ECONET                        = 0xce\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf2\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INFINIBAND                    = 0xc7\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LINEGROUP                     = 0xd2\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_PON155                        = 0xcf\n\tIFT_PON622                        = 0xd0\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPATM                       = 0xc5\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf1\n\tIFT_Q2931                         = 0xc9\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SIPSIG                        = 0xcc\n\tIFT_SIPTG                         = 0xcb\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_STF                           = 0xd7\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TELINK                        = 0xc8\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VIRTUALTG                     = 0xca\n\tIFT_VOICEDID                      = 0xd5\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEEMFGD                    = 0xd3\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFGDEANA                  = 0xd4\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERCABLE                = 0xc6\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_IPV6_ICMP                 = 0x3a\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x34\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_VRRP                      = 0x70\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK               = 0xffff0f00\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_IPSEC_POLICY                 = 0x1c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_EF                             = 0x8000\n\tIP_ERRORMTU                       = 0x15\n\tIP_HDRINCL                        = 0x2\n\tIP_IPSEC_POLICY                   = 0x16\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0x14\n\tIP_MF                             = 0x2000\n\tIP_MINFRAGSIZE                    = 0x45\n\tIP_MINTTL                         = 0x18\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVIF                         = 0x14\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVTTL                        = 0x17\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x6\n\tMADV_NORMAL                       = 0x0\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SPACEAVAIL                   = 0x5\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ALIGNMENT_16MB                = 0x18000000\n\tMAP_ALIGNMENT_1TB                 = 0x28000000\n\tMAP_ALIGNMENT_256TB               = 0x30000000\n\tMAP_ALIGNMENT_4GB                 = 0x20000000\n\tMAP_ALIGNMENT_64KB                = 0x10000000\n\tMAP_ALIGNMENT_64PB                = 0x38000000\n\tMAP_ALIGNMENT_MASK                = -0x1000000\n\tMAP_ALIGNMENT_SHIFT               = 0x18\n\tMAP_ANON                          = 0x1000\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_HASSEMAPHORE                  = 0x200\n\tMAP_INHERIT                       = 0x80\n\tMAP_INHERIT_COPY                  = 0x1\n\tMAP_INHERIT_DEFAULT               = 0x1\n\tMAP_INHERIT_DONATE_COPY           = 0x3\n\tMAP_INHERIT_NONE                  = 0x2\n\tMAP_INHERIT_SHARE                 = 0x0\n\tMAP_NORESERVE                     = 0x40\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x20\n\tMAP_SHARED                        = 0x1\n\tMAP_STACK                         = 0x2000\n\tMAP_TRYFIXED                      = 0x400\n\tMAP_WIRED                         = 0x800\n\tMNT_ASYNC                         = 0x40\n\tMNT_BASIC_FLAGS                   = 0xe782807f\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DISCARD                       = 0x800000\n\tMNT_EXKERB                        = 0x800\n\tMNT_EXNORESPORT                   = 0x8000000\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXPUBLIC                      = 0x10000000\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_EXTATTR                       = 0x1000000\n\tMNT_FORCE                         = 0x80000\n\tMNT_GETARGS                       = 0x400000\n\tMNT_IGNORE                        = 0x100000\n\tMNT_LAZY                          = 0x3\n\tMNT_LOCAL                         = 0x1000\n\tMNT_LOG                           = 0x2000000\n\tMNT_NOATIME                       = 0x4000000\n\tMNT_NOCOREDUMP                    = 0x8000\n\tMNT_NODEV                         = 0x10\n\tMNT_NODEVMTIME                    = 0x40000000\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOWAIT                        = 0x2\n\tMNT_OP_FLAGS                      = 0x4d0000\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELATIME                      = 0x20000\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x80000000\n\tMNT_SYMPERM                       = 0x20000000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UNION                         = 0x20\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0xff90ffff\n\tMNT_WAIT                          = 0x1\n\tMSG_BCAST                         = 0x100\n\tMSG_CMSG_CLOEXEC                  = 0x800\n\tMSG_CONTROLMBUF                   = 0x2000000\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOR                           = 0x8\n\tMSG_IOVUSRSPACE                   = 0x4000000\n\tMSG_LENUSRSPACE                   = 0x8000000\n\tMSG_MCAST                         = 0x200\n\tMSG_NAMEMBUF                      = 0x1000000\n\tMSG_NBIO                          = 0x1000\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_TRUNC                         = 0x10\n\tMSG_USERFLAGS                     = 0xffffff\n\tMSG_WAITALL                       = 0x40\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x2\n\tMS_SYNC                           = 0x4\n\tNAME_MAX                          = 0x1ff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x5\n\tNET_RT_MAXID                      = 0x6\n\tNET_RT_OIFLIST                    = 0x4\n\tNET_RT_OOIFLIST                   = 0x3\n\tNFDBITS                           = 0x20\n\tNOFLSH                            = 0x80000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tOFIOGETBMAP                       = 0xc004667a\n\tONLCR                             = 0x2\n\tONLRET                            = 0x40\n\tONOCR                             = 0x20\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tO_ACCMODE                         = 0x3\n\tO_ALT_IO                          = 0x40000\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x400000\n\tO_CREAT                           = 0x200\n\tO_DIRECT                          = 0x80000\n\tO_DIRECTORY                       = 0x200000\n\tO_DSYNC                           = 0x10000\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_NOSIGPIPE                       = 0x1000000\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_RSYNC                           = 0x20000\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tPRI_IOFLUSH                       = 0x7c\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tRLIMIT_AS                         = 0xa\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BRD                          = 0x7\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_MAX                          = 0x9\n\tRTAX_NETMASK                      = 0x2\n\tRTAX_TAG                          = 0x8\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BRD                           = 0x80\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_NETMASK                       = 0x4\n\tRTA_TAG                           = 0x100\n\tRTF_ANNOUNCE                      = 0x20000\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_CLONED                        = 0x2000\n\tRTF_CLONING                       = 0x100\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_MASK                          = 0x80\n\tRTF_MODIFIED                      = 0x20\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_REJECT                        = 0x8\n\tRTF_SRC                           = 0x10000\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_XRESOLVE                      = 0x200\n\tRTM_ADD                           = 0x1\n\tRTM_CHANGE                        = 0x3\n\tRTM_CHGADDR                       = 0x15\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_GET                           = 0x4\n\tRTM_IEEE80211                     = 0x11\n\tRTM_IFANNOUNCE                    = 0x10\n\tRTM_IFINFO                        = 0x14\n\tRTM_LLINFO_UPD                    = 0x13\n\tRTM_LOCK                          = 0x8\n\tRTM_LOSING                        = 0x5\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_OIFINFO                       = 0xf\n\tRTM_OLDADD                        = 0x9\n\tRTM_OLDDEL                        = 0xa\n\tRTM_OOIFINFO                      = 0xe\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_RTTUNIT                       = 0xf4240\n\tRTM_SETGATE                       = 0x12\n\tRTM_VERSION                       = 0x4\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tSCM_CREDS                         = 0x4\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x8\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80906931\n\tSIOCADDRT                         = 0x8030720a\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCALIFADDR                      = 0x8118691c\n\tSIOCATMARK                        = 0x40047307\n\tSIOCDELMULTI                      = 0x80906932\n\tSIOCDELRT                         = 0x8030720b\n\tSIOCDIFADDR                       = 0x80906919\n\tSIOCDIFPHYADDR                    = 0x80906949\n\tSIOCDLIFADDR                      = 0x8118691e\n\tSIOCGDRVSPEC                      = 0xc01c697b\n\tSIOCGETPFSYNC                     = 0xc09069f8\n\tSIOCGETSGCNT                      = 0xc0147534\n\tSIOCGETVIFCNT                     = 0xc0147533\n\tSIOCGHIWAT                        = 0x40047301\n\tSIOCGIFADDR                       = 0xc0906921\n\tSIOCGIFADDRPREF                   = 0xc0946920\n\tSIOCGIFALIAS                      = 0xc040691b\n\tSIOCGIFBRDADDR                    = 0xc0906923\n\tSIOCGIFCAP                        = 0xc0206976\n\tSIOCGIFCONF                       = 0xc0086926\n\tSIOCGIFDATA                       = 0xc0946985\n\tSIOCGIFDLT                        = 0xc0906977\n\tSIOCGIFDSTADDR                    = 0xc0906922\n\tSIOCGIFFLAGS                      = 0xc0906911\n\tSIOCGIFGENERIC                    = 0xc090693a\n\tSIOCGIFMEDIA                      = 0xc0286936\n\tSIOCGIFMETRIC                     = 0xc0906917\n\tSIOCGIFMTU                        = 0xc090697e\n\tSIOCGIFNETMASK                    = 0xc0906925\n\tSIOCGIFPDSTADDR                   = 0xc0906948\n\tSIOCGIFPSRCADDR                   = 0xc0906947\n\tSIOCGLIFADDR                      = 0xc118691d\n\tSIOCGLIFPHYADDR                   = 0xc118694b\n\tSIOCGLINKSTR                      = 0xc01c6987\n\tSIOCGLOWAT                        = 0x40047303\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGVH                           = 0xc0906983\n\tSIOCIFCREATE                      = 0x8090697a\n\tSIOCIFDESTROY                     = 0x80906979\n\tSIOCIFGCLONERS                    = 0xc00c6978\n\tSIOCINITIFADDR                    = 0xc0446984\n\tSIOCSDRVSPEC                      = 0x801c697b\n\tSIOCSETPFSYNC                     = 0x809069f7\n\tSIOCSHIWAT                        = 0x80047300\n\tSIOCSIFADDR                       = 0x8090690c\n\tSIOCSIFADDRPREF                   = 0x8094691f\n\tSIOCSIFBRDADDR                    = 0x80906913\n\tSIOCSIFCAP                        = 0x80206975\n\tSIOCSIFDSTADDR                    = 0x8090690e\n\tSIOCSIFFLAGS                      = 0x80906910\n\tSIOCSIFGENERIC                    = 0x80906939\n\tSIOCSIFMEDIA                      = 0xc0906935\n\tSIOCSIFMETRIC                     = 0x80906918\n\tSIOCSIFMTU                        = 0x8090697f\n\tSIOCSIFNETMASK                    = 0x80906916\n\tSIOCSIFPHYADDR                    = 0x80406946\n\tSIOCSLIFPHYADDR                   = 0x8118694a\n\tSIOCSLINKSTR                      = 0x801c6988\n\tSIOCSLOWAT                        = 0x80047302\n\tSIOCSPGRP                         = 0x80047308\n\tSIOCSVH                           = 0xc0906982\n\tSIOCZIFDATA                       = 0xc0946986\n\tSOCK_CLOEXEC                      = 0x10000000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_FLAGS_MASK                   = 0xf0000000\n\tSOCK_NONBLOCK                     = 0x20000000\n\tSOCK_NOSIGPIPE                    = 0x40000000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_ACCEPTFILTER                   = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NOHEADER                       = 0x100a\n\tSO_NOSIGPIPE                      = 0x800\n\tSO_OOBINLINE                      = 0x100\n\tSO_OVERFLOWED                     = 0x1009\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x100c\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x100b\n\tSO_TIMESTAMP                      = 0x2000\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tSYSCTL_VERSION                    = 0x1000000\n\tSYSCTL_VERS_0                     = 0x0\n\tSYSCTL_VERS_1                     = 0x1000000\n\tSYSCTL_VERS_MASK                  = 0xff000000\n\tS_ARCH1                           = 0x10000\n\tS_ARCH2                           = 0x20000\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IFWHT                           = 0xe000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tTCIFLUSH                          = 0x1\n\tTCIOFLUSH                         = 0x3\n\tTCOFLUSH                          = 0x2\n\tTCP_CONGCTL                       = 0x20\n\tTCP_KEEPCNT                       = 0x6\n\tTCP_KEEPIDLE                      = 0x3\n\tTCP_KEEPINIT                      = 0x7\n\tTCP_KEEPINTVL                     = 0x5\n\tTCP_MAXBURST                      = 0x4\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MD5SIG                        = 0x10\n\tTCP_MINMSS                        = 0xd8\n\tTCP_MSS                           = 0x218\n\tTCP_NODELAY                       = 0x1\n\tTCSAFLUSH                         = 0x2\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCONS                          = 0x80047462\n\tTIOCDCDTIMESTAMP                  = 0x400c7458\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLAG_CDTRCTS                  = 0x10\n\tTIOCFLAG_CLOCAL                   = 0x2\n\tTIOCFLAG_CRTSCTS                  = 0x4\n\tTIOCFLAG_MDMBUF                   = 0x8\n\tTIOCFLAG_SOFTCAR                  = 0x1\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGFLAGS                        = 0x4004745d\n\tTIOCGLINED                        = 0x40207442\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGQSIZE                        = 0x40047481\n\tTIOCGRANTPT                       = 0x20007447\n\tTIOCGSID                          = 0x40047463\n\tTIOCGSIZE                         = 0x40087468\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCPTMGET                        = 0x48087446\n\tTIOCPTSNAME                       = 0x48087448\n\tTIOCRCVFRAME                      = 0x80047445\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSFLAGS                        = 0x8004745c\n\tTIOCSIG                           = 0x2000745f\n\tTIOCSLINED                        = 0x80207443\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSQSIZE                        = 0x80047480\n\tTIOCSSIZE                         = 0x80087467\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x80047465\n\tTIOCSTI                           = 0x80017472\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCUCNTL                         = 0x80047466\n\tTIOCXMTFRAME                      = 0x80047444\n\tTOSTOP                            = 0x400000\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWALL                              = 0x8\n\tWALLSIG                           = 0x8\n\tWALTSIG                           = 0x4\n\tWCLONE                            = 0x4\n\tWCOREFLAG                         = 0x80\n\tWNOHANG                           = 0x1\n\tWNOWAIT                           = 0x10000\n\tWNOZOMBIE                         = 0x20000\n\tWOPTSCHECKED                      = 0x40000\n\tWSTOPPED                          = 0x7f\n\tWUNTRACED                         = 0x2\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x58)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x57)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x52)\n\tEILSEQ          = syscall.Errno(0x55)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x60)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5e)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x5d)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODATA         = syscall.Errno(0x59)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x5f)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x53)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x5a)\n\tENOSTR          = syscall.Errno(0x5b)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x56)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x60)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIME           = syscall.Errno(0x5c)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x20)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large or too small\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol option not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"connection timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIDRM\", \"identifier removed\"},\n\t{83, \"ENOMSG\", \"no message of desired type\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"EILSEQ\", \"illegal byte sequence\"},\n\t{86, \"ENOTSUP\", \"not supported\"},\n\t{87, \"ECANCELED\", \"operation Canceled\"},\n\t{88, \"EBADMSG\", \"bad or Corrupt message\"},\n\t{89, \"ENODATA\", \"no message available\"},\n\t{90, \"ENOSR\", \"no STREAM resources\"},\n\t{91, \"ENOSTR\", \"not a STREAM\"},\n\t{92, \"ETIME\", \"STREAM ioctl timeout\"},\n\t{93, \"ENOATTR\", \"attribute not found\"},\n\t{94, \"EMULTIHOP\", \"multihop attempted\"},\n\t{95, \"ENOLINK\", \"link has been severed\"},\n\t{96, \"ELAST\", \"protocol error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"stopped (signal)\"},\n\t{18, \"SIGTSTP\", \"stopped\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGPWR\", \"power fail/restart\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && netbsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_ARP                            = 0x1c\n\tAF_BLUETOOTH                      = 0x1f\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_HYLINK                         = 0xf\n\tAF_IEEE80211                      = 0x20\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x18\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x23\n\tAF_MPLS                           = 0x21\n\tAF_NATM                           = 0x1b\n\tAF_NS                             = 0x6\n\tAF_OROUTE                         = 0x11\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x22\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tARPHRD_ARCNET                     = 0x7\n\tARPHRD_ETHER                      = 0x1\n\tARPHRD_FRELAY                     = 0xf\n\tARPHRD_IEEE1394                   = 0x18\n\tARPHRD_IEEE802                    = 0x6\n\tARPHRD_STRIP                      = 0x17\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB460800                           = 0x70800\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB921600                           = 0xe1000\n\tB9600                             = 0x2580\n\tBIOCFEEDBACK                      = 0x8004427d\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc0104277\n\tBIOCGETIF                         = 0x4090426b\n\tBIOCGFEEDBACK                     = 0x4004427c\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRTIMEOUT                     = 0x4010427b\n\tBIOCGSEESENT                      = 0x40044278\n\tBIOCGSTATS                        = 0x4080426f\n\tBIOCGSTATSOLD                     = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDLT                          = 0x80044276\n\tBIOCSETF                          = 0x80104267\n\tBIOCSETIF                         = 0x8090426c\n\tBIOCSFEEDBACK                     = 0x8004427d\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRTIMEOUT                     = 0x8010427a\n\tBIOCSSEESENT                      = 0x80044279\n\tBIOCSTCPF                         = 0x80104272\n\tBIOCSUDPF                         = 0x80104273\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x8\n\tBPF_ALIGNMENT32                   = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DFLTBUFSIZE                   = 0x100000\n\tBPF_DIV                           = 0x30\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x1000000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCLONE_CSIGNAL                     = 0xff\n\tCLONE_FILES                       = 0x400\n\tCLONE_FS                          = 0x200\n\tCLONE_PID                         = 0x1000\n\tCLONE_PTRACE                      = 0x2000\n\tCLONE_SIGHAND                     = 0x800\n\tCLONE_VFORK                       = 0x4000\n\tCLONE_VM                          = 0x100\n\tCPUSTATES                         = 0x5\n\tCP_IDLE                           = 0x4\n\tCP_INTR                           = 0x3\n\tCP_NICE                           = 0x1\n\tCP_SYS                            = 0x2\n\tCP_USER                           = 0x0\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x10000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0x14\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tCTL_QUERY                         = -0x2\n\tDIOCBSFLUSH                       = 0x20006478\n\tDLT_A429                          = 0xb8\n\tDLT_A653_ICM                      = 0xb9\n\tDLT_AIRONET_HEADER                = 0x78\n\tDLT_AOS                           = 0xde\n\tDLT_APPLE_IP_OVER_IEEE1394        = 0x8a\n\tDLT_ARCNET                        = 0x7\n\tDLT_ARCNET_LINUX                  = 0x81\n\tDLT_ATM_CLIP                      = 0x13\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AURORA                        = 0x7e\n\tDLT_AX25                          = 0x3\n\tDLT_AX25_KISS                     = 0xca\n\tDLT_BACNET_MS_TP                  = 0xa5\n\tDLT_BLUETOOTH_HCI_H4              = 0xbb\n\tDLT_BLUETOOTH_HCI_H4_WITH_PHDR    = 0xc9\n\tDLT_CAN20B                        = 0xbe\n\tDLT_CAN_SOCKETCAN                 = 0xe3\n\tDLT_CHAOS                         = 0x5\n\tDLT_CISCO_IOS                     = 0x76\n\tDLT_C_HDLC                        = 0x68\n\tDLT_C_HDLC_WITH_DIR               = 0xcd\n\tDLT_DECT                          = 0xdd\n\tDLT_DOCSIS                        = 0x8f\n\tDLT_ECONET                        = 0x73\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0x6d\n\tDLT_ERF                           = 0xc5\n\tDLT_ERF_ETH                       = 0xaf\n\tDLT_ERF_POS                       = 0xb0\n\tDLT_FC_2                          = 0xe0\n\tDLT_FC_2_WITH_FRAME_DELIMS        = 0xe1\n\tDLT_FDDI                          = 0xa\n\tDLT_FLEXRAY                       = 0xd2\n\tDLT_FRELAY                        = 0x6b\n\tDLT_FRELAY_WITH_DIR               = 0xce\n\tDLT_GCOM_SERIAL                   = 0xad\n\tDLT_GCOM_T1E1                     = 0xac\n\tDLT_GPF_F                         = 0xab\n\tDLT_GPF_T                         = 0xaa\n\tDLT_GPRS_LLC                      = 0xa9\n\tDLT_GSMTAP_ABIS                   = 0xda\n\tDLT_GSMTAP_UM                     = 0xd9\n\tDLT_HDLC                          = 0x10\n\tDLT_HHDLC                         = 0x79\n\tDLT_HIPPI                         = 0xf\n\tDLT_IBM_SN                        = 0x92\n\tDLT_IBM_SP                        = 0x91\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS          = 0xa3\n\tDLT_IEEE802_15_4                  = 0xc3\n\tDLT_IEEE802_15_4_LINUX            = 0xbf\n\tDLT_IEEE802_15_4_NONASK_PHY       = 0xd7\n\tDLT_IEEE802_16_MAC_CPS            = 0xbc\n\tDLT_IEEE802_16_MAC_CPS_RADIO      = 0xc1\n\tDLT_IPMB                          = 0xc7\n\tDLT_IPMB_LINUX                    = 0xd1\n\tDLT_IPNET                         = 0xe2\n\tDLT_IPV4                          = 0xe4\n\tDLT_IPV6                          = 0xe5\n\tDLT_IP_OVER_FC                    = 0x7a\n\tDLT_JUNIPER_ATM1                  = 0x89\n\tDLT_JUNIPER_ATM2                  = 0x87\n\tDLT_JUNIPER_CHDLC                 = 0xb5\n\tDLT_JUNIPER_ES                    = 0x84\n\tDLT_JUNIPER_ETHER                 = 0xb2\n\tDLT_JUNIPER_FRELAY                = 0xb4\n\tDLT_JUNIPER_GGSN                  = 0x85\n\tDLT_JUNIPER_ISM                   = 0xc2\n\tDLT_JUNIPER_MFR                   = 0x86\n\tDLT_JUNIPER_MLFR                  = 0x83\n\tDLT_JUNIPER_MLPPP                 = 0x82\n\tDLT_JUNIPER_MONITOR               = 0xa4\n\tDLT_JUNIPER_PIC_PEER              = 0xae\n\tDLT_JUNIPER_PPP                   = 0xb3\n\tDLT_JUNIPER_PPPOE                 = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM             = 0xa8\n\tDLT_JUNIPER_SERVICES              = 0x88\n\tDLT_JUNIPER_ST                    = 0xc8\n\tDLT_JUNIPER_VP                    = 0xb7\n\tDLT_LAPB_WITH_DIR                 = 0xcf\n\tDLT_LAPD                          = 0xcb\n\tDLT_LIN                           = 0xd4\n\tDLT_LINUX_EVDEV                   = 0xd8\n\tDLT_LINUX_IRDA                    = 0x90\n\tDLT_LINUX_LAPD                    = 0xb1\n\tDLT_LINUX_SLL                     = 0x71\n\tDLT_LOOP                          = 0x6c\n\tDLT_LTALK                         = 0x72\n\tDLT_MFR                           = 0xb6\n\tDLT_MOST                          = 0xd3\n\tDLT_MPLS                          = 0xdb\n\tDLT_MTP2                          = 0x8c\n\tDLT_MTP2_WITH_PHDR                = 0x8b\n\tDLT_MTP3                          = 0x8d\n\tDLT_NULL                          = 0x0\n\tDLT_PCI_EXP                       = 0x7d\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPI                           = 0xc0\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0xe\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_PPPD                      = 0xa6\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PPP_WITH_DIR                  = 0xcc\n\tDLT_PRISM_HEADER                  = 0x77\n\tDLT_PRONET                        = 0x4\n\tDLT_RAIF1                         = 0xc6\n\tDLT_RAW                           = 0xc\n\tDLT_RAWAF_MASK                    = 0x2240000\n\tDLT_RIO                           = 0x7c\n\tDLT_SCCP                          = 0x8e\n\tDLT_SITA                          = 0xc4\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xd\n\tDLT_SUNATM                        = 0x7b\n\tDLT_SYMANTEC_FIREWALL             = 0x63\n\tDLT_TZSP                          = 0x80\n\tDLT_USB                           = 0xba\n\tDLT_USB_LINUX                     = 0xbd\n\tDLT_USB_LINUX_MMAPPED             = 0xdc\n\tDLT_WIHART                        = 0xdf\n\tDLT_X2E_SERIAL                    = 0xd5\n\tDLT_X2E_XORAYA                    = 0xd6\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tDT_WHT                            = 0xe\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEMUL_LINUX                        = 0x1\n\tEMUL_LINUX32                      = 0x5\n\tEMUL_MAXID                        = 0x6\n\tETHERCAP_JUMBO_MTU                = 0x4\n\tETHERCAP_VLAN_HWTAGGING           = 0x2\n\tETHERCAP_VLAN_MTU                 = 0x1\n\tETHERMIN                          = 0x2e\n\tETHERMTU                          = 0x5dc\n\tETHERMTU_JUMBO                    = 0x2328\n\tETHERTYPE_8023                    = 0x4\n\tETHERTYPE_AARP                    = 0x80f3\n\tETHERTYPE_ACCTON                  = 0x8390\n\tETHERTYPE_AEONIC                  = 0x8036\n\tETHERTYPE_ALPHA                   = 0x814a\n\tETHERTYPE_AMBER                   = 0x6008\n\tETHERTYPE_AMOEBA                  = 0x8145\n\tETHERTYPE_APOLLO                  = 0x80f7\n\tETHERTYPE_APOLLODOMAIN            = 0x8019\n\tETHERTYPE_APPLETALK               = 0x809b\n\tETHERTYPE_APPLITEK                = 0x80c7\n\tETHERTYPE_ARGONAUT                = 0x803a\n\tETHERTYPE_ARP                     = 0x806\n\tETHERTYPE_AT                      = 0x809b\n\tETHERTYPE_ATALK                   = 0x809b\n\tETHERTYPE_ATOMIC                  = 0x86df\n\tETHERTYPE_ATT                     = 0x8069\n\tETHERTYPE_ATTSTANFORD             = 0x8008\n\tETHERTYPE_AUTOPHON                = 0x806a\n\tETHERTYPE_AXIS                    = 0x8856\n\tETHERTYPE_BCLOOP                  = 0x9003\n\tETHERTYPE_BOFL                    = 0x8102\n\tETHERTYPE_CABLETRON               = 0x7034\n\tETHERTYPE_CHAOS                   = 0x804\n\tETHERTYPE_COMDESIGN               = 0x806c\n\tETHERTYPE_COMPUGRAPHIC            = 0x806d\n\tETHERTYPE_COUNTERPOINT            = 0x8062\n\tETHERTYPE_CRONUS                  = 0x8004\n\tETHERTYPE_CRONUSVLN               = 0x8003\n\tETHERTYPE_DCA                     = 0x1234\n\tETHERTYPE_DDE                     = 0x807b\n\tETHERTYPE_DEBNI                   = 0xaaaa\n\tETHERTYPE_DECAM                   = 0x8048\n\tETHERTYPE_DECCUST                 = 0x6006\n\tETHERTYPE_DECDIAG                 = 0x6005\n\tETHERTYPE_DECDNS                  = 0x803c\n\tETHERTYPE_DECDTS                  = 0x803e\n\tETHERTYPE_DECEXPER                = 0x6000\n\tETHERTYPE_DECLAST                 = 0x8041\n\tETHERTYPE_DECLTM                  = 0x803f\n\tETHERTYPE_DECMUMPS                = 0x6009\n\tETHERTYPE_DECNETBIOS              = 0x8040\n\tETHERTYPE_DELTACON                = 0x86de\n\tETHERTYPE_DIDDLE                  = 0x4321\n\tETHERTYPE_DLOG1                   = 0x660\n\tETHERTYPE_DLOG2                   = 0x661\n\tETHERTYPE_DN                      = 0x6003\n\tETHERTYPE_DOGFIGHT                = 0x1989\n\tETHERTYPE_DSMD                    = 0x8039\n\tETHERTYPE_ECMA                    = 0x803\n\tETHERTYPE_ENCRYPT                 = 0x803d\n\tETHERTYPE_ES                      = 0x805d\n\tETHERTYPE_EXCELAN                 = 0x8010\n\tETHERTYPE_EXPERDATA               = 0x8049\n\tETHERTYPE_FLIP                    = 0x8146\n\tETHERTYPE_FLOWCONTROL             = 0x8808\n\tETHERTYPE_FRARP                   = 0x808\n\tETHERTYPE_GENDYN                  = 0x8068\n\tETHERTYPE_HAYES                   = 0x8130\n\tETHERTYPE_HIPPI_FP                = 0x8180\n\tETHERTYPE_HITACHI                 = 0x8820\n\tETHERTYPE_HP                      = 0x8005\n\tETHERTYPE_IEEEPUP                 = 0xa00\n\tETHERTYPE_IEEEPUPAT               = 0xa01\n\tETHERTYPE_IMLBL                   = 0x4c42\n\tETHERTYPE_IMLBLDIAG               = 0x424c\n\tETHERTYPE_IP                      = 0x800\n\tETHERTYPE_IPAS                    = 0x876c\n\tETHERTYPE_IPV6                    = 0x86dd\n\tETHERTYPE_IPX                     = 0x8137\n\tETHERTYPE_IPXNEW                  = 0x8037\n\tETHERTYPE_KALPANA                 = 0x8582\n\tETHERTYPE_LANBRIDGE               = 0x8038\n\tETHERTYPE_LANPROBE                = 0x8888\n\tETHERTYPE_LAT                     = 0x6004\n\tETHERTYPE_LBACK                   = 0x9000\n\tETHERTYPE_LITTLE                  = 0x8060\n\tETHERTYPE_LOGICRAFT               = 0x8148\n\tETHERTYPE_LOOPBACK                = 0x9000\n\tETHERTYPE_MATRA                   = 0x807a\n\tETHERTYPE_MAX                     = 0xffff\n\tETHERTYPE_MERIT                   = 0x807c\n\tETHERTYPE_MICP                    = 0x873a\n\tETHERTYPE_MOPDL                   = 0x6001\n\tETHERTYPE_MOPRC                   = 0x6002\n\tETHERTYPE_MOTOROLA                = 0x818d\n\tETHERTYPE_MPLS                    = 0x8847\n\tETHERTYPE_MPLS_MCAST              = 0x8848\n\tETHERTYPE_MUMPS                   = 0x813f\n\tETHERTYPE_NBPCC                   = 0x3c04\n\tETHERTYPE_NBPCLAIM                = 0x3c09\n\tETHERTYPE_NBPCLREQ                = 0x3c05\n\tETHERTYPE_NBPCLRSP                = 0x3c06\n\tETHERTYPE_NBPCREQ                 = 0x3c02\n\tETHERTYPE_NBPCRSP                 = 0x3c03\n\tETHERTYPE_NBPDG                   = 0x3c07\n\tETHERTYPE_NBPDGB                  = 0x3c08\n\tETHERTYPE_NBPDLTE                 = 0x3c0a\n\tETHERTYPE_NBPRAR                  = 0x3c0c\n\tETHERTYPE_NBPRAS                  = 0x3c0b\n\tETHERTYPE_NBPRST                  = 0x3c0d\n\tETHERTYPE_NBPSCD                  = 0x3c01\n\tETHERTYPE_NBPVCD                  = 0x3c00\n\tETHERTYPE_NBS                     = 0x802\n\tETHERTYPE_NCD                     = 0x8149\n\tETHERTYPE_NESTAR                  = 0x8006\n\tETHERTYPE_NETBEUI                 = 0x8191\n\tETHERTYPE_NOVELL                  = 0x8138\n\tETHERTYPE_NS                      = 0x600\n\tETHERTYPE_NSAT                    = 0x601\n\tETHERTYPE_NSCOMPAT                = 0x807\n\tETHERTYPE_NTRAILER                = 0x10\n\tETHERTYPE_OS9                     = 0x7007\n\tETHERTYPE_OS9NET                  = 0x7009\n\tETHERTYPE_PACER                   = 0x80c6\n\tETHERTYPE_PAE                     = 0x888e\n\tETHERTYPE_PCS                     = 0x4242\n\tETHERTYPE_PLANNING                = 0x8044\n\tETHERTYPE_PPP                     = 0x880b\n\tETHERTYPE_PPPOE                   = 0x8864\n\tETHERTYPE_PPPOEDISC               = 0x8863\n\tETHERTYPE_PRIMENTS                = 0x7031\n\tETHERTYPE_PUP                     = 0x200\n\tETHERTYPE_PUPAT                   = 0x200\n\tETHERTYPE_RACAL                   = 0x7030\n\tETHERTYPE_RATIONAL                = 0x8150\n\tETHERTYPE_RAWFR                   = 0x6559\n\tETHERTYPE_RCL                     = 0x1995\n\tETHERTYPE_RDP                     = 0x8739\n\tETHERTYPE_RETIX                   = 0x80f2\n\tETHERTYPE_REVARP                  = 0x8035\n\tETHERTYPE_SCA                     = 0x6007\n\tETHERTYPE_SECTRA                  = 0x86db\n\tETHERTYPE_SECUREDATA              = 0x876d\n\tETHERTYPE_SGITW                   = 0x817e\n\tETHERTYPE_SG_BOUNCE               = 0x8016\n\tETHERTYPE_SG_DIAG                 = 0x8013\n\tETHERTYPE_SG_NETGAMES             = 0x8014\n\tETHERTYPE_SG_RESV                 = 0x8015\n\tETHERTYPE_SIMNET                  = 0x5208\n\tETHERTYPE_SLOWPROTOCOLS           = 0x8809\n\tETHERTYPE_SNA                     = 0x80d5\n\tETHERTYPE_SNMP                    = 0x814c\n\tETHERTYPE_SONIX                   = 0xfaf5\n\tETHERTYPE_SPIDER                  = 0x809f\n\tETHERTYPE_SPRITE                  = 0x500\n\tETHERTYPE_STP                     = 0x8181\n\tETHERTYPE_TALARIS                 = 0x812b\n\tETHERTYPE_TALARISMC               = 0x852b\n\tETHERTYPE_TCPCOMP                 = 0x876b\n\tETHERTYPE_TCPSM                   = 0x9002\n\tETHERTYPE_TEC                     = 0x814f\n\tETHERTYPE_TIGAN                   = 0x802f\n\tETHERTYPE_TRAIL                   = 0x1000\n\tETHERTYPE_TRANSETHER              = 0x6558\n\tETHERTYPE_TYMSHARE                = 0x802e\n\tETHERTYPE_UBBST                   = 0x7005\n\tETHERTYPE_UBDEBUG                 = 0x900\n\tETHERTYPE_UBDIAGLOOP              = 0x7002\n\tETHERTYPE_UBDL                    = 0x7000\n\tETHERTYPE_UBNIU                   = 0x7001\n\tETHERTYPE_UBNMC                   = 0x7003\n\tETHERTYPE_VALID                   = 0x1600\n\tETHERTYPE_VARIAN                  = 0x80dd\n\tETHERTYPE_VAXELN                  = 0x803b\n\tETHERTYPE_VEECO                   = 0x8067\n\tETHERTYPE_VEXP                    = 0x805b\n\tETHERTYPE_VGLAB                   = 0x8131\n\tETHERTYPE_VINES                   = 0xbad\n\tETHERTYPE_VINESECHO               = 0xbaf\n\tETHERTYPE_VINESLOOP               = 0xbae\n\tETHERTYPE_VITAL                   = 0xff00\n\tETHERTYPE_VLAN                    = 0x8100\n\tETHERTYPE_VLTLMAN                 = 0x8080\n\tETHERTYPE_VPROD                   = 0x805c\n\tETHERTYPE_VURESERVED              = 0x8147\n\tETHERTYPE_WATERLOO                = 0x8130\n\tETHERTYPE_WELLFLEET               = 0x8103\n\tETHERTYPE_X25                     = 0x805\n\tETHERTYPE_X75                     = 0x801\n\tETHERTYPE_XNSSM                   = 0x9001\n\tETHERTYPE_XTP                     = 0x817d\n\tETHER_ADDR_LEN                    = 0x6\n\tETHER_CRC_LEN                     = 0x4\n\tETHER_CRC_POLY_BE                 = 0x4c11db6\n\tETHER_CRC_POLY_LE                 = 0xedb88320\n\tETHER_HDR_LEN                     = 0xe\n\tETHER_MAX_LEN                     = 0x5ee\n\tETHER_MAX_LEN_JUMBO               = 0x233a\n\tETHER_MIN_LEN                     = 0x40\n\tETHER_PPPOE_ENCAP_LEN             = 0x8\n\tETHER_TYPE_LEN                    = 0x2\n\tETHER_VLAN_ENCAP_LEN              = 0x4\n\tEVFILT_AIO                        = 0x2\n\tEVFILT_PROC                       = 0x4\n\tEVFILT_READ                       = 0x0\n\tEVFILT_SIGNAL                     = 0x5\n\tEVFILT_SYSCOUNT                   = 0x7\n\tEVFILT_TIMER                      = 0x6\n\tEVFILT_VNODE                      = 0x3\n\tEVFILT_WRITE                      = 0x1\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_SYSFLAGS                       = 0xf000\n\tEXTA                              = 0x4b00\n\tEXTATTR_CMD_START                 = 0x1\n\tEXTATTR_CMD_STOP                  = 0x2\n\tEXTATTR_NAMESPACE_SYSTEM          = 0x2\n\tEXTATTR_NAMESPACE_USER            = 0x1\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x100\n\tFLUSHO                            = 0x800000\n\tF_CLOSEM                          = 0xa\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0xc\n\tF_FSCTL                           = -0x80000000\n\tF_FSDIRMASK                       = 0x70000000\n\tF_FSIN                            = 0x10000000\n\tF_FSINOUT                         = 0x30000000\n\tF_FSOUT                           = 0x20000000\n\tF_FSPRIV                          = 0x8000\n\tF_FSVOID                          = 0x40000000\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETNOSIGPIPE                    = 0xd\n\tF_GETOWN                          = 0x5\n\tF_MAXFD                           = 0xb\n\tF_OK                              = 0x0\n\tF_PARAM_MASK                      = 0xfff\n\tF_PARAM_MAX                       = 0xfff\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETNOSIGPIPE                    = 0xe\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFA_ROUTE                         = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x8f52\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_NOTRAILERS                    = 0x20\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf8\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ECONET                        = 0xce\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf2\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INFINIBAND                    = 0xc7\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LINEGROUP                     = 0xd2\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_PON155                        = 0xcf\n\tIFT_PON622                        = 0xd0\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPATM                       = 0xc5\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf1\n\tIFT_Q2931                         = 0xc9\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SIPSIG                        = 0xcc\n\tIFT_SIPTG                         = 0xcb\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_STF                           = 0xd7\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TELINK                        = 0xc8\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VIRTUALTG                     = 0xca\n\tIFT_VOICEDID                      = 0xd5\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEEMFGD                    = 0xd3\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFGDEANA                  = 0xd4\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERCABLE                = 0xc6\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_IPV6_ICMP                 = 0x3a\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x34\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_VRRP                      = 0x70\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK               = 0xffff0f00\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_IPSEC_POLICY                 = 0x1c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_EF                             = 0x8000\n\tIP_ERRORMTU                       = 0x15\n\tIP_HDRINCL                        = 0x2\n\tIP_IPSEC_POLICY                   = 0x16\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0x14\n\tIP_MF                             = 0x2000\n\tIP_MINFRAGSIZE                    = 0x45\n\tIP_MINTTL                         = 0x18\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVIF                         = 0x14\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVTTL                        = 0x17\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x6\n\tMADV_NORMAL                       = 0x0\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SPACEAVAIL                   = 0x5\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ALIGNMENT_16MB                = 0x18000000\n\tMAP_ALIGNMENT_1TB                 = 0x28000000\n\tMAP_ALIGNMENT_256TB               = 0x30000000\n\tMAP_ALIGNMENT_4GB                 = 0x20000000\n\tMAP_ALIGNMENT_64KB                = 0x10000000\n\tMAP_ALIGNMENT_64PB                = 0x38000000\n\tMAP_ALIGNMENT_MASK                = -0x1000000\n\tMAP_ALIGNMENT_SHIFT               = 0x18\n\tMAP_ANON                          = 0x1000\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_HASSEMAPHORE                  = 0x200\n\tMAP_INHERIT                       = 0x80\n\tMAP_INHERIT_COPY                  = 0x1\n\tMAP_INHERIT_DEFAULT               = 0x1\n\tMAP_INHERIT_DONATE_COPY           = 0x3\n\tMAP_INHERIT_NONE                  = 0x2\n\tMAP_INHERIT_SHARE                 = 0x0\n\tMAP_NORESERVE                     = 0x40\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x20\n\tMAP_SHARED                        = 0x1\n\tMAP_STACK                         = 0x2000\n\tMAP_TRYFIXED                      = 0x400\n\tMAP_WIRED                         = 0x800\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_BASIC_FLAGS                   = 0xe782807f\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DISCARD                       = 0x800000\n\tMNT_EXKERB                        = 0x800\n\tMNT_EXNORESPORT                   = 0x8000000\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXPUBLIC                      = 0x10000000\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_EXTATTR                       = 0x1000000\n\tMNT_FORCE                         = 0x80000\n\tMNT_GETARGS                       = 0x400000\n\tMNT_IGNORE                        = 0x100000\n\tMNT_LAZY                          = 0x3\n\tMNT_LOCAL                         = 0x1000\n\tMNT_LOG                           = 0x2000000\n\tMNT_NOATIME                       = 0x4000000\n\tMNT_NOCOREDUMP                    = 0x8000\n\tMNT_NODEV                         = 0x10\n\tMNT_NODEVMTIME                    = 0x40000000\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOWAIT                        = 0x2\n\tMNT_OP_FLAGS                      = 0x4d0000\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELATIME                      = 0x20000\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x80000000\n\tMNT_SYMPERM                       = 0x20000000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UNION                         = 0x20\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0xff90ffff\n\tMNT_WAIT                          = 0x1\n\tMSG_BCAST                         = 0x100\n\tMSG_CMSG_CLOEXEC                  = 0x800\n\tMSG_CONTROLMBUF                   = 0x2000000\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOR                           = 0x8\n\tMSG_IOVUSRSPACE                   = 0x4000000\n\tMSG_LENUSRSPACE                   = 0x8000000\n\tMSG_MCAST                         = 0x200\n\tMSG_NAMEMBUF                      = 0x1000000\n\tMSG_NBIO                          = 0x1000\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_TRUNC                         = 0x10\n\tMSG_USERFLAGS                     = 0xffffff\n\tMSG_WAITALL                       = 0x40\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x2\n\tMS_SYNC                           = 0x4\n\tNAME_MAX                          = 0x1ff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x5\n\tNET_RT_MAXID                      = 0x6\n\tNET_RT_OIFLIST                    = 0x4\n\tNET_RT_OOIFLIST                   = 0x3\n\tNFDBITS                           = 0x20\n\tNOFLSH                            = 0x80000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tOFIOGETBMAP                       = 0xc004667a\n\tONLCR                             = 0x2\n\tONLRET                            = 0x40\n\tONOCR                             = 0x20\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tO_ACCMODE                         = 0x3\n\tO_ALT_IO                          = 0x40000\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x400000\n\tO_CREAT                           = 0x200\n\tO_DIRECT                          = 0x80000\n\tO_DIRECTORY                       = 0x200000\n\tO_DSYNC                           = 0x10000\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_NOSIGPIPE                       = 0x1000000\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_RSYNC                           = 0x20000\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPRI_IOFLUSH                       = 0x7c\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tRLIMIT_AS                         = 0xa\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BRD                          = 0x7\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_MAX                          = 0x9\n\tRTAX_NETMASK                      = 0x2\n\tRTAX_TAG                          = 0x8\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BRD                           = 0x80\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_NETMASK                       = 0x4\n\tRTA_TAG                           = 0x100\n\tRTF_ANNOUNCE                      = 0x20000\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_CLONED                        = 0x2000\n\tRTF_CLONING                       = 0x100\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_MASK                          = 0x80\n\tRTF_MODIFIED                      = 0x20\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_REJECT                        = 0x8\n\tRTF_SRC                           = 0x10000\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_XRESOLVE                      = 0x200\n\tRTM_ADD                           = 0x1\n\tRTM_CHANGE                        = 0x3\n\tRTM_CHGADDR                       = 0x15\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_GET                           = 0x4\n\tRTM_IEEE80211                     = 0x11\n\tRTM_IFANNOUNCE                    = 0x10\n\tRTM_IFINFO                        = 0x14\n\tRTM_LLINFO_UPD                    = 0x13\n\tRTM_LOCK                          = 0x8\n\tRTM_LOSING                        = 0x5\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_OIFINFO                       = 0xf\n\tRTM_OLDADD                        = 0x9\n\tRTM_OLDDEL                        = 0xa\n\tRTM_OOIFINFO                      = 0xe\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_RTTUNIT                       = 0xf4240\n\tRTM_SETGATE                       = 0x12\n\tRTM_VERSION                       = 0x4\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tSCM_CREDS                         = 0x4\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x8\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80906931\n\tSIOCADDRT                         = 0x8038720a\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCALIFADDR                      = 0x8118691c\n\tSIOCATMARK                        = 0x40047307\n\tSIOCDELMULTI                      = 0x80906932\n\tSIOCDELRT                         = 0x8038720b\n\tSIOCDIFADDR                       = 0x80906919\n\tSIOCDIFPHYADDR                    = 0x80906949\n\tSIOCDLIFADDR                      = 0x8118691e\n\tSIOCGDRVSPEC                      = 0xc028697b\n\tSIOCGETPFSYNC                     = 0xc09069f8\n\tSIOCGETSGCNT                      = 0xc0207534\n\tSIOCGETVIFCNT                     = 0xc0287533\n\tSIOCGHIWAT                        = 0x40047301\n\tSIOCGIFADDR                       = 0xc0906921\n\tSIOCGIFADDRPREF                   = 0xc0986920\n\tSIOCGIFALIAS                      = 0xc040691b\n\tSIOCGIFBRDADDR                    = 0xc0906923\n\tSIOCGIFCAP                        = 0xc0206976\n\tSIOCGIFCONF                       = 0xc0106926\n\tSIOCGIFDATA                       = 0xc0986985\n\tSIOCGIFDLT                        = 0xc0906977\n\tSIOCGIFDSTADDR                    = 0xc0906922\n\tSIOCGIFFLAGS                      = 0xc0906911\n\tSIOCGIFGENERIC                    = 0xc090693a\n\tSIOCGIFMEDIA                      = 0xc0306936\n\tSIOCGIFMETRIC                     = 0xc0906917\n\tSIOCGIFMTU                        = 0xc090697e\n\tSIOCGIFNETMASK                    = 0xc0906925\n\tSIOCGIFPDSTADDR                   = 0xc0906948\n\tSIOCGIFPSRCADDR                   = 0xc0906947\n\tSIOCGLIFADDR                      = 0xc118691d\n\tSIOCGLIFPHYADDR                   = 0xc118694b\n\tSIOCGLINKSTR                      = 0xc0286987\n\tSIOCGLOWAT                        = 0x40047303\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGVH                           = 0xc0906983\n\tSIOCIFCREATE                      = 0x8090697a\n\tSIOCIFDESTROY                     = 0x80906979\n\tSIOCIFGCLONERS                    = 0xc0106978\n\tSIOCINITIFADDR                    = 0xc0706984\n\tSIOCSDRVSPEC                      = 0x8028697b\n\tSIOCSETPFSYNC                     = 0x809069f7\n\tSIOCSHIWAT                        = 0x80047300\n\tSIOCSIFADDR                       = 0x8090690c\n\tSIOCSIFADDRPREF                   = 0x8098691f\n\tSIOCSIFBRDADDR                    = 0x80906913\n\tSIOCSIFCAP                        = 0x80206975\n\tSIOCSIFDSTADDR                    = 0x8090690e\n\tSIOCSIFFLAGS                      = 0x80906910\n\tSIOCSIFGENERIC                    = 0x80906939\n\tSIOCSIFMEDIA                      = 0xc0906935\n\tSIOCSIFMETRIC                     = 0x80906918\n\tSIOCSIFMTU                        = 0x8090697f\n\tSIOCSIFNETMASK                    = 0x80906916\n\tSIOCSIFPHYADDR                    = 0x80406946\n\tSIOCSLIFPHYADDR                   = 0x8118694a\n\tSIOCSLINKSTR                      = 0x80286988\n\tSIOCSLOWAT                        = 0x80047302\n\tSIOCSPGRP                         = 0x80047308\n\tSIOCSVH                           = 0xc0906982\n\tSIOCZIFDATA                       = 0xc0986986\n\tSOCK_CLOEXEC                      = 0x10000000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_FLAGS_MASK                   = 0xf0000000\n\tSOCK_NONBLOCK                     = 0x20000000\n\tSOCK_NOSIGPIPE                    = 0x40000000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_ACCEPTFILTER                   = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NOHEADER                       = 0x100a\n\tSO_NOSIGPIPE                      = 0x800\n\tSO_OOBINLINE                      = 0x100\n\tSO_OVERFLOWED                     = 0x1009\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x100c\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x100b\n\tSO_TIMESTAMP                      = 0x2000\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tSYSCTL_VERSION                    = 0x1000000\n\tSYSCTL_VERS_0                     = 0x0\n\tSYSCTL_VERS_1                     = 0x1000000\n\tSYSCTL_VERS_MASK                  = 0xff000000\n\tS_ARCH1                           = 0x10000\n\tS_ARCH2                           = 0x20000\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IFWHT                           = 0xe000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tS_LOGIN_SET                       = 0x1\n\tTCIFLUSH                          = 0x1\n\tTCIOFLUSH                         = 0x3\n\tTCOFLUSH                          = 0x2\n\tTCP_CONGCTL                       = 0x20\n\tTCP_KEEPCNT                       = 0x6\n\tTCP_KEEPIDLE                      = 0x3\n\tTCP_KEEPINIT                      = 0x7\n\tTCP_KEEPINTVL                     = 0x5\n\tTCP_MAXBURST                      = 0x4\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MD5SIG                        = 0x10\n\tTCP_MINMSS                        = 0xd8\n\tTCP_MSS                           = 0x218\n\tTCP_NODELAY                       = 0x1\n\tTCSAFLUSH                         = 0x2\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCONS                          = 0x80047462\n\tTIOCDCDTIMESTAMP                  = 0x40107458\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLAG_CDTRCTS                  = 0x10\n\tTIOCFLAG_CLOCAL                   = 0x2\n\tTIOCFLAG_CRTSCTS                  = 0x4\n\tTIOCFLAG_MDMBUF                   = 0x8\n\tTIOCFLAG_SOFTCAR                  = 0x1\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGFLAGS                        = 0x4004745d\n\tTIOCGLINED                        = 0x40207442\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGQSIZE                        = 0x40047481\n\tTIOCGRANTPT                       = 0x20007447\n\tTIOCGSID                          = 0x40047463\n\tTIOCGSIZE                         = 0x40087468\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCPTMGET                        = 0x40287446\n\tTIOCPTSNAME                       = 0x40287448\n\tTIOCRCVFRAME                      = 0x80087445\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSFLAGS                        = 0x8004745c\n\tTIOCSIG                           = 0x2000745f\n\tTIOCSLINED                        = 0x80207443\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSQSIZE                        = 0x80047480\n\tTIOCSSIZE                         = 0x80087467\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x80047465\n\tTIOCSTI                           = 0x80017472\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCUCNTL                         = 0x80047466\n\tTIOCXMTFRAME                      = 0x80087444\n\tTOSTOP                            = 0x400000\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWALL                              = 0x8\n\tWALLSIG                           = 0x8\n\tWALTSIG                           = 0x4\n\tWCLONE                            = 0x4\n\tWCOREFLAG                         = 0x80\n\tWNOHANG                           = 0x1\n\tWNOWAIT                           = 0x10000\n\tWNOZOMBIE                         = 0x20000\n\tWOPTSCHECKED                      = 0x40000\n\tWSTOPPED                          = 0x7f\n\tWUNTRACED                         = 0x2\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x58)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x57)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x52)\n\tEILSEQ          = syscall.Errno(0x55)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x60)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tEMULTIHOP       = syscall.Errno(0x5e)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x5d)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODATA         = syscall.Errno(0x59)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOLINK         = syscall.Errno(0x5f)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x53)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x5a)\n\tENOSTR          = syscall.Errno(0x5b)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x56)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x54)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x60)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIME           = syscall.Errno(0x5c)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGPWR    = syscall.Signal(0x20)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large or too small\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol option not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"connection timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disc quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC prog. not avail\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIDRM\", \"identifier removed\"},\n\t{83, \"ENOMSG\", \"no message of desired type\"},\n\t{84, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{85, \"EILSEQ\", \"illegal byte sequence\"},\n\t{86, \"ENOTSUP\", \"not supported\"},\n\t{87, \"ECANCELED\", \"operation Canceled\"},\n\t{88, \"EBADMSG\", \"bad or Corrupt message\"},\n\t{89, \"ENODATA\", \"no message available\"},\n\t{90, \"ENOSR\", \"no STREAM resources\"},\n\t{91, \"ENOSTR\", \"not a STREAM\"},\n\t{92, \"ETIME\", \"STREAM ioctl timeout\"},\n\t{93, \"ENOATTR\", \"attribute not found\"},\n\t{94, \"EMULTIHOP\", \"multihop attempted\"},\n\t{95, \"ENOLINK\", \"link has been severed\"},\n\t{96, \"ELAST\", \"protocol error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"stopped (signal)\"},\n\t{18, \"SIGTSTP\", \"stopped\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGPWR\", \"power fail/restart\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go",
    "content": "// mkerrors.sh -m32\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build 386 && openbsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m32 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_BLUETOOTH                      = 0x20\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_ENCAP                          = 0x1c\n\tAF_HYLINK                         = 0xf\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x18\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_KEY                            = 0x1e\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x24\n\tAF_MPLS                           = 0x21\n\tAF_NATM                           = 0x1b\n\tAF_NS                             = 0x6\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x11\n\tAF_SIP                            = 0x1d\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tALTWERASE                         = 0x200\n\tARPHRD_ETHER                      = 0x1\n\tARPHRD_FRELAY                     = 0xf\n\tARPHRD_IEEE1394                   = 0x18\n\tARPHRD_IEEE802                    = 0x6\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB9600                             = 0x2580\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDIRFILT                      = 0x4004427c\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc008427b\n\tBIOCGETIF                         = 0x4020426b\n\tBIOCGFILDROP                      = 0x40044278\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRSIG                         = 0x40044273\n\tBIOCGRTIMEOUT                     = 0x400c426e\n\tBIOCGSTATS                        = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCLOCK                          = 0x20004276\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDIRFILT                      = 0x8004427d\n\tBIOCSDLT                          = 0x8004427a\n\tBIOCSETF                          = 0x80084267\n\tBIOCSETIF                         = 0x8020426c\n\tBIOCSETWF                         = 0x80084277\n\tBIOCSFILDROP                      = 0x80044279\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRSIG                         = 0x80044272\n\tBIOCSRTIMEOUT                     = 0x800c426d\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DIRECTION_IN                  = 0x1\n\tBPF_DIRECTION_OUT                 = 0x2\n\tBPF_DIV                           = 0x30\n\tBPF_FILDROP_CAPTURE               = 0x1\n\tBPF_FILDROP_DROP                  = 0x2\n\tBPF_FILDROP_PASS                  = 0x0\n\tBPF_F_DIR_IN                      = 0x10\n\tBPF_F_DIR_MASK                    = 0x30\n\tBPF_F_DIR_OUT                     = 0x20\n\tBPF_F_DIR_SHIFT                   = 0x4\n\tBPF_F_FLOWID                      = 0x8\n\tBPF_F_PRI_MASK                    = 0x7\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x200000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RND                           = 0xc0\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCLOCK_BOOTTIME                    = 0x6\n\tCLOCK_MONOTONIC                   = 0x3\n\tCLOCK_PROCESS_CPUTIME_ID          = 0x2\n\tCLOCK_REALTIME                    = 0x0\n\tCLOCK_THREAD_CPUTIME_ID           = 0x4\n\tCLOCK_UPTIME                      = 0x5\n\tCPUSTATES                         = 0x6\n\tCP_IDLE                           = 0x5\n\tCP_INTR                           = 0x4\n\tCP_NICE                           = 0x1\n\tCP_SPIN                           = 0x3\n\tCP_SYS                            = 0x2\n\tCP_USER                           = 0x0\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x10000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0xff\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tDIOCADDQUEUE                      = 0xc100445d\n\tDIOCADDRULE                       = 0xccc84404\n\tDIOCADDSTATE                      = 0xc1084425\n\tDIOCCHANGERULE                    = 0xccc8441a\n\tDIOCCLRIFFLAG                     = 0xc024445a\n\tDIOCCLRSRCNODES                   = 0x20004455\n\tDIOCCLRSTATES                     = 0xc0d04412\n\tDIOCCLRSTATUS                     = 0xc0244416\n\tDIOCGETLIMIT                      = 0xc0084427\n\tDIOCGETQSTATS                     = 0xc1084460\n\tDIOCGETQUEUE                      = 0xc100445f\n\tDIOCGETQUEUES                     = 0xc100445e\n\tDIOCGETRULE                       = 0xccc84407\n\tDIOCGETRULES                      = 0xccc84406\n\tDIOCGETRULESET                    = 0xc444443b\n\tDIOCGETRULESETS                   = 0xc444443a\n\tDIOCGETSRCNODES                   = 0xc0084454\n\tDIOCGETSTATE                      = 0xc1084413\n\tDIOCGETSTATES                     = 0xc0084419\n\tDIOCGETSTATUS                     = 0xc1e84415\n\tDIOCGETSYNFLWATS                  = 0xc0084463\n\tDIOCGETTIMEOUT                    = 0xc008441e\n\tDIOCIGETIFACES                    = 0xc0244457\n\tDIOCKILLSRCNODES                  = 0xc068445b\n\tDIOCKILLSTATES                    = 0xc0d04429\n\tDIOCNATLOOK                       = 0xc0504417\n\tDIOCOSFPADD                       = 0xc084444f\n\tDIOCOSFPFLUSH                     = 0x2000444e\n\tDIOCOSFPGET                       = 0xc0844450\n\tDIOCRADDADDRS                     = 0xc44c4443\n\tDIOCRADDTABLES                    = 0xc44c443d\n\tDIOCRCLRADDRS                     = 0xc44c4442\n\tDIOCRCLRASTATS                    = 0xc44c4448\n\tDIOCRCLRTABLES                    = 0xc44c443c\n\tDIOCRCLRTSTATS                    = 0xc44c4441\n\tDIOCRDELADDRS                     = 0xc44c4444\n\tDIOCRDELTABLES                    = 0xc44c443e\n\tDIOCRGETADDRS                     = 0xc44c4446\n\tDIOCRGETASTATS                    = 0xc44c4447\n\tDIOCRGETTABLES                    = 0xc44c443f\n\tDIOCRGETTSTATS                    = 0xc44c4440\n\tDIOCRINADEFINE                    = 0xc44c444d\n\tDIOCRSETADDRS                     = 0xc44c4445\n\tDIOCRSETTFLAGS                    = 0xc44c444a\n\tDIOCRTSTADDRS                     = 0xc44c4449\n\tDIOCSETDEBUG                      = 0xc0044418\n\tDIOCSETHOSTID                     = 0xc0044456\n\tDIOCSETIFFLAG                     = 0xc0244459\n\tDIOCSETLIMIT                      = 0xc0084428\n\tDIOCSETREASS                      = 0xc004445c\n\tDIOCSETSTATUSIF                   = 0xc0244414\n\tDIOCSETSYNCOOKIES                 = 0xc0014462\n\tDIOCSETSYNFLWATS                  = 0xc0084461\n\tDIOCSETTIMEOUT                    = 0xc008441d\n\tDIOCSTART                         = 0x20004401\n\tDIOCSTOP                          = 0x20004402\n\tDIOCXBEGIN                        = 0xc00c4451\n\tDIOCXCOMMIT                       = 0xc00c4452\n\tDIOCXROLLBACK                     = 0xc00c4453\n\tDLT_ARCNET                        = 0x7\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AX25                          = 0x3\n\tDLT_CHAOS                         = 0x5\n\tDLT_C_HDLC                        = 0x68\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0xd\n\tDLT_FDDI                          = 0xa\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_LOOP                          = 0xc\n\tDLT_MPLS                          = 0xdb\n\tDLT_NULL                          = 0x0\n\tDLT_OPENFLOW                      = 0x10b\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0x10\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PRONET                        = 0x4\n\tDLT_RAW                           = 0xe\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xf\n\tDLT_USBPCAP                       = 0xf9\n\tDLT_USER0                         = 0x93\n\tDLT_USER1                         = 0x94\n\tDLT_USER10                        = 0x9d\n\tDLT_USER11                        = 0x9e\n\tDLT_USER12                        = 0x9f\n\tDLT_USER13                        = 0xa0\n\tDLT_USER14                        = 0xa1\n\tDLT_USER15                        = 0xa2\n\tDLT_USER2                         = 0x95\n\tDLT_USER3                         = 0x96\n\tDLT_USER4                         = 0x97\n\tDLT_USER5                         = 0x98\n\tDLT_USER6                         = 0x99\n\tDLT_USER7                         = 0x9a\n\tDLT_USER8                         = 0x9b\n\tDLT_USER9                         = 0x9c\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEMT_TAGOVF                        = 0x1\n\tEMUL_ENABLED                      = 0x1\n\tEMUL_NATIVE                       = 0x2\n\tENDRUNDISC                        = 0x9\n\tETH64_8021_RSVD_MASK              = 0xfffffffffff0\n\tETH64_8021_RSVD_PREFIX            = 0x180c2000000\n\tETHERMIN                          = 0x2e\n\tETHERMTU                          = 0x5dc\n\tETHERTYPE_8023                    = 0x4\n\tETHERTYPE_AARP                    = 0x80f3\n\tETHERTYPE_ACCTON                  = 0x8390\n\tETHERTYPE_AEONIC                  = 0x8036\n\tETHERTYPE_ALPHA                   = 0x814a\n\tETHERTYPE_AMBER                   = 0x6008\n\tETHERTYPE_AMOEBA                  = 0x8145\n\tETHERTYPE_AOE                     = 0x88a2\n\tETHERTYPE_APOLLO                  = 0x80f7\n\tETHERTYPE_APOLLODOMAIN            = 0x8019\n\tETHERTYPE_APPLETALK               = 0x809b\n\tETHERTYPE_APPLITEK                = 0x80c7\n\tETHERTYPE_ARGONAUT                = 0x803a\n\tETHERTYPE_ARP                     = 0x806\n\tETHERTYPE_AT                      = 0x809b\n\tETHERTYPE_ATALK                   = 0x809b\n\tETHERTYPE_ATOMIC                  = 0x86df\n\tETHERTYPE_ATT                     = 0x8069\n\tETHERTYPE_ATTSTANFORD             = 0x8008\n\tETHERTYPE_AUTOPHON                = 0x806a\n\tETHERTYPE_AXIS                    = 0x8856\n\tETHERTYPE_BCLOOP                  = 0x9003\n\tETHERTYPE_BOFL                    = 0x8102\n\tETHERTYPE_CABLETRON               = 0x7034\n\tETHERTYPE_CHAOS                   = 0x804\n\tETHERTYPE_COMDESIGN               = 0x806c\n\tETHERTYPE_COMPUGRAPHIC            = 0x806d\n\tETHERTYPE_COUNTERPOINT            = 0x8062\n\tETHERTYPE_CRONUS                  = 0x8004\n\tETHERTYPE_CRONUSVLN               = 0x8003\n\tETHERTYPE_DCA                     = 0x1234\n\tETHERTYPE_DDE                     = 0x807b\n\tETHERTYPE_DEBNI                   = 0xaaaa\n\tETHERTYPE_DECAM                   = 0x8048\n\tETHERTYPE_DECCUST                 = 0x6006\n\tETHERTYPE_DECDIAG                 = 0x6005\n\tETHERTYPE_DECDNS                  = 0x803c\n\tETHERTYPE_DECDTS                  = 0x803e\n\tETHERTYPE_DECEXPER                = 0x6000\n\tETHERTYPE_DECLAST                 = 0x8041\n\tETHERTYPE_DECLTM                  = 0x803f\n\tETHERTYPE_DECMUMPS                = 0x6009\n\tETHERTYPE_DECNETBIOS              = 0x8040\n\tETHERTYPE_DELTACON                = 0x86de\n\tETHERTYPE_DIDDLE                  = 0x4321\n\tETHERTYPE_DLOG1                   = 0x660\n\tETHERTYPE_DLOG2                   = 0x661\n\tETHERTYPE_DN                      = 0x6003\n\tETHERTYPE_DOGFIGHT                = 0x1989\n\tETHERTYPE_DSMD                    = 0x8039\n\tETHERTYPE_EAPOL                   = 0x888e\n\tETHERTYPE_ECMA                    = 0x803\n\tETHERTYPE_ENCRYPT                 = 0x803d\n\tETHERTYPE_ES                      = 0x805d\n\tETHERTYPE_EXCELAN                 = 0x8010\n\tETHERTYPE_EXPERDATA               = 0x8049\n\tETHERTYPE_FLIP                    = 0x8146\n\tETHERTYPE_FLOWCONTROL             = 0x8808\n\tETHERTYPE_FRARP                   = 0x808\n\tETHERTYPE_GENDYN                  = 0x8068\n\tETHERTYPE_HAYES                   = 0x8130\n\tETHERTYPE_HIPPI_FP                = 0x8180\n\tETHERTYPE_HITACHI                 = 0x8820\n\tETHERTYPE_HP                      = 0x8005\n\tETHERTYPE_IEEEPUP                 = 0xa00\n\tETHERTYPE_IEEEPUPAT               = 0xa01\n\tETHERTYPE_IMLBL                   = 0x4c42\n\tETHERTYPE_IMLBLDIAG               = 0x424c\n\tETHERTYPE_IP                      = 0x800\n\tETHERTYPE_IPAS                    = 0x876c\n\tETHERTYPE_IPV6                    = 0x86dd\n\tETHERTYPE_IPX                     = 0x8137\n\tETHERTYPE_IPXNEW                  = 0x8037\n\tETHERTYPE_KALPANA                 = 0x8582\n\tETHERTYPE_LANBRIDGE               = 0x8038\n\tETHERTYPE_LANPROBE                = 0x8888\n\tETHERTYPE_LAT                     = 0x6004\n\tETHERTYPE_LBACK                   = 0x9000\n\tETHERTYPE_LITTLE                  = 0x8060\n\tETHERTYPE_LLDP                    = 0x88cc\n\tETHERTYPE_LOGICRAFT               = 0x8148\n\tETHERTYPE_LOOPBACK                = 0x9000\n\tETHERTYPE_MACSEC                  = 0x88e5\n\tETHERTYPE_MATRA                   = 0x807a\n\tETHERTYPE_MAX                     = 0xffff\n\tETHERTYPE_MERIT                   = 0x807c\n\tETHERTYPE_MICP                    = 0x873a\n\tETHERTYPE_MOPDL                   = 0x6001\n\tETHERTYPE_MOPRC                   = 0x6002\n\tETHERTYPE_MOTOROLA                = 0x818d\n\tETHERTYPE_MPLS                    = 0x8847\n\tETHERTYPE_MPLS_MCAST              = 0x8848\n\tETHERTYPE_MUMPS                   = 0x813f\n\tETHERTYPE_NBPCC                   = 0x3c04\n\tETHERTYPE_NBPCLAIM                = 0x3c09\n\tETHERTYPE_NBPCLREQ                = 0x3c05\n\tETHERTYPE_NBPCLRSP                = 0x3c06\n\tETHERTYPE_NBPCREQ                 = 0x3c02\n\tETHERTYPE_NBPCRSP                 = 0x3c03\n\tETHERTYPE_NBPDG                   = 0x3c07\n\tETHERTYPE_NBPDGB                  = 0x3c08\n\tETHERTYPE_NBPDLTE                 = 0x3c0a\n\tETHERTYPE_NBPRAR                  = 0x3c0c\n\tETHERTYPE_NBPRAS                  = 0x3c0b\n\tETHERTYPE_NBPRST                  = 0x3c0d\n\tETHERTYPE_NBPSCD                  = 0x3c01\n\tETHERTYPE_NBPVCD                  = 0x3c00\n\tETHERTYPE_NBS                     = 0x802\n\tETHERTYPE_NCD                     = 0x8149\n\tETHERTYPE_NESTAR                  = 0x8006\n\tETHERTYPE_NETBEUI                 = 0x8191\n\tETHERTYPE_NHRP                    = 0x2001\n\tETHERTYPE_NOVELL                  = 0x8138\n\tETHERTYPE_NS                      = 0x600\n\tETHERTYPE_NSAT                    = 0x601\n\tETHERTYPE_NSCOMPAT                = 0x807\n\tETHERTYPE_NSH                     = 0x984f\n\tETHERTYPE_NTRAILER                = 0x10\n\tETHERTYPE_OS9                     = 0x7007\n\tETHERTYPE_OS9NET                  = 0x7009\n\tETHERTYPE_PACER                   = 0x80c6\n\tETHERTYPE_PBB                     = 0x88e7\n\tETHERTYPE_PCS                     = 0x4242\n\tETHERTYPE_PLANNING                = 0x8044\n\tETHERTYPE_PPP                     = 0x880b\n\tETHERTYPE_PPPOE                   = 0x8864\n\tETHERTYPE_PPPOEDISC               = 0x8863\n\tETHERTYPE_PRIMENTS                = 0x7031\n\tETHERTYPE_PUP                     = 0x200\n\tETHERTYPE_PUPAT                   = 0x200\n\tETHERTYPE_QINQ                    = 0x88a8\n\tETHERTYPE_RACAL                   = 0x7030\n\tETHERTYPE_RATIONAL                = 0x8150\n\tETHERTYPE_RAWFR                   = 0x6559\n\tETHERTYPE_RCL                     = 0x1995\n\tETHERTYPE_RDP                     = 0x8739\n\tETHERTYPE_RETIX                   = 0x80f2\n\tETHERTYPE_REVARP                  = 0x8035\n\tETHERTYPE_SCA                     = 0x6007\n\tETHERTYPE_SECTRA                  = 0x86db\n\tETHERTYPE_SECUREDATA              = 0x876d\n\tETHERTYPE_SGITW                   = 0x817e\n\tETHERTYPE_SG_BOUNCE               = 0x8016\n\tETHERTYPE_SG_DIAG                 = 0x8013\n\tETHERTYPE_SG_NETGAMES             = 0x8014\n\tETHERTYPE_SG_RESV                 = 0x8015\n\tETHERTYPE_SIMNET                  = 0x5208\n\tETHERTYPE_SLOW                    = 0x8809\n\tETHERTYPE_SNA                     = 0x80d5\n\tETHERTYPE_SNMP                    = 0x814c\n\tETHERTYPE_SONIX                   = 0xfaf5\n\tETHERTYPE_SPIDER                  = 0x809f\n\tETHERTYPE_SPRITE                  = 0x500\n\tETHERTYPE_STP                     = 0x8181\n\tETHERTYPE_TALARIS                 = 0x812b\n\tETHERTYPE_TALARISMC               = 0x852b\n\tETHERTYPE_TCPCOMP                 = 0x876b\n\tETHERTYPE_TCPSM                   = 0x9002\n\tETHERTYPE_TEC                     = 0x814f\n\tETHERTYPE_TIGAN                   = 0x802f\n\tETHERTYPE_TRAIL                   = 0x1000\n\tETHERTYPE_TRANSETHER              = 0x6558\n\tETHERTYPE_TYMSHARE                = 0x802e\n\tETHERTYPE_UBBST                   = 0x7005\n\tETHERTYPE_UBDEBUG                 = 0x900\n\tETHERTYPE_UBDIAGLOOP              = 0x7002\n\tETHERTYPE_UBDL                    = 0x7000\n\tETHERTYPE_UBNIU                   = 0x7001\n\tETHERTYPE_UBNMC                   = 0x7003\n\tETHERTYPE_VALID                   = 0x1600\n\tETHERTYPE_VARIAN                  = 0x80dd\n\tETHERTYPE_VAXELN                  = 0x803b\n\tETHERTYPE_VEECO                   = 0x8067\n\tETHERTYPE_VEXP                    = 0x805b\n\tETHERTYPE_VGLAB                   = 0x8131\n\tETHERTYPE_VINES                   = 0xbad\n\tETHERTYPE_VINESECHO               = 0xbaf\n\tETHERTYPE_VINESLOOP               = 0xbae\n\tETHERTYPE_VITAL                   = 0xff00\n\tETHERTYPE_VLAN                    = 0x8100\n\tETHERTYPE_VLTLMAN                 = 0x8080\n\tETHERTYPE_VPROD                   = 0x805c\n\tETHERTYPE_VURESERVED              = 0x8147\n\tETHERTYPE_WATERLOO                = 0x8130\n\tETHERTYPE_WELLFLEET               = 0x8103\n\tETHERTYPE_X25                     = 0x805\n\tETHERTYPE_X75                     = 0x801\n\tETHERTYPE_XNSSM                   = 0x9001\n\tETHERTYPE_XTP                     = 0x817d\n\tETHER_ADDR_LEN                    = 0x6\n\tETHER_ALIGN                       = 0x2\n\tETHER_CRC_LEN                     = 0x4\n\tETHER_CRC_POLY_BE                 = 0x4c11db6\n\tETHER_CRC_POLY_LE                 = 0xedb88320\n\tETHER_HDR_LEN                     = 0xe\n\tETHER_MAX_DIX_LEN                 = 0x600\n\tETHER_MAX_HARDMTU_LEN             = 0xff9b\n\tETHER_MAX_LEN                     = 0x5ee\n\tETHER_MIN_LEN                     = 0x40\n\tETHER_TYPE_LEN                    = 0x2\n\tETHER_VLAN_ENCAP_LEN              = 0x4\n\tEVFILT_AIO                        = -0x3\n\tEVFILT_DEVICE                     = -0x8\n\tEVFILT_EXCEPT                     = -0x9\n\tEVFILT_PROC                       = -0x5\n\tEVFILT_READ                       = -0x1\n\tEVFILT_SIGNAL                     = -0x6\n\tEVFILT_SYSCOUNT                   = 0x9\n\tEVFILT_TIMER                      = -0x7\n\tEVFILT_VNODE                      = -0x4\n\tEVFILT_WRITE                      = -0x2\n\tEVL_ENCAPLEN                      = 0x4\n\tEVL_PRIO_BITS                     = 0xd\n\tEVL_PRIO_MAX                      = 0x7\n\tEVL_VLID_MASK                     = 0xfff\n\tEVL_VLID_MAX                      = 0xffe\n\tEVL_VLID_MIN                      = 0x1\n\tEVL_VLID_NULL                     = 0x0\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_DISPATCH                       = 0x80\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_RECEIPT                        = 0x40\n\tEV_SYSFLAGS                       = 0xf800\n\tEXTA                              = 0x4b00\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x400\n\tFLUSHO                            = 0x800000\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0xa\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETOWN                          = 0x5\n\tF_ISATTY                          = 0xb\n\tF_OK                              = 0x0\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x8e52\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_STATICARP                     = 0x20\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BLUETOOTH                     = 0xf8\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf7\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DUMMY                         = 0xf1\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ECONET                        = 0xce\n\tIFT_ENC                           = 0xf4\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf3\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INFINIBAND                    = 0xc7\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LINEGROUP                     = 0xd2\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MBIM                          = 0xfa\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFLOW                         = 0xf9\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_PON155                        = 0xcf\n\tIFT_PON622                        = 0xd0\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPATM                       = 0xc5\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf2\n\tIFT_Q2931                         = 0xc9\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SIPSIG                        = 0xcc\n\tIFT_SIPTG                         = 0xcb\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TELINK                        = 0xc8\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VIRTUALTG                     = 0xca\n\tIFT_VOICEDID                      = 0xd5\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEEMFGD                    = 0xd3\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFGDEANA                  = 0xd4\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERCABLE                = 0xc6\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_WIREGUARD                     = 0xfb\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIN_RFC3021_HOST                   = 0x1\n\tIN_RFC3021_NET                    = 0xfffffffe\n\tIN_RFC3021_NSHIFT                 = 0x1f\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_DIVERT                    = 0x102\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x103\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_MPLS                      = 0x89\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_SCTP                      = 0x84\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_UDPLITE                   = 0x88\n\tIPV6_AUTH_LEVEL                   = 0x35\n\tIPV6_AUTOFLOWLABEL                = 0x3b\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_ESP_NETWORK_LEVEL            = 0x37\n\tIPV6_ESP_TRANS_LEVEL              = 0x36\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK               = 0xffff0f00\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_IPCOMP_LEVEL                 = 0x3c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MINHOPCOUNT                  = 0x41\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_OPTIONS                      = 0x1\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PIPEX                        = 0x3f\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVDSTPORT                  = 0x40\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTABLE                       = 0x1021\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_AUTH_LEVEL                     = 0x14\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_ESP_NETWORK_LEVEL              = 0x16\n\tIP_ESP_TRANS_LEVEL                = 0x15\n\tIP_HDRINCL                        = 0x2\n\tIP_IPCOMP_LEVEL                   = 0x1d\n\tIP_IPDEFTTL                       = 0x25\n\tIP_IPSECFLOWINFO                  = 0x24\n\tIP_IPSEC_LOCAL_AUTH               = 0x1b\n\tIP_IPSEC_LOCAL_CRED               = 0x19\n\tIP_IPSEC_LOCAL_ID                 = 0x17\n\tIP_IPSEC_REMOTE_AUTH              = 0x1c\n\tIP_IPSEC_REMOTE_CRED              = 0x1a\n\tIP_IPSEC_REMOTE_ID                = 0x18\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0xfff\n\tIP_MF                             = 0x2000\n\tIP_MINTTL                         = 0x20\n\tIP_MIN_MEMBERSHIPS                = 0xf\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PIPEX                          = 0x22\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVDSTPORT                    = 0x21\n\tIP_RECVIF                         = 0x1e\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVRTABLE                     = 0x23\n\tIP_RECVTTL                        = 0x1f\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_RTABLE                         = 0x1021\n\tIP_SENDSRCADDR                    = 0x7\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tITIMER_PROF                       = 0x2\n\tITIMER_REAL                       = 0x0\n\tITIMER_VIRTUAL                    = 0x1\n\tIUCLC                             = 0x1000\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLCNT_OVERLOAD_FLUSH               = 0x6\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x6\n\tMADV_NORMAL                       = 0x0\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SPACEAVAIL                   = 0x5\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ANON                          = 0x1000\n\tMAP_ANONYMOUS                     = 0x1000\n\tMAP_CONCEAL                       = 0x8000\n\tMAP_COPY                          = 0x2\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_FLAGMASK                      = 0xfff7\n\tMAP_HASSEMAPHORE                  = 0x0\n\tMAP_INHERIT                       = 0x0\n\tMAP_INHERIT_COPY                  = 0x1\n\tMAP_INHERIT_NONE                  = 0x2\n\tMAP_INHERIT_SHARE                 = 0x0\n\tMAP_INHERIT_ZERO                  = 0x3\n\tMAP_NOEXTEND                      = 0x0\n\tMAP_NORESERVE                     = 0x0\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x0\n\tMAP_SHARED                        = 0x1\n\tMAP_STACK                         = 0x4000\n\tMAP_TRYFIXED                      = 0x0\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DELEXPORT                     = 0x20000\n\tMNT_DOOMED                        = 0x8000000\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_FORCE                         = 0x80000\n\tMNT_LAZY                          = 0x3\n\tMNT_LOCAL                         = 0x1000\n\tMNT_NOATIME                       = 0x8000\n\tMNT_NODEV                         = 0x10\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOPERM                        = 0x20\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOWAIT                        = 0x2\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x4000000\n\tMNT_STALLED                       = 0x100000\n\tMNT_SWAPPABLE                     = 0x200000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0x400ffff\n\tMNT_WAIT                          = 0x1\n\tMNT_WANTRDWR                      = 0x2000000\n\tMNT_WXALLOWED                     = 0x800\n\tMOUNT_AFS                         = \"afs\"\n\tMOUNT_CD9660                      = \"cd9660\"\n\tMOUNT_EXT2FS                      = \"ext2fs\"\n\tMOUNT_FFS                         = \"ffs\"\n\tMOUNT_FUSEFS                      = \"fuse\"\n\tMOUNT_MFS                         = \"mfs\"\n\tMOUNT_MSDOS                       = \"msdos\"\n\tMOUNT_NCPFS                       = \"ncpfs\"\n\tMOUNT_NFS                         = \"nfs\"\n\tMOUNT_NTFS                        = \"ntfs\"\n\tMOUNT_TMPFS                       = \"tmpfs\"\n\tMOUNT_UDF                         = \"udf\"\n\tMOUNT_UFS                         = \"ffs\"\n\tMSG_BCAST                         = 0x100\n\tMSG_CMSG_CLOEXEC                  = 0x800\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOR                           = 0x8\n\tMSG_MCAST                         = 0x200\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_TRUNC                         = 0x10\n\tMSG_WAITALL                       = 0x40\n\tMSG_WAITFORONE                    = 0x1000\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x4\n\tMS_SYNC                           = 0x2\n\tNAME_MAX                          = 0xff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x3\n\tNET_RT_IFNAMES                    = 0x6\n\tNET_RT_MAXID                      = 0x8\n\tNET_RT_SOURCE                     = 0x7\n\tNET_RT_STATS                      = 0x4\n\tNET_RT_TABLE                      = 0x5\n\tNFDBITS                           = 0x20\n\tNOFLSH                            = 0x80000000\n\tNOKERNINFO                        = 0x2000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHANGE                       = 0x1\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EOF                          = 0x2\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_OOB                          = 0x4\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_TRUNCATE                     = 0x80\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tOLCUC                             = 0x20\n\tONLCR                             = 0x2\n\tONLRET                            = 0x80\n\tONOCR                             = 0x40\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tOXTABS                            = 0x4\n\tO_ACCMODE                         = 0x3\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x10000\n\tO_CREAT                           = 0x200\n\tO_DIRECTORY                       = 0x20000\n\tO_DSYNC                           = 0x80\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_RSYNC                           = 0x80\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPF_FLUSH                          = 0x1\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BFD                          = 0xb\n\tRTAX_BRD                          = 0x7\n\tRTAX_DNS                          = 0xc\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_LABEL                        = 0xa\n\tRTAX_MAX                          = 0xf\n\tRTAX_NETMASK                      = 0x2\n\tRTAX_SEARCH                       = 0xe\n\tRTAX_SRC                          = 0x8\n\tRTAX_SRCMASK                      = 0x9\n\tRTAX_STATIC                       = 0xd\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BFD                           = 0x800\n\tRTA_BRD                           = 0x80\n\tRTA_DNS                           = 0x1000\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_LABEL                         = 0x400\n\tRTA_NETMASK                       = 0x4\n\tRTA_SEARCH                        = 0x4000\n\tRTA_SRC                           = 0x100\n\tRTA_SRCMASK                       = 0x200\n\tRTA_STATIC                        = 0x2000\n\tRTF_ANNOUNCE                      = 0x4000\n\tRTF_BFD                           = 0x1000000\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_BROADCAST                     = 0x400000\n\tRTF_CACHED                        = 0x20000\n\tRTF_CLONED                        = 0x10000\n\tRTF_CLONING                       = 0x100\n\tRTF_CONNECTED                     = 0x800000\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_FMASK                         = 0x110fc08\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_LOCAL                         = 0x200000\n\tRTF_MODIFIED                      = 0x20\n\tRTF_MPATH                         = 0x40000\n\tRTF_MPLS                          = 0x100000\n\tRTF_MULTICAST                     = 0x200\n\tRTF_PERMANENT_ARP                 = 0x2000\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_PROTO3                        = 0x2000\n\tRTF_REJECT                        = 0x8\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_USETRAILERS                   = 0x8000\n\tRTM_80211INFO                     = 0x15\n\tRTM_ADD                           = 0x1\n\tRTM_BFD                           = 0x12\n\tRTM_CHANGE                        = 0x3\n\tRTM_CHGADDRATTR                   = 0x14\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_DESYNC                        = 0x10\n\tRTM_GET                           = 0x4\n\tRTM_IFANNOUNCE                    = 0xf\n\tRTM_IFINFO                        = 0xe\n\tRTM_INVALIDATE                    = 0x11\n\tRTM_LOSING                        = 0x5\n\tRTM_MAXSIZE                       = 0x800\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_PROPOSAL                      = 0x13\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_SOURCE                        = 0x16\n\tRTM_VERSION                       = 0x5\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRT_TABLEID_BITS                   = 0x8\n\tRT_TABLEID_MASK                   = 0xff\n\tRT_TABLEID_MAX                    = 0xff\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tRUSAGE_THREAD                     = 0x1\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x4\n\tSEEK_CUR                          = 0x1\n\tSEEK_END                          = 0x2\n\tSEEK_SET                          = 0x0\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80206931\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCAIFGROUP                      = 0x80246987\n\tSIOCATMARK                        = 0x40047307\n\tSIOCBRDGADD                       = 0x805c693c\n\tSIOCBRDGADDL                      = 0x805c6949\n\tSIOCBRDGADDS                      = 0x805c6941\n\tSIOCBRDGARL                       = 0x808c694d\n\tSIOCBRDGDADDR                     = 0x81286947\n\tSIOCBRDGDEL                       = 0x805c693d\n\tSIOCBRDGDELS                      = 0x805c6942\n\tSIOCBRDGFLUSH                     = 0x805c6948\n\tSIOCBRDGFRL                       = 0x808c694e\n\tSIOCBRDGGCACHE                    = 0xc0146941\n\tSIOCBRDGGFD                       = 0xc0146952\n\tSIOCBRDGGHT                       = 0xc0146951\n\tSIOCBRDGGIFFLGS                   = 0xc05c693e\n\tSIOCBRDGGMA                       = 0xc0146953\n\tSIOCBRDGGPARAM                    = 0xc03c6958\n\tSIOCBRDGGPRI                      = 0xc0146950\n\tSIOCBRDGGRL                       = 0xc028694f\n\tSIOCBRDGGTO                       = 0xc0146946\n\tSIOCBRDGIFS                       = 0xc05c6942\n\tSIOCBRDGRTS                       = 0xc0186943\n\tSIOCBRDGSADDR                     = 0xc1286944\n\tSIOCBRDGSCACHE                    = 0x80146940\n\tSIOCBRDGSFD                       = 0x80146952\n\tSIOCBRDGSHT                       = 0x80146951\n\tSIOCBRDGSIFCOST                   = 0x805c6955\n\tSIOCBRDGSIFFLGS                   = 0x805c693f\n\tSIOCBRDGSIFPRIO                   = 0x805c6954\n\tSIOCBRDGSIFPROT                   = 0x805c694a\n\tSIOCBRDGSMA                       = 0x80146953\n\tSIOCBRDGSPRI                      = 0x80146950\n\tSIOCBRDGSPROTO                    = 0x8014695a\n\tSIOCBRDGSTO                       = 0x80146945\n\tSIOCBRDGSTXHC                     = 0x80146959\n\tSIOCDELLABEL                      = 0x80206997\n\tSIOCDELMULTI                      = 0x80206932\n\tSIOCDIFADDR                       = 0x80206919\n\tSIOCDIFGROUP                      = 0x80246989\n\tSIOCDIFPARENT                     = 0x802069b4\n\tSIOCDIFPHYADDR                    = 0x80206949\n\tSIOCDPWE3NEIGHBOR                 = 0x802069de\n\tSIOCDVNETID                       = 0x802069af\n\tSIOCGETKALIVE                     = 0xc01869a4\n\tSIOCGETLABEL                      = 0x8020699a\n\tSIOCGETMPWCFG                     = 0xc02069ae\n\tSIOCGETPFLOW                      = 0xc02069fe\n\tSIOCGETPFSYNC                     = 0xc02069f8\n\tSIOCGETSGCNT                      = 0xc0147534\n\tSIOCGETVIFCNT                     = 0xc0147533\n\tSIOCGETVLAN                       = 0xc0206990\n\tSIOCGIFADDR                       = 0xc0206921\n\tSIOCGIFBRDADDR                    = 0xc0206923\n\tSIOCGIFCONF                       = 0xc0086924\n\tSIOCGIFDATA                       = 0xc020691b\n\tSIOCGIFDESCR                      = 0xc0206981\n\tSIOCGIFDSTADDR                    = 0xc0206922\n\tSIOCGIFFLAGS                      = 0xc0206911\n\tSIOCGIFGATTR                      = 0xc024698b\n\tSIOCGIFGENERIC                    = 0xc020693a\n\tSIOCGIFGLIST                      = 0xc024698d\n\tSIOCGIFGMEMB                      = 0xc024698a\n\tSIOCGIFGROUP                      = 0xc0246988\n\tSIOCGIFHARDMTU                    = 0xc02069a5\n\tSIOCGIFLLPRIO                     = 0xc02069b6\n\tSIOCGIFMEDIA                      = 0xc0386938\n\tSIOCGIFMETRIC                     = 0xc0206917\n\tSIOCGIFMTU                        = 0xc020697e\n\tSIOCGIFNETMASK                    = 0xc0206925\n\tSIOCGIFPAIR                       = 0xc02069b1\n\tSIOCGIFPARENT                     = 0xc02069b3\n\tSIOCGIFPRIORITY                   = 0xc020699c\n\tSIOCGIFRDOMAIN                    = 0xc02069a0\n\tSIOCGIFRTLABEL                    = 0xc0206983\n\tSIOCGIFRXR                        = 0x802069aa\n\tSIOCGIFSFFPAGE                    = 0xc1126939\n\tSIOCGIFXFLAGS                     = 0xc020699e\n\tSIOCGLIFPHYADDR                   = 0xc218694b\n\tSIOCGLIFPHYDF                     = 0xc02069c2\n\tSIOCGLIFPHYECN                    = 0xc02069c8\n\tSIOCGLIFPHYRTABLE                 = 0xc02069a2\n\tSIOCGLIFPHYTTL                    = 0xc02069a9\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGPWE3                         = 0xc0206998\n\tSIOCGPWE3CTRLWORD                 = 0xc02069dc\n\tSIOCGPWE3FAT                      = 0xc02069dd\n\tSIOCGPWE3NEIGHBOR                 = 0xc21869de\n\tSIOCGRXHPRIO                      = 0xc02069db\n\tSIOCGSPPPPARAMS                   = 0xc0206994\n\tSIOCGTXHPRIO                      = 0xc02069c6\n\tSIOCGUMBINFO                      = 0xc02069be\n\tSIOCGUMBPARAM                     = 0xc02069c0\n\tSIOCGVH                           = 0xc02069f6\n\tSIOCGVNETFLOWID                   = 0xc02069c4\n\tSIOCGVNETID                       = 0xc02069a7\n\tSIOCIFAFATTACH                    = 0x801169ab\n\tSIOCIFAFDETACH                    = 0x801169ac\n\tSIOCIFCREATE                      = 0x8020697a\n\tSIOCIFDESTROY                     = 0x80206979\n\tSIOCIFGCLONERS                    = 0xc00c6978\n\tSIOCSETKALIVE                     = 0x801869a3\n\tSIOCSETLABEL                      = 0x80206999\n\tSIOCSETMPWCFG                     = 0x802069ad\n\tSIOCSETPFLOW                      = 0x802069fd\n\tSIOCSETPFSYNC                     = 0x802069f7\n\tSIOCSETVLAN                       = 0x8020698f\n\tSIOCSIFADDR                       = 0x8020690c\n\tSIOCSIFBRDADDR                    = 0x80206913\n\tSIOCSIFDESCR                      = 0x80206980\n\tSIOCSIFDSTADDR                    = 0x8020690e\n\tSIOCSIFFLAGS                      = 0x80206910\n\tSIOCSIFGATTR                      = 0x8024698c\n\tSIOCSIFGENERIC                    = 0x80206939\n\tSIOCSIFLLADDR                     = 0x8020691f\n\tSIOCSIFLLPRIO                     = 0x802069b5\n\tSIOCSIFMEDIA                      = 0xc0206937\n\tSIOCSIFMETRIC                     = 0x80206918\n\tSIOCSIFMTU                        = 0x8020697f\n\tSIOCSIFNETMASK                    = 0x80206916\n\tSIOCSIFPAIR                       = 0x802069b0\n\tSIOCSIFPARENT                     = 0x802069b2\n\tSIOCSIFPRIORITY                   = 0x8020699b\n\tSIOCSIFRDOMAIN                    = 0x8020699f\n\tSIOCSIFRTLABEL                    = 0x80206982\n\tSIOCSIFXFLAGS                     = 0x8020699d\n\tSIOCSLIFPHYADDR                   = 0x8218694a\n\tSIOCSLIFPHYDF                     = 0x802069c1\n\tSIOCSLIFPHYECN                    = 0x802069c7\n\tSIOCSLIFPHYRTABLE                 = 0x802069a1\n\tSIOCSLIFPHYTTL                    = 0x802069a8\n\tSIOCSPGRP                         = 0x80047308\n\tSIOCSPWE3CTRLWORD                 = 0x802069dc\n\tSIOCSPWE3FAT                      = 0x802069dd\n\tSIOCSPWE3NEIGHBOR                 = 0x821869de\n\tSIOCSRXHPRIO                      = 0x802069db\n\tSIOCSSPPPPARAMS                   = 0x80206993\n\tSIOCSTXHPRIO                      = 0x802069c5\n\tSIOCSUMBPARAM                     = 0x802069bf\n\tSIOCSVH                           = 0xc02069f5\n\tSIOCSVNETFLOWID                   = 0x802069c3\n\tSIOCSVNETID                       = 0x802069a6\n\tSOCK_CLOEXEC                      = 0x8000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_DNS                          = 0x1000\n\tSOCK_NONBLOCK                     = 0x4000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_BINDANY                        = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DOMAIN                         = 0x1024\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NETPROC                        = 0x1020\n\tSO_OOBINLINE                      = 0x100\n\tSO_PEERCRED                       = 0x1022\n\tSO_PROTOCOL                       = 0x1025\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x1006\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_RTABLE                         = 0x1021\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x1005\n\tSO_SPLICE                         = 0x1023\n\tSO_TIMESTAMP                      = 0x800\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tSO_ZEROIZE                        = 0x2000\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tTCIFLUSH                          = 0x1\n\tTCIOFF                            = 0x3\n\tTCIOFLUSH                         = 0x3\n\tTCION                             = 0x4\n\tTCOFLUSH                          = 0x2\n\tTCOOFF                            = 0x1\n\tTCOON                             = 0x2\n\tTCPOPT_EOL                        = 0x0\n\tTCPOPT_MAXSEG                     = 0x2\n\tTCPOPT_NOP                        = 0x1\n\tTCPOPT_SACK                       = 0x5\n\tTCPOPT_SACK_HDR                   = 0x1010500\n\tTCPOPT_SACK_PERMITTED             = 0x4\n\tTCPOPT_SACK_PERMIT_HDR            = 0x1010402\n\tTCPOPT_SIGNATURE                  = 0x13\n\tTCPOPT_TIMESTAMP                  = 0x8\n\tTCPOPT_TSTAMP_HDR                 = 0x101080a\n\tTCPOPT_WINDOW                     = 0x3\n\tTCP_INFO                          = 0x9\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_SACK                      = 0x3\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MD5SIG                        = 0x4\n\tTCP_MSS                           = 0x200\n\tTCP_NODELAY                       = 0x1\n\tTCP_NOPUSH                        = 0x10\n\tTCP_SACKHOLE_LIMIT                = 0x80\n\tTCP_SACK_ENABLE                   = 0x8\n\tTCSAFLUSH                         = 0x2\n\tTIMER_ABSTIME                     = 0x1\n\tTIMER_RELTIME                     = 0x0\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCHKVERAUTH                    = 0x2000741e\n\tTIOCCLRVERAUTH                    = 0x2000741d\n\tTIOCCONS                          = 0x80047462\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLAG_CLOCAL                   = 0x2\n\tTIOCFLAG_CRTSCTS                  = 0x4\n\tTIOCFLAG_MDMBUF                   = 0x8\n\tTIOCFLAG_PPS                      = 0x10\n\tTIOCFLAG_SOFTCAR                  = 0x1\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGFLAGS                        = 0x4004745d\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGSID                          = 0x40047463\n\tTIOCGTSTAMP                       = 0x400c745b\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMODG                          = 0x4004746a\n\tTIOCMODS                          = 0x8004746d\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSETVERAUTH                    = 0x8004741c\n\tTIOCSFLAGS                        = 0x8004745c\n\tTIOCSIG                           = 0x8004745f\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x20007465\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSTSTAMP                       = 0x8008745a\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCUCNTL                         = 0x80047466\n\tTIOCUCNTL_CBRK                    = 0x7a\n\tTIOCUCNTL_SBRK                    = 0x7b\n\tTOSTOP                            = 0x400000\n\tUTIME_NOW                         = -0x2\n\tUTIME_OMIT                        = -0x1\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVM_ANONMIN                        = 0x7\n\tVM_LOADAVG                        = 0x2\n\tVM_MALLOC_CONF                    = 0xc\n\tVM_MAXID                          = 0xd\n\tVM_MAXSLP                         = 0xa\n\tVM_METER                          = 0x1\n\tVM_NKMEMPAGES                     = 0x6\n\tVM_PSSTRINGS                      = 0x3\n\tVM_SWAPENCRYPT                    = 0x5\n\tVM_USPACE                         = 0xb\n\tVM_UVMEXP                         = 0x4\n\tVM_VNODEMIN                       = 0x9\n\tVM_VTEXTMIN                       = 0x8\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWALTSIG                           = 0x4\n\tWCONTINUED                        = 0x8\n\tWCOREFLAG                         = 0x80\n\tWNOHANG                           = 0x1\n\tWUNTRACED                         = 0x2\n\tXCASE                             = 0x1000000\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x5c)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x58)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x59)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEIPSEC          = syscall.Errno(0x52)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x5f)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMEDIUMTYPE     = syscall.Errno(0x56)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x53)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOMEDIUM       = syscall.Errno(0x55)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x5a)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x5d)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x5b)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x57)\n\tEOWNERDEAD      = syscall.Errno(0x5e)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5f)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disk quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC program not available\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIPSEC\", \"IPsec processing failure\"},\n\t{83, \"ENOATTR\", \"attribute not found\"},\n\t{84, \"EILSEQ\", \"illegal byte sequence\"},\n\t{85, \"ENOMEDIUM\", \"no medium found\"},\n\t{86, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{87, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{88, \"ECANCELED\", \"operation canceled\"},\n\t{89, \"EIDRM\", \"identifier removed\"},\n\t{90, \"ENOMSG\", \"no message of desired type\"},\n\t{91, \"ENOTSUP\", \"not supported\"},\n\t{92, \"EBADMSG\", \"bad message\"},\n\t{93, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{94, \"EOWNERDEAD\", \"previous owner died\"},\n\t{95, \"ELAST\", \"protocol error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"thread AST\"},\n\t{28672, \"SIGSTKSZ\", \"unknown signal\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && openbsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_BLUETOOTH                      = 0x20\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_ENCAP                          = 0x1c\n\tAF_HYLINK                         = 0xf\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x18\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_KEY                            = 0x1e\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x24\n\tAF_MPLS                           = 0x21\n\tAF_NATM                           = 0x1b\n\tAF_NS                             = 0x6\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x11\n\tAF_SIP                            = 0x1d\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tALTWERASE                         = 0x200\n\tARPHRD_ETHER                      = 0x1\n\tARPHRD_FRELAY                     = 0xf\n\tARPHRD_IEEE1394                   = 0x18\n\tARPHRD_IEEE802                    = 0x6\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB9600                             = 0x2580\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDIRFILT                      = 0x4004427c\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc010427b\n\tBIOCGETIF                         = 0x4020426b\n\tBIOCGFILDROP                      = 0x40044278\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRSIG                         = 0x40044273\n\tBIOCGRTIMEOUT                     = 0x4010426e\n\tBIOCGSTATS                        = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCLOCK                          = 0x20004276\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDIRFILT                      = 0x8004427d\n\tBIOCSDLT                          = 0x8004427a\n\tBIOCSETF                          = 0x80104267\n\tBIOCSETIF                         = 0x8020426c\n\tBIOCSETWF                         = 0x80104277\n\tBIOCSFILDROP                      = 0x80044279\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRSIG                         = 0x80044272\n\tBIOCSRTIMEOUT                     = 0x8010426d\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DIRECTION_IN                  = 0x1\n\tBPF_DIRECTION_OUT                 = 0x2\n\tBPF_DIV                           = 0x30\n\tBPF_FILDROP_CAPTURE               = 0x1\n\tBPF_FILDROP_DROP                  = 0x2\n\tBPF_FILDROP_PASS                  = 0x0\n\tBPF_F_DIR_IN                      = 0x10\n\tBPF_F_DIR_MASK                    = 0x30\n\tBPF_F_DIR_OUT                     = 0x20\n\tBPF_F_DIR_SHIFT                   = 0x4\n\tBPF_F_FLOWID                      = 0x8\n\tBPF_F_PRI_MASK                    = 0x7\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x200000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RND                           = 0xc0\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCLOCK_BOOTTIME                    = 0x6\n\tCLOCK_MONOTONIC                   = 0x3\n\tCLOCK_PROCESS_CPUTIME_ID          = 0x2\n\tCLOCK_REALTIME                    = 0x0\n\tCLOCK_THREAD_CPUTIME_ID           = 0x4\n\tCLOCK_UPTIME                      = 0x5\n\tCPUSTATES                         = 0x6\n\tCP_IDLE                           = 0x5\n\tCP_INTR                           = 0x4\n\tCP_NICE                           = 0x1\n\tCP_SPIN                           = 0x3\n\tCP_SYS                            = 0x2\n\tCP_USER                           = 0x0\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x10000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0xff\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tDIOCADDQUEUE                      = 0xc110445d\n\tDIOCADDRULE                       = 0xcd604404\n\tDIOCADDSTATE                      = 0xc1084425\n\tDIOCCHANGERULE                    = 0xcd60441a\n\tDIOCCLRIFFLAG                     = 0xc028445a\n\tDIOCCLRSRCNODES                   = 0x20004455\n\tDIOCCLRSTATES                     = 0xc0e04412\n\tDIOCCLRSTATUS                     = 0xc0284416\n\tDIOCGETLIMIT                      = 0xc0084427\n\tDIOCGETQSTATS                     = 0xc1204460\n\tDIOCGETQUEUE                      = 0xc110445f\n\tDIOCGETQUEUES                     = 0xc110445e\n\tDIOCGETRULE                       = 0xcd604407\n\tDIOCGETRULES                      = 0xcd604406\n\tDIOCGETRULESET                    = 0xc444443b\n\tDIOCGETRULESETS                   = 0xc444443a\n\tDIOCGETSRCNODES                   = 0xc0104454\n\tDIOCGETSTATE                      = 0xc1084413\n\tDIOCGETSTATES                     = 0xc0104419\n\tDIOCGETSTATUS                     = 0xc1e84415\n\tDIOCGETSYNFLWATS                  = 0xc0084463\n\tDIOCGETTIMEOUT                    = 0xc008441e\n\tDIOCIGETIFACES                    = 0xc0284457\n\tDIOCKILLSRCNODES                  = 0xc080445b\n\tDIOCKILLSTATES                    = 0xc0e04429\n\tDIOCNATLOOK                       = 0xc0504417\n\tDIOCOSFPADD                       = 0xc088444f\n\tDIOCOSFPFLUSH                     = 0x2000444e\n\tDIOCOSFPGET                       = 0xc0884450\n\tDIOCRADDADDRS                     = 0xc4504443\n\tDIOCRADDTABLES                    = 0xc450443d\n\tDIOCRCLRADDRS                     = 0xc4504442\n\tDIOCRCLRASTATS                    = 0xc4504448\n\tDIOCRCLRTABLES                    = 0xc450443c\n\tDIOCRCLRTSTATS                    = 0xc4504441\n\tDIOCRDELADDRS                     = 0xc4504444\n\tDIOCRDELTABLES                    = 0xc450443e\n\tDIOCRGETADDRS                     = 0xc4504446\n\tDIOCRGETASTATS                    = 0xc4504447\n\tDIOCRGETTABLES                    = 0xc450443f\n\tDIOCRGETTSTATS                    = 0xc4504440\n\tDIOCRINADEFINE                    = 0xc450444d\n\tDIOCRSETADDRS                     = 0xc4504445\n\tDIOCRSETTFLAGS                    = 0xc450444a\n\tDIOCRTSTADDRS                     = 0xc4504449\n\tDIOCSETDEBUG                      = 0xc0044418\n\tDIOCSETHOSTID                     = 0xc0044456\n\tDIOCSETIFFLAG                     = 0xc0284459\n\tDIOCSETLIMIT                      = 0xc0084428\n\tDIOCSETREASS                      = 0xc004445c\n\tDIOCSETSTATUSIF                   = 0xc0284414\n\tDIOCSETSYNCOOKIES                 = 0xc0014462\n\tDIOCSETSYNFLWATS                  = 0xc0084461\n\tDIOCSETTIMEOUT                    = 0xc008441d\n\tDIOCSTART                         = 0x20004401\n\tDIOCSTOP                          = 0x20004402\n\tDIOCXBEGIN                        = 0xc0104451\n\tDIOCXCOMMIT                       = 0xc0104452\n\tDIOCXROLLBACK                     = 0xc0104453\n\tDLT_ARCNET                        = 0x7\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AX25                          = 0x3\n\tDLT_CHAOS                         = 0x5\n\tDLT_C_HDLC                        = 0x68\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0xd\n\tDLT_FDDI                          = 0xa\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_LOOP                          = 0xc\n\tDLT_MPLS                          = 0xdb\n\tDLT_NULL                          = 0x0\n\tDLT_OPENFLOW                      = 0x10b\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0x10\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PRONET                        = 0x4\n\tDLT_RAW                           = 0xe\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xf\n\tDLT_USBPCAP                       = 0xf9\n\tDLT_USER0                         = 0x93\n\tDLT_USER1                         = 0x94\n\tDLT_USER10                        = 0x9d\n\tDLT_USER11                        = 0x9e\n\tDLT_USER12                        = 0x9f\n\tDLT_USER13                        = 0xa0\n\tDLT_USER14                        = 0xa1\n\tDLT_USER15                        = 0xa2\n\tDLT_USER2                         = 0x95\n\tDLT_USER3                         = 0x96\n\tDLT_USER4                         = 0x97\n\tDLT_USER5                         = 0x98\n\tDLT_USER6                         = 0x99\n\tDLT_USER7                         = 0x9a\n\tDLT_USER8                         = 0x9b\n\tDLT_USER9                         = 0x9c\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEMT_TAGOVF                        = 0x1\n\tEMUL_ENABLED                      = 0x1\n\tEMUL_NATIVE                       = 0x2\n\tENDRUNDISC                        = 0x9\n\tETH64_8021_RSVD_MASK              = 0xfffffffffff0\n\tETH64_8021_RSVD_PREFIX            = 0x180c2000000\n\tETHERMIN                          = 0x2e\n\tETHERMTU                          = 0x5dc\n\tETHERTYPE_8023                    = 0x4\n\tETHERTYPE_AARP                    = 0x80f3\n\tETHERTYPE_ACCTON                  = 0x8390\n\tETHERTYPE_AEONIC                  = 0x8036\n\tETHERTYPE_ALPHA                   = 0x814a\n\tETHERTYPE_AMBER                   = 0x6008\n\tETHERTYPE_AMOEBA                  = 0x8145\n\tETHERTYPE_AOE                     = 0x88a2\n\tETHERTYPE_APOLLO                  = 0x80f7\n\tETHERTYPE_APOLLODOMAIN            = 0x8019\n\tETHERTYPE_APPLETALK               = 0x809b\n\tETHERTYPE_APPLITEK                = 0x80c7\n\tETHERTYPE_ARGONAUT                = 0x803a\n\tETHERTYPE_ARP                     = 0x806\n\tETHERTYPE_AT                      = 0x809b\n\tETHERTYPE_ATALK                   = 0x809b\n\tETHERTYPE_ATOMIC                  = 0x86df\n\tETHERTYPE_ATT                     = 0x8069\n\tETHERTYPE_ATTSTANFORD             = 0x8008\n\tETHERTYPE_AUTOPHON                = 0x806a\n\tETHERTYPE_AXIS                    = 0x8856\n\tETHERTYPE_BCLOOP                  = 0x9003\n\tETHERTYPE_BOFL                    = 0x8102\n\tETHERTYPE_CABLETRON               = 0x7034\n\tETHERTYPE_CHAOS                   = 0x804\n\tETHERTYPE_COMDESIGN               = 0x806c\n\tETHERTYPE_COMPUGRAPHIC            = 0x806d\n\tETHERTYPE_COUNTERPOINT            = 0x8062\n\tETHERTYPE_CRONUS                  = 0x8004\n\tETHERTYPE_CRONUSVLN               = 0x8003\n\tETHERTYPE_DCA                     = 0x1234\n\tETHERTYPE_DDE                     = 0x807b\n\tETHERTYPE_DEBNI                   = 0xaaaa\n\tETHERTYPE_DECAM                   = 0x8048\n\tETHERTYPE_DECCUST                 = 0x6006\n\tETHERTYPE_DECDIAG                 = 0x6005\n\tETHERTYPE_DECDNS                  = 0x803c\n\tETHERTYPE_DECDTS                  = 0x803e\n\tETHERTYPE_DECEXPER                = 0x6000\n\tETHERTYPE_DECLAST                 = 0x8041\n\tETHERTYPE_DECLTM                  = 0x803f\n\tETHERTYPE_DECMUMPS                = 0x6009\n\tETHERTYPE_DECNETBIOS              = 0x8040\n\tETHERTYPE_DELTACON                = 0x86de\n\tETHERTYPE_DIDDLE                  = 0x4321\n\tETHERTYPE_DLOG1                   = 0x660\n\tETHERTYPE_DLOG2                   = 0x661\n\tETHERTYPE_DN                      = 0x6003\n\tETHERTYPE_DOGFIGHT                = 0x1989\n\tETHERTYPE_DSMD                    = 0x8039\n\tETHERTYPE_EAPOL                   = 0x888e\n\tETHERTYPE_ECMA                    = 0x803\n\tETHERTYPE_ENCRYPT                 = 0x803d\n\tETHERTYPE_ES                      = 0x805d\n\tETHERTYPE_EXCELAN                 = 0x8010\n\tETHERTYPE_EXPERDATA               = 0x8049\n\tETHERTYPE_FLIP                    = 0x8146\n\tETHERTYPE_FLOWCONTROL             = 0x8808\n\tETHERTYPE_FRARP                   = 0x808\n\tETHERTYPE_GENDYN                  = 0x8068\n\tETHERTYPE_HAYES                   = 0x8130\n\tETHERTYPE_HIPPI_FP                = 0x8180\n\tETHERTYPE_HITACHI                 = 0x8820\n\tETHERTYPE_HP                      = 0x8005\n\tETHERTYPE_IEEEPUP                 = 0xa00\n\tETHERTYPE_IEEEPUPAT               = 0xa01\n\tETHERTYPE_IMLBL                   = 0x4c42\n\tETHERTYPE_IMLBLDIAG               = 0x424c\n\tETHERTYPE_IP                      = 0x800\n\tETHERTYPE_IPAS                    = 0x876c\n\tETHERTYPE_IPV6                    = 0x86dd\n\tETHERTYPE_IPX                     = 0x8137\n\tETHERTYPE_IPXNEW                  = 0x8037\n\tETHERTYPE_KALPANA                 = 0x8582\n\tETHERTYPE_LANBRIDGE               = 0x8038\n\tETHERTYPE_LANPROBE                = 0x8888\n\tETHERTYPE_LAT                     = 0x6004\n\tETHERTYPE_LBACK                   = 0x9000\n\tETHERTYPE_LITTLE                  = 0x8060\n\tETHERTYPE_LLDP                    = 0x88cc\n\tETHERTYPE_LOGICRAFT               = 0x8148\n\tETHERTYPE_LOOPBACK                = 0x9000\n\tETHERTYPE_MACSEC                  = 0x88e5\n\tETHERTYPE_MATRA                   = 0x807a\n\tETHERTYPE_MAX                     = 0xffff\n\tETHERTYPE_MERIT                   = 0x807c\n\tETHERTYPE_MICP                    = 0x873a\n\tETHERTYPE_MOPDL                   = 0x6001\n\tETHERTYPE_MOPRC                   = 0x6002\n\tETHERTYPE_MOTOROLA                = 0x818d\n\tETHERTYPE_MPLS                    = 0x8847\n\tETHERTYPE_MPLS_MCAST              = 0x8848\n\tETHERTYPE_MUMPS                   = 0x813f\n\tETHERTYPE_NBPCC                   = 0x3c04\n\tETHERTYPE_NBPCLAIM                = 0x3c09\n\tETHERTYPE_NBPCLREQ                = 0x3c05\n\tETHERTYPE_NBPCLRSP                = 0x3c06\n\tETHERTYPE_NBPCREQ                 = 0x3c02\n\tETHERTYPE_NBPCRSP                 = 0x3c03\n\tETHERTYPE_NBPDG                   = 0x3c07\n\tETHERTYPE_NBPDGB                  = 0x3c08\n\tETHERTYPE_NBPDLTE                 = 0x3c0a\n\tETHERTYPE_NBPRAR                  = 0x3c0c\n\tETHERTYPE_NBPRAS                  = 0x3c0b\n\tETHERTYPE_NBPRST                  = 0x3c0d\n\tETHERTYPE_NBPSCD                  = 0x3c01\n\tETHERTYPE_NBPVCD                  = 0x3c00\n\tETHERTYPE_NBS                     = 0x802\n\tETHERTYPE_NCD                     = 0x8149\n\tETHERTYPE_NESTAR                  = 0x8006\n\tETHERTYPE_NETBEUI                 = 0x8191\n\tETHERTYPE_NHRP                    = 0x2001\n\tETHERTYPE_NOVELL                  = 0x8138\n\tETHERTYPE_NS                      = 0x600\n\tETHERTYPE_NSAT                    = 0x601\n\tETHERTYPE_NSCOMPAT                = 0x807\n\tETHERTYPE_NSH                     = 0x984f\n\tETHERTYPE_NTRAILER                = 0x10\n\tETHERTYPE_OS9                     = 0x7007\n\tETHERTYPE_OS9NET                  = 0x7009\n\tETHERTYPE_PACER                   = 0x80c6\n\tETHERTYPE_PBB                     = 0x88e7\n\tETHERTYPE_PCS                     = 0x4242\n\tETHERTYPE_PLANNING                = 0x8044\n\tETHERTYPE_PPP                     = 0x880b\n\tETHERTYPE_PPPOE                   = 0x8864\n\tETHERTYPE_PPPOEDISC               = 0x8863\n\tETHERTYPE_PRIMENTS                = 0x7031\n\tETHERTYPE_PUP                     = 0x200\n\tETHERTYPE_PUPAT                   = 0x200\n\tETHERTYPE_QINQ                    = 0x88a8\n\tETHERTYPE_RACAL                   = 0x7030\n\tETHERTYPE_RATIONAL                = 0x8150\n\tETHERTYPE_RAWFR                   = 0x6559\n\tETHERTYPE_RCL                     = 0x1995\n\tETHERTYPE_RDP                     = 0x8739\n\tETHERTYPE_RETIX                   = 0x80f2\n\tETHERTYPE_REVARP                  = 0x8035\n\tETHERTYPE_SCA                     = 0x6007\n\tETHERTYPE_SECTRA                  = 0x86db\n\tETHERTYPE_SECUREDATA              = 0x876d\n\tETHERTYPE_SGITW                   = 0x817e\n\tETHERTYPE_SG_BOUNCE               = 0x8016\n\tETHERTYPE_SG_DIAG                 = 0x8013\n\tETHERTYPE_SG_NETGAMES             = 0x8014\n\tETHERTYPE_SG_RESV                 = 0x8015\n\tETHERTYPE_SIMNET                  = 0x5208\n\tETHERTYPE_SLOW                    = 0x8809\n\tETHERTYPE_SNA                     = 0x80d5\n\tETHERTYPE_SNMP                    = 0x814c\n\tETHERTYPE_SONIX                   = 0xfaf5\n\tETHERTYPE_SPIDER                  = 0x809f\n\tETHERTYPE_SPRITE                  = 0x500\n\tETHERTYPE_STP                     = 0x8181\n\tETHERTYPE_TALARIS                 = 0x812b\n\tETHERTYPE_TALARISMC               = 0x852b\n\tETHERTYPE_TCPCOMP                 = 0x876b\n\tETHERTYPE_TCPSM                   = 0x9002\n\tETHERTYPE_TEC                     = 0x814f\n\tETHERTYPE_TIGAN                   = 0x802f\n\tETHERTYPE_TRAIL                   = 0x1000\n\tETHERTYPE_TRANSETHER              = 0x6558\n\tETHERTYPE_TYMSHARE                = 0x802e\n\tETHERTYPE_UBBST                   = 0x7005\n\tETHERTYPE_UBDEBUG                 = 0x900\n\tETHERTYPE_UBDIAGLOOP              = 0x7002\n\tETHERTYPE_UBDL                    = 0x7000\n\tETHERTYPE_UBNIU                   = 0x7001\n\tETHERTYPE_UBNMC                   = 0x7003\n\tETHERTYPE_VALID                   = 0x1600\n\tETHERTYPE_VARIAN                  = 0x80dd\n\tETHERTYPE_VAXELN                  = 0x803b\n\tETHERTYPE_VEECO                   = 0x8067\n\tETHERTYPE_VEXP                    = 0x805b\n\tETHERTYPE_VGLAB                   = 0x8131\n\tETHERTYPE_VINES                   = 0xbad\n\tETHERTYPE_VINESECHO               = 0xbaf\n\tETHERTYPE_VINESLOOP               = 0xbae\n\tETHERTYPE_VITAL                   = 0xff00\n\tETHERTYPE_VLAN                    = 0x8100\n\tETHERTYPE_VLTLMAN                 = 0x8080\n\tETHERTYPE_VPROD                   = 0x805c\n\tETHERTYPE_VURESERVED              = 0x8147\n\tETHERTYPE_WATERLOO                = 0x8130\n\tETHERTYPE_WELLFLEET               = 0x8103\n\tETHERTYPE_X25                     = 0x805\n\tETHERTYPE_X75                     = 0x801\n\tETHERTYPE_XNSSM                   = 0x9001\n\tETHERTYPE_XTP                     = 0x817d\n\tETHER_ADDR_LEN                    = 0x6\n\tETHER_ALIGN                       = 0x2\n\tETHER_CRC_LEN                     = 0x4\n\tETHER_CRC_POLY_BE                 = 0x4c11db6\n\tETHER_CRC_POLY_LE                 = 0xedb88320\n\tETHER_HDR_LEN                     = 0xe\n\tETHER_MAX_DIX_LEN                 = 0x600\n\tETHER_MAX_HARDMTU_LEN             = 0xff9b\n\tETHER_MAX_LEN                     = 0x5ee\n\tETHER_MIN_LEN                     = 0x40\n\tETHER_TYPE_LEN                    = 0x2\n\tETHER_VLAN_ENCAP_LEN              = 0x4\n\tEVFILT_AIO                        = -0x3\n\tEVFILT_DEVICE                     = -0x8\n\tEVFILT_EXCEPT                     = -0x9\n\tEVFILT_PROC                       = -0x5\n\tEVFILT_READ                       = -0x1\n\tEVFILT_SIGNAL                     = -0x6\n\tEVFILT_SYSCOUNT                   = 0x9\n\tEVFILT_TIMER                      = -0x7\n\tEVFILT_VNODE                      = -0x4\n\tEVFILT_WRITE                      = -0x2\n\tEVL_ENCAPLEN                      = 0x4\n\tEVL_PRIO_BITS                     = 0xd\n\tEVL_PRIO_MAX                      = 0x7\n\tEVL_VLID_MASK                     = 0xfff\n\tEVL_VLID_MAX                      = 0xffe\n\tEVL_VLID_MIN                      = 0x1\n\tEVL_VLID_NULL                     = 0x0\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_DISPATCH                       = 0x80\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_RECEIPT                        = 0x40\n\tEV_SYSFLAGS                       = 0xf800\n\tEXTA                              = 0x4b00\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x400\n\tFLUSHO                            = 0x800000\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0xa\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETOWN                          = 0x5\n\tF_ISATTY                          = 0xb\n\tF_OK                              = 0x0\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x8e52\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_STATICARP                     = 0x20\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BLUETOOTH                     = 0xf8\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf7\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DUMMY                         = 0xf1\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ECONET                        = 0xce\n\tIFT_ENC                           = 0xf4\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf3\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INFINIBAND                    = 0xc7\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LINEGROUP                     = 0xd2\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MBIM                          = 0xfa\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFLOW                         = 0xf9\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_PON155                        = 0xcf\n\tIFT_PON622                        = 0xd0\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPATM                       = 0xc5\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf2\n\tIFT_Q2931                         = 0xc9\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SIPSIG                        = 0xcc\n\tIFT_SIPTG                         = 0xcb\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TELINK                        = 0xc8\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VIRTUALTG                     = 0xca\n\tIFT_VOICEDID                      = 0xd5\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEEMFGD                    = 0xd3\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFGDEANA                  = 0xd4\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERCABLE                = 0xc6\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_WIREGUARD                     = 0xfb\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIN_RFC3021_HOST                   = 0x1\n\tIN_RFC3021_NET                    = 0xfffffffe\n\tIN_RFC3021_NSHIFT                 = 0x1f\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_DIVERT                    = 0x102\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x103\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_MPLS                      = 0x89\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_SCTP                      = 0x84\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_UDPLITE                   = 0x88\n\tIPV6_AUTH_LEVEL                   = 0x35\n\tIPV6_AUTOFLOWLABEL                = 0x3b\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_ESP_NETWORK_LEVEL            = 0x37\n\tIPV6_ESP_TRANS_LEVEL              = 0x36\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK               = 0xffff0f00\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_IPCOMP_LEVEL                 = 0x3c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MINHOPCOUNT                  = 0x41\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_OPTIONS                      = 0x1\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PIPEX                        = 0x3f\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVDSTPORT                  = 0x40\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTABLE                       = 0x1021\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_AUTH_LEVEL                     = 0x14\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_ESP_NETWORK_LEVEL              = 0x16\n\tIP_ESP_TRANS_LEVEL                = 0x15\n\tIP_HDRINCL                        = 0x2\n\tIP_IPCOMP_LEVEL                   = 0x1d\n\tIP_IPDEFTTL                       = 0x25\n\tIP_IPSECFLOWINFO                  = 0x24\n\tIP_IPSEC_LOCAL_AUTH               = 0x1b\n\tIP_IPSEC_LOCAL_CRED               = 0x19\n\tIP_IPSEC_LOCAL_ID                 = 0x17\n\tIP_IPSEC_REMOTE_AUTH              = 0x1c\n\tIP_IPSEC_REMOTE_CRED              = 0x1a\n\tIP_IPSEC_REMOTE_ID                = 0x18\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0xfff\n\tIP_MF                             = 0x2000\n\tIP_MINTTL                         = 0x20\n\tIP_MIN_MEMBERSHIPS                = 0xf\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PIPEX                          = 0x22\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVDSTPORT                    = 0x21\n\tIP_RECVIF                         = 0x1e\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVRTABLE                     = 0x23\n\tIP_RECVTTL                        = 0x1f\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_RTABLE                         = 0x1021\n\tIP_SENDSRCADDR                    = 0x7\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tITIMER_PROF                       = 0x2\n\tITIMER_REAL                       = 0x0\n\tITIMER_VIRTUAL                    = 0x1\n\tIUCLC                             = 0x1000\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLCNT_OVERLOAD_FLUSH               = 0x6\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x6\n\tMADV_NORMAL                       = 0x0\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SPACEAVAIL                   = 0x5\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ANON                          = 0x1000\n\tMAP_ANONYMOUS                     = 0x1000\n\tMAP_CONCEAL                       = 0x8000\n\tMAP_COPY                          = 0x2\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_FLAGMASK                      = 0xfff7\n\tMAP_HASSEMAPHORE                  = 0x0\n\tMAP_INHERIT                       = 0x0\n\tMAP_INHERIT_COPY                  = 0x1\n\tMAP_INHERIT_NONE                  = 0x2\n\tMAP_INHERIT_SHARE                 = 0x0\n\tMAP_INHERIT_ZERO                  = 0x3\n\tMAP_NOEXTEND                      = 0x0\n\tMAP_NORESERVE                     = 0x0\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x0\n\tMAP_SHARED                        = 0x1\n\tMAP_STACK                         = 0x4000\n\tMAP_TRYFIXED                      = 0x0\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DELEXPORT                     = 0x20000\n\tMNT_DOOMED                        = 0x8000000\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_FORCE                         = 0x80000\n\tMNT_LAZY                          = 0x3\n\tMNT_LOCAL                         = 0x1000\n\tMNT_NOATIME                       = 0x8000\n\tMNT_NODEV                         = 0x10\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOPERM                        = 0x20\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOWAIT                        = 0x2\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x4000000\n\tMNT_STALLED                       = 0x100000\n\tMNT_SWAPPABLE                     = 0x200000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0x400ffff\n\tMNT_WAIT                          = 0x1\n\tMNT_WANTRDWR                      = 0x2000000\n\tMNT_WXALLOWED                     = 0x800\n\tMOUNT_AFS                         = \"afs\"\n\tMOUNT_CD9660                      = \"cd9660\"\n\tMOUNT_EXT2FS                      = \"ext2fs\"\n\tMOUNT_FFS                         = \"ffs\"\n\tMOUNT_FUSEFS                      = \"fuse\"\n\tMOUNT_MFS                         = \"mfs\"\n\tMOUNT_MSDOS                       = \"msdos\"\n\tMOUNT_NCPFS                       = \"ncpfs\"\n\tMOUNT_NFS                         = \"nfs\"\n\tMOUNT_NTFS                        = \"ntfs\"\n\tMOUNT_TMPFS                       = \"tmpfs\"\n\tMOUNT_UDF                         = \"udf\"\n\tMOUNT_UFS                         = \"ffs\"\n\tMSG_BCAST                         = 0x100\n\tMSG_CMSG_CLOEXEC                  = 0x800\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOR                           = 0x8\n\tMSG_MCAST                         = 0x200\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_TRUNC                         = 0x10\n\tMSG_WAITALL                       = 0x40\n\tMSG_WAITFORONE                    = 0x1000\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x4\n\tMS_SYNC                           = 0x2\n\tNAME_MAX                          = 0xff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x3\n\tNET_RT_IFNAMES                    = 0x6\n\tNET_RT_MAXID                      = 0x8\n\tNET_RT_SOURCE                     = 0x7\n\tNET_RT_STATS                      = 0x4\n\tNET_RT_TABLE                      = 0x5\n\tNFDBITS                           = 0x20\n\tNOFLSH                            = 0x80000000\n\tNOKERNINFO                        = 0x2000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHANGE                       = 0x1\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EOF                          = 0x2\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_OOB                          = 0x4\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_TRUNCATE                     = 0x80\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tOLCUC                             = 0x20\n\tONLCR                             = 0x2\n\tONLRET                            = 0x80\n\tONOCR                             = 0x40\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tOXTABS                            = 0x4\n\tO_ACCMODE                         = 0x3\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x10000\n\tO_CREAT                           = 0x200\n\tO_DIRECTORY                       = 0x20000\n\tO_DSYNC                           = 0x80\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_RSYNC                           = 0x80\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPF_FLUSH                          = 0x1\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BFD                          = 0xb\n\tRTAX_BRD                          = 0x7\n\tRTAX_DNS                          = 0xc\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_LABEL                        = 0xa\n\tRTAX_MAX                          = 0xf\n\tRTAX_NETMASK                      = 0x2\n\tRTAX_SEARCH                       = 0xe\n\tRTAX_SRC                          = 0x8\n\tRTAX_SRCMASK                      = 0x9\n\tRTAX_STATIC                       = 0xd\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BFD                           = 0x800\n\tRTA_BRD                           = 0x80\n\tRTA_DNS                           = 0x1000\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_LABEL                         = 0x400\n\tRTA_NETMASK                       = 0x4\n\tRTA_SEARCH                        = 0x4000\n\tRTA_SRC                           = 0x100\n\tRTA_SRCMASK                       = 0x200\n\tRTA_STATIC                        = 0x2000\n\tRTF_ANNOUNCE                      = 0x4000\n\tRTF_BFD                           = 0x1000000\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_BROADCAST                     = 0x400000\n\tRTF_CACHED                        = 0x20000\n\tRTF_CLONED                        = 0x10000\n\tRTF_CLONING                       = 0x100\n\tRTF_CONNECTED                     = 0x800000\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_FMASK                         = 0x110fc08\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_LOCAL                         = 0x200000\n\tRTF_MODIFIED                      = 0x20\n\tRTF_MPATH                         = 0x40000\n\tRTF_MPLS                          = 0x100000\n\tRTF_MULTICAST                     = 0x200\n\tRTF_PERMANENT_ARP                 = 0x2000\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_PROTO3                        = 0x2000\n\tRTF_REJECT                        = 0x8\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_USETRAILERS                   = 0x8000\n\tRTM_80211INFO                     = 0x15\n\tRTM_ADD                           = 0x1\n\tRTM_BFD                           = 0x12\n\tRTM_CHANGE                        = 0x3\n\tRTM_CHGADDRATTR                   = 0x14\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_DESYNC                        = 0x10\n\tRTM_GET                           = 0x4\n\tRTM_IFANNOUNCE                    = 0xf\n\tRTM_IFINFO                        = 0xe\n\tRTM_INVALIDATE                    = 0x11\n\tRTM_LOSING                        = 0x5\n\tRTM_MAXSIZE                       = 0x800\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_PROPOSAL                      = 0x13\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_SOURCE                        = 0x16\n\tRTM_VERSION                       = 0x5\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRT_TABLEID_BITS                   = 0x8\n\tRT_TABLEID_MASK                   = 0xff\n\tRT_TABLEID_MAX                    = 0xff\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tRUSAGE_THREAD                     = 0x1\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x4\n\tSEEK_CUR                          = 0x1\n\tSEEK_END                          = 0x2\n\tSEEK_SET                          = 0x0\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80206931\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCAIFGROUP                      = 0x80286987\n\tSIOCATMARK                        = 0x40047307\n\tSIOCBRDGADD                       = 0x8060693c\n\tSIOCBRDGADDL                      = 0x80606949\n\tSIOCBRDGADDS                      = 0x80606941\n\tSIOCBRDGARL                       = 0x808c694d\n\tSIOCBRDGDADDR                     = 0x81286947\n\tSIOCBRDGDEL                       = 0x8060693d\n\tSIOCBRDGDELS                      = 0x80606942\n\tSIOCBRDGFLUSH                     = 0x80606948\n\tSIOCBRDGFRL                       = 0x808c694e\n\tSIOCBRDGGCACHE                    = 0xc0146941\n\tSIOCBRDGGFD                       = 0xc0146952\n\tSIOCBRDGGHT                       = 0xc0146951\n\tSIOCBRDGGIFFLGS                   = 0xc060693e\n\tSIOCBRDGGMA                       = 0xc0146953\n\tSIOCBRDGGPARAM                    = 0xc0406958\n\tSIOCBRDGGPRI                      = 0xc0146950\n\tSIOCBRDGGRL                       = 0xc030694f\n\tSIOCBRDGGTO                       = 0xc0146946\n\tSIOCBRDGIFS                       = 0xc0606942\n\tSIOCBRDGRTS                       = 0xc0206943\n\tSIOCBRDGSADDR                     = 0xc1286944\n\tSIOCBRDGSCACHE                    = 0x80146940\n\tSIOCBRDGSFD                       = 0x80146952\n\tSIOCBRDGSHT                       = 0x80146951\n\tSIOCBRDGSIFCOST                   = 0x80606955\n\tSIOCBRDGSIFFLGS                   = 0x8060693f\n\tSIOCBRDGSIFPRIO                   = 0x80606954\n\tSIOCBRDGSIFPROT                   = 0x8060694a\n\tSIOCBRDGSMA                       = 0x80146953\n\tSIOCBRDGSPRI                      = 0x80146950\n\tSIOCBRDGSPROTO                    = 0x8014695a\n\tSIOCBRDGSTO                       = 0x80146945\n\tSIOCBRDGSTXHC                     = 0x80146959\n\tSIOCDELLABEL                      = 0x80206997\n\tSIOCDELMULTI                      = 0x80206932\n\tSIOCDIFADDR                       = 0x80206919\n\tSIOCDIFGROUP                      = 0x80286989\n\tSIOCDIFPARENT                     = 0x802069b4\n\tSIOCDIFPHYADDR                    = 0x80206949\n\tSIOCDPWE3NEIGHBOR                 = 0x802069de\n\tSIOCDVNETID                       = 0x802069af\n\tSIOCGETKALIVE                     = 0xc01869a4\n\tSIOCGETLABEL                      = 0x8020699a\n\tSIOCGETMPWCFG                     = 0xc02069ae\n\tSIOCGETPFLOW                      = 0xc02069fe\n\tSIOCGETPFSYNC                     = 0xc02069f8\n\tSIOCGETSGCNT                      = 0xc0207534\n\tSIOCGETVIFCNT                     = 0xc0287533\n\tSIOCGETVLAN                       = 0xc0206990\n\tSIOCGIFADDR                       = 0xc0206921\n\tSIOCGIFBRDADDR                    = 0xc0206923\n\tSIOCGIFCONF                       = 0xc0106924\n\tSIOCGIFDATA                       = 0xc020691b\n\tSIOCGIFDESCR                      = 0xc0206981\n\tSIOCGIFDSTADDR                    = 0xc0206922\n\tSIOCGIFFLAGS                      = 0xc0206911\n\tSIOCGIFGATTR                      = 0xc028698b\n\tSIOCGIFGENERIC                    = 0xc020693a\n\tSIOCGIFGLIST                      = 0xc028698d\n\tSIOCGIFGMEMB                      = 0xc028698a\n\tSIOCGIFGROUP                      = 0xc0286988\n\tSIOCGIFHARDMTU                    = 0xc02069a5\n\tSIOCGIFLLPRIO                     = 0xc02069b6\n\tSIOCGIFMEDIA                      = 0xc0406938\n\tSIOCGIFMETRIC                     = 0xc0206917\n\tSIOCGIFMTU                        = 0xc020697e\n\tSIOCGIFNETMASK                    = 0xc0206925\n\tSIOCGIFPAIR                       = 0xc02069b1\n\tSIOCGIFPARENT                     = 0xc02069b3\n\tSIOCGIFPRIORITY                   = 0xc020699c\n\tSIOCGIFRDOMAIN                    = 0xc02069a0\n\tSIOCGIFRTLABEL                    = 0xc0206983\n\tSIOCGIFRXR                        = 0x802069aa\n\tSIOCGIFSFFPAGE                    = 0xc1126939\n\tSIOCGIFXFLAGS                     = 0xc020699e\n\tSIOCGLIFPHYADDR                   = 0xc218694b\n\tSIOCGLIFPHYDF                     = 0xc02069c2\n\tSIOCGLIFPHYECN                    = 0xc02069c8\n\tSIOCGLIFPHYRTABLE                 = 0xc02069a2\n\tSIOCGLIFPHYTTL                    = 0xc02069a9\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGPWE3                         = 0xc0206998\n\tSIOCGPWE3CTRLWORD                 = 0xc02069dc\n\tSIOCGPWE3FAT                      = 0xc02069dd\n\tSIOCGPWE3NEIGHBOR                 = 0xc21869de\n\tSIOCGRXHPRIO                      = 0xc02069db\n\tSIOCGSPPPPARAMS                   = 0xc0206994\n\tSIOCGTXHPRIO                      = 0xc02069c6\n\tSIOCGUMBINFO                      = 0xc02069be\n\tSIOCGUMBPARAM                     = 0xc02069c0\n\tSIOCGVH                           = 0xc02069f6\n\tSIOCGVNETFLOWID                   = 0xc02069c4\n\tSIOCGVNETID                       = 0xc02069a7\n\tSIOCIFAFATTACH                    = 0x801169ab\n\tSIOCIFAFDETACH                    = 0x801169ac\n\tSIOCIFCREATE                      = 0x8020697a\n\tSIOCIFDESTROY                     = 0x80206979\n\tSIOCIFGCLONERS                    = 0xc0106978\n\tSIOCSETKALIVE                     = 0x801869a3\n\tSIOCSETLABEL                      = 0x80206999\n\tSIOCSETMPWCFG                     = 0x802069ad\n\tSIOCSETPFLOW                      = 0x802069fd\n\tSIOCSETPFSYNC                     = 0x802069f7\n\tSIOCSETVLAN                       = 0x8020698f\n\tSIOCSIFADDR                       = 0x8020690c\n\tSIOCSIFBRDADDR                    = 0x80206913\n\tSIOCSIFDESCR                      = 0x80206980\n\tSIOCSIFDSTADDR                    = 0x8020690e\n\tSIOCSIFFLAGS                      = 0x80206910\n\tSIOCSIFGATTR                      = 0x8028698c\n\tSIOCSIFGENERIC                    = 0x80206939\n\tSIOCSIFLLADDR                     = 0x8020691f\n\tSIOCSIFLLPRIO                     = 0x802069b5\n\tSIOCSIFMEDIA                      = 0xc0206937\n\tSIOCSIFMETRIC                     = 0x80206918\n\tSIOCSIFMTU                        = 0x8020697f\n\tSIOCSIFNETMASK                    = 0x80206916\n\tSIOCSIFPAIR                       = 0x802069b0\n\tSIOCSIFPARENT                     = 0x802069b2\n\tSIOCSIFPRIORITY                   = 0x8020699b\n\tSIOCSIFRDOMAIN                    = 0x8020699f\n\tSIOCSIFRTLABEL                    = 0x80206982\n\tSIOCSIFXFLAGS                     = 0x8020699d\n\tSIOCSLIFPHYADDR                   = 0x8218694a\n\tSIOCSLIFPHYDF                     = 0x802069c1\n\tSIOCSLIFPHYECN                    = 0x802069c7\n\tSIOCSLIFPHYRTABLE                 = 0x802069a1\n\tSIOCSLIFPHYTTL                    = 0x802069a8\n\tSIOCSPGRP                         = 0x80047308\n\tSIOCSPWE3CTRLWORD                 = 0x802069dc\n\tSIOCSPWE3FAT                      = 0x802069dd\n\tSIOCSPWE3NEIGHBOR                 = 0x821869de\n\tSIOCSRXHPRIO                      = 0x802069db\n\tSIOCSSPPPPARAMS                   = 0x80206993\n\tSIOCSTXHPRIO                      = 0x802069c5\n\tSIOCSUMBPARAM                     = 0x802069bf\n\tSIOCSVH                           = 0xc02069f5\n\tSIOCSVNETFLOWID                   = 0x802069c3\n\tSIOCSVNETID                       = 0x802069a6\n\tSOCK_CLOEXEC                      = 0x8000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_DNS                          = 0x1000\n\tSOCK_NONBLOCK                     = 0x4000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_BINDANY                        = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DOMAIN                         = 0x1024\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NETPROC                        = 0x1020\n\tSO_OOBINLINE                      = 0x100\n\tSO_PEERCRED                       = 0x1022\n\tSO_PROTOCOL                       = 0x1025\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x1006\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_RTABLE                         = 0x1021\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x1005\n\tSO_SPLICE                         = 0x1023\n\tSO_TIMESTAMP                      = 0x800\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tSO_ZEROIZE                        = 0x2000\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tTCIFLUSH                          = 0x1\n\tTCIOFF                            = 0x3\n\tTCIOFLUSH                         = 0x3\n\tTCION                             = 0x4\n\tTCOFLUSH                          = 0x2\n\tTCOOFF                            = 0x1\n\tTCOON                             = 0x2\n\tTCPOPT_EOL                        = 0x0\n\tTCPOPT_MAXSEG                     = 0x2\n\tTCPOPT_NOP                        = 0x1\n\tTCPOPT_SACK                       = 0x5\n\tTCPOPT_SACK_HDR                   = 0x1010500\n\tTCPOPT_SACK_PERMITTED             = 0x4\n\tTCPOPT_SACK_PERMIT_HDR            = 0x1010402\n\tTCPOPT_SIGNATURE                  = 0x13\n\tTCPOPT_TIMESTAMP                  = 0x8\n\tTCPOPT_TSTAMP_HDR                 = 0x101080a\n\tTCPOPT_WINDOW                     = 0x3\n\tTCP_INFO                          = 0x9\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_SACK                      = 0x3\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MD5SIG                        = 0x4\n\tTCP_MSS                           = 0x200\n\tTCP_NODELAY                       = 0x1\n\tTCP_NOPUSH                        = 0x10\n\tTCP_SACKHOLE_LIMIT                = 0x80\n\tTCP_SACK_ENABLE                   = 0x8\n\tTCSAFLUSH                         = 0x2\n\tTIMER_ABSTIME                     = 0x1\n\tTIMER_RELTIME                     = 0x0\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCHKVERAUTH                    = 0x2000741e\n\tTIOCCLRVERAUTH                    = 0x2000741d\n\tTIOCCONS                          = 0x80047462\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLAG_CLOCAL                   = 0x2\n\tTIOCFLAG_CRTSCTS                  = 0x4\n\tTIOCFLAG_MDMBUF                   = 0x8\n\tTIOCFLAG_PPS                      = 0x10\n\tTIOCFLAG_SOFTCAR                  = 0x1\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGFLAGS                        = 0x4004745d\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGSID                          = 0x40047463\n\tTIOCGTSTAMP                       = 0x4010745b\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMODG                          = 0x4004746a\n\tTIOCMODS                          = 0x8004746d\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSETVERAUTH                    = 0x8004741c\n\tTIOCSFLAGS                        = 0x8004745c\n\tTIOCSIG                           = 0x8004745f\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x20007465\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSTSTAMP                       = 0x8008745a\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCUCNTL                         = 0x80047466\n\tTIOCUCNTL_CBRK                    = 0x7a\n\tTIOCUCNTL_SBRK                    = 0x7b\n\tTOSTOP                            = 0x400000\n\tUTIME_NOW                         = -0x2\n\tUTIME_OMIT                        = -0x1\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVM_ANONMIN                        = 0x7\n\tVM_LOADAVG                        = 0x2\n\tVM_MALLOC_CONF                    = 0xc\n\tVM_MAXID                          = 0xd\n\tVM_MAXSLP                         = 0xa\n\tVM_METER                          = 0x1\n\tVM_NKMEMPAGES                     = 0x6\n\tVM_PSSTRINGS                      = 0x3\n\tVM_SWAPENCRYPT                    = 0x5\n\tVM_USPACE                         = 0xb\n\tVM_UVMEXP                         = 0x4\n\tVM_VNODEMIN                       = 0x9\n\tVM_VTEXTMIN                       = 0x8\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWALTSIG                           = 0x4\n\tWCONTINUED                        = 0x8\n\tWCOREFLAG                         = 0x80\n\tWNOHANG                           = 0x1\n\tWUNTRACED                         = 0x2\n\tXCASE                             = 0x1000000\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x5c)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x58)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x59)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEIPSEC          = syscall.Errno(0x52)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x5f)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMEDIUMTYPE     = syscall.Errno(0x56)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x53)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOMEDIUM       = syscall.Errno(0x55)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x5a)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x5d)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x5b)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x57)\n\tEOWNERDEAD      = syscall.Errno(0x5e)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5f)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disk quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC program not available\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIPSEC\", \"IPsec processing failure\"},\n\t{83, \"ENOATTR\", \"attribute not found\"},\n\t{84, \"EILSEQ\", \"illegal byte sequence\"},\n\t{85, \"ENOMEDIUM\", \"no medium found\"},\n\t{86, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{87, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{88, \"ECANCELED\", \"operation canceled\"},\n\t{89, \"EIDRM\", \"identifier removed\"},\n\t{90, \"ENOMSG\", \"no message of desired type\"},\n\t{91, \"ENOTSUP\", \"not supported\"},\n\t{92, \"EBADMSG\", \"bad message\"},\n\t{93, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{94, \"EOWNERDEAD\", \"previous owner died\"},\n\t{95, \"ELAST\", \"protocol error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"thread AST\"},\n\t{28672, \"SIGSTKSZ\", \"unknown signal\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go",
    "content": "// mkerrors.sh\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm && openbsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_BLUETOOTH                      = 0x20\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_ENCAP                          = 0x1c\n\tAF_HYLINK                         = 0xf\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x18\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_KEY                            = 0x1e\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x24\n\tAF_MPLS                           = 0x21\n\tAF_NATM                           = 0x1b\n\tAF_NS                             = 0x6\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x11\n\tAF_SIP                            = 0x1d\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tALTWERASE                         = 0x200\n\tARPHRD_ETHER                      = 0x1\n\tARPHRD_FRELAY                     = 0xf\n\tARPHRD_IEEE1394                   = 0x18\n\tARPHRD_IEEE802                    = 0x6\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB9600                             = 0x2580\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDIRFILT                      = 0x4004427c\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc008427b\n\tBIOCGETIF                         = 0x4020426b\n\tBIOCGFILDROP                      = 0x40044278\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRSIG                         = 0x40044273\n\tBIOCGRTIMEOUT                     = 0x4010426e\n\tBIOCGSTATS                        = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCLOCK                          = 0x20004276\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDIRFILT                      = 0x8004427d\n\tBIOCSDLT                          = 0x8004427a\n\tBIOCSETF                          = 0x80084267\n\tBIOCSETIF                         = 0x8020426c\n\tBIOCSETWF                         = 0x80084277\n\tBIOCSFILDROP                      = 0x80044279\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRSIG                         = 0x80044272\n\tBIOCSRTIMEOUT                     = 0x8010426d\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DIRECTION_IN                  = 0x1\n\tBPF_DIRECTION_OUT                 = 0x2\n\tBPF_DIV                           = 0x30\n\tBPF_FILDROP_CAPTURE               = 0x1\n\tBPF_FILDROP_DROP                  = 0x2\n\tBPF_FILDROP_PASS                  = 0x0\n\tBPF_F_DIR_IN                      = 0x10\n\tBPF_F_DIR_MASK                    = 0x30\n\tBPF_F_DIR_OUT                     = 0x20\n\tBPF_F_DIR_SHIFT                   = 0x4\n\tBPF_F_FLOWID                      = 0x8\n\tBPF_F_PRI_MASK                    = 0x7\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x200000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RND                           = 0xc0\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCLOCK_BOOTTIME                    = 0x6\n\tCLOCK_MONOTONIC                   = 0x3\n\tCLOCK_PROCESS_CPUTIME_ID          = 0x2\n\tCLOCK_REALTIME                    = 0x0\n\tCLOCK_THREAD_CPUTIME_ID           = 0x4\n\tCLOCK_UPTIME                      = 0x5\n\tCPUSTATES                         = 0x6\n\tCP_IDLE                           = 0x5\n\tCP_INTR                           = 0x4\n\tCP_NICE                           = 0x1\n\tCP_SPIN                           = 0x3\n\tCP_SYS                            = 0x2\n\tCP_USER                           = 0x0\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x10000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0xff\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tDIOCADDQUEUE                      = 0xc100445d\n\tDIOCADDRULE                       = 0xcce04404\n\tDIOCADDSTATE                      = 0xc1084425\n\tDIOCCHANGERULE                    = 0xcce0441a\n\tDIOCCLRIFFLAG                     = 0xc024445a\n\tDIOCCLRSRCNODES                   = 0x20004455\n\tDIOCCLRSTATES                     = 0xc0d04412\n\tDIOCCLRSTATUS                     = 0xc0244416\n\tDIOCGETLIMIT                      = 0xc0084427\n\tDIOCGETQSTATS                     = 0xc1084460\n\tDIOCGETQUEUE                      = 0xc100445f\n\tDIOCGETQUEUES                     = 0xc100445e\n\tDIOCGETRULE                       = 0xcce04407\n\tDIOCGETRULES                      = 0xcce04406\n\tDIOCGETRULESET                    = 0xc444443b\n\tDIOCGETRULESETS                   = 0xc444443a\n\tDIOCGETSRCNODES                   = 0xc0084454\n\tDIOCGETSTATE                      = 0xc1084413\n\tDIOCGETSTATES                     = 0xc0084419\n\tDIOCGETSTATUS                     = 0xc1e84415\n\tDIOCGETSYNFLWATS                  = 0xc0084463\n\tDIOCGETTIMEOUT                    = 0xc008441e\n\tDIOCIGETIFACES                    = 0xc0244457\n\tDIOCKILLSRCNODES                  = 0xc068445b\n\tDIOCKILLSTATES                    = 0xc0d04429\n\tDIOCNATLOOK                       = 0xc0504417\n\tDIOCOSFPADD                       = 0xc088444f\n\tDIOCOSFPFLUSH                     = 0x2000444e\n\tDIOCOSFPGET                       = 0xc0884450\n\tDIOCRADDADDRS                     = 0xc44c4443\n\tDIOCRADDTABLES                    = 0xc44c443d\n\tDIOCRCLRADDRS                     = 0xc44c4442\n\tDIOCRCLRASTATS                    = 0xc44c4448\n\tDIOCRCLRTABLES                    = 0xc44c443c\n\tDIOCRCLRTSTATS                    = 0xc44c4441\n\tDIOCRDELADDRS                     = 0xc44c4444\n\tDIOCRDELTABLES                    = 0xc44c443e\n\tDIOCRGETADDRS                     = 0xc44c4446\n\tDIOCRGETASTATS                    = 0xc44c4447\n\tDIOCRGETTABLES                    = 0xc44c443f\n\tDIOCRGETTSTATS                    = 0xc44c4440\n\tDIOCRINADEFINE                    = 0xc44c444d\n\tDIOCRSETADDRS                     = 0xc44c4445\n\tDIOCRSETTFLAGS                    = 0xc44c444a\n\tDIOCRTSTADDRS                     = 0xc44c4449\n\tDIOCSETDEBUG                      = 0xc0044418\n\tDIOCSETHOSTID                     = 0xc0044456\n\tDIOCSETIFFLAG                     = 0xc0244459\n\tDIOCSETLIMIT                      = 0xc0084428\n\tDIOCSETREASS                      = 0xc004445c\n\tDIOCSETSTATUSIF                   = 0xc0244414\n\tDIOCSETSYNCOOKIES                 = 0xc0014462\n\tDIOCSETSYNFLWATS                  = 0xc0084461\n\tDIOCSETTIMEOUT                    = 0xc008441d\n\tDIOCSTART                         = 0x20004401\n\tDIOCSTOP                          = 0x20004402\n\tDIOCXBEGIN                        = 0xc00c4451\n\tDIOCXCOMMIT                       = 0xc00c4452\n\tDIOCXROLLBACK                     = 0xc00c4453\n\tDLT_ARCNET                        = 0x7\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AX25                          = 0x3\n\tDLT_CHAOS                         = 0x5\n\tDLT_C_HDLC                        = 0x68\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0xd\n\tDLT_FDDI                          = 0xa\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_LOOP                          = 0xc\n\tDLT_MPLS                          = 0xdb\n\tDLT_NULL                          = 0x0\n\tDLT_OPENFLOW                      = 0x10b\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0x10\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PRONET                        = 0x4\n\tDLT_RAW                           = 0xe\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xf\n\tDLT_USBPCAP                       = 0xf9\n\tDLT_USER0                         = 0x93\n\tDLT_USER1                         = 0x94\n\tDLT_USER10                        = 0x9d\n\tDLT_USER11                        = 0x9e\n\tDLT_USER12                        = 0x9f\n\tDLT_USER13                        = 0xa0\n\tDLT_USER14                        = 0xa1\n\tDLT_USER15                        = 0xa2\n\tDLT_USER2                         = 0x95\n\tDLT_USER3                         = 0x96\n\tDLT_USER4                         = 0x97\n\tDLT_USER5                         = 0x98\n\tDLT_USER6                         = 0x99\n\tDLT_USER7                         = 0x9a\n\tDLT_USER8                         = 0x9b\n\tDLT_USER9                         = 0x9c\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEMT_TAGOVF                        = 0x1\n\tEMUL_ENABLED                      = 0x1\n\tEMUL_NATIVE                       = 0x2\n\tENDRUNDISC                        = 0x9\n\tETH64_8021_RSVD_MASK              = 0xfffffffffff0\n\tETH64_8021_RSVD_PREFIX            = 0x180c2000000\n\tETHERMIN                          = 0x2e\n\tETHERMTU                          = 0x5dc\n\tETHERTYPE_8023                    = 0x4\n\tETHERTYPE_AARP                    = 0x80f3\n\tETHERTYPE_ACCTON                  = 0x8390\n\tETHERTYPE_AEONIC                  = 0x8036\n\tETHERTYPE_ALPHA                   = 0x814a\n\tETHERTYPE_AMBER                   = 0x6008\n\tETHERTYPE_AMOEBA                  = 0x8145\n\tETHERTYPE_AOE                     = 0x88a2\n\tETHERTYPE_APOLLO                  = 0x80f7\n\tETHERTYPE_APOLLODOMAIN            = 0x8019\n\tETHERTYPE_APPLETALK               = 0x809b\n\tETHERTYPE_APPLITEK                = 0x80c7\n\tETHERTYPE_ARGONAUT                = 0x803a\n\tETHERTYPE_ARP                     = 0x806\n\tETHERTYPE_AT                      = 0x809b\n\tETHERTYPE_ATALK                   = 0x809b\n\tETHERTYPE_ATOMIC                  = 0x86df\n\tETHERTYPE_ATT                     = 0x8069\n\tETHERTYPE_ATTSTANFORD             = 0x8008\n\tETHERTYPE_AUTOPHON                = 0x806a\n\tETHERTYPE_AXIS                    = 0x8856\n\tETHERTYPE_BCLOOP                  = 0x9003\n\tETHERTYPE_BOFL                    = 0x8102\n\tETHERTYPE_CABLETRON               = 0x7034\n\tETHERTYPE_CHAOS                   = 0x804\n\tETHERTYPE_COMDESIGN               = 0x806c\n\tETHERTYPE_COMPUGRAPHIC            = 0x806d\n\tETHERTYPE_COUNTERPOINT            = 0x8062\n\tETHERTYPE_CRONUS                  = 0x8004\n\tETHERTYPE_CRONUSVLN               = 0x8003\n\tETHERTYPE_DCA                     = 0x1234\n\tETHERTYPE_DDE                     = 0x807b\n\tETHERTYPE_DEBNI                   = 0xaaaa\n\tETHERTYPE_DECAM                   = 0x8048\n\tETHERTYPE_DECCUST                 = 0x6006\n\tETHERTYPE_DECDIAG                 = 0x6005\n\tETHERTYPE_DECDNS                  = 0x803c\n\tETHERTYPE_DECDTS                  = 0x803e\n\tETHERTYPE_DECEXPER                = 0x6000\n\tETHERTYPE_DECLAST                 = 0x8041\n\tETHERTYPE_DECLTM                  = 0x803f\n\tETHERTYPE_DECMUMPS                = 0x6009\n\tETHERTYPE_DECNETBIOS              = 0x8040\n\tETHERTYPE_DELTACON                = 0x86de\n\tETHERTYPE_DIDDLE                  = 0x4321\n\tETHERTYPE_DLOG1                   = 0x660\n\tETHERTYPE_DLOG2                   = 0x661\n\tETHERTYPE_DN                      = 0x6003\n\tETHERTYPE_DOGFIGHT                = 0x1989\n\tETHERTYPE_DSMD                    = 0x8039\n\tETHERTYPE_EAPOL                   = 0x888e\n\tETHERTYPE_ECMA                    = 0x803\n\tETHERTYPE_ENCRYPT                 = 0x803d\n\tETHERTYPE_ES                      = 0x805d\n\tETHERTYPE_EXCELAN                 = 0x8010\n\tETHERTYPE_EXPERDATA               = 0x8049\n\tETHERTYPE_FLIP                    = 0x8146\n\tETHERTYPE_FLOWCONTROL             = 0x8808\n\tETHERTYPE_FRARP                   = 0x808\n\tETHERTYPE_GENDYN                  = 0x8068\n\tETHERTYPE_HAYES                   = 0x8130\n\tETHERTYPE_HIPPI_FP                = 0x8180\n\tETHERTYPE_HITACHI                 = 0x8820\n\tETHERTYPE_HP                      = 0x8005\n\tETHERTYPE_IEEEPUP                 = 0xa00\n\tETHERTYPE_IEEEPUPAT               = 0xa01\n\tETHERTYPE_IMLBL                   = 0x4c42\n\tETHERTYPE_IMLBLDIAG               = 0x424c\n\tETHERTYPE_IP                      = 0x800\n\tETHERTYPE_IPAS                    = 0x876c\n\tETHERTYPE_IPV6                    = 0x86dd\n\tETHERTYPE_IPX                     = 0x8137\n\tETHERTYPE_IPXNEW                  = 0x8037\n\tETHERTYPE_KALPANA                 = 0x8582\n\tETHERTYPE_LANBRIDGE               = 0x8038\n\tETHERTYPE_LANPROBE                = 0x8888\n\tETHERTYPE_LAT                     = 0x6004\n\tETHERTYPE_LBACK                   = 0x9000\n\tETHERTYPE_LITTLE                  = 0x8060\n\tETHERTYPE_LLDP                    = 0x88cc\n\tETHERTYPE_LOGICRAFT               = 0x8148\n\tETHERTYPE_LOOPBACK                = 0x9000\n\tETHERTYPE_MACSEC                  = 0x88e5\n\tETHERTYPE_MATRA                   = 0x807a\n\tETHERTYPE_MAX                     = 0xffff\n\tETHERTYPE_MERIT                   = 0x807c\n\tETHERTYPE_MICP                    = 0x873a\n\tETHERTYPE_MOPDL                   = 0x6001\n\tETHERTYPE_MOPRC                   = 0x6002\n\tETHERTYPE_MOTOROLA                = 0x818d\n\tETHERTYPE_MPLS                    = 0x8847\n\tETHERTYPE_MPLS_MCAST              = 0x8848\n\tETHERTYPE_MUMPS                   = 0x813f\n\tETHERTYPE_NBPCC                   = 0x3c04\n\tETHERTYPE_NBPCLAIM                = 0x3c09\n\tETHERTYPE_NBPCLREQ                = 0x3c05\n\tETHERTYPE_NBPCLRSP                = 0x3c06\n\tETHERTYPE_NBPCREQ                 = 0x3c02\n\tETHERTYPE_NBPCRSP                 = 0x3c03\n\tETHERTYPE_NBPDG                   = 0x3c07\n\tETHERTYPE_NBPDGB                  = 0x3c08\n\tETHERTYPE_NBPDLTE                 = 0x3c0a\n\tETHERTYPE_NBPRAR                  = 0x3c0c\n\tETHERTYPE_NBPRAS                  = 0x3c0b\n\tETHERTYPE_NBPRST                  = 0x3c0d\n\tETHERTYPE_NBPSCD                  = 0x3c01\n\tETHERTYPE_NBPVCD                  = 0x3c00\n\tETHERTYPE_NBS                     = 0x802\n\tETHERTYPE_NCD                     = 0x8149\n\tETHERTYPE_NESTAR                  = 0x8006\n\tETHERTYPE_NETBEUI                 = 0x8191\n\tETHERTYPE_NHRP                    = 0x2001\n\tETHERTYPE_NOVELL                  = 0x8138\n\tETHERTYPE_NS                      = 0x600\n\tETHERTYPE_NSAT                    = 0x601\n\tETHERTYPE_NSCOMPAT                = 0x807\n\tETHERTYPE_NSH                     = 0x984f\n\tETHERTYPE_NTRAILER                = 0x10\n\tETHERTYPE_OS9                     = 0x7007\n\tETHERTYPE_OS9NET                  = 0x7009\n\tETHERTYPE_PACER                   = 0x80c6\n\tETHERTYPE_PBB                     = 0x88e7\n\tETHERTYPE_PCS                     = 0x4242\n\tETHERTYPE_PLANNING                = 0x8044\n\tETHERTYPE_PPP                     = 0x880b\n\tETHERTYPE_PPPOE                   = 0x8864\n\tETHERTYPE_PPPOEDISC               = 0x8863\n\tETHERTYPE_PRIMENTS                = 0x7031\n\tETHERTYPE_PUP                     = 0x200\n\tETHERTYPE_PUPAT                   = 0x200\n\tETHERTYPE_QINQ                    = 0x88a8\n\tETHERTYPE_RACAL                   = 0x7030\n\tETHERTYPE_RATIONAL                = 0x8150\n\tETHERTYPE_RAWFR                   = 0x6559\n\tETHERTYPE_RCL                     = 0x1995\n\tETHERTYPE_RDP                     = 0x8739\n\tETHERTYPE_RETIX                   = 0x80f2\n\tETHERTYPE_REVARP                  = 0x8035\n\tETHERTYPE_SCA                     = 0x6007\n\tETHERTYPE_SECTRA                  = 0x86db\n\tETHERTYPE_SECUREDATA              = 0x876d\n\tETHERTYPE_SGITW                   = 0x817e\n\tETHERTYPE_SG_BOUNCE               = 0x8016\n\tETHERTYPE_SG_DIAG                 = 0x8013\n\tETHERTYPE_SG_NETGAMES             = 0x8014\n\tETHERTYPE_SG_RESV                 = 0x8015\n\tETHERTYPE_SIMNET                  = 0x5208\n\tETHERTYPE_SLOW                    = 0x8809\n\tETHERTYPE_SNA                     = 0x80d5\n\tETHERTYPE_SNMP                    = 0x814c\n\tETHERTYPE_SONIX                   = 0xfaf5\n\tETHERTYPE_SPIDER                  = 0x809f\n\tETHERTYPE_SPRITE                  = 0x500\n\tETHERTYPE_STP                     = 0x8181\n\tETHERTYPE_TALARIS                 = 0x812b\n\tETHERTYPE_TALARISMC               = 0x852b\n\tETHERTYPE_TCPCOMP                 = 0x876b\n\tETHERTYPE_TCPSM                   = 0x9002\n\tETHERTYPE_TEC                     = 0x814f\n\tETHERTYPE_TIGAN                   = 0x802f\n\tETHERTYPE_TRAIL                   = 0x1000\n\tETHERTYPE_TRANSETHER              = 0x6558\n\tETHERTYPE_TYMSHARE                = 0x802e\n\tETHERTYPE_UBBST                   = 0x7005\n\tETHERTYPE_UBDEBUG                 = 0x900\n\tETHERTYPE_UBDIAGLOOP              = 0x7002\n\tETHERTYPE_UBDL                    = 0x7000\n\tETHERTYPE_UBNIU                   = 0x7001\n\tETHERTYPE_UBNMC                   = 0x7003\n\tETHERTYPE_VALID                   = 0x1600\n\tETHERTYPE_VARIAN                  = 0x80dd\n\tETHERTYPE_VAXELN                  = 0x803b\n\tETHERTYPE_VEECO                   = 0x8067\n\tETHERTYPE_VEXP                    = 0x805b\n\tETHERTYPE_VGLAB                   = 0x8131\n\tETHERTYPE_VINES                   = 0xbad\n\tETHERTYPE_VINESECHO               = 0xbaf\n\tETHERTYPE_VINESLOOP               = 0xbae\n\tETHERTYPE_VITAL                   = 0xff00\n\tETHERTYPE_VLAN                    = 0x8100\n\tETHERTYPE_VLTLMAN                 = 0x8080\n\tETHERTYPE_VPROD                   = 0x805c\n\tETHERTYPE_VURESERVED              = 0x8147\n\tETHERTYPE_WATERLOO                = 0x8130\n\tETHERTYPE_WELLFLEET               = 0x8103\n\tETHERTYPE_X25                     = 0x805\n\tETHERTYPE_X75                     = 0x801\n\tETHERTYPE_XNSSM                   = 0x9001\n\tETHERTYPE_XTP                     = 0x817d\n\tETHER_ADDR_LEN                    = 0x6\n\tETHER_ALIGN                       = 0x2\n\tETHER_CRC_LEN                     = 0x4\n\tETHER_CRC_POLY_BE                 = 0x4c11db6\n\tETHER_CRC_POLY_LE                 = 0xedb88320\n\tETHER_HDR_LEN                     = 0xe\n\tETHER_MAX_DIX_LEN                 = 0x600\n\tETHER_MAX_HARDMTU_LEN             = 0xff9b\n\tETHER_MAX_LEN                     = 0x5ee\n\tETHER_MIN_LEN                     = 0x40\n\tETHER_TYPE_LEN                    = 0x2\n\tETHER_VLAN_ENCAP_LEN              = 0x4\n\tEVFILT_AIO                        = -0x3\n\tEVFILT_DEVICE                     = -0x8\n\tEVFILT_EXCEPT                     = -0x9\n\tEVFILT_PROC                       = -0x5\n\tEVFILT_READ                       = -0x1\n\tEVFILT_SIGNAL                     = -0x6\n\tEVFILT_SYSCOUNT                   = 0x9\n\tEVFILT_TIMER                      = -0x7\n\tEVFILT_VNODE                      = -0x4\n\tEVFILT_WRITE                      = -0x2\n\tEVL_ENCAPLEN                      = 0x4\n\tEVL_PRIO_BITS                     = 0xd\n\tEVL_PRIO_MAX                      = 0x7\n\tEVL_VLID_MASK                     = 0xfff\n\tEVL_VLID_MAX                      = 0xffe\n\tEVL_VLID_MIN                      = 0x1\n\tEVL_VLID_NULL                     = 0x0\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_DISPATCH                       = 0x80\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_RECEIPT                        = 0x40\n\tEV_SYSFLAGS                       = 0xf800\n\tEXTA                              = 0x4b00\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x400\n\tFLUSHO                            = 0x800000\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0xa\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETOWN                          = 0x5\n\tF_ISATTY                          = 0xb\n\tF_OK                              = 0x0\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x8e52\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_STATICARP                     = 0x20\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BLUETOOTH                     = 0xf8\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf7\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DUMMY                         = 0xf1\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ECONET                        = 0xce\n\tIFT_ENC                           = 0xf4\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf3\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INFINIBAND                    = 0xc7\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LINEGROUP                     = 0xd2\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MBIM                          = 0xfa\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFLOW                         = 0xf9\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_PON155                        = 0xcf\n\tIFT_PON622                        = 0xd0\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPATM                       = 0xc5\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf2\n\tIFT_Q2931                         = 0xc9\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SIPSIG                        = 0xcc\n\tIFT_SIPTG                         = 0xcb\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TELINK                        = 0xc8\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VIRTUALTG                     = 0xca\n\tIFT_VOICEDID                      = 0xd5\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEEMFGD                    = 0xd3\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFGDEANA                  = 0xd4\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERCABLE                = 0xc6\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_WIREGUARD                     = 0xfb\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIN_RFC3021_HOST                   = 0x1\n\tIN_RFC3021_NET                    = 0xfffffffe\n\tIN_RFC3021_NSHIFT                 = 0x1f\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_DIVERT                    = 0x102\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x103\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_MPLS                      = 0x89\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_SCTP                      = 0x84\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_UDPLITE                   = 0x88\n\tIPV6_AUTH_LEVEL                   = 0x35\n\tIPV6_AUTOFLOWLABEL                = 0x3b\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_ESP_NETWORK_LEVEL            = 0x37\n\tIPV6_ESP_TRANS_LEVEL              = 0x36\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK               = 0xffff0f00\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_IPCOMP_LEVEL                 = 0x3c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MINHOPCOUNT                  = 0x41\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_OPTIONS                      = 0x1\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PIPEX                        = 0x3f\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVDSTPORT                  = 0x40\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTABLE                       = 0x1021\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_AUTH_LEVEL                     = 0x14\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_ESP_NETWORK_LEVEL              = 0x16\n\tIP_ESP_TRANS_LEVEL                = 0x15\n\tIP_HDRINCL                        = 0x2\n\tIP_IPCOMP_LEVEL                   = 0x1d\n\tIP_IPDEFTTL                       = 0x25\n\tIP_IPSECFLOWINFO                  = 0x24\n\tIP_IPSEC_LOCAL_AUTH               = 0x1b\n\tIP_IPSEC_LOCAL_CRED               = 0x19\n\tIP_IPSEC_LOCAL_ID                 = 0x17\n\tIP_IPSEC_REMOTE_AUTH              = 0x1c\n\tIP_IPSEC_REMOTE_CRED              = 0x1a\n\tIP_IPSEC_REMOTE_ID                = 0x18\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0xfff\n\tIP_MF                             = 0x2000\n\tIP_MINTTL                         = 0x20\n\tIP_MIN_MEMBERSHIPS                = 0xf\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PIPEX                          = 0x22\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVDSTPORT                    = 0x21\n\tIP_RECVIF                         = 0x1e\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVRTABLE                     = 0x23\n\tIP_RECVTTL                        = 0x1f\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_RTABLE                         = 0x1021\n\tIP_SENDSRCADDR                    = 0x7\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tITIMER_PROF                       = 0x2\n\tITIMER_REAL                       = 0x0\n\tITIMER_VIRTUAL                    = 0x1\n\tIUCLC                             = 0x1000\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLCNT_OVERLOAD_FLUSH               = 0x6\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x6\n\tMADV_NORMAL                       = 0x0\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SPACEAVAIL                   = 0x5\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ANON                          = 0x1000\n\tMAP_ANONYMOUS                     = 0x1000\n\tMAP_CONCEAL                       = 0x8000\n\tMAP_COPY                          = 0x2\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_FLAGMASK                      = 0xfff7\n\tMAP_HASSEMAPHORE                  = 0x0\n\tMAP_INHERIT                       = 0x0\n\tMAP_INHERIT_COPY                  = 0x1\n\tMAP_INHERIT_NONE                  = 0x2\n\tMAP_INHERIT_SHARE                 = 0x0\n\tMAP_INHERIT_ZERO                  = 0x3\n\tMAP_NOEXTEND                      = 0x0\n\tMAP_NORESERVE                     = 0x0\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x0\n\tMAP_SHARED                        = 0x1\n\tMAP_STACK                         = 0x4000\n\tMAP_TRYFIXED                      = 0x0\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DELEXPORT                     = 0x20000\n\tMNT_DOOMED                        = 0x8000000\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_FORCE                         = 0x80000\n\tMNT_LAZY                          = 0x3\n\tMNT_LOCAL                         = 0x1000\n\tMNT_NOATIME                       = 0x8000\n\tMNT_NODEV                         = 0x10\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOPERM                        = 0x20\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOWAIT                        = 0x2\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x4000000\n\tMNT_STALLED                       = 0x100000\n\tMNT_SWAPPABLE                     = 0x200000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0x400ffff\n\tMNT_WAIT                          = 0x1\n\tMNT_WANTRDWR                      = 0x2000000\n\tMNT_WXALLOWED                     = 0x800\n\tMOUNT_AFS                         = \"afs\"\n\tMOUNT_CD9660                      = \"cd9660\"\n\tMOUNT_EXT2FS                      = \"ext2fs\"\n\tMOUNT_FFS                         = \"ffs\"\n\tMOUNT_FUSEFS                      = \"fuse\"\n\tMOUNT_MFS                         = \"mfs\"\n\tMOUNT_MSDOS                       = \"msdos\"\n\tMOUNT_NCPFS                       = \"ncpfs\"\n\tMOUNT_NFS                         = \"nfs\"\n\tMOUNT_NTFS                        = \"ntfs\"\n\tMOUNT_TMPFS                       = \"tmpfs\"\n\tMOUNT_UDF                         = \"udf\"\n\tMOUNT_UFS                         = \"ffs\"\n\tMSG_BCAST                         = 0x100\n\tMSG_CMSG_CLOEXEC                  = 0x800\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOR                           = 0x8\n\tMSG_MCAST                         = 0x200\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_TRUNC                         = 0x10\n\tMSG_WAITALL                       = 0x40\n\tMSG_WAITFORONE                    = 0x1000\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x4\n\tMS_SYNC                           = 0x2\n\tNAME_MAX                          = 0xff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x3\n\tNET_RT_IFNAMES                    = 0x6\n\tNET_RT_MAXID                      = 0x8\n\tNET_RT_SOURCE                     = 0x7\n\tNET_RT_STATS                      = 0x4\n\tNET_RT_TABLE                      = 0x5\n\tNFDBITS                           = 0x20\n\tNOFLSH                            = 0x80000000\n\tNOKERNINFO                        = 0x2000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHANGE                       = 0x1\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EOF                          = 0x2\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_OOB                          = 0x4\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_TRUNCATE                     = 0x80\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tOLCUC                             = 0x20\n\tONLCR                             = 0x2\n\tONLRET                            = 0x80\n\tONOCR                             = 0x40\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tOXTABS                            = 0x4\n\tO_ACCMODE                         = 0x3\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x10000\n\tO_CREAT                           = 0x200\n\tO_DIRECTORY                       = 0x20000\n\tO_DSYNC                           = 0x80\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_RSYNC                           = 0x80\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPF_FLUSH                          = 0x1\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BFD                          = 0xb\n\tRTAX_BRD                          = 0x7\n\tRTAX_DNS                          = 0xc\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_LABEL                        = 0xa\n\tRTAX_MAX                          = 0xf\n\tRTAX_NETMASK                      = 0x2\n\tRTAX_SEARCH                       = 0xe\n\tRTAX_SRC                          = 0x8\n\tRTAX_SRCMASK                      = 0x9\n\tRTAX_STATIC                       = 0xd\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BFD                           = 0x800\n\tRTA_BRD                           = 0x80\n\tRTA_DNS                           = 0x1000\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_LABEL                         = 0x400\n\tRTA_NETMASK                       = 0x4\n\tRTA_SEARCH                        = 0x4000\n\tRTA_SRC                           = 0x100\n\tRTA_SRCMASK                       = 0x200\n\tRTA_STATIC                        = 0x2000\n\tRTF_ANNOUNCE                      = 0x4000\n\tRTF_BFD                           = 0x1000000\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_BROADCAST                     = 0x400000\n\tRTF_CACHED                        = 0x20000\n\tRTF_CLONED                        = 0x10000\n\tRTF_CLONING                       = 0x100\n\tRTF_CONNECTED                     = 0x800000\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_FMASK                         = 0x110fc08\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_LOCAL                         = 0x200000\n\tRTF_MODIFIED                      = 0x20\n\tRTF_MPATH                         = 0x40000\n\tRTF_MPLS                          = 0x100000\n\tRTF_MULTICAST                     = 0x200\n\tRTF_PERMANENT_ARP                 = 0x2000\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_PROTO3                        = 0x2000\n\tRTF_REJECT                        = 0x8\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_USETRAILERS                   = 0x8000\n\tRTM_80211INFO                     = 0x15\n\tRTM_ADD                           = 0x1\n\tRTM_BFD                           = 0x12\n\tRTM_CHANGE                        = 0x3\n\tRTM_CHGADDRATTR                   = 0x14\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_DESYNC                        = 0x10\n\tRTM_GET                           = 0x4\n\tRTM_IFANNOUNCE                    = 0xf\n\tRTM_IFINFO                        = 0xe\n\tRTM_INVALIDATE                    = 0x11\n\tRTM_LOSING                        = 0x5\n\tRTM_MAXSIZE                       = 0x800\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_PROPOSAL                      = 0x13\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_SOURCE                        = 0x16\n\tRTM_VERSION                       = 0x5\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRT_TABLEID_BITS                   = 0x8\n\tRT_TABLEID_MASK                   = 0xff\n\tRT_TABLEID_MAX                    = 0xff\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tRUSAGE_THREAD                     = 0x1\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x4\n\tSEEK_CUR                          = 0x1\n\tSEEK_END                          = 0x2\n\tSEEK_SET                          = 0x0\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80206931\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCAIFGROUP                      = 0x80246987\n\tSIOCATMARK                        = 0x40047307\n\tSIOCBRDGADD                       = 0x8060693c\n\tSIOCBRDGADDL                      = 0x80606949\n\tSIOCBRDGADDS                      = 0x80606941\n\tSIOCBRDGARL                       = 0x808c694d\n\tSIOCBRDGDADDR                     = 0x81286947\n\tSIOCBRDGDEL                       = 0x8060693d\n\tSIOCBRDGDELS                      = 0x80606942\n\tSIOCBRDGFLUSH                     = 0x80606948\n\tSIOCBRDGFRL                       = 0x808c694e\n\tSIOCBRDGGCACHE                    = 0xc0146941\n\tSIOCBRDGGFD                       = 0xc0146952\n\tSIOCBRDGGHT                       = 0xc0146951\n\tSIOCBRDGGIFFLGS                   = 0xc060693e\n\tSIOCBRDGGMA                       = 0xc0146953\n\tSIOCBRDGGPARAM                    = 0xc0406958\n\tSIOCBRDGGPRI                      = 0xc0146950\n\tSIOCBRDGGRL                       = 0xc028694f\n\tSIOCBRDGGTO                       = 0xc0146946\n\tSIOCBRDGIFS                       = 0xc0606942\n\tSIOCBRDGRTS                       = 0xc0186943\n\tSIOCBRDGSADDR                     = 0xc1286944\n\tSIOCBRDGSCACHE                    = 0x80146940\n\tSIOCBRDGSFD                       = 0x80146952\n\tSIOCBRDGSHT                       = 0x80146951\n\tSIOCBRDGSIFCOST                   = 0x80606955\n\tSIOCBRDGSIFFLGS                   = 0x8060693f\n\tSIOCBRDGSIFPRIO                   = 0x80606954\n\tSIOCBRDGSIFPROT                   = 0x8060694a\n\tSIOCBRDGSMA                       = 0x80146953\n\tSIOCBRDGSPRI                      = 0x80146950\n\tSIOCBRDGSPROTO                    = 0x8014695a\n\tSIOCBRDGSTO                       = 0x80146945\n\tSIOCBRDGSTXHC                     = 0x80146959\n\tSIOCDELLABEL                      = 0x80206997\n\tSIOCDELMULTI                      = 0x80206932\n\tSIOCDIFADDR                       = 0x80206919\n\tSIOCDIFGROUP                      = 0x80246989\n\tSIOCDIFPARENT                     = 0x802069b4\n\tSIOCDIFPHYADDR                    = 0x80206949\n\tSIOCDPWE3NEIGHBOR                 = 0x802069de\n\tSIOCDVNETID                       = 0x802069af\n\tSIOCGETKALIVE                     = 0xc01869a4\n\tSIOCGETLABEL                      = 0x8020699a\n\tSIOCGETMPWCFG                     = 0xc02069ae\n\tSIOCGETPFLOW                      = 0xc02069fe\n\tSIOCGETPFSYNC                     = 0xc02069f8\n\tSIOCGETSGCNT                      = 0xc0147534\n\tSIOCGETVIFCNT                     = 0xc0147533\n\tSIOCGETVLAN                       = 0xc0206990\n\tSIOCGIFADDR                       = 0xc0206921\n\tSIOCGIFBRDADDR                    = 0xc0206923\n\tSIOCGIFCONF                       = 0xc0086924\n\tSIOCGIFDATA                       = 0xc020691b\n\tSIOCGIFDESCR                      = 0xc0206981\n\tSIOCGIFDSTADDR                    = 0xc0206922\n\tSIOCGIFFLAGS                      = 0xc0206911\n\tSIOCGIFGATTR                      = 0xc024698b\n\tSIOCGIFGENERIC                    = 0xc020693a\n\tSIOCGIFGLIST                      = 0xc024698d\n\tSIOCGIFGMEMB                      = 0xc024698a\n\tSIOCGIFGROUP                      = 0xc0246988\n\tSIOCGIFHARDMTU                    = 0xc02069a5\n\tSIOCGIFLLPRIO                     = 0xc02069b6\n\tSIOCGIFMEDIA                      = 0xc0386938\n\tSIOCGIFMETRIC                     = 0xc0206917\n\tSIOCGIFMTU                        = 0xc020697e\n\tSIOCGIFNETMASK                    = 0xc0206925\n\tSIOCGIFPAIR                       = 0xc02069b1\n\tSIOCGIFPARENT                     = 0xc02069b3\n\tSIOCGIFPRIORITY                   = 0xc020699c\n\tSIOCGIFRDOMAIN                    = 0xc02069a0\n\tSIOCGIFRTLABEL                    = 0xc0206983\n\tSIOCGIFRXR                        = 0x802069aa\n\tSIOCGIFSFFPAGE                    = 0xc1126939\n\tSIOCGIFXFLAGS                     = 0xc020699e\n\tSIOCGLIFPHYADDR                   = 0xc218694b\n\tSIOCGLIFPHYDF                     = 0xc02069c2\n\tSIOCGLIFPHYECN                    = 0xc02069c8\n\tSIOCGLIFPHYRTABLE                 = 0xc02069a2\n\tSIOCGLIFPHYTTL                    = 0xc02069a9\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGPWE3                         = 0xc0206998\n\tSIOCGPWE3CTRLWORD                 = 0xc02069dc\n\tSIOCGPWE3FAT                      = 0xc02069dd\n\tSIOCGPWE3NEIGHBOR                 = 0xc21869de\n\tSIOCGRXHPRIO                      = 0xc02069db\n\tSIOCGSPPPPARAMS                   = 0xc0206994\n\tSIOCGTXHPRIO                      = 0xc02069c6\n\tSIOCGUMBINFO                      = 0xc02069be\n\tSIOCGUMBPARAM                     = 0xc02069c0\n\tSIOCGVH                           = 0xc02069f6\n\tSIOCGVNETFLOWID                   = 0xc02069c4\n\tSIOCGVNETID                       = 0xc02069a7\n\tSIOCIFAFATTACH                    = 0x801169ab\n\tSIOCIFAFDETACH                    = 0x801169ac\n\tSIOCIFCREATE                      = 0x8020697a\n\tSIOCIFDESTROY                     = 0x80206979\n\tSIOCIFGCLONERS                    = 0xc00c6978\n\tSIOCSETKALIVE                     = 0x801869a3\n\tSIOCSETLABEL                      = 0x80206999\n\tSIOCSETMPWCFG                     = 0x802069ad\n\tSIOCSETPFLOW                      = 0x802069fd\n\tSIOCSETPFSYNC                     = 0x802069f7\n\tSIOCSETVLAN                       = 0x8020698f\n\tSIOCSIFADDR                       = 0x8020690c\n\tSIOCSIFBRDADDR                    = 0x80206913\n\tSIOCSIFDESCR                      = 0x80206980\n\tSIOCSIFDSTADDR                    = 0x8020690e\n\tSIOCSIFFLAGS                      = 0x80206910\n\tSIOCSIFGATTR                      = 0x8024698c\n\tSIOCSIFGENERIC                    = 0x80206939\n\tSIOCSIFLLADDR                     = 0x8020691f\n\tSIOCSIFLLPRIO                     = 0x802069b5\n\tSIOCSIFMEDIA                      = 0xc0206937\n\tSIOCSIFMETRIC                     = 0x80206918\n\tSIOCSIFMTU                        = 0x8020697f\n\tSIOCSIFNETMASK                    = 0x80206916\n\tSIOCSIFPAIR                       = 0x802069b0\n\tSIOCSIFPARENT                     = 0x802069b2\n\tSIOCSIFPRIORITY                   = 0x8020699b\n\tSIOCSIFRDOMAIN                    = 0x8020699f\n\tSIOCSIFRTLABEL                    = 0x80206982\n\tSIOCSIFXFLAGS                     = 0x8020699d\n\tSIOCSLIFPHYADDR                   = 0x8218694a\n\tSIOCSLIFPHYDF                     = 0x802069c1\n\tSIOCSLIFPHYECN                    = 0x802069c7\n\tSIOCSLIFPHYRTABLE                 = 0x802069a1\n\tSIOCSLIFPHYTTL                    = 0x802069a8\n\tSIOCSPGRP                         = 0x80047308\n\tSIOCSPWE3CTRLWORD                 = 0x802069dc\n\tSIOCSPWE3FAT                      = 0x802069dd\n\tSIOCSPWE3NEIGHBOR                 = 0x821869de\n\tSIOCSRXHPRIO                      = 0x802069db\n\tSIOCSSPPPPARAMS                   = 0x80206993\n\tSIOCSTXHPRIO                      = 0x802069c5\n\tSIOCSUMBPARAM                     = 0x802069bf\n\tSIOCSVH                           = 0xc02069f5\n\tSIOCSVNETFLOWID                   = 0x802069c3\n\tSIOCSVNETID                       = 0x802069a6\n\tSOCK_CLOEXEC                      = 0x8000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_DNS                          = 0x1000\n\tSOCK_NONBLOCK                     = 0x4000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_BINDANY                        = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DOMAIN                         = 0x1024\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NETPROC                        = 0x1020\n\tSO_OOBINLINE                      = 0x100\n\tSO_PEERCRED                       = 0x1022\n\tSO_PROTOCOL                       = 0x1025\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x1006\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_RTABLE                         = 0x1021\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x1005\n\tSO_SPLICE                         = 0x1023\n\tSO_TIMESTAMP                      = 0x800\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tSO_ZEROIZE                        = 0x2000\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tTCIFLUSH                          = 0x1\n\tTCIOFF                            = 0x3\n\tTCIOFLUSH                         = 0x3\n\tTCION                             = 0x4\n\tTCOFLUSH                          = 0x2\n\tTCOOFF                            = 0x1\n\tTCOON                             = 0x2\n\tTCPOPT_EOL                        = 0x0\n\tTCPOPT_MAXSEG                     = 0x2\n\tTCPOPT_NOP                        = 0x1\n\tTCPOPT_SACK                       = 0x5\n\tTCPOPT_SACK_HDR                   = 0x1010500\n\tTCPOPT_SACK_PERMITTED             = 0x4\n\tTCPOPT_SACK_PERMIT_HDR            = 0x1010402\n\tTCPOPT_SIGNATURE                  = 0x13\n\tTCPOPT_TIMESTAMP                  = 0x8\n\tTCPOPT_TSTAMP_HDR                 = 0x101080a\n\tTCPOPT_WINDOW                     = 0x3\n\tTCP_INFO                          = 0x9\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_SACK                      = 0x3\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MD5SIG                        = 0x4\n\tTCP_MSS                           = 0x200\n\tTCP_NODELAY                       = 0x1\n\tTCP_NOPUSH                        = 0x10\n\tTCP_SACKHOLE_LIMIT                = 0x80\n\tTCP_SACK_ENABLE                   = 0x8\n\tTCSAFLUSH                         = 0x2\n\tTIMER_ABSTIME                     = 0x1\n\tTIMER_RELTIME                     = 0x0\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCHKVERAUTH                    = 0x2000741e\n\tTIOCCLRVERAUTH                    = 0x2000741d\n\tTIOCCONS                          = 0x80047462\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLAG_CLOCAL                   = 0x2\n\tTIOCFLAG_CRTSCTS                  = 0x4\n\tTIOCFLAG_MDMBUF                   = 0x8\n\tTIOCFLAG_PPS                      = 0x10\n\tTIOCFLAG_SOFTCAR                  = 0x1\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGFLAGS                        = 0x4004745d\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGSID                          = 0x40047463\n\tTIOCGTSTAMP                       = 0x4010745b\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMODG                          = 0x4004746a\n\tTIOCMODS                          = 0x8004746d\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSETVERAUTH                    = 0x8004741c\n\tTIOCSFLAGS                        = 0x8004745c\n\tTIOCSIG                           = 0x8004745f\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x20007465\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSTSTAMP                       = 0x8008745a\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCUCNTL                         = 0x80047466\n\tTIOCUCNTL_CBRK                    = 0x7a\n\tTIOCUCNTL_SBRK                    = 0x7b\n\tTOSTOP                            = 0x400000\n\tUTIME_NOW                         = -0x2\n\tUTIME_OMIT                        = -0x1\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVM_ANONMIN                        = 0x7\n\tVM_LOADAVG                        = 0x2\n\tVM_MALLOC_CONF                    = 0xc\n\tVM_MAXID                          = 0xd\n\tVM_MAXSLP                         = 0xa\n\tVM_METER                          = 0x1\n\tVM_NKMEMPAGES                     = 0x6\n\tVM_PSSTRINGS                      = 0x3\n\tVM_SWAPENCRYPT                    = 0x5\n\tVM_USPACE                         = 0xb\n\tVM_UVMEXP                         = 0x4\n\tVM_VNODEMIN                       = 0x9\n\tVM_VTEXTMIN                       = 0x8\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWALTSIG                           = 0x4\n\tWCONTINUED                        = 0x8\n\tWCOREFLAG                         = 0x80\n\tWNOHANG                           = 0x1\n\tWUNTRACED                         = 0x2\n\tXCASE                             = 0x1000000\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x5c)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x58)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x59)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEIPSEC          = syscall.Errno(0x52)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x5f)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMEDIUMTYPE     = syscall.Errno(0x56)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x53)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOMEDIUM       = syscall.Errno(0x55)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x5a)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x5d)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x5b)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x57)\n\tEOWNERDEAD      = syscall.Errno(0x5e)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5f)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disk quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC program not available\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIPSEC\", \"IPsec processing failure\"},\n\t{83, \"ENOATTR\", \"attribute not found\"},\n\t{84, \"EILSEQ\", \"illegal byte sequence\"},\n\t{85, \"ENOMEDIUM\", \"no medium found\"},\n\t{86, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{87, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{88, \"ECANCELED\", \"operation canceled\"},\n\t{89, \"EIDRM\", \"identifier removed\"},\n\t{90, \"ENOMSG\", \"no message of desired type\"},\n\t{91, \"ENOTSUP\", \"not supported\"},\n\t{92, \"EBADMSG\", \"bad message\"},\n\t{93, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{94, \"EOWNERDEAD\", \"previous owner died\"},\n\t{95, \"ELAST\", \"protocol error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"thread AST\"},\n\t{28672, \"SIGSTKSZ\", \"unknown signal\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && openbsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_BLUETOOTH                      = 0x20\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_ENCAP                          = 0x1c\n\tAF_HYLINK                         = 0xf\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x18\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_KEY                            = 0x1e\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x24\n\tAF_MPLS                           = 0x21\n\tAF_NATM                           = 0x1b\n\tAF_NS                             = 0x6\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x11\n\tAF_SIP                            = 0x1d\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tALTWERASE                         = 0x200\n\tARPHRD_ETHER                      = 0x1\n\tARPHRD_FRELAY                     = 0xf\n\tARPHRD_IEEE1394                   = 0x18\n\tARPHRD_IEEE802                    = 0x6\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB9600                             = 0x2580\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDIRFILT                      = 0x4004427c\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc010427b\n\tBIOCGETIF                         = 0x4020426b\n\tBIOCGFILDROP                      = 0x40044278\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRSIG                         = 0x40044273\n\tBIOCGRTIMEOUT                     = 0x4010426e\n\tBIOCGSTATS                        = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCLOCK                          = 0x20004276\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDIRFILT                      = 0x8004427d\n\tBIOCSDLT                          = 0x8004427a\n\tBIOCSETF                          = 0x80104267\n\tBIOCSETIF                         = 0x8020426c\n\tBIOCSETWF                         = 0x80104277\n\tBIOCSFILDROP                      = 0x80044279\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRSIG                         = 0x80044272\n\tBIOCSRTIMEOUT                     = 0x8010426d\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DIRECTION_IN                  = 0x1\n\tBPF_DIRECTION_OUT                 = 0x2\n\tBPF_DIV                           = 0x30\n\tBPF_FILDROP_CAPTURE               = 0x1\n\tBPF_FILDROP_DROP                  = 0x2\n\tBPF_FILDROP_PASS                  = 0x0\n\tBPF_F_DIR_IN                      = 0x10\n\tBPF_F_DIR_MASK                    = 0x30\n\tBPF_F_DIR_OUT                     = 0x20\n\tBPF_F_DIR_SHIFT                   = 0x4\n\tBPF_F_FLOWID                      = 0x8\n\tBPF_F_PRI_MASK                    = 0x7\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x200000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RND                           = 0xc0\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCLOCK_BOOTTIME                    = 0x6\n\tCLOCK_MONOTONIC                   = 0x3\n\tCLOCK_PROCESS_CPUTIME_ID          = 0x2\n\tCLOCK_REALTIME                    = 0x0\n\tCLOCK_THREAD_CPUTIME_ID           = 0x4\n\tCLOCK_UPTIME                      = 0x5\n\tCPUSTATES                         = 0x6\n\tCP_IDLE                           = 0x5\n\tCP_INTR                           = 0x4\n\tCP_NICE                           = 0x1\n\tCP_SPIN                           = 0x3\n\tCP_SYS                            = 0x2\n\tCP_USER                           = 0x0\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x10000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0xff\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tDIOCADDQUEUE                      = 0xc110445d\n\tDIOCADDRULE                       = 0xcd604404\n\tDIOCADDSTATE                      = 0xc1084425\n\tDIOCCHANGERULE                    = 0xcd60441a\n\tDIOCCLRIFFLAG                     = 0xc028445a\n\tDIOCCLRSRCNODES                   = 0x20004455\n\tDIOCCLRSTATES                     = 0xc0e04412\n\tDIOCCLRSTATUS                     = 0xc0284416\n\tDIOCGETLIMIT                      = 0xc0084427\n\tDIOCGETQSTATS                     = 0xc1204460\n\tDIOCGETQUEUE                      = 0xc110445f\n\tDIOCGETQUEUES                     = 0xc110445e\n\tDIOCGETRULE                       = 0xcd604407\n\tDIOCGETRULES                      = 0xcd604406\n\tDIOCGETRULESET                    = 0xc444443b\n\tDIOCGETRULESETS                   = 0xc444443a\n\tDIOCGETSRCNODES                   = 0xc0104454\n\tDIOCGETSTATE                      = 0xc1084413\n\tDIOCGETSTATES                     = 0xc0104419\n\tDIOCGETSTATUS                     = 0xc1e84415\n\tDIOCGETSYNFLWATS                  = 0xc0084463\n\tDIOCGETTIMEOUT                    = 0xc008441e\n\tDIOCIGETIFACES                    = 0xc0284457\n\tDIOCKILLSRCNODES                  = 0xc080445b\n\tDIOCKILLSTATES                    = 0xc0e04429\n\tDIOCNATLOOK                       = 0xc0504417\n\tDIOCOSFPADD                       = 0xc088444f\n\tDIOCOSFPFLUSH                     = 0x2000444e\n\tDIOCOSFPGET                       = 0xc0884450\n\tDIOCRADDADDRS                     = 0xc4504443\n\tDIOCRADDTABLES                    = 0xc450443d\n\tDIOCRCLRADDRS                     = 0xc4504442\n\tDIOCRCLRASTATS                    = 0xc4504448\n\tDIOCRCLRTABLES                    = 0xc450443c\n\tDIOCRCLRTSTATS                    = 0xc4504441\n\tDIOCRDELADDRS                     = 0xc4504444\n\tDIOCRDELTABLES                    = 0xc450443e\n\tDIOCRGETADDRS                     = 0xc4504446\n\tDIOCRGETASTATS                    = 0xc4504447\n\tDIOCRGETTABLES                    = 0xc450443f\n\tDIOCRGETTSTATS                    = 0xc4504440\n\tDIOCRINADEFINE                    = 0xc450444d\n\tDIOCRSETADDRS                     = 0xc4504445\n\tDIOCRSETTFLAGS                    = 0xc450444a\n\tDIOCRTSTADDRS                     = 0xc4504449\n\tDIOCSETDEBUG                      = 0xc0044418\n\tDIOCSETHOSTID                     = 0xc0044456\n\tDIOCSETIFFLAG                     = 0xc0284459\n\tDIOCSETLIMIT                      = 0xc0084428\n\tDIOCSETREASS                      = 0xc004445c\n\tDIOCSETSTATUSIF                   = 0xc0284414\n\tDIOCSETSYNCOOKIES                 = 0xc0014462\n\tDIOCSETSYNFLWATS                  = 0xc0084461\n\tDIOCSETTIMEOUT                    = 0xc008441d\n\tDIOCSTART                         = 0x20004401\n\tDIOCSTOP                          = 0x20004402\n\tDIOCXBEGIN                        = 0xc0104451\n\tDIOCXCOMMIT                       = 0xc0104452\n\tDIOCXROLLBACK                     = 0xc0104453\n\tDLT_ARCNET                        = 0x7\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AX25                          = 0x3\n\tDLT_CHAOS                         = 0x5\n\tDLT_C_HDLC                        = 0x68\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0xd\n\tDLT_FDDI                          = 0xa\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_LOOP                          = 0xc\n\tDLT_MPLS                          = 0xdb\n\tDLT_NULL                          = 0x0\n\tDLT_OPENFLOW                      = 0x10b\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0x10\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PRONET                        = 0x4\n\tDLT_RAW                           = 0xe\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xf\n\tDLT_USBPCAP                       = 0xf9\n\tDLT_USER0                         = 0x93\n\tDLT_USER1                         = 0x94\n\tDLT_USER10                        = 0x9d\n\tDLT_USER11                        = 0x9e\n\tDLT_USER12                        = 0x9f\n\tDLT_USER13                        = 0xa0\n\tDLT_USER14                        = 0xa1\n\tDLT_USER15                        = 0xa2\n\tDLT_USER2                         = 0x95\n\tDLT_USER3                         = 0x96\n\tDLT_USER4                         = 0x97\n\tDLT_USER5                         = 0x98\n\tDLT_USER6                         = 0x99\n\tDLT_USER7                         = 0x9a\n\tDLT_USER8                         = 0x9b\n\tDLT_USER9                         = 0x9c\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEMT_TAGOVF                        = 0x1\n\tEMUL_ENABLED                      = 0x1\n\tEMUL_NATIVE                       = 0x2\n\tENDRUNDISC                        = 0x9\n\tETH64_8021_RSVD_MASK              = 0xfffffffffff0\n\tETH64_8021_RSVD_PREFIX            = 0x180c2000000\n\tETHERMIN                          = 0x2e\n\tETHERMTU                          = 0x5dc\n\tETHERTYPE_8023                    = 0x4\n\tETHERTYPE_AARP                    = 0x80f3\n\tETHERTYPE_ACCTON                  = 0x8390\n\tETHERTYPE_AEONIC                  = 0x8036\n\tETHERTYPE_ALPHA                   = 0x814a\n\tETHERTYPE_AMBER                   = 0x6008\n\tETHERTYPE_AMOEBA                  = 0x8145\n\tETHERTYPE_AOE                     = 0x88a2\n\tETHERTYPE_APOLLO                  = 0x80f7\n\tETHERTYPE_APOLLODOMAIN            = 0x8019\n\tETHERTYPE_APPLETALK               = 0x809b\n\tETHERTYPE_APPLITEK                = 0x80c7\n\tETHERTYPE_ARGONAUT                = 0x803a\n\tETHERTYPE_ARP                     = 0x806\n\tETHERTYPE_AT                      = 0x809b\n\tETHERTYPE_ATALK                   = 0x809b\n\tETHERTYPE_ATOMIC                  = 0x86df\n\tETHERTYPE_ATT                     = 0x8069\n\tETHERTYPE_ATTSTANFORD             = 0x8008\n\tETHERTYPE_AUTOPHON                = 0x806a\n\tETHERTYPE_AXIS                    = 0x8856\n\tETHERTYPE_BCLOOP                  = 0x9003\n\tETHERTYPE_BOFL                    = 0x8102\n\tETHERTYPE_CABLETRON               = 0x7034\n\tETHERTYPE_CHAOS                   = 0x804\n\tETHERTYPE_COMDESIGN               = 0x806c\n\tETHERTYPE_COMPUGRAPHIC            = 0x806d\n\tETHERTYPE_COUNTERPOINT            = 0x8062\n\tETHERTYPE_CRONUS                  = 0x8004\n\tETHERTYPE_CRONUSVLN               = 0x8003\n\tETHERTYPE_DCA                     = 0x1234\n\tETHERTYPE_DDE                     = 0x807b\n\tETHERTYPE_DEBNI                   = 0xaaaa\n\tETHERTYPE_DECAM                   = 0x8048\n\tETHERTYPE_DECCUST                 = 0x6006\n\tETHERTYPE_DECDIAG                 = 0x6005\n\tETHERTYPE_DECDNS                  = 0x803c\n\tETHERTYPE_DECDTS                  = 0x803e\n\tETHERTYPE_DECEXPER                = 0x6000\n\tETHERTYPE_DECLAST                 = 0x8041\n\tETHERTYPE_DECLTM                  = 0x803f\n\tETHERTYPE_DECMUMPS                = 0x6009\n\tETHERTYPE_DECNETBIOS              = 0x8040\n\tETHERTYPE_DELTACON                = 0x86de\n\tETHERTYPE_DIDDLE                  = 0x4321\n\tETHERTYPE_DLOG1                   = 0x660\n\tETHERTYPE_DLOG2                   = 0x661\n\tETHERTYPE_DN                      = 0x6003\n\tETHERTYPE_DOGFIGHT                = 0x1989\n\tETHERTYPE_DSMD                    = 0x8039\n\tETHERTYPE_EAPOL                   = 0x888e\n\tETHERTYPE_ECMA                    = 0x803\n\tETHERTYPE_ENCRYPT                 = 0x803d\n\tETHERTYPE_ES                      = 0x805d\n\tETHERTYPE_EXCELAN                 = 0x8010\n\tETHERTYPE_EXPERDATA               = 0x8049\n\tETHERTYPE_FLIP                    = 0x8146\n\tETHERTYPE_FLOWCONTROL             = 0x8808\n\tETHERTYPE_FRARP                   = 0x808\n\tETHERTYPE_GENDYN                  = 0x8068\n\tETHERTYPE_HAYES                   = 0x8130\n\tETHERTYPE_HIPPI_FP                = 0x8180\n\tETHERTYPE_HITACHI                 = 0x8820\n\tETHERTYPE_HP                      = 0x8005\n\tETHERTYPE_IEEEPUP                 = 0xa00\n\tETHERTYPE_IEEEPUPAT               = 0xa01\n\tETHERTYPE_IMLBL                   = 0x4c42\n\tETHERTYPE_IMLBLDIAG               = 0x424c\n\tETHERTYPE_IP                      = 0x800\n\tETHERTYPE_IPAS                    = 0x876c\n\tETHERTYPE_IPV6                    = 0x86dd\n\tETHERTYPE_IPX                     = 0x8137\n\tETHERTYPE_IPXNEW                  = 0x8037\n\tETHERTYPE_KALPANA                 = 0x8582\n\tETHERTYPE_LANBRIDGE               = 0x8038\n\tETHERTYPE_LANPROBE                = 0x8888\n\tETHERTYPE_LAT                     = 0x6004\n\tETHERTYPE_LBACK                   = 0x9000\n\tETHERTYPE_LITTLE                  = 0x8060\n\tETHERTYPE_LLDP                    = 0x88cc\n\tETHERTYPE_LOGICRAFT               = 0x8148\n\tETHERTYPE_LOOPBACK                = 0x9000\n\tETHERTYPE_MACSEC                  = 0x88e5\n\tETHERTYPE_MATRA                   = 0x807a\n\tETHERTYPE_MAX                     = 0xffff\n\tETHERTYPE_MERIT                   = 0x807c\n\tETHERTYPE_MICP                    = 0x873a\n\tETHERTYPE_MOPDL                   = 0x6001\n\tETHERTYPE_MOPRC                   = 0x6002\n\tETHERTYPE_MOTOROLA                = 0x818d\n\tETHERTYPE_MPLS                    = 0x8847\n\tETHERTYPE_MPLS_MCAST              = 0x8848\n\tETHERTYPE_MUMPS                   = 0x813f\n\tETHERTYPE_NBPCC                   = 0x3c04\n\tETHERTYPE_NBPCLAIM                = 0x3c09\n\tETHERTYPE_NBPCLREQ                = 0x3c05\n\tETHERTYPE_NBPCLRSP                = 0x3c06\n\tETHERTYPE_NBPCREQ                 = 0x3c02\n\tETHERTYPE_NBPCRSP                 = 0x3c03\n\tETHERTYPE_NBPDG                   = 0x3c07\n\tETHERTYPE_NBPDGB                  = 0x3c08\n\tETHERTYPE_NBPDLTE                 = 0x3c0a\n\tETHERTYPE_NBPRAR                  = 0x3c0c\n\tETHERTYPE_NBPRAS                  = 0x3c0b\n\tETHERTYPE_NBPRST                  = 0x3c0d\n\tETHERTYPE_NBPSCD                  = 0x3c01\n\tETHERTYPE_NBPVCD                  = 0x3c00\n\tETHERTYPE_NBS                     = 0x802\n\tETHERTYPE_NCD                     = 0x8149\n\tETHERTYPE_NESTAR                  = 0x8006\n\tETHERTYPE_NETBEUI                 = 0x8191\n\tETHERTYPE_NHRP                    = 0x2001\n\tETHERTYPE_NOVELL                  = 0x8138\n\tETHERTYPE_NS                      = 0x600\n\tETHERTYPE_NSAT                    = 0x601\n\tETHERTYPE_NSCOMPAT                = 0x807\n\tETHERTYPE_NSH                     = 0x984f\n\tETHERTYPE_NTRAILER                = 0x10\n\tETHERTYPE_OS9                     = 0x7007\n\tETHERTYPE_OS9NET                  = 0x7009\n\tETHERTYPE_PACER                   = 0x80c6\n\tETHERTYPE_PBB                     = 0x88e7\n\tETHERTYPE_PCS                     = 0x4242\n\tETHERTYPE_PLANNING                = 0x8044\n\tETHERTYPE_PPP                     = 0x880b\n\tETHERTYPE_PPPOE                   = 0x8864\n\tETHERTYPE_PPPOEDISC               = 0x8863\n\tETHERTYPE_PRIMENTS                = 0x7031\n\tETHERTYPE_PUP                     = 0x200\n\tETHERTYPE_PUPAT                   = 0x200\n\tETHERTYPE_QINQ                    = 0x88a8\n\tETHERTYPE_RACAL                   = 0x7030\n\tETHERTYPE_RATIONAL                = 0x8150\n\tETHERTYPE_RAWFR                   = 0x6559\n\tETHERTYPE_RCL                     = 0x1995\n\tETHERTYPE_RDP                     = 0x8739\n\tETHERTYPE_RETIX                   = 0x80f2\n\tETHERTYPE_REVARP                  = 0x8035\n\tETHERTYPE_SCA                     = 0x6007\n\tETHERTYPE_SECTRA                  = 0x86db\n\tETHERTYPE_SECUREDATA              = 0x876d\n\tETHERTYPE_SGITW                   = 0x817e\n\tETHERTYPE_SG_BOUNCE               = 0x8016\n\tETHERTYPE_SG_DIAG                 = 0x8013\n\tETHERTYPE_SG_NETGAMES             = 0x8014\n\tETHERTYPE_SG_RESV                 = 0x8015\n\tETHERTYPE_SIMNET                  = 0x5208\n\tETHERTYPE_SLOW                    = 0x8809\n\tETHERTYPE_SNA                     = 0x80d5\n\tETHERTYPE_SNMP                    = 0x814c\n\tETHERTYPE_SONIX                   = 0xfaf5\n\tETHERTYPE_SPIDER                  = 0x809f\n\tETHERTYPE_SPRITE                  = 0x500\n\tETHERTYPE_STP                     = 0x8181\n\tETHERTYPE_TALARIS                 = 0x812b\n\tETHERTYPE_TALARISMC               = 0x852b\n\tETHERTYPE_TCPCOMP                 = 0x876b\n\tETHERTYPE_TCPSM                   = 0x9002\n\tETHERTYPE_TEC                     = 0x814f\n\tETHERTYPE_TIGAN                   = 0x802f\n\tETHERTYPE_TRAIL                   = 0x1000\n\tETHERTYPE_TRANSETHER              = 0x6558\n\tETHERTYPE_TYMSHARE                = 0x802e\n\tETHERTYPE_UBBST                   = 0x7005\n\tETHERTYPE_UBDEBUG                 = 0x900\n\tETHERTYPE_UBDIAGLOOP              = 0x7002\n\tETHERTYPE_UBDL                    = 0x7000\n\tETHERTYPE_UBNIU                   = 0x7001\n\tETHERTYPE_UBNMC                   = 0x7003\n\tETHERTYPE_VALID                   = 0x1600\n\tETHERTYPE_VARIAN                  = 0x80dd\n\tETHERTYPE_VAXELN                  = 0x803b\n\tETHERTYPE_VEECO                   = 0x8067\n\tETHERTYPE_VEXP                    = 0x805b\n\tETHERTYPE_VGLAB                   = 0x8131\n\tETHERTYPE_VINES                   = 0xbad\n\tETHERTYPE_VINESECHO               = 0xbaf\n\tETHERTYPE_VINESLOOP               = 0xbae\n\tETHERTYPE_VITAL                   = 0xff00\n\tETHERTYPE_VLAN                    = 0x8100\n\tETHERTYPE_VLTLMAN                 = 0x8080\n\tETHERTYPE_VPROD                   = 0x805c\n\tETHERTYPE_VURESERVED              = 0x8147\n\tETHERTYPE_WATERLOO                = 0x8130\n\tETHERTYPE_WELLFLEET               = 0x8103\n\tETHERTYPE_X25                     = 0x805\n\tETHERTYPE_X75                     = 0x801\n\tETHERTYPE_XNSSM                   = 0x9001\n\tETHERTYPE_XTP                     = 0x817d\n\tETHER_ADDR_LEN                    = 0x6\n\tETHER_ALIGN                       = 0x2\n\tETHER_CRC_LEN                     = 0x4\n\tETHER_CRC_POLY_BE                 = 0x4c11db6\n\tETHER_CRC_POLY_LE                 = 0xedb88320\n\tETHER_HDR_LEN                     = 0xe\n\tETHER_MAX_DIX_LEN                 = 0x600\n\tETHER_MAX_HARDMTU_LEN             = 0xff9b\n\tETHER_MAX_LEN                     = 0x5ee\n\tETHER_MIN_LEN                     = 0x40\n\tETHER_TYPE_LEN                    = 0x2\n\tETHER_VLAN_ENCAP_LEN              = 0x4\n\tEVFILT_AIO                        = -0x3\n\tEVFILT_DEVICE                     = -0x8\n\tEVFILT_EXCEPT                     = -0x9\n\tEVFILT_PROC                       = -0x5\n\tEVFILT_READ                       = -0x1\n\tEVFILT_SIGNAL                     = -0x6\n\tEVFILT_SYSCOUNT                   = 0x9\n\tEVFILT_TIMER                      = -0x7\n\tEVFILT_VNODE                      = -0x4\n\tEVFILT_WRITE                      = -0x2\n\tEVL_ENCAPLEN                      = 0x4\n\tEVL_PRIO_BITS                     = 0xd\n\tEVL_PRIO_MAX                      = 0x7\n\tEVL_VLID_MASK                     = 0xfff\n\tEVL_VLID_MAX                      = 0xffe\n\tEVL_VLID_MIN                      = 0x1\n\tEVL_VLID_NULL                     = 0x0\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_DISPATCH                       = 0x80\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_RECEIPT                        = 0x40\n\tEV_SYSFLAGS                       = 0xf800\n\tEXTA                              = 0x4b00\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x400\n\tFLUSHO                            = 0x800000\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0xa\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETOWN                          = 0x5\n\tF_ISATTY                          = 0xb\n\tF_OK                              = 0x0\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x8e52\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_STATICARP                     = 0x20\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BLUETOOTH                     = 0xf8\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf7\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DUMMY                         = 0xf1\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ECONET                        = 0xce\n\tIFT_ENC                           = 0xf4\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf3\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INFINIBAND                    = 0xc7\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LINEGROUP                     = 0xd2\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MBIM                          = 0xfa\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFLOW                         = 0xf9\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_PON155                        = 0xcf\n\tIFT_PON622                        = 0xd0\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPATM                       = 0xc5\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf2\n\tIFT_Q2931                         = 0xc9\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SIPSIG                        = 0xcc\n\tIFT_SIPTG                         = 0xcb\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TELINK                        = 0xc8\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VIRTUALTG                     = 0xca\n\tIFT_VOICEDID                      = 0xd5\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEEMFGD                    = 0xd3\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFGDEANA                  = 0xd4\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERCABLE                = 0xc6\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_WIREGUARD                     = 0xfb\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIN_RFC3021_HOST                   = 0x1\n\tIN_RFC3021_NET                    = 0xfffffffe\n\tIN_RFC3021_NSHIFT                 = 0x1f\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_DIVERT                    = 0x102\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x103\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_MPLS                      = 0x89\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_SCTP                      = 0x84\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_UDPLITE                   = 0x88\n\tIPV6_AUTH_LEVEL                   = 0x35\n\tIPV6_AUTOFLOWLABEL                = 0x3b\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_ESP_NETWORK_LEVEL            = 0x37\n\tIPV6_ESP_TRANS_LEVEL              = 0x36\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK               = 0xffff0f00\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_IPCOMP_LEVEL                 = 0x3c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MINHOPCOUNT                  = 0x41\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_OPTIONS                      = 0x1\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PIPEX                        = 0x3f\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVDSTPORT                  = 0x40\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTABLE                       = 0x1021\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_AUTH_LEVEL                     = 0x14\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_ESP_NETWORK_LEVEL              = 0x16\n\tIP_ESP_TRANS_LEVEL                = 0x15\n\tIP_HDRINCL                        = 0x2\n\tIP_IPCOMP_LEVEL                   = 0x1d\n\tIP_IPDEFTTL                       = 0x25\n\tIP_IPSECFLOWINFO                  = 0x24\n\tIP_IPSEC_LOCAL_AUTH               = 0x1b\n\tIP_IPSEC_LOCAL_CRED               = 0x19\n\tIP_IPSEC_LOCAL_ID                 = 0x17\n\tIP_IPSEC_REMOTE_AUTH              = 0x1c\n\tIP_IPSEC_REMOTE_CRED              = 0x1a\n\tIP_IPSEC_REMOTE_ID                = 0x18\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0xfff\n\tIP_MF                             = 0x2000\n\tIP_MINTTL                         = 0x20\n\tIP_MIN_MEMBERSHIPS                = 0xf\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PIPEX                          = 0x22\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVDSTPORT                    = 0x21\n\tIP_RECVIF                         = 0x1e\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVRTABLE                     = 0x23\n\tIP_RECVTTL                        = 0x1f\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_RTABLE                         = 0x1021\n\tIP_SENDSRCADDR                    = 0x7\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tITIMER_PROF                       = 0x2\n\tITIMER_REAL                       = 0x0\n\tITIMER_VIRTUAL                    = 0x1\n\tIUCLC                             = 0x1000\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLCNT_OVERLOAD_FLUSH               = 0x6\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x6\n\tMADV_NORMAL                       = 0x0\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SPACEAVAIL                   = 0x5\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ANON                          = 0x1000\n\tMAP_ANONYMOUS                     = 0x1000\n\tMAP_CONCEAL                       = 0x8000\n\tMAP_COPY                          = 0x2\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_FLAGMASK                      = 0xfff7\n\tMAP_HASSEMAPHORE                  = 0x0\n\tMAP_INHERIT                       = 0x0\n\tMAP_INHERIT_COPY                  = 0x1\n\tMAP_INHERIT_NONE                  = 0x2\n\tMAP_INHERIT_SHARE                 = 0x0\n\tMAP_INHERIT_ZERO                  = 0x3\n\tMAP_NOEXTEND                      = 0x0\n\tMAP_NORESERVE                     = 0x0\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x0\n\tMAP_SHARED                        = 0x1\n\tMAP_STACK                         = 0x4000\n\tMAP_TRYFIXED                      = 0x0\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DELEXPORT                     = 0x20000\n\tMNT_DOOMED                        = 0x8000000\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_FORCE                         = 0x80000\n\tMNT_LAZY                          = 0x3\n\tMNT_LOCAL                         = 0x1000\n\tMNT_NOATIME                       = 0x8000\n\tMNT_NODEV                         = 0x10\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOPERM                        = 0x20\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOWAIT                        = 0x2\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x4000000\n\tMNT_STALLED                       = 0x100000\n\tMNT_SWAPPABLE                     = 0x200000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0x400ffff\n\tMNT_WAIT                          = 0x1\n\tMNT_WANTRDWR                      = 0x2000000\n\tMNT_WXALLOWED                     = 0x800\n\tMOUNT_AFS                         = \"afs\"\n\tMOUNT_CD9660                      = \"cd9660\"\n\tMOUNT_EXT2FS                      = \"ext2fs\"\n\tMOUNT_FFS                         = \"ffs\"\n\tMOUNT_FUSEFS                      = \"fuse\"\n\tMOUNT_MFS                         = \"mfs\"\n\tMOUNT_MSDOS                       = \"msdos\"\n\tMOUNT_NCPFS                       = \"ncpfs\"\n\tMOUNT_NFS                         = \"nfs\"\n\tMOUNT_NTFS                        = \"ntfs\"\n\tMOUNT_TMPFS                       = \"tmpfs\"\n\tMOUNT_UDF                         = \"udf\"\n\tMOUNT_UFS                         = \"ffs\"\n\tMSG_BCAST                         = 0x100\n\tMSG_CMSG_CLOEXEC                  = 0x800\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOR                           = 0x8\n\tMSG_MCAST                         = 0x200\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_TRUNC                         = 0x10\n\tMSG_WAITALL                       = 0x40\n\tMSG_WAITFORONE                    = 0x1000\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x4\n\tMS_SYNC                           = 0x2\n\tNAME_MAX                          = 0xff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x3\n\tNET_RT_IFNAMES                    = 0x6\n\tNET_RT_MAXID                      = 0x8\n\tNET_RT_SOURCE                     = 0x7\n\tNET_RT_STATS                      = 0x4\n\tNET_RT_TABLE                      = 0x5\n\tNFDBITS                           = 0x20\n\tNOFLSH                            = 0x80000000\n\tNOKERNINFO                        = 0x2000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHANGE                       = 0x1\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EOF                          = 0x2\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_OOB                          = 0x4\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_TRUNCATE                     = 0x80\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tOLCUC                             = 0x20\n\tONLCR                             = 0x2\n\tONLRET                            = 0x80\n\tONOCR                             = 0x40\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tOXTABS                            = 0x4\n\tO_ACCMODE                         = 0x3\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x10000\n\tO_CREAT                           = 0x200\n\tO_DIRECTORY                       = 0x20000\n\tO_DSYNC                           = 0x80\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_RSYNC                           = 0x80\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPF_FLUSH                          = 0x1\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BFD                          = 0xb\n\tRTAX_BRD                          = 0x7\n\tRTAX_DNS                          = 0xc\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_LABEL                        = 0xa\n\tRTAX_MAX                          = 0xf\n\tRTAX_NETMASK                      = 0x2\n\tRTAX_SEARCH                       = 0xe\n\tRTAX_SRC                          = 0x8\n\tRTAX_SRCMASK                      = 0x9\n\tRTAX_STATIC                       = 0xd\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BFD                           = 0x800\n\tRTA_BRD                           = 0x80\n\tRTA_DNS                           = 0x1000\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_LABEL                         = 0x400\n\tRTA_NETMASK                       = 0x4\n\tRTA_SEARCH                        = 0x4000\n\tRTA_SRC                           = 0x100\n\tRTA_SRCMASK                       = 0x200\n\tRTA_STATIC                        = 0x2000\n\tRTF_ANNOUNCE                      = 0x4000\n\tRTF_BFD                           = 0x1000000\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_BROADCAST                     = 0x400000\n\tRTF_CACHED                        = 0x20000\n\tRTF_CLONED                        = 0x10000\n\tRTF_CLONING                       = 0x100\n\tRTF_CONNECTED                     = 0x800000\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_FMASK                         = 0x110fc08\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_LOCAL                         = 0x200000\n\tRTF_MODIFIED                      = 0x20\n\tRTF_MPATH                         = 0x40000\n\tRTF_MPLS                          = 0x100000\n\tRTF_MULTICAST                     = 0x200\n\tRTF_PERMANENT_ARP                 = 0x2000\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_PROTO3                        = 0x2000\n\tRTF_REJECT                        = 0x8\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_USETRAILERS                   = 0x8000\n\tRTM_80211INFO                     = 0x15\n\tRTM_ADD                           = 0x1\n\tRTM_BFD                           = 0x12\n\tRTM_CHANGE                        = 0x3\n\tRTM_CHGADDRATTR                   = 0x14\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_DESYNC                        = 0x10\n\tRTM_GET                           = 0x4\n\tRTM_IFANNOUNCE                    = 0xf\n\tRTM_IFINFO                        = 0xe\n\tRTM_INVALIDATE                    = 0x11\n\tRTM_LOSING                        = 0x5\n\tRTM_MAXSIZE                       = 0x800\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_PROPOSAL                      = 0x13\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_SOURCE                        = 0x16\n\tRTM_VERSION                       = 0x5\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRT_TABLEID_BITS                   = 0x8\n\tRT_TABLEID_MASK                   = 0xff\n\tRT_TABLEID_MAX                    = 0xff\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tRUSAGE_THREAD                     = 0x1\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x4\n\tSEEK_CUR                          = 0x1\n\tSEEK_END                          = 0x2\n\tSEEK_SET                          = 0x0\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80206931\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCAIFGROUP                      = 0x80286987\n\tSIOCATMARK                        = 0x40047307\n\tSIOCBRDGADD                       = 0x8060693c\n\tSIOCBRDGADDL                      = 0x80606949\n\tSIOCBRDGADDS                      = 0x80606941\n\tSIOCBRDGARL                       = 0x808c694d\n\tSIOCBRDGDADDR                     = 0x81286947\n\tSIOCBRDGDEL                       = 0x8060693d\n\tSIOCBRDGDELS                      = 0x80606942\n\tSIOCBRDGFLUSH                     = 0x80606948\n\tSIOCBRDGFRL                       = 0x808c694e\n\tSIOCBRDGGCACHE                    = 0xc0146941\n\tSIOCBRDGGFD                       = 0xc0146952\n\tSIOCBRDGGHT                       = 0xc0146951\n\tSIOCBRDGGIFFLGS                   = 0xc060693e\n\tSIOCBRDGGMA                       = 0xc0146953\n\tSIOCBRDGGPARAM                    = 0xc0406958\n\tSIOCBRDGGPRI                      = 0xc0146950\n\tSIOCBRDGGRL                       = 0xc030694f\n\tSIOCBRDGGTO                       = 0xc0146946\n\tSIOCBRDGIFS                       = 0xc0606942\n\tSIOCBRDGRTS                       = 0xc0206943\n\tSIOCBRDGSADDR                     = 0xc1286944\n\tSIOCBRDGSCACHE                    = 0x80146940\n\tSIOCBRDGSFD                       = 0x80146952\n\tSIOCBRDGSHT                       = 0x80146951\n\tSIOCBRDGSIFCOST                   = 0x80606955\n\tSIOCBRDGSIFFLGS                   = 0x8060693f\n\tSIOCBRDGSIFPRIO                   = 0x80606954\n\tSIOCBRDGSIFPROT                   = 0x8060694a\n\tSIOCBRDGSMA                       = 0x80146953\n\tSIOCBRDGSPRI                      = 0x80146950\n\tSIOCBRDGSPROTO                    = 0x8014695a\n\tSIOCBRDGSTO                       = 0x80146945\n\tSIOCBRDGSTXHC                     = 0x80146959\n\tSIOCDELLABEL                      = 0x80206997\n\tSIOCDELMULTI                      = 0x80206932\n\tSIOCDIFADDR                       = 0x80206919\n\tSIOCDIFGROUP                      = 0x80286989\n\tSIOCDIFPARENT                     = 0x802069b4\n\tSIOCDIFPHYADDR                    = 0x80206949\n\tSIOCDPWE3NEIGHBOR                 = 0x802069de\n\tSIOCDVNETID                       = 0x802069af\n\tSIOCGETKALIVE                     = 0xc01869a4\n\tSIOCGETLABEL                      = 0x8020699a\n\tSIOCGETMPWCFG                     = 0xc02069ae\n\tSIOCGETPFLOW                      = 0xc02069fe\n\tSIOCGETPFSYNC                     = 0xc02069f8\n\tSIOCGETSGCNT                      = 0xc0207534\n\tSIOCGETVIFCNT                     = 0xc0287533\n\tSIOCGETVLAN                       = 0xc0206990\n\tSIOCGIFADDR                       = 0xc0206921\n\tSIOCGIFBRDADDR                    = 0xc0206923\n\tSIOCGIFCONF                       = 0xc0106924\n\tSIOCGIFDATA                       = 0xc020691b\n\tSIOCGIFDESCR                      = 0xc0206981\n\tSIOCGIFDSTADDR                    = 0xc0206922\n\tSIOCGIFFLAGS                      = 0xc0206911\n\tSIOCGIFGATTR                      = 0xc028698b\n\tSIOCGIFGENERIC                    = 0xc020693a\n\tSIOCGIFGLIST                      = 0xc028698d\n\tSIOCGIFGMEMB                      = 0xc028698a\n\tSIOCGIFGROUP                      = 0xc0286988\n\tSIOCGIFHARDMTU                    = 0xc02069a5\n\tSIOCGIFLLPRIO                     = 0xc02069b6\n\tSIOCGIFMEDIA                      = 0xc0406938\n\tSIOCGIFMETRIC                     = 0xc0206917\n\tSIOCGIFMTU                        = 0xc020697e\n\tSIOCGIFNETMASK                    = 0xc0206925\n\tSIOCGIFPAIR                       = 0xc02069b1\n\tSIOCGIFPARENT                     = 0xc02069b3\n\tSIOCGIFPRIORITY                   = 0xc020699c\n\tSIOCGIFRDOMAIN                    = 0xc02069a0\n\tSIOCGIFRTLABEL                    = 0xc0206983\n\tSIOCGIFRXR                        = 0x802069aa\n\tSIOCGIFSFFPAGE                    = 0xc1126939\n\tSIOCGIFXFLAGS                     = 0xc020699e\n\tSIOCGLIFPHYADDR                   = 0xc218694b\n\tSIOCGLIFPHYDF                     = 0xc02069c2\n\tSIOCGLIFPHYECN                    = 0xc02069c8\n\tSIOCGLIFPHYRTABLE                 = 0xc02069a2\n\tSIOCGLIFPHYTTL                    = 0xc02069a9\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGPWE3                         = 0xc0206998\n\tSIOCGPWE3CTRLWORD                 = 0xc02069dc\n\tSIOCGPWE3FAT                      = 0xc02069dd\n\tSIOCGPWE3NEIGHBOR                 = 0xc21869de\n\tSIOCGRXHPRIO                      = 0xc02069db\n\tSIOCGSPPPPARAMS                   = 0xc0206994\n\tSIOCGTXHPRIO                      = 0xc02069c6\n\tSIOCGUMBINFO                      = 0xc02069be\n\tSIOCGUMBPARAM                     = 0xc02069c0\n\tSIOCGVH                           = 0xc02069f6\n\tSIOCGVNETFLOWID                   = 0xc02069c4\n\tSIOCGVNETID                       = 0xc02069a7\n\tSIOCIFAFATTACH                    = 0x801169ab\n\tSIOCIFAFDETACH                    = 0x801169ac\n\tSIOCIFCREATE                      = 0x8020697a\n\tSIOCIFDESTROY                     = 0x80206979\n\tSIOCIFGCLONERS                    = 0xc0106978\n\tSIOCSETKALIVE                     = 0x801869a3\n\tSIOCSETLABEL                      = 0x80206999\n\tSIOCSETMPWCFG                     = 0x802069ad\n\tSIOCSETPFLOW                      = 0x802069fd\n\tSIOCSETPFSYNC                     = 0x802069f7\n\tSIOCSETVLAN                       = 0x8020698f\n\tSIOCSIFADDR                       = 0x8020690c\n\tSIOCSIFBRDADDR                    = 0x80206913\n\tSIOCSIFDESCR                      = 0x80206980\n\tSIOCSIFDSTADDR                    = 0x8020690e\n\tSIOCSIFFLAGS                      = 0x80206910\n\tSIOCSIFGATTR                      = 0x8028698c\n\tSIOCSIFGENERIC                    = 0x80206939\n\tSIOCSIFLLADDR                     = 0x8020691f\n\tSIOCSIFLLPRIO                     = 0x802069b5\n\tSIOCSIFMEDIA                      = 0xc0206937\n\tSIOCSIFMETRIC                     = 0x80206918\n\tSIOCSIFMTU                        = 0x8020697f\n\tSIOCSIFNETMASK                    = 0x80206916\n\tSIOCSIFPAIR                       = 0x802069b0\n\tSIOCSIFPARENT                     = 0x802069b2\n\tSIOCSIFPRIORITY                   = 0x8020699b\n\tSIOCSIFRDOMAIN                    = 0x8020699f\n\tSIOCSIFRTLABEL                    = 0x80206982\n\tSIOCSIFXFLAGS                     = 0x8020699d\n\tSIOCSLIFPHYADDR                   = 0x8218694a\n\tSIOCSLIFPHYDF                     = 0x802069c1\n\tSIOCSLIFPHYECN                    = 0x802069c7\n\tSIOCSLIFPHYRTABLE                 = 0x802069a1\n\tSIOCSLIFPHYTTL                    = 0x802069a8\n\tSIOCSPGRP                         = 0x80047308\n\tSIOCSPWE3CTRLWORD                 = 0x802069dc\n\tSIOCSPWE3FAT                      = 0x802069dd\n\tSIOCSPWE3NEIGHBOR                 = 0x821869de\n\tSIOCSRXHPRIO                      = 0x802069db\n\tSIOCSSPPPPARAMS                   = 0x80206993\n\tSIOCSTXHPRIO                      = 0x802069c5\n\tSIOCSUMBPARAM                     = 0x802069bf\n\tSIOCSVH                           = 0xc02069f5\n\tSIOCSVNETFLOWID                   = 0x802069c3\n\tSIOCSVNETID                       = 0x802069a6\n\tSOCK_CLOEXEC                      = 0x8000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_DNS                          = 0x1000\n\tSOCK_NONBLOCK                     = 0x4000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_BINDANY                        = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DOMAIN                         = 0x1024\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NETPROC                        = 0x1020\n\tSO_OOBINLINE                      = 0x100\n\tSO_PEERCRED                       = 0x1022\n\tSO_PROTOCOL                       = 0x1025\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x1006\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_RTABLE                         = 0x1021\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x1005\n\tSO_SPLICE                         = 0x1023\n\tSO_TIMESTAMP                      = 0x800\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tSO_ZEROIZE                        = 0x2000\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tTCIFLUSH                          = 0x1\n\tTCIOFF                            = 0x3\n\tTCIOFLUSH                         = 0x3\n\tTCION                             = 0x4\n\tTCOFLUSH                          = 0x2\n\tTCOOFF                            = 0x1\n\tTCOON                             = 0x2\n\tTCPOPT_EOL                        = 0x0\n\tTCPOPT_MAXSEG                     = 0x2\n\tTCPOPT_NOP                        = 0x1\n\tTCPOPT_SACK                       = 0x5\n\tTCPOPT_SACK_HDR                   = 0x1010500\n\tTCPOPT_SACK_PERMITTED             = 0x4\n\tTCPOPT_SACK_PERMIT_HDR            = 0x1010402\n\tTCPOPT_SIGNATURE                  = 0x13\n\tTCPOPT_TIMESTAMP                  = 0x8\n\tTCPOPT_TSTAMP_HDR                 = 0x101080a\n\tTCPOPT_WINDOW                     = 0x3\n\tTCP_INFO                          = 0x9\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_SACK                      = 0x3\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MD5SIG                        = 0x4\n\tTCP_MSS                           = 0x200\n\tTCP_NODELAY                       = 0x1\n\tTCP_NOPUSH                        = 0x10\n\tTCP_SACKHOLE_LIMIT                = 0x80\n\tTCP_SACK_ENABLE                   = 0x8\n\tTCSAFLUSH                         = 0x2\n\tTIMER_ABSTIME                     = 0x1\n\tTIMER_RELTIME                     = 0x0\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCHKVERAUTH                    = 0x2000741e\n\tTIOCCLRVERAUTH                    = 0x2000741d\n\tTIOCCONS                          = 0x80047462\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLAG_CLOCAL                   = 0x2\n\tTIOCFLAG_CRTSCTS                  = 0x4\n\tTIOCFLAG_MDMBUF                   = 0x8\n\tTIOCFLAG_PPS                      = 0x10\n\tTIOCFLAG_SOFTCAR                  = 0x1\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGFLAGS                        = 0x4004745d\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGSID                          = 0x40047463\n\tTIOCGTSTAMP                       = 0x4010745b\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMODG                          = 0x4004746a\n\tTIOCMODS                          = 0x8004746d\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSETVERAUTH                    = 0x8004741c\n\tTIOCSFLAGS                        = 0x8004745c\n\tTIOCSIG                           = 0x8004745f\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x20007465\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSTSTAMP                       = 0x8008745a\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCUCNTL                         = 0x80047466\n\tTIOCUCNTL_CBRK                    = 0x7a\n\tTIOCUCNTL_SBRK                    = 0x7b\n\tTOSTOP                            = 0x400000\n\tUTIME_NOW                         = -0x2\n\tUTIME_OMIT                        = -0x1\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVM_ANONMIN                        = 0x7\n\tVM_LOADAVG                        = 0x2\n\tVM_MALLOC_CONF                    = 0xc\n\tVM_MAXID                          = 0xd\n\tVM_MAXSLP                         = 0xa\n\tVM_METER                          = 0x1\n\tVM_NKMEMPAGES                     = 0x6\n\tVM_PSSTRINGS                      = 0x3\n\tVM_SWAPENCRYPT                    = 0x5\n\tVM_USPACE                         = 0xb\n\tVM_UVMEXP                         = 0x4\n\tVM_VNODEMIN                       = 0x9\n\tVM_VTEXTMIN                       = 0x8\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWALTSIG                           = 0x4\n\tWCONTINUED                        = 0x8\n\tWCOREFLAG                         = 0x80\n\tWNOHANG                           = 0x1\n\tWUNTRACED                         = 0x2\n\tXCASE                             = 0x1000000\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x5c)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x58)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x59)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEIPSEC          = syscall.Errno(0x52)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x5f)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMEDIUMTYPE     = syscall.Errno(0x56)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x53)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOMEDIUM       = syscall.Errno(0x55)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x5a)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x5d)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x5b)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x57)\n\tEOWNERDEAD      = syscall.Errno(0x5e)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5f)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disk quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC program not available\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIPSEC\", \"IPsec processing failure\"},\n\t{83, \"ENOATTR\", \"attribute not found\"},\n\t{84, \"EILSEQ\", \"illegal byte sequence\"},\n\t{85, \"ENOMEDIUM\", \"no medium found\"},\n\t{86, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{87, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{88, \"ECANCELED\", \"operation canceled\"},\n\t{89, \"EIDRM\", \"identifier removed\"},\n\t{90, \"ENOMSG\", \"no message of desired type\"},\n\t{91, \"ENOTSUP\", \"not supported\"},\n\t{92, \"EBADMSG\", \"bad message\"},\n\t{93, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{94, \"EOWNERDEAD\", \"previous owner died\"},\n\t{95, \"ELAST\", \"protocol error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"thread AST\"},\n\t{28672, \"SIGSTKSZ\", \"unknown signal\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mips64 && openbsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_BLUETOOTH                      = 0x20\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_ENCAP                          = 0x1c\n\tAF_HYLINK                         = 0xf\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x18\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_KEY                            = 0x1e\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x24\n\tAF_MPLS                           = 0x21\n\tAF_NATM                           = 0x1b\n\tAF_NS                             = 0x6\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x11\n\tAF_SIP                            = 0x1d\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tALTWERASE                         = 0x200\n\tARPHRD_ETHER                      = 0x1\n\tARPHRD_FRELAY                     = 0xf\n\tARPHRD_IEEE1394                   = 0x18\n\tARPHRD_IEEE802                    = 0x6\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB9600                             = 0x2580\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDIRFILT                      = 0x4004427c\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc010427b\n\tBIOCGETIF                         = 0x4020426b\n\tBIOCGFILDROP                      = 0x40044278\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRSIG                         = 0x40044273\n\tBIOCGRTIMEOUT                     = 0x4010426e\n\tBIOCGSTATS                        = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCLOCK                          = 0x20004276\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDIRFILT                      = 0x8004427d\n\tBIOCSDLT                          = 0x8004427a\n\tBIOCSETF                          = 0x80104267\n\tBIOCSETIF                         = 0x8020426c\n\tBIOCSETWF                         = 0x80104277\n\tBIOCSFILDROP                      = 0x80044279\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRSIG                         = 0x80044272\n\tBIOCSRTIMEOUT                     = 0x8010426d\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DIRECTION_IN                  = 0x1\n\tBPF_DIRECTION_OUT                 = 0x2\n\tBPF_DIV                           = 0x30\n\tBPF_FILDROP_CAPTURE               = 0x1\n\tBPF_FILDROP_DROP                  = 0x2\n\tBPF_FILDROP_PASS                  = 0x0\n\tBPF_F_DIR_IN                      = 0x10\n\tBPF_F_DIR_MASK                    = 0x30\n\tBPF_F_DIR_OUT                     = 0x20\n\tBPF_F_DIR_SHIFT                   = 0x4\n\tBPF_F_FLOWID                      = 0x8\n\tBPF_F_PRI_MASK                    = 0x7\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x200000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RND                           = 0xc0\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCLOCK_BOOTTIME                    = 0x6\n\tCLOCK_MONOTONIC                   = 0x3\n\tCLOCK_PROCESS_CPUTIME_ID          = 0x2\n\tCLOCK_REALTIME                    = 0x0\n\tCLOCK_THREAD_CPUTIME_ID           = 0x4\n\tCLOCK_UPTIME                      = 0x5\n\tCPUSTATES                         = 0x6\n\tCP_IDLE                           = 0x5\n\tCP_INTR                           = 0x4\n\tCP_NICE                           = 0x1\n\tCP_SPIN                           = 0x3\n\tCP_SYS                            = 0x2\n\tCP_USER                           = 0x0\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x10000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0xff\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tDIOCADDQUEUE                      = 0xc110445d\n\tDIOCADDRULE                       = 0xcd604404\n\tDIOCADDSTATE                      = 0xc1084425\n\tDIOCCHANGERULE                    = 0xcd60441a\n\tDIOCCLRIFFLAG                     = 0xc028445a\n\tDIOCCLRSRCNODES                   = 0x20004455\n\tDIOCCLRSTATES                     = 0xc0e04412\n\tDIOCCLRSTATUS                     = 0xc0284416\n\tDIOCGETLIMIT                      = 0xc0084427\n\tDIOCGETQSTATS                     = 0xc1204460\n\tDIOCGETQUEUE                      = 0xc110445f\n\tDIOCGETQUEUES                     = 0xc110445e\n\tDIOCGETRULE                       = 0xcd604407\n\tDIOCGETRULES                      = 0xcd604406\n\tDIOCGETRULESET                    = 0xc444443b\n\tDIOCGETRULESETS                   = 0xc444443a\n\tDIOCGETSRCNODES                   = 0xc0104454\n\tDIOCGETSTATE                      = 0xc1084413\n\tDIOCGETSTATES                     = 0xc0104419\n\tDIOCGETSTATUS                     = 0xc1e84415\n\tDIOCGETSYNFLWATS                  = 0xc0084463\n\tDIOCGETTIMEOUT                    = 0xc008441e\n\tDIOCIGETIFACES                    = 0xc0284457\n\tDIOCKILLSRCNODES                  = 0xc080445b\n\tDIOCKILLSTATES                    = 0xc0e04429\n\tDIOCNATLOOK                       = 0xc0504417\n\tDIOCOSFPADD                       = 0xc088444f\n\tDIOCOSFPFLUSH                     = 0x2000444e\n\tDIOCOSFPGET                       = 0xc0884450\n\tDIOCRADDADDRS                     = 0xc4504443\n\tDIOCRADDTABLES                    = 0xc450443d\n\tDIOCRCLRADDRS                     = 0xc4504442\n\tDIOCRCLRASTATS                    = 0xc4504448\n\tDIOCRCLRTABLES                    = 0xc450443c\n\tDIOCRCLRTSTATS                    = 0xc4504441\n\tDIOCRDELADDRS                     = 0xc4504444\n\tDIOCRDELTABLES                    = 0xc450443e\n\tDIOCRGETADDRS                     = 0xc4504446\n\tDIOCRGETASTATS                    = 0xc4504447\n\tDIOCRGETTABLES                    = 0xc450443f\n\tDIOCRGETTSTATS                    = 0xc4504440\n\tDIOCRINADEFINE                    = 0xc450444d\n\tDIOCRSETADDRS                     = 0xc4504445\n\tDIOCRSETTFLAGS                    = 0xc450444a\n\tDIOCRTSTADDRS                     = 0xc4504449\n\tDIOCSETDEBUG                      = 0xc0044418\n\tDIOCSETHOSTID                     = 0xc0044456\n\tDIOCSETIFFLAG                     = 0xc0284459\n\tDIOCSETLIMIT                      = 0xc0084428\n\tDIOCSETREASS                      = 0xc004445c\n\tDIOCSETSTATUSIF                   = 0xc0284414\n\tDIOCSETSYNCOOKIES                 = 0xc0014462\n\tDIOCSETSYNFLWATS                  = 0xc0084461\n\tDIOCSETTIMEOUT                    = 0xc008441d\n\tDIOCSTART                         = 0x20004401\n\tDIOCSTOP                          = 0x20004402\n\tDIOCXBEGIN                        = 0xc0104451\n\tDIOCXCOMMIT                       = 0xc0104452\n\tDIOCXROLLBACK                     = 0xc0104453\n\tDLT_ARCNET                        = 0x7\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AX25                          = 0x3\n\tDLT_CHAOS                         = 0x5\n\tDLT_C_HDLC                        = 0x68\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0xd\n\tDLT_FDDI                          = 0xa\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_LOOP                          = 0xc\n\tDLT_MPLS                          = 0xdb\n\tDLT_NULL                          = 0x0\n\tDLT_OPENFLOW                      = 0x10b\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0x10\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PRONET                        = 0x4\n\tDLT_RAW                           = 0xe\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xf\n\tDLT_USBPCAP                       = 0xf9\n\tDLT_USER0                         = 0x93\n\tDLT_USER1                         = 0x94\n\tDLT_USER10                        = 0x9d\n\tDLT_USER11                        = 0x9e\n\tDLT_USER12                        = 0x9f\n\tDLT_USER13                        = 0xa0\n\tDLT_USER14                        = 0xa1\n\tDLT_USER15                        = 0xa2\n\tDLT_USER2                         = 0x95\n\tDLT_USER3                         = 0x96\n\tDLT_USER4                         = 0x97\n\tDLT_USER5                         = 0x98\n\tDLT_USER6                         = 0x99\n\tDLT_USER7                         = 0x9a\n\tDLT_USER8                         = 0x9b\n\tDLT_USER9                         = 0x9c\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEMT_TAGOVF                        = 0x1\n\tEMUL_ENABLED                      = 0x1\n\tEMUL_NATIVE                       = 0x2\n\tENDRUNDISC                        = 0x9\n\tETH64_8021_RSVD_MASK              = 0xfffffffffff0\n\tETH64_8021_RSVD_PREFIX            = 0x180c2000000\n\tETHERMIN                          = 0x2e\n\tETHERMTU                          = 0x5dc\n\tETHERTYPE_8023                    = 0x4\n\tETHERTYPE_AARP                    = 0x80f3\n\tETHERTYPE_ACCTON                  = 0x8390\n\tETHERTYPE_AEONIC                  = 0x8036\n\tETHERTYPE_ALPHA                   = 0x814a\n\tETHERTYPE_AMBER                   = 0x6008\n\tETHERTYPE_AMOEBA                  = 0x8145\n\tETHERTYPE_AOE                     = 0x88a2\n\tETHERTYPE_APOLLO                  = 0x80f7\n\tETHERTYPE_APOLLODOMAIN            = 0x8019\n\tETHERTYPE_APPLETALK               = 0x809b\n\tETHERTYPE_APPLITEK                = 0x80c7\n\tETHERTYPE_ARGONAUT                = 0x803a\n\tETHERTYPE_ARP                     = 0x806\n\tETHERTYPE_AT                      = 0x809b\n\tETHERTYPE_ATALK                   = 0x809b\n\tETHERTYPE_ATOMIC                  = 0x86df\n\tETHERTYPE_ATT                     = 0x8069\n\tETHERTYPE_ATTSTANFORD             = 0x8008\n\tETHERTYPE_AUTOPHON                = 0x806a\n\tETHERTYPE_AXIS                    = 0x8856\n\tETHERTYPE_BCLOOP                  = 0x9003\n\tETHERTYPE_BOFL                    = 0x8102\n\tETHERTYPE_CABLETRON               = 0x7034\n\tETHERTYPE_CHAOS                   = 0x804\n\tETHERTYPE_COMDESIGN               = 0x806c\n\tETHERTYPE_COMPUGRAPHIC            = 0x806d\n\tETHERTYPE_COUNTERPOINT            = 0x8062\n\tETHERTYPE_CRONUS                  = 0x8004\n\tETHERTYPE_CRONUSVLN               = 0x8003\n\tETHERTYPE_DCA                     = 0x1234\n\tETHERTYPE_DDE                     = 0x807b\n\tETHERTYPE_DEBNI                   = 0xaaaa\n\tETHERTYPE_DECAM                   = 0x8048\n\tETHERTYPE_DECCUST                 = 0x6006\n\tETHERTYPE_DECDIAG                 = 0x6005\n\tETHERTYPE_DECDNS                  = 0x803c\n\tETHERTYPE_DECDTS                  = 0x803e\n\tETHERTYPE_DECEXPER                = 0x6000\n\tETHERTYPE_DECLAST                 = 0x8041\n\tETHERTYPE_DECLTM                  = 0x803f\n\tETHERTYPE_DECMUMPS                = 0x6009\n\tETHERTYPE_DECNETBIOS              = 0x8040\n\tETHERTYPE_DELTACON                = 0x86de\n\tETHERTYPE_DIDDLE                  = 0x4321\n\tETHERTYPE_DLOG1                   = 0x660\n\tETHERTYPE_DLOG2                   = 0x661\n\tETHERTYPE_DN                      = 0x6003\n\tETHERTYPE_DOGFIGHT                = 0x1989\n\tETHERTYPE_DSMD                    = 0x8039\n\tETHERTYPE_EAPOL                   = 0x888e\n\tETHERTYPE_ECMA                    = 0x803\n\tETHERTYPE_ENCRYPT                 = 0x803d\n\tETHERTYPE_ES                      = 0x805d\n\tETHERTYPE_EXCELAN                 = 0x8010\n\tETHERTYPE_EXPERDATA               = 0x8049\n\tETHERTYPE_FLIP                    = 0x8146\n\tETHERTYPE_FLOWCONTROL             = 0x8808\n\tETHERTYPE_FRARP                   = 0x808\n\tETHERTYPE_GENDYN                  = 0x8068\n\tETHERTYPE_HAYES                   = 0x8130\n\tETHERTYPE_HIPPI_FP                = 0x8180\n\tETHERTYPE_HITACHI                 = 0x8820\n\tETHERTYPE_HP                      = 0x8005\n\tETHERTYPE_IEEEPUP                 = 0xa00\n\tETHERTYPE_IEEEPUPAT               = 0xa01\n\tETHERTYPE_IMLBL                   = 0x4c42\n\tETHERTYPE_IMLBLDIAG               = 0x424c\n\tETHERTYPE_IP                      = 0x800\n\tETHERTYPE_IPAS                    = 0x876c\n\tETHERTYPE_IPV6                    = 0x86dd\n\tETHERTYPE_IPX                     = 0x8137\n\tETHERTYPE_IPXNEW                  = 0x8037\n\tETHERTYPE_KALPANA                 = 0x8582\n\tETHERTYPE_LANBRIDGE               = 0x8038\n\tETHERTYPE_LANPROBE                = 0x8888\n\tETHERTYPE_LAT                     = 0x6004\n\tETHERTYPE_LBACK                   = 0x9000\n\tETHERTYPE_LITTLE                  = 0x8060\n\tETHERTYPE_LLDP                    = 0x88cc\n\tETHERTYPE_LOGICRAFT               = 0x8148\n\tETHERTYPE_LOOPBACK                = 0x9000\n\tETHERTYPE_MACSEC                  = 0x88e5\n\tETHERTYPE_MATRA                   = 0x807a\n\tETHERTYPE_MAX                     = 0xffff\n\tETHERTYPE_MERIT                   = 0x807c\n\tETHERTYPE_MICP                    = 0x873a\n\tETHERTYPE_MOPDL                   = 0x6001\n\tETHERTYPE_MOPRC                   = 0x6002\n\tETHERTYPE_MOTOROLA                = 0x818d\n\tETHERTYPE_MPLS                    = 0x8847\n\tETHERTYPE_MPLS_MCAST              = 0x8848\n\tETHERTYPE_MUMPS                   = 0x813f\n\tETHERTYPE_NBPCC                   = 0x3c04\n\tETHERTYPE_NBPCLAIM                = 0x3c09\n\tETHERTYPE_NBPCLREQ                = 0x3c05\n\tETHERTYPE_NBPCLRSP                = 0x3c06\n\tETHERTYPE_NBPCREQ                 = 0x3c02\n\tETHERTYPE_NBPCRSP                 = 0x3c03\n\tETHERTYPE_NBPDG                   = 0x3c07\n\tETHERTYPE_NBPDGB                  = 0x3c08\n\tETHERTYPE_NBPDLTE                 = 0x3c0a\n\tETHERTYPE_NBPRAR                  = 0x3c0c\n\tETHERTYPE_NBPRAS                  = 0x3c0b\n\tETHERTYPE_NBPRST                  = 0x3c0d\n\tETHERTYPE_NBPSCD                  = 0x3c01\n\tETHERTYPE_NBPVCD                  = 0x3c00\n\tETHERTYPE_NBS                     = 0x802\n\tETHERTYPE_NCD                     = 0x8149\n\tETHERTYPE_NESTAR                  = 0x8006\n\tETHERTYPE_NETBEUI                 = 0x8191\n\tETHERTYPE_NHRP                    = 0x2001\n\tETHERTYPE_NOVELL                  = 0x8138\n\tETHERTYPE_NS                      = 0x600\n\tETHERTYPE_NSAT                    = 0x601\n\tETHERTYPE_NSCOMPAT                = 0x807\n\tETHERTYPE_NSH                     = 0x984f\n\tETHERTYPE_NTRAILER                = 0x10\n\tETHERTYPE_OS9                     = 0x7007\n\tETHERTYPE_OS9NET                  = 0x7009\n\tETHERTYPE_PACER                   = 0x80c6\n\tETHERTYPE_PBB                     = 0x88e7\n\tETHERTYPE_PCS                     = 0x4242\n\tETHERTYPE_PLANNING                = 0x8044\n\tETHERTYPE_PPP                     = 0x880b\n\tETHERTYPE_PPPOE                   = 0x8864\n\tETHERTYPE_PPPOEDISC               = 0x8863\n\tETHERTYPE_PRIMENTS                = 0x7031\n\tETHERTYPE_PUP                     = 0x200\n\tETHERTYPE_PUPAT                   = 0x200\n\tETHERTYPE_QINQ                    = 0x88a8\n\tETHERTYPE_RACAL                   = 0x7030\n\tETHERTYPE_RATIONAL                = 0x8150\n\tETHERTYPE_RAWFR                   = 0x6559\n\tETHERTYPE_RCL                     = 0x1995\n\tETHERTYPE_RDP                     = 0x8739\n\tETHERTYPE_RETIX                   = 0x80f2\n\tETHERTYPE_REVARP                  = 0x8035\n\tETHERTYPE_SCA                     = 0x6007\n\tETHERTYPE_SECTRA                  = 0x86db\n\tETHERTYPE_SECUREDATA              = 0x876d\n\tETHERTYPE_SGITW                   = 0x817e\n\tETHERTYPE_SG_BOUNCE               = 0x8016\n\tETHERTYPE_SG_DIAG                 = 0x8013\n\tETHERTYPE_SG_NETGAMES             = 0x8014\n\tETHERTYPE_SG_RESV                 = 0x8015\n\tETHERTYPE_SIMNET                  = 0x5208\n\tETHERTYPE_SLOW                    = 0x8809\n\tETHERTYPE_SNA                     = 0x80d5\n\tETHERTYPE_SNMP                    = 0x814c\n\tETHERTYPE_SONIX                   = 0xfaf5\n\tETHERTYPE_SPIDER                  = 0x809f\n\tETHERTYPE_SPRITE                  = 0x500\n\tETHERTYPE_STP                     = 0x8181\n\tETHERTYPE_TALARIS                 = 0x812b\n\tETHERTYPE_TALARISMC               = 0x852b\n\tETHERTYPE_TCPCOMP                 = 0x876b\n\tETHERTYPE_TCPSM                   = 0x9002\n\tETHERTYPE_TEC                     = 0x814f\n\tETHERTYPE_TIGAN                   = 0x802f\n\tETHERTYPE_TRAIL                   = 0x1000\n\tETHERTYPE_TRANSETHER              = 0x6558\n\tETHERTYPE_TYMSHARE                = 0x802e\n\tETHERTYPE_UBBST                   = 0x7005\n\tETHERTYPE_UBDEBUG                 = 0x900\n\tETHERTYPE_UBDIAGLOOP              = 0x7002\n\tETHERTYPE_UBDL                    = 0x7000\n\tETHERTYPE_UBNIU                   = 0x7001\n\tETHERTYPE_UBNMC                   = 0x7003\n\tETHERTYPE_VALID                   = 0x1600\n\tETHERTYPE_VARIAN                  = 0x80dd\n\tETHERTYPE_VAXELN                  = 0x803b\n\tETHERTYPE_VEECO                   = 0x8067\n\tETHERTYPE_VEXP                    = 0x805b\n\tETHERTYPE_VGLAB                   = 0x8131\n\tETHERTYPE_VINES                   = 0xbad\n\tETHERTYPE_VINESECHO               = 0xbaf\n\tETHERTYPE_VINESLOOP               = 0xbae\n\tETHERTYPE_VITAL                   = 0xff00\n\tETHERTYPE_VLAN                    = 0x8100\n\tETHERTYPE_VLTLMAN                 = 0x8080\n\tETHERTYPE_VPROD                   = 0x805c\n\tETHERTYPE_VURESERVED              = 0x8147\n\tETHERTYPE_WATERLOO                = 0x8130\n\tETHERTYPE_WELLFLEET               = 0x8103\n\tETHERTYPE_X25                     = 0x805\n\tETHERTYPE_X75                     = 0x801\n\tETHERTYPE_XNSSM                   = 0x9001\n\tETHERTYPE_XTP                     = 0x817d\n\tETHER_ADDR_LEN                    = 0x6\n\tETHER_ALIGN                       = 0x2\n\tETHER_CRC_LEN                     = 0x4\n\tETHER_CRC_POLY_BE                 = 0x4c11db6\n\tETHER_CRC_POLY_LE                 = 0xedb88320\n\tETHER_HDR_LEN                     = 0xe\n\tETHER_MAX_DIX_LEN                 = 0x600\n\tETHER_MAX_HARDMTU_LEN             = 0xff9b\n\tETHER_MAX_LEN                     = 0x5ee\n\tETHER_MIN_LEN                     = 0x40\n\tETHER_TYPE_LEN                    = 0x2\n\tETHER_VLAN_ENCAP_LEN              = 0x4\n\tEVFILT_AIO                        = -0x3\n\tEVFILT_DEVICE                     = -0x8\n\tEVFILT_EXCEPT                     = -0x9\n\tEVFILT_PROC                       = -0x5\n\tEVFILT_READ                       = -0x1\n\tEVFILT_SIGNAL                     = -0x6\n\tEVFILT_SYSCOUNT                   = 0x9\n\tEVFILT_TIMER                      = -0x7\n\tEVFILT_VNODE                      = -0x4\n\tEVFILT_WRITE                      = -0x2\n\tEVL_ENCAPLEN                      = 0x4\n\tEVL_PRIO_BITS                     = 0xd\n\tEVL_PRIO_MAX                      = 0x7\n\tEVL_VLID_MASK                     = 0xfff\n\tEVL_VLID_MAX                      = 0xffe\n\tEVL_VLID_MIN                      = 0x1\n\tEVL_VLID_NULL                     = 0x0\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_DISPATCH                       = 0x80\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_RECEIPT                        = 0x40\n\tEV_SYSFLAGS                       = 0xf800\n\tEXTA                              = 0x4b00\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x400\n\tFLUSHO                            = 0x800000\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0xa\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETOWN                          = 0x5\n\tF_ISATTY                          = 0xb\n\tF_OK                              = 0x0\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x8e52\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_STATICARP                     = 0x20\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BLUETOOTH                     = 0xf8\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf7\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DUMMY                         = 0xf1\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ECONET                        = 0xce\n\tIFT_ENC                           = 0xf4\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf3\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INFINIBAND                    = 0xc7\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LINEGROUP                     = 0xd2\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MBIM                          = 0xfa\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFLOW                         = 0xf9\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_PON155                        = 0xcf\n\tIFT_PON622                        = 0xd0\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPATM                       = 0xc5\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf2\n\tIFT_Q2931                         = 0xc9\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SIPSIG                        = 0xcc\n\tIFT_SIPTG                         = 0xcb\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TELINK                        = 0xc8\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VIRTUALTG                     = 0xca\n\tIFT_VOICEDID                      = 0xd5\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEEMFGD                    = 0xd3\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFGDEANA                  = 0xd4\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERCABLE                = 0xc6\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_WIREGUARD                     = 0xfb\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIN_RFC3021_HOST                   = 0x1\n\tIN_RFC3021_NET                    = 0xfffffffe\n\tIN_RFC3021_NSHIFT                 = 0x1f\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_DIVERT                    = 0x102\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x103\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_MPLS                      = 0x89\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_SCTP                      = 0x84\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_UDPLITE                   = 0x88\n\tIPV6_AUTH_LEVEL                   = 0x35\n\tIPV6_AUTOFLOWLABEL                = 0x3b\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_ESP_NETWORK_LEVEL            = 0x37\n\tIPV6_ESP_TRANS_LEVEL              = 0x36\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xfffffff\n\tIPV6_FLOWLABEL_MASK               = 0xfffff\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_IPCOMP_LEVEL                 = 0x3c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MINHOPCOUNT                  = 0x41\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_OPTIONS                      = 0x1\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PIPEX                        = 0x3f\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVDSTPORT                  = 0x40\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTABLE                       = 0x1021\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_AUTH_LEVEL                     = 0x14\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_ESP_NETWORK_LEVEL              = 0x16\n\tIP_ESP_TRANS_LEVEL                = 0x15\n\tIP_HDRINCL                        = 0x2\n\tIP_IPCOMP_LEVEL                   = 0x1d\n\tIP_IPDEFTTL                       = 0x25\n\tIP_IPSECFLOWINFO                  = 0x24\n\tIP_IPSEC_LOCAL_AUTH               = 0x1b\n\tIP_IPSEC_LOCAL_CRED               = 0x19\n\tIP_IPSEC_LOCAL_ID                 = 0x17\n\tIP_IPSEC_REMOTE_AUTH              = 0x1c\n\tIP_IPSEC_REMOTE_CRED              = 0x1a\n\tIP_IPSEC_REMOTE_ID                = 0x18\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0xfff\n\tIP_MF                             = 0x2000\n\tIP_MINTTL                         = 0x20\n\tIP_MIN_MEMBERSHIPS                = 0xf\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PIPEX                          = 0x22\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVDSTPORT                    = 0x21\n\tIP_RECVIF                         = 0x1e\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVRTABLE                     = 0x23\n\tIP_RECVTTL                        = 0x1f\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_RTABLE                         = 0x1021\n\tIP_SENDSRCADDR                    = 0x7\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tITIMER_PROF                       = 0x2\n\tITIMER_REAL                       = 0x0\n\tITIMER_VIRTUAL                    = 0x1\n\tIUCLC                             = 0x1000\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLCNT_OVERLOAD_FLUSH               = 0x6\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x6\n\tMADV_NORMAL                       = 0x0\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SPACEAVAIL                   = 0x5\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ANON                          = 0x1000\n\tMAP_ANONYMOUS                     = 0x1000\n\tMAP_CONCEAL                       = 0x8000\n\tMAP_COPY                          = 0x2\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_FLAGMASK                      = 0xfff7\n\tMAP_HASSEMAPHORE                  = 0x0\n\tMAP_INHERIT                       = 0x0\n\tMAP_INHERIT_COPY                  = 0x1\n\tMAP_INHERIT_NONE                  = 0x2\n\tMAP_INHERIT_SHARE                 = 0x0\n\tMAP_INHERIT_ZERO                  = 0x3\n\tMAP_NOEXTEND                      = 0x0\n\tMAP_NORESERVE                     = 0x0\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x0\n\tMAP_SHARED                        = 0x1\n\tMAP_STACK                         = 0x4000\n\tMAP_TRYFIXED                      = 0x0\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DELEXPORT                     = 0x20000\n\tMNT_DOOMED                        = 0x8000000\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_FORCE                         = 0x80000\n\tMNT_LAZY                          = 0x3\n\tMNT_LOCAL                         = 0x1000\n\tMNT_NOATIME                       = 0x8000\n\tMNT_NODEV                         = 0x10\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOPERM                        = 0x20\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOWAIT                        = 0x2\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x4000000\n\tMNT_STALLED                       = 0x100000\n\tMNT_SWAPPABLE                     = 0x200000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0x400ffff\n\tMNT_WAIT                          = 0x1\n\tMNT_WANTRDWR                      = 0x2000000\n\tMNT_WXALLOWED                     = 0x800\n\tMOUNT_AFS                         = \"afs\"\n\tMOUNT_CD9660                      = \"cd9660\"\n\tMOUNT_EXT2FS                      = \"ext2fs\"\n\tMOUNT_FFS                         = \"ffs\"\n\tMOUNT_FUSEFS                      = \"fuse\"\n\tMOUNT_MFS                         = \"mfs\"\n\tMOUNT_MSDOS                       = \"msdos\"\n\tMOUNT_NCPFS                       = \"ncpfs\"\n\tMOUNT_NFS                         = \"nfs\"\n\tMOUNT_NTFS                        = \"ntfs\"\n\tMOUNT_TMPFS                       = \"tmpfs\"\n\tMOUNT_UDF                         = \"udf\"\n\tMOUNT_UFS                         = \"ffs\"\n\tMSG_BCAST                         = 0x100\n\tMSG_CMSG_CLOEXEC                  = 0x800\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOR                           = 0x8\n\tMSG_MCAST                         = 0x200\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_TRUNC                         = 0x10\n\tMSG_WAITALL                       = 0x40\n\tMSG_WAITFORONE                    = 0x1000\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x4\n\tMS_SYNC                           = 0x2\n\tNAME_MAX                          = 0xff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x3\n\tNET_RT_IFNAMES                    = 0x6\n\tNET_RT_MAXID                      = 0x8\n\tNET_RT_SOURCE                     = 0x7\n\tNET_RT_STATS                      = 0x4\n\tNET_RT_TABLE                      = 0x5\n\tNFDBITS                           = 0x20\n\tNOFLSH                            = 0x80000000\n\tNOKERNINFO                        = 0x2000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHANGE                       = 0x1\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EOF                          = 0x2\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_OOB                          = 0x4\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_TRUNCATE                     = 0x80\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tOLCUC                             = 0x20\n\tONLCR                             = 0x2\n\tONLRET                            = 0x80\n\tONOCR                             = 0x40\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tOXTABS                            = 0x4\n\tO_ACCMODE                         = 0x3\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x10000\n\tO_CREAT                           = 0x200\n\tO_DIRECTORY                       = 0x20000\n\tO_DSYNC                           = 0x80\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_RSYNC                           = 0x80\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPF_FLUSH                          = 0x1\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BFD                          = 0xb\n\tRTAX_BRD                          = 0x7\n\tRTAX_DNS                          = 0xc\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_LABEL                        = 0xa\n\tRTAX_MAX                          = 0xf\n\tRTAX_NETMASK                      = 0x2\n\tRTAX_SEARCH                       = 0xe\n\tRTAX_SRC                          = 0x8\n\tRTAX_SRCMASK                      = 0x9\n\tRTAX_STATIC                       = 0xd\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BFD                           = 0x800\n\tRTA_BRD                           = 0x80\n\tRTA_DNS                           = 0x1000\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_LABEL                         = 0x400\n\tRTA_NETMASK                       = 0x4\n\tRTA_SEARCH                        = 0x4000\n\tRTA_SRC                           = 0x100\n\tRTA_SRCMASK                       = 0x200\n\tRTA_STATIC                        = 0x2000\n\tRTF_ANNOUNCE                      = 0x4000\n\tRTF_BFD                           = 0x1000000\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_BROADCAST                     = 0x400000\n\tRTF_CACHED                        = 0x20000\n\tRTF_CLONED                        = 0x10000\n\tRTF_CLONING                       = 0x100\n\tRTF_CONNECTED                     = 0x800000\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_FMASK                         = 0x110fc08\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_LOCAL                         = 0x200000\n\tRTF_MODIFIED                      = 0x20\n\tRTF_MPATH                         = 0x40000\n\tRTF_MPLS                          = 0x100000\n\tRTF_MULTICAST                     = 0x200\n\tRTF_PERMANENT_ARP                 = 0x2000\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_PROTO3                        = 0x2000\n\tRTF_REJECT                        = 0x8\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_USETRAILERS                   = 0x8000\n\tRTM_80211INFO                     = 0x15\n\tRTM_ADD                           = 0x1\n\tRTM_BFD                           = 0x12\n\tRTM_CHANGE                        = 0x3\n\tRTM_CHGADDRATTR                   = 0x14\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_DESYNC                        = 0x10\n\tRTM_GET                           = 0x4\n\tRTM_IFANNOUNCE                    = 0xf\n\tRTM_IFINFO                        = 0xe\n\tRTM_INVALIDATE                    = 0x11\n\tRTM_LOSING                        = 0x5\n\tRTM_MAXSIZE                       = 0x800\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_PROPOSAL                      = 0x13\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_SOURCE                        = 0x16\n\tRTM_VERSION                       = 0x5\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRT_TABLEID_BITS                   = 0x8\n\tRT_TABLEID_MASK                   = 0xff\n\tRT_TABLEID_MAX                    = 0xff\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tRUSAGE_THREAD                     = 0x1\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x4\n\tSEEK_CUR                          = 0x1\n\tSEEK_END                          = 0x2\n\tSEEK_SET                          = 0x0\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80206931\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCAIFGROUP                      = 0x80286987\n\tSIOCATMARK                        = 0x40047307\n\tSIOCBRDGADD                       = 0x8060693c\n\tSIOCBRDGADDL                      = 0x80606949\n\tSIOCBRDGADDS                      = 0x80606941\n\tSIOCBRDGARL                       = 0x808c694d\n\tSIOCBRDGDADDR                     = 0x81286947\n\tSIOCBRDGDEL                       = 0x8060693d\n\tSIOCBRDGDELS                      = 0x80606942\n\tSIOCBRDGFLUSH                     = 0x80606948\n\tSIOCBRDGFRL                       = 0x808c694e\n\tSIOCBRDGGCACHE                    = 0xc0146941\n\tSIOCBRDGGFD                       = 0xc0146952\n\tSIOCBRDGGHT                       = 0xc0146951\n\tSIOCBRDGGIFFLGS                   = 0xc060693e\n\tSIOCBRDGGMA                       = 0xc0146953\n\tSIOCBRDGGPARAM                    = 0xc0406958\n\tSIOCBRDGGPRI                      = 0xc0146950\n\tSIOCBRDGGRL                       = 0xc030694f\n\tSIOCBRDGGTO                       = 0xc0146946\n\tSIOCBRDGIFS                       = 0xc0606942\n\tSIOCBRDGRTS                       = 0xc0206943\n\tSIOCBRDGSADDR                     = 0xc1286944\n\tSIOCBRDGSCACHE                    = 0x80146940\n\tSIOCBRDGSFD                       = 0x80146952\n\tSIOCBRDGSHT                       = 0x80146951\n\tSIOCBRDGSIFCOST                   = 0x80606955\n\tSIOCBRDGSIFFLGS                   = 0x8060693f\n\tSIOCBRDGSIFPRIO                   = 0x80606954\n\tSIOCBRDGSIFPROT                   = 0x8060694a\n\tSIOCBRDGSMA                       = 0x80146953\n\tSIOCBRDGSPRI                      = 0x80146950\n\tSIOCBRDGSPROTO                    = 0x8014695a\n\tSIOCBRDGSTO                       = 0x80146945\n\tSIOCBRDGSTXHC                     = 0x80146959\n\tSIOCDELLABEL                      = 0x80206997\n\tSIOCDELMULTI                      = 0x80206932\n\tSIOCDIFADDR                       = 0x80206919\n\tSIOCDIFGROUP                      = 0x80286989\n\tSIOCDIFPARENT                     = 0x802069b4\n\tSIOCDIFPHYADDR                    = 0x80206949\n\tSIOCDPWE3NEIGHBOR                 = 0x802069de\n\tSIOCDVNETID                       = 0x802069af\n\tSIOCGETKALIVE                     = 0xc01869a4\n\tSIOCGETLABEL                      = 0x8020699a\n\tSIOCGETMPWCFG                     = 0xc02069ae\n\tSIOCGETPFLOW                      = 0xc02069fe\n\tSIOCGETPFSYNC                     = 0xc02069f8\n\tSIOCGETSGCNT                      = 0xc0207534\n\tSIOCGETVIFCNT                     = 0xc0287533\n\tSIOCGETVLAN                       = 0xc0206990\n\tSIOCGIFADDR                       = 0xc0206921\n\tSIOCGIFBRDADDR                    = 0xc0206923\n\tSIOCGIFCONF                       = 0xc0106924\n\tSIOCGIFDATA                       = 0xc020691b\n\tSIOCGIFDESCR                      = 0xc0206981\n\tSIOCGIFDSTADDR                    = 0xc0206922\n\tSIOCGIFFLAGS                      = 0xc0206911\n\tSIOCGIFGATTR                      = 0xc028698b\n\tSIOCGIFGENERIC                    = 0xc020693a\n\tSIOCGIFGLIST                      = 0xc028698d\n\tSIOCGIFGMEMB                      = 0xc028698a\n\tSIOCGIFGROUP                      = 0xc0286988\n\tSIOCGIFHARDMTU                    = 0xc02069a5\n\tSIOCGIFLLPRIO                     = 0xc02069b6\n\tSIOCGIFMEDIA                      = 0xc0406938\n\tSIOCGIFMETRIC                     = 0xc0206917\n\tSIOCGIFMTU                        = 0xc020697e\n\tSIOCGIFNETMASK                    = 0xc0206925\n\tSIOCGIFPAIR                       = 0xc02069b1\n\tSIOCGIFPARENT                     = 0xc02069b3\n\tSIOCGIFPRIORITY                   = 0xc020699c\n\tSIOCGIFRDOMAIN                    = 0xc02069a0\n\tSIOCGIFRTLABEL                    = 0xc0206983\n\tSIOCGIFRXR                        = 0x802069aa\n\tSIOCGIFSFFPAGE                    = 0xc1126939\n\tSIOCGIFXFLAGS                     = 0xc020699e\n\tSIOCGLIFPHYADDR                   = 0xc218694b\n\tSIOCGLIFPHYDF                     = 0xc02069c2\n\tSIOCGLIFPHYECN                    = 0xc02069c8\n\tSIOCGLIFPHYRTABLE                 = 0xc02069a2\n\tSIOCGLIFPHYTTL                    = 0xc02069a9\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGPWE3                         = 0xc0206998\n\tSIOCGPWE3CTRLWORD                 = 0xc02069dc\n\tSIOCGPWE3FAT                      = 0xc02069dd\n\tSIOCGPWE3NEIGHBOR                 = 0xc21869de\n\tSIOCGRXHPRIO                      = 0xc02069db\n\tSIOCGSPPPPARAMS                   = 0xc0206994\n\tSIOCGTXHPRIO                      = 0xc02069c6\n\tSIOCGUMBINFO                      = 0xc02069be\n\tSIOCGUMBPARAM                     = 0xc02069c0\n\tSIOCGVH                           = 0xc02069f6\n\tSIOCGVNETFLOWID                   = 0xc02069c4\n\tSIOCGVNETID                       = 0xc02069a7\n\tSIOCIFAFATTACH                    = 0x801169ab\n\tSIOCIFAFDETACH                    = 0x801169ac\n\tSIOCIFCREATE                      = 0x8020697a\n\tSIOCIFDESTROY                     = 0x80206979\n\tSIOCIFGCLONERS                    = 0xc0106978\n\tSIOCSETKALIVE                     = 0x801869a3\n\tSIOCSETLABEL                      = 0x80206999\n\tSIOCSETMPWCFG                     = 0x802069ad\n\tSIOCSETPFLOW                      = 0x802069fd\n\tSIOCSETPFSYNC                     = 0x802069f7\n\tSIOCSETVLAN                       = 0x8020698f\n\tSIOCSIFADDR                       = 0x8020690c\n\tSIOCSIFBRDADDR                    = 0x80206913\n\tSIOCSIFDESCR                      = 0x80206980\n\tSIOCSIFDSTADDR                    = 0x8020690e\n\tSIOCSIFFLAGS                      = 0x80206910\n\tSIOCSIFGATTR                      = 0x8028698c\n\tSIOCSIFGENERIC                    = 0x80206939\n\tSIOCSIFLLADDR                     = 0x8020691f\n\tSIOCSIFLLPRIO                     = 0x802069b5\n\tSIOCSIFMEDIA                      = 0xc0206937\n\tSIOCSIFMETRIC                     = 0x80206918\n\tSIOCSIFMTU                        = 0x8020697f\n\tSIOCSIFNETMASK                    = 0x80206916\n\tSIOCSIFPAIR                       = 0x802069b0\n\tSIOCSIFPARENT                     = 0x802069b2\n\tSIOCSIFPRIORITY                   = 0x8020699b\n\tSIOCSIFRDOMAIN                    = 0x8020699f\n\tSIOCSIFRTLABEL                    = 0x80206982\n\tSIOCSIFXFLAGS                     = 0x8020699d\n\tSIOCSLIFPHYADDR                   = 0x8218694a\n\tSIOCSLIFPHYDF                     = 0x802069c1\n\tSIOCSLIFPHYECN                    = 0x802069c7\n\tSIOCSLIFPHYRTABLE                 = 0x802069a1\n\tSIOCSLIFPHYTTL                    = 0x802069a8\n\tSIOCSPGRP                         = 0x80047308\n\tSIOCSPWE3CTRLWORD                 = 0x802069dc\n\tSIOCSPWE3FAT                      = 0x802069dd\n\tSIOCSPWE3NEIGHBOR                 = 0x821869de\n\tSIOCSRXHPRIO                      = 0x802069db\n\tSIOCSSPPPPARAMS                   = 0x80206993\n\tSIOCSTXHPRIO                      = 0x802069c5\n\tSIOCSUMBPARAM                     = 0x802069bf\n\tSIOCSVH                           = 0xc02069f5\n\tSIOCSVNETFLOWID                   = 0x802069c3\n\tSIOCSVNETID                       = 0x802069a6\n\tSOCK_CLOEXEC                      = 0x8000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_DNS                          = 0x1000\n\tSOCK_NONBLOCK                     = 0x4000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_BINDANY                        = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DOMAIN                         = 0x1024\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NETPROC                        = 0x1020\n\tSO_OOBINLINE                      = 0x100\n\tSO_PEERCRED                       = 0x1022\n\tSO_PROTOCOL                       = 0x1025\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x1006\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_RTABLE                         = 0x1021\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x1005\n\tSO_SPLICE                         = 0x1023\n\tSO_TIMESTAMP                      = 0x800\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tSO_ZEROIZE                        = 0x2000\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tTCIFLUSH                          = 0x1\n\tTCIOFF                            = 0x3\n\tTCIOFLUSH                         = 0x3\n\tTCION                             = 0x4\n\tTCOFLUSH                          = 0x2\n\tTCOOFF                            = 0x1\n\tTCOON                             = 0x2\n\tTCPOPT_EOL                        = 0x0\n\tTCPOPT_MAXSEG                     = 0x2\n\tTCPOPT_NOP                        = 0x1\n\tTCPOPT_SACK                       = 0x5\n\tTCPOPT_SACK_HDR                   = 0x1010500\n\tTCPOPT_SACK_PERMITTED             = 0x4\n\tTCPOPT_SACK_PERMIT_HDR            = 0x1010402\n\tTCPOPT_SIGNATURE                  = 0x13\n\tTCPOPT_TIMESTAMP                  = 0x8\n\tTCPOPT_TSTAMP_HDR                 = 0x101080a\n\tTCPOPT_WINDOW                     = 0x3\n\tTCP_INFO                          = 0x9\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_SACK                      = 0x3\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MD5SIG                        = 0x4\n\tTCP_MSS                           = 0x200\n\tTCP_NODELAY                       = 0x1\n\tTCP_NOPUSH                        = 0x10\n\tTCP_SACKHOLE_LIMIT                = 0x80\n\tTCP_SACK_ENABLE                   = 0x8\n\tTCSAFLUSH                         = 0x2\n\tTIMER_ABSTIME                     = 0x1\n\tTIMER_RELTIME                     = 0x0\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCHKVERAUTH                    = 0x2000741e\n\tTIOCCLRVERAUTH                    = 0x2000741d\n\tTIOCCONS                          = 0x80047462\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLAG_CLOCAL                   = 0x2\n\tTIOCFLAG_CRTSCTS                  = 0x4\n\tTIOCFLAG_MDMBUF                   = 0x8\n\tTIOCFLAG_PPS                      = 0x10\n\tTIOCFLAG_SOFTCAR                  = 0x1\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGFLAGS                        = 0x4004745d\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGSID                          = 0x40047463\n\tTIOCGTSTAMP                       = 0x4010745b\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMODG                          = 0x4004746a\n\tTIOCMODS                          = 0x8004746d\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSETVERAUTH                    = 0x8004741c\n\tTIOCSFLAGS                        = 0x8004745c\n\tTIOCSIG                           = 0x8004745f\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x20007465\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSTSTAMP                       = 0x8008745a\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCUCNTL                         = 0x80047466\n\tTIOCUCNTL_CBRK                    = 0x7a\n\tTIOCUCNTL_SBRK                    = 0x7b\n\tTOSTOP                            = 0x400000\n\tUTIME_NOW                         = -0x2\n\tUTIME_OMIT                        = -0x1\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVM_ANONMIN                        = 0x7\n\tVM_LOADAVG                        = 0x2\n\tVM_MALLOC_CONF                    = 0xc\n\tVM_MAXID                          = 0xd\n\tVM_MAXSLP                         = 0xa\n\tVM_METER                          = 0x1\n\tVM_NKMEMPAGES                     = 0x6\n\tVM_PSSTRINGS                      = 0x3\n\tVM_SWAPENCRYPT                    = 0x5\n\tVM_USPACE                         = 0xb\n\tVM_UVMEXP                         = 0x4\n\tVM_VNODEMIN                       = 0x9\n\tVM_VTEXTMIN                       = 0x8\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWALTSIG                           = 0x4\n\tWCONTINUED                        = 0x8\n\tWCOREFLAG                         = 0x80\n\tWNOHANG                           = 0x1\n\tWUNTRACED                         = 0x2\n\tXCASE                             = 0x1000000\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x5c)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x58)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x59)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEIPSEC          = syscall.Errno(0x52)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x5f)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMEDIUMTYPE     = syscall.Errno(0x56)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x53)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOMEDIUM       = syscall.Errno(0x55)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x5a)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x5d)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x5b)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x57)\n\tEOWNERDEAD      = syscall.Errno(0x5e)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5f)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disk quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC program not available\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIPSEC\", \"IPsec processing failure\"},\n\t{83, \"ENOATTR\", \"attribute not found\"},\n\t{84, \"EILSEQ\", \"illegal byte sequence\"},\n\t{85, \"ENOMEDIUM\", \"no medium found\"},\n\t{86, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{87, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{88, \"ECANCELED\", \"operation canceled\"},\n\t{89, \"EIDRM\", \"identifier removed\"},\n\t{90, \"ENOMSG\", \"no message of desired type\"},\n\t{91, \"ENOTSUP\", \"not supported\"},\n\t{92, \"EBADMSG\", \"bad message\"},\n\t{93, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{94, \"EOWNERDEAD\", \"previous owner died\"},\n\t{95, \"ELAST\", \"protocol error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGIOT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"thread AST\"},\n\t{81920, \"SIGSTKSZ\", \"unknown signal\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc64 && openbsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_BLUETOOTH                      = 0x20\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_ENCAP                          = 0x1c\n\tAF_HYLINK                         = 0xf\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x18\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_KEY                            = 0x1e\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x24\n\tAF_MPLS                           = 0x21\n\tAF_NATM                           = 0x1b\n\tAF_NS                             = 0x6\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x11\n\tAF_SIP                            = 0x1d\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tALTWERASE                         = 0x200\n\tARPHRD_ETHER                      = 0x1\n\tARPHRD_FRELAY                     = 0xf\n\tARPHRD_IEEE1394                   = 0x18\n\tARPHRD_IEEE802                    = 0x6\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB9600                             = 0x2580\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDIRFILT                      = 0x4004427c\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc010427b\n\tBIOCGETIF                         = 0x4020426b\n\tBIOCGFILDROP                      = 0x40044278\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRSIG                         = 0x40044273\n\tBIOCGRTIMEOUT                     = 0x4010426e\n\tBIOCGSTATS                        = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCLOCK                          = 0x20004276\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDIRFILT                      = 0x8004427d\n\tBIOCSDLT                          = 0x8004427a\n\tBIOCSETF                          = 0x80104267\n\tBIOCSETIF                         = 0x8020426c\n\tBIOCSETWF                         = 0x80104277\n\tBIOCSFILDROP                      = 0x80044279\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRSIG                         = 0x80044272\n\tBIOCSRTIMEOUT                     = 0x8010426d\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DIRECTION_IN                  = 0x1\n\tBPF_DIRECTION_OUT                 = 0x2\n\tBPF_DIV                           = 0x30\n\tBPF_FILDROP_CAPTURE               = 0x1\n\tBPF_FILDROP_DROP                  = 0x2\n\tBPF_FILDROP_PASS                  = 0x0\n\tBPF_F_DIR_IN                      = 0x10\n\tBPF_F_DIR_MASK                    = 0x30\n\tBPF_F_DIR_OUT                     = 0x20\n\tBPF_F_DIR_SHIFT                   = 0x4\n\tBPF_F_FLOWID                      = 0x8\n\tBPF_F_PRI_MASK                    = 0x7\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x200000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RND                           = 0xc0\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCLOCK_BOOTTIME                    = 0x6\n\tCLOCK_MONOTONIC                   = 0x3\n\tCLOCK_PROCESS_CPUTIME_ID          = 0x2\n\tCLOCK_REALTIME                    = 0x0\n\tCLOCK_THREAD_CPUTIME_ID           = 0x4\n\tCLOCK_UPTIME                      = 0x5\n\tCPUSTATES                         = 0x6\n\tCP_IDLE                           = 0x5\n\tCP_INTR                           = 0x4\n\tCP_NICE                           = 0x1\n\tCP_SPIN                           = 0x3\n\tCP_SYS                            = 0x2\n\tCP_USER                           = 0x0\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x10000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0xff\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tDIOCADDQUEUE                      = 0xc110445d\n\tDIOCADDRULE                       = 0xcd604404\n\tDIOCADDSTATE                      = 0xc1084425\n\tDIOCCHANGERULE                    = 0xcd60441a\n\tDIOCCLRIFFLAG                     = 0xc028445a\n\tDIOCCLRSRCNODES                   = 0x20004455\n\tDIOCCLRSTATES                     = 0xc0e04412\n\tDIOCCLRSTATUS                     = 0xc0284416\n\tDIOCGETLIMIT                      = 0xc0084427\n\tDIOCGETQSTATS                     = 0xc1204460\n\tDIOCGETQUEUE                      = 0xc110445f\n\tDIOCGETQUEUES                     = 0xc110445e\n\tDIOCGETRULE                       = 0xcd604407\n\tDIOCGETRULES                      = 0xcd604406\n\tDIOCGETRULESET                    = 0xc444443b\n\tDIOCGETRULESETS                   = 0xc444443a\n\tDIOCGETSRCNODES                   = 0xc0104454\n\tDIOCGETSTATE                      = 0xc1084413\n\tDIOCGETSTATES                     = 0xc0104419\n\tDIOCGETSTATUS                     = 0xc1e84415\n\tDIOCGETSYNFLWATS                  = 0xc0084463\n\tDIOCGETTIMEOUT                    = 0xc008441e\n\tDIOCIGETIFACES                    = 0xc0284457\n\tDIOCKILLSRCNODES                  = 0xc080445b\n\tDIOCKILLSTATES                    = 0xc0e04429\n\tDIOCNATLOOK                       = 0xc0504417\n\tDIOCOSFPADD                       = 0xc088444f\n\tDIOCOSFPFLUSH                     = 0x2000444e\n\tDIOCOSFPGET                       = 0xc0884450\n\tDIOCRADDADDRS                     = 0xc4504443\n\tDIOCRADDTABLES                    = 0xc450443d\n\tDIOCRCLRADDRS                     = 0xc4504442\n\tDIOCRCLRASTATS                    = 0xc4504448\n\tDIOCRCLRTABLES                    = 0xc450443c\n\tDIOCRCLRTSTATS                    = 0xc4504441\n\tDIOCRDELADDRS                     = 0xc4504444\n\tDIOCRDELTABLES                    = 0xc450443e\n\tDIOCRGETADDRS                     = 0xc4504446\n\tDIOCRGETASTATS                    = 0xc4504447\n\tDIOCRGETTABLES                    = 0xc450443f\n\tDIOCRGETTSTATS                    = 0xc4504440\n\tDIOCRINADEFINE                    = 0xc450444d\n\tDIOCRSETADDRS                     = 0xc4504445\n\tDIOCRSETTFLAGS                    = 0xc450444a\n\tDIOCRTSTADDRS                     = 0xc4504449\n\tDIOCSETDEBUG                      = 0xc0044418\n\tDIOCSETHOSTID                     = 0xc0044456\n\tDIOCSETIFFLAG                     = 0xc0284459\n\tDIOCSETLIMIT                      = 0xc0084428\n\tDIOCSETREASS                      = 0xc004445c\n\tDIOCSETSTATUSIF                   = 0xc0284414\n\tDIOCSETSYNCOOKIES                 = 0xc0014462\n\tDIOCSETSYNFLWATS                  = 0xc0084461\n\tDIOCSETTIMEOUT                    = 0xc008441d\n\tDIOCSTART                         = 0x20004401\n\tDIOCSTOP                          = 0x20004402\n\tDIOCXBEGIN                        = 0xc0104451\n\tDIOCXCOMMIT                       = 0xc0104452\n\tDIOCXROLLBACK                     = 0xc0104453\n\tDLT_ARCNET                        = 0x7\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AX25                          = 0x3\n\tDLT_CHAOS                         = 0x5\n\tDLT_C_HDLC                        = 0x68\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0xd\n\tDLT_FDDI                          = 0xa\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_LOOP                          = 0xc\n\tDLT_MPLS                          = 0xdb\n\tDLT_NULL                          = 0x0\n\tDLT_OPENFLOW                      = 0x10b\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0x10\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PRONET                        = 0x4\n\tDLT_RAW                           = 0xe\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xf\n\tDLT_USBPCAP                       = 0xf9\n\tDLT_USER0                         = 0x93\n\tDLT_USER1                         = 0x94\n\tDLT_USER10                        = 0x9d\n\tDLT_USER11                        = 0x9e\n\tDLT_USER12                        = 0x9f\n\tDLT_USER13                        = 0xa0\n\tDLT_USER14                        = 0xa1\n\tDLT_USER15                        = 0xa2\n\tDLT_USER2                         = 0x95\n\tDLT_USER3                         = 0x96\n\tDLT_USER4                         = 0x97\n\tDLT_USER5                         = 0x98\n\tDLT_USER6                         = 0x99\n\tDLT_USER7                         = 0x9a\n\tDLT_USER8                         = 0x9b\n\tDLT_USER9                         = 0x9c\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEMT_TAGOVF                        = 0x1\n\tEMUL_ENABLED                      = 0x1\n\tEMUL_NATIVE                       = 0x2\n\tENDRUNDISC                        = 0x9\n\tETH64_8021_RSVD_MASK              = 0xfffffffffff0\n\tETH64_8021_RSVD_PREFIX            = 0x180c2000000\n\tETHERMIN                          = 0x2e\n\tETHERMTU                          = 0x5dc\n\tETHERTYPE_8023                    = 0x4\n\tETHERTYPE_AARP                    = 0x80f3\n\tETHERTYPE_ACCTON                  = 0x8390\n\tETHERTYPE_AEONIC                  = 0x8036\n\tETHERTYPE_ALPHA                   = 0x814a\n\tETHERTYPE_AMBER                   = 0x6008\n\tETHERTYPE_AMOEBA                  = 0x8145\n\tETHERTYPE_AOE                     = 0x88a2\n\tETHERTYPE_APOLLO                  = 0x80f7\n\tETHERTYPE_APOLLODOMAIN            = 0x8019\n\tETHERTYPE_APPLETALK               = 0x809b\n\tETHERTYPE_APPLITEK                = 0x80c7\n\tETHERTYPE_ARGONAUT                = 0x803a\n\tETHERTYPE_ARP                     = 0x806\n\tETHERTYPE_AT                      = 0x809b\n\tETHERTYPE_ATALK                   = 0x809b\n\tETHERTYPE_ATOMIC                  = 0x86df\n\tETHERTYPE_ATT                     = 0x8069\n\tETHERTYPE_ATTSTANFORD             = 0x8008\n\tETHERTYPE_AUTOPHON                = 0x806a\n\tETHERTYPE_AXIS                    = 0x8856\n\tETHERTYPE_BCLOOP                  = 0x9003\n\tETHERTYPE_BOFL                    = 0x8102\n\tETHERTYPE_CABLETRON               = 0x7034\n\tETHERTYPE_CHAOS                   = 0x804\n\tETHERTYPE_COMDESIGN               = 0x806c\n\tETHERTYPE_COMPUGRAPHIC            = 0x806d\n\tETHERTYPE_COUNTERPOINT            = 0x8062\n\tETHERTYPE_CRONUS                  = 0x8004\n\tETHERTYPE_CRONUSVLN               = 0x8003\n\tETHERTYPE_DCA                     = 0x1234\n\tETHERTYPE_DDE                     = 0x807b\n\tETHERTYPE_DEBNI                   = 0xaaaa\n\tETHERTYPE_DECAM                   = 0x8048\n\tETHERTYPE_DECCUST                 = 0x6006\n\tETHERTYPE_DECDIAG                 = 0x6005\n\tETHERTYPE_DECDNS                  = 0x803c\n\tETHERTYPE_DECDTS                  = 0x803e\n\tETHERTYPE_DECEXPER                = 0x6000\n\tETHERTYPE_DECLAST                 = 0x8041\n\tETHERTYPE_DECLTM                  = 0x803f\n\tETHERTYPE_DECMUMPS                = 0x6009\n\tETHERTYPE_DECNETBIOS              = 0x8040\n\tETHERTYPE_DELTACON                = 0x86de\n\tETHERTYPE_DIDDLE                  = 0x4321\n\tETHERTYPE_DLOG1                   = 0x660\n\tETHERTYPE_DLOG2                   = 0x661\n\tETHERTYPE_DN                      = 0x6003\n\tETHERTYPE_DOGFIGHT                = 0x1989\n\tETHERTYPE_DSMD                    = 0x8039\n\tETHERTYPE_EAPOL                   = 0x888e\n\tETHERTYPE_ECMA                    = 0x803\n\tETHERTYPE_ENCRYPT                 = 0x803d\n\tETHERTYPE_ES                      = 0x805d\n\tETHERTYPE_EXCELAN                 = 0x8010\n\tETHERTYPE_EXPERDATA               = 0x8049\n\tETHERTYPE_FLIP                    = 0x8146\n\tETHERTYPE_FLOWCONTROL             = 0x8808\n\tETHERTYPE_FRARP                   = 0x808\n\tETHERTYPE_GENDYN                  = 0x8068\n\tETHERTYPE_HAYES                   = 0x8130\n\tETHERTYPE_HIPPI_FP                = 0x8180\n\tETHERTYPE_HITACHI                 = 0x8820\n\tETHERTYPE_HP                      = 0x8005\n\tETHERTYPE_IEEEPUP                 = 0xa00\n\tETHERTYPE_IEEEPUPAT               = 0xa01\n\tETHERTYPE_IMLBL                   = 0x4c42\n\tETHERTYPE_IMLBLDIAG               = 0x424c\n\tETHERTYPE_IP                      = 0x800\n\tETHERTYPE_IPAS                    = 0x876c\n\tETHERTYPE_IPV6                    = 0x86dd\n\tETHERTYPE_IPX                     = 0x8137\n\tETHERTYPE_IPXNEW                  = 0x8037\n\tETHERTYPE_KALPANA                 = 0x8582\n\tETHERTYPE_LANBRIDGE               = 0x8038\n\tETHERTYPE_LANPROBE                = 0x8888\n\tETHERTYPE_LAT                     = 0x6004\n\tETHERTYPE_LBACK                   = 0x9000\n\tETHERTYPE_LITTLE                  = 0x8060\n\tETHERTYPE_LLDP                    = 0x88cc\n\tETHERTYPE_LOGICRAFT               = 0x8148\n\tETHERTYPE_LOOPBACK                = 0x9000\n\tETHERTYPE_MACSEC                  = 0x88e5\n\tETHERTYPE_MATRA                   = 0x807a\n\tETHERTYPE_MAX                     = 0xffff\n\tETHERTYPE_MERIT                   = 0x807c\n\tETHERTYPE_MICP                    = 0x873a\n\tETHERTYPE_MOPDL                   = 0x6001\n\tETHERTYPE_MOPRC                   = 0x6002\n\tETHERTYPE_MOTOROLA                = 0x818d\n\tETHERTYPE_MPLS                    = 0x8847\n\tETHERTYPE_MPLS_MCAST              = 0x8848\n\tETHERTYPE_MUMPS                   = 0x813f\n\tETHERTYPE_NBPCC                   = 0x3c04\n\tETHERTYPE_NBPCLAIM                = 0x3c09\n\tETHERTYPE_NBPCLREQ                = 0x3c05\n\tETHERTYPE_NBPCLRSP                = 0x3c06\n\tETHERTYPE_NBPCREQ                 = 0x3c02\n\tETHERTYPE_NBPCRSP                 = 0x3c03\n\tETHERTYPE_NBPDG                   = 0x3c07\n\tETHERTYPE_NBPDGB                  = 0x3c08\n\tETHERTYPE_NBPDLTE                 = 0x3c0a\n\tETHERTYPE_NBPRAR                  = 0x3c0c\n\tETHERTYPE_NBPRAS                  = 0x3c0b\n\tETHERTYPE_NBPRST                  = 0x3c0d\n\tETHERTYPE_NBPSCD                  = 0x3c01\n\tETHERTYPE_NBPVCD                  = 0x3c00\n\tETHERTYPE_NBS                     = 0x802\n\tETHERTYPE_NCD                     = 0x8149\n\tETHERTYPE_NESTAR                  = 0x8006\n\tETHERTYPE_NETBEUI                 = 0x8191\n\tETHERTYPE_NHRP                    = 0x2001\n\tETHERTYPE_NOVELL                  = 0x8138\n\tETHERTYPE_NS                      = 0x600\n\tETHERTYPE_NSAT                    = 0x601\n\tETHERTYPE_NSCOMPAT                = 0x807\n\tETHERTYPE_NSH                     = 0x984f\n\tETHERTYPE_NTRAILER                = 0x10\n\tETHERTYPE_OS9                     = 0x7007\n\tETHERTYPE_OS9NET                  = 0x7009\n\tETHERTYPE_PACER                   = 0x80c6\n\tETHERTYPE_PBB                     = 0x88e7\n\tETHERTYPE_PCS                     = 0x4242\n\tETHERTYPE_PLANNING                = 0x8044\n\tETHERTYPE_PPP                     = 0x880b\n\tETHERTYPE_PPPOE                   = 0x8864\n\tETHERTYPE_PPPOEDISC               = 0x8863\n\tETHERTYPE_PRIMENTS                = 0x7031\n\tETHERTYPE_PUP                     = 0x200\n\tETHERTYPE_PUPAT                   = 0x200\n\tETHERTYPE_QINQ                    = 0x88a8\n\tETHERTYPE_RACAL                   = 0x7030\n\tETHERTYPE_RATIONAL                = 0x8150\n\tETHERTYPE_RAWFR                   = 0x6559\n\tETHERTYPE_RCL                     = 0x1995\n\tETHERTYPE_RDP                     = 0x8739\n\tETHERTYPE_RETIX                   = 0x80f2\n\tETHERTYPE_REVARP                  = 0x8035\n\tETHERTYPE_SCA                     = 0x6007\n\tETHERTYPE_SECTRA                  = 0x86db\n\tETHERTYPE_SECUREDATA              = 0x876d\n\tETHERTYPE_SGITW                   = 0x817e\n\tETHERTYPE_SG_BOUNCE               = 0x8016\n\tETHERTYPE_SG_DIAG                 = 0x8013\n\tETHERTYPE_SG_NETGAMES             = 0x8014\n\tETHERTYPE_SG_RESV                 = 0x8015\n\tETHERTYPE_SIMNET                  = 0x5208\n\tETHERTYPE_SLOW                    = 0x8809\n\tETHERTYPE_SNA                     = 0x80d5\n\tETHERTYPE_SNMP                    = 0x814c\n\tETHERTYPE_SONIX                   = 0xfaf5\n\tETHERTYPE_SPIDER                  = 0x809f\n\tETHERTYPE_SPRITE                  = 0x500\n\tETHERTYPE_STP                     = 0x8181\n\tETHERTYPE_TALARIS                 = 0x812b\n\tETHERTYPE_TALARISMC               = 0x852b\n\tETHERTYPE_TCPCOMP                 = 0x876b\n\tETHERTYPE_TCPSM                   = 0x9002\n\tETHERTYPE_TEC                     = 0x814f\n\tETHERTYPE_TIGAN                   = 0x802f\n\tETHERTYPE_TRAIL                   = 0x1000\n\tETHERTYPE_TRANSETHER              = 0x6558\n\tETHERTYPE_TYMSHARE                = 0x802e\n\tETHERTYPE_UBBST                   = 0x7005\n\tETHERTYPE_UBDEBUG                 = 0x900\n\tETHERTYPE_UBDIAGLOOP              = 0x7002\n\tETHERTYPE_UBDL                    = 0x7000\n\tETHERTYPE_UBNIU                   = 0x7001\n\tETHERTYPE_UBNMC                   = 0x7003\n\tETHERTYPE_VALID                   = 0x1600\n\tETHERTYPE_VARIAN                  = 0x80dd\n\tETHERTYPE_VAXELN                  = 0x803b\n\tETHERTYPE_VEECO                   = 0x8067\n\tETHERTYPE_VEXP                    = 0x805b\n\tETHERTYPE_VGLAB                   = 0x8131\n\tETHERTYPE_VINES                   = 0xbad\n\tETHERTYPE_VINESECHO               = 0xbaf\n\tETHERTYPE_VINESLOOP               = 0xbae\n\tETHERTYPE_VITAL                   = 0xff00\n\tETHERTYPE_VLAN                    = 0x8100\n\tETHERTYPE_VLTLMAN                 = 0x8080\n\tETHERTYPE_VPROD                   = 0x805c\n\tETHERTYPE_VURESERVED              = 0x8147\n\tETHERTYPE_WATERLOO                = 0x8130\n\tETHERTYPE_WELLFLEET               = 0x8103\n\tETHERTYPE_X25                     = 0x805\n\tETHERTYPE_X75                     = 0x801\n\tETHERTYPE_XNSSM                   = 0x9001\n\tETHERTYPE_XTP                     = 0x817d\n\tETHER_ADDR_LEN                    = 0x6\n\tETHER_ALIGN                       = 0x2\n\tETHER_CRC_LEN                     = 0x4\n\tETHER_CRC_POLY_BE                 = 0x4c11db6\n\tETHER_CRC_POLY_LE                 = 0xedb88320\n\tETHER_HDR_LEN                     = 0xe\n\tETHER_MAX_DIX_LEN                 = 0x600\n\tETHER_MAX_HARDMTU_LEN             = 0xff9b\n\tETHER_MAX_LEN                     = 0x5ee\n\tETHER_MIN_LEN                     = 0x40\n\tETHER_TYPE_LEN                    = 0x2\n\tETHER_VLAN_ENCAP_LEN              = 0x4\n\tEVFILT_AIO                        = -0x3\n\tEVFILT_DEVICE                     = -0x8\n\tEVFILT_EXCEPT                     = -0x9\n\tEVFILT_PROC                       = -0x5\n\tEVFILT_READ                       = -0x1\n\tEVFILT_SIGNAL                     = -0x6\n\tEVFILT_SYSCOUNT                   = 0x9\n\tEVFILT_TIMER                      = -0x7\n\tEVFILT_VNODE                      = -0x4\n\tEVFILT_WRITE                      = -0x2\n\tEVL_ENCAPLEN                      = 0x4\n\tEVL_PRIO_BITS                     = 0xd\n\tEVL_PRIO_MAX                      = 0x7\n\tEVL_VLID_MASK                     = 0xfff\n\tEVL_VLID_MAX                      = 0xffe\n\tEVL_VLID_MIN                      = 0x1\n\tEVL_VLID_NULL                     = 0x0\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_DISPATCH                       = 0x80\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_RECEIPT                        = 0x40\n\tEV_SYSFLAGS                       = 0xf800\n\tEXTA                              = 0x4b00\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x400\n\tFLUSHO                            = 0x800000\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0xa\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETOWN                          = 0x5\n\tF_ISATTY                          = 0xb\n\tF_OK                              = 0x0\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x8e52\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_STATICARP                     = 0x20\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BLUETOOTH                     = 0xf8\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf7\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DUMMY                         = 0xf1\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ECONET                        = 0xce\n\tIFT_ENC                           = 0xf4\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf3\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INFINIBAND                    = 0xc7\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LINEGROUP                     = 0xd2\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MBIM                          = 0xfa\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFLOW                         = 0xf9\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_PON155                        = 0xcf\n\tIFT_PON622                        = 0xd0\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPATM                       = 0xc5\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf2\n\tIFT_Q2931                         = 0xc9\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SIPSIG                        = 0xcc\n\tIFT_SIPTG                         = 0xcb\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TELINK                        = 0xc8\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VIRTUALTG                     = 0xca\n\tIFT_VOICEDID                      = 0xd5\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEEMFGD                    = 0xd3\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFGDEANA                  = 0xd4\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERCABLE                = 0xc6\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_WIREGUARD                     = 0xfb\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIN_RFC3021_HOST                   = 0x1\n\tIN_RFC3021_NET                    = 0xfffffffe\n\tIN_RFC3021_NSHIFT                 = 0x1f\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_DIVERT                    = 0x102\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x103\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_MPLS                      = 0x89\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_SCTP                      = 0x84\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_UDPLITE                   = 0x88\n\tIPV6_AUTH_LEVEL                   = 0x35\n\tIPV6_AUTOFLOWLABEL                = 0x3b\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_ESP_NETWORK_LEVEL            = 0x37\n\tIPV6_ESP_TRANS_LEVEL              = 0x36\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xfffffff\n\tIPV6_FLOWLABEL_MASK               = 0xfffff\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_IPCOMP_LEVEL                 = 0x3c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MINHOPCOUNT                  = 0x41\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_OPTIONS                      = 0x1\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PIPEX                        = 0x3f\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVDSTPORT                  = 0x40\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTABLE                       = 0x1021\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_AUTH_LEVEL                     = 0x14\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_ESP_NETWORK_LEVEL              = 0x16\n\tIP_ESP_TRANS_LEVEL                = 0x15\n\tIP_HDRINCL                        = 0x2\n\tIP_IPCOMP_LEVEL                   = 0x1d\n\tIP_IPDEFTTL                       = 0x25\n\tIP_IPSECFLOWINFO                  = 0x24\n\tIP_IPSEC_LOCAL_AUTH               = 0x1b\n\tIP_IPSEC_LOCAL_CRED               = 0x19\n\tIP_IPSEC_LOCAL_ID                 = 0x17\n\tIP_IPSEC_REMOTE_AUTH              = 0x1c\n\tIP_IPSEC_REMOTE_CRED              = 0x1a\n\tIP_IPSEC_REMOTE_ID                = 0x18\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0xfff\n\tIP_MF                             = 0x2000\n\tIP_MINTTL                         = 0x20\n\tIP_MIN_MEMBERSHIPS                = 0xf\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PIPEX                          = 0x22\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVDSTPORT                    = 0x21\n\tIP_RECVIF                         = 0x1e\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVRTABLE                     = 0x23\n\tIP_RECVTTL                        = 0x1f\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_RTABLE                         = 0x1021\n\tIP_SENDSRCADDR                    = 0x7\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tITIMER_PROF                       = 0x2\n\tITIMER_REAL                       = 0x0\n\tITIMER_VIRTUAL                    = 0x1\n\tIUCLC                             = 0x1000\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLCNT_OVERLOAD_FLUSH               = 0x6\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x6\n\tMADV_NORMAL                       = 0x0\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SPACEAVAIL                   = 0x5\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ANON                          = 0x1000\n\tMAP_ANONYMOUS                     = 0x1000\n\tMAP_CONCEAL                       = 0x8000\n\tMAP_COPY                          = 0x2\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_FLAGMASK                      = 0xfff7\n\tMAP_HASSEMAPHORE                  = 0x0\n\tMAP_INHERIT                       = 0x0\n\tMAP_INHERIT_COPY                  = 0x1\n\tMAP_INHERIT_NONE                  = 0x2\n\tMAP_INHERIT_SHARE                 = 0x0\n\tMAP_INHERIT_ZERO                  = 0x3\n\tMAP_NOEXTEND                      = 0x0\n\tMAP_NORESERVE                     = 0x0\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x0\n\tMAP_SHARED                        = 0x1\n\tMAP_STACK                         = 0x4000\n\tMAP_TRYFIXED                      = 0x0\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DELEXPORT                     = 0x20000\n\tMNT_DOOMED                        = 0x8000000\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_FORCE                         = 0x80000\n\tMNT_LAZY                          = 0x3\n\tMNT_LOCAL                         = 0x1000\n\tMNT_NOATIME                       = 0x8000\n\tMNT_NODEV                         = 0x10\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOPERM                        = 0x20\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOWAIT                        = 0x2\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x4000000\n\tMNT_STALLED                       = 0x100000\n\tMNT_SWAPPABLE                     = 0x200000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0x400ffff\n\tMNT_WAIT                          = 0x1\n\tMNT_WANTRDWR                      = 0x2000000\n\tMNT_WXALLOWED                     = 0x800\n\tMOUNT_AFS                         = \"afs\"\n\tMOUNT_CD9660                      = \"cd9660\"\n\tMOUNT_EXT2FS                      = \"ext2fs\"\n\tMOUNT_FFS                         = \"ffs\"\n\tMOUNT_FUSEFS                      = \"fuse\"\n\tMOUNT_MFS                         = \"mfs\"\n\tMOUNT_MSDOS                       = \"msdos\"\n\tMOUNT_NCPFS                       = \"ncpfs\"\n\tMOUNT_NFS                         = \"nfs\"\n\tMOUNT_NTFS                        = \"ntfs\"\n\tMOUNT_TMPFS                       = \"tmpfs\"\n\tMOUNT_UDF                         = \"udf\"\n\tMOUNT_UFS                         = \"ffs\"\n\tMSG_BCAST                         = 0x100\n\tMSG_CMSG_CLOEXEC                  = 0x800\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOR                           = 0x8\n\tMSG_MCAST                         = 0x200\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_TRUNC                         = 0x10\n\tMSG_WAITALL                       = 0x40\n\tMSG_WAITFORONE                    = 0x1000\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x4\n\tMS_SYNC                           = 0x2\n\tNAME_MAX                          = 0xff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x3\n\tNET_RT_IFNAMES                    = 0x6\n\tNET_RT_MAXID                      = 0x8\n\tNET_RT_SOURCE                     = 0x7\n\tNET_RT_STATS                      = 0x4\n\tNET_RT_TABLE                      = 0x5\n\tNFDBITS                           = 0x20\n\tNOFLSH                            = 0x80000000\n\tNOKERNINFO                        = 0x2000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHANGE                       = 0x1\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EOF                          = 0x2\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_OOB                          = 0x4\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_TRUNCATE                     = 0x80\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tOLCUC                             = 0x20\n\tONLCR                             = 0x2\n\tONLRET                            = 0x80\n\tONOCR                             = 0x40\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tOXTABS                            = 0x4\n\tO_ACCMODE                         = 0x3\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x10000\n\tO_CREAT                           = 0x200\n\tO_DIRECTORY                       = 0x20000\n\tO_DSYNC                           = 0x80\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_RSYNC                           = 0x80\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPF_FLUSH                          = 0x1\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BFD                          = 0xb\n\tRTAX_BRD                          = 0x7\n\tRTAX_DNS                          = 0xc\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_LABEL                        = 0xa\n\tRTAX_MAX                          = 0xf\n\tRTAX_NETMASK                      = 0x2\n\tRTAX_SEARCH                       = 0xe\n\tRTAX_SRC                          = 0x8\n\tRTAX_SRCMASK                      = 0x9\n\tRTAX_STATIC                       = 0xd\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BFD                           = 0x800\n\tRTA_BRD                           = 0x80\n\tRTA_DNS                           = 0x1000\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_LABEL                         = 0x400\n\tRTA_NETMASK                       = 0x4\n\tRTA_SEARCH                        = 0x4000\n\tRTA_SRC                           = 0x100\n\tRTA_SRCMASK                       = 0x200\n\tRTA_STATIC                        = 0x2000\n\tRTF_ANNOUNCE                      = 0x4000\n\tRTF_BFD                           = 0x1000000\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_BROADCAST                     = 0x400000\n\tRTF_CACHED                        = 0x20000\n\tRTF_CLONED                        = 0x10000\n\tRTF_CLONING                       = 0x100\n\tRTF_CONNECTED                     = 0x800000\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_FMASK                         = 0x110fc08\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_LOCAL                         = 0x200000\n\tRTF_MODIFIED                      = 0x20\n\tRTF_MPATH                         = 0x40000\n\tRTF_MPLS                          = 0x100000\n\tRTF_MULTICAST                     = 0x200\n\tRTF_PERMANENT_ARP                 = 0x2000\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_PROTO3                        = 0x2000\n\tRTF_REJECT                        = 0x8\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_USETRAILERS                   = 0x8000\n\tRTM_80211INFO                     = 0x15\n\tRTM_ADD                           = 0x1\n\tRTM_BFD                           = 0x12\n\tRTM_CHANGE                        = 0x3\n\tRTM_CHGADDRATTR                   = 0x14\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_DESYNC                        = 0x10\n\tRTM_GET                           = 0x4\n\tRTM_IFANNOUNCE                    = 0xf\n\tRTM_IFINFO                        = 0xe\n\tRTM_INVALIDATE                    = 0x11\n\tRTM_LOSING                        = 0x5\n\tRTM_MAXSIZE                       = 0x800\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_PROPOSAL                      = 0x13\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_SOURCE                        = 0x16\n\tRTM_VERSION                       = 0x5\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRT_TABLEID_BITS                   = 0x8\n\tRT_TABLEID_MASK                   = 0xff\n\tRT_TABLEID_MAX                    = 0xff\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tRUSAGE_THREAD                     = 0x1\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x4\n\tSEEK_CUR                          = 0x1\n\tSEEK_END                          = 0x2\n\tSEEK_SET                          = 0x0\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80206931\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCAIFGROUP                      = 0x80286987\n\tSIOCATMARK                        = 0x40047307\n\tSIOCBRDGADD                       = 0x8060693c\n\tSIOCBRDGADDL                      = 0x80606949\n\tSIOCBRDGADDS                      = 0x80606941\n\tSIOCBRDGARL                       = 0x808c694d\n\tSIOCBRDGDADDR                     = 0x81286947\n\tSIOCBRDGDEL                       = 0x8060693d\n\tSIOCBRDGDELS                      = 0x80606942\n\tSIOCBRDGFLUSH                     = 0x80606948\n\tSIOCBRDGFRL                       = 0x808c694e\n\tSIOCBRDGGCACHE                    = 0xc0146941\n\tSIOCBRDGGFD                       = 0xc0146952\n\tSIOCBRDGGHT                       = 0xc0146951\n\tSIOCBRDGGIFFLGS                   = 0xc060693e\n\tSIOCBRDGGMA                       = 0xc0146953\n\tSIOCBRDGGPARAM                    = 0xc0406958\n\tSIOCBRDGGPRI                      = 0xc0146950\n\tSIOCBRDGGRL                       = 0xc030694f\n\tSIOCBRDGGTO                       = 0xc0146946\n\tSIOCBRDGIFS                       = 0xc0606942\n\tSIOCBRDGRTS                       = 0xc0206943\n\tSIOCBRDGSADDR                     = 0xc1286944\n\tSIOCBRDGSCACHE                    = 0x80146940\n\tSIOCBRDGSFD                       = 0x80146952\n\tSIOCBRDGSHT                       = 0x80146951\n\tSIOCBRDGSIFCOST                   = 0x80606955\n\tSIOCBRDGSIFFLGS                   = 0x8060693f\n\tSIOCBRDGSIFPRIO                   = 0x80606954\n\tSIOCBRDGSIFPROT                   = 0x8060694a\n\tSIOCBRDGSMA                       = 0x80146953\n\tSIOCBRDGSPRI                      = 0x80146950\n\tSIOCBRDGSPROTO                    = 0x8014695a\n\tSIOCBRDGSTO                       = 0x80146945\n\tSIOCBRDGSTXHC                     = 0x80146959\n\tSIOCDELLABEL                      = 0x80206997\n\tSIOCDELMULTI                      = 0x80206932\n\tSIOCDIFADDR                       = 0x80206919\n\tSIOCDIFGROUP                      = 0x80286989\n\tSIOCDIFPARENT                     = 0x802069b4\n\tSIOCDIFPHYADDR                    = 0x80206949\n\tSIOCDPWE3NEIGHBOR                 = 0x802069de\n\tSIOCDVNETID                       = 0x802069af\n\tSIOCGETKALIVE                     = 0xc01869a4\n\tSIOCGETLABEL                      = 0x8020699a\n\tSIOCGETMPWCFG                     = 0xc02069ae\n\tSIOCGETPFLOW                      = 0xc02069fe\n\tSIOCGETPFSYNC                     = 0xc02069f8\n\tSIOCGETSGCNT                      = 0xc0207534\n\tSIOCGETVIFCNT                     = 0xc0287533\n\tSIOCGETVLAN                       = 0xc0206990\n\tSIOCGIFADDR                       = 0xc0206921\n\tSIOCGIFBRDADDR                    = 0xc0206923\n\tSIOCGIFCONF                       = 0xc0106924\n\tSIOCGIFDATA                       = 0xc020691b\n\tSIOCGIFDESCR                      = 0xc0206981\n\tSIOCGIFDSTADDR                    = 0xc0206922\n\tSIOCGIFFLAGS                      = 0xc0206911\n\tSIOCGIFGATTR                      = 0xc028698b\n\tSIOCGIFGENERIC                    = 0xc020693a\n\tSIOCGIFGLIST                      = 0xc028698d\n\tSIOCGIFGMEMB                      = 0xc028698a\n\tSIOCGIFGROUP                      = 0xc0286988\n\tSIOCGIFHARDMTU                    = 0xc02069a5\n\tSIOCGIFLLPRIO                     = 0xc02069b6\n\tSIOCGIFMEDIA                      = 0xc0406938\n\tSIOCGIFMETRIC                     = 0xc0206917\n\tSIOCGIFMTU                        = 0xc020697e\n\tSIOCGIFNETMASK                    = 0xc0206925\n\tSIOCGIFPAIR                       = 0xc02069b1\n\tSIOCGIFPARENT                     = 0xc02069b3\n\tSIOCGIFPRIORITY                   = 0xc020699c\n\tSIOCGIFRDOMAIN                    = 0xc02069a0\n\tSIOCGIFRTLABEL                    = 0xc0206983\n\tSIOCGIFRXR                        = 0x802069aa\n\tSIOCGIFSFFPAGE                    = 0xc1126939\n\tSIOCGIFXFLAGS                     = 0xc020699e\n\tSIOCGLIFPHYADDR                   = 0xc218694b\n\tSIOCGLIFPHYDF                     = 0xc02069c2\n\tSIOCGLIFPHYECN                    = 0xc02069c8\n\tSIOCGLIFPHYRTABLE                 = 0xc02069a2\n\tSIOCGLIFPHYTTL                    = 0xc02069a9\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGPWE3                         = 0xc0206998\n\tSIOCGPWE3CTRLWORD                 = 0xc02069dc\n\tSIOCGPWE3FAT                      = 0xc02069dd\n\tSIOCGPWE3NEIGHBOR                 = 0xc21869de\n\tSIOCGRXHPRIO                      = 0xc02069db\n\tSIOCGSPPPPARAMS                   = 0xc0206994\n\tSIOCGTXHPRIO                      = 0xc02069c6\n\tSIOCGUMBINFO                      = 0xc02069be\n\tSIOCGUMBPARAM                     = 0xc02069c0\n\tSIOCGVH                           = 0xc02069f6\n\tSIOCGVNETFLOWID                   = 0xc02069c4\n\tSIOCGVNETID                       = 0xc02069a7\n\tSIOCIFAFATTACH                    = 0x801169ab\n\tSIOCIFAFDETACH                    = 0x801169ac\n\tSIOCIFCREATE                      = 0x8020697a\n\tSIOCIFDESTROY                     = 0x80206979\n\tSIOCIFGCLONERS                    = 0xc0106978\n\tSIOCSETKALIVE                     = 0x801869a3\n\tSIOCSETLABEL                      = 0x80206999\n\tSIOCSETMPWCFG                     = 0x802069ad\n\tSIOCSETPFLOW                      = 0x802069fd\n\tSIOCSETPFSYNC                     = 0x802069f7\n\tSIOCSETVLAN                       = 0x8020698f\n\tSIOCSIFADDR                       = 0x8020690c\n\tSIOCSIFBRDADDR                    = 0x80206913\n\tSIOCSIFDESCR                      = 0x80206980\n\tSIOCSIFDSTADDR                    = 0x8020690e\n\tSIOCSIFFLAGS                      = 0x80206910\n\tSIOCSIFGATTR                      = 0x8028698c\n\tSIOCSIFGENERIC                    = 0x80206939\n\tSIOCSIFLLADDR                     = 0x8020691f\n\tSIOCSIFLLPRIO                     = 0x802069b5\n\tSIOCSIFMEDIA                      = 0xc0206937\n\tSIOCSIFMETRIC                     = 0x80206918\n\tSIOCSIFMTU                        = 0x8020697f\n\tSIOCSIFNETMASK                    = 0x80206916\n\tSIOCSIFPAIR                       = 0x802069b0\n\tSIOCSIFPARENT                     = 0x802069b2\n\tSIOCSIFPRIORITY                   = 0x8020699b\n\tSIOCSIFRDOMAIN                    = 0x8020699f\n\tSIOCSIFRTLABEL                    = 0x80206982\n\tSIOCSIFXFLAGS                     = 0x8020699d\n\tSIOCSLIFPHYADDR                   = 0x8218694a\n\tSIOCSLIFPHYDF                     = 0x802069c1\n\tSIOCSLIFPHYECN                    = 0x802069c7\n\tSIOCSLIFPHYRTABLE                 = 0x802069a1\n\tSIOCSLIFPHYTTL                    = 0x802069a8\n\tSIOCSPGRP                         = 0x80047308\n\tSIOCSPWE3CTRLWORD                 = 0x802069dc\n\tSIOCSPWE3FAT                      = 0x802069dd\n\tSIOCSPWE3NEIGHBOR                 = 0x821869de\n\tSIOCSRXHPRIO                      = 0x802069db\n\tSIOCSSPPPPARAMS                   = 0x80206993\n\tSIOCSTXHPRIO                      = 0x802069c5\n\tSIOCSUMBPARAM                     = 0x802069bf\n\tSIOCSVH                           = 0xc02069f5\n\tSIOCSVNETFLOWID                   = 0x802069c3\n\tSIOCSVNETID                       = 0x802069a6\n\tSOCK_CLOEXEC                      = 0x8000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_DNS                          = 0x1000\n\tSOCK_NONBLOCK                     = 0x4000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_BINDANY                        = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DOMAIN                         = 0x1024\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NETPROC                        = 0x1020\n\tSO_OOBINLINE                      = 0x100\n\tSO_PEERCRED                       = 0x1022\n\tSO_PROTOCOL                       = 0x1025\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x1006\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_RTABLE                         = 0x1021\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x1005\n\tSO_SPLICE                         = 0x1023\n\tSO_TIMESTAMP                      = 0x800\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tSO_ZEROIZE                        = 0x2000\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tTCIFLUSH                          = 0x1\n\tTCIOFF                            = 0x3\n\tTCIOFLUSH                         = 0x3\n\tTCION                             = 0x4\n\tTCOFLUSH                          = 0x2\n\tTCOOFF                            = 0x1\n\tTCOON                             = 0x2\n\tTCPOPT_EOL                        = 0x0\n\tTCPOPT_MAXSEG                     = 0x2\n\tTCPOPT_NOP                        = 0x1\n\tTCPOPT_SACK                       = 0x5\n\tTCPOPT_SACK_HDR                   = 0x1010500\n\tTCPOPT_SACK_PERMITTED             = 0x4\n\tTCPOPT_SACK_PERMIT_HDR            = 0x1010402\n\tTCPOPT_SIGNATURE                  = 0x13\n\tTCPOPT_TIMESTAMP                  = 0x8\n\tTCPOPT_TSTAMP_HDR                 = 0x101080a\n\tTCPOPT_WINDOW                     = 0x3\n\tTCP_INFO                          = 0x9\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_SACK                      = 0x3\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MD5SIG                        = 0x4\n\tTCP_MSS                           = 0x200\n\tTCP_NODELAY                       = 0x1\n\tTCP_NOPUSH                        = 0x10\n\tTCP_SACKHOLE_LIMIT                = 0x80\n\tTCP_SACK_ENABLE                   = 0x8\n\tTCSAFLUSH                         = 0x2\n\tTIMER_ABSTIME                     = 0x1\n\tTIMER_RELTIME                     = 0x0\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCHKVERAUTH                    = 0x2000741e\n\tTIOCCLRVERAUTH                    = 0x2000741d\n\tTIOCCONS                          = 0x80047462\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLAG_CLOCAL                   = 0x2\n\tTIOCFLAG_CRTSCTS                  = 0x4\n\tTIOCFLAG_MDMBUF                   = 0x8\n\tTIOCFLAG_PPS                      = 0x10\n\tTIOCFLAG_SOFTCAR                  = 0x1\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGFLAGS                        = 0x4004745d\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGSID                          = 0x40047463\n\tTIOCGTSTAMP                       = 0x4010745b\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMODG                          = 0x4004746a\n\tTIOCMODS                          = 0x8004746d\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSETVERAUTH                    = 0x8004741c\n\tTIOCSFLAGS                        = 0x8004745c\n\tTIOCSIG                           = 0x8004745f\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x20007465\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSTSTAMP                       = 0x8008745a\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCUCNTL                         = 0x80047466\n\tTIOCUCNTL_CBRK                    = 0x7a\n\tTIOCUCNTL_SBRK                    = 0x7b\n\tTOSTOP                            = 0x400000\n\tUTIME_NOW                         = -0x2\n\tUTIME_OMIT                        = -0x1\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVM_ANONMIN                        = 0x7\n\tVM_LOADAVG                        = 0x2\n\tVM_MALLOC_CONF                    = 0xc\n\tVM_MAXID                          = 0xd\n\tVM_MAXSLP                         = 0xa\n\tVM_METER                          = 0x1\n\tVM_NKMEMPAGES                     = 0x6\n\tVM_PSSTRINGS                      = 0x3\n\tVM_SWAPENCRYPT                    = 0x5\n\tVM_USPACE                         = 0xb\n\tVM_UVMEXP                         = 0x4\n\tVM_VNODEMIN                       = 0x9\n\tVM_VTEXTMIN                       = 0x8\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWALTSIG                           = 0x4\n\tWCONTINUED                        = 0x8\n\tWCOREFLAG                         = 0x80\n\tWNOHANG                           = 0x1\n\tWUNTRACED                         = 0x2\n\tXCASE                             = 0x1000000\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x5c)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x58)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x59)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEIPSEC          = syscall.Errno(0x52)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x5f)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMEDIUMTYPE     = syscall.Errno(0x56)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x53)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOMEDIUM       = syscall.Errno(0x55)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x5a)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x5d)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x5b)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x57)\n\tEOWNERDEAD      = syscall.Errno(0x5e)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5f)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disk quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC program not available\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIPSEC\", \"IPsec processing failure\"},\n\t{83, \"ENOATTR\", \"attribute not found\"},\n\t{84, \"EILSEQ\", \"illegal byte sequence\"},\n\t{85, \"ENOMEDIUM\", \"no medium found\"},\n\t{86, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{87, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{88, \"ECANCELED\", \"operation canceled\"},\n\t{89, \"EIDRM\", \"identifier removed\"},\n\t{90, \"ENOMSG\", \"no message of desired type\"},\n\t{91, \"ENOTSUP\", \"not supported\"},\n\t{92, \"EBADMSG\", \"bad message\"},\n\t{93, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{94, \"EOWNERDEAD\", \"previous owner died\"},\n\t{95, \"ELAST\", \"protocol error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGABRT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"thread AST\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build riscv64 && openbsd\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_APPLETALK                      = 0x10\n\tAF_BLUETOOTH                      = 0x20\n\tAF_CCITT                          = 0xa\n\tAF_CHAOS                          = 0x5\n\tAF_CNT                            = 0x15\n\tAF_COIP                           = 0x14\n\tAF_DATAKIT                        = 0x9\n\tAF_DECnet                         = 0xc\n\tAF_DLI                            = 0xd\n\tAF_E164                           = 0x1a\n\tAF_ECMA                           = 0x8\n\tAF_ENCAP                          = 0x1c\n\tAF_HYLINK                         = 0xf\n\tAF_IMPLINK                        = 0x3\n\tAF_INET                           = 0x2\n\tAF_INET6                          = 0x18\n\tAF_IPX                            = 0x17\n\tAF_ISDN                           = 0x1a\n\tAF_ISO                            = 0x7\n\tAF_KEY                            = 0x1e\n\tAF_LAT                            = 0xe\n\tAF_LINK                           = 0x12\n\tAF_LOCAL                          = 0x1\n\tAF_MAX                            = 0x24\n\tAF_MPLS                           = 0x21\n\tAF_NATM                           = 0x1b\n\tAF_NS                             = 0x6\n\tAF_OSI                            = 0x7\n\tAF_PUP                            = 0x4\n\tAF_ROUTE                          = 0x11\n\tAF_SIP                            = 0x1d\n\tAF_SNA                            = 0xb\n\tAF_UNIX                           = 0x1\n\tAF_UNSPEC                         = 0x0\n\tALTWERASE                         = 0x200\n\tARPHRD_ETHER                      = 0x1\n\tARPHRD_FRELAY                     = 0xf\n\tARPHRD_IEEE1394                   = 0x18\n\tARPHRD_IEEE802                    = 0x6\n\tB0                                = 0x0\n\tB110                              = 0x6e\n\tB115200                           = 0x1c200\n\tB1200                             = 0x4b0\n\tB134                              = 0x86\n\tB14400                            = 0x3840\n\tB150                              = 0x96\n\tB1800                             = 0x708\n\tB19200                            = 0x4b00\n\tB200                              = 0xc8\n\tB230400                           = 0x38400\n\tB2400                             = 0x960\n\tB28800                            = 0x7080\n\tB300                              = 0x12c\n\tB38400                            = 0x9600\n\tB4800                             = 0x12c0\n\tB50                               = 0x32\n\tB57600                            = 0xe100\n\tB600                              = 0x258\n\tB7200                             = 0x1c20\n\tB75                               = 0x4b\n\tB76800                            = 0x12c00\n\tB9600                             = 0x2580\n\tBIOCFLUSH                         = 0x20004268\n\tBIOCGBLEN                         = 0x40044266\n\tBIOCGDIRFILT                      = 0x4004427c\n\tBIOCGDLT                          = 0x4004426a\n\tBIOCGDLTLIST                      = 0xc010427b\n\tBIOCGETIF                         = 0x4020426b\n\tBIOCGFILDROP                      = 0x40044278\n\tBIOCGHDRCMPLT                     = 0x40044274\n\tBIOCGRSIG                         = 0x40044273\n\tBIOCGRTIMEOUT                     = 0x4010426e\n\tBIOCGSTATS                        = 0x4008426f\n\tBIOCIMMEDIATE                     = 0x80044270\n\tBIOCLOCK                          = 0x20004276\n\tBIOCPROMISC                       = 0x20004269\n\tBIOCSBLEN                         = 0xc0044266\n\tBIOCSDIRFILT                      = 0x8004427d\n\tBIOCSDLT                          = 0x8004427a\n\tBIOCSETF                          = 0x80104267\n\tBIOCSETIF                         = 0x8020426c\n\tBIOCSETWF                         = 0x80104277\n\tBIOCSFILDROP                      = 0x80044279\n\tBIOCSHDRCMPLT                     = 0x80044275\n\tBIOCSRSIG                         = 0x80044272\n\tBIOCSRTIMEOUT                     = 0x8010426d\n\tBIOCVERSION                       = 0x40044271\n\tBPF_A                             = 0x10\n\tBPF_ABS                           = 0x20\n\tBPF_ADD                           = 0x0\n\tBPF_ALIGNMENT                     = 0x4\n\tBPF_ALU                           = 0x4\n\tBPF_AND                           = 0x50\n\tBPF_B                             = 0x10\n\tBPF_DIRECTION_IN                  = 0x1\n\tBPF_DIRECTION_OUT                 = 0x2\n\tBPF_DIV                           = 0x30\n\tBPF_FILDROP_CAPTURE               = 0x1\n\tBPF_FILDROP_DROP                  = 0x2\n\tBPF_FILDROP_PASS                  = 0x0\n\tBPF_F_DIR_IN                      = 0x10\n\tBPF_F_DIR_MASK                    = 0x30\n\tBPF_F_DIR_OUT                     = 0x20\n\tBPF_F_DIR_SHIFT                   = 0x4\n\tBPF_F_FLOWID                      = 0x8\n\tBPF_F_PRI_MASK                    = 0x7\n\tBPF_H                             = 0x8\n\tBPF_IMM                           = 0x0\n\tBPF_IND                           = 0x40\n\tBPF_JA                            = 0x0\n\tBPF_JEQ                           = 0x10\n\tBPF_JGE                           = 0x30\n\tBPF_JGT                           = 0x20\n\tBPF_JMP                           = 0x5\n\tBPF_JSET                          = 0x40\n\tBPF_K                             = 0x0\n\tBPF_LD                            = 0x0\n\tBPF_LDX                           = 0x1\n\tBPF_LEN                           = 0x80\n\tBPF_LSH                           = 0x60\n\tBPF_MAJOR_VERSION                 = 0x1\n\tBPF_MAXBUFSIZE                    = 0x200000\n\tBPF_MAXINSNS                      = 0x200\n\tBPF_MEM                           = 0x60\n\tBPF_MEMWORDS                      = 0x10\n\tBPF_MINBUFSIZE                    = 0x20\n\tBPF_MINOR_VERSION                 = 0x1\n\tBPF_MISC                          = 0x7\n\tBPF_MSH                           = 0xa0\n\tBPF_MUL                           = 0x20\n\tBPF_NEG                           = 0x80\n\tBPF_OR                            = 0x40\n\tBPF_RELEASE                       = 0x30bb6\n\tBPF_RET                           = 0x6\n\tBPF_RND                           = 0xc0\n\tBPF_RSH                           = 0x70\n\tBPF_ST                            = 0x2\n\tBPF_STX                           = 0x3\n\tBPF_SUB                           = 0x10\n\tBPF_TAX                           = 0x0\n\tBPF_TXA                           = 0x80\n\tBPF_W                             = 0x0\n\tBPF_X                             = 0x8\n\tBRKINT                            = 0x2\n\tCFLUSH                            = 0xf\n\tCLOCAL                            = 0x8000\n\tCLOCK_BOOTTIME                    = 0x6\n\tCLOCK_MONOTONIC                   = 0x3\n\tCLOCK_PROCESS_CPUTIME_ID          = 0x2\n\tCLOCK_REALTIME                    = 0x0\n\tCLOCK_THREAD_CPUTIME_ID           = 0x4\n\tCLOCK_UPTIME                      = 0x5\n\tCPUSTATES                         = 0x6\n\tCP_IDLE                           = 0x5\n\tCP_INTR                           = 0x4\n\tCP_NICE                           = 0x1\n\tCP_SPIN                           = 0x3\n\tCP_SYS                            = 0x2\n\tCP_USER                           = 0x0\n\tCREAD                             = 0x800\n\tCRTSCTS                           = 0x10000\n\tCS5                               = 0x0\n\tCS6                               = 0x100\n\tCS7                               = 0x200\n\tCS8                               = 0x300\n\tCSIZE                             = 0x300\n\tCSTART                            = 0x11\n\tCSTATUS                           = 0xff\n\tCSTOP                             = 0x13\n\tCSTOPB                            = 0x400\n\tCSUSP                             = 0x1a\n\tCTL_HW                            = 0x6\n\tCTL_KERN                          = 0x1\n\tCTL_MAXNAME                       = 0xc\n\tCTL_NET                           = 0x4\n\tDIOCADDQUEUE                      = 0xc110445d\n\tDIOCADDRULE                       = 0xcd604404\n\tDIOCADDSTATE                      = 0xc1084425\n\tDIOCCHANGERULE                    = 0xcd60441a\n\tDIOCCLRIFFLAG                     = 0xc028445a\n\tDIOCCLRSRCNODES                   = 0x20004455\n\tDIOCCLRSTATES                     = 0xc0e04412\n\tDIOCCLRSTATUS                     = 0xc0284416\n\tDIOCGETLIMIT                      = 0xc0084427\n\tDIOCGETQSTATS                     = 0xc1204460\n\tDIOCGETQUEUE                      = 0xc110445f\n\tDIOCGETQUEUES                     = 0xc110445e\n\tDIOCGETRULE                       = 0xcd604407\n\tDIOCGETRULES                      = 0xcd604406\n\tDIOCGETRULESET                    = 0xc444443b\n\tDIOCGETRULESETS                   = 0xc444443a\n\tDIOCGETSRCNODES                   = 0xc0104454\n\tDIOCGETSTATE                      = 0xc1084413\n\tDIOCGETSTATES                     = 0xc0104419\n\tDIOCGETSTATUS                     = 0xc1e84415\n\tDIOCGETSYNFLWATS                  = 0xc0084463\n\tDIOCGETTIMEOUT                    = 0xc008441e\n\tDIOCIGETIFACES                    = 0xc0284457\n\tDIOCKILLSRCNODES                  = 0xc080445b\n\tDIOCKILLSTATES                    = 0xc0e04429\n\tDIOCNATLOOK                       = 0xc0504417\n\tDIOCOSFPADD                       = 0xc088444f\n\tDIOCOSFPFLUSH                     = 0x2000444e\n\tDIOCOSFPGET                       = 0xc0884450\n\tDIOCRADDADDRS                     = 0xc4504443\n\tDIOCRADDTABLES                    = 0xc450443d\n\tDIOCRCLRADDRS                     = 0xc4504442\n\tDIOCRCLRASTATS                    = 0xc4504448\n\tDIOCRCLRTABLES                    = 0xc450443c\n\tDIOCRCLRTSTATS                    = 0xc4504441\n\tDIOCRDELADDRS                     = 0xc4504444\n\tDIOCRDELTABLES                    = 0xc450443e\n\tDIOCRGETADDRS                     = 0xc4504446\n\tDIOCRGETASTATS                    = 0xc4504447\n\tDIOCRGETTABLES                    = 0xc450443f\n\tDIOCRGETTSTATS                    = 0xc4504440\n\tDIOCRINADEFINE                    = 0xc450444d\n\tDIOCRSETADDRS                     = 0xc4504445\n\tDIOCRSETTFLAGS                    = 0xc450444a\n\tDIOCRTSTADDRS                     = 0xc4504449\n\tDIOCSETDEBUG                      = 0xc0044418\n\tDIOCSETHOSTID                     = 0xc0044456\n\tDIOCSETIFFLAG                     = 0xc0284459\n\tDIOCSETLIMIT                      = 0xc0084428\n\tDIOCSETREASS                      = 0xc004445c\n\tDIOCSETSTATUSIF                   = 0xc0284414\n\tDIOCSETSYNCOOKIES                 = 0xc0014462\n\tDIOCSETSYNFLWATS                  = 0xc0084461\n\tDIOCSETTIMEOUT                    = 0xc008441d\n\tDIOCSTART                         = 0x20004401\n\tDIOCSTOP                          = 0x20004402\n\tDIOCXBEGIN                        = 0xc0104451\n\tDIOCXCOMMIT                       = 0xc0104452\n\tDIOCXROLLBACK                     = 0xc0104453\n\tDLT_ARCNET                        = 0x7\n\tDLT_ATM_RFC1483                   = 0xb\n\tDLT_AX25                          = 0x3\n\tDLT_CHAOS                         = 0x5\n\tDLT_C_HDLC                        = 0x68\n\tDLT_EN10MB                        = 0x1\n\tDLT_EN3MB                         = 0x2\n\tDLT_ENC                           = 0xd\n\tDLT_FDDI                          = 0xa\n\tDLT_IEEE802                       = 0x6\n\tDLT_IEEE802_11                    = 0x69\n\tDLT_IEEE802_11_RADIO              = 0x7f\n\tDLT_LOOP                          = 0xc\n\tDLT_MPLS                          = 0xdb\n\tDLT_NULL                          = 0x0\n\tDLT_OPENFLOW                      = 0x10b\n\tDLT_PFLOG                         = 0x75\n\tDLT_PFSYNC                        = 0x12\n\tDLT_PPP                           = 0x9\n\tDLT_PPP_BSDOS                     = 0x10\n\tDLT_PPP_ETHER                     = 0x33\n\tDLT_PPP_SERIAL                    = 0x32\n\tDLT_PRONET                        = 0x4\n\tDLT_RAW                           = 0xe\n\tDLT_SLIP                          = 0x8\n\tDLT_SLIP_BSDOS                    = 0xf\n\tDLT_USBPCAP                       = 0xf9\n\tDLT_USER0                         = 0x93\n\tDLT_USER1                         = 0x94\n\tDLT_USER10                        = 0x9d\n\tDLT_USER11                        = 0x9e\n\tDLT_USER12                        = 0x9f\n\tDLT_USER13                        = 0xa0\n\tDLT_USER14                        = 0xa1\n\tDLT_USER15                        = 0xa2\n\tDLT_USER2                         = 0x95\n\tDLT_USER3                         = 0x96\n\tDLT_USER4                         = 0x97\n\tDLT_USER5                         = 0x98\n\tDLT_USER6                         = 0x99\n\tDLT_USER7                         = 0x9a\n\tDLT_USER8                         = 0x9b\n\tDLT_USER9                         = 0x9c\n\tDT_BLK                            = 0x6\n\tDT_CHR                            = 0x2\n\tDT_DIR                            = 0x4\n\tDT_FIFO                           = 0x1\n\tDT_LNK                            = 0xa\n\tDT_REG                            = 0x8\n\tDT_SOCK                           = 0xc\n\tDT_UNKNOWN                        = 0x0\n\tECHO                              = 0x8\n\tECHOCTL                           = 0x40\n\tECHOE                             = 0x2\n\tECHOK                             = 0x4\n\tECHOKE                            = 0x1\n\tECHONL                            = 0x10\n\tECHOPRT                           = 0x20\n\tEMT_TAGOVF                        = 0x1\n\tEMUL_ENABLED                      = 0x1\n\tEMUL_NATIVE                       = 0x2\n\tENDRUNDISC                        = 0x9\n\tETH64_8021_RSVD_MASK              = 0xfffffffffff0\n\tETH64_8021_RSVD_PREFIX            = 0x180c2000000\n\tETHERMIN                          = 0x2e\n\tETHERMTU                          = 0x5dc\n\tETHERTYPE_8023                    = 0x4\n\tETHERTYPE_AARP                    = 0x80f3\n\tETHERTYPE_ACCTON                  = 0x8390\n\tETHERTYPE_AEONIC                  = 0x8036\n\tETHERTYPE_ALPHA                   = 0x814a\n\tETHERTYPE_AMBER                   = 0x6008\n\tETHERTYPE_AMOEBA                  = 0x8145\n\tETHERTYPE_AOE                     = 0x88a2\n\tETHERTYPE_APOLLO                  = 0x80f7\n\tETHERTYPE_APOLLODOMAIN            = 0x8019\n\tETHERTYPE_APPLETALK               = 0x809b\n\tETHERTYPE_APPLITEK                = 0x80c7\n\tETHERTYPE_ARGONAUT                = 0x803a\n\tETHERTYPE_ARP                     = 0x806\n\tETHERTYPE_AT                      = 0x809b\n\tETHERTYPE_ATALK                   = 0x809b\n\tETHERTYPE_ATOMIC                  = 0x86df\n\tETHERTYPE_ATT                     = 0x8069\n\tETHERTYPE_ATTSTANFORD             = 0x8008\n\tETHERTYPE_AUTOPHON                = 0x806a\n\tETHERTYPE_AXIS                    = 0x8856\n\tETHERTYPE_BCLOOP                  = 0x9003\n\tETHERTYPE_BOFL                    = 0x8102\n\tETHERTYPE_CABLETRON               = 0x7034\n\tETHERTYPE_CHAOS                   = 0x804\n\tETHERTYPE_COMDESIGN               = 0x806c\n\tETHERTYPE_COMPUGRAPHIC            = 0x806d\n\tETHERTYPE_COUNTERPOINT            = 0x8062\n\tETHERTYPE_CRONUS                  = 0x8004\n\tETHERTYPE_CRONUSVLN               = 0x8003\n\tETHERTYPE_DCA                     = 0x1234\n\tETHERTYPE_DDE                     = 0x807b\n\tETHERTYPE_DEBNI                   = 0xaaaa\n\tETHERTYPE_DECAM                   = 0x8048\n\tETHERTYPE_DECCUST                 = 0x6006\n\tETHERTYPE_DECDIAG                 = 0x6005\n\tETHERTYPE_DECDNS                  = 0x803c\n\tETHERTYPE_DECDTS                  = 0x803e\n\tETHERTYPE_DECEXPER                = 0x6000\n\tETHERTYPE_DECLAST                 = 0x8041\n\tETHERTYPE_DECLTM                  = 0x803f\n\tETHERTYPE_DECMUMPS                = 0x6009\n\tETHERTYPE_DECNETBIOS              = 0x8040\n\tETHERTYPE_DELTACON                = 0x86de\n\tETHERTYPE_DIDDLE                  = 0x4321\n\tETHERTYPE_DLOG1                   = 0x660\n\tETHERTYPE_DLOG2                   = 0x661\n\tETHERTYPE_DN                      = 0x6003\n\tETHERTYPE_DOGFIGHT                = 0x1989\n\tETHERTYPE_DSMD                    = 0x8039\n\tETHERTYPE_EAPOL                   = 0x888e\n\tETHERTYPE_ECMA                    = 0x803\n\tETHERTYPE_ENCRYPT                 = 0x803d\n\tETHERTYPE_ES                      = 0x805d\n\tETHERTYPE_EXCELAN                 = 0x8010\n\tETHERTYPE_EXPERDATA               = 0x8049\n\tETHERTYPE_FLIP                    = 0x8146\n\tETHERTYPE_FLOWCONTROL             = 0x8808\n\tETHERTYPE_FRARP                   = 0x808\n\tETHERTYPE_GENDYN                  = 0x8068\n\tETHERTYPE_HAYES                   = 0x8130\n\tETHERTYPE_HIPPI_FP                = 0x8180\n\tETHERTYPE_HITACHI                 = 0x8820\n\tETHERTYPE_HP                      = 0x8005\n\tETHERTYPE_IEEEPUP                 = 0xa00\n\tETHERTYPE_IEEEPUPAT               = 0xa01\n\tETHERTYPE_IMLBL                   = 0x4c42\n\tETHERTYPE_IMLBLDIAG               = 0x424c\n\tETHERTYPE_IP                      = 0x800\n\tETHERTYPE_IPAS                    = 0x876c\n\tETHERTYPE_IPV6                    = 0x86dd\n\tETHERTYPE_IPX                     = 0x8137\n\tETHERTYPE_IPXNEW                  = 0x8037\n\tETHERTYPE_KALPANA                 = 0x8582\n\tETHERTYPE_LANBRIDGE               = 0x8038\n\tETHERTYPE_LANPROBE                = 0x8888\n\tETHERTYPE_LAT                     = 0x6004\n\tETHERTYPE_LBACK                   = 0x9000\n\tETHERTYPE_LITTLE                  = 0x8060\n\tETHERTYPE_LLDP                    = 0x88cc\n\tETHERTYPE_LOGICRAFT               = 0x8148\n\tETHERTYPE_LOOPBACK                = 0x9000\n\tETHERTYPE_MACSEC                  = 0x88e5\n\tETHERTYPE_MATRA                   = 0x807a\n\tETHERTYPE_MAX                     = 0xffff\n\tETHERTYPE_MERIT                   = 0x807c\n\tETHERTYPE_MICP                    = 0x873a\n\tETHERTYPE_MOPDL                   = 0x6001\n\tETHERTYPE_MOPRC                   = 0x6002\n\tETHERTYPE_MOTOROLA                = 0x818d\n\tETHERTYPE_MPLS                    = 0x8847\n\tETHERTYPE_MPLS_MCAST              = 0x8848\n\tETHERTYPE_MUMPS                   = 0x813f\n\tETHERTYPE_NBPCC                   = 0x3c04\n\tETHERTYPE_NBPCLAIM                = 0x3c09\n\tETHERTYPE_NBPCLREQ                = 0x3c05\n\tETHERTYPE_NBPCLRSP                = 0x3c06\n\tETHERTYPE_NBPCREQ                 = 0x3c02\n\tETHERTYPE_NBPCRSP                 = 0x3c03\n\tETHERTYPE_NBPDG                   = 0x3c07\n\tETHERTYPE_NBPDGB                  = 0x3c08\n\tETHERTYPE_NBPDLTE                 = 0x3c0a\n\tETHERTYPE_NBPRAR                  = 0x3c0c\n\tETHERTYPE_NBPRAS                  = 0x3c0b\n\tETHERTYPE_NBPRST                  = 0x3c0d\n\tETHERTYPE_NBPSCD                  = 0x3c01\n\tETHERTYPE_NBPVCD                  = 0x3c00\n\tETHERTYPE_NBS                     = 0x802\n\tETHERTYPE_NCD                     = 0x8149\n\tETHERTYPE_NESTAR                  = 0x8006\n\tETHERTYPE_NETBEUI                 = 0x8191\n\tETHERTYPE_NHRP                    = 0x2001\n\tETHERTYPE_NOVELL                  = 0x8138\n\tETHERTYPE_NS                      = 0x600\n\tETHERTYPE_NSAT                    = 0x601\n\tETHERTYPE_NSCOMPAT                = 0x807\n\tETHERTYPE_NSH                     = 0x984f\n\tETHERTYPE_NTRAILER                = 0x10\n\tETHERTYPE_OS9                     = 0x7007\n\tETHERTYPE_OS9NET                  = 0x7009\n\tETHERTYPE_PACER                   = 0x80c6\n\tETHERTYPE_PBB                     = 0x88e7\n\tETHERTYPE_PCS                     = 0x4242\n\tETHERTYPE_PLANNING                = 0x8044\n\tETHERTYPE_PPP                     = 0x880b\n\tETHERTYPE_PPPOE                   = 0x8864\n\tETHERTYPE_PPPOEDISC               = 0x8863\n\tETHERTYPE_PRIMENTS                = 0x7031\n\tETHERTYPE_PUP                     = 0x200\n\tETHERTYPE_PUPAT                   = 0x200\n\tETHERTYPE_QINQ                    = 0x88a8\n\tETHERTYPE_RACAL                   = 0x7030\n\tETHERTYPE_RATIONAL                = 0x8150\n\tETHERTYPE_RAWFR                   = 0x6559\n\tETHERTYPE_RCL                     = 0x1995\n\tETHERTYPE_RDP                     = 0x8739\n\tETHERTYPE_RETIX                   = 0x80f2\n\tETHERTYPE_REVARP                  = 0x8035\n\tETHERTYPE_SCA                     = 0x6007\n\tETHERTYPE_SECTRA                  = 0x86db\n\tETHERTYPE_SECUREDATA              = 0x876d\n\tETHERTYPE_SGITW                   = 0x817e\n\tETHERTYPE_SG_BOUNCE               = 0x8016\n\tETHERTYPE_SG_DIAG                 = 0x8013\n\tETHERTYPE_SG_NETGAMES             = 0x8014\n\tETHERTYPE_SG_RESV                 = 0x8015\n\tETHERTYPE_SIMNET                  = 0x5208\n\tETHERTYPE_SLOW                    = 0x8809\n\tETHERTYPE_SNA                     = 0x80d5\n\tETHERTYPE_SNMP                    = 0x814c\n\tETHERTYPE_SONIX                   = 0xfaf5\n\tETHERTYPE_SPIDER                  = 0x809f\n\tETHERTYPE_SPRITE                  = 0x500\n\tETHERTYPE_STP                     = 0x8181\n\tETHERTYPE_TALARIS                 = 0x812b\n\tETHERTYPE_TALARISMC               = 0x852b\n\tETHERTYPE_TCPCOMP                 = 0x876b\n\tETHERTYPE_TCPSM                   = 0x9002\n\tETHERTYPE_TEC                     = 0x814f\n\tETHERTYPE_TIGAN                   = 0x802f\n\tETHERTYPE_TRAIL                   = 0x1000\n\tETHERTYPE_TRANSETHER              = 0x6558\n\tETHERTYPE_TYMSHARE                = 0x802e\n\tETHERTYPE_UBBST                   = 0x7005\n\tETHERTYPE_UBDEBUG                 = 0x900\n\tETHERTYPE_UBDIAGLOOP              = 0x7002\n\tETHERTYPE_UBDL                    = 0x7000\n\tETHERTYPE_UBNIU                   = 0x7001\n\tETHERTYPE_UBNMC                   = 0x7003\n\tETHERTYPE_VALID                   = 0x1600\n\tETHERTYPE_VARIAN                  = 0x80dd\n\tETHERTYPE_VAXELN                  = 0x803b\n\tETHERTYPE_VEECO                   = 0x8067\n\tETHERTYPE_VEXP                    = 0x805b\n\tETHERTYPE_VGLAB                   = 0x8131\n\tETHERTYPE_VINES                   = 0xbad\n\tETHERTYPE_VINESECHO               = 0xbaf\n\tETHERTYPE_VINESLOOP               = 0xbae\n\tETHERTYPE_VITAL                   = 0xff00\n\tETHERTYPE_VLAN                    = 0x8100\n\tETHERTYPE_VLTLMAN                 = 0x8080\n\tETHERTYPE_VPROD                   = 0x805c\n\tETHERTYPE_VURESERVED              = 0x8147\n\tETHERTYPE_WATERLOO                = 0x8130\n\tETHERTYPE_WELLFLEET               = 0x8103\n\tETHERTYPE_X25                     = 0x805\n\tETHERTYPE_X75                     = 0x801\n\tETHERTYPE_XNSSM                   = 0x9001\n\tETHERTYPE_XTP                     = 0x817d\n\tETHER_ADDR_LEN                    = 0x6\n\tETHER_ALIGN                       = 0x2\n\tETHER_CRC_LEN                     = 0x4\n\tETHER_CRC_POLY_BE                 = 0x4c11db6\n\tETHER_CRC_POLY_LE                 = 0xedb88320\n\tETHER_HDR_LEN                     = 0xe\n\tETHER_MAX_DIX_LEN                 = 0x600\n\tETHER_MAX_HARDMTU_LEN             = 0xff9b\n\tETHER_MAX_LEN                     = 0x5ee\n\tETHER_MIN_LEN                     = 0x40\n\tETHER_TYPE_LEN                    = 0x2\n\tETHER_VLAN_ENCAP_LEN              = 0x4\n\tEVFILT_AIO                        = -0x3\n\tEVFILT_DEVICE                     = -0x8\n\tEVFILT_EXCEPT                     = -0x9\n\tEVFILT_PROC                       = -0x5\n\tEVFILT_READ                       = -0x1\n\tEVFILT_SIGNAL                     = -0x6\n\tEVFILT_SYSCOUNT                   = 0x9\n\tEVFILT_TIMER                      = -0x7\n\tEVFILT_VNODE                      = -0x4\n\tEVFILT_WRITE                      = -0x2\n\tEVL_ENCAPLEN                      = 0x4\n\tEVL_PRIO_BITS                     = 0xd\n\tEVL_PRIO_MAX                      = 0x7\n\tEVL_VLID_MASK                     = 0xfff\n\tEVL_VLID_MAX                      = 0xffe\n\tEVL_VLID_MIN                      = 0x1\n\tEVL_VLID_NULL                     = 0x0\n\tEV_ADD                            = 0x1\n\tEV_CLEAR                          = 0x20\n\tEV_DELETE                         = 0x2\n\tEV_DISABLE                        = 0x8\n\tEV_DISPATCH                       = 0x80\n\tEV_ENABLE                         = 0x4\n\tEV_EOF                            = 0x8000\n\tEV_ERROR                          = 0x4000\n\tEV_FLAG1                          = 0x2000\n\tEV_ONESHOT                        = 0x10\n\tEV_RECEIPT                        = 0x40\n\tEV_SYSFLAGS                       = 0xf800\n\tEXTA                              = 0x4b00\n\tEXTB                              = 0x9600\n\tEXTPROC                           = 0x800\n\tFD_CLOEXEC                        = 0x1\n\tFD_SETSIZE                        = 0x400\n\tFLUSHO                            = 0x800000\n\tF_DUPFD                           = 0x0\n\tF_DUPFD_CLOEXEC                   = 0xa\n\tF_GETFD                           = 0x1\n\tF_GETFL                           = 0x3\n\tF_GETLK                           = 0x7\n\tF_GETOWN                          = 0x5\n\tF_ISATTY                          = 0xb\n\tF_OK                              = 0x0\n\tF_RDLCK                           = 0x1\n\tF_SETFD                           = 0x2\n\tF_SETFL                           = 0x4\n\tF_SETLK                           = 0x8\n\tF_SETLKW                          = 0x9\n\tF_SETOWN                          = 0x6\n\tF_UNLCK                           = 0x2\n\tF_WRLCK                           = 0x3\n\tHUPCL                             = 0x4000\n\tHW_MACHINE                        = 0x1\n\tICANON                            = 0x100\n\tICMP6_FILTER                      = 0x12\n\tICRNL                             = 0x100\n\tIEXTEN                            = 0x400\n\tIFAN_ARRIVAL                      = 0x0\n\tIFAN_DEPARTURE                    = 0x1\n\tIFF_ALLMULTI                      = 0x200\n\tIFF_BROADCAST                     = 0x2\n\tIFF_CANTCHANGE                    = 0x8e52\n\tIFF_DEBUG                         = 0x4\n\tIFF_LINK0                         = 0x1000\n\tIFF_LINK1                         = 0x2000\n\tIFF_LINK2                         = 0x4000\n\tIFF_LOOPBACK                      = 0x8\n\tIFF_MULTICAST                     = 0x8000\n\tIFF_NOARP                         = 0x80\n\tIFF_OACTIVE                       = 0x400\n\tIFF_POINTOPOINT                   = 0x10\n\tIFF_PROMISC                       = 0x100\n\tIFF_RUNNING                       = 0x40\n\tIFF_SIMPLEX                       = 0x800\n\tIFF_STATICARP                     = 0x20\n\tIFF_UP                            = 0x1\n\tIFNAMSIZ                          = 0x10\n\tIFT_1822                          = 0x2\n\tIFT_A12MPPSWITCH                  = 0x82\n\tIFT_AAL2                          = 0xbb\n\tIFT_AAL5                          = 0x31\n\tIFT_ADSL                          = 0x5e\n\tIFT_AFLANE8023                    = 0x3b\n\tIFT_AFLANE8025                    = 0x3c\n\tIFT_ARAP                          = 0x58\n\tIFT_ARCNET                        = 0x23\n\tIFT_ARCNETPLUS                    = 0x24\n\tIFT_ASYNC                         = 0x54\n\tIFT_ATM                           = 0x25\n\tIFT_ATMDXI                        = 0x69\n\tIFT_ATMFUNI                       = 0x6a\n\tIFT_ATMIMA                        = 0x6b\n\tIFT_ATMLOGICAL                    = 0x50\n\tIFT_ATMRADIO                      = 0xbd\n\tIFT_ATMSUBINTERFACE               = 0x86\n\tIFT_ATMVCIENDPT                   = 0xc2\n\tIFT_ATMVIRTUAL                    = 0x95\n\tIFT_BGPPOLICYACCOUNTING           = 0xa2\n\tIFT_BLUETOOTH                     = 0xf8\n\tIFT_BRIDGE                        = 0xd1\n\tIFT_BSC                           = 0x53\n\tIFT_CARP                          = 0xf7\n\tIFT_CCTEMUL                       = 0x3d\n\tIFT_CEPT                          = 0x13\n\tIFT_CES                           = 0x85\n\tIFT_CHANNEL                       = 0x46\n\tIFT_CNR                           = 0x55\n\tIFT_COFFEE                        = 0x84\n\tIFT_COMPOSITELINK                 = 0x9b\n\tIFT_DCN                           = 0x8d\n\tIFT_DIGITALPOWERLINE              = 0x8a\n\tIFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba\n\tIFT_DLSW                          = 0x4a\n\tIFT_DOCSCABLEDOWNSTREAM           = 0x80\n\tIFT_DOCSCABLEMACLAYER             = 0x7f\n\tIFT_DOCSCABLEUPSTREAM             = 0x81\n\tIFT_DOCSCABLEUPSTREAMCHANNEL      = 0xcd\n\tIFT_DS0                           = 0x51\n\tIFT_DS0BUNDLE                     = 0x52\n\tIFT_DS1FDL                        = 0xaa\n\tIFT_DS3                           = 0x1e\n\tIFT_DTM                           = 0x8c\n\tIFT_DUMMY                         = 0xf1\n\tIFT_DVBASILN                      = 0xac\n\tIFT_DVBASIOUT                     = 0xad\n\tIFT_DVBRCCDOWNSTREAM              = 0x93\n\tIFT_DVBRCCMACLAYER                = 0x92\n\tIFT_DVBRCCUPSTREAM                = 0x94\n\tIFT_ECONET                        = 0xce\n\tIFT_ENC                           = 0xf4\n\tIFT_EON                           = 0x19\n\tIFT_EPLRS                         = 0x57\n\tIFT_ESCON                         = 0x49\n\tIFT_ETHER                         = 0x6\n\tIFT_FAITH                         = 0xf3\n\tIFT_FAST                          = 0x7d\n\tIFT_FASTETHER                     = 0x3e\n\tIFT_FASTETHERFX                   = 0x45\n\tIFT_FDDI                          = 0xf\n\tIFT_FIBRECHANNEL                  = 0x38\n\tIFT_FRAMERELAYINTERCONNECT        = 0x3a\n\tIFT_FRAMERELAYMPI                 = 0x5c\n\tIFT_FRDLCIENDPT                   = 0xc1\n\tIFT_FRELAY                        = 0x20\n\tIFT_FRELAYDCE                     = 0x2c\n\tIFT_FRF16MFRBUNDLE                = 0xa3\n\tIFT_FRFORWARD                     = 0x9e\n\tIFT_G703AT2MB                     = 0x43\n\tIFT_G703AT64K                     = 0x42\n\tIFT_GIF                           = 0xf0\n\tIFT_GIGABITETHERNET               = 0x75\n\tIFT_GR303IDT                      = 0xb2\n\tIFT_GR303RDT                      = 0xb1\n\tIFT_H323GATEKEEPER                = 0xa4\n\tIFT_H323PROXY                     = 0xa5\n\tIFT_HDH1822                       = 0x3\n\tIFT_HDLC                          = 0x76\n\tIFT_HDSL2                         = 0xa8\n\tIFT_HIPERLAN2                     = 0xb7\n\tIFT_HIPPI                         = 0x2f\n\tIFT_HIPPIINTERFACE                = 0x39\n\tIFT_HOSTPAD                       = 0x5a\n\tIFT_HSSI                          = 0x2e\n\tIFT_HY                            = 0xe\n\tIFT_IBM370PARCHAN                 = 0x48\n\tIFT_IDSL                          = 0x9a\n\tIFT_IEEE1394                      = 0x90\n\tIFT_IEEE80211                     = 0x47\n\tIFT_IEEE80212                     = 0x37\n\tIFT_IEEE8023ADLAG                 = 0xa1\n\tIFT_IFGSN                         = 0x91\n\tIFT_IMT                           = 0xbe\n\tIFT_INFINIBAND                    = 0xc7\n\tIFT_INTERLEAVE                    = 0x7c\n\tIFT_IP                            = 0x7e\n\tIFT_IPFORWARD                     = 0x8e\n\tIFT_IPOVERATM                     = 0x72\n\tIFT_IPOVERCDLC                    = 0x6d\n\tIFT_IPOVERCLAW                    = 0x6e\n\tIFT_IPSWITCH                      = 0x4e\n\tIFT_ISDN                          = 0x3f\n\tIFT_ISDNBASIC                     = 0x14\n\tIFT_ISDNPRIMARY                   = 0x15\n\tIFT_ISDNS                         = 0x4b\n\tIFT_ISDNU                         = 0x4c\n\tIFT_ISO88022LLC                   = 0x29\n\tIFT_ISO88023                      = 0x7\n\tIFT_ISO88024                      = 0x8\n\tIFT_ISO88025                      = 0x9\n\tIFT_ISO88025CRFPINT               = 0x62\n\tIFT_ISO88025DTR                   = 0x56\n\tIFT_ISO88025FIBER                 = 0x73\n\tIFT_ISO88026                      = 0xa\n\tIFT_ISUP                          = 0xb3\n\tIFT_L2VLAN                        = 0x87\n\tIFT_L3IPVLAN                      = 0x88\n\tIFT_L3IPXVLAN                     = 0x89\n\tIFT_LAPB                          = 0x10\n\tIFT_LAPD                          = 0x4d\n\tIFT_LAPF                          = 0x77\n\tIFT_LINEGROUP                     = 0xd2\n\tIFT_LOCALTALK                     = 0x2a\n\tIFT_LOOP                          = 0x18\n\tIFT_MBIM                          = 0xfa\n\tIFT_MEDIAMAILOVERIP               = 0x8b\n\tIFT_MFSIGLINK                     = 0xa7\n\tIFT_MIOX25                        = 0x26\n\tIFT_MODEM                         = 0x30\n\tIFT_MPC                           = 0x71\n\tIFT_MPLS                          = 0xa6\n\tIFT_MPLSTUNNEL                    = 0x96\n\tIFT_MSDSL                         = 0x8f\n\tIFT_MVL                           = 0xbf\n\tIFT_MYRINET                       = 0x63\n\tIFT_NFAS                          = 0xaf\n\tIFT_NSIP                          = 0x1b\n\tIFT_OPTICALCHANNEL                = 0xc3\n\tIFT_OPTICALTRANSPORT              = 0xc4\n\tIFT_OTHER                         = 0x1\n\tIFT_P10                           = 0xc\n\tIFT_P80                           = 0xd\n\tIFT_PARA                          = 0x22\n\tIFT_PFLOG                         = 0xf5\n\tIFT_PFLOW                         = 0xf9\n\tIFT_PFSYNC                        = 0xf6\n\tIFT_PLC                           = 0xae\n\tIFT_PON155                        = 0xcf\n\tIFT_PON622                        = 0xd0\n\tIFT_POS                           = 0xab\n\tIFT_PPP                           = 0x17\n\tIFT_PPPMULTILINKBUNDLE            = 0x6c\n\tIFT_PROPATM                       = 0xc5\n\tIFT_PROPBWAP2MP                   = 0xb8\n\tIFT_PROPCNLS                      = 0x59\n\tIFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5\n\tIFT_PROPDOCSWIRELESSMACLAYER      = 0xb4\n\tIFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6\n\tIFT_PROPMUX                       = 0x36\n\tIFT_PROPVIRTUAL                   = 0x35\n\tIFT_PROPWIRELESSP2P               = 0x9d\n\tIFT_PTPSERIAL                     = 0x16\n\tIFT_PVC                           = 0xf2\n\tIFT_Q2931                         = 0xc9\n\tIFT_QLLC                          = 0x44\n\tIFT_RADIOMAC                      = 0xbc\n\tIFT_RADSL                         = 0x5f\n\tIFT_REACHDSL                      = 0xc0\n\tIFT_RFC1483                       = 0x9f\n\tIFT_RS232                         = 0x21\n\tIFT_RSRB                          = 0x4f\n\tIFT_SDLC                          = 0x11\n\tIFT_SDSL                          = 0x60\n\tIFT_SHDSL                         = 0xa9\n\tIFT_SIP                           = 0x1f\n\tIFT_SIPSIG                        = 0xcc\n\tIFT_SIPTG                         = 0xcb\n\tIFT_SLIP                          = 0x1c\n\tIFT_SMDSDXI                       = 0x2b\n\tIFT_SMDSICIP                      = 0x34\n\tIFT_SONET                         = 0x27\n\tIFT_SONETOVERHEADCHANNEL          = 0xb9\n\tIFT_SONETPATH                     = 0x32\n\tIFT_SONETVT                       = 0x33\n\tIFT_SRP                           = 0x97\n\tIFT_SS7SIGLINK                    = 0x9c\n\tIFT_STACKTOSTACK                  = 0x6f\n\tIFT_STARLAN                       = 0xb\n\tIFT_T1                            = 0x12\n\tIFT_TDLC                          = 0x74\n\tIFT_TELINK                        = 0xc8\n\tIFT_TERMPAD                       = 0x5b\n\tIFT_TR008                         = 0xb0\n\tIFT_TRANSPHDLC                    = 0x7b\n\tIFT_TUNNEL                        = 0x83\n\tIFT_ULTRA                         = 0x1d\n\tIFT_USB                           = 0xa0\n\tIFT_V11                           = 0x40\n\tIFT_V35                           = 0x2d\n\tIFT_V36                           = 0x41\n\tIFT_V37                           = 0x78\n\tIFT_VDSL                          = 0x61\n\tIFT_VIRTUALIPADDRESS              = 0x70\n\tIFT_VIRTUALTG                     = 0xca\n\tIFT_VOICEDID                      = 0xd5\n\tIFT_VOICEEM                       = 0x64\n\tIFT_VOICEEMFGD                    = 0xd3\n\tIFT_VOICEENCAP                    = 0x67\n\tIFT_VOICEFGDEANA                  = 0xd4\n\tIFT_VOICEFXO                      = 0x65\n\tIFT_VOICEFXS                      = 0x66\n\tIFT_VOICEOVERATM                  = 0x98\n\tIFT_VOICEOVERCABLE                = 0xc6\n\tIFT_VOICEOVERFRAMERELAY           = 0x99\n\tIFT_VOICEOVERIP                   = 0x68\n\tIFT_WIREGUARD                     = 0xfb\n\tIFT_X213                          = 0x5d\n\tIFT_X25                           = 0x5\n\tIFT_X25DDN                        = 0x4\n\tIFT_X25HUNTGROUP                  = 0x7a\n\tIFT_X25MLP                        = 0x79\n\tIFT_X25PLE                        = 0x28\n\tIFT_XETHER                        = 0x1a\n\tIGNBRK                            = 0x1\n\tIGNCR                             = 0x80\n\tIGNPAR                            = 0x4\n\tIMAXBEL                           = 0x2000\n\tINLCR                             = 0x40\n\tINPCK                             = 0x10\n\tIN_CLASSA_HOST                    = 0xffffff\n\tIN_CLASSA_MAX                     = 0x80\n\tIN_CLASSA_NET                     = 0xff000000\n\tIN_CLASSA_NSHIFT                  = 0x18\n\tIN_CLASSB_HOST                    = 0xffff\n\tIN_CLASSB_MAX                     = 0x10000\n\tIN_CLASSB_NET                     = 0xffff0000\n\tIN_CLASSB_NSHIFT                  = 0x10\n\tIN_CLASSC_HOST                    = 0xff\n\tIN_CLASSC_NET                     = 0xffffff00\n\tIN_CLASSC_NSHIFT                  = 0x8\n\tIN_CLASSD_HOST                    = 0xfffffff\n\tIN_CLASSD_NET                     = 0xf0000000\n\tIN_CLASSD_NSHIFT                  = 0x1c\n\tIN_LOOPBACKNET                    = 0x7f\n\tIN_RFC3021_HOST                   = 0x1\n\tIN_RFC3021_NET                    = 0xfffffffe\n\tIN_RFC3021_NSHIFT                 = 0x1f\n\tIPPROTO_AH                        = 0x33\n\tIPPROTO_CARP                      = 0x70\n\tIPPROTO_DIVERT                    = 0x102\n\tIPPROTO_DONE                      = 0x101\n\tIPPROTO_DSTOPTS                   = 0x3c\n\tIPPROTO_EGP                       = 0x8\n\tIPPROTO_ENCAP                     = 0x62\n\tIPPROTO_EON                       = 0x50\n\tIPPROTO_ESP                       = 0x32\n\tIPPROTO_ETHERIP                   = 0x61\n\tIPPROTO_FRAGMENT                  = 0x2c\n\tIPPROTO_GGP                       = 0x3\n\tIPPROTO_GRE                       = 0x2f\n\tIPPROTO_HOPOPTS                   = 0x0\n\tIPPROTO_ICMP                      = 0x1\n\tIPPROTO_ICMPV6                    = 0x3a\n\tIPPROTO_IDP                       = 0x16\n\tIPPROTO_IGMP                      = 0x2\n\tIPPROTO_IP                        = 0x0\n\tIPPROTO_IPCOMP                    = 0x6c\n\tIPPROTO_IPIP                      = 0x4\n\tIPPROTO_IPV4                      = 0x4\n\tIPPROTO_IPV6                      = 0x29\n\tIPPROTO_MAX                       = 0x100\n\tIPPROTO_MAXID                     = 0x103\n\tIPPROTO_MOBILE                    = 0x37\n\tIPPROTO_MPLS                      = 0x89\n\tIPPROTO_NONE                      = 0x3b\n\tIPPROTO_PFSYNC                    = 0xf0\n\tIPPROTO_PIM                       = 0x67\n\tIPPROTO_PUP                       = 0xc\n\tIPPROTO_RAW                       = 0xff\n\tIPPROTO_ROUTING                   = 0x2b\n\tIPPROTO_RSVP                      = 0x2e\n\tIPPROTO_SCTP                      = 0x84\n\tIPPROTO_TCP                       = 0x6\n\tIPPROTO_TP                        = 0x1d\n\tIPPROTO_UDP                       = 0x11\n\tIPPROTO_UDPLITE                   = 0x88\n\tIPV6_AUTH_LEVEL                   = 0x35\n\tIPV6_AUTOFLOWLABEL                = 0x3b\n\tIPV6_CHECKSUM                     = 0x1a\n\tIPV6_DEFAULT_MULTICAST_HOPS       = 0x1\n\tIPV6_DEFAULT_MULTICAST_LOOP       = 0x1\n\tIPV6_DEFHLIM                      = 0x40\n\tIPV6_DONTFRAG                     = 0x3e\n\tIPV6_DSTOPTS                      = 0x32\n\tIPV6_ESP_NETWORK_LEVEL            = 0x37\n\tIPV6_ESP_TRANS_LEVEL              = 0x36\n\tIPV6_FAITH                        = 0x1d\n\tIPV6_FLOWINFO_MASK                = 0xffffff0f\n\tIPV6_FLOWLABEL_MASK               = 0xffff0f00\n\tIPV6_FRAGTTL                      = 0x78\n\tIPV6_HLIMDEC                      = 0x1\n\tIPV6_HOPLIMIT                     = 0x2f\n\tIPV6_HOPOPTS                      = 0x31\n\tIPV6_IPCOMP_LEVEL                 = 0x3c\n\tIPV6_JOIN_GROUP                   = 0xc\n\tIPV6_LEAVE_GROUP                  = 0xd\n\tIPV6_MAXHLIM                      = 0xff\n\tIPV6_MAXPACKET                    = 0xffff\n\tIPV6_MINHOPCOUNT                  = 0x41\n\tIPV6_MMTU                         = 0x500\n\tIPV6_MULTICAST_HOPS               = 0xa\n\tIPV6_MULTICAST_IF                 = 0x9\n\tIPV6_MULTICAST_LOOP               = 0xb\n\tIPV6_NEXTHOP                      = 0x30\n\tIPV6_OPTIONS                      = 0x1\n\tIPV6_PATHMTU                      = 0x2c\n\tIPV6_PIPEX                        = 0x3f\n\tIPV6_PKTINFO                      = 0x2e\n\tIPV6_PORTRANGE                    = 0xe\n\tIPV6_PORTRANGE_DEFAULT            = 0x0\n\tIPV6_PORTRANGE_HIGH               = 0x1\n\tIPV6_PORTRANGE_LOW                = 0x2\n\tIPV6_RECVDSTOPTS                  = 0x28\n\tIPV6_RECVDSTPORT                  = 0x40\n\tIPV6_RECVHOPLIMIT                 = 0x25\n\tIPV6_RECVHOPOPTS                  = 0x27\n\tIPV6_RECVPATHMTU                  = 0x2b\n\tIPV6_RECVPKTINFO                  = 0x24\n\tIPV6_RECVRTHDR                    = 0x26\n\tIPV6_RECVTCLASS                   = 0x39\n\tIPV6_RTABLE                       = 0x1021\n\tIPV6_RTHDR                        = 0x33\n\tIPV6_RTHDRDSTOPTS                 = 0x23\n\tIPV6_RTHDR_LOOSE                  = 0x0\n\tIPV6_RTHDR_STRICT                 = 0x1\n\tIPV6_RTHDR_TYPE_0                 = 0x0\n\tIPV6_SOCKOPT_RESERVED1            = 0x3\n\tIPV6_TCLASS                       = 0x3d\n\tIPV6_UNICAST_HOPS                 = 0x4\n\tIPV6_USE_MIN_MTU                  = 0x2a\n\tIPV6_V6ONLY                       = 0x1b\n\tIPV6_VERSION                      = 0x60\n\tIPV6_VERSION_MASK                 = 0xf0\n\tIP_ADD_MEMBERSHIP                 = 0xc\n\tIP_AUTH_LEVEL                     = 0x14\n\tIP_DEFAULT_MULTICAST_LOOP         = 0x1\n\tIP_DEFAULT_MULTICAST_TTL          = 0x1\n\tIP_DF                             = 0x4000\n\tIP_DROP_MEMBERSHIP                = 0xd\n\tIP_ESP_NETWORK_LEVEL              = 0x16\n\tIP_ESP_TRANS_LEVEL                = 0x15\n\tIP_HDRINCL                        = 0x2\n\tIP_IPCOMP_LEVEL                   = 0x1d\n\tIP_IPDEFTTL                       = 0x25\n\tIP_IPSECFLOWINFO                  = 0x24\n\tIP_IPSEC_LOCAL_AUTH               = 0x1b\n\tIP_IPSEC_LOCAL_CRED               = 0x19\n\tIP_IPSEC_LOCAL_ID                 = 0x17\n\tIP_IPSEC_REMOTE_AUTH              = 0x1c\n\tIP_IPSEC_REMOTE_CRED              = 0x1a\n\tIP_IPSEC_REMOTE_ID                = 0x18\n\tIP_MAXPACKET                      = 0xffff\n\tIP_MAX_MEMBERSHIPS                = 0xfff\n\tIP_MF                             = 0x2000\n\tIP_MINTTL                         = 0x20\n\tIP_MIN_MEMBERSHIPS                = 0xf\n\tIP_MSS                            = 0x240\n\tIP_MULTICAST_IF                   = 0x9\n\tIP_MULTICAST_LOOP                 = 0xb\n\tIP_MULTICAST_TTL                  = 0xa\n\tIP_OFFMASK                        = 0x1fff\n\tIP_OPTIONS                        = 0x1\n\tIP_PIPEX                          = 0x22\n\tIP_PORTRANGE                      = 0x13\n\tIP_PORTRANGE_DEFAULT              = 0x0\n\tIP_PORTRANGE_HIGH                 = 0x1\n\tIP_PORTRANGE_LOW                  = 0x2\n\tIP_RECVDSTADDR                    = 0x7\n\tIP_RECVDSTPORT                    = 0x21\n\tIP_RECVIF                         = 0x1e\n\tIP_RECVOPTS                       = 0x5\n\tIP_RECVRETOPTS                    = 0x6\n\tIP_RECVRTABLE                     = 0x23\n\tIP_RECVTTL                        = 0x1f\n\tIP_RETOPTS                        = 0x8\n\tIP_RF                             = 0x8000\n\tIP_RTABLE                         = 0x1021\n\tIP_SENDSRCADDR                    = 0x7\n\tIP_TOS                            = 0x3\n\tIP_TTL                            = 0x4\n\tISIG                              = 0x80\n\tISTRIP                            = 0x20\n\tITIMER_PROF                       = 0x2\n\tITIMER_REAL                       = 0x0\n\tITIMER_VIRTUAL                    = 0x1\n\tIUCLC                             = 0x1000\n\tIXANY                             = 0x800\n\tIXOFF                             = 0x400\n\tIXON                              = 0x200\n\tKERN_HOSTNAME                     = 0xa\n\tKERN_OSRELEASE                    = 0x2\n\tKERN_OSTYPE                       = 0x1\n\tKERN_VERSION                      = 0x4\n\tLCNT_OVERLOAD_FLUSH               = 0x6\n\tLOCK_EX                           = 0x2\n\tLOCK_NB                           = 0x4\n\tLOCK_SH                           = 0x1\n\tLOCK_UN                           = 0x8\n\tMADV_DONTNEED                     = 0x4\n\tMADV_FREE                         = 0x6\n\tMADV_NORMAL                       = 0x0\n\tMADV_RANDOM                       = 0x1\n\tMADV_SEQUENTIAL                   = 0x2\n\tMADV_SPACEAVAIL                   = 0x5\n\tMADV_WILLNEED                     = 0x3\n\tMAP_ANON                          = 0x1000\n\tMAP_ANONYMOUS                     = 0x1000\n\tMAP_CONCEAL                       = 0x8000\n\tMAP_COPY                          = 0x2\n\tMAP_FILE                          = 0x0\n\tMAP_FIXED                         = 0x10\n\tMAP_FLAGMASK                      = 0xfff7\n\tMAP_HASSEMAPHORE                  = 0x0\n\tMAP_INHERIT                       = 0x0\n\tMAP_INHERIT_COPY                  = 0x1\n\tMAP_INHERIT_NONE                  = 0x2\n\tMAP_INHERIT_SHARE                 = 0x0\n\tMAP_INHERIT_ZERO                  = 0x3\n\tMAP_NOEXTEND                      = 0x0\n\tMAP_NORESERVE                     = 0x0\n\tMAP_PRIVATE                       = 0x2\n\tMAP_RENAME                        = 0x0\n\tMAP_SHARED                        = 0x1\n\tMAP_STACK                         = 0x4000\n\tMAP_TRYFIXED                      = 0x0\n\tMCL_CURRENT                       = 0x1\n\tMCL_FUTURE                        = 0x2\n\tMNT_ASYNC                         = 0x40\n\tMNT_DEFEXPORTED                   = 0x200\n\tMNT_DELEXPORT                     = 0x20000\n\tMNT_DOOMED                        = 0x8000000\n\tMNT_EXPORTANON                    = 0x400\n\tMNT_EXPORTED                      = 0x100\n\tMNT_EXRDONLY                      = 0x80\n\tMNT_FORCE                         = 0x80000\n\tMNT_LAZY                          = 0x3\n\tMNT_LOCAL                         = 0x1000\n\tMNT_NOATIME                       = 0x8000\n\tMNT_NODEV                         = 0x10\n\tMNT_NOEXEC                        = 0x4\n\tMNT_NOPERM                        = 0x20\n\tMNT_NOSUID                        = 0x8\n\tMNT_NOWAIT                        = 0x2\n\tMNT_QUOTA                         = 0x2000\n\tMNT_RDONLY                        = 0x1\n\tMNT_RELOAD                        = 0x40000\n\tMNT_ROOTFS                        = 0x4000\n\tMNT_SOFTDEP                       = 0x4000000\n\tMNT_STALLED                       = 0x100000\n\tMNT_SWAPPABLE                     = 0x200000\n\tMNT_SYNCHRONOUS                   = 0x2\n\tMNT_UPDATE                        = 0x10000\n\tMNT_VISFLAGMASK                   = 0x400ffff\n\tMNT_WAIT                          = 0x1\n\tMNT_WANTRDWR                      = 0x2000000\n\tMNT_WXALLOWED                     = 0x800\n\tMOUNT_AFS                         = \"afs\"\n\tMOUNT_CD9660                      = \"cd9660\"\n\tMOUNT_EXT2FS                      = \"ext2fs\"\n\tMOUNT_FFS                         = \"ffs\"\n\tMOUNT_FUSEFS                      = \"fuse\"\n\tMOUNT_MFS                         = \"mfs\"\n\tMOUNT_MSDOS                       = \"msdos\"\n\tMOUNT_NCPFS                       = \"ncpfs\"\n\tMOUNT_NFS                         = \"nfs\"\n\tMOUNT_NTFS                        = \"ntfs\"\n\tMOUNT_TMPFS                       = \"tmpfs\"\n\tMOUNT_UDF                         = \"udf\"\n\tMOUNT_UFS                         = \"ffs\"\n\tMSG_BCAST                         = 0x100\n\tMSG_CMSG_CLOEXEC                  = 0x800\n\tMSG_CTRUNC                        = 0x20\n\tMSG_DONTROUTE                     = 0x4\n\tMSG_DONTWAIT                      = 0x80\n\tMSG_EOR                           = 0x8\n\tMSG_MCAST                         = 0x200\n\tMSG_NOSIGNAL                      = 0x400\n\tMSG_OOB                           = 0x1\n\tMSG_PEEK                          = 0x2\n\tMSG_TRUNC                         = 0x10\n\tMSG_WAITALL                       = 0x40\n\tMS_ASYNC                          = 0x1\n\tMS_INVALIDATE                     = 0x4\n\tMS_SYNC                           = 0x2\n\tNAME_MAX                          = 0xff\n\tNET_RT_DUMP                       = 0x1\n\tNET_RT_FLAGS                      = 0x2\n\tNET_RT_IFLIST                     = 0x3\n\tNET_RT_IFNAMES                    = 0x6\n\tNET_RT_MAXID                      = 0x8\n\tNET_RT_SOURCE                     = 0x7\n\tNET_RT_STATS                      = 0x4\n\tNET_RT_TABLE                      = 0x5\n\tNFDBITS                           = 0x20\n\tNOFLSH                            = 0x80000000\n\tNOKERNINFO                        = 0x2000000\n\tNOTE_ATTRIB                       = 0x8\n\tNOTE_CHANGE                       = 0x1\n\tNOTE_CHILD                        = 0x4\n\tNOTE_DELETE                       = 0x1\n\tNOTE_EOF                          = 0x2\n\tNOTE_EXEC                         = 0x20000000\n\tNOTE_EXIT                         = 0x80000000\n\tNOTE_EXTEND                       = 0x4\n\tNOTE_FORK                         = 0x40000000\n\tNOTE_LINK                         = 0x10\n\tNOTE_LOWAT                        = 0x1\n\tNOTE_OOB                          = 0x4\n\tNOTE_PCTRLMASK                    = 0xf0000000\n\tNOTE_PDATAMASK                    = 0xfffff\n\tNOTE_RENAME                       = 0x20\n\tNOTE_REVOKE                       = 0x40\n\tNOTE_TRACK                        = 0x1\n\tNOTE_TRACKERR                     = 0x2\n\tNOTE_TRUNCATE                     = 0x80\n\tNOTE_WRITE                        = 0x2\n\tOCRNL                             = 0x10\n\tOLCUC                             = 0x20\n\tONLCR                             = 0x2\n\tONLRET                            = 0x80\n\tONOCR                             = 0x40\n\tONOEOT                            = 0x8\n\tOPOST                             = 0x1\n\tOXTABS                            = 0x4\n\tO_ACCMODE                         = 0x3\n\tO_APPEND                          = 0x8\n\tO_ASYNC                           = 0x40\n\tO_CLOEXEC                         = 0x10000\n\tO_CREAT                           = 0x200\n\tO_DIRECTORY                       = 0x20000\n\tO_DSYNC                           = 0x80\n\tO_EXCL                            = 0x800\n\tO_EXLOCK                          = 0x20\n\tO_FSYNC                           = 0x80\n\tO_NDELAY                          = 0x4\n\tO_NOCTTY                          = 0x8000\n\tO_NOFOLLOW                        = 0x100\n\tO_NONBLOCK                        = 0x4\n\tO_RDONLY                          = 0x0\n\tO_RDWR                            = 0x2\n\tO_RSYNC                           = 0x80\n\tO_SHLOCK                          = 0x10\n\tO_SYNC                            = 0x80\n\tO_TRUNC                           = 0x400\n\tO_WRONLY                          = 0x1\n\tPARENB                            = 0x1000\n\tPARMRK                            = 0x8\n\tPARODD                            = 0x2000\n\tPENDIN                            = 0x20000000\n\tPF_FLUSH                          = 0x1\n\tPRIO_PGRP                         = 0x1\n\tPRIO_PROCESS                      = 0x0\n\tPRIO_USER                         = 0x2\n\tPROT_EXEC                         = 0x4\n\tPROT_NONE                         = 0x0\n\tPROT_READ                         = 0x1\n\tPROT_WRITE                        = 0x2\n\tRLIMIT_CORE                       = 0x4\n\tRLIMIT_CPU                        = 0x0\n\tRLIMIT_DATA                       = 0x2\n\tRLIMIT_FSIZE                      = 0x1\n\tRLIMIT_MEMLOCK                    = 0x6\n\tRLIMIT_NOFILE                     = 0x8\n\tRLIMIT_NPROC                      = 0x7\n\tRLIMIT_RSS                        = 0x5\n\tRLIMIT_STACK                      = 0x3\n\tRLIM_INFINITY                     = 0x7fffffffffffffff\n\tRTAX_AUTHOR                       = 0x6\n\tRTAX_BFD                          = 0xb\n\tRTAX_BRD                          = 0x7\n\tRTAX_DNS                          = 0xc\n\tRTAX_DST                          = 0x0\n\tRTAX_GATEWAY                      = 0x1\n\tRTAX_GENMASK                      = 0x3\n\tRTAX_IFA                          = 0x5\n\tRTAX_IFP                          = 0x4\n\tRTAX_LABEL                        = 0xa\n\tRTAX_MAX                          = 0xf\n\tRTAX_NETMASK                      = 0x2\n\tRTAX_SEARCH                       = 0xe\n\tRTAX_SRC                          = 0x8\n\tRTAX_SRCMASK                      = 0x9\n\tRTAX_STATIC                       = 0xd\n\tRTA_AUTHOR                        = 0x40\n\tRTA_BFD                           = 0x800\n\tRTA_BRD                           = 0x80\n\tRTA_DNS                           = 0x1000\n\tRTA_DST                           = 0x1\n\tRTA_GATEWAY                       = 0x2\n\tRTA_GENMASK                       = 0x8\n\tRTA_IFA                           = 0x20\n\tRTA_IFP                           = 0x10\n\tRTA_LABEL                         = 0x400\n\tRTA_NETMASK                       = 0x4\n\tRTA_SEARCH                        = 0x4000\n\tRTA_SRC                           = 0x100\n\tRTA_SRCMASK                       = 0x200\n\tRTA_STATIC                        = 0x2000\n\tRTF_ANNOUNCE                      = 0x4000\n\tRTF_BFD                           = 0x1000000\n\tRTF_BLACKHOLE                     = 0x1000\n\tRTF_BROADCAST                     = 0x400000\n\tRTF_CACHED                        = 0x20000\n\tRTF_CLONED                        = 0x10000\n\tRTF_CLONING                       = 0x100\n\tRTF_CONNECTED                     = 0x800000\n\tRTF_DONE                          = 0x40\n\tRTF_DYNAMIC                       = 0x10\n\tRTF_FMASK                         = 0x110fc08\n\tRTF_GATEWAY                       = 0x2\n\tRTF_HOST                          = 0x4\n\tRTF_LLINFO                        = 0x400\n\tRTF_LOCAL                         = 0x200000\n\tRTF_MODIFIED                      = 0x20\n\tRTF_MPATH                         = 0x40000\n\tRTF_MPLS                          = 0x100000\n\tRTF_MULTICAST                     = 0x200\n\tRTF_PERMANENT_ARP                 = 0x2000\n\tRTF_PROTO1                        = 0x8000\n\tRTF_PROTO2                        = 0x4000\n\tRTF_PROTO3                        = 0x2000\n\tRTF_REJECT                        = 0x8\n\tRTF_STATIC                        = 0x800\n\tRTF_UP                            = 0x1\n\tRTF_USETRAILERS                   = 0x8000\n\tRTM_80211INFO                     = 0x15\n\tRTM_ADD                           = 0x1\n\tRTM_BFD                           = 0x12\n\tRTM_CHANGE                        = 0x3\n\tRTM_CHGADDRATTR                   = 0x14\n\tRTM_DELADDR                       = 0xd\n\tRTM_DELETE                        = 0x2\n\tRTM_DESYNC                        = 0x10\n\tRTM_GET                           = 0x4\n\tRTM_IFANNOUNCE                    = 0xf\n\tRTM_IFINFO                        = 0xe\n\tRTM_INVALIDATE                    = 0x11\n\tRTM_LOSING                        = 0x5\n\tRTM_MAXSIZE                       = 0x800\n\tRTM_MISS                          = 0x7\n\tRTM_NEWADDR                       = 0xc\n\tRTM_PROPOSAL                      = 0x13\n\tRTM_REDIRECT                      = 0x6\n\tRTM_RESOLVE                       = 0xb\n\tRTM_SOURCE                        = 0x16\n\tRTM_VERSION                       = 0x5\n\tRTV_EXPIRE                        = 0x4\n\tRTV_HOPCOUNT                      = 0x2\n\tRTV_MTU                           = 0x1\n\tRTV_RPIPE                         = 0x8\n\tRTV_RTT                           = 0x40\n\tRTV_RTTVAR                        = 0x80\n\tRTV_SPIPE                         = 0x10\n\tRTV_SSTHRESH                      = 0x20\n\tRT_TABLEID_BITS                   = 0x8\n\tRT_TABLEID_MASK                   = 0xff\n\tRT_TABLEID_MAX                    = 0xff\n\tRUSAGE_CHILDREN                   = -0x1\n\tRUSAGE_SELF                       = 0x0\n\tRUSAGE_THREAD                     = 0x1\n\tSCM_RIGHTS                        = 0x1\n\tSCM_TIMESTAMP                     = 0x4\n\tSEEK_CUR                          = 0x1\n\tSEEK_END                          = 0x2\n\tSEEK_SET                          = 0x0\n\tSHUT_RD                           = 0x0\n\tSHUT_RDWR                         = 0x2\n\tSHUT_WR                           = 0x1\n\tSIOCADDMULTI                      = 0x80206931\n\tSIOCAIFADDR                       = 0x8040691a\n\tSIOCAIFGROUP                      = 0x80286987\n\tSIOCATMARK                        = 0x40047307\n\tSIOCBRDGADD                       = 0x8060693c\n\tSIOCBRDGADDL                      = 0x80606949\n\tSIOCBRDGADDS                      = 0x80606941\n\tSIOCBRDGARL                       = 0x808c694d\n\tSIOCBRDGDADDR                     = 0x81286947\n\tSIOCBRDGDEL                       = 0x8060693d\n\tSIOCBRDGDELS                      = 0x80606942\n\tSIOCBRDGFLUSH                     = 0x80606948\n\tSIOCBRDGFRL                       = 0x808c694e\n\tSIOCBRDGGCACHE                    = 0xc0146941\n\tSIOCBRDGGFD                       = 0xc0146952\n\tSIOCBRDGGHT                       = 0xc0146951\n\tSIOCBRDGGIFFLGS                   = 0xc060693e\n\tSIOCBRDGGMA                       = 0xc0146953\n\tSIOCBRDGGPARAM                    = 0xc0406958\n\tSIOCBRDGGPRI                      = 0xc0146950\n\tSIOCBRDGGRL                       = 0xc030694f\n\tSIOCBRDGGTO                       = 0xc0146946\n\tSIOCBRDGIFS                       = 0xc0606942\n\tSIOCBRDGRTS                       = 0xc0206943\n\tSIOCBRDGSADDR                     = 0xc1286944\n\tSIOCBRDGSCACHE                    = 0x80146940\n\tSIOCBRDGSFD                       = 0x80146952\n\tSIOCBRDGSHT                       = 0x80146951\n\tSIOCBRDGSIFCOST                   = 0x80606955\n\tSIOCBRDGSIFFLGS                   = 0x8060693f\n\tSIOCBRDGSIFPRIO                   = 0x80606954\n\tSIOCBRDGSIFPROT                   = 0x8060694a\n\tSIOCBRDGSMA                       = 0x80146953\n\tSIOCBRDGSPRI                      = 0x80146950\n\tSIOCBRDGSPROTO                    = 0x8014695a\n\tSIOCBRDGSTO                       = 0x80146945\n\tSIOCBRDGSTXHC                     = 0x80146959\n\tSIOCDELLABEL                      = 0x80206997\n\tSIOCDELMULTI                      = 0x80206932\n\tSIOCDIFADDR                       = 0x80206919\n\tSIOCDIFGROUP                      = 0x80286989\n\tSIOCDIFPARENT                     = 0x802069b4\n\tSIOCDIFPHYADDR                    = 0x80206949\n\tSIOCDPWE3NEIGHBOR                 = 0x802069de\n\tSIOCDVNETID                       = 0x802069af\n\tSIOCGETKALIVE                     = 0xc01869a4\n\tSIOCGETLABEL                      = 0x8020699a\n\tSIOCGETMPWCFG                     = 0xc02069ae\n\tSIOCGETPFLOW                      = 0xc02069fe\n\tSIOCGETPFSYNC                     = 0xc02069f8\n\tSIOCGETSGCNT                      = 0xc0207534\n\tSIOCGETVIFCNT                     = 0xc0287533\n\tSIOCGETVLAN                       = 0xc0206990\n\tSIOCGIFADDR                       = 0xc0206921\n\tSIOCGIFBRDADDR                    = 0xc0206923\n\tSIOCGIFCONF                       = 0xc0106924\n\tSIOCGIFDATA                       = 0xc020691b\n\tSIOCGIFDESCR                      = 0xc0206981\n\tSIOCGIFDSTADDR                    = 0xc0206922\n\tSIOCGIFFLAGS                      = 0xc0206911\n\tSIOCGIFGATTR                      = 0xc028698b\n\tSIOCGIFGENERIC                    = 0xc020693a\n\tSIOCGIFGLIST                      = 0xc028698d\n\tSIOCGIFGMEMB                      = 0xc028698a\n\tSIOCGIFGROUP                      = 0xc0286988\n\tSIOCGIFHARDMTU                    = 0xc02069a5\n\tSIOCGIFLLPRIO                     = 0xc02069b6\n\tSIOCGIFMEDIA                      = 0xc0406938\n\tSIOCGIFMETRIC                     = 0xc0206917\n\tSIOCGIFMTU                        = 0xc020697e\n\tSIOCGIFNETMASK                    = 0xc0206925\n\tSIOCGIFPAIR                       = 0xc02069b1\n\tSIOCGIFPARENT                     = 0xc02069b3\n\tSIOCGIFPRIORITY                   = 0xc020699c\n\tSIOCGIFRDOMAIN                    = 0xc02069a0\n\tSIOCGIFRTLABEL                    = 0xc0206983\n\tSIOCGIFRXR                        = 0x802069aa\n\tSIOCGIFSFFPAGE                    = 0xc1126939\n\tSIOCGIFXFLAGS                     = 0xc020699e\n\tSIOCGLIFPHYADDR                   = 0xc218694b\n\tSIOCGLIFPHYDF                     = 0xc02069c2\n\tSIOCGLIFPHYECN                    = 0xc02069c8\n\tSIOCGLIFPHYRTABLE                 = 0xc02069a2\n\tSIOCGLIFPHYTTL                    = 0xc02069a9\n\tSIOCGPGRP                         = 0x40047309\n\tSIOCGPWE3                         = 0xc0206998\n\tSIOCGPWE3CTRLWORD                 = 0xc02069dc\n\tSIOCGPWE3FAT                      = 0xc02069dd\n\tSIOCGPWE3NEIGHBOR                 = 0xc21869de\n\tSIOCGRXHPRIO                      = 0xc02069db\n\tSIOCGSPPPPARAMS                   = 0xc0206994\n\tSIOCGTXHPRIO                      = 0xc02069c6\n\tSIOCGUMBINFO                      = 0xc02069be\n\tSIOCGUMBPARAM                     = 0xc02069c0\n\tSIOCGVH                           = 0xc02069f6\n\tSIOCGVNETFLOWID                   = 0xc02069c4\n\tSIOCGVNETID                       = 0xc02069a7\n\tSIOCIFAFATTACH                    = 0x801169ab\n\tSIOCIFAFDETACH                    = 0x801169ac\n\tSIOCIFCREATE                      = 0x8020697a\n\tSIOCIFDESTROY                     = 0x80206979\n\tSIOCIFGCLONERS                    = 0xc0106978\n\tSIOCSETKALIVE                     = 0x801869a3\n\tSIOCSETLABEL                      = 0x80206999\n\tSIOCSETMPWCFG                     = 0x802069ad\n\tSIOCSETPFLOW                      = 0x802069fd\n\tSIOCSETPFSYNC                     = 0x802069f7\n\tSIOCSETVLAN                       = 0x8020698f\n\tSIOCSIFADDR                       = 0x8020690c\n\tSIOCSIFBRDADDR                    = 0x80206913\n\tSIOCSIFDESCR                      = 0x80206980\n\tSIOCSIFDSTADDR                    = 0x8020690e\n\tSIOCSIFFLAGS                      = 0x80206910\n\tSIOCSIFGATTR                      = 0x8028698c\n\tSIOCSIFGENERIC                    = 0x80206939\n\tSIOCSIFLLADDR                     = 0x8020691f\n\tSIOCSIFLLPRIO                     = 0x802069b5\n\tSIOCSIFMEDIA                      = 0xc0206937\n\tSIOCSIFMETRIC                     = 0x80206918\n\tSIOCSIFMTU                        = 0x8020697f\n\tSIOCSIFNETMASK                    = 0x80206916\n\tSIOCSIFPAIR                       = 0x802069b0\n\tSIOCSIFPARENT                     = 0x802069b2\n\tSIOCSIFPRIORITY                   = 0x8020699b\n\tSIOCSIFRDOMAIN                    = 0x8020699f\n\tSIOCSIFRTLABEL                    = 0x80206982\n\tSIOCSIFXFLAGS                     = 0x8020699d\n\tSIOCSLIFPHYADDR                   = 0x8218694a\n\tSIOCSLIFPHYDF                     = 0x802069c1\n\tSIOCSLIFPHYECN                    = 0x802069c7\n\tSIOCSLIFPHYRTABLE                 = 0x802069a1\n\tSIOCSLIFPHYTTL                    = 0x802069a8\n\tSIOCSPGRP                         = 0x80047308\n\tSIOCSPWE3CTRLWORD                 = 0x802069dc\n\tSIOCSPWE3FAT                      = 0x802069dd\n\tSIOCSPWE3NEIGHBOR                 = 0x821869de\n\tSIOCSRXHPRIO                      = 0x802069db\n\tSIOCSSPPPPARAMS                   = 0x80206993\n\tSIOCSTXHPRIO                      = 0x802069c5\n\tSIOCSUMBPARAM                     = 0x802069bf\n\tSIOCSVH                           = 0xc02069f5\n\tSIOCSVNETFLOWID                   = 0x802069c3\n\tSIOCSVNETID                       = 0x802069a6\n\tSOCK_CLOEXEC                      = 0x8000\n\tSOCK_DGRAM                        = 0x2\n\tSOCK_DNS                          = 0x1000\n\tSOCK_NONBLOCK                     = 0x4000\n\tSOCK_RAW                          = 0x3\n\tSOCK_RDM                          = 0x4\n\tSOCK_SEQPACKET                    = 0x5\n\tSOCK_STREAM                       = 0x1\n\tSOL_SOCKET                        = 0xffff\n\tSOMAXCONN                         = 0x80\n\tSO_ACCEPTCONN                     = 0x2\n\tSO_BINDANY                        = 0x1000\n\tSO_BROADCAST                      = 0x20\n\tSO_DEBUG                          = 0x1\n\tSO_DOMAIN                         = 0x1024\n\tSO_DONTROUTE                      = 0x10\n\tSO_ERROR                          = 0x1007\n\tSO_KEEPALIVE                      = 0x8\n\tSO_LINGER                         = 0x80\n\tSO_NETPROC                        = 0x1020\n\tSO_OOBINLINE                      = 0x100\n\tSO_PEERCRED                       = 0x1022\n\tSO_PROTOCOL                       = 0x1025\n\tSO_RCVBUF                         = 0x1002\n\tSO_RCVLOWAT                       = 0x1004\n\tSO_RCVTIMEO                       = 0x1006\n\tSO_REUSEADDR                      = 0x4\n\tSO_REUSEPORT                      = 0x200\n\tSO_RTABLE                         = 0x1021\n\tSO_SNDBUF                         = 0x1001\n\tSO_SNDLOWAT                       = 0x1003\n\tSO_SNDTIMEO                       = 0x1005\n\tSO_SPLICE                         = 0x1023\n\tSO_TIMESTAMP                      = 0x800\n\tSO_TYPE                           = 0x1008\n\tSO_USELOOPBACK                    = 0x40\n\tSO_ZEROIZE                        = 0x2000\n\tS_BLKSIZE                         = 0x200\n\tS_IEXEC                           = 0x40\n\tS_IFBLK                           = 0x6000\n\tS_IFCHR                           = 0x2000\n\tS_IFDIR                           = 0x4000\n\tS_IFIFO                           = 0x1000\n\tS_IFLNK                           = 0xa000\n\tS_IFMT                            = 0xf000\n\tS_IFREG                           = 0x8000\n\tS_IFSOCK                          = 0xc000\n\tS_IREAD                           = 0x100\n\tS_IRGRP                           = 0x20\n\tS_IROTH                           = 0x4\n\tS_IRUSR                           = 0x100\n\tS_IRWXG                           = 0x38\n\tS_IRWXO                           = 0x7\n\tS_IRWXU                           = 0x1c0\n\tS_ISGID                           = 0x400\n\tS_ISTXT                           = 0x200\n\tS_ISUID                           = 0x800\n\tS_ISVTX                           = 0x200\n\tS_IWGRP                           = 0x10\n\tS_IWOTH                           = 0x2\n\tS_IWRITE                          = 0x80\n\tS_IWUSR                           = 0x80\n\tS_IXGRP                           = 0x8\n\tS_IXOTH                           = 0x1\n\tS_IXUSR                           = 0x40\n\tTCIFLUSH                          = 0x1\n\tTCIOFF                            = 0x3\n\tTCIOFLUSH                         = 0x3\n\tTCION                             = 0x4\n\tTCOFLUSH                          = 0x2\n\tTCOOFF                            = 0x1\n\tTCOON                             = 0x2\n\tTCPOPT_EOL                        = 0x0\n\tTCPOPT_MAXSEG                     = 0x2\n\tTCPOPT_NOP                        = 0x1\n\tTCPOPT_SACK                       = 0x5\n\tTCPOPT_SACK_HDR                   = 0x1010500\n\tTCPOPT_SACK_PERMITTED             = 0x4\n\tTCPOPT_SACK_PERMIT_HDR            = 0x1010402\n\tTCPOPT_SIGNATURE                  = 0x13\n\tTCPOPT_TIMESTAMP                  = 0x8\n\tTCPOPT_TSTAMP_HDR                 = 0x101080a\n\tTCPOPT_WINDOW                     = 0x3\n\tTCP_INFO                          = 0x9\n\tTCP_MAXSEG                        = 0x2\n\tTCP_MAXWIN                        = 0xffff\n\tTCP_MAX_SACK                      = 0x3\n\tTCP_MAX_WINSHIFT                  = 0xe\n\tTCP_MD5SIG                        = 0x4\n\tTCP_MSS                           = 0x200\n\tTCP_NODELAY                       = 0x1\n\tTCP_NOPUSH                        = 0x10\n\tTCP_SACKHOLE_LIMIT                = 0x80\n\tTCP_SACK_ENABLE                   = 0x8\n\tTCSAFLUSH                         = 0x2\n\tTIMER_ABSTIME                     = 0x1\n\tTIMER_RELTIME                     = 0x0\n\tTIOCCBRK                          = 0x2000747a\n\tTIOCCDTR                          = 0x20007478\n\tTIOCCHKVERAUTH                    = 0x2000741e\n\tTIOCCLRVERAUTH                    = 0x2000741d\n\tTIOCCONS                          = 0x80047462\n\tTIOCDRAIN                         = 0x2000745e\n\tTIOCEXCL                          = 0x2000740d\n\tTIOCEXT                           = 0x80047460\n\tTIOCFLAG_CLOCAL                   = 0x2\n\tTIOCFLAG_CRTSCTS                  = 0x4\n\tTIOCFLAG_MDMBUF                   = 0x8\n\tTIOCFLAG_PPS                      = 0x10\n\tTIOCFLAG_SOFTCAR                  = 0x1\n\tTIOCFLUSH                         = 0x80047410\n\tTIOCGETA                          = 0x402c7413\n\tTIOCGETD                          = 0x4004741a\n\tTIOCGFLAGS                        = 0x4004745d\n\tTIOCGPGRP                         = 0x40047477\n\tTIOCGSID                          = 0x40047463\n\tTIOCGTSTAMP                       = 0x4010745b\n\tTIOCGWINSZ                        = 0x40087468\n\tTIOCMBIC                          = 0x8004746b\n\tTIOCMBIS                          = 0x8004746c\n\tTIOCMGET                          = 0x4004746a\n\tTIOCMODG                          = 0x4004746a\n\tTIOCMODS                          = 0x8004746d\n\tTIOCMSET                          = 0x8004746d\n\tTIOCM_CAR                         = 0x40\n\tTIOCM_CD                          = 0x40\n\tTIOCM_CTS                         = 0x20\n\tTIOCM_DSR                         = 0x100\n\tTIOCM_DTR                         = 0x2\n\tTIOCM_LE                          = 0x1\n\tTIOCM_RI                          = 0x80\n\tTIOCM_RNG                         = 0x80\n\tTIOCM_RTS                         = 0x4\n\tTIOCM_SR                          = 0x10\n\tTIOCM_ST                          = 0x8\n\tTIOCNOTTY                         = 0x20007471\n\tTIOCNXCL                          = 0x2000740e\n\tTIOCOUTQ                          = 0x40047473\n\tTIOCPKT                           = 0x80047470\n\tTIOCPKT_DATA                      = 0x0\n\tTIOCPKT_DOSTOP                    = 0x20\n\tTIOCPKT_FLUSHREAD                 = 0x1\n\tTIOCPKT_FLUSHWRITE                = 0x2\n\tTIOCPKT_IOCTL                     = 0x40\n\tTIOCPKT_NOSTOP                    = 0x10\n\tTIOCPKT_START                     = 0x8\n\tTIOCPKT_STOP                      = 0x4\n\tTIOCREMOTE                        = 0x80047469\n\tTIOCSBRK                          = 0x2000747b\n\tTIOCSCTTY                         = 0x20007461\n\tTIOCSDTR                          = 0x20007479\n\tTIOCSETA                          = 0x802c7414\n\tTIOCSETAF                         = 0x802c7416\n\tTIOCSETAW                         = 0x802c7415\n\tTIOCSETD                          = 0x8004741b\n\tTIOCSETVERAUTH                    = 0x8004741c\n\tTIOCSFLAGS                        = 0x8004745c\n\tTIOCSIG                           = 0x8004745f\n\tTIOCSPGRP                         = 0x80047476\n\tTIOCSTART                         = 0x2000746e\n\tTIOCSTAT                          = 0x20007465\n\tTIOCSTOP                          = 0x2000746f\n\tTIOCSTSTAMP                       = 0x8008745a\n\tTIOCSWINSZ                        = 0x80087467\n\tTIOCUCNTL                         = 0x80047466\n\tTIOCUCNTL_CBRK                    = 0x7a\n\tTIOCUCNTL_SBRK                    = 0x7b\n\tTOSTOP                            = 0x400000\n\tUTIME_NOW                         = -0x2\n\tUTIME_OMIT                        = -0x1\n\tVDISCARD                          = 0xf\n\tVDSUSP                            = 0xb\n\tVEOF                              = 0x0\n\tVEOL                              = 0x1\n\tVEOL2                             = 0x2\n\tVERASE                            = 0x3\n\tVINTR                             = 0x8\n\tVKILL                             = 0x5\n\tVLNEXT                            = 0xe\n\tVMIN                              = 0x10\n\tVM_ANONMIN                        = 0x7\n\tVM_LOADAVG                        = 0x2\n\tVM_MALLOC_CONF                    = 0xc\n\tVM_MAXID                          = 0xd\n\tVM_MAXSLP                         = 0xa\n\tVM_METER                          = 0x1\n\tVM_NKMEMPAGES                     = 0x6\n\tVM_PSSTRINGS                      = 0x3\n\tVM_SWAPENCRYPT                    = 0x5\n\tVM_USPACE                         = 0xb\n\tVM_UVMEXP                         = 0x4\n\tVM_VNODEMIN                       = 0x9\n\tVM_VTEXTMIN                       = 0x8\n\tVQUIT                             = 0x9\n\tVREPRINT                          = 0x6\n\tVSTART                            = 0xc\n\tVSTATUS                           = 0x12\n\tVSTOP                             = 0xd\n\tVSUSP                             = 0xa\n\tVTIME                             = 0x11\n\tVWERASE                           = 0x4\n\tWALTSIG                           = 0x4\n\tWCONTINUED                        = 0x8\n\tWCOREFLAG                         = 0x80\n\tWNOHANG                           = 0x1\n\tWUNTRACED                         = 0x2\n\tXCASE                             = 0x1000000\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x30)\n\tEADDRNOTAVAIL   = syscall.Errno(0x31)\n\tEAFNOSUPPORT    = syscall.Errno(0x2f)\n\tEAGAIN          = syscall.Errno(0x23)\n\tEALREADY        = syscall.Errno(0x25)\n\tEAUTH           = syscall.Errno(0x50)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADMSG         = syscall.Errno(0x5c)\n\tEBADRPC         = syscall.Errno(0x48)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x58)\n\tECHILD          = syscall.Errno(0xa)\n\tECONNABORTED    = syscall.Errno(0x35)\n\tECONNREFUSED    = syscall.Errno(0x3d)\n\tECONNRESET      = syscall.Errno(0x36)\n\tEDEADLK         = syscall.Errno(0xb)\n\tEDESTADDRREQ    = syscall.Errno(0x27)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x45)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEFTYPE          = syscall.Errno(0x4f)\n\tEHOSTDOWN       = syscall.Errno(0x40)\n\tEHOSTUNREACH    = syscall.Errno(0x41)\n\tEIDRM           = syscall.Errno(0x59)\n\tEILSEQ          = syscall.Errno(0x54)\n\tEINPROGRESS     = syscall.Errno(0x24)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEIPSEC          = syscall.Errno(0x52)\n\tEISCONN         = syscall.Errno(0x38)\n\tEISDIR          = syscall.Errno(0x15)\n\tELAST           = syscall.Errno(0x5f)\n\tELOOP           = syscall.Errno(0x3e)\n\tEMEDIUMTYPE     = syscall.Errno(0x56)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x28)\n\tENAMETOOLONG    = syscall.Errno(0x3f)\n\tENEEDAUTH       = syscall.Errno(0x51)\n\tENETDOWN        = syscall.Errno(0x32)\n\tENETRESET       = syscall.Errno(0x34)\n\tENETUNREACH     = syscall.Errno(0x33)\n\tENFILE          = syscall.Errno(0x17)\n\tENOATTR         = syscall.Errno(0x53)\n\tENOBUFS         = syscall.Errno(0x37)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x4d)\n\tENOMEDIUM       = syscall.Errno(0x55)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x5a)\n\tENOPROTOOPT     = syscall.Errno(0x2a)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSYS          = syscall.Errno(0x4e)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x39)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x42)\n\tENOTRECOVERABLE = syscall.Errno(0x5d)\n\tENOTSOCK        = syscall.Errno(0x26)\n\tENOTSUP         = syscall.Errno(0x5b)\n\tENOTTY          = syscall.Errno(0x19)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x2d)\n\tEOVERFLOW       = syscall.Errno(0x57)\n\tEOWNERDEAD      = syscall.Errno(0x5e)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x2e)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROCLIM        = syscall.Errno(0x43)\n\tEPROCUNAVAIL    = syscall.Errno(0x4c)\n\tEPROGMISMATCH   = syscall.Errno(0x4b)\n\tEPROGUNAVAIL    = syscall.Errno(0x4a)\n\tEPROTO          = syscall.Errno(0x5f)\n\tEPROTONOSUPPORT = syscall.Errno(0x2b)\n\tEPROTOTYPE      = syscall.Errno(0x29)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMOTE         = syscall.Errno(0x47)\n\tEROFS           = syscall.Errno(0x1e)\n\tERPCMISMATCH    = syscall.Errno(0x49)\n\tESHUTDOWN       = syscall.Errno(0x3a)\n\tESOCKTNOSUPPORT = syscall.Errno(0x2c)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESTALE          = syscall.Errno(0x46)\n\tETIMEDOUT       = syscall.Errno(0x3c)\n\tETOOMANYREFS    = syscall.Errno(0x3b)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUSERS          = syscall.Errno(0x44)\n\tEWOULDBLOCK     = syscall.Errno(0x23)\n\tEXDEV           = syscall.Errno(0x12)\n)\n\n// Signals\nconst (\n\tSIGABRT   = syscall.Signal(0x6)\n\tSIGALRM   = syscall.Signal(0xe)\n\tSIGBUS    = syscall.Signal(0xa)\n\tSIGCHLD   = syscall.Signal(0x14)\n\tSIGCONT   = syscall.Signal(0x13)\n\tSIGEMT    = syscall.Signal(0x7)\n\tSIGFPE    = syscall.Signal(0x8)\n\tSIGHUP    = syscall.Signal(0x1)\n\tSIGILL    = syscall.Signal(0x4)\n\tSIGINFO   = syscall.Signal(0x1d)\n\tSIGINT    = syscall.Signal(0x2)\n\tSIGIO     = syscall.Signal(0x17)\n\tSIGIOT    = syscall.Signal(0x6)\n\tSIGKILL   = syscall.Signal(0x9)\n\tSIGPIPE   = syscall.Signal(0xd)\n\tSIGPROF   = syscall.Signal(0x1b)\n\tSIGQUIT   = syscall.Signal(0x3)\n\tSIGSEGV   = syscall.Signal(0xb)\n\tSIGSTOP   = syscall.Signal(0x11)\n\tSIGSYS    = syscall.Signal(0xc)\n\tSIGTERM   = syscall.Signal(0xf)\n\tSIGTHR    = syscall.Signal(0x20)\n\tSIGTRAP   = syscall.Signal(0x5)\n\tSIGTSTP   = syscall.Signal(0x12)\n\tSIGTTIN   = syscall.Signal(0x15)\n\tSIGTTOU   = syscall.Signal(0x16)\n\tSIGURG    = syscall.Signal(0x10)\n\tSIGUSR1   = syscall.Signal(0x1e)\n\tSIGUSR2   = syscall.Signal(0x1f)\n\tSIGVTALRM = syscall.Signal(0x1a)\n\tSIGWINCH  = syscall.Signal(0x1c)\n\tSIGXCPU   = syscall.Signal(0x18)\n\tSIGXFSZ   = syscall.Signal(0x19)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"operation not permitted\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"input/output error\"},\n\t{6, \"ENXIO\", \"device not configured\"},\n\t{7, \"E2BIG\", \"argument list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file descriptor\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EDEADLK\", \"resource deadlock avoided\"},\n\t{12, \"ENOMEM\", \"cannot allocate memory\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"operation not supported by device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"too many open files in system\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"numerical argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{36, \"EINPROGRESS\", \"operation now in progress\"},\n\t{37, \"EALREADY\", \"operation already in progress\"},\n\t{38, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{39, \"EDESTADDRREQ\", \"destination address required\"},\n\t{40, \"EMSGSIZE\", \"message too long\"},\n\t{41, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{42, \"ENOPROTOOPT\", \"protocol not available\"},\n\t{43, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{44, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{45, \"EOPNOTSUPP\", \"operation not supported\"},\n\t{46, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{47, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{48, \"EADDRINUSE\", \"address already in use\"},\n\t{49, \"EADDRNOTAVAIL\", \"can't assign requested address\"},\n\t{50, \"ENETDOWN\", \"network is down\"},\n\t{51, \"ENETUNREACH\", \"network is unreachable\"},\n\t{52, \"ENETRESET\", \"network dropped connection on reset\"},\n\t{53, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{54, \"ECONNRESET\", \"connection reset by peer\"},\n\t{55, \"ENOBUFS\", \"no buffer space available\"},\n\t{56, \"EISCONN\", \"socket is already connected\"},\n\t{57, \"ENOTCONN\", \"socket is not connected\"},\n\t{58, \"ESHUTDOWN\", \"can't send after socket shutdown\"},\n\t{59, \"ETOOMANYREFS\", \"too many references: can't splice\"},\n\t{60, \"ETIMEDOUT\", \"operation timed out\"},\n\t{61, \"ECONNREFUSED\", \"connection refused\"},\n\t{62, \"ELOOP\", \"too many levels of symbolic links\"},\n\t{63, \"ENAMETOOLONG\", \"file name too long\"},\n\t{64, \"EHOSTDOWN\", \"host is down\"},\n\t{65, \"EHOSTUNREACH\", \"no route to host\"},\n\t{66, \"ENOTEMPTY\", \"directory not empty\"},\n\t{67, \"EPROCLIM\", \"too many processes\"},\n\t{68, \"EUSERS\", \"too many users\"},\n\t{69, \"EDQUOT\", \"disk quota exceeded\"},\n\t{70, \"ESTALE\", \"stale NFS file handle\"},\n\t{71, \"EREMOTE\", \"too many levels of remote in path\"},\n\t{72, \"EBADRPC\", \"RPC struct is bad\"},\n\t{73, \"ERPCMISMATCH\", \"RPC version wrong\"},\n\t{74, \"EPROGUNAVAIL\", \"RPC program not available\"},\n\t{75, \"EPROGMISMATCH\", \"program version wrong\"},\n\t{76, \"EPROCUNAVAIL\", \"bad procedure for program\"},\n\t{77, \"ENOLCK\", \"no locks available\"},\n\t{78, \"ENOSYS\", \"function not implemented\"},\n\t{79, \"EFTYPE\", \"inappropriate file type or format\"},\n\t{80, \"EAUTH\", \"authentication error\"},\n\t{81, \"ENEEDAUTH\", \"need authenticator\"},\n\t{82, \"EIPSEC\", \"IPsec processing failure\"},\n\t{83, \"ENOATTR\", \"attribute not found\"},\n\t{84, \"EILSEQ\", \"illegal byte sequence\"},\n\t{85, \"ENOMEDIUM\", \"no medium found\"},\n\t{86, \"EMEDIUMTYPE\", \"wrong medium type\"},\n\t{87, \"EOVERFLOW\", \"value too large to be stored in data type\"},\n\t{88, \"ECANCELED\", \"operation canceled\"},\n\t{89, \"EIDRM\", \"identifier removed\"},\n\t{90, \"ENOMSG\", \"no message of desired type\"},\n\t{91, \"ENOTSUP\", \"not supported\"},\n\t{92, \"EBADMSG\", \"bad message\"},\n\t{93, \"ENOTRECOVERABLE\", \"state not recoverable\"},\n\t{94, \"EOWNERDEAD\", \"previous owner died\"},\n\t{95, \"ELAST\", \"protocol error\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGTRAP\", \"trace/BPT trap\"},\n\t{6, \"SIGABRT\", \"abort trap\"},\n\t{7, \"SIGEMT\", \"EMT trap\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad system call\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGURG\", \"urgent I/O condition\"},\n\t{17, \"SIGSTOP\", \"suspended (signal)\"},\n\t{18, \"SIGTSTP\", \"suspended\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGXCPU\", \"cputime limit exceeded\"},\n\t{25, \"SIGXFSZ\", \"filesize limit exceeded\"},\n\t{26, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{27, \"SIGPROF\", \"profiling timer expired\"},\n\t{28, \"SIGWINCH\", \"window size changes\"},\n\t{29, \"SIGINFO\", \"information request\"},\n\t{30, \"SIGUSR1\", \"user defined signal 1\"},\n\t{31, \"SIGUSR2\", \"user defined signal 2\"},\n\t{32, \"SIGTHR\", \"thread AST\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go",
    "content": "// mkerrors.sh -m64\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && solaris\n\n// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n// cgo -godefs -- -m64 _const.go\n\npackage unix\n\nimport \"syscall\"\n\nconst (\n\tAF_802                        = 0x12\n\tAF_APPLETALK                  = 0x10\n\tAF_CCITT                      = 0xa\n\tAF_CHAOS                      = 0x5\n\tAF_DATAKIT                    = 0x9\n\tAF_DECnet                     = 0xc\n\tAF_DLI                        = 0xd\n\tAF_ECMA                       = 0x8\n\tAF_FILE                       = 0x1\n\tAF_GOSIP                      = 0x16\n\tAF_HYLINK                     = 0xf\n\tAF_IMPLINK                    = 0x3\n\tAF_INET                       = 0x2\n\tAF_INET6                      = 0x1a\n\tAF_INET_OFFLOAD               = 0x1e\n\tAF_IPX                        = 0x17\n\tAF_KEY                        = 0x1b\n\tAF_LAT                        = 0xe\n\tAF_LINK                       = 0x19\n\tAF_LOCAL                      = 0x1\n\tAF_MAX                        = 0x20\n\tAF_NBS                        = 0x7\n\tAF_NCA                        = 0x1c\n\tAF_NIT                        = 0x11\n\tAF_NS                         = 0x6\n\tAF_OSI                        = 0x13\n\tAF_OSINET                     = 0x15\n\tAF_PACKET                     = 0x20\n\tAF_POLICY                     = 0x1d\n\tAF_PUP                        = 0x4\n\tAF_ROUTE                      = 0x18\n\tAF_SNA                        = 0xb\n\tAF_TRILL                      = 0x1f\n\tAF_UNIX                       = 0x1\n\tAF_UNSPEC                     = 0x0\n\tAF_X25                        = 0x14\n\tARPHRD_ARCNET                 = 0x7\n\tARPHRD_ATM                    = 0x10\n\tARPHRD_AX25                   = 0x3\n\tARPHRD_CHAOS                  = 0x5\n\tARPHRD_EETHER                 = 0x2\n\tARPHRD_ETHER                  = 0x1\n\tARPHRD_FC                     = 0x12\n\tARPHRD_FRAME                  = 0xf\n\tARPHRD_HDLC                   = 0x11\n\tARPHRD_IB                     = 0x20\n\tARPHRD_IEEE802                = 0x6\n\tARPHRD_IPATM                  = 0x13\n\tARPHRD_METRICOM               = 0x17\n\tARPHRD_TUNNEL                 = 0x1f\n\tB0                            = 0x0\n\tB110                          = 0x3\n\tB115200                       = 0x12\n\tB1200                         = 0x9\n\tB134                          = 0x4\n\tB150                          = 0x5\n\tB153600                       = 0x13\n\tB1800                         = 0xa\n\tB19200                        = 0xe\n\tB200                          = 0x6\n\tB230400                       = 0x14\n\tB2400                         = 0xb\n\tB300                          = 0x7\n\tB307200                       = 0x15\n\tB38400                        = 0xf\n\tB460800                       = 0x16\n\tB4800                         = 0xc\n\tB50                           = 0x1\n\tB57600                        = 0x10\n\tB600                          = 0x8\n\tB75                           = 0x2\n\tB76800                        = 0x11\n\tB921600                       = 0x17\n\tB9600                         = 0xd\n\tBIOCFLUSH                     = 0x20004268\n\tBIOCGBLEN                     = 0x40044266\n\tBIOCGDLT                      = 0x4004426a\n\tBIOCGDLTLIST                  = -0x3fefbd89\n\tBIOCGDLTLIST32                = -0x3ff7bd89\n\tBIOCGETIF                     = 0x4020426b\n\tBIOCGETLIF                    = 0x4078426b\n\tBIOCGHDRCMPLT                 = 0x40044274\n\tBIOCGRTIMEOUT                 = 0x4010427b\n\tBIOCGRTIMEOUT32               = 0x4008427b\n\tBIOCGSEESENT                  = 0x40044278\n\tBIOCGSTATS                    = 0x4080426f\n\tBIOCGSTATSOLD                 = 0x4008426f\n\tBIOCIMMEDIATE                 = -0x7ffbbd90\n\tBIOCPROMISC                   = 0x20004269\n\tBIOCSBLEN                     = -0x3ffbbd9a\n\tBIOCSDLT                      = -0x7ffbbd8a\n\tBIOCSETF                      = -0x7fefbd99\n\tBIOCSETF32                    = -0x7ff7bd99\n\tBIOCSETIF                     = -0x7fdfbd94\n\tBIOCSETLIF                    = -0x7f87bd94\n\tBIOCSHDRCMPLT                 = -0x7ffbbd8b\n\tBIOCSRTIMEOUT                 = -0x7fefbd86\n\tBIOCSRTIMEOUT32               = -0x7ff7bd86\n\tBIOCSSEESENT                  = -0x7ffbbd87\n\tBIOCSTCPF                     = -0x7fefbd8e\n\tBIOCSUDPF                     = -0x7fefbd8d\n\tBIOCVERSION                   = 0x40044271\n\tBPF_A                         = 0x10\n\tBPF_ABS                       = 0x20\n\tBPF_ADD                       = 0x0\n\tBPF_ALIGNMENT                 = 0x4\n\tBPF_ALU                       = 0x4\n\tBPF_AND                       = 0x50\n\tBPF_B                         = 0x10\n\tBPF_DFLTBUFSIZE               = 0x100000\n\tBPF_DIV                       = 0x30\n\tBPF_H                         = 0x8\n\tBPF_IMM                       = 0x0\n\tBPF_IND                       = 0x40\n\tBPF_JA                        = 0x0\n\tBPF_JEQ                       = 0x10\n\tBPF_JGE                       = 0x30\n\tBPF_JGT                       = 0x20\n\tBPF_JMP                       = 0x5\n\tBPF_JSET                      = 0x40\n\tBPF_K                         = 0x0\n\tBPF_LD                        = 0x0\n\tBPF_LDX                       = 0x1\n\tBPF_LEN                       = 0x80\n\tBPF_LSH                       = 0x60\n\tBPF_MAJOR_VERSION             = 0x1\n\tBPF_MAXBUFSIZE                = 0x1000000\n\tBPF_MAXINSNS                  = 0x200\n\tBPF_MEM                       = 0x60\n\tBPF_MEMWORDS                  = 0x10\n\tBPF_MINBUFSIZE                = 0x20\n\tBPF_MINOR_VERSION             = 0x1\n\tBPF_MISC                      = 0x7\n\tBPF_MSH                       = 0xa0\n\tBPF_MUL                       = 0x20\n\tBPF_NEG                       = 0x80\n\tBPF_OR                        = 0x40\n\tBPF_RELEASE                   = 0x30bb6\n\tBPF_RET                       = 0x6\n\tBPF_RSH                       = 0x70\n\tBPF_ST                        = 0x2\n\tBPF_STX                       = 0x3\n\tBPF_SUB                       = 0x10\n\tBPF_TAX                       = 0x0\n\tBPF_TXA                       = 0x80\n\tBPF_W                         = 0x0\n\tBPF_X                         = 0x8\n\tBRKINT                        = 0x2\n\tBS0                           = 0x0\n\tBS1                           = 0x2000\n\tBSDLY                         = 0x2000\n\tCBAUD                         = 0xf\n\tCFLUSH                        = 0xf\n\tCIBAUD                        = 0xf0000\n\tCLOCAL                        = 0x800\n\tCLOCK_HIGHRES                 = 0x4\n\tCLOCK_LEVEL                   = 0xa\n\tCLOCK_MONOTONIC               = 0x4\n\tCLOCK_PROCESS_CPUTIME_ID      = 0x5\n\tCLOCK_PROF                    = 0x2\n\tCLOCK_REALTIME                = 0x3\n\tCLOCK_THREAD_CPUTIME_ID       = 0x2\n\tCLOCK_VIRTUAL                 = 0x1\n\tCR0                           = 0x0\n\tCR1                           = 0x200\n\tCR2                           = 0x400\n\tCR3                           = 0x600\n\tCRDLY                         = 0x600\n\tCREAD                         = 0x80\n\tCRTSCTS                       = 0x80000000\n\tCS5                           = 0x0\n\tCS6                           = 0x10\n\tCS7                           = 0x20\n\tCS8                           = 0x30\n\tCSIZE                         = 0x30\n\tCSTART                        = 0x11\n\tCSTATUS                       = 0x14\n\tCSTOP                         = 0x13\n\tCSTOPB                        = 0x40\n\tCSUSP                         = 0x1a\n\tCSWTCH                        = 0x1a\n\tDIOC                          = 0x6400\n\tDIOCGETB                      = 0x6402\n\tDIOCGETC                      = 0x6401\n\tDIOCGETP                      = 0x6408\n\tDIOCSETE                      = 0x6403\n\tDIOCSETP                      = 0x6409\n\tDLT_AIRONET_HEADER            = 0x78\n\tDLT_APPLE_IP_OVER_IEEE1394    = 0x8a\n\tDLT_ARCNET                    = 0x7\n\tDLT_ARCNET_LINUX              = 0x81\n\tDLT_ATM_CLIP                  = 0x13\n\tDLT_ATM_RFC1483               = 0xb\n\tDLT_AURORA                    = 0x7e\n\tDLT_AX25                      = 0x3\n\tDLT_BACNET_MS_TP              = 0xa5\n\tDLT_CHAOS                     = 0x5\n\tDLT_CISCO_IOS                 = 0x76\n\tDLT_C_HDLC                    = 0x68\n\tDLT_DOCSIS                    = 0x8f\n\tDLT_ECONET                    = 0x73\n\tDLT_EN10MB                    = 0x1\n\tDLT_EN3MB                     = 0x2\n\tDLT_ENC                       = 0x6d\n\tDLT_ERF_ETH                   = 0xaf\n\tDLT_ERF_POS                   = 0xb0\n\tDLT_FDDI                      = 0xa\n\tDLT_FRELAY                    = 0x6b\n\tDLT_GCOM_SERIAL               = 0xad\n\tDLT_GCOM_T1E1                 = 0xac\n\tDLT_GPF_F                     = 0xab\n\tDLT_GPF_T                     = 0xaa\n\tDLT_GPRS_LLC                  = 0xa9\n\tDLT_HDLC                      = 0x10\n\tDLT_HHDLC                     = 0x79\n\tDLT_HIPPI                     = 0xf\n\tDLT_IBM_SN                    = 0x92\n\tDLT_IBM_SP                    = 0x91\n\tDLT_IEEE802                   = 0x6\n\tDLT_IEEE802_11                = 0x69\n\tDLT_IEEE802_11_RADIO          = 0x7f\n\tDLT_IEEE802_11_RADIO_AVS      = 0xa3\n\tDLT_IPNET                     = 0xe2\n\tDLT_IPOIB                     = 0xa2\n\tDLT_IP_OVER_FC                = 0x7a\n\tDLT_JUNIPER_ATM1              = 0x89\n\tDLT_JUNIPER_ATM2              = 0x87\n\tDLT_JUNIPER_CHDLC             = 0xb5\n\tDLT_JUNIPER_ES                = 0x84\n\tDLT_JUNIPER_ETHER             = 0xb2\n\tDLT_JUNIPER_FRELAY            = 0xb4\n\tDLT_JUNIPER_GGSN              = 0x85\n\tDLT_JUNIPER_MFR               = 0x86\n\tDLT_JUNIPER_MLFR              = 0x83\n\tDLT_JUNIPER_MLPPP             = 0x82\n\tDLT_JUNIPER_MONITOR           = 0xa4\n\tDLT_JUNIPER_PIC_PEER          = 0xae\n\tDLT_JUNIPER_PPP               = 0xb3\n\tDLT_JUNIPER_PPPOE             = 0xa7\n\tDLT_JUNIPER_PPPOE_ATM         = 0xa8\n\tDLT_JUNIPER_SERVICES          = 0x88\n\tDLT_LINUX_IRDA                = 0x90\n\tDLT_LINUX_LAPD                = 0xb1\n\tDLT_LINUX_SLL                 = 0x71\n\tDLT_LOOP                      = 0x6c\n\tDLT_LTALK                     = 0x72\n\tDLT_MTP2                      = 0x8c\n\tDLT_MTP2_WITH_PHDR            = 0x8b\n\tDLT_MTP3                      = 0x8d\n\tDLT_NULL                      = 0x0\n\tDLT_PCI_EXP                   = 0x7d\n\tDLT_PFLOG                     = 0x75\n\tDLT_PFSYNC                    = 0x12\n\tDLT_PPP                       = 0x9\n\tDLT_PPP_BSDOS                 = 0xe\n\tDLT_PPP_PPPD                  = 0xa6\n\tDLT_PRISM_HEADER              = 0x77\n\tDLT_PRONET                    = 0x4\n\tDLT_RAW                       = 0xc\n\tDLT_RAWAF_MASK                = 0x2240000\n\tDLT_RIO                       = 0x7c\n\tDLT_SCCP                      = 0x8e\n\tDLT_SLIP                      = 0x8\n\tDLT_SLIP_BSDOS                = 0xd\n\tDLT_SUNATM                    = 0x7b\n\tDLT_SYMANTEC_FIREWALL         = 0x63\n\tDLT_TZSP                      = 0x80\n\tECHO                          = 0x8\n\tECHOCTL                       = 0x200\n\tECHOE                         = 0x10\n\tECHOK                         = 0x20\n\tECHOKE                        = 0x800\n\tECHONL                        = 0x40\n\tECHOPRT                       = 0x400\n\tEMPTY_SET                     = 0x0\n\tEMT_CPCOVF                    = 0x1\n\tEQUALITY_CHECK                = 0x0\n\tEXTA                          = 0xe\n\tEXTB                          = 0xf\n\tFD_CLOEXEC                    = 0x1\n\tFD_NFDBITS                    = 0x40\n\tFD_SETSIZE                    = 0x10000\n\tFF0                           = 0x0\n\tFF1                           = 0x8000\n\tFFDLY                         = 0x8000\n\tFIORDCHK                      = 0x6603\n\tFLUSHALL                      = 0x1\n\tFLUSHDATA                     = 0x0\n\tFLUSHO                        = 0x2000\n\tF_ALLOCSP                     = 0xa\n\tF_ALLOCSP64                   = 0xa\n\tF_BADFD                       = 0x2e\n\tF_BLKSIZE                     = 0x13\n\tF_BLOCKS                      = 0x12\n\tF_CHKFL                       = 0x8\n\tF_COMPAT                      = 0x8\n\tF_DUP2FD                      = 0x9\n\tF_DUP2FD_CLOEXEC              = 0x24\n\tF_DUPFD                       = 0x0\n\tF_DUPFD_CLOEXEC               = 0x25\n\tF_FLOCK                       = 0x35\n\tF_FLOCK64                     = 0x35\n\tF_FLOCKW                      = 0x36\n\tF_FLOCKW64                    = 0x36\n\tF_FREESP                      = 0xb\n\tF_FREESP64                    = 0xb\n\tF_GETFD                       = 0x1\n\tF_GETFL                       = 0x3\n\tF_GETLK                       = 0xe\n\tF_GETLK64                     = 0xe\n\tF_GETOWN                      = 0x17\n\tF_GETXFL                      = 0x2d\n\tF_HASREMOTELOCKS              = 0x1a\n\tF_ISSTREAM                    = 0xd\n\tF_MANDDNY                     = 0x10\n\tF_MDACC                       = 0x20\n\tF_NODNY                       = 0x0\n\tF_NPRIV                       = 0x10\n\tF_OFD_GETLK                   = 0x2f\n\tF_OFD_GETLK64                 = 0x2f\n\tF_OFD_SETLK                   = 0x30\n\tF_OFD_SETLK64                 = 0x30\n\tF_OFD_SETLKW                  = 0x31\n\tF_OFD_SETLKW64                = 0x31\n\tF_PRIV                        = 0xf\n\tF_QUOTACTL                    = 0x11\n\tF_RDACC                       = 0x1\n\tF_RDDNY                       = 0x1\n\tF_RDLCK                       = 0x1\n\tF_REVOKE                      = 0x19\n\tF_RMACC                       = 0x4\n\tF_RMDNY                       = 0x4\n\tF_RWACC                       = 0x3\n\tF_RWDNY                       = 0x3\n\tF_SETFD                       = 0x2\n\tF_SETFL                       = 0x4\n\tF_SETLK                       = 0x6\n\tF_SETLK64                     = 0x6\n\tF_SETLK64_NBMAND              = 0x2a\n\tF_SETLKW                      = 0x7\n\tF_SETLKW64                    = 0x7\n\tF_SETLK_NBMAND                = 0x2a\n\tF_SETOWN                      = 0x18\n\tF_SHARE                       = 0x28\n\tF_SHARE_NBMAND                = 0x2b\n\tF_UNLCK                       = 0x3\n\tF_UNLKSYS                     = 0x4\n\tF_UNSHARE                     = 0x29\n\tF_WRACC                       = 0x2\n\tF_WRDNY                       = 0x2\n\tF_WRLCK                       = 0x2\n\tHUPCL                         = 0x400\n\tIBSHIFT                       = 0x10\n\tICANON                        = 0x2\n\tICMP6_FILTER                  = 0x1\n\tICRNL                         = 0x100\n\tIEXTEN                        = 0x8000\n\tIFF_ADDRCONF                  = 0x80000\n\tIFF_ALLMULTI                  = 0x200\n\tIFF_ANYCAST                   = 0x400000\n\tIFF_BROADCAST                 = 0x2\n\tIFF_CANTCHANGE                = 0x7f203003b5a\n\tIFF_COS_ENABLED               = 0x200000000\n\tIFF_DEBUG                     = 0x4\n\tIFF_DEPRECATED                = 0x40000\n\tIFF_DHCPRUNNING               = 0x4000\n\tIFF_DUPLICATE                 = 0x4000000000\n\tIFF_FAILED                    = 0x10000000\n\tIFF_FIXEDMTU                  = 0x1000000000\n\tIFF_INACTIVE                  = 0x40000000\n\tIFF_INTELLIGENT               = 0x400\n\tIFF_IPMP                      = 0x8000000000\n\tIFF_IPMP_CANTCHANGE           = 0x10000000\n\tIFF_IPMP_INVALID              = 0x1ec200080\n\tIFF_IPV4                      = 0x1000000\n\tIFF_IPV6                      = 0x2000000\n\tIFF_L3PROTECT                 = 0x40000000000\n\tIFF_LOOPBACK                  = 0x8\n\tIFF_MULTICAST                 = 0x800\n\tIFF_MULTI_BCAST               = 0x1000\n\tIFF_NOACCEPT                  = 0x4000000\n\tIFF_NOARP                     = 0x80\n\tIFF_NOFAILOVER                = 0x8000000\n\tIFF_NOLINKLOCAL               = 0x20000000000\n\tIFF_NOLOCAL                   = 0x20000\n\tIFF_NONUD                     = 0x200000\n\tIFF_NORTEXCH                  = 0x800000\n\tIFF_NOTRAILERS                = 0x20\n\tIFF_NOXMIT                    = 0x10000\n\tIFF_OFFLINE                   = 0x80000000\n\tIFF_POINTOPOINT               = 0x10\n\tIFF_PREFERRED                 = 0x400000000\n\tIFF_PRIVATE                   = 0x8000\n\tIFF_PROMISC                   = 0x100\n\tIFF_ROUTER                    = 0x100000\n\tIFF_RUNNING                   = 0x40\n\tIFF_STANDBY                   = 0x20000000\n\tIFF_TEMPORARY                 = 0x800000000\n\tIFF_UNNUMBERED                = 0x2000\n\tIFF_UP                        = 0x1\n\tIFF_VIRTUAL                   = 0x2000000000\n\tIFF_VRRP                      = 0x10000000000\n\tIFF_XRESOLV                   = 0x100000000\n\tIFNAMSIZ                      = 0x10\n\tIFT_1822                      = 0x2\n\tIFT_6TO4                      = 0xca\n\tIFT_AAL5                      = 0x31\n\tIFT_ARCNET                    = 0x23\n\tIFT_ARCNETPLUS                = 0x24\n\tIFT_ATM                       = 0x25\n\tIFT_CEPT                      = 0x13\n\tIFT_DS3                       = 0x1e\n\tIFT_EON                       = 0x19\n\tIFT_ETHER                     = 0x6\n\tIFT_FDDI                      = 0xf\n\tIFT_FRELAY                    = 0x20\n\tIFT_FRELAYDCE                 = 0x2c\n\tIFT_HDH1822                   = 0x3\n\tIFT_HIPPI                     = 0x2f\n\tIFT_HSSI                      = 0x2e\n\tIFT_HY                        = 0xe\n\tIFT_IB                        = 0xc7\n\tIFT_IPV4                      = 0xc8\n\tIFT_IPV6                      = 0xc9\n\tIFT_ISDNBASIC                 = 0x14\n\tIFT_ISDNPRIMARY               = 0x15\n\tIFT_ISO88022LLC               = 0x29\n\tIFT_ISO88023                  = 0x7\n\tIFT_ISO88024                  = 0x8\n\tIFT_ISO88025                  = 0x9\n\tIFT_ISO88026                  = 0xa\n\tIFT_LAPB                      = 0x10\n\tIFT_LOCALTALK                 = 0x2a\n\tIFT_LOOP                      = 0x18\n\tIFT_MIOX25                    = 0x26\n\tIFT_MODEM                     = 0x30\n\tIFT_NSIP                      = 0x1b\n\tIFT_OTHER                     = 0x1\n\tIFT_P10                       = 0xc\n\tIFT_P80                       = 0xd\n\tIFT_PARA                      = 0x22\n\tIFT_PPP                       = 0x17\n\tIFT_PROPMUX                   = 0x36\n\tIFT_PROPVIRTUAL               = 0x35\n\tIFT_PTPSERIAL                 = 0x16\n\tIFT_RS232                     = 0x21\n\tIFT_SDLC                      = 0x11\n\tIFT_SIP                       = 0x1f\n\tIFT_SLIP                      = 0x1c\n\tIFT_SMDSDXI                   = 0x2b\n\tIFT_SMDSICIP                  = 0x34\n\tIFT_SONET                     = 0x27\n\tIFT_SONETPATH                 = 0x32\n\tIFT_SONETVT                   = 0x33\n\tIFT_STARLAN                   = 0xb\n\tIFT_T1                        = 0x12\n\tIFT_ULTRA                     = 0x1d\n\tIFT_V35                       = 0x2d\n\tIFT_X25                       = 0x5\n\tIFT_X25DDN                    = 0x4\n\tIFT_X25PLE                    = 0x28\n\tIFT_XETHER                    = 0x1a\n\tIGNBRK                        = 0x1\n\tIGNCR                         = 0x80\n\tIGNPAR                        = 0x4\n\tIMAXBEL                       = 0x2000\n\tINLCR                         = 0x40\n\tINPCK                         = 0x10\n\tIN_AUTOCONF_MASK              = 0xffff0000\n\tIN_AUTOCONF_NET               = 0xa9fe0000\n\tIN_CLASSA_HOST                = 0xffffff\n\tIN_CLASSA_MAX                 = 0x80\n\tIN_CLASSA_NET                 = 0xff000000\n\tIN_CLASSA_NSHIFT              = 0x18\n\tIN_CLASSB_HOST                = 0xffff\n\tIN_CLASSB_MAX                 = 0x10000\n\tIN_CLASSB_NET                 = 0xffff0000\n\tIN_CLASSB_NSHIFT              = 0x10\n\tIN_CLASSC_HOST                = 0xff\n\tIN_CLASSC_NET                 = 0xffffff00\n\tIN_CLASSC_NSHIFT              = 0x8\n\tIN_CLASSD_HOST                = 0xfffffff\n\tIN_CLASSD_NET                 = 0xf0000000\n\tIN_CLASSD_NSHIFT              = 0x1c\n\tIN_CLASSE_NET                 = 0xffffffff\n\tIN_LOOPBACKNET                = 0x7f\n\tIN_PRIVATE12_MASK             = 0xfff00000\n\tIN_PRIVATE12_NET              = 0xac100000\n\tIN_PRIVATE16_MASK             = 0xffff0000\n\tIN_PRIVATE16_NET              = 0xc0a80000\n\tIN_PRIVATE8_MASK              = 0xff000000\n\tIN_PRIVATE8_NET               = 0xa000000\n\tIPPROTO_AH                    = 0x33\n\tIPPROTO_DSTOPTS               = 0x3c\n\tIPPROTO_EGP                   = 0x8\n\tIPPROTO_ENCAP                 = 0x4\n\tIPPROTO_EON                   = 0x50\n\tIPPROTO_ESP                   = 0x32\n\tIPPROTO_FRAGMENT              = 0x2c\n\tIPPROTO_GGP                   = 0x3\n\tIPPROTO_HELLO                 = 0x3f\n\tIPPROTO_HOPOPTS               = 0x0\n\tIPPROTO_ICMP                  = 0x1\n\tIPPROTO_ICMPV6                = 0x3a\n\tIPPROTO_IDP                   = 0x16\n\tIPPROTO_IGMP                  = 0x2\n\tIPPROTO_IP                    = 0x0\n\tIPPROTO_IPV6                  = 0x29\n\tIPPROTO_MAX                   = 0x100\n\tIPPROTO_ND                    = 0x4d\n\tIPPROTO_NONE                  = 0x3b\n\tIPPROTO_OSPF                  = 0x59\n\tIPPROTO_PIM                   = 0x67\n\tIPPROTO_PUP                   = 0xc\n\tIPPROTO_RAW                   = 0xff\n\tIPPROTO_ROUTING               = 0x2b\n\tIPPROTO_RSVP                  = 0x2e\n\tIPPROTO_SCTP                  = 0x84\n\tIPPROTO_TCP                   = 0x6\n\tIPPROTO_UDP                   = 0x11\n\tIPV6_ADD_MEMBERSHIP           = 0x9\n\tIPV6_BOUND_IF                 = 0x41\n\tIPV6_CHECKSUM                 = 0x18\n\tIPV6_DONTFRAG                 = 0x21\n\tIPV6_DROP_MEMBERSHIP          = 0xa\n\tIPV6_DSTOPTS                  = 0xf\n\tIPV6_FLOWINFO_FLOWLABEL       = 0xffff0f00\n\tIPV6_FLOWINFO_TCLASS          = 0xf00f\n\tIPV6_HOPLIMIT                 = 0xc\n\tIPV6_HOPOPTS                  = 0xe\n\tIPV6_JOIN_GROUP               = 0x9\n\tIPV6_LEAVE_GROUP              = 0xa\n\tIPV6_MULTICAST_HOPS           = 0x7\n\tIPV6_MULTICAST_IF             = 0x6\n\tIPV6_MULTICAST_LOOP           = 0x8\n\tIPV6_NEXTHOP                  = 0xd\n\tIPV6_PAD1_OPT                 = 0x0\n\tIPV6_PATHMTU                  = 0x25\n\tIPV6_PKTINFO                  = 0xb\n\tIPV6_PREFER_SRC_CGA           = 0x20\n\tIPV6_PREFER_SRC_CGADEFAULT    = 0x10\n\tIPV6_PREFER_SRC_CGAMASK       = 0x30\n\tIPV6_PREFER_SRC_COA           = 0x2\n\tIPV6_PREFER_SRC_DEFAULT       = 0x15\n\tIPV6_PREFER_SRC_HOME          = 0x1\n\tIPV6_PREFER_SRC_MASK          = 0x3f\n\tIPV6_PREFER_SRC_MIPDEFAULT    = 0x1\n\tIPV6_PREFER_SRC_MIPMASK       = 0x3\n\tIPV6_PREFER_SRC_NONCGA        = 0x10\n\tIPV6_PREFER_SRC_PUBLIC        = 0x4\n\tIPV6_PREFER_SRC_TMP           = 0x8\n\tIPV6_PREFER_SRC_TMPDEFAULT    = 0x4\n\tIPV6_PREFER_SRC_TMPMASK       = 0xc\n\tIPV6_RECVDSTOPTS              = 0x28\n\tIPV6_RECVHOPLIMIT             = 0x13\n\tIPV6_RECVHOPOPTS              = 0x14\n\tIPV6_RECVPATHMTU              = 0x24\n\tIPV6_RECVPKTINFO              = 0x12\n\tIPV6_RECVRTHDR                = 0x16\n\tIPV6_RECVRTHDRDSTOPTS         = 0x17\n\tIPV6_RECVTCLASS               = 0x19\n\tIPV6_RTHDR                    = 0x10\n\tIPV6_RTHDRDSTOPTS             = 0x11\n\tIPV6_RTHDR_TYPE_0             = 0x0\n\tIPV6_SEC_OPT                  = 0x22\n\tIPV6_SRC_PREFERENCES          = 0x23\n\tIPV6_TCLASS                   = 0x26\n\tIPV6_UNICAST_HOPS             = 0x5\n\tIPV6_UNSPEC_SRC               = 0x42\n\tIPV6_USE_MIN_MTU              = 0x20\n\tIPV6_V6ONLY                   = 0x27\n\tIP_ADD_MEMBERSHIP             = 0x13\n\tIP_ADD_SOURCE_MEMBERSHIP      = 0x17\n\tIP_BLOCK_SOURCE               = 0x15\n\tIP_BOUND_IF                   = 0x41\n\tIP_BROADCAST                  = 0x106\n\tIP_BROADCAST_TTL              = 0x43\n\tIP_DEFAULT_MULTICAST_LOOP     = 0x1\n\tIP_DEFAULT_MULTICAST_TTL      = 0x1\n\tIP_DF                         = 0x4000\n\tIP_DHCPINIT_IF                = 0x45\n\tIP_DONTFRAG                   = 0x1b\n\tIP_DONTROUTE                  = 0x105\n\tIP_DROP_MEMBERSHIP            = 0x14\n\tIP_DROP_SOURCE_MEMBERSHIP     = 0x18\n\tIP_HDRINCL                    = 0x2\n\tIP_MAXPACKET                  = 0xffff\n\tIP_MF                         = 0x2000\n\tIP_MSS                        = 0x240\n\tIP_MULTICAST_IF               = 0x10\n\tIP_MULTICAST_LOOP             = 0x12\n\tIP_MULTICAST_TTL              = 0x11\n\tIP_NEXTHOP                    = 0x19\n\tIP_OPTIONS                    = 0x1\n\tIP_PKTINFO                    = 0x1a\n\tIP_RECVDSTADDR                = 0x7\n\tIP_RECVIF                     = 0x9\n\tIP_RECVOPTS                   = 0x5\n\tIP_RECVPKTINFO                = 0x1a\n\tIP_RECVRETOPTS                = 0x6\n\tIP_RECVSLLA                   = 0xa\n\tIP_RECVTOS                    = 0xc\n\tIP_RECVTTL                    = 0xb\n\tIP_RETOPTS                    = 0x8\n\tIP_REUSEADDR                  = 0x104\n\tIP_SEC_OPT                    = 0x22\n\tIP_TOS                        = 0x3\n\tIP_TTL                        = 0x4\n\tIP_UNBLOCK_SOURCE             = 0x16\n\tIP_UNSPEC_SRC                 = 0x42\n\tISIG                          = 0x1\n\tISTRIP                        = 0x20\n\tIUCLC                         = 0x200\n\tIXANY                         = 0x800\n\tIXOFF                         = 0x1000\n\tIXON                          = 0x400\n\tLOCK_EX                       = 0x2\n\tLOCK_NB                       = 0x4\n\tLOCK_SH                       = 0x1\n\tLOCK_UN                       = 0x8\n\tMADV_ACCESS_DEFAULT           = 0x6\n\tMADV_ACCESS_LWP               = 0x7\n\tMADV_ACCESS_MANY              = 0x8\n\tMADV_DONTNEED                 = 0x4\n\tMADV_FREE                     = 0x5\n\tMADV_NORMAL                   = 0x0\n\tMADV_PURGE                    = 0x9\n\tMADV_RANDOM                   = 0x1\n\tMADV_SEQUENTIAL               = 0x2\n\tMADV_WILLNEED                 = 0x3\n\tMAP_32BIT                     = 0x80\n\tMAP_ALIGN                     = 0x200\n\tMAP_ANON                      = 0x100\n\tMAP_ANONYMOUS                 = 0x100\n\tMAP_FILE                      = 0x0\n\tMAP_FIXED                     = 0x10\n\tMAP_INITDATA                  = 0x800\n\tMAP_NORESERVE                 = 0x40\n\tMAP_PRIVATE                   = 0x2\n\tMAP_RENAME                    = 0x20\n\tMAP_SHARED                    = 0x1\n\tMAP_TEXT                      = 0x400\n\tMAP_TYPE                      = 0xf\n\tMCAST_BLOCK_SOURCE            = 0x2b\n\tMCAST_EXCLUDE                 = 0x2\n\tMCAST_INCLUDE                 = 0x1\n\tMCAST_JOIN_GROUP              = 0x29\n\tMCAST_JOIN_SOURCE_GROUP       = 0x2d\n\tMCAST_LEAVE_GROUP             = 0x2a\n\tMCAST_LEAVE_SOURCE_GROUP      = 0x2e\n\tMCAST_UNBLOCK_SOURCE          = 0x2c\n\tMCL_CURRENT                   = 0x1\n\tMCL_FUTURE                    = 0x2\n\tMSG_CTRUNC                    = 0x10\n\tMSG_DONTROUTE                 = 0x4\n\tMSG_DONTWAIT                  = 0x80\n\tMSG_DUPCTRL                   = 0x800\n\tMSG_EOR                       = 0x8\n\tMSG_MAXIOVLEN                 = 0x10\n\tMSG_NOSIGNAL                  = 0x200\n\tMSG_NOTIFICATION              = 0x100\n\tMSG_OOB                       = 0x1\n\tMSG_PEEK                      = 0x2\n\tMSG_TRUNC                     = 0x20\n\tMSG_WAITALL                   = 0x40\n\tMSG_XPG4_2                    = 0x8000\n\tMS_ASYNC                      = 0x1\n\tMS_INVALIDATE                 = 0x2\n\tMS_OLDSYNC                    = 0x0\n\tMS_SYNC                       = 0x4\n\tM_FLUSH                       = 0x86\n\tNAME_MAX                      = 0xff\n\tNEWDEV                        = 0x1\n\tNFDBITS                       = 0x40\n\tNL0                           = 0x0\n\tNL1                           = 0x100\n\tNLDLY                         = 0x100\n\tNOFLSH                        = 0x80\n\tOCRNL                         = 0x8\n\tOFDEL                         = 0x80\n\tOFILL                         = 0x40\n\tOLCUC                         = 0x2\n\tOLDDEV                        = 0x0\n\tONBITSMAJOR                   = 0x7\n\tONBITSMINOR                   = 0x8\n\tONLCR                         = 0x4\n\tONLRET                        = 0x20\n\tONOCR                         = 0x10\n\tOPENFAIL                      = -0x1\n\tOPOST                         = 0x1\n\tO_ACCMODE                     = 0x600003\n\tO_APPEND                      = 0x8\n\tO_CLOEXEC                     = 0x800000\n\tO_CREAT                       = 0x100\n\tO_DIRECT                      = 0x2000000\n\tO_DIRECTORY                   = 0x1000000\n\tO_DSYNC                       = 0x40\n\tO_EXCL                        = 0x400\n\tO_EXEC                        = 0x400000\n\tO_LARGEFILE                   = 0x2000\n\tO_NDELAY                      = 0x4\n\tO_NOCTTY                      = 0x800\n\tO_NOFOLLOW                    = 0x20000\n\tO_NOLINKS                     = 0x40000\n\tO_NONBLOCK                    = 0x80\n\tO_RDONLY                      = 0x0\n\tO_RDWR                        = 0x2\n\tO_RSYNC                       = 0x8000\n\tO_SEARCH                      = 0x200000\n\tO_SIOCGIFCONF                 = -0x3ff796ec\n\tO_SIOCGLIFCONF                = -0x3fef9688\n\tO_SYNC                        = 0x10\n\tO_TRUNC                       = 0x200\n\tO_WRONLY                      = 0x1\n\tO_XATTR                       = 0x4000\n\tPARENB                        = 0x100\n\tPAREXT                        = 0x100000\n\tPARMRK                        = 0x8\n\tPARODD                        = 0x200\n\tPENDIN                        = 0x4000\n\tPRIO_PGRP                     = 0x1\n\tPRIO_PROCESS                  = 0x0\n\tPRIO_USER                     = 0x2\n\tPROT_EXEC                     = 0x4\n\tPROT_NONE                     = 0x0\n\tPROT_READ                     = 0x1\n\tPROT_WRITE                    = 0x2\n\tRLIMIT_AS                     = 0x6\n\tRLIMIT_CORE                   = 0x4\n\tRLIMIT_CPU                    = 0x0\n\tRLIMIT_DATA                   = 0x2\n\tRLIMIT_FSIZE                  = 0x1\n\tRLIMIT_NOFILE                 = 0x5\n\tRLIMIT_STACK                  = 0x3\n\tRLIM_INFINITY                 = 0xfffffffffffffffd\n\tRTAX_AUTHOR                   = 0x6\n\tRTAX_BRD                      = 0x7\n\tRTAX_DST                      = 0x0\n\tRTAX_GATEWAY                  = 0x1\n\tRTAX_GENMASK                  = 0x3\n\tRTAX_IFA                      = 0x5\n\tRTAX_IFP                      = 0x4\n\tRTAX_MAX                      = 0x9\n\tRTAX_NETMASK                  = 0x2\n\tRTAX_SRC                      = 0x8\n\tRTA_AUTHOR                    = 0x40\n\tRTA_BRD                       = 0x80\n\tRTA_DST                       = 0x1\n\tRTA_GATEWAY                   = 0x2\n\tRTA_GENMASK                   = 0x8\n\tRTA_IFA                       = 0x20\n\tRTA_IFP                       = 0x10\n\tRTA_NETMASK                   = 0x4\n\tRTA_NUMBITS                   = 0x9\n\tRTA_SRC                       = 0x100\n\tRTF_BLACKHOLE                 = 0x1000\n\tRTF_CLONING                   = 0x100\n\tRTF_DONE                      = 0x40\n\tRTF_DYNAMIC                   = 0x10\n\tRTF_GATEWAY                   = 0x2\n\tRTF_HOST                      = 0x4\n\tRTF_INDIRECT                  = 0x40000\n\tRTF_KERNEL                    = 0x80000\n\tRTF_LLINFO                    = 0x400\n\tRTF_MASK                      = 0x80\n\tRTF_MODIFIED                  = 0x20\n\tRTF_MULTIRT                   = 0x10000\n\tRTF_PRIVATE                   = 0x2000\n\tRTF_PROTO1                    = 0x8000\n\tRTF_PROTO2                    = 0x4000\n\tRTF_REJECT                    = 0x8\n\tRTF_SETSRC                    = 0x20000\n\tRTF_STATIC                    = 0x800\n\tRTF_UP                        = 0x1\n\tRTF_XRESOLVE                  = 0x200\n\tRTF_ZONE                      = 0x100000\n\tRTM_ADD                       = 0x1\n\tRTM_CHANGE                    = 0x3\n\tRTM_CHGADDR                   = 0xf\n\tRTM_DELADDR                   = 0xd\n\tRTM_DELETE                    = 0x2\n\tRTM_FREEADDR                  = 0x10\n\tRTM_GET                       = 0x4\n\tRTM_IFINFO                    = 0xe\n\tRTM_LOCK                      = 0x8\n\tRTM_LOSING                    = 0x5\n\tRTM_MISS                      = 0x7\n\tRTM_NEWADDR                   = 0xc\n\tRTM_OLDADD                    = 0x9\n\tRTM_OLDDEL                    = 0xa\n\tRTM_REDIRECT                  = 0x6\n\tRTM_RESOLVE                   = 0xb\n\tRTM_VERSION                   = 0x3\n\tRTV_EXPIRE                    = 0x4\n\tRTV_HOPCOUNT                  = 0x2\n\tRTV_MTU                       = 0x1\n\tRTV_RPIPE                     = 0x8\n\tRTV_RTT                       = 0x40\n\tRTV_RTTVAR                    = 0x80\n\tRTV_SPIPE                     = 0x10\n\tRTV_SSTHRESH                  = 0x20\n\tRT_AWARE                      = 0x1\n\tRUSAGE_CHILDREN               = -0x1\n\tRUSAGE_SELF                   = 0x0\n\tSCM_RIGHTS                    = 0x1010\n\tSCM_TIMESTAMP                 = 0x1013\n\tSCM_UCRED                     = 0x1012\n\tSHUT_RD                       = 0x0\n\tSHUT_RDWR                     = 0x2\n\tSHUT_WR                       = 0x1\n\tSIG2STR_MAX                   = 0x20\n\tSIOCADDMULTI                  = -0x7fdf96cf\n\tSIOCADDRT                     = -0x7fcf8df6\n\tSIOCATMARK                    = 0x40047307\n\tSIOCDARP                      = -0x7fdb96e0\n\tSIOCDELMULTI                  = -0x7fdf96ce\n\tSIOCDELRT                     = -0x7fcf8df5\n\tSIOCDXARP                     = -0x7fff9658\n\tSIOCGARP                      = -0x3fdb96e1\n\tSIOCGDSTINFO                  = -0x3fff965c\n\tSIOCGENADDR                   = -0x3fdf96ab\n\tSIOCGENPSTATS                 = -0x3fdf96c7\n\tSIOCGETLSGCNT                 = -0x3fef8deb\n\tSIOCGETNAME                   = 0x40107334\n\tSIOCGETPEER                   = 0x40107335\n\tSIOCGETPROP                   = -0x3fff8f44\n\tSIOCGETSGCNT                  = -0x3feb8deb\n\tSIOCGETSYNC                   = -0x3fdf96d3\n\tSIOCGETVIFCNT                 = -0x3feb8dec\n\tSIOCGHIWAT                    = 0x40047301\n\tSIOCGIFADDR                   = -0x3fdf96f3\n\tSIOCGIFBRDADDR                = -0x3fdf96e9\n\tSIOCGIFCONF                   = -0x3ff796a4\n\tSIOCGIFDSTADDR                = -0x3fdf96f1\n\tSIOCGIFFLAGS                  = -0x3fdf96ef\n\tSIOCGIFHWADDR                 = -0x3fdf9647\n\tSIOCGIFINDEX                  = -0x3fdf96a6\n\tSIOCGIFMEM                    = -0x3fdf96ed\n\tSIOCGIFMETRIC                 = -0x3fdf96e5\n\tSIOCGIFMTU                    = -0x3fdf96ea\n\tSIOCGIFMUXID                  = -0x3fdf96a8\n\tSIOCGIFNETMASK                = -0x3fdf96e7\n\tSIOCGIFNUM                    = 0x40046957\n\tSIOCGIP6ADDRPOLICY            = -0x3fff965e\n\tSIOCGIPMSFILTER               = -0x3ffb964c\n\tSIOCGLIFADDR                  = -0x3f87968f\n\tSIOCGLIFBINDING               = -0x3f879666\n\tSIOCGLIFBRDADDR               = -0x3f879685\n\tSIOCGLIFCONF                  = -0x3fef965b\n\tSIOCGLIFDADSTATE              = -0x3f879642\n\tSIOCGLIFDSTADDR               = -0x3f87968d\n\tSIOCGLIFFLAGS                 = -0x3f87968b\n\tSIOCGLIFGROUPINFO             = -0x3f4b9663\n\tSIOCGLIFGROUPNAME             = -0x3f879664\n\tSIOCGLIFHWADDR                = -0x3f879640\n\tSIOCGLIFINDEX                 = -0x3f87967b\n\tSIOCGLIFLNKINFO               = -0x3f879674\n\tSIOCGLIFMETRIC                = -0x3f879681\n\tSIOCGLIFMTU                   = -0x3f879686\n\tSIOCGLIFMUXID                 = -0x3f87967d\n\tSIOCGLIFNETMASK               = -0x3f879683\n\tSIOCGLIFNUM                   = -0x3ff3967e\n\tSIOCGLIFSRCOF                 = -0x3fef964f\n\tSIOCGLIFSUBNET                = -0x3f879676\n\tSIOCGLIFTOKEN                 = -0x3f879678\n\tSIOCGLIFUSESRC                = -0x3f879651\n\tSIOCGLIFZONE                  = -0x3f879656\n\tSIOCGLOWAT                    = 0x40047303\n\tSIOCGMSFILTER                 = -0x3ffb964e\n\tSIOCGPGRP                     = 0x40047309\n\tSIOCGSTAMP                    = -0x3fef9646\n\tSIOCGXARP                     = -0x3fff9659\n\tSIOCIFDETACH                  = -0x7fdf96c8\n\tSIOCILB                       = -0x3ffb9645\n\tSIOCLIFADDIF                  = -0x3f879691\n\tSIOCLIFDELND                  = -0x7f879673\n\tSIOCLIFGETND                  = -0x3f879672\n\tSIOCLIFREMOVEIF               = -0x7f879692\n\tSIOCLIFSETND                  = -0x7f879671\n\tSIOCLOWER                     = -0x7fdf96d7\n\tSIOCSARP                      = -0x7fdb96e2\n\tSIOCSCTPGOPT                  = -0x3fef9653\n\tSIOCSCTPPEELOFF               = -0x3ffb9652\n\tSIOCSCTPSOPT                  = -0x7fef9654\n\tSIOCSENABLESDP                = -0x3ffb9649\n\tSIOCSETPROP                   = -0x7ffb8f43\n\tSIOCSETSYNC                   = -0x7fdf96d4\n\tSIOCSHIWAT                    = -0x7ffb8d00\n\tSIOCSIFADDR                   = -0x7fdf96f4\n\tSIOCSIFBRDADDR                = -0x7fdf96e8\n\tSIOCSIFDSTADDR                = -0x7fdf96f2\n\tSIOCSIFFLAGS                  = -0x7fdf96f0\n\tSIOCSIFINDEX                  = -0x7fdf96a5\n\tSIOCSIFMEM                    = -0x7fdf96ee\n\tSIOCSIFMETRIC                 = -0x7fdf96e4\n\tSIOCSIFMTU                    = -0x7fdf96eb\n\tSIOCSIFMUXID                  = -0x7fdf96a7\n\tSIOCSIFNAME                   = -0x7fdf96b7\n\tSIOCSIFNETMASK                = -0x7fdf96e6\n\tSIOCSIP6ADDRPOLICY            = -0x7fff965d\n\tSIOCSIPMSFILTER               = -0x7ffb964b\n\tSIOCSLGETREQ                  = -0x3fdf96b9\n\tSIOCSLIFADDR                  = -0x7f879690\n\tSIOCSLIFBRDADDR               = -0x7f879684\n\tSIOCSLIFDSTADDR               = -0x7f87968e\n\tSIOCSLIFFLAGS                 = -0x7f87968c\n\tSIOCSLIFGROUPNAME             = -0x7f879665\n\tSIOCSLIFINDEX                 = -0x7f87967a\n\tSIOCSLIFLNKINFO               = -0x7f879675\n\tSIOCSLIFMETRIC                = -0x7f879680\n\tSIOCSLIFMTU                   = -0x7f879687\n\tSIOCSLIFMUXID                 = -0x7f87967c\n\tSIOCSLIFNAME                  = -0x3f87967f\n\tSIOCSLIFNETMASK               = -0x7f879682\n\tSIOCSLIFPREFIX                = -0x3f879641\n\tSIOCSLIFSUBNET                = -0x7f879677\n\tSIOCSLIFTOKEN                 = -0x7f879679\n\tSIOCSLIFUSESRC                = -0x7f879650\n\tSIOCSLIFZONE                  = -0x7f879655\n\tSIOCSLOWAT                    = -0x7ffb8cfe\n\tSIOCSLSTAT                    = -0x7fdf96b8\n\tSIOCSMSFILTER                 = -0x7ffb964d\n\tSIOCSPGRP                     = -0x7ffb8cf8\n\tSIOCSPROMISC                  = -0x7ffb96d0\n\tSIOCSQPTR                     = -0x3ffb9648\n\tSIOCSSDSTATS                  = -0x3fdf96d2\n\tSIOCSSESTATS                  = -0x3fdf96d1\n\tSIOCSXARP                     = -0x7fff965a\n\tSIOCTMYADDR                   = -0x3ff79670\n\tSIOCTMYSITE                   = -0x3ff7966e\n\tSIOCTONLINK                   = -0x3ff7966f\n\tSIOCUPPER                     = -0x7fdf96d8\n\tSIOCX25RCV                    = -0x3fdf96c4\n\tSIOCX25TBL                    = -0x3fdf96c3\n\tSIOCX25XMT                    = -0x3fdf96c5\n\tSIOCXPROTO                    = 0x20007337\n\tSOCK_CLOEXEC                  = 0x80000\n\tSOCK_DGRAM                    = 0x1\n\tSOCK_NDELAY                   = 0x200000\n\tSOCK_NONBLOCK                 = 0x100000\n\tSOCK_RAW                      = 0x4\n\tSOCK_RDM                      = 0x5\n\tSOCK_SEQPACKET                = 0x6\n\tSOCK_STREAM                   = 0x2\n\tSOCK_TYPE_MASK                = 0xffff\n\tSOL_FILTER                    = 0xfffc\n\tSOL_PACKET                    = 0xfffd\n\tSOL_ROUTE                     = 0xfffe\n\tSOL_SOCKET                    = 0xffff\n\tSOMAXCONN                     = 0x80\n\tSO_ACCEPTCONN                 = 0x2\n\tSO_ALL                        = 0x3f\n\tSO_ALLZONES                   = 0x1014\n\tSO_ANON_MLP                   = 0x100a\n\tSO_ATTACH_FILTER              = 0x40000001\n\tSO_BAND                       = 0x4000\n\tSO_BROADCAST                  = 0x20\n\tSO_COPYOPT                    = 0x80000\n\tSO_DEBUG                      = 0x1\n\tSO_DELIM                      = 0x8000\n\tSO_DETACH_FILTER              = 0x40000002\n\tSO_DGRAM_ERRIND               = 0x200\n\tSO_DOMAIN                     = 0x100c\n\tSO_DONTLINGER                 = -0x81\n\tSO_DONTROUTE                  = 0x10\n\tSO_ERROPT                     = 0x40000\n\tSO_ERROR                      = 0x1007\n\tSO_EXCLBIND                   = 0x1015\n\tSO_HIWAT                      = 0x10\n\tSO_ISNTTY                     = 0x800\n\tSO_ISTTY                      = 0x400\n\tSO_KEEPALIVE                  = 0x8\n\tSO_LINGER                     = 0x80\n\tSO_LOWAT                      = 0x20\n\tSO_MAC_EXEMPT                 = 0x100b\n\tSO_MAC_IMPLICIT               = 0x1016\n\tSO_MAXBLK                     = 0x100000\n\tSO_MAXPSZ                     = 0x8\n\tSO_MINPSZ                     = 0x4\n\tSO_MREADOFF                   = 0x80\n\tSO_MREADON                    = 0x40\n\tSO_NDELOFF                    = 0x200\n\tSO_NDELON                     = 0x100\n\tSO_NODELIM                    = 0x10000\n\tSO_OOBINLINE                  = 0x100\n\tSO_PROTOTYPE                  = 0x1009\n\tSO_RCVBUF                     = 0x1002\n\tSO_RCVLOWAT                   = 0x1004\n\tSO_RCVPSH                     = 0x100d\n\tSO_RCVTIMEO                   = 0x1006\n\tSO_READOPT                    = 0x1\n\tSO_RECVUCRED                  = 0x400\n\tSO_REUSEADDR                  = 0x4\n\tSO_SECATTR                    = 0x1011\n\tSO_SNDBUF                     = 0x1001\n\tSO_SNDLOWAT                   = 0x1003\n\tSO_SNDTIMEO                   = 0x1005\n\tSO_STRHOLD                    = 0x20000\n\tSO_TAIL                       = 0x200000\n\tSO_TIMESTAMP                  = 0x1013\n\tSO_TONSTOP                    = 0x2000\n\tSO_TOSTOP                     = 0x1000\n\tSO_TYPE                       = 0x1008\n\tSO_USELOOPBACK                = 0x40\n\tSO_VRRP                       = 0x1017\n\tSO_WROFF                      = 0x2\n\tS_ENFMT                       = 0x400\n\tS_IAMB                        = 0x1ff\n\tS_IEXEC                       = 0x40\n\tS_IFBLK                       = 0x6000\n\tS_IFCHR                       = 0x2000\n\tS_IFDIR                       = 0x4000\n\tS_IFDOOR                      = 0xd000\n\tS_IFIFO                       = 0x1000\n\tS_IFLNK                       = 0xa000\n\tS_IFMT                        = 0xf000\n\tS_IFNAM                       = 0x5000\n\tS_IFPORT                      = 0xe000\n\tS_IFREG                       = 0x8000\n\tS_IFSOCK                      = 0xc000\n\tS_INSEM                       = 0x1\n\tS_INSHD                       = 0x2\n\tS_IREAD                       = 0x100\n\tS_IRGRP                       = 0x20\n\tS_IROTH                       = 0x4\n\tS_IRUSR                       = 0x100\n\tS_IRWXG                       = 0x38\n\tS_IRWXO                       = 0x7\n\tS_IRWXU                       = 0x1c0\n\tS_ISGID                       = 0x400\n\tS_ISUID                       = 0x800\n\tS_ISVTX                       = 0x200\n\tS_IWGRP                       = 0x10\n\tS_IWOTH                       = 0x2\n\tS_IWRITE                      = 0x80\n\tS_IWUSR                       = 0x80\n\tS_IXGRP                       = 0x8\n\tS_IXOTH                       = 0x1\n\tS_IXUSR                       = 0x40\n\tTAB0                          = 0x0\n\tTAB1                          = 0x800\n\tTAB2                          = 0x1000\n\tTAB3                          = 0x1800\n\tTABDLY                        = 0x1800\n\tTCFLSH                        = 0x5407\n\tTCGETA                        = 0x5401\n\tTCGETS                        = 0x540d\n\tTCIFLUSH                      = 0x0\n\tTCIOFF                        = 0x2\n\tTCIOFLUSH                     = 0x2\n\tTCION                         = 0x3\n\tTCOFLUSH                      = 0x1\n\tTCOOFF                        = 0x0\n\tTCOON                         = 0x1\n\tTCP_ABORT_THRESHOLD           = 0x11\n\tTCP_ANONPRIVBIND              = 0x20\n\tTCP_CONGESTION                = 0x25\n\tTCP_CONN_ABORT_THRESHOLD      = 0x13\n\tTCP_CONN_NOTIFY_THRESHOLD     = 0x12\n\tTCP_CORK                      = 0x18\n\tTCP_EXCLBIND                  = 0x21\n\tTCP_INIT_CWND                 = 0x15\n\tTCP_KEEPALIVE                 = 0x8\n\tTCP_KEEPALIVE_ABORT_THRESHOLD = 0x17\n\tTCP_KEEPALIVE_THRESHOLD       = 0x16\n\tTCP_KEEPCNT                   = 0x23\n\tTCP_KEEPIDLE                  = 0x22\n\tTCP_KEEPINTVL                 = 0x24\n\tTCP_LINGER2                   = 0x1c\n\tTCP_MAXSEG                    = 0x2\n\tTCP_MSS                       = 0x218\n\tTCP_NODELAY                   = 0x1\n\tTCP_NOTIFY_THRESHOLD          = 0x10\n\tTCP_RECVDSTADDR               = 0x14\n\tTCP_RTO_INITIAL               = 0x19\n\tTCP_RTO_MAX                   = 0x1b\n\tTCP_RTO_MIN                   = 0x1a\n\tTCSAFLUSH                     = 0x5410\n\tTCSBRK                        = 0x5405\n\tTCSETA                        = 0x5402\n\tTCSETAF                       = 0x5404\n\tTCSETAW                       = 0x5403\n\tTCSETS                        = 0x540e\n\tTCSETSF                       = 0x5410\n\tTCSETSW                       = 0x540f\n\tTCXONC                        = 0x5406\n\tTIMER_ABSTIME                 = 0x1\n\tTIMER_RELTIME                 = 0x0\n\tTIOC                          = 0x5400\n\tTIOCCBRK                      = 0x747a\n\tTIOCCDTR                      = 0x7478\n\tTIOCCILOOP                    = 0x746c\n\tTIOCEXCL                      = 0x740d\n\tTIOCFLUSH                     = 0x7410\n\tTIOCGETC                      = 0x7412\n\tTIOCGETD                      = 0x7400\n\tTIOCGETP                      = 0x7408\n\tTIOCGLTC                      = 0x7474\n\tTIOCGPGRP                     = 0x7414\n\tTIOCGPPS                      = 0x547d\n\tTIOCGPPSEV                    = 0x547f\n\tTIOCGSID                      = 0x7416\n\tTIOCGSOFTCAR                  = 0x5469\n\tTIOCGWINSZ                    = 0x5468\n\tTIOCHPCL                      = 0x7402\n\tTIOCKBOF                      = 0x5409\n\tTIOCKBON                      = 0x5408\n\tTIOCLBIC                      = 0x747e\n\tTIOCLBIS                      = 0x747f\n\tTIOCLGET                      = 0x747c\n\tTIOCLSET                      = 0x747d\n\tTIOCMBIC                      = 0x741c\n\tTIOCMBIS                      = 0x741b\n\tTIOCMGET                      = 0x741d\n\tTIOCMSET                      = 0x741a\n\tTIOCM_CAR                     = 0x40\n\tTIOCM_CD                      = 0x40\n\tTIOCM_CTS                     = 0x20\n\tTIOCM_DSR                     = 0x100\n\tTIOCM_DTR                     = 0x2\n\tTIOCM_LE                      = 0x1\n\tTIOCM_RI                      = 0x80\n\tTIOCM_RNG                     = 0x80\n\tTIOCM_RTS                     = 0x4\n\tTIOCM_SR                      = 0x10\n\tTIOCM_ST                      = 0x8\n\tTIOCNOTTY                     = 0x7471\n\tTIOCNXCL                      = 0x740e\n\tTIOCOUTQ                      = 0x7473\n\tTIOCREMOTE                    = 0x741e\n\tTIOCSBRK                      = 0x747b\n\tTIOCSCTTY                     = 0x7484\n\tTIOCSDTR                      = 0x7479\n\tTIOCSETC                      = 0x7411\n\tTIOCSETD                      = 0x7401\n\tTIOCSETN                      = 0x740a\n\tTIOCSETP                      = 0x7409\n\tTIOCSIGNAL                    = 0x741f\n\tTIOCSILOOP                    = 0x746d\n\tTIOCSLTC                      = 0x7475\n\tTIOCSPGRP                     = 0x7415\n\tTIOCSPPS                      = 0x547e\n\tTIOCSSOFTCAR                  = 0x546a\n\tTIOCSTART                     = 0x746e\n\tTIOCSTI                       = 0x7417\n\tTIOCSTOP                      = 0x746f\n\tTIOCSWINSZ                    = 0x5467\n\tTOSTOP                        = 0x100\n\tUTIME_NOW                     = -0x1\n\tUTIME_OMIT                    = -0x2\n\tVCEOF                         = 0x8\n\tVCEOL                         = 0x9\n\tVDISCARD                      = 0xd\n\tVDSUSP                        = 0xb\n\tVEOF                          = 0x4\n\tVEOL                          = 0x5\n\tVEOL2                         = 0x6\n\tVERASE                        = 0x2\n\tVERASE2                       = 0x11\n\tVINTR                         = 0x0\n\tVKILL                         = 0x3\n\tVLNEXT                        = 0xf\n\tVMIN                          = 0x4\n\tVQUIT                         = 0x1\n\tVREPRINT                      = 0xc\n\tVSTART                        = 0x8\n\tVSTATUS                       = 0x10\n\tVSTOP                         = 0x9\n\tVSUSP                         = 0xa\n\tVSWTCH                        = 0x7\n\tVT0                           = 0x0\n\tVT1                           = 0x4000\n\tVTDLY                         = 0x4000\n\tVTIME                         = 0x5\n\tVWERASE                       = 0xe\n\tWCONTFLG                      = 0xffff\n\tWCONTINUED                    = 0x8\n\tWCOREFLG                      = 0x80\n\tWEXITED                       = 0x1\n\tWNOHANG                       = 0x40\n\tWNOWAIT                       = 0x80\n\tWOPTMASK                      = 0xcf\n\tWRAP                          = 0x20000\n\tWSIGMASK                      = 0x7f\n\tWSTOPFLG                      = 0x7f\n\tWSTOPPED                      = 0x4\n\tWTRAPPED                      = 0x2\n\tWUNTRACED                     = 0x4\n\tXCASE                         = 0x4\n\tXTABS                         = 0x1800\n)\n\n// Errors\nconst (\n\tE2BIG           = syscall.Errno(0x7)\n\tEACCES          = syscall.Errno(0xd)\n\tEADDRINUSE      = syscall.Errno(0x7d)\n\tEADDRNOTAVAIL   = syscall.Errno(0x7e)\n\tEADV            = syscall.Errno(0x44)\n\tEAFNOSUPPORT    = syscall.Errno(0x7c)\n\tEAGAIN          = syscall.Errno(0xb)\n\tEALREADY        = syscall.Errno(0x95)\n\tEBADE           = syscall.Errno(0x32)\n\tEBADF           = syscall.Errno(0x9)\n\tEBADFD          = syscall.Errno(0x51)\n\tEBADMSG         = syscall.Errno(0x4d)\n\tEBADR           = syscall.Errno(0x33)\n\tEBADRQC         = syscall.Errno(0x36)\n\tEBADSLT         = syscall.Errno(0x37)\n\tEBFONT          = syscall.Errno(0x39)\n\tEBUSY           = syscall.Errno(0x10)\n\tECANCELED       = syscall.Errno(0x2f)\n\tECHILD          = syscall.Errno(0xa)\n\tECHRNG          = syscall.Errno(0x25)\n\tECOMM           = syscall.Errno(0x46)\n\tECONNABORTED    = syscall.Errno(0x82)\n\tECONNREFUSED    = syscall.Errno(0x92)\n\tECONNRESET      = syscall.Errno(0x83)\n\tEDEADLK         = syscall.Errno(0x2d)\n\tEDEADLOCK       = syscall.Errno(0x38)\n\tEDESTADDRREQ    = syscall.Errno(0x60)\n\tEDOM            = syscall.Errno(0x21)\n\tEDQUOT          = syscall.Errno(0x31)\n\tEEXIST          = syscall.Errno(0x11)\n\tEFAULT          = syscall.Errno(0xe)\n\tEFBIG           = syscall.Errno(0x1b)\n\tEHOSTDOWN       = syscall.Errno(0x93)\n\tEHOSTUNREACH    = syscall.Errno(0x94)\n\tEIDRM           = syscall.Errno(0x24)\n\tEILSEQ          = syscall.Errno(0x58)\n\tEINPROGRESS     = syscall.Errno(0x96)\n\tEINTR           = syscall.Errno(0x4)\n\tEINVAL          = syscall.Errno(0x16)\n\tEIO             = syscall.Errno(0x5)\n\tEISCONN         = syscall.Errno(0x85)\n\tEISDIR          = syscall.Errno(0x15)\n\tEL2HLT          = syscall.Errno(0x2c)\n\tEL2NSYNC        = syscall.Errno(0x26)\n\tEL3HLT          = syscall.Errno(0x27)\n\tEL3RST          = syscall.Errno(0x28)\n\tELIBACC         = syscall.Errno(0x53)\n\tELIBBAD         = syscall.Errno(0x54)\n\tELIBEXEC        = syscall.Errno(0x57)\n\tELIBMAX         = syscall.Errno(0x56)\n\tELIBSCN         = syscall.Errno(0x55)\n\tELNRNG          = syscall.Errno(0x29)\n\tELOCKUNMAPPED   = syscall.Errno(0x48)\n\tELOOP           = syscall.Errno(0x5a)\n\tEMFILE          = syscall.Errno(0x18)\n\tEMLINK          = syscall.Errno(0x1f)\n\tEMSGSIZE        = syscall.Errno(0x61)\n\tEMULTIHOP       = syscall.Errno(0x4a)\n\tENAMETOOLONG    = syscall.Errno(0x4e)\n\tENETDOWN        = syscall.Errno(0x7f)\n\tENETRESET       = syscall.Errno(0x81)\n\tENETUNREACH     = syscall.Errno(0x80)\n\tENFILE          = syscall.Errno(0x17)\n\tENOANO          = syscall.Errno(0x35)\n\tENOBUFS         = syscall.Errno(0x84)\n\tENOCSI          = syscall.Errno(0x2b)\n\tENODATA         = syscall.Errno(0x3d)\n\tENODEV          = syscall.Errno(0x13)\n\tENOENT          = syscall.Errno(0x2)\n\tENOEXEC         = syscall.Errno(0x8)\n\tENOLCK          = syscall.Errno(0x2e)\n\tENOLINK         = syscall.Errno(0x43)\n\tENOMEM          = syscall.Errno(0xc)\n\tENOMSG          = syscall.Errno(0x23)\n\tENONET          = syscall.Errno(0x40)\n\tENOPKG          = syscall.Errno(0x41)\n\tENOPROTOOPT     = syscall.Errno(0x63)\n\tENOSPC          = syscall.Errno(0x1c)\n\tENOSR           = syscall.Errno(0x3f)\n\tENOSTR          = syscall.Errno(0x3c)\n\tENOSYS          = syscall.Errno(0x59)\n\tENOTACTIVE      = syscall.Errno(0x49)\n\tENOTBLK         = syscall.Errno(0xf)\n\tENOTCONN        = syscall.Errno(0x86)\n\tENOTDIR         = syscall.Errno(0x14)\n\tENOTEMPTY       = syscall.Errno(0x5d)\n\tENOTRECOVERABLE = syscall.Errno(0x3b)\n\tENOTSOCK        = syscall.Errno(0x5f)\n\tENOTSUP         = syscall.Errno(0x30)\n\tENOTTY          = syscall.Errno(0x19)\n\tENOTUNIQ        = syscall.Errno(0x50)\n\tENXIO           = syscall.Errno(0x6)\n\tEOPNOTSUPP      = syscall.Errno(0x7a)\n\tEOVERFLOW       = syscall.Errno(0x4f)\n\tEOWNERDEAD      = syscall.Errno(0x3a)\n\tEPERM           = syscall.Errno(0x1)\n\tEPFNOSUPPORT    = syscall.Errno(0x7b)\n\tEPIPE           = syscall.Errno(0x20)\n\tEPROTO          = syscall.Errno(0x47)\n\tEPROTONOSUPPORT = syscall.Errno(0x78)\n\tEPROTOTYPE      = syscall.Errno(0x62)\n\tERANGE          = syscall.Errno(0x22)\n\tEREMCHG         = syscall.Errno(0x52)\n\tEREMOTE         = syscall.Errno(0x42)\n\tERESTART        = syscall.Errno(0x5b)\n\tEROFS           = syscall.Errno(0x1e)\n\tESHUTDOWN       = syscall.Errno(0x8f)\n\tESOCKTNOSUPPORT = syscall.Errno(0x79)\n\tESPIPE          = syscall.Errno(0x1d)\n\tESRCH           = syscall.Errno(0x3)\n\tESRMNT          = syscall.Errno(0x45)\n\tESTALE          = syscall.Errno(0x97)\n\tESTRPIPE        = syscall.Errno(0x5c)\n\tETIME           = syscall.Errno(0x3e)\n\tETIMEDOUT       = syscall.Errno(0x91)\n\tETOOMANYREFS    = syscall.Errno(0x90)\n\tETXTBSY         = syscall.Errno(0x1a)\n\tEUNATCH         = syscall.Errno(0x2a)\n\tEUSERS          = syscall.Errno(0x5e)\n\tEWOULDBLOCK     = syscall.Errno(0xb)\n\tEXDEV           = syscall.Errno(0x12)\n\tEXFULL          = syscall.Errno(0x34)\n)\n\n// Signals\nconst (\n\tSIGABRT    = syscall.Signal(0x6)\n\tSIGALRM    = syscall.Signal(0xe)\n\tSIGBUS     = syscall.Signal(0xa)\n\tSIGCANCEL  = syscall.Signal(0x24)\n\tSIGCHLD    = syscall.Signal(0x12)\n\tSIGCLD     = syscall.Signal(0x12)\n\tSIGCONT    = syscall.Signal(0x19)\n\tSIGEMT     = syscall.Signal(0x7)\n\tSIGFPE     = syscall.Signal(0x8)\n\tSIGFREEZE  = syscall.Signal(0x22)\n\tSIGHUP     = syscall.Signal(0x1)\n\tSIGILL     = syscall.Signal(0x4)\n\tSIGINFO    = syscall.Signal(0x29)\n\tSIGINT     = syscall.Signal(0x2)\n\tSIGIO      = syscall.Signal(0x16)\n\tSIGIOT     = syscall.Signal(0x6)\n\tSIGJVM1    = syscall.Signal(0x27)\n\tSIGJVM2    = syscall.Signal(0x28)\n\tSIGKILL    = syscall.Signal(0x9)\n\tSIGLOST    = syscall.Signal(0x25)\n\tSIGLWP     = syscall.Signal(0x21)\n\tSIGPIPE    = syscall.Signal(0xd)\n\tSIGPOLL    = syscall.Signal(0x16)\n\tSIGPROF    = syscall.Signal(0x1d)\n\tSIGPWR     = syscall.Signal(0x13)\n\tSIGQUIT    = syscall.Signal(0x3)\n\tSIGSEGV    = syscall.Signal(0xb)\n\tSIGSTOP    = syscall.Signal(0x17)\n\tSIGSYS     = syscall.Signal(0xc)\n\tSIGTERM    = syscall.Signal(0xf)\n\tSIGTHAW    = syscall.Signal(0x23)\n\tSIGTRAP    = syscall.Signal(0x5)\n\tSIGTSTP    = syscall.Signal(0x18)\n\tSIGTTIN    = syscall.Signal(0x1a)\n\tSIGTTOU    = syscall.Signal(0x1b)\n\tSIGURG     = syscall.Signal(0x15)\n\tSIGUSR1    = syscall.Signal(0x10)\n\tSIGUSR2    = syscall.Signal(0x11)\n\tSIGVTALRM  = syscall.Signal(0x1c)\n\tSIGWAITING = syscall.Signal(0x20)\n\tSIGWINCH   = syscall.Signal(0x14)\n\tSIGXCPU    = syscall.Signal(0x1e)\n\tSIGXFSZ    = syscall.Signal(0x1f)\n\tSIGXRES    = syscall.Signal(0x26)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  syscall.Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EPERM\", \"not owner\"},\n\t{2, \"ENOENT\", \"no such file or directory\"},\n\t{3, \"ESRCH\", \"no such process\"},\n\t{4, \"EINTR\", \"interrupted system call\"},\n\t{5, \"EIO\", \"I/O error\"},\n\t{6, \"ENXIO\", \"no such device or address\"},\n\t{7, \"E2BIG\", \"arg list too long\"},\n\t{8, \"ENOEXEC\", \"exec format error\"},\n\t{9, \"EBADF\", \"bad file number\"},\n\t{10, \"ECHILD\", \"no child processes\"},\n\t{11, \"EAGAIN\", \"resource temporarily unavailable\"},\n\t{12, \"ENOMEM\", \"not enough space\"},\n\t{13, \"EACCES\", \"permission denied\"},\n\t{14, \"EFAULT\", \"bad address\"},\n\t{15, \"ENOTBLK\", \"block device required\"},\n\t{16, \"EBUSY\", \"device busy\"},\n\t{17, \"EEXIST\", \"file exists\"},\n\t{18, \"EXDEV\", \"cross-device link\"},\n\t{19, \"ENODEV\", \"no such device\"},\n\t{20, \"ENOTDIR\", \"not a directory\"},\n\t{21, \"EISDIR\", \"is a directory\"},\n\t{22, \"EINVAL\", \"invalid argument\"},\n\t{23, \"ENFILE\", \"file table overflow\"},\n\t{24, \"EMFILE\", \"too many open files\"},\n\t{25, \"ENOTTY\", \"inappropriate ioctl for device\"},\n\t{26, \"ETXTBSY\", \"text file busy\"},\n\t{27, \"EFBIG\", \"file too large\"},\n\t{28, \"ENOSPC\", \"no space left on device\"},\n\t{29, \"ESPIPE\", \"illegal seek\"},\n\t{30, \"EROFS\", \"read-only file system\"},\n\t{31, \"EMLINK\", \"too many links\"},\n\t{32, \"EPIPE\", \"broken pipe\"},\n\t{33, \"EDOM\", \"argument out of domain\"},\n\t{34, \"ERANGE\", \"result too large\"},\n\t{35, \"ENOMSG\", \"no message of desired type\"},\n\t{36, \"EIDRM\", \"identifier removed\"},\n\t{37, \"ECHRNG\", \"channel number out of range\"},\n\t{38, \"EL2NSYNC\", \"level 2 not synchronized\"},\n\t{39, \"EL3HLT\", \"level 3 halted\"},\n\t{40, \"EL3RST\", \"level 3 reset\"},\n\t{41, \"ELNRNG\", \"link number out of range\"},\n\t{42, \"EUNATCH\", \"protocol driver not attached\"},\n\t{43, \"ENOCSI\", \"no CSI structure available\"},\n\t{44, \"EL2HLT\", \"level 2 halted\"},\n\t{45, \"EDEADLK\", \"deadlock situation detected/avoided\"},\n\t{46, \"ENOLCK\", \"no record locks available\"},\n\t{47, \"ECANCELED\", \"operation canceled\"},\n\t{48, \"ENOTSUP\", \"operation not supported\"},\n\t{49, \"EDQUOT\", \"disc quota exceeded\"},\n\t{50, \"EBADE\", \"bad exchange descriptor\"},\n\t{51, \"EBADR\", \"bad request descriptor\"},\n\t{52, \"EXFULL\", \"message tables full\"},\n\t{53, \"ENOANO\", \"anode table overflow\"},\n\t{54, \"EBADRQC\", \"bad request code\"},\n\t{55, \"EBADSLT\", \"invalid slot\"},\n\t{56, \"EDEADLOCK\", \"file locking deadlock\"},\n\t{57, \"EBFONT\", \"bad font file format\"},\n\t{58, \"EOWNERDEAD\", \"owner of the lock died\"},\n\t{59, \"ENOTRECOVERABLE\", \"lock is not recoverable\"},\n\t{60, \"ENOSTR\", \"not a stream device\"},\n\t{61, \"ENODATA\", \"no data available\"},\n\t{62, \"ETIME\", \"timer expired\"},\n\t{63, \"ENOSR\", \"out of stream resources\"},\n\t{64, \"ENONET\", \"machine is not on the network\"},\n\t{65, \"ENOPKG\", \"package not installed\"},\n\t{66, \"EREMOTE\", \"object is remote\"},\n\t{67, \"ENOLINK\", \"link has been severed\"},\n\t{68, \"EADV\", \"advertise error\"},\n\t{69, \"ESRMNT\", \"srmount error\"},\n\t{70, \"ECOMM\", \"communication error on send\"},\n\t{71, \"EPROTO\", \"protocol error\"},\n\t{72, \"ELOCKUNMAPPED\", \"locked lock was unmapped \"},\n\t{73, \"ENOTACTIVE\", \"facility is not active\"},\n\t{74, \"EMULTIHOP\", \"multihop attempted\"},\n\t{77, \"EBADMSG\", \"not a data message\"},\n\t{78, \"ENAMETOOLONG\", \"file name too long\"},\n\t{79, \"EOVERFLOW\", \"value too large for defined data type\"},\n\t{80, \"ENOTUNIQ\", \"name not unique on network\"},\n\t{81, \"EBADFD\", \"file descriptor in bad state\"},\n\t{82, \"EREMCHG\", \"remote address changed\"},\n\t{83, \"ELIBACC\", \"can not access a needed shared library\"},\n\t{84, \"ELIBBAD\", \"accessing a corrupted shared library\"},\n\t{85, \"ELIBSCN\", \".lib section in a.out corrupted\"},\n\t{86, \"ELIBMAX\", \"attempting to link in more shared libraries than system limit\"},\n\t{87, \"ELIBEXEC\", \"can not exec a shared library directly\"},\n\t{88, \"EILSEQ\", \"illegal byte sequence\"},\n\t{89, \"ENOSYS\", \"operation not applicable\"},\n\t{90, \"ELOOP\", \"number of symbolic links encountered during path name traversal exceeds MAXSYMLINKS\"},\n\t{91, \"ERESTART\", \"error 91\"},\n\t{92, \"ESTRPIPE\", \"error 92\"},\n\t{93, \"ENOTEMPTY\", \"directory not empty\"},\n\t{94, \"EUSERS\", \"too many users\"},\n\t{95, \"ENOTSOCK\", \"socket operation on non-socket\"},\n\t{96, \"EDESTADDRREQ\", \"destination address required\"},\n\t{97, \"EMSGSIZE\", \"message too long\"},\n\t{98, \"EPROTOTYPE\", \"protocol wrong type for socket\"},\n\t{99, \"ENOPROTOOPT\", \"option not supported by protocol\"},\n\t{120, \"EPROTONOSUPPORT\", \"protocol not supported\"},\n\t{121, \"ESOCKTNOSUPPORT\", \"socket type not supported\"},\n\t{122, \"EOPNOTSUPP\", \"operation not supported on transport endpoint\"},\n\t{123, \"EPFNOSUPPORT\", \"protocol family not supported\"},\n\t{124, \"EAFNOSUPPORT\", \"address family not supported by protocol family\"},\n\t{125, \"EADDRINUSE\", \"address already in use\"},\n\t{126, \"EADDRNOTAVAIL\", \"cannot assign requested address\"},\n\t{127, \"ENETDOWN\", \"network is down\"},\n\t{128, \"ENETUNREACH\", \"network is unreachable\"},\n\t{129, \"ENETRESET\", \"network dropped connection because of reset\"},\n\t{130, \"ECONNABORTED\", \"software caused connection abort\"},\n\t{131, \"ECONNRESET\", \"connection reset by peer\"},\n\t{132, \"ENOBUFS\", \"no buffer space available\"},\n\t{133, \"EISCONN\", \"transport endpoint is already connected\"},\n\t{134, \"ENOTCONN\", \"transport endpoint is not connected\"},\n\t{143, \"ESHUTDOWN\", \"cannot send after socket shutdown\"},\n\t{144, \"ETOOMANYREFS\", \"too many references: cannot splice\"},\n\t{145, \"ETIMEDOUT\", \"connection timed out\"},\n\t{146, \"ECONNREFUSED\", \"connection refused\"},\n\t{147, \"EHOSTDOWN\", \"host is down\"},\n\t{148, \"EHOSTUNREACH\", \"no route to host\"},\n\t{149, \"EALREADY\", \"operation already in progress\"},\n\t{150, \"EINPROGRESS\", \"operation now in progress\"},\n\t{151, \"ESTALE\", \"stale NFS file handle\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  syscall.Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGQUIT\", \"quit\"},\n\t{4, \"SIGILL\", \"illegal Instruction\"},\n\t{5, \"SIGTRAP\", \"trace/Breakpoint Trap\"},\n\t{6, \"SIGABRT\", \"abort\"},\n\t{7, \"SIGEMT\", \"emulation Trap\"},\n\t{8, \"SIGFPE\", \"arithmetic Exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus Error\"},\n\t{11, \"SIGSEGV\", \"segmentation Fault\"},\n\t{12, \"SIGSYS\", \"bad System Call\"},\n\t{13, \"SIGPIPE\", \"broken Pipe\"},\n\t{14, \"SIGALRM\", \"alarm Clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGUSR1\", \"user Signal 1\"},\n\t{17, \"SIGUSR2\", \"user Signal 2\"},\n\t{18, \"SIGCHLD\", \"child Status Changed\"},\n\t{19, \"SIGPWR\", \"power-Fail/Restart\"},\n\t{20, \"SIGWINCH\", \"window Size Change\"},\n\t{21, \"SIGURG\", \"urgent Socket Condition\"},\n\t{22, \"SIGIO\", \"pollable Event\"},\n\t{23, \"SIGSTOP\", \"stopped (signal)\"},\n\t{24, \"SIGTSTP\", \"stopped (user)\"},\n\t{25, \"SIGCONT\", \"continued\"},\n\t{26, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{27, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{28, \"SIGVTALRM\", \"virtual Timer Expired\"},\n\t{29, \"SIGPROF\", \"profiling Timer Expired\"},\n\t{30, \"SIGXCPU\", \"cpu Limit Exceeded\"},\n\t{31, \"SIGXFSZ\", \"file Size Limit Exceeded\"},\n\t{32, \"SIGWAITING\", \"no runnable lwp\"},\n\t{33, \"SIGLWP\", \"inter-lwp signal\"},\n\t{34, \"SIGFREEZE\", \"checkpoint Freeze\"},\n\t{35, \"SIGTHAW\", \"checkpoint Thaw\"},\n\t{36, \"SIGCANCEL\", \"thread Cancellation\"},\n\t{37, \"SIGLOST\", \"resource Lost\"},\n\t{38, \"SIGXRES\", \"resource Control Exceeded\"},\n\t{39, \"SIGJVM1\", \"reserved for JVM 1\"},\n\t{40, \"SIGJVM2\", \"reserved for JVM 2\"},\n\t{41, \"SIGINFO\", \"information Request\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build zos && s390x\n\n// Hand edited based on zerrors_linux_s390x.go\n// TODO: auto-generate.\n\npackage unix\n\nconst (\n\tBRKINT                   = 0x0001\n\tCLOCAL                   = 0x1\n\tCLOCK_MONOTONIC          = 0x1\n\tCLOCK_PROCESS_CPUTIME_ID = 0x2\n\tCLOCK_REALTIME           = 0x0\n\tCLOCK_THREAD_CPUTIME_ID  = 0x3\n\tCLONE_NEWIPC             = 0x08000000\n\tCLONE_NEWNET             = 0x40000000\n\tCLONE_NEWNS              = 0x00020000\n\tCLONE_NEWPID             = 0x20000000\n\tCLONE_NEWUTS             = 0x04000000\n\tCLONE_PARENT             = 0x00008000\n\tCS8                      = 0x0030\n\tCSIZE                    = 0x0030\n\tECHO                     = 0x00000008\n\tECHONL                   = 0x00000001\n\tEFD_SEMAPHORE            = 0x00002000\n\tEFD_CLOEXEC              = 0x00001000\n\tEFD_NONBLOCK             = 0x00000004\n\tEPOLL_CLOEXEC            = 0x00001000\n\tEPOLL_CTL_ADD            = 0\n\tEPOLL_CTL_MOD            = 1\n\tEPOLL_CTL_DEL            = 2\n\tEPOLLRDNORM              = 0x0001\n\tEPOLLRDBAND              = 0x0002\n\tEPOLLIN                  = 0x0003\n\tEPOLLOUT                 = 0x0004\n\tEPOLLWRBAND              = 0x0008\n\tEPOLLPRI                 = 0x0010\n\tEPOLLERR                 = 0x0020\n\tEPOLLHUP                 = 0x0040\n\tEPOLLEXCLUSIVE           = 0x20000000\n\tEPOLLONESHOT             = 0x40000000\n\tFD_CLOEXEC               = 0x01\n\tFD_CLOFORK               = 0x02\n\tFD_SETSIZE               = 0x800\n\tFNDELAY                  = 0x04\n\tF_CLOSFD                 = 9\n\tF_CONTROL_CVT            = 13\n\tF_DUPFD                  = 0\n\tF_DUPFD2                 = 8\n\tF_GETFD                  = 1\n\tF_GETFL                  = 259\n\tF_GETLK                  = 5\n\tF_GETOWN                 = 10\n\tF_OK                     = 0x0\n\tF_RDLCK                  = 1\n\tF_SETFD                  = 2\n\tF_SETFL                  = 4\n\tF_SETLK                  = 6\n\tF_SETLKW                 = 7\n\tF_SETOWN                 = 11\n\tF_SETTAG                 = 12\n\tF_UNLCK                  = 3\n\tF_WRLCK                  = 2\n\tFSTYPE_ZFS               = 0xe9 //\"Z\"\n\tFSTYPE_HFS               = 0xc8 //\"H\"\n\tFSTYPE_NFS               = 0xd5 //\"N\"\n\tFSTYPE_TFS               = 0xe3 //\"T\"\n\tFSTYPE_AUTOMOUNT         = 0xc1 //\"A\"\n\tGRND_NONBLOCK            = 1\n\tGRND_RANDOM              = 2\n\tHUPCL                    = 0x0100 // Hang up on last close\n\tIN_CLOEXEC               = 0x00001000\n\tIN_NONBLOCK              = 0x00000004\n\tIN_ACCESS                = 0x00000001\n\tIN_MODIFY                = 0x00000002\n\tIN_ATTRIB                = 0x00000004\n\tIN_CLOSE_WRITE           = 0x00000008\n\tIN_CLOSE_NOWRITE         = 0x00000010\n\tIN_OPEN                  = 0x00000020\n\tIN_MOVED_FROM            = 0x00000040\n\tIN_MOVED_TO              = 0x00000080\n\tIN_CREATE                = 0x00000100\n\tIN_DELETE                = 0x00000200\n\tIN_DELETE_SELF           = 0x00000400\n\tIN_MOVE_SELF             = 0x00000800\n\tIN_UNMOUNT               = 0x00002000\n\tIN_Q_OVERFLOW            = 0x00004000\n\tIN_IGNORED               = 0x00008000\n\tIN_CLOSE                 = (IN_CLOSE_WRITE | IN_CLOSE_NOWRITE)\n\tIN_MOVE                  = (IN_MOVED_FROM | IN_MOVED_TO)\n\tIN_ALL_EVENTS            = (IN_ACCESS | IN_MODIFY | IN_ATTRIB |\n\t\tIN_CLOSE | IN_OPEN | IN_MOVE |\n\t\tIN_CREATE | IN_DELETE | IN_DELETE_SELF |\n\t\tIN_MOVE_SELF)\n\tIN_ONLYDIR                      = 0x01000000\n\tIN_DONT_FOLLOW                  = 0x02000000\n\tIN_EXCL_UNLINK                  = 0x04000000\n\tIN_MASK_CREATE                  = 0x10000000\n\tIN_MASK_ADD                     = 0x20000000\n\tIN_ISDIR                        = 0x40000000\n\tIN_ONESHOT                      = 0x80000000\n\tIP6F_MORE_FRAG                  = 0x0001\n\tIP6F_OFF_MASK                   = 0xfff8\n\tIP6F_RESERVED_MASK              = 0x0006\n\tIP6OPT_JUMBO                    = 0xc2\n\tIP6OPT_JUMBO_LEN                = 6\n\tIP6OPT_MUTABLE                  = 0x20\n\tIP6OPT_NSAP_ADDR                = 0xc3\n\tIP6OPT_PAD1                     = 0x00\n\tIP6OPT_PADN                     = 0x01\n\tIP6OPT_ROUTER_ALERT             = 0x05\n\tIP6OPT_TUNNEL_LIMIT             = 0x04\n\tIP6OPT_TYPE_DISCARD             = 0x40\n\tIP6OPT_TYPE_FORCEICMP           = 0x80\n\tIP6OPT_TYPE_ICMP                = 0xc0\n\tIP6OPT_TYPE_SKIP                = 0x00\n\tIP6_ALERT_AN                    = 0x0002\n\tIP6_ALERT_MLD                   = 0x0000\n\tIP6_ALERT_RSVP                  = 0x0001\n\tIPPORT_RESERVED                 = 1024\n\tIPPORT_USERRESERVED             = 5000\n\tIPPROTO_AH                      = 51\n\tSOL_AH                          = 51\n\tIPPROTO_DSTOPTS                 = 60\n\tSOL_DSTOPTS                     = 60\n\tIPPROTO_EGP                     = 8\n\tSOL_EGP                         = 8\n\tIPPROTO_ESP                     = 50\n\tSOL_ESP                         = 50\n\tIPPROTO_FRAGMENT                = 44\n\tSOL_FRAGMENT                    = 44\n\tIPPROTO_GGP                     = 2\n\tSOL_GGP                         = 2\n\tIPPROTO_HOPOPTS                 = 0\n\tSOL_HOPOPTS                     = 0\n\tIPPROTO_ICMP                    = 1\n\tSOL_ICMP                        = 1\n\tIPPROTO_ICMPV6                  = 58\n\tSOL_ICMPV6                      = 58\n\tIPPROTO_IDP                     = 22\n\tSOL_IDP                         = 22\n\tIPPROTO_IP                      = 0\n\tSOL_IP                          = 0\n\tIPPROTO_IPV6                    = 41\n\tSOL_IPV6                        = 41\n\tIPPROTO_MAX                     = 256\n\tSOL_MAX                         = 256\n\tIPPROTO_NONE                    = 59\n\tSOL_NONE                        = 59\n\tIPPROTO_PUP                     = 12\n\tSOL_PUP                         = 12\n\tIPPROTO_RAW                     = 255\n\tSOL_RAW                         = 255\n\tIPPROTO_ROUTING                 = 43\n\tSOL_ROUTING                     = 43\n\tIPPROTO_TCP                     = 6\n\tSOL_TCP                         = 6\n\tIPPROTO_UDP                     = 17\n\tSOL_UDP                         = 17\n\tIPV6_ADDR_PREFERENCES           = 32\n\tIPV6_CHECKSUM                   = 19\n\tIPV6_DONTFRAG                   = 29\n\tIPV6_DSTOPTS                    = 23\n\tIPV6_HOPLIMIT                   = 11\n\tIPV6_HOPOPTS                    = 22\n\tIPV6_JOIN_GROUP                 = 5\n\tIPV6_LEAVE_GROUP                = 6\n\tIPV6_MULTICAST_HOPS             = 9\n\tIPV6_MULTICAST_IF               = 7\n\tIPV6_MULTICAST_LOOP             = 4\n\tIPV6_NEXTHOP                    = 20\n\tIPV6_PATHMTU                    = 12\n\tIPV6_PKTINFO                    = 13\n\tIPV6_PREFER_SRC_CGA             = 0x10\n\tIPV6_PREFER_SRC_COA             = 0x02\n\tIPV6_PREFER_SRC_HOME            = 0x01\n\tIPV6_PREFER_SRC_NONCGA          = 0x20\n\tIPV6_PREFER_SRC_PUBLIC          = 0x08\n\tIPV6_PREFER_SRC_TMP             = 0x04\n\tIPV6_RECVDSTOPTS                = 28\n\tIPV6_RECVHOPLIMIT               = 14\n\tIPV6_RECVHOPOPTS                = 26\n\tIPV6_RECVPATHMTU                = 16\n\tIPV6_RECVPKTINFO                = 15\n\tIPV6_RECVRTHDR                  = 25\n\tIPV6_RECVTCLASS                 = 31\n\tIPV6_RTHDR                      = 21\n\tIPV6_RTHDRDSTOPTS               = 24\n\tIPV6_RTHDR_TYPE_0               = 0\n\tIPV6_TCLASS                     = 30\n\tIPV6_UNICAST_HOPS               = 3\n\tIPV6_USE_MIN_MTU                = 18\n\tIPV6_V6ONLY                     = 10\n\tIP_ADD_MEMBERSHIP               = 5\n\tIP_ADD_SOURCE_MEMBERSHIP        = 12\n\tIP_BLOCK_SOURCE                 = 10\n\tIP_DEFAULT_MULTICAST_LOOP       = 1\n\tIP_DEFAULT_MULTICAST_TTL        = 1\n\tIP_DROP_MEMBERSHIP              = 6\n\tIP_DROP_SOURCE_MEMBERSHIP       = 13\n\tIP_MAX_MEMBERSHIPS              = 20\n\tIP_MULTICAST_IF                 = 7\n\tIP_MULTICAST_LOOP               = 4\n\tIP_MULTICAST_TTL                = 3\n\tIP_OPTIONS                      = 1\n\tIP_PKTINFO                      = 101\n\tIP_RECVPKTINFO                  = 102\n\tIP_TOS                          = 2\n\tIP_TTL                          = 14\n\tIP_UNBLOCK_SOURCE               = 11\n\tICMP6_FILTER                    = 1\n\tMCAST_INCLUDE                   = 0\n\tMCAST_EXCLUDE                   = 1\n\tMCAST_JOIN_GROUP                = 40\n\tMCAST_LEAVE_GROUP               = 41\n\tMCAST_JOIN_SOURCE_GROUP         = 42\n\tMCAST_LEAVE_SOURCE_GROUP        = 43\n\tMCAST_BLOCK_SOURCE              = 44\n\tMCAST_UNBLOCK_SOURCE            = 46\n\tICANON                          = 0x0010\n\tICRNL                           = 0x0002\n\tIEXTEN                          = 0x0020\n\tIGNBRK                          = 0x0004\n\tIGNCR                           = 0x0008\n\tINLCR                           = 0x0020\n\tISIG                            = 0x0040\n\tISTRIP                          = 0x0080\n\tIXON                            = 0x0200\n\tIXOFF                           = 0x0100\n\tLOCK_SH                         = 0x1\n\tLOCK_EX                         = 0x2\n\tLOCK_NB                         = 0x4\n\tLOCK_UN                         = 0x8\n\tPOLLIN                          = 0x0003\n\tPOLLOUT                         = 0x0004\n\tPOLLPRI                         = 0x0010\n\tPOLLERR                         = 0x0020\n\tPOLLHUP                         = 0x0040\n\tPOLLNVAL                        = 0x0080\n\tPROT_READ                       = 0x1 // mmap - page can be read\n\tPROT_WRITE                      = 0x2 // page can be written\n\tPROT_NONE                       = 0x4 // can't be accessed\n\tPROT_EXEC                       = 0x8 // can be executed\n\tMAP_PRIVATE                     = 0x1 // changes are private\n\tMAP_SHARED                      = 0x2 // changes are shared\n\tMAP_FIXED                       = 0x4 // place exactly\n\t__MAP_MEGA                      = 0x8\n\t__MAP_64                        = 0x10\n\tMAP_ANON                        = 0x20\n\tMAP_ANONYMOUS                   = 0x20\n\tMS_SYNC                         = 0x1 // msync - synchronous writes\n\tMS_ASYNC                        = 0x2 // asynchronous writes\n\tMS_INVALIDATE                   = 0x4 // invalidate mappings\n\tMS_BIND                         = 0x00001000\n\tMS_MOVE                         = 0x00002000\n\tMS_NOSUID                       = 0x00000002\n\tMS_PRIVATE                      = 0x00040000\n\tMS_REC                          = 0x00004000\n\tMS_REMOUNT                      = 0x00008000\n\tMS_RDONLY                       = 0x00000001\n\tMS_UNBINDABLE                   = 0x00020000\n\tMNT_DETACH                      = 0x00000004\n\tZOSDSFS_SUPER_MAGIC             = 0x44534653 // zOS DSFS\n\tNFS_SUPER_MAGIC                 = 0x6969     // NFS\n\tNSFS_MAGIC                      = 0x6e736673 // PROCNS\n\tPROC_SUPER_MAGIC                = 0x9fa0     // proc FS\n\tZOSTFS_SUPER_MAGIC              = 0x544653   // zOS TFS\n\tZOSUFS_SUPER_MAGIC              = 0x554653   // zOS UFS\n\tZOSZFS_SUPER_MAGIC              = 0x5A4653   // zOS ZFS\n\tMTM_RDONLY                      = 0x80000000\n\tMTM_RDWR                        = 0x40000000\n\tMTM_UMOUNT                      = 0x10000000\n\tMTM_IMMED                       = 0x08000000\n\tMTM_FORCE                       = 0x04000000\n\tMTM_DRAIN                       = 0x02000000\n\tMTM_RESET                       = 0x01000000\n\tMTM_SAMEMODE                    = 0x00100000\n\tMTM_UNQSEFORCE                  = 0x00040000\n\tMTM_NOSUID                      = 0x00000400\n\tMTM_SYNCHONLY                   = 0x00000200\n\tMTM_REMOUNT                     = 0x00000100\n\tMTM_NOSECURITY                  = 0x00000080\n\tNFDBITS                         = 0x20\n\tONLRET                          = 0x0020 // NL performs CR function\n\tO_ACCMODE                       = 0x03\n\tO_APPEND                        = 0x08\n\tO_ASYNCSIG                      = 0x0200\n\tO_CREAT                         = 0x80\n\tO_DIRECT                        = 0x00002000\n\tO_NOFOLLOW                      = 0x00004000\n\tO_DIRECTORY                     = 0x00008000\n\tO_PATH                          = 0x00080000\n\tO_CLOEXEC                       = 0x00001000\n\tO_EXCL                          = 0x40\n\tO_GETFL                         = 0x0F\n\tO_LARGEFILE                     = 0x0400\n\tO_NDELAY                        = 0x4\n\tO_NONBLOCK                      = 0x04\n\tO_RDONLY                        = 0x02\n\tO_RDWR                          = 0x03\n\tO_SYNC                          = 0x0100\n\tO_TRUNC                         = 0x10\n\tO_WRONLY                        = 0x01\n\tO_NOCTTY                        = 0x20\n\tOPOST                           = 0x0001\n\tONLCR                           = 0x0004\n\tPARENB                          = 0x0200\n\tPARMRK                          = 0x0400\n\tQUERYCVT                        = 3\n\tRUSAGE_CHILDREN                 = -0x1\n\tRUSAGE_SELF                     = 0x0 // RUSAGE_THREAD unsupported on z/OS\n\tSEEK_CUR                        = 1\n\tSEEK_END                        = 2\n\tSEEK_SET                        = 0\n\tSETAUTOCVTALL                   = 5\n\tSETAUTOCVTON                    = 2\n\tSETCVTALL                       = 4\n\tSETCVTOFF                       = 0\n\tSETCVTON                        = 1\n\tAF_APPLETALK                    = 16\n\tAF_CCITT                        = 10\n\tAF_CHAOS                        = 5\n\tAF_DATAKIT                      = 9\n\tAF_DLI                          = 13\n\tAF_ECMA                         = 8\n\tAF_HYLINK                       = 15\n\tAF_IMPLINK                      = 3\n\tAF_INET                         = 2\n\tAF_INET6                        = 19\n\tAF_INTF                         = 20\n\tAF_IUCV                         = 17\n\tAF_LAT                          = 14\n\tAF_LINK                         = 18\n\tAF_LOCAL                        = AF_UNIX // AF_LOCAL is an alias for AF_UNIX\n\tAF_MAX                          = 30\n\tAF_NBS                          = 7\n\tAF_NDD                          = 23\n\tAF_NETWARE                      = 22\n\tAF_NS                           = 6\n\tAF_PUP                          = 4\n\tAF_RIF                          = 21\n\tAF_ROUTE                        = 20\n\tAF_SNA                          = 11\n\tAF_UNIX                         = 1\n\tAF_UNSPEC                       = 0\n\tIBMTCP_IMAGE                    = 1\n\tMSG_ACK_EXPECTED                = 0x10\n\tMSG_ACK_GEN                     = 0x40\n\tMSG_ACK_TIMEOUT                 = 0x20\n\tMSG_CONNTERM                    = 0x80\n\tMSG_CTRUNC                      = 0x20\n\tMSG_DONTROUTE                   = 0x4\n\tMSG_EOF                         = 0x8000\n\tMSG_EOR                         = 0x8\n\tMSG_MAXIOVLEN                   = 16\n\tMSG_NONBLOCK                    = 0x4000\n\tMSG_OOB                         = 0x1\n\tMSG_PEEK                        = 0x2\n\tMSG_TRUNC                       = 0x10\n\tMSG_WAITALL                     = 0x40\n\tPRIO_PROCESS                    = 1\n\tPRIO_PGRP                       = 2\n\tPRIO_USER                       = 3\n\tRLIMIT_CPU                      = 0\n\tRLIMIT_FSIZE                    = 1\n\tRLIMIT_DATA                     = 2\n\tRLIMIT_STACK                    = 3\n\tRLIMIT_CORE                     = 4\n\tRLIMIT_AS                       = 5\n\tRLIMIT_NOFILE                   = 6\n\tRLIMIT_MEMLIMIT                 = 7\n\tRLIMIT_MEMLOCK                  = 0x8\n\tRLIM_INFINITY                   = 2147483647\n\tSCHED_FIFO                      = 0x2\n\tSCM_CREDENTIALS                 = 0x2\n\tSCM_RIGHTS                      = 0x01\n\tSF_CLOSE                        = 0x00000002\n\tSF_REUSE                        = 0x00000001\n\tSHM_RND                         = 0x2\n\tSHM_RDONLY                      = 0x1\n\tSHMLBA                          = 0x1000\n\tIPC_STAT                        = 0x3\n\tIPC_SET                         = 0x2\n\tIPC_RMID                        = 0x1\n\tIPC_PRIVATE                     = 0x0\n\tIPC_CREAT                       = 0x1000000\n\t__IPC_MEGA                      = 0x4000000\n\t__IPC_SHAREAS                   = 0x20000000\n\t__IPC_BELOWBAR                  = 0x10000000\n\tIPC_EXCL                        = 0x2000000\n\t__IPC_GIGA                      = 0x8000000\n\tSHUT_RD                         = 0\n\tSHUT_RDWR                       = 2\n\tSHUT_WR                         = 1\n\tSOCK_CLOEXEC                    = 0x00001000\n\tSOCK_CONN_DGRAM                 = 6\n\tSOCK_DGRAM                      = 2\n\tSOCK_NONBLOCK                   = 0x800\n\tSOCK_RAW                        = 3\n\tSOCK_RDM                        = 4\n\tSOCK_SEQPACKET                  = 5\n\tSOCK_STREAM                     = 1\n\tSOL_SOCKET                      = 0xffff\n\tSOMAXCONN                       = 10\n\tSO_ACCEPTCONN                   = 0x0002\n\tSO_ACCEPTECONNABORTED           = 0x0006\n\tSO_ACKNOW                       = 0x7700\n\tSO_BROADCAST                    = 0x0020\n\tSO_BULKMODE                     = 0x8000\n\tSO_CKSUMRECV                    = 0x0800\n\tSO_CLOSE                        = 0x01\n\tSO_CLUSTERCONNTYPE              = 0x00004001\n\tSO_CLUSTERCONNTYPE_INTERNAL     = 8\n\tSO_CLUSTERCONNTYPE_NOCONN       = 0\n\tSO_CLUSTERCONNTYPE_NONE         = 1\n\tSO_CLUSTERCONNTYPE_SAME_CLUSTER = 2\n\tSO_CLUSTERCONNTYPE_SAME_IMAGE   = 4\n\tSO_DEBUG                        = 0x0001\n\tSO_DONTROUTE                    = 0x0010\n\tSO_ERROR                        = 0x1007\n\tSO_IGNOREINCOMINGPUSH           = 0x1\n\tSO_IGNORESOURCEVIPA             = 0x0002\n\tSO_KEEPALIVE                    = 0x0008\n\tSO_LINGER                       = 0x0080\n\tSO_NONBLOCKLOCAL                = 0x8001\n\tSO_NOREUSEADDR                  = 0x1000\n\tSO_OOBINLINE                    = 0x0100\n\tSO_OPTACK                       = 0x8004\n\tSO_OPTMSS                       = 0x8003\n\tSO_RCVBUF                       = 0x1002\n\tSO_RCVLOWAT                     = 0x1004\n\tSO_RCVTIMEO                     = 0x1006\n\tSO_REUSEADDR                    = 0x0004\n\tSO_REUSEPORT                    = 0x0200\n\tSO_SECINFO                      = 0x00004002\n\tSO_SET                          = 0x0200\n\tSO_SNDBUF                       = 0x1001\n\tSO_SNDLOWAT                     = 0x1003\n\tSO_SNDTIMEO                     = 0x1005\n\tSO_TYPE                         = 0x1008\n\tSO_UNSET                        = 0x0400\n\tSO_USELOOPBACK                  = 0x0040\n\tSO_USE_IFBUFS                   = 0x0400\n\tS_ISUID                         = 0x0800\n\tS_ISGID                         = 0x0400\n\tS_ISVTX                         = 0x0200\n\tS_IRUSR                         = 0x0100\n\tS_IWUSR                         = 0x0080\n\tS_IXUSR                         = 0x0040\n\tS_IRWXU                         = 0x01C0\n\tS_IRGRP                         = 0x0020\n\tS_IWGRP                         = 0x0010\n\tS_IXGRP                         = 0x0008\n\tS_IRWXG                         = 0x0038\n\tS_IROTH                         = 0x0004\n\tS_IWOTH                         = 0x0002\n\tS_IXOTH                         = 0x0001\n\tS_IRWXO                         = 0x0007\n\tS_IREAD                         = S_IRUSR\n\tS_IWRITE                        = S_IWUSR\n\tS_IEXEC                         = S_IXUSR\n\tS_IFDIR                         = 0x01000000\n\tS_IFCHR                         = 0x02000000\n\tS_IFREG                         = 0x03000000\n\tS_IFFIFO                        = 0x04000000\n\tS_IFIFO                         = 0x04000000\n\tS_IFLNK                         = 0x05000000\n\tS_IFBLK                         = 0x06000000\n\tS_IFSOCK                        = 0x07000000\n\tS_IFVMEXTL                      = 0xFE000000\n\tS_IFVMEXTL_EXEC                 = 0x00010000\n\tS_IFVMEXTL_DATA                 = 0x00020000\n\tS_IFVMEXTL_MEL                  = 0x00030000\n\tS_IFEXTL                        = 0x00000001\n\tS_IFPROGCTL                     = 0x00000002\n\tS_IFAPFCTL                      = 0x00000004\n\tS_IFNOSHARE                     = 0x00000008\n\tS_IFSHARELIB                    = 0x00000010\n\tS_IFMT                          = 0xFF000000\n\tS_IFMST                         = 0x00FF0000\n\tTCP_KEEPALIVE                   = 0x8\n\tTCP_NODELAY                     = 0x1\n\tTIOCGWINSZ                      = 0x4008a368\n\tTIOCSWINSZ                      = 0x8008a367\n\tTIOCSBRK                        = 0x2000a77b\n\tTIOCCBRK                        = 0x2000a77a\n\tTIOCSTI                         = 0x8001a772\n\tTIOCGPGRP                       = 0x4004a777 // _IOR(167, 119, int)\n\tTCSANOW                         = 0\n\tTCSETS                          = 0 // equivalent to TCSANOW for tcsetattr\n\tTCSADRAIN                       = 1\n\tTCSETSW                         = 1 // equivalent to TCSADRAIN for tcsetattr\n\tTCSAFLUSH                       = 2\n\tTCSETSF                         = 2 // equivalent to TCSAFLUSH for tcsetattr\n\tTCGETS                          = 3 // not defined in ioctl.h -- zos golang only\n\tTCIFLUSH                        = 0\n\tTCOFLUSH                        = 1\n\tTCIOFLUSH                       = 2\n\tTCOOFF                          = 0\n\tTCOON                           = 1\n\tTCIOFF                          = 2\n\tTCION                           = 3\n\tTIOCSPGRP                       = 0x8004a776\n\tTIOCNOTTY                       = 0x2000a771\n\tTIOCEXCL                        = 0x2000a70d\n\tTIOCNXCL                        = 0x2000a70e\n\tTIOCGETD                        = 0x4004a700\n\tTIOCSETD                        = 0x8004a701\n\tTIOCPKT                         = 0x8004a770\n\tTIOCSTOP                        = 0x2000a76f\n\tTIOCSTART                       = 0x2000a76e\n\tTIOCUCNTL                       = 0x8004a766\n\tTIOCREMOTE                      = 0x8004a769\n\tTIOCMGET                        = 0x4004a76a\n\tTIOCMSET                        = 0x8004a76d\n\tTIOCMBIC                        = 0x8004a76b\n\tTIOCMBIS                        = 0x8004a76c\n\tVINTR                           = 0\n\tVQUIT                           = 1\n\tVERASE                          = 2\n\tVKILL                           = 3\n\tVEOF                            = 4\n\tVEOL                            = 5\n\tVMIN                            = 6\n\tVSTART                          = 7\n\tVSTOP                           = 8\n\tVSUSP                           = 9\n\tVTIME                           = 10\n\tWCONTINUED                      = 0x4\n\tWEXITED                         = 0x8\n\tWNOHANG                         = 0x1\n\tWNOWAIT                         = 0x20\n\tWSTOPPED                        = 0x10\n\tWUNTRACED                       = 0x2\n\t_BPX_SWAP                       = 1\n\t_BPX_NONSWAP                    = 2\n\tMCL_CURRENT                     = 1  // for Linux compatibility -- no zos semantics\n\tMCL_FUTURE                      = 2  // for Linux compatibility -- no zos semantics\n\tMCL_ONFAULT                     = 3  // for Linux compatibility -- no zos semantics\n\tMADV_NORMAL                     = 0  // for Linux compatibility -- no zos semantics\n\tMADV_RANDOM                     = 1  // for Linux compatibility -- no zos semantics\n\tMADV_SEQUENTIAL                 = 2  // for Linux compatibility -- no zos semantics\n\tMADV_WILLNEED                   = 3  // for Linux compatibility -- no zos semantics\n\tMADV_REMOVE                     = 4  // for Linux compatibility -- no zos semantics\n\tMADV_DONTFORK                   = 5  // for Linux compatibility -- no zos semantics\n\tMADV_DOFORK                     = 6  // for Linux compatibility -- no zos semantics\n\tMADV_HWPOISON                   = 7  // for Linux compatibility -- no zos semantics\n\tMADV_MERGEABLE                  = 8  // for Linux compatibility -- no zos semantics\n\tMADV_UNMERGEABLE                = 9  // for Linux compatibility -- no zos semantics\n\tMADV_SOFT_OFFLINE               = 10 // for Linux compatibility -- no zos semantics\n\tMADV_HUGEPAGE                   = 11 // for Linux compatibility -- no zos semantics\n\tMADV_NOHUGEPAGE                 = 12 // for Linux compatibility -- no zos semantics\n\tMADV_DONTDUMP                   = 13 // for Linux compatibility -- no zos semantics\n\tMADV_DODUMP                     = 14 // for Linux compatibility -- no zos semantics\n\tMADV_FREE                       = 15 // for Linux compatibility -- no zos semantics\n\tMADV_WIPEONFORK                 = 16 // for Linux compatibility -- no zos semantics\n\tMADV_KEEPONFORK                 = 17 // for Linux compatibility -- no zos semantics\n\tAT_SYMLINK_FOLLOW               = 0x400\n\tAT_SYMLINK_NOFOLLOW             = 0x100\n\tXATTR_CREATE                    = 0x1\n\tXATTR_REPLACE                   = 0x2\n\tP_PID                           = 0\n\tP_PGID                          = 1\n\tP_ALL                           = 2\n\tPR_SET_NAME                     = 15\n\tPR_GET_NAME                     = 16\n\tPR_SET_NO_NEW_PRIVS             = 38\n\tPR_GET_NO_NEW_PRIVS             = 39\n\tPR_SET_DUMPABLE                 = 4\n\tPR_GET_DUMPABLE                 = 3\n\tPR_SET_PDEATHSIG                = 1\n\tPR_GET_PDEATHSIG                = 2\n\tPR_SET_CHILD_SUBREAPER          = 36\n\tPR_GET_CHILD_SUBREAPER          = 37\n\tAT_FDCWD                        = -100\n\tAT_EACCESS                      = 0x200\n\tAT_EMPTY_PATH                   = 0x1000\n\tAT_REMOVEDIR                    = 0x200\n\tRENAME_NOREPLACE                = 1 << 0\n\tST_RDONLY                       = 1\n\tST_NOSUID                       = 2\n)\n\nconst (\n\tEDOM               = Errno(1)\n\tERANGE             = Errno(2)\n\tEACCES             = Errno(111)\n\tEAGAIN             = Errno(112)\n\tEBADF              = Errno(113)\n\tEBUSY              = Errno(114)\n\tECHILD             = Errno(115)\n\tEDEADLK            = Errno(116)\n\tEEXIST             = Errno(117)\n\tEFAULT             = Errno(118)\n\tEFBIG              = Errno(119)\n\tEINTR              = Errno(120)\n\tEINVAL             = Errno(121)\n\tEIO                = Errno(122)\n\tEISDIR             = Errno(123)\n\tEMFILE             = Errno(124)\n\tEMLINK             = Errno(125)\n\tENAMETOOLONG       = Errno(126)\n\tENFILE             = Errno(127)\n\tENOATTR            = Errno(265)\n\tENODEV             = Errno(128)\n\tENOENT             = Errno(129)\n\tENOEXEC            = Errno(130)\n\tENOLCK             = Errno(131)\n\tENOMEM             = Errno(132)\n\tENOSPC             = Errno(133)\n\tENOSYS             = Errno(134)\n\tENOTDIR            = Errno(135)\n\tENOTEMPTY          = Errno(136)\n\tENOTTY             = Errno(137)\n\tENXIO              = Errno(138)\n\tEPERM              = Errno(139)\n\tEPIPE              = Errno(140)\n\tEROFS              = Errno(141)\n\tESPIPE             = Errno(142)\n\tESRCH              = Errno(143)\n\tEXDEV              = Errno(144)\n\tE2BIG              = Errno(145)\n\tELOOP              = Errno(146)\n\tEILSEQ             = Errno(147)\n\tENODATA            = Errno(148)\n\tEOVERFLOW          = Errno(149)\n\tEMVSNOTUP          = Errno(150)\n\tECMSSTORAGE        = Errno(151)\n\tEMVSDYNALC         = Errno(151)\n\tEMVSCVAF           = Errno(152)\n\tEMVSCATLG          = Errno(153)\n\tECMSINITIAL        = Errno(156)\n\tEMVSINITIAL        = Errno(156)\n\tECMSERR            = Errno(157)\n\tEMVSERR            = Errno(157)\n\tEMVSPARM           = Errno(158)\n\tECMSPFSFILE        = Errno(159)\n\tEMVSPFSFILE        = Errno(159)\n\tEMVSBADCHAR        = Errno(160)\n\tECMSPFSPERM        = Errno(162)\n\tEMVSPFSPERM        = Errno(162)\n\tEMVSSAFEXTRERR     = Errno(163)\n\tEMVSSAF2ERR        = Errno(164)\n\tEMVSTODNOTSET      = Errno(165)\n\tEMVSPATHOPTS       = Errno(166)\n\tEMVSNORTL          = Errno(167)\n\tEMVSEXPIRE         = Errno(168)\n\tEMVSPASSWORD       = Errno(169)\n\tEMVSWLMERROR       = Errno(170)\n\tEMVSCPLERROR       = Errno(171)\n\tEMVSARMERROR       = Errno(172)\n\tELENOFORK          = Errno(200)\n\tELEMSGERR          = Errno(201)\n\tEFPMASKINV         = Errno(202)\n\tEFPMODEINV         = Errno(203)\n\tEBUFLEN            = Errno(227)\n\tEEXTLINK           = Errno(228)\n\tENODD              = Errno(229)\n\tECMSESMERR         = Errno(230)\n\tECPERR             = Errno(231)\n\tELEMULTITHREAD     = Errno(232)\n\tELEFENCE           = Errno(244)\n\tEBADDATA           = Errno(245)\n\tEUNKNOWN           = Errno(246)\n\tENOTSUP            = Errno(247)\n\tEBADNAME           = Errno(248)\n\tENOTSAFE           = Errno(249)\n\tELEMULTITHREADFORK = Errno(257)\n\tECUNNOENV          = Errno(258)\n\tECUNNOCONV         = Errno(259)\n\tECUNNOTALIGNED     = Errno(260)\n\tECUNERR            = Errno(262)\n\tEIBMBADCALL        = Errno(1000)\n\tEIBMBADPARM        = Errno(1001)\n\tEIBMSOCKOUTOFRANGE = Errno(1002)\n\tEIBMSOCKINUSE      = Errno(1003)\n\tEIBMIUCVERR        = Errno(1004)\n\tEOFFLOADboxERROR   = Errno(1005)\n\tEOFFLOADboxRESTART = Errno(1006)\n\tEOFFLOADboxDOWN    = Errno(1007)\n\tEIBMCONFLICT       = Errno(1008)\n\tEIBMCANCELLED      = Errno(1009)\n\tEIBMBADTCPNAME     = Errno(1011)\n\tENOTBLK            = Errno(1100)\n\tETXTBSY            = Errno(1101)\n\tEWOULDBLOCK        = Errno(1102)\n\tEINPROGRESS        = Errno(1103)\n\tEALREADY           = Errno(1104)\n\tENOTSOCK           = Errno(1105)\n\tEDESTADDRREQ       = Errno(1106)\n\tEMSGSIZE           = Errno(1107)\n\tEPROTOTYPE         = Errno(1108)\n\tENOPROTOOPT        = Errno(1109)\n\tEPROTONOSUPPORT    = Errno(1110)\n\tESOCKTNOSUPPORT    = Errno(1111)\n\tEOPNOTSUPP         = Errno(1112)\n\tEPFNOSUPPORT       = Errno(1113)\n\tEAFNOSUPPORT       = Errno(1114)\n\tEADDRINUSE         = Errno(1115)\n\tEADDRNOTAVAIL      = Errno(1116)\n\tENETDOWN           = Errno(1117)\n\tENETUNREACH        = Errno(1118)\n\tENETRESET          = Errno(1119)\n\tECONNABORTED       = Errno(1120)\n\tECONNRESET         = Errno(1121)\n\tENOBUFS            = Errno(1122)\n\tEISCONN            = Errno(1123)\n\tENOTCONN           = Errno(1124)\n\tESHUTDOWN          = Errno(1125)\n\tETOOMANYREFS       = Errno(1126)\n\tETIMEDOUT          = Errno(1127)\n\tECONNREFUSED       = Errno(1128)\n\tEHOSTDOWN          = Errno(1129)\n\tEHOSTUNREACH       = Errno(1130)\n\tEPROCLIM           = Errno(1131)\n\tEUSERS             = Errno(1132)\n\tEDQUOT             = Errno(1133)\n\tESTALE             = Errno(1134)\n\tEREMOTE            = Errno(1135)\n\tENOSTR             = Errno(1136)\n\tETIME              = Errno(1137)\n\tENOSR              = Errno(1138)\n\tENOMSG             = Errno(1139)\n\tEBADMSG            = Errno(1140)\n\tEIDRM              = Errno(1141)\n\tENONET             = Errno(1142)\n\tERREMOTE           = Errno(1143)\n\tENOLINK            = Errno(1144)\n\tEADV               = Errno(1145)\n\tESRMNT             = Errno(1146)\n\tECOMM              = Errno(1147)\n\tEPROTO             = Errno(1148)\n\tEMULTIHOP          = Errno(1149)\n\tEDOTDOT            = Errno(1150)\n\tEREMCHG            = Errno(1151)\n\tECANCELED          = Errno(1152)\n\tEINTRNODATA        = Errno(1159)\n\tENOREUSE           = Errno(1160)\n\tENOMOVE            = Errno(1161)\n)\n\n// Signals\nconst (\n\tSIGHUP    = Signal(1)\n\tSIGINT    = Signal(2)\n\tSIGABRT   = Signal(3)\n\tSIGILL    = Signal(4)\n\tSIGPOLL   = Signal(5)\n\tSIGURG    = Signal(6)\n\tSIGSTOP   = Signal(7)\n\tSIGFPE    = Signal(8)\n\tSIGKILL   = Signal(9)\n\tSIGBUS    = Signal(10)\n\tSIGSEGV   = Signal(11)\n\tSIGSYS    = Signal(12)\n\tSIGPIPE   = Signal(13)\n\tSIGALRM   = Signal(14)\n\tSIGTERM   = Signal(15)\n\tSIGUSR1   = Signal(16)\n\tSIGUSR2   = Signal(17)\n\tSIGABND   = Signal(18)\n\tSIGCONT   = Signal(19)\n\tSIGCHLD   = Signal(20)\n\tSIGTTIN   = Signal(21)\n\tSIGTTOU   = Signal(22)\n\tSIGIO     = Signal(23)\n\tSIGQUIT   = Signal(24)\n\tSIGTSTP   = Signal(25)\n\tSIGTRAP   = Signal(26)\n\tSIGIOERR  = Signal(27)\n\tSIGWINCH  = Signal(28)\n\tSIGXCPU   = Signal(29)\n\tSIGXFSZ   = Signal(30)\n\tSIGVTALRM = Signal(31)\n\tSIGPROF   = Signal(32)\n\tSIGDANGER = Signal(33)\n\tSIGTHSTOP = Signal(34)\n\tSIGTHCONT = Signal(35)\n\tSIGTRACE  = Signal(37)\n\tSIGDCE    = Signal(38)\n\tSIGDUMP   = Signal(39)\n)\n\n// Error table\nvar errorList = [...]struct {\n\tnum  Errno\n\tname string\n\tdesc string\n}{\n\t{1, \"EDC5001I\", \"A domain error occurred.\"},\n\t{2, \"EDC5002I\", \"A range error occurred.\"},\n\t{111, \"EDC5111I\", \"Permission denied.\"},\n\t{112, \"EDC5112I\", \"Resource temporarily unavailable.\"},\n\t{113, \"EDC5113I\", \"Bad file descriptor.\"},\n\t{114, \"EDC5114I\", \"Resource busy.\"},\n\t{115, \"EDC5115I\", \"No child processes.\"},\n\t{116, \"EDC5116I\", \"Resource deadlock avoided.\"},\n\t{117, \"EDC5117I\", \"File exists.\"},\n\t{118, \"EDC5118I\", \"Incorrect address.\"},\n\t{119, \"EDC5119I\", \"File too large.\"},\n\t{120, \"EDC5120I\", \"Interrupted function call.\"},\n\t{121, \"EDC5121I\", \"Invalid argument.\"},\n\t{122, \"EDC5122I\", \"Input/output error.\"},\n\t{123, \"EDC5123I\", \"Is a directory.\"},\n\t{124, \"EDC5124I\", \"Too many open files.\"},\n\t{125, \"EDC5125I\", \"Too many links.\"},\n\t{126, \"EDC5126I\", \"Filename too long.\"},\n\t{127, \"EDC5127I\", \"Too many open files in system.\"},\n\t{128, \"EDC5128I\", \"No such device.\"},\n\t{129, \"EDC5129I\", \"No such file or directory.\"},\n\t{130, \"EDC5130I\", \"Exec format error.\"},\n\t{131, \"EDC5131I\", \"No locks available.\"},\n\t{132, \"EDC5132I\", \"Not enough memory.\"},\n\t{133, \"EDC5133I\", \"No space left on device.\"},\n\t{134, \"EDC5134I\", \"Function not implemented.\"},\n\t{135, \"EDC5135I\", \"Not a directory.\"},\n\t{136, \"EDC5136I\", \"Directory not empty.\"},\n\t{137, \"EDC5137I\", \"Inappropriate I/O control operation.\"},\n\t{138, \"EDC5138I\", \"No such device or address.\"},\n\t{139, \"EDC5139I\", \"Operation not permitted.\"},\n\t{140, \"EDC5140I\", \"Broken pipe.\"},\n\t{141, \"EDC5141I\", \"Read-only file system.\"},\n\t{142, \"EDC5142I\", \"Invalid seek.\"},\n\t{143, \"EDC5143I\", \"No such process.\"},\n\t{144, \"EDC5144I\", \"Improper link.\"},\n\t{145, \"EDC5145I\", \"The parameter list is too long, or the message to receive was too large for the buffer.\"},\n\t{146, \"EDC5146I\", \"Too many levels of symbolic links.\"},\n\t{147, \"EDC5147I\", \"Illegal byte sequence.\"},\n\t{148, \"EDC5148I\", \"The named attribute or data not available.\"},\n\t{149, \"EDC5149I\", \"Value Overflow Error.\"},\n\t{150, \"EDC5150I\", \"UNIX System Services is not active.\"},\n\t{151, \"EDC5151I\", \"Dynamic allocation error.\"},\n\t{152, \"EDC5152I\", \"Common VTOC access facility (CVAF) error.\"},\n\t{153, \"EDC5153I\", \"Catalog obtain error.\"},\n\t{156, \"EDC5156I\", \"Process initialization error.\"},\n\t{157, \"EDC5157I\", \"An internal error has occurred.\"},\n\t{158, \"EDC5158I\", \"Bad parameters were passed to the service.\"},\n\t{159, \"EDC5159I\", \"The Physical File System encountered a permanent file error.\"},\n\t{160, \"EDC5160I\", \"Bad character in environment variable name.\"},\n\t{162, \"EDC5162I\", \"The Physical File System encountered a system error.\"},\n\t{163, \"EDC5163I\", \"SAF/RACF extract error.\"},\n\t{164, \"EDC5164I\", \"SAF/RACF error.\"},\n\t{165, \"EDC5165I\", \"System TOD clock not set.\"},\n\t{166, \"EDC5166I\", \"Access mode argument on function call conflicts with PATHOPTS parameter on JCL DD statement.\"},\n\t{167, \"EDC5167I\", \"Access to the UNIX System Services version of the C RTL is denied.\"},\n\t{168, \"EDC5168I\", \"Password has expired.\"},\n\t{169, \"EDC5169I\", \"Password is invalid.\"},\n\t{170, \"EDC5170I\", \"An error was encountered with WLM.\"},\n\t{171, \"EDC5171I\", \"An error was encountered with CPL.\"},\n\t{172, \"EDC5172I\", \"An error was encountered with Application Response Measurement (ARM) component.\"},\n\t{200, \"EDC5200I\", \"The application contains a Language Environment member language that cannot tolerate a fork().\"},\n\t{201, \"EDC5201I\", \"The Language Environment message file was not found in the hierarchical file system.\"},\n\t{202, \"EDC5202E\", \"DLL facilities are not supported under SPC environment.\"},\n\t{203, \"EDC5203E\", \"DLL facilities are not supported under POSIX environment.\"},\n\t{227, \"EDC5227I\", \"Buffer is not long enough to contain a path definition\"},\n\t{228, \"EDC5228I\", \"The file referred to is an external link\"},\n\t{229, \"EDC5229I\", \"No path definition for ddname in effect\"},\n\t{230, \"EDC5230I\", \"ESM error.\"},\n\t{231, \"EDC5231I\", \"CP or the external security manager had an error\"},\n\t{232, \"EDC5232I\", \"The function failed because it was invoked from a multithread environment.\"},\n\t{244, \"EDC5244I\", \"The program, module or DLL is not supported in this environment.\"},\n\t{245, \"EDC5245I\", \"Data is not valid.\"},\n\t{246, \"EDC5246I\", \"Unknown system state.\"},\n\t{247, \"EDC5247I\", \"Operation not supported.\"},\n\t{248, \"EDC5248I\", \"The object name specified is not correct.\"},\n\t{249, \"EDC5249I\", \"The function is not allowed.\"},\n\t{257, \"EDC5257I\", \"Function cannot be called in the child process of a fork() from a multithreaded process until exec() is called.\"},\n\t{258, \"EDC5258I\", \"A CUN_RS_NO_UNI_ENV error was issued by Unicode Services.\"},\n\t{259, \"EDC5259I\", \"A CUN_RS_NO_CONVERSION error was issued by Unicode Services.\"},\n\t{260, \"EDC5260I\", \"A CUN_RS_TABLE_NOT_ALIGNED error was issued by Unicode Services.\"},\n\t{262, \"EDC5262I\", \"An iconv() function encountered an unexpected error while using Unicode Services.\"},\n\t{265, \"EDC5265I\", \"The named attribute not available.\"},\n\t{1000, \"EDC8000I\", \"A bad socket-call constant was found in the IUCV header.\"},\n\t{1001, \"EDC8001I\", \"An error was found in the IUCV header.\"},\n\t{1002, \"EDC8002I\", \"A socket descriptor is out of range.\"},\n\t{1003, \"EDC8003I\", \"A socket descriptor is in use.\"},\n\t{1004, \"EDC8004I\", \"Request failed because of an IUCV error.\"},\n\t{1005, \"EDC8005I\", \"Offload box error.\"},\n\t{1006, \"EDC8006I\", \"Offload box restarted.\"},\n\t{1007, \"EDC8007I\", \"Offload box down.\"},\n\t{1008, \"EDC8008I\", \"Already a conflicting call outstanding on socket.\"},\n\t{1009, \"EDC8009I\", \"Request cancelled using a SOCKcallCANCEL request.\"},\n\t{1011, \"EDC8011I\", \"A name of a PFS was specified that either is not configured or is not a Sockets PFS.\"},\n\t{1100, \"EDC8100I\", \"Block device required.\"},\n\t{1101, \"EDC8101I\", \"Text file busy.\"},\n\t{1102, \"EDC8102I\", \"Operation would block.\"},\n\t{1103, \"EDC8103I\", \"Operation now in progress.\"},\n\t{1104, \"EDC8104I\", \"Connection already in progress.\"},\n\t{1105, \"EDC8105I\", \"Socket operation on non-socket.\"},\n\t{1106, \"EDC8106I\", \"Destination address required.\"},\n\t{1107, \"EDC8107I\", \"Message too long.\"},\n\t{1108, \"EDC8108I\", \"Protocol wrong type for socket.\"},\n\t{1109, \"EDC8109I\", \"Protocol not available.\"},\n\t{1110, \"EDC8110I\", \"Protocol not supported.\"},\n\t{1111, \"EDC8111I\", \"Socket type not supported.\"},\n\t{1112, \"EDC8112I\", \"Operation not supported on socket.\"},\n\t{1113, \"EDC8113I\", \"Protocol family not supported.\"},\n\t{1114, \"EDC8114I\", \"Address family not supported.\"},\n\t{1115, \"EDC8115I\", \"Address already in use.\"},\n\t{1116, \"EDC8116I\", \"Address not available.\"},\n\t{1117, \"EDC8117I\", \"Network is down.\"},\n\t{1118, \"EDC8118I\", \"Network is unreachable.\"},\n\t{1119, \"EDC8119I\", \"Network dropped connection on reset.\"},\n\t{1120, \"EDC8120I\", \"Connection ended abnormally.\"},\n\t{1121, \"EDC8121I\", \"Connection reset.\"},\n\t{1122, \"EDC8122I\", \"No buffer space available.\"},\n\t{1123, \"EDC8123I\", \"Socket already connected.\"},\n\t{1124, \"EDC8124I\", \"Socket not connected.\"},\n\t{1125, \"EDC8125I\", \"Can't send after socket shutdown.\"},\n\t{1126, \"EDC8126I\", \"Too many references; can't splice.\"},\n\t{1127, \"EDC8127I\", \"Connection timed out.\"},\n\t{1128, \"EDC8128I\", \"Connection refused.\"},\n\t{1129, \"EDC8129I\", \"Host is not available.\"},\n\t{1130, \"EDC8130I\", \"Host cannot be reached.\"},\n\t{1131, \"EDC8131I\", \"Too many processes.\"},\n\t{1132, \"EDC8132I\", \"Too many users.\"},\n\t{1133, \"EDC8133I\", \"Disk quota exceeded.\"},\n\t{1134, \"EDC8134I\", \"Stale file handle.\"},\n\t{1135, \"\", \"\"},\n\t{1136, \"EDC8136I\", \"File is not a STREAM.\"},\n\t{1137, \"EDC8137I\", \"STREAMS ioctl() timeout.\"},\n\t{1138, \"EDC8138I\", \"No STREAMS resources.\"},\n\t{1139, \"EDC8139I\", \"The message identified by set_id and msg_id is not in the message catalog.\"},\n\t{1140, \"EDC8140I\", \"Bad message.\"},\n\t{1141, \"EDC8141I\", \"Identifier removed.\"},\n\t{1142, \"\", \"\"},\n\t{1143, \"\", \"\"},\n\t{1144, \"EDC8144I\", \"The link has been severed.\"},\n\t{1145, \"\", \"\"},\n\t{1146, \"\", \"\"},\n\t{1147, \"\", \"\"},\n\t{1148, \"EDC8148I\", \"Protocol error.\"},\n\t{1149, \"EDC8149I\", \"Multihop not allowed.\"},\n\t{1150, \"\", \"\"},\n\t{1151, \"\", \"\"},\n\t{1152, \"EDC8152I\", \"The asynchronous I/O request has been canceled.\"},\n\t{1159, \"EDC8159I\", \"Function call was interrupted before any data was received.\"},\n\t{1160, \"EDC8160I\", \"Socket reuse is not supported.\"},\n\t{1161, \"EDC8161I\", \"The file system cannot currently be moved.\"},\n}\n\n// Signal table\nvar signalList = [...]struct {\n\tnum  Signal\n\tname string\n\tdesc string\n}{\n\t{1, \"SIGHUP\", \"hangup\"},\n\t{2, \"SIGINT\", \"interrupt\"},\n\t{3, \"SIGABT\", \"aborted\"},\n\t{4, \"SIGILL\", \"illegal instruction\"},\n\t{5, \"SIGPOLL\", \"pollable event\"},\n\t{6, \"SIGURG\", \"urgent I/O condition\"},\n\t{7, \"SIGSTOP\", \"stop process\"},\n\t{8, \"SIGFPE\", \"floating point exception\"},\n\t{9, \"SIGKILL\", \"killed\"},\n\t{10, \"SIGBUS\", \"bus error\"},\n\t{11, \"SIGSEGV\", \"segmentation fault\"},\n\t{12, \"SIGSYS\", \"bad argument to routine\"},\n\t{13, \"SIGPIPE\", \"broken pipe\"},\n\t{14, \"SIGALRM\", \"alarm clock\"},\n\t{15, \"SIGTERM\", \"terminated\"},\n\t{16, \"SIGUSR1\", \"user defined signal 1\"},\n\t{17, \"SIGUSR2\", \"user defined signal 2\"},\n\t{18, \"SIGABND\", \"abend\"},\n\t{19, \"SIGCONT\", \"continued\"},\n\t{20, \"SIGCHLD\", \"child exited\"},\n\t{21, \"SIGTTIN\", \"stopped (tty input)\"},\n\t{22, \"SIGTTOU\", \"stopped (tty output)\"},\n\t{23, \"SIGIO\", \"I/O possible\"},\n\t{24, \"SIGQUIT\", \"quit\"},\n\t{25, \"SIGTSTP\", \"stopped\"},\n\t{26, \"SIGTRAP\", \"trace/breakpoint trap\"},\n\t{27, \"SIGIOER\", \"I/O error\"},\n\t{28, \"SIGWINCH\", \"window changed\"},\n\t{29, \"SIGXCPU\", \"CPU time limit exceeded\"},\n\t{30, \"SIGXFSZ\", \"file size limit exceeded\"},\n\t{31, \"SIGVTALRM\", \"virtual timer expired\"},\n\t{32, \"SIGPROF\", \"profiling timer expired\"},\n\t{33, \"SIGDANGER\", \"danger\"},\n\t{34, \"SIGTHSTOP\", \"stop thread\"},\n\t{35, \"SIGTHCONT\", \"continue thread\"},\n\t{37, \"SIGTRACE\", \"trace\"},\n\t{38, \"\", \"DCE\"},\n\t{39, \"SIGDUMP\", \"dump\"},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go",
    "content": "// Code generated by linux/mkall.go generatePtracePair(\"arm\", \"arm64\"). DO NOT EDIT.\n\n//go:build linux && (arm || arm64)\n\npackage unix\n\nimport \"unsafe\"\n\n// PtraceRegsArm is the registers used by arm binaries.\ntype PtraceRegsArm struct {\n\tUregs [18]uint32\n}\n\n// PtraceGetRegsArm fetches the registers used by arm binaries.\nfunc PtraceGetRegsArm(pid int, regsout *PtraceRegsArm) error {\n\treturn ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout))\n}\n\n// PtraceSetRegsArm sets the registers used by arm binaries.\nfunc PtraceSetRegsArm(pid int, regs *PtraceRegsArm) error {\n\treturn ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs))\n}\n\n// PtraceRegsArm64 is the registers used by arm64 binaries.\ntype PtraceRegsArm64 struct {\n\tRegs   [31]uint64\n\tSp     uint64\n\tPc     uint64\n\tPstate uint64\n}\n\n// PtraceGetRegsArm64 fetches the registers used by arm64 binaries.\nfunc PtraceGetRegsArm64(pid int, regsout *PtraceRegsArm64) error {\n\treturn ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout))\n}\n\n// PtraceSetRegsArm64 sets the registers used by arm64 binaries.\nfunc PtraceSetRegsArm64(pid int, regs *PtraceRegsArm64) error {\n\treturn ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs))\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go",
    "content": "// Code generated by linux/mkall.go generatePtraceRegSet(\"arm64\"). DO NOT EDIT.\n\npackage unix\n\nimport \"unsafe\"\n\n// PtraceGetRegSetArm64 fetches the registers used by arm64 binaries.\nfunc PtraceGetRegSetArm64(pid, addr int, regsout *PtraceRegsArm64) error {\n\tiovec := Iovec{(*byte)(unsafe.Pointer(regsout)), uint64(unsafe.Sizeof(*regsout))}\n\treturn ptracePtr(PTRACE_GETREGSET, pid, uintptr(addr), unsafe.Pointer(&iovec))\n}\n\n// PtraceSetRegSetArm64 sets the registers used by arm64 binaries.\nfunc PtraceSetRegSetArm64(pid, addr int, regs *PtraceRegsArm64) error {\n\tiovec := Iovec{(*byte)(unsafe.Pointer(regs)), uint64(unsafe.Sizeof(*regs))}\n\treturn ptracePtr(PTRACE_SETREGSET, pid, uintptr(addr), unsafe.Pointer(&iovec))\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go",
    "content": "// Code generated by linux/mkall.go generatePtracePair(\"mips\", \"mips64\"). DO NOT EDIT.\n\n//go:build linux && (mips || mips64)\n\npackage unix\n\nimport \"unsafe\"\n\n// PtraceRegsMips is the registers used by mips binaries.\ntype PtraceRegsMips struct {\n\tRegs     [32]uint64\n\tLo       uint64\n\tHi       uint64\n\tEpc      uint64\n\tBadvaddr uint64\n\tStatus   uint64\n\tCause    uint64\n}\n\n// PtraceGetRegsMips fetches the registers used by mips binaries.\nfunc PtraceGetRegsMips(pid int, regsout *PtraceRegsMips) error {\n\treturn ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout))\n}\n\n// PtraceSetRegsMips sets the registers used by mips binaries.\nfunc PtraceSetRegsMips(pid int, regs *PtraceRegsMips) error {\n\treturn ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs))\n}\n\n// PtraceRegsMips64 is the registers used by mips64 binaries.\ntype PtraceRegsMips64 struct {\n\tRegs     [32]uint64\n\tLo       uint64\n\tHi       uint64\n\tEpc      uint64\n\tBadvaddr uint64\n\tStatus   uint64\n\tCause    uint64\n}\n\n// PtraceGetRegsMips64 fetches the registers used by mips64 binaries.\nfunc PtraceGetRegsMips64(pid int, regsout *PtraceRegsMips64) error {\n\treturn ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout))\n}\n\n// PtraceSetRegsMips64 sets the registers used by mips64 binaries.\nfunc PtraceSetRegsMips64(pid int, regs *PtraceRegsMips64) error {\n\treturn ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs))\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go",
    "content": "// Code generated by linux/mkall.go generatePtracePair(\"mipsle\", \"mips64le\"). DO NOT EDIT.\n\n//go:build linux && (mipsle || mips64le)\n\npackage unix\n\nimport \"unsafe\"\n\n// PtraceRegsMipsle is the registers used by mipsle binaries.\ntype PtraceRegsMipsle struct {\n\tRegs     [32]uint64\n\tLo       uint64\n\tHi       uint64\n\tEpc      uint64\n\tBadvaddr uint64\n\tStatus   uint64\n\tCause    uint64\n}\n\n// PtraceGetRegsMipsle fetches the registers used by mipsle binaries.\nfunc PtraceGetRegsMipsle(pid int, regsout *PtraceRegsMipsle) error {\n\treturn ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout))\n}\n\n// PtraceSetRegsMipsle sets the registers used by mipsle binaries.\nfunc PtraceSetRegsMipsle(pid int, regs *PtraceRegsMipsle) error {\n\treturn ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs))\n}\n\n// PtraceRegsMips64le is the registers used by mips64le binaries.\ntype PtraceRegsMips64le struct {\n\tRegs     [32]uint64\n\tLo       uint64\n\tHi       uint64\n\tEpc      uint64\n\tBadvaddr uint64\n\tStatus   uint64\n\tCause    uint64\n}\n\n// PtraceGetRegsMips64le fetches the registers used by mips64le binaries.\nfunc PtraceGetRegsMips64le(pid int, regsout *PtraceRegsMips64le) error {\n\treturn ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout))\n}\n\n// PtraceSetRegsMips64le sets the registers used by mips64le binaries.\nfunc PtraceSetRegsMips64le(pid int, regs *PtraceRegsMips64le) error {\n\treturn ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs))\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zptrace_x86_linux.go",
    "content": "// Code generated by linux/mkall.go generatePtracePair(\"386\", \"amd64\"). DO NOT EDIT.\n\n//go:build linux && (386 || amd64)\n\npackage unix\n\nimport \"unsafe\"\n\n// PtraceRegs386 is the registers used by 386 binaries.\ntype PtraceRegs386 struct {\n\tEbx      int32\n\tEcx      int32\n\tEdx      int32\n\tEsi      int32\n\tEdi      int32\n\tEbp      int32\n\tEax      int32\n\tXds      int32\n\tXes      int32\n\tXfs      int32\n\tXgs      int32\n\tOrig_eax int32\n\tEip      int32\n\tXcs      int32\n\tEflags   int32\n\tEsp      int32\n\tXss      int32\n}\n\n// PtraceGetRegs386 fetches the registers used by 386 binaries.\nfunc PtraceGetRegs386(pid int, regsout *PtraceRegs386) error {\n\treturn ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout))\n}\n\n// PtraceSetRegs386 sets the registers used by 386 binaries.\nfunc PtraceSetRegs386(pid int, regs *PtraceRegs386) error {\n\treturn ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs))\n}\n\n// PtraceRegsAmd64 is the registers used by amd64 binaries.\ntype PtraceRegsAmd64 struct {\n\tR15      uint64\n\tR14      uint64\n\tR13      uint64\n\tR12      uint64\n\tRbp      uint64\n\tRbx      uint64\n\tR11      uint64\n\tR10      uint64\n\tR9       uint64\n\tR8       uint64\n\tRax      uint64\n\tRcx      uint64\n\tRdx      uint64\n\tRsi      uint64\n\tRdi      uint64\n\tOrig_rax uint64\n\tRip      uint64\n\tCs       uint64\n\tEflags   uint64\n\tRsp      uint64\n\tSs       uint64\n\tFs_base  uint64\n\tGs_base  uint64\n\tDs       uint64\n\tEs       uint64\n\tFs       uint64\n\tGs       uint64\n}\n\n// PtraceGetRegsAmd64 fetches the registers used by amd64 binaries.\nfunc PtraceGetRegsAmd64(pid int, regsout *PtraceRegsAmd64) error {\n\treturn ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout))\n}\n\n// PtraceSetRegsAmd64 sets the registers used by amd64 binaries.\nfunc PtraceSetRegsAmd64(pid int, regs *PtraceRegsAmd64) error {\n\treturn ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs))\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsymaddr_zos_s390x.s",
    "content": "// go run mksyscall_zos_s390x.go -o_sysnum zsysnum_zos_s390x.go -o_syscall zsyscall_zos_s390x.go -i_syscall syscall_zos_s390x.go -o_asm zsymaddr_zos_s390x.s\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build zos && s390x\n#include \"textflag.h\"\n\n//  provide the address of function variable to be fixed up.\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_FlistxattrAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Flistxattr(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_FremovexattrAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Fremovexattr(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_FgetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Fgetxattr(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_FsetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Fsetxattr(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_accept4Addr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·accept4(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_RemovexattrAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Removexattr(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_Dup3Addr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Dup3(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_DirfdAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Dirfd(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_EpollCreateAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·EpollCreate(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_EpollCreate1Addr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·EpollCreate1(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_EpollCtlAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·EpollCtl(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_EpollPwaitAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·EpollPwait(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_EpollWaitAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·EpollWait(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_EventfdAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Eventfd(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_FaccessatAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Faccessat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_FchmodatAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Fchmodat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_FchownatAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Fchownat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_FdatasyncAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Fdatasync(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_fstatatAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·fstatat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_LgetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Lgetxattr(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_LsetxattrAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Lsetxattr(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_FstatfsAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Fstatfs(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_FutimesAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Futimes(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_FutimesatAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Futimesat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_GetrandomAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Getrandom(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_InotifyInitAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·InotifyInit(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_InotifyInit1Addr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·InotifyInit1(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_InotifyAddWatchAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·InotifyAddWatch(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_InotifyRmWatchAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·InotifyRmWatch(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_ListxattrAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Listxattr(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_LlistxattrAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Llistxattr(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_LremovexattrAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Lremovexattr(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_LutimesAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Lutimes(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_StatfsAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Statfs(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_SyncfsAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Syncfs(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_UnshareAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Unshare(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_LinkatAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Linkat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_MkdiratAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Mkdirat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_MknodatAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Mknodat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_PivotRootAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·PivotRoot(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_PrctlAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Prctl(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_PrlimitAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Prlimit(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_RenameatAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Renameat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_Renameat2Addr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Renameat2(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_SethostnameAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Sethostname(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_SetnsAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Setns(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_SymlinkatAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Symlinkat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_UnlinkatAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·Unlinkat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_openatAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·openat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_openat2Addr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·openat2(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nTEXT ·get_utimensatAddr(SB), NOSPLIT|NOFRAME, $0-8\n\tMOVD $·utimensat(SB), R8\n\tMOVD R8, ret+0(FP)\n\tRET\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go",
    "content": "// go run mksyscall_aix_ppc.go -aix -tags aix,ppc syscall_aix.go syscall_aix_ppc.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build aix && ppc\n\npackage unix\n\n/*\n#include <stdint.h>\n#include <stddef.h>\nint utimes(uintptr_t, uintptr_t);\nint utimensat(int, uintptr_t, uintptr_t, int);\nint getcwd(uintptr_t, size_t);\nint accept(int, uintptr_t, uintptr_t);\nint getdirent(int, uintptr_t, size_t);\nint wait4(int, uintptr_t, int, uintptr_t);\nint ioctl(int, int, uintptr_t);\nint fcntl(uintptr_t, int, uintptr_t);\nint fsync_range(int, int, long long, long long);\nint acct(uintptr_t);\nint chdir(uintptr_t);\nint chroot(uintptr_t);\nint close(int);\nint dup(int);\nvoid exit(int);\nint faccessat(int, uintptr_t, unsigned int, int);\nint fchdir(int);\nint fchmod(int, unsigned int);\nint fchmodat(int, uintptr_t, unsigned int, int);\nint fchownat(int, uintptr_t, int, int, int);\nint fdatasync(int);\nint getpgid(int);\nint getpgrp();\nint getpid();\nint getppid();\nint getpriority(int, int);\nint getrusage(int, uintptr_t);\nint getsid(int);\nint kill(int, int);\nint syslog(int, uintptr_t, size_t);\nint mkdir(int, uintptr_t, unsigned int);\nint mkdirat(int, uintptr_t, unsigned int);\nint mkfifo(uintptr_t, unsigned int);\nint mknod(uintptr_t, unsigned int, int);\nint mknodat(int, uintptr_t, unsigned int, int);\nint nanosleep(uintptr_t, uintptr_t);\nint open64(uintptr_t, int, unsigned int);\nint openat(int, uintptr_t, int, unsigned int);\nint read(int, uintptr_t, size_t);\nint readlink(uintptr_t, uintptr_t, size_t);\nint renameat(int, uintptr_t, int, uintptr_t);\nint setdomainname(uintptr_t, size_t);\nint sethostname(uintptr_t, size_t);\nint setpgid(int, int);\nint setsid();\nint settimeofday(uintptr_t);\nint setuid(int);\nint setgid(int);\nint setpriority(int, int, int);\nint statx(int, uintptr_t, int, int, uintptr_t);\nint sync();\nuintptr_t times(uintptr_t);\nint umask(int);\nint uname(uintptr_t);\nint unlink(uintptr_t);\nint unlinkat(int, uintptr_t, int);\nint ustat(int, uintptr_t);\nint write(int, uintptr_t, size_t);\nint dup2(int, int);\nint posix_fadvise64(int, long long, long long, int);\nint fchown(int, int, int);\nint fstat(int, uintptr_t);\nint fstatat(int, uintptr_t, uintptr_t, int);\nint fstatfs(int, uintptr_t);\nint ftruncate(int, long long);\nint getegid();\nint geteuid();\nint getgid();\nint getuid();\nint lchown(uintptr_t, int, int);\nint listen(int, int);\nint lstat(uintptr_t, uintptr_t);\nint pause();\nint pread64(int, uintptr_t, size_t, long long);\nint pwrite64(int, uintptr_t, size_t, long long);\n#define c_select select\nint select(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t);\nint pselect(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t);\nint setregid(int, int);\nint setreuid(int, int);\nint shutdown(int, int);\nlong long splice(int, uintptr_t, int, uintptr_t, int, int);\nint stat(uintptr_t, uintptr_t);\nint statfs(uintptr_t, uintptr_t);\nint truncate(uintptr_t, long long);\nint bind(int, uintptr_t, uintptr_t);\nint connect(int, uintptr_t, uintptr_t);\nint getgroups(int, uintptr_t);\nint setgroups(int, uintptr_t);\nint getsockopt(int, int, int, uintptr_t, uintptr_t);\nint setsockopt(int, int, int, uintptr_t, uintptr_t);\nint socket(int, int, int);\nint socketpair(int, int, int, uintptr_t);\nint getpeername(int, uintptr_t, uintptr_t);\nint getsockname(int, uintptr_t, uintptr_t);\nint recvfrom(int, uintptr_t, size_t, int, uintptr_t, uintptr_t);\nint sendto(int, uintptr_t, size_t, int, uintptr_t, uintptr_t);\nint nrecvmsg(int, uintptr_t, int);\nint nsendmsg(int, uintptr_t, int);\nint munmap(uintptr_t, uintptr_t);\nint madvise(uintptr_t, size_t, int);\nint mprotect(uintptr_t, size_t, int);\nint mlock(uintptr_t, size_t);\nint mlockall(int);\nint msync(uintptr_t, size_t, int);\nint munlock(uintptr_t, size_t);\nint munlockall();\nint pipe(uintptr_t);\nint poll(uintptr_t, int, int);\nint gettimeofday(uintptr_t, uintptr_t);\nint time(uintptr_t);\nint utime(uintptr_t, uintptr_t);\nunsigned long long getsystemcfg(int);\nint umount(uintptr_t);\nint getrlimit64(int, uintptr_t);\nlong long lseek64(int, long long, int);\nuintptr_t mmap(uintptr_t, uintptr_t, int, int, int, long long);\n\n*/\nimport \"C\"\nimport (\n\t\"unsafe\"\n)\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.utimes(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(times))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.utimensat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(times))), C.int(flag))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getcwd(buf []byte) (err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(buf)\n\tr0, er := C.getcwd(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, er := C.accept(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(rsa))), C.uintptr_t(uintptr(unsafe.Pointer(addrlen))))\n\tfd = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getdirent(fd int, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(buf)\n\tr0, er := C.getdirent(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid Pid_t, status *_C_int, options int, rusage *Rusage) (wpid Pid_t, err error) {\n\tr0, er := C.wait4(C.int(pid), C.uintptr_t(uintptr(unsafe.Pointer(status))), C.int(options), C.uintptr_t(uintptr(unsafe.Pointer(rusage))))\n\twpid = Pid_t(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req int, arg uintptr) (err error) {\n\tr0, er := C.ioctl(C.int(fd), C.int(req), C.uintptr_t(arg))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) {\n\tr0, er := C.ioctl(C.int(fd), C.int(req), C.uintptr_t(uintptr(arg)))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FcntlInt(fd uintptr, cmd int, arg int) (r int, err error) {\n\tr0, er := C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(arg))\n\tr = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FcntlFlock(fd uintptr, cmd int, lk *Flock_t) (err error) {\n\tr0, er := C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(uintptr(unsafe.Pointer(lk))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, er := C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(arg))\n\tval = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fsyncRange(fd int, how int, start int64, length int64) (err error) {\n\tr0, er := C.fsync_range(C.int(fd), C.int(how), C.longlong(start), C.longlong(length))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Acct(path string) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.acct(C.uintptr_t(_p0))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.chdir(C.uintptr_t(_p0))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.chroot(C.uintptr_t(_p0))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\tr0, er := C.close(C.int(fd))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(oldfd int) (fd int, err error) {\n\tr0, er := C.dup(C.int(oldfd))\n\tfd = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tC.exit(C.int(code))\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.faccessat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\tr0, er := C.fchdir(C.int(fd))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\tr0, er := C.fchmod(C.int(fd), C.uint(mode))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.fchmodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.fchownat(C.int(dirfd), C.uintptr_t(_p0), C.int(uid), C.int(gid), C.int(flags))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fdatasync(fd int) (err error) {\n\tr0, er := C.fdatasync(C.int(fd))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, er := C.getpgid(C.int(pid))\n\tpgid = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pid int) {\n\tr0, _ := C.getpgrp()\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _ := C.getpid()\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _ := C.getppid()\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, er := C.getpriority(C.int(which), C.int(who))\n\tprio = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\tr0, er := C.getrusage(C.int(who), C.uintptr_t(uintptr(unsafe.Pointer(rusage))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, er := C.getsid(C.int(pid))\n\tsid = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, sig Signal) (err error) {\n\tr0, er := C.kill(C.int(pid), C.int(sig))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Klogctl(typ int, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(buf)\n\tr0, er := C.syslog(C.int(typ), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(dirfd int, path string, mode uint32) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.mkdir(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.mkdirat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.mkfifo(C.uintptr_t(_p0), C.uint(mode))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.mknod(C.uintptr_t(_p0), C.uint(mode), C.int(dev))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.mknodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(dev))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\tr0, er := C.nanosleep(C.uintptr_t(uintptr(unsafe.Pointer(time))), C.uintptr_t(uintptr(unsafe.Pointer(leftover))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.open64(C.uintptr_t(_p0), C.int(mode), C.uint(perm))\n\tfd = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.openat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.uint(mode))\n\tfd = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(p)\n\tr0, er := C.read(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tvar _p1 *byte\n\tif len(buf) > 0 {\n\t\t_p1 = &buf[0]\n\t}\n\tvar _p2 int\n\t_p2 = len(buf)\n\tr0, er := C.readlink(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(_p1))), C.size_t(_p2))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(oldpath)))\n\t_p1 := uintptr(unsafe.Pointer(C.CString(newpath)))\n\tr0, er := C.renameat(C.int(olddirfd), C.uintptr_t(_p0), C.int(newdirfd), C.uintptr_t(_p1))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setdomainname(p []byte) (err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(p)\n\tr0, er := C.setdomainname(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sethostname(p []byte) (err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(p)\n\tr0, er := C.sethostname(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\tr0, er := C.setpgid(C.int(pid), C.int(pgid))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, er := C.setsid()\n\tpid = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tv *Timeval) (err error) {\n\tr0, er := C.settimeofday(C.uintptr_t(uintptr(unsafe.Pointer(tv))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\tr0, er := C.setuid(C.int(uid))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(uid int) (err error) {\n\tr0, er := C.setgid(C.int(uid))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\tr0, er := C.setpriority(C.int(which), C.int(who), C.int(prio))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.statx(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.int(mask), C.uintptr_t(uintptr(unsafe.Pointer(stat))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() {\n\tC.sync()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Times(tms *Tms) (ticks uintptr, err error) {\n\tr0, er := C.times(C.uintptr_t(uintptr(unsafe.Pointer(tms))))\n\tticks = uintptr(r0)\n\tif uintptr(r0) == ^uintptr(0) && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(mask int) (oldmask int) {\n\tr0, _ := C.umask(C.int(mask))\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Uname(buf *Utsname) (err error) {\n\tr0, er := C.uname(C.uintptr_t(uintptr(unsafe.Pointer(buf))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.unlink(C.uintptr_t(_p0))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.unlinkat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\tr0, er := C.ustat(C.int(dev), C.uintptr_t(uintptr(unsafe.Pointer(ubuf))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(p)\n\tr0, er := C.write(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(oldfd int, newfd int) (err error) {\n\tr0, er := C.dup2(C.int(oldfd), C.int(newfd))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\tr0, er := C.posix_fadvise64(C.int(fd), C.longlong(offset), C.longlong(length), C.int(advice))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\tr0, er := C.fchown(C.int(fd), C.int(uid), C.int(gid))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstat(fd int, stat *Stat_t) (err error) {\n\tr0, er := C.fstat(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(stat))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.fstatat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(stat))), C.int(flags))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\tr0, er := C.fstatfs(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(buf))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\tr0, er := C.ftruncate(C.int(fd), C.longlong(length))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := C.getegid()\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := C.geteuid()\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := C.getgid()\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := C.getuid()\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.lchown(C.uintptr_t(_p0), C.int(uid), C.int(gid))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\tr0, er := C.listen(C.int(s), C.int(n))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc lstat(path string, stat *Stat_t) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.lstat(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(stat))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\tr0, er := C.pause()\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(p)\n\tr0, er := C.pread64(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.longlong(offset))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(p)\n\tr0, er := C.pwrite64(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.longlong(offset))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, er := C.c_select(C.int(nfd), C.uintptr_t(uintptr(unsafe.Pointer(r))), C.uintptr_t(uintptr(unsafe.Pointer(w))), C.uintptr_t(uintptr(unsafe.Pointer(e))), C.uintptr_t(uintptr(unsafe.Pointer(timeout))))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, er := C.pselect(C.int(nfd), C.uintptr_t(uintptr(unsafe.Pointer(r))), C.uintptr_t(uintptr(unsafe.Pointer(w))), C.uintptr_t(uintptr(unsafe.Pointer(e))), C.uintptr_t(uintptr(unsafe.Pointer(timeout))), C.uintptr_t(uintptr(unsafe.Pointer(sigmask))))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\tr0, er := C.setregid(C.int(rgid), C.int(egid))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\tr0, er := C.setreuid(C.int(ruid), C.int(euid))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\tr0, er := C.shutdown(C.int(fd), C.int(how))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, er := C.splice(C.int(rfd), C.uintptr_t(uintptr(unsafe.Pointer(roff))), C.int(wfd), C.uintptr_t(uintptr(unsafe.Pointer(woff))), C.int(len), C.int(flags))\n\tn = int64(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc stat(path string, statptr *Stat_t) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.stat(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(statptr))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.statfs(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(buf))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.truncate(C.uintptr_t(_p0), C.longlong(length))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\tr0, er := C.bind(C.int(s), C.uintptr_t(uintptr(addr)), C.uintptr_t(uintptr(addrlen)))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\tr0, er := C.connect(C.int(s), C.uintptr_t(uintptr(addr)), C.uintptr_t(uintptr(addrlen)))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, er := C.getgroups(C.int(n), C.uintptr_t(uintptr(unsafe.Pointer(list))))\n\tnn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\tr0, er := C.setgroups(C.int(n), C.uintptr_t(uintptr(unsafe.Pointer(list))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\tr0, er := C.getsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(uintptr(val)), C.uintptr_t(uintptr(unsafe.Pointer(vallen))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\tr0, er := C.setsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(uintptr(val)), C.uintptr_t(vallen))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, er := C.socket(C.int(domain), C.int(typ), C.int(proto))\n\tfd = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\tr0, er := C.socketpair(C.int(domain), C.int(typ), C.int(proto), C.uintptr_t(uintptr(unsafe.Pointer(fd))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\tr0, er := C.getpeername(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(rsa))), C.uintptr_t(uintptr(unsafe.Pointer(addrlen))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\tr0, er := C.getsockname(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(rsa))), C.uintptr_t(uintptr(unsafe.Pointer(addrlen))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(p)\n\tr0, er := C.recvfrom(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(flags), C.uintptr_t(uintptr(unsafe.Pointer(from))), C.uintptr_t(uintptr(unsafe.Pointer(fromlen))))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(buf)\n\tr0, er := C.sendto(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(flags), C.uintptr_t(uintptr(to)), C.uintptr_t(uintptr(addrlen)))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, er := C.nrecvmsg(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(msg))), C.int(flags))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, er := C.nsendmsg(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(msg))), C.int(flags))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\tr0, er := C.munmap(C.uintptr_t(addr), C.uintptr_t(length))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, advice int) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(b)\n\tr0, er := C.madvise(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(advice))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(b)\n\tr0, er := C.mprotect(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(prot))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(b)\n\tr0, er := C.mlock(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\tr0, er := C.mlockall(C.int(flags))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(b)\n\tr0, er := C.msync(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(flags))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\tvar _p1 int\n\t_p1 = len(b)\n\tr0, er := C.munlock(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\tr0, er := C.munlockall()\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe(p *[2]_C_int) (err error) {\n\tr0, er := C.pipe(C.uintptr_t(uintptr(unsafe.Pointer(p))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, er := C.poll(C.uintptr_t(uintptr(unsafe.Pointer(fds))), C.int(nfds), C.int(timeout))\n\tn = int(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc gettimeofday(tv *Timeval, tzp *Timezone) (err error) {\n\tr0, er := C.gettimeofday(C.uintptr_t(uintptr(unsafe.Pointer(tv))), C.uintptr_t(uintptr(unsafe.Pointer(tzp))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tr0, er := C.time(C.uintptr_t(uintptr(unsafe.Pointer(t))))\n\ttt = Time_t(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(path)))\n\tr0, er := C.utime(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(buf))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsystemcfg(label int) (n uint64) {\n\tr0, _ := C.getsystemcfg(C.int(label))\n\tn = uint64(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc umount(target string) (err error) {\n\t_p0 := uintptr(unsafe.Pointer(C.CString(target)))\n\tr0, er := C.umount(C.uintptr_t(_p0))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\tr0, er := C.getrlimit64(C.int(resource), C.uintptr_t(uintptr(unsafe.Pointer(rlim))))\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, er := C.lseek64(C.int(fd), C.longlong(offset), C.int(whence))\n\toff = int64(r0)\n\tif r0 == -1 && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tr0, er := C.mmap(C.uintptr_t(addr), C.uintptr_t(length), C.int(prot), C.int(flags), C.int(fd), C.longlong(offset))\n\txaddr = uintptr(r0)\n\tif uintptr(r0) == ^uintptr(0) && er != nil {\n\t\terr = er\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go",
    "content": "// go run mksyscall_aix_ppc64.go -aix -tags aix,ppc64 syscall_aix.go syscall_aix_ppc64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build aix && ppc64\n\npackage unix\n\nimport (\n\t\"unsafe\"\n)\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callutimes(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callutimensat(dirfd, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), flag)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getcwd(buf []byte) (err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\t_, e1 := callgetcwd(uintptr(unsafe.Pointer(_p0)), len(buf))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, e1 := callaccept(s, uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getdirent(fd int, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tr0, e1 := callgetdirent(fd, uintptr(unsafe.Pointer(_p0)), len(buf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid Pid_t, status *_C_int, options int, rusage *Rusage) (wpid Pid_t, err error) {\n\tr0, e1 := callwait4(int(pid), uintptr(unsafe.Pointer(status)), options, uintptr(unsafe.Pointer(rusage)))\n\twpid = Pid_t(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req int, arg uintptr) (err error) {\n\t_, e1 := callioctl(fd, req, arg)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) {\n\t_, e1 := callioctl_ptr(fd, req, arg)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FcntlInt(fd uintptr, cmd int, arg int) (r int, err error) {\n\tr0, e1 := callfcntl(fd, cmd, uintptr(arg))\n\tr = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FcntlFlock(fd uintptr, cmd int, lk *Flock_t) (err error) {\n\t_, e1 := callfcntl(fd, cmd, uintptr(unsafe.Pointer(lk)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, e1 := callfcntl(uintptr(fd), cmd, uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fsyncRange(fd int, how int, start int64, length int64) (err error) {\n\t_, e1 := callfsync_range(fd, how, start, length)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Acct(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callacct(uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callchdir(uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callchroot(uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, e1 := callclose(fd)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(oldfd int) (fd int, err error) {\n\tr0, e1 := calldup(oldfd)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tcallexit(code)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callfaccessat(dirfd, uintptr(unsafe.Pointer(_p0)), mode, flags)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, e1 := callfchdir(fd)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, e1 := callfchmod(fd, mode)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callfchmodat(dirfd, uintptr(unsafe.Pointer(_p0)), mode, flags)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callfchownat(dirfd, uintptr(unsafe.Pointer(_p0)), uid, gid, flags)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fdatasync(fd int) (err error) {\n\t_, e1 := callfdatasync(fd)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, e1 := callgetpgid(pid)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pid int) {\n\tr0, _ := callgetpgrp()\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _ := callgetpid()\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _ := callgetppid()\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, e1 := callgetpriority(which, who)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, e1 := callgetrusage(who, uintptr(unsafe.Pointer(rusage)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, e1 := callgetsid(pid)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, sig Signal) (err error) {\n\t_, e1 := callkill(pid, int(sig))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Klogctl(typ int, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tr0, e1 := callsyslog(typ, uintptr(unsafe.Pointer(_p0)), len(buf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callmkdir(dirfd, uintptr(unsafe.Pointer(_p0)), mode)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callmkdirat(dirfd, uintptr(unsafe.Pointer(_p0)), mode)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callmkfifo(uintptr(unsafe.Pointer(_p0)), mode)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callmknod(uintptr(unsafe.Pointer(_p0)), mode, dev)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callmknodat(dirfd, uintptr(unsafe.Pointer(_p0)), mode, dev)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, e1 := callnanosleep(uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, e1 := callopen64(uintptr(unsafe.Pointer(_p0)), mode, perm)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, e1 := callopenat(dirfd, uintptr(unsafe.Pointer(_p0)), flags, mode)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tr0, e1 := callread(fd, uintptr(unsafe.Pointer(_p0)), len(p))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\tif len(buf) > 0 {\n\t\t_p1 = &buf[0]\n\t}\n\tr0, e1 := callreadlink(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), len(buf))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callrenameat(olddirfd, uintptr(unsafe.Pointer(_p0)), newdirfd, uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setdomainname(p []byte) (err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\t_, e1 := callsetdomainname(uintptr(unsafe.Pointer(_p0)), len(p))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sethostname(p []byte) (err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\t_, e1 := callsethostname(uintptr(unsafe.Pointer(_p0)), len(p))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, e1 := callsetpgid(pid, pgid)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, e1 := callsetsid()\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tv *Timeval) (err error) {\n\t_, e1 := callsettimeofday(uintptr(unsafe.Pointer(tv)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, e1 := callsetuid(uid)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(uid int) (err error) {\n\t_, e1 := callsetgid(uid)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, e1 := callsetpriority(which, who, prio)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callstatx(dirfd, uintptr(unsafe.Pointer(_p0)), flags, mask, uintptr(unsafe.Pointer(stat)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() {\n\tcallsync()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Times(tms *Tms) (ticks uintptr, err error) {\n\tr0, e1 := calltimes(uintptr(unsafe.Pointer(tms)))\n\tticks = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(mask int) (oldmask int) {\n\tr0, _ := callumask(mask)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Uname(buf *Utsname) (err error) {\n\t_, e1 := calluname(uintptr(unsafe.Pointer(buf)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callunlink(uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callunlinkat(dirfd, uintptr(unsafe.Pointer(_p0)), flags)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, e1 := callustat(dev, uintptr(unsafe.Pointer(ubuf)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tr0, e1 := callwrite(fd, uintptr(unsafe.Pointer(_p0)), len(p))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(oldfd int, newfd int) (err error) {\n\t_, e1 := calldup2(oldfd, newfd)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, e1 := callposix_fadvise64(fd, offset, length, advice)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, e1 := callfchown(fd, uid, gid)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstat(fd int, stat *Stat_t) (err error) {\n\t_, e1 := callfstat(fd, uintptr(unsafe.Pointer(stat)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callfstatat(dirfd, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), flags)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, e1 := callfstatfs(fd, uintptr(unsafe.Pointer(buf)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, e1 := callftruncate(fd, length)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := callgetegid()\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := callgeteuid()\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := callgetgid()\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := callgetuid()\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := calllchown(uintptr(unsafe.Pointer(_p0)), uid, gid)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, e1 := calllisten(s, n)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := calllstat(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, e1 := callpause()\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tr0, e1 := callpread64(fd, uintptr(unsafe.Pointer(_p0)), len(p), offset)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tr0, e1 := callpwrite64(fd, uintptr(unsafe.Pointer(_p0)), len(p), offset)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, e1 := callselect(nfd, uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, e1 := callpselect(nfd, uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, e1 := callsetregid(rgid, egid)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, e1 := callsetreuid(ruid, euid)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, e1 := callshutdown(fd, how)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, e1 := callsplice(rfd, uintptr(unsafe.Pointer(roff)), wfd, uintptr(unsafe.Pointer(woff)), len, flags)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc stat(path string, statptr *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callstat(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(statptr)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callstatfs(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := calltruncate(uintptr(unsafe.Pointer(_p0)), length)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, e1 := callbind(s, uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, e1 := callconnect(s, uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, e1 := callgetgroups(n, uintptr(unsafe.Pointer(list)))\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, e1 := callsetgroups(n, uintptr(unsafe.Pointer(list)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, e1 := callgetsockopt(s, level, name, uintptr(val), uintptr(unsafe.Pointer(vallen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, e1 := callsetsockopt(s, level, name, uintptr(val), vallen)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, e1 := callsocket(domain, typ, proto)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, e1 := callsocketpair(domain, typ, proto, uintptr(unsafe.Pointer(fd)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, e1 := callgetpeername(fd, uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, e1 := callgetsockname(fd, uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tr0, e1 := callrecvfrom(fd, uintptr(unsafe.Pointer(_p0)), len(p), flags, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\t_, e1 := callsendto(s, uintptr(unsafe.Pointer(_p0)), len(buf), flags, uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, e1 := callnrecvmsg(s, uintptr(unsafe.Pointer(msg)), flags)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, e1 := callnsendmsg(s, uintptr(unsafe.Pointer(msg)), flags)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, e1 := callmunmap(addr, length)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, advice int) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\t_, e1 := callmadvise(uintptr(unsafe.Pointer(_p0)), len(b), advice)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\t_, e1 := callmprotect(uintptr(unsafe.Pointer(_p0)), len(b), prot)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\t_, e1 := callmlock(uintptr(unsafe.Pointer(_p0)), len(b))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, e1 := callmlockall(flags)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\t_, e1 := callmsync(uintptr(unsafe.Pointer(_p0)), len(b), flags)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\t_, e1 := callmunlock(uintptr(unsafe.Pointer(_p0)), len(b))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, e1 := callmunlockall()\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe(p *[2]_C_int) (err error) {\n\t_, e1 := callpipe(uintptr(unsafe.Pointer(p)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, e1 := callpoll(uintptr(unsafe.Pointer(fds)), nfds, timeout)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc gettimeofday(tv *Timeval, tzp *Timezone) (err error) {\n\t_, e1 := callgettimeofday(uintptr(unsafe.Pointer(tv)), uintptr(unsafe.Pointer(tzp)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tr0, e1 := calltime(uintptr(unsafe.Pointer(t)))\n\ttt = Time_t(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callutime(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsystemcfg(label int) (n uint64) {\n\tr0, _ := callgetsystemcfg(label)\n\tn = uint64(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc umount(target string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, e1 := callumount(uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, e1 := callgetrlimit(resource, uintptr(unsafe.Pointer(rlim)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, e1 := calllseek(fd, offset, whence)\n\toff = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tr0, e1 := callmmap64(addr, length, prot, flags, fd, offset)\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go",
    "content": "// go run mksyscall_aix_ppc64.go -aix -tags aix,ppc64 syscall_aix.go syscall_aix_ppc64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build aix && ppc64 && gc\n\npackage unix\n\nimport (\n\t\"unsafe\"\n)\n\n//go:cgo_import_dynamic libc_utimes utimes \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_utimensat utimensat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getcwd getcwd \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_accept accept \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getdirent getdirent \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_wait4 wait4 \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_ioctl ioctl \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fcntl fcntl \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fsync_range fsync_range \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_acct acct \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_chdir chdir \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_chroot chroot \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_close close \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_dup dup \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_exit exit \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_faccessat faccessat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fchdir fchdir \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fchmod fchmod \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fchmodat fchmodat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fchownat fchownat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fdatasync fdatasync \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getpgid getpgid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getpgrp getpgrp \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getpid getpid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getppid getppid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getpriority getpriority \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getrusage getrusage \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getsid getsid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_kill kill \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_syslog syslog \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_mkdir mkdir \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_mkdirat mkdirat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_mkfifo mkfifo \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_mknod mknod \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_mknodat mknodat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_nanosleep nanosleep \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_open64 open64 \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_openat openat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_read read \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_readlink readlink \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_renameat renameat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_setdomainname setdomainname \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_sethostname sethostname \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_setpgid setpgid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_setsid setsid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_settimeofday settimeofday \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_setuid setuid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_setgid setgid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_setpriority setpriority \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_statx statx \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_sync sync \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_times times \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_umask umask \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_uname uname \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_unlink unlink \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_unlinkat unlinkat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_ustat ustat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_write write \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_dup2 dup2 \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_posix_fadvise64 posix_fadvise64 \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fchown fchown \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fstat fstat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fstatat fstatat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_fstatfs fstatfs \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_ftruncate ftruncate \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getegid getegid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_geteuid geteuid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getgid getgid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getuid getuid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_lchown lchown \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_listen listen \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_lstat lstat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_pause pause \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_pread64 pread64 \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_pwrite64 pwrite64 \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_select select \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_pselect pselect \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_setregid setregid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_setreuid setreuid \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_shutdown shutdown \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_splice splice \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_stat stat \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_statfs statfs \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_truncate truncate \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_bind bind \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_connect connect \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getgroups getgroups \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_setgroups setgroups \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getsockopt getsockopt \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_setsockopt setsockopt \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_socket socket \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_socketpair socketpair \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getpeername getpeername \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getsockname getsockname \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_recvfrom recvfrom \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_sendto sendto \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_nrecvmsg nrecvmsg \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_nsendmsg nsendmsg \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_munmap munmap \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_madvise madvise \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_mprotect mprotect \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_mlock mlock \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_mlockall mlockall \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_msync msync \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_munlock munlock \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_munlockall munlockall \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_pipe pipe \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_poll poll \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_gettimeofday gettimeofday \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_time time \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_utime utime \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getsystemcfg getsystemcfg \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_umount umount \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_getrlimit getrlimit \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_lseek lseek \"libc.a/shr_64.o\"\n//go:cgo_import_dynamic libc_mmap64 mmap64 \"libc.a/shr_64.o\"\n\n//go:linkname libc_utimes libc_utimes\n//go:linkname libc_utimensat libc_utimensat\n//go:linkname libc_getcwd libc_getcwd\n//go:linkname libc_accept libc_accept\n//go:linkname libc_getdirent libc_getdirent\n//go:linkname libc_wait4 libc_wait4\n//go:linkname libc_ioctl libc_ioctl\n//go:linkname libc_fcntl libc_fcntl\n//go:linkname libc_fsync_range libc_fsync_range\n//go:linkname libc_acct libc_acct\n//go:linkname libc_chdir libc_chdir\n//go:linkname libc_chroot libc_chroot\n//go:linkname libc_close libc_close\n//go:linkname libc_dup libc_dup\n//go:linkname libc_exit libc_exit\n//go:linkname libc_faccessat libc_faccessat\n//go:linkname libc_fchdir libc_fchdir\n//go:linkname libc_fchmod libc_fchmod\n//go:linkname libc_fchmodat libc_fchmodat\n//go:linkname libc_fchownat libc_fchownat\n//go:linkname libc_fdatasync libc_fdatasync\n//go:linkname libc_getpgid libc_getpgid\n//go:linkname libc_getpgrp libc_getpgrp\n//go:linkname libc_getpid libc_getpid\n//go:linkname libc_getppid libc_getppid\n//go:linkname libc_getpriority libc_getpriority\n//go:linkname libc_getrusage libc_getrusage\n//go:linkname libc_getsid libc_getsid\n//go:linkname libc_kill libc_kill\n//go:linkname libc_syslog libc_syslog\n//go:linkname libc_mkdir libc_mkdir\n//go:linkname libc_mkdirat libc_mkdirat\n//go:linkname libc_mkfifo libc_mkfifo\n//go:linkname libc_mknod libc_mknod\n//go:linkname libc_mknodat libc_mknodat\n//go:linkname libc_nanosleep libc_nanosleep\n//go:linkname libc_open64 libc_open64\n//go:linkname libc_openat libc_openat\n//go:linkname libc_read libc_read\n//go:linkname libc_readlink libc_readlink\n//go:linkname libc_renameat libc_renameat\n//go:linkname libc_setdomainname libc_setdomainname\n//go:linkname libc_sethostname libc_sethostname\n//go:linkname libc_setpgid libc_setpgid\n//go:linkname libc_setsid libc_setsid\n//go:linkname libc_settimeofday libc_settimeofday\n//go:linkname libc_setuid libc_setuid\n//go:linkname libc_setgid libc_setgid\n//go:linkname libc_setpriority libc_setpriority\n//go:linkname libc_statx libc_statx\n//go:linkname libc_sync libc_sync\n//go:linkname libc_times libc_times\n//go:linkname libc_umask libc_umask\n//go:linkname libc_uname libc_uname\n//go:linkname libc_unlink libc_unlink\n//go:linkname libc_unlinkat libc_unlinkat\n//go:linkname libc_ustat libc_ustat\n//go:linkname libc_write libc_write\n//go:linkname libc_dup2 libc_dup2\n//go:linkname libc_posix_fadvise64 libc_posix_fadvise64\n//go:linkname libc_fchown libc_fchown\n//go:linkname libc_fstat libc_fstat\n//go:linkname libc_fstatat libc_fstatat\n//go:linkname libc_fstatfs libc_fstatfs\n//go:linkname libc_ftruncate libc_ftruncate\n//go:linkname libc_getegid libc_getegid\n//go:linkname libc_geteuid libc_geteuid\n//go:linkname libc_getgid libc_getgid\n//go:linkname libc_getuid libc_getuid\n//go:linkname libc_lchown libc_lchown\n//go:linkname libc_listen libc_listen\n//go:linkname libc_lstat libc_lstat\n//go:linkname libc_pause libc_pause\n//go:linkname libc_pread64 libc_pread64\n//go:linkname libc_pwrite64 libc_pwrite64\n//go:linkname libc_select libc_select\n//go:linkname libc_pselect libc_pselect\n//go:linkname libc_setregid libc_setregid\n//go:linkname libc_setreuid libc_setreuid\n//go:linkname libc_shutdown libc_shutdown\n//go:linkname libc_splice libc_splice\n//go:linkname libc_stat libc_stat\n//go:linkname libc_statfs libc_statfs\n//go:linkname libc_truncate libc_truncate\n//go:linkname libc_bind libc_bind\n//go:linkname libc_connect libc_connect\n//go:linkname libc_getgroups libc_getgroups\n//go:linkname libc_setgroups libc_setgroups\n//go:linkname libc_getsockopt libc_getsockopt\n//go:linkname libc_setsockopt libc_setsockopt\n//go:linkname libc_socket libc_socket\n//go:linkname libc_socketpair libc_socketpair\n//go:linkname libc_getpeername libc_getpeername\n//go:linkname libc_getsockname libc_getsockname\n//go:linkname libc_recvfrom libc_recvfrom\n//go:linkname libc_sendto libc_sendto\n//go:linkname libc_nrecvmsg libc_nrecvmsg\n//go:linkname libc_nsendmsg libc_nsendmsg\n//go:linkname libc_munmap libc_munmap\n//go:linkname libc_madvise libc_madvise\n//go:linkname libc_mprotect libc_mprotect\n//go:linkname libc_mlock libc_mlock\n//go:linkname libc_mlockall libc_mlockall\n//go:linkname libc_msync libc_msync\n//go:linkname libc_munlock libc_munlock\n//go:linkname libc_munlockall libc_munlockall\n//go:linkname libc_pipe libc_pipe\n//go:linkname libc_poll libc_poll\n//go:linkname libc_gettimeofday libc_gettimeofday\n//go:linkname libc_time libc_time\n//go:linkname libc_utime libc_utime\n//go:linkname libc_getsystemcfg libc_getsystemcfg\n//go:linkname libc_umount libc_umount\n//go:linkname libc_getrlimit libc_getrlimit\n//go:linkname libc_lseek libc_lseek\n//go:linkname libc_mmap64 libc_mmap64\n\ntype syscallFunc uintptr\n\nvar (\n\tlibc_utimes,\n\tlibc_utimensat,\n\tlibc_getcwd,\n\tlibc_accept,\n\tlibc_getdirent,\n\tlibc_wait4,\n\tlibc_ioctl,\n\tlibc_fcntl,\n\tlibc_fsync_range,\n\tlibc_acct,\n\tlibc_chdir,\n\tlibc_chroot,\n\tlibc_close,\n\tlibc_dup,\n\tlibc_exit,\n\tlibc_faccessat,\n\tlibc_fchdir,\n\tlibc_fchmod,\n\tlibc_fchmodat,\n\tlibc_fchownat,\n\tlibc_fdatasync,\n\tlibc_getpgid,\n\tlibc_getpgrp,\n\tlibc_getpid,\n\tlibc_getppid,\n\tlibc_getpriority,\n\tlibc_getrusage,\n\tlibc_getsid,\n\tlibc_kill,\n\tlibc_syslog,\n\tlibc_mkdir,\n\tlibc_mkdirat,\n\tlibc_mkfifo,\n\tlibc_mknod,\n\tlibc_mknodat,\n\tlibc_nanosleep,\n\tlibc_open64,\n\tlibc_openat,\n\tlibc_read,\n\tlibc_readlink,\n\tlibc_renameat,\n\tlibc_setdomainname,\n\tlibc_sethostname,\n\tlibc_setpgid,\n\tlibc_setsid,\n\tlibc_settimeofday,\n\tlibc_setuid,\n\tlibc_setgid,\n\tlibc_setpriority,\n\tlibc_statx,\n\tlibc_sync,\n\tlibc_times,\n\tlibc_umask,\n\tlibc_uname,\n\tlibc_unlink,\n\tlibc_unlinkat,\n\tlibc_ustat,\n\tlibc_write,\n\tlibc_dup2,\n\tlibc_posix_fadvise64,\n\tlibc_fchown,\n\tlibc_fstat,\n\tlibc_fstatat,\n\tlibc_fstatfs,\n\tlibc_ftruncate,\n\tlibc_getegid,\n\tlibc_geteuid,\n\tlibc_getgid,\n\tlibc_getuid,\n\tlibc_lchown,\n\tlibc_listen,\n\tlibc_lstat,\n\tlibc_pause,\n\tlibc_pread64,\n\tlibc_pwrite64,\n\tlibc_select,\n\tlibc_pselect,\n\tlibc_setregid,\n\tlibc_setreuid,\n\tlibc_shutdown,\n\tlibc_splice,\n\tlibc_stat,\n\tlibc_statfs,\n\tlibc_truncate,\n\tlibc_bind,\n\tlibc_connect,\n\tlibc_getgroups,\n\tlibc_setgroups,\n\tlibc_getsockopt,\n\tlibc_setsockopt,\n\tlibc_socket,\n\tlibc_socketpair,\n\tlibc_getpeername,\n\tlibc_getsockname,\n\tlibc_recvfrom,\n\tlibc_sendto,\n\tlibc_nrecvmsg,\n\tlibc_nsendmsg,\n\tlibc_munmap,\n\tlibc_madvise,\n\tlibc_mprotect,\n\tlibc_mlock,\n\tlibc_mlockall,\n\tlibc_msync,\n\tlibc_munlock,\n\tlibc_munlockall,\n\tlibc_pipe,\n\tlibc_poll,\n\tlibc_gettimeofday,\n\tlibc_time,\n\tlibc_utime,\n\tlibc_getsystemcfg,\n\tlibc_umount,\n\tlibc_getrlimit,\n\tlibc_lseek,\n\tlibc_mmap64 syscallFunc\n)\n\n// Implemented in runtime/syscall_aix.go.\nfunc rawSyscall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)\nfunc syscall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callutimes(_p0 uintptr, times uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_utimes)), 2, _p0, times, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callutimensat(dirfd int, _p0 uintptr, times uintptr, flag int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_utimensat)), 4, uintptr(dirfd), _p0, times, uintptr(flag), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetcwd(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getcwd)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callaccept(s int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_accept)), 3, uintptr(s), rsa, addrlen, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetdirent(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getdirent)), 3, uintptr(fd), _p0, uintptr(_lenp0), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callwait4(pid int, status uintptr, options int, rusage uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_wait4)), 4, uintptr(pid), status, uintptr(options), rusage, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callioctl(fd int, req int, arg uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ioctl)), 3, uintptr(fd), uintptr(req), arg, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callioctl_ptr(fd int, req int, arg unsafe.Pointer) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ioctl)), 3, uintptr(fd), uintptr(req), uintptr(arg), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfcntl(fd uintptr, cmd int, arg uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fcntl)), 3, fd, uintptr(cmd), arg, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfsync_range(fd int, how int, start int64, length int64) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fsync_range)), 4, uintptr(fd), uintptr(how), uintptr(start), uintptr(length), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callacct(_p0 uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_acct)), 1, _p0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callchdir(_p0 uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_chdir)), 1, _p0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callchroot(_p0 uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_chroot)), 1, _p0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callclose(fd int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_close)), 1, uintptr(fd), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calldup(oldfd int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_dup)), 1, uintptr(oldfd), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callexit(code int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_exit)), 1, uintptr(code), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfaccessat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_faccessat)), 4, uintptr(dirfd), _p0, uintptr(mode), uintptr(flags), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfchdir(fd int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchdir)), 1, uintptr(fd), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfchmod(fd int, mode uint32) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchmod)), 2, uintptr(fd), uintptr(mode), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfchmodat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchmodat)), 4, uintptr(dirfd), _p0, uintptr(mode), uintptr(flags), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfchownat(dirfd int, _p0 uintptr, uid int, gid int, flags int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchownat)), 5, uintptr(dirfd), _p0, uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfdatasync(fd int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fdatasync)), 1, uintptr(fd), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetpgid(pid int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getpgid)), 1, uintptr(pid), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetpgrp() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getpgrp)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetpid() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getpid)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetppid() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getppid)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetpriority(which int, who int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getpriority)), 2, uintptr(which), uintptr(who), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetrusage(who int, rusage uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getrusage)), 2, uintptr(who), rusage, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetsid(pid int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getsid)), 1, uintptr(pid), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callkill(pid int, sig int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_kill)), 2, uintptr(pid), uintptr(sig), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsyslog(typ int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_syslog)), 3, uintptr(typ), _p0, uintptr(_lenp0), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmkdir(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mkdir)), 3, uintptr(dirfd), _p0, uintptr(mode), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmkdirat(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mkdirat)), 3, uintptr(dirfd), _p0, uintptr(mode), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmkfifo(_p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mkfifo)), 2, _p0, uintptr(mode), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmknod(_p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mknod)), 3, _p0, uintptr(mode), uintptr(dev), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmknodat(dirfd int, _p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mknodat)), 4, uintptr(dirfd), _p0, uintptr(mode), uintptr(dev), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callnanosleep(time uintptr, leftover uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_nanosleep)), 2, time, leftover, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callopen64(_p0 uintptr, mode int, perm uint32) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_open64)), 3, _p0, uintptr(mode), uintptr(perm), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callopenat(dirfd int, _p0 uintptr, flags int, mode uint32) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_openat)), 4, uintptr(dirfd), _p0, uintptr(flags), uintptr(mode), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callread(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_read)), 3, uintptr(fd), _p0, uintptr(_lenp0), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callreadlink(_p0 uintptr, _p1 uintptr, _lenp1 int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_readlink)), 3, _p0, _p1, uintptr(_lenp1), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callrenameat(olddirfd int, _p0 uintptr, newdirfd int, _p1 uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_renameat)), 4, uintptr(olddirfd), _p0, uintptr(newdirfd), _p1, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetdomainname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setdomainname)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsethostname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_sethostname)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetpgid(pid int, pgid int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setpgid)), 2, uintptr(pid), uintptr(pgid), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetsid() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setsid)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsettimeofday(tv uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_settimeofday)), 1, tv, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetuid(uid int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setuid)), 1, uintptr(uid), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetgid(uid int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setgid)), 1, uintptr(uid), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetpriority(which int, who int, prio int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setpriority)), 3, uintptr(which), uintptr(who), uintptr(prio), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callstatx(dirfd int, _p0 uintptr, flags int, mask int, stat uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_statx)), 5, uintptr(dirfd), _p0, uintptr(flags), uintptr(mask), stat, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsync() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_sync)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calltimes(tms uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_times)), 1, tms, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callumask(mask int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_umask)), 1, uintptr(mask), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calluname(buf uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_uname)), 1, buf, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callunlink(_p0 uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_unlink)), 1, _p0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callunlinkat(dirfd int, _p0 uintptr, flags int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_unlinkat)), 3, uintptr(dirfd), _p0, uintptr(flags), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callustat(dev int, ubuf uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ustat)), 2, uintptr(dev), ubuf, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callwrite(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_write)), 3, uintptr(fd), _p0, uintptr(_lenp0), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calldup2(oldfd int, newfd int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_dup2)), 2, uintptr(oldfd), uintptr(newfd), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callposix_fadvise64(fd int, offset int64, length int64, advice int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_posix_fadvise64)), 4, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfchown(fd int, uid int, gid int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchown)), 3, uintptr(fd), uintptr(uid), uintptr(gid), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfstat(fd int, stat uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fstat)), 2, uintptr(fd), stat, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfstatat(dirfd int, _p0 uintptr, stat uintptr, flags int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fstatat)), 4, uintptr(dirfd), _p0, stat, uintptr(flags), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfstatfs(fd int, buf uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fstatfs)), 2, uintptr(fd), buf, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callftruncate(fd int, length int64) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ftruncate)), 2, uintptr(fd), uintptr(length), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetegid() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getegid)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgeteuid() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_geteuid)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetgid() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getgid)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetuid() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getuid)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calllchown(_p0 uintptr, uid int, gid int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_lchown)), 3, _p0, uintptr(uid), uintptr(gid), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calllisten(s int, n int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_listen)), 2, uintptr(s), uintptr(n), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calllstat(_p0 uintptr, stat uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_lstat)), 2, _p0, stat, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpause() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pause)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpread64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pread64)), 4, uintptr(fd), _p0, uintptr(_lenp0), uintptr(offset), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpwrite64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pwrite64)), 4, uintptr(fd), _p0, uintptr(_lenp0), uintptr(offset), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_select)), 5, uintptr(nfd), r, w, e, timeout, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr, sigmask uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pselect)), 6, uintptr(nfd), r, w, e, timeout, sigmask)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetregid(rgid int, egid int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setregid)), 2, uintptr(rgid), uintptr(egid), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetreuid(ruid int, euid int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setreuid)), 2, uintptr(ruid), uintptr(euid), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callshutdown(fd int, how int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_shutdown)), 2, uintptr(fd), uintptr(how), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsplice(rfd int, roff uintptr, wfd int, woff uintptr, len int, flags int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_splice)), 6, uintptr(rfd), roff, uintptr(wfd), woff, uintptr(len), uintptr(flags))\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callstat(_p0 uintptr, statptr uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_stat)), 2, _p0, statptr, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callstatfs(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_statfs)), 2, _p0, buf, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calltruncate(_p0 uintptr, length int64) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_truncate)), 2, _p0, uintptr(length), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callbind(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_bind)), 3, uintptr(s), addr, addrlen, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callconnect(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_connect)), 3, uintptr(s), addr, addrlen, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getgroups)), 2, uintptr(n), list, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setgroups)), 2, uintptr(n), list, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), val, vallen, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), val, vallen, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsocket(domain int, typ int, proto int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_socket)), 3, uintptr(domain), uintptr(typ), uintptr(proto), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsocketpair(domain int, typ int, proto int, fd uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_socketpair)), 4, uintptr(domain), uintptr(typ), uintptr(proto), fd, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetpeername(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getpeername)), 3, uintptr(fd), rsa, addrlen, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetsockname(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getsockname)), 3, uintptr(fd), rsa, addrlen, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callrecvfrom(fd int, _p0 uintptr, _lenp0 int, flags int, from uintptr, fromlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_recvfrom)), 6, uintptr(fd), _p0, uintptr(_lenp0), uintptr(flags), from, fromlen)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsendto(s int, _p0 uintptr, _lenp0 int, flags int, to uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_sendto)), 6, uintptr(s), _p0, uintptr(_lenp0), uintptr(flags), to, addrlen)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callnrecvmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_nrecvmsg)), 3, uintptr(s), msg, uintptr(flags), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callnsendmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_nsendmsg)), 3, uintptr(s), msg, uintptr(flags), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmunmap(addr uintptr, length uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_munmap)), 2, addr, length, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmadvise(_p0 uintptr, _lenp0 int, advice int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_madvise)), 3, _p0, uintptr(_lenp0), uintptr(advice), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmprotect(_p0 uintptr, _lenp0 int, prot int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mprotect)), 3, _p0, uintptr(_lenp0), uintptr(prot), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mlock)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmlockall(flags int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mlockall)), 1, uintptr(flags), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmsync(_p0 uintptr, _lenp0 int, flags int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_msync)), 3, _p0, uintptr(_lenp0), uintptr(flags), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmunlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_munlock)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmunlockall() (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_munlockall)), 0, 0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpipe(p uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_pipe)), 1, p, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpoll(fds uintptr, nfds int, timeout int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_poll)), 3, fds, uintptr(nfds), uintptr(timeout), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgettimeofday(tv uintptr, tzp uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_gettimeofday)), 2, tv, tzp, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calltime(t uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_time)), 1, t, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callutime(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_utime)), 2, _p0, buf, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetsystemcfg(label int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getsystemcfg)), 1, uintptr(label), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callumount(_p0 uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_umount)), 1, _p0, 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getrlimit)), 2, uintptr(resource), rlim, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calllseek(fd int, offset int64, whence int) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_lseek)), 3, uintptr(fd), uintptr(offset), uintptr(whence), 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmmap64(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (r1 uintptr, e1 Errno) {\n\tr1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mmap64)), 6, addr, length, uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go",
    "content": "// go run mksyscall_aix_ppc64.go -aix -tags aix,ppc64 syscall_aix.go syscall_aix_ppc64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build aix && ppc64 && gccgo\n\npackage unix\n\n/*\n#include <stdint.h>\nint utimes(uintptr_t, uintptr_t);\nint utimensat(int, uintptr_t, uintptr_t, int);\nint getcwd(uintptr_t, size_t);\nint accept(int, uintptr_t, uintptr_t);\nint getdirent(int, uintptr_t, size_t);\nint wait4(int, uintptr_t, int, uintptr_t);\nint ioctl(int, int, uintptr_t);\nint fcntl(uintptr_t, int, uintptr_t);\nint fsync_range(int, int, long long, long long);\nint acct(uintptr_t);\nint chdir(uintptr_t);\nint chroot(uintptr_t);\nint close(int);\nint dup(int);\nvoid exit(int);\nint faccessat(int, uintptr_t, unsigned int, int);\nint fchdir(int);\nint fchmod(int, unsigned int);\nint fchmodat(int, uintptr_t, unsigned int, int);\nint fchownat(int, uintptr_t, int, int, int);\nint fdatasync(int);\nint getpgid(int);\nint getpgrp();\nint getpid();\nint getppid();\nint getpriority(int, int);\nint getrusage(int, uintptr_t);\nint getsid(int);\nint kill(int, int);\nint syslog(int, uintptr_t, size_t);\nint mkdir(int, uintptr_t, unsigned int);\nint mkdirat(int, uintptr_t, unsigned int);\nint mkfifo(uintptr_t, unsigned int);\nint mknod(uintptr_t, unsigned int, int);\nint mknodat(int, uintptr_t, unsigned int, int);\nint nanosleep(uintptr_t, uintptr_t);\nint open64(uintptr_t, int, unsigned int);\nint openat(int, uintptr_t, int, unsigned int);\nint read(int, uintptr_t, size_t);\nint readlink(uintptr_t, uintptr_t, size_t);\nint renameat(int, uintptr_t, int, uintptr_t);\nint setdomainname(uintptr_t, size_t);\nint sethostname(uintptr_t, size_t);\nint setpgid(int, int);\nint setsid();\nint settimeofday(uintptr_t);\nint setuid(int);\nint setgid(int);\nint setpriority(int, int, int);\nint statx(int, uintptr_t, int, int, uintptr_t);\nint sync();\nuintptr_t times(uintptr_t);\nint umask(int);\nint uname(uintptr_t);\nint unlink(uintptr_t);\nint unlinkat(int, uintptr_t, int);\nint ustat(int, uintptr_t);\nint write(int, uintptr_t, size_t);\nint dup2(int, int);\nint posix_fadvise64(int, long long, long long, int);\nint fchown(int, int, int);\nint fstat(int, uintptr_t);\nint fstatat(int, uintptr_t, uintptr_t, int);\nint fstatfs(int, uintptr_t);\nint ftruncate(int, long long);\nint getegid();\nint geteuid();\nint getgid();\nint getuid();\nint lchown(uintptr_t, int, int);\nint listen(int, int);\nint lstat(uintptr_t, uintptr_t);\nint pause();\nint pread64(int, uintptr_t, size_t, long long);\nint pwrite64(int, uintptr_t, size_t, long long);\n#define c_select select\nint select(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t);\nint pselect(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t);\nint setregid(int, int);\nint setreuid(int, int);\nint shutdown(int, int);\nlong long splice(int, uintptr_t, int, uintptr_t, int, int);\nint stat(uintptr_t, uintptr_t);\nint statfs(uintptr_t, uintptr_t);\nint truncate(uintptr_t, long long);\nint bind(int, uintptr_t, uintptr_t);\nint connect(int, uintptr_t, uintptr_t);\nint getgroups(int, uintptr_t);\nint setgroups(int, uintptr_t);\nint getsockopt(int, int, int, uintptr_t, uintptr_t);\nint setsockopt(int, int, int, uintptr_t, uintptr_t);\nint socket(int, int, int);\nint socketpair(int, int, int, uintptr_t);\nint getpeername(int, uintptr_t, uintptr_t);\nint getsockname(int, uintptr_t, uintptr_t);\nint recvfrom(int, uintptr_t, size_t, int, uintptr_t, uintptr_t);\nint sendto(int, uintptr_t, size_t, int, uintptr_t, uintptr_t);\nint nrecvmsg(int, uintptr_t, int);\nint nsendmsg(int, uintptr_t, int);\nint munmap(uintptr_t, uintptr_t);\nint madvise(uintptr_t, size_t, int);\nint mprotect(uintptr_t, size_t, int);\nint mlock(uintptr_t, size_t);\nint mlockall(int);\nint msync(uintptr_t, size_t, int);\nint munlock(uintptr_t, size_t);\nint munlockall();\nint pipe(uintptr_t);\nint poll(uintptr_t, int, int);\nint gettimeofday(uintptr_t, uintptr_t);\nint time(uintptr_t);\nint utime(uintptr_t, uintptr_t);\nunsigned long long getsystemcfg(int);\nint umount(uintptr_t);\nint getrlimit(int, uintptr_t);\nlong long lseek(int, long long, int);\nuintptr_t mmap64(uintptr_t, uintptr_t, int, int, int, long long);\n\n*/\nimport \"C\"\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callutimes(_p0 uintptr, times uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.utimes(C.uintptr_t(_p0), C.uintptr_t(times)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callutimensat(dirfd int, _p0 uintptr, times uintptr, flag int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.utimensat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(times), C.int(flag)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetcwd(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getcwd(C.uintptr_t(_p0), C.size_t(_lenp0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callaccept(s int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.accept(C.int(s), C.uintptr_t(rsa), C.uintptr_t(addrlen)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetdirent(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getdirent(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callwait4(pid int, status uintptr, options int, rusage uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.wait4(C.int(pid), C.uintptr_t(status), C.int(options), C.uintptr_t(rusage)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callioctl(fd int, req int, arg uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.ioctl(C.int(fd), C.int(req), C.uintptr_t(arg)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callioctl_ptr(fd int, req int, arg unsafe.Pointer) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.ioctl(C.int(fd), C.int(req), C.uintptr_t(uintptr(arg))))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfcntl(fd uintptr, cmd int, arg uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(arg)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfsync_range(fd int, how int, start int64, length int64) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fsync_range(C.int(fd), C.int(how), C.longlong(start), C.longlong(length)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callacct(_p0 uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.acct(C.uintptr_t(_p0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callchdir(_p0 uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.chdir(C.uintptr_t(_p0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callchroot(_p0 uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.chroot(C.uintptr_t(_p0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callclose(fd int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.close(C.int(fd)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calldup(oldfd int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.dup(C.int(oldfd)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callexit(code int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.exit(C.int(code)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfaccessat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.faccessat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfchdir(fd int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fchdir(C.int(fd)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfchmod(fd int, mode uint32) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fchmod(C.int(fd), C.uint(mode)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfchmodat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fchmodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfchownat(dirfd int, _p0 uintptr, uid int, gid int, flags int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fchownat(C.int(dirfd), C.uintptr_t(_p0), C.int(uid), C.int(gid), C.int(flags)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfdatasync(fd int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fdatasync(C.int(fd)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetpgid(pid int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getpgid(C.int(pid)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetpgrp() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getpgrp())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetpid() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getpid())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetppid() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getppid())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetpriority(which int, who int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getpriority(C.int(which), C.int(who)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetrusage(who int, rusage uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getrusage(C.int(who), C.uintptr_t(rusage)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetsid(pid int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getsid(C.int(pid)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callkill(pid int, sig int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.kill(C.int(pid), C.int(sig)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsyslog(typ int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.syslog(C.int(typ), C.uintptr_t(_p0), C.size_t(_lenp0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmkdir(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.mkdir(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmkdirat(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.mkdirat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmkfifo(_p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.mkfifo(C.uintptr_t(_p0), C.uint(mode)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmknod(_p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.mknod(C.uintptr_t(_p0), C.uint(mode), C.int(dev)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmknodat(dirfd int, _p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.mknodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(dev)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callnanosleep(time uintptr, leftover uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.nanosleep(C.uintptr_t(time), C.uintptr_t(leftover)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callopen64(_p0 uintptr, mode int, perm uint32) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.open64(C.uintptr_t(_p0), C.int(mode), C.uint(perm)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callopenat(dirfd int, _p0 uintptr, flags int, mode uint32) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.openat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.uint(mode)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callread(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.read(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callreadlink(_p0 uintptr, _p1 uintptr, _lenp1 int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.readlink(C.uintptr_t(_p0), C.uintptr_t(_p1), C.size_t(_lenp1)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callrenameat(olddirfd int, _p0 uintptr, newdirfd int, _p1 uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.renameat(C.int(olddirfd), C.uintptr_t(_p0), C.int(newdirfd), C.uintptr_t(_p1)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetdomainname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.setdomainname(C.uintptr_t(_p0), C.size_t(_lenp0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsethostname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.sethostname(C.uintptr_t(_p0), C.size_t(_lenp0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetpgid(pid int, pgid int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.setpgid(C.int(pid), C.int(pgid)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetsid() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.setsid())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsettimeofday(tv uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.settimeofday(C.uintptr_t(tv)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetuid(uid int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.setuid(C.int(uid)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetgid(uid int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.setgid(C.int(uid)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetpriority(which int, who int, prio int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.setpriority(C.int(which), C.int(who), C.int(prio)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callstatx(dirfd int, _p0 uintptr, flags int, mask int, stat uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.statx(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.int(mask), C.uintptr_t(stat)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsync() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.sync())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calltimes(tms uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.times(C.uintptr_t(tms)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callumask(mask int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.umask(C.int(mask)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calluname(buf uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.uname(C.uintptr_t(buf)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callunlink(_p0 uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.unlink(C.uintptr_t(_p0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callunlinkat(dirfd int, _p0 uintptr, flags int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.unlinkat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callustat(dev int, ubuf uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.ustat(C.int(dev), C.uintptr_t(ubuf)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callwrite(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.write(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calldup2(oldfd int, newfd int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.dup2(C.int(oldfd), C.int(newfd)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callposix_fadvise64(fd int, offset int64, length int64, advice int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.posix_fadvise64(C.int(fd), C.longlong(offset), C.longlong(length), C.int(advice)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfchown(fd int, uid int, gid int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fchown(C.int(fd), C.int(uid), C.int(gid)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfstat(fd int, stat uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fstat(C.int(fd), C.uintptr_t(stat)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfstatat(dirfd int, _p0 uintptr, stat uintptr, flags int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fstatat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(stat), C.int(flags)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callfstatfs(fd int, buf uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.fstatfs(C.int(fd), C.uintptr_t(buf)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callftruncate(fd int, length int64) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.ftruncate(C.int(fd), C.longlong(length)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetegid() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getegid())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgeteuid() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.geteuid())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetgid() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getgid())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetuid() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getuid())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calllchown(_p0 uintptr, uid int, gid int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.lchown(C.uintptr_t(_p0), C.int(uid), C.int(gid)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calllisten(s int, n int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.listen(C.int(s), C.int(n)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calllstat(_p0 uintptr, stat uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.lstat(C.uintptr_t(_p0), C.uintptr_t(stat)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpause() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.pause())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpread64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.pread64(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0), C.longlong(offset)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpwrite64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.pwrite64(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0), C.longlong(offset)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.c_select(C.int(nfd), C.uintptr_t(r), C.uintptr_t(w), C.uintptr_t(e), C.uintptr_t(timeout)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr, sigmask uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.pselect(C.int(nfd), C.uintptr_t(r), C.uintptr_t(w), C.uintptr_t(e), C.uintptr_t(timeout), C.uintptr_t(sigmask)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetregid(rgid int, egid int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.setregid(C.int(rgid), C.int(egid)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetreuid(ruid int, euid int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.setreuid(C.int(ruid), C.int(euid)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callshutdown(fd int, how int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.shutdown(C.int(fd), C.int(how)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsplice(rfd int, roff uintptr, wfd int, woff uintptr, len int, flags int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.splice(C.int(rfd), C.uintptr_t(roff), C.int(wfd), C.uintptr_t(woff), C.int(len), C.int(flags)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callstat(_p0 uintptr, statptr uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.stat(C.uintptr_t(_p0), C.uintptr_t(statptr)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callstatfs(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.statfs(C.uintptr_t(_p0), C.uintptr_t(buf)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calltruncate(_p0 uintptr, length int64) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.truncate(C.uintptr_t(_p0), C.longlong(length)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callbind(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.bind(C.int(s), C.uintptr_t(addr), C.uintptr_t(addrlen)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callconnect(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.connect(C.int(s), C.uintptr_t(addr), C.uintptr_t(addrlen)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getgroups(C.int(n), C.uintptr_t(list)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.setgroups(C.int(n), C.uintptr_t(list)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(val), C.uintptr_t(vallen)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.setsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(val), C.uintptr_t(vallen)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsocket(domain int, typ int, proto int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.socket(C.int(domain), C.int(typ), C.int(proto)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsocketpair(domain int, typ int, proto int, fd uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.socketpair(C.int(domain), C.int(typ), C.int(proto), C.uintptr_t(fd)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetpeername(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getpeername(C.int(fd), C.uintptr_t(rsa), C.uintptr_t(addrlen)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetsockname(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getsockname(C.int(fd), C.uintptr_t(rsa), C.uintptr_t(addrlen)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callrecvfrom(fd int, _p0 uintptr, _lenp0 int, flags int, from uintptr, fromlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.recvfrom(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0), C.int(flags), C.uintptr_t(from), C.uintptr_t(fromlen)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callsendto(s int, _p0 uintptr, _lenp0 int, flags int, to uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.sendto(C.int(s), C.uintptr_t(_p0), C.size_t(_lenp0), C.int(flags), C.uintptr_t(to), C.uintptr_t(addrlen)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callnrecvmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.nrecvmsg(C.int(s), C.uintptr_t(msg), C.int(flags)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callnsendmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.nsendmsg(C.int(s), C.uintptr_t(msg), C.int(flags)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmunmap(addr uintptr, length uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.munmap(C.uintptr_t(addr), C.uintptr_t(length)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmadvise(_p0 uintptr, _lenp0 int, advice int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.madvise(C.uintptr_t(_p0), C.size_t(_lenp0), C.int(advice)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmprotect(_p0 uintptr, _lenp0 int, prot int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.mprotect(C.uintptr_t(_p0), C.size_t(_lenp0), C.int(prot)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.mlock(C.uintptr_t(_p0), C.size_t(_lenp0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmlockall(flags int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.mlockall(C.int(flags)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmsync(_p0 uintptr, _lenp0 int, flags int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.msync(C.uintptr_t(_p0), C.size_t(_lenp0), C.int(flags)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmunlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.munlock(C.uintptr_t(_p0), C.size_t(_lenp0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmunlockall() (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.munlockall())\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpipe(p uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.pipe(C.uintptr_t(p)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callpoll(fds uintptr, nfds int, timeout int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.poll(C.uintptr_t(fds), C.int(nfds), C.int(timeout)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgettimeofday(tv uintptr, tzp uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.gettimeofday(C.uintptr_t(tv), C.uintptr_t(tzp)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calltime(t uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.time(C.uintptr_t(t)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callutime(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.utime(C.uintptr_t(_p0), C.uintptr_t(buf)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetsystemcfg(label int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getsystemcfg(C.int(label)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callumount(_p0 uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.umount(C.uintptr_t(_p0)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callgetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.getrlimit(C.int(resource), C.uintptr_t(rlim)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc calllseek(fd int, offset int64, whence int) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.lseek(C.int(fd), C.longlong(offset), C.int(whence)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc callmmap64(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (r1 uintptr, e1 Errno) {\n\tr1 = uintptr(C.mmap64(C.uintptr_t(addr), C.uintptr_t(length), C.int(prot), C.int(flags), C.int(fd), C.longlong(offset)))\n\te1 = syscall.GetErrno()\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go",
    "content": "// go run mksyscall.go -tags darwin,amd64 syscall_bsd.go syscall_darwin.go syscall_darwin_amd64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build darwin && amd64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgroups getgroups \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgroups setgroups \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_wait4_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_wait4 wait4 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_accept_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_accept accept \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_bind_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_bind bind \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_connect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_connect connect \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socket_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socket socket \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockopt getsockopt \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsockopt setsockopt \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpeername_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpeername getpeername \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockname_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockname getsockname \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shutdown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shutdown shutdown \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socketpair_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socketpair socketpair \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvfrom_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvfrom recvfrom \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendto_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendto sendto \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvmsg recvmsg \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendmsg sendmsg \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kevent_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kevent kevent \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimes utimes \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_futimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_futimes futimes \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_poll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_poll poll \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_madvise_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_madvise madvise \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlock mlock \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlockall mlockall \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mprotect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mprotect mprotect \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_msync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_msync msync \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlock munlock \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlockall munlockall \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc closedir(dir uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_closedir_trampoline_addr, uintptr(dir), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_closedir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_closedir closedir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) {\n\tr0, _, _ := syscall_syscall(libc_readdir_r_trampoline_addr, uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result)))\n\tres = Errno(r0)\n\treturn\n}\n\nvar libc_readdir_r_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readdir_r readdir_r \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe(p *[2]int32) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_pipe_trampoline_addr, uintptr(unsafe.Pointer(p)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pipe_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pipe pipe \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_getxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getxattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getxattr getxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_fgetxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fgetxattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fgetxattr fgetxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_setxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setxattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setxattr setxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fsetxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fsetxattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fsetxattr fsetxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc removexattr(path string, attr string, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_removexattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_removexattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_removexattr removexattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fremovexattr(fd int, attr string, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_fremovexattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fremovexattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fremovexattr fremovexattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc listxattr(path string, dest *byte, size int, options int) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_listxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_listxattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_listxattr listxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_flistxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_flistxattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_flistxattr flistxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimensat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimensat utimensat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fcntl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fcntl fcntl \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kill(pid int, signum int, posix int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), uintptr(posix))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kill_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kill kill \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ioctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ioctl ioctl \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc renamexNp(from string, to string, flag uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_renamex_np_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flag))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_renamex_np_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_renamex_np renamex_np \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc renameatxNp(fromfd int, from string, tofd int, to string, flag uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_renameatx_np_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), uintptr(flag), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_renameatx_np_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_renameatx_np renameatx_np \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sysctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sysctl sysctl \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pthread_chdir_np(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_pthread_chdir_np_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pthread_chdir_np_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pthread_chdir_np pthread_chdir_np \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pthread_fchdir_np(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_pthread_fchdir_np_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pthread_fchdir_np_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pthread_fchdir_np pthread_fchdir_np \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connectx(fd int, endpoints *SaEndpoints, associd SaeAssocID, flags uint32, iov []Iovec, n *uintptr, connid *SaeConnID) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(iov) > 0 {\n\t\t_p0 = unsafe.Pointer(&iov[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall9(libc_connectx_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(endpoints)), uintptr(associd), uintptr(flags), uintptr(_p0), uintptr(len(iov)), uintptr(unsafe.Pointer(n)), uintptr(unsafe.Pointer(connid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_connectx_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_connectx connectx \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_sendfile_trampoline_addr, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendfile_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendfile sendfile \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmat(id int, addr uintptr, flag int) (ret uintptr, err error) {\n\tr0, _, e1 := syscall_syscall(libc_shmat_trampoline_addr, uintptr(id), uintptr(addr), uintptr(flag))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shmat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shmat shmat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_shmctl_trampoline_addr, uintptr(id), uintptr(cmd), uintptr(unsafe.Pointer(buf)))\n\tresult = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shmctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shmctl shmctl \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmdt(addr uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_shmdt_trampoline_addr, uintptr(addr), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shmdt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shmdt shmdt \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmget(key int, size int, flag int) (id int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_shmget_trampoline_addr, uintptr(key), uintptr(size), uintptr(flag))\n\tid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shmget_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shmget shmget \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_access_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_access access \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_adjtime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_adjtime adjtime \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chdir chdir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chflags chflags \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chmod chmod \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chown chown \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chroot_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chroot chroot \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_clock_gettime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_clock_gettime clock_gettime \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_close_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_close close \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Clonefile(src string, dst string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(src)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(dst)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_clonefile_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_clonefile_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_clonefile clonefile \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Clonefileat(srcDirfd int, src string, dstDirfd int, dst string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(src)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(dst)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_clonefileat_trampoline_addr, uintptr(srcDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_clonefileat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_clonefileat clonefileat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup dup \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup2 dup2 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exchangedata(path1 string, path2 string, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path1)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(path2)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_exchangedata_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_exchangedata_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_exchangedata exchangedata \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tsyscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0)\n\treturn\n}\n\nvar libc_exit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_exit exit \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_faccessat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_faccessat faccessat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchdir fchdir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchflags fchflags \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmod fchmod \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmodat fchmodat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchown fchown \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchownat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchownat fchownat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fclonefileat(srcDirfd int, dstDirfd int, dst string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(dst)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fclonefileat_trampoline_addr, uintptr(srcDirfd), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fclonefileat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fclonefileat fclonefileat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_flock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_flock flock \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fpathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fpathconf fpathconf \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fsync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fsync fsync \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ftruncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ftruncate ftruncate \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getcwd_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getcwd getcwd \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdtablesize() (size int) {\n\tr0, _, _ := syscall_syscall(libc_getdtablesize_trampoline_addr, 0, 0, 0)\n\tsize = int(r0)\n\treturn\n}\n\nvar libc_getdtablesize_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getdtablesize getdtablesize \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\nvar libc_getegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getegid getegid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_geteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_geteuid geteuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\nvar libc_getgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgid getgid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgid getpgid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\nvar libc_getpgrp_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgrp getpgrp \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\nvar libc_getpid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpid getpid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\nvar libc_getppid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getppid getppid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpriority getpriority \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrlimit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrlimit getrlimit \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrusage_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrusage getrusage \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsid getsid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_gettimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_gettimeofday gettimeofday \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_getuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getuid getuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := syscall_rawSyscall(libc_issetugid_trampoline_addr, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\nvar libc_issetugid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_issetugid issetugid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kqueue_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kqueue kqueue \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lchown lchown \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_link_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_link link \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_linkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_linkat linkat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_listen_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_listen listen \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdir mkdir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdirat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdirat mkdirat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifo_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifo mkfifo \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknod mknod \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(fsType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(dir)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mount mount \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_open_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_open open \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_openat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_openat openat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pathconf pathconf \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pread_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pread pread \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pwrite_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pwrite pwrite \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_read_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_read read \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlink readlink \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlinkat readlinkat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rename_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rename rename \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_renameat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_renameat renameat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_revoke_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_revoke revoke \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rmdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rmdir rmdir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence))\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lseek_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lseek lseek \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_select_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_select select \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setattrlist(path string, attrlist *Attrlist, attrBuf []byte, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(attrBuf) > 0 {\n\t\t_p1 = unsafe.Pointer(&attrBuf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_setattrlist_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(attrlist)), uintptr(_p1), uintptr(len(attrBuf)), uintptr(options), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setattrlist_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setattrlist setattrlist \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setegid setegid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_seteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_seteuid seteuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgid setgid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setlogin_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setlogin setlogin \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpgid setpgid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpriority setpriority \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setprivexec(flag int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_setprivexec_trampoline_addr, uintptr(flag), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setprivexec_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setprivexec setprivexec \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setregid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setregid setregid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setreuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setreuid setreuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsid setsid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_settimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_settimeofday settimeofday \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setuid setuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlink symlink \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlinkat symlinkat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sync sync \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_truncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_truncate truncate \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\nvar libc_umask_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_umask umask \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Undelete(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_undelete_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_undelete_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_undelete undelete \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlink unlink \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlinkat unlinkat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unmount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unmount unmount \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_write_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_write write \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mmap mmap \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munmap munmap \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstat64_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstat64_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstat64 fstat64 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fstatat64_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatat64_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatat64 fstatat64 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstatfs64_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatfs64_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatfs64 fstatfs64 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getfsstat64_trampoline_addr, uintptr(buf), uintptr(size), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getfsstat64_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getfsstat64 getfsstat64 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lstat64_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lstat64_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lstat64 lstat64 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_ptrace_trampoline_addr, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ptrace_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ptrace ptrace \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_stat64_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_stat64_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_stat64 stat64 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_statfs64_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_statfs64_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_statfs64 statfs64 \"/usr/lib/libSystem.B.dylib\"\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s",
    "content": "// go run mkasm.go darwin amd64\n// Code generated by the command above; DO NOT EDIT.\n\n#include \"textflag.h\"\n\nTEXT libc_fdopendir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fdopendir(SB)\nGLOBL\t·libc_fdopendir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fdopendir_trampoline_addr(SB)/8, $libc_fdopendir_trampoline<>(SB)\n\nTEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgroups(SB)\nGLOBL\t·libc_getgroups_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB)\n\nTEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgroups(SB)\nGLOBL\t·libc_setgroups_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB)\n\nTEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_wait4(SB)\nGLOBL\t·libc_wait4_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB)\n\nTEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_accept(SB)\nGLOBL\t·libc_accept_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB)\n\nTEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_bind(SB)\nGLOBL\t·libc_bind_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB)\n\nTEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_connect(SB)\nGLOBL\t·libc_connect_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB)\n\nTEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socket(SB)\nGLOBL\t·libc_socket_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB)\n\nTEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockopt(SB)\nGLOBL\t·libc_getsockopt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB)\n\nTEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsockopt(SB)\nGLOBL\t·libc_setsockopt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB)\n\nTEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpeername(SB)\nGLOBL\t·libc_getpeername_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB)\n\nTEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockname(SB)\nGLOBL\t·libc_getsockname_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB)\n\nTEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shutdown(SB)\nGLOBL\t·libc_shutdown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB)\n\nTEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socketpair(SB)\nGLOBL\t·libc_socketpair_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB)\n\nTEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvfrom(SB)\nGLOBL\t·libc_recvfrom_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB)\n\nTEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendto(SB)\nGLOBL\t·libc_sendto_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB)\n\nTEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvmsg(SB)\nGLOBL\t·libc_recvmsg_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB)\n\nTEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendmsg(SB)\nGLOBL\t·libc_sendmsg_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB)\n\nTEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kevent(SB)\nGLOBL\t·libc_kevent_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB)\n\nTEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimes(SB)\nGLOBL\t·libc_utimes_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB)\n\nTEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_futimes(SB)\nGLOBL\t·libc_futimes_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB)\n\nTEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_poll(SB)\nGLOBL\t·libc_poll_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB)\n\nTEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_madvise(SB)\nGLOBL\t·libc_madvise_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB)\n\nTEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlock(SB)\nGLOBL\t·libc_mlock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB)\n\nTEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlockall(SB)\nGLOBL\t·libc_mlockall_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB)\n\nTEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mprotect(SB)\nGLOBL\t·libc_mprotect_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB)\n\nTEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_msync(SB)\nGLOBL\t·libc_msync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB)\n\nTEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlock(SB)\nGLOBL\t·libc_munlock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB)\n\nTEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlockall(SB)\nGLOBL\t·libc_munlockall_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB)\n\nTEXT libc_closedir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_closedir(SB)\nGLOBL\t·libc_closedir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_closedir_trampoline_addr(SB)/8, $libc_closedir_trampoline<>(SB)\n\nTEXT libc_readdir_r_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readdir_r(SB)\nGLOBL\t·libc_readdir_r_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readdir_r_trampoline_addr(SB)/8, $libc_readdir_r_trampoline<>(SB)\n\nTEXT libc_pipe_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pipe(SB)\nGLOBL\t·libc_pipe_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pipe_trampoline_addr(SB)/8, $libc_pipe_trampoline<>(SB)\n\nTEXT libc_getxattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getxattr(SB)\nGLOBL\t·libc_getxattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getxattr_trampoline_addr(SB)/8, $libc_getxattr_trampoline<>(SB)\n\nTEXT libc_fgetxattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fgetxattr(SB)\nGLOBL\t·libc_fgetxattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fgetxattr_trampoline_addr(SB)/8, $libc_fgetxattr_trampoline<>(SB)\n\nTEXT libc_setxattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setxattr(SB)\nGLOBL\t·libc_setxattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setxattr_trampoline_addr(SB)/8, $libc_setxattr_trampoline<>(SB)\n\nTEXT libc_fsetxattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fsetxattr(SB)\nGLOBL\t·libc_fsetxattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fsetxattr_trampoline_addr(SB)/8, $libc_fsetxattr_trampoline<>(SB)\n\nTEXT libc_removexattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_removexattr(SB)\nGLOBL\t·libc_removexattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_removexattr_trampoline_addr(SB)/8, $libc_removexattr_trampoline<>(SB)\n\nTEXT libc_fremovexattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fremovexattr(SB)\nGLOBL\t·libc_fremovexattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fremovexattr_trampoline_addr(SB)/8, $libc_fremovexattr_trampoline<>(SB)\n\nTEXT libc_listxattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_listxattr(SB)\nGLOBL\t·libc_listxattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_listxattr_trampoline_addr(SB)/8, $libc_listxattr_trampoline<>(SB)\n\nTEXT libc_flistxattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_flistxattr(SB)\nGLOBL\t·libc_flistxattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_flistxattr_trampoline_addr(SB)/8, $libc_flistxattr_trampoline<>(SB)\n\nTEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimensat(SB)\nGLOBL\t·libc_utimensat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB)\n\nTEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fcntl(SB)\nGLOBL\t·libc_fcntl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB)\n\nTEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kill(SB)\nGLOBL\t·libc_kill_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB)\n\nTEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ioctl(SB)\nGLOBL\t·libc_ioctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB)\n\nTEXT libc_renamex_np_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_renamex_np(SB)\nGLOBL\t·libc_renamex_np_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_renamex_np_trampoline_addr(SB)/8, $libc_renamex_np_trampoline<>(SB)\n\nTEXT libc_renameatx_np_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_renameatx_np(SB)\nGLOBL\t·libc_renameatx_np_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_renameatx_np_trampoline_addr(SB)/8, $libc_renameatx_np_trampoline<>(SB)\n\nTEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sysctl(SB)\nGLOBL\t·libc_sysctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB)\n\nTEXT libc_pthread_chdir_np_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pthread_chdir_np(SB)\nGLOBL\t·libc_pthread_chdir_np_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pthread_chdir_np_trampoline_addr(SB)/8, $libc_pthread_chdir_np_trampoline<>(SB)\n\nTEXT libc_pthread_fchdir_np_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pthread_fchdir_np(SB)\nGLOBL\t·libc_pthread_fchdir_np_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pthread_fchdir_np_trampoline_addr(SB)/8, $libc_pthread_fchdir_np_trampoline<>(SB)\n\nTEXT libc_connectx_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_connectx(SB)\nGLOBL\t·libc_connectx_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_connectx_trampoline_addr(SB)/8, $libc_connectx_trampoline<>(SB)\n\nTEXT libc_sendfile_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendfile(SB)\nGLOBL\t·libc_sendfile_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendfile_trampoline_addr(SB)/8, $libc_sendfile_trampoline<>(SB)\n\nTEXT libc_shmat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shmat(SB)\nGLOBL\t·libc_shmat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shmat_trampoline_addr(SB)/8, $libc_shmat_trampoline<>(SB)\n\nTEXT libc_shmctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shmctl(SB)\nGLOBL\t·libc_shmctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shmctl_trampoline_addr(SB)/8, $libc_shmctl_trampoline<>(SB)\n\nTEXT libc_shmdt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shmdt(SB)\nGLOBL\t·libc_shmdt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shmdt_trampoline_addr(SB)/8, $libc_shmdt_trampoline<>(SB)\n\nTEXT libc_shmget_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shmget(SB)\nGLOBL\t·libc_shmget_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shmget_trampoline_addr(SB)/8, $libc_shmget_trampoline<>(SB)\n\nTEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_access(SB)\nGLOBL\t·libc_access_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB)\n\nTEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_adjtime(SB)\nGLOBL\t·libc_adjtime_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB)\n\nTEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chdir(SB)\nGLOBL\t·libc_chdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB)\n\nTEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chflags(SB)\nGLOBL\t·libc_chflags_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB)\n\nTEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chmod(SB)\nGLOBL\t·libc_chmod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB)\n\nTEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chown(SB)\nGLOBL\t·libc_chown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB)\n\nTEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chroot(SB)\nGLOBL\t·libc_chroot_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB)\n\nTEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_clock_gettime(SB)\nGLOBL\t·libc_clock_gettime_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB)\n\nTEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_close(SB)\nGLOBL\t·libc_close_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB)\n\nTEXT libc_clonefile_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_clonefile(SB)\nGLOBL\t·libc_clonefile_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_clonefile_trampoline_addr(SB)/8, $libc_clonefile_trampoline<>(SB)\n\nTEXT libc_clonefileat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_clonefileat(SB)\nGLOBL\t·libc_clonefileat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_clonefileat_trampoline_addr(SB)/8, $libc_clonefileat_trampoline<>(SB)\n\nTEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup(SB)\nGLOBL\t·libc_dup_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB)\n\nTEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup2(SB)\nGLOBL\t·libc_dup2_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB)\n\nTEXT libc_exchangedata_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_exchangedata(SB)\nGLOBL\t·libc_exchangedata_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_exchangedata_trampoline_addr(SB)/8, $libc_exchangedata_trampoline<>(SB)\n\nTEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_exit(SB)\nGLOBL\t·libc_exit_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB)\n\nTEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_faccessat(SB)\nGLOBL\t·libc_faccessat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB)\n\nTEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchdir(SB)\nGLOBL\t·libc_fchdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB)\n\nTEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchflags(SB)\nGLOBL\t·libc_fchflags_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB)\n\nTEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmod(SB)\nGLOBL\t·libc_fchmod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB)\n\nTEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmodat(SB)\nGLOBL\t·libc_fchmodat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB)\n\nTEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchown(SB)\nGLOBL\t·libc_fchown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB)\n\nTEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchownat(SB)\nGLOBL\t·libc_fchownat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB)\n\nTEXT libc_fclonefileat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fclonefileat(SB)\nGLOBL\t·libc_fclonefileat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fclonefileat_trampoline_addr(SB)/8, $libc_fclonefileat_trampoline<>(SB)\n\nTEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_flock(SB)\nGLOBL\t·libc_flock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB)\n\nTEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fpathconf(SB)\nGLOBL\t·libc_fpathconf_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB)\n\nTEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fsync(SB)\nGLOBL\t·libc_fsync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB)\n\nTEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ftruncate(SB)\nGLOBL\t·libc_ftruncate_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB)\n\nTEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getcwd(SB)\nGLOBL\t·libc_getcwd_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB)\n\nTEXT libc_getdtablesize_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getdtablesize(SB)\nGLOBL\t·libc_getdtablesize_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getdtablesize_trampoline_addr(SB)/8, $libc_getdtablesize_trampoline<>(SB)\n\nTEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getegid(SB)\nGLOBL\t·libc_getegid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB)\n\nTEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_geteuid(SB)\nGLOBL\t·libc_geteuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB)\n\nTEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgid(SB)\nGLOBL\t·libc_getgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB)\n\nTEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgid(SB)\nGLOBL\t·libc_getpgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB)\n\nTEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgrp(SB)\nGLOBL\t·libc_getpgrp_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB)\n\nTEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpid(SB)\nGLOBL\t·libc_getpid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB)\n\nTEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getppid(SB)\nGLOBL\t·libc_getppid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB)\n\nTEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpriority(SB)\nGLOBL\t·libc_getpriority_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB)\n\nTEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrlimit(SB)\nGLOBL\t·libc_getrlimit_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB)\n\nTEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrusage(SB)\nGLOBL\t·libc_getrusage_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB)\n\nTEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsid(SB)\nGLOBL\t·libc_getsid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB)\n\nTEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_gettimeofday(SB)\nGLOBL\t·libc_gettimeofday_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB)\n\nTEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getuid(SB)\nGLOBL\t·libc_getuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB)\n\nTEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_issetugid(SB)\nGLOBL\t·libc_issetugid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB)\n\nTEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kqueue(SB)\nGLOBL\t·libc_kqueue_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB)\n\nTEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lchown(SB)\nGLOBL\t·libc_lchown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB)\n\nTEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_link(SB)\nGLOBL\t·libc_link_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB)\n\nTEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_linkat(SB)\nGLOBL\t·libc_linkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB)\n\nTEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_listen(SB)\nGLOBL\t·libc_listen_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB)\n\nTEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdir(SB)\nGLOBL\t·libc_mkdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB)\n\nTEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdirat(SB)\nGLOBL\t·libc_mkdirat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB)\n\nTEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifo(SB)\nGLOBL\t·libc_mkfifo_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB)\n\nTEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknod(SB)\nGLOBL\t·libc_mknod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB)\n\nTEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mount(SB)\nGLOBL\t·libc_mount_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB)\n\nTEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_open(SB)\nGLOBL\t·libc_open_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB)\n\nTEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_openat(SB)\nGLOBL\t·libc_openat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB)\n\nTEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pathconf(SB)\nGLOBL\t·libc_pathconf_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB)\n\nTEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pread(SB)\nGLOBL\t·libc_pread_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB)\n\nTEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pwrite(SB)\nGLOBL\t·libc_pwrite_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB)\n\nTEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_read(SB)\nGLOBL\t·libc_read_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB)\n\nTEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlink(SB)\nGLOBL\t·libc_readlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB)\n\nTEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlinkat(SB)\nGLOBL\t·libc_readlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB)\n\nTEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rename(SB)\nGLOBL\t·libc_rename_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB)\n\nTEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_renameat(SB)\nGLOBL\t·libc_renameat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB)\n\nTEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_revoke(SB)\nGLOBL\t·libc_revoke_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB)\n\nTEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rmdir(SB)\nGLOBL\t·libc_rmdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB)\n\nTEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lseek(SB)\nGLOBL\t·libc_lseek_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB)\n\nTEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_select(SB)\nGLOBL\t·libc_select_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB)\n\nTEXT libc_setattrlist_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setattrlist(SB)\nGLOBL\t·libc_setattrlist_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setattrlist_trampoline_addr(SB)/8, $libc_setattrlist_trampoline<>(SB)\n\nTEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setegid(SB)\nGLOBL\t·libc_setegid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB)\n\nTEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_seteuid(SB)\nGLOBL\t·libc_seteuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB)\n\nTEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgid(SB)\nGLOBL\t·libc_setgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB)\n\nTEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setlogin(SB)\nGLOBL\t·libc_setlogin_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB)\n\nTEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpgid(SB)\nGLOBL\t·libc_setpgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB)\n\nTEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpriority(SB)\nGLOBL\t·libc_setpriority_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB)\n\nTEXT libc_setprivexec_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setprivexec(SB)\nGLOBL\t·libc_setprivexec_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setprivexec_trampoline_addr(SB)/8, $libc_setprivexec_trampoline<>(SB)\n\nTEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setregid(SB)\nGLOBL\t·libc_setregid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB)\n\nTEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setreuid(SB)\nGLOBL\t·libc_setreuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB)\n\nTEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsid(SB)\nGLOBL\t·libc_setsid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB)\n\nTEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_settimeofday(SB)\nGLOBL\t·libc_settimeofday_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB)\n\nTEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setuid(SB)\nGLOBL\t·libc_setuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB)\n\nTEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlink(SB)\nGLOBL\t·libc_symlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB)\n\nTEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlinkat(SB)\nGLOBL\t·libc_symlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB)\n\nTEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sync(SB)\nGLOBL\t·libc_sync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB)\n\nTEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_truncate(SB)\nGLOBL\t·libc_truncate_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB)\n\nTEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_umask(SB)\nGLOBL\t·libc_umask_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB)\n\nTEXT libc_undelete_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_undelete(SB)\nGLOBL\t·libc_undelete_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_undelete_trampoline_addr(SB)/8, $libc_undelete_trampoline<>(SB)\n\nTEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlink(SB)\nGLOBL\t·libc_unlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB)\n\nTEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlinkat(SB)\nGLOBL\t·libc_unlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB)\n\nTEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unmount(SB)\nGLOBL\t·libc_unmount_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB)\n\nTEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_write(SB)\nGLOBL\t·libc_write_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB)\n\nTEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mmap(SB)\nGLOBL\t·libc_mmap_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB)\n\nTEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munmap(SB)\nGLOBL\t·libc_munmap_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB)\n\nTEXT libc_fstat64_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstat64(SB)\nGLOBL\t·libc_fstat64_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstat64_trampoline_addr(SB)/8, $libc_fstat64_trampoline<>(SB)\n\nTEXT libc_fstatat64_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatat64(SB)\nGLOBL\t·libc_fstatat64_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstatat64_trampoline_addr(SB)/8, $libc_fstatat64_trampoline<>(SB)\n\nTEXT libc_fstatfs64_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatfs64(SB)\nGLOBL\t·libc_fstatfs64_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstatfs64_trampoline_addr(SB)/8, $libc_fstatfs64_trampoline<>(SB)\n\nTEXT libc_getfsstat64_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getfsstat64(SB)\nGLOBL\t·libc_getfsstat64_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getfsstat64_trampoline_addr(SB)/8, $libc_getfsstat64_trampoline<>(SB)\n\nTEXT libc_lstat64_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lstat64(SB)\nGLOBL\t·libc_lstat64_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lstat64_trampoline_addr(SB)/8, $libc_lstat64_trampoline<>(SB)\n\nTEXT libc_ptrace_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ptrace(SB)\nGLOBL\t·libc_ptrace_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ptrace_trampoline_addr(SB)/8, $libc_ptrace_trampoline<>(SB)\n\nTEXT libc_stat64_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_stat64(SB)\nGLOBL\t·libc_stat64_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_stat64_trampoline_addr(SB)/8, $libc_stat64_trampoline<>(SB)\n\nTEXT libc_statfs64_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_statfs64(SB)\nGLOBL\t·libc_statfs64_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_statfs64_trampoline_addr(SB)/8, $libc_statfs64_trampoline<>(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go",
    "content": "// go run mksyscall.go -tags darwin,arm64 syscall_bsd.go syscall_darwin.go syscall_darwin_arm64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build darwin && arm64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgroups getgroups \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgroups setgroups \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_wait4_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_wait4 wait4 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_accept_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_accept accept \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_bind_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_bind bind \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_connect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_connect connect \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socket_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socket socket \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockopt getsockopt \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsockopt setsockopt \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpeername_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpeername getpeername \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockname_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockname getsockname \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shutdown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shutdown shutdown \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socketpair_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socketpair socketpair \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvfrom_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvfrom recvfrom \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendto_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendto sendto \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvmsg recvmsg \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendmsg sendmsg \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kevent_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kevent kevent \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimes utimes \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_futimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_futimes futimes \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_poll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_poll poll \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_madvise_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_madvise madvise \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlock mlock \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlockall mlockall \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mprotect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mprotect mprotect \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_msync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_msync msync \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlock munlock \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlockall munlockall \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc closedir(dir uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_closedir_trampoline_addr, uintptr(dir), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_closedir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_closedir closedir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) {\n\tr0, _, _ := syscall_syscall(libc_readdir_r_trampoline_addr, uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result)))\n\tres = Errno(r0)\n\treturn\n}\n\nvar libc_readdir_r_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readdir_r readdir_r \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe(p *[2]int32) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_pipe_trampoline_addr, uintptr(unsafe.Pointer(p)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pipe_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pipe pipe \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_getxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getxattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getxattr getxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_fgetxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fgetxattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fgetxattr fgetxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_setxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setxattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setxattr setxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fsetxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fsetxattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fsetxattr fsetxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc removexattr(path string, attr string, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_removexattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_removexattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_removexattr removexattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fremovexattr(fd int, attr string, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_fremovexattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fremovexattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fremovexattr fremovexattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc listxattr(path string, dest *byte, size int, options int) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_listxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_listxattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_listxattr listxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_flistxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_flistxattr_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_flistxattr flistxattr \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimensat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimensat utimensat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fcntl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fcntl fcntl \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kill(pid int, signum int, posix int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), uintptr(posix))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kill_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kill kill \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ioctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ioctl ioctl \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc renamexNp(from string, to string, flag uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_renamex_np_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flag))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_renamex_np_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_renamex_np renamex_np \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc renameatxNp(fromfd int, from string, tofd int, to string, flag uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_renameatx_np_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), uintptr(flag), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_renameatx_np_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_renameatx_np renameatx_np \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sysctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sysctl sysctl \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pthread_chdir_np(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_pthread_chdir_np_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pthread_chdir_np_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pthread_chdir_np pthread_chdir_np \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pthread_fchdir_np(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_pthread_fchdir_np_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pthread_fchdir_np_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pthread_fchdir_np pthread_fchdir_np \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connectx(fd int, endpoints *SaEndpoints, associd SaeAssocID, flags uint32, iov []Iovec, n *uintptr, connid *SaeConnID) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(iov) > 0 {\n\t\t_p0 = unsafe.Pointer(&iov[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall9(libc_connectx_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(endpoints)), uintptr(associd), uintptr(flags), uintptr(_p0), uintptr(len(iov)), uintptr(unsafe.Pointer(n)), uintptr(unsafe.Pointer(connid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_connectx_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_connectx connectx \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_sendfile_trampoline_addr, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendfile_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendfile sendfile \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmat(id int, addr uintptr, flag int) (ret uintptr, err error) {\n\tr0, _, e1 := syscall_syscall(libc_shmat_trampoline_addr, uintptr(id), uintptr(addr), uintptr(flag))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shmat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shmat shmat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_shmctl_trampoline_addr, uintptr(id), uintptr(cmd), uintptr(unsafe.Pointer(buf)))\n\tresult = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shmctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shmctl shmctl \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmdt(addr uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_shmdt_trampoline_addr, uintptr(addr), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shmdt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shmdt shmdt \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmget(key int, size int, flag int) (id int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_shmget_trampoline_addr, uintptr(key), uintptr(size), uintptr(flag))\n\tid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shmget_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shmget shmget \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_access_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_access access \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_adjtime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_adjtime adjtime \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chdir chdir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chflags chflags \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chmod chmod \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chown chown \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chroot_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chroot chroot \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_clock_gettime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_clock_gettime clock_gettime \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_close_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_close close \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Clonefile(src string, dst string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(src)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(dst)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_clonefile_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_clonefile_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_clonefile clonefile \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Clonefileat(srcDirfd int, src string, dstDirfd int, dst string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(src)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(dst)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_clonefileat_trampoline_addr, uintptr(srcDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_clonefileat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_clonefileat clonefileat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup dup \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup2 dup2 \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exchangedata(path1 string, path2 string, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path1)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(path2)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_exchangedata_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_exchangedata_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_exchangedata exchangedata \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tsyscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0)\n\treturn\n}\n\nvar libc_exit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_exit exit \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_faccessat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_faccessat faccessat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchdir fchdir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchflags fchflags \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmod fchmod \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmodat fchmodat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchown fchown \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchownat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchownat fchownat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fclonefileat(srcDirfd int, dstDirfd int, dst string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(dst)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fclonefileat_trampoline_addr, uintptr(srcDirfd), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fclonefileat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fclonefileat fclonefileat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_flock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_flock flock \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fpathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fpathconf fpathconf \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fsync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fsync fsync \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ftruncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ftruncate ftruncate \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getcwd_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getcwd getcwd \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdtablesize() (size int) {\n\tr0, _, _ := syscall_syscall(libc_getdtablesize_trampoline_addr, 0, 0, 0)\n\tsize = int(r0)\n\treturn\n}\n\nvar libc_getdtablesize_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getdtablesize getdtablesize \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\nvar libc_getegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getegid getegid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_geteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_geteuid geteuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\nvar libc_getgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgid getgid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgid getpgid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\nvar libc_getpgrp_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgrp getpgrp \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\nvar libc_getpid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpid getpid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\nvar libc_getppid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getppid getppid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpriority getpriority \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrlimit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrlimit getrlimit \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrusage_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrusage getrusage \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsid getsid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_gettimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_gettimeofday gettimeofday \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_getuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getuid getuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := syscall_rawSyscall(libc_issetugid_trampoline_addr, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\nvar libc_issetugid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_issetugid issetugid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kqueue_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kqueue kqueue \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lchown lchown \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_link_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_link link \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_linkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_linkat linkat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_listen_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_listen listen \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdir mkdir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdirat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdirat mkdirat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifo_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifo mkfifo \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknod mknod \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(fsType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(dir)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mount mount \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_open_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_open open \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_openat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_openat openat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pathconf pathconf \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pread_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pread pread \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pwrite_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pwrite pwrite \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_read_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_read read \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlink readlink \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlinkat readlinkat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rename_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rename rename \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_renameat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_renameat renameat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_revoke_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_revoke revoke \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rmdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rmdir rmdir \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence))\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lseek_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lseek lseek \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_select_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_select select \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setattrlist(path string, attrlist *Attrlist, attrBuf []byte, options int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(attrBuf) > 0 {\n\t\t_p1 = unsafe.Pointer(&attrBuf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_setattrlist_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(attrlist)), uintptr(_p1), uintptr(len(attrBuf)), uintptr(options), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setattrlist_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setattrlist setattrlist \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setegid setegid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_seteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_seteuid seteuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgid setgid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setlogin_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setlogin setlogin \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpgid setpgid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpriority setpriority \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setprivexec(flag int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_setprivexec_trampoline_addr, uintptr(flag), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setprivexec_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setprivexec setprivexec \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setregid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setregid setregid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setreuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setreuid setreuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsid setsid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_settimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_settimeofday settimeofday \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setuid setuid \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlink symlink \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlinkat symlinkat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sync sync \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_truncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_truncate truncate \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\nvar libc_umask_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_umask umask \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Undelete(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_undelete_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_undelete_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_undelete undelete \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlink unlink \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlinkat unlinkat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unmount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unmount unmount \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_write_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_write write \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mmap mmap \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munmap munmap \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstat fstat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatat fstatat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatfs fstatfs \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(buf), uintptr(size), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getfsstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getfsstat getfsstat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lstat lstat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_ptrace_trampoline_addr, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ptrace_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ptrace ptrace \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_stat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_stat stat \"/usr/lib/libSystem.B.dylib\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_statfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_statfs statfs \"/usr/lib/libSystem.B.dylib\"\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s",
    "content": "// go run mkasm.go darwin arm64\n// Code generated by the command above; DO NOT EDIT.\n\n#include \"textflag.h\"\n\nTEXT libc_fdopendir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fdopendir(SB)\nGLOBL\t·libc_fdopendir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fdopendir_trampoline_addr(SB)/8, $libc_fdopendir_trampoline<>(SB)\n\nTEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgroups(SB)\nGLOBL\t·libc_getgroups_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB)\n\nTEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgroups(SB)\nGLOBL\t·libc_setgroups_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB)\n\nTEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_wait4(SB)\nGLOBL\t·libc_wait4_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB)\n\nTEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_accept(SB)\nGLOBL\t·libc_accept_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB)\n\nTEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_bind(SB)\nGLOBL\t·libc_bind_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB)\n\nTEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_connect(SB)\nGLOBL\t·libc_connect_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB)\n\nTEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socket(SB)\nGLOBL\t·libc_socket_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB)\n\nTEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockopt(SB)\nGLOBL\t·libc_getsockopt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB)\n\nTEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsockopt(SB)\nGLOBL\t·libc_setsockopt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB)\n\nTEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpeername(SB)\nGLOBL\t·libc_getpeername_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB)\n\nTEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockname(SB)\nGLOBL\t·libc_getsockname_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB)\n\nTEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shutdown(SB)\nGLOBL\t·libc_shutdown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB)\n\nTEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socketpair(SB)\nGLOBL\t·libc_socketpair_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB)\n\nTEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvfrom(SB)\nGLOBL\t·libc_recvfrom_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB)\n\nTEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendto(SB)\nGLOBL\t·libc_sendto_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB)\n\nTEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvmsg(SB)\nGLOBL\t·libc_recvmsg_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB)\n\nTEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendmsg(SB)\nGLOBL\t·libc_sendmsg_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB)\n\nTEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kevent(SB)\nGLOBL\t·libc_kevent_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB)\n\nTEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimes(SB)\nGLOBL\t·libc_utimes_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB)\n\nTEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_futimes(SB)\nGLOBL\t·libc_futimes_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB)\n\nTEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_poll(SB)\nGLOBL\t·libc_poll_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB)\n\nTEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_madvise(SB)\nGLOBL\t·libc_madvise_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB)\n\nTEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlock(SB)\nGLOBL\t·libc_mlock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB)\n\nTEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlockall(SB)\nGLOBL\t·libc_mlockall_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB)\n\nTEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mprotect(SB)\nGLOBL\t·libc_mprotect_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB)\n\nTEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_msync(SB)\nGLOBL\t·libc_msync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB)\n\nTEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlock(SB)\nGLOBL\t·libc_munlock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB)\n\nTEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlockall(SB)\nGLOBL\t·libc_munlockall_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB)\n\nTEXT libc_closedir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_closedir(SB)\nGLOBL\t·libc_closedir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_closedir_trampoline_addr(SB)/8, $libc_closedir_trampoline<>(SB)\n\nTEXT libc_readdir_r_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readdir_r(SB)\nGLOBL\t·libc_readdir_r_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readdir_r_trampoline_addr(SB)/8, $libc_readdir_r_trampoline<>(SB)\n\nTEXT libc_pipe_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pipe(SB)\nGLOBL\t·libc_pipe_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pipe_trampoline_addr(SB)/8, $libc_pipe_trampoline<>(SB)\n\nTEXT libc_getxattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getxattr(SB)\nGLOBL\t·libc_getxattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getxattr_trampoline_addr(SB)/8, $libc_getxattr_trampoline<>(SB)\n\nTEXT libc_fgetxattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fgetxattr(SB)\nGLOBL\t·libc_fgetxattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fgetxattr_trampoline_addr(SB)/8, $libc_fgetxattr_trampoline<>(SB)\n\nTEXT libc_setxattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setxattr(SB)\nGLOBL\t·libc_setxattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setxattr_trampoline_addr(SB)/8, $libc_setxattr_trampoline<>(SB)\n\nTEXT libc_fsetxattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fsetxattr(SB)\nGLOBL\t·libc_fsetxattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fsetxattr_trampoline_addr(SB)/8, $libc_fsetxattr_trampoline<>(SB)\n\nTEXT libc_removexattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_removexattr(SB)\nGLOBL\t·libc_removexattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_removexattr_trampoline_addr(SB)/8, $libc_removexattr_trampoline<>(SB)\n\nTEXT libc_fremovexattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fremovexattr(SB)\nGLOBL\t·libc_fremovexattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fremovexattr_trampoline_addr(SB)/8, $libc_fremovexattr_trampoline<>(SB)\n\nTEXT libc_listxattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_listxattr(SB)\nGLOBL\t·libc_listxattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_listxattr_trampoline_addr(SB)/8, $libc_listxattr_trampoline<>(SB)\n\nTEXT libc_flistxattr_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_flistxattr(SB)\nGLOBL\t·libc_flistxattr_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_flistxattr_trampoline_addr(SB)/8, $libc_flistxattr_trampoline<>(SB)\n\nTEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimensat(SB)\nGLOBL\t·libc_utimensat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB)\n\nTEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fcntl(SB)\nGLOBL\t·libc_fcntl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB)\n\nTEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kill(SB)\nGLOBL\t·libc_kill_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB)\n\nTEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ioctl(SB)\nGLOBL\t·libc_ioctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB)\n\nTEXT libc_renamex_np_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_renamex_np(SB)\nGLOBL\t·libc_renamex_np_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_renamex_np_trampoline_addr(SB)/8, $libc_renamex_np_trampoline<>(SB)\n\nTEXT libc_renameatx_np_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_renameatx_np(SB)\nGLOBL\t·libc_renameatx_np_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_renameatx_np_trampoline_addr(SB)/8, $libc_renameatx_np_trampoline<>(SB)\n\nTEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sysctl(SB)\nGLOBL\t·libc_sysctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB)\n\nTEXT libc_pthread_chdir_np_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pthread_chdir_np(SB)\nGLOBL\t·libc_pthread_chdir_np_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pthread_chdir_np_trampoline_addr(SB)/8, $libc_pthread_chdir_np_trampoline<>(SB)\n\nTEXT libc_pthread_fchdir_np_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pthread_fchdir_np(SB)\nGLOBL\t·libc_pthread_fchdir_np_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pthread_fchdir_np_trampoline_addr(SB)/8, $libc_pthread_fchdir_np_trampoline<>(SB)\n\nTEXT libc_connectx_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_connectx(SB)\nGLOBL\t·libc_connectx_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_connectx_trampoline_addr(SB)/8, $libc_connectx_trampoline<>(SB)\n\nTEXT libc_sendfile_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendfile(SB)\nGLOBL\t·libc_sendfile_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendfile_trampoline_addr(SB)/8, $libc_sendfile_trampoline<>(SB)\n\nTEXT libc_shmat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shmat(SB)\nGLOBL\t·libc_shmat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shmat_trampoline_addr(SB)/8, $libc_shmat_trampoline<>(SB)\n\nTEXT libc_shmctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shmctl(SB)\nGLOBL\t·libc_shmctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shmctl_trampoline_addr(SB)/8, $libc_shmctl_trampoline<>(SB)\n\nTEXT libc_shmdt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shmdt(SB)\nGLOBL\t·libc_shmdt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shmdt_trampoline_addr(SB)/8, $libc_shmdt_trampoline<>(SB)\n\nTEXT libc_shmget_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shmget(SB)\nGLOBL\t·libc_shmget_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shmget_trampoline_addr(SB)/8, $libc_shmget_trampoline<>(SB)\n\nTEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_access(SB)\nGLOBL\t·libc_access_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB)\n\nTEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_adjtime(SB)\nGLOBL\t·libc_adjtime_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB)\n\nTEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chdir(SB)\nGLOBL\t·libc_chdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB)\n\nTEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chflags(SB)\nGLOBL\t·libc_chflags_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB)\n\nTEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chmod(SB)\nGLOBL\t·libc_chmod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB)\n\nTEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chown(SB)\nGLOBL\t·libc_chown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB)\n\nTEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chroot(SB)\nGLOBL\t·libc_chroot_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB)\n\nTEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_clock_gettime(SB)\nGLOBL\t·libc_clock_gettime_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB)\n\nTEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_close(SB)\nGLOBL\t·libc_close_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB)\n\nTEXT libc_clonefile_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_clonefile(SB)\nGLOBL\t·libc_clonefile_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_clonefile_trampoline_addr(SB)/8, $libc_clonefile_trampoline<>(SB)\n\nTEXT libc_clonefileat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_clonefileat(SB)\nGLOBL\t·libc_clonefileat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_clonefileat_trampoline_addr(SB)/8, $libc_clonefileat_trampoline<>(SB)\n\nTEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup(SB)\nGLOBL\t·libc_dup_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB)\n\nTEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup2(SB)\nGLOBL\t·libc_dup2_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB)\n\nTEXT libc_exchangedata_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_exchangedata(SB)\nGLOBL\t·libc_exchangedata_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_exchangedata_trampoline_addr(SB)/8, $libc_exchangedata_trampoline<>(SB)\n\nTEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_exit(SB)\nGLOBL\t·libc_exit_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB)\n\nTEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_faccessat(SB)\nGLOBL\t·libc_faccessat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB)\n\nTEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchdir(SB)\nGLOBL\t·libc_fchdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB)\n\nTEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchflags(SB)\nGLOBL\t·libc_fchflags_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB)\n\nTEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmod(SB)\nGLOBL\t·libc_fchmod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB)\n\nTEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmodat(SB)\nGLOBL\t·libc_fchmodat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB)\n\nTEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchown(SB)\nGLOBL\t·libc_fchown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB)\n\nTEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchownat(SB)\nGLOBL\t·libc_fchownat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB)\n\nTEXT libc_fclonefileat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fclonefileat(SB)\nGLOBL\t·libc_fclonefileat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fclonefileat_trampoline_addr(SB)/8, $libc_fclonefileat_trampoline<>(SB)\n\nTEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_flock(SB)\nGLOBL\t·libc_flock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB)\n\nTEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fpathconf(SB)\nGLOBL\t·libc_fpathconf_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB)\n\nTEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fsync(SB)\nGLOBL\t·libc_fsync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB)\n\nTEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ftruncate(SB)\nGLOBL\t·libc_ftruncate_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB)\n\nTEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getcwd(SB)\nGLOBL\t·libc_getcwd_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB)\n\nTEXT libc_getdtablesize_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getdtablesize(SB)\nGLOBL\t·libc_getdtablesize_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getdtablesize_trampoline_addr(SB)/8, $libc_getdtablesize_trampoline<>(SB)\n\nTEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getegid(SB)\nGLOBL\t·libc_getegid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB)\n\nTEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_geteuid(SB)\nGLOBL\t·libc_geteuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB)\n\nTEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgid(SB)\nGLOBL\t·libc_getgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB)\n\nTEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgid(SB)\nGLOBL\t·libc_getpgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB)\n\nTEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgrp(SB)\nGLOBL\t·libc_getpgrp_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB)\n\nTEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpid(SB)\nGLOBL\t·libc_getpid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB)\n\nTEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getppid(SB)\nGLOBL\t·libc_getppid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB)\n\nTEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpriority(SB)\nGLOBL\t·libc_getpriority_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB)\n\nTEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrlimit(SB)\nGLOBL\t·libc_getrlimit_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB)\n\nTEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrusage(SB)\nGLOBL\t·libc_getrusage_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB)\n\nTEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsid(SB)\nGLOBL\t·libc_getsid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB)\n\nTEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_gettimeofday(SB)\nGLOBL\t·libc_gettimeofday_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB)\n\nTEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getuid(SB)\nGLOBL\t·libc_getuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB)\n\nTEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_issetugid(SB)\nGLOBL\t·libc_issetugid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB)\n\nTEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kqueue(SB)\nGLOBL\t·libc_kqueue_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB)\n\nTEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lchown(SB)\nGLOBL\t·libc_lchown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB)\n\nTEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_link(SB)\nGLOBL\t·libc_link_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB)\n\nTEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_linkat(SB)\nGLOBL\t·libc_linkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB)\n\nTEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_listen(SB)\nGLOBL\t·libc_listen_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB)\n\nTEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdir(SB)\nGLOBL\t·libc_mkdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB)\n\nTEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdirat(SB)\nGLOBL\t·libc_mkdirat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB)\n\nTEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifo(SB)\nGLOBL\t·libc_mkfifo_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB)\n\nTEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknod(SB)\nGLOBL\t·libc_mknod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB)\n\nTEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mount(SB)\nGLOBL\t·libc_mount_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB)\n\nTEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_open(SB)\nGLOBL\t·libc_open_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB)\n\nTEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_openat(SB)\nGLOBL\t·libc_openat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB)\n\nTEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pathconf(SB)\nGLOBL\t·libc_pathconf_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB)\n\nTEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pread(SB)\nGLOBL\t·libc_pread_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB)\n\nTEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pwrite(SB)\nGLOBL\t·libc_pwrite_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB)\n\nTEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_read(SB)\nGLOBL\t·libc_read_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB)\n\nTEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlink(SB)\nGLOBL\t·libc_readlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB)\n\nTEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlinkat(SB)\nGLOBL\t·libc_readlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB)\n\nTEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rename(SB)\nGLOBL\t·libc_rename_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB)\n\nTEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_renameat(SB)\nGLOBL\t·libc_renameat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB)\n\nTEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_revoke(SB)\nGLOBL\t·libc_revoke_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB)\n\nTEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rmdir(SB)\nGLOBL\t·libc_rmdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB)\n\nTEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lseek(SB)\nGLOBL\t·libc_lseek_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB)\n\nTEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_select(SB)\nGLOBL\t·libc_select_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB)\n\nTEXT libc_setattrlist_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setattrlist(SB)\nGLOBL\t·libc_setattrlist_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setattrlist_trampoline_addr(SB)/8, $libc_setattrlist_trampoline<>(SB)\n\nTEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setegid(SB)\nGLOBL\t·libc_setegid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB)\n\nTEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_seteuid(SB)\nGLOBL\t·libc_seteuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB)\n\nTEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgid(SB)\nGLOBL\t·libc_setgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB)\n\nTEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setlogin(SB)\nGLOBL\t·libc_setlogin_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB)\n\nTEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpgid(SB)\nGLOBL\t·libc_setpgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB)\n\nTEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpriority(SB)\nGLOBL\t·libc_setpriority_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB)\n\nTEXT libc_setprivexec_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setprivexec(SB)\nGLOBL\t·libc_setprivexec_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setprivexec_trampoline_addr(SB)/8, $libc_setprivexec_trampoline<>(SB)\n\nTEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setregid(SB)\nGLOBL\t·libc_setregid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB)\n\nTEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setreuid(SB)\nGLOBL\t·libc_setreuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB)\n\nTEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsid(SB)\nGLOBL\t·libc_setsid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB)\n\nTEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_settimeofday(SB)\nGLOBL\t·libc_settimeofday_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB)\n\nTEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setuid(SB)\nGLOBL\t·libc_setuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB)\n\nTEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlink(SB)\nGLOBL\t·libc_symlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB)\n\nTEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlinkat(SB)\nGLOBL\t·libc_symlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB)\n\nTEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sync(SB)\nGLOBL\t·libc_sync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB)\n\nTEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_truncate(SB)\nGLOBL\t·libc_truncate_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB)\n\nTEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_umask(SB)\nGLOBL\t·libc_umask_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB)\n\nTEXT libc_undelete_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_undelete(SB)\nGLOBL\t·libc_undelete_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_undelete_trampoline_addr(SB)/8, $libc_undelete_trampoline<>(SB)\n\nTEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlink(SB)\nGLOBL\t·libc_unlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB)\n\nTEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlinkat(SB)\nGLOBL\t·libc_unlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB)\n\nTEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unmount(SB)\nGLOBL\t·libc_unmount_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB)\n\nTEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_write(SB)\nGLOBL\t·libc_write_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB)\n\nTEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mmap(SB)\nGLOBL\t·libc_mmap_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB)\n\nTEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munmap(SB)\nGLOBL\t·libc_munmap_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB)\n\nTEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstat(SB)\nGLOBL\t·libc_fstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB)\n\nTEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatat(SB)\nGLOBL\t·libc_fstatat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB)\n\nTEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatfs(SB)\nGLOBL\t·libc_fstatfs_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB)\n\nTEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getfsstat(SB)\nGLOBL\t·libc_getfsstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB)\n\nTEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lstat(SB)\nGLOBL\t·libc_lstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB)\n\nTEXT libc_ptrace_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ptrace(SB)\nGLOBL\t·libc_ptrace_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ptrace_trampoline_addr(SB)/8, $libc_ptrace_trampoline<>(SB)\n\nTEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_stat(SB)\nGLOBL\t·libc_stat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB)\n\nTEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_statfs(SB)\nGLOBL\t·libc_statfs_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go",
    "content": "// go run mksyscall.go -dragonfly -tags dragonfly,amd64 syscall_bsd.go syscall_dragonfly.go syscall_dragonfly_amd64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build dragonfly && amd64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe() (r int, w int, err error) {\n\tr0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)\n\tr = int(r0)\n\tw = int(r1)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (r int, w int, err error) {\n\tr0, r1, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tr = int(r0)\n\tw = int(r1)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc extpread(fd int, p []byte, flags int, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTPREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(offset), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc extpwrite(fd int, p []byte, flags int, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTPWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(offset), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdtablesize() (size int) {\n\tr0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)\n\tsize = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(fd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0)\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Undelete(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0)\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go",
    "content": "// go run mksyscall.go -l32 -tags freebsd,386 syscall_bsd.go syscall_freebsd.go syscall_freebsd_386.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build freebsd && 386\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace(request int, pid int, addr uintptr, data int) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptracePtr(request int, pid int, addr unsafe.Pointer, data int) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc CapEnter() (err error) {\n\t_, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc capRightsGet(version int, fd int, rightsp *CapRights) (err error) {\n\t_, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc capRightsLimit(fd int, rightsp *CapRights) (err error) {\n\t_, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), uintptr(length>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getdirentries(fd int, buf []byte, basep *uint64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdtablesize() (size int) {\n\tr0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)\n\tsize = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(fd int, path string, mode uint32, dev uint64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), uintptr(dev>>32), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(fdat), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0)\n\tnewoffset = int64(int64(r1)<<32 | int64(r0))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Undelete(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0)\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go",
    "content": "// go run mksyscall.go -tags freebsd,amd64 syscall_bsd.go syscall_freebsd.go syscall_freebsd_amd64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build freebsd && amd64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace(request int, pid int, addr uintptr, data int) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptracePtr(request int, pid int, addr unsafe.Pointer, data int) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc CapEnter() (err error) {\n\t_, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc capRightsGet(version int, fd int, rightsp *CapRights) (err error) {\n\t_, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc capRightsLimit(fd int, rightsp *CapRights) (err error) {\n\t_, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getdirentries(fd int, buf []byte, basep *uint64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdtablesize() (size int) {\n\tr0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)\n\tsize = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(fd int, path string, mode uint32, dev uint64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(fdat), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Undelete(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go",
    "content": "// go run mksyscall.go -l32 -arm -tags freebsd,arm syscall_bsd.go syscall_freebsd.go syscall_freebsd_arm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build freebsd && arm\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace(request int, pid int, addr uintptr, data int) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptracePtr(request int, pid int, addr unsafe.Pointer, data int) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc CapEnter() (err error) {\n\t_, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc capRightsGet(version int, fd int, rightsp *CapRights) (err error) {\n\t_, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc capRightsLimit(fd int, rightsp *CapRights) (err error) {\n\t_, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall9(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getdirentries(fd int, buf []byte, basep *uint64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdtablesize() (size int) {\n\tr0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)\n\tsize = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(fd int, path string, mode uint32, dev uint64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, uintptr(dev), uintptr(dev>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(fdat), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0)\n\tnewoffset = int64(int64(r1)<<32 | int64(r0))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Undelete(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0)\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go",
    "content": "// go run mksyscall.go -tags freebsd,arm64 syscall_bsd.go syscall_freebsd.go syscall_freebsd_arm64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build freebsd && arm64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace(request int, pid int, addr uintptr, data int) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptracePtr(request int, pid int, addr unsafe.Pointer, data int) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc CapEnter() (err error) {\n\t_, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc capRightsGet(version int, fd int, rightsp *CapRights) (err error) {\n\t_, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc capRightsLimit(fd int, rightsp *CapRights) (err error) {\n\t_, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getdirentries(fd int, buf []byte, basep *uint64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdtablesize() (size int) {\n\tr0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)\n\tsize = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(fd int, path string, mode uint32, dev uint64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(fdat), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Undelete(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go",
    "content": "// go run mksyscall.go -tags freebsd,riscv64 syscall_bsd.go syscall_freebsd.go syscall_freebsd_riscv64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build freebsd && riscv64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace(request int, pid int, addr uintptr, data int) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptracePtr(request int, pid int, addr unsafe.Pointer, data int) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc CapEnter() (err error) {\n\t_, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc capRightsGet(version int, fd int, rightsp *CapRights) (err error) {\n\t_, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc capRightsLimit(fd int, rightsp *CapRights) (err error) {\n\t_, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getdirentries(fd int, buf []byte, basep *uint64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdtablesize() (size int) {\n\tr0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)\n\tsize = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(fd int, path string, mode uint32, dev uint64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(fdat), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Undelete(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go",
    "content": "// go run mksyscall_solaris.go -illumos -tags illumos,amd64 syscall_illumos.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build illumos && amd64\n\npackage unix\n\nimport (\n\t\"unsafe\"\n)\n\n//go:cgo_import_dynamic libc_readv readv \"libc.so\"\n//go:cgo_import_dynamic libc_preadv preadv \"libc.so\"\n//go:cgo_import_dynamic libc_writev writev \"libc.so\"\n//go:cgo_import_dynamic libc_pwritev pwritev \"libc.so\"\n//go:cgo_import_dynamic libc_accept4 accept4 \"libsocket.so\"\n\n//go:linkname procreadv libc_readv\n//go:linkname procpreadv libc_preadv\n//go:linkname procwritev libc_writev\n//go:linkname procpwritev libc_pwritev\n//go:linkname procaccept4 libc_accept4\n\nvar (\n\tprocreadv,\n\tprocpreadv,\n\tprocwritev,\n\tprocpwritev,\n\tprocaccept4 syscallFunc\n)\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readv(fd int, iovs []Iovec) (n int, err error) {\n\tvar _p0 *Iovec\n\tif len(iovs) > 0 {\n\t\t_p0 = &iovs[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procreadv)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc preadv(fd int, iovs []Iovec, off int64) (n int, err error) {\n\tvar _p0 *Iovec\n\tif len(iovs) > 0 {\n\t\t_p0 = &iovs[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpreadv)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), uintptr(off), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writev(fd int, iovs []Iovec) (n int, err error) {\n\tvar _p0 *Iovec\n\tif len(iovs) > 0 {\n\t\t_p0 = &iovs[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwritev)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwritev(fd int, iovs []Iovec, off int64) (n int, err error) {\n\tvar _p0 *Iovec\n\tif len(iovs) > 0 {\n\t\t_p0 = &iovs[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpwritev)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), uintptr(off), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procaccept4)), 4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux.go",
    "content": "// Code generated by mkmerge; DO NOT EDIT.\n\n//go:build linux\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fchmodat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fchmodat2(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT2, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT2, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(open_how)), uintptr(size), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Waitid(idType int, id int, info *Siginfo, options int, rusage *Rusage) (err error) {\n\t_, _, e1 := Syscall6(SYS_WAITID, uintptr(idType), uintptr(id), uintptr(unsafe.Pointer(info)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlJoin(cmd int, arg2 string) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg2)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg3)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(arg4)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(payload) > 0 {\n\t\t_p0 = unsafe.Pointer(&payload[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(restriction)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc keyctlRestrictKeyring(cmd int, arg2 int) (err error) {\n\t_, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ptracePtr(request int, pid int, addr uintptr, data unsafe.Pointer) (err error) {\n\t_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(arg)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(source)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 *byte\n\t_p2, err = BytePtrFromString(fstype)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mountSetattr(dirfd int, pathname string, flags uint, attr *MountAttr, size uintptr) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(pathname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MOUNT_SETATTR, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(unsafe.Pointer(attr)), uintptr(size), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Acct(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(description)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(payload) > 0 {\n\t\t_p2 = unsafe.Pointer(&payload[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0)\n\tid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtimex(buf *Timex) (state int, err error) {\n\tr0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0)\n\tstate = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Capget(hdr *CapUserHeader, data *CapUserData) (err error) {\n\t_, _, e1 := RawSyscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Capset(hdr *CapUserHeader, data *CapUserData) (err error) {\n\t_, _, e1 := RawSyscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockAdjtime(clockid int32, buf *Timex) (state int, err error) {\n\tr0, _, e1 := Syscall(SYS_CLOCK_ADJTIME, uintptr(clockid), uintptr(unsafe.Pointer(buf)), 0)\n\tstate = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGetres(clockid int32, res *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockSettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_SETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) {\n\t_, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc CloseRange(first uint, last uint, flags uint) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE_RANGE, uintptr(first), uintptr(last), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc DeleteModule(name string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(oldfd int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(oldfd int, newfd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollCreate1(flag int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Eventfd(initval uint, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fdatasync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FinitModule(fd int, params string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(params)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flistxattr(fd int, dest []byte) (sz int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p0 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fremovexattr(fd int, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsmount(fd int, flags int, mountAttrs int) (fsfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_FSMOUNT, uintptr(fd), uintptr(flags), uintptr(mountAttrs))\n\tfsfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsopen(fsName string, flags int) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(fsName)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_FSOPEN, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fspick(dirfd int, pathName string, flags int) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(pathName)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_FSPICK, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fsconfig(fd int, cmd uint, key *byte, value *byte, aux int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FSCONFIG, uintptr(fd), uintptr(cmd), uintptr(unsafe.Pointer(key)), uintptr(unsafe.Pointer(value)), uintptr(aux), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettid() (tid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0)\n\ttid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getxattr(path string, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p2 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InitModule(moduleImage []byte, params string) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(moduleImage) > 0 {\n\t\t_p0 = unsafe.Pointer(&moduleImage[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(params)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(pathname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))\n\twatchdesc = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyInit1(flags int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0)\n\tsuccess = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, sig syscall.Signal) (err error) {\n\t_, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Klogctl(typ int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lgetxattr(path string, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p2 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0)\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listxattr(path string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Llistxattr(path string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))\n\tsz = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lremovexattr(path string, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lsetxattr(path string, attr string, data []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(data) > 0 {\n\t\t_p2 = unsafe.Pointer(&data[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc MemfdCreate(name string, flags int) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc MoveMount(fromDirfd int, fromPathName string, toDirfd int, toPathName string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(fromPathName)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(toPathName)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MOVE_MOUNT, uintptr(fromDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(toDirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc OpenTree(dfd int, fileName string, flags uint) (r int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(fileName)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN_TREE, uintptr(dfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tr = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc PivotRoot(newroot string, putold string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(newroot)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(putold)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pselect6(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *sigset_argpack) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Removexattr(path string, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(keyType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(description)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 *byte\n\t_p2, err = BytePtrFromString(callback)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0)\n\tid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setdomainname(p []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sethostname(p []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setns(fd int, nstype int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setxattr(path string, attr string, data []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(data) > 0 {\n\t\t_p2 = unsafe.Pointer(&data[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0)\n\tnewfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() {\n\tSyscallNoError(SYS_SYNC, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Syncfs(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sysinfo(info *Sysinfo_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc TimerfdCreate(clockid int, flags int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_TIMERFD_CREATE, uintptr(clockid), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc TimerfdGettime(fd int, currValue *ItimerSpec) (err error) {\n\t_, _, e1 := RawSyscall(SYS_TIMERFD_GETTIME, uintptr(fd), uintptr(unsafe.Pointer(currValue)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc TimerfdSettime(fd int, flags int, newValue *ItimerSpec, oldValue *ItimerSpec) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_TIMERFD_SETTIME, uintptr(fd), uintptr(flags), uintptr(unsafe.Pointer(newValue)), uintptr(unsafe.Pointer(oldValue)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tgkill(tgid int, tid int, sig syscall.Signal) (err error) {\n\t_, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Times(tms *Tms) (ticks uintptr, err error) {\n\tr0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0)\n\tticks = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(mask int) (oldmask int) {\n\tr0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Uname(buf *Utsname) (err error) {\n\t_, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(target string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unshare(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc exitThread(code int) (err error) {\n\t_, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc readv(fd int, iovs []Iovec) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(iovs) > 0 {\n\t\t_p0 = unsafe.Pointer(&iovs[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc writev(fd int, iovs []Iovec) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(iovs) > 0 {\n\t\t_p0 = unsafe.Pointer(&iovs[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc preadv(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(iovs) > 0 {\n\t\t_p0 = unsafe.Pointer(&iovs[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREADV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwritev(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(iovs) > 0 {\n\t\t_p0 = unsafe.Pointer(&iovs[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc preadv2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(iovs) > 0 {\n\t\t_p0 = unsafe.Pointer(&iovs[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREADV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwritev2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(iovs) > 0 {\n\t\t_p0 = unsafe.Pointer(&iovs[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITEV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mremap(oldaddr uintptr, oldlength uintptr, newlength uintptr, flags int, newaddr uintptr) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MREMAP, uintptr(oldaddr), uintptr(oldlength), uintptr(newlength), uintptr(flags), uintptr(newaddr), 0)\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, advice int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc faccessat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat2(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT2, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(pathname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ProcessVMReadv(pid int, localIov []Iovec, remoteIov []RemoteIovec, flags uint) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(localIov) > 0 {\n\t\t_p0 = unsafe.Pointer(&localIov[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(remoteIov) > 0 {\n\t\t_p1 = unsafe.Pointer(&remoteIov[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PROCESS_VM_READV, uintptr(pid), uintptr(_p0), uintptr(len(localIov)), uintptr(_p1), uintptr(len(remoteIov)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ProcessVMWritev(pid int, localIov []Iovec, remoteIov []RemoteIovec, flags uint) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(localIov) > 0 {\n\t\t_p0 = unsafe.Pointer(&localIov[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(remoteIov) > 0 {\n\t\t_p1 = unsafe.Pointer(&remoteIov[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PROCESS_VM_WRITEV, uintptr(pid), uintptr(_p0), uintptr(len(localIov)), uintptr(_p1), uintptr(len(remoteIov)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc PidfdOpen(pid int, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_PIDFD_OPEN, uintptr(pid), uintptr(flags), 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc PidfdGetfd(pidfd int, targetfd int, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_PIDFD_GETFD, uintptr(pidfd), uintptr(targetfd), uintptr(flags))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc PidfdSendSignal(pidfd int, sig Signal, info *Siginfo, flags int) (err error) {\n\t_, _, e1 := Syscall6(SYS_PIDFD_SEND_SIGNAL, uintptr(pidfd), uintptr(sig), uintptr(unsafe.Pointer(info)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmat(id int, addr uintptr, flag int) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall(SYS_SHMAT, uintptr(id), uintptr(addr), uintptr(flag))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) {\n\tr0, _, e1 := Syscall(SYS_SHMCTL, uintptr(id), uintptr(cmd), uintptr(unsafe.Pointer(buf)))\n\tresult = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmdt(addr uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_SHMDT, uintptr(addr), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmget(key int, size int, flag int) (id int, err error) {\n\tr0, _, e1 := Syscall(SYS_SHMGET, uintptr(key), uintptr(size), uintptr(flag))\n\tid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getitimer(which int, currValue *Itimerval) (err error) {\n\t_, _, e1 := Syscall(SYS_GETITIMER, uintptr(which), uintptr(unsafe.Pointer(currValue)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setitimer(which int, newValue *Itimerval, oldValue *Itimerval) (err error) {\n\t_, _, e1 := Syscall(SYS_SETITIMER, uintptr(which), uintptr(unsafe.Pointer(newValue)), uintptr(unsafe.Pointer(oldValue)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc rtSigprocmask(how int, set *Sigset_t, oldset *Sigset_t, sigsetsize uintptr) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_RT_SIGPROCMASK, uintptr(how), uintptr(unsafe.Pointer(set)), uintptr(unsafe.Pointer(oldset)), uintptr(sigsetsize), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) {\n\tRawSyscallNoError(SYS_GETRESUID, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid)))\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) {\n\tRawSyscallNoError(SYS_GETRESGID, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid)))\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc schedSetattr(pid int, attr *SchedAttr, flags uint) (err error) {\n\t_, _, e1 := Syscall(SYS_SCHED_SETATTR, uintptr(pid), uintptr(unsafe.Pointer(attr)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc schedGetattr(pid int, attr *SchedAttr, size uint, flags uint) (err error) {\n\t_, _, e1 := Syscall6(SYS_SCHED_GETATTR, uintptr(pid), uintptr(unsafe.Pointer(attr)), uintptr(size), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Cachestat(fd uint, crange *CachestatRange, cstat *Cachestat_t, flags uint) (err error) {\n\t_, _, e1 := Syscall6(SYS_CACHESTAT, uintptr(fd), uintptr(unsafe.Pointer(crange)), uintptr(unsafe.Pointer(cstat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mseal(b []byte, flags uint) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSEAL, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_386.go",
    "content": "// go run mksyscall.go -l32 -tags linux,386 syscall_linux.go syscall_linux_386.go syscall_linux_alarm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && 386\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(int64(r1)<<32 | int64(r0))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64_64, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN32, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE64, uintptr(fd), uintptr(length), uintptr(length>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID32, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID32, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID32, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID32, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ioperm(from int, num int, on int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Iopl(level int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN32, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID32, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID32, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(off>>32), uintptr(n), uintptr(n>>32), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getrlimit(resource int, rlim *rlimit32) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tr0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0)\n\ttt = Time_t(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Alarm(seconds uint) (remaining uint, err error) {\n\tr0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0)\n\tremaining = uint(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go",
    "content": "// go run mksyscall.go -tags linux,amd64 syscall_linux.go syscall_linux_amd64.go syscall_linux_alarm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && amd64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ioperm(from int, num int, on int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Iopl(level int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc MemfdSecret(flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_MEMFD_SECRET, uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\toff = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(cmdline)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Alarm(seconds uint) (remaining uint, err error) {\n\tr0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0)\n\tremaining = uint(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go",
    "content": "// go run mksyscall.go -l32 -arm -tags linux,arm syscall_linux.go syscall_linux_arm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && arm\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(int64(r1)<<32 | int64(r0))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, flags int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(flags), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN32, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID32, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID32, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID32, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID32, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN32, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID32, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID32, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FTRUNCATE64, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getrlimit(resource int, rlim *rlimit32) (err error) {\n\t_, _, e1 := RawSyscall(SYS_UGETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc armSyncFileRange(fd int, flags int, off int64, n int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_ARM_SYNC_FILE_RANGE, uintptr(fd), uintptr(flags), uintptr(off), uintptr(off>>32), uintptr(n), uintptr(n>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(cmdline)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go",
    "content": "// go run mksyscall.go -tags linux,arm64 syscall_linux.go syscall_linux_arm64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && arm64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_PWAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc MemfdSecret(flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_MEMFD_SECRET, uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\toff = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(cmdline)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go",
    "content": "// go run mksyscall.go -tags linux,loong64 syscall_linux.go syscall_linux_loong64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && loong64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_PWAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\toff = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(cmdline)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go",
    "content": "// go run mksyscall.go -b32 -arm -tags linux,mips syscall_linux.go syscall_linux_mipsx.go syscall_linux_alarm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && mips\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask>>32), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off>>32), uintptr(off), uintptr(len>>32), uintptr(len))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(int64(r0)<<32 | int64(r1))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall9(SYS_FADVISE64, uintptr(fd), 0, uintptr(offset>>32), uintptr(offset), uintptr(length>>32), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FTRUNCATE64, uintptr(fd), 0, uintptr(length>>32), uintptr(length), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset>>32), uintptr(offset))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset>>32), uintptr(offset))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) (err error) {\n\t_, _, e1 := Syscall9(SYS_SYNC_FILE_RANGE, uintptr(fd), 0, uintptr(off>>32), uintptr(off), uintptr(n>>32), uintptr(n), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length>>32), uintptr(length), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ioperm(from int, num int, on int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Iopl(level int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tr0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0)\n\ttt = Time_t(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getrlimit(resource int, rlim *rlimit32) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Alarm(seconds uint) (remaining uint, err error) {\n\tr0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0)\n\tremaining = uint(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go",
    "content": "// go run mksyscall.go -tags linux,mips64 syscall_linux.go syscall_linux_mips64x.go syscall_linux_alarm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && mips64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\toff = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstat(fd int, st *stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(st)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstatat(dirfd int, path string, st *stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc lstat(path string, st *stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc stat(path string, st *stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Alarm(seconds uint) (remaining uint, err error) {\n\tr0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0)\n\tremaining = uint(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go",
    "content": "// go run mksyscall.go -tags linux,mips64le syscall_linux.go syscall_linux_mips64x.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && mips64le\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\toff = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstat(fd int, st *stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(st)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstatat(dirfd int, path string, st *stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc lstat(path string, st *stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc stat(path string, st *stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go",
    "content": "// go run mksyscall.go -l32 -arm -tags linux,mipsle syscall_linux.go syscall_linux_mipsx.go syscall_linux_alarm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && mipsle\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(int64(r1)<<32 | int64(r0))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall9(SYS_FADVISE64, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FTRUNCATE64, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) (err error) {\n\t_, _, e1 := Syscall9(SYS_SYNC_FILE_RANGE, uintptr(fd), 0, uintptr(off), uintptr(off>>32), uintptr(n), uintptr(n>>32), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ioperm(from int, num int, on int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Iopl(level int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tr0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0)\n\ttt = Time_t(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getrlimit(resource int, rlim *rlimit32) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Alarm(seconds uint) (remaining uint, err error) {\n\tr0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0)\n\tremaining = uint(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go",
    "content": "// go run mksyscall.go -b32 -tags linux,ppc syscall_linux.go syscall_linux_ppc.go syscall_linux_alarm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && ppc\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask>>32), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off>>32), uintptr(off), uintptr(len>>32), uintptr(len))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(int64(r0)<<32 | int64(r1))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE64, uintptr(fd), uintptr(length>>32), uintptr(length))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ioperm(from int, num int, on int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Iopl(level int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset>>32), uintptr(offset), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset>>32), uintptr(offset), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), uintptr(length>>32), uintptr(length))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tr0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0)\n\ttt = Time_t(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getrlimit(resource int, rlim *rlimit32) (err error) {\n\t_, _, e1 := RawSyscall(SYS_UGETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc syncFileRange2(fd int, flags int, off int64, n int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE2, uintptr(fd), uintptr(flags), uintptr(off>>32), uintptr(off), uintptr(n>>32), uintptr(n))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(cmdline)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Alarm(seconds uint) (remaining uint, err error) {\n\tr0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0)\n\tremaining = uint(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go",
    "content": "// go run mksyscall.go -tags linux,ppc64 syscall_linux.go syscall_linux_ppc64x.go syscall_linux_alarm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && ppc64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_UGETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ioperm(from int, num int, on int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Iopl(level int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\toff = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tr0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0)\n\ttt = Time_t(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc syncFileRange2(fd int, flags int, off int64, n int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE2, uintptr(fd), uintptr(flags), uintptr(off), uintptr(n), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(cmdline)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Alarm(seconds uint) (remaining uint, err error) {\n\tr0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0)\n\tremaining = uint(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go",
    "content": "// go run mksyscall.go -tags linux,ppc64le syscall_linux.go syscall_linux_ppc64x.go syscall_linux_alarm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && ppc64le\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_UGETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ioperm(from int, num int, on int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Iopl(level int) (err error) {\n\t_, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\toff = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Time(t *Time_t) (tt Time_t, err error) {\n\tr0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0)\n\ttt = Time_t(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc syncFileRange2(fd int, flags int, off int64, n int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE2, uintptr(fd), uintptr(flags), uintptr(off), uintptr(n), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(cmdline)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Alarm(seconds uint) (remaining uint, err error) {\n\tr0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0)\n\tremaining = uint(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go",
    "content": "// go run mksyscall.go -tags linux,riscv64 syscall_linux.go syscall_linux_riscv64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && riscv64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_PWAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc MemfdSecret(flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_MEMFD_SECRET, uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\toff = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(cmdline)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc riscvHWProbe(pairs []RISCVHWProbePairs, cpuCount uintptr, cpus *CPUSet, flags uint) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(pairs) > 0 {\n\t\t_p0 = unsafe.Pointer(&pairs[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_RISCV_HWPROBE, uintptr(_p0), uintptr(len(pairs)), uintptr(cpuCount), uintptr(unsafe.Pointer(cpus)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go",
    "content": "// go run mksyscall.go -tags linux,s390x syscall_linux.go syscall_linux_s390x.go syscall_linux_alarm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && s390x\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\toff = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(cmdline)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Alarm(seconds uint) (remaining uint, err error) {\n\tr0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0)\n\tremaining = uint(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go",
    "content": "// go run mksyscall.go -tags linux,sparc64 syscall_linux.go syscall_linux_sparc64.go syscall_linux_alarm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build linux && sparc64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {\n\t_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fallocate(fd int, mode uint32, off int64, len int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, buf *Statfs_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\tr0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))\n\toff = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsgid(gid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setfsuid(uid int) (prev int, err error) {\n\tr0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)\n\tprev = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc SyncFileRange(fd int, off int64, n int64, flags int) (err error) {\n\t_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tr0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tnn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(dirfd int, path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Alarm(seconds uint) (remaining uint, err error) {\n\tr0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0)\n\tremaining = uint(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go",
    "content": "// go run mksyscall.go -l32 -netbsd -tags netbsd,386 syscall_bsd.go syscall_netbsd.go syscall_netbsd_386.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build netbsd && 386\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(from int, to int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall9(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), 0, uintptr(length), uintptr(length>>32), uintptr(advice), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0)\n\tnewoffset = int64(int64(r1)<<32 | int64(r0))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statvfs1(path string, buf *Statvfs_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0)\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mremapNetBSD(oldp uintptr, oldsize uintptr, newp uintptr, newsize uintptr, flags int) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MREMAP, uintptr(oldp), uintptr(oldsize), uintptr(newp), uintptr(newsize), uintptr(flags), 0)\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go",
    "content": "// go run mksyscall.go -netbsd -tags netbsd,amd64 syscall_bsd.go syscall_netbsd.go syscall_netbsd_amd64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build netbsd && amd64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(from int, to int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), 0, uintptr(length), uintptr(advice))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0)\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statvfs1(path string, buf *Statvfs_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0)\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mremapNetBSD(oldp uintptr, oldsize uintptr, newp uintptr, newsize uintptr, flags int) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MREMAP, uintptr(oldp), uintptr(oldsize), uintptr(newp), uintptr(newsize), uintptr(flags), 0)\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go",
    "content": "// go run mksyscall.go -l32 -netbsd -arm -tags netbsd,arm syscall_bsd.go syscall_netbsd.go syscall_netbsd_arm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build netbsd && arm\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(from int, to int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall9(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), 0, uintptr(length), uintptr(length>>32), uintptr(advice), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0)\n\tnewoffset = int64(int64(r1)<<32 | int64(r0))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statvfs1(path string, buf *Statvfs_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0)\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mremapNetBSD(oldp uintptr, oldsize uintptr, newp uintptr, newsize uintptr, flags int) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MREMAP, uintptr(oldp), uintptr(oldsize), uintptr(newp), uintptr(newsize), uintptr(flags), 0)\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go",
    "content": "// go run mksyscall.go -netbsd -tags netbsd,arm64 syscall_bsd.go syscall_netbsd.go syscall_netbsd_arm64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build netbsd && arm64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(from int, to int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tSyscall(SYS_EXIT, uintptr(code), 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(file)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attrname)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fadvise(fd int, offset int64, length int64, advice int) (err error) {\n\t_, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), 0, uintptr(length), uintptr(advice))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0)\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statvfs1(path string, buf *Statvfs_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0)\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mremapNetBSD(oldp uintptr, oldsize uintptr, newp uintptr, newsize uintptr, flags int) (xaddr uintptr, err error) {\n\tr0, _, e1 := Syscall6(SYS_MREMAP, uintptr(oldp), uintptr(oldsize), uintptr(newp), uintptr(newsize), uintptr(flags), 0)\n\txaddr = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go",
    "content": "// go run mksyscall.go -l32 -openbsd -libc -tags openbsd,386 syscall_bsd.go syscall_openbsd.go syscall_openbsd_386.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build openbsd && 386\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgroups getgroups \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgroups setgroups \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_wait4_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_wait4 wait4 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_accept_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_accept accept \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_bind_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_bind bind \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_connect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_connect connect \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socket_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socket socket \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockopt getsockopt \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsockopt setsockopt \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpeername_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpeername getpeername \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockname_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockname getsockname \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shutdown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shutdown shutdown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socketpair_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socketpair socketpair \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvfrom_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvfrom recvfrom \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendto_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendto sendto \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvmsg recvmsg \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendmsg sendmsg \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kevent_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kevent kevent \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimes utimes \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_futimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_futimes futimes \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_poll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_poll poll \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_madvise_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_madvise madvise \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlock mlock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlockall mlockall \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mprotect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mprotect mprotect \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_msync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_msync msync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlock munlock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlockall munlockall \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pipe2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pipe2 pipe2 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getdents_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getdents getdents \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getcwd_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getcwd getcwd \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) {\n\tsyscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid)))\n\treturn\n}\n\nvar libc_getresuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getresuid getresuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) {\n\tsyscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid)))\n\treturn\n}\n\nvar libc_getresgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getresgid getresgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ioctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ioctl ioctl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sysctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sysctl sysctl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fcntl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fcntl fcntl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ppoll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ppoll ppoll \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_access_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_access access \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_adjtime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_adjtime adjtime \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chdir chdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chflags chflags \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chmod chmod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chown chown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chroot_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chroot chroot \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_clock_gettime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_clock_gettime clock_gettime \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_close_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_close close \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup dup \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup2 dup2 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(from int, to int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup3_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup3 dup3 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tsyscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0)\n\treturn\n}\n\nvar libc_exit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_exit exit \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_faccessat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_faccessat faccessat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchdir fchdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchflags fchflags \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmod fchmod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmodat fchmodat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchown fchown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchownat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchownat fchownat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_flock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_flock flock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fpathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fpathconf fpathconf \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstat fstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatat fstatat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatfs fstatfs \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fsync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fsync fsync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), uintptr(length>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ftruncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ftruncate ftruncate \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\nvar libc_getegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getegid getegid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_geteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_geteuid geteuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\nvar libc_getgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgid getgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgid getpgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\nvar libc_getpgrp_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgrp getpgrp \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\nvar libc_getpid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpid getpid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\nvar libc_getppid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getppid getppid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpriority getpriority \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrlimit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrlimit getrlimit \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrtable() (rtable int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0)\n\trtable = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrtable_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrtable getrtable \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrusage_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrusage getrusage \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsid getsid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_gettimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_gettimeofday gettimeofday \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_getuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getuid getuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\nvar libc_issetugid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_issetugid issetugid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kill_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kill kill \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kqueue_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kqueue kqueue \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lchown lchown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_link_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_link link \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_linkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_linkat linkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_listen_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_listen listen \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lstat lstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdir mkdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdirat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdirat mkdirat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifo_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifo mkfifo \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifoat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifoat mkfifoat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknod mknod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknodat mknodat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(fsType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(dir)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mount mount \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_nanosleep_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_nanosleep nanosleep \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_open_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_open open \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_openat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_openat openat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pathconf pathconf \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pread_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pread pread \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pwrite_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pwrite pwrite \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_read_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_read read \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlink readlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlinkat readlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rename_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rename rename \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_renameat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_renameat renameat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_revoke_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_revoke revoke \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rmdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rmdir rmdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, r1, e1 := syscall_syscall6(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0)\n\tnewoffset = int64(int64(r1)<<32 | int64(r0))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lseek_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lseek lseek \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_select_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_select select \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setegid setegid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_seteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_seteuid seteuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgid setgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setlogin_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setlogin setlogin \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpgid setpgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpriority setpriority \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setregid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setregid setregid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setreuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setreuid setreuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setresgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setresgid setresgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setresuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setresuid setresuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrtable(rtable int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setrtable_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setrtable setrtable \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsid setsid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_settimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_settimeofday settimeofday \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setuid setuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_stat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_stat stat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_statfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_statfs statfs \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlink symlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlinkat symlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sync sync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_truncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_truncate truncate \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\nvar libc_umask_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_umask umask \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlink unlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlinkat unlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unmount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unmount unmount \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_write_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_write write \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := syscall_syscall9(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0)\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mmap mmap \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munmap munmap \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getfsstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getfsstat getfsstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimensat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimensat utimensat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pledge(promises *byte, execpromises *byte) (err error) {\n\t_, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pledge_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pledge pledge \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc unveil(path *byte, flags *byte) (err error) {\n\t_, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unveil_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unveil unveil \"libc.so\"\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s",
    "content": "// go run mkasm.go openbsd 386\n// Code generated by the command above; DO NOT EDIT.\n\n#include \"textflag.h\"\n\nTEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgroups(SB)\nGLOBL\t·libc_getgroups_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getgroups_trampoline_addr(SB)/4, $libc_getgroups_trampoline<>(SB)\n\nTEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgroups(SB)\nGLOBL\t·libc_setgroups_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setgroups_trampoline_addr(SB)/4, $libc_setgroups_trampoline<>(SB)\n\nTEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_wait4(SB)\nGLOBL\t·libc_wait4_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_wait4_trampoline_addr(SB)/4, $libc_wait4_trampoline<>(SB)\n\nTEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_accept(SB)\nGLOBL\t·libc_accept_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_accept_trampoline_addr(SB)/4, $libc_accept_trampoline<>(SB)\n\nTEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_bind(SB)\nGLOBL\t·libc_bind_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_bind_trampoline_addr(SB)/4, $libc_bind_trampoline<>(SB)\n\nTEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_connect(SB)\nGLOBL\t·libc_connect_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_connect_trampoline_addr(SB)/4, $libc_connect_trampoline<>(SB)\n\nTEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socket(SB)\nGLOBL\t·libc_socket_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_socket_trampoline_addr(SB)/4, $libc_socket_trampoline<>(SB)\n\nTEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockopt(SB)\nGLOBL\t·libc_getsockopt_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getsockopt_trampoline_addr(SB)/4, $libc_getsockopt_trampoline<>(SB)\n\nTEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsockopt(SB)\nGLOBL\t·libc_setsockopt_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setsockopt_trampoline_addr(SB)/4, $libc_setsockopt_trampoline<>(SB)\n\nTEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpeername(SB)\nGLOBL\t·libc_getpeername_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getpeername_trampoline_addr(SB)/4, $libc_getpeername_trampoline<>(SB)\n\nTEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockname(SB)\nGLOBL\t·libc_getsockname_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getsockname_trampoline_addr(SB)/4, $libc_getsockname_trampoline<>(SB)\n\nTEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shutdown(SB)\nGLOBL\t·libc_shutdown_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_shutdown_trampoline_addr(SB)/4, $libc_shutdown_trampoline<>(SB)\n\nTEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socketpair(SB)\nGLOBL\t·libc_socketpair_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_socketpair_trampoline_addr(SB)/4, $libc_socketpair_trampoline<>(SB)\n\nTEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvfrom(SB)\nGLOBL\t·libc_recvfrom_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_recvfrom_trampoline_addr(SB)/4, $libc_recvfrom_trampoline<>(SB)\n\nTEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendto(SB)\nGLOBL\t·libc_sendto_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_sendto_trampoline_addr(SB)/4, $libc_sendto_trampoline<>(SB)\n\nTEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvmsg(SB)\nGLOBL\t·libc_recvmsg_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_recvmsg_trampoline_addr(SB)/4, $libc_recvmsg_trampoline<>(SB)\n\nTEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendmsg(SB)\nGLOBL\t·libc_sendmsg_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_sendmsg_trampoline_addr(SB)/4, $libc_sendmsg_trampoline<>(SB)\n\nTEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kevent(SB)\nGLOBL\t·libc_kevent_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_kevent_trampoline_addr(SB)/4, $libc_kevent_trampoline<>(SB)\n\nTEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimes(SB)\nGLOBL\t·libc_utimes_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_utimes_trampoline_addr(SB)/4, $libc_utimes_trampoline<>(SB)\n\nTEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_futimes(SB)\nGLOBL\t·libc_futimes_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_futimes_trampoline_addr(SB)/4, $libc_futimes_trampoline<>(SB)\n\nTEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_poll(SB)\nGLOBL\t·libc_poll_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_poll_trampoline_addr(SB)/4, $libc_poll_trampoline<>(SB)\n\nTEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_madvise(SB)\nGLOBL\t·libc_madvise_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_madvise_trampoline_addr(SB)/4, $libc_madvise_trampoline<>(SB)\n\nTEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlock(SB)\nGLOBL\t·libc_mlock_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mlock_trampoline_addr(SB)/4, $libc_mlock_trampoline<>(SB)\n\nTEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlockall(SB)\nGLOBL\t·libc_mlockall_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mlockall_trampoline_addr(SB)/4, $libc_mlockall_trampoline<>(SB)\n\nTEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mprotect(SB)\nGLOBL\t·libc_mprotect_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mprotect_trampoline_addr(SB)/4, $libc_mprotect_trampoline<>(SB)\n\nTEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_msync(SB)\nGLOBL\t·libc_msync_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_msync_trampoline_addr(SB)/4, $libc_msync_trampoline<>(SB)\n\nTEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlock(SB)\nGLOBL\t·libc_munlock_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_munlock_trampoline_addr(SB)/4, $libc_munlock_trampoline<>(SB)\n\nTEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlockall(SB)\nGLOBL\t·libc_munlockall_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_munlockall_trampoline_addr(SB)/4, $libc_munlockall_trampoline<>(SB)\n\nTEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pipe2(SB)\nGLOBL\t·libc_pipe2_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_pipe2_trampoline_addr(SB)/4, $libc_pipe2_trampoline<>(SB)\n\nTEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getdents(SB)\nGLOBL\t·libc_getdents_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getdents_trampoline_addr(SB)/4, $libc_getdents_trampoline<>(SB)\n\nTEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getcwd(SB)\nGLOBL\t·libc_getcwd_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getcwd_trampoline_addr(SB)/4, $libc_getcwd_trampoline<>(SB)\n\nTEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getresuid(SB)\nGLOBL\t·libc_getresuid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getresuid_trampoline_addr(SB)/4, $libc_getresuid_trampoline<>(SB)\n\nTEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getresgid(SB)\nGLOBL\t·libc_getresgid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getresgid_trampoline_addr(SB)/4, $libc_getresgid_trampoline<>(SB)\n\nTEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ioctl(SB)\nGLOBL\t·libc_ioctl_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_ioctl_trampoline_addr(SB)/4, $libc_ioctl_trampoline<>(SB)\n\nTEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sysctl(SB)\nGLOBL\t·libc_sysctl_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_sysctl_trampoline_addr(SB)/4, $libc_sysctl_trampoline<>(SB)\n\nTEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fcntl(SB)\nGLOBL\t·libc_fcntl_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fcntl_trampoline_addr(SB)/4, $libc_fcntl_trampoline<>(SB)\n\nTEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ppoll(SB)\nGLOBL\t·libc_ppoll_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_ppoll_trampoline_addr(SB)/4, $libc_ppoll_trampoline<>(SB)\n\nTEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_access(SB)\nGLOBL\t·libc_access_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_access_trampoline_addr(SB)/4, $libc_access_trampoline<>(SB)\n\nTEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_adjtime(SB)\nGLOBL\t·libc_adjtime_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_adjtime_trampoline_addr(SB)/4, $libc_adjtime_trampoline<>(SB)\n\nTEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chdir(SB)\nGLOBL\t·libc_chdir_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_chdir_trampoline_addr(SB)/4, $libc_chdir_trampoline<>(SB)\n\nTEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chflags(SB)\nGLOBL\t·libc_chflags_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_chflags_trampoline_addr(SB)/4, $libc_chflags_trampoline<>(SB)\n\nTEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chmod(SB)\nGLOBL\t·libc_chmod_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_chmod_trampoline_addr(SB)/4, $libc_chmod_trampoline<>(SB)\n\nTEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chown(SB)\nGLOBL\t·libc_chown_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_chown_trampoline_addr(SB)/4, $libc_chown_trampoline<>(SB)\n\nTEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chroot(SB)\nGLOBL\t·libc_chroot_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_chroot_trampoline_addr(SB)/4, $libc_chroot_trampoline<>(SB)\n\nTEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_clock_gettime(SB)\nGLOBL\t·libc_clock_gettime_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_clock_gettime_trampoline_addr(SB)/4, $libc_clock_gettime_trampoline<>(SB)\n\nTEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_close(SB)\nGLOBL\t·libc_close_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_close_trampoline_addr(SB)/4, $libc_close_trampoline<>(SB)\n\nTEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup(SB)\nGLOBL\t·libc_dup_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_dup_trampoline_addr(SB)/4, $libc_dup_trampoline<>(SB)\n\nTEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup2(SB)\nGLOBL\t·libc_dup2_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_dup2_trampoline_addr(SB)/4, $libc_dup2_trampoline<>(SB)\n\nTEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup3(SB)\nGLOBL\t·libc_dup3_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_dup3_trampoline_addr(SB)/4, $libc_dup3_trampoline<>(SB)\n\nTEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_exit(SB)\nGLOBL\t·libc_exit_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_exit_trampoline_addr(SB)/4, $libc_exit_trampoline<>(SB)\n\nTEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_faccessat(SB)\nGLOBL\t·libc_faccessat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_faccessat_trampoline_addr(SB)/4, $libc_faccessat_trampoline<>(SB)\n\nTEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchdir(SB)\nGLOBL\t·libc_fchdir_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fchdir_trampoline_addr(SB)/4, $libc_fchdir_trampoline<>(SB)\n\nTEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchflags(SB)\nGLOBL\t·libc_fchflags_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fchflags_trampoline_addr(SB)/4, $libc_fchflags_trampoline<>(SB)\n\nTEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmod(SB)\nGLOBL\t·libc_fchmod_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fchmod_trampoline_addr(SB)/4, $libc_fchmod_trampoline<>(SB)\n\nTEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmodat(SB)\nGLOBL\t·libc_fchmodat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fchmodat_trampoline_addr(SB)/4, $libc_fchmodat_trampoline<>(SB)\n\nTEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchown(SB)\nGLOBL\t·libc_fchown_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fchown_trampoline_addr(SB)/4, $libc_fchown_trampoline<>(SB)\n\nTEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchownat(SB)\nGLOBL\t·libc_fchownat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fchownat_trampoline_addr(SB)/4, $libc_fchownat_trampoline<>(SB)\n\nTEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_flock(SB)\nGLOBL\t·libc_flock_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_flock_trampoline_addr(SB)/4, $libc_flock_trampoline<>(SB)\n\nTEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fpathconf(SB)\nGLOBL\t·libc_fpathconf_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fpathconf_trampoline_addr(SB)/4, $libc_fpathconf_trampoline<>(SB)\n\nTEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstat(SB)\nGLOBL\t·libc_fstat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fstat_trampoline_addr(SB)/4, $libc_fstat_trampoline<>(SB)\n\nTEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatat(SB)\nGLOBL\t·libc_fstatat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fstatat_trampoline_addr(SB)/4, $libc_fstatat_trampoline<>(SB)\n\nTEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatfs(SB)\nGLOBL\t·libc_fstatfs_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fstatfs_trampoline_addr(SB)/4, $libc_fstatfs_trampoline<>(SB)\n\nTEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fsync(SB)\nGLOBL\t·libc_fsync_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fsync_trampoline_addr(SB)/4, $libc_fsync_trampoline<>(SB)\n\nTEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ftruncate(SB)\nGLOBL\t·libc_ftruncate_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_ftruncate_trampoline_addr(SB)/4, $libc_ftruncate_trampoline<>(SB)\n\nTEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getegid(SB)\nGLOBL\t·libc_getegid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getegid_trampoline_addr(SB)/4, $libc_getegid_trampoline<>(SB)\n\nTEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_geteuid(SB)\nGLOBL\t·libc_geteuid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_geteuid_trampoline_addr(SB)/4, $libc_geteuid_trampoline<>(SB)\n\nTEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgid(SB)\nGLOBL\t·libc_getgid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getgid_trampoline_addr(SB)/4, $libc_getgid_trampoline<>(SB)\n\nTEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgid(SB)\nGLOBL\t·libc_getpgid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getpgid_trampoline_addr(SB)/4, $libc_getpgid_trampoline<>(SB)\n\nTEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgrp(SB)\nGLOBL\t·libc_getpgrp_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getpgrp_trampoline_addr(SB)/4, $libc_getpgrp_trampoline<>(SB)\n\nTEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpid(SB)\nGLOBL\t·libc_getpid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getpid_trampoline_addr(SB)/4, $libc_getpid_trampoline<>(SB)\n\nTEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getppid(SB)\nGLOBL\t·libc_getppid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getppid_trampoline_addr(SB)/4, $libc_getppid_trampoline<>(SB)\n\nTEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpriority(SB)\nGLOBL\t·libc_getpriority_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getpriority_trampoline_addr(SB)/4, $libc_getpriority_trampoline<>(SB)\n\nTEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrlimit(SB)\nGLOBL\t·libc_getrlimit_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getrlimit_trampoline_addr(SB)/4, $libc_getrlimit_trampoline<>(SB)\n\nTEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrtable(SB)\nGLOBL\t·libc_getrtable_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getrtable_trampoline_addr(SB)/4, $libc_getrtable_trampoline<>(SB)\n\nTEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrusage(SB)\nGLOBL\t·libc_getrusage_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getrusage_trampoline_addr(SB)/4, $libc_getrusage_trampoline<>(SB)\n\nTEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsid(SB)\nGLOBL\t·libc_getsid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getsid_trampoline_addr(SB)/4, $libc_getsid_trampoline<>(SB)\n\nTEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_gettimeofday(SB)\nGLOBL\t·libc_gettimeofday_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_gettimeofday_trampoline_addr(SB)/4, $libc_gettimeofday_trampoline<>(SB)\n\nTEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getuid(SB)\nGLOBL\t·libc_getuid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getuid_trampoline_addr(SB)/4, $libc_getuid_trampoline<>(SB)\n\nTEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_issetugid(SB)\nGLOBL\t·libc_issetugid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_issetugid_trampoline_addr(SB)/4, $libc_issetugid_trampoline<>(SB)\n\nTEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kill(SB)\nGLOBL\t·libc_kill_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_kill_trampoline_addr(SB)/4, $libc_kill_trampoline<>(SB)\n\nTEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kqueue(SB)\nGLOBL\t·libc_kqueue_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_kqueue_trampoline_addr(SB)/4, $libc_kqueue_trampoline<>(SB)\n\nTEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lchown(SB)\nGLOBL\t·libc_lchown_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_lchown_trampoline_addr(SB)/4, $libc_lchown_trampoline<>(SB)\n\nTEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_link(SB)\nGLOBL\t·libc_link_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_link_trampoline_addr(SB)/4, $libc_link_trampoline<>(SB)\n\nTEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_linkat(SB)\nGLOBL\t·libc_linkat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_linkat_trampoline_addr(SB)/4, $libc_linkat_trampoline<>(SB)\n\nTEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_listen(SB)\nGLOBL\t·libc_listen_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_listen_trampoline_addr(SB)/4, $libc_listen_trampoline<>(SB)\n\nTEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lstat(SB)\nGLOBL\t·libc_lstat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_lstat_trampoline_addr(SB)/4, $libc_lstat_trampoline<>(SB)\n\nTEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdir(SB)\nGLOBL\t·libc_mkdir_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mkdir_trampoline_addr(SB)/4, $libc_mkdir_trampoline<>(SB)\n\nTEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdirat(SB)\nGLOBL\t·libc_mkdirat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mkdirat_trampoline_addr(SB)/4, $libc_mkdirat_trampoline<>(SB)\n\nTEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifo(SB)\nGLOBL\t·libc_mkfifo_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mkfifo_trampoline_addr(SB)/4, $libc_mkfifo_trampoline<>(SB)\n\nTEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifoat(SB)\nGLOBL\t·libc_mkfifoat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mkfifoat_trampoline_addr(SB)/4, $libc_mkfifoat_trampoline<>(SB)\n\nTEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknod(SB)\nGLOBL\t·libc_mknod_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mknod_trampoline_addr(SB)/4, $libc_mknod_trampoline<>(SB)\n\nTEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknodat(SB)\nGLOBL\t·libc_mknodat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mknodat_trampoline_addr(SB)/4, $libc_mknodat_trampoline<>(SB)\n\nTEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mount(SB)\nGLOBL\t·libc_mount_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mount_trampoline_addr(SB)/4, $libc_mount_trampoline<>(SB)\n\nTEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_nanosleep(SB)\nGLOBL\t·libc_nanosleep_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_nanosleep_trampoline_addr(SB)/4, $libc_nanosleep_trampoline<>(SB)\n\nTEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_open(SB)\nGLOBL\t·libc_open_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_open_trampoline_addr(SB)/4, $libc_open_trampoline<>(SB)\n\nTEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_openat(SB)\nGLOBL\t·libc_openat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_openat_trampoline_addr(SB)/4, $libc_openat_trampoline<>(SB)\n\nTEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pathconf(SB)\nGLOBL\t·libc_pathconf_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_pathconf_trampoline_addr(SB)/4, $libc_pathconf_trampoline<>(SB)\n\nTEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pread(SB)\nGLOBL\t·libc_pread_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_pread_trampoline_addr(SB)/4, $libc_pread_trampoline<>(SB)\n\nTEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pwrite(SB)\nGLOBL\t·libc_pwrite_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_pwrite_trampoline_addr(SB)/4, $libc_pwrite_trampoline<>(SB)\n\nTEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_read(SB)\nGLOBL\t·libc_read_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_read_trampoline_addr(SB)/4, $libc_read_trampoline<>(SB)\n\nTEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlink(SB)\nGLOBL\t·libc_readlink_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_readlink_trampoline_addr(SB)/4, $libc_readlink_trampoline<>(SB)\n\nTEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlinkat(SB)\nGLOBL\t·libc_readlinkat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_readlinkat_trampoline_addr(SB)/4, $libc_readlinkat_trampoline<>(SB)\n\nTEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rename(SB)\nGLOBL\t·libc_rename_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_rename_trampoline_addr(SB)/4, $libc_rename_trampoline<>(SB)\n\nTEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_renameat(SB)\nGLOBL\t·libc_renameat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_renameat_trampoline_addr(SB)/4, $libc_renameat_trampoline<>(SB)\n\nTEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_revoke(SB)\nGLOBL\t·libc_revoke_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_revoke_trampoline_addr(SB)/4, $libc_revoke_trampoline<>(SB)\n\nTEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rmdir(SB)\nGLOBL\t·libc_rmdir_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_rmdir_trampoline_addr(SB)/4, $libc_rmdir_trampoline<>(SB)\n\nTEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lseek(SB)\nGLOBL\t·libc_lseek_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_lseek_trampoline_addr(SB)/4, $libc_lseek_trampoline<>(SB)\n\nTEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_select(SB)\nGLOBL\t·libc_select_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_select_trampoline_addr(SB)/4, $libc_select_trampoline<>(SB)\n\nTEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setegid(SB)\nGLOBL\t·libc_setegid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setegid_trampoline_addr(SB)/4, $libc_setegid_trampoline<>(SB)\n\nTEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_seteuid(SB)\nGLOBL\t·libc_seteuid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_seteuid_trampoline_addr(SB)/4, $libc_seteuid_trampoline<>(SB)\n\nTEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgid(SB)\nGLOBL\t·libc_setgid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setgid_trampoline_addr(SB)/4, $libc_setgid_trampoline<>(SB)\n\nTEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setlogin(SB)\nGLOBL\t·libc_setlogin_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setlogin_trampoline_addr(SB)/4, $libc_setlogin_trampoline<>(SB)\n\nTEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpgid(SB)\nGLOBL\t·libc_setpgid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setpgid_trampoline_addr(SB)/4, $libc_setpgid_trampoline<>(SB)\n\nTEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpriority(SB)\nGLOBL\t·libc_setpriority_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setpriority_trampoline_addr(SB)/4, $libc_setpriority_trampoline<>(SB)\n\nTEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setregid(SB)\nGLOBL\t·libc_setregid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setregid_trampoline_addr(SB)/4, $libc_setregid_trampoline<>(SB)\n\nTEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setreuid(SB)\nGLOBL\t·libc_setreuid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setreuid_trampoline_addr(SB)/4, $libc_setreuid_trampoline<>(SB)\n\nTEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setresgid(SB)\nGLOBL\t·libc_setresgid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setresgid_trampoline_addr(SB)/4, $libc_setresgid_trampoline<>(SB)\n\nTEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setresuid(SB)\nGLOBL\t·libc_setresuid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setresuid_trampoline_addr(SB)/4, $libc_setresuid_trampoline<>(SB)\n\nTEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setrtable(SB)\nGLOBL\t·libc_setrtable_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setrtable_trampoline_addr(SB)/4, $libc_setrtable_trampoline<>(SB)\n\nTEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsid(SB)\nGLOBL\t·libc_setsid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setsid_trampoline_addr(SB)/4, $libc_setsid_trampoline<>(SB)\n\nTEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_settimeofday(SB)\nGLOBL\t·libc_settimeofday_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_settimeofday_trampoline_addr(SB)/4, $libc_settimeofday_trampoline<>(SB)\n\nTEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setuid(SB)\nGLOBL\t·libc_setuid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setuid_trampoline_addr(SB)/4, $libc_setuid_trampoline<>(SB)\n\nTEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_stat(SB)\nGLOBL\t·libc_stat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_stat_trampoline_addr(SB)/4, $libc_stat_trampoline<>(SB)\n\nTEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_statfs(SB)\nGLOBL\t·libc_statfs_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_statfs_trampoline_addr(SB)/4, $libc_statfs_trampoline<>(SB)\n\nTEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlink(SB)\nGLOBL\t·libc_symlink_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_symlink_trampoline_addr(SB)/4, $libc_symlink_trampoline<>(SB)\n\nTEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlinkat(SB)\nGLOBL\t·libc_symlinkat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_symlinkat_trampoline_addr(SB)/4, $libc_symlinkat_trampoline<>(SB)\n\nTEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sync(SB)\nGLOBL\t·libc_sync_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_sync_trampoline_addr(SB)/4, $libc_sync_trampoline<>(SB)\n\nTEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_truncate(SB)\nGLOBL\t·libc_truncate_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_truncate_trampoline_addr(SB)/4, $libc_truncate_trampoline<>(SB)\n\nTEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_umask(SB)\nGLOBL\t·libc_umask_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_umask_trampoline_addr(SB)/4, $libc_umask_trampoline<>(SB)\n\nTEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlink(SB)\nGLOBL\t·libc_unlink_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_unlink_trampoline_addr(SB)/4, $libc_unlink_trampoline<>(SB)\n\nTEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlinkat(SB)\nGLOBL\t·libc_unlinkat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_unlinkat_trampoline_addr(SB)/4, $libc_unlinkat_trampoline<>(SB)\n\nTEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unmount(SB)\nGLOBL\t·libc_unmount_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_unmount_trampoline_addr(SB)/4, $libc_unmount_trampoline<>(SB)\n\nTEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_write(SB)\nGLOBL\t·libc_write_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_write_trampoline_addr(SB)/4, $libc_write_trampoline<>(SB)\n\nTEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mmap(SB)\nGLOBL\t·libc_mmap_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mmap_trampoline_addr(SB)/4, $libc_mmap_trampoline<>(SB)\n\nTEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munmap(SB)\nGLOBL\t·libc_munmap_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_munmap_trampoline_addr(SB)/4, $libc_munmap_trampoline<>(SB)\n\nTEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getfsstat(SB)\nGLOBL\t·libc_getfsstat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getfsstat_trampoline_addr(SB)/4, $libc_getfsstat_trampoline<>(SB)\n\nTEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimensat(SB)\nGLOBL\t·libc_utimensat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_utimensat_trampoline_addr(SB)/4, $libc_utimensat_trampoline<>(SB)\n\nTEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pledge(SB)\nGLOBL\t·libc_pledge_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_pledge_trampoline_addr(SB)/4, $libc_pledge_trampoline<>(SB)\n\nTEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unveil(SB)\nGLOBL\t·libc_unveil_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_unveil_trampoline_addr(SB)/4, $libc_unveil_trampoline<>(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go",
    "content": "// go run mksyscall.go -openbsd -libc -tags openbsd,amd64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_amd64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build openbsd && amd64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgroups getgroups \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgroups setgroups \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_wait4_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_wait4 wait4 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_accept_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_accept accept \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_bind_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_bind bind \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_connect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_connect connect \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socket_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socket socket \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockopt getsockopt \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsockopt setsockopt \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpeername_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpeername getpeername \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockname_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockname getsockname \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shutdown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shutdown shutdown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socketpair_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socketpair socketpair \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvfrom_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvfrom recvfrom \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendto_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendto sendto \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvmsg recvmsg \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendmsg sendmsg \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kevent_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kevent kevent \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimes utimes \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_futimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_futimes futimes \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_poll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_poll poll \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_madvise_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_madvise madvise \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlock mlock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlockall mlockall \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mprotect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mprotect mprotect \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_msync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_msync msync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlock munlock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlockall munlockall \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pipe2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pipe2 pipe2 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getdents_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getdents getdents \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getcwd_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getcwd getcwd \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) {\n\tsyscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid)))\n\treturn\n}\n\nvar libc_getresuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getresuid getresuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) {\n\tsyscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid)))\n\treturn\n}\n\nvar libc_getresgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getresgid getresgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ioctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ioctl ioctl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sysctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sysctl sysctl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fcntl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fcntl fcntl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ppoll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ppoll ppoll \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_access_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_access access \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_adjtime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_adjtime adjtime \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chdir chdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chflags chflags \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chmod chmod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chown chown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chroot_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chroot chroot \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_clock_gettime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_clock_gettime clock_gettime \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_close_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_close close \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup dup \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup2 dup2 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(from int, to int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup3_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup3 dup3 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tsyscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0)\n\treturn\n}\n\nvar libc_exit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_exit exit \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_faccessat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_faccessat faccessat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchdir fchdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchflags fchflags \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmod fchmod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmodat fchmodat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchown fchown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchownat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchownat fchownat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_flock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_flock flock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fpathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fpathconf fpathconf \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstat fstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatat fstatat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatfs fstatfs \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fsync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fsync fsync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ftruncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ftruncate ftruncate \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\nvar libc_getegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getegid getegid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_geteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_geteuid geteuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\nvar libc_getgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgid getgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgid getpgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\nvar libc_getpgrp_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgrp getpgrp \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\nvar libc_getpid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpid getpid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\nvar libc_getppid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getppid getppid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpriority getpriority \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrlimit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrlimit getrlimit \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrtable() (rtable int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0)\n\trtable = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrtable_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrtable getrtable \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrusage_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrusage getrusage \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsid getsid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_gettimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_gettimeofday gettimeofday \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_getuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getuid getuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\nvar libc_issetugid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_issetugid issetugid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kill_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kill kill \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kqueue_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kqueue kqueue \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lchown lchown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_link_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_link link \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_linkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_linkat linkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_listen_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_listen listen \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lstat lstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdir mkdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdirat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdirat mkdirat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifo_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifo mkfifo \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifoat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifoat mkfifoat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknod mknod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknodat mknodat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(fsType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(dir)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mount mount \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_nanosleep_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_nanosleep nanosleep \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_open_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_open open \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_openat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_openat openat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pathconf pathconf \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pread_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pread pread \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pwrite_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pwrite pwrite \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_read_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_read read \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlink readlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlinkat readlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rename_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rename rename \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_renameat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_renameat renameat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_revoke_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_revoke revoke \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rmdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rmdir rmdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence))\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lseek_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lseek lseek \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_select_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_select select \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setegid setegid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_seteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_seteuid seteuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgid setgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setlogin_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setlogin setlogin \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpgid setpgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpriority setpriority \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setregid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setregid setregid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setreuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setreuid setreuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setresgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setresgid setresgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setresuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setresuid setresuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrtable(rtable int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setrtable_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setrtable setrtable \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsid setsid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_settimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_settimeofday settimeofday \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setuid setuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_stat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_stat stat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_statfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_statfs statfs \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlink symlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlinkat symlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sync sync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_truncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_truncate truncate \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\nvar libc_umask_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_umask umask \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlink unlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlinkat unlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unmount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unmount unmount \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_write_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_write write \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mmap mmap \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munmap munmap \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getfsstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getfsstat getfsstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimensat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimensat utimensat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pledge(promises *byte, execpromises *byte) (err error) {\n\t_, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pledge_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pledge pledge \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc unveil(path *byte, flags *byte) (err error) {\n\t_, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unveil_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unveil unveil \"libc.so\"\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s",
    "content": "// go run mkasm.go openbsd amd64\n// Code generated by the command above; DO NOT EDIT.\n\n#include \"textflag.h\"\n\nTEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgroups(SB)\nGLOBL\t·libc_getgroups_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB)\n\nTEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgroups(SB)\nGLOBL\t·libc_setgroups_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB)\n\nTEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_wait4(SB)\nGLOBL\t·libc_wait4_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB)\n\nTEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_accept(SB)\nGLOBL\t·libc_accept_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB)\n\nTEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_bind(SB)\nGLOBL\t·libc_bind_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB)\n\nTEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_connect(SB)\nGLOBL\t·libc_connect_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB)\n\nTEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socket(SB)\nGLOBL\t·libc_socket_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB)\n\nTEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockopt(SB)\nGLOBL\t·libc_getsockopt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB)\n\nTEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsockopt(SB)\nGLOBL\t·libc_setsockopt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB)\n\nTEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpeername(SB)\nGLOBL\t·libc_getpeername_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB)\n\nTEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockname(SB)\nGLOBL\t·libc_getsockname_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB)\n\nTEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shutdown(SB)\nGLOBL\t·libc_shutdown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB)\n\nTEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socketpair(SB)\nGLOBL\t·libc_socketpair_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB)\n\nTEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvfrom(SB)\nGLOBL\t·libc_recvfrom_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB)\n\nTEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendto(SB)\nGLOBL\t·libc_sendto_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB)\n\nTEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvmsg(SB)\nGLOBL\t·libc_recvmsg_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB)\n\nTEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendmsg(SB)\nGLOBL\t·libc_sendmsg_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB)\n\nTEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kevent(SB)\nGLOBL\t·libc_kevent_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB)\n\nTEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimes(SB)\nGLOBL\t·libc_utimes_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB)\n\nTEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_futimes(SB)\nGLOBL\t·libc_futimes_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB)\n\nTEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_poll(SB)\nGLOBL\t·libc_poll_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB)\n\nTEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_madvise(SB)\nGLOBL\t·libc_madvise_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB)\n\nTEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlock(SB)\nGLOBL\t·libc_mlock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB)\n\nTEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlockall(SB)\nGLOBL\t·libc_mlockall_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB)\n\nTEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mprotect(SB)\nGLOBL\t·libc_mprotect_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB)\n\nTEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_msync(SB)\nGLOBL\t·libc_msync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB)\n\nTEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlock(SB)\nGLOBL\t·libc_munlock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB)\n\nTEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlockall(SB)\nGLOBL\t·libc_munlockall_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB)\n\nTEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pipe2(SB)\nGLOBL\t·libc_pipe2_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB)\n\nTEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getdents(SB)\nGLOBL\t·libc_getdents_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB)\n\nTEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getcwd(SB)\nGLOBL\t·libc_getcwd_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB)\n\nTEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getresuid(SB)\nGLOBL\t·libc_getresuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB)\n\nTEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getresgid(SB)\nGLOBL\t·libc_getresgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB)\n\nTEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ioctl(SB)\nGLOBL\t·libc_ioctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB)\n\nTEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sysctl(SB)\nGLOBL\t·libc_sysctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB)\n\nTEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fcntl(SB)\nGLOBL\t·libc_fcntl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB)\n\nTEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ppoll(SB)\nGLOBL\t·libc_ppoll_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB)\n\nTEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_access(SB)\nGLOBL\t·libc_access_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB)\n\nTEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_adjtime(SB)\nGLOBL\t·libc_adjtime_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB)\n\nTEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chdir(SB)\nGLOBL\t·libc_chdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB)\n\nTEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chflags(SB)\nGLOBL\t·libc_chflags_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB)\n\nTEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chmod(SB)\nGLOBL\t·libc_chmod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB)\n\nTEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chown(SB)\nGLOBL\t·libc_chown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB)\n\nTEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chroot(SB)\nGLOBL\t·libc_chroot_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB)\n\nTEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_clock_gettime(SB)\nGLOBL\t·libc_clock_gettime_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB)\n\nTEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_close(SB)\nGLOBL\t·libc_close_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB)\n\nTEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup(SB)\nGLOBL\t·libc_dup_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB)\n\nTEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup2(SB)\nGLOBL\t·libc_dup2_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB)\n\nTEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup3(SB)\nGLOBL\t·libc_dup3_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB)\n\nTEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_exit(SB)\nGLOBL\t·libc_exit_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB)\n\nTEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_faccessat(SB)\nGLOBL\t·libc_faccessat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB)\n\nTEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchdir(SB)\nGLOBL\t·libc_fchdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB)\n\nTEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchflags(SB)\nGLOBL\t·libc_fchflags_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB)\n\nTEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmod(SB)\nGLOBL\t·libc_fchmod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB)\n\nTEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmodat(SB)\nGLOBL\t·libc_fchmodat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB)\n\nTEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchown(SB)\nGLOBL\t·libc_fchown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB)\n\nTEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchownat(SB)\nGLOBL\t·libc_fchownat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB)\n\nTEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_flock(SB)\nGLOBL\t·libc_flock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB)\n\nTEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fpathconf(SB)\nGLOBL\t·libc_fpathconf_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB)\n\nTEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstat(SB)\nGLOBL\t·libc_fstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB)\n\nTEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatat(SB)\nGLOBL\t·libc_fstatat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB)\n\nTEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatfs(SB)\nGLOBL\t·libc_fstatfs_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB)\n\nTEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fsync(SB)\nGLOBL\t·libc_fsync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB)\n\nTEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ftruncate(SB)\nGLOBL\t·libc_ftruncate_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB)\n\nTEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getegid(SB)\nGLOBL\t·libc_getegid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB)\n\nTEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_geteuid(SB)\nGLOBL\t·libc_geteuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB)\n\nTEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgid(SB)\nGLOBL\t·libc_getgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB)\n\nTEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgid(SB)\nGLOBL\t·libc_getpgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB)\n\nTEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgrp(SB)\nGLOBL\t·libc_getpgrp_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB)\n\nTEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpid(SB)\nGLOBL\t·libc_getpid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB)\n\nTEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getppid(SB)\nGLOBL\t·libc_getppid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB)\n\nTEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpriority(SB)\nGLOBL\t·libc_getpriority_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB)\n\nTEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrlimit(SB)\nGLOBL\t·libc_getrlimit_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB)\n\nTEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrtable(SB)\nGLOBL\t·libc_getrtable_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB)\n\nTEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrusage(SB)\nGLOBL\t·libc_getrusage_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB)\n\nTEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsid(SB)\nGLOBL\t·libc_getsid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB)\n\nTEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_gettimeofday(SB)\nGLOBL\t·libc_gettimeofday_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB)\n\nTEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getuid(SB)\nGLOBL\t·libc_getuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB)\n\nTEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_issetugid(SB)\nGLOBL\t·libc_issetugid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB)\n\nTEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kill(SB)\nGLOBL\t·libc_kill_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB)\n\nTEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kqueue(SB)\nGLOBL\t·libc_kqueue_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB)\n\nTEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lchown(SB)\nGLOBL\t·libc_lchown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB)\n\nTEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_link(SB)\nGLOBL\t·libc_link_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB)\n\nTEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_linkat(SB)\nGLOBL\t·libc_linkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB)\n\nTEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_listen(SB)\nGLOBL\t·libc_listen_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB)\n\nTEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lstat(SB)\nGLOBL\t·libc_lstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB)\n\nTEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdir(SB)\nGLOBL\t·libc_mkdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB)\n\nTEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdirat(SB)\nGLOBL\t·libc_mkdirat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB)\n\nTEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifo(SB)\nGLOBL\t·libc_mkfifo_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB)\n\nTEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifoat(SB)\nGLOBL\t·libc_mkfifoat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB)\n\nTEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknod(SB)\nGLOBL\t·libc_mknod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB)\n\nTEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknodat(SB)\nGLOBL\t·libc_mknodat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB)\n\nTEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mount(SB)\nGLOBL\t·libc_mount_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB)\n\nTEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_nanosleep(SB)\nGLOBL\t·libc_nanosleep_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB)\n\nTEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_open(SB)\nGLOBL\t·libc_open_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB)\n\nTEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_openat(SB)\nGLOBL\t·libc_openat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB)\n\nTEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pathconf(SB)\nGLOBL\t·libc_pathconf_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB)\n\nTEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pread(SB)\nGLOBL\t·libc_pread_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB)\n\nTEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pwrite(SB)\nGLOBL\t·libc_pwrite_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB)\n\nTEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_read(SB)\nGLOBL\t·libc_read_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB)\n\nTEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlink(SB)\nGLOBL\t·libc_readlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB)\n\nTEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlinkat(SB)\nGLOBL\t·libc_readlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB)\n\nTEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rename(SB)\nGLOBL\t·libc_rename_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB)\n\nTEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_renameat(SB)\nGLOBL\t·libc_renameat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB)\n\nTEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_revoke(SB)\nGLOBL\t·libc_revoke_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB)\n\nTEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rmdir(SB)\nGLOBL\t·libc_rmdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB)\n\nTEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lseek(SB)\nGLOBL\t·libc_lseek_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB)\n\nTEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_select(SB)\nGLOBL\t·libc_select_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB)\n\nTEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setegid(SB)\nGLOBL\t·libc_setegid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB)\n\nTEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_seteuid(SB)\nGLOBL\t·libc_seteuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB)\n\nTEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgid(SB)\nGLOBL\t·libc_setgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB)\n\nTEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setlogin(SB)\nGLOBL\t·libc_setlogin_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB)\n\nTEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpgid(SB)\nGLOBL\t·libc_setpgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB)\n\nTEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpriority(SB)\nGLOBL\t·libc_setpriority_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB)\n\nTEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setregid(SB)\nGLOBL\t·libc_setregid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB)\n\nTEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setreuid(SB)\nGLOBL\t·libc_setreuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB)\n\nTEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setresgid(SB)\nGLOBL\t·libc_setresgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB)\n\nTEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setresuid(SB)\nGLOBL\t·libc_setresuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB)\n\nTEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setrtable(SB)\nGLOBL\t·libc_setrtable_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB)\n\nTEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsid(SB)\nGLOBL\t·libc_setsid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB)\n\nTEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_settimeofday(SB)\nGLOBL\t·libc_settimeofday_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB)\n\nTEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setuid(SB)\nGLOBL\t·libc_setuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB)\n\nTEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_stat(SB)\nGLOBL\t·libc_stat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB)\n\nTEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_statfs(SB)\nGLOBL\t·libc_statfs_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB)\n\nTEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlink(SB)\nGLOBL\t·libc_symlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB)\n\nTEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlinkat(SB)\nGLOBL\t·libc_symlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB)\n\nTEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sync(SB)\nGLOBL\t·libc_sync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB)\n\nTEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_truncate(SB)\nGLOBL\t·libc_truncate_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB)\n\nTEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_umask(SB)\nGLOBL\t·libc_umask_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB)\n\nTEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlink(SB)\nGLOBL\t·libc_unlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB)\n\nTEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlinkat(SB)\nGLOBL\t·libc_unlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB)\n\nTEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unmount(SB)\nGLOBL\t·libc_unmount_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB)\n\nTEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_write(SB)\nGLOBL\t·libc_write_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB)\n\nTEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mmap(SB)\nGLOBL\t·libc_mmap_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB)\n\nTEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munmap(SB)\nGLOBL\t·libc_munmap_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB)\n\nTEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getfsstat(SB)\nGLOBL\t·libc_getfsstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB)\n\nTEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimensat(SB)\nGLOBL\t·libc_utimensat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB)\n\nTEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pledge(SB)\nGLOBL\t·libc_pledge_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pledge_trampoline_addr(SB)/8, $libc_pledge_trampoline<>(SB)\n\nTEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unveil(SB)\nGLOBL\t·libc_unveil_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unveil_trampoline_addr(SB)/8, $libc_unveil_trampoline<>(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go",
    "content": "// go run mksyscall.go -l32 -openbsd -arm -libc -tags openbsd,arm syscall_bsd.go syscall_openbsd.go syscall_openbsd_arm.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build openbsd && arm\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgroups getgroups \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgroups setgroups \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_wait4_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_wait4 wait4 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_accept_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_accept accept \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_bind_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_bind bind \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_connect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_connect connect \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socket_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socket socket \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockopt getsockopt \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsockopt setsockopt \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpeername_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpeername getpeername \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockname_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockname getsockname \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shutdown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shutdown shutdown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socketpair_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socketpair socketpair \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvfrom_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvfrom recvfrom \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendto_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendto sendto \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvmsg recvmsg \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendmsg sendmsg \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kevent_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kevent kevent \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimes utimes \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_futimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_futimes futimes \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_poll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_poll poll \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_madvise_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_madvise madvise \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlock mlock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlockall mlockall \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mprotect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mprotect mprotect \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_msync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_msync msync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlock munlock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlockall munlockall \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pipe2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pipe2 pipe2 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getdents_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getdents getdents \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getcwd_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getcwd getcwd \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) {\n\tsyscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid)))\n\treturn\n}\n\nvar libc_getresuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getresuid getresuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) {\n\tsyscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid)))\n\treturn\n}\n\nvar libc_getresgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getresgid getresgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ioctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ioctl ioctl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sysctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sysctl sysctl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fcntl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fcntl fcntl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ppoll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ppoll ppoll \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_access_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_access access \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_adjtime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_adjtime adjtime \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chdir chdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chflags chflags \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chmod chmod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chown chown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chroot_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chroot chroot \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_clock_gettime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_clock_gettime clock_gettime \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_close_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_close close \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup dup \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup2 dup2 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(from int, to int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup3_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup3 dup3 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tsyscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0)\n\treturn\n}\n\nvar libc_exit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_exit exit \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_faccessat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_faccessat faccessat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchdir fchdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchflags fchflags \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmod fchmod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmodat fchmodat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchown fchown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchownat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchownat fchownat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_flock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_flock flock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fpathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fpathconf fpathconf \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstat fstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatat fstatat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatfs fstatfs \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fsync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fsync fsync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_ftruncate_trampoline_addr, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ftruncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ftruncate ftruncate \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\nvar libc_getegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getegid getegid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_geteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_geteuid geteuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\nvar libc_getgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgid getgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgid getpgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\nvar libc_getpgrp_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgrp getpgrp \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\nvar libc_getpid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpid getpid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\nvar libc_getppid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getppid getppid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpriority getpriority \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrlimit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrlimit getrlimit \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrtable() (rtable int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0)\n\trtable = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrtable_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrtable getrtable \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrusage_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrusage getrusage \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsid getsid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_gettimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_gettimeofday gettimeofday \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_getuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getuid getuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\nvar libc_issetugid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_issetugid issetugid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kill_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kill kill \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kqueue_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kqueue kqueue \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lchown lchown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_link_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_link link \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_linkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_linkat linkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_listen_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_listen listen \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lstat lstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdir mkdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdirat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdirat mkdirat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifo_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifo mkfifo \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifoat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifoat mkfifoat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknod mknod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknodat mknodat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(fsType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(dir)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mount mount \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_nanosleep_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_nanosleep nanosleep \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_open_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_open open \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_openat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_openat openat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pathconf pathconf \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pread_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pread pread \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pwrite_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pwrite pwrite \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_read_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_read read \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlink readlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlinkat readlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rename_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rename rename \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_renameat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_renameat renameat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_revoke_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_revoke revoke \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rmdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rmdir rmdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, r1, e1 := syscall_syscall6(libc_lseek_trampoline_addr, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0)\n\tnewoffset = int64(int64(r1)<<32 | int64(r0))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lseek_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lseek lseek \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_select_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_select select \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setegid setegid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_seteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_seteuid seteuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgid setgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setlogin_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setlogin setlogin \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpgid setpgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpriority setpriority \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setregid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setregid setregid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setreuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setreuid setreuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setresgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setresgid setresgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setresuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setresuid setresuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrtable(rtable int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setrtable_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setrtable setrtable \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsid setsid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_settimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_settimeofday settimeofday \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setuid setuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_stat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_stat stat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_statfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_statfs statfs \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlink symlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlinkat symlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sync sync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_truncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_truncate truncate \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\nvar libc_umask_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_umask umask \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlink unlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlinkat unlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unmount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unmount unmount \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_write_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_write write \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := syscall_syscall9(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0)\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mmap mmap \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munmap munmap \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getfsstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getfsstat getfsstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimensat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimensat utimensat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pledge(promises *byte, execpromises *byte) (err error) {\n\t_, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pledge_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pledge pledge \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc unveil(path *byte, flags *byte) (err error) {\n\t_, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unveil_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unveil unveil \"libc.so\"\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s",
    "content": "// go run mkasm.go openbsd arm\n// Code generated by the command above; DO NOT EDIT.\n\n#include \"textflag.h\"\n\nTEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgroups(SB)\nGLOBL\t·libc_getgroups_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getgroups_trampoline_addr(SB)/4, $libc_getgroups_trampoline<>(SB)\n\nTEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgroups(SB)\nGLOBL\t·libc_setgroups_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setgroups_trampoline_addr(SB)/4, $libc_setgroups_trampoline<>(SB)\n\nTEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_wait4(SB)\nGLOBL\t·libc_wait4_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_wait4_trampoline_addr(SB)/4, $libc_wait4_trampoline<>(SB)\n\nTEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_accept(SB)\nGLOBL\t·libc_accept_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_accept_trampoline_addr(SB)/4, $libc_accept_trampoline<>(SB)\n\nTEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_bind(SB)\nGLOBL\t·libc_bind_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_bind_trampoline_addr(SB)/4, $libc_bind_trampoline<>(SB)\n\nTEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_connect(SB)\nGLOBL\t·libc_connect_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_connect_trampoline_addr(SB)/4, $libc_connect_trampoline<>(SB)\n\nTEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socket(SB)\nGLOBL\t·libc_socket_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_socket_trampoline_addr(SB)/4, $libc_socket_trampoline<>(SB)\n\nTEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockopt(SB)\nGLOBL\t·libc_getsockopt_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getsockopt_trampoline_addr(SB)/4, $libc_getsockopt_trampoline<>(SB)\n\nTEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsockopt(SB)\nGLOBL\t·libc_setsockopt_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setsockopt_trampoline_addr(SB)/4, $libc_setsockopt_trampoline<>(SB)\n\nTEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpeername(SB)\nGLOBL\t·libc_getpeername_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getpeername_trampoline_addr(SB)/4, $libc_getpeername_trampoline<>(SB)\n\nTEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockname(SB)\nGLOBL\t·libc_getsockname_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getsockname_trampoline_addr(SB)/4, $libc_getsockname_trampoline<>(SB)\n\nTEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shutdown(SB)\nGLOBL\t·libc_shutdown_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_shutdown_trampoline_addr(SB)/4, $libc_shutdown_trampoline<>(SB)\n\nTEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socketpair(SB)\nGLOBL\t·libc_socketpair_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_socketpair_trampoline_addr(SB)/4, $libc_socketpair_trampoline<>(SB)\n\nTEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvfrom(SB)\nGLOBL\t·libc_recvfrom_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_recvfrom_trampoline_addr(SB)/4, $libc_recvfrom_trampoline<>(SB)\n\nTEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendto(SB)\nGLOBL\t·libc_sendto_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_sendto_trampoline_addr(SB)/4, $libc_sendto_trampoline<>(SB)\n\nTEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvmsg(SB)\nGLOBL\t·libc_recvmsg_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_recvmsg_trampoline_addr(SB)/4, $libc_recvmsg_trampoline<>(SB)\n\nTEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendmsg(SB)\nGLOBL\t·libc_sendmsg_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_sendmsg_trampoline_addr(SB)/4, $libc_sendmsg_trampoline<>(SB)\n\nTEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kevent(SB)\nGLOBL\t·libc_kevent_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_kevent_trampoline_addr(SB)/4, $libc_kevent_trampoline<>(SB)\n\nTEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimes(SB)\nGLOBL\t·libc_utimes_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_utimes_trampoline_addr(SB)/4, $libc_utimes_trampoline<>(SB)\n\nTEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_futimes(SB)\nGLOBL\t·libc_futimes_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_futimes_trampoline_addr(SB)/4, $libc_futimes_trampoline<>(SB)\n\nTEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_poll(SB)\nGLOBL\t·libc_poll_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_poll_trampoline_addr(SB)/4, $libc_poll_trampoline<>(SB)\n\nTEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_madvise(SB)\nGLOBL\t·libc_madvise_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_madvise_trampoline_addr(SB)/4, $libc_madvise_trampoline<>(SB)\n\nTEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlock(SB)\nGLOBL\t·libc_mlock_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mlock_trampoline_addr(SB)/4, $libc_mlock_trampoline<>(SB)\n\nTEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlockall(SB)\nGLOBL\t·libc_mlockall_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mlockall_trampoline_addr(SB)/4, $libc_mlockall_trampoline<>(SB)\n\nTEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mprotect(SB)\nGLOBL\t·libc_mprotect_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mprotect_trampoline_addr(SB)/4, $libc_mprotect_trampoline<>(SB)\n\nTEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_msync(SB)\nGLOBL\t·libc_msync_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_msync_trampoline_addr(SB)/4, $libc_msync_trampoline<>(SB)\n\nTEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlock(SB)\nGLOBL\t·libc_munlock_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_munlock_trampoline_addr(SB)/4, $libc_munlock_trampoline<>(SB)\n\nTEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlockall(SB)\nGLOBL\t·libc_munlockall_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_munlockall_trampoline_addr(SB)/4, $libc_munlockall_trampoline<>(SB)\n\nTEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pipe2(SB)\nGLOBL\t·libc_pipe2_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_pipe2_trampoline_addr(SB)/4, $libc_pipe2_trampoline<>(SB)\n\nTEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getdents(SB)\nGLOBL\t·libc_getdents_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getdents_trampoline_addr(SB)/4, $libc_getdents_trampoline<>(SB)\n\nTEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getcwd(SB)\nGLOBL\t·libc_getcwd_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getcwd_trampoline_addr(SB)/4, $libc_getcwd_trampoline<>(SB)\n\nTEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getresuid(SB)\nGLOBL\t·libc_getresuid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getresuid_trampoline_addr(SB)/4, $libc_getresuid_trampoline<>(SB)\n\nTEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getresgid(SB)\nGLOBL\t·libc_getresgid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getresgid_trampoline_addr(SB)/4, $libc_getresgid_trampoline<>(SB)\n\nTEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ioctl(SB)\nGLOBL\t·libc_ioctl_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_ioctl_trampoline_addr(SB)/4, $libc_ioctl_trampoline<>(SB)\n\nTEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sysctl(SB)\nGLOBL\t·libc_sysctl_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_sysctl_trampoline_addr(SB)/4, $libc_sysctl_trampoline<>(SB)\n\nTEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fcntl(SB)\nGLOBL\t·libc_fcntl_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fcntl_trampoline_addr(SB)/4, $libc_fcntl_trampoline<>(SB)\n\nTEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ppoll(SB)\nGLOBL\t·libc_ppoll_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_ppoll_trampoline_addr(SB)/4, $libc_ppoll_trampoline<>(SB)\n\nTEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_access(SB)\nGLOBL\t·libc_access_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_access_trampoline_addr(SB)/4, $libc_access_trampoline<>(SB)\n\nTEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_adjtime(SB)\nGLOBL\t·libc_adjtime_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_adjtime_trampoline_addr(SB)/4, $libc_adjtime_trampoline<>(SB)\n\nTEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chdir(SB)\nGLOBL\t·libc_chdir_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_chdir_trampoline_addr(SB)/4, $libc_chdir_trampoline<>(SB)\n\nTEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chflags(SB)\nGLOBL\t·libc_chflags_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_chflags_trampoline_addr(SB)/4, $libc_chflags_trampoline<>(SB)\n\nTEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chmod(SB)\nGLOBL\t·libc_chmod_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_chmod_trampoline_addr(SB)/4, $libc_chmod_trampoline<>(SB)\n\nTEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chown(SB)\nGLOBL\t·libc_chown_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_chown_trampoline_addr(SB)/4, $libc_chown_trampoline<>(SB)\n\nTEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chroot(SB)\nGLOBL\t·libc_chroot_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_chroot_trampoline_addr(SB)/4, $libc_chroot_trampoline<>(SB)\n\nTEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_clock_gettime(SB)\nGLOBL\t·libc_clock_gettime_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_clock_gettime_trampoline_addr(SB)/4, $libc_clock_gettime_trampoline<>(SB)\n\nTEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_close(SB)\nGLOBL\t·libc_close_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_close_trampoline_addr(SB)/4, $libc_close_trampoline<>(SB)\n\nTEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup(SB)\nGLOBL\t·libc_dup_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_dup_trampoline_addr(SB)/4, $libc_dup_trampoline<>(SB)\n\nTEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup2(SB)\nGLOBL\t·libc_dup2_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_dup2_trampoline_addr(SB)/4, $libc_dup2_trampoline<>(SB)\n\nTEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup3(SB)\nGLOBL\t·libc_dup3_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_dup3_trampoline_addr(SB)/4, $libc_dup3_trampoline<>(SB)\n\nTEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_exit(SB)\nGLOBL\t·libc_exit_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_exit_trampoline_addr(SB)/4, $libc_exit_trampoline<>(SB)\n\nTEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_faccessat(SB)\nGLOBL\t·libc_faccessat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_faccessat_trampoline_addr(SB)/4, $libc_faccessat_trampoline<>(SB)\n\nTEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchdir(SB)\nGLOBL\t·libc_fchdir_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fchdir_trampoline_addr(SB)/4, $libc_fchdir_trampoline<>(SB)\n\nTEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchflags(SB)\nGLOBL\t·libc_fchflags_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fchflags_trampoline_addr(SB)/4, $libc_fchflags_trampoline<>(SB)\n\nTEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmod(SB)\nGLOBL\t·libc_fchmod_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fchmod_trampoline_addr(SB)/4, $libc_fchmod_trampoline<>(SB)\n\nTEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmodat(SB)\nGLOBL\t·libc_fchmodat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fchmodat_trampoline_addr(SB)/4, $libc_fchmodat_trampoline<>(SB)\n\nTEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchown(SB)\nGLOBL\t·libc_fchown_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fchown_trampoline_addr(SB)/4, $libc_fchown_trampoline<>(SB)\n\nTEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchownat(SB)\nGLOBL\t·libc_fchownat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fchownat_trampoline_addr(SB)/4, $libc_fchownat_trampoline<>(SB)\n\nTEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_flock(SB)\nGLOBL\t·libc_flock_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_flock_trampoline_addr(SB)/4, $libc_flock_trampoline<>(SB)\n\nTEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fpathconf(SB)\nGLOBL\t·libc_fpathconf_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fpathconf_trampoline_addr(SB)/4, $libc_fpathconf_trampoline<>(SB)\n\nTEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstat(SB)\nGLOBL\t·libc_fstat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fstat_trampoline_addr(SB)/4, $libc_fstat_trampoline<>(SB)\n\nTEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatat(SB)\nGLOBL\t·libc_fstatat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fstatat_trampoline_addr(SB)/4, $libc_fstatat_trampoline<>(SB)\n\nTEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatfs(SB)\nGLOBL\t·libc_fstatfs_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fstatfs_trampoline_addr(SB)/4, $libc_fstatfs_trampoline<>(SB)\n\nTEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fsync(SB)\nGLOBL\t·libc_fsync_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_fsync_trampoline_addr(SB)/4, $libc_fsync_trampoline<>(SB)\n\nTEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ftruncate(SB)\nGLOBL\t·libc_ftruncate_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_ftruncate_trampoline_addr(SB)/4, $libc_ftruncate_trampoline<>(SB)\n\nTEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getegid(SB)\nGLOBL\t·libc_getegid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getegid_trampoline_addr(SB)/4, $libc_getegid_trampoline<>(SB)\n\nTEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_geteuid(SB)\nGLOBL\t·libc_geteuid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_geteuid_trampoline_addr(SB)/4, $libc_geteuid_trampoline<>(SB)\n\nTEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgid(SB)\nGLOBL\t·libc_getgid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getgid_trampoline_addr(SB)/4, $libc_getgid_trampoline<>(SB)\n\nTEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgid(SB)\nGLOBL\t·libc_getpgid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getpgid_trampoline_addr(SB)/4, $libc_getpgid_trampoline<>(SB)\n\nTEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgrp(SB)\nGLOBL\t·libc_getpgrp_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getpgrp_trampoline_addr(SB)/4, $libc_getpgrp_trampoline<>(SB)\n\nTEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpid(SB)\nGLOBL\t·libc_getpid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getpid_trampoline_addr(SB)/4, $libc_getpid_trampoline<>(SB)\n\nTEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getppid(SB)\nGLOBL\t·libc_getppid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getppid_trampoline_addr(SB)/4, $libc_getppid_trampoline<>(SB)\n\nTEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpriority(SB)\nGLOBL\t·libc_getpriority_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getpriority_trampoline_addr(SB)/4, $libc_getpriority_trampoline<>(SB)\n\nTEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrlimit(SB)\nGLOBL\t·libc_getrlimit_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getrlimit_trampoline_addr(SB)/4, $libc_getrlimit_trampoline<>(SB)\n\nTEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrtable(SB)\nGLOBL\t·libc_getrtable_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getrtable_trampoline_addr(SB)/4, $libc_getrtable_trampoline<>(SB)\n\nTEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrusage(SB)\nGLOBL\t·libc_getrusage_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getrusage_trampoline_addr(SB)/4, $libc_getrusage_trampoline<>(SB)\n\nTEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsid(SB)\nGLOBL\t·libc_getsid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getsid_trampoline_addr(SB)/4, $libc_getsid_trampoline<>(SB)\n\nTEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_gettimeofday(SB)\nGLOBL\t·libc_gettimeofday_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_gettimeofday_trampoline_addr(SB)/4, $libc_gettimeofday_trampoline<>(SB)\n\nTEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getuid(SB)\nGLOBL\t·libc_getuid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getuid_trampoline_addr(SB)/4, $libc_getuid_trampoline<>(SB)\n\nTEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_issetugid(SB)\nGLOBL\t·libc_issetugid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_issetugid_trampoline_addr(SB)/4, $libc_issetugid_trampoline<>(SB)\n\nTEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kill(SB)\nGLOBL\t·libc_kill_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_kill_trampoline_addr(SB)/4, $libc_kill_trampoline<>(SB)\n\nTEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kqueue(SB)\nGLOBL\t·libc_kqueue_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_kqueue_trampoline_addr(SB)/4, $libc_kqueue_trampoline<>(SB)\n\nTEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lchown(SB)\nGLOBL\t·libc_lchown_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_lchown_trampoline_addr(SB)/4, $libc_lchown_trampoline<>(SB)\n\nTEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_link(SB)\nGLOBL\t·libc_link_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_link_trampoline_addr(SB)/4, $libc_link_trampoline<>(SB)\n\nTEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_linkat(SB)\nGLOBL\t·libc_linkat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_linkat_trampoline_addr(SB)/4, $libc_linkat_trampoline<>(SB)\n\nTEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_listen(SB)\nGLOBL\t·libc_listen_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_listen_trampoline_addr(SB)/4, $libc_listen_trampoline<>(SB)\n\nTEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lstat(SB)\nGLOBL\t·libc_lstat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_lstat_trampoline_addr(SB)/4, $libc_lstat_trampoline<>(SB)\n\nTEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdir(SB)\nGLOBL\t·libc_mkdir_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mkdir_trampoline_addr(SB)/4, $libc_mkdir_trampoline<>(SB)\n\nTEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdirat(SB)\nGLOBL\t·libc_mkdirat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mkdirat_trampoline_addr(SB)/4, $libc_mkdirat_trampoline<>(SB)\n\nTEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifo(SB)\nGLOBL\t·libc_mkfifo_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mkfifo_trampoline_addr(SB)/4, $libc_mkfifo_trampoline<>(SB)\n\nTEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifoat(SB)\nGLOBL\t·libc_mkfifoat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mkfifoat_trampoline_addr(SB)/4, $libc_mkfifoat_trampoline<>(SB)\n\nTEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknod(SB)\nGLOBL\t·libc_mknod_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mknod_trampoline_addr(SB)/4, $libc_mknod_trampoline<>(SB)\n\nTEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknodat(SB)\nGLOBL\t·libc_mknodat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mknodat_trampoline_addr(SB)/4, $libc_mknodat_trampoline<>(SB)\n\nTEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mount(SB)\nGLOBL\t·libc_mount_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mount_trampoline_addr(SB)/4, $libc_mount_trampoline<>(SB)\n\nTEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_nanosleep(SB)\nGLOBL\t·libc_nanosleep_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_nanosleep_trampoline_addr(SB)/4, $libc_nanosleep_trampoline<>(SB)\n\nTEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_open(SB)\nGLOBL\t·libc_open_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_open_trampoline_addr(SB)/4, $libc_open_trampoline<>(SB)\n\nTEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_openat(SB)\nGLOBL\t·libc_openat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_openat_trampoline_addr(SB)/4, $libc_openat_trampoline<>(SB)\n\nTEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pathconf(SB)\nGLOBL\t·libc_pathconf_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_pathconf_trampoline_addr(SB)/4, $libc_pathconf_trampoline<>(SB)\n\nTEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pread(SB)\nGLOBL\t·libc_pread_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_pread_trampoline_addr(SB)/4, $libc_pread_trampoline<>(SB)\n\nTEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pwrite(SB)\nGLOBL\t·libc_pwrite_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_pwrite_trampoline_addr(SB)/4, $libc_pwrite_trampoline<>(SB)\n\nTEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_read(SB)\nGLOBL\t·libc_read_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_read_trampoline_addr(SB)/4, $libc_read_trampoline<>(SB)\n\nTEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlink(SB)\nGLOBL\t·libc_readlink_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_readlink_trampoline_addr(SB)/4, $libc_readlink_trampoline<>(SB)\n\nTEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlinkat(SB)\nGLOBL\t·libc_readlinkat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_readlinkat_trampoline_addr(SB)/4, $libc_readlinkat_trampoline<>(SB)\n\nTEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rename(SB)\nGLOBL\t·libc_rename_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_rename_trampoline_addr(SB)/4, $libc_rename_trampoline<>(SB)\n\nTEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_renameat(SB)\nGLOBL\t·libc_renameat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_renameat_trampoline_addr(SB)/4, $libc_renameat_trampoline<>(SB)\n\nTEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_revoke(SB)\nGLOBL\t·libc_revoke_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_revoke_trampoline_addr(SB)/4, $libc_revoke_trampoline<>(SB)\n\nTEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rmdir(SB)\nGLOBL\t·libc_rmdir_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_rmdir_trampoline_addr(SB)/4, $libc_rmdir_trampoline<>(SB)\n\nTEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lseek(SB)\nGLOBL\t·libc_lseek_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_lseek_trampoline_addr(SB)/4, $libc_lseek_trampoline<>(SB)\n\nTEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_select(SB)\nGLOBL\t·libc_select_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_select_trampoline_addr(SB)/4, $libc_select_trampoline<>(SB)\n\nTEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setegid(SB)\nGLOBL\t·libc_setegid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setegid_trampoline_addr(SB)/4, $libc_setegid_trampoline<>(SB)\n\nTEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_seteuid(SB)\nGLOBL\t·libc_seteuid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_seteuid_trampoline_addr(SB)/4, $libc_seteuid_trampoline<>(SB)\n\nTEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgid(SB)\nGLOBL\t·libc_setgid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setgid_trampoline_addr(SB)/4, $libc_setgid_trampoline<>(SB)\n\nTEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setlogin(SB)\nGLOBL\t·libc_setlogin_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setlogin_trampoline_addr(SB)/4, $libc_setlogin_trampoline<>(SB)\n\nTEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpgid(SB)\nGLOBL\t·libc_setpgid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setpgid_trampoline_addr(SB)/4, $libc_setpgid_trampoline<>(SB)\n\nTEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpriority(SB)\nGLOBL\t·libc_setpriority_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setpriority_trampoline_addr(SB)/4, $libc_setpriority_trampoline<>(SB)\n\nTEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setregid(SB)\nGLOBL\t·libc_setregid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setregid_trampoline_addr(SB)/4, $libc_setregid_trampoline<>(SB)\n\nTEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setreuid(SB)\nGLOBL\t·libc_setreuid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setreuid_trampoline_addr(SB)/4, $libc_setreuid_trampoline<>(SB)\n\nTEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setresgid(SB)\nGLOBL\t·libc_setresgid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setresgid_trampoline_addr(SB)/4, $libc_setresgid_trampoline<>(SB)\n\nTEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setresuid(SB)\nGLOBL\t·libc_setresuid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setresuid_trampoline_addr(SB)/4, $libc_setresuid_trampoline<>(SB)\n\nTEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setrtable(SB)\nGLOBL\t·libc_setrtable_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setrtable_trampoline_addr(SB)/4, $libc_setrtable_trampoline<>(SB)\n\nTEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsid(SB)\nGLOBL\t·libc_setsid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setsid_trampoline_addr(SB)/4, $libc_setsid_trampoline<>(SB)\n\nTEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_settimeofday(SB)\nGLOBL\t·libc_settimeofday_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_settimeofday_trampoline_addr(SB)/4, $libc_settimeofday_trampoline<>(SB)\n\nTEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setuid(SB)\nGLOBL\t·libc_setuid_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_setuid_trampoline_addr(SB)/4, $libc_setuid_trampoline<>(SB)\n\nTEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_stat(SB)\nGLOBL\t·libc_stat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_stat_trampoline_addr(SB)/4, $libc_stat_trampoline<>(SB)\n\nTEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_statfs(SB)\nGLOBL\t·libc_statfs_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_statfs_trampoline_addr(SB)/4, $libc_statfs_trampoline<>(SB)\n\nTEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlink(SB)\nGLOBL\t·libc_symlink_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_symlink_trampoline_addr(SB)/4, $libc_symlink_trampoline<>(SB)\n\nTEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlinkat(SB)\nGLOBL\t·libc_symlinkat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_symlinkat_trampoline_addr(SB)/4, $libc_symlinkat_trampoline<>(SB)\n\nTEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sync(SB)\nGLOBL\t·libc_sync_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_sync_trampoline_addr(SB)/4, $libc_sync_trampoline<>(SB)\n\nTEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_truncate(SB)\nGLOBL\t·libc_truncate_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_truncate_trampoline_addr(SB)/4, $libc_truncate_trampoline<>(SB)\n\nTEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_umask(SB)\nGLOBL\t·libc_umask_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_umask_trampoline_addr(SB)/4, $libc_umask_trampoline<>(SB)\n\nTEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlink(SB)\nGLOBL\t·libc_unlink_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_unlink_trampoline_addr(SB)/4, $libc_unlink_trampoline<>(SB)\n\nTEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlinkat(SB)\nGLOBL\t·libc_unlinkat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_unlinkat_trampoline_addr(SB)/4, $libc_unlinkat_trampoline<>(SB)\n\nTEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unmount(SB)\nGLOBL\t·libc_unmount_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_unmount_trampoline_addr(SB)/4, $libc_unmount_trampoline<>(SB)\n\nTEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_write(SB)\nGLOBL\t·libc_write_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_write_trampoline_addr(SB)/4, $libc_write_trampoline<>(SB)\n\nTEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mmap(SB)\nGLOBL\t·libc_mmap_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_mmap_trampoline_addr(SB)/4, $libc_mmap_trampoline<>(SB)\n\nTEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munmap(SB)\nGLOBL\t·libc_munmap_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_munmap_trampoline_addr(SB)/4, $libc_munmap_trampoline<>(SB)\n\nTEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getfsstat(SB)\nGLOBL\t·libc_getfsstat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_getfsstat_trampoline_addr(SB)/4, $libc_getfsstat_trampoline<>(SB)\n\nTEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimensat(SB)\nGLOBL\t·libc_utimensat_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_utimensat_trampoline_addr(SB)/4, $libc_utimensat_trampoline<>(SB)\n\nTEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pledge(SB)\nGLOBL\t·libc_pledge_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_pledge_trampoline_addr(SB)/4, $libc_pledge_trampoline<>(SB)\n\nTEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unveil(SB)\nGLOBL\t·libc_unveil_trampoline_addr(SB), RODATA, $4\nDATA\t·libc_unveil_trampoline_addr(SB)/4, $libc_unveil_trampoline<>(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go",
    "content": "// go run mksyscall.go -openbsd -libc -tags openbsd,arm64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_arm64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build openbsd && arm64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgroups getgroups \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgroups setgroups \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_wait4_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_wait4 wait4 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_accept_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_accept accept \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_bind_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_bind bind \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_connect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_connect connect \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socket_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socket socket \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockopt getsockopt \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsockopt setsockopt \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpeername_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpeername getpeername \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockname_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockname getsockname \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shutdown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shutdown shutdown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socketpair_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socketpair socketpair \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvfrom_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvfrom recvfrom \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendto_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendto sendto \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvmsg recvmsg \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendmsg sendmsg \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kevent_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kevent kevent \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimes utimes \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_futimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_futimes futimes \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_poll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_poll poll \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_madvise_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_madvise madvise \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlock mlock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlockall mlockall \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mprotect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mprotect mprotect \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_msync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_msync msync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlock munlock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlockall munlockall \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pipe2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pipe2 pipe2 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getdents_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getdents getdents \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getcwd_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getcwd getcwd \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) {\n\tsyscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid)))\n\treturn\n}\n\nvar libc_getresuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getresuid getresuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) {\n\tsyscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid)))\n\treturn\n}\n\nvar libc_getresgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getresgid getresgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ioctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ioctl ioctl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sysctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sysctl sysctl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fcntl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fcntl fcntl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ppoll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ppoll ppoll \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_access_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_access access \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_adjtime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_adjtime adjtime \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chdir chdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chflags chflags \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chmod chmod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chown chown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chroot_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chroot chroot \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_clock_gettime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_clock_gettime clock_gettime \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_close_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_close close \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup dup \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup2 dup2 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(from int, to int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup3_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup3 dup3 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tsyscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0)\n\treturn\n}\n\nvar libc_exit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_exit exit \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_faccessat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_faccessat faccessat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchdir fchdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchflags fchflags \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmod fchmod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmodat fchmodat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchown fchown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchownat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchownat fchownat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_flock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_flock flock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fpathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fpathconf fpathconf \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstat fstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatat fstatat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatfs fstatfs \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fsync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fsync fsync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ftruncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ftruncate ftruncate \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\nvar libc_getegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getegid getegid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_geteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_geteuid geteuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\nvar libc_getgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgid getgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgid getpgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\nvar libc_getpgrp_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgrp getpgrp \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\nvar libc_getpid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpid getpid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\nvar libc_getppid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getppid getppid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpriority getpriority \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrlimit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrlimit getrlimit \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrtable() (rtable int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0)\n\trtable = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrtable_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrtable getrtable \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrusage_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrusage getrusage \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsid getsid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_gettimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_gettimeofday gettimeofday \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_getuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getuid getuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\nvar libc_issetugid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_issetugid issetugid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kill_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kill kill \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kqueue_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kqueue kqueue \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lchown lchown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_link_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_link link \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_linkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_linkat linkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_listen_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_listen listen \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lstat lstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdir mkdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdirat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdirat mkdirat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifo_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifo mkfifo \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifoat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifoat mkfifoat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknod mknod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknodat mknodat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(fsType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(dir)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mount mount \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_nanosleep_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_nanosleep nanosleep \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_open_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_open open \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_openat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_openat openat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pathconf pathconf \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pread_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pread pread \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pwrite_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pwrite pwrite \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_read_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_read read \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlink readlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlinkat readlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rename_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rename rename \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_renameat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_renameat renameat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_revoke_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_revoke revoke \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rmdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rmdir rmdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence))\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lseek_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lseek lseek \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_select_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_select select \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setegid setegid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_seteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_seteuid seteuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgid setgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setlogin_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setlogin setlogin \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpgid setpgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpriority setpriority \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setregid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setregid setregid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setreuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setreuid setreuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setresgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setresgid setresgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setresuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setresuid setresuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrtable(rtable int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setrtable_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setrtable setrtable \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsid setsid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_settimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_settimeofday settimeofday \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setuid setuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_stat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_stat stat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_statfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_statfs statfs \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlink symlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlinkat symlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sync sync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_truncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_truncate truncate \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\nvar libc_umask_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_umask umask \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlink unlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlinkat unlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unmount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unmount unmount \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_write_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_write write \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mmap mmap \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munmap munmap \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getfsstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getfsstat getfsstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimensat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimensat utimensat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pledge(promises *byte, execpromises *byte) (err error) {\n\t_, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pledge_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pledge pledge \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc unveil(path *byte, flags *byte) (err error) {\n\t_, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unveil_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unveil unveil \"libc.so\"\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s",
    "content": "// go run mkasm.go openbsd arm64\n// Code generated by the command above; DO NOT EDIT.\n\n#include \"textflag.h\"\n\nTEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgroups(SB)\nGLOBL\t·libc_getgroups_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB)\n\nTEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgroups(SB)\nGLOBL\t·libc_setgroups_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB)\n\nTEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_wait4(SB)\nGLOBL\t·libc_wait4_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB)\n\nTEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_accept(SB)\nGLOBL\t·libc_accept_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB)\n\nTEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_bind(SB)\nGLOBL\t·libc_bind_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB)\n\nTEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_connect(SB)\nGLOBL\t·libc_connect_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB)\n\nTEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socket(SB)\nGLOBL\t·libc_socket_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB)\n\nTEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockopt(SB)\nGLOBL\t·libc_getsockopt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB)\n\nTEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsockopt(SB)\nGLOBL\t·libc_setsockopt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB)\n\nTEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpeername(SB)\nGLOBL\t·libc_getpeername_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB)\n\nTEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockname(SB)\nGLOBL\t·libc_getsockname_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB)\n\nTEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shutdown(SB)\nGLOBL\t·libc_shutdown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB)\n\nTEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socketpair(SB)\nGLOBL\t·libc_socketpair_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB)\n\nTEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvfrom(SB)\nGLOBL\t·libc_recvfrom_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB)\n\nTEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendto(SB)\nGLOBL\t·libc_sendto_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB)\n\nTEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvmsg(SB)\nGLOBL\t·libc_recvmsg_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB)\n\nTEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendmsg(SB)\nGLOBL\t·libc_sendmsg_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB)\n\nTEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kevent(SB)\nGLOBL\t·libc_kevent_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB)\n\nTEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimes(SB)\nGLOBL\t·libc_utimes_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB)\n\nTEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_futimes(SB)\nGLOBL\t·libc_futimes_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB)\n\nTEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_poll(SB)\nGLOBL\t·libc_poll_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB)\n\nTEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_madvise(SB)\nGLOBL\t·libc_madvise_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB)\n\nTEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlock(SB)\nGLOBL\t·libc_mlock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB)\n\nTEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlockall(SB)\nGLOBL\t·libc_mlockall_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB)\n\nTEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mprotect(SB)\nGLOBL\t·libc_mprotect_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB)\n\nTEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_msync(SB)\nGLOBL\t·libc_msync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB)\n\nTEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlock(SB)\nGLOBL\t·libc_munlock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB)\n\nTEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlockall(SB)\nGLOBL\t·libc_munlockall_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB)\n\nTEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pipe2(SB)\nGLOBL\t·libc_pipe2_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB)\n\nTEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getdents(SB)\nGLOBL\t·libc_getdents_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB)\n\nTEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getcwd(SB)\nGLOBL\t·libc_getcwd_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB)\n\nTEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getresuid(SB)\nGLOBL\t·libc_getresuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB)\n\nTEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getresgid(SB)\nGLOBL\t·libc_getresgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB)\n\nTEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ioctl(SB)\nGLOBL\t·libc_ioctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB)\n\nTEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sysctl(SB)\nGLOBL\t·libc_sysctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB)\n\nTEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fcntl(SB)\nGLOBL\t·libc_fcntl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB)\n\nTEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ppoll(SB)\nGLOBL\t·libc_ppoll_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB)\n\nTEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_access(SB)\nGLOBL\t·libc_access_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB)\n\nTEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_adjtime(SB)\nGLOBL\t·libc_adjtime_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB)\n\nTEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chdir(SB)\nGLOBL\t·libc_chdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB)\n\nTEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chflags(SB)\nGLOBL\t·libc_chflags_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB)\n\nTEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chmod(SB)\nGLOBL\t·libc_chmod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB)\n\nTEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chown(SB)\nGLOBL\t·libc_chown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB)\n\nTEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chroot(SB)\nGLOBL\t·libc_chroot_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB)\n\nTEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_clock_gettime(SB)\nGLOBL\t·libc_clock_gettime_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB)\n\nTEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_close(SB)\nGLOBL\t·libc_close_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB)\n\nTEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup(SB)\nGLOBL\t·libc_dup_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB)\n\nTEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup2(SB)\nGLOBL\t·libc_dup2_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB)\n\nTEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup3(SB)\nGLOBL\t·libc_dup3_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB)\n\nTEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_exit(SB)\nGLOBL\t·libc_exit_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB)\n\nTEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_faccessat(SB)\nGLOBL\t·libc_faccessat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB)\n\nTEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchdir(SB)\nGLOBL\t·libc_fchdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB)\n\nTEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchflags(SB)\nGLOBL\t·libc_fchflags_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB)\n\nTEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmod(SB)\nGLOBL\t·libc_fchmod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB)\n\nTEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmodat(SB)\nGLOBL\t·libc_fchmodat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB)\n\nTEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchown(SB)\nGLOBL\t·libc_fchown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB)\n\nTEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchownat(SB)\nGLOBL\t·libc_fchownat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB)\n\nTEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_flock(SB)\nGLOBL\t·libc_flock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB)\n\nTEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fpathconf(SB)\nGLOBL\t·libc_fpathconf_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB)\n\nTEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstat(SB)\nGLOBL\t·libc_fstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB)\n\nTEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatat(SB)\nGLOBL\t·libc_fstatat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB)\n\nTEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatfs(SB)\nGLOBL\t·libc_fstatfs_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB)\n\nTEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fsync(SB)\nGLOBL\t·libc_fsync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB)\n\nTEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ftruncate(SB)\nGLOBL\t·libc_ftruncate_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB)\n\nTEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getegid(SB)\nGLOBL\t·libc_getegid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB)\n\nTEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_geteuid(SB)\nGLOBL\t·libc_geteuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB)\n\nTEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgid(SB)\nGLOBL\t·libc_getgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB)\n\nTEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgid(SB)\nGLOBL\t·libc_getpgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB)\n\nTEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgrp(SB)\nGLOBL\t·libc_getpgrp_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB)\n\nTEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpid(SB)\nGLOBL\t·libc_getpid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB)\n\nTEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getppid(SB)\nGLOBL\t·libc_getppid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB)\n\nTEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpriority(SB)\nGLOBL\t·libc_getpriority_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB)\n\nTEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrlimit(SB)\nGLOBL\t·libc_getrlimit_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB)\n\nTEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrtable(SB)\nGLOBL\t·libc_getrtable_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB)\n\nTEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrusage(SB)\nGLOBL\t·libc_getrusage_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB)\n\nTEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsid(SB)\nGLOBL\t·libc_getsid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB)\n\nTEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_gettimeofday(SB)\nGLOBL\t·libc_gettimeofday_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB)\n\nTEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getuid(SB)\nGLOBL\t·libc_getuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB)\n\nTEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_issetugid(SB)\nGLOBL\t·libc_issetugid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB)\n\nTEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kill(SB)\nGLOBL\t·libc_kill_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB)\n\nTEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kqueue(SB)\nGLOBL\t·libc_kqueue_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB)\n\nTEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lchown(SB)\nGLOBL\t·libc_lchown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB)\n\nTEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_link(SB)\nGLOBL\t·libc_link_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB)\n\nTEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_linkat(SB)\nGLOBL\t·libc_linkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB)\n\nTEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_listen(SB)\nGLOBL\t·libc_listen_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB)\n\nTEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lstat(SB)\nGLOBL\t·libc_lstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB)\n\nTEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdir(SB)\nGLOBL\t·libc_mkdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB)\n\nTEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdirat(SB)\nGLOBL\t·libc_mkdirat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB)\n\nTEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifo(SB)\nGLOBL\t·libc_mkfifo_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB)\n\nTEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifoat(SB)\nGLOBL\t·libc_mkfifoat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB)\n\nTEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknod(SB)\nGLOBL\t·libc_mknod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB)\n\nTEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknodat(SB)\nGLOBL\t·libc_mknodat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB)\n\nTEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mount(SB)\nGLOBL\t·libc_mount_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB)\n\nTEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_nanosleep(SB)\nGLOBL\t·libc_nanosleep_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB)\n\nTEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_open(SB)\nGLOBL\t·libc_open_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB)\n\nTEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_openat(SB)\nGLOBL\t·libc_openat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB)\n\nTEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pathconf(SB)\nGLOBL\t·libc_pathconf_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB)\n\nTEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pread(SB)\nGLOBL\t·libc_pread_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB)\n\nTEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pwrite(SB)\nGLOBL\t·libc_pwrite_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB)\n\nTEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_read(SB)\nGLOBL\t·libc_read_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB)\n\nTEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlink(SB)\nGLOBL\t·libc_readlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB)\n\nTEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlinkat(SB)\nGLOBL\t·libc_readlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB)\n\nTEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rename(SB)\nGLOBL\t·libc_rename_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB)\n\nTEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_renameat(SB)\nGLOBL\t·libc_renameat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB)\n\nTEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_revoke(SB)\nGLOBL\t·libc_revoke_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB)\n\nTEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rmdir(SB)\nGLOBL\t·libc_rmdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB)\n\nTEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lseek(SB)\nGLOBL\t·libc_lseek_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB)\n\nTEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_select(SB)\nGLOBL\t·libc_select_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB)\n\nTEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setegid(SB)\nGLOBL\t·libc_setegid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB)\n\nTEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_seteuid(SB)\nGLOBL\t·libc_seteuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB)\n\nTEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgid(SB)\nGLOBL\t·libc_setgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB)\n\nTEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setlogin(SB)\nGLOBL\t·libc_setlogin_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB)\n\nTEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpgid(SB)\nGLOBL\t·libc_setpgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB)\n\nTEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpriority(SB)\nGLOBL\t·libc_setpriority_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB)\n\nTEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setregid(SB)\nGLOBL\t·libc_setregid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB)\n\nTEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setreuid(SB)\nGLOBL\t·libc_setreuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB)\n\nTEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setresgid(SB)\nGLOBL\t·libc_setresgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB)\n\nTEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setresuid(SB)\nGLOBL\t·libc_setresuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB)\n\nTEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setrtable(SB)\nGLOBL\t·libc_setrtable_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB)\n\nTEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsid(SB)\nGLOBL\t·libc_setsid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB)\n\nTEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_settimeofday(SB)\nGLOBL\t·libc_settimeofday_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB)\n\nTEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setuid(SB)\nGLOBL\t·libc_setuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB)\n\nTEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_stat(SB)\nGLOBL\t·libc_stat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB)\n\nTEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_statfs(SB)\nGLOBL\t·libc_statfs_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB)\n\nTEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlink(SB)\nGLOBL\t·libc_symlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB)\n\nTEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlinkat(SB)\nGLOBL\t·libc_symlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB)\n\nTEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sync(SB)\nGLOBL\t·libc_sync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB)\n\nTEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_truncate(SB)\nGLOBL\t·libc_truncate_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB)\n\nTEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_umask(SB)\nGLOBL\t·libc_umask_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB)\n\nTEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlink(SB)\nGLOBL\t·libc_unlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB)\n\nTEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlinkat(SB)\nGLOBL\t·libc_unlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB)\n\nTEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unmount(SB)\nGLOBL\t·libc_unmount_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB)\n\nTEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_write(SB)\nGLOBL\t·libc_write_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB)\n\nTEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mmap(SB)\nGLOBL\t·libc_mmap_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB)\n\nTEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munmap(SB)\nGLOBL\t·libc_munmap_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB)\n\nTEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getfsstat(SB)\nGLOBL\t·libc_getfsstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB)\n\nTEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimensat(SB)\nGLOBL\t·libc_utimensat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB)\n\nTEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pledge(SB)\nGLOBL\t·libc_pledge_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pledge_trampoline_addr(SB)/8, $libc_pledge_trampoline<>(SB)\n\nTEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unveil(SB)\nGLOBL\t·libc_unveil_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unveil_trampoline_addr(SB)/8, $libc_unveil_trampoline<>(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go",
    "content": "// go run mksyscall.go -openbsd -libc -tags openbsd,mips64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_mips64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build openbsd && mips64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgroups getgroups \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgroups setgroups \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_wait4_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_wait4 wait4 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_accept_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_accept accept \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_bind_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_bind bind \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_connect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_connect connect \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socket_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socket socket \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockopt getsockopt \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsockopt setsockopt \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpeername_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpeername getpeername \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockname_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockname getsockname \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shutdown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shutdown shutdown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socketpair_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socketpair socketpair \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvfrom_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvfrom recvfrom \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendto_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendto sendto \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvmsg recvmsg \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendmsg sendmsg \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kevent_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kevent kevent \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimes utimes \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_futimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_futimes futimes \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_poll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_poll poll \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_madvise_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_madvise madvise \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlock mlock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlockall mlockall \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mprotect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mprotect mprotect \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_msync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_msync msync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlock munlock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlockall munlockall \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pipe2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pipe2 pipe2 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getdents_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getdents getdents \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getcwd_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getcwd getcwd \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) {\n\tsyscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid)))\n\treturn\n}\n\nvar libc_getresuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getresuid getresuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) {\n\tsyscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid)))\n\treturn\n}\n\nvar libc_getresgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getresgid getresgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ioctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ioctl ioctl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sysctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sysctl sysctl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fcntl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fcntl fcntl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ppoll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ppoll ppoll \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_access_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_access access \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_adjtime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_adjtime adjtime \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chdir chdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chflags chflags \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chmod chmod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chown chown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chroot_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chroot chroot \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_clock_gettime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_clock_gettime clock_gettime \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_close_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_close close \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup dup \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup2 dup2 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(from int, to int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup3_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup3 dup3 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tsyscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0)\n\treturn\n}\n\nvar libc_exit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_exit exit \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_faccessat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_faccessat faccessat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchdir fchdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchflags fchflags \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmod fchmod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmodat fchmodat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchown fchown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchownat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchownat fchownat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_flock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_flock flock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fpathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fpathconf fpathconf \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstat fstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatat fstatat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatfs fstatfs \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fsync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fsync fsync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ftruncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ftruncate ftruncate \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\nvar libc_getegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getegid getegid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_geteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_geteuid geteuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\nvar libc_getgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgid getgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgid getpgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\nvar libc_getpgrp_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgrp getpgrp \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\nvar libc_getpid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpid getpid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\nvar libc_getppid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getppid getppid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpriority getpriority \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrlimit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrlimit getrlimit \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrtable() (rtable int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0)\n\trtable = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrtable_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrtable getrtable \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrusage_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrusage getrusage \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsid getsid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_gettimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_gettimeofday gettimeofday \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_getuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getuid getuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\nvar libc_issetugid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_issetugid issetugid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kill_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kill kill \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kqueue_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kqueue kqueue \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lchown lchown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_link_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_link link \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_linkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_linkat linkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_listen_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_listen listen \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lstat lstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdir mkdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdirat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdirat mkdirat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifo_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifo mkfifo \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifoat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifoat mkfifoat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknod mknod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknodat mknodat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(fsType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(dir)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mount mount \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_nanosleep_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_nanosleep nanosleep \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_open_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_open open \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_openat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_openat openat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pathconf pathconf \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pread_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pread pread \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pwrite_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pwrite pwrite \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_read_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_read read \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlink readlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlinkat readlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rename_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rename rename \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_renameat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_renameat renameat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_revoke_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_revoke revoke \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rmdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rmdir rmdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence))\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lseek_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lseek lseek \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_select_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_select select \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setegid setegid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_seteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_seteuid seteuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgid setgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setlogin_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setlogin setlogin \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpgid setpgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpriority setpriority \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setregid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setregid setregid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setreuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setreuid setreuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setresgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setresgid setresgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setresuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setresuid setresuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrtable(rtable int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setrtable_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setrtable setrtable \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsid setsid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_settimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_settimeofday settimeofday \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setuid setuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_stat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_stat stat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_statfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_statfs statfs \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlink symlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlinkat symlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sync sync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_truncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_truncate truncate \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\nvar libc_umask_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_umask umask \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlink unlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlinkat unlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unmount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unmount unmount \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_write_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_write write \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mmap mmap \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munmap munmap \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getfsstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getfsstat getfsstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimensat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimensat utimensat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pledge(promises *byte, execpromises *byte) (err error) {\n\t_, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pledge_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pledge pledge \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc unveil(path *byte, flags *byte) (err error) {\n\t_, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unveil_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unveil unveil \"libc.so\"\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s",
    "content": "// go run mkasm.go openbsd mips64\n// Code generated by the command above; DO NOT EDIT.\n\n#include \"textflag.h\"\n\nTEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgroups(SB)\nGLOBL\t·libc_getgroups_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB)\n\nTEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgroups(SB)\nGLOBL\t·libc_setgroups_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB)\n\nTEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_wait4(SB)\nGLOBL\t·libc_wait4_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB)\n\nTEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_accept(SB)\nGLOBL\t·libc_accept_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB)\n\nTEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_bind(SB)\nGLOBL\t·libc_bind_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB)\n\nTEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_connect(SB)\nGLOBL\t·libc_connect_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB)\n\nTEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socket(SB)\nGLOBL\t·libc_socket_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB)\n\nTEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockopt(SB)\nGLOBL\t·libc_getsockopt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB)\n\nTEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsockopt(SB)\nGLOBL\t·libc_setsockopt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB)\n\nTEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpeername(SB)\nGLOBL\t·libc_getpeername_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB)\n\nTEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockname(SB)\nGLOBL\t·libc_getsockname_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB)\n\nTEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shutdown(SB)\nGLOBL\t·libc_shutdown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB)\n\nTEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socketpair(SB)\nGLOBL\t·libc_socketpair_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB)\n\nTEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvfrom(SB)\nGLOBL\t·libc_recvfrom_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB)\n\nTEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendto(SB)\nGLOBL\t·libc_sendto_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB)\n\nTEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvmsg(SB)\nGLOBL\t·libc_recvmsg_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB)\n\nTEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendmsg(SB)\nGLOBL\t·libc_sendmsg_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB)\n\nTEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kevent(SB)\nGLOBL\t·libc_kevent_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB)\n\nTEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimes(SB)\nGLOBL\t·libc_utimes_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB)\n\nTEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_futimes(SB)\nGLOBL\t·libc_futimes_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB)\n\nTEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_poll(SB)\nGLOBL\t·libc_poll_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB)\n\nTEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_madvise(SB)\nGLOBL\t·libc_madvise_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB)\n\nTEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlock(SB)\nGLOBL\t·libc_mlock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB)\n\nTEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlockall(SB)\nGLOBL\t·libc_mlockall_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB)\n\nTEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mprotect(SB)\nGLOBL\t·libc_mprotect_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB)\n\nTEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_msync(SB)\nGLOBL\t·libc_msync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB)\n\nTEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlock(SB)\nGLOBL\t·libc_munlock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB)\n\nTEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlockall(SB)\nGLOBL\t·libc_munlockall_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB)\n\nTEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pipe2(SB)\nGLOBL\t·libc_pipe2_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB)\n\nTEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getdents(SB)\nGLOBL\t·libc_getdents_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB)\n\nTEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getcwd(SB)\nGLOBL\t·libc_getcwd_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB)\n\nTEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getresuid(SB)\nGLOBL\t·libc_getresuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB)\n\nTEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getresgid(SB)\nGLOBL\t·libc_getresgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB)\n\nTEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ioctl(SB)\nGLOBL\t·libc_ioctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB)\n\nTEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sysctl(SB)\nGLOBL\t·libc_sysctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB)\n\nTEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fcntl(SB)\nGLOBL\t·libc_fcntl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB)\n\nTEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ppoll(SB)\nGLOBL\t·libc_ppoll_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB)\n\nTEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_access(SB)\nGLOBL\t·libc_access_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB)\n\nTEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_adjtime(SB)\nGLOBL\t·libc_adjtime_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB)\n\nTEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chdir(SB)\nGLOBL\t·libc_chdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB)\n\nTEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chflags(SB)\nGLOBL\t·libc_chflags_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB)\n\nTEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chmod(SB)\nGLOBL\t·libc_chmod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB)\n\nTEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chown(SB)\nGLOBL\t·libc_chown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB)\n\nTEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chroot(SB)\nGLOBL\t·libc_chroot_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB)\n\nTEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_clock_gettime(SB)\nGLOBL\t·libc_clock_gettime_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB)\n\nTEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_close(SB)\nGLOBL\t·libc_close_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB)\n\nTEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup(SB)\nGLOBL\t·libc_dup_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB)\n\nTEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup2(SB)\nGLOBL\t·libc_dup2_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB)\n\nTEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup3(SB)\nGLOBL\t·libc_dup3_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB)\n\nTEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_exit(SB)\nGLOBL\t·libc_exit_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB)\n\nTEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_faccessat(SB)\nGLOBL\t·libc_faccessat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB)\n\nTEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchdir(SB)\nGLOBL\t·libc_fchdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB)\n\nTEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchflags(SB)\nGLOBL\t·libc_fchflags_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB)\n\nTEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmod(SB)\nGLOBL\t·libc_fchmod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB)\n\nTEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmodat(SB)\nGLOBL\t·libc_fchmodat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB)\n\nTEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchown(SB)\nGLOBL\t·libc_fchown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB)\n\nTEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchownat(SB)\nGLOBL\t·libc_fchownat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB)\n\nTEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_flock(SB)\nGLOBL\t·libc_flock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB)\n\nTEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fpathconf(SB)\nGLOBL\t·libc_fpathconf_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB)\n\nTEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstat(SB)\nGLOBL\t·libc_fstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB)\n\nTEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatat(SB)\nGLOBL\t·libc_fstatat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB)\n\nTEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatfs(SB)\nGLOBL\t·libc_fstatfs_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB)\n\nTEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fsync(SB)\nGLOBL\t·libc_fsync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB)\n\nTEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ftruncate(SB)\nGLOBL\t·libc_ftruncate_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB)\n\nTEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getegid(SB)\nGLOBL\t·libc_getegid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB)\n\nTEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_geteuid(SB)\nGLOBL\t·libc_geteuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB)\n\nTEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgid(SB)\nGLOBL\t·libc_getgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB)\n\nTEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgid(SB)\nGLOBL\t·libc_getpgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB)\n\nTEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgrp(SB)\nGLOBL\t·libc_getpgrp_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB)\n\nTEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpid(SB)\nGLOBL\t·libc_getpid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB)\n\nTEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getppid(SB)\nGLOBL\t·libc_getppid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB)\n\nTEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpriority(SB)\nGLOBL\t·libc_getpriority_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB)\n\nTEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrlimit(SB)\nGLOBL\t·libc_getrlimit_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB)\n\nTEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrtable(SB)\nGLOBL\t·libc_getrtable_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB)\n\nTEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrusage(SB)\nGLOBL\t·libc_getrusage_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB)\n\nTEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsid(SB)\nGLOBL\t·libc_getsid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB)\n\nTEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_gettimeofday(SB)\nGLOBL\t·libc_gettimeofday_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB)\n\nTEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getuid(SB)\nGLOBL\t·libc_getuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB)\n\nTEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_issetugid(SB)\nGLOBL\t·libc_issetugid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB)\n\nTEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kill(SB)\nGLOBL\t·libc_kill_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB)\n\nTEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kqueue(SB)\nGLOBL\t·libc_kqueue_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB)\n\nTEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lchown(SB)\nGLOBL\t·libc_lchown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB)\n\nTEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_link(SB)\nGLOBL\t·libc_link_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB)\n\nTEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_linkat(SB)\nGLOBL\t·libc_linkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB)\n\nTEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_listen(SB)\nGLOBL\t·libc_listen_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB)\n\nTEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lstat(SB)\nGLOBL\t·libc_lstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB)\n\nTEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdir(SB)\nGLOBL\t·libc_mkdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB)\n\nTEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdirat(SB)\nGLOBL\t·libc_mkdirat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB)\n\nTEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifo(SB)\nGLOBL\t·libc_mkfifo_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB)\n\nTEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifoat(SB)\nGLOBL\t·libc_mkfifoat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB)\n\nTEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknod(SB)\nGLOBL\t·libc_mknod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB)\n\nTEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknodat(SB)\nGLOBL\t·libc_mknodat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB)\n\nTEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mount(SB)\nGLOBL\t·libc_mount_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB)\n\nTEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_nanosleep(SB)\nGLOBL\t·libc_nanosleep_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB)\n\nTEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_open(SB)\nGLOBL\t·libc_open_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB)\n\nTEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_openat(SB)\nGLOBL\t·libc_openat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB)\n\nTEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pathconf(SB)\nGLOBL\t·libc_pathconf_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB)\n\nTEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pread(SB)\nGLOBL\t·libc_pread_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB)\n\nTEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pwrite(SB)\nGLOBL\t·libc_pwrite_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB)\n\nTEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_read(SB)\nGLOBL\t·libc_read_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB)\n\nTEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlink(SB)\nGLOBL\t·libc_readlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB)\n\nTEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlinkat(SB)\nGLOBL\t·libc_readlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB)\n\nTEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rename(SB)\nGLOBL\t·libc_rename_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB)\n\nTEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_renameat(SB)\nGLOBL\t·libc_renameat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB)\n\nTEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_revoke(SB)\nGLOBL\t·libc_revoke_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB)\n\nTEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rmdir(SB)\nGLOBL\t·libc_rmdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB)\n\nTEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lseek(SB)\nGLOBL\t·libc_lseek_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB)\n\nTEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_select(SB)\nGLOBL\t·libc_select_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB)\n\nTEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setegid(SB)\nGLOBL\t·libc_setegid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB)\n\nTEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_seteuid(SB)\nGLOBL\t·libc_seteuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB)\n\nTEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgid(SB)\nGLOBL\t·libc_setgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB)\n\nTEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setlogin(SB)\nGLOBL\t·libc_setlogin_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB)\n\nTEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpgid(SB)\nGLOBL\t·libc_setpgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB)\n\nTEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpriority(SB)\nGLOBL\t·libc_setpriority_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB)\n\nTEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setregid(SB)\nGLOBL\t·libc_setregid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB)\n\nTEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setreuid(SB)\nGLOBL\t·libc_setreuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB)\n\nTEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setresgid(SB)\nGLOBL\t·libc_setresgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB)\n\nTEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setresuid(SB)\nGLOBL\t·libc_setresuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB)\n\nTEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setrtable(SB)\nGLOBL\t·libc_setrtable_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB)\n\nTEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsid(SB)\nGLOBL\t·libc_setsid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB)\n\nTEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_settimeofday(SB)\nGLOBL\t·libc_settimeofday_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB)\n\nTEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setuid(SB)\nGLOBL\t·libc_setuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB)\n\nTEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_stat(SB)\nGLOBL\t·libc_stat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB)\n\nTEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_statfs(SB)\nGLOBL\t·libc_statfs_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB)\n\nTEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlink(SB)\nGLOBL\t·libc_symlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB)\n\nTEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlinkat(SB)\nGLOBL\t·libc_symlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB)\n\nTEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sync(SB)\nGLOBL\t·libc_sync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB)\n\nTEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_truncate(SB)\nGLOBL\t·libc_truncate_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB)\n\nTEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_umask(SB)\nGLOBL\t·libc_umask_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB)\n\nTEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlink(SB)\nGLOBL\t·libc_unlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB)\n\nTEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlinkat(SB)\nGLOBL\t·libc_unlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB)\n\nTEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unmount(SB)\nGLOBL\t·libc_unmount_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB)\n\nTEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_write(SB)\nGLOBL\t·libc_write_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB)\n\nTEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mmap(SB)\nGLOBL\t·libc_mmap_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB)\n\nTEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munmap(SB)\nGLOBL\t·libc_munmap_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB)\n\nTEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getfsstat(SB)\nGLOBL\t·libc_getfsstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB)\n\nTEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimensat(SB)\nGLOBL\t·libc_utimensat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB)\n\nTEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pledge(SB)\nGLOBL\t·libc_pledge_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pledge_trampoline_addr(SB)/8, $libc_pledge_trampoline<>(SB)\n\nTEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unveil(SB)\nGLOBL\t·libc_unveil_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unveil_trampoline_addr(SB)/8, $libc_unveil_trampoline<>(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go",
    "content": "// go run mksyscall.go -openbsd -libc -tags openbsd,ppc64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_ppc64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build openbsd && ppc64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgroups getgroups \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgroups setgroups \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_wait4_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_wait4 wait4 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_accept_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_accept accept \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_bind_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_bind bind \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_connect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_connect connect \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socket_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socket socket \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockopt getsockopt \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsockopt setsockopt \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpeername_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpeername getpeername \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockname_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockname getsockname \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shutdown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shutdown shutdown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socketpair_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socketpair socketpair \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvfrom_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvfrom recvfrom \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendto_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendto sendto \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvmsg recvmsg \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendmsg sendmsg \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kevent_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kevent kevent \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimes utimes \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_futimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_futimes futimes \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_poll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_poll poll \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_madvise_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_madvise madvise \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlock mlock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlockall mlockall \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mprotect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mprotect mprotect \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_msync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_msync msync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlock munlock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlockall munlockall \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pipe2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pipe2 pipe2 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getdents_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getdents getdents \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getcwd_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getcwd getcwd \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) {\n\tsyscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid)))\n\treturn\n}\n\nvar libc_getresuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getresuid getresuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) {\n\tsyscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid)))\n\treturn\n}\n\nvar libc_getresgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getresgid getresgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ioctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ioctl ioctl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sysctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sysctl sysctl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fcntl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fcntl fcntl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ppoll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ppoll ppoll \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_access_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_access access \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_adjtime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_adjtime adjtime \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chdir chdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chflags chflags \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chmod chmod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chown chown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chroot_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chroot chroot \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_clock_gettime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_clock_gettime clock_gettime \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_close_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_close close \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup dup \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup2 dup2 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(from int, to int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup3_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup3 dup3 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tsyscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0)\n\treturn\n}\n\nvar libc_exit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_exit exit \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_faccessat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_faccessat faccessat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchdir fchdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchflags fchflags \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmod fchmod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmodat fchmodat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchown fchown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchownat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchownat fchownat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_flock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_flock flock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fpathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fpathconf fpathconf \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstat fstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatat fstatat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatfs fstatfs \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fsync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fsync fsync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ftruncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ftruncate ftruncate \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\nvar libc_getegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getegid getegid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_geteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_geteuid geteuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\nvar libc_getgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgid getgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgid getpgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\nvar libc_getpgrp_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgrp getpgrp \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\nvar libc_getpid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpid getpid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\nvar libc_getppid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getppid getppid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpriority getpriority \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrlimit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrlimit getrlimit \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrtable() (rtable int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0)\n\trtable = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrtable_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrtable getrtable \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrusage_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrusage getrusage \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsid getsid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_gettimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_gettimeofday gettimeofday \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_getuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getuid getuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\nvar libc_issetugid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_issetugid issetugid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kill_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kill kill \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kqueue_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kqueue kqueue \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lchown lchown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_link_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_link link \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_linkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_linkat linkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_listen_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_listen listen \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lstat lstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdir mkdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdirat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdirat mkdirat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifo_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifo mkfifo \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifoat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifoat mkfifoat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknod mknod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknodat mknodat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(fsType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(dir)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mount mount \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_nanosleep_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_nanosleep nanosleep \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_open_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_open open \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_openat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_openat openat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pathconf pathconf \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pread_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pread pread \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pwrite_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pwrite pwrite \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_read_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_read read \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlink readlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlinkat readlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rename_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rename rename \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_renameat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_renameat renameat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_revoke_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_revoke revoke \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rmdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rmdir rmdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence))\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lseek_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lseek lseek \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_select_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_select select \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setegid setegid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_seteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_seteuid seteuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgid setgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setlogin_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setlogin setlogin \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpgid setpgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpriority setpriority \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setregid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setregid setregid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setreuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setreuid setreuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setresgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setresgid setresgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setresuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setresuid setresuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrtable(rtable int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setrtable_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setrtable setrtable \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsid setsid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_settimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_settimeofday settimeofday \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setuid setuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_stat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_stat stat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_statfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_statfs statfs \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlink symlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlinkat symlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sync sync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_truncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_truncate truncate \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\nvar libc_umask_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_umask umask \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlink unlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlinkat unlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unmount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unmount unmount \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_write_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_write write \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mmap mmap \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munmap munmap \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getfsstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getfsstat getfsstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimensat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimensat utimensat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pledge(promises *byte, execpromises *byte) (err error) {\n\t_, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pledge_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pledge pledge \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc unveil(path *byte, flags *byte) (err error) {\n\t_, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unveil_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unveil unveil \"libc.so\"\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s",
    "content": "// go run mkasm.go openbsd ppc64\n// Code generated by the command above; DO NOT EDIT.\n\n#include \"textflag.h\"\n\nTEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getgroups(SB)\n\tRET\nGLOBL\t·libc_getgroups_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB)\n\nTEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_setgroups(SB)\n\tRET\nGLOBL\t·libc_setgroups_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB)\n\nTEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_wait4(SB)\n\tRET\nGLOBL\t·libc_wait4_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB)\n\nTEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_accept(SB)\n\tRET\nGLOBL\t·libc_accept_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB)\n\nTEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_bind(SB)\n\tRET\nGLOBL\t·libc_bind_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB)\n\nTEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_connect(SB)\n\tRET\nGLOBL\t·libc_connect_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB)\n\nTEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_socket(SB)\n\tRET\nGLOBL\t·libc_socket_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB)\n\nTEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getsockopt(SB)\n\tRET\nGLOBL\t·libc_getsockopt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB)\n\nTEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_setsockopt(SB)\n\tRET\nGLOBL\t·libc_setsockopt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB)\n\nTEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getpeername(SB)\n\tRET\nGLOBL\t·libc_getpeername_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB)\n\nTEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getsockname(SB)\n\tRET\nGLOBL\t·libc_getsockname_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB)\n\nTEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_shutdown(SB)\n\tRET\nGLOBL\t·libc_shutdown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB)\n\nTEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_socketpair(SB)\n\tRET\nGLOBL\t·libc_socketpair_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB)\n\nTEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_recvfrom(SB)\n\tRET\nGLOBL\t·libc_recvfrom_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB)\n\nTEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_sendto(SB)\n\tRET\nGLOBL\t·libc_sendto_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB)\n\nTEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_recvmsg(SB)\n\tRET\nGLOBL\t·libc_recvmsg_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB)\n\nTEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_sendmsg(SB)\n\tRET\nGLOBL\t·libc_sendmsg_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB)\n\nTEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_kevent(SB)\n\tRET\nGLOBL\t·libc_kevent_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB)\n\nTEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_utimes(SB)\n\tRET\nGLOBL\t·libc_utimes_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB)\n\nTEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_futimes(SB)\n\tRET\nGLOBL\t·libc_futimes_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB)\n\nTEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_poll(SB)\n\tRET\nGLOBL\t·libc_poll_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB)\n\nTEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_madvise(SB)\n\tRET\nGLOBL\t·libc_madvise_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB)\n\nTEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_mlock(SB)\n\tRET\nGLOBL\t·libc_mlock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB)\n\nTEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_mlockall(SB)\n\tRET\nGLOBL\t·libc_mlockall_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB)\n\nTEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_mprotect(SB)\n\tRET\nGLOBL\t·libc_mprotect_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB)\n\nTEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_msync(SB)\n\tRET\nGLOBL\t·libc_msync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB)\n\nTEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_munlock(SB)\n\tRET\nGLOBL\t·libc_munlock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB)\n\nTEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_munlockall(SB)\n\tRET\nGLOBL\t·libc_munlockall_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB)\n\nTEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_pipe2(SB)\n\tRET\nGLOBL\t·libc_pipe2_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB)\n\nTEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getdents(SB)\n\tRET\nGLOBL\t·libc_getdents_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB)\n\nTEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getcwd(SB)\n\tRET\nGLOBL\t·libc_getcwd_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB)\n\nTEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getresuid(SB)\n\tRET\nGLOBL\t·libc_getresuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB)\n\nTEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getresgid(SB)\n\tRET\nGLOBL\t·libc_getresgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB)\n\nTEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_ioctl(SB)\n\tRET\nGLOBL\t·libc_ioctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB)\n\nTEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_sysctl(SB)\n\tRET\nGLOBL\t·libc_sysctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB)\n\nTEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_fcntl(SB)\n\tRET\nGLOBL\t·libc_fcntl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB)\n\nTEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_ppoll(SB)\n\tRET\nGLOBL\t·libc_ppoll_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB)\n\nTEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_access(SB)\n\tRET\nGLOBL\t·libc_access_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB)\n\nTEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_adjtime(SB)\n\tRET\nGLOBL\t·libc_adjtime_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB)\n\nTEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_chdir(SB)\n\tRET\nGLOBL\t·libc_chdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB)\n\nTEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_chflags(SB)\n\tRET\nGLOBL\t·libc_chflags_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB)\n\nTEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_chmod(SB)\n\tRET\nGLOBL\t·libc_chmod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB)\n\nTEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_chown(SB)\n\tRET\nGLOBL\t·libc_chown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB)\n\nTEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_chroot(SB)\n\tRET\nGLOBL\t·libc_chroot_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB)\n\nTEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_clock_gettime(SB)\n\tRET\nGLOBL\t·libc_clock_gettime_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB)\n\nTEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_close(SB)\n\tRET\nGLOBL\t·libc_close_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB)\n\nTEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_dup(SB)\n\tRET\nGLOBL\t·libc_dup_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB)\n\nTEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_dup2(SB)\n\tRET\nGLOBL\t·libc_dup2_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB)\n\nTEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_dup3(SB)\n\tRET\nGLOBL\t·libc_dup3_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB)\n\nTEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_exit(SB)\n\tRET\nGLOBL\t·libc_exit_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB)\n\nTEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_faccessat(SB)\n\tRET\nGLOBL\t·libc_faccessat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB)\n\nTEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_fchdir(SB)\n\tRET\nGLOBL\t·libc_fchdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB)\n\nTEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_fchflags(SB)\n\tRET\nGLOBL\t·libc_fchflags_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB)\n\nTEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_fchmod(SB)\n\tRET\nGLOBL\t·libc_fchmod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB)\n\nTEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_fchmodat(SB)\n\tRET\nGLOBL\t·libc_fchmodat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB)\n\nTEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_fchown(SB)\n\tRET\nGLOBL\t·libc_fchown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB)\n\nTEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_fchownat(SB)\n\tRET\nGLOBL\t·libc_fchownat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB)\n\nTEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_flock(SB)\n\tRET\nGLOBL\t·libc_flock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB)\n\nTEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_fpathconf(SB)\n\tRET\nGLOBL\t·libc_fpathconf_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB)\n\nTEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_fstat(SB)\n\tRET\nGLOBL\t·libc_fstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB)\n\nTEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_fstatat(SB)\n\tRET\nGLOBL\t·libc_fstatat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB)\n\nTEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_fstatfs(SB)\n\tRET\nGLOBL\t·libc_fstatfs_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB)\n\nTEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_fsync(SB)\n\tRET\nGLOBL\t·libc_fsync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB)\n\nTEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_ftruncate(SB)\n\tRET\nGLOBL\t·libc_ftruncate_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB)\n\nTEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getegid(SB)\n\tRET\nGLOBL\t·libc_getegid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB)\n\nTEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_geteuid(SB)\n\tRET\nGLOBL\t·libc_geteuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB)\n\nTEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getgid(SB)\n\tRET\nGLOBL\t·libc_getgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB)\n\nTEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getpgid(SB)\n\tRET\nGLOBL\t·libc_getpgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB)\n\nTEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getpgrp(SB)\n\tRET\nGLOBL\t·libc_getpgrp_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB)\n\nTEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getpid(SB)\n\tRET\nGLOBL\t·libc_getpid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB)\n\nTEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getppid(SB)\n\tRET\nGLOBL\t·libc_getppid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB)\n\nTEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getpriority(SB)\n\tRET\nGLOBL\t·libc_getpriority_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB)\n\nTEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getrlimit(SB)\n\tRET\nGLOBL\t·libc_getrlimit_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB)\n\nTEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getrtable(SB)\n\tRET\nGLOBL\t·libc_getrtable_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB)\n\nTEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getrusage(SB)\n\tRET\nGLOBL\t·libc_getrusage_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB)\n\nTEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getsid(SB)\n\tRET\nGLOBL\t·libc_getsid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB)\n\nTEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_gettimeofday(SB)\n\tRET\nGLOBL\t·libc_gettimeofday_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB)\n\nTEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getuid(SB)\n\tRET\nGLOBL\t·libc_getuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB)\n\nTEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_issetugid(SB)\n\tRET\nGLOBL\t·libc_issetugid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB)\n\nTEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_kill(SB)\n\tRET\nGLOBL\t·libc_kill_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB)\n\nTEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_kqueue(SB)\n\tRET\nGLOBL\t·libc_kqueue_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB)\n\nTEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_lchown(SB)\n\tRET\nGLOBL\t·libc_lchown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB)\n\nTEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_link(SB)\n\tRET\nGLOBL\t·libc_link_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB)\n\nTEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_linkat(SB)\n\tRET\nGLOBL\t·libc_linkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB)\n\nTEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_listen(SB)\n\tRET\nGLOBL\t·libc_listen_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB)\n\nTEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_lstat(SB)\n\tRET\nGLOBL\t·libc_lstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB)\n\nTEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_mkdir(SB)\n\tRET\nGLOBL\t·libc_mkdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB)\n\nTEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_mkdirat(SB)\n\tRET\nGLOBL\t·libc_mkdirat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB)\n\nTEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_mkfifo(SB)\n\tRET\nGLOBL\t·libc_mkfifo_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB)\n\nTEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_mkfifoat(SB)\n\tRET\nGLOBL\t·libc_mkfifoat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB)\n\nTEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_mknod(SB)\n\tRET\nGLOBL\t·libc_mknod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB)\n\nTEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_mknodat(SB)\n\tRET\nGLOBL\t·libc_mknodat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB)\n\nTEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_mount(SB)\n\tRET\nGLOBL\t·libc_mount_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB)\n\nTEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_nanosleep(SB)\n\tRET\nGLOBL\t·libc_nanosleep_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB)\n\nTEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_open(SB)\n\tRET\nGLOBL\t·libc_open_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB)\n\nTEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_openat(SB)\n\tRET\nGLOBL\t·libc_openat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB)\n\nTEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_pathconf(SB)\n\tRET\nGLOBL\t·libc_pathconf_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB)\n\nTEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_pread(SB)\n\tRET\nGLOBL\t·libc_pread_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB)\n\nTEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_pwrite(SB)\n\tRET\nGLOBL\t·libc_pwrite_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB)\n\nTEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_read(SB)\n\tRET\nGLOBL\t·libc_read_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB)\n\nTEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_readlink(SB)\n\tRET\nGLOBL\t·libc_readlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB)\n\nTEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_readlinkat(SB)\n\tRET\nGLOBL\t·libc_readlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB)\n\nTEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_rename(SB)\n\tRET\nGLOBL\t·libc_rename_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB)\n\nTEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_renameat(SB)\n\tRET\nGLOBL\t·libc_renameat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB)\n\nTEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_revoke(SB)\n\tRET\nGLOBL\t·libc_revoke_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB)\n\nTEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_rmdir(SB)\n\tRET\nGLOBL\t·libc_rmdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB)\n\nTEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_lseek(SB)\n\tRET\nGLOBL\t·libc_lseek_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB)\n\nTEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_select(SB)\n\tRET\nGLOBL\t·libc_select_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB)\n\nTEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_setegid(SB)\n\tRET\nGLOBL\t·libc_setegid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB)\n\nTEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_seteuid(SB)\n\tRET\nGLOBL\t·libc_seteuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB)\n\nTEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_setgid(SB)\n\tRET\nGLOBL\t·libc_setgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB)\n\nTEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_setlogin(SB)\n\tRET\nGLOBL\t·libc_setlogin_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB)\n\nTEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_setpgid(SB)\n\tRET\nGLOBL\t·libc_setpgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB)\n\nTEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_setpriority(SB)\n\tRET\nGLOBL\t·libc_setpriority_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB)\n\nTEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_setregid(SB)\n\tRET\nGLOBL\t·libc_setregid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB)\n\nTEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_setreuid(SB)\n\tRET\nGLOBL\t·libc_setreuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB)\n\nTEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_setresgid(SB)\n\tRET\nGLOBL\t·libc_setresgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB)\n\nTEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_setresuid(SB)\n\tRET\nGLOBL\t·libc_setresuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB)\n\nTEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_setrtable(SB)\n\tRET\nGLOBL\t·libc_setrtable_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB)\n\nTEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_setsid(SB)\n\tRET\nGLOBL\t·libc_setsid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB)\n\nTEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_settimeofday(SB)\n\tRET\nGLOBL\t·libc_settimeofday_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB)\n\nTEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_setuid(SB)\n\tRET\nGLOBL\t·libc_setuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB)\n\nTEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_stat(SB)\n\tRET\nGLOBL\t·libc_stat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB)\n\nTEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_statfs(SB)\n\tRET\nGLOBL\t·libc_statfs_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB)\n\nTEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_symlink(SB)\n\tRET\nGLOBL\t·libc_symlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB)\n\nTEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_symlinkat(SB)\n\tRET\nGLOBL\t·libc_symlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB)\n\nTEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_sync(SB)\n\tRET\nGLOBL\t·libc_sync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB)\n\nTEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_truncate(SB)\n\tRET\nGLOBL\t·libc_truncate_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB)\n\nTEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_umask(SB)\n\tRET\nGLOBL\t·libc_umask_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB)\n\nTEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_unlink(SB)\n\tRET\nGLOBL\t·libc_unlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB)\n\nTEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_unlinkat(SB)\n\tRET\nGLOBL\t·libc_unlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB)\n\nTEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_unmount(SB)\n\tRET\nGLOBL\t·libc_unmount_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB)\n\nTEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_write(SB)\n\tRET\nGLOBL\t·libc_write_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB)\n\nTEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_mmap(SB)\n\tRET\nGLOBL\t·libc_mmap_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB)\n\nTEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_munmap(SB)\n\tRET\nGLOBL\t·libc_munmap_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB)\n\nTEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_getfsstat(SB)\n\tRET\nGLOBL\t·libc_getfsstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB)\n\nTEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_utimensat(SB)\n\tRET\nGLOBL\t·libc_utimensat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB)\n\nTEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_pledge(SB)\n\tRET\nGLOBL\t·libc_pledge_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pledge_trampoline_addr(SB)/8, $libc_pledge_trampoline<>(SB)\n\nTEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0\n\tCALL\tlibc_unveil(SB)\n\tRET\nGLOBL\t·libc_unveil_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unveil_trampoline_addr(SB)/8, $libc_unveil_trampoline<>(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go",
    "content": "// go run mksyscall.go -openbsd -libc -tags openbsd,riscv64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_riscv64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build openbsd && riscv64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgroups getgroups \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgroups_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgroups setgroups \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_wait4_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_wait4 wait4 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_accept_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_accept accept \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_bind_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_bind bind \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_connect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_connect connect \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socket_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socket socket \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockopt getsockopt \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsockopt_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsockopt setsockopt \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpeername_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpeername getpeername \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsockname_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsockname getsockname \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_shutdown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_shutdown shutdown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_socketpair_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_socketpair socketpair \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvfrom_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvfrom recvfrom \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendto_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendto sendto \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_recvmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_recvmsg recvmsg \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sendmsg_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sendmsg sendmsg \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kevent_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kevent kevent \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimes utimes \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimes(fd int, timeval *[2]Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_futimes_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_futimes futimes \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_poll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_poll poll \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, behav int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_madvise_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_madvise madvise \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlock mlock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mlockall mlockall \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mprotect_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mprotect mprotect \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_msync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_msync msync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlock munlock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munlockall_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munlockall munlockall \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pipe2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pipe2 pipe2 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getdents_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getdents getdents \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getcwd_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getcwd getcwd \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) {\n\tsyscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid)))\n\treturn\n}\n\nvar libc_getresuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getresuid getresuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) {\n\tsyscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid)))\n\treturn\n}\n\nvar libc_getresgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getresgid getresgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req uint, arg uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ioctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ioctl ioctl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(mib) > 0 {\n\t\t_p0 = unsafe.Pointer(&mib[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\t_, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sysctl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sysctl sysctl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fcntl_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fcntl fcntl \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ppoll_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ppoll ppoll \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_access_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_access access \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_adjtime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_adjtime adjtime \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chdir chdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chflags(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chflags chflags \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chmod chmod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chown chown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_chroot_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_chroot chroot \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_clock_gettime_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_clock_gettime clock_gettime \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_close_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_close close \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup dup \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(from int, to int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup2_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup2 dup2 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup3(from int, to int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_dup3_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_dup3 dup3 \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tsyscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0)\n\treturn\n}\n\nvar libc_exit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_exit exit \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_faccessat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_faccessat faccessat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchdir fchdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchflags(fd int, flags int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchflags_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchflags fchflags \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmod fchmod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchmodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchmodat fchmodat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchown fchown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fchownat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fchownat fchownat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_flock_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_flock flock \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fpathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fpathconf fpathconf \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstat fstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatat fstatat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatfs(fd int, stat *Statfs_t) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fstatfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fstatfs fstatfs \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_fsync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_fsync fsync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_ftruncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_ftruncate ftruncate \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\nvar libc_getegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getegid getegid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_geteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_geteuid geteuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\nvar libc_getgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getgid getgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgid getpgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgrp int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0)\n\tpgrp = int(r0)\n\treturn\n}\n\nvar libc_getpgrp_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpgrp getpgrp \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\nvar libc_getpid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpid getpid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\nvar libc_getppid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getppid getppid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0)\n\tprio = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getpriority getpriority \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrlimit_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrlimit getrlimit \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrtable() (rtable int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0)\n\trtable = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrtable_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrtable getrtable \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getrusage_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getrusage getrusage \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getsid getsid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_gettimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_gettimeofday gettimeofday \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\nvar libc_getuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getuid getuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Issetugid() (tainted bool) {\n\tr0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0)\n\ttainted = bool(r0 != 0)\n\treturn\n}\n\nvar libc_issetugid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_issetugid issetugid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kill_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kill kill \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kqueue() (fd int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_kqueue_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_kqueue kqueue \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lchown_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lchown lchown \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_link_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_link link \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_linkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_linkat linkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_listen_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_listen listen \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lstat lstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdir mkdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkdirat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkdirat mkdirat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifo_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifo mkfifo \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mkfifoat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mkfifoat mkfifoat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknod_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknod mknod \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mknodat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mknodat mknodat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(fsType)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(dir)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mount mount \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_nanosleep_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_nanosleep nanosleep \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_open_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_open open \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_openat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_openat openat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pathconf_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pathconf pathconf \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pread_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pread pread \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pwrite_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pwrite pwrite \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_read_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_read read \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlink readlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p1 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_readlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_readlinkat readlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rename_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rename rename \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(fromfd int, from string, tofd int, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_renameat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_renameat renameat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Revoke(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_revoke_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_revoke revoke \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_rmdir_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_rmdir rmdir \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence))\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_lseek_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_lseek lseek \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_select_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_select select \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setegid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setegid setegid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_seteuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_seteuid seteuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setgid setgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setlogin(name string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setlogin_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setlogin setlogin \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpgid setpgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setpriority_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setpriority setpriority \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setregid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setregid setregid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setreuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setreuid setreuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresgid(rgid int, egid int, sgid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setresgid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setresgid setresgid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setresuid(ruid int, euid int, suid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setresuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setresuid setresuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrtable(rtable int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setrtable_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setrtable setrtable \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setsid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setsid setsid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Settimeofday(tp *Timeval) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_settimeofday_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_settimeofday settimeofday \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_setuid_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_setuid setuid \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_stat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_stat stat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statfs(path string, stat *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_statfs_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_statfs statfs \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlink symlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_symlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_symlinkat symlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_sync_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_sync sync \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_truncate_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_truncate truncate \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(newmask int) (oldmask int) {\n\tr0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\nvar libc_umask_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_umask umask \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlink_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlink unlink \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unlinkat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unlinkat unlinkat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unmount_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unmount unmount \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\tr0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_write_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_write write \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_mmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_mmap mmap \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_munmap_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_munmap munmap \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) {\n\tr0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_getfsstat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_getfsstat getfsstat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_utimensat_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_utimensat utimensat \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pledge(promises *byte, execpromises *byte) (err error) {\n\t_, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_pledge_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_pledge pledge \"libc.so\"\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc unveil(path *byte, flags *byte) (err error) {\n\t_, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nvar libc_unveil_trampoline_addr uintptr\n\n//go:cgo_import_dynamic libc_unveil unveil \"libc.so\"\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s",
    "content": "// go run mkasm.go openbsd riscv64\n// Code generated by the command above; DO NOT EDIT.\n\n#include \"textflag.h\"\n\nTEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgroups(SB)\nGLOBL\t·libc_getgroups_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB)\n\nTEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgroups(SB)\nGLOBL\t·libc_setgroups_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB)\n\nTEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_wait4(SB)\nGLOBL\t·libc_wait4_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB)\n\nTEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_accept(SB)\nGLOBL\t·libc_accept_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB)\n\nTEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_bind(SB)\nGLOBL\t·libc_bind_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB)\n\nTEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_connect(SB)\nGLOBL\t·libc_connect_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB)\n\nTEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socket(SB)\nGLOBL\t·libc_socket_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB)\n\nTEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockopt(SB)\nGLOBL\t·libc_getsockopt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB)\n\nTEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsockopt(SB)\nGLOBL\t·libc_setsockopt_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB)\n\nTEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpeername(SB)\nGLOBL\t·libc_getpeername_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB)\n\nTEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsockname(SB)\nGLOBL\t·libc_getsockname_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB)\n\nTEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_shutdown(SB)\nGLOBL\t·libc_shutdown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB)\n\nTEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_socketpair(SB)\nGLOBL\t·libc_socketpair_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB)\n\nTEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvfrom(SB)\nGLOBL\t·libc_recvfrom_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB)\n\nTEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendto(SB)\nGLOBL\t·libc_sendto_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB)\n\nTEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_recvmsg(SB)\nGLOBL\t·libc_recvmsg_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB)\n\nTEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sendmsg(SB)\nGLOBL\t·libc_sendmsg_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB)\n\nTEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kevent(SB)\nGLOBL\t·libc_kevent_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB)\n\nTEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimes(SB)\nGLOBL\t·libc_utimes_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB)\n\nTEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_futimes(SB)\nGLOBL\t·libc_futimes_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB)\n\nTEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_poll(SB)\nGLOBL\t·libc_poll_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB)\n\nTEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_madvise(SB)\nGLOBL\t·libc_madvise_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB)\n\nTEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlock(SB)\nGLOBL\t·libc_mlock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB)\n\nTEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mlockall(SB)\nGLOBL\t·libc_mlockall_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB)\n\nTEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mprotect(SB)\nGLOBL\t·libc_mprotect_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB)\n\nTEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_msync(SB)\nGLOBL\t·libc_msync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB)\n\nTEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlock(SB)\nGLOBL\t·libc_munlock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB)\n\nTEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munlockall(SB)\nGLOBL\t·libc_munlockall_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB)\n\nTEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pipe2(SB)\nGLOBL\t·libc_pipe2_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB)\n\nTEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getdents(SB)\nGLOBL\t·libc_getdents_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB)\n\nTEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getcwd(SB)\nGLOBL\t·libc_getcwd_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB)\n\nTEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getresuid(SB)\nGLOBL\t·libc_getresuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB)\n\nTEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getresgid(SB)\nGLOBL\t·libc_getresgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB)\n\nTEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ioctl(SB)\nGLOBL\t·libc_ioctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB)\n\nTEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sysctl(SB)\nGLOBL\t·libc_sysctl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB)\n\nTEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fcntl(SB)\nGLOBL\t·libc_fcntl_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB)\n\nTEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ppoll(SB)\nGLOBL\t·libc_ppoll_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB)\n\nTEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_access(SB)\nGLOBL\t·libc_access_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB)\n\nTEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_adjtime(SB)\nGLOBL\t·libc_adjtime_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB)\n\nTEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chdir(SB)\nGLOBL\t·libc_chdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB)\n\nTEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chflags(SB)\nGLOBL\t·libc_chflags_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB)\n\nTEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chmod(SB)\nGLOBL\t·libc_chmod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB)\n\nTEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chown(SB)\nGLOBL\t·libc_chown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB)\n\nTEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_chroot(SB)\nGLOBL\t·libc_chroot_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB)\n\nTEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_clock_gettime(SB)\nGLOBL\t·libc_clock_gettime_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB)\n\nTEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_close(SB)\nGLOBL\t·libc_close_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB)\n\nTEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup(SB)\nGLOBL\t·libc_dup_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB)\n\nTEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup2(SB)\nGLOBL\t·libc_dup2_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB)\n\nTEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_dup3(SB)\nGLOBL\t·libc_dup3_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB)\n\nTEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_exit(SB)\nGLOBL\t·libc_exit_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB)\n\nTEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_faccessat(SB)\nGLOBL\t·libc_faccessat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB)\n\nTEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchdir(SB)\nGLOBL\t·libc_fchdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB)\n\nTEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchflags(SB)\nGLOBL\t·libc_fchflags_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB)\n\nTEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmod(SB)\nGLOBL\t·libc_fchmod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB)\n\nTEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchmodat(SB)\nGLOBL\t·libc_fchmodat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB)\n\nTEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchown(SB)\nGLOBL\t·libc_fchown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB)\n\nTEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fchownat(SB)\nGLOBL\t·libc_fchownat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB)\n\nTEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_flock(SB)\nGLOBL\t·libc_flock_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB)\n\nTEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fpathconf(SB)\nGLOBL\t·libc_fpathconf_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB)\n\nTEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstat(SB)\nGLOBL\t·libc_fstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB)\n\nTEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatat(SB)\nGLOBL\t·libc_fstatat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB)\n\nTEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fstatfs(SB)\nGLOBL\t·libc_fstatfs_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB)\n\nTEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_fsync(SB)\nGLOBL\t·libc_fsync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB)\n\nTEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_ftruncate(SB)\nGLOBL\t·libc_ftruncate_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB)\n\nTEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getegid(SB)\nGLOBL\t·libc_getegid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB)\n\nTEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_geteuid(SB)\nGLOBL\t·libc_geteuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB)\n\nTEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getgid(SB)\nGLOBL\t·libc_getgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB)\n\nTEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgid(SB)\nGLOBL\t·libc_getpgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB)\n\nTEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpgrp(SB)\nGLOBL\t·libc_getpgrp_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB)\n\nTEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpid(SB)\nGLOBL\t·libc_getpid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB)\n\nTEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getppid(SB)\nGLOBL\t·libc_getppid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB)\n\nTEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getpriority(SB)\nGLOBL\t·libc_getpriority_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB)\n\nTEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrlimit(SB)\nGLOBL\t·libc_getrlimit_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB)\n\nTEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrtable(SB)\nGLOBL\t·libc_getrtable_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB)\n\nTEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getrusage(SB)\nGLOBL\t·libc_getrusage_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB)\n\nTEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getsid(SB)\nGLOBL\t·libc_getsid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB)\n\nTEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_gettimeofday(SB)\nGLOBL\t·libc_gettimeofday_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB)\n\nTEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getuid(SB)\nGLOBL\t·libc_getuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB)\n\nTEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_issetugid(SB)\nGLOBL\t·libc_issetugid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB)\n\nTEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kill(SB)\nGLOBL\t·libc_kill_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB)\n\nTEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_kqueue(SB)\nGLOBL\t·libc_kqueue_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB)\n\nTEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lchown(SB)\nGLOBL\t·libc_lchown_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB)\n\nTEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_link(SB)\nGLOBL\t·libc_link_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB)\n\nTEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_linkat(SB)\nGLOBL\t·libc_linkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB)\n\nTEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_listen(SB)\nGLOBL\t·libc_listen_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB)\n\nTEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lstat(SB)\nGLOBL\t·libc_lstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB)\n\nTEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdir(SB)\nGLOBL\t·libc_mkdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB)\n\nTEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkdirat(SB)\nGLOBL\t·libc_mkdirat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB)\n\nTEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifo(SB)\nGLOBL\t·libc_mkfifo_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB)\n\nTEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mkfifoat(SB)\nGLOBL\t·libc_mkfifoat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB)\n\nTEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknod(SB)\nGLOBL\t·libc_mknod_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB)\n\nTEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mknodat(SB)\nGLOBL\t·libc_mknodat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB)\n\nTEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mount(SB)\nGLOBL\t·libc_mount_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB)\n\nTEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_nanosleep(SB)\nGLOBL\t·libc_nanosleep_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB)\n\nTEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_open(SB)\nGLOBL\t·libc_open_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB)\n\nTEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_openat(SB)\nGLOBL\t·libc_openat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB)\n\nTEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pathconf(SB)\nGLOBL\t·libc_pathconf_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB)\n\nTEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pread(SB)\nGLOBL\t·libc_pread_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB)\n\nTEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pwrite(SB)\nGLOBL\t·libc_pwrite_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB)\n\nTEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_read(SB)\nGLOBL\t·libc_read_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB)\n\nTEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlink(SB)\nGLOBL\t·libc_readlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB)\n\nTEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_readlinkat(SB)\nGLOBL\t·libc_readlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB)\n\nTEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rename(SB)\nGLOBL\t·libc_rename_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB)\n\nTEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_renameat(SB)\nGLOBL\t·libc_renameat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB)\n\nTEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_revoke(SB)\nGLOBL\t·libc_revoke_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB)\n\nTEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_rmdir(SB)\nGLOBL\t·libc_rmdir_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB)\n\nTEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_lseek(SB)\nGLOBL\t·libc_lseek_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB)\n\nTEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_select(SB)\nGLOBL\t·libc_select_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB)\n\nTEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setegid(SB)\nGLOBL\t·libc_setegid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB)\n\nTEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_seteuid(SB)\nGLOBL\t·libc_seteuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB)\n\nTEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setgid(SB)\nGLOBL\t·libc_setgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB)\n\nTEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setlogin(SB)\nGLOBL\t·libc_setlogin_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB)\n\nTEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpgid(SB)\nGLOBL\t·libc_setpgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB)\n\nTEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setpriority(SB)\nGLOBL\t·libc_setpriority_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB)\n\nTEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setregid(SB)\nGLOBL\t·libc_setregid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB)\n\nTEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setreuid(SB)\nGLOBL\t·libc_setreuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB)\n\nTEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setresgid(SB)\nGLOBL\t·libc_setresgid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB)\n\nTEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setresuid(SB)\nGLOBL\t·libc_setresuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB)\n\nTEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setrtable(SB)\nGLOBL\t·libc_setrtable_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB)\n\nTEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setsid(SB)\nGLOBL\t·libc_setsid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB)\n\nTEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_settimeofday(SB)\nGLOBL\t·libc_settimeofday_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB)\n\nTEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_setuid(SB)\nGLOBL\t·libc_setuid_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB)\n\nTEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_stat(SB)\nGLOBL\t·libc_stat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB)\n\nTEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_statfs(SB)\nGLOBL\t·libc_statfs_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB)\n\nTEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlink(SB)\nGLOBL\t·libc_symlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB)\n\nTEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_symlinkat(SB)\nGLOBL\t·libc_symlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB)\n\nTEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_sync(SB)\nGLOBL\t·libc_sync_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB)\n\nTEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_truncate(SB)\nGLOBL\t·libc_truncate_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB)\n\nTEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_umask(SB)\nGLOBL\t·libc_umask_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB)\n\nTEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlink(SB)\nGLOBL\t·libc_unlink_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB)\n\nTEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unlinkat(SB)\nGLOBL\t·libc_unlinkat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB)\n\nTEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unmount(SB)\nGLOBL\t·libc_unmount_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB)\n\nTEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_write(SB)\nGLOBL\t·libc_write_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB)\n\nTEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_mmap(SB)\nGLOBL\t·libc_mmap_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB)\n\nTEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_munmap(SB)\nGLOBL\t·libc_munmap_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB)\n\nTEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_getfsstat(SB)\nGLOBL\t·libc_getfsstat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB)\n\nTEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_utimensat(SB)\nGLOBL\t·libc_utimensat_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB)\n\nTEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_pledge(SB)\nGLOBL\t·libc_pledge_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_pledge_trampoline_addr(SB)/8, $libc_pledge_trampoline<>(SB)\n\nTEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0\n\tJMP\tlibc_unveil(SB)\nGLOBL\t·libc_unveil_trampoline_addr(SB), RODATA, $8\nDATA\t·libc_unveil_trampoline_addr(SB)/8, $libc_unveil_trampoline<>(SB)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go",
    "content": "// go run mksyscall_solaris.go -tags solaris,amd64 syscall_solaris.go syscall_solaris_amd64.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build solaris && amd64\n\npackage unix\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n//go:cgo_import_dynamic libc_pipe pipe \"libc.so\"\n//go:cgo_import_dynamic libc_pipe2 pipe2 \"libc.so\"\n//go:cgo_import_dynamic libc_getsockname getsockname \"libsocket.so\"\n//go:cgo_import_dynamic libc_getcwd getcwd \"libc.so\"\n//go:cgo_import_dynamic libc_getgroups getgroups \"libc.so\"\n//go:cgo_import_dynamic libc_setgroups setgroups \"libc.so\"\n//go:cgo_import_dynamic libc_wait4 wait4 \"libc.so\"\n//go:cgo_import_dynamic libc_gethostname gethostname \"libc.so\"\n//go:cgo_import_dynamic libc_utimes utimes \"libc.so\"\n//go:cgo_import_dynamic libc_utimensat utimensat \"libc.so\"\n//go:cgo_import_dynamic libc_fcntl fcntl \"libc.so\"\n//go:cgo_import_dynamic libc_futimesat futimesat \"libc.so\"\n//go:cgo_import_dynamic libc_accept accept \"libsocket.so\"\n//go:cgo_import_dynamic libc___xnet_recvmsg __xnet_recvmsg \"libsocket.so\"\n//go:cgo_import_dynamic libc___xnet_sendmsg __xnet_sendmsg \"libsocket.so\"\n//go:cgo_import_dynamic libc_acct acct \"libc.so\"\n//go:cgo_import_dynamic libc___makedev __makedev \"libc.so\"\n//go:cgo_import_dynamic libc___major __major \"libc.so\"\n//go:cgo_import_dynamic libc___minor __minor \"libc.so\"\n//go:cgo_import_dynamic libc_ioctl ioctl \"libc.so\"\n//go:cgo_import_dynamic libc_poll poll \"libc.so\"\n//go:cgo_import_dynamic libc_access access \"libc.so\"\n//go:cgo_import_dynamic libc_adjtime adjtime \"libc.so\"\n//go:cgo_import_dynamic libc_chdir chdir \"libc.so\"\n//go:cgo_import_dynamic libc_chmod chmod \"libc.so\"\n//go:cgo_import_dynamic libc_chown chown \"libc.so\"\n//go:cgo_import_dynamic libc_chroot chroot \"libc.so\"\n//go:cgo_import_dynamic libc_clockgettime clockgettime \"libc.so\"\n//go:cgo_import_dynamic libc_close close \"libc.so\"\n//go:cgo_import_dynamic libc_creat creat \"libc.so\"\n//go:cgo_import_dynamic libc_dup dup \"libc.so\"\n//go:cgo_import_dynamic libc_dup2 dup2 \"libc.so\"\n//go:cgo_import_dynamic libc_exit exit \"libc.so\"\n//go:cgo_import_dynamic libc_faccessat faccessat \"libc.so\"\n//go:cgo_import_dynamic libc_fchdir fchdir \"libc.so\"\n//go:cgo_import_dynamic libc_fchmod fchmod \"libc.so\"\n//go:cgo_import_dynamic libc_fchmodat fchmodat \"libc.so\"\n//go:cgo_import_dynamic libc_fchown fchown \"libc.so\"\n//go:cgo_import_dynamic libc_fchownat fchownat \"libc.so\"\n//go:cgo_import_dynamic libc_fdatasync fdatasync \"libc.so\"\n//go:cgo_import_dynamic libc_flock flock \"libc.so\"\n//go:cgo_import_dynamic libc_fpathconf fpathconf \"libc.so\"\n//go:cgo_import_dynamic libc_fstat fstat \"libc.so\"\n//go:cgo_import_dynamic libc_fstatat fstatat \"libc.so\"\n//go:cgo_import_dynamic libc_fstatvfs fstatvfs \"libc.so\"\n//go:cgo_import_dynamic libc_getdents getdents \"libc.so\"\n//go:cgo_import_dynamic libc_getgid getgid \"libc.so\"\n//go:cgo_import_dynamic libc_getpid getpid \"libc.so\"\n//go:cgo_import_dynamic libc_getpgid getpgid \"libc.so\"\n//go:cgo_import_dynamic libc_getpgrp getpgrp \"libc.so\"\n//go:cgo_import_dynamic libc_geteuid geteuid \"libc.so\"\n//go:cgo_import_dynamic libc_getegid getegid \"libc.so\"\n//go:cgo_import_dynamic libc_getppid getppid \"libc.so\"\n//go:cgo_import_dynamic libc_getpriority getpriority \"libc.so\"\n//go:cgo_import_dynamic libc_getrlimit getrlimit \"libc.so\"\n//go:cgo_import_dynamic libc_getrusage getrusage \"libc.so\"\n//go:cgo_import_dynamic libc_getsid getsid \"libc.so\"\n//go:cgo_import_dynamic libc_gettimeofday gettimeofday \"libc.so\"\n//go:cgo_import_dynamic libc_getuid getuid \"libc.so\"\n//go:cgo_import_dynamic libc_kill kill \"libc.so\"\n//go:cgo_import_dynamic libc_lchown lchown \"libc.so\"\n//go:cgo_import_dynamic libc_link link \"libc.so\"\n//go:cgo_import_dynamic libc___xnet_llisten __xnet_llisten \"libsocket.so\"\n//go:cgo_import_dynamic libc_lstat lstat \"libc.so\"\n//go:cgo_import_dynamic libc_madvise madvise \"libc.so\"\n//go:cgo_import_dynamic libc_mkdir mkdir \"libc.so\"\n//go:cgo_import_dynamic libc_mkdirat mkdirat \"libc.so\"\n//go:cgo_import_dynamic libc_mkfifo mkfifo \"libc.so\"\n//go:cgo_import_dynamic libc_mkfifoat mkfifoat \"libc.so\"\n//go:cgo_import_dynamic libc_mknod mknod \"libc.so\"\n//go:cgo_import_dynamic libc_mknodat mknodat \"libc.so\"\n//go:cgo_import_dynamic libc_mlock mlock \"libc.so\"\n//go:cgo_import_dynamic libc_mlockall mlockall \"libc.so\"\n//go:cgo_import_dynamic libc_mprotect mprotect \"libc.so\"\n//go:cgo_import_dynamic libc_msync msync \"libc.so\"\n//go:cgo_import_dynamic libc_munlock munlock \"libc.so\"\n//go:cgo_import_dynamic libc_munlockall munlockall \"libc.so\"\n//go:cgo_import_dynamic libc_nanosleep nanosleep \"libc.so\"\n//go:cgo_import_dynamic libc_open open \"libc.so\"\n//go:cgo_import_dynamic libc_openat openat \"libc.so\"\n//go:cgo_import_dynamic libc_pathconf pathconf \"libc.so\"\n//go:cgo_import_dynamic libc_pause pause \"libc.so\"\n//go:cgo_import_dynamic libc_pread pread \"libc.so\"\n//go:cgo_import_dynamic libc_pwrite pwrite \"libc.so\"\n//go:cgo_import_dynamic libc_read read \"libc.so\"\n//go:cgo_import_dynamic libc_readlink readlink \"libc.so\"\n//go:cgo_import_dynamic libc_rename rename \"libc.so\"\n//go:cgo_import_dynamic libc_renameat renameat \"libc.so\"\n//go:cgo_import_dynamic libc_rmdir rmdir \"libc.so\"\n//go:cgo_import_dynamic libc_lseek lseek \"libc.so\"\n//go:cgo_import_dynamic libc_select select \"libc.so\"\n//go:cgo_import_dynamic libc_setegid setegid \"libc.so\"\n//go:cgo_import_dynamic libc_seteuid seteuid \"libc.so\"\n//go:cgo_import_dynamic libc_setgid setgid \"libc.so\"\n//go:cgo_import_dynamic libc_sethostname sethostname \"libc.so\"\n//go:cgo_import_dynamic libc_setpgid setpgid \"libc.so\"\n//go:cgo_import_dynamic libc_setpriority setpriority \"libc.so\"\n//go:cgo_import_dynamic libc_setregid setregid \"libc.so\"\n//go:cgo_import_dynamic libc_setreuid setreuid \"libc.so\"\n//go:cgo_import_dynamic libc_setsid setsid \"libc.so\"\n//go:cgo_import_dynamic libc_setuid setuid \"libc.so\"\n//go:cgo_import_dynamic libc_shutdown shutdown \"libsocket.so\"\n//go:cgo_import_dynamic libc_stat stat \"libc.so\"\n//go:cgo_import_dynamic libc_statvfs statvfs \"libc.so\"\n//go:cgo_import_dynamic libc_symlink symlink \"libc.so\"\n//go:cgo_import_dynamic libc_sync sync \"libc.so\"\n//go:cgo_import_dynamic libc_sysconf sysconf \"libc.so\"\n//go:cgo_import_dynamic libc_times times \"libc.so\"\n//go:cgo_import_dynamic libc_truncate truncate \"libc.so\"\n//go:cgo_import_dynamic libc_fsync fsync \"libc.so\"\n//go:cgo_import_dynamic libc_ftruncate ftruncate \"libc.so\"\n//go:cgo_import_dynamic libc_umask umask \"libc.so\"\n//go:cgo_import_dynamic libc_uname uname \"libc.so\"\n//go:cgo_import_dynamic libc_umount umount \"libc.so\"\n//go:cgo_import_dynamic libc_unlink unlink \"libc.so\"\n//go:cgo_import_dynamic libc_unlinkat unlinkat \"libc.so\"\n//go:cgo_import_dynamic libc_ustat ustat \"libc.so\"\n//go:cgo_import_dynamic libc_utime utime \"libc.so\"\n//go:cgo_import_dynamic libc___xnet_bind __xnet_bind \"libsocket.so\"\n//go:cgo_import_dynamic libc___xnet_connect __xnet_connect \"libsocket.so\"\n//go:cgo_import_dynamic libc_mmap mmap \"libc.so\"\n//go:cgo_import_dynamic libc_munmap munmap \"libc.so\"\n//go:cgo_import_dynamic libc_sendfile sendfile \"libsendfile.so\"\n//go:cgo_import_dynamic libc___xnet_sendto __xnet_sendto \"libsocket.so\"\n//go:cgo_import_dynamic libc___xnet_socket __xnet_socket \"libsocket.so\"\n//go:cgo_import_dynamic libc___xnet_socketpair __xnet_socketpair \"libsocket.so\"\n//go:cgo_import_dynamic libc_write write \"libc.so\"\n//go:cgo_import_dynamic libc___xnet_getsockopt __xnet_getsockopt \"libsocket.so\"\n//go:cgo_import_dynamic libc_getpeername getpeername \"libsocket.so\"\n//go:cgo_import_dynamic libc_setsockopt setsockopt \"libsocket.so\"\n//go:cgo_import_dynamic libc_recvfrom recvfrom \"libsocket.so\"\n//go:cgo_import_dynamic libc_getpeerucred getpeerucred \"libc.so\"\n//go:cgo_import_dynamic libc_ucred_get ucred_get \"libc.so\"\n//go:cgo_import_dynamic libc_ucred_geteuid ucred_geteuid \"libc.so\"\n//go:cgo_import_dynamic libc_ucred_getegid ucred_getegid \"libc.so\"\n//go:cgo_import_dynamic libc_ucred_getruid ucred_getruid \"libc.so\"\n//go:cgo_import_dynamic libc_ucred_getrgid ucred_getrgid \"libc.so\"\n//go:cgo_import_dynamic libc_ucred_getsuid ucred_getsuid \"libc.so\"\n//go:cgo_import_dynamic libc_ucred_getsgid ucred_getsgid \"libc.so\"\n//go:cgo_import_dynamic libc_ucred_getpid ucred_getpid \"libc.so\"\n//go:cgo_import_dynamic libc_ucred_free ucred_free \"libc.so\"\n//go:cgo_import_dynamic libc_port_create port_create \"libc.so\"\n//go:cgo_import_dynamic libc_port_associate port_associate \"libc.so\"\n//go:cgo_import_dynamic libc_port_dissociate port_dissociate \"libc.so\"\n//go:cgo_import_dynamic libc_port_get port_get \"libc.so\"\n//go:cgo_import_dynamic libc_port_getn port_getn \"libc.so\"\n//go:cgo_import_dynamic libc_putmsg putmsg \"libc.so\"\n//go:cgo_import_dynamic libc_getmsg getmsg \"libc.so\"\n\n//go:linkname procpipe libc_pipe\n//go:linkname procpipe2 libc_pipe2\n//go:linkname procgetsockname libc_getsockname\n//go:linkname procGetcwd libc_getcwd\n//go:linkname procgetgroups libc_getgroups\n//go:linkname procsetgroups libc_setgroups\n//go:linkname procwait4 libc_wait4\n//go:linkname procgethostname libc_gethostname\n//go:linkname procutimes libc_utimes\n//go:linkname procutimensat libc_utimensat\n//go:linkname procfcntl libc_fcntl\n//go:linkname procfutimesat libc_futimesat\n//go:linkname procaccept libc_accept\n//go:linkname proc__xnet_recvmsg libc___xnet_recvmsg\n//go:linkname proc__xnet_sendmsg libc___xnet_sendmsg\n//go:linkname procacct libc_acct\n//go:linkname proc__makedev libc___makedev\n//go:linkname proc__major libc___major\n//go:linkname proc__minor libc___minor\n//go:linkname procioctl libc_ioctl\n//go:linkname procpoll libc_poll\n//go:linkname procAccess libc_access\n//go:linkname procAdjtime libc_adjtime\n//go:linkname procChdir libc_chdir\n//go:linkname procChmod libc_chmod\n//go:linkname procChown libc_chown\n//go:linkname procChroot libc_chroot\n//go:linkname procClockGettime libc_clockgettime\n//go:linkname procClose libc_close\n//go:linkname procCreat libc_creat\n//go:linkname procDup libc_dup\n//go:linkname procDup2 libc_dup2\n//go:linkname procExit libc_exit\n//go:linkname procFaccessat libc_faccessat\n//go:linkname procFchdir libc_fchdir\n//go:linkname procFchmod libc_fchmod\n//go:linkname procFchmodat libc_fchmodat\n//go:linkname procFchown libc_fchown\n//go:linkname procFchownat libc_fchownat\n//go:linkname procFdatasync libc_fdatasync\n//go:linkname procFlock libc_flock\n//go:linkname procFpathconf libc_fpathconf\n//go:linkname procFstat libc_fstat\n//go:linkname procFstatat libc_fstatat\n//go:linkname procFstatvfs libc_fstatvfs\n//go:linkname procGetdents libc_getdents\n//go:linkname procGetgid libc_getgid\n//go:linkname procGetpid libc_getpid\n//go:linkname procGetpgid libc_getpgid\n//go:linkname procGetpgrp libc_getpgrp\n//go:linkname procGeteuid libc_geteuid\n//go:linkname procGetegid libc_getegid\n//go:linkname procGetppid libc_getppid\n//go:linkname procGetpriority libc_getpriority\n//go:linkname procGetrlimit libc_getrlimit\n//go:linkname procGetrusage libc_getrusage\n//go:linkname procGetsid libc_getsid\n//go:linkname procGettimeofday libc_gettimeofday\n//go:linkname procGetuid libc_getuid\n//go:linkname procKill libc_kill\n//go:linkname procLchown libc_lchown\n//go:linkname procLink libc_link\n//go:linkname proc__xnet_llisten libc___xnet_llisten\n//go:linkname procLstat libc_lstat\n//go:linkname procMadvise libc_madvise\n//go:linkname procMkdir libc_mkdir\n//go:linkname procMkdirat libc_mkdirat\n//go:linkname procMkfifo libc_mkfifo\n//go:linkname procMkfifoat libc_mkfifoat\n//go:linkname procMknod libc_mknod\n//go:linkname procMknodat libc_mknodat\n//go:linkname procMlock libc_mlock\n//go:linkname procMlockall libc_mlockall\n//go:linkname procMprotect libc_mprotect\n//go:linkname procMsync libc_msync\n//go:linkname procMunlock libc_munlock\n//go:linkname procMunlockall libc_munlockall\n//go:linkname procNanosleep libc_nanosleep\n//go:linkname procOpen libc_open\n//go:linkname procOpenat libc_openat\n//go:linkname procPathconf libc_pathconf\n//go:linkname procPause libc_pause\n//go:linkname procpread libc_pread\n//go:linkname procpwrite libc_pwrite\n//go:linkname procread libc_read\n//go:linkname procReadlink libc_readlink\n//go:linkname procRename libc_rename\n//go:linkname procRenameat libc_renameat\n//go:linkname procRmdir libc_rmdir\n//go:linkname proclseek libc_lseek\n//go:linkname procSelect libc_select\n//go:linkname procSetegid libc_setegid\n//go:linkname procSeteuid libc_seteuid\n//go:linkname procSetgid libc_setgid\n//go:linkname procSethostname libc_sethostname\n//go:linkname procSetpgid libc_setpgid\n//go:linkname procSetpriority libc_setpriority\n//go:linkname procSetregid libc_setregid\n//go:linkname procSetreuid libc_setreuid\n//go:linkname procSetsid libc_setsid\n//go:linkname procSetuid libc_setuid\n//go:linkname procshutdown libc_shutdown\n//go:linkname procStat libc_stat\n//go:linkname procStatvfs libc_statvfs\n//go:linkname procSymlink libc_symlink\n//go:linkname procSync libc_sync\n//go:linkname procSysconf libc_sysconf\n//go:linkname procTimes libc_times\n//go:linkname procTruncate libc_truncate\n//go:linkname procFsync libc_fsync\n//go:linkname procFtruncate libc_ftruncate\n//go:linkname procUmask libc_umask\n//go:linkname procUname libc_uname\n//go:linkname procumount libc_umount\n//go:linkname procUnlink libc_unlink\n//go:linkname procUnlinkat libc_unlinkat\n//go:linkname procUstat libc_ustat\n//go:linkname procUtime libc_utime\n//go:linkname proc__xnet_bind libc___xnet_bind\n//go:linkname proc__xnet_connect libc___xnet_connect\n//go:linkname procmmap libc_mmap\n//go:linkname procmunmap libc_munmap\n//go:linkname procsendfile libc_sendfile\n//go:linkname proc__xnet_sendto libc___xnet_sendto\n//go:linkname proc__xnet_socket libc___xnet_socket\n//go:linkname proc__xnet_socketpair libc___xnet_socketpair\n//go:linkname procwrite libc_write\n//go:linkname proc__xnet_getsockopt libc___xnet_getsockopt\n//go:linkname procgetpeername libc_getpeername\n//go:linkname procsetsockopt libc_setsockopt\n//go:linkname procrecvfrom libc_recvfrom\n//go:linkname procgetpeerucred libc_getpeerucred\n//go:linkname procucred_get libc_ucred_get\n//go:linkname procucred_geteuid libc_ucred_geteuid\n//go:linkname procucred_getegid libc_ucred_getegid\n//go:linkname procucred_getruid libc_ucred_getruid\n//go:linkname procucred_getrgid libc_ucred_getrgid\n//go:linkname procucred_getsuid libc_ucred_getsuid\n//go:linkname procucred_getsgid libc_ucred_getsgid\n//go:linkname procucred_getpid libc_ucred_getpid\n//go:linkname procucred_free libc_ucred_free\n//go:linkname procport_create libc_port_create\n//go:linkname procport_associate libc_port_associate\n//go:linkname procport_dissociate libc_port_dissociate\n//go:linkname procport_get libc_port_get\n//go:linkname procport_getn libc_port_getn\n//go:linkname procputmsg libc_putmsg\n//go:linkname procgetmsg libc_getmsg\n\nvar (\n\tprocpipe,\n\tprocpipe2,\n\tprocgetsockname,\n\tprocGetcwd,\n\tprocgetgroups,\n\tprocsetgroups,\n\tprocwait4,\n\tprocgethostname,\n\tprocutimes,\n\tprocutimensat,\n\tprocfcntl,\n\tprocfutimesat,\n\tprocaccept,\n\tproc__xnet_recvmsg,\n\tproc__xnet_sendmsg,\n\tprocacct,\n\tproc__makedev,\n\tproc__major,\n\tproc__minor,\n\tprocioctl,\n\tprocpoll,\n\tprocAccess,\n\tprocAdjtime,\n\tprocChdir,\n\tprocChmod,\n\tprocChown,\n\tprocChroot,\n\tprocClockGettime,\n\tprocClose,\n\tprocCreat,\n\tprocDup,\n\tprocDup2,\n\tprocExit,\n\tprocFaccessat,\n\tprocFchdir,\n\tprocFchmod,\n\tprocFchmodat,\n\tprocFchown,\n\tprocFchownat,\n\tprocFdatasync,\n\tprocFlock,\n\tprocFpathconf,\n\tprocFstat,\n\tprocFstatat,\n\tprocFstatvfs,\n\tprocGetdents,\n\tprocGetgid,\n\tprocGetpid,\n\tprocGetpgid,\n\tprocGetpgrp,\n\tprocGeteuid,\n\tprocGetegid,\n\tprocGetppid,\n\tprocGetpriority,\n\tprocGetrlimit,\n\tprocGetrusage,\n\tprocGetsid,\n\tprocGettimeofday,\n\tprocGetuid,\n\tprocKill,\n\tprocLchown,\n\tprocLink,\n\tproc__xnet_llisten,\n\tprocLstat,\n\tprocMadvise,\n\tprocMkdir,\n\tprocMkdirat,\n\tprocMkfifo,\n\tprocMkfifoat,\n\tprocMknod,\n\tprocMknodat,\n\tprocMlock,\n\tprocMlockall,\n\tprocMprotect,\n\tprocMsync,\n\tprocMunlock,\n\tprocMunlockall,\n\tprocNanosleep,\n\tprocOpen,\n\tprocOpenat,\n\tprocPathconf,\n\tprocPause,\n\tprocpread,\n\tprocpwrite,\n\tprocread,\n\tprocReadlink,\n\tprocRename,\n\tprocRenameat,\n\tprocRmdir,\n\tproclseek,\n\tprocSelect,\n\tprocSetegid,\n\tprocSeteuid,\n\tprocSetgid,\n\tprocSethostname,\n\tprocSetpgid,\n\tprocSetpriority,\n\tprocSetregid,\n\tprocSetreuid,\n\tprocSetsid,\n\tprocSetuid,\n\tprocshutdown,\n\tprocStat,\n\tprocStatvfs,\n\tprocSymlink,\n\tprocSync,\n\tprocSysconf,\n\tprocTimes,\n\tprocTruncate,\n\tprocFsync,\n\tprocFtruncate,\n\tprocUmask,\n\tprocUname,\n\tprocumount,\n\tprocUnlink,\n\tprocUnlinkat,\n\tprocUstat,\n\tprocUtime,\n\tproc__xnet_bind,\n\tproc__xnet_connect,\n\tprocmmap,\n\tprocmunmap,\n\tprocsendfile,\n\tproc__xnet_sendto,\n\tproc__xnet_socket,\n\tproc__xnet_socketpair,\n\tprocwrite,\n\tproc__xnet_getsockopt,\n\tprocgetpeername,\n\tprocsetsockopt,\n\tprocrecvfrom,\n\tprocgetpeerucred,\n\tprocucred_get,\n\tprocucred_geteuid,\n\tprocucred_getegid,\n\tprocucred_getruid,\n\tprocucred_getrgid,\n\tprocucred_getsuid,\n\tprocucred_getsgid,\n\tprocucred_getpid,\n\tprocucred_free,\n\tprocport_create,\n\tprocport_associate,\n\tprocport_dissociate,\n\tprocport_get,\n\tprocport_getn,\n\tprocputmsg,\n\tprocgetmsg syscallFunc\n)\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe(p *[2]_C_int) (n int, err error) {\n\tr0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procpipe)), 1, uintptr(unsafe.Pointer(p)), 0, 0, 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe2(p *[2]_C_int, flags int) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procpipe2)), 2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgetsockname)), 3, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getcwd(buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetcwd)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), 0, 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(ngid int, gid *_Gid_t) (n int, err error) {\n\tr0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procgetgroups)), 2, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0, 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(ngid int, gid *_Gid_t) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procsetgroups)), 2, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc wait4(pid int32, statusp *_C_int, options int, rusage *Rusage) (wpid int32, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwait4)), 4, uintptr(pid), uintptr(unsafe.Pointer(statusp)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)\n\twpid = int32(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc gethostname(buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgethostname)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), 0, 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, times *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procutimes)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimensat(fd int, path string, times *[2]Timespec, flag int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procutimensat)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flag), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(arg), 0, 0, 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc futimesat(fildes int, path *byte, times *[2]Timeval) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfutimesat)), 3, uintptr(fildes), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times)), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procaccept)), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_recvmsg)), 3, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_sendmsg)), 3, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc acct(path *byte) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procacct)), 1, uintptr(unsafe.Pointer(path)), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc __makedev(version int, major uint, minor uint) (val uint64) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&proc__makedev)), 3, uintptr(version), uintptr(major), uintptr(minor), 0, 0, 0)\n\tval = uint64(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc __major(version int, dev uint64) (val uint) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&proc__major)), 2, uintptr(version), uintptr(dev), 0, 0, 0, 0)\n\tval = uint(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc __minor(version int, dev uint64) (val uint) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&proc__minor)), 2, uintptr(version), uintptr(dev), 0, 0, 0, 0)\n\tval = uint(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlRet(fd int, req int, arg uintptr) (ret int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procioctl)), 3, uintptr(fd), uintptr(req), uintptr(arg), 0, 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtrRet(fd int, req int, arg unsafe.Pointer) (ret int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procioctl)), 3, uintptr(fd), uintptr(req), uintptr(arg), 0, 0, 0)\n\tret = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc poll(fds *PollFd, nfds int, timeout int) (n int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpoll)), 3, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout), 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procAccess)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Adjtime(delta *Timeval, olddelta *Timeval) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procAdjtime)), 2, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChdir)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChmod)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChown)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChroot)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ClockGettime(clockid int32, time *Timespec) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procClockGettime)), 2, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Close(fd int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procClose)), 1, uintptr(fd), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Creat(path string, mode uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procCreat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(fd int) (nfd int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procDup)), 1, uintptr(fd), 0, 0, 0, 0, 0)\n\tnfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(oldfd int, newfd int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procDup2)), 2, uintptr(oldfd), uintptr(newfd), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\tsysvicall6(uintptr(unsafe.Pointer(&procExit)), 1, uintptr(code), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFaccessat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchdir)), 1, uintptr(fd), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchmod)), 2, uintptr(fd), uintptr(mode), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchmodat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchown)), 3, uintptr(fd), uintptr(uid), uintptr(gid), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchownat)), 5, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fdatasync(fd int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFdatasync)), 1, uintptr(fd), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Flock(fd int, how int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFlock)), 2, uintptr(fd), uintptr(how), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fpathconf(fd int, name int) (val int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFpathconf)), 2, uintptr(fd), uintptr(name), 0, 0, 0, 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstat(fd int, stat *Stat_t) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFstat)), 2, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFstatat)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatvfs(fd int, vfsstat *Statvfs_t) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFstatvfs)), 2, uintptr(fd), uintptr(unsafe.Pointer(vfsstat)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getdents(fd int, buf []byte, basep *uintptr) (n int, err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetdents)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetgid)), 0, 0, 0, 0, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpid)), 0, 0, 0, 0, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpgid)), 1, uintptr(pid), 0, 0, 0, 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgrp() (pgid int, err error) {\n\tr0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpgrp)), 0, 0, 0, 0, 0, 0, 0)\n\tpgid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGeteuid)), 0, 0, 0, 0, 0, 0, 0)\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGetegid)), 0, 0, 0, 0, 0, 0, 0)\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (ppid int) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGetppid)), 0, 0, 0, 0, 0, 0, 0)\n\tppid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (n int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetpriority)), 2, uintptr(which), uintptr(who), 0, 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(which int, lim *Rlimit) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetrlimit)), 2, uintptr(which), uintptr(unsafe.Pointer(lim)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrusage(who int, rusage *Rusage) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetrusage)), 2, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetsid)), 1, uintptr(pid), 0, 0, 0, 0, 0)\n\tsid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGettimeofday)), 1, uintptr(unsafe.Pointer(tv)), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetuid)), 0, 0, 0, 0, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, signum syscall.Signal) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procKill)), 2, uintptr(pid), uintptr(signum), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procLchown)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procLink)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, backlog int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_llisten)), 2, uintptr(s), uintptr(backlog), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lstat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procLstat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Madvise(b []byte, advice int) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMadvise)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(advice), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkdir)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkdirat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkfifo)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifoat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkfifoat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMknod)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMknodat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlock(b []byte) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMlock)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mlockall(flags int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMlockall)), 1, uintptr(flags), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMprotect)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(prot), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMsync)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(flags), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlock(b []byte) (err error) {\n\tvar _p0 *byte\n\tif len(b) > 0 {\n\t\t_p0 = &b[0]\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMunlock)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Munlockall() (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMunlockall)), 0, 0, 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Nanosleep(time *Timespec, leftover *Timespec) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procNanosleep)), 2, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procOpen)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procOpenat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pathconf(path string, name int) (val int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procPathconf)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0, 0, 0, 0)\n\tval = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pause() (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procPause)), 0, 0, 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpread)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpwrite)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(offset), 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procread)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\tif len(buf) > 0 {\n\t\t_p1 = &buf[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procReadlink)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(len(buf)), 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procRename)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procRenameat)), 4, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procRmdir)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (newoffset int64, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proclseek)), 3, uintptr(fd), uintptr(offset), uintptr(whence), 0, 0, 0)\n\tnewoffset = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSelect)), 5, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetegid)), 1, uintptr(egid), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSeteuid)), 1, uintptr(euid), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(gid int) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetgid)), 1, uintptr(gid), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sethostname(p []byte) (err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSethostname)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetpgid)), 2, uintptr(pid), uintptr(pgid), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSetpriority)), 3, uintptr(which), uintptr(who), uintptr(prio), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetregid)), 2, uintptr(rgid), uintptr(egid), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetreuid)), 2, uintptr(ruid), uintptr(euid), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetsid)), 0, 0, 0, 0, 0, 0, 0)\n\tpid = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetuid)), 1, uintptr(uid), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(s int, how int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procshutdown)), 2, uintptr(s), uintptr(how), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Stat(path string, stat *Stat_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procStat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Statvfs(path string, vfsstat *Statvfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procStatvfs)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(vfsstat)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSymlink)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSync)), 0, 0, 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sysconf(which int) (n int64, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSysconf)), 1, uintptr(which), 0, 0, 0, 0, 0)\n\tn = int64(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Times(tms *Tms) (ticks uintptr, err error) {\n\tr0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procTimes)), 1, uintptr(unsafe.Pointer(tms)), 0, 0, 0, 0, 0)\n\tticks = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procTruncate)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFsync)), 1, uintptr(fd), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFtruncate)), 2, uintptr(fd), uintptr(length), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(mask int) (oldmask int) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procUmask)), 1, uintptr(mask), 0, 0, 0, 0, 0)\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Uname(buf *Utsname) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procUname)), 1, uintptr(unsafe.Pointer(buf)), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unmount(target string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(target)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procumount)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUnlink)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUnlinkat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ustat(dev int, ubuf *Ustat_t) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUstat)), 2, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, buf *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUtime)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_bind)), 3, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_connect)), 3, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procmmap)), 6, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))\n\tret = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procmunmap)), 2, uintptr(addr), uintptr(length), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procsendfile)), 4, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)\n\twritten = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_sendto)), 6, uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_socket)), 3, uintptr(domain), uintptr(typ), uintptr(proto), 0, 0, 0)\n\tfd = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&proc__xnet_socketpair)), 4, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwrite)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_getsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\t_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procgetpeername)), 3, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procsetsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 *byte\n\tif len(p) > 0 {\n\t\t_p0 = &p[0]\n\t}\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procrecvfrom)), 6, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeerucred(fd uintptr, ucred *uintptr) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgetpeerucred)), 2, uintptr(fd), uintptr(unsafe.Pointer(ucred)), 0, 0, 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ucredGet(pid int) (ucred uintptr, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procucred_get)), 1, uintptr(pid), 0, 0, 0, 0, 0)\n\tucred = uintptr(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ucredGeteuid(ucred uintptr) (uid int) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_geteuid)), 1, uintptr(ucred), 0, 0, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ucredGetegid(ucred uintptr) (gid int) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getegid)), 1, uintptr(ucred), 0, 0, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ucredGetruid(ucred uintptr) (uid int) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getruid)), 1, uintptr(ucred), 0, 0, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ucredGetrgid(ucred uintptr) (gid int) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getrgid)), 1, uintptr(ucred), 0, 0, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ucredGetsuid(ucred uintptr) (uid int) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getsuid)), 1, uintptr(ucred), 0, 0, 0, 0, 0)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ucredGetsgid(ucred uintptr) (gid int) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getsgid)), 1, uintptr(ucred), 0, 0, 0, 0, 0)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ucredGetpid(ucred uintptr) (pid int) {\n\tr0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procucred_getpid)), 1, uintptr(ucred), 0, 0, 0, 0, 0)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ucredFree(ucred uintptr) {\n\tsysvicall6(uintptr(unsafe.Pointer(&procucred_free)), 1, uintptr(ucred), 0, 0, 0, 0, 0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc port_create() (n int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_create)), 0, 0, 0, 0, 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc port_associate(port int, source int, object uintptr, events int, user *byte) (n int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_associate)), 5, uintptr(port), uintptr(source), uintptr(object), uintptr(events), uintptr(unsafe.Pointer(user)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc port_dissociate(port int, source int, object uintptr) (n int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_dissociate)), 3, uintptr(port), uintptr(source), uintptr(object), 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc port_get(port int, pe *portEvent, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_get)), 3, uintptr(port), uintptr(unsafe.Pointer(pe)), uintptr(unsafe.Pointer(timeout)), 0, 0, 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc port_getn(port int, pe *portEvent, max uint32, nget *uint32, timeout *Timespec) (n int, err error) {\n\tr0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_getn)), 5, uintptr(port), uintptr(unsafe.Pointer(pe)), uintptr(max), uintptr(unsafe.Pointer(nget)), uintptr(unsafe.Pointer(timeout)), 0)\n\tn = int(r0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc putmsg(fd int, clptr *strbuf, dataptr *strbuf, flags int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procputmsg)), 4, uintptr(fd), uintptr(unsafe.Pointer(clptr)), uintptr(unsafe.Pointer(dataptr)), uintptr(flags), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getmsg(fd int, clptr *strbuf, dataptr *strbuf, flags *int) (err error) {\n\t_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgetmsg)), 4, uintptr(fd), uintptr(unsafe.Pointer(clptr)), uintptr(unsafe.Pointer(dataptr)), uintptr(unsafe.Pointer(flags)), 0, 0)\n\tif e1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go",
    "content": "// go run mksyscall_zos_s390x.go -o_sysnum zsysnum_zos_s390x.go -o_syscall zsyscall_zos_s390x.go -i_syscall syscall_zos_s390x.go -o_asm zsymaddr_zos_s390x.s\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build zos && s390x\n\npackage unix\n\nimport (\n\t\"runtime\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ syscall.Errno\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fcntl(fd int, cmd int, arg int) (val int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCNTL<<4, uintptr(fd), uintptr(cmd), uintptr(arg))\n\truntime.ExitSyscall()\n\tval = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Flistxattr(fd int, dest []byte) (sz int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p0 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FLISTXATTR_A<<4, uintptr(fd), uintptr(_p0), uintptr(len(dest)))\n\truntime.ExitSyscall()\n\tsz = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_FlistxattrAddr() *(func(fd int, dest []byte) (sz int, err error))\n\nvar Flistxattr = enter_Flistxattr\n\nfunc enter_Flistxattr(fd int, dest []byte) (sz int, err error) {\n\tfuncref := get_FlistxattrAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___FLISTXATTR_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Flistxattr\n\t} else {\n\t\t*funcref = error_Flistxattr\n\t}\n\treturn (*funcref)(fd, dest)\n}\n\nfunc error_Flistxattr(fd int, dest []byte) (sz int, err error) {\n\tsz = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Fremovexattr(fd int, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FREMOVEXATTR_A<<4, uintptr(fd), uintptr(unsafe.Pointer(_p0)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_FremovexattrAddr() *(func(fd int, attr string) (err error))\n\nvar Fremovexattr = enter_Fremovexattr\n\nfunc enter_Fremovexattr(fd int, attr string) (err error) {\n\tfuncref := get_FremovexattrAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___FREMOVEXATTR_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Fremovexattr\n\t} else {\n\t\t*funcref = error_Fremovexattr\n\t}\n\treturn (*funcref)(fd, attr)\n}\n\nfunc error_Fremovexattr(fd int, attr string) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc read(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_READ<<4, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\truntime.ExitSyscall()\n\tn = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc write(fd int, p []byte) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_WRITE<<4, uintptr(fd), uintptr(_p0), uintptr(len(p)))\n\truntime.ExitSyscall()\n\tn = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FGETXATTR_A<<4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))\n\truntime.ExitSyscall()\n\tsz = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_FgetxattrAddr() *(func(fd int, attr string, dest []byte) (sz int, err error))\n\nvar Fgetxattr = enter_Fgetxattr\n\nfunc enter_Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) {\n\tfuncref := get_FgetxattrAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___FGETXATTR_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Fgetxattr\n\t} else {\n\t\t*funcref = error_Fgetxattr\n\t}\n\treturn (*funcref)(fd, attr, dest)\n}\n\nfunc error_Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) {\n\tsz = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Fsetxattr(fd int, attr string, data []byte, flag int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(data) > 0 {\n\t\t_p1 = unsafe.Pointer(&data[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FSETXATTR_A<<4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(data)), uintptr(flag))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_FsetxattrAddr() *(func(fd int, attr string, data []byte, flag int) (err error))\n\nvar Fsetxattr = enter_Fsetxattr\n\nfunc enter_Fsetxattr(fd int, attr string, data []byte, flag int) (err error) {\n\tfuncref := get_FsetxattrAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___FSETXATTR_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Fsetxattr\n\t} else {\n\t\t*funcref = error_Fsetxattr\n\t}\n\treturn (*funcref)(fd, attr, data, flag)\n}\n\nfunc error_Fsetxattr(fd int, attr string, data []byte, flag int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___ACCEPT_A<<4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\truntime.ExitSyscall()\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___ACCEPT4_A<<4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags))\n\truntime.ExitSyscall()\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_accept4Addr() *(func(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error))\n\nvar accept4 = enter_accept4\n\nfunc enter_accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tfuncref := get_accept4Addr()\n\tif funcptrtest(GetZosLibVec()+SYS___ACCEPT4_A<<4, \"\") == 0 {\n\t\t*funcref = impl_accept4\n\t} else {\n\t\t*funcref = error_accept4\n\t}\n\treturn (*funcref)(s, rsa, addrlen, flags)\n}\n\nfunc error_accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {\n\tfd = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___BIND_A<<4, uintptr(s), uintptr(addr), uintptr(addrlen))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CONNECT_A<<4, uintptr(s), uintptr(addr), uintptr(addrlen))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getgroups(n int, list *_Gid_t) (nn int, err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETGROUPS<<4, uintptr(n), uintptr(unsafe.Pointer(list)))\n\tnn = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setgroups(n int, list *_Gid_t) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETGROUPS<<4, uintptr(n), uintptr(unsafe.Pointer(list)))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETSOCKOPT<<4, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETSOCKOPT<<4, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socket(domain int, typ int, proto int) (fd int, err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SOCKET<<4, uintptr(domain), uintptr(typ), uintptr(proto))\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SOCKETPAIR<<4, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___GETPEERNAME_A<<4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___GETSOCKNAME_A<<4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Removexattr(path string, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___REMOVEXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_RemovexattrAddr() *(func(path string, attr string) (err error))\n\nvar Removexattr = enter_Removexattr\n\nfunc enter_Removexattr(path string, attr string) (err error) {\n\tfuncref := get_RemovexattrAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___REMOVEXATTR_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Removexattr\n\t} else {\n\t\t*funcref = error_Removexattr\n\t}\n\treturn (*funcref)(path, attr)\n}\n\nfunc error_Removexattr(path string, attr string) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RECVFROM_A<<4, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\truntime.ExitSyscall()\n\tn = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SENDTO_A<<4, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RECVMSG_A<<4, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\truntime.ExitSyscall()\n\tn = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SENDMSG_A<<4, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))\n\truntime.ExitSyscall()\n\tn = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_MMAP<<4, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))\n\truntime.ExitSyscall()\n\tret = uintptr(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc munmap(addr uintptr, length uintptr) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_MUNMAP<<4, uintptr(addr), uintptr(length))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctl(fd int, req int, arg uintptr) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_IOCTL<<4, uintptr(fd), uintptr(req), uintptr(arg))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc ioctlPtr(fd int, req int, arg unsafe.Pointer) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_IOCTL<<4, uintptr(fd), uintptr(req), uintptr(arg))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmat(id int, addr uintptr, flag int) (ret uintptr, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SHMAT<<4, uintptr(id), uintptr(addr), uintptr(flag))\n\truntime.ExitSyscall()\n\tret = uintptr(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SHMCTL64<<4, uintptr(id), uintptr(cmd), uintptr(unsafe.Pointer(buf)))\n\truntime.ExitSyscall()\n\tresult = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmdt(addr uintptr) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SHMDT<<4, uintptr(addr))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc shmget(key int, size int, flag int) (id int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SHMGET<<4, uintptr(key), uintptr(size), uintptr(flag))\n\truntime.ExitSyscall()\n\tid = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Access(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___ACCESS_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CHDIR_A<<4, uintptr(unsafe.Pointer(_p0)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CHOWN_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CHMOD_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Creat(path string, mode uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CREAT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\truntime.ExitSyscall()\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup(oldfd int) (fd int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_DUP<<4, uintptr(oldfd))\n\truntime.ExitSyscall()\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Dup2(oldfd int, newfd int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_DUP2<<4, uintptr(oldfd), uintptr(newfd))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Dup3(oldfd int, newfd int, flags int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_DUP3<<4, uintptr(oldfd), uintptr(newfd), uintptr(flags))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_Dup3Addr() *(func(oldfd int, newfd int, flags int) (err error))\n\nvar Dup3 = enter_Dup3\n\nfunc enter_Dup3(oldfd int, newfd int, flags int) (err error) {\n\tfuncref := get_Dup3Addr()\n\tif funcptrtest(GetZosLibVec()+SYS_DUP3<<4, \"\") == 0 {\n\t\t*funcref = impl_Dup3\n\t} else {\n\t\t*funcref = error_Dup3\n\t}\n\treturn (*funcref)(oldfd, newfd, flags)\n}\n\nfunc error_Dup3(oldfd int, newfd int, flags int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Dirfd(dirp uintptr) (fd int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_DIRFD<<4, uintptr(dirp))\n\truntime.ExitSyscall()\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_DirfdAddr() *(func(dirp uintptr) (fd int, err error))\n\nvar Dirfd = enter_Dirfd\n\nfunc enter_Dirfd(dirp uintptr) (fd int, err error) {\n\tfuncref := get_DirfdAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_DIRFD<<4, \"\") == 0 {\n\t\t*funcref = impl_Dirfd\n\t} else {\n\t\t*funcref = error_Dirfd\n\t}\n\treturn (*funcref)(dirp)\n}\n\nfunc error_Dirfd(dirp uintptr) (fd int, err error) {\n\tfd = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_EpollCreate(size int) (fd int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EPOLL_CREATE<<4, uintptr(size))\n\truntime.ExitSyscall()\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_EpollCreateAddr() *(func(size int) (fd int, err error))\n\nvar EpollCreate = enter_EpollCreate\n\nfunc enter_EpollCreate(size int) (fd int, err error) {\n\tfuncref := get_EpollCreateAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_EPOLL_CREATE<<4, \"\") == 0 {\n\t\t*funcref = impl_EpollCreate\n\t} else {\n\t\t*funcref = error_EpollCreate\n\t}\n\treturn (*funcref)(size)\n}\n\nfunc error_EpollCreate(size int) (fd int, err error) {\n\tfd = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_EpollCreate1(flags int) (fd int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EPOLL_CREATE1<<4, uintptr(flags))\n\truntime.ExitSyscall()\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_EpollCreate1Addr() *(func(flags int) (fd int, err error))\n\nvar EpollCreate1 = enter_EpollCreate1\n\nfunc enter_EpollCreate1(flags int) (fd int, err error) {\n\tfuncref := get_EpollCreate1Addr()\n\tif funcptrtest(GetZosLibVec()+SYS_EPOLL_CREATE1<<4, \"\") == 0 {\n\t\t*funcref = impl_EpollCreate1\n\t} else {\n\t\t*funcref = error_EpollCreate1\n\t}\n\treturn (*funcref)(flags)\n}\n\nfunc error_EpollCreate1(flags int) (fd int, err error) {\n\tfd = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EPOLL_CTL<<4, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_EpollCtlAddr() *(func(epfd int, op int, fd int, event *EpollEvent) (err error))\n\nvar EpollCtl = enter_EpollCtl\n\nfunc enter_EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) {\n\tfuncref := get_EpollCtlAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_EPOLL_CTL<<4, \"\") == 0 {\n\t\t*funcref = impl_EpollCtl\n\t} else {\n\t\t*funcref = error_EpollCtl\n\t}\n\treturn (*funcref)(epfd, op, fd, event)\n}\n\nfunc error_EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_EpollPwait(epfd int, events []EpollEvent, msec int, sigmask *int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EPOLL_PWAIT<<4, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), uintptr(unsafe.Pointer(sigmask)))\n\truntime.ExitSyscall()\n\tn = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_EpollPwaitAddr() *(func(epfd int, events []EpollEvent, msec int, sigmask *int) (n int, err error))\n\nvar EpollPwait = enter_EpollPwait\n\nfunc enter_EpollPwait(epfd int, events []EpollEvent, msec int, sigmask *int) (n int, err error) {\n\tfuncref := get_EpollPwaitAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_EPOLL_PWAIT<<4, \"\") == 0 {\n\t\t*funcref = impl_EpollPwait\n\t} else {\n\t\t*funcref = error_EpollPwait\n\t}\n\treturn (*funcref)(epfd, events, msec, sigmask)\n}\n\nfunc error_EpollPwait(epfd int, events []EpollEvent, msec int, sigmask *int) (n int, err error) {\n\tn = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(events) > 0 {\n\t\t_p0 = unsafe.Pointer(&events[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EPOLL_WAIT<<4, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec))\n\truntime.ExitSyscall()\n\tn = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_EpollWaitAddr() *(func(epfd int, events []EpollEvent, msec int) (n int, err error))\n\nvar EpollWait = enter_EpollWait\n\nfunc enter_EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tfuncref := get_EpollWaitAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_EPOLL_WAIT<<4, \"\") == 0 {\n\t\t*funcref = impl_EpollWait\n\t} else {\n\t\t*funcref = error_EpollWait\n\t}\n\treturn (*funcref)(epfd, events, msec)\n}\n\nfunc error_EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {\n\tn = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Errno2() (er2 int) {\n\truntime.EnterSyscall()\n\tr0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS___ERRNO2<<4)\n\truntime.ExitSyscall()\n\ter2 = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Eventfd(initval uint, flags int) (fd int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_EVENTFD<<4, uintptr(initval), uintptr(flags))\n\truntime.ExitSyscall()\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_EventfdAddr() *(func(initval uint, flags int) (fd int, err error))\n\nvar Eventfd = enter_Eventfd\n\nfunc enter_Eventfd(initval uint, flags int) (fd int, err error) {\n\tfuncref := get_EventfdAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_EVENTFD<<4, \"\") == 0 {\n\t\t*funcref = impl_Eventfd\n\t} else {\n\t\t*funcref = error_Eventfd\n\t}\n\treturn (*funcref)(initval, flags)\n}\n\nfunc error_Eventfd(initval uint, flags int) (fd int, err error) {\n\tfd = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Exit(code int) {\n\truntime.EnterSyscall()\n\tCallLeFuncWithErr(GetZosLibVec()+SYS_EXIT<<4, uintptr(code))\n\truntime.ExitSyscall()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FACCESSAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_FaccessatAddr() *(func(dirfd int, path string, mode uint32, flags int) (err error))\n\nvar Faccessat = enter_Faccessat\n\nfunc enter_Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tfuncref := get_FaccessatAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___FACCESSAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Faccessat\n\t} else {\n\t\t*funcref = error_Faccessat\n\t}\n\treturn (*funcref)(dirfd, path, mode, flags)\n}\n\nfunc error_Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchdir(fd int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCHDIR<<4, uintptr(fd))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchmod(fd int, mode uint32) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCHMOD<<4, uintptr(fd), uintptr(mode))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FCHMODAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_FchmodatAddr() *(func(dirfd int, path string, mode uint32, flags int) (err error))\n\nvar Fchmodat = enter_Fchmodat\n\nfunc enter_Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\tfuncref := get_FchmodatAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___FCHMODAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Fchmodat\n\t} else {\n\t\t*funcref = error_Fchmodat\n\t}\n\treturn (*funcref)(dirfd, path, mode, flags)\n}\n\nfunc error_Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fchown(fd int, uid int, gid int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCHOWN<<4, uintptr(fd), uintptr(uid), uintptr(gid))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Fchownat(fd int, path string, uid int, gid int, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FCHOWNAT_A<<4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_FchownatAddr() *(func(fd int, path string, uid int, gid int, flags int) (err error))\n\nvar Fchownat = enter_Fchownat\n\nfunc enter_Fchownat(fd int, path string, uid int, gid int, flags int) (err error) {\n\tfuncref := get_FchownatAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___FCHOWNAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Fchownat\n\t} else {\n\t\t*funcref = error_Fchownat\n\t}\n\treturn (*funcref)(fd, path, uid, gid, flags)\n}\n\nfunc error_Fchownat(fd int, path string, uid int, gid int, flags int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc FcntlInt(fd uintptr, cmd int, arg int) (retval int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FCNTL<<4, uintptr(fd), uintptr(cmd), uintptr(arg))\n\truntime.ExitSyscall()\n\tretval = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Fdatasync(fd int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FDATASYNC<<4, uintptr(fd))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_FdatasyncAddr() *(func(fd int) (err error))\n\nvar Fdatasync = enter_Fdatasync\n\nfunc enter_Fdatasync(fd int) (err error) {\n\tfuncref := get_FdatasyncAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_FDATASYNC<<4, \"\") == 0 {\n\t\t*funcref = impl_Fdatasync\n\t} else {\n\t\t*funcref = error_Fdatasync\n\t}\n\treturn (*funcref)(fd)\n}\n\nfunc error_Fdatasync(fd int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc fstat(fd int, stat *Stat_LE_t) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FSTAT<<4, uintptr(fd), uintptr(unsafe.Pointer(stat)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_fstatat(dirfd int, path string, stat *Stat_LE_t, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FSTATAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_fstatatAddr() *(func(dirfd int, path string, stat *Stat_LE_t, flags int) (err error))\n\nvar fstatat = enter_fstatat\n\nfunc enter_fstatat(dirfd int, path string, stat *Stat_LE_t, flags int) (err error) {\n\tfuncref := get_fstatatAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___FSTATAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_fstatat\n\t} else {\n\t\t*funcref = error_fstatat\n\t}\n\treturn (*funcref)(dirfd, path, stat, flags)\n}\n\nfunc error_fstatat(dirfd int, path string, stat *Stat_LE_t, flags int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Lgetxattr(link string, attr string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p2 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LGETXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)))\n\truntime.ExitSyscall()\n\tsz = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_LgetxattrAddr() *(func(link string, attr string, dest []byte) (sz int, err error))\n\nvar Lgetxattr = enter_Lgetxattr\n\nfunc enter_Lgetxattr(link string, attr string, dest []byte) (sz int, err error) {\n\tfuncref := get_LgetxattrAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___LGETXATTR_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Lgetxattr\n\t} else {\n\t\t*funcref = error_Lgetxattr\n\t}\n\treturn (*funcref)(link, attr, dest)\n}\n\nfunc error_Lgetxattr(link string, attr string, dest []byte) (sz int, err error) {\n\tsz = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Lsetxattr(path string, attr string, data []byte, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 unsafe.Pointer\n\tif len(data) > 0 {\n\t\t_p2 = unsafe.Pointer(&data[0])\n\t} else {\n\t\t_p2 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LSETXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_LsetxattrAddr() *(func(path string, attr string, data []byte, flags int) (err error))\n\nvar Lsetxattr = enter_Lsetxattr\n\nfunc enter_Lsetxattr(path string, attr string, data []byte, flags int) (err error) {\n\tfuncref := get_LsetxattrAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___LSETXATTR_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Lsetxattr\n\t} else {\n\t\t*funcref = error_Lsetxattr\n\t}\n\treturn (*funcref)(path, attr, data, flags)\n}\n\nfunc error_Lsetxattr(path string, attr string, data []byte, flags int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Fstatfs(fd int, buf *Statfs_t) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FSTATFS<<4, uintptr(fd), uintptr(unsafe.Pointer(buf)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_FstatfsAddr() *(func(fd int, buf *Statfs_t) (err error))\n\nvar Fstatfs = enter_Fstatfs\n\nfunc enter_Fstatfs(fd int, buf *Statfs_t) (err error) {\n\tfuncref := get_FstatfsAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_FSTATFS<<4, \"\") == 0 {\n\t\t*funcref = impl_Fstatfs\n\t} else {\n\t\t*funcref = error_Fstatfs\n\t}\n\treturn (*funcref)(fd, buf)\n}\n\nfunc error_Fstatfs(fd int, buf *Statfs_t) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fstatvfs(fd int, stat *Statvfs_t) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FSTATVFS<<4, uintptr(fd), uintptr(unsafe.Pointer(stat)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Fsync(fd int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FSYNC<<4, uintptr(fd))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Futimes(fd int, tv []Timeval) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(tv) > 0 {\n\t\t_p0 = unsafe.Pointer(&tv[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FUTIMES<<4, uintptr(fd), uintptr(_p0), uintptr(len(tv)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_FutimesAddr() *(func(fd int, tv []Timeval) (err error))\n\nvar Futimes = enter_Futimes\n\nfunc enter_Futimes(fd int, tv []Timeval) (err error) {\n\tfuncref := get_FutimesAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_FUTIMES<<4, \"\") == 0 {\n\t\t*funcref = impl_Futimes\n\t} else {\n\t\t*funcref = error_Futimes\n\t}\n\treturn (*funcref)(fd, tv)\n}\n\nfunc error_Futimes(fd int, tv []Timeval) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Futimesat(dirfd int, path string, tv []Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(tv) > 0 {\n\t\t_p1 = unsafe.Pointer(&tv[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___FUTIMESAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(tv)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_FutimesatAddr() *(func(dirfd int, path string, tv []Timeval) (err error))\n\nvar Futimesat = enter_Futimesat\n\nfunc enter_Futimesat(dirfd int, path string, tv []Timeval) (err error) {\n\tfuncref := get_FutimesatAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___FUTIMESAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Futimesat\n\t} else {\n\t\t*funcref = error_Futimesat\n\t}\n\treturn (*funcref)(dirfd, path, tv)\n}\n\nfunc error_Futimesat(dirfd int, path string, tv []Timeval) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Ftruncate(fd int, length int64) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_FTRUNCATE<<4, uintptr(fd), uintptr(length))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Getrandom(buf []byte, flags int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETRANDOM<<4, uintptr(_p0), uintptr(len(buf)), uintptr(flags))\n\truntime.ExitSyscall()\n\tn = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_GetrandomAddr() *(func(buf []byte, flags int) (n int, err error))\n\nvar Getrandom = enter_Getrandom\n\nfunc enter_Getrandom(buf []byte, flags int) (n int, err error) {\n\tfuncref := get_GetrandomAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_GETRANDOM<<4, \"\") == 0 {\n\t\t*funcref = impl_Getrandom\n\t} else {\n\t\t*funcref = error_Getrandom\n\t}\n\treturn (*funcref)(buf, flags)\n}\n\nfunc error_Getrandom(buf []byte, flags int) (n int, err error) {\n\tn = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_InotifyInit() (fd int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec() + SYS_INOTIFY_INIT<<4)\n\truntime.ExitSyscall()\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_InotifyInitAddr() *(func() (fd int, err error))\n\nvar InotifyInit = enter_InotifyInit\n\nfunc enter_InotifyInit() (fd int, err error) {\n\tfuncref := get_InotifyInitAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_INOTIFY_INIT<<4, \"\") == 0 {\n\t\t*funcref = impl_InotifyInit\n\t} else {\n\t\t*funcref = error_InotifyInit\n\t}\n\treturn (*funcref)()\n}\n\nfunc error_InotifyInit() (fd int, err error) {\n\tfd = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_InotifyInit1(flags int) (fd int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_INOTIFY_INIT1<<4, uintptr(flags))\n\truntime.ExitSyscall()\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_InotifyInit1Addr() *(func(flags int) (fd int, err error))\n\nvar InotifyInit1 = enter_InotifyInit1\n\nfunc enter_InotifyInit1(flags int) (fd int, err error) {\n\tfuncref := get_InotifyInit1Addr()\n\tif funcptrtest(GetZosLibVec()+SYS_INOTIFY_INIT1<<4, \"\") == 0 {\n\t\t*funcref = impl_InotifyInit1\n\t} else {\n\t\t*funcref = error_InotifyInit1\n\t}\n\treturn (*funcref)(flags)\n}\n\nfunc error_InotifyInit1(flags int) (fd int, err error) {\n\tfd = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(pathname)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___INOTIFY_ADD_WATCH_A<<4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask))\n\truntime.ExitSyscall()\n\twatchdesc = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_InotifyAddWatchAddr() *(func(fd int, pathname string, mask uint32) (watchdesc int, err error))\n\nvar InotifyAddWatch = enter_InotifyAddWatch\n\nfunc enter_InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) {\n\tfuncref := get_InotifyAddWatchAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___INOTIFY_ADD_WATCH_A<<4, \"\") == 0 {\n\t\t*funcref = impl_InotifyAddWatch\n\t} else {\n\t\t*funcref = error_InotifyAddWatch\n\t}\n\treturn (*funcref)(fd, pathname, mask)\n}\n\nfunc error_InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) {\n\twatchdesc = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_INOTIFY_RM_WATCH<<4, uintptr(fd), uintptr(watchdesc))\n\truntime.ExitSyscall()\n\tsuccess = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_InotifyRmWatchAddr() *(func(fd int, watchdesc uint32) (success int, err error))\n\nvar InotifyRmWatch = enter_InotifyRmWatch\n\nfunc enter_InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) {\n\tfuncref := get_InotifyRmWatchAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_INOTIFY_RM_WATCH<<4, \"\") == 0 {\n\t\t*funcref = impl_InotifyRmWatch\n\t} else {\n\t\t*funcref = error_InotifyRmWatch\n\t}\n\treturn (*funcref)(fd, watchdesc)\n}\n\nfunc error_InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) {\n\tsuccess = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Listxattr(path string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LISTXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))\n\truntime.ExitSyscall()\n\tsz = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_ListxattrAddr() *(func(path string, dest []byte) (sz int, err error))\n\nvar Listxattr = enter_Listxattr\n\nfunc enter_Listxattr(path string, dest []byte) (sz int, err error) {\n\tfuncref := get_ListxattrAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___LISTXATTR_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Listxattr\n\t} else {\n\t\t*funcref = error_Listxattr\n\t}\n\treturn (*funcref)(path, dest)\n}\n\nfunc error_Listxattr(path string, dest []byte) (sz int, err error) {\n\tsz = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Llistxattr(path string, dest []byte) (sz int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(dest) > 0 {\n\t\t_p1 = unsafe.Pointer(&dest[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LLISTXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)))\n\truntime.ExitSyscall()\n\tsz = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_LlistxattrAddr() *(func(path string, dest []byte) (sz int, err error))\n\nvar Llistxattr = enter_Llistxattr\n\nfunc enter_Llistxattr(path string, dest []byte) (sz int, err error) {\n\tfuncref := get_LlistxattrAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___LLISTXATTR_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Llistxattr\n\t} else {\n\t\t*funcref = error_Llistxattr\n\t}\n\treturn (*funcref)(path, dest)\n}\n\nfunc error_Llistxattr(path string, dest []byte) (sz int, err error) {\n\tsz = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Lremovexattr(path string, attr string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(attr)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LREMOVEXATTR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_LremovexattrAddr() *(func(path string, attr string) (err error))\n\nvar Lremovexattr = enter_Lremovexattr\n\nfunc enter_Lremovexattr(path string, attr string) (err error) {\n\tfuncref := get_LremovexattrAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___LREMOVEXATTR_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Lremovexattr\n\t} else {\n\t\t*funcref = error_Lremovexattr\n\t}\n\treturn (*funcref)(path, attr)\n}\n\nfunc error_Lremovexattr(path string, attr string) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Lutimes(path string, tv []Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 unsafe.Pointer\n\tif len(tv) > 0 {\n\t\t_p1 = unsafe.Pointer(&tv[0])\n\t} else {\n\t\t_p1 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LUTIMES_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(tv)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_LutimesAddr() *(func(path string, tv []Timeval) (err error))\n\nvar Lutimes = enter_Lutimes\n\nfunc enter_Lutimes(path string, tv []Timeval) (err error) {\n\tfuncref := get_LutimesAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___LUTIMES_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Lutimes\n\t} else {\n\t\t*funcref = error_Lutimes\n\t}\n\treturn (*funcref)(path, tv)\n}\n\nfunc error_Lutimes(path string, tv []Timeval) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mprotect(b []byte, prot int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_MPROTECT<<4, uintptr(_p0), uintptr(len(b)), uintptr(prot))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Msync(b []byte, flags int) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(b) > 0 {\n\t\t_p0 = unsafe.Pointer(&b[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_MSYNC<<4, uintptr(_p0), uintptr(len(b)), uintptr(flags))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Console2(cmsg *ConsMsg2, modstr *byte, concmd *uint32) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CONSOLE2<<4, uintptr(unsafe.Pointer(cmsg)), uintptr(unsafe.Pointer(modstr)), uintptr(unsafe.Pointer(concmd)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Poll(fds []PollFd, timeout int) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(fds) > 0 {\n\t\t_p0 = unsafe.Pointer(&fds[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_POLL<<4, uintptr(_p0), uintptr(len(fds)), uintptr(timeout))\n\truntime.ExitSyscall()\n\tn = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Readdir_r(dirp uintptr, entry *direntLE, result **direntLE) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___READDIR_R_A<<4, uintptr(dirp), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Statfs(path string, buf *Statfs_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___STATFS_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_StatfsAddr() *(func(path string, buf *Statfs_t) (err error))\n\nvar Statfs = enter_Statfs\n\nfunc enter_Statfs(path string, buf *Statfs_t) (err error) {\n\tfuncref := get_StatfsAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___STATFS_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Statfs\n\t} else {\n\t\t*funcref = error_Statfs\n\t}\n\treturn (*funcref)(path, buf)\n}\n\nfunc error_Statfs(path string, buf *Statfs_t) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Syncfs(fd int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SYNCFS<<4, uintptr(fd))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_SyncfsAddr() *(func(fd int) (err error))\n\nvar Syncfs = enter_Syncfs\n\nfunc enter_Syncfs(fd int) (err error) {\n\tfuncref := get_SyncfsAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_SYNCFS<<4, \"\") == 0 {\n\t\t*funcref = impl_Syncfs\n\t} else {\n\t\t*funcref = error_Syncfs\n\t}\n\treturn (*funcref)(fd)\n}\n\nfunc error_Syncfs(fd int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Times(tms *Tms) (ticks uintptr, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_TIMES<<4, uintptr(unsafe.Pointer(tms)))\n\truntime.ExitSyscall()\n\tticks = uintptr(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc W_Getmntent(buff *byte, size int) (lastsys int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_W_GETMNTENT<<4, uintptr(unsafe.Pointer(buff)), uintptr(size))\n\truntime.ExitSyscall()\n\tlastsys = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc W_Getmntent_A(buff *byte, size int) (lastsys int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___W_GETMNTENT_A<<4, uintptr(unsafe.Pointer(buff)), uintptr(size))\n\truntime.ExitSyscall()\n\tlastsys = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc mount_LE(path string, filesystem string, fstype string, mtm uint32, parmlen int32, parm string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(filesystem)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p2 *byte\n\t_p2, err = BytePtrFromString(fstype)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p3 *byte\n\t_p3, err = BytePtrFromString(parm)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MOUNT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(mtm), uintptr(parmlen), uintptr(unsafe.Pointer(_p3)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc unmount_LE(filesystem string, mtm int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(filesystem)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UMOUNT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mtm))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Chroot(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___CHROOT_A<<4, uintptr(unsafe.Pointer(_p0)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Select(nmsgsfds int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (ret int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SELECT<<4, uintptr(nmsgsfds), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)))\n\truntime.ExitSyscall()\n\tret = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Uname(buf *Utsname) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_____OSNAME_A<<4, uintptr(unsafe.Pointer(buf)))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Unshare(flags int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_UNSHARE<<4, uintptr(flags))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_UnshareAddr() *(func(flags int) (err error))\n\nvar Unshare = enter_Unshare\n\nfunc enter_Unshare(flags int) (err error) {\n\tfuncref := get_UnshareAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_UNSHARE<<4, \"\") == 0 {\n\t\t*funcref = impl_Unshare\n\t} else {\n\t\t*funcref = error_Unshare\n\t}\n\treturn (*funcref)(flags)\n}\n\nfunc error_Unshare(flags int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Gethostname(buf []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(buf) > 0 {\n\t\t_p0 = unsafe.Pointer(&buf[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___GETHOSTNAME_A<<4, uintptr(_p0), uintptr(len(buf)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getgid() (gid int) {\n\tr0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETGID<<4)\n\tgid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpid() (pid int) {\n\tr0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETPID<<4)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpgid(pid int) (pgid int, err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETPGID<<4, uintptr(pid))\n\tpgid = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getppid() (pid int) {\n\tr0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETPPID<<4)\n\tpid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getpriority(which int, who int) (prio int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETPRIORITY<<4, uintptr(which), uintptr(who))\n\truntime.ExitSyscall()\n\tprio = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getrlimit(resource int, rlim *Rlimit) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETRLIMIT<<4, uintptr(resource), uintptr(unsafe.Pointer(rlim)))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc getrusage(who int, rusage *rusage_zos) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETRUSAGE<<4, uintptr(who), uintptr(unsafe.Pointer(rusage)))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getegid() (egid int) {\n\truntime.EnterSyscall()\n\tr0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETEGID<<4)\n\truntime.ExitSyscall()\n\tegid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Geteuid() (euid int) {\n\truntime.EnterSyscall()\n\tr0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETEUID<<4)\n\truntime.ExitSyscall()\n\teuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getsid(pid int) (sid int, err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETSID<<4, uintptr(pid))\n\tsid = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Getuid() (uid int) {\n\tr0, _, _ := CallLeFuncWithErr(GetZosLibVec() + SYS_GETUID<<4)\n\tuid = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Kill(pid int, sig Signal) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_KILL<<4, uintptr(pid), uintptr(sig))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Lchown(path string, uid int, gid int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LCHOWN_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Link(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LINK_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Linkat(oldDirFd int, oldPath string, newDirFd int, newPath string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldPath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newPath)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LINKAT_A<<4, uintptr(oldDirFd), uintptr(unsafe.Pointer(_p0)), uintptr(newDirFd), uintptr(unsafe.Pointer(_p1)), uintptr(flags))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_LinkatAddr() *(func(oldDirFd int, oldPath string, newDirFd int, newPath string, flags int) (err error))\n\nvar Linkat = enter_Linkat\n\nfunc enter_Linkat(oldDirFd int, oldPath string, newDirFd int, newPath string, flags int) (err error) {\n\tfuncref := get_LinkatAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___LINKAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Linkat\n\t} else {\n\t\t*funcref = error_Linkat\n\t}\n\treturn (*funcref)(oldDirFd, oldPath, newDirFd, newPath, flags)\n}\n\nfunc error_Linkat(oldDirFd int, oldPath string, newDirFd int, newPath string, flags int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Listen(s int, n int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_LISTEN<<4, uintptr(s), uintptr(n))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc lstat(path string, stat *Stat_LE_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___LSTAT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKDIR_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKDIRAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_MkdiratAddr() *(func(dirfd int, path string, mode uint32) (err error))\n\nvar Mkdirat = enter_Mkdirat\n\nfunc enter_Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\tfuncref := get_MkdiratAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___MKDIRAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Mkdirat\n\t} else {\n\t\t*funcref = error_Mkdirat\n\t}\n\treturn (*funcref)(dirfd, path, mode)\n}\n\nfunc error_Mkdirat(dirfd int, path string, mode uint32) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mkfifo(path string, mode uint32) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKFIFO_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Mknod(path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKNOD_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___MKNODAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_MknodatAddr() *(func(dirfd int, path string, mode uint32, dev int) (err error))\n\nvar Mknodat = enter_Mknodat\n\nfunc enter_Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\tfuncref := get_MknodatAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___MKNODAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Mknodat\n\t} else {\n\t\t*funcref = error_Mknodat\n\t}\n\treturn (*funcref)(dirfd, path, mode, dev)\n}\n\nfunc error_Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_PivotRoot(newroot string, oldroot string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(newroot)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(oldroot)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___PIVOT_ROOT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_PivotRootAddr() *(func(newroot string, oldroot string) (err error))\n\nvar PivotRoot = enter_PivotRoot\n\nfunc enter_PivotRoot(newroot string, oldroot string) (err error) {\n\tfuncref := get_PivotRootAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___PIVOT_ROOT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_PivotRoot\n\t} else {\n\t\t*funcref = error_PivotRoot\n\t}\n\treturn (*funcref)(newroot, oldroot)\n}\n\nfunc error_PivotRoot(newroot string, oldroot string) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pread(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_PREAD<<4, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset))\n\truntime.ExitSyscall()\n\tn = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Pwrite(fd int, p []byte, offset int64) (n int, err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_PWRITE<<4, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset))\n\truntime.ExitSyscall()\n\tn = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___PRCTL_A<<4, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_PrctlAddr() *(func(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error))\n\nvar Prctl = enter_Prctl\n\nfunc enter_Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) {\n\tfuncref := get_PrctlAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___PRCTL_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Prctl\n\t} else {\n\t\t*funcref = error_Prctl\n\t}\n\treturn (*funcref)(option, arg2, arg3, arg4, arg5)\n}\n\nfunc error_Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_PRLIMIT<<4, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_PrlimitAddr() *(func(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error))\n\nvar Prlimit = enter_Prlimit\n\nfunc enter_Prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {\n\tfuncref := get_PrlimitAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_PRLIMIT<<4, \"\") == 0 {\n\t\t*funcref = impl_Prlimit\n\t} else {\n\t\t*funcref = error_Prlimit\n\t}\n\treturn (*funcref)(pid, resource, newlimit, old)\n}\n\nfunc error_Prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rename(from string, to string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(from)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(to)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RENAME_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RENAMEAT_A<<4, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_RenameatAddr() *(func(olddirfd int, oldpath string, newdirfd int, newpath string) (err error))\n\nvar Renameat = enter_Renameat\n\nfunc enter_Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\tfuncref := get_RenameatAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___RENAMEAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Renameat\n\t} else {\n\t\t*funcref = error_Renameat\n\t}\n\treturn (*funcref)(olddirfd, oldpath, newdirfd, newpath)\n}\n\nfunc error_Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldpath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newpath)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RENAMEAT2_A<<4, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_Renameat2Addr() *(func(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error))\n\nvar Renameat2 = enter_Renameat2\n\nfunc enter_Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) {\n\tfuncref := get_Renameat2Addr()\n\tif funcptrtest(GetZosLibVec()+SYS___RENAMEAT2_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Renameat2\n\t} else {\n\t\t*funcref = error_Renameat2\n\t}\n\treturn (*funcref)(olddirfd, oldpath, newdirfd, newpath, flags)\n}\n\nfunc error_Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Rmdir(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___RMDIR_A<<4, uintptr(unsafe.Pointer(_p0)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seek(fd int, offset int64, whence int) (off int64, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_LSEEK<<4, uintptr(fd), uintptr(offset), uintptr(whence))\n\truntime.ExitSyscall()\n\toff = int64(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setegid(egid int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETEGID<<4, uintptr(egid))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Seteuid(euid int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETEUID<<4, uintptr(euid))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Sethostname(p []byte) (err error) {\n\tvar _p0 unsafe.Pointer\n\tif len(p) > 0 {\n\t\t_p0 = unsafe.Pointer(&p[0])\n\t} else {\n\t\t_p0 = unsafe.Pointer(&_zero)\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SETHOSTNAME_A<<4, uintptr(_p0), uintptr(len(p)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_SethostnameAddr() *(func(p []byte) (err error))\n\nvar Sethostname = enter_Sethostname\n\nfunc enter_Sethostname(p []byte) (err error) {\n\tfuncref := get_SethostnameAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___SETHOSTNAME_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Sethostname\n\t} else {\n\t\t*funcref = error_Sethostname\n\t}\n\treturn (*funcref)(p)\n}\n\nfunc error_Sethostname(p []byte) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Setns(fd int, nstype int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETNS<<4, uintptr(fd), uintptr(nstype))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_SetnsAddr() *(func(fd int, nstype int) (err error))\n\nvar Setns = enter_Setns\n\nfunc enter_Setns(fd int, nstype int) (err error) {\n\tfuncref := get_SetnsAddr()\n\tif funcptrtest(GetZosLibVec()+SYS_SETNS<<4, \"\") == 0 {\n\t\t*funcref = impl_Setns\n\t} else {\n\t\t*funcref = error_Setns\n\t}\n\treturn (*funcref)(fd, nstype)\n}\n\nfunc error_Setns(fd int, nstype int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpriority(which int, who int, prio int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETPRIORITY<<4, uintptr(which), uintptr(who), uintptr(prio))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setpgid(pid int, pgid int) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETPGID<<4, uintptr(pid), uintptr(pgid))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setrlimit(resource int, lim *Rlimit) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETRLIMIT<<4, uintptr(resource), uintptr(unsafe.Pointer(lim)))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setregid(rgid int, egid int) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETREGID<<4, uintptr(rgid), uintptr(egid))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setreuid(ruid int, euid int) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETREUID<<4, uintptr(ruid), uintptr(euid))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setsid() (pid int, err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec() + SYS_SETSID<<4)\n\tpid = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setuid(uid int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETUID<<4, uintptr(uid))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Setgid(uid int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SETGID<<4, uintptr(uid))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Shutdown(fd int, how int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_SHUTDOWN<<4, uintptr(fd), uintptr(how))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc stat(path string, statLE *Stat_LE_t) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___STAT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(statLE)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Symlink(path string, link string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(link)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SYMLINK_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Symlinkat(oldPath string, dirfd int, newPath string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(oldPath)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = BytePtrFromString(newPath)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___SYMLINKAT_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(dirfd), uintptr(unsafe.Pointer(_p1)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_SymlinkatAddr() *(func(oldPath string, dirfd int, newPath string) (err error))\n\nvar Symlinkat = enter_Symlinkat\n\nfunc enter_Symlinkat(oldPath string, dirfd int, newPath string) (err error) {\n\tfuncref := get_SymlinkatAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___SYMLINKAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Symlinkat\n\t} else {\n\t\t*funcref = error_Symlinkat\n\t}\n\treturn (*funcref)(oldPath, dirfd, newPath)\n}\n\nfunc error_Symlinkat(oldPath string, dirfd int, newPath string) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Sync() {\n\truntime.EnterSyscall()\n\tCallLeFuncWithErr(GetZosLibVec() + SYS_SYNC<<4)\n\truntime.ExitSyscall()\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Truncate(path string, length int64) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___TRUNCATE_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(length))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tcgetattr(fildes int, termptr *Termios) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_TCGETATTR<<4, uintptr(fildes), uintptr(unsafe.Pointer(termptr)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Tcsetattr(fildes int, when int, termptr *Termios) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_TCSETATTR<<4, uintptr(fildes), uintptr(when), uintptr(unsafe.Pointer(termptr)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Umask(mask int) (oldmask int) {\n\truntime.EnterSyscall()\n\tr0, _, _ := CallLeFuncWithErr(GetZosLibVec()+SYS_UMASK<<4, uintptr(mask))\n\truntime.ExitSyscall()\n\toldmask = int(r0)\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlink(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UNLINK_A<<4, uintptr(unsafe.Pointer(_p0)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_Unlinkat(dirfd int, path string, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UNLINKAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_UnlinkatAddr() *(func(dirfd int, path string, flags int) (err error))\n\nvar Unlinkat = enter_Unlinkat\n\nfunc enter_Unlinkat(dirfd int, path string, flags int) (err error) {\n\tfuncref := get_UnlinkatAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___UNLINKAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_Unlinkat\n\t} else {\n\t\t*funcref = error_Unlinkat\n\t}\n\treturn (*funcref)(dirfd, path, flags)\n}\n\nfunc error_Unlinkat(dirfd int, path string, flags int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Utime(path string, utim *Utimbuf) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UTIME_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(utim)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc open(path string, mode int, perm uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___OPEN_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))\n\truntime.ExitSyscall()\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___OPENAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode))\n\truntime.ExitSyscall()\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_openatAddr() *(func(dirfd int, path string, flags int, mode uint32) (fd int, err error))\n\nvar openat = enter_openat\n\nfunc enter_openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\tfuncref := get_openatAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___OPENAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_openat\n\t} else {\n\t\t*funcref = error_openat\n\t}\n\treturn (*funcref)(dirfd, path, flags, mode)\n}\n\nfunc error_openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) {\n\tfd = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___OPENAT2_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(open_how)), uintptr(size))\n\truntime.ExitSyscall()\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_openat2Addr() *(func(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error))\n\nvar openat2 = enter_openat2\n\nfunc enter_openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) {\n\tfuncref := get_openat2Addr()\n\tif funcptrtest(GetZosLibVec()+SYS___OPENAT2_A<<4, \"\") == 0 {\n\t\t*funcref = impl_openat2\n\t} else {\n\t\t*funcref = error_openat2\n\t}\n\treturn (*funcref)(dirfd, path, open_how, size)\n}\n\nfunc error_openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) {\n\tfd = -1\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc remove(path string) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_REMOVE<<4, uintptr(unsafe.Pointer(_p0)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc waitid(idType int, id int, info *Siginfo, options int) (err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_WAITID<<4, uintptr(idType), uintptr(id), uintptr(unsafe.Pointer(info)), uintptr(options))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc waitpid(pid int, wstatus *_C_int, options int) (wpid int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_WAITPID<<4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options))\n\truntime.ExitSyscall()\n\twpid = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc gettimeofday(tv *timeval_zos) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GETTIMEOFDAY<<4, uintptr(unsafe.Pointer(tv)))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc pipe(p *[2]_C_int) (err error) {\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_PIPE<<4, uintptr(unsafe.Pointer(p)))\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc utimes(path string, timeval *[2]Timeval) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UTIMES_A<<4, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc impl_utimensat(dirfd int, path string, ts *[2]Timespec, flags int) (err error) {\n\tvar _p0 *byte\n\t_p0, err = BytePtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS___UTIMENSAT_A<<4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(ts)), uintptr(flags))\n\truntime.ExitSyscall()\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n//go:nosplit\nfunc get_utimensatAddr() *(func(dirfd int, path string, ts *[2]Timespec, flags int) (err error))\n\nvar utimensat = enter_utimensat\n\nfunc enter_utimensat(dirfd int, path string, ts *[2]Timespec, flags int) (err error) {\n\tfuncref := get_utimensatAddr()\n\tif funcptrtest(GetZosLibVec()+SYS___UTIMENSAT_A<<4, \"\") == 0 {\n\t\t*funcref = impl_utimensat\n\t} else {\n\t\t*funcref = error_utimensat\n\t}\n\treturn (*funcref)(dirfd, path, ts, flags)\n}\n\nfunc error_utimensat(dirfd int, path string, ts *[2]Timespec, flags int) (err error) {\n\terr = ENOSYS\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Posix_openpt(oflag int) (fd int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_POSIX_OPENPT<<4, uintptr(oflag))\n\truntime.ExitSyscall()\n\tfd = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Grantpt(fildes int) (rc int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_GRANTPT<<4, uintptr(fildes))\n\truntime.ExitSyscall()\n\trc = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n\n// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\nfunc Unlockpt(fildes int) (rc int, err error) {\n\truntime.EnterSyscall()\n\tr0, e2, e1 := CallLeFuncWithErr(GetZosLibVec()+SYS_UNLOCKPT<<4, uintptr(fildes))\n\truntime.ExitSyscall()\n\trc = int(r0)\n\tif int64(r0) == -1 {\n\t\terr = errnoErr2(e1, e2)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go",
    "content": "// go run mksysctl_openbsd.go\n// Code generated by the command above; DO NOT EDIT.\n\n//go:build 386 && openbsd\n\npackage unix\n\ntype mibentry struct {\n\tctlname string\n\tctloid  []_C_int\n}\n\nvar sysctlMib = []mibentry{\n\t{\"ddb.console\", []_C_int{9, 6}},\n\t{\"ddb.log\", []_C_int{9, 7}},\n\t{\"ddb.max_line\", []_C_int{9, 3}},\n\t{\"ddb.max_width\", []_C_int{9, 2}},\n\t{\"ddb.panic\", []_C_int{9, 5}},\n\t{\"ddb.profile\", []_C_int{9, 9}},\n\t{\"ddb.radix\", []_C_int{9, 1}},\n\t{\"ddb.tab_stop_width\", []_C_int{9, 4}},\n\t{\"ddb.trigger\", []_C_int{9, 8}},\n\t{\"fs.posix.setuid\", []_C_int{3, 1, 1}},\n\t{\"hw.allowpowerdown\", []_C_int{6, 22}},\n\t{\"hw.byteorder\", []_C_int{6, 4}},\n\t{\"hw.cpuspeed\", []_C_int{6, 12}},\n\t{\"hw.diskcount\", []_C_int{6, 10}},\n\t{\"hw.disknames\", []_C_int{6, 8}},\n\t{\"hw.diskstats\", []_C_int{6, 9}},\n\t{\"hw.machine\", []_C_int{6, 1}},\n\t{\"hw.model\", []_C_int{6, 2}},\n\t{\"hw.ncpu\", []_C_int{6, 3}},\n\t{\"hw.ncpufound\", []_C_int{6, 21}},\n\t{\"hw.ncpuonline\", []_C_int{6, 25}},\n\t{\"hw.pagesize\", []_C_int{6, 7}},\n\t{\"hw.perfpolicy\", []_C_int{6, 23}},\n\t{\"hw.physmem\", []_C_int{6, 19}},\n\t{\"hw.power\", []_C_int{6, 26}},\n\t{\"hw.product\", []_C_int{6, 15}},\n\t{\"hw.serialno\", []_C_int{6, 17}},\n\t{\"hw.setperf\", []_C_int{6, 13}},\n\t{\"hw.smt\", []_C_int{6, 24}},\n\t{\"hw.usermem\", []_C_int{6, 20}},\n\t{\"hw.uuid\", []_C_int{6, 18}},\n\t{\"hw.vendor\", []_C_int{6, 14}},\n\t{\"hw.version\", []_C_int{6, 16}},\n\t{\"kern.allowdt\", []_C_int{1, 65}},\n\t{\"kern.allowkmem\", []_C_int{1, 52}},\n\t{\"kern.argmax\", []_C_int{1, 8}},\n\t{\"kern.audio\", []_C_int{1, 84}},\n\t{\"kern.boottime\", []_C_int{1, 21}},\n\t{\"kern.bufcachepercent\", []_C_int{1, 72}},\n\t{\"kern.ccpu\", []_C_int{1, 45}},\n\t{\"kern.clockrate\", []_C_int{1, 12}},\n\t{\"kern.consbuf\", []_C_int{1, 83}},\n\t{\"kern.consbufsize\", []_C_int{1, 82}},\n\t{\"kern.consdev\", []_C_int{1, 75}},\n\t{\"kern.cp_time\", []_C_int{1, 40}},\n\t{\"kern.cp_time2\", []_C_int{1, 71}},\n\t{\"kern.cpustats\", []_C_int{1, 85}},\n\t{\"kern.domainname\", []_C_int{1, 22}},\n\t{\"kern.file\", []_C_int{1, 73}},\n\t{\"kern.forkstat\", []_C_int{1, 42}},\n\t{\"kern.fscale\", []_C_int{1, 46}},\n\t{\"kern.fsync\", []_C_int{1, 33}},\n\t{\"kern.global_ptrace\", []_C_int{1, 81}},\n\t{\"kern.hostid\", []_C_int{1, 11}},\n\t{\"kern.hostname\", []_C_int{1, 10}},\n\t{\"kern.intrcnt.nintrcnt\", []_C_int{1, 63, 1}},\n\t{\"kern.job_control\", []_C_int{1, 19}},\n\t{\"kern.malloc.buckets\", []_C_int{1, 39, 1}},\n\t{\"kern.malloc.kmemnames\", []_C_int{1, 39, 3}},\n\t{\"kern.maxclusters\", []_C_int{1, 67}},\n\t{\"kern.maxfiles\", []_C_int{1, 7}},\n\t{\"kern.maxlocksperuid\", []_C_int{1, 70}},\n\t{\"kern.maxpartitions\", []_C_int{1, 23}},\n\t{\"kern.maxproc\", []_C_int{1, 6}},\n\t{\"kern.maxthread\", []_C_int{1, 25}},\n\t{\"kern.maxvnodes\", []_C_int{1, 5}},\n\t{\"kern.mbstat\", []_C_int{1, 59}},\n\t{\"kern.msgbuf\", []_C_int{1, 48}},\n\t{\"kern.msgbufsize\", []_C_int{1, 38}},\n\t{\"kern.nchstats\", []_C_int{1, 41}},\n\t{\"kern.netlivelocks\", []_C_int{1, 76}},\n\t{\"kern.nfiles\", []_C_int{1, 56}},\n\t{\"kern.ngroups\", []_C_int{1, 18}},\n\t{\"kern.nosuidcoredump\", []_C_int{1, 32}},\n\t{\"kern.nprocs\", []_C_int{1, 47}},\n\t{\"kern.nthreads\", []_C_int{1, 26}},\n\t{\"kern.numvnodes\", []_C_int{1, 58}},\n\t{\"kern.osrelease\", []_C_int{1, 2}},\n\t{\"kern.osrevision\", []_C_int{1, 3}},\n\t{\"kern.ostype\", []_C_int{1, 1}},\n\t{\"kern.osversion\", []_C_int{1, 27}},\n\t{\"kern.pfstatus\", []_C_int{1, 86}},\n\t{\"kern.pool_debug\", []_C_int{1, 77}},\n\t{\"kern.posix1version\", []_C_int{1, 17}},\n\t{\"kern.proc\", []_C_int{1, 66}},\n\t{\"kern.rawpartition\", []_C_int{1, 24}},\n\t{\"kern.saved_ids\", []_C_int{1, 20}},\n\t{\"kern.securelevel\", []_C_int{1, 9}},\n\t{\"kern.seminfo\", []_C_int{1, 61}},\n\t{\"kern.shminfo\", []_C_int{1, 62}},\n\t{\"kern.somaxconn\", []_C_int{1, 28}},\n\t{\"kern.sominconn\", []_C_int{1, 29}},\n\t{\"kern.splassert\", []_C_int{1, 54}},\n\t{\"kern.stackgap_random\", []_C_int{1, 50}},\n\t{\"kern.sysvipc_info\", []_C_int{1, 51}},\n\t{\"kern.sysvmsg\", []_C_int{1, 34}},\n\t{\"kern.sysvsem\", []_C_int{1, 35}},\n\t{\"kern.sysvshm\", []_C_int{1, 36}},\n\t{\"kern.timecounter.choice\", []_C_int{1, 69, 4}},\n\t{\"kern.timecounter.hardware\", []_C_int{1, 69, 3}},\n\t{\"kern.timecounter.tick\", []_C_int{1, 69, 1}},\n\t{\"kern.timecounter.timestepwarnings\", []_C_int{1, 69, 2}},\n\t{\"kern.timeout_stats\", []_C_int{1, 87}},\n\t{\"kern.tty.tk_cancc\", []_C_int{1, 44, 4}},\n\t{\"kern.tty.tk_nin\", []_C_int{1, 44, 1}},\n\t{\"kern.tty.tk_nout\", []_C_int{1, 44, 2}},\n\t{\"kern.tty.tk_rawcc\", []_C_int{1, 44, 3}},\n\t{\"kern.tty.ttyinfo\", []_C_int{1, 44, 5}},\n\t{\"kern.ttycount\", []_C_int{1, 57}},\n\t{\"kern.utc_offset\", []_C_int{1, 88}},\n\t{\"kern.version\", []_C_int{1, 4}},\n\t{\"kern.video\", []_C_int{1, 89}},\n\t{\"kern.watchdog.auto\", []_C_int{1, 64, 2}},\n\t{\"kern.watchdog.period\", []_C_int{1, 64, 1}},\n\t{\"kern.witnesswatch\", []_C_int{1, 53}},\n\t{\"kern.wxabort\", []_C_int{1, 74}},\n\t{\"net.bpf.bufsize\", []_C_int{4, 31, 1}},\n\t{\"net.bpf.maxbufsize\", []_C_int{4, 31, 2}},\n\t{\"net.inet.ah.enable\", []_C_int{4, 2, 51, 1}},\n\t{\"net.inet.ah.stats\", []_C_int{4, 2, 51, 2}},\n\t{\"net.inet.carp.allow\", []_C_int{4, 2, 112, 1}},\n\t{\"net.inet.carp.log\", []_C_int{4, 2, 112, 3}},\n\t{\"net.inet.carp.preempt\", []_C_int{4, 2, 112, 2}},\n\t{\"net.inet.carp.stats\", []_C_int{4, 2, 112, 4}},\n\t{\"net.inet.divert.recvspace\", []_C_int{4, 2, 258, 1}},\n\t{\"net.inet.divert.sendspace\", []_C_int{4, 2, 258, 2}},\n\t{\"net.inet.divert.stats\", []_C_int{4, 2, 258, 3}},\n\t{\"net.inet.esp.enable\", []_C_int{4, 2, 50, 1}},\n\t{\"net.inet.esp.stats\", []_C_int{4, 2, 50, 4}},\n\t{\"net.inet.esp.udpencap\", []_C_int{4, 2, 50, 2}},\n\t{\"net.inet.esp.udpencap_port\", []_C_int{4, 2, 50, 3}},\n\t{\"net.inet.etherip.allow\", []_C_int{4, 2, 97, 1}},\n\t{\"net.inet.etherip.stats\", []_C_int{4, 2, 97, 2}},\n\t{\"net.inet.gre.allow\", []_C_int{4, 2, 47, 1}},\n\t{\"net.inet.gre.wccp\", []_C_int{4, 2, 47, 2}},\n\t{\"net.inet.icmp.bmcastecho\", []_C_int{4, 2, 1, 2}},\n\t{\"net.inet.icmp.errppslimit\", []_C_int{4, 2, 1, 3}},\n\t{\"net.inet.icmp.maskrepl\", []_C_int{4, 2, 1, 1}},\n\t{\"net.inet.icmp.rediraccept\", []_C_int{4, 2, 1, 4}},\n\t{\"net.inet.icmp.redirtimeout\", []_C_int{4, 2, 1, 5}},\n\t{\"net.inet.icmp.stats\", []_C_int{4, 2, 1, 7}},\n\t{\"net.inet.icmp.tstamprepl\", []_C_int{4, 2, 1, 6}},\n\t{\"net.inet.igmp.stats\", []_C_int{4, 2, 2, 1}},\n\t{\"net.inet.ip.arpdown\", []_C_int{4, 2, 0, 40}},\n\t{\"net.inet.ip.arpqueued\", []_C_int{4, 2, 0, 36}},\n\t{\"net.inet.ip.arptimeout\", []_C_int{4, 2, 0, 39}},\n\t{\"net.inet.ip.encdebug\", []_C_int{4, 2, 0, 12}},\n\t{\"net.inet.ip.forwarding\", []_C_int{4, 2, 0, 1}},\n\t{\"net.inet.ip.ifq.congestion\", []_C_int{4, 2, 0, 30, 4}},\n\t{\"net.inet.ip.ifq.drops\", []_C_int{4, 2, 0, 30, 3}},\n\t{\"net.inet.ip.ifq.len\", []_C_int{4, 2, 0, 30, 1}},\n\t{\"net.inet.ip.ifq.maxlen\", []_C_int{4, 2, 0, 30, 2}},\n\t{\"net.inet.ip.maxqueue\", []_C_int{4, 2, 0, 11}},\n\t{\"net.inet.ip.mforwarding\", []_C_int{4, 2, 0, 31}},\n\t{\"net.inet.ip.mrtmfc\", []_C_int{4, 2, 0, 37}},\n\t{\"net.inet.ip.mrtproto\", []_C_int{4, 2, 0, 34}},\n\t{\"net.inet.ip.mrtstats\", []_C_int{4, 2, 0, 35}},\n\t{\"net.inet.ip.mrtvif\", []_C_int{4, 2, 0, 38}},\n\t{\"net.inet.ip.mtu\", []_C_int{4, 2, 0, 4}},\n\t{\"net.inet.ip.mtudisc\", []_C_int{4, 2, 0, 27}},\n\t{\"net.inet.ip.mtudisctimeout\", []_C_int{4, 2, 0, 28}},\n\t{\"net.inet.ip.multipath\", []_C_int{4, 2, 0, 32}},\n\t{\"net.inet.ip.portfirst\", []_C_int{4, 2, 0, 7}},\n\t{\"net.inet.ip.porthifirst\", []_C_int{4, 2, 0, 9}},\n\t{\"net.inet.ip.porthilast\", []_C_int{4, 2, 0, 10}},\n\t{\"net.inet.ip.portlast\", []_C_int{4, 2, 0, 8}},\n\t{\"net.inet.ip.redirect\", []_C_int{4, 2, 0, 2}},\n\t{\"net.inet.ip.sourceroute\", []_C_int{4, 2, 0, 5}},\n\t{\"net.inet.ip.stats\", []_C_int{4, 2, 0, 33}},\n\t{\"net.inet.ip.ttl\", []_C_int{4, 2, 0, 3}},\n\t{\"net.inet.ipcomp.enable\", []_C_int{4, 2, 108, 1}},\n\t{\"net.inet.ipcomp.stats\", []_C_int{4, 2, 108, 2}},\n\t{\"net.inet.ipip.allow\", []_C_int{4, 2, 4, 1}},\n\t{\"net.inet.ipip.stats\", []_C_int{4, 2, 4, 2}},\n\t{\"net.inet.pfsync.stats\", []_C_int{4, 2, 240, 1}},\n\t{\"net.inet.tcp.ackonpush\", []_C_int{4, 2, 6, 13}},\n\t{\"net.inet.tcp.always_keepalive\", []_C_int{4, 2, 6, 22}},\n\t{\"net.inet.tcp.baddynamic\", []_C_int{4, 2, 6, 6}},\n\t{\"net.inet.tcp.drop\", []_C_int{4, 2, 6, 19}},\n\t{\"net.inet.tcp.ecn\", []_C_int{4, 2, 6, 14}},\n\t{\"net.inet.tcp.ident\", []_C_int{4, 2, 6, 9}},\n\t{\"net.inet.tcp.keepidle\", []_C_int{4, 2, 6, 3}},\n\t{\"net.inet.tcp.keepinittime\", []_C_int{4, 2, 6, 2}},\n\t{\"net.inet.tcp.keepintvl\", []_C_int{4, 2, 6, 4}},\n\t{\"net.inet.tcp.mssdflt\", []_C_int{4, 2, 6, 11}},\n\t{\"net.inet.tcp.reasslimit\", []_C_int{4, 2, 6, 18}},\n\t{\"net.inet.tcp.rfc1323\", []_C_int{4, 2, 6, 1}},\n\t{\"net.inet.tcp.rfc3390\", []_C_int{4, 2, 6, 17}},\n\t{\"net.inet.tcp.rootonly\", []_C_int{4, 2, 6, 24}},\n\t{\"net.inet.tcp.rstppslimit\", []_C_int{4, 2, 6, 12}},\n\t{\"net.inet.tcp.sack\", []_C_int{4, 2, 6, 10}},\n\t{\"net.inet.tcp.sackholelimit\", []_C_int{4, 2, 6, 20}},\n\t{\"net.inet.tcp.slowhz\", []_C_int{4, 2, 6, 5}},\n\t{\"net.inet.tcp.stats\", []_C_int{4, 2, 6, 21}},\n\t{\"net.inet.tcp.synbucketlimit\", []_C_int{4, 2, 6, 16}},\n\t{\"net.inet.tcp.syncachelimit\", []_C_int{4, 2, 6, 15}},\n\t{\"net.inet.tcp.synhashsize\", []_C_int{4, 2, 6, 25}},\n\t{\"net.inet.tcp.synuselimit\", []_C_int{4, 2, 6, 23}},\n\t{\"net.inet.udp.baddynamic\", []_C_int{4, 2, 17, 2}},\n\t{\"net.inet.udp.checksum\", []_C_int{4, 2, 17, 1}},\n\t{\"net.inet.udp.recvspace\", []_C_int{4, 2, 17, 3}},\n\t{\"net.inet.udp.rootonly\", []_C_int{4, 2, 17, 6}},\n\t{\"net.inet.udp.sendspace\", []_C_int{4, 2, 17, 4}},\n\t{\"net.inet.udp.stats\", []_C_int{4, 2, 17, 5}},\n\t{\"net.inet6.divert.recvspace\", []_C_int{4, 24, 86, 1}},\n\t{\"net.inet6.divert.sendspace\", []_C_int{4, 24, 86, 2}},\n\t{\"net.inet6.divert.stats\", []_C_int{4, 24, 86, 3}},\n\t{\"net.inet6.icmp6.errppslimit\", []_C_int{4, 24, 30, 14}},\n\t{\"net.inet6.icmp6.mtudisc_hiwat\", []_C_int{4, 24, 30, 16}},\n\t{\"net.inet6.icmp6.mtudisc_lowat\", []_C_int{4, 24, 30, 17}},\n\t{\"net.inet6.icmp6.nd6_debug\", []_C_int{4, 24, 30, 18}},\n\t{\"net.inet6.icmp6.nd6_delay\", []_C_int{4, 24, 30, 8}},\n\t{\"net.inet6.icmp6.nd6_maxnudhint\", []_C_int{4, 24, 30, 15}},\n\t{\"net.inet6.icmp6.nd6_mmaxtries\", []_C_int{4, 24, 30, 10}},\n\t{\"net.inet6.icmp6.nd6_umaxtries\", []_C_int{4, 24, 30, 9}},\n\t{\"net.inet6.icmp6.redirtimeout\", []_C_int{4, 24, 30, 3}},\n\t{\"net.inet6.ip6.auto_flowlabel\", []_C_int{4, 24, 17, 17}},\n\t{\"net.inet6.ip6.dad_count\", []_C_int{4, 24, 17, 16}},\n\t{\"net.inet6.ip6.dad_pending\", []_C_int{4, 24, 17, 49}},\n\t{\"net.inet6.ip6.defmcasthlim\", []_C_int{4, 24, 17, 18}},\n\t{\"net.inet6.ip6.forwarding\", []_C_int{4, 24, 17, 1}},\n\t{\"net.inet6.ip6.forwsrcrt\", []_C_int{4, 24, 17, 5}},\n\t{\"net.inet6.ip6.hdrnestlimit\", []_C_int{4, 24, 17, 15}},\n\t{\"net.inet6.ip6.hlim\", []_C_int{4, 24, 17, 3}},\n\t{\"net.inet6.ip6.log_interval\", []_C_int{4, 24, 17, 14}},\n\t{\"net.inet6.ip6.maxdynroutes\", []_C_int{4, 24, 17, 48}},\n\t{\"net.inet6.ip6.maxfragpackets\", []_C_int{4, 24, 17, 9}},\n\t{\"net.inet6.ip6.maxfrags\", []_C_int{4, 24, 17, 41}},\n\t{\"net.inet6.ip6.mforwarding\", []_C_int{4, 24, 17, 42}},\n\t{\"net.inet6.ip6.mrtmfc\", []_C_int{4, 24, 17, 53}},\n\t{\"net.inet6.ip6.mrtmif\", []_C_int{4, 24, 17, 52}},\n\t{\"net.inet6.ip6.mrtproto\", []_C_int{4, 24, 17, 8}},\n\t{\"net.inet6.ip6.mtudisctimeout\", []_C_int{4, 24, 17, 50}},\n\t{\"net.inet6.ip6.multicast_mtudisc\", []_C_int{4, 24, 17, 44}},\n\t{\"net.inet6.ip6.multipath\", []_C_int{4, 24, 17, 43}},\n\t{\"net.inet6.ip6.neighborgcthresh\", []_C_int{4, 24, 17, 45}},\n\t{\"net.inet6.ip6.redirect\", []_C_int{4, 24, 17, 2}},\n\t{\"net.inet6.ip6.soiikey\", []_C_int{4, 24, 17, 54}},\n\t{\"net.inet6.ip6.sourcecheck\", []_C_int{4, 24, 17, 10}},\n\t{\"net.inet6.ip6.sourcecheck_logint\", []_C_int{4, 24, 17, 11}},\n\t{\"net.inet6.ip6.use_deprecated\", []_C_int{4, 24, 17, 21}},\n\t{\"net.key.sadb_dump\", []_C_int{4, 30, 1}},\n\t{\"net.key.spd_dump\", []_C_int{4, 30, 2}},\n\t{\"net.mpls.ifq.congestion\", []_C_int{4, 33, 3, 4}},\n\t{\"net.mpls.ifq.drops\", []_C_int{4, 33, 3, 3}},\n\t{\"net.mpls.ifq.len\", []_C_int{4, 33, 3, 1}},\n\t{\"net.mpls.ifq.maxlen\", []_C_int{4, 33, 3, 2}},\n\t{\"net.mpls.mapttl_ip\", []_C_int{4, 33, 5}},\n\t{\"net.mpls.mapttl_ip6\", []_C_int{4, 33, 6}},\n\t{\"net.mpls.ttl\", []_C_int{4, 33, 2}},\n\t{\"net.pflow.stats\", []_C_int{4, 34, 1}},\n\t{\"net.pipex.enable\", []_C_int{4, 35, 1}},\n\t{\"vm.anonmin\", []_C_int{2, 7}},\n\t{\"vm.loadavg\", []_C_int{2, 2}},\n\t{\"vm.malloc_conf\", []_C_int{2, 12}},\n\t{\"vm.maxslp\", []_C_int{2, 10}},\n\t{\"vm.nkmempages\", []_C_int{2, 6}},\n\t{\"vm.psstrings\", []_C_int{2, 3}},\n\t{\"vm.swapencrypt.enable\", []_C_int{2, 5, 0}},\n\t{\"vm.swapencrypt.keyscreated\", []_C_int{2, 5, 1}},\n\t{\"vm.swapencrypt.keysdeleted\", []_C_int{2, 5, 2}},\n\t{\"vm.uspace\", []_C_int{2, 11}},\n\t{\"vm.uvmexp\", []_C_int{2, 4}},\n\t{\"vm.vmmeter\", []_C_int{2, 1}},\n\t{\"vm.vnodemin\", []_C_int{2, 9}},\n\t{\"vm.vtextmin\", []_C_int{2, 8}},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go",
    "content": "// go run mksysctl_openbsd.go\n// Code generated by the command above; DO NOT EDIT.\n\n//go:build amd64 && openbsd\n\npackage unix\n\ntype mibentry struct {\n\tctlname string\n\tctloid  []_C_int\n}\n\nvar sysctlMib = []mibentry{\n\t{\"ddb.console\", []_C_int{9, 6}},\n\t{\"ddb.log\", []_C_int{9, 7}},\n\t{\"ddb.max_line\", []_C_int{9, 3}},\n\t{\"ddb.max_width\", []_C_int{9, 2}},\n\t{\"ddb.panic\", []_C_int{9, 5}},\n\t{\"ddb.profile\", []_C_int{9, 9}},\n\t{\"ddb.radix\", []_C_int{9, 1}},\n\t{\"ddb.tab_stop_width\", []_C_int{9, 4}},\n\t{\"ddb.trigger\", []_C_int{9, 8}},\n\t{\"fs.posix.setuid\", []_C_int{3, 1, 1}},\n\t{\"hw.allowpowerdown\", []_C_int{6, 22}},\n\t{\"hw.byteorder\", []_C_int{6, 4}},\n\t{\"hw.cpuspeed\", []_C_int{6, 12}},\n\t{\"hw.diskcount\", []_C_int{6, 10}},\n\t{\"hw.disknames\", []_C_int{6, 8}},\n\t{\"hw.diskstats\", []_C_int{6, 9}},\n\t{\"hw.machine\", []_C_int{6, 1}},\n\t{\"hw.model\", []_C_int{6, 2}},\n\t{\"hw.ncpu\", []_C_int{6, 3}},\n\t{\"hw.ncpufound\", []_C_int{6, 21}},\n\t{\"hw.ncpuonline\", []_C_int{6, 25}},\n\t{\"hw.pagesize\", []_C_int{6, 7}},\n\t{\"hw.perfpolicy\", []_C_int{6, 23}},\n\t{\"hw.physmem\", []_C_int{6, 19}},\n\t{\"hw.power\", []_C_int{6, 26}},\n\t{\"hw.product\", []_C_int{6, 15}},\n\t{\"hw.serialno\", []_C_int{6, 17}},\n\t{\"hw.setperf\", []_C_int{6, 13}},\n\t{\"hw.smt\", []_C_int{6, 24}},\n\t{\"hw.usermem\", []_C_int{6, 20}},\n\t{\"hw.uuid\", []_C_int{6, 18}},\n\t{\"hw.vendor\", []_C_int{6, 14}},\n\t{\"hw.version\", []_C_int{6, 16}},\n\t{\"kern.allowdt\", []_C_int{1, 65}},\n\t{\"kern.allowkmem\", []_C_int{1, 52}},\n\t{\"kern.argmax\", []_C_int{1, 8}},\n\t{\"kern.audio\", []_C_int{1, 84}},\n\t{\"kern.boottime\", []_C_int{1, 21}},\n\t{\"kern.bufcachepercent\", []_C_int{1, 72}},\n\t{\"kern.ccpu\", []_C_int{1, 45}},\n\t{\"kern.clockrate\", []_C_int{1, 12}},\n\t{\"kern.consbuf\", []_C_int{1, 83}},\n\t{\"kern.consbufsize\", []_C_int{1, 82}},\n\t{\"kern.consdev\", []_C_int{1, 75}},\n\t{\"kern.cp_time\", []_C_int{1, 40}},\n\t{\"kern.cp_time2\", []_C_int{1, 71}},\n\t{\"kern.cpustats\", []_C_int{1, 85}},\n\t{\"kern.domainname\", []_C_int{1, 22}},\n\t{\"kern.file\", []_C_int{1, 73}},\n\t{\"kern.forkstat\", []_C_int{1, 42}},\n\t{\"kern.fscale\", []_C_int{1, 46}},\n\t{\"kern.fsync\", []_C_int{1, 33}},\n\t{\"kern.global_ptrace\", []_C_int{1, 81}},\n\t{\"kern.hostid\", []_C_int{1, 11}},\n\t{\"kern.hostname\", []_C_int{1, 10}},\n\t{\"kern.intrcnt.nintrcnt\", []_C_int{1, 63, 1}},\n\t{\"kern.job_control\", []_C_int{1, 19}},\n\t{\"kern.malloc.buckets\", []_C_int{1, 39, 1}},\n\t{\"kern.malloc.kmemnames\", []_C_int{1, 39, 3}},\n\t{\"kern.maxclusters\", []_C_int{1, 67}},\n\t{\"kern.maxfiles\", []_C_int{1, 7}},\n\t{\"kern.maxlocksperuid\", []_C_int{1, 70}},\n\t{\"kern.maxpartitions\", []_C_int{1, 23}},\n\t{\"kern.maxproc\", []_C_int{1, 6}},\n\t{\"kern.maxthread\", []_C_int{1, 25}},\n\t{\"kern.maxvnodes\", []_C_int{1, 5}},\n\t{\"kern.mbstat\", []_C_int{1, 59}},\n\t{\"kern.msgbuf\", []_C_int{1, 48}},\n\t{\"kern.msgbufsize\", []_C_int{1, 38}},\n\t{\"kern.nchstats\", []_C_int{1, 41}},\n\t{\"kern.netlivelocks\", []_C_int{1, 76}},\n\t{\"kern.nfiles\", []_C_int{1, 56}},\n\t{\"kern.ngroups\", []_C_int{1, 18}},\n\t{\"kern.nosuidcoredump\", []_C_int{1, 32}},\n\t{\"kern.nprocs\", []_C_int{1, 47}},\n\t{\"kern.nthreads\", []_C_int{1, 26}},\n\t{\"kern.numvnodes\", []_C_int{1, 58}},\n\t{\"kern.osrelease\", []_C_int{1, 2}},\n\t{\"kern.osrevision\", []_C_int{1, 3}},\n\t{\"kern.ostype\", []_C_int{1, 1}},\n\t{\"kern.osversion\", []_C_int{1, 27}},\n\t{\"kern.pfstatus\", []_C_int{1, 86}},\n\t{\"kern.pool_debug\", []_C_int{1, 77}},\n\t{\"kern.posix1version\", []_C_int{1, 17}},\n\t{\"kern.proc\", []_C_int{1, 66}},\n\t{\"kern.rawpartition\", []_C_int{1, 24}},\n\t{\"kern.saved_ids\", []_C_int{1, 20}},\n\t{\"kern.securelevel\", []_C_int{1, 9}},\n\t{\"kern.seminfo\", []_C_int{1, 61}},\n\t{\"kern.shminfo\", []_C_int{1, 62}},\n\t{\"kern.somaxconn\", []_C_int{1, 28}},\n\t{\"kern.sominconn\", []_C_int{1, 29}},\n\t{\"kern.splassert\", []_C_int{1, 54}},\n\t{\"kern.stackgap_random\", []_C_int{1, 50}},\n\t{\"kern.sysvipc_info\", []_C_int{1, 51}},\n\t{\"kern.sysvmsg\", []_C_int{1, 34}},\n\t{\"kern.sysvsem\", []_C_int{1, 35}},\n\t{\"kern.sysvshm\", []_C_int{1, 36}},\n\t{\"kern.timecounter.choice\", []_C_int{1, 69, 4}},\n\t{\"kern.timecounter.hardware\", []_C_int{1, 69, 3}},\n\t{\"kern.timecounter.tick\", []_C_int{1, 69, 1}},\n\t{\"kern.timecounter.timestepwarnings\", []_C_int{1, 69, 2}},\n\t{\"kern.timeout_stats\", []_C_int{1, 87}},\n\t{\"kern.tty.tk_cancc\", []_C_int{1, 44, 4}},\n\t{\"kern.tty.tk_nin\", []_C_int{1, 44, 1}},\n\t{\"kern.tty.tk_nout\", []_C_int{1, 44, 2}},\n\t{\"kern.tty.tk_rawcc\", []_C_int{1, 44, 3}},\n\t{\"kern.tty.ttyinfo\", []_C_int{1, 44, 5}},\n\t{\"kern.ttycount\", []_C_int{1, 57}},\n\t{\"kern.utc_offset\", []_C_int{1, 88}},\n\t{\"kern.version\", []_C_int{1, 4}},\n\t{\"kern.video\", []_C_int{1, 89}},\n\t{\"kern.watchdog.auto\", []_C_int{1, 64, 2}},\n\t{\"kern.watchdog.period\", []_C_int{1, 64, 1}},\n\t{\"kern.witnesswatch\", []_C_int{1, 53}},\n\t{\"kern.wxabort\", []_C_int{1, 74}},\n\t{\"net.bpf.bufsize\", []_C_int{4, 31, 1}},\n\t{\"net.bpf.maxbufsize\", []_C_int{4, 31, 2}},\n\t{\"net.inet.ah.enable\", []_C_int{4, 2, 51, 1}},\n\t{\"net.inet.ah.stats\", []_C_int{4, 2, 51, 2}},\n\t{\"net.inet.carp.allow\", []_C_int{4, 2, 112, 1}},\n\t{\"net.inet.carp.log\", []_C_int{4, 2, 112, 3}},\n\t{\"net.inet.carp.preempt\", []_C_int{4, 2, 112, 2}},\n\t{\"net.inet.carp.stats\", []_C_int{4, 2, 112, 4}},\n\t{\"net.inet.divert.recvspace\", []_C_int{4, 2, 258, 1}},\n\t{\"net.inet.divert.sendspace\", []_C_int{4, 2, 258, 2}},\n\t{\"net.inet.divert.stats\", []_C_int{4, 2, 258, 3}},\n\t{\"net.inet.esp.enable\", []_C_int{4, 2, 50, 1}},\n\t{\"net.inet.esp.stats\", []_C_int{4, 2, 50, 4}},\n\t{\"net.inet.esp.udpencap\", []_C_int{4, 2, 50, 2}},\n\t{\"net.inet.esp.udpencap_port\", []_C_int{4, 2, 50, 3}},\n\t{\"net.inet.etherip.allow\", []_C_int{4, 2, 97, 1}},\n\t{\"net.inet.etherip.stats\", []_C_int{4, 2, 97, 2}},\n\t{\"net.inet.gre.allow\", []_C_int{4, 2, 47, 1}},\n\t{\"net.inet.gre.wccp\", []_C_int{4, 2, 47, 2}},\n\t{\"net.inet.icmp.bmcastecho\", []_C_int{4, 2, 1, 2}},\n\t{\"net.inet.icmp.errppslimit\", []_C_int{4, 2, 1, 3}},\n\t{\"net.inet.icmp.maskrepl\", []_C_int{4, 2, 1, 1}},\n\t{\"net.inet.icmp.rediraccept\", []_C_int{4, 2, 1, 4}},\n\t{\"net.inet.icmp.redirtimeout\", []_C_int{4, 2, 1, 5}},\n\t{\"net.inet.icmp.stats\", []_C_int{4, 2, 1, 7}},\n\t{\"net.inet.icmp.tstamprepl\", []_C_int{4, 2, 1, 6}},\n\t{\"net.inet.igmp.stats\", []_C_int{4, 2, 2, 1}},\n\t{\"net.inet.ip.arpdown\", []_C_int{4, 2, 0, 40}},\n\t{\"net.inet.ip.arpqueued\", []_C_int{4, 2, 0, 36}},\n\t{\"net.inet.ip.arptimeout\", []_C_int{4, 2, 0, 39}},\n\t{\"net.inet.ip.encdebug\", []_C_int{4, 2, 0, 12}},\n\t{\"net.inet.ip.forwarding\", []_C_int{4, 2, 0, 1}},\n\t{\"net.inet.ip.ifq.congestion\", []_C_int{4, 2, 0, 30, 4}},\n\t{\"net.inet.ip.ifq.drops\", []_C_int{4, 2, 0, 30, 3}},\n\t{\"net.inet.ip.ifq.len\", []_C_int{4, 2, 0, 30, 1}},\n\t{\"net.inet.ip.ifq.maxlen\", []_C_int{4, 2, 0, 30, 2}},\n\t{\"net.inet.ip.maxqueue\", []_C_int{4, 2, 0, 11}},\n\t{\"net.inet.ip.mforwarding\", []_C_int{4, 2, 0, 31}},\n\t{\"net.inet.ip.mrtmfc\", []_C_int{4, 2, 0, 37}},\n\t{\"net.inet.ip.mrtproto\", []_C_int{4, 2, 0, 34}},\n\t{\"net.inet.ip.mrtstats\", []_C_int{4, 2, 0, 35}},\n\t{\"net.inet.ip.mrtvif\", []_C_int{4, 2, 0, 38}},\n\t{\"net.inet.ip.mtu\", []_C_int{4, 2, 0, 4}},\n\t{\"net.inet.ip.mtudisc\", []_C_int{4, 2, 0, 27}},\n\t{\"net.inet.ip.mtudisctimeout\", []_C_int{4, 2, 0, 28}},\n\t{\"net.inet.ip.multipath\", []_C_int{4, 2, 0, 32}},\n\t{\"net.inet.ip.portfirst\", []_C_int{4, 2, 0, 7}},\n\t{\"net.inet.ip.porthifirst\", []_C_int{4, 2, 0, 9}},\n\t{\"net.inet.ip.porthilast\", []_C_int{4, 2, 0, 10}},\n\t{\"net.inet.ip.portlast\", []_C_int{4, 2, 0, 8}},\n\t{\"net.inet.ip.redirect\", []_C_int{4, 2, 0, 2}},\n\t{\"net.inet.ip.sourceroute\", []_C_int{4, 2, 0, 5}},\n\t{\"net.inet.ip.stats\", []_C_int{4, 2, 0, 33}},\n\t{\"net.inet.ip.ttl\", []_C_int{4, 2, 0, 3}},\n\t{\"net.inet.ipcomp.enable\", []_C_int{4, 2, 108, 1}},\n\t{\"net.inet.ipcomp.stats\", []_C_int{4, 2, 108, 2}},\n\t{\"net.inet.ipip.allow\", []_C_int{4, 2, 4, 1}},\n\t{\"net.inet.ipip.stats\", []_C_int{4, 2, 4, 2}},\n\t{\"net.inet.pfsync.stats\", []_C_int{4, 2, 240, 1}},\n\t{\"net.inet.tcp.ackonpush\", []_C_int{4, 2, 6, 13}},\n\t{\"net.inet.tcp.always_keepalive\", []_C_int{4, 2, 6, 22}},\n\t{\"net.inet.tcp.baddynamic\", []_C_int{4, 2, 6, 6}},\n\t{\"net.inet.tcp.drop\", []_C_int{4, 2, 6, 19}},\n\t{\"net.inet.tcp.ecn\", []_C_int{4, 2, 6, 14}},\n\t{\"net.inet.tcp.ident\", []_C_int{4, 2, 6, 9}},\n\t{\"net.inet.tcp.keepidle\", []_C_int{4, 2, 6, 3}},\n\t{\"net.inet.tcp.keepinittime\", []_C_int{4, 2, 6, 2}},\n\t{\"net.inet.tcp.keepintvl\", []_C_int{4, 2, 6, 4}},\n\t{\"net.inet.tcp.mssdflt\", []_C_int{4, 2, 6, 11}},\n\t{\"net.inet.tcp.reasslimit\", []_C_int{4, 2, 6, 18}},\n\t{\"net.inet.tcp.rfc1323\", []_C_int{4, 2, 6, 1}},\n\t{\"net.inet.tcp.rfc3390\", []_C_int{4, 2, 6, 17}},\n\t{\"net.inet.tcp.rootonly\", []_C_int{4, 2, 6, 24}},\n\t{\"net.inet.tcp.rstppslimit\", []_C_int{4, 2, 6, 12}},\n\t{\"net.inet.tcp.sack\", []_C_int{4, 2, 6, 10}},\n\t{\"net.inet.tcp.sackholelimit\", []_C_int{4, 2, 6, 20}},\n\t{\"net.inet.tcp.slowhz\", []_C_int{4, 2, 6, 5}},\n\t{\"net.inet.tcp.stats\", []_C_int{4, 2, 6, 21}},\n\t{\"net.inet.tcp.synbucketlimit\", []_C_int{4, 2, 6, 16}},\n\t{\"net.inet.tcp.syncachelimit\", []_C_int{4, 2, 6, 15}},\n\t{\"net.inet.tcp.synhashsize\", []_C_int{4, 2, 6, 25}},\n\t{\"net.inet.tcp.synuselimit\", []_C_int{4, 2, 6, 23}},\n\t{\"net.inet.udp.baddynamic\", []_C_int{4, 2, 17, 2}},\n\t{\"net.inet.udp.checksum\", []_C_int{4, 2, 17, 1}},\n\t{\"net.inet.udp.recvspace\", []_C_int{4, 2, 17, 3}},\n\t{\"net.inet.udp.rootonly\", []_C_int{4, 2, 17, 6}},\n\t{\"net.inet.udp.sendspace\", []_C_int{4, 2, 17, 4}},\n\t{\"net.inet.udp.stats\", []_C_int{4, 2, 17, 5}},\n\t{\"net.inet6.divert.recvspace\", []_C_int{4, 24, 86, 1}},\n\t{\"net.inet6.divert.sendspace\", []_C_int{4, 24, 86, 2}},\n\t{\"net.inet6.divert.stats\", []_C_int{4, 24, 86, 3}},\n\t{\"net.inet6.icmp6.errppslimit\", []_C_int{4, 24, 30, 14}},\n\t{\"net.inet6.icmp6.mtudisc_hiwat\", []_C_int{4, 24, 30, 16}},\n\t{\"net.inet6.icmp6.mtudisc_lowat\", []_C_int{4, 24, 30, 17}},\n\t{\"net.inet6.icmp6.nd6_debug\", []_C_int{4, 24, 30, 18}},\n\t{\"net.inet6.icmp6.nd6_delay\", []_C_int{4, 24, 30, 8}},\n\t{\"net.inet6.icmp6.nd6_maxnudhint\", []_C_int{4, 24, 30, 15}},\n\t{\"net.inet6.icmp6.nd6_mmaxtries\", []_C_int{4, 24, 30, 10}},\n\t{\"net.inet6.icmp6.nd6_umaxtries\", []_C_int{4, 24, 30, 9}},\n\t{\"net.inet6.icmp6.redirtimeout\", []_C_int{4, 24, 30, 3}},\n\t{\"net.inet6.ip6.auto_flowlabel\", []_C_int{4, 24, 17, 17}},\n\t{\"net.inet6.ip6.dad_count\", []_C_int{4, 24, 17, 16}},\n\t{\"net.inet6.ip6.dad_pending\", []_C_int{4, 24, 17, 49}},\n\t{\"net.inet6.ip6.defmcasthlim\", []_C_int{4, 24, 17, 18}},\n\t{\"net.inet6.ip6.forwarding\", []_C_int{4, 24, 17, 1}},\n\t{\"net.inet6.ip6.forwsrcrt\", []_C_int{4, 24, 17, 5}},\n\t{\"net.inet6.ip6.hdrnestlimit\", []_C_int{4, 24, 17, 15}},\n\t{\"net.inet6.ip6.hlim\", []_C_int{4, 24, 17, 3}},\n\t{\"net.inet6.ip6.log_interval\", []_C_int{4, 24, 17, 14}},\n\t{\"net.inet6.ip6.maxdynroutes\", []_C_int{4, 24, 17, 48}},\n\t{\"net.inet6.ip6.maxfragpackets\", []_C_int{4, 24, 17, 9}},\n\t{\"net.inet6.ip6.maxfrags\", []_C_int{4, 24, 17, 41}},\n\t{\"net.inet6.ip6.mforwarding\", []_C_int{4, 24, 17, 42}},\n\t{\"net.inet6.ip6.mrtmfc\", []_C_int{4, 24, 17, 53}},\n\t{\"net.inet6.ip6.mrtmif\", []_C_int{4, 24, 17, 52}},\n\t{\"net.inet6.ip6.mrtproto\", []_C_int{4, 24, 17, 8}},\n\t{\"net.inet6.ip6.mtudisctimeout\", []_C_int{4, 24, 17, 50}},\n\t{\"net.inet6.ip6.multicast_mtudisc\", []_C_int{4, 24, 17, 44}},\n\t{\"net.inet6.ip6.multipath\", []_C_int{4, 24, 17, 43}},\n\t{\"net.inet6.ip6.neighborgcthresh\", []_C_int{4, 24, 17, 45}},\n\t{\"net.inet6.ip6.redirect\", []_C_int{4, 24, 17, 2}},\n\t{\"net.inet6.ip6.soiikey\", []_C_int{4, 24, 17, 54}},\n\t{\"net.inet6.ip6.sourcecheck\", []_C_int{4, 24, 17, 10}},\n\t{\"net.inet6.ip6.sourcecheck_logint\", []_C_int{4, 24, 17, 11}},\n\t{\"net.inet6.ip6.use_deprecated\", []_C_int{4, 24, 17, 21}},\n\t{\"net.key.sadb_dump\", []_C_int{4, 30, 1}},\n\t{\"net.key.spd_dump\", []_C_int{4, 30, 2}},\n\t{\"net.mpls.ifq.congestion\", []_C_int{4, 33, 3, 4}},\n\t{\"net.mpls.ifq.drops\", []_C_int{4, 33, 3, 3}},\n\t{\"net.mpls.ifq.len\", []_C_int{4, 33, 3, 1}},\n\t{\"net.mpls.ifq.maxlen\", []_C_int{4, 33, 3, 2}},\n\t{\"net.mpls.mapttl_ip\", []_C_int{4, 33, 5}},\n\t{\"net.mpls.mapttl_ip6\", []_C_int{4, 33, 6}},\n\t{\"net.mpls.ttl\", []_C_int{4, 33, 2}},\n\t{\"net.pflow.stats\", []_C_int{4, 34, 1}},\n\t{\"net.pipex.enable\", []_C_int{4, 35, 1}},\n\t{\"vm.anonmin\", []_C_int{2, 7}},\n\t{\"vm.loadavg\", []_C_int{2, 2}},\n\t{\"vm.malloc_conf\", []_C_int{2, 12}},\n\t{\"vm.maxslp\", []_C_int{2, 10}},\n\t{\"vm.nkmempages\", []_C_int{2, 6}},\n\t{\"vm.psstrings\", []_C_int{2, 3}},\n\t{\"vm.swapencrypt.enable\", []_C_int{2, 5, 0}},\n\t{\"vm.swapencrypt.keyscreated\", []_C_int{2, 5, 1}},\n\t{\"vm.swapencrypt.keysdeleted\", []_C_int{2, 5, 2}},\n\t{\"vm.uspace\", []_C_int{2, 11}},\n\t{\"vm.uvmexp\", []_C_int{2, 4}},\n\t{\"vm.vmmeter\", []_C_int{2, 1}},\n\t{\"vm.vnodemin\", []_C_int{2, 9}},\n\t{\"vm.vtextmin\", []_C_int{2, 8}},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go",
    "content": "// go run mksysctl_openbsd.go\n// Code generated by the command above; DO NOT EDIT.\n\n//go:build arm && openbsd\n\npackage unix\n\ntype mibentry struct {\n\tctlname string\n\tctloid  []_C_int\n}\n\nvar sysctlMib = []mibentry{\n\t{\"ddb.console\", []_C_int{9, 6}},\n\t{\"ddb.log\", []_C_int{9, 7}},\n\t{\"ddb.max_line\", []_C_int{9, 3}},\n\t{\"ddb.max_width\", []_C_int{9, 2}},\n\t{\"ddb.panic\", []_C_int{9, 5}},\n\t{\"ddb.profile\", []_C_int{9, 9}},\n\t{\"ddb.radix\", []_C_int{9, 1}},\n\t{\"ddb.tab_stop_width\", []_C_int{9, 4}},\n\t{\"ddb.trigger\", []_C_int{9, 8}},\n\t{\"fs.posix.setuid\", []_C_int{3, 1, 1}},\n\t{\"hw.allowpowerdown\", []_C_int{6, 22}},\n\t{\"hw.byteorder\", []_C_int{6, 4}},\n\t{\"hw.cpuspeed\", []_C_int{6, 12}},\n\t{\"hw.diskcount\", []_C_int{6, 10}},\n\t{\"hw.disknames\", []_C_int{6, 8}},\n\t{\"hw.diskstats\", []_C_int{6, 9}},\n\t{\"hw.machine\", []_C_int{6, 1}},\n\t{\"hw.model\", []_C_int{6, 2}},\n\t{\"hw.ncpu\", []_C_int{6, 3}},\n\t{\"hw.ncpufound\", []_C_int{6, 21}},\n\t{\"hw.ncpuonline\", []_C_int{6, 25}},\n\t{\"hw.pagesize\", []_C_int{6, 7}},\n\t{\"hw.perfpolicy\", []_C_int{6, 23}},\n\t{\"hw.physmem\", []_C_int{6, 19}},\n\t{\"hw.power\", []_C_int{6, 26}},\n\t{\"hw.product\", []_C_int{6, 15}},\n\t{\"hw.serialno\", []_C_int{6, 17}},\n\t{\"hw.setperf\", []_C_int{6, 13}},\n\t{\"hw.smt\", []_C_int{6, 24}},\n\t{\"hw.usermem\", []_C_int{6, 20}},\n\t{\"hw.uuid\", []_C_int{6, 18}},\n\t{\"hw.vendor\", []_C_int{6, 14}},\n\t{\"hw.version\", []_C_int{6, 16}},\n\t{\"kern.allowdt\", []_C_int{1, 65}},\n\t{\"kern.allowkmem\", []_C_int{1, 52}},\n\t{\"kern.argmax\", []_C_int{1, 8}},\n\t{\"kern.audio\", []_C_int{1, 84}},\n\t{\"kern.boottime\", []_C_int{1, 21}},\n\t{\"kern.bufcachepercent\", []_C_int{1, 72}},\n\t{\"kern.ccpu\", []_C_int{1, 45}},\n\t{\"kern.clockrate\", []_C_int{1, 12}},\n\t{\"kern.consbuf\", []_C_int{1, 83}},\n\t{\"kern.consbufsize\", []_C_int{1, 82}},\n\t{\"kern.consdev\", []_C_int{1, 75}},\n\t{\"kern.cp_time\", []_C_int{1, 40}},\n\t{\"kern.cp_time2\", []_C_int{1, 71}},\n\t{\"kern.cpustats\", []_C_int{1, 85}},\n\t{\"kern.domainname\", []_C_int{1, 22}},\n\t{\"kern.file\", []_C_int{1, 73}},\n\t{\"kern.forkstat\", []_C_int{1, 42}},\n\t{\"kern.fscale\", []_C_int{1, 46}},\n\t{\"kern.fsync\", []_C_int{1, 33}},\n\t{\"kern.global_ptrace\", []_C_int{1, 81}},\n\t{\"kern.hostid\", []_C_int{1, 11}},\n\t{\"kern.hostname\", []_C_int{1, 10}},\n\t{\"kern.intrcnt.nintrcnt\", []_C_int{1, 63, 1}},\n\t{\"kern.job_control\", []_C_int{1, 19}},\n\t{\"kern.malloc.buckets\", []_C_int{1, 39, 1}},\n\t{\"kern.malloc.kmemnames\", []_C_int{1, 39, 3}},\n\t{\"kern.maxclusters\", []_C_int{1, 67}},\n\t{\"kern.maxfiles\", []_C_int{1, 7}},\n\t{\"kern.maxlocksperuid\", []_C_int{1, 70}},\n\t{\"kern.maxpartitions\", []_C_int{1, 23}},\n\t{\"kern.maxproc\", []_C_int{1, 6}},\n\t{\"kern.maxthread\", []_C_int{1, 25}},\n\t{\"kern.maxvnodes\", []_C_int{1, 5}},\n\t{\"kern.mbstat\", []_C_int{1, 59}},\n\t{\"kern.msgbuf\", []_C_int{1, 48}},\n\t{\"kern.msgbufsize\", []_C_int{1, 38}},\n\t{\"kern.nchstats\", []_C_int{1, 41}},\n\t{\"kern.netlivelocks\", []_C_int{1, 76}},\n\t{\"kern.nfiles\", []_C_int{1, 56}},\n\t{\"kern.ngroups\", []_C_int{1, 18}},\n\t{\"kern.nosuidcoredump\", []_C_int{1, 32}},\n\t{\"kern.nprocs\", []_C_int{1, 47}},\n\t{\"kern.nthreads\", []_C_int{1, 26}},\n\t{\"kern.numvnodes\", []_C_int{1, 58}},\n\t{\"kern.osrelease\", []_C_int{1, 2}},\n\t{\"kern.osrevision\", []_C_int{1, 3}},\n\t{\"kern.ostype\", []_C_int{1, 1}},\n\t{\"kern.osversion\", []_C_int{1, 27}},\n\t{\"kern.pfstatus\", []_C_int{1, 86}},\n\t{\"kern.pool_debug\", []_C_int{1, 77}},\n\t{\"kern.posix1version\", []_C_int{1, 17}},\n\t{\"kern.proc\", []_C_int{1, 66}},\n\t{\"kern.rawpartition\", []_C_int{1, 24}},\n\t{\"kern.saved_ids\", []_C_int{1, 20}},\n\t{\"kern.securelevel\", []_C_int{1, 9}},\n\t{\"kern.seminfo\", []_C_int{1, 61}},\n\t{\"kern.shminfo\", []_C_int{1, 62}},\n\t{\"kern.somaxconn\", []_C_int{1, 28}},\n\t{\"kern.sominconn\", []_C_int{1, 29}},\n\t{\"kern.splassert\", []_C_int{1, 54}},\n\t{\"kern.stackgap_random\", []_C_int{1, 50}},\n\t{\"kern.sysvipc_info\", []_C_int{1, 51}},\n\t{\"kern.sysvmsg\", []_C_int{1, 34}},\n\t{\"kern.sysvsem\", []_C_int{1, 35}},\n\t{\"kern.sysvshm\", []_C_int{1, 36}},\n\t{\"kern.timecounter.choice\", []_C_int{1, 69, 4}},\n\t{\"kern.timecounter.hardware\", []_C_int{1, 69, 3}},\n\t{\"kern.timecounter.tick\", []_C_int{1, 69, 1}},\n\t{\"kern.timecounter.timestepwarnings\", []_C_int{1, 69, 2}},\n\t{\"kern.timeout_stats\", []_C_int{1, 87}},\n\t{\"kern.tty.tk_cancc\", []_C_int{1, 44, 4}},\n\t{\"kern.tty.tk_nin\", []_C_int{1, 44, 1}},\n\t{\"kern.tty.tk_nout\", []_C_int{1, 44, 2}},\n\t{\"kern.tty.tk_rawcc\", []_C_int{1, 44, 3}},\n\t{\"kern.tty.ttyinfo\", []_C_int{1, 44, 5}},\n\t{\"kern.ttycount\", []_C_int{1, 57}},\n\t{\"kern.utc_offset\", []_C_int{1, 88}},\n\t{\"kern.version\", []_C_int{1, 4}},\n\t{\"kern.video\", []_C_int{1, 89}},\n\t{\"kern.watchdog.auto\", []_C_int{1, 64, 2}},\n\t{\"kern.watchdog.period\", []_C_int{1, 64, 1}},\n\t{\"kern.witnesswatch\", []_C_int{1, 53}},\n\t{\"kern.wxabort\", []_C_int{1, 74}},\n\t{\"net.bpf.bufsize\", []_C_int{4, 31, 1}},\n\t{\"net.bpf.maxbufsize\", []_C_int{4, 31, 2}},\n\t{\"net.inet.ah.enable\", []_C_int{4, 2, 51, 1}},\n\t{\"net.inet.ah.stats\", []_C_int{4, 2, 51, 2}},\n\t{\"net.inet.carp.allow\", []_C_int{4, 2, 112, 1}},\n\t{\"net.inet.carp.log\", []_C_int{4, 2, 112, 3}},\n\t{\"net.inet.carp.preempt\", []_C_int{4, 2, 112, 2}},\n\t{\"net.inet.carp.stats\", []_C_int{4, 2, 112, 4}},\n\t{\"net.inet.divert.recvspace\", []_C_int{4, 2, 258, 1}},\n\t{\"net.inet.divert.sendspace\", []_C_int{4, 2, 258, 2}},\n\t{\"net.inet.divert.stats\", []_C_int{4, 2, 258, 3}},\n\t{\"net.inet.esp.enable\", []_C_int{4, 2, 50, 1}},\n\t{\"net.inet.esp.stats\", []_C_int{4, 2, 50, 4}},\n\t{\"net.inet.esp.udpencap\", []_C_int{4, 2, 50, 2}},\n\t{\"net.inet.esp.udpencap_port\", []_C_int{4, 2, 50, 3}},\n\t{\"net.inet.etherip.allow\", []_C_int{4, 2, 97, 1}},\n\t{\"net.inet.etherip.stats\", []_C_int{4, 2, 97, 2}},\n\t{\"net.inet.gre.allow\", []_C_int{4, 2, 47, 1}},\n\t{\"net.inet.gre.wccp\", []_C_int{4, 2, 47, 2}},\n\t{\"net.inet.icmp.bmcastecho\", []_C_int{4, 2, 1, 2}},\n\t{\"net.inet.icmp.errppslimit\", []_C_int{4, 2, 1, 3}},\n\t{\"net.inet.icmp.maskrepl\", []_C_int{4, 2, 1, 1}},\n\t{\"net.inet.icmp.rediraccept\", []_C_int{4, 2, 1, 4}},\n\t{\"net.inet.icmp.redirtimeout\", []_C_int{4, 2, 1, 5}},\n\t{\"net.inet.icmp.stats\", []_C_int{4, 2, 1, 7}},\n\t{\"net.inet.icmp.tstamprepl\", []_C_int{4, 2, 1, 6}},\n\t{\"net.inet.igmp.stats\", []_C_int{4, 2, 2, 1}},\n\t{\"net.inet.ip.arpdown\", []_C_int{4, 2, 0, 40}},\n\t{\"net.inet.ip.arpqueued\", []_C_int{4, 2, 0, 36}},\n\t{\"net.inet.ip.arptimeout\", []_C_int{4, 2, 0, 39}},\n\t{\"net.inet.ip.encdebug\", []_C_int{4, 2, 0, 12}},\n\t{\"net.inet.ip.forwarding\", []_C_int{4, 2, 0, 1}},\n\t{\"net.inet.ip.ifq.congestion\", []_C_int{4, 2, 0, 30, 4}},\n\t{\"net.inet.ip.ifq.drops\", []_C_int{4, 2, 0, 30, 3}},\n\t{\"net.inet.ip.ifq.len\", []_C_int{4, 2, 0, 30, 1}},\n\t{\"net.inet.ip.ifq.maxlen\", []_C_int{4, 2, 0, 30, 2}},\n\t{\"net.inet.ip.maxqueue\", []_C_int{4, 2, 0, 11}},\n\t{\"net.inet.ip.mforwarding\", []_C_int{4, 2, 0, 31}},\n\t{\"net.inet.ip.mrtmfc\", []_C_int{4, 2, 0, 37}},\n\t{\"net.inet.ip.mrtproto\", []_C_int{4, 2, 0, 34}},\n\t{\"net.inet.ip.mrtstats\", []_C_int{4, 2, 0, 35}},\n\t{\"net.inet.ip.mrtvif\", []_C_int{4, 2, 0, 38}},\n\t{\"net.inet.ip.mtu\", []_C_int{4, 2, 0, 4}},\n\t{\"net.inet.ip.mtudisc\", []_C_int{4, 2, 0, 27}},\n\t{\"net.inet.ip.mtudisctimeout\", []_C_int{4, 2, 0, 28}},\n\t{\"net.inet.ip.multipath\", []_C_int{4, 2, 0, 32}},\n\t{\"net.inet.ip.portfirst\", []_C_int{4, 2, 0, 7}},\n\t{\"net.inet.ip.porthifirst\", []_C_int{4, 2, 0, 9}},\n\t{\"net.inet.ip.porthilast\", []_C_int{4, 2, 0, 10}},\n\t{\"net.inet.ip.portlast\", []_C_int{4, 2, 0, 8}},\n\t{\"net.inet.ip.redirect\", []_C_int{4, 2, 0, 2}},\n\t{\"net.inet.ip.sourceroute\", []_C_int{4, 2, 0, 5}},\n\t{\"net.inet.ip.stats\", []_C_int{4, 2, 0, 33}},\n\t{\"net.inet.ip.ttl\", []_C_int{4, 2, 0, 3}},\n\t{\"net.inet.ipcomp.enable\", []_C_int{4, 2, 108, 1}},\n\t{\"net.inet.ipcomp.stats\", []_C_int{4, 2, 108, 2}},\n\t{\"net.inet.ipip.allow\", []_C_int{4, 2, 4, 1}},\n\t{\"net.inet.ipip.stats\", []_C_int{4, 2, 4, 2}},\n\t{\"net.inet.pfsync.stats\", []_C_int{4, 2, 240, 1}},\n\t{\"net.inet.tcp.ackonpush\", []_C_int{4, 2, 6, 13}},\n\t{\"net.inet.tcp.always_keepalive\", []_C_int{4, 2, 6, 22}},\n\t{\"net.inet.tcp.baddynamic\", []_C_int{4, 2, 6, 6}},\n\t{\"net.inet.tcp.drop\", []_C_int{4, 2, 6, 19}},\n\t{\"net.inet.tcp.ecn\", []_C_int{4, 2, 6, 14}},\n\t{\"net.inet.tcp.ident\", []_C_int{4, 2, 6, 9}},\n\t{\"net.inet.tcp.keepidle\", []_C_int{4, 2, 6, 3}},\n\t{\"net.inet.tcp.keepinittime\", []_C_int{4, 2, 6, 2}},\n\t{\"net.inet.tcp.keepintvl\", []_C_int{4, 2, 6, 4}},\n\t{\"net.inet.tcp.mssdflt\", []_C_int{4, 2, 6, 11}},\n\t{\"net.inet.tcp.reasslimit\", []_C_int{4, 2, 6, 18}},\n\t{\"net.inet.tcp.rfc1323\", []_C_int{4, 2, 6, 1}},\n\t{\"net.inet.tcp.rfc3390\", []_C_int{4, 2, 6, 17}},\n\t{\"net.inet.tcp.rootonly\", []_C_int{4, 2, 6, 24}},\n\t{\"net.inet.tcp.rstppslimit\", []_C_int{4, 2, 6, 12}},\n\t{\"net.inet.tcp.sack\", []_C_int{4, 2, 6, 10}},\n\t{\"net.inet.tcp.sackholelimit\", []_C_int{4, 2, 6, 20}},\n\t{\"net.inet.tcp.slowhz\", []_C_int{4, 2, 6, 5}},\n\t{\"net.inet.tcp.stats\", []_C_int{4, 2, 6, 21}},\n\t{\"net.inet.tcp.synbucketlimit\", []_C_int{4, 2, 6, 16}},\n\t{\"net.inet.tcp.syncachelimit\", []_C_int{4, 2, 6, 15}},\n\t{\"net.inet.tcp.synhashsize\", []_C_int{4, 2, 6, 25}},\n\t{\"net.inet.tcp.synuselimit\", []_C_int{4, 2, 6, 23}},\n\t{\"net.inet.udp.baddynamic\", []_C_int{4, 2, 17, 2}},\n\t{\"net.inet.udp.checksum\", []_C_int{4, 2, 17, 1}},\n\t{\"net.inet.udp.recvspace\", []_C_int{4, 2, 17, 3}},\n\t{\"net.inet.udp.rootonly\", []_C_int{4, 2, 17, 6}},\n\t{\"net.inet.udp.sendspace\", []_C_int{4, 2, 17, 4}},\n\t{\"net.inet.udp.stats\", []_C_int{4, 2, 17, 5}},\n\t{\"net.inet6.divert.recvspace\", []_C_int{4, 24, 86, 1}},\n\t{\"net.inet6.divert.sendspace\", []_C_int{4, 24, 86, 2}},\n\t{\"net.inet6.divert.stats\", []_C_int{4, 24, 86, 3}},\n\t{\"net.inet6.icmp6.errppslimit\", []_C_int{4, 24, 30, 14}},\n\t{\"net.inet6.icmp6.mtudisc_hiwat\", []_C_int{4, 24, 30, 16}},\n\t{\"net.inet6.icmp6.mtudisc_lowat\", []_C_int{4, 24, 30, 17}},\n\t{\"net.inet6.icmp6.nd6_debug\", []_C_int{4, 24, 30, 18}},\n\t{\"net.inet6.icmp6.nd6_delay\", []_C_int{4, 24, 30, 8}},\n\t{\"net.inet6.icmp6.nd6_maxnudhint\", []_C_int{4, 24, 30, 15}},\n\t{\"net.inet6.icmp6.nd6_mmaxtries\", []_C_int{4, 24, 30, 10}},\n\t{\"net.inet6.icmp6.nd6_umaxtries\", []_C_int{4, 24, 30, 9}},\n\t{\"net.inet6.icmp6.redirtimeout\", []_C_int{4, 24, 30, 3}},\n\t{\"net.inet6.ip6.auto_flowlabel\", []_C_int{4, 24, 17, 17}},\n\t{\"net.inet6.ip6.dad_count\", []_C_int{4, 24, 17, 16}},\n\t{\"net.inet6.ip6.dad_pending\", []_C_int{4, 24, 17, 49}},\n\t{\"net.inet6.ip6.defmcasthlim\", []_C_int{4, 24, 17, 18}},\n\t{\"net.inet6.ip6.forwarding\", []_C_int{4, 24, 17, 1}},\n\t{\"net.inet6.ip6.forwsrcrt\", []_C_int{4, 24, 17, 5}},\n\t{\"net.inet6.ip6.hdrnestlimit\", []_C_int{4, 24, 17, 15}},\n\t{\"net.inet6.ip6.hlim\", []_C_int{4, 24, 17, 3}},\n\t{\"net.inet6.ip6.log_interval\", []_C_int{4, 24, 17, 14}},\n\t{\"net.inet6.ip6.maxdynroutes\", []_C_int{4, 24, 17, 48}},\n\t{\"net.inet6.ip6.maxfragpackets\", []_C_int{4, 24, 17, 9}},\n\t{\"net.inet6.ip6.maxfrags\", []_C_int{4, 24, 17, 41}},\n\t{\"net.inet6.ip6.mforwarding\", []_C_int{4, 24, 17, 42}},\n\t{\"net.inet6.ip6.mrtmfc\", []_C_int{4, 24, 17, 53}},\n\t{\"net.inet6.ip6.mrtmif\", []_C_int{4, 24, 17, 52}},\n\t{\"net.inet6.ip6.mrtproto\", []_C_int{4, 24, 17, 8}},\n\t{\"net.inet6.ip6.mtudisctimeout\", []_C_int{4, 24, 17, 50}},\n\t{\"net.inet6.ip6.multicast_mtudisc\", []_C_int{4, 24, 17, 44}},\n\t{\"net.inet6.ip6.multipath\", []_C_int{4, 24, 17, 43}},\n\t{\"net.inet6.ip6.neighborgcthresh\", []_C_int{4, 24, 17, 45}},\n\t{\"net.inet6.ip6.redirect\", []_C_int{4, 24, 17, 2}},\n\t{\"net.inet6.ip6.soiikey\", []_C_int{4, 24, 17, 54}},\n\t{\"net.inet6.ip6.sourcecheck\", []_C_int{4, 24, 17, 10}},\n\t{\"net.inet6.ip6.sourcecheck_logint\", []_C_int{4, 24, 17, 11}},\n\t{\"net.inet6.ip6.use_deprecated\", []_C_int{4, 24, 17, 21}},\n\t{\"net.key.sadb_dump\", []_C_int{4, 30, 1}},\n\t{\"net.key.spd_dump\", []_C_int{4, 30, 2}},\n\t{\"net.mpls.ifq.congestion\", []_C_int{4, 33, 3, 4}},\n\t{\"net.mpls.ifq.drops\", []_C_int{4, 33, 3, 3}},\n\t{\"net.mpls.ifq.len\", []_C_int{4, 33, 3, 1}},\n\t{\"net.mpls.ifq.maxlen\", []_C_int{4, 33, 3, 2}},\n\t{\"net.mpls.mapttl_ip\", []_C_int{4, 33, 5}},\n\t{\"net.mpls.mapttl_ip6\", []_C_int{4, 33, 6}},\n\t{\"net.mpls.ttl\", []_C_int{4, 33, 2}},\n\t{\"net.pflow.stats\", []_C_int{4, 34, 1}},\n\t{\"net.pipex.enable\", []_C_int{4, 35, 1}},\n\t{\"vm.anonmin\", []_C_int{2, 7}},\n\t{\"vm.loadavg\", []_C_int{2, 2}},\n\t{\"vm.malloc_conf\", []_C_int{2, 12}},\n\t{\"vm.maxslp\", []_C_int{2, 10}},\n\t{\"vm.nkmempages\", []_C_int{2, 6}},\n\t{\"vm.psstrings\", []_C_int{2, 3}},\n\t{\"vm.swapencrypt.enable\", []_C_int{2, 5, 0}},\n\t{\"vm.swapencrypt.keyscreated\", []_C_int{2, 5, 1}},\n\t{\"vm.swapencrypt.keysdeleted\", []_C_int{2, 5, 2}},\n\t{\"vm.uspace\", []_C_int{2, 11}},\n\t{\"vm.uvmexp\", []_C_int{2, 4}},\n\t{\"vm.vmmeter\", []_C_int{2, 1}},\n\t{\"vm.vnodemin\", []_C_int{2, 9}},\n\t{\"vm.vtextmin\", []_C_int{2, 8}},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go",
    "content": "// go run mksysctl_openbsd.go\n// Code generated by the command above; DO NOT EDIT.\n\n//go:build arm64 && openbsd\n\npackage unix\n\ntype mibentry struct {\n\tctlname string\n\tctloid  []_C_int\n}\n\nvar sysctlMib = []mibentry{\n\t{\"ddb.console\", []_C_int{9, 6}},\n\t{\"ddb.log\", []_C_int{9, 7}},\n\t{\"ddb.max_line\", []_C_int{9, 3}},\n\t{\"ddb.max_width\", []_C_int{9, 2}},\n\t{\"ddb.panic\", []_C_int{9, 5}},\n\t{\"ddb.profile\", []_C_int{9, 9}},\n\t{\"ddb.radix\", []_C_int{9, 1}},\n\t{\"ddb.tab_stop_width\", []_C_int{9, 4}},\n\t{\"ddb.trigger\", []_C_int{9, 8}},\n\t{\"fs.posix.setuid\", []_C_int{3, 1, 1}},\n\t{\"hw.allowpowerdown\", []_C_int{6, 22}},\n\t{\"hw.byteorder\", []_C_int{6, 4}},\n\t{\"hw.cpuspeed\", []_C_int{6, 12}},\n\t{\"hw.diskcount\", []_C_int{6, 10}},\n\t{\"hw.disknames\", []_C_int{6, 8}},\n\t{\"hw.diskstats\", []_C_int{6, 9}},\n\t{\"hw.machine\", []_C_int{6, 1}},\n\t{\"hw.model\", []_C_int{6, 2}},\n\t{\"hw.ncpu\", []_C_int{6, 3}},\n\t{\"hw.ncpufound\", []_C_int{6, 21}},\n\t{\"hw.ncpuonline\", []_C_int{6, 25}},\n\t{\"hw.pagesize\", []_C_int{6, 7}},\n\t{\"hw.perfpolicy\", []_C_int{6, 23}},\n\t{\"hw.physmem\", []_C_int{6, 19}},\n\t{\"hw.power\", []_C_int{6, 26}},\n\t{\"hw.product\", []_C_int{6, 15}},\n\t{\"hw.serialno\", []_C_int{6, 17}},\n\t{\"hw.setperf\", []_C_int{6, 13}},\n\t{\"hw.smt\", []_C_int{6, 24}},\n\t{\"hw.usermem\", []_C_int{6, 20}},\n\t{\"hw.uuid\", []_C_int{6, 18}},\n\t{\"hw.vendor\", []_C_int{6, 14}},\n\t{\"hw.version\", []_C_int{6, 16}},\n\t{\"kern.allowdt\", []_C_int{1, 65}},\n\t{\"kern.allowkmem\", []_C_int{1, 52}},\n\t{\"kern.argmax\", []_C_int{1, 8}},\n\t{\"kern.audio\", []_C_int{1, 84}},\n\t{\"kern.boottime\", []_C_int{1, 21}},\n\t{\"kern.bufcachepercent\", []_C_int{1, 72}},\n\t{\"kern.ccpu\", []_C_int{1, 45}},\n\t{\"kern.clockrate\", []_C_int{1, 12}},\n\t{\"kern.consbuf\", []_C_int{1, 83}},\n\t{\"kern.consbufsize\", []_C_int{1, 82}},\n\t{\"kern.consdev\", []_C_int{1, 75}},\n\t{\"kern.cp_time\", []_C_int{1, 40}},\n\t{\"kern.cp_time2\", []_C_int{1, 71}},\n\t{\"kern.cpustats\", []_C_int{1, 85}},\n\t{\"kern.domainname\", []_C_int{1, 22}},\n\t{\"kern.file\", []_C_int{1, 73}},\n\t{\"kern.forkstat\", []_C_int{1, 42}},\n\t{\"kern.fscale\", []_C_int{1, 46}},\n\t{\"kern.fsync\", []_C_int{1, 33}},\n\t{\"kern.global_ptrace\", []_C_int{1, 81}},\n\t{\"kern.hostid\", []_C_int{1, 11}},\n\t{\"kern.hostname\", []_C_int{1, 10}},\n\t{\"kern.intrcnt.nintrcnt\", []_C_int{1, 63, 1}},\n\t{\"kern.job_control\", []_C_int{1, 19}},\n\t{\"kern.malloc.buckets\", []_C_int{1, 39, 1}},\n\t{\"kern.malloc.kmemnames\", []_C_int{1, 39, 3}},\n\t{\"kern.maxclusters\", []_C_int{1, 67}},\n\t{\"kern.maxfiles\", []_C_int{1, 7}},\n\t{\"kern.maxlocksperuid\", []_C_int{1, 70}},\n\t{\"kern.maxpartitions\", []_C_int{1, 23}},\n\t{\"kern.maxproc\", []_C_int{1, 6}},\n\t{\"kern.maxthread\", []_C_int{1, 25}},\n\t{\"kern.maxvnodes\", []_C_int{1, 5}},\n\t{\"kern.mbstat\", []_C_int{1, 59}},\n\t{\"kern.msgbuf\", []_C_int{1, 48}},\n\t{\"kern.msgbufsize\", []_C_int{1, 38}},\n\t{\"kern.nchstats\", []_C_int{1, 41}},\n\t{\"kern.netlivelocks\", []_C_int{1, 76}},\n\t{\"kern.nfiles\", []_C_int{1, 56}},\n\t{\"kern.ngroups\", []_C_int{1, 18}},\n\t{\"kern.nosuidcoredump\", []_C_int{1, 32}},\n\t{\"kern.nprocs\", []_C_int{1, 47}},\n\t{\"kern.nthreads\", []_C_int{1, 26}},\n\t{\"kern.numvnodes\", []_C_int{1, 58}},\n\t{\"kern.osrelease\", []_C_int{1, 2}},\n\t{\"kern.osrevision\", []_C_int{1, 3}},\n\t{\"kern.ostype\", []_C_int{1, 1}},\n\t{\"kern.osversion\", []_C_int{1, 27}},\n\t{\"kern.pfstatus\", []_C_int{1, 86}},\n\t{\"kern.pool_debug\", []_C_int{1, 77}},\n\t{\"kern.posix1version\", []_C_int{1, 17}},\n\t{\"kern.proc\", []_C_int{1, 66}},\n\t{\"kern.rawpartition\", []_C_int{1, 24}},\n\t{\"kern.saved_ids\", []_C_int{1, 20}},\n\t{\"kern.securelevel\", []_C_int{1, 9}},\n\t{\"kern.seminfo\", []_C_int{1, 61}},\n\t{\"kern.shminfo\", []_C_int{1, 62}},\n\t{\"kern.somaxconn\", []_C_int{1, 28}},\n\t{\"kern.sominconn\", []_C_int{1, 29}},\n\t{\"kern.splassert\", []_C_int{1, 54}},\n\t{\"kern.stackgap_random\", []_C_int{1, 50}},\n\t{\"kern.sysvipc_info\", []_C_int{1, 51}},\n\t{\"kern.sysvmsg\", []_C_int{1, 34}},\n\t{\"kern.sysvsem\", []_C_int{1, 35}},\n\t{\"kern.sysvshm\", []_C_int{1, 36}},\n\t{\"kern.timecounter.choice\", []_C_int{1, 69, 4}},\n\t{\"kern.timecounter.hardware\", []_C_int{1, 69, 3}},\n\t{\"kern.timecounter.tick\", []_C_int{1, 69, 1}},\n\t{\"kern.timecounter.timestepwarnings\", []_C_int{1, 69, 2}},\n\t{\"kern.timeout_stats\", []_C_int{1, 87}},\n\t{\"kern.tty.tk_cancc\", []_C_int{1, 44, 4}},\n\t{\"kern.tty.tk_nin\", []_C_int{1, 44, 1}},\n\t{\"kern.tty.tk_nout\", []_C_int{1, 44, 2}},\n\t{\"kern.tty.tk_rawcc\", []_C_int{1, 44, 3}},\n\t{\"kern.tty.ttyinfo\", []_C_int{1, 44, 5}},\n\t{\"kern.ttycount\", []_C_int{1, 57}},\n\t{\"kern.utc_offset\", []_C_int{1, 88}},\n\t{\"kern.version\", []_C_int{1, 4}},\n\t{\"kern.video\", []_C_int{1, 89}},\n\t{\"kern.watchdog.auto\", []_C_int{1, 64, 2}},\n\t{\"kern.watchdog.period\", []_C_int{1, 64, 1}},\n\t{\"kern.witnesswatch\", []_C_int{1, 53}},\n\t{\"kern.wxabort\", []_C_int{1, 74}},\n\t{\"net.bpf.bufsize\", []_C_int{4, 31, 1}},\n\t{\"net.bpf.maxbufsize\", []_C_int{4, 31, 2}},\n\t{\"net.inet.ah.enable\", []_C_int{4, 2, 51, 1}},\n\t{\"net.inet.ah.stats\", []_C_int{4, 2, 51, 2}},\n\t{\"net.inet.carp.allow\", []_C_int{4, 2, 112, 1}},\n\t{\"net.inet.carp.log\", []_C_int{4, 2, 112, 3}},\n\t{\"net.inet.carp.preempt\", []_C_int{4, 2, 112, 2}},\n\t{\"net.inet.carp.stats\", []_C_int{4, 2, 112, 4}},\n\t{\"net.inet.divert.recvspace\", []_C_int{4, 2, 258, 1}},\n\t{\"net.inet.divert.sendspace\", []_C_int{4, 2, 258, 2}},\n\t{\"net.inet.divert.stats\", []_C_int{4, 2, 258, 3}},\n\t{\"net.inet.esp.enable\", []_C_int{4, 2, 50, 1}},\n\t{\"net.inet.esp.stats\", []_C_int{4, 2, 50, 4}},\n\t{\"net.inet.esp.udpencap\", []_C_int{4, 2, 50, 2}},\n\t{\"net.inet.esp.udpencap_port\", []_C_int{4, 2, 50, 3}},\n\t{\"net.inet.etherip.allow\", []_C_int{4, 2, 97, 1}},\n\t{\"net.inet.etherip.stats\", []_C_int{4, 2, 97, 2}},\n\t{\"net.inet.gre.allow\", []_C_int{4, 2, 47, 1}},\n\t{\"net.inet.gre.wccp\", []_C_int{4, 2, 47, 2}},\n\t{\"net.inet.icmp.bmcastecho\", []_C_int{4, 2, 1, 2}},\n\t{\"net.inet.icmp.errppslimit\", []_C_int{4, 2, 1, 3}},\n\t{\"net.inet.icmp.maskrepl\", []_C_int{4, 2, 1, 1}},\n\t{\"net.inet.icmp.rediraccept\", []_C_int{4, 2, 1, 4}},\n\t{\"net.inet.icmp.redirtimeout\", []_C_int{4, 2, 1, 5}},\n\t{\"net.inet.icmp.stats\", []_C_int{4, 2, 1, 7}},\n\t{\"net.inet.icmp.tstamprepl\", []_C_int{4, 2, 1, 6}},\n\t{\"net.inet.igmp.stats\", []_C_int{4, 2, 2, 1}},\n\t{\"net.inet.ip.arpdown\", []_C_int{4, 2, 0, 40}},\n\t{\"net.inet.ip.arpqueued\", []_C_int{4, 2, 0, 36}},\n\t{\"net.inet.ip.arptimeout\", []_C_int{4, 2, 0, 39}},\n\t{\"net.inet.ip.encdebug\", []_C_int{4, 2, 0, 12}},\n\t{\"net.inet.ip.forwarding\", []_C_int{4, 2, 0, 1}},\n\t{\"net.inet.ip.ifq.congestion\", []_C_int{4, 2, 0, 30, 4}},\n\t{\"net.inet.ip.ifq.drops\", []_C_int{4, 2, 0, 30, 3}},\n\t{\"net.inet.ip.ifq.len\", []_C_int{4, 2, 0, 30, 1}},\n\t{\"net.inet.ip.ifq.maxlen\", []_C_int{4, 2, 0, 30, 2}},\n\t{\"net.inet.ip.maxqueue\", []_C_int{4, 2, 0, 11}},\n\t{\"net.inet.ip.mforwarding\", []_C_int{4, 2, 0, 31}},\n\t{\"net.inet.ip.mrtmfc\", []_C_int{4, 2, 0, 37}},\n\t{\"net.inet.ip.mrtproto\", []_C_int{4, 2, 0, 34}},\n\t{\"net.inet.ip.mrtstats\", []_C_int{4, 2, 0, 35}},\n\t{\"net.inet.ip.mrtvif\", []_C_int{4, 2, 0, 38}},\n\t{\"net.inet.ip.mtu\", []_C_int{4, 2, 0, 4}},\n\t{\"net.inet.ip.mtudisc\", []_C_int{4, 2, 0, 27}},\n\t{\"net.inet.ip.mtudisctimeout\", []_C_int{4, 2, 0, 28}},\n\t{\"net.inet.ip.multipath\", []_C_int{4, 2, 0, 32}},\n\t{\"net.inet.ip.portfirst\", []_C_int{4, 2, 0, 7}},\n\t{\"net.inet.ip.porthifirst\", []_C_int{4, 2, 0, 9}},\n\t{\"net.inet.ip.porthilast\", []_C_int{4, 2, 0, 10}},\n\t{\"net.inet.ip.portlast\", []_C_int{4, 2, 0, 8}},\n\t{\"net.inet.ip.redirect\", []_C_int{4, 2, 0, 2}},\n\t{\"net.inet.ip.sourceroute\", []_C_int{4, 2, 0, 5}},\n\t{\"net.inet.ip.stats\", []_C_int{4, 2, 0, 33}},\n\t{\"net.inet.ip.ttl\", []_C_int{4, 2, 0, 3}},\n\t{\"net.inet.ipcomp.enable\", []_C_int{4, 2, 108, 1}},\n\t{\"net.inet.ipcomp.stats\", []_C_int{4, 2, 108, 2}},\n\t{\"net.inet.ipip.allow\", []_C_int{4, 2, 4, 1}},\n\t{\"net.inet.ipip.stats\", []_C_int{4, 2, 4, 2}},\n\t{\"net.inet.pfsync.stats\", []_C_int{4, 2, 240, 1}},\n\t{\"net.inet.tcp.ackonpush\", []_C_int{4, 2, 6, 13}},\n\t{\"net.inet.tcp.always_keepalive\", []_C_int{4, 2, 6, 22}},\n\t{\"net.inet.tcp.baddynamic\", []_C_int{4, 2, 6, 6}},\n\t{\"net.inet.tcp.drop\", []_C_int{4, 2, 6, 19}},\n\t{\"net.inet.tcp.ecn\", []_C_int{4, 2, 6, 14}},\n\t{\"net.inet.tcp.ident\", []_C_int{4, 2, 6, 9}},\n\t{\"net.inet.tcp.keepidle\", []_C_int{4, 2, 6, 3}},\n\t{\"net.inet.tcp.keepinittime\", []_C_int{4, 2, 6, 2}},\n\t{\"net.inet.tcp.keepintvl\", []_C_int{4, 2, 6, 4}},\n\t{\"net.inet.tcp.mssdflt\", []_C_int{4, 2, 6, 11}},\n\t{\"net.inet.tcp.reasslimit\", []_C_int{4, 2, 6, 18}},\n\t{\"net.inet.tcp.rfc1323\", []_C_int{4, 2, 6, 1}},\n\t{\"net.inet.tcp.rfc3390\", []_C_int{4, 2, 6, 17}},\n\t{\"net.inet.tcp.rootonly\", []_C_int{4, 2, 6, 24}},\n\t{\"net.inet.tcp.rstppslimit\", []_C_int{4, 2, 6, 12}},\n\t{\"net.inet.tcp.sack\", []_C_int{4, 2, 6, 10}},\n\t{\"net.inet.tcp.sackholelimit\", []_C_int{4, 2, 6, 20}},\n\t{\"net.inet.tcp.slowhz\", []_C_int{4, 2, 6, 5}},\n\t{\"net.inet.tcp.stats\", []_C_int{4, 2, 6, 21}},\n\t{\"net.inet.tcp.synbucketlimit\", []_C_int{4, 2, 6, 16}},\n\t{\"net.inet.tcp.syncachelimit\", []_C_int{4, 2, 6, 15}},\n\t{\"net.inet.tcp.synhashsize\", []_C_int{4, 2, 6, 25}},\n\t{\"net.inet.tcp.synuselimit\", []_C_int{4, 2, 6, 23}},\n\t{\"net.inet.udp.baddynamic\", []_C_int{4, 2, 17, 2}},\n\t{\"net.inet.udp.checksum\", []_C_int{4, 2, 17, 1}},\n\t{\"net.inet.udp.recvspace\", []_C_int{4, 2, 17, 3}},\n\t{\"net.inet.udp.rootonly\", []_C_int{4, 2, 17, 6}},\n\t{\"net.inet.udp.sendspace\", []_C_int{4, 2, 17, 4}},\n\t{\"net.inet.udp.stats\", []_C_int{4, 2, 17, 5}},\n\t{\"net.inet6.divert.recvspace\", []_C_int{4, 24, 86, 1}},\n\t{\"net.inet6.divert.sendspace\", []_C_int{4, 24, 86, 2}},\n\t{\"net.inet6.divert.stats\", []_C_int{4, 24, 86, 3}},\n\t{\"net.inet6.icmp6.errppslimit\", []_C_int{4, 24, 30, 14}},\n\t{\"net.inet6.icmp6.mtudisc_hiwat\", []_C_int{4, 24, 30, 16}},\n\t{\"net.inet6.icmp6.mtudisc_lowat\", []_C_int{4, 24, 30, 17}},\n\t{\"net.inet6.icmp6.nd6_debug\", []_C_int{4, 24, 30, 18}},\n\t{\"net.inet6.icmp6.nd6_delay\", []_C_int{4, 24, 30, 8}},\n\t{\"net.inet6.icmp6.nd6_maxnudhint\", []_C_int{4, 24, 30, 15}},\n\t{\"net.inet6.icmp6.nd6_mmaxtries\", []_C_int{4, 24, 30, 10}},\n\t{\"net.inet6.icmp6.nd6_umaxtries\", []_C_int{4, 24, 30, 9}},\n\t{\"net.inet6.icmp6.redirtimeout\", []_C_int{4, 24, 30, 3}},\n\t{\"net.inet6.ip6.auto_flowlabel\", []_C_int{4, 24, 17, 17}},\n\t{\"net.inet6.ip6.dad_count\", []_C_int{4, 24, 17, 16}},\n\t{\"net.inet6.ip6.dad_pending\", []_C_int{4, 24, 17, 49}},\n\t{\"net.inet6.ip6.defmcasthlim\", []_C_int{4, 24, 17, 18}},\n\t{\"net.inet6.ip6.forwarding\", []_C_int{4, 24, 17, 1}},\n\t{\"net.inet6.ip6.forwsrcrt\", []_C_int{4, 24, 17, 5}},\n\t{\"net.inet6.ip6.hdrnestlimit\", []_C_int{4, 24, 17, 15}},\n\t{\"net.inet6.ip6.hlim\", []_C_int{4, 24, 17, 3}},\n\t{\"net.inet6.ip6.log_interval\", []_C_int{4, 24, 17, 14}},\n\t{\"net.inet6.ip6.maxdynroutes\", []_C_int{4, 24, 17, 48}},\n\t{\"net.inet6.ip6.maxfragpackets\", []_C_int{4, 24, 17, 9}},\n\t{\"net.inet6.ip6.maxfrags\", []_C_int{4, 24, 17, 41}},\n\t{\"net.inet6.ip6.mforwarding\", []_C_int{4, 24, 17, 42}},\n\t{\"net.inet6.ip6.mrtmfc\", []_C_int{4, 24, 17, 53}},\n\t{\"net.inet6.ip6.mrtmif\", []_C_int{4, 24, 17, 52}},\n\t{\"net.inet6.ip6.mrtproto\", []_C_int{4, 24, 17, 8}},\n\t{\"net.inet6.ip6.mtudisctimeout\", []_C_int{4, 24, 17, 50}},\n\t{\"net.inet6.ip6.multicast_mtudisc\", []_C_int{4, 24, 17, 44}},\n\t{\"net.inet6.ip6.multipath\", []_C_int{4, 24, 17, 43}},\n\t{\"net.inet6.ip6.neighborgcthresh\", []_C_int{4, 24, 17, 45}},\n\t{\"net.inet6.ip6.redirect\", []_C_int{4, 24, 17, 2}},\n\t{\"net.inet6.ip6.soiikey\", []_C_int{4, 24, 17, 54}},\n\t{\"net.inet6.ip6.sourcecheck\", []_C_int{4, 24, 17, 10}},\n\t{\"net.inet6.ip6.sourcecheck_logint\", []_C_int{4, 24, 17, 11}},\n\t{\"net.inet6.ip6.use_deprecated\", []_C_int{4, 24, 17, 21}},\n\t{\"net.key.sadb_dump\", []_C_int{4, 30, 1}},\n\t{\"net.key.spd_dump\", []_C_int{4, 30, 2}},\n\t{\"net.mpls.ifq.congestion\", []_C_int{4, 33, 3, 4}},\n\t{\"net.mpls.ifq.drops\", []_C_int{4, 33, 3, 3}},\n\t{\"net.mpls.ifq.len\", []_C_int{4, 33, 3, 1}},\n\t{\"net.mpls.ifq.maxlen\", []_C_int{4, 33, 3, 2}},\n\t{\"net.mpls.mapttl_ip\", []_C_int{4, 33, 5}},\n\t{\"net.mpls.mapttl_ip6\", []_C_int{4, 33, 6}},\n\t{\"net.mpls.ttl\", []_C_int{4, 33, 2}},\n\t{\"net.pflow.stats\", []_C_int{4, 34, 1}},\n\t{\"net.pipex.enable\", []_C_int{4, 35, 1}},\n\t{\"vm.anonmin\", []_C_int{2, 7}},\n\t{\"vm.loadavg\", []_C_int{2, 2}},\n\t{\"vm.malloc_conf\", []_C_int{2, 12}},\n\t{\"vm.maxslp\", []_C_int{2, 10}},\n\t{\"vm.nkmempages\", []_C_int{2, 6}},\n\t{\"vm.psstrings\", []_C_int{2, 3}},\n\t{\"vm.swapencrypt.enable\", []_C_int{2, 5, 0}},\n\t{\"vm.swapencrypt.keyscreated\", []_C_int{2, 5, 1}},\n\t{\"vm.swapencrypt.keysdeleted\", []_C_int{2, 5, 2}},\n\t{\"vm.uspace\", []_C_int{2, 11}},\n\t{\"vm.uvmexp\", []_C_int{2, 4}},\n\t{\"vm.vmmeter\", []_C_int{2, 1}},\n\t{\"vm.vnodemin\", []_C_int{2, 9}},\n\t{\"vm.vtextmin\", []_C_int{2, 8}},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go",
    "content": "// go run mksysctl_openbsd.go\n// Code generated by the command above; DO NOT EDIT.\n\n//go:build mips64 && openbsd\n\npackage unix\n\ntype mibentry struct {\n\tctlname string\n\tctloid  []_C_int\n}\n\nvar sysctlMib = []mibentry{\n\t{\"ddb.console\", []_C_int{9, 6}},\n\t{\"ddb.log\", []_C_int{9, 7}},\n\t{\"ddb.max_line\", []_C_int{9, 3}},\n\t{\"ddb.max_width\", []_C_int{9, 2}},\n\t{\"ddb.panic\", []_C_int{9, 5}},\n\t{\"ddb.profile\", []_C_int{9, 9}},\n\t{\"ddb.radix\", []_C_int{9, 1}},\n\t{\"ddb.tab_stop_width\", []_C_int{9, 4}},\n\t{\"ddb.trigger\", []_C_int{9, 8}},\n\t{\"fs.posix.setuid\", []_C_int{3, 1, 1}},\n\t{\"hw.allowpowerdown\", []_C_int{6, 22}},\n\t{\"hw.byteorder\", []_C_int{6, 4}},\n\t{\"hw.cpuspeed\", []_C_int{6, 12}},\n\t{\"hw.diskcount\", []_C_int{6, 10}},\n\t{\"hw.disknames\", []_C_int{6, 8}},\n\t{\"hw.diskstats\", []_C_int{6, 9}},\n\t{\"hw.machine\", []_C_int{6, 1}},\n\t{\"hw.model\", []_C_int{6, 2}},\n\t{\"hw.ncpu\", []_C_int{6, 3}},\n\t{\"hw.ncpufound\", []_C_int{6, 21}},\n\t{\"hw.ncpuonline\", []_C_int{6, 25}},\n\t{\"hw.pagesize\", []_C_int{6, 7}},\n\t{\"hw.perfpolicy\", []_C_int{6, 23}},\n\t{\"hw.physmem\", []_C_int{6, 19}},\n\t{\"hw.power\", []_C_int{6, 26}},\n\t{\"hw.product\", []_C_int{6, 15}},\n\t{\"hw.serialno\", []_C_int{6, 17}},\n\t{\"hw.setperf\", []_C_int{6, 13}},\n\t{\"hw.smt\", []_C_int{6, 24}},\n\t{\"hw.usermem\", []_C_int{6, 20}},\n\t{\"hw.uuid\", []_C_int{6, 18}},\n\t{\"hw.vendor\", []_C_int{6, 14}},\n\t{\"hw.version\", []_C_int{6, 16}},\n\t{\"kern.allowdt\", []_C_int{1, 65}},\n\t{\"kern.allowkmem\", []_C_int{1, 52}},\n\t{\"kern.argmax\", []_C_int{1, 8}},\n\t{\"kern.audio\", []_C_int{1, 84}},\n\t{\"kern.boottime\", []_C_int{1, 21}},\n\t{\"kern.bufcachepercent\", []_C_int{1, 72}},\n\t{\"kern.ccpu\", []_C_int{1, 45}},\n\t{\"kern.clockrate\", []_C_int{1, 12}},\n\t{\"kern.consbuf\", []_C_int{1, 83}},\n\t{\"kern.consbufsize\", []_C_int{1, 82}},\n\t{\"kern.consdev\", []_C_int{1, 75}},\n\t{\"kern.cp_time\", []_C_int{1, 40}},\n\t{\"kern.cp_time2\", []_C_int{1, 71}},\n\t{\"kern.cpustats\", []_C_int{1, 85}},\n\t{\"kern.domainname\", []_C_int{1, 22}},\n\t{\"kern.file\", []_C_int{1, 73}},\n\t{\"kern.forkstat\", []_C_int{1, 42}},\n\t{\"kern.fscale\", []_C_int{1, 46}},\n\t{\"kern.fsync\", []_C_int{1, 33}},\n\t{\"kern.global_ptrace\", []_C_int{1, 81}},\n\t{\"kern.hostid\", []_C_int{1, 11}},\n\t{\"kern.hostname\", []_C_int{1, 10}},\n\t{\"kern.intrcnt.nintrcnt\", []_C_int{1, 63, 1}},\n\t{\"kern.job_control\", []_C_int{1, 19}},\n\t{\"kern.malloc.buckets\", []_C_int{1, 39, 1}},\n\t{\"kern.malloc.kmemnames\", []_C_int{1, 39, 3}},\n\t{\"kern.maxclusters\", []_C_int{1, 67}},\n\t{\"kern.maxfiles\", []_C_int{1, 7}},\n\t{\"kern.maxlocksperuid\", []_C_int{1, 70}},\n\t{\"kern.maxpartitions\", []_C_int{1, 23}},\n\t{\"kern.maxproc\", []_C_int{1, 6}},\n\t{\"kern.maxthread\", []_C_int{1, 25}},\n\t{\"kern.maxvnodes\", []_C_int{1, 5}},\n\t{\"kern.mbstat\", []_C_int{1, 59}},\n\t{\"kern.msgbuf\", []_C_int{1, 48}},\n\t{\"kern.msgbufsize\", []_C_int{1, 38}},\n\t{\"kern.nchstats\", []_C_int{1, 41}},\n\t{\"kern.netlivelocks\", []_C_int{1, 76}},\n\t{\"kern.nfiles\", []_C_int{1, 56}},\n\t{\"kern.ngroups\", []_C_int{1, 18}},\n\t{\"kern.nosuidcoredump\", []_C_int{1, 32}},\n\t{\"kern.nprocs\", []_C_int{1, 47}},\n\t{\"kern.nthreads\", []_C_int{1, 26}},\n\t{\"kern.numvnodes\", []_C_int{1, 58}},\n\t{\"kern.osrelease\", []_C_int{1, 2}},\n\t{\"kern.osrevision\", []_C_int{1, 3}},\n\t{\"kern.ostype\", []_C_int{1, 1}},\n\t{\"kern.osversion\", []_C_int{1, 27}},\n\t{\"kern.pfstatus\", []_C_int{1, 86}},\n\t{\"kern.pool_debug\", []_C_int{1, 77}},\n\t{\"kern.posix1version\", []_C_int{1, 17}},\n\t{\"kern.proc\", []_C_int{1, 66}},\n\t{\"kern.rawpartition\", []_C_int{1, 24}},\n\t{\"kern.saved_ids\", []_C_int{1, 20}},\n\t{\"kern.securelevel\", []_C_int{1, 9}},\n\t{\"kern.seminfo\", []_C_int{1, 61}},\n\t{\"kern.shminfo\", []_C_int{1, 62}},\n\t{\"kern.somaxconn\", []_C_int{1, 28}},\n\t{\"kern.sominconn\", []_C_int{1, 29}},\n\t{\"kern.splassert\", []_C_int{1, 54}},\n\t{\"kern.stackgap_random\", []_C_int{1, 50}},\n\t{\"kern.sysvipc_info\", []_C_int{1, 51}},\n\t{\"kern.sysvmsg\", []_C_int{1, 34}},\n\t{\"kern.sysvsem\", []_C_int{1, 35}},\n\t{\"kern.sysvshm\", []_C_int{1, 36}},\n\t{\"kern.timecounter.choice\", []_C_int{1, 69, 4}},\n\t{\"kern.timecounter.hardware\", []_C_int{1, 69, 3}},\n\t{\"kern.timecounter.tick\", []_C_int{1, 69, 1}},\n\t{\"kern.timecounter.timestepwarnings\", []_C_int{1, 69, 2}},\n\t{\"kern.timeout_stats\", []_C_int{1, 87}},\n\t{\"kern.tty.tk_cancc\", []_C_int{1, 44, 4}},\n\t{\"kern.tty.tk_nin\", []_C_int{1, 44, 1}},\n\t{\"kern.tty.tk_nout\", []_C_int{1, 44, 2}},\n\t{\"kern.tty.tk_rawcc\", []_C_int{1, 44, 3}},\n\t{\"kern.tty.ttyinfo\", []_C_int{1, 44, 5}},\n\t{\"kern.ttycount\", []_C_int{1, 57}},\n\t{\"kern.utc_offset\", []_C_int{1, 88}},\n\t{\"kern.version\", []_C_int{1, 4}},\n\t{\"kern.video\", []_C_int{1, 89}},\n\t{\"kern.watchdog.auto\", []_C_int{1, 64, 2}},\n\t{\"kern.watchdog.period\", []_C_int{1, 64, 1}},\n\t{\"kern.witnesswatch\", []_C_int{1, 53}},\n\t{\"kern.wxabort\", []_C_int{1, 74}},\n\t{\"net.bpf.bufsize\", []_C_int{4, 31, 1}},\n\t{\"net.bpf.maxbufsize\", []_C_int{4, 31, 2}},\n\t{\"net.inet.ah.enable\", []_C_int{4, 2, 51, 1}},\n\t{\"net.inet.ah.stats\", []_C_int{4, 2, 51, 2}},\n\t{\"net.inet.carp.allow\", []_C_int{4, 2, 112, 1}},\n\t{\"net.inet.carp.log\", []_C_int{4, 2, 112, 3}},\n\t{\"net.inet.carp.preempt\", []_C_int{4, 2, 112, 2}},\n\t{\"net.inet.carp.stats\", []_C_int{4, 2, 112, 4}},\n\t{\"net.inet.divert.recvspace\", []_C_int{4, 2, 258, 1}},\n\t{\"net.inet.divert.sendspace\", []_C_int{4, 2, 258, 2}},\n\t{\"net.inet.divert.stats\", []_C_int{4, 2, 258, 3}},\n\t{\"net.inet.esp.enable\", []_C_int{4, 2, 50, 1}},\n\t{\"net.inet.esp.stats\", []_C_int{4, 2, 50, 4}},\n\t{\"net.inet.esp.udpencap\", []_C_int{4, 2, 50, 2}},\n\t{\"net.inet.esp.udpencap_port\", []_C_int{4, 2, 50, 3}},\n\t{\"net.inet.etherip.allow\", []_C_int{4, 2, 97, 1}},\n\t{\"net.inet.etherip.stats\", []_C_int{4, 2, 97, 2}},\n\t{\"net.inet.gre.allow\", []_C_int{4, 2, 47, 1}},\n\t{\"net.inet.gre.wccp\", []_C_int{4, 2, 47, 2}},\n\t{\"net.inet.icmp.bmcastecho\", []_C_int{4, 2, 1, 2}},\n\t{\"net.inet.icmp.errppslimit\", []_C_int{4, 2, 1, 3}},\n\t{\"net.inet.icmp.maskrepl\", []_C_int{4, 2, 1, 1}},\n\t{\"net.inet.icmp.rediraccept\", []_C_int{4, 2, 1, 4}},\n\t{\"net.inet.icmp.redirtimeout\", []_C_int{4, 2, 1, 5}},\n\t{\"net.inet.icmp.stats\", []_C_int{4, 2, 1, 7}},\n\t{\"net.inet.icmp.tstamprepl\", []_C_int{4, 2, 1, 6}},\n\t{\"net.inet.igmp.stats\", []_C_int{4, 2, 2, 1}},\n\t{\"net.inet.ip.arpdown\", []_C_int{4, 2, 0, 40}},\n\t{\"net.inet.ip.arpqueued\", []_C_int{4, 2, 0, 36}},\n\t{\"net.inet.ip.arptimeout\", []_C_int{4, 2, 0, 39}},\n\t{\"net.inet.ip.encdebug\", []_C_int{4, 2, 0, 12}},\n\t{\"net.inet.ip.forwarding\", []_C_int{4, 2, 0, 1}},\n\t{\"net.inet.ip.ifq.congestion\", []_C_int{4, 2, 0, 30, 4}},\n\t{\"net.inet.ip.ifq.drops\", []_C_int{4, 2, 0, 30, 3}},\n\t{\"net.inet.ip.ifq.len\", []_C_int{4, 2, 0, 30, 1}},\n\t{\"net.inet.ip.ifq.maxlen\", []_C_int{4, 2, 0, 30, 2}},\n\t{\"net.inet.ip.maxqueue\", []_C_int{4, 2, 0, 11}},\n\t{\"net.inet.ip.mforwarding\", []_C_int{4, 2, 0, 31}},\n\t{\"net.inet.ip.mrtmfc\", []_C_int{4, 2, 0, 37}},\n\t{\"net.inet.ip.mrtproto\", []_C_int{4, 2, 0, 34}},\n\t{\"net.inet.ip.mrtstats\", []_C_int{4, 2, 0, 35}},\n\t{\"net.inet.ip.mrtvif\", []_C_int{4, 2, 0, 38}},\n\t{\"net.inet.ip.mtu\", []_C_int{4, 2, 0, 4}},\n\t{\"net.inet.ip.mtudisc\", []_C_int{4, 2, 0, 27}},\n\t{\"net.inet.ip.mtudisctimeout\", []_C_int{4, 2, 0, 28}},\n\t{\"net.inet.ip.multipath\", []_C_int{4, 2, 0, 32}},\n\t{\"net.inet.ip.portfirst\", []_C_int{4, 2, 0, 7}},\n\t{\"net.inet.ip.porthifirst\", []_C_int{4, 2, 0, 9}},\n\t{\"net.inet.ip.porthilast\", []_C_int{4, 2, 0, 10}},\n\t{\"net.inet.ip.portlast\", []_C_int{4, 2, 0, 8}},\n\t{\"net.inet.ip.redirect\", []_C_int{4, 2, 0, 2}},\n\t{\"net.inet.ip.sourceroute\", []_C_int{4, 2, 0, 5}},\n\t{\"net.inet.ip.stats\", []_C_int{4, 2, 0, 33}},\n\t{\"net.inet.ip.ttl\", []_C_int{4, 2, 0, 3}},\n\t{\"net.inet.ipcomp.enable\", []_C_int{4, 2, 108, 1}},\n\t{\"net.inet.ipcomp.stats\", []_C_int{4, 2, 108, 2}},\n\t{\"net.inet.ipip.allow\", []_C_int{4, 2, 4, 1}},\n\t{\"net.inet.ipip.stats\", []_C_int{4, 2, 4, 2}},\n\t{\"net.inet.pfsync.stats\", []_C_int{4, 2, 240, 1}},\n\t{\"net.inet.tcp.ackonpush\", []_C_int{4, 2, 6, 13}},\n\t{\"net.inet.tcp.always_keepalive\", []_C_int{4, 2, 6, 22}},\n\t{\"net.inet.tcp.baddynamic\", []_C_int{4, 2, 6, 6}},\n\t{\"net.inet.tcp.drop\", []_C_int{4, 2, 6, 19}},\n\t{\"net.inet.tcp.ecn\", []_C_int{4, 2, 6, 14}},\n\t{\"net.inet.tcp.ident\", []_C_int{4, 2, 6, 9}},\n\t{\"net.inet.tcp.keepidle\", []_C_int{4, 2, 6, 3}},\n\t{\"net.inet.tcp.keepinittime\", []_C_int{4, 2, 6, 2}},\n\t{\"net.inet.tcp.keepintvl\", []_C_int{4, 2, 6, 4}},\n\t{\"net.inet.tcp.mssdflt\", []_C_int{4, 2, 6, 11}},\n\t{\"net.inet.tcp.reasslimit\", []_C_int{4, 2, 6, 18}},\n\t{\"net.inet.tcp.rfc1323\", []_C_int{4, 2, 6, 1}},\n\t{\"net.inet.tcp.rfc3390\", []_C_int{4, 2, 6, 17}},\n\t{\"net.inet.tcp.rootonly\", []_C_int{4, 2, 6, 24}},\n\t{\"net.inet.tcp.rstppslimit\", []_C_int{4, 2, 6, 12}},\n\t{\"net.inet.tcp.sack\", []_C_int{4, 2, 6, 10}},\n\t{\"net.inet.tcp.sackholelimit\", []_C_int{4, 2, 6, 20}},\n\t{\"net.inet.tcp.slowhz\", []_C_int{4, 2, 6, 5}},\n\t{\"net.inet.tcp.stats\", []_C_int{4, 2, 6, 21}},\n\t{\"net.inet.tcp.synbucketlimit\", []_C_int{4, 2, 6, 16}},\n\t{\"net.inet.tcp.syncachelimit\", []_C_int{4, 2, 6, 15}},\n\t{\"net.inet.tcp.synhashsize\", []_C_int{4, 2, 6, 25}},\n\t{\"net.inet.tcp.synuselimit\", []_C_int{4, 2, 6, 23}},\n\t{\"net.inet.udp.baddynamic\", []_C_int{4, 2, 17, 2}},\n\t{\"net.inet.udp.checksum\", []_C_int{4, 2, 17, 1}},\n\t{\"net.inet.udp.recvspace\", []_C_int{4, 2, 17, 3}},\n\t{\"net.inet.udp.rootonly\", []_C_int{4, 2, 17, 6}},\n\t{\"net.inet.udp.sendspace\", []_C_int{4, 2, 17, 4}},\n\t{\"net.inet.udp.stats\", []_C_int{4, 2, 17, 5}},\n\t{\"net.inet6.divert.recvspace\", []_C_int{4, 24, 86, 1}},\n\t{\"net.inet6.divert.sendspace\", []_C_int{4, 24, 86, 2}},\n\t{\"net.inet6.divert.stats\", []_C_int{4, 24, 86, 3}},\n\t{\"net.inet6.icmp6.errppslimit\", []_C_int{4, 24, 30, 14}},\n\t{\"net.inet6.icmp6.mtudisc_hiwat\", []_C_int{4, 24, 30, 16}},\n\t{\"net.inet6.icmp6.mtudisc_lowat\", []_C_int{4, 24, 30, 17}},\n\t{\"net.inet6.icmp6.nd6_debug\", []_C_int{4, 24, 30, 18}},\n\t{\"net.inet6.icmp6.nd6_delay\", []_C_int{4, 24, 30, 8}},\n\t{\"net.inet6.icmp6.nd6_maxnudhint\", []_C_int{4, 24, 30, 15}},\n\t{\"net.inet6.icmp6.nd6_mmaxtries\", []_C_int{4, 24, 30, 10}},\n\t{\"net.inet6.icmp6.nd6_umaxtries\", []_C_int{4, 24, 30, 9}},\n\t{\"net.inet6.icmp6.redirtimeout\", []_C_int{4, 24, 30, 3}},\n\t{\"net.inet6.ip6.auto_flowlabel\", []_C_int{4, 24, 17, 17}},\n\t{\"net.inet6.ip6.dad_count\", []_C_int{4, 24, 17, 16}},\n\t{\"net.inet6.ip6.dad_pending\", []_C_int{4, 24, 17, 49}},\n\t{\"net.inet6.ip6.defmcasthlim\", []_C_int{4, 24, 17, 18}},\n\t{\"net.inet6.ip6.forwarding\", []_C_int{4, 24, 17, 1}},\n\t{\"net.inet6.ip6.forwsrcrt\", []_C_int{4, 24, 17, 5}},\n\t{\"net.inet6.ip6.hdrnestlimit\", []_C_int{4, 24, 17, 15}},\n\t{\"net.inet6.ip6.hlim\", []_C_int{4, 24, 17, 3}},\n\t{\"net.inet6.ip6.log_interval\", []_C_int{4, 24, 17, 14}},\n\t{\"net.inet6.ip6.maxdynroutes\", []_C_int{4, 24, 17, 48}},\n\t{\"net.inet6.ip6.maxfragpackets\", []_C_int{4, 24, 17, 9}},\n\t{\"net.inet6.ip6.maxfrags\", []_C_int{4, 24, 17, 41}},\n\t{\"net.inet6.ip6.mforwarding\", []_C_int{4, 24, 17, 42}},\n\t{\"net.inet6.ip6.mrtmfc\", []_C_int{4, 24, 17, 53}},\n\t{\"net.inet6.ip6.mrtmif\", []_C_int{4, 24, 17, 52}},\n\t{\"net.inet6.ip6.mrtproto\", []_C_int{4, 24, 17, 8}},\n\t{\"net.inet6.ip6.mtudisctimeout\", []_C_int{4, 24, 17, 50}},\n\t{\"net.inet6.ip6.multicast_mtudisc\", []_C_int{4, 24, 17, 44}},\n\t{\"net.inet6.ip6.multipath\", []_C_int{4, 24, 17, 43}},\n\t{\"net.inet6.ip6.neighborgcthresh\", []_C_int{4, 24, 17, 45}},\n\t{\"net.inet6.ip6.redirect\", []_C_int{4, 24, 17, 2}},\n\t{\"net.inet6.ip6.soiikey\", []_C_int{4, 24, 17, 54}},\n\t{\"net.inet6.ip6.sourcecheck\", []_C_int{4, 24, 17, 10}},\n\t{\"net.inet6.ip6.sourcecheck_logint\", []_C_int{4, 24, 17, 11}},\n\t{\"net.inet6.ip6.use_deprecated\", []_C_int{4, 24, 17, 21}},\n\t{\"net.key.sadb_dump\", []_C_int{4, 30, 1}},\n\t{\"net.key.spd_dump\", []_C_int{4, 30, 2}},\n\t{\"net.mpls.ifq.congestion\", []_C_int{4, 33, 3, 4}},\n\t{\"net.mpls.ifq.drops\", []_C_int{4, 33, 3, 3}},\n\t{\"net.mpls.ifq.len\", []_C_int{4, 33, 3, 1}},\n\t{\"net.mpls.ifq.maxlen\", []_C_int{4, 33, 3, 2}},\n\t{\"net.mpls.mapttl_ip\", []_C_int{4, 33, 5}},\n\t{\"net.mpls.mapttl_ip6\", []_C_int{4, 33, 6}},\n\t{\"net.mpls.ttl\", []_C_int{4, 33, 2}},\n\t{\"net.pflow.stats\", []_C_int{4, 34, 1}},\n\t{\"net.pipex.enable\", []_C_int{4, 35, 1}},\n\t{\"vm.anonmin\", []_C_int{2, 7}},\n\t{\"vm.loadavg\", []_C_int{2, 2}},\n\t{\"vm.malloc_conf\", []_C_int{2, 12}},\n\t{\"vm.maxslp\", []_C_int{2, 10}},\n\t{\"vm.nkmempages\", []_C_int{2, 6}},\n\t{\"vm.psstrings\", []_C_int{2, 3}},\n\t{\"vm.swapencrypt.enable\", []_C_int{2, 5, 0}},\n\t{\"vm.swapencrypt.keyscreated\", []_C_int{2, 5, 1}},\n\t{\"vm.swapencrypt.keysdeleted\", []_C_int{2, 5, 2}},\n\t{\"vm.uspace\", []_C_int{2, 11}},\n\t{\"vm.uvmexp\", []_C_int{2, 4}},\n\t{\"vm.vmmeter\", []_C_int{2, 1}},\n\t{\"vm.vnodemin\", []_C_int{2, 9}},\n\t{\"vm.vtextmin\", []_C_int{2, 8}},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go",
    "content": "// go run mksysctl_openbsd.go\n// Code generated by the command above; DO NOT EDIT.\n\n//go:build ppc64 && openbsd\n\npackage unix\n\ntype mibentry struct {\n\tctlname string\n\tctloid  []_C_int\n}\n\nvar sysctlMib = []mibentry{\n\t{\"ddb.console\", []_C_int{9, 6}},\n\t{\"ddb.log\", []_C_int{9, 7}},\n\t{\"ddb.max_line\", []_C_int{9, 3}},\n\t{\"ddb.max_width\", []_C_int{9, 2}},\n\t{\"ddb.panic\", []_C_int{9, 5}},\n\t{\"ddb.profile\", []_C_int{9, 9}},\n\t{\"ddb.radix\", []_C_int{9, 1}},\n\t{\"ddb.tab_stop_width\", []_C_int{9, 4}},\n\t{\"ddb.trigger\", []_C_int{9, 8}},\n\t{\"fs.posix.setuid\", []_C_int{3, 1, 1}},\n\t{\"hw.allowpowerdown\", []_C_int{6, 22}},\n\t{\"hw.byteorder\", []_C_int{6, 4}},\n\t{\"hw.cpuspeed\", []_C_int{6, 12}},\n\t{\"hw.diskcount\", []_C_int{6, 10}},\n\t{\"hw.disknames\", []_C_int{6, 8}},\n\t{\"hw.diskstats\", []_C_int{6, 9}},\n\t{\"hw.machine\", []_C_int{6, 1}},\n\t{\"hw.model\", []_C_int{6, 2}},\n\t{\"hw.ncpu\", []_C_int{6, 3}},\n\t{\"hw.ncpufound\", []_C_int{6, 21}},\n\t{\"hw.ncpuonline\", []_C_int{6, 25}},\n\t{\"hw.pagesize\", []_C_int{6, 7}},\n\t{\"hw.perfpolicy\", []_C_int{6, 23}},\n\t{\"hw.physmem\", []_C_int{6, 19}},\n\t{\"hw.power\", []_C_int{6, 26}},\n\t{\"hw.product\", []_C_int{6, 15}},\n\t{\"hw.serialno\", []_C_int{6, 17}},\n\t{\"hw.setperf\", []_C_int{6, 13}},\n\t{\"hw.smt\", []_C_int{6, 24}},\n\t{\"hw.usermem\", []_C_int{6, 20}},\n\t{\"hw.uuid\", []_C_int{6, 18}},\n\t{\"hw.vendor\", []_C_int{6, 14}},\n\t{\"hw.version\", []_C_int{6, 16}},\n\t{\"kern.allowdt\", []_C_int{1, 65}},\n\t{\"kern.allowkmem\", []_C_int{1, 52}},\n\t{\"kern.argmax\", []_C_int{1, 8}},\n\t{\"kern.audio\", []_C_int{1, 84}},\n\t{\"kern.boottime\", []_C_int{1, 21}},\n\t{\"kern.bufcachepercent\", []_C_int{1, 72}},\n\t{\"kern.ccpu\", []_C_int{1, 45}},\n\t{\"kern.clockrate\", []_C_int{1, 12}},\n\t{\"kern.consbuf\", []_C_int{1, 83}},\n\t{\"kern.consbufsize\", []_C_int{1, 82}},\n\t{\"kern.consdev\", []_C_int{1, 75}},\n\t{\"kern.cp_time\", []_C_int{1, 40}},\n\t{\"kern.cp_time2\", []_C_int{1, 71}},\n\t{\"kern.cpustats\", []_C_int{1, 85}},\n\t{\"kern.domainname\", []_C_int{1, 22}},\n\t{\"kern.file\", []_C_int{1, 73}},\n\t{\"kern.forkstat\", []_C_int{1, 42}},\n\t{\"kern.fscale\", []_C_int{1, 46}},\n\t{\"kern.fsync\", []_C_int{1, 33}},\n\t{\"kern.global_ptrace\", []_C_int{1, 81}},\n\t{\"kern.hostid\", []_C_int{1, 11}},\n\t{\"kern.hostname\", []_C_int{1, 10}},\n\t{\"kern.intrcnt.nintrcnt\", []_C_int{1, 63, 1}},\n\t{\"kern.job_control\", []_C_int{1, 19}},\n\t{\"kern.malloc.buckets\", []_C_int{1, 39, 1}},\n\t{\"kern.malloc.kmemnames\", []_C_int{1, 39, 3}},\n\t{\"kern.maxclusters\", []_C_int{1, 67}},\n\t{\"kern.maxfiles\", []_C_int{1, 7}},\n\t{\"kern.maxlocksperuid\", []_C_int{1, 70}},\n\t{\"kern.maxpartitions\", []_C_int{1, 23}},\n\t{\"kern.maxproc\", []_C_int{1, 6}},\n\t{\"kern.maxthread\", []_C_int{1, 25}},\n\t{\"kern.maxvnodes\", []_C_int{1, 5}},\n\t{\"kern.mbstat\", []_C_int{1, 59}},\n\t{\"kern.msgbuf\", []_C_int{1, 48}},\n\t{\"kern.msgbufsize\", []_C_int{1, 38}},\n\t{\"kern.nchstats\", []_C_int{1, 41}},\n\t{\"kern.netlivelocks\", []_C_int{1, 76}},\n\t{\"kern.nfiles\", []_C_int{1, 56}},\n\t{\"kern.ngroups\", []_C_int{1, 18}},\n\t{\"kern.nosuidcoredump\", []_C_int{1, 32}},\n\t{\"kern.nprocs\", []_C_int{1, 47}},\n\t{\"kern.nthreads\", []_C_int{1, 26}},\n\t{\"kern.numvnodes\", []_C_int{1, 58}},\n\t{\"kern.osrelease\", []_C_int{1, 2}},\n\t{\"kern.osrevision\", []_C_int{1, 3}},\n\t{\"kern.ostype\", []_C_int{1, 1}},\n\t{\"kern.osversion\", []_C_int{1, 27}},\n\t{\"kern.pfstatus\", []_C_int{1, 86}},\n\t{\"kern.pool_debug\", []_C_int{1, 77}},\n\t{\"kern.posix1version\", []_C_int{1, 17}},\n\t{\"kern.proc\", []_C_int{1, 66}},\n\t{\"kern.rawpartition\", []_C_int{1, 24}},\n\t{\"kern.saved_ids\", []_C_int{1, 20}},\n\t{\"kern.securelevel\", []_C_int{1, 9}},\n\t{\"kern.seminfo\", []_C_int{1, 61}},\n\t{\"kern.shminfo\", []_C_int{1, 62}},\n\t{\"kern.somaxconn\", []_C_int{1, 28}},\n\t{\"kern.sominconn\", []_C_int{1, 29}},\n\t{\"kern.splassert\", []_C_int{1, 54}},\n\t{\"kern.stackgap_random\", []_C_int{1, 50}},\n\t{\"kern.sysvipc_info\", []_C_int{1, 51}},\n\t{\"kern.sysvmsg\", []_C_int{1, 34}},\n\t{\"kern.sysvsem\", []_C_int{1, 35}},\n\t{\"kern.sysvshm\", []_C_int{1, 36}},\n\t{\"kern.timecounter.choice\", []_C_int{1, 69, 4}},\n\t{\"kern.timecounter.hardware\", []_C_int{1, 69, 3}},\n\t{\"kern.timecounter.tick\", []_C_int{1, 69, 1}},\n\t{\"kern.timecounter.timestepwarnings\", []_C_int{1, 69, 2}},\n\t{\"kern.timeout_stats\", []_C_int{1, 87}},\n\t{\"kern.tty.tk_cancc\", []_C_int{1, 44, 4}},\n\t{\"kern.tty.tk_nin\", []_C_int{1, 44, 1}},\n\t{\"kern.tty.tk_nout\", []_C_int{1, 44, 2}},\n\t{\"kern.tty.tk_rawcc\", []_C_int{1, 44, 3}},\n\t{\"kern.tty.ttyinfo\", []_C_int{1, 44, 5}},\n\t{\"kern.ttycount\", []_C_int{1, 57}},\n\t{\"kern.utc_offset\", []_C_int{1, 88}},\n\t{\"kern.version\", []_C_int{1, 4}},\n\t{\"kern.video\", []_C_int{1, 89}},\n\t{\"kern.watchdog.auto\", []_C_int{1, 64, 2}},\n\t{\"kern.watchdog.period\", []_C_int{1, 64, 1}},\n\t{\"kern.witnesswatch\", []_C_int{1, 53}},\n\t{\"kern.wxabort\", []_C_int{1, 74}},\n\t{\"net.bpf.bufsize\", []_C_int{4, 31, 1}},\n\t{\"net.bpf.maxbufsize\", []_C_int{4, 31, 2}},\n\t{\"net.inet.ah.enable\", []_C_int{4, 2, 51, 1}},\n\t{\"net.inet.ah.stats\", []_C_int{4, 2, 51, 2}},\n\t{\"net.inet.carp.allow\", []_C_int{4, 2, 112, 1}},\n\t{\"net.inet.carp.log\", []_C_int{4, 2, 112, 3}},\n\t{\"net.inet.carp.preempt\", []_C_int{4, 2, 112, 2}},\n\t{\"net.inet.carp.stats\", []_C_int{4, 2, 112, 4}},\n\t{\"net.inet.divert.recvspace\", []_C_int{4, 2, 258, 1}},\n\t{\"net.inet.divert.sendspace\", []_C_int{4, 2, 258, 2}},\n\t{\"net.inet.divert.stats\", []_C_int{4, 2, 258, 3}},\n\t{\"net.inet.esp.enable\", []_C_int{4, 2, 50, 1}},\n\t{\"net.inet.esp.stats\", []_C_int{4, 2, 50, 4}},\n\t{\"net.inet.esp.udpencap\", []_C_int{4, 2, 50, 2}},\n\t{\"net.inet.esp.udpencap_port\", []_C_int{4, 2, 50, 3}},\n\t{\"net.inet.etherip.allow\", []_C_int{4, 2, 97, 1}},\n\t{\"net.inet.etherip.stats\", []_C_int{4, 2, 97, 2}},\n\t{\"net.inet.gre.allow\", []_C_int{4, 2, 47, 1}},\n\t{\"net.inet.gre.wccp\", []_C_int{4, 2, 47, 2}},\n\t{\"net.inet.icmp.bmcastecho\", []_C_int{4, 2, 1, 2}},\n\t{\"net.inet.icmp.errppslimit\", []_C_int{4, 2, 1, 3}},\n\t{\"net.inet.icmp.maskrepl\", []_C_int{4, 2, 1, 1}},\n\t{\"net.inet.icmp.rediraccept\", []_C_int{4, 2, 1, 4}},\n\t{\"net.inet.icmp.redirtimeout\", []_C_int{4, 2, 1, 5}},\n\t{\"net.inet.icmp.stats\", []_C_int{4, 2, 1, 7}},\n\t{\"net.inet.icmp.tstamprepl\", []_C_int{4, 2, 1, 6}},\n\t{\"net.inet.igmp.stats\", []_C_int{4, 2, 2, 1}},\n\t{\"net.inet.ip.arpdown\", []_C_int{4, 2, 0, 40}},\n\t{\"net.inet.ip.arpqueued\", []_C_int{4, 2, 0, 36}},\n\t{\"net.inet.ip.arptimeout\", []_C_int{4, 2, 0, 39}},\n\t{\"net.inet.ip.encdebug\", []_C_int{4, 2, 0, 12}},\n\t{\"net.inet.ip.forwarding\", []_C_int{4, 2, 0, 1}},\n\t{\"net.inet.ip.ifq.congestion\", []_C_int{4, 2, 0, 30, 4}},\n\t{\"net.inet.ip.ifq.drops\", []_C_int{4, 2, 0, 30, 3}},\n\t{\"net.inet.ip.ifq.len\", []_C_int{4, 2, 0, 30, 1}},\n\t{\"net.inet.ip.ifq.maxlen\", []_C_int{4, 2, 0, 30, 2}},\n\t{\"net.inet.ip.maxqueue\", []_C_int{4, 2, 0, 11}},\n\t{\"net.inet.ip.mforwarding\", []_C_int{4, 2, 0, 31}},\n\t{\"net.inet.ip.mrtmfc\", []_C_int{4, 2, 0, 37}},\n\t{\"net.inet.ip.mrtproto\", []_C_int{4, 2, 0, 34}},\n\t{\"net.inet.ip.mrtstats\", []_C_int{4, 2, 0, 35}},\n\t{\"net.inet.ip.mrtvif\", []_C_int{4, 2, 0, 38}},\n\t{\"net.inet.ip.mtu\", []_C_int{4, 2, 0, 4}},\n\t{\"net.inet.ip.mtudisc\", []_C_int{4, 2, 0, 27}},\n\t{\"net.inet.ip.mtudisctimeout\", []_C_int{4, 2, 0, 28}},\n\t{\"net.inet.ip.multipath\", []_C_int{4, 2, 0, 32}},\n\t{\"net.inet.ip.portfirst\", []_C_int{4, 2, 0, 7}},\n\t{\"net.inet.ip.porthifirst\", []_C_int{4, 2, 0, 9}},\n\t{\"net.inet.ip.porthilast\", []_C_int{4, 2, 0, 10}},\n\t{\"net.inet.ip.portlast\", []_C_int{4, 2, 0, 8}},\n\t{\"net.inet.ip.redirect\", []_C_int{4, 2, 0, 2}},\n\t{\"net.inet.ip.sourceroute\", []_C_int{4, 2, 0, 5}},\n\t{\"net.inet.ip.stats\", []_C_int{4, 2, 0, 33}},\n\t{\"net.inet.ip.ttl\", []_C_int{4, 2, 0, 3}},\n\t{\"net.inet.ipcomp.enable\", []_C_int{4, 2, 108, 1}},\n\t{\"net.inet.ipcomp.stats\", []_C_int{4, 2, 108, 2}},\n\t{\"net.inet.ipip.allow\", []_C_int{4, 2, 4, 1}},\n\t{\"net.inet.ipip.stats\", []_C_int{4, 2, 4, 2}},\n\t{\"net.inet.pfsync.stats\", []_C_int{4, 2, 240, 1}},\n\t{\"net.inet.tcp.ackonpush\", []_C_int{4, 2, 6, 13}},\n\t{\"net.inet.tcp.always_keepalive\", []_C_int{4, 2, 6, 22}},\n\t{\"net.inet.tcp.baddynamic\", []_C_int{4, 2, 6, 6}},\n\t{\"net.inet.tcp.drop\", []_C_int{4, 2, 6, 19}},\n\t{\"net.inet.tcp.ecn\", []_C_int{4, 2, 6, 14}},\n\t{\"net.inet.tcp.ident\", []_C_int{4, 2, 6, 9}},\n\t{\"net.inet.tcp.keepidle\", []_C_int{4, 2, 6, 3}},\n\t{\"net.inet.tcp.keepinittime\", []_C_int{4, 2, 6, 2}},\n\t{\"net.inet.tcp.keepintvl\", []_C_int{4, 2, 6, 4}},\n\t{\"net.inet.tcp.mssdflt\", []_C_int{4, 2, 6, 11}},\n\t{\"net.inet.tcp.reasslimit\", []_C_int{4, 2, 6, 18}},\n\t{\"net.inet.tcp.rfc1323\", []_C_int{4, 2, 6, 1}},\n\t{\"net.inet.tcp.rfc3390\", []_C_int{4, 2, 6, 17}},\n\t{\"net.inet.tcp.rootonly\", []_C_int{4, 2, 6, 24}},\n\t{\"net.inet.tcp.rstppslimit\", []_C_int{4, 2, 6, 12}},\n\t{\"net.inet.tcp.sack\", []_C_int{4, 2, 6, 10}},\n\t{\"net.inet.tcp.sackholelimit\", []_C_int{4, 2, 6, 20}},\n\t{\"net.inet.tcp.slowhz\", []_C_int{4, 2, 6, 5}},\n\t{\"net.inet.tcp.stats\", []_C_int{4, 2, 6, 21}},\n\t{\"net.inet.tcp.synbucketlimit\", []_C_int{4, 2, 6, 16}},\n\t{\"net.inet.tcp.syncachelimit\", []_C_int{4, 2, 6, 15}},\n\t{\"net.inet.tcp.synhashsize\", []_C_int{4, 2, 6, 25}},\n\t{\"net.inet.tcp.synuselimit\", []_C_int{4, 2, 6, 23}},\n\t{\"net.inet.udp.baddynamic\", []_C_int{4, 2, 17, 2}},\n\t{\"net.inet.udp.checksum\", []_C_int{4, 2, 17, 1}},\n\t{\"net.inet.udp.recvspace\", []_C_int{4, 2, 17, 3}},\n\t{\"net.inet.udp.rootonly\", []_C_int{4, 2, 17, 6}},\n\t{\"net.inet.udp.sendspace\", []_C_int{4, 2, 17, 4}},\n\t{\"net.inet.udp.stats\", []_C_int{4, 2, 17, 5}},\n\t{\"net.inet6.divert.recvspace\", []_C_int{4, 24, 86, 1}},\n\t{\"net.inet6.divert.sendspace\", []_C_int{4, 24, 86, 2}},\n\t{\"net.inet6.divert.stats\", []_C_int{4, 24, 86, 3}},\n\t{\"net.inet6.icmp6.errppslimit\", []_C_int{4, 24, 30, 14}},\n\t{\"net.inet6.icmp6.mtudisc_hiwat\", []_C_int{4, 24, 30, 16}},\n\t{\"net.inet6.icmp6.mtudisc_lowat\", []_C_int{4, 24, 30, 17}},\n\t{\"net.inet6.icmp6.nd6_debug\", []_C_int{4, 24, 30, 18}},\n\t{\"net.inet6.icmp6.nd6_delay\", []_C_int{4, 24, 30, 8}},\n\t{\"net.inet6.icmp6.nd6_maxnudhint\", []_C_int{4, 24, 30, 15}},\n\t{\"net.inet6.icmp6.nd6_mmaxtries\", []_C_int{4, 24, 30, 10}},\n\t{\"net.inet6.icmp6.nd6_umaxtries\", []_C_int{4, 24, 30, 9}},\n\t{\"net.inet6.icmp6.redirtimeout\", []_C_int{4, 24, 30, 3}},\n\t{\"net.inet6.ip6.auto_flowlabel\", []_C_int{4, 24, 17, 17}},\n\t{\"net.inet6.ip6.dad_count\", []_C_int{4, 24, 17, 16}},\n\t{\"net.inet6.ip6.dad_pending\", []_C_int{4, 24, 17, 49}},\n\t{\"net.inet6.ip6.defmcasthlim\", []_C_int{4, 24, 17, 18}},\n\t{\"net.inet6.ip6.forwarding\", []_C_int{4, 24, 17, 1}},\n\t{\"net.inet6.ip6.forwsrcrt\", []_C_int{4, 24, 17, 5}},\n\t{\"net.inet6.ip6.hdrnestlimit\", []_C_int{4, 24, 17, 15}},\n\t{\"net.inet6.ip6.hlim\", []_C_int{4, 24, 17, 3}},\n\t{\"net.inet6.ip6.log_interval\", []_C_int{4, 24, 17, 14}},\n\t{\"net.inet6.ip6.maxdynroutes\", []_C_int{4, 24, 17, 48}},\n\t{\"net.inet6.ip6.maxfragpackets\", []_C_int{4, 24, 17, 9}},\n\t{\"net.inet6.ip6.maxfrags\", []_C_int{4, 24, 17, 41}},\n\t{\"net.inet6.ip6.mforwarding\", []_C_int{4, 24, 17, 42}},\n\t{\"net.inet6.ip6.mrtmfc\", []_C_int{4, 24, 17, 53}},\n\t{\"net.inet6.ip6.mrtmif\", []_C_int{4, 24, 17, 52}},\n\t{\"net.inet6.ip6.mrtproto\", []_C_int{4, 24, 17, 8}},\n\t{\"net.inet6.ip6.mtudisctimeout\", []_C_int{4, 24, 17, 50}},\n\t{\"net.inet6.ip6.multicast_mtudisc\", []_C_int{4, 24, 17, 44}},\n\t{\"net.inet6.ip6.multipath\", []_C_int{4, 24, 17, 43}},\n\t{\"net.inet6.ip6.neighborgcthresh\", []_C_int{4, 24, 17, 45}},\n\t{\"net.inet6.ip6.redirect\", []_C_int{4, 24, 17, 2}},\n\t{\"net.inet6.ip6.soiikey\", []_C_int{4, 24, 17, 54}},\n\t{\"net.inet6.ip6.sourcecheck\", []_C_int{4, 24, 17, 10}},\n\t{\"net.inet6.ip6.sourcecheck_logint\", []_C_int{4, 24, 17, 11}},\n\t{\"net.inet6.ip6.use_deprecated\", []_C_int{4, 24, 17, 21}},\n\t{\"net.key.sadb_dump\", []_C_int{4, 30, 1}},\n\t{\"net.key.spd_dump\", []_C_int{4, 30, 2}},\n\t{\"net.mpls.ifq.congestion\", []_C_int{4, 33, 3, 4}},\n\t{\"net.mpls.ifq.drops\", []_C_int{4, 33, 3, 3}},\n\t{\"net.mpls.ifq.len\", []_C_int{4, 33, 3, 1}},\n\t{\"net.mpls.ifq.maxlen\", []_C_int{4, 33, 3, 2}},\n\t{\"net.mpls.mapttl_ip\", []_C_int{4, 33, 5}},\n\t{\"net.mpls.mapttl_ip6\", []_C_int{4, 33, 6}},\n\t{\"net.mpls.ttl\", []_C_int{4, 33, 2}},\n\t{\"net.pflow.stats\", []_C_int{4, 34, 1}},\n\t{\"net.pipex.enable\", []_C_int{4, 35, 1}},\n\t{\"vm.anonmin\", []_C_int{2, 7}},\n\t{\"vm.loadavg\", []_C_int{2, 2}},\n\t{\"vm.malloc_conf\", []_C_int{2, 12}},\n\t{\"vm.maxslp\", []_C_int{2, 10}},\n\t{\"vm.nkmempages\", []_C_int{2, 6}},\n\t{\"vm.psstrings\", []_C_int{2, 3}},\n\t{\"vm.swapencrypt.enable\", []_C_int{2, 5, 0}},\n\t{\"vm.swapencrypt.keyscreated\", []_C_int{2, 5, 1}},\n\t{\"vm.swapencrypt.keysdeleted\", []_C_int{2, 5, 2}},\n\t{\"vm.uspace\", []_C_int{2, 11}},\n\t{\"vm.uvmexp\", []_C_int{2, 4}},\n\t{\"vm.vmmeter\", []_C_int{2, 1}},\n\t{\"vm.vnodemin\", []_C_int{2, 9}},\n\t{\"vm.vtextmin\", []_C_int{2, 8}},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go",
    "content": "// go run mksysctl_openbsd.go\n// Code generated by the command above; DO NOT EDIT.\n\n//go:build riscv64 && openbsd\n\npackage unix\n\ntype mibentry struct {\n\tctlname string\n\tctloid  []_C_int\n}\n\nvar sysctlMib = []mibentry{\n\t{\"ddb.console\", []_C_int{9, 6}},\n\t{\"ddb.log\", []_C_int{9, 7}},\n\t{\"ddb.max_line\", []_C_int{9, 3}},\n\t{\"ddb.max_width\", []_C_int{9, 2}},\n\t{\"ddb.panic\", []_C_int{9, 5}},\n\t{\"ddb.profile\", []_C_int{9, 9}},\n\t{\"ddb.radix\", []_C_int{9, 1}},\n\t{\"ddb.tab_stop_width\", []_C_int{9, 4}},\n\t{\"ddb.trigger\", []_C_int{9, 8}},\n\t{\"fs.posix.setuid\", []_C_int{3, 1, 1}},\n\t{\"hw.allowpowerdown\", []_C_int{6, 22}},\n\t{\"hw.byteorder\", []_C_int{6, 4}},\n\t{\"hw.cpuspeed\", []_C_int{6, 12}},\n\t{\"hw.diskcount\", []_C_int{6, 10}},\n\t{\"hw.disknames\", []_C_int{6, 8}},\n\t{\"hw.diskstats\", []_C_int{6, 9}},\n\t{\"hw.machine\", []_C_int{6, 1}},\n\t{\"hw.model\", []_C_int{6, 2}},\n\t{\"hw.ncpu\", []_C_int{6, 3}},\n\t{\"hw.ncpufound\", []_C_int{6, 21}},\n\t{\"hw.ncpuonline\", []_C_int{6, 25}},\n\t{\"hw.pagesize\", []_C_int{6, 7}},\n\t{\"hw.perfpolicy\", []_C_int{6, 23}},\n\t{\"hw.physmem\", []_C_int{6, 19}},\n\t{\"hw.power\", []_C_int{6, 26}},\n\t{\"hw.product\", []_C_int{6, 15}},\n\t{\"hw.serialno\", []_C_int{6, 17}},\n\t{\"hw.setperf\", []_C_int{6, 13}},\n\t{\"hw.smt\", []_C_int{6, 24}},\n\t{\"hw.usermem\", []_C_int{6, 20}},\n\t{\"hw.uuid\", []_C_int{6, 18}},\n\t{\"hw.vendor\", []_C_int{6, 14}},\n\t{\"hw.version\", []_C_int{6, 16}},\n\t{\"kern.allowdt\", []_C_int{1, 65}},\n\t{\"kern.allowkmem\", []_C_int{1, 52}},\n\t{\"kern.argmax\", []_C_int{1, 8}},\n\t{\"kern.audio\", []_C_int{1, 84}},\n\t{\"kern.boottime\", []_C_int{1, 21}},\n\t{\"kern.bufcachepercent\", []_C_int{1, 72}},\n\t{\"kern.ccpu\", []_C_int{1, 45}},\n\t{\"kern.clockrate\", []_C_int{1, 12}},\n\t{\"kern.consbuf\", []_C_int{1, 83}},\n\t{\"kern.consbufsize\", []_C_int{1, 82}},\n\t{\"kern.consdev\", []_C_int{1, 75}},\n\t{\"kern.cp_time\", []_C_int{1, 40}},\n\t{\"kern.cp_time2\", []_C_int{1, 71}},\n\t{\"kern.cpustats\", []_C_int{1, 85}},\n\t{\"kern.domainname\", []_C_int{1, 22}},\n\t{\"kern.file\", []_C_int{1, 73}},\n\t{\"kern.forkstat\", []_C_int{1, 42}},\n\t{\"kern.fscale\", []_C_int{1, 46}},\n\t{\"kern.fsync\", []_C_int{1, 33}},\n\t{\"kern.global_ptrace\", []_C_int{1, 81}},\n\t{\"kern.hostid\", []_C_int{1, 11}},\n\t{\"kern.hostname\", []_C_int{1, 10}},\n\t{\"kern.intrcnt.nintrcnt\", []_C_int{1, 63, 1}},\n\t{\"kern.job_control\", []_C_int{1, 19}},\n\t{\"kern.malloc.buckets\", []_C_int{1, 39, 1}},\n\t{\"kern.malloc.kmemnames\", []_C_int{1, 39, 3}},\n\t{\"kern.maxclusters\", []_C_int{1, 67}},\n\t{\"kern.maxfiles\", []_C_int{1, 7}},\n\t{\"kern.maxlocksperuid\", []_C_int{1, 70}},\n\t{\"kern.maxpartitions\", []_C_int{1, 23}},\n\t{\"kern.maxproc\", []_C_int{1, 6}},\n\t{\"kern.maxthread\", []_C_int{1, 25}},\n\t{\"kern.maxvnodes\", []_C_int{1, 5}},\n\t{\"kern.mbstat\", []_C_int{1, 59}},\n\t{\"kern.msgbuf\", []_C_int{1, 48}},\n\t{\"kern.msgbufsize\", []_C_int{1, 38}},\n\t{\"kern.nchstats\", []_C_int{1, 41}},\n\t{\"kern.netlivelocks\", []_C_int{1, 76}},\n\t{\"kern.nfiles\", []_C_int{1, 56}},\n\t{\"kern.ngroups\", []_C_int{1, 18}},\n\t{\"kern.nosuidcoredump\", []_C_int{1, 32}},\n\t{\"kern.nprocs\", []_C_int{1, 47}},\n\t{\"kern.nselcoll\", []_C_int{1, 43}},\n\t{\"kern.nthreads\", []_C_int{1, 26}},\n\t{\"kern.numvnodes\", []_C_int{1, 58}},\n\t{\"kern.osrelease\", []_C_int{1, 2}},\n\t{\"kern.osrevision\", []_C_int{1, 3}},\n\t{\"kern.ostype\", []_C_int{1, 1}},\n\t{\"kern.osversion\", []_C_int{1, 27}},\n\t{\"kern.pfstatus\", []_C_int{1, 86}},\n\t{\"kern.pool_debug\", []_C_int{1, 77}},\n\t{\"kern.posix1version\", []_C_int{1, 17}},\n\t{\"kern.proc\", []_C_int{1, 66}},\n\t{\"kern.rawpartition\", []_C_int{1, 24}},\n\t{\"kern.saved_ids\", []_C_int{1, 20}},\n\t{\"kern.securelevel\", []_C_int{1, 9}},\n\t{\"kern.seminfo\", []_C_int{1, 61}},\n\t{\"kern.shminfo\", []_C_int{1, 62}},\n\t{\"kern.somaxconn\", []_C_int{1, 28}},\n\t{\"kern.sominconn\", []_C_int{1, 29}},\n\t{\"kern.splassert\", []_C_int{1, 54}},\n\t{\"kern.stackgap_random\", []_C_int{1, 50}},\n\t{\"kern.sysvipc_info\", []_C_int{1, 51}},\n\t{\"kern.sysvmsg\", []_C_int{1, 34}},\n\t{\"kern.sysvsem\", []_C_int{1, 35}},\n\t{\"kern.sysvshm\", []_C_int{1, 36}},\n\t{\"kern.timecounter.choice\", []_C_int{1, 69, 4}},\n\t{\"kern.timecounter.hardware\", []_C_int{1, 69, 3}},\n\t{\"kern.timecounter.tick\", []_C_int{1, 69, 1}},\n\t{\"kern.timecounter.timestepwarnings\", []_C_int{1, 69, 2}},\n\t{\"kern.timeout_stats\", []_C_int{1, 87}},\n\t{\"kern.tty.tk_cancc\", []_C_int{1, 44, 4}},\n\t{\"kern.tty.tk_nin\", []_C_int{1, 44, 1}},\n\t{\"kern.tty.tk_nout\", []_C_int{1, 44, 2}},\n\t{\"kern.tty.tk_rawcc\", []_C_int{1, 44, 3}},\n\t{\"kern.tty.ttyinfo\", []_C_int{1, 44, 5}},\n\t{\"kern.ttycount\", []_C_int{1, 57}},\n\t{\"kern.utc_offset\", []_C_int{1, 88}},\n\t{\"kern.version\", []_C_int{1, 4}},\n\t{\"kern.video\", []_C_int{1, 89}},\n\t{\"kern.watchdog.auto\", []_C_int{1, 64, 2}},\n\t{\"kern.watchdog.period\", []_C_int{1, 64, 1}},\n\t{\"kern.witnesswatch\", []_C_int{1, 53}},\n\t{\"kern.wxabort\", []_C_int{1, 74}},\n\t{\"net.bpf.bufsize\", []_C_int{4, 31, 1}},\n\t{\"net.bpf.maxbufsize\", []_C_int{4, 31, 2}},\n\t{\"net.inet.ah.enable\", []_C_int{4, 2, 51, 1}},\n\t{\"net.inet.ah.stats\", []_C_int{4, 2, 51, 2}},\n\t{\"net.inet.carp.allow\", []_C_int{4, 2, 112, 1}},\n\t{\"net.inet.carp.log\", []_C_int{4, 2, 112, 3}},\n\t{\"net.inet.carp.preempt\", []_C_int{4, 2, 112, 2}},\n\t{\"net.inet.carp.stats\", []_C_int{4, 2, 112, 4}},\n\t{\"net.inet.divert.recvspace\", []_C_int{4, 2, 258, 1}},\n\t{\"net.inet.divert.sendspace\", []_C_int{4, 2, 258, 2}},\n\t{\"net.inet.divert.stats\", []_C_int{4, 2, 258, 3}},\n\t{\"net.inet.esp.enable\", []_C_int{4, 2, 50, 1}},\n\t{\"net.inet.esp.stats\", []_C_int{4, 2, 50, 4}},\n\t{\"net.inet.esp.udpencap\", []_C_int{4, 2, 50, 2}},\n\t{\"net.inet.esp.udpencap_port\", []_C_int{4, 2, 50, 3}},\n\t{\"net.inet.etherip.allow\", []_C_int{4, 2, 97, 1}},\n\t{\"net.inet.etherip.stats\", []_C_int{4, 2, 97, 2}},\n\t{\"net.inet.gre.allow\", []_C_int{4, 2, 47, 1}},\n\t{\"net.inet.gre.wccp\", []_C_int{4, 2, 47, 2}},\n\t{\"net.inet.icmp.bmcastecho\", []_C_int{4, 2, 1, 2}},\n\t{\"net.inet.icmp.errppslimit\", []_C_int{4, 2, 1, 3}},\n\t{\"net.inet.icmp.maskrepl\", []_C_int{4, 2, 1, 1}},\n\t{\"net.inet.icmp.rediraccept\", []_C_int{4, 2, 1, 4}},\n\t{\"net.inet.icmp.redirtimeout\", []_C_int{4, 2, 1, 5}},\n\t{\"net.inet.icmp.stats\", []_C_int{4, 2, 1, 7}},\n\t{\"net.inet.icmp.tstamprepl\", []_C_int{4, 2, 1, 6}},\n\t{\"net.inet.igmp.stats\", []_C_int{4, 2, 2, 1}},\n\t{\"net.inet.ip.arpdown\", []_C_int{4, 2, 0, 40}},\n\t{\"net.inet.ip.arpqueued\", []_C_int{4, 2, 0, 36}},\n\t{\"net.inet.ip.arptimeout\", []_C_int{4, 2, 0, 39}},\n\t{\"net.inet.ip.encdebug\", []_C_int{4, 2, 0, 12}},\n\t{\"net.inet.ip.forwarding\", []_C_int{4, 2, 0, 1}},\n\t{\"net.inet.ip.ifq.congestion\", []_C_int{4, 2, 0, 30, 4}},\n\t{\"net.inet.ip.ifq.drops\", []_C_int{4, 2, 0, 30, 3}},\n\t{\"net.inet.ip.ifq.len\", []_C_int{4, 2, 0, 30, 1}},\n\t{\"net.inet.ip.ifq.maxlen\", []_C_int{4, 2, 0, 30, 2}},\n\t{\"net.inet.ip.maxqueue\", []_C_int{4, 2, 0, 11}},\n\t{\"net.inet.ip.mforwarding\", []_C_int{4, 2, 0, 31}},\n\t{\"net.inet.ip.mrtmfc\", []_C_int{4, 2, 0, 37}},\n\t{\"net.inet.ip.mrtproto\", []_C_int{4, 2, 0, 34}},\n\t{\"net.inet.ip.mrtstats\", []_C_int{4, 2, 0, 35}},\n\t{\"net.inet.ip.mrtvif\", []_C_int{4, 2, 0, 38}},\n\t{\"net.inet.ip.mtu\", []_C_int{4, 2, 0, 4}},\n\t{\"net.inet.ip.mtudisc\", []_C_int{4, 2, 0, 27}},\n\t{\"net.inet.ip.mtudisctimeout\", []_C_int{4, 2, 0, 28}},\n\t{\"net.inet.ip.multipath\", []_C_int{4, 2, 0, 32}},\n\t{\"net.inet.ip.portfirst\", []_C_int{4, 2, 0, 7}},\n\t{\"net.inet.ip.porthifirst\", []_C_int{4, 2, 0, 9}},\n\t{\"net.inet.ip.porthilast\", []_C_int{4, 2, 0, 10}},\n\t{\"net.inet.ip.portlast\", []_C_int{4, 2, 0, 8}},\n\t{\"net.inet.ip.redirect\", []_C_int{4, 2, 0, 2}},\n\t{\"net.inet.ip.sourceroute\", []_C_int{4, 2, 0, 5}},\n\t{\"net.inet.ip.stats\", []_C_int{4, 2, 0, 33}},\n\t{\"net.inet.ip.ttl\", []_C_int{4, 2, 0, 3}},\n\t{\"net.inet.ipcomp.enable\", []_C_int{4, 2, 108, 1}},\n\t{\"net.inet.ipcomp.stats\", []_C_int{4, 2, 108, 2}},\n\t{\"net.inet.ipip.allow\", []_C_int{4, 2, 4, 1}},\n\t{\"net.inet.ipip.stats\", []_C_int{4, 2, 4, 2}},\n\t{\"net.inet.pfsync.stats\", []_C_int{4, 2, 240, 1}},\n\t{\"net.inet.tcp.ackonpush\", []_C_int{4, 2, 6, 13}},\n\t{\"net.inet.tcp.always_keepalive\", []_C_int{4, 2, 6, 22}},\n\t{\"net.inet.tcp.baddynamic\", []_C_int{4, 2, 6, 6}},\n\t{\"net.inet.tcp.drop\", []_C_int{4, 2, 6, 19}},\n\t{\"net.inet.tcp.ecn\", []_C_int{4, 2, 6, 14}},\n\t{\"net.inet.tcp.ident\", []_C_int{4, 2, 6, 9}},\n\t{\"net.inet.tcp.keepidle\", []_C_int{4, 2, 6, 3}},\n\t{\"net.inet.tcp.keepinittime\", []_C_int{4, 2, 6, 2}},\n\t{\"net.inet.tcp.keepintvl\", []_C_int{4, 2, 6, 4}},\n\t{\"net.inet.tcp.mssdflt\", []_C_int{4, 2, 6, 11}},\n\t{\"net.inet.tcp.reasslimit\", []_C_int{4, 2, 6, 18}},\n\t{\"net.inet.tcp.rfc1323\", []_C_int{4, 2, 6, 1}},\n\t{\"net.inet.tcp.rfc3390\", []_C_int{4, 2, 6, 17}},\n\t{\"net.inet.tcp.rootonly\", []_C_int{4, 2, 6, 24}},\n\t{\"net.inet.tcp.rstppslimit\", []_C_int{4, 2, 6, 12}},\n\t{\"net.inet.tcp.sack\", []_C_int{4, 2, 6, 10}},\n\t{\"net.inet.tcp.sackholelimit\", []_C_int{4, 2, 6, 20}},\n\t{\"net.inet.tcp.slowhz\", []_C_int{4, 2, 6, 5}},\n\t{\"net.inet.tcp.stats\", []_C_int{4, 2, 6, 21}},\n\t{\"net.inet.tcp.synbucketlimit\", []_C_int{4, 2, 6, 16}},\n\t{\"net.inet.tcp.syncachelimit\", []_C_int{4, 2, 6, 15}},\n\t{\"net.inet.tcp.synhashsize\", []_C_int{4, 2, 6, 25}},\n\t{\"net.inet.tcp.synuselimit\", []_C_int{4, 2, 6, 23}},\n\t{\"net.inet.udp.baddynamic\", []_C_int{4, 2, 17, 2}},\n\t{\"net.inet.udp.checksum\", []_C_int{4, 2, 17, 1}},\n\t{\"net.inet.udp.recvspace\", []_C_int{4, 2, 17, 3}},\n\t{\"net.inet.udp.rootonly\", []_C_int{4, 2, 17, 6}},\n\t{\"net.inet.udp.sendspace\", []_C_int{4, 2, 17, 4}},\n\t{\"net.inet.udp.stats\", []_C_int{4, 2, 17, 5}},\n\t{\"net.inet6.divert.recvspace\", []_C_int{4, 24, 86, 1}},\n\t{\"net.inet6.divert.sendspace\", []_C_int{4, 24, 86, 2}},\n\t{\"net.inet6.divert.stats\", []_C_int{4, 24, 86, 3}},\n\t{\"net.inet6.icmp6.errppslimit\", []_C_int{4, 24, 30, 14}},\n\t{\"net.inet6.icmp6.mtudisc_hiwat\", []_C_int{4, 24, 30, 16}},\n\t{\"net.inet6.icmp6.mtudisc_lowat\", []_C_int{4, 24, 30, 17}},\n\t{\"net.inet6.icmp6.nd6_debug\", []_C_int{4, 24, 30, 18}},\n\t{\"net.inet6.icmp6.nd6_delay\", []_C_int{4, 24, 30, 8}},\n\t{\"net.inet6.icmp6.nd6_maxnudhint\", []_C_int{4, 24, 30, 15}},\n\t{\"net.inet6.icmp6.nd6_mmaxtries\", []_C_int{4, 24, 30, 10}},\n\t{\"net.inet6.icmp6.nd6_umaxtries\", []_C_int{4, 24, 30, 9}},\n\t{\"net.inet6.icmp6.redirtimeout\", []_C_int{4, 24, 30, 3}},\n\t{\"net.inet6.ip6.auto_flowlabel\", []_C_int{4, 24, 17, 17}},\n\t{\"net.inet6.ip6.dad_count\", []_C_int{4, 24, 17, 16}},\n\t{\"net.inet6.ip6.dad_pending\", []_C_int{4, 24, 17, 49}},\n\t{\"net.inet6.ip6.defmcasthlim\", []_C_int{4, 24, 17, 18}},\n\t{\"net.inet6.ip6.forwarding\", []_C_int{4, 24, 17, 1}},\n\t{\"net.inet6.ip6.forwsrcrt\", []_C_int{4, 24, 17, 5}},\n\t{\"net.inet6.ip6.hdrnestlimit\", []_C_int{4, 24, 17, 15}},\n\t{\"net.inet6.ip6.hlim\", []_C_int{4, 24, 17, 3}},\n\t{\"net.inet6.ip6.log_interval\", []_C_int{4, 24, 17, 14}},\n\t{\"net.inet6.ip6.maxdynroutes\", []_C_int{4, 24, 17, 48}},\n\t{\"net.inet6.ip6.maxfragpackets\", []_C_int{4, 24, 17, 9}},\n\t{\"net.inet6.ip6.maxfrags\", []_C_int{4, 24, 17, 41}},\n\t{\"net.inet6.ip6.mforwarding\", []_C_int{4, 24, 17, 42}},\n\t{\"net.inet6.ip6.mrtmfc\", []_C_int{4, 24, 17, 53}},\n\t{\"net.inet6.ip6.mrtmif\", []_C_int{4, 24, 17, 52}},\n\t{\"net.inet6.ip6.mrtproto\", []_C_int{4, 24, 17, 8}},\n\t{\"net.inet6.ip6.mtudisctimeout\", []_C_int{4, 24, 17, 50}},\n\t{\"net.inet6.ip6.multicast_mtudisc\", []_C_int{4, 24, 17, 44}},\n\t{\"net.inet6.ip6.multipath\", []_C_int{4, 24, 17, 43}},\n\t{\"net.inet6.ip6.neighborgcthresh\", []_C_int{4, 24, 17, 45}},\n\t{\"net.inet6.ip6.redirect\", []_C_int{4, 24, 17, 2}},\n\t{\"net.inet6.ip6.soiikey\", []_C_int{4, 24, 17, 54}},\n\t{\"net.inet6.ip6.sourcecheck\", []_C_int{4, 24, 17, 10}},\n\t{\"net.inet6.ip6.sourcecheck_logint\", []_C_int{4, 24, 17, 11}},\n\t{\"net.inet6.ip6.use_deprecated\", []_C_int{4, 24, 17, 21}},\n\t{\"net.key.sadb_dump\", []_C_int{4, 30, 1}},\n\t{\"net.key.spd_dump\", []_C_int{4, 30, 2}},\n\t{\"net.mpls.ifq.congestion\", []_C_int{4, 33, 3, 4}},\n\t{\"net.mpls.ifq.drops\", []_C_int{4, 33, 3, 3}},\n\t{\"net.mpls.ifq.len\", []_C_int{4, 33, 3, 1}},\n\t{\"net.mpls.ifq.maxlen\", []_C_int{4, 33, 3, 2}},\n\t{\"net.mpls.mapttl_ip\", []_C_int{4, 33, 5}},\n\t{\"net.mpls.mapttl_ip6\", []_C_int{4, 33, 6}},\n\t{\"net.mpls.ttl\", []_C_int{4, 33, 2}},\n\t{\"net.pflow.stats\", []_C_int{4, 34, 1}},\n\t{\"net.pipex.enable\", []_C_int{4, 35, 1}},\n\t{\"vm.anonmin\", []_C_int{2, 7}},\n\t{\"vm.loadavg\", []_C_int{2, 2}},\n\t{\"vm.malloc_conf\", []_C_int{2, 12}},\n\t{\"vm.maxslp\", []_C_int{2, 10}},\n\t{\"vm.nkmempages\", []_C_int{2, 6}},\n\t{\"vm.psstrings\", []_C_int{2, 3}},\n\t{\"vm.swapencrypt.enable\", []_C_int{2, 5, 0}},\n\t{\"vm.swapencrypt.keyscreated\", []_C_int{2, 5, 1}},\n\t{\"vm.swapencrypt.keysdeleted\", []_C_int{2, 5, 2}},\n\t{\"vm.uspace\", []_C_int{2, 11}},\n\t{\"vm.uvmexp\", []_C_int{2, 4}},\n\t{\"vm.vmmeter\", []_C_int{2, 1}},\n\t{\"vm.vnodemin\", []_C_int{2, 9}},\n\t{\"vm.vtextmin\", []_C_int{2, 8}},\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go",
    "content": "// go run mksysnum.go /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/sys/syscall.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && darwin\n\npackage unix\n\n// Deprecated: Use libSystem wrappers instead of direct syscalls.\nconst (\n\tSYS_SYSCALL                        = 0\n\tSYS_EXIT                           = 1\n\tSYS_FORK                           = 2\n\tSYS_READ                           = 3\n\tSYS_WRITE                          = 4\n\tSYS_OPEN                           = 5\n\tSYS_CLOSE                          = 6\n\tSYS_WAIT4                          = 7\n\tSYS_LINK                           = 9\n\tSYS_UNLINK                         = 10\n\tSYS_CHDIR                          = 12\n\tSYS_FCHDIR                         = 13\n\tSYS_MKNOD                          = 14\n\tSYS_CHMOD                          = 15\n\tSYS_CHOWN                          = 16\n\tSYS_GETFSSTAT                      = 18\n\tSYS_GETPID                         = 20\n\tSYS_SETUID                         = 23\n\tSYS_GETUID                         = 24\n\tSYS_GETEUID                        = 25\n\tSYS_PTRACE                         = 26\n\tSYS_RECVMSG                        = 27\n\tSYS_SENDMSG                        = 28\n\tSYS_RECVFROM                       = 29\n\tSYS_ACCEPT                         = 30\n\tSYS_GETPEERNAME                    = 31\n\tSYS_GETSOCKNAME                    = 32\n\tSYS_ACCESS                         = 33\n\tSYS_CHFLAGS                        = 34\n\tSYS_FCHFLAGS                       = 35\n\tSYS_SYNC                           = 36\n\tSYS_KILL                           = 37\n\tSYS_GETPPID                        = 39\n\tSYS_DUP                            = 41\n\tSYS_PIPE                           = 42\n\tSYS_GETEGID                        = 43\n\tSYS_SIGACTION                      = 46\n\tSYS_GETGID                         = 47\n\tSYS_SIGPROCMASK                    = 48\n\tSYS_GETLOGIN                       = 49\n\tSYS_SETLOGIN                       = 50\n\tSYS_ACCT                           = 51\n\tSYS_SIGPENDING                     = 52\n\tSYS_SIGALTSTACK                    = 53\n\tSYS_IOCTL                          = 54\n\tSYS_REBOOT                         = 55\n\tSYS_REVOKE                         = 56\n\tSYS_SYMLINK                        = 57\n\tSYS_READLINK                       = 58\n\tSYS_EXECVE                         = 59\n\tSYS_UMASK                          = 60\n\tSYS_CHROOT                         = 61\n\tSYS_MSYNC                          = 65\n\tSYS_VFORK                          = 66\n\tSYS_MUNMAP                         = 73\n\tSYS_MPROTECT                       = 74\n\tSYS_MADVISE                        = 75\n\tSYS_MINCORE                        = 78\n\tSYS_GETGROUPS                      = 79\n\tSYS_SETGROUPS                      = 80\n\tSYS_GETPGRP                        = 81\n\tSYS_SETPGID                        = 82\n\tSYS_SETITIMER                      = 83\n\tSYS_SWAPON                         = 85\n\tSYS_GETITIMER                      = 86\n\tSYS_GETDTABLESIZE                  = 89\n\tSYS_DUP2                           = 90\n\tSYS_FCNTL                          = 92\n\tSYS_SELECT                         = 93\n\tSYS_FSYNC                          = 95\n\tSYS_SETPRIORITY                    = 96\n\tSYS_SOCKET                         = 97\n\tSYS_CONNECT                        = 98\n\tSYS_GETPRIORITY                    = 100\n\tSYS_BIND                           = 104\n\tSYS_SETSOCKOPT                     = 105\n\tSYS_LISTEN                         = 106\n\tSYS_SIGSUSPEND                     = 111\n\tSYS_GETTIMEOFDAY                   = 116\n\tSYS_GETRUSAGE                      = 117\n\tSYS_GETSOCKOPT                     = 118\n\tSYS_READV                          = 120\n\tSYS_WRITEV                         = 121\n\tSYS_SETTIMEOFDAY                   = 122\n\tSYS_FCHOWN                         = 123\n\tSYS_FCHMOD                         = 124\n\tSYS_SETREUID                       = 126\n\tSYS_SETREGID                       = 127\n\tSYS_RENAME                         = 128\n\tSYS_FLOCK                          = 131\n\tSYS_MKFIFO                         = 132\n\tSYS_SENDTO                         = 133\n\tSYS_SHUTDOWN                       = 134\n\tSYS_SOCKETPAIR                     = 135\n\tSYS_MKDIR                          = 136\n\tSYS_RMDIR                          = 137\n\tSYS_UTIMES                         = 138\n\tSYS_FUTIMES                        = 139\n\tSYS_ADJTIME                        = 140\n\tSYS_GETHOSTUUID                    = 142\n\tSYS_SETSID                         = 147\n\tSYS_GETPGID                        = 151\n\tSYS_SETPRIVEXEC                    = 152\n\tSYS_PREAD                          = 153\n\tSYS_PWRITE                         = 154\n\tSYS_NFSSVC                         = 155\n\tSYS_STATFS                         = 157\n\tSYS_FSTATFS                        = 158\n\tSYS_UNMOUNT                        = 159\n\tSYS_GETFH                          = 161\n\tSYS_QUOTACTL                       = 165\n\tSYS_MOUNT                          = 167\n\tSYS_CSOPS                          = 169\n\tSYS_CSOPS_AUDITTOKEN               = 170\n\tSYS_WAITID                         = 173\n\tSYS_KDEBUG_TYPEFILTER              = 177\n\tSYS_KDEBUG_TRACE_STRING            = 178\n\tSYS_KDEBUG_TRACE64                 = 179\n\tSYS_KDEBUG_TRACE                   = 180\n\tSYS_SETGID                         = 181\n\tSYS_SETEGID                        = 182\n\tSYS_SETEUID                        = 183\n\tSYS_SIGRETURN                      = 184\n\tSYS_THREAD_SELFCOUNTS              = 186\n\tSYS_FDATASYNC                      = 187\n\tSYS_STAT                           = 188\n\tSYS_FSTAT                          = 189\n\tSYS_LSTAT                          = 190\n\tSYS_PATHCONF                       = 191\n\tSYS_FPATHCONF                      = 192\n\tSYS_GETRLIMIT                      = 194\n\tSYS_SETRLIMIT                      = 195\n\tSYS_GETDIRENTRIES                  = 196\n\tSYS_MMAP                           = 197\n\tSYS_LSEEK                          = 199\n\tSYS_TRUNCATE                       = 200\n\tSYS_FTRUNCATE                      = 201\n\tSYS_SYSCTL                         = 202\n\tSYS_MLOCK                          = 203\n\tSYS_MUNLOCK                        = 204\n\tSYS_UNDELETE                       = 205\n\tSYS_OPEN_DPROTECTED_NP             = 216\n\tSYS_GETATTRLIST                    = 220\n\tSYS_SETATTRLIST                    = 221\n\tSYS_GETDIRENTRIESATTR              = 222\n\tSYS_EXCHANGEDATA                   = 223\n\tSYS_SEARCHFS                       = 225\n\tSYS_DELETE                         = 226\n\tSYS_COPYFILE                       = 227\n\tSYS_FGETATTRLIST                   = 228\n\tSYS_FSETATTRLIST                   = 229\n\tSYS_POLL                           = 230\n\tSYS_WATCHEVENT                     = 231\n\tSYS_WAITEVENT                      = 232\n\tSYS_MODWATCH                       = 233\n\tSYS_GETXATTR                       = 234\n\tSYS_FGETXATTR                      = 235\n\tSYS_SETXATTR                       = 236\n\tSYS_FSETXATTR                      = 237\n\tSYS_REMOVEXATTR                    = 238\n\tSYS_FREMOVEXATTR                   = 239\n\tSYS_LISTXATTR                      = 240\n\tSYS_FLISTXATTR                     = 241\n\tSYS_FSCTL                          = 242\n\tSYS_INITGROUPS                     = 243\n\tSYS_POSIX_SPAWN                    = 244\n\tSYS_FFSCTL                         = 245\n\tSYS_NFSCLNT                        = 247\n\tSYS_FHOPEN                         = 248\n\tSYS_MINHERIT                       = 250\n\tSYS_SEMSYS                         = 251\n\tSYS_MSGSYS                         = 252\n\tSYS_SHMSYS                         = 253\n\tSYS_SEMCTL                         = 254\n\tSYS_SEMGET                         = 255\n\tSYS_SEMOP                          = 256\n\tSYS_MSGCTL                         = 258\n\tSYS_MSGGET                         = 259\n\tSYS_MSGSND                         = 260\n\tSYS_MSGRCV                         = 261\n\tSYS_SHMAT                          = 262\n\tSYS_SHMCTL                         = 263\n\tSYS_SHMDT                          = 264\n\tSYS_SHMGET                         = 265\n\tSYS_SHM_OPEN                       = 266\n\tSYS_SHM_UNLINK                     = 267\n\tSYS_SEM_OPEN                       = 268\n\tSYS_SEM_CLOSE                      = 269\n\tSYS_SEM_UNLINK                     = 270\n\tSYS_SEM_WAIT                       = 271\n\tSYS_SEM_TRYWAIT                    = 272\n\tSYS_SEM_POST                       = 273\n\tSYS_SYSCTLBYNAME                   = 274\n\tSYS_OPEN_EXTENDED                  = 277\n\tSYS_UMASK_EXTENDED                 = 278\n\tSYS_STAT_EXTENDED                  = 279\n\tSYS_LSTAT_EXTENDED                 = 280\n\tSYS_FSTAT_EXTENDED                 = 281\n\tSYS_CHMOD_EXTENDED                 = 282\n\tSYS_FCHMOD_EXTENDED                = 283\n\tSYS_ACCESS_EXTENDED                = 284\n\tSYS_SETTID                         = 285\n\tSYS_GETTID                         = 286\n\tSYS_SETSGROUPS                     = 287\n\tSYS_GETSGROUPS                     = 288\n\tSYS_SETWGROUPS                     = 289\n\tSYS_GETWGROUPS                     = 290\n\tSYS_MKFIFO_EXTENDED                = 291\n\tSYS_MKDIR_EXTENDED                 = 292\n\tSYS_IDENTITYSVC                    = 293\n\tSYS_SHARED_REGION_CHECK_NP         = 294\n\tSYS_VM_PRESSURE_MONITOR            = 296\n\tSYS_PSYNCH_RW_LONGRDLOCK           = 297\n\tSYS_PSYNCH_RW_YIELDWRLOCK          = 298\n\tSYS_PSYNCH_RW_DOWNGRADE            = 299\n\tSYS_PSYNCH_RW_UPGRADE              = 300\n\tSYS_PSYNCH_MUTEXWAIT               = 301\n\tSYS_PSYNCH_MUTEXDROP               = 302\n\tSYS_PSYNCH_CVBROAD                 = 303\n\tSYS_PSYNCH_CVSIGNAL                = 304\n\tSYS_PSYNCH_CVWAIT                  = 305\n\tSYS_PSYNCH_RW_RDLOCK               = 306\n\tSYS_PSYNCH_RW_WRLOCK               = 307\n\tSYS_PSYNCH_RW_UNLOCK               = 308\n\tSYS_PSYNCH_RW_UNLOCK2              = 309\n\tSYS_GETSID                         = 310\n\tSYS_SETTID_WITH_PID                = 311\n\tSYS_PSYNCH_CVCLRPREPOST            = 312\n\tSYS_AIO_FSYNC                      = 313\n\tSYS_AIO_RETURN                     = 314\n\tSYS_AIO_SUSPEND                    = 315\n\tSYS_AIO_CANCEL                     = 316\n\tSYS_AIO_ERROR                      = 317\n\tSYS_AIO_READ                       = 318\n\tSYS_AIO_WRITE                      = 319\n\tSYS_LIO_LISTIO                     = 320\n\tSYS_IOPOLICYSYS                    = 322\n\tSYS_PROCESS_POLICY                 = 323\n\tSYS_MLOCKALL                       = 324\n\tSYS_MUNLOCKALL                     = 325\n\tSYS_ISSETUGID                      = 327\n\tSYS___PTHREAD_KILL                 = 328\n\tSYS___PTHREAD_SIGMASK              = 329\n\tSYS___SIGWAIT                      = 330\n\tSYS___DISABLE_THREADSIGNAL         = 331\n\tSYS___PTHREAD_MARKCANCEL           = 332\n\tSYS___PTHREAD_CANCELED             = 333\n\tSYS___SEMWAIT_SIGNAL               = 334\n\tSYS_PROC_INFO                      = 336\n\tSYS_SENDFILE                       = 337\n\tSYS_STAT64                         = 338\n\tSYS_FSTAT64                        = 339\n\tSYS_LSTAT64                        = 340\n\tSYS_STAT64_EXTENDED                = 341\n\tSYS_LSTAT64_EXTENDED               = 342\n\tSYS_FSTAT64_EXTENDED               = 343\n\tSYS_GETDIRENTRIES64                = 344\n\tSYS_STATFS64                       = 345\n\tSYS_FSTATFS64                      = 346\n\tSYS_GETFSSTAT64                    = 347\n\tSYS___PTHREAD_CHDIR                = 348\n\tSYS___PTHREAD_FCHDIR               = 349\n\tSYS_AUDIT                          = 350\n\tSYS_AUDITON                        = 351\n\tSYS_GETAUID                        = 353\n\tSYS_SETAUID                        = 354\n\tSYS_GETAUDIT_ADDR                  = 357\n\tSYS_SETAUDIT_ADDR                  = 358\n\tSYS_AUDITCTL                       = 359\n\tSYS_BSDTHREAD_CREATE               = 360\n\tSYS_BSDTHREAD_TERMINATE            = 361\n\tSYS_KQUEUE                         = 362\n\tSYS_KEVENT                         = 363\n\tSYS_LCHOWN                         = 364\n\tSYS_BSDTHREAD_REGISTER             = 366\n\tSYS_WORKQ_OPEN                     = 367\n\tSYS_WORKQ_KERNRETURN               = 368\n\tSYS_KEVENT64                       = 369\n\tSYS___OLD_SEMWAIT_SIGNAL           = 370\n\tSYS___OLD_SEMWAIT_SIGNAL_NOCANCEL  = 371\n\tSYS_THREAD_SELFID                  = 372\n\tSYS_LEDGER                         = 373\n\tSYS_KEVENT_QOS                     = 374\n\tSYS_KEVENT_ID                      = 375\n\tSYS___MAC_EXECVE                   = 380\n\tSYS___MAC_SYSCALL                  = 381\n\tSYS___MAC_GET_FILE                 = 382\n\tSYS___MAC_SET_FILE                 = 383\n\tSYS___MAC_GET_LINK                 = 384\n\tSYS___MAC_SET_LINK                 = 385\n\tSYS___MAC_GET_PROC                 = 386\n\tSYS___MAC_SET_PROC                 = 387\n\tSYS___MAC_GET_FD                   = 388\n\tSYS___MAC_SET_FD                   = 389\n\tSYS___MAC_GET_PID                  = 390\n\tSYS_PSELECT                        = 394\n\tSYS_PSELECT_NOCANCEL               = 395\n\tSYS_READ_NOCANCEL                  = 396\n\tSYS_WRITE_NOCANCEL                 = 397\n\tSYS_OPEN_NOCANCEL                  = 398\n\tSYS_CLOSE_NOCANCEL                 = 399\n\tSYS_WAIT4_NOCANCEL                 = 400\n\tSYS_RECVMSG_NOCANCEL               = 401\n\tSYS_SENDMSG_NOCANCEL               = 402\n\tSYS_RECVFROM_NOCANCEL              = 403\n\tSYS_ACCEPT_NOCANCEL                = 404\n\tSYS_MSYNC_NOCANCEL                 = 405\n\tSYS_FCNTL_NOCANCEL                 = 406\n\tSYS_SELECT_NOCANCEL                = 407\n\tSYS_FSYNC_NOCANCEL                 = 408\n\tSYS_CONNECT_NOCANCEL               = 409\n\tSYS_SIGSUSPEND_NOCANCEL            = 410\n\tSYS_READV_NOCANCEL                 = 411\n\tSYS_WRITEV_NOCANCEL                = 412\n\tSYS_SENDTO_NOCANCEL                = 413\n\tSYS_PREAD_NOCANCEL                 = 414\n\tSYS_PWRITE_NOCANCEL                = 415\n\tSYS_WAITID_NOCANCEL                = 416\n\tSYS_POLL_NOCANCEL                  = 417\n\tSYS_MSGSND_NOCANCEL                = 418\n\tSYS_MSGRCV_NOCANCEL                = 419\n\tSYS_SEM_WAIT_NOCANCEL              = 420\n\tSYS_AIO_SUSPEND_NOCANCEL           = 421\n\tSYS___SIGWAIT_NOCANCEL             = 422\n\tSYS___SEMWAIT_SIGNAL_NOCANCEL      = 423\n\tSYS___MAC_MOUNT                    = 424\n\tSYS___MAC_GET_MOUNT                = 425\n\tSYS___MAC_GETFSSTAT                = 426\n\tSYS_FSGETPATH                      = 427\n\tSYS_AUDIT_SESSION_SELF             = 428\n\tSYS_AUDIT_SESSION_JOIN             = 429\n\tSYS_FILEPORT_MAKEPORT              = 430\n\tSYS_FILEPORT_MAKEFD                = 431\n\tSYS_AUDIT_SESSION_PORT             = 432\n\tSYS_PID_SUSPEND                    = 433\n\tSYS_PID_RESUME                     = 434\n\tSYS_PID_HIBERNATE                  = 435\n\tSYS_PID_SHUTDOWN_SOCKETS           = 436\n\tSYS_SHARED_REGION_MAP_AND_SLIDE_NP = 438\n\tSYS_KAS_INFO                       = 439\n\tSYS_MEMORYSTATUS_CONTROL           = 440\n\tSYS_GUARDED_OPEN_NP                = 441\n\tSYS_GUARDED_CLOSE_NP               = 442\n\tSYS_GUARDED_KQUEUE_NP              = 443\n\tSYS_CHANGE_FDGUARD_NP              = 444\n\tSYS_USRCTL                         = 445\n\tSYS_PROC_RLIMIT_CONTROL            = 446\n\tSYS_CONNECTX                       = 447\n\tSYS_DISCONNECTX                    = 448\n\tSYS_PEELOFF                        = 449\n\tSYS_SOCKET_DELEGATE                = 450\n\tSYS_TELEMETRY                      = 451\n\tSYS_PROC_UUID_POLICY               = 452\n\tSYS_MEMORYSTATUS_GET_LEVEL         = 453\n\tSYS_SYSTEM_OVERRIDE                = 454\n\tSYS_VFS_PURGE                      = 455\n\tSYS_SFI_CTL                        = 456\n\tSYS_SFI_PIDCTL                     = 457\n\tSYS_COALITION                      = 458\n\tSYS_COALITION_INFO                 = 459\n\tSYS_NECP_MATCH_POLICY              = 460\n\tSYS_GETATTRLISTBULK                = 461\n\tSYS_CLONEFILEAT                    = 462\n\tSYS_OPENAT                         = 463\n\tSYS_OPENAT_NOCANCEL                = 464\n\tSYS_RENAMEAT                       = 465\n\tSYS_FACCESSAT                      = 466\n\tSYS_FCHMODAT                       = 467\n\tSYS_FCHOWNAT                       = 468\n\tSYS_FSTATAT                        = 469\n\tSYS_FSTATAT64                      = 470\n\tSYS_LINKAT                         = 471\n\tSYS_UNLINKAT                       = 472\n\tSYS_READLINKAT                     = 473\n\tSYS_SYMLINKAT                      = 474\n\tSYS_MKDIRAT                        = 475\n\tSYS_GETATTRLISTAT                  = 476\n\tSYS_PROC_TRACE_LOG                 = 477\n\tSYS_BSDTHREAD_CTL                  = 478\n\tSYS_OPENBYID_NP                    = 479\n\tSYS_RECVMSG_X                      = 480\n\tSYS_SENDMSG_X                      = 481\n\tSYS_THREAD_SELFUSAGE               = 482\n\tSYS_CSRCTL                         = 483\n\tSYS_GUARDED_OPEN_DPROTECTED_NP     = 484\n\tSYS_GUARDED_WRITE_NP               = 485\n\tSYS_GUARDED_PWRITE_NP              = 486\n\tSYS_GUARDED_WRITEV_NP              = 487\n\tSYS_RENAMEATX_NP                   = 488\n\tSYS_MREMAP_ENCRYPTED               = 489\n\tSYS_NETAGENT_TRIGGER               = 490\n\tSYS_STACK_SNAPSHOT_WITH_CONFIG     = 491\n\tSYS_MICROSTACKSHOT                 = 492\n\tSYS_GRAB_PGO_DATA                  = 493\n\tSYS_PERSONA                        = 494\n\tSYS_WORK_INTERVAL_CTL              = 499\n\tSYS_GETENTROPY                     = 500\n\tSYS_NECP_OPEN                      = 501\n\tSYS_NECP_CLIENT_ACTION             = 502\n\tSYS___NEXUS_OPEN                   = 503\n\tSYS___NEXUS_REGISTER               = 504\n\tSYS___NEXUS_DEREGISTER             = 505\n\tSYS___NEXUS_CREATE                 = 506\n\tSYS___NEXUS_DESTROY                = 507\n\tSYS___NEXUS_GET_OPT                = 508\n\tSYS___NEXUS_SET_OPT                = 509\n\tSYS___CHANNEL_OPEN                 = 510\n\tSYS___CHANNEL_GET_INFO             = 511\n\tSYS___CHANNEL_SYNC                 = 512\n\tSYS___CHANNEL_GET_OPT              = 513\n\tSYS___CHANNEL_SET_OPT              = 514\n\tSYS_ULOCK_WAIT                     = 515\n\tSYS_ULOCK_WAKE                     = 516\n\tSYS_FCLONEFILEAT                   = 517\n\tSYS_FS_SNAPSHOT                    = 518\n\tSYS_TERMINATE_WITH_PAYLOAD         = 520\n\tSYS_ABORT_WITH_PAYLOAD             = 521\n\tSYS_NECP_SESSION_OPEN              = 522\n\tSYS_NECP_SESSION_ACTION            = 523\n\tSYS_SETATTRLISTAT                  = 524\n\tSYS_NET_QOS_GUIDELINE              = 525\n\tSYS_FMOUNT                         = 526\n\tSYS_NTP_ADJTIME                    = 527\n\tSYS_NTP_GETTIME                    = 528\n\tSYS_OS_FAULT_WITH_PAYLOAD          = 529\n\tSYS_KQUEUE_WORKLOOP_CTL            = 530\n\tSYS___MACH_BRIDGE_REMOTE_TIME      = 531\n\tSYS_MAXSYSCALL                     = 532\n\tSYS_INVALID                        = 63\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go",
    "content": "// go run mksysnum.go /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.1.sdk/usr/include/sys/syscall.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && darwin\n\npackage unix\n\n// Deprecated: Use libSystem wrappers instead of direct syscalls.\nconst (\n\tSYS_SYSCALL                        = 0\n\tSYS_EXIT                           = 1\n\tSYS_FORK                           = 2\n\tSYS_READ                           = 3\n\tSYS_WRITE                          = 4\n\tSYS_OPEN                           = 5\n\tSYS_CLOSE                          = 6\n\tSYS_WAIT4                          = 7\n\tSYS_LINK                           = 9\n\tSYS_UNLINK                         = 10\n\tSYS_CHDIR                          = 12\n\tSYS_FCHDIR                         = 13\n\tSYS_MKNOD                          = 14\n\tSYS_CHMOD                          = 15\n\tSYS_CHOWN                          = 16\n\tSYS_GETFSSTAT                      = 18\n\tSYS_GETPID                         = 20\n\tSYS_SETUID                         = 23\n\tSYS_GETUID                         = 24\n\tSYS_GETEUID                        = 25\n\tSYS_PTRACE                         = 26\n\tSYS_RECVMSG                        = 27\n\tSYS_SENDMSG                        = 28\n\tSYS_RECVFROM                       = 29\n\tSYS_ACCEPT                         = 30\n\tSYS_GETPEERNAME                    = 31\n\tSYS_GETSOCKNAME                    = 32\n\tSYS_ACCESS                         = 33\n\tSYS_CHFLAGS                        = 34\n\tSYS_FCHFLAGS                       = 35\n\tSYS_SYNC                           = 36\n\tSYS_KILL                           = 37\n\tSYS_GETPPID                        = 39\n\tSYS_DUP                            = 41\n\tSYS_PIPE                           = 42\n\tSYS_GETEGID                        = 43\n\tSYS_SIGACTION                      = 46\n\tSYS_GETGID                         = 47\n\tSYS_SIGPROCMASK                    = 48\n\tSYS_GETLOGIN                       = 49\n\tSYS_SETLOGIN                       = 50\n\tSYS_ACCT                           = 51\n\tSYS_SIGPENDING                     = 52\n\tSYS_SIGALTSTACK                    = 53\n\tSYS_IOCTL                          = 54\n\tSYS_REBOOT                         = 55\n\tSYS_REVOKE                         = 56\n\tSYS_SYMLINK                        = 57\n\tSYS_READLINK                       = 58\n\tSYS_EXECVE                         = 59\n\tSYS_UMASK                          = 60\n\tSYS_CHROOT                         = 61\n\tSYS_MSYNC                          = 65\n\tSYS_VFORK                          = 66\n\tSYS_MUNMAP                         = 73\n\tSYS_MPROTECT                       = 74\n\tSYS_MADVISE                        = 75\n\tSYS_MINCORE                        = 78\n\tSYS_GETGROUPS                      = 79\n\tSYS_SETGROUPS                      = 80\n\tSYS_GETPGRP                        = 81\n\tSYS_SETPGID                        = 82\n\tSYS_SETITIMER                      = 83\n\tSYS_SWAPON                         = 85\n\tSYS_GETITIMER                      = 86\n\tSYS_GETDTABLESIZE                  = 89\n\tSYS_DUP2                           = 90\n\tSYS_FCNTL                          = 92\n\tSYS_SELECT                         = 93\n\tSYS_FSYNC                          = 95\n\tSYS_SETPRIORITY                    = 96\n\tSYS_SOCKET                         = 97\n\tSYS_CONNECT                        = 98\n\tSYS_GETPRIORITY                    = 100\n\tSYS_BIND                           = 104\n\tSYS_SETSOCKOPT                     = 105\n\tSYS_LISTEN                         = 106\n\tSYS_SIGSUSPEND                     = 111\n\tSYS_GETTIMEOFDAY                   = 116\n\tSYS_GETRUSAGE                      = 117\n\tSYS_GETSOCKOPT                     = 118\n\tSYS_READV                          = 120\n\tSYS_WRITEV                         = 121\n\tSYS_SETTIMEOFDAY                   = 122\n\tSYS_FCHOWN                         = 123\n\tSYS_FCHMOD                         = 124\n\tSYS_SETREUID                       = 126\n\tSYS_SETREGID                       = 127\n\tSYS_RENAME                         = 128\n\tSYS_FLOCK                          = 131\n\tSYS_MKFIFO                         = 132\n\tSYS_SENDTO                         = 133\n\tSYS_SHUTDOWN                       = 134\n\tSYS_SOCKETPAIR                     = 135\n\tSYS_MKDIR                          = 136\n\tSYS_RMDIR                          = 137\n\tSYS_UTIMES                         = 138\n\tSYS_FUTIMES                        = 139\n\tSYS_ADJTIME                        = 140\n\tSYS_GETHOSTUUID                    = 142\n\tSYS_SETSID                         = 147\n\tSYS_GETPGID                        = 151\n\tSYS_SETPRIVEXEC                    = 152\n\tSYS_PREAD                          = 153\n\tSYS_PWRITE                         = 154\n\tSYS_NFSSVC                         = 155\n\tSYS_STATFS                         = 157\n\tSYS_FSTATFS                        = 158\n\tSYS_UNMOUNT                        = 159\n\tSYS_GETFH                          = 161\n\tSYS_QUOTACTL                       = 165\n\tSYS_MOUNT                          = 167\n\tSYS_CSOPS                          = 169\n\tSYS_CSOPS_AUDITTOKEN               = 170\n\tSYS_WAITID                         = 173\n\tSYS_KDEBUG_TYPEFILTER              = 177\n\tSYS_KDEBUG_TRACE_STRING            = 178\n\tSYS_KDEBUG_TRACE64                 = 179\n\tSYS_KDEBUG_TRACE                   = 180\n\tSYS_SETGID                         = 181\n\tSYS_SETEGID                        = 182\n\tSYS_SETEUID                        = 183\n\tSYS_SIGRETURN                      = 184\n\tSYS_THREAD_SELFCOUNTS              = 186\n\tSYS_FDATASYNC                      = 187\n\tSYS_STAT                           = 188\n\tSYS_FSTAT                          = 189\n\tSYS_LSTAT                          = 190\n\tSYS_PATHCONF                       = 191\n\tSYS_FPATHCONF                      = 192\n\tSYS_GETRLIMIT                      = 194\n\tSYS_SETRLIMIT                      = 195\n\tSYS_GETDIRENTRIES                  = 196\n\tSYS_MMAP                           = 197\n\tSYS_LSEEK                          = 199\n\tSYS_TRUNCATE                       = 200\n\tSYS_FTRUNCATE                      = 201\n\tSYS_SYSCTL                         = 202\n\tSYS_MLOCK                          = 203\n\tSYS_MUNLOCK                        = 204\n\tSYS_UNDELETE                       = 205\n\tSYS_OPEN_DPROTECTED_NP             = 216\n\tSYS_GETATTRLIST                    = 220\n\tSYS_SETATTRLIST                    = 221\n\tSYS_GETDIRENTRIESATTR              = 222\n\tSYS_EXCHANGEDATA                   = 223\n\tSYS_SEARCHFS                       = 225\n\tSYS_DELETE                         = 226\n\tSYS_COPYFILE                       = 227\n\tSYS_FGETATTRLIST                   = 228\n\tSYS_FSETATTRLIST                   = 229\n\tSYS_POLL                           = 230\n\tSYS_WATCHEVENT                     = 231\n\tSYS_WAITEVENT                      = 232\n\tSYS_MODWATCH                       = 233\n\tSYS_GETXATTR                       = 234\n\tSYS_FGETXATTR                      = 235\n\tSYS_SETXATTR                       = 236\n\tSYS_FSETXATTR                      = 237\n\tSYS_REMOVEXATTR                    = 238\n\tSYS_FREMOVEXATTR                   = 239\n\tSYS_LISTXATTR                      = 240\n\tSYS_FLISTXATTR                     = 241\n\tSYS_FSCTL                          = 242\n\tSYS_INITGROUPS                     = 243\n\tSYS_POSIX_SPAWN                    = 244\n\tSYS_FFSCTL                         = 245\n\tSYS_NFSCLNT                        = 247\n\tSYS_FHOPEN                         = 248\n\tSYS_MINHERIT                       = 250\n\tSYS_SEMSYS                         = 251\n\tSYS_MSGSYS                         = 252\n\tSYS_SHMSYS                         = 253\n\tSYS_SEMCTL                         = 254\n\tSYS_SEMGET                         = 255\n\tSYS_SEMOP                          = 256\n\tSYS_MSGCTL                         = 258\n\tSYS_MSGGET                         = 259\n\tSYS_MSGSND                         = 260\n\tSYS_MSGRCV                         = 261\n\tSYS_SHMAT                          = 262\n\tSYS_SHMCTL                         = 263\n\tSYS_SHMDT                          = 264\n\tSYS_SHMGET                         = 265\n\tSYS_SHM_OPEN                       = 266\n\tSYS_SHM_UNLINK                     = 267\n\tSYS_SEM_OPEN                       = 268\n\tSYS_SEM_CLOSE                      = 269\n\tSYS_SEM_UNLINK                     = 270\n\tSYS_SEM_WAIT                       = 271\n\tSYS_SEM_TRYWAIT                    = 272\n\tSYS_SEM_POST                       = 273\n\tSYS_SYSCTLBYNAME                   = 274\n\tSYS_OPEN_EXTENDED                  = 277\n\tSYS_UMASK_EXTENDED                 = 278\n\tSYS_STAT_EXTENDED                  = 279\n\tSYS_LSTAT_EXTENDED                 = 280\n\tSYS_FSTAT_EXTENDED                 = 281\n\tSYS_CHMOD_EXTENDED                 = 282\n\tSYS_FCHMOD_EXTENDED                = 283\n\tSYS_ACCESS_EXTENDED                = 284\n\tSYS_SETTID                         = 285\n\tSYS_GETTID                         = 286\n\tSYS_SETSGROUPS                     = 287\n\tSYS_GETSGROUPS                     = 288\n\tSYS_SETWGROUPS                     = 289\n\tSYS_GETWGROUPS                     = 290\n\tSYS_MKFIFO_EXTENDED                = 291\n\tSYS_MKDIR_EXTENDED                 = 292\n\tSYS_IDENTITYSVC                    = 293\n\tSYS_SHARED_REGION_CHECK_NP         = 294\n\tSYS_VM_PRESSURE_MONITOR            = 296\n\tSYS_PSYNCH_RW_LONGRDLOCK           = 297\n\tSYS_PSYNCH_RW_YIELDWRLOCK          = 298\n\tSYS_PSYNCH_RW_DOWNGRADE            = 299\n\tSYS_PSYNCH_RW_UPGRADE              = 300\n\tSYS_PSYNCH_MUTEXWAIT               = 301\n\tSYS_PSYNCH_MUTEXDROP               = 302\n\tSYS_PSYNCH_CVBROAD                 = 303\n\tSYS_PSYNCH_CVSIGNAL                = 304\n\tSYS_PSYNCH_CVWAIT                  = 305\n\tSYS_PSYNCH_RW_RDLOCK               = 306\n\tSYS_PSYNCH_RW_WRLOCK               = 307\n\tSYS_PSYNCH_RW_UNLOCK               = 308\n\tSYS_PSYNCH_RW_UNLOCK2              = 309\n\tSYS_GETSID                         = 310\n\tSYS_SETTID_WITH_PID                = 311\n\tSYS_PSYNCH_CVCLRPREPOST            = 312\n\tSYS_AIO_FSYNC                      = 313\n\tSYS_AIO_RETURN                     = 314\n\tSYS_AIO_SUSPEND                    = 315\n\tSYS_AIO_CANCEL                     = 316\n\tSYS_AIO_ERROR                      = 317\n\tSYS_AIO_READ                       = 318\n\tSYS_AIO_WRITE                      = 319\n\tSYS_LIO_LISTIO                     = 320\n\tSYS_IOPOLICYSYS                    = 322\n\tSYS_PROCESS_POLICY                 = 323\n\tSYS_MLOCKALL                       = 324\n\tSYS_MUNLOCKALL                     = 325\n\tSYS_ISSETUGID                      = 327\n\tSYS___PTHREAD_KILL                 = 328\n\tSYS___PTHREAD_SIGMASK              = 329\n\tSYS___SIGWAIT                      = 330\n\tSYS___DISABLE_THREADSIGNAL         = 331\n\tSYS___PTHREAD_MARKCANCEL           = 332\n\tSYS___PTHREAD_CANCELED             = 333\n\tSYS___SEMWAIT_SIGNAL               = 334\n\tSYS_PROC_INFO                      = 336\n\tSYS_SENDFILE                       = 337\n\tSYS_STAT64                         = 338\n\tSYS_FSTAT64                        = 339\n\tSYS_LSTAT64                        = 340\n\tSYS_STAT64_EXTENDED                = 341\n\tSYS_LSTAT64_EXTENDED               = 342\n\tSYS_FSTAT64_EXTENDED               = 343\n\tSYS_GETDIRENTRIES64                = 344\n\tSYS_STATFS64                       = 345\n\tSYS_FSTATFS64                      = 346\n\tSYS_GETFSSTAT64                    = 347\n\tSYS___PTHREAD_CHDIR                = 348\n\tSYS___PTHREAD_FCHDIR               = 349\n\tSYS_AUDIT                          = 350\n\tSYS_AUDITON                        = 351\n\tSYS_GETAUID                        = 353\n\tSYS_SETAUID                        = 354\n\tSYS_GETAUDIT_ADDR                  = 357\n\tSYS_SETAUDIT_ADDR                  = 358\n\tSYS_AUDITCTL                       = 359\n\tSYS_BSDTHREAD_CREATE               = 360\n\tSYS_BSDTHREAD_TERMINATE            = 361\n\tSYS_KQUEUE                         = 362\n\tSYS_KEVENT                         = 363\n\tSYS_LCHOWN                         = 364\n\tSYS_BSDTHREAD_REGISTER             = 366\n\tSYS_WORKQ_OPEN                     = 367\n\tSYS_WORKQ_KERNRETURN               = 368\n\tSYS_KEVENT64                       = 369\n\tSYS___OLD_SEMWAIT_SIGNAL           = 370\n\tSYS___OLD_SEMWAIT_SIGNAL_NOCANCEL  = 371\n\tSYS_THREAD_SELFID                  = 372\n\tSYS_LEDGER                         = 373\n\tSYS_KEVENT_QOS                     = 374\n\tSYS_KEVENT_ID                      = 375\n\tSYS___MAC_EXECVE                   = 380\n\tSYS___MAC_SYSCALL                  = 381\n\tSYS___MAC_GET_FILE                 = 382\n\tSYS___MAC_SET_FILE                 = 383\n\tSYS___MAC_GET_LINK                 = 384\n\tSYS___MAC_SET_LINK                 = 385\n\tSYS___MAC_GET_PROC                 = 386\n\tSYS___MAC_SET_PROC                 = 387\n\tSYS___MAC_GET_FD                   = 388\n\tSYS___MAC_SET_FD                   = 389\n\tSYS___MAC_GET_PID                  = 390\n\tSYS_PSELECT                        = 394\n\tSYS_PSELECT_NOCANCEL               = 395\n\tSYS_READ_NOCANCEL                  = 396\n\tSYS_WRITE_NOCANCEL                 = 397\n\tSYS_OPEN_NOCANCEL                  = 398\n\tSYS_CLOSE_NOCANCEL                 = 399\n\tSYS_WAIT4_NOCANCEL                 = 400\n\tSYS_RECVMSG_NOCANCEL               = 401\n\tSYS_SENDMSG_NOCANCEL               = 402\n\tSYS_RECVFROM_NOCANCEL              = 403\n\tSYS_ACCEPT_NOCANCEL                = 404\n\tSYS_MSYNC_NOCANCEL                 = 405\n\tSYS_FCNTL_NOCANCEL                 = 406\n\tSYS_SELECT_NOCANCEL                = 407\n\tSYS_FSYNC_NOCANCEL                 = 408\n\tSYS_CONNECT_NOCANCEL               = 409\n\tSYS_SIGSUSPEND_NOCANCEL            = 410\n\tSYS_READV_NOCANCEL                 = 411\n\tSYS_WRITEV_NOCANCEL                = 412\n\tSYS_SENDTO_NOCANCEL                = 413\n\tSYS_PREAD_NOCANCEL                 = 414\n\tSYS_PWRITE_NOCANCEL                = 415\n\tSYS_WAITID_NOCANCEL                = 416\n\tSYS_POLL_NOCANCEL                  = 417\n\tSYS_MSGSND_NOCANCEL                = 418\n\tSYS_MSGRCV_NOCANCEL                = 419\n\tSYS_SEM_WAIT_NOCANCEL              = 420\n\tSYS_AIO_SUSPEND_NOCANCEL           = 421\n\tSYS___SIGWAIT_NOCANCEL             = 422\n\tSYS___SEMWAIT_SIGNAL_NOCANCEL      = 423\n\tSYS___MAC_MOUNT                    = 424\n\tSYS___MAC_GET_MOUNT                = 425\n\tSYS___MAC_GETFSSTAT                = 426\n\tSYS_FSGETPATH                      = 427\n\tSYS_AUDIT_SESSION_SELF             = 428\n\tSYS_AUDIT_SESSION_JOIN             = 429\n\tSYS_FILEPORT_MAKEPORT              = 430\n\tSYS_FILEPORT_MAKEFD                = 431\n\tSYS_AUDIT_SESSION_PORT             = 432\n\tSYS_PID_SUSPEND                    = 433\n\tSYS_PID_RESUME                     = 434\n\tSYS_PID_HIBERNATE                  = 435\n\tSYS_PID_SHUTDOWN_SOCKETS           = 436\n\tSYS_SHARED_REGION_MAP_AND_SLIDE_NP = 438\n\tSYS_KAS_INFO                       = 439\n\tSYS_MEMORYSTATUS_CONTROL           = 440\n\tSYS_GUARDED_OPEN_NP                = 441\n\tSYS_GUARDED_CLOSE_NP               = 442\n\tSYS_GUARDED_KQUEUE_NP              = 443\n\tSYS_CHANGE_FDGUARD_NP              = 444\n\tSYS_USRCTL                         = 445\n\tSYS_PROC_RLIMIT_CONTROL            = 446\n\tSYS_CONNECTX                       = 447\n\tSYS_DISCONNECTX                    = 448\n\tSYS_PEELOFF                        = 449\n\tSYS_SOCKET_DELEGATE                = 450\n\tSYS_TELEMETRY                      = 451\n\tSYS_PROC_UUID_POLICY               = 452\n\tSYS_MEMORYSTATUS_GET_LEVEL         = 453\n\tSYS_SYSTEM_OVERRIDE                = 454\n\tSYS_VFS_PURGE                      = 455\n\tSYS_SFI_CTL                        = 456\n\tSYS_SFI_PIDCTL                     = 457\n\tSYS_COALITION                      = 458\n\tSYS_COALITION_INFO                 = 459\n\tSYS_NECP_MATCH_POLICY              = 460\n\tSYS_GETATTRLISTBULK                = 461\n\tSYS_CLONEFILEAT                    = 462\n\tSYS_OPENAT                         = 463\n\tSYS_OPENAT_NOCANCEL                = 464\n\tSYS_RENAMEAT                       = 465\n\tSYS_FACCESSAT                      = 466\n\tSYS_FCHMODAT                       = 467\n\tSYS_FCHOWNAT                       = 468\n\tSYS_FSTATAT                        = 469\n\tSYS_FSTATAT64                      = 470\n\tSYS_LINKAT                         = 471\n\tSYS_UNLINKAT                       = 472\n\tSYS_READLINKAT                     = 473\n\tSYS_SYMLINKAT                      = 474\n\tSYS_MKDIRAT                        = 475\n\tSYS_GETATTRLISTAT                  = 476\n\tSYS_PROC_TRACE_LOG                 = 477\n\tSYS_BSDTHREAD_CTL                  = 478\n\tSYS_OPENBYID_NP                    = 479\n\tSYS_RECVMSG_X                      = 480\n\tSYS_SENDMSG_X                      = 481\n\tSYS_THREAD_SELFUSAGE               = 482\n\tSYS_CSRCTL                         = 483\n\tSYS_GUARDED_OPEN_DPROTECTED_NP     = 484\n\tSYS_GUARDED_WRITE_NP               = 485\n\tSYS_GUARDED_PWRITE_NP              = 486\n\tSYS_GUARDED_WRITEV_NP              = 487\n\tSYS_RENAMEATX_NP                   = 488\n\tSYS_MREMAP_ENCRYPTED               = 489\n\tSYS_NETAGENT_TRIGGER               = 490\n\tSYS_STACK_SNAPSHOT_WITH_CONFIG     = 491\n\tSYS_MICROSTACKSHOT                 = 492\n\tSYS_GRAB_PGO_DATA                  = 493\n\tSYS_PERSONA                        = 494\n\tSYS_WORK_INTERVAL_CTL              = 499\n\tSYS_GETENTROPY                     = 500\n\tSYS_NECP_OPEN                      = 501\n\tSYS_NECP_CLIENT_ACTION             = 502\n\tSYS___NEXUS_OPEN                   = 503\n\tSYS___NEXUS_REGISTER               = 504\n\tSYS___NEXUS_DEREGISTER             = 505\n\tSYS___NEXUS_CREATE                 = 506\n\tSYS___NEXUS_DESTROY                = 507\n\tSYS___NEXUS_GET_OPT                = 508\n\tSYS___NEXUS_SET_OPT                = 509\n\tSYS___CHANNEL_OPEN                 = 510\n\tSYS___CHANNEL_GET_INFO             = 511\n\tSYS___CHANNEL_SYNC                 = 512\n\tSYS___CHANNEL_GET_OPT              = 513\n\tSYS___CHANNEL_SET_OPT              = 514\n\tSYS_ULOCK_WAIT                     = 515\n\tSYS_ULOCK_WAKE                     = 516\n\tSYS_FCLONEFILEAT                   = 517\n\tSYS_FS_SNAPSHOT                    = 518\n\tSYS_TERMINATE_WITH_PAYLOAD         = 520\n\tSYS_ABORT_WITH_PAYLOAD             = 521\n\tSYS_NECP_SESSION_OPEN              = 522\n\tSYS_NECP_SESSION_ACTION            = 523\n\tSYS_SETATTRLISTAT                  = 524\n\tSYS_NET_QOS_GUIDELINE              = 525\n\tSYS_FMOUNT                         = 526\n\tSYS_NTP_ADJTIME                    = 527\n\tSYS_NTP_GETTIME                    = 528\n\tSYS_OS_FAULT_WITH_PAYLOAD          = 529\n\tSYS_MAXSYSCALL                     = 530\n\tSYS_INVALID                        = 63\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go",
    "content": "// go run mksysnum.go https://gitweb.dragonflybsd.org/dragonfly.git/blob_plain/HEAD:/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && dragonfly\n\npackage unix\n\nconst (\n\tSYS_EXIT  = 1 // { void exit(int rval); }\n\tSYS_FORK  = 2 // { int fork(void); }\n\tSYS_READ  = 3 // { ssize_t read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN  = 5 // { int open(char *path, int flags, int mode); }\n\tSYS_CLOSE = 6 // { int close(int fd); }\n\tSYS_WAIT4 = 7 // { int wait4(int pid, int *status, int options, struct rusage *rusage); } wait4 wait_args int\n\t// SYS_NOSYS = 8;  // { int nosys(void); } __nosys nosys_args int\n\tSYS_LINK                   = 9   // { int link(char *path, char *link); }\n\tSYS_UNLINK                 = 10  // { int unlink(char *path); }\n\tSYS_CHDIR                  = 12  // { int chdir(char *path); }\n\tSYS_FCHDIR                 = 13  // { int fchdir(int fd); }\n\tSYS_MKNOD                  = 14  // { int mknod(char *path, int mode, int dev); }\n\tSYS_CHMOD                  = 15  // { int chmod(char *path, int mode); }\n\tSYS_CHOWN                  = 16  // { int chown(char *path, int uid, int gid); }\n\tSYS_OBREAK                 = 17  // { int obreak(char *nsize); } break obreak_args int\n\tSYS_GETFSSTAT              = 18  // { int getfsstat(struct statfs *buf, long bufsize, int flags); }\n\tSYS_GETPID                 = 20  // { pid_t getpid(void); }\n\tSYS_MOUNT                  = 21  // { int mount(char *type, char *path, int flags, caddr_t data); }\n\tSYS_UNMOUNT                = 22  // { int unmount(char *path, int flags); }\n\tSYS_SETUID                 = 23  // { int setuid(uid_t uid); }\n\tSYS_GETUID                 = 24  // { uid_t getuid(void); }\n\tSYS_GETEUID                = 25  // { uid_t geteuid(void); }\n\tSYS_PTRACE                 = 26  // { int ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG                = 27  // { int recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG                = 28  // { int sendmsg(int s, caddr_t msg, int flags); }\n\tSYS_RECVFROM               = 29  // { int recvfrom(int s, caddr_t buf, size_t len, int flags, caddr_t from, int *fromlenaddr); }\n\tSYS_ACCEPT                 = 30  // { int accept(int s, caddr_t name, int *anamelen); }\n\tSYS_GETPEERNAME            = 31  // { int getpeername(int fdes, caddr_t asa, int *alen); }\n\tSYS_GETSOCKNAME            = 32  // { int getsockname(int fdes, caddr_t asa, int *alen); }\n\tSYS_ACCESS                 = 33  // { int access(char *path, int flags); }\n\tSYS_CHFLAGS                = 34  // { int chflags(const char *path, u_long flags); }\n\tSYS_FCHFLAGS               = 35  // { int fchflags(int fd, u_long flags); }\n\tSYS_SYNC                   = 36  // { int sync(void); }\n\tSYS_KILL                   = 37  // { int kill(int pid, int signum); }\n\tSYS_GETPPID                = 39  // { pid_t getppid(void); }\n\tSYS_DUP                    = 41  // { int dup(int fd); }\n\tSYS_PIPE                   = 42  // { int pipe(void); }\n\tSYS_GETEGID                = 43  // { gid_t getegid(void); }\n\tSYS_PROFIL                 = 44  // { int profil(caddr_t samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE                 = 45  // { int ktrace(const char *fname, int ops, int facs, int pid); }\n\tSYS_GETGID                 = 47  // { gid_t getgid(void); }\n\tSYS_GETLOGIN               = 49  // { int getlogin(char *namebuf, size_t namelen); }\n\tSYS_SETLOGIN               = 50  // { int setlogin(char *namebuf); }\n\tSYS_ACCT                   = 51  // { int acct(char *path); }\n\tSYS_SIGALTSTACK            = 53  // { int sigaltstack(stack_t *ss, stack_t *oss); }\n\tSYS_IOCTL                  = 54  // { int ioctl(int fd, u_long com, caddr_t data); }\n\tSYS_REBOOT                 = 55  // { int reboot(int opt); }\n\tSYS_REVOKE                 = 56  // { int revoke(char *path); }\n\tSYS_SYMLINK                = 57  // { int symlink(char *path, char *link); }\n\tSYS_READLINK               = 58  // { int readlink(char *path, char *buf, int count); }\n\tSYS_EXECVE                 = 59  // { int execve(char *fname, char **argv, char **envv); }\n\tSYS_UMASK                  = 60  // { int umask(int newmask); } umask umask_args int\n\tSYS_CHROOT                 = 61  // { int chroot(char *path); }\n\tSYS_MSYNC                  = 65  // { int msync(void *addr, size_t len, int flags); }\n\tSYS_VFORK                  = 66  // { pid_t vfork(void); }\n\tSYS_SBRK                   = 69  // { caddr_t sbrk(size_t incr); }\n\tSYS_SSTK                   = 70  // { int sstk(size_t incr); }\n\tSYS_MUNMAP                 = 73  // { int munmap(void *addr, size_t len); }\n\tSYS_MPROTECT               = 74  // { int mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE                = 75  // { int madvise(void *addr, size_t len, int behav); }\n\tSYS_MINCORE                = 78  // { int mincore(const void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS              = 79  // { int getgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS              = 80  // { int setgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_GETPGRP                = 81  // { int getpgrp(void); }\n\tSYS_SETPGID                = 82  // { int setpgid(int pid, int pgid); }\n\tSYS_SETITIMER              = 83  // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_SWAPON                 = 85  // { int swapon(char *name); }\n\tSYS_GETITIMER              = 86  // { int getitimer(u_int which, struct itimerval *itv); }\n\tSYS_GETDTABLESIZE          = 89  // { int getdtablesize(void); }\n\tSYS_DUP2                   = 90  // { int dup2(int from, int to); }\n\tSYS_FCNTL                  = 92  // { int fcntl(int fd, int cmd, long arg); }\n\tSYS_SELECT                 = 93  // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_FSYNC                  = 95  // { int fsync(int fd); }\n\tSYS_SETPRIORITY            = 96  // { int setpriority(int which, int who, int prio); }\n\tSYS_SOCKET                 = 97  // { int socket(int domain, int type, int protocol); }\n\tSYS_CONNECT                = 98  // { int connect(int s, caddr_t name, int namelen); }\n\tSYS_GETPRIORITY            = 100 // { int getpriority(int which, int who); }\n\tSYS_BIND                   = 104 // { int bind(int s, caddr_t name, int namelen); }\n\tSYS_SETSOCKOPT             = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); }\n\tSYS_LISTEN                 = 106 // { int listen(int s, int backlog); }\n\tSYS_GETTIMEOFDAY           = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_GETRUSAGE              = 117 // { int getrusage(int who, struct rusage *rusage); }\n\tSYS_GETSOCKOPT             = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); }\n\tSYS_READV                  = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_WRITEV                 = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_SETTIMEOFDAY           = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); }\n\tSYS_FCHOWN                 = 123 // { int fchown(int fd, int uid, int gid); }\n\tSYS_FCHMOD                 = 124 // { int fchmod(int fd, int mode); }\n\tSYS_SETREUID               = 126 // { int setreuid(int ruid, int euid); }\n\tSYS_SETREGID               = 127 // { int setregid(int rgid, int egid); }\n\tSYS_RENAME                 = 128 // { int rename(char *from, char *to); }\n\tSYS_FLOCK                  = 131 // { int flock(int fd, int how); }\n\tSYS_MKFIFO                 = 132 // { int mkfifo(char *path, int mode); }\n\tSYS_SENDTO                 = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); }\n\tSYS_SHUTDOWN               = 134 // { int shutdown(int s, int how); }\n\tSYS_SOCKETPAIR             = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR                  = 136 // { int mkdir(char *path, int mode); }\n\tSYS_RMDIR                  = 137 // { int rmdir(char *path); }\n\tSYS_UTIMES                 = 138 // { int utimes(char *path, struct timeval *tptr); }\n\tSYS_ADJTIME                = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); }\n\tSYS_SETSID                 = 147 // { int setsid(void); }\n\tSYS_QUOTACTL               = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); }\n\tSYS_STATFS                 = 157 // { int statfs(char *path, struct statfs *buf); }\n\tSYS_FSTATFS                = 158 // { int fstatfs(int fd, struct statfs *buf); }\n\tSYS_GETFH                  = 161 // { int getfh(char *fname, struct fhandle *fhp); }\n\tSYS_SYSARCH                = 165 // { int sysarch(int op, char *parms); }\n\tSYS_RTPRIO                 = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); }\n\tSYS_EXTPREAD               = 173 // { ssize_t extpread(int fd, void *buf, size_t nbyte, int flags, off_t offset); }\n\tSYS_EXTPWRITE              = 174 // { ssize_t extpwrite(int fd, const void *buf, size_t nbyte, int flags, off_t offset); }\n\tSYS_NTP_ADJTIME            = 176 // { int ntp_adjtime(struct timex *tp); }\n\tSYS_SETGID                 = 181 // { int setgid(gid_t gid); }\n\tSYS_SETEGID                = 182 // { int setegid(gid_t egid); }\n\tSYS_SETEUID                = 183 // { int seteuid(uid_t euid); }\n\tSYS_PATHCONF               = 191 // { int pathconf(char *path, int name); }\n\tSYS_FPATHCONF              = 192 // { int fpathconf(int fd, int name); }\n\tSYS_GETRLIMIT              = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int\n\tSYS_SETRLIMIT              = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int\n\tSYS_MMAP                   = 197 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, int pad, off_t pos); }\n\tSYS_LSEEK                  = 199 // { off_t lseek(int fd, int pad, off_t offset, int whence); }\n\tSYS_TRUNCATE               = 200 // { int truncate(char *path, int pad, off_t length); }\n\tSYS_FTRUNCATE              = 201 // { int ftruncate(int fd, int pad, off_t length); }\n\tSYS___SYSCTL               = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int\n\tSYS_MLOCK                  = 203 // { int mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK                = 204 // { int munlock(const void *addr, size_t len); }\n\tSYS_UNDELETE               = 205 // { int undelete(char *path); }\n\tSYS_FUTIMES                = 206 // { int futimes(int fd, struct timeval *tptr); }\n\tSYS_GETPGID                = 207 // { int getpgid(pid_t pid); }\n\tSYS_POLL                   = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS___SEMCTL               = 220 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_SEMGET                 = 221 // { int semget(key_t key, int nsems, int semflg); }\n\tSYS_SEMOP                  = 222 // { int semop(int semid, struct sembuf *sops, u_int nsops); }\n\tSYS_MSGCTL                 = 224 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_MSGGET                 = 225 // { int msgget(key_t key, int msgflg); }\n\tSYS_MSGSND                 = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV                 = 227 // { int msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT                  = 228 // { caddr_t shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMCTL                 = 229 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_SHMDT                  = 230 // { int shmdt(const void *shmaddr); }\n\tSYS_SHMGET                 = 231 // { int shmget(key_t key, size_t size, int shmflg); }\n\tSYS_CLOCK_GETTIME          = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME          = 233 // { int clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES           = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_NANOSLEEP              = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_MINHERIT               = 250 // { int minherit(void *addr, size_t len, int inherit); }\n\tSYS_RFORK                  = 251 // { int rfork(int flags); }\n\tSYS_OPENBSD_POLL           = 252 // { int openbsd_poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_ISSETUGID              = 253 // { int issetugid(void); }\n\tSYS_LCHOWN                 = 254 // { int lchown(char *path, int uid, int gid); }\n\tSYS_LCHMOD                 = 274 // { int lchmod(char *path, mode_t mode); }\n\tSYS_LUTIMES                = 276 // { int lutimes(char *path, struct timeval *tptr); }\n\tSYS_EXTPREADV              = 289 // { ssize_t extpreadv(int fd, const struct iovec *iovp, int iovcnt, int flags, off_t offset); }\n\tSYS_EXTPWRITEV             = 290 // { ssize_t extpwritev(int fd, const struct iovec *iovp, int iovcnt, int flags, off_t offset); }\n\tSYS_FHSTATFS               = 297 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); }\n\tSYS_FHOPEN                 = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); }\n\tSYS_MODNEXT                = 300 // { int modnext(int modid); }\n\tSYS_MODSTAT                = 301 // { int modstat(int modid, struct module_stat* stat); }\n\tSYS_MODFNEXT               = 302 // { int modfnext(int modid); }\n\tSYS_MODFIND                = 303 // { int modfind(const char *name); }\n\tSYS_KLDLOAD                = 304 // { int kldload(const char *file); }\n\tSYS_KLDUNLOAD              = 305 // { int kldunload(int fileid); }\n\tSYS_KLDFIND                = 306 // { int kldfind(const char *file); }\n\tSYS_KLDNEXT                = 307 // { int kldnext(int fileid); }\n\tSYS_KLDSTAT                = 308 // { int kldstat(int fileid, struct kld_file_stat* stat); }\n\tSYS_KLDFIRSTMOD            = 309 // { int kldfirstmod(int fileid); }\n\tSYS_GETSID                 = 310 // { int getsid(pid_t pid); }\n\tSYS_SETRESUID              = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_SETRESGID              = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_AIO_RETURN             = 314 // { int aio_return(struct aiocb *aiocbp); }\n\tSYS_AIO_SUSPEND            = 315 // { int aio_suspend(struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); }\n\tSYS_AIO_CANCEL             = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); }\n\tSYS_AIO_ERROR              = 317 // { int aio_error(struct aiocb *aiocbp); }\n\tSYS_AIO_READ               = 318 // { int aio_read(struct aiocb *aiocbp); }\n\tSYS_AIO_WRITE              = 319 // { int aio_write(struct aiocb *aiocbp); }\n\tSYS_LIO_LISTIO             = 320 // { int lio_listio(int mode, struct aiocb * const *acb_list, int nent, struct sigevent *sig); }\n\tSYS_YIELD                  = 321 // { int yield(void); }\n\tSYS_MLOCKALL               = 324 // { int mlockall(int how); }\n\tSYS_MUNLOCKALL             = 325 // { int munlockall(void); }\n\tSYS___GETCWD               = 326 // { int __getcwd(u_char *buf, u_int buflen); }\n\tSYS_SCHED_SETPARAM         = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); }\n\tSYS_SCHED_GETPARAM         = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); }\n\tSYS_SCHED_SETSCHEDULER     = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); }\n\tSYS_SCHED_GETSCHEDULER     = 330 // { int sched_getscheduler (pid_t pid); }\n\tSYS_SCHED_YIELD            = 331 // { int sched_yield (void); }\n\tSYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); }\n\tSYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); }\n\tSYS_SCHED_RR_GET_INTERVAL  = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); }\n\tSYS_UTRACE                 = 335 // { int utrace(const void *addr, size_t len); }\n\tSYS_KLDSYM                 = 337 // { int kldsym(int fileid, int cmd, void *data); }\n\tSYS_JAIL                   = 338 // { int jail(struct jail *jail); }\n\tSYS_SIGPROCMASK            = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); }\n\tSYS_SIGSUSPEND             = 341 // { int sigsuspend(const sigset_t *sigmask); }\n\tSYS_SIGACTION              = 342 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); }\n\tSYS_SIGPENDING             = 343 // { int sigpending(sigset_t *set); }\n\tSYS_SIGRETURN              = 344 // { int sigreturn(ucontext_t *sigcntxp); }\n\tSYS_SIGTIMEDWAIT           = 345 // { int sigtimedwait(const sigset_t *set,siginfo_t *info, const struct timespec *timeout); }\n\tSYS_SIGWAITINFO            = 346 // { int sigwaitinfo(const sigset_t *set,siginfo_t *info); }\n\tSYS___ACL_GET_FILE         = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FILE         = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_GET_FD           = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FD           = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_DELETE_FILE      = 351 // { int __acl_delete_file(const char *path, acl_type_t type); }\n\tSYS___ACL_DELETE_FD        = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); }\n\tSYS___ACL_ACLCHECK_FILE    = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_ACLCHECK_FD      = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS_EXTATTRCTL             = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FILE       = 356 // { int extattr_set_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FILE       = 357 // { int extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FILE    = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_AIO_WAITCOMPLETE       = 359 // { int aio_waitcomplete(struct aiocb **aiocbp, struct timespec *timeout); }\n\tSYS_GETRESUID              = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_GETRESGID              = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_KQUEUE                 = 362 // { int kqueue(void); }\n\tSYS_KEVENT                 = 363 // { int kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_KENV                   = 390 // { int kenv(int what, const char *name, char *value, int len); }\n\tSYS_LCHFLAGS               = 391 // { int lchflags(const char *path, u_long flags); }\n\tSYS_UUIDGEN                = 392 // { int uuidgen(struct uuid *store, int count); }\n\tSYS_SENDFILE               = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); }\n\tSYS_VARSYM_SET             = 450 // { int varsym_set(int level, const char *name, const char *data); }\n\tSYS_VARSYM_GET             = 451 // { int varsym_get(int mask, const char *wild, char *buf, int bufsize); }\n\tSYS_VARSYM_LIST            = 452 // { int varsym_list(int level, char *buf, int maxsize, int *marker); }\n\tSYS_EXEC_SYS_REGISTER      = 465 // { int exec_sys_register(void *entry); }\n\tSYS_EXEC_SYS_UNREGISTER    = 466 // { int exec_sys_unregister(int id); }\n\tSYS_SYS_CHECKPOINT         = 467 // { int sys_checkpoint(int type, int fd, pid_t pid, int retval); }\n\tSYS_MOUNTCTL               = 468 // { int mountctl(const char *path, int op, int fd, const void *ctl, int ctllen, void *buf, int buflen); }\n\tSYS_UMTX_SLEEP             = 469 // { int umtx_sleep(volatile const int *ptr, int value, int timeout); }\n\tSYS_UMTX_WAKEUP            = 470 // { int umtx_wakeup(volatile const int *ptr, int count); }\n\tSYS_JAIL_ATTACH            = 471 // { int jail_attach(int jid); }\n\tSYS_SET_TLS_AREA           = 472 // { int set_tls_area(int which, struct tls_info *info, size_t infosize); }\n\tSYS_GET_TLS_AREA           = 473 // { int get_tls_area(int which, struct tls_info *info, size_t infosize); }\n\tSYS_CLOSEFROM              = 474 // { int closefrom(int fd); }\n\tSYS_STAT                   = 475 // { int stat(const char *path, struct stat *ub); }\n\tSYS_FSTAT                  = 476 // { int fstat(int fd, struct stat *sb); }\n\tSYS_LSTAT                  = 477 // { int lstat(const char *path, struct stat *ub); }\n\tSYS_FHSTAT                 = 478 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); }\n\tSYS_GETDIRENTRIES          = 479 // { int getdirentries(int fd, char *buf, u_int count, long *basep); }\n\tSYS_GETDENTS               = 480 // { int getdents(int fd, char *buf, size_t count); }\n\tSYS_USCHED_SET             = 481 // { int usched_set(pid_t pid, int cmd, void *data, int bytes); }\n\tSYS_EXTACCEPT              = 482 // { int extaccept(int s, int flags, caddr_t name, int *anamelen); }\n\tSYS_EXTCONNECT             = 483 // { int extconnect(int s, int flags, caddr_t name, int namelen); }\n\tSYS_MCONTROL               = 485 // { int mcontrol(void *addr, size_t len, int behav, off_t value); }\n\tSYS_VMSPACE_CREATE         = 486 // { int vmspace_create(void *id, int type, void *data); }\n\tSYS_VMSPACE_DESTROY        = 487 // { int vmspace_destroy(void *id); }\n\tSYS_VMSPACE_CTL            = 488 // { int vmspace_ctl(void *id, int cmd, \t\tstruct trapframe *tframe,\tstruct vextframe *vframe); }\n\tSYS_VMSPACE_MMAP           = 489 // { int vmspace_mmap(void *id, void *addr, size_t len, int prot, int flags, int fd, off_t offset); }\n\tSYS_VMSPACE_MUNMAP         = 490 // { int vmspace_munmap(void *id, void *addr,\tsize_t len); }\n\tSYS_VMSPACE_MCONTROL       = 491 // { int vmspace_mcontrol(void *id, void *addr, \tsize_t len, int behav, off_t value); }\n\tSYS_VMSPACE_PREAD          = 492 // { ssize_t vmspace_pread(void *id, void *buf, size_t nbyte, int flags, off_t offset); }\n\tSYS_VMSPACE_PWRITE         = 493 // { ssize_t vmspace_pwrite(void *id, const void *buf, size_t nbyte, int flags, off_t offset); }\n\tSYS_EXTEXIT                = 494 // { void extexit(int how, int status, void *addr); }\n\tSYS_LWP_CREATE             = 495 // { int lwp_create(struct lwp_params *params); }\n\tSYS_LWP_GETTID             = 496 // { lwpid_t lwp_gettid(void); }\n\tSYS_LWP_KILL               = 497 // { int lwp_kill(pid_t pid, lwpid_t tid, int signum); }\n\tSYS_LWP_RTPRIO             = 498 // { int lwp_rtprio(int function, pid_t pid, lwpid_t tid, struct rtprio *rtp); }\n\tSYS_PSELECT                = 499 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts,    const sigset_t *sigmask); }\n\tSYS_STATVFS                = 500 // { int statvfs(const char *path, struct statvfs *buf); }\n\tSYS_FSTATVFS               = 501 // { int fstatvfs(int fd, struct statvfs *buf); }\n\tSYS_FHSTATVFS              = 502 // { int fhstatvfs(const struct fhandle *u_fhp, struct statvfs *buf); }\n\tSYS_GETVFSSTAT             = 503 // { int getvfsstat(struct statfs *buf,          struct statvfs *vbuf, long vbufsize, int flags); }\n\tSYS_OPENAT                 = 504 // { int openat(int fd, char *path, int flags, int mode); }\n\tSYS_FSTATAT                = 505 // { int fstatat(int fd, char *path, \tstruct stat *sb, int flags); }\n\tSYS_FCHMODAT               = 506 // { int fchmodat(int fd, char *path, int mode, int flags); }\n\tSYS_FCHOWNAT               = 507 // { int fchownat(int fd, char *path, int uid, int gid, int flags); }\n\tSYS_UNLINKAT               = 508 // { int unlinkat(int fd, char *path, int flags); }\n\tSYS_FACCESSAT              = 509 // { int faccessat(int fd, char *path, int amode, int flags); }\n\tSYS_MQ_OPEN                = 510 // { mqd_t mq_open(const char * name, int oflag, mode_t mode, struct mq_attr *attr); }\n\tSYS_MQ_CLOSE               = 511 // { int mq_close(mqd_t mqdes); }\n\tSYS_MQ_UNLINK              = 512 // { int mq_unlink(const char *name); }\n\tSYS_MQ_GETATTR             = 513 // { int mq_getattr(mqd_t mqdes, struct mq_attr *mqstat); }\n\tSYS_MQ_SETATTR             = 514 // { int mq_setattr(mqd_t mqdes, const struct mq_attr *mqstat, struct mq_attr *omqstat); }\n\tSYS_MQ_NOTIFY              = 515 // { int mq_notify(mqd_t mqdes, const struct sigevent *notification); }\n\tSYS_MQ_SEND                = 516 // { int mq_send(mqd_t mqdes, const char *msg_ptr, size_t msg_len, unsigned msg_prio); }\n\tSYS_MQ_RECEIVE             = 517 // { ssize_t mq_receive(mqd_t mqdes, char *msg_ptr, size_t msg_len, unsigned *msg_prio); }\n\tSYS_MQ_TIMEDSEND           = 518 // { int mq_timedsend(mqd_t mqdes, const char *msg_ptr, size_t msg_len, unsigned msg_prio, const struct timespec *abs_timeout); }\n\tSYS_MQ_TIMEDRECEIVE        = 519 // { ssize_t mq_timedreceive(mqd_t mqdes, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); }\n\tSYS_IOPRIO_SET             = 520 // { int ioprio_set(int which, int who, int prio); }\n\tSYS_IOPRIO_GET             = 521 // { int ioprio_get(int which, int who); }\n\tSYS_CHROOT_KERNEL          = 522 // { int chroot_kernel(char *path); }\n\tSYS_RENAMEAT               = 523 // { int renameat(int oldfd, char *old, int newfd, char *new); }\n\tSYS_MKDIRAT                = 524 // { int mkdirat(int fd, char *path, mode_t mode); }\n\tSYS_MKFIFOAT               = 525 // { int mkfifoat(int fd, char *path, mode_t mode); }\n\tSYS_MKNODAT                = 526 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); }\n\tSYS_READLINKAT             = 527 // { int readlinkat(int fd, char *path, char *buf, size_t bufsize); }\n\tSYS_SYMLINKAT              = 528 // { int symlinkat(char *path1, int fd, char *path2); }\n\tSYS_SWAPOFF                = 529 // { int swapoff(char *name); }\n\tSYS_VQUOTACTL              = 530 // { int vquotactl(const char *path, struct plistref *pref); }\n\tSYS_LINKAT                 = 531 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flags); }\n\tSYS_EACCESS                = 532 // { int eaccess(char *path, int flags); }\n\tSYS_LPATHCONF              = 533 // { int lpathconf(char *path, int name); }\n\tSYS_VMM_GUEST_CTL          = 534 // { int vmm_guest_ctl(int op, struct vmm_guest_options *options); }\n\tSYS_VMM_GUEST_SYNC_ADDR    = 535 // { int vmm_guest_sync_addr(long *dstaddr, long *srcaddr); }\n\tSYS_PROCCTL                = 536 // { int procctl(idtype_t idtype, id_t id, int cmd, void *data); }\n\tSYS_CHFLAGSAT              = 537 // { int chflagsat(int fd, const char *path, u_long flags, int atflags);}\n\tSYS_PIPE2                  = 538 // { int pipe2(int *fildes, int flags); }\n\tSYS_UTIMENSAT              = 539 // { int utimensat(int fd, const char *path, const struct timespec *ts, int flags); }\n\tSYS_FUTIMENS               = 540 // { int futimens(int fd, const struct timespec *ts); }\n\tSYS_ACCEPT4                = 541 // { int accept4(int s, caddr_t name, int *anamelen, int flags); }\n\tSYS_LWP_SETNAME            = 542 // { int lwp_setname(lwpid_t tid, const char *name); }\n\tSYS_PPOLL                  = 543 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *sigmask); }\n\tSYS_LWP_SETAFFINITY        = 544 // { int lwp_setaffinity(pid_t pid, lwpid_t tid, const cpumask_t *mask); }\n\tSYS_LWP_GETAFFINITY        = 545 // { int lwp_getaffinity(pid_t pid, lwpid_t tid, cpumask_t *mask); }\n\tSYS_LWP_CREATE2            = 546 // { int lwp_create2(struct lwp_params *params, const cpumask_t *mask); }\n\tSYS_GETCPUCLOCKID          = 547 // { int getcpuclockid(pid_t pid, lwpid_t lwp_id, clockid_t *clock_id); }\n\tSYS_WAIT6                  = 548 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); }\n\tSYS_LWP_GETNAME            = 549 // { int lwp_getname(lwpid_t tid, char *name, size_t len); }\n\tSYS_GETRANDOM              = 550 // { ssize_t getrandom(void *buf, size_t len, unsigned flags); }\n\tSYS___REALPATH             = 551 // { ssize_t __realpath(const char *path, char *buf, size_t len); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go",
    "content": "// go run mksysnum.go https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build 386 && freebsd\n\npackage unix\n\nconst (\n\t// SYS_NOSYS = 0;  // { int nosys(void); } syscall nosys_args int\n\tSYS_EXIT                     = 1   // { void sys_exit(int rval); } exit sys_exit_args void\n\tSYS_FORK                     = 2   // { int fork(void); }\n\tSYS_READ                     = 3   // { ssize_t read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE                    = 4   // { ssize_t write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN                     = 5   // { int open(char *path, int flags, int mode); }\n\tSYS_CLOSE                    = 6   // { int close(int fd); }\n\tSYS_WAIT4                    = 7   // { int wait4(int pid, int *status, int options, struct rusage *rusage); }\n\tSYS_LINK                     = 9   // { int link(char *path, char *link); }\n\tSYS_UNLINK                   = 10  // { int unlink(char *path); }\n\tSYS_CHDIR                    = 12  // { int chdir(char *path); }\n\tSYS_FCHDIR                   = 13  // { int fchdir(int fd); }\n\tSYS_CHMOD                    = 15  // { int chmod(char *path, int mode); }\n\tSYS_CHOWN                    = 16  // { int chown(char *path, int uid, int gid); }\n\tSYS_BREAK                    = 17  // { caddr_t break(char *nsize); }\n\tSYS_GETPID                   = 20  // { pid_t getpid(void); }\n\tSYS_MOUNT                    = 21  // { int mount(char *type, char *path, int flags, caddr_t data); }\n\tSYS_UNMOUNT                  = 22  // { int unmount(char *path, int flags); }\n\tSYS_SETUID                   = 23  // { int setuid(uid_t uid); }\n\tSYS_GETUID                   = 24  // { uid_t getuid(void); }\n\tSYS_GETEUID                  = 25  // { uid_t geteuid(void); }\n\tSYS_PTRACE                   = 26  // { int ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG                  = 27  // { int recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG                  = 28  // { int sendmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_RECVFROM                 = 29  // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); }\n\tSYS_ACCEPT                   = 30  // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); }\n\tSYS_GETPEERNAME              = 31  // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }\n\tSYS_GETSOCKNAME              = 32  // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }\n\tSYS_ACCESS                   = 33  // { int access(char *path, int amode); }\n\tSYS_CHFLAGS                  = 34  // { int chflags(const char *path, u_long flags); }\n\tSYS_FCHFLAGS                 = 35  // { int fchflags(int fd, u_long flags); }\n\tSYS_SYNC                     = 36  // { int sync(void); }\n\tSYS_KILL                     = 37  // { int kill(int pid, int signum); }\n\tSYS_GETPPID                  = 39  // { pid_t getppid(void); }\n\tSYS_DUP                      = 41  // { int dup(u_int fd); }\n\tSYS_GETEGID                  = 43  // { gid_t getegid(void); }\n\tSYS_PROFIL                   = 44  // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); }\n\tSYS_KTRACE                   = 45  // { int ktrace(const char *fname, int ops, int facs, int pid); }\n\tSYS_GETGID                   = 47  // { gid_t getgid(void); }\n\tSYS_GETLOGIN                 = 49  // { int getlogin(char *namebuf, u_int namelen); }\n\tSYS_SETLOGIN                 = 50  // { int setlogin(char *namebuf); }\n\tSYS_ACCT                     = 51  // { int acct(char *path); }\n\tSYS_SIGALTSTACK              = 53  // { int sigaltstack(stack_t *ss, stack_t *oss); }\n\tSYS_IOCTL                    = 54  // { int ioctl(int fd, u_long com, caddr_t data); }\n\tSYS_REBOOT                   = 55  // { int reboot(int opt); }\n\tSYS_REVOKE                   = 56  // { int revoke(char *path); }\n\tSYS_SYMLINK                  = 57  // { int symlink(char *path, char *link); }\n\tSYS_READLINK                 = 58  // { ssize_t readlink(char *path, char *buf, size_t count); }\n\tSYS_EXECVE                   = 59  // { int execve(char *fname, char **argv, char **envv); }\n\tSYS_UMASK                    = 60  // { int umask(int newmask); }\n\tSYS_CHROOT                   = 61  // { int chroot(char *path); }\n\tSYS_MSYNC                    = 65  // { int msync(void *addr, size_t len, int flags); }\n\tSYS_VFORK                    = 66  // { int vfork(void); }\n\tSYS_SBRK                     = 69  // { int sbrk(int incr); }\n\tSYS_SSTK                     = 70  // { int sstk(int incr); }\n\tSYS_MUNMAP                   = 73  // { int munmap(void *addr, size_t len); }\n\tSYS_MPROTECT                 = 74  // { int mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE                  = 75  // { int madvise(void *addr, size_t len, int behav); }\n\tSYS_MINCORE                  = 78  // { int mincore(const void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS                = 79  // { int getgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS                = 80  // { int setgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_GETPGRP                  = 81  // { int getpgrp(void); }\n\tSYS_SETPGID                  = 82  // { int setpgid(int pid, int pgid); }\n\tSYS_SETITIMER                = 83  // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_SWAPON                   = 85  // { int swapon(char *name); }\n\tSYS_GETITIMER                = 86  // { int getitimer(u_int which, struct itimerval *itv); }\n\tSYS_GETDTABLESIZE            = 89  // { int getdtablesize(void); }\n\tSYS_DUP2                     = 90  // { int dup2(u_int from, u_int to); }\n\tSYS_FCNTL                    = 92  // { int fcntl(int fd, int cmd, long arg); }\n\tSYS_SELECT                   = 93  // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_FSYNC                    = 95  // { int fsync(int fd); }\n\tSYS_SETPRIORITY              = 96  // { int setpriority(int which, int who, int prio); }\n\tSYS_SOCKET                   = 97  // { int socket(int domain, int type, int protocol); }\n\tSYS_CONNECT                  = 98  // { int connect(int s, caddr_t name, int namelen); }\n\tSYS_GETPRIORITY              = 100 // { int getpriority(int which, int who); }\n\tSYS_BIND                     = 104 // { int bind(int s, caddr_t name, int namelen); }\n\tSYS_SETSOCKOPT               = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); }\n\tSYS_LISTEN                   = 106 // { int listen(int s, int backlog); }\n\tSYS_GETTIMEOFDAY             = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_GETRUSAGE                = 117 // { int getrusage(int who, struct rusage *rusage); }\n\tSYS_GETSOCKOPT               = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); }\n\tSYS_READV                    = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_WRITEV                   = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_SETTIMEOFDAY             = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); }\n\tSYS_FCHOWN                   = 123 // { int fchown(int fd, int uid, int gid); }\n\tSYS_FCHMOD                   = 124 // { int fchmod(int fd, int mode); }\n\tSYS_SETREUID                 = 126 // { int setreuid(int ruid, int euid); }\n\tSYS_SETREGID                 = 127 // { int setregid(int rgid, int egid); }\n\tSYS_RENAME                   = 128 // { int rename(char *from, char *to); }\n\tSYS_FLOCK                    = 131 // { int flock(int fd, int how); }\n\tSYS_MKFIFO                   = 132 // { int mkfifo(char *path, int mode); }\n\tSYS_SENDTO                   = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); }\n\tSYS_SHUTDOWN                 = 134 // { int shutdown(int s, int how); }\n\tSYS_SOCKETPAIR               = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR                    = 136 // { int mkdir(char *path, int mode); }\n\tSYS_RMDIR                    = 137 // { int rmdir(char *path); }\n\tSYS_UTIMES                   = 138 // { int utimes(char *path, struct timeval *tptr); }\n\tSYS_ADJTIME                  = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); }\n\tSYS_SETSID                   = 147 // { int setsid(void); }\n\tSYS_QUOTACTL                 = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); }\n\tSYS_NLM_SYSCALL              = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); }\n\tSYS_NFSSVC                   = 155 // { int nfssvc(int flag, caddr_t argp); }\n\tSYS_LGETFH                   = 160 // { int lgetfh(char *fname, struct fhandle *fhp); }\n\tSYS_GETFH                    = 161 // { int getfh(char *fname, struct fhandle *fhp); }\n\tSYS_SYSARCH                  = 165 // { int sysarch(int op, char *parms); }\n\tSYS_RTPRIO                   = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); }\n\tSYS_SEMSYS                   = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); }\n\tSYS_MSGSYS                   = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); }\n\tSYS_SHMSYS                   = 171 // { int shmsys(int which, int a2, int a3, int a4); }\n\tSYS_SETFIB                   = 175 // { int setfib(int fibnum); }\n\tSYS_NTP_ADJTIME              = 176 // { int ntp_adjtime(struct timex *tp); }\n\tSYS_SETGID                   = 181 // { int setgid(gid_t gid); }\n\tSYS_SETEGID                  = 182 // { int setegid(gid_t egid); }\n\tSYS_SETEUID                  = 183 // { int seteuid(uid_t euid); }\n\tSYS_PATHCONF                 = 191 // { int pathconf(char *path, int name); }\n\tSYS_FPATHCONF                = 192 // { int fpathconf(int fd, int name); }\n\tSYS_GETRLIMIT                = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int\n\tSYS_SETRLIMIT                = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int\n\tSYS___SYSCTL                 = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int\n\tSYS_MLOCK                    = 203 // { int mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK                  = 204 // { int munlock(const void *addr, size_t len); }\n\tSYS_UNDELETE                 = 205 // { int undelete(char *path); }\n\tSYS_FUTIMES                  = 206 // { int futimes(int fd, struct timeval *tptr); }\n\tSYS_GETPGID                  = 207 // { int getpgid(pid_t pid); }\n\tSYS_POLL                     = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_SEMGET                   = 221 // { int semget(key_t key, int nsems, int semflg); }\n\tSYS_SEMOP                    = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_MSGGET                   = 225 // { int msgget(key_t key, int msgflg); }\n\tSYS_MSGSND                   = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV                   = 227 // { ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT                    = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT                    = 230 // { int shmdt(const void *shmaddr); }\n\tSYS_SHMGET                   = 231 // { int shmget(key_t key, size_t size, int shmflg); }\n\tSYS_CLOCK_GETTIME            = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME            = 233 // { int clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES             = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_KTIMER_CREATE            = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); }\n\tSYS_KTIMER_DELETE            = 236 // { int ktimer_delete(int timerid); }\n\tSYS_KTIMER_SETTIME           = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }\n\tSYS_KTIMER_GETTIME           = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); }\n\tSYS_KTIMER_GETOVERRUN        = 239 // { int ktimer_getoverrun(int timerid); }\n\tSYS_NANOSLEEP                = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FFCLOCK_GETCOUNTER       = 241 // { int ffclock_getcounter(ffcounter *ffcount); }\n\tSYS_FFCLOCK_SETESTIMATE      = 242 // { int ffclock_setestimate(struct ffclock_estimate *cest); }\n\tSYS_FFCLOCK_GETESTIMATE      = 243 // { int ffclock_getestimate(struct ffclock_estimate *cest); }\n\tSYS_CLOCK_NANOSLEEP          = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_CLOCK_GETCPUCLOCKID2     = 247 // { int clock_getcpuclockid2(id_t id, int which, clockid_t *clock_id); }\n\tSYS_NTP_GETTIME              = 248 // { int ntp_gettime(struct ntptimeval *ntvp); }\n\tSYS_MINHERIT                 = 250 // { int minherit(void *addr, size_t len, int inherit); }\n\tSYS_RFORK                    = 251 // { int rfork(int flags); }\n\tSYS_ISSETUGID                = 253 // { int issetugid(void); }\n\tSYS_LCHOWN                   = 254 // { int lchown(char *path, int uid, int gid); }\n\tSYS_AIO_READ                 = 255 // { int aio_read(struct aiocb *aiocbp); }\n\tSYS_AIO_WRITE                = 256 // { int aio_write(struct aiocb *aiocbp); }\n\tSYS_LIO_LISTIO               = 257 // { int lio_listio(int mode, struct aiocb* const *acb_list, int nent, struct sigevent *sig); }\n\tSYS_LCHMOD                   = 274 // { int lchmod(char *path, mode_t mode); }\n\tSYS_LUTIMES                  = 276 // { int lutimes(char *path, struct timeval *tptr); }\n\tSYS_PREADV                   = 289 // { ssize_t preadv(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }\n\tSYS_PWRITEV                  = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }\n\tSYS_FHOPEN                   = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); }\n\tSYS_MODNEXT                  = 300 // { int modnext(int modid); }\n\tSYS_MODSTAT                  = 301 // { int modstat(int modid, struct module_stat* stat); }\n\tSYS_MODFNEXT                 = 302 // { int modfnext(int modid); }\n\tSYS_MODFIND                  = 303 // { int modfind(const char *name); }\n\tSYS_KLDLOAD                  = 304 // { int kldload(const char *file); }\n\tSYS_KLDUNLOAD                = 305 // { int kldunload(int fileid); }\n\tSYS_KLDFIND                  = 306 // { int kldfind(const char *file); }\n\tSYS_KLDNEXT                  = 307 // { int kldnext(int fileid); }\n\tSYS_KLDSTAT                  = 308 // { int kldstat(int fileid, struct kld_file_stat *stat); }\n\tSYS_KLDFIRSTMOD              = 309 // { int kldfirstmod(int fileid); }\n\tSYS_GETSID                   = 310 // { int getsid(pid_t pid); }\n\tSYS_SETRESUID                = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_SETRESGID                = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_AIO_RETURN               = 314 // { ssize_t aio_return(struct aiocb *aiocbp); }\n\tSYS_AIO_SUSPEND              = 315 // { int aio_suspend(struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); }\n\tSYS_AIO_CANCEL               = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); }\n\tSYS_AIO_ERROR                = 317 // { int aio_error(struct aiocb *aiocbp); }\n\tSYS_YIELD                    = 321 // { int yield(void); }\n\tSYS_MLOCKALL                 = 324 // { int mlockall(int how); }\n\tSYS_MUNLOCKALL               = 325 // { int munlockall(void); }\n\tSYS___GETCWD                 = 326 // { int __getcwd(char *buf, size_t buflen); }\n\tSYS_SCHED_SETPARAM           = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); }\n\tSYS_SCHED_GETPARAM           = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); }\n\tSYS_SCHED_SETSCHEDULER       = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); }\n\tSYS_SCHED_GETSCHEDULER       = 330 // { int sched_getscheduler (pid_t pid); }\n\tSYS_SCHED_YIELD              = 331 // { int sched_yield (void); }\n\tSYS_SCHED_GET_PRIORITY_MAX   = 332 // { int sched_get_priority_max (int policy); }\n\tSYS_SCHED_GET_PRIORITY_MIN   = 333 // { int sched_get_priority_min (int policy); }\n\tSYS_SCHED_RR_GET_INTERVAL    = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); }\n\tSYS_UTRACE                   = 335 // { int utrace(const void *addr, size_t len); }\n\tSYS_KLDSYM                   = 337 // { int kldsym(int fileid, int cmd, void *data); }\n\tSYS_JAIL                     = 338 // { int jail(struct jail *jail); }\n\tSYS_SIGPROCMASK              = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); }\n\tSYS_SIGSUSPEND               = 341 // { int sigsuspend(const sigset_t *sigmask); }\n\tSYS_SIGPENDING               = 343 // { int sigpending(sigset_t *set); }\n\tSYS_SIGTIMEDWAIT             = 345 // { int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); }\n\tSYS_SIGWAITINFO              = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); }\n\tSYS___ACL_GET_FILE           = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FILE           = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_GET_FD             = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FD             = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_DELETE_FILE        = 351 // { int __acl_delete_file(const char *path, acl_type_t type); }\n\tSYS___ACL_DELETE_FD          = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); }\n\tSYS___ACL_ACLCHECK_FILE      = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_ACLCHECK_FD        = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS_EXTATTRCTL               = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FILE         = 356 // { ssize_t extattr_set_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FILE         = 357 // { ssize_t extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FILE      = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_AIO_WAITCOMPLETE         = 359 // { ssize_t aio_waitcomplete(struct aiocb **aiocbp, struct timespec *timeout); }\n\tSYS_GETRESUID                = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_GETRESGID                = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_KQUEUE                   = 362 // { int kqueue(void); }\n\tSYS_EXTATTR_SET_FD           = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FD           = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FD        = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }\n\tSYS___SETUGID                = 374 // { int __setugid(int flag); }\n\tSYS_EACCESS                  = 376 // { int eaccess(char *path, int amode); }\n\tSYS_NMOUNT                   = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS___MAC_GET_PROC           = 384 // { int __mac_get_proc(struct mac *mac_p); }\n\tSYS___MAC_SET_PROC           = 385 // { int __mac_set_proc(struct mac *mac_p); }\n\tSYS___MAC_GET_FD             = 386 // { int __mac_get_fd(int fd, struct mac *mac_p); }\n\tSYS___MAC_GET_FILE           = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); }\n\tSYS___MAC_SET_FD             = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); }\n\tSYS___MAC_SET_FILE           = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); }\n\tSYS_KENV                     = 390 // { int kenv(int what, const char *name, char *value, int len); }\n\tSYS_LCHFLAGS                 = 391 // { int lchflags(const char *path, u_long flags); }\n\tSYS_UUIDGEN                  = 392 // { int uuidgen(struct uuid *store, int count); }\n\tSYS_SENDFILE                 = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); }\n\tSYS_MAC_SYSCALL              = 394 // { int mac_syscall(const char *policy, int call, void *arg); }\n\tSYS_KSEM_CLOSE               = 400 // { int ksem_close(semid_t id); }\n\tSYS_KSEM_POST                = 401 // { int ksem_post(semid_t id); }\n\tSYS_KSEM_WAIT                = 402 // { int ksem_wait(semid_t id); }\n\tSYS_KSEM_TRYWAIT             = 403 // { int ksem_trywait(semid_t id); }\n\tSYS_KSEM_INIT                = 404 // { int ksem_init(semid_t *idp, unsigned int value); }\n\tSYS_KSEM_OPEN                = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); }\n\tSYS_KSEM_UNLINK              = 406 // { int ksem_unlink(const char *name); }\n\tSYS_KSEM_GETVALUE            = 407 // { int ksem_getvalue(semid_t id, int *val); }\n\tSYS_KSEM_DESTROY             = 408 // { int ksem_destroy(semid_t id); }\n\tSYS___MAC_GET_PID            = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); }\n\tSYS___MAC_GET_LINK           = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); }\n\tSYS___MAC_SET_LINK           = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); }\n\tSYS_EXTATTR_SET_LINK         = 412 // { ssize_t extattr_set_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_LINK         = 413 // { ssize_t extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_LINK      = 414 // { int extattr_delete_link(const char *path, int attrnamespace, const char *attrname); }\n\tSYS___MAC_EXECVE             = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); }\n\tSYS_SIGACTION                = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); }\n\tSYS_SIGRETURN                = 417 // { int sigreturn(const struct __ucontext *sigcntxp); }\n\tSYS_GETCONTEXT               = 421 // { int getcontext(struct __ucontext *ucp); }\n\tSYS_SETCONTEXT               = 422 // { int setcontext(const struct __ucontext *ucp); }\n\tSYS_SWAPCONTEXT              = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); }\n\tSYS_SWAPOFF                  = 424 // { int swapoff(const char *name); }\n\tSYS___ACL_GET_LINK           = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_LINK           = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_DELETE_LINK        = 427 // { int __acl_delete_link(const char *path, acl_type_t type); }\n\tSYS___ACL_ACLCHECK_LINK      = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS_SIGWAIT                  = 429 // { int sigwait(const sigset_t *set, int *sig); }\n\tSYS_THR_CREATE               = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); }\n\tSYS_THR_EXIT                 = 431 // { void thr_exit(long *state); }\n\tSYS_THR_SELF                 = 432 // { int thr_self(long *id); }\n\tSYS_THR_KILL                 = 433 // { int thr_kill(long id, int sig); }\n\tSYS_JAIL_ATTACH              = 436 // { int jail_attach(int jid); }\n\tSYS_EXTATTR_LIST_FD          = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_FILE        = 438 // { ssize_t extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_LINK        = 439 // { ssize_t extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_KSEM_TIMEDWAIT           = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); }\n\tSYS_THR_SUSPEND              = 442 // { int thr_suspend(const struct timespec *timeout); }\n\tSYS_THR_WAKE                 = 443 // { int thr_wake(long id); }\n\tSYS_KLDUNLOADF               = 444 // { int kldunloadf(int fileid, int flags); }\n\tSYS_AUDIT                    = 445 // { int audit(const void *record, u_int length); }\n\tSYS_AUDITON                  = 446 // { int auditon(int cmd, void *data, u_int length); }\n\tSYS_GETAUID                  = 447 // { int getauid(uid_t *auid); }\n\tSYS_SETAUID                  = 448 // { int setauid(uid_t *auid); }\n\tSYS_GETAUDIT                 = 449 // { int getaudit(struct auditinfo *auditinfo); }\n\tSYS_SETAUDIT                 = 450 // { int setaudit(struct auditinfo *auditinfo); }\n\tSYS_GETAUDIT_ADDR            = 451 // { int getaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); }\n\tSYS_SETAUDIT_ADDR            = 452 // { int setaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); }\n\tSYS_AUDITCTL                 = 453 // { int auditctl(char *path); }\n\tSYS__UMTX_OP                 = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); }\n\tSYS_THR_NEW                  = 455 // { int thr_new(struct thr_param *param, int param_size); }\n\tSYS_SIGQUEUE                 = 456 // { int sigqueue(pid_t pid, int signum, void *value); }\n\tSYS_KMQ_OPEN                 = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); }\n\tSYS_KMQ_SETATTR              = 458 // { int kmq_setattr(int mqd, const struct mq_attr *attr, struct mq_attr *oattr); }\n\tSYS_KMQ_TIMEDRECEIVE         = 459 // { int kmq_timedreceive(int mqd, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); }\n\tSYS_KMQ_TIMEDSEND            = 460 // { int kmq_timedsend(int mqd, const char *msg_ptr, size_t msg_len, unsigned msg_prio, const struct timespec *abs_timeout); }\n\tSYS_KMQ_NOTIFY               = 461 // { int kmq_notify(int mqd, const struct sigevent *sigev); }\n\tSYS_KMQ_UNLINK               = 462 // { int kmq_unlink(const char *path); }\n\tSYS_ABORT2                   = 463 // { int abort2(const char *why, int nargs, void **args); }\n\tSYS_THR_SET_NAME             = 464 // { int thr_set_name(long id, const char *name); }\n\tSYS_AIO_FSYNC                = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); }\n\tSYS_RTPRIO_THREAD            = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); }\n\tSYS_SCTP_PEELOFF             = 471 // { int sctp_peeloff(int sd, uint32_t name); }\n\tSYS_SCTP_GENERIC_SENDMSG     = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }\n\tSYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }\n\tSYS_SCTP_GENERIC_RECVMSG     = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, struct sockaddr *from, __socklen_t *fromlenaddr, struct sctp_sndrcvinfo *sinfo, int *msg_flags); }\n\tSYS_PREAD                    = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); }\n\tSYS_PWRITE                   = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); }\n\tSYS_MMAP                     = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); }\n\tSYS_LSEEK                    = 478 // { off_t lseek(int fd, off_t offset, int whence); }\n\tSYS_TRUNCATE                 = 479 // { int truncate(char *path, off_t length); }\n\tSYS_FTRUNCATE                = 480 // { int ftruncate(int fd, off_t length); }\n\tSYS_THR_KILL2                = 481 // { int thr_kill2(pid_t pid, long id, int sig); }\n\tSYS_SHM_OPEN                 = 482 // { int shm_open(const char *path, int flags, mode_t mode); }\n\tSYS_SHM_UNLINK               = 483 // { int shm_unlink(const char *path); }\n\tSYS_CPUSET                   = 484 // { int cpuset(cpusetid_t *setid); }\n\tSYS_CPUSET_SETID             = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); }\n\tSYS_CPUSET_GETID             = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); }\n\tSYS_CPUSET_GETAFFINITY       = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); }\n\tSYS_CPUSET_SETAFFINITY       = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); }\n\tSYS_FACCESSAT                = 489 // { int faccessat(int fd, char *path, int amode, int flag); }\n\tSYS_FCHMODAT                 = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT                 = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_FEXECVE                  = 492 // { int fexecve(int fd, char **argv, char **envv); }\n\tSYS_FUTIMESAT                = 494 // { int futimesat(int fd, char *path, struct timeval *times); }\n\tSYS_LINKAT                   = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); }\n\tSYS_MKDIRAT                  = 496 // { int mkdirat(int fd, char *path, mode_t mode); }\n\tSYS_MKFIFOAT                 = 497 // { int mkfifoat(int fd, char *path, mode_t mode); }\n\tSYS_OPENAT                   = 499 // { int openat(int fd, char *path, int flag, mode_t mode); }\n\tSYS_READLINKAT               = 500 // { ssize_t readlinkat(int fd, char *path, char *buf, size_t bufsize); }\n\tSYS_RENAMEAT                 = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); }\n\tSYS_SYMLINKAT                = 502 // { int symlinkat(char *path1, int fd, char *path2); }\n\tSYS_UNLINKAT                 = 503 // { int unlinkat(int fd, char *path, int flag); }\n\tSYS_POSIX_OPENPT             = 504 // { int posix_openpt(int flags); }\n\tSYS_GSSD_SYSCALL             = 505 // { int gssd_syscall(char *path); }\n\tSYS_JAIL_GET                 = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS_JAIL_SET                 = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS_JAIL_REMOVE              = 508 // { int jail_remove(int jid); }\n\tSYS_CLOSEFROM                = 509 // { int closefrom(int lowfd); }\n\tSYS___SEMCTL                 = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_MSGCTL                   = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SHMCTL                   = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_LPATHCONF                = 513 // { int lpathconf(char *path, int name); }\n\tSYS___CAP_RIGHTS_GET         = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); }\n\tSYS_CAP_ENTER                = 516 // { int cap_enter(void); }\n\tSYS_CAP_GETMODE              = 517 // { int cap_getmode(u_int *modep); }\n\tSYS_PDFORK                   = 518 // { int pdfork(int *fdp, int flags); }\n\tSYS_PDKILL                   = 519 // { int pdkill(int fd, int signum); }\n\tSYS_PDGETPID                 = 520 // { int pdgetpid(int fd, pid_t *pidp); }\n\tSYS_PSELECT                  = 522 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); }\n\tSYS_GETLOGINCLASS            = 523 // { int getloginclass(char *namebuf, size_t namelen); }\n\tSYS_SETLOGINCLASS            = 524 // { int setloginclass(const char *namebuf); }\n\tSYS_RCTL_GET_RACCT           = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_GET_RULES           = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_GET_LIMITS          = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_ADD_RULE            = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_REMOVE_RULE         = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_POSIX_FALLOCATE          = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); }\n\tSYS_POSIX_FADVISE            = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); }\n\tSYS_WAIT6                    = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); }\n\tSYS_CAP_RIGHTS_LIMIT         = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); }\n\tSYS_CAP_IOCTLS_LIMIT         = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); }\n\tSYS_CAP_IOCTLS_GET           = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); }\n\tSYS_CAP_FCNTLS_LIMIT         = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); }\n\tSYS_CAP_FCNTLS_GET           = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); }\n\tSYS_BINDAT                   = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); }\n\tSYS_CONNECTAT                = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); }\n\tSYS_CHFLAGSAT                = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); }\n\tSYS_ACCEPT4                  = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); }\n\tSYS_PIPE2                    = 542 // { int pipe2(int *fildes, int flags); }\n\tSYS_AIO_MLOCK                = 543 // { int aio_mlock(struct aiocb *aiocbp); }\n\tSYS_PROCCTL                  = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); }\n\tSYS_PPOLL                    = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); }\n\tSYS_FUTIMENS                 = 546 // { int futimens(int fd, struct timespec *times); }\n\tSYS_UTIMENSAT                = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); }\n\tSYS_FDATASYNC                = 550 // { int fdatasync(int fd); }\n\tSYS_FSTAT                    = 551 // { int fstat(int fd, struct stat *sb); }\n\tSYS_FSTATAT                  = 552 // { int fstatat(int fd, char *path, struct stat *buf, int flag); }\n\tSYS_FHSTAT                   = 553 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); }\n\tSYS_GETDIRENTRIES            = 554 // { ssize_t getdirentries(int fd, char *buf, size_t count, off_t *basep); }\n\tSYS_STATFS                   = 555 // { int statfs(char *path, struct statfs *buf); }\n\tSYS_FSTATFS                  = 556 // { int fstatfs(int fd, struct statfs *buf); }\n\tSYS_GETFSSTAT                = 557 // { int getfsstat(struct statfs *buf, long bufsize, int mode); }\n\tSYS_FHSTATFS                 = 558 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); }\n\tSYS_MKNODAT                  = 559 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); }\n\tSYS_KEVENT                   = 560 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_CPUSET_GETDOMAIN         = 561 // { int cpuset_getdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int *policy); }\n\tSYS_CPUSET_SETDOMAIN         = 562 // { int cpuset_setdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int policy); }\n\tSYS_GETRANDOM                = 563 // { int getrandom(void *buf, size_t buflen, unsigned int flags); }\n\tSYS_GETFHAT                  = 564 // { int getfhat(int fd, char *path, struct fhandle *fhp, int flags); }\n\tSYS_FHLINK                   = 565 // { int fhlink(struct fhandle *fhp, const char *to); }\n\tSYS_FHLINKAT                 = 566 // { int fhlinkat(struct fhandle *fhp, int tofd, const char *to,); }\n\tSYS_FHREADLINK               = 567 // { int fhreadlink(struct fhandle *fhp, char *buf, size_t bufsize); }\n\tSYS___SYSCTLBYNAME           = 570 // { int __sysctlbyname(const char *name, size_t namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }\n\tSYS_CLOSE_RANGE              = 575 // { int close_range(u_int lowfd, u_int highfd, int flags); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go",
    "content": "// go run mksysnum.go https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && freebsd\n\npackage unix\n\nconst (\n\t// SYS_NOSYS = 0;  // { int nosys(void); } syscall nosys_args int\n\tSYS_EXIT                     = 1   // { void sys_exit(int rval); } exit sys_exit_args void\n\tSYS_FORK                     = 2   // { int fork(void); }\n\tSYS_READ                     = 3   // { ssize_t read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE                    = 4   // { ssize_t write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN                     = 5   // { int open(char *path, int flags, int mode); }\n\tSYS_CLOSE                    = 6   // { int close(int fd); }\n\tSYS_WAIT4                    = 7   // { int wait4(int pid, int *status, int options, struct rusage *rusage); }\n\tSYS_LINK                     = 9   // { int link(char *path, char *link); }\n\tSYS_UNLINK                   = 10  // { int unlink(char *path); }\n\tSYS_CHDIR                    = 12  // { int chdir(char *path); }\n\tSYS_FCHDIR                   = 13  // { int fchdir(int fd); }\n\tSYS_CHMOD                    = 15  // { int chmod(char *path, int mode); }\n\tSYS_CHOWN                    = 16  // { int chown(char *path, int uid, int gid); }\n\tSYS_BREAK                    = 17  // { caddr_t break(char *nsize); }\n\tSYS_GETPID                   = 20  // { pid_t getpid(void); }\n\tSYS_MOUNT                    = 21  // { int mount(char *type, char *path, int flags, caddr_t data); }\n\tSYS_UNMOUNT                  = 22  // { int unmount(char *path, int flags); }\n\tSYS_SETUID                   = 23  // { int setuid(uid_t uid); }\n\tSYS_GETUID                   = 24  // { uid_t getuid(void); }\n\tSYS_GETEUID                  = 25  // { uid_t geteuid(void); }\n\tSYS_PTRACE                   = 26  // { int ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG                  = 27  // { int recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG                  = 28  // { int sendmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_RECVFROM                 = 29  // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); }\n\tSYS_ACCEPT                   = 30  // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); }\n\tSYS_GETPEERNAME              = 31  // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }\n\tSYS_GETSOCKNAME              = 32  // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }\n\tSYS_ACCESS                   = 33  // { int access(char *path, int amode); }\n\tSYS_CHFLAGS                  = 34  // { int chflags(const char *path, u_long flags); }\n\tSYS_FCHFLAGS                 = 35  // { int fchflags(int fd, u_long flags); }\n\tSYS_SYNC                     = 36  // { int sync(void); }\n\tSYS_KILL                     = 37  // { int kill(int pid, int signum); }\n\tSYS_GETPPID                  = 39  // { pid_t getppid(void); }\n\tSYS_DUP                      = 41  // { int dup(u_int fd); }\n\tSYS_GETEGID                  = 43  // { gid_t getegid(void); }\n\tSYS_PROFIL                   = 44  // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); }\n\tSYS_KTRACE                   = 45  // { int ktrace(const char *fname, int ops, int facs, int pid); }\n\tSYS_GETGID                   = 47  // { gid_t getgid(void); }\n\tSYS_GETLOGIN                 = 49  // { int getlogin(char *namebuf, u_int namelen); }\n\tSYS_SETLOGIN                 = 50  // { int setlogin(char *namebuf); }\n\tSYS_ACCT                     = 51  // { int acct(char *path); }\n\tSYS_SIGALTSTACK              = 53  // { int sigaltstack(stack_t *ss, stack_t *oss); }\n\tSYS_IOCTL                    = 54  // { int ioctl(int fd, u_long com, caddr_t data); }\n\tSYS_REBOOT                   = 55  // { int reboot(int opt); }\n\tSYS_REVOKE                   = 56  // { int revoke(char *path); }\n\tSYS_SYMLINK                  = 57  // { int symlink(char *path, char *link); }\n\tSYS_READLINK                 = 58  // { ssize_t readlink(char *path, char *buf, size_t count); }\n\tSYS_EXECVE                   = 59  // { int execve(char *fname, char **argv, char **envv); }\n\tSYS_UMASK                    = 60  // { int umask(int newmask); }\n\tSYS_CHROOT                   = 61  // { int chroot(char *path); }\n\tSYS_MSYNC                    = 65  // { int msync(void *addr, size_t len, int flags); }\n\tSYS_VFORK                    = 66  // { int vfork(void); }\n\tSYS_SBRK                     = 69  // { int sbrk(int incr); }\n\tSYS_SSTK                     = 70  // { int sstk(int incr); }\n\tSYS_MUNMAP                   = 73  // { int munmap(void *addr, size_t len); }\n\tSYS_MPROTECT                 = 74  // { int mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE                  = 75  // { int madvise(void *addr, size_t len, int behav); }\n\tSYS_MINCORE                  = 78  // { int mincore(const void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS                = 79  // { int getgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS                = 80  // { int setgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_GETPGRP                  = 81  // { int getpgrp(void); }\n\tSYS_SETPGID                  = 82  // { int setpgid(int pid, int pgid); }\n\tSYS_SETITIMER                = 83  // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_SWAPON                   = 85  // { int swapon(char *name); }\n\tSYS_GETITIMER                = 86  // { int getitimer(u_int which, struct itimerval *itv); }\n\tSYS_GETDTABLESIZE            = 89  // { int getdtablesize(void); }\n\tSYS_DUP2                     = 90  // { int dup2(u_int from, u_int to); }\n\tSYS_FCNTL                    = 92  // { int fcntl(int fd, int cmd, long arg); }\n\tSYS_SELECT                   = 93  // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_FSYNC                    = 95  // { int fsync(int fd); }\n\tSYS_SETPRIORITY              = 96  // { int setpriority(int which, int who, int prio); }\n\tSYS_SOCKET                   = 97  // { int socket(int domain, int type, int protocol); }\n\tSYS_CONNECT                  = 98  // { int connect(int s, caddr_t name, int namelen); }\n\tSYS_GETPRIORITY              = 100 // { int getpriority(int which, int who); }\n\tSYS_BIND                     = 104 // { int bind(int s, caddr_t name, int namelen); }\n\tSYS_SETSOCKOPT               = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); }\n\tSYS_LISTEN                   = 106 // { int listen(int s, int backlog); }\n\tSYS_GETTIMEOFDAY             = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_GETRUSAGE                = 117 // { int getrusage(int who, struct rusage *rusage); }\n\tSYS_GETSOCKOPT               = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); }\n\tSYS_READV                    = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_WRITEV                   = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_SETTIMEOFDAY             = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); }\n\tSYS_FCHOWN                   = 123 // { int fchown(int fd, int uid, int gid); }\n\tSYS_FCHMOD                   = 124 // { int fchmod(int fd, int mode); }\n\tSYS_SETREUID                 = 126 // { int setreuid(int ruid, int euid); }\n\tSYS_SETREGID                 = 127 // { int setregid(int rgid, int egid); }\n\tSYS_RENAME                   = 128 // { int rename(char *from, char *to); }\n\tSYS_FLOCK                    = 131 // { int flock(int fd, int how); }\n\tSYS_MKFIFO                   = 132 // { int mkfifo(char *path, int mode); }\n\tSYS_SENDTO                   = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); }\n\tSYS_SHUTDOWN                 = 134 // { int shutdown(int s, int how); }\n\tSYS_SOCKETPAIR               = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR                    = 136 // { int mkdir(char *path, int mode); }\n\tSYS_RMDIR                    = 137 // { int rmdir(char *path); }\n\tSYS_UTIMES                   = 138 // { int utimes(char *path, struct timeval *tptr); }\n\tSYS_ADJTIME                  = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); }\n\tSYS_SETSID                   = 147 // { int setsid(void); }\n\tSYS_QUOTACTL                 = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); }\n\tSYS_NLM_SYSCALL              = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); }\n\tSYS_NFSSVC                   = 155 // { int nfssvc(int flag, caddr_t argp); }\n\tSYS_LGETFH                   = 160 // { int lgetfh(char *fname, struct fhandle *fhp); }\n\tSYS_GETFH                    = 161 // { int getfh(char *fname, struct fhandle *fhp); }\n\tSYS_SYSARCH                  = 165 // { int sysarch(int op, char *parms); }\n\tSYS_RTPRIO                   = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); }\n\tSYS_SEMSYS                   = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); }\n\tSYS_MSGSYS                   = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); }\n\tSYS_SHMSYS                   = 171 // { int shmsys(int which, int a2, int a3, int a4); }\n\tSYS_SETFIB                   = 175 // { int setfib(int fibnum); }\n\tSYS_NTP_ADJTIME              = 176 // { int ntp_adjtime(struct timex *tp); }\n\tSYS_SETGID                   = 181 // { int setgid(gid_t gid); }\n\tSYS_SETEGID                  = 182 // { int setegid(gid_t egid); }\n\tSYS_SETEUID                  = 183 // { int seteuid(uid_t euid); }\n\tSYS_PATHCONF                 = 191 // { int pathconf(char *path, int name); }\n\tSYS_FPATHCONF                = 192 // { int fpathconf(int fd, int name); }\n\tSYS_GETRLIMIT                = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int\n\tSYS_SETRLIMIT                = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int\n\tSYS___SYSCTL                 = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int\n\tSYS_MLOCK                    = 203 // { int mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK                  = 204 // { int munlock(const void *addr, size_t len); }\n\tSYS_UNDELETE                 = 205 // { int undelete(char *path); }\n\tSYS_FUTIMES                  = 206 // { int futimes(int fd, struct timeval *tptr); }\n\tSYS_GETPGID                  = 207 // { int getpgid(pid_t pid); }\n\tSYS_POLL                     = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_SEMGET                   = 221 // { int semget(key_t key, int nsems, int semflg); }\n\tSYS_SEMOP                    = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_MSGGET                   = 225 // { int msgget(key_t key, int msgflg); }\n\tSYS_MSGSND                   = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV                   = 227 // { ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT                    = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT                    = 230 // { int shmdt(const void *shmaddr); }\n\tSYS_SHMGET                   = 231 // { int shmget(key_t key, size_t size, int shmflg); }\n\tSYS_CLOCK_GETTIME            = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME            = 233 // { int clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES             = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_KTIMER_CREATE            = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); }\n\tSYS_KTIMER_DELETE            = 236 // { int ktimer_delete(int timerid); }\n\tSYS_KTIMER_SETTIME           = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }\n\tSYS_KTIMER_GETTIME           = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); }\n\tSYS_KTIMER_GETOVERRUN        = 239 // { int ktimer_getoverrun(int timerid); }\n\tSYS_NANOSLEEP                = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FFCLOCK_GETCOUNTER       = 241 // { int ffclock_getcounter(ffcounter *ffcount); }\n\tSYS_FFCLOCK_SETESTIMATE      = 242 // { int ffclock_setestimate(struct ffclock_estimate *cest); }\n\tSYS_FFCLOCK_GETESTIMATE      = 243 // { int ffclock_getestimate(struct ffclock_estimate *cest); }\n\tSYS_CLOCK_NANOSLEEP          = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_CLOCK_GETCPUCLOCKID2     = 247 // { int clock_getcpuclockid2(id_t id, int which, clockid_t *clock_id); }\n\tSYS_NTP_GETTIME              = 248 // { int ntp_gettime(struct ntptimeval *ntvp); }\n\tSYS_MINHERIT                 = 250 // { int minherit(void *addr, size_t len, int inherit); }\n\tSYS_RFORK                    = 251 // { int rfork(int flags); }\n\tSYS_ISSETUGID                = 253 // { int issetugid(void); }\n\tSYS_LCHOWN                   = 254 // { int lchown(char *path, int uid, int gid); }\n\tSYS_AIO_READ                 = 255 // { int aio_read(struct aiocb *aiocbp); }\n\tSYS_AIO_WRITE                = 256 // { int aio_write(struct aiocb *aiocbp); }\n\tSYS_LIO_LISTIO               = 257 // { int lio_listio(int mode, struct aiocb* const *acb_list, int nent, struct sigevent *sig); }\n\tSYS_LCHMOD                   = 274 // { int lchmod(char *path, mode_t mode); }\n\tSYS_LUTIMES                  = 276 // { int lutimes(char *path, struct timeval *tptr); }\n\tSYS_PREADV                   = 289 // { ssize_t preadv(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }\n\tSYS_PWRITEV                  = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }\n\tSYS_FHOPEN                   = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); }\n\tSYS_MODNEXT                  = 300 // { int modnext(int modid); }\n\tSYS_MODSTAT                  = 301 // { int modstat(int modid, struct module_stat* stat); }\n\tSYS_MODFNEXT                 = 302 // { int modfnext(int modid); }\n\tSYS_MODFIND                  = 303 // { int modfind(const char *name); }\n\tSYS_KLDLOAD                  = 304 // { int kldload(const char *file); }\n\tSYS_KLDUNLOAD                = 305 // { int kldunload(int fileid); }\n\tSYS_KLDFIND                  = 306 // { int kldfind(const char *file); }\n\tSYS_KLDNEXT                  = 307 // { int kldnext(int fileid); }\n\tSYS_KLDSTAT                  = 308 // { int kldstat(int fileid, struct kld_file_stat *stat); }\n\tSYS_KLDFIRSTMOD              = 309 // { int kldfirstmod(int fileid); }\n\tSYS_GETSID                   = 310 // { int getsid(pid_t pid); }\n\tSYS_SETRESUID                = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_SETRESGID                = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_AIO_RETURN               = 314 // { ssize_t aio_return(struct aiocb *aiocbp); }\n\tSYS_AIO_SUSPEND              = 315 // { int aio_suspend(struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); }\n\tSYS_AIO_CANCEL               = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); }\n\tSYS_AIO_ERROR                = 317 // { int aio_error(struct aiocb *aiocbp); }\n\tSYS_YIELD                    = 321 // { int yield(void); }\n\tSYS_MLOCKALL                 = 324 // { int mlockall(int how); }\n\tSYS_MUNLOCKALL               = 325 // { int munlockall(void); }\n\tSYS___GETCWD                 = 326 // { int __getcwd(char *buf, size_t buflen); }\n\tSYS_SCHED_SETPARAM           = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); }\n\tSYS_SCHED_GETPARAM           = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); }\n\tSYS_SCHED_SETSCHEDULER       = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); }\n\tSYS_SCHED_GETSCHEDULER       = 330 // { int sched_getscheduler (pid_t pid); }\n\tSYS_SCHED_YIELD              = 331 // { int sched_yield (void); }\n\tSYS_SCHED_GET_PRIORITY_MAX   = 332 // { int sched_get_priority_max (int policy); }\n\tSYS_SCHED_GET_PRIORITY_MIN   = 333 // { int sched_get_priority_min (int policy); }\n\tSYS_SCHED_RR_GET_INTERVAL    = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); }\n\tSYS_UTRACE                   = 335 // { int utrace(const void *addr, size_t len); }\n\tSYS_KLDSYM                   = 337 // { int kldsym(int fileid, int cmd, void *data); }\n\tSYS_JAIL                     = 338 // { int jail(struct jail *jail); }\n\tSYS_SIGPROCMASK              = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); }\n\tSYS_SIGSUSPEND               = 341 // { int sigsuspend(const sigset_t *sigmask); }\n\tSYS_SIGPENDING               = 343 // { int sigpending(sigset_t *set); }\n\tSYS_SIGTIMEDWAIT             = 345 // { int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); }\n\tSYS_SIGWAITINFO              = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); }\n\tSYS___ACL_GET_FILE           = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FILE           = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_GET_FD             = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FD             = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_DELETE_FILE        = 351 // { int __acl_delete_file(const char *path, acl_type_t type); }\n\tSYS___ACL_DELETE_FD          = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); }\n\tSYS___ACL_ACLCHECK_FILE      = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_ACLCHECK_FD        = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS_EXTATTRCTL               = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FILE         = 356 // { ssize_t extattr_set_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FILE         = 357 // { ssize_t extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FILE      = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_AIO_WAITCOMPLETE         = 359 // { ssize_t aio_waitcomplete(struct aiocb **aiocbp, struct timespec *timeout); }\n\tSYS_GETRESUID                = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_GETRESGID                = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_KQUEUE                   = 362 // { int kqueue(void); }\n\tSYS_EXTATTR_SET_FD           = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FD           = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FD        = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }\n\tSYS___SETUGID                = 374 // { int __setugid(int flag); }\n\tSYS_EACCESS                  = 376 // { int eaccess(char *path, int amode); }\n\tSYS_NMOUNT                   = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS___MAC_GET_PROC           = 384 // { int __mac_get_proc(struct mac *mac_p); }\n\tSYS___MAC_SET_PROC           = 385 // { int __mac_set_proc(struct mac *mac_p); }\n\tSYS___MAC_GET_FD             = 386 // { int __mac_get_fd(int fd, struct mac *mac_p); }\n\tSYS___MAC_GET_FILE           = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); }\n\tSYS___MAC_SET_FD             = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); }\n\tSYS___MAC_SET_FILE           = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); }\n\tSYS_KENV                     = 390 // { int kenv(int what, const char *name, char *value, int len); }\n\tSYS_LCHFLAGS                 = 391 // { int lchflags(const char *path, u_long flags); }\n\tSYS_UUIDGEN                  = 392 // { int uuidgen(struct uuid *store, int count); }\n\tSYS_SENDFILE                 = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); }\n\tSYS_MAC_SYSCALL              = 394 // { int mac_syscall(const char *policy, int call, void *arg); }\n\tSYS_KSEM_CLOSE               = 400 // { int ksem_close(semid_t id); }\n\tSYS_KSEM_POST                = 401 // { int ksem_post(semid_t id); }\n\tSYS_KSEM_WAIT                = 402 // { int ksem_wait(semid_t id); }\n\tSYS_KSEM_TRYWAIT             = 403 // { int ksem_trywait(semid_t id); }\n\tSYS_KSEM_INIT                = 404 // { int ksem_init(semid_t *idp, unsigned int value); }\n\tSYS_KSEM_OPEN                = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); }\n\tSYS_KSEM_UNLINK              = 406 // { int ksem_unlink(const char *name); }\n\tSYS_KSEM_GETVALUE            = 407 // { int ksem_getvalue(semid_t id, int *val); }\n\tSYS_KSEM_DESTROY             = 408 // { int ksem_destroy(semid_t id); }\n\tSYS___MAC_GET_PID            = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); }\n\tSYS___MAC_GET_LINK           = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); }\n\tSYS___MAC_SET_LINK           = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); }\n\tSYS_EXTATTR_SET_LINK         = 412 // { ssize_t extattr_set_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_LINK         = 413 // { ssize_t extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_LINK      = 414 // { int extattr_delete_link(const char *path, int attrnamespace, const char *attrname); }\n\tSYS___MAC_EXECVE             = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); }\n\tSYS_SIGACTION                = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); }\n\tSYS_SIGRETURN                = 417 // { int sigreturn(const struct __ucontext *sigcntxp); }\n\tSYS_GETCONTEXT               = 421 // { int getcontext(struct __ucontext *ucp); }\n\tSYS_SETCONTEXT               = 422 // { int setcontext(const struct __ucontext *ucp); }\n\tSYS_SWAPCONTEXT              = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); }\n\tSYS_SWAPOFF                  = 424 // { int swapoff(const char *name); }\n\tSYS___ACL_GET_LINK           = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_LINK           = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_DELETE_LINK        = 427 // { int __acl_delete_link(const char *path, acl_type_t type); }\n\tSYS___ACL_ACLCHECK_LINK      = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS_SIGWAIT                  = 429 // { int sigwait(const sigset_t *set, int *sig); }\n\tSYS_THR_CREATE               = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); }\n\tSYS_THR_EXIT                 = 431 // { void thr_exit(long *state); }\n\tSYS_THR_SELF                 = 432 // { int thr_self(long *id); }\n\tSYS_THR_KILL                 = 433 // { int thr_kill(long id, int sig); }\n\tSYS_JAIL_ATTACH              = 436 // { int jail_attach(int jid); }\n\tSYS_EXTATTR_LIST_FD          = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_FILE        = 438 // { ssize_t extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_LINK        = 439 // { ssize_t extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_KSEM_TIMEDWAIT           = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); }\n\tSYS_THR_SUSPEND              = 442 // { int thr_suspend(const struct timespec *timeout); }\n\tSYS_THR_WAKE                 = 443 // { int thr_wake(long id); }\n\tSYS_KLDUNLOADF               = 444 // { int kldunloadf(int fileid, int flags); }\n\tSYS_AUDIT                    = 445 // { int audit(const void *record, u_int length); }\n\tSYS_AUDITON                  = 446 // { int auditon(int cmd, void *data, u_int length); }\n\tSYS_GETAUID                  = 447 // { int getauid(uid_t *auid); }\n\tSYS_SETAUID                  = 448 // { int setauid(uid_t *auid); }\n\tSYS_GETAUDIT                 = 449 // { int getaudit(struct auditinfo *auditinfo); }\n\tSYS_SETAUDIT                 = 450 // { int setaudit(struct auditinfo *auditinfo); }\n\tSYS_GETAUDIT_ADDR            = 451 // { int getaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); }\n\tSYS_SETAUDIT_ADDR            = 452 // { int setaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); }\n\tSYS_AUDITCTL                 = 453 // { int auditctl(char *path); }\n\tSYS__UMTX_OP                 = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); }\n\tSYS_THR_NEW                  = 455 // { int thr_new(struct thr_param *param, int param_size); }\n\tSYS_SIGQUEUE                 = 456 // { int sigqueue(pid_t pid, int signum, void *value); }\n\tSYS_KMQ_OPEN                 = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); }\n\tSYS_KMQ_SETATTR              = 458 // { int kmq_setattr(int mqd, const struct mq_attr *attr, struct mq_attr *oattr); }\n\tSYS_KMQ_TIMEDRECEIVE         = 459 // { int kmq_timedreceive(int mqd, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); }\n\tSYS_KMQ_TIMEDSEND            = 460 // { int kmq_timedsend(int mqd, const char *msg_ptr, size_t msg_len, unsigned msg_prio, const struct timespec *abs_timeout); }\n\tSYS_KMQ_NOTIFY               = 461 // { int kmq_notify(int mqd, const struct sigevent *sigev); }\n\tSYS_KMQ_UNLINK               = 462 // { int kmq_unlink(const char *path); }\n\tSYS_ABORT2                   = 463 // { int abort2(const char *why, int nargs, void **args); }\n\tSYS_THR_SET_NAME             = 464 // { int thr_set_name(long id, const char *name); }\n\tSYS_AIO_FSYNC                = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); }\n\tSYS_RTPRIO_THREAD            = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); }\n\tSYS_SCTP_PEELOFF             = 471 // { int sctp_peeloff(int sd, uint32_t name); }\n\tSYS_SCTP_GENERIC_SENDMSG     = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }\n\tSYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }\n\tSYS_SCTP_GENERIC_RECVMSG     = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, struct sockaddr *from, __socklen_t *fromlenaddr, struct sctp_sndrcvinfo *sinfo, int *msg_flags); }\n\tSYS_PREAD                    = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); }\n\tSYS_PWRITE                   = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); }\n\tSYS_MMAP                     = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); }\n\tSYS_LSEEK                    = 478 // { off_t lseek(int fd, off_t offset, int whence); }\n\tSYS_TRUNCATE                 = 479 // { int truncate(char *path, off_t length); }\n\tSYS_FTRUNCATE                = 480 // { int ftruncate(int fd, off_t length); }\n\tSYS_THR_KILL2                = 481 // { int thr_kill2(pid_t pid, long id, int sig); }\n\tSYS_SHM_OPEN                 = 482 // { int shm_open(const char *path, int flags, mode_t mode); }\n\tSYS_SHM_UNLINK               = 483 // { int shm_unlink(const char *path); }\n\tSYS_CPUSET                   = 484 // { int cpuset(cpusetid_t *setid); }\n\tSYS_CPUSET_SETID             = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); }\n\tSYS_CPUSET_GETID             = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); }\n\tSYS_CPUSET_GETAFFINITY       = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); }\n\tSYS_CPUSET_SETAFFINITY       = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); }\n\tSYS_FACCESSAT                = 489 // { int faccessat(int fd, char *path, int amode, int flag); }\n\tSYS_FCHMODAT                 = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT                 = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_FEXECVE                  = 492 // { int fexecve(int fd, char **argv, char **envv); }\n\tSYS_FUTIMESAT                = 494 // { int futimesat(int fd, char *path, struct timeval *times); }\n\tSYS_LINKAT                   = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); }\n\tSYS_MKDIRAT                  = 496 // { int mkdirat(int fd, char *path, mode_t mode); }\n\tSYS_MKFIFOAT                 = 497 // { int mkfifoat(int fd, char *path, mode_t mode); }\n\tSYS_OPENAT                   = 499 // { int openat(int fd, char *path, int flag, mode_t mode); }\n\tSYS_READLINKAT               = 500 // { ssize_t readlinkat(int fd, char *path, char *buf, size_t bufsize); }\n\tSYS_RENAMEAT                 = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); }\n\tSYS_SYMLINKAT                = 502 // { int symlinkat(char *path1, int fd, char *path2); }\n\tSYS_UNLINKAT                 = 503 // { int unlinkat(int fd, char *path, int flag); }\n\tSYS_POSIX_OPENPT             = 504 // { int posix_openpt(int flags); }\n\tSYS_GSSD_SYSCALL             = 505 // { int gssd_syscall(char *path); }\n\tSYS_JAIL_GET                 = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS_JAIL_SET                 = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS_JAIL_REMOVE              = 508 // { int jail_remove(int jid); }\n\tSYS_CLOSEFROM                = 509 // { int closefrom(int lowfd); }\n\tSYS___SEMCTL                 = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_MSGCTL                   = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SHMCTL                   = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_LPATHCONF                = 513 // { int lpathconf(char *path, int name); }\n\tSYS___CAP_RIGHTS_GET         = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); }\n\tSYS_CAP_ENTER                = 516 // { int cap_enter(void); }\n\tSYS_CAP_GETMODE              = 517 // { int cap_getmode(u_int *modep); }\n\tSYS_PDFORK                   = 518 // { int pdfork(int *fdp, int flags); }\n\tSYS_PDKILL                   = 519 // { int pdkill(int fd, int signum); }\n\tSYS_PDGETPID                 = 520 // { int pdgetpid(int fd, pid_t *pidp); }\n\tSYS_PSELECT                  = 522 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); }\n\tSYS_GETLOGINCLASS            = 523 // { int getloginclass(char *namebuf, size_t namelen); }\n\tSYS_SETLOGINCLASS            = 524 // { int setloginclass(const char *namebuf); }\n\tSYS_RCTL_GET_RACCT           = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_GET_RULES           = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_GET_LIMITS          = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_ADD_RULE            = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_REMOVE_RULE         = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_POSIX_FALLOCATE          = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); }\n\tSYS_POSIX_FADVISE            = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); }\n\tSYS_WAIT6                    = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); }\n\tSYS_CAP_RIGHTS_LIMIT         = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); }\n\tSYS_CAP_IOCTLS_LIMIT         = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); }\n\tSYS_CAP_IOCTLS_GET           = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); }\n\tSYS_CAP_FCNTLS_LIMIT         = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); }\n\tSYS_CAP_FCNTLS_GET           = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); }\n\tSYS_BINDAT                   = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); }\n\tSYS_CONNECTAT                = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); }\n\tSYS_CHFLAGSAT                = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); }\n\tSYS_ACCEPT4                  = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); }\n\tSYS_PIPE2                    = 542 // { int pipe2(int *fildes, int flags); }\n\tSYS_AIO_MLOCK                = 543 // { int aio_mlock(struct aiocb *aiocbp); }\n\tSYS_PROCCTL                  = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); }\n\tSYS_PPOLL                    = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); }\n\tSYS_FUTIMENS                 = 546 // { int futimens(int fd, struct timespec *times); }\n\tSYS_UTIMENSAT                = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); }\n\tSYS_FDATASYNC                = 550 // { int fdatasync(int fd); }\n\tSYS_FSTAT                    = 551 // { int fstat(int fd, struct stat *sb); }\n\tSYS_FSTATAT                  = 552 // { int fstatat(int fd, char *path, struct stat *buf, int flag); }\n\tSYS_FHSTAT                   = 553 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); }\n\tSYS_GETDIRENTRIES            = 554 // { ssize_t getdirentries(int fd, char *buf, size_t count, off_t *basep); }\n\tSYS_STATFS                   = 555 // { int statfs(char *path, struct statfs *buf); }\n\tSYS_FSTATFS                  = 556 // { int fstatfs(int fd, struct statfs *buf); }\n\tSYS_GETFSSTAT                = 557 // { int getfsstat(struct statfs *buf, long bufsize, int mode); }\n\tSYS_FHSTATFS                 = 558 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); }\n\tSYS_MKNODAT                  = 559 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); }\n\tSYS_KEVENT                   = 560 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_CPUSET_GETDOMAIN         = 561 // { int cpuset_getdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int *policy); }\n\tSYS_CPUSET_SETDOMAIN         = 562 // { int cpuset_setdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int policy); }\n\tSYS_GETRANDOM                = 563 // { int getrandom(void *buf, size_t buflen, unsigned int flags); }\n\tSYS_GETFHAT                  = 564 // { int getfhat(int fd, char *path, struct fhandle *fhp, int flags); }\n\tSYS_FHLINK                   = 565 // { int fhlink(struct fhandle *fhp, const char *to); }\n\tSYS_FHLINKAT                 = 566 // { int fhlinkat(struct fhandle *fhp, int tofd, const char *to,); }\n\tSYS_FHREADLINK               = 567 // { int fhreadlink(struct fhandle *fhp, char *buf, size_t bufsize); }\n\tSYS___SYSCTLBYNAME           = 570 // { int __sysctlbyname(const char *name, size_t namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }\n\tSYS_CLOSE_RANGE              = 575 // { int close_range(u_int lowfd, u_int highfd, int flags); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go",
    "content": "// go run mksysnum.go https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm && freebsd\n\npackage unix\n\nconst (\n\t// SYS_NOSYS = 0;  // { int nosys(void); } syscall nosys_args int\n\tSYS_EXIT                     = 1   // { void sys_exit(int rval); } exit sys_exit_args void\n\tSYS_FORK                     = 2   // { int fork(void); }\n\tSYS_READ                     = 3   // { ssize_t read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE                    = 4   // { ssize_t write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN                     = 5   // { int open(char *path, int flags, int mode); }\n\tSYS_CLOSE                    = 6   // { int close(int fd); }\n\tSYS_WAIT4                    = 7   // { int wait4(int pid, int *status, int options, struct rusage *rusage); }\n\tSYS_LINK                     = 9   // { int link(char *path, char *link); }\n\tSYS_UNLINK                   = 10  // { int unlink(char *path); }\n\tSYS_CHDIR                    = 12  // { int chdir(char *path); }\n\tSYS_FCHDIR                   = 13  // { int fchdir(int fd); }\n\tSYS_CHMOD                    = 15  // { int chmod(char *path, int mode); }\n\tSYS_CHOWN                    = 16  // { int chown(char *path, int uid, int gid); }\n\tSYS_BREAK                    = 17  // { caddr_t break(char *nsize); }\n\tSYS_GETPID                   = 20  // { pid_t getpid(void); }\n\tSYS_MOUNT                    = 21  // { int mount(char *type, char *path, int flags, caddr_t data); }\n\tSYS_UNMOUNT                  = 22  // { int unmount(char *path, int flags); }\n\tSYS_SETUID                   = 23  // { int setuid(uid_t uid); }\n\tSYS_GETUID                   = 24  // { uid_t getuid(void); }\n\tSYS_GETEUID                  = 25  // { uid_t geteuid(void); }\n\tSYS_PTRACE                   = 26  // { int ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG                  = 27  // { int recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG                  = 28  // { int sendmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_RECVFROM                 = 29  // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); }\n\tSYS_ACCEPT                   = 30  // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); }\n\tSYS_GETPEERNAME              = 31  // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }\n\tSYS_GETSOCKNAME              = 32  // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }\n\tSYS_ACCESS                   = 33  // { int access(char *path, int amode); }\n\tSYS_CHFLAGS                  = 34  // { int chflags(const char *path, u_long flags); }\n\tSYS_FCHFLAGS                 = 35  // { int fchflags(int fd, u_long flags); }\n\tSYS_SYNC                     = 36  // { int sync(void); }\n\tSYS_KILL                     = 37  // { int kill(int pid, int signum); }\n\tSYS_GETPPID                  = 39  // { pid_t getppid(void); }\n\tSYS_DUP                      = 41  // { int dup(u_int fd); }\n\tSYS_GETEGID                  = 43  // { gid_t getegid(void); }\n\tSYS_PROFIL                   = 44  // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); }\n\tSYS_KTRACE                   = 45  // { int ktrace(const char *fname, int ops, int facs, int pid); }\n\tSYS_GETGID                   = 47  // { gid_t getgid(void); }\n\tSYS_GETLOGIN                 = 49  // { int getlogin(char *namebuf, u_int namelen); }\n\tSYS_SETLOGIN                 = 50  // { int setlogin(char *namebuf); }\n\tSYS_ACCT                     = 51  // { int acct(char *path); }\n\tSYS_SIGALTSTACK              = 53  // { int sigaltstack(stack_t *ss, stack_t *oss); }\n\tSYS_IOCTL                    = 54  // { int ioctl(int fd, u_long com, caddr_t data); }\n\tSYS_REBOOT                   = 55  // { int reboot(int opt); }\n\tSYS_REVOKE                   = 56  // { int revoke(char *path); }\n\tSYS_SYMLINK                  = 57  // { int symlink(char *path, char *link); }\n\tSYS_READLINK                 = 58  // { ssize_t readlink(char *path, char *buf, size_t count); }\n\tSYS_EXECVE                   = 59  // { int execve(char *fname, char **argv, char **envv); }\n\tSYS_UMASK                    = 60  // { int umask(int newmask); }\n\tSYS_CHROOT                   = 61  // { int chroot(char *path); }\n\tSYS_MSYNC                    = 65  // { int msync(void *addr, size_t len, int flags); }\n\tSYS_VFORK                    = 66  // { int vfork(void); }\n\tSYS_SBRK                     = 69  // { int sbrk(int incr); }\n\tSYS_SSTK                     = 70  // { int sstk(int incr); }\n\tSYS_MUNMAP                   = 73  // { int munmap(void *addr, size_t len); }\n\tSYS_MPROTECT                 = 74  // { int mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE                  = 75  // { int madvise(void *addr, size_t len, int behav); }\n\tSYS_MINCORE                  = 78  // { int mincore(const void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS                = 79  // { int getgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS                = 80  // { int setgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_GETPGRP                  = 81  // { int getpgrp(void); }\n\tSYS_SETPGID                  = 82  // { int setpgid(int pid, int pgid); }\n\tSYS_SETITIMER                = 83  // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_SWAPON                   = 85  // { int swapon(char *name); }\n\tSYS_GETITIMER                = 86  // { int getitimer(u_int which, struct itimerval *itv); }\n\tSYS_GETDTABLESIZE            = 89  // { int getdtablesize(void); }\n\tSYS_DUP2                     = 90  // { int dup2(u_int from, u_int to); }\n\tSYS_FCNTL                    = 92  // { int fcntl(int fd, int cmd, long arg); }\n\tSYS_SELECT                   = 93  // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_FSYNC                    = 95  // { int fsync(int fd); }\n\tSYS_SETPRIORITY              = 96  // { int setpriority(int which, int who, int prio); }\n\tSYS_SOCKET                   = 97  // { int socket(int domain, int type, int protocol); }\n\tSYS_CONNECT                  = 98  // { int connect(int s, caddr_t name, int namelen); }\n\tSYS_GETPRIORITY              = 100 // { int getpriority(int which, int who); }\n\tSYS_BIND                     = 104 // { int bind(int s, caddr_t name, int namelen); }\n\tSYS_SETSOCKOPT               = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); }\n\tSYS_LISTEN                   = 106 // { int listen(int s, int backlog); }\n\tSYS_GETTIMEOFDAY             = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_GETRUSAGE                = 117 // { int getrusage(int who, struct rusage *rusage); }\n\tSYS_GETSOCKOPT               = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); }\n\tSYS_READV                    = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_WRITEV                   = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_SETTIMEOFDAY             = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); }\n\tSYS_FCHOWN                   = 123 // { int fchown(int fd, int uid, int gid); }\n\tSYS_FCHMOD                   = 124 // { int fchmod(int fd, int mode); }\n\tSYS_SETREUID                 = 126 // { int setreuid(int ruid, int euid); }\n\tSYS_SETREGID                 = 127 // { int setregid(int rgid, int egid); }\n\tSYS_RENAME                   = 128 // { int rename(char *from, char *to); }\n\tSYS_FLOCK                    = 131 // { int flock(int fd, int how); }\n\tSYS_MKFIFO                   = 132 // { int mkfifo(char *path, int mode); }\n\tSYS_SENDTO                   = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); }\n\tSYS_SHUTDOWN                 = 134 // { int shutdown(int s, int how); }\n\tSYS_SOCKETPAIR               = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR                    = 136 // { int mkdir(char *path, int mode); }\n\tSYS_RMDIR                    = 137 // { int rmdir(char *path); }\n\tSYS_UTIMES                   = 138 // { int utimes(char *path, struct timeval *tptr); }\n\tSYS_ADJTIME                  = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); }\n\tSYS_SETSID                   = 147 // { int setsid(void); }\n\tSYS_QUOTACTL                 = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); }\n\tSYS_NLM_SYSCALL              = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); }\n\tSYS_NFSSVC                   = 155 // { int nfssvc(int flag, caddr_t argp); }\n\tSYS_LGETFH                   = 160 // { int lgetfh(char *fname, struct fhandle *fhp); }\n\tSYS_GETFH                    = 161 // { int getfh(char *fname, struct fhandle *fhp); }\n\tSYS_SYSARCH                  = 165 // { int sysarch(int op, char *parms); }\n\tSYS_RTPRIO                   = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); }\n\tSYS_SEMSYS                   = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); }\n\tSYS_MSGSYS                   = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); }\n\tSYS_SHMSYS                   = 171 // { int shmsys(int which, int a2, int a3, int a4); }\n\tSYS_SETFIB                   = 175 // { int setfib(int fibnum); }\n\tSYS_NTP_ADJTIME              = 176 // { int ntp_adjtime(struct timex *tp); }\n\tSYS_SETGID                   = 181 // { int setgid(gid_t gid); }\n\tSYS_SETEGID                  = 182 // { int setegid(gid_t egid); }\n\tSYS_SETEUID                  = 183 // { int seteuid(uid_t euid); }\n\tSYS_PATHCONF                 = 191 // { int pathconf(char *path, int name); }\n\tSYS_FPATHCONF                = 192 // { int fpathconf(int fd, int name); }\n\tSYS_GETRLIMIT                = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int\n\tSYS_SETRLIMIT                = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int\n\tSYS___SYSCTL                 = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int\n\tSYS_MLOCK                    = 203 // { int mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK                  = 204 // { int munlock(const void *addr, size_t len); }\n\tSYS_UNDELETE                 = 205 // { int undelete(char *path); }\n\tSYS_FUTIMES                  = 206 // { int futimes(int fd, struct timeval *tptr); }\n\tSYS_GETPGID                  = 207 // { int getpgid(pid_t pid); }\n\tSYS_POLL                     = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_SEMGET                   = 221 // { int semget(key_t key, int nsems, int semflg); }\n\tSYS_SEMOP                    = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_MSGGET                   = 225 // { int msgget(key_t key, int msgflg); }\n\tSYS_MSGSND                   = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV                   = 227 // { ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT                    = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT                    = 230 // { int shmdt(const void *shmaddr); }\n\tSYS_SHMGET                   = 231 // { int shmget(key_t key, size_t size, int shmflg); }\n\tSYS_CLOCK_GETTIME            = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME            = 233 // { int clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES             = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_KTIMER_CREATE            = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); }\n\tSYS_KTIMER_DELETE            = 236 // { int ktimer_delete(int timerid); }\n\tSYS_KTIMER_SETTIME           = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }\n\tSYS_KTIMER_GETTIME           = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); }\n\tSYS_KTIMER_GETOVERRUN        = 239 // { int ktimer_getoverrun(int timerid); }\n\tSYS_NANOSLEEP                = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FFCLOCK_GETCOUNTER       = 241 // { int ffclock_getcounter(ffcounter *ffcount); }\n\tSYS_FFCLOCK_SETESTIMATE      = 242 // { int ffclock_setestimate(struct ffclock_estimate *cest); }\n\tSYS_FFCLOCK_GETESTIMATE      = 243 // { int ffclock_getestimate(struct ffclock_estimate *cest); }\n\tSYS_CLOCK_NANOSLEEP          = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_CLOCK_GETCPUCLOCKID2     = 247 // { int clock_getcpuclockid2(id_t id, int which, clockid_t *clock_id); }\n\tSYS_NTP_GETTIME              = 248 // { int ntp_gettime(struct ntptimeval *ntvp); }\n\tSYS_MINHERIT                 = 250 // { int minherit(void *addr, size_t len, int inherit); }\n\tSYS_RFORK                    = 251 // { int rfork(int flags); }\n\tSYS_ISSETUGID                = 253 // { int issetugid(void); }\n\tSYS_LCHOWN                   = 254 // { int lchown(char *path, int uid, int gid); }\n\tSYS_AIO_READ                 = 255 // { int aio_read(struct aiocb *aiocbp); }\n\tSYS_AIO_WRITE                = 256 // { int aio_write(struct aiocb *aiocbp); }\n\tSYS_LIO_LISTIO               = 257 // { int lio_listio(int mode, struct aiocb* const *acb_list, int nent, struct sigevent *sig); }\n\tSYS_LCHMOD                   = 274 // { int lchmod(char *path, mode_t mode); }\n\tSYS_LUTIMES                  = 276 // { int lutimes(char *path, struct timeval *tptr); }\n\tSYS_PREADV                   = 289 // { ssize_t preadv(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }\n\tSYS_PWRITEV                  = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }\n\tSYS_FHOPEN                   = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); }\n\tSYS_MODNEXT                  = 300 // { int modnext(int modid); }\n\tSYS_MODSTAT                  = 301 // { int modstat(int modid, struct module_stat* stat); }\n\tSYS_MODFNEXT                 = 302 // { int modfnext(int modid); }\n\tSYS_MODFIND                  = 303 // { int modfind(const char *name); }\n\tSYS_KLDLOAD                  = 304 // { int kldload(const char *file); }\n\tSYS_KLDUNLOAD                = 305 // { int kldunload(int fileid); }\n\tSYS_KLDFIND                  = 306 // { int kldfind(const char *file); }\n\tSYS_KLDNEXT                  = 307 // { int kldnext(int fileid); }\n\tSYS_KLDSTAT                  = 308 // { int kldstat(int fileid, struct kld_file_stat *stat); }\n\tSYS_KLDFIRSTMOD              = 309 // { int kldfirstmod(int fileid); }\n\tSYS_GETSID                   = 310 // { int getsid(pid_t pid); }\n\tSYS_SETRESUID                = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_SETRESGID                = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_AIO_RETURN               = 314 // { ssize_t aio_return(struct aiocb *aiocbp); }\n\tSYS_AIO_SUSPEND              = 315 // { int aio_suspend(struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); }\n\tSYS_AIO_CANCEL               = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); }\n\tSYS_AIO_ERROR                = 317 // { int aio_error(struct aiocb *aiocbp); }\n\tSYS_YIELD                    = 321 // { int yield(void); }\n\tSYS_MLOCKALL                 = 324 // { int mlockall(int how); }\n\tSYS_MUNLOCKALL               = 325 // { int munlockall(void); }\n\tSYS___GETCWD                 = 326 // { int __getcwd(char *buf, size_t buflen); }\n\tSYS_SCHED_SETPARAM           = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); }\n\tSYS_SCHED_GETPARAM           = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); }\n\tSYS_SCHED_SETSCHEDULER       = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); }\n\tSYS_SCHED_GETSCHEDULER       = 330 // { int sched_getscheduler (pid_t pid); }\n\tSYS_SCHED_YIELD              = 331 // { int sched_yield (void); }\n\tSYS_SCHED_GET_PRIORITY_MAX   = 332 // { int sched_get_priority_max (int policy); }\n\tSYS_SCHED_GET_PRIORITY_MIN   = 333 // { int sched_get_priority_min (int policy); }\n\tSYS_SCHED_RR_GET_INTERVAL    = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); }\n\tSYS_UTRACE                   = 335 // { int utrace(const void *addr, size_t len); }\n\tSYS_KLDSYM                   = 337 // { int kldsym(int fileid, int cmd, void *data); }\n\tSYS_JAIL                     = 338 // { int jail(struct jail *jail); }\n\tSYS_SIGPROCMASK              = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); }\n\tSYS_SIGSUSPEND               = 341 // { int sigsuspend(const sigset_t *sigmask); }\n\tSYS_SIGPENDING               = 343 // { int sigpending(sigset_t *set); }\n\tSYS_SIGTIMEDWAIT             = 345 // { int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); }\n\tSYS_SIGWAITINFO              = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); }\n\tSYS___ACL_GET_FILE           = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FILE           = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_GET_FD             = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FD             = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_DELETE_FILE        = 351 // { int __acl_delete_file(const char *path, acl_type_t type); }\n\tSYS___ACL_DELETE_FD          = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); }\n\tSYS___ACL_ACLCHECK_FILE      = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_ACLCHECK_FD        = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS_EXTATTRCTL               = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FILE         = 356 // { ssize_t extattr_set_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FILE         = 357 // { ssize_t extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FILE      = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_AIO_WAITCOMPLETE         = 359 // { ssize_t aio_waitcomplete(struct aiocb **aiocbp, struct timespec *timeout); }\n\tSYS_GETRESUID                = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_GETRESGID                = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_KQUEUE                   = 362 // { int kqueue(void); }\n\tSYS_EXTATTR_SET_FD           = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FD           = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FD        = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }\n\tSYS___SETUGID                = 374 // { int __setugid(int flag); }\n\tSYS_EACCESS                  = 376 // { int eaccess(char *path, int amode); }\n\tSYS_NMOUNT                   = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS___MAC_GET_PROC           = 384 // { int __mac_get_proc(struct mac *mac_p); }\n\tSYS___MAC_SET_PROC           = 385 // { int __mac_set_proc(struct mac *mac_p); }\n\tSYS___MAC_GET_FD             = 386 // { int __mac_get_fd(int fd, struct mac *mac_p); }\n\tSYS___MAC_GET_FILE           = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); }\n\tSYS___MAC_SET_FD             = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); }\n\tSYS___MAC_SET_FILE           = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); }\n\tSYS_KENV                     = 390 // { int kenv(int what, const char *name, char *value, int len); }\n\tSYS_LCHFLAGS                 = 391 // { int lchflags(const char *path, u_long flags); }\n\tSYS_UUIDGEN                  = 392 // { int uuidgen(struct uuid *store, int count); }\n\tSYS_SENDFILE                 = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); }\n\tSYS_MAC_SYSCALL              = 394 // { int mac_syscall(const char *policy, int call, void *arg); }\n\tSYS_KSEM_CLOSE               = 400 // { int ksem_close(semid_t id); }\n\tSYS_KSEM_POST                = 401 // { int ksem_post(semid_t id); }\n\tSYS_KSEM_WAIT                = 402 // { int ksem_wait(semid_t id); }\n\tSYS_KSEM_TRYWAIT             = 403 // { int ksem_trywait(semid_t id); }\n\tSYS_KSEM_INIT                = 404 // { int ksem_init(semid_t *idp, unsigned int value); }\n\tSYS_KSEM_OPEN                = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); }\n\tSYS_KSEM_UNLINK              = 406 // { int ksem_unlink(const char *name); }\n\tSYS_KSEM_GETVALUE            = 407 // { int ksem_getvalue(semid_t id, int *val); }\n\tSYS_KSEM_DESTROY             = 408 // { int ksem_destroy(semid_t id); }\n\tSYS___MAC_GET_PID            = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); }\n\tSYS___MAC_GET_LINK           = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); }\n\tSYS___MAC_SET_LINK           = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); }\n\tSYS_EXTATTR_SET_LINK         = 412 // { ssize_t extattr_set_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_LINK         = 413 // { ssize_t extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_LINK      = 414 // { int extattr_delete_link(const char *path, int attrnamespace, const char *attrname); }\n\tSYS___MAC_EXECVE             = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); }\n\tSYS_SIGACTION                = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); }\n\tSYS_SIGRETURN                = 417 // { int sigreturn(const struct __ucontext *sigcntxp); }\n\tSYS_GETCONTEXT               = 421 // { int getcontext(struct __ucontext *ucp); }\n\tSYS_SETCONTEXT               = 422 // { int setcontext(const struct __ucontext *ucp); }\n\tSYS_SWAPCONTEXT              = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); }\n\tSYS_SWAPOFF                  = 424 // { int swapoff(const char *name); }\n\tSYS___ACL_GET_LINK           = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_LINK           = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_DELETE_LINK        = 427 // { int __acl_delete_link(const char *path, acl_type_t type); }\n\tSYS___ACL_ACLCHECK_LINK      = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS_SIGWAIT                  = 429 // { int sigwait(const sigset_t *set, int *sig); }\n\tSYS_THR_CREATE               = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); }\n\tSYS_THR_EXIT                 = 431 // { void thr_exit(long *state); }\n\tSYS_THR_SELF                 = 432 // { int thr_self(long *id); }\n\tSYS_THR_KILL                 = 433 // { int thr_kill(long id, int sig); }\n\tSYS_JAIL_ATTACH              = 436 // { int jail_attach(int jid); }\n\tSYS_EXTATTR_LIST_FD          = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_FILE        = 438 // { ssize_t extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_LINK        = 439 // { ssize_t extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_KSEM_TIMEDWAIT           = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); }\n\tSYS_THR_SUSPEND              = 442 // { int thr_suspend(const struct timespec *timeout); }\n\tSYS_THR_WAKE                 = 443 // { int thr_wake(long id); }\n\tSYS_KLDUNLOADF               = 444 // { int kldunloadf(int fileid, int flags); }\n\tSYS_AUDIT                    = 445 // { int audit(const void *record, u_int length); }\n\tSYS_AUDITON                  = 446 // { int auditon(int cmd, void *data, u_int length); }\n\tSYS_GETAUID                  = 447 // { int getauid(uid_t *auid); }\n\tSYS_SETAUID                  = 448 // { int setauid(uid_t *auid); }\n\tSYS_GETAUDIT                 = 449 // { int getaudit(struct auditinfo *auditinfo); }\n\tSYS_SETAUDIT                 = 450 // { int setaudit(struct auditinfo *auditinfo); }\n\tSYS_GETAUDIT_ADDR            = 451 // { int getaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); }\n\tSYS_SETAUDIT_ADDR            = 452 // { int setaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); }\n\tSYS_AUDITCTL                 = 453 // { int auditctl(char *path); }\n\tSYS__UMTX_OP                 = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); }\n\tSYS_THR_NEW                  = 455 // { int thr_new(struct thr_param *param, int param_size); }\n\tSYS_SIGQUEUE                 = 456 // { int sigqueue(pid_t pid, int signum, void *value); }\n\tSYS_KMQ_OPEN                 = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); }\n\tSYS_KMQ_SETATTR              = 458 // { int kmq_setattr(int mqd, const struct mq_attr *attr, struct mq_attr *oattr); }\n\tSYS_KMQ_TIMEDRECEIVE         = 459 // { int kmq_timedreceive(int mqd, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); }\n\tSYS_KMQ_TIMEDSEND            = 460 // { int kmq_timedsend(int mqd, const char *msg_ptr, size_t msg_len, unsigned msg_prio, const struct timespec *abs_timeout); }\n\tSYS_KMQ_NOTIFY               = 461 // { int kmq_notify(int mqd, const struct sigevent *sigev); }\n\tSYS_KMQ_UNLINK               = 462 // { int kmq_unlink(const char *path); }\n\tSYS_ABORT2                   = 463 // { int abort2(const char *why, int nargs, void **args); }\n\tSYS_THR_SET_NAME             = 464 // { int thr_set_name(long id, const char *name); }\n\tSYS_AIO_FSYNC                = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); }\n\tSYS_RTPRIO_THREAD            = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); }\n\tSYS_SCTP_PEELOFF             = 471 // { int sctp_peeloff(int sd, uint32_t name); }\n\tSYS_SCTP_GENERIC_SENDMSG     = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }\n\tSYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }\n\tSYS_SCTP_GENERIC_RECVMSG     = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, struct sockaddr *from, __socklen_t *fromlenaddr, struct sctp_sndrcvinfo *sinfo, int *msg_flags); }\n\tSYS_PREAD                    = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); }\n\tSYS_PWRITE                   = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); }\n\tSYS_MMAP                     = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); }\n\tSYS_LSEEK                    = 478 // { off_t lseek(int fd, off_t offset, int whence); }\n\tSYS_TRUNCATE                 = 479 // { int truncate(char *path, off_t length); }\n\tSYS_FTRUNCATE                = 480 // { int ftruncate(int fd, off_t length); }\n\tSYS_THR_KILL2                = 481 // { int thr_kill2(pid_t pid, long id, int sig); }\n\tSYS_SHM_OPEN                 = 482 // { int shm_open(const char *path, int flags, mode_t mode); }\n\tSYS_SHM_UNLINK               = 483 // { int shm_unlink(const char *path); }\n\tSYS_CPUSET                   = 484 // { int cpuset(cpusetid_t *setid); }\n\tSYS_CPUSET_SETID             = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); }\n\tSYS_CPUSET_GETID             = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); }\n\tSYS_CPUSET_GETAFFINITY       = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); }\n\tSYS_CPUSET_SETAFFINITY       = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); }\n\tSYS_FACCESSAT                = 489 // { int faccessat(int fd, char *path, int amode, int flag); }\n\tSYS_FCHMODAT                 = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT                 = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_FEXECVE                  = 492 // { int fexecve(int fd, char **argv, char **envv); }\n\tSYS_FUTIMESAT                = 494 // { int futimesat(int fd, char *path, struct timeval *times); }\n\tSYS_LINKAT                   = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); }\n\tSYS_MKDIRAT                  = 496 // { int mkdirat(int fd, char *path, mode_t mode); }\n\tSYS_MKFIFOAT                 = 497 // { int mkfifoat(int fd, char *path, mode_t mode); }\n\tSYS_OPENAT                   = 499 // { int openat(int fd, char *path, int flag, mode_t mode); }\n\tSYS_READLINKAT               = 500 // { ssize_t readlinkat(int fd, char *path, char *buf, size_t bufsize); }\n\tSYS_RENAMEAT                 = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); }\n\tSYS_SYMLINKAT                = 502 // { int symlinkat(char *path1, int fd, char *path2); }\n\tSYS_UNLINKAT                 = 503 // { int unlinkat(int fd, char *path, int flag); }\n\tSYS_POSIX_OPENPT             = 504 // { int posix_openpt(int flags); }\n\tSYS_GSSD_SYSCALL             = 505 // { int gssd_syscall(char *path); }\n\tSYS_JAIL_GET                 = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS_JAIL_SET                 = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS_JAIL_REMOVE              = 508 // { int jail_remove(int jid); }\n\tSYS_CLOSEFROM                = 509 // { int closefrom(int lowfd); }\n\tSYS___SEMCTL                 = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_MSGCTL                   = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SHMCTL                   = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_LPATHCONF                = 513 // { int lpathconf(char *path, int name); }\n\tSYS___CAP_RIGHTS_GET         = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); }\n\tSYS_CAP_ENTER                = 516 // { int cap_enter(void); }\n\tSYS_CAP_GETMODE              = 517 // { int cap_getmode(u_int *modep); }\n\tSYS_PDFORK                   = 518 // { int pdfork(int *fdp, int flags); }\n\tSYS_PDKILL                   = 519 // { int pdkill(int fd, int signum); }\n\tSYS_PDGETPID                 = 520 // { int pdgetpid(int fd, pid_t *pidp); }\n\tSYS_PSELECT                  = 522 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); }\n\tSYS_GETLOGINCLASS            = 523 // { int getloginclass(char *namebuf, size_t namelen); }\n\tSYS_SETLOGINCLASS            = 524 // { int setloginclass(const char *namebuf); }\n\tSYS_RCTL_GET_RACCT           = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_GET_RULES           = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_GET_LIMITS          = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_ADD_RULE            = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_REMOVE_RULE         = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_POSIX_FALLOCATE          = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); }\n\tSYS_POSIX_FADVISE            = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); }\n\tSYS_WAIT6                    = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); }\n\tSYS_CAP_RIGHTS_LIMIT         = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); }\n\tSYS_CAP_IOCTLS_LIMIT         = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); }\n\tSYS_CAP_IOCTLS_GET           = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); }\n\tSYS_CAP_FCNTLS_LIMIT         = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); }\n\tSYS_CAP_FCNTLS_GET           = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); }\n\tSYS_BINDAT                   = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); }\n\tSYS_CONNECTAT                = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); }\n\tSYS_CHFLAGSAT                = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); }\n\tSYS_ACCEPT4                  = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); }\n\tSYS_PIPE2                    = 542 // { int pipe2(int *fildes, int flags); }\n\tSYS_AIO_MLOCK                = 543 // { int aio_mlock(struct aiocb *aiocbp); }\n\tSYS_PROCCTL                  = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); }\n\tSYS_PPOLL                    = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); }\n\tSYS_FUTIMENS                 = 546 // { int futimens(int fd, struct timespec *times); }\n\tSYS_UTIMENSAT                = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); }\n\tSYS_FDATASYNC                = 550 // { int fdatasync(int fd); }\n\tSYS_FSTAT                    = 551 // { int fstat(int fd, struct stat *sb); }\n\tSYS_FSTATAT                  = 552 // { int fstatat(int fd, char *path, struct stat *buf, int flag); }\n\tSYS_FHSTAT                   = 553 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); }\n\tSYS_GETDIRENTRIES            = 554 // { ssize_t getdirentries(int fd, char *buf, size_t count, off_t *basep); }\n\tSYS_STATFS                   = 555 // { int statfs(char *path, struct statfs *buf); }\n\tSYS_FSTATFS                  = 556 // { int fstatfs(int fd, struct statfs *buf); }\n\tSYS_GETFSSTAT                = 557 // { int getfsstat(struct statfs *buf, long bufsize, int mode); }\n\tSYS_FHSTATFS                 = 558 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); }\n\tSYS_MKNODAT                  = 559 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); }\n\tSYS_KEVENT                   = 560 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_CPUSET_GETDOMAIN         = 561 // { int cpuset_getdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int *policy); }\n\tSYS_CPUSET_SETDOMAIN         = 562 // { int cpuset_setdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int policy); }\n\tSYS_GETRANDOM                = 563 // { int getrandom(void *buf, size_t buflen, unsigned int flags); }\n\tSYS_GETFHAT                  = 564 // { int getfhat(int fd, char *path, struct fhandle *fhp, int flags); }\n\tSYS_FHLINK                   = 565 // { int fhlink(struct fhandle *fhp, const char *to); }\n\tSYS_FHLINKAT                 = 566 // { int fhlinkat(struct fhandle *fhp, int tofd, const char *to,); }\n\tSYS_FHREADLINK               = 567 // { int fhreadlink(struct fhandle *fhp, char *buf, size_t bufsize); }\n\tSYS___SYSCTLBYNAME           = 570 // { int __sysctlbyname(const char *name, size_t namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }\n\tSYS_CLOSE_RANGE              = 575 // { int close_range(u_int lowfd, u_int highfd, int flags); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go",
    "content": "// go run mksysnum.go https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && freebsd\n\npackage unix\n\nconst (\n\t// SYS_NOSYS = 0;  // { int nosys(void); } syscall nosys_args int\n\tSYS_EXIT                     = 1   // { void sys_exit(int rval); } exit sys_exit_args void\n\tSYS_FORK                     = 2   // { int fork(void); }\n\tSYS_READ                     = 3   // { ssize_t read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE                    = 4   // { ssize_t write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN                     = 5   // { int open(char *path, int flags, int mode); }\n\tSYS_CLOSE                    = 6   // { int close(int fd); }\n\tSYS_WAIT4                    = 7   // { int wait4(int pid, int *status, int options, struct rusage *rusage); }\n\tSYS_LINK                     = 9   // { int link(char *path, char *link); }\n\tSYS_UNLINK                   = 10  // { int unlink(char *path); }\n\tSYS_CHDIR                    = 12  // { int chdir(char *path); }\n\tSYS_FCHDIR                   = 13  // { int fchdir(int fd); }\n\tSYS_CHMOD                    = 15  // { int chmod(char *path, int mode); }\n\tSYS_CHOWN                    = 16  // { int chown(char *path, int uid, int gid); }\n\tSYS_BREAK                    = 17  // { caddr_t break(char *nsize); }\n\tSYS_GETPID                   = 20  // { pid_t getpid(void); }\n\tSYS_MOUNT                    = 21  // { int mount(char *type, char *path, int flags, caddr_t data); }\n\tSYS_UNMOUNT                  = 22  // { int unmount(char *path, int flags); }\n\tSYS_SETUID                   = 23  // { int setuid(uid_t uid); }\n\tSYS_GETUID                   = 24  // { uid_t getuid(void); }\n\tSYS_GETEUID                  = 25  // { uid_t geteuid(void); }\n\tSYS_PTRACE                   = 26  // { int ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG                  = 27  // { int recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG                  = 28  // { int sendmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_RECVFROM                 = 29  // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); }\n\tSYS_ACCEPT                   = 30  // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); }\n\tSYS_GETPEERNAME              = 31  // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }\n\tSYS_GETSOCKNAME              = 32  // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }\n\tSYS_ACCESS                   = 33  // { int access(char *path, int amode); }\n\tSYS_CHFLAGS                  = 34  // { int chflags(const char *path, u_long flags); }\n\tSYS_FCHFLAGS                 = 35  // { int fchflags(int fd, u_long flags); }\n\tSYS_SYNC                     = 36  // { int sync(void); }\n\tSYS_KILL                     = 37  // { int kill(int pid, int signum); }\n\tSYS_GETPPID                  = 39  // { pid_t getppid(void); }\n\tSYS_DUP                      = 41  // { int dup(u_int fd); }\n\tSYS_GETEGID                  = 43  // { gid_t getegid(void); }\n\tSYS_PROFIL                   = 44  // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); }\n\tSYS_KTRACE                   = 45  // { int ktrace(const char *fname, int ops, int facs, int pid); }\n\tSYS_GETGID                   = 47  // { gid_t getgid(void); }\n\tSYS_GETLOGIN                 = 49  // { int getlogin(char *namebuf, u_int namelen); }\n\tSYS_SETLOGIN                 = 50  // { int setlogin(char *namebuf); }\n\tSYS_ACCT                     = 51  // { int acct(char *path); }\n\tSYS_SIGALTSTACK              = 53  // { int sigaltstack(stack_t *ss, stack_t *oss); }\n\tSYS_IOCTL                    = 54  // { int ioctl(int fd, u_long com, caddr_t data); }\n\tSYS_REBOOT                   = 55  // { int reboot(int opt); }\n\tSYS_REVOKE                   = 56  // { int revoke(char *path); }\n\tSYS_SYMLINK                  = 57  // { int symlink(char *path, char *link); }\n\tSYS_READLINK                 = 58  // { ssize_t readlink(char *path, char *buf, size_t count); }\n\tSYS_EXECVE                   = 59  // { int execve(char *fname, char **argv, char **envv); }\n\tSYS_UMASK                    = 60  // { int umask(int newmask); }\n\tSYS_CHROOT                   = 61  // { int chroot(char *path); }\n\tSYS_MSYNC                    = 65  // { int msync(void *addr, size_t len, int flags); }\n\tSYS_VFORK                    = 66  // { int vfork(void); }\n\tSYS_SBRK                     = 69  // { int sbrk(int incr); }\n\tSYS_SSTK                     = 70  // { int sstk(int incr); }\n\tSYS_MUNMAP                   = 73  // { int munmap(void *addr, size_t len); }\n\tSYS_MPROTECT                 = 74  // { int mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE                  = 75  // { int madvise(void *addr, size_t len, int behav); }\n\tSYS_MINCORE                  = 78  // { int mincore(const void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS                = 79  // { int getgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS                = 80  // { int setgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_GETPGRP                  = 81  // { int getpgrp(void); }\n\tSYS_SETPGID                  = 82  // { int setpgid(int pid, int pgid); }\n\tSYS_SETITIMER                = 83  // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_SWAPON                   = 85  // { int swapon(char *name); }\n\tSYS_GETITIMER                = 86  // { int getitimer(u_int which, struct itimerval *itv); }\n\tSYS_GETDTABLESIZE            = 89  // { int getdtablesize(void); }\n\tSYS_DUP2                     = 90  // { int dup2(u_int from, u_int to); }\n\tSYS_FCNTL                    = 92  // { int fcntl(int fd, int cmd, long arg); }\n\tSYS_SELECT                   = 93  // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_FSYNC                    = 95  // { int fsync(int fd); }\n\tSYS_SETPRIORITY              = 96  // { int setpriority(int which, int who, int prio); }\n\tSYS_SOCKET                   = 97  // { int socket(int domain, int type, int protocol); }\n\tSYS_CONNECT                  = 98  // { int connect(int s, caddr_t name, int namelen); }\n\tSYS_GETPRIORITY              = 100 // { int getpriority(int which, int who); }\n\tSYS_BIND                     = 104 // { int bind(int s, caddr_t name, int namelen); }\n\tSYS_SETSOCKOPT               = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); }\n\tSYS_LISTEN                   = 106 // { int listen(int s, int backlog); }\n\tSYS_GETTIMEOFDAY             = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_GETRUSAGE                = 117 // { int getrusage(int who, struct rusage *rusage); }\n\tSYS_GETSOCKOPT               = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); }\n\tSYS_READV                    = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_WRITEV                   = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_SETTIMEOFDAY             = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); }\n\tSYS_FCHOWN                   = 123 // { int fchown(int fd, int uid, int gid); }\n\tSYS_FCHMOD                   = 124 // { int fchmod(int fd, int mode); }\n\tSYS_SETREUID                 = 126 // { int setreuid(int ruid, int euid); }\n\tSYS_SETREGID                 = 127 // { int setregid(int rgid, int egid); }\n\tSYS_RENAME                   = 128 // { int rename(char *from, char *to); }\n\tSYS_FLOCK                    = 131 // { int flock(int fd, int how); }\n\tSYS_MKFIFO                   = 132 // { int mkfifo(char *path, int mode); }\n\tSYS_SENDTO                   = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); }\n\tSYS_SHUTDOWN                 = 134 // { int shutdown(int s, int how); }\n\tSYS_SOCKETPAIR               = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR                    = 136 // { int mkdir(char *path, int mode); }\n\tSYS_RMDIR                    = 137 // { int rmdir(char *path); }\n\tSYS_UTIMES                   = 138 // { int utimes(char *path, struct timeval *tptr); }\n\tSYS_ADJTIME                  = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); }\n\tSYS_SETSID                   = 147 // { int setsid(void); }\n\tSYS_QUOTACTL                 = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); }\n\tSYS_NLM_SYSCALL              = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); }\n\tSYS_NFSSVC                   = 155 // { int nfssvc(int flag, caddr_t argp); }\n\tSYS_LGETFH                   = 160 // { int lgetfh(char *fname, struct fhandle *fhp); }\n\tSYS_GETFH                    = 161 // { int getfh(char *fname, struct fhandle *fhp); }\n\tSYS_SYSARCH                  = 165 // { int sysarch(int op, char *parms); }\n\tSYS_RTPRIO                   = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); }\n\tSYS_SEMSYS                   = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); }\n\tSYS_MSGSYS                   = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); }\n\tSYS_SHMSYS                   = 171 // { int shmsys(int which, int a2, int a3, int a4); }\n\tSYS_SETFIB                   = 175 // { int setfib(int fibnum); }\n\tSYS_NTP_ADJTIME              = 176 // { int ntp_adjtime(struct timex *tp); }\n\tSYS_SETGID                   = 181 // { int setgid(gid_t gid); }\n\tSYS_SETEGID                  = 182 // { int setegid(gid_t egid); }\n\tSYS_SETEUID                  = 183 // { int seteuid(uid_t euid); }\n\tSYS_PATHCONF                 = 191 // { int pathconf(char *path, int name); }\n\tSYS_FPATHCONF                = 192 // { int fpathconf(int fd, int name); }\n\tSYS_GETRLIMIT                = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int\n\tSYS_SETRLIMIT                = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int\n\tSYS___SYSCTL                 = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int\n\tSYS_MLOCK                    = 203 // { int mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK                  = 204 // { int munlock(const void *addr, size_t len); }\n\tSYS_UNDELETE                 = 205 // { int undelete(char *path); }\n\tSYS_FUTIMES                  = 206 // { int futimes(int fd, struct timeval *tptr); }\n\tSYS_GETPGID                  = 207 // { int getpgid(pid_t pid); }\n\tSYS_POLL                     = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_SEMGET                   = 221 // { int semget(key_t key, int nsems, int semflg); }\n\tSYS_SEMOP                    = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_MSGGET                   = 225 // { int msgget(key_t key, int msgflg); }\n\tSYS_MSGSND                   = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV                   = 227 // { ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT                    = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT                    = 230 // { int shmdt(const void *shmaddr); }\n\tSYS_SHMGET                   = 231 // { int shmget(key_t key, size_t size, int shmflg); }\n\tSYS_CLOCK_GETTIME            = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME            = 233 // { int clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES             = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_KTIMER_CREATE            = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); }\n\tSYS_KTIMER_DELETE            = 236 // { int ktimer_delete(int timerid); }\n\tSYS_KTIMER_SETTIME           = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }\n\tSYS_KTIMER_GETTIME           = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); }\n\tSYS_KTIMER_GETOVERRUN        = 239 // { int ktimer_getoverrun(int timerid); }\n\tSYS_NANOSLEEP                = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FFCLOCK_GETCOUNTER       = 241 // { int ffclock_getcounter(ffcounter *ffcount); }\n\tSYS_FFCLOCK_SETESTIMATE      = 242 // { int ffclock_setestimate(struct ffclock_estimate *cest); }\n\tSYS_FFCLOCK_GETESTIMATE      = 243 // { int ffclock_getestimate(struct ffclock_estimate *cest); }\n\tSYS_CLOCK_NANOSLEEP          = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_CLOCK_GETCPUCLOCKID2     = 247 // { int clock_getcpuclockid2(id_t id, int which, clockid_t *clock_id); }\n\tSYS_NTP_GETTIME              = 248 // { int ntp_gettime(struct ntptimeval *ntvp); }\n\tSYS_MINHERIT                 = 250 // { int minherit(void *addr, size_t len, int inherit); }\n\tSYS_RFORK                    = 251 // { int rfork(int flags); }\n\tSYS_ISSETUGID                = 253 // { int issetugid(void); }\n\tSYS_LCHOWN                   = 254 // { int lchown(char *path, int uid, int gid); }\n\tSYS_AIO_READ                 = 255 // { int aio_read(struct aiocb *aiocbp); }\n\tSYS_AIO_WRITE                = 256 // { int aio_write(struct aiocb *aiocbp); }\n\tSYS_LIO_LISTIO               = 257 // { int lio_listio(int mode, struct aiocb* const *acb_list, int nent, struct sigevent *sig); }\n\tSYS_LCHMOD                   = 274 // { int lchmod(char *path, mode_t mode); }\n\tSYS_LUTIMES                  = 276 // { int lutimes(char *path, struct timeval *tptr); }\n\tSYS_PREADV                   = 289 // { ssize_t preadv(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }\n\tSYS_PWRITEV                  = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }\n\tSYS_FHOPEN                   = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); }\n\tSYS_MODNEXT                  = 300 // { int modnext(int modid); }\n\tSYS_MODSTAT                  = 301 // { int modstat(int modid, struct module_stat* stat); }\n\tSYS_MODFNEXT                 = 302 // { int modfnext(int modid); }\n\tSYS_MODFIND                  = 303 // { int modfind(const char *name); }\n\tSYS_KLDLOAD                  = 304 // { int kldload(const char *file); }\n\tSYS_KLDUNLOAD                = 305 // { int kldunload(int fileid); }\n\tSYS_KLDFIND                  = 306 // { int kldfind(const char *file); }\n\tSYS_KLDNEXT                  = 307 // { int kldnext(int fileid); }\n\tSYS_KLDSTAT                  = 308 // { int kldstat(int fileid, struct kld_file_stat *stat); }\n\tSYS_KLDFIRSTMOD              = 309 // { int kldfirstmod(int fileid); }\n\tSYS_GETSID                   = 310 // { int getsid(pid_t pid); }\n\tSYS_SETRESUID                = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_SETRESGID                = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_AIO_RETURN               = 314 // { ssize_t aio_return(struct aiocb *aiocbp); }\n\tSYS_AIO_SUSPEND              = 315 // { int aio_suspend(struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); }\n\tSYS_AIO_CANCEL               = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); }\n\tSYS_AIO_ERROR                = 317 // { int aio_error(struct aiocb *aiocbp); }\n\tSYS_YIELD                    = 321 // { int yield(void); }\n\tSYS_MLOCKALL                 = 324 // { int mlockall(int how); }\n\tSYS_MUNLOCKALL               = 325 // { int munlockall(void); }\n\tSYS___GETCWD                 = 326 // { int __getcwd(char *buf, size_t buflen); }\n\tSYS_SCHED_SETPARAM           = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); }\n\tSYS_SCHED_GETPARAM           = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); }\n\tSYS_SCHED_SETSCHEDULER       = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); }\n\tSYS_SCHED_GETSCHEDULER       = 330 // { int sched_getscheduler (pid_t pid); }\n\tSYS_SCHED_YIELD              = 331 // { int sched_yield (void); }\n\tSYS_SCHED_GET_PRIORITY_MAX   = 332 // { int sched_get_priority_max (int policy); }\n\tSYS_SCHED_GET_PRIORITY_MIN   = 333 // { int sched_get_priority_min (int policy); }\n\tSYS_SCHED_RR_GET_INTERVAL    = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); }\n\tSYS_UTRACE                   = 335 // { int utrace(const void *addr, size_t len); }\n\tSYS_KLDSYM                   = 337 // { int kldsym(int fileid, int cmd, void *data); }\n\tSYS_JAIL                     = 338 // { int jail(struct jail *jail); }\n\tSYS_SIGPROCMASK              = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); }\n\tSYS_SIGSUSPEND               = 341 // { int sigsuspend(const sigset_t *sigmask); }\n\tSYS_SIGPENDING               = 343 // { int sigpending(sigset_t *set); }\n\tSYS_SIGTIMEDWAIT             = 345 // { int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); }\n\tSYS_SIGWAITINFO              = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); }\n\tSYS___ACL_GET_FILE           = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FILE           = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_GET_FD             = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FD             = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_DELETE_FILE        = 351 // { int __acl_delete_file(const char *path, acl_type_t type); }\n\tSYS___ACL_DELETE_FD          = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); }\n\tSYS___ACL_ACLCHECK_FILE      = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_ACLCHECK_FD        = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS_EXTATTRCTL               = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FILE         = 356 // { ssize_t extattr_set_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FILE         = 357 // { ssize_t extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FILE      = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_AIO_WAITCOMPLETE         = 359 // { ssize_t aio_waitcomplete(struct aiocb **aiocbp, struct timespec *timeout); }\n\tSYS_GETRESUID                = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_GETRESGID                = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_KQUEUE                   = 362 // { int kqueue(void); }\n\tSYS_EXTATTR_SET_FD           = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FD           = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FD        = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }\n\tSYS___SETUGID                = 374 // { int __setugid(int flag); }\n\tSYS_EACCESS                  = 376 // { int eaccess(char *path, int amode); }\n\tSYS_NMOUNT                   = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS___MAC_GET_PROC           = 384 // { int __mac_get_proc(struct mac *mac_p); }\n\tSYS___MAC_SET_PROC           = 385 // { int __mac_set_proc(struct mac *mac_p); }\n\tSYS___MAC_GET_FD             = 386 // { int __mac_get_fd(int fd, struct mac *mac_p); }\n\tSYS___MAC_GET_FILE           = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); }\n\tSYS___MAC_SET_FD             = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); }\n\tSYS___MAC_SET_FILE           = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); }\n\tSYS_KENV                     = 390 // { int kenv(int what, const char *name, char *value, int len); }\n\tSYS_LCHFLAGS                 = 391 // { int lchflags(const char *path, u_long flags); }\n\tSYS_UUIDGEN                  = 392 // { int uuidgen(struct uuid *store, int count); }\n\tSYS_SENDFILE                 = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); }\n\tSYS_MAC_SYSCALL              = 394 // { int mac_syscall(const char *policy, int call, void *arg); }\n\tSYS_KSEM_CLOSE               = 400 // { int ksem_close(semid_t id); }\n\tSYS_KSEM_POST                = 401 // { int ksem_post(semid_t id); }\n\tSYS_KSEM_WAIT                = 402 // { int ksem_wait(semid_t id); }\n\tSYS_KSEM_TRYWAIT             = 403 // { int ksem_trywait(semid_t id); }\n\tSYS_KSEM_INIT                = 404 // { int ksem_init(semid_t *idp, unsigned int value); }\n\tSYS_KSEM_OPEN                = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); }\n\tSYS_KSEM_UNLINK              = 406 // { int ksem_unlink(const char *name); }\n\tSYS_KSEM_GETVALUE            = 407 // { int ksem_getvalue(semid_t id, int *val); }\n\tSYS_KSEM_DESTROY             = 408 // { int ksem_destroy(semid_t id); }\n\tSYS___MAC_GET_PID            = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); }\n\tSYS___MAC_GET_LINK           = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); }\n\tSYS___MAC_SET_LINK           = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); }\n\tSYS_EXTATTR_SET_LINK         = 412 // { ssize_t extattr_set_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_LINK         = 413 // { ssize_t extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_LINK      = 414 // { int extattr_delete_link(const char *path, int attrnamespace, const char *attrname); }\n\tSYS___MAC_EXECVE             = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); }\n\tSYS_SIGACTION                = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); }\n\tSYS_SIGRETURN                = 417 // { int sigreturn(const struct __ucontext *sigcntxp); }\n\tSYS_GETCONTEXT               = 421 // { int getcontext(struct __ucontext *ucp); }\n\tSYS_SETCONTEXT               = 422 // { int setcontext(const struct __ucontext *ucp); }\n\tSYS_SWAPCONTEXT              = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); }\n\tSYS_SWAPOFF                  = 424 // { int swapoff(const char *name); }\n\tSYS___ACL_GET_LINK           = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_LINK           = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_DELETE_LINK        = 427 // { int __acl_delete_link(const char *path, acl_type_t type); }\n\tSYS___ACL_ACLCHECK_LINK      = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS_SIGWAIT                  = 429 // { int sigwait(const sigset_t *set, int *sig); }\n\tSYS_THR_CREATE               = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); }\n\tSYS_THR_EXIT                 = 431 // { void thr_exit(long *state); }\n\tSYS_THR_SELF                 = 432 // { int thr_self(long *id); }\n\tSYS_THR_KILL                 = 433 // { int thr_kill(long id, int sig); }\n\tSYS_JAIL_ATTACH              = 436 // { int jail_attach(int jid); }\n\tSYS_EXTATTR_LIST_FD          = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_FILE        = 438 // { ssize_t extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_LINK        = 439 // { ssize_t extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_KSEM_TIMEDWAIT           = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); }\n\tSYS_THR_SUSPEND              = 442 // { int thr_suspend(const struct timespec *timeout); }\n\tSYS_THR_WAKE                 = 443 // { int thr_wake(long id); }\n\tSYS_KLDUNLOADF               = 444 // { int kldunloadf(int fileid, int flags); }\n\tSYS_AUDIT                    = 445 // { int audit(const void *record, u_int length); }\n\tSYS_AUDITON                  = 446 // { int auditon(int cmd, void *data, u_int length); }\n\tSYS_GETAUID                  = 447 // { int getauid(uid_t *auid); }\n\tSYS_SETAUID                  = 448 // { int setauid(uid_t *auid); }\n\tSYS_GETAUDIT                 = 449 // { int getaudit(struct auditinfo *auditinfo); }\n\tSYS_SETAUDIT                 = 450 // { int setaudit(struct auditinfo *auditinfo); }\n\tSYS_GETAUDIT_ADDR            = 451 // { int getaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); }\n\tSYS_SETAUDIT_ADDR            = 452 // { int setaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); }\n\tSYS_AUDITCTL                 = 453 // { int auditctl(char *path); }\n\tSYS__UMTX_OP                 = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); }\n\tSYS_THR_NEW                  = 455 // { int thr_new(struct thr_param *param, int param_size); }\n\tSYS_SIGQUEUE                 = 456 // { int sigqueue(pid_t pid, int signum, void *value); }\n\tSYS_KMQ_OPEN                 = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); }\n\tSYS_KMQ_SETATTR              = 458 // { int kmq_setattr(int mqd, const struct mq_attr *attr, struct mq_attr *oattr); }\n\tSYS_KMQ_TIMEDRECEIVE         = 459 // { int kmq_timedreceive(int mqd, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); }\n\tSYS_KMQ_TIMEDSEND            = 460 // { int kmq_timedsend(int mqd, const char *msg_ptr, size_t msg_len, unsigned msg_prio, const struct timespec *abs_timeout); }\n\tSYS_KMQ_NOTIFY               = 461 // { int kmq_notify(int mqd, const struct sigevent *sigev); }\n\tSYS_KMQ_UNLINK               = 462 // { int kmq_unlink(const char *path); }\n\tSYS_ABORT2                   = 463 // { int abort2(const char *why, int nargs, void **args); }\n\tSYS_THR_SET_NAME             = 464 // { int thr_set_name(long id, const char *name); }\n\tSYS_AIO_FSYNC                = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); }\n\tSYS_RTPRIO_THREAD            = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); }\n\tSYS_SCTP_PEELOFF             = 471 // { int sctp_peeloff(int sd, uint32_t name); }\n\tSYS_SCTP_GENERIC_SENDMSG     = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }\n\tSYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }\n\tSYS_SCTP_GENERIC_RECVMSG     = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, struct sockaddr *from, __socklen_t *fromlenaddr, struct sctp_sndrcvinfo *sinfo, int *msg_flags); }\n\tSYS_PREAD                    = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); }\n\tSYS_PWRITE                   = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); }\n\tSYS_MMAP                     = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); }\n\tSYS_LSEEK                    = 478 // { off_t lseek(int fd, off_t offset, int whence); }\n\tSYS_TRUNCATE                 = 479 // { int truncate(char *path, off_t length); }\n\tSYS_FTRUNCATE                = 480 // { int ftruncate(int fd, off_t length); }\n\tSYS_THR_KILL2                = 481 // { int thr_kill2(pid_t pid, long id, int sig); }\n\tSYS_SHM_OPEN                 = 482 // { int shm_open(const char *path, int flags, mode_t mode); }\n\tSYS_SHM_UNLINK               = 483 // { int shm_unlink(const char *path); }\n\tSYS_CPUSET                   = 484 // { int cpuset(cpusetid_t *setid); }\n\tSYS_CPUSET_SETID             = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); }\n\tSYS_CPUSET_GETID             = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); }\n\tSYS_CPUSET_GETAFFINITY       = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); }\n\tSYS_CPUSET_SETAFFINITY       = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); }\n\tSYS_FACCESSAT                = 489 // { int faccessat(int fd, char *path, int amode, int flag); }\n\tSYS_FCHMODAT                 = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT                 = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_FEXECVE                  = 492 // { int fexecve(int fd, char **argv, char **envv); }\n\tSYS_FUTIMESAT                = 494 // { int futimesat(int fd, char *path, struct timeval *times); }\n\tSYS_LINKAT                   = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); }\n\tSYS_MKDIRAT                  = 496 // { int mkdirat(int fd, char *path, mode_t mode); }\n\tSYS_MKFIFOAT                 = 497 // { int mkfifoat(int fd, char *path, mode_t mode); }\n\tSYS_OPENAT                   = 499 // { int openat(int fd, char *path, int flag, mode_t mode); }\n\tSYS_READLINKAT               = 500 // { ssize_t readlinkat(int fd, char *path, char *buf, size_t bufsize); }\n\tSYS_RENAMEAT                 = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); }\n\tSYS_SYMLINKAT                = 502 // { int symlinkat(char *path1, int fd, char *path2); }\n\tSYS_UNLINKAT                 = 503 // { int unlinkat(int fd, char *path, int flag); }\n\tSYS_POSIX_OPENPT             = 504 // { int posix_openpt(int flags); }\n\tSYS_GSSD_SYSCALL             = 505 // { int gssd_syscall(char *path); }\n\tSYS_JAIL_GET                 = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS_JAIL_SET                 = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS_JAIL_REMOVE              = 508 // { int jail_remove(int jid); }\n\tSYS_CLOSEFROM                = 509 // { int closefrom(int lowfd); }\n\tSYS___SEMCTL                 = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_MSGCTL                   = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SHMCTL                   = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_LPATHCONF                = 513 // { int lpathconf(char *path, int name); }\n\tSYS___CAP_RIGHTS_GET         = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); }\n\tSYS_CAP_ENTER                = 516 // { int cap_enter(void); }\n\tSYS_CAP_GETMODE              = 517 // { int cap_getmode(u_int *modep); }\n\tSYS_PDFORK                   = 518 // { int pdfork(int *fdp, int flags); }\n\tSYS_PDKILL                   = 519 // { int pdkill(int fd, int signum); }\n\tSYS_PDGETPID                 = 520 // { int pdgetpid(int fd, pid_t *pidp); }\n\tSYS_PSELECT                  = 522 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); }\n\tSYS_GETLOGINCLASS            = 523 // { int getloginclass(char *namebuf, size_t namelen); }\n\tSYS_SETLOGINCLASS            = 524 // { int setloginclass(const char *namebuf); }\n\tSYS_RCTL_GET_RACCT           = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_GET_RULES           = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_GET_LIMITS          = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_ADD_RULE            = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_REMOVE_RULE         = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_POSIX_FALLOCATE          = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); }\n\tSYS_POSIX_FADVISE            = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); }\n\tSYS_WAIT6                    = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); }\n\tSYS_CAP_RIGHTS_LIMIT         = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); }\n\tSYS_CAP_IOCTLS_LIMIT         = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); }\n\tSYS_CAP_IOCTLS_GET           = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); }\n\tSYS_CAP_FCNTLS_LIMIT         = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); }\n\tSYS_CAP_FCNTLS_GET           = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); }\n\tSYS_BINDAT                   = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); }\n\tSYS_CONNECTAT                = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); }\n\tSYS_CHFLAGSAT                = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); }\n\tSYS_ACCEPT4                  = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); }\n\tSYS_PIPE2                    = 542 // { int pipe2(int *fildes, int flags); }\n\tSYS_AIO_MLOCK                = 543 // { int aio_mlock(struct aiocb *aiocbp); }\n\tSYS_PROCCTL                  = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); }\n\tSYS_PPOLL                    = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); }\n\tSYS_FUTIMENS                 = 546 // { int futimens(int fd, struct timespec *times); }\n\tSYS_UTIMENSAT                = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); }\n\tSYS_FDATASYNC                = 550 // { int fdatasync(int fd); }\n\tSYS_FSTAT                    = 551 // { int fstat(int fd, struct stat *sb); }\n\tSYS_FSTATAT                  = 552 // { int fstatat(int fd, char *path, struct stat *buf, int flag); }\n\tSYS_FHSTAT                   = 553 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); }\n\tSYS_GETDIRENTRIES            = 554 // { ssize_t getdirentries(int fd, char *buf, size_t count, off_t *basep); }\n\tSYS_STATFS                   = 555 // { int statfs(char *path, struct statfs *buf); }\n\tSYS_FSTATFS                  = 556 // { int fstatfs(int fd, struct statfs *buf); }\n\tSYS_GETFSSTAT                = 557 // { int getfsstat(struct statfs *buf, long bufsize, int mode); }\n\tSYS_FHSTATFS                 = 558 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); }\n\tSYS_MKNODAT                  = 559 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); }\n\tSYS_KEVENT                   = 560 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_CPUSET_GETDOMAIN         = 561 // { int cpuset_getdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int *policy); }\n\tSYS_CPUSET_SETDOMAIN         = 562 // { int cpuset_setdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int policy); }\n\tSYS_GETRANDOM                = 563 // { int getrandom(void *buf, size_t buflen, unsigned int flags); }\n\tSYS_GETFHAT                  = 564 // { int getfhat(int fd, char *path, struct fhandle *fhp, int flags); }\n\tSYS_FHLINK                   = 565 // { int fhlink(struct fhandle *fhp, const char *to); }\n\tSYS_FHLINKAT                 = 566 // { int fhlinkat(struct fhandle *fhp, int tofd, const char *to,); }\n\tSYS_FHREADLINK               = 567 // { int fhreadlink(struct fhandle *fhp, char *buf, size_t bufsize); }\n\tSYS___SYSCTLBYNAME           = 570 // { int __sysctlbyname(const char *name, size_t namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }\n\tSYS_CLOSE_RANGE              = 575 // { int close_range(u_int lowfd, u_int highfd, int flags); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go",
    "content": "// go run mksysnum.go https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build riscv64 && freebsd\n\npackage unix\n\nconst (\n\t// SYS_NOSYS = 0;  // { int nosys(void); } syscall nosys_args int\n\tSYS_EXIT                     = 1   // { void sys_exit(int rval); } exit sys_exit_args void\n\tSYS_FORK                     = 2   // { int fork(void); }\n\tSYS_READ                     = 3   // { ssize_t read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE                    = 4   // { ssize_t write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN                     = 5   // { int open(char *path, int flags, int mode); }\n\tSYS_CLOSE                    = 6   // { int close(int fd); }\n\tSYS_WAIT4                    = 7   // { int wait4(int pid, int *status, int options, struct rusage *rusage); }\n\tSYS_LINK                     = 9   // { int link(char *path, char *link); }\n\tSYS_UNLINK                   = 10  // { int unlink(char *path); }\n\tSYS_CHDIR                    = 12  // { int chdir(char *path); }\n\tSYS_FCHDIR                   = 13  // { int fchdir(int fd); }\n\tSYS_CHMOD                    = 15  // { int chmod(char *path, int mode); }\n\tSYS_CHOWN                    = 16  // { int chown(char *path, int uid, int gid); }\n\tSYS_BREAK                    = 17  // { caddr_t break(char *nsize); }\n\tSYS_GETPID                   = 20  // { pid_t getpid(void); }\n\tSYS_MOUNT                    = 21  // { int mount(char *type, char *path, int flags, caddr_t data); }\n\tSYS_UNMOUNT                  = 22  // { int unmount(char *path, int flags); }\n\tSYS_SETUID                   = 23  // { int setuid(uid_t uid); }\n\tSYS_GETUID                   = 24  // { uid_t getuid(void); }\n\tSYS_GETEUID                  = 25  // { uid_t geteuid(void); }\n\tSYS_PTRACE                   = 26  // { int ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG                  = 27  // { int recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG                  = 28  // { int sendmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_RECVFROM                 = 29  // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); }\n\tSYS_ACCEPT                   = 30  // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); }\n\tSYS_GETPEERNAME              = 31  // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }\n\tSYS_GETSOCKNAME              = 32  // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }\n\tSYS_ACCESS                   = 33  // { int access(char *path, int amode); }\n\tSYS_CHFLAGS                  = 34  // { int chflags(const char *path, u_long flags); }\n\tSYS_FCHFLAGS                 = 35  // { int fchflags(int fd, u_long flags); }\n\tSYS_SYNC                     = 36  // { int sync(void); }\n\tSYS_KILL                     = 37  // { int kill(int pid, int signum); }\n\tSYS_GETPPID                  = 39  // { pid_t getppid(void); }\n\tSYS_DUP                      = 41  // { int dup(u_int fd); }\n\tSYS_GETEGID                  = 43  // { gid_t getegid(void); }\n\tSYS_PROFIL                   = 44  // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); }\n\tSYS_KTRACE                   = 45  // { int ktrace(const char *fname, int ops, int facs, int pid); }\n\tSYS_GETGID                   = 47  // { gid_t getgid(void); }\n\tSYS_GETLOGIN                 = 49  // { int getlogin(char *namebuf, u_int namelen); }\n\tSYS_SETLOGIN                 = 50  // { int setlogin(char *namebuf); }\n\tSYS_ACCT                     = 51  // { int acct(char *path); }\n\tSYS_SIGALTSTACK              = 53  // { int sigaltstack(stack_t *ss, stack_t *oss); }\n\tSYS_IOCTL                    = 54  // { int ioctl(int fd, u_long com, caddr_t data); }\n\tSYS_REBOOT                   = 55  // { int reboot(int opt); }\n\tSYS_REVOKE                   = 56  // { int revoke(char *path); }\n\tSYS_SYMLINK                  = 57  // { int symlink(char *path, char *link); }\n\tSYS_READLINK                 = 58  // { ssize_t readlink(char *path, char *buf, size_t count); }\n\tSYS_EXECVE                   = 59  // { int execve(char *fname, char **argv, char **envv); }\n\tSYS_UMASK                    = 60  // { int umask(int newmask); }\n\tSYS_CHROOT                   = 61  // { int chroot(char *path); }\n\tSYS_MSYNC                    = 65  // { int msync(void *addr, size_t len, int flags); }\n\tSYS_VFORK                    = 66  // { int vfork(void); }\n\tSYS_SBRK                     = 69  // { int sbrk(int incr); }\n\tSYS_SSTK                     = 70  // { int sstk(int incr); }\n\tSYS_MUNMAP                   = 73  // { int munmap(void *addr, size_t len); }\n\tSYS_MPROTECT                 = 74  // { int mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE                  = 75  // { int madvise(void *addr, size_t len, int behav); }\n\tSYS_MINCORE                  = 78  // { int mincore(const void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS                = 79  // { int getgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS                = 80  // { int setgroups(u_int gidsetsize, gid_t *gidset); }\n\tSYS_GETPGRP                  = 81  // { int getpgrp(void); }\n\tSYS_SETPGID                  = 82  // { int setpgid(int pid, int pgid); }\n\tSYS_SETITIMER                = 83  // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_SWAPON                   = 85  // { int swapon(char *name); }\n\tSYS_GETITIMER                = 86  // { int getitimer(u_int which, struct itimerval *itv); }\n\tSYS_GETDTABLESIZE            = 89  // { int getdtablesize(void); }\n\tSYS_DUP2                     = 90  // { int dup2(u_int from, u_int to); }\n\tSYS_FCNTL                    = 92  // { int fcntl(int fd, int cmd, long arg); }\n\tSYS_SELECT                   = 93  // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_FSYNC                    = 95  // { int fsync(int fd); }\n\tSYS_SETPRIORITY              = 96  // { int setpriority(int which, int who, int prio); }\n\tSYS_SOCKET                   = 97  // { int socket(int domain, int type, int protocol); }\n\tSYS_CONNECT                  = 98  // { int connect(int s, caddr_t name, int namelen); }\n\tSYS_GETPRIORITY              = 100 // { int getpriority(int which, int who); }\n\tSYS_BIND                     = 104 // { int bind(int s, caddr_t name, int namelen); }\n\tSYS_SETSOCKOPT               = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); }\n\tSYS_LISTEN                   = 106 // { int listen(int s, int backlog); }\n\tSYS_GETTIMEOFDAY             = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_GETRUSAGE                = 117 // { int getrusage(int who, struct rusage *rusage); }\n\tSYS_GETSOCKOPT               = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); }\n\tSYS_READV                    = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_WRITEV                   = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); }\n\tSYS_SETTIMEOFDAY             = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); }\n\tSYS_FCHOWN                   = 123 // { int fchown(int fd, int uid, int gid); }\n\tSYS_FCHMOD                   = 124 // { int fchmod(int fd, int mode); }\n\tSYS_SETREUID                 = 126 // { int setreuid(int ruid, int euid); }\n\tSYS_SETREGID                 = 127 // { int setregid(int rgid, int egid); }\n\tSYS_RENAME                   = 128 // { int rename(char *from, char *to); }\n\tSYS_FLOCK                    = 131 // { int flock(int fd, int how); }\n\tSYS_MKFIFO                   = 132 // { int mkfifo(char *path, int mode); }\n\tSYS_SENDTO                   = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); }\n\tSYS_SHUTDOWN                 = 134 // { int shutdown(int s, int how); }\n\tSYS_SOCKETPAIR               = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR                    = 136 // { int mkdir(char *path, int mode); }\n\tSYS_RMDIR                    = 137 // { int rmdir(char *path); }\n\tSYS_UTIMES                   = 138 // { int utimes(char *path, struct timeval *tptr); }\n\tSYS_ADJTIME                  = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); }\n\tSYS_SETSID                   = 147 // { int setsid(void); }\n\tSYS_QUOTACTL                 = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); }\n\tSYS_NLM_SYSCALL              = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); }\n\tSYS_NFSSVC                   = 155 // { int nfssvc(int flag, caddr_t argp); }\n\tSYS_LGETFH                   = 160 // { int lgetfh(char *fname, struct fhandle *fhp); }\n\tSYS_GETFH                    = 161 // { int getfh(char *fname, struct fhandle *fhp); }\n\tSYS_SYSARCH                  = 165 // { int sysarch(int op, char *parms); }\n\tSYS_RTPRIO                   = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); }\n\tSYS_SEMSYS                   = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); }\n\tSYS_MSGSYS                   = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); }\n\tSYS_SHMSYS                   = 171 // { int shmsys(int which, int a2, int a3, int a4); }\n\tSYS_SETFIB                   = 175 // { int setfib(int fibnum); }\n\tSYS_NTP_ADJTIME              = 176 // { int ntp_adjtime(struct timex *tp); }\n\tSYS_SETGID                   = 181 // { int setgid(gid_t gid); }\n\tSYS_SETEGID                  = 182 // { int setegid(gid_t egid); }\n\tSYS_SETEUID                  = 183 // { int seteuid(uid_t euid); }\n\tSYS_PATHCONF                 = 191 // { int pathconf(char *path, int name); }\n\tSYS_FPATHCONF                = 192 // { int fpathconf(int fd, int name); }\n\tSYS_GETRLIMIT                = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int\n\tSYS_SETRLIMIT                = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int\n\tSYS___SYSCTL                 = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int\n\tSYS_MLOCK                    = 203 // { int mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK                  = 204 // { int munlock(const void *addr, size_t len); }\n\tSYS_UNDELETE                 = 205 // { int undelete(char *path); }\n\tSYS_FUTIMES                  = 206 // { int futimes(int fd, struct timeval *tptr); }\n\tSYS_GETPGID                  = 207 // { int getpgid(pid_t pid); }\n\tSYS_POLL                     = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_SEMGET                   = 221 // { int semget(key_t key, int nsems, int semflg); }\n\tSYS_SEMOP                    = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_MSGGET                   = 225 // { int msgget(key_t key, int msgflg); }\n\tSYS_MSGSND                   = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV                   = 227 // { ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT                    = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT                    = 230 // { int shmdt(const void *shmaddr); }\n\tSYS_SHMGET                   = 231 // { int shmget(key_t key, size_t size, int shmflg); }\n\tSYS_CLOCK_GETTIME            = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME            = 233 // { int clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES             = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_KTIMER_CREATE            = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); }\n\tSYS_KTIMER_DELETE            = 236 // { int ktimer_delete(int timerid); }\n\tSYS_KTIMER_SETTIME           = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }\n\tSYS_KTIMER_GETTIME           = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); }\n\tSYS_KTIMER_GETOVERRUN        = 239 // { int ktimer_getoverrun(int timerid); }\n\tSYS_NANOSLEEP                = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FFCLOCK_GETCOUNTER       = 241 // { int ffclock_getcounter(ffcounter *ffcount); }\n\tSYS_FFCLOCK_SETESTIMATE      = 242 // { int ffclock_setestimate(struct ffclock_estimate *cest); }\n\tSYS_FFCLOCK_GETESTIMATE      = 243 // { int ffclock_getestimate(struct ffclock_estimate *cest); }\n\tSYS_CLOCK_NANOSLEEP          = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_CLOCK_GETCPUCLOCKID2     = 247 // { int clock_getcpuclockid2(id_t id, int which, clockid_t *clock_id); }\n\tSYS_NTP_GETTIME              = 248 // { int ntp_gettime(struct ntptimeval *ntvp); }\n\tSYS_MINHERIT                 = 250 // { int minherit(void *addr, size_t len, int inherit); }\n\tSYS_RFORK                    = 251 // { int rfork(int flags); }\n\tSYS_ISSETUGID                = 253 // { int issetugid(void); }\n\tSYS_LCHOWN                   = 254 // { int lchown(char *path, int uid, int gid); }\n\tSYS_AIO_READ                 = 255 // { int aio_read(struct aiocb *aiocbp); }\n\tSYS_AIO_WRITE                = 256 // { int aio_write(struct aiocb *aiocbp); }\n\tSYS_LIO_LISTIO               = 257 // { int lio_listio(int mode, struct aiocb* const *acb_list, int nent, struct sigevent *sig); }\n\tSYS_LCHMOD                   = 274 // { int lchmod(char *path, mode_t mode); }\n\tSYS_LUTIMES                  = 276 // { int lutimes(char *path, struct timeval *tptr); }\n\tSYS_PREADV                   = 289 // { ssize_t preadv(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }\n\tSYS_PWRITEV                  = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }\n\tSYS_FHOPEN                   = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); }\n\tSYS_MODNEXT                  = 300 // { int modnext(int modid); }\n\tSYS_MODSTAT                  = 301 // { int modstat(int modid, struct module_stat* stat); }\n\tSYS_MODFNEXT                 = 302 // { int modfnext(int modid); }\n\tSYS_MODFIND                  = 303 // { int modfind(const char *name); }\n\tSYS_KLDLOAD                  = 304 // { int kldload(const char *file); }\n\tSYS_KLDUNLOAD                = 305 // { int kldunload(int fileid); }\n\tSYS_KLDFIND                  = 306 // { int kldfind(const char *file); }\n\tSYS_KLDNEXT                  = 307 // { int kldnext(int fileid); }\n\tSYS_KLDSTAT                  = 308 // { int kldstat(int fileid, struct kld_file_stat *stat); }\n\tSYS_KLDFIRSTMOD              = 309 // { int kldfirstmod(int fileid); }\n\tSYS_GETSID                   = 310 // { int getsid(pid_t pid); }\n\tSYS_SETRESUID                = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_SETRESGID                = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_AIO_RETURN               = 314 // { ssize_t aio_return(struct aiocb *aiocbp); }\n\tSYS_AIO_SUSPEND              = 315 // { int aio_suspend(struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); }\n\tSYS_AIO_CANCEL               = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); }\n\tSYS_AIO_ERROR                = 317 // { int aio_error(struct aiocb *aiocbp); }\n\tSYS_YIELD                    = 321 // { int yield(void); }\n\tSYS_MLOCKALL                 = 324 // { int mlockall(int how); }\n\tSYS_MUNLOCKALL               = 325 // { int munlockall(void); }\n\tSYS___GETCWD                 = 326 // { int __getcwd(char *buf, size_t buflen); }\n\tSYS_SCHED_SETPARAM           = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); }\n\tSYS_SCHED_GETPARAM           = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); }\n\tSYS_SCHED_SETSCHEDULER       = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); }\n\tSYS_SCHED_GETSCHEDULER       = 330 // { int sched_getscheduler (pid_t pid); }\n\tSYS_SCHED_YIELD              = 331 // { int sched_yield (void); }\n\tSYS_SCHED_GET_PRIORITY_MAX   = 332 // { int sched_get_priority_max (int policy); }\n\tSYS_SCHED_GET_PRIORITY_MIN   = 333 // { int sched_get_priority_min (int policy); }\n\tSYS_SCHED_RR_GET_INTERVAL    = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); }\n\tSYS_UTRACE                   = 335 // { int utrace(const void *addr, size_t len); }\n\tSYS_KLDSYM                   = 337 // { int kldsym(int fileid, int cmd, void *data); }\n\tSYS_JAIL                     = 338 // { int jail(struct jail *jail); }\n\tSYS_SIGPROCMASK              = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); }\n\tSYS_SIGSUSPEND               = 341 // { int sigsuspend(const sigset_t *sigmask); }\n\tSYS_SIGPENDING               = 343 // { int sigpending(sigset_t *set); }\n\tSYS_SIGTIMEDWAIT             = 345 // { int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); }\n\tSYS_SIGWAITINFO              = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); }\n\tSYS___ACL_GET_FILE           = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FILE           = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_GET_FD             = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_FD             = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_DELETE_FILE        = 351 // { int __acl_delete_file(const char *path, acl_type_t type); }\n\tSYS___ACL_DELETE_FD          = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); }\n\tSYS___ACL_ACLCHECK_FILE      = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_ACLCHECK_FD        = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); }\n\tSYS_EXTATTRCTL               = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FILE         = 356 // { ssize_t extattr_set_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FILE         = 357 // { ssize_t extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FILE      = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_AIO_WAITCOMPLETE         = 359 // { ssize_t aio_waitcomplete(struct aiocb **aiocbp, struct timespec *timeout); }\n\tSYS_GETRESUID                = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_GETRESGID                = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_KQUEUE                   = 362 // { int kqueue(void); }\n\tSYS_EXTATTR_SET_FD           = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FD           = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FD        = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }\n\tSYS___SETUGID                = 374 // { int __setugid(int flag); }\n\tSYS_EACCESS                  = 376 // { int eaccess(char *path, int amode); }\n\tSYS_NMOUNT                   = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS___MAC_GET_PROC           = 384 // { int __mac_get_proc(struct mac *mac_p); }\n\tSYS___MAC_SET_PROC           = 385 // { int __mac_set_proc(struct mac *mac_p); }\n\tSYS___MAC_GET_FD             = 386 // { int __mac_get_fd(int fd, struct mac *mac_p); }\n\tSYS___MAC_GET_FILE           = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); }\n\tSYS___MAC_SET_FD             = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); }\n\tSYS___MAC_SET_FILE           = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); }\n\tSYS_KENV                     = 390 // { int kenv(int what, const char *name, char *value, int len); }\n\tSYS_LCHFLAGS                 = 391 // { int lchflags(const char *path, u_long flags); }\n\tSYS_UUIDGEN                  = 392 // { int uuidgen(struct uuid *store, int count); }\n\tSYS_SENDFILE                 = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); }\n\tSYS_MAC_SYSCALL              = 394 // { int mac_syscall(const char *policy, int call, void *arg); }\n\tSYS_KSEM_CLOSE               = 400 // { int ksem_close(semid_t id); }\n\tSYS_KSEM_POST                = 401 // { int ksem_post(semid_t id); }\n\tSYS_KSEM_WAIT                = 402 // { int ksem_wait(semid_t id); }\n\tSYS_KSEM_TRYWAIT             = 403 // { int ksem_trywait(semid_t id); }\n\tSYS_KSEM_INIT                = 404 // { int ksem_init(semid_t *idp, unsigned int value); }\n\tSYS_KSEM_OPEN                = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); }\n\tSYS_KSEM_UNLINK              = 406 // { int ksem_unlink(const char *name); }\n\tSYS_KSEM_GETVALUE            = 407 // { int ksem_getvalue(semid_t id, int *val); }\n\tSYS_KSEM_DESTROY             = 408 // { int ksem_destroy(semid_t id); }\n\tSYS___MAC_GET_PID            = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); }\n\tSYS___MAC_GET_LINK           = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); }\n\tSYS___MAC_SET_LINK           = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); }\n\tSYS_EXTATTR_SET_LINK         = 412 // { ssize_t extattr_set_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_LINK         = 413 // { ssize_t extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_LINK      = 414 // { int extattr_delete_link(const char *path, int attrnamespace, const char *attrname); }\n\tSYS___MAC_EXECVE             = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); }\n\tSYS_SIGACTION                = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); }\n\tSYS_SIGRETURN                = 417 // { int sigreturn(const struct __ucontext *sigcntxp); }\n\tSYS_GETCONTEXT               = 421 // { int getcontext(struct __ucontext *ucp); }\n\tSYS_SETCONTEXT               = 422 // { int setcontext(const struct __ucontext *ucp); }\n\tSYS_SWAPCONTEXT              = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); }\n\tSYS_SWAPOFF                  = 424 // { int swapoff(const char *name); }\n\tSYS___ACL_GET_LINK           = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_SET_LINK           = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS___ACL_DELETE_LINK        = 427 // { int __acl_delete_link(const char *path, acl_type_t type); }\n\tSYS___ACL_ACLCHECK_LINK      = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); }\n\tSYS_SIGWAIT                  = 429 // { int sigwait(const sigset_t *set, int *sig); }\n\tSYS_THR_CREATE               = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); }\n\tSYS_THR_EXIT                 = 431 // { void thr_exit(long *state); }\n\tSYS_THR_SELF                 = 432 // { int thr_self(long *id); }\n\tSYS_THR_KILL                 = 433 // { int thr_kill(long id, int sig); }\n\tSYS_JAIL_ATTACH              = 436 // { int jail_attach(int jid); }\n\tSYS_EXTATTR_LIST_FD          = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_FILE        = 438 // { ssize_t extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_LINK        = 439 // { ssize_t extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_KSEM_TIMEDWAIT           = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); }\n\tSYS_THR_SUSPEND              = 442 // { int thr_suspend(const struct timespec *timeout); }\n\tSYS_THR_WAKE                 = 443 // { int thr_wake(long id); }\n\tSYS_KLDUNLOADF               = 444 // { int kldunloadf(int fileid, int flags); }\n\tSYS_AUDIT                    = 445 // { int audit(const void *record, u_int length); }\n\tSYS_AUDITON                  = 446 // { int auditon(int cmd, void *data, u_int length); }\n\tSYS_GETAUID                  = 447 // { int getauid(uid_t *auid); }\n\tSYS_SETAUID                  = 448 // { int setauid(uid_t *auid); }\n\tSYS_GETAUDIT                 = 449 // { int getaudit(struct auditinfo *auditinfo); }\n\tSYS_SETAUDIT                 = 450 // { int setaudit(struct auditinfo *auditinfo); }\n\tSYS_GETAUDIT_ADDR            = 451 // { int getaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); }\n\tSYS_SETAUDIT_ADDR            = 452 // { int setaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); }\n\tSYS_AUDITCTL                 = 453 // { int auditctl(char *path); }\n\tSYS__UMTX_OP                 = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); }\n\tSYS_THR_NEW                  = 455 // { int thr_new(struct thr_param *param, int param_size); }\n\tSYS_SIGQUEUE                 = 456 // { int sigqueue(pid_t pid, int signum, void *value); }\n\tSYS_KMQ_OPEN                 = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); }\n\tSYS_KMQ_SETATTR              = 458 // { int kmq_setattr(int mqd, const struct mq_attr *attr, struct mq_attr *oattr); }\n\tSYS_KMQ_TIMEDRECEIVE         = 459 // { int kmq_timedreceive(int mqd, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); }\n\tSYS_KMQ_TIMEDSEND            = 460 // { int kmq_timedsend(int mqd, const char *msg_ptr, size_t msg_len, unsigned msg_prio, const struct timespec *abs_timeout); }\n\tSYS_KMQ_NOTIFY               = 461 // { int kmq_notify(int mqd, const struct sigevent *sigev); }\n\tSYS_KMQ_UNLINK               = 462 // { int kmq_unlink(const char *path); }\n\tSYS_ABORT2                   = 463 // { int abort2(const char *why, int nargs, void **args); }\n\tSYS_THR_SET_NAME             = 464 // { int thr_set_name(long id, const char *name); }\n\tSYS_AIO_FSYNC                = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); }\n\tSYS_RTPRIO_THREAD            = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); }\n\tSYS_SCTP_PEELOFF             = 471 // { int sctp_peeloff(int sd, uint32_t name); }\n\tSYS_SCTP_GENERIC_SENDMSG     = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }\n\tSYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }\n\tSYS_SCTP_GENERIC_RECVMSG     = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, struct sockaddr *from, __socklen_t *fromlenaddr, struct sctp_sndrcvinfo *sinfo, int *msg_flags); }\n\tSYS_PREAD                    = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); }\n\tSYS_PWRITE                   = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); }\n\tSYS_MMAP                     = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); }\n\tSYS_LSEEK                    = 478 // { off_t lseek(int fd, off_t offset, int whence); }\n\tSYS_TRUNCATE                 = 479 // { int truncate(char *path, off_t length); }\n\tSYS_FTRUNCATE                = 480 // { int ftruncate(int fd, off_t length); }\n\tSYS_THR_KILL2                = 481 // { int thr_kill2(pid_t pid, long id, int sig); }\n\tSYS_SHM_OPEN                 = 482 // { int shm_open(const char *path, int flags, mode_t mode); }\n\tSYS_SHM_UNLINK               = 483 // { int shm_unlink(const char *path); }\n\tSYS_CPUSET                   = 484 // { int cpuset(cpusetid_t *setid); }\n\tSYS_CPUSET_SETID             = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); }\n\tSYS_CPUSET_GETID             = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); }\n\tSYS_CPUSET_GETAFFINITY       = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); }\n\tSYS_CPUSET_SETAFFINITY       = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); }\n\tSYS_FACCESSAT                = 489 // { int faccessat(int fd, char *path, int amode, int flag); }\n\tSYS_FCHMODAT                 = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT                 = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_FEXECVE                  = 492 // { int fexecve(int fd, char **argv, char **envv); }\n\tSYS_FUTIMESAT                = 494 // { int futimesat(int fd, char *path, struct timeval *times); }\n\tSYS_LINKAT                   = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); }\n\tSYS_MKDIRAT                  = 496 // { int mkdirat(int fd, char *path, mode_t mode); }\n\tSYS_MKFIFOAT                 = 497 // { int mkfifoat(int fd, char *path, mode_t mode); }\n\tSYS_OPENAT                   = 499 // { int openat(int fd, char *path, int flag, mode_t mode); }\n\tSYS_READLINKAT               = 500 // { ssize_t readlinkat(int fd, char *path, char *buf, size_t bufsize); }\n\tSYS_RENAMEAT                 = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); }\n\tSYS_SYMLINKAT                = 502 // { int symlinkat(char *path1, int fd, char *path2); }\n\tSYS_UNLINKAT                 = 503 // { int unlinkat(int fd, char *path, int flag); }\n\tSYS_POSIX_OPENPT             = 504 // { int posix_openpt(int flags); }\n\tSYS_GSSD_SYSCALL             = 505 // { int gssd_syscall(char *path); }\n\tSYS_JAIL_GET                 = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS_JAIL_SET                 = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); }\n\tSYS_JAIL_REMOVE              = 508 // { int jail_remove(int jid); }\n\tSYS_CLOSEFROM                = 509 // { int closefrom(int lowfd); }\n\tSYS___SEMCTL                 = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_MSGCTL                   = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SHMCTL                   = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_LPATHCONF                = 513 // { int lpathconf(char *path, int name); }\n\tSYS___CAP_RIGHTS_GET         = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); }\n\tSYS_CAP_ENTER                = 516 // { int cap_enter(void); }\n\tSYS_CAP_GETMODE              = 517 // { int cap_getmode(u_int *modep); }\n\tSYS_PDFORK                   = 518 // { int pdfork(int *fdp, int flags); }\n\tSYS_PDKILL                   = 519 // { int pdkill(int fd, int signum); }\n\tSYS_PDGETPID                 = 520 // { int pdgetpid(int fd, pid_t *pidp); }\n\tSYS_PSELECT                  = 522 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); }\n\tSYS_GETLOGINCLASS            = 523 // { int getloginclass(char *namebuf, size_t namelen); }\n\tSYS_SETLOGINCLASS            = 524 // { int setloginclass(const char *namebuf); }\n\tSYS_RCTL_GET_RACCT           = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_GET_RULES           = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_GET_LIMITS          = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_ADD_RULE            = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_RCTL_REMOVE_RULE         = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }\n\tSYS_POSIX_FALLOCATE          = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); }\n\tSYS_POSIX_FADVISE            = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); }\n\tSYS_WAIT6                    = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); }\n\tSYS_CAP_RIGHTS_LIMIT         = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); }\n\tSYS_CAP_IOCTLS_LIMIT         = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); }\n\tSYS_CAP_IOCTLS_GET           = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); }\n\tSYS_CAP_FCNTLS_LIMIT         = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); }\n\tSYS_CAP_FCNTLS_GET           = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); }\n\tSYS_BINDAT                   = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); }\n\tSYS_CONNECTAT                = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); }\n\tSYS_CHFLAGSAT                = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); }\n\tSYS_ACCEPT4                  = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); }\n\tSYS_PIPE2                    = 542 // { int pipe2(int *fildes, int flags); }\n\tSYS_AIO_MLOCK                = 543 // { int aio_mlock(struct aiocb *aiocbp); }\n\tSYS_PROCCTL                  = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); }\n\tSYS_PPOLL                    = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); }\n\tSYS_FUTIMENS                 = 546 // { int futimens(int fd, struct timespec *times); }\n\tSYS_UTIMENSAT                = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); }\n\tSYS_FDATASYNC                = 550 // { int fdatasync(int fd); }\n\tSYS_FSTAT                    = 551 // { int fstat(int fd, struct stat *sb); }\n\tSYS_FSTATAT                  = 552 // { int fstatat(int fd, char *path, struct stat *buf, int flag); }\n\tSYS_FHSTAT                   = 553 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); }\n\tSYS_GETDIRENTRIES            = 554 // { ssize_t getdirentries(int fd, char *buf, size_t count, off_t *basep); }\n\tSYS_STATFS                   = 555 // { int statfs(char *path, struct statfs *buf); }\n\tSYS_FSTATFS                  = 556 // { int fstatfs(int fd, struct statfs *buf); }\n\tSYS_GETFSSTAT                = 557 // { int getfsstat(struct statfs *buf, long bufsize, int mode); }\n\tSYS_FHSTATFS                 = 558 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); }\n\tSYS_MKNODAT                  = 559 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); }\n\tSYS_KEVENT                   = 560 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_CPUSET_GETDOMAIN         = 561 // { int cpuset_getdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int *policy); }\n\tSYS_CPUSET_SETDOMAIN         = 562 // { int cpuset_setdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int policy); }\n\tSYS_GETRANDOM                = 563 // { int getrandom(void *buf, size_t buflen, unsigned int flags); }\n\tSYS_GETFHAT                  = 564 // { int getfhat(int fd, char *path, struct fhandle *fhp, int flags); }\n\tSYS_FHLINK                   = 565 // { int fhlink(struct fhandle *fhp, const char *to); }\n\tSYS_FHLINKAT                 = 566 // { int fhlinkat(struct fhandle *fhp, int tofd, const char *to,); }\n\tSYS_FHREADLINK               = 567 // { int fhreadlink(struct fhandle *fhp, char *buf, size_t bufsize); }\n\tSYS___SYSCTLBYNAME           = 570 // { int __sysctlbyname(const char *name, size_t namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }\n\tSYS_CLOSE_RANGE              = 575 // { int close_range(u_int lowfd, u_int highfd, int flags); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_386.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/386/include -m32 /tmp/386/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build 386 && linux\n\npackage unix\n\nconst (\n\tSYS_RESTART_SYSCALL              = 0\n\tSYS_EXIT                         = 1\n\tSYS_FORK                         = 2\n\tSYS_READ                         = 3\n\tSYS_WRITE                        = 4\n\tSYS_OPEN                         = 5\n\tSYS_CLOSE                        = 6\n\tSYS_WAITPID                      = 7\n\tSYS_CREAT                        = 8\n\tSYS_LINK                         = 9\n\tSYS_UNLINK                       = 10\n\tSYS_EXECVE                       = 11\n\tSYS_CHDIR                        = 12\n\tSYS_TIME                         = 13\n\tSYS_MKNOD                        = 14\n\tSYS_CHMOD                        = 15\n\tSYS_LCHOWN                       = 16\n\tSYS_BREAK                        = 17\n\tSYS_OLDSTAT                      = 18\n\tSYS_LSEEK                        = 19\n\tSYS_GETPID                       = 20\n\tSYS_MOUNT                        = 21\n\tSYS_UMOUNT                       = 22\n\tSYS_SETUID                       = 23\n\tSYS_GETUID                       = 24\n\tSYS_STIME                        = 25\n\tSYS_PTRACE                       = 26\n\tSYS_ALARM                        = 27\n\tSYS_OLDFSTAT                     = 28\n\tSYS_PAUSE                        = 29\n\tSYS_UTIME                        = 30\n\tSYS_STTY                         = 31\n\tSYS_GTTY                         = 32\n\tSYS_ACCESS                       = 33\n\tSYS_NICE                         = 34\n\tSYS_FTIME                        = 35\n\tSYS_SYNC                         = 36\n\tSYS_KILL                         = 37\n\tSYS_RENAME                       = 38\n\tSYS_MKDIR                        = 39\n\tSYS_RMDIR                        = 40\n\tSYS_DUP                          = 41\n\tSYS_PIPE                         = 42\n\tSYS_TIMES                        = 43\n\tSYS_PROF                         = 44\n\tSYS_BRK                          = 45\n\tSYS_SETGID                       = 46\n\tSYS_GETGID                       = 47\n\tSYS_SIGNAL                       = 48\n\tSYS_GETEUID                      = 49\n\tSYS_GETEGID                      = 50\n\tSYS_ACCT                         = 51\n\tSYS_UMOUNT2                      = 52\n\tSYS_LOCK                         = 53\n\tSYS_IOCTL                        = 54\n\tSYS_FCNTL                        = 55\n\tSYS_MPX                          = 56\n\tSYS_SETPGID                      = 57\n\tSYS_ULIMIT                       = 58\n\tSYS_OLDOLDUNAME                  = 59\n\tSYS_UMASK                        = 60\n\tSYS_CHROOT                       = 61\n\tSYS_USTAT                        = 62\n\tSYS_DUP2                         = 63\n\tSYS_GETPPID                      = 64\n\tSYS_GETPGRP                      = 65\n\tSYS_SETSID                       = 66\n\tSYS_SIGACTION                    = 67\n\tSYS_SGETMASK                     = 68\n\tSYS_SSETMASK                     = 69\n\tSYS_SETREUID                     = 70\n\tSYS_SETREGID                     = 71\n\tSYS_SIGSUSPEND                   = 72\n\tSYS_SIGPENDING                   = 73\n\tSYS_SETHOSTNAME                  = 74\n\tSYS_SETRLIMIT                    = 75\n\tSYS_GETRLIMIT                    = 76\n\tSYS_GETRUSAGE                    = 77\n\tSYS_GETTIMEOFDAY                 = 78\n\tSYS_SETTIMEOFDAY                 = 79\n\tSYS_GETGROUPS                    = 80\n\tSYS_SETGROUPS                    = 81\n\tSYS_SELECT                       = 82\n\tSYS_SYMLINK                      = 83\n\tSYS_OLDLSTAT                     = 84\n\tSYS_READLINK                     = 85\n\tSYS_USELIB                       = 86\n\tSYS_SWAPON                       = 87\n\tSYS_REBOOT                       = 88\n\tSYS_READDIR                      = 89\n\tSYS_MMAP                         = 90\n\tSYS_MUNMAP                       = 91\n\tSYS_TRUNCATE                     = 92\n\tSYS_FTRUNCATE                    = 93\n\tSYS_FCHMOD                       = 94\n\tSYS_FCHOWN                       = 95\n\tSYS_GETPRIORITY                  = 96\n\tSYS_SETPRIORITY                  = 97\n\tSYS_PROFIL                       = 98\n\tSYS_STATFS                       = 99\n\tSYS_FSTATFS                      = 100\n\tSYS_IOPERM                       = 101\n\tSYS_SOCKETCALL                   = 102\n\tSYS_SYSLOG                       = 103\n\tSYS_SETITIMER                    = 104\n\tSYS_GETITIMER                    = 105\n\tSYS_STAT                         = 106\n\tSYS_LSTAT                        = 107\n\tSYS_FSTAT                        = 108\n\tSYS_OLDUNAME                     = 109\n\tSYS_IOPL                         = 110\n\tSYS_VHANGUP                      = 111\n\tSYS_IDLE                         = 112\n\tSYS_VM86OLD                      = 113\n\tSYS_WAIT4                        = 114\n\tSYS_SWAPOFF                      = 115\n\tSYS_SYSINFO                      = 116\n\tSYS_IPC                          = 117\n\tSYS_FSYNC                        = 118\n\tSYS_SIGRETURN                    = 119\n\tSYS_CLONE                        = 120\n\tSYS_SETDOMAINNAME                = 121\n\tSYS_UNAME                        = 122\n\tSYS_MODIFY_LDT                   = 123\n\tSYS_ADJTIMEX                     = 124\n\tSYS_MPROTECT                     = 125\n\tSYS_SIGPROCMASK                  = 126\n\tSYS_CREATE_MODULE                = 127\n\tSYS_INIT_MODULE                  = 128\n\tSYS_DELETE_MODULE                = 129\n\tSYS_GET_KERNEL_SYMS              = 130\n\tSYS_QUOTACTL                     = 131\n\tSYS_GETPGID                      = 132\n\tSYS_FCHDIR                       = 133\n\tSYS_BDFLUSH                      = 134\n\tSYS_SYSFS                        = 135\n\tSYS_PERSONALITY                  = 136\n\tSYS_AFS_SYSCALL                  = 137\n\tSYS_SETFSUID                     = 138\n\tSYS_SETFSGID                     = 139\n\tSYS__LLSEEK                      = 140\n\tSYS_GETDENTS                     = 141\n\tSYS__NEWSELECT                   = 142\n\tSYS_FLOCK                        = 143\n\tSYS_MSYNC                        = 144\n\tSYS_READV                        = 145\n\tSYS_WRITEV                       = 146\n\tSYS_GETSID                       = 147\n\tSYS_FDATASYNC                    = 148\n\tSYS__SYSCTL                      = 149\n\tSYS_MLOCK                        = 150\n\tSYS_MUNLOCK                      = 151\n\tSYS_MLOCKALL                     = 152\n\tSYS_MUNLOCKALL                   = 153\n\tSYS_SCHED_SETPARAM               = 154\n\tSYS_SCHED_GETPARAM               = 155\n\tSYS_SCHED_SETSCHEDULER           = 156\n\tSYS_SCHED_GETSCHEDULER           = 157\n\tSYS_SCHED_YIELD                  = 158\n\tSYS_SCHED_GET_PRIORITY_MAX       = 159\n\tSYS_SCHED_GET_PRIORITY_MIN       = 160\n\tSYS_SCHED_RR_GET_INTERVAL        = 161\n\tSYS_NANOSLEEP                    = 162\n\tSYS_MREMAP                       = 163\n\tSYS_SETRESUID                    = 164\n\tSYS_GETRESUID                    = 165\n\tSYS_VM86                         = 166\n\tSYS_QUERY_MODULE                 = 167\n\tSYS_POLL                         = 168\n\tSYS_NFSSERVCTL                   = 169\n\tSYS_SETRESGID                    = 170\n\tSYS_GETRESGID                    = 171\n\tSYS_PRCTL                        = 172\n\tSYS_RT_SIGRETURN                 = 173\n\tSYS_RT_SIGACTION                 = 174\n\tSYS_RT_SIGPROCMASK               = 175\n\tSYS_RT_SIGPENDING                = 176\n\tSYS_RT_SIGTIMEDWAIT              = 177\n\tSYS_RT_SIGQUEUEINFO              = 178\n\tSYS_RT_SIGSUSPEND                = 179\n\tSYS_PREAD64                      = 180\n\tSYS_PWRITE64                     = 181\n\tSYS_CHOWN                        = 182\n\tSYS_GETCWD                       = 183\n\tSYS_CAPGET                       = 184\n\tSYS_CAPSET                       = 185\n\tSYS_SIGALTSTACK                  = 186\n\tSYS_SENDFILE                     = 187\n\tSYS_GETPMSG                      = 188\n\tSYS_PUTPMSG                      = 189\n\tSYS_VFORK                        = 190\n\tSYS_UGETRLIMIT                   = 191\n\tSYS_MMAP2                        = 192\n\tSYS_TRUNCATE64                   = 193\n\tSYS_FTRUNCATE64                  = 194\n\tSYS_STAT64                       = 195\n\tSYS_LSTAT64                      = 196\n\tSYS_FSTAT64                      = 197\n\tSYS_LCHOWN32                     = 198\n\tSYS_GETUID32                     = 199\n\tSYS_GETGID32                     = 200\n\tSYS_GETEUID32                    = 201\n\tSYS_GETEGID32                    = 202\n\tSYS_SETREUID32                   = 203\n\tSYS_SETREGID32                   = 204\n\tSYS_GETGROUPS32                  = 205\n\tSYS_SETGROUPS32                  = 206\n\tSYS_FCHOWN32                     = 207\n\tSYS_SETRESUID32                  = 208\n\tSYS_GETRESUID32                  = 209\n\tSYS_SETRESGID32                  = 210\n\tSYS_GETRESGID32                  = 211\n\tSYS_CHOWN32                      = 212\n\tSYS_SETUID32                     = 213\n\tSYS_SETGID32                     = 214\n\tSYS_SETFSUID32                   = 215\n\tSYS_SETFSGID32                   = 216\n\tSYS_PIVOT_ROOT                   = 217\n\tSYS_MINCORE                      = 218\n\tSYS_MADVISE                      = 219\n\tSYS_GETDENTS64                   = 220\n\tSYS_FCNTL64                      = 221\n\tSYS_GETTID                       = 224\n\tSYS_READAHEAD                    = 225\n\tSYS_SETXATTR                     = 226\n\tSYS_LSETXATTR                    = 227\n\tSYS_FSETXATTR                    = 228\n\tSYS_GETXATTR                     = 229\n\tSYS_LGETXATTR                    = 230\n\tSYS_FGETXATTR                    = 231\n\tSYS_LISTXATTR                    = 232\n\tSYS_LLISTXATTR                   = 233\n\tSYS_FLISTXATTR                   = 234\n\tSYS_REMOVEXATTR                  = 235\n\tSYS_LREMOVEXATTR                 = 236\n\tSYS_FREMOVEXATTR                 = 237\n\tSYS_TKILL                        = 238\n\tSYS_SENDFILE64                   = 239\n\tSYS_FUTEX                        = 240\n\tSYS_SCHED_SETAFFINITY            = 241\n\tSYS_SCHED_GETAFFINITY            = 242\n\tSYS_SET_THREAD_AREA              = 243\n\tSYS_GET_THREAD_AREA              = 244\n\tSYS_IO_SETUP                     = 245\n\tSYS_IO_DESTROY                   = 246\n\tSYS_IO_GETEVENTS                 = 247\n\tSYS_IO_SUBMIT                    = 248\n\tSYS_IO_CANCEL                    = 249\n\tSYS_FADVISE64                    = 250\n\tSYS_EXIT_GROUP                   = 252\n\tSYS_LOOKUP_DCOOKIE               = 253\n\tSYS_EPOLL_CREATE                 = 254\n\tSYS_EPOLL_CTL                    = 255\n\tSYS_EPOLL_WAIT                   = 256\n\tSYS_REMAP_FILE_PAGES             = 257\n\tSYS_SET_TID_ADDRESS              = 258\n\tSYS_TIMER_CREATE                 = 259\n\tSYS_TIMER_SETTIME                = 260\n\tSYS_TIMER_GETTIME                = 261\n\tSYS_TIMER_GETOVERRUN             = 262\n\tSYS_TIMER_DELETE                 = 263\n\tSYS_CLOCK_SETTIME                = 264\n\tSYS_CLOCK_GETTIME                = 265\n\tSYS_CLOCK_GETRES                 = 266\n\tSYS_CLOCK_NANOSLEEP              = 267\n\tSYS_STATFS64                     = 268\n\tSYS_FSTATFS64                    = 269\n\tSYS_TGKILL                       = 270\n\tSYS_UTIMES                       = 271\n\tSYS_FADVISE64_64                 = 272\n\tSYS_VSERVER                      = 273\n\tSYS_MBIND                        = 274\n\tSYS_GET_MEMPOLICY                = 275\n\tSYS_SET_MEMPOLICY                = 276\n\tSYS_MQ_OPEN                      = 277\n\tSYS_MQ_UNLINK                    = 278\n\tSYS_MQ_TIMEDSEND                 = 279\n\tSYS_MQ_TIMEDRECEIVE              = 280\n\tSYS_MQ_NOTIFY                    = 281\n\tSYS_MQ_GETSETATTR                = 282\n\tSYS_KEXEC_LOAD                   = 283\n\tSYS_WAITID                       = 284\n\tSYS_ADD_KEY                      = 286\n\tSYS_REQUEST_KEY                  = 287\n\tSYS_KEYCTL                       = 288\n\tSYS_IOPRIO_SET                   = 289\n\tSYS_IOPRIO_GET                   = 290\n\tSYS_INOTIFY_INIT                 = 291\n\tSYS_INOTIFY_ADD_WATCH            = 292\n\tSYS_INOTIFY_RM_WATCH             = 293\n\tSYS_MIGRATE_PAGES                = 294\n\tSYS_OPENAT                       = 295\n\tSYS_MKDIRAT                      = 296\n\tSYS_MKNODAT                      = 297\n\tSYS_FCHOWNAT                     = 298\n\tSYS_FUTIMESAT                    = 299\n\tSYS_FSTATAT64                    = 300\n\tSYS_UNLINKAT                     = 301\n\tSYS_RENAMEAT                     = 302\n\tSYS_LINKAT                       = 303\n\tSYS_SYMLINKAT                    = 304\n\tSYS_READLINKAT                   = 305\n\tSYS_FCHMODAT                     = 306\n\tSYS_FACCESSAT                    = 307\n\tSYS_PSELECT6                     = 308\n\tSYS_PPOLL                        = 309\n\tSYS_UNSHARE                      = 310\n\tSYS_SET_ROBUST_LIST              = 311\n\tSYS_GET_ROBUST_LIST              = 312\n\tSYS_SPLICE                       = 313\n\tSYS_SYNC_FILE_RANGE              = 314\n\tSYS_TEE                          = 315\n\tSYS_VMSPLICE                     = 316\n\tSYS_MOVE_PAGES                   = 317\n\tSYS_GETCPU                       = 318\n\tSYS_EPOLL_PWAIT                  = 319\n\tSYS_UTIMENSAT                    = 320\n\tSYS_SIGNALFD                     = 321\n\tSYS_TIMERFD_CREATE               = 322\n\tSYS_EVENTFD                      = 323\n\tSYS_FALLOCATE                    = 324\n\tSYS_TIMERFD_SETTIME              = 325\n\tSYS_TIMERFD_GETTIME              = 326\n\tSYS_SIGNALFD4                    = 327\n\tSYS_EVENTFD2                     = 328\n\tSYS_EPOLL_CREATE1                = 329\n\tSYS_DUP3                         = 330\n\tSYS_PIPE2                        = 331\n\tSYS_INOTIFY_INIT1                = 332\n\tSYS_PREADV                       = 333\n\tSYS_PWRITEV                      = 334\n\tSYS_RT_TGSIGQUEUEINFO            = 335\n\tSYS_PERF_EVENT_OPEN              = 336\n\tSYS_RECVMMSG                     = 337\n\tSYS_FANOTIFY_INIT                = 338\n\tSYS_FANOTIFY_MARK                = 339\n\tSYS_PRLIMIT64                    = 340\n\tSYS_NAME_TO_HANDLE_AT            = 341\n\tSYS_OPEN_BY_HANDLE_AT            = 342\n\tSYS_CLOCK_ADJTIME                = 343\n\tSYS_SYNCFS                       = 344\n\tSYS_SENDMMSG                     = 345\n\tSYS_SETNS                        = 346\n\tSYS_PROCESS_VM_READV             = 347\n\tSYS_PROCESS_VM_WRITEV            = 348\n\tSYS_KCMP                         = 349\n\tSYS_FINIT_MODULE                 = 350\n\tSYS_SCHED_SETATTR                = 351\n\tSYS_SCHED_GETATTR                = 352\n\tSYS_RENAMEAT2                    = 353\n\tSYS_SECCOMP                      = 354\n\tSYS_GETRANDOM                    = 355\n\tSYS_MEMFD_CREATE                 = 356\n\tSYS_BPF                          = 357\n\tSYS_EXECVEAT                     = 358\n\tSYS_SOCKET                       = 359\n\tSYS_SOCKETPAIR                   = 360\n\tSYS_BIND                         = 361\n\tSYS_CONNECT                      = 362\n\tSYS_LISTEN                       = 363\n\tSYS_ACCEPT4                      = 364\n\tSYS_GETSOCKOPT                   = 365\n\tSYS_SETSOCKOPT                   = 366\n\tSYS_GETSOCKNAME                  = 367\n\tSYS_GETPEERNAME                  = 368\n\tSYS_SENDTO                       = 369\n\tSYS_SENDMSG                      = 370\n\tSYS_RECVFROM                     = 371\n\tSYS_RECVMSG                      = 372\n\tSYS_SHUTDOWN                     = 373\n\tSYS_USERFAULTFD                  = 374\n\tSYS_MEMBARRIER                   = 375\n\tSYS_MLOCK2                       = 376\n\tSYS_COPY_FILE_RANGE              = 377\n\tSYS_PREADV2                      = 378\n\tSYS_PWRITEV2                     = 379\n\tSYS_PKEY_MPROTECT                = 380\n\tSYS_PKEY_ALLOC                   = 381\n\tSYS_PKEY_FREE                    = 382\n\tSYS_STATX                        = 383\n\tSYS_ARCH_PRCTL                   = 384\n\tSYS_IO_PGETEVENTS                = 385\n\tSYS_RSEQ                         = 386\n\tSYS_SEMGET                       = 393\n\tSYS_SEMCTL                       = 394\n\tSYS_SHMGET                       = 395\n\tSYS_SHMCTL                       = 396\n\tSYS_SHMAT                        = 397\n\tSYS_SHMDT                        = 398\n\tSYS_MSGGET                       = 399\n\tSYS_MSGSND                       = 400\n\tSYS_MSGRCV                       = 401\n\tSYS_MSGCTL                       = 402\n\tSYS_CLOCK_GETTIME64              = 403\n\tSYS_CLOCK_SETTIME64              = 404\n\tSYS_CLOCK_ADJTIME64              = 405\n\tSYS_CLOCK_GETRES_TIME64          = 406\n\tSYS_CLOCK_NANOSLEEP_TIME64       = 407\n\tSYS_TIMER_GETTIME64              = 408\n\tSYS_TIMER_SETTIME64              = 409\n\tSYS_TIMERFD_GETTIME64            = 410\n\tSYS_TIMERFD_SETTIME64            = 411\n\tSYS_UTIMENSAT_TIME64             = 412\n\tSYS_PSELECT6_TIME64              = 413\n\tSYS_PPOLL_TIME64                 = 414\n\tSYS_IO_PGETEVENTS_TIME64         = 416\n\tSYS_RECVMMSG_TIME64              = 417\n\tSYS_MQ_TIMEDSEND_TIME64          = 418\n\tSYS_MQ_TIMEDRECEIVE_TIME64       = 419\n\tSYS_SEMTIMEDOP_TIME64            = 420\n\tSYS_RT_SIGTIMEDWAIT_TIME64       = 421\n\tSYS_FUTEX_TIME64                 = 422\n\tSYS_SCHED_RR_GET_INTERVAL_TIME64 = 423\n\tSYS_PIDFD_SEND_SIGNAL            = 424\n\tSYS_IO_URING_SETUP               = 425\n\tSYS_IO_URING_ENTER               = 426\n\tSYS_IO_URING_REGISTER            = 427\n\tSYS_OPEN_TREE                    = 428\n\tSYS_MOVE_MOUNT                   = 429\n\tSYS_FSOPEN                       = 430\n\tSYS_FSCONFIG                     = 431\n\tSYS_FSMOUNT                      = 432\n\tSYS_FSPICK                       = 433\n\tSYS_PIDFD_OPEN                   = 434\n\tSYS_CLONE3                       = 435\n\tSYS_CLOSE_RANGE                  = 436\n\tSYS_OPENAT2                      = 437\n\tSYS_PIDFD_GETFD                  = 438\n\tSYS_FACCESSAT2                   = 439\n\tSYS_PROCESS_MADVISE              = 440\n\tSYS_EPOLL_PWAIT2                 = 441\n\tSYS_MOUNT_SETATTR                = 442\n\tSYS_QUOTACTL_FD                  = 443\n\tSYS_LANDLOCK_CREATE_RULESET      = 444\n\tSYS_LANDLOCK_ADD_RULE            = 445\n\tSYS_LANDLOCK_RESTRICT_SELF       = 446\n\tSYS_MEMFD_SECRET                 = 447\n\tSYS_PROCESS_MRELEASE             = 448\n\tSYS_FUTEX_WAITV                  = 449\n\tSYS_SET_MEMPOLICY_HOME_NODE      = 450\n\tSYS_CACHESTAT                    = 451\n\tSYS_FCHMODAT2                    = 452\n\tSYS_MAP_SHADOW_STACK             = 453\n\tSYS_FUTEX_WAKE                   = 454\n\tSYS_FUTEX_WAIT                   = 455\n\tSYS_FUTEX_REQUEUE                = 456\n\tSYS_STATMOUNT                    = 457\n\tSYS_LISTMOUNT                    = 458\n\tSYS_LSM_GET_SELF_ATTR            = 459\n\tSYS_LSM_SET_SELF_ATTR            = 460\n\tSYS_LSM_LIST_MODULES             = 461\n\tSYS_MSEAL                        = 462\n\tSYS_SETXATTRAT                   = 463\n\tSYS_GETXATTRAT                   = 464\n\tSYS_LISTXATTRAT                  = 465\n\tSYS_REMOVEXATTRAT                = 466\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/amd64/include -m64 /tmp/amd64/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && linux\n\npackage unix\n\nconst (\n\tSYS_READ                    = 0\n\tSYS_WRITE                   = 1\n\tSYS_OPEN                    = 2\n\tSYS_CLOSE                   = 3\n\tSYS_STAT                    = 4\n\tSYS_FSTAT                   = 5\n\tSYS_LSTAT                   = 6\n\tSYS_POLL                    = 7\n\tSYS_LSEEK                   = 8\n\tSYS_MMAP                    = 9\n\tSYS_MPROTECT                = 10\n\tSYS_MUNMAP                  = 11\n\tSYS_BRK                     = 12\n\tSYS_RT_SIGACTION            = 13\n\tSYS_RT_SIGPROCMASK          = 14\n\tSYS_RT_SIGRETURN            = 15\n\tSYS_IOCTL                   = 16\n\tSYS_PREAD64                 = 17\n\tSYS_PWRITE64                = 18\n\tSYS_READV                   = 19\n\tSYS_WRITEV                  = 20\n\tSYS_ACCESS                  = 21\n\tSYS_PIPE                    = 22\n\tSYS_SELECT                  = 23\n\tSYS_SCHED_YIELD             = 24\n\tSYS_MREMAP                  = 25\n\tSYS_MSYNC                   = 26\n\tSYS_MINCORE                 = 27\n\tSYS_MADVISE                 = 28\n\tSYS_SHMGET                  = 29\n\tSYS_SHMAT                   = 30\n\tSYS_SHMCTL                  = 31\n\tSYS_DUP                     = 32\n\tSYS_DUP2                    = 33\n\tSYS_PAUSE                   = 34\n\tSYS_NANOSLEEP               = 35\n\tSYS_GETITIMER               = 36\n\tSYS_ALARM                   = 37\n\tSYS_SETITIMER               = 38\n\tSYS_GETPID                  = 39\n\tSYS_SENDFILE                = 40\n\tSYS_SOCKET                  = 41\n\tSYS_CONNECT                 = 42\n\tSYS_ACCEPT                  = 43\n\tSYS_SENDTO                  = 44\n\tSYS_RECVFROM                = 45\n\tSYS_SENDMSG                 = 46\n\tSYS_RECVMSG                 = 47\n\tSYS_SHUTDOWN                = 48\n\tSYS_BIND                    = 49\n\tSYS_LISTEN                  = 50\n\tSYS_GETSOCKNAME             = 51\n\tSYS_GETPEERNAME             = 52\n\tSYS_SOCKETPAIR              = 53\n\tSYS_SETSOCKOPT              = 54\n\tSYS_GETSOCKOPT              = 55\n\tSYS_CLONE                   = 56\n\tSYS_FORK                    = 57\n\tSYS_VFORK                   = 58\n\tSYS_EXECVE                  = 59\n\tSYS_EXIT                    = 60\n\tSYS_WAIT4                   = 61\n\tSYS_KILL                    = 62\n\tSYS_UNAME                   = 63\n\tSYS_SEMGET                  = 64\n\tSYS_SEMOP                   = 65\n\tSYS_SEMCTL                  = 66\n\tSYS_SHMDT                   = 67\n\tSYS_MSGGET                  = 68\n\tSYS_MSGSND                  = 69\n\tSYS_MSGRCV                  = 70\n\tSYS_MSGCTL                  = 71\n\tSYS_FCNTL                   = 72\n\tSYS_FLOCK                   = 73\n\tSYS_FSYNC                   = 74\n\tSYS_FDATASYNC               = 75\n\tSYS_TRUNCATE                = 76\n\tSYS_FTRUNCATE               = 77\n\tSYS_GETDENTS                = 78\n\tSYS_GETCWD                  = 79\n\tSYS_CHDIR                   = 80\n\tSYS_FCHDIR                  = 81\n\tSYS_RENAME                  = 82\n\tSYS_MKDIR                   = 83\n\tSYS_RMDIR                   = 84\n\tSYS_CREAT                   = 85\n\tSYS_LINK                    = 86\n\tSYS_UNLINK                  = 87\n\tSYS_SYMLINK                 = 88\n\tSYS_READLINK                = 89\n\tSYS_CHMOD                   = 90\n\tSYS_FCHMOD                  = 91\n\tSYS_CHOWN                   = 92\n\tSYS_FCHOWN                  = 93\n\tSYS_LCHOWN                  = 94\n\tSYS_UMASK                   = 95\n\tSYS_GETTIMEOFDAY            = 96\n\tSYS_GETRLIMIT               = 97\n\tSYS_GETRUSAGE               = 98\n\tSYS_SYSINFO                 = 99\n\tSYS_TIMES                   = 100\n\tSYS_PTRACE                  = 101\n\tSYS_GETUID                  = 102\n\tSYS_SYSLOG                  = 103\n\tSYS_GETGID                  = 104\n\tSYS_SETUID                  = 105\n\tSYS_SETGID                  = 106\n\tSYS_GETEUID                 = 107\n\tSYS_GETEGID                 = 108\n\tSYS_SETPGID                 = 109\n\tSYS_GETPPID                 = 110\n\tSYS_GETPGRP                 = 111\n\tSYS_SETSID                  = 112\n\tSYS_SETREUID                = 113\n\tSYS_SETREGID                = 114\n\tSYS_GETGROUPS               = 115\n\tSYS_SETGROUPS               = 116\n\tSYS_SETRESUID               = 117\n\tSYS_GETRESUID               = 118\n\tSYS_SETRESGID               = 119\n\tSYS_GETRESGID               = 120\n\tSYS_GETPGID                 = 121\n\tSYS_SETFSUID                = 122\n\tSYS_SETFSGID                = 123\n\tSYS_GETSID                  = 124\n\tSYS_CAPGET                  = 125\n\tSYS_CAPSET                  = 126\n\tSYS_RT_SIGPENDING           = 127\n\tSYS_RT_SIGTIMEDWAIT         = 128\n\tSYS_RT_SIGQUEUEINFO         = 129\n\tSYS_RT_SIGSUSPEND           = 130\n\tSYS_SIGALTSTACK             = 131\n\tSYS_UTIME                   = 132\n\tSYS_MKNOD                   = 133\n\tSYS_USELIB                  = 134\n\tSYS_PERSONALITY             = 135\n\tSYS_USTAT                   = 136\n\tSYS_STATFS                  = 137\n\tSYS_FSTATFS                 = 138\n\tSYS_SYSFS                   = 139\n\tSYS_GETPRIORITY             = 140\n\tSYS_SETPRIORITY             = 141\n\tSYS_SCHED_SETPARAM          = 142\n\tSYS_SCHED_GETPARAM          = 143\n\tSYS_SCHED_SETSCHEDULER      = 144\n\tSYS_SCHED_GETSCHEDULER      = 145\n\tSYS_SCHED_GET_PRIORITY_MAX  = 146\n\tSYS_SCHED_GET_PRIORITY_MIN  = 147\n\tSYS_SCHED_RR_GET_INTERVAL   = 148\n\tSYS_MLOCK                   = 149\n\tSYS_MUNLOCK                 = 150\n\tSYS_MLOCKALL                = 151\n\tSYS_MUNLOCKALL              = 152\n\tSYS_VHANGUP                 = 153\n\tSYS_MODIFY_LDT              = 154\n\tSYS_PIVOT_ROOT              = 155\n\tSYS__SYSCTL                 = 156\n\tSYS_PRCTL                   = 157\n\tSYS_ARCH_PRCTL              = 158\n\tSYS_ADJTIMEX                = 159\n\tSYS_SETRLIMIT               = 160\n\tSYS_CHROOT                  = 161\n\tSYS_SYNC                    = 162\n\tSYS_ACCT                    = 163\n\tSYS_SETTIMEOFDAY            = 164\n\tSYS_MOUNT                   = 165\n\tSYS_UMOUNT2                 = 166\n\tSYS_SWAPON                  = 167\n\tSYS_SWAPOFF                 = 168\n\tSYS_REBOOT                  = 169\n\tSYS_SETHOSTNAME             = 170\n\tSYS_SETDOMAINNAME           = 171\n\tSYS_IOPL                    = 172\n\tSYS_IOPERM                  = 173\n\tSYS_CREATE_MODULE           = 174\n\tSYS_INIT_MODULE             = 175\n\tSYS_DELETE_MODULE           = 176\n\tSYS_GET_KERNEL_SYMS         = 177\n\tSYS_QUERY_MODULE            = 178\n\tSYS_QUOTACTL                = 179\n\tSYS_NFSSERVCTL              = 180\n\tSYS_GETPMSG                 = 181\n\tSYS_PUTPMSG                 = 182\n\tSYS_AFS_SYSCALL             = 183\n\tSYS_TUXCALL                 = 184\n\tSYS_SECURITY                = 185\n\tSYS_GETTID                  = 186\n\tSYS_READAHEAD               = 187\n\tSYS_SETXATTR                = 188\n\tSYS_LSETXATTR               = 189\n\tSYS_FSETXATTR               = 190\n\tSYS_GETXATTR                = 191\n\tSYS_LGETXATTR               = 192\n\tSYS_FGETXATTR               = 193\n\tSYS_LISTXATTR               = 194\n\tSYS_LLISTXATTR              = 195\n\tSYS_FLISTXATTR              = 196\n\tSYS_REMOVEXATTR             = 197\n\tSYS_LREMOVEXATTR            = 198\n\tSYS_FREMOVEXATTR            = 199\n\tSYS_TKILL                   = 200\n\tSYS_TIME                    = 201\n\tSYS_FUTEX                   = 202\n\tSYS_SCHED_SETAFFINITY       = 203\n\tSYS_SCHED_GETAFFINITY       = 204\n\tSYS_SET_THREAD_AREA         = 205\n\tSYS_IO_SETUP                = 206\n\tSYS_IO_DESTROY              = 207\n\tSYS_IO_GETEVENTS            = 208\n\tSYS_IO_SUBMIT               = 209\n\tSYS_IO_CANCEL               = 210\n\tSYS_GET_THREAD_AREA         = 211\n\tSYS_LOOKUP_DCOOKIE          = 212\n\tSYS_EPOLL_CREATE            = 213\n\tSYS_EPOLL_CTL_OLD           = 214\n\tSYS_EPOLL_WAIT_OLD          = 215\n\tSYS_REMAP_FILE_PAGES        = 216\n\tSYS_GETDENTS64              = 217\n\tSYS_SET_TID_ADDRESS         = 218\n\tSYS_RESTART_SYSCALL         = 219\n\tSYS_SEMTIMEDOP              = 220\n\tSYS_FADVISE64               = 221\n\tSYS_TIMER_CREATE            = 222\n\tSYS_TIMER_SETTIME           = 223\n\tSYS_TIMER_GETTIME           = 224\n\tSYS_TIMER_GETOVERRUN        = 225\n\tSYS_TIMER_DELETE            = 226\n\tSYS_CLOCK_SETTIME           = 227\n\tSYS_CLOCK_GETTIME           = 228\n\tSYS_CLOCK_GETRES            = 229\n\tSYS_CLOCK_NANOSLEEP         = 230\n\tSYS_EXIT_GROUP              = 231\n\tSYS_EPOLL_WAIT              = 232\n\tSYS_EPOLL_CTL               = 233\n\tSYS_TGKILL                  = 234\n\tSYS_UTIMES                  = 235\n\tSYS_VSERVER                 = 236\n\tSYS_MBIND                   = 237\n\tSYS_SET_MEMPOLICY           = 238\n\tSYS_GET_MEMPOLICY           = 239\n\tSYS_MQ_OPEN                 = 240\n\tSYS_MQ_UNLINK               = 241\n\tSYS_MQ_TIMEDSEND            = 242\n\tSYS_MQ_TIMEDRECEIVE         = 243\n\tSYS_MQ_NOTIFY               = 244\n\tSYS_MQ_GETSETATTR           = 245\n\tSYS_KEXEC_LOAD              = 246\n\tSYS_WAITID                  = 247\n\tSYS_ADD_KEY                 = 248\n\tSYS_REQUEST_KEY             = 249\n\tSYS_KEYCTL                  = 250\n\tSYS_IOPRIO_SET              = 251\n\tSYS_IOPRIO_GET              = 252\n\tSYS_INOTIFY_INIT            = 253\n\tSYS_INOTIFY_ADD_WATCH       = 254\n\tSYS_INOTIFY_RM_WATCH        = 255\n\tSYS_MIGRATE_PAGES           = 256\n\tSYS_OPENAT                  = 257\n\tSYS_MKDIRAT                 = 258\n\tSYS_MKNODAT                 = 259\n\tSYS_FCHOWNAT                = 260\n\tSYS_FUTIMESAT               = 261\n\tSYS_NEWFSTATAT              = 262\n\tSYS_UNLINKAT                = 263\n\tSYS_RENAMEAT                = 264\n\tSYS_LINKAT                  = 265\n\tSYS_SYMLINKAT               = 266\n\tSYS_READLINKAT              = 267\n\tSYS_FCHMODAT                = 268\n\tSYS_FACCESSAT               = 269\n\tSYS_PSELECT6                = 270\n\tSYS_PPOLL                   = 271\n\tSYS_UNSHARE                 = 272\n\tSYS_SET_ROBUST_LIST         = 273\n\tSYS_GET_ROBUST_LIST         = 274\n\tSYS_SPLICE                  = 275\n\tSYS_TEE                     = 276\n\tSYS_SYNC_FILE_RANGE         = 277\n\tSYS_VMSPLICE                = 278\n\tSYS_MOVE_PAGES              = 279\n\tSYS_UTIMENSAT               = 280\n\tSYS_EPOLL_PWAIT             = 281\n\tSYS_SIGNALFD                = 282\n\tSYS_TIMERFD_CREATE          = 283\n\tSYS_EVENTFD                 = 284\n\tSYS_FALLOCATE               = 285\n\tSYS_TIMERFD_SETTIME         = 286\n\tSYS_TIMERFD_GETTIME         = 287\n\tSYS_ACCEPT4                 = 288\n\tSYS_SIGNALFD4               = 289\n\tSYS_EVENTFD2                = 290\n\tSYS_EPOLL_CREATE1           = 291\n\tSYS_DUP3                    = 292\n\tSYS_PIPE2                   = 293\n\tSYS_INOTIFY_INIT1           = 294\n\tSYS_PREADV                  = 295\n\tSYS_PWRITEV                 = 296\n\tSYS_RT_TGSIGQUEUEINFO       = 297\n\tSYS_PERF_EVENT_OPEN         = 298\n\tSYS_RECVMMSG                = 299\n\tSYS_FANOTIFY_INIT           = 300\n\tSYS_FANOTIFY_MARK           = 301\n\tSYS_PRLIMIT64               = 302\n\tSYS_NAME_TO_HANDLE_AT       = 303\n\tSYS_OPEN_BY_HANDLE_AT       = 304\n\tSYS_CLOCK_ADJTIME           = 305\n\tSYS_SYNCFS                  = 306\n\tSYS_SENDMMSG                = 307\n\tSYS_SETNS                   = 308\n\tSYS_GETCPU                  = 309\n\tSYS_PROCESS_VM_READV        = 310\n\tSYS_PROCESS_VM_WRITEV       = 311\n\tSYS_KCMP                    = 312\n\tSYS_FINIT_MODULE            = 313\n\tSYS_SCHED_SETATTR           = 314\n\tSYS_SCHED_GETATTR           = 315\n\tSYS_RENAMEAT2               = 316\n\tSYS_SECCOMP                 = 317\n\tSYS_GETRANDOM               = 318\n\tSYS_MEMFD_CREATE            = 319\n\tSYS_KEXEC_FILE_LOAD         = 320\n\tSYS_BPF                     = 321\n\tSYS_EXECVEAT                = 322\n\tSYS_USERFAULTFD             = 323\n\tSYS_MEMBARRIER              = 324\n\tSYS_MLOCK2                  = 325\n\tSYS_COPY_FILE_RANGE         = 326\n\tSYS_PREADV2                 = 327\n\tSYS_PWRITEV2                = 328\n\tSYS_PKEY_MPROTECT           = 329\n\tSYS_PKEY_ALLOC              = 330\n\tSYS_PKEY_FREE               = 331\n\tSYS_STATX                   = 332\n\tSYS_IO_PGETEVENTS           = 333\n\tSYS_RSEQ                    = 334\n\tSYS_URETPROBE               = 335\n\tSYS_PIDFD_SEND_SIGNAL       = 424\n\tSYS_IO_URING_SETUP          = 425\n\tSYS_IO_URING_ENTER          = 426\n\tSYS_IO_URING_REGISTER       = 427\n\tSYS_OPEN_TREE               = 428\n\tSYS_MOVE_MOUNT              = 429\n\tSYS_FSOPEN                  = 430\n\tSYS_FSCONFIG                = 431\n\tSYS_FSMOUNT                 = 432\n\tSYS_FSPICK                  = 433\n\tSYS_PIDFD_OPEN              = 434\n\tSYS_CLONE3                  = 435\n\tSYS_CLOSE_RANGE             = 436\n\tSYS_OPENAT2                 = 437\n\tSYS_PIDFD_GETFD             = 438\n\tSYS_FACCESSAT2              = 439\n\tSYS_PROCESS_MADVISE         = 440\n\tSYS_EPOLL_PWAIT2            = 441\n\tSYS_MOUNT_SETATTR           = 442\n\tSYS_QUOTACTL_FD             = 443\n\tSYS_LANDLOCK_CREATE_RULESET = 444\n\tSYS_LANDLOCK_ADD_RULE       = 445\n\tSYS_LANDLOCK_RESTRICT_SELF  = 446\n\tSYS_MEMFD_SECRET            = 447\n\tSYS_PROCESS_MRELEASE        = 448\n\tSYS_FUTEX_WAITV             = 449\n\tSYS_SET_MEMPOLICY_HOME_NODE = 450\n\tSYS_CACHESTAT               = 451\n\tSYS_FCHMODAT2               = 452\n\tSYS_MAP_SHADOW_STACK        = 453\n\tSYS_FUTEX_WAKE              = 454\n\tSYS_FUTEX_WAIT              = 455\n\tSYS_FUTEX_REQUEUE           = 456\n\tSYS_STATMOUNT               = 457\n\tSYS_LISTMOUNT               = 458\n\tSYS_LSM_GET_SELF_ATTR       = 459\n\tSYS_LSM_SET_SELF_ATTR       = 460\n\tSYS_LSM_LIST_MODULES        = 461\n\tSYS_MSEAL                   = 462\n\tSYS_SETXATTRAT              = 463\n\tSYS_GETXATTRAT              = 464\n\tSYS_LISTXATTRAT             = 465\n\tSYS_REMOVEXATTRAT           = 466\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/arm/include /tmp/arm/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm && linux\n\npackage unix\n\nconst (\n\tSYS_SYSCALL_MASK                 = 0\n\tSYS_RESTART_SYSCALL              = 0\n\tSYS_EXIT                         = 1\n\tSYS_FORK                         = 2\n\tSYS_READ                         = 3\n\tSYS_WRITE                        = 4\n\tSYS_OPEN                         = 5\n\tSYS_CLOSE                        = 6\n\tSYS_CREAT                        = 8\n\tSYS_LINK                         = 9\n\tSYS_UNLINK                       = 10\n\tSYS_EXECVE                       = 11\n\tSYS_CHDIR                        = 12\n\tSYS_MKNOD                        = 14\n\tSYS_CHMOD                        = 15\n\tSYS_LCHOWN                       = 16\n\tSYS_LSEEK                        = 19\n\tSYS_GETPID                       = 20\n\tSYS_MOUNT                        = 21\n\tSYS_SETUID                       = 23\n\tSYS_GETUID                       = 24\n\tSYS_PTRACE                       = 26\n\tSYS_PAUSE                        = 29\n\tSYS_ACCESS                       = 33\n\tSYS_NICE                         = 34\n\tSYS_SYNC                         = 36\n\tSYS_KILL                         = 37\n\tSYS_RENAME                       = 38\n\tSYS_MKDIR                        = 39\n\tSYS_RMDIR                        = 40\n\tSYS_DUP                          = 41\n\tSYS_PIPE                         = 42\n\tSYS_TIMES                        = 43\n\tSYS_BRK                          = 45\n\tSYS_SETGID                       = 46\n\tSYS_GETGID                       = 47\n\tSYS_GETEUID                      = 49\n\tSYS_GETEGID                      = 50\n\tSYS_ACCT                         = 51\n\tSYS_UMOUNT2                      = 52\n\tSYS_IOCTL                        = 54\n\tSYS_FCNTL                        = 55\n\tSYS_SETPGID                      = 57\n\tSYS_UMASK                        = 60\n\tSYS_CHROOT                       = 61\n\tSYS_USTAT                        = 62\n\tSYS_DUP2                         = 63\n\tSYS_GETPPID                      = 64\n\tSYS_GETPGRP                      = 65\n\tSYS_SETSID                       = 66\n\tSYS_SIGACTION                    = 67\n\tSYS_SETREUID                     = 70\n\tSYS_SETREGID                     = 71\n\tSYS_SIGSUSPEND                   = 72\n\tSYS_SIGPENDING                   = 73\n\tSYS_SETHOSTNAME                  = 74\n\tSYS_SETRLIMIT                    = 75\n\tSYS_GETRUSAGE                    = 77\n\tSYS_GETTIMEOFDAY                 = 78\n\tSYS_SETTIMEOFDAY                 = 79\n\tSYS_GETGROUPS                    = 80\n\tSYS_SETGROUPS                    = 81\n\tSYS_SYMLINK                      = 83\n\tSYS_READLINK                     = 85\n\tSYS_USELIB                       = 86\n\tSYS_SWAPON                       = 87\n\tSYS_REBOOT                       = 88\n\tSYS_MUNMAP                       = 91\n\tSYS_TRUNCATE                     = 92\n\tSYS_FTRUNCATE                    = 93\n\tSYS_FCHMOD                       = 94\n\tSYS_FCHOWN                       = 95\n\tSYS_GETPRIORITY                  = 96\n\tSYS_SETPRIORITY                  = 97\n\tSYS_STATFS                       = 99\n\tSYS_FSTATFS                      = 100\n\tSYS_SYSLOG                       = 103\n\tSYS_SETITIMER                    = 104\n\tSYS_GETITIMER                    = 105\n\tSYS_STAT                         = 106\n\tSYS_LSTAT                        = 107\n\tSYS_FSTAT                        = 108\n\tSYS_VHANGUP                      = 111\n\tSYS_WAIT4                        = 114\n\tSYS_SWAPOFF                      = 115\n\tSYS_SYSINFO                      = 116\n\tSYS_FSYNC                        = 118\n\tSYS_SIGRETURN                    = 119\n\tSYS_CLONE                        = 120\n\tSYS_SETDOMAINNAME                = 121\n\tSYS_UNAME                        = 122\n\tSYS_ADJTIMEX                     = 124\n\tSYS_MPROTECT                     = 125\n\tSYS_SIGPROCMASK                  = 126\n\tSYS_INIT_MODULE                  = 128\n\tSYS_DELETE_MODULE                = 129\n\tSYS_QUOTACTL                     = 131\n\tSYS_GETPGID                      = 132\n\tSYS_FCHDIR                       = 133\n\tSYS_BDFLUSH                      = 134\n\tSYS_SYSFS                        = 135\n\tSYS_PERSONALITY                  = 136\n\tSYS_SETFSUID                     = 138\n\tSYS_SETFSGID                     = 139\n\tSYS__LLSEEK                      = 140\n\tSYS_GETDENTS                     = 141\n\tSYS__NEWSELECT                   = 142\n\tSYS_FLOCK                        = 143\n\tSYS_MSYNC                        = 144\n\tSYS_READV                        = 145\n\tSYS_WRITEV                       = 146\n\tSYS_GETSID                       = 147\n\tSYS_FDATASYNC                    = 148\n\tSYS__SYSCTL                      = 149\n\tSYS_MLOCK                        = 150\n\tSYS_MUNLOCK                      = 151\n\tSYS_MLOCKALL                     = 152\n\tSYS_MUNLOCKALL                   = 153\n\tSYS_SCHED_SETPARAM               = 154\n\tSYS_SCHED_GETPARAM               = 155\n\tSYS_SCHED_SETSCHEDULER           = 156\n\tSYS_SCHED_GETSCHEDULER           = 157\n\tSYS_SCHED_YIELD                  = 158\n\tSYS_SCHED_GET_PRIORITY_MAX       = 159\n\tSYS_SCHED_GET_PRIORITY_MIN       = 160\n\tSYS_SCHED_RR_GET_INTERVAL        = 161\n\tSYS_NANOSLEEP                    = 162\n\tSYS_MREMAP                       = 163\n\tSYS_SETRESUID                    = 164\n\tSYS_GETRESUID                    = 165\n\tSYS_POLL                         = 168\n\tSYS_NFSSERVCTL                   = 169\n\tSYS_SETRESGID                    = 170\n\tSYS_GETRESGID                    = 171\n\tSYS_PRCTL                        = 172\n\tSYS_RT_SIGRETURN                 = 173\n\tSYS_RT_SIGACTION                 = 174\n\tSYS_RT_SIGPROCMASK               = 175\n\tSYS_RT_SIGPENDING                = 176\n\tSYS_RT_SIGTIMEDWAIT              = 177\n\tSYS_RT_SIGQUEUEINFO              = 178\n\tSYS_RT_SIGSUSPEND                = 179\n\tSYS_PREAD64                      = 180\n\tSYS_PWRITE64                     = 181\n\tSYS_CHOWN                        = 182\n\tSYS_GETCWD                       = 183\n\tSYS_CAPGET                       = 184\n\tSYS_CAPSET                       = 185\n\tSYS_SIGALTSTACK                  = 186\n\tSYS_SENDFILE                     = 187\n\tSYS_VFORK                        = 190\n\tSYS_UGETRLIMIT                   = 191\n\tSYS_MMAP2                        = 192\n\tSYS_TRUNCATE64                   = 193\n\tSYS_FTRUNCATE64                  = 194\n\tSYS_STAT64                       = 195\n\tSYS_LSTAT64                      = 196\n\tSYS_FSTAT64                      = 197\n\tSYS_LCHOWN32                     = 198\n\tSYS_GETUID32                     = 199\n\tSYS_GETGID32                     = 200\n\tSYS_GETEUID32                    = 201\n\tSYS_GETEGID32                    = 202\n\tSYS_SETREUID32                   = 203\n\tSYS_SETREGID32                   = 204\n\tSYS_GETGROUPS32                  = 205\n\tSYS_SETGROUPS32                  = 206\n\tSYS_FCHOWN32                     = 207\n\tSYS_SETRESUID32                  = 208\n\tSYS_GETRESUID32                  = 209\n\tSYS_SETRESGID32                  = 210\n\tSYS_GETRESGID32                  = 211\n\tSYS_CHOWN32                      = 212\n\tSYS_SETUID32                     = 213\n\tSYS_SETGID32                     = 214\n\tSYS_SETFSUID32                   = 215\n\tSYS_SETFSGID32                   = 216\n\tSYS_GETDENTS64                   = 217\n\tSYS_PIVOT_ROOT                   = 218\n\tSYS_MINCORE                      = 219\n\tSYS_MADVISE                      = 220\n\tSYS_FCNTL64                      = 221\n\tSYS_GETTID                       = 224\n\tSYS_READAHEAD                    = 225\n\tSYS_SETXATTR                     = 226\n\tSYS_LSETXATTR                    = 227\n\tSYS_FSETXATTR                    = 228\n\tSYS_GETXATTR                     = 229\n\tSYS_LGETXATTR                    = 230\n\tSYS_FGETXATTR                    = 231\n\tSYS_LISTXATTR                    = 232\n\tSYS_LLISTXATTR                   = 233\n\tSYS_FLISTXATTR                   = 234\n\tSYS_REMOVEXATTR                  = 235\n\tSYS_LREMOVEXATTR                 = 236\n\tSYS_FREMOVEXATTR                 = 237\n\tSYS_TKILL                        = 238\n\tSYS_SENDFILE64                   = 239\n\tSYS_FUTEX                        = 240\n\tSYS_SCHED_SETAFFINITY            = 241\n\tSYS_SCHED_GETAFFINITY            = 242\n\tSYS_IO_SETUP                     = 243\n\tSYS_IO_DESTROY                   = 244\n\tSYS_IO_GETEVENTS                 = 245\n\tSYS_IO_SUBMIT                    = 246\n\tSYS_IO_CANCEL                    = 247\n\tSYS_EXIT_GROUP                   = 248\n\tSYS_LOOKUP_DCOOKIE               = 249\n\tSYS_EPOLL_CREATE                 = 250\n\tSYS_EPOLL_CTL                    = 251\n\tSYS_EPOLL_WAIT                   = 252\n\tSYS_REMAP_FILE_PAGES             = 253\n\tSYS_SET_TID_ADDRESS              = 256\n\tSYS_TIMER_CREATE                 = 257\n\tSYS_TIMER_SETTIME                = 258\n\tSYS_TIMER_GETTIME                = 259\n\tSYS_TIMER_GETOVERRUN             = 260\n\tSYS_TIMER_DELETE                 = 261\n\tSYS_CLOCK_SETTIME                = 262\n\tSYS_CLOCK_GETTIME                = 263\n\tSYS_CLOCK_GETRES                 = 264\n\tSYS_CLOCK_NANOSLEEP              = 265\n\tSYS_STATFS64                     = 266\n\tSYS_FSTATFS64                    = 267\n\tSYS_TGKILL                       = 268\n\tSYS_UTIMES                       = 269\n\tSYS_ARM_FADVISE64_64             = 270\n\tSYS_PCICONFIG_IOBASE             = 271\n\tSYS_PCICONFIG_READ               = 272\n\tSYS_PCICONFIG_WRITE              = 273\n\tSYS_MQ_OPEN                      = 274\n\tSYS_MQ_UNLINK                    = 275\n\tSYS_MQ_TIMEDSEND                 = 276\n\tSYS_MQ_TIMEDRECEIVE              = 277\n\tSYS_MQ_NOTIFY                    = 278\n\tSYS_MQ_GETSETATTR                = 279\n\tSYS_WAITID                       = 280\n\tSYS_SOCKET                       = 281\n\tSYS_BIND                         = 282\n\tSYS_CONNECT                      = 283\n\tSYS_LISTEN                       = 284\n\tSYS_ACCEPT                       = 285\n\tSYS_GETSOCKNAME                  = 286\n\tSYS_GETPEERNAME                  = 287\n\tSYS_SOCKETPAIR                   = 288\n\tSYS_SEND                         = 289\n\tSYS_SENDTO                       = 290\n\tSYS_RECV                         = 291\n\tSYS_RECVFROM                     = 292\n\tSYS_SHUTDOWN                     = 293\n\tSYS_SETSOCKOPT                   = 294\n\tSYS_GETSOCKOPT                   = 295\n\tSYS_SENDMSG                      = 296\n\tSYS_RECVMSG                      = 297\n\tSYS_SEMOP                        = 298\n\tSYS_SEMGET                       = 299\n\tSYS_SEMCTL                       = 300\n\tSYS_MSGSND                       = 301\n\tSYS_MSGRCV                       = 302\n\tSYS_MSGGET                       = 303\n\tSYS_MSGCTL                       = 304\n\tSYS_SHMAT                        = 305\n\tSYS_SHMDT                        = 306\n\tSYS_SHMGET                       = 307\n\tSYS_SHMCTL                       = 308\n\tSYS_ADD_KEY                      = 309\n\tSYS_REQUEST_KEY                  = 310\n\tSYS_KEYCTL                       = 311\n\tSYS_SEMTIMEDOP                   = 312\n\tSYS_VSERVER                      = 313\n\tSYS_IOPRIO_SET                   = 314\n\tSYS_IOPRIO_GET                   = 315\n\tSYS_INOTIFY_INIT                 = 316\n\tSYS_INOTIFY_ADD_WATCH            = 317\n\tSYS_INOTIFY_RM_WATCH             = 318\n\tSYS_MBIND                        = 319\n\tSYS_GET_MEMPOLICY                = 320\n\tSYS_SET_MEMPOLICY                = 321\n\tSYS_OPENAT                       = 322\n\tSYS_MKDIRAT                      = 323\n\tSYS_MKNODAT                      = 324\n\tSYS_FCHOWNAT                     = 325\n\tSYS_FUTIMESAT                    = 326\n\tSYS_FSTATAT64                    = 327\n\tSYS_UNLINKAT                     = 328\n\tSYS_RENAMEAT                     = 329\n\tSYS_LINKAT                       = 330\n\tSYS_SYMLINKAT                    = 331\n\tSYS_READLINKAT                   = 332\n\tSYS_FCHMODAT                     = 333\n\tSYS_FACCESSAT                    = 334\n\tSYS_PSELECT6                     = 335\n\tSYS_PPOLL                        = 336\n\tSYS_UNSHARE                      = 337\n\tSYS_SET_ROBUST_LIST              = 338\n\tSYS_GET_ROBUST_LIST              = 339\n\tSYS_SPLICE                       = 340\n\tSYS_ARM_SYNC_FILE_RANGE          = 341\n\tSYS_TEE                          = 342\n\tSYS_VMSPLICE                     = 343\n\tSYS_MOVE_PAGES                   = 344\n\tSYS_GETCPU                       = 345\n\tSYS_EPOLL_PWAIT                  = 346\n\tSYS_KEXEC_LOAD                   = 347\n\tSYS_UTIMENSAT                    = 348\n\tSYS_SIGNALFD                     = 349\n\tSYS_TIMERFD_CREATE               = 350\n\tSYS_EVENTFD                      = 351\n\tSYS_FALLOCATE                    = 352\n\tSYS_TIMERFD_SETTIME              = 353\n\tSYS_TIMERFD_GETTIME              = 354\n\tSYS_SIGNALFD4                    = 355\n\tSYS_EVENTFD2                     = 356\n\tSYS_EPOLL_CREATE1                = 357\n\tSYS_DUP3                         = 358\n\tSYS_PIPE2                        = 359\n\tSYS_INOTIFY_INIT1                = 360\n\tSYS_PREADV                       = 361\n\tSYS_PWRITEV                      = 362\n\tSYS_RT_TGSIGQUEUEINFO            = 363\n\tSYS_PERF_EVENT_OPEN              = 364\n\tSYS_RECVMMSG                     = 365\n\tSYS_ACCEPT4                      = 366\n\tSYS_FANOTIFY_INIT                = 367\n\tSYS_FANOTIFY_MARK                = 368\n\tSYS_PRLIMIT64                    = 369\n\tSYS_NAME_TO_HANDLE_AT            = 370\n\tSYS_OPEN_BY_HANDLE_AT            = 371\n\tSYS_CLOCK_ADJTIME                = 372\n\tSYS_SYNCFS                       = 373\n\tSYS_SENDMMSG                     = 374\n\tSYS_SETNS                        = 375\n\tSYS_PROCESS_VM_READV             = 376\n\tSYS_PROCESS_VM_WRITEV            = 377\n\tSYS_KCMP                         = 378\n\tSYS_FINIT_MODULE                 = 379\n\tSYS_SCHED_SETATTR                = 380\n\tSYS_SCHED_GETATTR                = 381\n\tSYS_RENAMEAT2                    = 382\n\tSYS_SECCOMP                      = 383\n\tSYS_GETRANDOM                    = 384\n\tSYS_MEMFD_CREATE                 = 385\n\tSYS_BPF                          = 386\n\tSYS_EXECVEAT                     = 387\n\tSYS_USERFAULTFD                  = 388\n\tSYS_MEMBARRIER                   = 389\n\tSYS_MLOCK2                       = 390\n\tSYS_COPY_FILE_RANGE              = 391\n\tSYS_PREADV2                      = 392\n\tSYS_PWRITEV2                     = 393\n\tSYS_PKEY_MPROTECT                = 394\n\tSYS_PKEY_ALLOC                   = 395\n\tSYS_PKEY_FREE                    = 396\n\tSYS_STATX                        = 397\n\tSYS_RSEQ                         = 398\n\tSYS_IO_PGETEVENTS                = 399\n\tSYS_MIGRATE_PAGES                = 400\n\tSYS_KEXEC_FILE_LOAD              = 401\n\tSYS_CLOCK_GETTIME64              = 403\n\tSYS_CLOCK_SETTIME64              = 404\n\tSYS_CLOCK_ADJTIME64              = 405\n\tSYS_CLOCK_GETRES_TIME64          = 406\n\tSYS_CLOCK_NANOSLEEP_TIME64       = 407\n\tSYS_TIMER_GETTIME64              = 408\n\tSYS_TIMER_SETTIME64              = 409\n\tSYS_TIMERFD_GETTIME64            = 410\n\tSYS_TIMERFD_SETTIME64            = 411\n\tSYS_UTIMENSAT_TIME64             = 412\n\tSYS_PSELECT6_TIME64              = 413\n\tSYS_PPOLL_TIME64                 = 414\n\tSYS_IO_PGETEVENTS_TIME64         = 416\n\tSYS_RECVMMSG_TIME64              = 417\n\tSYS_MQ_TIMEDSEND_TIME64          = 418\n\tSYS_MQ_TIMEDRECEIVE_TIME64       = 419\n\tSYS_SEMTIMEDOP_TIME64            = 420\n\tSYS_RT_SIGTIMEDWAIT_TIME64       = 421\n\tSYS_FUTEX_TIME64                 = 422\n\tSYS_SCHED_RR_GET_INTERVAL_TIME64 = 423\n\tSYS_PIDFD_SEND_SIGNAL            = 424\n\tSYS_IO_URING_SETUP               = 425\n\tSYS_IO_URING_ENTER               = 426\n\tSYS_IO_URING_REGISTER            = 427\n\tSYS_OPEN_TREE                    = 428\n\tSYS_MOVE_MOUNT                   = 429\n\tSYS_FSOPEN                       = 430\n\tSYS_FSCONFIG                     = 431\n\tSYS_FSMOUNT                      = 432\n\tSYS_FSPICK                       = 433\n\tSYS_PIDFD_OPEN                   = 434\n\tSYS_CLONE3                       = 435\n\tSYS_CLOSE_RANGE                  = 436\n\tSYS_OPENAT2                      = 437\n\tSYS_PIDFD_GETFD                  = 438\n\tSYS_FACCESSAT2                   = 439\n\tSYS_PROCESS_MADVISE              = 440\n\tSYS_EPOLL_PWAIT2                 = 441\n\tSYS_MOUNT_SETATTR                = 442\n\tSYS_QUOTACTL_FD                  = 443\n\tSYS_LANDLOCK_CREATE_RULESET      = 444\n\tSYS_LANDLOCK_ADD_RULE            = 445\n\tSYS_LANDLOCK_RESTRICT_SELF       = 446\n\tSYS_PROCESS_MRELEASE             = 448\n\tSYS_FUTEX_WAITV                  = 449\n\tSYS_SET_MEMPOLICY_HOME_NODE      = 450\n\tSYS_CACHESTAT                    = 451\n\tSYS_FCHMODAT2                    = 452\n\tSYS_MAP_SHADOW_STACK             = 453\n\tSYS_FUTEX_WAKE                   = 454\n\tSYS_FUTEX_WAIT                   = 455\n\tSYS_FUTEX_REQUEUE                = 456\n\tSYS_STATMOUNT                    = 457\n\tSYS_LISTMOUNT                    = 458\n\tSYS_LSM_GET_SELF_ATTR            = 459\n\tSYS_LSM_SET_SELF_ATTR            = 460\n\tSYS_LSM_LIST_MODULES             = 461\n\tSYS_MSEAL                        = 462\n\tSYS_SETXATTRAT                   = 463\n\tSYS_GETXATTRAT                   = 464\n\tSYS_LISTXATTRAT                  = 465\n\tSYS_REMOVEXATTRAT                = 466\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/arm64/include -fsigned-char /tmp/arm64/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && linux\n\npackage unix\n\nconst (\n\tSYS_IO_SETUP                = 0\n\tSYS_IO_DESTROY              = 1\n\tSYS_IO_SUBMIT               = 2\n\tSYS_IO_CANCEL               = 3\n\tSYS_IO_GETEVENTS            = 4\n\tSYS_SETXATTR                = 5\n\tSYS_LSETXATTR               = 6\n\tSYS_FSETXATTR               = 7\n\tSYS_GETXATTR                = 8\n\tSYS_LGETXATTR               = 9\n\tSYS_FGETXATTR               = 10\n\tSYS_LISTXATTR               = 11\n\tSYS_LLISTXATTR              = 12\n\tSYS_FLISTXATTR              = 13\n\tSYS_REMOVEXATTR             = 14\n\tSYS_LREMOVEXATTR            = 15\n\tSYS_FREMOVEXATTR            = 16\n\tSYS_GETCWD                  = 17\n\tSYS_LOOKUP_DCOOKIE          = 18\n\tSYS_EVENTFD2                = 19\n\tSYS_EPOLL_CREATE1           = 20\n\tSYS_EPOLL_CTL               = 21\n\tSYS_EPOLL_PWAIT             = 22\n\tSYS_DUP                     = 23\n\tSYS_DUP3                    = 24\n\tSYS_FCNTL                   = 25\n\tSYS_INOTIFY_INIT1           = 26\n\tSYS_INOTIFY_ADD_WATCH       = 27\n\tSYS_INOTIFY_RM_WATCH        = 28\n\tSYS_IOCTL                   = 29\n\tSYS_IOPRIO_SET              = 30\n\tSYS_IOPRIO_GET              = 31\n\tSYS_FLOCK                   = 32\n\tSYS_MKNODAT                 = 33\n\tSYS_MKDIRAT                 = 34\n\tSYS_UNLINKAT                = 35\n\tSYS_SYMLINKAT               = 36\n\tSYS_LINKAT                  = 37\n\tSYS_RENAMEAT                = 38\n\tSYS_UMOUNT2                 = 39\n\tSYS_MOUNT                   = 40\n\tSYS_PIVOT_ROOT              = 41\n\tSYS_NFSSERVCTL              = 42\n\tSYS_STATFS                  = 43\n\tSYS_FSTATFS                 = 44\n\tSYS_TRUNCATE                = 45\n\tSYS_FTRUNCATE               = 46\n\tSYS_FALLOCATE               = 47\n\tSYS_FACCESSAT               = 48\n\tSYS_CHDIR                   = 49\n\tSYS_FCHDIR                  = 50\n\tSYS_CHROOT                  = 51\n\tSYS_FCHMOD                  = 52\n\tSYS_FCHMODAT                = 53\n\tSYS_FCHOWNAT                = 54\n\tSYS_FCHOWN                  = 55\n\tSYS_OPENAT                  = 56\n\tSYS_CLOSE                   = 57\n\tSYS_VHANGUP                 = 58\n\tSYS_PIPE2                   = 59\n\tSYS_QUOTACTL                = 60\n\tSYS_GETDENTS64              = 61\n\tSYS_LSEEK                   = 62\n\tSYS_READ                    = 63\n\tSYS_WRITE                   = 64\n\tSYS_READV                   = 65\n\tSYS_WRITEV                  = 66\n\tSYS_PREAD64                 = 67\n\tSYS_PWRITE64                = 68\n\tSYS_PREADV                  = 69\n\tSYS_PWRITEV                 = 70\n\tSYS_SENDFILE                = 71\n\tSYS_PSELECT6                = 72\n\tSYS_PPOLL                   = 73\n\tSYS_SIGNALFD4               = 74\n\tSYS_VMSPLICE                = 75\n\tSYS_SPLICE                  = 76\n\tSYS_TEE                     = 77\n\tSYS_READLINKAT              = 78\n\tSYS_NEWFSTATAT              = 79\n\tSYS_FSTAT                   = 80\n\tSYS_SYNC                    = 81\n\tSYS_FSYNC                   = 82\n\tSYS_FDATASYNC               = 83\n\tSYS_SYNC_FILE_RANGE         = 84\n\tSYS_TIMERFD_CREATE          = 85\n\tSYS_TIMERFD_SETTIME         = 86\n\tSYS_TIMERFD_GETTIME         = 87\n\tSYS_UTIMENSAT               = 88\n\tSYS_ACCT                    = 89\n\tSYS_CAPGET                  = 90\n\tSYS_CAPSET                  = 91\n\tSYS_PERSONALITY             = 92\n\tSYS_EXIT                    = 93\n\tSYS_EXIT_GROUP              = 94\n\tSYS_WAITID                  = 95\n\tSYS_SET_TID_ADDRESS         = 96\n\tSYS_UNSHARE                 = 97\n\tSYS_FUTEX                   = 98\n\tSYS_SET_ROBUST_LIST         = 99\n\tSYS_GET_ROBUST_LIST         = 100\n\tSYS_NANOSLEEP               = 101\n\tSYS_GETITIMER               = 102\n\tSYS_SETITIMER               = 103\n\tSYS_KEXEC_LOAD              = 104\n\tSYS_INIT_MODULE             = 105\n\tSYS_DELETE_MODULE           = 106\n\tSYS_TIMER_CREATE            = 107\n\tSYS_TIMER_GETTIME           = 108\n\tSYS_TIMER_GETOVERRUN        = 109\n\tSYS_TIMER_SETTIME           = 110\n\tSYS_TIMER_DELETE            = 111\n\tSYS_CLOCK_SETTIME           = 112\n\tSYS_CLOCK_GETTIME           = 113\n\tSYS_CLOCK_GETRES            = 114\n\tSYS_CLOCK_NANOSLEEP         = 115\n\tSYS_SYSLOG                  = 116\n\tSYS_PTRACE                  = 117\n\tSYS_SCHED_SETPARAM          = 118\n\tSYS_SCHED_SETSCHEDULER      = 119\n\tSYS_SCHED_GETSCHEDULER      = 120\n\tSYS_SCHED_GETPARAM          = 121\n\tSYS_SCHED_SETAFFINITY       = 122\n\tSYS_SCHED_GETAFFINITY       = 123\n\tSYS_SCHED_YIELD             = 124\n\tSYS_SCHED_GET_PRIORITY_MAX  = 125\n\tSYS_SCHED_GET_PRIORITY_MIN  = 126\n\tSYS_SCHED_RR_GET_INTERVAL   = 127\n\tSYS_RESTART_SYSCALL         = 128\n\tSYS_KILL                    = 129\n\tSYS_TKILL                   = 130\n\tSYS_TGKILL                  = 131\n\tSYS_SIGALTSTACK             = 132\n\tSYS_RT_SIGSUSPEND           = 133\n\tSYS_RT_SIGACTION            = 134\n\tSYS_RT_SIGPROCMASK          = 135\n\tSYS_RT_SIGPENDING           = 136\n\tSYS_RT_SIGTIMEDWAIT         = 137\n\tSYS_RT_SIGQUEUEINFO         = 138\n\tSYS_RT_SIGRETURN            = 139\n\tSYS_SETPRIORITY             = 140\n\tSYS_GETPRIORITY             = 141\n\tSYS_REBOOT                  = 142\n\tSYS_SETREGID                = 143\n\tSYS_SETGID                  = 144\n\tSYS_SETREUID                = 145\n\tSYS_SETUID                  = 146\n\tSYS_SETRESUID               = 147\n\tSYS_GETRESUID               = 148\n\tSYS_SETRESGID               = 149\n\tSYS_GETRESGID               = 150\n\tSYS_SETFSUID                = 151\n\tSYS_SETFSGID                = 152\n\tSYS_TIMES                   = 153\n\tSYS_SETPGID                 = 154\n\tSYS_GETPGID                 = 155\n\tSYS_GETSID                  = 156\n\tSYS_SETSID                  = 157\n\tSYS_GETGROUPS               = 158\n\tSYS_SETGROUPS               = 159\n\tSYS_UNAME                   = 160\n\tSYS_SETHOSTNAME             = 161\n\tSYS_SETDOMAINNAME           = 162\n\tSYS_GETRLIMIT               = 163\n\tSYS_SETRLIMIT               = 164\n\tSYS_GETRUSAGE               = 165\n\tSYS_UMASK                   = 166\n\tSYS_PRCTL                   = 167\n\tSYS_GETCPU                  = 168\n\tSYS_GETTIMEOFDAY            = 169\n\tSYS_SETTIMEOFDAY            = 170\n\tSYS_ADJTIMEX                = 171\n\tSYS_GETPID                  = 172\n\tSYS_GETPPID                 = 173\n\tSYS_GETUID                  = 174\n\tSYS_GETEUID                 = 175\n\tSYS_GETGID                  = 176\n\tSYS_GETEGID                 = 177\n\tSYS_GETTID                  = 178\n\tSYS_SYSINFO                 = 179\n\tSYS_MQ_OPEN                 = 180\n\tSYS_MQ_UNLINK               = 181\n\tSYS_MQ_TIMEDSEND            = 182\n\tSYS_MQ_TIMEDRECEIVE         = 183\n\tSYS_MQ_NOTIFY               = 184\n\tSYS_MQ_GETSETATTR           = 185\n\tSYS_MSGGET                  = 186\n\tSYS_MSGCTL                  = 187\n\tSYS_MSGRCV                  = 188\n\tSYS_MSGSND                  = 189\n\tSYS_SEMGET                  = 190\n\tSYS_SEMCTL                  = 191\n\tSYS_SEMTIMEDOP              = 192\n\tSYS_SEMOP                   = 193\n\tSYS_SHMGET                  = 194\n\tSYS_SHMCTL                  = 195\n\tSYS_SHMAT                   = 196\n\tSYS_SHMDT                   = 197\n\tSYS_SOCKET                  = 198\n\tSYS_SOCKETPAIR              = 199\n\tSYS_BIND                    = 200\n\tSYS_LISTEN                  = 201\n\tSYS_ACCEPT                  = 202\n\tSYS_CONNECT                 = 203\n\tSYS_GETSOCKNAME             = 204\n\tSYS_GETPEERNAME             = 205\n\tSYS_SENDTO                  = 206\n\tSYS_RECVFROM                = 207\n\tSYS_SETSOCKOPT              = 208\n\tSYS_GETSOCKOPT              = 209\n\tSYS_SHUTDOWN                = 210\n\tSYS_SENDMSG                 = 211\n\tSYS_RECVMSG                 = 212\n\tSYS_READAHEAD               = 213\n\tSYS_BRK                     = 214\n\tSYS_MUNMAP                  = 215\n\tSYS_MREMAP                  = 216\n\tSYS_ADD_KEY                 = 217\n\tSYS_REQUEST_KEY             = 218\n\tSYS_KEYCTL                  = 219\n\tSYS_CLONE                   = 220\n\tSYS_EXECVE                  = 221\n\tSYS_MMAP                    = 222\n\tSYS_FADVISE64               = 223\n\tSYS_SWAPON                  = 224\n\tSYS_SWAPOFF                 = 225\n\tSYS_MPROTECT                = 226\n\tSYS_MSYNC                   = 227\n\tSYS_MLOCK                   = 228\n\tSYS_MUNLOCK                 = 229\n\tSYS_MLOCKALL                = 230\n\tSYS_MUNLOCKALL              = 231\n\tSYS_MINCORE                 = 232\n\tSYS_MADVISE                 = 233\n\tSYS_REMAP_FILE_PAGES        = 234\n\tSYS_MBIND                   = 235\n\tSYS_GET_MEMPOLICY           = 236\n\tSYS_SET_MEMPOLICY           = 237\n\tSYS_MIGRATE_PAGES           = 238\n\tSYS_MOVE_PAGES              = 239\n\tSYS_RT_TGSIGQUEUEINFO       = 240\n\tSYS_PERF_EVENT_OPEN         = 241\n\tSYS_ACCEPT4                 = 242\n\tSYS_RECVMMSG                = 243\n\tSYS_ARCH_SPECIFIC_SYSCALL   = 244\n\tSYS_WAIT4                   = 260\n\tSYS_PRLIMIT64               = 261\n\tSYS_FANOTIFY_INIT           = 262\n\tSYS_FANOTIFY_MARK           = 263\n\tSYS_NAME_TO_HANDLE_AT       = 264\n\tSYS_OPEN_BY_HANDLE_AT       = 265\n\tSYS_CLOCK_ADJTIME           = 266\n\tSYS_SYNCFS                  = 267\n\tSYS_SETNS                   = 268\n\tSYS_SENDMMSG                = 269\n\tSYS_PROCESS_VM_READV        = 270\n\tSYS_PROCESS_VM_WRITEV       = 271\n\tSYS_KCMP                    = 272\n\tSYS_FINIT_MODULE            = 273\n\tSYS_SCHED_SETATTR           = 274\n\tSYS_SCHED_GETATTR           = 275\n\tSYS_RENAMEAT2               = 276\n\tSYS_SECCOMP                 = 277\n\tSYS_GETRANDOM               = 278\n\tSYS_MEMFD_CREATE            = 279\n\tSYS_BPF                     = 280\n\tSYS_EXECVEAT                = 281\n\tSYS_USERFAULTFD             = 282\n\tSYS_MEMBARRIER              = 283\n\tSYS_MLOCK2                  = 284\n\tSYS_COPY_FILE_RANGE         = 285\n\tSYS_PREADV2                 = 286\n\tSYS_PWRITEV2                = 287\n\tSYS_PKEY_MPROTECT           = 288\n\tSYS_PKEY_ALLOC              = 289\n\tSYS_PKEY_FREE               = 290\n\tSYS_STATX                   = 291\n\tSYS_IO_PGETEVENTS           = 292\n\tSYS_RSEQ                    = 293\n\tSYS_KEXEC_FILE_LOAD         = 294\n\tSYS_PIDFD_SEND_SIGNAL       = 424\n\tSYS_IO_URING_SETUP          = 425\n\tSYS_IO_URING_ENTER          = 426\n\tSYS_IO_URING_REGISTER       = 427\n\tSYS_OPEN_TREE               = 428\n\tSYS_MOVE_MOUNT              = 429\n\tSYS_FSOPEN                  = 430\n\tSYS_FSCONFIG                = 431\n\tSYS_FSMOUNT                 = 432\n\tSYS_FSPICK                  = 433\n\tSYS_PIDFD_OPEN              = 434\n\tSYS_CLONE3                  = 435\n\tSYS_CLOSE_RANGE             = 436\n\tSYS_OPENAT2                 = 437\n\tSYS_PIDFD_GETFD             = 438\n\tSYS_FACCESSAT2              = 439\n\tSYS_PROCESS_MADVISE         = 440\n\tSYS_EPOLL_PWAIT2            = 441\n\tSYS_MOUNT_SETATTR           = 442\n\tSYS_QUOTACTL_FD             = 443\n\tSYS_LANDLOCK_CREATE_RULESET = 444\n\tSYS_LANDLOCK_ADD_RULE       = 445\n\tSYS_LANDLOCK_RESTRICT_SELF  = 446\n\tSYS_MEMFD_SECRET            = 447\n\tSYS_PROCESS_MRELEASE        = 448\n\tSYS_FUTEX_WAITV             = 449\n\tSYS_SET_MEMPOLICY_HOME_NODE = 450\n\tSYS_CACHESTAT               = 451\n\tSYS_FCHMODAT2               = 452\n\tSYS_MAP_SHADOW_STACK        = 453\n\tSYS_FUTEX_WAKE              = 454\n\tSYS_FUTEX_WAIT              = 455\n\tSYS_FUTEX_REQUEUE           = 456\n\tSYS_STATMOUNT               = 457\n\tSYS_LISTMOUNT               = 458\n\tSYS_LSM_GET_SELF_ATTR       = 459\n\tSYS_LSM_SET_SELF_ATTR       = 460\n\tSYS_LSM_LIST_MODULES        = 461\n\tSYS_MSEAL                   = 462\n\tSYS_SETXATTRAT              = 463\n\tSYS_GETXATTRAT              = 464\n\tSYS_LISTXATTRAT             = 465\n\tSYS_REMOVEXATTRAT           = 466\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/loong64/include /tmp/loong64/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build loong64 && linux\n\npackage unix\n\nconst (\n\tSYS_IO_SETUP                = 0\n\tSYS_IO_DESTROY              = 1\n\tSYS_IO_SUBMIT               = 2\n\tSYS_IO_CANCEL               = 3\n\tSYS_IO_GETEVENTS            = 4\n\tSYS_SETXATTR                = 5\n\tSYS_LSETXATTR               = 6\n\tSYS_FSETXATTR               = 7\n\tSYS_GETXATTR                = 8\n\tSYS_LGETXATTR               = 9\n\tSYS_FGETXATTR               = 10\n\tSYS_LISTXATTR               = 11\n\tSYS_LLISTXATTR              = 12\n\tSYS_FLISTXATTR              = 13\n\tSYS_REMOVEXATTR             = 14\n\tSYS_LREMOVEXATTR            = 15\n\tSYS_FREMOVEXATTR            = 16\n\tSYS_GETCWD                  = 17\n\tSYS_LOOKUP_DCOOKIE          = 18\n\tSYS_EVENTFD2                = 19\n\tSYS_EPOLL_CREATE1           = 20\n\tSYS_EPOLL_CTL               = 21\n\tSYS_EPOLL_PWAIT             = 22\n\tSYS_DUP                     = 23\n\tSYS_DUP3                    = 24\n\tSYS_FCNTL                   = 25\n\tSYS_INOTIFY_INIT1           = 26\n\tSYS_INOTIFY_ADD_WATCH       = 27\n\tSYS_INOTIFY_RM_WATCH        = 28\n\tSYS_IOCTL                   = 29\n\tSYS_IOPRIO_SET              = 30\n\tSYS_IOPRIO_GET              = 31\n\tSYS_FLOCK                   = 32\n\tSYS_MKNODAT                 = 33\n\tSYS_MKDIRAT                 = 34\n\tSYS_UNLINKAT                = 35\n\tSYS_SYMLINKAT               = 36\n\tSYS_LINKAT                  = 37\n\tSYS_UMOUNT2                 = 39\n\tSYS_MOUNT                   = 40\n\tSYS_PIVOT_ROOT              = 41\n\tSYS_NFSSERVCTL              = 42\n\tSYS_STATFS                  = 43\n\tSYS_FSTATFS                 = 44\n\tSYS_TRUNCATE                = 45\n\tSYS_FTRUNCATE               = 46\n\tSYS_FALLOCATE               = 47\n\tSYS_FACCESSAT               = 48\n\tSYS_CHDIR                   = 49\n\tSYS_FCHDIR                  = 50\n\tSYS_CHROOT                  = 51\n\tSYS_FCHMOD                  = 52\n\tSYS_FCHMODAT                = 53\n\tSYS_FCHOWNAT                = 54\n\tSYS_FCHOWN                  = 55\n\tSYS_OPENAT                  = 56\n\tSYS_CLOSE                   = 57\n\tSYS_VHANGUP                 = 58\n\tSYS_PIPE2                   = 59\n\tSYS_QUOTACTL                = 60\n\tSYS_GETDENTS64              = 61\n\tSYS_LSEEK                   = 62\n\tSYS_READ                    = 63\n\tSYS_WRITE                   = 64\n\tSYS_READV                   = 65\n\tSYS_WRITEV                  = 66\n\tSYS_PREAD64                 = 67\n\tSYS_PWRITE64                = 68\n\tSYS_PREADV                  = 69\n\tSYS_PWRITEV                 = 70\n\tSYS_SENDFILE                = 71\n\tSYS_PSELECT6                = 72\n\tSYS_PPOLL                   = 73\n\tSYS_SIGNALFD4               = 74\n\tSYS_VMSPLICE                = 75\n\tSYS_SPLICE                  = 76\n\tSYS_TEE                     = 77\n\tSYS_READLINKAT              = 78\n\tSYS_NEWFSTATAT              = 79\n\tSYS_FSTAT                   = 80\n\tSYS_SYNC                    = 81\n\tSYS_FSYNC                   = 82\n\tSYS_FDATASYNC               = 83\n\tSYS_SYNC_FILE_RANGE         = 84\n\tSYS_TIMERFD_CREATE          = 85\n\tSYS_TIMERFD_SETTIME         = 86\n\tSYS_TIMERFD_GETTIME         = 87\n\tSYS_UTIMENSAT               = 88\n\tSYS_ACCT                    = 89\n\tSYS_CAPGET                  = 90\n\tSYS_CAPSET                  = 91\n\tSYS_PERSONALITY             = 92\n\tSYS_EXIT                    = 93\n\tSYS_EXIT_GROUP              = 94\n\tSYS_WAITID                  = 95\n\tSYS_SET_TID_ADDRESS         = 96\n\tSYS_UNSHARE                 = 97\n\tSYS_FUTEX                   = 98\n\tSYS_SET_ROBUST_LIST         = 99\n\tSYS_GET_ROBUST_LIST         = 100\n\tSYS_NANOSLEEP               = 101\n\tSYS_GETITIMER               = 102\n\tSYS_SETITIMER               = 103\n\tSYS_KEXEC_LOAD              = 104\n\tSYS_INIT_MODULE             = 105\n\tSYS_DELETE_MODULE           = 106\n\tSYS_TIMER_CREATE            = 107\n\tSYS_TIMER_GETTIME           = 108\n\tSYS_TIMER_GETOVERRUN        = 109\n\tSYS_TIMER_SETTIME           = 110\n\tSYS_TIMER_DELETE            = 111\n\tSYS_CLOCK_SETTIME           = 112\n\tSYS_CLOCK_GETTIME           = 113\n\tSYS_CLOCK_GETRES            = 114\n\tSYS_CLOCK_NANOSLEEP         = 115\n\tSYS_SYSLOG                  = 116\n\tSYS_PTRACE                  = 117\n\tSYS_SCHED_SETPARAM          = 118\n\tSYS_SCHED_SETSCHEDULER      = 119\n\tSYS_SCHED_GETSCHEDULER      = 120\n\tSYS_SCHED_GETPARAM          = 121\n\tSYS_SCHED_SETAFFINITY       = 122\n\tSYS_SCHED_GETAFFINITY       = 123\n\tSYS_SCHED_YIELD             = 124\n\tSYS_SCHED_GET_PRIORITY_MAX  = 125\n\tSYS_SCHED_GET_PRIORITY_MIN  = 126\n\tSYS_SCHED_RR_GET_INTERVAL   = 127\n\tSYS_RESTART_SYSCALL         = 128\n\tSYS_KILL                    = 129\n\tSYS_TKILL                   = 130\n\tSYS_TGKILL                  = 131\n\tSYS_SIGALTSTACK             = 132\n\tSYS_RT_SIGSUSPEND           = 133\n\tSYS_RT_SIGACTION            = 134\n\tSYS_RT_SIGPROCMASK          = 135\n\tSYS_RT_SIGPENDING           = 136\n\tSYS_RT_SIGTIMEDWAIT         = 137\n\tSYS_RT_SIGQUEUEINFO         = 138\n\tSYS_RT_SIGRETURN            = 139\n\tSYS_SETPRIORITY             = 140\n\tSYS_GETPRIORITY             = 141\n\tSYS_REBOOT                  = 142\n\tSYS_SETREGID                = 143\n\tSYS_SETGID                  = 144\n\tSYS_SETREUID                = 145\n\tSYS_SETUID                  = 146\n\tSYS_SETRESUID               = 147\n\tSYS_GETRESUID               = 148\n\tSYS_SETRESGID               = 149\n\tSYS_GETRESGID               = 150\n\tSYS_SETFSUID                = 151\n\tSYS_SETFSGID                = 152\n\tSYS_TIMES                   = 153\n\tSYS_SETPGID                 = 154\n\tSYS_GETPGID                 = 155\n\tSYS_GETSID                  = 156\n\tSYS_SETSID                  = 157\n\tSYS_GETGROUPS               = 158\n\tSYS_SETGROUPS               = 159\n\tSYS_UNAME                   = 160\n\tSYS_SETHOSTNAME             = 161\n\tSYS_SETDOMAINNAME           = 162\n\tSYS_GETRUSAGE               = 165\n\tSYS_UMASK                   = 166\n\tSYS_PRCTL                   = 167\n\tSYS_GETCPU                  = 168\n\tSYS_GETTIMEOFDAY            = 169\n\tSYS_SETTIMEOFDAY            = 170\n\tSYS_ADJTIMEX                = 171\n\tSYS_GETPID                  = 172\n\tSYS_GETPPID                 = 173\n\tSYS_GETUID                  = 174\n\tSYS_GETEUID                 = 175\n\tSYS_GETGID                  = 176\n\tSYS_GETEGID                 = 177\n\tSYS_GETTID                  = 178\n\tSYS_SYSINFO                 = 179\n\tSYS_MQ_OPEN                 = 180\n\tSYS_MQ_UNLINK               = 181\n\tSYS_MQ_TIMEDSEND            = 182\n\tSYS_MQ_TIMEDRECEIVE         = 183\n\tSYS_MQ_NOTIFY               = 184\n\tSYS_MQ_GETSETATTR           = 185\n\tSYS_MSGGET                  = 186\n\tSYS_MSGCTL                  = 187\n\tSYS_MSGRCV                  = 188\n\tSYS_MSGSND                  = 189\n\tSYS_SEMGET                  = 190\n\tSYS_SEMCTL                  = 191\n\tSYS_SEMTIMEDOP              = 192\n\tSYS_SEMOP                   = 193\n\tSYS_SHMGET                  = 194\n\tSYS_SHMCTL                  = 195\n\tSYS_SHMAT                   = 196\n\tSYS_SHMDT                   = 197\n\tSYS_SOCKET                  = 198\n\tSYS_SOCKETPAIR              = 199\n\tSYS_BIND                    = 200\n\tSYS_LISTEN                  = 201\n\tSYS_ACCEPT                  = 202\n\tSYS_CONNECT                 = 203\n\tSYS_GETSOCKNAME             = 204\n\tSYS_GETPEERNAME             = 205\n\tSYS_SENDTO                  = 206\n\tSYS_RECVFROM                = 207\n\tSYS_SETSOCKOPT              = 208\n\tSYS_GETSOCKOPT              = 209\n\tSYS_SHUTDOWN                = 210\n\tSYS_SENDMSG                 = 211\n\tSYS_RECVMSG                 = 212\n\tSYS_READAHEAD               = 213\n\tSYS_BRK                     = 214\n\tSYS_MUNMAP                  = 215\n\tSYS_MREMAP                  = 216\n\tSYS_ADD_KEY                 = 217\n\tSYS_REQUEST_KEY             = 218\n\tSYS_KEYCTL                  = 219\n\tSYS_CLONE                   = 220\n\tSYS_EXECVE                  = 221\n\tSYS_MMAP                    = 222\n\tSYS_FADVISE64               = 223\n\tSYS_SWAPON                  = 224\n\tSYS_SWAPOFF                 = 225\n\tSYS_MPROTECT                = 226\n\tSYS_MSYNC                   = 227\n\tSYS_MLOCK                   = 228\n\tSYS_MUNLOCK                 = 229\n\tSYS_MLOCKALL                = 230\n\tSYS_MUNLOCKALL              = 231\n\tSYS_MINCORE                 = 232\n\tSYS_MADVISE                 = 233\n\tSYS_REMAP_FILE_PAGES        = 234\n\tSYS_MBIND                   = 235\n\tSYS_GET_MEMPOLICY           = 236\n\tSYS_SET_MEMPOLICY           = 237\n\tSYS_MIGRATE_PAGES           = 238\n\tSYS_MOVE_PAGES              = 239\n\tSYS_RT_TGSIGQUEUEINFO       = 240\n\tSYS_PERF_EVENT_OPEN         = 241\n\tSYS_ACCEPT4                 = 242\n\tSYS_RECVMMSG                = 243\n\tSYS_ARCH_SPECIFIC_SYSCALL   = 244\n\tSYS_WAIT4                   = 260\n\tSYS_PRLIMIT64               = 261\n\tSYS_FANOTIFY_INIT           = 262\n\tSYS_FANOTIFY_MARK           = 263\n\tSYS_NAME_TO_HANDLE_AT       = 264\n\tSYS_OPEN_BY_HANDLE_AT       = 265\n\tSYS_CLOCK_ADJTIME           = 266\n\tSYS_SYNCFS                  = 267\n\tSYS_SETNS                   = 268\n\tSYS_SENDMMSG                = 269\n\tSYS_PROCESS_VM_READV        = 270\n\tSYS_PROCESS_VM_WRITEV       = 271\n\tSYS_KCMP                    = 272\n\tSYS_FINIT_MODULE            = 273\n\tSYS_SCHED_SETATTR           = 274\n\tSYS_SCHED_GETATTR           = 275\n\tSYS_RENAMEAT2               = 276\n\tSYS_SECCOMP                 = 277\n\tSYS_GETRANDOM               = 278\n\tSYS_MEMFD_CREATE            = 279\n\tSYS_BPF                     = 280\n\tSYS_EXECVEAT                = 281\n\tSYS_USERFAULTFD             = 282\n\tSYS_MEMBARRIER              = 283\n\tSYS_MLOCK2                  = 284\n\tSYS_COPY_FILE_RANGE         = 285\n\tSYS_PREADV2                 = 286\n\tSYS_PWRITEV2                = 287\n\tSYS_PKEY_MPROTECT           = 288\n\tSYS_PKEY_ALLOC              = 289\n\tSYS_PKEY_FREE               = 290\n\tSYS_STATX                   = 291\n\tSYS_IO_PGETEVENTS           = 292\n\tSYS_RSEQ                    = 293\n\tSYS_KEXEC_FILE_LOAD         = 294\n\tSYS_PIDFD_SEND_SIGNAL       = 424\n\tSYS_IO_URING_SETUP          = 425\n\tSYS_IO_URING_ENTER          = 426\n\tSYS_IO_URING_REGISTER       = 427\n\tSYS_OPEN_TREE               = 428\n\tSYS_MOVE_MOUNT              = 429\n\tSYS_FSOPEN                  = 430\n\tSYS_FSCONFIG                = 431\n\tSYS_FSMOUNT                 = 432\n\tSYS_FSPICK                  = 433\n\tSYS_PIDFD_OPEN              = 434\n\tSYS_CLONE3                  = 435\n\tSYS_CLOSE_RANGE             = 436\n\tSYS_OPENAT2                 = 437\n\tSYS_PIDFD_GETFD             = 438\n\tSYS_FACCESSAT2              = 439\n\tSYS_PROCESS_MADVISE         = 440\n\tSYS_EPOLL_PWAIT2            = 441\n\tSYS_MOUNT_SETATTR           = 442\n\tSYS_QUOTACTL_FD             = 443\n\tSYS_LANDLOCK_CREATE_RULESET = 444\n\tSYS_LANDLOCK_ADD_RULE       = 445\n\tSYS_LANDLOCK_RESTRICT_SELF  = 446\n\tSYS_PROCESS_MRELEASE        = 448\n\tSYS_FUTEX_WAITV             = 449\n\tSYS_SET_MEMPOLICY_HOME_NODE = 450\n\tSYS_CACHESTAT               = 451\n\tSYS_FCHMODAT2               = 452\n\tSYS_MAP_SHADOW_STACK        = 453\n\tSYS_FUTEX_WAKE              = 454\n\tSYS_FUTEX_WAIT              = 455\n\tSYS_FUTEX_REQUEUE           = 456\n\tSYS_STATMOUNT               = 457\n\tSYS_LISTMOUNT               = 458\n\tSYS_LSM_GET_SELF_ATTR       = 459\n\tSYS_LSM_SET_SELF_ATTR       = 460\n\tSYS_LSM_LIST_MODULES        = 461\n\tSYS_MSEAL                   = 462\n\tSYS_SETXATTRAT              = 463\n\tSYS_GETXATTRAT              = 464\n\tSYS_LISTXATTRAT             = 465\n\tSYS_REMOVEXATTRAT           = 466\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/mips/include /tmp/mips/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mips && linux\n\npackage unix\n\nconst (\n\tSYS_SYSCALL                      = 4000\n\tSYS_EXIT                         = 4001\n\tSYS_FORK                         = 4002\n\tSYS_READ                         = 4003\n\tSYS_WRITE                        = 4004\n\tSYS_OPEN                         = 4005\n\tSYS_CLOSE                        = 4006\n\tSYS_WAITPID                      = 4007\n\tSYS_CREAT                        = 4008\n\tSYS_LINK                         = 4009\n\tSYS_UNLINK                       = 4010\n\tSYS_EXECVE                       = 4011\n\tSYS_CHDIR                        = 4012\n\tSYS_TIME                         = 4013\n\tSYS_MKNOD                        = 4014\n\tSYS_CHMOD                        = 4015\n\tSYS_LCHOWN                       = 4016\n\tSYS_BREAK                        = 4017\n\tSYS_UNUSED18                     = 4018\n\tSYS_LSEEK                        = 4019\n\tSYS_GETPID                       = 4020\n\tSYS_MOUNT                        = 4021\n\tSYS_UMOUNT                       = 4022\n\tSYS_SETUID                       = 4023\n\tSYS_GETUID                       = 4024\n\tSYS_STIME                        = 4025\n\tSYS_PTRACE                       = 4026\n\tSYS_ALARM                        = 4027\n\tSYS_UNUSED28                     = 4028\n\tSYS_PAUSE                        = 4029\n\tSYS_UTIME                        = 4030\n\tSYS_STTY                         = 4031\n\tSYS_GTTY                         = 4032\n\tSYS_ACCESS                       = 4033\n\tSYS_NICE                         = 4034\n\tSYS_FTIME                        = 4035\n\tSYS_SYNC                         = 4036\n\tSYS_KILL                         = 4037\n\tSYS_RENAME                       = 4038\n\tSYS_MKDIR                        = 4039\n\tSYS_RMDIR                        = 4040\n\tSYS_DUP                          = 4041\n\tSYS_PIPE                         = 4042\n\tSYS_TIMES                        = 4043\n\tSYS_PROF                         = 4044\n\tSYS_BRK                          = 4045\n\tSYS_SETGID                       = 4046\n\tSYS_GETGID                       = 4047\n\tSYS_SIGNAL                       = 4048\n\tSYS_GETEUID                      = 4049\n\tSYS_GETEGID                      = 4050\n\tSYS_ACCT                         = 4051\n\tSYS_UMOUNT2                      = 4052\n\tSYS_LOCK                         = 4053\n\tSYS_IOCTL                        = 4054\n\tSYS_FCNTL                        = 4055\n\tSYS_MPX                          = 4056\n\tSYS_SETPGID                      = 4057\n\tSYS_ULIMIT                       = 4058\n\tSYS_UNUSED59                     = 4059\n\tSYS_UMASK                        = 4060\n\tSYS_CHROOT                       = 4061\n\tSYS_USTAT                        = 4062\n\tSYS_DUP2                         = 4063\n\tSYS_GETPPID                      = 4064\n\tSYS_GETPGRP                      = 4065\n\tSYS_SETSID                       = 4066\n\tSYS_SIGACTION                    = 4067\n\tSYS_SGETMASK                     = 4068\n\tSYS_SSETMASK                     = 4069\n\tSYS_SETREUID                     = 4070\n\tSYS_SETREGID                     = 4071\n\tSYS_SIGSUSPEND                   = 4072\n\tSYS_SIGPENDING                   = 4073\n\tSYS_SETHOSTNAME                  = 4074\n\tSYS_SETRLIMIT                    = 4075\n\tSYS_GETRLIMIT                    = 4076\n\tSYS_GETRUSAGE                    = 4077\n\tSYS_GETTIMEOFDAY                 = 4078\n\tSYS_SETTIMEOFDAY                 = 4079\n\tSYS_GETGROUPS                    = 4080\n\tSYS_SETGROUPS                    = 4081\n\tSYS_RESERVED82                   = 4082\n\tSYS_SYMLINK                      = 4083\n\tSYS_UNUSED84                     = 4084\n\tSYS_READLINK                     = 4085\n\tSYS_USELIB                       = 4086\n\tSYS_SWAPON                       = 4087\n\tSYS_REBOOT                       = 4088\n\tSYS_READDIR                      = 4089\n\tSYS_MMAP                         = 4090\n\tSYS_MUNMAP                       = 4091\n\tSYS_TRUNCATE                     = 4092\n\tSYS_FTRUNCATE                    = 4093\n\tSYS_FCHMOD                       = 4094\n\tSYS_FCHOWN                       = 4095\n\tSYS_GETPRIORITY                  = 4096\n\tSYS_SETPRIORITY                  = 4097\n\tSYS_PROFIL                       = 4098\n\tSYS_STATFS                       = 4099\n\tSYS_FSTATFS                      = 4100\n\tSYS_IOPERM                       = 4101\n\tSYS_SOCKETCALL                   = 4102\n\tSYS_SYSLOG                       = 4103\n\tSYS_SETITIMER                    = 4104\n\tSYS_GETITIMER                    = 4105\n\tSYS_STAT                         = 4106\n\tSYS_LSTAT                        = 4107\n\tSYS_FSTAT                        = 4108\n\tSYS_UNUSED109                    = 4109\n\tSYS_IOPL                         = 4110\n\tSYS_VHANGUP                      = 4111\n\tSYS_IDLE                         = 4112\n\tSYS_VM86                         = 4113\n\tSYS_WAIT4                        = 4114\n\tSYS_SWAPOFF                      = 4115\n\tSYS_SYSINFO                      = 4116\n\tSYS_IPC                          = 4117\n\tSYS_FSYNC                        = 4118\n\tSYS_SIGRETURN                    = 4119\n\tSYS_CLONE                        = 4120\n\tSYS_SETDOMAINNAME                = 4121\n\tSYS_UNAME                        = 4122\n\tSYS_MODIFY_LDT                   = 4123\n\tSYS_ADJTIMEX                     = 4124\n\tSYS_MPROTECT                     = 4125\n\tSYS_SIGPROCMASK                  = 4126\n\tSYS_CREATE_MODULE                = 4127\n\tSYS_INIT_MODULE                  = 4128\n\tSYS_DELETE_MODULE                = 4129\n\tSYS_GET_KERNEL_SYMS              = 4130\n\tSYS_QUOTACTL                     = 4131\n\tSYS_GETPGID                      = 4132\n\tSYS_FCHDIR                       = 4133\n\tSYS_BDFLUSH                      = 4134\n\tSYS_SYSFS                        = 4135\n\tSYS_PERSONALITY                  = 4136\n\tSYS_AFS_SYSCALL                  = 4137\n\tSYS_SETFSUID                     = 4138\n\tSYS_SETFSGID                     = 4139\n\tSYS__LLSEEK                      = 4140\n\tSYS_GETDENTS                     = 4141\n\tSYS__NEWSELECT                   = 4142\n\tSYS_FLOCK                        = 4143\n\tSYS_MSYNC                        = 4144\n\tSYS_READV                        = 4145\n\tSYS_WRITEV                       = 4146\n\tSYS_CACHEFLUSH                   = 4147\n\tSYS_CACHECTL                     = 4148\n\tSYS_SYSMIPS                      = 4149\n\tSYS_UNUSED150                    = 4150\n\tSYS_GETSID                       = 4151\n\tSYS_FDATASYNC                    = 4152\n\tSYS__SYSCTL                      = 4153\n\tSYS_MLOCK                        = 4154\n\tSYS_MUNLOCK                      = 4155\n\tSYS_MLOCKALL                     = 4156\n\tSYS_MUNLOCKALL                   = 4157\n\tSYS_SCHED_SETPARAM               = 4158\n\tSYS_SCHED_GETPARAM               = 4159\n\tSYS_SCHED_SETSCHEDULER           = 4160\n\tSYS_SCHED_GETSCHEDULER           = 4161\n\tSYS_SCHED_YIELD                  = 4162\n\tSYS_SCHED_GET_PRIORITY_MAX       = 4163\n\tSYS_SCHED_GET_PRIORITY_MIN       = 4164\n\tSYS_SCHED_RR_GET_INTERVAL        = 4165\n\tSYS_NANOSLEEP                    = 4166\n\tSYS_MREMAP                       = 4167\n\tSYS_ACCEPT                       = 4168\n\tSYS_BIND                         = 4169\n\tSYS_CONNECT                      = 4170\n\tSYS_GETPEERNAME                  = 4171\n\tSYS_GETSOCKNAME                  = 4172\n\tSYS_GETSOCKOPT                   = 4173\n\tSYS_LISTEN                       = 4174\n\tSYS_RECV                         = 4175\n\tSYS_RECVFROM                     = 4176\n\tSYS_RECVMSG                      = 4177\n\tSYS_SEND                         = 4178\n\tSYS_SENDMSG                      = 4179\n\tSYS_SENDTO                       = 4180\n\tSYS_SETSOCKOPT                   = 4181\n\tSYS_SHUTDOWN                     = 4182\n\tSYS_SOCKET                       = 4183\n\tSYS_SOCKETPAIR                   = 4184\n\tSYS_SETRESUID                    = 4185\n\tSYS_GETRESUID                    = 4186\n\tSYS_QUERY_MODULE                 = 4187\n\tSYS_POLL                         = 4188\n\tSYS_NFSSERVCTL                   = 4189\n\tSYS_SETRESGID                    = 4190\n\tSYS_GETRESGID                    = 4191\n\tSYS_PRCTL                        = 4192\n\tSYS_RT_SIGRETURN                 = 4193\n\tSYS_RT_SIGACTION                 = 4194\n\tSYS_RT_SIGPROCMASK               = 4195\n\tSYS_RT_SIGPENDING                = 4196\n\tSYS_RT_SIGTIMEDWAIT              = 4197\n\tSYS_RT_SIGQUEUEINFO              = 4198\n\tSYS_RT_SIGSUSPEND                = 4199\n\tSYS_PREAD64                      = 4200\n\tSYS_PWRITE64                     = 4201\n\tSYS_CHOWN                        = 4202\n\tSYS_GETCWD                       = 4203\n\tSYS_CAPGET                       = 4204\n\tSYS_CAPSET                       = 4205\n\tSYS_SIGALTSTACK                  = 4206\n\tSYS_SENDFILE                     = 4207\n\tSYS_GETPMSG                      = 4208\n\tSYS_PUTPMSG                      = 4209\n\tSYS_MMAP2                        = 4210\n\tSYS_TRUNCATE64                   = 4211\n\tSYS_FTRUNCATE64                  = 4212\n\tSYS_STAT64                       = 4213\n\tSYS_LSTAT64                      = 4214\n\tSYS_FSTAT64                      = 4215\n\tSYS_PIVOT_ROOT                   = 4216\n\tSYS_MINCORE                      = 4217\n\tSYS_MADVISE                      = 4218\n\tSYS_GETDENTS64                   = 4219\n\tSYS_FCNTL64                      = 4220\n\tSYS_RESERVED221                  = 4221\n\tSYS_GETTID                       = 4222\n\tSYS_READAHEAD                    = 4223\n\tSYS_SETXATTR                     = 4224\n\tSYS_LSETXATTR                    = 4225\n\tSYS_FSETXATTR                    = 4226\n\tSYS_GETXATTR                     = 4227\n\tSYS_LGETXATTR                    = 4228\n\tSYS_FGETXATTR                    = 4229\n\tSYS_LISTXATTR                    = 4230\n\tSYS_LLISTXATTR                   = 4231\n\tSYS_FLISTXATTR                   = 4232\n\tSYS_REMOVEXATTR                  = 4233\n\tSYS_LREMOVEXATTR                 = 4234\n\tSYS_FREMOVEXATTR                 = 4235\n\tSYS_TKILL                        = 4236\n\tSYS_SENDFILE64                   = 4237\n\tSYS_FUTEX                        = 4238\n\tSYS_SCHED_SETAFFINITY            = 4239\n\tSYS_SCHED_GETAFFINITY            = 4240\n\tSYS_IO_SETUP                     = 4241\n\tSYS_IO_DESTROY                   = 4242\n\tSYS_IO_GETEVENTS                 = 4243\n\tSYS_IO_SUBMIT                    = 4244\n\tSYS_IO_CANCEL                    = 4245\n\tSYS_EXIT_GROUP                   = 4246\n\tSYS_LOOKUP_DCOOKIE               = 4247\n\tSYS_EPOLL_CREATE                 = 4248\n\tSYS_EPOLL_CTL                    = 4249\n\tSYS_EPOLL_WAIT                   = 4250\n\tSYS_REMAP_FILE_PAGES             = 4251\n\tSYS_SET_TID_ADDRESS              = 4252\n\tSYS_RESTART_SYSCALL              = 4253\n\tSYS_FADVISE64                    = 4254\n\tSYS_STATFS64                     = 4255\n\tSYS_FSTATFS64                    = 4256\n\tSYS_TIMER_CREATE                 = 4257\n\tSYS_TIMER_SETTIME                = 4258\n\tSYS_TIMER_GETTIME                = 4259\n\tSYS_TIMER_GETOVERRUN             = 4260\n\tSYS_TIMER_DELETE                 = 4261\n\tSYS_CLOCK_SETTIME                = 4262\n\tSYS_CLOCK_GETTIME                = 4263\n\tSYS_CLOCK_GETRES                 = 4264\n\tSYS_CLOCK_NANOSLEEP              = 4265\n\tSYS_TGKILL                       = 4266\n\tSYS_UTIMES                       = 4267\n\tSYS_MBIND                        = 4268\n\tSYS_GET_MEMPOLICY                = 4269\n\tSYS_SET_MEMPOLICY                = 4270\n\tSYS_MQ_OPEN                      = 4271\n\tSYS_MQ_UNLINK                    = 4272\n\tSYS_MQ_TIMEDSEND                 = 4273\n\tSYS_MQ_TIMEDRECEIVE              = 4274\n\tSYS_MQ_NOTIFY                    = 4275\n\tSYS_MQ_GETSETATTR                = 4276\n\tSYS_VSERVER                      = 4277\n\tSYS_WAITID                       = 4278\n\tSYS_ADD_KEY                      = 4280\n\tSYS_REQUEST_KEY                  = 4281\n\tSYS_KEYCTL                       = 4282\n\tSYS_SET_THREAD_AREA              = 4283\n\tSYS_INOTIFY_INIT                 = 4284\n\tSYS_INOTIFY_ADD_WATCH            = 4285\n\tSYS_INOTIFY_RM_WATCH             = 4286\n\tSYS_MIGRATE_PAGES                = 4287\n\tSYS_OPENAT                       = 4288\n\tSYS_MKDIRAT                      = 4289\n\tSYS_MKNODAT                      = 4290\n\tSYS_FCHOWNAT                     = 4291\n\tSYS_FUTIMESAT                    = 4292\n\tSYS_FSTATAT64                    = 4293\n\tSYS_UNLINKAT                     = 4294\n\tSYS_RENAMEAT                     = 4295\n\tSYS_LINKAT                       = 4296\n\tSYS_SYMLINKAT                    = 4297\n\tSYS_READLINKAT                   = 4298\n\tSYS_FCHMODAT                     = 4299\n\tSYS_FACCESSAT                    = 4300\n\tSYS_PSELECT6                     = 4301\n\tSYS_PPOLL                        = 4302\n\tSYS_UNSHARE                      = 4303\n\tSYS_SPLICE                       = 4304\n\tSYS_SYNC_FILE_RANGE              = 4305\n\tSYS_TEE                          = 4306\n\tSYS_VMSPLICE                     = 4307\n\tSYS_MOVE_PAGES                   = 4308\n\tSYS_SET_ROBUST_LIST              = 4309\n\tSYS_GET_ROBUST_LIST              = 4310\n\tSYS_KEXEC_LOAD                   = 4311\n\tSYS_GETCPU                       = 4312\n\tSYS_EPOLL_PWAIT                  = 4313\n\tSYS_IOPRIO_SET                   = 4314\n\tSYS_IOPRIO_GET                   = 4315\n\tSYS_UTIMENSAT                    = 4316\n\tSYS_SIGNALFD                     = 4317\n\tSYS_TIMERFD                      = 4318\n\tSYS_EVENTFD                      = 4319\n\tSYS_FALLOCATE                    = 4320\n\tSYS_TIMERFD_CREATE               = 4321\n\tSYS_TIMERFD_GETTIME              = 4322\n\tSYS_TIMERFD_SETTIME              = 4323\n\tSYS_SIGNALFD4                    = 4324\n\tSYS_EVENTFD2                     = 4325\n\tSYS_EPOLL_CREATE1                = 4326\n\tSYS_DUP3                         = 4327\n\tSYS_PIPE2                        = 4328\n\tSYS_INOTIFY_INIT1                = 4329\n\tSYS_PREADV                       = 4330\n\tSYS_PWRITEV                      = 4331\n\tSYS_RT_TGSIGQUEUEINFO            = 4332\n\tSYS_PERF_EVENT_OPEN              = 4333\n\tSYS_ACCEPT4                      = 4334\n\tSYS_RECVMMSG                     = 4335\n\tSYS_FANOTIFY_INIT                = 4336\n\tSYS_FANOTIFY_MARK                = 4337\n\tSYS_PRLIMIT64                    = 4338\n\tSYS_NAME_TO_HANDLE_AT            = 4339\n\tSYS_OPEN_BY_HANDLE_AT            = 4340\n\tSYS_CLOCK_ADJTIME                = 4341\n\tSYS_SYNCFS                       = 4342\n\tSYS_SENDMMSG                     = 4343\n\tSYS_SETNS                        = 4344\n\tSYS_PROCESS_VM_READV             = 4345\n\tSYS_PROCESS_VM_WRITEV            = 4346\n\tSYS_KCMP                         = 4347\n\tSYS_FINIT_MODULE                 = 4348\n\tSYS_SCHED_SETATTR                = 4349\n\tSYS_SCHED_GETATTR                = 4350\n\tSYS_RENAMEAT2                    = 4351\n\tSYS_SECCOMP                      = 4352\n\tSYS_GETRANDOM                    = 4353\n\tSYS_MEMFD_CREATE                 = 4354\n\tSYS_BPF                          = 4355\n\tSYS_EXECVEAT                     = 4356\n\tSYS_USERFAULTFD                  = 4357\n\tSYS_MEMBARRIER                   = 4358\n\tSYS_MLOCK2                       = 4359\n\tSYS_COPY_FILE_RANGE              = 4360\n\tSYS_PREADV2                      = 4361\n\tSYS_PWRITEV2                     = 4362\n\tSYS_PKEY_MPROTECT                = 4363\n\tSYS_PKEY_ALLOC                   = 4364\n\tSYS_PKEY_FREE                    = 4365\n\tSYS_STATX                        = 4366\n\tSYS_RSEQ                         = 4367\n\tSYS_IO_PGETEVENTS                = 4368\n\tSYS_SEMGET                       = 4393\n\tSYS_SEMCTL                       = 4394\n\tSYS_SHMGET                       = 4395\n\tSYS_SHMCTL                       = 4396\n\tSYS_SHMAT                        = 4397\n\tSYS_SHMDT                        = 4398\n\tSYS_MSGGET                       = 4399\n\tSYS_MSGSND                       = 4400\n\tSYS_MSGRCV                       = 4401\n\tSYS_MSGCTL                       = 4402\n\tSYS_CLOCK_GETTIME64              = 4403\n\tSYS_CLOCK_SETTIME64              = 4404\n\tSYS_CLOCK_ADJTIME64              = 4405\n\tSYS_CLOCK_GETRES_TIME64          = 4406\n\tSYS_CLOCK_NANOSLEEP_TIME64       = 4407\n\tSYS_TIMER_GETTIME64              = 4408\n\tSYS_TIMER_SETTIME64              = 4409\n\tSYS_TIMERFD_GETTIME64            = 4410\n\tSYS_TIMERFD_SETTIME64            = 4411\n\tSYS_UTIMENSAT_TIME64             = 4412\n\tSYS_PSELECT6_TIME64              = 4413\n\tSYS_PPOLL_TIME64                 = 4414\n\tSYS_IO_PGETEVENTS_TIME64         = 4416\n\tSYS_RECVMMSG_TIME64              = 4417\n\tSYS_MQ_TIMEDSEND_TIME64          = 4418\n\tSYS_MQ_TIMEDRECEIVE_TIME64       = 4419\n\tSYS_SEMTIMEDOP_TIME64            = 4420\n\tSYS_RT_SIGTIMEDWAIT_TIME64       = 4421\n\tSYS_FUTEX_TIME64                 = 4422\n\tSYS_SCHED_RR_GET_INTERVAL_TIME64 = 4423\n\tSYS_PIDFD_SEND_SIGNAL            = 4424\n\tSYS_IO_URING_SETUP               = 4425\n\tSYS_IO_URING_ENTER               = 4426\n\tSYS_IO_URING_REGISTER            = 4427\n\tSYS_OPEN_TREE                    = 4428\n\tSYS_MOVE_MOUNT                   = 4429\n\tSYS_FSOPEN                       = 4430\n\tSYS_FSCONFIG                     = 4431\n\tSYS_FSMOUNT                      = 4432\n\tSYS_FSPICK                       = 4433\n\tSYS_PIDFD_OPEN                   = 4434\n\tSYS_CLONE3                       = 4435\n\tSYS_CLOSE_RANGE                  = 4436\n\tSYS_OPENAT2                      = 4437\n\tSYS_PIDFD_GETFD                  = 4438\n\tSYS_FACCESSAT2                   = 4439\n\tSYS_PROCESS_MADVISE              = 4440\n\tSYS_EPOLL_PWAIT2                 = 4441\n\tSYS_MOUNT_SETATTR                = 4442\n\tSYS_QUOTACTL_FD                  = 4443\n\tSYS_LANDLOCK_CREATE_RULESET      = 4444\n\tSYS_LANDLOCK_ADD_RULE            = 4445\n\tSYS_LANDLOCK_RESTRICT_SELF       = 4446\n\tSYS_PROCESS_MRELEASE             = 4448\n\tSYS_FUTEX_WAITV                  = 4449\n\tSYS_SET_MEMPOLICY_HOME_NODE      = 4450\n\tSYS_CACHESTAT                    = 4451\n\tSYS_FCHMODAT2                    = 4452\n\tSYS_MAP_SHADOW_STACK             = 4453\n\tSYS_FUTEX_WAKE                   = 4454\n\tSYS_FUTEX_WAIT                   = 4455\n\tSYS_FUTEX_REQUEUE                = 4456\n\tSYS_STATMOUNT                    = 4457\n\tSYS_LISTMOUNT                    = 4458\n\tSYS_LSM_GET_SELF_ATTR            = 4459\n\tSYS_LSM_SET_SELF_ATTR            = 4460\n\tSYS_LSM_LIST_MODULES             = 4461\n\tSYS_MSEAL                        = 4462\n\tSYS_SETXATTRAT                   = 4463\n\tSYS_GETXATTRAT                   = 4464\n\tSYS_LISTXATTRAT                  = 4465\n\tSYS_REMOVEXATTRAT                = 4466\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/mips64/include /tmp/mips64/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mips64 && linux\n\npackage unix\n\nconst (\n\tSYS_READ                    = 5000\n\tSYS_WRITE                   = 5001\n\tSYS_OPEN                    = 5002\n\tSYS_CLOSE                   = 5003\n\tSYS_STAT                    = 5004\n\tSYS_FSTAT                   = 5005\n\tSYS_LSTAT                   = 5006\n\tSYS_POLL                    = 5007\n\tSYS_LSEEK                   = 5008\n\tSYS_MMAP                    = 5009\n\tSYS_MPROTECT                = 5010\n\tSYS_MUNMAP                  = 5011\n\tSYS_BRK                     = 5012\n\tSYS_RT_SIGACTION            = 5013\n\tSYS_RT_SIGPROCMASK          = 5014\n\tSYS_IOCTL                   = 5015\n\tSYS_PREAD64                 = 5016\n\tSYS_PWRITE64                = 5017\n\tSYS_READV                   = 5018\n\tSYS_WRITEV                  = 5019\n\tSYS_ACCESS                  = 5020\n\tSYS_PIPE                    = 5021\n\tSYS__NEWSELECT              = 5022\n\tSYS_SCHED_YIELD             = 5023\n\tSYS_MREMAP                  = 5024\n\tSYS_MSYNC                   = 5025\n\tSYS_MINCORE                 = 5026\n\tSYS_MADVISE                 = 5027\n\tSYS_SHMGET                  = 5028\n\tSYS_SHMAT                   = 5029\n\tSYS_SHMCTL                  = 5030\n\tSYS_DUP                     = 5031\n\tSYS_DUP2                    = 5032\n\tSYS_PAUSE                   = 5033\n\tSYS_NANOSLEEP               = 5034\n\tSYS_GETITIMER               = 5035\n\tSYS_SETITIMER               = 5036\n\tSYS_ALARM                   = 5037\n\tSYS_GETPID                  = 5038\n\tSYS_SENDFILE                = 5039\n\tSYS_SOCKET                  = 5040\n\tSYS_CONNECT                 = 5041\n\tSYS_ACCEPT                  = 5042\n\tSYS_SENDTO                  = 5043\n\tSYS_RECVFROM                = 5044\n\tSYS_SENDMSG                 = 5045\n\tSYS_RECVMSG                 = 5046\n\tSYS_SHUTDOWN                = 5047\n\tSYS_BIND                    = 5048\n\tSYS_LISTEN                  = 5049\n\tSYS_GETSOCKNAME             = 5050\n\tSYS_GETPEERNAME             = 5051\n\tSYS_SOCKETPAIR              = 5052\n\tSYS_SETSOCKOPT              = 5053\n\tSYS_GETSOCKOPT              = 5054\n\tSYS_CLONE                   = 5055\n\tSYS_FORK                    = 5056\n\tSYS_EXECVE                  = 5057\n\tSYS_EXIT                    = 5058\n\tSYS_WAIT4                   = 5059\n\tSYS_KILL                    = 5060\n\tSYS_UNAME                   = 5061\n\tSYS_SEMGET                  = 5062\n\tSYS_SEMOP                   = 5063\n\tSYS_SEMCTL                  = 5064\n\tSYS_SHMDT                   = 5065\n\tSYS_MSGGET                  = 5066\n\tSYS_MSGSND                  = 5067\n\tSYS_MSGRCV                  = 5068\n\tSYS_MSGCTL                  = 5069\n\tSYS_FCNTL                   = 5070\n\tSYS_FLOCK                   = 5071\n\tSYS_FSYNC                   = 5072\n\tSYS_FDATASYNC               = 5073\n\tSYS_TRUNCATE                = 5074\n\tSYS_FTRUNCATE               = 5075\n\tSYS_GETDENTS                = 5076\n\tSYS_GETCWD                  = 5077\n\tSYS_CHDIR                   = 5078\n\tSYS_FCHDIR                  = 5079\n\tSYS_RENAME                  = 5080\n\tSYS_MKDIR                   = 5081\n\tSYS_RMDIR                   = 5082\n\tSYS_CREAT                   = 5083\n\tSYS_LINK                    = 5084\n\tSYS_UNLINK                  = 5085\n\tSYS_SYMLINK                 = 5086\n\tSYS_READLINK                = 5087\n\tSYS_CHMOD                   = 5088\n\tSYS_FCHMOD                  = 5089\n\tSYS_CHOWN                   = 5090\n\tSYS_FCHOWN                  = 5091\n\tSYS_LCHOWN                  = 5092\n\tSYS_UMASK                   = 5093\n\tSYS_GETTIMEOFDAY            = 5094\n\tSYS_GETRLIMIT               = 5095\n\tSYS_GETRUSAGE               = 5096\n\tSYS_SYSINFO                 = 5097\n\tSYS_TIMES                   = 5098\n\tSYS_PTRACE                  = 5099\n\tSYS_GETUID                  = 5100\n\tSYS_SYSLOG                  = 5101\n\tSYS_GETGID                  = 5102\n\tSYS_SETUID                  = 5103\n\tSYS_SETGID                  = 5104\n\tSYS_GETEUID                 = 5105\n\tSYS_GETEGID                 = 5106\n\tSYS_SETPGID                 = 5107\n\tSYS_GETPPID                 = 5108\n\tSYS_GETPGRP                 = 5109\n\tSYS_SETSID                  = 5110\n\tSYS_SETREUID                = 5111\n\tSYS_SETREGID                = 5112\n\tSYS_GETGROUPS               = 5113\n\tSYS_SETGROUPS               = 5114\n\tSYS_SETRESUID               = 5115\n\tSYS_GETRESUID               = 5116\n\tSYS_SETRESGID               = 5117\n\tSYS_GETRESGID               = 5118\n\tSYS_GETPGID                 = 5119\n\tSYS_SETFSUID                = 5120\n\tSYS_SETFSGID                = 5121\n\tSYS_GETSID                  = 5122\n\tSYS_CAPGET                  = 5123\n\tSYS_CAPSET                  = 5124\n\tSYS_RT_SIGPENDING           = 5125\n\tSYS_RT_SIGTIMEDWAIT         = 5126\n\tSYS_RT_SIGQUEUEINFO         = 5127\n\tSYS_RT_SIGSUSPEND           = 5128\n\tSYS_SIGALTSTACK             = 5129\n\tSYS_UTIME                   = 5130\n\tSYS_MKNOD                   = 5131\n\tSYS_PERSONALITY             = 5132\n\tSYS_USTAT                   = 5133\n\tSYS_STATFS                  = 5134\n\tSYS_FSTATFS                 = 5135\n\tSYS_SYSFS                   = 5136\n\tSYS_GETPRIORITY             = 5137\n\tSYS_SETPRIORITY             = 5138\n\tSYS_SCHED_SETPARAM          = 5139\n\tSYS_SCHED_GETPARAM          = 5140\n\tSYS_SCHED_SETSCHEDULER      = 5141\n\tSYS_SCHED_GETSCHEDULER      = 5142\n\tSYS_SCHED_GET_PRIORITY_MAX  = 5143\n\tSYS_SCHED_GET_PRIORITY_MIN  = 5144\n\tSYS_SCHED_RR_GET_INTERVAL   = 5145\n\tSYS_MLOCK                   = 5146\n\tSYS_MUNLOCK                 = 5147\n\tSYS_MLOCKALL                = 5148\n\tSYS_MUNLOCKALL              = 5149\n\tSYS_VHANGUP                 = 5150\n\tSYS_PIVOT_ROOT              = 5151\n\tSYS__SYSCTL                 = 5152\n\tSYS_PRCTL                   = 5153\n\tSYS_ADJTIMEX                = 5154\n\tSYS_SETRLIMIT               = 5155\n\tSYS_CHROOT                  = 5156\n\tSYS_SYNC                    = 5157\n\tSYS_ACCT                    = 5158\n\tSYS_SETTIMEOFDAY            = 5159\n\tSYS_MOUNT                   = 5160\n\tSYS_UMOUNT2                 = 5161\n\tSYS_SWAPON                  = 5162\n\tSYS_SWAPOFF                 = 5163\n\tSYS_REBOOT                  = 5164\n\tSYS_SETHOSTNAME             = 5165\n\tSYS_SETDOMAINNAME           = 5166\n\tSYS_CREATE_MODULE           = 5167\n\tSYS_INIT_MODULE             = 5168\n\tSYS_DELETE_MODULE           = 5169\n\tSYS_GET_KERNEL_SYMS         = 5170\n\tSYS_QUERY_MODULE            = 5171\n\tSYS_QUOTACTL                = 5172\n\tSYS_NFSSERVCTL              = 5173\n\tSYS_GETPMSG                 = 5174\n\tSYS_PUTPMSG                 = 5175\n\tSYS_AFS_SYSCALL             = 5176\n\tSYS_RESERVED177             = 5177\n\tSYS_GETTID                  = 5178\n\tSYS_READAHEAD               = 5179\n\tSYS_SETXATTR                = 5180\n\tSYS_LSETXATTR               = 5181\n\tSYS_FSETXATTR               = 5182\n\tSYS_GETXATTR                = 5183\n\tSYS_LGETXATTR               = 5184\n\tSYS_FGETXATTR               = 5185\n\tSYS_LISTXATTR               = 5186\n\tSYS_LLISTXATTR              = 5187\n\tSYS_FLISTXATTR              = 5188\n\tSYS_REMOVEXATTR             = 5189\n\tSYS_LREMOVEXATTR            = 5190\n\tSYS_FREMOVEXATTR            = 5191\n\tSYS_TKILL                   = 5192\n\tSYS_RESERVED193             = 5193\n\tSYS_FUTEX                   = 5194\n\tSYS_SCHED_SETAFFINITY       = 5195\n\tSYS_SCHED_GETAFFINITY       = 5196\n\tSYS_CACHEFLUSH              = 5197\n\tSYS_CACHECTL                = 5198\n\tSYS_SYSMIPS                 = 5199\n\tSYS_IO_SETUP                = 5200\n\tSYS_IO_DESTROY              = 5201\n\tSYS_IO_GETEVENTS            = 5202\n\tSYS_IO_SUBMIT               = 5203\n\tSYS_IO_CANCEL               = 5204\n\tSYS_EXIT_GROUP              = 5205\n\tSYS_LOOKUP_DCOOKIE          = 5206\n\tSYS_EPOLL_CREATE            = 5207\n\tSYS_EPOLL_CTL               = 5208\n\tSYS_EPOLL_WAIT              = 5209\n\tSYS_REMAP_FILE_PAGES        = 5210\n\tSYS_RT_SIGRETURN            = 5211\n\tSYS_SET_TID_ADDRESS         = 5212\n\tSYS_RESTART_SYSCALL         = 5213\n\tSYS_SEMTIMEDOP              = 5214\n\tSYS_FADVISE64               = 5215\n\tSYS_TIMER_CREATE            = 5216\n\tSYS_TIMER_SETTIME           = 5217\n\tSYS_TIMER_GETTIME           = 5218\n\tSYS_TIMER_GETOVERRUN        = 5219\n\tSYS_TIMER_DELETE            = 5220\n\tSYS_CLOCK_SETTIME           = 5221\n\tSYS_CLOCK_GETTIME           = 5222\n\tSYS_CLOCK_GETRES            = 5223\n\tSYS_CLOCK_NANOSLEEP         = 5224\n\tSYS_TGKILL                  = 5225\n\tSYS_UTIMES                  = 5226\n\tSYS_MBIND                   = 5227\n\tSYS_GET_MEMPOLICY           = 5228\n\tSYS_SET_MEMPOLICY           = 5229\n\tSYS_MQ_OPEN                 = 5230\n\tSYS_MQ_UNLINK               = 5231\n\tSYS_MQ_TIMEDSEND            = 5232\n\tSYS_MQ_TIMEDRECEIVE         = 5233\n\tSYS_MQ_NOTIFY               = 5234\n\tSYS_MQ_GETSETATTR           = 5235\n\tSYS_VSERVER                 = 5236\n\tSYS_WAITID                  = 5237\n\tSYS_ADD_KEY                 = 5239\n\tSYS_REQUEST_KEY             = 5240\n\tSYS_KEYCTL                  = 5241\n\tSYS_SET_THREAD_AREA         = 5242\n\tSYS_INOTIFY_INIT            = 5243\n\tSYS_INOTIFY_ADD_WATCH       = 5244\n\tSYS_INOTIFY_RM_WATCH        = 5245\n\tSYS_MIGRATE_PAGES           = 5246\n\tSYS_OPENAT                  = 5247\n\tSYS_MKDIRAT                 = 5248\n\tSYS_MKNODAT                 = 5249\n\tSYS_FCHOWNAT                = 5250\n\tSYS_FUTIMESAT               = 5251\n\tSYS_NEWFSTATAT              = 5252\n\tSYS_UNLINKAT                = 5253\n\tSYS_RENAMEAT                = 5254\n\tSYS_LINKAT                  = 5255\n\tSYS_SYMLINKAT               = 5256\n\tSYS_READLINKAT              = 5257\n\tSYS_FCHMODAT                = 5258\n\tSYS_FACCESSAT               = 5259\n\tSYS_PSELECT6                = 5260\n\tSYS_PPOLL                   = 5261\n\tSYS_UNSHARE                 = 5262\n\tSYS_SPLICE                  = 5263\n\tSYS_SYNC_FILE_RANGE         = 5264\n\tSYS_TEE                     = 5265\n\tSYS_VMSPLICE                = 5266\n\tSYS_MOVE_PAGES              = 5267\n\tSYS_SET_ROBUST_LIST         = 5268\n\tSYS_GET_ROBUST_LIST         = 5269\n\tSYS_KEXEC_LOAD              = 5270\n\tSYS_GETCPU                  = 5271\n\tSYS_EPOLL_PWAIT             = 5272\n\tSYS_IOPRIO_SET              = 5273\n\tSYS_IOPRIO_GET              = 5274\n\tSYS_UTIMENSAT               = 5275\n\tSYS_SIGNALFD                = 5276\n\tSYS_TIMERFD                 = 5277\n\tSYS_EVENTFD                 = 5278\n\tSYS_FALLOCATE               = 5279\n\tSYS_TIMERFD_CREATE          = 5280\n\tSYS_TIMERFD_GETTIME         = 5281\n\tSYS_TIMERFD_SETTIME         = 5282\n\tSYS_SIGNALFD4               = 5283\n\tSYS_EVENTFD2                = 5284\n\tSYS_EPOLL_CREATE1           = 5285\n\tSYS_DUP3                    = 5286\n\tSYS_PIPE2                   = 5287\n\tSYS_INOTIFY_INIT1           = 5288\n\tSYS_PREADV                  = 5289\n\tSYS_PWRITEV                 = 5290\n\tSYS_RT_TGSIGQUEUEINFO       = 5291\n\tSYS_PERF_EVENT_OPEN         = 5292\n\tSYS_ACCEPT4                 = 5293\n\tSYS_RECVMMSG                = 5294\n\tSYS_FANOTIFY_INIT           = 5295\n\tSYS_FANOTIFY_MARK           = 5296\n\tSYS_PRLIMIT64               = 5297\n\tSYS_NAME_TO_HANDLE_AT       = 5298\n\tSYS_OPEN_BY_HANDLE_AT       = 5299\n\tSYS_CLOCK_ADJTIME           = 5300\n\tSYS_SYNCFS                  = 5301\n\tSYS_SENDMMSG                = 5302\n\tSYS_SETNS                   = 5303\n\tSYS_PROCESS_VM_READV        = 5304\n\tSYS_PROCESS_VM_WRITEV       = 5305\n\tSYS_KCMP                    = 5306\n\tSYS_FINIT_MODULE            = 5307\n\tSYS_GETDENTS64              = 5308\n\tSYS_SCHED_SETATTR           = 5309\n\tSYS_SCHED_GETATTR           = 5310\n\tSYS_RENAMEAT2               = 5311\n\tSYS_SECCOMP                 = 5312\n\tSYS_GETRANDOM               = 5313\n\tSYS_MEMFD_CREATE            = 5314\n\tSYS_BPF                     = 5315\n\tSYS_EXECVEAT                = 5316\n\tSYS_USERFAULTFD             = 5317\n\tSYS_MEMBARRIER              = 5318\n\tSYS_MLOCK2                  = 5319\n\tSYS_COPY_FILE_RANGE         = 5320\n\tSYS_PREADV2                 = 5321\n\tSYS_PWRITEV2                = 5322\n\tSYS_PKEY_MPROTECT           = 5323\n\tSYS_PKEY_ALLOC              = 5324\n\tSYS_PKEY_FREE               = 5325\n\tSYS_STATX                   = 5326\n\tSYS_RSEQ                    = 5327\n\tSYS_IO_PGETEVENTS           = 5328\n\tSYS_PIDFD_SEND_SIGNAL       = 5424\n\tSYS_IO_URING_SETUP          = 5425\n\tSYS_IO_URING_ENTER          = 5426\n\tSYS_IO_URING_REGISTER       = 5427\n\tSYS_OPEN_TREE               = 5428\n\tSYS_MOVE_MOUNT              = 5429\n\tSYS_FSOPEN                  = 5430\n\tSYS_FSCONFIG                = 5431\n\tSYS_FSMOUNT                 = 5432\n\tSYS_FSPICK                  = 5433\n\tSYS_PIDFD_OPEN              = 5434\n\tSYS_CLONE3                  = 5435\n\tSYS_CLOSE_RANGE             = 5436\n\tSYS_OPENAT2                 = 5437\n\tSYS_PIDFD_GETFD             = 5438\n\tSYS_FACCESSAT2              = 5439\n\tSYS_PROCESS_MADVISE         = 5440\n\tSYS_EPOLL_PWAIT2            = 5441\n\tSYS_MOUNT_SETATTR           = 5442\n\tSYS_QUOTACTL_FD             = 5443\n\tSYS_LANDLOCK_CREATE_RULESET = 5444\n\tSYS_LANDLOCK_ADD_RULE       = 5445\n\tSYS_LANDLOCK_RESTRICT_SELF  = 5446\n\tSYS_PROCESS_MRELEASE        = 5448\n\tSYS_FUTEX_WAITV             = 5449\n\tSYS_SET_MEMPOLICY_HOME_NODE = 5450\n\tSYS_CACHESTAT               = 5451\n\tSYS_FCHMODAT2               = 5452\n\tSYS_MAP_SHADOW_STACK        = 5453\n\tSYS_FUTEX_WAKE              = 5454\n\tSYS_FUTEX_WAIT              = 5455\n\tSYS_FUTEX_REQUEUE           = 5456\n\tSYS_STATMOUNT               = 5457\n\tSYS_LISTMOUNT               = 5458\n\tSYS_LSM_GET_SELF_ATTR       = 5459\n\tSYS_LSM_SET_SELF_ATTR       = 5460\n\tSYS_LSM_LIST_MODULES        = 5461\n\tSYS_MSEAL                   = 5462\n\tSYS_SETXATTRAT              = 5463\n\tSYS_GETXATTRAT              = 5464\n\tSYS_LISTXATTRAT             = 5465\n\tSYS_REMOVEXATTRAT           = 5466\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/mips64le/include /tmp/mips64le/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mips64le && linux\n\npackage unix\n\nconst (\n\tSYS_READ                    = 5000\n\tSYS_WRITE                   = 5001\n\tSYS_OPEN                    = 5002\n\tSYS_CLOSE                   = 5003\n\tSYS_STAT                    = 5004\n\tSYS_FSTAT                   = 5005\n\tSYS_LSTAT                   = 5006\n\tSYS_POLL                    = 5007\n\tSYS_LSEEK                   = 5008\n\tSYS_MMAP                    = 5009\n\tSYS_MPROTECT                = 5010\n\tSYS_MUNMAP                  = 5011\n\tSYS_BRK                     = 5012\n\tSYS_RT_SIGACTION            = 5013\n\tSYS_RT_SIGPROCMASK          = 5014\n\tSYS_IOCTL                   = 5015\n\tSYS_PREAD64                 = 5016\n\tSYS_PWRITE64                = 5017\n\tSYS_READV                   = 5018\n\tSYS_WRITEV                  = 5019\n\tSYS_ACCESS                  = 5020\n\tSYS_PIPE                    = 5021\n\tSYS__NEWSELECT              = 5022\n\tSYS_SCHED_YIELD             = 5023\n\tSYS_MREMAP                  = 5024\n\tSYS_MSYNC                   = 5025\n\tSYS_MINCORE                 = 5026\n\tSYS_MADVISE                 = 5027\n\tSYS_SHMGET                  = 5028\n\tSYS_SHMAT                   = 5029\n\tSYS_SHMCTL                  = 5030\n\tSYS_DUP                     = 5031\n\tSYS_DUP2                    = 5032\n\tSYS_PAUSE                   = 5033\n\tSYS_NANOSLEEP               = 5034\n\tSYS_GETITIMER               = 5035\n\tSYS_SETITIMER               = 5036\n\tSYS_ALARM                   = 5037\n\tSYS_GETPID                  = 5038\n\tSYS_SENDFILE                = 5039\n\tSYS_SOCKET                  = 5040\n\tSYS_CONNECT                 = 5041\n\tSYS_ACCEPT                  = 5042\n\tSYS_SENDTO                  = 5043\n\tSYS_RECVFROM                = 5044\n\tSYS_SENDMSG                 = 5045\n\tSYS_RECVMSG                 = 5046\n\tSYS_SHUTDOWN                = 5047\n\tSYS_BIND                    = 5048\n\tSYS_LISTEN                  = 5049\n\tSYS_GETSOCKNAME             = 5050\n\tSYS_GETPEERNAME             = 5051\n\tSYS_SOCKETPAIR              = 5052\n\tSYS_SETSOCKOPT              = 5053\n\tSYS_GETSOCKOPT              = 5054\n\tSYS_CLONE                   = 5055\n\tSYS_FORK                    = 5056\n\tSYS_EXECVE                  = 5057\n\tSYS_EXIT                    = 5058\n\tSYS_WAIT4                   = 5059\n\tSYS_KILL                    = 5060\n\tSYS_UNAME                   = 5061\n\tSYS_SEMGET                  = 5062\n\tSYS_SEMOP                   = 5063\n\tSYS_SEMCTL                  = 5064\n\tSYS_SHMDT                   = 5065\n\tSYS_MSGGET                  = 5066\n\tSYS_MSGSND                  = 5067\n\tSYS_MSGRCV                  = 5068\n\tSYS_MSGCTL                  = 5069\n\tSYS_FCNTL                   = 5070\n\tSYS_FLOCK                   = 5071\n\tSYS_FSYNC                   = 5072\n\tSYS_FDATASYNC               = 5073\n\tSYS_TRUNCATE                = 5074\n\tSYS_FTRUNCATE               = 5075\n\tSYS_GETDENTS                = 5076\n\tSYS_GETCWD                  = 5077\n\tSYS_CHDIR                   = 5078\n\tSYS_FCHDIR                  = 5079\n\tSYS_RENAME                  = 5080\n\tSYS_MKDIR                   = 5081\n\tSYS_RMDIR                   = 5082\n\tSYS_CREAT                   = 5083\n\tSYS_LINK                    = 5084\n\tSYS_UNLINK                  = 5085\n\tSYS_SYMLINK                 = 5086\n\tSYS_READLINK                = 5087\n\tSYS_CHMOD                   = 5088\n\tSYS_FCHMOD                  = 5089\n\tSYS_CHOWN                   = 5090\n\tSYS_FCHOWN                  = 5091\n\tSYS_LCHOWN                  = 5092\n\tSYS_UMASK                   = 5093\n\tSYS_GETTIMEOFDAY            = 5094\n\tSYS_GETRLIMIT               = 5095\n\tSYS_GETRUSAGE               = 5096\n\tSYS_SYSINFO                 = 5097\n\tSYS_TIMES                   = 5098\n\tSYS_PTRACE                  = 5099\n\tSYS_GETUID                  = 5100\n\tSYS_SYSLOG                  = 5101\n\tSYS_GETGID                  = 5102\n\tSYS_SETUID                  = 5103\n\tSYS_SETGID                  = 5104\n\tSYS_GETEUID                 = 5105\n\tSYS_GETEGID                 = 5106\n\tSYS_SETPGID                 = 5107\n\tSYS_GETPPID                 = 5108\n\tSYS_GETPGRP                 = 5109\n\tSYS_SETSID                  = 5110\n\tSYS_SETREUID                = 5111\n\tSYS_SETREGID                = 5112\n\tSYS_GETGROUPS               = 5113\n\tSYS_SETGROUPS               = 5114\n\tSYS_SETRESUID               = 5115\n\tSYS_GETRESUID               = 5116\n\tSYS_SETRESGID               = 5117\n\tSYS_GETRESGID               = 5118\n\tSYS_GETPGID                 = 5119\n\tSYS_SETFSUID                = 5120\n\tSYS_SETFSGID                = 5121\n\tSYS_GETSID                  = 5122\n\tSYS_CAPGET                  = 5123\n\tSYS_CAPSET                  = 5124\n\tSYS_RT_SIGPENDING           = 5125\n\tSYS_RT_SIGTIMEDWAIT         = 5126\n\tSYS_RT_SIGQUEUEINFO         = 5127\n\tSYS_RT_SIGSUSPEND           = 5128\n\tSYS_SIGALTSTACK             = 5129\n\tSYS_UTIME                   = 5130\n\tSYS_MKNOD                   = 5131\n\tSYS_PERSONALITY             = 5132\n\tSYS_USTAT                   = 5133\n\tSYS_STATFS                  = 5134\n\tSYS_FSTATFS                 = 5135\n\tSYS_SYSFS                   = 5136\n\tSYS_GETPRIORITY             = 5137\n\tSYS_SETPRIORITY             = 5138\n\tSYS_SCHED_SETPARAM          = 5139\n\tSYS_SCHED_GETPARAM          = 5140\n\tSYS_SCHED_SETSCHEDULER      = 5141\n\tSYS_SCHED_GETSCHEDULER      = 5142\n\tSYS_SCHED_GET_PRIORITY_MAX  = 5143\n\tSYS_SCHED_GET_PRIORITY_MIN  = 5144\n\tSYS_SCHED_RR_GET_INTERVAL   = 5145\n\tSYS_MLOCK                   = 5146\n\tSYS_MUNLOCK                 = 5147\n\tSYS_MLOCKALL                = 5148\n\tSYS_MUNLOCKALL              = 5149\n\tSYS_VHANGUP                 = 5150\n\tSYS_PIVOT_ROOT              = 5151\n\tSYS__SYSCTL                 = 5152\n\tSYS_PRCTL                   = 5153\n\tSYS_ADJTIMEX                = 5154\n\tSYS_SETRLIMIT               = 5155\n\tSYS_CHROOT                  = 5156\n\tSYS_SYNC                    = 5157\n\tSYS_ACCT                    = 5158\n\tSYS_SETTIMEOFDAY            = 5159\n\tSYS_MOUNT                   = 5160\n\tSYS_UMOUNT2                 = 5161\n\tSYS_SWAPON                  = 5162\n\tSYS_SWAPOFF                 = 5163\n\tSYS_REBOOT                  = 5164\n\tSYS_SETHOSTNAME             = 5165\n\tSYS_SETDOMAINNAME           = 5166\n\tSYS_CREATE_MODULE           = 5167\n\tSYS_INIT_MODULE             = 5168\n\tSYS_DELETE_MODULE           = 5169\n\tSYS_GET_KERNEL_SYMS         = 5170\n\tSYS_QUERY_MODULE            = 5171\n\tSYS_QUOTACTL                = 5172\n\tSYS_NFSSERVCTL              = 5173\n\tSYS_GETPMSG                 = 5174\n\tSYS_PUTPMSG                 = 5175\n\tSYS_AFS_SYSCALL             = 5176\n\tSYS_RESERVED177             = 5177\n\tSYS_GETTID                  = 5178\n\tSYS_READAHEAD               = 5179\n\tSYS_SETXATTR                = 5180\n\tSYS_LSETXATTR               = 5181\n\tSYS_FSETXATTR               = 5182\n\tSYS_GETXATTR                = 5183\n\tSYS_LGETXATTR               = 5184\n\tSYS_FGETXATTR               = 5185\n\tSYS_LISTXATTR               = 5186\n\tSYS_LLISTXATTR              = 5187\n\tSYS_FLISTXATTR              = 5188\n\tSYS_REMOVEXATTR             = 5189\n\tSYS_LREMOVEXATTR            = 5190\n\tSYS_FREMOVEXATTR            = 5191\n\tSYS_TKILL                   = 5192\n\tSYS_RESERVED193             = 5193\n\tSYS_FUTEX                   = 5194\n\tSYS_SCHED_SETAFFINITY       = 5195\n\tSYS_SCHED_GETAFFINITY       = 5196\n\tSYS_CACHEFLUSH              = 5197\n\tSYS_CACHECTL                = 5198\n\tSYS_SYSMIPS                 = 5199\n\tSYS_IO_SETUP                = 5200\n\tSYS_IO_DESTROY              = 5201\n\tSYS_IO_GETEVENTS            = 5202\n\tSYS_IO_SUBMIT               = 5203\n\tSYS_IO_CANCEL               = 5204\n\tSYS_EXIT_GROUP              = 5205\n\tSYS_LOOKUP_DCOOKIE          = 5206\n\tSYS_EPOLL_CREATE            = 5207\n\tSYS_EPOLL_CTL               = 5208\n\tSYS_EPOLL_WAIT              = 5209\n\tSYS_REMAP_FILE_PAGES        = 5210\n\tSYS_RT_SIGRETURN            = 5211\n\tSYS_SET_TID_ADDRESS         = 5212\n\tSYS_RESTART_SYSCALL         = 5213\n\tSYS_SEMTIMEDOP              = 5214\n\tSYS_FADVISE64               = 5215\n\tSYS_TIMER_CREATE            = 5216\n\tSYS_TIMER_SETTIME           = 5217\n\tSYS_TIMER_GETTIME           = 5218\n\tSYS_TIMER_GETOVERRUN        = 5219\n\tSYS_TIMER_DELETE            = 5220\n\tSYS_CLOCK_SETTIME           = 5221\n\tSYS_CLOCK_GETTIME           = 5222\n\tSYS_CLOCK_GETRES            = 5223\n\tSYS_CLOCK_NANOSLEEP         = 5224\n\tSYS_TGKILL                  = 5225\n\tSYS_UTIMES                  = 5226\n\tSYS_MBIND                   = 5227\n\tSYS_GET_MEMPOLICY           = 5228\n\tSYS_SET_MEMPOLICY           = 5229\n\tSYS_MQ_OPEN                 = 5230\n\tSYS_MQ_UNLINK               = 5231\n\tSYS_MQ_TIMEDSEND            = 5232\n\tSYS_MQ_TIMEDRECEIVE         = 5233\n\tSYS_MQ_NOTIFY               = 5234\n\tSYS_MQ_GETSETATTR           = 5235\n\tSYS_VSERVER                 = 5236\n\tSYS_WAITID                  = 5237\n\tSYS_ADD_KEY                 = 5239\n\tSYS_REQUEST_KEY             = 5240\n\tSYS_KEYCTL                  = 5241\n\tSYS_SET_THREAD_AREA         = 5242\n\tSYS_INOTIFY_INIT            = 5243\n\tSYS_INOTIFY_ADD_WATCH       = 5244\n\tSYS_INOTIFY_RM_WATCH        = 5245\n\tSYS_MIGRATE_PAGES           = 5246\n\tSYS_OPENAT                  = 5247\n\tSYS_MKDIRAT                 = 5248\n\tSYS_MKNODAT                 = 5249\n\tSYS_FCHOWNAT                = 5250\n\tSYS_FUTIMESAT               = 5251\n\tSYS_NEWFSTATAT              = 5252\n\tSYS_UNLINKAT                = 5253\n\tSYS_RENAMEAT                = 5254\n\tSYS_LINKAT                  = 5255\n\tSYS_SYMLINKAT               = 5256\n\tSYS_READLINKAT              = 5257\n\tSYS_FCHMODAT                = 5258\n\tSYS_FACCESSAT               = 5259\n\tSYS_PSELECT6                = 5260\n\tSYS_PPOLL                   = 5261\n\tSYS_UNSHARE                 = 5262\n\tSYS_SPLICE                  = 5263\n\tSYS_SYNC_FILE_RANGE         = 5264\n\tSYS_TEE                     = 5265\n\tSYS_VMSPLICE                = 5266\n\tSYS_MOVE_PAGES              = 5267\n\tSYS_SET_ROBUST_LIST         = 5268\n\tSYS_GET_ROBUST_LIST         = 5269\n\tSYS_KEXEC_LOAD              = 5270\n\tSYS_GETCPU                  = 5271\n\tSYS_EPOLL_PWAIT             = 5272\n\tSYS_IOPRIO_SET              = 5273\n\tSYS_IOPRIO_GET              = 5274\n\tSYS_UTIMENSAT               = 5275\n\tSYS_SIGNALFD                = 5276\n\tSYS_TIMERFD                 = 5277\n\tSYS_EVENTFD                 = 5278\n\tSYS_FALLOCATE               = 5279\n\tSYS_TIMERFD_CREATE          = 5280\n\tSYS_TIMERFD_GETTIME         = 5281\n\tSYS_TIMERFD_SETTIME         = 5282\n\tSYS_SIGNALFD4               = 5283\n\tSYS_EVENTFD2                = 5284\n\tSYS_EPOLL_CREATE1           = 5285\n\tSYS_DUP3                    = 5286\n\tSYS_PIPE2                   = 5287\n\tSYS_INOTIFY_INIT1           = 5288\n\tSYS_PREADV                  = 5289\n\tSYS_PWRITEV                 = 5290\n\tSYS_RT_TGSIGQUEUEINFO       = 5291\n\tSYS_PERF_EVENT_OPEN         = 5292\n\tSYS_ACCEPT4                 = 5293\n\tSYS_RECVMMSG                = 5294\n\tSYS_FANOTIFY_INIT           = 5295\n\tSYS_FANOTIFY_MARK           = 5296\n\tSYS_PRLIMIT64               = 5297\n\tSYS_NAME_TO_HANDLE_AT       = 5298\n\tSYS_OPEN_BY_HANDLE_AT       = 5299\n\tSYS_CLOCK_ADJTIME           = 5300\n\tSYS_SYNCFS                  = 5301\n\tSYS_SENDMMSG                = 5302\n\tSYS_SETNS                   = 5303\n\tSYS_PROCESS_VM_READV        = 5304\n\tSYS_PROCESS_VM_WRITEV       = 5305\n\tSYS_KCMP                    = 5306\n\tSYS_FINIT_MODULE            = 5307\n\tSYS_GETDENTS64              = 5308\n\tSYS_SCHED_SETATTR           = 5309\n\tSYS_SCHED_GETATTR           = 5310\n\tSYS_RENAMEAT2               = 5311\n\tSYS_SECCOMP                 = 5312\n\tSYS_GETRANDOM               = 5313\n\tSYS_MEMFD_CREATE            = 5314\n\tSYS_BPF                     = 5315\n\tSYS_EXECVEAT                = 5316\n\tSYS_USERFAULTFD             = 5317\n\tSYS_MEMBARRIER              = 5318\n\tSYS_MLOCK2                  = 5319\n\tSYS_COPY_FILE_RANGE         = 5320\n\tSYS_PREADV2                 = 5321\n\tSYS_PWRITEV2                = 5322\n\tSYS_PKEY_MPROTECT           = 5323\n\tSYS_PKEY_ALLOC              = 5324\n\tSYS_PKEY_FREE               = 5325\n\tSYS_STATX                   = 5326\n\tSYS_RSEQ                    = 5327\n\tSYS_IO_PGETEVENTS           = 5328\n\tSYS_PIDFD_SEND_SIGNAL       = 5424\n\tSYS_IO_URING_SETUP          = 5425\n\tSYS_IO_URING_ENTER          = 5426\n\tSYS_IO_URING_REGISTER       = 5427\n\tSYS_OPEN_TREE               = 5428\n\tSYS_MOVE_MOUNT              = 5429\n\tSYS_FSOPEN                  = 5430\n\tSYS_FSCONFIG                = 5431\n\tSYS_FSMOUNT                 = 5432\n\tSYS_FSPICK                  = 5433\n\tSYS_PIDFD_OPEN              = 5434\n\tSYS_CLONE3                  = 5435\n\tSYS_CLOSE_RANGE             = 5436\n\tSYS_OPENAT2                 = 5437\n\tSYS_PIDFD_GETFD             = 5438\n\tSYS_FACCESSAT2              = 5439\n\tSYS_PROCESS_MADVISE         = 5440\n\tSYS_EPOLL_PWAIT2            = 5441\n\tSYS_MOUNT_SETATTR           = 5442\n\tSYS_QUOTACTL_FD             = 5443\n\tSYS_LANDLOCK_CREATE_RULESET = 5444\n\tSYS_LANDLOCK_ADD_RULE       = 5445\n\tSYS_LANDLOCK_RESTRICT_SELF  = 5446\n\tSYS_PROCESS_MRELEASE        = 5448\n\tSYS_FUTEX_WAITV             = 5449\n\tSYS_SET_MEMPOLICY_HOME_NODE = 5450\n\tSYS_CACHESTAT               = 5451\n\tSYS_FCHMODAT2               = 5452\n\tSYS_MAP_SHADOW_STACK        = 5453\n\tSYS_FUTEX_WAKE              = 5454\n\tSYS_FUTEX_WAIT              = 5455\n\tSYS_FUTEX_REQUEUE           = 5456\n\tSYS_STATMOUNT               = 5457\n\tSYS_LISTMOUNT               = 5458\n\tSYS_LSM_GET_SELF_ATTR       = 5459\n\tSYS_LSM_SET_SELF_ATTR       = 5460\n\tSYS_LSM_LIST_MODULES        = 5461\n\tSYS_MSEAL                   = 5462\n\tSYS_SETXATTRAT              = 5463\n\tSYS_GETXATTRAT              = 5464\n\tSYS_LISTXATTRAT             = 5465\n\tSYS_REMOVEXATTRAT           = 5466\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/mipsle/include /tmp/mipsle/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mipsle && linux\n\npackage unix\n\nconst (\n\tSYS_SYSCALL                      = 4000\n\tSYS_EXIT                         = 4001\n\tSYS_FORK                         = 4002\n\tSYS_READ                         = 4003\n\tSYS_WRITE                        = 4004\n\tSYS_OPEN                         = 4005\n\tSYS_CLOSE                        = 4006\n\tSYS_WAITPID                      = 4007\n\tSYS_CREAT                        = 4008\n\tSYS_LINK                         = 4009\n\tSYS_UNLINK                       = 4010\n\tSYS_EXECVE                       = 4011\n\tSYS_CHDIR                        = 4012\n\tSYS_TIME                         = 4013\n\tSYS_MKNOD                        = 4014\n\tSYS_CHMOD                        = 4015\n\tSYS_LCHOWN                       = 4016\n\tSYS_BREAK                        = 4017\n\tSYS_UNUSED18                     = 4018\n\tSYS_LSEEK                        = 4019\n\tSYS_GETPID                       = 4020\n\tSYS_MOUNT                        = 4021\n\tSYS_UMOUNT                       = 4022\n\tSYS_SETUID                       = 4023\n\tSYS_GETUID                       = 4024\n\tSYS_STIME                        = 4025\n\tSYS_PTRACE                       = 4026\n\tSYS_ALARM                        = 4027\n\tSYS_UNUSED28                     = 4028\n\tSYS_PAUSE                        = 4029\n\tSYS_UTIME                        = 4030\n\tSYS_STTY                         = 4031\n\tSYS_GTTY                         = 4032\n\tSYS_ACCESS                       = 4033\n\tSYS_NICE                         = 4034\n\tSYS_FTIME                        = 4035\n\tSYS_SYNC                         = 4036\n\tSYS_KILL                         = 4037\n\tSYS_RENAME                       = 4038\n\tSYS_MKDIR                        = 4039\n\tSYS_RMDIR                        = 4040\n\tSYS_DUP                          = 4041\n\tSYS_PIPE                         = 4042\n\tSYS_TIMES                        = 4043\n\tSYS_PROF                         = 4044\n\tSYS_BRK                          = 4045\n\tSYS_SETGID                       = 4046\n\tSYS_GETGID                       = 4047\n\tSYS_SIGNAL                       = 4048\n\tSYS_GETEUID                      = 4049\n\tSYS_GETEGID                      = 4050\n\tSYS_ACCT                         = 4051\n\tSYS_UMOUNT2                      = 4052\n\tSYS_LOCK                         = 4053\n\tSYS_IOCTL                        = 4054\n\tSYS_FCNTL                        = 4055\n\tSYS_MPX                          = 4056\n\tSYS_SETPGID                      = 4057\n\tSYS_ULIMIT                       = 4058\n\tSYS_UNUSED59                     = 4059\n\tSYS_UMASK                        = 4060\n\tSYS_CHROOT                       = 4061\n\tSYS_USTAT                        = 4062\n\tSYS_DUP2                         = 4063\n\tSYS_GETPPID                      = 4064\n\tSYS_GETPGRP                      = 4065\n\tSYS_SETSID                       = 4066\n\tSYS_SIGACTION                    = 4067\n\tSYS_SGETMASK                     = 4068\n\tSYS_SSETMASK                     = 4069\n\tSYS_SETREUID                     = 4070\n\tSYS_SETREGID                     = 4071\n\tSYS_SIGSUSPEND                   = 4072\n\tSYS_SIGPENDING                   = 4073\n\tSYS_SETHOSTNAME                  = 4074\n\tSYS_SETRLIMIT                    = 4075\n\tSYS_GETRLIMIT                    = 4076\n\tSYS_GETRUSAGE                    = 4077\n\tSYS_GETTIMEOFDAY                 = 4078\n\tSYS_SETTIMEOFDAY                 = 4079\n\tSYS_GETGROUPS                    = 4080\n\tSYS_SETGROUPS                    = 4081\n\tSYS_RESERVED82                   = 4082\n\tSYS_SYMLINK                      = 4083\n\tSYS_UNUSED84                     = 4084\n\tSYS_READLINK                     = 4085\n\tSYS_USELIB                       = 4086\n\tSYS_SWAPON                       = 4087\n\tSYS_REBOOT                       = 4088\n\tSYS_READDIR                      = 4089\n\tSYS_MMAP                         = 4090\n\tSYS_MUNMAP                       = 4091\n\tSYS_TRUNCATE                     = 4092\n\tSYS_FTRUNCATE                    = 4093\n\tSYS_FCHMOD                       = 4094\n\tSYS_FCHOWN                       = 4095\n\tSYS_GETPRIORITY                  = 4096\n\tSYS_SETPRIORITY                  = 4097\n\tSYS_PROFIL                       = 4098\n\tSYS_STATFS                       = 4099\n\tSYS_FSTATFS                      = 4100\n\tSYS_IOPERM                       = 4101\n\tSYS_SOCKETCALL                   = 4102\n\tSYS_SYSLOG                       = 4103\n\tSYS_SETITIMER                    = 4104\n\tSYS_GETITIMER                    = 4105\n\tSYS_STAT                         = 4106\n\tSYS_LSTAT                        = 4107\n\tSYS_FSTAT                        = 4108\n\tSYS_UNUSED109                    = 4109\n\tSYS_IOPL                         = 4110\n\tSYS_VHANGUP                      = 4111\n\tSYS_IDLE                         = 4112\n\tSYS_VM86                         = 4113\n\tSYS_WAIT4                        = 4114\n\tSYS_SWAPOFF                      = 4115\n\tSYS_SYSINFO                      = 4116\n\tSYS_IPC                          = 4117\n\tSYS_FSYNC                        = 4118\n\tSYS_SIGRETURN                    = 4119\n\tSYS_CLONE                        = 4120\n\tSYS_SETDOMAINNAME                = 4121\n\tSYS_UNAME                        = 4122\n\tSYS_MODIFY_LDT                   = 4123\n\tSYS_ADJTIMEX                     = 4124\n\tSYS_MPROTECT                     = 4125\n\tSYS_SIGPROCMASK                  = 4126\n\tSYS_CREATE_MODULE                = 4127\n\tSYS_INIT_MODULE                  = 4128\n\tSYS_DELETE_MODULE                = 4129\n\tSYS_GET_KERNEL_SYMS              = 4130\n\tSYS_QUOTACTL                     = 4131\n\tSYS_GETPGID                      = 4132\n\tSYS_FCHDIR                       = 4133\n\tSYS_BDFLUSH                      = 4134\n\tSYS_SYSFS                        = 4135\n\tSYS_PERSONALITY                  = 4136\n\tSYS_AFS_SYSCALL                  = 4137\n\tSYS_SETFSUID                     = 4138\n\tSYS_SETFSGID                     = 4139\n\tSYS__LLSEEK                      = 4140\n\tSYS_GETDENTS                     = 4141\n\tSYS__NEWSELECT                   = 4142\n\tSYS_FLOCK                        = 4143\n\tSYS_MSYNC                        = 4144\n\tSYS_READV                        = 4145\n\tSYS_WRITEV                       = 4146\n\tSYS_CACHEFLUSH                   = 4147\n\tSYS_CACHECTL                     = 4148\n\tSYS_SYSMIPS                      = 4149\n\tSYS_UNUSED150                    = 4150\n\tSYS_GETSID                       = 4151\n\tSYS_FDATASYNC                    = 4152\n\tSYS__SYSCTL                      = 4153\n\tSYS_MLOCK                        = 4154\n\tSYS_MUNLOCK                      = 4155\n\tSYS_MLOCKALL                     = 4156\n\tSYS_MUNLOCKALL                   = 4157\n\tSYS_SCHED_SETPARAM               = 4158\n\tSYS_SCHED_GETPARAM               = 4159\n\tSYS_SCHED_SETSCHEDULER           = 4160\n\tSYS_SCHED_GETSCHEDULER           = 4161\n\tSYS_SCHED_YIELD                  = 4162\n\tSYS_SCHED_GET_PRIORITY_MAX       = 4163\n\tSYS_SCHED_GET_PRIORITY_MIN       = 4164\n\tSYS_SCHED_RR_GET_INTERVAL        = 4165\n\tSYS_NANOSLEEP                    = 4166\n\tSYS_MREMAP                       = 4167\n\tSYS_ACCEPT                       = 4168\n\tSYS_BIND                         = 4169\n\tSYS_CONNECT                      = 4170\n\tSYS_GETPEERNAME                  = 4171\n\tSYS_GETSOCKNAME                  = 4172\n\tSYS_GETSOCKOPT                   = 4173\n\tSYS_LISTEN                       = 4174\n\tSYS_RECV                         = 4175\n\tSYS_RECVFROM                     = 4176\n\tSYS_RECVMSG                      = 4177\n\tSYS_SEND                         = 4178\n\tSYS_SENDMSG                      = 4179\n\tSYS_SENDTO                       = 4180\n\tSYS_SETSOCKOPT                   = 4181\n\tSYS_SHUTDOWN                     = 4182\n\tSYS_SOCKET                       = 4183\n\tSYS_SOCKETPAIR                   = 4184\n\tSYS_SETRESUID                    = 4185\n\tSYS_GETRESUID                    = 4186\n\tSYS_QUERY_MODULE                 = 4187\n\tSYS_POLL                         = 4188\n\tSYS_NFSSERVCTL                   = 4189\n\tSYS_SETRESGID                    = 4190\n\tSYS_GETRESGID                    = 4191\n\tSYS_PRCTL                        = 4192\n\tSYS_RT_SIGRETURN                 = 4193\n\tSYS_RT_SIGACTION                 = 4194\n\tSYS_RT_SIGPROCMASK               = 4195\n\tSYS_RT_SIGPENDING                = 4196\n\tSYS_RT_SIGTIMEDWAIT              = 4197\n\tSYS_RT_SIGQUEUEINFO              = 4198\n\tSYS_RT_SIGSUSPEND                = 4199\n\tSYS_PREAD64                      = 4200\n\tSYS_PWRITE64                     = 4201\n\tSYS_CHOWN                        = 4202\n\tSYS_GETCWD                       = 4203\n\tSYS_CAPGET                       = 4204\n\tSYS_CAPSET                       = 4205\n\tSYS_SIGALTSTACK                  = 4206\n\tSYS_SENDFILE                     = 4207\n\tSYS_GETPMSG                      = 4208\n\tSYS_PUTPMSG                      = 4209\n\tSYS_MMAP2                        = 4210\n\tSYS_TRUNCATE64                   = 4211\n\tSYS_FTRUNCATE64                  = 4212\n\tSYS_STAT64                       = 4213\n\tSYS_LSTAT64                      = 4214\n\tSYS_FSTAT64                      = 4215\n\tSYS_PIVOT_ROOT                   = 4216\n\tSYS_MINCORE                      = 4217\n\tSYS_MADVISE                      = 4218\n\tSYS_GETDENTS64                   = 4219\n\tSYS_FCNTL64                      = 4220\n\tSYS_RESERVED221                  = 4221\n\tSYS_GETTID                       = 4222\n\tSYS_READAHEAD                    = 4223\n\tSYS_SETXATTR                     = 4224\n\tSYS_LSETXATTR                    = 4225\n\tSYS_FSETXATTR                    = 4226\n\tSYS_GETXATTR                     = 4227\n\tSYS_LGETXATTR                    = 4228\n\tSYS_FGETXATTR                    = 4229\n\tSYS_LISTXATTR                    = 4230\n\tSYS_LLISTXATTR                   = 4231\n\tSYS_FLISTXATTR                   = 4232\n\tSYS_REMOVEXATTR                  = 4233\n\tSYS_LREMOVEXATTR                 = 4234\n\tSYS_FREMOVEXATTR                 = 4235\n\tSYS_TKILL                        = 4236\n\tSYS_SENDFILE64                   = 4237\n\tSYS_FUTEX                        = 4238\n\tSYS_SCHED_SETAFFINITY            = 4239\n\tSYS_SCHED_GETAFFINITY            = 4240\n\tSYS_IO_SETUP                     = 4241\n\tSYS_IO_DESTROY                   = 4242\n\tSYS_IO_GETEVENTS                 = 4243\n\tSYS_IO_SUBMIT                    = 4244\n\tSYS_IO_CANCEL                    = 4245\n\tSYS_EXIT_GROUP                   = 4246\n\tSYS_LOOKUP_DCOOKIE               = 4247\n\tSYS_EPOLL_CREATE                 = 4248\n\tSYS_EPOLL_CTL                    = 4249\n\tSYS_EPOLL_WAIT                   = 4250\n\tSYS_REMAP_FILE_PAGES             = 4251\n\tSYS_SET_TID_ADDRESS              = 4252\n\tSYS_RESTART_SYSCALL              = 4253\n\tSYS_FADVISE64                    = 4254\n\tSYS_STATFS64                     = 4255\n\tSYS_FSTATFS64                    = 4256\n\tSYS_TIMER_CREATE                 = 4257\n\tSYS_TIMER_SETTIME                = 4258\n\tSYS_TIMER_GETTIME                = 4259\n\tSYS_TIMER_GETOVERRUN             = 4260\n\tSYS_TIMER_DELETE                 = 4261\n\tSYS_CLOCK_SETTIME                = 4262\n\tSYS_CLOCK_GETTIME                = 4263\n\tSYS_CLOCK_GETRES                 = 4264\n\tSYS_CLOCK_NANOSLEEP              = 4265\n\tSYS_TGKILL                       = 4266\n\tSYS_UTIMES                       = 4267\n\tSYS_MBIND                        = 4268\n\tSYS_GET_MEMPOLICY                = 4269\n\tSYS_SET_MEMPOLICY                = 4270\n\tSYS_MQ_OPEN                      = 4271\n\tSYS_MQ_UNLINK                    = 4272\n\tSYS_MQ_TIMEDSEND                 = 4273\n\tSYS_MQ_TIMEDRECEIVE              = 4274\n\tSYS_MQ_NOTIFY                    = 4275\n\tSYS_MQ_GETSETATTR                = 4276\n\tSYS_VSERVER                      = 4277\n\tSYS_WAITID                       = 4278\n\tSYS_ADD_KEY                      = 4280\n\tSYS_REQUEST_KEY                  = 4281\n\tSYS_KEYCTL                       = 4282\n\tSYS_SET_THREAD_AREA              = 4283\n\tSYS_INOTIFY_INIT                 = 4284\n\tSYS_INOTIFY_ADD_WATCH            = 4285\n\tSYS_INOTIFY_RM_WATCH             = 4286\n\tSYS_MIGRATE_PAGES                = 4287\n\tSYS_OPENAT                       = 4288\n\tSYS_MKDIRAT                      = 4289\n\tSYS_MKNODAT                      = 4290\n\tSYS_FCHOWNAT                     = 4291\n\tSYS_FUTIMESAT                    = 4292\n\tSYS_FSTATAT64                    = 4293\n\tSYS_UNLINKAT                     = 4294\n\tSYS_RENAMEAT                     = 4295\n\tSYS_LINKAT                       = 4296\n\tSYS_SYMLINKAT                    = 4297\n\tSYS_READLINKAT                   = 4298\n\tSYS_FCHMODAT                     = 4299\n\tSYS_FACCESSAT                    = 4300\n\tSYS_PSELECT6                     = 4301\n\tSYS_PPOLL                        = 4302\n\tSYS_UNSHARE                      = 4303\n\tSYS_SPLICE                       = 4304\n\tSYS_SYNC_FILE_RANGE              = 4305\n\tSYS_TEE                          = 4306\n\tSYS_VMSPLICE                     = 4307\n\tSYS_MOVE_PAGES                   = 4308\n\tSYS_SET_ROBUST_LIST              = 4309\n\tSYS_GET_ROBUST_LIST              = 4310\n\tSYS_KEXEC_LOAD                   = 4311\n\tSYS_GETCPU                       = 4312\n\tSYS_EPOLL_PWAIT                  = 4313\n\tSYS_IOPRIO_SET                   = 4314\n\tSYS_IOPRIO_GET                   = 4315\n\tSYS_UTIMENSAT                    = 4316\n\tSYS_SIGNALFD                     = 4317\n\tSYS_TIMERFD                      = 4318\n\tSYS_EVENTFD                      = 4319\n\tSYS_FALLOCATE                    = 4320\n\tSYS_TIMERFD_CREATE               = 4321\n\tSYS_TIMERFD_GETTIME              = 4322\n\tSYS_TIMERFD_SETTIME              = 4323\n\tSYS_SIGNALFD4                    = 4324\n\tSYS_EVENTFD2                     = 4325\n\tSYS_EPOLL_CREATE1                = 4326\n\tSYS_DUP3                         = 4327\n\tSYS_PIPE2                        = 4328\n\tSYS_INOTIFY_INIT1                = 4329\n\tSYS_PREADV                       = 4330\n\tSYS_PWRITEV                      = 4331\n\tSYS_RT_TGSIGQUEUEINFO            = 4332\n\tSYS_PERF_EVENT_OPEN              = 4333\n\tSYS_ACCEPT4                      = 4334\n\tSYS_RECVMMSG                     = 4335\n\tSYS_FANOTIFY_INIT                = 4336\n\tSYS_FANOTIFY_MARK                = 4337\n\tSYS_PRLIMIT64                    = 4338\n\tSYS_NAME_TO_HANDLE_AT            = 4339\n\tSYS_OPEN_BY_HANDLE_AT            = 4340\n\tSYS_CLOCK_ADJTIME                = 4341\n\tSYS_SYNCFS                       = 4342\n\tSYS_SENDMMSG                     = 4343\n\tSYS_SETNS                        = 4344\n\tSYS_PROCESS_VM_READV             = 4345\n\tSYS_PROCESS_VM_WRITEV            = 4346\n\tSYS_KCMP                         = 4347\n\tSYS_FINIT_MODULE                 = 4348\n\tSYS_SCHED_SETATTR                = 4349\n\tSYS_SCHED_GETATTR                = 4350\n\tSYS_RENAMEAT2                    = 4351\n\tSYS_SECCOMP                      = 4352\n\tSYS_GETRANDOM                    = 4353\n\tSYS_MEMFD_CREATE                 = 4354\n\tSYS_BPF                          = 4355\n\tSYS_EXECVEAT                     = 4356\n\tSYS_USERFAULTFD                  = 4357\n\tSYS_MEMBARRIER                   = 4358\n\tSYS_MLOCK2                       = 4359\n\tSYS_COPY_FILE_RANGE              = 4360\n\tSYS_PREADV2                      = 4361\n\tSYS_PWRITEV2                     = 4362\n\tSYS_PKEY_MPROTECT                = 4363\n\tSYS_PKEY_ALLOC                   = 4364\n\tSYS_PKEY_FREE                    = 4365\n\tSYS_STATX                        = 4366\n\tSYS_RSEQ                         = 4367\n\tSYS_IO_PGETEVENTS                = 4368\n\tSYS_SEMGET                       = 4393\n\tSYS_SEMCTL                       = 4394\n\tSYS_SHMGET                       = 4395\n\tSYS_SHMCTL                       = 4396\n\tSYS_SHMAT                        = 4397\n\tSYS_SHMDT                        = 4398\n\tSYS_MSGGET                       = 4399\n\tSYS_MSGSND                       = 4400\n\tSYS_MSGRCV                       = 4401\n\tSYS_MSGCTL                       = 4402\n\tSYS_CLOCK_GETTIME64              = 4403\n\tSYS_CLOCK_SETTIME64              = 4404\n\tSYS_CLOCK_ADJTIME64              = 4405\n\tSYS_CLOCK_GETRES_TIME64          = 4406\n\tSYS_CLOCK_NANOSLEEP_TIME64       = 4407\n\tSYS_TIMER_GETTIME64              = 4408\n\tSYS_TIMER_SETTIME64              = 4409\n\tSYS_TIMERFD_GETTIME64            = 4410\n\tSYS_TIMERFD_SETTIME64            = 4411\n\tSYS_UTIMENSAT_TIME64             = 4412\n\tSYS_PSELECT6_TIME64              = 4413\n\tSYS_PPOLL_TIME64                 = 4414\n\tSYS_IO_PGETEVENTS_TIME64         = 4416\n\tSYS_RECVMMSG_TIME64              = 4417\n\tSYS_MQ_TIMEDSEND_TIME64          = 4418\n\tSYS_MQ_TIMEDRECEIVE_TIME64       = 4419\n\tSYS_SEMTIMEDOP_TIME64            = 4420\n\tSYS_RT_SIGTIMEDWAIT_TIME64       = 4421\n\tSYS_FUTEX_TIME64                 = 4422\n\tSYS_SCHED_RR_GET_INTERVAL_TIME64 = 4423\n\tSYS_PIDFD_SEND_SIGNAL            = 4424\n\tSYS_IO_URING_SETUP               = 4425\n\tSYS_IO_URING_ENTER               = 4426\n\tSYS_IO_URING_REGISTER            = 4427\n\tSYS_OPEN_TREE                    = 4428\n\tSYS_MOVE_MOUNT                   = 4429\n\tSYS_FSOPEN                       = 4430\n\tSYS_FSCONFIG                     = 4431\n\tSYS_FSMOUNT                      = 4432\n\tSYS_FSPICK                       = 4433\n\tSYS_PIDFD_OPEN                   = 4434\n\tSYS_CLONE3                       = 4435\n\tSYS_CLOSE_RANGE                  = 4436\n\tSYS_OPENAT2                      = 4437\n\tSYS_PIDFD_GETFD                  = 4438\n\tSYS_FACCESSAT2                   = 4439\n\tSYS_PROCESS_MADVISE              = 4440\n\tSYS_EPOLL_PWAIT2                 = 4441\n\tSYS_MOUNT_SETATTR                = 4442\n\tSYS_QUOTACTL_FD                  = 4443\n\tSYS_LANDLOCK_CREATE_RULESET      = 4444\n\tSYS_LANDLOCK_ADD_RULE            = 4445\n\tSYS_LANDLOCK_RESTRICT_SELF       = 4446\n\tSYS_PROCESS_MRELEASE             = 4448\n\tSYS_FUTEX_WAITV                  = 4449\n\tSYS_SET_MEMPOLICY_HOME_NODE      = 4450\n\tSYS_CACHESTAT                    = 4451\n\tSYS_FCHMODAT2                    = 4452\n\tSYS_MAP_SHADOW_STACK             = 4453\n\tSYS_FUTEX_WAKE                   = 4454\n\tSYS_FUTEX_WAIT                   = 4455\n\tSYS_FUTEX_REQUEUE                = 4456\n\tSYS_STATMOUNT                    = 4457\n\tSYS_LISTMOUNT                    = 4458\n\tSYS_LSM_GET_SELF_ATTR            = 4459\n\tSYS_LSM_SET_SELF_ATTR            = 4460\n\tSYS_LSM_LIST_MODULES             = 4461\n\tSYS_MSEAL                        = 4462\n\tSYS_SETXATTRAT                   = 4463\n\tSYS_GETXATTRAT                   = 4464\n\tSYS_LISTXATTRAT                  = 4465\n\tSYS_REMOVEXATTRAT                = 4466\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/ppc/include /tmp/ppc/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc && linux\n\npackage unix\n\nconst (\n\tSYS_RESTART_SYSCALL              = 0\n\tSYS_EXIT                         = 1\n\tSYS_FORK                         = 2\n\tSYS_READ                         = 3\n\tSYS_WRITE                        = 4\n\tSYS_OPEN                         = 5\n\tSYS_CLOSE                        = 6\n\tSYS_WAITPID                      = 7\n\tSYS_CREAT                        = 8\n\tSYS_LINK                         = 9\n\tSYS_UNLINK                       = 10\n\tSYS_EXECVE                       = 11\n\tSYS_CHDIR                        = 12\n\tSYS_TIME                         = 13\n\tSYS_MKNOD                        = 14\n\tSYS_CHMOD                        = 15\n\tSYS_LCHOWN                       = 16\n\tSYS_BREAK                        = 17\n\tSYS_OLDSTAT                      = 18\n\tSYS_LSEEK                        = 19\n\tSYS_GETPID                       = 20\n\tSYS_MOUNT                        = 21\n\tSYS_UMOUNT                       = 22\n\tSYS_SETUID                       = 23\n\tSYS_GETUID                       = 24\n\tSYS_STIME                        = 25\n\tSYS_PTRACE                       = 26\n\tSYS_ALARM                        = 27\n\tSYS_OLDFSTAT                     = 28\n\tSYS_PAUSE                        = 29\n\tSYS_UTIME                        = 30\n\tSYS_STTY                         = 31\n\tSYS_GTTY                         = 32\n\tSYS_ACCESS                       = 33\n\tSYS_NICE                         = 34\n\tSYS_FTIME                        = 35\n\tSYS_SYNC                         = 36\n\tSYS_KILL                         = 37\n\tSYS_RENAME                       = 38\n\tSYS_MKDIR                        = 39\n\tSYS_RMDIR                        = 40\n\tSYS_DUP                          = 41\n\tSYS_PIPE                         = 42\n\tSYS_TIMES                        = 43\n\tSYS_PROF                         = 44\n\tSYS_BRK                          = 45\n\tSYS_SETGID                       = 46\n\tSYS_GETGID                       = 47\n\tSYS_SIGNAL                       = 48\n\tSYS_GETEUID                      = 49\n\tSYS_GETEGID                      = 50\n\tSYS_ACCT                         = 51\n\tSYS_UMOUNT2                      = 52\n\tSYS_LOCK                         = 53\n\tSYS_IOCTL                        = 54\n\tSYS_FCNTL                        = 55\n\tSYS_MPX                          = 56\n\tSYS_SETPGID                      = 57\n\tSYS_ULIMIT                       = 58\n\tSYS_OLDOLDUNAME                  = 59\n\tSYS_UMASK                        = 60\n\tSYS_CHROOT                       = 61\n\tSYS_USTAT                        = 62\n\tSYS_DUP2                         = 63\n\tSYS_GETPPID                      = 64\n\tSYS_GETPGRP                      = 65\n\tSYS_SETSID                       = 66\n\tSYS_SIGACTION                    = 67\n\tSYS_SGETMASK                     = 68\n\tSYS_SSETMASK                     = 69\n\tSYS_SETREUID                     = 70\n\tSYS_SETREGID                     = 71\n\tSYS_SIGSUSPEND                   = 72\n\tSYS_SIGPENDING                   = 73\n\tSYS_SETHOSTNAME                  = 74\n\tSYS_SETRLIMIT                    = 75\n\tSYS_GETRLIMIT                    = 76\n\tSYS_GETRUSAGE                    = 77\n\tSYS_GETTIMEOFDAY                 = 78\n\tSYS_SETTIMEOFDAY                 = 79\n\tSYS_GETGROUPS                    = 80\n\tSYS_SETGROUPS                    = 81\n\tSYS_SELECT                       = 82\n\tSYS_SYMLINK                      = 83\n\tSYS_OLDLSTAT                     = 84\n\tSYS_READLINK                     = 85\n\tSYS_USELIB                       = 86\n\tSYS_SWAPON                       = 87\n\tSYS_REBOOT                       = 88\n\tSYS_READDIR                      = 89\n\tSYS_MMAP                         = 90\n\tSYS_MUNMAP                       = 91\n\tSYS_TRUNCATE                     = 92\n\tSYS_FTRUNCATE                    = 93\n\tSYS_FCHMOD                       = 94\n\tSYS_FCHOWN                       = 95\n\tSYS_GETPRIORITY                  = 96\n\tSYS_SETPRIORITY                  = 97\n\tSYS_PROFIL                       = 98\n\tSYS_STATFS                       = 99\n\tSYS_FSTATFS                      = 100\n\tSYS_IOPERM                       = 101\n\tSYS_SOCKETCALL                   = 102\n\tSYS_SYSLOG                       = 103\n\tSYS_SETITIMER                    = 104\n\tSYS_GETITIMER                    = 105\n\tSYS_STAT                         = 106\n\tSYS_LSTAT                        = 107\n\tSYS_FSTAT                        = 108\n\tSYS_OLDUNAME                     = 109\n\tSYS_IOPL                         = 110\n\tSYS_VHANGUP                      = 111\n\tSYS_IDLE                         = 112\n\tSYS_VM86                         = 113\n\tSYS_WAIT4                        = 114\n\tSYS_SWAPOFF                      = 115\n\tSYS_SYSINFO                      = 116\n\tSYS_IPC                          = 117\n\tSYS_FSYNC                        = 118\n\tSYS_SIGRETURN                    = 119\n\tSYS_CLONE                        = 120\n\tSYS_SETDOMAINNAME                = 121\n\tSYS_UNAME                        = 122\n\tSYS_MODIFY_LDT                   = 123\n\tSYS_ADJTIMEX                     = 124\n\tSYS_MPROTECT                     = 125\n\tSYS_SIGPROCMASK                  = 126\n\tSYS_CREATE_MODULE                = 127\n\tSYS_INIT_MODULE                  = 128\n\tSYS_DELETE_MODULE                = 129\n\tSYS_GET_KERNEL_SYMS              = 130\n\tSYS_QUOTACTL                     = 131\n\tSYS_GETPGID                      = 132\n\tSYS_FCHDIR                       = 133\n\tSYS_BDFLUSH                      = 134\n\tSYS_SYSFS                        = 135\n\tSYS_PERSONALITY                  = 136\n\tSYS_AFS_SYSCALL                  = 137\n\tSYS_SETFSUID                     = 138\n\tSYS_SETFSGID                     = 139\n\tSYS__LLSEEK                      = 140\n\tSYS_GETDENTS                     = 141\n\tSYS__NEWSELECT                   = 142\n\tSYS_FLOCK                        = 143\n\tSYS_MSYNC                        = 144\n\tSYS_READV                        = 145\n\tSYS_WRITEV                       = 146\n\tSYS_GETSID                       = 147\n\tSYS_FDATASYNC                    = 148\n\tSYS__SYSCTL                      = 149\n\tSYS_MLOCK                        = 150\n\tSYS_MUNLOCK                      = 151\n\tSYS_MLOCKALL                     = 152\n\tSYS_MUNLOCKALL                   = 153\n\tSYS_SCHED_SETPARAM               = 154\n\tSYS_SCHED_GETPARAM               = 155\n\tSYS_SCHED_SETSCHEDULER           = 156\n\tSYS_SCHED_GETSCHEDULER           = 157\n\tSYS_SCHED_YIELD                  = 158\n\tSYS_SCHED_GET_PRIORITY_MAX       = 159\n\tSYS_SCHED_GET_PRIORITY_MIN       = 160\n\tSYS_SCHED_RR_GET_INTERVAL        = 161\n\tSYS_NANOSLEEP                    = 162\n\tSYS_MREMAP                       = 163\n\tSYS_SETRESUID                    = 164\n\tSYS_GETRESUID                    = 165\n\tSYS_QUERY_MODULE                 = 166\n\tSYS_POLL                         = 167\n\tSYS_NFSSERVCTL                   = 168\n\tSYS_SETRESGID                    = 169\n\tSYS_GETRESGID                    = 170\n\tSYS_PRCTL                        = 171\n\tSYS_RT_SIGRETURN                 = 172\n\tSYS_RT_SIGACTION                 = 173\n\tSYS_RT_SIGPROCMASK               = 174\n\tSYS_RT_SIGPENDING                = 175\n\tSYS_RT_SIGTIMEDWAIT              = 176\n\tSYS_RT_SIGQUEUEINFO              = 177\n\tSYS_RT_SIGSUSPEND                = 178\n\tSYS_PREAD64                      = 179\n\tSYS_PWRITE64                     = 180\n\tSYS_CHOWN                        = 181\n\tSYS_GETCWD                       = 182\n\tSYS_CAPGET                       = 183\n\tSYS_CAPSET                       = 184\n\tSYS_SIGALTSTACK                  = 185\n\tSYS_SENDFILE                     = 186\n\tSYS_GETPMSG                      = 187\n\tSYS_PUTPMSG                      = 188\n\tSYS_VFORK                        = 189\n\tSYS_UGETRLIMIT                   = 190\n\tSYS_READAHEAD                    = 191\n\tSYS_MMAP2                        = 192\n\tSYS_TRUNCATE64                   = 193\n\tSYS_FTRUNCATE64                  = 194\n\tSYS_STAT64                       = 195\n\tSYS_LSTAT64                      = 196\n\tSYS_FSTAT64                      = 197\n\tSYS_PCICONFIG_READ               = 198\n\tSYS_PCICONFIG_WRITE              = 199\n\tSYS_PCICONFIG_IOBASE             = 200\n\tSYS_MULTIPLEXER                  = 201\n\tSYS_GETDENTS64                   = 202\n\tSYS_PIVOT_ROOT                   = 203\n\tSYS_FCNTL64                      = 204\n\tSYS_MADVISE                      = 205\n\tSYS_MINCORE                      = 206\n\tSYS_GETTID                       = 207\n\tSYS_TKILL                        = 208\n\tSYS_SETXATTR                     = 209\n\tSYS_LSETXATTR                    = 210\n\tSYS_FSETXATTR                    = 211\n\tSYS_GETXATTR                     = 212\n\tSYS_LGETXATTR                    = 213\n\tSYS_FGETXATTR                    = 214\n\tSYS_LISTXATTR                    = 215\n\tSYS_LLISTXATTR                   = 216\n\tSYS_FLISTXATTR                   = 217\n\tSYS_REMOVEXATTR                  = 218\n\tSYS_LREMOVEXATTR                 = 219\n\tSYS_FREMOVEXATTR                 = 220\n\tSYS_FUTEX                        = 221\n\tSYS_SCHED_SETAFFINITY            = 222\n\tSYS_SCHED_GETAFFINITY            = 223\n\tSYS_TUXCALL                      = 225\n\tSYS_SENDFILE64                   = 226\n\tSYS_IO_SETUP                     = 227\n\tSYS_IO_DESTROY                   = 228\n\tSYS_IO_GETEVENTS                 = 229\n\tSYS_IO_SUBMIT                    = 230\n\tSYS_IO_CANCEL                    = 231\n\tSYS_SET_TID_ADDRESS              = 232\n\tSYS_FADVISE64                    = 233\n\tSYS_EXIT_GROUP                   = 234\n\tSYS_LOOKUP_DCOOKIE               = 235\n\tSYS_EPOLL_CREATE                 = 236\n\tSYS_EPOLL_CTL                    = 237\n\tSYS_EPOLL_WAIT                   = 238\n\tSYS_REMAP_FILE_PAGES             = 239\n\tSYS_TIMER_CREATE                 = 240\n\tSYS_TIMER_SETTIME                = 241\n\tSYS_TIMER_GETTIME                = 242\n\tSYS_TIMER_GETOVERRUN             = 243\n\tSYS_TIMER_DELETE                 = 244\n\tSYS_CLOCK_SETTIME                = 245\n\tSYS_CLOCK_GETTIME                = 246\n\tSYS_CLOCK_GETRES                 = 247\n\tSYS_CLOCK_NANOSLEEP              = 248\n\tSYS_SWAPCONTEXT                  = 249\n\tSYS_TGKILL                       = 250\n\tSYS_UTIMES                       = 251\n\tSYS_STATFS64                     = 252\n\tSYS_FSTATFS64                    = 253\n\tSYS_FADVISE64_64                 = 254\n\tSYS_RTAS                         = 255\n\tSYS_SYS_DEBUG_SETCONTEXT         = 256\n\tSYS_MIGRATE_PAGES                = 258\n\tSYS_MBIND                        = 259\n\tSYS_GET_MEMPOLICY                = 260\n\tSYS_SET_MEMPOLICY                = 261\n\tSYS_MQ_OPEN                      = 262\n\tSYS_MQ_UNLINK                    = 263\n\tSYS_MQ_TIMEDSEND                 = 264\n\tSYS_MQ_TIMEDRECEIVE              = 265\n\tSYS_MQ_NOTIFY                    = 266\n\tSYS_MQ_GETSETATTR                = 267\n\tSYS_KEXEC_LOAD                   = 268\n\tSYS_ADD_KEY                      = 269\n\tSYS_REQUEST_KEY                  = 270\n\tSYS_KEYCTL                       = 271\n\tSYS_WAITID                       = 272\n\tSYS_IOPRIO_SET                   = 273\n\tSYS_IOPRIO_GET                   = 274\n\tSYS_INOTIFY_INIT                 = 275\n\tSYS_INOTIFY_ADD_WATCH            = 276\n\tSYS_INOTIFY_RM_WATCH             = 277\n\tSYS_SPU_RUN                      = 278\n\tSYS_SPU_CREATE                   = 279\n\tSYS_PSELECT6                     = 280\n\tSYS_PPOLL                        = 281\n\tSYS_UNSHARE                      = 282\n\tSYS_SPLICE                       = 283\n\tSYS_TEE                          = 284\n\tSYS_VMSPLICE                     = 285\n\tSYS_OPENAT                       = 286\n\tSYS_MKDIRAT                      = 287\n\tSYS_MKNODAT                      = 288\n\tSYS_FCHOWNAT                     = 289\n\tSYS_FUTIMESAT                    = 290\n\tSYS_FSTATAT64                    = 291\n\tSYS_UNLINKAT                     = 292\n\tSYS_RENAMEAT                     = 293\n\tSYS_LINKAT                       = 294\n\tSYS_SYMLINKAT                    = 295\n\tSYS_READLINKAT                   = 296\n\tSYS_FCHMODAT                     = 297\n\tSYS_FACCESSAT                    = 298\n\tSYS_GET_ROBUST_LIST              = 299\n\tSYS_SET_ROBUST_LIST              = 300\n\tSYS_MOVE_PAGES                   = 301\n\tSYS_GETCPU                       = 302\n\tSYS_EPOLL_PWAIT                  = 303\n\tSYS_UTIMENSAT                    = 304\n\tSYS_SIGNALFD                     = 305\n\tSYS_TIMERFD_CREATE               = 306\n\tSYS_EVENTFD                      = 307\n\tSYS_SYNC_FILE_RANGE2             = 308\n\tSYS_FALLOCATE                    = 309\n\tSYS_SUBPAGE_PROT                 = 310\n\tSYS_TIMERFD_SETTIME              = 311\n\tSYS_TIMERFD_GETTIME              = 312\n\tSYS_SIGNALFD4                    = 313\n\tSYS_EVENTFD2                     = 314\n\tSYS_EPOLL_CREATE1                = 315\n\tSYS_DUP3                         = 316\n\tSYS_PIPE2                        = 317\n\tSYS_INOTIFY_INIT1                = 318\n\tSYS_PERF_EVENT_OPEN              = 319\n\tSYS_PREADV                       = 320\n\tSYS_PWRITEV                      = 321\n\tSYS_RT_TGSIGQUEUEINFO            = 322\n\tSYS_FANOTIFY_INIT                = 323\n\tSYS_FANOTIFY_MARK                = 324\n\tSYS_PRLIMIT64                    = 325\n\tSYS_SOCKET                       = 326\n\tSYS_BIND                         = 327\n\tSYS_CONNECT                      = 328\n\tSYS_LISTEN                       = 329\n\tSYS_ACCEPT                       = 330\n\tSYS_GETSOCKNAME                  = 331\n\tSYS_GETPEERNAME                  = 332\n\tSYS_SOCKETPAIR                   = 333\n\tSYS_SEND                         = 334\n\tSYS_SENDTO                       = 335\n\tSYS_RECV                         = 336\n\tSYS_RECVFROM                     = 337\n\tSYS_SHUTDOWN                     = 338\n\tSYS_SETSOCKOPT                   = 339\n\tSYS_GETSOCKOPT                   = 340\n\tSYS_SENDMSG                      = 341\n\tSYS_RECVMSG                      = 342\n\tSYS_RECVMMSG                     = 343\n\tSYS_ACCEPT4                      = 344\n\tSYS_NAME_TO_HANDLE_AT            = 345\n\tSYS_OPEN_BY_HANDLE_AT            = 346\n\tSYS_CLOCK_ADJTIME                = 347\n\tSYS_SYNCFS                       = 348\n\tSYS_SENDMMSG                     = 349\n\tSYS_SETNS                        = 350\n\tSYS_PROCESS_VM_READV             = 351\n\tSYS_PROCESS_VM_WRITEV            = 352\n\tSYS_FINIT_MODULE                 = 353\n\tSYS_KCMP                         = 354\n\tSYS_SCHED_SETATTR                = 355\n\tSYS_SCHED_GETATTR                = 356\n\tSYS_RENAMEAT2                    = 357\n\tSYS_SECCOMP                      = 358\n\tSYS_GETRANDOM                    = 359\n\tSYS_MEMFD_CREATE                 = 360\n\tSYS_BPF                          = 361\n\tSYS_EXECVEAT                     = 362\n\tSYS_SWITCH_ENDIAN                = 363\n\tSYS_USERFAULTFD                  = 364\n\tSYS_MEMBARRIER                   = 365\n\tSYS_MLOCK2                       = 378\n\tSYS_COPY_FILE_RANGE              = 379\n\tSYS_PREADV2                      = 380\n\tSYS_PWRITEV2                     = 381\n\tSYS_KEXEC_FILE_LOAD              = 382\n\tSYS_STATX                        = 383\n\tSYS_PKEY_ALLOC                   = 384\n\tSYS_PKEY_FREE                    = 385\n\tSYS_PKEY_MPROTECT                = 386\n\tSYS_RSEQ                         = 387\n\tSYS_IO_PGETEVENTS                = 388\n\tSYS_SEMGET                       = 393\n\tSYS_SEMCTL                       = 394\n\tSYS_SHMGET                       = 395\n\tSYS_SHMCTL                       = 396\n\tSYS_SHMAT                        = 397\n\tSYS_SHMDT                        = 398\n\tSYS_MSGGET                       = 399\n\tSYS_MSGSND                       = 400\n\tSYS_MSGRCV                       = 401\n\tSYS_MSGCTL                       = 402\n\tSYS_CLOCK_GETTIME64              = 403\n\tSYS_CLOCK_SETTIME64              = 404\n\tSYS_CLOCK_ADJTIME64              = 405\n\tSYS_CLOCK_GETRES_TIME64          = 406\n\tSYS_CLOCK_NANOSLEEP_TIME64       = 407\n\tSYS_TIMER_GETTIME64              = 408\n\tSYS_TIMER_SETTIME64              = 409\n\tSYS_TIMERFD_GETTIME64            = 410\n\tSYS_TIMERFD_SETTIME64            = 411\n\tSYS_UTIMENSAT_TIME64             = 412\n\tSYS_PSELECT6_TIME64              = 413\n\tSYS_PPOLL_TIME64                 = 414\n\tSYS_IO_PGETEVENTS_TIME64         = 416\n\tSYS_RECVMMSG_TIME64              = 417\n\tSYS_MQ_TIMEDSEND_TIME64          = 418\n\tSYS_MQ_TIMEDRECEIVE_TIME64       = 419\n\tSYS_SEMTIMEDOP_TIME64            = 420\n\tSYS_RT_SIGTIMEDWAIT_TIME64       = 421\n\tSYS_FUTEX_TIME64                 = 422\n\tSYS_SCHED_RR_GET_INTERVAL_TIME64 = 423\n\tSYS_PIDFD_SEND_SIGNAL            = 424\n\tSYS_IO_URING_SETUP               = 425\n\tSYS_IO_URING_ENTER               = 426\n\tSYS_IO_URING_REGISTER            = 427\n\tSYS_OPEN_TREE                    = 428\n\tSYS_MOVE_MOUNT                   = 429\n\tSYS_FSOPEN                       = 430\n\tSYS_FSCONFIG                     = 431\n\tSYS_FSMOUNT                      = 432\n\tSYS_FSPICK                       = 433\n\tSYS_PIDFD_OPEN                   = 434\n\tSYS_CLONE3                       = 435\n\tSYS_CLOSE_RANGE                  = 436\n\tSYS_OPENAT2                      = 437\n\tSYS_PIDFD_GETFD                  = 438\n\tSYS_FACCESSAT2                   = 439\n\tSYS_PROCESS_MADVISE              = 440\n\tSYS_EPOLL_PWAIT2                 = 441\n\tSYS_MOUNT_SETATTR                = 442\n\tSYS_QUOTACTL_FD                  = 443\n\tSYS_LANDLOCK_CREATE_RULESET      = 444\n\tSYS_LANDLOCK_ADD_RULE            = 445\n\tSYS_LANDLOCK_RESTRICT_SELF       = 446\n\tSYS_PROCESS_MRELEASE             = 448\n\tSYS_FUTEX_WAITV                  = 449\n\tSYS_SET_MEMPOLICY_HOME_NODE      = 450\n\tSYS_CACHESTAT                    = 451\n\tSYS_FCHMODAT2                    = 452\n\tSYS_MAP_SHADOW_STACK             = 453\n\tSYS_FUTEX_WAKE                   = 454\n\tSYS_FUTEX_WAIT                   = 455\n\tSYS_FUTEX_REQUEUE                = 456\n\tSYS_STATMOUNT                    = 457\n\tSYS_LISTMOUNT                    = 458\n\tSYS_LSM_GET_SELF_ATTR            = 459\n\tSYS_LSM_SET_SELF_ATTR            = 460\n\tSYS_LSM_LIST_MODULES             = 461\n\tSYS_MSEAL                        = 462\n\tSYS_SETXATTRAT                   = 463\n\tSYS_GETXATTRAT                   = 464\n\tSYS_LISTXATTRAT                  = 465\n\tSYS_REMOVEXATTRAT                = 466\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/ppc64/include /tmp/ppc64/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc64 && linux\n\npackage unix\n\nconst (\n\tSYS_RESTART_SYSCALL         = 0\n\tSYS_EXIT                    = 1\n\tSYS_FORK                    = 2\n\tSYS_READ                    = 3\n\tSYS_WRITE                   = 4\n\tSYS_OPEN                    = 5\n\tSYS_CLOSE                   = 6\n\tSYS_WAITPID                 = 7\n\tSYS_CREAT                   = 8\n\tSYS_LINK                    = 9\n\tSYS_UNLINK                  = 10\n\tSYS_EXECVE                  = 11\n\tSYS_CHDIR                   = 12\n\tSYS_TIME                    = 13\n\tSYS_MKNOD                   = 14\n\tSYS_CHMOD                   = 15\n\tSYS_LCHOWN                  = 16\n\tSYS_BREAK                   = 17\n\tSYS_OLDSTAT                 = 18\n\tSYS_LSEEK                   = 19\n\tSYS_GETPID                  = 20\n\tSYS_MOUNT                   = 21\n\tSYS_UMOUNT                  = 22\n\tSYS_SETUID                  = 23\n\tSYS_GETUID                  = 24\n\tSYS_STIME                   = 25\n\tSYS_PTRACE                  = 26\n\tSYS_ALARM                   = 27\n\tSYS_OLDFSTAT                = 28\n\tSYS_PAUSE                   = 29\n\tSYS_UTIME                   = 30\n\tSYS_STTY                    = 31\n\tSYS_GTTY                    = 32\n\tSYS_ACCESS                  = 33\n\tSYS_NICE                    = 34\n\tSYS_FTIME                   = 35\n\tSYS_SYNC                    = 36\n\tSYS_KILL                    = 37\n\tSYS_RENAME                  = 38\n\tSYS_MKDIR                   = 39\n\tSYS_RMDIR                   = 40\n\tSYS_DUP                     = 41\n\tSYS_PIPE                    = 42\n\tSYS_TIMES                   = 43\n\tSYS_PROF                    = 44\n\tSYS_BRK                     = 45\n\tSYS_SETGID                  = 46\n\tSYS_GETGID                  = 47\n\tSYS_SIGNAL                  = 48\n\tSYS_GETEUID                 = 49\n\tSYS_GETEGID                 = 50\n\tSYS_ACCT                    = 51\n\tSYS_UMOUNT2                 = 52\n\tSYS_LOCK                    = 53\n\tSYS_IOCTL                   = 54\n\tSYS_FCNTL                   = 55\n\tSYS_MPX                     = 56\n\tSYS_SETPGID                 = 57\n\tSYS_ULIMIT                  = 58\n\tSYS_OLDOLDUNAME             = 59\n\tSYS_UMASK                   = 60\n\tSYS_CHROOT                  = 61\n\tSYS_USTAT                   = 62\n\tSYS_DUP2                    = 63\n\tSYS_GETPPID                 = 64\n\tSYS_GETPGRP                 = 65\n\tSYS_SETSID                  = 66\n\tSYS_SIGACTION               = 67\n\tSYS_SGETMASK                = 68\n\tSYS_SSETMASK                = 69\n\tSYS_SETREUID                = 70\n\tSYS_SETREGID                = 71\n\tSYS_SIGSUSPEND              = 72\n\tSYS_SIGPENDING              = 73\n\tSYS_SETHOSTNAME             = 74\n\tSYS_SETRLIMIT               = 75\n\tSYS_GETRLIMIT               = 76\n\tSYS_GETRUSAGE               = 77\n\tSYS_GETTIMEOFDAY            = 78\n\tSYS_SETTIMEOFDAY            = 79\n\tSYS_GETGROUPS               = 80\n\tSYS_SETGROUPS               = 81\n\tSYS_SELECT                  = 82\n\tSYS_SYMLINK                 = 83\n\tSYS_OLDLSTAT                = 84\n\tSYS_READLINK                = 85\n\tSYS_USELIB                  = 86\n\tSYS_SWAPON                  = 87\n\tSYS_REBOOT                  = 88\n\tSYS_READDIR                 = 89\n\tSYS_MMAP                    = 90\n\tSYS_MUNMAP                  = 91\n\tSYS_TRUNCATE                = 92\n\tSYS_FTRUNCATE               = 93\n\tSYS_FCHMOD                  = 94\n\tSYS_FCHOWN                  = 95\n\tSYS_GETPRIORITY             = 96\n\tSYS_SETPRIORITY             = 97\n\tSYS_PROFIL                  = 98\n\tSYS_STATFS                  = 99\n\tSYS_FSTATFS                 = 100\n\tSYS_IOPERM                  = 101\n\tSYS_SOCKETCALL              = 102\n\tSYS_SYSLOG                  = 103\n\tSYS_SETITIMER               = 104\n\tSYS_GETITIMER               = 105\n\tSYS_STAT                    = 106\n\tSYS_LSTAT                   = 107\n\tSYS_FSTAT                   = 108\n\tSYS_OLDUNAME                = 109\n\tSYS_IOPL                    = 110\n\tSYS_VHANGUP                 = 111\n\tSYS_IDLE                    = 112\n\tSYS_VM86                    = 113\n\tSYS_WAIT4                   = 114\n\tSYS_SWAPOFF                 = 115\n\tSYS_SYSINFO                 = 116\n\tSYS_IPC                     = 117\n\tSYS_FSYNC                   = 118\n\tSYS_SIGRETURN               = 119\n\tSYS_CLONE                   = 120\n\tSYS_SETDOMAINNAME           = 121\n\tSYS_UNAME                   = 122\n\tSYS_MODIFY_LDT              = 123\n\tSYS_ADJTIMEX                = 124\n\tSYS_MPROTECT                = 125\n\tSYS_SIGPROCMASK             = 126\n\tSYS_CREATE_MODULE           = 127\n\tSYS_INIT_MODULE             = 128\n\tSYS_DELETE_MODULE           = 129\n\tSYS_GET_KERNEL_SYMS         = 130\n\tSYS_QUOTACTL                = 131\n\tSYS_GETPGID                 = 132\n\tSYS_FCHDIR                  = 133\n\tSYS_BDFLUSH                 = 134\n\tSYS_SYSFS                   = 135\n\tSYS_PERSONALITY             = 136\n\tSYS_AFS_SYSCALL             = 137\n\tSYS_SETFSUID                = 138\n\tSYS_SETFSGID                = 139\n\tSYS__LLSEEK                 = 140\n\tSYS_GETDENTS                = 141\n\tSYS__NEWSELECT              = 142\n\tSYS_FLOCK                   = 143\n\tSYS_MSYNC                   = 144\n\tSYS_READV                   = 145\n\tSYS_WRITEV                  = 146\n\tSYS_GETSID                  = 147\n\tSYS_FDATASYNC               = 148\n\tSYS__SYSCTL                 = 149\n\tSYS_MLOCK                   = 150\n\tSYS_MUNLOCK                 = 151\n\tSYS_MLOCKALL                = 152\n\tSYS_MUNLOCKALL              = 153\n\tSYS_SCHED_SETPARAM          = 154\n\tSYS_SCHED_GETPARAM          = 155\n\tSYS_SCHED_SETSCHEDULER      = 156\n\tSYS_SCHED_GETSCHEDULER      = 157\n\tSYS_SCHED_YIELD             = 158\n\tSYS_SCHED_GET_PRIORITY_MAX  = 159\n\tSYS_SCHED_GET_PRIORITY_MIN  = 160\n\tSYS_SCHED_RR_GET_INTERVAL   = 161\n\tSYS_NANOSLEEP               = 162\n\tSYS_MREMAP                  = 163\n\tSYS_SETRESUID               = 164\n\tSYS_GETRESUID               = 165\n\tSYS_QUERY_MODULE            = 166\n\tSYS_POLL                    = 167\n\tSYS_NFSSERVCTL              = 168\n\tSYS_SETRESGID               = 169\n\tSYS_GETRESGID               = 170\n\tSYS_PRCTL                   = 171\n\tSYS_RT_SIGRETURN            = 172\n\tSYS_RT_SIGACTION            = 173\n\tSYS_RT_SIGPROCMASK          = 174\n\tSYS_RT_SIGPENDING           = 175\n\tSYS_RT_SIGTIMEDWAIT         = 176\n\tSYS_RT_SIGQUEUEINFO         = 177\n\tSYS_RT_SIGSUSPEND           = 178\n\tSYS_PREAD64                 = 179\n\tSYS_PWRITE64                = 180\n\tSYS_CHOWN                   = 181\n\tSYS_GETCWD                  = 182\n\tSYS_CAPGET                  = 183\n\tSYS_CAPSET                  = 184\n\tSYS_SIGALTSTACK             = 185\n\tSYS_SENDFILE                = 186\n\tSYS_GETPMSG                 = 187\n\tSYS_PUTPMSG                 = 188\n\tSYS_VFORK                   = 189\n\tSYS_UGETRLIMIT              = 190\n\tSYS_READAHEAD               = 191\n\tSYS_PCICONFIG_READ          = 198\n\tSYS_PCICONFIG_WRITE         = 199\n\tSYS_PCICONFIG_IOBASE        = 200\n\tSYS_MULTIPLEXER             = 201\n\tSYS_GETDENTS64              = 202\n\tSYS_PIVOT_ROOT              = 203\n\tSYS_MADVISE                 = 205\n\tSYS_MINCORE                 = 206\n\tSYS_GETTID                  = 207\n\tSYS_TKILL                   = 208\n\tSYS_SETXATTR                = 209\n\tSYS_LSETXATTR               = 210\n\tSYS_FSETXATTR               = 211\n\tSYS_GETXATTR                = 212\n\tSYS_LGETXATTR               = 213\n\tSYS_FGETXATTR               = 214\n\tSYS_LISTXATTR               = 215\n\tSYS_LLISTXATTR              = 216\n\tSYS_FLISTXATTR              = 217\n\tSYS_REMOVEXATTR             = 218\n\tSYS_LREMOVEXATTR            = 219\n\tSYS_FREMOVEXATTR            = 220\n\tSYS_FUTEX                   = 221\n\tSYS_SCHED_SETAFFINITY       = 222\n\tSYS_SCHED_GETAFFINITY       = 223\n\tSYS_TUXCALL                 = 225\n\tSYS_IO_SETUP                = 227\n\tSYS_IO_DESTROY              = 228\n\tSYS_IO_GETEVENTS            = 229\n\tSYS_IO_SUBMIT               = 230\n\tSYS_IO_CANCEL               = 231\n\tSYS_SET_TID_ADDRESS         = 232\n\tSYS_FADVISE64               = 233\n\tSYS_EXIT_GROUP              = 234\n\tSYS_LOOKUP_DCOOKIE          = 235\n\tSYS_EPOLL_CREATE            = 236\n\tSYS_EPOLL_CTL               = 237\n\tSYS_EPOLL_WAIT              = 238\n\tSYS_REMAP_FILE_PAGES        = 239\n\tSYS_TIMER_CREATE            = 240\n\tSYS_TIMER_SETTIME           = 241\n\tSYS_TIMER_GETTIME           = 242\n\tSYS_TIMER_GETOVERRUN        = 243\n\tSYS_TIMER_DELETE            = 244\n\tSYS_CLOCK_SETTIME           = 245\n\tSYS_CLOCK_GETTIME           = 246\n\tSYS_CLOCK_GETRES            = 247\n\tSYS_CLOCK_NANOSLEEP         = 248\n\tSYS_SWAPCONTEXT             = 249\n\tSYS_TGKILL                  = 250\n\tSYS_UTIMES                  = 251\n\tSYS_STATFS64                = 252\n\tSYS_FSTATFS64               = 253\n\tSYS_RTAS                    = 255\n\tSYS_SYS_DEBUG_SETCONTEXT    = 256\n\tSYS_MIGRATE_PAGES           = 258\n\tSYS_MBIND                   = 259\n\tSYS_GET_MEMPOLICY           = 260\n\tSYS_SET_MEMPOLICY           = 261\n\tSYS_MQ_OPEN                 = 262\n\tSYS_MQ_UNLINK               = 263\n\tSYS_MQ_TIMEDSEND            = 264\n\tSYS_MQ_TIMEDRECEIVE         = 265\n\tSYS_MQ_NOTIFY               = 266\n\tSYS_MQ_GETSETATTR           = 267\n\tSYS_KEXEC_LOAD              = 268\n\tSYS_ADD_KEY                 = 269\n\tSYS_REQUEST_KEY             = 270\n\tSYS_KEYCTL                  = 271\n\tSYS_WAITID                  = 272\n\tSYS_IOPRIO_SET              = 273\n\tSYS_IOPRIO_GET              = 274\n\tSYS_INOTIFY_INIT            = 275\n\tSYS_INOTIFY_ADD_WATCH       = 276\n\tSYS_INOTIFY_RM_WATCH        = 277\n\tSYS_SPU_RUN                 = 278\n\tSYS_SPU_CREATE              = 279\n\tSYS_PSELECT6                = 280\n\tSYS_PPOLL                   = 281\n\tSYS_UNSHARE                 = 282\n\tSYS_SPLICE                  = 283\n\tSYS_TEE                     = 284\n\tSYS_VMSPLICE                = 285\n\tSYS_OPENAT                  = 286\n\tSYS_MKDIRAT                 = 287\n\tSYS_MKNODAT                 = 288\n\tSYS_FCHOWNAT                = 289\n\tSYS_FUTIMESAT               = 290\n\tSYS_NEWFSTATAT              = 291\n\tSYS_UNLINKAT                = 292\n\tSYS_RENAMEAT                = 293\n\tSYS_LINKAT                  = 294\n\tSYS_SYMLINKAT               = 295\n\tSYS_READLINKAT              = 296\n\tSYS_FCHMODAT                = 297\n\tSYS_FACCESSAT               = 298\n\tSYS_GET_ROBUST_LIST         = 299\n\tSYS_SET_ROBUST_LIST         = 300\n\tSYS_MOVE_PAGES              = 301\n\tSYS_GETCPU                  = 302\n\tSYS_EPOLL_PWAIT             = 303\n\tSYS_UTIMENSAT               = 304\n\tSYS_SIGNALFD                = 305\n\tSYS_TIMERFD_CREATE          = 306\n\tSYS_EVENTFD                 = 307\n\tSYS_SYNC_FILE_RANGE2        = 308\n\tSYS_FALLOCATE               = 309\n\tSYS_SUBPAGE_PROT            = 310\n\tSYS_TIMERFD_SETTIME         = 311\n\tSYS_TIMERFD_GETTIME         = 312\n\tSYS_SIGNALFD4               = 313\n\tSYS_EVENTFD2                = 314\n\tSYS_EPOLL_CREATE1           = 315\n\tSYS_DUP3                    = 316\n\tSYS_PIPE2                   = 317\n\tSYS_INOTIFY_INIT1           = 318\n\tSYS_PERF_EVENT_OPEN         = 319\n\tSYS_PREADV                  = 320\n\tSYS_PWRITEV                 = 321\n\tSYS_RT_TGSIGQUEUEINFO       = 322\n\tSYS_FANOTIFY_INIT           = 323\n\tSYS_FANOTIFY_MARK           = 324\n\tSYS_PRLIMIT64               = 325\n\tSYS_SOCKET                  = 326\n\tSYS_BIND                    = 327\n\tSYS_CONNECT                 = 328\n\tSYS_LISTEN                  = 329\n\tSYS_ACCEPT                  = 330\n\tSYS_GETSOCKNAME             = 331\n\tSYS_GETPEERNAME             = 332\n\tSYS_SOCKETPAIR              = 333\n\tSYS_SEND                    = 334\n\tSYS_SENDTO                  = 335\n\tSYS_RECV                    = 336\n\tSYS_RECVFROM                = 337\n\tSYS_SHUTDOWN                = 338\n\tSYS_SETSOCKOPT              = 339\n\tSYS_GETSOCKOPT              = 340\n\tSYS_SENDMSG                 = 341\n\tSYS_RECVMSG                 = 342\n\tSYS_RECVMMSG                = 343\n\tSYS_ACCEPT4                 = 344\n\tSYS_NAME_TO_HANDLE_AT       = 345\n\tSYS_OPEN_BY_HANDLE_AT       = 346\n\tSYS_CLOCK_ADJTIME           = 347\n\tSYS_SYNCFS                  = 348\n\tSYS_SENDMMSG                = 349\n\tSYS_SETNS                   = 350\n\tSYS_PROCESS_VM_READV        = 351\n\tSYS_PROCESS_VM_WRITEV       = 352\n\tSYS_FINIT_MODULE            = 353\n\tSYS_KCMP                    = 354\n\tSYS_SCHED_SETATTR           = 355\n\tSYS_SCHED_GETATTR           = 356\n\tSYS_RENAMEAT2               = 357\n\tSYS_SECCOMP                 = 358\n\tSYS_GETRANDOM               = 359\n\tSYS_MEMFD_CREATE            = 360\n\tSYS_BPF                     = 361\n\tSYS_EXECVEAT                = 362\n\tSYS_SWITCH_ENDIAN           = 363\n\tSYS_USERFAULTFD             = 364\n\tSYS_MEMBARRIER              = 365\n\tSYS_MLOCK2                  = 378\n\tSYS_COPY_FILE_RANGE         = 379\n\tSYS_PREADV2                 = 380\n\tSYS_PWRITEV2                = 381\n\tSYS_KEXEC_FILE_LOAD         = 382\n\tSYS_STATX                   = 383\n\tSYS_PKEY_ALLOC              = 384\n\tSYS_PKEY_FREE               = 385\n\tSYS_PKEY_MPROTECT           = 386\n\tSYS_RSEQ                    = 387\n\tSYS_IO_PGETEVENTS           = 388\n\tSYS_SEMTIMEDOP              = 392\n\tSYS_SEMGET                  = 393\n\tSYS_SEMCTL                  = 394\n\tSYS_SHMGET                  = 395\n\tSYS_SHMCTL                  = 396\n\tSYS_SHMAT                   = 397\n\tSYS_SHMDT                   = 398\n\tSYS_MSGGET                  = 399\n\tSYS_MSGSND                  = 400\n\tSYS_MSGRCV                  = 401\n\tSYS_MSGCTL                  = 402\n\tSYS_PIDFD_SEND_SIGNAL       = 424\n\tSYS_IO_URING_SETUP          = 425\n\tSYS_IO_URING_ENTER          = 426\n\tSYS_IO_URING_REGISTER       = 427\n\tSYS_OPEN_TREE               = 428\n\tSYS_MOVE_MOUNT              = 429\n\tSYS_FSOPEN                  = 430\n\tSYS_FSCONFIG                = 431\n\tSYS_FSMOUNT                 = 432\n\tSYS_FSPICK                  = 433\n\tSYS_PIDFD_OPEN              = 434\n\tSYS_CLONE3                  = 435\n\tSYS_CLOSE_RANGE             = 436\n\tSYS_OPENAT2                 = 437\n\tSYS_PIDFD_GETFD             = 438\n\tSYS_FACCESSAT2              = 439\n\tSYS_PROCESS_MADVISE         = 440\n\tSYS_EPOLL_PWAIT2            = 441\n\tSYS_MOUNT_SETATTR           = 442\n\tSYS_QUOTACTL_FD             = 443\n\tSYS_LANDLOCK_CREATE_RULESET = 444\n\tSYS_LANDLOCK_ADD_RULE       = 445\n\tSYS_LANDLOCK_RESTRICT_SELF  = 446\n\tSYS_PROCESS_MRELEASE        = 448\n\tSYS_FUTEX_WAITV             = 449\n\tSYS_SET_MEMPOLICY_HOME_NODE = 450\n\tSYS_CACHESTAT               = 451\n\tSYS_FCHMODAT2               = 452\n\tSYS_MAP_SHADOW_STACK        = 453\n\tSYS_FUTEX_WAKE              = 454\n\tSYS_FUTEX_WAIT              = 455\n\tSYS_FUTEX_REQUEUE           = 456\n\tSYS_STATMOUNT               = 457\n\tSYS_LISTMOUNT               = 458\n\tSYS_LSM_GET_SELF_ATTR       = 459\n\tSYS_LSM_SET_SELF_ATTR       = 460\n\tSYS_LSM_LIST_MODULES        = 461\n\tSYS_MSEAL                   = 462\n\tSYS_SETXATTRAT              = 463\n\tSYS_GETXATTRAT              = 464\n\tSYS_LISTXATTRAT             = 465\n\tSYS_REMOVEXATTRAT           = 466\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/ppc64le/include /tmp/ppc64le/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc64le && linux\n\npackage unix\n\nconst (\n\tSYS_RESTART_SYSCALL         = 0\n\tSYS_EXIT                    = 1\n\tSYS_FORK                    = 2\n\tSYS_READ                    = 3\n\tSYS_WRITE                   = 4\n\tSYS_OPEN                    = 5\n\tSYS_CLOSE                   = 6\n\tSYS_WAITPID                 = 7\n\tSYS_CREAT                   = 8\n\tSYS_LINK                    = 9\n\tSYS_UNLINK                  = 10\n\tSYS_EXECVE                  = 11\n\tSYS_CHDIR                   = 12\n\tSYS_TIME                    = 13\n\tSYS_MKNOD                   = 14\n\tSYS_CHMOD                   = 15\n\tSYS_LCHOWN                  = 16\n\tSYS_BREAK                   = 17\n\tSYS_OLDSTAT                 = 18\n\tSYS_LSEEK                   = 19\n\tSYS_GETPID                  = 20\n\tSYS_MOUNT                   = 21\n\tSYS_UMOUNT                  = 22\n\tSYS_SETUID                  = 23\n\tSYS_GETUID                  = 24\n\tSYS_STIME                   = 25\n\tSYS_PTRACE                  = 26\n\tSYS_ALARM                   = 27\n\tSYS_OLDFSTAT                = 28\n\tSYS_PAUSE                   = 29\n\tSYS_UTIME                   = 30\n\tSYS_STTY                    = 31\n\tSYS_GTTY                    = 32\n\tSYS_ACCESS                  = 33\n\tSYS_NICE                    = 34\n\tSYS_FTIME                   = 35\n\tSYS_SYNC                    = 36\n\tSYS_KILL                    = 37\n\tSYS_RENAME                  = 38\n\tSYS_MKDIR                   = 39\n\tSYS_RMDIR                   = 40\n\tSYS_DUP                     = 41\n\tSYS_PIPE                    = 42\n\tSYS_TIMES                   = 43\n\tSYS_PROF                    = 44\n\tSYS_BRK                     = 45\n\tSYS_SETGID                  = 46\n\tSYS_GETGID                  = 47\n\tSYS_SIGNAL                  = 48\n\tSYS_GETEUID                 = 49\n\tSYS_GETEGID                 = 50\n\tSYS_ACCT                    = 51\n\tSYS_UMOUNT2                 = 52\n\tSYS_LOCK                    = 53\n\tSYS_IOCTL                   = 54\n\tSYS_FCNTL                   = 55\n\tSYS_MPX                     = 56\n\tSYS_SETPGID                 = 57\n\tSYS_ULIMIT                  = 58\n\tSYS_OLDOLDUNAME             = 59\n\tSYS_UMASK                   = 60\n\tSYS_CHROOT                  = 61\n\tSYS_USTAT                   = 62\n\tSYS_DUP2                    = 63\n\tSYS_GETPPID                 = 64\n\tSYS_GETPGRP                 = 65\n\tSYS_SETSID                  = 66\n\tSYS_SIGACTION               = 67\n\tSYS_SGETMASK                = 68\n\tSYS_SSETMASK                = 69\n\tSYS_SETREUID                = 70\n\tSYS_SETREGID                = 71\n\tSYS_SIGSUSPEND              = 72\n\tSYS_SIGPENDING              = 73\n\tSYS_SETHOSTNAME             = 74\n\tSYS_SETRLIMIT               = 75\n\tSYS_GETRLIMIT               = 76\n\tSYS_GETRUSAGE               = 77\n\tSYS_GETTIMEOFDAY            = 78\n\tSYS_SETTIMEOFDAY            = 79\n\tSYS_GETGROUPS               = 80\n\tSYS_SETGROUPS               = 81\n\tSYS_SELECT                  = 82\n\tSYS_SYMLINK                 = 83\n\tSYS_OLDLSTAT                = 84\n\tSYS_READLINK                = 85\n\tSYS_USELIB                  = 86\n\tSYS_SWAPON                  = 87\n\tSYS_REBOOT                  = 88\n\tSYS_READDIR                 = 89\n\tSYS_MMAP                    = 90\n\tSYS_MUNMAP                  = 91\n\tSYS_TRUNCATE                = 92\n\tSYS_FTRUNCATE               = 93\n\tSYS_FCHMOD                  = 94\n\tSYS_FCHOWN                  = 95\n\tSYS_GETPRIORITY             = 96\n\tSYS_SETPRIORITY             = 97\n\tSYS_PROFIL                  = 98\n\tSYS_STATFS                  = 99\n\tSYS_FSTATFS                 = 100\n\tSYS_IOPERM                  = 101\n\tSYS_SOCKETCALL              = 102\n\tSYS_SYSLOG                  = 103\n\tSYS_SETITIMER               = 104\n\tSYS_GETITIMER               = 105\n\tSYS_STAT                    = 106\n\tSYS_LSTAT                   = 107\n\tSYS_FSTAT                   = 108\n\tSYS_OLDUNAME                = 109\n\tSYS_IOPL                    = 110\n\tSYS_VHANGUP                 = 111\n\tSYS_IDLE                    = 112\n\tSYS_VM86                    = 113\n\tSYS_WAIT4                   = 114\n\tSYS_SWAPOFF                 = 115\n\tSYS_SYSINFO                 = 116\n\tSYS_IPC                     = 117\n\tSYS_FSYNC                   = 118\n\tSYS_SIGRETURN               = 119\n\tSYS_CLONE                   = 120\n\tSYS_SETDOMAINNAME           = 121\n\tSYS_UNAME                   = 122\n\tSYS_MODIFY_LDT              = 123\n\tSYS_ADJTIMEX                = 124\n\tSYS_MPROTECT                = 125\n\tSYS_SIGPROCMASK             = 126\n\tSYS_CREATE_MODULE           = 127\n\tSYS_INIT_MODULE             = 128\n\tSYS_DELETE_MODULE           = 129\n\tSYS_GET_KERNEL_SYMS         = 130\n\tSYS_QUOTACTL                = 131\n\tSYS_GETPGID                 = 132\n\tSYS_FCHDIR                  = 133\n\tSYS_BDFLUSH                 = 134\n\tSYS_SYSFS                   = 135\n\tSYS_PERSONALITY             = 136\n\tSYS_AFS_SYSCALL             = 137\n\tSYS_SETFSUID                = 138\n\tSYS_SETFSGID                = 139\n\tSYS__LLSEEK                 = 140\n\tSYS_GETDENTS                = 141\n\tSYS__NEWSELECT              = 142\n\tSYS_FLOCK                   = 143\n\tSYS_MSYNC                   = 144\n\tSYS_READV                   = 145\n\tSYS_WRITEV                  = 146\n\tSYS_GETSID                  = 147\n\tSYS_FDATASYNC               = 148\n\tSYS__SYSCTL                 = 149\n\tSYS_MLOCK                   = 150\n\tSYS_MUNLOCK                 = 151\n\tSYS_MLOCKALL                = 152\n\tSYS_MUNLOCKALL              = 153\n\tSYS_SCHED_SETPARAM          = 154\n\tSYS_SCHED_GETPARAM          = 155\n\tSYS_SCHED_SETSCHEDULER      = 156\n\tSYS_SCHED_GETSCHEDULER      = 157\n\tSYS_SCHED_YIELD             = 158\n\tSYS_SCHED_GET_PRIORITY_MAX  = 159\n\tSYS_SCHED_GET_PRIORITY_MIN  = 160\n\tSYS_SCHED_RR_GET_INTERVAL   = 161\n\tSYS_NANOSLEEP               = 162\n\tSYS_MREMAP                  = 163\n\tSYS_SETRESUID               = 164\n\tSYS_GETRESUID               = 165\n\tSYS_QUERY_MODULE            = 166\n\tSYS_POLL                    = 167\n\tSYS_NFSSERVCTL              = 168\n\tSYS_SETRESGID               = 169\n\tSYS_GETRESGID               = 170\n\tSYS_PRCTL                   = 171\n\tSYS_RT_SIGRETURN            = 172\n\tSYS_RT_SIGACTION            = 173\n\tSYS_RT_SIGPROCMASK          = 174\n\tSYS_RT_SIGPENDING           = 175\n\tSYS_RT_SIGTIMEDWAIT         = 176\n\tSYS_RT_SIGQUEUEINFO         = 177\n\tSYS_RT_SIGSUSPEND           = 178\n\tSYS_PREAD64                 = 179\n\tSYS_PWRITE64                = 180\n\tSYS_CHOWN                   = 181\n\tSYS_GETCWD                  = 182\n\tSYS_CAPGET                  = 183\n\tSYS_CAPSET                  = 184\n\tSYS_SIGALTSTACK             = 185\n\tSYS_SENDFILE                = 186\n\tSYS_GETPMSG                 = 187\n\tSYS_PUTPMSG                 = 188\n\tSYS_VFORK                   = 189\n\tSYS_UGETRLIMIT              = 190\n\tSYS_READAHEAD               = 191\n\tSYS_PCICONFIG_READ          = 198\n\tSYS_PCICONFIG_WRITE         = 199\n\tSYS_PCICONFIG_IOBASE        = 200\n\tSYS_MULTIPLEXER             = 201\n\tSYS_GETDENTS64              = 202\n\tSYS_PIVOT_ROOT              = 203\n\tSYS_MADVISE                 = 205\n\tSYS_MINCORE                 = 206\n\tSYS_GETTID                  = 207\n\tSYS_TKILL                   = 208\n\tSYS_SETXATTR                = 209\n\tSYS_LSETXATTR               = 210\n\tSYS_FSETXATTR               = 211\n\tSYS_GETXATTR                = 212\n\tSYS_LGETXATTR               = 213\n\tSYS_FGETXATTR               = 214\n\tSYS_LISTXATTR               = 215\n\tSYS_LLISTXATTR              = 216\n\tSYS_FLISTXATTR              = 217\n\tSYS_REMOVEXATTR             = 218\n\tSYS_LREMOVEXATTR            = 219\n\tSYS_FREMOVEXATTR            = 220\n\tSYS_FUTEX                   = 221\n\tSYS_SCHED_SETAFFINITY       = 222\n\tSYS_SCHED_GETAFFINITY       = 223\n\tSYS_TUXCALL                 = 225\n\tSYS_IO_SETUP                = 227\n\tSYS_IO_DESTROY              = 228\n\tSYS_IO_GETEVENTS            = 229\n\tSYS_IO_SUBMIT               = 230\n\tSYS_IO_CANCEL               = 231\n\tSYS_SET_TID_ADDRESS         = 232\n\tSYS_FADVISE64               = 233\n\tSYS_EXIT_GROUP              = 234\n\tSYS_LOOKUP_DCOOKIE          = 235\n\tSYS_EPOLL_CREATE            = 236\n\tSYS_EPOLL_CTL               = 237\n\tSYS_EPOLL_WAIT              = 238\n\tSYS_REMAP_FILE_PAGES        = 239\n\tSYS_TIMER_CREATE            = 240\n\tSYS_TIMER_SETTIME           = 241\n\tSYS_TIMER_GETTIME           = 242\n\tSYS_TIMER_GETOVERRUN        = 243\n\tSYS_TIMER_DELETE            = 244\n\tSYS_CLOCK_SETTIME           = 245\n\tSYS_CLOCK_GETTIME           = 246\n\tSYS_CLOCK_GETRES            = 247\n\tSYS_CLOCK_NANOSLEEP         = 248\n\tSYS_SWAPCONTEXT             = 249\n\tSYS_TGKILL                  = 250\n\tSYS_UTIMES                  = 251\n\tSYS_STATFS64                = 252\n\tSYS_FSTATFS64               = 253\n\tSYS_RTAS                    = 255\n\tSYS_SYS_DEBUG_SETCONTEXT    = 256\n\tSYS_MIGRATE_PAGES           = 258\n\tSYS_MBIND                   = 259\n\tSYS_GET_MEMPOLICY           = 260\n\tSYS_SET_MEMPOLICY           = 261\n\tSYS_MQ_OPEN                 = 262\n\tSYS_MQ_UNLINK               = 263\n\tSYS_MQ_TIMEDSEND            = 264\n\tSYS_MQ_TIMEDRECEIVE         = 265\n\tSYS_MQ_NOTIFY               = 266\n\tSYS_MQ_GETSETATTR           = 267\n\tSYS_KEXEC_LOAD              = 268\n\tSYS_ADD_KEY                 = 269\n\tSYS_REQUEST_KEY             = 270\n\tSYS_KEYCTL                  = 271\n\tSYS_WAITID                  = 272\n\tSYS_IOPRIO_SET              = 273\n\tSYS_IOPRIO_GET              = 274\n\tSYS_INOTIFY_INIT            = 275\n\tSYS_INOTIFY_ADD_WATCH       = 276\n\tSYS_INOTIFY_RM_WATCH        = 277\n\tSYS_SPU_RUN                 = 278\n\tSYS_SPU_CREATE              = 279\n\tSYS_PSELECT6                = 280\n\tSYS_PPOLL                   = 281\n\tSYS_UNSHARE                 = 282\n\tSYS_SPLICE                  = 283\n\tSYS_TEE                     = 284\n\tSYS_VMSPLICE                = 285\n\tSYS_OPENAT                  = 286\n\tSYS_MKDIRAT                 = 287\n\tSYS_MKNODAT                 = 288\n\tSYS_FCHOWNAT                = 289\n\tSYS_FUTIMESAT               = 290\n\tSYS_NEWFSTATAT              = 291\n\tSYS_UNLINKAT                = 292\n\tSYS_RENAMEAT                = 293\n\tSYS_LINKAT                  = 294\n\tSYS_SYMLINKAT               = 295\n\tSYS_READLINKAT              = 296\n\tSYS_FCHMODAT                = 297\n\tSYS_FACCESSAT               = 298\n\tSYS_GET_ROBUST_LIST         = 299\n\tSYS_SET_ROBUST_LIST         = 300\n\tSYS_MOVE_PAGES              = 301\n\tSYS_GETCPU                  = 302\n\tSYS_EPOLL_PWAIT             = 303\n\tSYS_UTIMENSAT               = 304\n\tSYS_SIGNALFD                = 305\n\tSYS_TIMERFD_CREATE          = 306\n\tSYS_EVENTFD                 = 307\n\tSYS_SYNC_FILE_RANGE2        = 308\n\tSYS_FALLOCATE               = 309\n\tSYS_SUBPAGE_PROT            = 310\n\tSYS_TIMERFD_SETTIME         = 311\n\tSYS_TIMERFD_GETTIME         = 312\n\tSYS_SIGNALFD4               = 313\n\tSYS_EVENTFD2                = 314\n\tSYS_EPOLL_CREATE1           = 315\n\tSYS_DUP3                    = 316\n\tSYS_PIPE2                   = 317\n\tSYS_INOTIFY_INIT1           = 318\n\tSYS_PERF_EVENT_OPEN         = 319\n\tSYS_PREADV                  = 320\n\tSYS_PWRITEV                 = 321\n\tSYS_RT_TGSIGQUEUEINFO       = 322\n\tSYS_FANOTIFY_INIT           = 323\n\tSYS_FANOTIFY_MARK           = 324\n\tSYS_PRLIMIT64               = 325\n\tSYS_SOCKET                  = 326\n\tSYS_BIND                    = 327\n\tSYS_CONNECT                 = 328\n\tSYS_LISTEN                  = 329\n\tSYS_ACCEPT                  = 330\n\tSYS_GETSOCKNAME             = 331\n\tSYS_GETPEERNAME             = 332\n\tSYS_SOCKETPAIR              = 333\n\tSYS_SEND                    = 334\n\tSYS_SENDTO                  = 335\n\tSYS_RECV                    = 336\n\tSYS_RECVFROM                = 337\n\tSYS_SHUTDOWN                = 338\n\tSYS_SETSOCKOPT              = 339\n\tSYS_GETSOCKOPT              = 340\n\tSYS_SENDMSG                 = 341\n\tSYS_RECVMSG                 = 342\n\tSYS_RECVMMSG                = 343\n\tSYS_ACCEPT4                 = 344\n\tSYS_NAME_TO_HANDLE_AT       = 345\n\tSYS_OPEN_BY_HANDLE_AT       = 346\n\tSYS_CLOCK_ADJTIME           = 347\n\tSYS_SYNCFS                  = 348\n\tSYS_SENDMMSG                = 349\n\tSYS_SETNS                   = 350\n\tSYS_PROCESS_VM_READV        = 351\n\tSYS_PROCESS_VM_WRITEV       = 352\n\tSYS_FINIT_MODULE            = 353\n\tSYS_KCMP                    = 354\n\tSYS_SCHED_SETATTR           = 355\n\tSYS_SCHED_GETATTR           = 356\n\tSYS_RENAMEAT2               = 357\n\tSYS_SECCOMP                 = 358\n\tSYS_GETRANDOM               = 359\n\tSYS_MEMFD_CREATE            = 360\n\tSYS_BPF                     = 361\n\tSYS_EXECVEAT                = 362\n\tSYS_SWITCH_ENDIAN           = 363\n\tSYS_USERFAULTFD             = 364\n\tSYS_MEMBARRIER              = 365\n\tSYS_MLOCK2                  = 378\n\tSYS_COPY_FILE_RANGE         = 379\n\tSYS_PREADV2                 = 380\n\tSYS_PWRITEV2                = 381\n\tSYS_KEXEC_FILE_LOAD         = 382\n\tSYS_STATX                   = 383\n\tSYS_PKEY_ALLOC              = 384\n\tSYS_PKEY_FREE               = 385\n\tSYS_PKEY_MPROTECT           = 386\n\tSYS_RSEQ                    = 387\n\tSYS_IO_PGETEVENTS           = 388\n\tSYS_SEMTIMEDOP              = 392\n\tSYS_SEMGET                  = 393\n\tSYS_SEMCTL                  = 394\n\tSYS_SHMGET                  = 395\n\tSYS_SHMCTL                  = 396\n\tSYS_SHMAT                   = 397\n\tSYS_SHMDT                   = 398\n\tSYS_MSGGET                  = 399\n\tSYS_MSGSND                  = 400\n\tSYS_MSGRCV                  = 401\n\tSYS_MSGCTL                  = 402\n\tSYS_PIDFD_SEND_SIGNAL       = 424\n\tSYS_IO_URING_SETUP          = 425\n\tSYS_IO_URING_ENTER          = 426\n\tSYS_IO_URING_REGISTER       = 427\n\tSYS_OPEN_TREE               = 428\n\tSYS_MOVE_MOUNT              = 429\n\tSYS_FSOPEN                  = 430\n\tSYS_FSCONFIG                = 431\n\tSYS_FSMOUNT                 = 432\n\tSYS_FSPICK                  = 433\n\tSYS_PIDFD_OPEN              = 434\n\tSYS_CLONE3                  = 435\n\tSYS_CLOSE_RANGE             = 436\n\tSYS_OPENAT2                 = 437\n\tSYS_PIDFD_GETFD             = 438\n\tSYS_FACCESSAT2              = 439\n\tSYS_PROCESS_MADVISE         = 440\n\tSYS_EPOLL_PWAIT2            = 441\n\tSYS_MOUNT_SETATTR           = 442\n\tSYS_QUOTACTL_FD             = 443\n\tSYS_LANDLOCK_CREATE_RULESET = 444\n\tSYS_LANDLOCK_ADD_RULE       = 445\n\tSYS_LANDLOCK_RESTRICT_SELF  = 446\n\tSYS_PROCESS_MRELEASE        = 448\n\tSYS_FUTEX_WAITV             = 449\n\tSYS_SET_MEMPOLICY_HOME_NODE = 450\n\tSYS_CACHESTAT               = 451\n\tSYS_FCHMODAT2               = 452\n\tSYS_MAP_SHADOW_STACK        = 453\n\tSYS_FUTEX_WAKE              = 454\n\tSYS_FUTEX_WAIT              = 455\n\tSYS_FUTEX_REQUEUE           = 456\n\tSYS_STATMOUNT               = 457\n\tSYS_LISTMOUNT               = 458\n\tSYS_LSM_GET_SELF_ATTR       = 459\n\tSYS_LSM_SET_SELF_ATTR       = 460\n\tSYS_LSM_LIST_MODULES        = 461\n\tSYS_MSEAL                   = 462\n\tSYS_SETXATTRAT              = 463\n\tSYS_GETXATTRAT              = 464\n\tSYS_LISTXATTRAT             = 465\n\tSYS_REMOVEXATTRAT           = 466\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/riscv64/include /tmp/riscv64/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build riscv64 && linux\n\npackage unix\n\nconst (\n\tSYS_IO_SETUP                = 0\n\tSYS_IO_DESTROY              = 1\n\tSYS_IO_SUBMIT               = 2\n\tSYS_IO_CANCEL               = 3\n\tSYS_IO_GETEVENTS            = 4\n\tSYS_SETXATTR                = 5\n\tSYS_LSETXATTR               = 6\n\tSYS_FSETXATTR               = 7\n\tSYS_GETXATTR                = 8\n\tSYS_LGETXATTR               = 9\n\tSYS_FGETXATTR               = 10\n\tSYS_LISTXATTR               = 11\n\tSYS_LLISTXATTR              = 12\n\tSYS_FLISTXATTR              = 13\n\tSYS_REMOVEXATTR             = 14\n\tSYS_LREMOVEXATTR            = 15\n\tSYS_FREMOVEXATTR            = 16\n\tSYS_GETCWD                  = 17\n\tSYS_LOOKUP_DCOOKIE          = 18\n\tSYS_EVENTFD2                = 19\n\tSYS_EPOLL_CREATE1           = 20\n\tSYS_EPOLL_CTL               = 21\n\tSYS_EPOLL_PWAIT             = 22\n\tSYS_DUP                     = 23\n\tSYS_DUP3                    = 24\n\tSYS_FCNTL                   = 25\n\tSYS_INOTIFY_INIT1           = 26\n\tSYS_INOTIFY_ADD_WATCH       = 27\n\tSYS_INOTIFY_RM_WATCH        = 28\n\tSYS_IOCTL                   = 29\n\tSYS_IOPRIO_SET              = 30\n\tSYS_IOPRIO_GET              = 31\n\tSYS_FLOCK                   = 32\n\tSYS_MKNODAT                 = 33\n\tSYS_MKDIRAT                 = 34\n\tSYS_UNLINKAT                = 35\n\tSYS_SYMLINKAT               = 36\n\tSYS_LINKAT                  = 37\n\tSYS_UMOUNT2                 = 39\n\tSYS_MOUNT                   = 40\n\tSYS_PIVOT_ROOT              = 41\n\tSYS_NFSSERVCTL              = 42\n\tSYS_STATFS                  = 43\n\tSYS_FSTATFS                 = 44\n\tSYS_TRUNCATE                = 45\n\tSYS_FTRUNCATE               = 46\n\tSYS_FALLOCATE               = 47\n\tSYS_FACCESSAT               = 48\n\tSYS_CHDIR                   = 49\n\tSYS_FCHDIR                  = 50\n\tSYS_CHROOT                  = 51\n\tSYS_FCHMOD                  = 52\n\tSYS_FCHMODAT                = 53\n\tSYS_FCHOWNAT                = 54\n\tSYS_FCHOWN                  = 55\n\tSYS_OPENAT                  = 56\n\tSYS_CLOSE                   = 57\n\tSYS_VHANGUP                 = 58\n\tSYS_PIPE2                   = 59\n\tSYS_QUOTACTL                = 60\n\tSYS_GETDENTS64              = 61\n\tSYS_LSEEK                   = 62\n\tSYS_READ                    = 63\n\tSYS_WRITE                   = 64\n\tSYS_READV                   = 65\n\tSYS_WRITEV                  = 66\n\tSYS_PREAD64                 = 67\n\tSYS_PWRITE64                = 68\n\tSYS_PREADV                  = 69\n\tSYS_PWRITEV                 = 70\n\tSYS_SENDFILE                = 71\n\tSYS_PSELECT6                = 72\n\tSYS_PPOLL                   = 73\n\tSYS_SIGNALFD4               = 74\n\tSYS_VMSPLICE                = 75\n\tSYS_SPLICE                  = 76\n\tSYS_TEE                     = 77\n\tSYS_READLINKAT              = 78\n\tSYS_NEWFSTATAT              = 79\n\tSYS_FSTAT                   = 80\n\tSYS_SYNC                    = 81\n\tSYS_FSYNC                   = 82\n\tSYS_FDATASYNC               = 83\n\tSYS_SYNC_FILE_RANGE         = 84\n\tSYS_TIMERFD_CREATE          = 85\n\tSYS_TIMERFD_SETTIME         = 86\n\tSYS_TIMERFD_GETTIME         = 87\n\tSYS_UTIMENSAT               = 88\n\tSYS_ACCT                    = 89\n\tSYS_CAPGET                  = 90\n\tSYS_CAPSET                  = 91\n\tSYS_PERSONALITY             = 92\n\tSYS_EXIT                    = 93\n\tSYS_EXIT_GROUP              = 94\n\tSYS_WAITID                  = 95\n\tSYS_SET_TID_ADDRESS         = 96\n\tSYS_UNSHARE                 = 97\n\tSYS_FUTEX                   = 98\n\tSYS_SET_ROBUST_LIST         = 99\n\tSYS_GET_ROBUST_LIST         = 100\n\tSYS_NANOSLEEP               = 101\n\tSYS_GETITIMER               = 102\n\tSYS_SETITIMER               = 103\n\tSYS_KEXEC_LOAD              = 104\n\tSYS_INIT_MODULE             = 105\n\tSYS_DELETE_MODULE           = 106\n\tSYS_TIMER_CREATE            = 107\n\tSYS_TIMER_GETTIME           = 108\n\tSYS_TIMER_GETOVERRUN        = 109\n\tSYS_TIMER_SETTIME           = 110\n\tSYS_TIMER_DELETE            = 111\n\tSYS_CLOCK_SETTIME           = 112\n\tSYS_CLOCK_GETTIME           = 113\n\tSYS_CLOCK_GETRES            = 114\n\tSYS_CLOCK_NANOSLEEP         = 115\n\tSYS_SYSLOG                  = 116\n\tSYS_PTRACE                  = 117\n\tSYS_SCHED_SETPARAM          = 118\n\tSYS_SCHED_SETSCHEDULER      = 119\n\tSYS_SCHED_GETSCHEDULER      = 120\n\tSYS_SCHED_GETPARAM          = 121\n\tSYS_SCHED_SETAFFINITY       = 122\n\tSYS_SCHED_GETAFFINITY       = 123\n\tSYS_SCHED_YIELD             = 124\n\tSYS_SCHED_GET_PRIORITY_MAX  = 125\n\tSYS_SCHED_GET_PRIORITY_MIN  = 126\n\tSYS_SCHED_RR_GET_INTERVAL   = 127\n\tSYS_RESTART_SYSCALL         = 128\n\tSYS_KILL                    = 129\n\tSYS_TKILL                   = 130\n\tSYS_TGKILL                  = 131\n\tSYS_SIGALTSTACK             = 132\n\tSYS_RT_SIGSUSPEND           = 133\n\tSYS_RT_SIGACTION            = 134\n\tSYS_RT_SIGPROCMASK          = 135\n\tSYS_RT_SIGPENDING           = 136\n\tSYS_RT_SIGTIMEDWAIT         = 137\n\tSYS_RT_SIGQUEUEINFO         = 138\n\tSYS_RT_SIGRETURN            = 139\n\tSYS_SETPRIORITY             = 140\n\tSYS_GETPRIORITY             = 141\n\tSYS_REBOOT                  = 142\n\tSYS_SETREGID                = 143\n\tSYS_SETGID                  = 144\n\tSYS_SETREUID                = 145\n\tSYS_SETUID                  = 146\n\tSYS_SETRESUID               = 147\n\tSYS_GETRESUID               = 148\n\tSYS_SETRESGID               = 149\n\tSYS_GETRESGID               = 150\n\tSYS_SETFSUID                = 151\n\tSYS_SETFSGID                = 152\n\tSYS_TIMES                   = 153\n\tSYS_SETPGID                 = 154\n\tSYS_GETPGID                 = 155\n\tSYS_GETSID                  = 156\n\tSYS_SETSID                  = 157\n\tSYS_GETGROUPS               = 158\n\tSYS_SETGROUPS               = 159\n\tSYS_UNAME                   = 160\n\tSYS_SETHOSTNAME             = 161\n\tSYS_SETDOMAINNAME           = 162\n\tSYS_GETRLIMIT               = 163\n\tSYS_SETRLIMIT               = 164\n\tSYS_GETRUSAGE               = 165\n\tSYS_UMASK                   = 166\n\tSYS_PRCTL                   = 167\n\tSYS_GETCPU                  = 168\n\tSYS_GETTIMEOFDAY            = 169\n\tSYS_SETTIMEOFDAY            = 170\n\tSYS_ADJTIMEX                = 171\n\tSYS_GETPID                  = 172\n\tSYS_GETPPID                 = 173\n\tSYS_GETUID                  = 174\n\tSYS_GETEUID                 = 175\n\tSYS_GETGID                  = 176\n\tSYS_GETEGID                 = 177\n\tSYS_GETTID                  = 178\n\tSYS_SYSINFO                 = 179\n\tSYS_MQ_OPEN                 = 180\n\tSYS_MQ_UNLINK               = 181\n\tSYS_MQ_TIMEDSEND            = 182\n\tSYS_MQ_TIMEDRECEIVE         = 183\n\tSYS_MQ_NOTIFY               = 184\n\tSYS_MQ_GETSETATTR           = 185\n\tSYS_MSGGET                  = 186\n\tSYS_MSGCTL                  = 187\n\tSYS_MSGRCV                  = 188\n\tSYS_MSGSND                  = 189\n\tSYS_SEMGET                  = 190\n\tSYS_SEMCTL                  = 191\n\tSYS_SEMTIMEDOP              = 192\n\tSYS_SEMOP                   = 193\n\tSYS_SHMGET                  = 194\n\tSYS_SHMCTL                  = 195\n\tSYS_SHMAT                   = 196\n\tSYS_SHMDT                   = 197\n\tSYS_SOCKET                  = 198\n\tSYS_SOCKETPAIR              = 199\n\tSYS_BIND                    = 200\n\tSYS_LISTEN                  = 201\n\tSYS_ACCEPT                  = 202\n\tSYS_CONNECT                 = 203\n\tSYS_GETSOCKNAME             = 204\n\tSYS_GETPEERNAME             = 205\n\tSYS_SENDTO                  = 206\n\tSYS_RECVFROM                = 207\n\tSYS_SETSOCKOPT              = 208\n\tSYS_GETSOCKOPT              = 209\n\tSYS_SHUTDOWN                = 210\n\tSYS_SENDMSG                 = 211\n\tSYS_RECVMSG                 = 212\n\tSYS_READAHEAD               = 213\n\tSYS_BRK                     = 214\n\tSYS_MUNMAP                  = 215\n\tSYS_MREMAP                  = 216\n\tSYS_ADD_KEY                 = 217\n\tSYS_REQUEST_KEY             = 218\n\tSYS_KEYCTL                  = 219\n\tSYS_CLONE                   = 220\n\tSYS_EXECVE                  = 221\n\tSYS_MMAP                    = 222\n\tSYS_FADVISE64               = 223\n\tSYS_SWAPON                  = 224\n\tSYS_SWAPOFF                 = 225\n\tSYS_MPROTECT                = 226\n\tSYS_MSYNC                   = 227\n\tSYS_MLOCK                   = 228\n\tSYS_MUNLOCK                 = 229\n\tSYS_MLOCKALL                = 230\n\tSYS_MUNLOCKALL              = 231\n\tSYS_MINCORE                 = 232\n\tSYS_MADVISE                 = 233\n\tSYS_REMAP_FILE_PAGES        = 234\n\tSYS_MBIND                   = 235\n\tSYS_GET_MEMPOLICY           = 236\n\tSYS_SET_MEMPOLICY           = 237\n\tSYS_MIGRATE_PAGES           = 238\n\tSYS_MOVE_PAGES              = 239\n\tSYS_RT_TGSIGQUEUEINFO       = 240\n\tSYS_PERF_EVENT_OPEN         = 241\n\tSYS_ACCEPT4                 = 242\n\tSYS_RECVMMSG                = 243\n\tSYS_ARCH_SPECIFIC_SYSCALL   = 244\n\tSYS_RISCV_HWPROBE           = 258\n\tSYS_RISCV_FLUSH_ICACHE      = 259\n\tSYS_WAIT4                   = 260\n\tSYS_PRLIMIT64               = 261\n\tSYS_FANOTIFY_INIT           = 262\n\tSYS_FANOTIFY_MARK           = 263\n\tSYS_NAME_TO_HANDLE_AT       = 264\n\tSYS_OPEN_BY_HANDLE_AT       = 265\n\tSYS_CLOCK_ADJTIME           = 266\n\tSYS_SYNCFS                  = 267\n\tSYS_SETNS                   = 268\n\tSYS_SENDMMSG                = 269\n\tSYS_PROCESS_VM_READV        = 270\n\tSYS_PROCESS_VM_WRITEV       = 271\n\tSYS_KCMP                    = 272\n\tSYS_FINIT_MODULE            = 273\n\tSYS_SCHED_SETATTR           = 274\n\tSYS_SCHED_GETATTR           = 275\n\tSYS_RENAMEAT2               = 276\n\tSYS_SECCOMP                 = 277\n\tSYS_GETRANDOM               = 278\n\tSYS_MEMFD_CREATE            = 279\n\tSYS_BPF                     = 280\n\tSYS_EXECVEAT                = 281\n\tSYS_USERFAULTFD             = 282\n\tSYS_MEMBARRIER              = 283\n\tSYS_MLOCK2                  = 284\n\tSYS_COPY_FILE_RANGE         = 285\n\tSYS_PREADV2                 = 286\n\tSYS_PWRITEV2                = 287\n\tSYS_PKEY_MPROTECT           = 288\n\tSYS_PKEY_ALLOC              = 289\n\tSYS_PKEY_FREE               = 290\n\tSYS_STATX                   = 291\n\tSYS_IO_PGETEVENTS           = 292\n\tSYS_RSEQ                    = 293\n\tSYS_KEXEC_FILE_LOAD         = 294\n\tSYS_PIDFD_SEND_SIGNAL       = 424\n\tSYS_IO_URING_SETUP          = 425\n\tSYS_IO_URING_ENTER          = 426\n\tSYS_IO_URING_REGISTER       = 427\n\tSYS_OPEN_TREE               = 428\n\tSYS_MOVE_MOUNT              = 429\n\tSYS_FSOPEN                  = 430\n\tSYS_FSCONFIG                = 431\n\tSYS_FSMOUNT                 = 432\n\tSYS_FSPICK                  = 433\n\tSYS_PIDFD_OPEN              = 434\n\tSYS_CLONE3                  = 435\n\tSYS_CLOSE_RANGE             = 436\n\tSYS_OPENAT2                 = 437\n\tSYS_PIDFD_GETFD             = 438\n\tSYS_FACCESSAT2              = 439\n\tSYS_PROCESS_MADVISE         = 440\n\tSYS_EPOLL_PWAIT2            = 441\n\tSYS_MOUNT_SETATTR           = 442\n\tSYS_QUOTACTL_FD             = 443\n\tSYS_LANDLOCK_CREATE_RULESET = 444\n\tSYS_LANDLOCK_ADD_RULE       = 445\n\tSYS_LANDLOCK_RESTRICT_SELF  = 446\n\tSYS_MEMFD_SECRET            = 447\n\tSYS_PROCESS_MRELEASE        = 448\n\tSYS_FUTEX_WAITV             = 449\n\tSYS_SET_MEMPOLICY_HOME_NODE = 450\n\tSYS_CACHESTAT               = 451\n\tSYS_FCHMODAT2               = 452\n\tSYS_MAP_SHADOW_STACK        = 453\n\tSYS_FUTEX_WAKE              = 454\n\tSYS_FUTEX_WAIT              = 455\n\tSYS_FUTEX_REQUEUE           = 456\n\tSYS_STATMOUNT               = 457\n\tSYS_LISTMOUNT               = 458\n\tSYS_LSM_GET_SELF_ATTR       = 459\n\tSYS_LSM_SET_SELF_ATTR       = 460\n\tSYS_LSM_LIST_MODULES        = 461\n\tSYS_MSEAL                   = 462\n\tSYS_SETXATTRAT              = 463\n\tSYS_GETXATTRAT              = 464\n\tSYS_LISTXATTRAT             = 465\n\tSYS_REMOVEXATTRAT           = 466\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/s390x/include -fsigned-char /tmp/s390x/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build s390x && linux\n\npackage unix\n\nconst (\n\tSYS_EXIT                    = 1\n\tSYS_FORK                    = 2\n\tSYS_READ                    = 3\n\tSYS_WRITE                   = 4\n\tSYS_OPEN                    = 5\n\tSYS_CLOSE                   = 6\n\tSYS_RESTART_SYSCALL         = 7\n\tSYS_CREAT                   = 8\n\tSYS_LINK                    = 9\n\tSYS_UNLINK                  = 10\n\tSYS_EXECVE                  = 11\n\tSYS_CHDIR                   = 12\n\tSYS_MKNOD                   = 14\n\tSYS_CHMOD                   = 15\n\tSYS_LSEEK                   = 19\n\tSYS_GETPID                  = 20\n\tSYS_MOUNT                   = 21\n\tSYS_UMOUNT                  = 22\n\tSYS_PTRACE                  = 26\n\tSYS_ALARM                   = 27\n\tSYS_PAUSE                   = 29\n\tSYS_UTIME                   = 30\n\tSYS_ACCESS                  = 33\n\tSYS_NICE                    = 34\n\tSYS_SYNC                    = 36\n\tSYS_KILL                    = 37\n\tSYS_RENAME                  = 38\n\tSYS_MKDIR                   = 39\n\tSYS_RMDIR                   = 40\n\tSYS_DUP                     = 41\n\tSYS_PIPE                    = 42\n\tSYS_TIMES                   = 43\n\tSYS_BRK                     = 45\n\tSYS_SIGNAL                  = 48\n\tSYS_ACCT                    = 51\n\tSYS_UMOUNT2                 = 52\n\tSYS_IOCTL                   = 54\n\tSYS_FCNTL                   = 55\n\tSYS_SETPGID                 = 57\n\tSYS_UMASK                   = 60\n\tSYS_CHROOT                  = 61\n\tSYS_USTAT                   = 62\n\tSYS_DUP2                    = 63\n\tSYS_GETPPID                 = 64\n\tSYS_GETPGRP                 = 65\n\tSYS_SETSID                  = 66\n\tSYS_SIGACTION               = 67\n\tSYS_SIGSUSPEND              = 72\n\tSYS_SIGPENDING              = 73\n\tSYS_SETHOSTNAME             = 74\n\tSYS_SETRLIMIT               = 75\n\tSYS_GETRUSAGE               = 77\n\tSYS_GETTIMEOFDAY            = 78\n\tSYS_SETTIMEOFDAY            = 79\n\tSYS_SYMLINK                 = 83\n\tSYS_READLINK                = 85\n\tSYS_USELIB                  = 86\n\tSYS_SWAPON                  = 87\n\tSYS_REBOOT                  = 88\n\tSYS_READDIR                 = 89\n\tSYS_MMAP                    = 90\n\tSYS_MUNMAP                  = 91\n\tSYS_TRUNCATE                = 92\n\tSYS_FTRUNCATE               = 93\n\tSYS_FCHMOD                  = 94\n\tSYS_GETPRIORITY             = 96\n\tSYS_SETPRIORITY             = 97\n\tSYS_STATFS                  = 99\n\tSYS_FSTATFS                 = 100\n\tSYS_SOCKETCALL              = 102\n\tSYS_SYSLOG                  = 103\n\tSYS_SETITIMER               = 104\n\tSYS_GETITIMER               = 105\n\tSYS_STAT                    = 106\n\tSYS_LSTAT                   = 107\n\tSYS_FSTAT                   = 108\n\tSYS_LOOKUP_DCOOKIE          = 110\n\tSYS_VHANGUP                 = 111\n\tSYS_IDLE                    = 112\n\tSYS_WAIT4                   = 114\n\tSYS_SWAPOFF                 = 115\n\tSYS_SYSINFO                 = 116\n\tSYS_IPC                     = 117\n\tSYS_FSYNC                   = 118\n\tSYS_SIGRETURN               = 119\n\tSYS_CLONE                   = 120\n\tSYS_SETDOMAINNAME           = 121\n\tSYS_UNAME                   = 122\n\tSYS_ADJTIMEX                = 124\n\tSYS_MPROTECT                = 125\n\tSYS_SIGPROCMASK             = 126\n\tSYS_CREATE_MODULE           = 127\n\tSYS_INIT_MODULE             = 128\n\tSYS_DELETE_MODULE           = 129\n\tSYS_GET_KERNEL_SYMS         = 130\n\tSYS_QUOTACTL                = 131\n\tSYS_GETPGID                 = 132\n\tSYS_FCHDIR                  = 133\n\tSYS_BDFLUSH                 = 134\n\tSYS_SYSFS                   = 135\n\tSYS_PERSONALITY             = 136\n\tSYS_AFS_SYSCALL             = 137\n\tSYS_GETDENTS                = 141\n\tSYS_SELECT                  = 142\n\tSYS_FLOCK                   = 143\n\tSYS_MSYNC                   = 144\n\tSYS_READV                   = 145\n\tSYS_WRITEV                  = 146\n\tSYS_GETSID                  = 147\n\tSYS_FDATASYNC               = 148\n\tSYS__SYSCTL                 = 149\n\tSYS_MLOCK                   = 150\n\tSYS_MUNLOCK                 = 151\n\tSYS_MLOCKALL                = 152\n\tSYS_MUNLOCKALL              = 153\n\tSYS_SCHED_SETPARAM          = 154\n\tSYS_SCHED_GETPARAM          = 155\n\tSYS_SCHED_SETSCHEDULER      = 156\n\tSYS_SCHED_GETSCHEDULER      = 157\n\tSYS_SCHED_YIELD             = 158\n\tSYS_SCHED_GET_PRIORITY_MAX  = 159\n\tSYS_SCHED_GET_PRIORITY_MIN  = 160\n\tSYS_SCHED_RR_GET_INTERVAL   = 161\n\tSYS_NANOSLEEP               = 162\n\tSYS_MREMAP                  = 163\n\tSYS_QUERY_MODULE            = 167\n\tSYS_POLL                    = 168\n\tSYS_NFSSERVCTL              = 169\n\tSYS_PRCTL                   = 172\n\tSYS_RT_SIGRETURN            = 173\n\tSYS_RT_SIGACTION            = 174\n\tSYS_RT_SIGPROCMASK          = 175\n\tSYS_RT_SIGPENDING           = 176\n\tSYS_RT_SIGTIMEDWAIT         = 177\n\tSYS_RT_SIGQUEUEINFO         = 178\n\tSYS_RT_SIGSUSPEND           = 179\n\tSYS_PREAD64                 = 180\n\tSYS_PWRITE64                = 181\n\tSYS_GETCWD                  = 183\n\tSYS_CAPGET                  = 184\n\tSYS_CAPSET                  = 185\n\tSYS_SIGALTSTACK             = 186\n\tSYS_SENDFILE                = 187\n\tSYS_GETPMSG                 = 188\n\tSYS_PUTPMSG                 = 189\n\tSYS_VFORK                   = 190\n\tSYS_GETRLIMIT               = 191\n\tSYS_LCHOWN                  = 198\n\tSYS_GETUID                  = 199\n\tSYS_GETGID                  = 200\n\tSYS_GETEUID                 = 201\n\tSYS_GETEGID                 = 202\n\tSYS_SETREUID                = 203\n\tSYS_SETREGID                = 204\n\tSYS_GETGROUPS               = 205\n\tSYS_SETGROUPS               = 206\n\tSYS_FCHOWN                  = 207\n\tSYS_SETRESUID               = 208\n\tSYS_GETRESUID               = 209\n\tSYS_SETRESGID               = 210\n\tSYS_GETRESGID               = 211\n\tSYS_CHOWN                   = 212\n\tSYS_SETUID                  = 213\n\tSYS_SETGID                  = 214\n\tSYS_SETFSUID                = 215\n\tSYS_SETFSGID                = 216\n\tSYS_PIVOT_ROOT              = 217\n\tSYS_MINCORE                 = 218\n\tSYS_MADVISE                 = 219\n\tSYS_GETDENTS64              = 220\n\tSYS_READAHEAD               = 222\n\tSYS_SETXATTR                = 224\n\tSYS_LSETXATTR               = 225\n\tSYS_FSETXATTR               = 226\n\tSYS_GETXATTR                = 227\n\tSYS_LGETXATTR               = 228\n\tSYS_FGETXATTR               = 229\n\tSYS_LISTXATTR               = 230\n\tSYS_LLISTXATTR              = 231\n\tSYS_FLISTXATTR              = 232\n\tSYS_REMOVEXATTR             = 233\n\tSYS_LREMOVEXATTR            = 234\n\tSYS_FREMOVEXATTR            = 235\n\tSYS_GETTID                  = 236\n\tSYS_TKILL                   = 237\n\tSYS_FUTEX                   = 238\n\tSYS_SCHED_SETAFFINITY       = 239\n\tSYS_SCHED_GETAFFINITY       = 240\n\tSYS_TGKILL                  = 241\n\tSYS_IO_SETUP                = 243\n\tSYS_IO_DESTROY              = 244\n\tSYS_IO_GETEVENTS            = 245\n\tSYS_IO_SUBMIT               = 246\n\tSYS_IO_CANCEL               = 247\n\tSYS_EXIT_GROUP              = 248\n\tSYS_EPOLL_CREATE            = 249\n\tSYS_EPOLL_CTL               = 250\n\tSYS_EPOLL_WAIT              = 251\n\tSYS_SET_TID_ADDRESS         = 252\n\tSYS_FADVISE64               = 253\n\tSYS_TIMER_CREATE            = 254\n\tSYS_TIMER_SETTIME           = 255\n\tSYS_TIMER_GETTIME           = 256\n\tSYS_TIMER_GETOVERRUN        = 257\n\tSYS_TIMER_DELETE            = 258\n\tSYS_CLOCK_SETTIME           = 259\n\tSYS_CLOCK_GETTIME           = 260\n\tSYS_CLOCK_GETRES            = 261\n\tSYS_CLOCK_NANOSLEEP         = 262\n\tSYS_STATFS64                = 265\n\tSYS_FSTATFS64               = 266\n\tSYS_REMAP_FILE_PAGES        = 267\n\tSYS_MBIND                   = 268\n\tSYS_GET_MEMPOLICY           = 269\n\tSYS_SET_MEMPOLICY           = 270\n\tSYS_MQ_OPEN                 = 271\n\tSYS_MQ_UNLINK               = 272\n\tSYS_MQ_TIMEDSEND            = 273\n\tSYS_MQ_TIMEDRECEIVE         = 274\n\tSYS_MQ_NOTIFY               = 275\n\tSYS_MQ_GETSETATTR           = 276\n\tSYS_KEXEC_LOAD              = 277\n\tSYS_ADD_KEY                 = 278\n\tSYS_REQUEST_KEY             = 279\n\tSYS_KEYCTL                  = 280\n\tSYS_WAITID                  = 281\n\tSYS_IOPRIO_SET              = 282\n\tSYS_IOPRIO_GET              = 283\n\tSYS_INOTIFY_INIT            = 284\n\tSYS_INOTIFY_ADD_WATCH       = 285\n\tSYS_INOTIFY_RM_WATCH        = 286\n\tSYS_MIGRATE_PAGES           = 287\n\tSYS_OPENAT                  = 288\n\tSYS_MKDIRAT                 = 289\n\tSYS_MKNODAT                 = 290\n\tSYS_FCHOWNAT                = 291\n\tSYS_FUTIMESAT               = 292\n\tSYS_NEWFSTATAT              = 293\n\tSYS_UNLINKAT                = 294\n\tSYS_RENAMEAT                = 295\n\tSYS_LINKAT                  = 296\n\tSYS_SYMLINKAT               = 297\n\tSYS_READLINKAT              = 298\n\tSYS_FCHMODAT                = 299\n\tSYS_FACCESSAT               = 300\n\tSYS_PSELECT6                = 301\n\tSYS_PPOLL                   = 302\n\tSYS_UNSHARE                 = 303\n\tSYS_SET_ROBUST_LIST         = 304\n\tSYS_GET_ROBUST_LIST         = 305\n\tSYS_SPLICE                  = 306\n\tSYS_SYNC_FILE_RANGE         = 307\n\tSYS_TEE                     = 308\n\tSYS_VMSPLICE                = 309\n\tSYS_MOVE_PAGES              = 310\n\tSYS_GETCPU                  = 311\n\tSYS_EPOLL_PWAIT             = 312\n\tSYS_UTIMES                  = 313\n\tSYS_FALLOCATE               = 314\n\tSYS_UTIMENSAT               = 315\n\tSYS_SIGNALFD                = 316\n\tSYS_TIMERFD                 = 317\n\tSYS_EVENTFD                 = 318\n\tSYS_TIMERFD_CREATE          = 319\n\tSYS_TIMERFD_SETTIME         = 320\n\tSYS_TIMERFD_GETTIME         = 321\n\tSYS_SIGNALFD4               = 322\n\tSYS_EVENTFD2                = 323\n\tSYS_INOTIFY_INIT1           = 324\n\tSYS_PIPE2                   = 325\n\tSYS_DUP3                    = 326\n\tSYS_EPOLL_CREATE1           = 327\n\tSYS_PREADV                  = 328\n\tSYS_PWRITEV                 = 329\n\tSYS_RT_TGSIGQUEUEINFO       = 330\n\tSYS_PERF_EVENT_OPEN         = 331\n\tSYS_FANOTIFY_INIT           = 332\n\tSYS_FANOTIFY_MARK           = 333\n\tSYS_PRLIMIT64               = 334\n\tSYS_NAME_TO_HANDLE_AT       = 335\n\tSYS_OPEN_BY_HANDLE_AT       = 336\n\tSYS_CLOCK_ADJTIME           = 337\n\tSYS_SYNCFS                  = 338\n\tSYS_SETNS                   = 339\n\tSYS_PROCESS_VM_READV        = 340\n\tSYS_PROCESS_VM_WRITEV       = 341\n\tSYS_S390_RUNTIME_INSTR      = 342\n\tSYS_KCMP                    = 343\n\tSYS_FINIT_MODULE            = 344\n\tSYS_SCHED_SETATTR           = 345\n\tSYS_SCHED_GETATTR           = 346\n\tSYS_RENAMEAT2               = 347\n\tSYS_SECCOMP                 = 348\n\tSYS_GETRANDOM               = 349\n\tSYS_MEMFD_CREATE            = 350\n\tSYS_BPF                     = 351\n\tSYS_S390_PCI_MMIO_WRITE     = 352\n\tSYS_S390_PCI_MMIO_READ      = 353\n\tSYS_EXECVEAT                = 354\n\tSYS_USERFAULTFD             = 355\n\tSYS_MEMBARRIER              = 356\n\tSYS_RECVMMSG                = 357\n\tSYS_SENDMMSG                = 358\n\tSYS_SOCKET                  = 359\n\tSYS_SOCKETPAIR              = 360\n\tSYS_BIND                    = 361\n\tSYS_CONNECT                 = 362\n\tSYS_LISTEN                  = 363\n\tSYS_ACCEPT4                 = 364\n\tSYS_GETSOCKOPT              = 365\n\tSYS_SETSOCKOPT              = 366\n\tSYS_GETSOCKNAME             = 367\n\tSYS_GETPEERNAME             = 368\n\tSYS_SENDTO                  = 369\n\tSYS_SENDMSG                 = 370\n\tSYS_RECVFROM                = 371\n\tSYS_RECVMSG                 = 372\n\tSYS_SHUTDOWN                = 373\n\tSYS_MLOCK2                  = 374\n\tSYS_COPY_FILE_RANGE         = 375\n\tSYS_PREADV2                 = 376\n\tSYS_PWRITEV2                = 377\n\tSYS_S390_GUARDED_STORAGE    = 378\n\tSYS_STATX                   = 379\n\tSYS_S390_STHYI              = 380\n\tSYS_KEXEC_FILE_LOAD         = 381\n\tSYS_IO_PGETEVENTS           = 382\n\tSYS_RSEQ                    = 383\n\tSYS_PKEY_MPROTECT           = 384\n\tSYS_PKEY_ALLOC              = 385\n\tSYS_PKEY_FREE               = 386\n\tSYS_SEMTIMEDOP              = 392\n\tSYS_SEMGET                  = 393\n\tSYS_SEMCTL                  = 394\n\tSYS_SHMGET                  = 395\n\tSYS_SHMCTL                  = 396\n\tSYS_SHMAT                   = 397\n\tSYS_SHMDT                   = 398\n\tSYS_MSGGET                  = 399\n\tSYS_MSGSND                  = 400\n\tSYS_MSGRCV                  = 401\n\tSYS_MSGCTL                  = 402\n\tSYS_PIDFD_SEND_SIGNAL       = 424\n\tSYS_IO_URING_SETUP          = 425\n\tSYS_IO_URING_ENTER          = 426\n\tSYS_IO_URING_REGISTER       = 427\n\tSYS_OPEN_TREE               = 428\n\tSYS_MOVE_MOUNT              = 429\n\tSYS_FSOPEN                  = 430\n\tSYS_FSCONFIG                = 431\n\tSYS_FSMOUNT                 = 432\n\tSYS_FSPICK                  = 433\n\tSYS_PIDFD_OPEN              = 434\n\tSYS_CLONE3                  = 435\n\tSYS_CLOSE_RANGE             = 436\n\tSYS_OPENAT2                 = 437\n\tSYS_PIDFD_GETFD             = 438\n\tSYS_FACCESSAT2              = 439\n\tSYS_PROCESS_MADVISE         = 440\n\tSYS_EPOLL_PWAIT2            = 441\n\tSYS_MOUNT_SETATTR           = 442\n\tSYS_QUOTACTL_FD             = 443\n\tSYS_LANDLOCK_CREATE_RULESET = 444\n\tSYS_LANDLOCK_ADD_RULE       = 445\n\tSYS_LANDLOCK_RESTRICT_SELF  = 446\n\tSYS_MEMFD_SECRET            = 447\n\tSYS_PROCESS_MRELEASE        = 448\n\tSYS_FUTEX_WAITV             = 449\n\tSYS_SET_MEMPOLICY_HOME_NODE = 450\n\tSYS_CACHESTAT               = 451\n\tSYS_FCHMODAT2               = 452\n\tSYS_MAP_SHADOW_STACK        = 453\n\tSYS_FUTEX_WAKE              = 454\n\tSYS_FUTEX_WAIT              = 455\n\tSYS_FUTEX_REQUEUE           = 456\n\tSYS_STATMOUNT               = 457\n\tSYS_LISTMOUNT               = 458\n\tSYS_LSM_GET_SELF_ATTR       = 459\n\tSYS_LSM_SET_SELF_ATTR       = 460\n\tSYS_LSM_LIST_MODULES        = 461\n\tSYS_MSEAL                   = 462\n\tSYS_SETXATTRAT              = 463\n\tSYS_GETXATTRAT              = 464\n\tSYS_LISTXATTRAT             = 465\n\tSYS_REMOVEXATTRAT           = 466\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go",
    "content": "// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/sparc64/include /tmp/sparc64/include/asm/unistd.h\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build sparc64 && linux\n\npackage unix\n\nconst (\n\tSYS_RESTART_SYSCALL         = 0\n\tSYS_EXIT                    = 1\n\tSYS_FORK                    = 2\n\tSYS_READ                    = 3\n\tSYS_WRITE                   = 4\n\tSYS_OPEN                    = 5\n\tSYS_CLOSE                   = 6\n\tSYS_WAIT4                   = 7\n\tSYS_CREAT                   = 8\n\tSYS_LINK                    = 9\n\tSYS_UNLINK                  = 10\n\tSYS_EXECV                   = 11\n\tSYS_CHDIR                   = 12\n\tSYS_CHOWN                   = 13\n\tSYS_MKNOD                   = 14\n\tSYS_CHMOD                   = 15\n\tSYS_LCHOWN                  = 16\n\tSYS_BRK                     = 17\n\tSYS_PERFCTR                 = 18\n\tSYS_LSEEK                   = 19\n\tSYS_GETPID                  = 20\n\tSYS_CAPGET                  = 21\n\tSYS_CAPSET                  = 22\n\tSYS_SETUID                  = 23\n\tSYS_GETUID                  = 24\n\tSYS_VMSPLICE                = 25\n\tSYS_PTRACE                  = 26\n\tSYS_ALARM                   = 27\n\tSYS_SIGALTSTACK             = 28\n\tSYS_PAUSE                   = 29\n\tSYS_UTIME                   = 30\n\tSYS_ACCESS                  = 33\n\tSYS_NICE                    = 34\n\tSYS_SYNC                    = 36\n\tSYS_KILL                    = 37\n\tSYS_STAT                    = 38\n\tSYS_SENDFILE                = 39\n\tSYS_LSTAT                   = 40\n\tSYS_DUP                     = 41\n\tSYS_PIPE                    = 42\n\tSYS_TIMES                   = 43\n\tSYS_UMOUNT2                 = 45\n\tSYS_SETGID                  = 46\n\tSYS_GETGID                  = 47\n\tSYS_SIGNAL                  = 48\n\tSYS_GETEUID                 = 49\n\tSYS_GETEGID                 = 50\n\tSYS_ACCT                    = 51\n\tSYS_MEMORY_ORDERING         = 52\n\tSYS_IOCTL                   = 54\n\tSYS_REBOOT                  = 55\n\tSYS_SYMLINK                 = 57\n\tSYS_READLINK                = 58\n\tSYS_EXECVE                  = 59\n\tSYS_UMASK                   = 60\n\tSYS_CHROOT                  = 61\n\tSYS_FSTAT                   = 62\n\tSYS_FSTAT64                 = 63\n\tSYS_GETPAGESIZE             = 64\n\tSYS_MSYNC                   = 65\n\tSYS_VFORK                   = 66\n\tSYS_PREAD64                 = 67\n\tSYS_PWRITE64                = 68\n\tSYS_MMAP                    = 71\n\tSYS_MUNMAP                  = 73\n\tSYS_MPROTECT                = 74\n\tSYS_MADVISE                 = 75\n\tSYS_VHANGUP                 = 76\n\tSYS_MINCORE                 = 78\n\tSYS_GETGROUPS               = 79\n\tSYS_SETGROUPS               = 80\n\tSYS_GETPGRP                 = 81\n\tSYS_SETITIMER               = 83\n\tSYS_SWAPON                  = 85\n\tSYS_GETITIMER               = 86\n\tSYS_SETHOSTNAME             = 88\n\tSYS_DUP2                    = 90\n\tSYS_FCNTL                   = 92\n\tSYS_SELECT                  = 93\n\tSYS_FSYNC                   = 95\n\tSYS_SETPRIORITY             = 96\n\tSYS_SOCKET                  = 97\n\tSYS_CONNECT                 = 98\n\tSYS_ACCEPT                  = 99\n\tSYS_GETPRIORITY             = 100\n\tSYS_RT_SIGRETURN            = 101\n\tSYS_RT_SIGACTION            = 102\n\tSYS_RT_SIGPROCMASK          = 103\n\tSYS_RT_SIGPENDING           = 104\n\tSYS_RT_SIGTIMEDWAIT         = 105\n\tSYS_RT_SIGQUEUEINFO         = 106\n\tSYS_RT_SIGSUSPEND           = 107\n\tSYS_SETRESUID               = 108\n\tSYS_GETRESUID               = 109\n\tSYS_SETRESGID               = 110\n\tSYS_GETRESGID               = 111\n\tSYS_RECVMSG                 = 113\n\tSYS_SENDMSG                 = 114\n\tSYS_GETTIMEOFDAY            = 116\n\tSYS_GETRUSAGE               = 117\n\tSYS_GETSOCKOPT              = 118\n\tSYS_GETCWD                  = 119\n\tSYS_READV                   = 120\n\tSYS_WRITEV                  = 121\n\tSYS_SETTIMEOFDAY            = 122\n\tSYS_FCHOWN                  = 123\n\tSYS_FCHMOD                  = 124\n\tSYS_RECVFROM                = 125\n\tSYS_SETREUID                = 126\n\tSYS_SETREGID                = 127\n\tSYS_RENAME                  = 128\n\tSYS_TRUNCATE                = 129\n\tSYS_FTRUNCATE               = 130\n\tSYS_FLOCK                   = 131\n\tSYS_LSTAT64                 = 132\n\tSYS_SENDTO                  = 133\n\tSYS_SHUTDOWN                = 134\n\tSYS_SOCKETPAIR              = 135\n\tSYS_MKDIR                   = 136\n\tSYS_RMDIR                   = 137\n\tSYS_UTIMES                  = 138\n\tSYS_STAT64                  = 139\n\tSYS_SENDFILE64              = 140\n\tSYS_GETPEERNAME             = 141\n\tSYS_FUTEX                   = 142\n\tSYS_GETTID                  = 143\n\tSYS_GETRLIMIT               = 144\n\tSYS_SETRLIMIT               = 145\n\tSYS_PIVOT_ROOT              = 146\n\tSYS_PRCTL                   = 147\n\tSYS_PCICONFIG_READ          = 148\n\tSYS_PCICONFIG_WRITE         = 149\n\tSYS_GETSOCKNAME             = 150\n\tSYS_INOTIFY_INIT            = 151\n\tSYS_INOTIFY_ADD_WATCH       = 152\n\tSYS_POLL                    = 153\n\tSYS_GETDENTS64              = 154\n\tSYS_INOTIFY_RM_WATCH        = 156\n\tSYS_STATFS                  = 157\n\tSYS_FSTATFS                 = 158\n\tSYS_UMOUNT                  = 159\n\tSYS_SCHED_SET_AFFINITY      = 160\n\tSYS_SCHED_GET_AFFINITY      = 161\n\tSYS_GETDOMAINNAME           = 162\n\tSYS_SETDOMAINNAME           = 163\n\tSYS_UTRAP_INSTALL           = 164\n\tSYS_QUOTACTL                = 165\n\tSYS_SET_TID_ADDRESS         = 166\n\tSYS_MOUNT                   = 167\n\tSYS_USTAT                   = 168\n\tSYS_SETXATTR                = 169\n\tSYS_LSETXATTR               = 170\n\tSYS_FSETXATTR               = 171\n\tSYS_GETXATTR                = 172\n\tSYS_LGETXATTR               = 173\n\tSYS_GETDENTS                = 174\n\tSYS_SETSID                  = 175\n\tSYS_FCHDIR                  = 176\n\tSYS_FGETXATTR               = 177\n\tSYS_LISTXATTR               = 178\n\tSYS_LLISTXATTR              = 179\n\tSYS_FLISTXATTR              = 180\n\tSYS_REMOVEXATTR             = 181\n\tSYS_LREMOVEXATTR            = 182\n\tSYS_SIGPENDING              = 183\n\tSYS_QUERY_MODULE            = 184\n\tSYS_SETPGID                 = 185\n\tSYS_FREMOVEXATTR            = 186\n\tSYS_TKILL                   = 187\n\tSYS_EXIT_GROUP              = 188\n\tSYS_UNAME                   = 189\n\tSYS_INIT_MODULE             = 190\n\tSYS_PERSONALITY             = 191\n\tSYS_REMAP_FILE_PAGES        = 192\n\tSYS_EPOLL_CREATE            = 193\n\tSYS_EPOLL_CTL               = 194\n\tSYS_EPOLL_WAIT              = 195\n\tSYS_IOPRIO_SET              = 196\n\tSYS_GETPPID                 = 197\n\tSYS_SIGACTION               = 198\n\tSYS_SGETMASK                = 199\n\tSYS_SSETMASK                = 200\n\tSYS_SIGSUSPEND              = 201\n\tSYS_OLDLSTAT                = 202\n\tSYS_USELIB                  = 203\n\tSYS_READDIR                 = 204\n\tSYS_READAHEAD               = 205\n\tSYS_SOCKETCALL              = 206\n\tSYS_SYSLOG                  = 207\n\tSYS_LOOKUP_DCOOKIE          = 208\n\tSYS_FADVISE64               = 209\n\tSYS_FADVISE64_64            = 210\n\tSYS_TGKILL                  = 211\n\tSYS_WAITPID                 = 212\n\tSYS_SWAPOFF                 = 213\n\tSYS_SYSINFO                 = 214\n\tSYS_IPC                     = 215\n\tSYS_SIGRETURN               = 216\n\tSYS_CLONE                   = 217\n\tSYS_IOPRIO_GET              = 218\n\tSYS_ADJTIMEX                = 219\n\tSYS_SIGPROCMASK             = 220\n\tSYS_CREATE_MODULE           = 221\n\tSYS_DELETE_MODULE           = 222\n\tSYS_GET_KERNEL_SYMS         = 223\n\tSYS_GETPGID                 = 224\n\tSYS_BDFLUSH                 = 225\n\tSYS_SYSFS                   = 226\n\tSYS_AFS_SYSCALL             = 227\n\tSYS_SETFSUID                = 228\n\tSYS_SETFSGID                = 229\n\tSYS__NEWSELECT              = 230\n\tSYS_SPLICE                  = 232\n\tSYS_STIME                   = 233\n\tSYS_STATFS64                = 234\n\tSYS_FSTATFS64               = 235\n\tSYS__LLSEEK                 = 236\n\tSYS_MLOCK                   = 237\n\tSYS_MUNLOCK                 = 238\n\tSYS_MLOCKALL                = 239\n\tSYS_MUNLOCKALL              = 240\n\tSYS_SCHED_SETPARAM          = 241\n\tSYS_SCHED_GETPARAM          = 242\n\tSYS_SCHED_SETSCHEDULER      = 243\n\tSYS_SCHED_GETSCHEDULER      = 244\n\tSYS_SCHED_YIELD             = 245\n\tSYS_SCHED_GET_PRIORITY_MAX  = 246\n\tSYS_SCHED_GET_PRIORITY_MIN  = 247\n\tSYS_SCHED_RR_GET_INTERVAL   = 248\n\tSYS_NANOSLEEP               = 249\n\tSYS_MREMAP                  = 250\n\tSYS__SYSCTL                 = 251\n\tSYS_GETSID                  = 252\n\tSYS_FDATASYNC               = 253\n\tSYS_NFSSERVCTL              = 254\n\tSYS_SYNC_FILE_RANGE         = 255\n\tSYS_CLOCK_SETTIME           = 256\n\tSYS_CLOCK_GETTIME           = 257\n\tSYS_CLOCK_GETRES            = 258\n\tSYS_CLOCK_NANOSLEEP         = 259\n\tSYS_SCHED_GETAFFINITY       = 260\n\tSYS_SCHED_SETAFFINITY       = 261\n\tSYS_TIMER_SETTIME           = 262\n\tSYS_TIMER_GETTIME           = 263\n\tSYS_TIMER_GETOVERRUN        = 264\n\tSYS_TIMER_DELETE            = 265\n\tSYS_TIMER_CREATE            = 266\n\tSYS_VSERVER                 = 267\n\tSYS_IO_SETUP                = 268\n\tSYS_IO_DESTROY              = 269\n\tSYS_IO_SUBMIT               = 270\n\tSYS_IO_CANCEL               = 271\n\tSYS_IO_GETEVENTS            = 272\n\tSYS_MQ_OPEN                 = 273\n\tSYS_MQ_UNLINK               = 274\n\tSYS_MQ_TIMEDSEND            = 275\n\tSYS_MQ_TIMEDRECEIVE         = 276\n\tSYS_MQ_NOTIFY               = 277\n\tSYS_MQ_GETSETATTR           = 278\n\tSYS_WAITID                  = 279\n\tSYS_TEE                     = 280\n\tSYS_ADD_KEY                 = 281\n\tSYS_REQUEST_KEY             = 282\n\tSYS_KEYCTL                  = 283\n\tSYS_OPENAT                  = 284\n\tSYS_MKDIRAT                 = 285\n\tSYS_MKNODAT                 = 286\n\tSYS_FCHOWNAT                = 287\n\tSYS_FUTIMESAT               = 288\n\tSYS_FSTATAT64               = 289\n\tSYS_UNLINKAT                = 290\n\tSYS_RENAMEAT                = 291\n\tSYS_LINKAT                  = 292\n\tSYS_SYMLINKAT               = 293\n\tSYS_READLINKAT              = 294\n\tSYS_FCHMODAT                = 295\n\tSYS_FACCESSAT               = 296\n\tSYS_PSELECT6                = 297\n\tSYS_PPOLL                   = 298\n\tSYS_UNSHARE                 = 299\n\tSYS_SET_ROBUST_LIST         = 300\n\tSYS_GET_ROBUST_LIST         = 301\n\tSYS_MIGRATE_PAGES           = 302\n\tSYS_MBIND                   = 303\n\tSYS_GET_MEMPOLICY           = 304\n\tSYS_SET_MEMPOLICY           = 305\n\tSYS_KEXEC_LOAD              = 306\n\tSYS_MOVE_PAGES              = 307\n\tSYS_GETCPU                  = 308\n\tSYS_EPOLL_PWAIT             = 309\n\tSYS_UTIMENSAT               = 310\n\tSYS_SIGNALFD                = 311\n\tSYS_TIMERFD_CREATE          = 312\n\tSYS_EVENTFD                 = 313\n\tSYS_FALLOCATE               = 314\n\tSYS_TIMERFD_SETTIME         = 315\n\tSYS_TIMERFD_GETTIME         = 316\n\tSYS_SIGNALFD4               = 317\n\tSYS_EVENTFD2                = 318\n\tSYS_EPOLL_CREATE1           = 319\n\tSYS_DUP3                    = 320\n\tSYS_PIPE2                   = 321\n\tSYS_INOTIFY_INIT1           = 322\n\tSYS_ACCEPT4                 = 323\n\tSYS_PREADV                  = 324\n\tSYS_PWRITEV                 = 325\n\tSYS_RT_TGSIGQUEUEINFO       = 326\n\tSYS_PERF_EVENT_OPEN         = 327\n\tSYS_RECVMMSG                = 328\n\tSYS_FANOTIFY_INIT           = 329\n\tSYS_FANOTIFY_MARK           = 330\n\tSYS_PRLIMIT64               = 331\n\tSYS_NAME_TO_HANDLE_AT       = 332\n\tSYS_OPEN_BY_HANDLE_AT       = 333\n\tSYS_CLOCK_ADJTIME           = 334\n\tSYS_SYNCFS                  = 335\n\tSYS_SENDMMSG                = 336\n\tSYS_SETNS                   = 337\n\tSYS_PROCESS_VM_READV        = 338\n\tSYS_PROCESS_VM_WRITEV       = 339\n\tSYS_KERN_FEATURES           = 340\n\tSYS_KCMP                    = 341\n\tSYS_FINIT_MODULE            = 342\n\tSYS_SCHED_SETATTR           = 343\n\tSYS_SCHED_GETATTR           = 344\n\tSYS_RENAMEAT2               = 345\n\tSYS_SECCOMP                 = 346\n\tSYS_GETRANDOM               = 347\n\tSYS_MEMFD_CREATE            = 348\n\tSYS_BPF                     = 349\n\tSYS_EXECVEAT                = 350\n\tSYS_MEMBARRIER              = 351\n\tSYS_USERFAULTFD             = 352\n\tSYS_BIND                    = 353\n\tSYS_LISTEN                  = 354\n\tSYS_SETSOCKOPT              = 355\n\tSYS_MLOCK2                  = 356\n\tSYS_COPY_FILE_RANGE         = 357\n\tSYS_PREADV2                 = 358\n\tSYS_PWRITEV2                = 359\n\tSYS_STATX                   = 360\n\tSYS_IO_PGETEVENTS           = 361\n\tSYS_PKEY_MPROTECT           = 362\n\tSYS_PKEY_ALLOC              = 363\n\tSYS_PKEY_FREE               = 364\n\tSYS_RSEQ                    = 365\n\tSYS_SEMTIMEDOP              = 392\n\tSYS_SEMGET                  = 393\n\tSYS_SEMCTL                  = 394\n\tSYS_SHMGET                  = 395\n\tSYS_SHMCTL                  = 396\n\tSYS_SHMAT                   = 397\n\tSYS_SHMDT                   = 398\n\tSYS_MSGGET                  = 399\n\tSYS_MSGSND                  = 400\n\tSYS_MSGRCV                  = 401\n\tSYS_MSGCTL                  = 402\n\tSYS_PIDFD_SEND_SIGNAL       = 424\n\tSYS_IO_URING_SETUP          = 425\n\tSYS_IO_URING_ENTER          = 426\n\tSYS_IO_URING_REGISTER       = 427\n\tSYS_OPEN_TREE               = 428\n\tSYS_MOVE_MOUNT              = 429\n\tSYS_FSOPEN                  = 430\n\tSYS_FSCONFIG                = 431\n\tSYS_FSMOUNT                 = 432\n\tSYS_FSPICK                  = 433\n\tSYS_PIDFD_OPEN              = 434\n\tSYS_CLOSE_RANGE             = 436\n\tSYS_OPENAT2                 = 437\n\tSYS_PIDFD_GETFD             = 438\n\tSYS_FACCESSAT2              = 439\n\tSYS_PROCESS_MADVISE         = 440\n\tSYS_EPOLL_PWAIT2            = 441\n\tSYS_MOUNT_SETATTR           = 442\n\tSYS_QUOTACTL_FD             = 443\n\tSYS_LANDLOCK_CREATE_RULESET = 444\n\tSYS_LANDLOCK_ADD_RULE       = 445\n\tSYS_LANDLOCK_RESTRICT_SELF  = 446\n\tSYS_PROCESS_MRELEASE        = 448\n\tSYS_FUTEX_WAITV             = 449\n\tSYS_SET_MEMPOLICY_HOME_NODE = 450\n\tSYS_CACHESTAT               = 451\n\tSYS_FCHMODAT2               = 452\n\tSYS_MAP_SHADOW_STACK        = 453\n\tSYS_FUTEX_WAKE              = 454\n\tSYS_FUTEX_WAIT              = 455\n\tSYS_FUTEX_REQUEUE           = 456\n\tSYS_STATMOUNT               = 457\n\tSYS_LISTMOUNT               = 458\n\tSYS_LSM_GET_SELF_ATTR       = 459\n\tSYS_LSM_SET_SELF_ATTR       = 460\n\tSYS_LSM_LIST_MODULES        = 461\n\tSYS_MSEAL                   = 462\n\tSYS_SETXATTRAT              = 463\n\tSYS_GETXATTRAT              = 464\n\tSYS_LISTXATTRAT             = 465\n\tSYS_REMOVEXATTRAT           = 466\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go",
    "content": "// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build 386 && netbsd\n\npackage unix\n\nconst (\n\tSYS_EXIT                 = 1   // { void|sys||exit(int rval); }\n\tSYS_FORK                 = 2   // { int|sys||fork(void); }\n\tSYS_READ                 = 3   // { ssize_t|sys||read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE                = 4   // { ssize_t|sys||write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN                 = 5   // { int|sys||open(const char *path, int flags, ... mode_t mode); }\n\tSYS_CLOSE                = 6   // { int|sys||close(int fd); }\n\tSYS_LINK                 = 9   // { int|sys||link(const char *path, const char *link); }\n\tSYS_UNLINK               = 10  // { int|sys||unlink(const char *path); }\n\tSYS_CHDIR                = 12  // { int|sys||chdir(const char *path); }\n\tSYS_FCHDIR               = 13  // { int|sys||fchdir(int fd); }\n\tSYS_CHMOD                = 15  // { int|sys||chmod(const char *path, mode_t mode); }\n\tSYS_CHOWN                = 16  // { int|sys||chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_BREAK                = 17  // { int|sys||obreak(char *nsize); }\n\tSYS_GETPID               = 20  // { pid_t|sys||getpid_with_ppid(void); }\n\tSYS_UNMOUNT              = 22  // { int|sys||unmount(const char *path, int flags); }\n\tSYS_SETUID               = 23  // { int|sys||setuid(uid_t uid); }\n\tSYS_GETUID               = 24  // { uid_t|sys||getuid_with_euid(void); }\n\tSYS_GETEUID              = 25  // { uid_t|sys||geteuid(void); }\n\tSYS_PTRACE               = 26  // { int|sys||ptrace(int req, pid_t pid, void *addr, int data); }\n\tSYS_RECVMSG              = 27  // { ssize_t|sys||recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG              = 28  // { ssize_t|sys||sendmsg(int s, const struct msghdr *msg, int flags); }\n\tSYS_RECVFROM             = 29  // { ssize_t|sys||recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }\n\tSYS_ACCEPT               = 30  // { int|sys||accept(int s, struct sockaddr *name, socklen_t *anamelen); }\n\tSYS_GETPEERNAME          = 31  // { int|sys||getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_GETSOCKNAME          = 32  // { int|sys||getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_ACCESS               = 33  // { int|sys||access(const char *path, int flags); }\n\tSYS_CHFLAGS              = 34  // { int|sys||chflags(const char *path, u_long flags); }\n\tSYS_FCHFLAGS             = 35  // { int|sys||fchflags(int fd, u_long flags); }\n\tSYS_SYNC                 = 36  // { void|sys||sync(void); }\n\tSYS_KILL                 = 37  // { int|sys||kill(pid_t pid, int signum); }\n\tSYS_GETPPID              = 39  // { pid_t|sys||getppid(void); }\n\tSYS_DUP                  = 41  // { int|sys||dup(int fd); }\n\tSYS_PIPE                 = 42  // { int|sys||pipe(void); }\n\tSYS_GETEGID              = 43  // { gid_t|sys||getegid(void); }\n\tSYS_PROFIL               = 44  // { int|sys||profil(char *samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE               = 45  // { int|sys||ktrace(const char *fname, int ops, int facs, pid_t pid); }\n\tSYS_GETGID               = 47  // { gid_t|sys||getgid_with_egid(void); }\n\tSYS___GETLOGIN           = 49  // { int|sys||__getlogin(char *namebuf, size_t namelen); }\n\tSYS___SETLOGIN           = 50  // { int|sys||__setlogin(const char *namebuf); }\n\tSYS_ACCT                 = 51  // { int|sys||acct(const char *path); }\n\tSYS_IOCTL                = 54  // { int|sys||ioctl(int fd, u_long com, ... void *data); }\n\tSYS_REVOKE               = 56  // { int|sys||revoke(const char *path); }\n\tSYS_SYMLINK              = 57  // { int|sys||symlink(const char *path, const char *link); }\n\tSYS_READLINK             = 58  // { ssize_t|sys||readlink(const char *path, char *buf, size_t count); }\n\tSYS_EXECVE               = 59  // { int|sys||execve(const char *path, char * const *argp, char * const *envp); }\n\tSYS_UMASK                = 60  // { mode_t|sys||umask(mode_t newmask); }\n\tSYS_CHROOT               = 61  // { int|sys||chroot(const char *path); }\n\tSYS_VFORK                = 66  // { int|sys||vfork(void); }\n\tSYS_SBRK                 = 69  // { int|sys||sbrk(intptr_t incr); }\n\tSYS_SSTK                 = 70  // { int|sys||sstk(int incr); }\n\tSYS_VADVISE              = 72  // { int|sys||ovadvise(int anom); }\n\tSYS_MUNMAP               = 73  // { int|sys||munmap(void *addr, size_t len); }\n\tSYS_MPROTECT             = 74  // { int|sys||mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE              = 75  // { int|sys||madvise(void *addr, size_t len, int behav); }\n\tSYS_MINCORE              = 78  // { int|sys||mincore(void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS            = 79  // { int|sys||getgroups(int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS            = 80  // { int|sys||setgroups(int gidsetsize, const gid_t *gidset); }\n\tSYS_GETPGRP              = 81  // { int|sys||getpgrp(void); }\n\tSYS_SETPGID              = 82  // { int|sys||setpgid(pid_t pid, pid_t pgid); }\n\tSYS_DUP2                 = 90  // { int|sys||dup2(int from, int to); }\n\tSYS_FCNTL                = 92  // { int|sys||fcntl(int fd, int cmd, ... void *arg); }\n\tSYS_FSYNC                = 95  // { int|sys||fsync(int fd); }\n\tSYS_SETPRIORITY          = 96  // { int|sys||setpriority(int which, id_t who, int prio); }\n\tSYS_CONNECT              = 98  // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_GETPRIORITY          = 100 // { int|sys||getpriority(int which, id_t who); }\n\tSYS_BIND                 = 104 // { int|sys||bind(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_SETSOCKOPT           = 105 // { int|sys||setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }\n\tSYS_LISTEN               = 106 // { int|sys||listen(int s, int backlog); }\n\tSYS_GETSOCKOPT           = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }\n\tSYS_READV                = 120 // { ssize_t|sys||readv(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_WRITEV               = 121 // { ssize_t|sys||writev(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_FCHOWN               = 123 // { int|sys||fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS_FCHMOD               = 124 // { int|sys||fchmod(int fd, mode_t mode); }\n\tSYS_SETREUID             = 126 // { int|sys||setreuid(uid_t ruid, uid_t euid); }\n\tSYS_SETREGID             = 127 // { int|sys||setregid(gid_t rgid, gid_t egid); }\n\tSYS_RENAME               = 128 // { int|sys||rename(const char *from, const char *to); }\n\tSYS_FLOCK                = 131 // { int|sys||flock(int fd, int how); }\n\tSYS_MKFIFO               = 132 // { int|sys||mkfifo(const char *path, mode_t mode); }\n\tSYS_SENDTO               = 133 // { ssize_t|sys||sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }\n\tSYS_SHUTDOWN             = 134 // { int|sys||shutdown(int s, int how); }\n\tSYS_SOCKETPAIR           = 135 // { int|sys||socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR                = 136 // { int|sys||mkdir(const char *path, mode_t mode); }\n\tSYS_RMDIR                = 137 // { int|sys||rmdir(const char *path); }\n\tSYS_SETSID               = 147 // { int|sys||setsid(void); }\n\tSYS_SYSARCH              = 165 // { int|sys||sysarch(int op, void *parms); }\n\tSYS_PREAD                = 173 // { ssize_t|sys||pread(int fd, void *buf, size_t nbyte, int PAD, off_t offset); }\n\tSYS_PWRITE               = 174 // { ssize_t|sys||pwrite(int fd, const void *buf, size_t nbyte, int PAD, off_t offset); }\n\tSYS_NTP_ADJTIME          = 176 // { int|sys||ntp_adjtime(struct timex *tp); }\n\tSYS_SETGID               = 181 // { int|sys||setgid(gid_t gid); }\n\tSYS_SETEGID              = 182 // { int|sys||setegid(gid_t egid); }\n\tSYS_SETEUID              = 183 // { int|sys||seteuid(uid_t euid); }\n\tSYS_PATHCONF             = 191 // { long|sys||pathconf(const char *path, int name); }\n\tSYS_FPATHCONF            = 192 // { long|sys||fpathconf(int fd, int name); }\n\tSYS_GETRLIMIT            = 194 // { int|sys||getrlimit(int which, struct rlimit *rlp); }\n\tSYS_SETRLIMIT            = 195 // { int|sys||setrlimit(int which, const struct rlimit *rlp); }\n\tSYS_MMAP                 = 197 // { void *|sys||mmap(void *addr, size_t len, int prot, int flags, int fd, long PAD, off_t pos); }\n\tSYS_LSEEK                = 199 // { off_t|sys||lseek(int fd, int PAD, off_t offset, int whence); }\n\tSYS_TRUNCATE             = 200 // { int|sys||truncate(const char *path, int PAD, off_t length); }\n\tSYS_FTRUNCATE            = 201 // { int|sys||ftruncate(int fd, int PAD, off_t length); }\n\tSYS___SYSCTL             = 202 // { int|sys||__sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, const void *new, size_t newlen); }\n\tSYS_MLOCK                = 203 // { int|sys||mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK              = 204 // { int|sys||munlock(const void *addr, size_t len); }\n\tSYS_UNDELETE             = 205 // { int|sys||undelete(const char *path); }\n\tSYS_GETPGID              = 207 // { pid_t|sys||getpgid(pid_t pid); }\n\tSYS_REBOOT               = 208 // { int|sys||reboot(int opt, char *bootstr); }\n\tSYS_POLL                 = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_SEMGET               = 221 // { int|sys||semget(key_t key, int nsems, int semflg); }\n\tSYS_SEMOP                = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_SEMCONFIG            = 223 // { int|sys||semconfig(int flag); }\n\tSYS_MSGGET               = 225 // { int|sys||msgget(key_t key, int msgflg); }\n\tSYS_MSGSND               = 226 // { int|sys||msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV               = 227 // { ssize_t|sys||msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT                = 228 // { void *|sys||shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT                = 230 // { int|sys||shmdt(const void *shmaddr); }\n\tSYS_SHMGET               = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); }\n\tSYS_TIMER_CREATE         = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); }\n\tSYS_TIMER_DELETE         = 236 // { int|sys||timer_delete(timer_t timerid); }\n\tSYS_TIMER_GETOVERRUN     = 239 // { int|sys||timer_getoverrun(timer_t timerid); }\n\tSYS_FDATASYNC            = 241 // { int|sys||fdatasync(int fd); }\n\tSYS_MLOCKALL             = 242 // { int|sys||mlockall(int flags); }\n\tSYS_MUNLOCKALL           = 243 // { int|sys||munlockall(void); }\n\tSYS_SIGQUEUEINFO         = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); }\n\tSYS_MODCTL               = 246 // { int|sys||modctl(int cmd, void *arg); }\n\tSYS___POSIX_RENAME       = 270 // { int|sys||__posix_rename(const char *from, const char *to); }\n\tSYS_SWAPCTL              = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); }\n\tSYS_MINHERIT             = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); }\n\tSYS_LCHMOD               = 274 // { int|sys||lchmod(const char *path, mode_t mode); }\n\tSYS_LCHOWN               = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_MSYNC                = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); }\n\tSYS___POSIX_CHOWN        = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS___POSIX_FCHOWN       = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS___POSIX_LCHOWN       = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_GETSID               = 286 // { pid_t|sys||getsid(pid_t pid); }\n\tSYS___CLONE              = 287 // { pid_t|sys||__clone(int flags, void *stack); }\n\tSYS_FKTRACE              = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); }\n\tSYS_PREADV               = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); }\n\tSYS_PWRITEV              = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); }\n\tSYS___GETCWD             = 296 // { int|sys||__getcwd(char *bufp, size_t length); }\n\tSYS_FCHROOT              = 297 // { int|sys||fchroot(int fd); }\n\tSYS_LCHFLAGS             = 304 // { int|sys||lchflags(const char *path, u_long flags); }\n\tSYS_ISSETUGID            = 305 // { int|sys||issetugid(void); }\n\tSYS_UTRACE               = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); }\n\tSYS_GETCONTEXT           = 307 // { int|sys||getcontext(struct __ucontext *ucp); }\n\tSYS_SETCONTEXT           = 308 // { int|sys||setcontext(const struct __ucontext *ucp); }\n\tSYS__LWP_CREATE          = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); }\n\tSYS__LWP_EXIT            = 310 // { int|sys||_lwp_exit(void); }\n\tSYS__LWP_SELF            = 311 // { lwpid_t|sys||_lwp_self(void); }\n\tSYS__LWP_WAIT            = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); }\n\tSYS__LWP_SUSPEND         = 313 // { int|sys||_lwp_suspend(lwpid_t target); }\n\tSYS__LWP_CONTINUE        = 314 // { int|sys||_lwp_continue(lwpid_t target); }\n\tSYS__LWP_WAKEUP          = 315 // { int|sys||_lwp_wakeup(lwpid_t target); }\n\tSYS__LWP_GETPRIVATE      = 316 // { void *|sys||_lwp_getprivate(void); }\n\tSYS__LWP_SETPRIVATE      = 317 // { void|sys||_lwp_setprivate(void *ptr); }\n\tSYS__LWP_KILL            = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); }\n\tSYS__LWP_DETACH          = 319 // { int|sys||_lwp_detach(lwpid_t target); }\n\tSYS__LWP_UNPARK          = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); }\n\tSYS__LWP_UNPARK_ALL      = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); }\n\tSYS__LWP_SETNAME         = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); }\n\tSYS__LWP_GETNAME         = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); }\n\tSYS__LWP_CTL             = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); }\n\tSYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); }\n\tSYS_PMC_GET_INFO         = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); }\n\tSYS_PMC_CONTROL          = 342 // { int|sys||pmc_control(int ctr, int op, void *args); }\n\tSYS_RASCTL               = 343 // { int|sys||rasctl(void *addr, size_t len, int op); }\n\tSYS_KQUEUE               = 344 // { int|sys||kqueue(void); }\n\tSYS__SCHED_SETPARAM      = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); }\n\tSYS__SCHED_GETPARAM      = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); }\n\tSYS__SCHED_SETAFFINITY   = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); }\n\tSYS__SCHED_GETAFFINITY   = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); }\n\tSYS_SCHED_YIELD          = 350 // { int|sys||sched_yield(void); }\n\tSYS_FSYNC_RANGE          = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); }\n\tSYS_UUIDGEN              = 355 // { int|sys||uuidgen(struct uuid *store, int count); }\n\tSYS_GETVFSSTAT           = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); }\n\tSYS_STATVFS1             = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); }\n\tSYS_FSTATVFS1            = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); }\n\tSYS_EXTATTRCTL           = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FILE     = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FILE     = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FILE  = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FD       = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FD       = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FD    = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_LINK     = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_LINK     = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_LINK  = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_LIST_FD      = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_FILE    = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_LINK    = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_SETXATTR             = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); }\n\tSYS_LSETXATTR            = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); }\n\tSYS_FSETXATTR            = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); }\n\tSYS_GETXATTR             = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); }\n\tSYS_LGETXATTR            = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); }\n\tSYS_FGETXATTR            = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); }\n\tSYS_LISTXATTR            = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); }\n\tSYS_LLISTXATTR           = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); }\n\tSYS_FLISTXATTR           = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); }\n\tSYS_REMOVEXATTR          = 384 // { int|sys||removexattr(const char *path, const char *name); }\n\tSYS_LREMOVEXATTR         = 385 // { int|sys||lremovexattr(const char *path, const char *name); }\n\tSYS_FREMOVEXATTR         = 386 // { int|sys||fremovexattr(int fd, const char *name); }\n\tSYS_GETDENTS             = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); }\n\tSYS_SOCKET               = 394 // { int|sys|30|socket(int domain, int type, int protocol); }\n\tSYS_GETFH                = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); }\n\tSYS_MOUNT                = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); }\n\tSYS_MREMAP               = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); }\n\tSYS_PSET_CREATE          = 412 // { int|sys||pset_create(psetid_t *psid); }\n\tSYS_PSET_DESTROY         = 413 // { int|sys||pset_destroy(psetid_t psid); }\n\tSYS_PSET_ASSIGN          = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); }\n\tSYS__PSET_BIND           = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); }\n\tSYS_POSIX_FADVISE        = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); }\n\tSYS_SELECT               = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_GETTIMEOFDAY         = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); }\n\tSYS_SETTIMEOFDAY         = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); }\n\tSYS_UTIMES               = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); }\n\tSYS_ADJTIME              = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); }\n\tSYS_FUTIMES              = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); }\n\tSYS_LUTIMES              = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); }\n\tSYS_SETITIMER            = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_GETITIMER            = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); }\n\tSYS_CLOCK_GETTIME        = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME        = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES         = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_NANOSLEEP            = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS___SIGTIMEDWAIT       = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); }\n\tSYS__LWP_PARK            = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); }\n\tSYS_KEVENT               = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); }\n\tSYS_PSELECT              = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_POLLTS               = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_STAT                 = 439 // { int|sys|50|stat(const char *path, struct stat *ub); }\n\tSYS_FSTAT                = 440 // { int|sys|50|fstat(int fd, struct stat *sb); }\n\tSYS_LSTAT                = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); }\n\tSYS___SEMCTL             = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); }\n\tSYS_SHMCTL               = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_MSGCTL               = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_GETRUSAGE            = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); }\n\tSYS_TIMER_SETTIME        = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }\n\tSYS_TIMER_GETTIME        = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); }\n\tSYS_NTP_GETTIME          = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); }\n\tSYS_WAIT4                = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); }\n\tSYS_MKNOD                = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); }\n\tSYS_FHSTAT               = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); }\n\tSYS_PIPE2                = 453 // { int|sys||pipe2(int *fildes, int flags); }\n\tSYS_DUP3                 = 454 // { int|sys||dup3(int from, int to, int flags); }\n\tSYS_KQUEUE1              = 455 // { int|sys||kqueue1(int flags); }\n\tSYS_PACCEPT              = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); }\n\tSYS_LINKAT               = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); }\n\tSYS_RENAMEAT             = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); }\n\tSYS_MKFIFOAT             = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); }\n\tSYS_MKNODAT              = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); }\n\tSYS_MKDIRAT              = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); }\n\tSYS_FACCESSAT            = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); }\n\tSYS_FCHMODAT             = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT             = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); }\n\tSYS_FEXECVE              = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); }\n\tSYS_FSTATAT              = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); }\n\tSYS_UTIMENSAT            = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); }\n\tSYS_OPENAT               = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); }\n\tSYS_READLINKAT           = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); }\n\tSYS_SYMLINKAT            = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); }\n\tSYS_UNLINKAT             = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); }\n\tSYS_FUTIMENS             = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); }\n\tSYS___QUOTACTL           = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); }\n\tSYS_POSIX_SPAWN          = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); }\n\tSYS_RECVMMSG             = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); }\n\tSYS_SENDMMSG             = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go",
    "content": "// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && netbsd\n\npackage unix\n\nconst (\n\tSYS_EXIT                 = 1   // { void|sys||exit(int rval); }\n\tSYS_FORK                 = 2   // { int|sys||fork(void); }\n\tSYS_READ                 = 3   // { ssize_t|sys||read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE                = 4   // { ssize_t|sys||write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN                 = 5   // { int|sys||open(const char *path, int flags, ... mode_t mode); }\n\tSYS_CLOSE                = 6   // { int|sys||close(int fd); }\n\tSYS_LINK                 = 9   // { int|sys||link(const char *path, const char *link); }\n\tSYS_UNLINK               = 10  // { int|sys||unlink(const char *path); }\n\tSYS_CHDIR                = 12  // { int|sys||chdir(const char *path); }\n\tSYS_FCHDIR               = 13  // { int|sys||fchdir(int fd); }\n\tSYS_CHMOD                = 15  // { int|sys||chmod(const char *path, mode_t mode); }\n\tSYS_CHOWN                = 16  // { int|sys||chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_BREAK                = 17  // { int|sys||obreak(char *nsize); }\n\tSYS_GETPID               = 20  // { pid_t|sys||getpid_with_ppid(void); }\n\tSYS_UNMOUNT              = 22  // { int|sys||unmount(const char *path, int flags); }\n\tSYS_SETUID               = 23  // { int|sys||setuid(uid_t uid); }\n\tSYS_GETUID               = 24  // { uid_t|sys||getuid_with_euid(void); }\n\tSYS_GETEUID              = 25  // { uid_t|sys||geteuid(void); }\n\tSYS_PTRACE               = 26  // { int|sys||ptrace(int req, pid_t pid, void *addr, int data); }\n\tSYS_RECVMSG              = 27  // { ssize_t|sys||recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG              = 28  // { ssize_t|sys||sendmsg(int s, const struct msghdr *msg, int flags); }\n\tSYS_RECVFROM             = 29  // { ssize_t|sys||recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }\n\tSYS_ACCEPT               = 30  // { int|sys||accept(int s, struct sockaddr *name, socklen_t *anamelen); }\n\tSYS_GETPEERNAME          = 31  // { int|sys||getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_GETSOCKNAME          = 32  // { int|sys||getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_ACCESS               = 33  // { int|sys||access(const char *path, int flags); }\n\tSYS_CHFLAGS              = 34  // { int|sys||chflags(const char *path, u_long flags); }\n\tSYS_FCHFLAGS             = 35  // { int|sys||fchflags(int fd, u_long flags); }\n\tSYS_SYNC                 = 36  // { void|sys||sync(void); }\n\tSYS_KILL                 = 37  // { int|sys||kill(pid_t pid, int signum); }\n\tSYS_GETPPID              = 39  // { pid_t|sys||getppid(void); }\n\tSYS_DUP                  = 41  // { int|sys||dup(int fd); }\n\tSYS_PIPE                 = 42  // { int|sys||pipe(void); }\n\tSYS_GETEGID              = 43  // { gid_t|sys||getegid(void); }\n\tSYS_PROFIL               = 44  // { int|sys||profil(char *samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE               = 45  // { int|sys||ktrace(const char *fname, int ops, int facs, pid_t pid); }\n\tSYS_GETGID               = 47  // { gid_t|sys||getgid_with_egid(void); }\n\tSYS___GETLOGIN           = 49  // { int|sys||__getlogin(char *namebuf, size_t namelen); }\n\tSYS___SETLOGIN           = 50  // { int|sys||__setlogin(const char *namebuf); }\n\tSYS_ACCT                 = 51  // { int|sys||acct(const char *path); }\n\tSYS_IOCTL                = 54  // { int|sys||ioctl(int fd, u_long com, ... void *data); }\n\tSYS_REVOKE               = 56  // { int|sys||revoke(const char *path); }\n\tSYS_SYMLINK              = 57  // { int|sys||symlink(const char *path, const char *link); }\n\tSYS_READLINK             = 58  // { ssize_t|sys||readlink(const char *path, char *buf, size_t count); }\n\tSYS_EXECVE               = 59  // { int|sys||execve(const char *path, char * const *argp, char * const *envp); }\n\tSYS_UMASK                = 60  // { mode_t|sys||umask(mode_t newmask); }\n\tSYS_CHROOT               = 61  // { int|sys||chroot(const char *path); }\n\tSYS_VFORK                = 66  // { int|sys||vfork(void); }\n\tSYS_SBRK                 = 69  // { int|sys||sbrk(intptr_t incr); }\n\tSYS_SSTK                 = 70  // { int|sys||sstk(int incr); }\n\tSYS_VADVISE              = 72  // { int|sys||ovadvise(int anom); }\n\tSYS_MUNMAP               = 73  // { int|sys||munmap(void *addr, size_t len); }\n\tSYS_MPROTECT             = 74  // { int|sys||mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE              = 75  // { int|sys||madvise(void *addr, size_t len, int behav); }\n\tSYS_MINCORE              = 78  // { int|sys||mincore(void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS            = 79  // { int|sys||getgroups(int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS            = 80  // { int|sys||setgroups(int gidsetsize, const gid_t *gidset); }\n\tSYS_GETPGRP              = 81  // { int|sys||getpgrp(void); }\n\tSYS_SETPGID              = 82  // { int|sys||setpgid(pid_t pid, pid_t pgid); }\n\tSYS_DUP2                 = 90  // { int|sys||dup2(int from, int to); }\n\tSYS_FCNTL                = 92  // { int|sys||fcntl(int fd, int cmd, ... void *arg); }\n\tSYS_FSYNC                = 95  // { int|sys||fsync(int fd); }\n\tSYS_SETPRIORITY          = 96  // { int|sys||setpriority(int which, id_t who, int prio); }\n\tSYS_CONNECT              = 98  // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_GETPRIORITY          = 100 // { int|sys||getpriority(int which, id_t who); }\n\tSYS_BIND                 = 104 // { int|sys||bind(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_SETSOCKOPT           = 105 // { int|sys||setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }\n\tSYS_LISTEN               = 106 // { int|sys||listen(int s, int backlog); }\n\tSYS_GETSOCKOPT           = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }\n\tSYS_READV                = 120 // { ssize_t|sys||readv(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_WRITEV               = 121 // { ssize_t|sys||writev(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_FCHOWN               = 123 // { int|sys||fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS_FCHMOD               = 124 // { int|sys||fchmod(int fd, mode_t mode); }\n\tSYS_SETREUID             = 126 // { int|sys||setreuid(uid_t ruid, uid_t euid); }\n\tSYS_SETREGID             = 127 // { int|sys||setregid(gid_t rgid, gid_t egid); }\n\tSYS_RENAME               = 128 // { int|sys||rename(const char *from, const char *to); }\n\tSYS_FLOCK                = 131 // { int|sys||flock(int fd, int how); }\n\tSYS_MKFIFO               = 132 // { int|sys||mkfifo(const char *path, mode_t mode); }\n\tSYS_SENDTO               = 133 // { ssize_t|sys||sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }\n\tSYS_SHUTDOWN             = 134 // { int|sys||shutdown(int s, int how); }\n\tSYS_SOCKETPAIR           = 135 // { int|sys||socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR                = 136 // { int|sys||mkdir(const char *path, mode_t mode); }\n\tSYS_RMDIR                = 137 // { int|sys||rmdir(const char *path); }\n\tSYS_SETSID               = 147 // { int|sys||setsid(void); }\n\tSYS_SYSARCH              = 165 // { int|sys||sysarch(int op, void *parms); }\n\tSYS_PREAD                = 173 // { ssize_t|sys||pread(int fd, void *buf, size_t nbyte, int PAD, off_t offset); }\n\tSYS_PWRITE               = 174 // { ssize_t|sys||pwrite(int fd, const void *buf, size_t nbyte, int PAD, off_t offset); }\n\tSYS_NTP_ADJTIME          = 176 // { int|sys||ntp_adjtime(struct timex *tp); }\n\tSYS_SETGID               = 181 // { int|sys||setgid(gid_t gid); }\n\tSYS_SETEGID              = 182 // { int|sys||setegid(gid_t egid); }\n\tSYS_SETEUID              = 183 // { int|sys||seteuid(uid_t euid); }\n\tSYS_PATHCONF             = 191 // { long|sys||pathconf(const char *path, int name); }\n\tSYS_FPATHCONF            = 192 // { long|sys||fpathconf(int fd, int name); }\n\tSYS_GETRLIMIT            = 194 // { int|sys||getrlimit(int which, struct rlimit *rlp); }\n\tSYS_SETRLIMIT            = 195 // { int|sys||setrlimit(int which, const struct rlimit *rlp); }\n\tSYS_MMAP                 = 197 // { void *|sys||mmap(void *addr, size_t len, int prot, int flags, int fd, long PAD, off_t pos); }\n\tSYS_LSEEK                = 199 // { off_t|sys||lseek(int fd, int PAD, off_t offset, int whence); }\n\tSYS_TRUNCATE             = 200 // { int|sys||truncate(const char *path, int PAD, off_t length); }\n\tSYS_FTRUNCATE            = 201 // { int|sys||ftruncate(int fd, int PAD, off_t length); }\n\tSYS___SYSCTL             = 202 // { int|sys||__sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, const void *new, size_t newlen); }\n\tSYS_MLOCK                = 203 // { int|sys||mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK              = 204 // { int|sys||munlock(const void *addr, size_t len); }\n\tSYS_UNDELETE             = 205 // { int|sys||undelete(const char *path); }\n\tSYS_GETPGID              = 207 // { pid_t|sys||getpgid(pid_t pid); }\n\tSYS_REBOOT               = 208 // { int|sys||reboot(int opt, char *bootstr); }\n\tSYS_POLL                 = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_SEMGET               = 221 // { int|sys||semget(key_t key, int nsems, int semflg); }\n\tSYS_SEMOP                = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_SEMCONFIG            = 223 // { int|sys||semconfig(int flag); }\n\tSYS_MSGGET               = 225 // { int|sys||msgget(key_t key, int msgflg); }\n\tSYS_MSGSND               = 226 // { int|sys||msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV               = 227 // { ssize_t|sys||msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT                = 228 // { void *|sys||shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT                = 230 // { int|sys||shmdt(const void *shmaddr); }\n\tSYS_SHMGET               = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); }\n\tSYS_TIMER_CREATE         = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); }\n\tSYS_TIMER_DELETE         = 236 // { int|sys||timer_delete(timer_t timerid); }\n\tSYS_TIMER_GETOVERRUN     = 239 // { int|sys||timer_getoverrun(timer_t timerid); }\n\tSYS_FDATASYNC            = 241 // { int|sys||fdatasync(int fd); }\n\tSYS_MLOCKALL             = 242 // { int|sys||mlockall(int flags); }\n\tSYS_MUNLOCKALL           = 243 // { int|sys||munlockall(void); }\n\tSYS_SIGQUEUEINFO         = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); }\n\tSYS_MODCTL               = 246 // { int|sys||modctl(int cmd, void *arg); }\n\tSYS___POSIX_RENAME       = 270 // { int|sys||__posix_rename(const char *from, const char *to); }\n\tSYS_SWAPCTL              = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); }\n\tSYS_MINHERIT             = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); }\n\tSYS_LCHMOD               = 274 // { int|sys||lchmod(const char *path, mode_t mode); }\n\tSYS_LCHOWN               = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_MSYNC                = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); }\n\tSYS___POSIX_CHOWN        = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS___POSIX_FCHOWN       = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS___POSIX_LCHOWN       = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_GETSID               = 286 // { pid_t|sys||getsid(pid_t pid); }\n\tSYS___CLONE              = 287 // { pid_t|sys||__clone(int flags, void *stack); }\n\tSYS_FKTRACE              = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); }\n\tSYS_PREADV               = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); }\n\tSYS_PWRITEV              = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); }\n\tSYS___GETCWD             = 296 // { int|sys||__getcwd(char *bufp, size_t length); }\n\tSYS_FCHROOT              = 297 // { int|sys||fchroot(int fd); }\n\tSYS_LCHFLAGS             = 304 // { int|sys||lchflags(const char *path, u_long flags); }\n\tSYS_ISSETUGID            = 305 // { int|sys||issetugid(void); }\n\tSYS_UTRACE               = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); }\n\tSYS_GETCONTEXT           = 307 // { int|sys||getcontext(struct __ucontext *ucp); }\n\tSYS_SETCONTEXT           = 308 // { int|sys||setcontext(const struct __ucontext *ucp); }\n\tSYS__LWP_CREATE          = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); }\n\tSYS__LWP_EXIT            = 310 // { int|sys||_lwp_exit(void); }\n\tSYS__LWP_SELF            = 311 // { lwpid_t|sys||_lwp_self(void); }\n\tSYS__LWP_WAIT            = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); }\n\tSYS__LWP_SUSPEND         = 313 // { int|sys||_lwp_suspend(lwpid_t target); }\n\tSYS__LWP_CONTINUE        = 314 // { int|sys||_lwp_continue(lwpid_t target); }\n\tSYS__LWP_WAKEUP          = 315 // { int|sys||_lwp_wakeup(lwpid_t target); }\n\tSYS__LWP_GETPRIVATE      = 316 // { void *|sys||_lwp_getprivate(void); }\n\tSYS__LWP_SETPRIVATE      = 317 // { void|sys||_lwp_setprivate(void *ptr); }\n\tSYS__LWP_KILL            = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); }\n\tSYS__LWP_DETACH          = 319 // { int|sys||_lwp_detach(lwpid_t target); }\n\tSYS__LWP_UNPARK          = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); }\n\tSYS__LWP_UNPARK_ALL      = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); }\n\tSYS__LWP_SETNAME         = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); }\n\tSYS__LWP_GETNAME         = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); }\n\tSYS__LWP_CTL             = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); }\n\tSYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); }\n\tSYS_PMC_GET_INFO         = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); }\n\tSYS_PMC_CONTROL          = 342 // { int|sys||pmc_control(int ctr, int op, void *args); }\n\tSYS_RASCTL               = 343 // { int|sys||rasctl(void *addr, size_t len, int op); }\n\tSYS_KQUEUE               = 344 // { int|sys||kqueue(void); }\n\tSYS__SCHED_SETPARAM      = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); }\n\tSYS__SCHED_GETPARAM      = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); }\n\tSYS__SCHED_SETAFFINITY   = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); }\n\tSYS__SCHED_GETAFFINITY   = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); }\n\tSYS_SCHED_YIELD          = 350 // { int|sys||sched_yield(void); }\n\tSYS_FSYNC_RANGE          = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); }\n\tSYS_UUIDGEN              = 355 // { int|sys||uuidgen(struct uuid *store, int count); }\n\tSYS_GETVFSSTAT           = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); }\n\tSYS_STATVFS1             = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); }\n\tSYS_FSTATVFS1            = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); }\n\tSYS_EXTATTRCTL           = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FILE     = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FILE     = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FILE  = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FD       = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FD       = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FD    = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_LINK     = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_LINK     = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_LINK  = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_LIST_FD      = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_FILE    = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_LINK    = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_SETXATTR             = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); }\n\tSYS_LSETXATTR            = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); }\n\tSYS_FSETXATTR            = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); }\n\tSYS_GETXATTR             = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); }\n\tSYS_LGETXATTR            = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); }\n\tSYS_FGETXATTR            = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); }\n\tSYS_LISTXATTR            = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); }\n\tSYS_LLISTXATTR           = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); }\n\tSYS_FLISTXATTR           = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); }\n\tSYS_REMOVEXATTR          = 384 // { int|sys||removexattr(const char *path, const char *name); }\n\tSYS_LREMOVEXATTR         = 385 // { int|sys||lremovexattr(const char *path, const char *name); }\n\tSYS_FREMOVEXATTR         = 386 // { int|sys||fremovexattr(int fd, const char *name); }\n\tSYS_GETDENTS             = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); }\n\tSYS_SOCKET               = 394 // { int|sys|30|socket(int domain, int type, int protocol); }\n\tSYS_GETFH                = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); }\n\tSYS_MOUNT                = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); }\n\tSYS_MREMAP               = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); }\n\tSYS_PSET_CREATE          = 412 // { int|sys||pset_create(psetid_t *psid); }\n\tSYS_PSET_DESTROY         = 413 // { int|sys||pset_destroy(psetid_t psid); }\n\tSYS_PSET_ASSIGN          = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); }\n\tSYS__PSET_BIND           = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); }\n\tSYS_POSIX_FADVISE        = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); }\n\tSYS_SELECT               = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_GETTIMEOFDAY         = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); }\n\tSYS_SETTIMEOFDAY         = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); }\n\tSYS_UTIMES               = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); }\n\tSYS_ADJTIME              = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); }\n\tSYS_FUTIMES              = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); }\n\tSYS_LUTIMES              = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); }\n\tSYS_SETITIMER            = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_GETITIMER            = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); }\n\tSYS_CLOCK_GETTIME        = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME        = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES         = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_NANOSLEEP            = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS___SIGTIMEDWAIT       = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); }\n\tSYS__LWP_PARK            = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); }\n\tSYS_KEVENT               = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); }\n\tSYS_PSELECT              = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_POLLTS               = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_STAT                 = 439 // { int|sys|50|stat(const char *path, struct stat *ub); }\n\tSYS_FSTAT                = 440 // { int|sys|50|fstat(int fd, struct stat *sb); }\n\tSYS_LSTAT                = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); }\n\tSYS___SEMCTL             = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); }\n\tSYS_SHMCTL               = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_MSGCTL               = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_GETRUSAGE            = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); }\n\tSYS_TIMER_SETTIME        = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }\n\tSYS_TIMER_GETTIME        = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); }\n\tSYS_NTP_GETTIME          = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); }\n\tSYS_WAIT4                = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); }\n\tSYS_MKNOD                = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); }\n\tSYS_FHSTAT               = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); }\n\tSYS_PIPE2                = 453 // { int|sys||pipe2(int *fildes, int flags); }\n\tSYS_DUP3                 = 454 // { int|sys||dup3(int from, int to, int flags); }\n\tSYS_KQUEUE1              = 455 // { int|sys||kqueue1(int flags); }\n\tSYS_PACCEPT              = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); }\n\tSYS_LINKAT               = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); }\n\tSYS_RENAMEAT             = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); }\n\tSYS_MKFIFOAT             = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); }\n\tSYS_MKNODAT              = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); }\n\tSYS_MKDIRAT              = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); }\n\tSYS_FACCESSAT            = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); }\n\tSYS_FCHMODAT             = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT             = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); }\n\tSYS_FEXECVE              = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); }\n\tSYS_FSTATAT              = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); }\n\tSYS_UTIMENSAT            = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); }\n\tSYS_OPENAT               = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); }\n\tSYS_READLINKAT           = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); }\n\tSYS_SYMLINKAT            = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); }\n\tSYS_UNLINKAT             = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); }\n\tSYS_FUTIMENS             = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); }\n\tSYS___QUOTACTL           = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); }\n\tSYS_POSIX_SPAWN          = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); }\n\tSYS_RECVMMSG             = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); }\n\tSYS_SENDMMSG             = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go",
    "content": "// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm && netbsd\n\npackage unix\n\nconst (\n\tSYS_EXIT                 = 1   // { void|sys||exit(int rval); }\n\tSYS_FORK                 = 2   // { int|sys||fork(void); }\n\tSYS_READ                 = 3   // { ssize_t|sys||read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE                = 4   // { ssize_t|sys||write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN                 = 5   // { int|sys||open(const char *path, int flags, ... mode_t mode); }\n\tSYS_CLOSE                = 6   // { int|sys||close(int fd); }\n\tSYS_LINK                 = 9   // { int|sys||link(const char *path, const char *link); }\n\tSYS_UNLINK               = 10  // { int|sys||unlink(const char *path); }\n\tSYS_CHDIR                = 12  // { int|sys||chdir(const char *path); }\n\tSYS_FCHDIR               = 13  // { int|sys||fchdir(int fd); }\n\tSYS_CHMOD                = 15  // { int|sys||chmod(const char *path, mode_t mode); }\n\tSYS_CHOWN                = 16  // { int|sys||chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_BREAK                = 17  // { int|sys||obreak(char *nsize); }\n\tSYS_GETPID               = 20  // { pid_t|sys||getpid_with_ppid(void); }\n\tSYS_UNMOUNT              = 22  // { int|sys||unmount(const char *path, int flags); }\n\tSYS_SETUID               = 23  // { int|sys||setuid(uid_t uid); }\n\tSYS_GETUID               = 24  // { uid_t|sys||getuid_with_euid(void); }\n\tSYS_GETEUID              = 25  // { uid_t|sys||geteuid(void); }\n\tSYS_PTRACE               = 26  // { int|sys||ptrace(int req, pid_t pid, void *addr, int data); }\n\tSYS_RECVMSG              = 27  // { ssize_t|sys||recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG              = 28  // { ssize_t|sys||sendmsg(int s, const struct msghdr *msg, int flags); }\n\tSYS_RECVFROM             = 29  // { ssize_t|sys||recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }\n\tSYS_ACCEPT               = 30  // { int|sys||accept(int s, struct sockaddr *name, socklen_t *anamelen); }\n\tSYS_GETPEERNAME          = 31  // { int|sys||getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_GETSOCKNAME          = 32  // { int|sys||getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_ACCESS               = 33  // { int|sys||access(const char *path, int flags); }\n\tSYS_CHFLAGS              = 34  // { int|sys||chflags(const char *path, u_long flags); }\n\tSYS_FCHFLAGS             = 35  // { int|sys||fchflags(int fd, u_long flags); }\n\tSYS_SYNC                 = 36  // { void|sys||sync(void); }\n\tSYS_KILL                 = 37  // { int|sys||kill(pid_t pid, int signum); }\n\tSYS_GETPPID              = 39  // { pid_t|sys||getppid(void); }\n\tSYS_DUP                  = 41  // { int|sys||dup(int fd); }\n\tSYS_PIPE                 = 42  // { int|sys||pipe(void); }\n\tSYS_GETEGID              = 43  // { gid_t|sys||getegid(void); }\n\tSYS_PROFIL               = 44  // { int|sys||profil(char *samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE               = 45  // { int|sys||ktrace(const char *fname, int ops, int facs, pid_t pid); }\n\tSYS_GETGID               = 47  // { gid_t|sys||getgid_with_egid(void); }\n\tSYS___GETLOGIN           = 49  // { int|sys||__getlogin(char *namebuf, size_t namelen); }\n\tSYS___SETLOGIN           = 50  // { int|sys||__setlogin(const char *namebuf); }\n\tSYS_ACCT                 = 51  // { int|sys||acct(const char *path); }\n\tSYS_IOCTL                = 54  // { int|sys||ioctl(int fd, u_long com, ... void *data); }\n\tSYS_REVOKE               = 56  // { int|sys||revoke(const char *path); }\n\tSYS_SYMLINK              = 57  // { int|sys||symlink(const char *path, const char *link); }\n\tSYS_READLINK             = 58  // { ssize_t|sys||readlink(const char *path, char *buf, size_t count); }\n\tSYS_EXECVE               = 59  // { int|sys||execve(const char *path, char * const *argp, char * const *envp); }\n\tSYS_UMASK                = 60  // { mode_t|sys||umask(mode_t newmask); }\n\tSYS_CHROOT               = 61  // { int|sys||chroot(const char *path); }\n\tSYS_VFORK                = 66  // { int|sys||vfork(void); }\n\tSYS_SBRK                 = 69  // { int|sys||sbrk(intptr_t incr); }\n\tSYS_SSTK                 = 70  // { int|sys||sstk(int incr); }\n\tSYS_VADVISE              = 72  // { int|sys||ovadvise(int anom); }\n\tSYS_MUNMAP               = 73  // { int|sys||munmap(void *addr, size_t len); }\n\tSYS_MPROTECT             = 74  // { int|sys||mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE              = 75  // { int|sys||madvise(void *addr, size_t len, int behav); }\n\tSYS_MINCORE              = 78  // { int|sys||mincore(void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS            = 79  // { int|sys||getgroups(int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS            = 80  // { int|sys||setgroups(int gidsetsize, const gid_t *gidset); }\n\tSYS_GETPGRP              = 81  // { int|sys||getpgrp(void); }\n\tSYS_SETPGID              = 82  // { int|sys||setpgid(pid_t pid, pid_t pgid); }\n\tSYS_DUP2                 = 90  // { int|sys||dup2(int from, int to); }\n\tSYS_FCNTL                = 92  // { int|sys||fcntl(int fd, int cmd, ... void *arg); }\n\tSYS_FSYNC                = 95  // { int|sys||fsync(int fd); }\n\tSYS_SETPRIORITY          = 96  // { int|sys||setpriority(int which, id_t who, int prio); }\n\tSYS_CONNECT              = 98  // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_GETPRIORITY          = 100 // { int|sys||getpriority(int which, id_t who); }\n\tSYS_BIND                 = 104 // { int|sys||bind(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_SETSOCKOPT           = 105 // { int|sys||setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }\n\tSYS_LISTEN               = 106 // { int|sys||listen(int s, int backlog); }\n\tSYS_GETSOCKOPT           = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }\n\tSYS_READV                = 120 // { ssize_t|sys||readv(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_WRITEV               = 121 // { ssize_t|sys||writev(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_FCHOWN               = 123 // { int|sys||fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS_FCHMOD               = 124 // { int|sys||fchmod(int fd, mode_t mode); }\n\tSYS_SETREUID             = 126 // { int|sys||setreuid(uid_t ruid, uid_t euid); }\n\tSYS_SETREGID             = 127 // { int|sys||setregid(gid_t rgid, gid_t egid); }\n\tSYS_RENAME               = 128 // { int|sys||rename(const char *from, const char *to); }\n\tSYS_FLOCK                = 131 // { int|sys||flock(int fd, int how); }\n\tSYS_MKFIFO               = 132 // { int|sys||mkfifo(const char *path, mode_t mode); }\n\tSYS_SENDTO               = 133 // { ssize_t|sys||sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }\n\tSYS_SHUTDOWN             = 134 // { int|sys||shutdown(int s, int how); }\n\tSYS_SOCKETPAIR           = 135 // { int|sys||socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR                = 136 // { int|sys||mkdir(const char *path, mode_t mode); }\n\tSYS_RMDIR                = 137 // { int|sys||rmdir(const char *path); }\n\tSYS_SETSID               = 147 // { int|sys||setsid(void); }\n\tSYS_SYSARCH              = 165 // { int|sys||sysarch(int op, void *parms); }\n\tSYS_PREAD                = 173 // { ssize_t|sys||pread(int fd, void *buf, size_t nbyte, int PAD, off_t offset); }\n\tSYS_PWRITE               = 174 // { ssize_t|sys||pwrite(int fd, const void *buf, size_t nbyte, int PAD, off_t offset); }\n\tSYS_NTP_ADJTIME          = 176 // { int|sys||ntp_adjtime(struct timex *tp); }\n\tSYS_SETGID               = 181 // { int|sys||setgid(gid_t gid); }\n\tSYS_SETEGID              = 182 // { int|sys||setegid(gid_t egid); }\n\tSYS_SETEUID              = 183 // { int|sys||seteuid(uid_t euid); }\n\tSYS_PATHCONF             = 191 // { long|sys||pathconf(const char *path, int name); }\n\tSYS_FPATHCONF            = 192 // { long|sys||fpathconf(int fd, int name); }\n\tSYS_GETRLIMIT            = 194 // { int|sys||getrlimit(int which, struct rlimit *rlp); }\n\tSYS_SETRLIMIT            = 195 // { int|sys||setrlimit(int which, const struct rlimit *rlp); }\n\tSYS_MMAP                 = 197 // { void *|sys||mmap(void *addr, size_t len, int prot, int flags, int fd, long PAD, off_t pos); }\n\tSYS_LSEEK                = 199 // { off_t|sys||lseek(int fd, int PAD, off_t offset, int whence); }\n\tSYS_TRUNCATE             = 200 // { int|sys||truncate(const char *path, int PAD, off_t length); }\n\tSYS_FTRUNCATE            = 201 // { int|sys||ftruncate(int fd, int PAD, off_t length); }\n\tSYS___SYSCTL             = 202 // { int|sys||__sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, const void *new, size_t newlen); }\n\tSYS_MLOCK                = 203 // { int|sys||mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK              = 204 // { int|sys||munlock(const void *addr, size_t len); }\n\tSYS_UNDELETE             = 205 // { int|sys||undelete(const char *path); }\n\tSYS_GETPGID              = 207 // { pid_t|sys||getpgid(pid_t pid); }\n\tSYS_REBOOT               = 208 // { int|sys||reboot(int opt, char *bootstr); }\n\tSYS_POLL                 = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_SEMGET               = 221 // { int|sys||semget(key_t key, int nsems, int semflg); }\n\tSYS_SEMOP                = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_SEMCONFIG            = 223 // { int|sys||semconfig(int flag); }\n\tSYS_MSGGET               = 225 // { int|sys||msgget(key_t key, int msgflg); }\n\tSYS_MSGSND               = 226 // { int|sys||msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV               = 227 // { ssize_t|sys||msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT                = 228 // { void *|sys||shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT                = 230 // { int|sys||shmdt(const void *shmaddr); }\n\tSYS_SHMGET               = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); }\n\tSYS_TIMER_CREATE         = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); }\n\tSYS_TIMER_DELETE         = 236 // { int|sys||timer_delete(timer_t timerid); }\n\tSYS_TIMER_GETOVERRUN     = 239 // { int|sys||timer_getoverrun(timer_t timerid); }\n\tSYS_FDATASYNC            = 241 // { int|sys||fdatasync(int fd); }\n\tSYS_MLOCKALL             = 242 // { int|sys||mlockall(int flags); }\n\tSYS_MUNLOCKALL           = 243 // { int|sys||munlockall(void); }\n\tSYS_SIGQUEUEINFO         = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); }\n\tSYS_MODCTL               = 246 // { int|sys||modctl(int cmd, void *arg); }\n\tSYS___POSIX_RENAME       = 270 // { int|sys||__posix_rename(const char *from, const char *to); }\n\tSYS_SWAPCTL              = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); }\n\tSYS_MINHERIT             = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); }\n\tSYS_LCHMOD               = 274 // { int|sys||lchmod(const char *path, mode_t mode); }\n\tSYS_LCHOWN               = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_MSYNC                = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); }\n\tSYS___POSIX_CHOWN        = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS___POSIX_FCHOWN       = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS___POSIX_LCHOWN       = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_GETSID               = 286 // { pid_t|sys||getsid(pid_t pid); }\n\tSYS___CLONE              = 287 // { pid_t|sys||__clone(int flags, void *stack); }\n\tSYS_FKTRACE              = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); }\n\tSYS_PREADV               = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); }\n\tSYS_PWRITEV              = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); }\n\tSYS___GETCWD             = 296 // { int|sys||__getcwd(char *bufp, size_t length); }\n\tSYS_FCHROOT              = 297 // { int|sys||fchroot(int fd); }\n\tSYS_LCHFLAGS             = 304 // { int|sys||lchflags(const char *path, u_long flags); }\n\tSYS_ISSETUGID            = 305 // { int|sys||issetugid(void); }\n\tSYS_UTRACE               = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); }\n\tSYS_GETCONTEXT           = 307 // { int|sys||getcontext(struct __ucontext *ucp); }\n\tSYS_SETCONTEXT           = 308 // { int|sys||setcontext(const struct __ucontext *ucp); }\n\tSYS__LWP_CREATE          = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); }\n\tSYS__LWP_EXIT            = 310 // { int|sys||_lwp_exit(void); }\n\tSYS__LWP_SELF            = 311 // { lwpid_t|sys||_lwp_self(void); }\n\tSYS__LWP_WAIT            = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); }\n\tSYS__LWP_SUSPEND         = 313 // { int|sys||_lwp_suspend(lwpid_t target); }\n\tSYS__LWP_CONTINUE        = 314 // { int|sys||_lwp_continue(lwpid_t target); }\n\tSYS__LWP_WAKEUP          = 315 // { int|sys||_lwp_wakeup(lwpid_t target); }\n\tSYS__LWP_GETPRIVATE      = 316 // { void *|sys||_lwp_getprivate(void); }\n\tSYS__LWP_SETPRIVATE      = 317 // { void|sys||_lwp_setprivate(void *ptr); }\n\tSYS__LWP_KILL            = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); }\n\tSYS__LWP_DETACH          = 319 // { int|sys||_lwp_detach(lwpid_t target); }\n\tSYS__LWP_UNPARK          = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); }\n\tSYS__LWP_UNPARK_ALL      = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); }\n\tSYS__LWP_SETNAME         = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); }\n\tSYS__LWP_GETNAME         = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); }\n\tSYS__LWP_CTL             = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); }\n\tSYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); }\n\tSYS_PMC_GET_INFO         = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); }\n\tSYS_PMC_CONTROL          = 342 // { int|sys||pmc_control(int ctr, int op, void *args); }\n\tSYS_RASCTL               = 343 // { int|sys||rasctl(void *addr, size_t len, int op); }\n\tSYS_KQUEUE               = 344 // { int|sys||kqueue(void); }\n\tSYS__SCHED_SETPARAM      = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); }\n\tSYS__SCHED_GETPARAM      = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); }\n\tSYS__SCHED_SETAFFINITY   = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); }\n\tSYS__SCHED_GETAFFINITY   = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); }\n\tSYS_SCHED_YIELD          = 350 // { int|sys||sched_yield(void); }\n\tSYS_FSYNC_RANGE          = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); }\n\tSYS_UUIDGEN              = 355 // { int|sys||uuidgen(struct uuid *store, int count); }\n\tSYS_GETVFSSTAT           = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); }\n\tSYS_STATVFS1             = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); }\n\tSYS_FSTATVFS1            = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); }\n\tSYS_EXTATTRCTL           = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FILE     = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FILE     = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FILE  = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FD       = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FD       = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FD    = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_LINK     = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_LINK     = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_LINK  = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_LIST_FD      = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_FILE    = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_LINK    = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_SETXATTR             = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); }\n\tSYS_LSETXATTR            = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); }\n\tSYS_FSETXATTR            = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); }\n\tSYS_GETXATTR             = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); }\n\tSYS_LGETXATTR            = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); }\n\tSYS_FGETXATTR            = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); }\n\tSYS_LISTXATTR            = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); }\n\tSYS_LLISTXATTR           = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); }\n\tSYS_FLISTXATTR           = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); }\n\tSYS_REMOVEXATTR          = 384 // { int|sys||removexattr(const char *path, const char *name); }\n\tSYS_LREMOVEXATTR         = 385 // { int|sys||lremovexattr(const char *path, const char *name); }\n\tSYS_FREMOVEXATTR         = 386 // { int|sys||fremovexattr(int fd, const char *name); }\n\tSYS_GETDENTS             = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); }\n\tSYS_SOCKET               = 394 // { int|sys|30|socket(int domain, int type, int protocol); }\n\tSYS_GETFH                = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); }\n\tSYS_MOUNT                = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); }\n\tSYS_MREMAP               = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); }\n\tSYS_PSET_CREATE          = 412 // { int|sys||pset_create(psetid_t *psid); }\n\tSYS_PSET_DESTROY         = 413 // { int|sys||pset_destroy(psetid_t psid); }\n\tSYS_PSET_ASSIGN          = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); }\n\tSYS__PSET_BIND           = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); }\n\tSYS_POSIX_FADVISE        = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); }\n\tSYS_SELECT               = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_GETTIMEOFDAY         = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); }\n\tSYS_SETTIMEOFDAY         = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); }\n\tSYS_UTIMES               = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); }\n\tSYS_ADJTIME              = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); }\n\tSYS_FUTIMES              = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); }\n\tSYS_LUTIMES              = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); }\n\tSYS_SETITIMER            = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_GETITIMER            = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); }\n\tSYS_CLOCK_GETTIME        = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME        = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES         = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_NANOSLEEP            = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS___SIGTIMEDWAIT       = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); }\n\tSYS__LWP_PARK            = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); }\n\tSYS_KEVENT               = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); }\n\tSYS_PSELECT              = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_POLLTS               = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_STAT                 = 439 // { int|sys|50|stat(const char *path, struct stat *ub); }\n\tSYS_FSTAT                = 440 // { int|sys|50|fstat(int fd, struct stat *sb); }\n\tSYS_LSTAT                = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); }\n\tSYS___SEMCTL             = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); }\n\tSYS_SHMCTL               = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_MSGCTL               = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_GETRUSAGE            = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); }\n\tSYS_TIMER_SETTIME        = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }\n\tSYS_TIMER_GETTIME        = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); }\n\tSYS_NTP_GETTIME          = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); }\n\tSYS_WAIT4                = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); }\n\tSYS_MKNOD                = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); }\n\tSYS_FHSTAT               = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); }\n\tSYS_PIPE2                = 453 // { int|sys||pipe2(int *fildes, int flags); }\n\tSYS_DUP3                 = 454 // { int|sys||dup3(int from, int to, int flags); }\n\tSYS_KQUEUE1              = 455 // { int|sys||kqueue1(int flags); }\n\tSYS_PACCEPT              = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); }\n\tSYS_LINKAT               = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); }\n\tSYS_RENAMEAT             = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); }\n\tSYS_MKFIFOAT             = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); }\n\tSYS_MKNODAT              = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); }\n\tSYS_MKDIRAT              = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); }\n\tSYS_FACCESSAT            = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); }\n\tSYS_FCHMODAT             = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT             = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); }\n\tSYS_FEXECVE              = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); }\n\tSYS_FSTATAT              = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); }\n\tSYS_UTIMENSAT            = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); }\n\tSYS_OPENAT               = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); }\n\tSYS_READLINKAT           = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); }\n\tSYS_SYMLINKAT            = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); }\n\tSYS_UNLINKAT             = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); }\n\tSYS_FUTIMENS             = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); }\n\tSYS___QUOTACTL           = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); }\n\tSYS_POSIX_SPAWN          = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); }\n\tSYS_RECVMMSG             = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); }\n\tSYS_SENDMMSG             = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go",
    "content": "// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master\n// Code generated by the command above; DO NOT EDIT.\n\n//go:build arm64 && netbsd\n\npackage unix\n\nconst (\n\tSYS_EXIT                 = 1   // { void|sys||exit(int rval); }\n\tSYS_FORK                 = 2   // { int|sys||fork(void); }\n\tSYS_READ                 = 3   // { ssize_t|sys||read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE                = 4   // { ssize_t|sys||write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN                 = 5   // { int|sys||open(const char *path, int flags, ... mode_t mode); }\n\tSYS_CLOSE                = 6   // { int|sys||close(int fd); }\n\tSYS_LINK                 = 9   // { int|sys||link(const char *path, const char *link); }\n\tSYS_UNLINK               = 10  // { int|sys||unlink(const char *path); }\n\tSYS_CHDIR                = 12  // { int|sys||chdir(const char *path); }\n\tSYS_FCHDIR               = 13  // { int|sys||fchdir(int fd); }\n\tSYS_CHMOD                = 15  // { int|sys||chmod(const char *path, mode_t mode); }\n\tSYS_CHOWN                = 16  // { int|sys||chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_BREAK                = 17  // { int|sys||obreak(char *nsize); }\n\tSYS_GETPID               = 20  // { pid_t|sys||getpid_with_ppid(void); }\n\tSYS_UNMOUNT              = 22  // { int|sys||unmount(const char *path, int flags); }\n\tSYS_SETUID               = 23  // { int|sys||setuid(uid_t uid); }\n\tSYS_GETUID               = 24  // { uid_t|sys||getuid_with_euid(void); }\n\tSYS_GETEUID              = 25  // { uid_t|sys||geteuid(void); }\n\tSYS_PTRACE               = 26  // { int|sys||ptrace(int req, pid_t pid, void *addr, int data); }\n\tSYS_RECVMSG              = 27  // { ssize_t|sys||recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG              = 28  // { ssize_t|sys||sendmsg(int s, const struct msghdr *msg, int flags); }\n\tSYS_RECVFROM             = 29  // { ssize_t|sys||recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }\n\tSYS_ACCEPT               = 30  // { int|sys||accept(int s, struct sockaddr *name, socklen_t *anamelen); }\n\tSYS_GETPEERNAME          = 31  // { int|sys||getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_GETSOCKNAME          = 32  // { int|sys||getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_ACCESS               = 33  // { int|sys||access(const char *path, int flags); }\n\tSYS_CHFLAGS              = 34  // { int|sys||chflags(const char *path, u_long flags); }\n\tSYS_FCHFLAGS             = 35  // { int|sys||fchflags(int fd, u_long flags); }\n\tSYS_SYNC                 = 36  // { void|sys||sync(void); }\n\tSYS_KILL                 = 37  // { int|sys||kill(pid_t pid, int signum); }\n\tSYS_GETPPID              = 39  // { pid_t|sys||getppid(void); }\n\tSYS_DUP                  = 41  // { int|sys||dup(int fd); }\n\tSYS_PIPE                 = 42  // { int|sys||pipe(void); }\n\tSYS_GETEGID              = 43  // { gid_t|sys||getegid(void); }\n\tSYS_PROFIL               = 44  // { int|sys||profil(char *samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE               = 45  // { int|sys||ktrace(const char *fname, int ops, int facs, pid_t pid); }\n\tSYS_GETGID               = 47  // { gid_t|sys||getgid_with_egid(void); }\n\tSYS___GETLOGIN           = 49  // { int|sys||__getlogin(char *namebuf, size_t namelen); }\n\tSYS___SETLOGIN           = 50  // { int|sys||__setlogin(const char *namebuf); }\n\tSYS_ACCT                 = 51  // { int|sys||acct(const char *path); }\n\tSYS_IOCTL                = 54  // { int|sys||ioctl(int fd, u_long com, ... void *data); }\n\tSYS_REVOKE               = 56  // { int|sys||revoke(const char *path); }\n\tSYS_SYMLINK              = 57  // { int|sys||symlink(const char *path, const char *link); }\n\tSYS_READLINK             = 58  // { ssize_t|sys||readlink(const char *path, char *buf, size_t count); }\n\tSYS_EXECVE               = 59  // { int|sys||execve(const char *path, char * const *argp, char * const *envp); }\n\tSYS_UMASK                = 60  // { mode_t|sys||umask(mode_t newmask); }\n\tSYS_CHROOT               = 61  // { int|sys||chroot(const char *path); }\n\tSYS_VFORK                = 66  // { int|sys||vfork(void); }\n\tSYS_SBRK                 = 69  // { int|sys||sbrk(intptr_t incr); }\n\tSYS_SSTK                 = 70  // { int|sys||sstk(int incr); }\n\tSYS_VADVISE              = 72  // { int|sys||ovadvise(int anom); }\n\tSYS_MUNMAP               = 73  // { int|sys||munmap(void *addr, size_t len); }\n\tSYS_MPROTECT             = 74  // { int|sys||mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE              = 75  // { int|sys||madvise(void *addr, size_t len, int behav); }\n\tSYS_MINCORE              = 78  // { int|sys||mincore(void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS            = 79  // { int|sys||getgroups(int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS            = 80  // { int|sys||setgroups(int gidsetsize, const gid_t *gidset); }\n\tSYS_GETPGRP              = 81  // { int|sys||getpgrp(void); }\n\tSYS_SETPGID              = 82  // { int|sys||setpgid(pid_t pid, pid_t pgid); }\n\tSYS_DUP2                 = 90  // { int|sys||dup2(int from, int to); }\n\tSYS_FCNTL                = 92  // { int|sys||fcntl(int fd, int cmd, ... void *arg); }\n\tSYS_FSYNC                = 95  // { int|sys||fsync(int fd); }\n\tSYS_SETPRIORITY          = 96  // { int|sys||setpriority(int which, id_t who, int prio); }\n\tSYS_CONNECT              = 98  // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_GETPRIORITY          = 100 // { int|sys||getpriority(int which, id_t who); }\n\tSYS_BIND                 = 104 // { int|sys||bind(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_SETSOCKOPT           = 105 // { int|sys||setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }\n\tSYS_LISTEN               = 106 // { int|sys||listen(int s, int backlog); }\n\tSYS_GETSOCKOPT           = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }\n\tSYS_READV                = 120 // { ssize_t|sys||readv(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_WRITEV               = 121 // { ssize_t|sys||writev(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_FCHOWN               = 123 // { int|sys||fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS_FCHMOD               = 124 // { int|sys||fchmod(int fd, mode_t mode); }\n\tSYS_SETREUID             = 126 // { int|sys||setreuid(uid_t ruid, uid_t euid); }\n\tSYS_SETREGID             = 127 // { int|sys||setregid(gid_t rgid, gid_t egid); }\n\tSYS_RENAME               = 128 // { int|sys||rename(const char *from, const char *to); }\n\tSYS_FLOCK                = 131 // { int|sys||flock(int fd, int how); }\n\tSYS_MKFIFO               = 132 // { int|sys||mkfifo(const char *path, mode_t mode); }\n\tSYS_SENDTO               = 133 // { ssize_t|sys||sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }\n\tSYS_SHUTDOWN             = 134 // { int|sys||shutdown(int s, int how); }\n\tSYS_SOCKETPAIR           = 135 // { int|sys||socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR                = 136 // { int|sys||mkdir(const char *path, mode_t mode); }\n\tSYS_RMDIR                = 137 // { int|sys||rmdir(const char *path); }\n\tSYS_SETSID               = 147 // { int|sys||setsid(void); }\n\tSYS_SYSARCH              = 165 // { int|sys||sysarch(int op, void *parms); }\n\tSYS_PREAD                = 173 // { ssize_t|sys||pread(int fd, void *buf, size_t nbyte, int PAD, off_t offset); }\n\tSYS_PWRITE               = 174 // { ssize_t|sys||pwrite(int fd, const void *buf, size_t nbyte, int PAD, off_t offset); }\n\tSYS_NTP_ADJTIME          = 176 // { int|sys||ntp_adjtime(struct timex *tp); }\n\tSYS_SETGID               = 181 // { int|sys||setgid(gid_t gid); }\n\tSYS_SETEGID              = 182 // { int|sys||setegid(gid_t egid); }\n\tSYS_SETEUID              = 183 // { int|sys||seteuid(uid_t euid); }\n\tSYS_PATHCONF             = 191 // { long|sys||pathconf(const char *path, int name); }\n\tSYS_FPATHCONF            = 192 // { long|sys||fpathconf(int fd, int name); }\n\tSYS_GETRLIMIT            = 194 // { int|sys||getrlimit(int which, struct rlimit *rlp); }\n\tSYS_SETRLIMIT            = 195 // { int|sys||setrlimit(int which, const struct rlimit *rlp); }\n\tSYS_MMAP                 = 197 // { void *|sys||mmap(void *addr, size_t len, int prot, int flags, int fd, long PAD, off_t pos); }\n\tSYS_LSEEK                = 199 // { off_t|sys||lseek(int fd, int PAD, off_t offset, int whence); }\n\tSYS_TRUNCATE             = 200 // { int|sys||truncate(const char *path, int PAD, off_t length); }\n\tSYS_FTRUNCATE            = 201 // { int|sys||ftruncate(int fd, int PAD, off_t length); }\n\tSYS___SYSCTL             = 202 // { int|sys||__sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, const void *new, size_t newlen); }\n\tSYS_MLOCK                = 203 // { int|sys||mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK              = 204 // { int|sys||munlock(const void *addr, size_t len); }\n\tSYS_UNDELETE             = 205 // { int|sys||undelete(const char *path); }\n\tSYS_GETPGID              = 207 // { pid_t|sys||getpgid(pid_t pid); }\n\tSYS_REBOOT               = 208 // { int|sys||reboot(int opt, char *bootstr); }\n\tSYS_POLL                 = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_SEMGET               = 221 // { int|sys||semget(key_t key, int nsems, int semflg); }\n\tSYS_SEMOP                = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_SEMCONFIG            = 223 // { int|sys||semconfig(int flag); }\n\tSYS_MSGGET               = 225 // { int|sys||msgget(key_t key, int msgflg); }\n\tSYS_MSGSND               = 226 // { int|sys||msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV               = 227 // { ssize_t|sys||msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT                = 228 // { void *|sys||shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT                = 230 // { int|sys||shmdt(const void *shmaddr); }\n\tSYS_SHMGET               = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); }\n\tSYS_TIMER_CREATE         = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); }\n\tSYS_TIMER_DELETE         = 236 // { int|sys||timer_delete(timer_t timerid); }\n\tSYS_TIMER_GETOVERRUN     = 239 // { int|sys||timer_getoverrun(timer_t timerid); }\n\tSYS_FDATASYNC            = 241 // { int|sys||fdatasync(int fd); }\n\tSYS_MLOCKALL             = 242 // { int|sys||mlockall(int flags); }\n\tSYS_MUNLOCKALL           = 243 // { int|sys||munlockall(void); }\n\tSYS_SIGQUEUEINFO         = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); }\n\tSYS_MODCTL               = 246 // { int|sys||modctl(int cmd, void *arg); }\n\tSYS___POSIX_RENAME       = 270 // { int|sys||__posix_rename(const char *from, const char *to); }\n\tSYS_SWAPCTL              = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); }\n\tSYS_MINHERIT             = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); }\n\tSYS_LCHMOD               = 274 // { int|sys||lchmod(const char *path, mode_t mode); }\n\tSYS_LCHOWN               = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_MSYNC                = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); }\n\tSYS___POSIX_CHOWN        = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS___POSIX_FCHOWN       = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS___POSIX_LCHOWN       = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_GETSID               = 286 // { pid_t|sys||getsid(pid_t pid); }\n\tSYS___CLONE              = 287 // { pid_t|sys||__clone(int flags, void *stack); }\n\tSYS_FKTRACE              = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); }\n\tSYS_PREADV               = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); }\n\tSYS_PWRITEV              = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); }\n\tSYS___GETCWD             = 296 // { int|sys||__getcwd(char *bufp, size_t length); }\n\tSYS_FCHROOT              = 297 // { int|sys||fchroot(int fd); }\n\tSYS_LCHFLAGS             = 304 // { int|sys||lchflags(const char *path, u_long flags); }\n\tSYS_ISSETUGID            = 305 // { int|sys||issetugid(void); }\n\tSYS_UTRACE               = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); }\n\tSYS_GETCONTEXT           = 307 // { int|sys||getcontext(struct __ucontext *ucp); }\n\tSYS_SETCONTEXT           = 308 // { int|sys||setcontext(const struct __ucontext *ucp); }\n\tSYS__LWP_CREATE          = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); }\n\tSYS__LWP_EXIT            = 310 // { int|sys||_lwp_exit(void); }\n\tSYS__LWP_SELF            = 311 // { lwpid_t|sys||_lwp_self(void); }\n\tSYS__LWP_WAIT            = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); }\n\tSYS__LWP_SUSPEND         = 313 // { int|sys||_lwp_suspend(lwpid_t target); }\n\tSYS__LWP_CONTINUE        = 314 // { int|sys||_lwp_continue(lwpid_t target); }\n\tSYS__LWP_WAKEUP          = 315 // { int|sys||_lwp_wakeup(lwpid_t target); }\n\tSYS__LWP_GETPRIVATE      = 316 // { void *|sys||_lwp_getprivate(void); }\n\tSYS__LWP_SETPRIVATE      = 317 // { void|sys||_lwp_setprivate(void *ptr); }\n\tSYS__LWP_KILL            = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); }\n\tSYS__LWP_DETACH          = 319 // { int|sys||_lwp_detach(lwpid_t target); }\n\tSYS__LWP_UNPARK          = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); }\n\tSYS__LWP_UNPARK_ALL      = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); }\n\tSYS__LWP_SETNAME         = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); }\n\tSYS__LWP_GETNAME         = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); }\n\tSYS__LWP_CTL             = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); }\n\tSYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); }\n\tSYS_PMC_GET_INFO         = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); }\n\tSYS_PMC_CONTROL          = 342 // { int|sys||pmc_control(int ctr, int op, void *args); }\n\tSYS_RASCTL               = 343 // { int|sys||rasctl(void *addr, size_t len, int op); }\n\tSYS_KQUEUE               = 344 // { int|sys||kqueue(void); }\n\tSYS__SCHED_SETPARAM      = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); }\n\tSYS__SCHED_GETPARAM      = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); }\n\tSYS__SCHED_SETAFFINITY   = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); }\n\tSYS__SCHED_GETAFFINITY   = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); }\n\tSYS_SCHED_YIELD          = 350 // { int|sys||sched_yield(void); }\n\tSYS_FSYNC_RANGE          = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); }\n\tSYS_UUIDGEN              = 355 // { int|sys||uuidgen(struct uuid *store, int count); }\n\tSYS_GETVFSSTAT           = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); }\n\tSYS_STATVFS1             = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); }\n\tSYS_FSTATVFS1            = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); }\n\tSYS_EXTATTRCTL           = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FILE     = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FILE     = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FILE  = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_FD       = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_FD       = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_FD    = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_SET_LINK     = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); }\n\tSYS_EXTATTR_GET_LINK     = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }\n\tSYS_EXTATTR_DELETE_LINK  = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); }\n\tSYS_EXTATTR_LIST_FD      = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_FILE    = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_EXTATTR_LIST_LINK    = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); }\n\tSYS_SETXATTR             = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); }\n\tSYS_LSETXATTR            = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); }\n\tSYS_FSETXATTR            = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); }\n\tSYS_GETXATTR             = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); }\n\tSYS_LGETXATTR            = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); }\n\tSYS_FGETXATTR            = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); }\n\tSYS_LISTXATTR            = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); }\n\tSYS_LLISTXATTR           = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); }\n\tSYS_FLISTXATTR           = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); }\n\tSYS_REMOVEXATTR          = 384 // { int|sys||removexattr(const char *path, const char *name); }\n\tSYS_LREMOVEXATTR         = 385 // { int|sys||lremovexattr(const char *path, const char *name); }\n\tSYS_FREMOVEXATTR         = 386 // { int|sys||fremovexattr(int fd, const char *name); }\n\tSYS_GETDENTS             = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); }\n\tSYS_SOCKET               = 394 // { int|sys|30|socket(int domain, int type, int protocol); }\n\tSYS_GETFH                = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); }\n\tSYS_MOUNT                = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); }\n\tSYS_MREMAP               = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); }\n\tSYS_PSET_CREATE          = 412 // { int|sys||pset_create(psetid_t *psid); }\n\tSYS_PSET_DESTROY         = 413 // { int|sys||pset_destroy(psetid_t psid); }\n\tSYS_PSET_ASSIGN          = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); }\n\tSYS__PSET_BIND           = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); }\n\tSYS_POSIX_FADVISE        = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); }\n\tSYS_SELECT               = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_GETTIMEOFDAY         = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); }\n\tSYS_SETTIMEOFDAY         = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); }\n\tSYS_UTIMES               = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); }\n\tSYS_ADJTIME              = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); }\n\tSYS_FUTIMES              = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); }\n\tSYS_LUTIMES              = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); }\n\tSYS_SETITIMER            = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_GETITIMER            = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); }\n\tSYS_CLOCK_GETTIME        = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME        = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES         = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_NANOSLEEP            = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS___SIGTIMEDWAIT       = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); }\n\tSYS__LWP_PARK            = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); }\n\tSYS_KEVENT               = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); }\n\tSYS_PSELECT              = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_POLLTS               = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_STAT                 = 439 // { int|sys|50|stat(const char *path, struct stat *ub); }\n\tSYS_FSTAT                = 440 // { int|sys|50|fstat(int fd, struct stat *sb); }\n\tSYS_LSTAT                = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); }\n\tSYS___SEMCTL             = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); }\n\tSYS_SHMCTL               = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_MSGCTL               = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_GETRUSAGE            = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); }\n\tSYS_TIMER_SETTIME        = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }\n\tSYS_TIMER_GETTIME        = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); }\n\tSYS_NTP_GETTIME          = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); }\n\tSYS_WAIT4                = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); }\n\tSYS_MKNOD                = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); }\n\tSYS_FHSTAT               = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); }\n\tSYS_PIPE2                = 453 // { int|sys||pipe2(int *fildes, int flags); }\n\tSYS_DUP3                 = 454 // { int|sys||dup3(int from, int to, int flags); }\n\tSYS_KQUEUE1              = 455 // { int|sys||kqueue1(int flags); }\n\tSYS_PACCEPT              = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); }\n\tSYS_LINKAT               = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); }\n\tSYS_RENAMEAT             = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); }\n\tSYS_MKFIFOAT             = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); }\n\tSYS_MKNODAT              = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); }\n\tSYS_MKDIRAT              = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); }\n\tSYS_FACCESSAT            = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); }\n\tSYS_FCHMODAT             = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT             = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); }\n\tSYS_FEXECVE              = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); }\n\tSYS_FSTATAT              = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); }\n\tSYS_UTIMENSAT            = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); }\n\tSYS_OPENAT               = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); }\n\tSYS_READLINKAT           = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); }\n\tSYS_SYMLINKAT            = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); }\n\tSYS_UNLINKAT             = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); }\n\tSYS_FUTIMENS             = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); }\n\tSYS___QUOTACTL           = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); }\n\tSYS_POSIX_SPAWN          = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); }\n\tSYS_RECVMMSG             = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); }\n\tSYS_SENDMMSG             = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go",
    "content": "// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build 386 && openbsd\n\npackage unix\n\n// Deprecated: Use libc wrappers instead of direct syscalls.\nconst (\n\tSYS_EXIT           = 1   // { void sys_exit(int rval); }\n\tSYS_FORK           = 2   // { int sys_fork(void); }\n\tSYS_READ           = 3   // { ssize_t sys_read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE          = 4   // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN           = 5   // { int sys_open(const char *path, int flags, ... mode_t mode); }\n\tSYS_CLOSE          = 6   // { int sys_close(int fd); }\n\tSYS_GETENTROPY     = 7   // { int sys_getentropy(void *buf, size_t nbyte); }\n\tSYS___TFORK        = 8   // { int sys___tfork(const struct __tfork *param, size_t psize); }\n\tSYS_LINK           = 9   // { int sys_link(const char *path, const char *link); }\n\tSYS_UNLINK         = 10  // { int sys_unlink(const char *path); }\n\tSYS_WAIT4          = 11  // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); }\n\tSYS_CHDIR          = 12  // { int sys_chdir(const char *path); }\n\tSYS_FCHDIR         = 13  // { int sys_fchdir(int fd); }\n\tSYS_MKNOD          = 14  // { int sys_mknod(const char *path, mode_t mode, dev_t dev); }\n\tSYS_CHMOD          = 15  // { int sys_chmod(const char *path, mode_t mode); }\n\tSYS_CHOWN          = 16  // { int sys_chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_OBREAK         = 17  // { int sys_obreak(char *nsize); } break\n\tSYS_GETDTABLECOUNT = 18  // { int sys_getdtablecount(void); }\n\tSYS_GETRUSAGE      = 19  // { int sys_getrusage(int who, struct rusage *rusage); }\n\tSYS_GETPID         = 20  // { pid_t sys_getpid(void); }\n\tSYS_MOUNT          = 21  // { int sys_mount(const char *type, const char *path, int flags, void *data); }\n\tSYS_UNMOUNT        = 22  // { int sys_unmount(const char *path, int flags); }\n\tSYS_SETUID         = 23  // { int sys_setuid(uid_t uid); }\n\tSYS_GETUID         = 24  // { uid_t sys_getuid(void); }\n\tSYS_GETEUID        = 25  // { uid_t sys_geteuid(void); }\n\tSYS_PTRACE         = 26  // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG        = 27  // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG        = 28  // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); }\n\tSYS_RECVFROM       = 29  // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }\n\tSYS_ACCEPT         = 30  // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); }\n\tSYS_GETPEERNAME    = 31  // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_GETSOCKNAME    = 32  // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_ACCESS         = 33  // { int sys_access(const char *path, int amode); }\n\tSYS_CHFLAGS        = 34  // { int sys_chflags(const char *path, u_int flags); }\n\tSYS_FCHFLAGS       = 35  // { int sys_fchflags(int fd, u_int flags); }\n\tSYS_SYNC           = 36  // { void sys_sync(void); }\n\tSYS_STAT           = 38  // { int sys_stat(const char *path, struct stat *ub); }\n\tSYS_GETPPID        = 39  // { pid_t sys_getppid(void); }\n\tSYS_LSTAT          = 40  // { int sys_lstat(const char *path, struct stat *ub); }\n\tSYS_DUP            = 41  // { int sys_dup(int fd); }\n\tSYS_FSTATAT        = 42  // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); }\n\tSYS_GETEGID        = 43  // { gid_t sys_getegid(void); }\n\tSYS_PROFIL         = 44  // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE         = 45  // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); }\n\tSYS_SIGACTION      = 46  // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); }\n\tSYS_GETGID         = 47  // { gid_t sys_getgid(void); }\n\tSYS_SIGPROCMASK    = 48  // { int sys_sigprocmask(int how, sigset_t mask); }\n\tSYS_SETLOGIN       = 50  // { int sys_setlogin(const char *namebuf); }\n\tSYS_ACCT           = 51  // { int sys_acct(const char *path); }\n\tSYS_SIGPENDING     = 52  // { int sys_sigpending(void); }\n\tSYS_FSTAT          = 53  // { int sys_fstat(int fd, struct stat *sb); }\n\tSYS_IOCTL          = 54  // { int sys_ioctl(int fd, u_long com, ... void *data); }\n\tSYS_REBOOT         = 55  // { int sys_reboot(int opt); }\n\tSYS_REVOKE         = 56  // { int sys_revoke(const char *path); }\n\tSYS_SYMLINK        = 57  // { int sys_symlink(const char *path, const char *link); }\n\tSYS_READLINK       = 58  // { ssize_t sys_readlink(const char *path, char *buf, size_t count); }\n\tSYS_EXECVE         = 59  // { int sys_execve(const char *path, char * const *argp, char * const *envp); }\n\tSYS_UMASK          = 60  // { mode_t sys_umask(mode_t newmask); }\n\tSYS_CHROOT         = 61  // { int sys_chroot(const char *path); }\n\tSYS_GETFSSTAT      = 62  // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); }\n\tSYS_STATFS         = 63  // { int sys_statfs(const char *path, struct statfs *buf); }\n\tSYS_FSTATFS        = 64  // { int sys_fstatfs(int fd, struct statfs *buf); }\n\tSYS_FHSTATFS       = 65  // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); }\n\tSYS_VFORK          = 66  // { int sys_vfork(void); }\n\tSYS_GETTIMEOFDAY   = 67  // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_SETTIMEOFDAY   = 68  // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); }\n\tSYS_SETITIMER      = 69  // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_GETITIMER      = 70  // { int sys_getitimer(int which, struct itimerval *itv); }\n\tSYS_SELECT         = 71  // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_KEVENT         = 72  // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_MUNMAP         = 73  // { int sys_munmap(void *addr, size_t len); }\n\tSYS_MPROTECT       = 74  // { int sys_mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE        = 75  // { int sys_madvise(void *addr, size_t len, int behav); }\n\tSYS_UTIMES         = 76  // { int sys_utimes(const char *path, const struct timeval *tptr); }\n\tSYS_FUTIMES        = 77  // { int sys_futimes(int fd, const struct timeval *tptr); }\n\tSYS_MINCORE        = 78  // { int sys_mincore(void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS      = 79  // { int sys_getgroups(int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS      = 80  // { int sys_setgroups(int gidsetsize, const gid_t *gidset); }\n\tSYS_GETPGRP        = 81  // { int sys_getpgrp(void); }\n\tSYS_SETPGID        = 82  // { int sys_setpgid(pid_t pid, pid_t pgid); }\n\tSYS_FUTEX          = 83  // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); }\n\tSYS_UTIMENSAT      = 84  // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); }\n\tSYS_FUTIMENS       = 85  // { int sys_futimens(int fd, const struct timespec *times); }\n\tSYS_KBIND          = 86  // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); }\n\tSYS_CLOCK_GETTIME  = 87  // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME  = 88  // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES   = 89  // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_DUP2           = 90  // { int sys_dup2(int from, int to); }\n\tSYS_NANOSLEEP      = 91  // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FCNTL          = 92  // { int sys_fcntl(int fd, int cmd, ... void *arg); }\n\tSYS_ACCEPT4        = 93  // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); }\n\tSYS___THRSLEEP     = 94  // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); }\n\tSYS_FSYNC          = 95  // { int sys_fsync(int fd); }\n\tSYS_SETPRIORITY    = 96  // { int sys_setpriority(int which, id_t who, int prio); }\n\tSYS_SOCKET         = 97  // { int sys_socket(int domain, int type, int protocol); }\n\tSYS_CONNECT        = 98  // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_GETDENTS       = 99  // { int sys_getdents(int fd, void *buf, size_t buflen); }\n\tSYS_GETPRIORITY    = 100 // { int sys_getpriority(int which, id_t who); }\n\tSYS_PIPE2          = 101 // { int sys_pipe2(int *fdp, int flags); }\n\tSYS_DUP3           = 102 // { int sys_dup3(int from, int to, int flags); }\n\tSYS_SIGRETURN      = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); }\n\tSYS_BIND           = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_SETSOCKOPT     = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }\n\tSYS_LISTEN         = 106 // { int sys_listen(int s, int backlog); }\n\tSYS_CHFLAGSAT      = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); }\n\tSYS_PLEDGE         = 108 // { int sys_pledge(const char *promises, const char *execpromises); }\n\tSYS_PPOLL          = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_PSELECT        = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_SIGSUSPEND     = 111 // { int sys_sigsuspend(int mask); }\n\tSYS_SENDSYSLOG     = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); }\n\tSYS_UNVEIL         = 114 // { int sys_unveil(const char *path, const char *permissions); }\n\tSYS_GETSOCKOPT     = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }\n\tSYS_THRKILL        = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); }\n\tSYS_READV          = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_WRITEV         = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_KILL           = 122 // { int sys_kill(int pid, int signum); }\n\tSYS_FCHOWN         = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS_FCHMOD         = 124 // { int sys_fchmod(int fd, mode_t mode); }\n\tSYS_SETREUID       = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); }\n\tSYS_SETREGID       = 127 // { int sys_setregid(gid_t rgid, gid_t egid); }\n\tSYS_RENAME         = 128 // { int sys_rename(const char *from, const char *to); }\n\tSYS_FLOCK          = 131 // { int sys_flock(int fd, int how); }\n\tSYS_MKFIFO         = 132 // { int sys_mkfifo(const char *path, mode_t mode); }\n\tSYS_SENDTO         = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }\n\tSYS_SHUTDOWN       = 134 // { int sys_shutdown(int s, int how); }\n\tSYS_SOCKETPAIR     = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR          = 136 // { int sys_mkdir(const char *path, mode_t mode); }\n\tSYS_RMDIR          = 137 // { int sys_rmdir(const char *path); }\n\tSYS_ADJTIME        = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); }\n\tSYS_GETLOGIN_R     = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); }\n\tSYS_SETSID         = 147 // { int sys_setsid(void); }\n\tSYS_QUOTACTL       = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); }\n\tSYS_NFSSVC         = 155 // { int sys_nfssvc(int flag, void *argp); }\n\tSYS_GETFH          = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); }\n\tSYS_SYSARCH        = 165 // { int sys_sysarch(int op, void *parms); }\n\tSYS_PREAD          = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_PWRITE         = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_SETGID         = 181 // { int sys_setgid(gid_t gid); }\n\tSYS_SETEGID        = 182 // { int sys_setegid(gid_t egid); }\n\tSYS_SETEUID        = 183 // { int sys_seteuid(uid_t euid); }\n\tSYS_PATHCONF       = 191 // { long sys_pathconf(const char *path, int name); }\n\tSYS_FPATHCONF      = 192 // { long sys_fpathconf(int fd, int name); }\n\tSYS_SWAPCTL        = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); }\n\tSYS_GETRLIMIT      = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); }\n\tSYS_SETRLIMIT      = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); }\n\tSYS_MMAP           = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_LSEEK          = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); }\n\tSYS_TRUNCATE       = 200 // { int sys_truncate(const char *path, int pad, off_t length); }\n\tSYS_FTRUNCATE      = 201 // { int sys_ftruncate(int fd, int pad, off_t length); }\n\tSYS_SYSCTL         = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }\n\tSYS_MLOCK          = 203 // { int sys_mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK        = 204 // { int sys_munlock(const void *addr, size_t len); }\n\tSYS_GETPGID        = 207 // { pid_t sys_getpgid(pid_t pid); }\n\tSYS_UTRACE         = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); }\n\tSYS_SEMGET         = 221 // { int sys_semget(key_t key, int nsems, int semflg); }\n\tSYS_MSGGET         = 225 // { int sys_msgget(key_t key, int msgflg); }\n\tSYS_MSGSND         = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV         = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT          = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT          = 230 // { int sys_shmdt(const void *shmaddr); }\n\tSYS_MINHERIT       = 250 // { int sys_minherit(void *addr, size_t len, int inherit); }\n\tSYS_POLL           = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_ISSETUGID      = 253 // { int sys_issetugid(void); }\n\tSYS_LCHOWN         = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_GETSID         = 255 // { pid_t sys_getsid(pid_t pid); }\n\tSYS_MSYNC          = 256 // { int sys_msync(void *addr, size_t len, int flags); }\n\tSYS_PIPE           = 263 // { int sys_pipe(int *fdp); }\n\tSYS_FHOPEN         = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); }\n\tSYS_PREADV         = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_PWRITEV        = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_KQUEUE         = 269 // { int sys_kqueue(void); }\n\tSYS_MLOCKALL       = 271 // { int sys_mlockall(int flags); }\n\tSYS_MUNLOCKALL     = 272 // { int sys_munlockall(void); }\n\tSYS_GETRESUID      = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_SETRESUID      = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_GETRESGID      = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_SETRESGID      = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_MQUERY         = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_CLOSEFROM      = 287 // { int sys_closefrom(int fd); }\n\tSYS_SIGALTSTACK    = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); }\n\tSYS_SHMGET         = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); }\n\tSYS_SEMOP          = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_FHSTAT         = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); }\n\tSYS___SEMCTL       = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_SHMCTL         = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_MSGCTL         = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SCHED_YIELD    = 298 // { int sys_sched_yield(void); }\n\tSYS_GETTHRID       = 299 // { pid_t sys_getthrid(void); }\n\tSYS___THRWAKEUP    = 301 // { int sys___thrwakeup(const volatile void *ident, int n); }\n\tSYS___THREXIT      = 302 // { void sys___threxit(pid_t *notdead); }\n\tSYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); }\n\tSYS___GETCWD       = 304 // { int sys___getcwd(char *buf, size_t len); }\n\tSYS_ADJFREQ        = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); }\n\tSYS_SETRTABLE      = 310 // { int sys_setrtable(int rtableid); }\n\tSYS_GETRTABLE      = 311 // { int sys_getrtable(void); }\n\tSYS_FACCESSAT      = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); }\n\tSYS_FCHMODAT       = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT       = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_LINKAT         = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); }\n\tSYS_MKDIRAT        = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); }\n\tSYS_MKFIFOAT       = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); }\n\tSYS_MKNODAT        = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); }\n\tSYS_OPENAT         = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); }\n\tSYS_READLINKAT     = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); }\n\tSYS_RENAMEAT       = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); }\n\tSYS_SYMLINKAT      = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); }\n\tSYS_UNLINKAT       = 325 // { int sys_unlinkat(int fd, const char *path, int flag); }\n\tSYS___SET_TCB      = 329 // { void sys___set_tcb(void *tcb); }\n\tSYS___GET_TCB      = 330 // { void *sys___get_tcb(void); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go",
    "content": "// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && openbsd\n\npackage unix\n\n// Deprecated: Use libc wrappers instead of direct syscalls.\nconst (\n\tSYS_EXIT           = 1   // { void sys_exit(int rval); }\n\tSYS_FORK           = 2   // { int sys_fork(void); }\n\tSYS_READ           = 3   // { ssize_t sys_read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE          = 4   // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN           = 5   // { int sys_open(const char *path, int flags, ... mode_t mode); }\n\tSYS_CLOSE          = 6   // { int sys_close(int fd); }\n\tSYS_GETENTROPY     = 7   // { int sys_getentropy(void *buf, size_t nbyte); }\n\tSYS___TFORK        = 8   // { int sys___tfork(const struct __tfork *param, size_t psize); }\n\tSYS_LINK           = 9   // { int sys_link(const char *path, const char *link); }\n\tSYS_UNLINK         = 10  // { int sys_unlink(const char *path); }\n\tSYS_WAIT4          = 11  // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); }\n\tSYS_CHDIR          = 12  // { int sys_chdir(const char *path); }\n\tSYS_FCHDIR         = 13  // { int sys_fchdir(int fd); }\n\tSYS_MKNOD          = 14  // { int sys_mknod(const char *path, mode_t mode, dev_t dev); }\n\tSYS_CHMOD          = 15  // { int sys_chmod(const char *path, mode_t mode); }\n\tSYS_CHOWN          = 16  // { int sys_chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_OBREAK         = 17  // { int sys_obreak(char *nsize); } break\n\tSYS_GETDTABLECOUNT = 18  // { int sys_getdtablecount(void); }\n\tSYS_GETRUSAGE      = 19  // { int sys_getrusage(int who, struct rusage *rusage); }\n\tSYS_GETPID         = 20  // { pid_t sys_getpid(void); }\n\tSYS_MOUNT          = 21  // { int sys_mount(const char *type, const char *path, int flags, void *data); }\n\tSYS_UNMOUNT        = 22  // { int sys_unmount(const char *path, int flags); }\n\tSYS_SETUID         = 23  // { int sys_setuid(uid_t uid); }\n\tSYS_GETUID         = 24  // { uid_t sys_getuid(void); }\n\tSYS_GETEUID        = 25  // { uid_t sys_geteuid(void); }\n\tSYS_PTRACE         = 26  // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG        = 27  // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG        = 28  // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); }\n\tSYS_RECVFROM       = 29  // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }\n\tSYS_ACCEPT         = 30  // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); }\n\tSYS_GETPEERNAME    = 31  // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_GETSOCKNAME    = 32  // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_ACCESS         = 33  // { int sys_access(const char *path, int amode); }\n\tSYS_CHFLAGS        = 34  // { int sys_chflags(const char *path, u_int flags); }\n\tSYS_FCHFLAGS       = 35  // { int sys_fchflags(int fd, u_int flags); }\n\tSYS_SYNC           = 36  // { void sys_sync(void); }\n\tSYS_STAT           = 38  // { int sys_stat(const char *path, struct stat *ub); }\n\tSYS_GETPPID        = 39  // { pid_t sys_getppid(void); }\n\tSYS_LSTAT          = 40  // { int sys_lstat(const char *path, struct stat *ub); }\n\tSYS_DUP            = 41  // { int sys_dup(int fd); }\n\tSYS_FSTATAT        = 42  // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); }\n\tSYS_GETEGID        = 43  // { gid_t sys_getegid(void); }\n\tSYS_PROFIL         = 44  // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE         = 45  // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); }\n\tSYS_SIGACTION      = 46  // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); }\n\tSYS_GETGID         = 47  // { gid_t sys_getgid(void); }\n\tSYS_SIGPROCMASK    = 48  // { int sys_sigprocmask(int how, sigset_t mask); }\n\tSYS_SETLOGIN       = 50  // { int sys_setlogin(const char *namebuf); }\n\tSYS_ACCT           = 51  // { int sys_acct(const char *path); }\n\tSYS_SIGPENDING     = 52  // { int sys_sigpending(void); }\n\tSYS_FSTAT          = 53  // { int sys_fstat(int fd, struct stat *sb); }\n\tSYS_IOCTL          = 54  // { int sys_ioctl(int fd, u_long com, ... void *data); }\n\tSYS_REBOOT         = 55  // { int sys_reboot(int opt); }\n\tSYS_REVOKE         = 56  // { int sys_revoke(const char *path); }\n\tSYS_SYMLINK        = 57  // { int sys_symlink(const char *path, const char *link); }\n\tSYS_READLINK       = 58  // { ssize_t sys_readlink(const char *path, char *buf, size_t count); }\n\tSYS_EXECVE         = 59  // { int sys_execve(const char *path, char * const *argp, char * const *envp); }\n\tSYS_UMASK          = 60  // { mode_t sys_umask(mode_t newmask); }\n\tSYS_CHROOT         = 61  // { int sys_chroot(const char *path); }\n\tSYS_GETFSSTAT      = 62  // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); }\n\tSYS_STATFS         = 63  // { int sys_statfs(const char *path, struct statfs *buf); }\n\tSYS_FSTATFS        = 64  // { int sys_fstatfs(int fd, struct statfs *buf); }\n\tSYS_FHSTATFS       = 65  // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); }\n\tSYS_VFORK          = 66  // { int sys_vfork(void); }\n\tSYS_GETTIMEOFDAY   = 67  // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_SETTIMEOFDAY   = 68  // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); }\n\tSYS_SETITIMER      = 69  // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_GETITIMER      = 70  // { int sys_getitimer(int which, struct itimerval *itv); }\n\tSYS_SELECT         = 71  // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_KEVENT         = 72  // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_MUNMAP         = 73  // { int sys_munmap(void *addr, size_t len); }\n\tSYS_MPROTECT       = 74  // { int sys_mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE        = 75  // { int sys_madvise(void *addr, size_t len, int behav); }\n\tSYS_UTIMES         = 76  // { int sys_utimes(const char *path, const struct timeval *tptr); }\n\tSYS_FUTIMES        = 77  // { int sys_futimes(int fd, const struct timeval *tptr); }\n\tSYS_MINCORE        = 78  // { int sys_mincore(void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS      = 79  // { int sys_getgroups(int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS      = 80  // { int sys_setgroups(int gidsetsize, const gid_t *gidset); }\n\tSYS_GETPGRP        = 81  // { int sys_getpgrp(void); }\n\tSYS_SETPGID        = 82  // { int sys_setpgid(pid_t pid, pid_t pgid); }\n\tSYS_FUTEX          = 83  // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); }\n\tSYS_UTIMENSAT      = 84  // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); }\n\tSYS_FUTIMENS       = 85  // { int sys_futimens(int fd, const struct timespec *times); }\n\tSYS_KBIND          = 86  // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); }\n\tSYS_CLOCK_GETTIME  = 87  // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME  = 88  // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES   = 89  // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_DUP2           = 90  // { int sys_dup2(int from, int to); }\n\tSYS_NANOSLEEP      = 91  // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FCNTL          = 92  // { int sys_fcntl(int fd, int cmd, ... void *arg); }\n\tSYS_ACCEPT4        = 93  // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); }\n\tSYS___THRSLEEP     = 94  // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); }\n\tSYS_FSYNC          = 95  // { int sys_fsync(int fd); }\n\tSYS_SETPRIORITY    = 96  // { int sys_setpriority(int which, id_t who, int prio); }\n\tSYS_SOCKET         = 97  // { int sys_socket(int domain, int type, int protocol); }\n\tSYS_CONNECT        = 98  // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_GETDENTS       = 99  // { int sys_getdents(int fd, void *buf, size_t buflen); }\n\tSYS_GETPRIORITY    = 100 // { int sys_getpriority(int which, id_t who); }\n\tSYS_PIPE2          = 101 // { int sys_pipe2(int *fdp, int flags); }\n\tSYS_DUP3           = 102 // { int sys_dup3(int from, int to, int flags); }\n\tSYS_SIGRETURN      = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); }\n\tSYS_BIND           = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_SETSOCKOPT     = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }\n\tSYS_LISTEN         = 106 // { int sys_listen(int s, int backlog); }\n\tSYS_CHFLAGSAT      = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); }\n\tSYS_PLEDGE         = 108 // { int sys_pledge(const char *promises, const char *execpromises); }\n\tSYS_PPOLL          = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_PSELECT        = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_SIGSUSPEND     = 111 // { int sys_sigsuspend(int mask); }\n\tSYS_SENDSYSLOG     = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); }\n\tSYS_UNVEIL         = 114 // { int sys_unveil(const char *path, const char *permissions); }\n\tSYS_GETSOCKOPT     = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }\n\tSYS_THRKILL        = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); }\n\tSYS_READV          = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_WRITEV         = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_KILL           = 122 // { int sys_kill(int pid, int signum); }\n\tSYS_FCHOWN         = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS_FCHMOD         = 124 // { int sys_fchmod(int fd, mode_t mode); }\n\tSYS_SETREUID       = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); }\n\tSYS_SETREGID       = 127 // { int sys_setregid(gid_t rgid, gid_t egid); }\n\tSYS_RENAME         = 128 // { int sys_rename(const char *from, const char *to); }\n\tSYS_FLOCK          = 131 // { int sys_flock(int fd, int how); }\n\tSYS_MKFIFO         = 132 // { int sys_mkfifo(const char *path, mode_t mode); }\n\tSYS_SENDTO         = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }\n\tSYS_SHUTDOWN       = 134 // { int sys_shutdown(int s, int how); }\n\tSYS_SOCKETPAIR     = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR          = 136 // { int sys_mkdir(const char *path, mode_t mode); }\n\tSYS_RMDIR          = 137 // { int sys_rmdir(const char *path); }\n\tSYS_ADJTIME        = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); }\n\tSYS_GETLOGIN_R     = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); }\n\tSYS_SETSID         = 147 // { int sys_setsid(void); }\n\tSYS_QUOTACTL       = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); }\n\tSYS_NFSSVC         = 155 // { int sys_nfssvc(int flag, void *argp); }\n\tSYS_GETFH          = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); }\n\tSYS_SYSARCH        = 165 // { int sys_sysarch(int op, void *parms); }\n\tSYS_PREAD          = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_PWRITE         = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_SETGID         = 181 // { int sys_setgid(gid_t gid); }\n\tSYS_SETEGID        = 182 // { int sys_setegid(gid_t egid); }\n\tSYS_SETEUID        = 183 // { int sys_seteuid(uid_t euid); }\n\tSYS_PATHCONF       = 191 // { long sys_pathconf(const char *path, int name); }\n\tSYS_FPATHCONF      = 192 // { long sys_fpathconf(int fd, int name); }\n\tSYS_SWAPCTL        = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); }\n\tSYS_GETRLIMIT      = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); }\n\tSYS_SETRLIMIT      = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); }\n\tSYS_MMAP           = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_LSEEK          = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); }\n\tSYS_TRUNCATE       = 200 // { int sys_truncate(const char *path, int pad, off_t length); }\n\tSYS_FTRUNCATE      = 201 // { int sys_ftruncate(int fd, int pad, off_t length); }\n\tSYS_SYSCTL         = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }\n\tSYS_MLOCK          = 203 // { int sys_mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK        = 204 // { int sys_munlock(const void *addr, size_t len); }\n\tSYS_GETPGID        = 207 // { pid_t sys_getpgid(pid_t pid); }\n\tSYS_UTRACE         = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); }\n\tSYS_SEMGET         = 221 // { int sys_semget(key_t key, int nsems, int semflg); }\n\tSYS_MSGGET         = 225 // { int sys_msgget(key_t key, int msgflg); }\n\tSYS_MSGSND         = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV         = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT          = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT          = 230 // { int sys_shmdt(const void *shmaddr); }\n\tSYS_MINHERIT       = 250 // { int sys_minherit(void *addr, size_t len, int inherit); }\n\tSYS_POLL           = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_ISSETUGID      = 253 // { int sys_issetugid(void); }\n\tSYS_LCHOWN         = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_GETSID         = 255 // { pid_t sys_getsid(pid_t pid); }\n\tSYS_MSYNC          = 256 // { int sys_msync(void *addr, size_t len, int flags); }\n\tSYS_PIPE           = 263 // { int sys_pipe(int *fdp); }\n\tSYS_FHOPEN         = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); }\n\tSYS_PREADV         = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_PWRITEV        = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_KQUEUE         = 269 // { int sys_kqueue(void); }\n\tSYS_MLOCKALL       = 271 // { int sys_mlockall(int flags); }\n\tSYS_MUNLOCKALL     = 272 // { int sys_munlockall(void); }\n\tSYS_GETRESUID      = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_SETRESUID      = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_GETRESGID      = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_SETRESGID      = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_MQUERY         = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_CLOSEFROM      = 287 // { int sys_closefrom(int fd); }\n\tSYS_SIGALTSTACK    = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); }\n\tSYS_SHMGET         = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); }\n\tSYS_SEMOP          = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_FHSTAT         = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); }\n\tSYS___SEMCTL       = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_SHMCTL         = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_MSGCTL         = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SCHED_YIELD    = 298 // { int sys_sched_yield(void); }\n\tSYS_GETTHRID       = 299 // { pid_t sys_getthrid(void); }\n\tSYS___THRWAKEUP    = 301 // { int sys___thrwakeup(const volatile void *ident, int n); }\n\tSYS___THREXIT      = 302 // { void sys___threxit(pid_t *notdead); }\n\tSYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); }\n\tSYS___GETCWD       = 304 // { int sys___getcwd(char *buf, size_t len); }\n\tSYS_ADJFREQ        = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); }\n\tSYS_SETRTABLE      = 310 // { int sys_setrtable(int rtableid); }\n\tSYS_GETRTABLE      = 311 // { int sys_getrtable(void); }\n\tSYS_FACCESSAT      = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); }\n\tSYS_FCHMODAT       = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT       = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_LINKAT         = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); }\n\tSYS_MKDIRAT        = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); }\n\tSYS_MKFIFOAT       = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); }\n\tSYS_MKNODAT        = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); }\n\tSYS_OPENAT         = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); }\n\tSYS_READLINKAT     = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); }\n\tSYS_RENAMEAT       = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); }\n\tSYS_SYMLINKAT      = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); }\n\tSYS_UNLINKAT       = 325 // { int sys_unlinkat(int fd, const char *path, int flag); }\n\tSYS___SET_TCB      = 329 // { void sys___set_tcb(void *tcb); }\n\tSYS___GET_TCB      = 330 // { void *sys___get_tcb(void); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go",
    "content": "// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm && openbsd\n\npackage unix\n\n// Deprecated: Use libc wrappers instead of direct syscalls.\nconst (\n\tSYS_EXIT           = 1   // { void sys_exit(int rval); }\n\tSYS_FORK           = 2   // { int sys_fork(void); }\n\tSYS_READ           = 3   // { ssize_t sys_read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE          = 4   // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN           = 5   // { int sys_open(const char *path, int flags, ... mode_t mode); }\n\tSYS_CLOSE          = 6   // { int sys_close(int fd); }\n\tSYS_GETENTROPY     = 7   // { int sys_getentropy(void *buf, size_t nbyte); }\n\tSYS___TFORK        = 8   // { int sys___tfork(const struct __tfork *param, size_t psize); }\n\tSYS_LINK           = 9   // { int sys_link(const char *path, const char *link); }\n\tSYS_UNLINK         = 10  // { int sys_unlink(const char *path); }\n\tSYS_WAIT4          = 11  // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); }\n\tSYS_CHDIR          = 12  // { int sys_chdir(const char *path); }\n\tSYS_FCHDIR         = 13  // { int sys_fchdir(int fd); }\n\tSYS_MKNOD          = 14  // { int sys_mknod(const char *path, mode_t mode, dev_t dev); }\n\tSYS_CHMOD          = 15  // { int sys_chmod(const char *path, mode_t mode); }\n\tSYS_CHOWN          = 16  // { int sys_chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_OBREAK         = 17  // { int sys_obreak(char *nsize); } break\n\tSYS_GETDTABLECOUNT = 18  // { int sys_getdtablecount(void); }\n\tSYS_GETRUSAGE      = 19  // { int sys_getrusage(int who, struct rusage *rusage); }\n\tSYS_GETPID         = 20  // { pid_t sys_getpid(void); }\n\tSYS_MOUNT          = 21  // { int sys_mount(const char *type, const char *path, int flags, void *data); }\n\tSYS_UNMOUNT        = 22  // { int sys_unmount(const char *path, int flags); }\n\tSYS_SETUID         = 23  // { int sys_setuid(uid_t uid); }\n\tSYS_GETUID         = 24  // { uid_t sys_getuid(void); }\n\tSYS_GETEUID        = 25  // { uid_t sys_geteuid(void); }\n\tSYS_PTRACE         = 26  // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG        = 27  // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG        = 28  // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); }\n\tSYS_RECVFROM       = 29  // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }\n\tSYS_ACCEPT         = 30  // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); }\n\tSYS_GETPEERNAME    = 31  // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_GETSOCKNAME    = 32  // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_ACCESS         = 33  // { int sys_access(const char *path, int amode); }\n\tSYS_CHFLAGS        = 34  // { int sys_chflags(const char *path, u_int flags); }\n\tSYS_FCHFLAGS       = 35  // { int sys_fchflags(int fd, u_int flags); }\n\tSYS_SYNC           = 36  // { void sys_sync(void); }\n\tSYS_STAT           = 38  // { int sys_stat(const char *path, struct stat *ub); }\n\tSYS_GETPPID        = 39  // { pid_t sys_getppid(void); }\n\tSYS_LSTAT          = 40  // { int sys_lstat(const char *path, struct stat *ub); }\n\tSYS_DUP            = 41  // { int sys_dup(int fd); }\n\tSYS_FSTATAT        = 42  // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); }\n\tSYS_GETEGID        = 43  // { gid_t sys_getegid(void); }\n\tSYS_PROFIL         = 44  // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE         = 45  // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); }\n\tSYS_SIGACTION      = 46  // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); }\n\tSYS_GETGID         = 47  // { gid_t sys_getgid(void); }\n\tSYS_SIGPROCMASK    = 48  // { int sys_sigprocmask(int how, sigset_t mask); }\n\tSYS_SETLOGIN       = 50  // { int sys_setlogin(const char *namebuf); }\n\tSYS_ACCT           = 51  // { int sys_acct(const char *path); }\n\tSYS_SIGPENDING     = 52  // { int sys_sigpending(void); }\n\tSYS_FSTAT          = 53  // { int sys_fstat(int fd, struct stat *sb); }\n\tSYS_IOCTL          = 54  // { int sys_ioctl(int fd, u_long com, ... void *data); }\n\tSYS_REBOOT         = 55  // { int sys_reboot(int opt); }\n\tSYS_REVOKE         = 56  // { int sys_revoke(const char *path); }\n\tSYS_SYMLINK        = 57  // { int sys_symlink(const char *path, const char *link); }\n\tSYS_READLINK       = 58  // { ssize_t sys_readlink(const char *path, char *buf, size_t count); }\n\tSYS_EXECVE         = 59  // { int sys_execve(const char *path, char * const *argp, char * const *envp); }\n\tSYS_UMASK          = 60  // { mode_t sys_umask(mode_t newmask); }\n\tSYS_CHROOT         = 61  // { int sys_chroot(const char *path); }\n\tSYS_GETFSSTAT      = 62  // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); }\n\tSYS_STATFS         = 63  // { int sys_statfs(const char *path, struct statfs *buf); }\n\tSYS_FSTATFS        = 64  // { int sys_fstatfs(int fd, struct statfs *buf); }\n\tSYS_FHSTATFS       = 65  // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); }\n\tSYS_VFORK          = 66  // { int sys_vfork(void); }\n\tSYS_GETTIMEOFDAY   = 67  // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_SETTIMEOFDAY   = 68  // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); }\n\tSYS_SETITIMER      = 69  // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_GETITIMER      = 70  // { int sys_getitimer(int which, struct itimerval *itv); }\n\tSYS_SELECT         = 71  // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_KEVENT         = 72  // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_MUNMAP         = 73  // { int sys_munmap(void *addr, size_t len); }\n\tSYS_MPROTECT       = 74  // { int sys_mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE        = 75  // { int sys_madvise(void *addr, size_t len, int behav); }\n\tSYS_UTIMES         = 76  // { int sys_utimes(const char *path, const struct timeval *tptr); }\n\tSYS_FUTIMES        = 77  // { int sys_futimes(int fd, const struct timeval *tptr); }\n\tSYS_MINCORE        = 78  // { int sys_mincore(void *addr, size_t len, char *vec); }\n\tSYS_GETGROUPS      = 79  // { int sys_getgroups(int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS      = 80  // { int sys_setgroups(int gidsetsize, const gid_t *gidset); }\n\tSYS_GETPGRP        = 81  // { int sys_getpgrp(void); }\n\tSYS_SETPGID        = 82  // { int sys_setpgid(pid_t pid, pid_t pgid); }\n\tSYS_FUTEX          = 83  // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); }\n\tSYS_UTIMENSAT      = 84  // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); }\n\tSYS_FUTIMENS       = 85  // { int sys_futimens(int fd, const struct timespec *times); }\n\tSYS_KBIND          = 86  // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); }\n\tSYS_CLOCK_GETTIME  = 87  // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME  = 88  // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES   = 89  // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_DUP2           = 90  // { int sys_dup2(int from, int to); }\n\tSYS_NANOSLEEP      = 91  // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FCNTL          = 92  // { int sys_fcntl(int fd, int cmd, ... void *arg); }\n\tSYS_ACCEPT4        = 93  // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); }\n\tSYS___THRSLEEP     = 94  // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); }\n\tSYS_FSYNC          = 95  // { int sys_fsync(int fd); }\n\tSYS_SETPRIORITY    = 96  // { int sys_setpriority(int which, id_t who, int prio); }\n\tSYS_SOCKET         = 97  // { int sys_socket(int domain, int type, int protocol); }\n\tSYS_CONNECT        = 98  // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_GETDENTS       = 99  // { int sys_getdents(int fd, void *buf, size_t buflen); }\n\tSYS_GETPRIORITY    = 100 // { int sys_getpriority(int which, id_t who); }\n\tSYS_PIPE2          = 101 // { int sys_pipe2(int *fdp, int flags); }\n\tSYS_DUP3           = 102 // { int sys_dup3(int from, int to, int flags); }\n\tSYS_SIGRETURN      = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); }\n\tSYS_BIND           = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_SETSOCKOPT     = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }\n\tSYS_LISTEN         = 106 // { int sys_listen(int s, int backlog); }\n\tSYS_CHFLAGSAT      = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); }\n\tSYS_PLEDGE         = 108 // { int sys_pledge(const char *promises, const char *execpromises); }\n\tSYS_PPOLL          = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_PSELECT        = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_SIGSUSPEND     = 111 // { int sys_sigsuspend(int mask); }\n\tSYS_SENDSYSLOG     = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); }\n\tSYS_UNVEIL         = 114 // { int sys_unveil(const char *path, const char *permissions); }\n\tSYS_GETSOCKOPT     = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }\n\tSYS_THRKILL        = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); }\n\tSYS_READV          = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_WRITEV         = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_KILL           = 122 // { int sys_kill(int pid, int signum); }\n\tSYS_FCHOWN         = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS_FCHMOD         = 124 // { int sys_fchmod(int fd, mode_t mode); }\n\tSYS_SETREUID       = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); }\n\tSYS_SETREGID       = 127 // { int sys_setregid(gid_t rgid, gid_t egid); }\n\tSYS_RENAME         = 128 // { int sys_rename(const char *from, const char *to); }\n\tSYS_FLOCK          = 131 // { int sys_flock(int fd, int how); }\n\tSYS_MKFIFO         = 132 // { int sys_mkfifo(const char *path, mode_t mode); }\n\tSYS_SENDTO         = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }\n\tSYS_SHUTDOWN       = 134 // { int sys_shutdown(int s, int how); }\n\tSYS_SOCKETPAIR     = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR          = 136 // { int sys_mkdir(const char *path, mode_t mode); }\n\tSYS_RMDIR          = 137 // { int sys_rmdir(const char *path); }\n\tSYS_ADJTIME        = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); }\n\tSYS_GETLOGIN_R     = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); }\n\tSYS_SETSID         = 147 // { int sys_setsid(void); }\n\tSYS_QUOTACTL       = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); }\n\tSYS_NFSSVC         = 155 // { int sys_nfssvc(int flag, void *argp); }\n\tSYS_GETFH          = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); }\n\tSYS_SYSARCH        = 165 // { int sys_sysarch(int op, void *parms); }\n\tSYS_PREAD          = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_PWRITE         = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_SETGID         = 181 // { int sys_setgid(gid_t gid); }\n\tSYS_SETEGID        = 182 // { int sys_setegid(gid_t egid); }\n\tSYS_SETEUID        = 183 // { int sys_seteuid(uid_t euid); }\n\tSYS_PATHCONF       = 191 // { long sys_pathconf(const char *path, int name); }\n\tSYS_FPATHCONF      = 192 // { long sys_fpathconf(int fd, int name); }\n\tSYS_SWAPCTL        = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); }\n\tSYS_GETRLIMIT      = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); }\n\tSYS_SETRLIMIT      = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); }\n\tSYS_MMAP           = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_LSEEK          = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); }\n\tSYS_TRUNCATE       = 200 // { int sys_truncate(const char *path, int pad, off_t length); }\n\tSYS_FTRUNCATE      = 201 // { int sys_ftruncate(int fd, int pad, off_t length); }\n\tSYS_SYSCTL         = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }\n\tSYS_MLOCK          = 203 // { int sys_mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK        = 204 // { int sys_munlock(const void *addr, size_t len); }\n\tSYS_GETPGID        = 207 // { pid_t sys_getpgid(pid_t pid); }\n\tSYS_UTRACE         = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); }\n\tSYS_SEMGET         = 221 // { int sys_semget(key_t key, int nsems, int semflg); }\n\tSYS_MSGGET         = 225 // { int sys_msgget(key_t key, int msgflg); }\n\tSYS_MSGSND         = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV         = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT          = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT          = 230 // { int sys_shmdt(const void *shmaddr); }\n\tSYS_MINHERIT       = 250 // { int sys_minherit(void *addr, size_t len, int inherit); }\n\tSYS_POLL           = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_ISSETUGID      = 253 // { int sys_issetugid(void); }\n\tSYS_LCHOWN         = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_GETSID         = 255 // { pid_t sys_getsid(pid_t pid); }\n\tSYS_MSYNC          = 256 // { int sys_msync(void *addr, size_t len, int flags); }\n\tSYS_PIPE           = 263 // { int sys_pipe(int *fdp); }\n\tSYS_FHOPEN         = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); }\n\tSYS_PREADV         = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_PWRITEV        = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_KQUEUE         = 269 // { int sys_kqueue(void); }\n\tSYS_MLOCKALL       = 271 // { int sys_mlockall(int flags); }\n\tSYS_MUNLOCKALL     = 272 // { int sys_munlockall(void); }\n\tSYS_GETRESUID      = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_SETRESUID      = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_GETRESGID      = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_SETRESGID      = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_MQUERY         = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_CLOSEFROM      = 287 // { int sys_closefrom(int fd); }\n\tSYS_SIGALTSTACK    = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); }\n\tSYS_SHMGET         = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); }\n\tSYS_SEMOP          = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_FHSTAT         = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); }\n\tSYS___SEMCTL       = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_SHMCTL         = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_MSGCTL         = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SCHED_YIELD    = 298 // { int sys_sched_yield(void); }\n\tSYS_GETTHRID       = 299 // { pid_t sys_getthrid(void); }\n\tSYS___THRWAKEUP    = 301 // { int sys___thrwakeup(const volatile void *ident, int n); }\n\tSYS___THREXIT      = 302 // { void sys___threxit(pid_t *notdead); }\n\tSYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); }\n\tSYS___GETCWD       = 304 // { int sys___getcwd(char *buf, size_t len); }\n\tSYS_ADJFREQ        = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); }\n\tSYS_SETRTABLE      = 310 // { int sys_setrtable(int rtableid); }\n\tSYS_GETRTABLE      = 311 // { int sys_getrtable(void); }\n\tSYS_FACCESSAT      = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); }\n\tSYS_FCHMODAT       = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT       = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_LINKAT         = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); }\n\tSYS_MKDIRAT        = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); }\n\tSYS_MKFIFOAT       = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); }\n\tSYS_MKNODAT        = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); }\n\tSYS_OPENAT         = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); }\n\tSYS_READLINKAT     = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); }\n\tSYS_RENAMEAT       = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); }\n\tSYS_SYMLINKAT      = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); }\n\tSYS_UNLINKAT       = 325 // { int sys_unlinkat(int fd, const char *path, int flag); }\n\tSYS___SET_TCB      = 329 // { void sys___set_tcb(void *tcb); }\n\tSYS___GET_TCB      = 330 // { void *sys___get_tcb(void); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go",
    "content": "// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && openbsd\n\npackage unix\n\n// Deprecated: Use libc wrappers instead of direct syscalls.\nconst (\n\tSYS_EXIT           = 1   // { void sys_exit(int rval); }\n\tSYS_FORK           = 2   // { int sys_fork(void); }\n\tSYS_READ           = 3   // { ssize_t sys_read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE          = 4   // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN           = 5   // { int sys_open(const char *path, int flags, ... mode_t mode); }\n\tSYS_CLOSE          = 6   // { int sys_close(int fd); }\n\tSYS_GETENTROPY     = 7   // { int sys_getentropy(void *buf, size_t nbyte); }\n\tSYS___TFORK        = 8   // { int sys___tfork(const struct __tfork *param, size_t psize); }\n\tSYS_LINK           = 9   // { int sys_link(const char *path, const char *link); }\n\tSYS_UNLINK         = 10  // { int sys_unlink(const char *path); }\n\tSYS_WAIT4          = 11  // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); }\n\tSYS_CHDIR          = 12  // { int sys_chdir(const char *path); }\n\tSYS_FCHDIR         = 13  // { int sys_fchdir(int fd); }\n\tSYS_MKNOD          = 14  // { int sys_mknod(const char *path, mode_t mode, dev_t dev); }\n\tSYS_CHMOD          = 15  // { int sys_chmod(const char *path, mode_t mode); }\n\tSYS_CHOWN          = 16  // { int sys_chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_OBREAK         = 17  // { int sys_obreak(char *nsize); } break\n\tSYS_GETDTABLECOUNT = 18  // { int sys_getdtablecount(void); }\n\tSYS_GETRUSAGE      = 19  // { int sys_getrusage(int who, struct rusage *rusage); }\n\tSYS_GETPID         = 20  // { pid_t sys_getpid(void); }\n\tSYS_MOUNT          = 21  // { int sys_mount(const char *type, const char *path, int flags, void *data); }\n\tSYS_UNMOUNT        = 22  // { int sys_unmount(const char *path, int flags); }\n\tSYS_SETUID         = 23  // { int sys_setuid(uid_t uid); }\n\tSYS_GETUID         = 24  // { uid_t sys_getuid(void); }\n\tSYS_GETEUID        = 25  // { uid_t sys_geteuid(void); }\n\tSYS_PTRACE         = 26  // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG        = 27  // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG        = 28  // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); }\n\tSYS_RECVFROM       = 29  // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }\n\tSYS_ACCEPT         = 30  // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); }\n\tSYS_GETPEERNAME    = 31  // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_GETSOCKNAME    = 32  // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_ACCESS         = 33  // { int sys_access(const char *path, int amode); }\n\tSYS_CHFLAGS        = 34  // { int sys_chflags(const char *path, u_int flags); }\n\tSYS_FCHFLAGS       = 35  // { int sys_fchflags(int fd, u_int flags); }\n\tSYS_SYNC           = 36  // { void sys_sync(void); }\n\tSYS_STAT           = 38  // { int sys_stat(const char *path, struct stat *ub); }\n\tSYS_GETPPID        = 39  // { pid_t sys_getppid(void); }\n\tSYS_LSTAT          = 40  // { int sys_lstat(const char *path, struct stat *ub); }\n\tSYS_DUP            = 41  // { int sys_dup(int fd); }\n\tSYS_FSTATAT        = 42  // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); }\n\tSYS_GETEGID        = 43  // { gid_t sys_getegid(void); }\n\tSYS_PROFIL         = 44  // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE         = 45  // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); }\n\tSYS_SIGACTION      = 46  // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); }\n\tSYS_GETGID         = 47  // { gid_t sys_getgid(void); }\n\tSYS_SIGPROCMASK    = 48  // { int sys_sigprocmask(int how, sigset_t mask); }\n\tSYS_SETLOGIN       = 50  // { int sys_setlogin(const char *namebuf); }\n\tSYS_ACCT           = 51  // { int sys_acct(const char *path); }\n\tSYS_SIGPENDING     = 52  // { int sys_sigpending(void); }\n\tSYS_FSTAT          = 53  // { int sys_fstat(int fd, struct stat *sb); }\n\tSYS_IOCTL          = 54  // { int sys_ioctl(int fd, u_long com, ... void *data); }\n\tSYS_REBOOT         = 55  // { int sys_reboot(int opt); }\n\tSYS_REVOKE         = 56  // { int sys_revoke(const char *path); }\n\tSYS_SYMLINK        = 57  // { int sys_symlink(const char *path, const char *link); }\n\tSYS_READLINK       = 58  // { ssize_t sys_readlink(const char *path, char *buf, size_t count); }\n\tSYS_EXECVE         = 59  // { int sys_execve(const char *path, char * const *argp, char * const *envp); }\n\tSYS_UMASK          = 60  // { mode_t sys_umask(mode_t newmask); }\n\tSYS_CHROOT         = 61  // { int sys_chroot(const char *path); }\n\tSYS_GETFSSTAT      = 62  // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); }\n\tSYS_STATFS         = 63  // { int sys_statfs(const char *path, struct statfs *buf); }\n\tSYS_FSTATFS        = 64  // { int sys_fstatfs(int fd, struct statfs *buf); }\n\tSYS_FHSTATFS       = 65  // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); }\n\tSYS_VFORK          = 66  // { int sys_vfork(void); }\n\tSYS_GETTIMEOFDAY   = 67  // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_SETTIMEOFDAY   = 68  // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); }\n\tSYS_SETITIMER      = 69  // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_GETITIMER      = 70  // { int sys_getitimer(int which, struct itimerval *itv); }\n\tSYS_SELECT         = 71  // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_KEVENT         = 72  // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_MUNMAP         = 73  // { int sys_munmap(void *addr, size_t len); }\n\tSYS_MPROTECT       = 74  // { int sys_mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE        = 75  // { int sys_madvise(void *addr, size_t len, int behav); }\n\tSYS_UTIMES         = 76  // { int sys_utimes(const char *path, const struct timeval *tptr); }\n\tSYS_FUTIMES        = 77  // { int sys_futimes(int fd, const struct timeval *tptr); }\n\tSYS_GETGROUPS      = 79  // { int sys_getgroups(int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS      = 80  // { int sys_setgroups(int gidsetsize, const gid_t *gidset); }\n\tSYS_GETPGRP        = 81  // { int sys_getpgrp(void); }\n\tSYS_SETPGID        = 82  // { int sys_setpgid(pid_t pid, pid_t pgid); }\n\tSYS_FUTEX          = 83  // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); }\n\tSYS_UTIMENSAT      = 84  // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); }\n\tSYS_FUTIMENS       = 85  // { int sys_futimens(int fd, const struct timespec *times); }\n\tSYS_KBIND          = 86  // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); }\n\tSYS_CLOCK_GETTIME  = 87  // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME  = 88  // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES   = 89  // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_DUP2           = 90  // { int sys_dup2(int from, int to); }\n\tSYS_NANOSLEEP      = 91  // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FCNTL          = 92  // { int sys_fcntl(int fd, int cmd, ... void *arg); }\n\tSYS_ACCEPT4        = 93  // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); }\n\tSYS___THRSLEEP     = 94  // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); }\n\tSYS_FSYNC          = 95  // { int sys_fsync(int fd); }\n\tSYS_SETPRIORITY    = 96  // { int sys_setpriority(int which, id_t who, int prio); }\n\tSYS_SOCKET         = 97  // { int sys_socket(int domain, int type, int protocol); }\n\tSYS_CONNECT        = 98  // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_GETDENTS       = 99  // { int sys_getdents(int fd, void *buf, size_t buflen); }\n\tSYS_GETPRIORITY    = 100 // { int sys_getpriority(int which, id_t who); }\n\tSYS_PIPE2          = 101 // { int sys_pipe2(int *fdp, int flags); }\n\tSYS_DUP3           = 102 // { int sys_dup3(int from, int to, int flags); }\n\tSYS_SIGRETURN      = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); }\n\tSYS_BIND           = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_SETSOCKOPT     = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }\n\tSYS_LISTEN         = 106 // { int sys_listen(int s, int backlog); }\n\tSYS_CHFLAGSAT      = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); }\n\tSYS_PLEDGE         = 108 // { int sys_pledge(const char *promises, const char *execpromises); }\n\tSYS_PPOLL          = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_PSELECT        = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_SIGSUSPEND     = 111 // { int sys_sigsuspend(int mask); }\n\tSYS_SENDSYSLOG     = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); }\n\tSYS_UNVEIL         = 114 // { int sys_unveil(const char *path, const char *permissions); }\n\tSYS_GETSOCKOPT     = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }\n\tSYS_THRKILL        = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); }\n\tSYS_READV          = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_WRITEV         = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_KILL           = 122 // { int sys_kill(int pid, int signum); }\n\tSYS_FCHOWN         = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS_FCHMOD         = 124 // { int sys_fchmod(int fd, mode_t mode); }\n\tSYS_SETREUID       = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); }\n\tSYS_SETREGID       = 127 // { int sys_setregid(gid_t rgid, gid_t egid); }\n\tSYS_RENAME         = 128 // { int sys_rename(const char *from, const char *to); }\n\tSYS_FLOCK          = 131 // { int sys_flock(int fd, int how); }\n\tSYS_MKFIFO         = 132 // { int sys_mkfifo(const char *path, mode_t mode); }\n\tSYS_SENDTO         = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }\n\tSYS_SHUTDOWN       = 134 // { int sys_shutdown(int s, int how); }\n\tSYS_SOCKETPAIR     = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR          = 136 // { int sys_mkdir(const char *path, mode_t mode); }\n\tSYS_RMDIR          = 137 // { int sys_rmdir(const char *path); }\n\tSYS_ADJTIME        = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); }\n\tSYS_GETLOGIN_R     = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); }\n\tSYS_SETSID         = 147 // { int sys_setsid(void); }\n\tSYS_QUOTACTL       = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); }\n\tSYS_NFSSVC         = 155 // { int sys_nfssvc(int flag, void *argp); }\n\tSYS_GETFH          = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); }\n\tSYS_SYSARCH        = 165 // { int sys_sysarch(int op, void *parms); }\n\tSYS_PREAD          = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_PWRITE         = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_SETGID         = 181 // { int sys_setgid(gid_t gid); }\n\tSYS_SETEGID        = 182 // { int sys_setegid(gid_t egid); }\n\tSYS_SETEUID        = 183 // { int sys_seteuid(uid_t euid); }\n\tSYS_PATHCONF       = 191 // { long sys_pathconf(const char *path, int name); }\n\tSYS_FPATHCONF      = 192 // { long sys_fpathconf(int fd, int name); }\n\tSYS_SWAPCTL        = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); }\n\tSYS_GETRLIMIT      = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); }\n\tSYS_SETRLIMIT      = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); }\n\tSYS_MMAP           = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_LSEEK          = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); }\n\tSYS_TRUNCATE       = 200 // { int sys_truncate(const char *path, int pad, off_t length); }\n\tSYS_FTRUNCATE      = 201 // { int sys_ftruncate(int fd, int pad, off_t length); }\n\tSYS_SYSCTL         = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }\n\tSYS_MLOCK          = 203 // { int sys_mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK        = 204 // { int sys_munlock(const void *addr, size_t len); }\n\tSYS_GETPGID        = 207 // { pid_t sys_getpgid(pid_t pid); }\n\tSYS_UTRACE         = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); }\n\tSYS_SEMGET         = 221 // { int sys_semget(key_t key, int nsems, int semflg); }\n\tSYS_MSGGET         = 225 // { int sys_msgget(key_t key, int msgflg); }\n\tSYS_MSGSND         = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV         = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT          = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT          = 230 // { int sys_shmdt(const void *shmaddr); }\n\tSYS_MINHERIT       = 250 // { int sys_minherit(void *addr, size_t len, int inherit); }\n\tSYS_POLL           = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_ISSETUGID      = 253 // { int sys_issetugid(void); }\n\tSYS_LCHOWN         = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_GETSID         = 255 // { pid_t sys_getsid(pid_t pid); }\n\tSYS_MSYNC          = 256 // { int sys_msync(void *addr, size_t len, int flags); }\n\tSYS_PIPE           = 263 // { int sys_pipe(int *fdp); }\n\tSYS_FHOPEN         = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); }\n\tSYS_PREADV         = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_PWRITEV        = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_KQUEUE         = 269 // { int sys_kqueue(void); }\n\tSYS_MLOCKALL       = 271 // { int sys_mlockall(int flags); }\n\tSYS_MUNLOCKALL     = 272 // { int sys_munlockall(void); }\n\tSYS_GETRESUID      = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_SETRESUID      = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_GETRESGID      = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_SETRESGID      = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_MQUERY         = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_CLOSEFROM      = 287 // { int sys_closefrom(int fd); }\n\tSYS_SIGALTSTACK    = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); }\n\tSYS_SHMGET         = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); }\n\tSYS_SEMOP          = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_FHSTAT         = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); }\n\tSYS___SEMCTL       = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_SHMCTL         = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_MSGCTL         = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SCHED_YIELD    = 298 // { int sys_sched_yield(void); }\n\tSYS_GETTHRID       = 299 // { pid_t sys_getthrid(void); }\n\tSYS___THRWAKEUP    = 301 // { int sys___thrwakeup(const volatile void *ident, int n); }\n\tSYS___THREXIT      = 302 // { void sys___threxit(pid_t *notdead); }\n\tSYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); }\n\tSYS___GETCWD       = 304 // { int sys___getcwd(char *buf, size_t len); }\n\tSYS_ADJFREQ        = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); }\n\tSYS_SETRTABLE      = 310 // { int sys_setrtable(int rtableid); }\n\tSYS_GETRTABLE      = 311 // { int sys_getrtable(void); }\n\tSYS_FACCESSAT      = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); }\n\tSYS_FCHMODAT       = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT       = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_LINKAT         = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); }\n\tSYS_MKDIRAT        = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); }\n\tSYS_MKFIFOAT       = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); }\n\tSYS_MKNODAT        = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); }\n\tSYS_OPENAT         = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); }\n\tSYS_READLINKAT     = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); }\n\tSYS_RENAMEAT       = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); }\n\tSYS_SYMLINKAT      = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); }\n\tSYS_UNLINKAT       = 325 // { int sys_unlinkat(int fd, const char *path, int flag); }\n\tSYS___SET_TCB      = 329 // { void sys___set_tcb(void *tcb); }\n\tSYS___GET_TCB      = 330 // { void *sys___get_tcb(void); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go",
    "content": "// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mips64 && openbsd\n\npackage unix\n\n// Deprecated: Use libc wrappers instead of direct syscalls.\nconst (\n\tSYS_EXIT           = 1   // { void sys_exit(int rval); }\n\tSYS_FORK           = 2   // { int sys_fork(void); }\n\tSYS_READ           = 3   // { ssize_t sys_read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE          = 4   // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN           = 5   // { int sys_open(const char *path, int flags, ... mode_t mode); }\n\tSYS_CLOSE          = 6   // { int sys_close(int fd); }\n\tSYS_GETENTROPY     = 7   // { int sys_getentropy(void *buf, size_t nbyte); }\n\tSYS___TFORK        = 8   // { int sys___tfork(const struct __tfork *param, size_t psize); }\n\tSYS_LINK           = 9   // { int sys_link(const char *path, const char *link); }\n\tSYS_UNLINK         = 10  // { int sys_unlink(const char *path); }\n\tSYS_WAIT4          = 11  // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); }\n\tSYS_CHDIR          = 12  // { int sys_chdir(const char *path); }\n\tSYS_FCHDIR         = 13  // { int sys_fchdir(int fd); }\n\tSYS_MKNOD          = 14  // { int sys_mknod(const char *path, mode_t mode, dev_t dev); }\n\tSYS_CHMOD          = 15  // { int sys_chmod(const char *path, mode_t mode); }\n\tSYS_CHOWN          = 16  // { int sys_chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_OBREAK         = 17  // { int sys_obreak(char *nsize); } break\n\tSYS_GETDTABLECOUNT = 18  // { int sys_getdtablecount(void); }\n\tSYS_GETRUSAGE      = 19  // { int sys_getrusage(int who, struct rusage *rusage); }\n\tSYS_GETPID         = 20  // { pid_t sys_getpid(void); }\n\tSYS_MOUNT          = 21  // { int sys_mount(const char *type, const char *path, int flags, void *data); }\n\tSYS_UNMOUNT        = 22  // { int sys_unmount(const char *path, int flags); }\n\tSYS_SETUID         = 23  // { int sys_setuid(uid_t uid); }\n\tSYS_GETUID         = 24  // { uid_t sys_getuid(void); }\n\tSYS_GETEUID        = 25  // { uid_t sys_geteuid(void); }\n\tSYS_PTRACE         = 26  // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG        = 27  // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG        = 28  // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); }\n\tSYS_RECVFROM       = 29  // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }\n\tSYS_ACCEPT         = 30  // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); }\n\tSYS_GETPEERNAME    = 31  // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_GETSOCKNAME    = 32  // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_ACCESS         = 33  // { int sys_access(const char *path, int amode); }\n\tSYS_CHFLAGS        = 34  // { int sys_chflags(const char *path, u_int flags); }\n\tSYS_FCHFLAGS       = 35  // { int sys_fchflags(int fd, u_int flags); }\n\tSYS_SYNC           = 36  // { void sys_sync(void); }\n\tSYS_MSYSCALL       = 37  // { int sys_msyscall(void *addr, size_t len); }\n\tSYS_STAT           = 38  // { int sys_stat(const char *path, struct stat *ub); }\n\tSYS_GETPPID        = 39  // { pid_t sys_getppid(void); }\n\tSYS_LSTAT          = 40  // { int sys_lstat(const char *path, struct stat *ub); }\n\tSYS_DUP            = 41  // { int sys_dup(int fd); }\n\tSYS_FSTATAT        = 42  // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); }\n\tSYS_GETEGID        = 43  // { gid_t sys_getegid(void); }\n\tSYS_PROFIL         = 44  // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE         = 45  // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); }\n\tSYS_SIGACTION      = 46  // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); }\n\tSYS_GETGID         = 47  // { gid_t sys_getgid(void); }\n\tSYS_SIGPROCMASK    = 48  // { int sys_sigprocmask(int how, sigset_t mask); }\n\tSYS_SETLOGIN       = 50  // { int sys_setlogin(const char *namebuf); }\n\tSYS_ACCT           = 51  // { int sys_acct(const char *path); }\n\tSYS_SIGPENDING     = 52  // { int sys_sigpending(void); }\n\tSYS_FSTAT          = 53  // { int sys_fstat(int fd, struct stat *sb); }\n\tSYS_IOCTL          = 54  // { int sys_ioctl(int fd, u_long com, ... void *data); }\n\tSYS_REBOOT         = 55  // { int sys_reboot(int opt); }\n\tSYS_REVOKE         = 56  // { int sys_revoke(const char *path); }\n\tSYS_SYMLINK        = 57  // { int sys_symlink(const char *path, const char *link); }\n\tSYS_READLINK       = 58  // { ssize_t sys_readlink(const char *path, char *buf, size_t count); }\n\tSYS_EXECVE         = 59  // { int sys_execve(const char *path, char * const *argp, char * const *envp); }\n\tSYS_UMASK          = 60  // { mode_t sys_umask(mode_t newmask); }\n\tSYS_CHROOT         = 61  // { int sys_chroot(const char *path); }\n\tSYS_GETFSSTAT      = 62  // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); }\n\tSYS_STATFS         = 63  // { int sys_statfs(const char *path, struct statfs *buf); }\n\tSYS_FSTATFS        = 64  // { int sys_fstatfs(int fd, struct statfs *buf); }\n\tSYS_FHSTATFS       = 65  // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); }\n\tSYS_VFORK          = 66  // { int sys_vfork(void); }\n\tSYS_GETTIMEOFDAY   = 67  // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_SETTIMEOFDAY   = 68  // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); }\n\tSYS_SETITIMER      = 69  // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_GETITIMER      = 70  // { int sys_getitimer(int which, struct itimerval *itv); }\n\tSYS_SELECT         = 71  // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_KEVENT         = 72  // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_MUNMAP         = 73  // { int sys_munmap(void *addr, size_t len); }\n\tSYS_MPROTECT       = 74  // { int sys_mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE        = 75  // { int sys_madvise(void *addr, size_t len, int behav); }\n\tSYS_UTIMES         = 76  // { int sys_utimes(const char *path, const struct timeval *tptr); }\n\tSYS_FUTIMES        = 77  // { int sys_futimes(int fd, const struct timeval *tptr); }\n\tSYS_GETGROUPS      = 79  // { int sys_getgroups(int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS      = 80  // { int sys_setgroups(int gidsetsize, const gid_t *gidset); }\n\tSYS_GETPGRP        = 81  // { int sys_getpgrp(void); }\n\tSYS_SETPGID        = 82  // { int sys_setpgid(pid_t pid, pid_t pgid); }\n\tSYS_FUTEX          = 83  // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); }\n\tSYS_UTIMENSAT      = 84  // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); }\n\tSYS_FUTIMENS       = 85  // { int sys_futimens(int fd, const struct timespec *times); }\n\tSYS_KBIND          = 86  // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); }\n\tSYS_CLOCK_GETTIME  = 87  // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME  = 88  // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES   = 89  // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_DUP2           = 90  // { int sys_dup2(int from, int to); }\n\tSYS_NANOSLEEP      = 91  // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FCNTL          = 92  // { int sys_fcntl(int fd, int cmd, ... void *arg); }\n\tSYS_ACCEPT4        = 93  // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); }\n\tSYS___THRSLEEP     = 94  // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); }\n\tSYS_FSYNC          = 95  // { int sys_fsync(int fd); }\n\tSYS_SETPRIORITY    = 96  // { int sys_setpriority(int which, id_t who, int prio); }\n\tSYS_SOCKET         = 97  // { int sys_socket(int domain, int type, int protocol); }\n\tSYS_CONNECT        = 98  // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_GETDENTS       = 99  // { int sys_getdents(int fd, void *buf, size_t buflen); }\n\tSYS_GETPRIORITY    = 100 // { int sys_getpriority(int which, id_t who); }\n\tSYS_PIPE2          = 101 // { int sys_pipe2(int *fdp, int flags); }\n\tSYS_DUP3           = 102 // { int sys_dup3(int from, int to, int flags); }\n\tSYS_SIGRETURN      = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); }\n\tSYS_BIND           = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_SETSOCKOPT     = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }\n\tSYS_LISTEN         = 106 // { int sys_listen(int s, int backlog); }\n\tSYS_CHFLAGSAT      = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); }\n\tSYS_PLEDGE         = 108 // { int sys_pledge(const char *promises, const char *execpromises); }\n\tSYS_PPOLL          = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_PSELECT        = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_SIGSUSPEND     = 111 // { int sys_sigsuspend(int mask); }\n\tSYS_SENDSYSLOG     = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); }\n\tSYS_UNVEIL         = 114 // { int sys_unveil(const char *path, const char *permissions); }\n\tSYS___REALPATH     = 115 // { int sys___realpath(const char *pathname, char *resolved); }\n\tSYS_GETSOCKOPT     = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }\n\tSYS_THRKILL        = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); }\n\tSYS_READV          = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_WRITEV         = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_KILL           = 122 // { int sys_kill(int pid, int signum); }\n\tSYS_FCHOWN         = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS_FCHMOD         = 124 // { int sys_fchmod(int fd, mode_t mode); }\n\tSYS_SETREUID       = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); }\n\tSYS_SETREGID       = 127 // { int sys_setregid(gid_t rgid, gid_t egid); }\n\tSYS_RENAME         = 128 // { int sys_rename(const char *from, const char *to); }\n\tSYS_FLOCK          = 131 // { int sys_flock(int fd, int how); }\n\tSYS_MKFIFO         = 132 // { int sys_mkfifo(const char *path, mode_t mode); }\n\tSYS_SENDTO         = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }\n\tSYS_SHUTDOWN       = 134 // { int sys_shutdown(int s, int how); }\n\tSYS_SOCKETPAIR     = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR          = 136 // { int sys_mkdir(const char *path, mode_t mode); }\n\tSYS_RMDIR          = 137 // { int sys_rmdir(const char *path); }\n\tSYS_ADJTIME        = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); }\n\tSYS_GETLOGIN_R     = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); }\n\tSYS_SETSID         = 147 // { int sys_setsid(void); }\n\tSYS_QUOTACTL       = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); }\n\tSYS_NFSSVC         = 155 // { int sys_nfssvc(int flag, void *argp); }\n\tSYS_GETFH          = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); }\n\tSYS___TMPFD        = 164 // { int sys___tmpfd(int flags); }\n\tSYS_SYSARCH        = 165 // { int sys_sysarch(int op, void *parms); }\n\tSYS_PREAD          = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_PWRITE         = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_SETGID         = 181 // { int sys_setgid(gid_t gid); }\n\tSYS_SETEGID        = 182 // { int sys_setegid(gid_t egid); }\n\tSYS_SETEUID        = 183 // { int sys_seteuid(uid_t euid); }\n\tSYS_PATHCONF       = 191 // { long sys_pathconf(const char *path, int name); }\n\tSYS_FPATHCONF      = 192 // { long sys_fpathconf(int fd, int name); }\n\tSYS_SWAPCTL        = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); }\n\tSYS_GETRLIMIT      = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); }\n\tSYS_SETRLIMIT      = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); }\n\tSYS_MMAP           = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_LSEEK          = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); }\n\tSYS_TRUNCATE       = 200 // { int sys_truncate(const char *path, int pad, off_t length); }\n\tSYS_FTRUNCATE      = 201 // { int sys_ftruncate(int fd, int pad, off_t length); }\n\tSYS_SYSCTL         = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }\n\tSYS_MLOCK          = 203 // { int sys_mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK        = 204 // { int sys_munlock(const void *addr, size_t len); }\n\tSYS_GETPGID        = 207 // { pid_t sys_getpgid(pid_t pid); }\n\tSYS_UTRACE         = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); }\n\tSYS_SEMGET         = 221 // { int sys_semget(key_t key, int nsems, int semflg); }\n\tSYS_MSGGET         = 225 // { int sys_msgget(key_t key, int msgflg); }\n\tSYS_MSGSND         = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV         = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT          = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT          = 230 // { int sys_shmdt(const void *shmaddr); }\n\tSYS_MINHERIT       = 250 // { int sys_minherit(void *addr, size_t len, int inherit); }\n\tSYS_POLL           = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_ISSETUGID      = 253 // { int sys_issetugid(void); }\n\tSYS_LCHOWN         = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_GETSID         = 255 // { pid_t sys_getsid(pid_t pid); }\n\tSYS_MSYNC          = 256 // { int sys_msync(void *addr, size_t len, int flags); }\n\tSYS_PIPE           = 263 // { int sys_pipe(int *fdp); }\n\tSYS_FHOPEN         = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); }\n\tSYS_PREADV         = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_PWRITEV        = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_KQUEUE         = 269 // { int sys_kqueue(void); }\n\tSYS_MLOCKALL       = 271 // { int sys_mlockall(int flags); }\n\tSYS_MUNLOCKALL     = 272 // { int sys_munlockall(void); }\n\tSYS_GETRESUID      = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_SETRESUID      = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_GETRESGID      = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_SETRESGID      = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_MQUERY         = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_CLOSEFROM      = 287 // { int sys_closefrom(int fd); }\n\tSYS_SIGALTSTACK    = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); }\n\tSYS_SHMGET         = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); }\n\tSYS_SEMOP          = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_FHSTAT         = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); }\n\tSYS___SEMCTL       = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_SHMCTL         = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_MSGCTL         = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SCHED_YIELD    = 298 // { int sys_sched_yield(void); }\n\tSYS_GETTHRID       = 299 // { pid_t sys_getthrid(void); }\n\tSYS___THRWAKEUP    = 301 // { int sys___thrwakeup(const volatile void *ident, int n); }\n\tSYS___THREXIT      = 302 // { void sys___threxit(pid_t *notdead); }\n\tSYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); }\n\tSYS___GETCWD       = 304 // { int sys___getcwd(char *buf, size_t len); }\n\tSYS_ADJFREQ        = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); }\n\tSYS_SETRTABLE      = 310 // { int sys_setrtable(int rtableid); }\n\tSYS_GETRTABLE      = 311 // { int sys_getrtable(void); }\n\tSYS_FACCESSAT      = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); }\n\tSYS_FCHMODAT       = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT       = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_LINKAT         = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); }\n\tSYS_MKDIRAT        = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); }\n\tSYS_MKFIFOAT       = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); }\n\tSYS_MKNODAT        = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); }\n\tSYS_OPENAT         = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); }\n\tSYS_READLINKAT     = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); }\n\tSYS_RENAMEAT       = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); }\n\tSYS_SYMLINKAT      = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); }\n\tSYS_UNLINKAT       = 325 // { int sys_unlinkat(int fd, const char *path, int flag); }\n\tSYS___SET_TCB      = 329 // { void sys___set_tcb(void *tcb); }\n\tSYS___GET_TCB      = 330 // { void *sys___get_tcb(void); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go",
    "content": "// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc64 && openbsd\n\npackage unix\n\nconst (\n\tSYS_EXIT           = 1   // { void sys_exit(int rval); }\n\tSYS_FORK           = 2   // { int sys_fork(void); }\n\tSYS_READ           = 3   // { ssize_t sys_read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE          = 4   // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN           = 5   // { int sys_open(const char *path, int flags, ... mode_t mode); }\n\tSYS_CLOSE          = 6   // { int sys_close(int fd); }\n\tSYS_GETENTROPY     = 7   // { int sys_getentropy(void *buf, size_t nbyte); }\n\tSYS___TFORK        = 8   // { int sys___tfork(const struct __tfork *param, size_t psize); }\n\tSYS_LINK           = 9   // { int sys_link(const char *path, const char *link); }\n\tSYS_UNLINK         = 10  // { int sys_unlink(const char *path); }\n\tSYS_WAIT4          = 11  // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); }\n\tSYS_CHDIR          = 12  // { int sys_chdir(const char *path); }\n\tSYS_FCHDIR         = 13  // { int sys_fchdir(int fd); }\n\tSYS_MKNOD          = 14  // { int sys_mknod(const char *path, mode_t mode, dev_t dev); }\n\tSYS_CHMOD          = 15  // { int sys_chmod(const char *path, mode_t mode); }\n\tSYS_CHOWN          = 16  // { int sys_chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_OBREAK         = 17  // { int sys_obreak(char *nsize); } break\n\tSYS_GETDTABLECOUNT = 18  // { int sys_getdtablecount(void); }\n\tSYS_GETRUSAGE      = 19  // { int sys_getrusage(int who, struct rusage *rusage); }\n\tSYS_GETPID         = 20  // { pid_t sys_getpid(void); }\n\tSYS_MOUNT          = 21  // { int sys_mount(const char *type, const char *path, int flags, void *data); }\n\tSYS_UNMOUNT        = 22  // { int sys_unmount(const char *path, int flags); }\n\tSYS_SETUID         = 23  // { int sys_setuid(uid_t uid); }\n\tSYS_GETUID         = 24  // { uid_t sys_getuid(void); }\n\tSYS_GETEUID        = 25  // { uid_t sys_geteuid(void); }\n\tSYS_PTRACE         = 26  // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG        = 27  // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG        = 28  // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); }\n\tSYS_RECVFROM       = 29  // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }\n\tSYS_ACCEPT         = 30  // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); }\n\tSYS_GETPEERNAME    = 31  // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_GETSOCKNAME    = 32  // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_ACCESS         = 33  // { int sys_access(const char *path, int amode); }\n\tSYS_CHFLAGS        = 34  // { int sys_chflags(const char *path, u_int flags); }\n\tSYS_FCHFLAGS       = 35  // { int sys_fchflags(int fd, u_int flags); }\n\tSYS_SYNC           = 36  // { void sys_sync(void); }\n\tSYS_STAT           = 38  // { int sys_stat(const char *path, struct stat *ub); }\n\tSYS_GETPPID        = 39  // { pid_t sys_getppid(void); }\n\tSYS_LSTAT          = 40  // { int sys_lstat(const char *path, struct stat *ub); }\n\tSYS_DUP            = 41  // { int sys_dup(int fd); }\n\tSYS_FSTATAT        = 42  // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); }\n\tSYS_GETEGID        = 43  // { gid_t sys_getegid(void); }\n\tSYS_PROFIL         = 44  // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE         = 45  // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); }\n\tSYS_SIGACTION      = 46  // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); }\n\tSYS_GETGID         = 47  // { gid_t sys_getgid(void); }\n\tSYS_SIGPROCMASK    = 48  // { int sys_sigprocmask(int how, sigset_t mask); }\n\tSYS_SETLOGIN       = 50  // { int sys_setlogin(const char *namebuf); }\n\tSYS_ACCT           = 51  // { int sys_acct(const char *path); }\n\tSYS_SIGPENDING     = 52  // { int sys_sigpending(void); }\n\tSYS_FSTAT          = 53  // { int sys_fstat(int fd, struct stat *sb); }\n\tSYS_IOCTL          = 54  // { int sys_ioctl(int fd, u_long com, ... void *data); }\n\tSYS_REBOOT         = 55  // { int sys_reboot(int opt); }\n\tSYS_REVOKE         = 56  // { int sys_revoke(const char *path); }\n\tSYS_SYMLINK        = 57  // { int sys_symlink(const char *path, const char *link); }\n\tSYS_READLINK       = 58  // { ssize_t sys_readlink(const char *path, char *buf, size_t count); }\n\tSYS_EXECVE         = 59  // { int sys_execve(const char *path, char * const *argp, char * const *envp); }\n\tSYS_UMASK          = 60  // { mode_t sys_umask(mode_t newmask); }\n\tSYS_CHROOT         = 61  // { int sys_chroot(const char *path); }\n\tSYS_GETFSSTAT      = 62  // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); }\n\tSYS_STATFS         = 63  // { int sys_statfs(const char *path, struct statfs *buf); }\n\tSYS_FSTATFS        = 64  // { int sys_fstatfs(int fd, struct statfs *buf); }\n\tSYS_FHSTATFS       = 65  // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); }\n\tSYS_VFORK          = 66  // { int sys_vfork(void); }\n\tSYS_GETTIMEOFDAY   = 67  // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_SETTIMEOFDAY   = 68  // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); }\n\tSYS_SETITIMER      = 69  // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_GETITIMER      = 70  // { int sys_getitimer(int which, struct itimerval *itv); }\n\tSYS_SELECT         = 71  // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_KEVENT         = 72  // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_MUNMAP         = 73  // { int sys_munmap(void *addr, size_t len); }\n\tSYS_MPROTECT       = 74  // { int sys_mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE        = 75  // { int sys_madvise(void *addr, size_t len, int behav); }\n\tSYS_UTIMES         = 76  // { int sys_utimes(const char *path, const struct timeval *tptr); }\n\tSYS_FUTIMES        = 77  // { int sys_futimes(int fd, const struct timeval *tptr); }\n\tSYS_GETGROUPS      = 79  // { int sys_getgroups(int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS      = 80  // { int sys_setgroups(int gidsetsize, const gid_t *gidset); }\n\tSYS_GETPGRP        = 81  // { int sys_getpgrp(void); }\n\tSYS_SETPGID        = 82  // { int sys_setpgid(pid_t pid, pid_t pgid); }\n\tSYS_FUTEX          = 83  // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); }\n\tSYS_UTIMENSAT      = 84  // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); }\n\tSYS_FUTIMENS       = 85  // { int sys_futimens(int fd, const struct timespec *times); }\n\tSYS_KBIND          = 86  // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); }\n\tSYS_CLOCK_GETTIME  = 87  // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME  = 88  // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES   = 89  // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_DUP2           = 90  // { int sys_dup2(int from, int to); }\n\tSYS_NANOSLEEP      = 91  // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FCNTL          = 92  // { int sys_fcntl(int fd, int cmd, ... void *arg); }\n\tSYS_ACCEPT4        = 93  // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); }\n\tSYS___THRSLEEP     = 94  // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); }\n\tSYS_FSYNC          = 95  // { int sys_fsync(int fd); }\n\tSYS_SETPRIORITY    = 96  // { int sys_setpriority(int which, id_t who, int prio); }\n\tSYS_SOCKET         = 97  // { int sys_socket(int domain, int type, int protocol); }\n\tSYS_CONNECT        = 98  // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_GETDENTS       = 99  // { int sys_getdents(int fd, void *buf, size_t buflen); }\n\tSYS_GETPRIORITY    = 100 // { int sys_getpriority(int which, id_t who); }\n\tSYS_PIPE2          = 101 // { int sys_pipe2(int *fdp, int flags); }\n\tSYS_DUP3           = 102 // { int sys_dup3(int from, int to, int flags); }\n\tSYS_SIGRETURN      = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); }\n\tSYS_BIND           = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_SETSOCKOPT     = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }\n\tSYS_LISTEN         = 106 // { int sys_listen(int s, int backlog); }\n\tSYS_CHFLAGSAT      = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); }\n\tSYS_PLEDGE         = 108 // { int sys_pledge(const char *promises, const char *execpromises); }\n\tSYS_PPOLL          = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_PSELECT        = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_SIGSUSPEND     = 111 // { int sys_sigsuspend(int mask); }\n\tSYS_SENDSYSLOG     = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); }\n\tSYS_UNVEIL         = 114 // { int sys_unveil(const char *path, const char *permissions); }\n\tSYS_GETSOCKOPT     = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }\n\tSYS_THRKILL        = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); }\n\tSYS_READV          = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_WRITEV         = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_KILL           = 122 // { int sys_kill(int pid, int signum); }\n\tSYS_FCHOWN         = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS_FCHMOD         = 124 // { int sys_fchmod(int fd, mode_t mode); }\n\tSYS_SETREUID       = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); }\n\tSYS_SETREGID       = 127 // { int sys_setregid(gid_t rgid, gid_t egid); }\n\tSYS_RENAME         = 128 // { int sys_rename(const char *from, const char *to); }\n\tSYS_FLOCK          = 131 // { int sys_flock(int fd, int how); }\n\tSYS_MKFIFO         = 132 // { int sys_mkfifo(const char *path, mode_t mode); }\n\tSYS_SENDTO         = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }\n\tSYS_SHUTDOWN       = 134 // { int sys_shutdown(int s, int how); }\n\tSYS_SOCKETPAIR     = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR          = 136 // { int sys_mkdir(const char *path, mode_t mode); }\n\tSYS_RMDIR          = 137 // { int sys_rmdir(const char *path); }\n\tSYS_ADJTIME        = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); }\n\tSYS_GETLOGIN_R     = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); }\n\tSYS_SETSID         = 147 // { int sys_setsid(void); }\n\tSYS_QUOTACTL       = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); }\n\tSYS_NFSSVC         = 155 // { int sys_nfssvc(int flag, void *argp); }\n\tSYS_GETFH          = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); }\n\tSYS_SYSARCH        = 165 // { int sys_sysarch(int op, void *parms); }\n\tSYS_PREAD          = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_PWRITE         = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_SETGID         = 181 // { int sys_setgid(gid_t gid); }\n\tSYS_SETEGID        = 182 // { int sys_setegid(gid_t egid); }\n\tSYS_SETEUID        = 183 // { int sys_seteuid(uid_t euid); }\n\tSYS_PATHCONF       = 191 // { long sys_pathconf(const char *path, int name); }\n\tSYS_FPATHCONF      = 192 // { long sys_fpathconf(int fd, int name); }\n\tSYS_SWAPCTL        = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); }\n\tSYS_GETRLIMIT      = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); }\n\tSYS_SETRLIMIT      = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); }\n\tSYS_MMAP           = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_LSEEK          = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); }\n\tSYS_TRUNCATE       = 200 // { int sys_truncate(const char *path, int pad, off_t length); }\n\tSYS_FTRUNCATE      = 201 // { int sys_ftruncate(int fd, int pad, off_t length); }\n\tSYS_SYSCTL         = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }\n\tSYS_MLOCK          = 203 // { int sys_mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK        = 204 // { int sys_munlock(const void *addr, size_t len); }\n\tSYS_GETPGID        = 207 // { pid_t sys_getpgid(pid_t pid); }\n\tSYS_UTRACE         = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); }\n\tSYS_SEMGET         = 221 // { int sys_semget(key_t key, int nsems, int semflg); }\n\tSYS_MSGGET         = 225 // { int sys_msgget(key_t key, int msgflg); }\n\tSYS_MSGSND         = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV         = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT          = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT          = 230 // { int sys_shmdt(const void *shmaddr); }\n\tSYS_MINHERIT       = 250 // { int sys_minherit(void *addr, size_t len, int inherit); }\n\tSYS_POLL           = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_ISSETUGID      = 253 // { int sys_issetugid(void); }\n\tSYS_LCHOWN         = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_GETSID         = 255 // { pid_t sys_getsid(pid_t pid); }\n\tSYS_MSYNC          = 256 // { int sys_msync(void *addr, size_t len, int flags); }\n\tSYS_PIPE           = 263 // { int sys_pipe(int *fdp); }\n\tSYS_FHOPEN         = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); }\n\tSYS_PREADV         = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_PWRITEV        = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_KQUEUE         = 269 // { int sys_kqueue(void); }\n\tSYS_MLOCKALL       = 271 // { int sys_mlockall(int flags); }\n\tSYS_MUNLOCKALL     = 272 // { int sys_munlockall(void); }\n\tSYS_GETRESUID      = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_SETRESUID      = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_GETRESGID      = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_SETRESGID      = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_MQUERY         = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_CLOSEFROM      = 287 // { int sys_closefrom(int fd); }\n\tSYS_SIGALTSTACK    = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); }\n\tSYS_SHMGET         = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); }\n\tSYS_SEMOP          = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_FHSTAT         = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); }\n\tSYS___SEMCTL       = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_SHMCTL         = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_MSGCTL         = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SCHED_YIELD    = 298 // { int sys_sched_yield(void); }\n\tSYS_GETTHRID       = 299 // { pid_t sys_getthrid(void); }\n\tSYS___THRWAKEUP    = 301 // { int sys___thrwakeup(const volatile void *ident, int n); }\n\tSYS___THREXIT      = 302 // { void sys___threxit(pid_t *notdead); }\n\tSYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); }\n\tSYS___GETCWD       = 304 // { int sys___getcwd(char *buf, size_t len); }\n\tSYS_ADJFREQ        = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); }\n\tSYS_SETRTABLE      = 310 // { int sys_setrtable(int rtableid); }\n\tSYS_GETRTABLE      = 311 // { int sys_getrtable(void); }\n\tSYS_FACCESSAT      = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); }\n\tSYS_FCHMODAT       = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT       = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_LINKAT         = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); }\n\tSYS_MKDIRAT        = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); }\n\tSYS_MKFIFOAT       = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); }\n\tSYS_MKNODAT        = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); }\n\tSYS_OPENAT         = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); }\n\tSYS_READLINKAT     = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); }\n\tSYS_RENAMEAT       = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); }\n\tSYS_SYMLINKAT      = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); }\n\tSYS_UNLINKAT       = 325 // { int sys_unlinkat(int fd, const char *path, int flag); }\n\tSYS___SET_TCB      = 329 // { void sys___set_tcb(void *tcb); }\n\tSYS___GET_TCB      = 330 // { void *sys___get_tcb(void); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go",
    "content": "// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build riscv64 && openbsd\n\npackage unix\n\n// Deprecated: Use libc wrappers instead of direct syscalls.\nconst (\n\tSYS_EXIT           = 1   // { void sys_exit(int rval); }\n\tSYS_FORK           = 2   // { int sys_fork(void); }\n\tSYS_READ           = 3   // { ssize_t sys_read(int fd, void *buf, size_t nbyte); }\n\tSYS_WRITE          = 4   // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); }\n\tSYS_OPEN           = 5   // { int sys_open(const char *path, int flags, ... mode_t mode); }\n\tSYS_CLOSE          = 6   // { int sys_close(int fd); }\n\tSYS_GETENTROPY     = 7   // { int sys_getentropy(void *buf, size_t nbyte); }\n\tSYS___TFORK        = 8   // { int sys___tfork(const struct __tfork *param, size_t psize); }\n\tSYS_LINK           = 9   // { int sys_link(const char *path, const char *link); }\n\tSYS_UNLINK         = 10  // { int sys_unlink(const char *path); }\n\tSYS_WAIT4          = 11  // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); }\n\tSYS_CHDIR          = 12  // { int sys_chdir(const char *path); }\n\tSYS_FCHDIR         = 13  // { int sys_fchdir(int fd); }\n\tSYS_MKNOD          = 14  // { int sys_mknod(const char *path, mode_t mode, dev_t dev); }\n\tSYS_CHMOD          = 15  // { int sys_chmod(const char *path, mode_t mode); }\n\tSYS_CHOWN          = 16  // { int sys_chown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_OBREAK         = 17  // { int sys_obreak(char *nsize); } break\n\tSYS_GETDTABLECOUNT = 18  // { int sys_getdtablecount(void); }\n\tSYS_GETRUSAGE      = 19  // { int sys_getrusage(int who, struct rusage *rusage); }\n\tSYS_GETPID         = 20  // { pid_t sys_getpid(void); }\n\tSYS_MOUNT          = 21  // { int sys_mount(const char *type, const char *path, int flags, void *data); }\n\tSYS_UNMOUNT        = 22  // { int sys_unmount(const char *path, int flags); }\n\tSYS_SETUID         = 23  // { int sys_setuid(uid_t uid); }\n\tSYS_GETUID         = 24  // { uid_t sys_getuid(void); }\n\tSYS_GETEUID        = 25  // { uid_t sys_geteuid(void); }\n\tSYS_PTRACE         = 26  // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); }\n\tSYS_RECVMSG        = 27  // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); }\n\tSYS_SENDMSG        = 28  // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); }\n\tSYS_RECVFROM       = 29  // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); }\n\tSYS_ACCEPT         = 30  // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); }\n\tSYS_GETPEERNAME    = 31  // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_GETSOCKNAME    = 32  // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); }\n\tSYS_ACCESS         = 33  // { int sys_access(const char *path, int amode); }\n\tSYS_CHFLAGS        = 34  // { int sys_chflags(const char *path, u_int flags); }\n\tSYS_FCHFLAGS       = 35  // { int sys_fchflags(int fd, u_int flags); }\n\tSYS_SYNC           = 36  // { void sys_sync(void); }\n\tSYS_STAT           = 38  // { int sys_stat(const char *path, struct stat *ub); }\n\tSYS_GETPPID        = 39  // { pid_t sys_getppid(void); }\n\tSYS_LSTAT          = 40  // { int sys_lstat(const char *path, struct stat *ub); }\n\tSYS_DUP            = 41  // { int sys_dup(int fd); }\n\tSYS_FSTATAT        = 42  // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); }\n\tSYS_GETEGID        = 43  // { gid_t sys_getegid(void); }\n\tSYS_PROFIL         = 44  // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); }\n\tSYS_KTRACE         = 45  // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); }\n\tSYS_SIGACTION      = 46  // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); }\n\tSYS_GETGID         = 47  // { gid_t sys_getgid(void); }\n\tSYS_SIGPROCMASK    = 48  // { int sys_sigprocmask(int how, sigset_t mask); }\n\tSYS_SETLOGIN       = 50  // { int sys_setlogin(const char *namebuf); }\n\tSYS_ACCT           = 51  // { int sys_acct(const char *path); }\n\tSYS_SIGPENDING     = 52  // { int sys_sigpending(void); }\n\tSYS_FSTAT          = 53  // { int sys_fstat(int fd, struct stat *sb); }\n\tSYS_IOCTL          = 54  // { int sys_ioctl(int fd, u_long com, ... void *data); }\n\tSYS_REBOOT         = 55  // { int sys_reboot(int opt); }\n\tSYS_REVOKE         = 56  // { int sys_revoke(const char *path); }\n\tSYS_SYMLINK        = 57  // { int sys_symlink(const char *path, const char *link); }\n\tSYS_READLINK       = 58  // { ssize_t sys_readlink(const char *path, char *buf, size_t count); }\n\tSYS_EXECVE         = 59  // { int sys_execve(const char *path, char * const *argp, char * const *envp); }\n\tSYS_UMASK          = 60  // { mode_t sys_umask(mode_t newmask); }\n\tSYS_CHROOT         = 61  // { int sys_chroot(const char *path); }\n\tSYS_GETFSSTAT      = 62  // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); }\n\tSYS_STATFS         = 63  // { int sys_statfs(const char *path, struct statfs *buf); }\n\tSYS_FSTATFS        = 64  // { int sys_fstatfs(int fd, struct statfs *buf); }\n\tSYS_FHSTATFS       = 65  // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); }\n\tSYS_VFORK          = 66  // { int sys_vfork(void); }\n\tSYS_GETTIMEOFDAY   = 67  // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); }\n\tSYS_SETTIMEOFDAY   = 68  // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); }\n\tSYS_SETITIMER      = 69  // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }\n\tSYS_GETITIMER      = 70  // { int sys_getitimer(int which, struct itimerval *itv); }\n\tSYS_SELECT         = 71  // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }\n\tSYS_KEVENT         = 72  // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }\n\tSYS_MUNMAP         = 73  // { int sys_munmap(void *addr, size_t len); }\n\tSYS_MPROTECT       = 74  // { int sys_mprotect(void *addr, size_t len, int prot); }\n\tSYS_MADVISE        = 75  // { int sys_madvise(void *addr, size_t len, int behav); }\n\tSYS_UTIMES         = 76  // { int sys_utimes(const char *path, const struct timeval *tptr); }\n\tSYS_FUTIMES        = 77  // { int sys_futimes(int fd, const struct timeval *tptr); }\n\tSYS_GETGROUPS      = 79  // { int sys_getgroups(int gidsetsize, gid_t *gidset); }\n\tSYS_SETGROUPS      = 80  // { int sys_setgroups(int gidsetsize, const gid_t *gidset); }\n\tSYS_GETPGRP        = 81  // { int sys_getpgrp(void); }\n\tSYS_SETPGID        = 82  // { int sys_setpgid(pid_t pid, pid_t pgid); }\n\tSYS_FUTEX          = 83  // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); }\n\tSYS_UTIMENSAT      = 84  // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); }\n\tSYS_FUTIMENS       = 85  // { int sys_futimens(int fd, const struct timespec *times); }\n\tSYS_KBIND          = 86  // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); }\n\tSYS_CLOCK_GETTIME  = 87  // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); }\n\tSYS_CLOCK_SETTIME  = 88  // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); }\n\tSYS_CLOCK_GETRES   = 89  // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); }\n\tSYS_DUP2           = 90  // { int sys_dup2(int from, int to); }\n\tSYS_NANOSLEEP      = 91  // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }\n\tSYS_FCNTL          = 92  // { int sys_fcntl(int fd, int cmd, ... void *arg); }\n\tSYS_ACCEPT4        = 93  // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); }\n\tSYS___THRSLEEP     = 94  // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); }\n\tSYS_FSYNC          = 95  // { int sys_fsync(int fd); }\n\tSYS_SETPRIORITY    = 96  // { int sys_setpriority(int which, id_t who, int prio); }\n\tSYS_SOCKET         = 97  // { int sys_socket(int domain, int type, int protocol); }\n\tSYS_CONNECT        = 98  // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_GETDENTS       = 99  // { int sys_getdents(int fd, void *buf, size_t buflen); }\n\tSYS_GETPRIORITY    = 100 // { int sys_getpriority(int which, id_t who); }\n\tSYS_PIPE2          = 101 // { int sys_pipe2(int *fdp, int flags); }\n\tSYS_DUP3           = 102 // { int sys_dup3(int from, int to, int flags); }\n\tSYS_SIGRETURN      = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); }\n\tSYS_BIND           = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); }\n\tSYS_SETSOCKOPT     = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); }\n\tSYS_LISTEN         = 106 // { int sys_listen(int s, int backlog); }\n\tSYS_CHFLAGSAT      = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); }\n\tSYS_PLEDGE         = 108 // { int sys_pledge(const char *promises, const char *execpromises); }\n\tSYS_PPOLL          = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_PSELECT        = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }\n\tSYS_SIGSUSPEND     = 111 // { int sys_sigsuspend(int mask); }\n\tSYS_SENDSYSLOG     = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); }\n\tSYS_UNVEIL         = 114 // { int sys_unveil(const char *path, const char *permissions); }\n\tSYS_GETSOCKOPT     = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }\n\tSYS_THRKILL        = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); }\n\tSYS_READV          = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_WRITEV         = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); }\n\tSYS_KILL           = 122 // { int sys_kill(int pid, int signum); }\n\tSYS_FCHOWN         = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); }\n\tSYS_FCHMOD         = 124 // { int sys_fchmod(int fd, mode_t mode); }\n\tSYS_SETREUID       = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); }\n\tSYS_SETREGID       = 127 // { int sys_setregid(gid_t rgid, gid_t egid); }\n\tSYS_RENAME         = 128 // { int sys_rename(const char *from, const char *to); }\n\tSYS_FLOCK          = 131 // { int sys_flock(int fd, int how); }\n\tSYS_MKFIFO         = 132 // { int sys_mkfifo(const char *path, mode_t mode); }\n\tSYS_SENDTO         = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); }\n\tSYS_SHUTDOWN       = 134 // { int sys_shutdown(int s, int how); }\n\tSYS_SOCKETPAIR     = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); }\n\tSYS_MKDIR          = 136 // { int sys_mkdir(const char *path, mode_t mode); }\n\tSYS_RMDIR          = 137 // { int sys_rmdir(const char *path); }\n\tSYS_ADJTIME        = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); }\n\tSYS_GETLOGIN_R     = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); }\n\tSYS_SETSID         = 147 // { int sys_setsid(void); }\n\tSYS_QUOTACTL       = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); }\n\tSYS_NFSSVC         = 155 // { int sys_nfssvc(int flag, void *argp); }\n\tSYS_GETFH          = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); }\n\tSYS_SYSARCH        = 165 // { int sys_sysarch(int op, void *parms); }\n\tSYS_PREAD          = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_PWRITE         = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); }\n\tSYS_SETGID         = 181 // { int sys_setgid(gid_t gid); }\n\tSYS_SETEGID        = 182 // { int sys_setegid(gid_t egid); }\n\tSYS_SETEUID        = 183 // { int sys_seteuid(uid_t euid); }\n\tSYS_PATHCONF       = 191 // { long sys_pathconf(const char *path, int name); }\n\tSYS_FPATHCONF      = 192 // { long sys_fpathconf(int fd, int name); }\n\tSYS_SWAPCTL        = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); }\n\tSYS_GETRLIMIT      = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); }\n\tSYS_SETRLIMIT      = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); }\n\tSYS_MMAP           = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_LSEEK          = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); }\n\tSYS_TRUNCATE       = 200 // { int sys_truncate(const char *path, int pad, off_t length); }\n\tSYS_FTRUNCATE      = 201 // { int sys_ftruncate(int fd, int pad, off_t length); }\n\tSYS_SYSCTL         = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); }\n\tSYS_MLOCK          = 203 // { int sys_mlock(const void *addr, size_t len); }\n\tSYS_MUNLOCK        = 204 // { int sys_munlock(const void *addr, size_t len); }\n\tSYS_GETPGID        = 207 // { pid_t sys_getpgid(pid_t pid); }\n\tSYS_UTRACE         = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); }\n\tSYS_SEMGET         = 221 // { int sys_semget(key_t key, int nsems, int semflg); }\n\tSYS_MSGGET         = 225 // { int sys_msgget(key_t key, int msgflg); }\n\tSYS_MSGSND         = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }\n\tSYS_MSGRCV         = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }\n\tSYS_SHMAT          = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); }\n\tSYS_SHMDT          = 230 // { int sys_shmdt(const void *shmaddr); }\n\tSYS_MINHERIT       = 250 // { int sys_minherit(void *addr, size_t len, int inherit); }\n\tSYS_POLL           = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); }\n\tSYS_ISSETUGID      = 253 // { int sys_issetugid(void); }\n\tSYS_LCHOWN         = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); }\n\tSYS_GETSID         = 255 // { pid_t sys_getsid(pid_t pid); }\n\tSYS_MSYNC          = 256 // { int sys_msync(void *addr, size_t len, int flags); }\n\tSYS_PIPE           = 263 // { int sys_pipe(int *fdp); }\n\tSYS_FHOPEN         = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); }\n\tSYS_PREADV         = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_PWRITEV        = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }\n\tSYS_KQUEUE         = 269 // { int sys_kqueue(void); }\n\tSYS_MLOCKALL       = 271 // { int sys_mlockall(int flags); }\n\tSYS_MUNLOCKALL     = 272 // { int sys_munlockall(void); }\n\tSYS_GETRESUID      = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }\n\tSYS_SETRESUID      = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); }\n\tSYS_GETRESGID      = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }\n\tSYS_SETRESGID      = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); }\n\tSYS_MQUERY         = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }\n\tSYS_CLOSEFROM      = 287 // { int sys_closefrom(int fd); }\n\tSYS_SIGALTSTACK    = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); }\n\tSYS_SHMGET         = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); }\n\tSYS_SEMOP          = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); }\n\tSYS_FHSTAT         = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); }\n\tSYS___SEMCTL       = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); }\n\tSYS_SHMCTL         = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); }\n\tSYS_MSGCTL         = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); }\n\tSYS_SCHED_YIELD    = 298 // { int sys_sched_yield(void); }\n\tSYS_GETTHRID       = 299 // { pid_t sys_getthrid(void); }\n\tSYS___THRWAKEUP    = 301 // { int sys___thrwakeup(const volatile void *ident, int n); }\n\tSYS___THREXIT      = 302 // { void sys___threxit(pid_t *notdead); }\n\tSYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); }\n\tSYS___GETCWD       = 304 // { int sys___getcwd(char *buf, size_t len); }\n\tSYS_ADJFREQ        = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); }\n\tSYS_SETRTABLE      = 310 // { int sys_setrtable(int rtableid); }\n\tSYS_GETRTABLE      = 311 // { int sys_getrtable(void); }\n\tSYS_FACCESSAT      = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); }\n\tSYS_FCHMODAT       = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); }\n\tSYS_FCHOWNAT       = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); }\n\tSYS_LINKAT         = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); }\n\tSYS_MKDIRAT        = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); }\n\tSYS_MKFIFOAT       = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); }\n\tSYS_MKNODAT        = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); }\n\tSYS_OPENAT         = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); }\n\tSYS_READLINKAT     = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); }\n\tSYS_RENAMEAT       = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); }\n\tSYS_SYMLINKAT      = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); }\n\tSYS_UNLINKAT       = 325 // { int sys_unlinkat(int fd, const char *path, int flag); }\n\tSYS___SET_TCB      = 329 // { void sys___set_tcb(void *tcb); }\n\tSYS___GET_TCB      = 330 // { void *sys___get_tcb(void); }\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go",
    "content": "// go run mksyscall_zos_s390x.go -o_sysnum zsysnum_zos_s390x.go -o_syscall zsyscall_zos_s390x.go -i_syscall syscall_zos_s390x.go -o_asm zsymaddr_zos_s390x.s\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build zos && s390x\n\npackage unix\n\nconst (\n\tSYS_LOG                             = 0x17  // 23\n\tSYS_COSH                            = 0x18  // 24\n\tSYS_TANH                            = 0x19  // 25\n\tSYS_EXP                             = 0x1A  // 26\n\tSYS_MODF                            = 0x1B  // 27\n\tSYS_LOG10                           = 0x1C  // 28\n\tSYS_FREXP                           = 0x1D  // 29\n\tSYS_LDEXP                           = 0x1E  // 30\n\tSYS_CEIL                            = 0x1F  // 31\n\tSYS_POW                             = 0x20  // 32\n\tSYS_SQRT                            = 0x21  // 33\n\tSYS_FLOOR                           = 0x22  // 34\n\tSYS_J1                              = 0x23  // 35\n\tSYS_FABS                            = 0x24  // 36\n\tSYS_FMOD                            = 0x25  // 37\n\tSYS_J0                              = 0x26  // 38\n\tSYS_YN                              = 0x27  // 39\n\tSYS_JN                              = 0x28  // 40\n\tSYS_Y0                              = 0x29  // 41\n\tSYS_Y1                              = 0x2A  // 42\n\tSYS_HYPOT                           = 0x2B  // 43\n\tSYS_ERF                             = 0x2C  // 44\n\tSYS_ERFC                            = 0x2D  // 45\n\tSYS_GAMMA                           = 0x2E  // 46\n\tSYS_ISALPHA                         = 0x30  // 48\n\tSYS_ISALNUM                         = 0x31  // 49\n\tSYS_ISLOWER                         = 0x32  // 50\n\tSYS_ISCNTRL                         = 0x33  // 51\n\tSYS_ISDIGIT                         = 0x34  // 52\n\tSYS_ISGRAPH                         = 0x35  // 53\n\tSYS_ISUPPER                         = 0x36  // 54\n\tSYS_ISPRINT                         = 0x37  // 55\n\tSYS_ISPUNCT                         = 0x38  // 56\n\tSYS_ISSPACE                         = 0x39  // 57\n\tSYS_SETLOCAL                        = 0x3A  // 58\n\tSYS_SETLOCALE                       = 0x3A  // 58\n\tSYS_ISXDIGIT                        = 0x3B  // 59\n\tSYS_TOLOWER                         = 0x3C  // 60\n\tSYS_TOUPPER                         = 0x3D  // 61\n\tSYS_ASIN                            = 0x3E  // 62\n\tSYS_SIN                             = 0x3F  // 63\n\tSYS_COS                             = 0x40  // 64\n\tSYS_TAN                             = 0x41  // 65\n\tSYS_SINH                            = 0x42  // 66\n\tSYS_ACOS                            = 0x43  // 67\n\tSYS_ATAN                            = 0x44  // 68\n\tSYS_ATAN2                           = 0x45  // 69\n\tSYS_FTELL                           = 0x46  // 70\n\tSYS_FGETPOS                         = 0x47  // 71\n\tSYS_FSEEK                           = 0x48  // 72\n\tSYS_FSETPOS                         = 0x49  // 73\n\tSYS_FERROR                          = 0x4A  // 74\n\tSYS_REWIND                          = 0x4B  // 75\n\tSYS_CLEARERR                        = 0x4C  // 76\n\tSYS_FEOF                            = 0x4D  // 77\n\tSYS_ATOL                            = 0x4E  // 78\n\tSYS_PERROR                          = 0x4F  // 79\n\tSYS_ATOF                            = 0x50  // 80\n\tSYS_ATOI                            = 0x51  // 81\n\tSYS_RAND                            = 0x52  // 82\n\tSYS_STRTOD                          = 0x53  // 83\n\tSYS_STRTOL                          = 0x54  // 84\n\tSYS_STRTOUL                         = 0x55  // 85\n\tSYS_MALLOC                          = 0x56  // 86\n\tSYS_SRAND                           = 0x57  // 87\n\tSYS_CALLOC                          = 0x58  // 88\n\tSYS_FREE                            = 0x59  // 89\n\tSYS_EXIT                            = 0x5A  // 90\n\tSYS_REALLOC                         = 0x5B  // 91\n\tSYS_ABORT                           = 0x5C  // 92\n\tSYS___ABORT                         = 0x5C  // 92\n\tSYS_ATEXIT                          = 0x5D  // 93\n\tSYS_RAISE                           = 0x5E  // 94\n\tSYS_SETJMP                          = 0x5F  // 95\n\tSYS_LONGJMP                         = 0x60  // 96\n\tSYS_SIGNAL                          = 0x61  // 97\n\tSYS_TMPNAM                          = 0x62  // 98\n\tSYS_REMOVE                          = 0x63  // 99\n\tSYS_RENAME                          = 0x64  // 100\n\tSYS_TMPFILE                         = 0x65  // 101\n\tSYS_FREOPEN                         = 0x66  // 102\n\tSYS_FCLOSE                          = 0x67  // 103\n\tSYS_FFLUSH                          = 0x68  // 104\n\tSYS_FOPEN                           = 0x69  // 105\n\tSYS_FSCANF                          = 0x6A  // 106\n\tSYS_SETBUF                          = 0x6B  // 107\n\tSYS_SETVBUF                         = 0x6C  // 108\n\tSYS_FPRINTF                         = 0x6D  // 109\n\tSYS_SSCANF                          = 0x6E  // 110\n\tSYS_PRINTF                          = 0x6F  // 111\n\tSYS_SCANF                           = 0x70  // 112\n\tSYS_SPRINTF                         = 0x71  // 113\n\tSYS_FGETC                           = 0x72  // 114\n\tSYS_VFPRINTF                        = 0x73  // 115\n\tSYS_VPRINTF                         = 0x74  // 116\n\tSYS_VSPRINTF                        = 0x75  // 117\n\tSYS_GETC                            = 0x76  // 118\n\tSYS_FGETS                           = 0x77  // 119\n\tSYS_FPUTC                           = 0x78  // 120\n\tSYS_FPUTS                           = 0x79  // 121\n\tSYS_PUTCHAR                         = 0x7A  // 122\n\tSYS_GETCHAR                         = 0x7B  // 123\n\tSYS_GETS                            = 0x7C  // 124\n\tSYS_PUTC                            = 0x7D  // 125\n\tSYS_FWRITE                          = 0x7E  // 126\n\tSYS_PUTS                            = 0x7F  // 127\n\tSYS_UNGETC                          = 0x80  // 128\n\tSYS_FREAD                           = 0x81  // 129\n\tSYS_WCSTOMBS                        = 0x82  // 130\n\tSYS_MBTOWC                          = 0x83  // 131\n\tSYS_WCTOMB                          = 0x84  // 132\n\tSYS_MBSTOWCS                        = 0x85  // 133\n\tSYS_WCSCPY                          = 0x86  // 134\n\tSYS_WCSCAT                          = 0x87  // 135\n\tSYS_WCSCHR                          = 0x88  // 136\n\tSYS_WCSCMP                          = 0x89  // 137\n\tSYS_WCSNCMP                         = 0x8A  // 138\n\tSYS_WCSCSPN                         = 0x8B  // 139\n\tSYS_WCSLEN                          = 0x8C  // 140\n\tSYS_WCSNCAT                         = 0x8D  // 141\n\tSYS_WCSSPN                          = 0x8E  // 142\n\tSYS_WCSNCPY                         = 0x8F  // 143\n\tSYS_ABS                             = 0x90  // 144\n\tSYS_DIV                             = 0x91  // 145\n\tSYS_LABS                            = 0x92  // 146\n\tSYS_STRNCPY                         = 0x93  // 147\n\tSYS_MEMCPY                          = 0x94  // 148\n\tSYS_MEMMOVE                         = 0x95  // 149\n\tSYS_STRCPY                          = 0x96  // 150\n\tSYS_STRCMP                          = 0x97  // 151\n\tSYS_STRCAT                          = 0x98  // 152\n\tSYS_STRNCAT                         = 0x99  // 153\n\tSYS_MEMCMP                          = 0x9A  // 154\n\tSYS_MEMCHR                          = 0x9B  // 155\n\tSYS_STRCOLL                         = 0x9C  // 156\n\tSYS_STRNCMP                         = 0x9D  // 157\n\tSYS_STRXFRM                         = 0x9E  // 158\n\tSYS_STRRCHR                         = 0x9F  // 159\n\tSYS_STRCHR                          = 0xA0  // 160\n\tSYS_STRCSPN                         = 0xA1  // 161\n\tSYS_STRPBRK                         = 0xA2  // 162\n\tSYS_MEMSET                          = 0xA3  // 163\n\tSYS_STRSPN                          = 0xA4  // 164\n\tSYS_STRSTR                          = 0xA5  // 165\n\tSYS_STRTOK                          = 0xA6  // 166\n\tSYS_DIFFTIME                        = 0xA7  // 167\n\tSYS_STRERROR                        = 0xA8  // 168\n\tSYS_STRLEN                          = 0xA9  // 169\n\tSYS_CLOCK                           = 0xAA  // 170\n\tSYS_CTIME                           = 0xAB  // 171\n\tSYS_MKTIME                          = 0xAC  // 172\n\tSYS_TIME                            = 0xAD  // 173\n\tSYS_ASCTIME                         = 0xAE  // 174\n\tSYS_MBLEN                           = 0xAF  // 175\n\tSYS_GMTIME                          = 0xB0  // 176\n\tSYS_LOCALTIM                        = 0xB1  // 177\n\tSYS_LOCALTIME                       = 0xB1  // 177\n\tSYS_STRFTIME                        = 0xB2  // 178\n\tSYS___GETCB                         = 0xB4  // 180\n\tSYS_FUPDATE                         = 0xB5  // 181\n\tSYS___FUPDT                         = 0xB5  // 181\n\tSYS_CLRMEMF                         = 0xBD  // 189\n\tSYS___CLRMF                         = 0xBD  // 189\n\tSYS_FETCHEP                         = 0xBF  // 191\n\tSYS___FTCHEP                        = 0xBF  // 191\n\tSYS_FLDATA                          = 0xC1  // 193\n\tSYS___FLDATA                        = 0xC1  // 193\n\tSYS_DYNFREE                         = 0xC2  // 194\n\tSYS___DYNFRE                        = 0xC2  // 194\n\tSYS_DYNALLOC                        = 0xC3  // 195\n\tSYS___DYNALL                        = 0xC3  // 195\n\tSYS___CDUMP                         = 0xC4  // 196\n\tSYS_CSNAP                           = 0xC5  // 197\n\tSYS___CSNAP                         = 0xC5  // 197\n\tSYS_CTRACE                          = 0xC6  // 198\n\tSYS___CTRACE                        = 0xC6  // 198\n\tSYS___CTEST                         = 0xC7  // 199\n\tSYS_SETENV                          = 0xC8  // 200\n\tSYS___SETENV                        = 0xC8  // 200\n\tSYS_CLEARENV                        = 0xC9  // 201\n\tSYS___CLRENV                        = 0xC9  // 201\n\tSYS___REGCOMP_STD                   = 0xEA  // 234\n\tSYS_NL_LANGINFO                     = 0xFC  // 252\n\tSYS_GETSYNTX                        = 0xFD  // 253\n\tSYS_ISBLANK                         = 0xFE  // 254\n\tSYS___ISBLNK                        = 0xFE  // 254\n\tSYS_ISWALNUM                        = 0xFF  // 255\n\tSYS_ISWALPHA                        = 0x100 // 256\n\tSYS_ISWBLANK                        = 0x101 // 257\n\tSYS___ISWBLK                        = 0x101 // 257\n\tSYS_ISWCNTRL                        = 0x102 // 258\n\tSYS_ISWDIGIT                        = 0x103 // 259\n\tSYS_ISWGRAPH                        = 0x104 // 260\n\tSYS_ISWLOWER                        = 0x105 // 261\n\tSYS_ISWPRINT                        = 0x106 // 262\n\tSYS_ISWPUNCT                        = 0x107 // 263\n\tSYS_ISWSPACE                        = 0x108 // 264\n\tSYS_ISWUPPER                        = 0x109 // 265\n\tSYS_ISWXDIGI                        = 0x10A // 266\n\tSYS_ISWXDIGIT                       = 0x10A // 266\n\tSYS_WCTYPE                          = 0x10B // 267\n\tSYS_ISWCTYPE                        = 0x10C // 268\n\tSYS_TOWLOWER                        = 0x10D // 269\n\tSYS_TOWUPPER                        = 0x10E // 270\n\tSYS_MBSINIT                         = 0x10F // 271\n\tSYS_WCTOB                           = 0x110 // 272\n\tSYS_MBRLEN                          = 0x111 // 273\n\tSYS_MBRTOWC                         = 0x112 // 274\n\tSYS_MBSRTOWC                        = 0x113 // 275\n\tSYS_MBSRTOWCS                       = 0x113 // 275\n\tSYS_WCRTOMB                         = 0x114 // 276\n\tSYS_WCSRTOMB                        = 0x115 // 277\n\tSYS_WCSRTOMBS                       = 0x115 // 277\n\tSYS___CSID                          = 0x116 // 278\n\tSYS___WCSID                         = 0x117 // 279\n\tSYS_STRPTIME                        = 0x118 // 280\n\tSYS___STRPTM                        = 0x118 // 280\n\tSYS_STRFMON                         = 0x119 // 281\n\tSYS___RPMTCH                        = 0x11A // 282\n\tSYS_WCSSTR                          = 0x11B // 283\n\tSYS_WCSTOK                          = 0x12C // 300\n\tSYS_WCSTOL                          = 0x12D // 301\n\tSYS_WCSTOD                          = 0x12E // 302\n\tSYS_WCSTOUL                         = 0x12F // 303\n\tSYS_WCSCOLL                         = 0x130 // 304\n\tSYS_WCSXFRM                         = 0x131 // 305\n\tSYS_WCSWIDTH                        = 0x132 // 306\n\tSYS_WCWIDTH                         = 0x133 // 307\n\tSYS_WCSFTIME                        = 0x134 // 308\n\tSYS_SWPRINTF                        = 0x135 // 309\n\tSYS_VSWPRINT                        = 0x136 // 310\n\tSYS_VSWPRINTF                       = 0x136 // 310\n\tSYS_SWSCANF                         = 0x137 // 311\n\tSYS_REGCOMP                         = 0x138 // 312\n\tSYS_REGEXEC                         = 0x139 // 313\n\tSYS_REGFREE                         = 0x13A // 314\n\tSYS_REGERROR                        = 0x13B // 315\n\tSYS_FGETWC                          = 0x13C // 316\n\tSYS_FGETWS                          = 0x13D // 317\n\tSYS_FPUTWC                          = 0x13E // 318\n\tSYS_FPUTWS                          = 0x13F // 319\n\tSYS_GETWC                           = 0x140 // 320\n\tSYS_GETWCHAR                        = 0x141 // 321\n\tSYS_PUTWC                           = 0x142 // 322\n\tSYS_PUTWCHAR                        = 0x143 // 323\n\tSYS_UNGETWC                         = 0x144 // 324\n\tSYS_ICONV_OPEN                      = 0x145 // 325\n\tSYS_ICONV                           = 0x146 // 326\n\tSYS_ICONV_CLOSE                     = 0x147 // 327\n\tSYS_ISMCCOLLEL                      = 0x14C // 332\n\tSYS_STRTOCOLL                       = 0x14D // 333\n\tSYS_COLLTOSTR                       = 0x14E // 334\n\tSYS_COLLEQUIV                       = 0x14F // 335\n\tSYS_COLLRANGE                       = 0x150 // 336\n\tSYS_CCLASS                          = 0x151 // 337\n\tSYS_COLLORDER                       = 0x152 // 338\n\tSYS___DEMANGLE                      = 0x154 // 340\n\tSYS_FDOPEN                          = 0x155 // 341\n\tSYS___ERRNO                         = 0x156 // 342\n\tSYS___ERRNO2                        = 0x157 // 343\n\tSYS___TERROR                        = 0x158 // 344\n\tSYS_MAXCOLL                         = 0x169 // 361\n\tSYS_GETMCCOLL                       = 0x16A // 362\n\tSYS_GETWMCCOLL                      = 0x16B // 363\n\tSYS___ERR2AD                        = 0x16C // 364\n\tSYS_DLLQUERYFN                      = 0x16D // 365\n\tSYS_DLLQUERYVAR                     = 0x16E // 366\n\tSYS_DLLFREE                         = 0x16F // 367\n\tSYS_DLLLOAD                         = 0x170 // 368\n\tSYS__EXIT                           = 0x174 // 372\n\tSYS_ACCESS                          = 0x175 // 373\n\tSYS_ALARM                           = 0x176 // 374\n\tSYS_CFGETISPEED                     = 0x177 // 375\n\tSYS_CFGETOSPEED                     = 0x178 // 376\n\tSYS_CFSETISPEED                     = 0x179 // 377\n\tSYS_CFSETOSPEED                     = 0x17A // 378\n\tSYS_CHDIR                           = 0x17B // 379\n\tSYS_CHMOD                           = 0x17C // 380\n\tSYS_CHOWN                           = 0x17D // 381\n\tSYS_CLOSE                           = 0x17E // 382\n\tSYS_CLOSEDIR                        = 0x17F // 383\n\tSYS_CREAT                           = 0x180 // 384\n\tSYS_CTERMID                         = 0x181 // 385\n\tSYS_DUP                             = 0x182 // 386\n\tSYS_DUP2                            = 0x183 // 387\n\tSYS_EXECL                           = 0x184 // 388\n\tSYS_EXECLE                          = 0x185 // 389\n\tSYS_EXECLP                          = 0x186 // 390\n\tSYS_EXECV                           = 0x187 // 391\n\tSYS_EXECVE                          = 0x188 // 392\n\tSYS_EXECVP                          = 0x189 // 393\n\tSYS_FCHMOD                          = 0x18A // 394\n\tSYS_FCHOWN                          = 0x18B // 395\n\tSYS_FCNTL                           = 0x18C // 396\n\tSYS_FILENO                          = 0x18D // 397\n\tSYS_FORK                            = 0x18E // 398\n\tSYS_FPATHCONF                       = 0x18F // 399\n\tSYS_FSTAT                           = 0x190 // 400\n\tSYS_FSYNC                           = 0x191 // 401\n\tSYS_FTRUNCATE                       = 0x192 // 402\n\tSYS_GETCWD                          = 0x193 // 403\n\tSYS_GETEGID                         = 0x194 // 404\n\tSYS_GETEUID                         = 0x195 // 405\n\tSYS_GETGID                          = 0x196 // 406\n\tSYS_GETGRGID                        = 0x197 // 407\n\tSYS_GETGRNAM                        = 0x198 // 408\n\tSYS_GETGROUPS                       = 0x199 // 409\n\tSYS_GETLOGIN                        = 0x19A // 410\n\tSYS_W_GETMNTENT                     = 0x19B // 411\n\tSYS_GETPGRP                         = 0x19C // 412\n\tSYS_GETPID                          = 0x19D // 413\n\tSYS_GETPPID                         = 0x19E // 414\n\tSYS_GETPWNAM                        = 0x19F // 415\n\tSYS_GETPWUID                        = 0x1A0 // 416\n\tSYS_GETUID                          = 0x1A1 // 417\n\tSYS_W_IOCTL                         = 0x1A2 // 418\n\tSYS_ISATTY                          = 0x1A3 // 419\n\tSYS_KILL                            = 0x1A4 // 420\n\tSYS_LINK                            = 0x1A5 // 421\n\tSYS_LSEEK                           = 0x1A6 // 422\n\tSYS_LSTAT                           = 0x1A7 // 423\n\tSYS_MKDIR                           = 0x1A8 // 424\n\tSYS_MKFIFO                          = 0x1A9 // 425\n\tSYS_MKNOD                           = 0x1AA // 426\n\tSYS_MOUNT                           = 0x1AB // 427\n\tSYS_OPEN                            = 0x1AC // 428\n\tSYS_OPENDIR                         = 0x1AD // 429\n\tSYS_PATHCONF                        = 0x1AE // 430\n\tSYS_PAUSE                           = 0x1AF // 431\n\tSYS_PIPE                            = 0x1B0 // 432\n\tSYS_W_GETPSENT                      = 0x1B1 // 433\n\tSYS_READ                            = 0x1B2 // 434\n\tSYS_READDIR                         = 0x1B3 // 435\n\tSYS_READLINK                        = 0x1B4 // 436\n\tSYS_REWINDDIR                       = 0x1B5 // 437\n\tSYS_RMDIR                           = 0x1B6 // 438\n\tSYS_SETEGID                         = 0x1B7 // 439\n\tSYS_SETEUID                         = 0x1B8 // 440\n\tSYS_SETGID                          = 0x1B9 // 441\n\tSYS_SETPGID                         = 0x1BA // 442\n\tSYS_SETSID                          = 0x1BB // 443\n\tSYS_SETUID                          = 0x1BC // 444\n\tSYS_SIGACTION                       = 0x1BD // 445\n\tSYS_SIGADDSET                       = 0x1BE // 446\n\tSYS_SIGDELSET                       = 0x1BF // 447\n\tSYS_SIGEMPTYSET                     = 0x1C0 // 448\n\tSYS_SIGFILLSET                      = 0x1C1 // 449\n\tSYS_SIGISMEMBER                     = 0x1C2 // 450\n\tSYS_SIGLONGJMP                      = 0x1C3 // 451\n\tSYS_SIGPENDING                      = 0x1C4 // 452\n\tSYS_SIGPROCMASK                     = 0x1C5 // 453\n\tSYS_SIGSETJMP                       = 0x1C6 // 454\n\tSYS_SIGSUSPEND                      = 0x1C7 // 455\n\tSYS_SLEEP                           = 0x1C8 // 456\n\tSYS_STAT                            = 0x1C9 // 457\n\tSYS_W_STATFS                        = 0x1CA // 458\n\tSYS_SYMLINK                         = 0x1CB // 459\n\tSYS_SYSCONF                         = 0x1CC // 460\n\tSYS_TCDRAIN                         = 0x1CD // 461\n\tSYS_TCFLOW                          = 0x1CE // 462\n\tSYS_TCFLUSH                         = 0x1CF // 463\n\tSYS_TCGETATTR                       = 0x1D0 // 464\n\tSYS_TCGETPGRP                       = 0x1D1 // 465\n\tSYS_TCSENDBREAK                     = 0x1D2 // 466\n\tSYS_TCSETATTR                       = 0x1D3 // 467\n\tSYS_TCSETPGRP                       = 0x1D4 // 468\n\tSYS_TIMES                           = 0x1D5 // 469\n\tSYS_TTYNAME                         = 0x1D6 // 470\n\tSYS_TZSET                           = 0x1D7 // 471\n\tSYS_UMASK                           = 0x1D8 // 472\n\tSYS_UMOUNT                          = 0x1D9 // 473\n\tSYS_UNAME                           = 0x1DA // 474\n\tSYS_UNLINK                          = 0x1DB // 475\n\tSYS_UTIME                           = 0x1DC // 476\n\tSYS_WAIT                            = 0x1DD // 477\n\tSYS_WAITPID                         = 0x1DE // 478\n\tSYS_WRITE                           = 0x1DF // 479\n\tSYS_CHAUDIT                         = 0x1E0 // 480\n\tSYS_FCHAUDIT                        = 0x1E1 // 481\n\tSYS_GETGROUPSBYNAME                 = 0x1E2 // 482\n\tSYS_SIGWAIT                         = 0x1E3 // 483\n\tSYS_PTHREAD_EXIT                    = 0x1E4 // 484\n\tSYS_PTHREAD_KILL                    = 0x1E5 // 485\n\tSYS_PTHREAD_ATTR_INIT               = 0x1E6 // 486\n\tSYS_PTHREAD_ATTR_DESTROY            = 0x1E7 // 487\n\tSYS_PTHREAD_ATTR_SETSTACKSIZE       = 0x1E8 // 488\n\tSYS_PTHREAD_ATTR_GETSTACKSIZE       = 0x1E9 // 489\n\tSYS_PTHREAD_ATTR_SETDETACHSTATE     = 0x1EA // 490\n\tSYS_PTHREAD_ATTR_GETDETACHSTATE     = 0x1EB // 491\n\tSYS_PTHREAD_ATTR_SETWEIGHT_NP       = 0x1EC // 492\n\tSYS_PTHREAD_ATTR_GETWEIGHT_NP       = 0x1ED // 493\n\tSYS_PTHREAD_CANCEL                  = 0x1EE // 494\n\tSYS_PTHREAD_CLEANUP_PUSH            = 0x1EF // 495\n\tSYS_PTHREAD_CLEANUP_POP             = 0x1F0 // 496\n\tSYS_PTHREAD_CONDATTR_INIT           = 0x1F1 // 497\n\tSYS_PTHREAD_CONDATTR_DESTROY        = 0x1F2 // 498\n\tSYS_PTHREAD_COND_INIT               = 0x1F3 // 499\n\tSYS_PTHREAD_COND_DESTROY            = 0x1F4 // 500\n\tSYS_PTHREAD_COND_SIGNAL             = 0x1F5 // 501\n\tSYS_PTHREAD_COND_BROADCAST          = 0x1F6 // 502\n\tSYS_PTHREAD_COND_WAIT               = 0x1F7 // 503\n\tSYS_PTHREAD_COND_TIMEDWAIT          = 0x1F8 // 504\n\tSYS_PTHREAD_CREATE                  = 0x1F9 // 505\n\tSYS_PTHREAD_DETACH                  = 0x1FA // 506\n\tSYS_PTHREAD_EQUAL                   = 0x1FB // 507\n\tSYS_PTHREAD_GETSPECIFIC             = 0x1FC // 508\n\tSYS_PTHREAD_JOIN                    = 0x1FD // 509\n\tSYS_PTHREAD_KEY_CREATE              = 0x1FE // 510\n\tSYS_PTHREAD_MUTEXATTR_INIT          = 0x1FF // 511\n\tSYS_PTHREAD_MUTEXATTR_DESTROY       = 0x200 // 512\n\tSYS_PTHREAD_MUTEXATTR_SETKIND_NP    = 0x201 // 513\n\tSYS_PTHREAD_MUTEXATTR_GETKIND_NP    = 0x202 // 514\n\tSYS_PTHREAD_MUTEX_INIT              = 0x203 // 515\n\tSYS_PTHREAD_MUTEX_DESTROY           = 0x204 // 516\n\tSYS_PTHREAD_MUTEX_LOCK              = 0x205 // 517\n\tSYS_PTHREAD_MUTEX_TRYLOCK           = 0x206 // 518\n\tSYS_PTHREAD_MUTEX_UNLOCK            = 0x207 // 519\n\tSYS_PTHREAD_ONCE                    = 0x209 // 521\n\tSYS_PTHREAD_SELF                    = 0x20A // 522\n\tSYS_PTHREAD_SETINTR                 = 0x20B // 523\n\tSYS_PTHREAD_SETINTRTYPE             = 0x20C // 524\n\tSYS_PTHREAD_SETSPECIFIC             = 0x20D // 525\n\tSYS_PTHREAD_TESTINTR                = 0x20E // 526\n\tSYS_PTHREAD_YIELD                   = 0x20F // 527\n\tSYS_TW_OPEN                         = 0x210 // 528\n\tSYS_TW_FCNTL                        = 0x211 // 529\n\tSYS_PTHREAD_JOIN_D4_NP              = 0x212 // 530\n\tSYS_PTHREAD_CONDATTR_SETKIND_NP     = 0x213 // 531\n\tSYS_PTHREAD_CONDATTR_GETKIND_NP     = 0x214 // 532\n\tSYS_EXTLINK_NP                      = 0x215 // 533\n\tSYS___PASSWD                        = 0x216 // 534\n\tSYS_SETGROUPS                       = 0x217 // 535\n\tSYS_INITGROUPS                      = 0x218 // 536\n\tSYS_WCSPBRK                         = 0x23F // 575\n\tSYS_WCSRCHR                         = 0x240 // 576\n\tSYS_SVC99                           = 0x241 // 577\n\tSYS___SVC99                         = 0x241 // 577\n\tSYS_WCSWCS                          = 0x242 // 578\n\tSYS_LOCALECO                        = 0x243 // 579\n\tSYS_LOCALECONV                      = 0x243 // 579\n\tSYS___LIBREL                        = 0x244 // 580\n\tSYS_RELEASE                         = 0x245 // 581\n\tSYS___RLSE                          = 0x245 // 581\n\tSYS_FLOCATE                         = 0x246 // 582\n\tSYS___FLOCT                         = 0x246 // 582\n\tSYS_FDELREC                         = 0x247 // 583\n\tSYS___FDLREC                        = 0x247 // 583\n\tSYS_FETCH                           = 0x248 // 584\n\tSYS___FETCH                         = 0x248 // 584\n\tSYS_QSORT                           = 0x249 // 585\n\tSYS_GETENV                          = 0x24A // 586\n\tSYS_SYSTEM                          = 0x24B // 587\n\tSYS_BSEARCH                         = 0x24C // 588\n\tSYS_LDIV                            = 0x24D // 589\n\tSYS___THROW                         = 0x25E // 606\n\tSYS___RETHROW                       = 0x25F // 607\n\tSYS___CLEANUPCATCH                  = 0x260 // 608\n\tSYS___CATCHMATCH                    = 0x261 // 609\n\tSYS___CLEAN2UPCATCH                 = 0x262 // 610\n\tSYS_PUTENV                          = 0x26A // 618\n\tSYS___GETENV                        = 0x26F // 623\n\tSYS_GETPRIORITY                     = 0x270 // 624\n\tSYS_NICE                            = 0x271 // 625\n\tSYS_SETPRIORITY                     = 0x272 // 626\n\tSYS_GETITIMER                       = 0x273 // 627\n\tSYS_SETITIMER                       = 0x274 // 628\n\tSYS_MSGCTL                          = 0x275 // 629\n\tSYS_MSGGET                          = 0x276 // 630\n\tSYS_MSGRCV                          = 0x277 // 631\n\tSYS_MSGSND                          = 0x278 // 632\n\tSYS_MSGXRCV                         = 0x279 // 633\n\tSYS___MSGXR                         = 0x279 // 633\n\tSYS_SEMCTL                          = 0x27A // 634\n\tSYS_SEMGET                          = 0x27B // 635\n\tSYS_SEMOP                           = 0x27C // 636\n\tSYS_SHMAT                           = 0x27D // 637\n\tSYS_SHMCTL                          = 0x27E // 638\n\tSYS_SHMDT                           = 0x27F // 639\n\tSYS_SHMGET                          = 0x280 // 640\n\tSYS___GETIPC                        = 0x281 // 641\n\tSYS_SETGRENT                        = 0x282 // 642\n\tSYS_GETGRENT                        = 0x283 // 643\n\tSYS_ENDGRENT                        = 0x284 // 644\n\tSYS_SETPWENT                        = 0x285 // 645\n\tSYS_GETPWENT                        = 0x286 // 646\n\tSYS_ENDPWENT                        = 0x287 // 647\n\tSYS_BSD_SIGNAL                      = 0x288 // 648\n\tSYS_KILLPG                          = 0x289 // 649\n\tSYS_SIGALTSTACK                     = 0x28A // 650\n\tSYS_SIGHOLD                         = 0x28B // 651\n\tSYS_SIGIGNORE                       = 0x28C // 652\n\tSYS_SIGINTERRUPT                    = 0x28D // 653\n\tSYS_SIGPAUSE                        = 0x28E // 654\n\tSYS_SIGRELSE                        = 0x28F // 655\n\tSYS_SIGSET                          = 0x290 // 656\n\tSYS_SIGSTACK                        = 0x291 // 657\n\tSYS_GETRLIMIT                       = 0x292 // 658\n\tSYS_SETRLIMIT                       = 0x293 // 659\n\tSYS_GETRUSAGE                       = 0x294 // 660\n\tSYS_MMAP                            = 0x295 // 661\n\tSYS_MPROTECT                        = 0x296 // 662\n\tSYS_MSYNC                           = 0x297 // 663\n\tSYS_MUNMAP                          = 0x298 // 664\n\tSYS_CONFSTR                         = 0x299 // 665\n\tSYS_GETOPT                          = 0x29A // 666\n\tSYS_LCHOWN                          = 0x29B // 667\n\tSYS_TRUNCATE                        = 0x29C // 668\n\tSYS_GETSUBOPT                       = 0x29D // 669\n\tSYS_SETPGRP                         = 0x29E // 670\n\tSYS___GDERR                         = 0x29F // 671\n\tSYS___TZONE                         = 0x2A0 // 672\n\tSYS___DLGHT                         = 0x2A1 // 673\n\tSYS___OPARGF                        = 0x2A2 // 674\n\tSYS___OPOPTF                        = 0x2A3 // 675\n\tSYS___OPINDF                        = 0x2A4 // 676\n\tSYS___OPERRF                        = 0x2A5 // 677\n\tSYS_GETDATE                         = 0x2A6 // 678\n\tSYS_WAIT3                           = 0x2A7 // 679\n\tSYS_WAITID                          = 0x2A8 // 680\n\tSYS___CATTRM                        = 0x2A9 // 681\n\tSYS___GDTRM                         = 0x2AA // 682\n\tSYS___RNDTRM                        = 0x2AB // 683\n\tSYS_CRYPT                           = 0x2AC // 684\n\tSYS_ENCRYPT                         = 0x2AD // 685\n\tSYS_SETKEY                          = 0x2AE // 686\n\tSYS___CNVBLK                        = 0x2AF // 687\n\tSYS___CRYTRM                        = 0x2B0 // 688\n\tSYS___ECRTRM                        = 0x2B1 // 689\n\tSYS_DRAND48                         = 0x2B2 // 690\n\tSYS_ERAND48                         = 0x2B3 // 691\n\tSYS_FSTATVFS                        = 0x2B4 // 692\n\tSYS_STATVFS                         = 0x2B5 // 693\n\tSYS_CATCLOSE                        = 0x2B6 // 694\n\tSYS_CATGETS                         = 0x2B7 // 695\n\tSYS_CATOPEN                         = 0x2B8 // 696\n\tSYS_BCMP                            = 0x2B9 // 697\n\tSYS_BCOPY                           = 0x2BA // 698\n\tSYS_BZERO                           = 0x2BB // 699\n\tSYS_FFS                             = 0x2BC // 700\n\tSYS_INDEX                           = 0x2BD // 701\n\tSYS_RINDEX                          = 0x2BE // 702\n\tSYS_STRCASECMP                      = 0x2BF // 703\n\tSYS_STRDUP                          = 0x2C0 // 704\n\tSYS_STRNCASECMP                     = 0x2C1 // 705\n\tSYS_INITSTATE                       = 0x2C2 // 706\n\tSYS_SETSTATE                        = 0x2C3 // 707\n\tSYS_RANDOM                          = 0x2C4 // 708\n\tSYS_SRANDOM                         = 0x2C5 // 709\n\tSYS_HCREATE                         = 0x2C6 // 710\n\tSYS_HDESTROY                        = 0x2C7 // 711\n\tSYS_HSEARCH                         = 0x2C8 // 712\n\tSYS_LFIND                           = 0x2C9 // 713\n\tSYS_LSEARCH                         = 0x2CA // 714\n\tSYS_TDELETE                         = 0x2CB // 715\n\tSYS_TFIND                           = 0x2CC // 716\n\tSYS_TSEARCH                         = 0x2CD // 717\n\tSYS_TWALK                           = 0x2CE // 718\n\tSYS_INSQUE                          = 0x2CF // 719\n\tSYS_REMQUE                          = 0x2D0 // 720\n\tSYS_POPEN                           = 0x2D1 // 721\n\tSYS_PCLOSE                          = 0x2D2 // 722\n\tSYS_SWAB                            = 0x2D3 // 723\n\tSYS_MEMCCPY                         = 0x2D4 // 724\n\tSYS_GETPAGESIZE                     = 0x2D8 // 728\n\tSYS_FCHDIR                          = 0x2D9 // 729\n\tSYS___OCLCK                         = 0x2DA // 730\n\tSYS___ATOE                          = 0x2DB // 731\n\tSYS___ATOE_L                        = 0x2DC // 732\n\tSYS___ETOA                          = 0x2DD // 733\n\tSYS___ETOA_L                        = 0x2DE // 734\n\tSYS_SETUTXENT                       = 0x2DF // 735\n\tSYS_GETUTXENT                       = 0x2E0 // 736\n\tSYS_ENDUTXENT                       = 0x2E1 // 737\n\tSYS_GETUTXID                        = 0x2E2 // 738\n\tSYS_GETUTXLINE                      = 0x2E3 // 739\n\tSYS_PUTUTXLINE                      = 0x2E4 // 740\n\tSYS_FMTMSG                          = 0x2E5 // 741\n\tSYS_JRAND48                         = 0x2E6 // 742\n\tSYS_LRAND48                         = 0x2E7 // 743\n\tSYS_MRAND48                         = 0x2E8 // 744\n\tSYS_NRAND48                         = 0x2E9 // 745\n\tSYS_LCONG48                         = 0x2EA // 746\n\tSYS_SRAND48                         = 0x2EB // 747\n\tSYS_SEED48                          = 0x2EC // 748\n\tSYS_ISASCII                         = 0x2ED // 749\n\tSYS_TOASCII                         = 0x2EE // 750\n\tSYS_A64L                            = 0x2EF // 751\n\tSYS_L64A                            = 0x2F0 // 752\n\tSYS_UALARM                          = 0x2F1 // 753\n\tSYS_USLEEP                          = 0x2F2 // 754\n\tSYS___UTXTRM                        = 0x2F3 // 755\n\tSYS___SRCTRM                        = 0x2F4 // 756\n\tSYS_FTIME                           = 0x2F5 // 757\n\tSYS_GETTIMEOFDAY                    = 0x2F6 // 758\n\tSYS_DBM_CLEARERR                    = 0x2F7 // 759\n\tSYS_DBM_CLOSE                       = 0x2F8 // 760\n\tSYS_DBM_DELETE                      = 0x2F9 // 761\n\tSYS_DBM_ERROR                       = 0x2FA // 762\n\tSYS_DBM_FETCH                       = 0x2FB // 763\n\tSYS_DBM_FIRSTKEY                    = 0x2FC // 764\n\tSYS_DBM_NEXTKEY                     = 0x2FD // 765\n\tSYS_DBM_OPEN                        = 0x2FE // 766\n\tSYS_DBM_STORE                       = 0x2FF // 767\n\tSYS___NDMTRM                        = 0x300 // 768\n\tSYS_FTOK                            = 0x301 // 769\n\tSYS_BASENAME                        = 0x302 // 770\n\tSYS_DIRNAME                         = 0x303 // 771\n\tSYS_GETDTABLESIZE                   = 0x304 // 772\n\tSYS_MKSTEMP                         = 0x305 // 773\n\tSYS_MKTEMP                          = 0x306 // 774\n\tSYS_NFTW                            = 0x307 // 775\n\tSYS_GETWD                           = 0x308 // 776\n\tSYS_LOCKF                           = 0x309 // 777\n\tSYS__LONGJMP                        = 0x30D // 781\n\tSYS__SETJMP                         = 0x30E // 782\n\tSYS_VFORK                           = 0x30F // 783\n\tSYS_WORDEXP                         = 0x310 // 784\n\tSYS_WORDFREE                        = 0x311 // 785\n\tSYS_GETPGID                         = 0x312 // 786\n\tSYS_GETSID                          = 0x313 // 787\n\tSYS___UTMPXNAME                     = 0x314 // 788\n\tSYS_CUSERID                         = 0x315 // 789\n\tSYS_GETPASS                         = 0x316 // 790\n\tSYS_FNMATCH                         = 0x317 // 791\n\tSYS_FTW                             = 0x318 // 792\n\tSYS_GETW                            = 0x319 // 793\n\tSYS_GLOB                            = 0x31A // 794\n\tSYS_GLOBFREE                        = 0x31B // 795\n\tSYS_PUTW                            = 0x31C // 796\n\tSYS_SEEKDIR                         = 0x31D // 797\n\tSYS_TELLDIR                         = 0x31E // 798\n\tSYS_TEMPNAM                         = 0x31F // 799\n\tSYS_ACOSH                           = 0x320 // 800\n\tSYS_ASINH                           = 0x321 // 801\n\tSYS_ATANH                           = 0x322 // 802\n\tSYS_CBRT                            = 0x323 // 803\n\tSYS_EXPM1                           = 0x324 // 804\n\tSYS_ILOGB                           = 0x325 // 805\n\tSYS_LOGB                            = 0x326 // 806\n\tSYS_LOG1P                           = 0x327 // 807\n\tSYS_NEXTAFTER                       = 0x328 // 808\n\tSYS_RINT                            = 0x329 // 809\n\tSYS_REMAINDER                       = 0x32A // 810\n\tSYS_SCALB                           = 0x32B // 811\n\tSYS_LGAMMA                          = 0x32C // 812\n\tSYS_TTYSLOT                         = 0x32D // 813\n\tSYS_GETTIMEOFDAY_R                  = 0x32E // 814\n\tSYS_SYNC                            = 0x32F // 815\n\tSYS_SPAWN                           = 0x330 // 816\n\tSYS_SPAWNP                          = 0x331 // 817\n\tSYS_GETLOGIN_UU                     = 0x332 // 818\n\tSYS_ECVT                            = 0x333 // 819\n\tSYS_FCVT                            = 0x334 // 820\n\tSYS_GCVT                            = 0x335 // 821\n\tSYS_ACCEPT                          = 0x336 // 822\n\tSYS_BIND                            = 0x337 // 823\n\tSYS_CONNECT                         = 0x338 // 824\n\tSYS_ENDHOSTENT                      = 0x339 // 825\n\tSYS_ENDPROTOENT                     = 0x33A // 826\n\tSYS_ENDSERVENT                      = 0x33B // 827\n\tSYS_GETHOSTBYADDR_R                 = 0x33C // 828\n\tSYS_GETHOSTBYADDR                   = 0x33D // 829\n\tSYS_GETHOSTBYNAME_R                 = 0x33E // 830\n\tSYS_GETHOSTBYNAME                   = 0x33F // 831\n\tSYS_GETHOSTENT                      = 0x340 // 832\n\tSYS_GETHOSTID                       = 0x341 // 833\n\tSYS_GETHOSTNAME                     = 0x342 // 834\n\tSYS_GETNETBYADDR                    = 0x343 // 835\n\tSYS_GETNETBYNAME                    = 0x344 // 836\n\tSYS_GETNETENT                       = 0x345 // 837\n\tSYS_GETPEERNAME                     = 0x346 // 838\n\tSYS_GETPROTOBYNAME                  = 0x347 // 839\n\tSYS_GETPROTOBYNUMBER                = 0x348 // 840\n\tSYS_GETPROTOENT                     = 0x349 // 841\n\tSYS_GETSERVBYNAME                   = 0x34A // 842\n\tSYS_GETSERVBYPORT                   = 0x34B // 843\n\tSYS_GETSERVENT                      = 0x34C // 844\n\tSYS_GETSOCKNAME                     = 0x34D // 845\n\tSYS_GETSOCKOPT                      = 0x34E // 846\n\tSYS_INET_ADDR                       = 0x34F // 847\n\tSYS_INET_LNAOF                      = 0x350 // 848\n\tSYS_INET_MAKEADDR                   = 0x351 // 849\n\tSYS_INET_NETOF                      = 0x352 // 850\n\tSYS_INET_NETWORK                    = 0x353 // 851\n\tSYS_INET_NTOA                       = 0x354 // 852\n\tSYS_IOCTL                           = 0x355 // 853\n\tSYS_LISTEN                          = 0x356 // 854\n\tSYS_READV                           = 0x357 // 855\n\tSYS_RECV                            = 0x358 // 856\n\tSYS_RECVFROM                        = 0x359 // 857\n\tSYS_SELECT                          = 0x35B // 859\n\tSYS_SELECTEX                        = 0x35C // 860\n\tSYS_SEND                            = 0x35D // 861\n\tSYS_SENDTO                          = 0x35F // 863\n\tSYS_SETHOSTENT                      = 0x360 // 864\n\tSYS_SETNETENT                       = 0x361 // 865\n\tSYS_SETPEER                         = 0x362 // 866\n\tSYS_SETPROTOENT                     = 0x363 // 867\n\tSYS_SETSERVENT                      = 0x364 // 868\n\tSYS_SETSOCKOPT                      = 0x365 // 869\n\tSYS_SHUTDOWN                        = 0x366 // 870\n\tSYS_SOCKET                          = 0x367 // 871\n\tSYS_SOCKETPAIR                      = 0x368 // 872\n\tSYS_WRITEV                          = 0x369 // 873\n\tSYS_CHROOT                          = 0x36A // 874\n\tSYS_W_STATVFS                       = 0x36B // 875\n\tSYS_ULIMIT                          = 0x36C // 876\n\tSYS_ISNAN                           = 0x36D // 877\n\tSYS_UTIMES                          = 0x36E // 878\n\tSYS___H_ERRNO                       = 0x36F // 879\n\tSYS_ENDNETENT                       = 0x370 // 880\n\tSYS_CLOSELOG                        = 0x371 // 881\n\tSYS_OPENLOG                         = 0x372 // 882\n\tSYS_SETLOGMASK                      = 0x373 // 883\n\tSYS_SYSLOG                          = 0x374 // 884\n\tSYS_PTSNAME                         = 0x375 // 885\n\tSYS_SETREUID                        = 0x376 // 886\n\tSYS_SETREGID                        = 0x377 // 887\n\tSYS_REALPATH                        = 0x378 // 888\n\tSYS___SIGNGAM                       = 0x379 // 889\n\tSYS_GRANTPT                         = 0x37A // 890\n\tSYS_UNLOCKPT                        = 0x37B // 891\n\tSYS_TCGETSID                        = 0x37C // 892\n\tSYS___TCGETCP                       = 0x37D // 893\n\tSYS___TCSETCP                       = 0x37E // 894\n\tSYS___TCSETTABLES                   = 0x37F // 895\n\tSYS_POLL                            = 0x380 // 896\n\tSYS_REXEC                           = 0x381 // 897\n\tSYS___ISASCII2                      = 0x382 // 898\n\tSYS___TOASCII2                      = 0x383 // 899\n\tSYS_CHPRIORITY                      = 0x384 // 900\n\tSYS_PTHREAD_ATTR_SETSYNCTYPE_NP     = 0x385 // 901\n\tSYS_PTHREAD_ATTR_GETSYNCTYPE_NP     = 0x386 // 902\n\tSYS_PTHREAD_SET_LIMIT_NP            = 0x387 // 903\n\tSYS___STNETENT                      = 0x388 // 904\n\tSYS___STPROTOENT                    = 0x389 // 905\n\tSYS___STSERVENT                     = 0x38A // 906\n\tSYS___STHOSTENT                     = 0x38B // 907\n\tSYS_NLIST                           = 0x38C // 908\n\tSYS___IPDBCS                        = 0x38D // 909\n\tSYS___IPDSPX                        = 0x38E // 910\n\tSYS___IPMSGC                        = 0x38F // 911\n\tSYS___SELECT1                       = 0x390 // 912\n\tSYS_PTHREAD_SECURITY_NP             = 0x391 // 913\n\tSYS___CHECK_RESOURCE_AUTH_NP        = 0x392 // 914\n\tSYS___CONVERT_ID_NP                 = 0x393 // 915\n\tSYS___OPENVMREL                     = 0x394 // 916\n\tSYS_WMEMCHR                         = 0x395 // 917\n\tSYS_WMEMCMP                         = 0x396 // 918\n\tSYS_WMEMCPY                         = 0x397 // 919\n\tSYS_WMEMMOVE                        = 0x398 // 920\n\tSYS_WMEMSET                         = 0x399 // 921\n\tSYS___FPUTWC                        = 0x400 // 1024\n\tSYS___PUTWC                         = 0x401 // 1025\n\tSYS___PWCHAR                        = 0x402 // 1026\n\tSYS___WCSFTM                        = 0x403 // 1027\n\tSYS___WCSTOK                        = 0x404 // 1028\n\tSYS___WCWDTH                        = 0x405 // 1029\n\tSYS_T_ACCEPT                        = 0x409 // 1033\n\tSYS_T_ALLOC                         = 0x40A // 1034\n\tSYS_T_BIND                          = 0x40B // 1035\n\tSYS_T_CLOSE                         = 0x40C // 1036\n\tSYS_T_CONNECT                       = 0x40D // 1037\n\tSYS_T_ERROR                         = 0x40E // 1038\n\tSYS_T_FREE                          = 0x40F // 1039\n\tSYS_T_GETINFO                       = 0x410 // 1040\n\tSYS_T_GETPROTADDR                   = 0x411 // 1041\n\tSYS_T_GETSTATE                      = 0x412 // 1042\n\tSYS_T_LISTEN                        = 0x413 // 1043\n\tSYS_T_LOOK                          = 0x414 // 1044\n\tSYS_T_OPEN                          = 0x415 // 1045\n\tSYS_T_OPTMGMT                       = 0x416 // 1046\n\tSYS_T_RCV                           = 0x417 // 1047\n\tSYS_T_RCVCONNECT                    = 0x418 // 1048\n\tSYS_T_RCVDIS                        = 0x419 // 1049\n\tSYS_T_RCVREL                        = 0x41A // 1050\n\tSYS_T_RCVUDATA                      = 0x41B // 1051\n\tSYS_T_RCVUDERR                      = 0x41C // 1052\n\tSYS_T_SND                           = 0x41D // 1053\n\tSYS_T_SNDDIS                        = 0x41E // 1054\n\tSYS_T_SNDREL                        = 0x41F // 1055\n\tSYS_T_SNDUDATA                      = 0x420 // 1056\n\tSYS_T_STRERROR                      = 0x421 // 1057\n\tSYS_T_SYNC                          = 0x422 // 1058\n\tSYS_T_UNBIND                        = 0x423 // 1059\n\tSYS___T_ERRNO                       = 0x424 // 1060\n\tSYS___RECVMSG2                      = 0x425 // 1061\n\tSYS___SENDMSG2                      = 0x426 // 1062\n\tSYS_FATTACH                         = 0x427 // 1063\n\tSYS_FDETACH                         = 0x428 // 1064\n\tSYS_GETMSG                          = 0x429 // 1065\n\tSYS_GETPMSG                         = 0x42A // 1066\n\tSYS_ISASTREAM                       = 0x42B // 1067\n\tSYS_PUTMSG                          = 0x42C // 1068\n\tSYS_PUTPMSG                         = 0x42D // 1069\n\tSYS___ISPOSIXON                     = 0x42E // 1070\n\tSYS___OPENMVSREL                    = 0x42F // 1071\n\tSYS_GETCONTEXT                      = 0x430 // 1072\n\tSYS_SETCONTEXT                      = 0x431 // 1073\n\tSYS_MAKECONTEXT                     = 0x432 // 1074\n\tSYS_SWAPCONTEXT                     = 0x433 // 1075\n\tSYS_PTHREAD_GETSPECIFIC_D8_NP       = 0x434 // 1076\n\tSYS_GETCLIENTID                     = 0x470 // 1136\n\tSYS___GETCLIENTID                   = 0x471 // 1137\n\tSYS_GETSTABLESIZE                   = 0x472 // 1138\n\tSYS_GETIBMOPT                       = 0x473 // 1139\n\tSYS_GETIBMSOCKOPT                   = 0x474 // 1140\n\tSYS_GIVESOCKET                      = 0x475 // 1141\n\tSYS_IBMSFLUSH                       = 0x476 // 1142\n\tSYS_MAXDESC                         = 0x477 // 1143\n\tSYS_SETIBMOPT                       = 0x478 // 1144\n\tSYS_SETIBMSOCKOPT                   = 0x479 // 1145\n\tSYS_SOCK_DEBUG                      = 0x47A // 1146\n\tSYS_SOCK_DO_TESTSTOR                = 0x47D // 1149\n\tSYS_TAKESOCKET                      = 0x47E // 1150\n\tSYS___SERVER_INIT                   = 0x47F // 1151\n\tSYS___SERVER_PWU                    = 0x480 // 1152\n\tSYS_PTHREAD_TAG_NP                  = 0x481 // 1153\n\tSYS___CONSOLE                       = 0x482 // 1154\n\tSYS___WSINIT                        = 0x483 // 1155\n\tSYS___IPTCPN                        = 0x489 // 1161\n\tSYS___SMF_RECORD                    = 0x48A // 1162\n\tSYS___IPHOST                        = 0x48B // 1163\n\tSYS___IPNODE                        = 0x48C // 1164\n\tSYS___SERVER_CLASSIFY_CREATE        = 0x48D // 1165\n\tSYS___SERVER_CLASSIFY_DESTROY       = 0x48E // 1166\n\tSYS___SERVER_CLASSIFY_RESET         = 0x48F // 1167\n\tSYS___SERVER_CLASSIFY               = 0x490 // 1168\n\tSYS___HEAPRPT                       = 0x496 // 1174\n\tSYS___FNWSA                         = 0x49B // 1179\n\tSYS___SPAWN2                        = 0x49D // 1181\n\tSYS___SPAWNP2                       = 0x49E // 1182\n\tSYS___GDRR                          = 0x4A1 // 1185\n\tSYS___HRRNO                         = 0x4A2 // 1186\n\tSYS___OPRG                          = 0x4A3 // 1187\n\tSYS___OPRR                          = 0x4A4 // 1188\n\tSYS___OPND                          = 0x4A5 // 1189\n\tSYS___OPPT                          = 0x4A6 // 1190\n\tSYS___SIGGM                         = 0x4A7 // 1191\n\tSYS___DGHT                          = 0x4A8 // 1192\n\tSYS___TZNE                          = 0x4A9 // 1193\n\tSYS___TZZN                          = 0x4AA // 1194\n\tSYS___TRRNO                         = 0x4AF // 1199\n\tSYS___ENVN                          = 0x4B0 // 1200\n\tSYS___MLOCKALL                      = 0x4B1 // 1201\n\tSYS_CREATEWO                        = 0x4B2 // 1202\n\tSYS_CREATEWORKUNIT                  = 0x4B2 // 1202\n\tSYS_CONTINUE                        = 0x4B3 // 1203\n\tSYS_CONTINUEWORKUNIT                = 0x4B3 // 1203\n\tSYS_CONNECTW                        = 0x4B4 // 1204\n\tSYS_CONNECTWORKMGR                  = 0x4B4 // 1204\n\tSYS_CONNECTS                        = 0x4B5 // 1205\n\tSYS_CONNECTSERVER                   = 0x4B5 // 1205\n\tSYS_DISCONNE                        = 0x4B6 // 1206\n\tSYS_DISCONNECTSERVER                = 0x4B6 // 1206\n\tSYS_JOINWORK                        = 0x4B7 // 1207\n\tSYS_JOINWORKUNIT                    = 0x4B7 // 1207\n\tSYS_LEAVEWOR                        = 0x4B8 // 1208\n\tSYS_LEAVEWORKUNIT                   = 0x4B8 // 1208\n\tSYS_DELETEWO                        = 0x4B9 // 1209\n\tSYS_DELETEWORKUNIT                  = 0x4B9 // 1209\n\tSYS_QUERYMET                        = 0x4BA // 1210\n\tSYS_QUERYMETRICS                    = 0x4BA // 1210\n\tSYS_QUERYSCH                        = 0x4BB // 1211\n\tSYS_QUERYSCHENV                     = 0x4BB // 1211\n\tSYS_CHECKSCH                        = 0x4BC // 1212\n\tSYS_CHECKSCHENV                     = 0x4BC // 1212\n\tSYS___PID_AFFINITY                  = 0x4BD // 1213\n\tSYS___ASINH_B                       = 0x4BE // 1214\n\tSYS___ATAN_B                        = 0x4BF // 1215\n\tSYS___CBRT_B                        = 0x4C0 // 1216\n\tSYS___CEIL_B                        = 0x4C1 // 1217\n\tSYS_COPYSIGN                        = 0x4C2 // 1218\n\tSYS___COS_B                         = 0x4C3 // 1219\n\tSYS___ERF_B                         = 0x4C4 // 1220\n\tSYS___ERFC_B                        = 0x4C5 // 1221\n\tSYS___EXPM1_B                       = 0x4C6 // 1222\n\tSYS___FABS_B                        = 0x4C7 // 1223\n\tSYS_FINITE                          = 0x4C8 // 1224\n\tSYS___FLOOR_B                       = 0x4C9 // 1225\n\tSYS___FREXP_B                       = 0x4CA // 1226\n\tSYS___ILOGB_B                       = 0x4CB // 1227\n\tSYS___ISNAN_B                       = 0x4CC // 1228\n\tSYS___LDEXP_B                       = 0x4CD // 1229\n\tSYS___LOG1P_B                       = 0x4CE // 1230\n\tSYS___LOGB_B                        = 0x4CF // 1231\n\tSYS_MATHERR                         = 0x4D0 // 1232\n\tSYS___MODF_B                        = 0x4D1 // 1233\n\tSYS___NEXTAFTER_B                   = 0x4D2 // 1234\n\tSYS___RINT_B                        = 0x4D3 // 1235\n\tSYS_SCALBN                          = 0x4D4 // 1236\n\tSYS_SIGNIFIC                        = 0x4D5 // 1237\n\tSYS_SIGNIFICAND                     = 0x4D5 // 1237\n\tSYS___SIN_B                         = 0x4D6 // 1238\n\tSYS___TAN_B                         = 0x4D7 // 1239\n\tSYS___TANH_B                        = 0x4D8 // 1240\n\tSYS___ACOS_B                        = 0x4D9 // 1241\n\tSYS___ACOSH_B                       = 0x4DA // 1242\n\tSYS___ASIN_B                        = 0x4DB // 1243\n\tSYS___ATAN2_B                       = 0x4DC // 1244\n\tSYS___ATANH_B                       = 0x4DD // 1245\n\tSYS___COSH_B                        = 0x4DE // 1246\n\tSYS___EXP_B                         = 0x4DF // 1247\n\tSYS___FMOD_B                        = 0x4E0 // 1248\n\tSYS___GAMMA_B                       = 0x4E1 // 1249\n\tSYS_GAMMA_R                         = 0x4E2 // 1250\n\tSYS___HYPOT_B                       = 0x4E3 // 1251\n\tSYS___J0_B                          = 0x4E4 // 1252\n\tSYS___Y0_B                          = 0x4E5 // 1253\n\tSYS___J1_B                          = 0x4E6 // 1254\n\tSYS___Y1_B                          = 0x4E7 // 1255\n\tSYS___JN_B                          = 0x4E8 // 1256\n\tSYS___YN_B                          = 0x4E9 // 1257\n\tSYS___LGAMMA_B                      = 0x4EA // 1258\n\tSYS_LGAMMA_R                        = 0x4EB // 1259\n\tSYS___LOG_B                         = 0x4EC // 1260\n\tSYS___LOG10_B                       = 0x4ED // 1261\n\tSYS___POW_B                         = 0x4EE // 1262\n\tSYS___REMAINDER_B                   = 0x4EF // 1263\n\tSYS___SCALB_B                       = 0x4F0 // 1264\n\tSYS___SINH_B                        = 0x4F1 // 1265\n\tSYS___SQRT_B                        = 0x4F2 // 1266\n\tSYS___OPENDIR2                      = 0x4F3 // 1267\n\tSYS___READDIR2                      = 0x4F4 // 1268\n\tSYS___LOGIN                         = 0x4F5 // 1269\n\tSYS___OPEN_STAT                     = 0x4F6 // 1270\n\tSYS_ACCEPT_AND_RECV                 = 0x4F7 // 1271\n\tSYS___FP_SETMODE                    = 0x4F8 // 1272\n\tSYS___SIGACTIONSET                  = 0x4FB // 1275\n\tSYS___UCREATE                       = 0x4FC // 1276\n\tSYS___UMALLOC                       = 0x4FD // 1277\n\tSYS___UFREE                         = 0x4FE // 1278\n\tSYS___UHEAPREPORT                   = 0x4FF // 1279\n\tSYS___ISBFP                         = 0x500 // 1280\n\tSYS___FP_CAST                       = 0x501 // 1281\n\tSYS___CERTIFICATE                   = 0x502 // 1282\n\tSYS_SEND_FILE                       = 0x503 // 1283\n\tSYS_AIO_CANCEL                      = 0x504 // 1284\n\tSYS_AIO_ERROR                       = 0x505 // 1285\n\tSYS_AIO_READ                        = 0x506 // 1286\n\tSYS_AIO_RETURN                      = 0x507 // 1287\n\tSYS_AIO_SUSPEND                     = 0x508 // 1288\n\tSYS_AIO_WRITE                       = 0x509 // 1289\n\tSYS_PTHREAD_MUTEXATTR_GETPSHARED    = 0x50A // 1290\n\tSYS_PTHREAD_MUTEXATTR_SETPSHARED    = 0x50B // 1291\n\tSYS_PTHREAD_RWLOCK_DESTROY          = 0x50C // 1292\n\tSYS_PTHREAD_RWLOCK_INIT             = 0x50D // 1293\n\tSYS_PTHREAD_RWLOCK_RDLOCK           = 0x50E // 1294\n\tSYS_PTHREAD_RWLOCK_TRYRDLOCK        = 0x50F // 1295\n\tSYS_PTHREAD_RWLOCK_TRYWRLOCK        = 0x510 // 1296\n\tSYS_PTHREAD_RWLOCK_UNLOCK           = 0x511 // 1297\n\tSYS_PTHREAD_RWLOCK_WRLOCK           = 0x512 // 1298\n\tSYS_PTHREAD_RWLOCKATTR_GETPSHARED   = 0x513 // 1299\n\tSYS_PTHREAD_RWLOCKATTR_SETPSHARED   = 0x514 // 1300\n\tSYS_PTHREAD_RWLOCKATTR_INIT         = 0x515 // 1301\n\tSYS_PTHREAD_RWLOCKATTR_DESTROY      = 0x516 // 1302\n\tSYS___CTTBL                         = 0x517 // 1303\n\tSYS_PTHREAD_MUTEXATTR_SETTYPE       = 0x518 // 1304\n\tSYS_PTHREAD_MUTEXATTR_GETTYPE       = 0x519 // 1305\n\tSYS___FP_CLR_FLAG                   = 0x51A // 1306\n\tSYS___FP_READ_FLAG                  = 0x51B // 1307\n\tSYS___FP_RAISE_XCP                  = 0x51C // 1308\n\tSYS___FP_CLASS                      = 0x51D // 1309\n\tSYS___FP_FINITE                     = 0x51E // 1310\n\tSYS___FP_ISNAN                      = 0x51F // 1311\n\tSYS___FP_UNORDERED                  = 0x520 // 1312\n\tSYS___FP_READ_RND                   = 0x521 // 1313\n\tSYS___FP_READ_RND_B                 = 0x522 // 1314\n\tSYS___FP_SWAP_RND                   = 0x523 // 1315\n\tSYS___FP_SWAP_RND_B                 = 0x524 // 1316\n\tSYS___FP_LEVEL                      = 0x525 // 1317\n\tSYS___FP_BTOH                       = 0x526 // 1318\n\tSYS___FP_HTOB                       = 0x527 // 1319\n\tSYS___FPC_RD                        = 0x528 // 1320\n\tSYS___FPC_WR                        = 0x529 // 1321\n\tSYS___FPC_RW                        = 0x52A // 1322\n\tSYS___FPC_SM                        = 0x52B // 1323\n\tSYS___FPC_RS                        = 0x52C // 1324\n\tSYS_SIGTIMEDWAIT                    = 0x52D // 1325\n\tSYS_SIGWAITINFO                     = 0x52E // 1326\n\tSYS___CHKBFP                        = 0x52F // 1327\n\tSYS___W_PIOCTL                      = 0x59E // 1438\n\tSYS___OSENV                         = 0x59F // 1439\n\tSYS_EXPORTWO                        = 0x5A1 // 1441\n\tSYS_EXPORTWORKUNIT                  = 0x5A1 // 1441\n\tSYS_UNDOEXPO                        = 0x5A2 // 1442\n\tSYS_UNDOEXPORTWORKUNIT              = 0x5A2 // 1442\n\tSYS_IMPORTWO                        = 0x5A3 // 1443\n\tSYS_IMPORTWORKUNIT                  = 0x5A3 // 1443\n\tSYS_UNDOIMPO                        = 0x5A4 // 1444\n\tSYS_UNDOIMPORTWORKUNIT              = 0x5A4 // 1444\n\tSYS_EXTRACTW                        = 0x5A5 // 1445\n\tSYS_EXTRACTWORKUNIT                 = 0x5A5 // 1445\n\tSYS___CPL                           = 0x5A6 // 1446\n\tSYS___MAP_INIT                      = 0x5A7 // 1447\n\tSYS___MAP_SERVICE                   = 0x5A8 // 1448\n\tSYS_SIGQUEUE                        = 0x5A9 // 1449\n\tSYS___MOUNT                         = 0x5AA // 1450\n\tSYS___GETUSERID                     = 0x5AB // 1451\n\tSYS___IPDOMAINNAME                  = 0x5AC // 1452\n\tSYS_QUERYENC                        = 0x5AD // 1453\n\tSYS_QUERYWORKUNITCLASSIFICATION     = 0x5AD // 1453\n\tSYS_CONNECTE                        = 0x5AE // 1454\n\tSYS_CONNECTEXPORTIMPORT             = 0x5AE // 1454\n\tSYS___FP_SWAPMODE                   = 0x5AF // 1455\n\tSYS_STRTOLL                         = 0x5B0 // 1456\n\tSYS_STRTOULL                        = 0x5B1 // 1457\n\tSYS___DSA_PREV                      = 0x5B2 // 1458\n\tSYS___EP_FIND                       = 0x5B3 // 1459\n\tSYS___SERVER_THREADS_QUERY          = 0x5B4 // 1460\n\tSYS___MSGRCV_TIMED                  = 0x5B7 // 1463\n\tSYS___SEMOP_TIMED                   = 0x5B8 // 1464\n\tSYS___GET_CPUID                     = 0x5B9 // 1465\n\tSYS___GET_SYSTEM_SETTINGS           = 0x5BA // 1466\n\tSYS_FTELLO                          = 0x5C8 // 1480\n\tSYS_FSEEKO                          = 0x5C9 // 1481\n\tSYS_LLDIV                           = 0x5CB // 1483\n\tSYS_WCSTOLL                         = 0x5CC // 1484\n\tSYS_WCSTOULL                        = 0x5CD // 1485\n\tSYS_LLABS                           = 0x5CE // 1486\n\tSYS___CONSOLE2                      = 0x5D2 // 1490\n\tSYS_INET_NTOP                       = 0x5D3 // 1491\n\tSYS_INET_PTON                       = 0x5D4 // 1492\n\tSYS___RES                           = 0x5D6 // 1494\n\tSYS_RES_MKQUERY                     = 0x5D7 // 1495\n\tSYS_RES_INIT                        = 0x5D8 // 1496\n\tSYS_RES_QUERY                       = 0x5D9 // 1497\n\tSYS_RES_SEARCH                      = 0x5DA // 1498\n\tSYS_RES_SEND                        = 0x5DB // 1499\n\tSYS_RES_QUERYDOMAIN                 = 0x5DC // 1500\n\tSYS_DN_EXPAND                       = 0x5DD // 1501\n\tSYS_DN_SKIPNAME                     = 0x5DE // 1502\n\tSYS_DN_COMP                         = 0x5DF // 1503\n\tSYS_ASCTIME_R                       = 0x5E0 // 1504\n\tSYS_CTIME_R                         = 0x5E1 // 1505\n\tSYS_GMTIME_R                        = 0x5E2 // 1506\n\tSYS_LOCALTIME_R                     = 0x5E3 // 1507\n\tSYS_RAND_R                          = 0x5E4 // 1508\n\tSYS_STRTOK_R                        = 0x5E5 // 1509\n\tSYS_READDIR_R                       = 0x5E6 // 1510\n\tSYS_GETGRGID_R                      = 0x5E7 // 1511\n\tSYS_GETGRNAM_R                      = 0x5E8 // 1512\n\tSYS_GETLOGIN_R                      = 0x5E9 // 1513\n\tSYS_GETPWNAM_R                      = 0x5EA // 1514\n\tSYS_GETPWUID_R                      = 0x5EB // 1515\n\tSYS_TTYNAME_R                       = 0x5EC // 1516\n\tSYS_PTHREAD_ATFORK                  = 0x5ED // 1517\n\tSYS_PTHREAD_ATTR_GETGUARDSIZE       = 0x5EE // 1518\n\tSYS_PTHREAD_ATTR_GETSTACKADDR       = 0x5EF // 1519\n\tSYS_PTHREAD_ATTR_SETGUARDSIZE       = 0x5F0 // 1520\n\tSYS_PTHREAD_ATTR_SETSTACKADDR       = 0x5F1 // 1521\n\tSYS_PTHREAD_CONDATTR_GETPSHARED     = 0x5F2 // 1522\n\tSYS_PTHREAD_CONDATTR_SETPSHARED     = 0x5F3 // 1523\n\tSYS_PTHREAD_GETCONCURRENCY          = 0x5F4 // 1524\n\tSYS_PTHREAD_KEY_DELETE              = 0x5F5 // 1525\n\tSYS_PTHREAD_SETCONCURRENCY          = 0x5F6 // 1526\n\tSYS_PTHREAD_SIGMASK                 = 0x5F7 // 1527\n\tSYS___DISCARDDATA                   = 0x5F8 // 1528\n\tSYS_PTHREAD_ATTR_GETSCHEDPARAM      = 0x5F9 // 1529\n\tSYS_PTHREAD_ATTR_SETSCHEDPARAM      = 0x5FA // 1530\n\tSYS_PTHREAD_ATTR_GETDETACHSTATE_U98 = 0x5FB // 1531\n\tSYS_PTHREAD_ATTR_SETDETACHSTATE_U98 = 0x5FC // 1532\n\tSYS_PTHREAD_DETACH_U98              = 0x5FD // 1533\n\tSYS_PTHREAD_GETSPECIFIC_U98         = 0x5FE // 1534\n\tSYS_PTHREAD_SETCANCELSTATE          = 0x5FF // 1535\n\tSYS_PTHREAD_SETCANCELTYPE           = 0x600 // 1536\n\tSYS_PTHREAD_TESTCANCEL              = 0x601 // 1537\n\tSYS___ATANF_B                       = 0x602 // 1538\n\tSYS___ATANL_B                       = 0x603 // 1539\n\tSYS___CEILF_B                       = 0x604 // 1540\n\tSYS___CEILL_B                       = 0x605 // 1541\n\tSYS___COSF_B                        = 0x606 // 1542\n\tSYS___COSL_B                        = 0x607 // 1543\n\tSYS___FABSF_B                       = 0x608 // 1544\n\tSYS___FABSL_B                       = 0x609 // 1545\n\tSYS___FLOORF_B                      = 0x60A // 1546\n\tSYS___FLOORL_B                      = 0x60B // 1547\n\tSYS___FREXPF_B                      = 0x60C // 1548\n\tSYS___FREXPL_B                      = 0x60D // 1549\n\tSYS___LDEXPF_B                      = 0x60E // 1550\n\tSYS___LDEXPL_B                      = 0x60F // 1551\n\tSYS___SINF_B                        = 0x610 // 1552\n\tSYS___SINL_B                        = 0x611 // 1553\n\tSYS___TANF_B                        = 0x612 // 1554\n\tSYS___TANL_B                        = 0x613 // 1555\n\tSYS___TANHF_B                       = 0x614 // 1556\n\tSYS___TANHL_B                       = 0x615 // 1557\n\tSYS___ACOSF_B                       = 0x616 // 1558\n\tSYS___ACOSL_B                       = 0x617 // 1559\n\tSYS___ASINF_B                       = 0x618 // 1560\n\tSYS___ASINL_B                       = 0x619 // 1561\n\tSYS___ATAN2F_B                      = 0x61A // 1562\n\tSYS___ATAN2L_B                      = 0x61B // 1563\n\tSYS___COSHF_B                       = 0x61C // 1564\n\tSYS___COSHL_B                       = 0x61D // 1565\n\tSYS___EXPF_B                        = 0x61E // 1566\n\tSYS___EXPL_B                        = 0x61F // 1567\n\tSYS___LOGF_B                        = 0x620 // 1568\n\tSYS___LOGL_B                        = 0x621 // 1569\n\tSYS___LOG10F_B                      = 0x622 // 1570\n\tSYS___LOG10L_B                      = 0x623 // 1571\n\tSYS___POWF_B                        = 0x624 // 1572\n\tSYS___POWL_B                        = 0x625 // 1573\n\tSYS___SINHF_B                       = 0x626 // 1574\n\tSYS___SINHL_B                       = 0x627 // 1575\n\tSYS___SQRTF_B                       = 0x628 // 1576\n\tSYS___SQRTL_B                       = 0x629 // 1577\n\tSYS___ABSF_B                        = 0x62A // 1578\n\tSYS___ABS_B                         = 0x62B // 1579\n\tSYS___ABSL_B                        = 0x62C // 1580\n\tSYS___FMODF_B                       = 0x62D // 1581\n\tSYS___FMODL_B                       = 0x62E // 1582\n\tSYS___MODFF_B                       = 0x62F // 1583\n\tSYS___MODFL_B                       = 0x630 // 1584\n\tSYS_ABSF                            = 0x631 // 1585\n\tSYS_ABSL                            = 0x632 // 1586\n\tSYS_ACOSF                           = 0x633 // 1587\n\tSYS_ACOSL                           = 0x634 // 1588\n\tSYS_ASINF                           = 0x635 // 1589\n\tSYS_ASINL                           = 0x636 // 1590\n\tSYS_ATAN2F                          = 0x637 // 1591\n\tSYS_ATAN2L                          = 0x638 // 1592\n\tSYS_ATANF                           = 0x639 // 1593\n\tSYS_ATANL                           = 0x63A // 1594\n\tSYS_CEILF                           = 0x63B // 1595\n\tSYS_CEILL                           = 0x63C // 1596\n\tSYS_COSF                            = 0x63D // 1597\n\tSYS_COSL                            = 0x63E // 1598\n\tSYS_COSHF                           = 0x63F // 1599\n\tSYS_COSHL                           = 0x640 // 1600\n\tSYS_EXPF                            = 0x641 // 1601\n\tSYS_EXPL                            = 0x642 // 1602\n\tSYS_TANHF                           = 0x643 // 1603\n\tSYS_TANHL                           = 0x644 // 1604\n\tSYS_LOG10F                          = 0x645 // 1605\n\tSYS_LOG10L                          = 0x646 // 1606\n\tSYS_LOGF                            = 0x647 // 1607\n\tSYS_LOGL                            = 0x648 // 1608\n\tSYS_POWF                            = 0x649 // 1609\n\tSYS_POWL                            = 0x64A // 1610\n\tSYS_SINF                            = 0x64B // 1611\n\tSYS_SINL                            = 0x64C // 1612\n\tSYS_SQRTF                           = 0x64D // 1613\n\tSYS_SQRTL                           = 0x64E // 1614\n\tSYS_SINHF                           = 0x64F // 1615\n\tSYS_SINHL                           = 0x650 // 1616\n\tSYS_TANF                            = 0x651 // 1617\n\tSYS_TANL                            = 0x652 // 1618\n\tSYS_FABSF                           = 0x653 // 1619\n\tSYS_FABSL                           = 0x654 // 1620\n\tSYS_FLOORF                          = 0x655 // 1621\n\tSYS_FLOORL                          = 0x656 // 1622\n\tSYS_FMODF                           = 0x657 // 1623\n\tSYS_FMODL                           = 0x658 // 1624\n\tSYS_FREXPF                          = 0x659 // 1625\n\tSYS_FREXPL                          = 0x65A // 1626\n\tSYS_LDEXPF                          = 0x65B // 1627\n\tSYS_LDEXPL                          = 0x65C // 1628\n\tSYS_MODFF                           = 0x65D // 1629\n\tSYS_MODFL                           = 0x65E // 1630\n\tSYS_BTOWC                           = 0x65F // 1631\n\tSYS___CHATTR                        = 0x660 // 1632\n\tSYS___FCHATTR                       = 0x661 // 1633\n\tSYS___TOCCSID                       = 0x662 // 1634\n\tSYS___CSNAMETYPE                    = 0x663 // 1635\n\tSYS___TOCSNAME                      = 0x664 // 1636\n\tSYS___CCSIDTYPE                     = 0x665 // 1637\n\tSYS___AE_CORRESTBL_QUERY            = 0x666 // 1638\n\tSYS___AE_AUTOCONVERT_STATE          = 0x667 // 1639\n\tSYS_DN_FIND                         = 0x668 // 1640\n\tSYS___GETHOSTBYADDR_A               = 0x669 // 1641\n\tSYS___GETHOSTBYNAME_A               = 0x66A // 1642\n\tSYS___RES_INIT_A                    = 0x66B // 1643\n\tSYS___GETHOSTBYADDR_R_A             = 0x66C // 1644\n\tSYS___GETHOSTBYNAME_R_A             = 0x66D // 1645\n\tSYS___CHARMAP_INIT_A                = 0x66E // 1646\n\tSYS___MBLEN_A                       = 0x66F // 1647\n\tSYS___MBLEN_SB_A                    = 0x670 // 1648\n\tSYS___MBLEN_STD_A                   = 0x671 // 1649\n\tSYS___MBLEN_UTF                     = 0x672 // 1650\n\tSYS___MBSTOWCS_A                    = 0x673 // 1651\n\tSYS___MBSTOWCS_STD_A                = 0x674 // 1652\n\tSYS___MBTOWC_A                      = 0x675 // 1653\n\tSYS___MBTOWC_ISO1                   = 0x676 // 1654\n\tSYS___MBTOWC_SBCS                   = 0x677 // 1655\n\tSYS___MBTOWC_MBCS                   = 0x678 // 1656\n\tSYS___MBTOWC_UTF                    = 0x679 // 1657\n\tSYS___WCSTOMBS_A                    = 0x67A // 1658\n\tSYS___WCSTOMBS_STD_A                = 0x67B // 1659\n\tSYS___WCSWIDTH_A                    = 0x67C // 1660\n\tSYS___GETGRGID_R_A                  = 0x67D // 1661\n\tSYS___WCSWIDTH_STD_A                = 0x67E // 1662\n\tSYS___WCSWIDTH_ASIA                 = 0x67F // 1663\n\tSYS___CSID_A                        = 0x680 // 1664\n\tSYS___CSID_STD_A                    = 0x681 // 1665\n\tSYS___WCSID_A                       = 0x682 // 1666\n\tSYS___WCSID_STD_A                   = 0x683 // 1667\n\tSYS___WCTOMB_A                      = 0x684 // 1668\n\tSYS___WCTOMB_ISO1                   = 0x685 // 1669\n\tSYS___WCTOMB_STD_A                  = 0x686 // 1670\n\tSYS___WCTOMB_UTF                    = 0x687 // 1671\n\tSYS___WCWIDTH_A                     = 0x688 // 1672\n\tSYS___GETGRNAM_R_A                  = 0x689 // 1673\n\tSYS___WCWIDTH_STD_A                 = 0x68A // 1674\n\tSYS___WCWIDTH_ASIA                  = 0x68B // 1675\n\tSYS___GETPWNAM_R_A                  = 0x68C // 1676\n\tSYS___GETPWUID_R_A                  = 0x68D // 1677\n\tSYS___GETLOGIN_R_A                  = 0x68E // 1678\n\tSYS___TTYNAME_R_A                   = 0x68F // 1679\n\tSYS___READDIR_R_A                   = 0x690 // 1680\n\tSYS___E2A_S                         = 0x691 // 1681\n\tSYS___FNMATCH_A                     = 0x692 // 1682\n\tSYS___FNMATCH_C_A                   = 0x693 // 1683\n\tSYS___EXECL_A                       = 0x694 // 1684\n\tSYS___FNMATCH_STD_A                 = 0x695 // 1685\n\tSYS___REGCOMP_A                     = 0x696 // 1686\n\tSYS___REGCOMP_STD_A                 = 0x697 // 1687\n\tSYS___REGERROR_A                    = 0x698 // 1688\n\tSYS___REGERROR_STD_A                = 0x699 // 1689\n\tSYS___REGEXEC_A                     = 0x69A // 1690\n\tSYS___REGEXEC_STD_A                 = 0x69B // 1691\n\tSYS___REGFREE_A                     = 0x69C // 1692\n\tSYS___REGFREE_STD_A                 = 0x69D // 1693\n\tSYS___STRCOLL_A                     = 0x69E // 1694\n\tSYS___STRCOLL_C_A                   = 0x69F // 1695\n\tSYS___EXECLE_A                      = 0x6A0 // 1696\n\tSYS___STRCOLL_STD_A                 = 0x6A1 // 1697\n\tSYS___STRXFRM_A                     = 0x6A2 // 1698\n\tSYS___STRXFRM_C_A                   = 0x6A3 // 1699\n\tSYS___EXECLP_A                      = 0x6A4 // 1700\n\tSYS___STRXFRM_STD_A                 = 0x6A5 // 1701\n\tSYS___WCSCOLL_A                     = 0x6A6 // 1702\n\tSYS___WCSCOLL_C_A                   = 0x6A7 // 1703\n\tSYS___WCSCOLL_STD_A                 = 0x6A8 // 1704\n\tSYS___WCSXFRM_A                     = 0x6A9 // 1705\n\tSYS___WCSXFRM_C_A                   = 0x6AA // 1706\n\tSYS___WCSXFRM_STD_A                 = 0x6AB // 1707\n\tSYS___COLLATE_INIT_A                = 0x6AC // 1708\n\tSYS___WCTYPE_A                      = 0x6AD // 1709\n\tSYS___GET_WCTYPE_STD_A              = 0x6AE // 1710\n\tSYS___CTYPE_INIT_A                  = 0x6AF // 1711\n\tSYS___ISWCTYPE_A                    = 0x6B0 // 1712\n\tSYS___EXECV_A                       = 0x6B1 // 1713\n\tSYS___IS_WCTYPE_STD_A               = 0x6B2 // 1714\n\tSYS___TOWLOWER_A                    = 0x6B3 // 1715\n\tSYS___TOWLOWER_STD_A                = 0x6B4 // 1716\n\tSYS___TOWUPPER_A                    = 0x6B5 // 1717\n\tSYS___TOWUPPER_STD_A                = 0x6B6 // 1718\n\tSYS___LOCALE_INIT_A                 = 0x6B7 // 1719\n\tSYS___LOCALECONV_A                  = 0x6B8 // 1720\n\tSYS___LOCALECONV_STD_A              = 0x6B9 // 1721\n\tSYS___NL_LANGINFO_A                 = 0x6BA // 1722\n\tSYS___NL_LNAGINFO_STD_A             = 0x6BB // 1723\n\tSYS___MONETARY_INIT_A               = 0x6BC // 1724\n\tSYS___STRFMON_A                     = 0x6BD // 1725\n\tSYS___STRFMON_STD_A                 = 0x6BE // 1726\n\tSYS___GETADDRINFO_A                 = 0x6BF // 1727\n\tSYS___CATGETS_A                     = 0x6C0 // 1728\n\tSYS___EXECVE_A                      = 0x6C1 // 1729\n\tSYS___EXECVP_A                      = 0x6C2 // 1730\n\tSYS___SPAWN_A                       = 0x6C3 // 1731\n\tSYS___GETNAMEINFO_A                 = 0x6C4 // 1732\n\tSYS___SPAWNP_A                      = 0x6C5 // 1733\n\tSYS___NUMERIC_INIT_A                = 0x6C6 // 1734\n\tSYS___RESP_INIT_A                   = 0x6C7 // 1735\n\tSYS___RPMATCH_A                     = 0x6C8 // 1736\n\tSYS___RPMATCH_C_A                   = 0x6C9 // 1737\n\tSYS___RPMATCH_STD_A                 = 0x6CA // 1738\n\tSYS___TIME_INIT_A                   = 0x6CB // 1739\n\tSYS___STRFTIME_A                    = 0x6CC // 1740\n\tSYS___STRFTIME_STD_A                = 0x6CD // 1741\n\tSYS___STRPTIME_A                    = 0x6CE // 1742\n\tSYS___STRPTIME_STD_A                = 0x6CF // 1743\n\tSYS___WCSFTIME_A                    = 0x6D0 // 1744\n\tSYS___WCSFTIME_STD_A                = 0x6D1 // 1745\n\tSYS_____SPAWN2_A                    = 0x6D2 // 1746\n\tSYS_____SPAWNP2_A                   = 0x6D3 // 1747\n\tSYS___SYNTAX_INIT_A                 = 0x6D4 // 1748\n\tSYS___TOD_INIT_A                    = 0x6D5 // 1749\n\tSYS___NL_CSINFO_A                   = 0x6D6 // 1750\n\tSYS___NL_MONINFO_A                  = 0x6D7 // 1751\n\tSYS___NL_NUMINFO_A                  = 0x6D8 // 1752\n\tSYS___NL_RESPINFO_A                 = 0x6D9 // 1753\n\tSYS___NL_TIMINFO_A                  = 0x6DA // 1754\n\tSYS___IF_NAMETOINDEX_A              = 0x6DB // 1755\n\tSYS___IF_INDEXTONAME_A              = 0x6DC // 1756\n\tSYS___PRINTF_A                      = 0x6DD // 1757\n\tSYS___ICONV_OPEN_A                  = 0x6DE // 1758\n\tSYS___DLLLOAD_A                     = 0x6DF // 1759\n\tSYS___DLLQUERYFN_A                  = 0x6E0 // 1760\n\tSYS___DLLQUERYVAR_A                 = 0x6E1 // 1761\n\tSYS_____CHATTR_A                    = 0x6E2 // 1762\n\tSYS___E2A_L                         = 0x6E3 // 1763\n\tSYS_____TOCCSID_A                   = 0x6E4 // 1764\n\tSYS_____TOCSNAME_A                  = 0x6E5 // 1765\n\tSYS_____CCSIDTYPE_A                 = 0x6E6 // 1766\n\tSYS_____CSNAMETYPE_A                = 0x6E7 // 1767\n\tSYS___CHMOD_A                       = 0x6E8 // 1768\n\tSYS___MKDIR_A                       = 0x6E9 // 1769\n\tSYS___STAT_A                        = 0x6EA // 1770\n\tSYS___STAT_O_A                      = 0x6EB // 1771\n\tSYS___MKFIFO_A                      = 0x6EC // 1772\n\tSYS_____OPEN_STAT_A                 = 0x6ED // 1773\n\tSYS___LSTAT_A                       = 0x6EE // 1774\n\tSYS___LSTAT_O_A                     = 0x6EF // 1775\n\tSYS___MKNOD_A                       = 0x6F0 // 1776\n\tSYS___MOUNT_A                       = 0x6F1 // 1777\n\tSYS___UMOUNT_A                      = 0x6F2 // 1778\n\tSYS___CHAUDIT_A                     = 0x6F4 // 1780\n\tSYS___W_GETMNTENT_A                 = 0x6F5 // 1781\n\tSYS___CREAT_A                       = 0x6F6 // 1782\n\tSYS___OPEN_A                        = 0x6F7 // 1783\n\tSYS___SETLOCALE_A                   = 0x6F9 // 1785\n\tSYS___FPRINTF_A                     = 0x6FA // 1786\n\tSYS___SPRINTF_A                     = 0x6FB // 1787\n\tSYS___VFPRINTF_A                    = 0x6FC // 1788\n\tSYS___VPRINTF_A                     = 0x6FD // 1789\n\tSYS___VSPRINTF_A                    = 0x6FE // 1790\n\tSYS___VSWPRINTF_A                   = 0x6FF // 1791\n\tSYS___SWPRINTF_A                    = 0x700 // 1792\n\tSYS___FSCANF_A                      = 0x701 // 1793\n\tSYS___SCANF_A                       = 0x702 // 1794\n\tSYS___SSCANF_A                      = 0x703 // 1795\n\tSYS___SWSCANF_A                     = 0x704 // 1796\n\tSYS___ATOF_A                        = 0x705 // 1797\n\tSYS___ATOI_A                        = 0x706 // 1798\n\tSYS___ATOL_A                        = 0x707 // 1799\n\tSYS___STRTOD_A                      = 0x708 // 1800\n\tSYS___STRTOL_A                      = 0x709 // 1801\n\tSYS___STRTOUL_A                     = 0x70A // 1802\n\tSYS_____AE_CORRESTBL_QUERY_A        = 0x70B // 1803\n\tSYS___A64L_A                        = 0x70C // 1804\n\tSYS___ECVT_A                        = 0x70D // 1805\n\tSYS___FCVT_A                        = 0x70E // 1806\n\tSYS___GCVT_A                        = 0x70F // 1807\n\tSYS___L64A_A                        = 0x710 // 1808\n\tSYS___STRERROR_A                    = 0x711 // 1809\n\tSYS___PERROR_A                      = 0x712 // 1810\n\tSYS___FETCH_A                       = 0x713 // 1811\n\tSYS___GETENV_A                      = 0x714 // 1812\n\tSYS___MKSTEMP_A                     = 0x717 // 1815\n\tSYS___PTSNAME_A                     = 0x718 // 1816\n\tSYS___PUTENV_A                      = 0x719 // 1817\n\tSYS___REALPATH_A                    = 0x71A // 1818\n\tSYS___SETENV_A                      = 0x71B // 1819\n\tSYS___SYSTEM_A                      = 0x71C // 1820\n\tSYS___GETOPT_A                      = 0x71D // 1821\n\tSYS___CATOPEN_A                     = 0x71E // 1822\n\tSYS___ACCESS_A                      = 0x71F // 1823\n\tSYS___CHDIR_A                       = 0x720 // 1824\n\tSYS___CHOWN_A                       = 0x721 // 1825\n\tSYS___CHROOT_A                      = 0x722 // 1826\n\tSYS___GETCWD_A                      = 0x723 // 1827\n\tSYS___GETWD_A                       = 0x724 // 1828\n\tSYS___LCHOWN_A                      = 0x725 // 1829\n\tSYS___LINK_A                        = 0x726 // 1830\n\tSYS___PATHCONF_A                    = 0x727 // 1831\n\tSYS___IF_NAMEINDEX_A                = 0x728 // 1832\n\tSYS___READLINK_A                    = 0x729 // 1833\n\tSYS___RMDIR_A                       = 0x72A // 1834\n\tSYS___STATVFS_A                     = 0x72B // 1835\n\tSYS___SYMLINK_A                     = 0x72C // 1836\n\tSYS___TRUNCATE_A                    = 0x72D // 1837\n\tSYS___UNLINK_A                      = 0x72E // 1838\n\tSYS___GAI_STRERROR_A                = 0x72F // 1839\n\tSYS___EXTLINK_NP_A                  = 0x730 // 1840\n\tSYS___ISALNUM_A                     = 0x731 // 1841\n\tSYS___ISALPHA_A                     = 0x732 // 1842\n\tSYS___A2E_S                         = 0x733 // 1843\n\tSYS___ISCNTRL_A                     = 0x734 // 1844\n\tSYS___ISDIGIT_A                     = 0x735 // 1845\n\tSYS___ISGRAPH_A                     = 0x736 // 1846\n\tSYS___ISLOWER_A                     = 0x737 // 1847\n\tSYS___ISPRINT_A                     = 0x738 // 1848\n\tSYS___ISPUNCT_A                     = 0x739 // 1849\n\tSYS___ISSPACE_A                     = 0x73A // 1850\n\tSYS___ISUPPER_A                     = 0x73B // 1851\n\tSYS___ISXDIGIT_A                    = 0x73C // 1852\n\tSYS___TOLOWER_A                     = 0x73D // 1853\n\tSYS___TOUPPER_A                     = 0x73E // 1854\n\tSYS___ISWALNUM_A                    = 0x73F // 1855\n\tSYS___ISWALPHA_A                    = 0x740 // 1856\n\tSYS___A2E_L                         = 0x741 // 1857\n\tSYS___ISWCNTRL_A                    = 0x742 // 1858\n\tSYS___ISWDIGIT_A                    = 0x743 // 1859\n\tSYS___ISWGRAPH_A                    = 0x744 // 1860\n\tSYS___ISWLOWER_A                    = 0x745 // 1861\n\tSYS___ISWPRINT_A                    = 0x746 // 1862\n\tSYS___ISWPUNCT_A                    = 0x747 // 1863\n\tSYS___ISWSPACE_A                    = 0x748 // 1864\n\tSYS___ISWUPPER_A                    = 0x749 // 1865\n\tSYS___ISWXDIGIT_A                   = 0x74A // 1866\n\tSYS___CONFSTR_A                     = 0x74B // 1867\n\tSYS___FTOK_A                        = 0x74C // 1868\n\tSYS___MKTEMP_A                      = 0x74D // 1869\n\tSYS___FDOPEN_A                      = 0x74E // 1870\n\tSYS___FLDATA_A                      = 0x74F // 1871\n\tSYS___REMOVE_A                      = 0x750 // 1872\n\tSYS___RENAME_A                      = 0x751 // 1873\n\tSYS___TMPNAM_A                      = 0x752 // 1874\n\tSYS___FOPEN_A                       = 0x753 // 1875\n\tSYS___FREOPEN_A                     = 0x754 // 1876\n\tSYS___CUSERID_A                     = 0x755 // 1877\n\tSYS___POPEN_A                       = 0x756 // 1878\n\tSYS___TEMPNAM_A                     = 0x757 // 1879\n\tSYS___FTW_A                         = 0x758 // 1880\n\tSYS___GETGRENT_A                    = 0x759 // 1881\n\tSYS___GETGRGID_A                    = 0x75A // 1882\n\tSYS___GETGRNAM_A                    = 0x75B // 1883\n\tSYS___GETGROUPSBYNAME_A             = 0x75C // 1884\n\tSYS___GETHOSTENT_A                  = 0x75D // 1885\n\tSYS___GETHOSTNAME_A                 = 0x75E // 1886\n\tSYS___GETLOGIN_A                    = 0x75F // 1887\n\tSYS___INET_NTOP_A                   = 0x760 // 1888\n\tSYS___GETPASS_A                     = 0x761 // 1889\n\tSYS___GETPWENT_A                    = 0x762 // 1890\n\tSYS___GETPWNAM_A                    = 0x763 // 1891\n\tSYS___GETPWUID_A                    = 0x764 // 1892\n\tSYS_____CHECK_RESOURCE_AUTH_NP_A    = 0x765 // 1893\n\tSYS___CHECKSCHENV_A                 = 0x766 // 1894\n\tSYS___CONNECTSERVER_A               = 0x767 // 1895\n\tSYS___CONNECTWORKMGR_A              = 0x768 // 1896\n\tSYS_____CONSOLE_A                   = 0x769 // 1897\n\tSYS___CREATEWORKUNIT_A              = 0x76A // 1898\n\tSYS___CTERMID_A                     = 0x76B // 1899\n\tSYS___FMTMSG_A                      = 0x76C // 1900\n\tSYS___INITGROUPS_A                  = 0x76D // 1901\n\tSYS_____LOGIN_A                     = 0x76E // 1902\n\tSYS___MSGRCV_A                      = 0x76F // 1903\n\tSYS___MSGSND_A                      = 0x770 // 1904\n\tSYS___MSGXRCV_A                     = 0x771 // 1905\n\tSYS___NFTW_A                        = 0x772 // 1906\n\tSYS_____PASSWD_A                    = 0x773 // 1907\n\tSYS___PTHREAD_SECURITY_NP_A         = 0x774 // 1908\n\tSYS___QUERYMETRICS_A                = 0x775 // 1909\n\tSYS___QUERYSCHENV                   = 0x776 // 1910\n\tSYS___READV_A                       = 0x777 // 1911\n\tSYS_____SERVER_CLASSIFY_A           = 0x778 // 1912\n\tSYS_____SERVER_INIT_A               = 0x779 // 1913\n\tSYS_____SERVER_PWU_A                = 0x77A // 1914\n\tSYS___STRCASECMP_A                  = 0x77B // 1915\n\tSYS___STRNCASECMP_A                 = 0x77C // 1916\n\tSYS___TTYNAME_A                     = 0x77D // 1917\n\tSYS___UNAME_A                       = 0x77E // 1918\n\tSYS___UTIMES_A                      = 0x77F // 1919\n\tSYS___W_GETPSENT_A                  = 0x780 // 1920\n\tSYS___WRITEV_A                      = 0x781 // 1921\n\tSYS___W_STATFS_A                    = 0x782 // 1922\n\tSYS___W_STATVFS_A                   = 0x783 // 1923\n\tSYS___FPUTC_A                       = 0x784 // 1924\n\tSYS___PUTCHAR_A                     = 0x785 // 1925\n\tSYS___PUTS_A                        = 0x786 // 1926\n\tSYS___FGETS_A                       = 0x787 // 1927\n\tSYS___GETS_A                        = 0x788 // 1928\n\tSYS___FPUTS_A                       = 0x789 // 1929\n\tSYS___FREAD_A                       = 0x78A // 1930\n\tSYS___FWRITE_A                      = 0x78B // 1931\n\tSYS___OPEN_O_A                      = 0x78C // 1932\n\tSYS___ISASCII                       = 0x78D // 1933\n\tSYS___CREAT_O_A                     = 0x78E // 1934\n\tSYS___ENVNA                         = 0x78F // 1935\n\tSYS___PUTC_A                        = 0x790 // 1936\n\tSYS___AE_THREAD_SETMODE             = 0x791 // 1937\n\tSYS___AE_THREAD_SWAPMODE            = 0x792 // 1938\n\tSYS___GETNETBYADDR_A                = 0x793 // 1939\n\tSYS___GETNETBYNAME_A                = 0x794 // 1940\n\tSYS___GETNETENT_A                   = 0x795 // 1941\n\tSYS___GETPROTOBYNAME_A              = 0x796 // 1942\n\tSYS___GETPROTOBYNUMBER_A            = 0x797 // 1943\n\tSYS___GETPROTOENT_A                 = 0x798 // 1944\n\tSYS___GETSERVBYNAME_A               = 0x799 // 1945\n\tSYS___GETSERVBYPORT_A               = 0x79A // 1946\n\tSYS___GETSERVENT_A                  = 0x79B // 1947\n\tSYS___ASCTIME_A                     = 0x79C // 1948\n\tSYS___CTIME_A                       = 0x79D // 1949\n\tSYS___GETDATE_A                     = 0x79E // 1950\n\tSYS___TZSET_A                       = 0x79F // 1951\n\tSYS___UTIME_A                       = 0x7A0 // 1952\n\tSYS___ASCTIME_R_A                   = 0x7A1 // 1953\n\tSYS___CTIME_R_A                     = 0x7A2 // 1954\n\tSYS___STRTOLL_A                     = 0x7A3 // 1955\n\tSYS___STRTOULL_A                    = 0x7A4 // 1956\n\tSYS___FPUTWC_A                      = 0x7A5 // 1957\n\tSYS___PUTWC_A                       = 0x7A6 // 1958\n\tSYS___PUTWCHAR_A                    = 0x7A7 // 1959\n\tSYS___FPUTWS_A                      = 0x7A8 // 1960\n\tSYS___UNGETWC_A                     = 0x7A9 // 1961\n\tSYS___FGETWC_A                      = 0x7AA // 1962\n\tSYS___GETWC_A                       = 0x7AB // 1963\n\tSYS___GETWCHAR_A                    = 0x7AC // 1964\n\tSYS___FGETWS_A                      = 0x7AD // 1965\n\tSYS___GETTIMEOFDAY_A                = 0x7AE // 1966\n\tSYS___GMTIME_A                      = 0x7AF // 1967\n\tSYS___GMTIME_R_A                    = 0x7B0 // 1968\n\tSYS___LOCALTIME_A                   = 0x7B1 // 1969\n\tSYS___LOCALTIME_R_A                 = 0x7B2 // 1970\n\tSYS___MKTIME_A                      = 0x7B3 // 1971\n\tSYS___TZZNA                         = 0x7B4 // 1972\n\tSYS_UNATEXIT                        = 0x7B5 // 1973\n\tSYS___CEE3DMP_A                     = 0x7B6 // 1974\n\tSYS___CDUMP_A                       = 0x7B7 // 1975\n\tSYS___CSNAP_A                       = 0x7B8 // 1976\n\tSYS___CTEST_A                       = 0x7B9 // 1977\n\tSYS___CTRACE_A                      = 0x7BA // 1978\n\tSYS___VSWPRNTF2_A                   = 0x7BB // 1979\n\tSYS___INET_PTON_A                   = 0x7BC // 1980\n\tSYS___SYSLOG_A                      = 0x7BD // 1981\n\tSYS___CRYPT_A                       = 0x7BE // 1982\n\tSYS_____OPENDIR2_A                  = 0x7BF // 1983\n\tSYS_____READDIR2_A                  = 0x7C0 // 1984\n\tSYS___OPENDIR_A                     = 0x7C2 // 1986\n\tSYS___READDIR_A                     = 0x7C3 // 1987\n\tSYS_PREAD                           = 0x7C7 // 1991\n\tSYS_PWRITE                          = 0x7C8 // 1992\n\tSYS_M_CREATE_LAYOUT                 = 0x7C9 // 1993\n\tSYS_M_DESTROY_LAYOUT                = 0x7CA // 1994\n\tSYS_M_GETVALUES_LAYOUT              = 0x7CB // 1995\n\tSYS_M_SETVALUES_LAYOUT              = 0x7CC // 1996\n\tSYS_M_TRANSFORM_LAYOUT              = 0x7CD // 1997\n\tSYS_M_WTRANSFORM_LAYOUT             = 0x7CE // 1998\n\tSYS_FWPRINTF                        = 0x7D1 // 2001\n\tSYS_WPRINTF                         = 0x7D2 // 2002\n\tSYS_VFWPRINT                        = 0x7D3 // 2003\n\tSYS_VFWPRINTF                       = 0x7D3 // 2003\n\tSYS_VWPRINTF                        = 0x7D4 // 2004\n\tSYS_FWSCANF                         = 0x7D5 // 2005\n\tSYS_WSCANF                          = 0x7D6 // 2006\n\tSYS_WCTRANS                         = 0x7D7 // 2007\n\tSYS_TOWCTRAN                        = 0x7D8 // 2008\n\tSYS_TOWCTRANS                       = 0x7D8 // 2008\n\tSYS___WCSTOD_A                      = 0x7D9 // 2009\n\tSYS___WCSTOL_A                      = 0x7DA // 2010\n\tSYS___WCSTOUL_A                     = 0x7DB // 2011\n\tSYS___BASENAME_A                    = 0x7DC // 2012\n\tSYS___DIRNAME_A                     = 0x7DD // 2013\n\tSYS___GLOB_A                        = 0x7DE // 2014\n\tSYS_FWIDE                           = 0x7DF // 2015\n\tSYS___OSNAME                        = 0x7E0 // 2016\n\tSYS_____OSNAME_A                    = 0x7E1 // 2017\n\tSYS___BTOWC_A                       = 0x7E4 // 2020\n\tSYS___WCTOB_A                       = 0x7E5 // 2021\n\tSYS___DBM_OPEN_A                    = 0x7E6 // 2022\n\tSYS___VFPRINTF2_A                   = 0x7E7 // 2023\n\tSYS___VPRINTF2_A                    = 0x7E8 // 2024\n\tSYS___VSPRINTF2_A                   = 0x7E9 // 2025\n\tSYS___CEIL_H                        = 0x7EA // 2026\n\tSYS___FLOOR_H                       = 0x7EB // 2027\n\tSYS___MODF_H                        = 0x7EC // 2028\n\tSYS___FABS_H                        = 0x7ED // 2029\n\tSYS___J0_H                          = 0x7EE // 2030\n\tSYS___J1_H                          = 0x7EF // 2031\n\tSYS___JN_H                          = 0x7F0 // 2032\n\tSYS___Y0_H                          = 0x7F1 // 2033\n\tSYS___Y1_H                          = 0x7F2 // 2034\n\tSYS___YN_H                          = 0x7F3 // 2035\n\tSYS___CEILF_H                       = 0x7F4 // 2036\n\tSYS___CEILL_H                       = 0x7F5 // 2037\n\tSYS___FLOORF_H                      = 0x7F6 // 2038\n\tSYS___FLOORL_H                      = 0x7F7 // 2039\n\tSYS___MODFF_H                       = 0x7F8 // 2040\n\tSYS___MODFL_H                       = 0x7F9 // 2041\n\tSYS___FABSF_H                       = 0x7FA // 2042\n\tSYS___FABSL_H                       = 0x7FB // 2043\n\tSYS___MALLOC24                      = 0x7FC // 2044\n\tSYS___MALLOC31                      = 0x7FD // 2045\n\tSYS_ACL_INIT                        = 0x7FE // 2046\n\tSYS_ACL_FREE                        = 0x7FF // 2047\n\tSYS_ACL_FIRST_ENTRY                 = 0x800 // 2048\n\tSYS_ACL_GET_ENTRY                   = 0x801 // 2049\n\tSYS_ACL_VALID                       = 0x802 // 2050\n\tSYS_ACL_CREATE_ENTRY                = 0x803 // 2051\n\tSYS_ACL_DELETE_ENTRY                = 0x804 // 2052\n\tSYS_ACL_UPDATE_ENTRY                = 0x805 // 2053\n\tSYS_ACL_DELETE_FD                   = 0x806 // 2054\n\tSYS_ACL_DELETE_FILE                 = 0x807 // 2055\n\tSYS_ACL_GET_FD                      = 0x808 // 2056\n\tSYS_ACL_GET_FILE                    = 0x809 // 2057\n\tSYS_ACL_SET_FD                      = 0x80A // 2058\n\tSYS_ACL_SET_FILE                    = 0x80B // 2059\n\tSYS_ACL_FROM_TEXT                   = 0x80C // 2060\n\tSYS_ACL_TO_TEXT                     = 0x80D // 2061\n\tSYS_ACL_SORT                        = 0x80E // 2062\n\tSYS___SHUTDOWN_REGISTRATION         = 0x80F // 2063\n\tSYS___ERFL_B                        = 0x810 // 2064\n\tSYS___ERFCL_B                       = 0x811 // 2065\n\tSYS___LGAMMAL_B                     = 0x812 // 2066\n\tSYS___SETHOOKEVENTS                 = 0x813 // 2067\n\tSYS_IF_NAMETOINDEX                  = 0x814 // 2068\n\tSYS_IF_INDEXTONAME                  = 0x815 // 2069\n\tSYS_IF_NAMEINDEX                    = 0x816 // 2070\n\tSYS_IF_FREENAMEINDEX                = 0x817 // 2071\n\tSYS_GETADDRINFO                     = 0x818 // 2072\n\tSYS_GETNAMEINFO                     = 0x819 // 2073\n\tSYS_FREEADDRINFO                    = 0x81A // 2074\n\tSYS_GAI_STRERROR                    = 0x81B // 2075\n\tSYS_REXEC_AF                        = 0x81C // 2076\n\tSYS___POE                           = 0x81D // 2077\n\tSYS___DYNALLOC_A                    = 0x81F // 2079\n\tSYS___DYNFREE_A                     = 0x820 // 2080\n\tSYS___RES_QUERY_A                   = 0x821 // 2081\n\tSYS___RES_SEARCH_A                  = 0x822 // 2082\n\tSYS___RES_QUERYDOMAIN_A             = 0x823 // 2083\n\tSYS___RES_MKQUERY_A                 = 0x824 // 2084\n\tSYS___RES_SEND_A                    = 0x825 // 2085\n\tSYS___DN_EXPAND_A                   = 0x826 // 2086\n\tSYS___DN_SKIPNAME_A                 = 0x827 // 2087\n\tSYS___DN_COMP_A                     = 0x828 // 2088\n\tSYS___DN_FIND_A                     = 0x829 // 2089\n\tSYS___NLIST_A                       = 0x82A // 2090\n\tSYS_____TCGETCP_A                   = 0x82B // 2091\n\tSYS_____TCSETCP_A                   = 0x82C // 2092\n\tSYS_____W_PIOCTL_A                  = 0x82E // 2094\n\tSYS___INET_ADDR_A                   = 0x82F // 2095\n\tSYS___INET_NTOA_A                   = 0x830 // 2096\n\tSYS___INET_NETWORK_A                = 0x831 // 2097\n\tSYS___ACCEPT_A                      = 0x832 // 2098\n\tSYS___ACCEPT_AND_RECV_A             = 0x833 // 2099\n\tSYS___BIND_A                        = 0x834 // 2100\n\tSYS___CONNECT_A                     = 0x835 // 2101\n\tSYS___GETPEERNAME_A                 = 0x836 // 2102\n\tSYS___GETSOCKNAME_A                 = 0x837 // 2103\n\tSYS___RECVFROM_A                    = 0x838 // 2104\n\tSYS___SENDTO_A                      = 0x839 // 2105\n\tSYS___SENDMSG_A                     = 0x83A // 2106\n\tSYS___RECVMSG_A                     = 0x83B // 2107\n\tSYS_____LCHATTR_A                   = 0x83C // 2108\n\tSYS___CABEND                        = 0x83D // 2109\n\tSYS___LE_CIB_GET                    = 0x83E // 2110\n\tSYS___SET_LAA_FOR_JIT               = 0x83F // 2111\n\tSYS___LCHATTR                       = 0x840 // 2112\n\tSYS___WRITEDOWN                     = 0x841 // 2113\n\tSYS_PTHREAD_MUTEX_INIT2             = 0x842 // 2114\n\tSYS___ACOSHF_B                      = 0x843 // 2115\n\tSYS___ACOSHL_B                      = 0x844 // 2116\n\tSYS___ASINHF_B                      = 0x845 // 2117\n\tSYS___ASINHL_B                      = 0x846 // 2118\n\tSYS___ATANHF_B                      = 0x847 // 2119\n\tSYS___ATANHL_B                      = 0x848 // 2120\n\tSYS___CBRTF_B                       = 0x849 // 2121\n\tSYS___CBRTL_B                       = 0x84A // 2122\n\tSYS___COPYSIGNF_B                   = 0x84B // 2123\n\tSYS___COPYSIGNL_B                   = 0x84C // 2124\n\tSYS___COTANF_B                      = 0x84D // 2125\n\tSYS___COTAN_B                       = 0x84E // 2126\n\tSYS___COTANL_B                      = 0x84F // 2127\n\tSYS___EXP2F_B                       = 0x850 // 2128\n\tSYS___EXP2L_B                       = 0x851 // 2129\n\tSYS___EXPM1F_B                      = 0x852 // 2130\n\tSYS___EXPM1L_B                      = 0x853 // 2131\n\tSYS___FDIMF_B                       = 0x854 // 2132\n\tSYS___FDIM_B                        = 0x855 // 2133\n\tSYS___FDIML_B                       = 0x856 // 2134\n\tSYS___HYPOTF_B                      = 0x857 // 2135\n\tSYS___HYPOTL_B                      = 0x858 // 2136\n\tSYS___LOG1PF_B                      = 0x859 // 2137\n\tSYS___LOG1PL_B                      = 0x85A // 2138\n\tSYS___LOG2F_B                       = 0x85B // 2139\n\tSYS___LOG2_B                        = 0x85C // 2140\n\tSYS___LOG2L_B                       = 0x85D // 2141\n\tSYS___REMAINDERF_B                  = 0x85E // 2142\n\tSYS___REMAINDERL_B                  = 0x85F // 2143\n\tSYS___REMQUOF_B                     = 0x860 // 2144\n\tSYS___REMQUO_B                      = 0x861 // 2145\n\tSYS___REMQUOL_B                     = 0x862 // 2146\n\tSYS___TGAMMAF_B                     = 0x863 // 2147\n\tSYS___TGAMMA_B                      = 0x864 // 2148\n\tSYS___TGAMMAL_B                     = 0x865 // 2149\n\tSYS___TRUNCF_B                      = 0x866 // 2150\n\tSYS___TRUNC_B                       = 0x867 // 2151\n\tSYS___TRUNCL_B                      = 0x868 // 2152\n\tSYS___LGAMMAF_B                     = 0x869 // 2153\n\tSYS___LROUNDF_B                     = 0x86A // 2154\n\tSYS___LROUND_B                      = 0x86B // 2155\n\tSYS___ERFF_B                        = 0x86C // 2156\n\tSYS___ERFCF_B                       = 0x86D // 2157\n\tSYS_ACOSHF                          = 0x86E // 2158\n\tSYS_ACOSHL                          = 0x86F // 2159\n\tSYS_ASINHF                          = 0x870 // 2160\n\tSYS_ASINHL                          = 0x871 // 2161\n\tSYS_ATANHF                          = 0x872 // 2162\n\tSYS_ATANHL                          = 0x873 // 2163\n\tSYS_CBRTF                           = 0x874 // 2164\n\tSYS_CBRTL                           = 0x875 // 2165\n\tSYS_COPYSIGNF                       = 0x876 // 2166\n\tSYS_CPYSIGNF                        = 0x876 // 2166\n\tSYS_COPYSIGNL                       = 0x877 // 2167\n\tSYS_CPYSIGNL                        = 0x877 // 2167\n\tSYS_COTANF                          = 0x878 // 2168\n\tSYS___COTANF                        = 0x878 // 2168\n\tSYS_COTAN                           = 0x879 // 2169\n\tSYS___COTAN                         = 0x879 // 2169\n\tSYS_COTANL                          = 0x87A // 2170\n\tSYS___COTANL                        = 0x87A // 2170\n\tSYS_EXP2F                           = 0x87B // 2171\n\tSYS_EXP2L                           = 0x87C // 2172\n\tSYS_EXPM1F                          = 0x87D // 2173\n\tSYS_EXPM1L                          = 0x87E // 2174\n\tSYS_FDIMF                           = 0x87F // 2175\n\tSYS_FDIM                            = 0x881 // 2177\n\tSYS_FDIML                           = 0x882 // 2178\n\tSYS_HYPOTF                          = 0x883 // 2179\n\tSYS_HYPOTL                          = 0x884 // 2180\n\tSYS_LOG1PF                          = 0x885 // 2181\n\tSYS_LOG1PL                          = 0x886 // 2182\n\tSYS_LOG2F                           = 0x887 // 2183\n\tSYS_LOG2                            = 0x888 // 2184\n\tSYS_LOG2L                           = 0x889 // 2185\n\tSYS_REMAINDERF                      = 0x88A // 2186\n\tSYS_REMAINDF                        = 0x88A // 2186\n\tSYS_REMAINDERL                      = 0x88B // 2187\n\tSYS_REMAINDL                        = 0x88B // 2187\n\tSYS_REMQUOF                         = 0x88C // 2188\n\tSYS_REMQUO                          = 0x88D // 2189\n\tSYS_REMQUOL                         = 0x88E // 2190\n\tSYS_TGAMMAF                         = 0x88F // 2191\n\tSYS_TGAMMA                          = 0x890 // 2192\n\tSYS_TGAMMAL                         = 0x891 // 2193\n\tSYS_TRUNCF                          = 0x892 // 2194\n\tSYS_TRUNC                           = 0x893 // 2195\n\tSYS_TRUNCL                          = 0x894 // 2196\n\tSYS_LGAMMAF                         = 0x895 // 2197\n\tSYS_LGAMMAL                         = 0x896 // 2198\n\tSYS_LROUNDF                         = 0x897 // 2199\n\tSYS_LROUND                          = 0x898 // 2200\n\tSYS_ERFF                            = 0x899 // 2201\n\tSYS_ERFL                            = 0x89A // 2202\n\tSYS_ERFCF                           = 0x89B // 2203\n\tSYS_ERFCL                           = 0x89C // 2204\n\tSYS___EXP2_B                        = 0x89D // 2205\n\tSYS_EXP2                            = 0x89E // 2206\n\tSYS___FAR_JUMP                      = 0x89F // 2207\n\tSYS___TCGETATTR_A                   = 0x8A1 // 2209\n\tSYS___TCSETATTR_A                   = 0x8A2 // 2210\n\tSYS___SUPERKILL                     = 0x8A4 // 2212\n\tSYS___LE_CONDITION_TOKEN_BUILD      = 0x8A5 // 2213\n\tSYS___LE_MSG_ADD_INSERT             = 0x8A6 // 2214\n\tSYS___LE_MSG_GET                    = 0x8A7 // 2215\n\tSYS___LE_MSG_GET_AND_WRITE          = 0x8A8 // 2216\n\tSYS___LE_MSG_WRITE                  = 0x8A9 // 2217\n\tSYS___ITOA                          = 0x8AA // 2218\n\tSYS___UTOA                          = 0x8AB // 2219\n\tSYS___LTOA                          = 0x8AC // 2220\n\tSYS___ULTOA                         = 0x8AD // 2221\n\tSYS___LLTOA                         = 0x8AE // 2222\n\tSYS___ULLTOA                        = 0x8AF // 2223\n\tSYS___ITOA_A                        = 0x8B0 // 2224\n\tSYS___UTOA_A                        = 0x8B1 // 2225\n\tSYS___LTOA_A                        = 0x8B2 // 2226\n\tSYS___ULTOA_A                       = 0x8B3 // 2227\n\tSYS___LLTOA_A                       = 0x8B4 // 2228\n\tSYS___ULLTOA_A                      = 0x8B5 // 2229\n\tSYS_____GETENV_A                    = 0x8C3 // 2243\n\tSYS___REXEC_A                       = 0x8C4 // 2244\n\tSYS___REXEC_AF_A                    = 0x8C5 // 2245\n\tSYS___GETUTXENT_A                   = 0x8C6 // 2246\n\tSYS___GETUTXID_A                    = 0x8C7 // 2247\n\tSYS___GETUTXLINE_A                  = 0x8C8 // 2248\n\tSYS___PUTUTXLINE_A                  = 0x8C9 // 2249\n\tSYS_____UTMPXNAME_A                 = 0x8CA // 2250\n\tSYS___PUTC_UNLOCKED_A               = 0x8CB // 2251\n\tSYS___PUTCHAR_UNLOCKED_A            = 0x8CC // 2252\n\tSYS___SNPRINTF_A                    = 0x8CD // 2253\n\tSYS___VSNPRINTF_A                   = 0x8CE // 2254\n\tSYS___DLOPEN_A                      = 0x8D0 // 2256\n\tSYS___DLSYM_A                       = 0x8D1 // 2257\n\tSYS___DLERROR_A                     = 0x8D2 // 2258\n\tSYS_FLOCKFILE                       = 0x8D3 // 2259\n\tSYS_FTRYLOCKFILE                    = 0x8D4 // 2260\n\tSYS_FUNLOCKFILE                     = 0x8D5 // 2261\n\tSYS_GETC_UNLOCKED                   = 0x8D6 // 2262\n\tSYS_GETCHAR_UNLOCKED                = 0x8D7 // 2263\n\tSYS_PUTC_UNLOCKED                   = 0x8D8 // 2264\n\tSYS_PUTCHAR_UNLOCKED                = 0x8D9 // 2265\n\tSYS_SNPRINTF                        = 0x8DA // 2266\n\tSYS_VSNPRINTF                       = 0x8DB // 2267\n\tSYS_DLOPEN                          = 0x8DD // 2269\n\tSYS_DLSYM                           = 0x8DE // 2270\n\tSYS_DLCLOSE                         = 0x8DF // 2271\n\tSYS_DLERROR                         = 0x8E0 // 2272\n\tSYS___SET_EXCEPTION_HANDLER         = 0x8E2 // 2274\n\tSYS___RESET_EXCEPTION_HANDLER       = 0x8E3 // 2275\n\tSYS___VHM_EVENT                     = 0x8E4 // 2276\n\tSYS___ABS_H                         = 0x8E6 // 2278\n\tSYS___ABSF_H                        = 0x8E7 // 2279\n\tSYS___ABSL_H                        = 0x8E8 // 2280\n\tSYS___ACOS_H                        = 0x8E9 // 2281\n\tSYS___ACOSF_H                       = 0x8EA // 2282\n\tSYS___ACOSL_H                       = 0x8EB // 2283\n\tSYS___ACOSH_H                       = 0x8EC // 2284\n\tSYS___ASIN_H                        = 0x8ED // 2285\n\tSYS___ASINF_H                       = 0x8EE // 2286\n\tSYS___ASINL_H                       = 0x8EF // 2287\n\tSYS___ASINH_H                       = 0x8F0 // 2288\n\tSYS___ATAN_H                        = 0x8F1 // 2289\n\tSYS___ATANF_H                       = 0x8F2 // 2290\n\tSYS___ATANL_H                       = 0x8F3 // 2291\n\tSYS___ATANH_H                       = 0x8F4 // 2292\n\tSYS___ATANHF_H                      = 0x8F5 // 2293\n\tSYS___ATANHL_H                      = 0x8F6 // 2294\n\tSYS___ATAN2_H                       = 0x8F7 // 2295\n\tSYS___ATAN2F_H                      = 0x8F8 // 2296\n\tSYS___ATAN2L_H                      = 0x8F9 // 2297\n\tSYS___CBRT_H                        = 0x8FA // 2298\n\tSYS___COPYSIGNF_H                   = 0x8FB // 2299\n\tSYS___COPYSIGNL_H                   = 0x8FC // 2300\n\tSYS___COS_H                         = 0x8FD // 2301\n\tSYS___COSF_H                        = 0x8FE // 2302\n\tSYS___COSL_H                        = 0x8FF // 2303\n\tSYS___COSHF_H                       = 0x900 // 2304\n\tSYS___COSHL_H                       = 0x901 // 2305\n\tSYS___COTAN_H                       = 0x902 // 2306\n\tSYS___COTANF_H                      = 0x903 // 2307\n\tSYS___COTANL_H                      = 0x904 // 2308\n\tSYS___ERF_H                         = 0x905 // 2309\n\tSYS___ERFF_H                        = 0x906 // 2310\n\tSYS___ERFL_H                        = 0x907 // 2311\n\tSYS___ERFC_H                        = 0x908 // 2312\n\tSYS___ERFCF_H                       = 0x909 // 2313\n\tSYS___ERFCL_H                       = 0x90A // 2314\n\tSYS___EXP_H                         = 0x90B // 2315\n\tSYS___EXPF_H                        = 0x90C // 2316\n\tSYS___EXPL_H                        = 0x90D // 2317\n\tSYS___EXPM1_H                       = 0x90E // 2318\n\tSYS___FDIM_H                        = 0x90F // 2319\n\tSYS___FDIMF_H                       = 0x910 // 2320\n\tSYS___FDIML_H                       = 0x911 // 2321\n\tSYS___FMOD_H                        = 0x912 // 2322\n\tSYS___FMODF_H                       = 0x913 // 2323\n\tSYS___FMODL_H                       = 0x914 // 2324\n\tSYS___GAMMA_H                       = 0x915 // 2325\n\tSYS___HYPOT_H                       = 0x916 // 2326\n\tSYS___ILOGB_H                       = 0x917 // 2327\n\tSYS___LGAMMA_H                      = 0x918 // 2328\n\tSYS___LGAMMAF_H                     = 0x919 // 2329\n\tSYS___LOG_H                         = 0x91A // 2330\n\tSYS___LOGF_H                        = 0x91B // 2331\n\tSYS___LOGL_H                        = 0x91C // 2332\n\tSYS___LOGB_H                        = 0x91D // 2333\n\tSYS___LOG2_H                        = 0x91E // 2334\n\tSYS___LOG2F_H                       = 0x91F // 2335\n\tSYS___LOG2L_H                       = 0x920 // 2336\n\tSYS___LOG1P_H                       = 0x921 // 2337\n\tSYS___LOG10_H                       = 0x922 // 2338\n\tSYS___LOG10F_H                      = 0x923 // 2339\n\tSYS___LOG10L_H                      = 0x924 // 2340\n\tSYS___LROUND_H                      = 0x925 // 2341\n\tSYS___LROUNDF_H                     = 0x926 // 2342\n\tSYS___NEXTAFTER_H                   = 0x927 // 2343\n\tSYS___POW_H                         = 0x928 // 2344\n\tSYS___POWF_H                        = 0x929 // 2345\n\tSYS___POWL_H                        = 0x92A // 2346\n\tSYS___REMAINDER_H                   = 0x92B // 2347\n\tSYS___RINT_H                        = 0x92C // 2348\n\tSYS___SCALB_H                       = 0x92D // 2349\n\tSYS___SIN_H                         = 0x92E // 2350\n\tSYS___SINF_H                        = 0x92F // 2351\n\tSYS___SINL_H                        = 0x930 // 2352\n\tSYS___SINH_H                        = 0x931 // 2353\n\tSYS___SINHF_H                       = 0x932 // 2354\n\tSYS___SINHL_H                       = 0x933 // 2355\n\tSYS___SQRT_H                        = 0x934 // 2356\n\tSYS___SQRTF_H                       = 0x935 // 2357\n\tSYS___SQRTL_H                       = 0x936 // 2358\n\tSYS___TAN_H                         = 0x937 // 2359\n\tSYS___TANF_H                        = 0x938 // 2360\n\tSYS___TANL_H                        = 0x939 // 2361\n\tSYS___TANH_H                        = 0x93A // 2362\n\tSYS___TANHF_H                       = 0x93B // 2363\n\tSYS___TANHL_H                       = 0x93C // 2364\n\tSYS___TGAMMA_H                      = 0x93D // 2365\n\tSYS___TGAMMAF_H                     = 0x93E // 2366\n\tSYS___TRUNC_H                       = 0x93F // 2367\n\tSYS___TRUNCF_H                      = 0x940 // 2368\n\tSYS___TRUNCL_H                      = 0x941 // 2369\n\tSYS___COSH_H                        = 0x942 // 2370\n\tSYS___LE_DEBUG_SET_RESUME_MCH       = 0x943 // 2371\n\tSYS_VFSCANF                         = 0x944 // 2372\n\tSYS_VSCANF                          = 0x946 // 2374\n\tSYS_VSSCANF                         = 0x948 // 2376\n\tSYS_VFWSCANF                        = 0x94A // 2378\n\tSYS_VWSCANF                         = 0x94C // 2380\n\tSYS_VSWSCANF                        = 0x94E // 2382\n\tSYS_IMAXABS                         = 0x950 // 2384\n\tSYS_IMAXDIV                         = 0x951 // 2385\n\tSYS_STRTOIMAX                       = 0x952 // 2386\n\tSYS_STRTOUMAX                       = 0x953 // 2387\n\tSYS_WCSTOIMAX                       = 0x954 // 2388\n\tSYS_WCSTOUMAX                       = 0x955 // 2389\n\tSYS_ATOLL                           = 0x956 // 2390\n\tSYS_STRTOF                          = 0x957 // 2391\n\tSYS_STRTOLD                         = 0x958 // 2392\n\tSYS_WCSTOF                          = 0x959 // 2393\n\tSYS_WCSTOLD                         = 0x95A // 2394\n\tSYS_INET6_RTH_SPACE                 = 0x95B // 2395\n\tSYS_INET6_RTH_INIT                  = 0x95C // 2396\n\tSYS_INET6_RTH_ADD                   = 0x95D // 2397\n\tSYS_INET6_RTH_REVERSE               = 0x95E // 2398\n\tSYS_INET6_RTH_SEGMENTS              = 0x95F // 2399\n\tSYS_INET6_RTH_GETADDR               = 0x960 // 2400\n\tSYS_INET6_OPT_INIT                  = 0x961 // 2401\n\tSYS_INET6_OPT_APPEND                = 0x962 // 2402\n\tSYS_INET6_OPT_FINISH                = 0x963 // 2403\n\tSYS_INET6_OPT_SET_VAL               = 0x964 // 2404\n\tSYS_INET6_OPT_NEXT                  = 0x965 // 2405\n\tSYS_INET6_OPT_FIND                  = 0x966 // 2406\n\tSYS_INET6_OPT_GET_VAL               = 0x967 // 2407\n\tSYS___POW_I                         = 0x987 // 2439\n\tSYS___POW_I_B                       = 0x988 // 2440\n\tSYS___POW_I_H                       = 0x989 // 2441\n\tSYS___POW_II                        = 0x98A // 2442\n\tSYS___POW_II_B                      = 0x98B // 2443\n\tSYS___POW_II_H                      = 0x98C // 2444\n\tSYS_CABS                            = 0x98E // 2446\n\tSYS___CABS_B                        = 0x98F // 2447\n\tSYS___CABS_H                        = 0x990 // 2448\n\tSYS_CABSF                           = 0x991 // 2449\n\tSYS___CABSF_B                       = 0x992 // 2450\n\tSYS___CABSF_H                       = 0x993 // 2451\n\tSYS_CABSL                           = 0x994 // 2452\n\tSYS___CABSL_B                       = 0x995 // 2453\n\tSYS___CABSL_H                       = 0x996 // 2454\n\tSYS_CACOS                           = 0x997 // 2455\n\tSYS___CACOS_B                       = 0x998 // 2456\n\tSYS___CACOS_H                       = 0x999 // 2457\n\tSYS_CACOSF                          = 0x99A // 2458\n\tSYS___CACOSF_B                      = 0x99B // 2459\n\tSYS___CACOSF_H                      = 0x99C // 2460\n\tSYS_CACOSL                          = 0x99D // 2461\n\tSYS___CACOSL_B                      = 0x99E // 2462\n\tSYS___CACOSL_H                      = 0x99F // 2463\n\tSYS_CACOSH                          = 0x9A0 // 2464\n\tSYS___CACOSH_B                      = 0x9A1 // 2465\n\tSYS___CACOSH_H                      = 0x9A2 // 2466\n\tSYS_CACOSHF                         = 0x9A3 // 2467\n\tSYS___CACOSHF_B                     = 0x9A4 // 2468\n\tSYS___CACOSHF_H                     = 0x9A5 // 2469\n\tSYS_CACOSHL                         = 0x9A6 // 2470\n\tSYS___CACOSHL_B                     = 0x9A7 // 2471\n\tSYS___CACOSHL_H                     = 0x9A8 // 2472\n\tSYS_CARG                            = 0x9A9 // 2473\n\tSYS___CARG_B                        = 0x9AA // 2474\n\tSYS___CARG_H                        = 0x9AB // 2475\n\tSYS_CARGF                           = 0x9AC // 2476\n\tSYS___CARGF_B                       = 0x9AD // 2477\n\tSYS___CARGF_H                       = 0x9AE // 2478\n\tSYS_CARGL                           = 0x9AF // 2479\n\tSYS___CARGL_B                       = 0x9B0 // 2480\n\tSYS___CARGL_H                       = 0x9B1 // 2481\n\tSYS_CASIN                           = 0x9B2 // 2482\n\tSYS___CASIN_B                       = 0x9B3 // 2483\n\tSYS___CASIN_H                       = 0x9B4 // 2484\n\tSYS_CASINF                          = 0x9B5 // 2485\n\tSYS___CASINF_B                      = 0x9B6 // 2486\n\tSYS___CASINF_H                      = 0x9B7 // 2487\n\tSYS_CASINL                          = 0x9B8 // 2488\n\tSYS___CASINL_B                      = 0x9B9 // 2489\n\tSYS___CASINL_H                      = 0x9BA // 2490\n\tSYS_CASINH                          = 0x9BB // 2491\n\tSYS___CASINH_B                      = 0x9BC // 2492\n\tSYS___CASINH_H                      = 0x9BD // 2493\n\tSYS_CASINHF                         = 0x9BE // 2494\n\tSYS___CASINHF_B                     = 0x9BF // 2495\n\tSYS___CASINHF_H                     = 0x9C0 // 2496\n\tSYS_CASINHL                         = 0x9C1 // 2497\n\tSYS___CASINHL_B                     = 0x9C2 // 2498\n\tSYS___CASINHL_H                     = 0x9C3 // 2499\n\tSYS_CATAN                           = 0x9C4 // 2500\n\tSYS___CATAN_B                       = 0x9C5 // 2501\n\tSYS___CATAN_H                       = 0x9C6 // 2502\n\tSYS_CATANF                          = 0x9C7 // 2503\n\tSYS___CATANF_B                      = 0x9C8 // 2504\n\tSYS___CATANF_H                      = 0x9C9 // 2505\n\tSYS_CATANL                          = 0x9CA // 2506\n\tSYS___CATANL_B                      = 0x9CB // 2507\n\tSYS___CATANL_H                      = 0x9CC // 2508\n\tSYS_CATANH                          = 0x9CD // 2509\n\tSYS___CATANH_B                      = 0x9CE // 2510\n\tSYS___CATANH_H                      = 0x9CF // 2511\n\tSYS_CATANHF                         = 0x9D0 // 2512\n\tSYS___CATANHF_B                     = 0x9D1 // 2513\n\tSYS___CATANHF_H                     = 0x9D2 // 2514\n\tSYS_CATANHL                         = 0x9D3 // 2515\n\tSYS___CATANHL_B                     = 0x9D4 // 2516\n\tSYS___CATANHL_H                     = 0x9D5 // 2517\n\tSYS_CCOS                            = 0x9D6 // 2518\n\tSYS___CCOS_B                        = 0x9D7 // 2519\n\tSYS___CCOS_H                        = 0x9D8 // 2520\n\tSYS_CCOSF                           = 0x9D9 // 2521\n\tSYS___CCOSF_B                       = 0x9DA // 2522\n\tSYS___CCOSF_H                       = 0x9DB // 2523\n\tSYS_CCOSL                           = 0x9DC // 2524\n\tSYS___CCOSL_B                       = 0x9DD // 2525\n\tSYS___CCOSL_H                       = 0x9DE // 2526\n\tSYS_CCOSH                           = 0x9DF // 2527\n\tSYS___CCOSH_B                       = 0x9E0 // 2528\n\tSYS___CCOSH_H                       = 0x9E1 // 2529\n\tSYS_CCOSHF                          = 0x9E2 // 2530\n\tSYS___CCOSHF_B                      = 0x9E3 // 2531\n\tSYS___CCOSHF_H                      = 0x9E4 // 2532\n\tSYS_CCOSHL                          = 0x9E5 // 2533\n\tSYS___CCOSHL_B                      = 0x9E6 // 2534\n\tSYS___CCOSHL_H                      = 0x9E7 // 2535\n\tSYS_CEXP                            = 0x9E8 // 2536\n\tSYS___CEXP_B                        = 0x9E9 // 2537\n\tSYS___CEXP_H                        = 0x9EA // 2538\n\tSYS_CEXPF                           = 0x9EB // 2539\n\tSYS___CEXPF_B                       = 0x9EC // 2540\n\tSYS___CEXPF_H                       = 0x9ED // 2541\n\tSYS_CEXPL                           = 0x9EE // 2542\n\tSYS___CEXPL_B                       = 0x9EF // 2543\n\tSYS___CEXPL_H                       = 0x9F0 // 2544\n\tSYS_CIMAG                           = 0x9F1 // 2545\n\tSYS___CIMAG_B                       = 0x9F2 // 2546\n\tSYS___CIMAG_H                       = 0x9F3 // 2547\n\tSYS_CIMAGF                          = 0x9F4 // 2548\n\tSYS___CIMAGF_B                      = 0x9F5 // 2549\n\tSYS___CIMAGF_H                      = 0x9F6 // 2550\n\tSYS_CIMAGL                          = 0x9F7 // 2551\n\tSYS___CIMAGL_B                      = 0x9F8 // 2552\n\tSYS___CIMAGL_H                      = 0x9F9 // 2553\n\tSYS___CLOG                          = 0x9FA // 2554\n\tSYS___CLOG_B                        = 0x9FB // 2555\n\tSYS___CLOG_H                        = 0x9FC // 2556\n\tSYS_CLOGF                           = 0x9FD // 2557\n\tSYS___CLOGF_B                       = 0x9FE // 2558\n\tSYS___CLOGF_H                       = 0x9FF // 2559\n\tSYS_CLOGL                           = 0xA00 // 2560\n\tSYS___CLOGL_B                       = 0xA01 // 2561\n\tSYS___CLOGL_H                       = 0xA02 // 2562\n\tSYS_CONJ                            = 0xA03 // 2563\n\tSYS___CONJ_B                        = 0xA04 // 2564\n\tSYS___CONJ_H                        = 0xA05 // 2565\n\tSYS_CONJF                           = 0xA06 // 2566\n\tSYS___CONJF_B                       = 0xA07 // 2567\n\tSYS___CONJF_H                       = 0xA08 // 2568\n\tSYS_CONJL                           = 0xA09 // 2569\n\tSYS___CONJL_B                       = 0xA0A // 2570\n\tSYS___CONJL_H                       = 0xA0B // 2571\n\tSYS_CPOW                            = 0xA0C // 2572\n\tSYS___CPOW_B                        = 0xA0D // 2573\n\tSYS___CPOW_H                        = 0xA0E // 2574\n\tSYS_CPOWF                           = 0xA0F // 2575\n\tSYS___CPOWF_B                       = 0xA10 // 2576\n\tSYS___CPOWF_H                       = 0xA11 // 2577\n\tSYS_CPOWL                           = 0xA12 // 2578\n\tSYS___CPOWL_B                       = 0xA13 // 2579\n\tSYS___CPOWL_H                       = 0xA14 // 2580\n\tSYS_CPROJ                           = 0xA15 // 2581\n\tSYS___CPROJ_B                       = 0xA16 // 2582\n\tSYS___CPROJ_H                       = 0xA17 // 2583\n\tSYS_CPROJF                          = 0xA18 // 2584\n\tSYS___CPROJF_B                      = 0xA19 // 2585\n\tSYS___CPROJF_H                      = 0xA1A // 2586\n\tSYS_CPROJL                          = 0xA1B // 2587\n\tSYS___CPROJL_B                      = 0xA1C // 2588\n\tSYS___CPROJL_H                      = 0xA1D // 2589\n\tSYS_CREAL                           = 0xA1E // 2590\n\tSYS___CREAL_B                       = 0xA1F // 2591\n\tSYS___CREAL_H                       = 0xA20 // 2592\n\tSYS_CREALF                          = 0xA21 // 2593\n\tSYS___CREALF_B                      = 0xA22 // 2594\n\tSYS___CREALF_H                      = 0xA23 // 2595\n\tSYS_CREALL                          = 0xA24 // 2596\n\tSYS___CREALL_B                      = 0xA25 // 2597\n\tSYS___CREALL_H                      = 0xA26 // 2598\n\tSYS_CSIN                            = 0xA27 // 2599\n\tSYS___CSIN_B                        = 0xA28 // 2600\n\tSYS___CSIN_H                        = 0xA29 // 2601\n\tSYS_CSINF                           = 0xA2A // 2602\n\tSYS___CSINF_B                       = 0xA2B // 2603\n\tSYS___CSINF_H                       = 0xA2C // 2604\n\tSYS_CSINL                           = 0xA2D // 2605\n\tSYS___CSINL_B                       = 0xA2E // 2606\n\tSYS___CSINL_H                       = 0xA2F // 2607\n\tSYS_CSINH                           = 0xA30 // 2608\n\tSYS___CSINH_B                       = 0xA31 // 2609\n\tSYS___CSINH_H                       = 0xA32 // 2610\n\tSYS_CSINHF                          = 0xA33 // 2611\n\tSYS___CSINHF_B                      = 0xA34 // 2612\n\tSYS___CSINHF_H                      = 0xA35 // 2613\n\tSYS_CSINHL                          = 0xA36 // 2614\n\tSYS___CSINHL_B                      = 0xA37 // 2615\n\tSYS___CSINHL_H                      = 0xA38 // 2616\n\tSYS_CSQRT                           = 0xA39 // 2617\n\tSYS___CSQRT_B                       = 0xA3A // 2618\n\tSYS___CSQRT_H                       = 0xA3B // 2619\n\tSYS_CSQRTF                          = 0xA3C // 2620\n\tSYS___CSQRTF_B                      = 0xA3D // 2621\n\tSYS___CSQRTF_H                      = 0xA3E // 2622\n\tSYS_CSQRTL                          = 0xA3F // 2623\n\tSYS___CSQRTL_B                      = 0xA40 // 2624\n\tSYS___CSQRTL_H                      = 0xA41 // 2625\n\tSYS_CTAN                            = 0xA42 // 2626\n\tSYS___CTAN_B                        = 0xA43 // 2627\n\tSYS___CTAN_H                        = 0xA44 // 2628\n\tSYS_CTANF                           = 0xA45 // 2629\n\tSYS___CTANF_B                       = 0xA46 // 2630\n\tSYS___CTANF_H                       = 0xA47 // 2631\n\tSYS_CTANL                           = 0xA48 // 2632\n\tSYS___CTANL_B                       = 0xA49 // 2633\n\tSYS___CTANL_H                       = 0xA4A // 2634\n\tSYS_CTANH                           = 0xA4B // 2635\n\tSYS___CTANH_B                       = 0xA4C // 2636\n\tSYS___CTANH_H                       = 0xA4D // 2637\n\tSYS_CTANHF                          = 0xA4E // 2638\n\tSYS___CTANHF_B                      = 0xA4F // 2639\n\tSYS___CTANHF_H                      = 0xA50 // 2640\n\tSYS_CTANHL                          = 0xA51 // 2641\n\tSYS___CTANHL_B                      = 0xA52 // 2642\n\tSYS___CTANHL_H                      = 0xA53 // 2643\n\tSYS___ACOSHF_H                      = 0xA54 // 2644\n\tSYS___ACOSHL_H                      = 0xA55 // 2645\n\tSYS___ASINHF_H                      = 0xA56 // 2646\n\tSYS___ASINHL_H                      = 0xA57 // 2647\n\tSYS___CBRTF_H                       = 0xA58 // 2648\n\tSYS___CBRTL_H                       = 0xA59 // 2649\n\tSYS___COPYSIGN_B                    = 0xA5A // 2650\n\tSYS___EXPM1F_H                      = 0xA5B // 2651\n\tSYS___EXPM1L_H                      = 0xA5C // 2652\n\tSYS___EXP2_H                        = 0xA5D // 2653\n\tSYS___EXP2F_H                       = 0xA5E // 2654\n\tSYS___EXP2L_H                       = 0xA5F // 2655\n\tSYS___LOG1PF_H                      = 0xA60 // 2656\n\tSYS___LOG1PL_H                      = 0xA61 // 2657\n\tSYS___LGAMMAL_H                     = 0xA62 // 2658\n\tSYS_FMA                             = 0xA63 // 2659\n\tSYS___FMA_B                         = 0xA64 // 2660\n\tSYS___FMA_H                         = 0xA65 // 2661\n\tSYS_FMAF                            = 0xA66 // 2662\n\tSYS___FMAF_B                        = 0xA67 // 2663\n\tSYS___FMAF_H                        = 0xA68 // 2664\n\tSYS_FMAL                            = 0xA69 // 2665\n\tSYS___FMAL_B                        = 0xA6A // 2666\n\tSYS___FMAL_H                        = 0xA6B // 2667\n\tSYS_FMAX                            = 0xA6C // 2668\n\tSYS___FMAX_B                        = 0xA6D // 2669\n\tSYS___FMAX_H                        = 0xA6E // 2670\n\tSYS_FMAXF                           = 0xA6F // 2671\n\tSYS___FMAXF_B                       = 0xA70 // 2672\n\tSYS___FMAXF_H                       = 0xA71 // 2673\n\tSYS_FMAXL                           = 0xA72 // 2674\n\tSYS___FMAXL_B                       = 0xA73 // 2675\n\tSYS___FMAXL_H                       = 0xA74 // 2676\n\tSYS_FMIN                            = 0xA75 // 2677\n\tSYS___FMIN_B                        = 0xA76 // 2678\n\tSYS___FMIN_H                        = 0xA77 // 2679\n\tSYS_FMINF                           = 0xA78 // 2680\n\tSYS___FMINF_B                       = 0xA79 // 2681\n\tSYS___FMINF_H                       = 0xA7A // 2682\n\tSYS_FMINL                           = 0xA7B // 2683\n\tSYS___FMINL_B                       = 0xA7C // 2684\n\tSYS___FMINL_H                       = 0xA7D // 2685\n\tSYS_ILOGBF                          = 0xA7E // 2686\n\tSYS___ILOGBF_B                      = 0xA7F // 2687\n\tSYS___ILOGBF_H                      = 0xA80 // 2688\n\tSYS_ILOGBL                          = 0xA81 // 2689\n\tSYS___ILOGBL_B                      = 0xA82 // 2690\n\tSYS___ILOGBL_H                      = 0xA83 // 2691\n\tSYS_LLRINT                          = 0xA84 // 2692\n\tSYS___LLRINT_B                      = 0xA85 // 2693\n\tSYS___LLRINT_H                      = 0xA86 // 2694\n\tSYS_LLRINTF                         = 0xA87 // 2695\n\tSYS___LLRINTF_B                     = 0xA88 // 2696\n\tSYS___LLRINTF_H                     = 0xA89 // 2697\n\tSYS_LLRINTL                         = 0xA8A // 2698\n\tSYS___LLRINTL_B                     = 0xA8B // 2699\n\tSYS___LLRINTL_H                     = 0xA8C // 2700\n\tSYS_LLROUND                         = 0xA8D // 2701\n\tSYS___LLROUND_B                     = 0xA8E // 2702\n\tSYS___LLROUND_H                     = 0xA8F // 2703\n\tSYS_LLROUNDF                        = 0xA90 // 2704\n\tSYS___LLROUNDF_B                    = 0xA91 // 2705\n\tSYS___LLROUNDF_H                    = 0xA92 // 2706\n\tSYS_LLROUNDL                        = 0xA93 // 2707\n\tSYS___LLROUNDL_B                    = 0xA94 // 2708\n\tSYS___LLROUNDL_H                    = 0xA95 // 2709\n\tSYS_LOGBF                           = 0xA96 // 2710\n\tSYS___LOGBF_B                       = 0xA97 // 2711\n\tSYS___LOGBF_H                       = 0xA98 // 2712\n\tSYS_LOGBL                           = 0xA99 // 2713\n\tSYS___LOGBL_B                       = 0xA9A // 2714\n\tSYS___LOGBL_H                       = 0xA9B // 2715\n\tSYS_LRINT                           = 0xA9C // 2716\n\tSYS___LRINT_B                       = 0xA9D // 2717\n\tSYS___LRINT_H                       = 0xA9E // 2718\n\tSYS_LRINTF                          = 0xA9F // 2719\n\tSYS___LRINTF_B                      = 0xAA0 // 2720\n\tSYS___LRINTF_H                      = 0xAA1 // 2721\n\tSYS_LRINTL                          = 0xAA2 // 2722\n\tSYS___LRINTL_B                      = 0xAA3 // 2723\n\tSYS___LRINTL_H                      = 0xAA4 // 2724\n\tSYS_LROUNDL                         = 0xAA5 // 2725\n\tSYS___LROUNDL_B                     = 0xAA6 // 2726\n\tSYS___LROUNDL_H                     = 0xAA7 // 2727\n\tSYS_NAN                             = 0xAA8 // 2728\n\tSYS___NAN_B                         = 0xAA9 // 2729\n\tSYS_NANF                            = 0xAAA // 2730\n\tSYS___NANF_B                        = 0xAAB // 2731\n\tSYS_NANL                            = 0xAAC // 2732\n\tSYS___NANL_B                        = 0xAAD // 2733\n\tSYS_NEARBYINT                       = 0xAAE // 2734\n\tSYS___NEARBYINT_B                   = 0xAAF // 2735\n\tSYS___NEARBYINT_H                   = 0xAB0 // 2736\n\tSYS_NEARBYINTF                      = 0xAB1 // 2737\n\tSYS___NEARBYINTF_B                  = 0xAB2 // 2738\n\tSYS___NEARBYINTF_H                  = 0xAB3 // 2739\n\tSYS_NEARBYINTL                      = 0xAB4 // 2740\n\tSYS___NEARBYINTL_B                  = 0xAB5 // 2741\n\tSYS___NEARBYINTL_H                  = 0xAB6 // 2742\n\tSYS_NEXTAFTERF                      = 0xAB7 // 2743\n\tSYS___NEXTAFTERF_B                  = 0xAB8 // 2744\n\tSYS___NEXTAFTERF_H                  = 0xAB9 // 2745\n\tSYS_NEXTAFTERL                      = 0xABA // 2746\n\tSYS___NEXTAFTERL_B                  = 0xABB // 2747\n\tSYS___NEXTAFTERL_H                  = 0xABC // 2748\n\tSYS_NEXTTOWARD                      = 0xABD // 2749\n\tSYS___NEXTTOWARD_B                  = 0xABE // 2750\n\tSYS___NEXTTOWARD_H                  = 0xABF // 2751\n\tSYS_NEXTTOWARDF                     = 0xAC0 // 2752\n\tSYS___NEXTTOWARDF_B                 = 0xAC1 // 2753\n\tSYS___NEXTTOWARDF_H                 = 0xAC2 // 2754\n\tSYS_NEXTTOWARDL                     = 0xAC3 // 2755\n\tSYS___NEXTTOWARDL_B                 = 0xAC4 // 2756\n\tSYS___NEXTTOWARDL_H                 = 0xAC5 // 2757\n\tSYS___REMAINDERF_H                  = 0xAC6 // 2758\n\tSYS___REMAINDERL_H                  = 0xAC7 // 2759\n\tSYS___REMQUO_H                      = 0xAC8 // 2760\n\tSYS___REMQUOF_H                     = 0xAC9 // 2761\n\tSYS___REMQUOL_H                     = 0xACA // 2762\n\tSYS_RINTF                           = 0xACB // 2763\n\tSYS___RINTF_B                       = 0xACC // 2764\n\tSYS_RINTL                           = 0xACD // 2765\n\tSYS___RINTL_B                       = 0xACE // 2766\n\tSYS_ROUND                           = 0xACF // 2767\n\tSYS___ROUND_B                       = 0xAD0 // 2768\n\tSYS___ROUND_H                       = 0xAD1 // 2769\n\tSYS_ROUNDF                          = 0xAD2 // 2770\n\tSYS___ROUNDF_B                      = 0xAD3 // 2771\n\tSYS___ROUNDF_H                      = 0xAD4 // 2772\n\tSYS_ROUNDL                          = 0xAD5 // 2773\n\tSYS___ROUNDL_B                      = 0xAD6 // 2774\n\tSYS___ROUNDL_H                      = 0xAD7 // 2775\n\tSYS_SCALBLN                         = 0xAD8 // 2776\n\tSYS___SCALBLN_B                     = 0xAD9 // 2777\n\tSYS___SCALBLN_H                     = 0xADA // 2778\n\tSYS_SCALBLNF                        = 0xADB // 2779\n\tSYS___SCALBLNF_B                    = 0xADC // 2780\n\tSYS___SCALBLNF_H                    = 0xADD // 2781\n\tSYS_SCALBLNL                        = 0xADE // 2782\n\tSYS___SCALBLNL_B                    = 0xADF // 2783\n\tSYS___SCALBLNL_H                    = 0xAE0 // 2784\n\tSYS___SCALBN_B                      = 0xAE1 // 2785\n\tSYS___SCALBN_H                      = 0xAE2 // 2786\n\tSYS_SCALBNF                         = 0xAE3 // 2787\n\tSYS___SCALBNF_B                     = 0xAE4 // 2788\n\tSYS___SCALBNF_H                     = 0xAE5 // 2789\n\tSYS_SCALBNL                         = 0xAE6 // 2790\n\tSYS___SCALBNL_B                     = 0xAE7 // 2791\n\tSYS___SCALBNL_H                     = 0xAE8 // 2792\n\tSYS___TGAMMAL_H                     = 0xAE9 // 2793\n\tSYS_FECLEAREXCEPT                   = 0xAEA // 2794\n\tSYS_FEGETENV                        = 0xAEB // 2795\n\tSYS_FEGETEXCEPTFLAG                 = 0xAEC // 2796\n\tSYS_FEGETROUND                      = 0xAED // 2797\n\tSYS_FEHOLDEXCEPT                    = 0xAEE // 2798\n\tSYS_FERAISEEXCEPT                   = 0xAEF // 2799\n\tSYS_FESETENV                        = 0xAF0 // 2800\n\tSYS_FESETEXCEPTFLAG                 = 0xAF1 // 2801\n\tSYS_FESETROUND                      = 0xAF2 // 2802\n\tSYS_FETESTEXCEPT                    = 0xAF3 // 2803\n\tSYS_FEUPDATEENV                     = 0xAF4 // 2804\n\tSYS___COPYSIGN_H                    = 0xAF5 // 2805\n\tSYS___HYPOTF_H                      = 0xAF6 // 2806\n\tSYS___HYPOTL_H                      = 0xAF7 // 2807\n\tSYS___CLASS                         = 0xAFA // 2810\n\tSYS___CLASS_B                       = 0xAFB // 2811\n\tSYS___CLASS_H                       = 0xAFC // 2812\n\tSYS___ISBLANK_A                     = 0xB2E // 2862\n\tSYS___ISWBLANK_A                    = 0xB2F // 2863\n\tSYS___LROUND_FIXUP                  = 0xB30 // 2864\n\tSYS___LROUNDF_FIXUP                 = 0xB31 // 2865\n\tSYS_SCHED_YIELD                     = 0xB32 // 2866\n\tSYS_STRERROR_R                      = 0xB33 // 2867\n\tSYS_UNSETENV                        = 0xB34 // 2868\n\tSYS___LGAMMA_H_C99                  = 0xB38 // 2872\n\tSYS___LGAMMA_B_C99                  = 0xB39 // 2873\n\tSYS___LGAMMA_R_C99                  = 0xB3A // 2874\n\tSYS___FTELL2                        = 0xB3B // 2875\n\tSYS___FSEEK2                        = 0xB3C // 2876\n\tSYS___STATIC_REINIT                 = 0xB3D // 2877\n\tSYS_PTHREAD_ATTR_GETSTACK           = 0xB3E // 2878\n\tSYS_PTHREAD_ATTR_SETSTACK           = 0xB3F // 2879\n\tSYS___TGAMMA_H_C99                  = 0xB78 // 2936\n\tSYS___TGAMMAF_H_C99                 = 0xB79 // 2937\n\tSYS___LE_TRACEBACK                  = 0xB7A // 2938\n\tSYS___MUST_STAY_CLEAN               = 0xB7C // 2940\n\tSYS___O_ENV                         = 0xB7D // 2941\n\tSYS_ACOSD32                         = 0xB7E // 2942\n\tSYS_ACOSD64                         = 0xB7F // 2943\n\tSYS_ACOSD128                        = 0xB80 // 2944\n\tSYS_ACOSHD32                        = 0xB81 // 2945\n\tSYS_ACOSHD64                        = 0xB82 // 2946\n\tSYS_ACOSHD128                       = 0xB83 // 2947\n\tSYS_ASIND32                         = 0xB84 // 2948\n\tSYS_ASIND64                         = 0xB85 // 2949\n\tSYS_ASIND128                        = 0xB86 // 2950\n\tSYS_ASINHD32                        = 0xB87 // 2951\n\tSYS_ASINHD64                        = 0xB88 // 2952\n\tSYS_ASINHD128                       = 0xB89 // 2953\n\tSYS_ATAND32                         = 0xB8A // 2954\n\tSYS_ATAND64                         = 0xB8B // 2955\n\tSYS_ATAND128                        = 0xB8C // 2956\n\tSYS_ATAN2D32                        = 0xB8D // 2957\n\tSYS_ATAN2D64                        = 0xB8E // 2958\n\tSYS_ATAN2D128                       = 0xB8F // 2959\n\tSYS_ATANHD32                        = 0xB90 // 2960\n\tSYS_ATANHD64                        = 0xB91 // 2961\n\tSYS_ATANHD128                       = 0xB92 // 2962\n\tSYS_CBRTD32                         = 0xB93 // 2963\n\tSYS_CBRTD64                         = 0xB94 // 2964\n\tSYS_CBRTD128                        = 0xB95 // 2965\n\tSYS_CEILD32                         = 0xB96 // 2966\n\tSYS_CEILD64                         = 0xB97 // 2967\n\tSYS_CEILD128                        = 0xB98 // 2968\n\tSYS___CLASS2                        = 0xB99 // 2969\n\tSYS___CLASS2_B                      = 0xB9A // 2970\n\tSYS___CLASS2_H                      = 0xB9B // 2971\n\tSYS_COPYSIGND32                     = 0xB9C // 2972\n\tSYS_COPYSIGND64                     = 0xB9D // 2973\n\tSYS_COPYSIGND128                    = 0xB9E // 2974\n\tSYS_COSD32                          = 0xB9F // 2975\n\tSYS_COSD64                          = 0xBA0 // 2976\n\tSYS_COSD128                         = 0xBA1 // 2977\n\tSYS_COSHD32                         = 0xBA2 // 2978\n\tSYS_COSHD64                         = 0xBA3 // 2979\n\tSYS_COSHD128                        = 0xBA4 // 2980\n\tSYS_ERFD32                          = 0xBA5 // 2981\n\tSYS_ERFD64                          = 0xBA6 // 2982\n\tSYS_ERFD128                         = 0xBA7 // 2983\n\tSYS_ERFCD32                         = 0xBA8 // 2984\n\tSYS_ERFCD64                         = 0xBA9 // 2985\n\tSYS_ERFCD128                        = 0xBAA // 2986\n\tSYS_EXPD32                          = 0xBAB // 2987\n\tSYS_EXPD64                          = 0xBAC // 2988\n\tSYS_EXPD128                         = 0xBAD // 2989\n\tSYS_EXP2D32                         = 0xBAE // 2990\n\tSYS_EXP2D64                         = 0xBAF // 2991\n\tSYS_EXP2D128                        = 0xBB0 // 2992\n\tSYS_EXPM1D32                        = 0xBB1 // 2993\n\tSYS_EXPM1D64                        = 0xBB2 // 2994\n\tSYS_EXPM1D128                       = 0xBB3 // 2995\n\tSYS_FABSD32                         = 0xBB4 // 2996\n\tSYS_FABSD64                         = 0xBB5 // 2997\n\tSYS_FABSD128                        = 0xBB6 // 2998\n\tSYS_FDIMD32                         = 0xBB7 // 2999\n\tSYS_FDIMD64                         = 0xBB8 // 3000\n\tSYS_FDIMD128                        = 0xBB9 // 3001\n\tSYS_FE_DEC_GETROUND                 = 0xBBA // 3002\n\tSYS_FE_DEC_SETROUND                 = 0xBBB // 3003\n\tSYS_FLOORD32                        = 0xBBC // 3004\n\tSYS_FLOORD64                        = 0xBBD // 3005\n\tSYS_FLOORD128                       = 0xBBE // 3006\n\tSYS_FMAD32                          = 0xBBF // 3007\n\tSYS_FMAD64                          = 0xBC0 // 3008\n\tSYS_FMAD128                         = 0xBC1 // 3009\n\tSYS_FMAXD32                         = 0xBC2 // 3010\n\tSYS_FMAXD64                         = 0xBC3 // 3011\n\tSYS_FMAXD128                        = 0xBC4 // 3012\n\tSYS_FMIND32                         = 0xBC5 // 3013\n\tSYS_FMIND64                         = 0xBC6 // 3014\n\tSYS_FMIND128                        = 0xBC7 // 3015\n\tSYS_FMODD32                         = 0xBC8 // 3016\n\tSYS_FMODD64                         = 0xBC9 // 3017\n\tSYS_FMODD128                        = 0xBCA // 3018\n\tSYS___FP_CAST_D                     = 0xBCB // 3019\n\tSYS_FREXPD32                        = 0xBCC // 3020\n\tSYS_FREXPD64                        = 0xBCD // 3021\n\tSYS_FREXPD128                       = 0xBCE // 3022\n\tSYS_HYPOTD32                        = 0xBCF // 3023\n\tSYS_HYPOTD64                        = 0xBD0 // 3024\n\tSYS_HYPOTD128                       = 0xBD1 // 3025\n\tSYS_ILOGBD32                        = 0xBD2 // 3026\n\tSYS_ILOGBD64                        = 0xBD3 // 3027\n\tSYS_ILOGBD128                       = 0xBD4 // 3028\n\tSYS_LDEXPD32                        = 0xBD5 // 3029\n\tSYS_LDEXPD64                        = 0xBD6 // 3030\n\tSYS_LDEXPD128                       = 0xBD7 // 3031\n\tSYS_LGAMMAD32                       = 0xBD8 // 3032\n\tSYS_LGAMMAD64                       = 0xBD9 // 3033\n\tSYS_LGAMMAD128                      = 0xBDA // 3034\n\tSYS_LLRINTD32                       = 0xBDB // 3035\n\tSYS_LLRINTD64                       = 0xBDC // 3036\n\tSYS_LLRINTD128                      = 0xBDD // 3037\n\tSYS_LLROUNDD32                      = 0xBDE // 3038\n\tSYS_LLROUNDD64                      = 0xBDF // 3039\n\tSYS_LLROUNDD128                     = 0xBE0 // 3040\n\tSYS_LOGD32                          = 0xBE1 // 3041\n\tSYS_LOGD64                          = 0xBE2 // 3042\n\tSYS_LOGD128                         = 0xBE3 // 3043\n\tSYS_LOG10D32                        = 0xBE4 // 3044\n\tSYS_LOG10D64                        = 0xBE5 // 3045\n\tSYS_LOG10D128                       = 0xBE6 // 3046\n\tSYS_LOG1PD32                        = 0xBE7 // 3047\n\tSYS_LOG1PD64                        = 0xBE8 // 3048\n\tSYS_LOG1PD128                       = 0xBE9 // 3049\n\tSYS_LOG2D32                         = 0xBEA // 3050\n\tSYS_LOG2D64                         = 0xBEB // 3051\n\tSYS_LOG2D128                        = 0xBEC // 3052\n\tSYS_LOGBD32                         = 0xBED // 3053\n\tSYS_LOGBD64                         = 0xBEE // 3054\n\tSYS_LOGBD128                        = 0xBEF // 3055\n\tSYS_LRINTD32                        = 0xBF0 // 3056\n\tSYS_LRINTD64                        = 0xBF1 // 3057\n\tSYS_LRINTD128                       = 0xBF2 // 3058\n\tSYS_LROUNDD32                       = 0xBF3 // 3059\n\tSYS_LROUNDD64                       = 0xBF4 // 3060\n\tSYS_LROUNDD128                      = 0xBF5 // 3061\n\tSYS_MODFD32                         = 0xBF6 // 3062\n\tSYS_MODFD64                         = 0xBF7 // 3063\n\tSYS_MODFD128                        = 0xBF8 // 3064\n\tSYS_NAND32                          = 0xBF9 // 3065\n\tSYS_NAND64                          = 0xBFA // 3066\n\tSYS_NAND128                         = 0xBFB // 3067\n\tSYS_NEARBYINTD32                    = 0xBFC // 3068\n\tSYS_NEARBYINTD64                    = 0xBFD // 3069\n\tSYS_NEARBYINTD128                   = 0xBFE // 3070\n\tSYS_NEXTAFTERD32                    = 0xBFF // 3071\n\tSYS_NEXTAFTERD64                    = 0xC00 // 3072\n\tSYS_NEXTAFTERD128                   = 0xC01 // 3073\n\tSYS_NEXTTOWARDD32                   = 0xC02 // 3074\n\tSYS_NEXTTOWARDD64                   = 0xC03 // 3075\n\tSYS_NEXTTOWARDD128                  = 0xC04 // 3076\n\tSYS_POWD32                          = 0xC05 // 3077\n\tSYS_POWD64                          = 0xC06 // 3078\n\tSYS_POWD128                         = 0xC07 // 3079\n\tSYS_QUANTIZED32                     = 0xC08 // 3080\n\tSYS_QUANTIZED64                     = 0xC09 // 3081\n\tSYS_QUANTIZED128                    = 0xC0A // 3082\n\tSYS_REMAINDERD32                    = 0xC0B // 3083\n\tSYS_REMAINDERD64                    = 0xC0C // 3084\n\tSYS_REMAINDERD128                   = 0xC0D // 3085\n\tSYS___REMQUOD32                     = 0xC0E // 3086\n\tSYS___REMQUOD64                     = 0xC0F // 3087\n\tSYS___REMQUOD128                    = 0xC10 // 3088\n\tSYS_RINTD32                         = 0xC11 // 3089\n\tSYS_RINTD64                         = 0xC12 // 3090\n\tSYS_RINTD128                        = 0xC13 // 3091\n\tSYS_ROUNDD32                        = 0xC14 // 3092\n\tSYS_ROUNDD64                        = 0xC15 // 3093\n\tSYS_ROUNDD128                       = 0xC16 // 3094\n\tSYS_SAMEQUANTUMD32                  = 0xC17 // 3095\n\tSYS_SAMEQUANTUMD64                  = 0xC18 // 3096\n\tSYS_SAMEQUANTUMD128                 = 0xC19 // 3097\n\tSYS_SCALBLND32                      = 0xC1A // 3098\n\tSYS_SCALBLND64                      = 0xC1B // 3099\n\tSYS_SCALBLND128                     = 0xC1C // 3100\n\tSYS_SCALBND32                       = 0xC1D // 3101\n\tSYS_SCALBND64                       = 0xC1E // 3102\n\tSYS_SCALBND128                      = 0xC1F // 3103\n\tSYS_SIND32                          = 0xC20 // 3104\n\tSYS_SIND64                          = 0xC21 // 3105\n\tSYS_SIND128                         = 0xC22 // 3106\n\tSYS_SINHD32                         = 0xC23 // 3107\n\tSYS_SINHD64                         = 0xC24 // 3108\n\tSYS_SINHD128                        = 0xC25 // 3109\n\tSYS_SQRTD32                         = 0xC26 // 3110\n\tSYS_SQRTD64                         = 0xC27 // 3111\n\tSYS_SQRTD128                        = 0xC28 // 3112\n\tSYS_STRTOD32                        = 0xC29 // 3113\n\tSYS_STRTOD64                        = 0xC2A // 3114\n\tSYS_STRTOD128                       = 0xC2B // 3115\n\tSYS_TAND32                          = 0xC2C // 3116\n\tSYS_TAND64                          = 0xC2D // 3117\n\tSYS_TAND128                         = 0xC2E // 3118\n\tSYS_TANHD32                         = 0xC2F // 3119\n\tSYS_TANHD64                         = 0xC30 // 3120\n\tSYS_TANHD128                        = 0xC31 // 3121\n\tSYS_TGAMMAD32                       = 0xC32 // 3122\n\tSYS_TGAMMAD64                       = 0xC33 // 3123\n\tSYS_TGAMMAD128                      = 0xC34 // 3124\n\tSYS_TRUNCD32                        = 0xC3E // 3134\n\tSYS_TRUNCD64                        = 0xC3F // 3135\n\tSYS_TRUNCD128                       = 0xC40 // 3136\n\tSYS_WCSTOD32                        = 0xC41 // 3137\n\tSYS_WCSTOD64                        = 0xC42 // 3138\n\tSYS_WCSTOD128                       = 0xC43 // 3139\n\tSYS___CODEPAGE_INFO                 = 0xC64 // 3172\n\tSYS_POSIX_OPENPT                    = 0xC66 // 3174\n\tSYS_PSELECT                         = 0xC67 // 3175\n\tSYS_SOCKATMARK                      = 0xC68 // 3176\n\tSYS_AIO_FSYNC                       = 0xC69 // 3177\n\tSYS_LIO_LISTIO                      = 0xC6A // 3178\n\tSYS___ATANPID32                     = 0xC6B // 3179\n\tSYS___ATANPID64                     = 0xC6C // 3180\n\tSYS___ATANPID128                    = 0xC6D // 3181\n\tSYS___COSPID32                      = 0xC6E // 3182\n\tSYS___COSPID64                      = 0xC6F // 3183\n\tSYS___COSPID128                     = 0xC70 // 3184\n\tSYS___SINPID32                      = 0xC71 // 3185\n\tSYS___SINPID64                      = 0xC72 // 3186\n\tSYS___SINPID128                     = 0xC73 // 3187\n\tSYS_SETIPV4SOURCEFILTER             = 0xC76 // 3190\n\tSYS_GETIPV4SOURCEFILTER             = 0xC77 // 3191\n\tSYS_SETSOURCEFILTER                 = 0xC78 // 3192\n\tSYS_GETSOURCEFILTER                 = 0xC79 // 3193\n\tSYS_FWRITE_UNLOCKED                 = 0xC7A // 3194\n\tSYS_FREAD_UNLOCKED                  = 0xC7B // 3195\n\tSYS_FGETS_UNLOCKED                  = 0xC7C // 3196\n\tSYS_GETS_UNLOCKED                   = 0xC7D // 3197\n\tSYS_FPUTS_UNLOCKED                  = 0xC7E // 3198\n\tSYS_PUTS_UNLOCKED                   = 0xC7F // 3199\n\tSYS_FGETC_UNLOCKED                  = 0xC80 // 3200\n\tSYS_FPUTC_UNLOCKED                  = 0xC81 // 3201\n\tSYS_DLADDR                          = 0xC82 // 3202\n\tSYS_SHM_OPEN                        = 0xC8C // 3212\n\tSYS_SHM_UNLINK                      = 0xC8D // 3213\n\tSYS___CLASS2F                       = 0xC91 // 3217\n\tSYS___CLASS2L                       = 0xC92 // 3218\n\tSYS___CLASS2F_B                     = 0xC93 // 3219\n\tSYS___CLASS2F_H                     = 0xC94 // 3220\n\tSYS___CLASS2L_B                     = 0xC95 // 3221\n\tSYS___CLASS2L_H                     = 0xC96 // 3222\n\tSYS___CLASS2D32                     = 0xC97 // 3223\n\tSYS___CLASS2D64                     = 0xC98 // 3224\n\tSYS___CLASS2D128                    = 0xC99 // 3225\n\tSYS___TOCSNAME2                     = 0xC9A // 3226\n\tSYS___D1TOP                         = 0xC9B // 3227\n\tSYS___D2TOP                         = 0xC9C // 3228\n\tSYS___D4TOP                         = 0xC9D // 3229\n\tSYS___PTOD1                         = 0xC9E // 3230\n\tSYS___PTOD2                         = 0xC9F // 3231\n\tSYS___PTOD4                         = 0xCA0 // 3232\n\tSYS_CLEARERR_UNLOCKED               = 0xCA1 // 3233\n\tSYS_FDELREC_UNLOCKED                = 0xCA2 // 3234\n\tSYS_FEOF_UNLOCKED                   = 0xCA3 // 3235\n\tSYS_FERROR_UNLOCKED                 = 0xCA4 // 3236\n\tSYS_FFLUSH_UNLOCKED                 = 0xCA5 // 3237\n\tSYS_FGETPOS_UNLOCKED                = 0xCA6 // 3238\n\tSYS_FGETWC_UNLOCKED                 = 0xCA7 // 3239\n\tSYS_FGETWS_UNLOCKED                 = 0xCA8 // 3240\n\tSYS_FILENO_UNLOCKED                 = 0xCA9 // 3241\n\tSYS_FLDATA_UNLOCKED                 = 0xCAA // 3242\n\tSYS_FLOCATE_UNLOCKED                = 0xCAB // 3243\n\tSYS_FPRINTF_UNLOCKED                = 0xCAC // 3244\n\tSYS_FPUTWC_UNLOCKED                 = 0xCAD // 3245\n\tSYS_FPUTWS_UNLOCKED                 = 0xCAE // 3246\n\tSYS_FSCANF_UNLOCKED                 = 0xCAF // 3247\n\tSYS_FSEEK_UNLOCKED                  = 0xCB0 // 3248\n\tSYS_FSEEKO_UNLOCKED                 = 0xCB1 // 3249\n\tSYS_FSETPOS_UNLOCKED                = 0xCB3 // 3251\n\tSYS_FTELL_UNLOCKED                  = 0xCB4 // 3252\n\tSYS_FTELLO_UNLOCKED                 = 0xCB5 // 3253\n\tSYS_FUPDATE_UNLOCKED                = 0xCB7 // 3255\n\tSYS_FWIDE_UNLOCKED                  = 0xCB8 // 3256\n\tSYS_FWPRINTF_UNLOCKED               = 0xCB9 // 3257\n\tSYS_FWSCANF_UNLOCKED                = 0xCBA // 3258\n\tSYS_GETWC_UNLOCKED                  = 0xCBB // 3259\n\tSYS_GETWCHAR_UNLOCKED               = 0xCBC // 3260\n\tSYS_PERROR_UNLOCKED                 = 0xCBD // 3261\n\tSYS_PRINTF_UNLOCKED                 = 0xCBE // 3262\n\tSYS_PUTWC_UNLOCKED                  = 0xCBF // 3263\n\tSYS_PUTWCHAR_UNLOCKED               = 0xCC0 // 3264\n\tSYS_REWIND_UNLOCKED                 = 0xCC1 // 3265\n\tSYS_SCANF_UNLOCKED                  = 0xCC2 // 3266\n\tSYS_UNGETC_UNLOCKED                 = 0xCC3 // 3267\n\tSYS_UNGETWC_UNLOCKED                = 0xCC4 // 3268\n\tSYS_VFPRINTF_UNLOCKED               = 0xCC5 // 3269\n\tSYS_VFSCANF_UNLOCKED                = 0xCC7 // 3271\n\tSYS_VFWPRINTF_UNLOCKED              = 0xCC9 // 3273\n\tSYS_VFWSCANF_UNLOCKED               = 0xCCB // 3275\n\tSYS_VPRINTF_UNLOCKED                = 0xCCD // 3277\n\tSYS_VSCANF_UNLOCKED                 = 0xCCF // 3279\n\tSYS_VWPRINTF_UNLOCKED               = 0xCD1 // 3281\n\tSYS_VWSCANF_UNLOCKED                = 0xCD3 // 3283\n\tSYS_WPRINTF_UNLOCKED                = 0xCD5 // 3285\n\tSYS_WSCANF_UNLOCKED                 = 0xCD6 // 3286\n\tSYS_ASCTIME64                       = 0xCD7 // 3287\n\tSYS_ASCTIME64_R                     = 0xCD8 // 3288\n\tSYS_CTIME64                         = 0xCD9 // 3289\n\tSYS_CTIME64_R                       = 0xCDA // 3290\n\tSYS_DIFFTIME64                      = 0xCDB // 3291\n\tSYS_GMTIME64                        = 0xCDC // 3292\n\tSYS_GMTIME64_R                      = 0xCDD // 3293\n\tSYS_LOCALTIME64                     = 0xCDE // 3294\n\tSYS_LOCALTIME64_R                   = 0xCDF // 3295\n\tSYS_MKTIME64                        = 0xCE0 // 3296\n\tSYS_TIME64                          = 0xCE1 // 3297\n\tSYS___LOGIN_APPLID                  = 0xCE2 // 3298\n\tSYS___PASSWD_APPLID                 = 0xCE3 // 3299\n\tSYS_PTHREAD_SECURITY_APPLID_NP      = 0xCE4 // 3300\n\tSYS___GETTHENT                      = 0xCE5 // 3301\n\tSYS_FREEIFADDRS                     = 0xCE6 // 3302\n\tSYS_GETIFADDRS                      = 0xCE7 // 3303\n\tSYS_POSIX_FALLOCATE                 = 0xCE8 // 3304\n\tSYS_POSIX_MEMALIGN                  = 0xCE9 // 3305\n\tSYS_SIZEOF_ALLOC                    = 0xCEA // 3306\n\tSYS_RESIZE_ALLOC                    = 0xCEB // 3307\n\tSYS_FREAD_NOUPDATE                  = 0xCEC // 3308\n\tSYS_FREAD_NOUPDATE_UNLOCKED         = 0xCED // 3309\n\tSYS_FGETPOS64                       = 0xCEE // 3310\n\tSYS_FSEEK64                         = 0xCEF // 3311\n\tSYS_FSEEKO64                        = 0xCF0 // 3312\n\tSYS_FSETPOS64                       = 0xCF1 // 3313\n\tSYS_FTELL64                         = 0xCF2 // 3314\n\tSYS_FTELLO64                        = 0xCF3 // 3315\n\tSYS_FGETPOS64_UNLOCKED              = 0xCF4 // 3316\n\tSYS_FSEEK64_UNLOCKED                = 0xCF5 // 3317\n\tSYS_FSEEKO64_UNLOCKED               = 0xCF6 // 3318\n\tSYS_FSETPOS64_UNLOCKED              = 0xCF7 // 3319\n\tSYS_FTELL64_UNLOCKED                = 0xCF8 // 3320\n\tSYS_FTELLO64_UNLOCKED               = 0xCF9 // 3321\n\tSYS_FOPEN_UNLOCKED                  = 0xCFA // 3322\n\tSYS_FREOPEN_UNLOCKED                = 0xCFB // 3323\n\tSYS_FDOPEN_UNLOCKED                 = 0xCFC // 3324\n\tSYS_TMPFILE_UNLOCKED                = 0xCFD // 3325\n\tSYS___MOSERVICES                    = 0xD3D // 3389\n\tSYS___GETTOD                        = 0xD3E // 3390\n\tSYS_C16RTOMB                        = 0xD40 // 3392\n\tSYS_C32RTOMB                        = 0xD41 // 3393\n\tSYS_MBRTOC16                        = 0xD42 // 3394\n\tSYS_MBRTOC32                        = 0xD43 // 3395\n\tSYS_QUANTEXPD32                     = 0xD44 // 3396\n\tSYS_QUANTEXPD64                     = 0xD45 // 3397\n\tSYS_QUANTEXPD128                    = 0xD46 // 3398\n\tSYS___LOCALE_CTL                    = 0xD47 // 3399\n\tSYS___SMF_RECORD2                   = 0xD48 // 3400\n\tSYS_FOPEN64                         = 0xD49 // 3401\n\tSYS_FOPEN64_UNLOCKED                = 0xD4A // 3402\n\tSYS_FREOPEN64                       = 0xD4B // 3403\n\tSYS_FREOPEN64_UNLOCKED              = 0xD4C // 3404\n\tSYS_TMPFILE64                       = 0xD4D // 3405\n\tSYS_TMPFILE64_UNLOCKED              = 0xD4E // 3406\n\tSYS_GETDATE64                       = 0xD4F // 3407\n\tSYS_GETTIMEOFDAY64                  = 0xD50 // 3408\n\tSYS_BIND2ADDRSEL                    = 0xD59 // 3417\n\tSYS_INET6_IS_SRCADDR                = 0xD5A // 3418\n\tSYS___GETGRGID1                     = 0xD5B // 3419\n\tSYS___GETGRNAM1                     = 0xD5C // 3420\n\tSYS___FBUFSIZE                      = 0xD60 // 3424\n\tSYS___FPENDING                      = 0xD61 // 3425\n\tSYS___FLBF                          = 0xD62 // 3426\n\tSYS___FREADABLE                     = 0xD63 // 3427\n\tSYS___FWRITABLE                     = 0xD64 // 3428\n\tSYS___FREADING                      = 0xD65 // 3429\n\tSYS___FWRITING                      = 0xD66 // 3430\n\tSYS___FSETLOCKING                   = 0xD67 // 3431\n\tSYS__FLUSHLBF                       = 0xD68 // 3432\n\tSYS___FPURGE                        = 0xD69 // 3433\n\tSYS___FREADAHEAD                    = 0xD6A // 3434\n\tSYS___FSETERR                       = 0xD6B // 3435\n\tSYS___FPENDING_UNLOCKED             = 0xD6C // 3436\n\tSYS___FREADING_UNLOCKED             = 0xD6D // 3437\n\tSYS___FWRITING_UNLOCKED             = 0xD6E // 3438\n\tSYS__FLUSHLBF_UNLOCKED              = 0xD6F // 3439\n\tSYS___FPURGE_UNLOCKED               = 0xD70 // 3440\n\tSYS___FREADAHEAD_UNLOCKED           = 0xD71 // 3441\n\tSYS___LE_CEEGTJS                    = 0xD72 // 3442\n\tSYS___LE_RECORD_DUMP                = 0xD73 // 3443\n\tSYS_FSTAT64                         = 0xD74 // 3444\n\tSYS_LSTAT64                         = 0xD75 // 3445\n\tSYS_STAT64                          = 0xD76 // 3446\n\tSYS___READDIR2_64                   = 0xD77 // 3447\n\tSYS___OPEN_STAT64                   = 0xD78 // 3448\n\tSYS_FTW64                           = 0xD79 // 3449\n\tSYS_NFTW64                          = 0xD7A // 3450\n\tSYS_UTIME64                         = 0xD7B // 3451\n\tSYS_UTIMES64                        = 0xD7C // 3452\n\tSYS___GETIPC64                      = 0xD7D // 3453\n\tSYS_MSGCTL64                        = 0xD7E // 3454\n\tSYS_SEMCTL64                        = 0xD7F // 3455\n\tSYS_SHMCTL64                        = 0xD80 // 3456\n\tSYS_MSGXRCV64                       = 0xD81 // 3457\n\tSYS___MGXR64                        = 0xD81 // 3457\n\tSYS_W_GETPSENT64                    = 0xD82 // 3458\n\tSYS_PTHREAD_COND_TIMEDWAIT64        = 0xD83 // 3459\n\tSYS_FTIME64                         = 0xD85 // 3461\n\tSYS_GETUTXENT64                     = 0xD86 // 3462\n\tSYS_GETUTXID64                      = 0xD87 // 3463\n\tSYS_GETUTXLINE64                    = 0xD88 // 3464\n\tSYS_PUTUTXLINE64                    = 0xD89 // 3465\n\tSYS_NEWLOCALE                       = 0xD8A // 3466\n\tSYS_FREELOCALE                      = 0xD8B // 3467\n\tSYS_USELOCALE                       = 0xD8C // 3468\n\tSYS_DUPLOCALE                       = 0xD8D // 3469\n\tSYS___CHATTR64                      = 0xD9C // 3484\n\tSYS___LCHATTR64                     = 0xD9D // 3485\n\tSYS___FCHATTR64                     = 0xD9E // 3486\n\tSYS_____CHATTR64_A                  = 0xD9F // 3487\n\tSYS_____LCHATTR64_A                 = 0xDA0 // 3488\n\tSYS___LE_CEEUSGD                    = 0xDA1 // 3489\n\tSYS___LE_IFAM_CON                   = 0xDA2 // 3490\n\tSYS___LE_IFAM_DSC                   = 0xDA3 // 3491\n\tSYS___LE_IFAM_GET                   = 0xDA4 // 3492\n\tSYS___LE_IFAM_QRY                   = 0xDA5 // 3493\n\tSYS_ALIGNED_ALLOC                   = 0xDA6 // 3494\n\tSYS_ACCEPT4                         = 0xDA7 // 3495\n\tSYS___ACCEPT4_A                     = 0xDA8 // 3496\n\tSYS_COPYFILERANGE                   = 0xDA9 // 3497\n\tSYS_GETLINE                         = 0xDAA // 3498\n\tSYS___GETLINE_A                     = 0xDAB // 3499\n\tSYS_DIRFD                           = 0xDAC // 3500\n\tSYS_CLOCK_GETTIME                   = 0xDAD // 3501\n\tSYS_DUP3                            = 0xDAE // 3502\n\tSYS_EPOLL_CREATE                    = 0xDAF // 3503\n\tSYS_EPOLL_CREATE1                   = 0xDB0 // 3504\n\tSYS_EPOLL_CTL                       = 0xDB1 // 3505\n\tSYS_EPOLL_WAIT                      = 0xDB2 // 3506\n\tSYS_EPOLL_PWAIT                     = 0xDB3 // 3507\n\tSYS_EVENTFD                         = 0xDB4 // 3508\n\tSYS_STATFS                          = 0xDB5 // 3509\n\tSYS___STATFS_A                      = 0xDB6 // 3510\n\tSYS_FSTATFS                         = 0xDB7 // 3511\n\tSYS_INOTIFY_INIT                    = 0xDB8 // 3512\n\tSYS_INOTIFY_INIT1                   = 0xDB9 // 3513\n\tSYS_INOTIFY_ADD_WATCH               = 0xDBA // 3514\n\tSYS___INOTIFY_ADD_WATCH_A           = 0xDBB // 3515\n\tSYS_INOTIFY_RM_WATCH                = 0xDBC // 3516\n\tSYS_PIPE2                           = 0xDBD // 3517\n\tSYS_PIVOT_ROOT                      = 0xDBE // 3518\n\tSYS___PIVOT_ROOT_A                  = 0xDBF // 3519\n\tSYS_PRCTL                           = 0xDC0 // 3520\n\tSYS_PRLIMIT                         = 0xDC1 // 3521\n\tSYS_SETHOSTNAME                     = 0xDC2 // 3522\n\tSYS___SETHOSTNAME_A                 = 0xDC3 // 3523\n\tSYS_SETRESUID                       = 0xDC4 // 3524\n\tSYS_SETRESGID                       = 0xDC5 // 3525\n\tSYS_PTHREAD_CONDATTR_GETCLOCK       = 0xDC6 // 3526\n\tSYS_FLOCK                           = 0xDC7 // 3527\n\tSYS_FGETXATTR                       = 0xDC8 // 3528\n\tSYS___FGETXATTR_A                   = 0xDC9 // 3529\n\tSYS_FLISTXATTR                      = 0xDCA // 3530\n\tSYS___FLISTXATTR_A                  = 0xDCB // 3531\n\tSYS_FREMOVEXATTR                    = 0xDCC // 3532\n\tSYS___FREMOVEXATTR_A                = 0xDCD // 3533\n\tSYS_FSETXATTR                       = 0xDCE // 3534\n\tSYS___FSETXATTR_A                   = 0xDCF // 3535\n\tSYS_GETXATTR                        = 0xDD0 // 3536\n\tSYS___GETXATTR_A                    = 0xDD1 // 3537\n\tSYS_LGETXATTR                       = 0xDD2 // 3538\n\tSYS___LGETXATTR_A                   = 0xDD3 // 3539\n\tSYS_LISTXATTR                       = 0xDD4 // 3540\n\tSYS___LISTXATTR_A                   = 0xDD5 // 3541\n\tSYS_LLISTXATTR                      = 0xDD6 // 3542\n\tSYS___LLISTXATTR_A                  = 0xDD7 // 3543\n\tSYS_LREMOVEXATTR                    = 0xDD8 // 3544\n\tSYS___LREMOVEXATTR_A                = 0xDD9 // 3545\n\tSYS_LSETXATTR                       = 0xDDA // 3546\n\tSYS___LSETXATTR_A                   = 0xDDB // 3547\n\tSYS_REMOVEXATTR                     = 0xDDC // 3548\n\tSYS___REMOVEXATTR_A                 = 0xDDD // 3549\n\tSYS_SETXATTR                        = 0xDDE // 3550\n\tSYS___SETXATTR_A                    = 0xDDF // 3551\n\tSYS_FDATASYNC                       = 0xDE0 // 3552\n\tSYS_SYNCFS                          = 0xDE1 // 3553\n\tSYS_FUTIMES                         = 0xDE2 // 3554\n\tSYS_FUTIMESAT                       = 0xDE3 // 3555\n\tSYS___FUTIMESAT_A                   = 0xDE4 // 3556\n\tSYS_LUTIMES                         = 0xDE5 // 3557\n\tSYS___LUTIMES_A                     = 0xDE6 // 3558\n\tSYS_INET_ATON                       = 0xDE7 // 3559\n\tSYS_GETRANDOM                       = 0xDE8 // 3560\n\tSYS_GETTID                          = 0xDE9 // 3561\n\tSYS_MEMFD_CREATE                    = 0xDEA // 3562\n\tSYS___MEMFD_CREATE_A                = 0xDEB // 3563\n\tSYS_FACCESSAT                       = 0xDEC // 3564\n\tSYS___FACCESSAT_A                   = 0xDED // 3565\n\tSYS_FCHMODAT                        = 0xDEE // 3566\n\tSYS___FCHMODAT_A                    = 0xDEF // 3567\n\tSYS_FCHOWNAT                        = 0xDF0 // 3568\n\tSYS___FCHOWNAT_A                    = 0xDF1 // 3569\n\tSYS_FSTATAT                         = 0xDF2 // 3570\n\tSYS___FSTATAT_A                     = 0xDF3 // 3571\n\tSYS_LINKAT                          = 0xDF4 // 3572\n\tSYS___LINKAT_A                      = 0xDF5 // 3573\n\tSYS_MKDIRAT                         = 0xDF6 // 3574\n\tSYS___MKDIRAT_A                     = 0xDF7 // 3575\n\tSYS_MKFIFOAT                        = 0xDF8 // 3576\n\tSYS___MKFIFOAT_A                    = 0xDF9 // 3577\n\tSYS_MKNODAT                         = 0xDFA // 3578\n\tSYS___MKNODAT_A                     = 0xDFB // 3579\n\tSYS_OPENAT                          = 0xDFC // 3580\n\tSYS___OPENAT_A                      = 0xDFD // 3581\n\tSYS_READLINKAT                      = 0xDFE // 3582\n\tSYS___READLINKAT_A                  = 0xDFF // 3583\n\tSYS_RENAMEAT                        = 0xE00 // 3584\n\tSYS___RENAMEAT_A                    = 0xE01 // 3585\n\tSYS_RENAMEAT2                       = 0xE02 // 3586\n\tSYS___RENAMEAT2_A                   = 0xE03 // 3587\n\tSYS_SYMLINKAT                       = 0xE04 // 3588\n\tSYS___SYMLINKAT_A                   = 0xE05 // 3589\n\tSYS_UNLINKAT                        = 0xE06 // 3590\n\tSYS___UNLINKAT_A                    = 0xE07 // 3591\n\tSYS_SYSINFO                         = 0xE08 // 3592\n\tSYS_WAIT4                           = 0xE0A // 3594\n\tSYS_CLONE                           = 0xE0B // 3595\n\tSYS_UNSHARE                         = 0xE0C // 3596\n\tSYS_SETNS                           = 0xE0D // 3597\n\tSYS_CAPGET                          = 0xE0E // 3598\n\tSYS_CAPSET                          = 0xE0F // 3599\n\tSYS_STRCHRNUL                       = 0xE10 // 3600\n\tSYS_PTHREAD_CONDATTR_SETCLOCK       = 0xE12 // 3602\n\tSYS_OPEN_BY_HANDLE_AT               = 0xE13 // 3603\n\tSYS___OPEN_BY_HANDLE_AT_A           = 0xE14 // 3604\n\tSYS___INET_ATON_A                   = 0xE15 // 3605\n\tSYS_MOUNT1                          = 0xE16 // 3606\n\tSYS___MOUNT1_A                      = 0xE17 // 3607\n\tSYS_UMOUNT1                         = 0xE18 // 3608\n\tSYS___UMOUNT1_A                     = 0xE19 // 3609\n\tSYS_UMOUNT2                         = 0xE1A // 3610\n\tSYS___UMOUNT2_A                     = 0xE1B // 3611\n\tSYS___PRCTL_A                       = 0xE1C // 3612\n\tSYS_LOCALTIME_R2                    = 0xE1D // 3613\n\tSYS___LOCALTIME_R2_A                = 0xE1E // 3614\n\tSYS_OPENAT2                         = 0xE1F // 3615\n\tSYS___OPENAT2_A                     = 0xE20 // 3616\n\tSYS___LE_CEEMICT                    = 0xE21 // 3617\n\tSYS_GETENTROPY                      = 0xE22 // 3618\n\tSYS_NANOSLEEP                       = 0xE23 // 3619\n\tSYS_UTIMENSAT                       = 0xE24 // 3620\n\tSYS___UTIMENSAT_A                   = 0xE25 // 3621\n\tSYS_ASPRINTF                        = 0xE26 // 3622\n\tSYS___ASPRINTF_A                    = 0xE27 // 3623\n\tSYS_VASPRINTF                       = 0xE28 // 3624\n\tSYS___VASPRINTF_A                   = 0xE29 // 3625\n\tSYS_DPRINTF                         = 0xE2A // 3626\n\tSYS___DPRINTF_A                     = 0xE2B // 3627\n\tSYS_GETOPT_LONG                     = 0xE2C // 3628\n\tSYS___GETOPT_LONG_A                 = 0xE2D // 3629\n\tSYS_PSIGNAL                         = 0xE2E // 3630\n\tSYS___PSIGNAL_A                     = 0xE2F // 3631\n\tSYS_PSIGNAL_UNLOCKED                = 0xE30 // 3632\n\tSYS___PSIGNAL_UNLOCKED_A            = 0xE31 // 3633\n\tSYS_FSTATAT_O                       = 0xE32 // 3634\n\tSYS___FSTATAT_O_A                   = 0xE33 // 3635\n\tSYS_FSTATAT64                       = 0xE34 // 3636\n\tSYS___FSTATAT64_A                   = 0xE35 // 3637\n\tSYS___CHATTRAT                      = 0xE36 // 3638\n\tSYS_____CHATTRAT_A                  = 0xE37 // 3639\n\tSYS___CHATTRAT64                    = 0xE38 // 3640\n\tSYS_____CHATTRAT64_A                = 0xE39 // 3641\n\tSYS_MADVISE                         = 0xE3A // 3642\n\tSYS___AUTHENTICATE                  = 0xE3B // 3643\n\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go",
    "content": "// cgo -godefs types_aix.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc && aix\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x4\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x4\n\tSizeofLongLong = 0x8\n\tPathMax        = 0x3ff\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int32\n\t_C_long_long int64\n)\n\ntype off64 int64\ntype off int32\ntype Mode_t uint32\n\ntype Timespec struct {\n\tSec  int32\n\tNsec int32\n}\n\ntype Timeval struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Timeval32 struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Timex struct{}\n\ntype Time_t int32\n\ntype Tms struct{}\n\ntype Utimbuf struct {\n\tActime  int32\n\tModtime int32\n}\n\ntype Timezone struct {\n\tMinuteswest int32\n\tDsttime     int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype Pid_t int32\n\ntype _Gid_t uint32\n\ntype dev_t uint32\n\ntype Stat_t struct {\n\tDev      uint32\n\tIno      uint32\n\tMode     uint32\n\tNlink    int16\n\tFlag     uint16\n\tUid      uint32\n\tGid      uint32\n\tRdev     uint32\n\tSize     int32\n\tAtim     Timespec\n\tMtim     Timespec\n\tCtim     Timespec\n\tBlksize  int32\n\tBlocks   int32\n\tVfstype  int32\n\tVfs      uint32\n\tType     uint32\n\tGen      uint32\n\tReserved [9]uint32\n}\n\ntype StatxTimestamp struct{}\n\ntype Statx_t struct{}\n\ntype Dirent struct {\n\tOffset uint32\n\tIno    uint32\n\tReclen uint16\n\tNamlen uint16\n\tName   [256]uint8\n}\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]uint8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [1023]uint8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [120]uint8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]uint8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [1012]uint8\n}\n\ntype _Socklen uint32\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x404\n\tSizeofSockaddrUnix     = 0x401\n\tSizeofSockaddrDatalink = 0x80\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofMsghdr           = 0x1c\n\tSizeofCmsghdr          = 0xc\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tSizeofIfMsghdr = 0x10\n)\n\ntype IfMsgHdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\tAddrlen uint8\n\t_       [1]byte\n}\n\ntype FdSet struct {\n\tBits [2048]int32\n}\n\ntype Utsname struct {\n\tSysname  [32]byte\n\tNodename [32]byte\n\tRelease  [32]byte\n\tVersion  [32]byte\n\tMachine  [32]byte\n}\n\ntype Ustat_t struct{}\n\ntype Sigset_t struct {\n\tLosigs uint32\n\tHisigs uint32\n}\n\nconst (\n\tAT_FDCWD            = -0x2\n\tAT_REMOVEDIR        = 0x1\n\tAT_SYMLINK_NOFOLLOW = 0x1\n)\n\ntype Termios struct {\n\tIflag uint32\n\tOflag uint32\n\tCflag uint32\n\tLflag uint32\n\tCc    [16]uint8\n}\n\ntype Termio struct {\n\tIflag uint16\n\tOflag uint16\n\tCflag uint16\n\tLflag uint16\n\tLine  uint8\n\tCc    [8]uint8\n\t_     [1]byte\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  uint16\n\tRevents uint16\n}\n\nconst (\n\tPOLLERR    = 0x4000\n\tPOLLHUP    = 0x2000\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x8000\n\tPOLLOUT    = 0x2\n\tPOLLPRI    = 0x4\n\tPOLLRDBAND = 0x20\n\tPOLLRDNORM = 0x10\n\tPOLLWRBAND = 0x40\n\tPOLLWRNORM = 0x2\n)\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tSysid  uint32\n\tPid    int32\n\tVfs    int32\n\tStart  int64\n\tLen    int64\n}\n\ntype Fsid_t struct {\n\tVal [2]uint32\n}\ntype Fsid64_t struct {\n\tVal [2]uint64\n}\n\ntype Statfs_t struct {\n\tVersion   int32\n\tType      int32\n\tBsize     uint32\n\tBlocks    uint32\n\tBfree     uint32\n\tBavail    uint32\n\tFiles     uint32\n\tFfree     uint32\n\tFsid      Fsid_t\n\tVfstype   int32\n\tFsize     uint32\n\tVfsnumber int32\n\tVfsoff    int32\n\tVfslen    int32\n\tVfsvers   int32\n\tFname     [32]uint8\n\tFpack     [32]uint8\n\tName_max  int32\n}\n\nconst RNDGETENTCNT = 0x80045200\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go",
    "content": "// cgo -godefs types_aix.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc64 && aix\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n\tPathMax        = 0x3ff\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype off64 int64\ntype off int64\ntype Mode_t uint32\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int32\n\t_    [4]byte\n}\n\ntype Timeval32 struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Timex struct{}\n\ntype Time_t int64\n\ntype Tms struct{}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Timezone struct {\n\tMinuteswest int32\n\tDsttime     int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype Pid_t int32\n\ntype _Gid_t uint32\n\ntype dev_t uint64\n\ntype Stat_t struct {\n\tDev      uint64\n\tIno      uint64\n\tMode     uint32\n\tNlink    int16\n\tFlag     uint16\n\tUid      uint32\n\tGid      uint32\n\tRdev     uint64\n\tSsize    int32\n\tAtim     Timespec\n\tMtim     Timespec\n\tCtim     Timespec\n\tBlksize  int64\n\tBlocks   int64\n\tVfstype  int32\n\tVfs      uint32\n\tType     uint32\n\tGen      uint32\n\tReserved [9]uint32\n\tPadto_ll uint32\n\tSize     int64\n}\n\ntype StatxTimestamp struct{}\n\ntype Statx_t struct{}\n\ntype Dirent struct {\n\tOffset uint64\n\tIno    uint64\n\tReclen uint16\n\tNamlen uint16\n\tName   [256]uint8\n\t_      [4]byte\n}\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]uint8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [1023]uint8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [120]uint8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]uint8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [1012]uint8\n}\n\ntype _Socklen uint32\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x404\n\tSizeofSockaddrUnix     = 0x401\n\tSizeofSockaddrDatalink = 0x80\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tSizeofIfMsghdr = 0x10\n)\n\ntype IfMsgHdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\tAddrlen uint8\n\t_       [1]byte\n}\n\ntype FdSet struct {\n\tBits [1024]int64\n}\n\ntype Utsname struct {\n\tSysname  [32]byte\n\tNodename [32]byte\n\tRelease  [32]byte\n\tVersion  [32]byte\n\tMachine  [32]byte\n}\n\ntype Ustat_t struct{}\n\ntype Sigset_t struct {\n\tSet [4]uint64\n}\n\nconst (\n\tAT_FDCWD            = -0x2\n\tAT_REMOVEDIR        = 0x1\n\tAT_SYMLINK_NOFOLLOW = 0x1\n)\n\ntype Termios struct {\n\tIflag uint32\n\tOflag uint32\n\tCflag uint32\n\tLflag uint32\n\tCc    [16]uint8\n}\n\ntype Termio struct {\n\tIflag uint16\n\tOflag uint16\n\tCflag uint16\n\tLflag uint16\n\tLine  uint8\n\tCc    [8]uint8\n\t_     [1]byte\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  uint16\n\tRevents uint16\n}\n\nconst (\n\tPOLLERR    = 0x4000\n\tPOLLHUP    = 0x2000\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x8000\n\tPOLLOUT    = 0x2\n\tPOLLPRI    = 0x4\n\tPOLLRDBAND = 0x20\n\tPOLLRDNORM = 0x10\n\tPOLLWRBAND = 0x40\n\tPOLLWRNORM = 0x2\n)\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tSysid  uint32\n\tPid    int32\n\tVfs    int32\n\tStart  int64\n\tLen    int64\n}\n\ntype Fsid_t struct {\n\tVal [2]uint32\n}\ntype Fsid64_t struct {\n\tVal [2]uint64\n}\n\ntype Statfs_t struct {\n\tVersion   int32\n\tType      int32\n\tBsize     uint64\n\tBlocks    uint64\n\tBfree     uint64\n\tBavail    uint64\n\tFiles     uint64\n\tFfree     uint64\n\tFsid      Fsid64_t\n\tVfstype   int32\n\tFsize     uint64\n\tVfsnumber int32\n\tVfsoff    int32\n\tVfslen    int32\n\tVfsvers   int32\n\tFname     [32]uint8\n\tFpack     [32]uint8\n\tName_max  int32\n\t_         [4]byte\n}\n\nconst RNDGETENTCNT = 0x80045200\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go",
    "content": "// cgo -godefs types_darwin.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && darwin\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int32\n\t_    [4]byte\n}\n\ntype Timeval32 struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     int32\n\tMode    uint16\n\tNlink   uint16\n\tIno     uint64\n\tUid     uint32\n\tGid     uint32\n\tRdev    int32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\tLspare  int32\n\tQspare  [2]int64\n}\n\ntype Statfs_t struct {\n\tBsize       uint32\n\tIosize      int32\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      uint64\n\tFiles       uint64\n\tFfree       uint64\n\tFsid        Fsid\n\tOwner       uint32\n\tType        uint32\n\tFlags       uint32\n\tFssubtype   uint32\n\tFstypename  [16]byte\n\tMntonname   [1024]byte\n\tMntfromname [1024]byte\n\tFlags_ext   uint32\n\tReserved    [7]uint32\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Fstore_t struct {\n\tFlags      uint32\n\tPosmode    int32\n\tOffset     int64\n\tLength     int64\n\tBytesalloc int64\n}\n\ntype Radvisory_t struct {\n\tOffset int64\n\tCount  int32\n\t_      [4]byte\n}\n\ntype Fbootstraptransfer_t struct {\n\tOffset int64\n\tLength uint64\n\tBuffer *byte\n}\n\ntype Log2phys_t struct {\n\tFlags uint32\n\t_     [16]byte\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\ntype Dirent struct {\n\tIno     uint64\n\tSeekoff uint64\n\tReclen  uint16\n\tNamlen  uint16\n\tType    uint8\n\tName    [1024]int8\n\t_       [3]byte\n}\n\ntype Attrlist struct {\n\tBitmapcount uint16\n\tReserved    uint16\n\tCommonattr  uint32\n\tVolattr     uint32\n\tDirattr     uint32\n\tFileattr    uint32\n\tForkattr    uint32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype RawSockaddrCtl struct {\n\tSc_len      uint8\n\tSc_family   uint8\n\tSs_sysaddr  uint16\n\tSc_id       uint32\n\tSc_unit     uint32\n\tSc_reserved [5]uint32\n}\n\ntype RawSockaddrVM struct {\n\tLen       uint8\n\tFamily    uint8\n\tReserved1 uint16\n\tPort      uint32\n\tCid       uint32\n}\n\ntype XVSockPCB struct {\n\tXv_len           uint32\n\tXv_vsockpp       uint64\n\tXvp_local_cid    uint32\n\tXvp_local_port   uint32\n\tXvp_remote_cid   uint32\n\tXvp_remote_port  uint32\n\tXvp_rxcnt        uint32\n\tXvp_txcnt        uint32\n\tXvp_peer_rxhiwat uint32\n\tXvp_peer_rxcnt   uint32\n\tXvp_last_pid     int32\n\tXvp_gencnt       uint64\n\tXv_socket        XSocket\n\t_                [4]byte\n}\n\ntype XSocket struct {\n\tXso_len      uint32\n\tXso_so       uint32\n\tSo_type      int16\n\tSo_options   int16\n\tSo_linger    int16\n\tSo_state     int16\n\tSo_pcb       uint32\n\tXso_protocol int32\n\tXso_family   int32\n\tSo_qlen      int16\n\tSo_incqlen   int16\n\tSo_qlimit    int16\n\tSo_timeo     int16\n\tSo_error     uint16\n\tSo_pgid      int32\n\tSo_oobmark   uint32\n\tSo_rcv       XSockbuf\n\tSo_snd       XSockbuf\n\tSo_uid       uint32\n}\n\ntype XSocket64 struct {\n\tXso_len      uint32\n\t_            [8]byte\n\tSo_type      int16\n\tSo_options   int16\n\tSo_linger    int16\n\tSo_state     int16\n\t_            [8]byte\n\tXso_protocol int32\n\tXso_family   int32\n\tSo_qlen      int16\n\tSo_incqlen   int16\n\tSo_qlimit    int16\n\tSo_timeo     int16\n\tSo_error     uint16\n\tSo_pgid      int32\n\tSo_oobmark   uint32\n\tSo_rcv       XSockbuf\n\tSo_snd       XSockbuf\n\tSo_uid       uint32\n}\n\ntype XSockbuf struct {\n\tCc    uint32\n\tHiwat uint32\n\tMbcnt uint32\n\tMbmax uint32\n\tLowat int32\n\tFlags int16\n\tTimeo int16\n}\n\ntype XVSockPgen struct {\n\tLen   uint32\n\tCount uint64\n\tGen   uint64\n\tSogen uint64\n}\n\ntype _Socklen uint32\n\ntype SaeAssocID uint32\n\ntype SaeConnID uint32\n\ntype SaEndpoints struct {\n\tSrcif      uint32\n\tSrcaddr    *RawSockaddr\n\tSrcaddrlen uint32\n\tDstaddr    *RawSockaddr\n\tDstaddrlen uint32\n\t_          [4]byte\n}\n\ntype Xucred struct {\n\tVersion uint32\n\tUid     uint32\n\tNgroups int16\n\tGroups  [16]uint32\n}\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPMreqn struct {\n\tMultiaddr [4]byte /* in_addr */\n\tAddress   [4]byte /* in_addr */\n\tIfindex   int32\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet4Pktinfo struct {\n\tIfindex  uint32\n\tSpec_dst [4]byte /* in_addr */\n\tAddr     [4]byte /* in_addr */\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\ntype TCPConnectionInfo struct {\n\tState               uint8\n\tSnd_wscale          uint8\n\tRcv_wscale          uint8\n\t_                   uint8\n\tOptions             uint32\n\tFlags               uint32\n\tRto                 uint32\n\tMaxseg              uint32\n\tSnd_ssthresh        uint32\n\tSnd_cwnd            uint32\n\tSnd_wnd             uint32\n\tSnd_sbbytes         uint32\n\tRcv_wnd             uint32\n\tRttcur              uint32\n\tSrtt                uint32\n\tRttvar              uint32\n\tTxpackets           uint64\n\tTxbytes             uint64\n\tTxretransmitbytes   uint64\n\tRxpackets           uint64\n\tRxbytes             uint64\n\tRxoutoforderbytes   uint64\n\tTxretransmitpackets uint64\n}\n\nconst (\n\tSizeofSockaddrInet4     = 0x10\n\tSizeofSockaddrInet6     = 0x1c\n\tSizeofSockaddrAny       = 0x6c\n\tSizeofSockaddrUnix      = 0x6a\n\tSizeofSockaddrDatalink  = 0x14\n\tSizeofSockaddrCtl       = 0x20\n\tSizeofSockaddrVM        = 0xc\n\tSizeofXvsockpcb         = 0xa8\n\tSizeofXSocket           = 0x64\n\tSizeofXSockbuf          = 0x18\n\tSizeofXVSockPgen        = 0x20\n\tSizeofXucred            = 0x4c\n\tSizeofLinger            = 0x8\n\tSizeofIovec             = 0x10\n\tSizeofIPMreq            = 0x8\n\tSizeofIPMreqn           = 0xc\n\tSizeofIPv6Mreq          = 0x14\n\tSizeofMsghdr            = 0x30\n\tSizeofCmsghdr           = 0xc\n\tSizeofInet4Pktinfo      = 0xc\n\tSizeofInet6Pktinfo      = 0x14\n\tSizeofIPv6MTUInfo       = 0x20\n\tSizeofICMPv6Filter      = 0x20\n\tSizeofTCPConnectionInfo = 0x70\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [32]int32\n}\n\nconst (\n\tSizeofIfMsghdr    = 0x70\n\tSizeofIfMsghdr2   = 0xa0\n\tSizeofIfData      = 0x60\n\tSizeofIfData64    = 0x80\n\tSizeofIfaMsghdr   = 0x14\n\tSizeofIfmaMsghdr  = 0x10\n\tSizeofIfmaMsghdr2 = 0x14\n\tSizeofRtMsghdr    = 0x5c\n\tSizeofRtMsghdr2   = 0x5c\n\tSizeofRtMetrics   = 0x38\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\tData    IfData\n}\n\ntype IfMsghdr2 struct {\n\tMsglen     uint16\n\tVersion    uint8\n\tType       uint8\n\tAddrs      int32\n\tFlags      int32\n\tIndex      uint16\n\tSnd_len    int32\n\tSnd_maxlen int32\n\tSnd_drops  int32\n\tTimer      int32\n\tData       IfData64\n}\n\ntype IfData struct {\n\tType       uint8\n\tTypelen    uint8\n\tPhysical   uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tRecvquota  uint8\n\tXmitquota  uint8\n\tUnused1    uint8\n\tMtu        uint32\n\tMetric     uint32\n\tBaudrate   uint32\n\tIpackets   uint32\n\tIerrors    uint32\n\tOpackets   uint32\n\tOerrors    uint32\n\tCollisions uint32\n\tIbytes     uint32\n\tObytes     uint32\n\tImcasts    uint32\n\tOmcasts    uint32\n\tIqdrops    uint32\n\tNoproto    uint32\n\tRecvtiming uint32\n\tXmittiming uint32\n\tLastchange Timeval32\n\tUnused2    uint32\n\tHwassist   uint32\n\tReserved1  uint32\n\tReserved2  uint32\n}\n\ntype IfData64 struct {\n\tType       uint8\n\tTypelen    uint8\n\tPhysical   uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tRecvquota  uint8\n\tXmitquota  uint8\n\tUnused1    uint8\n\tMtu        uint32\n\tMetric     uint32\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tNoproto    uint64\n\tRecvtiming uint32\n\tXmittiming uint32\n\tLastchange Timeval32\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\tMetric  int32\n}\n\ntype IfmaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       [2]byte\n}\n\ntype IfmaMsghdr2 struct {\n\tMsglen   uint16\n\tVersion  uint8\n\tType     uint8\n\tAddrs    int32\n\tFlags    int32\n\tIndex    uint16\n\tRefcount int32\n}\n\ntype RtMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tFlags   int32\n\tAddrs   int32\n\tPid     int32\n\tSeq     int32\n\tErrno   int32\n\tUse     int32\n\tInits   uint32\n\tRmx     RtMetrics\n}\n\ntype RtMsghdr2 struct {\n\tMsglen      uint16\n\tVersion     uint8\n\tType        uint8\n\tIndex       uint16\n\tFlags       int32\n\tAddrs       int32\n\tRefcnt      int32\n\tParentflags int32\n\tReserved    int32\n\tUse         int32\n\tInits       uint32\n\tRmx         RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint32\n\tMtu      uint32\n\tHopcount uint32\n\tExpire   int32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPksent   uint32\n\tState    uint32\n\tFiller   [3]uint32\n}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x14\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  Timeval32\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\t_       [2]byte\n}\n\ntype Termios struct {\n\tIflag  uint64\n\tOflag  uint64\n\tCflag  uint64\n\tLflag  uint64\n\tCc     [20]uint8\n\tIspeed uint64\n\tOspeed uint64\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x2\n\tAT_REMOVEDIR        = 0x80\n\tAT_SYMLINK_FOLLOW   = 0x40\n\tAT_SYMLINK_NOFOLLOW = 0x20\n\tAT_EACCESS          = 0x10\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz      int32\n\tTick    int32\n\tTickadj int32\n\tStathz  int32\n\tProfhz  int32\n}\n\ntype CtlInfo struct {\n\tId   uint32\n\tName [96]byte\n}\n\nconst SizeofKinfoProc = 0x288\n\ntype Eproc struct {\n\tPaddr   uintptr\n\tSess    uintptr\n\tPcred   Pcred\n\tUcred   Ucred\n\tVm      Vmspace\n\tPpid    int32\n\tPgid    int32\n\tJobc    int16\n\tTdev    int32\n\tTpgid   int32\n\tTsess   uintptr\n\tWmesg   [8]byte\n\tXsize   int32\n\tXrssize int16\n\tXccount int16\n\tXswrss  int16\n\tFlag    int32\n\tLogin   [12]byte\n\tSpare   [4]int32\n\t_       [4]byte\n}\n\ntype ExternProc struct {\n\tP_starttime Timeval\n\tP_vmspace   *Vmspace\n\tP_sigacts   uintptr\n\tP_flag      int32\n\tP_stat      int8\n\tP_pid       int32\n\tP_oppid     int32\n\tP_dupfd     int32\n\tUser_stack  *int8\n\tExit_thread *byte\n\tP_debugger  int32\n\tSigwait     int32\n\tP_estcpu    uint32\n\tP_cpticks   int32\n\tP_pctcpu    uint32\n\tP_wchan     *byte\n\tP_wmesg     *int8\n\tP_swtime    uint32\n\tP_slptime   uint32\n\tP_realtimer Itimerval\n\tP_rtime     Timeval\n\tP_uticks    uint64\n\tP_sticks    uint64\n\tP_iticks    uint64\n\tP_traceflag int32\n\tP_tracep    uintptr\n\tP_siglist   int32\n\tP_textvp    uintptr\n\tP_holdcnt   int32\n\tP_sigmask   uint32\n\tP_sigignore uint32\n\tP_sigcatch  uint32\n\tP_priority  uint8\n\tP_usrpri    uint8\n\tP_nice      int8\n\tP_comm      [17]byte\n\tP_pgrp      uintptr\n\tP_addr      uintptr\n\tP_xstat     uint16\n\tP_acflag    uint16\n\tP_ru        *Rusage\n}\n\ntype Itimerval struct {\n\tInterval Timeval\n\tValue    Timeval\n}\n\ntype KinfoProc struct {\n\tProc  ExternProc\n\tEproc Eproc\n}\n\ntype Vmspace struct {\n\tDummy  int32\n\tDummy2 *int8\n\tDummy3 [5]int32\n\tDummy4 [3]*int8\n}\n\ntype Pcred struct {\n\tPc_lock  [72]int8\n\tPc_ucred uintptr\n\tP_ruid   uint32\n\tP_svuid  uint32\n\tP_rgid   uint32\n\tP_svgid  uint32\n\tP_refcnt int32\n\t_        [4]byte\n}\n\ntype Ucred struct {\n\tRef     int32\n\tUid     uint32\n\tNgroups int16\n\tGroups  [16]uint32\n}\n\ntype SysvIpcPerm struct {\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint16\n\t_    uint16\n\t_    int32\n}\ntype SysvShmDesc struct {\n\tPerm   SysvIpcPerm\n\tSegsz  uint64\n\tLpid   int32\n\tCpid   int32\n\tNattch uint16\n\t_      [34]byte\n}\n\nconst (\n\tIPC_CREAT   = 0x200\n\tIPC_EXCL    = 0x400\n\tIPC_NOWAIT  = 0x800\n\tIPC_PRIVATE = 0x0\n)\n\nconst (\n\tIPC_RMID = 0x0\n\tIPC_SET  = 0x1\n\tIPC_STAT = 0x2\n)\n\nconst (\n\tSHM_RDONLY = 0x1000\n\tSHM_RND    = 0x2000\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go",
    "content": "// cgo -godefs types_darwin.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && darwin\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int32\n\t_    [4]byte\n}\n\ntype Timeval32 struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     int32\n\tMode    uint16\n\tNlink   uint16\n\tIno     uint64\n\tUid     uint32\n\tGid     uint32\n\tRdev    int32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\tLspare  int32\n\tQspare  [2]int64\n}\n\ntype Statfs_t struct {\n\tBsize       uint32\n\tIosize      int32\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      uint64\n\tFiles       uint64\n\tFfree       uint64\n\tFsid        Fsid\n\tOwner       uint32\n\tType        uint32\n\tFlags       uint32\n\tFssubtype   uint32\n\tFstypename  [16]byte\n\tMntonname   [1024]byte\n\tMntfromname [1024]byte\n\tFlags_ext   uint32\n\tReserved    [7]uint32\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Fstore_t struct {\n\tFlags      uint32\n\tPosmode    int32\n\tOffset     int64\n\tLength     int64\n\tBytesalloc int64\n}\n\ntype Radvisory_t struct {\n\tOffset int64\n\tCount  int32\n\t_      [4]byte\n}\n\ntype Fbootstraptransfer_t struct {\n\tOffset int64\n\tLength uint64\n\tBuffer *byte\n}\n\ntype Log2phys_t struct {\n\tFlags uint32\n\t_     [16]byte\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\ntype Dirent struct {\n\tIno     uint64\n\tSeekoff uint64\n\tReclen  uint16\n\tNamlen  uint16\n\tType    uint8\n\tName    [1024]int8\n\t_       [3]byte\n}\n\ntype Attrlist struct {\n\tBitmapcount uint16\n\tReserved    uint16\n\tCommonattr  uint32\n\tVolattr     uint32\n\tDirattr     uint32\n\tFileattr    uint32\n\tForkattr    uint32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype RawSockaddrCtl struct {\n\tSc_len      uint8\n\tSc_family   uint8\n\tSs_sysaddr  uint16\n\tSc_id       uint32\n\tSc_unit     uint32\n\tSc_reserved [5]uint32\n}\n\ntype RawSockaddrVM struct {\n\tLen       uint8\n\tFamily    uint8\n\tReserved1 uint16\n\tPort      uint32\n\tCid       uint32\n}\n\ntype XVSockPCB struct {\n\tXv_len           uint32\n\tXv_vsockpp       uint64\n\tXvp_local_cid    uint32\n\tXvp_local_port   uint32\n\tXvp_remote_cid   uint32\n\tXvp_remote_port  uint32\n\tXvp_rxcnt        uint32\n\tXvp_txcnt        uint32\n\tXvp_peer_rxhiwat uint32\n\tXvp_peer_rxcnt   uint32\n\tXvp_last_pid     int32\n\tXvp_gencnt       uint64\n\tXv_socket        XSocket\n\t_                [4]byte\n}\n\ntype XSocket struct {\n\tXso_len      uint32\n\tXso_so       uint32\n\tSo_type      int16\n\tSo_options   int16\n\tSo_linger    int16\n\tSo_state     int16\n\tSo_pcb       uint32\n\tXso_protocol int32\n\tXso_family   int32\n\tSo_qlen      int16\n\tSo_incqlen   int16\n\tSo_qlimit    int16\n\tSo_timeo     int16\n\tSo_error     uint16\n\tSo_pgid      int32\n\tSo_oobmark   uint32\n\tSo_rcv       XSockbuf\n\tSo_snd       XSockbuf\n\tSo_uid       uint32\n}\n\ntype XSocket64 struct {\n\tXso_len      uint32\n\t_            [8]byte\n\tSo_type      int16\n\tSo_options   int16\n\tSo_linger    int16\n\tSo_state     int16\n\t_            [8]byte\n\tXso_protocol int32\n\tXso_family   int32\n\tSo_qlen      int16\n\tSo_incqlen   int16\n\tSo_qlimit    int16\n\tSo_timeo     int16\n\tSo_error     uint16\n\tSo_pgid      int32\n\tSo_oobmark   uint32\n\tSo_rcv       XSockbuf\n\tSo_snd       XSockbuf\n\tSo_uid       uint32\n}\n\ntype XSockbuf struct {\n\tCc    uint32\n\tHiwat uint32\n\tMbcnt uint32\n\tMbmax uint32\n\tLowat int32\n\tFlags int16\n\tTimeo int16\n}\n\ntype XVSockPgen struct {\n\tLen   uint32\n\tCount uint64\n\tGen   uint64\n\tSogen uint64\n}\n\ntype _Socklen uint32\n\ntype SaeAssocID uint32\n\ntype SaeConnID uint32\n\ntype SaEndpoints struct {\n\tSrcif      uint32\n\tSrcaddr    *RawSockaddr\n\tSrcaddrlen uint32\n\tDstaddr    *RawSockaddr\n\tDstaddrlen uint32\n\t_          [4]byte\n}\n\ntype Xucred struct {\n\tVersion uint32\n\tUid     uint32\n\tNgroups int16\n\tGroups  [16]uint32\n}\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPMreqn struct {\n\tMultiaddr [4]byte /* in_addr */\n\tAddress   [4]byte /* in_addr */\n\tIfindex   int32\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet4Pktinfo struct {\n\tIfindex  uint32\n\tSpec_dst [4]byte /* in_addr */\n\tAddr     [4]byte /* in_addr */\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\ntype TCPConnectionInfo struct {\n\tState               uint8\n\tSnd_wscale          uint8\n\tRcv_wscale          uint8\n\t_                   uint8\n\tOptions             uint32\n\tFlags               uint32\n\tRto                 uint32\n\tMaxseg              uint32\n\tSnd_ssthresh        uint32\n\tSnd_cwnd            uint32\n\tSnd_wnd             uint32\n\tSnd_sbbytes         uint32\n\tRcv_wnd             uint32\n\tRttcur              uint32\n\tSrtt                uint32\n\tRttvar              uint32\n\tTxpackets           uint64\n\tTxbytes             uint64\n\tTxretransmitbytes   uint64\n\tRxpackets           uint64\n\tRxbytes             uint64\n\tRxoutoforderbytes   uint64\n\tTxretransmitpackets uint64\n}\n\nconst (\n\tSizeofSockaddrInet4     = 0x10\n\tSizeofSockaddrInet6     = 0x1c\n\tSizeofSockaddrAny       = 0x6c\n\tSizeofSockaddrUnix      = 0x6a\n\tSizeofSockaddrDatalink  = 0x14\n\tSizeofSockaddrCtl       = 0x20\n\tSizeofSockaddrVM        = 0xc\n\tSizeofXvsockpcb         = 0xa8\n\tSizeofXSocket           = 0x64\n\tSizeofXSockbuf          = 0x18\n\tSizeofXVSockPgen        = 0x20\n\tSizeofXucred            = 0x4c\n\tSizeofLinger            = 0x8\n\tSizeofIovec             = 0x10\n\tSizeofIPMreq            = 0x8\n\tSizeofIPMreqn           = 0xc\n\tSizeofIPv6Mreq          = 0x14\n\tSizeofMsghdr            = 0x30\n\tSizeofCmsghdr           = 0xc\n\tSizeofInet4Pktinfo      = 0xc\n\tSizeofInet6Pktinfo      = 0x14\n\tSizeofIPv6MTUInfo       = 0x20\n\tSizeofICMPv6Filter      = 0x20\n\tSizeofTCPConnectionInfo = 0x70\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [32]int32\n}\n\nconst (\n\tSizeofIfMsghdr    = 0x70\n\tSizeofIfMsghdr2   = 0xa0\n\tSizeofIfData      = 0x60\n\tSizeofIfData64    = 0x80\n\tSizeofIfaMsghdr   = 0x14\n\tSizeofIfmaMsghdr  = 0x10\n\tSizeofIfmaMsghdr2 = 0x14\n\tSizeofRtMsghdr    = 0x5c\n\tSizeofRtMsghdr2   = 0x5c\n\tSizeofRtMetrics   = 0x38\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\tData    IfData\n}\n\ntype IfMsghdr2 struct {\n\tMsglen     uint16\n\tVersion    uint8\n\tType       uint8\n\tAddrs      int32\n\tFlags      int32\n\tIndex      uint16\n\tSnd_len    int32\n\tSnd_maxlen int32\n\tSnd_drops  int32\n\tTimer      int32\n\tData       IfData64\n}\n\ntype IfData struct {\n\tType       uint8\n\tTypelen    uint8\n\tPhysical   uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tRecvquota  uint8\n\tXmitquota  uint8\n\tUnused1    uint8\n\tMtu        uint32\n\tMetric     uint32\n\tBaudrate   uint32\n\tIpackets   uint32\n\tIerrors    uint32\n\tOpackets   uint32\n\tOerrors    uint32\n\tCollisions uint32\n\tIbytes     uint32\n\tObytes     uint32\n\tImcasts    uint32\n\tOmcasts    uint32\n\tIqdrops    uint32\n\tNoproto    uint32\n\tRecvtiming uint32\n\tXmittiming uint32\n\tLastchange Timeval32\n\tUnused2    uint32\n\tHwassist   uint32\n\tReserved1  uint32\n\tReserved2  uint32\n}\n\ntype IfData64 struct {\n\tType       uint8\n\tTypelen    uint8\n\tPhysical   uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tRecvquota  uint8\n\tXmitquota  uint8\n\tUnused1    uint8\n\tMtu        uint32\n\tMetric     uint32\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tNoproto    uint64\n\tRecvtiming uint32\n\tXmittiming uint32\n\tLastchange Timeval32\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\tMetric  int32\n}\n\ntype IfmaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       [2]byte\n}\n\ntype IfmaMsghdr2 struct {\n\tMsglen   uint16\n\tVersion  uint8\n\tType     uint8\n\tAddrs    int32\n\tFlags    int32\n\tIndex    uint16\n\tRefcount int32\n}\n\ntype RtMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tFlags   int32\n\tAddrs   int32\n\tPid     int32\n\tSeq     int32\n\tErrno   int32\n\tUse     int32\n\tInits   uint32\n\tRmx     RtMetrics\n}\n\ntype RtMsghdr2 struct {\n\tMsglen      uint16\n\tVersion     uint8\n\tType        uint8\n\tIndex       uint16\n\tFlags       int32\n\tAddrs       int32\n\tRefcnt      int32\n\tParentflags int32\n\tReserved    int32\n\tUse         int32\n\tInits       uint32\n\tRmx         RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint32\n\tMtu      uint32\n\tHopcount uint32\n\tExpire   int32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPksent   uint32\n\tState    uint32\n\tFiller   [3]uint32\n}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x14\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  Timeval32\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\t_       [2]byte\n}\n\ntype Termios struct {\n\tIflag  uint64\n\tOflag  uint64\n\tCflag  uint64\n\tLflag  uint64\n\tCc     [20]uint8\n\tIspeed uint64\n\tOspeed uint64\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x2\n\tAT_REMOVEDIR        = 0x80\n\tAT_SYMLINK_FOLLOW   = 0x40\n\tAT_SYMLINK_NOFOLLOW = 0x20\n\tAT_EACCESS          = 0x10\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz      int32\n\tTick    int32\n\tTickadj int32\n\tStathz  int32\n\tProfhz  int32\n}\n\ntype CtlInfo struct {\n\tId   uint32\n\tName [96]byte\n}\n\nconst SizeofKinfoProc = 0x288\n\ntype Eproc struct {\n\tPaddr   uintptr\n\tSess    uintptr\n\tPcred   Pcred\n\tUcred   Ucred\n\tVm      Vmspace\n\tPpid    int32\n\tPgid    int32\n\tJobc    int16\n\tTdev    int32\n\tTpgid   int32\n\tTsess   uintptr\n\tWmesg   [8]byte\n\tXsize   int32\n\tXrssize int16\n\tXccount int16\n\tXswrss  int16\n\tFlag    int32\n\tLogin   [12]byte\n\tSpare   [4]int32\n\t_       [4]byte\n}\n\ntype ExternProc struct {\n\tP_starttime Timeval\n\tP_vmspace   *Vmspace\n\tP_sigacts   uintptr\n\tP_flag      int32\n\tP_stat      int8\n\tP_pid       int32\n\tP_oppid     int32\n\tP_dupfd     int32\n\tUser_stack  *int8\n\tExit_thread *byte\n\tP_debugger  int32\n\tSigwait     int32\n\tP_estcpu    uint32\n\tP_cpticks   int32\n\tP_pctcpu    uint32\n\tP_wchan     *byte\n\tP_wmesg     *int8\n\tP_swtime    uint32\n\tP_slptime   uint32\n\tP_realtimer Itimerval\n\tP_rtime     Timeval\n\tP_uticks    uint64\n\tP_sticks    uint64\n\tP_iticks    uint64\n\tP_traceflag int32\n\tP_tracep    uintptr\n\tP_siglist   int32\n\tP_textvp    uintptr\n\tP_holdcnt   int32\n\tP_sigmask   uint32\n\tP_sigignore uint32\n\tP_sigcatch  uint32\n\tP_priority  uint8\n\tP_usrpri    uint8\n\tP_nice      int8\n\tP_comm      [17]byte\n\tP_pgrp      uintptr\n\tP_addr      uintptr\n\tP_xstat     uint16\n\tP_acflag    uint16\n\tP_ru        *Rusage\n}\n\ntype Itimerval struct {\n\tInterval Timeval\n\tValue    Timeval\n}\n\ntype KinfoProc struct {\n\tProc  ExternProc\n\tEproc Eproc\n}\n\ntype Vmspace struct {\n\tDummy  int32\n\tDummy2 *int8\n\tDummy3 [5]int32\n\tDummy4 [3]*int8\n}\n\ntype Pcred struct {\n\tPc_lock  [72]int8\n\tPc_ucred uintptr\n\tP_ruid   uint32\n\tP_svuid  uint32\n\tP_rgid   uint32\n\tP_svgid  uint32\n\tP_refcnt int32\n\t_        [4]byte\n}\n\ntype Ucred struct {\n\tRef     int32\n\tUid     uint32\n\tNgroups int16\n\tGroups  [16]uint32\n}\n\ntype SysvIpcPerm struct {\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint16\n\t_    uint16\n\t_    int32\n}\ntype SysvShmDesc struct {\n\tPerm   SysvIpcPerm\n\tSegsz  uint64\n\tLpid   int32\n\tCpid   int32\n\tNattch uint16\n\t_      [34]byte\n}\n\nconst (\n\tIPC_CREAT   = 0x200\n\tIPC_EXCL    = 0x400\n\tIPC_NOWAIT  = 0x800\n\tIPC_PRIVATE = 0x0\n)\n\nconst (\n\tIPC_RMID = 0x0\n\tIPC_SET  = 0x1\n\tIPC_STAT = 0x2\n)\n\nconst (\n\tSHM_RDONLY = 0x1000\n\tSHM_RND    = 0x2000\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go",
    "content": "// cgo -godefs types_dragonfly.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && dragonfly\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur int64\n\tMax int64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tIno     uint64\n\tNlink   uint32\n\tDev     uint32\n\tMode    uint16\n\t_1      uint16\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\t_       uint32\n\tFlags   uint32\n\tGen     uint32\n\tLspare  int32\n\tBlksize int64\n\tQspare2 int64\n}\n\ntype Statfs_t struct {\n\tSpare2      int64\n\tBsize       int64\n\tIosize      int64\n\tBlocks      int64\n\tBfree       int64\n\tBavail      int64\n\tFiles       int64\n\tFfree       int64\n\tFsid        Fsid\n\tOwner       uint32\n\tType        int32\n\tFlags       int32\n\tSyncwrites  int64\n\tAsyncwrites int64\n\tFstypename  [16]byte\n\tMntonname   [80]byte\n\tSyncreads   int64\n\tAsyncreads  int64\n\tSpares1     int16\n\tMntfromname [80]byte\n\tSpares2     int16\n\tSpare       [2]int64\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno  uint64\n\tNamlen  uint16\n\tType    uint8\n\tUnused1 uint8\n\tUnused2 uint32\n\tName    [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n\tRcf    uint16\n\tRoute  [16]uint16\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x36\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [16]uint64\n}\n\nconst (\n\tSizeofIfMsghdr         = 0xb0\n\tSizeofIfData           = 0xa0\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfmaMsghdr       = 0x10\n\tSizeofIfAnnounceMsghdr = 0x18\n\tSizeofRtMsghdr         = 0x98\n\tSizeofRtMetrics        = 0x70\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tFlags   int32\n\tAddrs   int32\n\tData    IfData\n}\n\ntype IfData struct {\n\tType       uint8\n\tPhysical   uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tRecvquota  uint8\n\tXmitquota  uint8\n\tMtu        uint64\n\tMetric     uint64\n\tLink_state uint64\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tNoproto    uint64\n\tHwassist   uint64\n\tOqdrops    uint64\n\tLastchange Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tIndex     uint16\n\tFlags     int32\n\tAddrs     int32\n\tAddrflags int32\n\tMetric    int32\n}\n\ntype IfmaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tFlags   int32\n\tAddrs   int32\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tName    [16]int8\n\tWhat    uint16\n}\n\ntype RtMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tFlags   int32\n\tAddrs   int32\n\tPid     int32\n\tSeq     int32\n\tErrno   int32\n\tUse     int32\n\tInits   uint64\n\tRmx     RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks     uint64\n\tMtu       uint64\n\tPksent    uint64\n\tExpire    uint64\n\tSendpipe  uint64\n\tSsthresh  uint64\n\tRtt       uint64\n\tRttvar    uint64\n\tRecvpipe  uint64\n\tHopcount  uint64\n\tMssopt    uint16\n\tPad       uint16\n\tMsl       uint64\n\tIwmaxsegs uint64\n\tIwcapsegs uint64\n}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x20\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  Timeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\t_       [6]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = 0xfffafdcd\n\tAT_SYMLINK_NOFOLLOW = 0x1\n\tAT_REMOVEDIR        = 0x2\n\tAT_EACCESS          = 0x4\n\tAT_SYMLINK_FOLLOW   = 0x8\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Utsname struct {\n\tSysname  [32]byte\n\tNodename [32]byte\n\tRelease  [32]byte\n\tVersion  [32]byte\n\tMachine  [32]byte\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz      int32\n\tTick    int32\n\tTickadj int32\n\tStathz  int32\n\tProfhz  int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go",
    "content": "// cgo -godefs types_freebsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build 386 && freebsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x4\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x4\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int32\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int32\n\tNsec int32\n}\n\ntype Timeval struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Time_t int32\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Rlimit struct {\n\tCur int64\n\tMax int64\n}\n\ntype _Gid_t uint32\n\nconst (\n\t_statfsVersion = 0x20140518\n\t_dirblksiz     = 0x400\n)\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tNlink   uint64\n\tMode    uint16\n\t_0      int16\n\tUid     uint32\n\tGid     uint32\n\t_1      int32\n\tRdev    uint64\n\t_       int32\n\tAtim    Timespec\n\t_       int32\n\tMtim    Timespec\n\t_       int32\n\tCtim    Timespec\n\t_       int32\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint64\n\tSpare   [10]uint64\n}\n\ntype Statfs_t struct {\n\tVersion     uint32\n\tType        uint32\n\tFlags       uint64\n\tBsize       uint64\n\tIosize      uint64\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      int64\n\tFiles       uint64\n\tFfree       int64\n\tSyncwrites  uint64\n\tAsyncwrites uint64\n\tSyncreads   uint64\n\tAsyncreads  uint64\n\tSpare       [10]uint64\n\tNamemax     uint32\n\tOwner       uint32\n\tFsid        Fsid\n\tCharspare   [80]int8\n\tFstypename  [16]byte\n\tMntfromname [1024]byte\n\tMntonname   [1024]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n\tSysid  int32\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tPad0   uint8\n\tNamlen uint16\n\tPad1   uint16\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [46]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Xucred struct {\n\tVersion uint32\n\tUid     uint32\n\tNgroups int16\n\tGroups  [16]uint32\n\t_       *byte\n}\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPMreqn struct {\n\tMultiaddr [4]byte /* in_addr */\n\tAddress   [4]byte /* in_addr */\n\tIfindex   int32\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x36\n\tSizeofXucred           = 0x50\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPMreqn          = 0xc\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x1c\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype PtraceLwpInfoStruct struct {\n\tLwpid        int32\n\tEvent        int32\n\tFlags        int32\n\tSigmask      Sigset_t\n\tSiglist      Sigset_t\n\tSiginfo      __PtraceSiginfo\n\tTdname       [20]int8\n\tChild_pid    int32\n\tSyscall_code uint32\n\tSyscall_narg uint32\n}\n\ntype __Siginfo struct {\n\tSigno  int32\n\tErrno  int32\n\tCode   int32\n\tPid    int32\n\tUid    uint32\n\tStatus int32\n\tAddr   *byte\n\tValue  [4]byte\n\t_      [32]byte\n}\ntype __PtraceSiginfo struct {\n\tSigno  int32\n\tErrno  int32\n\tCode   int32\n\tPid    int32\n\tUid    uint32\n\tStatus int32\n\tAddr   uintptr\n\tValue  [4]byte\n\t_      [32]byte\n}\n\ntype Sigset_t struct {\n\tVal [4]uint32\n}\n\ntype Reg struct {\n\tFs     uint32\n\tEs     uint32\n\tDs     uint32\n\tEdi    uint32\n\tEsi    uint32\n\tEbp    uint32\n\tIsp    uint32\n\tEbx    uint32\n\tEdx    uint32\n\tEcx    uint32\n\tEax    uint32\n\tTrapno uint32\n\tErr    uint32\n\tEip    uint32\n\tCs     uint32\n\tEflags uint32\n\tEsp    uint32\n\tSs     uint32\n\tGs     uint32\n}\n\ntype FpReg struct {\n\tEnv   [7]uint32\n\tAcc   [8][10]uint8\n\tEx_sw uint32\n\tPad   [64]uint8\n}\n\ntype FpExtendedPrecision struct{}\n\ntype PtraceIoDesc struct {\n\tOp   int32\n\tOffs uintptr\n\tAddr *byte\n\tLen  uint32\n}\n\ntype Kevent_t struct {\n\tIdent  uint32\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n\tExt    [4]uint64\n}\n\ntype FdSet struct {\n\tBits [32]uint32\n}\n\nconst (\n\tsizeofIfMsghdr         = 0xa8\n\tSizeofIfMsghdr         = 0x60\n\tsizeofIfData           = 0x98\n\tSizeofIfData           = 0x50\n\tSizeofIfaMsghdr        = 0x14\n\tSizeofIfmaMsghdr       = 0x10\n\tSizeofIfAnnounceMsghdr = 0x18\n\tSizeofRtMsghdr         = 0x5c\n\tSizeofRtMetrics        = 0x38\n)\n\ntype ifMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n\tData    ifData\n}\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\tData    IfData\n}\n\ntype ifData struct {\n\tType       uint8\n\tPhysical   uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tLink_state uint8\n\tVhid       uint8\n\tDatalen    uint16\n\tMtu        uint32\n\tMetric     uint32\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tOqdrops    uint64\n\tNoproto    uint64\n\tHwassist   uint64\n\t_          [8]byte\n\t_          [16]byte\n}\n\ntype IfData struct {\n\tType        uint8\n\tPhysical    uint8\n\tAddrlen     uint8\n\tHdrlen      uint8\n\tLink_state  uint8\n\tSpare_char1 uint8\n\tSpare_char2 uint8\n\tDatalen     uint8\n\tMtu         uint32\n\tMetric      uint32\n\tBaudrate    uint32\n\tIpackets    uint32\n\tIerrors     uint32\n\tOpackets    uint32\n\tOerrors     uint32\n\tCollisions  uint32\n\tIbytes      uint32\n\tObytes      uint32\n\tImcasts     uint32\n\tOmcasts     uint32\n\tIqdrops     uint32\n\tNoproto     uint32\n\tHwassist    uint32\n\tEpoch       int32\n\tLastchange  Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n\tMetric  int32\n}\n\ntype IfmaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tName    [16]int8\n\tWhat    uint16\n}\n\ntype RtMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\t_       uint16\n\tFlags   int32\n\tAddrs   int32\n\tPid     int32\n\tSeq     int32\n\tErrno   int32\n\tFmask   int32\n\tInits   uint32\n\tRmx     RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint32\n\tMtu      uint32\n\tHopcount uint32\n\tExpire   uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPksent   uint32\n\tWeight   uint32\n\tFiller   [3]uint32\n}\n\nconst (\n\tSizeofBpfVersion    = 0x4\n\tSizeofBpfStat       = 0x8\n\tSizeofBpfZbuf       = 0xc\n\tSizeofBpfProgram    = 0x8\n\tSizeofBpfInsn       = 0x8\n\tSizeofBpfHdr        = 0x14\n\tSizeofBpfZbufHeader = 0x20\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfZbuf struct {\n\tBufa   *byte\n\tBufb   *byte\n\tBuflen uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  Timeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\t_       [2]byte\n}\n\ntype BpfZbufHeader struct {\n\tKernel_gen uint32\n\tKernel_len uint32\n\tUser_gen   uint32\n\t_          [5]uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x100\n\tAT_SYMLINK_NOFOLLOW = 0x200\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_REMOVEDIR        = 0x800\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR      = 0x8\n\tPOLLHUP      = 0x10\n\tPOLLIN       = 0x1\n\tPOLLINIGNEOF = 0x2000\n\tPOLLNVAL     = 0x20\n\tPOLLOUT      = 0x4\n\tPOLLPRI      = 0x2\n\tPOLLRDBAND   = 0x80\n\tPOLLRDNORM   = 0x40\n\tPOLLWRBAND   = 0x100\n\tPOLLWRNORM   = 0x4\n\tPOLLRDHUP    = 0x4000\n)\n\ntype CapRights struct {\n\tRights [2]uint64\n}\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz     int32\n\tTick   int32\n\tSpare  int32\n\tStathz int32\n\tProfhz int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go",
    "content": "// cgo -godefs types_freebsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && freebsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Time_t int64\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur int64\n\tMax int64\n}\n\ntype _Gid_t uint32\n\nconst (\n\t_statfsVersion = 0x20140518\n\t_dirblksiz     = 0x400\n)\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tNlink   uint64\n\tMode    uint16\n\t_0      int16\n\tUid     uint32\n\tGid     uint32\n\t_1      int32\n\tRdev    uint64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint64\n\tSpare   [10]uint64\n}\n\ntype Statfs_t struct {\n\tVersion     uint32\n\tType        uint32\n\tFlags       uint64\n\tBsize       uint64\n\tIosize      uint64\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      int64\n\tFiles       uint64\n\tFfree       int64\n\tSyncwrites  uint64\n\tAsyncwrites uint64\n\tSyncreads   uint64\n\tAsyncreads  uint64\n\tSpare       [10]uint64\n\tNamemax     uint32\n\tOwner       uint32\n\tFsid        Fsid\n\tCharspare   [80]int8\n\tFstypename  [16]byte\n\tMntfromname [1024]byte\n\tMntonname   [1024]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n\tSysid  int32\n\t_      [4]byte\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tPad0   uint8\n\tNamlen uint16\n\tPad1   uint16\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [46]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Xucred struct {\n\tVersion uint32\n\tUid     uint32\n\tNgroups int16\n\tGroups  [16]uint32\n\t_       *byte\n}\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPMreqn struct {\n\tMultiaddr [4]byte /* in_addr */\n\tAddress   [4]byte /* in_addr */\n\tIfindex   int32\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x36\n\tSizeofXucred           = 0x58\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPMreqn          = 0xc\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype PtraceLwpInfoStruct struct {\n\tLwpid        int32\n\tEvent        int32\n\tFlags        int32\n\tSigmask      Sigset_t\n\tSiglist      Sigset_t\n\tSiginfo      __PtraceSiginfo\n\tTdname       [20]int8\n\tChild_pid    int32\n\tSyscall_code uint32\n\tSyscall_narg uint32\n}\n\ntype __Siginfo struct {\n\tSigno  int32\n\tErrno  int32\n\tCode   int32\n\tPid    int32\n\tUid    uint32\n\tStatus int32\n\tAddr   *byte\n\tValue  [8]byte\n\t_      [40]byte\n}\n\ntype __PtraceSiginfo struct {\n\tSigno  int32\n\tErrno  int32\n\tCode   int32\n\tPid    int32\n\tUid    uint32\n\tStatus int32\n\tAddr   uintptr\n\tValue  [8]byte\n\t_      [40]byte\n}\n\ntype Sigset_t struct {\n\tVal [4]uint32\n}\n\ntype Reg struct {\n\tR15    int64\n\tR14    int64\n\tR13    int64\n\tR12    int64\n\tR11    int64\n\tR10    int64\n\tR9     int64\n\tR8     int64\n\tRdi    int64\n\tRsi    int64\n\tRbp    int64\n\tRbx    int64\n\tRdx    int64\n\tRcx    int64\n\tRax    int64\n\tTrapno uint32\n\tFs     uint16\n\tGs     uint16\n\tErr    uint32\n\tEs     uint16\n\tDs     uint16\n\tRip    int64\n\tCs     int64\n\tRflags int64\n\tRsp    int64\n\tSs     int64\n}\n\ntype FpReg struct {\n\tEnv   [4]uint64\n\tAcc   [8][16]uint8\n\tXacc  [16][16]uint8\n\tSpare [12]uint64\n}\n\ntype FpExtendedPrecision struct{}\n\ntype PtraceIoDesc struct {\n\tOp   int32\n\tOffs uintptr\n\tAddr *byte\n\tLen  uint64\n}\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n\tExt    [4]uint64\n}\n\ntype FdSet struct {\n\tBits [16]uint64\n}\n\nconst (\n\tsizeofIfMsghdr         = 0xa8\n\tSizeofIfMsghdr         = 0xa8\n\tsizeofIfData           = 0x98\n\tSizeofIfData           = 0x98\n\tSizeofIfaMsghdr        = 0x14\n\tSizeofIfmaMsghdr       = 0x10\n\tSizeofIfAnnounceMsghdr = 0x18\n\tSizeofRtMsghdr         = 0x98\n\tSizeofRtMetrics        = 0x70\n)\n\ntype ifMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n\tData    ifData\n}\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\tData    IfData\n}\n\ntype ifData struct {\n\tType       uint8\n\tPhysical   uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tLink_state uint8\n\tVhid       uint8\n\tDatalen    uint16\n\tMtu        uint32\n\tMetric     uint32\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tOqdrops    uint64\n\tNoproto    uint64\n\tHwassist   uint64\n\t_          [8]byte\n\t_          [16]byte\n}\n\ntype IfData struct {\n\tType        uint8\n\tPhysical    uint8\n\tAddrlen     uint8\n\tHdrlen      uint8\n\tLink_state  uint8\n\tSpare_char1 uint8\n\tSpare_char2 uint8\n\tDatalen     uint8\n\tMtu         uint64\n\tMetric      uint64\n\tBaudrate    uint64\n\tIpackets    uint64\n\tIerrors     uint64\n\tOpackets    uint64\n\tOerrors     uint64\n\tCollisions  uint64\n\tIbytes      uint64\n\tObytes      uint64\n\tImcasts     uint64\n\tOmcasts     uint64\n\tIqdrops     uint64\n\tNoproto     uint64\n\tHwassist    uint64\n\tEpoch       int64\n\tLastchange  Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n\tMetric  int32\n}\n\ntype IfmaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tName    [16]int8\n\tWhat    uint16\n}\n\ntype RtMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\t_       uint16\n\tFlags   int32\n\tAddrs   int32\n\tPid     int32\n\tSeq     int32\n\tErrno   int32\n\tFmask   int32\n\tInits   uint64\n\tRmx     RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint64\n\tMtu      uint64\n\tHopcount uint64\n\tExpire   uint64\n\tRecvpipe uint64\n\tSendpipe uint64\n\tSsthresh uint64\n\tRtt      uint64\n\tRttvar   uint64\n\tPksent   uint64\n\tWeight   uint64\n\tFiller   [3]uint64\n}\n\nconst (\n\tSizeofBpfVersion    = 0x4\n\tSizeofBpfStat       = 0x8\n\tSizeofBpfZbuf       = 0x18\n\tSizeofBpfProgram    = 0x10\n\tSizeofBpfInsn       = 0x8\n\tSizeofBpfHdr        = 0x20\n\tSizeofBpfZbufHeader = 0x20\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfZbuf struct {\n\tBufa   *byte\n\tBufb   *byte\n\tBuflen uint64\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  Timeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\t_       [6]byte\n}\n\ntype BpfZbufHeader struct {\n\tKernel_gen uint32\n\tKernel_len uint32\n\tUser_gen   uint32\n\t_          [5]uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x100\n\tAT_SYMLINK_NOFOLLOW = 0x200\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_REMOVEDIR        = 0x800\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR      = 0x8\n\tPOLLHUP      = 0x10\n\tPOLLIN       = 0x1\n\tPOLLINIGNEOF = 0x2000\n\tPOLLNVAL     = 0x20\n\tPOLLOUT      = 0x4\n\tPOLLPRI      = 0x2\n\tPOLLRDBAND   = 0x80\n\tPOLLRDNORM   = 0x40\n\tPOLLWRBAND   = 0x100\n\tPOLLWRNORM   = 0x4\n\tPOLLRDHUP    = 0x4000\n)\n\ntype CapRights struct {\n\tRights [2]uint64\n}\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz     int32\n\tTick   int32\n\tSpare  int32\n\tStathz int32\n\tProfhz int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go",
    "content": "// cgo -godefs -- -fsigned-char types_freebsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm && freebsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x4\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x4\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int32\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int32\n\t_    [4]byte\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int32\n\t_    [4]byte\n}\n\ntype Time_t int64\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Rlimit struct {\n\tCur int64\n\tMax int64\n}\n\ntype _Gid_t uint32\n\nconst (\n\t_statfsVersion = 0x20140518\n\t_dirblksiz     = 0x400\n)\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tNlink   uint64\n\tMode    uint16\n\t_0      int16\n\tUid     uint32\n\tGid     uint32\n\t_1      int32\n\tRdev    uint64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint64\n\tSpare   [10]uint64\n}\n\ntype Statfs_t struct {\n\tVersion     uint32\n\tType        uint32\n\tFlags       uint64\n\tBsize       uint64\n\tIosize      uint64\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      int64\n\tFiles       uint64\n\tFfree       int64\n\tSyncwrites  uint64\n\tAsyncwrites uint64\n\tSyncreads   uint64\n\tAsyncreads  uint64\n\tSpare       [10]uint64\n\tNamemax     uint32\n\tOwner       uint32\n\tFsid        Fsid\n\tCharspare   [80]int8\n\tFstypename  [16]byte\n\tMntfromname [1024]byte\n\tMntonname   [1024]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n\tSysid  int32\n\t_      [4]byte\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tPad0   uint8\n\tNamlen uint16\n\tPad1   uint16\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [46]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Xucred struct {\n\tVersion uint32\n\tUid     uint32\n\tNgroups int16\n\tGroups  [16]uint32\n\t_       *byte\n}\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPMreqn struct {\n\tMultiaddr [4]byte /* in_addr */\n\tAddress   [4]byte /* in_addr */\n\tIfindex   int32\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x36\n\tSizeofXucred           = 0x50\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPMreqn          = 0xc\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x1c\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype PtraceLwpInfoStruct struct {\n\tLwpid        int32\n\tEvent        int32\n\tFlags        int32\n\tSigmask      Sigset_t\n\tSiglist      Sigset_t\n\tSiginfo      __PtraceSiginfo\n\tTdname       [20]int8\n\tChild_pid    int32\n\tSyscall_code uint32\n\tSyscall_narg uint32\n}\n\ntype __Siginfo struct {\n\tSigno  int32\n\tErrno  int32\n\tCode   int32\n\tPid    int32\n\tUid    uint32\n\tStatus int32\n\tAddr   *byte\n\tValue  [4]byte\n\t_      [32]byte\n}\n\ntype __PtraceSiginfo struct {\n\tSigno  int32\n\tErrno  int32\n\tCode   int32\n\tPid    int32\n\tUid    uint32\n\tStatus int32\n\tAddr   uintptr\n\tValue  [4]byte\n\t_      [32]byte\n}\n\ntype Sigset_t struct {\n\tVal [4]uint32\n}\n\ntype Reg struct {\n\tR    [13]uint32\n\tSp   uint32\n\tLr   uint32\n\tPc   uint32\n\tCpsr uint32\n}\n\ntype FpReg struct {\n\tFpsr uint32\n\tFpr  [8]FpExtendedPrecision\n}\n\ntype FpExtendedPrecision struct {\n\tExponent    uint32\n\tMantissa_hi uint32\n\tMantissa_lo uint32\n}\n\ntype PtraceIoDesc struct {\n\tOp   int32\n\tOffs uintptr\n\tAddr *byte\n\tLen  uint32\n}\n\ntype Kevent_t struct {\n\tIdent  uint32\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\t_      [4]byte\n\tData   int64\n\tUdata  *byte\n\t_      [4]byte\n\tExt    [4]uint64\n}\n\ntype FdSet struct {\n\tBits [32]uint32\n}\n\nconst (\n\tsizeofIfMsghdr         = 0xa8\n\tSizeofIfMsghdr         = 0x70\n\tsizeofIfData           = 0x98\n\tSizeofIfData           = 0x60\n\tSizeofIfaMsghdr        = 0x14\n\tSizeofIfmaMsghdr       = 0x10\n\tSizeofIfAnnounceMsghdr = 0x18\n\tSizeofRtMsghdr         = 0x5c\n\tSizeofRtMetrics        = 0x38\n)\n\ntype ifMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n\tData    ifData\n}\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\tData    IfData\n}\n\ntype ifData struct {\n\tType       uint8\n\tPhysical   uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tLink_state uint8\n\tVhid       uint8\n\tDatalen    uint16\n\tMtu        uint32\n\tMetric     uint32\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tOqdrops    uint64\n\tNoproto    uint64\n\tHwassist   uint64\n\t_          [8]byte\n\t_          [16]byte\n}\n\ntype IfData struct {\n\tType        uint8\n\tPhysical    uint8\n\tAddrlen     uint8\n\tHdrlen      uint8\n\tLink_state  uint8\n\tSpare_char1 uint8\n\tSpare_char2 uint8\n\tDatalen     uint8\n\tMtu         uint32\n\tMetric      uint32\n\tBaudrate    uint32\n\tIpackets    uint32\n\tIerrors     uint32\n\tOpackets    uint32\n\tOerrors     uint32\n\tCollisions  uint32\n\tIbytes      uint32\n\tObytes      uint32\n\tImcasts     uint32\n\tOmcasts     uint32\n\tIqdrops     uint32\n\tNoproto     uint32\n\tHwassist    uint32\n\t_           [4]byte\n\tEpoch       int64\n\tLastchange  Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n\tMetric  int32\n}\n\ntype IfmaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tName    [16]int8\n\tWhat    uint16\n}\n\ntype RtMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\t_       uint16\n\tFlags   int32\n\tAddrs   int32\n\tPid     int32\n\tSeq     int32\n\tErrno   int32\n\tFmask   int32\n\tInits   uint32\n\tRmx     RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint32\n\tMtu      uint32\n\tHopcount uint32\n\tExpire   uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPksent   uint32\n\tWeight   uint32\n\tFiller   [3]uint32\n}\n\nconst (\n\tSizeofBpfVersion    = 0x4\n\tSizeofBpfStat       = 0x8\n\tSizeofBpfZbuf       = 0xc\n\tSizeofBpfProgram    = 0x8\n\tSizeofBpfInsn       = 0x8\n\tSizeofBpfHdr        = 0x20\n\tSizeofBpfZbufHeader = 0x20\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfZbuf struct {\n\tBufa   *byte\n\tBufb   *byte\n\tBuflen uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  Timeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\t_       [6]byte\n}\n\ntype BpfZbufHeader struct {\n\tKernel_gen uint32\n\tKernel_len uint32\n\tUser_gen   uint32\n\t_          [5]uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x100\n\tAT_SYMLINK_NOFOLLOW = 0x200\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_REMOVEDIR        = 0x800\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR      = 0x8\n\tPOLLHUP      = 0x10\n\tPOLLIN       = 0x1\n\tPOLLINIGNEOF = 0x2000\n\tPOLLNVAL     = 0x20\n\tPOLLOUT      = 0x4\n\tPOLLPRI      = 0x2\n\tPOLLRDBAND   = 0x80\n\tPOLLRDNORM   = 0x40\n\tPOLLWRBAND   = 0x100\n\tPOLLWRNORM   = 0x4\n\tPOLLRDHUP    = 0x4000\n)\n\ntype CapRights struct {\n\tRights [2]uint64\n}\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz     int32\n\tTick   int32\n\tSpare  int32\n\tStathz int32\n\tProfhz int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go",
    "content": "// cgo -godefs -- -fsigned-char types_freebsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && freebsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Time_t int64\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur int64\n\tMax int64\n}\n\ntype _Gid_t uint32\n\nconst (\n\t_statfsVersion = 0x20140518\n\t_dirblksiz     = 0x400\n)\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tNlink   uint64\n\tMode    uint16\n\t_0      int16\n\tUid     uint32\n\tGid     uint32\n\t_1      int32\n\tRdev    uint64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint64\n\tSpare   [10]uint64\n}\n\ntype Statfs_t struct {\n\tVersion     uint32\n\tType        uint32\n\tFlags       uint64\n\tBsize       uint64\n\tIosize      uint64\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      int64\n\tFiles       uint64\n\tFfree       int64\n\tSyncwrites  uint64\n\tAsyncwrites uint64\n\tSyncreads   uint64\n\tAsyncreads  uint64\n\tSpare       [10]uint64\n\tNamemax     uint32\n\tOwner       uint32\n\tFsid        Fsid\n\tCharspare   [80]int8\n\tFstypename  [16]byte\n\tMntfromname [1024]byte\n\tMntonname   [1024]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n\tSysid  int32\n\t_      [4]byte\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tPad0   uint8\n\tNamlen uint16\n\tPad1   uint16\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [46]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Xucred struct {\n\tVersion uint32\n\tUid     uint32\n\tNgroups int16\n\tGroups  [16]uint32\n\t_       *byte\n}\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPMreqn struct {\n\tMultiaddr [4]byte /* in_addr */\n\tAddress   [4]byte /* in_addr */\n\tIfindex   int32\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x36\n\tSizeofXucred           = 0x58\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPMreqn          = 0xc\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype PtraceLwpInfoStruct struct {\n\tLwpid        int32\n\tEvent        int32\n\tFlags        int32\n\tSigmask      Sigset_t\n\tSiglist      Sigset_t\n\tSiginfo      __PtraceSiginfo\n\tTdname       [20]int8\n\tChild_pid    int32\n\tSyscall_code uint32\n\tSyscall_narg uint32\n}\n\ntype __Siginfo struct {\n\tSigno  int32\n\tErrno  int32\n\tCode   int32\n\tPid    int32\n\tUid    uint32\n\tStatus int32\n\tAddr   *byte\n\tValue  [8]byte\n\t_      [40]byte\n}\n\ntype __PtraceSiginfo struct {\n\tSigno  int32\n\tErrno  int32\n\tCode   int32\n\tPid    int32\n\tUid    uint32\n\tStatus int32\n\tAddr   uintptr\n\tValue  [8]byte\n\t_      [40]byte\n}\n\ntype Sigset_t struct {\n\tVal [4]uint32\n}\n\ntype Reg struct {\n\tX    [30]uint64\n\tLr   uint64\n\tSp   uint64\n\tElr  uint64\n\tSpsr uint32\n\t_    [4]byte\n}\n\ntype FpReg struct {\n\tQ  [32][16]uint8\n\tSr uint32\n\tCr uint32\n\t_  [8]byte\n}\n\ntype FpExtendedPrecision struct{}\n\ntype PtraceIoDesc struct {\n\tOp   int32\n\tOffs uintptr\n\tAddr *byte\n\tLen  uint64\n}\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n\tExt    [4]uint64\n}\n\ntype FdSet struct {\n\tBits [16]uint64\n}\n\nconst (\n\tsizeofIfMsghdr         = 0xa8\n\tSizeofIfMsghdr         = 0xa8\n\tsizeofIfData           = 0x98\n\tSizeofIfData           = 0x98\n\tSizeofIfaMsghdr        = 0x14\n\tSizeofIfmaMsghdr       = 0x10\n\tSizeofIfAnnounceMsghdr = 0x18\n\tSizeofRtMsghdr         = 0x98\n\tSizeofRtMetrics        = 0x70\n)\n\ntype ifMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n\tData    ifData\n}\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\tData    IfData\n}\n\ntype ifData struct {\n\tType       uint8\n\tPhysical   uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tLink_state uint8\n\tVhid       uint8\n\tDatalen    uint16\n\tMtu        uint32\n\tMetric     uint32\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tOqdrops    uint64\n\tNoproto    uint64\n\tHwassist   uint64\n\t_          [8]byte\n\t_          [16]byte\n}\n\ntype IfData struct {\n\tType        uint8\n\tPhysical    uint8\n\tAddrlen     uint8\n\tHdrlen      uint8\n\tLink_state  uint8\n\tSpare_char1 uint8\n\tSpare_char2 uint8\n\tDatalen     uint8\n\tMtu         uint64\n\tMetric      uint64\n\tBaudrate    uint64\n\tIpackets    uint64\n\tIerrors     uint64\n\tOpackets    uint64\n\tOerrors     uint64\n\tCollisions  uint64\n\tIbytes      uint64\n\tObytes      uint64\n\tImcasts     uint64\n\tOmcasts     uint64\n\tIqdrops     uint64\n\tNoproto     uint64\n\tHwassist    uint64\n\tEpoch       int64\n\tLastchange  Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n\tMetric  int32\n}\n\ntype IfmaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tName    [16]int8\n\tWhat    uint16\n}\n\ntype RtMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\t_       uint16\n\tFlags   int32\n\tAddrs   int32\n\tPid     int32\n\tSeq     int32\n\tErrno   int32\n\tFmask   int32\n\tInits   uint64\n\tRmx     RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint64\n\tMtu      uint64\n\tHopcount uint64\n\tExpire   uint64\n\tRecvpipe uint64\n\tSendpipe uint64\n\tSsthresh uint64\n\tRtt      uint64\n\tRttvar   uint64\n\tPksent   uint64\n\tWeight   uint64\n\tFiller   [3]uint64\n}\n\nconst (\n\tSizeofBpfVersion    = 0x4\n\tSizeofBpfStat       = 0x8\n\tSizeofBpfZbuf       = 0x18\n\tSizeofBpfProgram    = 0x10\n\tSizeofBpfInsn       = 0x8\n\tSizeofBpfHdr        = 0x20\n\tSizeofBpfZbufHeader = 0x20\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfZbuf struct {\n\tBufa   *byte\n\tBufb   *byte\n\tBuflen uint64\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  Timeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\t_       [6]byte\n}\n\ntype BpfZbufHeader struct {\n\tKernel_gen uint32\n\tKernel_len uint32\n\tUser_gen   uint32\n\t_          [5]uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x100\n\tAT_SYMLINK_NOFOLLOW = 0x200\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_REMOVEDIR        = 0x800\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR      = 0x8\n\tPOLLHUP      = 0x10\n\tPOLLIN       = 0x1\n\tPOLLINIGNEOF = 0x2000\n\tPOLLNVAL     = 0x20\n\tPOLLOUT      = 0x4\n\tPOLLPRI      = 0x2\n\tPOLLRDBAND   = 0x80\n\tPOLLRDNORM   = 0x40\n\tPOLLWRBAND   = 0x100\n\tPOLLWRNORM   = 0x4\n\tPOLLRDHUP    = 0x4000\n)\n\ntype CapRights struct {\n\tRights [2]uint64\n}\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz     int32\n\tTick   int32\n\tSpare  int32\n\tStathz int32\n\tProfhz int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go",
    "content": "// cgo -godefs -- -fsigned-char types_freebsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build riscv64 && freebsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Time_t int64\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur int64\n\tMax int64\n}\n\ntype _Gid_t uint32\n\nconst (\n\t_statfsVersion = 0x20140518\n\t_dirblksiz     = 0x400\n)\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tNlink   uint64\n\tMode    uint16\n\t_0      int16\n\tUid     uint32\n\tGid     uint32\n\t_1      int32\n\tRdev    uint64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint64\n\tSpare   [10]uint64\n}\n\ntype Statfs_t struct {\n\tVersion     uint32\n\tType        uint32\n\tFlags       uint64\n\tBsize       uint64\n\tIosize      uint64\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      int64\n\tFiles       uint64\n\tFfree       int64\n\tSyncwrites  uint64\n\tAsyncwrites uint64\n\tSyncreads   uint64\n\tAsyncreads  uint64\n\tSpare       [10]uint64\n\tNamemax     uint32\n\tOwner       uint32\n\tFsid        Fsid\n\tCharspare   [80]int8\n\tFstypename  [16]byte\n\tMntfromname [1024]byte\n\tMntonname   [1024]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n\tSysid  int32\n\t_      [4]byte\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tPad0   uint8\n\tNamlen uint16\n\tPad1   uint16\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [46]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Xucred struct {\n\tVersion uint32\n\tUid     uint32\n\tNgroups int16\n\tGroups  [16]uint32\n\t_       *byte\n}\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPMreqn struct {\n\tMultiaddr [4]byte /* in_addr */\n\tAddress   [4]byte /* in_addr */\n\tIfindex   int32\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x36\n\tSizeofXucred           = 0x58\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPMreqn          = 0xc\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype PtraceLwpInfoStruct struct {\n\tLwpid        int32\n\tEvent        int32\n\tFlags        int32\n\tSigmask      Sigset_t\n\tSiglist      Sigset_t\n\tSiginfo      __PtraceSiginfo\n\tTdname       [20]int8\n\tChild_pid    int32\n\tSyscall_code uint32\n\tSyscall_narg uint32\n}\n\ntype __Siginfo struct {\n\tSigno  int32\n\tErrno  int32\n\tCode   int32\n\tPid    int32\n\tUid    uint32\n\tStatus int32\n\tAddr   *byte\n\tValue  [8]byte\n\t_      [40]byte\n}\n\ntype __PtraceSiginfo struct {\n\tSigno  int32\n\tErrno  int32\n\tCode   int32\n\tPid    int32\n\tUid    uint32\n\tStatus int32\n\tAddr   uintptr\n\tValue  [8]byte\n\t_      [40]byte\n}\n\ntype Sigset_t struct {\n\tVal [4]uint32\n}\n\ntype Reg struct {\n\tRa      uint64\n\tSp      uint64\n\tGp      uint64\n\tTp      uint64\n\tT       [7]uint64\n\tS       [12]uint64\n\tA       [8]uint64\n\tSepc    uint64\n\tSstatus uint64\n}\n\ntype FpReg struct {\n\tX    [32][2]uint64\n\tFcsr uint64\n}\n\ntype FpExtendedPrecision struct{}\n\ntype PtraceIoDesc struct {\n\tOp   int32\n\tOffs uintptr\n\tAddr *byte\n\tLen  uint64\n}\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n\tExt    [4]uint64\n}\n\ntype FdSet struct {\n\tBits [16]uint64\n}\n\nconst (\n\tsizeofIfMsghdr         = 0xa8\n\tSizeofIfMsghdr         = 0xa8\n\tsizeofIfData           = 0x98\n\tSizeofIfData           = 0x98\n\tSizeofIfaMsghdr        = 0x14\n\tSizeofIfmaMsghdr       = 0x10\n\tSizeofIfAnnounceMsghdr = 0x18\n\tSizeofRtMsghdr         = 0x98\n\tSizeofRtMetrics        = 0x70\n)\n\ntype ifMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n\tData    ifData\n}\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\tData    IfData\n}\n\ntype ifData struct {\n\tType       uint8\n\tPhysical   uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tLink_state uint8\n\tVhid       uint8\n\tDatalen    uint16\n\tMtu        uint32\n\tMetric     uint32\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tOqdrops    uint64\n\tNoproto    uint64\n\tHwassist   uint64\n\t_          [8]byte\n\t_          [16]byte\n}\n\ntype IfData struct {\n\tType        uint8\n\tPhysical    uint8\n\tAddrlen     uint8\n\tHdrlen      uint8\n\tLink_state  uint8\n\tSpare_char1 uint8\n\tSpare_char2 uint8\n\tDatalen     uint8\n\tMtu         uint64\n\tMetric      uint64\n\tBaudrate    uint64\n\tIpackets    uint64\n\tIerrors     uint64\n\tOpackets    uint64\n\tOerrors     uint64\n\tCollisions  uint64\n\tIbytes      uint64\n\tObytes      uint64\n\tImcasts     uint64\n\tOmcasts     uint64\n\tIqdrops     uint64\n\tNoproto     uint64\n\tHwassist    uint64\n\tEpoch       int64\n\tLastchange  Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n\tMetric  int32\n}\n\ntype IfmaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\t_       uint16\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tName    [16]int8\n\tWhat    uint16\n}\n\ntype RtMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\t_       uint16\n\tFlags   int32\n\tAddrs   int32\n\tPid     int32\n\tSeq     int32\n\tErrno   int32\n\tFmask   int32\n\tInits   uint64\n\tRmx     RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint64\n\tMtu      uint64\n\tHopcount uint64\n\tExpire   uint64\n\tRecvpipe uint64\n\tSendpipe uint64\n\tSsthresh uint64\n\tRtt      uint64\n\tRttvar   uint64\n\tPksent   uint64\n\tWeight   uint64\n\tNhidx    uint64\n\tFiller   [2]uint64\n}\n\nconst (\n\tSizeofBpfVersion    = 0x4\n\tSizeofBpfStat       = 0x8\n\tSizeofBpfZbuf       = 0x18\n\tSizeofBpfProgram    = 0x10\n\tSizeofBpfInsn       = 0x8\n\tSizeofBpfHdr        = 0x20\n\tSizeofBpfZbufHeader = 0x20\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfZbuf struct {\n\tBufa   *byte\n\tBufb   *byte\n\tBuflen uint64\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  Timeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\t_       [6]byte\n}\n\ntype BpfZbufHeader struct {\n\tKernel_gen uint32\n\tKernel_len uint32\n\tUser_gen   uint32\n\t_          [5]uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x100\n\tAT_SYMLINK_NOFOLLOW = 0x200\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_REMOVEDIR        = 0x800\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR      = 0x8\n\tPOLLHUP      = 0x10\n\tPOLLIN       = 0x1\n\tPOLLINIGNEOF = 0x2000\n\tPOLLNVAL     = 0x20\n\tPOLLOUT      = 0x4\n\tPOLLPRI      = 0x2\n\tPOLLRDBAND   = 0x80\n\tPOLLRDNORM   = 0x40\n\tPOLLWRBAND   = 0x100\n\tPOLLWRNORM   = 0x4\n\tPOLLRDHUP    = 0x4000\n)\n\ntype CapRights struct {\n\tRights [2]uint64\n}\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz     int32\n\tTick   int32\n\tSpare  int32\n\tStathz int32\n\tProfhz int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux.go",
    "content": "// Code generated by mkmerge; DO NOT EDIT.\n\n//go:build linux\n\npackage unix\n\nconst (\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLongLong = 0x8\n\tPathMax        = 0x1000\n)\n\ntype (\n\t_C_short int16\n\t_C_int   int32\n\n\t_C_long_long int64\n)\n\ntype ItimerSpec struct {\n\tInterval Timespec\n\tValue    Timespec\n}\n\ntype Itimerval struct {\n\tInterval Timeval\n\tValue    Timeval\n}\n\nconst (\n\tADJ_OFFSET            = 0x1\n\tADJ_FREQUENCY         = 0x2\n\tADJ_MAXERROR          = 0x4\n\tADJ_ESTERROR          = 0x8\n\tADJ_STATUS            = 0x10\n\tADJ_TIMECONST         = 0x20\n\tADJ_TAI               = 0x80\n\tADJ_SETOFFSET         = 0x100\n\tADJ_MICRO             = 0x1000\n\tADJ_NANO              = 0x2000\n\tADJ_TICK              = 0x4000\n\tADJ_OFFSET_SINGLESHOT = 0x8001\n\tADJ_OFFSET_SS_READ    = 0xa001\n)\n\nconst (\n\tSTA_PLL       = 0x1\n\tSTA_PPSFREQ   = 0x2\n\tSTA_PPSTIME   = 0x4\n\tSTA_FLL       = 0x8\n\tSTA_INS       = 0x10\n\tSTA_DEL       = 0x20\n\tSTA_UNSYNC    = 0x40\n\tSTA_FREQHOLD  = 0x80\n\tSTA_PPSSIGNAL = 0x100\n\tSTA_PPSJITTER = 0x200\n\tSTA_PPSWANDER = 0x400\n\tSTA_PPSERROR  = 0x800\n\tSTA_CLOCKERR  = 0x1000\n\tSTA_NANO      = 0x2000\n\tSTA_MODE      = 0x4000\n\tSTA_CLK       = 0x8000\n)\n\nconst (\n\tTIME_OK    = 0x0\n\tTIME_INS   = 0x1\n\tTIME_DEL   = 0x2\n\tTIME_OOP   = 0x3\n\tTIME_WAIT  = 0x4\n\tTIME_ERROR = 0x5\n\tTIME_BAD   = 0x5\n)\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype StatxTimestamp struct {\n\tSec  int64\n\tNsec uint32\n\t_    int32\n}\n\ntype Statx_t struct {\n\tMask                      uint32\n\tBlksize                   uint32\n\tAttributes                uint64\n\tNlink                     uint32\n\tUid                       uint32\n\tGid                       uint32\n\tMode                      uint16\n\t_                         [1]uint16\n\tIno                       uint64\n\tSize                      uint64\n\tBlocks                    uint64\n\tAttributes_mask           uint64\n\tAtime                     StatxTimestamp\n\tBtime                     StatxTimestamp\n\tCtime                     StatxTimestamp\n\tMtime                     StatxTimestamp\n\tRdev_major                uint32\n\tRdev_minor                uint32\n\tDev_major                 uint32\n\tDev_minor                 uint32\n\tMnt_id                    uint64\n\tDio_mem_align             uint32\n\tDio_offset_align          uint32\n\tSubvol                    uint64\n\tAtomic_write_unit_min     uint32\n\tAtomic_write_unit_max     uint32\n\tAtomic_write_segments_max uint32\n\t_                         [1]uint32\n\t_                         [9]uint64\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\ntype FileCloneRange struct {\n\tSrc_fd      int64\n\tSrc_offset  uint64\n\tSrc_length  uint64\n\tDest_offset uint64\n}\n\ntype RawFileDedupeRange struct {\n\tSrc_offset uint64\n\tSrc_length uint64\n\tDest_count uint16\n\tReserved1  uint16\n\tReserved2  uint32\n}\n\ntype RawFileDedupeRangeInfo struct {\n\tDest_fd       int64\n\tDest_offset   uint64\n\tBytes_deduped uint64\n\tStatus        int32\n\tReserved      uint32\n}\n\nconst (\n\tSizeofRawFileDedupeRange     = 0x18\n\tSizeofRawFileDedupeRangeInfo = 0x20\n\tFILE_DEDUPE_RANGE_SAME       = 0x0\n\tFILE_DEDUPE_RANGE_DIFFERS    = 0x1\n)\n\ntype FscryptPolicy struct {\n\tVersion                   uint8\n\tContents_encryption_mode  uint8\n\tFilenames_encryption_mode uint8\n\tFlags                     uint8\n\tMaster_key_descriptor     [8]uint8\n}\n\ntype FscryptKey struct {\n\tMode uint32\n\tRaw  [64]uint8\n\tSize uint32\n}\n\ntype FscryptPolicyV1 struct {\n\tVersion                   uint8\n\tContents_encryption_mode  uint8\n\tFilenames_encryption_mode uint8\n\tFlags                     uint8\n\tMaster_key_descriptor     [8]uint8\n}\n\ntype FscryptPolicyV2 struct {\n\tVersion                   uint8\n\tContents_encryption_mode  uint8\n\tFilenames_encryption_mode uint8\n\tFlags                     uint8\n\tLog2_data_unit_size       uint8\n\t_                         [3]uint8\n\tMaster_key_identifier     [16]uint8\n}\n\ntype FscryptGetPolicyExArg struct {\n\tSize   uint64\n\tPolicy [24]byte\n}\n\ntype FscryptKeySpecifier struct {\n\tType uint32\n\t_    uint32\n\tU    [32]byte\n}\n\ntype FscryptAddKeyArg struct {\n\tKey_spec FscryptKeySpecifier\n\tRaw_size uint32\n\tKey_id   uint32\n\t_        [8]uint32\n}\n\ntype FscryptRemoveKeyArg struct {\n\tKey_spec             FscryptKeySpecifier\n\tRemoval_status_flags uint32\n\t_                    [5]uint32\n}\n\ntype FscryptGetKeyStatusArg struct {\n\tKey_spec     FscryptKeySpecifier\n\t_            [6]uint32\n\tStatus       uint32\n\tStatus_flags uint32\n\tUser_count   uint32\n\t_            [13]uint32\n}\n\ntype DmIoctl struct {\n\tVersion      [3]uint32\n\tData_size    uint32\n\tData_start   uint32\n\tTarget_count uint32\n\tOpen_count   int32\n\tFlags        uint32\n\tEvent_nr     uint32\n\t_            uint32\n\tDev          uint64\n\tName         [128]byte\n\tUuid         [129]byte\n\tData         [7]byte\n}\n\ntype DmTargetSpec struct {\n\tSector_start uint64\n\tLength       uint64\n\tStatus       int32\n\tNext         uint32\n\tTarget_type  [16]byte\n}\n\ntype DmTargetDeps struct {\n\tCount uint32\n\t_     uint32\n}\n\ntype DmTargetVersions struct {\n\tNext    uint32\n\tVersion [3]uint32\n}\n\ntype DmTargetMsg struct {\n\tSector uint64\n}\n\nconst (\n\tSizeofDmIoctl      = 0x138\n\tSizeofDmTargetSpec = 0x28\n)\n\ntype KeyctlDHParams struct {\n\tPrivate int32\n\tPrime   int32\n\tBase    int32\n}\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n)\n\ntype RawSockaddrInet4 struct {\n\tFamily uint16\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]uint8\n}\n\ntype RawSockaddrInet6 struct {\n\tFamily   uint16\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tFamily uint16\n\tPath   [108]int8\n}\n\ntype RawSockaddrLinklayer struct {\n\tFamily   uint16\n\tProtocol uint16\n\tIfindex  int32\n\tHatype   uint16\n\tPkttype  uint8\n\tHalen    uint8\n\tAddr     [8]uint8\n}\n\ntype RawSockaddrNetlink struct {\n\tFamily uint16\n\tPad    uint16\n\tPid    uint32\n\tGroups uint32\n}\n\ntype RawSockaddrHCI struct {\n\tFamily  uint16\n\tDev     uint16\n\tChannel uint16\n}\n\ntype RawSockaddrL2 struct {\n\tFamily      uint16\n\tPsm         uint16\n\tBdaddr      [6]uint8\n\tCid         uint16\n\tBdaddr_type uint8\n\t_           [1]byte\n}\n\ntype RawSockaddrRFCOMM struct {\n\tFamily  uint16\n\tBdaddr  [6]uint8\n\tChannel uint8\n\t_       [1]byte\n}\n\ntype RawSockaddrCAN struct {\n\tFamily  uint16\n\tIfindex int32\n\tAddr    [16]byte\n}\n\ntype RawSockaddrALG struct {\n\tFamily uint16\n\tType   [14]uint8\n\tFeat   uint32\n\tMask   uint32\n\tName   [64]uint8\n}\n\ntype RawSockaddrVM struct {\n\tFamily    uint16\n\tReserved1 uint16\n\tPort      uint32\n\tCid       uint32\n\tFlags     uint8\n\tZero      [3]uint8\n}\n\ntype RawSockaddrXDP struct {\n\tFamily         uint16\n\tFlags          uint16\n\tIfindex        uint32\n\tQueue_id       uint32\n\tShared_umem_fd uint32\n}\n\ntype RawSockaddrPPPoX [0x1e]byte\n\ntype RawSockaddrTIPC struct {\n\tFamily   uint16\n\tAddrtype uint8\n\tScope    int8\n\tAddr     [12]byte\n}\n\ntype RawSockaddrL2TPIP struct {\n\tFamily  uint16\n\tUnused  uint16\n\tAddr    [4]byte /* in_addr */\n\tConn_id uint32\n\t_       [4]uint8\n}\n\ntype RawSockaddrL2TPIP6 struct {\n\tFamily   uint16\n\tUnused   uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n\tConn_id  uint32\n}\n\ntype RawSockaddrIUCV struct {\n\tFamily  uint16\n\tPort    uint16\n\tAddr    uint32\n\tNodeid  [8]int8\n\tUser_id [8]int8\n\tName    [8]int8\n}\n\ntype RawSockaddrNFC struct {\n\tSa_family    uint16\n\tDev_idx      uint32\n\tTarget_idx   uint32\n\tNfc_protocol uint32\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPMreqn struct {\n\tMultiaddr [4]byte /* in_addr */\n\tAddress   [4]byte /* in_addr */\n\tIfindex   int32\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype PacketMreq struct {\n\tIfindex int32\n\tType    uint16\n\tAlen    uint16\n\tAddress [8]uint8\n}\n\ntype Inet4Pktinfo struct {\n\tIfindex  int32\n\tSpec_dst [4]byte /* in_addr */\n\tAddr     [4]byte /* in_addr */\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tData [8]uint32\n}\n\ntype Ucred struct {\n\tPid int32\n\tUid uint32\n\tGid uint32\n}\n\ntype TCPInfo struct {\n\tState                uint8\n\tCa_state             uint8\n\tRetransmits          uint8\n\tProbes               uint8\n\tBackoff              uint8\n\tOptions              uint8\n\tRto                  uint32\n\tAto                  uint32\n\tSnd_mss              uint32\n\tRcv_mss              uint32\n\tUnacked              uint32\n\tSacked               uint32\n\tLost                 uint32\n\tRetrans              uint32\n\tFackets              uint32\n\tLast_data_sent       uint32\n\tLast_ack_sent        uint32\n\tLast_data_recv       uint32\n\tLast_ack_recv        uint32\n\tPmtu                 uint32\n\tRcv_ssthresh         uint32\n\tRtt                  uint32\n\tRttvar               uint32\n\tSnd_ssthresh         uint32\n\tSnd_cwnd             uint32\n\tAdvmss               uint32\n\tReordering           uint32\n\tRcv_rtt              uint32\n\tRcv_space            uint32\n\tTotal_retrans        uint32\n\tPacing_rate          uint64\n\tMax_pacing_rate      uint64\n\tBytes_acked          uint64\n\tBytes_received       uint64\n\tSegs_out             uint32\n\tSegs_in              uint32\n\tNotsent_bytes        uint32\n\tMin_rtt              uint32\n\tData_segs_in         uint32\n\tData_segs_out        uint32\n\tDelivery_rate        uint64\n\tBusy_time            uint64\n\tRwnd_limited         uint64\n\tSndbuf_limited       uint64\n\tDelivered            uint32\n\tDelivered_ce         uint32\n\tBytes_sent           uint64\n\tBytes_retrans        uint64\n\tDsack_dups           uint32\n\tReord_seen           uint32\n\tRcv_ooopack          uint32\n\tSnd_wnd              uint32\n\tRcv_wnd              uint32\n\tRehash               uint32\n\tTotal_rto            uint16\n\tTotal_rto_recoveries uint16\n\tTotal_rto_time       uint32\n}\n\ntype TCPVegasInfo struct {\n\tEnabled uint32\n\tRttcnt  uint32\n\tRtt     uint32\n\tMinrtt  uint32\n}\n\ntype TCPDCTCPInfo struct {\n\tEnabled  uint16\n\tCe_state uint16\n\tAlpha    uint32\n\tAb_ecn   uint32\n\tAb_tot   uint32\n}\n\ntype TCPBBRInfo struct {\n\tBw_lo       uint32\n\tBw_hi       uint32\n\tMin_rtt     uint32\n\tPacing_gain uint32\n\tCwnd_gain   uint32\n}\n\ntype CanFilter struct {\n\tId   uint32\n\tMask uint32\n}\n\ntype TCPRepairOpt struct {\n\tCode uint32\n\tVal  uint32\n}\n\nconst (\n\tSizeofSockaddrInet4     = 0x10\n\tSizeofSockaddrInet6     = 0x1c\n\tSizeofSockaddrAny       = 0x70\n\tSizeofSockaddrUnix      = 0x6e\n\tSizeofSockaddrLinklayer = 0x14\n\tSizeofSockaddrNetlink   = 0xc\n\tSizeofSockaddrHCI       = 0x6\n\tSizeofSockaddrL2        = 0xe\n\tSizeofSockaddrRFCOMM    = 0xa\n\tSizeofSockaddrCAN       = 0x18\n\tSizeofSockaddrALG       = 0x58\n\tSizeofSockaddrVM        = 0x10\n\tSizeofSockaddrXDP       = 0x10\n\tSizeofSockaddrPPPoX     = 0x1e\n\tSizeofSockaddrTIPC      = 0x10\n\tSizeofSockaddrL2TPIP    = 0x10\n\tSizeofSockaddrL2TPIP6   = 0x20\n\tSizeofSockaddrIUCV      = 0x20\n\tSizeofSockaddrNFC       = 0x10\n\tSizeofLinger            = 0x8\n\tSizeofIPMreq            = 0x8\n\tSizeofIPMreqn           = 0xc\n\tSizeofIPv6Mreq          = 0x14\n\tSizeofPacketMreq        = 0x10\n\tSizeofInet4Pktinfo      = 0xc\n\tSizeofInet6Pktinfo      = 0x14\n\tSizeofIPv6MTUInfo       = 0x20\n\tSizeofICMPv6Filter      = 0x20\n\tSizeofUcred             = 0xc\n\tSizeofTCPInfo           = 0xf8\n\tSizeofTCPCCInfo         = 0x14\n\tSizeofCanFilter         = 0x8\n\tSizeofTCPRepairOpt      = 0x8\n)\n\nconst (\n\tNDA_UNSPEC         = 0x0\n\tNDA_DST            = 0x1\n\tNDA_LLADDR         = 0x2\n\tNDA_CACHEINFO      = 0x3\n\tNDA_PROBES         = 0x4\n\tNDA_VLAN           = 0x5\n\tNDA_PORT           = 0x6\n\tNDA_VNI            = 0x7\n\tNDA_IFINDEX        = 0x8\n\tNDA_MASTER         = 0x9\n\tNDA_LINK_NETNSID   = 0xa\n\tNDA_SRC_VNI        = 0xb\n\tNTF_USE            = 0x1\n\tNTF_SELF           = 0x2\n\tNTF_MASTER         = 0x4\n\tNTF_PROXY          = 0x8\n\tNTF_EXT_LEARNED    = 0x10\n\tNTF_OFFLOADED      = 0x20\n\tNTF_ROUTER         = 0x80\n\tNUD_INCOMPLETE     = 0x1\n\tNUD_REACHABLE      = 0x2\n\tNUD_STALE          = 0x4\n\tNUD_DELAY          = 0x8\n\tNUD_PROBE          = 0x10\n\tNUD_FAILED         = 0x20\n\tNUD_NOARP          = 0x40\n\tNUD_PERMANENT      = 0x80\n\tNUD_NONE           = 0x0\n\tIFA_UNSPEC         = 0x0\n\tIFA_ADDRESS        = 0x1\n\tIFA_LOCAL          = 0x2\n\tIFA_LABEL          = 0x3\n\tIFA_BROADCAST      = 0x4\n\tIFA_ANYCAST        = 0x5\n\tIFA_CACHEINFO      = 0x6\n\tIFA_MULTICAST      = 0x7\n\tIFA_FLAGS          = 0x8\n\tIFA_RT_PRIORITY    = 0x9\n\tIFA_TARGET_NETNSID = 0xa\n\tRT_SCOPE_UNIVERSE  = 0x0\n\tRT_SCOPE_SITE      = 0xc8\n\tRT_SCOPE_LINK      = 0xfd\n\tRT_SCOPE_HOST      = 0xfe\n\tRT_SCOPE_NOWHERE   = 0xff\n\tRT_TABLE_UNSPEC    = 0x0\n\tRT_TABLE_COMPAT    = 0xfc\n\tRT_TABLE_DEFAULT   = 0xfd\n\tRT_TABLE_MAIN      = 0xfe\n\tRT_TABLE_LOCAL     = 0xff\n\tRT_TABLE_MAX       = 0xffffffff\n\tRTA_UNSPEC         = 0x0\n\tRTA_DST            = 0x1\n\tRTA_SRC            = 0x2\n\tRTA_IIF            = 0x3\n\tRTA_OIF            = 0x4\n\tRTA_GATEWAY        = 0x5\n\tRTA_PRIORITY       = 0x6\n\tRTA_PREFSRC        = 0x7\n\tRTA_METRICS        = 0x8\n\tRTA_MULTIPATH      = 0x9\n\tRTA_FLOW           = 0xb\n\tRTA_CACHEINFO      = 0xc\n\tRTA_TABLE          = 0xf\n\tRTA_MARK           = 0x10\n\tRTA_MFC_STATS      = 0x11\n\tRTA_VIA            = 0x12\n\tRTA_NEWDST         = 0x13\n\tRTA_PREF           = 0x14\n\tRTA_ENCAP_TYPE     = 0x15\n\tRTA_ENCAP          = 0x16\n\tRTA_EXPIRES        = 0x17\n\tRTA_PAD            = 0x18\n\tRTA_UID            = 0x19\n\tRTA_TTL_PROPAGATE  = 0x1a\n\tRTA_IP_PROTO       = 0x1b\n\tRTA_SPORT          = 0x1c\n\tRTA_DPORT          = 0x1d\n\tRTN_UNSPEC         = 0x0\n\tRTN_UNICAST        = 0x1\n\tRTN_LOCAL          = 0x2\n\tRTN_BROADCAST      = 0x3\n\tRTN_ANYCAST        = 0x4\n\tRTN_MULTICAST      = 0x5\n\tRTN_BLACKHOLE      = 0x6\n\tRTN_UNREACHABLE    = 0x7\n\tRTN_PROHIBIT       = 0x8\n\tRTN_THROW          = 0x9\n\tRTN_NAT            = 0xa\n\tRTN_XRESOLVE       = 0xb\n\tSizeofNlMsghdr     = 0x10\n\tSizeofNlMsgerr     = 0x14\n\tSizeofRtGenmsg     = 0x1\n\tSizeofNlAttr       = 0x4\n\tSizeofRtAttr       = 0x4\n\tSizeofIfInfomsg    = 0x10\n\tSizeofIfAddrmsg    = 0x8\n\tSizeofIfaCacheinfo = 0x10\n\tSizeofRtMsg        = 0xc\n\tSizeofRtNexthop    = 0x8\n\tSizeofNdUseroptmsg = 0x10\n\tSizeofNdMsg        = 0xc\n)\n\ntype NlMsghdr struct {\n\tLen   uint32\n\tType  uint16\n\tFlags uint16\n\tSeq   uint32\n\tPid   uint32\n}\n\ntype NlMsgerr struct {\n\tError int32\n\tMsg   NlMsghdr\n}\n\ntype RtGenmsg struct {\n\tFamily uint8\n}\n\ntype NlAttr struct {\n\tLen  uint16\n\tType uint16\n}\n\ntype RtAttr struct {\n\tLen  uint16\n\tType uint16\n}\n\ntype IfInfomsg struct {\n\tFamily uint8\n\t_      uint8\n\tType   uint16\n\tIndex  int32\n\tFlags  uint32\n\tChange uint32\n}\n\ntype IfAddrmsg struct {\n\tFamily    uint8\n\tPrefixlen uint8\n\tFlags     uint8\n\tScope     uint8\n\tIndex     uint32\n}\n\ntype IfaCacheinfo struct {\n\tPrefered uint32\n\tValid    uint32\n\tCstamp   uint32\n\tTstamp   uint32\n}\n\ntype RtMsg struct {\n\tFamily   uint8\n\tDst_len  uint8\n\tSrc_len  uint8\n\tTos      uint8\n\tTable    uint8\n\tProtocol uint8\n\tScope    uint8\n\tType     uint8\n\tFlags    uint32\n}\n\ntype RtNexthop struct {\n\tLen     uint16\n\tFlags   uint8\n\tHops    uint8\n\tIfindex int32\n}\n\ntype NdUseroptmsg struct {\n\tFamily    uint8\n\tPad1      uint8\n\tOpts_len  uint16\n\tIfindex   int32\n\tIcmp_type uint8\n\tIcmp_code uint8\n\tPad2      uint16\n\tPad3      uint32\n}\n\ntype NdMsg struct {\n\tFamily  uint8\n\tPad1    uint8\n\tPad2    uint16\n\tIfindex int32\n\tState   uint16\n\tFlags   uint8\n\tType    uint8\n}\n\nconst (\n\tICMP_FILTER = 0x1\n\n\tICMPV6_FILTER             = 0x1\n\tICMPV6_FILTER_BLOCK       = 0x1\n\tICMPV6_FILTER_BLOCKOTHERS = 0x3\n\tICMPV6_FILTER_PASS        = 0x2\n\tICMPV6_FILTER_PASSONLY    = 0x4\n)\n\nconst (\n\tSizeofSockFilter = 0x8\n)\n\ntype SockFilter struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype SockFprog struct {\n\tLen    uint16\n\tFilter *SockFilter\n}\n\ntype InotifyEvent struct {\n\tWd     int32\n\tMask   uint32\n\tCookie uint32\n\tLen    uint32\n}\n\nconst SizeofInotifyEvent = 0x10\n\nconst SI_LOAD_SHIFT = 0x10\n\ntype Utsname struct {\n\tSysname    [65]byte\n\tNodename   [65]byte\n\tRelease    [65]byte\n\tVersion    [65]byte\n\tMachine    [65]byte\n\tDomainname [65]byte\n}\n\nconst (\n\tAT_EMPTY_PATH   = 0x1000\n\tAT_FDCWD        = -0x64\n\tAT_NO_AUTOMOUNT = 0x800\n\tAT_REMOVEDIR    = 0x200\n\n\tAT_STATX_SYNC_AS_STAT = 0x0\n\tAT_STATX_FORCE_SYNC   = 0x2000\n\tAT_STATX_DONT_SYNC    = 0x4000\n\n\tAT_RECURSIVE = 0x8000\n\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_SYMLINK_NOFOLLOW = 0x100\n\n\tAT_EACCESS = 0x200\n\n\tOPEN_TREE_CLONE = 0x1\n\n\tMOVE_MOUNT_F_SYMLINKS   = 0x1\n\tMOVE_MOUNT_F_AUTOMOUNTS = 0x2\n\tMOVE_MOUNT_F_EMPTY_PATH = 0x4\n\tMOVE_MOUNT_T_SYMLINKS   = 0x10\n\tMOVE_MOUNT_T_AUTOMOUNTS = 0x20\n\tMOVE_MOUNT_T_EMPTY_PATH = 0x40\n\tMOVE_MOUNT_SET_GROUP    = 0x100\n\n\tFSOPEN_CLOEXEC = 0x1\n\n\tFSPICK_CLOEXEC          = 0x1\n\tFSPICK_SYMLINK_NOFOLLOW = 0x2\n\tFSPICK_NO_AUTOMOUNT     = 0x4\n\tFSPICK_EMPTY_PATH       = 0x8\n\n\tFSMOUNT_CLOEXEC = 0x1\n\n\tFSCONFIG_SET_FLAG        = 0x0\n\tFSCONFIG_SET_STRING      = 0x1\n\tFSCONFIG_SET_BINARY      = 0x2\n\tFSCONFIG_SET_PATH        = 0x3\n\tFSCONFIG_SET_PATH_EMPTY  = 0x4\n\tFSCONFIG_SET_FD          = 0x5\n\tFSCONFIG_CMD_CREATE      = 0x6\n\tFSCONFIG_CMD_RECONFIGURE = 0x7\n)\n\ntype OpenHow struct {\n\tFlags   uint64\n\tMode    uint64\n\tResolve uint64\n}\n\nconst SizeofOpenHow = 0x18\n\nconst (\n\tRESOLVE_BENEATH       = 0x8\n\tRESOLVE_IN_ROOT       = 0x10\n\tRESOLVE_NO_MAGICLINKS = 0x2\n\tRESOLVE_NO_SYMLINKS   = 0x4\n\tRESOLVE_NO_XDEV       = 0x1\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLIN   = 0x1\n\tPOLLPRI  = 0x2\n\tPOLLOUT  = 0x4\n\tPOLLERR  = 0x8\n\tPOLLHUP  = 0x10\n\tPOLLNVAL = 0x20\n)\n\ntype sigset_argpack struct {\n\tss    *Sigset_t\n\tssLen uintptr\n}\n\ntype SignalfdSiginfo struct {\n\tSigno     uint32\n\tErrno     int32\n\tCode      int32\n\tPid       uint32\n\tUid       uint32\n\tFd        int32\n\tTid       uint32\n\tBand      uint32\n\tOverrun   uint32\n\tTrapno    uint32\n\tStatus    int32\n\tInt       int32\n\tPtr       uint64\n\tUtime     uint64\n\tStime     uint64\n\tAddr      uint64\n\tAddr_lsb  uint16\n\t_         uint16\n\tSyscall   int32\n\tCall_addr uint64\n\tArch      uint32\n\t_         [28]uint8\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tTASKSTATS_CMD_UNSPEC                  = 0x0\n\tTASKSTATS_CMD_GET                     = 0x1\n\tTASKSTATS_CMD_NEW                     = 0x2\n\tTASKSTATS_TYPE_UNSPEC                 = 0x0\n\tTASKSTATS_TYPE_PID                    = 0x1\n\tTASKSTATS_TYPE_TGID                   = 0x2\n\tTASKSTATS_TYPE_STATS                  = 0x3\n\tTASKSTATS_TYPE_AGGR_PID               = 0x4\n\tTASKSTATS_TYPE_AGGR_TGID              = 0x5\n\tTASKSTATS_TYPE_NULL                   = 0x6\n\tTASKSTATS_CMD_ATTR_UNSPEC             = 0x0\n\tTASKSTATS_CMD_ATTR_PID                = 0x1\n\tTASKSTATS_CMD_ATTR_TGID               = 0x2\n\tTASKSTATS_CMD_ATTR_REGISTER_CPUMASK   = 0x3\n\tTASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4\n)\n\ntype CGroupStats struct {\n\tSleeping        uint64\n\tRunning         uint64\n\tStopped         uint64\n\tUninterruptible uint64\n\tIo_wait         uint64\n}\n\nconst (\n\tCGROUPSTATS_CMD_UNSPEC        = 0x3\n\tCGROUPSTATS_CMD_GET           = 0x4\n\tCGROUPSTATS_CMD_NEW           = 0x5\n\tCGROUPSTATS_TYPE_UNSPEC       = 0x0\n\tCGROUPSTATS_TYPE_CGROUP_STATS = 0x1\n\tCGROUPSTATS_CMD_ATTR_UNSPEC   = 0x0\n\tCGROUPSTATS_CMD_ATTR_FD       = 0x1\n)\n\ntype Genlmsghdr struct {\n\tCmd      uint8\n\tVersion  uint8\n\tReserved uint16\n}\n\nconst (\n\tCTRL_CMD_UNSPEC            = 0x0\n\tCTRL_CMD_NEWFAMILY         = 0x1\n\tCTRL_CMD_DELFAMILY         = 0x2\n\tCTRL_CMD_GETFAMILY         = 0x3\n\tCTRL_CMD_NEWOPS            = 0x4\n\tCTRL_CMD_DELOPS            = 0x5\n\tCTRL_CMD_GETOPS            = 0x6\n\tCTRL_CMD_NEWMCAST_GRP      = 0x7\n\tCTRL_CMD_DELMCAST_GRP      = 0x8\n\tCTRL_CMD_GETMCAST_GRP      = 0x9\n\tCTRL_CMD_GETPOLICY         = 0xa\n\tCTRL_ATTR_UNSPEC           = 0x0\n\tCTRL_ATTR_FAMILY_ID        = 0x1\n\tCTRL_ATTR_FAMILY_NAME      = 0x2\n\tCTRL_ATTR_VERSION          = 0x3\n\tCTRL_ATTR_HDRSIZE          = 0x4\n\tCTRL_ATTR_MAXATTR          = 0x5\n\tCTRL_ATTR_OPS              = 0x6\n\tCTRL_ATTR_MCAST_GROUPS     = 0x7\n\tCTRL_ATTR_POLICY           = 0x8\n\tCTRL_ATTR_OP_POLICY        = 0x9\n\tCTRL_ATTR_OP               = 0xa\n\tCTRL_ATTR_OP_UNSPEC        = 0x0\n\tCTRL_ATTR_OP_ID            = 0x1\n\tCTRL_ATTR_OP_FLAGS         = 0x2\n\tCTRL_ATTR_MCAST_GRP_UNSPEC = 0x0\n\tCTRL_ATTR_MCAST_GRP_NAME   = 0x1\n\tCTRL_ATTR_MCAST_GRP_ID     = 0x2\n\tCTRL_ATTR_POLICY_UNSPEC    = 0x0\n\tCTRL_ATTR_POLICY_DO        = 0x1\n\tCTRL_ATTR_POLICY_DUMP      = 0x2\n\tCTRL_ATTR_POLICY_DUMP_MAX  = 0x2\n)\n\nconst (\n\t_CPU_SETSIZE = 0x400\n)\n\nconst (\n\tBDADDR_BREDR     = 0x0\n\tBDADDR_LE_PUBLIC = 0x1\n\tBDADDR_LE_RANDOM = 0x2\n)\n\ntype PerfEventAttr struct {\n\tType               uint32\n\tSize               uint32\n\tConfig             uint64\n\tSample             uint64\n\tSample_type        uint64\n\tRead_format        uint64\n\tBits               uint64\n\tWakeup             uint32\n\tBp_type            uint32\n\tExt1               uint64\n\tExt2               uint64\n\tBranch_sample_type uint64\n\tSample_regs_user   uint64\n\tSample_stack_user  uint32\n\tClockid            int32\n\tSample_regs_intr   uint64\n\tAux_watermark      uint32\n\tSample_max_stack   uint16\n\t_                  uint16\n\tAux_sample_size    uint32\n\t_                  uint32\n\tSig_data           uint64\n}\n\ntype PerfEventMmapPage struct {\n\tVersion        uint32\n\tCompat_version uint32\n\tLock           uint32\n\tIndex          uint32\n\tOffset         int64\n\tTime_enabled   uint64\n\tTime_running   uint64\n\tCapabilities   uint64\n\tPmc_width      uint16\n\tTime_shift     uint16\n\tTime_mult      uint32\n\tTime_offset    uint64\n\tTime_zero      uint64\n\tSize           uint32\n\t_              uint32\n\tTime_cycles    uint64\n\tTime_mask      uint64\n\t_              [928]uint8\n\tData_head      uint64\n\tData_tail      uint64\n\tData_offset    uint64\n\tData_size      uint64\n\tAux_head       uint64\n\tAux_tail       uint64\n\tAux_offset     uint64\n\tAux_size       uint64\n}\n\nconst (\n\tPerfBitDisabled               uint64 = CBitFieldMaskBit0\n\tPerfBitInherit                       = CBitFieldMaskBit1\n\tPerfBitPinned                        = CBitFieldMaskBit2\n\tPerfBitExclusive                     = CBitFieldMaskBit3\n\tPerfBitExcludeUser                   = CBitFieldMaskBit4\n\tPerfBitExcludeKernel                 = CBitFieldMaskBit5\n\tPerfBitExcludeHv                     = CBitFieldMaskBit6\n\tPerfBitExcludeIdle                   = CBitFieldMaskBit7\n\tPerfBitMmap                          = CBitFieldMaskBit8\n\tPerfBitComm                          = CBitFieldMaskBit9\n\tPerfBitFreq                          = CBitFieldMaskBit10\n\tPerfBitInheritStat                   = CBitFieldMaskBit11\n\tPerfBitEnableOnExec                  = CBitFieldMaskBit12\n\tPerfBitTask                          = CBitFieldMaskBit13\n\tPerfBitWatermark                     = CBitFieldMaskBit14\n\tPerfBitPreciseIPBit1                 = CBitFieldMaskBit15\n\tPerfBitPreciseIPBit2                 = CBitFieldMaskBit16\n\tPerfBitMmapData                      = CBitFieldMaskBit17\n\tPerfBitSampleIDAll                   = CBitFieldMaskBit18\n\tPerfBitExcludeHost                   = CBitFieldMaskBit19\n\tPerfBitExcludeGuest                  = CBitFieldMaskBit20\n\tPerfBitExcludeCallchainKernel        = CBitFieldMaskBit21\n\tPerfBitExcludeCallchainUser          = CBitFieldMaskBit22\n\tPerfBitMmap2                         = CBitFieldMaskBit23\n\tPerfBitCommExec                      = CBitFieldMaskBit24\n\tPerfBitUseClockID                    = CBitFieldMaskBit25\n\tPerfBitContextSwitch                 = CBitFieldMaskBit26\n\tPerfBitWriteBackward                 = CBitFieldMaskBit27\n)\n\nconst (\n\tPERF_TYPE_HARDWARE                    = 0x0\n\tPERF_TYPE_SOFTWARE                    = 0x1\n\tPERF_TYPE_TRACEPOINT                  = 0x2\n\tPERF_TYPE_HW_CACHE                    = 0x3\n\tPERF_TYPE_RAW                         = 0x4\n\tPERF_TYPE_BREAKPOINT                  = 0x5\n\tPERF_TYPE_MAX                         = 0x6\n\tPERF_COUNT_HW_CPU_CYCLES              = 0x0\n\tPERF_COUNT_HW_INSTRUCTIONS            = 0x1\n\tPERF_COUNT_HW_CACHE_REFERENCES        = 0x2\n\tPERF_COUNT_HW_CACHE_MISSES            = 0x3\n\tPERF_COUNT_HW_BRANCH_INSTRUCTIONS     = 0x4\n\tPERF_COUNT_HW_BRANCH_MISSES           = 0x5\n\tPERF_COUNT_HW_BUS_CYCLES              = 0x6\n\tPERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7\n\tPERF_COUNT_HW_STALLED_CYCLES_BACKEND  = 0x8\n\tPERF_COUNT_HW_REF_CPU_CYCLES          = 0x9\n\tPERF_COUNT_HW_MAX                     = 0xa\n\tPERF_COUNT_HW_CACHE_L1D               = 0x0\n\tPERF_COUNT_HW_CACHE_L1I               = 0x1\n\tPERF_COUNT_HW_CACHE_LL                = 0x2\n\tPERF_COUNT_HW_CACHE_DTLB              = 0x3\n\tPERF_COUNT_HW_CACHE_ITLB              = 0x4\n\tPERF_COUNT_HW_CACHE_BPU               = 0x5\n\tPERF_COUNT_HW_CACHE_NODE              = 0x6\n\tPERF_COUNT_HW_CACHE_MAX               = 0x7\n\tPERF_COUNT_HW_CACHE_OP_READ           = 0x0\n\tPERF_COUNT_HW_CACHE_OP_WRITE          = 0x1\n\tPERF_COUNT_HW_CACHE_OP_PREFETCH       = 0x2\n\tPERF_COUNT_HW_CACHE_OP_MAX            = 0x3\n\tPERF_COUNT_HW_CACHE_RESULT_ACCESS     = 0x0\n\tPERF_COUNT_HW_CACHE_RESULT_MISS       = 0x1\n\tPERF_COUNT_HW_CACHE_RESULT_MAX        = 0x2\n\tPERF_COUNT_SW_CPU_CLOCK               = 0x0\n\tPERF_COUNT_SW_TASK_CLOCK              = 0x1\n\tPERF_COUNT_SW_PAGE_FAULTS             = 0x2\n\tPERF_COUNT_SW_CONTEXT_SWITCHES        = 0x3\n\tPERF_COUNT_SW_CPU_MIGRATIONS          = 0x4\n\tPERF_COUNT_SW_PAGE_FAULTS_MIN         = 0x5\n\tPERF_COUNT_SW_PAGE_FAULTS_MAJ         = 0x6\n\tPERF_COUNT_SW_ALIGNMENT_FAULTS        = 0x7\n\tPERF_COUNT_SW_EMULATION_FAULTS        = 0x8\n\tPERF_COUNT_SW_DUMMY                   = 0x9\n\tPERF_COUNT_SW_BPF_OUTPUT              = 0xa\n\tPERF_COUNT_SW_MAX                     = 0xc\n\tPERF_SAMPLE_IP                        = 0x1\n\tPERF_SAMPLE_TID                       = 0x2\n\tPERF_SAMPLE_TIME                      = 0x4\n\tPERF_SAMPLE_ADDR                      = 0x8\n\tPERF_SAMPLE_READ                      = 0x10\n\tPERF_SAMPLE_CALLCHAIN                 = 0x20\n\tPERF_SAMPLE_ID                        = 0x40\n\tPERF_SAMPLE_CPU                       = 0x80\n\tPERF_SAMPLE_PERIOD                    = 0x100\n\tPERF_SAMPLE_STREAM_ID                 = 0x200\n\tPERF_SAMPLE_RAW                       = 0x400\n\tPERF_SAMPLE_BRANCH_STACK              = 0x800\n\tPERF_SAMPLE_REGS_USER                 = 0x1000\n\tPERF_SAMPLE_STACK_USER                = 0x2000\n\tPERF_SAMPLE_WEIGHT                    = 0x4000\n\tPERF_SAMPLE_DATA_SRC                  = 0x8000\n\tPERF_SAMPLE_IDENTIFIER                = 0x10000\n\tPERF_SAMPLE_TRANSACTION               = 0x20000\n\tPERF_SAMPLE_REGS_INTR                 = 0x40000\n\tPERF_SAMPLE_PHYS_ADDR                 = 0x80000\n\tPERF_SAMPLE_AUX                       = 0x100000\n\tPERF_SAMPLE_CGROUP                    = 0x200000\n\tPERF_SAMPLE_DATA_PAGE_SIZE            = 0x400000\n\tPERF_SAMPLE_CODE_PAGE_SIZE            = 0x800000\n\tPERF_SAMPLE_WEIGHT_STRUCT             = 0x1000000\n\tPERF_SAMPLE_MAX                       = 0x2000000\n\tPERF_SAMPLE_BRANCH_USER_SHIFT         = 0x0\n\tPERF_SAMPLE_BRANCH_KERNEL_SHIFT       = 0x1\n\tPERF_SAMPLE_BRANCH_HV_SHIFT           = 0x2\n\tPERF_SAMPLE_BRANCH_ANY_SHIFT          = 0x3\n\tPERF_SAMPLE_BRANCH_ANY_CALL_SHIFT     = 0x4\n\tPERF_SAMPLE_BRANCH_ANY_RETURN_SHIFT   = 0x5\n\tPERF_SAMPLE_BRANCH_IND_CALL_SHIFT     = 0x6\n\tPERF_SAMPLE_BRANCH_ABORT_TX_SHIFT     = 0x7\n\tPERF_SAMPLE_BRANCH_IN_TX_SHIFT        = 0x8\n\tPERF_SAMPLE_BRANCH_NO_TX_SHIFT        = 0x9\n\tPERF_SAMPLE_BRANCH_COND_SHIFT         = 0xa\n\tPERF_SAMPLE_BRANCH_CALL_STACK_SHIFT   = 0xb\n\tPERF_SAMPLE_BRANCH_IND_JUMP_SHIFT     = 0xc\n\tPERF_SAMPLE_BRANCH_CALL_SHIFT         = 0xd\n\tPERF_SAMPLE_BRANCH_NO_FLAGS_SHIFT     = 0xe\n\tPERF_SAMPLE_BRANCH_NO_CYCLES_SHIFT    = 0xf\n\tPERF_SAMPLE_BRANCH_TYPE_SAVE_SHIFT    = 0x10\n\tPERF_SAMPLE_BRANCH_HW_INDEX_SHIFT     = 0x11\n\tPERF_SAMPLE_BRANCH_PRIV_SAVE_SHIFT    = 0x12\n\tPERF_SAMPLE_BRANCH_COUNTERS           = 0x80000\n\tPERF_SAMPLE_BRANCH_MAX_SHIFT          = 0x14\n\tPERF_SAMPLE_BRANCH_USER               = 0x1\n\tPERF_SAMPLE_BRANCH_KERNEL             = 0x2\n\tPERF_SAMPLE_BRANCH_HV                 = 0x4\n\tPERF_SAMPLE_BRANCH_ANY                = 0x8\n\tPERF_SAMPLE_BRANCH_ANY_CALL           = 0x10\n\tPERF_SAMPLE_BRANCH_ANY_RETURN         = 0x20\n\tPERF_SAMPLE_BRANCH_IND_CALL           = 0x40\n\tPERF_SAMPLE_BRANCH_ABORT_TX           = 0x80\n\tPERF_SAMPLE_BRANCH_IN_TX              = 0x100\n\tPERF_SAMPLE_BRANCH_NO_TX              = 0x200\n\tPERF_SAMPLE_BRANCH_COND               = 0x400\n\tPERF_SAMPLE_BRANCH_CALL_STACK         = 0x800\n\tPERF_SAMPLE_BRANCH_IND_JUMP           = 0x1000\n\tPERF_SAMPLE_BRANCH_CALL               = 0x2000\n\tPERF_SAMPLE_BRANCH_NO_FLAGS           = 0x4000\n\tPERF_SAMPLE_BRANCH_NO_CYCLES          = 0x8000\n\tPERF_SAMPLE_BRANCH_TYPE_SAVE          = 0x10000\n\tPERF_SAMPLE_BRANCH_HW_INDEX           = 0x20000\n\tPERF_SAMPLE_BRANCH_PRIV_SAVE          = 0x40000\n\tPERF_SAMPLE_BRANCH_MAX                = 0x100000\n\tPERF_BR_UNKNOWN                       = 0x0\n\tPERF_BR_COND                          = 0x1\n\tPERF_BR_UNCOND                        = 0x2\n\tPERF_BR_IND                           = 0x3\n\tPERF_BR_CALL                          = 0x4\n\tPERF_BR_IND_CALL                      = 0x5\n\tPERF_BR_RET                           = 0x6\n\tPERF_BR_SYSCALL                       = 0x7\n\tPERF_BR_SYSRET                        = 0x8\n\tPERF_BR_COND_CALL                     = 0x9\n\tPERF_BR_COND_RET                      = 0xa\n\tPERF_BR_ERET                          = 0xb\n\tPERF_BR_IRQ                           = 0xc\n\tPERF_BR_SERROR                        = 0xd\n\tPERF_BR_NO_TX                         = 0xe\n\tPERF_BR_EXTEND_ABI                    = 0xf\n\tPERF_BR_MAX                           = 0x10\n\tPERF_SAMPLE_REGS_ABI_NONE             = 0x0\n\tPERF_SAMPLE_REGS_ABI_32               = 0x1\n\tPERF_SAMPLE_REGS_ABI_64               = 0x2\n\tPERF_TXN_ELISION                      = 0x1\n\tPERF_TXN_TRANSACTION                  = 0x2\n\tPERF_TXN_SYNC                         = 0x4\n\tPERF_TXN_ASYNC                        = 0x8\n\tPERF_TXN_RETRY                        = 0x10\n\tPERF_TXN_CONFLICT                     = 0x20\n\tPERF_TXN_CAPACITY_WRITE               = 0x40\n\tPERF_TXN_CAPACITY_READ                = 0x80\n\tPERF_TXN_MAX                          = 0x100\n\tPERF_TXN_ABORT_MASK                   = -0x100000000\n\tPERF_TXN_ABORT_SHIFT                  = 0x20\n\tPERF_FORMAT_TOTAL_TIME_ENABLED        = 0x1\n\tPERF_FORMAT_TOTAL_TIME_RUNNING        = 0x2\n\tPERF_FORMAT_ID                        = 0x4\n\tPERF_FORMAT_GROUP                     = 0x8\n\tPERF_FORMAT_LOST                      = 0x10\n\tPERF_FORMAT_MAX                       = 0x20\n\tPERF_IOC_FLAG_GROUP                   = 0x1\n\tPERF_RECORD_MMAP                      = 0x1\n\tPERF_RECORD_LOST                      = 0x2\n\tPERF_RECORD_COMM                      = 0x3\n\tPERF_RECORD_EXIT                      = 0x4\n\tPERF_RECORD_THROTTLE                  = 0x5\n\tPERF_RECORD_UNTHROTTLE                = 0x6\n\tPERF_RECORD_FORK                      = 0x7\n\tPERF_RECORD_READ                      = 0x8\n\tPERF_RECORD_SAMPLE                    = 0x9\n\tPERF_RECORD_MMAP2                     = 0xa\n\tPERF_RECORD_AUX                       = 0xb\n\tPERF_RECORD_ITRACE_START              = 0xc\n\tPERF_RECORD_LOST_SAMPLES              = 0xd\n\tPERF_RECORD_SWITCH                    = 0xe\n\tPERF_RECORD_SWITCH_CPU_WIDE           = 0xf\n\tPERF_RECORD_NAMESPACES                = 0x10\n\tPERF_RECORD_KSYMBOL                   = 0x11\n\tPERF_RECORD_BPF_EVENT                 = 0x12\n\tPERF_RECORD_CGROUP                    = 0x13\n\tPERF_RECORD_TEXT_POKE                 = 0x14\n\tPERF_RECORD_AUX_OUTPUT_HW_ID          = 0x15\n\tPERF_RECORD_MAX                       = 0x16\n\tPERF_RECORD_KSYMBOL_TYPE_UNKNOWN      = 0x0\n\tPERF_RECORD_KSYMBOL_TYPE_BPF          = 0x1\n\tPERF_RECORD_KSYMBOL_TYPE_OOL          = 0x2\n\tPERF_RECORD_KSYMBOL_TYPE_MAX          = 0x3\n\tPERF_BPF_EVENT_UNKNOWN                = 0x0\n\tPERF_BPF_EVENT_PROG_LOAD              = 0x1\n\tPERF_BPF_EVENT_PROG_UNLOAD            = 0x2\n\tPERF_BPF_EVENT_MAX                    = 0x3\n\tPERF_CONTEXT_HV                       = -0x20\n\tPERF_CONTEXT_KERNEL                   = -0x80\n\tPERF_CONTEXT_USER                     = -0x200\n\tPERF_CONTEXT_GUEST                    = -0x800\n\tPERF_CONTEXT_GUEST_KERNEL             = -0x880\n\tPERF_CONTEXT_GUEST_USER               = -0xa00\n\tPERF_CONTEXT_MAX                      = -0xfff\n)\n\ntype TCPMD5Sig struct {\n\tAddr      SockaddrStorage\n\tFlags     uint8\n\tPrefixlen uint8\n\tKeylen    uint16\n\tIfindex   int32\n\tKey       [80]uint8\n}\n\ntype HDDriveCmdHdr struct {\n\tCommand uint8\n\tNumber  uint8\n\tFeature uint8\n\tCount   uint8\n}\n\ntype HDDriveID struct {\n\tConfig         uint16\n\tCyls           uint16\n\tReserved2      uint16\n\tHeads          uint16\n\tTrack_bytes    uint16\n\tSector_bytes   uint16\n\tSectors        uint16\n\tVendor0        uint16\n\tVendor1        uint16\n\tVendor2        uint16\n\tSerial_no      [20]uint8\n\tBuf_type       uint16\n\tBuf_size       uint16\n\tEcc_bytes      uint16\n\tFw_rev         [8]uint8\n\tModel          [40]uint8\n\tMax_multsect   uint8\n\tVendor3        uint8\n\tDword_io       uint16\n\tVendor4        uint8\n\tCapability     uint8\n\tReserved50     uint16\n\tVendor5        uint8\n\tTPIO           uint8\n\tVendor6        uint8\n\tTDMA           uint8\n\tField_valid    uint16\n\tCur_cyls       uint16\n\tCur_heads      uint16\n\tCur_sectors    uint16\n\tCur_capacity0  uint16\n\tCur_capacity1  uint16\n\tMultsect       uint8\n\tMultsect_valid uint8\n\tLba_capacity   uint32\n\tDma_1word      uint16\n\tDma_mword      uint16\n\tEide_pio_modes uint16\n\tEide_dma_min   uint16\n\tEide_dma_time  uint16\n\tEide_pio       uint16\n\tEide_pio_iordy uint16\n\tWords69_70     [2]uint16\n\tWords71_74     [4]uint16\n\tQueue_depth    uint16\n\tWords76_79     [4]uint16\n\tMajor_rev_num  uint16\n\tMinor_rev_num  uint16\n\tCommand_set_1  uint16\n\tCommand_set_2  uint16\n\tCfsse          uint16\n\tCfs_enable_1   uint16\n\tCfs_enable_2   uint16\n\tCsf_default    uint16\n\tDma_ultra      uint16\n\tTrseuc         uint16\n\tTrsEuc         uint16\n\tCurAPMvalues   uint16\n\tMprc           uint16\n\tHw_config      uint16\n\tAcoustic       uint16\n\tMsrqs          uint16\n\tSxfert         uint16\n\tSal            uint16\n\tSpg            uint32\n\tLba_capacity_2 uint64\n\tWords104_125   [22]uint16\n\tLast_lun       uint16\n\tWord127        uint16\n\tDlf            uint16\n\tCsfo           uint16\n\tWords130_155   [26]uint16\n\tWord156        uint16\n\tWords157_159   [3]uint16\n\tCfa_power      uint16\n\tWords161_175   [15]uint16\n\tWords176_205   [30]uint16\n\tWords206_254   [49]uint16\n\tIntegrity_word uint16\n}\n\nconst (\n\tST_MANDLOCK    = 0x40\n\tST_NOATIME     = 0x400\n\tST_NODEV       = 0x4\n\tST_NODIRATIME  = 0x800\n\tST_NOEXEC      = 0x8\n\tST_NOSUID      = 0x2\n\tST_RDONLY      = 0x1\n\tST_RELATIME    = 0x1000\n\tST_SYNCHRONOUS = 0x10\n)\n\ntype Tpacket2Hdr struct {\n\tStatus    uint32\n\tLen       uint32\n\tSnaplen   uint32\n\tMac       uint16\n\tNet       uint16\n\tSec       uint32\n\tNsec      uint32\n\tVlan_tci  uint16\n\tVlan_tpid uint16\n\t_         [4]uint8\n}\n\ntype Tpacket3Hdr struct {\n\tNext_offset uint32\n\tSec         uint32\n\tNsec        uint32\n\tSnaplen     uint32\n\tLen         uint32\n\tStatus      uint32\n\tMac         uint16\n\tNet         uint16\n\tHv1         TpacketHdrVariant1\n\t_           [8]uint8\n}\n\ntype TpacketHdrVariant1 struct {\n\tRxhash    uint32\n\tVlan_tci  uint32\n\tVlan_tpid uint16\n\t_         uint16\n}\n\ntype TpacketBlockDesc struct {\n\tVersion uint32\n\tTo_priv uint32\n\tHdr     [40]byte\n}\n\ntype TpacketBDTS struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype TpacketHdrV1 struct {\n\tBlock_status        uint32\n\tNum_pkts            uint32\n\tOffset_to_first_pkt uint32\n\tBlk_len             uint32\n\tSeq_num             uint64\n\tTs_first_pkt        TpacketBDTS\n\tTs_last_pkt         TpacketBDTS\n}\n\ntype TpacketReq struct {\n\tBlock_size uint32\n\tBlock_nr   uint32\n\tFrame_size uint32\n\tFrame_nr   uint32\n}\n\ntype TpacketReq3 struct {\n\tBlock_size       uint32\n\tBlock_nr         uint32\n\tFrame_size       uint32\n\tFrame_nr         uint32\n\tRetire_blk_tov   uint32\n\tSizeof_priv      uint32\n\tFeature_req_word uint32\n}\n\ntype TpacketStats struct {\n\tPackets uint32\n\tDrops   uint32\n}\n\ntype TpacketStatsV3 struct {\n\tPackets      uint32\n\tDrops        uint32\n\tFreeze_q_cnt uint32\n}\n\ntype TpacketAuxdata struct {\n\tStatus    uint32\n\tLen       uint32\n\tSnaplen   uint32\n\tMac       uint16\n\tNet       uint16\n\tVlan_tci  uint16\n\tVlan_tpid uint16\n}\n\nconst (\n\tTPACKET_V1 = 0x0\n\tTPACKET_V2 = 0x1\n\tTPACKET_V3 = 0x2\n)\n\nconst (\n\tSizeofTpacket2Hdr = 0x20\n\tSizeofTpacket3Hdr = 0x30\n\n\tSizeofTpacketStats   = 0x8\n\tSizeofTpacketStatsV3 = 0xc\n)\n\nconst (\n\tIFLA_UNSPEC                                = 0x0\n\tIFLA_ADDRESS                               = 0x1\n\tIFLA_BROADCAST                             = 0x2\n\tIFLA_IFNAME                                = 0x3\n\tIFLA_MTU                                   = 0x4\n\tIFLA_LINK                                  = 0x5\n\tIFLA_QDISC                                 = 0x6\n\tIFLA_STATS                                 = 0x7\n\tIFLA_COST                                  = 0x8\n\tIFLA_PRIORITY                              = 0x9\n\tIFLA_MASTER                                = 0xa\n\tIFLA_WIRELESS                              = 0xb\n\tIFLA_PROTINFO                              = 0xc\n\tIFLA_TXQLEN                                = 0xd\n\tIFLA_MAP                                   = 0xe\n\tIFLA_WEIGHT                                = 0xf\n\tIFLA_OPERSTATE                             = 0x10\n\tIFLA_LINKMODE                              = 0x11\n\tIFLA_LINKINFO                              = 0x12\n\tIFLA_NET_NS_PID                            = 0x13\n\tIFLA_IFALIAS                               = 0x14\n\tIFLA_NUM_VF                                = 0x15\n\tIFLA_VFINFO_LIST                           = 0x16\n\tIFLA_STATS64                               = 0x17\n\tIFLA_VF_PORTS                              = 0x18\n\tIFLA_PORT_SELF                             = 0x19\n\tIFLA_AF_SPEC                               = 0x1a\n\tIFLA_GROUP                                 = 0x1b\n\tIFLA_NET_NS_FD                             = 0x1c\n\tIFLA_EXT_MASK                              = 0x1d\n\tIFLA_PROMISCUITY                           = 0x1e\n\tIFLA_NUM_TX_QUEUES                         = 0x1f\n\tIFLA_NUM_RX_QUEUES                         = 0x20\n\tIFLA_CARRIER                               = 0x21\n\tIFLA_PHYS_PORT_ID                          = 0x22\n\tIFLA_CARRIER_CHANGES                       = 0x23\n\tIFLA_PHYS_SWITCH_ID                        = 0x24\n\tIFLA_LINK_NETNSID                          = 0x25\n\tIFLA_PHYS_PORT_NAME                        = 0x26\n\tIFLA_PROTO_DOWN                            = 0x27\n\tIFLA_GSO_MAX_SEGS                          = 0x28\n\tIFLA_GSO_MAX_SIZE                          = 0x29\n\tIFLA_PAD                                   = 0x2a\n\tIFLA_XDP                                   = 0x2b\n\tIFLA_EVENT                                 = 0x2c\n\tIFLA_NEW_NETNSID                           = 0x2d\n\tIFLA_IF_NETNSID                            = 0x2e\n\tIFLA_TARGET_NETNSID                        = 0x2e\n\tIFLA_CARRIER_UP_COUNT                      = 0x2f\n\tIFLA_CARRIER_DOWN_COUNT                    = 0x30\n\tIFLA_NEW_IFINDEX                           = 0x31\n\tIFLA_MIN_MTU                               = 0x32\n\tIFLA_MAX_MTU                               = 0x33\n\tIFLA_PROP_LIST                             = 0x34\n\tIFLA_ALT_IFNAME                            = 0x35\n\tIFLA_PERM_ADDRESS                          = 0x36\n\tIFLA_PROTO_DOWN_REASON                     = 0x37\n\tIFLA_PARENT_DEV_NAME                       = 0x38\n\tIFLA_PARENT_DEV_BUS_NAME                   = 0x39\n\tIFLA_GRO_MAX_SIZE                          = 0x3a\n\tIFLA_TSO_MAX_SIZE                          = 0x3b\n\tIFLA_TSO_MAX_SEGS                          = 0x3c\n\tIFLA_ALLMULTI                              = 0x3d\n\tIFLA_DEVLINK_PORT                          = 0x3e\n\tIFLA_GSO_IPV4_MAX_SIZE                     = 0x3f\n\tIFLA_GRO_IPV4_MAX_SIZE                     = 0x40\n\tIFLA_DPLL_PIN                              = 0x41\n\tIFLA_PROTO_DOWN_REASON_UNSPEC              = 0x0\n\tIFLA_PROTO_DOWN_REASON_MASK                = 0x1\n\tIFLA_PROTO_DOWN_REASON_VALUE               = 0x2\n\tIFLA_PROTO_DOWN_REASON_MAX                 = 0x2\n\tIFLA_INET_UNSPEC                           = 0x0\n\tIFLA_INET_CONF                             = 0x1\n\tIFLA_INET6_UNSPEC                          = 0x0\n\tIFLA_INET6_FLAGS                           = 0x1\n\tIFLA_INET6_CONF                            = 0x2\n\tIFLA_INET6_STATS                           = 0x3\n\tIFLA_INET6_MCAST                           = 0x4\n\tIFLA_INET6_CACHEINFO                       = 0x5\n\tIFLA_INET6_ICMP6STATS                      = 0x6\n\tIFLA_INET6_TOKEN                           = 0x7\n\tIFLA_INET6_ADDR_GEN_MODE                   = 0x8\n\tIFLA_INET6_RA_MTU                          = 0x9\n\tIFLA_BR_UNSPEC                             = 0x0\n\tIFLA_BR_FORWARD_DELAY                      = 0x1\n\tIFLA_BR_HELLO_TIME                         = 0x2\n\tIFLA_BR_MAX_AGE                            = 0x3\n\tIFLA_BR_AGEING_TIME                        = 0x4\n\tIFLA_BR_STP_STATE                          = 0x5\n\tIFLA_BR_PRIORITY                           = 0x6\n\tIFLA_BR_VLAN_FILTERING                     = 0x7\n\tIFLA_BR_VLAN_PROTOCOL                      = 0x8\n\tIFLA_BR_GROUP_FWD_MASK                     = 0x9\n\tIFLA_BR_ROOT_ID                            = 0xa\n\tIFLA_BR_BRIDGE_ID                          = 0xb\n\tIFLA_BR_ROOT_PORT                          = 0xc\n\tIFLA_BR_ROOT_PATH_COST                     = 0xd\n\tIFLA_BR_TOPOLOGY_CHANGE                    = 0xe\n\tIFLA_BR_TOPOLOGY_CHANGE_DETECTED           = 0xf\n\tIFLA_BR_HELLO_TIMER                        = 0x10\n\tIFLA_BR_TCN_TIMER                          = 0x11\n\tIFLA_BR_TOPOLOGY_CHANGE_TIMER              = 0x12\n\tIFLA_BR_GC_TIMER                           = 0x13\n\tIFLA_BR_GROUP_ADDR                         = 0x14\n\tIFLA_BR_FDB_FLUSH                          = 0x15\n\tIFLA_BR_MCAST_ROUTER                       = 0x16\n\tIFLA_BR_MCAST_SNOOPING                     = 0x17\n\tIFLA_BR_MCAST_QUERY_USE_IFADDR             = 0x18\n\tIFLA_BR_MCAST_QUERIER                      = 0x19\n\tIFLA_BR_MCAST_HASH_ELASTICITY              = 0x1a\n\tIFLA_BR_MCAST_HASH_MAX                     = 0x1b\n\tIFLA_BR_MCAST_LAST_MEMBER_CNT              = 0x1c\n\tIFLA_BR_MCAST_STARTUP_QUERY_CNT            = 0x1d\n\tIFLA_BR_MCAST_LAST_MEMBER_INTVL            = 0x1e\n\tIFLA_BR_MCAST_MEMBERSHIP_INTVL             = 0x1f\n\tIFLA_BR_MCAST_QUERIER_INTVL                = 0x20\n\tIFLA_BR_MCAST_QUERY_INTVL                  = 0x21\n\tIFLA_BR_MCAST_QUERY_RESPONSE_INTVL         = 0x22\n\tIFLA_BR_MCAST_STARTUP_QUERY_INTVL          = 0x23\n\tIFLA_BR_NF_CALL_IPTABLES                   = 0x24\n\tIFLA_BR_NF_CALL_IP6TABLES                  = 0x25\n\tIFLA_BR_NF_CALL_ARPTABLES                  = 0x26\n\tIFLA_BR_VLAN_DEFAULT_PVID                  = 0x27\n\tIFLA_BR_PAD                                = 0x28\n\tIFLA_BR_VLAN_STATS_ENABLED                 = 0x29\n\tIFLA_BR_MCAST_STATS_ENABLED                = 0x2a\n\tIFLA_BR_MCAST_IGMP_VERSION                 = 0x2b\n\tIFLA_BR_MCAST_MLD_VERSION                  = 0x2c\n\tIFLA_BR_VLAN_STATS_PER_PORT                = 0x2d\n\tIFLA_BR_MULTI_BOOLOPT                      = 0x2e\n\tIFLA_BR_MCAST_QUERIER_STATE                = 0x2f\n\tIFLA_BR_FDB_N_LEARNED                      = 0x30\n\tIFLA_BR_FDB_MAX_LEARNED                    = 0x31\n\tIFLA_BRPORT_UNSPEC                         = 0x0\n\tIFLA_BRPORT_STATE                          = 0x1\n\tIFLA_BRPORT_PRIORITY                       = 0x2\n\tIFLA_BRPORT_COST                           = 0x3\n\tIFLA_BRPORT_MODE                           = 0x4\n\tIFLA_BRPORT_GUARD                          = 0x5\n\tIFLA_BRPORT_PROTECT                        = 0x6\n\tIFLA_BRPORT_FAST_LEAVE                     = 0x7\n\tIFLA_BRPORT_LEARNING                       = 0x8\n\tIFLA_BRPORT_UNICAST_FLOOD                  = 0x9\n\tIFLA_BRPORT_PROXYARP                       = 0xa\n\tIFLA_BRPORT_LEARNING_SYNC                  = 0xb\n\tIFLA_BRPORT_PROXYARP_WIFI                  = 0xc\n\tIFLA_BRPORT_ROOT_ID                        = 0xd\n\tIFLA_BRPORT_BRIDGE_ID                      = 0xe\n\tIFLA_BRPORT_DESIGNATED_PORT                = 0xf\n\tIFLA_BRPORT_DESIGNATED_COST                = 0x10\n\tIFLA_BRPORT_ID                             = 0x11\n\tIFLA_BRPORT_NO                             = 0x12\n\tIFLA_BRPORT_TOPOLOGY_CHANGE_ACK            = 0x13\n\tIFLA_BRPORT_CONFIG_PENDING                 = 0x14\n\tIFLA_BRPORT_MESSAGE_AGE_TIMER              = 0x15\n\tIFLA_BRPORT_FORWARD_DELAY_TIMER            = 0x16\n\tIFLA_BRPORT_HOLD_TIMER                     = 0x17\n\tIFLA_BRPORT_FLUSH                          = 0x18\n\tIFLA_BRPORT_MULTICAST_ROUTER               = 0x19\n\tIFLA_BRPORT_PAD                            = 0x1a\n\tIFLA_BRPORT_MCAST_FLOOD                    = 0x1b\n\tIFLA_BRPORT_MCAST_TO_UCAST                 = 0x1c\n\tIFLA_BRPORT_VLAN_TUNNEL                    = 0x1d\n\tIFLA_BRPORT_BCAST_FLOOD                    = 0x1e\n\tIFLA_BRPORT_GROUP_FWD_MASK                 = 0x1f\n\tIFLA_BRPORT_NEIGH_SUPPRESS                 = 0x20\n\tIFLA_BRPORT_ISOLATED                       = 0x21\n\tIFLA_BRPORT_BACKUP_PORT                    = 0x22\n\tIFLA_BRPORT_MRP_RING_OPEN                  = 0x23\n\tIFLA_BRPORT_MRP_IN_OPEN                    = 0x24\n\tIFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT          = 0x25\n\tIFLA_BRPORT_MCAST_EHT_HOSTS_CNT            = 0x26\n\tIFLA_BRPORT_LOCKED                         = 0x27\n\tIFLA_BRPORT_MAB                            = 0x28\n\tIFLA_BRPORT_MCAST_N_GROUPS                 = 0x29\n\tIFLA_BRPORT_MCAST_MAX_GROUPS               = 0x2a\n\tIFLA_BRPORT_NEIGH_VLAN_SUPPRESS            = 0x2b\n\tIFLA_BRPORT_BACKUP_NHID                    = 0x2c\n\tIFLA_INFO_UNSPEC                           = 0x0\n\tIFLA_INFO_KIND                             = 0x1\n\tIFLA_INFO_DATA                             = 0x2\n\tIFLA_INFO_XSTATS                           = 0x3\n\tIFLA_INFO_SLAVE_KIND                       = 0x4\n\tIFLA_INFO_SLAVE_DATA                       = 0x5\n\tIFLA_VLAN_UNSPEC                           = 0x0\n\tIFLA_VLAN_ID                               = 0x1\n\tIFLA_VLAN_FLAGS                            = 0x2\n\tIFLA_VLAN_EGRESS_QOS                       = 0x3\n\tIFLA_VLAN_INGRESS_QOS                      = 0x4\n\tIFLA_VLAN_PROTOCOL                         = 0x5\n\tIFLA_VLAN_QOS_UNSPEC                       = 0x0\n\tIFLA_VLAN_QOS_MAPPING                      = 0x1\n\tIFLA_MACVLAN_UNSPEC                        = 0x0\n\tIFLA_MACVLAN_MODE                          = 0x1\n\tIFLA_MACVLAN_FLAGS                         = 0x2\n\tIFLA_MACVLAN_MACADDR_MODE                  = 0x3\n\tIFLA_MACVLAN_MACADDR                       = 0x4\n\tIFLA_MACVLAN_MACADDR_DATA                  = 0x5\n\tIFLA_MACVLAN_MACADDR_COUNT                 = 0x6\n\tIFLA_MACVLAN_BC_QUEUE_LEN                  = 0x7\n\tIFLA_MACVLAN_BC_QUEUE_LEN_USED             = 0x8\n\tIFLA_MACVLAN_BC_CUTOFF                     = 0x9\n\tIFLA_VRF_UNSPEC                            = 0x0\n\tIFLA_VRF_TABLE                             = 0x1\n\tIFLA_VRF_PORT_UNSPEC                       = 0x0\n\tIFLA_VRF_PORT_TABLE                        = 0x1\n\tIFLA_MACSEC_UNSPEC                         = 0x0\n\tIFLA_MACSEC_SCI                            = 0x1\n\tIFLA_MACSEC_PORT                           = 0x2\n\tIFLA_MACSEC_ICV_LEN                        = 0x3\n\tIFLA_MACSEC_CIPHER_SUITE                   = 0x4\n\tIFLA_MACSEC_WINDOW                         = 0x5\n\tIFLA_MACSEC_ENCODING_SA                    = 0x6\n\tIFLA_MACSEC_ENCRYPT                        = 0x7\n\tIFLA_MACSEC_PROTECT                        = 0x8\n\tIFLA_MACSEC_INC_SCI                        = 0x9\n\tIFLA_MACSEC_ES                             = 0xa\n\tIFLA_MACSEC_SCB                            = 0xb\n\tIFLA_MACSEC_REPLAY_PROTECT                 = 0xc\n\tIFLA_MACSEC_VALIDATION                     = 0xd\n\tIFLA_MACSEC_PAD                            = 0xe\n\tIFLA_MACSEC_OFFLOAD                        = 0xf\n\tIFLA_XFRM_UNSPEC                           = 0x0\n\tIFLA_XFRM_LINK                             = 0x1\n\tIFLA_XFRM_IF_ID                            = 0x2\n\tIFLA_XFRM_COLLECT_METADATA                 = 0x3\n\tIFLA_IPVLAN_UNSPEC                         = 0x0\n\tIFLA_IPVLAN_MODE                           = 0x1\n\tIFLA_IPVLAN_FLAGS                          = 0x2\n\tIFLA_NETKIT_UNSPEC                         = 0x0\n\tIFLA_NETKIT_PEER_INFO                      = 0x1\n\tIFLA_NETKIT_PRIMARY                        = 0x2\n\tIFLA_NETKIT_POLICY                         = 0x3\n\tIFLA_NETKIT_PEER_POLICY                    = 0x4\n\tIFLA_NETKIT_MODE                           = 0x5\n\tIFLA_VXLAN_UNSPEC                          = 0x0\n\tIFLA_VXLAN_ID                              = 0x1\n\tIFLA_VXLAN_GROUP                           = 0x2\n\tIFLA_VXLAN_LINK                            = 0x3\n\tIFLA_VXLAN_LOCAL                           = 0x4\n\tIFLA_VXLAN_TTL                             = 0x5\n\tIFLA_VXLAN_TOS                             = 0x6\n\tIFLA_VXLAN_LEARNING                        = 0x7\n\tIFLA_VXLAN_AGEING                          = 0x8\n\tIFLA_VXLAN_LIMIT                           = 0x9\n\tIFLA_VXLAN_PORT_RANGE                      = 0xa\n\tIFLA_VXLAN_PROXY                           = 0xb\n\tIFLA_VXLAN_RSC                             = 0xc\n\tIFLA_VXLAN_L2MISS                          = 0xd\n\tIFLA_VXLAN_L3MISS                          = 0xe\n\tIFLA_VXLAN_PORT                            = 0xf\n\tIFLA_VXLAN_GROUP6                          = 0x10\n\tIFLA_VXLAN_LOCAL6                          = 0x11\n\tIFLA_VXLAN_UDP_CSUM                        = 0x12\n\tIFLA_VXLAN_UDP_ZERO_CSUM6_TX               = 0x13\n\tIFLA_VXLAN_UDP_ZERO_CSUM6_RX               = 0x14\n\tIFLA_VXLAN_REMCSUM_TX                      = 0x15\n\tIFLA_VXLAN_REMCSUM_RX                      = 0x16\n\tIFLA_VXLAN_GBP                             = 0x17\n\tIFLA_VXLAN_REMCSUM_NOPARTIAL               = 0x18\n\tIFLA_VXLAN_COLLECT_METADATA                = 0x19\n\tIFLA_VXLAN_LABEL                           = 0x1a\n\tIFLA_VXLAN_GPE                             = 0x1b\n\tIFLA_VXLAN_TTL_INHERIT                     = 0x1c\n\tIFLA_VXLAN_DF                              = 0x1d\n\tIFLA_VXLAN_VNIFILTER                       = 0x1e\n\tIFLA_VXLAN_LOCALBYPASS                     = 0x1f\n\tIFLA_VXLAN_LABEL_POLICY                    = 0x20\n\tIFLA_GENEVE_UNSPEC                         = 0x0\n\tIFLA_GENEVE_ID                             = 0x1\n\tIFLA_GENEVE_REMOTE                         = 0x2\n\tIFLA_GENEVE_TTL                            = 0x3\n\tIFLA_GENEVE_TOS                            = 0x4\n\tIFLA_GENEVE_PORT                           = 0x5\n\tIFLA_GENEVE_COLLECT_METADATA               = 0x6\n\tIFLA_GENEVE_REMOTE6                        = 0x7\n\tIFLA_GENEVE_UDP_CSUM                       = 0x8\n\tIFLA_GENEVE_UDP_ZERO_CSUM6_TX              = 0x9\n\tIFLA_GENEVE_UDP_ZERO_CSUM6_RX              = 0xa\n\tIFLA_GENEVE_LABEL                          = 0xb\n\tIFLA_GENEVE_TTL_INHERIT                    = 0xc\n\tIFLA_GENEVE_DF                             = 0xd\n\tIFLA_GENEVE_INNER_PROTO_INHERIT            = 0xe\n\tIFLA_BAREUDP_UNSPEC                        = 0x0\n\tIFLA_BAREUDP_PORT                          = 0x1\n\tIFLA_BAREUDP_ETHERTYPE                     = 0x2\n\tIFLA_BAREUDP_SRCPORT_MIN                   = 0x3\n\tIFLA_BAREUDP_MULTIPROTO_MODE               = 0x4\n\tIFLA_PPP_UNSPEC                            = 0x0\n\tIFLA_PPP_DEV_FD                            = 0x1\n\tIFLA_GTP_UNSPEC                            = 0x0\n\tIFLA_GTP_FD0                               = 0x1\n\tIFLA_GTP_FD1                               = 0x2\n\tIFLA_GTP_PDP_HASHSIZE                      = 0x3\n\tIFLA_GTP_ROLE                              = 0x4\n\tIFLA_GTP_CREATE_SOCKETS                    = 0x5\n\tIFLA_GTP_RESTART_COUNT                     = 0x6\n\tIFLA_GTP_LOCAL                             = 0x7\n\tIFLA_GTP_LOCAL6                            = 0x8\n\tIFLA_BOND_UNSPEC                           = 0x0\n\tIFLA_BOND_MODE                             = 0x1\n\tIFLA_BOND_ACTIVE_SLAVE                     = 0x2\n\tIFLA_BOND_MIIMON                           = 0x3\n\tIFLA_BOND_UPDELAY                          = 0x4\n\tIFLA_BOND_DOWNDELAY                        = 0x5\n\tIFLA_BOND_USE_CARRIER                      = 0x6\n\tIFLA_BOND_ARP_INTERVAL                     = 0x7\n\tIFLA_BOND_ARP_IP_TARGET                    = 0x8\n\tIFLA_BOND_ARP_VALIDATE                     = 0x9\n\tIFLA_BOND_ARP_ALL_TARGETS                  = 0xa\n\tIFLA_BOND_PRIMARY                          = 0xb\n\tIFLA_BOND_PRIMARY_RESELECT                 = 0xc\n\tIFLA_BOND_FAIL_OVER_MAC                    = 0xd\n\tIFLA_BOND_XMIT_HASH_POLICY                 = 0xe\n\tIFLA_BOND_RESEND_IGMP                      = 0xf\n\tIFLA_BOND_NUM_PEER_NOTIF                   = 0x10\n\tIFLA_BOND_ALL_SLAVES_ACTIVE                = 0x11\n\tIFLA_BOND_MIN_LINKS                        = 0x12\n\tIFLA_BOND_LP_INTERVAL                      = 0x13\n\tIFLA_BOND_PACKETS_PER_SLAVE                = 0x14\n\tIFLA_BOND_AD_LACP_RATE                     = 0x15\n\tIFLA_BOND_AD_SELECT                        = 0x16\n\tIFLA_BOND_AD_INFO                          = 0x17\n\tIFLA_BOND_AD_ACTOR_SYS_PRIO                = 0x18\n\tIFLA_BOND_AD_USER_PORT_KEY                 = 0x19\n\tIFLA_BOND_AD_ACTOR_SYSTEM                  = 0x1a\n\tIFLA_BOND_TLB_DYNAMIC_LB                   = 0x1b\n\tIFLA_BOND_PEER_NOTIF_DELAY                 = 0x1c\n\tIFLA_BOND_AD_LACP_ACTIVE                   = 0x1d\n\tIFLA_BOND_MISSED_MAX                       = 0x1e\n\tIFLA_BOND_NS_IP6_TARGET                    = 0x1f\n\tIFLA_BOND_COUPLED_CONTROL                  = 0x20\n\tIFLA_BOND_AD_INFO_UNSPEC                   = 0x0\n\tIFLA_BOND_AD_INFO_AGGREGATOR               = 0x1\n\tIFLA_BOND_AD_INFO_NUM_PORTS                = 0x2\n\tIFLA_BOND_AD_INFO_ACTOR_KEY                = 0x3\n\tIFLA_BOND_AD_INFO_PARTNER_KEY              = 0x4\n\tIFLA_BOND_AD_INFO_PARTNER_MAC              = 0x5\n\tIFLA_BOND_SLAVE_UNSPEC                     = 0x0\n\tIFLA_BOND_SLAVE_STATE                      = 0x1\n\tIFLA_BOND_SLAVE_MII_STATUS                 = 0x2\n\tIFLA_BOND_SLAVE_LINK_FAILURE_COUNT         = 0x3\n\tIFLA_BOND_SLAVE_PERM_HWADDR                = 0x4\n\tIFLA_BOND_SLAVE_QUEUE_ID                   = 0x5\n\tIFLA_BOND_SLAVE_AD_AGGREGATOR_ID           = 0x6\n\tIFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE   = 0x7\n\tIFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE = 0x8\n\tIFLA_BOND_SLAVE_PRIO                       = 0x9\n\tIFLA_VF_INFO_UNSPEC                        = 0x0\n\tIFLA_VF_INFO                               = 0x1\n\tIFLA_VF_UNSPEC                             = 0x0\n\tIFLA_VF_MAC                                = 0x1\n\tIFLA_VF_VLAN                               = 0x2\n\tIFLA_VF_TX_RATE                            = 0x3\n\tIFLA_VF_SPOOFCHK                           = 0x4\n\tIFLA_VF_LINK_STATE                         = 0x5\n\tIFLA_VF_RATE                               = 0x6\n\tIFLA_VF_RSS_QUERY_EN                       = 0x7\n\tIFLA_VF_STATS                              = 0x8\n\tIFLA_VF_TRUST                              = 0x9\n\tIFLA_VF_IB_NODE_GUID                       = 0xa\n\tIFLA_VF_IB_PORT_GUID                       = 0xb\n\tIFLA_VF_VLAN_LIST                          = 0xc\n\tIFLA_VF_BROADCAST                          = 0xd\n\tIFLA_VF_VLAN_INFO_UNSPEC                   = 0x0\n\tIFLA_VF_VLAN_INFO                          = 0x1\n\tIFLA_VF_LINK_STATE_AUTO                    = 0x0\n\tIFLA_VF_LINK_STATE_ENABLE                  = 0x1\n\tIFLA_VF_LINK_STATE_DISABLE                 = 0x2\n\tIFLA_VF_STATS_RX_PACKETS                   = 0x0\n\tIFLA_VF_STATS_TX_PACKETS                   = 0x1\n\tIFLA_VF_STATS_RX_BYTES                     = 0x2\n\tIFLA_VF_STATS_TX_BYTES                     = 0x3\n\tIFLA_VF_STATS_BROADCAST                    = 0x4\n\tIFLA_VF_STATS_MULTICAST                    = 0x5\n\tIFLA_VF_STATS_PAD                          = 0x6\n\tIFLA_VF_STATS_RX_DROPPED                   = 0x7\n\tIFLA_VF_STATS_TX_DROPPED                   = 0x8\n\tIFLA_VF_PORT_UNSPEC                        = 0x0\n\tIFLA_VF_PORT                               = 0x1\n\tIFLA_PORT_UNSPEC                           = 0x0\n\tIFLA_PORT_VF                               = 0x1\n\tIFLA_PORT_PROFILE                          = 0x2\n\tIFLA_PORT_VSI_TYPE                         = 0x3\n\tIFLA_PORT_INSTANCE_UUID                    = 0x4\n\tIFLA_PORT_HOST_UUID                        = 0x5\n\tIFLA_PORT_REQUEST                          = 0x6\n\tIFLA_PORT_RESPONSE                         = 0x7\n\tIFLA_IPOIB_UNSPEC                          = 0x0\n\tIFLA_IPOIB_PKEY                            = 0x1\n\tIFLA_IPOIB_MODE                            = 0x2\n\tIFLA_IPOIB_UMCAST                          = 0x3\n\tIFLA_HSR_UNSPEC                            = 0x0\n\tIFLA_HSR_SLAVE1                            = 0x1\n\tIFLA_HSR_SLAVE2                            = 0x2\n\tIFLA_HSR_MULTICAST_SPEC                    = 0x3\n\tIFLA_HSR_SUPERVISION_ADDR                  = 0x4\n\tIFLA_HSR_SEQ_NR                            = 0x5\n\tIFLA_HSR_VERSION                           = 0x6\n\tIFLA_HSR_PROTOCOL                          = 0x7\n\tIFLA_HSR_INTERLINK                         = 0x8\n\tIFLA_STATS_UNSPEC                          = 0x0\n\tIFLA_STATS_LINK_64                         = 0x1\n\tIFLA_STATS_LINK_XSTATS                     = 0x2\n\tIFLA_STATS_LINK_XSTATS_SLAVE               = 0x3\n\tIFLA_STATS_LINK_OFFLOAD_XSTATS             = 0x4\n\tIFLA_STATS_AF_SPEC                         = 0x5\n\tIFLA_STATS_GETSET_UNSPEC                   = 0x0\n\tIFLA_STATS_GET_FILTERS                     = 0x1\n\tIFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS     = 0x2\n\tIFLA_OFFLOAD_XSTATS_UNSPEC                 = 0x0\n\tIFLA_OFFLOAD_XSTATS_CPU_HIT                = 0x1\n\tIFLA_OFFLOAD_XSTATS_HW_S_INFO              = 0x2\n\tIFLA_OFFLOAD_XSTATS_L3_STATS               = 0x3\n\tIFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC       = 0x0\n\tIFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST      = 0x1\n\tIFLA_OFFLOAD_XSTATS_HW_S_INFO_USED         = 0x2\n\tIFLA_XDP_UNSPEC                            = 0x0\n\tIFLA_XDP_FD                                = 0x1\n\tIFLA_XDP_ATTACHED                          = 0x2\n\tIFLA_XDP_FLAGS                             = 0x3\n\tIFLA_XDP_PROG_ID                           = 0x4\n\tIFLA_XDP_DRV_PROG_ID                       = 0x5\n\tIFLA_XDP_SKB_PROG_ID                       = 0x6\n\tIFLA_XDP_HW_PROG_ID                        = 0x7\n\tIFLA_XDP_EXPECTED_FD                       = 0x8\n\tIFLA_EVENT_NONE                            = 0x0\n\tIFLA_EVENT_REBOOT                          = 0x1\n\tIFLA_EVENT_FEATURES                        = 0x2\n\tIFLA_EVENT_BONDING_FAILOVER                = 0x3\n\tIFLA_EVENT_NOTIFY_PEERS                    = 0x4\n\tIFLA_EVENT_IGMP_RESEND                     = 0x5\n\tIFLA_EVENT_BONDING_OPTIONS                 = 0x6\n\tIFLA_TUN_UNSPEC                            = 0x0\n\tIFLA_TUN_OWNER                             = 0x1\n\tIFLA_TUN_GROUP                             = 0x2\n\tIFLA_TUN_TYPE                              = 0x3\n\tIFLA_TUN_PI                                = 0x4\n\tIFLA_TUN_VNET_HDR                          = 0x5\n\tIFLA_TUN_PERSIST                           = 0x6\n\tIFLA_TUN_MULTI_QUEUE                       = 0x7\n\tIFLA_TUN_NUM_QUEUES                        = 0x8\n\tIFLA_TUN_NUM_DISABLED_QUEUES               = 0x9\n\tIFLA_RMNET_UNSPEC                          = 0x0\n\tIFLA_RMNET_MUX_ID                          = 0x1\n\tIFLA_RMNET_FLAGS                           = 0x2\n\tIFLA_MCTP_UNSPEC                           = 0x0\n\tIFLA_MCTP_NET                              = 0x1\n\tIFLA_DSA_UNSPEC                            = 0x0\n\tIFLA_DSA_CONDUIT                           = 0x1\n\tIFLA_DSA_MASTER                            = 0x1\n)\n\nconst (\n\tNETKIT_NEXT     = -0x1\n\tNETKIT_PASS     = 0x0\n\tNETKIT_DROP     = 0x2\n\tNETKIT_REDIRECT = 0x7\n\tNETKIT_L2       = 0x0\n\tNETKIT_L3       = 0x1\n)\n\nconst (\n\tNF_INET_PRE_ROUTING  = 0x0\n\tNF_INET_LOCAL_IN     = 0x1\n\tNF_INET_FORWARD      = 0x2\n\tNF_INET_LOCAL_OUT    = 0x3\n\tNF_INET_POST_ROUTING = 0x4\n\tNF_INET_NUMHOOKS     = 0x5\n)\n\nconst (\n\tNF_NETDEV_INGRESS  = 0x0\n\tNF_NETDEV_EGRESS   = 0x1\n\tNF_NETDEV_NUMHOOKS = 0x2\n)\n\nconst (\n\tNFPROTO_UNSPEC   = 0x0\n\tNFPROTO_INET     = 0x1\n\tNFPROTO_IPV4     = 0x2\n\tNFPROTO_ARP      = 0x3\n\tNFPROTO_NETDEV   = 0x5\n\tNFPROTO_BRIDGE   = 0x7\n\tNFPROTO_IPV6     = 0xa\n\tNFPROTO_DECNET   = 0xc\n\tNFPROTO_NUMPROTO = 0xd\n)\n\nconst SO_ORIGINAL_DST = 0x50\n\ntype Nfgenmsg struct {\n\tNfgen_family uint8\n\tVersion      uint8\n\tRes_id       uint16\n}\n\nconst (\n\tNFNL_BATCH_UNSPEC = 0x0\n\tNFNL_BATCH_GENID  = 0x1\n)\n\nconst (\n\tNFT_REG_VERDICT                   = 0x0\n\tNFT_REG_1                         = 0x1\n\tNFT_REG_2                         = 0x2\n\tNFT_REG_3                         = 0x3\n\tNFT_REG_4                         = 0x4\n\tNFT_REG32_00                      = 0x8\n\tNFT_REG32_01                      = 0x9\n\tNFT_REG32_02                      = 0xa\n\tNFT_REG32_03                      = 0xb\n\tNFT_REG32_04                      = 0xc\n\tNFT_REG32_05                      = 0xd\n\tNFT_REG32_06                      = 0xe\n\tNFT_REG32_07                      = 0xf\n\tNFT_REG32_08                      = 0x10\n\tNFT_REG32_09                      = 0x11\n\tNFT_REG32_10                      = 0x12\n\tNFT_REG32_11                      = 0x13\n\tNFT_REG32_12                      = 0x14\n\tNFT_REG32_13                      = 0x15\n\tNFT_REG32_14                      = 0x16\n\tNFT_REG32_15                      = 0x17\n\tNFT_CONTINUE                      = -0x1\n\tNFT_BREAK                         = -0x2\n\tNFT_JUMP                          = -0x3\n\tNFT_GOTO                          = -0x4\n\tNFT_RETURN                        = -0x5\n\tNFT_MSG_NEWTABLE                  = 0x0\n\tNFT_MSG_GETTABLE                  = 0x1\n\tNFT_MSG_DELTABLE                  = 0x2\n\tNFT_MSG_NEWCHAIN                  = 0x3\n\tNFT_MSG_GETCHAIN                  = 0x4\n\tNFT_MSG_DELCHAIN                  = 0x5\n\tNFT_MSG_NEWRULE                   = 0x6\n\tNFT_MSG_GETRULE                   = 0x7\n\tNFT_MSG_DELRULE                   = 0x8\n\tNFT_MSG_NEWSET                    = 0x9\n\tNFT_MSG_GETSET                    = 0xa\n\tNFT_MSG_DELSET                    = 0xb\n\tNFT_MSG_NEWSETELEM                = 0xc\n\tNFT_MSG_GETSETELEM                = 0xd\n\tNFT_MSG_DELSETELEM                = 0xe\n\tNFT_MSG_NEWGEN                    = 0xf\n\tNFT_MSG_GETGEN                    = 0x10\n\tNFT_MSG_TRACE                     = 0x11\n\tNFT_MSG_NEWOBJ                    = 0x12\n\tNFT_MSG_GETOBJ                    = 0x13\n\tNFT_MSG_DELOBJ                    = 0x14\n\tNFT_MSG_GETOBJ_RESET              = 0x15\n\tNFT_MSG_NEWFLOWTABLE              = 0x16\n\tNFT_MSG_GETFLOWTABLE              = 0x17\n\tNFT_MSG_DELFLOWTABLE              = 0x18\n\tNFT_MSG_GETRULE_RESET             = 0x19\n\tNFT_MSG_MAX                       = 0x22\n\tNFTA_LIST_UNSPEC                  = 0x0\n\tNFTA_LIST_ELEM                    = 0x1\n\tNFTA_HOOK_UNSPEC                  = 0x0\n\tNFTA_HOOK_HOOKNUM                 = 0x1\n\tNFTA_HOOK_PRIORITY                = 0x2\n\tNFTA_HOOK_DEV                     = 0x3\n\tNFT_TABLE_F_DORMANT               = 0x1\n\tNFTA_TABLE_UNSPEC                 = 0x0\n\tNFTA_TABLE_NAME                   = 0x1\n\tNFTA_TABLE_FLAGS                  = 0x2\n\tNFTA_TABLE_USE                    = 0x3\n\tNFTA_CHAIN_UNSPEC                 = 0x0\n\tNFTA_CHAIN_TABLE                  = 0x1\n\tNFTA_CHAIN_HANDLE                 = 0x2\n\tNFTA_CHAIN_NAME                   = 0x3\n\tNFTA_CHAIN_HOOK                   = 0x4\n\tNFTA_CHAIN_POLICY                 = 0x5\n\tNFTA_CHAIN_USE                    = 0x6\n\tNFTA_CHAIN_TYPE                   = 0x7\n\tNFTA_CHAIN_COUNTERS               = 0x8\n\tNFTA_CHAIN_PAD                    = 0x9\n\tNFTA_RULE_UNSPEC                  = 0x0\n\tNFTA_RULE_TABLE                   = 0x1\n\tNFTA_RULE_CHAIN                   = 0x2\n\tNFTA_RULE_HANDLE                  = 0x3\n\tNFTA_RULE_EXPRESSIONS             = 0x4\n\tNFTA_RULE_COMPAT                  = 0x5\n\tNFTA_RULE_POSITION                = 0x6\n\tNFTA_RULE_USERDATA                = 0x7\n\tNFTA_RULE_PAD                     = 0x8\n\tNFTA_RULE_ID                      = 0x9\n\tNFT_RULE_COMPAT_F_INV             = 0x2\n\tNFT_RULE_COMPAT_F_MASK            = 0x2\n\tNFTA_RULE_COMPAT_UNSPEC           = 0x0\n\tNFTA_RULE_COMPAT_PROTO            = 0x1\n\tNFTA_RULE_COMPAT_FLAGS            = 0x2\n\tNFT_SET_ANONYMOUS                 = 0x1\n\tNFT_SET_CONSTANT                  = 0x2\n\tNFT_SET_INTERVAL                  = 0x4\n\tNFT_SET_MAP                       = 0x8\n\tNFT_SET_TIMEOUT                   = 0x10\n\tNFT_SET_EVAL                      = 0x20\n\tNFT_SET_OBJECT                    = 0x40\n\tNFT_SET_POL_PERFORMANCE           = 0x0\n\tNFT_SET_POL_MEMORY                = 0x1\n\tNFTA_SET_DESC_UNSPEC              = 0x0\n\tNFTA_SET_DESC_SIZE                = 0x1\n\tNFTA_SET_UNSPEC                   = 0x0\n\tNFTA_SET_TABLE                    = 0x1\n\tNFTA_SET_NAME                     = 0x2\n\tNFTA_SET_FLAGS                    = 0x3\n\tNFTA_SET_KEY_TYPE                 = 0x4\n\tNFTA_SET_KEY_LEN                  = 0x5\n\tNFTA_SET_DATA_TYPE                = 0x6\n\tNFTA_SET_DATA_LEN                 = 0x7\n\tNFTA_SET_POLICY                   = 0x8\n\tNFTA_SET_DESC                     = 0x9\n\tNFTA_SET_ID                       = 0xa\n\tNFTA_SET_TIMEOUT                  = 0xb\n\tNFTA_SET_GC_INTERVAL              = 0xc\n\tNFTA_SET_USERDATA                 = 0xd\n\tNFTA_SET_PAD                      = 0xe\n\tNFTA_SET_OBJ_TYPE                 = 0xf\n\tNFT_SET_ELEM_INTERVAL_END         = 0x1\n\tNFTA_SET_ELEM_UNSPEC              = 0x0\n\tNFTA_SET_ELEM_KEY                 = 0x1\n\tNFTA_SET_ELEM_DATA                = 0x2\n\tNFTA_SET_ELEM_FLAGS               = 0x3\n\tNFTA_SET_ELEM_TIMEOUT             = 0x4\n\tNFTA_SET_ELEM_EXPIRATION          = 0x5\n\tNFTA_SET_ELEM_USERDATA            = 0x6\n\tNFTA_SET_ELEM_EXPR                = 0x7\n\tNFTA_SET_ELEM_PAD                 = 0x8\n\tNFTA_SET_ELEM_OBJREF              = 0x9\n\tNFTA_SET_ELEM_LIST_UNSPEC         = 0x0\n\tNFTA_SET_ELEM_LIST_TABLE          = 0x1\n\tNFTA_SET_ELEM_LIST_SET            = 0x2\n\tNFTA_SET_ELEM_LIST_ELEMENTS       = 0x3\n\tNFTA_SET_ELEM_LIST_SET_ID         = 0x4\n\tNFT_DATA_VALUE                    = 0x0\n\tNFT_DATA_VERDICT                  = 0xffffff00\n\tNFTA_DATA_UNSPEC                  = 0x0\n\tNFTA_DATA_VALUE                   = 0x1\n\tNFTA_DATA_VERDICT                 = 0x2\n\tNFTA_VERDICT_UNSPEC               = 0x0\n\tNFTA_VERDICT_CODE                 = 0x1\n\tNFTA_VERDICT_CHAIN                = 0x2\n\tNFTA_EXPR_UNSPEC                  = 0x0\n\tNFTA_EXPR_NAME                    = 0x1\n\tNFTA_EXPR_DATA                    = 0x2\n\tNFTA_IMMEDIATE_UNSPEC             = 0x0\n\tNFTA_IMMEDIATE_DREG               = 0x1\n\tNFTA_IMMEDIATE_DATA               = 0x2\n\tNFTA_BITWISE_UNSPEC               = 0x0\n\tNFTA_BITWISE_SREG                 = 0x1\n\tNFTA_BITWISE_DREG                 = 0x2\n\tNFTA_BITWISE_LEN                  = 0x3\n\tNFTA_BITWISE_MASK                 = 0x4\n\tNFTA_BITWISE_XOR                  = 0x5\n\tNFT_BYTEORDER_NTOH                = 0x0\n\tNFT_BYTEORDER_HTON                = 0x1\n\tNFTA_BYTEORDER_UNSPEC             = 0x0\n\tNFTA_BYTEORDER_SREG               = 0x1\n\tNFTA_BYTEORDER_DREG               = 0x2\n\tNFTA_BYTEORDER_OP                 = 0x3\n\tNFTA_BYTEORDER_LEN                = 0x4\n\tNFTA_BYTEORDER_SIZE               = 0x5\n\tNFT_CMP_EQ                        = 0x0\n\tNFT_CMP_NEQ                       = 0x1\n\tNFT_CMP_LT                        = 0x2\n\tNFT_CMP_LTE                       = 0x3\n\tNFT_CMP_GT                        = 0x4\n\tNFT_CMP_GTE                       = 0x5\n\tNFTA_CMP_UNSPEC                   = 0x0\n\tNFTA_CMP_SREG                     = 0x1\n\tNFTA_CMP_OP                       = 0x2\n\tNFTA_CMP_DATA                     = 0x3\n\tNFT_RANGE_EQ                      = 0x0\n\tNFT_RANGE_NEQ                     = 0x1\n\tNFTA_RANGE_UNSPEC                 = 0x0\n\tNFTA_RANGE_SREG                   = 0x1\n\tNFTA_RANGE_OP                     = 0x2\n\tNFTA_RANGE_FROM_DATA              = 0x3\n\tNFTA_RANGE_TO_DATA                = 0x4\n\tNFT_LOOKUP_F_INV                  = 0x1\n\tNFTA_LOOKUP_UNSPEC                = 0x0\n\tNFTA_LOOKUP_SET                   = 0x1\n\tNFTA_LOOKUP_SREG                  = 0x2\n\tNFTA_LOOKUP_DREG                  = 0x3\n\tNFTA_LOOKUP_SET_ID                = 0x4\n\tNFTA_LOOKUP_FLAGS                 = 0x5\n\tNFT_DYNSET_OP_ADD                 = 0x0\n\tNFT_DYNSET_OP_UPDATE              = 0x1\n\tNFT_DYNSET_F_INV                  = 0x1\n\tNFTA_DYNSET_UNSPEC                = 0x0\n\tNFTA_DYNSET_SET_NAME              = 0x1\n\tNFTA_DYNSET_SET_ID                = 0x2\n\tNFTA_DYNSET_OP                    = 0x3\n\tNFTA_DYNSET_SREG_KEY              = 0x4\n\tNFTA_DYNSET_SREG_DATA             = 0x5\n\tNFTA_DYNSET_TIMEOUT               = 0x6\n\tNFTA_DYNSET_EXPR                  = 0x7\n\tNFTA_DYNSET_PAD                   = 0x8\n\tNFTA_DYNSET_FLAGS                 = 0x9\n\tNFT_PAYLOAD_LL_HEADER             = 0x0\n\tNFT_PAYLOAD_NETWORK_HEADER        = 0x1\n\tNFT_PAYLOAD_TRANSPORT_HEADER      = 0x2\n\tNFT_PAYLOAD_CSUM_NONE             = 0x0\n\tNFT_PAYLOAD_CSUM_INET             = 0x1\n\tNFT_PAYLOAD_L4CSUM_PSEUDOHDR      = 0x1\n\tNFTA_PAYLOAD_UNSPEC               = 0x0\n\tNFTA_PAYLOAD_DREG                 = 0x1\n\tNFTA_PAYLOAD_BASE                 = 0x2\n\tNFTA_PAYLOAD_OFFSET               = 0x3\n\tNFTA_PAYLOAD_LEN                  = 0x4\n\tNFTA_PAYLOAD_SREG                 = 0x5\n\tNFTA_PAYLOAD_CSUM_TYPE            = 0x6\n\tNFTA_PAYLOAD_CSUM_OFFSET          = 0x7\n\tNFTA_PAYLOAD_CSUM_FLAGS           = 0x8\n\tNFT_EXTHDR_F_PRESENT              = 0x1\n\tNFT_EXTHDR_OP_IPV6                = 0x0\n\tNFT_EXTHDR_OP_TCPOPT              = 0x1\n\tNFTA_EXTHDR_UNSPEC                = 0x0\n\tNFTA_EXTHDR_DREG                  = 0x1\n\tNFTA_EXTHDR_TYPE                  = 0x2\n\tNFTA_EXTHDR_OFFSET                = 0x3\n\tNFTA_EXTHDR_LEN                   = 0x4\n\tNFTA_EXTHDR_FLAGS                 = 0x5\n\tNFTA_EXTHDR_OP                    = 0x6\n\tNFTA_EXTHDR_SREG                  = 0x7\n\tNFT_META_LEN                      = 0x0\n\tNFT_META_PROTOCOL                 = 0x1\n\tNFT_META_PRIORITY                 = 0x2\n\tNFT_META_MARK                     = 0x3\n\tNFT_META_IIF                      = 0x4\n\tNFT_META_OIF                      = 0x5\n\tNFT_META_IIFNAME                  = 0x6\n\tNFT_META_OIFNAME                  = 0x7\n\tNFT_META_IIFTYPE                  = 0x8\n\tNFT_META_OIFTYPE                  = 0x9\n\tNFT_META_SKUID                    = 0xa\n\tNFT_META_SKGID                    = 0xb\n\tNFT_META_NFTRACE                  = 0xc\n\tNFT_META_RTCLASSID                = 0xd\n\tNFT_META_SECMARK                  = 0xe\n\tNFT_META_NFPROTO                  = 0xf\n\tNFT_META_L4PROTO                  = 0x10\n\tNFT_META_BRI_IIFNAME              = 0x11\n\tNFT_META_BRI_OIFNAME              = 0x12\n\tNFT_META_PKTTYPE                  = 0x13\n\tNFT_META_CPU                      = 0x14\n\tNFT_META_IIFGROUP                 = 0x15\n\tNFT_META_OIFGROUP                 = 0x16\n\tNFT_META_CGROUP                   = 0x17\n\tNFT_META_PRANDOM                  = 0x18\n\tNFT_RT_CLASSID                    = 0x0\n\tNFT_RT_NEXTHOP4                   = 0x1\n\tNFT_RT_NEXTHOP6                   = 0x2\n\tNFT_RT_TCPMSS                     = 0x3\n\tNFT_HASH_JENKINS                  = 0x0\n\tNFT_HASH_SYM                      = 0x1\n\tNFTA_HASH_UNSPEC                  = 0x0\n\tNFTA_HASH_SREG                    = 0x1\n\tNFTA_HASH_DREG                    = 0x2\n\tNFTA_HASH_LEN                     = 0x3\n\tNFTA_HASH_MODULUS                 = 0x4\n\tNFTA_HASH_SEED                    = 0x5\n\tNFTA_HASH_OFFSET                  = 0x6\n\tNFTA_HASH_TYPE                    = 0x7\n\tNFTA_META_UNSPEC                  = 0x0\n\tNFTA_META_DREG                    = 0x1\n\tNFTA_META_KEY                     = 0x2\n\tNFTA_META_SREG                    = 0x3\n\tNFTA_RT_UNSPEC                    = 0x0\n\tNFTA_RT_DREG                      = 0x1\n\tNFTA_RT_KEY                       = 0x2\n\tNFT_CT_STATE                      = 0x0\n\tNFT_CT_DIRECTION                  = 0x1\n\tNFT_CT_STATUS                     = 0x2\n\tNFT_CT_MARK                       = 0x3\n\tNFT_CT_SECMARK                    = 0x4\n\tNFT_CT_EXPIRATION                 = 0x5\n\tNFT_CT_HELPER                     = 0x6\n\tNFT_CT_L3PROTOCOL                 = 0x7\n\tNFT_CT_SRC                        = 0x8\n\tNFT_CT_DST                        = 0x9\n\tNFT_CT_PROTOCOL                   = 0xa\n\tNFT_CT_PROTO_SRC                  = 0xb\n\tNFT_CT_PROTO_DST                  = 0xc\n\tNFT_CT_LABELS                     = 0xd\n\tNFT_CT_PKTS                       = 0xe\n\tNFT_CT_BYTES                      = 0xf\n\tNFT_CT_AVGPKT                     = 0x10\n\tNFT_CT_ZONE                       = 0x11\n\tNFT_CT_EVENTMASK                  = 0x12\n\tNFTA_CT_UNSPEC                    = 0x0\n\tNFTA_CT_DREG                      = 0x1\n\tNFTA_CT_KEY                       = 0x2\n\tNFTA_CT_DIRECTION                 = 0x3\n\tNFTA_CT_SREG                      = 0x4\n\tNFT_LIMIT_PKTS                    = 0x0\n\tNFT_LIMIT_PKT_BYTES               = 0x1\n\tNFT_LIMIT_F_INV                   = 0x1\n\tNFTA_LIMIT_UNSPEC                 = 0x0\n\tNFTA_LIMIT_RATE                   = 0x1\n\tNFTA_LIMIT_UNIT                   = 0x2\n\tNFTA_LIMIT_BURST                  = 0x3\n\tNFTA_LIMIT_TYPE                   = 0x4\n\tNFTA_LIMIT_FLAGS                  = 0x5\n\tNFTA_LIMIT_PAD                    = 0x6\n\tNFTA_COUNTER_UNSPEC               = 0x0\n\tNFTA_COUNTER_BYTES                = 0x1\n\tNFTA_COUNTER_PACKETS              = 0x2\n\tNFTA_COUNTER_PAD                  = 0x3\n\tNFTA_LOG_UNSPEC                   = 0x0\n\tNFTA_LOG_GROUP                    = 0x1\n\tNFTA_LOG_PREFIX                   = 0x2\n\tNFTA_LOG_SNAPLEN                  = 0x3\n\tNFTA_LOG_QTHRESHOLD               = 0x4\n\tNFTA_LOG_LEVEL                    = 0x5\n\tNFTA_LOG_FLAGS                    = 0x6\n\tNFTA_QUEUE_UNSPEC                 = 0x0\n\tNFTA_QUEUE_NUM                    = 0x1\n\tNFTA_QUEUE_TOTAL                  = 0x2\n\tNFTA_QUEUE_FLAGS                  = 0x3\n\tNFTA_QUEUE_SREG_QNUM              = 0x4\n\tNFT_QUOTA_F_INV                   = 0x1\n\tNFT_QUOTA_F_DEPLETED              = 0x2\n\tNFTA_QUOTA_UNSPEC                 = 0x0\n\tNFTA_QUOTA_BYTES                  = 0x1\n\tNFTA_QUOTA_FLAGS                  = 0x2\n\tNFTA_QUOTA_PAD                    = 0x3\n\tNFTA_QUOTA_CONSUMED               = 0x4\n\tNFT_REJECT_ICMP_UNREACH           = 0x0\n\tNFT_REJECT_TCP_RST                = 0x1\n\tNFT_REJECT_ICMPX_UNREACH          = 0x2\n\tNFT_REJECT_ICMPX_NO_ROUTE         = 0x0\n\tNFT_REJECT_ICMPX_PORT_UNREACH     = 0x1\n\tNFT_REJECT_ICMPX_HOST_UNREACH     = 0x2\n\tNFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3\n\tNFTA_REJECT_UNSPEC                = 0x0\n\tNFTA_REJECT_TYPE                  = 0x1\n\tNFTA_REJECT_ICMP_CODE             = 0x2\n\tNFT_NAT_SNAT                      = 0x0\n\tNFT_NAT_DNAT                      = 0x1\n\tNFTA_NAT_UNSPEC                   = 0x0\n\tNFTA_NAT_TYPE                     = 0x1\n\tNFTA_NAT_FAMILY                   = 0x2\n\tNFTA_NAT_REG_ADDR_MIN             = 0x3\n\tNFTA_NAT_REG_ADDR_MAX             = 0x4\n\tNFTA_NAT_REG_PROTO_MIN            = 0x5\n\tNFTA_NAT_REG_PROTO_MAX            = 0x6\n\tNFTA_NAT_FLAGS                    = 0x7\n\tNFTA_MASQ_UNSPEC                  = 0x0\n\tNFTA_MASQ_FLAGS                   = 0x1\n\tNFTA_MASQ_REG_PROTO_MIN           = 0x2\n\tNFTA_MASQ_REG_PROTO_MAX           = 0x3\n\tNFTA_REDIR_UNSPEC                 = 0x0\n\tNFTA_REDIR_REG_PROTO_MIN          = 0x1\n\tNFTA_REDIR_REG_PROTO_MAX          = 0x2\n\tNFTA_REDIR_FLAGS                  = 0x3\n\tNFTA_DUP_UNSPEC                   = 0x0\n\tNFTA_DUP_SREG_ADDR                = 0x1\n\tNFTA_DUP_SREG_DEV                 = 0x2\n\tNFTA_FWD_UNSPEC                   = 0x0\n\tNFTA_FWD_SREG_DEV                 = 0x1\n\tNFTA_OBJREF_UNSPEC                = 0x0\n\tNFTA_OBJREF_IMM_TYPE              = 0x1\n\tNFTA_OBJREF_IMM_NAME              = 0x2\n\tNFTA_OBJREF_SET_SREG              = 0x3\n\tNFTA_OBJREF_SET_NAME              = 0x4\n\tNFTA_OBJREF_SET_ID                = 0x5\n\tNFTA_GEN_UNSPEC                   = 0x0\n\tNFTA_GEN_ID                       = 0x1\n\tNFTA_GEN_PROC_PID                 = 0x2\n\tNFTA_GEN_PROC_NAME                = 0x3\n\tNFTA_FIB_UNSPEC                   = 0x0\n\tNFTA_FIB_DREG                     = 0x1\n\tNFTA_FIB_RESULT                   = 0x2\n\tNFTA_FIB_FLAGS                    = 0x3\n\tNFT_FIB_RESULT_UNSPEC             = 0x0\n\tNFT_FIB_RESULT_OIF                = 0x1\n\tNFT_FIB_RESULT_OIFNAME            = 0x2\n\tNFT_FIB_RESULT_ADDRTYPE           = 0x3\n\tNFTA_FIB_F_SADDR                  = 0x1\n\tNFTA_FIB_F_DADDR                  = 0x2\n\tNFTA_FIB_F_MARK                   = 0x4\n\tNFTA_FIB_F_IIF                    = 0x8\n\tNFTA_FIB_F_OIF                    = 0x10\n\tNFTA_FIB_F_PRESENT                = 0x20\n\tNFTA_CT_HELPER_UNSPEC             = 0x0\n\tNFTA_CT_HELPER_NAME               = 0x1\n\tNFTA_CT_HELPER_L3PROTO            = 0x2\n\tNFTA_CT_HELPER_L4PROTO            = 0x3\n\tNFTA_OBJ_UNSPEC                   = 0x0\n\tNFTA_OBJ_TABLE                    = 0x1\n\tNFTA_OBJ_NAME                     = 0x2\n\tNFTA_OBJ_TYPE                     = 0x3\n\tNFTA_OBJ_DATA                     = 0x4\n\tNFTA_OBJ_USE                      = 0x5\n\tNFTA_TRACE_UNSPEC                 = 0x0\n\tNFTA_TRACE_TABLE                  = 0x1\n\tNFTA_TRACE_CHAIN                  = 0x2\n\tNFTA_TRACE_RULE_HANDLE            = 0x3\n\tNFTA_TRACE_TYPE                   = 0x4\n\tNFTA_TRACE_VERDICT                = 0x5\n\tNFTA_TRACE_ID                     = 0x6\n\tNFTA_TRACE_LL_HEADER              = 0x7\n\tNFTA_TRACE_NETWORK_HEADER         = 0x8\n\tNFTA_TRACE_TRANSPORT_HEADER       = 0x9\n\tNFTA_TRACE_IIF                    = 0xa\n\tNFTA_TRACE_IIFTYPE                = 0xb\n\tNFTA_TRACE_OIF                    = 0xc\n\tNFTA_TRACE_OIFTYPE                = 0xd\n\tNFTA_TRACE_MARK                   = 0xe\n\tNFTA_TRACE_NFPROTO                = 0xf\n\tNFTA_TRACE_POLICY                 = 0x10\n\tNFTA_TRACE_PAD                    = 0x11\n\tNFT_TRACETYPE_UNSPEC              = 0x0\n\tNFT_TRACETYPE_POLICY              = 0x1\n\tNFT_TRACETYPE_RETURN              = 0x2\n\tNFT_TRACETYPE_RULE                = 0x3\n\tNFTA_NG_UNSPEC                    = 0x0\n\tNFTA_NG_DREG                      = 0x1\n\tNFTA_NG_MODULUS                   = 0x2\n\tNFTA_NG_TYPE                      = 0x3\n\tNFTA_NG_OFFSET                    = 0x4\n\tNFT_NG_INCREMENTAL                = 0x0\n\tNFT_NG_RANDOM                     = 0x1\n)\n\nconst (\n\tNFTA_TARGET_UNSPEC = 0x0\n\tNFTA_TARGET_NAME   = 0x1\n\tNFTA_TARGET_REV    = 0x2\n\tNFTA_TARGET_INFO   = 0x3\n\tNFTA_MATCH_UNSPEC  = 0x0\n\tNFTA_MATCH_NAME    = 0x1\n\tNFTA_MATCH_REV     = 0x2\n\tNFTA_MATCH_INFO    = 0x3\n\tNFTA_COMPAT_UNSPEC = 0x0\n\tNFTA_COMPAT_NAME   = 0x1\n\tNFTA_COMPAT_REV    = 0x2\n\tNFTA_COMPAT_TYPE   = 0x3\n)\n\ntype RTCTime struct {\n\tSec   int32\n\tMin   int32\n\tHour  int32\n\tMday  int32\n\tMon   int32\n\tYear  int32\n\tWday  int32\n\tYday  int32\n\tIsdst int32\n}\n\ntype RTCWkAlrm struct {\n\tEnabled uint8\n\tPending uint8\n\tTime    RTCTime\n}\n\ntype BlkpgIoctlArg struct {\n\tOp      int32\n\tFlags   int32\n\tDatalen int32\n\tData    *byte\n}\n\nconst (\n\tBLKPG_ADD_PARTITION    = 0x1\n\tBLKPG_DEL_PARTITION    = 0x2\n\tBLKPG_RESIZE_PARTITION = 0x3\n)\n\nconst (\n\tNETNSA_NONE         = 0x0\n\tNETNSA_NSID         = 0x1\n\tNETNSA_PID          = 0x2\n\tNETNSA_FD           = 0x3\n\tNETNSA_TARGET_NSID  = 0x4\n\tNETNSA_CURRENT_NSID = 0x5\n)\n\ntype XDPRingOffset struct {\n\tProducer uint64\n\tConsumer uint64\n\tDesc     uint64\n\tFlags    uint64\n}\n\ntype XDPMmapOffsets struct {\n\tRx XDPRingOffset\n\tTx XDPRingOffset\n\tFr XDPRingOffset\n\tCr XDPRingOffset\n}\n\ntype XDPUmemReg struct {\n\tAddr            uint64\n\tLen             uint64\n\tSize            uint32\n\tHeadroom        uint32\n\tFlags           uint32\n\tTx_metadata_len uint32\n}\n\ntype XDPStatistics struct {\n\tRx_dropped               uint64\n\tRx_invalid_descs         uint64\n\tTx_invalid_descs         uint64\n\tRx_ring_full             uint64\n\tRx_fill_ring_empty_descs uint64\n\tTx_ring_empty_descs      uint64\n}\n\ntype XDPDesc struct {\n\tAddr    uint64\n\tLen     uint32\n\tOptions uint32\n}\n\nconst (\n\tNCSI_CMD_UNSPEC                 = 0x0\n\tNCSI_CMD_PKG_INFO               = 0x1\n\tNCSI_CMD_SET_INTERFACE          = 0x2\n\tNCSI_CMD_CLEAR_INTERFACE        = 0x3\n\tNCSI_ATTR_UNSPEC                = 0x0\n\tNCSI_ATTR_IFINDEX               = 0x1\n\tNCSI_ATTR_PACKAGE_LIST          = 0x2\n\tNCSI_ATTR_PACKAGE_ID            = 0x3\n\tNCSI_ATTR_CHANNEL_ID            = 0x4\n\tNCSI_PKG_ATTR_UNSPEC            = 0x0\n\tNCSI_PKG_ATTR                   = 0x1\n\tNCSI_PKG_ATTR_ID                = 0x2\n\tNCSI_PKG_ATTR_FORCED            = 0x3\n\tNCSI_PKG_ATTR_CHANNEL_LIST      = 0x4\n\tNCSI_CHANNEL_ATTR_UNSPEC        = 0x0\n\tNCSI_CHANNEL_ATTR               = 0x1\n\tNCSI_CHANNEL_ATTR_ID            = 0x2\n\tNCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3\n\tNCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4\n\tNCSI_CHANNEL_ATTR_VERSION_STR   = 0x5\n\tNCSI_CHANNEL_ATTR_LINK_STATE    = 0x6\n\tNCSI_CHANNEL_ATTR_ACTIVE        = 0x7\n\tNCSI_CHANNEL_ATTR_FORCED        = 0x8\n\tNCSI_CHANNEL_ATTR_VLAN_LIST     = 0x9\n\tNCSI_CHANNEL_ATTR_VLAN_ID       = 0xa\n)\n\ntype ScmTimestamping struct {\n\tTs [3]Timespec\n}\n\nconst (\n\tSOF_TIMESTAMPING_TX_HARDWARE  = 0x1\n\tSOF_TIMESTAMPING_TX_SOFTWARE  = 0x2\n\tSOF_TIMESTAMPING_RX_HARDWARE  = 0x4\n\tSOF_TIMESTAMPING_RX_SOFTWARE  = 0x8\n\tSOF_TIMESTAMPING_SOFTWARE     = 0x10\n\tSOF_TIMESTAMPING_SYS_HARDWARE = 0x20\n\tSOF_TIMESTAMPING_RAW_HARDWARE = 0x40\n\tSOF_TIMESTAMPING_OPT_ID       = 0x80\n\tSOF_TIMESTAMPING_TX_SCHED     = 0x100\n\tSOF_TIMESTAMPING_TX_ACK       = 0x200\n\tSOF_TIMESTAMPING_OPT_CMSG     = 0x400\n\tSOF_TIMESTAMPING_OPT_TSONLY   = 0x800\n\tSOF_TIMESTAMPING_OPT_STATS    = 0x1000\n\tSOF_TIMESTAMPING_OPT_PKTINFO  = 0x2000\n\tSOF_TIMESTAMPING_OPT_TX_SWHW  = 0x4000\n\tSOF_TIMESTAMPING_BIND_PHC     = 0x8000\n\tSOF_TIMESTAMPING_OPT_ID_TCP   = 0x10000\n\n\tSOF_TIMESTAMPING_LAST = 0x20000\n\tSOF_TIMESTAMPING_MASK = 0x3ffff\n\n\tSCM_TSTAMP_SND   = 0x0\n\tSCM_TSTAMP_SCHED = 0x1\n\tSCM_TSTAMP_ACK   = 0x2\n)\n\ntype SockExtendedErr struct {\n\tErrno  uint32\n\tOrigin uint8\n\tType   uint8\n\tCode   uint8\n\tPad    uint8\n\tInfo   uint32\n\tData   uint32\n}\n\ntype FanotifyEventMetadata struct {\n\tEvent_len    uint32\n\tVers         uint8\n\tReserved     uint8\n\tMetadata_len uint16\n\tMask         uint64\n\tFd           int32\n\tPid          int32\n}\n\ntype FanotifyResponse struct {\n\tFd       int32\n\tResponse uint32\n}\n\nconst (\n\tCRYPTO_MSG_BASE      = 0x10\n\tCRYPTO_MSG_NEWALG    = 0x10\n\tCRYPTO_MSG_DELALG    = 0x11\n\tCRYPTO_MSG_UPDATEALG = 0x12\n\tCRYPTO_MSG_GETALG    = 0x13\n\tCRYPTO_MSG_DELRNG    = 0x14\n\tCRYPTO_MSG_GETSTAT   = 0x15\n)\n\nconst (\n\tCRYPTOCFGA_UNSPEC           = 0x0\n\tCRYPTOCFGA_PRIORITY_VAL     = 0x1\n\tCRYPTOCFGA_REPORT_LARVAL    = 0x2\n\tCRYPTOCFGA_REPORT_HASH      = 0x3\n\tCRYPTOCFGA_REPORT_BLKCIPHER = 0x4\n\tCRYPTOCFGA_REPORT_AEAD      = 0x5\n\tCRYPTOCFGA_REPORT_COMPRESS  = 0x6\n\tCRYPTOCFGA_REPORT_RNG       = 0x7\n\tCRYPTOCFGA_REPORT_CIPHER    = 0x8\n\tCRYPTOCFGA_REPORT_AKCIPHER  = 0x9\n\tCRYPTOCFGA_REPORT_KPP       = 0xa\n\tCRYPTOCFGA_REPORT_ACOMP     = 0xb\n\tCRYPTOCFGA_STAT_LARVAL      = 0xc\n\tCRYPTOCFGA_STAT_HASH        = 0xd\n\tCRYPTOCFGA_STAT_BLKCIPHER   = 0xe\n\tCRYPTOCFGA_STAT_AEAD        = 0xf\n\tCRYPTOCFGA_STAT_COMPRESS    = 0x10\n\tCRYPTOCFGA_STAT_RNG         = 0x11\n\tCRYPTOCFGA_STAT_CIPHER      = 0x12\n\tCRYPTOCFGA_STAT_AKCIPHER    = 0x13\n\tCRYPTOCFGA_STAT_KPP         = 0x14\n\tCRYPTOCFGA_STAT_ACOMP       = 0x15\n)\n\nconst (\n\tBPF_REG_0                                  = 0x0\n\tBPF_REG_1                                  = 0x1\n\tBPF_REG_2                                  = 0x2\n\tBPF_REG_3                                  = 0x3\n\tBPF_REG_4                                  = 0x4\n\tBPF_REG_5                                  = 0x5\n\tBPF_REG_6                                  = 0x6\n\tBPF_REG_7                                  = 0x7\n\tBPF_REG_8                                  = 0x8\n\tBPF_REG_9                                  = 0x9\n\tBPF_REG_10                                 = 0xa\n\tBPF_CGROUP_ITER_ORDER_UNSPEC               = 0x0\n\tBPF_CGROUP_ITER_SELF_ONLY                  = 0x1\n\tBPF_CGROUP_ITER_DESCENDANTS_PRE            = 0x2\n\tBPF_CGROUP_ITER_DESCENDANTS_POST           = 0x3\n\tBPF_CGROUP_ITER_ANCESTORS_UP               = 0x4\n\tBPF_MAP_CREATE                             = 0x0\n\tBPF_MAP_LOOKUP_ELEM                        = 0x1\n\tBPF_MAP_UPDATE_ELEM                        = 0x2\n\tBPF_MAP_DELETE_ELEM                        = 0x3\n\tBPF_MAP_GET_NEXT_KEY                       = 0x4\n\tBPF_PROG_LOAD                              = 0x5\n\tBPF_OBJ_PIN                                = 0x6\n\tBPF_OBJ_GET                                = 0x7\n\tBPF_PROG_ATTACH                            = 0x8\n\tBPF_PROG_DETACH                            = 0x9\n\tBPF_PROG_TEST_RUN                          = 0xa\n\tBPF_PROG_RUN                               = 0xa\n\tBPF_PROG_GET_NEXT_ID                       = 0xb\n\tBPF_MAP_GET_NEXT_ID                        = 0xc\n\tBPF_PROG_GET_FD_BY_ID                      = 0xd\n\tBPF_MAP_GET_FD_BY_ID                       = 0xe\n\tBPF_OBJ_GET_INFO_BY_FD                     = 0xf\n\tBPF_PROG_QUERY                             = 0x10\n\tBPF_RAW_TRACEPOINT_OPEN                    = 0x11\n\tBPF_BTF_LOAD                               = 0x12\n\tBPF_BTF_GET_FD_BY_ID                       = 0x13\n\tBPF_TASK_FD_QUERY                          = 0x14\n\tBPF_MAP_LOOKUP_AND_DELETE_ELEM             = 0x15\n\tBPF_MAP_FREEZE                             = 0x16\n\tBPF_BTF_GET_NEXT_ID                        = 0x17\n\tBPF_MAP_LOOKUP_BATCH                       = 0x18\n\tBPF_MAP_LOOKUP_AND_DELETE_BATCH            = 0x19\n\tBPF_MAP_UPDATE_BATCH                       = 0x1a\n\tBPF_MAP_DELETE_BATCH                       = 0x1b\n\tBPF_LINK_CREATE                            = 0x1c\n\tBPF_LINK_UPDATE                            = 0x1d\n\tBPF_LINK_GET_FD_BY_ID                      = 0x1e\n\tBPF_LINK_GET_NEXT_ID                       = 0x1f\n\tBPF_ENABLE_STATS                           = 0x20\n\tBPF_ITER_CREATE                            = 0x21\n\tBPF_LINK_DETACH                            = 0x22\n\tBPF_PROG_BIND_MAP                          = 0x23\n\tBPF_MAP_TYPE_UNSPEC                        = 0x0\n\tBPF_MAP_TYPE_HASH                          = 0x1\n\tBPF_MAP_TYPE_ARRAY                         = 0x2\n\tBPF_MAP_TYPE_PROG_ARRAY                    = 0x3\n\tBPF_MAP_TYPE_PERF_EVENT_ARRAY              = 0x4\n\tBPF_MAP_TYPE_PERCPU_HASH                   = 0x5\n\tBPF_MAP_TYPE_PERCPU_ARRAY                  = 0x6\n\tBPF_MAP_TYPE_STACK_TRACE                   = 0x7\n\tBPF_MAP_TYPE_CGROUP_ARRAY                  = 0x8\n\tBPF_MAP_TYPE_LRU_HASH                      = 0x9\n\tBPF_MAP_TYPE_LRU_PERCPU_HASH               = 0xa\n\tBPF_MAP_TYPE_LPM_TRIE                      = 0xb\n\tBPF_MAP_TYPE_ARRAY_OF_MAPS                 = 0xc\n\tBPF_MAP_TYPE_HASH_OF_MAPS                  = 0xd\n\tBPF_MAP_TYPE_DEVMAP                        = 0xe\n\tBPF_MAP_TYPE_SOCKMAP                       = 0xf\n\tBPF_MAP_TYPE_CPUMAP                        = 0x10\n\tBPF_MAP_TYPE_XSKMAP                        = 0x11\n\tBPF_MAP_TYPE_SOCKHASH                      = 0x12\n\tBPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED     = 0x13\n\tBPF_MAP_TYPE_CGROUP_STORAGE                = 0x13\n\tBPF_MAP_TYPE_REUSEPORT_SOCKARRAY           = 0x14\n\tBPF_MAP_TYPE_PERCPU_CGROUP_STORAGE         = 0x15\n\tBPF_MAP_TYPE_QUEUE                         = 0x16\n\tBPF_MAP_TYPE_STACK                         = 0x17\n\tBPF_MAP_TYPE_SK_STORAGE                    = 0x18\n\tBPF_MAP_TYPE_DEVMAP_HASH                   = 0x19\n\tBPF_MAP_TYPE_STRUCT_OPS                    = 0x1a\n\tBPF_MAP_TYPE_RINGBUF                       = 0x1b\n\tBPF_MAP_TYPE_INODE_STORAGE                 = 0x1c\n\tBPF_MAP_TYPE_TASK_STORAGE                  = 0x1d\n\tBPF_MAP_TYPE_BLOOM_FILTER                  = 0x1e\n\tBPF_MAP_TYPE_USER_RINGBUF                  = 0x1f\n\tBPF_MAP_TYPE_CGRP_STORAGE                  = 0x20\n\tBPF_PROG_TYPE_UNSPEC                       = 0x0\n\tBPF_PROG_TYPE_SOCKET_FILTER                = 0x1\n\tBPF_PROG_TYPE_KPROBE                       = 0x2\n\tBPF_PROG_TYPE_SCHED_CLS                    = 0x3\n\tBPF_PROG_TYPE_SCHED_ACT                    = 0x4\n\tBPF_PROG_TYPE_TRACEPOINT                   = 0x5\n\tBPF_PROG_TYPE_XDP                          = 0x6\n\tBPF_PROG_TYPE_PERF_EVENT                   = 0x7\n\tBPF_PROG_TYPE_CGROUP_SKB                   = 0x8\n\tBPF_PROG_TYPE_CGROUP_SOCK                  = 0x9\n\tBPF_PROG_TYPE_LWT_IN                       = 0xa\n\tBPF_PROG_TYPE_LWT_OUT                      = 0xb\n\tBPF_PROG_TYPE_LWT_XMIT                     = 0xc\n\tBPF_PROG_TYPE_SOCK_OPS                     = 0xd\n\tBPF_PROG_TYPE_SK_SKB                       = 0xe\n\tBPF_PROG_TYPE_CGROUP_DEVICE                = 0xf\n\tBPF_PROG_TYPE_SK_MSG                       = 0x10\n\tBPF_PROG_TYPE_RAW_TRACEPOINT               = 0x11\n\tBPF_PROG_TYPE_CGROUP_SOCK_ADDR             = 0x12\n\tBPF_PROG_TYPE_LWT_SEG6LOCAL                = 0x13\n\tBPF_PROG_TYPE_LIRC_MODE2                   = 0x14\n\tBPF_PROG_TYPE_SK_REUSEPORT                 = 0x15\n\tBPF_PROG_TYPE_FLOW_DISSECTOR               = 0x16\n\tBPF_PROG_TYPE_CGROUP_SYSCTL                = 0x17\n\tBPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE      = 0x18\n\tBPF_PROG_TYPE_CGROUP_SOCKOPT               = 0x19\n\tBPF_PROG_TYPE_TRACING                      = 0x1a\n\tBPF_PROG_TYPE_STRUCT_OPS                   = 0x1b\n\tBPF_PROG_TYPE_EXT                          = 0x1c\n\tBPF_PROG_TYPE_LSM                          = 0x1d\n\tBPF_PROG_TYPE_SK_LOOKUP                    = 0x1e\n\tBPF_PROG_TYPE_SYSCALL                      = 0x1f\n\tBPF_PROG_TYPE_NETFILTER                    = 0x20\n\tBPF_CGROUP_INET_INGRESS                    = 0x0\n\tBPF_CGROUP_INET_EGRESS                     = 0x1\n\tBPF_CGROUP_INET_SOCK_CREATE                = 0x2\n\tBPF_CGROUP_SOCK_OPS                        = 0x3\n\tBPF_SK_SKB_STREAM_PARSER                   = 0x4\n\tBPF_SK_SKB_STREAM_VERDICT                  = 0x5\n\tBPF_CGROUP_DEVICE                          = 0x6\n\tBPF_SK_MSG_VERDICT                         = 0x7\n\tBPF_CGROUP_INET4_BIND                      = 0x8\n\tBPF_CGROUP_INET6_BIND                      = 0x9\n\tBPF_CGROUP_INET4_CONNECT                   = 0xa\n\tBPF_CGROUP_INET6_CONNECT                   = 0xb\n\tBPF_CGROUP_INET4_POST_BIND                 = 0xc\n\tBPF_CGROUP_INET6_POST_BIND                 = 0xd\n\tBPF_CGROUP_UDP4_SENDMSG                    = 0xe\n\tBPF_CGROUP_UDP6_SENDMSG                    = 0xf\n\tBPF_LIRC_MODE2                             = 0x10\n\tBPF_FLOW_DISSECTOR                         = 0x11\n\tBPF_CGROUP_SYSCTL                          = 0x12\n\tBPF_CGROUP_UDP4_RECVMSG                    = 0x13\n\tBPF_CGROUP_UDP6_RECVMSG                    = 0x14\n\tBPF_CGROUP_GETSOCKOPT                      = 0x15\n\tBPF_CGROUP_SETSOCKOPT                      = 0x16\n\tBPF_TRACE_RAW_TP                           = 0x17\n\tBPF_TRACE_FENTRY                           = 0x18\n\tBPF_TRACE_FEXIT                            = 0x19\n\tBPF_MODIFY_RETURN                          = 0x1a\n\tBPF_LSM_MAC                                = 0x1b\n\tBPF_TRACE_ITER                             = 0x1c\n\tBPF_CGROUP_INET4_GETPEERNAME               = 0x1d\n\tBPF_CGROUP_INET6_GETPEERNAME               = 0x1e\n\tBPF_CGROUP_INET4_GETSOCKNAME               = 0x1f\n\tBPF_CGROUP_INET6_GETSOCKNAME               = 0x20\n\tBPF_XDP_DEVMAP                             = 0x21\n\tBPF_CGROUP_INET_SOCK_RELEASE               = 0x22\n\tBPF_XDP_CPUMAP                             = 0x23\n\tBPF_SK_LOOKUP                              = 0x24\n\tBPF_XDP                                    = 0x25\n\tBPF_SK_SKB_VERDICT                         = 0x26\n\tBPF_SK_REUSEPORT_SELECT                    = 0x27\n\tBPF_SK_REUSEPORT_SELECT_OR_MIGRATE         = 0x28\n\tBPF_PERF_EVENT                             = 0x29\n\tBPF_TRACE_KPROBE_MULTI                     = 0x2a\n\tBPF_LSM_CGROUP                             = 0x2b\n\tBPF_STRUCT_OPS                             = 0x2c\n\tBPF_NETFILTER                              = 0x2d\n\tBPF_TCX_INGRESS                            = 0x2e\n\tBPF_TCX_EGRESS                             = 0x2f\n\tBPF_TRACE_UPROBE_MULTI                     = 0x30\n\tBPF_LINK_TYPE_UNSPEC                       = 0x0\n\tBPF_LINK_TYPE_RAW_TRACEPOINT               = 0x1\n\tBPF_LINK_TYPE_TRACING                      = 0x2\n\tBPF_LINK_TYPE_CGROUP                       = 0x3\n\tBPF_LINK_TYPE_ITER                         = 0x4\n\tBPF_LINK_TYPE_NETNS                        = 0x5\n\tBPF_LINK_TYPE_XDP                          = 0x6\n\tBPF_LINK_TYPE_PERF_EVENT                   = 0x7\n\tBPF_LINK_TYPE_KPROBE_MULTI                 = 0x8\n\tBPF_LINK_TYPE_STRUCT_OPS                   = 0x9\n\tBPF_LINK_TYPE_NETFILTER                    = 0xa\n\tBPF_LINK_TYPE_TCX                          = 0xb\n\tBPF_LINK_TYPE_UPROBE_MULTI                 = 0xc\n\tBPF_PERF_EVENT_UNSPEC                      = 0x0\n\tBPF_PERF_EVENT_UPROBE                      = 0x1\n\tBPF_PERF_EVENT_URETPROBE                   = 0x2\n\tBPF_PERF_EVENT_KPROBE                      = 0x3\n\tBPF_PERF_EVENT_KRETPROBE                   = 0x4\n\tBPF_PERF_EVENT_TRACEPOINT                  = 0x5\n\tBPF_PERF_EVENT_EVENT                       = 0x6\n\tBPF_F_KPROBE_MULTI_RETURN                  = 0x1\n\tBPF_F_UPROBE_MULTI_RETURN                  = 0x1\n\tBPF_ANY                                    = 0x0\n\tBPF_NOEXIST                                = 0x1\n\tBPF_EXIST                                  = 0x2\n\tBPF_F_LOCK                                 = 0x4\n\tBPF_F_NO_PREALLOC                          = 0x1\n\tBPF_F_NO_COMMON_LRU                        = 0x2\n\tBPF_F_NUMA_NODE                            = 0x4\n\tBPF_F_RDONLY                               = 0x8\n\tBPF_F_WRONLY                               = 0x10\n\tBPF_F_STACK_BUILD_ID                       = 0x20\n\tBPF_F_ZERO_SEED                            = 0x40\n\tBPF_F_RDONLY_PROG                          = 0x80\n\tBPF_F_WRONLY_PROG                          = 0x100\n\tBPF_F_CLONE                                = 0x200\n\tBPF_F_MMAPABLE                             = 0x400\n\tBPF_F_PRESERVE_ELEMS                       = 0x800\n\tBPF_F_INNER_MAP                            = 0x1000\n\tBPF_F_LINK                                 = 0x2000\n\tBPF_F_PATH_FD                              = 0x4000\n\tBPF_STATS_RUN_TIME                         = 0x0\n\tBPF_STACK_BUILD_ID_EMPTY                   = 0x0\n\tBPF_STACK_BUILD_ID_VALID                   = 0x1\n\tBPF_STACK_BUILD_ID_IP                      = 0x2\n\tBPF_F_RECOMPUTE_CSUM                       = 0x1\n\tBPF_F_INVALIDATE_HASH                      = 0x2\n\tBPF_F_HDR_FIELD_MASK                       = 0xf\n\tBPF_F_PSEUDO_HDR                           = 0x10\n\tBPF_F_MARK_MANGLED_0                       = 0x20\n\tBPF_F_MARK_ENFORCE                         = 0x40\n\tBPF_F_INGRESS                              = 0x1\n\tBPF_F_TUNINFO_IPV6                         = 0x1\n\tBPF_F_SKIP_FIELD_MASK                      = 0xff\n\tBPF_F_USER_STACK                           = 0x100\n\tBPF_F_FAST_STACK_CMP                       = 0x200\n\tBPF_F_REUSE_STACKID                        = 0x400\n\tBPF_F_USER_BUILD_ID                        = 0x800\n\tBPF_F_ZERO_CSUM_TX                         = 0x2\n\tBPF_F_DONT_FRAGMENT                        = 0x4\n\tBPF_F_SEQ_NUMBER                           = 0x8\n\tBPF_F_NO_TUNNEL_KEY                        = 0x10\n\tBPF_F_TUNINFO_FLAGS                        = 0x10\n\tBPF_F_INDEX_MASK                           = 0xffffffff\n\tBPF_F_CURRENT_CPU                          = 0xffffffff\n\tBPF_F_CTXLEN_MASK                          = 0xfffff00000000\n\tBPF_F_CURRENT_NETNS                        = -0x1\n\tBPF_CSUM_LEVEL_QUERY                       = 0x0\n\tBPF_CSUM_LEVEL_INC                         = 0x1\n\tBPF_CSUM_LEVEL_DEC                         = 0x2\n\tBPF_CSUM_LEVEL_RESET                       = 0x3\n\tBPF_F_ADJ_ROOM_FIXED_GSO                   = 0x1\n\tBPF_F_ADJ_ROOM_ENCAP_L3_IPV4               = 0x2\n\tBPF_F_ADJ_ROOM_ENCAP_L3_IPV6               = 0x4\n\tBPF_F_ADJ_ROOM_ENCAP_L4_GRE                = 0x8\n\tBPF_F_ADJ_ROOM_ENCAP_L4_UDP                = 0x10\n\tBPF_F_ADJ_ROOM_NO_CSUM_RESET               = 0x20\n\tBPF_F_ADJ_ROOM_ENCAP_L2_ETH                = 0x40\n\tBPF_F_ADJ_ROOM_DECAP_L3_IPV4               = 0x80\n\tBPF_F_ADJ_ROOM_DECAP_L3_IPV6               = 0x100\n\tBPF_ADJ_ROOM_ENCAP_L2_MASK                 = 0xff\n\tBPF_ADJ_ROOM_ENCAP_L2_SHIFT                = 0x38\n\tBPF_F_SYSCTL_BASE_NAME                     = 0x1\n\tBPF_LOCAL_STORAGE_GET_F_CREATE             = 0x1\n\tBPF_SK_STORAGE_GET_F_CREATE                = 0x1\n\tBPF_F_GET_BRANCH_RECORDS_SIZE              = 0x1\n\tBPF_RB_NO_WAKEUP                           = 0x1\n\tBPF_RB_FORCE_WAKEUP                        = 0x2\n\tBPF_RB_AVAIL_DATA                          = 0x0\n\tBPF_RB_RING_SIZE                           = 0x1\n\tBPF_RB_CONS_POS                            = 0x2\n\tBPF_RB_PROD_POS                            = 0x3\n\tBPF_RINGBUF_BUSY_BIT                       = 0x80000000\n\tBPF_RINGBUF_DISCARD_BIT                    = 0x40000000\n\tBPF_RINGBUF_HDR_SZ                         = 0x8\n\tBPF_SK_LOOKUP_F_REPLACE                    = 0x1\n\tBPF_SK_LOOKUP_F_NO_REUSEPORT               = 0x2\n\tBPF_ADJ_ROOM_NET                           = 0x0\n\tBPF_ADJ_ROOM_MAC                           = 0x1\n\tBPF_HDR_START_MAC                          = 0x0\n\tBPF_HDR_START_NET                          = 0x1\n\tBPF_LWT_ENCAP_SEG6                         = 0x0\n\tBPF_LWT_ENCAP_SEG6_INLINE                  = 0x1\n\tBPF_LWT_ENCAP_IP                           = 0x2\n\tBPF_F_BPRM_SECUREEXEC                      = 0x1\n\tBPF_F_BROADCAST                            = 0x8\n\tBPF_F_EXCLUDE_INGRESS                      = 0x10\n\tBPF_SKB_TSTAMP_UNSPEC                      = 0x0\n\tBPF_SKB_TSTAMP_DELIVERY_MONO               = 0x1\n\tBPF_OK                                     = 0x0\n\tBPF_DROP                                   = 0x2\n\tBPF_REDIRECT                               = 0x7\n\tBPF_LWT_REROUTE                            = 0x80\n\tBPF_FLOW_DISSECTOR_CONTINUE                = 0x81\n\tBPF_SOCK_OPS_RTO_CB_FLAG                   = 0x1\n\tBPF_SOCK_OPS_RETRANS_CB_FLAG               = 0x2\n\tBPF_SOCK_OPS_STATE_CB_FLAG                 = 0x4\n\tBPF_SOCK_OPS_RTT_CB_FLAG                   = 0x8\n\tBPF_SOCK_OPS_PARSE_ALL_HDR_OPT_CB_FLAG     = 0x10\n\tBPF_SOCK_OPS_PARSE_UNKNOWN_HDR_OPT_CB_FLAG = 0x20\n\tBPF_SOCK_OPS_WRITE_HDR_OPT_CB_FLAG         = 0x40\n\tBPF_SOCK_OPS_ALL_CB_FLAGS                  = 0x7f\n\tBPF_SOCK_OPS_VOID                          = 0x0\n\tBPF_SOCK_OPS_TIMEOUT_INIT                  = 0x1\n\tBPF_SOCK_OPS_RWND_INIT                     = 0x2\n\tBPF_SOCK_OPS_TCP_CONNECT_CB                = 0x3\n\tBPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB         = 0x4\n\tBPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB        = 0x5\n\tBPF_SOCK_OPS_NEEDS_ECN                     = 0x6\n\tBPF_SOCK_OPS_BASE_RTT                      = 0x7\n\tBPF_SOCK_OPS_RTO_CB                        = 0x8\n\tBPF_SOCK_OPS_RETRANS_CB                    = 0x9\n\tBPF_SOCK_OPS_STATE_CB                      = 0xa\n\tBPF_SOCK_OPS_TCP_LISTEN_CB                 = 0xb\n\tBPF_SOCK_OPS_RTT_CB                        = 0xc\n\tBPF_SOCK_OPS_PARSE_HDR_OPT_CB              = 0xd\n\tBPF_SOCK_OPS_HDR_OPT_LEN_CB                = 0xe\n\tBPF_SOCK_OPS_WRITE_HDR_OPT_CB              = 0xf\n\tBPF_TCP_ESTABLISHED                        = 0x1\n\tBPF_TCP_SYN_SENT                           = 0x2\n\tBPF_TCP_SYN_RECV                           = 0x3\n\tBPF_TCP_FIN_WAIT1                          = 0x4\n\tBPF_TCP_FIN_WAIT2                          = 0x5\n\tBPF_TCP_TIME_WAIT                          = 0x6\n\tBPF_TCP_CLOSE                              = 0x7\n\tBPF_TCP_CLOSE_WAIT                         = 0x8\n\tBPF_TCP_LAST_ACK                           = 0x9\n\tBPF_TCP_LISTEN                             = 0xa\n\tBPF_TCP_CLOSING                            = 0xb\n\tBPF_TCP_NEW_SYN_RECV                       = 0xc\n\tBPF_TCP_MAX_STATES                         = 0xe\n\tTCP_BPF_IW                                 = 0x3e9\n\tTCP_BPF_SNDCWND_CLAMP                      = 0x3ea\n\tTCP_BPF_DELACK_MAX                         = 0x3eb\n\tTCP_BPF_RTO_MIN                            = 0x3ec\n\tTCP_BPF_SYN                                = 0x3ed\n\tTCP_BPF_SYN_IP                             = 0x3ee\n\tTCP_BPF_SYN_MAC                            = 0x3ef\n\tBPF_LOAD_HDR_OPT_TCP_SYN                   = 0x1\n\tBPF_WRITE_HDR_TCP_CURRENT_MSS              = 0x1\n\tBPF_WRITE_HDR_TCP_SYNACK_COOKIE            = 0x2\n\tBPF_DEVCG_ACC_MKNOD                        = 0x1\n\tBPF_DEVCG_ACC_READ                         = 0x2\n\tBPF_DEVCG_ACC_WRITE                        = 0x4\n\tBPF_DEVCG_DEV_BLOCK                        = 0x1\n\tBPF_DEVCG_DEV_CHAR                         = 0x2\n\tBPF_FIB_LOOKUP_DIRECT                      = 0x1\n\tBPF_FIB_LOOKUP_OUTPUT                      = 0x2\n\tBPF_FIB_LOOKUP_SKIP_NEIGH                  = 0x4\n\tBPF_FIB_LOOKUP_TBID                        = 0x8\n\tBPF_FIB_LKUP_RET_SUCCESS                   = 0x0\n\tBPF_FIB_LKUP_RET_BLACKHOLE                 = 0x1\n\tBPF_FIB_LKUP_RET_UNREACHABLE               = 0x2\n\tBPF_FIB_LKUP_RET_PROHIBIT                  = 0x3\n\tBPF_FIB_LKUP_RET_NOT_FWDED                 = 0x4\n\tBPF_FIB_LKUP_RET_FWD_DISABLED              = 0x5\n\tBPF_FIB_LKUP_RET_UNSUPP_LWT                = 0x6\n\tBPF_FIB_LKUP_RET_NO_NEIGH                  = 0x7\n\tBPF_FIB_LKUP_RET_FRAG_NEEDED               = 0x8\n\tBPF_MTU_CHK_SEGS                           = 0x1\n\tBPF_MTU_CHK_RET_SUCCESS                    = 0x0\n\tBPF_MTU_CHK_RET_FRAG_NEEDED                = 0x1\n\tBPF_MTU_CHK_RET_SEGS_TOOBIG                = 0x2\n\tBPF_FD_TYPE_RAW_TRACEPOINT                 = 0x0\n\tBPF_FD_TYPE_TRACEPOINT                     = 0x1\n\tBPF_FD_TYPE_KPROBE                         = 0x2\n\tBPF_FD_TYPE_KRETPROBE                      = 0x3\n\tBPF_FD_TYPE_UPROBE                         = 0x4\n\tBPF_FD_TYPE_URETPROBE                      = 0x5\n\tBPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG        = 0x1\n\tBPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL    = 0x2\n\tBPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP         = 0x4\n\tBPF_CORE_FIELD_BYTE_OFFSET                 = 0x0\n\tBPF_CORE_FIELD_BYTE_SIZE                   = 0x1\n\tBPF_CORE_FIELD_EXISTS                      = 0x2\n\tBPF_CORE_FIELD_SIGNED                      = 0x3\n\tBPF_CORE_FIELD_LSHIFT_U64                  = 0x4\n\tBPF_CORE_FIELD_RSHIFT_U64                  = 0x5\n\tBPF_CORE_TYPE_ID_LOCAL                     = 0x6\n\tBPF_CORE_TYPE_ID_TARGET                    = 0x7\n\tBPF_CORE_TYPE_EXISTS                       = 0x8\n\tBPF_CORE_TYPE_SIZE                         = 0x9\n\tBPF_CORE_ENUMVAL_EXISTS                    = 0xa\n\tBPF_CORE_ENUMVAL_VALUE                     = 0xb\n\tBPF_CORE_TYPE_MATCHES                      = 0xc\n\tBPF_F_TIMER_ABS                            = 0x1\n)\n\nconst (\n\tRTNLGRP_NONE          = 0x0\n\tRTNLGRP_LINK          = 0x1\n\tRTNLGRP_NOTIFY        = 0x2\n\tRTNLGRP_NEIGH         = 0x3\n\tRTNLGRP_TC            = 0x4\n\tRTNLGRP_IPV4_IFADDR   = 0x5\n\tRTNLGRP_IPV4_MROUTE   = 0x6\n\tRTNLGRP_IPV4_ROUTE    = 0x7\n\tRTNLGRP_IPV4_RULE     = 0x8\n\tRTNLGRP_IPV6_IFADDR   = 0x9\n\tRTNLGRP_IPV6_MROUTE   = 0xa\n\tRTNLGRP_IPV6_ROUTE    = 0xb\n\tRTNLGRP_IPV6_IFINFO   = 0xc\n\tRTNLGRP_DECnet_IFADDR = 0xd\n\tRTNLGRP_NOP2          = 0xe\n\tRTNLGRP_DECnet_ROUTE  = 0xf\n\tRTNLGRP_DECnet_RULE   = 0x10\n\tRTNLGRP_NOP4          = 0x11\n\tRTNLGRP_IPV6_PREFIX   = 0x12\n\tRTNLGRP_IPV6_RULE     = 0x13\n\tRTNLGRP_ND_USEROPT    = 0x14\n\tRTNLGRP_PHONET_IFADDR = 0x15\n\tRTNLGRP_PHONET_ROUTE  = 0x16\n\tRTNLGRP_DCB           = 0x17\n\tRTNLGRP_IPV4_NETCONF  = 0x18\n\tRTNLGRP_IPV6_NETCONF  = 0x19\n\tRTNLGRP_MDB           = 0x1a\n\tRTNLGRP_MPLS_ROUTE    = 0x1b\n\tRTNLGRP_NSID          = 0x1c\n\tRTNLGRP_MPLS_NETCONF  = 0x1d\n\tRTNLGRP_IPV4_MROUTE_R = 0x1e\n\tRTNLGRP_IPV6_MROUTE_R = 0x1f\n\tRTNLGRP_NEXTHOP       = 0x20\n\tRTNLGRP_BRVLAN        = 0x21\n)\n\ntype CapUserHeader struct {\n\tVersion uint32\n\tPid     int32\n}\n\ntype CapUserData struct {\n\tEffective   uint32\n\tPermitted   uint32\n\tInheritable uint32\n}\n\nconst (\n\tLINUX_CAPABILITY_VERSION_1 = 0x19980330\n\tLINUX_CAPABILITY_VERSION_2 = 0x20071026\n\tLINUX_CAPABILITY_VERSION_3 = 0x20080522\n)\n\nconst (\n\tLO_FLAGS_READ_ONLY = 0x1\n\tLO_FLAGS_AUTOCLEAR = 0x4\n\tLO_FLAGS_PARTSCAN  = 0x8\n\tLO_FLAGS_DIRECT_IO = 0x10\n)\n\ntype LoopInfo64 struct {\n\tDevice           uint64\n\tInode            uint64\n\tRdevice          uint64\n\tOffset           uint64\n\tSizelimit        uint64\n\tNumber           uint32\n\tEncrypt_type     uint32\n\tEncrypt_key_size uint32\n\tFlags            uint32\n\tFile_name        [64]uint8\n\tCrypt_name       [64]uint8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n}\ntype LoopConfig struct {\n\tFd   uint32\n\tSize uint32\n\tInfo LoopInfo64\n\t_    [8]uint64\n}\n\ntype TIPCSocketAddr struct {\n\tRef  uint32\n\tNode uint32\n}\n\ntype TIPCServiceRange struct {\n\tType  uint32\n\tLower uint32\n\tUpper uint32\n}\n\ntype TIPCServiceName struct {\n\tType     uint32\n\tInstance uint32\n\tDomain   uint32\n}\n\ntype TIPCEvent struct {\n\tEvent uint32\n\tLower uint32\n\tUpper uint32\n\tPort  TIPCSocketAddr\n\tS     TIPCSubscr\n}\n\ntype TIPCGroupReq struct {\n\tType     uint32\n\tInstance uint32\n\tScope    uint32\n\tFlags    uint32\n}\n\nconst (\n\tTIPC_CLUSTER_SCOPE = 0x2\n\tTIPC_NODE_SCOPE    = 0x3\n)\n\nconst (\n\tSYSLOG_ACTION_CLOSE         = 0\n\tSYSLOG_ACTION_OPEN          = 1\n\tSYSLOG_ACTION_READ          = 2\n\tSYSLOG_ACTION_READ_ALL      = 3\n\tSYSLOG_ACTION_READ_CLEAR    = 4\n\tSYSLOG_ACTION_CLEAR         = 5\n\tSYSLOG_ACTION_CONSOLE_OFF   = 6\n\tSYSLOG_ACTION_CONSOLE_ON    = 7\n\tSYSLOG_ACTION_CONSOLE_LEVEL = 8\n\tSYSLOG_ACTION_SIZE_UNREAD   = 9\n\tSYSLOG_ACTION_SIZE_BUFFER   = 10\n)\n\nconst (\n\tDEVLINK_CMD_UNSPEC                                 = 0x0\n\tDEVLINK_CMD_GET                                    = 0x1\n\tDEVLINK_CMD_SET                                    = 0x2\n\tDEVLINK_CMD_NEW                                    = 0x3\n\tDEVLINK_CMD_DEL                                    = 0x4\n\tDEVLINK_CMD_PORT_GET                               = 0x5\n\tDEVLINK_CMD_PORT_SET                               = 0x6\n\tDEVLINK_CMD_PORT_NEW                               = 0x7\n\tDEVLINK_CMD_PORT_DEL                               = 0x8\n\tDEVLINK_CMD_PORT_SPLIT                             = 0x9\n\tDEVLINK_CMD_PORT_UNSPLIT                           = 0xa\n\tDEVLINK_CMD_SB_GET                                 = 0xb\n\tDEVLINK_CMD_SB_SET                                 = 0xc\n\tDEVLINK_CMD_SB_NEW                                 = 0xd\n\tDEVLINK_CMD_SB_DEL                                 = 0xe\n\tDEVLINK_CMD_SB_POOL_GET                            = 0xf\n\tDEVLINK_CMD_SB_POOL_SET                            = 0x10\n\tDEVLINK_CMD_SB_POOL_NEW                            = 0x11\n\tDEVLINK_CMD_SB_POOL_DEL                            = 0x12\n\tDEVLINK_CMD_SB_PORT_POOL_GET                       = 0x13\n\tDEVLINK_CMD_SB_PORT_POOL_SET                       = 0x14\n\tDEVLINK_CMD_SB_PORT_POOL_NEW                       = 0x15\n\tDEVLINK_CMD_SB_PORT_POOL_DEL                       = 0x16\n\tDEVLINK_CMD_SB_TC_POOL_BIND_GET                    = 0x17\n\tDEVLINK_CMD_SB_TC_POOL_BIND_SET                    = 0x18\n\tDEVLINK_CMD_SB_TC_POOL_BIND_NEW                    = 0x19\n\tDEVLINK_CMD_SB_TC_POOL_BIND_DEL                    = 0x1a\n\tDEVLINK_CMD_SB_OCC_SNAPSHOT                        = 0x1b\n\tDEVLINK_CMD_SB_OCC_MAX_CLEAR                       = 0x1c\n\tDEVLINK_CMD_ESWITCH_GET                            = 0x1d\n\tDEVLINK_CMD_ESWITCH_SET                            = 0x1e\n\tDEVLINK_CMD_DPIPE_TABLE_GET                        = 0x1f\n\tDEVLINK_CMD_DPIPE_ENTRIES_GET                      = 0x20\n\tDEVLINK_CMD_DPIPE_HEADERS_GET                      = 0x21\n\tDEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET               = 0x22\n\tDEVLINK_CMD_RESOURCE_SET                           = 0x23\n\tDEVLINK_CMD_RESOURCE_DUMP                          = 0x24\n\tDEVLINK_CMD_RELOAD                                 = 0x25\n\tDEVLINK_CMD_PARAM_GET                              = 0x26\n\tDEVLINK_CMD_PARAM_SET                              = 0x27\n\tDEVLINK_CMD_PARAM_NEW                              = 0x28\n\tDEVLINK_CMD_PARAM_DEL                              = 0x29\n\tDEVLINK_CMD_REGION_GET                             = 0x2a\n\tDEVLINK_CMD_REGION_SET                             = 0x2b\n\tDEVLINK_CMD_REGION_NEW                             = 0x2c\n\tDEVLINK_CMD_REGION_DEL                             = 0x2d\n\tDEVLINK_CMD_REGION_READ                            = 0x2e\n\tDEVLINK_CMD_PORT_PARAM_GET                         = 0x2f\n\tDEVLINK_CMD_PORT_PARAM_SET                         = 0x30\n\tDEVLINK_CMD_PORT_PARAM_NEW                         = 0x31\n\tDEVLINK_CMD_PORT_PARAM_DEL                         = 0x32\n\tDEVLINK_CMD_INFO_GET                               = 0x33\n\tDEVLINK_CMD_HEALTH_REPORTER_GET                    = 0x34\n\tDEVLINK_CMD_HEALTH_REPORTER_SET                    = 0x35\n\tDEVLINK_CMD_HEALTH_REPORTER_RECOVER                = 0x36\n\tDEVLINK_CMD_HEALTH_REPORTER_DIAGNOSE               = 0x37\n\tDEVLINK_CMD_HEALTH_REPORTER_DUMP_GET               = 0x38\n\tDEVLINK_CMD_HEALTH_REPORTER_DUMP_CLEAR             = 0x39\n\tDEVLINK_CMD_FLASH_UPDATE                           = 0x3a\n\tDEVLINK_CMD_FLASH_UPDATE_END                       = 0x3b\n\tDEVLINK_CMD_FLASH_UPDATE_STATUS                    = 0x3c\n\tDEVLINK_CMD_TRAP_GET                               = 0x3d\n\tDEVLINK_CMD_TRAP_SET                               = 0x3e\n\tDEVLINK_CMD_TRAP_NEW                               = 0x3f\n\tDEVLINK_CMD_TRAP_DEL                               = 0x40\n\tDEVLINK_CMD_TRAP_GROUP_GET                         = 0x41\n\tDEVLINK_CMD_TRAP_GROUP_SET                         = 0x42\n\tDEVLINK_CMD_TRAP_GROUP_NEW                         = 0x43\n\tDEVLINK_CMD_TRAP_GROUP_DEL                         = 0x44\n\tDEVLINK_CMD_TRAP_POLICER_GET                       = 0x45\n\tDEVLINK_CMD_TRAP_POLICER_SET                       = 0x46\n\tDEVLINK_CMD_TRAP_POLICER_NEW                       = 0x47\n\tDEVLINK_CMD_TRAP_POLICER_DEL                       = 0x48\n\tDEVLINK_CMD_HEALTH_REPORTER_TEST                   = 0x49\n\tDEVLINK_CMD_RATE_GET                               = 0x4a\n\tDEVLINK_CMD_RATE_SET                               = 0x4b\n\tDEVLINK_CMD_RATE_NEW                               = 0x4c\n\tDEVLINK_CMD_RATE_DEL                               = 0x4d\n\tDEVLINK_CMD_LINECARD_GET                           = 0x4e\n\tDEVLINK_CMD_LINECARD_SET                           = 0x4f\n\tDEVLINK_CMD_LINECARD_NEW                           = 0x50\n\tDEVLINK_CMD_LINECARD_DEL                           = 0x51\n\tDEVLINK_CMD_SELFTESTS_GET                          = 0x52\n\tDEVLINK_CMD_MAX                                    = 0x54\n\tDEVLINK_PORT_TYPE_NOTSET                           = 0x0\n\tDEVLINK_PORT_TYPE_AUTO                             = 0x1\n\tDEVLINK_PORT_TYPE_ETH                              = 0x2\n\tDEVLINK_PORT_TYPE_IB                               = 0x3\n\tDEVLINK_SB_POOL_TYPE_INGRESS                       = 0x0\n\tDEVLINK_SB_POOL_TYPE_EGRESS                        = 0x1\n\tDEVLINK_SB_THRESHOLD_TYPE_STATIC                   = 0x0\n\tDEVLINK_SB_THRESHOLD_TYPE_DYNAMIC                  = 0x1\n\tDEVLINK_ESWITCH_MODE_LEGACY                        = 0x0\n\tDEVLINK_ESWITCH_MODE_SWITCHDEV                     = 0x1\n\tDEVLINK_ESWITCH_INLINE_MODE_NONE                   = 0x0\n\tDEVLINK_ESWITCH_INLINE_MODE_LINK                   = 0x1\n\tDEVLINK_ESWITCH_INLINE_MODE_NETWORK                = 0x2\n\tDEVLINK_ESWITCH_INLINE_MODE_TRANSPORT              = 0x3\n\tDEVLINK_ESWITCH_ENCAP_MODE_NONE                    = 0x0\n\tDEVLINK_ESWITCH_ENCAP_MODE_BASIC                   = 0x1\n\tDEVLINK_PORT_FLAVOUR_PHYSICAL                      = 0x0\n\tDEVLINK_PORT_FLAVOUR_CPU                           = 0x1\n\tDEVLINK_PORT_FLAVOUR_DSA                           = 0x2\n\tDEVLINK_PORT_FLAVOUR_PCI_PF                        = 0x3\n\tDEVLINK_PORT_FLAVOUR_PCI_VF                        = 0x4\n\tDEVLINK_PORT_FLAVOUR_VIRTUAL                       = 0x5\n\tDEVLINK_PORT_FLAVOUR_UNUSED                        = 0x6\n\tDEVLINK_PARAM_CMODE_RUNTIME                        = 0x0\n\tDEVLINK_PARAM_CMODE_DRIVERINIT                     = 0x1\n\tDEVLINK_PARAM_CMODE_PERMANENT                      = 0x2\n\tDEVLINK_PARAM_CMODE_MAX                            = 0x2\n\tDEVLINK_PARAM_FW_LOAD_POLICY_VALUE_DRIVER          = 0x0\n\tDEVLINK_PARAM_FW_LOAD_POLICY_VALUE_FLASH           = 0x1\n\tDEVLINK_PARAM_FW_LOAD_POLICY_VALUE_DISK            = 0x2\n\tDEVLINK_PARAM_FW_LOAD_POLICY_VALUE_UNKNOWN         = 0x3\n\tDEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_UNKNOWN = 0x0\n\tDEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_ALWAYS  = 0x1\n\tDEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_NEVER   = 0x2\n\tDEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_DISK    = 0x3\n\tDEVLINK_ATTR_STATS_RX_PACKETS                      = 0x0\n\tDEVLINK_ATTR_STATS_RX_BYTES                        = 0x1\n\tDEVLINK_ATTR_STATS_RX_DROPPED                      = 0x2\n\tDEVLINK_ATTR_STATS_MAX                             = 0x2\n\tDEVLINK_FLASH_OVERWRITE_SETTINGS_BIT               = 0x0\n\tDEVLINK_FLASH_OVERWRITE_IDENTIFIERS_BIT            = 0x1\n\tDEVLINK_FLASH_OVERWRITE_MAX_BIT                    = 0x1\n\tDEVLINK_TRAP_ACTION_DROP                           = 0x0\n\tDEVLINK_TRAP_ACTION_TRAP                           = 0x1\n\tDEVLINK_TRAP_ACTION_MIRROR                         = 0x2\n\tDEVLINK_TRAP_TYPE_DROP                             = 0x0\n\tDEVLINK_TRAP_TYPE_EXCEPTION                        = 0x1\n\tDEVLINK_TRAP_TYPE_CONTROL                          = 0x2\n\tDEVLINK_ATTR_TRAP_METADATA_TYPE_IN_PORT            = 0x0\n\tDEVLINK_ATTR_TRAP_METADATA_TYPE_FA_COOKIE          = 0x1\n\tDEVLINK_RELOAD_ACTION_UNSPEC                       = 0x0\n\tDEVLINK_RELOAD_ACTION_DRIVER_REINIT                = 0x1\n\tDEVLINK_RELOAD_ACTION_FW_ACTIVATE                  = 0x2\n\tDEVLINK_RELOAD_ACTION_MAX                          = 0x2\n\tDEVLINK_RELOAD_LIMIT_UNSPEC                        = 0x0\n\tDEVLINK_RELOAD_LIMIT_NO_RESET                      = 0x1\n\tDEVLINK_RELOAD_LIMIT_MAX                           = 0x1\n\tDEVLINK_ATTR_UNSPEC                                = 0x0\n\tDEVLINK_ATTR_BUS_NAME                              = 0x1\n\tDEVLINK_ATTR_DEV_NAME                              = 0x2\n\tDEVLINK_ATTR_PORT_INDEX                            = 0x3\n\tDEVLINK_ATTR_PORT_TYPE                             = 0x4\n\tDEVLINK_ATTR_PORT_DESIRED_TYPE                     = 0x5\n\tDEVLINK_ATTR_PORT_NETDEV_IFINDEX                   = 0x6\n\tDEVLINK_ATTR_PORT_NETDEV_NAME                      = 0x7\n\tDEVLINK_ATTR_PORT_IBDEV_NAME                       = 0x8\n\tDEVLINK_ATTR_PORT_SPLIT_COUNT                      = 0x9\n\tDEVLINK_ATTR_PORT_SPLIT_GROUP                      = 0xa\n\tDEVLINK_ATTR_SB_INDEX                              = 0xb\n\tDEVLINK_ATTR_SB_SIZE                               = 0xc\n\tDEVLINK_ATTR_SB_INGRESS_POOL_COUNT                 = 0xd\n\tDEVLINK_ATTR_SB_EGRESS_POOL_COUNT                  = 0xe\n\tDEVLINK_ATTR_SB_INGRESS_TC_COUNT                   = 0xf\n\tDEVLINK_ATTR_SB_EGRESS_TC_COUNT                    = 0x10\n\tDEVLINK_ATTR_SB_POOL_INDEX                         = 0x11\n\tDEVLINK_ATTR_SB_POOL_TYPE                          = 0x12\n\tDEVLINK_ATTR_SB_POOL_SIZE                          = 0x13\n\tDEVLINK_ATTR_SB_POOL_THRESHOLD_TYPE                = 0x14\n\tDEVLINK_ATTR_SB_THRESHOLD                          = 0x15\n\tDEVLINK_ATTR_SB_TC_INDEX                           = 0x16\n\tDEVLINK_ATTR_SB_OCC_CUR                            = 0x17\n\tDEVLINK_ATTR_SB_OCC_MAX                            = 0x18\n\tDEVLINK_ATTR_ESWITCH_MODE                          = 0x19\n\tDEVLINK_ATTR_ESWITCH_INLINE_MODE                   = 0x1a\n\tDEVLINK_ATTR_DPIPE_TABLES                          = 0x1b\n\tDEVLINK_ATTR_DPIPE_TABLE                           = 0x1c\n\tDEVLINK_ATTR_DPIPE_TABLE_NAME                      = 0x1d\n\tDEVLINK_ATTR_DPIPE_TABLE_SIZE                      = 0x1e\n\tDEVLINK_ATTR_DPIPE_TABLE_MATCHES                   = 0x1f\n\tDEVLINK_ATTR_DPIPE_TABLE_ACTIONS                   = 0x20\n\tDEVLINK_ATTR_DPIPE_TABLE_COUNTERS_ENABLED          = 0x21\n\tDEVLINK_ATTR_DPIPE_ENTRIES                         = 0x22\n\tDEVLINK_ATTR_DPIPE_ENTRY                           = 0x23\n\tDEVLINK_ATTR_DPIPE_ENTRY_INDEX                     = 0x24\n\tDEVLINK_ATTR_DPIPE_ENTRY_MATCH_VALUES              = 0x25\n\tDEVLINK_ATTR_DPIPE_ENTRY_ACTION_VALUES             = 0x26\n\tDEVLINK_ATTR_DPIPE_ENTRY_COUNTER                   = 0x27\n\tDEVLINK_ATTR_DPIPE_MATCH                           = 0x28\n\tDEVLINK_ATTR_DPIPE_MATCH_VALUE                     = 0x29\n\tDEVLINK_ATTR_DPIPE_MATCH_TYPE                      = 0x2a\n\tDEVLINK_ATTR_DPIPE_ACTION                          = 0x2b\n\tDEVLINK_ATTR_DPIPE_ACTION_VALUE                    = 0x2c\n\tDEVLINK_ATTR_DPIPE_ACTION_TYPE                     = 0x2d\n\tDEVLINK_ATTR_DPIPE_VALUE                           = 0x2e\n\tDEVLINK_ATTR_DPIPE_VALUE_MASK                      = 0x2f\n\tDEVLINK_ATTR_DPIPE_VALUE_MAPPING                   = 0x30\n\tDEVLINK_ATTR_DPIPE_HEADERS                         = 0x31\n\tDEVLINK_ATTR_DPIPE_HEADER                          = 0x32\n\tDEVLINK_ATTR_DPIPE_HEADER_NAME                     = 0x33\n\tDEVLINK_ATTR_DPIPE_HEADER_ID                       = 0x34\n\tDEVLINK_ATTR_DPIPE_HEADER_FIELDS                   = 0x35\n\tDEVLINK_ATTR_DPIPE_HEADER_GLOBAL                   = 0x36\n\tDEVLINK_ATTR_DPIPE_HEADER_INDEX                    = 0x37\n\tDEVLINK_ATTR_DPIPE_FIELD                           = 0x38\n\tDEVLINK_ATTR_DPIPE_FIELD_NAME                      = 0x39\n\tDEVLINK_ATTR_DPIPE_FIELD_ID                        = 0x3a\n\tDEVLINK_ATTR_DPIPE_FIELD_BITWIDTH                  = 0x3b\n\tDEVLINK_ATTR_DPIPE_FIELD_MAPPING_TYPE              = 0x3c\n\tDEVLINK_ATTR_PAD                                   = 0x3d\n\tDEVLINK_ATTR_ESWITCH_ENCAP_MODE                    = 0x3e\n\tDEVLINK_ATTR_RESOURCE_LIST                         = 0x3f\n\tDEVLINK_ATTR_RESOURCE                              = 0x40\n\tDEVLINK_ATTR_RESOURCE_NAME                         = 0x41\n\tDEVLINK_ATTR_RESOURCE_ID                           = 0x42\n\tDEVLINK_ATTR_RESOURCE_SIZE                         = 0x43\n\tDEVLINK_ATTR_RESOURCE_SIZE_NEW                     = 0x44\n\tDEVLINK_ATTR_RESOURCE_SIZE_VALID                   = 0x45\n\tDEVLINK_ATTR_RESOURCE_SIZE_MIN                     = 0x46\n\tDEVLINK_ATTR_RESOURCE_SIZE_MAX                     = 0x47\n\tDEVLINK_ATTR_RESOURCE_SIZE_GRAN                    = 0x48\n\tDEVLINK_ATTR_RESOURCE_UNIT                         = 0x49\n\tDEVLINK_ATTR_RESOURCE_OCC                          = 0x4a\n\tDEVLINK_ATTR_DPIPE_TABLE_RESOURCE_ID               = 0x4b\n\tDEVLINK_ATTR_DPIPE_TABLE_RESOURCE_UNITS            = 0x4c\n\tDEVLINK_ATTR_PORT_FLAVOUR                          = 0x4d\n\tDEVLINK_ATTR_PORT_NUMBER                           = 0x4e\n\tDEVLINK_ATTR_PORT_SPLIT_SUBPORT_NUMBER             = 0x4f\n\tDEVLINK_ATTR_PARAM                                 = 0x50\n\tDEVLINK_ATTR_PARAM_NAME                            = 0x51\n\tDEVLINK_ATTR_PARAM_GENERIC                         = 0x52\n\tDEVLINK_ATTR_PARAM_TYPE                            = 0x53\n\tDEVLINK_ATTR_PARAM_VALUES_LIST                     = 0x54\n\tDEVLINK_ATTR_PARAM_VALUE                           = 0x55\n\tDEVLINK_ATTR_PARAM_VALUE_DATA                      = 0x56\n\tDEVLINK_ATTR_PARAM_VALUE_CMODE                     = 0x57\n\tDEVLINK_ATTR_REGION_NAME                           = 0x58\n\tDEVLINK_ATTR_REGION_SIZE                           = 0x59\n\tDEVLINK_ATTR_REGION_SNAPSHOTS                      = 0x5a\n\tDEVLINK_ATTR_REGION_SNAPSHOT                       = 0x5b\n\tDEVLINK_ATTR_REGION_SNAPSHOT_ID                    = 0x5c\n\tDEVLINK_ATTR_REGION_CHUNKS                         = 0x5d\n\tDEVLINK_ATTR_REGION_CHUNK                          = 0x5e\n\tDEVLINK_ATTR_REGION_CHUNK_DATA                     = 0x5f\n\tDEVLINK_ATTR_REGION_CHUNK_ADDR                     = 0x60\n\tDEVLINK_ATTR_REGION_CHUNK_LEN                      = 0x61\n\tDEVLINK_ATTR_INFO_DRIVER_NAME                      = 0x62\n\tDEVLINK_ATTR_INFO_SERIAL_NUMBER                    = 0x63\n\tDEVLINK_ATTR_INFO_VERSION_FIXED                    = 0x64\n\tDEVLINK_ATTR_INFO_VERSION_RUNNING                  = 0x65\n\tDEVLINK_ATTR_INFO_VERSION_STORED                   = 0x66\n\tDEVLINK_ATTR_INFO_VERSION_NAME                     = 0x67\n\tDEVLINK_ATTR_INFO_VERSION_VALUE                    = 0x68\n\tDEVLINK_ATTR_SB_POOL_CELL_SIZE                     = 0x69\n\tDEVLINK_ATTR_FMSG                                  = 0x6a\n\tDEVLINK_ATTR_FMSG_OBJ_NEST_START                   = 0x6b\n\tDEVLINK_ATTR_FMSG_PAIR_NEST_START                  = 0x6c\n\tDEVLINK_ATTR_FMSG_ARR_NEST_START                   = 0x6d\n\tDEVLINK_ATTR_FMSG_NEST_END                         = 0x6e\n\tDEVLINK_ATTR_FMSG_OBJ_NAME                         = 0x6f\n\tDEVLINK_ATTR_FMSG_OBJ_VALUE_TYPE                   = 0x70\n\tDEVLINK_ATTR_FMSG_OBJ_VALUE_DATA                   = 0x71\n\tDEVLINK_ATTR_HEALTH_REPORTER                       = 0x72\n\tDEVLINK_ATTR_HEALTH_REPORTER_NAME                  = 0x73\n\tDEVLINK_ATTR_HEALTH_REPORTER_STATE                 = 0x74\n\tDEVLINK_ATTR_HEALTH_REPORTER_ERR_COUNT             = 0x75\n\tDEVLINK_ATTR_HEALTH_REPORTER_RECOVER_COUNT         = 0x76\n\tDEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS               = 0x77\n\tDEVLINK_ATTR_HEALTH_REPORTER_GRACEFUL_PERIOD       = 0x78\n\tDEVLINK_ATTR_HEALTH_REPORTER_AUTO_RECOVER          = 0x79\n\tDEVLINK_ATTR_FLASH_UPDATE_FILE_NAME                = 0x7a\n\tDEVLINK_ATTR_FLASH_UPDATE_COMPONENT                = 0x7b\n\tDEVLINK_ATTR_FLASH_UPDATE_STATUS_MSG               = 0x7c\n\tDEVLINK_ATTR_FLASH_UPDATE_STATUS_DONE              = 0x7d\n\tDEVLINK_ATTR_FLASH_UPDATE_STATUS_TOTAL             = 0x7e\n\tDEVLINK_ATTR_PORT_PCI_PF_NUMBER                    = 0x7f\n\tDEVLINK_ATTR_PORT_PCI_VF_NUMBER                    = 0x80\n\tDEVLINK_ATTR_STATS                                 = 0x81\n\tDEVLINK_ATTR_TRAP_NAME                             = 0x82\n\tDEVLINK_ATTR_TRAP_ACTION                           = 0x83\n\tDEVLINK_ATTR_TRAP_TYPE                             = 0x84\n\tDEVLINK_ATTR_TRAP_GENERIC                          = 0x85\n\tDEVLINK_ATTR_TRAP_METADATA                         = 0x86\n\tDEVLINK_ATTR_TRAP_GROUP_NAME                       = 0x87\n\tDEVLINK_ATTR_RELOAD_FAILED                         = 0x88\n\tDEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS_NS            = 0x89\n\tDEVLINK_ATTR_NETNS_FD                              = 0x8a\n\tDEVLINK_ATTR_NETNS_PID                             = 0x8b\n\tDEVLINK_ATTR_NETNS_ID                              = 0x8c\n\tDEVLINK_ATTR_HEALTH_REPORTER_AUTO_DUMP             = 0x8d\n\tDEVLINK_ATTR_TRAP_POLICER_ID                       = 0x8e\n\tDEVLINK_ATTR_TRAP_POLICER_RATE                     = 0x8f\n\tDEVLINK_ATTR_TRAP_POLICER_BURST                    = 0x90\n\tDEVLINK_ATTR_PORT_FUNCTION                         = 0x91\n\tDEVLINK_ATTR_INFO_BOARD_SERIAL_NUMBER              = 0x92\n\tDEVLINK_ATTR_PORT_LANES                            = 0x93\n\tDEVLINK_ATTR_PORT_SPLITTABLE                       = 0x94\n\tDEVLINK_ATTR_PORT_EXTERNAL                         = 0x95\n\tDEVLINK_ATTR_PORT_CONTROLLER_NUMBER                = 0x96\n\tDEVLINK_ATTR_FLASH_UPDATE_STATUS_TIMEOUT           = 0x97\n\tDEVLINK_ATTR_FLASH_UPDATE_OVERWRITE_MASK           = 0x98\n\tDEVLINK_ATTR_RELOAD_ACTION                         = 0x99\n\tDEVLINK_ATTR_RELOAD_ACTIONS_PERFORMED              = 0x9a\n\tDEVLINK_ATTR_RELOAD_LIMITS                         = 0x9b\n\tDEVLINK_ATTR_DEV_STATS                             = 0x9c\n\tDEVLINK_ATTR_RELOAD_STATS                          = 0x9d\n\tDEVLINK_ATTR_RELOAD_STATS_ENTRY                    = 0x9e\n\tDEVLINK_ATTR_RELOAD_STATS_LIMIT                    = 0x9f\n\tDEVLINK_ATTR_RELOAD_STATS_VALUE                    = 0xa0\n\tDEVLINK_ATTR_REMOTE_RELOAD_STATS                   = 0xa1\n\tDEVLINK_ATTR_RELOAD_ACTION_INFO                    = 0xa2\n\tDEVLINK_ATTR_RELOAD_ACTION_STATS                   = 0xa3\n\tDEVLINK_ATTR_PORT_PCI_SF_NUMBER                    = 0xa4\n\tDEVLINK_ATTR_RATE_TYPE                             = 0xa5\n\tDEVLINK_ATTR_RATE_TX_SHARE                         = 0xa6\n\tDEVLINK_ATTR_RATE_TX_MAX                           = 0xa7\n\tDEVLINK_ATTR_RATE_NODE_NAME                        = 0xa8\n\tDEVLINK_ATTR_RATE_PARENT_NODE_NAME                 = 0xa9\n\tDEVLINK_ATTR_REGION_MAX_SNAPSHOTS                  = 0xaa\n\tDEVLINK_ATTR_LINECARD_INDEX                        = 0xab\n\tDEVLINK_ATTR_LINECARD_STATE                        = 0xac\n\tDEVLINK_ATTR_LINECARD_TYPE                         = 0xad\n\tDEVLINK_ATTR_LINECARD_SUPPORTED_TYPES              = 0xae\n\tDEVLINK_ATTR_NESTED_DEVLINK                        = 0xaf\n\tDEVLINK_ATTR_SELFTESTS                             = 0xb0\n\tDEVLINK_ATTR_MAX                                   = 0xb3\n\tDEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE              = 0x0\n\tDEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX           = 0x1\n\tDEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT               = 0x0\n\tDEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY             = 0x0\n\tDEVLINK_DPIPE_FIELD_ETHERNET_DST_MAC               = 0x0\n\tDEVLINK_DPIPE_FIELD_IPV4_DST_IP                    = 0x0\n\tDEVLINK_DPIPE_FIELD_IPV6_DST_IP                    = 0x0\n\tDEVLINK_DPIPE_HEADER_ETHERNET                      = 0x0\n\tDEVLINK_DPIPE_HEADER_IPV4                          = 0x1\n\tDEVLINK_DPIPE_HEADER_IPV6                          = 0x2\n\tDEVLINK_RESOURCE_UNIT_ENTRY                        = 0x0\n\tDEVLINK_PORT_FUNCTION_ATTR_UNSPEC                  = 0x0\n\tDEVLINK_PORT_FUNCTION_ATTR_HW_ADDR                 = 0x1\n\tDEVLINK_PORT_FN_ATTR_STATE                         = 0x2\n\tDEVLINK_PORT_FN_ATTR_OPSTATE                       = 0x3\n\tDEVLINK_PORT_FN_ATTR_CAPS                          = 0x4\n\tDEVLINK_PORT_FUNCTION_ATTR_MAX                     = 0x6\n)\n\ntype FsverityDigest struct {\n\tAlgorithm uint16\n\tSize      uint16\n}\n\ntype FsverityEnableArg struct {\n\tVersion        uint32\n\tHash_algorithm uint32\n\tBlock_size     uint32\n\tSalt_size      uint32\n\tSalt_ptr       uint64\n\tSig_size       uint32\n\t_              uint32\n\tSig_ptr        uint64\n\t_              [11]uint64\n}\n\ntype Nhmsg struct {\n\tFamily   uint8\n\tScope    uint8\n\tProtocol uint8\n\tResvd    uint8\n\tFlags    uint32\n}\n\ntype NexthopGrp struct {\n\tId     uint32\n\tWeight uint8\n\tHigh   uint8\n\tResvd2 uint16\n}\n\nconst (\n\tNHA_UNSPEC     = 0x0\n\tNHA_ID         = 0x1\n\tNHA_GROUP      = 0x2\n\tNHA_GROUP_TYPE = 0x3\n\tNHA_BLACKHOLE  = 0x4\n\tNHA_OIF        = 0x5\n\tNHA_GATEWAY    = 0x6\n\tNHA_ENCAP_TYPE = 0x7\n\tNHA_ENCAP      = 0x8\n\tNHA_GROUPS     = 0x9\n\tNHA_MASTER     = 0xa\n)\n\nconst (\n\tCAN_RAW_FILTER        = 0x1\n\tCAN_RAW_ERR_FILTER    = 0x2\n\tCAN_RAW_LOOPBACK      = 0x3\n\tCAN_RAW_RECV_OWN_MSGS = 0x4\n\tCAN_RAW_FD_FRAMES     = 0x5\n\tCAN_RAW_JOIN_FILTERS  = 0x6\n)\n\ntype WatchdogInfo struct {\n\tOptions  uint32\n\tVersion  uint32\n\tIdentity [32]uint8\n}\n\ntype PPSFData struct {\n\tInfo    PPSKInfo\n\tTimeout PPSKTime\n}\n\ntype PPSKParams struct {\n\tApi_version   int32\n\tMode          int32\n\tAssert_off_tu PPSKTime\n\tClear_off_tu  PPSKTime\n}\n\ntype PPSKTime struct {\n\tSec   int64\n\tNsec  int32\n\tFlags uint32\n}\n\nconst (\n\tLWTUNNEL_ENCAP_NONE       = 0x0\n\tLWTUNNEL_ENCAP_MPLS       = 0x1\n\tLWTUNNEL_ENCAP_IP         = 0x2\n\tLWTUNNEL_ENCAP_ILA        = 0x3\n\tLWTUNNEL_ENCAP_IP6        = 0x4\n\tLWTUNNEL_ENCAP_SEG6       = 0x5\n\tLWTUNNEL_ENCAP_BPF        = 0x6\n\tLWTUNNEL_ENCAP_SEG6_LOCAL = 0x7\n\tLWTUNNEL_ENCAP_RPL        = 0x8\n\tLWTUNNEL_ENCAP_IOAM6      = 0x9\n\tLWTUNNEL_ENCAP_XFRM       = 0xa\n\tLWTUNNEL_ENCAP_MAX        = 0xa\n\n\tMPLS_IPTUNNEL_UNSPEC = 0x0\n\tMPLS_IPTUNNEL_DST    = 0x1\n\tMPLS_IPTUNNEL_TTL    = 0x2\n\tMPLS_IPTUNNEL_MAX    = 0x2\n)\n\nconst (\n\tETHTOOL_ID_UNSPEC                                                       = 0x0\n\tETHTOOL_RX_COPYBREAK                                                    = 0x1\n\tETHTOOL_TX_COPYBREAK                                                    = 0x2\n\tETHTOOL_PFC_PREVENTION_TOUT                                             = 0x3\n\tETHTOOL_TUNABLE_UNSPEC                                                  = 0x0\n\tETHTOOL_TUNABLE_U8                                                      = 0x1\n\tETHTOOL_TUNABLE_U16                                                     = 0x2\n\tETHTOOL_TUNABLE_U32                                                     = 0x3\n\tETHTOOL_TUNABLE_U64                                                     = 0x4\n\tETHTOOL_TUNABLE_STRING                                                  = 0x5\n\tETHTOOL_TUNABLE_S8                                                      = 0x6\n\tETHTOOL_TUNABLE_S16                                                     = 0x7\n\tETHTOOL_TUNABLE_S32                                                     = 0x8\n\tETHTOOL_TUNABLE_S64                                                     = 0x9\n\tETHTOOL_PHY_ID_UNSPEC                                                   = 0x0\n\tETHTOOL_PHY_DOWNSHIFT                                                   = 0x1\n\tETHTOOL_PHY_FAST_LINK_DOWN                                              = 0x2\n\tETHTOOL_PHY_EDPD                                                        = 0x3\n\tETHTOOL_LINK_EXT_STATE_AUTONEG                                          = 0x0\n\tETHTOOL_LINK_EXT_STATE_LINK_TRAINING_FAILURE                            = 0x1\n\tETHTOOL_LINK_EXT_STATE_LINK_LOGICAL_MISMATCH                            = 0x2\n\tETHTOOL_LINK_EXT_STATE_BAD_SIGNAL_INTEGRITY                             = 0x3\n\tETHTOOL_LINK_EXT_STATE_NO_CABLE                                         = 0x4\n\tETHTOOL_LINK_EXT_STATE_CABLE_ISSUE                                      = 0x5\n\tETHTOOL_LINK_EXT_STATE_EEPROM_ISSUE                                     = 0x6\n\tETHTOOL_LINK_EXT_STATE_CALIBRATION_FAILURE                              = 0x7\n\tETHTOOL_LINK_EXT_STATE_POWER_BUDGET_EXCEEDED                            = 0x8\n\tETHTOOL_LINK_EXT_STATE_OVERHEAT                                         = 0x9\n\tETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED                        = 0x1\n\tETHTOOL_LINK_EXT_SUBSTATE_AN_ACK_NOT_RECEIVED                           = 0x2\n\tETHTOOL_LINK_EXT_SUBSTATE_AN_NEXT_PAGE_EXCHANGE_FAILED                  = 0x3\n\tETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED_FORCE_MODE             = 0x4\n\tETHTOOL_LINK_EXT_SUBSTATE_AN_FEC_MISMATCH_DURING_OVERRIDE               = 0x5\n\tETHTOOL_LINK_EXT_SUBSTATE_AN_NO_HCD                                     = 0x6\n\tETHTOOL_LINK_EXT_SUBSTATE_LT_KR_FRAME_LOCK_NOT_ACQUIRED                 = 0x1\n\tETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_INHIBIT_TIMEOUT                    = 0x2\n\tETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_PARTNER_DID_NOT_SET_RECEIVER_READY = 0x3\n\tETHTOOL_LINK_EXT_SUBSTATE_LT_REMOTE_FAULT                               = 0x4\n\tETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_BLOCK_LOCK            = 0x1\n\tETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_AM_LOCK               = 0x2\n\tETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_GET_ALIGN_STATUS              = 0x3\n\tETHTOOL_LINK_EXT_SUBSTATE_LLM_FC_FEC_IS_NOT_LOCKED                      = 0x4\n\tETHTOOL_LINK_EXT_SUBSTATE_LLM_RS_FEC_IS_NOT_LOCKED                      = 0x5\n\tETHTOOL_LINK_EXT_SUBSTATE_BSI_LARGE_NUMBER_OF_PHYSICAL_ERRORS           = 0x1\n\tETHTOOL_LINK_EXT_SUBSTATE_BSI_UNSUPPORTED_RATE                          = 0x2\n\tETHTOOL_LINK_EXT_SUBSTATE_CI_UNSUPPORTED_CABLE                          = 0x1\n\tETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE                         = 0x2\n\tETHTOOL_FLASH_ALL_REGIONS                                               = 0x0\n\tETHTOOL_F_UNSUPPORTED__BIT                                              = 0x0\n\tETHTOOL_F_WISH__BIT                                                     = 0x1\n\tETHTOOL_F_COMPAT__BIT                                                   = 0x2\n\tETHTOOL_FEC_NONE_BIT                                                    = 0x0\n\tETHTOOL_FEC_AUTO_BIT                                                    = 0x1\n\tETHTOOL_FEC_OFF_BIT                                                     = 0x2\n\tETHTOOL_FEC_RS_BIT                                                      = 0x3\n\tETHTOOL_FEC_BASER_BIT                                                   = 0x4\n\tETHTOOL_FEC_LLRS_BIT                                                    = 0x5\n\tETHTOOL_LINK_MODE_10baseT_Half_BIT                                      = 0x0\n\tETHTOOL_LINK_MODE_10baseT_Full_BIT                                      = 0x1\n\tETHTOOL_LINK_MODE_100baseT_Half_BIT                                     = 0x2\n\tETHTOOL_LINK_MODE_100baseT_Full_BIT                                     = 0x3\n\tETHTOOL_LINK_MODE_1000baseT_Half_BIT                                    = 0x4\n\tETHTOOL_LINK_MODE_1000baseT_Full_BIT                                    = 0x5\n\tETHTOOL_LINK_MODE_Autoneg_BIT                                           = 0x6\n\tETHTOOL_LINK_MODE_TP_BIT                                                = 0x7\n\tETHTOOL_LINK_MODE_AUI_BIT                                               = 0x8\n\tETHTOOL_LINK_MODE_MII_BIT                                               = 0x9\n\tETHTOOL_LINK_MODE_FIBRE_BIT                                             = 0xa\n\tETHTOOL_LINK_MODE_BNC_BIT                                               = 0xb\n\tETHTOOL_LINK_MODE_10000baseT_Full_BIT                                   = 0xc\n\tETHTOOL_LINK_MODE_Pause_BIT                                             = 0xd\n\tETHTOOL_LINK_MODE_Asym_Pause_BIT                                        = 0xe\n\tETHTOOL_LINK_MODE_2500baseX_Full_BIT                                    = 0xf\n\tETHTOOL_LINK_MODE_Backplane_BIT                                         = 0x10\n\tETHTOOL_LINK_MODE_1000baseKX_Full_BIT                                   = 0x11\n\tETHTOOL_LINK_MODE_10000baseKX4_Full_BIT                                 = 0x12\n\tETHTOOL_LINK_MODE_10000baseKR_Full_BIT                                  = 0x13\n\tETHTOOL_LINK_MODE_10000baseR_FEC_BIT                                    = 0x14\n\tETHTOOL_LINK_MODE_20000baseMLD2_Full_BIT                                = 0x15\n\tETHTOOL_LINK_MODE_20000baseKR2_Full_BIT                                 = 0x16\n\tETHTOOL_LINK_MODE_40000baseKR4_Full_BIT                                 = 0x17\n\tETHTOOL_LINK_MODE_40000baseCR4_Full_BIT                                 = 0x18\n\tETHTOOL_LINK_MODE_40000baseSR4_Full_BIT                                 = 0x19\n\tETHTOOL_LINK_MODE_40000baseLR4_Full_BIT                                 = 0x1a\n\tETHTOOL_LINK_MODE_56000baseKR4_Full_BIT                                 = 0x1b\n\tETHTOOL_LINK_MODE_56000baseCR4_Full_BIT                                 = 0x1c\n\tETHTOOL_LINK_MODE_56000baseSR4_Full_BIT                                 = 0x1d\n\tETHTOOL_LINK_MODE_56000baseLR4_Full_BIT                                 = 0x1e\n\tETHTOOL_LINK_MODE_25000baseCR_Full_BIT                                  = 0x1f\n\tETHTOOL_LINK_MODE_25000baseKR_Full_BIT                                  = 0x20\n\tETHTOOL_LINK_MODE_25000baseSR_Full_BIT                                  = 0x21\n\tETHTOOL_LINK_MODE_50000baseCR2_Full_BIT                                 = 0x22\n\tETHTOOL_LINK_MODE_50000baseKR2_Full_BIT                                 = 0x23\n\tETHTOOL_LINK_MODE_100000baseKR4_Full_BIT                                = 0x24\n\tETHTOOL_LINK_MODE_100000baseSR4_Full_BIT                                = 0x25\n\tETHTOOL_LINK_MODE_100000baseCR4_Full_BIT                                = 0x26\n\tETHTOOL_LINK_MODE_100000baseLR4_ER4_Full_BIT                            = 0x27\n\tETHTOOL_LINK_MODE_50000baseSR2_Full_BIT                                 = 0x28\n\tETHTOOL_LINK_MODE_1000baseX_Full_BIT                                    = 0x29\n\tETHTOOL_LINK_MODE_10000baseCR_Full_BIT                                  = 0x2a\n\tETHTOOL_LINK_MODE_10000baseSR_Full_BIT                                  = 0x2b\n\tETHTOOL_LINK_MODE_10000baseLR_Full_BIT                                  = 0x2c\n\tETHTOOL_LINK_MODE_10000baseLRM_Full_BIT                                 = 0x2d\n\tETHTOOL_LINK_MODE_10000baseER_Full_BIT                                  = 0x2e\n\tETHTOOL_LINK_MODE_2500baseT_Full_BIT                                    = 0x2f\n\tETHTOOL_LINK_MODE_5000baseT_Full_BIT                                    = 0x30\n\tETHTOOL_LINK_MODE_FEC_NONE_BIT                                          = 0x31\n\tETHTOOL_LINK_MODE_FEC_RS_BIT                                            = 0x32\n\tETHTOOL_LINK_MODE_FEC_BASER_BIT                                         = 0x33\n\tETHTOOL_LINK_MODE_50000baseKR_Full_BIT                                  = 0x34\n\tETHTOOL_LINK_MODE_50000baseSR_Full_BIT                                  = 0x35\n\tETHTOOL_LINK_MODE_50000baseCR_Full_BIT                                  = 0x36\n\tETHTOOL_LINK_MODE_50000baseLR_ER_FR_Full_BIT                            = 0x37\n\tETHTOOL_LINK_MODE_50000baseDR_Full_BIT                                  = 0x38\n\tETHTOOL_LINK_MODE_100000baseKR2_Full_BIT                                = 0x39\n\tETHTOOL_LINK_MODE_100000baseSR2_Full_BIT                                = 0x3a\n\tETHTOOL_LINK_MODE_100000baseCR2_Full_BIT                                = 0x3b\n\tETHTOOL_LINK_MODE_100000baseLR2_ER2_FR2_Full_BIT                        = 0x3c\n\tETHTOOL_LINK_MODE_100000baseDR2_Full_BIT                                = 0x3d\n\tETHTOOL_LINK_MODE_200000baseKR4_Full_BIT                                = 0x3e\n\tETHTOOL_LINK_MODE_200000baseSR4_Full_BIT                                = 0x3f\n\tETHTOOL_LINK_MODE_200000baseLR4_ER4_FR4_Full_BIT                        = 0x40\n\tETHTOOL_LINK_MODE_200000baseDR4_Full_BIT                                = 0x41\n\tETHTOOL_LINK_MODE_200000baseCR4_Full_BIT                                = 0x42\n\tETHTOOL_LINK_MODE_100baseT1_Full_BIT                                    = 0x43\n\tETHTOOL_LINK_MODE_1000baseT1_Full_BIT                                   = 0x44\n\tETHTOOL_LINK_MODE_400000baseKR8_Full_BIT                                = 0x45\n\tETHTOOL_LINK_MODE_400000baseSR8_Full_BIT                                = 0x46\n\tETHTOOL_LINK_MODE_400000baseLR8_ER8_FR8_Full_BIT                        = 0x47\n\tETHTOOL_LINK_MODE_400000baseDR8_Full_BIT                                = 0x48\n\tETHTOOL_LINK_MODE_400000baseCR8_Full_BIT                                = 0x49\n\tETHTOOL_LINK_MODE_FEC_LLRS_BIT                                          = 0x4a\n\tETHTOOL_LINK_MODE_100000baseKR_Full_BIT                                 = 0x4b\n\tETHTOOL_LINK_MODE_100000baseSR_Full_BIT                                 = 0x4c\n\tETHTOOL_LINK_MODE_100000baseLR_ER_FR_Full_BIT                           = 0x4d\n\tETHTOOL_LINK_MODE_100000baseCR_Full_BIT                                 = 0x4e\n\tETHTOOL_LINK_MODE_100000baseDR_Full_BIT                                 = 0x4f\n\tETHTOOL_LINK_MODE_200000baseKR2_Full_BIT                                = 0x50\n\tETHTOOL_LINK_MODE_200000baseSR2_Full_BIT                                = 0x51\n\tETHTOOL_LINK_MODE_200000baseLR2_ER2_FR2_Full_BIT                        = 0x52\n\tETHTOOL_LINK_MODE_200000baseDR2_Full_BIT                                = 0x53\n\tETHTOOL_LINK_MODE_200000baseCR2_Full_BIT                                = 0x54\n\tETHTOOL_LINK_MODE_400000baseKR4_Full_BIT                                = 0x55\n\tETHTOOL_LINK_MODE_400000baseSR4_Full_BIT                                = 0x56\n\tETHTOOL_LINK_MODE_400000baseLR4_ER4_FR4_Full_BIT                        = 0x57\n\tETHTOOL_LINK_MODE_400000baseDR4_Full_BIT                                = 0x58\n\tETHTOOL_LINK_MODE_400000baseCR4_Full_BIT                                = 0x59\n\tETHTOOL_LINK_MODE_100baseFX_Half_BIT                                    = 0x5a\n\tETHTOOL_LINK_MODE_100baseFX_Full_BIT                                    = 0x5b\n\n\tETHTOOL_MSG_USER_NONE                     = 0x0\n\tETHTOOL_MSG_STRSET_GET                    = 0x1\n\tETHTOOL_MSG_LINKINFO_GET                  = 0x2\n\tETHTOOL_MSG_LINKINFO_SET                  = 0x3\n\tETHTOOL_MSG_LINKMODES_GET                 = 0x4\n\tETHTOOL_MSG_LINKMODES_SET                 = 0x5\n\tETHTOOL_MSG_LINKSTATE_GET                 = 0x6\n\tETHTOOL_MSG_DEBUG_GET                     = 0x7\n\tETHTOOL_MSG_DEBUG_SET                     = 0x8\n\tETHTOOL_MSG_WOL_GET                       = 0x9\n\tETHTOOL_MSG_WOL_SET                       = 0xa\n\tETHTOOL_MSG_FEATURES_GET                  = 0xb\n\tETHTOOL_MSG_FEATURES_SET                  = 0xc\n\tETHTOOL_MSG_PRIVFLAGS_GET                 = 0xd\n\tETHTOOL_MSG_PRIVFLAGS_SET                 = 0xe\n\tETHTOOL_MSG_RINGS_GET                     = 0xf\n\tETHTOOL_MSG_RINGS_SET                     = 0x10\n\tETHTOOL_MSG_CHANNELS_GET                  = 0x11\n\tETHTOOL_MSG_CHANNELS_SET                  = 0x12\n\tETHTOOL_MSG_COALESCE_GET                  = 0x13\n\tETHTOOL_MSG_COALESCE_SET                  = 0x14\n\tETHTOOL_MSG_PAUSE_GET                     = 0x15\n\tETHTOOL_MSG_PAUSE_SET                     = 0x16\n\tETHTOOL_MSG_EEE_GET                       = 0x17\n\tETHTOOL_MSG_EEE_SET                       = 0x18\n\tETHTOOL_MSG_TSINFO_GET                    = 0x19\n\tETHTOOL_MSG_CABLE_TEST_ACT                = 0x1a\n\tETHTOOL_MSG_CABLE_TEST_TDR_ACT            = 0x1b\n\tETHTOOL_MSG_TUNNEL_INFO_GET               = 0x1c\n\tETHTOOL_MSG_FEC_GET                       = 0x1d\n\tETHTOOL_MSG_FEC_SET                       = 0x1e\n\tETHTOOL_MSG_MODULE_EEPROM_GET             = 0x1f\n\tETHTOOL_MSG_STATS_GET                     = 0x20\n\tETHTOOL_MSG_PHC_VCLOCKS_GET               = 0x21\n\tETHTOOL_MSG_MODULE_GET                    = 0x22\n\tETHTOOL_MSG_MODULE_SET                    = 0x23\n\tETHTOOL_MSG_PSE_GET                       = 0x24\n\tETHTOOL_MSG_PSE_SET                       = 0x25\n\tETHTOOL_MSG_RSS_GET                       = 0x26\n\tETHTOOL_MSG_USER_MAX                      = 0x2d\n\tETHTOOL_MSG_KERNEL_NONE                   = 0x0\n\tETHTOOL_MSG_STRSET_GET_REPLY              = 0x1\n\tETHTOOL_MSG_LINKINFO_GET_REPLY            = 0x2\n\tETHTOOL_MSG_LINKINFO_NTF                  = 0x3\n\tETHTOOL_MSG_LINKMODES_GET_REPLY           = 0x4\n\tETHTOOL_MSG_LINKMODES_NTF                 = 0x5\n\tETHTOOL_MSG_LINKSTATE_GET_REPLY           = 0x6\n\tETHTOOL_MSG_DEBUG_GET_REPLY               = 0x7\n\tETHTOOL_MSG_DEBUG_NTF                     = 0x8\n\tETHTOOL_MSG_WOL_GET_REPLY                 = 0x9\n\tETHTOOL_MSG_WOL_NTF                       = 0xa\n\tETHTOOL_MSG_FEATURES_GET_REPLY            = 0xb\n\tETHTOOL_MSG_FEATURES_SET_REPLY            = 0xc\n\tETHTOOL_MSG_FEATURES_NTF                  = 0xd\n\tETHTOOL_MSG_PRIVFLAGS_GET_REPLY           = 0xe\n\tETHTOOL_MSG_PRIVFLAGS_NTF                 = 0xf\n\tETHTOOL_MSG_RINGS_GET_REPLY               = 0x10\n\tETHTOOL_MSG_RINGS_NTF                     = 0x11\n\tETHTOOL_MSG_CHANNELS_GET_REPLY            = 0x12\n\tETHTOOL_MSG_CHANNELS_NTF                  = 0x13\n\tETHTOOL_MSG_COALESCE_GET_REPLY            = 0x14\n\tETHTOOL_MSG_COALESCE_NTF                  = 0x15\n\tETHTOOL_MSG_PAUSE_GET_REPLY               = 0x16\n\tETHTOOL_MSG_PAUSE_NTF                     = 0x17\n\tETHTOOL_MSG_EEE_GET_REPLY                 = 0x18\n\tETHTOOL_MSG_EEE_NTF                       = 0x19\n\tETHTOOL_MSG_TSINFO_GET_REPLY              = 0x1a\n\tETHTOOL_MSG_CABLE_TEST_NTF                = 0x1b\n\tETHTOOL_MSG_CABLE_TEST_TDR_NTF            = 0x1c\n\tETHTOOL_MSG_TUNNEL_INFO_GET_REPLY         = 0x1d\n\tETHTOOL_MSG_FEC_GET_REPLY                 = 0x1e\n\tETHTOOL_MSG_FEC_NTF                       = 0x1f\n\tETHTOOL_MSG_MODULE_EEPROM_GET_REPLY       = 0x20\n\tETHTOOL_MSG_STATS_GET_REPLY               = 0x21\n\tETHTOOL_MSG_PHC_VCLOCKS_GET_REPLY         = 0x22\n\tETHTOOL_MSG_MODULE_GET_REPLY              = 0x23\n\tETHTOOL_MSG_MODULE_NTF                    = 0x24\n\tETHTOOL_MSG_PSE_GET_REPLY                 = 0x25\n\tETHTOOL_MSG_RSS_GET_REPLY                 = 0x26\n\tETHTOOL_MSG_KERNEL_MAX                    = 0x2e\n\tETHTOOL_FLAG_COMPACT_BITSETS              = 0x1\n\tETHTOOL_FLAG_OMIT_REPLY                   = 0x2\n\tETHTOOL_FLAG_STATS                        = 0x4\n\tETHTOOL_A_HEADER_UNSPEC                   = 0x0\n\tETHTOOL_A_HEADER_DEV_INDEX                = 0x1\n\tETHTOOL_A_HEADER_DEV_NAME                 = 0x2\n\tETHTOOL_A_HEADER_FLAGS                    = 0x3\n\tETHTOOL_A_HEADER_MAX                      = 0x4\n\tETHTOOL_A_BITSET_BIT_UNSPEC               = 0x0\n\tETHTOOL_A_BITSET_BIT_INDEX                = 0x1\n\tETHTOOL_A_BITSET_BIT_NAME                 = 0x2\n\tETHTOOL_A_BITSET_BIT_VALUE                = 0x3\n\tETHTOOL_A_BITSET_BIT_MAX                  = 0x3\n\tETHTOOL_A_BITSET_BITS_UNSPEC              = 0x0\n\tETHTOOL_A_BITSET_BITS_BIT                 = 0x1\n\tETHTOOL_A_BITSET_BITS_MAX                 = 0x1\n\tETHTOOL_A_BITSET_UNSPEC                   = 0x0\n\tETHTOOL_A_BITSET_NOMASK                   = 0x1\n\tETHTOOL_A_BITSET_SIZE                     = 0x2\n\tETHTOOL_A_BITSET_BITS                     = 0x3\n\tETHTOOL_A_BITSET_VALUE                    = 0x4\n\tETHTOOL_A_BITSET_MASK                     = 0x5\n\tETHTOOL_A_BITSET_MAX                      = 0x5\n\tETHTOOL_A_STRING_UNSPEC                   = 0x0\n\tETHTOOL_A_STRING_INDEX                    = 0x1\n\tETHTOOL_A_STRING_VALUE                    = 0x2\n\tETHTOOL_A_STRING_MAX                      = 0x2\n\tETHTOOL_A_STRINGS_UNSPEC                  = 0x0\n\tETHTOOL_A_STRINGS_STRING                  = 0x1\n\tETHTOOL_A_STRINGS_MAX                     = 0x1\n\tETHTOOL_A_STRINGSET_UNSPEC                = 0x0\n\tETHTOOL_A_STRINGSET_ID                    = 0x1\n\tETHTOOL_A_STRINGSET_COUNT                 = 0x2\n\tETHTOOL_A_STRINGSET_STRINGS               = 0x3\n\tETHTOOL_A_STRINGSET_MAX                   = 0x3\n\tETHTOOL_A_STRINGSETS_UNSPEC               = 0x0\n\tETHTOOL_A_STRINGSETS_STRINGSET            = 0x1\n\tETHTOOL_A_STRINGSETS_MAX                  = 0x1\n\tETHTOOL_A_STRSET_UNSPEC                   = 0x0\n\tETHTOOL_A_STRSET_HEADER                   = 0x1\n\tETHTOOL_A_STRSET_STRINGSETS               = 0x2\n\tETHTOOL_A_STRSET_COUNTS_ONLY              = 0x3\n\tETHTOOL_A_STRSET_MAX                      = 0x3\n\tETHTOOL_A_LINKINFO_UNSPEC                 = 0x0\n\tETHTOOL_A_LINKINFO_HEADER                 = 0x1\n\tETHTOOL_A_LINKINFO_PORT                   = 0x2\n\tETHTOOL_A_LINKINFO_PHYADDR                = 0x3\n\tETHTOOL_A_LINKINFO_TP_MDIX                = 0x4\n\tETHTOOL_A_LINKINFO_TP_MDIX_CTRL           = 0x5\n\tETHTOOL_A_LINKINFO_TRANSCEIVER            = 0x6\n\tETHTOOL_A_LINKINFO_MAX                    = 0x6\n\tETHTOOL_A_LINKMODES_UNSPEC                = 0x0\n\tETHTOOL_A_LINKMODES_HEADER                = 0x1\n\tETHTOOL_A_LINKMODES_AUTONEG               = 0x2\n\tETHTOOL_A_LINKMODES_OURS                  = 0x3\n\tETHTOOL_A_LINKMODES_PEER                  = 0x4\n\tETHTOOL_A_LINKMODES_SPEED                 = 0x5\n\tETHTOOL_A_LINKMODES_DUPLEX                = 0x6\n\tETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG      = 0x7\n\tETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE    = 0x8\n\tETHTOOL_A_LINKMODES_LANES                 = 0x9\n\tETHTOOL_A_LINKMODES_RATE_MATCHING         = 0xa\n\tETHTOOL_A_LINKMODES_MAX                   = 0xa\n\tETHTOOL_A_LINKSTATE_UNSPEC                = 0x0\n\tETHTOOL_A_LINKSTATE_HEADER                = 0x1\n\tETHTOOL_A_LINKSTATE_LINK                  = 0x2\n\tETHTOOL_A_LINKSTATE_SQI                   = 0x3\n\tETHTOOL_A_LINKSTATE_SQI_MAX               = 0x4\n\tETHTOOL_A_LINKSTATE_EXT_STATE             = 0x5\n\tETHTOOL_A_LINKSTATE_EXT_SUBSTATE          = 0x6\n\tETHTOOL_A_LINKSTATE_EXT_DOWN_CNT          = 0x7\n\tETHTOOL_A_LINKSTATE_MAX                   = 0x7\n\tETHTOOL_A_DEBUG_UNSPEC                    = 0x0\n\tETHTOOL_A_DEBUG_HEADER                    = 0x1\n\tETHTOOL_A_DEBUG_MSGMASK                   = 0x2\n\tETHTOOL_A_DEBUG_MAX                       = 0x2\n\tETHTOOL_A_WOL_UNSPEC                      = 0x0\n\tETHTOOL_A_WOL_HEADER                      = 0x1\n\tETHTOOL_A_WOL_MODES                       = 0x2\n\tETHTOOL_A_WOL_SOPASS                      = 0x3\n\tETHTOOL_A_WOL_MAX                         = 0x3\n\tETHTOOL_A_FEATURES_UNSPEC                 = 0x0\n\tETHTOOL_A_FEATURES_HEADER                 = 0x1\n\tETHTOOL_A_FEATURES_HW                     = 0x2\n\tETHTOOL_A_FEATURES_WANTED                 = 0x3\n\tETHTOOL_A_FEATURES_ACTIVE                 = 0x4\n\tETHTOOL_A_FEATURES_NOCHANGE               = 0x5\n\tETHTOOL_A_FEATURES_MAX                    = 0x5\n\tETHTOOL_A_PRIVFLAGS_UNSPEC                = 0x0\n\tETHTOOL_A_PRIVFLAGS_HEADER                = 0x1\n\tETHTOOL_A_PRIVFLAGS_FLAGS                 = 0x2\n\tETHTOOL_A_PRIVFLAGS_MAX                   = 0x2\n\tETHTOOL_A_RINGS_UNSPEC                    = 0x0\n\tETHTOOL_A_RINGS_HEADER                    = 0x1\n\tETHTOOL_A_RINGS_RX_MAX                    = 0x2\n\tETHTOOL_A_RINGS_RX_MINI_MAX               = 0x3\n\tETHTOOL_A_RINGS_RX_JUMBO_MAX              = 0x4\n\tETHTOOL_A_RINGS_TX_MAX                    = 0x5\n\tETHTOOL_A_RINGS_RX                        = 0x6\n\tETHTOOL_A_RINGS_RX_MINI                   = 0x7\n\tETHTOOL_A_RINGS_RX_JUMBO                  = 0x8\n\tETHTOOL_A_RINGS_TX                        = 0x9\n\tETHTOOL_A_RINGS_RX_BUF_LEN                = 0xa\n\tETHTOOL_A_RINGS_TCP_DATA_SPLIT            = 0xb\n\tETHTOOL_A_RINGS_CQE_SIZE                  = 0xc\n\tETHTOOL_A_RINGS_TX_PUSH                   = 0xd\n\tETHTOOL_A_RINGS_MAX                       = 0x10\n\tETHTOOL_A_CHANNELS_UNSPEC                 = 0x0\n\tETHTOOL_A_CHANNELS_HEADER                 = 0x1\n\tETHTOOL_A_CHANNELS_RX_MAX                 = 0x2\n\tETHTOOL_A_CHANNELS_TX_MAX                 = 0x3\n\tETHTOOL_A_CHANNELS_OTHER_MAX              = 0x4\n\tETHTOOL_A_CHANNELS_COMBINED_MAX           = 0x5\n\tETHTOOL_A_CHANNELS_RX_COUNT               = 0x6\n\tETHTOOL_A_CHANNELS_TX_COUNT               = 0x7\n\tETHTOOL_A_CHANNELS_OTHER_COUNT            = 0x8\n\tETHTOOL_A_CHANNELS_COMBINED_COUNT         = 0x9\n\tETHTOOL_A_CHANNELS_MAX                    = 0x9\n\tETHTOOL_A_COALESCE_UNSPEC                 = 0x0\n\tETHTOOL_A_COALESCE_HEADER                 = 0x1\n\tETHTOOL_A_COALESCE_RX_USECS               = 0x2\n\tETHTOOL_A_COALESCE_RX_MAX_FRAMES          = 0x3\n\tETHTOOL_A_COALESCE_RX_USECS_IRQ           = 0x4\n\tETHTOOL_A_COALESCE_RX_MAX_FRAMES_IRQ      = 0x5\n\tETHTOOL_A_COALESCE_TX_USECS               = 0x6\n\tETHTOOL_A_COALESCE_TX_MAX_FRAMES          = 0x7\n\tETHTOOL_A_COALESCE_TX_USECS_IRQ           = 0x8\n\tETHTOOL_A_COALESCE_TX_MAX_FRAMES_IRQ      = 0x9\n\tETHTOOL_A_COALESCE_STATS_BLOCK_USECS      = 0xa\n\tETHTOOL_A_COALESCE_USE_ADAPTIVE_RX        = 0xb\n\tETHTOOL_A_COALESCE_USE_ADAPTIVE_TX        = 0xc\n\tETHTOOL_A_COALESCE_PKT_RATE_LOW           = 0xd\n\tETHTOOL_A_COALESCE_RX_USECS_LOW           = 0xe\n\tETHTOOL_A_COALESCE_RX_MAX_FRAMES_LOW      = 0xf\n\tETHTOOL_A_COALESCE_TX_USECS_LOW           = 0x10\n\tETHTOOL_A_COALESCE_TX_MAX_FRAMES_LOW      = 0x11\n\tETHTOOL_A_COALESCE_PKT_RATE_HIGH          = 0x12\n\tETHTOOL_A_COALESCE_RX_USECS_HIGH          = 0x13\n\tETHTOOL_A_COALESCE_RX_MAX_FRAMES_HIGH     = 0x14\n\tETHTOOL_A_COALESCE_TX_USECS_HIGH          = 0x15\n\tETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH     = 0x16\n\tETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL   = 0x17\n\tETHTOOL_A_COALESCE_USE_CQE_MODE_TX        = 0x18\n\tETHTOOL_A_COALESCE_USE_CQE_MODE_RX        = 0x19\n\tETHTOOL_A_COALESCE_MAX                    = 0x1e\n\tETHTOOL_A_PAUSE_UNSPEC                    = 0x0\n\tETHTOOL_A_PAUSE_HEADER                    = 0x1\n\tETHTOOL_A_PAUSE_AUTONEG                   = 0x2\n\tETHTOOL_A_PAUSE_RX                        = 0x3\n\tETHTOOL_A_PAUSE_TX                        = 0x4\n\tETHTOOL_A_PAUSE_STATS                     = 0x5\n\tETHTOOL_A_PAUSE_MAX                       = 0x6\n\tETHTOOL_A_PAUSE_STAT_UNSPEC               = 0x0\n\tETHTOOL_A_PAUSE_STAT_PAD                  = 0x1\n\tETHTOOL_A_PAUSE_STAT_TX_FRAMES            = 0x2\n\tETHTOOL_A_PAUSE_STAT_RX_FRAMES            = 0x3\n\tETHTOOL_A_PAUSE_STAT_MAX                  = 0x3\n\tETHTOOL_A_EEE_UNSPEC                      = 0x0\n\tETHTOOL_A_EEE_HEADER                      = 0x1\n\tETHTOOL_A_EEE_MODES_OURS                  = 0x2\n\tETHTOOL_A_EEE_MODES_PEER                  = 0x3\n\tETHTOOL_A_EEE_ACTIVE                      = 0x4\n\tETHTOOL_A_EEE_ENABLED                     = 0x5\n\tETHTOOL_A_EEE_TX_LPI_ENABLED              = 0x6\n\tETHTOOL_A_EEE_TX_LPI_TIMER                = 0x7\n\tETHTOOL_A_EEE_MAX                         = 0x7\n\tETHTOOL_A_TSINFO_UNSPEC                   = 0x0\n\tETHTOOL_A_TSINFO_HEADER                   = 0x1\n\tETHTOOL_A_TSINFO_TIMESTAMPING             = 0x2\n\tETHTOOL_A_TSINFO_TX_TYPES                 = 0x3\n\tETHTOOL_A_TSINFO_RX_FILTERS               = 0x4\n\tETHTOOL_A_TSINFO_PHC_INDEX                = 0x5\n\tETHTOOL_A_TSINFO_MAX                      = 0x6\n\tETHTOOL_A_CABLE_TEST_UNSPEC               = 0x0\n\tETHTOOL_A_CABLE_TEST_HEADER               = 0x1\n\tETHTOOL_A_CABLE_TEST_MAX                  = 0x1\n\tETHTOOL_A_CABLE_RESULT_CODE_UNSPEC        = 0x0\n\tETHTOOL_A_CABLE_RESULT_CODE_OK            = 0x1\n\tETHTOOL_A_CABLE_RESULT_CODE_OPEN          = 0x2\n\tETHTOOL_A_CABLE_RESULT_CODE_SAME_SHORT    = 0x3\n\tETHTOOL_A_CABLE_RESULT_CODE_CROSS_SHORT   = 0x4\n\tETHTOOL_A_CABLE_PAIR_A                    = 0x0\n\tETHTOOL_A_CABLE_PAIR_B                    = 0x1\n\tETHTOOL_A_CABLE_PAIR_C                    = 0x2\n\tETHTOOL_A_CABLE_PAIR_D                    = 0x3\n\tETHTOOL_A_CABLE_RESULT_UNSPEC             = 0x0\n\tETHTOOL_A_CABLE_RESULT_PAIR               = 0x1\n\tETHTOOL_A_CABLE_RESULT_CODE               = 0x2\n\tETHTOOL_A_CABLE_RESULT_MAX                = 0x3\n\tETHTOOL_A_CABLE_FAULT_LENGTH_UNSPEC       = 0x0\n\tETHTOOL_A_CABLE_FAULT_LENGTH_PAIR         = 0x1\n\tETHTOOL_A_CABLE_FAULT_LENGTH_CM           = 0x2\n\tETHTOOL_A_CABLE_FAULT_LENGTH_MAX          = 0x3\n\tETHTOOL_A_CABLE_TEST_NTF_STATUS_UNSPEC    = 0x0\n\tETHTOOL_A_CABLE_TEST_NTF_STATUS_STARTED   = 0x1\n\tETHTOOL_A_CABLE_TEST_NTF_STATUS_COMPLETED = 0x2\n\tETHTOOL_A_CABLE_NEST_UNSPEC               = 0x0\n\tETHTOOL_A_CABLE_NEST_RESULT               = 0x1\n\tETHTOOL_A_CABLE_NEST_FAULT_LENGTH         = 0x2\n\tETHTOOL_A_CABLE_NEST_MAX                  = 0x2\n\tETHTOOL_A_CABLE_TEST_NTF_UNSPEC           = 0x0\n\tETHTOOL_A_CABLE_TEST_NTF_HEADER           = 0x1\n\tETHTOOL_A_CABLE_TEST_NTF_STATUS           = 0x2\n\tETHTOOL_A_CABLE_TEST_NTF_NEST             = 0x3\n\tETHTOOL_A_CABLE_TEST_NTF_MAX              = 0x3\n\tETHTOOL_A_CABLE_TEST_TDR_CFG_UNSPEC       = 0x0\n\tETHTOOL_A_CABLE_TEST_TDR_CFG_FIRST        = 0x1\n\tETHTOOL_A_CABLE_TEST_TDR_CFG_LAST         = 0x2\n\tETHTOOL_A_CABLE_TEST_TDR_CFG_STEP         = 0x3\n\tETHTOOL_A_CABLE_TEST_TDR_CFG_PAIR         = 0x4\n\tETHTOOL_A_CABLE_TEST_TDR_CFG_MAX          = 0x4\n\tETHTOOL_A_CABLE_TEST_TDR_UNSPEC           = 0x0\n\tETHTOOL_A_CABLE_TEST_TDR_HEADER           = 0x1\n\tETHTOOL_A_CABLE_TEST_TDR_CFG              = 0x2\n\tETHTOOL_A_CABLE_TEST_TDR_MAX              = 0x2\n\tETHTOOL_A_CABLE_AMPLITUDE_UNSPEC          = 0x0\n\tETHTOOL_A_CABLE_AMPLITUDE_PAIR            = 0x1\n\tETHTOOL_A_CABLE_AMPLITUDE_mV              = 0x2\n\tETHTOOL_A_CABLE_AMPLITUDE_MAX             = 0x2\n\tETHTOOL_A_CABLE_PULSE_UNSPEC              = 0x0\n\tETHTOOL_A_CABLE_PULSE_mV                  = 0x1\n\tETHTOOL_A_CABLE_PULSE_MAX                 = 0x1\n\tETHTOOL_A_CABLE_STEP_UNSPEC               = 0x0\n\tETHTOOL_A_CABLE_STEP_FIRST_DISTANCE       = 0x1\n\tETHTOOL_A_CABLE_STEP_LAST_DISTANCE        = 0x2\n\tETHTOOL_A_CABLE_STEP_STEP_DISTANCE        = 0x3\n\tETHTOOL_A_CABLE_STEP_MAX                  = 0x3\n\tETHTOOL_A_CABLE_TDR_NEST_UNSPEC           = 0x0\n\tETHTOOL_A_CABLE_TDR_NEST_STEP             = 0x1\n\tETHTOOL_A_CABLE_TDR_NEST_AMPLITUDE        = 0x2\n\tETHTOOL_A_CABLE_TDR_NEST_PULSE            = 0x3\n\tETHTOOL_A_CABLE_TDR_NEST_MAX              = 0x3\n\tETHTOOL_A_CABLE_TEST_TDR_NTF_UNSPEC       = 0x0\n\tETHTOOL_A_CABLE_TEST_TDR_NTF_HEADER       = 0x1\n\tETHTOOL_A_CABLE_TEST_TDR_NTF_STATUS       = 0x2\n\tETHTOOL_A_CABLE_TEST_TDR_NTF_NEST         = 0x3\n\tETHTOOL_A_CABLE_TEST_TDR_NTF_MAX          = 0x3\n\tETHTOOL_UDP_TUNNEL_TYPE_VXLAN             = 0x0\n\tETHTOOL_UDP_TUNNEL_TYPE_GENEVE            = 0x1\n\tETHTOOL_UDP_TUNNEL_TYPE_VXLAN_GPE         = 0x2\n\tETHTOOL_A_TUNNEL_UDP_ENTRY_UNSPEC         = 0x0\n\tETHTOOL_A_TUNNEL_UDP_ENTRY_PORT           = 0x1\n\tETHTOOL_A_TUNNEL_UDP_ENTRY_TYPE           = 0x2\n\tETHTOOL_A_TUNNEL_UDP_ENTRY_MAX            = 0x2\n\tETHTOOL_A_TUNNEL_UDP_TABLE_UNSPEC         = 0x0\n\tETHTOOL_A_TUNNEL_UDP_TABLE_SIZE           = 0x1\n\tETHTOOL_A_TUNNEL_UDP_TABLE_TYPES          = 0x2\n\tETHTOOL_A_TUNNEL_UDP_TABLE_ENTRY          = 0x3\n\tETHTOOL_A_TUNNEL_UDP_TABLE_MAX            = 0x3\n\tETHTOOL_A_TUNNEL_UDP_UNSPEC               = 0x0\n\tETHTOOL_A_TUNNEL_UDP_TABLE                = 0x1\n\tETHTOOL_A_TUNNEL_UDP_MAX                  = 0x1\n\tETHTOOL_A_TUNNEL_INFO_UNSPEC              = 0x0\n\tETHTOOL_A_TUNNEL_INFO_HEADER              = 0x1\n\tETHTOOL_A_TUNNEL_INFO_UDP_PORTS           = 0x2\n\tETHTOOL_A_TUNNEL_INFO_MAX                 = 0x2\n)\n\nconst SPEED_UNKNOWN = -0x1\n\ntype EthtoolDrvinfo struct {\n\tCmd          uint32\n\tDriver       [32]byte\n\tVersion      [32]byte\n\tFw_version   [32]byte\n\tBus_info     [32]byte\n\tErom_version [32]byte\n\tReserved2    [12]byte\n\tN_priv_flags uint32\n\tN_stats      uint32\n\tTestinfo_len uint32\n\tEedump_len   uint32\n\tRegdump_len  uint32\n}\n\ntype EthtoolTsInfo struct {\n\tCmd             uint32\n\tSo_timestamping uint32\n\tPhc_index       int32\n\tTx_types        uint32\n\tTx_reserved     [3]uint32\n\tRx_filters      uint32\n\tRx_reserved     [3]uint32\n}\n\ntype HwTstampConfig struct {\n\tFlags     int32\n\tTx_type   int32\n\tRx_filter int32\n}\n\nconst (\n\tHWTSTAMP_FILTER_NONE            = 0x0\n\tHWTSTAMP_FILTER_ALL             = 0x1\n\tHWTSTAMP_FILTER_SOME            = 0x2\n\tHWTSTAMP_FILTER_PTP_V1_L4_EVENT = 0x3\n\tHWTSTAMP_FILTER_PTP_V2_L4_EVENT = 0x6\n\tHWTSTAMP_FILTER_PTP_V2_L2_EVENT = 0x9\n\tHWTSTAMP_FILTER_PTP_V2_EVENT    = 0xc\n)\n\nconst (\n\tHWTSTAMP_TX_OFF          = 0x0\n\tHWTSTAMP_TX_ON           = 0x1\n\tHWTSTAMP_TX_ONESTEP_SYNC = 0x2\n)\n\ntype (\n\tPtpClockCaps struct {\n\t\tMax_adj            int32\n\t\tN_alarm            int32\n\t\tN_ext_ts           int32\n\t\tN_per_out          int32\n\t\tPps                int32\n\t\tN_pins             int32\n\t\tCross_timestamping int32\n\t\tAdjust_phase       int32\n\t\tMax_phase_adj      int32\n\t\tRsv                [11]int32\n\t}\n\tPtpClockTime struct {\n\t\tSec      int64\n\t\tNsec     uint32\n\t\tReserved uint32\n\t}\n\tPtpExttsEvent struct {\n\t\tT     PtpClockTime\n\t\tIndex uint32\n\t\tFlags uint32\n\t\tRsv   [2]uint32\n\t}\n\tPtpExttsRequest struct {\n\t\tIndex uint32\n\t\tFlags uint32\n\t\tRsv   [2]uint32\n\t}\n\tPtpPeroutRequest struct {\n\t\tStartOrPhase PtpClockTime\n\t\tPeriod       PtpClockTime\n\t\tIndex        uint32\n\t\tFlags        uint32\n\t\tOn           PtpClockTime\n\t}\n\tPtpPinDesc struct {\n\t\tName  [64]byte\n\t\tIndex uint32\n\t\tFunc  uint32\n\t\tChan  uint32\n\t\tRsv   [5]uint32\n\t}\n\tPtpSysOffset struct {\n\t\tSamples uint32\n\t\tRsv     [3]uint32\n\t\tTs      [51]PtpClockTime\n\t}\n\tPtpSysOffsetExtended struct {\n\t\tSamples uint32\n\t\tClockid int32\n\t\tRsv     [2]uint32\n\t\tTs      [25][3]PtpClockTime\n\t}\n\tPtpSysOffsetPrecise struct {\n\t\tDevice   PtpClockTime\n\t\tRealtime PtpClockTime\n\t\tMonoraw  PtpClockTime\n\t\tRsv      [4]uint32\n\t}\n)\n\nconst (\n\tPTP_PF_NONE    = 0x0\n\tPTP_PF_EXTTS   = 0x1\n\tPTP_PF_PEROUT  = 0x2\n\tPTP_PF_PHYSYNC = 0x3\n)\n\ntype (\n\tHIDRawReportDescriptor struct {\n\t\tSize  uint32\n\t\tValue [4096]uint8\n\t}\n\tHIDRawDevInfo struct {\n\t\tBustype uint32\n\t\tVendor  int16\n\t\tProduct int16\n\t}\n)\n\nconst (\n\tCLOSE_RANGE_UNSHARE = 0x2\n\tCLOSE_RANGE_CLOEXEC = 0x4\n)\n\nconst (\n\tNLMSGERR_ATTR_MSG    = 0x1\n\tNLMSGERR_ATTR_OFFS   = 0x2\n\tNLMSGERR_ATTR_COOKIE = 0x3\n)\n\ntype (\n\tEraseInfo struct {\n\t\tStart  uint32\n\t\tLength uint32\n\t}\n\tEraseInfo64 struct {\n\t\tStart  uint64\n\t\tLength uint64\n\t}\n\tMtdOobBuf struct {\n\t\tStart  uint32\n\t\tLength uint32\n\t\tPtr    *uint8\n\t}\n\tMtdOobBuf64 struct {\n\t\tStart  uint64\n\t\tPad    uint32\n\t\tLength uint32\n\t\tPtr    uint64\n\t}\n\tMtdWriteReq struct {\n\t\tStart  uint64\n\t\tLen    uint64\n\t\tOoblen uint64\n\t\tData   uint64\n\t\tOob    uint64\n\t\tMode   uint8\n\t\t_      [7]uint8\n\t}\n\tMtdInfo struct {\n\t\tType      uint8\n\t\tFlags     uint32\n\t\tSize      uint32\n\t\tErasesize uint32\n\t\tWritesize uint32\n\t\tOobsize   uint32\n\t\t_         uint64\n\t}\n\tRegionInfo struct {\n\t\tOffset      uint32\n\t\tErasesize   uint32\n\t\tNumblocks   uint32\n\t\tRegionindex uint32\n\t}\n\tOtpInfo struct {\n\t\tStart  uint32\n\t\tLength uint32\n\t\tLocked uint32\n\t}\n\tNandOobinfo struct {\n\t\tUseecc   uint32\n\t\tEccbytes uint32\n\t\tOobfree  [8][2]uint32\n\t\tEccpos   [32]uint32\n\t}\n\tNandOobfree struct {\n\t\tOffset uint32\n\t\tLength uint32\n\t}\n\tNandEcclayout struct {\n\t\tEccbytes uint32\n\t\tEccpos   [64]uint32\n\t\tOobavail uint32\n\t\tOobfree  [8]NandOobfree\n\t}\n\tMtdEccStats struct {\n\t\tCorrected uint32\n\t\tFailed    uint32\n\t\tBadblocks uint32\n\t\tBbtblocks uint32\n\t}\n)\n\nconst (\n\tMTD_OPS_PLACE_OOB = 0x0\n\tMTD_OPS_AUTO_OOB  = 0x1\n\tMTD_OPS_RAW       = 0x2\n)\n\nconst (\n\tMTD_FILE_MODE_NORMAL      = 0x0\n\tMTD_FILE_MODE_OTP_FACTORY = 0x1\n\tMTD_FILE_MODE_OTP_USER    = 0x2\n\tMTD_FILE_MODE_RAW         = 0x3\n)\n\nconst (\n\tNFC_CMD_UNSPEC                    = 0x0\n\tNFC_CMD_GET_DEVICE                = 0x1\n\tNFC_CMD_DEV_UP                    = 0x2\n\tNFC_CMD_DEV_DOWN                  = 0x3\n\tNFC_CMD_DEP_LINK_UP               = 0x4\n\tNFC_CMD_DEP_LINK_DOWN             = 0x5\n\tNFC_CMD_START_POLL                = 0x6\n\tNFC_CMD_STOP_POLL                 = 0x7\n\tNFC_CMD_GET_TARGET                = 0x8\n\tNFC_EVENT_TARGETS_FOUND           = 0x9\n\tNFC_EVENT_DEVICE_ADDED            = 0xa\n\tNFC_EVENT_DEVICE_REMOVED          = 0xb\n\tNFC_EVENT_TARGET_LOST             = 0xc\n\tNFC_EVENT_TM_ACTIVATED            = 0xd\n\tNFC_EVENT_TM_DEACTIVATED          = 0xe\n\tNFC_CMD_LLC_GET_PARAMS            = 0xf\n\tNFC_CMD_LLC_SET_PARAMS            = 0x10\n\tNFC_CMD_ENABLE_SE                 = 0x11\n\tNFC_CMD_DISABLE_SE                = 0x12\n\tNFC_CMD_LLC_SDREQ                 = 0x13\n\tNFC_EVENT_LLC_SDRES               = 0x14\n\tNFC_CMD_FW_DOWNLOAD               = 0x15\n\tNFC_EVENT_SE_ADDED                = 0x16\n\tNFC_EVENT_SE_REMOVED              = 0x17\n\tNFC_EVENT_SE_CONNECTIVITY         = 0x18\n\tNFC_EVENT_SE_TRANSACTION          = 0x19\n\tNFC_CMD_GET_SE                    = 0x1a\n\tNFC_CMD_SE_IO                     = 0x1b\n\tNFC_CMD_ACTIVATE_TARGET           = 0x1c\n\tNFC_CMD_VENDOR                    = 0x1d\n\tNFC_CMD_DEACTIVATE_TARGET         = 0x1e\n\tNFC_ATTR_UNSPEC                   = 0x0\n\tNFC_ATTR_DEVICE_INDEX             = 0x1\n\tNFC_ATTR_DEVICE_NAME              = 0x2\n\tNFC_ATTR_PROTOCOLS                = 0x3\n\tNFC_ATTR_TARGET_INDEX             = 0x4\n\tNFC_ATTR_TARGET_SENS_RES          = 0x5\n\tNFC_ATTR_TARGET_SEL_RES           = 0x6\n\tNFC_ATTR_TARGET_NFCID1            = 0x7\n\tNFC_ATTR_TARGET_SENSB_RES         = 0x8\n\tNFC_ATTR_TARGET_SENSF_RES         = 0x9\n\tNFC_ATTR_COMM_MODE                = 0xa\n\tNFC_ATTR_RF_MODE                  = 0xb\n\tNFC_ATTR_DEVICE_POWERED           = 0xc\n\tNFC_ATTR_IM_PROTOCOLS             = 0xd\n\tNFC_ATTR_TM_PROTOCOLS             = 0xe\n\tNFC_ATTR_LLC_PARAM_LTO            = 0xf\n\tNFC_ATTR_LLC_PARAM_RW             = 0x10\n\tNFC_ATTR_LLC_PARAM_MIUX           = 0x11\n\tNFC_ATTR_SE                       = 0x12\n\tNFC_ATTR_LLC_SDP                  = 0x13\n\tNFC_ATTR_FIRMWARE_NAME            = 0x14\n\tNFC_ATTR_SE_INDEX                 = 0x15\n\tNFC_ATTR_SE_TYPE                  = 0x16\n\tNFC_ATTR_SE_AID                   = 0x17\n\tNFC_ATTR_FIRMWARE_DOWNLOAD_STATUS = 0x18\n\tNFC_ATTR_SE_APDU                  = 0x19\n\tNFC_ATTR_TARGET_ISO15693_DSFID    = 0x1a\n\tNFC_ATTR_TARGET_ISO15693_UID      = 0x1b\n\tNFC_ATTR_SE_PARAMS                = 0x1c\n\tNFC_ATTR_VENDOR_ID                = 0x1d\n\tNFC_ATTR_VENDOR_SUBCMD            = 0x1e\n\tNFC_ATTR_VENDOR_DATA              = 0x1f\n\tNFC_SDP_ATTR_UNSPEC               = 0x0\n\tNFC_SDP_ATTR_URI                  = 0x1\n\tNFC_SDP_ATTR_SAP                  = 0x2\n)\n\ntype LandlockRulesetAttr struct {\n\tAccess_fs  uint64\n\tAccess_net uint64\n\tScoped     uint64\n}\n\ntype LandlockPathBeneathAttr struct {\n\tAllowed_access uint64\n\tParent_fd      int32\n}\n\nconst (\n\tLANDLOCK_RULE_PATH_BENEATH = 0x1\n)\n\nconst (\n\tIPC_CREAT   = 0x200\n\tIPC_EXCL    = 0x400\n\tIPC_NOWAIT  = 0x800\n\tIPC_PRIVATE = 0x0\n\n\tipc_64 = 0x100\n)\n\nconst (\n\tIPC_RMID = 0x0\n\tIPC_SET  = 0x1\n\tIPC_STAT = 0x2\n)\n\nconst (\n\tSHM_RDONLY = 0x1000\n\tSHM_RND    = 0x2000\n)\n\ntype MountAttr struct {\n\tAttr_set    uint64\n\tAttr_clr    uint64\n\tPropagation uint64\n\tUserns_fd   uint64\n}\n\nconst (\n\tWG_CMD_GET_DEVICE                      = 0x0\n\tWG_CMD_SET_DEVICE                      = 0x1\n\tWGDEVICE_F_REPLACE_PEERS               = 0x1\n\tWGDEVICE_A_UNSPEC                      = 0x0\n\tWGDEVICE_A_IFINDEX                     = 0x1\n\tWGDEVICE_A_IFNAME                      = 0x2\n\tWGDEVICE_A_PRIVATE_KEY                 = 0x3\n\tWGDEVICE_A_PUBLIC_KEY                  = 0x4\n\tWGDEVICE_A_FLAGS                       = 0x5\n\tWGDEVICE_A_LISTEN_PORT                 = 0x6\n\tWGDEVICE_A_FWMARK                      = 0x7\n\tWGDEVICE_A_PEERS                       = 0x8\n\tWGPEER_F_REMOVE_ME                     = 0x1\n\tWGPEER_F_REPLACE_ALLOWEDIPS            = 0x2\n\tWGPEER_F_UPDATE_ONLY                   = 0x4\n\tWGPEER_A_UNSPEC                        = 0x0\n\tWGPEER_A_PUBLIC_KEY                    = 0x1\n\tWGPEER_A_PRESHARED_KEY                 = 0x2\n\tWGPEER_A_FLAGS                         = 0x3\n\tWGPEER_A_ENDPOINT                      = 0x4\n\tWGPEER_A_PERSISTENT_KEEPALIVE_INTERVAL = 0x5\n\tWGPEER_A_LAST_HANDSHAKE_TIME           = 0x6\n\tWGPEER_A_RX_BYTES                      = 0x7\n\tWGPEER_A_TX_BYTES                      = 0x8\n\tWGPEER_A_ALLOWEDIPS                    = 0x9\n\tWGPEER_A_PROTOCOL_VERSION              = 0xa\n\tWGALLOWEDIP_A_UNSPEC                   = 0x0\n\tWGALLOWEDIP_A_FAMILY                   = 0x1\n\tWGALLOWEDIP_A_IPADDR                   = 0x2\n\tWGALLOWEDIP_A_CIDR_MASK                = 0x3\n)\n\nconst (\n\tNL_ATTR_TYPE_INVALID      = 0x0\n\tNL_ATTR_TYPE_FLAG         = 0x1\n\tNL_ATTR_TYPE_U8           = 0x2\n\tNL_ATTR_TYPE_U16          = 0x3\n\tNL_ATTR_TYPE_U32          = 0x4\n\tNL_ATTR_TYPE_U64          = 0x5\n\tNL_ATTR_TYPE_S8           = 0x6\n\tNL_ATTR_TYPE_S16          = 0x7\n\tNL_ATTR_TYPE_S32          = 0x8\n\tNL_ATTR_TYPE_S64          = 0x9\n\tNL_ATTR_TYPE_BINARY       = 0xa\n\tNL_ATTR_TYPE_STRING       = 0xb\n\tNL_ATTR_TYPE_NUL_STRING   = 0xc\n\tNL_ATTR_TYPE_NESTED       = 0xd\n\tNL_ATTR_TYPE_NESTED_ARRAY = 0xe\n\tNL_ATTR_TYPE_BITFIELD32   = 0xf\n\n\tNL_POLICY_TYPE_ATTR_UNSPEC          = 0x0\n\tNL_POLICY_TYPE_ATTR_TYPE            = 0x1\n\tNL_POLICY_TYPE_ATTR_MIN_VALUE_S     = 0x2\n\tNL_POLICY_TYPE_ATTR_MAX_VALUE_S     = 0x3\n\tNL_POLICY_TYPE_ATTR_MIN_VALUE_U     = 0x4\n\tNL_POLICY_TYPE_ATTR_MAX_VALUE_U     = 0x5\n\tNL_POLICY_TYPE_ATTR_MIN_LENGTH      = 0x6\n\tNL_POLICY_TYPE_ATTR_MAX_LENGTH      = 0x7\n\tNL_POLICY_TYPE_ATTR_POLICY_IDX      = 0x8\n\tNL_POLICY_TYPE_ATTR_POLICY_MAXTYPE  = 0x9\n\tNL_POLICY_TYPE_ATTR_BITFIELD32_MASK = 0xa\n\tNL_POLICY_TYPE_ATTR_PAD             = 0xb\n\tNL_POLICY_TYPE_ATTR_MASK            = 0xc\n\tNL_POLICY_TYPE_ATTR_MAX             = 0xc\n)\n\ntype CANBitTiming struct {\n\tBitrate      uint32\n\tSample_point uint32\n\tTq           uint32\n\tProp_seg     uint32\n\tPhase_seg1   uint32\n\tPhase_seg2   uint32\n\tSjw          uint32\n\tBrp          uint32\n}\n\ntype CANBitTimingConst struct {\n\tName      [16]uint8\n\tTseg1_min uint32\n\tTseg1_max uint32\n\tTseg2_min uint32\n\tTseg2_max uint32\n\tSjw_max   uint32\n\tBrp_min   uint32\n\tBrp_max   uint32\n\tBrp_inc   uint32\n}\n\ntype CANClock struct {\n\tFreq uint32\n}\n\ntype CANBusErrorCounters struct {\n\tTxerr uint16\n\tRxerr uint16\n}\n\ntype CANCtrlMode struct {\n\tMask  uint32\n\tFlags uint32\n}\n\ntype CANDeviceStats struct {\n\tBus_error        uint32\n\tError_warning    uint32\n\tError_passive    uint32\n\tBus_off          uint32\n\tArbitration_lost uint32\n\tRestarts         uint32\n}\n\nconst (\n\tCAN_STATE_ERROR_ACTIVE  = 0x0\n\tCAN_STATE_ERROR_WARNING = 0x1\n\tCAN_STATE_ERROR_PASSIVE = 0x2\n\tCAN_STATE_BUS_OFF       = 0x3\n\tCAN_STATE_STOPPED       = 0x4\n\tCAN_STATE_SLEEPING      = 0x5\n\tCAN_STATE_MAX           = 0x6\n)\n\nconst (\n\tIFLA_CAN_UNSPEC               = 0x0\n\tIFLA_CAN_BITTIMING            = 0x1\n\tIFLA_CAN_BITTIMING_CONST      = 0x2\n\tIFLA_CAN_CLOCK                = 0x3\n\tIFLA_CAN_STATE                = 0x4\n\tIFLA_CAN_CTRLMODE             = 0x5\n\tIFLA_CAN_RESTART_MS           = 0x6\n\tIFLA_CAN_RESTART              = 0x7\n\tIFLA_CAN_BERR_COUNTER         = 0x8\n\tIFLA_CAN_DATA_BITTIMING       = 0x9\n\tIFLA_CAN_DATA_BITTIMING_CONST = 0xa\n\tIFLA_CAN_TERMINATION          = 0xb\n\tIFLA_CAN_TERMINATION_CONST    = 0xc\n\tIFLA_CAN_BITRATE_CONST        = 0xd\n\tIFLA_CAN_DATA_BITRATE_CONST   = 0xe\n\tIFLA_CAN_BITRATE_MAX          = 0xf\n)\n\ntype KCMAttach struct {\n\tFd     int32\n\tBpf_fd int32\n}\n\ntype KCMUnattach struct {\n\tFd int32\n}\n\ntype KCMClone struct {\n\tFd int32\n}\n\nconst (\n\tNL80211_AC_BE                                           = 0x2\n\tNL80211_AC_BK                                           = 0x3\n\tNL80211_ACL_POLICY_ACCEPT_UNLESS_LISTED                 = 0x0\n\tNL80211_ACL_POLICY_DENY_UNLESS_LISTED                   = 0x1\n\tNL80211_AC_VI                                           = 0x1\n\tNL80211_AC_VO                                           = 0x0\n\tNL80211_AP_SETTINGS_EXTERNAL_AUTH_SUPPORT               = 0x1\n\tNL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT            = 0x2\n\tNL80211_AP_SME_SA_QUERY_OFFLOAD                         = 0x1\n\tNL80211_ATTR_4ADDR                                      = 0x53\n\tNL80211_ATTR_ACK                                        = 0x5c\n\tNL80211_ATTR_ACK_SIGNAL                                 = 0x107\n\tNL80211_ATTR_ACL_POLICY                                 = 0xa5\n\tNL80211_ATTR_ADMITTED_TIME                              = 0xd4\n\tNL80211_ATTR_AIRTIME_WEIGHT                             = 0x112\n\tNL80211_ATTR_AKM_SUITES                                 = 0x4c\n\tNL80211_ATTR_AP_ISOLATE                                 = 0x60\n\tNL80211_ATTR_AP_SETTINGS_FLAGS                          = 0x135\n\tNL80211_ATTR_AUTH_DATA                                  = 0x9c\n\tNL80211_ATTR_AUTH_TYPE                                  = 0x35\n\tNL80211_ATTR_BANDS                                      = 0xef\n\tNL80211_ATTR_BEACON_HEAD                                = 0xe\n\tNL80211_ATTR_BEACON_INTERVAL                            = 0xc\n\tNL80211_ATTR_BEACON_TAIL                                = 0xf\n\tNL80211_ATTR_BG_SCAN_PERIOD                             = 0x98\n\tNL80211_ATTR_BSS_BASIC_RATES                            = 0x24\n\tNL80211_ATTR_BSS                                        = 0x2f\n\tNL80211_ATTR_BSS_CTS_PROT                               = 0x1c\n\tNL80211_ATTR_BSS_HT_OPMODE                              = 0x6d\n\tNL80211_ATTR_BSSID                                      = 0xf5\n\tNL80211_ATTR_BSS_SELECT                                 = 0xe3\n\tNL80211_ATTR_BSS_SHORT_PREAMBLE                         = 0x1d\n\tNL80211_ATTR_BSS_SHORT_SLOT_TIME                        = 0x1e\n\tNL80211_ATTR_CENTER_FREQ1                               = 0xa0\n\tNL80211_ATTR_CENTER_FREQ1_OFFSET                        = 0x123\n\tNL80211_ATTR_CENTER_FREQ2                               = 0xa1\n\tNL80211_ATTR_CHANNEL_WIDTH                              = 0x9f\n\tNL80211_ATTR_CH_SWITCH_BLOCK_TX                         = 0xb8\n\tNL80211_ATTR_CH_SWITCH_COUNT                            = 0xb7\n\tNL80211_ATTR_CIPHER_SUITE_GROUP                         = 0x4a\n\tNL80211_ATTR_CIPHER_SUITES                              = 0x39\n\tNL80211_ATTR_CIPHER_SUITES_PAIRWISE                     = 0x49\n\tNL80211_ATTR_CNTDWN_OFFS_BEACON                         = 0xba\n\tNL80211_ATTR_CNTDWN_OFFS_PRESP                          = 0xbb\n\tNL80211_ATTR_COALESCE_RULE                              = 0xb6\n\tNL80211_ATTR_COALESCE_RULE_CONDITION                    = 0x2\n\tNL80211_ATTR_COALESCE_RULE_DELAY                        = 0x1\n\tNL80211_ATTR_COALESCE_RULE_MAX                          = 0x3\n\tNL80211_ATTR_COALESCE_RULE_PKT_PATTERN                  = 0x3\n\tNL80211_ATTR_COLOR_CHANGE_COLOR                         = 0x130\n\tNL80211_ATTR_COLOR_CHANGE_COUNT                         = 0x12f\n\tNL80211_ATTR_COLOR_CHANGE_ELEMS                         = 0x131\n\tNL80211_ATTR_CONN_FAILED_REASON                         = 0x9b\n\tNL80211_ATTR_CONTROL_PORT                               = 0x44\n\tNL80211_ATTR_CONTROL_PORT_ETHERTYPE                     = 0x66\n\tNL80211_ATTR_CONTROL_PORT_NO_ENCRYPT                    = 0x67\n\tNL80211_ATTR_CONTROL_PORT_NO_PREAUTH                    = 0x11e\n\tNL80211_ATTR_CONTROL_PORT_OVER_NL80211                  = 0x108\n\tNL80211_ATTR_COOKIE                                     = 0x58\n\tNL80211_ATTR_CQM_BEACON_LOSS_EVENT                      = 0x8\n\tNL80211_ATTR_CQM                                        = 0x5e\n\tNL80211_ATTR_CQM_MAX                                    = 0x9\n\tNL80211_ATTR_CQM_PKT_LOSS_EVENT                         = 0x4\n\tNL80211_ATTR_CQM_RSSI_HYST                              = 0x2\n\tNL80211_ATTR_CQM_RSSI_LEVEL                             = 0x9\n\tNL80211_ATTR_CQM_RSSI_THOLD                             = 0x1\n\tNL80211_ATTR_CQM_RSSI_THRESHOLD_EVENT                   = 0x3\n\tNL80211_ATTR_CQM_TXE_INTVL                              = 0x7\n\tNL80211_ATTR_CQM_TXE_PKTS                               = 0x6\n\tNL80211_ATTR_CQM_TXE_RATE                               = 0x5\n\tNL80211_ATTR_CRIT_PROT_ID                               = 0xb3\n\tNL80211_ATTR_CSA_C_OFF_BEACON                           = 0xba\n\tNL80211_ATTR_CSA_C_OFF_PRESP                            = 0xbb\n\tNL80211_ATTR_CSA_C_OFFSETS_TX                           = 0xcd\n\tNL80211_ATTR_CSA_IES                                    = 0xb9\n\tNL80211_ATTR_DEVICE_AP_SME                              = 0x8d\n\tNL80211_ATTR_DFS_CAC_TIME                               = 0x7\n\tNL80211_ATTR_DFS_REGION                                 = 0x92\n\tNL80211_ATTR_DISABLE_EHT                                = 0x137\n\tNL80211_ATTR_DISABLE_HE                                 = 0x12d\n\tNL80211_ATTR_DISABLE_HT                                 = 0x93\n\tNL80211_ATTR_DISABLE_VHT                                = 0xaf\n\tNL80211_ATTR_DISCONNECTED_BY_AP                         = 0x47\n\tNL80211_ATTR_DONT_WAIT_FOR_ACK                          = 0x8e\n\tNL80211_ATTR_DTIM_PERIOD                                = 0xd\n\tNL80211_ATTR_DURATION                                   = 0x57\n\tNL80211_ATTR_EHT_CAPABILITY                             = 0x136\n\tNL80211_ATTR_EML_CAPABILITY                             = 0x13d\n\tNL80211_ATTR_EXT_CAPA                                   = 0xa9\n\tNL80211_ATTR_EXT_CAPA_MASK                              = 0xaa\n\tNL80211_ATTR_EXTERNAL_AUTH_ACTION                       = 0x104\n\tNL80211_ATTR_EXTERNAL_AUTH_SUPPORT                      = 0x105\n\tNL80211_ATTR_EXT_FEATURES                               = 0xd9\n\tNL80211_ATTR_FEATURE_FLAGS                              = 0x8f\n\tNL80211_ATTR_FILS_CACHE_ID                              = 0xfd\n\tNL80211_ATTR_FILS_DISCOVERY                             = 0x126\n\tNL80211_ATTR_FILS_ERP_NEXT_SEQ_NUM                      = 0xfb\n\tNL80211_ATTR_FILS_ERP_REALM                             = 0xfa\n\tNL80211_ATTR_FILS_ERP_RRK                               = 0xfc\n\tNL80211_ATTR_FILS_ERP_USERNAME                          = 0xf9\n\tNL80211_ATTR_FILS_KEK                                   = 0xf2\n\tNL80211_ATTR_FILS_NONCES                                = 0xf3\n\tNL80211_ATTR_FRAME                                      = 0x33\n\tNL80211_ATTR_FRAME_MATCH                                = 0x5b\n\tNL80211_ATTR_FRAME_TYPE                                 = 0x65\n\tNL80211_ATTR_FREQ_AFTER                                 = 0x3b\n\tNL80211_ATTR_FREQ_BEFORE                                = 0x3a\n\tNL80211_ATTR_FREQ_FIXED                                 = 0x3c\n\tNL80211_ATTR_FREQ_RANGE_END                             = 0x3\n\tNL80211_ATTR_FREQ_RANGE_MAX_BW                          = 0x4\n\tNL80211_ATTR_FREQ_RANGE_START                           = 0x2\n\tNL80211_ATTR_FTM_RESPONDER                              = 0x10e\n\tNL80211_ATTR_FTM_RESPONDER_STATS                        = 0x10f\n\tNL80211_ATTR_GENERATION                                 = 0x2e\n\tNL80211_ATTR_HANDLE_DFS                                 = 0xbf\n\tNL80211_ATTR_HE_6GHZ_CAPABILITY                         = 0x125\n\tNL80211_ATTR_HE_BSS_COLOR                               = 0x11b\n\tNL80211_ATTR_HE_CAPABILITY                              = 0x10d\n\tNL80211_ATTR_HE_OBSS_PD                                 = 0x117\n\tNL80211_ATTR_HIDDEN_SSID                                = 0x7e\n\tNL80211_ATTR_HT_CAPABILITY                              = 0x1f\n\tNL80211_ATTR_HT_CAPABILITY_MASK                         = 0x94\n\tNL80211_ATTR_IE_ASSOC_RESP                              = 0x80\n\tNL80211_ATTR_IE                                         = 0x2a\n\tNL80211_ATTR_IE_PROBE_RESP                              = 0x7f\n\tNL80211_ATTR_IE_RIC                                     = 0xb2\n\tNL80211_ATTR_IFACE_SOCKET_OWNER                         = 0xcc\n\tNL80211_ATTR_IFINDEX                                    = 0x3\n\tNL80211_ATTR_IFNAME                                     = 0x4\n\tNL80211_ATTR_IFTYPE_AKM_SUITES                          = 0x11c\n\tNL80211_ATTR_IFTYPE                                     = 0x5\n\tNL80211_ATTR_IFTYPE_EXT_CAPA                            = 0xe6\n\tNL80211_ATTR_INACTIVITY_TIMEOUT                         = 0x96\n\tNL80211_ATTR_INTERFACE_COMBINATIONS                     = 0x78\n\tNL80211_ATTR_KEY_CIPHER                                 = 0x9\n\tNL80211_ATTR_KEY                                        = 0x50\n\tNL80211_ATTR_KEY_DATA                                   = 0x7\n\tNL80211_ATTR_KEY_DEFAULT                                = 0xb\n\tNL80211_ATTR_KEY_DEFAULT_MGMT                           = 0x28\n\tNL80211_ATTR_KEY_DEFAULT_TYPES                          = 0x6e\n\tNL80211_ATTR_KEY_IDX                                    = 0x8\n\tNL80211_ATTR_KEYS                                       = 0x51\n\tNL80211_ATTR_KEY_SEQ                                    = 0xa\n\tNL80211_ATTR_KEY_TYPE                                   = 0x37\n\tNL80211_ATTR_LOCAL_MESH_POWER_MODE                      = 0xa4\n\tNL80211_ATTR_LOCAL_STATE_CHANGE                         = 0x5f\n\tNL80211_ATTR_MAC_ACL_MAX                                = 0xa7\n\tNL80211_ATTR_MAC_ADDRS                                  = 0xa6\n\tNL80211_ATTR_MAC                                        = 0x6\n\tNL80211_ATTR_MAC_HINT                                   = 0xc8\n\tNL80211_ATTR_MAC_MASK                                   = 0xd7\n\tNL80211_ATTR_MAX_AP_ASSOC_STA                           = 0xca\n\tNL80211_ATTR_MAX                                        = 0x14d\n\tNL80211_ATTR_MAX_CRIT_PROT_DURATION                     = 0xb4\n\tNL80211_ATTR_MAX_CSA_COUNTERS                           = 0xce\n\tNL80211_ATTR_MAX_MATCH_SETS                             = 0x85\n\tNL80211_ATTR_MAX_NUM_AKM_SUITES                         = 0x13c\n\tNL80211_ATTR_MAX_NUM_PMKIDS                             = 0x56\n\tNL80211_ATTR_MAX_NUM_SCAN_SSIDS                         = 0x2b\n\tNL80211_ATTR_MAX_NUM_SCHED_SCAN_PLANS                   = 0xde\n\tNL80211_ATTR_MAX_NUM_SCHED_SCAN_SSIDS                   = 0x7b\n\tNL80211_ATTR_MAX_REMAIN_ON_CHANNEL_DURATION             = 0x6f\n\tNL80211_ATTR_MAX_SCAN_IE_LEN                            = 0x38\n\tNL80211_ATTR_MAX_SCAN_PLAN_INTERVAL                     = 0xdf\n\tNL80211_ATTR_MAX_SCAN_PLAN_ITERATIONS                   = 0xe0\n\tNL80211_ATTR_MAX_SCHED_SCAN_IE_LEN                      = 0x7c\n\tNL80211_ATTR_MBSSID_CONFIG                              = 0x132\n\tNL80211_ATTR_MBSSID_ELEMS                               = 0x133\n\tNL80211_ATTR_MCAST_RATE                                 = 0x6b\n\tNL80211_ATTR_MDID                                       = 0xb1\n\tNL80211_ATTR_MEASUREMENT_DURATION                       = 0xeb\n\tNL80211_ATTR_MEASUREMENT_DURATION_MANDATORY             = 0xec\n\tNL80211_ATTR_MESH_CONFIG                                = 0x23\n\tNL80211_ATTR_MESH_ID                                    = 0x18\n\tNL80211_ATTR_MESH_PEER_AID                              = 0xed\n\tNL80211_ATTR_MESH_SETUP                                 = 0x70\n\tNL80211_ATTR_MGMT_SUBTYPE                               = 0x29\n\tNL80211_ATTR_MLD_ADDR                                   = 0x13a\n\tNL80211_ATTR_MLD_CAPA_AND_OPS                           = 0x13e\n\tNL80211_ATTR_MLO_LINK_ID                                = 0x139\n\tNL80211_ATTR_MLO_LINKS                                  = 0x138\n\tNL80211_ATTR_MLO_SUPPORT                                = 0x13b\n\tNL80211_ATTR_MNTR_FLAGS                                 = 0x17\n\tNL80211_ATTR_MPATH_INFO                                 = 0x1b\n\tNL80211_ATTR_MPATH_NEXT_HOP                             = 0x1a\n\tNL80211_ATTR_MULTICAST_TO_UNICAST_ENABLED               = 0xf4\n\tNL80211_ATTR_MU_MIMO_FOLLOW_MAC_ADDR                    = 0xe8\n\tNL80211_ATTR_MU_MIMO_GROUP_DATA                         = 0xe7\n\tNL80211_ATTR_NAN_FUNC                                   = 0xf0\n\tNL80211_ATTR_NAN_MASTER_PREF                            = 0xee\n\tNL80211_ATTR_NAN_MATCH                                  = 0xf1\n\tNL80211_ATTR_NETNS_FD                                   = 0xdb\n\tNL80211_ATTR_NOACK_MAP                                  = 0x95\n\tNL80211_ATTR_NSS                                        = 0x106\n\tNL80211_ATTR_OBSS_COLOR_BITMAP                          = 0x12e\n\tNL80211_ATTR_OFFCHANNEL_TX_OK                           = 0x6c\n\tNL80211_ATTR_OPER_CLASS                                 = 0xd6\n\tNL80211_ATTR_OPMODE_NOTIF                               = 0xc2\n\tNL80211_ATTR_P2P_CTWINDOW                               = 0xa2\n\tNL80211_ATTR_P2P_OPPPS                                  = 0xa3\n\tNL80211_ATTR_PAD                                        = 0xe5\n\tNL80211_ATTR_PBSS                                       = 0xe2\n\tNL80211_ATTR_PEER_AID                                   = 0xb5\n\tNL80211_ATTR_PEER_MEASUREMENTS                          = 0x111\n\tNL80211_ATTR_PID                                        = 0x52\n\tNL80211_ATTR_PMK                                        = 0xfe\n\tNL80211_ATTR_PMKID                                      = 0x55\n\tNL80211_ATTR_PMK_LIFETIME                               = 0x11f\n\tNL80211_ATTR_PMKR0_NAME                                 = 0x102\n\tNL80211_ATTR_PMK_REAUTH_THRESHOLD                       = 0x120\n\tNL80211_ATTR_PMKSA_CANDIDATE                            = 0x86\n\tNL80211_ATTR_PORT_AUTHORIZED                            = 0x103\n\tNL80211_ATTR_POWER_RULE_MAX_ANT_GAIN                    = 0x5\n\tNL80211_ATTR_POWER_RULE_MAX_EIRP                        = 0x6\n\tNL80211_ATTR_PREV_BSSID                                 = 0x4f\n\tNL80211_ATTR_PRIVACY                                    = 0x46\n\tNL80211_ATTR_PROBE_RESP                                 = 0x91\n\tNL80211_ATTR_PROBE_RESP_OFFLOAD                         = 0x90\n\tNL80211_ATTR_PROTOCOL_FEATURES                          = 0xad\n\tNL80211_ATTR_PS_STATE                                   = 0x5d\n\tNL80211_ATTR_QOS_MAP                                    = 0xc7\n\tNL80211_ATTR_RADAR_BACKGROUND                           = 0x134\n\tNL80211_ATTR_RADAR_EVENT                                = 0xa8\n\tNL80211_ATTR_REASON_CODE                                = 0x36\n\tNL80211_ATTR_RECEIVE_MULTICAST                          = 0x121\n\tNL80211_ATTR_RECONNECT_REQUESTED                        = 0x12b\n\tNL80211_ATTR_REG_ALPHA2                                 = 0x21\n\tNL80211_ATTR_REG_INDOOR                                 = 0xdd\n\tNL80211_ATTR_REG_INITIATOR                              = 0x30\n\tNL80211_ATTR_REG_RULE_FLAGS                             = 0x1\n\tNL80211_ATTR_REG_RULES                                  = 0x22\n\tNL80211_ATTR_REG_TYPE                                   = 0x31\n\tNL80211_ATTR_REKEY_DATA                                 = 0x7a\n\tNL80211_ATTR_REQ_IE                                     = 0x4d\n\tNL80211_ATTR_RESP_IE                                    = 0x4e\n\tNL80211_ATTR_ROAM_SUPPORT                               = 0x83\n\tNL80211_ATTR_RX_FRAME_TYPES                             = 0x64\n\tNL80211_ATTR_RX_HW_TIMESTAMP                            = 0x140\n\tNL80211_ATTR_RXMGMT_FLAGS                               = 0xbc\n\tNL80211_ATTR_RX_SIGNAL_DBM                              = 0x97\n\tNL80211_ATTR_S1G_CAPABILITY                             = 0x128\n\tNL80211_ATTR_S1G_CAPABILITY_MASK                        = 0x129\n\tNL80211_ATTR_SAE_DATA                                   = 0x9c\n\tNL80211_ATTR_SAE_PASSWORD                               = 0x115\n\tNL80211_ATTR_SAE_PWE                                    = 0x12a\n\tNL80211_ATTR_SAR_SPEC                                   = 0x12c\n\tNL80211_ATTR_SCAN_FLAGS                                 = 0x9e\n\tNL80211_ATTR_SCAN_FREQ_KHZ                              = 0x124\n\tNL80211_ATTR_SCAN_FREQUENCIES                           = 0x2c\n\tNL80211_ATTR_SCAN_GENERATION                            = 0x2e\n\tNL80211_ATTR_SCAN_SSIDS                                 = 0x2d\n\tNL80211_ATTR_SCAN_START_TIME_TSF_BSSID                  = 0xea\n\tNL80211_ATTR_SCAN_START_TIME_TSF                        = 0xe9\n\tNL80211_ATTR_SCAN_SUPP_RATES                            = 0x7d\n\tNL80211_ATTR_SCHED_SCAN_DELAY                           = 0xdc\n\tNL80211_ATTR_SCHED_SCAN_INTERVAL                        = 0x77\n\tNL80211_ATTR_SCHED_SCAN_MATCH                           = 0x84\n\tNL80211_ATTR_SCHED_SCAN_MATCH_SSID                      = 0x1\n\tNL80211_ATTR_SCHED_SCAN_MAX_REQS                        = 0x100\n\tNL80211_ATTR_SCHED_SCAN_MULTI                           = 0xff\n\tNL80211_ATTR_SCHED_SCAN_PLANS                           = 0xe1\n\tNL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI                   = 0xf6\n\tNL80211_ATTR_SCHED_SCAN_RSSI_ADJUST                     = 0xf7\n\tNL80211_ATTR_SMPS_MODE                                  = 0xd5\n\tNL80211_ATTR_SOCKET_OWNER                               = 0xcc\n\tNL80211_ATTR_SOFTWARE_IFTYPES                           = 0x79\n\tNL80211_ATTR_SPLIT_WIPHY_DUMP                           = 0xae\n\tNL80211_ATTR_SSID                                       = 0x34\n\tNL80211_ATTR_STA_AID                                    = 0x10\n\tNL80211_ATTR_STA_CAPABILITY                             = 0xab\n\tNL80211_ATTR_STA_EXT_CAPABILITY                         = 0xac\n\tNL80211_ATTR_STA_FLAGS2                                 = 0x43\n\tNL80211_ATTR_STA_FLAGS                                  = 0x11\n\tNL80211_ATTR_STA_INFO                                   = 0x15\n\tNL80211_ATTR_STA_LISTEN_INTERVAL                        = 0x12\n\tNL80211_ATTR_STA_PLINK_ACTION                           = 0x19\n\tNL80211_ATTR_STA_PLINK_STATE                            = 0x74\n\tNL80211_ATTR_STA_SUPPORTED_CHANNELS                     = 0xbd\n\tNL80211_ATTR_STA_SUPPORTED_OPER_CLASSES                 = 0xbe\n\tNL80211_ATTR_STA_SUPPORTED_RATES                        = 0x13\n\tNL80211_ATTR_STA_SUPPORT_P2P_PS                         = 0xe4\n\tNL80211_ATTR_STATUS_CODE                                = 0x48\n\tNL80211_ATTR_STA_TX_POWER                               = 0x114\n\tNL80211_ATTR_STA_TX_POWER_SETTING                       = 0x113\n\tNL80211_ATTR_STA_VLAN                                   = 0x14\n\tNL80211_ATTR_STA_WME                                    = 0x81\n\tNL80211_ATTR_SUPPORT_10_MHZ                             = 0xc1\n\tNL80211_ATTR_SUPPORT_5_MHZ                              = 0xc0\n\tNL80211_ATTR_SUPPORT_AP_UAPSD                           = 0x82\n\tNL80211_ATTR_SUPPORTED_COMMANDS                         = 0x32\n\tNL80211_ATTR_SUPPORTED_IFTYPES                          = 0x20\n\tNL80211_ATTR_SUPPORT_IBSS_RSN                           = 0x68\n\tNL80211_ATTR_SUPPORT_MESH_AUTH                          = 0x73\n\tNL80211_ATTR_SURVEY_INFO                                = 0x54\n\tNL80211_ATTR_SURVEY_RADIO_STATS                         = 0xda\n\tNL80211_ATTR_TD_BITMAP                                  = 0x141\n\tNL80211_ATTR_TDLS_ACTION                                = 0x88\n\tNL80211_ATTR_TDLS_DIALOG_TOKEN                          = 0x89\n\tNL80211_ATTR_TDLS_EXTERNAL_SETUP                        = 0x8c\n\tNL80211_ATTR_TDLS_INITIATOR                             = 0xcf\n\tNL80211_ATTR_TDLS_OPERATION                             = 0x8a\n\tNL80211_ATTR_TDLS_PEER_CAPABILITY                       = 0xcb\n\tNL80211_ATTR_TDLS_SUPPORT                               = 0x8b\n\tNL80211_ATTR_TESTDATA                                   = 0x45\n\tNL80211_ATTR_TID_CONFIG                                 = 0x11d\n\tNL80211_ATTR_TIMED_OUT                                  = 0x41\n\tNL80211_ATTR_TIMEOUT                                    = 0x110\n\tNL80211_ATTR_TIMEOUT_REASON                             = 0xf8\n\tNL80211_ATTR_TSID                                       = 0xd2\n\tNL80211_ATTR_TWT_RESPONDER                              = 0x116\n\tNL80211_ATTR_TX_FRAME_TYPES                             = 0x63\n\tNL80211_ATTR_TX_HW_TIMESTAMP                            = 0x13f\n\tNL80211_ATTR_TX_NO_CCK_RATE                             = 0x87\n\tNL80211_ATTR_TXQ_LIMIT                                  = 0x10a\n\tNL80211_ATTR_TXQ_MEMORY_LIMIT                           = 0x10b\n\tNL80211_ATTR_TXQ_QUANTUM                                = 0x10c\n\tNL80211_ATTR_TXQ_STATS                                  = 0x109\n\tNL80211_ATTR_TX_RATES                                   = 0x5a\n\tNL80211_ATTR_UNSOL_BCAST_PROBE_RESP                     = 0x127\n\tNL80211_ATTR_UNSPEC                                     = 0x0\n\tNL80211_ATTR_USE_MFP                                    = 0x42\n\tNL80211_ATTR_USER_PRIO                                  = 0xd3\n\tNL80211_ATTR_USER_REG_HINT_TYPE                         = 0x9a\n\tNL80211_ATTR_USE_RRM                                    = 0xd0\n\tNL80211_ATTR_VENDOR_DATA                                = 0xc5\n\tNL80211_ATTR_VENDOR_EVENTS                              = 0xc6\n\tNL80211_ATTR_VENDOR_ID                                  = 0xc3\n\tNL80211_ATTR_VENDOR_SUBCMD                              = 0xc4\n\tNL80211_ATTR_VHT_CAPABILITY                             = 0x9d\n\tNL80211_ATTR_VHT_CAPABILITY_MASK                        = 0xb0\n\tNL80211_ATTR_VLAN_ID                                    = 0x11a\n\tNL80211_ATTR_WANT_1X_4WAY_HS                            = 0x101\n\tNL80211_ATTR_WDEV                                       = 0x99\n\tNL80211_ATTR_WIPHY_ANTENNA_AVAIL_RX                     = 0x72\n\tNL80211_ATTR_WIPHY_ANTENNA_AVAIL_TX                     = 0x71\n\tNL80211_ATTR_WIPHY_ANTENNA_RX                           = 0x6a\n\tNL80211_ATTR_WIPHY_ANTENNA_TX                           = 0x69\n\tNL80211_ATTR_WIPHY_BANDS                                = 0x16\n\tNL80211_ATTR_WIPHY_CHANNEL_TYPE                         = 0x27\n\tNL80211_ATTR_WIPHY                                      = 0x1\n\tNL80211_ATTR_WIPHY_COVERAGE_CLASS                       = 0x59\n\tNL80211_ATTR_WIPHY_DYN_ACK                              = 0xd1\n\tNL80211_ATTR_WIPHY_EDMG_BW_CONFIG                       = 0x119\n\tNL80211_ATTR_WIPHY_EDMG_CHANNELS                        = 0x118\n\tNL80211_ATTR_WIPHY_FRAG_THRESHOLD                       = 0x3f\n\tNL80211_ATTR_WIPHY_FREQ                                 = 0x26\n\tNL80211_ATTR_WIPHY_FREQ_HINT                            = 0xc9\n\tNL80211_ATTR_WIPHY_FREQ_OFFSET                          = 0x122\n\tNL80211_ATTR_WIPHY_NAME                                 = 0x2\n\tNL80211_ATTR_WIPHY_RETRY_LONG                           = 0x3e\n\tNL80211_ATTR_WIPHY_RETRY_SHORT                          = 0x3d\n\tNL80211_ATTR_WIPHY_RTS_THRESHOLD                        = 0x40\n\tNL80211_ATTR_WIPHY_SELF_MANAGED_REG                     = 0xd8\n\tNL80211_ATTR_WIPHY_TX_POWER_LEVEL                       = 0x62\n\tNL80211_ATTR_WIPHY_TX_POWER_SETTING                     = 0x61\n\tNL80211_ATTR_WIPHY_TXQ_PARAMS                           = 0x25\n\tNL80211_ATTR_WOWLAN_TRIGGERS                            = 0x75\n\tNL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED                  = 0x76\n\tNL80211_ATTR_WPA_VERSIONS                               = 0x4b\n\tNL80211_AUTHTYPE_AUTOMATIC                              = 0x8\n\tNL80211_AUTHTYPE_FILS_PK                                = 0x7\n\tNL80211_AUTHTYPE_FILS_SK                                = 0x5\n\tNL80211_AUTHTYPE_FILS_SK_PFS                            = 0x6\n\tNL80211_AUTHTYPE_FT                                     = 0x2\n\tNL80211_AUTHTYPE_MAX                                    = 0x7\n\tNL80211_AUTHTYPE_NETWORK_EAP                            = 0x3\n\tNL80211_AUTHTYPE_OPEN_SYSTEM                            = 0x0\n\tNL80211_AUTHTYPE_SAE                                    = 0x4\n\tNL80211_AUTHTYPE_SHARED_KEY                             = 0x1\n\tNL80211_BAND_2GHZ                                       = 0x0\n\tNL80211_BAND_5GHZ                                       = 0x1\n\tNL80211_BAND_60GHZ                                      = 0x2\n\tNL80211_BAND_6GHZ                                       = 0x3\n\tNL80211_BAND_ATTR_EDMG_BW_CONFIG                        = 0xb\n\tNL80211_BAND_ATTR_EDMG_CHANNELS                         = 0xa\n\tNL80211_BAND_ATTR_FREQS                                 = 0x1\n\tNL80211_BAND_ATTR_HT_AMPDU_DENSITY                      = 0x6\n\tNL80211_BAND_ATTR_HT_AMPDU_FACTOR                       = 0x5\n\tNL80211_BAND_ATTR_HT_CAPA                               = 0x4\n\tNL80211_BAND_ATTR_HT_MCS_SET                            = 0x3\n\tNL80211_BAND_ATTR_IFTYPE_DATA                           = 0x9\n\tNL80211_BAND_ATTR_MAX                                   = 0xd\n\tNL80211_BAND_ATTR_RATES                                 = 0x2\n\tNL80211_BAND_ATTR_VHT_CAPA                              = 0x8\n\tNL80211_BAND_ATTR_VHT_MCS_SET                           = 0x7\n\tNL80211_BAND_IFTYPE_ATTR_EHT_CAP_MAC                    = 0x8\n\tNL80211_BAND_IFTYPE_ATTR_EHT_CAP_MCS_SET                = 0xa\n\tNL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY                    = 0x9\n\tNL80211_BAND_IFTYPE_ATTR_EHT_CAP_PPE                    = 0xb\n\tNL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA                   = 0x6\n\tNL80211_BAND_IFTYPE_ATTR_HE_CAP_MAC                     = 0x2\n\tNL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET                 = 0x4\n\tNL80211_BAND_IFTYPE_ATTR_HE_CAP_PHY                     = 0x3\n\tNL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE                     = 0x5\n\tNL80211_BAND_IFTYPE_ATTR_IFTYPES                        = 0x1\n\tNL80211_BAND_IFTYPE_ATTR_MAX                            = 0xb\n\tNL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS                   = 0x7\n\tNL80211_BAND_LC                                         = 0x5\n\tNL80211_BAND_S1GHZ                                      = 0x4\n\tNL80211_BITRATE_ATTR_2GHZ_SHORTPREAMBLE                 = 0x2\n\tNL80211_BITRATE_ATTR_MAX                                = 0x2\n\tNL80211_BITRATE_ATTR_RATE                               = 0x1\n\tNL80211_BSS_BEACON_IES                                  = 0xb\n\tNL80211_BSS_BEACON_INTERVAL                             = 0x4\n\tNL80211_BSS_BEACON_TSF                                  = 0xd\n\tNL80211_BSS_BSSID                                       = 0x1\n\tNL80211_BSS_CAPABILITY                                  = 0x5\n\tNL80211_BSS_CHAIN_SIGNAL                                = 0x13\n\tNL80211_BSS_CHAN_WIDTH_10                               = 0x1\n\tNL80211_BSS_CHAN_WIDTH_1                                = 0x3\n\tNL80211_BSS_CHAN_WIDTH_20                               = 0x0\n\tNL80211_BSS_CHAN_WIDTH_2                                = 0x4\n\tNL80211_BSS_CHAN_WIDTH_5                                = 0x2\n\tNL80211_BSS_CHAN_WIDTH                                  = 0xc\n\tNL80211_BSS_FREQUENCY                                   = 0x2\n\tNL80211_BSS_FREQUENCY_OFFSET                            = 0x14\n\tNL80211_BSS_INFORMATION_ELEMENTS                        = 0x6\n\tNL80211_BSS_LAST_SEEN_BOOTTIME                          = 0xf\n\tNL80211_BSS_MAX                                         = 0x18\n\tNL80211_BSS_MLD_ADDR                                    = 0x16\n\tNL80211_BSS_MLO_LINK_ID                                 = 0x15\n\tNL80211_BSS_PAD                                         = 0x10\n\tNL80211_BSS_PARENT_BSSID                                = 0x12\n\tNL80211_BSS_PARENT_TSF                                  = 0x11\n\tNL80211_BSS_PRESP_DATA                                  = 0xe\n\tNL80211_BSS_SEEN_MS_AGO                                 = 0xa\n\tNL80211_BSS_SELECT_ATTR_BAND_PREF                       = 0x2\n\tNL80211_BSS_SELECT_ATTR_MAX                             = 0x3\n\tNL80211_BSS_SELECT_ATTR_RSSI_ADJUST                     = 0x3\n\tNL80211_BSS_SELECT_ATTR_RSSI                            = 0x1\n\tNL80211_BSS_SIGNAL_MBM                                  = 0x7\n\tNL80211_BSS_SIGNAL_UNSPEC                               = 0x8\n\tNL80211_BSS_STATUS_ASSOCIATED                           = 0x1\n\tNL80211_BSS_STATUS_AUTHENTICATED                        = 0x0\n\tNL80211_BSS_STATUS                                      = 0x9\n\tNL80211_BSS_STATUS_IBSS_JOINED                          = 0x2\n\tNL80211_BSS_TSF                                         = 0x3\n\tNL80211_CHAN_HT20                                       = 0x1\n\tNL80211_CHAN_HT40MINUS                                  = 0x2\n\tNL80211_CHAN_HT40PLUS                                   = 0x3\n\tNL80211_CHAN_NO_HT                                      = 0x0\n\tNL80211_CHAN_WIDTH_10                                   = 0x7\n\tNL80211_CHAN_WIDTH_160                                  = 0x5\n\tNL80211_CHAN_WIDTH_16                                   = 0xc\n\tNL80211_CHAN_WIDTH_1                                    = 0x8\n\tNL80211_CHAN_WIDTH_20                                   = 0x1\n\tNL80211_CHAN_WIDTH_20_NOHT                              = 0x0\n\tNL80211_CHAN_WIDTH_2                                    = 0x9\n\tNL80211_CHAN_WIDTH_320                                  = 0xd\n\tNL80211_CHAN_WIDTH_40                                   = 0x2\n\tNL80211_CHAN_WIDTH_4                                    = 0xa\n\tNL80211_CHAN_WIDTH_5                                    = 0x6\n\tNL80211_CHAN_WIDTH_80                                   = 0x3\n\tNL80211_CHAN_WIDTH_80P80                                = 0x4\n\tNL80211_CHAN_WIDTH_8                                    = 0xb\n\tNL80211_CMD_ABORT_SCAN                                  = 0x72\n\tNL80211_CMD_ACTION                                      = 0x3b\n\tNL80211_CMD_ACTION_TX_STATUS                            = 0x3c\n\tNL80211_CMD_ADD_LINK                                    = 0x94\n\tNL80211_CMD_ADD_LINK_STA                                = 0x96\n\tNL80211_CMD_ADD_NAN_FUNCTION                            = 0x75\n\tNL80211_CMD_ADD_TX_TS                                   = 0x69\n\tNL80211_CMD_ASSOC_COMEBACK                              = 0x93\n\tNL80211_CMD_ASSOCIATE                                   = 0x26\n\tNL80211_CMD_AUTHENTICATE                                = 0x25\n\tNL80211_CMD_CANCEL_REMAIN_ON_CHANNEL                    = 0x38\n\tNL80211_CMD_CHANGE_NAN_CONFIG                           = 0x77\n\tNL80211_CMD_CHANNEL_SWITCH                              = 0x66\n\tNL80211_CMD_CH_SWITCH_NOTIFY                            = 0x58\n\tNL80211_CMD_CH_SWITCH_STARTED_NOTIFY                    = 0x6e\n\tNL80211_CMD_COLOR_CHANGE_ABORTED                        = 0x90\n\tNL80211_CMD_COLOR_CHANGE_COMPLETED                      = 0x91\n\tNL80211_CMD_COLOR_CHANGE_REQUEST                        = 0x8e\n\tNL80211_CMD_COLOR_CHANGE_STARTED                        = 0x8f\n\tNL80211_CMD_CONNECT                                     = 0x2e\n\tNL80211_CMD_CONN_FAILED                                 = 0x5b\n\tNL80211_CMD_CONTROL_PORT_FRAME                          = 0x81\n\tNL80211_CMD_CONTROL_PORT_FRAME_TX_STATUS                = 0x8b\n\tNL80211_CMD_CRIT_PROTOCOL_START                         = 0x62\n\tNL80211_CMD_CRIT_PROTOCOL_STOP                          = 0x63\n\tNL80211_CMD_DEAUTHENTICATE                              = 0x27\n\tNL80211_CMD_DEL_BEACON                                  = 0x10\n\tNL80211_CMD_DEL_INTERFACE                               = 0x8\n\tNL80211_CMD_DEL_KEY                                     = 0xc\n\tNL80211_CMD_DEL_MPATH                                   = 0x18\n\tNL80211_CMD_DEL_NAN_FUNCTION                            = 0x76\n\tNL80211_CMD_DEL_PMK                                     = 0x7c\n\tNL80211_CMD_DEL_PMKSA                                   = 0x35\n\tNL80211_CMD_DEL_STATION                                 = 0x14\n\tNL80211_CMD_DEL_TX_TS                                   = 0x6a\n\tNL80211_CMD_DEL_WIPHY                                   = 0x4\n\tNL80211_CMD_DISASSOCIATE                                = 0x28\n\tNL80211_CMD_DISCONNECT                                  = 0x30\n\tNL80211_CMD_EXTERNAL_AUTH                               = 0x7f\n\tNL80211_CMD_FLUSH_PMKSA                                 = 0x36\n\tNL80211_CMD_FRAME                                       = 0x3b\n\tNL80211_CMD_FRAME_TX_STATUS                             = 0x3c\n\tNL80211_CMD_FRAME_WAIT_CANCEL                           = 0x43\n\tNL80211_CMD_FT_EVENT                                    = 0x61\n\tNL80211_CMD_GET_BEACON                                  = 0xd\n\tNL80211_CMD_GET_COALESCE                                = 0x64\n\tNL80211_CMD_GET_FTM_RESPONDER_STATS                     = 0x82\n\tNL80211_CMD_GET_INTERFACE                               = 0x5\n\tNL80211_CMD_GET_KEY                                     = 0x9\n\tNL80211_CMD_GET_MESH_CONFIG                             = 0x1c\n\tNL80211_CMD_GET_MESH_PARAMS                             = 0x1c\n\tNL80211_CMD_GET_MPATH                                   = 0x15\n\tNL80211_CMD_GET_MPP                                     = 0x6b\n\tNL80211_CMD_GET_POWER_SAVE                              = 0x3e\n\tNL80211_CMD_GET_PROTOCOL_FEATURES                       = 0x5f\n\tNL80211_CMD_GET_REG                                     = 0x1f\n\tNL80211_CMD_GET_SCAN                                    = 0x20\n\tNL80211_CMD_GET_STATION                                 = 0x11\n\tNL80211_CMD_GET_SURVEY                                  = 0x32\n\tNL80211_CMD_GET_WIPHY                                   = 0x1\n\tNL80211_CMD_GET_WOWLAN                                  = 0x49\n\tNL80211_CMD_JOIN_IBSS                                   = 0x2b\n\tNL80211_CMD_JOIN_MESH                                   = 0x44\n\tNL80211_CMD_JOIN_OCB                                    = 0x6c\n\tNL80211_CMD_LEAVE_IBSS                                  = 0x2c\n\tNL80211_CMD_LEAVE_MESH                                  = 0x45\n\tNL80211_CMD_LEAVE_OCB                                   = 0x6d\n\tNL80211_CMD_MAX                                         = 0x9b\n\tNL80211_CMD_MICHAEL_MIC_FAILURE                         = 0x29\n\tNL80211_CMD_MODIFY_LINK_STA                             = 0x97\n\tNL80211_CMD_NAN_MATCH                                   = 0x78\n\tNL80211_CMD_NEW_BEACON                                  = 0xf\n\tNL80211_CMD_NEW_INTERFACE                               = 0x7\n\tNL80211_CMD_NEW_KEY                                     = 0xb\n\tNL80211_CMD_NEW_MPATH                                   = 0x17\n\tNL80211_CMD_NEW_PEER_CANDIDATE                          = 0x48\n\tNL80211_CMD_NEW_SCAN_RESULTS                            = 0x22\n\tNL80211_CMD_NEW_STATION                                 = 0x13\n\tNL80211_CMD_NEW_SURVEY_RESULTS                          = 0x33\n\tNL80211_CMD_NEW_WIPHY                                   = 0x3\n\tNL80211_CMD_NOTIFY_CQM                                  = 0x40\n\tNL80211_CMD_NOTIFY_RADAR                                = 0x86\n\tNL80211_CMD_OBSS_COLOR_COLLISION                        = 0x8d\n\tNL80211_CMD_PEER_MEASUREMENT_COMPLETE                   = 0x85\n\tNL80211_CMD_PEER_MEASUREMENT_RESULT                     = 0x84\n\tNL80211_CMD_PEER_MEASUREMENT_START                      = 0x83\n\tNL80211_CMD_PMKSA_CANDIDATE                             = 0x50\n\tNL80211_CMD_PORT_AUTHORIZED                             = 0x7d\n\tNL80211_CMD_PROBE_CLIENT                                = 0x54\n\tNL80211_CMD_PROBE_MESH_LINK                             = 0x88\n\tNL80211_CMD_RADAR_DETECT                                = 0x5e\n\tNL80211_CMD_REG_BEACON_HINT                             = 0x2a\n\tNL80211_CMD_REG_CHANGE                                  = 0x24\n\tNL80211_CMD_REGISTER_ACTION                             = 0x3a\n\tNL80211_CMD_REGISTER_BEACONS                            = 0x55\n\tNL80211_CMD_REGISTER_FRAME                              = 0x3a\n\tNL80211_CMD_RELOAD_REGDB                                = 0x7e\n\tNL80211_CMD_REMAIN_ON_CHANNEL                           = 0x37\n\tNL80211_CMD_REMOVE_LINK                                 = 0x95\n\tNL80211_CMD_REMOVE_LINK_STA                             = 0x98\n\tNL80211_CMD_REQ_SET_REG                                 = 0x1b\n\tNL80211_CMD_ROAM                                        = 0x2f\n\tNL80211_CMD_SCAN_ABORTED                                = 0x23\n\tNL80211_CMD_SCHED_SCAN_RESULTS                          = 0x4d\n\tNL80211_CMD_SCHED_SCAN_STOPPED                          = 0x4e\n\tNL80211_CMD_SET_BEACON                                  = 0xe\n\tNL80211_CMD_SET_BSS                                     = 0x19\n\tNL80211_CMD_SET_CHANNEL                                 = 0x41\n\tNL80211_CMD_SET_COALESCE                                = 0x65\n\tNL80211_CMD_SET_CQM                                     = 0x3f\n\tNL80211_CMD_SET_FILS_AAD                                = 0x92\n\tNL80211_CMD_SET_INTERFACE                               = 0x6\n\tNL80211_CMD_SET_KEY                                     = 0xa\n\tNL80211_CMD_SET_MAC_ACL                                 = 0x5d\n\tNL80211_CMD_SET_MCAST_RATE                              = 0x5c\n\tNL80211_CMD_SET_MESH_CONFIG                             = 0x1d\n\tNL80211_CMD_SET_MESH_PARAMS                             = 0x1d\n\tNL80211_CMD_SET_MGMT_EXTRA_IE                           = 0x1e\n\tNL80211_CMD_SET_MPATH                                   = 0x16\n\tNL80211_CMD_SET_MULTICAST_TO_UNICAST                    = 0x79\n\tNL80211_CMD_SET_NOACK_MAP                               = 0x57\n\tNL80211_CMD_SET_PMK                                     = 0x7b\n\tNL80211_CMD_SET_PMKSA                                   = 0x34\n\tNL80211_CMD_SET_POWER_SAVE                              = 0x3d\n\tNL80211_CMD_SET_QOS_MAP                                 = 0x68\n\tNL80211_CMD_SET_REG                                     = 0x1a\n\tNL80211_CMD_SET_REKEY_OFFLOAD                           = 0x4f\n\tNL80211_CMD_SET_SAR_SPECS                               = 0x8c\n\tNL80211_CMD_SET_STATION                                 = 0x12\n\tNL80211_CMD_SET_TID_CONFIG                              = 0x89\n\tNL80211_CMD_SET_TX_BITRATE_MASK                         = 0x39\n\tNL80211_CMD_SET_WDS_PEER                                = 0x42\n\tNL80211_CMD_SET_WIPHY                                   = 0x2\n\tNL80211_CMD_SET_WIPHY_NETNS                             = 0x31\n\tNL80211_CMD_SET_WOWLAN                                  = 0x4a\n\tNL80211_CMD_STA_OPMODE_CHANGED                          = 0x80\n\tNL80211_CMD_START_AP                                    = 0xf\n\tNL80211_CMD_START_NAN                                   = 0x73\n\tNL80211_CMD_START_P2P_DEVICE                            = 0x59\n\tNL80211_CMD_START_SCHED_SCAN                            = 0x4b\n\tNL80211_CMD_STOP_AP                                     = 0x10\n\tNL80211_CMD_STOP_NAN                                    = 0x74\n\tNL80211_CMD_STOP_P2P_DEVICE                             = 0x5a\n\tNL80211_CMD_STOP_SCHED_SCAN                             = 0x4c\n\tNL80211_CMD_TDLS_CANCEL_CHANNEL_SWITCH                  = 0x70\n\tNL80211_CMD_TDLS_CHANNEL_SWITCH                         = 0x6f\n\tNL80211_CMD_TDLS_MGMT                                   = 0x52\n\tNL80211_CMD_TDLS_OPER                                   = 0x51\n\tNL80211_CMD_TESTMODE                                    = 0x2d\n\tNL80211_CMD_TRIGGER_SCAN                                = 0x21\n\tNL80211_CMD_UNEXPECTED_4ADDR_FRAME                      = 0x56\n\tNL80211_CMD_UNEXPECTED_FRAME                            = 0x53\n\tNL80211_CMD_UNPROT_BEACON                               = 0x8a\n\tNL80211_CMD_UNPROT_DEAUTHENTICATE                       = 0x46\n\tNL80211_CMD_UNPROT_DISASSOCIATE                         = 0x47\n\tNL80211_CMD_UNSPEC                                      = 0x0\n\tNL80211_CMD_UPDATE_CONNECT_PARAMS                       = 0x7a\n\tNL80211_CMD_UPDATE_FT_IES                               = 0x60\n\tNL80211_CMD_UPDATE_OWE_INFO                             = 0x87\n\tNL80211_CMD_VENDOR                                      = 0x67\n\tNL80211_CMD_WIPHY_REG_CHANGE                            = 0x71\n\tNL80211_COALESCE_CONDITION_MATCH                        = 0x0\n\tNL80211_COALESCE_CONDITION_NO_MATCH                     = 0x1\n\tNL80211_CONN_FAIL_BLOCKED_CLIENT                        = 0x1\n\tNL80211_CONN_FAIL_MAX_CLIENTS                           = 0x0\n\tNL80211_CQM_RSSI_BEACON_LOSS_EVENT                      = 0x2\n\tNL80211_CQM_RSSI_THRESHOLD_EVENT_HIGH                   = 0x1\n\tNL80211_CQM_RSSI_THRESHOLD_EVENT_LOW                    = 0x0\n\tNL80211_CQM_TXE_MAX_INTVL                               = 0x708\n\tNL80211_CRIT_PROTO_APIPA                                = 0x3\n\tNL80211_CRIT_PROTO_DHCP                                 = 0x1\n\tNL80211_CRIT_PROTO_EAPOL                                = 0x2\n\tNL80211_CRIT_PROTO_MAX_DURATION                         = 0x1388\n\tNL80211_CRIT_PROTO_UNSPEC                               = 0x0\n\tNL80211_DFS_AVAILABLE                                   = 0x2\n\tNL80211_DFS_ETSI                                        = 0x2\n\tNL80211_DFS_FCC                                         = 0x1\n\tNL80211_DFS_JP                                          = 0x3\n\tNL80211_DFS_UNAVAILABLE                                 = 0x1\n\tNL80211_DFS_UNSET                                       = 0x0\n\tNL80211_DFS_USABLE                                      = 0x0\n\tNL80211_EDMG_BW_CONFIG_MAX                              = 0xf\n\tNL80211_EDMG_BW_CONFIG_MIN                              = 0x4\n\tNL80211_EDMG_CHANNELS_MAX                               = 0x3c\n\tNL80211_EDMG_CHANNELS_MIN                               = 0x1\n\tNL80211_EHT_MAX_CAPABILITY_LEN                          = 0x33\n\tNL80211_EHT_MIN_CAPABILITY_LEN                          = 0xd\n\tNL80211_EXTERNAL_AUTH_ABORT                             = 0x1\n\tNL80211_EXTERNAL_AUTH_START                             = 0x0\n\tNL80211_EXT_FEATURE_4WAY_HANDSHAKE_AP_PSK               = 0x32\n\tNL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_1X               = 0x10\n\tNL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_PSK              = 0xf\n\tNL80211_EXT_FEATURE_ACCEPT_BCAST_PROBE_RESP             = 0x12\n\tNL80211_EXT_FEATURE_ACK_SIGNAL_SUPPORT                  = 0x1b\n\tNL80211_EXT_FEATURE_AIRTIME_FAIRNESS                    = 0x21\n\tNL80211_EXT_FEATURE_AP_PMKSA_CACHING                    = 0x22\n\tNL80211_EXT_FEATURE_AQL                                 = 0x28\n\tNL80211_EXT_FEATURE_BEACON_PROTECTION_CLIENT            = 0x2e\n\tNL80211_EXT_FEATURE_BEACON_PROTECTION                   = 0x29\n\tNL80211_EXT_FEATURE_BEACON_RATE_HE                      = 0x36\n\tNL80211_EXT_FEATURE_BEACON_RATE_HT                      = 0x7\n\tNL80211_EXT_FEATURE_BEACON_RATE_LEGACY                  = 0x6\n\tNL80211_EXT_FEATURE_BEACON_RATE_VHT                     = 0x8\n\tNL80211_EXT_FEATURE_BSS_COLOR                           = 0x3a\n\tNL80211_EXT_FEATURE_BSS_PARENT_TSF                      = 0x4\n\tNL80211_EXT_FEATURE_CAN_REPLACE_PTK0                    = 0x1f\n\tNL80211_EXT_FEATURE_CONTROL_PORT_NO_PREAUTH             = 0x2a\n\tNL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211           = 0x1a\n\tNL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211_TX_STATUS = 0x30\n\tNL80211_EXT_FEATURE_CQM_RSSI_LIST                       = 0xd\n\tNL80211_EXT_FEATURE_DATA_ACK_SIGNAL_SUPPORT             = 0x1b\n\tNL80211_EXT_FEATURE_DEL_IBSS_STA                        = 0x2c\n\tNL80211_EXT_FEATURE_DFS_OFFLOAD                         = 0x19\n\tNL80211_EXT_FEATURE_ENABLE_FTM_RESPONDER                = 0x20\n\tNL80211_EXT_FEATURE_EXT_KEY_ID                          = 0x24\n\tNL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD                 = 0x3b\n\tNL80211_EXT_FEATURE_FILS_DISCOVERY                      = 0x34\n\tNL80211_EXT_FEATURE_FILS_MAX_CHANNEL_TIME               = 0x11\n\tNL80211_EXT_FEATURE_FILS_SK_OFFLOAD                     = 0xe\n\tNL80211_EXT_FEATURE_FILS_STA                            = 0x9\n\tNL80211_EXT_FEATURE_HIGH_ACCURACY_SCAN                  = 0x18\n\tNL80211_EXT_FEATURE_LOW_POWER_SCAN                      = 0x17\n\tNL80211_EXT_FEATURE_LOW_SPAN_SCAN                       = 0x16\n\tNL80211_EXT_FEATURE_MFP_OPTIONAL                        = 0x15\n\tNL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA                   = 0xa\n\tNL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA_CONNECTED         = 0xb\n\tNL80211_EXT_FEATURE_MULTICAST_REGISTRATIONS             = 0x2d\n\tNL80211_EXT_FEATURE_MU_MIMO_AIR_SNIFFER                 = 0x2\n\tNL80211_EXT_FEATURE_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION  = 0x14\n\tNL80211_EXT_FEATURE_OCE_PROBE_REQ_HIGH_TX_RATE          = 0x13\n\tNL80211_EXT_FEATURE_OPERATING_CHANNEL_VALIDATION        = 0x31\n\tNL80211_EXT_FEATURE_POWERED_ADDR_CHANGE                 = 0x3d\n\tNL80211_EXT_FEATURE_PROTECTED_TWT                       = 0x2b\n\tNL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE         = 0x39\n\tNL80211_EXT_FEATURE_RADAR_BACKGROUND                    = 0x3c\n\tNL80211_EXT_FEATURE_RRM                                 = 0x1\n\tNL80211_EXT_FEATURE_SAE_OFFLOAD_AP                      = 0x33\n\tNL80211_EXT_FEATURE_SAE_OFFLOAD                         = 0x26\n\tNL80211_EXT_FEATURE_SCAN_FREQ_KHZ                       = 0x2f\n\tNL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT               = 0x1e\n\tNL80211_EXT_FEATURE_SCAN_RANDOM_SN                      = 0x1d\n\tNL80211_EXT_FEATURE_SCAN_START_TIME                     = 0x3\n\tNL80211_EXT_FEATURE_SCHED_SCAN_BAND_SPECIFIC_RSSI_THOLD = 0x23\n\tNL80211_EXT_FEATURE_SCHED_SCAN_RELATIVE_RSSI            = 0xc\n\tNL80211_EXT_FEATURE_SECURE_LTF                          = 0x37\n\tNL80211_EXT_FEATURE_SECURE_RTT                          = 0x38\n\tNL80211_EXT_FEATURE_SET_SCAN_DWELL                      = 0x5\n\tNL80211_EXT_FEATURE_STA_TX_PWR                          = 0x25\n\tNL80211_EXT_FEATURE_TXQS                                = 0x1c\n\tNL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP              = 0x35\n\tNL80211_EXT_FEATURE_VHT_IBSS                            = 0x0\n\tNL80211_EXT_FEATURE_VLAN_OFFLOAD                        = 0x27\n\tNL80211_FEATURE_ACKTO_ESTIMATION                        = 0x800000\n\tNL80211_FEATURE_ACTIVE_MONITOR                          = 0x20000\n\tNL80211_FEATURE_ADVERTISE_CHAN_LIMITS                   = 0x4000\n\tNL80211_FEATURE_AP_MODE_CHAN_WIDTH_CHANGE               = 0x40000\n\tNL80211_FEATURE_AP_SCAN                                 = 0x100\n\tNL80211_FEATURE_CELL_BASE_REG_HINTS                     = 0x8\n\tNL80211_FEATURE_DS_PARAM_SET_IE_IN_PROBES               = 0x80000\n\tNL80211_FEATURE_DYNAMIC_SMPS                            = 0x2000000\n\tNL80211_FEATURE_FULL_AP_CLIENT_STATE                    = 0x8000\n\tNL80211_FEATURE_HT_IBSS                                 = 0x2\n\tNL80211_FEATURE_INACTIVITY_TIMER                        = 0x4\n\tNL80211_FEATURE_LOW_PRIORITY_SCAN                       = 0x40\n\tNL80211_FEATURE_MAC_ON_CREATE                           = 0x8000000\n\tNL80211_FEATURE_ND_RANDOM_MAC_ADDR                      = 0x80000000\n\tNL80211_FEATURE_NEED_OBSS_SCAN                          = 0x400\n\tNL80211_FEATURE_P2P_DEVICE_NEEDS_CHANNEL                = 0x10\n\tNL80211_FEATURE_P2P_GO_CTWIN                            = 0x800\n\tNL80211_FEATURE_P2P_GO_OPPPS                            = 0x1000\n\tNL80211_FEATURE_QUIET                                   = 0x200000\n\tNL80211_FEATURE_SAE                                     = 0x20\n\tNL80211_FEATURE_SCAN_FLUSH                              = 0x80\n\tNL80211_FEATURE_SCAN_RANDOM_MAC_ADDR                    = 0x20000000\n\tNL80211_FEATURE_SCHED_SCAN_RANDOM_MAC_ADDR              = 0x40000000\n\tNL80211_FEATURE_SK_TX_STATUS                            = 0x1\n\tNL80211_FEATURE_STATIC_SMPS                             = 0x1000000\n\tNL80211_FEATURE_SUPPORTS_WMM_ADMISSION                  = 0x4000000\n\tNL80211_FEATURE_TDLS_CHANNEL_SWITCH                     = 0x10000000\n\tNL80211_FEATURE_TX_POWER_INSERTION                      = 0x400000\n\tNL80211_FEATURE_USERSPACE_MPM                           = 0x10000\n\tNL80211_FEATURE_VIF_TXPOWER                             = 0x200\n\tNL80211_FEATURE_WFA_TPC_IE_IN_PROBES                    = 0x100000\n\tNL80211_FILS_DISCOVERY_ATTR_INT_MAX                     = 0x2\n\tNL80211_FILS_DISCOVERY_ATTR_INT_MIN                     = 0x1\n\tNL80211_FILS_DISCOVERY_ATTR_MAX                         = 0x3\n\tNL80211_FILS_DISCOVERY_ATTR_TMPL                        = 0x3\n\tNL80211_FILS_DISCOVERY_TMPL_MIN_LEN                     = 0x2a\n\tNL80211_FREQUENCY_ATTR_16MHZ                            = 0x19\n\tNL80211_FREQUENCY_ATTR_1MHZ                             = 0x15\n\tNL80211_FREQUENCY_ATTR_2MHZ                             = 0x16\n\tNL80211_FREQUENCY_ATTR_4MHZ                             = 0x17\n\tNL80211_FREQUENCY_ATTR_8MHZ                             = 0x18\n\tNL80211_FREQUENCY_ATTR_DFS_CAC_TIME                     = 0xd\n\tNL80211_FREQUENCY_ATTR_DFS_STATE                        = 0x7\n\tNL80211_FREQUENCY_ATTR_DFS_TIME                         = 0x8\n\tNL80211_FREQUENCY_ATTR_DISABLED                         = 0x2\n\tNL80211_FREQUENCY_ATTR_FREQ                             = 0x1\n\tNL80211_FREQUENCY_ATTR_GO_CONCURRENT                    = 0xf\n\tNL80211_FREQUENCY_ATTR_INDOOR_ONLY                      = 0xe\n\tNL80211_FREQUENCY_ATTR_IR_CONCURRENT                    = 0xf\n\tNL80211_FREQUENCY_ATTR_MAX                              = 0x21\n\tNL80211_FREQUENCY_ATTR_MAX_TX_POWER                     = 0x6\n\tNL80211_FREQUENCY_ATTR_NO_10MHZ                         = 0x11\n\tNL80211_FREQUENCY_ATTR_NO_160MHZ                        = 0xc\n\tNL80211_FREQUENCY_ATTR_NO_20MHZ                         = 0x10\n\tNL80211_FREQUENCY_ATTR_NO_320MHZ                        = 0x1a\n\tNL80211_FREQUENCY_ATTR_NO_80MHZ                         = 0xb\n\tNL80211_FREQUENCY_ATTR_NO_EHT                           = 0x1b\n\tNL80211_FREQUENCY_ATTR_NO_HE                            = 0x13\n\tNL80211_FREQUENCY_ATTR_NO_HT40_MINUS                    = 0x9\n\tNL80211_FREQUENCY_ATTR_NO_HT40_PLUS                     = 0xa\n\tNL80211_FREQUENCY_ATTR_NO_IBSS                          = 0x3\n\tNL80211_FREQUENCY_ATTR_NO_IR                            = 0x3\n\tNL80211_FREQUENCY_ATTR_OFFSET                           = 0x14\n\tNL80211_FREQUENCY_ATTR_PASSIVE_SCAN                     = 0x3\n\tNL80211_FREQUENCY_ATTR_RADAR                            = 0x5\n\tNL80211_FREQUENCY_ATTR_WMM                              = 0x12\n\tNL80211_FTM_RESP_ATTR_CIVICLOC                          = 0x3\n\tNL80211_FTM_RESP_ATTR_ENABLED                           = 0x1\n\tNL80211_FTM_RESP_ATTR_LCI                               = 0x2\n\tNL80211_FTM_RESP_ATTR_MAX                               = 0x3\n\tNL80211_FTM_STATS_ASAP_NUM                              = 0x4\n\tNL80211_FTM_STATS_FAILED_NUM                            = 0x3\n\tNL80211_FTM_STATS_MAX                                   = 0xa\n\tNL80211_FTM_STATS_NON_ASAP_NUM                          = 0x5\n\tNL80211_FTM_STATS_OUT_OF_WINDOW_TRIGGERS_NUM            = 0x9\n\tNL80211_FTM_STATS_PAD                                   = 0xa\n\tNL80211_FTM_STATS_PARTIAL_NUM                           = 0x2\n\tNL80211_FTM_STATS_RESCHEDULE_REQUESTS_NUM               = 0x8\n\tNL80211_FTM_STATS_SUCCESS_NUM                           = 0x1\n\tNL80211_FTM_STATS_TOTAL_DURATION_MSEC                   = 0x6\n\tNL80211_FTM_STATS_UNKNOWN_TRIGGERS_NUM                  = 0x7\n\tNL80211_GENL_NAME                                       = \"nl80211\"\n\tNL80211_HE_BSS_COLOR_ATTR_COLOR                         = 0x1\n\tNL80211_HE_BSS_COLOR_ATTR_DISABLED                      = 0x2\n\tNL80211_HE_BSS_COLOR_ATTR_MAX                           = 0x3\n\tNL80211_HE_BSS_COLOR_ATTR_PARTIAL                       = 0x3\n\tNL80211_HE_MAX_CAPABILITY_LEN                           = 0x36\n\tNL80211_HE_MIN_CAPABILITY_LEN                           = 0x10\n\tNL80211_HE_NSS_MAX                                      = 0x8\n\tNL80211_HE_OBSS_PD_ATTR_BSS_COLOR_BITMAP                = 0x4\n\tNL80211_HE_OBSS_PD_ATTR_MAX                             = 0x6\n\tNL80211_HE_OBSS_PD_ATTR_MAX_OFFSET                      = 0x2\n\tNL80211_HE_OBSS_PD_ATTR_MIN_OFFSET                      = 0x1\n\tNL80211_HE_OBSS_PD_ATTR_NON_SRG_MAX_OFFSET              = 0x3\n\tNL80211_HE_OBSS_PD_ATTR_PARTIAL_BSSID_BITMAP            = 0x5\n\tNL80211_HE_OBSS_PD_ATTR_SR_CTRL                         = 0x6\n\tNL80211_HIDDEN_SSID_NOT_IN_USE                          = 0x0\n\tNL80211_HIDDEN_SSID_ZERO_CONTENTS                       = 0x2\n\tNL80211_HIDDEN_SSID_ZERO_LEN                            = 0x1\n\tNL80211_HT_CAPABILITY_LEN                               = 0x1a\n\tNL80211_IFACE_COMB_BI_MIN_GCD                           = 0x7\n\tNL80211_IFACE_COMB_LIMITS                               = 0x1\n\tNL80211_IFACE_COMB_MAXNUM                               = 0x2\n\tNL80211_IFACE_COMB_NUM_CHANNELS                         = 0x4\n\tNL80211_IFACE_COMB_RADAR_DETECT_REGIONS                 = 0x6\n\tNL80211_IFACE_COMB_RADAR_DETECT_WIDTHS                  = 0x5\n\tNL80211_IFACE_COMB_STA_AP_BI_MATCH                      = 0x3\n\tNL80211_IFACE_COMB_UNSPEC                               = 0x0\n\tNL80211_IFACE_LIMIT_MAX                                 = 0x1\n\tNL80211_IFACE_LIMIT_TYPES                               = 0x2\n\tNL80211_IFACE_LIMIT_UNSPEC                              = 0x0\n\tNL80211_IFTYPE_ADHOC                                    = 0x1\n\tNL80211_IFTYPE_AKM_ATTR_IFTYPES                         = 0x1\n\tNL80211_IFTYPE_AKM_ATTR_MAX                             = 0x2\n\tNL80211_IFTYPE_AKM_ATTR_SUITES                          = 0x2\n\tNL80211_IFTYPE_AP                                       = 0x3\n\tNL80211_IFTYPE_AP_VLAN                                  = 0x4\n\tNL80211_IFTYPE_MAX                                      = 0xc\n\tNL80211_IFTYPE_MESH_POINT                               = 0x7\n\tNL80211_IFTYPE_MONITOR                                  = 0x6\n\tNL80211_IFTYPE_NAN                                      = 0xc\n\tNL80211_IFTYPE_OCB                                      = 0xb\n\tNL80211_IFTYPE_P2P_CLIENT                               = 0x8\n\tNL80211_IFTYPE_P2P_DEVICE                               = 0xa\n\tNL80211_IFTYPE_P2P_GO                                   = 0x9\n\tNL80211_IFTYPE_STATION                                  = 0x2\n\tNL80211_IFTYPE_UNSPECIFIED                              = 0x0\n\tNL80211_IFTYPE_WDS                                      = 0x5\n\tNL80211_KCK_EXT_LEN                                     = 0x18\n\tNL80211_KCK_LEN                                         = 0x10\n\tNL80211_KEK_EXT_LEN                                     = 0x20\n\tNL80211_KEK_LEN                                         = 0x10\n\tNL80211_KEY_CIPHER                                      = 0x3\n\tNL80211_KEY_DATA                                        = 0x1\n\tNL80211_KEY_DEFAULT_BEACON                              = 0xa\n\tNL80211_KEY_DEFAULT                                     = 0x5\n\tNL80211_KEY_DEFAULT_MGMT                                = 0x6\n\tNL80211_KEY_DEFAULT_TYPE_MULTICAST                      = 0x2\n\tNL80211_KEY_DEFAULT_TYPES                               = 0x8\n\tNL80211_KEY_DEFAULT_TYPE_UNICAST                        = 0x1\n\tNL80211_KEY_IDX                                         = 0x2\n\tNL80211_KEY_MAX                                         = 0xa\n\tNL80211_KEY_MODE                                        = 0x9\n\tNL80211_KEY_NO_TX                                       = 0x1\n\tNL80211_KEY_RX_TX                                       = 0x0\n\tNL80211_KEY_SEQ                                         = 0x4\n\tNL80211_KEY_SET_TX                                      = 0x2\n\tNL80211_KEY_TYPE                                        = 0x7\n\tNL80211_KEYTYPE_GROUP                                   = 0x0\n\tNL80211_KEYTYPE_PAIRWISE                                = 0x1\n\tNL80211_KEYTYPE_PEERKEY                                 = 0x2\n\tNL80211_MAX_NR_AKM_SUITES                               = 0x2\n\tNL80211_MAX_NR_CIPHER_SUITES                            = 0x5\n\tNL80211_MAX_SUPP_HT_RATES                               = 0x4d\n\tNL80211_MAX_SUPP_RATES                                  = 0x20\n\tNL80211_MAX_SUPP_REG_RULES                              = 0x80\n\tNL80211_MBSSID_CONFIG_ATTR_EMA                          = 0x5\n\tNL80211_MBSSID_CONFIG_ATTR_INDEX                        = 0x3\n\tNL80211_MBSSID_CONFIG_ATTR_MAX                          = 0x5\n\tNL80211_MBSSID_CONFIG_ATTR_MAX_EMA_PROFILE_PERIODICITY  = 0x2\n\tNL80211_MBSSID_CONFIG_ATTR_MAX_INTERFACES               = 0x1\n\tNL80211_MBSSID_CONFIG_ATTR_TX_IFINDEX                   = 0x4\n\tNL80211_MESHCONF_ATTR_MAX                               = 0x1f\n\tNL80211_MESHCONF_AUTO_OPEN_PLINKS                       = 0x7\n\tNL80211_MESHCONF_AWAKE_WINDOW                           = 0x1b\n\tNL80211_MESHCONF_CONFIRM_TIMEOUT                        = 0x2\n\tNL80211_MESHCONF_CONNECTED_TO_AS                        = 0x1f\n\tNL80211_MESHCONF_CONNECTED_TO_GATE                      = 0x1d\n\tNL80211_MESHCONF_ELEMENT_TTL                            = 0xf\n\tNL80211_MESHCONF_FORWARDING                             = 0x13\n\tNL80211_MESHCONF_GATE_ANNOUNCEMENTS                     = 0x11\n\tNL80211_MESHCONF_HOLDING_TIMEOUT                        = 0x3\n\tNL80211_MESHCONF_HT_OPMODE                              = 0x16\n\tNL80211_MESHCONF_HWMP_ACTIVE_PATH_TIMEOUT               = 0xb\n\tNL80211_MESHCONF_HWMP_CONFIRMATION_INTERVAL             = 0x19\n\tNL80211_MESHCONF_HWMP_MAX_PREQ_RETRIES                  = 0x8\n\tNL80211_MESHCONF_HWMP_NET_DIAM_TRVS_TIME                = 0xd\n\tNL80211_MESHCONF_HWMP_PATH_TO_ROOT_TIMEOUT              = 0x17\n\tNL80211_MESHCONF_HWMP_PERR_MIN_INTERVAL                 = 0x12\n\tNL80211_MESHCONF_HWMP_PREQ_MIN_INTERVAL                 = 0xc\n\tNL80211_MESHCONF_HWMP_RANN_INTERVAL                     = 0x10\n\tNL80211_MESHCONF_HWMP_ROOT_INTERVAL                     = 0x18\n\tNL80211_MESHCONF_HWMP_ROOTMODE                          = 0xe\n\tNL80211_MESHCONF_MAX_PEER_LINKS                         = 0x4\n\tNL80211_MESHCONF_MAX_RETRIES                            = 0x5\n\tNL80211_MESHCONF_MIN_DISCOVERY_TIMEOUT                  = 0xa\n\tNL80211_MESHCONF_NOLEARN                                = 0x1e\n\tNL80211_MESHCONF_PATH_REFRESH_TIME                      = 0x9\n\tNL80211_MESHCONF_PLINK_TIMEOUT                          = 0x1c\n\tNL80211_MESHCONF_POWER_MODE                             = 0x1a\n\tNL80211_MESHCONF_RETRY_TIMEOUT                          = 0x1\n\tNL80211_MESHCONF_RSSI_THRESHOLD                         = 0x14\n\tNL80211_MESHCONF_SYNC_OFFSET_MAX_NEIGHBOR               = 0x15\n\tNL80211_MESHCONF_TTL                                    = 0x6\n\tNL80211_MESH_POWER_ACTIVE                               = 0x1\n\tNL80211_MESH_POWER_DEEP_SLEEP                           = 0x3\n\tNL80211_MESH_POWER_LIGHT_SLEEP                          = 0x2\n\tNL80211_MESH_POWER_MAX                                  = 0x3\n\tNL80211_MESH_POWER_UNKNOWN                              = 0x0\n\tNL80211_MESH_SETUP_ATTR_MAX                             = 0x8\n\tNL80211_MESH_SETUP_AUTH_PROTOCOL                        = 0x8\n\tNL80211_MESH_SETUP_ENABLE_VENDOR_METRIC                 = 0x2\n\tNL80211_MESH_SETUP_ENABLE_VENDOR_PATH_SEL               = 0x1\n\tNL80211_MESH_SETUP_ENABLE_VENDOR_SYNC                   = 0x6\n\tNL80211_MESH_SETUP_IE                                   = 0x3\n\tNL80211_MESH_SETUP_USERSPACE_AMPE                       = 0x5\n\tNL80211_MESH_SETUP_USERSPACE_AUTH                       = 0x4\n\tNL80211_MESH_SETUP_USERSPACE_MPM                        = 0x7\n\tNL80211_MESH_SETUP_VENDOR_PATH_SEL_IE                   = 0x3\n\tNL80211_MFP_NO                                          = 0x0\n\tNL80211_MFP_OPTIONAL                                    = 0x2\n\tNL80211_MFP_REQUIRED                                    = 0x1\n\tNL80211_MIN_REMAIN_ON_CHANNEL_TIME                      = 0xa\n\tNL80211_MNTR_FLAG_ACTIVE                                = 0x6\n\tNL80211_MNTR_FLAG_CONTROL                               = 0x3\n\tNL80211_MNTR_FLAG_COOK_FRAMES                           = 0x5\n\tNL80211_MNTR_FLAG_FCSFAIL                               = 0x1\n\tNL80211_MNTR_FLAG_MAX                                   = 0x7\n\tNL80211_MNTR_FLAG_OTHER_BSS                             = 0x4\n\tNL80211_MNTR_FLAG_PLCPFAIL                              = 0x2\n\tNL80211_MPATH_FLAG_ACTIVE                               = 0x1\n\tNL80211_MPATH_FLAG_FIXED                                = 0x8\n\tNL80211_MPATH_FLAG_RESOLVED                             = 0x10\n\tNL80211_MPATH_FLAG_RESOLVING                            = 0x2\n\tNL80211_MPATH_FLAG_SN_VALID                             = 0x4\n\tNL80211_MPATH_INFO_DISCOVERY_RETRIES                    = 0x7\n\tNL80211_MPATH_INFO_DISCOVERY_TIMEOUT                    = 0x6\n\tNL80211_MPATH_INFO_EXPTIME                              = 0x4\n\tNL80211_MPATH_INFO_FLAGS                                = 0x5\n\tNL80211_MPATH_INFO_FRAME_QLEN                           = 0x1\n\tNL80211_MPATH_INFO_HOP_COUNT                            = 0x8\n\tNL80211_MPATH_INFO_MAX                                  = 0x9\n\tNL80211_MPATH_INFO_METRIC                               = 0x3\n\tNL80211_MPATH_INFO_PATH_CHANGE                          = 0x9\n\tNL80211_MPATH_INFO_SN                                   = 0x2\n\tNL80211_MULTICAST_GROUP_CONFIG                          = \"config\"\n\tNL80211_MULTICAST_GROUP_MLME                            = \"mlme\"\n\tNL80211_MULTICAST_GROUP_NAN                             = \"nan\"\n\tNL80211_MULTICAST_GROUP_REG                             = \"regulatory\"\n\tNL80211_MULTICAST_GROUP_SCAN                            = \"scan\"\n\tNL80211_MULTICAST_GROUP_TESTMODE                        = \"testmode\"\n\tNL80211_MULTICAST_GROUP_VENDOR                          = \"vendor\"\n\tNL80211_NAN_FUNC_ATTR_MAX                               = 0x10\n\tNL80211_NAN_FUNC_CLOSE_RANGE                            = 0x9\n\tNL80211_NAN_FUNC_FOLLOW_UP                              = 0x2\n\tNL80211_NAN_FUNC_FOLLOW_UP_DEST                         = 0x8\n\tNL80211_NAN_FUNC_FOLLOW_UP_ID                           = 0x6\n\tNL80211_NAN_FUNC_FOLLOW_UP_REQ_ID                       = 0x7\n\tNL80211_NAN_FUNC_INSTANCE_ID                            = 0xf\n\tNL80211_NAN_FUNC_MAX_TYPE                               = 0x2\n\tNL80211_NAN_FUNC_PUBLISH_BCAST                          = 0x4\n\tNL80211_NAN_FUNC_PUBLISH                                = 0x0\n\tNL80211_NAN_FUNC_PUBLISH_TYPE                           = 0x3\n\tNL80211_NAN_FUNC_RX_MATCH_FILTER                        = 0xd\n\tNL80211_NAN_FUNC_SERVICE_ID                             = 0x2\n\tNL80211_NAN_FUNC_SERVICE_ID_LEN                         = 0x6\n\tNL80211_NAN_FUNC_SERVICE_INFO                           = 0xb\n\tNL80211_NAN_FUNC_SERVICE_SPEC_INFO_MAX_LEN              = 0xff\n\tNL80211_NAN_FUNC_SRF                                    = 0xc\n\tNL80211_NAN_FUNC_SRF_MAX_LEN                            = 0xff\n\tNL80211_NAN_FUNC_SUBSCRIBE_ACTIVE                       = 0x5\n\tNL80211_NAN_FUNC_SUBSCRIBE                              = 0x1\n\tNL80211_NAN_FUNC_TERM_REASON                            = 0x10\n\tNL80211_NAN_FUNC_TERM_REASON_ERROR                      = 0x2\n\tNL80211_NAN_FUNC_TERM_REASON_TTL_EXPIRED                = 0x1\n\tNL80211_NAN_FUNC_TERM_REASON_USER_REQUEST               = 0x0\n\tNL80211_NAN_FUNC_TTL                                    = 0xa\n\tNL80211_NAN_FUNC_TX_MATCH_FILTER                        = 0xe\n\tNL80211_NAN_FUNC_TYPE                                   = 0x1\n\tNL80211_NAN_MATCH_ATTR_MAX                              = 0x2\n\tNL80211_NAN_MATCH_FUNC_LOCAL                            = 0x1\n\tNL80211_NAN_MATCH_FUNC_PEER                             = 0x2\n\tNL80211_NAN_SOLICITED_PUBLISH                           = 0x1\n\tNL80211_NAN_SRF_ATTR_MAX                                = 0x4\n\tNL80211_NAN_SRF_BF                                      = 0x2\n\tNL80211_NAN_SRF_BF_IDX                                  = 0x3\n\tNL80211_NAN_SRF_INCLUDE                                 = 0x1\n\tNL80211_NAN_SRF_MAC_ADDRS                               = 0x4\n\tNL80211_NAN_UNSOLICITED_PUBLISH                         = 0x2\n\tNL80211_NUM_ACS                                         = 0x4\n\tNL80211_P2P_PS_SUPPORTED                                = 0x1\n\tNL80211_P2P_PS_UNSUPPORTED                              = 0x0\n\tNL80211_PKTPAT_MASK                                     = 0x1\n\tNL80211_PKTPAT_OFFSET                                   = 0x3\n\tNL80211_PKTPAT_PATTERN                                  = 0x2\n\tNL80211_PLINK_ACTION_BLOCK                              = 0x2\n\tNL80211_PLINK_ACTION_NO_ACTION                          = 0x0\n\tNL80211_PLINK_ACTION_OPEN                               = 0x1\n\tNL80211_PLINK_BLOCKED                                   = 0x6\n\tNL80211_PLINK_CNF_RCVD                                  = 0x3\n\tNL80211_PLINK_ESTAB                                     = 0x4\n\tNL80211_PLINK_HOLDING                                   = 0x5\n\tNL80211_PLINK_LISTEN                                    = 0x0\n\tNL80211_PLINK_OPN_RCVD                                  = 0x2\n\tNL80211_PLINK_OPN_SNT                                   = 0x1\n\tNL80211_PMKSA_CANDIDATE_BSSID                           = 0x2\n\tNL80211_PMKSA_CANDIDATE_INDEX                           = 0x1\n\tNL80211_PMKSA_CANDIDATE_PREAUTH                         = 0x3\n\tNL80211_PMSR_ATTR_MAX                                   = 0x5\n\tNL80211_PMSR_ATTR_MAX_PEERS                             = 0x1\n\tNL80211_PMSR_ATTR_PEERS                                 = 0x5\n\tNL80211_PMSR_ATTR_RANDOMIZE_MAC_ADDR                    = 0x3\n\tNL80211_PMSR_ATTR_REPORT_AP_TSF                         = 0x2\n\tNL80211_PMSR_ATTR_TYPE_CAPA                             = 0x4\n\tNL80211_PMSR_FTM_CAPA_ATTR_ASAP                         = 0x1\n\tNL80211_PMSR_FTM_CAPA_ATTR_BANDWIDTHS                   = 0x6\n\tNL80211_PMSR_FTM_CAPA_ATTR_MAX_BURSTS_EXPONENT          = 0x7\n\tNL80211_PMSR_FTM_CAPA_ATTR_MAX                          = 0xa\n\tNL80211_PMSR_FTM_CAPA_ATTR_MAX_FTMS_PER_BURST           = 0x8\n\tNL80211_PMSR_FTM_CAPA_ATTR_NON_ASAP                     = 0x2\n\tNL80211_PMSR_FTM_CAPA_ATTR_NON_TRIGGER_BASED            = 0xa\n\tNL80211_PMSR_FTM_CAPA_ATTR_PREAMBLES                    = 0x5\n\tNL80211_PMSR_FTM_CAPA_ATTR_REQ_CIVICLOC                 = 0x4\n\tNL80211_PMSR_FTM_CAPA_ATTR_REQ_LCI                      = 0x3\n\tNL80211_PMSR_FTM_CAPA_ATTR_TRIGGER_BASED                = 0x9\n\tNL80211_PMSR_FTM_FAILURE_BAD_CHANGED_PARAMS             = 0x7\n\tNL80211_PMSR_FTM_FAILURE_INVALID_TIMESTAMP              = 0x5\n\tNL80211_PMSR_FTM_FAILURE_NO_RESPONSE                    = 0x1\n\tNL80211_PMSR_FTM_FAILURE_PEER_BUSY                      = 0x6\n\tNL80211_PMSR_FTM_FAILURE_PEER_NOT_CAPABLE               = 0x4\n\tNL80211_PMSR_FTM_FAILURE_REJECTED                       = 0x2\n\tNL80211_PMSR_FTM_FAILURE_UNSPECIFIED                    = 0x0\n\tNL80211_PMSR_FTM_FAILURE_WRONG_CHANNEL                  = 0x3\n\tNL80211_PMSR_FTM_REQ_ATTR_ASAP                          = 0x1\n\tNL80211_PMSR_FTM_REQ_ATTR_BSS_COLOR                     = 0xd\n\tNL80211_PMSR_FTM_REQ_ATTR_BURST_DURATION                = 0x5\n\tNL80211_PMSR_FTM_REQ_ATTR_BURST_PERIOD                  = 0x4\n\tNL80211_PMSR_FTM_REQ_ATTR_FTMS_PER_BURST                = 0x6\n\tNL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK                  = 0xc\n\tNL80211_PMSR_FTM_REQ_ATTR_MAX                           = 0xd\n\tNL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED             = 0xb\n\tNL80211_PMSR_FTM_REQ_ATTR_NUM_BURSTS_EXP                = 0x3\n\tNL80211_PMSR_FTM_REQ_ATTR_NUM_FTMR_RETRIES              = 0x7\n\tNL80211_PMSR_FTM_REQ_ATTR_PREAMBLE                      = 0x2\n\tNL80211_PMSR_FTM_REQ_ATTR_REQUEST_CIVICLOC              = 0x9\n\tNL80211_PMSR_FTM_REQ_ATTR_REQUEST_LCI                   = 0x8\n\tNL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED                 = 0xa\n\tNL80211_PMSR_FTM_RESP_ATTR_BURST_DURATION               = 0x7\n\tNL80211_PMSR_FTM_RESP_ATTR_BURST_INDEX                  = 0x2\n\tNL80211_PMSR_FTM_RESP_ATTR_BUSY_RETRY_TIME              = 0x5\n\tNL80211_PMSR_FTM_RESP_ATTR_CIVICLOC                     = 0x14\n\tNL80211_PMSR_FTM_RESP_ATTR_DIST_AVG                     = 0x10\n\tNL80211_PMSR_FTM_RESP_ATTR_DIST_SPREAD                  = 0x12\n\tNL80211_PMSR_FTM_RESP_ATTR_DIST_VARIANCE                = 0x11\n\tNL80211_PMSR_FTM_RESP_ATTR_FAIL_REASON                  = 0x1\n\tNL80211_PMSR_FTM_RESP_ATTR_FTMS_PER_BURST               = 0x8\n\tNL80211_PMSR_FTM_RESP_ATTR_LCI                          = 0x13\n\tNL80211_PMSR_FTM_RESP_ATTR_MAX                          = 0x15\n\tNL80211_PMSR_FTM_RESP_ATTR_NUM_BURSTS_EXP               = 0x6\n\tNL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_ATTEMPTS            = 0x3\n\tNL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_SUCCESSES           = 0x4\n\tNL80211_PMSR_FTM_RESP_ATTR_PAD                          = 0x15\n\tNL80211_PMSR_FTM_RESP_ATTR_RSSI_AVG                     = 0x9\n\tNL80211_PMSR_FTM_RESP_ATTR_RSSI_SPREAD                  = 0xa\n\tNL80211_PMSR_FTM_RESP_ATTR_RTT_AVG                      = 0xd\n\tNL80211_PMSR_FTM_RESP_ATTR_RTT_SPREAD                   = 0xf\n\tNL80211_PMSR_FTM_RESP_ATTR_RTT_VARIANCE                 = 0xe\n\tNL80211_PMSR_FTM_RESP_ATTR_RX_RATE                      = 0xc\n\tNL80211_PMSR_FTM_RESP_ATTR_TX_RATE                      = 0xb\n\tNL80211_PMSR_PEER_ATTR_ADDR                             = 0x1\n\tNL80211_PMSR_PEER_ATTR_CHAN                             = 0x2\n\tNL80211_PMSR_PEER_ATTR_MAX                              = 0x4\n\tNL80211_PMSR_PEER_ATTR_REQ                              = 0x3\n\tNL80211_PMSR_PEER_ATTR_RESP                             = 0x4\n\tNL80211_PMSR_REQ_ATTR_DATA                              = 0x1\n\tNL80211_PMSR_REQ_ATTR_GET_AP_TSF                        = 0x2\n\tNL80211_PMSR_REQ_ATTR_MAX                               = 0x2\n\tNL80211_PMSR_RESP_ATTR_AP_TSF                           = 0x4\n\tNL80211_PMSR_RESP_ATTR_DATA                             = 0x1\n\tNL80211_PMSR_RESP_ATTR_FINAL                            = 0x5\n\tNL80211_PMSR_RESP_ATTR_HOST_TIME                        = 0x3\n\tNL80211_PMSR_RESP_ATTR_MAX                              = 0x6\n\tNL80211_PMSR_RESP_ATTR_PAD                              = 0x6\n\tNL80211_PMSR_RESP_ATTR_STATUS                           = 0x2\n\tNL80211_PMSR_STATUS_FAILURE                             = 0x3\n\tNL80211_PMSR_STATUS_REFUSED                             = 0x1\n\tNL80211_PMSR_STATUS_SUCCESS                             = 0x0\n\tNL80211_PMSR_STATUS_TIMEOUT                             = 0x2\n\tNL80211_PMSR_TYPE_FTM                                   = 0x1\n\tNL80211_PMSR_TYPE_INVALID                               = 0x0\n\tNL80211_PMSR_TYPE_MAX                                   = 0x1\n\tNL80211_PREAMBLE_DMG                                    = 0x3\n\tNL80211_PREAMBLE_HE                                     = 0x4\n\tNL80211_PREAMBLE_HT                                     = 0x1\n\tNL80211_PREAMBLE_LEGACY                                 = 0x0\n\tNL80211_PREAMBLE_VHT                                    = 0x2\n\tNL80211_PROBE_RESP_OFFLOAD_SUPPORT_80211U               = 0x8\n\tNL80211_PROBE_RESP_OFFLOAD_SUPPORT_P2P                  = 0x4\n\tNL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS2                 = 0x2\n\tNL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS                  = 0x1\n\tNL80211_PROTOCOL_FEATURE_SPLIT_WIPHY_DUMP               = 0x1\n\tNL80211_PS_DISABLED                                     = 0x0\n\tNL80211_PS_ENABLED                                      = 0x1\n\tNL80211_RADAR_CAC_ABORTED                               = 0x2\n\tNL80211_RADAR_CAC_FINISHED                              = 0x1\n\tNL80211_RADAR_CAC_STARTED                               = 0x5\n\tNL80211_RADAR_DETECTED                                  = 0x0\n\tNL80211_RADAR_NOP_FINISHED                              = 0x3\n\tNL80211_RADAR_PRE_CAC_EXPIRED                           = 0x4\n\tNL80211_RATE_INFO_10_MHZ_WIDTH                          = 0xb\n\tNL80211_RATE_INFO_160_MHZ_WIDTH                         = 0xa\n\tNL80211_RATE_INFO_320_MHZ_WIDTH                         = 0x12\n\tNL80211_RATE_INFO_40_MHZ_WIDTH                          = 0x3\n\tNL80211_RATE_INFO_5_MHZ_WIDTH                           = 0xc\n\tNL80211_RATE_INFO_80_MHZ_WIDTH                          = 0x8\n\tNL80211_RATE_INFO_80P80_MHZ_WIDTH                       = 0x9\n\tNL80211_RATE_INFO_BITRATE32                             = 0x5\n\tNL80211_RATE_INFO_BITRATE                               = 0x1\n\tNL80211_RATE_INFO_EHT_GI_0_8                            = 0x0\n\tNL80211_RATE_INFO_EHT_GI_1_6                            = 0x1\n\tNL80211_RATE_INFO_EHT_GI_3_2                            = 0x2\n\tNL80211_RATE_INFO_EHT_GI                                = 0x15\n\tNL80211_RATE_INFO_EHT_MCS                               = 0x13\n\tNL80211_RATE_INFO_EHT_NSS                               = 0x14\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_106                      = 0x3\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_106P26                   = 0x4\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_242                      = 0x5\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_26                       = 0x0\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_2x996                    = 0xb\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_2x996P484                = 0xc\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_3x996                    = 0xd\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_3x996P484                = 0xe\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_484                      = 0x6\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_484P242                  = 0x7\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_4x996                    = 0xf\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_52                       = 0x1\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_52P26                    = 0x2\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_996                      = 0x8\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_996P484                  = 0x9\n\tNL80211_RATE_INFO_EHT_RU_ALLOC_996P484P242              = 0xa\n\tNL80211_RATE_INFO_EHT_RU_ALLOC                          = 0x16\n\tNL80211_RATE_INFO_HE_1XLTF                              = 0x0\n\tNL80211_RATE_INFO_HE_2XLTF                              = 0x1\n\tNL80211_RATE_INFO_HE_4XLTF                              = 0x2\n\tNL80211_RATE_INFO_HE_DCM                                = 0x10\n\tNL80211_RATE_INFO_HE_GI_0_8                             = 0x0\n\tNL80211_RATE_INFO_HE_GI_1_6                             = 0x1\n\tNL80211_RATE_INFO_HE_GI_3_2                             = 0x2\n\tNL80211_RATE_INFO_HE_GI                                 = 0xf\n\tNL80211_RATE_INFO_HE_MCS                                = 0xd\n\tNL80211_RATE_INFO_HE_NSS                                = 0xe\n\tNL80211_RATE_INFO_HE_RU_ALLOC_106                       = 0x2\n\tNL80211_RATE_INFO_HE_RU_ALLOC_242                       = 0x3\n\tNL80211_RATE_INFO_HE_RU_ALLOC_26                        = 0x0\n\tNL80211_RATE_INFO_HE_RU_ALLOC_2x996                     = 0x6\n\tNL80211_RATE_INFO_HE_RU_ALLOC_484                       = 0x4\n\tNL80211_RATE_INFO_HE_RU_ALLOC_52                        = 0x1\n\tNL80211_RATE_INFO_HE_RU_ALLOC_996                       = 0x5\n\tNL80211_RATE_INFO_HE_RU_ALLOC                           = 0x11\n\tNL80211_RATE_INFO_MAX                                   = 0x1d\n\tNL80211_RATE_INFO_MCS                                   = 0x2\n\tNL80211_RATE_INFO_SHORT_GI                              = 0x4\n\tNL80211_RATE_INFO_VHT_MCS                               = 0x6\n\tNL80211_RATE_INFO_VHT_NSS                               = 0x7\n\tNL80211_REGDOM_SET_BY_CORE                              = 0x0\n\tNL80211_REGDOM_SET_BY_COUNTRY_IE                        = 0x3\n\tNL80211_REGDOM_SET_BY_DRIVER                            = 0x2\n\tNL80211_REGDOM_SET_BY_USER                              = 0x1\n\tNL80211_REGDOM_TYPE_COUNTRY                             = 0x0\n\tNL80211_REGDOM_TYPE_CUSTOM_WORLD                        = 0x2\n\tNL80211_REGDOM_TYPE_INTERSECTION                        = 0x3\n\tNL80211_REGDOM_TYPE_WORLD                               = 0x1\n\tNL80211_REG_RULE_ATTR_MAX                               = 0x8\n\tNL80211_REKEY_DATA_AKM                                  = 0x4\n\tNL80211_REKEY_DATA_KCK                                  = 0x2\n\tNL80211_REKEY_DATA_KEK                                  = 0x1\n\tNL80211_REKEY_DATA_REPLAY_CTR                           = 0x3\n\tNL80211_REPLAY_CTR_LEN                                  = 0x8\n\tNL80211_RRF_AUTO_BW                                     = 0x800\n\tNL80211_RRF_DFS                                         = 0x10\n\tNL80211_RRF_GO_CONCURRENT                               = 0x1000\n\tNL80211_RRF_IR_CONCURRENT                               = 0x1000\n\tNL80211_RRF_NO_160MHZ                                   = 0x10000\n\tNL80211_RRF_NO_320MHZ                                   = 0x40000\n\tNL80211_RRF_NO_80MHZ                                    = 0x8000\n\tNL80211_RRF_NO_CCK                                      = 0x2\n\tNL80211_RRF_NO_HE                                       = 0x20000\n\tNL80211_RRF_NO_HT40                                     = 0x6000\n\tNL80211_RRF_NO_HT40MINUS                                = 0x2000\n\tNL80211_RRF_NO_HT40PLUS                                 = 0x4000\n\tNL80211_RRF_NO_IBSS                                     = 0x80\n\tNL80211_RRF_NO_INDOOR                                   = 0x4\n\tNL80211_RRF_NO_IR_ALL                                   = 0x180\n\tNL80211_RRF_NO_IR                                       = 0x80\n\tNL80211_RRF_NO_OFDM                                     = 0x1\n\tNL80211_RRF_NO_OUTDOOR                                  = 0x8\n\tNL80211_RRF_PASSIVE_SCAN                                = 0x80\n\tNL80211_RRF_PTMP_ONLY                                   = 0x40\n\tNL80211_RRF_PTP_ONLY                                    = 0x20\n\tNL80211_RXMGMT_FLAG_ANSWERED                            = 0x1\n\tNL80211_RXMGMT_FLAG_EXTERNAL_AUTH                       = 0x2\n\tNL80211_SAE_PWE_BOTH                                    = 0x3\n\tNL80211_SAE_PWE_HASH_TO_ELEMENT                         = 0x2\n\tNL80211_SAE_PWE_HUNT_AND_PECK                           = 0x1\n\tNL80211_SAE_PWE_UNSPECIFIED                             = 0x0\n\tNL80211_SAR_ATTR_MAX                                    = 0x2\n\tNL80211_SAR_ATTR_SPECS                                  = 0x2\n\tNL80211_SAR_ATTR_SPECS_END_FREQ                         = 0x4\n\tNL80211_SAR_ATTR_SPECS_MAX                              = 0x4\n\tNL80211_SAR_ATTR_SPECS_POWER                            = 0x1\n\tNL80211_SAR_ATTR_SPECS_RANGE_INDEX                      = 0x2\n\tNL80211_SAR_ATTR_SPECS_START_FREQ                       = 0x3\n\tNL80211_SAR_ATTR_TYPE                                   = 0x1\n\tNL80211_SAR_TYPE_POWER                                  = 0x0\n\tNL80211_SCAN_FLAG_ACCEPT_BCAST_PROBE_RESP               = 0x20\n\tNL80211_SCAN_FLAG_AP                                    = 0x4\n\tNL80211_SCAN_FLAG_COLOCATED_6GHZ                        = 0x4000\n\tNL80211_SCAN_FLAG_FILS_MAX_CHANNEL_TIME                 = 0x10\n\tNL80211_SCAN_FLAG_FLUSH                                 = 0x2\n\tNL80211_SCAN_FLAG_FREQ_KHZ                              = 0x2000\n\tNL80211_SCAN_FLAG_HIGH_ACCURACY                         = 0x400\n\tNL80211_SCAN_FLAG_LOW_POWER                             = 0x200\n\tNL80211_SCAN_FLAG_LOW_PRIORITY                          = 0x1\n\tNL80211_SCAN_FLAG_LOW_SPAN                              = 0x100\n\tNL80211_SCAN_FLAG_MIN_PREQ_CONTENT                      = 0x1000\n\tNL80211_SCAN_FLAG_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION    = 0x80\n\tNL80211_SCAN_FLAG_OCE_PROBE_REQ_HIGH_TX_RATE            = 0x40\n\tNL80211_SCAN_FLAG_RANDOM_ADDR                           = 0x8\n\tNL80211_SCAN_FLAG_RANDOM_SN                             = 0x800\n\tNL80211_SCAN_RSSI_THOLD_OFF                             = -0x12c\n\tNL80211_SCHED_SCAN_MATCH_ATTR_BSSID                     = 0x5\n\tNL80211_SCHED_SCAN_MATCH_ATTR_MAX                       = 0x6\n\tNL80211_SCHED_SCAN_MATCH_ATTR_RELATIVE_RSSI             = 0x3\n\tNL80211_SCHED_SCAN_MATCH_ATTR_RSSI_ADJUST               = 0x4\n\tNL80211_SCHED_SCAN_MATCH_ATTR_RSSI                      = 0x2\n\tNL80211_SCHED_SCAN_MATCH_ATTR_SSID                      = 0x1\n\tNL80211_SCHED_SCAN_MATCH_PER_BAND_RSSI                  = 0x6\n\tNL80211_SCHED_SCAN_PLAN_INTERVAL                        = 0x1\n\tNL80211_SCHED_SCAN_PLAN_ITERATIONS                      = 0x2\n\tNL80211_SCHED_SCAN_PLAN_MAX                             = 0x2\n\tNL80211_SMPS_DYNAMIC                                    = 0x2\n\tNL80211_SMPS_MAX                                        = 0x2\n\tNL80211_SMPS_OFF                                        = 0x0\n\tNL80211_SMPS_STATIC                                     = 0x1\n\tNL80211_STA_BSS_PARAM_BEACON_INTERVAL                   = 0x5\n\tNL80211_STA_BSS_PARAM_CTS_PROT                          = 0x1\n\tNL80211_STA_BSS_PARAM_DTIM_PERIOD                       = 0x4\n\tNL80211_STA_BSS_PARAM_MAX                               = 0x5\n\tNL80211_STA_BSS_PARAM_SHORT_PREAMBLE                    = 0x2\n\tNL80211_STA_BSS_PARAM_SHORT_SLOT_TIME                   = 0x3\n\tNL80211_STA_FLAG_ASSOCIATED                             = 0x7\n\tNL80211_STA_FLAG_AUTHENTICATED                          = 0x5\n\tNL80211_STA_FLAG_AUTHORIZED                             = 0x1\n\tNL80211_STA_FLAG_MAX                                    = 0x8\n\tNL80211_STA_FLAG_MAX_OLD_API                            = 0x6\n\tNL80211_STA_FLAG_MFP                                    = 0x4\n\tNL80211_STA_FLAG_SHORT_PREAMBLE                         = 0x2\n\tNL80211_STA_FLAG_TDLS_PEER                              = 0x6\n\tNL80211_STA_FLAG_WME                                    = 0x3\n\tNL80211_STA_INFO_ACK_SIGNAL_AVG                         = 0x23\n\tNL80211_STA_INFO_ACK_SIGNAL                             = 0x22\n\tNL80211_STA_INFO_AIRTIME_LINK_METRIC                    = 0x29\n\tNL80211_STA_INFO_AIRTIME_WEIGHT                         = 0x28\n\tNL80211_STA_INFO_ASSOC_AT_BOOTTIME                      = 0x2a\n\tNL80211_STA_INFO_BEACON_LOSS                            = 0x12\n\tNL80211_STA_INFO_BEACON_RX                              = 0x1d\n\tNL80211_STA_INFO_BEACON_SIGNAL_AVG                      = 0x1e\n\tNL80211_STA_INFO_BSS_PARAM                              = 0xf\n\tNL80211_STA_INFO_CHAIN_SIGNAL_AVG                       = 0x1a\n\tNL80211_STA_INFO_CHAIN_SIGNAL                           = 0x19\n\tNL80211_STA_INFO_CONNECTED_TIME                         = 0x10\n\tNL80211_STA_INFO_CONNECTED_TO_AS                        = 0x2b\n\tNL80211_STA_INFO_CONNECTED_TO_GATE                      = 0x26\n\tNL80211_STA_INFO_DATA_ACK_SIGNAL_AVG                    = 0x23\n\tNL80211_STA_INFO_EXPECTED_THROUGHPUT                    = 0x1b\n\tNL80211_STA_INFO_FCS_ERROR_COUNT                        = 0x25\n\tNL80211_STA_INFO_INACTIVE_TIME                          = 0x1\n\tNL80211_STA_INFO_LLID                                   = 0x4\n\tNL80211_STA_INFO_LOCAL_PM                               = 0x14\n\tNL80211_STA_INFO_MAX                                    = 0x2b\n\tNL80211_STA_INFO_NONPEER_PM                             = 0x16\n\tNL80211_STA_INFO_PAD                                    = 0x21\n\tNL80211_STA_INFO_PEER_PM                                = 0x15\n\tNL80211_STA_INFO_PLID                                   = 0x5\n\tNL80211_STA_INFO_PLINK_STATE                            = 0x6\n\tNL80211_STA_INFO_RX_BITRATE                             = 0xe\n\tNL80211_STA_INFO_RX_BYTES64                             = 0x17\n\tNL80211_STA_INFO_RX_BYTES                               = 0x2\n\tNL80211_STA_INFO_RX_DROP_MISC                           = 0x1c\n\tNL80211_STA_INFO_RX_DURATION                            = 0x20\n\tNL80211_STA_INFO_RX_MPDUS                               = 0x24\n\tNL80211_STA_INFO_RX_PACKETS                             = 0x9\n\tNL80211_STA_INFO_SIGNAL_AVG                             = 0xd\n\tNL80211_STA_INFO_SIGNAL                                 = 0x7\n\tNL80211_STA_INFO_STA_FLAGS                              = 0x11\n\tNL80211_STA_INFO_TID_STATS                              = 0x1f\n\tNL80211_STA_INFO_T_OFFSET                               = 0x13\n\tNL80211_STA_INFO_TX_BITRATE                             = 0x8\n\tNL80211_STA_INFO_TX_BYTES64                             = 0x18\n\tNL80211_STA_INFO_TX_BYTES                               = 0x3\n\tNL80211_STA_INFO_TX_DURATION                            = 0x27\n\tNL80211_STA_INFO_TX_FAILED                              = 0xc\n\tNL80211_STA_INFO_TX_PACKETS                             = 0xa\n\tNL80211_STA_INFO_TX_RETRIES                             = 0xb\n\tNL80211_STA_WME_MAX                                     = 0x2\n\tNL80211_STA_WME_MAX_SP                                  = 0x2\n\tNL80211_STA_WME_UAPSD_QUEUES                            = 0x1\n\tNL80211_SURVEY_INFO_CHANNEL_TIME_BUSY                   = 0x5\n\tNL80211_SURVEY_INFO_CHANNEL_TIME                        = 0x4\n\tNL80211_SURVEY_INFO_CHANNEL_TIME_EXT_BUSY               = 0x6\n\tNL80211_SURVEY_INFO_CHANNEL_TIME_RX                     = 0x7\n\tNL80211_SURVEY_INFO_CHANNEL_TIME_TX                     = 0x8\n\tNL80211_SURVEY_INFO_FREQUENCY                           = 0x1\n\tNL80211_SURVEY_INFO_FREQUENCY_OFFSET                    = 0xc\n\tNL80211_SURVEY_INFO_IN_USE                              = 0x3\n\tNL80211_SURVEY_INFO_MAX                                 = 0xc\n\tNL80211_SURVEY_INFO_NOISE                               = 0x2\n\tNL80211_SURVEY_INFO_PAD                                 = 0xa\n\tNL80211_SURVEY_INFO_TIME_BSS_RX                         = 0xb\n\tNL80211_SURVEY_INFO_TIME_BUSY                           = 0x5\n\tNL80211_SURVEY_INFO_TIME                                = 0x4\n\tNL80211_SURVEY_INFO_TIME_EXT_BUSY                       = 0x6\n\tNL80211_SURVEY_INFO_TIME_RX                             = 0x7\n\tNL80211_SURVEY_INFO_TIME_SCAN                           = 0x9\n\tNL80211_SURVEY_INFO_TIME_TX                             = 0x8\n\tNL80211_TDLS_DISABLE_LINK                               = 0x4\n\tNL80211_TDLS_DISCOVERY_REQ                              = 0x0\n\tNL80211_TDLS_ENABLE_LINK                                = 0x3\n\tNL80211_TDLS_PEER_HE                                    = 0x8\n\tNL80211_TDLS_PEER_HT                                    = 0x1\n\tNL80211_TDLS_PEER_VHT                                   = 0x2\n\tNL80211_TDLS_PEER_WMM                                   = 0x4\n\tNL80211_TDLS_SETUP                                      = 0x1\n\tNL80211_TDLS_TEARDOWN                                   = 0x2\n\tNL80211_TID_CONFIG_ATTR_AMPDU_CTRL                      = 0x9\n\tNL80211_TID_CONFIG_ATTR_AMSDU_CTRL                      = 0xb\n\tNL80211_TID_CONFIG_ATTR_MAX                             = 0xd\n\tNL80211_TID_CONFIG_ATTR_NOACK                           = 0x6\n\tNL80211_TID_CONFIG_ATTR_OVERRIDE                        = 0x4\n\tNL80211_TID_CONFIG_ATTR_PAD                             = 0x1\n\tNL80211_TID_CONFIG_ATTR_PEER_SUPP                       = 0x3\n\tNL80211_TID_CONFIG_ATTR_RETRY_LONG                      = 0x8\n\tNL80211_TID_CONFIG_ATTR_RETRY_SHORT                     = 0x7\n\tNL80211_TID_CONFIG_ATTR_RTSCTS_CTRL                     = 0xa\n\tNL80211_TID_CONFIG_ATTR_TIDS                            = 0x5\n\tNL80211_TID_CONFIG_ATTR_TX_RATE                         = 0xd\n\tNL80211_TID_CONFIG_ATTR_TX_RATE_TYPE                    = 0xc\n\tNL80211_TID_CONFIG_ATTR_VIF_SUPP                        = 0x2\n\tNL80211_TID_CONFIG_DISABLE                              = 0x1\n\tNL80211_TID_CONFIG_ENABLE                               = 0x0\n\tNL80211_TID_STATS_MAX                                   = 0x6\n\tNL80211_TID_STATS_PAD                                   = 0x5\n\tNL80211_TID_STATS_RX_MSDU                               = 0x1\n\tNL80211_TID_STATS_TX_MSDU                               = 0x2\n\tNL80211_TID_STATS_TX_MSDU_FAILED                        = 0x4\n\tNL80211_TID_STATS_TX_MSDU_RETRIES                       = 0x3\n\tNL80211_TID_STATS_TXQ_STATS                             = 0x6\n\tNL80211_TIMEOUT_ASSOC                                   = 0x3\n\tNL80211_TIMEOUT_AUTH                                    = 0x2\n\tNL80211_TIMEOUT_SCAN                                    = 0x1\n\tNL80211_TIMEOUT_UNSPECIFIED                             = 0x0\n\tNL80211_TKIP_DATA_OFFSET_ENCR_KEY                       = 0x0\n\tNL80211_TKIP_DATA_OFFSET_RX_MIC_KEY                     = 0x18\n\tNL80211_TKIP_DATA_OFFSET_TX_MIC_KEY                     = 0x10\n\tNL80211_TX_POWER_AUTOMATIC                              = 0x0\n\tNL80211_TX_POWER_FIXED                                  = 0x2\n\tNL80211_TX_POWER_LIMITED                                = 0x1\n\tNL80211_TXQ_ATTR_AC                                     = 0x1\n\tNL80211_TXQ_ATTR_AIFS                                   = 0x5\n\tNL80211_TXQ_ATTR_CWMAX                                  = 0x4\n\tNL80211_TXQ_ATTR_CWMIN                                  = 0x3\n\tNL80211_TXQ_ATTR_MAX                                    = 0x5\n\tNL80211_TXQ_ATTR_QUEUE                                  = 0x1\n\tNL80211_TXQ_ATTR_TXOP                                   = 0x2\n\tNL80211_TXQ_Q_BE                                        = 0x2\n\tNL80211_TXQ_Q_BK                                        = 0x3\n\tNL80211_TXQ_Q_VI                                        = 0x1\n\tNL80211_TXQ_Q_VO                                        = 0x0\n\tNL80211_TXQ_STATS_BACKLOG_BYTES                         = 0x1\n\tNL80211_TXQ_STATS_BACKLOG_PACKETS                       = 0x2\n\tNL80211_TXQ_STATS_COLLISIONS                            = 0x8\n\tNL80211_TXQ_STATS_DROPS                                 = 0x4\n\tNL80211_TXQ_STATS_ECN_MARKS                             = 0x5\n\tNL80211_TXQ_STATS_FLOWS                                 = 0x3\n\tNL80211_TXQ_STATS_MAX                                   = 0xb\n\tNL80211_TXQ_STATS_MAX_FLOWS                             = 0xb\n\tNL80211_TXQ_STATS_OVERLIMIT                             = 0x6\n\tNL80211_TXQ_STATS_OVERMEMORY                            = 0x7\n\tNL80211_TXQ_STATS_TX_BYTES                              = 0x9\n\tNL80211_TXQ_STATS_TX_PACKETS                            = 0xa\n\tNL80211_TX_RATE_AUTOMATIC                               = 0x0\n\tNL80211_TXRATE_DEFAULT_GI                               = 0x0\n\tNL80211_TX_RATE_FIXED                                   = 0x2\n\tNL80211_TXRATE_FORCE_LGI                                = 0x2\n\tNL80211_TXRATE_FORCE_SGI                                = 0x1\n\tNL80211_TXRATE_GI                                       = 0x4\n\tNL80211_TXRATE_HE                                       = 0x5\n\tNL80211_TXRATE_HE_GI                                    = 0x6\n\tNL80211_TXRATE_HE_LTF                                   = 0x7\n\tNL80211_TXRATE_HT                                       = 0x2\n\tNL80211_TXRATE_LEGACY                                   = 0x1\n\tNL80211_TX_RATE_LIMITED                                 = 0x1\n\tNL80211_TXRATE_MAX                                      = 0x7\n\tNL80211_TXRATE_MCS                                      = 0x2\n\tNL80211_TXRATE_VHT                                      = 0x3\n\tNL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INT                 = 0x1\n\tNL80211_UNSOL_BCAST_PROBE_RESP_ATTR_MAX                 = 0x2\n\tNL80211_UNSOL_BCAST_PROBE_RESP_ATTR_TMPL                = 0x2\n\tNL80211_USER_REG_HINT_CELL_BASE                         = 0x1\n\tNL80211_USER_REG_HINT_INDOOR                            = 0x2\n\tNL80211_USER_REG_HINT_USER                              = 0x0\n\tNL80211_VENDOR_ID_IS_LINUX                              = 0x80000000\n\tNL80211_VHT_CAPABILITY_LEN                              = 0xc\n\tNL80211_VHT_NSS_MAX                                     = 0x8\n\tNL80211_WIPHY_NAME_MAXLEN                               = 0x40\n\tNL80211_WMMR_AIFSN                                      = 0x3\n\tNL80211_WMMR_CW_MAX                                     = 0x2\n\tNL80211_WMMR_CW_MIN                                     = 0x1\n\tNL80211_WMMR_MAX                                        = 0x4\n\tNL80211_WMMR_TXOP                                       = 0x4\n\tNL80211_WOWLAN_PKTPAT_MASK                              = 0x1\n\tNL80211_WOWLAN_PKTPAT_OFFSET                            = 0x3\n\tNL80211_WOWLAN_PKTPAT_PATTERN                           = 0x2\n\tNL80211_WOWLAN_TCP_DATA_INTERVAL                        = 0x9\n\tNL80211_WOWLAN_TCP_DATA_PAYLOAD                         = 0x6\n\tNL80211_WOWLAN_TCP_DATA_PAYLOAD_SEQ                     = 0x7\n\tNL80211_WOWLAN_TCP_DATA_PAYLOAD_TOKEN                   = 0x8\n\tNL80211_WOWLAN_TCP_DST_IPV4                             = 0x2\n\tNL80211_WOWLAN_TCP_DST_MAC                              = 0x3\n\tNL80211_WOWLAN_TCP_DST_PORT                             = 0x5\n\tNL80211_WOWLAN_TCP_SRC_IPV4                             = 0x1\n\tNL80211_WOWLAN_TCP_SRC_PORT                             = 0x4\n\tNL80211_WOWLAN_TCP_WAKE_MASK                            = 0xb\n\tNL80211_WOWLAN_TCP_WAKE_PAYLOAD                         = 0xa\n\tNL80211_WOWLAN_TRIG_4WAY_HANDSHAKE                      = 0x8\n\tNL80211_WOWLAN_TRIG_ANY                                 = 0x1\n\tNL80211_WOWLAN_TRIG_DISCONNECT                          = 0x2\n\tNL80211_WOWLAN_TRIG_EAP_IDENT_REQUEST                   = 0x7\n\tNL80211_WOWLAN_TRIG_GTK_REKEY_FAILURE                   = 0x6\n\tNL80211_WOWLAN_TRIG_GTK_REKEY_SUPPORTED                 = 0x5\n\tNL80211_WOWLAN_TRIG_MAGIC_PKT                           = 0x3\n\tNL80211_WOWLAN_TRIG_NET_DETECT                          = 0x12\n\tNL80211_WOWLAN_TRIG_NET_DETECT_RESULTS                  = 0x13\n\tNL80211_WOWLAN_TRIG_PKT_PATTERN                         = 0x4\n\tNL80211_WOWLAN_TRIG_RFKILL_RELEASE                      = 0x9\n\tNL80211_WOWLAN_TRIG_TCP_CONNECTION                      = 0xe\n\tNL80211_WOWLAN_TRIG_WAKEUP_PKT_80211                    = 0xa\n\tNL80211_WOWLAN_TRIG_WAKEUP_PKT_80211_LEN                = 0xb\n\tNL80211_WOWLAN_TRIG_WAKEUP_PKT_8023                     = 0xc\n\tNL80211_WOWLAN_TRIG_WAKEUP_PKT_8023_LEN                 = 0xd\n\tNL80211_WOWLAN_TRIG_WAKEUP_TCP_CONNLOST                 = 0x10\n\tNL80211_WOWLAN_TRIG_WAKEUP_TCP_MATCH                    = 0xf\n\tNL80211_WOWLAN_TRIG_WAKEUP_TCP_NOMORETOKENS             = 0x11\n\tNL80211_WPA_VERSION_1                                   = 0x1\n\tNL80211_WPA_VERSION_2                                   = 0x2\n\tNL80211_WPA_VERSION_3                                   = 0x4\n)\n\nconst (\n\tFRA_UNSPEC             = 0x0\n\tFRA_DST                = 0x1\n\tFRA_SRC                = 0x2\n\tFRA_IIFNAME            = 0x3\n\tFRA_GOTO               = 0x4\n\tFRA_UNUSED2            = 0x5\n\tFRA_PRIORITY           = 0x6\n\tFRA_UNUSED3            = 0x7\n\tFRA_UNUSED4            = 0x8\n\tFRA_UNUSED5            = 0x9\n\tFRA_FWMARK             = 0xa\n\tFRA_FLOW               = 0xb\n\tFRA_TUN_ID             = 0xc\n\tFRA_SUPPRESS_IFGROUP   = 0xd\n\tFRA_SUPPRESS_PREFIXLEN = 0xe\n\tFRA_TABLE              = 0xf\n\tFRA_FWMASK             = 0x10\n\tFRA_OIFNAME            = 0x11\n\tFRA_PAD                = 0x12\n\tFRA_L3MDEV             = 0x13\n\tFRA_UID_RANGE          = 0x14\n\tFRA_PROTOCOL           = 0x15\n\tFRA_IP_PROTO           = 0x16\n\tFRA_SPORT_RANGE        = 0x17\n\tFRA_DPORT_RANGE        = 0x18\n\tFR_ACT_UNSPEC          = 0x0\n\tFR_ACT_TO_TBL          = 0x1\n\tFR_ACT_GOTO            = 0x2\n\tFR_ACT_NOP             = 0x3\n\tFR_ACT_RES3            = 0x4\n\tFR_ACT_RES4            = 0x5\n\tFR_ACT_BLACKHOLE       = 0x6\n\tFR_ACT_UNREACHABLE     = 0x7\n\tFR_ACT_PROHIBIT        = 0x8\n)\n\nconst (\n\tAUDIT_NLGRP_NONE    = 0x0\n\tAUDIT_NLGRP_READLOG = 0x1\n)\n\nconst (\n\tTUN_F_CSUM    = 0x1\n\tTUN_F_TSO4    = 0x2\n\tTUN_F_TSO6    = 0x4\n\tTUN_F_TSO_ECN = 0x8\n\tTUN_F_UFO     = 0x10\n\tTUN_F_USO4    = 0x20\n\tTUN_F_USO6    = 0x40\n)\n\nconst (\n\tVIRTIO_NET_HDR_F_NEEDS_CSUM = 0x1\n\tVIRTIO_NET_HDR_F_DATA_VALID = 0x2\n\tVIRTIO_NET_HDR_F_RSC_INFO   = 0x4\n)\n\nconst (\n\tVIRTIO_NET_HDR_GSO_NONE   = 0x0\n\tVIRTIO_NET_HDR_GSO_TCPV4  = 0x1\n\tVIRTIO_NET_HDR_GSO_UDP    = 0x3\n\tVIRTIO_NET_HDR_GSO_TCPV6  = 0x4\n\tVIRTIO_NET_HDR_GSO_UDP_L4 = 0x5\n\tVIRTIO_NET_HDR_GSO_ECN    = 0x80\n)\n\ntype SchedAttr struct {\n\tSize     uint32\n\tPolicy   uint32\n\tFlags    uint64\n\tNice     int32\n\tPriority uint32\n\tRuntime  uint64\n\tDeadline uint64\n\tPeriod   uint64\n\tUtil_min uint32\n\tUtil_max uint32\n}\n\nconst SizeofSchedAttr = 0x38\n\ntype Cachestat_t struct {\n\tCache            uint64\n\tDirty            uint64\n\tWriteback        uint64\n\tEvicted          uint64\n\tRecently_evicted uint64\n}\ntype CachestatRange struct {\n\tOff uint64\n\tLen uint64\n}\n\nconst (\n\tSK_MEMINFO_RMEM_ALLOC          = 0x0\n\tSK_MEMINFO_RCVBUF              = 0x1\n\tSK_MEMINFO_WMEM_ALLOC          = 0x2\n\tSK_MEMINFO_SNDBUF              = 0x3\n\tSK_MEMINFO_FWD_ALLOC           = 0x4\n\tSK_MEMINFO_WMEM_QUEUED         = 0x5\n\tSK_MEMINFO_OPTMEM              = 0x6\n\tSK_MEMINFO_BACKLOG             = 0x7\n\tSK_MEMINFO_DROPS               = 0x8\n\tSK_MEMINFO_VARS                = 0x9\n\tSKNLGRP_NONE                   = 0x0\n\tSKNLGRP_INET_TCP_DESTROY       = 0x1\n\tSKNLGRP_INET_UDP_DESTROY       = 0x2\n\tSKNLGRP_INET6_TCP_DESTROY      = 0x3\n\tSKNLGRP_INET6_UDP_DESTROY      = 0x4\n\tSK_DIAG_BPF_STORAGE_REQ_NONE   = 0x0\n\tSK_DIAG_BPF_STORAGE_REQ_MAP_FD = 0x1\n\tSK_DIAG_BPF_STORAGE_REP_NONE   = 0x0\n\tSK_DIAG_BPF_STORAGE            = 0x1\n\tSK_DIAG_BPF_STORAGE_NONE       = 0x0\n\tSK_DIAG_BPF_STORAGE_PAD        = 0x1\n\tSK_DIAG_BPF_STORAGE_MAP_ID     = 0x2\n\tSK_DIAG_BPF_STORAGE_MAP_VALUE  = 0x3\n)\n\ntype SockDiagReq struct {\n\tFamily   uint8\n\tProtocol uint8\n}\n\nconst RTM_NEWNVLAN = 0x70\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_386.go",
    "content": "// cgo -godefs -objdir=/tmp/386/cgo -- -Wall -Werror -static -I/tmp/386/include -m32 linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build 386 && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x4\n\tSizeofLong = 0x4\n)\n\ntype (\n\t_C_long int32\n)\n\ntype Timespec struct {\n\tSec  int32\n\tNsec int32\n}\n\ntype Timeval struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int32\n\tFreq      int32\n\tMaxerror  int32\n\tEsterror  int32\n\tStatus    int32\n\tConstant  int32\n\tPrecision int32\n\tTolerance int32\n\tTime      Timeval\n\tTick      int32\n\tPpsfreq   int32\n\tJitter    int32\n\tShift     int32\n\tStabil    int32\n\tJitcnt    int32\n\tCalcnt    int32\n\tErrcnt    int32\n\tStbcnt    int32\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int32\n\ntype Tms struct {\n\tUtime  int32\n\tStime  int32\n\tCutime int32\n\tCstime int32\n}\n\ntype Utimbuf struct {\n\tActime  int32\n\tModtime int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Stat_t struct {\n\tDev     uint64\n\t_       uint16\n\t_       uint32\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint64\n\t_       uint16\n\tSize    int64\n\tBlksize int32\n\tBlocks  int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tIno     uint64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]int8\n\t_      [1]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n}\n\nconst (\n\tFADV_DONTNEED = 0x4\n\tFADV_NOREUSE  = 0x5\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint32\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]int8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [16]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x58\n\tSizeofIovec           = 0x8\n\tSizeofMsghdr          = 0x1c\n\tSizeofCmsghdr         = 0xc\n)\n\nconst (\n\tSizeofSockFprog = 0x8\n)\n\ntype PtraceRegs struct {\n\tEbx      int32\n\tEcx      int32\n\tEdx      int32\n\tEsi      int32\n\tEdi      int32\n\tEbp      int32\n\tEax      int32\n\tXds      int32\n\tXes      int32\n\tXfs      int32\n\tXgs      int32\n\tOrig_eax int32\n\tEip      int32\n\tXcs      int32\n\tEflags   int32\n\tEsp      int32\n\tXss      int32\n}\n\ntype FdSet struct {\n\tBits [32]int32\n}\n\ntype Sysinfo_t struct {\n\tUptime    int32\n\tLoads     [3]uint32\n\tTotalram  uint32\n\tFreeram   uint32\n\tSharedram uint32\n\tBufferram uint32\n\tTotalswap uint32\n\tFreeswap  uint32\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint32\n\tFreehigh  uint32\n\tUnit      uint32\n\t_         [8]int8\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint32\n\tFname  [6]int8\n\tFpack  [6]int8\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x80000\n)\n\nconst (\n\tPOLLRDHUP = 0x2000\n)\n\ntype Sigset_t struct {\n\tVal [32]uint32\n}\n\nconst _C__NSIG = 0x41\n\nconst (\n\tSIG_BLOCK   = 0x0\n\tSIG_UNBLOCK = 0x1\n\tSIG_SETMASK = 0x2\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tErrno int32\n\tCode  int32\n\t_     [116]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [19]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\t_                         [4]byte\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]int8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\t_                         [4]byte\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\t_                         [4]byte\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n}\n\ntype cpuMask uint32\n\nconst (\n\t_NCPUBITS = 0x20\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x1\n\tCBitFieldMaskBit1  = 0x2\n\tCBitFieldMaskBit2  = 0x4\n\tCBitFieldMaskBit3  = 0x8\n\tCBitFieldMaskBit4  = 0x10\n\tCBitFieldMaskBit5  = 0x20\n\tCBitFieldMaskBit6  = 0x40\n\tCBitFieldMaskBit7  = 0x80\n\tCBitFieldMaskBit8  = 0x100\n\tCBitFieldMaskBit9  = 0x200\n\tCBitFieldMaskBit10 = 0x400\n\tCBitFieldMaskBit11 = 0x800\n\tCBitFieldMaskBit12 = 0x1000\n\tCBitFieldMaskBit13 = 0x2000\n\tCBitFieldMaskBit14 = 0x4000\n\tCBitFieldMaskBit15 = 0x8000\n\tCBitFieldMaskBit16 = 0x10000\n\tCBitFieldMaskBit17 = 0x20000\n\tCBitFieldMaskBit18 = 0x40000\n\tCBitFieldMaskBit19 = 0x80000\n\tCBitFieldMaskBit20 = 0x100000\n\tCBitFieldMaskBit21 = 0x200000\n\tCBitFieldMaskBit22 = 0x400000\n\tCBitFieldMaskBit23 = 0x800000\n\tCBitFieldMaskBit24 = 0x1000000\n\tCBitFieldMaskBit25 = 0x2000000\n\tCBitFieldMaskBit26 = 0x4000000\n\tCBitFieldMaskBit27 = 0x8000000\n\tCBitFieldMaskBit28 = 0x10000000\n\tCBitFieldMaskBit29 = 0x20000000\n\tCBitFieldMaskBit30 = 0x40000000\n\tCBitFieldMaskBit31 = 0x80000000\n\tCBitFieldMaskBit32 = 0x100000000\n\tCBitFieldMaskBit33 = 0x200000000\n\tCBitFieldMaskBit34 = 0x400000000\n\tCBitFieldMaskBit35 = 0x800000000\n\tCBitFieldMaskBit36 = 0x1000000000\n\tCBitFieldMaskBit37 = 0x2000000000\n\tCBitFieldMaskBit38 = 0x4000000000\n\tCBitFieldMaskBit39 = 0x8000000000\n\tCBitFieldMaskBit40 = 0x10000000000\n\tCBitFieldMaskBit41 = 0x20000000000\n\tCBitFieldMaskBit42 = 0x40000000000\n\tCBitFieldMaskBit43 = 0x80000000000\n\tCBitFieldMaskBit44 = 0x100000000000\n\tCBitFieldMaskBit45 = 0x200000000000\n\tCBitFieldMaskBit46 = 0x400000000000\n\tCBitFieldMaskBit47 = 0x800000000000\n\tCBitFieldMaskBit48 = 0x1000000000000\n\tCBitFieldMaskBit49 = 0x2000000000000\n\tCBitFieldMaskBit50 = 0x4000000000000\n\tCBitFieldMaskBit51 = 0x8000000000000\n\tCBitFieldMaskBit52 = 0x10000000000000\n\tCBitFieldMaskBit53 = 0x20000000000000\n\tCBitFieldMaskBit54 = 0x40000000000000\n\tCBitFieldMaskBit55 = 0x80000000000000\n\tCBitFieldMaskBit56 = 0x100000000000000\n\tCBitFieldMaskBit57 = 0x200000000000000\n\tCBitFieldMaskBit58 = 0x400000000000000\n\tCBitFieldMaskBit59 = 0x800000000000000\n\tCBitFieldMaskBit60 = 0x1000000000000000\n\tCBitFieldMaskBit61 = 0x2000000000000000\n\tCBitFieldMaskBit62 = 0x4000000000000000\n\tCBitFieldMaskBit63 = 0x8000000000000000\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [122]byte\n\t_      uint32\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint32\n}\n\ntype Statfs_t struct {\n\tType    int32\n\tBsize   int32\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint64\n\tFfree   uint64\n\tFsid    Fsid\n\tNamelen int32\n\tFrsize  int32\n\tFlags   int32\n\tSpare   [4]int32\n}\n\ntype TpacketHdr struct {\n\tStatus  uint32\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n}\n\nconst (\n\tSizeofTpacketHdr = 0x18\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int32\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n}\n\nconst (\n\tBLKPG = 0x1269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]int8\n\tDriver_name [64]int8\n\tModule_name [64]int8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]int8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]int8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]int8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]int8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]int8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]int8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]int8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]int8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]int8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]int8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint16\n\tInode            uint32\n\tRdevice          uint16\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]int8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint32\n\tReserved         [4]int8\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]int8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]int8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]int8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n}\n\nconst (\n\tPPS_GETPARAMS = 0x800470a1\n\tPPS_SETPARAMS = 0x400470a2\n\tPPS_GETCAP    = 0x800470a3\n\tPPS_FETCH     = 0xc00470a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x800\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint16\n\t_    [2]uint8\n\tSeq  uint16\n\t_    uint16\n\t_    uint32\n\t_    uint32\n}\ntype SysvShmDesc struct {\n\tPerm       SysvIpcPerm\n\tSegsz      uint32\n\tAtime      uint32\n\tAtime_high uint32\n\tDtime      uint32\n\tDtime_high uint32\n\tCtime      uint32\n\tCtime_high uint32\n\tCpid       int32\n\tLpid       int32\n\tNattch     uint32\n\t_          uint32\n\t_          uint32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go",
    "content": "// cgo -godefs -objdir=/tmp/amd64/cgo -- -Wall -Werror -static -I/tmp/amd64/include -m64 linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x8\n\tSizeofLong = 0x8\n)\n\ntype (\n\t_C_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int64\n\tFreq      int64\n\tMaxerror  int64\n\tEsterror  int64\n\tStatus    int32\n\tConstant  int64\n\tPrecision int64\n\tTolerance int64\n\tTime      Timeval\n\tTick      int64\n\tPpsfreq   int64\n\tJitter    int64\n\tShift     int32\n\tStabil    int64\n\tJitcnt    int64\n\tCalcnt    int64\n\tErrcnt    int64\n\tStbcnt    int64\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int64\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tNlink   uint64\n\tMode    uint32\n\tUid     uint32\n\tGid     uint32\n\t_       int32\n\tRdev    uint64\n\tSize    int64\n\tBlksize int64\n\tBlocks  int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\t_       [3]int64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]int8\n\t_      [5]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n\tName [0]byte\n\t_    [4]byte\n}\n\nconst (\n\tFADV_DONTNEED = 0x4\n\tFADV_NOREUSE  = 0x5\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint64\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]int8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint64\n\tControl    *byte\n\tControllen uint64\n\tFlags      int32\n\t_          [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint64\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [24]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x60\n\tSizeofIovec           = 0x10\n\tSizeofMsghdr          = 0x38\n\tSizeofCmsghdr         = 0x10\n)\n\nconst (\n\tSizeofSockFprog = 0x10\n)\n\ntype PtraceRegs struct {\n\tR15      uint64\n\tR14      uint64\n\tR13      uint64\n\tR12      uint64\n\tRbp      uint64\n\tRbx      uint64\n\tR11      uint64\n\tR10      uint64\n\tR9       uint64\n\tR8       uint64\n\tRax      uint64\n\tRcx      uint64\n\tRdx      uint64\n\tRsi      uint64\n\tRdi      uint64\n\tOrig_rax uint64\n\tRip      uint64\n\tCs       uint64\n\tEflags   uint64\n\tRsp      uint64\n\tSs       uint64\n\tFs_base  uint64\n\tGs_base  uint64\n\tDs       uint64\n\tEs       uint64\n\tFs       uint64\n\tGs       uint64\n}\n\ntype FdSet struct {\n\tBits [16]int64\n}\n\ntype Sysinfo_t struct {\n\tUptime    int64\n\tLoads     [3]uint64\n\tTotalram  uint64\n\tFreeram   uint64\n\tSharedram uint64\n\tBufferram uint64\n\tTotalswap uint64\n\tFreeswap  uint64\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint64\n\tFreehigh  uint64\n\tUnit      uint32\n\t_         [0]int8\n\t_         [4]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint64\n\tFname  [6]int8\n\tFpack  [6]int8\n\t_      [4]byte\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x80000\n)\n\nconst (\n\tPOLLRDHUP = 0x2000\n)\n\ntype Sigset_t struct {\n\tVal [16]uint64\n}\n\nconst _C__NSIG = 0x41\n\nconst (\n\tSIG_BLOCK   = 0x0\n\tSIG_UNBLOCK = 0x1\n\tSIG_SETMASK = 0x2\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tErrno int32\n\tCode  int32\n\t_     int32\n\t_     [112]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [19]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]int8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n}\n\ntype cpuMask uint64\n\nconst (\n\t_NCPUBITS = 0x40\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x1\n\tCBitFieldMaskBit1  = 0x2\n\tCBitFieldMaskBit2  = 0x4\n\tCBitFieldMaskBit3  = 0x8\n\tCBitFieldMaskBit4  = 0x10\n\tCBitFieldMaskBit5  = 0x20\n\tCBitFieldMaskBit6  = 0x40\n\tCBitFieldMaskBit7  = 0x80\n\tCBitFieldMaskBit8  = 0x100\n\tCBitFieldMaskBit9  = 0x200\n\tCBitFieldMaskBit10 = 0x400\n\tCBitFieldMaskBit11 = 0x800\n\tCBitFieldMaskBit12 = 0x1000\n\tCBitFieldMaskBit13 = 0x2000\n\tCBitFieldMaskBit14 = 0x4000\n\tCBitFieldMaskBit15 = 0x8000\n\tCBitFieldMaskBit16 = 0x10000\n\tCBitFieldMaskBit17 = 0x20000\n\tCBitFieldMaskBit18 = 0x40000\n\tCBitFieldMaskBit19 = 0x80000\n\tCBitFieldMaskBit20 = 0x100000\n\tCBitFieldMaskBit21 = 0x200000\n\tCBitFieldMaskBit22 = 0x400000\n\tCBitFieldMaskBit23 = 0x800000\n\tCBitFieldMaskBit24 = 0x1000000\n\tCBitFieldMaskBit25 = 0x2000000\n\tCBitFieldMaskBit26 = 0x4000000\n\tCBitFieldMaskBit27 = 0x8000000\n\tCBitFieldMaskBit28 = 0x10000000\n\tCBitFieldMaskBit29 = 0x20000000\n\tCBitFieldMaskBit30 = 0x40000000\n\tCBitFieldMaskBit31 = 0x80000000\n\tCBitFieldMaskBit32 = 0x100000000\n\tCBitFieldMaskBit33 = 0x200000000\n\tCBitFieldMaskBit34 = 0x400000000\n\tCBitFieldMaskBit35 = 0x800000000\n\tCBitFieldMaskBit36 = 0x1000000000\n\tCBitFieldMaskBit37 = 0x2000000000\n\tCBitFieldMaskBit38 = 0x4000000000\n\tCBitFieldMaskBit39 = 0x8000000000\n\tCBitFieldMaskBit40 = 0x10000000000\n\tCBitFieldMaskBit41 = 0x20000000000\n\tCBitFieldMaskBit42 = 0x40000000000\n\tCBitFieldMaskBit43 = 0x80000000000\n\tCBitFieldMaskBit44 = 0x100000000000\n\tCBitFieldMaskBit45 = 0x200000000000\n\tCBitFieldMaskBit46 = 0x400000000000\n\tCBitFieldMaskBit47 = 0x800000000000\n\tCBitFieldMaskBit48 = 0x1000000000000\n\tCBitFieldMaskBit49 = 0x2000000000000\n\tCBitFieldMaskBit50 = 0x4000000000000\n\tCBitFieldMaskBit51 = 0x8000000000000\n\tCBitFieldMaskBit52 = 0x10000000000000\n\tCBitFieldMaskBit53 = 0x20000000000000\n\tCBitFieldMaskBit54 = 0x40000000000000\n\tCBitFieldMaskBit55 = 0x80000000000000\n\tCBitFieldMaskBit56 = 0x100000000000000\n\tCBitFieldMaskBit57 = 0x200000000000000\n\tCBitFieldMaskBit58 = 0x400000000000000\n\tCBitFieldMaskBit59 = 0x800000000000000\n\tCBitFieldMaskBit60 = 0x1000000000000000\n\tCBitFieldMaskBit61 = 0x2000000000000000\n\tCBitFieldMaskBit62 = 0x4000000000000000\n\tCBitFieldMaskBit63 = 0x8000000000000000\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [118]byte\n\t_      uint64\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint64\n}\n\ntype Statfs_t struct {\n\tType    int64\n\tBsize   int64\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint64\n\tFfree   uint64\n\tFsid    Fsid\n\tNamelen int64\n\tFrsize  int64\n\tFlags   int64\n\tSpare   [4]int64\n}\n\ntype TpacketHdr struct {\n\tStatus  uint64\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n\t_       [4]byte\n}\n\nconst (\n\tSizeofTpacketHdr = 0x20\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int64\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG = 0x1269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]int8\n\tDriver_name [64]int8\n\tModule_name [64]int8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]int8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]int8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]int8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]int8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]int8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]int8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]int8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]int8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]int8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]int8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint64\n\tInode            uint64\n\tRdevice          uint64\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]int8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n\tReserved         [4]int8\n\t_                [4]byte\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]int8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]int8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]int8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n\t_               [4]byte\n}\n\nconst (\n\tPPS_GETPARAMS = 0x800870a1\n\tPPS_SETPARAMS = 0x400870a2\n\tPPS_GETCAP    = 0x800870a3\n\tPPS_FETCH     = 0xc00870a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x800\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint32\n\t_    [0]uint8\n\tSeq  uint16\n\t_    uint16\n\t_    uint64\n\t_    uint64\n}\ntype SysvShmDesc struct {\n\tPerm   SysvIpcPerm\n\tSegsz  uint64\n\tAtime  int64\n\tDtime  int64\n\tCtime  int64\n\tCpid   int32\n\tLpid   int32\n\tNattch uint64\n\t_      uint64\n\t_      uint64\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_arm.go",
    "content": "// cgo -godefs -objdir=/tmp/arm/cgo -- -Wall -Werror -static -I/tmp/arm/include linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x4\n\tSizeofLong = 0x4\n)\n\ntype (\n\t_C_long int32\n)\n\ntype Timespec struct {\n\tSec  int32\n\tNsec int32\n}\n\ntype Timeval struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int32\n\tFreq      int32\n\tMaxerror  int32\n\tEsterror  int32\n\tStatus    int32\n\tConstant  int32\n\tPrecision int32\n\tTolerance int32\n\tTime      Timeval\n\tTick      int32\n\tPpsfreq   int32\n\tJitter    int32\n\tShift     int32\n\tStabil    int32\n\tJitcnt    int32\n\tCalcnt    int32\n\tErrcnt    int32\n\tStbcnt    int32\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int32\n\ntype Tms struct {\n\tUtime  int32\n\tStime  int32\n\tCutime int32\n\tCstime int32\n}\n\ntype Utimbuf struct {\n\tActime  int32\n\tModtime int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Stat_t struct {\n\tDev     uint64\n\t_       uint16\n\t_       uint32\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint64\n\t_       uint16\n\t_       [4]byte\n\tSize    int64\n\tBlksize int32\n\t_       [4]byte\n\tBlocks  int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tIno     uint64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]uint8\n\t_      [5]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\t_      [4]byte\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n\tName [0]byte\n\t_    [4]byte\n}\n\nconst (\n\tFADV_DONTNEED = 0x4\n\tFADV_NOREUSE  = 0x5\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint32\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]uint8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]uint8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [16]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x58\n\tSizeofIovec           = 0x8\n\tSizeofMsghdr          = 0x1c\n\tSizeofCmsghdr         = 0xc\n)\n\nconst (\n\tSizeofSockFprog = 0x8\n)\n\ntype PtraceRegs struct {\n\tUregs [18]uint32\n}\n\ntype FdSet struct {\n\tBits [32]int32\n}\n\ntype Sysinfo_t struct {\n\tUptime    int32\n\tLoads     [3]uint32\n\tTotalram  uint32\n\tFreeram   uint32\n\tSharedram uint32\n\tBufferram uint32\n\tTotalswap uint32\n\tFreeswap  uint32\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint32\n\tFreehigh  uint32\n\tUnit      uint32\n\t_         [8]uint8\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint32\n\tFname  [6]uint8\n\tFpack  [6]uint8\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\tPadFd  int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x80000\n)\n\nconst (\n\tPOLLRDHUP = 0x2000\n)\n\ntype Sigset_t struct {\n\tVal [32]uint32\n}\n\nconst _C__NSIG = 0x41\n\nconst (\n\tSIG_BLOCK   = 0x0\n\tSIG_UNBLOCK = 0x1\n\tSIG_SETMASK = 0x2\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tErrno int32\n\tCode  int32\n\t_     [116]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [19]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\t_                         [4]byte\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]uint8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\t_                         [4]byte\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\t_                         [4]byte\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n}\n\ntype cpuMask uint32\n\nconst (\n\t_NCPUBITS = 0x20\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x1\n\tCBitFieldMaskBit1  = 0x2\n\tCBitFieldMaskBit2  = 0x4\n\tCBitFieldMaskBit3  = 0x8\n\tCBitFieldMaskBit4  = 0x10\n\tCBitFieldMaskBit5  = 0x20\n\tCBitFieldMaskBit6  = 0x40\n\tCBitFieldMaskBit7  = 0x80\n\tCBitFieldMaskBit8  = 0x100\n\tCBitFieldMaskBit9  = 0x200\n\tCBitFieldMaskBit10 = 0x400\n\tCBitFieldMaskBit11 = 0x800\n\tCBitFieldMaskBit12 = 0x1000\n\tCBitFieldMaskBit13 = 0x2000\n\tCBitFieldMaskBit14 = 0x4000\n\tCBitFieldMaskBit15 = 0x8000\n\tCBitFieldMaskBit16 = 0x10000\n\tCBitFieldMaskBit17 = 0x20000\n\tCBitFieldMaskBit18 = 0x40000\n\tCBitFieldMaskBit19 = 0x80000\n\tCBitFieldMaskBit20 = 0x100000\n\tCBitFieldMaskBit21 = 0x200000\n\tCBitFieldMaskBit22 = 0x400000\n\tCBitFieldMaskBit23 = 0x800000\n\tCBitFieldMaskBit24 = 0x1000000\n\tCBitFieldMaskBit25 = 0x2000000\n\tCBitFieldMaskBit26 = 0x4000000\n\tCBitFieldMaskBit27 = 0x8000000\n\tCBitFieldMaskBit28 = 0x10000000\n\tCBitFieldMaskBit29 = 0x20000000\n\tCBitFieldMaskBit30 = 0x40000000\n\tCBitFieldMaskBit31 = 0x80000000\n\tCBitFieldMaskBit32 = 0x100000000\n\tCBitFieldMaskBit33 = 0x200000000\n\tCBitFieldMaskBit34 = 0x400000000\n\tCBitFieldMaskBit35 = 0x800000000\n\tCBitFieldMaskBit36 = 0x1000000000\n\tCBitFieldMaskBit37 = 0x2000000000\n\tCBitFieldMaskBit38 = 0x4000000000\n\tCBitFieldMaskBit39 = 0x8000000000\n\tCBitFieldMaskBit40 = 0x10000000000\n\tCBitFieldMaskBit41 = 0x20000000000\n\tCBitFieldMaskBit42 = 0x40000000000\n\tCBitFieldMaskBit43 = 0x80000000000\n\tCBitFieldMaskBit44 = 0x100000000000\n\tCBitFieldMaskBit45 = 0x200000000000\n\tCBitFieldMaskBit46 = 0x400000000000\n\tCBitFieldMaskBit47 = 0x800000000000\n\tCBitFieldMaskBit48 = 0x1000000000000\n\tCBitFieldMaskBit49 = 0x2000000000000\n\tCBitFieldMaskBit50 = 0x4000000000000\n\tCBitFieldMaskBit51 = 0x8000000000000\n\tCBitFieldMaskBit52 = 0x10000000000000\n\tCBitFieldMaskBit53 = 0x20000000000000\n\tCBitFieldMaskBit54 = 0x40000000000000\n\tCBitFieldMaskBit55 = 0x80000000000000\n\tCBitFieldMaskBit56 = 0x100000000000000\n\tCBitFieldMaskBit57 = 0x200000000000000\n\tCBitFieldMaskBit58 = 0x400000000000000\n\tCBitFieldMaskBit59 = 0x800000000000000\n\tCBitFieldMaskBit60 = 0x1000000000000000\n\tCBitFieldMaskBit61 = 0x2000000000000000\n\tCBitFieldMaskBit62 = 0x4000000000000000\n\tCBitFieldMaskBit63 = 0x8000000000000000\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [122]byte\n\t_      uint32\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint32\n}\n\ntype Statfs_t struct {\n\tType    int32\n\tBsize   int32\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint64\n\tFfree   uint64\n\tFsid    Fsid\n\tNamelen int32\n\tFrsize  int32\n\tFlags   int32\n\tSpare   [4]int32\n\t_       [4]byte\n}\n\ntype TpacketHdr struct {\n\tStatus  uint32\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n}\n\nconst (\n\tSizeofTpacketHdr = 0x18\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int32\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG = 0x1269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]uint8\n\tDriver_name [64]uint8\n\tModule_name [64]uint8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]uint8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]uint8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]uint8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]uint8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]uint8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]uint8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]uint8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]uint8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]uint8\n\tGeniv       [64]uint8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]uint8\n\tGeniv       [64]uint8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]uint8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]uint8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]uint8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]uint8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]uint8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint16\n\tInode            uint32\n\tRdevice          uint16\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]uint8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint32\n\tReserved         [4]uint8\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]uint8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]uint8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]uint8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n\t_               [4]byte\n}\n\nconst (\n\tPPS_GETPARAMS = 0x800470a1\n\tPPS_SETPARAMS = 0x400470a2\n\tPPS_GETCAP    = 0x800470a3\n\tPPS_FETCH     = 0xc00470a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x800\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint16\n\t_    [2]uint8\n\tSeq  uint16\n\t_    uint16\n\t_    uint32\n\t_    uint32\n}\ntype SysvShmDesc struct {\n\tPerm       SysvIpcPerm\n\tSegsz      uint32\n\tAtime      uint32\n\tAtime_high uint32\n\tDtime      uint32\n\tDtime_high uint32\n\tCtime      uint32\n\tCtime_high uint32\n\tCpid       int32\n\tLpid       int32\n\tNattch     uint32\n\t_          uint32\n\t_          uint32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go",
    "content": "// cgo -godefs -objdir=/tmp/arm64/cgo -- -Wall -Werror -static -I/tmp/arm64/include -fsigned-char linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x8\n\tSizeofLong = 0x8\n)\n\ntype (\n\t_C_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int64\n\tFreq      int64\n\tMaxerror  int64\n\tEsterror  int64\n\tStatus    int32\n\tConstant  int64\n\tPrecision int64\n\tTolerance int64\n\tTime      Timeval\n\tTick      int64\n\tPpsfreq   int64\n\tJitter    int64\n\tShift     int32\n\tStabil    int64\n\tJitcnt    int64\n\tCalcnt    int64\n\tErrcnt    int64\n\tStbcnt    int64\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int64\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint64\n\t_       uint64\n\tSize    int64\n\tBlksize int32\n\t_       int32\n\tBlocks  int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\t_       [2]int32\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]int8\n\t_      [5]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n\tName [0]byte\n\t_    [4]byte\n}\n\nconst (\n\tFADV_DONTNEED = 0x4\n\tFADV_NOREUSE  = 0x5\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint64\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]int8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint64\n\tControl    *byte\n\tControllen uint64\n\tFlags      int32\n\t_          [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint64\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [24]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x60\n\tSizeofIovec           = 0x10\n\tSizeofMsghdr          = 0x38\n\tSizeofCmsghdr         = 0x10\n)\n\nconst (\n\tSizeofSockFprog = 0x10\n)\n\ntype PtraceRegs struct {\n\tRegs   [31]uint64\n\tSp     uint64\n\tPc     uint64\n\tPstate uint64\n}\n\ntype FdSet struct {\n\tBits [16]int64\n}\n\ntype Sysinfo_t struct {\n\tUptime    int64\n\tLoads     [3]uint64\n\tTotalram  uint64\n\tFreeram   uint64\n\tSharedram uint64\n\tBufferram uint64\n\tTotalswap uint64\n\tFreeswap  uint64\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint64\n\tFreehigh  uint64\n\tUnit      uint32\n\t_         [0]int8\n\t_         [4]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint64\n\tFname  [6]int8\n\tFpack  [6]int8\n\t_      [4]byte\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\tPadFd  int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x80000\n)\n\nconst (\n\tPOLLRDHUP = 0x2000\n)\n\ntype Sigset_t struct {\n\tVal [16]uint64\n}\n\nconst _C__NSIG = 0x41\n\nconst (\n\tSIG_BLOCK   = 0x0\n\tSIG_UNBLOCK = 0x1\n\tSIG_SETMASK = 0x2\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tErrno int32\n\tCode  int32\n\t_     int32\n\t_     [112]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [19]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]int8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n}\n\ntype cpuMask uint64\n\nconst (\n\t_NCPUBITS = 0x40\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x1\n\tCBitFieldMaskBit1  = 0x2\n\tCBitFieldMaskBit2  = 0x4\n\tCBitFieldMaskBit3  = 0x8\n\tCBitFieldMaskBit4  = 0x10\n\tCBitFieldMaskBit5  = 0x20\n\tCBitFieldMaskBit6  = 0x40\n\tCBitFieldMaskBit7  = 0x80\n\tCBitFieldMaskBit8  = 0x100\n\tCBitFieldMaskBit9  = 0x200\n\tCBitFieldMaskBit10 = 0x400\n\tCBitFieldMaskBit11 = 0x800\n\tCBitFieldMaskBit12 = 0x1000\n\tCBitFieldMaskBit13 = 0x2000\n\tCBitFieldMaskBit14 = 0x4000\n\tCBitFieldMaskBit15 = 0x8000\n\tCBitFieldMaskBit16 = 0x10000\n\tCBitFieldMaskBit17 = 0x20000\n\tCBitFieldMaskBit18 = 0x40000\n\tCBitFieldMaskBit19 = 0x80000\n\tCBitFieldMaskBit20 = 0x100000\n\tCBitFieldMaskBit21 = 0x200000\n\tCBitFieldMaskBit22 = 0x400000\n\tCBitFieldMaskBit23 = 0x800000\n\tCBitFieldMaskBit24 = 0x1000000\n\tCBitFieldMaskBit25 = 0x2000000\n\tCBitFieldMaskBit26 = 0x4000000\n\tCBitFieldMaskBit27 = 0x8000000\n\tCBitFieldMaskBit28 = 0x10000000\n\tCBitFieldMaskBit29 = 0x20000000\n\tCBitFieldMaskBit30 = 0x40000000\n\tCBitFieldMaskBit31 = 0x80000000\n\tCBitFieldMaskBit32 = 0x100000000\n\tCBitFieldMaskBit33 = 0x200000000\n\tCBitFieldMaskBit34 = 0x400000000\n\tCBitFieldMaskBit35 = 0x800000000\n\tCBitFieldMaskBit36 = 0x1000000000\n\tCBitFieldMaskBit37 = 0x2000000000\n\tCBitFieldMaskBit38 = 0x4000000000\n\tCBitFieldMaskBit39 = 0x8000000000\n\tCBitFieldMaskBit40 = 0x10000000000\n\tCBitFieldMaskBit41 = 0x20000000000\n\tCBitFieldMaskBit42 = 0x40000000000\n\tCBitFieldMaskBit43 = 0x80000000000\n\tCBitFieldMaskBit44 = 0x100000000000\n\tCBitFieldMaskBit45 = 0x200000000000\n\tCBitFieldMaskBit46 = 0x400000000000\n\tCBitFieldMaskBit47 = 0x800000000000\n\tCBitFieldMaskBit48 = 0x1000000000000\n\tCBitFieldMaskBit49 = 0x2000000000000\n\tCBitFieldMaskBit50 = 0x4000000000000\n\tCBitFieldMaskBit51 = 0x8000000000000\n\tCBitFieldMaskBit52 = 0x10000000000000\n\tCBitFieldMaskBit53 = 0x20000000000000\n\tCBitFieldMaskBit54 = 0x40000000000000\n\tCBitFieldMaskBit55 = 0x80000000000000\n\tCBitFieldMaskBit56 = 0x100000000000000\n\tCBitFieldMaskBit57 = 0x200000000000000\n\tCBitFieldMaskBit58 = 0x400000000000000\n\tCBitFieldMaskBit59 = 0x800000000000000\n\tCBitFieldMaskBit60 = 0x1000000000000000\n\tCBitFieldMaskBit61 = 0x2000000000000000\n\tCBitFieldMaskBit62 = 0x4000000000000000\n\tCBitFieldMaskBit63 = 0x8000000000000000\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [118]byte\n\t_      uint64\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint64\n}\n\ntype Statfs_t struct {\n\tType    int64\n\tBsize   int64\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint64\n\tFfree   uint64\n\tFsid    Fsid\n\tNamelen int64\n\tFrsize  int64\n\tFlags   int64\n\tSpare   [4]int64\n}\n\ntype TpacketHdr struct {\n\tStatus  uint64\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n\t_       [4]byte\n}\n\nconst (\n\tSizeofTpacketHdr = 0x20\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int64\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG = 0x1269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]int8\n\tDriver_name [64]int8\n\tModule_name [64]int8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]int8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]int8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]int8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]int8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]int8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]int8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]int8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]int8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]int8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]int8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint32\n\tInode            uint64\n\tRdevice          uint32\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]int8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n\tReserved         [4]int8\n\t_                [4]byte\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]int8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]int8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]int8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n\t_               [4]byte\n}\n\nconst (\n\tPPS_GETPARAMS = 0x800870a1\n\tPPS_SETPARAMS = 0x400870a2\n\tPPS_GETCAP    = 0x800870a3\n\tPPS_FETCH     = 0xc00870a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x800\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint32\n\t_    [0]uint8\n\tSeq  uint16\n\t_    uint16\n\t_    uint64\n\t_    uint64\n}\ntype SysvShmDesc struct {\n\tPerm   SysvIpcPerm\n\tSegsz  uint64\n\tAtime  int64\n\tDtime  int64\n\tCtime  int64\n\tCpid   int32\n\tLpid   int32\n\tNattch uint64\n\t_      uint64\n\t_      uint64\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go",
    "content": "// cgo -godefs -objdir=/tmp/loong64/cgo -- -Wall -Werror -static -I/tmp/loong64/include linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build loong64 && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x8\n\tSizeofLong = 0x8\n)\n\ntype (\n\t_C_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int64\n\tFreq      int64\n\tMaxerror  int64\n\tEsterror  int64\n\tStatus    int32\n\tConstant  int64\n\tPrecision int64\n\tTolerance int64\n\tTime      Timeval\n\tTick      int64\n\tPpsfreq   int64\n\tJitter    int64\n\tShift     int32\n\tStabil    int64\n\tJitcnt    int64\n\tCalcnt    int64\n\tErrcnt    int64\n\tStbcnt    int64\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int64\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint64\n\t_       uint64\n\tSize    int64\n\tBlksize int32\n\t_       int32\n\tBlocks  int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\t_       [2]int32\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]int8\n\t_      [5]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n\tName [0]byte\n\t_    [4]byte\n}\n\nconst (\n\tFADV_DONTNEED = 0x4\n\tFADV_NOREUSE  = 0x5\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint64\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]int8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint64\n\tControl    *byte\n\tControllen uint64\n\tFlags      int32\n\t_          [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint64\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [24]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x60\n\tSizeofIovec           = 0x10\n\tSizeofMsghdr          = 0x38\n\tSizeofCmsghdr         = 0x10\n)\n\nconst (\n\tSizeofSockFprog = 0x10\n)\n\ntype PtraceRegs struct {\n\tRegs     [32]uint64\n\tOrig_a0  uint64\n\tEra      uint64\n\tBadv     uint64\n\tReserved [10]uint64\n}\n\ntype FdSet struct {\n\tBits [16]int64\n}\n\ntype Sysinfo_t struct {\n\tUptime    int64\n\tLoads     [3]uint64\n\tTotalram  uint64\n\tFreeram   uint64\n\tSharedram uint64\n\tBufferram uint64\n\tTotalswap uint64\n\tFreeswap  uint64\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint64\n\tFreehigh  uint64\n\tUnit      uint32\n\t_         [0]int8\n\t_         [4]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint64\n\tFname  [6]int8\n\tFpack  [6]int8\n\t_      [4]byte\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\t_      int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x80000\n)\n\nconst (\n\tPOLLRDHUP = 0x2000\n)\n\ntype Sigset_t struct {\n\tVal [16]uint64\n}\n\nconst _C__NSIG = 0x41\n\nconst (\n\tSIG_BLOCK   = 0x0\n\tSIG_UNBLOCK = 0x1\n\tSIG_SETMASK = 0x2\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tErrno int32\n\tCode  int32\n\t_     int32\n\t_     [112]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [19]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]int8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n}\n\ntype cpuMask uint64\n\nconst (\n\t_NCPUBITS = 0x40\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x1\n\tCBitFieldMaskBit1  = 0x2\n\tCBitFieldMaskBit2  = 0x4\n\tCBitFieldMaskBit3  = 0x8\n\tCBitFieldMaskBit4  = 0x10\n\tCBitFieldMaskBit5  = 0x20\n\tCBitFieldMaskBit6  = 0x40\n\tCBitFieldMaskBit7  = 0x80\n\tCBitFieldMaskBit8  = 0x100\n\tCBitFieldMaskBit9  = 0x200\n\tCBitFieldMaskBit10 = 0x400\n\tCBitFieldMaskBit11 = 0x800\n\tCBitFieldMaskBit12 = 0x1000\n\tCBitFieldMaskBit13 = 0x2000\n\tCBitFieldMaskBit14 = 0x4000\n\tCBitFieldMaskBit15 = 0x8000\n\tCBitFieldMaskBit16 = 0x10000\n\tCBitFieldMaskBit17 = 0x20000\n\tCBitFieldMaskBit18 = 0x40000\n\tCBitFieldMaskBit19 = 0x80000\n\tCBitFieldMaskBit20 = 0x100000\n\tCBitFieldMaskBit21 = 0x200000\n\tCBitFieldMaskBit22 = 0x400000\n\tCBitFieldMaskBit23 = 0x800000\n\tCBitFieldMaskBit24 = 0x1000000\n\tCBitFieldMaskBit25 = 0x2000000\n\tCBitFieldMaskBit26 = 0x4000000\n\tCBitFieldMaskBit27 = 0x8000000\n\tCBitFieldMaskBit28 = 0x10000000\n\tCBitFieldMaskBit29 = 0x20000000\n\tCBitFieldMaskBit30 = 0x40000000\n\tCBitFieldMaskBit31 = 0x80000000\n\tCBitFieldMaskBit32 = 0x100000000\n\tCBitFieldMaskBit33 = 0x200000000\n\tCBitFieldMaskBit34 = 0x400000000\n\tCBitFieldMaskBit35 = 0x800000000\n\tCBitFieldMaskBit36 = 0x1000000000\n\tCBitFieldMaskBit37 = 0x2000000000\n\tCBitFieldMaskBit38 = 0x4000000000\n\tCBitFieldMaskBit39 = 0x8000000000\n\tCBitFieldMaskBit40 = 0x10000000000\n\tCBitFieldMaskBit41 = 0x20000000000\n\tCBitFieldMaskBit42 = 0x40000000000\n\tCBitFieldMaskBit43 = 0x80000000000\n\tCBitFieldMaskBit44 = 0x100000000000\n\tCBitFieldMaskBit45 = 0x200000000000\n\tCBitFieldMaskBit46 = 0x400000000000\n\tCBitFieldMaskBit47 = 0x800000000000\n\tCBitFieldMaskBit48 = 0x1000000000000\n\tCBitFieldMaskBit49 = 0x2000000000000\n\tCBitFieldMaskBit50 = 0x4000000000000\n\tCBitFieldMaskBit51 = 0x8000000000000\n\tCBitFieldMaskBit52 = 0x10000000000000\n\tCBitFieldMaskBit53 = 0x20000000000000\n\tCBitFieldMaskBit54 = 0x40000000000000\n\tCBitFieldMaskBit55 = 0x80000000000000\n\tCBitFieldMaskBit56 = 0x100000000000000\n\tCBitFieldMaskBit57 = 0x200000000000000\n\tCBitFieldMaskBit58 = 0x400000000000000\n\tCBitFieldMaskBit59 = 0x800000000000000\n\tCBitFieldMaskBit60 = 0x1000000000000000\n\tCBitFieldMaskBit61 = 0x2000000000000000\n\tCBitFieldMaskBit62 = 0x4000000000000000\n\tCBitFieldMaskBit63 = 0x8000000000000000\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [118]byte\n\t_      uint64\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint64\n}\n\ntype Statfs_t struct {\n\tType    int64\n\tBsize   int64\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint64\n\tFfree   uint64\n\tFsid    Fsid\n\tNamelen int64\n\tFrsize  int64\n\tFlags   int64\n\tSpare   [4]int64\n}\n\ntype TpacketHdr struct {\n\tStatus  uint64\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n\t_       [4]byte\n}\n\nconst (\n\tSizeofTpacketHdr = 0x20\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int64\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG = 0x1269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]int8\n\tDriver_name [64]int8\n\tModule_name [64]int8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]int8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]int8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]int8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]int8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]int8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]int8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]int8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]int8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]int8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]int8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint32\n\tInode            uint64\n\tRdevice          uint32\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]int8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n\tReserved         [4]int8\n\t_                [4]byte\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]int8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]int8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]int8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n\t_               [4]byte\n}\n\nconst (\n\tPPS_GETPARAMS = 0x800870a1\n\tPPS_SETPARAMS = 0x400870a2\n\tPPS_GETCAP    = 0x800870a3\n\tPPS_FETCH     = 0xc00870a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x800\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint32\n\t_    [0]uint8\n\tSeq  uint16\n\t_    uint16\n\t_    uint64\n\t_    uint64\n}\ntype SysvShmDesc struct {\n\tPerm   SysvIpcPerm\n\tSegsz  uint64\n\tAtime  int64\n\tDtime  int64\n\tCtime  int64\n\tCpid   int32\n\tLpid   int32\n\tNattch uint64\n\t_      uint64\n\t_      uint64\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_mips.go",
    "content": "// cgo -godefs -objdir=/tmp/mips/cgo -- -Wall -Werror -static -I/tmp/mips/include linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mips && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x4\n\tSizeofLong = 0x4\n)\n\ntype (\n\t_C_long int32\n)\n\ntype Timespec struct {\n\tSec  int32\n\tNsec int32\n}\n\ntype Timeval struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int32\n\tFreq      int32\n\tMaxerror  int32\n\tEsterror  int32\n\tStatus    int32\n\tConstant  int32\n\tPrecision int32\n\tTolerance int32\n\tTime      Timeval\n\tTick      int32\n\tPpsfreq   int32\n\tJitter    int32\n\tShift     int32\n\tStabil    int32\n\tJitcnt    int32\n\tCalcnt    int32\n\tErrcnt    int32\n\tStbcnt    int32\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int32\n\ntype Tms struct {\n\tUtime  int32\n\tStime  int32\n\tCutime int32\n\tCstime int32\n}\n\ntype Utimbuf struct {\n\tActime  int32\n\tModtime int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Stat_t struct {\n\tDev     uint32\n\tPad1    [3]int32\n\tIno     uint64\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint32\n\tPad2    [3]int32\n\tSize    int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBlksize int32\n\tPad4    int32\n\tBlocks  int64\n\tPad5    [14]int32\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]int8\n\t_      [5]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\t_      [4]byte\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n\tName [0]byte\n\t_    [4]byte\n}\n\nconst (\n\tFADV_DONTNEED = 0x4\n\tFADV_NOREUSE  = 0x5\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint32\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]int8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [16]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x58\n\tSizeofIovec           = 0x8\n\tSizeofMsghdr          = 0x1c\n\tSizeofCmsghdr         = 0xc\n)\n\nconst (\n\tSizeofSockFprog = 0x8\n)\n\ntype PtraceRegs struct {\n\tRegs     [32]uint64\n\tLo       uint64\n\tHi       uint64\n\tEpc      uint64\n\tBadvaddr uint64\n\tStatus   uint64\n\tCause    uint64\n}\n\ntype FdSet struct {\n\tBits [32]int32\n}\n\ntype Sysinfo_t struct {\n\tUptime    int32\n\tLoads     [3]uint32\n\tTotalram  uint32\n\tFreeram   uint32\n\tSharedram uint32\n\tBufferram uint32\n\tTotalswap uint32\n\tFreeswap  uint32\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint32\n\tFreehigh  uint32\n\tUnit      uint32\n\t_         [8]int8\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint32\n\tFname  [6]int8\n\tFpack  [6]int8\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\tPadFd  int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x80000\n)\n\nconst (\n\tPOLLRDHUP = 0x2000\n)\n\ntype Sigset_t struct {\n\tVal [32]uint32\n}\n\nconst _C__NSIG = 0x80\n\nconst (\n\tSIG_BLOCK   = 0x1\n\tSIG_UNBLOCK = 0x2\n\tSIG_SETMASK = 0x3\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tCode  int32\n\tErrno int32\n\t_     [116]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [23]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\t_                         [4]byte\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]int8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\t_                         [4]byte\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\t_                         [4]byte\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n}\n\ntype cpuMask uint32\n\nconst (\n\t_NCPUBITS = 0x20\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x8000000000000000\n\tCBitFieldMaskBit1  = 0x4000000000000000\n\tCBitFieldMaskBit2  = 0x2000000000000000\n\tCBitFieldMaskBit3  = 0x1000000000000000\n\tCBitFieldMaskBit4  = 0x800000000000000\n\tCBitFieldMaskBit5  = 0x400000000000000\n\tCBitFieldMaskBit6  = 0x200000000000000\n\tCBitFieldMaskBit7  = 0x100000000000000\n\tCBitFieldMaskBit8  = 0x80000000000000\n\tCBitFieldMaskBit9  = 0x40000000000000\n\tCBitFieldMaskBit10 = 0x20000000000000\n\tCBitFieldMaskBit11 = 0x10000000000000\n\tCBitFieldMaskBit12 = 0x8000000000000\n\tCBitFieldMaskBit13 = 0x4000000000000\n\tCBitFieldMaskBit14 = 0x2000000000000\n\tCBitFieldMaskBit15 = 0x1000000000000\n\tCBitFieldMaskBit16 = 0x800000000000\n\tCBitFieldMaskBit17 = 0x400000000000\n\tCBitFieldMaskBit18 = 0x200000000000\n\tCBitFieldMaskBit19 = 0x100000000000\n\tCBitFieldMaskBit20 = 0x80000000000\n\tCBitFieldMaskBit21 = 0x40000000000\n\tCBitFieldMaskBit22 = 0x20000000000\n\tCBitFieldMaskBit23 = 0x10000000000\n\tCBitFieldMaskBit24 = 0x8000000000\n\tCBitFieldMaskBit25 = 0x4000000000\n\tCBitFieldMaskBit26 = 0x2000000000\n\tCBitFieldMaskBit27 = 0x1000000000\n\tCBitFieldMaskBit28 = 0x800000000\n\tCBitFieldMaskBit29 = 0x400000000\n\tCBitFieldMaskBit30 = 0x200000000\n\tCBitFieldMaskBit31 = 0x100000000\n\tCBitFieldMaskBit32 = 0x80000000\n\tCBitFieldMaskBit33 = 0x40000000\n\tCBitFieldMaskBit34 = 0x20000000\n\tCBitFieldMaskBit35 = 0x10000000\n\tCBitFieldMaskBit36 = 0x8000000\n\tCBitFieldMaskBit37 = 0x4000000\n\tCBitFieldMaskBit38 = 0x2000000\n\tCBitFieldMaskBit39 = 0x1000000\n\tCBitFieldMaskBit40 = 0x800000\n\tCBitFieldMaskBit41 = 0x400000\n\tCBitFieldMaskBit42 = 0x200000\n\tCBitFieldMaskBit43 = 0x100000\n\tCBitFieldMaskBit44 = 0x80000\n\tCBitFieldMaskBit45 = 0x40000\n\tCBitFieldMaskBit46 = 0x20000\n\tCBitFieldMaskBit47 = 0x10000\n\tCBitFieldMaskBit48 = 0x8000\n\tCBitFieldMaskBit49 = 0x4000\n\tCBitFieldMaskBit50 = 0x2000\n\tCBitFieldMaskBit51 = 0x1000\n\tCBitFieldMaskBit52 = 0x800\n\tCBitFieldMaskBit53 = 0x400\n\tCBitFieldMaskBit54 = 0x200\n\tCBitFieldMaskBit55 = 0x100\n\tCBitFieldMaskBit56 = 0x80\n\tCBitFieldMaskBit57 = 0x40\n\tCBitFieldMaskBit58 = 0x20\n\tCBitFieldMaskBit59 = 0x10\n\tCBitFieldMaskBit60 = 0x8\n\tCBitFieldMaskBit61 = 0x4\n\tCBitFieldMaskBit62 = 0x2\n\tCBitFieldMaskBit63 = 0x1\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [122]byte\n\t_      uint32\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint32\n}\n\ntype Statfs_t struct {\n\tType    int32\n\tBsize   int32\n\tFrsize  int32\n\t_       [4]byte\n\tBlocks  uint64\n\tBfree   uint64\n\tFiles   uint64\n\tFfree   uint64\n\tBavail  uint64\n\tFsid    Fsid\n\tNamelen int32\n\tFlags   int32\n\tSpare   [5]int32\n\t_       [4]byte\n}\n\ntype TpacketHdr struct {\n\tStatus  uint32\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n}\n\nconst (\n\tSizeofTpacketHdr = 0x18\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int32\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG = 0x20001269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]int8\n\tDriver_name [64]int8\n\tModule_name [64]int8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]int8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]int8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]int8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]int8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]int8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]int8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]int8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]int8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]int8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]int8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint32\n\tInode            uint32\n\tRdevice          uint32\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]int8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint32\n\tReserved         [4]int8\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]int8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]int8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]int8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n\t_               [4]byte\n}\n\nconst (\n\tPPS_GETPARAMS = 0x400470a1\n\tPPS_SETPARAMS = 0x800470a2\n\tPPS_GETCAP    = 0x400470a3\n\tPPS_FETCH     = 0xc00470a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x80\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint32\n\t_    [0]uint8\n\tSeq  uint16\n\t_    uint16\n\t_    uint32\n\t_    uint32\n}\ntype SysvShmDesc struct {\n\tPerm       SysvIpcPerm\n\tSegsz      uint32\n\tAtime      uint32\n\tDtime      uint32\n\tCtime      uint32\n\tCpid       int32\n\tLpid       int32\n\tNattch     uint32\n\tAtime_high uint16\n\tDtime_high uint16\n\tCtime_high uint16\n\t_          uint16\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go",
    "content": "// cgo -godefs -objdir=/tmp/mips64/cgo -- -Wall -Werror -static -I/tmp/mips64/include linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mips64 && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x8\n\tSizeofLong = 0x8\n)\n\ntype (\n\t_C_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int64\n\tFreq      int64\n\tMaxerror  int64\n\tEsterror  int64\n\tStatus    int32\n\tConstant  int64\n\tPrecision int64\n\tTolerance int64\n\tTime      Timeval\n\tTick      int64\n\tPpsfreq   int64\n\tJitter    int64\n\tShift     int32\n\tStabil    int64\n\tJitcnt    int64\n\tCalcnt    int64\n\tErrcnt    int64\n\tStbcnt    int64\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int64\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Stat_t struct {\n\tDev     uint32\n\tPad1    [3]uint32\n\tIno     uint64\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint32\n\tPad2    [3]uint32\n\tSize    int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBlksize uint32\n\tPad4    uint32\n\tBlocks  int64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]int8\n\t_      [5]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n\tName [0]byte\n\t_    [4]byte\n}\n\nconst (\n\tFADV_DONTNEED = 0x4\n\tFADV_NOREUSE  = 0x5\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint64\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]int8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint64\n\tControl    *byte\n\tControllen uint64\n\tFlags      int32\n\t_          [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint64\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [24]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x60\n\tSizeofIovec           = 0x10\n\tSizeofMsghdr          = 0x38\n\tSizeofCmsghdr         = 0x10\n)\n\nconst (\n\tSizeofSockFprog = 0x10\n)\n\ntype PtraceRegs struct {\n\tRegs     [32]uint64\n\tLo       uint64\n\tHi       uint64\n\tEpc      uint64\n\tBadvaddr uint64\n\tStatus   uint64\n\tCause    uint64\n}\n\ntype FdSet struct {\n\tBits [16]int64\n}\n\ntype Sysinfo_t struct {\n\tUptime    int64\n\tLoads     [3]uint64\n\tTotalram  uint64\n\tFreeram   uint64\n\tSharedram uint64\n\tBufferram uint64\n\tTotalswap uint64\n\tFreeswap  uint64\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint64\n\tFreehigh  uint64\n\tUnit      uint32\n\t_         [0]int8\n\t_         [4]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint64\n\tFname  [6]int8\n\tFpack  [6]int8\n\t_      [4]byte\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\t_      int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x80000\n)\n\nconst (\n\tPOLLRDHUP = 0x2000\n)\n\ntype Sigset_t struct {\n\tVal [16]uint64\n}\n\nconst _C__NSIG = 0x80\n\nconst (\n\tSIG_BLOCK   = 0x1\n\tSIG_UNBLOCK = 0x2\n\tSIG_SETMASK = 0x3\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tCode  int32\n\tErrno int32\n\t_     int32\n\t_     [112]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [23]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]int8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n}\n\ntype cpuMask uint64\n\nconst (\n\t_NCPUBITS = 0x40\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x8000000000000000\n\tCBitFieldMaskBit1  = 0x4000000000000000\n\tCBitFieldMaskBit2  = 0x2000000000000000\n\tCBitFieldMaskBit3  = 0x1000000000000000\n\tCBitFieldMaskBit4  = 0x800000000000000\n\tCBitFieldMaskBit5  = 0x400000000000000\n\tCBitFieldMaskBit6  = 0x200000000000000\n\tCBitFieldMaskBit7  = 0x100000000000000\n\tCBitFieldMaskBit8  = 0x80000000000000\n\tCBitFieldMaskBit9  = 0x40000000000000\n\tCBitFieldMaskBit10 = 0x20000000000000\n\tCBitFieldMaskBit11 = 0x10000000000000\n\tCBitFieldMaskBit12 = 0x8000000000000\n\tCBitFieldMaskBit13 = 0x4000000000000\n\tCBitFieldMaskBit14 = 0x2000000000000\n\tCBitFieldMaskBit15 = 0x1000000000000\n\tCBitFieldMaskBit16 = 0x800000000000\n\tCBitFieldMaskBit17 = 0x400000000000\n\tCBitFieldMaskBit18 = 0x200000000000\n\tCBitFieldMaskBit19 = 0x100000000000\n\tCBitFieldMaskBit20 = 0x80000000000\n\tCBitFieldMaskBit21 = 0x40000000000\n\tCBitFieldMaskBit22 = 0x20000000000\n\tCBitFieldMaskBit23 = 0x10000000000\n\tCBitFieldMaskBit24 = 0x8000000000\n\tCBitFieldMaskBit25 = 0x4000000000\n\tCBitFieldMaskBit26 = 0x2000000000\n\tCBitFieldMaskBit27 = 0x1000000000\n\tCBitFieldMaskBit28 = 0x800000000\n\tCBitFieldMaskBit29 = 0x400000000\n\tCBitFieldMaskBit30 = 0x200000000\n\tCBitFieldMaskBit31 = 0x100000000\n\tCBitFieldMaskBit32 = 0x80000000\n\tCBitFieldMaskBit33 = 0x40000000\n\tCBitFieldMaskBit34 = 0x20000000\n\tCBitFieldMaskBit35 = 0x10000000\n\tCBitFieldMaskBit36 = 0x8000000\n\tCBitFieldMaskBit37 = 0x4000000\n\tCBitFieldMaskBit38 = 0x2000000\n\tCBitFieldMaskBit39 = 0x1000000\n\tCBitFieldMaskBit40 = 0x800000\n\tCBitFieldMaskBit41 = 0x400000\n\tCBitFieldMaskBit42 = 0x200000\n\tCBitFieldMaskBit43 = 0x100000\n\tCBitFieldMaskBit44 = 0x80000\n\tCBitFieldMaskBit45 = 0x40000\n\tCBitFieldMaskBit46 = 0x20000\n\tCBitFieldMaskBit47 = 0x10000\n\tCBitFieldMaskBit48 = 0x8000\n\tCBitFieldMaskBit49 = 0x4000\n\tCBitFieldMaskBit50 = 0x2000\n\tCBitFieldMaskBit51 = 0x1000\n\tCBitFieldMaskBit52 = 0x800\n\tCBitFieldMaskBit53 = 0x400\n\tCBitFieldMaskBit54 = 0x200\n\tCBitFieldMaskBit55 = 0x100\n\tCBitFieldMaskBit56 = 0x80\n\tCBitFieldMaskBit57 = 0x40\n\tCBitFieldMaskBit58 = 0x20\n\tCBitFieldMaskBit59 = 0x10\n\tCBitFieldMaskBit60 = 0x8\n\tCBitFieldMaskBit61 = 0x4\n\tCBitFieldMaskBit62 = 0x2\n\tCBitFieldMaskBit63 = 0x1\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [118]byte\n\t_      uint64\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint64\n}\n\ntype Statfs_t struct {\n\tType    int64\n\tBsize   int64\n\tFrsize  int64\n\tBlocks  uint64\n\tBfree   uint64\n\tFiles   uint64\n\tFfree   uint64\n\tBavail  uint64\n\tFsid    Fsid\n\tNamelen int64\n\tFlags   int64\n\tSpare   [5]int64\n}\n\ntype TpacketHdr struct {\n\tStatus  uint64\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n\t_       [4]byte\n}\n\nconst (\n\tSizeofTpacketHdr = 0x20\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int64\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG = 0x20001269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]int8\n\tDriver_name [64]int8\n\tModule_name [64]int8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]int8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]int8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]int8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]int8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]int8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]int8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]int8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]int8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]int8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]int8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint32\n\tInode            uint64\n\tRdevice          uint32\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]int8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n\tReserved         [4]int8\n\t_                [4]byte\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]int8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]int8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]int8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n\t_               [4]byte\n}\n\nconst (\n\tPPS_GETPARAMS = 0x400870a1\n\tPPS_SETPARAMS = 0x800870a2\n\tPPS_GETCAP    = 0x400870a3\n\tPPS_FETCH     = 0xc00870a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x80\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint32\n\t_    [0]uint8\n\tSeq  uint16\n\t_    uint16\n\t_    uint64\n\t_    uint64\n}\ntype SysvShmDesc struct {\n\tPerm   SysvIpcPerm\n\tSegsz  uint64\n\tAtime  int64\n\tDtime  int64\n\tCtime  int64\n\tCpid   int32\n\tLpid   int32\n\tNattch uint64\n\t_      uint64\n\t_      uint64\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go",
    "content": "// cgo -godefs -objdir=/tmp/mips64le/cgo -- -Wall -Werror -static -I/tmp/mips64le/include linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mips64le && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x8\n\tSizeofLong = 0x8\n)\n\ntype (\n\t_C_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int64\n\tFreq      int64\n\tMaxerror  int64\n\tEsterror  int64\n\tStatus    int32\n\tConstant  int64\n\tPrecision int64\n\tTolerance int64\n\tTime      Timeval\n\tTick      int64\n\tPpsfreq   int64\n\tJitter    int64\n\tShift     int32\n\tStabil    int64\n\tJitcnt    int64\n\tCalcnt    int64\n\tErrcnt    int64\n\tStbcnt    int64\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int64\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Stat_t struct {\n\tDev     uint32\n\tPad1    [3]uint32\n\tIno     uint64\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint32\n\tPad2    [3]uint32\n\tSize    int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBlksize uint32\n\tPad4    uint32\n\tBlocks  int64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]int8\n\t_      [5]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n\tName [0]byte\n\t_    [4]byte\n}\n\nconst (\n\tFADV_DONTNEED = 0x4\n\tFADV_NOREUSE  = 0x5\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint64\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]int8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint64\n\tControl    *byte\n\tControllen uint64\n\tFlags      int32\n\t_          [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint64\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [24]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x60\n\tSizeofIovec           = 0x10\n\tSizeofMsghdr          = 0x38\n\tSizeofCmsghdr         = 0x10\n)\n\nconst (\n\tSizeofSockFprog = 0x10\n)\n\ntype PtraceRegs struct {\n\tRegs     [32]uint64\n\tLo       uint64\n\tHi       uint64\n\tEpc      uint64\n\tBadvaddr uint64\n\tStatus   uint64\n\tCause    uint64\n}\n\ntype FdSet struct {\n\tBits [16]int64\n}\n\ntype Sysinfo_t struct {\n\tUptime    int64\n\tLoads     [3]uint64\n\tTotalram  uint64\n\tFreeram   uint64\n\tSharedram uint64\n\tBufferram uint64\n\tTotalswap uint64\n\tFreeswap  uint64\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint64\n\tFreehigh  uint64\n\tUnit      uint32\n\t_         [0]int8\n\t_         [4]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint64\n\tFname  [6]int8\n\tFpack  [6]int8\n\t_      [4]byte\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\t_      int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x80000\n)\n\nconst (\n\tPOLLRDHUP = 0x2000\n)\n\ntype Sigset_t struct {\n\tVal [16]uint64\n}\n\nconst _C__NSIG = 0x80\n\nconst (\n\tSIG_BLOCK   = 0x1\n\tSIG_UNBLOCK = 0x2\n\tSIG_SETMASK = 0x3\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tCode  int32\n\tErrno int32\n\t_     int32\n\t_     [112]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [23]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]int8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n}\n\ntype cpuMask uint64\n\nconst (\n\t_NCPUBITS = 0x40\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x1\n\tCBitFieldMaskBit1  = 0x2\n\tCBitFieldMaskBit2  = 0x4\n\tCBitFieldMaskBit3  = 0x8\n\tCBitFieldMaskBit4  = 0x10\n\tCBitFieldMaskBit5  = 0x20\n\tCBitFieldMaskBit6  = 0x40\n\tCBitFieldMaskBit7  = 0x80\n\tCBitFieldMaskBit8  = 0x100\n\tCBitFieldMaskBit9  = 0x200\n\tCBitFieldMaskBit10 = 0x400\n\tCBitFieldMaskBit11 = 0x800\n\tCBitFieldMaskBit12 = 0x1000\n\tCBitFieldMaskBit13 = 0x2000\n\tCBitFieldMaskBit14 = 0x4000\n\tCBitFieldMaskBit15 = 0x8000\n\tCBitFieldMaskBit16 = 0x10000\n\tCBitFieldMaskBit17 = 0x20000\n\tCBitFieldMaskBit18 = 0x40000\n\tCBitFieldMaskBit19 = 0x80000\n\tCBitFieldMaskBit20 = 0x100000\n\tCBitFieldMaskBit21 = 0x200000\n\tCBitFieldMaskBit22 = 0x400000\n\tCBitFieldMaskBit23 = 0x800000\n\tCBitFieldMaskBit24 = 0x1000000\n\tCBitFieldMaskBit25 = 0x2000000\n\tCBitFieldMaskBit26 = 0x4000000\n\tCBitFieldMaskBit27 = 0x8000000\n\tCBitFieldMaskBit28 = 0x10000000\n\tCBitFieldMaskBit29 = 0x20000000\n\tCBitFieldMaskBit30 = 0x40000000\n\tCBitFieldMaskBit31 = 0x80000000\n\tCBitFieldMaskBit32 = 0x100000000\n\tCBitFieldMaskBit33 = 0x200000000\n\tCBitFieldMaskBit34 = 0x400000000\n\tCBitFieldMaskBit35 = 0x800000000\n\tCBitFieldMaskBit36 = 0x1000000000\n\tCBitFieldMaskBit37 = 0x2000000000\n\tCBitFieldMaskBit38 = 0x4000000000\n\tCBitFieldMaskBit39 = 0x8000000000\n\tCBitFieldMaskBit40 = 0x10000000000\n\tCBitFieldMaskBit41 = 0x20000000000\n\tCBitFieldMaskBit42 = 0x40000000000\n\tCBitFieldMaskBit43 = 0x80000000000\n\tCBitFieldMaskBit44 = 0x100000000000\n\tCBitFieldMaskBit45 = 0x200000000000\n\tCBitFieldMaskBit46 = 0x400000000000\n\tCBitFieldMaskBit47 = 0x800000000000\n\tCBitFieldMaskBit48 = 0x1000000000000\n\tCBitFieldMaskBit49 = 0x2000000000000\n\tCBitFieldMaskBit50 = 0x4000000000000\n\tCBitFieldMaskBit51 = 0x8000000000000\n\tCBitFieldMaskBit52 = 0x10000000000000\n\tCBitFieldMaskBit53 = 0x20000000000000\n\tCBitFieldMaskBit54 = 0x40000000000000\n\tCBitFieldMaskBit55 = 0x80000000000000\n\tCBitFieldMaskBit56 = 0x100000000000000\n\tCBitFieldMaskBit57 = 0x200000000000000\n\tCBitFieldMaskBit58 = 0x400000000000000\n\tCBitFieldMaskBit59 = 0x800000000000000\n\tCBitFieldMaskBit60 = 0x1000000000000000\n\tCBitFieldMaskBit61 = 0x2000000000000000\n\tCBitFieldMaskBit62 = 0x4000000000000000\n\tCBitFieldMaskBit63 = 0x8000000000000000\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [118]byte\n\t_      uint64\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint64\n}\n\ntype Statfs_t struct {\n\tType    int64\n\tBsize   int64\n\tFrsize  int64\n\tBlocks  uint64\n\tBfree   uint64\n\tFiles   uint64\n\tFfree   uint64\n\tBavail  uint64\n\tFsid    Fsid\n\tNamelen int64\n\tFlags   int64\n\tSpare   [5]int64\n}\n\ntype TpacketHdr struct {\n\tStatus  uint64\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n\t_       [4]byte\n}\n\nconst (\n\tSizeofTpacketHdr = 0x20\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int64\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG = 0x20001269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]int8\n\tDriver_name [64]int8\n\tModule_name [64]int8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]int8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]int8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]int8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]int8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]int8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]int8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]int8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]int8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]int8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]int8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint32\n\tInode            uint64\n\tRdevice          uint32\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]int8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n\tReserved         [4]int8\n\t_                [4]byte\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]int8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]int8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]int8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n\t_               [4]byte\n}\n\nconst (\n\tPPS_GETPARAMS = 0x400870a1\n\tPPS_SETPARAMS = 0x800870a2\n\tPPS_GETCAP    = 0x400870a3\n\tPPS_FETCH     = 0xc00870a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x80\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint32\n\t_    [0]uint8\n\tSeq  uint16\n\t_    uint16\n\t_    uint64\n\t_    uint64\n}\ntype SysvShmDesc struct {\n\tPerm   SysvIpcPerm\n\tSegsz  uint64\n\tAtime  int64\n\tDtime  int64\n\tCtime  int64\n\tCpid   int32\n\tLpid   int32\n\tNattch uint64\n\t_      uint64\n\t_      uint64\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go",
    "content": "// cgo -godefs -objdir=/tmp/mipsle/cgo -- -Wall -Werror -static -I/tmp/mipsle/include linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mipsle && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x4\n\tSizeofLong = 0x4\n)\n\ntype (\n\t_C_long int32\n)\n\ntype Timespec struct {\n\tSec  int32\n\tNsec int32\n}\n\ntype Timeval struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int32\n\tFreq      int32\n\tMaxerror  int32\n\tEsterror  int32\n\tStatus    int32\n\tConstant  int32\n\tPrecision int32\n\tTolerance int32\n\tTime      Timeval\n\tTick      int32\n\tPpsfreq   int32\n\tJitter    int32\n\tShift     int32\n\tStabil    int32\n\tJitcnt    int32\n\tCalcnt    int32\n\tErrcnt    int32\n\tStbcnt    int32\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int32\n\ntype Tms struct {\n\tUtime  int32\n\tStime  int32\n\tCutime int32\n\tCstime int32\n}\n\ntype Utimbuf struct {\n\tActime  int32\n\tModtime int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Stat_t struct {\n\tDev     uint32\n\tPad1    [3]int32\n\tIno     uint64\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint32\n\tPad2    [3]int32\n\tSize    int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBlksize int32\n\tPad4    int32\n\tBlocks  int64\n\tPad5    [14]int32\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]int8\n\t_      [5]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\t_      [4]byte\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n\tName [0]byte\n\t_    [4]byte\n}\n\nconst (\n\tFADV_DONTNEED = 0x4\n\tFADV_NOREUSE  = 0x5\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint32\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]int8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [16]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x58\n\tSizeofIovec           = 0x8\n\tSizeofMsghdr          = 0x1c\n\tSizeofCmsghdr         = 0xc\n)\n\nconst (\n\tSizeofSockFprog = 0x8\n)\n\ntype PtraceRegs struct {\n\tRegs     [32]uint64\n\tLo       uint64\n\tHi       uint64\n\tEpc      uint64\n\tBadvaddr uint64\n\tStatus   uint64\n\tCause    uint64\n}\n\ntype FdSet struct {\n\tBits [32]int32\n}\n\ntype Sysinfo_t struct {\n\tUptime    int32\n\tLoads     [3]uint32\n\tTotalram  uint32\n\tFreeram   uint32\n\tSharedram uint32\n\tBufferram uint32\n\tTotalswap uint32\n\tFreeswap  uint32\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint32\n\tFreehigh  uint32\n\tUnit      uint32\n\t_         [8]int8\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint32\n\tFname  [6]int8\n\tFpack  [6]int8\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\tPadFd  int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x80000\n)\n\nconst (\n\tPOLLRDHUP = 0x2000\n)\n\ntype Sigset_t struct {\n\tVal [32]uint32\n}\n\nconst _C__NSIG = 0x80\n\nconst (\n\tSIG_BLOCK   = 0x1\n\tSIG_UNBLOCK = 0x2\n\tSIG_SETMASK = 0x3\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tCode  int32\n\tErrno int32\n\t_     [116]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [23]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\t_                         [4]byte\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]int8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\t_                         [4]byte\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\t_                         [4]byte\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n}\n\ntype cpuMask uint32\n\nconst (\n\t_NCPUBITS = 0x20\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x1\n\tCBitFieldMaskBit1  = 0x2\n\tCBitFieldMaskBit2  = 0x4\n\tCBitFieldMaskBit3  = 0x8\n\tCBitFieldMaskBit4  = 0x10\n\tCBitFieldMaskBit5  = 0x20\n\tCBitFieldMaskBit6  = 0x40\n\tCBitFieldMaskBit7  = 0x80\n\tCBitFieldMaskBit8  = 0x100\n\tCBitFieldMaskBit9  = 0x200\n\tCBitFieldMaskBit10 = 0x400\n\tCBitFieldMaskBit11 = 0x800\n\tCBitFieldMaskBit12 = 0x1000\n\tCBitFieldMaskBit13 = 0x2000\n\tCBitFieldMaskBit14 = 0x4000\n\tCBitFieldMaskBit15 = 0x8000\n\tCBitFieldMaskBit16 = 0x10000\n\tCBitFieldMaskBit17 = 0x20000\n\tCBitFieldMaskBit18 = 0x40000\n\tCBitFieldMaskBit19 = 0x80000\n\tCBitFieldMaskBit20 = 0x100000\n\tCBitFieldMaskBit21 = 0x200000\n\tCBitFieldMaskBit22 = 0x400000\n\tCBitFieldMaskBit23 = 0x800000\n\tCBitFieldMaskBit24 = 0x1000000\n\tCBitFieldMaskBit25 = 0x2000000\n\tCBitFieldMaskBit26 = 0x4000000\n\tCBitFieldMaskBit27 = 0x8000000\n\tCBitFieldMaskBit28 = 0x10000000\n\tCBitFieldMaskBit29 = 0x20000000\n\tCBitFieldMaskBit30 = 0x40000000\n\tCBitFieldMaskBit31 = 0x80000000\n\tCBitFieldMaskBit32 = 0x100000000\n\tCBitFieldMaskBit33 = 0x200000000\n\tCBitFieldMaskBit34 = 0x400000000\n\tCBitFieldMaskBit35 = 0x800000000\n\tCBitFieldMaskBit36 = 0x1000000000\n\tCBitFieldMaskBit37 = 0x2000000000\n\tCBitFieldMaskBit38 = 0x4000000000\n\tCBitFieldMaskBit39 = 0x8000000000\n\tCBitFieldMaskBit40 = 0x10000000000\n\tCBitFieldMaskBit41 = 0x20000000000\n\tCBitFieldMaskBit42 = 0x40000000000\n\tCBitFieldMaskBit43 = 0x80000000000\n\tCBitFieldMaskBit44 = 0x100000000000\n\tCBitFieldMaskBit45 = 0x200000000000\n\tCBitFieldMaskBit46 = 0x400000000000\n\tCBitFieldMaskBit47 = 0x800000000000\n\tCBitFieldMaskBit48 = 0x1000000000000\n\tCBitFieldMaskBit49 = 0x2000000000000\n\tCBitFieldMaskBit50 = 0x4000000000000\n\tCBitFieldMaskBit51 = 0x8000000000000\n\tCBitFieldMaskBit52 = 0x10000000000000\n\tCBitFieldMaskBit53 = 0x20000000000000\n\tCBitFieldMaskBit54 = 0x40000000000000\n\tCBitFieldMaskBit55 = 0x80000000000000\n\tCBitFieldMaskBit56 = 0x100000000000000\n\tCBitFieldMaskBit57 = 0x200000000000000\n\tCBitFieldMaskBit58 = 0x400000000000000\n\tCBitFieldMaskBit59 = 0x800000000000000\n\tCBitFieldMaskBit60 = 0x1000000000000000\n\tCBitFieldMaskBit61 = 0x2000000000000000\n\tCBitFieldMaskBit62 = 0x4000000000000000\n\tCBitFieldMaskBit63 = 0x8000000000000000\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [122]byte\n\t_      uint32\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint32\n}\n\ntype Statfs_t struct {\n\tType    int32\n\tBsize   int32\n\tFrsize  int32\n\t_       [4]byte\n\tBlocks  uint64\n\tBfree   uint64\n\tFiles   uint64\n\tFfree   uint64\n\tBavail  uint64\n\tFsid    Fsid\n\tNamelen int32\n\tFlags   int32\n\tSpare   [5]int32\n\t_       [4]byte\n}\n\ntype TpacketHdr struct {\n\tStatus  uint32\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n}\n\nconst (\n\tSizeofTpacketHdr = 0x18\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int32\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG = 0x20001269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]int8\n\tDriver_name [64]int8\n\tModule_name [64]int8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]int8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]int8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]int8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]int8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]int8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]int8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]int8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]int8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]int8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]int8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint32\n\tInode            uint32\n\tRdevice          uint32\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]int8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint32\n\tReserved         [4]int8\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]int8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]int8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]int8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n\t_               [4]byte\n}\n\nconst (\n\tPPS_GETPARAMS = 0x400470a1\n\tPPS_SETPARAMS = 0x800470a2\n\tPPS_GETCAP    = 0x400470a3\n\tPPS_FETCH     = 0xc00470a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x80\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint32\n\t_    [0]uint8\n\tSeq  uint16\n\t_    uint16\n\t_    uint32\n\t_    uint32\n}\ntype SysvShmDesc struct {\n\tPerm       SysvIpcPerm\n\tSegsz      uint32\n\tAtime      uint32\n\tDtime      uint32\n\tCtime      uint32\n\tCpid       int32\n\tLpid       int32\n\tNattch     uint32\n\tAtime_high uint16\n\tDtime_high uint16\n\tCtime_high uint16\n\t_          uint16\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go",
    "content": "// cgo -godefs -objdir=/tmp/ppc/cgo -- -Wall -Werror -static -I/tmp/ppc/include linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x4\n\tSizeofLong = 0x4\n)\n\ntype (\n\t_C_long int32\n)\n\ntype Timespec struct {\n\tSec  int32\n\tNsec int32\n}\n\ntype Timeval struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int32\n\tFreq      int32\n\tMaxerror  int32\n\tEsterror  int32\n\tStatus    int32\n\tConstant  int32\n\tPrecision int32\n\tTolerance int32\n\tTime      Timeval\n\tTick      int32\n\tPpsfreq   int32\n\tJitter    int32\n\tShift     int32\n\tStabil    int32\n\tJitcnt    int32\n\tCalcnt    int32\n\tErrcnt    int32\n\tStbcnt    int32\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int32\n\ntype Tms struct {\n\tUtime  int32\n\tStime  int32\n\tCutime int32\n\tCstime int32\n}\n\ntype Utimbuf struct {\n\tActime  int32\n\tModtime int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint64\n\t_       uint16\n\t_       [4]byte\n\tSize    int64\n\tBlksize int32\n\t_       [4]byte\n\tBlocks  int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\t_       uint32\n\t_       uint32\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]uint8\n\t_      [5]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\t_      [4]byte\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n\tName [0]byte\n\t_    [4]byte\n}\n\nconst (\n\tFADV_DONTNEED = 0x4\n\tFADV_NOREUSE  = 0x5\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint32\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]uint8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]uint8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [16]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x58\n\tSizeofIovec           = 0x8\n\tSizeofMsghdr          = 0x1c\n\tSizeofCmsghdr         = 0xc\n)\n\nconst (\n\tSizeofSockFprog = 0x8\n)\n\ntype PtraceRegs struct {\n\tGpr       [32]uint32\n\tNip       uint32\n\tMsr       uint32\n\tOrig_gpr3 uint32\n\tCtr       uint32\n\tLink      uint32\n\tXer       uint32\n\tCcr       uint32\n\tMq        uint32\n\tTrap      uint32\n\tDar       uint32\n\tDsisr     uint32\n\tResult    uint32\n}\n\ntype FdSet struct {\n\tBits [32]int32\n}\n\ntype Sysinfo_t struct {\n\tUptime    int32\n\tLoads     [3]uint32\n\tTotalram  uint32\n\tFreeram   uint32\n\tSharedram uint32\n\tBufferram uint32\n\tTotalswap uint32\n\tFreeswap  uint32\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint32\n\tFreehigh  uint32\n\tUnit      uint32\n\t_         [8]uint8\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint32\n\tFname  [6]uint8\n\tFpack  [6]uint8\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\t_      int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x80000\n)\n\nconst (\n\tPOLLRDHUP = 0x2000\n)\n\ntype Sigset_t struct {\n\tVal [32]uint32\n}\n\nconst _C__NSIG = 0x41\n\nconst (\n\tSIG_BLOCK   = 0x0\n\tSIG_UNBLOCK = 0x1\n\tSIG_SETMASK = 0x2\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tErrno int32\n\tCode  int32\n\t_     [116]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [19]uint8\n\tLine   uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\t_                         [4]byte\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]uint8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\t_                         [4]byte\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\t_                         [4]byte\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n}\n\ntype cpuMask uint32\n\nconst (\n\t_NCPUBITS = 0x20\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x8000000000000000\n\tCBitFieldMaskBit1  = 0x4000000000000000\n\tCBitFieldMaskBit2  = 0x2000000000000000\n\tCBitFieldMaskBit3  = 0x1000000000000000\n\tCBitFieldMaskBit4  = 0x800000000000000\n\tCBitFieldMaskBit5  = 0x400000000000000\n\tCBitFieldMaskBit6  = 0x200000000000000\n\tCBitFieldMaskBit7  = 0x100000000000000\n\tCBitFieldMaskBit8  = 0x80000000000000\n\tCBitFieldMaskBit9  = 0x40000000000000\n\tCBitFieldMaskBit10 = 0x20000000000000\n\tCBitFieldMaskBit11 = 0x10000000000000\n\tCBitFieldMaskBit12 = 0x8000000000000\n\tCBitFieldMaskBit13 = 0x4000000000000\n\tCBitFieldMaskBit14 = 0x2000000000000\n\tCBitFieldMaskBit15 = 0x1000000000000\n\tCBitFieldMaskBit16 = 0x800000000000\n\tCBitFieldMaskBit17 = 0x400000000000\n\tCBitFieldMaskBit18 = 0x200000000000\n\tCBitFieldMaskBit19 = 0x100000000000\n\tCBitFieldMaskBit20 = 0x80000000000\n\tCBitFieldMaskBit21 = 0x40000000000\n\tCBitFieldMaskBit22 = 0x20000000000\n\tCBitFieldMaskBit23 = 0x10000000000\n\tCBitFieldMaskBit24 = 0x8000000000\n\tCBitFieldMaskBit25 = 0x4000000000\n\tCBitFieldMaskBit26 = 0x2000000000\n\tCBitFieldMaskBit27 = 0x1000000000\n\tCBitFieldMaskBit28 = 0x800000000\n\tCBitFieldMaskBit29 = 0x400000000\n\tCBitFieldMaskBit30 = 0x200000000\n\tCBitFieldMaskBit31 = 0x100000000\n\tCBitFieldMaskBit32 = 0x80000000\n\tCBitFieldMaskBit33 = 0x40000000\n\tCBitFieldMaskBit34 = 0x20000000\n\tCBitFieldMaskBit35 = 0x10000000\n\tCBitFieldMaskBit36 = 0x8000000\n\tCBitFieldMaskBit37 = 0x4000000\n\tCBitFieldMaskBit38 = 0x2000000\n\tCBitFieldMaskBit39 = 0x1000000\n\tCBitFieldMaskBit40 = 0x800000\n\tCBitFieldMaskBit41 = 0x400000\n\tCBitFieldMaskBit42 = 0x200000\n\tCBitFieldMaskBit43 = 0x100000\n\tCBitFieldMaskBit44 = 0x80000\n\tCBitFieldMaskBit45 = 0x40000\n\tCBitFieldMaskBit46 = 0x20000\n\tCBitFieldMaskBit47 = 0x10000\n\tCBitFieldMaskBit48 = 0x8000\n\tCBitFieldMaskBit49 = 0x4000\n\tCBitFieldMaskBit50 = 0x2000\n\tCBitFieldMaskBit51 = 0x1000\n\tCBitFieldMaskBit52 = 0x800\n\tCBitFieldMaskBit53 = 0x400\n\tCBitFieldMaskBit54 = 0x200\n\tCBitFieldMaskBit55 = 0x100\n\tCBitFieldMaskBit56 = 0x80\n\tCBitFieldMaskBit57 = 0x40\n\tCBitFieldMaskBit58 = 0x20\n\tCBitFieldMaskBit59 = 0x10\n\tCBitFieldMaskBit60 = 0x8\n\tCBitFieldMaskBit61 = 0x4\n\tCBitFieldMaskBit62 = 0x2\n\tCBitFieldMaskBit63 = 0x1\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [122]byte\n\t_      uint32\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint32\n}\n\ntype Statfs_t struct {\n\tType    int32\n\tBsize   int32\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint64\n\tFfree   uint64\n\tFsid    Fsid\n\tNamelen int32\n\tFrsize  int32\n\tFlags   int32\n\tSpare   [4]int32\n\t_       [4]byte\n}\n\ntype TpacketHdr struct {\n\tStatus  uint32\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n}\n\nconst (\n\tSizeofTpacketHdr = 0x18\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int32\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG = 0x20001269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]uint8\n\tDriver_name [64]uint8\n\tModule_name [64]uint8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]uint8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]uint8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]uint8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]uint8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]uint8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]uint8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]uint8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]uint8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]uint8\n\tGeniv       [64]uint8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]uint8\n\tGeniv       [64]uint8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]uint8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]uint8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]uint8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]uint8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]uint8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint32\n\tInode            uint32\n\tRdevice          uint32\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]uint8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint32\n\tReserved         [4]uint8\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]uint8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]uint8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]uint8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n\t_               [4]byte\n}\n\nconst (\n\tPPS_GETPARAMS = 0x400470a1\n\tPPS_SETPARAMS = 0x800470a2\n\tPPS_GETCAP    = 0x400470a3\n\tPPS_FETCH     = 0xc00470a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x800\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint32\n\tSeq  uint32\n\t_    uint32\n\t_    uint64\n\t_    uint64\n}\ntype SysvShmDesc struct {\n\tPerm       SysvIpcPerm\n\tAtime_high uint32\n\tAtime      uint32\n\tDtime_high uint32\n\tDtime      uint32\n\tCtime_high uint32\n\tCtime      uint32\n\t_          uint32\n\tSegsz      uint32\n\tCpid       int32\n\tLpid       int32\n\tNattch     uint32\n\t_          uint32\n\t_          uint32\n\t_          [4]byte\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go",
    "content": "// cgo -godefs -objdir=/tmp/ppc64/cgo -- -Wall -Werror -static -I/tmp/ppc64/include linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc64 && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x8\n\tSizeofLong = 0x8\n)\n\ntype (\n\t_C_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int64\n\tFreq      int64\n\tMaxerror  int64\n\tEsterror  int64\n\tStatus    int32\n\tConstant  int64\n\tPrecision int64\n\tTolerance int64\n\tTime      Timeval\n\tTick      int64\n\tPpsfreq   int64\n\tJitter    int64\n\tShift     int32\n\tStabil    int64\n\tJitcnt    int64\n\tCalcnt    int64\n\tErrcnt    int64\n\tStbcnt    int64\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int64\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tNlink   uint64\n\tMode    uint32\n\tUid     uint32\n\tGid     uint32\n\t_       int32\n\tRdev    uint64\n\tSize    int64\n\tBlksize int64\n\tBlocks  int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\t_       uint64\n\t_       uint64\n\t_       uint64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]uint8\n\t_      [5]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n\tName [0]byte\n\t_    [4]byte\n}\n\nconst (\n\tFADV_DONTNEED = 0x4\n\tFADV_NOREUSE  = 0x5\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint64\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]uint8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]uint8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint64\n\tControl    *byte\n\tControllen uint64\n\tFlags      int32\n\t_          [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint64\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [24]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x60\n\tSizeofIovec           = 0x10\n\tSizeofMsghdr          = 0x38\n\tSizeofCmsghdr         = 0x10\n)\n\nconst (\n\tSizeofSockFprog = 0x10\n)\n\ntype PtraceRegs struct {\n\tGpr       [32]uint64\n\tNip       uint64\n\tMsr       uint64\n\tOrig_gpr3 uint64\n\tCtr       uint64\n\tLink      uint64\n\tXer       uint64\n\tCcr       uint64\n\tSofte     uint64\n\tTrap      uint64\n\tDar       uint64\n\tDsisr     uint64\n\tResult    uint64\n}\n\ntype FdSet struct {\n\tBits [16]int64\n}\n\ntype Sysinfo_t struct {\n\tUptime    int64\n\tLoads     [3]uint64\n\tTotalram  uint64\n\tFreeram   uint64\n\tSharedram uint64\n\tBufferram uint64\n\tTotalswap uint64\n\tFreeswap  uint64\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint64\n\tFreehigh  uint64\n\tUnit      uint32\n\t_         [0]uint8\n\t_         [4]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint64\n\tFname  [6]uint8\n\tFpack  [6]uint8\n\t_      [4]byte\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\t_      int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x80000\n)\n\nconst (\n\tPOLLRDHUP = 0x2000\n)\n\ntype Sigset_t struct {\n\tVal [16]uint64\n}\n\nconst _C__NSIG = 0x41\n\nconst (\n\tSIG_BLOCK   = 0x0\n\tSIG_UNBLOCK = 0x1\n\tSIG_SETMASK = 0x2\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tErrno int32\n\tCode  int32\n\t_     int32\n\t_     [112]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [19]uint8\n\tLine   uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]uint8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n}\n\ntype cpuMask uint64\n\nconst (\n\t_NCPUBITS = 0x40\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x8000000000000000\n\tCBitFieldMaskBit1  = 0x4000000000000000\n\tCBitFieldMaskBit2  = 0x2000000000000000\n\tCBitFieldMaskBit3  = 0x1000000000000000\n\tCBitFieldMaskBit4  = 0x800000000000000\n\tCBitFieldMaskBit5  = 0x400000000000000\n\tCBitFieldMaskBit6  = 0x200000000000000\n\tCBitFieldMaskBit7  = 0x100000000000000\n\tCBitFieldMaskBit8  = 0x80000000000000\n\tCBitFieldMaskBit9  = 0x40000000000000\n\tCBitFieldMaskBit10 = 0x20000000000000\n\tCBitFieldMaskBit11 = 0x10000000000000\n\tCBitFieldMaskBit12 = 0x8000000000000\n\tCBitFieldMaskBit13 = 0x4000000000000\n\tCBitFieldMaskBit14 = 0x2000000000000\n\tCBitFieldMaskBit15 = 0x1000000000000\n\tCBitFieldMaskBit16 = 0x800000000000\n\tCBitFieldMaskBit17 = 0x400000000000\n\tCBitFieldMaskBit18 = 0x200000000000\n\tCBitFieldMaskBit19 = 0x100000000000\n\tCBitFieldMaskBit20 = 0x80000000000\n\tCBitFieldMaskBit21 = 0x40000000000\n\tCBitFieldMaskBit22 = 0x20000000000\n\tCBitFieldMaskBit23 = 0x10000000000\n\tCBitFieldMaskBit24 = 0x8000000000\n\tCBitFieldMaskBit25 = 0x4000000000\n\tCBitFieldMaskBit26 = 0x2000000000\n\tCBitFieldMaskBit27 = 0x1000000000\n\tCBitFieldMaskBit28 = 0x800000000\n\tCBitFieldMaskBit29 = 0x400000000\n\tCBitFieldMaskBit30 = 0x200000000\n\tCBitFieldMaskBit31 = 0x100000000\n\tCBitFieldMaskBit32 = 0x80000000\n\tCBitFieldMaskBit33 = 0x40000000\n\tCBitFieldMaskBit34 = 0x20000000\n\tCBitFieldMaskBit35 = 0x10000000\n\tCBitFieldMaskBit36 = 0x8000000\n\tCBitFieldMaskBit37 = 0x4000000\n\tCBitFieldMaskBit38 = 0x2000000\n\tCBitFieldMaskBit39 = 0x1000000\n\tCBitFieldMaskBit40 = 0x800000\n\tCBitFieldMaskBit41 = 0x400000\n\tCBitFieldMaskBit42 = 0x200000\n\tCBitFieldMaskBit43 = 0x100000\n\tCBitFieldMaskBit44 = 0x80000\n\tCBitFieldMaskBit45 = 0x40000\n\tCBitFieldMaskBit46 = 0x20000\n\tCBitFieldMaskBit47 = 0x10000\n\tCBitFieldMaskBit48 = 0x8000\n\tCBitFieldMaskBit49 = 0x4000\n\tCBitFieldMaskBit50 = 0x2000\n\tCBitFieldMaskBit51 = 0x1000\n\tCBitFieldMaskBit52 = 0x800\n\tCBitFieldMaskBit53 = 0x400\n\tCBitFieldMaskBit54 = 0x200\n\tCBitFieldMaskBit55 = 0x100\n\tCBitFieldMaskBit56 = 0x80\n\tCBitFieldMaskBit57 = 0x40\n\tCBitFieldMaskBit58 = 0x20\n\tCBitFieldMaskBit59 = 0x10\n\tCBitFieldMaskBit60 = 0x8\n\tCBitFieldMaskBit61 = 0x4\n\tCBitFieldMaskBit62 = 0x2\n\tCBitFieldMaskBit63 = 0x1\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [118]byte\n\t_      uint64\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint64\n}\n\ntype Statfs_t struct {\n\tType    int64\n\tBsize   int64\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint64\n\tFfree   uint64\n\tFsid    Fsid\n\tNamelen int64\n\tFrsize  int64\n\tFlags   int64\n\tSpare   [4]int64\n}\n\ntype TpacketHdr struct {\n\tStatus  uint64\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n\t_       [4]byte\n}\n\nconst (\n\tSizeofTpacketHdr = 0x20\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int64\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG = 0x20001269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]uint8\n\tDriver_name [64]uint8\n\tModule_name [64]uint8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]uint8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]uint8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]uint8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]uint8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]uint8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]uint8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]uint8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]uint8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]uint8\n\tGeniv       [64]uint8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]uint8\n\tGeniv       [64]uint8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]uint8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]uint8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]uint8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]uint8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]uint8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint64\n\tInode            uint64\n\tRdevice          uint64\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]uint8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n\tReserved         [4]uint8\n\t_                [4]byte\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]uint8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]uint8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]uint8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n\t_               [4]byte\n}\n\nconst (\n\tPPS_GETPARAMS = 0x400870a1\n\tPPS_SETPARAMS = 0x800870a2\n\tPPS_GETCAP    = 0x400870a3\n\tPPS_FETCH     = 0xc00870a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x800\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint32\n\tSeq  uint32\n\t_    uint32\n\t_    uint64\n\t_    uint64\n}\ntype SysvShmDesc struct {\n\tPerm   SysvIpcPerm\n\tAtime  int64\n\tDtime  int64\n\tCtime  int64\n\tSegsz  uint64\n\tCpid   int32\n\tLpid   int32\n\tNattch uint64\n\t_      uint64\n\t_      uint64\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go",
    "content": "// cgo -godefs -objdir=/tmp/ppc64le/cgo -- -Wall -Werror -static -I/tmp/ppc64le/include linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc64le && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x8\n\tSizeofLong = 0x8\n)\n\ntype (\n\t_C_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int64\n\tFreq      int64\n\tMaxerror  int64\n\tEsterror  int64\n\tStatus    int32\n\tConstant  int64\n\tPrecision int64\n\tTolerance int64\n\tTime      Timeval\n\tTick      int64\n\tPpsfreq   int64\n\tJitter    int64\n\tShift     int32\n\tStabil    int64\n\tJitcnt    int64\n\tCalcnt    int64\n\tErrcnt    int64\n\tStbcnt    int64\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int64\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tNlink   uint64\n\tMode    uint32\n\tUid     uint32\n\tGid     uint32\n\t_       int32\n\tRdev    uint64\n\tSize    int64\n\tBlksize int64\n\tBlocks  int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\t_       uint64\n\t_       uint64\n\t_       uint64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]uint8\n\t_      [5]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n\tName [0]byte\n\t_    [4]byte\n}\n\nconst (\n\tFADV_DONTNEED = 0x4\n\tFADV_NOREUSE  = 0x5\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint64\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]uint8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]uint8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint64\n\tControl    *byte\n\tControllen uint64\n\tFlags      int32\n\t_          [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint64\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [24]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x60\n\tSizeofIovec           = 0x10\n\tSizeofMsghdr          = 0x38\n\tSizeofCmsghdr         = 0x10\n)\n\nconst (\n\tSizeofSockFprog = 0x10\n)\n\ntype PtraceRegs struct {\n\tGpr       [32]uint64\n\tNip       uint64\n\tMsr       uint64\n\tOrig_gpr3 uint64\n\tCtr       uint64\n\tLink      uint64\n\tXer       uint64\n\tCcr       uint64\n\tSofte     uint64\n\tTrap      uint64\n\tDar       uint64\n\tDsisr     uint64\n\tResult    uint64\n}\n\ntype FdSet struct {\n\tBits [16]int64\n}\n\ntype Sysinfo_t struct {\n\tUptime    int64\n\tLoads     [3]uint64\n\tTotalram  uint64\n\tFreeram   uint64\n\tSharedram uint64\n\tBufferram uint64\n\tTotalswap uint64\n\tFreeswap  uint64\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint64\n\tFreehigh  uint64\n\tUnit      uint32\n\t_         [0]uint8\n\t_         [4]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint64\n\tFname  [6]uint8\n\tFpack  [6]uint8\n\t_      [4]byte\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\t_      int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x80000\n)\n\nconst (\n\tPOLLRDHUP = 0x2000\n)\n\ntype Sigset_t struct {\n\tVal [16]uint64\n}\n\nconst _C__NSIG = 0x41\n\nconst (\n\tSIG_BLOCK   = 0x0\n\tSIG_UNBLOCK = 0x1\n\tSIG_SETMASK = 0x2\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tErrno int32\n\tCode  int32\n\t_     int32\n\t_     [112]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [19]uint8\n\tLine   uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]uint8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n}\n\ntype cpuMask uint64\n\nconst (\n\t_NCPUBITS = 0x40\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x1\n\tCBitFieldMaskBit1  = 0x2\n\tCBitFieldMaskBit2  = 0x4\n\tCBitFieldMaskBit3  = 0x8\n\tCBitFieldMaskBit4  = 0x10\n\tCBitFieldMaskBit5  = 0x20\n\tCBitFieldMaskBit6  = 0x40\n\tCBitFieldMaskBit7  = 0x80\n\tCBitFieldMaskBit8  = 0x100\n\tCBitFieldMaskBit9  = 0x200\n\tCBitFieldMaskBit10 = 0x400\n\tCBitFieldMaskBit11 = 0x800\n\tCBitFieldMaskBit12 = 0x1000\n\tCBitFieldMaskBit13 = 0x2000\n\tCBitFieldMaskBit14 = 0x4000\n\tCBitFieldMaskBit15 = 0x8000\n\tCBitFieldMaskBit16 = 0x10000\n\tCBitFieldMaskBit17 = 0x20000\n\tCBitFieldMaskBit18 = 0x40000\n\tCBitFieldMaskBit19 = 0x80000\n\tCBitFieldMaskBit20 = 0x100000\n\tCBitFieldMaskBit21 = 0x200000\n\tCBitFieldMaskBit22 = 0x400000\n\tCBitFieldMaskBit23 = 0x800000\n\tCBitFieldMaskBit24 = 0x1000000\n\tCBitFieldMaskBit25 = 0x2000000\n\tCBitFieldMaskBit26 = 0x4000000\n\tCBitFieldMaskBit27 = 0x8000000\n\tCBitFieldMaskBit28 = 0x10000000\n\tCBitFieldMaskBit29 = 0x20000000\n\tCBitFieldMaskBit30 = 0x40000000\n\tCBitFieldMaskBit31 = 0x80000000\n\tCBitFieldMaskBit32 = 0x100000000\n\tCBitFieldMaskBit33 = 0x200000000\n\tCBitFieldMaskBit34 = 0x400000000\n\tCBitFieldMaskBit35 = 0x800000000\n\tCBitFieldMaskBit36 = 0x1000000000\n\tCBitFieldMaskBit37 = 0x2000000000\n\tCBitFieldMaskBit38 = 0x4000000000\n\tCBitFieldMaskBit39 = 0x8000000000\n\tCBitFieldMaskBit40 = 0x10000000000\n\tCBitFieldMaskBit41 = 0x20000000000\n\tCBitFieldMaskBit42 = 0x40000000000\n\tCBitFieldMaskBit43 = 0x80000000000\n\tCBitFieldMaskBit44 = 0x100000000000\n\tCBitFieldMaskBit45 = 0x200000000000\n\tCBitFieldMaskBit46 = 0x400000000000\n\tCBitFieldMaskBit47 = 0x800000000000\n\tCBitFieldMaskBit48 = 0x1000000000000\n\tCBitFieldMaskBit49 = 0x2000000000000\n\tCBitFieldMaskBit50 = 0x4000000000000\n\tCBitFieldMaskBit51 = 0x8000000000000\n\tCBitFieldMaskBit52 = 0x10000000000000\n\tCBitFieldMaskBit53 = 0x20000000000000\n\tCBitFieldMaskBit54 = 0x40000000000000\n\tCBitFieldMaskBit55 = 0x80000000000000\n\tCBitFieldMaskBit56 = 0x100000000000000\n\tCBitFieldMaskBit57 = 0x200000000000000\n\tCBitFieldMaskBit58 = 0x400000000000000\n\tCBitFieldMaskBit59 = 0x800000000000000\n\tCBitFieldMaskBit60 = 0x1000000000000000\n\tCBitFieldMaskBit61 = 0x2000000000000000\n\tCBitFieldMaskBit62 = 0x4000000000000000\n\tCBitFieldMaskBit63 = 0x8000000000000000\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [118]byte\n\t_      uint64\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint64\n}\n\ntype Statfs_t struct {\n\tType    int64\n\tBsize   int64\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint64\n\tFfree   uint64\n\tFsid    Fsid\n\tNamelen int64\n\tFrsize  int64\n\tFlags   int64\n\tSpare   [4]int64\n}\n\ntype TpacketHdr struct {\n\tStatus  uint64\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n\t_       [4]byte\n}\n\nconst (\n\tSizeofTpacketHdr = 0x20\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int64\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG = 0x20001269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]uint8\n\tDriver_name [64]uint8\n\tModule_name [64]uint8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]uint8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]uint8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]uint8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]uint8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]uint8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]uint8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]uint8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]uint8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]uint8\n\tGeniv       [64]uint8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]uint8\n\tGeniv       [64]uint8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]uint8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]uint8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]uint8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]uint8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]uint8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint64\n\tInode            uint64\n\tRdevice          uint64\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]uint8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n\tReserved         [4]uint8\n\t_                [4]byte\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]uint8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]uint8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]uint8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n\t_               [4]byte\n}\n\nconst (\n\tPPS_GETPARAMS = 0x400870a1\n\tPPS_SETPARAMS = 0x800870a2\n\tPPS_GETCAP    = 0x400870a3\n\tPPS_FETCH     = 0xc00870a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x800\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint32\n\tSeq  uint32\n\t_    uint32\n\t_    uint64\n\t_    uint64\n}\ntype SysvShmDesc struct {\n\tPerm   SysvIpcPerm\n\tAtime  int64\n\tDtime  int64\n\tCtime  int64\n\tSegsz  uint64\n\tCpid   int32\n\tLpid   int32\n\tNattch uint64\n\t_      uint64\n\t_      uint64\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go",
    "content": "// cgo -godefs -objdir=/tmp/riscv64/cgo -- -Wall -Werror -static -I/tmp/riscv64/include linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build riscv64 && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x8\n\tSizeofLong = 0x8\n)\n\ntype (\n\t_C_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int64\n\tFreq      int64\n\tMaxerror  int64\n\tEsterror  int64\n\tStatus    int32\n\tConstant  int64\n\tPrecision int64\n\tTolerance int64\n\tTime      Timeval\n\tTick      int64\n\tPpsfreq   int64\n\tJitter    int64\n\tShift     int32\n\tStabil    int64\n\tJitcnt    int64\n\tCalcnt    int64\n\tErrcnt    int64\n\tStbcnt    int64\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int64\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint64\n\t_       uint64\n\tSize    int64\n\tBlksize int32\n\t_       int32\n\tBlocks  int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\t_       [2]int32\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]uint8\n\t_      [5]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n\tName [0]byte\n\t_    [4]byte\n}\n\nconst (\n\tFADV_DONTNEED = 0x4\n\tFADV_NOREUSE  = 0x5\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint64\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]uint8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]uint8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint64\n\tControl    *byte\n\tControllen uint64\n\tFlags      int32\n\t_          [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint64\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [24]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x60\n\tSizeofIovec           = 0x10\n\tSizeofMsghdr          = 0x38\n\tSizeofCmsghdr         = 0x10\n)\n\nconst (\n\tSizeofSockFprog = 0x10\n)\n\ntype PtraceRegs struct {\n\tPc  uint64\n\tRa  uint64\n\tSp  uint64\n\tGp  uint64\n\tTp  uint64\n\tT0  uint64\n\tT1  uint64\n\tT2  uint64\n\tS0  uint64\n\tS1  uint64\n\tA0  uint64\n\tA1  uint64\n\tA2  uint64\n\tA3  uint64\n\tA4  uint64\n\tA5  uint64\n\tA6  uint64\n\tA7  uint64\n\tS2  uint64\n\tS3  uint64\n\tS4  uint64\n\tS5  uint64\n\tS6  uint64\n\tS7  uint64\n\tS8  uint64\n\tS9  uint64\n\tS10 uint64\n\tS11 uint64\n\tT3  uint64\n\tT4  uint64\n\tT5  uint64\n\tT6  uint64\n}\n\ntype FdSet struct {\n\tBits [16]int64\n}\n\ntype Sysinfo_t struct {\n\tUptime    int64\n\tLoads     [3]uint64\n\tTotalram  uint64\n\tFreeram   uint64\n\tSharedram uint64\n\tBufferram uint64\n\tTotalswap uint64\n\tFreeswap  uint64\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint64\n\tFreehigh  uint64\n\tUnit      uint32\n\t_         [0]uint8\n\t_         [4]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint64\n\tFname  [6]uint8\n\tFpack  [6]uint8\n\t_      [4]byte\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\t_      int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x80000\n)\n\nconst (\n\tPOLLRDHUP = 0x2000\n)\n\ntype Sigset_t struct {\n\tVal [16]uint64\n}\n\nconst _C__NSIG = 0x41\n\nconst (\n\tSIG_BLOCK   = 0x0\n\tSIG_UNBLOCK = 0x1\n\tSIG_SETMASK = 0x2\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tErrno int32\n\tCode  int32\n\t_     int32\n\t_     [112]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [19]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]uint8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n}\n\ntype cpuMask uint64\n\nconst (\n\t_NCPUBITS = 0x40\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x1\n\tCBitFieldMaskBit1  = 0x2\n\tCBitFieldMaskBit2  = 0x4\n\tCBitFieldMaskBit3  = 0x8\n\tCBitFieldMaskBit4  = 0x10\n\tCBitFieldMaskBit5  = 0x20\n\tCBitFieldMaskBit6  = 0x40\n\tCBitFieldMaskBit7  = 0x80\n\tCBitFieldMaskBit8  = 0x100\n\tCBitFieldMaskBit9  = 0x200\n\tCBitFieldMaskBit10 = 0x400\n\tCBitFieldMaskBit11 = 0x800\n\tCBitFieldMaskBit12 = 0x1000\n\tCBitFieldMaskBit13 = 0x2000\n\tCBitFieldMaskBit14 = 0x4000\n\tCBitFieldMaskBit15 = 0x8000\n\tCBitFieldMaskBit16 = 0x10000\n\tCBitFieldMaskBit17 = 0x20000\n\tCBitFieldMaskBit18 = 0x40000\n\tCBitFieldMaskBit19 = 0x80000\n\tCBitFieldMaskBit20 = 0x100000\n\tCBitFieldMaskBit21 = 0x200000\n\tCBitFieldMaskBit22 = 0x400000\n\tCBitFieldMaskBit23 = 0x800000\n\tCBitFieldMaskBit24 = 0x1000000\n\tCBitFieldMaskBit25 = 0x2000000\n\tCBitFieldMaskBit26 = 0x4000000\n\tCBitFieldMaskBit27 = 0x8000000\n\tCBitFieldMaskBit28 = 0x10000000\n\tCBitFieldMaskBit29 = 0x20000000\n\tCBitFieldMaskBit30 = 0x40000000\n\tCBitFieldMaskBit31 = 0x80000000\n\tCBitFieldMaskBit32 = 0x100000000\n\tCBitFieldMaskBit33 = 0x200000000\n\tCBitFieldMaskBit34 = 0x400000000\n\tCBitFieldMaskBit35 = 0x800000000\n\tCBitFieldMaskBit36 = 0x1000000000\n\tCBitFieldMaskBit37 = 0x2000000000\n\tCBitFieldMaskBit38 = 0x4000000000\n\tCBitFieldMaskBit39 = 0x8000000000\n\tCBitFieldMaskBit40 = 0x10000000000\n\tCBitFieldMaskBit41 = 0x20000000000\n\tCBitFieldMaskBit42 = 0x40000000000\n\tCBitFieldMaskBit43 = 0x80000000000\n\tCBitFieldMaskBit44 = 0x100000000000\n\tCBitFieldMaskBit45 = 0x200000000000\n\tCBitFieldMaskBit46 = 0x400000000000\n\tCBitFieldMaskBit47 = 0x800000000000\n\tCBitFieldMaskBit48 = 0x1000000000000\n\tCBitFieldMaskBit49 = 0x2000000000000\n\tCBitFieldMaskBit50 = 0x4000000000000\n\tCBitFieldMaskBit51 = 0x8000000000000\n\tCBitFieldMaskBit52 = 0x10000000000000\n\tCBitFieldMaskBit53 = 0x20000000000000\n\tCBitFieldMaskBit54 = 0x40000000000000\n\tCBitFieldMaskBit55 = 0x80000000000000\n\tCBitFieldMaskBit56 = 0x100000000000000\n\tCBitFieldMaskBit57 = 0x200000000000000\n\tCBitFieldMaskBit58 = 0x400000000000000\n\tCBitFieldMaskBit59 = 0x800000000000000\n\tCBitFieldMaskBit60 = 0x1000000000000000\n\tCBitFieldMaskBit61 = 0x2000000000000000\n\tCBitFieldMaskBit62 = 0x4000000000000000\n\tCBitFieldMaskBit63 = 0x8000000000000000\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [118]byte\n\t_      uint64\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint64\n}\n\ntype Statfs_t struct {\n\tType    int64\n\tBsize   int64\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint64\n\tFfree   uint64\n\tFsid    Fsid\n\tNamelen int64\n\tFrsize  int64\n\tFlags   int64\n\tSpare   [4]int64\n}\n\ntype TpacketHdr struct {\n\tStatus  uint64\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n\t_       [4]byte\n}\n\nconst (\n\tSizeofTpacketHdr = 0x20\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int64\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG = 0x1269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]uint8\n\tDriver_name [64]uint8\n\tModule_name [64]uint8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]uint8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]uint8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]uint8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]uint8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]uint8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]uint8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]uint8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]uint8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]uint8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]uint8\n\tGeniv       [64]uint8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]uint8\n\tGeniv       [64]uint8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]uint8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]uint8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]uint8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]uint8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]uint8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint32\n\tInode            uint64\n\tRdevice          uint32\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]uint8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n\tReserved         [4]uint8\n\t_                [4]byte\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]uint8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]uint8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]uint8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n\t_               [4]byte\n}\n\nconst (\n\tPPS_GETPARAMS = 0x800870a1\n\tPPS_SETPARAMS = 0x400870a2\n\tPPS_GETCAP    = 0x800870a3\n\tPPS_FETCH     = 0xc00870a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x800\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint32\n\t_    [0]uint8\n\tSeq  uint16\n\t_    uint16\n\t_    uint64\n\t_    uint64\n}\ntype SysvShmDesc struct {\n\tPerm   SysvIpcPerm\n\tSegsz  uint64\n\tAtime  int64\n\tDtime  int64\n\tCtime  int64\n\tCpid   int32\n\tLpid   int32\n\tNattch uint64\n\t_      uint64\n\t_      uint64\n}\n\ntype RISCVHWProbePairs struct {\n\tKey   int64\n\tValue uint64\n}\n\nconst (\n\tRISCV_HWPROBE_KEY_MVENDORID          = 0x0\n\tRISCV_HWPROBE_KEY_MARCHID            = 0x1\n\tRISCV_HWPROBE_KEY_MIMPID             = 0x2\n\tRISCV_HWPROBE_KEY_BASE_BEHAVIOR      = 0x3\n\tRISCV_HWPROBE_BASE_BEHAVIOR_IMA      = 0x1\n\tRISCV_HWPROBE_KEY_IMA_EXT_0          = 0x4\n\tRISCV_HWPROBE_IMA_FD                 = 0x1\n\tRISCV_HWPROBE_IMA_C                  = 0x2\n\tRISCV_HWPROBE_IMA_V                  = 0x4\n\tRISCV_HWPROBE_EXT_ZBA                = 0x8\n\tRISCV_HWPROBE_EXT_ZBB                = 0x10\n\tRISCV_HWPROBE_EXT_ZBS                = 0x20\n\tRISCV_HWPROBE_EXT_ZICBOZ             = 0x40\n\tRISCV_HWPROBE_EXT_ZBC                = 0x80\n\tRISCV_HWPROBE_EXT_ZBKB               = 0x100\n\tRISCV_HWPROBE_EXT_ZBKC               = 0x200\n\tRISCV_HWPROBE_EXT_ZBKX               = 0x400\n\tRISCV_HWPROBE_EXT_ZKND               = 0x800\n\tRISCV_HWPROBE_EXT_ZKNE               = 0x1000\n\tRISCV_HWPROBE_EXT_ZKNH               = 0x2000\n\tRISCV_HWPROBE_EXT_ZKSED              = 0x4000\n\tRISCV_HWPROBE_EXT_ZKSH               = 0x8000\n\tRISCV_HWPROBE_EXT_ZKT                = 0x10000\n\tRISCV_HWPROBE_EXT_ZVBB               = 0x20000\n\tRISCV_HWPROBE_EXT_ZVBC               = 0x40000\n\tRISCV_HWPROBE_EXT_ZVKB               = 0x80000\n\tRISCV_HWPROBE_EXT_ZVKG               = 0x100000\n\tRISCV_HWPROBE_EXT_ZVKNED             = 0x200000\n\tRISCV_HWPROBE_EXT_ZVKNHA             = 0x400000\n\tRISCV_HWPROBE_EXT_ZVKNHB             = 0x800000\n\tRISCV_HWPROBE_EXT_ZVKSED             = 0x1000000\n\tRISCV_HWPROBE_EXT_ZVKSH              = 0x2000000\n\tRISCV_HWPROBE_EXT_ZVKT               = 0x4000000\n\tRISCV_HWPROBE_EXT_ZFH                = 0x8000000\n\tRISCV_HWPROBE_EXT_ZFHMIN             = 0x10000000\n\tRISCV_HWPROBE_EXT_ZIHINTNTL          = 0x20000000\n\tRISCV_HWPROBE_EXT_ZVFH               = 0x40000000\n\tRISCV_HWPROBE_EXT_ZVFHMIN            = 0x80000000\n\tRISCV_HWPROBE_EXT_ZFA                = 0x100000000\n\tRISCV_HWPROBE_EXT_ZTSO               = 0x200000000\n\tRISCV_HWPROBE_EXT_ZACAS              = 0x400000000\n\tRISCV_HWPROBE_EXT_ZICOND             = 0x800000000\n\tRISCV_HWPROBE_EXT_ZIHINTPAUSE        = 0x1000000000\n\tRISCV_HWPROBE_KEY_CPUPERF_0          = 0x5\n\tRISCV_HWPROBE_MISALIGNED_UNKNOWN     = 0x0\n\tRISCV_HWPROBE_MISALIGNED_EMULATED    = 0x1\n\tRISCV_HWPROBE_MISALIGNED_SLOW        = 0x2\n\tRISCV_HWPROBE_MISALIGNED_FAST        = 0x3\n\tRISCV_HWPROBE_MISALIGNED_UNSUPPORTED = 0x4\n\tRISCV_HWPROBE_MISALIGNED_MASK        = 0x7\n\tRISCV_HWPROBE_KEY_ZICBOZ_BLOCK_SIZE  = 0x6\n\tRISCV_HWPROBE_WHICH_CPUS             = 0x1\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go",
    "content": "// cgo -godefs -objdir=/tmp/s390x/cgo -- -Wall -Werror -static -I/tmp/s390x/include -fsigned-char linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build s390x && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x8\n\tSizeofLong = 0x8\n)\n\ntype (\n\t_C_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int64\n\tFreq      int64\n\tMaxerror  int64\n\tEsterror  int64\n\tStatus    int32\n\tConstant  int64\n\tPrecision int64\n\tTolerance int64\n\tTime      Timeval\n\tTick      int64\n\tPpsfreq   int64\n\tJitter    int64\n\tShift     int32\n\tStabil    int64\n\tJitcnt    int64\n\tCalcnt    int64\n\tErrcnt    int64\n\tStbcnt    int64\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int64\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tNlink   uint64\n\tMode    uint32\n\tUid     uint32\n\tGid     uint32\n\t_       int32\n\tRdev    uint64\n\tSize    int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBlksize int64\n\tBlocks  int64\n\t_       [3]int64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]int8\n\t_      [5]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      [4]byte\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n\tName [0]byte\n\t_    [4]byte\n}\n\nconst (\n\tFADV_DONTNEED = 0x6\n\tFADV_NOREUSE  = 0x7\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint64\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]int8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint64\n\tControl    *byte\n\tControllen uint64\n\tFlags      int32\n\t_          [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint64\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [24]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x60\n\tSizeofIovec           = 0x10\n\tSizeofMsghdr          = 0x38\n\tSizeofCmsghdr         = 0x10\n)\n\nconst (\n\tSizeofSockFprog = 0x10\n)\n\ntype PtraceRegs struct {\n\tPsw                      PtracePsw\n\tGprs                     [16]uint64\n\tAcrs                     [16]uint32\n\tOrig_gpr2                uint64\n\tFp_regs                  PtraceFpregs\n\tPer_info                 PtracePer\n\tIeee_instruction_pointer uint64\n}\n\ntype PtracePsw struct {\n\tMask uint64\n\tAddr uint64\n}\n\ntype PtraceFpregs struct {\n\tFpc  uint32\n\tFprs [16]float64\n}\n\ntype PtracePer struct {\n\tControl_regs  [3]uint64\n\t_             [8]byte\n\tStarting_addr uint64\n\tEnding_addr   uint64\n\tPerc_atmid    uint16\n\tAddress       uint64\n\tAccess_id     uint8\n\t_             [7]byte\n}\n\ntype FdSet struct {\n\tBits [16]int64\n}\n\ntype Sysinfo_t struct {\n\tUptime    int64\n\tLoads     [3]uint64\n\tTotalram  uint64\n\tFreeram   uint64\n\tSharedram uint64\n\tBufferram uint64\n\tTotalswap uint64\n\tFreeswap  uint64\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint64\n\tFreehigh  uint64\n\tUnit      uint32\n\t_         [0]int8\n\t_         [4]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint64\n\tFname  [6]int8\n\tFpack  [6]int8\n\t_      [4]byte\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\t_      int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x80000\n)\n\nconst (\n\tPOLLRDHUP = 0x2000\n)\n\ntype Sigset_t struct {\n\tVal [16]uint64\n}\n\nconst _C__NSIG = 0x41\n\nconst (\n\tSIG_BLOCK   = 0x0\n\tSIG_UNBLOCK = 0x1\n\tSIG_SETMASK = 0x2\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tErrno int32\n\tCode  int32\n\t_     int32\n\t_     [112]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [19]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]int8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n}\n\ntype cpuMask uint64\n\nconst (\n\t_NCPUBITS = 0x40\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x8000000000000000\n\tCBitFieldMaskBit1  = 0x4000000000000000\n\tCBitFieldMaskBit2  = 0x2000000000000000\n\tCBitFieldMaskBit3  = 0x1000000000000000\n\tCBitFieldMaskBit4  = 0x800000000000000\n\tCBitFieldMaskBit5  = 0x400000000000000\n\tCBitFieldMaskBit6  = 0x200000000000000\n\tCBitFieldMaskBit7  = 0x100000000000000\n\tCBitFieldMaskBit8  = 0x80000000000000\n\tCBitFieldMaskBit9  = 0x40000000000000\n\tCBitFieldMaskBit10 = 0x20000000000000\n\tCBitFieldMaskBit11 = 0x10000000000000\n\tCBitFieldMaskBit12 = 0x8000000000000\n\tCBitFieldMaskBit13 = 0x4000000000000\n\tCBitFieldMaskBit14 = 0x2000000000000\n\tCBitFieldMaskBit15 = 0x1000000000000\n\tCBitFieldMaskBit16 = 0x800000000000\n\tCBitFieldMaskBit17 = 0x400000000000\n\tCBitFieldMaskBit18 = 0x200000000000\n\tCBitFieldMaskBit19 = 0x100000000000\n\tCBitFieldMaskBit20 = 0x80000000000\n\tCBitFieldMaskBit21 = 0x40000000000\n\tCBitFieldMaskBit22 = 0x20000000000\n\tCBitFieldMaskBit23 = 0x10000000000\n\tCBitFieldMaskBit24 = 0x8000000000\n\tCBitFieldMaskBit25 = 0x4000000000\n\tCBitFieldMaskBit26 = 0x2000000000\n\tCBitFieldMaskBit27 = 0x1000000000\n\tCBitFieldMaskBit28 = 0x800000000\n\tCBitFieldMaskBit29 = 0x400000000\n\tCBitFieldMaskBit30 = 0x200000000\n\tCBitFieldMaskBit31 = 0x100000000\n\tCBitFieldMaskBit32 = 0x80000000\n\tCBitFieldMaskBit33 = 0x40000000\n\tCBitFieldMaskBit34 = 0x20000000\n\tCBitFieldMaskBit35 = 0x10000000\n\tCBitFieldMaskBit36 = 0x8000000\n\tCBitFieldMaskBit37 = 0x4000000\n\tCBitFieldMaskBit38 = 0x2000000\n\tCBitFieldMaskBit39 = 0x1000000\n\tCBitFieldMaskBit40 = 0x800000\n\tCBitFieldMaskBit41 = 0x400000\n\tCBitFieldMaskBit42 = 0x200000\n\tCBitFieldMaskBit43 = 0x100000\n\tCBitFieldMaskBit44 = 0x80000\n\tCBitFieldMaskBit45 = 0x40000\n\tCBitFieldMaskBit46 = 0x20000\n\tCBitFieldMaskBit47 = 0x10000\n\tCBitFieldMaskBit48 = 0x8000\n\tCBitFieldMaskBit49 = 0x4000\n\tCBitFieldMaskBit50 = 0x2000\n\tCBitFieldMaskBit51 = 0x1000\n\tCBitFieldMaskBit52 = 0x800\n\tCBitFieldMaskBit53 = 0x400\n\tCBitFieldMaskBit54 = 0x200\n\tCBitFieldMaskBit55 = 0x100\n\tCBitFieldMaskBit56 = 0x80\n\tCBitFieldMaskBit57 = 0x40\n\tCBitFieldMaskBit58 = 0x20\n\tCBitFieldMaskBit59 = 0x10\n\tCBitFieldMaskBit60 = 0x8\n\tCBitFieldMaskBit61 = 0x4\n\tCBitFieldMaskBit62 = 0x2\n\tCBitFieldMaskBit63 = 0x1\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [118]byte\n\t_      uint64\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint64\n}\n\ntype Statfs_t struct {\n\tType    uint32\n\tBsize   uint32\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint64\n\tFfree   uint64\n\tFsid    Fsid\n\tNamelen uint32\n\tFrsize  uint32\n\tFlags   uint32\n\tSpare   [4]uint32\n\t_       [4]byte\n}\n\ntype TpacketHdr struct {\n\tStatus  uint64\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n\t_       [4]byte\n}\n\nconst (\n\tSizeofTpacketHdr = 0x20\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int64\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG = 0x1269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]int8\n\tDriver_name [64]int8\n\tModule_name [64]int8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]int8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]int8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]int8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]int8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]int8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]int8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]int8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]int8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]int8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]int8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint16\n\tInode            uint64\n\tRdevice          uint16\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]int8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n\tReserved         [4]int8\n\t_                [4]byte\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]int8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]int8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]int8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n\t_               [4]byte\n}\n\nconst (\n\tPPS_GETPARAMS = 0x800870a1\n\tPPS_SETPARAMS = 0x400870a2\n\tPPS_GETCAP    = 0x800870a3\n\tPPS_FETCH     = 0xc00870a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x800\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint32\n\t_    uint16\n\tSeq  uint16\n\t_    uint64\n\t_    uint64\n}\ntype SysvShmDesc struct {\n\tPerm   SysvIpcPerm\n\tSegsz  uint64\n\tAtime  int64\n\tDtime  int64\n\tCtime  int64\n\tCpid   int32\n\tLpid   int32\n\tNattch uint64\n\t_      uint64\n\t_      uint64\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go",
    "content": "// cgo -godefs -objdir=/tmp/sparc64/cgo -- -Wall -Werror -static -I/tmp/sparc64/include linux/types.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build sparc64 && linux\n\npackage unix\n\nconst (\n\tSizeofPtr  = 0x8\n\tSizeofLong = 0x8\n)\n\ntype (\n\t_C_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int32\n\t_    [4]byte\n}\n\ntype Timex struct {\n\tModes     uint32\n\tOffset    int64\n\tFreq      int64\n\tMaxerror  int64\n\tEsterror  int64\n\tStatus    int32\n\tConstant  int64\n\tPrecision int64\n\tTolerance int64\n\tTime      Timeval\n\tTick      int64\n\tPpsfreq   int64\n\tJitter    int64\n\tShift     int32\n\tStabil    int64\n\tJitcnt    int64\n\tCalcnt    int64\n\tErrcnt    int64\n\tStbcnt    int64\n\tTai       int32\n\t_         [44]byte\n}\n\ntype Time_t int64\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Stat_t struct {\n\tDev     uint64\n\t_       uint16\n\tIno     uint64\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint64\n\t_       uint16\n\tSize    int64\n\tBlksize int64\n\tBlocks  int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\t_       uint64\n\t_       uint64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]int8\n\t_      [5]byte\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\t_      int16\n\t_      [2]byte\n}\n\ntype DmNameList struct {\n\tDev  uint64\n\tNext uint32\n\tName [0]byte\n\t_    [4]byte\n}\n\nconst (\n\tFADV_DONTNEED = 0x4\n\tFADV_NOREUSE  = 0x5\n)\n\ntype RawSockaddrNFCLLCP struct {\n\tSa_family        uint16\n\tDev_idx          uint32\n\tTarget_idx       uint32\n\tNfc_protocol     uint32\n\tDsap             uint8\n\tSsap             uint8\n\tService_name     [63]uint8\n\tService_name_len uint64\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [96]int8\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint64\n\tControl    *byte\n\tControllen uint64\n\tFlags      int32\n\t_          [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint64\n\tLevel int32\n\tType  int32\n}\n\ntype ifreq struct {\n\tIfrn [16]byte\n\tIfru [24]byte\n}\n\nconst (\n\tSizeofSockaddrNFCLLCP = 0x60\n\tSizeofIovec           = 0x10\n\tSizeofMsghdr          = 0x38\n\tSizeofCmsghdr         = 0x10\n)\n\nconst (\n\tSizeofSockFprog = 0x10\n)\n\ntype PtraceRegs struct {\n\tRegs   [16]uint64\n\tTstate uint64\n\tTpc    uint64\n\tTnpc   uint64\n\tY      uint32\n\tMagic  uint32\n}\n\ntype FdSet struct {\n\tBits [16]int64\n}\n\ntype Sysinfo_t struct {\n\tUptime    int64\n\tLoads     [3]uint64\n\tTotalram  uint64\n\tFreeram   uint64\n\tSharedram uint64\n\tBufferram uint64\n\tTotalswap uint64\n\tFreeswap  uint64\n\tProcs     uint16\n\tPad       uint16\n\tTotalhigh uint64\n\tFreehigh  uint64\n\tUnit      uint32\n\t_         [0]int8\n\t_         [4]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int32\n\tTinode uint64\n\tFname  [6]int8\n\tFpack  [6]int8\n\t_      [4]byte\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\t_      int32\n\tFd     int32\n\tPad    int32\n}\n\nconst (\n\tOPEN_TREE_CLOEXEC = 0x400000\n)\n\nconst (\n\tPOLLRDHUP = 0x800\n)\n\ntype Sigset_t struct {\n\tVal [16]uint64\n}\n\nconst _C__NSIG = 0x41\n\nconst (\n\tSIG_BLOCK   = 0x1\n\tSIG_UNBLOCK = 0x2\n\tSIG_SETMASK = 0x4\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tErrno int32\n\tCode  int32\n\t_     int32\n\t_     [112]byte\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tLine   uint8\n\tCc     [19]uint8\n\tIspeed uint32\n\tOspeed uint32\n}\n\ntype Taskstats struct {\n\tVersion                   uint16\n\tAc_exitcode               uint32\n\tAc_flag                   uint8\n\tAc_nice                   uint8\n\tCpu_count                 uint64\n\tCpu_delay_total           uint64\n\tBlkio_count               uint64\n\tBlkio_delay_total         uint64\n\tSwapin_count              uint64\n\tSwapin_delay_total        uint64\n\tCpu_run_real_total        uint64\n\tCpu_run_virtual_total     uint64\n\tAc_comm                   [32]int8\n\tAc_sched                  uint8\n\tAc_pad                    [3]uint8\n\t_                         [4]byte\n\tAc_uid                    uint32\n\tAc_gid                    uint32\n\tAc_pid                    uint32\n\tAc_ppid                   uint32\n\tAc_btime                  uint32\n\tAc_etime                  uint64\n\tAc_utime                  uint64\n\tAc_stime                  uint64\n\tAc_minflt                 uint64\n\tAc_majflt                 uint64\n\tCoremem                   uint64\n\tVirtmem                   uint64\n\tHiwater_rss               uint64\n\tHiwater_vm                uint64\n\tRead_char                 uint64\n\tWrite_char                uint64\n\tRead_syscalls             uint64\n\tWrite_syscalls            uint64\n\tRead_bytes                uint64\n\tWrite_bytes               uint64\n\tCancelled_write_bytes     uint64\n\tNvcsw                     uint64\n\tNivcsw                    uint64\n\tAc_utimescaled            uint64\n\tAc_stimescaled            uint64\n\tCpu_scaled_run_real_total uint64\n\tFreepages_count           uint64\n\tFreepages_delay_total     uint64\n\tThrashing_count           uint64\n\tThrashing_delay_total     uint64\n\tAc_btime64                uint64\n\tCompact_count             uint64\n\tCompact_delay_total       uint64\n\tAc_tgid                   uint32\n\tAc_tgetime                uint64\n\tAc_exe_dev                uint64\n\tAc_exe_inode              uint64\n\tWpcopy_count              uint64\n\tWpcopy_delay_total        uint64\n\tIrq_count                 uint64\n\tIrq_delay_total           uint64\n}\n\ntype cpuMask uint64\n\nconst (\n\t_NCPUBITS = 0x40\n)\n\nconst (\n\tCBitFieldMaskBit0  = 0x8000000000000000\n\tCBitFieldMaskBit1  = 0x4000000000000000\n\tCBitFieldMaskBit2  = 0x2000000000000000\n\tCBitFieldMaskBit3  = 0x1000000000000000\n\tCBitFieldMaskBit4  = 0x800000000000000\n\tCBitFieldMaskBit5  = 0x400000000000000\n\tCBitFieldMaskBit6  = 0x200000000000000\n\tCBitFieldMaskBit7  = 0x100000000000000\n\tCBitFieldMaskBit8  = 0x80000000000000\n\tCBitFieldMaskBit9  = 0x40000000000000\n\tCBitFieldMaskBit10 = 0x20000000000000\n\tCBitFieldMaskBit11 = 0x10000000000000\n\tCBitFieldMaskBit12 = 0x8000000000000\n\tCBitFieldMaskBit13 = 0x4000000000000\n\tCBitFieldMaskBit14 = 0x2000000000000\n\tCBitFieldMaskBit15 = 0x1000000000000\n\tCBitFieldMaskBit16 = 0x800000000000\n\tCBitFieldMaskBit17 = 0x400000000000\n\tCBitFieldMaskBit18 = 0x200000000000\n\tCBitFieldMaskBit19 = 0x100000000000\n\tCBitFieldMaskBit20 = 0x80000000000\n\tCBitFieldMaskBit21 = 0x40000000000\n\tCBitFieldMaskBit22 = 0x20000000000\n\tCBitFieldMaskBit23 = 0x10000000000\n\tCBitFieldMaskBit24 = 0x8000000000\n\tCBitFieldMaskBit25 = 0x4000000000\n\tCBitFieldMaskBit26 = 0x2000000000\n\tCBitFieldMaskBit27 = 0x1000000000\n\tCBitFieldMaskBit28 = 0x800000000\n\tCBitFieldMaskBit29 = 0x400000000\n\tCBitFieldMaskBit30 = 0x200000000\n\tCBitFieldMaskBit31 = 0x100000000\n\tCBitFieldMaskBit32 = 0x80000000\n\tCBitFieldMaskBit33 = 0x40000000\n\tCBitFieldMaskBit34 = 0x20000000\n\tCBitFieldMaskBit35 = 0x10000000\n\tCBitFieldMaskBit36 = 0x8000000\n\tCBitFieldMaskBit37 = 0x4000000\n\tCBitFieldMaskBit38 = 0x2000000\n\tCBitFieldMaskBit39 = 0x1000000\n\tCBitFieldMaskBit40 = 0x800000\n\tCBitFieldMaskBit41 = 0x400000\n\tCBitFieldMaskBit42 = 0x200000\n\tCBitFieldMaskBit43 = 0x100000\n\tCBitFieldMaskBit44 = 0x80000\n\tCBitFieldMaskBit45 = 0x40000\n\tCBitFieldMaskBit46 = 0x20000\n\tCBitFieldMaskBit47 = 0x10000\n\tCBitFieldMaskBit48 = 0x8000\n\tCBitFieldMaskBit49 = 0x4000\n\tCBitFieldMaskBit50 = 0x2000\n\tCBitFieldMaskBit51 = 0x1000\n\tCBitFieldMaskBit52 = 0x800\n\tCBitFieldMaskBit53 = 0x400\n\tCBitFieldMaskBit54 = 0x200\n\tCBitFieldMaskBit55 = 0x100\n\tCBitFieldMaskBit56 = 0x80\n\tCBitFieldMaskBit57 = 0x40\n\tCBitFieldMaskBit58 = 0x20\n\tCBitFieldMaskBit59 = 0x10\n\tCBitFieldMaskBit60 = 0x8\n\tCBitFieldMaskBit61 = 0x4\n\tCBitFieldMaskBit62 = 0x2\n\tCBitFieldMaskBit63 = 0x1\n)\n\ntype SockaddrStorage struct {\n\tFamily uint16\n\tData   [118]byte\n\t_      uint64\n}\n\ntype HDGeometry struct {\n\tHeads     uint8\n\tSectors   uint8\n\tCylinders uint16\n\tStart     uint64\n}\n\ntype Statfs_t struct {\n\tType    int64\n\tBsize   int64\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint64\n\tFfree   uint64\n\tFsid    Fsid\n\tNamelen int64\n\tFrsize  int64\n\tFlags   int64\n\tSpare   [4]int64\n}\n\ntype TpacketHdr struct {\n\tStatus  uint64\n\tLen     uint32\n\tSnaplen uint32\n\tMac     uint16\n\tNet     uint16\n\tSec     uint32\n\tUsec    uint32\n\t_       [4]byte\n}\n\nconst (\n\tSizeofTpacketHdr = 0x20\n)\n\ntype RTCPLLInfo struct {\n\tCtrl    int32\n\tValue   int32\n\tMax     int32\n\tMin     int32\n\tPosmult int32\n\tNegmult int32\n\tClock   int64\n}\n\ntype BlkpgPartition struct {\n\tStart   int64\n\tLength  int64\n\tPno     int32\n\tDevname [64]uint8\n\tVolname [64]uint8\n\t_       [4]byte\n}\n\nconst (\n\tBLKPG = 0x20001269\n)\n\ntype CryptoUserAlg struct {\n\tName        [64]int8\n\tDriver_name [64]int8\n\tModule_name [64]int8\n\tType        uint32\n\tMask        uint32\n\tRefcnt      uint32\n\tFlags       uint32\n}\n\ntype CryptoStatAEAD struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatAKCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tVerify_cnt   uint64\n\tSign_cnt     uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCipher struct {\n\tType         [64]int8\n\tEncrypt_cnt  uint64\n\tEncrypt_tlen uint64\n\tDecrypt_cnt  uint64\n\tDecrypt_tlen uint64\n\tErr_cnt      uint64\n}\n\ntype CryptoStatCompress struct {\n\tType            [64]int8\n\tCompress_cnt    uint64\n\tCompress_tlen   uint64\n\tDecompress_cnt  uint64\n\tDecompress_tlen uint64\n\tErr_cnt         uint64\n}\n\ntype CryptoStatHash struct {\n\tType      [64]int8\n\tHash_cnt  uint64\n\tHash_tlen uint64\n\tErr_cnt   uint64\n}\n\ntype CryptoStatKPP struct {\n\tType                      [64]int8\n\tSetsecret_cnt             uint64\n\tGenerate_public_key_cnt   uint64\n\tCompute_shared_secret_cnt uint64\n\tErr_cnt                   uint64\n}\n\ntype CryptoStatRNG struct {\n\tType          [64]int8\n\tGenerate_cnt  uint64\n\tGenerate_tlen uint64\n\tSeed_cnt      uint64\n\tErr_cnt       uint64\n}\n\ntype CryptoStatLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportLarval struct {\n\tType [64]int8\n}\n\ntype CryptoReportHash struct {\n\tType       [64]int8\n\tBlocksize  uint32\n\tDigestsize uint32\n}\n\ntype CryptoReportCipher struct {\n\tType        [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n}\n\ntype CryptoReportBlkCipher struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMin_keysize uint32\n\tMax_keysize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportAEAD struct {\n\tType        [64]int8\n\tGeniv       [64]int8\n\tBlocksize   uint32\n\tMaxauthsize uint32\n\tIvsize      uint32\n}\n\ntype CryptoReportComp struct {\n\tType [64]int8\n}\n\ntype CryptoReportRNG struct {\n\tType     [64]int8\n\tSeedsize uint32\n}\n\ntype CryptoReportAKCipher struct {\n\tType [64]int8\n}\n\ntype CryptoReportKPP struct {\n\tType [64]int8\n}\n\ntype CryptoReportAcomp struct {\n\tType [64]int8\n}\n\ntype LoopInfo struct {\n\tNumber           int32\n\tDevice           uint32\n\tInode            uint64\n\tRdevice          uint32\n\tOffset           int32\n\tEncrypt_type     int32\n\tEncrypt_key_size int32\n\tFlags            int32\n\tName             [64]int8\n\tEncrypt_key      [32]uint8\n\tInit             [2]uint64\n\tReserved         [4]int8\n\t_                [4]byte\n}\n\ntype TIPCSubscr struct {\n\tSeq     TIPCServiceRange\n\tTimeout uint32\n\tFilter  uint32\n\tHandle  [8]int8\n}\n\ntype TIPCSIOCLNReq struct {\n\tPeer     uint32\n\tId       uint32\n\tLinkname [68]int8\n}\n\ntype TIPCSIOCNodeIDReq struct {\n\tPeer uint32\n\tId   [16]int8\n}\n\ntype PPSKInfo struct {\n\tAssert_sequence uint32\n\tClear_sequence  uint32\n\tAssert_tu       PPSKTime\n\tClear_tu        PPSKTime\n\tCurrent_mode    int32\n\t_               [4]byte\n}\n\nconst (\n\tPPS_GETPARAMS = 0x400870a1\n\tPPS_SETPARAMS = 0x800870a2\n\tPPS_GETCAP    = 0x400870a3\n\tPPS_FETCH     = 0xc00870a4\n)\n\nconst (\n\tPIDFD_NONBLOCK = 0x4000\n)\n\ntype SysvIpcPerm struct {\n\tKey  int32\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode uint32\n\t_    uint16\n\tSeq  uint16\n\t_    uint64\n\t_    uint64\n}\ntype SysvShmDesc struct {\n\tPerm   SysvIpcPerm\n\tAtime  int64\n\tDtime  int64\n\tCtime  int64\n\tSegsz  uint64\n\tCpid   int32\n\tLpid   int32\n\tNattch uint64\n\t_      uint64\n\t_      uint64\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go",
    "content": "// cgo -godefs types_netbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build 386 && netbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x4\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x4\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int32\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int32\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     uint64\n\tMode    uint32\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize uint32\n\tFlags   uint32\n\tGen     uint32\n\tSpare   [2]uint32\n}\n\ntype Statfs_t [0]byte\n\ntype Statvfs_t struct {\n\tFlag        uint32\n\tBsize       uint32\n\tFrsize      uint32\n\tIosize      uint32\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      uint64\n\tBresvd      uint64\n\tFiles       uint64\n\tFfree       uint64\n\tFavail      uint64\n\tFresvd      uint64\n\tSyncreads   uint64\n\tSyncwrites  uint64\n\tAsyncreads  uint64\n\tAsyncwrites uint64\n\tFsidx       Fsid\n\tFsid        uint32\n\tNamemax     uint32\n\tOwner       uint32\n\tSpare       [4]uint32\n\tFstypename  [32]byte\n\tMntonname   [1024]byte\n\tMntfromname [1024]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno    uint64\n\tReclen    uint16\n\tNamlen    uint16\n\tType      uint8\n\tName      [512]int8\n\tPad_cgo_0 [3]byte\n}\n\ntype Fsid struct {\n\tX__fsid_val [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\nconst (\n\tST_WAIT   = 0x1\n\tST_NOWAIT = 0x2\n)\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x14\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x1c\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint32\n\tFilter uint32\n\tFlags  uint32\n\tFflags uint32\n\tData   int64\n\tUdata  int32\n}\n\ntype FdSet struct {\n\tBits [8]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0x98\n\tSizeofIfData           = 0x84\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x18\n\tSizeofRtMsghdr         = 0x78\n\tSizeofRtMetrics        = 0x50\n)\n\ntype IfMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tAddrs     int32\n\tFlags     int32\n\tIndex     uint16\n\tPad_cgo_0 [2]byte\n\tData      IfData\n\tPad_cgo_1 [4]byte\n}\n\ntype IfData struct {\n\tType       uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tPad_cgo_0  [1]byte\n\tLink_state int32\n\tMtu        uint64\n\tMetric     uint64\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tNoproto    uint64\n\tLastchange Timespec\n}\n\ntype IfaMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tAddrs     int32\n\tFlags     int32\n\tMetric    int32\n\tIndex     uint16\n\tPad_cgo_0 [6]byte\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tName    [16]int8\n\tWhat    uint16\n}\n\ntype RtMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tIndex     uint16\n\tPad_cgo_0 [2]byte\n\tFlags     int32\n\tAddrs     int32\n\tPid       int32\n\tSeq       int32\n\tErrno     int32\n\tUse       int32\n\tInits     int32\n\tPad_cgo_1 [4]byte\n\tRmx       RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint64\n\tMtu      uint64\n\tHopcount uint64\n\tRecvpipe uint64\n\tSendpipe uint64\n\tSsthresh uint64\n\tRtt      uint64\n\tRttvar   uint64\n\tExpire   int64\n\tPksent   int64\n}\n\ntype Mclpool [0]byte\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x80\n\tSizeofBpfProgram = 0x8\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x14\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv    uint64\n\tDrop    uint64\n\tCapt    uint64\n\tPadding [13]uint64\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp    BpfTimeval\n\tCaplen    uint32\n\tDatalen   uint32\n\tHdrlen    uint16\n\tPad_cgo_0 [2]byte\n}\n\ntype BpfTimeval struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype Ptmget struct {\n\tCfd int32\n\tSfd int32\n\tCn  [1024]byte\n\tSn  [1024]byte\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x100\n\tAT_SYMLINK_NOFOLLOW = 0x200\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_REMOVEDIR        = 0x800\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sysctlnode struct {\n\tFlags           uint32\n\tNum             int32\n\tName            [32]int8\n\tVer             uint32\n\tX__rsvd         uint32\n\tUn              [16]byte\n\tX_sysctl_size   [8]byte\n\tX_sysctl_func   [8]byte\n\tX_sysctl_parent [8]byte\n\tX_sysctl_desc   [8]byte\n}\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x278\n\ntype Uvmexp struct {\n\tPagesize           int64\n\tPagemask           int64\n\tPageshift          int64\n\tNpages             int64\n\tFree               int64\n\tActive             int64\n\tInactive           int64\n\tPaging             int64\n\tWired              int64\n\tZeropages          int64\n\tReserve_pagedaemon int64\n\tReserve_kernel     int64\n\tFreemin            int64\n\tFreetarg           int64\n\tInactarg           int64\n\tWiredmax           int64\n\tNswapdev           int64\n\tSwpages            int64\n\tSwpginuse          int64\n\tSwpgonly           int64\n\tNswget             int64\n\tUnused1            int64\n\tCpuhit             int64\n\tCpumiss            int64\n\tFaults             int64\n\tTraps              int64\n\tIntrs              int64\n\tSwtch              int64\n\tSofts              int64\n\tSyscalls           int64\n\tPageins            int64\n\tSwapins            int64\n\tSwapouts           int64\n\tPgswapin           int64\n\tPgswapout          int64\n\tForks              int64\n\tForks_ppwait       int64\n\tForks_sharevm      int64\n\tPga_zerohit        int64\n\tPga_zeromiss       int64\n\tZeroaborts         int64\n\tFltnoram           int64\n\tFltnoanon          int64\n\tFltpgwait          int64\n\tFltpgrele          int64\n\tFltrelck           int64\n\tFltrelckok         int64\n\tFltanget           int64\n\tFltanretry         int64\n\tFltamcopy          int64\n\tFltnamap           int64\n\tFltnomap           int64\n\tFltlget            int64\n\tFltget             int64\n\tFlt_anon           int64\n\tFlt_acow           int64\n\tFlt_obj            int64\n\tFlt_prcopy         int64\n\tFlt_przero         int64\n\tPdwoke             int64\n\tPdrevs             int64\n\tUnused4            int64\n\tPdfreed            int64\n\tPdscans            int64\n\tPdanscan           int64\n\tPdobscan           int64\n\tPdreact            int64\n\tPdbusy             int64\n\tPdpageouts         int64\n\tPdpending          int64\n\tPddeact            int64\n\tAnonpages          int64\n\tFilepages          int64\n\tExecpages          int64\n\tColorhit           int64\n\tColormiss          int64\n\tNcolors            int64\n\tBootpages          int64\n\tPoolpages          int64\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz      int32\n\tTick    int32\n\tTickadj int32\n\tStathz  int32\n\tProfhz  int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go",
    "content": "// cgo -godefs types_netbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && netbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec       int64\n\tUsec      int32\n\tPad_cgo_0 [4]byte\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     uint64\n\tMode    uint32\n\t_       [4]byte\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\t_       [4]byte\n\tRdev    uint64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize uint32\n\tFlags   uint32\n\tGen     uint32\n\tSpare   [2]uint32\n\t_       [4]byte\n}\n\ntype Statfs_t [0]byte\n\ntype Statvfs_t struct {\n\tFlag        uint64\n\tBsize       uint64\n\tFrsize      uint64\n\tIosize      uint64\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      uint64\n\tBresvd      uint64\n\tFiles       uint64\n\tFfree       uint64\n\tFavail      uint64\n\tFresvd      uint64\n\tSyncreads   uint64\n\tSyncwrites  uint64\n\tAsyncreads  uint64\n\tAsyncwrites uint64\n\tFsidx       Fsid\n\tFsid        uint64\n\tNamemax     uint64\n\tOwner       uint32\n\tSpare       [4]uint32\n\tFstypename  [32]byte\n\tMntonname   [1024]byte\n\tMntfromname [1024]byte\n\t_           [4]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno    uint64\n\tReclen    uint16\n\tNamlen    uint16\n\tType      uint8\n\tName      [512]int8\n\tPad_cgo_0 [3]byte\n}\n\ntype Fsid struct {\n\tX__fsid_val [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\nconst (\n\tST_WAIT   = 0x1\n\tST_NOWAIT = 0x2\n)\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tPad_cgo_0  [4]byte\n\tIov        *Iovec\n\tIovlen     int32\n\tPad_cgo_1  [4]byte\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x14\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent     uint64\n\tFilter    uint32\n\tFlags     uint32\n\tFflags    uint32\n\tPad_cgo_0 [4]byte\n\tData      int64\n\tUdata     int64\n}\n\ntype FdSet struct {\n\tBits [8]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0x98\n\tSizeofIfData           = 0x88\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x18\n\tSizeofRtMsghdr         = 0x78\n\tSizeofRtMetrics        = 0x50\n)\n\ntype IfMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tAddrs     int32\n\tFlags     int32\n\tIndex     uint16\n\tPad_cgo_0 [2]byte\n\tData      IfData\n}\n\ntype IfData struct {\n\tType       uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tPad_cgo_0  [1]byte\n\tLink_state int32\n\tMtu        uint64\n\tMetric     uint64\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tNoproto    uint64\n\tLastchange Timespec\n}\n\ntype IfaMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tAddrs     int32\n\tFlags     int32\n\tMetric    int32\n\tIndex     uint16\n\tPad_cgo_0 [6]byte\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tName    [16]int8\n\tWhat    uint16\n}\n\ntype RtMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tIndex     uint16\n\tPad_cgo_0 [2]byte\n\tFlags     int32\n\tAddrs     int32\n\tPid       int32\n\tSeq       int32\n\tErrno     int32\n\tUse       int32\n\tInits     int32\n\tPad_cgo_1 [4]byte\n\tRmx       RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint64\n\tMtu      uint64\n\tHopcount uint64\n\tRecvpipe uint64\n\tSendpipe uint64\n\tSsthresh uint64\n\tRtt      uint64\n\tRttvar   uint64\n\tExpire   int64\n\tPksent   int64\n}\n\ntype Mclpool [0]byte\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x80\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x20\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv    uint64\n\tDrop    uint64\n\tCapt    uint64\n\tPadding [13]uint64\n}\n\ntype BpfProgram struct {\n\tLen       uint32\n\tPad_cgo_0 [4]byte\n\tInsns     *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp    BpfTimeval\n\tCaplen    uint32\n\tDatalen   uint32\n\tHdrlen    uint16\n\tPad_cgo_0 [6]byte\n}\n\ntype BpfTimeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype Ptmget struct {\n\tCfd int32\n\tSfd int32\n\tCn  [1024]byte\n\tSn  [1024]byte\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x100\n\tAT_SYMLINK_NOFOLLOW = 0x200\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_REMOVEDIR        = 0x800\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sysctlnode struct {\n\tFlags           uint32\n\tNum             int32\n\tName            [32]int8\n\tVer             uint32\n\tX__rsvd         uint32\n\tUn              [16]byte\n\tX_sysctl_size   [8]byte\n\tX_sysctl_func   [8]byte\n\tX_sysctl_parent [8]byte\n\tX_sysctl_desc   [8]byte\n}\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x278\n\ntype Uvmexp struct {\n\tPagesize           int64\n\tPagemask           int64\n\tPageshift          int64\n\tNpages             int64\n\tFree               int64\n\tActive             int64\n\tInactive           int64\n\tPaging             int64\n\tWired              int64\n\tZeropages          int64\n\tReserve_pagedaemon int64\n\tReserve_kernel     int64\n\tFreemin            int64\n\tFreetarg           int64\n\tInactarg           int64\n\tWiredmax           int64\n\tNswapdev           int64\n\tSwpages            int64\n\tSwpginuse          int64\n\tSwpgonly           int64\n\tNswget             int64\n\tUnused1            int64\n\tCpuhit             int64\n\tCpumiss            int64\n\tFaults             int64\n\tTraps              int64\n\tIntrs              int64\n\tSwtch              int64\n\tSofts              int64\n\tSyscalls           int64\n\tPageins            int64\n\tSwapins            int64\n\tSwapouts           int64\n\tPgswapin           int64\n\tPgswapout          int64\n\tForks              int64\n\tForks_ppwait       int64\n\tForks_sharevm      int64\n\tPga_zerohit        int64\n\tPga_zeromiss       int64\n\tZeroaborts         int64\n\tFltnoram           int64\n\tFltnoanon          int64\n\tFltpgwait          int64\n\tFltpgrele          int64\n\tFltrelck           int64\n\tFltrelckok         int64\n\tFltanget           int64\n\tFltanretry         int64\n\tFltamcopy          int64\n\tFltnamap           int64\n\tFltnomap           int64\n\tFltlget            int64\n\tFltget             int64\n\tFlt_anon           int64\n\tFlt_acow           int64\n\tFlt_obj            int64\n\tFlt_prcopy         int64\n\tFlt_przero         int64\n\tPdwoke             int64\n\tPdrevs             int64\n\tUnused4            int64\n\tPdfreed            int64\n\tPdscans            int64\n\tPdanscan           int64\n\tPdobscan           int64\n\tPdreact            int64\n\tPdbusy             int64\n\tPdpageouts         int64\n\tPdpending          int64\n\tPddeact            int64\n\tAnonpages          int64\n\tFilepages          int64\n\tExecpages          int64\n\tColorhit           int64\n\tColormiss          int64\n\tNcolors            int64\n\tBootpages          int64\n\tPoolpages          int64\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz      int32\n\tTick    int32\n\tTickadj int32\n\tStathz  int32\n\tProfhz  int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go",
    "content": "// cgo -godefs types_netbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm && netbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x4\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x4\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int32\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec       int64\n\tNsec      int32\n\tPad_cgo_0 [4]byte\n}\n\ntype Timeval struct {\n\tSec       int64\n\tUsec      int32\n\tPad_cgo_0 [4]byte\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     uint64\n\tMode    uint32\n\t_       [4]byte\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\t_       [4]byte\n\tRdev    uint64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize uint32\n\tFlags   uint32\n\tGen     uint32\n\tSpare   [2]uint32\n\t_       [4]byte\n}\n\ntype Statfs_t [0]byte\n\ntype Statvfs_t struct {\n\tFlag        uint32\n\tBsize       uint32\n\tFrsize      uint32\n\tIosize      uint32\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      uint64\n\tBresvd      uint64\n\tFiles       uint64\n\tFfree       uint64\n\tFavail      uint64\n\tFresvd      uint64\n\tSyncreads   uint64\n\tSyncwrites  uint64\n\tAsyncreads  uint64\n\tAsyncwrites uint64\n\tFsidx       Fsid\n\tFsid        uint32\n\tNamemax     uint32\n\tOwner       uint32\n\tSpare       [4]uint32\n\tFstypename  [32]byte\n\tMntonname   [1024]byte\n\tMntfromname [1024]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno    uint64\n\tReclen    uint16\n\tNamlen    uint16\n\tType      uint8\n\tName      [512]int8\n\tPad_cgo_0 [3]byte\n}\n\ntype Fsid struct {\n\tX__fsid_val [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\nconst (\n\tST_WAIT   = 0x1\n\tST_NOWAIT = 0x2\n)\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     int32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x14\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x1c\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent     uint32\n\tFilter    uint32\n\tFlags     uint32\n\tFflags    uint32\n\tData      int64\n\tUdata     int32\n\tPad_cgo_0 [4]byte\n}\n\ntype FdSet struct {\n\tBits [8]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0x98\n\tSizeofIfData           = 0x88\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x18\n\tSizeofRtMsghdr         = 0x78\n\tSizeofRtMetrics        = 0x50\n)\n\ntype IfMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tAddrs     int32\n\tFlags     int32\n\tIndex     uint16\n\tPad_cgo_0 [2]byte\n\tData      IfData\n}\n\ntype IfData struct {\n\tType       uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tPad_cgo_0  [1]byte\n\tLink_state int32\n\tMtu        uint64\n\tMetric     uint64\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tNoproto    uint64\n\tLastchange Timespec\n}\n\ntype IfaMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tAddrs     int32\n\tFlags     int32\n\tMetric    int32\n\tIndex     uint16\n\tPad_cgo_0 [6]byte\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tName    [16]int8\n\tWhat    uint16\n}\n\ntype RtMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tIndex     uint16\n\tPad_cgo_0 [2]byte\n\tFlags     int32\n\tAddrs     int32\n\tPid       int32\n\tSeq       int32\n\tErrno     int32\n\tUse       int32\n\tInits     int32\n\tPad_cgo_1 [4]byte\n\tRmx       RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint64\n\tMtu      uint64\n\tHopcount uint64\n\tRecvpipe uint64\n\tSendpipe uint64\n\tSsthresh uint64\n\tRtt      uint64\n\tRttvar   uint64\n\tExpire   int64\n\tPksent   int64\n}\n\ntype Mclpool [0]byte\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x80\n\tSizeofBpfProgram = 0x8\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x14\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv    uint64\n\tDrop    uint64\n\tCapt    uint64\n\tPadding [13]uint64\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp    BpfTimeval\n\tCaplen    uint32\n\tDatalen   uint32\n\tHdrlen    uint16\n\tPad_cgo_0 [2]byte\n}\n\ntype BpfTimeval struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype Ptmget struct {\n\tCfd int32\n\tSfd int32\n\tCn  [1024]byte\n\tSn  [1024]byte\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x100\n\tAT_SYMLINK_NOFOLLOW = 0x200\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_REMOVEDIR        = 0x800\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sysctlnode struct {\n\tFlags           uint32\n\tNum             int32\n\tName            [32]int8\n\tVer             uint32\n\tX__rsvd         uint32\n\tUn              [16]byte\n\tX_sysctl_size   [8]byte\n\tX_sysctl_func   [8]byte\n\tX_sysctl_parent [8]byte\n\tX_sysctl_desc   [8]byte\n}\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x278\n\ntype Uvmexp struct {\n\tPagesize           int64\n\tPagemask           int64\n\tPageshift          int64\n\tNpages             int64\n\tFree               int64\n\tActive             int64\n\tInactive           int64\n\tPaging             int64\n\tWired              int64\n\tZeropages          int64\n\tReserve_pagedaemon int64\n\tReserve_kernel     int64\n\tFreemin            int64\n\tFreetarg           int64\n\tInactarg           int64\n\tWiredmax           int64\n\tNswapdev           int64\n\tSwpages            int64\n\tSwpginuse          int64\n\tSwpgonly           int64\n\tNswget             int64\n\tUnused1            int64\n\tCpuhit             int64\n\tCpumiss            int64\n\tFaults             int64\n\tTraps              int64\n\tIntrs              int64\n\tSwtch              int64\n\tSofts              int64\n\tSyscalls           int64\n\tPageins            int64\n\tSwapins            int64\n\tSwapouts           int64\n\tPgswapin           int64\n\tPgswapout          int64\n\tForks              int64\n\tForks_ppwait       int64\n\tForks_sharevm      int64\n\tPga_zerohit        int64\n\tPga_zeromiss       int64\n\tZeroaborts         int64\n\tFltnoram           int64\n\tFltnoanon          int64\n\tFltpgwait          int64\n\tFltpgrele          int64\n\tFltrelck           int64\n\tFltrelckok         int64\n\tFltanget           int64\n\tFltanretry         int64\n\tFltamcopy          int64\n\tFltnamap           int64\n\tFltnomap           int64\n\tFltlget            int64\n\tFltget             int64\n\tFlt_anon           int64\n\tFlt_acow           int64\n\tFlt_obj            int64\n\tFlt_prcopy         int64\n\tFlt_przero         int64\n\tPdwoke             int64\n\tPdrevs             int64\n\tUnused4            int64\n\tPdfreed            int64\n\tPdscans            int64\n\tPdanscan           int64\n\tPdobscan           int64\n\tPdreact            int64\n\tPdbusy             int64\n\tPdpageouts         int64\n\tPdpending          int64\n\tPddeact            int64\n\tAnonpages          int64\n\tFilepages          int64\n\tExecpages          int64\n\tColorhit           int64\n\tColormiss          int64\n\tNcolors            int64\n\tBootpages          int64\n\tPoolpages          int64\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz      int32\n\tTick    int32\n\tTickadj int32\n\tStathz  int32\n\tProfhz  int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go",
    "content": "// cgo -godefs types_netbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && netbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec       int64\n\tUsec      int32\n\tPad_cgo_0 [4]byte\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     uint64\n\tMode    uint32\n\t_       [4]byte\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\t_       [4]byte\n\tRdev    uint64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize uint32\n\tFlags   uint32\n\tGen     uint32\n\tSpare   [2]uint32\n\t_       [4]byte\n}\n\ntype Statfs_t [0]byte\n\ntype Statvfs_t struct {\n\tFlag        uint64\n\tBsize       uint64\n\tFrsize      uint64\n\tIosize      uint64\n\tBlocks      uint64\n\tBfree       uint64\n\tBavail      uint64\n\tBresvd      uint64\n\tFiles       uint64\n\tFfree       uint64\n\tFavail      uint64\n\tFresvd      uint64\n\tSyncreads   uint64\n\tSyncwrites  uint64\n\tAsyncreads  uint64\n\tAsyncwrites uint64\n\tFsidx       Fsid\n\tFsid        uint64\n\tNamemax     uint64\n\tOwner       uint32\n\tSpare       [4]uint32\n\tFstypename  [32]byte\n\tMntonname   [1024]byte\n\tMntfromname [1024]byte\n\t_           [4]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno    uint64\n\tReclen    uint16\n\tNamlen    uint16\n\tType      uint8\n\tName      [512]int8\n\tPad_cgo_0 [3]byte\n}\n\ntype Fsid struct {\n\tX__fsid_val [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\nconst (\n\tST_WAIT   = 0x1\n\tST_NOWAIT = 0x2\n)\n\nconst (\n\tFADV_NORMAL     = 0x0\n\tFADV_RANDOM     = 0x1\n\tFADV_SEQUENTIAL = 0x2\n\tFADV_WILLNEED   = 0x3\n\tFADV_DONTNEED   = 0x4\n\tFADV_NOREUSE    = 0x5\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [12]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tPad_cgo_0  [4]byte\n\tIov        *Iovec\n\tIovlen     int32\n\tPad_cgo_1  [4]byte\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x14\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent     uint64\n\tFilter    uint32\n\tFlags     uint32\n\tFflags    uint32\n\tPad_cgo_0 [4]byte\n\tData      int64\n\tUdata     int64\n}\n\ntype FdSet struct {\n\tBits [8]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0x98\n\tSizeofIfData           = 0x88\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x18\n\tSizeofRtMsghdr         = 0x78\n\tSizeofRtMetrics        = 0x50\n)\n\ntype IfMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tAddrs     int32\n\tFlags     int32\n\tIndex     uint16\n\tPad_cgo_0 [2]byte\n\tData      IfData\n}\n\ntype IfData struct {\n\tType       uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tPad_cgo_0  [1]byte\n\tLink_state int32\n\tMtu        uint64\n\tMetric     uint64\n\tBaudrate   uint64\n\tIpackets   uint64\n\tIerrors    uint64\n\tOpackets   uint64\n\tOerrors    uint64\n\tCollisions uint64\n\tIbytes     uint64\n\tObytes     uint64\n\tImcasts    uint64\n\tOmcasts    uint64\n\tIqdrops    uint64\n\tNoproto    uint64\n\tLastchange Timespec\n}\n\ntype IfaMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tAddrs     int32\n\tFlags     int32\n\tMetric    int32\n\tIndex     uint16\n\tPad_cgo_0 [6]byte\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tName    [16]int8\n\tWhat    uint16\n}\n\ntype RtMsghdr struct {\n\tMsglen    uint16\n\tVersion   uint8\n\tType      uint8\n\tIndex     uint16\n\tPad_cgo_0 [2]byte\n\tFlags     int32\n\tAddrs     int32\n\tPid       int32\n\tSeq       int32\n\tErrno     int32\n\tUse       int32\n\tInits     int32\n\tPad_cgo_1 [4]byte\n\tRmx       RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint64\n\tMtu      uint64\n\tHopcount uint64\n\tRecvpipe uint64\n\tSendpipe uint64\n\tSsthresh uint64\n\tRtt      uint64\n\tRttvar   uint64\n\tExpire   int64\n\tPksent   int64\n}\n\ntype Mclpool [0]byte\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x80\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x20\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv    uint64\n\tDrop    uint64\n\tCapt    uint64\n\tPadding [13]uint64\n}\n\ntype BpfProgram struct {\n\tLen       uint32\n\tPad_cgo_0 [4]byte\n\tInsns     *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp    BpfTimeval\n\tCaplen    uint32\n\tDatalen   uint32\n\tHdrlen    uint16\n\tPad_cgo_0 [6]byte\n}\n\ntype BpfTimeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype Ptmget struct {\n\tCfd int32\n\tSfd int32\n\tCn  [1024]byte\n\tSn  [1024]byte\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x100\n\tAT_SYMLINK_NOFOLLOW = 0x200\n\tAT_SYMLINK_FOLLOW   = 0x400\n\tAT_REMOVEDIR        = 0x800\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sysctlnode struct {\n\tFlags           uint32\n\tNum             int32\n\tName            [32]int8\n\tVer             uint32\n\tX__rsvd         uint32\n\tUn              [16]byte\n\tX_sysctl_size   [8]byte\n\tX_sysctl_func   [8]byte\n\tX_sysctl_parent [8]byte\n\tX_sysctl_desc   [8]byte\n}\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x278\n\ntype Uvmexp struct {\n\tPagesize           int64\n\tPagemask           int64\n\tPageshift          int64\n\tNpages             int64\n\tFree               int64\n\tActive             int64\n\tInactive           int64\n\tPaging             int64\n\tWired              int64\n\tZeropages          int64\n\tReserve_pagedaemon int64\n\tReserve_kernel     int64\n\tFreemin            int64\n\tFreetarg           int64\n\tInactarg           int64\n\tWiredmax           int64\n\tNswapdev           int64\n\tSwpages            int64\n\tSwpginuse          int64\n\tSwpgonly           int64\n\tNswget             int64\n\tUnused1            int64\n\tCpuhit             int64\n\tCpumiss            int64\n\tFaults             int64\n\tTraps              int64\n\tIntrs              int64\n\tSwtch              int64\n\tSofts              int64\n\tSyscalls           int64\n\tPageins            int64\n\tSwapins            int64\n\tSwapouts           int64\n\tPgswapin           int64\n\tPgswapout          int64\n\tForks              int64\n\tForks_ppwait       int64\n\tForks_sharevm      int64\n\tPga_zerohit        int64\n\tPga_zeromiss       int64\n\tZeroaborts         int64\n\tFltnoram           int64\n\tFltnoanon          int64\n\tFltpgwait          int64\n\tFltpgrele          int64\n\tFltrelck           int64\n\tFltrelckok         int64\n\tFltanget           int64\n\tFltanretry         int64\n\tFltamcopy          int64\n\tFltnamap           int64\n\tFltnomap           int64\n\tFltlget            int64\n\tFltget             int64\n\tFlt_anon           int64\n\tFlt_acow           int64\n\tFlt_obj            int64\n\tFlt_prcopy         int64\n\tFlt_przero         int64\n\tPdwoke             int64\n\tPdrevs             int64\n\tUnused4            int64\n\tPdfreed            int64\n\tPdscans            int64\n\tPdanscan           int64\n\tPdobscan           int64\n\tPdreact            int64\n\tPdbusy             int64\n\tPdpageouts         int64\n\tPdpending          int64\n\tPddeact            int64\n\tAnonpages          int64\n\tFilepages          int64\n\tExecpages          int64\n\tColorhit           int64\n\tColormiss          int64\n\tNcolors            int64\n\tBootpages          int64\n\tPoolpages          int64\n}\n\nconst SizeofClockinfo = 0x14\n\ntype Clockinfo struct {\n\tHz      int32\n\tTick    int32\n\tTickadj int32\n\tStathz  int32\n\tProfhz  int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go",
    "content": "// cgo -godefs types_openbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build 386 && openbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x4\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x4\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int32\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int32\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int32\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tMode    uint32\n\tDev     int32\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    int32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\t_       Timespec\n}\n\ntype Statfs_t struct {\n\tF_flags       uint32\n\tF_bsize       uint32\n\tF_iosize      uint32\n\tF_blocks      uint64\n\tF_bfree       uint64\n\tF_bavail      int64\n\tF_files       uint64\n\tF_ffree       uint64\n\tF_favail      int64\n\tF_syncwrites  uint64\n\tF_syncreads   uint64\n\tF_asyncwrites uint64\n\tF_asyncreads  uint64\n\tF_fsid        Fsid\n\tF_namemax     uint32\n\tF_owner       uint32\n\tF_ctime       uint64\n\tF_fstypename  [16]byte\n\tF_mntonname   [90]byte\n\tF_mntfromname [90]byte\n\tF_mntfromspec [90]byte\n\t_             [2]byte\n\tMount_info    [160]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tNamlen uint8\n\t_      [4]uint8\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [24]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x20\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x1c\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint32\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [32]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0xa0\n\tSizeofIfData           = 0x88\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x1a\n\tSizeofRtMsghdr         = 0x60\n\tSizeofRtMetrics        = 0x38\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tXflags  int32\n\tData    IfData\n}\n\ntype IfData struct {\n\tType         uint8\n\tAddrlen      uint8\n\tHdrlen       uint8\n\tLink_state   uint8\n\tMtu          uint32\n\tMetric       uint32\n\tRdomain      uint32\n\tBaudrate     uint64\n\tIpackets     uint64\n\tIerrors      uint64\n\tOpackets     uint64\n\tOerrors      uint64\n\tCollisions   uint64\n\tIbytes       uint64\n\tObytes       uint64\n\tImcasts      uint64\n\tOmcasts      uint64\n\tIqdrops      uint64\n\tOqdrops      uint64\n\tNoproto      uint64\n\tCapabilities uint32\n\tLastchange   Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tMetric  int32\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tWhat    uint16\n\tName    [16]int8\n}\n\ntype RtMsghdr struct {\n\tMsglen   uint16\n\tVersion  uint8\n\tType     uint8\n\tHdrlen   uint16\n\tIndex    uint16\n\tTableid  uint16\n\tPriority uint8\n\tMpls     uint8\n\tAddrs    int32\n\tFlags    int32\n\tFmask    int32\n\tPid      int32\n\tSeq      int32\n\tErrno    int32\n\tInits    uint32\n\tRmx      RtMetrics\n}\n\ntype RtMetrics struct {\n\tPksent   uint64\n\tExpire   int64\n\tLocks    uint32\n\tMtu      uint32\n\tRefcnt   uint32\n\tHopcount uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPad      uint32\n}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x8\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x18\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  BpfTimeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\tIfidx   uint16\n\tFlowid  uint16\n\tFlags   uint8\n\tDrops   uint8\n}\n\ntype BpfTimeval struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x1\n\tAT_SYMLINK_NOFOLLOW = 0x2\n\tAT_SYMLINK_FOLLOW   = 0x4\n\tAT_REMOVEDIR        = 0x8\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sigset_t uint32\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x158\n\ntype Uvmexp struct {\n\tPagesize           int32\n\tPagemask           int32\n\tPageshift          int32\n\tNpages             int32\n\tFree               int32\n\tActive             int32\n\tInactive           int32\n\tPaging             int32\n\tWired              int32\n\tZeropages          int32\n\tReserve_pagedaemon int32\n\tReserve_kernel     int32\n\tUnused01           int32\n\tVnodepages         int32\n\tVtextpages         int32\n\tFreemin            int32\n\tFreetarg           int32\n\tInactarg           int32\n\tWiredmax           int32\n\tAnonmin            int32\n\tVtextmin           int32\n\tVnodemin           int32\n\tAnonminpct         int32\n\tVtextminpct        int32\n\tVnodeminpct        int32\n\tNswapdev           int32\n\tSwpages            int32\n\tSwpginuse          int32\n\tSwpgonly           int32\n\tNswget             int32\n\tNanon              int32\n\tUnused05           int32\n\tUnused06           int32\n\tFaults             int32\n\tTraps              int32\n\tIntrs              int32\n\tSwtch              int32\n\tSofts              int32\n\tSyscalls           int32\n\tPageins            int32\n\tUnused07           int32\n\tUnused08           int32\n\tPgswapin           int32\n\tPgswapout          int32\n\tForks              int32\n\tForks_ppwait       int32\n\tForks_sharevm      int32\n\tPga_zerohit        int32\n\tPga_zeromiss       int32\n\tUnused09           int32\n\tFltnoram           int32\n\tFltnoanon          int32\n\tFltnoamap          int32\n\tFltpgwait          int32\n\tFltpgrele          int32\n\tFltrelck           int32\n\tFltrelckok         int32\n\tFltanget           int32\n\tFltanretry         int32\n\tFltamcopy          int32\n\tFltnamap           int32\n\tFltnomap           int32\n\tFltlget            int32\n\tFltget             int32\n\tFlt_anon           int32\n\tFlt_acow           int32\n\tFlt_obj            int32\n\tFlt_prcopy         int32\n\tFlt_przero         int32\n\tPdwoke             int32\n\tPdrevs             int32\n\tPdswout            int32\n\tPdfreed            int32\n\tPdscans            int32\n\tPdanscan           int32\n\tPdobscan           int32\n\tPdreact            int32\n\tPdbusy             int32\n\tPdpageouts         int32\n\tPdpending          int32\n\tPddeact            int32\n\tUnused11           int32\n\tUnused12           int32\n\tUnused13           int32\n\tFpswtch            int32\n\tKmapent            int32\n}\n\nconst SizeofClockinfo = 0x10\n\ntype Clockinfo struct {\n\tHz     int32\n\tTick   int32\n\tStathz int32\n\tProfhz int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go",
    "content": "// cgo -godefs types_openbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && openbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tMode    uint32\n\tDev     int32\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    int32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\t_       Timespec\n}\n\ntype Statfs_t struct {\n\tF_flags       uint32\n\tF_bsize       uint32\n\tF_iosize      uint32\n\tF_blocks      uint64\n\tF_bfree       uint64\n\tF_bavail      int64\n\tF_files       uint64\n\tF_ffree       uint64\n\tF_favail      int64\n\tF_syncwrites  uint64\n\tF_syncreads   uint64\n\tF_asyncwrites uint64\n\tF_asyncreads  uint64\n\tF_fsid        Fsid\n\tF_namemax     uint32\n\tF_owner       uint32\n\tF_ctime       uint64\n\tF_fstypename  [16]byte\n\tF_mntonname   [90]byte\n\tF_mntfromname [90]byte\n\tF_mntfromspec [90]byte\n\t_             [2]byte\n\tMount_info    [160]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tNamlen uint8\n\t_      [4]uint8\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [24]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x20\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [32]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0xa8\n\tSizeofIfData           = 0x90\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x1a\n\tSizeofRtMsghdr         = 0x60\n\tSizeofRtMetrics        = 0x38\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tXflags  int32\n\tData    IfData\n}\n\ntype IfData struct {\n\tType         uint8\n\tAddrlen      uint8\n\tHdrlen       uint8\n\tLink_state   uint8\n\tMtu          uint32\n\tMetric       uint32\n\tRdomain      uint32\n\tBaudrate     uint64\n\tIpackets     uint64\n\tIerrors      uint64\n\tOpackets     uint64\n\tOerrors      uint64\n\tCollisions   uint64\n\tIbytes       uint64\n\tObytes       uint64\n\tImcasts      uint64\n\tOmcasts      uint64\n\tIqdrops      uint64\n\tOqdrops      uint64\n\tNoproto      uint64\n\tCapabilities uint32\n\tLastchange   Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tMetric  int32\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tWhat    uint16\n\tName    [16]int8\n}\n\ntype RtMsghdr struct {\n\tMsglen   uint16\n\tVersion  uint8\n\tType     uint8\n\tHdrlen   uint16\n\tIndex    uint16\n\tTableid  uint16\n\tPriority uint8\n\tMpls     uint8\n\tAddrs    int32\n\tFlags    int32\n\tFmask    int32\n\tPid      int32\n\tSeq      int32\n\tErrno    int32\n\tInits    uint32\n\tRmx      RtMetrics\n}\n\ntype RtMetrics struct {\n\tPksent   uint64\n\tExpire   int64\n\tLocks    uint32\n\tMtu      uint32\n\tRefcnt   uint32\n\tHopcount uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPad      uint32\n}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x18\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  BpfTimeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\tIfidx   uint16\n\tFlowid  uint16\n\tFlags   uint8\n\tDrops   uint8\n}\n\ntype BpfTimeval struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x1\n\tAT_SYMLINK_NOFOLLOW = 0x2\n\tAT_SYMLINK_FOLLOW   = 0x4\n\tAT_REMOVEDIR        = 0x8\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sigset_t uint32\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x158\n\ntype Uvmexp struct {\n\tPagesize           int32\n\tPagemask           int32\n\tPageshift          int32\n\tNpages             int32\n\tFree               int32\n\tActive             int32\n\tInactive           int32\n\tPaging             int32\n\tWired              int32\n\tZeropages          int32\n\tReserve_pagedaemon int32\n\tReserve_kernel     int32\n\tUnused01           int32\n\tVnodepages         int32\n\tVtextpages         int32\n\tFreemin            int32\n\tFreetarg           int32\n\tInactarg           int32\n\tWiredmax           int32\n\tAnonmin            int32\n\tVtextmin           int32\n\tVnodemin           int32\n\tAnonminpct         int32\n\tVtextminpct        int32\n\tVnodeminpct        int32\n\tNswapdev           int32\n\tSwpages            int32\n\tSwpginuse          int32\n\tSwpgonly           int32\n\tNswget             int32\n\tNanon              int32\n\tUnused05           int32\n\tUnused06           int32\n\tFaults             int32\n\tTraps              int32\n\tIntrs              int32\n\tSwtch              int32\n\tSofts              int32\n\tSyscalls           int32\n\tPageins            int32\n\tUnused07           int32\n\tUnused08           int32\n\tPgswapin           int32\n\tPgswapout          int32\n\tForks              int32\n\tForks_ppwait       int32\n\tForks_sharevm      int32\n\tPga_zerohit        int32\n\tPga_zeromiss       int32\n\tUnused09           int32\n\tFltnoram           int32\n\tFltnoanon          int32\n\tFltnoamap          int32\n\tFltpgwait          int32\n\tFltpgrele          int32\n\tFltrelck           int32\n\tFltrelckok         int32\n\tFltanget           int32\n\tFltanretry         int32\n\tFltamcopy          int32\n\tFltnamap           int32\n\tFltnomap           int32\n\tFltlget            int32\n\tFltget             int32\n\tFlt_anon           int32\n\tFlt_acow           int32\n\tFlt_obj            int32\n\tFlt_prcopy         int32\n\tFlt_przero         int32\n\tPdwoke             int32\n\tPdrevs             int32\n\tPdswout            int32\n\tPdfreed            int32\n\tPdscans            int32\n\tPdanscan           int32\n\tPdobscan           int32\n\tPdreact            int32\n\tPdbusy             int32\n\tPdpageouts         int32\n\tPdpending          int32\n\tPddeact            int32\n\tUnused11           int32\n\tUnused12           int32\n\tUnused13           int32\n\tFpswtch            int32\n\tKmapent            int32\n}\n\nconst SizeofClockinfo = 0x10\n\ntype Clockinfo struct {\n\tHz     int32\n\tTick   int32\n\tStathz int32\n\tProfhz int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go",
    "content": "// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm && openbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x4\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x4\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int32\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int32\n\t_    [4]byte\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int32\n\t_    [4]byte\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int32\n\tIxrss    int32\n\tIdrss    int32\n\tIsrss    int32\n\tMinflt   int32\n\tMajflt   int32\n\tNswap    int32\n\tInblock  int32\n\tOublock  int32\n\tMsgsnd   int32\n\tMsgrcv   int32\n\tNsignals int32\n\tNvcsw    int32\n\tNivcsw   int32\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tMode    uint32\n\tDev     int32\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    int32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\t_       [4]byte\n\t_       Timespec\n}\n\ntype Statfs_t struct {\n\tF_flags       uint32\n\tF_bsize       uint32\n\tF_iosize      uint32\n\t_             [4]byte\n\tF_blocks      uint64\n\tF_bfree       uint64\n\tF_bavail      int64\n\tF_files       uint64\n\tF_ffree       uint64\n\tF_favail      int64\n\tF_syncwrites  uint64\n\tF_syncreads   uint64\n\tF_asyncwrites uint64\n\tF_asyncreads  uint64\n\tF_fsid        Fsid\n\tF_namemax     uint32\n\tF_owner       uint32\n\tF_ctime       uint64\n\tF_fstypename  [16]byte\n\tF_mntonname   [90]byte\n\tF_mntfromname [90]byte\n\tF_mntfromspec [90]byte\n\t_             [2]byte\n\tMount_info    [160]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tNamlen uint8\n\t_      [4]uint8\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [24]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint32\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x20\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x8\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x1c\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint32\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\t_      [4]byte\n\tData   int64\n\tUdata  *byte\n\t_      [4]byte\n}\n\ntype FdSet struct {\n\tBits [32]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0xa8\n\tSizeofIfData           = 0x90\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x1a\n\tSizeofRtMsghdr         = 0x60\n\tSizeofRtMetrics        = 0x38\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tXflags  int32\n\tData    IfData\n}\n\ntype IfData struct {\n\tType         uint8\n\tAddrlen      uint8\n\tHdrlen       uint8\n\tLink_state   uint8\n\tMtu          uint32\n\tMetric       uint32\n\tRdomain      uint32\n\tBaudrate     uint64\n\tIpackets     uint64\n\tIerrors      uint64\n\tOpackets     uint64\n\tOerrors      uint64\n\tCollisions   uint64\n\tIbytes       uint64\n\tObytes       uint64\n\tImcasts      uint64\n\tOmcasts      uint64\n\tIqdrops      uint64\n\tOqdrops      uint64\n\tNoproto      uint64\n\tCapabilities uint32\n\t_            [4]byte\n\tLastchange   Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tMetric  int32\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tWhat    uint16\n\tName    [16]int8\n}\n\ntype RtMsghdr struct {\n\tMsglen   uint16\n\tVersion  uint8\n\tType     uint8\n\tHdrlen   uint16\n\tIndex    uint16\n\tTableid  uint16\n\tPriority uint8\n\tMpls     uint8\n\tAddrs    int32\n\tFlags    int32\n\tFmask    int32\n\tPid      int32\n\tSeq      int32\n\tErrno    int32\n\tInits    uint32\n\tRmx      RtMetrics\n}\n\ntype RtMetrics struct {\n\tPksent   uint64\n\tExpire   int64\n\tLocks    uint32\n\tMtu      uint32\n\tRefcnt   uint32\n\tHopcount uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPad      uint32\n}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x8\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x18\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  BpfTimeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\tIfidx   uint16\n\tFlowid  uint16\n\tFlags   uint8\n\tDrops   uint8\n}\n\ntype BpfTimeval struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x1\n\tAT_SYMLINK_NOFOLLOW = 0x2\n\tAT_SYMLINK_FOLLOW   = 0x4\n\tAT_REMOVEDIR        = 0x8\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sigset_t uint32\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x158\n\ntype Uvmexp struct {\n\tPagesize           int32\n\tPagemask           int32\n\tPageshift          int32\n\tNpages             int32\n\tFree               int32\n\tActive             int32\n\tInactive           int32\n\tPaging             int32\n\tWired              int32\n\tZeropages          int32\n\tReserve_pagedaemon int32\n\tReserve_kernel     int32\n\tUnused01           int32\n\tVnodepages         int32\n\tVtextpages         int32\n\tFreemin            int32\n\tFreetarg           int32\n\tInactarg           int32\n\tWiredmax           int32\n\tAnonmin            int32\n\tVtextmin           int32\n\tVnodemin           int32\n\tAnonminpct         int32\n\tVtextminpct        int32\n\tVnodeminpct        int32\n\tNswapdev           int32\n\tSwpages            int32\n\tSwpginuse          int32\n\tSwpgonly           int32\n\tNswget             int32\n\tNanon              int32\n\tUnused05           int32\n\tUnused06           int32\n\tFaults             int32\n\tTraps              int32\n\tIntrs              int32\n\tSwtch              int32\n\tSofts              int32\n\tSyscalls           int32\n\tPageins            int32\n\tUnused07           int32\n\tUnused08           int32\n\tPgswapin           int32\n\tPgswapout          int32\n\tForks              int32\n\tForks_ppwait       int32\n\tForks_sharevm      int32\n\tPga_zerohit        int32\n\tPga_zeromiss       int32\n\tUnused09           int32\n\tFltnoram           int32\n\tFltnoanon          int32\n\tFltnoamap          int32\n\tFltpgwait          int32\n\tFltpgrele          int32\n\tFltrelck           int32\n\tFltrelckok         int32\n\tFltanget           int32\n\tFltanretry         int32\n\tFltamcopy          int32\n\tFltnamap           int32\n\tFltnomap           int32\n\tFltlget            int32\n\tFltget             int32\n\tFlt_anon           int32\n\tFlt_acow           int32\n\tFlt_obj            int32\n\tFlt_prcopy         int32\n\tFlt_przero         int32\n\tPdwoke             int32\n\tPdrevs             int32\n\tPdswout            int32\n\tPdfreed            int32\n\tPdscans            int32\n\tPdanscan           int32\n\tPdobscan           int32\n\tPdreact            int32\n\tPdbusy             int32\n\tPdpageouts         int32\n\tPdpending          int32\n\tPddeact            int32\n\tUnused11           int32\n\tUnused12           int32\n\tUnused13           int32\n\tFpswtch            int32\n\tKmapent            int32\n}\n\nconst SizeofClockinfo = 0x10\n\ntype Clockinfo struct {\n\tHz     int32\n\tTick   int32\n\tStathz int32\n\tProfhz int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go",
    "content": "// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build arm64 && openbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tMode    uint32\n\tDev     int32\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    int32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\t_       Timespec\n}\n\ntype Statfs_t struct {\n\tF_flags       uint32\n\tF_bsize       uint32\n\tF_iosize      uint32\n\tF_blocks      uint64\n\tF_bfree       uint64\n\tF_bavail      int64\n\tF_files       uint64\n\tF_ffree       uint64\n\tF_favail      int64\n\tF_syncwrites  uint64\n\tF_syncreads   uint64\n\tF_asyncwrites uint64\n\tF_asyncreads  uint64\n\tF_fsid        Fsid\n\tF_namemax     uint32\n\tF_owner       uint32\n\tF_ctime       uint64\n\tF_fstypename  [16]byte\n\tF_mntonname   [90]byte\n\tF_mntfromname [90]byte\n\tF_mntfromspec [90]byte\n\t_             [2]byte\n\tMount_info    [160]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tNamlen uint8\n\t_      [4]uint8\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [24]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x20\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [32]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0xa8\n\tSizeofIfData           = 0x90\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x1a\n\tSizeofRtMsghdr         = 0x60\n\tSizeofRtMetrics        = 0x38\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tXflags  int32\n\tData    IfData\n}\n\ntype IfData struct {\n\tType         uint8\n\tAddrlen      uint8\n\tHdrlen       uint8\n\tLink_state   uint8\n\tMtu          uint32\n\tMetric       uint32\n\tRdomain      uint32\n\tBaudrate     uint64\n\tIpackets     uint64\n\tIerrors      uint64\n\tOpackets     uint64\n\tOerrors      uint64\n\tCollisions   uint64\n\tIbytes       uint64\n\tObytes       uint64\n\tImcasts      uint64\n\tOmcasts      uint64\n\tIqdrops      uint64\n\tOqdrops      uint64\n\tNoproto      uint64\n\tCapabilities uint32\n\tLastchange   Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tMetric  int32\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tWhat    uint16\n\tName    [16]int8\n}\n\ntype RtMsghdr struct {\n\tMsglen   uint16\n\tVersion  uint8\n\tType     uint8\n\tHdrlen   uint16\n\tIndex    uint16\n\tTableid  uint16\n\tPriority uint8\n\tMpls     uint8\n\tAddrs    int32\n\tFlags    int32\n\tFmask    int32\n\tPid      int32\n\tSeq      int32\n\tErrno    int32\n\tInits    uint32\n\tRmx      RtMetrics\n}\n\ntype RtMetrics struct {\n\tPksent   uint64\n\tExpire   int64\n\tLocks    uint32\n\tMtu      uint32\n\tRefcnt   uint32\n\tHopcount uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPad      uint32\n}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x18\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  BpfTimeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\tIfidx   uint16\n\tFlowid  uint16\n\tFlags   uint8\n\tDrops   uint8\n}\n\ntype BpfTimeval struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x1\n\tAT_SYMLINK_NOFOLLOW = 0x2\n\tAT_SYMLINK_FOLLOW   = 0x4\n\tAT_REMOVEDIR        = 0x8\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sigset_t uint32\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x158\n\ntype Uvmexp struct {\n\tPagesize           int32\n\tPagemask           int32\n\tPageshift          int32\n\tNpages             int32\n\tFree               int32\n\tActive             int32\n\tInactive           int32\n\tPaging             int32\n\tWired              int32\n\tZeropages          int32\n\tReserve_pagedaemon int32\n\tReserve_kernel     int32\n\tUnused01           int32\n\tVnodepages         int32\n\tVtextpages         int32\n\tFreemin            int32\n\tFreetarg           int32\n\tInactarg           int32\n\tWiredmax           int32\n\tAnonmin            int32\n\tVtextmin           int32\n\tVnodemin           int32\n\tAnonminpct         int32\n\tVtextminpct        int32\n\tVnodeminpct        int32\n\tNswapdev           int32\n\tSwpages            int32\n\tSwpginuse          int32\n\tSwpgonly           int32\n\tNswget             int32\n\tNanon              int32\n\tUnused05           int32\n\tUnused06           int32\n\tFaults             int32\n\tTraps              int32\n\tIntrs              int32\n\tSwtch              int32\n\tSofts              int32\n\tSyscalls           int32\n\tPageins            int32\n\tUnused07           int32\n\tUnused08           int32\n\tPgswapin           int32\n\tPgswapout          int32\n\tForks              int32\n\tForks_ppwait       int32\n\tForks_sharevm      int32\n\tPga_zerohit        int32\n\tPga_zeromiss       int32\n\tUnused09           int32\n\tFltnoram           int32\n\tFltnoanon          int32\n\tFltnoamap          int32\n\tFltpgwait          int32\n\tFltpgrele          int32\n\tFltrelck           int32\n\tFltrelckok         int32\n\tFltanget           int32\n\tFltanretry         int32\n\tFltamcopy          int32\n\tFltnamap           int32\n\tFltnomap           int32\n\tFltlget            int32\n\tFltget             int32\n\tFlt_anon           int32\n\tFlt_acow           int32\n\tFlt_obj            int32\n\tFlt_prcopy         int32\n\tFlt_przero         int32\n\tPdwoke             int32\n\tPdrevs             int32\n\tPdswout            int32\n\tPdfreed            int32\n\tPdscans            int32\n\tPdanscan           int32\n\tPdobscan           int32\n\tPdreact            int32\n\tPdbusy             int32\n\tPdpageouts         int32\n\tPdpending          int32\n\tPddeact            int32\n\tUnused11           int32\n\tUnused12           int32\n\tUnused13           int32\n\tFpswtch            int32\n\tKmapent            int32\n}\n\nconst SizeofClockinfo = 0x10\n\ntype Clockinfo struct {\n\tHz     int32\n\tTick   int32\n\tStathz int32\n\tProfhz int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go",
    "content": "// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build mips64 && openbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tMode    uint32\n\tDev     int32\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    int32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\t_       Timespec\n}\n\ntype Statfs_t struct {\n\tF_flags       uint32\n\tF_bsize       uint32\n\tF_iosize      uint32\n\tF_blocks      uint64\n\tF_bfree       uint64\n\tF_bavail      int64\n\tF_files       uint64\n\tF_ffree       uint64\n\tF_favail      int64\n\tF_syncwrites  uint64\n\tF_syncreads   uint64\n\tF_asyncwrites uint64\n\tF_asyncreads  uint64\n\tF_fsid        Fsid\n\tF_namemax     uint32\n\tF_owner       uint32\n\tF_ctime       uint64\n\tF_fstypename  [16]byte\n\tF_mntonname   [90]byte\n\tF_mntfromname [90]byte\n\tF_mntfromspec [90]byte\n\t_             [2]byte\n\tMount_info    [160]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tNamlen uint8\n\t_      [4]uint8\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [24]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x20\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [32]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0xa8\n\tSizeofIfData           = 0x90\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x1a\n\tSizeofRtMsghdr         = 0x60\n\tSizeofRtMetrics        = 0x38\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tXflags  int32\n\tData    IfData\n}\n\ntype IfData struct {\n\tType         uint8\n\tAddrlen      uint8\n\tHdrlen       uint8\n\tLink_state   uint8\n\tMtu          uint32\n\tMetric       uint32\n\tRdomain      uint32\n\tBaudrate     uint64\n\tIpackets     uint64\n\tIerrors      uint64\n\tOpackets     uint64\n\tOerrors      uint64\n\tCollisions   uint64\n\tIbytes       uint64\n\tObytes       uint64\n\tImcasts      uint64\n\tOmcasts      uint64\n\tIqdrops      uint64\n\tOqdrops      uint64\n\tNoproto      uint64\n\tCapabilities uint32\n\tLastchange   Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tMetric  int32\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tWhat    uint16\n\tName    [16]int8\n}\n\ntype RtMsghdr struct {\n\tMsglen   uint16\n\tVersion  uint8\n\tType     uint8\n\tHdrlen   uint16\n\tIndex    uint16\n\tTableid  uint16\n\tPriority uint8\n\tMpls     uint8\n\tAddrs    int32\n\tFlags    int32\n\tFmask    int32\n\tPid      int32\n\tSeq      int32\n\tErrno    int32\n\tInits    uint32\n\tRmx      RtMetrics\n}\n\ntype RtMetrics struct {\n\tPksent   uint64\n\tExpire   int64\n\tLocks    uint32\n\tMtu      uint32\n\tRefcnt   uint32\n\tHopcount uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPad      uint32\n}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x18\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  BpfTimeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\tIfidx   uint16\n\tFlowid  uint16\n\tFlags   uint8\n\tDrops   uint8\n}\n\ntype BpfTimeval struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x1\n\tAT_SYMLINK_NOFOLLOW = 0x2\n\tAT_SYMLINK_FOLLOW   = 0x4\n\tAT_REMOVEDIR        = 0x8\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sigset_t uint32\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x158\n\ntype Uvmexp struct {\n\tPagesize           int32\n\tPagemask           int32\n\tPageshift          int32\n\tNpages             int32\n\tFree               int32\n\tActive             int32\n\tInactive           int32\n\tPaging             int32\n\tWired              int32\n\tZeropages          int32\n\tReserve_pagedaemon int32\n\tReserve_kernel     int32\n\tUnused01           int32\n\tVnodepages         int32\n\tVtextpages         int32\n\tFreemin            int32\n\tFreetarg           int32\n\tInactarg           int32\n\tWiredmax           int32\n\tAnonmin            int32\n\tVtextmin           int32\n\tVnodemin           int32\n\tAnonminpct         int32\n\tVtextminpct        int32\n\tVnodeminpct        int32\n\tNswapdev           int32\n\tSwpages            int32\n\tSwpginuse          int32\n\tSwpgonly           int32\n\tNswget             int32\n\tNanon              int32\n\tUnused05           int32\n\tUnused06           int32\n\tFaults             int32\n\tTraps              int32\n\tIntrs              int32\n\tSwtch              int32\n\tSofts              int32\n\tSyscalls           int32\n\tPageins            int32\n\tUnused07           int32\n\tUnused08           int32\n\tPgswapin           int32\n\tPgswapout          int32\n\tForks              int32\n\tForks_ppwait       int32\n\tForks_sharevm      int32\n\tPga_zerohit        int32\n\tPga_zeromiss       int32\n\tUnused09           int32\n\tFltnoram           int32\n\tFltnoanon          int32\n\tFltnoamap          int32\n\tFltpgwait          int32\n\tFltpgrele          int32\n\tFltrelck           int32\n\tFltrelckok         int32\n\tFltanget           int32\n\tFltanretry         int32\n\tFltamcopy          int32\n\tFltnamap           int32\n\tFltnomap           int32\n\tFltlget            int32\n\tFltget             int32\n\tFlt_anon           int32\n\tFlt_acow           int32\n\tFlt_obj            int32\n\tFlt_prcopy         int32\n\tFlt_przero         int32\n\tPdwoke             int32\n\tPdrevs             int32\n\tPdswout            int32\n\tPdfreed            int32\n\tPdscans            int32\n\tPdanscan           int32\n\tPdobscan           int32\n\tPdreact            int32\n\tPdbusy             int32\n\tPdpageouts         int32\n\tPdpending          int32\n\tPddeact            int32\n\tUnused11           int32\n\tUnused12           int32\n\tUnused13           int32\n\tFpswtch            int32\n\tKmapent            int32\n}\n\nconst SizeofClockinfo = 0x10\n\ntype Clockinfo struct {\n\tHz     int32\n\tTick   int32\n\tStathz int32\n\tProfhz int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go",
    "content": "// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build ppc64 && openbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tMode    uint32\n\tDev     int32\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    int32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\t_       Timespec\n}\n\ntype Statfs_t struct {\n\tF_flags       uint32\n\tF_bsize       uint32\n\tF_iosize      uint32\n\tF_blocks      uint64\n\tF_bfree       uint64\n\tF_bavail      int64\n\tF_files       uint64\n\tF_ffree       uint64\n\tF_favail      int64\n\tF_syncwrites  uint64\n\tF_syncreads   uint64\n\tF_asyncwrites uint64\n\tF_asyncreads  uint64\n\tF_fsid        Fsid\n\tF_namemax     uint32\n\tF_owner       uint32\n\tF_ctime       uint64\n\tF_fstypename  [16]byte\n\tF_mntonname   [90]byte\n\tF_mntfromname [90]byte\n\tF_mntfromspec [90]byte\n\t_             [2]byte\n\tMount_info    [160]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tNamlen uint8\n\t_      [4]uint8\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [24]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x20\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [32]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0xa8\n\tSizeofIfData           = 0x90\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x1a\n\tSizeofRtMsghdr         = 0x60\n\tSizeofRtMetrics        = 0x38\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tXflags  int32\n\tData    IfData\n}\n\ntype IfData struct {\n\tType         uint8\n\tAddrlen      uint8\n\tHdrlen       uint8\n\tLink_state   uint8\n\tMtu          uint32\n\tMetric       uint32\n\tRdomain      uint32\n\tBaudrate     uint64\n\tIpackets     uint64\n\tIerrors      uint64\n\tOpackets     uint64\n\tOerrors      uint64\n\tCollisions   uint64\n\tIbytes       uint64\n\tObytes       uint64\n\tImcasts      uint64\n\tOmcasts      uint64\n\tIqdrops      uint64\n\tOqdrops      uint64\n\tNoproto      uint64\n\tCapabilities uint32\n\tLastchange   Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tMetric  int32\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tWhat    uint16\n\tName    [16]int8\n}\n\ntype RtMsghdr struct {\n\tMsglen   uint16\n\tVersion  uint8\n\tType     uint8\n\tHdrlen   uint16\n\tIndex    uint16\n\tTableid  uint16\n\tPriority uint8\n\tMpls     uint8\n\tAddrs    int32\n\tFlags    int32\n\tFmask    int32\n\tPid      int32\n\tSeq      int32\n\tErrno    int32\n\tInits    uint32\n\tRmx      RtMetrics\n}\n\ntype RtMetrics struct {\n\tPksent   uint64\n\tExpire   int64\n\tLocks    uint32\n\tMtu      uint32\n\tRefcnt   uint32\n\tHopcount uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPad      uint32\n}\n\ntype Mclpool struct{}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x18\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  BpfTimeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\tIfidx   uint16\n\tFlowid  uint16\n\tFlags   uint8\n\tDrops   uint8\n}\n\ntype BpfTimeval struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x1\n\tAT_SYMLINK_NOFOLLOW = 0x2\n\tAT_SYMLINK_FOLLOW   = 0x4\n\tAT_REMOVEDIR        = 0x8\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sigset_t uint32\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x158\n\ntype Uvmexp struct {\n\tPagesize           int32\n\tPagemask           int32\n\tPageshift          int32\n\tNpages             int32\n\tFree               int32\n\tActive             int32\n\tInactive           int32\n\tPaging             int32\n\tWired              int32\n\tZeropages          int32\n\tReserve_pagedaemon int32\n\tReserve_kernel     int32\n\tUnused01           int32\n\tVnodepages         int32\n\tVtextpages         int32\n\tFreemin            int32\n\tFreetarg           int32\n\tInactarg           int32\n\tWiredmax           int32\n\tAnonmin            int32\n\tVtextmin           int32\n\tVnodemin           int32\n\tAnonminpct         int32\n\tVtextminpct        int32\n\tVnodeminpct        int32\n\tNswapdev           int32\n\tSwpages            int32\n\tSwpginuse          int32\n\tSwpgonly           int32\n\tNswget             int32\n\tNanon              int32\n\tUnused05           int32\n\tUnused06           int32\n\tFaults             int32\n\tTraps              int32\n\tIntrs              int32\n\tSwtch              int32\n\tSofts              int32\n\tSyscalls           int32\n\tPageins            int32\n\tUnused07           int32\n\tUnused08           int32\n\tPgswapin           int32\n\tPgswapout          int32\n\tForks              int32\n\tForks_ppwait       int32\n\tForks_sharevm      int32\n\tPga_zerohit        int32\n\tPga_zeromiss       int32\n\tUnused09           int32\n\tFltnoram           int32\n\tFltnoanon          int32\n\tFltnoamap          int32\n\tFltpgwait          int32\n\tFltpgrele          int32\n\tFltrelck           int32\n\tFltrelckok         int32\n\tFltanget           int32\n\tFltanretry         int32\n\tFltamcopy          int32\n\tFltnamap           int32\n\tFltnomap           int32\n\tFltlget            int32\n\tFltget             int32\n\tFlt_anon           int32\n\tFlt_acow           int32\n\tFlt_obj            int32\n\tFlt_prcopy         int32\n\tFlt_przero         int32\n\tPdwoke             int32\n\tPdrevs             int32\n\tPdswout            int32\n\tPdfreed            int32\n\tPdscans            int32\n\tPdanscan           int32\n\tPdobscan           int32\n\tPdreact            int32\n\tPdbusy             int32\n\tPdpageouts         int32\n\tPdpending          int32\n\tPddeact            int32\n\tUnused11           int32\n\tUnused12           int32\n\tUnused13           int32\n\tFpswtch            int32\n\tKmapent            int32\n}\n\nconst SizeofClockinfo = 0x10\n\ntype Clockinfo struct {\n\tHz     int32\n\tTick   int32\n\tStathz int32\n\tProfhz int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go",
    "content": "// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build riscv64 && openbsd\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tMode    uint32\n\tDev     int32\n\tIno     uint64\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    int32\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tSize    int64\n\tBlocks  int64\n\tBlksize int32\n\tFlags   uint32\n\tGen     uint32\n\t_       Timespec\n}\n\ntype Statfs_t struct {\n\tF_flags       uint32\n\tF_bsize       uint32\n\tF_iosize      uint32\n\tF_blocks      uint64\n\tF_bfree       uint64\n\tF_bavail      int64\n\tF_files       uint64\n\tF_ffree       uint64\n\tF_favail      int64\n\tF_syncwrites  uint64\n\tF_syncreads   uint64\n\tF_asyncwrites uint64\n\tF_asyncreads  uint64\n\tF_fsid        Fsid\n\tF_namemax     uint32\n\tF_owner       uint32\n\tF_ctime       uint64\n\tF_fstypename  [16]byte\n\tF_mntonname   [90]byte\n\tF_mntfromname [90]byte\n\tF_mntfromspec [90]byte\n\t_             [2]byte\n\tMount_info    [160]byte\n}\n\ntype Flock_t struct {\n\tStart  int64\n\tLen    int64\n\tPid    int32\n\tType   int16\n\tWhence int16\n}\n\ntype Dirent struct {\n\tFileno uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tNamlen uint8\n\t_      [4]uint8\n\tName   [256]int8\n}\n\ntype Fsid struct {\n\tVal [2]int32\n}\n\nconst (\n\tPathMax = 0x400\n)\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [104]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tLen    uint8\n\tFamily uint8\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [24]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [92]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tNamelen    uint32\n\tIov        *Iovec\n\tIovlen     uint32\n\tControl    *byte\n\tControllen uint32\n\tFlags      int32\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x1c\n\tSizeofSockaddrAny      = 0x6c\n\tSizeofSockaddrUnix     = 0x6a\n\tSizeofSockaddrDatalink = 0x20\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x20\n\tSizeofICMPv6Filter     = 0x20\n)\n\nconst (\n\tPTRACE_TRACEME = 0x0\n\tPTRACE_CONT    = 0x7\n\tPTRACE_KILL    = 0x8\n)\n\ntype Kevent_t struct {\n\tIdent  uint64\n\tFilter int16\n\tFlags  uint16\n\tFflags uint32\n\tData   int64\n\tUdata  *byte\n}\n\ntype FdSet struct {\n\tBits [32]uint32\n}\n\nconst (\n\tSizeofIfMsghdr         = 0xa8\n\tSizeofIfData           = 0x90\n\tSizeofIfaMsghdr        = 0x18\n\tSizeofIfAnnounceMsghdr = 0x1a\n\tSizeofRtMsghdr         = 0x60\n\tSizeofRtMetrics        = 0x38\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tXflags  int32\n\tData    IfData\n}\n\ntype IfData struct {\n\tType         uint8\n\tAddrlen      uint8\n\tHdrlen       uint8\n\tLink_state   uint8\n\tMtu          uint32\n\tMetric       uint32\n\tRdomain      uint32\n\tBaudrate     uint64\n\tIpackets     uint64\n\tIerrors      uint64\n\tOpackets     uint64\n\tOerrors      uint64\n\tCollisions   uint64\n\tIbytes       uint64\n\tObytes       uint64\n\tImcasts      uint64\n\tOmcasts      uint64\n\tIqdrops      uint64\n\tOqdrops      uint64\n\tNoproto      uint64\n\tCapabilities uint32\n\tLastchange   Timeval\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tTableid uint16\n\tPad1    uint8\n\tPad2    uint8\n\tAddrs   int32\n\tFlags   int32\n\tMetric  int32\n}\n\ntype IfAnnounceMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tHdrlen  uint16\n\tIndex   uint16\n\tWhat    uint16\n\tName    [16]int8\n}\n\ntype RtMsghdr struct {\n\tMsglen   uint16\n\tVersion  uint8\n\tType     uint8\n\tHdrlen   uint16\n\tIndex    uint16\n\tTableid  uint16\n\tPriority uint8\n\tMpls     uint8\n\tAddrs    int32\n\tFlags    int32\n\tFmask    int32\n\tPid      int32\n\tSeq      int32\n\tErrno    int32\n\tInits    uint32\n\tRmx      RtMetrics\n}\n\ntype RtMetrics struct {\n\tPksent   uint64\n\tExpire   int64\n\tLocks    uint32\n\tMtu      uint32\n\tRefcnt   uint32\n\tHopcount uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPad      uint32\n}\n\ntype Mclpool struct{}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x8\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x18\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint32\n\tDrop uint32\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfHdr struct {\n\tTstamp  BpfTimeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\tIfidx   uint16\n\tFlowid  uint16\n\tFlags   uint8\n\tDrops   uint8\n}\n\ntype BpfTimeval struct {\n\tSec  uint32\n\tUsec uint32\n}\n\ntype Termios struct {\n\tIflag  uint32\n\tOflag  uint32\n\tCflag  uint32\n\tLflag  uint32\n\tCc     [20]uint8\n\tIspeed int32\n\tOspeed int32\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\nconst (\n\tAT_FDCWD            = -0x64\n\tAT_EACCESS          = 0x1\n\tAT_SYMLINK_NOFOLLOW = 0x2\n\tAT_SYMLINK_FOLLOW   = 0x4\n\tAT_REMOVEDIR        = 0x8\n)\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype Sigset_t uint32\n\ntype Utsname struct {\n\tSysname  [256]byte\n\tNodename [256]byte\n\tRelease  [256]byte\n\tVersion  [256]byte\n\tMachine  [256]byte\n}\n\nconst SizeofUvmexp = 0x158\n\ntype Uvmexp struct {\n\tPagesize           int32\n\tPagemask           int32\n\tPageshift          int32\n\tNpages             int32\n\tFree               int32\n\tActive             int32\n\tInactive           int32\n\tPaging             int32\n\tWired              int32\n\tZeropages          int32\n\tReserve_pagedaemon int32\n\tReserve_kernel     int32\n\tUnused01           int32\n\tVnodepages         int32\n\tVtextpages         int32\n\tFreemin            int32\n\tFreetarg           int32\n\tInactarg           int32\n\tWiredmax           int32\n\tAnonmin            int32\n\tVtextmin           int32\n\tVnodemin           int32\n\tAnonminpct         int32\n\tVtextminpct        int32\n\tVnodeminpct        int32\n\tNswapdev           int32\n\tSwpages            int32\n\tSwpginuse          int32\n\tSwpgonly           int32\n\tNswget             int32\n\tNanon              int32\n\tUnused05           int32\n\tUnused06           int32\n\tFaults             int32\n\tTraps              int32\n\tIntrs              int32\n\tSwtch              int32\n\tSofts              int32\n\tSyscalls           int32\n\tPageins            int32\n\tUnused07           int32\n\tUnused08           int32\n\tPgswapin           int32\n\tPgswapout          int32\n\tForks              int32\n\tForks_ppwait       int32\n\tForks_sharevm      int32\n\tPga_zerohit        int32\n\tPga_zeromiss       int32\n\tUnused09           int32\n\tFltnoram           int32\n\tFltnoanon          int32\n\tFltnoamap          int32\n\tFltpgwait          int32\n\tFltpgrele          int32\n\tFltrelck           int32\n\tFltrelckok         int32\n\tFltanget           int32\n\tFltanretry         int32\n\tFltamcopy          int32\n\tFltnamap           int32\n\tFltnomap           int32\n\tFltlget            int32\n\tFltget             int32\n\tFlt_anon           int32\n\tFlt_acow           int32\n\tFlt_obj            int32\n\tFlt_prcopy         int32\n\tFlt_przero         int32\n\tPdwoke             int32\n\tPdrevs             int32\n\tPdswout            int32\n\tPdfreed            int32\n\tPdscans            int32\n\tPdanscan           int32\n\tPdobscan           int32\n\tPdreact            int32\n\tPdbusy             int32\n\tPdpageouts         int32\n\tPdpending          int32\n\tPddeact            int32\n\tUnused11           int32\n\tUnused12           int32\n\tUnused13           int32\n\tFpswtch            int32\n\tKmapent            int32\n}\n\nconst SizeofClockinfo = 0x10\n\ntype Clockinfo struct {\n\tHz     int32\n\tTick   int32\n\tStathz int32\n\tProfhz int32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go",
    "content": "// cgo -godefs types_solaris.go | go run mkpost.go\n// Code generated by the command above; see README.md. DO NOT EDIT.\n\n//go:build amd64 && solaris\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n\tPathMax        = 0x400\n\tMaxHostNameLen = 0x100\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype Timeval32 struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype Tms struct {\n\tUtime  int64\n\tStime  int64\n\tCutime int64\n\tCstime int64\n}\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\ntype _Gid_t uint32\n\ntype Stat_t struct {\n\tDev     uint64\n\tIno     uint64\n\tMode    uint32\n\tNlink   uint32\n\tUid     uint32\n\tGid     uint32\n\tRdev    uint64\n\tSize    int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBlksize int32\n\tBlocks  int64\n\tFstype  [16]int8\n}\n\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tSysid  int32\n\tPid    int32\n\tPad    [4]int64\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tName   [1]int8\n\t_      [5]byte\n}\n\ntype _Fsblkcnt_t uint64\n\ntype Statvfs_t struct {\n\tBsize    uint64\n\tFrsize   uint64\n\tBlocks   uint64\n\tBfree    uint64\n\tBavail   uint64\n\tFiles    uint64\n\tFfree    uint64\n\tFavail   uint64\n\tFsid     uint64\n\tBasetype [16]int8\n\tFlag     uint64\n\tNamemax  uint64\n\tFstr     [32]int8\n}\n\ntype RawSockaddrInet4 struct {\n\tFamily uint16\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]int8\n}\n\ntype RawSockaddrInet6 struct {\n\tFamily   uint16\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n\t_        uint32\n}\n\ntype RawSockaddrUnix struct {\n\tFamily uint16\n\tPath   [108]int8\n}\n\ntype RawSockaddrDatalink struct {\n\tFamily uint16\n\tIndex  uint16\n\tType   uint8\n\tNlen   uint8\n\tAlen   uint8\n\tSlen   uint8\n\tData   [244]int8\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [236]int8\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName         *byte\n\tNamelen      uint32\n\tIov          *Iovec\n\tIovlen       int32\n\tAccrights    *int8\n\tAccrightslen int32\n\t_            [4]byte\n}\n\ntype Cmsghdr struct {\n\tLen   uint32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet4Pktinfo struct {\n\tIfindex  uint32\n\tSpec_dst [4]byte /* in_addr */\n\tAddr     [4]byte /* in_addr */\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tFilt [8]uint32\n}\n\nconst (\n\tSizeofSockaddrInet4    = 0x10\n\tSizeofSockaddrInet6    = 0x20\n\tSizeofSockaddrAny      = 0xfc\n\tSizeofSockaddrUnix     = 0x6e\n\tSizeofSockaddrDatalink = 0xfc\n\tSizeofLinger           = 0x8\n\tSizeofIovec            = 0x10\n\tSizeofIPMreq           = 0x8\n\tSizeofIPv6Mreq         = 0x14\n\tSizeofMsghdr           = 0x30\n\tSizeofCmsghdr          = 0xc\n\tSizeofInet4Pktinfo     = 0xc\n\tSizeofInet6Pktinfo     = 0x14\n\tSizeofIPv6MTUInfo      = 0x24\n\tSizeofICMPv6Filter     = 0x20\n)\n\ntype FdSet struct {\n\tBits [1024]int64\n}\n\ntype Utsname struct {\n\tSysname  [257]byte\n\tNodename [257]byte\n\tRelease  [257]byte\n\tVersion  [257]byte\n\tMachine  [257]byte\n}\n\ntype Ustat_t struct {\n\tTfree  int64\n\tTinode uint64\n\tFname  [6]int8\n\tFpack  [6]int8\n\t_      [4]byte\n}\n\nconst (\n\tAT_FDCWD            = 0xffd19553\n\tAT_SYMLINK_NOFOLLOW = 0x1000\n\tAT_SYMLINK_FOLLOW   = 0x2000\n\tAT_REMOVEDIR        = 0x1\n\tAT_EACCESS          = 0x4\n)\n\nconst (\n\tSizeofIfMsghdr  = 0x54\n\tSizeofIfData    = 0x44\n\tSizeofIfaMsghdr = 0x14\n\tSizeofRtMsghdr  = 0x4c\n\tSizeofRtMetrics = 0x28\n)\n\ntype IfMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\tData    IfData\n}\n\ntype IfData struct {\n\tType       uint8\n\tAddrlen    uint8\n\tHdrlen     uint8\n\tMtu        uint32\n\tMetric     uint32\n\tBaudrate   uint32\n\tIpackets   uint32\n\tIerrors    uint32\n\tOpackets   uint32\n\tOerrors    uint32\n\tCollisions uint32\n\tIbytes     uint32\n\tObytes     uint32\n\tImcasts    uint32\n\tOmcasts    uint32\n\tIqdrops    uint32\n\tNoproto    uint32\n\tLastchange Timeval32\n}\n\ntype IfaMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tAddrs   int32\n\tFlags   int32\n\tIndex   uint16\n\tMetric  int32\n}\n\ntype RtMsghdr struct {\n\tMsglen  uint16\n\tVersion uint8\n\tType    uint8\n\tIndex   uint16\n\tFlags   int32\n\tAddrs   int32\n\tPid     int32\n\tSeq     int32\n\tErrno   int32\n\tUse     int32\n\tInits   uint32\n\tRmx     RtMetrics\n}\n\ntype RtMetrics struct {\n\tLocks    uint32\n\tMtu      uint32\n\tHopcount uint32\n\tExpire   uint32\n\tRecvpipe uint32\n\tSendpipe uint32\n\tSsthresh uint32\n\tRtt      uint32\n\tRttvar   uint32\n\tPksent   uint32\n}\n\nconst (\n\tSizeofBpfVersion = 0x4\n\tSizeofBpfStat    = 0x80\n\tSizeofBpfProgram = 0x10\n\tSizeofBpfInsn    = 0x8\n\tSizeofBpfHdr     = 0x14\n)\n\ntype BpfVersion struct {\n\tMajor uint16\n\tMinor uint16\n}\n\ntype BpfStat struct {\n\tRecv uint64\n\tDrop uint64\n\tCapt uint64\n\t_    [13]uint64\n}\n\ntype BpfProgram struct {\n\tLen   uint32\n\tInsns *BpfInsn\n}\n\ntype BpfInsn struct {\n\tCode uint16\n\tJt   uint8\n\tJf   uint8\n\tK    uint32\n}\n\ntype BpfTimeval struct {\n\tSec  int32\n\tUsec int32\n}\n\ntype BpfHdr struct {\n\tTstamp  BpfTimeval\n\tCaplen  uint32\n\tDatalen uint32\n\tHdrlen  uint16\n\t_       [2]byte\n}\n\ntype Termios struct {\n\tIflag uint32\n\tOflag uint32\n\tCflag uint32\n\tLflag uint32\n\tCc    [19]uint8\n\t_     [1]byte\n}\n\ntype Termio struct {\n\tIflag uint16\n\tOflag uint16\n\tCflag uint16\n\tLflag uint16\n\tLine  int8\n\tCc    [8]uint8\n\t_     [1]byte\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\nconst (\n\tPOLLERR    = 0x8\n\tPOLLHUP    = 0x10\n\tPOLLIN     = 0x1\n\tPOLLNVAL   = 0x20\n\tPOLLOUT    = 0x4\n\tPOLLPRI    = 0x2\n\tPOLLRDBAND = 0x80\n\tPOLLRDNORM = 0x40\n\tPOLLWRBAND = 0x100\n\tPOLLWRNORM = 0x4\n)\n\ntype fileObj struct {\n\tAtim Timespec\n\tMtim Timespec\n\tCtim Timespec\n\tPad  [3]uint64\n\tName *int8\n}\n\ntype portEvent struct {\n\tEvents int32\n\tSource uint16\n\tPad    uint16\n\tObject uint64\n\tUser   *byte\n}\n\nconst (\n\tPORT_SOURCE_AIO    = 0x1\n\tPORT_SOURCE_TIMER  = 0x2\n\tPORT_SOURCE_USER   = 0x3\n\tPORT_SOURCE_FD     = 0x4\n\tPORT_SOURCE_ALERT  = 0x5\n\tPORT_SOURCE_MQ     = 0x6\n\tPORT_SOURCE_FILE   = 0x7\n\tPORT_ALERT_SET     = 0x1\n\tPORT_ALERT_UPDATE  = 0x2\n\tPORT_ALERT_INVALID = 0x3\n\tFILE_ACCESS        = 0x1\n\tFILE_MODIFIED      = 0x2\n\tFILE_ATTRIB        = 0x4\n\tFILE_TRUNC         = 0x100000\n\tFILE_NOFOLLOW      = 0x10000000\n\tFILE_DELETE        = 0x10\n\tFILE_RENAME_TO     = 0x20\n\tFILE_RENAME_FROM   = 0x40\n\tUNMOUNTED          = 0x20000000\n\tMOUNTEDOVER        = 0x40000000\n\tFILE_EXCEPTION     = 0x60000070\n)\n\nconst (\n\tTUNNEWPPA = 0x540001\n\tTUNSETPPA = 0x540002\n\n\tI_STR     = 0x5308\n\tI_POP     = 0x5303\n\tI_PUSH    = 0x5302\n\tI_LINK    = 0x530c\n\tI_UNLINK  = 0x530d\n\tI_PLINK   = 0x5316\n\tI_PUNLINK = 0x5317\n\n\tIF_UNITSEL = -0x7ffb8cca\n)\n\ntype strbuf struct {\n\tMaxlen int32\n\tLen    int32\n\tBuf    *int8\n}\n\ntype Strioctl struct {\n\tCmd    int32\n\tTimout int32\n\tLen    int32\n\tDp     *int8\n}\n\ntype Lifreq struct {\n\tName   [32]int8\n\tLifru1 [4]byte\n\tType   uint32\n\tLifru  [336]byte\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build zos && s390x\n\n// Hand edited based on ztypes_linux_s390x.go\n// TODO: auto-generate.\n\npackage unix\n\nconst (\n\tSizeofPtr      = 0x8\n\tSizeofShort    = 0x2\n\tSizeofInt      = 0x4\n\tSizeofLong     = 0x8\n\tSizeofLongLong = 0x8\n\tPathMax        = 0x1000\n)\n\nconst (\n\tSizeofSockaddrAny   = 128\n\tSizeofCmsghdr       = 12\n\tSizeofIPMreq        = 8\n\tSizeofIPv6Mreq      = 20\n\tSizeofICMPv6Filter  = 32\n\tSizeofIPv6MTUInfo   = 32\n\tSizeofInet4Pktinfo  = 8\n\tSizeofInet6Pktinfo  = 20\n\tSizeofLinger        = 8\n\tSizeofSockaddrInet4 = 16\n\tSizeofSockaddrInet6 = 28\n\tSizeofTCPInfo       = 0x68\n\tSizeofUcred         = 12\n)\n\ntype (\n\t_C_short     int16\n\t_C_int       int32\n\t_C_long      int64\n\t_C_long_long int64\n)\n\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\ntype Timeval struct {\n\tSec  int64\n\tUsec int64\n}\n\ntype timeval_zos struct { //correct (with padding and all)\n\tSec  int64\n\t_    [4]byte // pad\n\tUsec int32\n}\n\ntype Tms struct { //clock_t is 4-byte unsigned int in zos\n\tUtime  uint32\n\tStime  uint32\n\tCutime uint32\n\tCstime uint32\n}\n\ntype Time_t int64\n\ntype Utimbuf struct {\n\tActime  int64\n\tModtime int64\n}\n\ntype Utsname struct {\n\tSysname  [16]byte\n\tNodename [32]byte\n\tRelease  [8]byte\n\tVersion  [8]byte\n\tMachine  [16]byte\n}\n\ntype Ucred struct {\n\tPid int32\n\tUid uint32\n\tGid uint32\n}\n\ntype RawSockaddrInet4 struct {\n\tLen    uint8\n\tFamily uint8\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]uint8\n}\n\ntype RawSockaddrInet6 struct {\n\tLen      uint8\n\tFamily   uint8\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddrUnix struct {\n\tLen    uint8\n\tFamily uint8\n\tPath   [108]int8\n}\n\ntype RawSockaddr struct {\n\tLen    uint8\n\tFamily uint8\n\tData   [14]uint8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\t_    [112]uint8 // pad\n}\n\ntype _Socklen uint32\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype Iovec struct {\n\tBase *byte\n\tLen  uint64\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\ntype Msghdr struct {\n\tName       *byte\n\tIov        *Iovec\n\tControl    *byte\n\tFlags      int32\n\tNamelen    int32\n\tIovlen     int32\n\tControllen int32\n}\n\ntype Cmsghdr struct {\n\tLen   int32\n\tLevel int32\n\tType  int32\n}\n\ntype Inet4Pktinfo struct {\n\tAddr    [4]byte /* in_addr */\n\tIfindex uint32\n}\n\ntype Inet6Pktinfo struct {\n\tAddr    [16]byte /* in6_addr */\n\tIfindex uint32\n}\n\ntype IPv6MTUInfo struct {\n\tAddr RawSockaddrInet6\n\tMtu  uint32\n}\n\ntype ICMPv6Filter struct {\n\tData [8]uint32\n}\n\ntype TCPInfo struct {\n\tState          uint8\n\tCa_state       uint8\n\tRetransmits    uint8\n\tProbes         uint8\n\tBackoff        uint8\n\tOptions        uint8\n\tRto            uint32\n\tAto            uint32\n\tSnd_mss        uint32\n\tRcv_mss        uint32\n\tUnacked        uint32\n\tSacked         uint32\n\tLost           uint32\n\tRetrans        uint32\n\tFackets        uint32\n\tLast_data_sent uint32\n\tLast_ack_sent  uint32\n\tLast_data_recv uint32\n\tLast_ack_recv  uint32\n\tPmtu           uint32\n\tRcv_ssthresh   uint32\n\tRtt            uint32\n\tRttvar         uint32\n\tSnd_ssthresh   uint32\n\tSnd_cwnd       uint32\n\tAdvmss         uint32\n\tReordering     uint32\n\tRcv_rtt        uint32\n\tRcv_space      uint32\n\tTotal_retrans  uint32\n}\n\ntype _Gid_t uint32\n\ntype rusage_zos struct {\n\tUtime timeval_zos\n\tStime timeval_zos\n}\n\ntype Rusage struct {\n\tUtime    Timeval\n\tStime    Timeval\n\tMaxrss   int64\n\tIxrss    int64\n\tIdrss    int64\n\tIsrss    int64\n\tMinflt   int64\n\tMajflt   int64\n\tNswap    int64\n\tInblock  int64\n\tOublock  int64\n\tMsgsnd   int64\n\tMsgrcv   int64\n\tNsignals int64\n\tNvcsw    int64\n\tNivcsw   int64\n}\n\ntype Rlimit struct {\n\tCur uint64\n\tMax uint64\n}\n\n// { int, short, short } in poll.h\ntype PollFd struct {\n\tFd      int32\n\tEvents  int16\n\tRevents int16\n}\n\ntype Stat_t struct { //Linux Definition\n\tDev     uint64\n\tIno     uint64\n\tNlink   uint64\n\tMode    uint32\n\tUid     uint32\n\tGid     uint32\n\t_       int32\n\tRdev    uint64\n\tSize    int64\n\tAtim    Timespec\n\tMtim    Timespec\n\tCtim    Timespec\n\tBlksize int64\n\tBlocks  int64\n\t_       [3]int64\n}\n\ntype Stat_LE_t struct {\n\t_            [4]byte // eye catcher\n\tLength       uint16\n\tVersion      uint16\n\tMode         int32\n\tIno          uint32\n\tDev          uint32\n\tNlink        int32\n\tUid          int32\n\tGid          int32\n\tSize         int64\n\tAtim31       [4]byte\n\tMtim31       [4]byte\n\tCtim31       [4]byte\n\tRdev         uint32\n\tAuditoraudit uint32\n\tUseraudit    uint32\n\tBlksize      int32\n\tCreatim31    [4]byte\n\tAuditID      [16]byte\n\t_            [4]byte // rsrvd1\n\tFile_tag     struct {\n\t\tCcsid   uint16\n\t\tTxtflag uint16 // aggregating Txflag:1 deferred:1 rsvflags:14\n\t}\n\tCharsetID [8]byte\n\tBlocks    int64\n\tGenvalue  uint32\n\tReftim31  [4]byte\n\tFid       [8]byte\n\tFilefmt   byte\n\tFspflag2  byte\n\t_         [2]byte // rsrvd2\n\tCtimemsec int32\n\tSeclabel  [8]byte\n\t_         [4]byte // rsrvd3\n\t_         [4]byte // rsrvd4\n\tAtim      Time_t\n\tMtim      Time_t\n\tCtim      Time_t\n\tCreatim   Time_t\n\tReftim    Time_t\n\t_         [24]byte // rsrvd5\n}\n\ntype Statvfs_t struct {\n\tID          [4]byte\n\tLen         int32\n\tBsize       uint64\n\tBlocks      uint64\n\tUsedspace   uint64\n\tBavail      uint64\n\tFlag        uint64\n\tMaxfilesize int64\n\t_           [16]byte\n\tFrsize      uint64\n\tBfree       uint64\n\tFiles       uint32\n\tFfree       uint32\n\tFavail      uint32\n\tNamemax31   uint32\n\tInvarsec    uint32\n\t_           [4]byte\n\tFsid        uint64\n\tNamemax     uint64\n}\n\ntype Statfs_t struct {\n\tType    uint64\n\tBsize   uint64\n\tBlocks  uint64\n\tBfree   uint64\n\tBavail  uint64\n\tFiles   uint32\n\tFfree   uint32\n\tFsid    uint64\n\tNamelen uint64\n\tFrsize  uint64\n\tFlags   uint64\n\t_       [4]uint64\n}\n\ntype direntLE struct {\n\tReclen uint16\n\tNamlen uint16\n\tIno    uint32\n\tExtra  uintptr\n\tName   [256]byte\n}\n\ntype Dirent struct {\n\tIno    uint64\n\tOff    int64\n\tReclen uint16\n\tType   uint8\n\tName   [256]uint8\n\t_      [5]byte\n}\n\ntype FdSet struct {\n\tBits [64]int32\n}\n\n// This struct is packed on z/OS so it can't be used directly.\ntype Flock_t struct {\n\tType   int16\n\tWhence int16\n\tStart  int64\n\tLen    int64\n\tPid    int32\n}\n\ntype F_cnvrt struct {\n\tCvtcmd int32\n\tPccsid int16\n\tFccsid int16\n}\n\ntype Termios struct {\n\tCflag uint32\n\tIflag uint32\n\tLflag uint32\n\tOflag uint32\n\tCc    [11]uint8\n}\n\ntype Winsize struct {\n\tRow    uint16\n\tCol    uint16\n\tXpixel uint16\n\tYpixel uint16\n}\n\ntype W_Mnth struct {\n\tHid   [4]byte\n\tSize  int32\n\tCur1  int32 //32bit pointer\n\tCur2  int32 //^\n\tDevno uint32\n\t_     [4]byte\n}\n\ntype W_Mntent struct {\n\tFstype       uint32\n\tMode         uint32\n\tDev          uint32\n\tParentdev    uint32\n\tRootino      uint32\n\tStatus       byte\n\tDdname       [9]byte\n\tFstname      [9]byte\n\tFsname       [45]byte\n\tPathlen      uint32\n\tMountpoint   [1024]byte\n\tJobname      [8]byte\n\tPID          int32\n\tParmoffset   int32\n\tParmlen      int16\n\tOwner        [8]byte\n\tQuiesceowner [8]byte\n\t_            [38]byte\n}\n\ntype EpollEvent struct {\n\tEvents uint32\n\t_      int32\n\tFd     int32\n\tPad    int32\n}\n\ntype InotifyEvent struct {\n\tWd     int32\n\tMask   uint32\n\tCookie uint32\n\tLen    uint32\n\tName   string\n}\n\nconst (\n\tSizeofInotifyEvent = 0x10\n)\n\ntype ConsMsg2 struct {\n\tCm2Format       uint16\n\tCm2R1           uint16\n\tCm2Msglength    uint32\n\tCm2Msg          *byte\n\tCm2R2           [4]byte\n\tCm2R3           [4]byte\n\tCm2Routcde      *uint32\n\tCm2Descr        *uint32\n\tCm2Msgflag      uint32\n\tCm2Token        uint32\n\tCm2Msgid        *uint32\n\tCm2R4           [4]byte\n\tCm2DomToken     uint32\n\tCm2DomMsgid     *uint32\n\tCm2ModCartptr   *byte\n\tCm2ModConsidptr *byte\n\tCm2MsgCart      [8]byte\n\tCm2MsgConsid    [4]byte\n\tCm2R5           [12]byte\n}\n\nconst (\n\tCC_modify        = 1\n\tCC_stop          = 2\n\tCONSOLE_FORMAT_2 = 2\n\tCONSOLE_FORMAT_3 = 3\n\tCONSOLE_HRDCPY   = 0x80000000\n)\n\ntype OpenHow struct {\n\tFlags   uint64\n\tMode    uint64\n\tResolve uint64\n}\n\nconst SizeofOpenHow = 0x18\n\nconst (\n\tRESOLVE_CACHED        = 0x20\n\tRESOLVE_BENEATH       = 0x8\n\tRESOLVE_IN_ROOT       = 0x10\n\tRESOLVE_NO_MAGICLINKS = 0x2\n\tRESOLVE_NO_SYMLINKS   = 0x4\n\tRESOLVE_NO_XDEV       = 0x1\n)\n\ntype Siginfo struct {\n\tSigno int32\n\tErrno int32\n\tCode  int32\n\tPid   int32\n\tUid   uint32\n\t_     [44]byte\n}\n\ntype SysvIpcPerm struct {\n\tUid  uint32\n\tGid  uint32\n\tCuid uint32\n\tCgid uint32\n\tMode int32\n}\n\ntype SysvShmDesc struct {\n\tPerm   SysvIpcPerm\n\t_      [4]byte\n\tLpid   int32\n\tCpid   int32\n\tNattch uint32\n\t_      [4]byte\n\t_      [4]byte\n\t_      [4]byte\n\t_      int32\n\t_      uint8\n\t_      uint8\n\t_      uint16\n\t_      *byte\n\tSegsz  uint64\n\tAtime  Time_t\n\tDtime  Time_t\n\tCtime  Time_t\n}\n\ntype SysvShmDesc64 struct {\n\tPerm   SysvIpcPerm\n\t_      [4]byte\n\tLpid   int32\n\tCpid   int32\n\tNattch uint32\n\t_      [4]byte\n\t_      [4]byte\n\t_      [4]byte\n\t_      int32\n\t_      byte\n\t_      uint8\n\t_      uint16\n\t_      *byte\n\tSegsz  uint64\n\tAtime  int64\n\tDtime  int64\n\tCtime  int64\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/aliases.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build windows\n\npackage windows\n\nimport \"syscall\"\n\ntype Errno = syscall.Errno\ntype SysProcAttr = syscall.SysProcAttr\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/dll_windows.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage windows\n\nimport (\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n// We need to use LoadLibrary and GetProcAddress from the Go runtime, because\n// the these symbols are loaded by the system linker and are required to\n// dynamically load additional symbols. Note that in the Go runtime, these\n// return syscall.Handle and syscall.Errno, but these are the same, in fact,\n// as windows.Handle and windows.Errno, and we intend to keep these the same.\n\n//go:linkname syscall_loadlibrary syscall.loadlibrary\nfunc syscall_loadlibrary(filename *uint16) (handle Handle, err Errno)\n\n//go:linkname syscall_getprocaddress syscall.getprocaddress\nfunc syscall_getprocaddress(handle Handle, procname *uint8) (proc uintptr, err Errno)\n\n// DLLError describes reasons for DLL load failures.\ntype DLLError struct {\n\tErr     error\n\tObjName string\n\tMsg     string\n}\n\nfunc (e *DLLError) Error() string { return e.Msg }\n\nfunc (e *DLLError) Unwrap() error { return e.Err }\n\n// A DLL implements access to a single DLL.\ntype DLL struct {\n\tName   string\n\tHandle Handle\n}\n\n// LoadDLL loads DLL file into memory.\n//\n// Warning: using LoadDLL without an absolute path name is subject to\n// DLL preloading attacks. To safely load a system DLL, use [NewLazySystemDLL],\n// or use [LoadLibraryEx] directly.\nfunc LoadDLL(name string) (dll *DLL, err error) {\n\tnamep, err := UTF16PtrFromString(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\th, e := syscall_loadlibrary(namep)\n\tif e != 0 {\n\t\treturn nil, &DLLError{\n\t\t\tErr:     e,\n\t\t\tObjName: name,\n\t\t\tMsg:     \"Failed to load \" + name + \": \" + e.Error(),\n\t\t}\n\t}\n\td := &DLL{\n\t\tName:   name,\n\t\tHandle: h,\n\t}\n\treturn d, nil\n}\n\n// MustLoadDLL is like LoadDLL but panics if load operation fails.\nfunc MustLoadDLL(name string) *DLL {\n\td, e := LoadDLL(name)\n\tif e != nil {\n\t\tpanic(e)\n\t}\n\treturn d\n}\n\n// FindProc searches DLL d for procedure named name and returns *Proc\n// if found. It returns an error if search fails.\nfunc (d *DLL) FindProc(name string) (proc *Proc, err error) {\n\tnamep, err := BytePtrFromString(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\ta, e := syscall_getprocaddress(d.Handle, namep)\n\tif e != 0 {\n\t\treturn nil, &DLLError{\n\t\t\tErr:     e,\n\t\t\tObjName: name,\n\t\t\tMsg:     \"Failed to find \" + name + \" procedure in \" + d.Name + \": \" + e.Error(),\n\t\t}\n\t}\n\tp := &Proc{\n\t\tDll:  d,\n\t\tName: name,\n\t\taddr: a,\n\t}\n\treturn p, nil\n}\n\n// MustFindProc is like FindProc but panics if search fails.\nfunc (d *DLL) MustFindProc(name string) *Proc {\n\tp, e := d.FindProc(name)\n\tif e != nil {\n\t\tpanic(e)\n\t}\n\treturn p\n}\n\n// FindProcByOrdinal searches DLL d for procedure by ordinal and returns *Proc\n// if found. It returns an error if search fails.\nfunc (d *DLL) FindProcByOrdinal(ordinal uintptr) (proc *Proc, err error) {\n\ta, e := GetProcAddressByOrdinal(d.Handle, ordinal)\n\tname := \"#\" + itoa(int(ordinal))\n\tif e != nil {\n\t\treturn nil, &DLLError{\n\t\t\tErr:     e,\n\t\t\tObjName: name,\n\t\t\tMsg:     \"Failed to find \" + name + \" procedure in \" + d.Name + \": \" + e.Error(),\n\t\t}\n\t}\n\tp := &Proc{\n\t\tDll:  d,\n\t\tName: name,\n\t\taddr: a,\n\t}\n\treturn p, nil\n}\n\n// MustFindProcByOrdinal is like FindProcByOrdinal but panics if search fails.\nfunc (d *DLL) MustFindProcByOrdinal(ordinal uintptr) *Proc {\n\tp, e := d.FindProcByOrdinal(ordinal)\n\tif e != nil {\n\t\tpanic(e)\n\t}\n\treturn p\n}\n\n// Release unloads DLL d from memory.\nfunc (d *DLL) Release() (err error) {\n\treturn FreeLibrary(d.Handle)\n}\n\n// A Proc implements access to a procedure inside a DLL.\ntype Proc struct {\n\tDll  *DLL\n\tName string\n\taddr uintptr\n}\n\n// Addr returns the address of the procedure represented by p.\n// The return value can be passed to Syscall to run the procedure.\nfunc (p *Proc) Addr() uintptr {\n\treturn p.addr\n}\n\n//go:uintptrescapes\n\n// Call executes procedure p with arguments a. It will panic, if more than 15 arguments\n// are supplied.\n//\n// The returned error is always non-nil, constructed from the result of GetLastError.\n// Callers must inspect the primary return value to decide whether an error occurred\n// (according to the semantics of the specific function being called) before consulting\n// the error. The error will be guaranteed to contain windows.Errno.\nfunc (p *Proc) Call(a ...uintptr) (r1, r2 uintptr, lastErr error) {\n\tswitch len(a) {\n\tcase 0:\n\t\treturn syscall.Syscall(p.Addr(), uintptr(len(a)), 0, 0, 0)\n\tcase 1:\n\t\treturn syscall.Syscall(p.Addr(), uintptr(len(a)), a[0], 0, 0)\n\tcase 2:\n\t\treturn syscall.Syscall(p.Addr(), uintptr(len(a)), a[0], a[1], 0)\n\tcase 3:\n\t\treturn syscall.Syscall(p.Addr(), uintptr(len(a)), a[0], a[1], a[2])\n\tcase 4:\n\t\treturn syscall.Syscall6(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], 0, 0)\n\tcase 5:\n\t\treturn syscall.Syscall6(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], 0)\n\tcase 6:\n\t\treturn syscall.Syscall6(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5])\n\tcase 7:\n\t\treturn syscall.Syscall9(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], 0, 0)\n\tcase 8:\n\t\treturn syscall.Syscall9(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], 0)\n\tcase 9:\n\t\treturn syscall.Syscall9(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8])\n\tcase 10:\n\t\treturn syscall.Syscall12(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], 0, 0)\n\tcase 11:\n\t\treturn syscall.Syscall12(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], 0)\n\tcase 12:\n\t\treturn syscall.Syscall12(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11])\n\tcase 13:\n\t\treturn syscall.Syscall15(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], 0, 0)\n\tcase 14:\n\t\treturn syscall.Syscall15(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], 0)\n\tcase 15:\n\t\treturn syscall.Syscall15(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14])\n\tdefault:\n\t\tpanic(\"Call \" + p.Name + \" with too many arguments \" + itoa(len(a)) + \".\")\n\t}\n}\n\n// A LazyDLL implements access to a single DLL.\n// It will delay the load of the DLL until the first\n// call to its Handle method or to one of its\n// LazyProc's Addr method.\ntype LazyDLL struct {\n\tName string\n\n\t// System determines whether the DLL must be loaded from the\n\t// Windows System directory, bypassing the normal DLL search\n\t// path.\n\tSystem bool\n\n\tmu  sync.Mutex\n\tdll *DLL // non nil once DLL is loaded\n}\n\n// Load loads DLL file d.Name into memory. It returns an error if fails.\n// Load will not try to load DLL, if it is already loaded into memory.\nfunc (d *LazyDLL) Load() error {\n\t// Non-racy version of:\n\t// if d.dll != nil {\n\tif atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(&d.dll))) != nil {\n\t\treturn nil\n\t}\n\td.mu.Lock()\n\tdefer d.mu.Unlock()\n\tif d.dll != nil {\n\t\treturn nil\n\t}\n\n\t// kernel32.dll is special, since it's where LoadLibraryEx comes from.\n\t// The kernel already special-cases its name, so it's always\n\t// loaded from system32.\n\tvar dll *DLL\n\tvar err error\n\tif d.Name == \"kernel32.dll\" {\n\t\tdll, err = LoadDLL(d.Name)\n\t} else {\n\t\tdll, err = loadLibraryEx(d.Name, d.System)\n\t}\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Non-racy version of:\n\t// d.dll = dll\n\tatomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(&d.dll)), unsafe.Pointer(dll))\n\treturn nil\n}\n\n// mustLoad is like Load but panics if search fails.\nfunc (d *LazyDLL) mustLoad() {\n\te := d.Load()\n\tif e != nil {\n\t\tpanic(e)\n\t}\n}\n\n// Handle returns d's module handle.\nfunc (d *LazyDLL) Handle() uintptr {\n\td.mustLoad()\n\treturn uintptr(d.dll.Handle)\n}\n\n// NewProc returns a LazyProc for accessing the named procedure in the DLL d.\nfunc (d *LazyDLL) NewProc(name string) *LazyProc {\n\treturn &LazyProc{l: d, Name: name}\n}\n\n// NewLazyDLL creates new LazyDLL associated with DLL file.\n//\n// Warning: using NewLazyDLL without an absolute path name is subject to\n// DLL preloading attacks. To safely load a system DLL, use [NewLazySystemDLL].\nfunc NewLazyDLL(name string) *LazyDLL {\n\treturn &LazyDLL{Name: name}\n}\n\n// NewLazySystemDLL is like NewLazyDLL, but will only\n// search Windows System directory for the DLL if name is\n// a base name (like \"advapi32.dll\").\nfunc NewLazySystemDLL(name string) *LazyDLL {\n\treturn &LazyDLL{Name: name, System: true}\n}\n\n// A LazyProc implements access to a procedure inside a LazyDLL.\n// It delays the lookup until the Addr method is called.\ntype LazyProc struct {\n\tName string\n\n\tmu   sync.Mutex\n\tl    *LazyDLL\n\tproc *Proc\n}\n\n// Find searches DLL for procedure named p.Name. It returns\n// an error if search fails. Find will not search procedure,\n// if it is already found and loaded into memory.\nfunc (p *LazyProc) Find() error {\n\t// Non-racy version of:\n\t// if p.proc == nil {\n\tif atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(&p.proc))) == nil {\n\t\tp.mu.Lock()\n\t\tdefer p.mu.Unlock()\n\t\tif p.proc == nil {\n\t\t\te := p.l.Load()\n\t\t\tif e != nil {\n\t\t\t\treturn e\n\t\t\t}\n\t\t\tproc, e := p.l.dll.FindProc(p.Name)\n\t\t\tif e != nil {\n\t\t\t\treturn e\n\t\t\t}\n\t\t\t// Non-racy version of:\n\t\t\t// p.proc = proc\n\t\t\tatomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(&p.proc)), unsafe.Pointer(proc))\n\t\t}\n\t}\n\treturn nil\n}\n\n// mustFind is like Find but panics if search fails.\nfunc (p *LazyProc) mustFind() {\n\te := p.Find()\n\tif e != nil {\n\t\tpanic(e)\n\t}\n}\n\n// Addr returns the address of the procedure represented by p.\n// The return value can be passed to Syscall to run the procedure.\n// It will panic if the procedure cannot be found.\nfunc (p *LazyProc) Addr() uintptr {\n\tp.mustFind()\n\treturn p.proc.Addr()\n}\n\n//go:uintptrescapes\n\n// Call executes procedure p with arguments a. It will panic, if more than 15 arguments\n// are supplied. It will also panic if the procedure cannot be found.\n//\n// The returned error is always non-nil, constructed from the result of GetLastError.\n// Callers must inspect the primary return value to decide whether an error occurred\n// (according to the semantics of the specific function being called) before consulting\n// the error. The error will be guaranteed to contain windows.Errno.\nfunc (p *LazyProc) Call(a ...uintptr) (r1, r2 uintptr, lastErr error) {\n\tp.mustFind()\n\treturn p.proc.Call(a...)\n}\n\nvar canDoSearchSystem32Once struct {\n\tsync.Once\n\tv bool\n}\n\nfunc initCanDoSearchSystem32() {\n\t// https://msdn.microsoft.com/en-us/library/ms684179(v=vs.85).aspx says:\n\t// \"Windows 7, Windows Server 2008 R2, Windows Vista, and Windows\n\t// Server 2008: The LOAD_LIBRARY_SEARCH_* flags are available on\n\t// systems that have KB2533623 installed. To determine whether the\n\t// flags are available, use GetProcAddress to get the address of the\n\t// AddDllDirectory, RemoveDllDirectory, or SetDefaultDllDirectories\n\t// function. If GetProcAddress succeeds, the LOAD_LIBRARY_SEARCH_*\n\t// flags can be used with LoadLibraryEx.\"\n\tcanDoSearchSystem32Once.v = (modkernel32.NewProc(\"AddDllDirectory\").Find() == nil)\n}\n\nfunc canDoSearchSystem32() bool {\n\tcanDoSearchSystem32Once.Do(initCanDoSearchSystem32)\n\treturn canDoSearchSystem32Once.v\n}\n\nfunc isBaseName(name string) bool {\n\tfor _, c := range name {\n\t\tif c == ':' || c == '/' || c == '\\\\' {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// loadLibraryEx wraps the Windows LoadLibraryEx function.\n//\n// See https://msdn.microsoft.com/en-us/library/windows/desktop/ms684179(v=vs.85).aspx\n//\n// If name is not an absolute path, LoadLibraryEx searches for the DLL\n// in a variety of automatic locations unless constrained by flags.\n// See: https://msdn.microsoft.com/en-us/library/ff919712%28VS.85%29.aspx\nfunc loadLibraryEx(name string, system bool) (*DLL, error) {\n\tloadDLL := name\n\tvar flags uintptr\n\tif system {\n\t\tif canDoSearchSystem32() {\n\t\t\tflags = LOAD_LIBRARY_SEARCH_SYSTEM32\n\t\t} else if isBaseName(name) {\n\t\t\t// WindowsXP or unpatched Windows machine\n\t\t\t// trying to load \"foo.dll\" out of the system\n\t\t\t// folder, but LoadLibraryEx doesn't support\n\t\t\t// that yet on their system, so emulate it.\n\t\t\tsystemdir, err := GetSystemDirectory()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tloadDLL = systemdir + \"\\\\\" + name\n\t\t}\n\t}\n\th, err := LoadLibraryEx(loadDLL, 0, flags)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &DLL{Name: name, Handle: h}, nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/env_windows.go",
    "content": "// Copyright 2010 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Windows environment variables.\n\npackage windows\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nfunc Getenv(key string) (value string, found bool) {\n\treturn syscall.Getenv(key)\n}\n\nfunc Setenv(key, value string) error {\n\treturn syscall.Setenv(key, value)\n}\n\nfunc Clearenv() {\n\tsyscall.Clearenv()\n}\n\nfunc Environ() []string {\n\treturn syscall.Environ()\n}\n\n// Returns a default environment associated with the token, rather than the current\n// process. If inheritExisting is true, then this environment also inherits the\n// environment of the current process.\nfunc (token Token) Environ(inheritExisting bool) (env []string, err error) {\n\tvar block *uint16\n\terr = CreateEnvironmentBlock(&block, token, inheritExisting)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer DestroyEnvironmentBlock(block)\n\tsize := unsafe.Sizeof(*block)\n\tfor *block != 0 {\n\t\t// find NUL terminator\n\t\tend := unsafe.Pointer(block)\n\t\tfor *(*uint16)(end) != 0 {\n\t\t\tend = unsafe.Add(end, size)\n\t\t}\n\n\t\tentry := unsafe.Slice(block, (uintptr(end)-uintptr(unsafe.Pointer(block)))/size)\n\t\tenv = append(env, UTF16ToString(entry))\n\t\tblock = (*uint16)(unsafe.Add(end, size))\n\t}\n\treturn env, nil\n}\n\nfunc Unsetenv(key string) error {\n\treturn syscall.Unsetenv(key)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/eventlog.go",
    "content": "// Copyright 2012 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build windows\n\npackage windows\n\nconst (\n\tEVENTLOG_SUCCESS          = 0\n\tEVENTLOG_ERROR_TYPE       = 1\n\tEVENTLOG_WARNING_TYPE     = 2\n\tEVENTLOG_INFORMATION_TYPE = 4\n\tEVENTLOG_AUDIT_SUCCESS    = 8\n\tEVENTLOG_AUDIT_FAILURE    = 16\n)\n\n//sys\tRegisterEventSource(uncServerName *uint16, sourceName *uint16) (handle Handle, err error) [failretval==0] = advapi32.RegisterEventSourceW\n//sys\tDeregisterEventSource(handle Handle) (err error) = advapi32.DeregisterEventSource\n//sys\tReportEvent(log Handle, etype uint16, category uint16, eventId uint32, usrSId uintptr, numStrings uint16, dataSize uint32, strings **uint16, rawData *byte) (err error) = advapi32.ReportEventW\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/exec_windows.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Fork, exec, wait, etc.\n\npackage windows\n\nimport (\n\terrorspkg \"errors\"\n\t\"unsafe\"\n)\n\n// EscapeArg rewrites command line argument s as prescribed\n// in http://msdn.microsoft.com/en-us/library/ms880421.\n// This function returns \"\" (2 double quotes) if s is empty.\n// Alternatively, these transformations are done:\n//   - every back slash (\\) is doubled, but only if immediately\n//     followed by double quote (\");\n//   - every double quote (\") is escaped by back slash (\\);\n//   - finally, s is wrapped with double quotes (arg -> \"arg\"),\n//     but only if there is space or tab inside s.\nfunc EscapeArg(s string) string {\n\tif len(s) == 0 {\n\t\treturn `\"\"`\n\t}\n\tn := len(s)\n\thasSpace := false\n\tfor i := 0; i < len(s); i++ {\n\t\tswitch s[i] {\n\t\tcase '\"', '\\\\':\n\t\t\tn++\n\t\tcase ' ', '\\t':\n\t\t\thasSpace = true\n\t\t}\n\t}\n\tif hasSpace {\n\t\tn += 2 // Reserve space for quotes.\n\t}\n\tif n == len(s) {\n\t\treturn s\n\t}\n\n\tqs := make([]byte, n)\n\tj := 0\n\tif hasSpace {\n\t\tqs[j] = '\"'\n\t\tj++\n\t}\n\tslashes := 0\n\tfor i := 0; i < len(s); i++ {\n\t\tswitch s[i] {\n\t\tdefault:\n\t\t\tslashes = 0\n\t\t\tqs[j] = s[i]\n\t\tcase '\\\\':\n\t\t\tslashes++\n\t\t\tqs[j] = s[i]\n\t\tcase '\"':\n\t\t\tfor ; slashes > 0; slashes-- {\n\t\t\t\tqs[j] = '\\\\'\n\t\t\t\tj++\n\t\t\t}\n\t\t\tqs[j] = '\\\\'\n\t\t\tj++\n\t\t\tqs[j] = s[i]\n\t\t}\n\t\tj++\n\t}\n\tif hasSpace {\n\t\tfor ; slashes > 0; slashes-- {\n\t\t\tqs[j] = '\\\\'\n\t\t\tj++\n\t\t}\n\t\tqs[j] = '\"'\n\t\tj++\n\t}\n\treturn string(qs[:j])\n}\n\n// ComposeCommandLine escapes and joins the given arguments suitable for use as a Windows command line,\n// in CreateProcess's CommandLine argument, CreateService/ChangeServiceConfig's BinaryPathName argument,\n// or any program that uses CommandLineToArgv.\nfunc ComposeCommandLine(args []string) string {\n\tif len(args) == 0 {\n\t\treturn \"\"\n\t}\n\n\t// Per https://learn.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-commandlinetoargvw:\n\t// “This function accepts command lines that contain a program name; the\n\t// program name can be enclosed in quotation marks or not.”\n\t//\n\t// Unfortunately, it provides no means of escaping interior quotation marks\n\t// within that program name, and we have no way to report them here.\n\tprog := args[0]\n\tmustQuote := len(prog) == 0\n\tfor i := 0; i < len(prog); i++ {\n\t\tc := prog[i]\n\t\tif c <= ' ' || (c == '\"' && i == 0) {\n\t\t\t// Force quotes for not only the ASCII space and tab as described in the\n\t\t\t// MSDN article, but also ASCII control characters.\n\t\t\t// The documentation for CommandLineToArgvW doesn't say what happens when\n\t\t\t// the first argument is not a valid program name, but it empirically\n\t\t\t// seems to drop unquoted control characters.\n\t\t\tmustQuote = true\n\t\t\tbreak\n\t\t}\n\t}\n\tvar commandLine []byte\n\tif mustQuote {\n\t\tcommandLine = make([]byte, 0, len(prog)+2)\n\t\tcommandLine = append(commandLine, '\"')\n\t\tfor i := 0; i < len(prog); i++ {\n\t\t\tc := prog[i]\n\t\t\tif c == '\"' {\n\t\t\t\t// This quote would interfere with our surrounding quotes.\n\t\t\t\t// We have no way to report an error, so just strip out\n\t\t\t\t// the offending character instead.\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tcommandLine = append(commandLine, c)\n\t\t}\n\t\tcommandLine = append(commandLine, '\"')\n\t} else {\n\t\tif len(args) == 1 {\n\t\t\t// args[0] is a valid command line representing itself.\n\t\t\t// No need to allocate a new slice or string for it.\n\t\t\treturn prog\n\t\t}\n\t\tcommandLine = []byte(prog)\n\t}\n\n\tfor _, arg := range args[1:] {\n\t\tcommandLine = append(commandLine, ' ')\n\t\t// TODO(bcmills): since we're already appending to a slice, it would be nice\n\t\t// to avoid the intermediate allocations of EscapeArg.\n\t\t// Perhaps we can factor out an appendEscapedArg function.\n\t\tcommandLine = append(commandLine, EscapeArg(arg)...)\n\t}\n\treturn string(commandLine)\n}\n\n// DecomposeCommandLine breaks apart its argument command line into unescaped parts using CommandLineToArgv,\n// as gathered from GetCommandLine, QUERY_SERVICE_CONFIG's BinaryPathName argument, or elsewhere that\n// command lines are passed around.\n// DecomposeCommandLine returns an error if commandLine contains NUL.\nfunc DecomposeCommandLine(commandLine string) ([]string, error) {\n\tif len(commandLine) == 0 {\n\t\treturn []string{}, nil\n\t}\n\tutf16CommandLine, err := UTF16FromString(commandLine)\n\tif err != nil {\n\t\treturn nil, errorspkg.New(\"string with NUL passed to DecomposeCommandLine\")\n\t}\n\tvar argc int32\n\targv, err := commandLineToArgv(&utf16CommandLine[0], &argc)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer LocalFree(Handle(unsafe.Pointer(argv)))\n\n\tvar args []string\n\tfor _, p := range unsafe.Slice(argv, argc) {\n\t\targs = append(args, UTF16PtrToString(p))\n\t}\n\treturn args, nil\n}\n\n// CommandLineToArgv parses a Unicode command line string and sets\n// argc to the number of parsed arguments.\n//\n// The returned memory should be freed using a single call to LocalFree.\n//\n// Note that although the return type of CommandLineToArgv indicates 8192\n// entries of up to 8192 characters each, the actual count of parsed arguments\n// may exceed 8192, and the documentation for CommandLineToArgvW does not mention\n// any bound on the lengths of the individual argument strings.\n// (See https://go.dev/issue/63236.)\nfunc CommandLineToArgv(cmd *uint16, argc *int32) (argv *[8192]*[8192]uint16, err error) {\n\targp, err := commandLineToArgv(cmd, argc)\n\targv = (*[8192]*[8192]uint16)(unsafe.Pointer(argp))\n\treturn argv, err\n}\n\nfunc CloseOnExec(fd Handle) {\n\tSetHandleInformation(Handle(fd), HANDLE_FLAG_INHERIT, 0)\n}\n\n// FullPath retrieves the full path of the specified file.\nfunc FullPath(name string) (path string, err error) {\n\tp, err := UTF16PtrFromString(name)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tn := uint32(100)\n\tfor {\n\t\tbuf := make([]uint16, n)\n\t\tn, err = GetFullPathName(p, uint32(len(buf)), &buf[0], nil)\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\tif n <= uint32(len(buf)) {\n\t\t\treturn UTF16ToString(buf[:n]), nil\n\t\t}\n\t}\n}\n\n// NewProcThreadAttributeList allocates a new ProcThreadAttributeListContainer, with the requested maximum number of attributes.\nfunc NewProcThreadAttributeList(maxAttrCount uint32) (*ProcThreadAttributeListContainer, error) {\n\tvar size uintptr\n\terr := initializeProcThreadAttributeList(nil, maxAttrCount, 0, &size)\n\tif err != ERROR_INSUFFICIENT_BUFFER {\n\t\tif err == nil {\n\t\t\treturn nil, errorspkg.New(\"unable to query buffer size from InitializeProcThreadAttributeList\")\n\t\t}\n\t\treturn nil, err\n\t}\n\talloc, err := LocalAlloc(LMEM_FIXED, uint32(size))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\t// size is guaranteed to be ≥1 by InitializeProcThreadAttributeList.\n\tal := &ProcThreadAttributeListContainer{data: (*ProcThreadAttributeList)(unsafe.Pointer(alloc))}\n\terr = initializeProcThreadAttributeList(al.data, maxAttrCount, 0, &size)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn al, err\n}\n\n// Update modifies the ProcThreadAttributeList using UpdateProcThreadAttribute.\nfunc (al *ProcThreadAttributeListContainer) Update(attribute uintptr, value unsafe.Pointer, size uintptr) error {\n\tal.pointers = append(al.pointers, value)\n\treturn updateProcThreadAttribute(al.data, 0, attribute, value, size, nil, nil)\n}\n\n// Delete frees ProcThreadAttributeList's resources.\nfunc (al *ProcThreadAttributeListContainer) Delete() {\n\tdeleteProcThreadAttributeList(al.data)\n\tLocalFree(Handle(unsafe.Pointer(al.data)))\n\tal.data = nil\n\tal.pointers = nil\n}\n\n// List returns the actual ProcThreadAttributeList to be passed to StartupInfoEx.\nfunc (al *ProcThreadAttributeListContainer) List() *ProcThreadAttributeList {\n\treturn al.data\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/memory_windows.go",
    "content": "// Copyright 2017 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage windows\n\nconst (\n\tMEM_COMMIT      = 0x00001000\n\tMEM_RESERVE     = 0x00002000\n\tMEM_DECOMMIT    = 0x00004000\n\tMEM_RELEASE     = 0x00008000\n\tMEM_RESET       = 0x00080000\n\tMEM_TOP_DOWN    = 0x00100000\n\tMEM_WRITE_WATCH = 0x00200000\n\tMEM_PHYSICAL    = 0x00400000\n\tMEM_RESET_UNDO  = 0x01000000\n\tMEM_LARGE_PAGES = 0x20000000\n\n\tPAGE_NOACCESS          = 0x00000001\n\tPAGE_READONLY          = 0x00000002\n\tPAGE_READWRITE         = 0x00000004\n\tPAGE_WRITECOPY         = 0x00000008\n\tPAGE_EXECUTE           = 0x00000010\n\tPAGE_EXECUTE_READ      = 0x00000020\n\tPAGE_EXECUTE_READWRITE = 0x00000040\n\tPAGE_EXECUTE_WRITECOPY = 0x00000080\n\tPAGE_GUARD             = 0x00000100\n\tPAGE_NOCACHE           = 0x00000200\n\tPAGE_WRITECOMBINE      = 0x00000400\n\tPAGE_TARGETS_INVALID   = 0x40000000\n\tPAGE_TARGETS_NO_UPDATE = 0x40000000\n\n\tQUOTA_LIMITS_HARDWS_MIN_DISABLE = 0x00000002\n\tQUOTA_LIMITS_HARDWS_MIN_ENABLE  = 0x00000001\n\tQUOTA_LIMITS_HARDWS_MAX_DISABLE = 0x00000008\n\tQUOTA_LIMITS_HARDWS_MAX_ENABLE  = 0x00000004\n)\n\ntype MemoryBasicInformation struct {\n\tBaseAddress       uintptr\n\tAllocationBase    uintptr\n\tAllocationProtect uint32\n\tPartitionId       uint16\n\tRegionSize        uintptr\n\tState             uint32\n\tProtect           uint32\n\tType              uint32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/mkerrors.bash",
    "content": "#!/bin/bash\n\n# Copyright 2019 The Go Authors. All rights reserved.\n# Use of this source code is governed by a BSD-style\n# license that can be found in the LICENSE file.\n\nset -e\nshopt -s nullglob\n\nwinerror=\"$(printf '%s\\n' \"/mnt/c/Program Files (x86)/Windows Kits/\"/*/Include/*/shared/winerror.h | sort -Vr | head -n 1)\"\n[[ -n $winerror ]] || { echo \"Unable to find winerror.h\" >&2; exit 1; }\nntstatus=\"$(printf '%s\\n' \"/mnt/c/Program Files (x86)/Windows Kits/\"/*/Include/*/shared/ntstatus.h | sort -Vr | head -n 1)\"\n[[ -n $ntstatus ]] || { echo \"Unable to find ntstatus.h\" >&2; exit 1; }\n\ndeclare -A errors\n\n{\n\techo \"// Code generated by 'mkerrors.bash'; DO NOT EDIT.\"\n\techo\n\techo \"package windows\"\n\techo \"import \\\"syscall\\\"\"\n\techo \"const (\"\n\n\twhile read -r line; do\n\t\tunset vtype\n\t\tif [[ $line =~ ^#define\\ +([A-Z0-9_]+k?)\\ +([A-Z0-9_]+\\()?([A-Z][A-Z0-9_]+k?)\\)? ]]; then\n\t\t\tkey=\"${BASH_REMATCH[1]}\"\n\t\t\tvalue=\"${BASH_REMATCH[3]}\"\n\t\telif [[ $line =~ ^#define\\ +([A-Z0-9_]+k?)\\ +([A-Z0-9_]+\\()?((0x)?[0-9A-Fa-f]+)L?\\)? ]]; then\n\t\t\tkey=\"${BASH_REMATCH[1]}\"\n\t\t\tvalue=\"${BASH_REMATCH[3]}\"\n\t\t\tvtype=\"${BASH_REMATCH[2]}\"\n\t\telif [[ $line =~ ^#define\\ +([A-Z0-9_]+k?)\\ +\\(\\(([A-Z]+)\\)((0x)?[0-9A-Fa-f]+)L?\\) ]]; then\n\t\t\tkey=\"${BASH_REMATCH[1]}\"\n\t\t\tvalue=\"${BASH_REMATCH[3]}\"\n\t\t\tvtype=\"${BASH_REMATCH[2]}\"\n\t\telse\n\t\t\tcontinue\n\t\tfi\n\t\t[[ -n $key && -n $value ]] || continue\n\t\t[[ -z ${errors[\"$key\"]} ]] || continue\n\t\terrors[\"$key\"]=\"$value\"\n\t\tif [[ -v vtype ]]; then\n\t\t\tif [[ $key == FACILITY_* || $key == NO_ERROR ]]; then\n\t\t\t\tvtype=\"\"\n\t\t\telif [[ $vtype == *HANDLE* || $vtype == *HRESULT* ]]; then\n\t\t\t\tvtype=\"Handle\"\n\t\t\telse\n\t\t\t\tvtype=\"syscall.Errno\"\n\t\t\tfi\n\t\t\tlast_vtype=\"$vtype\"\n\t\telse\n\t\t\tvtype=\"\"\n\t\t\tif [[ $last_vtype == Handle && $value == NO_ERROR ]]; then\n\t\t\t\tvalue=\"S_OK\"\n\t\t\telif [[ $last_vtype == syscall.Errno && $value == NO_ERROR ]]; then\n\t\t\t\tvalue=\"ERROR_SUCCESS\"\n\t\t\tfi\n\t\tfi\n\n\t\techo \"$key $vtype = $value\"\n\tdone < \"$winerror\"\n\n\twhile read -r line; do\n\t\t[[ $line =~ ^#define\\ (STATUS_[^\\s]+)\\ +\\(\\(NTSTATUS\\)((0x)?[0-9a-fA-F]+)L?\\) ]] || continue\n\t\techo \"${BASH_REMATCH[1]} NTStatus = ${BASH_REMATCH[2]}\"\n\tdone < \"$ntstatus\"\n\n\techo \")\"\n} | gofmt > \"zerrors_windows.go\"\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/mkknownfolderids.bash",
    "content": "#!/bin/bash\n\n# Copyright 2019 The Go Authors. All rights reserved.\n# Use of this source code is governed by a BSD-style\n# license that can be found in the LICENSE file.\n\nset -e\nshopt -s nullglob\n\nknownfolders=\"$(printf '%s\\n' \"/mnt/c/Program Files (x86)/Windows Kits/\"/*/Include/*/um/KnownFolders.h | sort -Vr | head -n 1)\"\n[[ -n $knownfolders ]] || { echo \"Unable to find KnownFolders.h\" >&2; exit 1; }\n\n{\n\techo \"// Code generated by 'mkknownfolderids.bash'; DO NOT EDIT.\"\n\techo\n\techo \"package windows\"\n\techo \"type KNOWNFOLDERID GUID\"\n\techo \"var (\"\n\twhile read -r line; do\n\t\t[[ $line =~ DEFINE_KNOWN_FOLDER\\((FOLDERID_[^,]+),[\\t\\ ]*(0x[^,]+),[\\t\\ ]*(0x[^,]+),[\\t\\ ]*(0x[^,]+),[\\t\\ ]*(0x[^,]+),[\\t\\ ]*(0x[^,]+),[\\t\\ ]*(0x[^,]+),[\\t\\ ]*(0x[^,]+),[\\t\\ ]*(0x[^,]+),[\\t\\ ]*(0x[^,]+),[\\t\\ ]*(0x[^,]+),[\\t\\ ]*(0x[^,]+)\\) ]] || continue\n\t\tprintf \"%s = &KNOWNFOLDERID{0x%08x, 0x%04x, 0x%04x, [8]byte{0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x}}\\n\" \\\n\t\t\t\"${BASH_REMATCH[1]}\" $(( \"${BASH_REMATCH[2]}\" )) $(( \"${BASH_REMATCH[3]}\" )) $(( \"${BASH_REMATCH[4]}\" )) \\\n\t\t\t$(( \"${BASH_REMATCH[5]}\" )) $(( \"${BASH_REMATCH[6]}\" )) $(( \"${BASH_REMATCH[7]}\" )) $(( \"${BASH_REMATCH[8]}\" )) \\\n\t\t\t$(( \"${BASH_REMATCH[9]}\" )) $(( \"${BASH_REMATCH[10]}\" )) $(( \"${BASH_REMATCH[11]}\" )) $(( \"${BASH_REMATCH[12]}\" ))\n\tdone < \"$knownfolders\"\n\techo \")\"\n} | gofmt > \"zknownfolderids_windows.go\"\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/mksyscall.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build generate\n\npackage windows\n\n//go:generate go run golang.org/x/sys/windows/mkwinsyscall -output zsyscall_windows.go eventlog.go service.go syscall_windows.go security_windows.go setupapi_windows.go\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/race.go",
    "content": "// Copyright 2012 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build windows && race\n\npackage windows\n\nimport (\n\t\"runtime\"\n\t\"unsafe\"\n)\n\nconst raceenabled = true\n\nfunc raceAcquire(addr unsafe.Pointer) {\n\truntime.RaceAcquire(addr)\n}\n\nfunc raceReleaseMerge(addr unsafe.Pointer) {\n\truntime.RaceReleaseMerge(addr)\n}\n\nfunc raceReadRange(addr unsafe.Pointer, len int) {\n\truntime.RaceReadRange(addr, len)\n}\n\nfunc raceWriteRange(addr unsafe.Pointer, len int) {\n\truntime.RaceWriteRange(addr, len)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/race0.go",
    "content": "// Copyright 2012 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build windows && !race\n\npackage windows\n\nimport (\n\t\"unsafe\"\n)\n\nconst raceenabled = false\n\nfunc raceAcquire(addr unsafe.Pointer) {\n}\n\nfunc raceReleaseMerge(addr unsafe.Pointer) {\n}\n\nfunc raceReadRange(addr unsafe.Pointer, len int) {\n}\n\nfunc raceWriteRange(addr unsafe.Pointer, len int) {\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/security_windows.go",
    "content": "// Copyright 2012 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage windows\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nconst (\n\tNameUnknown          = 0\n\tNameFullyQualifiedDN = 1\n\tNameSamCompatible    = 2\n\tNameDisplay          = 3\n\tNameUniqueId         = 6\n\tNameCanonical        = 7\n\tNameUserPrincipal    = 8\n\tNameCanonicalEx      = 9\n\tNameServicePrincipal = 10\n\tNameDnsDomain        = 12\n)\n\n// This function returns 1 byte BOOLEAN rather than the 4 byte BOOL.\n// http://blogs.msdn.com/b/drnick/archive/2007/12/19/windows-and-upn-format-credentials.aspx\n//sys\tTranslateName(accName *uint16, accNameFormat uint32, desiredNameFormat uint32, translatedName *uint16, nSize *uint32) (err error) [failretval&0xff==0] = secur32.TranslateNameW\n//sys\tGetUserNameEx(nameFormat uint32, nameBuffre *uint16, nSize *uint32) (err error) [failretval&0xff==0] = secur32.GetUserNameExW\n\n// TranslateAccountName converts a directory service\n// object name from one format to another.\nfunc TranslateAccountName(username string, from, to uint32, initSize int) (string, error) {\n\tu, e := UTF16PtrFromString(username)\n\tif e != nil {\n\t\treturn \"\", e\n\t}\n\tn := uint32(50)\n\tfor {\n\t\tb := make([]uint16, n)\n\t\te = TranslateName(u, from, to, &b[0], &n)\n\t\tif e == nil {\n\t\t\treturn UTF16ToString(b[:n]), nil\n\t\t}\n\t\tif e != ERROR_INSUFFICIENT_BUFFER {\n\t\t\treturn \"\", e\n\t\t}\n\t\tif n <= uint32(len(b)) {\n\t\t\treturn \"\", e\n\t\t}\n\t}\n}\n\nconst (\n\t// do not reorder\n\tNetSetupUnknownStatus = iota\n\tNetSetupUnjoined\n\tNetSetupWorkgroupName\n\tNetSetupDomainName\n)\n\ntype UserInfo10 struct {\n\tName       *uint16\n\tComment    *uint16\n\tUsrComment *uint16\n\tFullName   *uint16\n}\n\n//sys\tNetUserGetInfo(serverName *uint16, userName *uint16, level uint32, buf **byte) (neterr error) = netapi32.NetUserGetInfo\n//sys\tNetGetJoinInformation(server *uint16, name **uint16, bufType *uint32) (neterr error) = netapi32.NetGetJoinInformation\n//sys\tNetApiBufferFree(buf *byte) (neterr error) = netapi32.NetApiBufferFree\n//sys   NetUserEnum(serverName *uint16, level uint32, filter uint32, buf **byte, prefMaxLen uint32, entriesRead *uint32, totalEntries *uint32, resumeHandle *uint32) (neterr error) = netapi32.NetUserEnum\n\nconst (\n\t// do not reorder\n\tSidTypeUser = 1 + iota\n\tSidTypeGroup\n\tSidTypeDomain\n\tSidTypeAlias\n\tSidTypeWellKnownGroup\n\tSidTypeDeletedAccount\n\tSidTypeInvalid\n\tSidTypeUnknown\n\tSidTypeComputer\n\tSidTypeLabel\n)\n\ntype SidIdentifierAuthority struct {\n\tValue [6]byte\n}\n\nvar (\n\tSECURITY_NULL_SID_AUTHORITY        = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 0}}\n\tSECURITY_WORLD_SID_AUTHORITY       = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 1}}\n\tSECURITY_LOCAL_SID_AUTHORITY       = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 2}}\n\tSECURITY_CREATOR_SID_AUTHORITY     = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 3}}\n\tSECURITY_NON_UNIQUE_AUTHORITY      = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 4}}\n\tSECURITY_NT_AUTHORITY              = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 5}}\n\tSECURITY_MANDATORY_LABEL_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 16}}\n)\n\nconst (\n\tSECURITY_NULL_RID                   = 0\n\tSECURITY_WORLD_RID                  = 0\n\tSECURITY_LOCAL_RID                  = 0\n\tSECURITY_CREATOR_OWNER_RID          = 0\n\tSECURITY_CREATOR_GROUP_RID          = 1\n\tSECURITY_DIALUP_RID                 = 1\n\tSECURITY_NETWORK_RID                = 2\n\tSECURITY_BATCH_RID                  = 3\n\tSECURITY_INTERACTIVE_RID            = 4\n\tSECURITY_LOGON_IDS_RID              = 5\n\tSECURITY_SERVICE_RID                = 6\n\tSECURITY_LOCAL_SYSTEM_RID           = 18\n\tSECURITY_BUILTIN_DOMAIN_RID         = 32\n\tSECURITY_PRINCIPAL_SELF_RID         = 10\n\tSECURITY_CREATOR_OWNER_SERVER_RID   = 0x2\n\tSECURITY_CREATOR_GROUP_SERVER_RID   = 0x3\n\tSECURITY_LOGON_IDS_RID_COUNT        = 0x3\n\tSECURITY_ANONYMOUS_LOGON_RID        = 0x7\n\tSECURITY_PROXY_RID                  = 0x8\n\tSECURITY_ENTERPRISE_CONTROLLERS_RID = 0x9\n\tSECURITY_SERVER_LOGON_RID           = SECURITY_ENTERPRISE_CONTROLLERS_RID\n\tSECURITY_AUTHENTICATED_USER_RID     = 0xb\n\tSECURITY_RESTRICTED_CODE_RID        = 0xc\n\tSECURITY_NT_NON_UNIQUE_RID          = 0x15\n)\n\n// Predefined domain-relative RIDs for local groups.\n// See https://msdn.microsoft.com/en-us/library/windows/desktop/aa379649(v=vs.85).aspx\nconst (\n\tDOMAIN_ALIAS_RID_ADMINS                         = 0x220\n\tDOMAIN_ALIAS_RID_USERS                          = 0x221\n\tDOMAIN_ALIAS_RID_GUESTS                         = 0x222\n\tDOMAIN_ALIAS_RID_POWER_USERS                    = 0x223\n\tDOMAIN_ALIAS_RID_ACCOUNT_OPS                    = 0x224\n\tDOMAIN_ALIAS_RID_SYSTEM_OPS                     = 0x225\n\tDOMAIN_ALIAS_RID_PRINT_OPS                      = 0x226\n\tDOMAIN_ALIAS_RID_BACKUP_OPS                     = 0x227\n\tDOMAIN_ALIAS_RID_REPLICATOR                     = 0x228\n\tDOMAIN_ALIAS_RID_RAS_SERVERS                    = 0x229\n\tDOMAIN_ALIAS_RID_PREW2KCOMPACCESS               = 0x22a\n\tDOMAIN_ALIAS_RID_REMOTE_DESKTOP_USERS           = 0x22b\n\tDOMAIN_ALIAS_RID_NETWORK_CONFIGURATION_OPS      = 0x22c\n\tDOMAIN_ALIAS_RID_INCOMING_FOREST_TRUST_BUILDERS = 0x22d\n\tDOMAIN_ALIAS_RID_MONITORING_USERS               = 0x22e\n\tDOMAIN_ALIAS_RID_LOGGING_USERS                  = 0x22f\n\tDOMAIN_ALIAS_RID_AUTHORIZATIONACCESS            = 0x230\n\tDOMAIN_ALIAS_RID_TS_LICENSE_SERVERS             = 0x231\n\tDOMAIN_ALIAS_RID_DCOM_USERS                     = 0x232\n\tDOMAIN_ALIAS_RID_IUSERS                         = 0x238\n\tDOMAIN_ALIAS_RID_CRYPTO_OPERATORS               = 0x239\n\tDOMAIN_ALIAS_RID_CACHEABLE_PRINCIPALS_GROUP     = 0x23b\n\tDOMAIN_ALIAS_RID_NON_CACHEABLE_PRINCIPALS_GROUP = 0x23c\n\tDOMAIN_ALIAS_RID_EVENT_LOG_READERS_GROUP        = 0x23d\n\tDOMAIN_ALIAS_RID_CERTSVC_DCOM_ACCESS_GROUP      = 0x23e\n)\n\n//sys\tLookupAccountSid(systemName *uint16, sid *SID, name *uint16, nameLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) = advapi32.LookupAccountSidW\n//sys\tLookupAccountName(systemName *uint16, accountName *uint16, sid *SID, sidLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) = advapi32.LookupAccountNameW\n//sys\tConvertSidToStringSid(sid *SID, stringSid **uint16) (err error) = advapi32.ConvertSidToStringSidW\n//sys\tConvertStringSidToSid(stringSid *uint16, sid **SID) (err error) = advapi32.ConvertStringSidToSidW\n//sys\tGetLengthSid(sid *SID) (len uint32) = advapi32.GetLengthSid\n//sys\tCopySid(destSidLen uint32, destSid *SID, srcSid *SID) (err error) = advapi32.CopySid\n//sys\tAllocateAndInitializeSid(identAuth *SidIdentifierAuthority, subAuth byte, subAuth0 uint32, subAuth1 uint32, subAuth2 uint32, subAuth3 uint32, subAuth4 uint32, subAuth5 uint32, subAuth6 uint32, subAuth7 uint32, sid **SID) (err error) = advapi32.AllocateAndInitializeSid\n//sys\tcreateWellKnownSid(sidType WELL_KNOWN_SID_TYPE, domainSid *SID, sid *SID, sizeSid *uint32) (err error) = advapi32.CreateWellKnownSid\n//sys\tisWellKnownSid(sid *SID, sidType WELL_KNOWN_SID_TYPE) (isWellKnown bool) = advapi32.IsWellKnownSid\n//sys\tFreeSid(sid *SID) (err error) [failretval!=0] = advapi32.FreeSid\n//sys\tEqualSid(sid1 *SID, sid2 *SID) (isEqual bool) = advapi32.EqualSid\n//sys\tgetSidIdentifierAuthority(sid *SID) (authority *SidIdentifierAuthority) = advapi32.GetSidIdentifierAuthority\n//sys\tgetSidSubAuthorityCount(sid *SID) (count *uint8) = advapi32.GetSidSubAuthorityCount\n//sys\tgetSidSubAuthority(sid *SID, index uint32) (subAuthority *uint32) = advapi32.GetSidSubAuthority\n//sys\tisValidSid(sid *SID) (isValid bool) = advapi32.IsValidSid\n\n// The security identifier (SID) structure is a variable-length\n// structure used to uniquely identify users or groups.\ntype SID struct{}\n\n// StringToSid converts a string-format security identifier\n// SID into a valid, functional SID.\nfunc StringToSid(s string) (*SID, error) {\n\tvar sid *SID\n\tp, e := UTF16PtrFromString(s)\n\tif e != nil {\n\t\treturn nil, e\n\t}\n\te = ConvertStringSidToSid(p, &sid)\n\tif e != nil {\n\t\treturn nil, e\n\t}\n\tdefer LocalFree((Handle)(unsafe.Pointer(sid)))\n\treturn sid.Copy()\n}\n\n// LookupSID retrieves a security identifier SID for the account\n// and the name of the domain on which the account was found.\n// System specify target computer to search.\nfunc LookupSID(system, account string) (sid *SID, domain string, accType uint32, err error) {\n\tif len(account) == 0 {\n\t\treturn nil, \"\", 0, syscall.EINVAL\n\t}\n\tacc, e := UTF16PtrFromString(account)\n\tif e != nil {\n\t\treturn nil, \"\", 0, e\n\t}\n\tvar sys *uint16\n\tif len(system) > 0 {\n\t\tsys, e = UTF16PtrFromString(system)\n\t\tif e != nil {\n\t\t\treturn nil, \"\", 0, e\n\t\t}\n\t}\n\tn := uint32(50)\n\tdn := uint32(50)\n\tfor {\n\t\tb := make([]byte, n)\n\t\tdb := make([]uint16, dn)\n\t\tsid = (*SID)(unsafe.Pointer(&b[0]))\n\t\te = LookupAccountName(sys, acc, sid, &n, &db[0], &dn, &accType)\n\t\tif e == nil {\n\t\t\treturn sid, UTF16ToString(db), accType, nil\n\t\t}\n\t\tif e != ERROR_INSUFFICIENT_BUFFER {\n\t\t\treturn nil, \"\", 0, e\n\t\t}\n\t\tif n <= uint32(len(b)) {\n\t\t\treturn nil, \"\", 0, e\n\t\t}\n\t}\n}\n\n// String converts SID to a string format suitable for display, storage, or transmission.\nfunc (sid *SID) String() string {\n\tvar s *uint16\n\te := ConvertSidToStringSid(sid, &s)\n\tif e != nil {\n\t\treturn \"\"\n\t}\n\tdefer LocalFree((Handle)(unsafe.Pointer(s)))\n\treturn UTF16ToString((*[256]uint16)(unsafe.Pointer(s))[:])\n}\n\n// Len returns the length, in bytes, of a valid security identifier SID.\nfunc (sid *SID) Len() int {\n\treturn int(GetLengthSid(sid))\n}\n\n// Copy creates a duplicate of security identifier SID.\nfunc (sid *SID) Copy() (*SID, error) {\n\tb := make([]byte, sid.Len())\n\tsid2 := (*SID)(unsafe.Pointer(&b[0]))\n\te := CopySid(uint32(len(b)), sid2, sid)\n\tif e != nil {\n\t\treturn nil, e\n\t}\n\treturn sid2, nil\n}\n\n// IdentifierAuthority returns the identifier authority of the SID.\nfunc (sid *SID) IdentifierAuthority() SidIdentifierAuthority {\n\treturn *getSidIdentifierAuthority(sid)\n}\n\n// SubAuthorityCount returns the number of sub-authorities in the SID.\nfunc (sid *SID) SubAuthorityCount() uint8 {\n\treturn *getSidSubAuthorityCount(sid)\n}\n\n// SubAuthority returns the sub-authority of the SID as specified by\n// the index, which must be less than sid.SubAuthorityCount().\nfunc (sid *SID) SubAuthority(idx uint32) uint32 {\n\tif idx >= uint32(sid.SubAuthorityCount()) {\n\t\tpanic(\"sub-authority index out of range\")\n\t}\n\treturn *getSidSubAuthority(sid, idx)\n}\n\n// IsValid returns whether the SID has a valid revision and length.\nfunc (sid *SID) IsValid() bool {\n\treturn isValidSid(sid)\n}\n\n// Equals compares two SIDs for equality.\nfunc (sid *SID) Equals(sid2 *SID) bool {\n\treturn EqualSid(sid, sid2)\n}\n\n// IsWellKnown determines whether the SID matches the well-known sidType.\nfunc (sid *SID) IsWellKnown(sidType WELL_KNOWN_SID_TYPE) bool {\n\treturn isWellKnownSid(sid, sidType)\n}\n\n// LookupAccount retrieves the name of the account for this SID\n// and the name of the first domain on which this SID is found.\n// System specify target computer to search for.\nfunc (sid *SID) LookupAccount(system string) (account, domain string, accType uint32, err error) {\n\tvar sys *uint16\n\tif len(system) > 0 {\n\t\tsys, err = UTF16PtrFromString(system)\n\t\tif err != nil {\n\t\t\treturn \"\", \"\", 0, err\n\t\t}\n\t}\n\tn := uint32(50)\n\tdn := uint32(50)\n\tfor {\n\t\tb := make([]uint16, n)\n\t\tdb := make([]uint16, dn)\n\t\te := LookupAccountSid(sys, sid, &b[0], &n, &db[0], &dn, &accType)\n\t\tif e == nil {\n\t\t\treturn UTF16ToString(b), UTF16ToString(db), accType, nil\n\t\t}\n\t\tif e != ERROR_INSUFFICIENT_BUFFER {\n\t\t\treturn \"\", \"\", 0, e\n\t\t}\n\t\tif n <= uint32(len(b)) {\n\t\t\treturn \"\", \"\", 0, e\n\t\t}\n\t}\n}\n\n// Various types of pre-specified SIDs that can be synthesized and compared at runtime.\ntype WELL_KNOWN_SID_TYPE uint32\n\nconst (\n\tWinNullSid                                    = 0\n\tWinWorldSid                                   = 1\n\tWinLocalSid                                   = 2\n\tWinCreatorOwnerSid                            = 3\n\tWinCreatorGroupSid                            = 4\n\tWinCreatorOwnerServerSid                      = 5\n\tWinCreatorGroupServerSid                      = 6\n\tWinNtAuthoritySid                             = 7\n\tWinDialupSid                                  = 8\n\tWinNetworkSid                                 = 9\n\tWinBatchSid                                   = 10\n\tWinInteractiveSid                             = 11\n\tWinServiceSid                                 = 12\n\tWinAnonymousSid                               = 13\n\tWinProxySid                                   = 14\n\tWinEnterpriseControllersSid                   = 15\n\tWinSelfSid                                    = 16\n\tWinAuthenticatedUserSid                       = 17\n\tWinRestrictedCodeSid                          = 18\n\tWinTerminalServerSid                          = 19\n\tWinRemoteLogonIdSid                           = 20\n\tWinLogonIdsSid                                = 21\n\tWinLocalSystemSid                             = 22\n\tWinLocalServiceSid                            = 23\n\tWinNetworkServiceSid                          = 24\n\tWinBuiltinDomainSid                           = 25\n\tWinBuiltinAdministratorsSid                   = 26\n\tWinBuiltinUsersSid                            = 27\n\tWinBuiltinGuestsSid                           = 28\n\tWinBuiltinPowerUsersSid                       = 29\n\tWinBuiltinAccountOperatorsSid                 = 30\n\tWinBuiltinSystemOperatorsSid                  = 31\n\tWinBuiltinPrintOperatorsSid                   = 32\n\tWinBuiltinBackupOperatorsSid                  = 33\n\tWinBuiltinReplicatorSid                       = 34\n\tWinBuiltinPreWindows2000CompatibleAccessSid   = 35\n\tWinBuiltinRemoteDesktopUsersSid               = 36\n\tWinBuiltinNetworkConfigurationOperatorsSid    = 37\n\tWinAccountAdministratorSid                    = 38\n\tWinAccountGuestSid                            = 39\n\tWinAccountKrbtgtSid                           = 40\n\tWinAccountDomainAdminsSid                     = 41\n\tWinAccountDomainUsersSid                      = 42\n\tWinAccountDomainGuestsSid                     = 43\n\tWinAccountComputersSid                        = 44\n\tWinAccountControllersSid                      = 45\n\tWinAccountCertAdminsSid                       = 46\n\tWinAccountSchemaAdminsSid                     = 47\n\tWinAccountEnterpriseAdminsSid                 = 48\n\tWinAccountPolicyAdminsSid                     = 49\n\tWinAccountRasAndIasServersSid                 = 50\n\tWinNTLMAuthenticationSid                      = 51\n\tWinDigestAuthenticationSid                    = 52\n\tWinSChannelAuthenticationSid                  = 53\n\tWinThisOrganizationSid                        = 54\n\tWinOtherOrganizationSid                       = 55\n\tWinBuiltinIncomingForestTrustBuildersSid      = 56\n\tWinBuiltinPerfMonitoringUsersSid              = 57\n\tWinBuiltinPerfLoggingUsersSid                 = 58\n\tWinBuiltinAuthorizationAccessSid              = 59\n\tWinBuiltinTerminalServerLicenseServersSid     = 60\n\tWinBuiltinDCOMUsersSid                        = 61\n\tWinBuiltinIUsersSid                           = 62\n\tWinIUserSid                                   = 63\n\tWinBuiltinCryptoOperatorsSid                  = 64\n\tWinUntrustedLabelSid                          = 65\n\tWinLowLabelSid                                = 66\n\tWinMediumLabelSid                             = 67\n\tWinHighLabelSid                               = 68\n\tWinSystemLabelSid                             = 69\n\tWinWriteRestrictedCodeSid                     = 70\n\tWinCreatorOwnerRightsSid                      = 71\n\tWinCacheablePrincipalsGroupSid                = 72\n\tWinNonCacheablePrincipalsGroupSid             = 73\n\tWinEnterpriseReadonlyControllersSid           = 74\n\tWinAccountReadonlyControllersSid              = 75\n\tWinBuiltinEventLogReadersGroup                = 76\n\tWinNewEnterpriseReadonlyControllersSid        = 77\n\tWinBuiltinCertSvcDComAccessGroup              = 78\n\tWinMediumPlusLabelSid                         = 79\n\tWinLocalLogonSid                              = 80\n\tWinConsoleLogonSid                            = 81\n\tWinThisOrganizationCertificateSid             = 82\n\tWinApplicationPackageAuthoritySid             = 83\n\tWinBuiltinAnyPackageSid                       = 84\n\tWinCapabilityInternetClientSid                = 85\n\tWinCapabilityInternetClientServerSid          = 86\n\tWinCapabilityPrivateNetworkClientServerSid    = 87\n\tWinCapabilityPicturesLibrarySid               = 88\n\tWinCapabilityVideosLibrarySid                 = 89\n\tWinCapabilityMusicLibrarySid                  = 90\n\tWinCapabilityDocumentsLibrarySid              = 91\n\tWinCapabilitySharedUserCertificatesSid        = 92\n\tWinCapabilityEnterpriseAuthenticationSid      = 93\n\tWinCapabilityRemovableStorageSid              = 94\n\tWinBuiltinRDSRemoteAccessServersSid           = 95\n\tWinBuiltinRDSEndpointServersSid               = 96\n\tWinBuiltinRDSManagementServersSid             = 97\n\tWinUserModeDriversSid                         = 98\n\tWinBuiltinHyperVAdminsSid                     = 99\n\tWinAccountCloneableControllersSid             = 100\n\tWinBuiltinAccessControlAssistanceOperatorsSid = 101\n\tWinBuiltinRemoteManagementUsersSid            = 102\n\tWinAuthenticationAuthorityAssertedSid         = 103\n\tWinAuthenticationServiceAssertedSid           = 104\n\tWinLocalAccountSid                            = 105\n\tWinLocalAccountAndAdministratorSid            = 106\n\tWinAccountProtectedUsersSid                   = 107\n\tWinCapabilityAppointmentsSid                  = 108\n\tWinCapabilityContactsSid                      = 109\n\tWinAccountDefaultSystemManagedSid             = 110\n\tWinBuiltinDefaultSystemManagedGroupSid        = 111\n\tWinBuiltinStorageReplicaAdminsSid             = 112\n\tWinAccountKeyAdminsSid                        = 113\n\tWinAccountEnterpriseKeyAdminsSid              = 114\n\tWinAuthenticationKeyTrustSid                  = 115\n\tWinAuthenticationKeyPropertyMFASid            = 116\n\tWinAuthenticationKeyPropertyAttestationSid    = 117\n\tWinAuthenticationFreshKeyAuthSid              = 118\n\tWinBuiltinDeviceOwnersSid                     = 119\n)\n\n// Creates a SID for a well-known predefined alias, generally using the constants of the form\n// Win*Sid, for the local machine.\nfunc CreateWellKnownSid(sidType WELL_KNOWN_SID_TYPE) (*SID, error) {\n\treturn CreateWellKnownDomainSid(sidType, nil)\n}\n\n// Creates a SID for a well-known predefined alias, generally using the constants of the form\n// Win*Sid, for the domain specified by the domainSid parameter.\nfunc CreateWellKnownDomainSid(sidType WELL_KNOWN_SID_TYPE, domainSid *SID) (*SID, error) {\n\tn := uint32(50)\n\tfor {\n\t\tb := make([]byte, n)\n\t\tsid := (*SID)(unsafe.Pointer(&b[0]))\n\t\terr := createWellKnownSid(sidType, domainSid, sid, &n)\n\t\tif err == nil {\n\t\t\treturn sid, nil\n\t\t}\n\t\tif err != ERROR_INSUFFICIENT_BUFFER {\n\t\t\treturn nil, err\n\t\t}\n\t\tif n <= uint32(len(b)) {\n\t\t\treturn nil, err\n\t\t}\n\t}\n}\n\nconst (\n\t// do not reorder\n\tTOKEN_ASSIGN_PRIMARY = 1 << iota\n\tTOKEN_DUPLICATE\n\tTOKEN_IMPERSONATE\n\tTOKEN_QUERY\n\tTOKEN_QUERY_SOURCE\n\tTOKEN_ADJUST_PRIVILEGES\n\tTOKEN_ADJUST_GROUPS\n\tTOKEN_ADJUST_DEFAULT\n\tTOKEN_ADJUST_SESSIONID\n\n\tTOKEN_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED |\n\t\tTOKEN_ASSIGN_PRIMARY |\n\t\tTOKEN_DUPLICATE |\n\t\tTOKEN_IMPERSONATE |\n\t\tTOKEN_QUERY |\n\t\tTOKEN_QUERY_SOURCE |\n\t\tTOKEN_ADJUST_PRIVILEGES |\n\t\tTOKEN_ADJUST_GROUPS |\n\t\tTOKEN_ADJUST_DEFAULT |\n\t\tTOKEN_ADJUST_SESSIONID\n\tTOKEN_READ  = STANDARD_RIGHTS_READ | TOKEN_QUERY\n\tTOKEN_WRITE = STANDARD_RIGHTS_WRITE |\n\t\tTOKEN_ADJUST_PRIVILEGES |\n\t\tTOKEN_ADJUST_GROUPS |\n\t\tTOKEN_ADJUST_DEFAULT\n\tTOKEN_EXECUTE = STANDARD_RIGHTS_EXECUTE\n)\n\nconst (\n\t// do not reorder\n\tTokenUser = 1 + iota\n\tTokenGroups\n\tTokenPrivileges\n\tTokenOwner\n\tTokenPrimaryGroup\n\tTokenDefaultDacl\n\tTokenSource\n\tTokenType\n\tTokenImpersonationLevel\n\tTokenStatistics\n\tTokenRestrictedSids\n\tTokenSessionId\n\tTokenGroupsAndPrivileges\n\tTokenSessionReference\n\tTokenSandBoxInert\n\tTokenAuditPolicy\n\tTokenOrigin\n\tTokenElevationType\n\tTokenLinkedToken\n\tTokenElevation\n\tTokenHasRestrictions\n\tTokenAccessInformation\n\tTokenVirtualizationAllowed\n\tTokenVirtualizationEnabled\n\tTokenIntegrityLevel\n\tTokenUIAccess\n\tTokenMandatoryPolicy\n\tTokenLogonSid\n\tMaxTokenInfoClass\n)\n\n// Group attributes inside of Tokengroups.Groups[i].Attributes\nconst (\n\tSE_GROUP_MANDATORY          = 0x00000001\n\tSE_GROUP_ENABLED_BY_DEFAULT = 0x00000002\n\tSE_GROUP_ENABLED            = 0x00000004\n\tSE_GROUP_OWNER              = 0x00000008\n\tSE_GROUP_USE_FOR_DENY_ONLY  = 0x00000010\n\tSE_GROUP_INTEGRITY          = 0x00000020\n\tSE_GROUP_INTEGRITY_ENABLED  = 0x00000040\n\tSE_GROUP_LOGON_ID           = 0xC0000000\n\tSE_GROUP_RESOURCE           = 0x20000000\n\tSE_GROUP_VALID_ATTRIBUTES   = SE_GROUP_MANDATORY | SE_GROUP_ENABLED_BY_DEFAULT | SE_GROUP_ENABLED | SE_GROUP_OWNER | SE_GROUP_USE_FOR_DENY_ONLY | SE_GROUP_LOGON_ID | SE_GROUP_RESOURCE | SE_GROUP_INTEGRITY | SE_GROUP_INTEGRITY_ENABLED\n)\n\n// Privilege attributes\nconst (\n\tSE_PRIVILEGE_ENABLED_BY_DEFAULT = 0x00000001\n\tSE_PRIVILEGE_ENABLED            = 0x00000002\n\tSE_PRIVILEGE_REMOVED            = 0x00000004\n\tSE_PRIVILEGE_USED_FOR_ACCESS    = 0x80000000\n\tSE_PRIVILEGE_VALID_ATTRIBUTES   = SE_PRIVILEGE_ENABLED_BY_DEFAULT | SE_PRIVILEGE_ENABLED | SE_PRIVILEGE_REMOVED | SE_PRIVILEGE_USED_FOR_ACCESS\n)\n\n// Token types\nconst (\n\tTokenPrimary       = 1\n\tTokenImpersonation = 2\n)\n\n// Impersonation levels\nconst (\n\tSecurityAnonymous      = 0\n\tSecurityIdentification = 1\n\tSecurityImpersonation  = 2\n\tSecurityDelegation     = 3\n)\n\ntype LUID struct {\n\tLowPart  uint32\n\tHighPart int32\n}\n\ntype LUIDAndAttributes struct {\n\tLuid       LUID\n\tAttributes uint32\n}\n\ntype SIDAndAttributes struct {\n\tSid        *SID\n\tAttributes uint32\n}\n\ntype Tokenuser struct {\n\tUser SIDAndAttributes\n}\n\ntype Tokenprimarygroup struct {\n\tPrimaryGroup *SID\n}\n\ntype Tokengroups struct {\n\tGroupCount uint32\n\tGroups     [1]SIDAndAttributes // Use AllGroups() for iterating.\n}\n\n// AllGroups returns a slice that can be used to iterate over the groups in g.\nfunc (g *Tokengroups) AllGroups() []SIDAndAttributes {\n\treturn (*[(1 << 28) - 1]SIDAndAttributes)(unsafe.Pointer(&g.Groups[0]))[:g.GroupCount:g.GroupCount]\n}\n\ntype Tokenprivileges struct {\n\tPrivilegeCount uint32\n\tPrivileges     [1]LUIDAndAttributes // Use AllPrivileges() for iterating.\n}\n\n// AllPrivileges returns a slice that can be used to iterate over the privileges in p.\nfunc (p *Tokenprivileges) AllPrivileges() []LUIDAndAttributes {\n\treturn (*[(1 << 27) - 1]LUIDAndAttributes)(unsafe.Pointer(&p.Privileges[0]))[:p.PrivilegeCount:p.PrivilegeCount]\n}\n\ntype Tokenmandatorylabel struct {\n\tLabel SIDAndAttributes\n}\n\nfunc (tml *Tokenmandatorylabel) Size() uint32 {\n\treturn uint32(unsafe.Sizeof(Tokenmandatorylabel{})) + GetLengthSid(tml.Label.Sid)\n}\n\n// Authorization Functions\n//sys\tcheckTokenMembership(tokenHandle Token, sidToCheck *SID, isMember *int32) (err error) = advapi32.CheckTokenMembership\n//sys\tisTokenRestricted(tokenHandle Token) (ret bool, err error) [!failretval] = advapi32.IsTokenRestricted\n//sys\tOpenProcessToken(process Handle, access uint32, token *Token) (err error) = advapi32.OpenProcessToken\n//sys\tOpenThreadToken(thread Handle, access uint32, openAsSelf bool, token *Token) (err error) = advapi32.OpenThreadToken\n//sys\tImpersonateSelf(impersonationlevel uint32) (err error) = advapi32.ImpersonateSelf\n//sys\tRevertToSelf() (err error) = advapi32.RevertToSelf\n//sys\tSetThreadToken(thread *Handle, token Token) (err error) = advapi32.SetThreadToken\n//sys\tLookupPrivilegeValue(systemname *uint16, name *uint16, luid *LUID) (err error) = advapi32.LookupPrivilegeValueW\n//sys\tAdjustTokenPrivileges(token Token, disableAllPrivileges bool, newstate *Tokenprivileges, buflen uint32, prevstate *Tokenprivileges, returnlen *uint32) (err error) = advapi32.AdjustTokenPrivileges\n//sys\tAdjustTokenGroups(token Token, resetToDefault bool, newstate *Tokengroups, buflen uint32, prevstate *Tokengroups, returnlen *uint32) (err error) = advapi32.AdjustTokenGroups\n//sys\tGetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32, returnedLen *uint32) (err error) = advapi32.GetTokenInformation\n//sys\tSetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32) (err error) = advapi32.SetTokenInformation\n//sys\tDuplicateTokenEx(existingToken Token, desiredAccess uint32, tokenAttributes *SecurityAttributes, impersonationLevel uint32, tokenType uint32, newToken *Token) (err error) = advapi32.DuplicateTokenEx\n//sys\tGetUserProfileDirectory(t Token, dir *uint16, dirLen *uint32) (err error) = userenv.GetUserProfileDirectoryW\n//sys\tgetSystemDirectory(dir *uint16, dirLen uint32) (len uint32, err error) = kernel32.GetSystemDirectoryW\n//sys\tgetWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) = kernel32.GetWindowsDirectoryW\n//sys\tgetSystemWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) = kernel32.GetSystemWindowsDirectoryW\n\n// An access token contains the security information for a logon session.\n// The system creates an access token when a user logs on, and every\n// process executed on behalf of the user has a copy of the token.\n// The token identifies the user, the user's groups, and the user's\n// privileges. The system uses the token to control access to securable\n// objects and to control the ability of the user to perform various\n// system-related operations on the local computer.\ntype Token Handle\n\n// OpenCurrentProcessToken opens an access token associated with current\n// process with TOKEN_QUERY access. It is a real token that needs to be closed.\n//\n// Deprecated: Explicitly call OpenProcessToken(CurrentProcess(), ...)\n// with the desired access instead, or use GetCurrentProcessToken for a\n// TOKEN_QUERY token.\nfunc OpenCurrentProcessToken() (Token, error) {\n\tvar token Token\n\terr := OpenProcessToken(CurrentProcess(), TOKEN_QUERY, &token)\n\treturn token, err\n}\n\n// GetCurrentProcessToken returns the access token associated with\n// the current process. It is a pseudo token that does not need\n// to be closed.\nfunc GetCurrentProcessToken() Token {\n\treturn Token(^uintptr(4 - 1))\n}\n\n// GetCurrentThreadToken return the access token associated with\n// the current thread. It is a pseudo token that does not need\n// to be closed.\nfunc GetCurrentThreadToken() Token {\n\treturn Token(^uintptr(5 - 1))\n}\n\n// GetCurrentThreadEffectiveToken returns the effective access token\n// associated with the current thread. It is a pseudo token that does\n// not need to be closed.\nfunc GetCurrentThreadEffectiveToken() Token {\n\treturn Token(^uintptr(6 - 1))\n}\n\n// Close releases access to access token.\nfunc (t Token) Close() error {\n\treturn CloseHandle(Handle(t))\n}\n\n// getInfo retrieves a specified type of information about an access token.\nfunc (t Token) getInfo(class uint32, initSize int) (unsafe.Pointer, error) {\n\tn := uint32(initSize)\n\tfor {\n\t\tb := make([]byte, n)\n\t\te := GetTokenInformation(t, class, &b[0], uint32(len(b)), &n)\n\t\tif e == nil {\n\t\t\treturn unsafe.Pointer(&b[0]), nil\n\t\t}\n\t\tif e != ERROR_INSUFFICIENT_BUFFER {\n\t\t\treturn nil, e\n\t\t}\n\t\tif n <= uint32(len(b)) {\n\t\t\treturn nil, e\n\t\t}\n\t}\n}\n\n// GetTokenUser retrieves access token t user account information.\nfunc (t Token) GetTokenUser() (*Tokenuser, error) {\n\ti, e := t.getInfo(TokenUser, 50)\n\tif e != nil {\n\t\treturn nil, e\n\t}\n\treturn (*Tokenuser)(i), nil\n}\n\n// GetTokenGroups retrieves group accounts associated with access token t.\nfunc (t Token) GetTokenGroups() (*Tokengroups, error) {\n\ti, e := t.getInfo(TokenGroups, 50)\n\tif e != nil {\n\t\treturn nil, e\n\t}\n\treturn (*Tokengroups)(i), nil\n}\n\n// GetTokenPrimaryGroup retrieves access token t primary group information.\n// A pointer to a SID structure representing a group that will become\n// the primary group of any objects created by a process using this access token.\nfunc (t Token) GetTokenPrimaryGroup() (*Tokenprimarygroup, error) {\n\ti, e := t.getInfo(TokenPrimaryGroup, 50)\n\tif e != nil {\n\t\treturn nil, e\n\t}\n\treturn (*Tokenprimarygroup)(i), nil\n}\n\n// GetUserProfileDirectory retrieves path to the\n// root directory of the access token t user's profile.\nfunc (t Token) GetUserProfileDirectory() (string, error) {\n\tn := uint32(100)\n\tfor {\n\t\tb := make([]uint16, n)\n\t\te := GetUserProfileDirectory(t, &b[0], &n)\n\t\tif e == nil {\n\t\t\treturn UTF16ToString(b), nil\n\t\t}\n\t\tif e != ERROR_INSUFFICIENT_BUFFER {\n\t\t\treturn \"\", e\n\t\t}\n\t\tif n <= uint32(len(b)) {\n\t\t\treturn \"\", e\n\t\t}\n\t}\n}\n\n// IsElevated returns whether the current token is elevated from a UAC perspective.\nfunc (token Token) IsElevated() bool {\n\tvar isElevated uint32\n\tvar outLen uint32\n\terr := GetTokenInformation(token, TokenElevation, (*byte)(unsafe.Pointer(&isElevated)), uint32(unsafe.Sizeof(isElevated)), &outLen)\n\tif err != nil {\n\t\treturn false\n\t}\n\treturn outLen == uint32(unsafe.Sizeof(isElevated)) && isElevated != 0\n}\n\n// GetLinkedToken returns the linked token, which may be an elevated UAC token.\nfunc (token Token) GetLinkedToken() (Token, error) {\n\tvar linkedToken Token\n\tvar outLen uint32\n\terr := GetTokenInformation(token, TokenLinkedToken, (*byte)(unsafe.Pointer(&linkedToken)), uint32(unsafe.Sizeof(linkedToken)), &outLen)\n\tif err != nil {\n\t\treturn Token(0), err\n\t}\n\treturn linkedToken, nil\n}\n\n// GetSystemDirectory retrieves the path to current location of the system\n// directory, which is typically, though not always, `C:\\Windows\\System32`.\nfunc GetSystemDirectory() (string, error) {\n\tn := uint32(MAX_PATH)\n\tfor {\n\t\tb := make([]uint16, n)\n\t\tl, e := getSystemDirectory(&b[0], n)\n\t\tif e != nil {\n\t\t\treturn \"\", e\n\t\t}\n\t\tif l <= n {\n\t\t\treturn UTF16ToString(b[:l]), nil\n\t\t}\n\t\tn = l\n\t}\n}\n\n// GetWindowsDirectory retrieves the path to current location of the Windows\n// directory, which is typically, though not always, `C:\\Windows`. This may\n// be a private user directory in the case that the application is running\n// under a terminal server.\nfunc GetWindowsDirectory() (string, error) {\n\tn := uint32(MAX_PATH)\n\tfor {\n\t\tb := make([]uint16, n)\n\t\tl, e := getWindowsDirectory(&b[0], n)\n\t\tif e != nil {\n\t\t\treturn \"\", e\n\t\t}\n\t\tif l <= n {\n\t\t\treturn UTF16ToString(b[:l]), nil\n\t\t}\n\t\tn = l\n\t}\n}\n\n// GetSystemWindowsDirectory retrieves the path to current location of the\n// Windows directory, which is typically, though not always, `C:\\Windows`.\nfunc GetSystemWindowsDirectory() (string, error) {\n\tn := uint32(MAX_PATH)\n\tfor {\n\t\tb := make([]uint16, n)\n\t\tl, e := getSystemWindowsDirectory(&b[0], n)\n\t\tif e != nil {\n\t\t\treturn \"\", e\n\t\t}\n\t\tif l <= n {\n\t\t\treturn UTF16ToString(b[:l]), nil\n\t\t}\n\t\tn = l\n\t}\n}\n\n// IsMember reports whether the access token t is a member of the provided SID.\nfunc (t Token) IsMember(sid *SID) (bool, error) {\n\tvar b int32\n\tif e := checkTokenMembership(t, sid, &b); e != nil {\n\t\treturn false, e\n\t}\n\treturn b != 0, nil\n}\n\n// IsRestricted reports whether the access token t is a restricted token.\nfunc (t Token) IsRestricted() (isRestricted bool, err error) {\n\tisRestricted, err = isTokenRestricted(t)\n\tif !isRestricted && err == syscall.EINVAL {\n\t\t// If err is EINVAL, this returned ERROR_SUCCESS indicating a non-restricted token.\n\t\terr = nil\n\t}\n\treturn\n}\n\nconst (\n\tWTS_CONSOLE_CONNECT        = 0x1\n\tWTS_CONSOLE_DISCONNECT     = 0x2\n\tWTS_REMOTE_CONNECT         = 0x3\n\tWTS_REMOTE_DISCONNECT      = 0x4\n\tWTS_SESSION_LOGON          = 0x5\n\tWTS_SESSION_LOGOFF         = 0x6\n\tWTS_SESSION_LOCK           = 0x7\n\tWTS_SESSION_UNLOCK         = 0x8\n\tWTS_SESSION_REMOTE_CONTROL = 0x9\n\tWTS_SESSION_CREATE         = 0xa\n\tWTS_SESSION_TERMINATE      = 0xb\n)\n\nconst (\n\tWTSActive       = 0\n\tWTSConnected    = 1\n\tWTSConnectQuery = 2\n\tWTSShadow       = 3\n\tWTSDisconnected = 4\n\tWTSIdle         = 5\n\tWTSListen       = 6\n\tWTSReset        = 7\n\tWTSDown         = 8\n\tWTSInit         = 9\n)\n\ntype WTSSESSION_NOTIFICATION struct {\n\tSize      uint32\n\tSessionID uint32\n}\n\ntype WTS_SESSION_INFO struct {\n\tSessionID         uint32\n\tWindowStationName *uint16\n\tState             uint32\n}\n\n//sys WTSQueryUserToken(session uint32, token *Token) (err error) = wtsapi32.WTSQueryUserToken\n//sys WTSEnumerateSessions(handle Handle, reserved uint32, version uint32, sessions **WTS_SESSION_INFO, count *uint32) (err error) = wtsapi32.WTSEnumerateSessionsW\n//sys WTSFreeMemory(ptr uintptr) = wtsapi32.WTSFreeMemory\n//sys WTSGetActiveConsoleSessionId() (sessionID uint32)\n\ntype ACL struct {\n\taclRevision byte\n\tsbz1        byte\n\taclSize     uint16\n\tAceCount    uint16\n\tsbz2        uint16\n}\n\ntype SECURITY_DESCRIPTOR struct {\n\trevision byte\n\tsbz1     byte\n\tcontrol  SECURITY_DESCRIPTOR_CONTROL\n\towner    *SID\n\tgroup    *SID\n\tsacl     *ACL\n\tdacl     *ACL\n}\n\ntype SECURITY_QUALITY_OF_SERVICE struct {\n\tLength              uint32\n\tImpersonationLevel  uint32\n\tContextTrackingMode byte\n\tEffectiveOnly       byte\n}\n\n// Constants for the ContextTrackingMode field of SECURITY_QUALITY_OF_SERVICE.\nconst (\n\tSECURITY_STATIC_TRACKING  = 0\n\tSECURITY_DYNAMIC_TRACKING = 1\n)\n\ntype SecurityAttributes struct {\n\tLength             uint32\n\tSecurityDescriptor *SECURITY_DESCRIPTOR\n\tInheritHandle      uint32\n}\n\ntype SE_OBJECT_TYPE uint32\n\n// Constants for type SE_OBJECT_TYPE\nconst (\n\tSE_UNKNOWN_OBJECT_TYPE     = 0\n\tSE_FILE_OBJECT             = 1\n\tSE_SERVICE                 = 2\n\tSE_PRINTER                 = 3\n\tSE_REGISTRY_KEY            = 4\n\tSE_LMSHARE                 = 5\n\tSE_KERNEL_OBJECT           = 6\n\tSE_WINDOW_OBJECT           = 7\n\tSE_DS_OBJECT               = 8\n\tSE_DS_OBJECT_ALL           = 9\n\tSE_PROVIDER_DEFINED_OBJECT = 10\n\tSE_WMIGUID_OBJECT          = 11\n\tSE_REGISTRY_WOW64_32KEY    = 12\n\tSE_REGISTRY_WOW64_64KEY    = 13\n)\n\ntype SECURITY_INFORMATION uint32\n\n// Constants for type SECURITY_INFORMATION\nconst (\n\tOWNER_SECURITY_INFORMATION            = 0x00000001\n\tGROUP_SECURITY_INFORMATION            = 0x00000002\n\tDACL_SECURITY_INFORMATION             = 0x00000004\n\tSACL_SECURITY_INFORMATION             = 0x00000008\n\tLABEL_SECURITY_INFORMATION            = 0x00000010\n\tATTRIBUTE_SECURITY_INFORMATION        = 0x00000020\n\tSCOPE_SECURITY_INFORMATION            = 0x00000040\n\tBACKUP_SECURITY_INFORMATION           = 0x00010000\n\tPROTECTED_DACL_SECURITY_INFORMATION   = 0x80000000\n\tPROTECTED_SACL_SECURITY_INFORMATION   = 0x40000000\n\tUNPROTECTED_DACL_SECURITY_INFORMATION = 0x20000000\n\tUNPROTECTED_SACL_SECURITY_INFORMATION = 0x10000000\n)\n\ntype SECURITY_DESCRIPTOR_CONTROL uint16\n\n// Constants for type SECURITY_DESCRIPTOR_CONTROL\nconst (\n\tSE_OWNER_DEFAULTED       = 0x0001\n\tSE_GROUP_DEFAULTED       = 0x0002\n\tSE_DACL_PRESENT          = 0x0004\n\tSE_DACL_DEFAULTED        = 0x0008\n\tSE_SACL_PRESENT          = 0x0010\n\tSE_SACL_DEFAULTED        = 0x0020\n\tSE_DACL_AUTO_INHERIT_REQ = 0x0100\n\tSE_SACL_AUTO_INHERIT_REQ = 0x0200\n\tSE_DACL_AUTO_INHERITED   = 0x0400\n\tSE_SACL_AUTO_INHERITED   = 0x0800\n\tSE_DACL_PROTECTED        = 0x1000\n\tSE_SACL_PROTECTED        = 0x2000\n\tSE_RM_CONTROL_VALID      = 0x4000\n\tSE_SELF_RELATIVE         = 0x8000\n)\n\ntype ACCESS_MASK uint32\n\n// Constants for type ACCESS_MASK\nconst (\n\tDELETE                   = 0x00010000\n\tREAD_CONTROL             = 0x00020000\n\tWRITE_DAC                = 0x00040000\n\tWRITE_OWNER              = 0x00080000\n\tSYNCHRONIZE              = 0x00100000\n\tSTANDARD_RIGHTS_REQUIRED = 0x000F0000\n\tSTANDARD_RIGHTS_READ     = READ_CONTROL\n\tSTANDARD_RIGHTS_WRITE    = READ_CONTROL\n\tSTANDARD_RIGHTS_EXECUTE  = READ_CONTROL\n\tSTANDARD_RIGHTS_ALL      = 0x001F0000\n\tSPECIFIC_RIGHTS_ALL      = 0x0000FFFF\n\tACCESS_SYSTEM_SECURITY   = 0x01000000\n\tMAXIMUM_ALLOWED          = 0x02000000\n\tGENERIC_READ             = 0x80000000\n\tGENERIC_WRITE            = 0x40000000\n\tGENERIC_EXECUTE          = 0x20000000\n\tGENERIC_ALL              = 0x10000000\n)\n\ntype ACCESS_MODE uint32\n\n// Constants for type ACCESS_MODE\nconst (\n\tNOT_USED_ACCESS   = 0\n\tGRANT_ACCESS      = 1\n\tSET_ACCESS        = 2\n\tDENY_ACCESS       = 3\n\tREVOKE_ACCESS     = 4\n\tSET_AUDIT_SUCCESS = 5\n\tSET_AUDIT_FAILURE = 6\n)\n\n// Constants for AceFlags and Inheritance fields\nconst (\n\tNO_INHERITANCE                     = 0x0\n\tSUB_OBJECTS_ONLY_INHERIT           = 0x1\n\tSUB_CONTAINERS_ONLY_INHERIT        = 0x2\n\tSUB_CONTAINERS_AND_OBJECTS_INHERIT = 0x3\n\tINHERIT_NO_PROPAGATE               = 0x4\n\tINHERIT_ONLY                       = 0x8\n\tINHERITED_ACCESS_ENTRY             = 0x10\n\tINHERITED_PARENT                   = 0x10000000\n\tINHERITED_GRANDPARENT              = 0x20000000\n\tOBJECT_INHERIT_ACE                 = 0x1\n\tCONTAINER_INHERIT_ACE              = 0x2\n\tNO_PROPAGATE_INHERIT_ACE           = 0x4\n\tINHERIT_ONLY_ACE                   = 0x8\n\tINHERITED_ACE                      = 0x10\n\tVALID_INHERIT_FLAGS                = 0x1F\n)\n\ntype MULTIPLE_TRUSTEE_OPERATION uint32\n\n// Constants for MULTIPLE_TRUSTEE_OPERATION\nconst (\n\tNO_MULTIPLE_TRUSTEE    = 0\n\tTRUSTEE_IS_IMPERSONATE = 1\n)\n\ntype TRUSTEE_FORM uint32\n\n// Constants for TRUSTEE_FORM\nconst (\n\tTRUSTEE_IS_SID              = 0\n\tTRUSTEE_IS_NAME             = 1\n\tTRUSTEE_BAD_FORM            = 2\n\tTRUSTEE_IS_OBJECTS_AND_SID  = 3\n\tTRUSTEE_IS_OBJECTS_AND_NAME = 4\n)\n\ntype TRUSTEE_TYPE uint32\n\n// Constants for TRUSTEE_TYPE\nconst (\n\tTRUSTEE_IS_UNKNOWN          = 0\n\tTRUSTEE_IS_USER             = 1\n\tTRUSTEE_IS_GROUP            = 2\n\tTRUSTEE_IS_DOMAIN           = 3\n\tTRUSTEE_IS_ALIAS            = 4\n\tTRUSTEE_IS_WELL_KNOWN_GROUP = 5\n\tTRUSTEE_IS_DELETED          = 6\n\tTRUSTEE_IS_INVALID          = 7\n\tTRUSTEE_IS_COMPUTER         = 8\n)\n\n// Constants for ObjectsPresent field\nconst (\n\tACE_OBJECT_TYPE_PRESENT           = 0x1\n\tACE_INHERITED_OBJECT_TYPE_PRESENT = 0x2\n)\n\ntype EXPLICIT_ACCESS struct {\n\tAccessPermissions ACCESS_MASK\n\tAccessMode        ACCESS_MODE\n\tInheritance       uint32\n\tTrustee           TRUSTEE\n}\n\n// https://learn.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-ace_header\ntype ACE_HEADER struct {\n\tAceType  uint8\n\tAceFlags uint8\n\tAceSize  uint16\n}\n\n// https://learn.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-access_allowed_ace\ntype ACCESS_ALLOWED_ACE struct {\n\tHeader   ACE_HEADER\n\tMask     ACCESS_MASK\n\tSidStart uint32\n}\n\nconst (\n\t// Constants for AceType\n\t// https://learn.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-ace_header\n\tACCESS_ALLOWED_ACE_TYPE = 0\n\tACCESS_DENIED_ACE_TYPE  = 1\n)\n\n// This type is the union inside of TRUSTEE and must be created using one of the TrusteeValueFrom* functions.\ntype TrusteeValue uintptr\n\nfunc TrusteeValueFromString(str string) TrusteeValue {\n\treturn TrusteeValue(unsafe.Pointer(StringToUTF16Ptr(str)))\n}\nfunc TrusteeValueFromSID(sid *SID) TrusteeValue {\n\treturn TrusteeValue(unsafe.Pointer(sid))\n}\nfunc TrusteeValueFromObjectsAndSid(objectsAndSid *OBJECTS_AND_SID) TrusteeValue {\n\treturn TrusteeValue(unsafe.Pointer(objectsAndSid))\n}\nfunc TrusteeValueFromObjectsAndName(objectsAndName *OBJECTS_AND_NAME) TrusteeValue {\n\treturn TrusteeValue(unsafe.Pointer(objectsAndName))\n}\n\ntype TRUSTEE struct {\n\tMultipleTrustee          *TRUSTEE\n\tMultipleTrusteeOperation MULTIPLE_TRUSTEE_OPERATION\n\tTrusteeForm              TRUSTEE_FORM\n\tTrusteeType              TRUSTEE_TYPE\n\tTrusteeValue             TrusteeValue\n}\n\ntype OBJECTS_AND_SID struct {\n\tObjectsPresent          uint32\n\tObjectTypeGuid          GUID\n\tInheritedObjectTypeGuid GUID\n\tSid                     *SID\n}\n\ntype OBJECTS_AND_NAME struct {\n\tObjectsPresent          uint32\n\tObjectType              SE_OBJECT_TYPE\n\tObjectTypeName          *uint16\n\tInheritedObjectTypeName *uint16\n\tName                    *uint16\n}\n\n//sys\tgetSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) = advapi32.GetSecurityInfo\n//sys\tSetSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) = advapi32.SetSecurityInfo\n//sys\tgetNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) = advapi32.GetNamedSecurityInfoW\n//sys\tSetNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) = advapi32.SetNamedSecurityInfoW\n//sys\tSetKernelObjectSecurity(handle Handle, securityInformation SECURITY_INFORMATION, securityDescriptor *SECURITY_DESCRIPTOR) (err error) = advapi32.SetKernelObjectSecurity\n\n//sys\tbuildSecurityDescriptor(owner *TRUSTEE, group *TRUSTEE, countAccessEntries uint32, accessEntries *EXPLICIT_ACCESS, countAuditEntries uint32, auditEntries *EXPLICIT_ACCESS, oldSecurityDescriptor *SECURITY_DESCRIPTOR, sizeNewSecurityDescriptor *uint32, newSecurityDescriptor **SECURITY_DESCRIPTOR) (ret error) = advapi32.BuildSecurityDescriptorW\n//sys\tinitializeSecurityDescriptor(absoluteSD *SECURITY_DESCRIPTOR, revision uint32) (err error) = advapi32.InitializeSecurityDescriptor\n\n//sys\tgetSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, control *SECURITY_DESCRIPTOR_CONTROL, revision *uint32) (err error) = advapi32.GetSecurityDescriptorControl\n//sys\tgetSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent *bool, dacl **ACL, daclDefaulted *bool) (err error) = advapi32.GetSecurityDescriptorDacl\n//sys\tgetSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent *bool, sacl **ACL, saclDefaulted *bool) (err error) = advapi32.GetSecurityDescriptorSacl\n//sys\tgetSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner **SID, ownerDefaulted *bool) (err error) = advapi32.GetSecurityDescriptorOwner\n//sys\tgetSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group **SID, groupDefaulted *bool) (err error) = advapi32.GetSecurityDescriptorGroup\n//sys\tgetSecurityDescriptorLength(sd *SECURITY_DESCRIPTOR) (len uint32) = advapi32.GetSecurityDescriptorLength\n//sys\tgetSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) (ret error) [failretval!=0] = advapi32.GetSecurityDescriptorRMControl\n//sys\tisValidSecurityDescriptor(sd *SECURITY_DESCRIPTOR) (isValid bool) = advapi32.IsValidSecurityDescriptor\n\n//sys\tsetSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, controlBitsOfInterest SECURITY_DESCRIPTOR_CONTROL, controlBitsToSet SECURITY_DESCRIPTOR_CONTROL) (err error) = advapi32.SetSecurityDescriptorControl\n//sys\tsetSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent bool, dacl *ACL, daclDefaulted bool) (err error) = advapi32.SetSecurityDescriptorDacl\n//sys\tsetSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent bool, sacl *ACL, saclDefaulted bool) (err error) = advapi32.SetSecurityDescriptorSacl\n//sys\tsetSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner *SID, ownerDefaulted bool) (err error) = advapi32.SetSecurityDescriptorOwner\n//sys\tsetSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group *SID, groupDefaulted bool) (err error) = advapi32.SetSecurityDescriptorGroup\n//sys\tsetSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) = advapi32.SetSecurityDescriptorRMControl\n\n//sys\tconvertStringSecurityDescriptorToSecurityDescriptor(str string, revision uint32, sd **SECURITY_DESCRIPTOR, size *uint32) (err error) = advapi32.ConvertStringSecurityDescriptorToSecurityDescriptorW\n//sys\tconvertSecurityDescriptorToStringSecurityDescriptor(sd *SECURITY_DESCRIPTOR, revision uint32, securityInformation SECURITY_INFORMATION, str **uint16, strLen *uint32) (err error) = advapi32.ConvertSecurityDescriptorToStringSecurityDescriptorW\n\n//sys\tmakeAbsoluteSD(selfRelativeSD *SECURITY_DESCRIPTOR, absoluteSD *SECURITY_DESCRIPTOR, absoluteSDSize *uint32, dacl *ACL, daclSize *uint32, sacl *ACL, saclSize *uint32, owner *SID, ownerSize *uint32, group *SID, groupSize *uint32) (err error) = advapi32.MakeAbsoluteSD\n//sys\tmakeSelfRelativeSD(absoluteSD *SECURITY_DESCRIPTOR, selfRelativeSD *SECURITY_DESCRIPTOR, selfRelativeSDSize *uint32) (err error) = advapi32.MakeSelfRelativeSD\n\n//sys\tsetEntriesInAcl(countExplicitEntries uint32, explicitEntries *EXPLICIT_ACCESS, oldACL *ACL, newACL **ACL) (ret error) = advapi32.SetEntriesInAclW\n//sys\tGetAce(acl *ACL, aceIndex uint32, pAce **ACCESS_ALLOWED_ACE) (err error) = advapi32.GetAce\n\n// Control returns the security descriptor control bits.\nfunc (sd *SECURITY_DESCRIPTOR) Control() (control SECURITY_DESCRIPTOR_CONTROL, revision uint32, err error) {\n\terr = getSecurityDescriptorControl(sd, &control, &revision)\n\treturn\n}\n\n// SetControl sets the security descriptor control bits.\nfunc (sd *SECURITY_DESCRIPTOR) SetControl(controlBitsOfInterest SECURITY_DESCRIPTOR_CONTROL, controlBitsToSet SECURITY_DESCRIPTOR_CONTROL) error {\n\treturn setSecurityDescriptorControl(sd, controlBitsOfInterest, controlBitsToSet)\n}\n\n// RMControl returns the security descriptor resource manager control bits.\nfunc (sd *SECURITY_DESCRIPTOR) RMControl() (control uint8, err error) {\n\terr = getSecurityDescriptorRMControl(sd, &control)\n\treturn\n}\n\n// SetRMControl sets the security descriptor resource manager control bits.\nfunc (sd *SECURITY_DESCRIPTOR) SetRMControl(rmControl uint8) {\n\tsetSecurityDescriptorRMControl(sd, &rmControl)\n}\n\n// DACL returns the security descriptor DACL and whether it was defaulted. The dacl return value may be nil\n// if a DACL exists but is an \"empty DACL\", meaning fully permissive. If the DACL does not exist, err returns\n// ERROR_OBJECT_NOT_FOUND.\nfunc (sd *SECURITY_DESCRIPTOR) DACL() (dacl *ACL, defaulted bool, err error) {\n\tvar present bool\n\terr = getSecurityDescriptorDacl(sd, &present, &dacl, &defaulted)\n\tif !present {\n\t\terr = ERROR_OBJECT_NOT_FOUND\n\t}\n\treturn\n}\n\n// SetDACL sets the absolute security descriptor DACL.\nfunc (absoluteSD *SECURITY_DESCRIPTOR) SetDACL(dacl *ACL, present, defaulted bool) error {\n\treturn setSecurityDescriptorDacl(absoluteSD, present, dacl, defaulted)\n}\n\n// SACL returns the security descriptor SACL and whether it was defaulted. The sacl return value may be nil\n// if a SACL exists but is an \"empty SACL\", meaning fully permissive. If the SACL does not exist, err returns\n// ERROR_OBJECT_NOT_FOUND.\nfunc (sd *SECURITY_DESCRIPTOR) SACL() (sacl *ACL, defaulted bool, err error) {\n\tvar present bool\n\terr = getSecurityDescriptorSacl(sd, &present, &sacl, &defaulted)\n\tif !present {\n\t\terr = ERROR_OBJECT_NOT_FOUND\n\t}\n\treturn\n}\n\n// SetSACL sets the absolute security descriptor SACL.\nfunc (absoluteSD *SECURITY_DESCRIPTOR) SetSACL(sacl *ACL, present, defaulted bool) error {\n\treturn setSecurityDescriptorSacl(absoluteSD, present, sacl, defaulted)\n}\n\n// Owner returns the security descriptor owner and whether it was defaulted.\nfunc (sd *SECURITY_DESCRIPTOR) Owner() (owner *SID, defaulted bool, err error) {\n\terr = getSecurityDescriptorOwner(sd, &owner, &defaulted)\n\treturn\n}\n\n// SetOwner sets the absolute security descriptor owner.\nfunc (absoluteSD *SECURITY_DESCRIPTOR) SetOwner(owner *SID, defaulted bool) error {\n\treturn setSecurityDescriptorOwner(absoluteSD, owner, defaulted)\n}\n\n// Group returns the security descriptor group and whether it was defaulted.\nfunc (sd *SECURITY_DESCRIPTOR) Group() (group *SID, defaulted bool, err error) {\n\terr = getSecurityDescriptorGroup(sd, &group, &defaulted)\n\treturn\n}\n\n// SetGroup sets the absolute security descriptor owner.\nfunc (absoluteSD *SECURITY_DESCRIPTOR) SetGroup(group *SID, defaulted bool) error {\n\treturn setSecurityDescriptorGroup(absoluteSD, group, defaulted)\n}\n\n// Length returns the length of the security descriptor.\nfunc (sd *SECURITY_DESCRIPTOR) Length() uint32 {\n\treturn getSecurityDescriptorLength(sd)\n}\n\n// IsValid returns whether the security descriptor is valid.\nfunc (sd *SECURITY_DESCRIPTOR) IsValid() bool {\n\treturn isValidSecurityDescriptor(sd)\n}\n\n// String returns the SDDL form of the security descriptor, with a function signature that can be\n// used with %v formatting directives.\nfunc (sd *SECURITY_DESCRIPTOR) String() string {\n\tvar sddl *uint16\n\terr := convertSecurityDescriptorToStringSecurityDescriptor(sd, 1, 0xff, &sddl, nil)\n\tif err != nil {\n\t\treturn \"\"\n\t}\n\tdefer LocalFree(Handle(unsafe.Pointer(sddl)))\n\treturn UTF16PtrToString(sddl)\n}\n\n// ToAbsolute converts a self-relative security descriptor into an absolute one.\nfunc (selfRelativeSD *SECURITY_DESCRIPTOR) ToAbsolute() (absoluteSD *SECURITY_DESCRIPTOR, err error) {\n\tcontrol, _, err := selfRelativeSD.Control()\n\tif err != nil {\n\t\treturn\n\t}\n\tif control&SE_SELF_RELATIVE == 0 {\n\t\terr = ERROR_INVALID_PARAMETER\n\t\treturn\n\t}\n\tvar absoluteSDSize, daclSize, saclSize, ownerSize, groupSize uint32\n\terr = makeAbsoluteSD(selfRelativeSD, nil, &absoluteSDSize,\n\t\tnil, &daclSize, nil, &saclSize, nil, &ownerSize, nil, &groupSize)\n\tswitch err {\n\tcase ERROR_INSUFFICIENT_BUFFER:\n\tcase nil:\n\t\t// makeAbsoluteSD is expected to fail, but it succeeds.\n\t\treturn nil, ERROR_INTERNAL_ERROR\n\tdefault:\n\t\treturn nil, err\n\t}\n\tif absoluteSDSize > 0 {\n\t\tabsoluteSD = (*SECURITY_DESCRIPTOR)(unsafe.Pointer(&make([]byte, absoluteSDSize)[0]))\n\t}\n\tvar (\n\t\tdacl  *ACL\n\t\tsacl  *ACL\n\t\towner *SID\n\t\tgroup *SID\n\t)\n\tif daclSize > 0 {\n\t\tdacl = (*ACL)(unsafe.Pointer(&make([]byte, daclSize)[0]))\n\t}\n\tif saclSize > 0 {\n\t\tsacl = (*ACL)(unsafe.Pointer(&make([]byte, saclSize)[0]))\n\t}\n\tif ownerSize > 0 {\n\t\towner = (*SID)(unsafe.Pointer(&make([]byte, ownerSize)[0]))\n\t}\n\tif groupSize > 0 {\n\t\tgroup = (*SID)(unsafe.Pointer(&make([]byte, groupSize)[0]))\n\t}\n\terr = makeAbsoluteSD(selfRelativeSD, absoluteSD, &absoluteSDSize,\n\t\tdacl, &daclSize, sacl, &saclSize, owner, &ownerSize, group, &groupSize)\n\treturn\n}\n\n// ToSelfRelative converts an absolute security descriptor into a self-relative one.\nfunc (absoluteSD *SECURITY_DESCRIPTOR) ToSelfRelative() (selfRelativeSD *SECURITY_DESCRIPTOR, err error) {\n\tcontrol, _, err := absoluteSD.Control()\n\tif err != nil {\n\t\treturn\n\t}\n\tif control&SE_SELF_RELATIVE != 0 {\n\t\terr = ERROR_INVALID_PARAMETER\n\t\treturn\n\t}\n\tvar selfRelativeSDSize uint32\n\terr = makeSelfRelativeSD(absoluteSD, nil, &selfRelativeSDSize)\n\tswitch err {\n\tcase ERROR_INSUFFICIENT_BUFFER:\n\tcase nil:\n\t\t// makeSelfRelativeSD is expected to fail, but it succeeds.\n\t\treturn nil, ERROR_INTERNAL_ERROR\n\tdefault:\n\t\treturn nil, err\n\t}\n\tif selfRelativeSDSize > 0 {\n\t\tselfRelativeSD = (*SECURITY_DESCRIPTOR)(unsafe.Pointer(&make([]byte, selfRelativeSDSize)[0]))\n\t}\n\terr = makeSelfRelativeSD(absoluteSD, selfRelativeSD, &selfRelativeSDSize)\n\treturn\n}\n\nfunc (selfRelativeSD *SECURITY_DESCRIPTOR) copySelfRelativeSecurityDescriptor() *SECURITY_DESCRIPTOR {\n\tsdLen := int(selfRelativeSD.Length())\n\tconst min = int(unsafe.Sizeof(SECURITY_DESCRIPTOR{}))\n\tif sdLen < min {\n\t\tsdLen = min\n\t}\n\n\tsrc := unsafe.Slice((*byte)(unsafe.Pointer(selfRelativeSD)), sdLen)\n\t// SECURITY_DESCRIPTOR has pointers in it, which means checkptr expects for it to\n\t// be aligned properly. When we're copying a Windows-allocated struct to a\n\t// Go-allocated one, make sure that the Go allocation is aligned to the\n\t// pointer size.\n\tconst psize = int(unsafe.Sizeof(uintptr(0)))\n\talloc := make([]uintptr, (sdLen+psize-1)/psize)\n\tdst := unsafe.Slice((*byte)(unsafe.Pointer(&alloc[0])), sdLen)\n\tcopy(dst, src)\n\treturn (*SECURITY_DESCRIPTOR)(unsafe.Pointer(&dst[0]))\n}\n\n// SecurityDescriptorFromString converts an SDDL string describing a security descriptor into a\n// self-relative security descriptor object allocated on the Go heap.\nfunc SecurityDescriptorFromString(sddl string) (sd *SECURITY_DESCRIPTOR, err error) {\n\tvar winHeapSD *SECURITY_DESCRIPTOR\n\terr = convertStringSecurityDescriptorToSecurityDescriptor(sddl, 1, &winHeapSD, nil)\n\tif err != nil {\n\t\treturn\n\t}\n\tdefer LocalFree(Handle(unsafe.Pointer(winHeapSD)))\n\treturn winHeapSD.copySelfRelativeSecurityDescriptor(), nil\n}\n\n// GetSecurityInfo queries the security information for a given handle and returns the self-relative security\n// descriptor result on the Go heap.\nfunc GetSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION) (sd *SECURITY_DESCRIPTOR, err error) {\n\tvar winHeapSD *SECURITY_DESCRIPTOR\n\terr = getSecurityInfo(handle, objectType, securityInformation, nil, nil, nil, nil, &winHeapSD)\n\tif err != nil {\n\t\treturn\n\t}\n\tdefer LocalFree(Handle(unsafe.Pointer(winHeapSD)))\n\treturn winHeapSD.copySelfRelativeSecurityDescriptor(), nil\n}\n\n// GetNamedSecurityInfo queries the security information for a given named object and returns the self-relative security\n// descriptor result on the Go heap.\nfunc GetNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION) (sd *SECURITY_DESCRIPTOR, err error) {\n\tvar winHeapSD *SECURITY_DESCRIPTOR\n\terr = getNamedSecurityInfo(objectName, objectType, securityInformation, nil, nil, nil, nil, &winHeapSD)\n\tif err != nil {\n\t\treturn\n\t}\n\tdefer LocalFree(Handle(unsafe.Pointer(winHeapSD)))\n\treturn winHeapSD.copySelfRelativeSecurityDescriptor(), nil\n}\n\n// BuildSecurityDescriptor makes a new security descriptor using the input trustees, explicit access lists, and\n// prior security descriptor to be merged, any of which can be nil, returning the self-relative security descriptor\n// result on the Go heap.\nfunc BuildSecurityDescriptor(owner *TRUSTEE, group *TRUSTEE, accessEntries []EXPLICIT_ACCESS, auditEntries []EXPLICIT_ACCESS, mergedSecurityDescriptor *SECURITY_DESCRIPTOR) (sd *SECURITY_DESCRIPTOR, err error) {\n\tvar winHeapSD *SECURITY_DESCRIPTOR\n\tvar winHeapSDSize uint32\n\tvar firstAccessEntry *EXPLICIT_ACCESS\n\tif len(accessEntries) > 0 {\n\t\tfirstAccessEntry = &accessEntries[0]\n\t}\n\tvar firstAuditEntry *EXPLICIT_ACCESS\n\tif len(auditEntries) > 0 {\n\t\tfirstAuditEntry = &auditEntries[0]\n\t}\n\terr = buildSecurityDescriptor(owner, group, uint32(len(accessEntries)), firstAccessEntry, uint32(len(auditEntries)), firstAuditEntry, mergedSecurityDescriptor, &winHeapSDSize, &winHeapSD)\n\tif err != nil {\n\t\treturn\n\t}\n\tdefer LocalFree(Handle(unsafe.Pointer(winHeapSD)))\n\treturn winHeapSD.copySelfRelativeSecurityDescriptor(), nil\n}\n\n// NewSecurityDescriptor creates and initializes a new absolute security descriptor.\nfunc NewSecurityDescriptor() (absoluteSD *SECURITY_DESCRIPTOR, err error) {\n\tabsoluteSD = &SECURITY_DESCRIPTOR{}\n\terr = initializeSecurityDescriptor(absoluteSD, 1)\n\treturn\n}\n\n// ACLFromEntries returns a new ACL on the Go heap containing a list of explicit entries as well as those of another ACL.\n// Both explicitEntries and mergedACL are optional and can be nil.\nfunc ACLFromEntries(explicitEntries []EXPLICIT_ACCESS, mergedACL *ACL) (acl *ACL, err error) {\n\tvar firstExplicitEntry *EXPLICIT_ACCESS\n\tif len(explicitEntries) > 0 {\n\t\tfirstExplicitEntry = &explicitEntries[0]\n\t}\n\tvar winHeapACL *ACL\n\terr = setEntriesInAcl(uint32(len(explicitEntries)), firstExplicitEntry, mergedACL, &winHeapACL)\n\tif err != nil {\n\t\treturn\n\t}\n\tdefer LocalFree(Handle(unsafe.Pointer(winHeapACL)))\n\taclBytes := make([]byte, winHeapACL.aclSize)\n\tcopy(aclBytes, (*[(1 << 31) - 1]byte)(unsafe.Pointer(winHeapACL))[:len(aclBytes):len(aclBytes)])\n\treturn (*ACL)(unsafe.Pointer(&aclBytes[0])), nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/service.go",
    "content": "// Copyright 2012 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build windows\n\npackage windows\n\nconst (\n\tSC_MANAGER_CONNECT            = 1\n\tSC_MANAGER_CREATE_SERVICE     = 2\n\tSC_MANAGER_ENUMERATE_SERVICE  = 4\n\tSC_MANAGER_LOCK               = 8\n\tSC_MANAGER_QUERY_LOCK_STATUS  = 16\n\tSC_MANAGER_MODIFY_BOOT_CONFIG = 32\n\tSC_MANAGER_ALL_ACCESS         = 0xf003f\n)\n\nconst (\n\tSERVICE_KERNEL_DRIVER       = 1\n\tSERVICE_FILE_SYSTEM_DRIVER  = 2\n\tSERVICE_ADAPTER             = 4\n\tSERVICE_RECOGNIZER_DRIVER   = 8\n\tSERVICE_WIN32_OWN_PROCESS   = 16\n\tSERVICE_WIN32_SHARE_PROCESS = 32\n\tSERVICE_WIN32               = SERVICE_WIN32_OWN_PROCESS | SERVICE_WIN32_SHARE_PROCESS\n\tSERVICE_INTERACTIVE_PROCESS = 256\n\tSERVICE_DRIVER              = SERVICE_KERNEL_DRIVER | SERVICE_FILE_SYSTEM_DRIVER | SERVICE_RECOGNIZER_DRIVER\n\tSERVICE_TYPE_ALL            = SERVICE_WIN32 | SERVICE_ADAPTER | SERVICE_DRIVER | SERVICE_INTERACTIVE_PROCESS\n\n\tSERVICE_BOOT_START   = 0\n\tSERVICE_SYSTEM_START = 1\n\tSERVICE_AUTO_START   = 2\n\tSERVICE_DEMAND_START = 3\n\tSERVICE_DISABLED     = 4\n\n\tSERVICE_ERROR_IGNORE   = 0\n\tSERVICE_ERROR_NORMAL   = 1\n\tSERVICE_ERROR_SEVERE   = 2\n\tSERVICE_ERROR_CRITICAL = 3\n\n\tSC_STATUS_PROCESS_INFO = 0\n\n\tSC_ACTION_NONE        = 0\n\tSC_ACTION_RESTART     = 1\n\tSC_ACTION_REBOOT      = 2\n\tSC_ACTION_RUN_COMMAND = 3\n\n\tSERVICE_STOPPED          = 1\n\tSERVICE_START_PENDING    = 2\n\tSERVICE_STOP_PENDING     = 3\n\tSERVICE_RUNNING          = 4\n\tSERVICE_CONTINUE_PENDING = 5\n\tSERVICE_PAUSE_PENDING    = 6\n\tSERVICE_PAUSED           = 7\n\tSERVICE_NO_CHANGE        = 0xffffffff\n\n\tSERVICE_ACCEPT_STOP                  = 1\n\tSERVICE_ACCEPT_PAUSE_CONTINUE        = 2\n\tSERVICE_ACCEPT_SHUTDOWN              = 4\n\tSERVICE_ACCEPT_PARAMCHANGE           = 8\n\tSERVICE_ACCEPT_NETBINDCHANGE         = 16\n\tSERVICE_ACCEPT_HARDWAREPROFILECHANGE = 32\n\tSERVICE_ACCEPT_POWEREVENT            = 64\n\tSERVICE_ACCEPT_SESSIONCHANGE         = 128\n\tSERVICE_ACCEPT_PRESHUTDOWN           = 256\n\n\tSERVICE_CONTROL_STOP                  = 1\n\tSERVICE_CONTROL_PAUSE                 = 2\n\tSERVICE_CONTROL_CONTINUE              = 3\n\tSERVICE_CONTROL_INTERROGATE           = 4\n\tSERVICE_CONTROL_SHUTDOWN              = 5\n\tSERVICE_CONTROL_PARAMCHANGE           = 6\n\tSERVICE_CONTROL_NETBINDADD            = 7\n\tSERVICE_CONTROL_NETBINDREMOVE         = 8\n\tSERVICE_CONTROL_NETBINDENABLE         = 9\n\tSERVICE_CONTROL_NETBINDDISABLE        = 10\n\tSERVICE_CONTROL_DEVICEEVENT           = 11\n\tSERVICE_CONTROL_HARDWAREPROFILECHANGE = 12\n\tSERVICE_CONTROL_POWEREVENT            = 13\n\tSERVICE_CONTROL_SESSIONCHANGE         = 14\n\tSERVICE_CONTROL_PRESHUTDOWN           = 15\n\n\tSERVICE_ACTIVE    = 1\n\tSERVICE_INACTIVE  = 2\n\tSERVICE_STATE_ALL = 3\n\n\tSERVICE_QUERY_CONFIG         = 1\n\tSERVICE_CHANGE_CONFIG        = 2\n\tSERVICE_QUERY_STATUS         = 4\n\tSERVICE_ENUMERATE_DEPENDENTS = 8\n\tSERVICE_START                = 16\n\tSERVICE_STOP                 = 32\n\tSERVICE_PAUSE_CONTINUE       = 64\n\tSERVICE_INTERROGATE          = 128\n\tSERVICE_USER_DEFINED_CONTROL = 256\n\tSERVICE_ALL_ACCESS           = STANDARD_RIGHTS_REQUIRED | SERVICE_QUERY_CONFIG | SERVICE_CHANGE_CONFIG | SERVICE_QUERY_STATUS | SERVICE_ENUMERATE_DEPENDENTS | SERVICE_START | SERVICE_STOP | SERVICE_PAUSE_CONTINUE | SERVICE_INTERROGATE | SERVICE_USER_DEFINED_CONTROL\n\n\tSERVICE_RUNS_IN_SYSTEM_PROCESS = 1\n\n\tSERVICE_CONFIG_DESCRIPTION              = 1\n\tSERVICE_CONFIG_FAILURE_ACTIONS          = 2\n\tSERVICE_CONFIG_DELAYED_AUTO_START_INFO  = 3\n\tSERVICE_CONFIG_FAILURE_ACTIONS_FLAG     = 4\n\tSERVICE_CONFIG_SERVICE_SID_INFO         = 5\n\tSERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO = 6\n\tSERVICE_CONFIG_PRESHUTDOWN_INFO         = 7\n\tSERVICE_CONFIG_TRIGGER_INFO             = 8\n\tSERVICE_CONFIG_PREFERRED_NODE           = 9\n\tSERVICE_CONFIG_LAUNCH_PROTECTED         = 12\n\n\tSERVICE_SID_TYPE_NONE         = 0\n\tSERVICE_SID_TYPE_UNRESTRICTED = 1\n\tSERVICE_SID_TYPE_RESTRICTED   = 2 | SERVICE_SID_TYPE_UNRESTRICTED\n\n\tSC_ENUM_PROCESS_INFO = 0\n\n\tSERVICE_NOTIFY_STATUS_CHANGE    = 2\n\tSERVICE_NOTIFY_STOPPED          = 0x00000001\n\tSERVICE_NOTIFY_START_PENDING    = 0x00000002\n\tSERVICE_NOTIFY_STOP_PENDING     = 0x00000004\n\tSERVICE_NOTIFY_RUNNING          = 0x00000008\n\tSERVICE_NOTIFY_CONTINUE_PENDING = 0x00000010\n\tSERVICE_NOTIFY_PAUSE_PENDING    = 0x00000020\n\tSERVICE_NOTIFY_PAUSED           = 0x00000040\n\tSERVICE_NOTIFY_CREATED          = 0x00000080\n\tSERVICE_NOTIFY_DELETED          = 0x00000100\n\tSERVICE_NOTIFY_DELETE_PENDING   = 0x00000200\n\n\tSC_EVENT_DATABASE_CHANGE = 0\n\tSC_EVENT_PROPERTY_CHANGE = 1\n\tSC_EVENT_STATUS_CHANGE   = 2\n\n\tSERVICE_START_REASON_DEMAND             = 0x00000001\n\tSERVICE_START_REASON_AUTO               = 0x00000002\n\tSERVICE_START_REASON_TRIGGER            = 0x00000004\n\tSERVICE_START_REASON_RESTART_ON_FAILURE = 0x00000008\n\tSERVICE_START_REASON_DELAYEDAUTO        = 0x00000010\n\n\tSERVICE_DYNAMIC_INFORMATION_LEVEL_START_REASON = 1\n)\n\ntype ENUM_SERVICE_STATUS struct {\n\tServiceName   *uint16\n\tDisplayName   *uint16\n\tServiceStatus SERVICE_STATUS\n}\n\ntype SERVICE_STATUS struct {\n\tServiceType             uint32\n\tCurrentState            uint32\n\tControlsAccepted        uint32\n\tWin32ExitCode           uint32\n\tServiceSpecificExitCode uint32\n\tCheckPoint              uint32\n\tWaitHint                uint32\n}\n\ntype SERVICE_TABLE_ENTRY struct {\n\tServiceName *uint16\n\tServiceProc uintptr\n}\n\ntype QUERY_SERVICE_CONFIG struct {\n\tServiceType      uint32\n\tStartType        uint32\n\tErrorControl     uint32\n\tBinaryPathName   *uint16\n\tLoadOrderGroup   *uint16\n\tTagId            uint32\n\tDependencies     *uint16\n\tServiceStartName *uint16\n\tDisplayName      *uint16\n}\n\ntype SERVICE_DESCRIPTION struct {\n\tDescription *uint16\n}\n\ntype SERVICE_DELAYED_AUTO_START_INFO struct {\n\tIsDelayedAutoStartUp uint32\n}\n\ntype SERVICE_STATUS_PROCESS struct {\n\tServiceType             uint32\n\tCurrentState            uint32\n\tControlsAccepted        uint32\n\tWin32ExitCode           uint32\n\tServiceSpecificExitCode uint32\n\tCheckPoint              uint32\n\tWaitHint                uint32\n\tProcessId               uint32\n\tServiceFlags            uint32\n}\n\ntype ENUM_SERVICE_STATUS_PROCESS struct {\n\tServiceName          *uint16\n\tDisplayName          *uint16\n\tServiceStatusProcess SERVICE_STATUS_PROCESS\n}\n\ntype SERVICE_NOTIFY struct {\n\tVersion               uint32\n\tNotifyCallback        uintptr\n\tContext               uintptr\n\tNotificationStatus    uint32\n\tServiceStatus         SERVICE_STATUS_PROCESS\n\tNotificationTriggered uint32\n\tServiceNames          *uint16\n}\n\ntype SERVICE_FAILURE_ACTIONS struct {\n\tResetPeriod  uint32\n\tRebootMsg    *uint16\n\tCommand      *uint16\n\tActionsCount uint32\n\tActions      *SC_ACTION\n}\n\ntype SERVICE_FAILURE_ACTIONS_FLAG struct {\n\tFailureActionsOnNonCrashFailures int32\n}\n\ntype SC_ACTION struct {\n\tType  uint32\n\tDelay uint32\n}\n\ntype QUERY_SERVICE_LOCK_STATUS struct {\n\tIsLocked     uint32\n\tLockOwner    *uint16\n\tLockDuration uint32\n}\n\n//sys\tOpenSCManager(machineName *uint16, databaseName *uint16, access uint32) (handle Handle, err error) [failretval==0] = advapi32.OpenSCManagerW\n//sys\tCloseServiceHandle(handle Handle) (err error) = advapi32.CloseServiceHandle\n//sys\tCreateService(mgr Handle, serviceName *uint16, displayName *uint16, access uint32, srvType uint32, startType uint32, errCtl uint32, pathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16) (handle Handle, err error) [failretval==0] = advapi32.CreateServiceW\n//sys\tOpenService(mgr Handle, serviceName *uint16, access uint32) (handle Handle, err error) [failretval==0] = advapi32.OpenServiceW\n//sys\tDeleteService(service Handle) (err error) = advapi32.DeleteService\n//sys\tStartService(service Handle, numArgs uint32, argVectors **uint16) (err error) = advapi32.StartServiceW\n//sys\tQueryServiceStatus(service Handle, status *SERVICE_STATUS) (err error) = advapi32.QueryServiceStatus\n//sys\tQueryServiceLockStatus(mgr Handle, lockStatus *QUERY_SERVICE_LOCK_STATUS, bufSize uint32, bytesNeeded *uint32) (err error) = advapi32.QueryServiceLockStatusW\n//sys\tControlService(service Handle, control uint32, status *SERVICE_STATUS) (err error) = advapi32.ControlService\n//sys\tStartServiceCtrlDispatcher(serviceTable *SERVICE_TABLE_ENTRY) (err error) = advapi32.StartServiceCtrlDispatcherW\n//sys\tSetServiceStatus(service Handle, serviceStatus *SERVICE_STATUS) (err error) = advapi32.SetServiceStatus\n//sys\tChangeServiceConfig(service Handle, serviceType uint32, startType uint32, errorControl uint32, binaryPathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16, displayName *uint16) (err error) = advapi32.ChangeServiceConfigW\n//sys\tQueryServiceConfig(service Handle, serviceConfig *QUERY_SERVICE_CONFIG, bufSize uint32, bytesNeeded *uint32) (err error) = advapi32.QueryServiceConfigW\n//sys\tChangeServiceConfig2(service Handle, infoLevel uint32, info *byte) (err error) = advapi32.ChangeServiceConfig2W\n//sys\tQueryServiceConfig2(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) = advapi32.QueryServiceConfig2W\n//sys\tEnumServicesStatusEx(mgr Handle, infoLevel uint32, serviceType uint32, serviceState uint32, services *byte, bufSize uint32, bytesNeeded *uint32, servicesReturned *uint32, resumeHandle *uint32, groupName *uint16) (err error) = advapi32.EnumServicesStatusExW\n//sys\tQueryServiceStatusEx(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) = advapi32.QueryServiceStatusEx\n//sys\tNotifyServiceStatusChange(service Handle, notifyMask uint32, notifier *SERVICE_NOTIFY) (ret error) = advapi32.NotifyServiceStatusChangeW\n//sys\tSubscribeServiceChangeNotifications(service Handle, eventType uint32, callback uintptr, callbackCtx uintptr, subscription *uintptr) (ret error) = sechost.SubscribeServiceChangeNotifications?\n//sys\tUnsubscribeServiceChangeNotifications(subscription uintptr) = sechost.UnsubscribeServiceChangeNotifications?\n//sys\tRegisterServiceCtrlHandlerEx(serviceName *uint16, handlerProc uintptr, context uintptr) (handle Handle, err error) = advapi32.RegisterServiceCtrlHandlerExW\n//sys\tQueryServiceDynamicInformation(service Handle, infoLevel uint32, dynamicInfo unsafe.Pointer) (err error) = advapi32.QueryServiceDynamicInformation?\n//sys\tEnumDependentServices(service Handle, activityState uint32, services *ENUM_SERVICE_STATUS, buffSize uint32, bytesNeeded *uint32, servicesReturned *uint32) (err error) = advapi32.EnumDependentServicesW\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/setupapi_windows.go",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage windows\n\nimport (\n\t\"encoding/binary\"\n\t\"errors\"\n\t\"fmt\"\n\t\"runtime\"\n\t\"strings\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n// This file contains functions that wrap SetupAPI.dll and CfgMgr32.dll,\n// core system functions for managing hardware devices, drivers, and the PnP tree.\n// Information about these APIs can be found at:\n//     https://docs.microsoft.com/en-us/windows-hardware/drivers/install/setupapi\n//     https://docs.microsoft.com/en-us/windows/win32/devinst/cfgmgr32-\n\nconst (\n\tERROR_EXPECTED_SECTION_NAME                  Errno = 0x20000000 | 0xC0000000 | 0\n\tERROR_BAD_SECTION_NAME_LINE                  Errno = 0x20000000 | 0xC0000000 | 1\n\tERROR_SECTION_NAME_TOO_LONG                  Errno = 0x20000000 | 0xC0000000 | 2\n\tERROR_GENERAL_SYNTAX                         Errno = 0x20000000 | 0xC0000000 | 3\n\tERROR_WRONG_INF_STYLE                        Errno = 0x20000000 | 0xC0000000 | 0x100\n\tERROR_SECTION_NOT_FOUND                      Errno = 0x20000000 | 0xC0000000 | 0x101\n\tERROR_LINE_NOT_FOUND                         Errno = 0x20000000 | 0xC0000000 | 0x102\n\tERROR_NO_BACKUP                              Errno = 0x20000000 | 0xC0000000 | 0x103\n\tERROR_NO_ASSOCIATED_CLASS                    Errno = 0x20000000 | 0xC0000000 | 0x200\n\tERROR_CLASS_MISMATCH                         Errno = 0x20000000 | 0xC0000000 | 0x201\n\tERROR_DUPLICATE_FOUND                        Errno = 0x20000000 | 0xC0000000 | 0x202\n\tERROR_NO_DRIVER_SELECTED                     Errno = 0x20000000 | 0xC0000000 | 0x203\n\tERROR_KEY_DOES_NOT_EXIST                     Errno = 0x20000000 | 0xC0000000 | 0x204\n\tERROR_INVALID_DEVINST_NAME                   Errno = 0x20000000 | 0xC0000000 | 0x205\n\tERROR_INVALID_CLASS                          Errno = 0x20000000 | 0xC0000000 | 0x206\n\tERROR_DEVINST_ALREADY_EXISTS                 Errno = 0x20000000 | 0xC0000000 | 0x207\n\tERROR_DEVINFO_NOT_REGISTERED                 Errno = 0x20000000 | 0xC0000000 | 0x208\n\tERROR_INVALID_REG_PROPERTY                   Errno = 0x20000000 | 0xC0000000 | 0x209\n\tERROR_NO_INF                                 Errno = 0x20000000 | 0xC0000000 | 0x20A\n\tERROR_NO_SUCH_DEVINST                        Errno = 0x20000000 | 0xC0000000 | 0x20B\n\tERROR_CANT_LOAD_CLASS_ICON                   Errno = 0x20000000 | 0xC0000000 | 0x20C\n\tERROR_INVALID_CLASS_INSTALLER                Errno = 0x20000000 | 0xC0000000 | 0x20D\n\tERROR_DI_DO_DEFAULT                          Errno = 0x20000000 | 0xC0000000 | 0x20E\n\tERROR_DI_NOFILECOPY                          Errno = 0x20000000 | 0xC0000000 | 0x20F\n\tERROR_INVALID_HWPROFILE                      Errno = 0x20000000 | 0xC0000000 | 0x210\n\tERROR_NO_DEVICE_SELECTED                     Errno = 0x20000000 | 0xC0000000 | 0x211\n\tERROR_DEVINFO_LIST_LOCKED                    Errno = 0x20000000 | 0xC0000000 | 0x212\n\tERROR_DEVINFO_DATA_LOCKED                    Errno = 0x20000000 | 0xC0000000 | 0x213\n\tERROR_DI_BAD_PATH                            Errno = 0x20000000 | 0xC0000000 | 0x214\n\tERROR_NO_CLASSINSTALL_PARAMS                 Errno = 0x20000000 | 0xC0000000 | 0x215\n\tERROR_FILEQUEUE_LOCKED                       Errno = 0x20000000 | 0xC0000000 | 0x216\n\tERROR_BAD_SERVICE_INSTALLSECT                Errno = 0x20000000 | 0xC0000000 | 0x217\n\tERROR_NO_CLASS_DRIVER_LIST                   Errno = 0x20000000 | 0xC0000000 | 0x218\n\tERROR_NO_ASSOCIATED_SERVICE                  Errno = 0x20000000 | 0xC0000000 | 0x219\n\tERROR_NO_DEFAULT_DEVICE_INTERFACE            Errno = 0x20000000 | 0xC0000000 | 0x21A\n\tERROR_DEVICE_INTERFACE_ACTIVE                Errno = 0x20000000 | 0xC0000000 | 0x21B\n\tERROR_DEVICE_INTERFACE_REMOVED               Errno = 0x20000000 | 0xC0000000 | 0x21C\n\tERROR_BAD_INTERFACE_INSTALLSECT              Errno = 0x20000000 | 0xC0000000 | 0x21D\n\tERROR_NO_SUCH_INTERFACE_CLASS                Errno = 0x20000000 | 0xC0000000 | 0x21E\n\tERROR_INVALID_REFERENCE_STRING               Errno = 0x20000000 | 0xC0000000 | 0x21F\n\tERROR_INVALID_MACHINENAME                    Errno = 0x20000000 | 0xC0000000 | 0x220\n\tERROR_REMOTE_COMM_FAILURE                    Errno = 0x20000000 | 0xC0000000 | 0x221\n\tERROR_MACHINE_UNAVAILABLE                    Errno = 0x20000000 | 0xC0000000 | 0x222\n\tERROR_NO_CONFIGMGR_SERVICES                  Errno = 0x20000000 | 0xC0000000 | 0x223\n\tERROR_INVALID_PROPPAGE_PROVIDER              Errno = 0x20000000 | 0xC0000000 | 0x224\n\tERROR_NO_SUCH_DEVICE_INTERFACE               Errno = 0x20000000 | 0xC0000000 | 0x225\n\tERROR_DI_POSTPROCESSING_REQUIRED             Errno = 0x20000000 | 0xC0000000 | 0x226\n\tERROR_INVALID_COINSTALLER                    Errno = 0x20000000 | 0xC0000000 | 0x227\n\tERROR_NO_COMPAT_DRIVERS                      Errno = 0x20000000 | 0xC0000000 | 0x228\n\tERROR_NO_DEVICE_ICON                         Errno = 0x20000000 | 0xC0000000 | 0x229\n\tERROR_INVALID_INF_LOGCONFIG                  Errno = 0x20000000 | 0xC0000000 | 0x22A\n\tERROR_DI_DONT_INSTALL                        Errno = 0x20000000 | 0xC0000000 | 0x22B\n\tERROR_INVALID_FILTER_DRIVER                  Errno = 0x20000000 | 0xC0000000 | 0x22C\n\tERROR_NON_WINDOWS_NT_DRIVER                  Errno = 0x20000000 | 0xC0000000 | 0x22D\n\tERROR_NON_WINDOWS_DRIVER                     Errno = 0x20000000 | 0xC0000000 | 0x22E\n\tERROR_NO_CATALOG_FOR_OEM_INF                 Errno = 0x20000000 | 0xC0000000 | 0x22F\n\tERROR_DEVINSTALL_QUEUE_NONNATIVE             Errno = 0x20000000 | 0xC0000000 | 0x230\n\tERROR_NOT_DISABLEABLE                        Errno = 0x20000000 | 0xC0000000 | 0x231\n\tERROR_CANT_REMOVE_DEVINST                    Errno = 0x20000000 | 0xC0000000 | 0x232\n\tERROR_INVALID_TARGET                         Errno = 0x20000000 | 0xC0000000 | 0x233\n\tERROR_DRIVER_NONNATIVE                       Errno = 0x20000000 | 0xC0000000 | 0x234\n\tERROR_IN_WOW64                               Errno = 0x20000000 | 0xC0000000 | 0x235\n\tERROR_SET_SYSTEM_RESTORE_POINT               Errno = 0x20000000 | 0xC0000000 | 0x236\n\tERROR_SCE_DISABLED                           Errno = 0x20000000 | 0xC0000000 | 0x238\n\tERROR_UNKNOWN_EXCEPTION                      Errno = 0x20000000 | 0xC0000000 | 0x239\n\tERROR_PNP_REGISTRY_ERROR                     Errno = 0x20000000 | 0xC0000000 | 0x23A\n\tERROR_REMOTE_REQUEST_UNSUPPORTED             Errno = 0x20000000 | 0xC0000000 | 0x23B\n\tERROR_NOT_AN_INSTALLED_OEM_INF               Errno = 0x20000000 | 0xC0000000 | 0x23C\n\tERROR_INF_IN_USE_BY_DEVICES                  Errno = 0x20000000 | 0xC0000000 | 0x23D\n\tERROR_DI_FUNCTION_OBSOLETE                   Errno = 0x20000000 | 0xC0000000 | 0x23E\n\tERROR_NO_AUTHENTICODE_CATALOG                Errno = 0x20000000 | 0xC0000000 | 0x23F\n\tERROR_AUTHENTICODE_DISALLOWED                Errno = 0x20000000 | 0xC0000000 | 0x240\n\tERROR_AUTHENTICODE_TRUSTED_PUBLISHER         Errno = 0x20000000 | 0xC0000000 | 0x241\n\tERROR_AUTHENTICODE_TRUST_NOT_ESTABLISHED     Errno = 0x20000000 | 0xC0000000 | 0x242\n\tERROR_AUTHENTICODE_PUBLISHER_NOT_TRUSTED     Errno = 0x20000000 | 0xC0000000 | 0x243\n\tERROR_SIGNATURE_OSATTRIBUTE_MISMATCH         Errno = 0x20000000 | 0xC0000000 | 0x244\n\tERROR_ONLY_VALIDATE_VIA_AUTHENTICODE         Errno = 0x20000000 | 0xC0000000 | 0x245\n\tERROR_DEVICE_INSTALLER_NOT_READY             Errno = 0x20000000 | 0xC0000000 | 0x246\n\tERROR_DRIVER_STORE_ADD_FAILED                Errno = 0x20000000 | 0xC0000000 | 0x247\n\tERROR_DEVICE_INSTALL_BLOCKED                 Errno = 0x20000000 | 0xC0000000 | 0x248\n\tERROR_DRIVER_INSTALL_BLOCKED                 Errno = 0x20000000 | 0xC0000000 | 0x249\n\tERROR_WRONG_INF_TYPE                         Errno = 0x20000000 | 0xC0000000 | 0x24A\n\tERROR_FILE_HASH_NOT_IN_CATALOG               Errno = 0x20000000 | 0xC0000000 | 0x24B\n\tERROR_DRIVER_STORE_DELETE_FAILED             Errno = 0x20000000 | 0xC0000000 | 0x24C\n\tERROR_UNRECOVERABLE_STACK_OVERFLOW           Errno = 0x20000000 | 0xC0000000 | 0x300\n\tEXCEPTION_SPAPI_UNRECOVERABLE_STACK_OVERFLOW Errno = ERROR_UNRECOVERABLE_STACK_OVERFLOW\n\tERROR_NO_DEFAULT_INTERFACE_DEVICE            Errno = ERROR_NO_DEFAULT_DEVICE_INTERFACE\n\tERROR_INTERFACE_DEVICE_ACTIVE                Errno = ERROR_DEVICE_INTERFACE_ACTIVE\n\tERROR_INTERFACE_DEVICE_REMOVED               Errno = ERROR_DEVICE_INTERFACE_REMOVED\n\tERROR_NO_SUCH_INTERFACE_DEVICE               Errno = ERROR_NO_SUCH_DEVICE_INTERFACE\n)\n\nconst (\n\tMAX_DEVICE_ID_LEN   = 200\n\tMAX_DEVNODE_ID_LEN  = MAX_DEVICE_ID_LEN\n\tMAX_GUID_STRING_LEN = 39 // 38 chars + terminator null\n\tMAX_CLASS_NAME_LEN  = 32\n\tMAX_PROFILE_LEN     = 80\n\tMAX_CONFIG_VALUE    = 9999\n\tMAX_INSTANCE_VALUE  = 9999\n\tCONFIGMG_VERSION    = 0x0400\n)\n\n// Maximum string length constants\nconst (\n\tLINE_LEN                    = 256  // Windows 9x-compatible maximum for displayable strings coming from a device INF.\n\tMAX_INF_STRING_LENGTH       = 4096 // Actual maximum size of an INF string (including string substitutions).\n\tMAX_INF_SECTION_NAME_LENGTH = 255  // For Windows 9x compatibility, INF section names should be constrained to 32 characters.\n\tMAX_TITLE_LEN               = 60\n\tMAX_INSTRUCTION_LEN         = 256\n\tMAX_LABEL_LEN               = 30\n\tMAX_SERVICE_NAME_LEN        = 256\n\tMAX_SUBTITLE_LEN            = 256\n)\n\nconst (\n\t// SP_MAX_MACHINENAME_LENGTH defines maximum length of a machine name in the format expected by ConfigMgr32 CM_Connect_Machine (i.e., \"\\\\\\\\MachineName\\0\").\n\tSP_MAX_MACHINENAME_LENGTH = MAX_PATH + 3\n)\n\n// HSPFILEQ is type for setup file queue\ntype HSPFILEQ uintptr\n\n// DevInfo holds reference to device information set\ntype DevInfo Handle\n\n// DEVINST is a handle usually recognized by cfgmgr32 APIs\ntype DEVINST uint32\n\n// DevInfoData is a device information structure (references a device instance that is a member of a device information set)\ntype DevInfoData struct {\n\tsize      uint32\n\tClassGUID GUID\n\tDevInst   DEVINST\n\t_         uintptr\n}\n\n// DevInfoListDetailData is a structure for detailed information on a device information set (used for SetupDiGetDeviceInfoListDetail which supersedes the functionality of SetupDiGetDeviceInfoListClass).\ntype DevInfoListDetailData struct {\n\tsize                uint32 // Use unsafeSizeOf method\n\tClassGUID           GUID\n\tRemoteMachineHandle Handle\n\tremoteMachineName   [SP_MAX_MACHINENAME_LENGTH]uint16\n}\n\nfunc (*DevInfoListDetailData) unsafeSizeOf() uint32 {\n\tif unsafe.Sizeof(uintptr(0)) == 4 {\n\t\t// Windows declares this with pshpack1.h\n\t\treturn uint32(unsafe.Offsetof(DevInfoListDetailData{}.remoteMachineName) + unsafe.Sizeof(DevInfoListDetailData{}.remoteMachineName))\n\t}\n\treturn uint32(unsafe.Sizeof(DevInfoListDetailData{}))\n}\n\nfunc (data *DevInfoListDetailData) RemoteMachineName() string {\n\treturn UTF16ToString(data.remoteMachineName[:])\n}\n\nfunc (data *DevInfoListDetailData) SetRemoteMachineName(remoteMachineName string) error {\n\tstr, err := UTF16FromString(remoteMachineName)\n\tif err != nil {\n\t\treturn err\n\t}\n\tcopy(data.remoteMachineName[:], str)\n\treturn nil\n}\n\n// DI_FUNCTION is function type for device installer\ntype DI_FUNCTION uint32\n\nconst (\n\tDIF_SELECTDEVICE                   DI_FUNCTION = 0x00000001\n\tDIF_INSTALLDEVICE                  DI_FUNCTION = 0x00000002\n\tDIF_ASSIGNRESOURCES                DI_FUNCTION = 0x00000003\n\tDIF_PROPERTIES                     DI_FUNCTION = 0x00000004\n\tDIF_REMOVE                         DI_FUNCTION = 0x00000005\n\tDIF_FIRSTTIMESETUP                 DI_FUNCTION = 0x00000006\n\tDIF_FOUNDDEVICE                    DI_FUNCTION = 0x00000007\n\tDIF_SELECTCLASSDRIVERS             DI_FUNCTION = 0x00000008\n\tDIF_VALIDATECLASSDRIVERS           DI_FUNCTION = 0x00000009\n\tDIF_INSTALLCLASSDRIVERS            DI_FUNCTION = 0x0000000A\n\tDIF_CALCDISKSPACE                  DI_FUNCTION = 0x0000000B\n\tDIF_DESTROYPRIVATEDATA             DI_FUNCTION = 0x0000000C\n\tDIF_VALIDATEDRIVER                 DI_FUNCTION = 0x0000000D\n\tDIF_DETECT                         DI_FUNCTION = 0x0000000F\n\tDIF_INSTALLWIZARD                  DI_FUNCTION = 0x00000010\n\tDIF_DESTROYWIZARDDATA              DI_FUNCTION = 0x00000011\n\tDIF_PROPERTYCHANGE                 DI_FUNCTION = 0x00000012\n\tDIF_ENABLECLASS                    DI_FUNCTION = 0x00000013\n\tDIF_DETECTVERIFY                   DI_FUNCTION = 0x00000014\n\tDIF_INSTALLDEVICEFILES             DI_FUNCTION = 0x00000015\n\tDIF_UNREMOVE                       DI_FUNCTION = 0x00000016\n\tDIF_SELECTBESTCOMPATDRV            DI_FUNCTION = 0x00000017\n\tDIF_ALLOW_INSTALL                  DI_FUNCTION = 0x00000018\n\tDIF_REGISTERDEVICE                 DI_FUNCTION = 0x00000019\n\tDIF_NEWDEVICEWIZARD_PRESELECT      DI_FUNCTION = 0x0000001A\n\tDIF_NEWDEVICEWIZARD_SELECT         DI_FUNCTION = 0x0000001B\n\tDIF_NEWDEVICEWIZARD_PREANALYZE     DI_FUNCTION = 0x0000001C\n\tDIF_NEWDEVICEWIZARD_POSTANALYZE    DI_FUNCTION = 0x0000001D\n\tDIF_NEWDEVICEWIZARD_FINISHINSTALL  DI_FUNCTION = 0x0000001E\n\tDIF_INSTALLINTERFACES              DI_FUNCTION = 0x00000020\n\tDIF_DETECTCANCEL                   DI_FUNCTION = 0x00000021\n\tDIF_REGISTER_COINSTALLERS          DI_FUNCTION = 0x00000022\n\tDIF_ADDPROPERTYPAGE_ADVANCED       DI_FUNCTION = 0x00000023\n\tDIF_ADDPROPERTYPAGE_BASIC          DI_FUNCTION = 0x00000024\n\tDIF_TROUBLESHOOTER                 DI_FUNCTION = 0x00000026\n\tDIF_POWERMESSAGEWAKE               DI_FUNCTION = 0x00000027\n\tDIF_ADDREMOTEPROPERTYPAGE_ADVANCED DI_FUNCTION = 0x00000028\n\tDIF_UPDATEDRIVER_UI                DI_FUNCTION = 0x00000029\n\tDIF_FINISHINSTALL_ACTION           DI_FUNCTION = 0x0000002A\n)\n\n// DevInstallParams is device installation parameters structure (associated with a particular device information element, or globally with a device information set)\ntype DevInstallParams struct {\n\tsize                     uint32\n\tFlags                    DI_FLAGS\n\tFlagsEx                  DI_FLAGSEX\n\thwndParent               uintptr\n\tInstallMsgHandler        uintptr\n\tInstallMsgHandlerContext uintptr\n\tFileQueue                HSPFILEQ\n\t_                        uintptr\n\t_                        uint32\n\tdriverPath               [MAX_PATH]uint16\n}\n\nfunc (params *DevInstallParams) DriverPath() string {\n\treturn UTF16ToString(params.driverPath[:])\n}\n\nfunc (params *DevInstallParams) SetDriverPath(driverPath string) error {\n\tstr, err := UTF16FromString(driverPath)\n\tif err != nil {\n\t\treturn err\n\t}\n\tcopy(params.driverPath[:], str)\n\treturn nil\n}\n\n// DI_FLAGS is SP_DEVINSTALL_PARAMS.Flags values\ntype DI_FLAGS uint32\n\nconst (\n\t// Flags for choosing a device\n\tDI_SHOWOEM       DI_FLAGS = 0x00000001 // support Other... button\n\tDI_SHOWCOMPAT    DI_FLAGS = 0x00000002 // show compatibility list\n\tDI_SHOWCLASS     DI_FLAGS = 0x00000004 // show class list\n\tDI_SHOWALL       DI_FLAGS = 0x00000007 // both class & compat list shown\n\tDI_NOVCP         DI_FLAGS = 0x00000008 // don't create a new copy queue--use caller-supplied FileQueue\n\tDI_DIDCOMPAT     DI_FLAGS = 0x00000010 // Searched for compatible devices\n\tDI_DIDCLASS      DI_FLAGS = 0x00000020 // Searched for class devices\n\tDI_AUTOASSIGNRES DI_FLAGS = 0x00000040 // No UI for resources if possible\n\n\t// Flags returned by DiInstallDevice to indicate need to reboot/restart\n\tDI_NEEDRESTART DI_FLAGS = 0x00000080 // Reboot required to take effect\n\tDI_NEEDREBOOT  DI_FLAGS = 0x00000100 // \"\"\n\n\t// Flags for device installation\n\tDI_NOBROWSE DI_FLAGS = 0x00000200 // no Browse... in InsertDisk\n\n\t// Flags set by DiBuildDriverInfoList\n\tDI_MULTMFGS DI_FLAGS = 0x00000400 // Set if multiple manufacturers in class driver list\n\n\t// Flag indicates that device is disabled\n\tDI_DISABLED DI_FLAGS = 0x00000800 // Set if device disabled\n\n\t// Flags for Device/Class Properties\n\tDI_GENERALPAGE_ADDED  DI_FLAGS = 0x00001000\n\tDI_RESOURCEPAGE_ADDED DI_FLAGS = 0x00002000\n\n\t// Flag to indicate the setting properties for this Device (or class) caused a change so the Dev Mgr UI probably needs to be updated.\n\tDI_PROPERTIES_CHANGE DI_FLAGS = 0x00004000\n\n\t// Flag to indicate that the sorting from the INF file should be used.\n\tDI_INF_IS_SORTED DI_FLAGS = 0x00008000\n\n\t// Flag to indicate that only the INF specified by SP_DEVINSTALL_PARAMS.DriverPath should be searched.\n\tDI_ENUMSINGLEINF DI_FLAGS = 0x00010000\n\n\t// Flag that prevents ConfigMgr from removing/re-enumerating devices during device\n\t// registration, installation, and deletion.\n\tDI_DONOTCALLCONFIGMG DI_FLAGS = 0x00020000\n\n\t// The following flag can be used to install a device disabled\n\tDI_INSTALLDISABLED DI_FLAGS = 0x00040000\n\n\t// Flag that causes SetupDiBuildDriverInfoList to build a device's compatible driver\n\t// list from its existing class driver list, instead of the normal INF search.\n\tDI_COMPAT_FROM_CLASS DI_FLAGS = 0x00080000\n\n\t// This flag is set if the Class Install params should be used.\n\tDI_CLASSINSTALLPARAMS DI_FLAGS = 0x00100000\n\n\t// This flag is set if the caller of DiCallClassInstaller does NOT want the internal default action performed if the Class installer returns ERROR_DI_DO_DEFAULT.\n\tDI_NODI_DEFAULTACTION DI_FLAGS = 0x00200000\n\n\t// Flags for device installation\n\tDI_QUIETINSTALL        DI_FLAGS = 0x00800000 // don't confuse the user with questions or excess info\n\tDI_NOFILECOPY          DI_FLAGS = 0x01000000 // No file Copy necessary\n\tDI_FORCECOPY           DI_FLAGS = 0x02000000 // Force files to be copied from install path\n\tDI_DRIVERPAGE_ADDED    DI_FLAGS = 0x04000000 // Prop provider added Driver page.\n\tDI_USECI_SELECTSTRINGS DI_FLAGS = 0x08000000 // Use Class Installer Provided strings in the Select Device Dlg\n\tDI_OVERRIDE_INFFLAGS   DI_FLAGS = 0x10000000 // Override INF flags\n\tDI_PROPS_NOCHANGEUSAGE DI_FLAGS = 0x20000000 // No Enable/Disable in General Props\n\n\tDI_NOSELECTICONS DI_FLAGS = 0x40000000 // No small icons in select device dialogs\n\n\tDI_NOWRITE_IDS DI_FLAGS = 0x80000000 // Don't write HW & Compat IDs on install\n)\n\n// DI_FLAGSEX is SP_DEVINSTALL_PARAMS.FlagsEx values\ntype DI_FLAGSEX uint32\n\nconst (\n\tDI_FLAGSEX_CI_FAILED                DI_FLAGSEX = 0x00000004 // Failed to Load/Call class installer\n\tDI_FLAGSEX_FINISHINSTALL_ACTION     DI_FLAGSEX = 0x00000008 // Class/co-installer wants to get a DIF_FINISH_INSTALL action in client context.\n\tDI_FLAGSEX_DIDINFOLIST              DI_FLAGSEX = 0x00000010 // Did the Class Info List\n\tDI_FLAGSEX_DIDCOMPATINFO            DI_FLAGSEX = 0x00000020 // Did the Compat Info List\n\tDI_FLAGSEX_FILTERCLASSES            DI_FLAGSEX = 0x00000040\n\tDI_FLAGSEX_SETFAILEDINSTALL         DI_FLAGSEX = 0x00000080\n\tDI_FLAGSEX_DEVICECHANGE             DI_FLAGSEX = 0x00000100\n\tDI_FLAGSEX_ALWAYSWRITEIDS           DI_FLAGSEX = 0x00000200\n\tDI_FLAGSEX_PROPCHANGE_PENDING       DI_FLAGSEX = 0x00000400 // One or more device property sheets have had changes made to them, and need to have a DIF_PROPERTYCHANGE occur.\n\tDI_FLAGSEX_ALLOWEXCLUDEDDRVS        DI_FLAGSEX = 0x00000800\n\tDI_FLAGSEX_NOUIONQUERYREMOVE        DI_FLAGSEX = 0x00001000\n\tDI_FLAGSEX_USECLASSFORCOMPAT        DI_FLAGSEX = 0x00002000 // Use the device's class when building compat drv list. (Ignored if DI_COMPAT_FROM_CLASS flag is specified.)\n\tDI_FLAGSEX_NO_DRVREG_MODIFY         DI_FLAGSEX = 0x00008000 // Don't run AddReg and DelReg for device's software (driver) key.\n\tDI_FLAGSEX_IN_SYSTEM_SETUP          DI_FLAGSEX = 0x00010000 // Installation is occurring during initial system setup.\n\tDI_FLAGSEX_INET_DRIVER              DI_FLAGSEX = 0x00020000 // Driver came from Windows Update\n\tDI_FLAGSEX_APPENDDRIVERLIST         DI_FLAGSEX = 0x00040000 // Cause SetupDiBuildDriverInfoList to append a new driver list to an existing list.\n\tDI_FLAGSEX_PREINSTALLBACKUP         DI_FLAGSEX = 0x00080000 // not used\n\tDI_FLAGSEX_BACKUPONREPLACE          DI_FLAGSEX = 0x00100000 // not used\n\tDI_FLAGSEX_DRIVERLIST_FROM_URL      DI_FLAGSEX = 0x00200000 // build driver list from INF(s) retrieved from URL specified in SP_DEVINSTALL_PARAMS.DriverPath (empty string means Windows Update website)\n\tDI_FLAGSEX_EXCLUDE_OLD_INET_DRIVERS DI_FLAGSEX = 0x00800000 // Don't include old Internet drivers when building a driver list. Ignored on Windows Vista and later.\n\tDI_FLAGSEX_POWERPAGE_ADDED          DI_FLAGSEX = 0x01000000 // class installer added their own power page\n\tDI_FLAGSEX_FILTERSIMILARDRIVERS     DI_FLAGSEX = 0x02000000 // only include similar drivers in class list\n\tDI_FLAGSEX_INSTALLEDDRIVER          DI_FLAGSEX = 0x04000000 // only add the installed driver to the class or compat driver list.  Used in calls to SetupDiBuildDriverInfoList\n\tDI_FLAGSEX_NO_CLASSLIST_NODE_MERGE  DI_FLAGSEX = 0x08000000 // Don't remove identical driver nodes from the class list\n\tDI_FLAGSEX_ALTPLATFORM_DRVSEARCH    DI_FLAGSEX = 0x10000000 // Build driver list based on alternate platform information specified in associated file queue\n\tDI_FLAGSEX_RESTART_DEVICE_ONLY      DI_FLAGSEX = 0x20000000 // only restart the device drivers are being installed on as opposed to restarting all devices using those drivers.\n\tDI_FLAGSEX_RECURSIVESEARCH          DI_FLAGSEX = 0x40000000 // Tell SetupDiBuildDriverInfoList to do a recursive search\n\tDI_FLAGSEX_SEARCH_PUBLISHED_INFS    DI_FLAGSEX = 0x80000000 // Tell SetupDiBuildDriverInfoList to do a \"published INF\" search\n)\n\n// ClassInstallHeader is the first member of any class install parameters structure. It contains the device installation request code that defines the format of the rest of the install parameters structure.\ntype ClassInstallHeader struct {\n\tsize            uint32\n\tInstallFunction DI_FUNCTION\n}\n\nfunc MakeClassInstallHeader(installFunction DI_FUNCTION) *ClassInstallHeader {\n\thdr := &ClassInstallHeader{InstallFunction: installFunction}\n\thdr.size = uint32(unsafe.Sizeof(*hdr))\n\treturn hdr\n}\n\n// DICS_STATE specifies values indicating a change in a device's state\ntype DICS_STATE uint32\n\nconst (\n\tDICS_ENABLE     DICS_STATE = 0x00000001 // The device is being enabled.\n\tDICS_DISABLE    DICS_STATE = 0x00000002 // The device is being disabled.\n\tDICS_PROPCHANGE DICS_STATE = 0x00000003 // The properties of the device have changed.\n\tDICS_START      DICS_STATE = 0x00000004 // The device is being started (if the request is for the currently active hardware profile).\n\tDICS_STOP       DICS_STATE = 0x00000005 // The device is being stopped. The driver stack will be unloaded and the CSCONFIGFLAG_DO_NOT_START flag will be set for the device.\n)\n\n// DICS_FLAG specifies the scope of a device property change\ntype DICS_FLAG uint32\n\nconst (\n\tDICS_FLAG_GLOBAL         DICS_FLAG = 0x00000001 // make change in all hardware profiles\n\tDICS_FLAG_CONFIGSPECIFIC DICS_FLAG = 0x00000002 // make change in specified profile only\n\tDICS_FLAG_CONFIGGENERAL  DICS_FLAG = 0x00000004 // 1 or more hardware profile-specific changes to follow (obsolete)\n)\n\n// PropChangeParams is a structure corresponding to a DIF_PROPERTYCHANGE install function.\ntype PropChangeParams struct {\n\tClassInstallHeader ClassInstallHeader\n\tStateChange        DICS_STATE\n\tScope              DICS_FLAG\n\tHwProfile          uint32\n}\n\n// DI_REMOVEDEVICE specifies the scope of the device removal\ntype DI_REMOVEDEVICE uint32\n\nconst (\n\tDI_REMOVEDEVICE_GLOBAL         DI_REMOVEDEVICE = 0x00000001 // Make this change in all hardware profiles. Remove information about the device from the registry.\n\tDI_REMOVEDEVICE_CONFIGSPECIFIC DI_REMOVEDEVICE = 0x00000002 // Make this change to only the hardware profile specified by HwProfile. this flag only applies to root-enumerated devices. When Windows removes the device from the last hardware profile in which it was configured, Windows performs a global removal.\n)\n\n// RemoveDeviceParams is a structure corresponding to a DIF_REMOVE install function.\ntype RemoveDeviceParams struct {\n\tClassInstallHeader ClassInstallHeader\n\tScope              DI_REMOVEDEVICE\n\tHwProfile          uint32\n}\n\n// DrvInfoData is driver information structure (member of a driver info list that may be associated with a particular device instance, or (globally) with a device information set)\ntype DrvInfoData struct {\n\tsize          uint32\n\tDriverType    uint32\n\t_             uintptr\n\tdescription   [LINE_LEN]uint16\n\tmfgName       [LINE_LEN]uint16\n\tproviderName  [LINE_LEN]uint16\n\tDriverDate    Filetime\n\tDriverVersion uint64\n}\n\nfunc (data *DrvInfoData) Description() string {\n\treturn UTF16ToString(data.description[:])\n}\n\nfunc (data *DrvInfoData) SetDescription(description string) error {\n\tstr, err := UTF16FromString(description)\n\tif err != nil {\n\t\treturn err\n\t}\n\tcopy(data.description[:], str)\n\treturn nil\n}\n\nfunc (data *DrvInfoData) MfgName() string {\n\treturn UTF16ToString(data.mfgName[:])\n}\n\nfunc (data *DrvInfoData) SetMfgName(mfgName string) error {\n\tstr, err := UTF16FromString(mfgName)\n\tif err != nil {\n\t\treturn err\n\t}\n\tcopy(data.mfgName[:], str)\n\treturn nil\n}\n\nfunc (data *DrvInfoData) ProviderName() string {\n\treturn UTF16ToString(data.providerName[:])\n}\n\nfunc (data *DrvInfoData) SetProviderName(providerName string) error {\n\tstr, err := UTF16FromString(providerName)\n\tif err != nil {\n\t\treturn err\n\t}\n\tcopy(data.providerName[:], str)\n\treturn nil\n}\n\n// IsNewer method returns true if DrvInfoData date and version is newer than supplied parameters.\nfunc (data *DrvInfoData) IsNewer(driverDate Filetime, driverVersion uint64) bool {\n\tif data.DriverDate.HighDateTime > driverDate.HighDateTime {\n\t\treturn true\n\t}\n\tif data.DriverDate.HighDateTime < driverDate.HighDateTime {\n\t\treturn false\n\t}\n\n\tif data.DriverDate.LowDateTime > driverDate.LowDateTime {\n\t\treturn true\n\t}\n\tif data.DriverDate.LowDateTime < driverDate.LowDateTime {\n\t\treturn false\n\t}\n\n\tif data.DriverVersion > driverVersion {\n\t\treturn true\n\t}\n\tif data.DriverVersion < driverVersion {\n\t\treturn false\n\t}\n\n\treturn false\n}\n\n// DrvInfoDetailData is driver information details structure (provides detailed information about a particular driver information structure)\ntype DrvInfoDetailData struct {\n\tsize            uint32 // Use unsafeSizeOf method\n\tInfDate         Filetime\n\tcompatIDsOffset uint32\n\tcompatIDsLength uint32\n\t_               uintptr\n\tsectionName     [LINE_LEN]uint16\n\tinfFileName     [MAX_PATH]uint16\n\tdrvDescription  [LINE_LEN]uint16\n\thardwareID      [1]uint16\n}\n\nfunc (*DrvInfoDetailData) unsafeSizeOf() uint32 {\n\tif unsafe.Sizeof(uintptr(0)) == 4 {\n\t\t// Windows declares this with pshpack1.h\n\t\treturn uint32(unsafe.Offsetof(DrvInfoDetailData{}.hardwareID) + unsafe.Sizeof(DrvInfoDetailData{}.hardwareID))\n\t}\n\treturn uint32(unsafe.Sizeof(DrvInfoDetailData{}))\n}\n\nfunc (data *DrvInfoDetailData) SectionName() string {\n\treturn UTF16ToString(data.sectionName[:])\n}\n\nfunc (data *DrvInfoDetailData) InfFileName() string {\n\treturn UTF16ToString(data.infFileName[:])\n}\n\nfunc (data *DrvInfoDetailData) DrvDescription() string {\n\treturn UTF16ToString(data.drvDescription[:])\n}\n\nfunc (data *DrvInfoDetailData) HardwareID() string {\n\tif data.compatIDsOffset > 1 {\n\t\tbufW := data.getBuf()\n\t\treturn UTF16ToString(bufW[:wcslen(bufW)])\n\t}\n\n\treturn \"\"\n}\n\nfunc (data *DrvInfoDetailData) CompatIDs() []string {\n\ta := make([]string, 0)\n\n\tif data.compatIDsLength > 0 {\n\t\tbufW := data.getBuf()\n\t\tbufW = bufW[data.compatIDsOffset : data.compatIDsOffset+data.compatIDsLength]\n\t\tfor i := 0; i < len(bufW); {\n\t\t\tj := i + wcslen(bufW[i:])\n\t\t\tif i < j {\n\t\t\t\ta = append(a, UTF16ToString(bufW[i:j]))\n\t\t\t}\n\t\t\ti = j + 1\n\t\t}\n\t}\n\n\treturn a\n}\n\nfunc (data *DrvInfoDetailData) getBuf() []uint16 {\n\tlen := (data.size - uint32(unsafe.Offsetof(data.hardwareID))) / 2\n\tsl := struct {\n\t\taddr *uint16\n\t\tlen  int\n\t\tcap  int\n\t}{&data.hardwareID[0], int(len), int(len)}\n\treturn *(*[]uint16)(unsafe.Pointer(&sl))\n}\n\n// IsCompatible method tests if given hardware ID matches the driver or is listed on the compatible ID list.\nfunc (data *DrvInfoDetailData) IsCompatible(hwid string) bool {\n\thwidLC := strings.ToLower(hwid)\n\tif strings.ToLower(data.HardwareID()) == hwidLC {\n\t\treturn true\n\t}\n\ta := data.CompatIDs()\n\tfor i := range a {\n\t\tif strings.ToLower(a[i]) == hwidLC {\n\t\t\treturn true\n\t\t}\n\t}\n\n\treturn false\n}\n\n// DICD flags control SetupDiCreateDeviceInfo\ntype DICD uint32\n\nconst (\n\tDICD_GENERATE_ID       DICD = 0x00000001\n\tDICD_INHERIT_CLASSDRVS DICD = 0x00000002\n)\n\n// SUOI flags control SetupUninstallOEMInf\ntype SUOI uint32\n\nconst (\n\tSUOI_FORCEDELETE SUOI = 0x0001\n)\n\n// SPDIT flags to distinguish between class drivers and\n// device drivers. (Passed in 'DriverType' parameter of\n// driver information list APIs)\ntype SPDIT uint32\n\nconst (\n\tSPDIT_NODRIVER     SPDIT = 0x00000000\n\tSPDIT_CLASSDRIVER  SPDIT = 0x00000001\n\tSPDIT_COMPATDRIVER SPDIT = 0x00000002\n)\n\n// DIGCF flags control what is included in the device information set built by SetupDiGetClassDevs\ntype DIGCF uint32\n\nconst (\n\tDIGCF_DEFAULT         DIGCF = 0x00000001 // only valid with DIGCF_DEVICEINTERFACE\n\tDIGCF_PRESENT         DIGCF = 0x00000002\n\tDIGCF_ALLCLASSES      DIGCF = 0x00000004\n\tDIGCF_PROFILE         DIGCF = 0x00000008\n\tDIGCF_DEVICEINTERFACE DIGCF = 0x00000010\n)\n\n// DIREG specifies values for SetupDiCreateDevRegKey, SetupDiOpenDevRegKey, and SetupDiDeleteDevRegKey.\ntype DIREG uint32\n\nconst (\n\tDIREG_DEV  DIREG = 0x00000001 // Open/Create/Delete device key\n\tDIREG_DRV  DIREG = 0x00000002 // Open/Create/Delete driver key\n\tDIREG_BOTH DIREG = 0x00000004 // Delete both driver and Device key\n)\n\n// SPDRP specifies device registry property codes\n// (Codes marked as read-only (R) may only be used for\n// SetupDiGetDeviceRegistryProperty)\n//\n// These values should cover the same set of registry properties\n// as defined by the CM_DRP codes in cfgmgr32.h.\n//\n// Note that SPDRP codes are zero based while CM_DRP codes are one based!\ntype SPDRP uint32\n\nconst (\n\tSPDRP_DEVICEDESC                  SPDRP = 0x00000000 // DeviceDesc (R/W)\n\tSPDRP_HARDWAREID                  SPDRP = 0x00000001 // HardwareID (R/W)\n\tSPDRP_COMPATIBLEIDS               SPDRP = 0x00000002 // CompatibleIDs (R/W)\n\tSPDRP_SERVICE                     SPDRP = 0x00000004 // Service (R/W)\n\tSPDRP_CLASS                       SPDRP = 0x00000007 // Class (R--tied to ClassGUID)\n\tSPDRP_CLASSGUID                   SPDRP = 0x00000008 // ClassGUID (R/W)\n\tSPDRP_DRIVER                      SPDRP = 0x00000009 // Driver (R/W)\n\tSPDRP_CONFIGFLAGS                 SPDRP = 0x0000000A // ConfigFlags (R/W)\n\tSPDRP_MFG                         SPDRP = 0x0000000B // Mfg (R/W)\n\tSPDRP_FRIENDLYNAME                SPDRP = 0x0000000C // FriendlyName (R/W)\n\tSPDRP_LOCATION_INFORMATION        SPDRP = 0x0000000D // LocationInformation (R/W)\n\tSPDRP_PHYSICAL_DEVICE_OBJECT_NAME SPDRP = 0x0000000E // PhysicalDeviceObjectName (R)\n\tSPDRP_CAPABILITIES                SPDRP = 0x0000000F // Capabilities (R)\n\tSPDRP_UI_NUMBER                   SPDRP = 0x00000010 // UiNumber (R)\n\tSPDRP_UPPERFILTERS                SPDRP = 0x00000011 // UpperFilters (R/W)\n\tSPDRP_LOWERFILTERS                SPDRP = 0x00000012 // LowerFilters (R/W)\n\tSPDRP_BUSTYPEGUID                 SPDRP = 0x00000013 // BusTypeGUID (R)\n\tSPDRP_LEGACYBUSTYPE               SPDRP = 0x00000014 // LegacyBusType (R)\n\tSPDRP_BUSNUMBER                   SPDRP = 0x00000015 // BusNumber (R)\n\tSPDRP_ENUMERATOR_NAME             SPDRP = 0x00000016 // Enumerator Name (R)\n\tSPDRP_SECURITY                    SPDRP = 0x00000017 // Security (R/W, binary form)\n\tSPDRP_SECURITY_SDS                SPDRP = 0x00000018 // Security (W, SDS form)\n\tSPDRP_DEVTYPE                     SPDRP = 0x00000019 // Device Type (R/W)\n\tSPDRP_EXCLUSIVE                   SPDRP = 0x0000001A // Device is exclusive-access (R/W)\n\tSPDRP_CHARACTERISTICS             SPDRP = 0x0000001B // Device Characteristics (R/W)\n\tSPDRP_ADDRESS                     SPDRP = 0x0000001C // Device Address (R)\n\tSPDRP_UI_NUMBER_DESC_FORMAT       SPDRP = 0x0000001D // UiNumberDescFormat (R/W)\n\tSPDRP_DEVICE_POWER_DATA           SPDRP = 0x0000001E // Device Power Data (R)\n\tSPDRP_REMOVAL_POLICY              SPDRP = 0x0000001F // Removal Policy (R)\n\tSPDRP_REMOVAL_POLICY_HW_DEFAULT   SPDRP = 0x00000020 // Hardware Removal Policy (R)\n\tSPDRP_REMOVAL_POLICY_OVERRIDE     SPDRP = 0x00000021 // Removal Policy Override (RW)\n\tSPDRP_INSTALL_STATE               SPDRP = 0x00000022 // Device Install State (R)\n\tSPDRP_LOCATION_PATHS              SPDRP = 0x00000023 // Device Location Paths (R)\n\tSPDRP_BASE_CONTAINERID            SPDRP = 0x00000024 // Base ContainerID (R)\n\n\tSPDRP_MAXIMUM_PROPERTY SPDRP = 0x00000025 // Upper bound on ordinals\n)\n\n// DEVPROPTYPE represents the property-data-type identifier that specifies the\n// data type of a device property value in the unified device property model.\ntype DEVPROPTYPE uint32\n\nconst (\n\tDEVPROP_TYPEMOD_ARRAY DEVPROPTYPE = 0x00001000\n\tDEVPROP_TYPEMOD_LIST  DEVPROPTYPE = 0x00002000\n\n\tDEVPROP_TYPE_EMPTY                      DEVPROPTYPE = 0x00000000\n\tDEVPROP_TYPE_NULL                       DEVPROPTYPE = 0x00000001\n\tDEVPROP_TYPE_SBYTE                      DEVPROPTYPE = 0x00000002\n\tDEVPROP_TYPE_BYTE                       DEVPROPTYPE = 0x00000003\n\tDEVPROP_TYPE_INT16                      DEVPROPTYPE = 0x00000004\n\tDEVPROP_TYPE_UINT16                     DEVPROPTYPE = 0x00000005\n\tDEVPROP_TYPE_INT32                      DEVPROPTYPE = 0x00000006\n\tDEVPROP_TYPE_UINT32                     DEVPROPTYPE = 0x00000007\n\tDEVPROP_TYPE_INT64                      DEVPROPTYPE = 0x00000008\n\tDEVPROP_TYPE_UINT64                     DEVPROPTYPE = 0x00000009\n\tDEVPROP_TYPE_FLOAT                      DEVPROPTYPE = 0x0000000A\n\tDEVPROP_TYPE_DOUBLE                     DEVPROPTYPE = 0x0000000B\n\tDEVPROP_TYPE_DECIMAL                    DEVPROPTYPE = 0x0000000C\n\tDEVPROP_TYPE_GUID                       DEVPROPTYPE = 0x0000000D\n\tDEVPROP_TYPE_CURRENCY                   DEVPROPTYPE = 0x0000000E\n\tDEVPROP_TYPE_DATE                       DEVPROPTYPE = 0x0000000F\n\tDEVPROP_TYPE_FILETIME                   DEVPROPTYPE = 0x00000010\n\tDEVPROP_TYPE_BOOLEAN                    DEVPROPTYPE = 0x00000011\n\tDEVPROP_TYPE_STRING                     DEVPROPTYPE = 0x00000012\n\tDEVPROP_TYPE_STRING_LIST                DEVPROPTYPE = DEVPROP_TYPE_STRING | DEVPROP_TYPEMOD_LIST\n\tDEVPROP_TYPE_SECURITY_DESCRIPTOR        DEVPROPTYPE = 0x00000013\n\tDEVPROP_TYPE_SECURITY_DESCRIPTOR_STRING DEVPROPTYPE = 0x00000014\n\tDEVPROP_TYPE_DEVPROPKEY                 DEVPROPTYPE = 0x00000015\n\tDEVPROP_TYPE_DEVPROPTYPE                DEVPROPTYPE = 0x00000016\n\tDEVPROP_TYPE_BINARY                     DEVPROPTYPE = DEVPROP_TYPE_BYTE | DEVPROP_TYPEMOD_ARRAY\n\tDEVPROP_TYPE_ERROR                      DEVPROPTYPE = 0x00000017\n\tDEVPROP_TYPE_NTSTATUS                   DEVPROPTYPE = 0x00000018\n\tDEVPROP_TYPE_STRING_INDIRECT            DEVPROPTYPE = 0x00000019\n\n\tMAX_DEVPROP_TYPE    DEVPROPTYPE = 0x00000019\n\tMAX_DEVPROP_TYPEMOD DEVPROPTYPE = 0x00002000\n\n\tDEVPROP_MASK_TYPE    DEVPROPTYPE = 0x00000FFF\n\tDEVPROP_MASK_TYPEMOD DEVPROPTYPE = 0x0000F000\n)\n\n// DEVPROPGUID specifies a property category.\ntype DEVPROPGUID GUID\n\n// DEVPROPID uniquely identifies the property within the property category.\ntype DEVPROPID uint32\n\nconst DEVPROPID_FIRST_USABLE DEVPROPID = 2\n\n// DEVPROPKEY represents a device property key for a device property in the\n// unified device property model.\ntype DEVPROPKEY struct {\n\tFmtID DEVPROPGUID\n\tPID   DEVPROPID\n}\n\n// CONFIGRET is a return value or error code from cfgmgr32 APIs\ntype CONFIGRET uint32\n\nfunc (ret CONFIGRET) Error() string {\n\tif win32Error, ok := ret.Unwrap().(Errno); ok {\n\t\treturn fmt.Sprintf(\"%s (CfgMgr error: 0x%08x)\", win32Error.Error(), uint32(ret))\n\t}\n\treturn fmt.Sprintf(\"CfgMgr error: 0x%08x\", uint32(ret))\n}\n\nfunc (ret CONFIGRET) Win32Error(defaultError Errno) Errno {\n\treturn cm_MapCrToWin32Err(ret, defaultError)\n}\n\nfunc (ret CONFIGRET) Unwrap() error {\n\tconst noMatch = Errno(^uintptr(0))\n\twin32Error := ret.Win32Error(noMatch)\n\tif win32Error == noMatch {\n\t\treturn nil\n\t}\n\treturn win32Error\n}\n\nconst (\n\tCR_SUCCESS                  CONFIGRET = 0x00000000\n\tCR_DEFAULT                  CONFIGRET = 0x00000001\n\tCR_OUT_OF_MEMORY            CONFIGRET = 0x00000002\n\tCR_INVALID_POINTER          CONFIGRET = 0x00000003\n\tCR_INVALID_FLAG             CONFIGRET = 0x00000004\n\tCR_INVALID_DEVNODE          CONFIGRET = 0x00000005\n\tCR_INVALID_DEVINST                    = CR_INVALID_DEVNODE\n\tCR_INVALID_RES_DES          CONFIGRET = 0x00000006\n\tCR_INVALID_LOG_CONF         CONFIGRET = 0x00000007\n\tCR_INVALID_ARBITRATOR       CONFIGRET = 0x00000008\n\tCR_INVALID_NODELIST         CONFIGRET = 0x00000009\n\tCR_DEVNODE_HAS_REQS         CONFIGRET = 0x0000000A\n\tCR_DEVINST_HAS_REQS                   = CR_DEVNODE_HAS_REQS\n\tCR_INVALID_RESOURCEID       CONFIGRET = 0x0000000B\n\tCR_DLVXD_NOT_FOUND          CONFIGRET = 0x0000000C\n\tCR_NO_SUCH_DEVNODE          CONFIGRET = 0x0000000D\n\tCR_NO_SUCH_DEVINST                    = CR_NO_SUCH_DEVNODE\n\tCR_NO_MORE_LOG_CONF         CONFIGRET = 0x0000000E\n\tCR_NO_MORE_RES_DES          CONFIGRET = 0x0000000F\n\tCR_ALREADY_SUCH_DEVNODE     CONFIGRET = 0x00000010\n\tCR_ALREADY_SUCH_DEVINST               = CR_ALREADY_SUCH_DEVNODE\n\tCR_INVALID_RANGE_LIST       CONFIGRET = 0x00000011\n\tCR_INVALID_RANGE            CONFIGRET = 0x00000012\n\tCR_FAILURE                  CONFIGRET = 0x00000013\n\tCR_NO_SUCH_LOGICAL_DEV      CONFIGRET = 0x00000014\n\tCR_CREATE_BLOCKED           CONFIGRET = 0x00000015\n\tCR_NOT_SYSTEM_VM            CONFIGRET = 0x00000016\n\tCR_REMOVE_VETOED            CONFIGRET = 0x00000017\n\tCR_APM_VETOED               CONFIGRET = 0x00000018\n\tCR_INVALID_LOAD_TYPE        CONFIGRET = 0x00000019\n\tCR_BUFFER_SMALL             CONFIGRET = 0x0000001A\n\tCR_NO_ARBITRATOR            CONFIGRET = 0x0000001B\n\tCR_NO_REGISTRY_HANDLE       CONFIGRET = 0x0000001C\n\tCR_REGISTRY_ERROR           CONFIGRET = 0x0000001D\n\tCR_INVALID_DEVICE_ID        CONFIGRET = 0x0000001E\n\tCR_INVALID_DATA             CONFIGRET = 0x0000001F\n\tCR_INVALID_API              CONFIGRET = 0x00000020\n\tCR_DEVLOADER_NOT_READY      CONFIGRET = 0x00000021\n\tCR_NEED_RESTART             CONFIGRET = 0x00000022\n\tCR_NO_MORE_HW_PROFILES      CONFIGRET = 0x00000023\n\tCR_DEVICE_NOT_THERE         CONFIGRET = 0x00000024\n\tCR_NO_SUCH_VALUE            CONFIGRET = 0x00000025\n\tCR_WRONG_TYPE               CONFIGRET = 0x00000026\n\tCR_INVALID_PRIORITY         CONFIGRET = 0x00000027\n\tCR_NOT_DISABLEABLE          CONFIGRET = 0x00000028\n\tCR_FREE_RESOURCES           CONFIGRET = 0x00000029\n\tCR_QUERY_VETOED             CONFIGRET = 0x0000002A\n\tCR_CANT_SHARE_IRQ           CONFIGRET = 0x0000002B\n\tCR_NO_DEPENDENT             CONFIGRET = 0x0000002C\n\tCR_SAME_RESOURCES           CONFIGRET = 0x0000002D\n\tCR_NO_SUCH_REGISTRY_KEY     CONFIGRET = 0x0000002E\n\tCR_INVALID_MACHINENAME      CONFIGRET = 0x0000002F\n\tCR_REMOTE_COMM_FAILURE      CONFIGRET = 0x00000030\n\tCR_MACHINE_UNAVAILABLE      CONFIGRET = 0x00000031\n\tCR_NO_CM_SERVICES           CONFIGRET = 0x00000032\n\tCR_ACCESS_DENIED            CONFIGRET = 0x00000033\n\tCR_CALL_NOT_IMPLEMENTED     CONFIGRET = 0x00000034\n\tCR_INVALID_PROPERTY         CONFIGRET = 0x00000035\n\tCR_DEVICE_INTERFACE_ACTIVE  CONFIGRET = 0x00000036\n\tCR_NO_SUCH_DEVICE_INTERFACE CONFIGRET = 0x00000037\n\tCR_INVALID_REFERENCE_STRING CONFIGRET = 0x00000038\n\tCR_INVALID_CONFLICT_LIST    CONFIGRET = 0x00000039\n\tCR_INVALID_INDEX            CONFIGRET = 0x0000003A\n\tCR_INVALID_STRUCTURE_SIZE   CONFIGRET = 0x0000003B\n\tNUM_CR_RESULTS              CONFIGRET = 0x0000003C\n)\n\nconst (\n\tCM_GET_DEVICE_INTERFACE_LIST_PRESENT     = 0 // only currently 'live' device interfaces\n\tCM_GET_DEVICE_INTERFACE_LIST_ALL_DEVICES = 1 // all registered device interfaces, live or not\n)\n\nconst (\n\tDN_ROOT_ENUMERATED       = 0x00000001        // Was enumerated by ROOT\n\tDN_DRIVER_LOADED         = 0x00000002        // Has Register_Device_Driver\n\tDN_ENUM_LOADED           = 0x00000004        // Has Register_Enumerator\n\tDN_STARTED               = 0x00000008        // Is currently configured\n\tDN_MANUAL                = 0x00000010        // Manually installed\n\tDN_NEED_TO_ENUM          = 0x00000020        // May need reenumeration\n\tDN_NOT_FIRST_TIME        = 0x00000040        // Has received a config\n\tDN_HARDWARE_ENUM         = 0x00000080        // Enum generates hardware ID\n\tDN_LIAR                  = 0x00000100        // Lied about can reconfig once\n\tDN_HAS_MARK              = 0x00000200        // Not CM_Create_DevInst lately\n\tDN_HAS_PROBLEM           = 0x00000400        // Need device installer\n\tDN_FILTERED              = 0x00000800        // Is filtered\n\tDN_MOVED                 = 0x00001000        // Has been moved\n\tDN_DISABLEABLE           = 0x00002000        // Can be disabled\n\tDN_REMOVABLE             = 0x00004000        // Can be removed\n\tDN_PRIVATE_PROBLEM       = 0x00008000        // Has a private problem\n\tDN_MF_PARENT             = 0x00010000        // Multi function parent\n\tDN_MF_CHILD              = 0x00020000        // Multi function child\n\tDN_WILL_BE_REMOVED       = 0x00040000        // DevInst is being removed\n\tDN_NOT_FIRST_TIMEE       = 0x00080000        // Has received a config enumerate\n\tDN_STOP_FREE_RES         = 0x00100000        // When child is stopped, free resources\n\tDN_REBAL_CANDIDATE       = 0x00200000        // Don't skip during rebalance\n\tDN_BAD_PARTIAL           = 0x00400000        // This devnode's log_confs do not have same resources\n\tDN_NT_ENUMERATOR         = 0x00800000        // This devnode's is an NT enumerator\n\tDN_NT_DRIVER             = 0x01000000        // This devnode's is an NT driver\n\tDN_NEEDS_LOCKING         = 0x02000000        // Devnode need lock resume processing\n\tDN_ARM_WAKEUP            = 0x04000000        // Devnode can be the wakeup device\n\tDN_APM_ENUMERATOR        = 0x08000000        // APM aware enumerator\n\tDN_APM_DRIVER            = 0x10000000        // APM aware driver\n\tDN_SILENT_INSTALL        = 0x20000000        // Silent install\n\tDN_NO_SHOW_IN_DM         = 0x40000000        // No show in device manager\n\tDN_BOOT_LOG_PROB         = 0x80000000        // Had a problem during preassignment of boot log conf\n\tDN_NEED_RESTART          = DN_LIAR           // System needs to be restarted for this Devnode to work properly\n\tDN_DRIVER_BLOCKED        = DN_NOT_FIRST_TIME // One or more drivers are blocked from loading for this Devnode\n\tDN_LEGACY_DRIVER         = DN_MOVED          // This device is using a legacy driver\n\tDN_CHILD_WITH_INVALID_ID = DN_HAS_MARK       // One or more children have invalid IDs\n\tDN_DEVICE_DISCONNECTED   = DN_NEEDS_LOCKING  // The function driver for a device reported that the device is not connected.  Typically this means a wireless device is out of range.\n\tDN_QUERY_REMOVE_PENDING  = DN_MF_PARENT      // Device is part of a set of related devices collectively pending query-removal\n\tDN_QUERY_REMOVE_ACTIVE   = DN_MF_CHILD       // Device is actively engaged in a query-remove IRP\n\tDN_CHANGEABLE_FLAGS      = DN_NOT_FIRST_TIME | DN_HARDWARE_ENUM | DN_HAS_MARK | DN_DISABLEABLE | DN_REMOVABLE | DN_MF_CHILD | DN_MF_PARENT | DN_NOT_FIRST_TIMEE | DN_STOP_FREE_RES | DN_REBAL_CANDIDATE | DN_NT_ENUMERATOR | DN_NT_DRIVER | DN_SILENT_INSTALL | DN_NO_SHOW_IN_DM\n)\n\n//sys\tsetupDiCreateDeviceInfoListEx(classGUID *GUID, hwndParent uintptr, machineName *uint16, reserved uintptr) (handle DevInfo, err error) [failretval==DevInfo(InvalidHandle)] = setupapi.SetupDiCreateDeviceInfoListExW\n\n// SetupDiCreateDeviceInfoListEx function creates an empty device information set on a remote or a local computer and optionally associates the set with a device setup class.\nfunc SetupDiCreateDeviceInfoListEx(classGUID *GUID, hwndParent uintptr, machineName string) (deviceInfoSet DevInfo, err error) {\n\tvar machineNameUTF16 *uint16\n\tif machineName != \"\" {\n\t\tmachineNameUTF16, err = UTF16PtrFromString(machineName)\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t}\n\treturn setupDiCreateDeviceInfoListEx(classGUID, hwndParent, machineNameUTF16, 0)\n}\n\n//sys\tsetupDiGetDeviceInfoListDetail(deviceInfoSet DevInfo, deviceInfoSetDetailData *DevInfoListDetailData) (err error) = setupapi.SetupDiGetDeviceInfoListDetailW\n\n// SetupDiGetDeviceInfoListDetail function retrieves information associated with a device information set including the class GUID, remote computer handle, and remote computer name.\nfunc SetupDiGetDeviceInfoListDetail(deviceInfoSet DevInfo) (deviceInfoSetDetailData *DevInfoListDetailData, err error) {\n\tdata := &DevInfoListDetailData{}\n\tdata.size = data.unsafeSizeOf()\n\n\treturn data, setupDiGetDeviceInfoListDetail(deviceInfoSet, data)\n}\n\n// DeviceInfoListDetail method retrieves information associated with a device information set including the class GUID, remote computer handle, and remote computer name.\nfunc (deviceInfoSet DevInfo) DeviceInfoListDetail() (*DevInfoListDetailData, error) {\n\treturn SetupDiGetDeviceInfoListDetail(deviceInfoSet)\n}\n\n//sys\tsetupDiCreateDeviceInfo(deviceInfoSet DevInfo, DeviceName *uint16, classGUID *GUID, DeviceDescription *uint16, hwndParent uintptr, CreationFlags DICD, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiCreateDeviceInfoW\n\n// SetupDiCreateDeviceInfo function creates a new device information element and adds it as a new member to the specified device information set.\nfunc SetupDiCreateDeviceInfo(deviceInfoSet DevInfo, deviceName string, classGUID *GUID, deviceDescription string, hwndParent uintptr, creationFlags DICD) (deviceInfoData *DevInfoData, err error) {\n\tdeviceNameUTF16, err := UTF16PtrFromString(deviceName)\n\tif err != nil {\n\t\treturn\n\t}\n\n\tvar deviceDescriptionUTF16 *uint16\n\tif deviceDescription != \"\" {\n\t\tdeviceDescriptionUTF16, err = UTF16PtrFromString(deviceDescription)\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t}\n\n\tdata := &DevInfoData{}\n\tdata.size = uint32(unsafe.Sizeof(*data))\n\n\treturn data, setupDiCreateDeviceInfo(deviceInfoSet, deviceNameUTF16, classGUID, deviceDescriptionUTF16, hwndParent, creationFlags, data)\n}\n\n// CreateDeviceInfo method creates a new device information element and adds it as a new member to the specified device information set.\nfunc (deviceInfoSet DevInfo) CreateDeviceInfo(deviceName string, classGUID *GUID, deviceDescription string, hwndParent uintptr, creationFlags DICD) (*DevInfoData, error) {\n\treturn SetupDiCreateDeviceInfo(deviceInfoSet, deviceName, classGUID, deviceDescription, hwndParent, creationFlags)\n}\n\n//sys\tsetupDiEnumDeviceInfo(deviceInfoSet DevInfo, memberIndex uint32, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiEnumDeviceInfo\n\n// SetupDiEnumDeviceInfo function returns a DevInfoData structure that specifies a device information element in a device information set.\nfunc SetupDiEnumDeviceInfo(deviceInfoSet DevInfo, memberIndex int) (*DevInfoData, error) {\n\tdata := &DevInfoData{}\n\tdata.size = uint32(unsafe.Sizeof(*data))\n\n\treturn data, setupDiEnumDeviceInfo(deviceInfoSet, uint32(memberIndex), data)\n}\n\n// EnumDeviceInfo method returns a DevInfoData structure that specifies a device information element in a device information set.\nfunc (deviceInfoSet DevInfo) EnumDeviceInfo(memberIndex int) (*DevInfoData, error) {\n\treturn SetupDiEnumDeviceInfo(deviceInfoSet, memberIndex)\n}\n\n// SetupDiDestroyDeviceInfoList function deletes a device information set and frees all associated memory.\n//sys\tSetupDiDestroyDeviceInfoList(deviceInfoSet DevInfo) (err error) = setupapi.SetupDiDestroyDeviceInfoList\n\n// Close method deletes a device information set and frees all associated memory.\nfunc (deviceInfoSet DevInfo) Close() error {\n\treturn SetupDiDestroyDeviceInfoList(deviceInfoSet)\n}\n\n//sys\tSetupDiBuildDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) = setupapi.SetupDiBuildDriverInfoList\n\n// BuildDriverInfoList method builds a list of drivers that is associated with a specific device or with the global class driver list for a device information set.\nfunc (deviceInfoSet DevInfo) BuildDriverInfoList(deviceInfoData *DevInfoData, driverType SPDIT) error {\n\treturn SetupDiBuildDriverInfoList(deviceInfoSet, deviceInfoData, driverType)\n}\n\n//sys\tSetupDiCancelDriverInfoSearch(deviceInfoSet DevInfo) (err error) = setupapi.SetupDiCancelDriverInfoSearch\n\n// CancelDriverInfoSearch method cancels a driver list search that is currently in progress in a different thread.\nfunc (deviceInfoSet DevInfo) CancelDriverInfoSearch() error {\n\treturn SetupDiCancelDriverInfoSearch(deviceInfoSet)\n}\n\n//sys\tsetupDiEnumDriverInfo(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT, memberIndex uint32, driverInfoData *DrvInfoData) (err error) = setupapi.SetupDiEnumDriverInfoW\n\n// SetupDiEnumDriverInfo function enumerates the members of a driver list.\nfunc SetupDiEnumDriverInfo(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT, memberIndex int) (*DrvInfoData, error) {\n\tdata := &DrvInfoData{}\n\tdata.size = uint32(unsafe.Sizeof(*data))\n\n\treturn data, setupDiEnumDriverInfo(deviceInfoSet, deviceInfoData, driverType, uint32(memberIndex), data)\n}\n\n// EnumDriverInfo method enumerates the members of a driver list.\nfunc (deviceInfoSet DevInfo) EnumDriverInfo(deviceInfoData *DevInfoData, driverType SPDIT, memberIndex int) (*DrvInfoData, error) {\n\treturn SetupDiEnumDriverInfo(deviceInfoSet, deviceInfoData, driverType, memberIndex)\n}\n\n//sys\tsetupDiGetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) = setupapi.SetupDiGetSelectedDriverW\n\n// SetupDiGetSelectedDriver function retrieves the selected driver for a device information set or a particular device information element.\nfunc SetupDiGetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (*DrvInfoData, error) {\n\tdata := &DrvInfoData{}\n\tdata.size = uint32(unsafe.Sizeof(*data))\n\n\treturn data, setupDiGetSelectedDriver(deviceInfoSet, deviceInfoData, data)\n}\n\n// SelectedDriver method retrieves the selected driver for a device information set or a particular device information element.\nfunc (deviceInfoSet DevInfo) SelectedDriver(deviceInfoData *DevInfoData) (*DrvInfoData, error) {\n\treturn SetupDiGetSelectedDriver(deviceInfoSet, deviceInfoData)\n}\n\n//sys\tSetupDiSetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) = setupapi.SetupDiSetSelectedDriverW\n\n// SetSelectedDriver method sets, or resets, the selected driver for a device information element or the selected class driver for a device information set.\nfunc (deviceInfoSet DevInfo) SetSelectedDriver(deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) error {\n\treturn SetupDiSetSelectedDriver(deviceInfoSet, deviceInfoData, driverInfoData)\n}\n\n//sys\tsetupDiGetDriverInfoDetail(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData, driverInfoDetailData *DrvInfoDetailData, driverInfoDetailDataSize uint32, requiredSize *uint32) (err error) = setupapi.SetupDiGetDriverInfoDetailW\n\n// SetupDiGetDriverInfoDetail function retrieves driver information detail for a device information set or a particular device information element in the device information set.\nfunc SetupDiGetDriverInfoDetail(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (*DrvInfoDetailData, error) {\n\treqSize := uint32(2048)\n\tfor {\n\t\tbuf := make([]byte, reqSize)\n\t\tdata := (*DrvInfoDetailData)(unsafe.Pointer(&buf[0]))\n\t\tdata.size = data.unsafeSizeOf()\n\t\terr := setupDiGetDriverInfoDetail(deviceInfoSet, deviceInfoData, driverInfoData, data, uint32(len(buf)), &reqSize)\n\t\tif err == ERROR_INSUFFICIENT_BUFFER {\n\t\t\tcontinue\n\t\t}\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tdata.size = reqSize\n\t\treturn data, nil\n\t}\n}\n\n// DriverInfoDetail method retrieves driver information detail for a device information set or a particular device information element in the device information set.\nfunc (deviceInfoSet DevInfo) DriverInfoDetail(deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (*DrvInfoDetailData, error) {\n\treturn SetupDiGetDriverInfoDetail(deviceInfoSet, deviceInfoData, driverInfoData)\n}\n\n//sys\tSetupDiDestroyDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) = setupapi.SetupDiDestroyDriverInfoList\n\n// DestroyDriverInfoList method deletes a driver list.\nfunc (deviceInfoSet DevInfo) DestroyDriverInfoList(deviceInfoData *DevInfoData, driverType SPDIT) error {\n\treturn SetupDiDestroyDriverInfoList(deviceInfoSet, deviceInfoData, driverType)\n}\n\n//sys\tsetupDiGetClassDevsEx(classGUID *GUID, Enumerator *uint16, hwndParent uintptr, Flags DIGCF, deviceInfoSet DevInfo, machineName *uint16, reserved uintptr) (handle DevInfo, err error) [failretval==DevInfo(InvalidHandle)] = setupapi.SetupDiGetClassDevsExW\n\n// SetupDiGetClassDevsEx function returns a handle to a device information set that contains requested device information elements for a local or a remote computer.\nfunc SetupDiGetClassDevsEx(classGUID *GUID, enumerator string, hwndParent uintptr, flags DIGCF, deviceInfoSet DevInfo, machineName string) (handle DevInfo, err error) {\n\tvar enumeratorUTF16 *uint16\n\tif enumerator != \"\" {\n\t\tenumeratorUTF16, err = UTF16PtrFromString(enumerator)\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t}\n\tvar machineNameUTF16 *uint16\n\tif machineName != \"\" {\n\t\tmachineNameUTF16, err = UTF16PtrFromString(machineName)\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t}\n\treturn setupDiGetClassDevsEx(classGUID, enumeratorUTF16, hwndParent, flags, deviceInfoSet, machineNameUTF16, 0)\n}\n\n// SetupDiCallClassInstaller function calls the appropriate class installer, and any registered co-installers, with the specified installation request (DIF code).\n//sys\tSetupDiCallClassInstaller(installFunction DI_FUNCTION, deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiCallClassInstaller\n\n// CallClassInstaller member calls the appropriate class installer, and any registered co-installers, with the specified installation request (DIF code).\nfunc (deviceInfoSet DevInfo) CallClassInstaller(installFunction DI_FUNCTION, deviceInfoData *DevInfoData) error {\n\treturn SetupDiCallClassInstaller(installFunction, deviceInfoSet, deviceInfoData)\n}\n\n// SetupDiOpenDevRegKey function opens a registry key for device-specific configuration information.\n//sys\tSetupDiOpenDevRegKey(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, Scope DICS_FLAG, HwProfile uint32, KeyType DIREG, samDesired uint32) (key Handle, err error) [failretval==InvalidHandle] = setupapi.SetupDiOpenDevRegKey\n\n// OpenDevRegKey method opens a registry key for device-specific configuration information.\nfunc (deviceInfoSet DevInfo) OpenDevRegKey(DeviceInfoData *DevInfoData, Scope DICS_FLAG, HwProfile uint32, KeyType DIREG, samDesired uint32) (Handle, error) {\n\treturn SetupDiOpenDevRegKey(deviceInfoSet, DeviceInfoData, Scope, HwProfile, KeyType, samDesired)\n}\n\n//sys\tsetupDiGetDeviceProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, propertyKey *DEVPROPKEY, propertyType *DEVPROPTYPE, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32, flags uint32) (err error) = setupapi.SetupDiGetDevicePropertyW\n\n// SetupDiGetDeviceProperty function retrieves a specified device instance property.\nfunc SetupDiGetDeviceProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, propertyKey *DEVPROPKEY) (value interface{}, err error) {\n\treqSize := uint32(256)\n\tfor {\n\t\tvar dataType DEVPROPTYPE\n\t\tbuf := make([]byte, reqSize)\n\t\terr = setupDiGetDeviceProperty(deviceInfoSet, deviceInfoData, propertyKey, &dataType, &buf[0], uint32(len(buf)), &reqSize, 0)\n\t\tif err == ERROR_INSUFFICIENT_BUFFER {\n\t\t\tcontinue\n\t\t}\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t\tswitch dataType {\n\t\tcase DEVPROP_TYPE_STRING:\n\t\t\tret := UTF16ToString(bufToUTF16(buf))\n\t\t\truntime.KeepAlive(buf)\n\t\t\treturn ret, nil\n\t\t}\n\t\treturn nil, errors.New(\"unimplemented property type\")\n\t}\n}\n\n//sys\tsetupDiGetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyRegDataType *uint32, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32) (err error) = setupapi.SetupDiGetDeviceRegistryPropertyW\n\n// SetupDiGetDeviceRegistryProperty function retrieves a specified Plug and Play device property.\nfunc SetupDiGetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP) (value interface{}, err error) {\n\treqSize := uint32(256)\n\tfor {\n\t\tvar dataType uint32\n\t\tbuf := make([]byte, reqSize)\n\t\terr = setupDiGetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property, &dataType, &buf[0], uint32(len(buf)), &reqSize)\n\t\tif err == ERROR_INSUFFICIENT_BUFFER {\n\t\t\tcontinue\n\t\t}\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t\treturn getRegistryValue(buf[:reqSize], dataType)\n\t}\n}\n\nfunc getRegistryValue(buf []byte, dataType uint32) (interface{}, error) {\n\tswitch dataType {\n\tcase REG_SZ:\n\t\tret := UTF16ToString(bufToUTF16(buf))\n\t\truntime.KeepAlive(buf)\n\t\treturn ret, nil\n\tcase REG_EXPAND_SZ:\n\t\tvalue := UTF16ToString(bufToUTF16(buf))\n\t\tif value == \"\" {\n\t\t\treturn \"\", nil\n\t\t}\n\t\tp, err := syscall.UTF16PtrFromString(value)\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\tret := make([]uint16, 100)\n\t\tfor {\n\t\t\tn, err := ExpandEnvironmentStrings(p, &ret[0], uint32(len(ret)))\n\t\t\tif err != nil {\n\t\t\t\treturn \"\", err\n\t\t\t}\n\t\t\tif n <= uint32(len(ret)) {\n\t\t\t\treturn UTF16ToString(ret[:n]), nil\n\t\t\t}\n\t\t\tret = make([]uint16, n)\n\t\t}\n\tcase REG_BINARY:\n\t\treturn buf, nil\n\tcase REG_DWORD_LITTLE_ENDIAN:\n\t\treturn binary.LittleEndian.Uint32(buf), nil\n\tcase REG_DWORD_BIG_ENDIAN:\n\t\treturn binary.BigEndian.Uint32(buf), nil\n\tcase REG_MULTI_SZ:\n\t\tbufW := bufToUTF16(buf)\n\t\ta := []string{}\n\t\tfor i := 0; i < len(bufW); {\n\t\t\tj := i + wcslen(bufW[i:])\n\t\t\tif i < j {\n\t\t\t\ta = append(a, UTF16ToString(bufW[i:j]))\n\t\t\t}\n\t\t\ti = j + 1\n\t\t}\n\t\truntime.KeepAlive(buf)\n\t\treturn a, nil\n\tcase REG_QWORD_LITTLE_ENDIAN:\n\t\treturn binary.LittleEndian.Uint64(buf), nil\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"Unsupported registry value type: %v\", dataType)\n\t}\n}\n\n// bufToUTF16 function reinterprets []byte buffer as []uint16\nfunc bufToUTF16(buf []byte) []uint16 {\n\tsl := struct {\n\t\taddr *uint16\n\t\tlen  int\n\t\tcap  int\n\t}{(*uint16)(unsafe.Pointer(&buf[0])), len(buf) / 2, cap(buf) / 2}\n\treturn *(*[]uint16)(unsafe.Pointer(&sl))\n}\n\n// utf16ToBuf function reinterprets []uint16 as []byte\nfunc utf16ToBuf(buf []uint16) []byte {\n\tsl := struct {\n\t\taddr *byte\n\t\tlen  int\n\t\tcap  int\n\t}{(*byte)(unsafe.Pointer(&buf[0])), len(buf) * 2, cap(buf) * 2}\n\treturn *(*[]byte)(unsafe.Pointer(&sl))\n}\n\nfunc wcslen(str []uint16) int {\n\tfor i := 0; i < len(str); i++ {\n\t\tif str[i] == 0 {\n\t\t\treturn i\n\t\t}\n\t}\n\treturn len(str)\n}\n\n// DeviceRegistryProperty method retrieves a specified Plug and Play device property.\nfunc (deviceInfoSet DevInfo) DeviceRegistryProperty(deviceInfoData *DevInfoData, property SPDRP) (interface{}, error) {\n\treturn SetupDiGetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property)\n}\n\n//sys\tsetupDiSetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyBuffer *byte, propertyBufferSize uint32) (err error) = setupapi.SetupDiSetDeviceRegistryPropertyW\n\n// SetupDiSetDeviceRegistryProperty function sets a Plug and Play device property for a device.\nfunc SetupDiSetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyBuffers []byte) error {\n\treturn setupDiSetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property, &propertyBuffers[0], uint32(len(propertyBuffers)))\n}\n\n// SetDeviceRegistryProperty function sets a Plug and Play device property for a device.\nfunc (deviceInfoSet DevInfo) SetDeviceRegistryProperty(deviceInfoData *DevInfoData, property SPDRP, propertyBuffers []byte) error {\n\treturn SetupDiSetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property, propertyBuffers)\n}\n\n// SetDeviceRegistryPropertyString method sets a Plug and Play device property string for a device.\nfunc (deviceInfoSet DevInfo) SetDeviceRegistryPropertyString(deviceInfoData *DevInfoData, property SPDRP, str string) error {\n\tstr16, err := UTF16FromString(str)\n\tif err != nil {\n\t\treturn err\n\t}\n\terr = SetupDiSetDeviceRegistryProperty(deviceInfoSet, deviceInfoData, property, utf16ToBuf(append(str16, 0)))\n\truntime.KeepAlive(str16)\n\treturn err\n}\n\n//sys\tsetupDiGetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) = setupapi.SetupDiGetDeviceInstallParamsW\n\n// SetupDiGetDeviceInstallParams function retrieves device installation parameters for a device information set or a particular device information element.\nfunc SetupDiGetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (*DevInstallParams, error) {\n\tparams := &DevInstallParams{}\n\tparams.size = uint32(unsafe.Sizeof(*params))\n\n\treturn params, setupDiGetDeviceInstallParams(deviceInfoSet, deviceInfoData, params)\n}\n\n// DeviceInstallParams method retrieves device installation parameters for a device information set or a particular device information element.\nfunc (deviceInfoSet DevInfo) DeviceInstallParams(deviceInfoData *DevInfoData) (*DevInstallParams, error) {\n\treturn SetupDiGetDeviceInstallParams(deviceInfoSet, deviceInfoData)\n}\n\n//sys\tsetupDiGetDeviceInstanceId(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, instanceId *uint16, instanceIdSize uint32, instanceIdRequiredSize *uint32) (err error) = setupapi.SetupDiGetDeviceInstanceIdW\n\n// SetupDiGetDeviceInstanceId function retrieves the instance ID of the device.\nfunc SetupDiGetDeviceInstanceId(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (string, error) {\n\treqSize := uint32(1024)\n\tfor {\n\t\tbuf := make([]uint16, reqSize)\n\t\terr := setupDiGetDeviceInstanceId(deviceInfoSet, deviceInfoData, &buf[0], uint32(len(buf)), &reqSize)\n\t\tif err == ERROR_INSUFFICIENT_BUFFER {\n\t\t\tcontinue\n\t\t}\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\treturn UTF16ToString(buf), nil\n\t}\n}\n\n// DeviceInstanceID method retrieves the instance ID of the device.\nfunc (deviceInfoSet DevInfo) DeviceInstanceID(deviceInfoData *DevInfoData) (string, error) {\n\treturn SetupDiGetDeviceInstanceId(deviceInfoSet, deviceInfoData)\n}\n\n// SetupDiGetClassInstallParams function retrieves class installation parameters for a device information set or a particular device information element.\n//sys\tSetupDiGetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32, requiredSize *uint32) (err error) = setupapi.SetupDiGetClassInstallParamsW\n\n// ClassInstallParams method retrieves class installation parameters for a device information set or a particular device information element.\nfunc (deviceInfoSet DevInfo) ClassInstallParams(deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32, requiredSize *uint32) error {\n\treturn SetupDiGetClassInstallParams(deviceInfoSet, deviceInfoData, classInstallParams, classInstallParamsSize, requiredSize)\n}\n\n//sys\tSetupDiSetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) = setupapi.SetupDiSetDeviceInstallParamsW\n\n// SetDeviceInstallParams member sets device installation parameters for a device information set or a particular device information element.\nfunc (deviceInfoSet DevInfo) SetDeviceInstallParams(deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) error {\n\treturn SetupDiSetDeviceInstallParams(deviceInfoSet, deviceInfoData, deviceInstallParams)\n}\n\n// SetupDiSetClassInstallParams function sets or clears class install parameters for a device information set or a particular device information element.\n//sys\tSetupDiSetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32) (err error) = setupapi.SetupDiSetClassInstallParamsW\n\n// SetClassInstallParams method sets or clears class install parameters for a device information set or a particular device information element.\nfunc (deviceInfoSet DevInfo) SetClassInstallParams(deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32) error {\n\treturn SetupDiSetClassInstallParams(deviceInfoSet, deviceInfoData, classInstallParams, classInstallParamsSize)\n}\n\n//sys\tsetupDiClassNameFromGuidEx(classGUID *GUID, className *uint16, classNameSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) = setupapi.SetupDiClassNameFromGuidExW\n\n// SetupDiClassNameFromGuidEx function retrieves the class name associated with a class GUID. The class can be installed on a local or remote computer.\nfunc SetupDiClassNameFromGuidEx(classGUID *GUID, machineName string) (className string, err error) {\n\tvar classNameUTF16 [MAX_CLASS_NAME_LEN]uint16\n\n\tvar machineNameUTF16 *uint16\n\tif machineName != \"\" {\n\t\tmachineNameUTF16, err = UTF16PtrFromString(machineName)\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\t}\n\n\terr = setupDiClassNameFromGuidEx(classGUID, &classNameUTF16[0], MAX_CLASS_NAME_LEN, nil, machineNameUTF16, 0)\n\tif err != nil {\n\t\treturn\n\t}\n\n\tclassName = UTF16ToString(classNameUTF16[:])\n\treturn\n}\n\n//sys\tsetupDiClassGuidsFromNameEx(className *uint16, classGuidList *GUID, classGuidListSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) = setupapi.SetupDiClassGuidsFromNameExW\n\n// SetupDiClassGuidsFromNameEx function retrieves the GUIDs associated with the specified class name. This resulting list contains the classes currently installed on a local or remote computer.\nfunc SetupDiClassGuidsFromNameEx(className string, machineName string) ([]GUID, error) {\n\tclassNameUTF16, err := UTF16PtrFromString(className)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar machineNameUTF16 *uint16\n\tif machineName != \"\" {\n\t\tmachineNameUTF16, err = UTF16PtrFromString(machineName)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\treqSize := uint32(4)\n\tfor {\n\t\tbuf := make([]GUID, reqSize)\n\t\terr = setupDiClassGuidsFromNameEx(classNameUTF16, &buf[0], uint32(len(buf)), &reqSize, machineNameUTF16, 0)\n\t\tif err == ERROR_INSUFFICIENT_BUFFER {\n\t\t\tcontinue\n\t\t}\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn buf[:reqSize], nil\n\t}\n}\n\n//sys\tsetupDiGetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiGetSelectedDevice\n\n// SetupDiGetSelectedDevice function retrieves the selected device information element in a device information set.\nfunc SetupDiGetSelectedDevice(deviceInfoSet DevInfo) (*DevInfoData, error) {\n\tdata := &DevInfoData{}\n\tdata.size = uint32(unsafe.Sizeof(*data))\n\n\treturn data, setupDiGetSelectedDevice(deviceInfoSet, data)\n}\n\n// SelectedDevice method retrieves the selected device information element in a device information set.\nfunc (deviceInfoSet DevInfo) SelectedDevice() (*DevInfoData, error) {\n\treturn SetupDiGetSelectedDevice(deviceInfoSet)\n}\n\n// SetupDiSetSelectedDevice function sets a device information element as the selected member of a device information set. This function is typically used by an installation wizard.\n//sys\tSetupDiSetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) = setupapi.SetupDiSetSelectedDevice\n\n// SetSelectedDevice method sets a device information element as the selected member of a device information set. This function is typically used by an installation wizard.\nfunc (deviceInfoSet DevInfo) SetSelectedDevice(deviceInfoData *DevInfoData) error {\n\treturn SetupDiSetSelectedDevice(deviceInfoSet, deviceInfoData)\n}\n\n//sys\tsetupUninstallOEMInf(infFileName *uint16, flags SUOI, reserved uintptr) (err error) = setupapi.SetupUninstallOEMInfW\n\n// SetupUninstallOEMInf uninstalls the specified driver.\nfunc SetupUninstallOEMInf(infFileName string, flags SUOI) error {\n\tinfFileName16, err := UTF16PtrFromString(infFileName)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn setupUninstallOEMInf(infFileName16, flags, 0)\n}\n\n//sys cm_MapCrToWin32Err(configRet CONFIGRET, defaultWin32Error Errno) (ret Errno) = CfgMgr32.CM_MapCrToWin32Err\n\n//sys cm_Get_Device_Interface_List_Size(len *uint32, interfaceClass *GUID, deviceID *uint16, flags uint32) (ret CONFIGRET) = CfgMgr32.CM_Get_Device_Interface_List_SizeW\n//sys cm_Get_Device_Interface_List(interfaceClass *GUID, deviceID *uint16, buffer *uint16, bufferLen uint32, flags uint32) (ret CONFIGRET) = CfgMgr32.CM_Get_Device_Interface_ListW\n\nfunc CM_Get_Device_Interface_List(deviceID string, interfaceClass *GUID, flags uint32) ([]string, error) {\n\tdeviceID16, err := UTF16PtrFromString(deviceID)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tvar buf []uint16\n\tvar buflen uint32\n\tfor {\n\t\tif ret := cm_Get_Device_Interface_List_Size(&buflen, interfaceClass, deviceID16, flags); ret != CR_SUCCESS {\n\t\t\treturn nil, ret\n\t\t}\n\t\tbuf = make([]uint16, buflen)\n\t\tif ret := cm_Get_Device_Interface_List(interfaceClass, deviceID16, &buf[0], buflen, flags); ret == CR_SUCCESS {\n\t\t\tbreak\n\t\t} else if ret != CR_BUFFER_SMALL {\n\t\t\treturn nil, ret\n\t\t}\n\t}\n\tvar interfaces []string\n\tfor i := 0; i < len(buf); {\n\t\tj := i + wcslen(buf[i:])\n\t\tif i < j {\n\t\t\tinterfaces = append(interfaces, UTF16ToString(buf[i:j]))\n\t\t}\n\t\ti = j + 1\n\t}\n\tif interfaces == nil {\n\t\treturn nil, ERROR_NO_SUCH_DEVICE_INTERFACE\n\t}\n\treturn interfaces, nil\n}\n\n//sys cm_Get_DevNode_Status(status *uint32, problemNumber *uint32, devInst DEVINST, flags uint32) (ret CONFIGRET) = CfgMgr32.CM_Get_DevNode_Status\n\nfunc CM_Get_DevNode_Status(status *uint32, problemNumber *uint32, devInst DEVINST, flags uint32) error {\n\tret := cm_Get_DevNode_Status(status, problemNumber, devInst, flags)\n\tif ret == CR_SUCCESS {\n\t\treturn nil\n\t}\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/str.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build windows\n\npackage windows\n\nfunc itoa(val int) string { // do it here rather than with fmt to avoid dependency\n\tif val < 0 {\n\t\treturn \"-\" + itoa(-val)\n\t}\n\tvar buf [32]byte // big enough for int64\n\ti := len(buf) - 1\n\tfor val >= 10 {\n\t\tbuf[i] = byte(val%10 + '0')\n\t\ti--\n\t\tval /= 10\n\t}\n\tbuf[i] = byte(val + '0')\n\treturn string(buf[i:])\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/syscall.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build windows\n\n// Package windows contains an interface to the low-level operating system\n// primitives. OS details vary depending on the underlying system, and\n// by default, godoc will display the OS-specific documentation for the current\n// system. If you want godoc to display syscall documentation for another\n// system, set $GOOS and $GOARCH to the desired system. For example, if\n// you want to view documentation for freebsd/arm on linux/amd64, set $GOOS\n// to freebsd and $GOARCH to arm.\n//\n// The primary use of this package is inside other packages that provide a more\n// portable interface to the system, such as \"os\", \"time\" and \"net\".  Use\n// those packages rather than this one if you can.\n//\n// For details of the functions and data types in this package consult\n// the manuals for the appropriate operating system.\n//\n// These calls return err == nil to indicate success; otherwise\n// err represents an operating system error describing the failure and\n// holds a value of type syscall.Errno.\npackage windows // import \"golang.org/x/sys/windows\"\n\nimport (\n\t\"bytes\"\n\t\"strings\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n// ByteSliceFromString returns a NUL-terminated slice of bytes\n// containing the text of s. If s contains a NUL byte at any\n// location, it returns (nil, syscall.EINVAL).\nfunc ByteSliceFromString(s string) ([]byte, error) {\n\tif strings.IndexByte(s, 0) != -1 {\n\t\treturn nil, syscall.EINVAL\n\t}\n\ta := make([]byte, len(s)+1)\n\tcopy(a, s)\n\treturn a, nil\n}\n\n// BytePtrFromString returns a pointer to a NUL-terminated array of\n// bytes containing the text of s. If s contains a NUL byte at any\n// location, it returns (nil, syscall.EINVAL).\nfunc BytePtrFromString(s string) (*byte, error) {\n\ta, err := ByteSliceFromString(s)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &a[0], nil\n}\n\n// ByteSliceToString returns a string form of the text represented by the slice s, with a terminating NUL and any\n// bytes after the NUL removed.\nfunc ByteSliceToString(s []byte) string {\n\tif i := bytes.IndexByte(s, 0); i != -1 {\n\t\ts = s[:i]\n\t}\n\treturn string(s)\n}\n\n// BytePtrToString takes a pointer to a sequence of text and returns the corresponding string.\n// If the pointer is nil, it returns the empty string. It assumes that the text sequence is terminated\n// at a zero byte; if the zero byte is not present, the program may crash.\nfunc BytePtrToString(p *byte) string {\n\tif p == nil {\n\t\treturn \"\"\n\t}\n\tif *p == 0 {\n\t\treturn \"\"\n\t}\n\n\t// Find NUL terminator.\n\tn := 0\n\tfor ptr := unsafe.Pointer(p); *(*byte)(ptr) != 0; n++ {\n\t\tptr = unsafe.Pointer(uintptr(ptr) + 1)\n\t}\n\n\treturn string(unsafe.Slice(p, n))\n}\n\n// Single-word zero for use when we need a valid pointer to 0 bytes.\n// See mksyscall.pl.\nvar _zero uintptr\n\nfunc (ts *Timespec) Unix() (sec int64, nsec int64) {\n\treturn int64(ts.Sec), int64(ts.Nsec)\n}\n\nfunc (tv *Timeval) Unix() (sec int64, nsec int64) {\n\treturn int64(tv.Sec), int64(tv.Usec) * 1000\n}\n\nfunc (ts *Timespec) Nano() int64 {\n\treturn int64(ts.Sec)*1e9 + int64(ts.Nsec)\n}\n\nfunc (tv *Timeval) Nano() int64 {\n\treturn int64(tv.Sec)*1e9 + int64(tv.Usec)*1000\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/syscall_windows.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Windows system calls.\n\npackage windows\n\nimport (\n\terrorspkg \"errors\"\n\t\"fmt\"\n\t\"runtime\"\n\t\"sync\"\n\t\"syscall\"\n\t\"time\"\n\t\"unicode/utf16\"\n\t\"unsafe\"\n)\n\ntype (\n\tHandle uintptr\n\tHWND   uintptr\n)\n\nconst (\n\tInvalidHandle = ^Handle(0)\n\tInvalidHWND   = ^HWND(0)\n\n\t// Flags for DefineDosDevice.\n\tDDD_EXACT_MATCH_ON_REMOVE = 0x00000004\n\tDDD_NO_BROADCAST_SYSTEM   = 0x00000008\n\tDDD_RAW_TARGET_PATH       = 0x00000001\n\tDDD_REMOVE_DEFINITION     = 0x00000002\n\n\t// Return values for GetDriveType.\n\tDRIVE_UNKNOWN     = 0\n\tDRIVE_NO_ROOT_DIR = 1\n\tDRIVE_REMOVABLE   = 2\n\tDRIVE_FIXED       = 3\n\tDRIVE_REMOTE      = 4\n\tDRIVE_CDROM       = 5\n\tDRIVE_RAMDISK     = 6\n\n\t// File system flags from GetVolumeInformation and GetVolumeInformationByHandle.\n\tFILE_CASE_SENSITIVE_SEARCH        = 0x00000001\n\tFILE_CASE_PRESERVED_NAMES         = 0x00000002\n\tFILE_FILE_COMPRESSION             = 0x00000010\n\tFILE_DAX_VOLUME                   = 0x20000000\n\tFILE_NAMED_STREAMS                = 0x00040000\n\tFILE_PERSISTENT_ACLS              = 0x00000008\n\tFILE_READ_ONLY_VOLUME             = 0x00080000\n\tFILE_SEQUENTIAL_WRITE_ONCE        = 0x00100000\n\tFILE_SUPPORTS_ENCRYPTION          = 0x00020000\n\tFILE_SUPPORTS_EXTENDED_ATTRIBUTES = 0x00800000\n\tFILE_SUPPORTS_HARD_LINKS          = 0x00400000\n\tFILE_SUPPORTS_OBJECT_IDS          = 0x00010000\n\tFILE_SUPPORTS_OPEN_BY_FILE_ID     = 0x01000000\n\tFILE_SUPPORTS_REPARSE_POINTS      = 0x00000080\n\tFILE_SUPPORTS_SPARSE_FILES        = 0x00000040\n\tFILE_SUPPORTS_TRANSACTIONS        = 0x00200000\n\tFILE_SUPPORTS_USN_JOURNAL         = 0x02000000\n\tFILE_UNICODE_ON_DISK              = 0x00000004\n\tFILE_VOLUME_IS_COMPRESSED         = 0x00008000\n\tFILE_VOLUME_QUOTAS                = 0x00000020\n\n\t// Flags for LockFileEx.\n\tLOCKFILE_FAIL_IMMEDIATELY = 0x00000001\n\tLOCKFILE_EXCLUSIVE_LOCK   = 0x00000002\n\n\t// Return value of SleepEx and other APC functions\n\tWAIT_IO_COMPLETION = 0x000000C0\n)\n\n// StringToUTF16 is deprecated. Use UTF16FromString instead.\n// If s contains a NUL byte this function panics instead of\n// returning an error.\nfunc StringToUTF16(s string) []uint16 {\n\ta, err := UTF16FromString(s)\n\tif err != nil {\n\t\tpanic(\"windows: string with NUL passed to StringToUTF16\")\n\t}\n\treturn a\n}\n\n// UTF16FromString returns the UTF-16 encoding of the UTF-8 string\n// s, with a terminating NUL added. If s contains a NUL byte at any\n// location, it returns (nil, syscall.EINVAL).\nfunc UTF16FromString(s string) ([]uint16, error) {\n\treturn syscall.UTF16FromString(s)\n}\n\n// UTF16ToString returns the UTF-8 encoding of the UTF-16 sequence s,\n// with a terminating NUL and any bytes after the NUL removed.\nfunc UTF16ToString(s []uint16) string {\n\treturn syscall.UTF16ToString(s)\n}\n\n// StringToUTF16Ptr is deprecated. Use UTF16PtrFromString instead.\n// If s contains a NUL byte this function panics instead of\n// returning an error.\nfunc StringToUTF16Ptr(s string) *uint16 { return &StringToUTF16(s)[0] }\n\n// UTF16PtrFromString returns pointer to the UTF-16 encoding of\n// the UTF-8 string s, with a terminating NUL added. If s\n// contains a NUL byte at any location, it returns (nil, syscall.EINVAL).\nfunc UTF16PtrFromString(s string) (*uint16, error) {\n\ta, err := UTF16FromString(s)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &a[0], nil\n}\n\n// UTF16PtrToString takes a pointer to a UTF-16 sequence and returns the corresponding UTF-8 encoded string.\n// If the pointer is nil, it returns the empty string. It assumes that the UTF-16 sequence is terminated\n// at a zero word; if the zero word is not present, the program may crash.\nfunc UTF16PtrToString(p *uint16) string {\n\tif p == nil {\n\t\treturn \"\"\n\t}\n\tif *p == 0 {\n\t\treturn \"\"\n\t}\n\n\t// Find NUL terminator.\n\tn := 0\n\tfor ptr := unsafe.Pointer(p); *(*uint16)(ptr) != 0; n++ {\n\t\tptr = unsafe.Pointer(uintptr(ptr) + unsafe.Sizeof(*p))\n\t}\n\treturn UTF16ToString(unsafe.Slice(p, n))\n}\n\nfunc Getpagesize() int { return 4096 }\n\n// NewCallback converts a Go function to a function pointer conforming to the stdcall calling convention.\n// This is useful when interoperating with Windows code requiring callbacks.\n// The argument is expected to be a function with one uintptr-sized result. The function must not have arguments with size larger than the size of uintptr.\nfunc NewCallback(fn interface{}) uintptr {\n\treturn syscall.NewCallback(fn)\n}\n\n// NewCallbackCDecl converts a Go function to a function pointer conforming to the cdecl calling convention.\n// This is useful when interoperating with Windows code requiring callbacks.\n// The argument is expected to be a function with one uintptr-sized result. The function must not have arguments with size larger than the size of uintptr.\nfunc NewCallbackCDecl(fn interface{}) uintptr {\n\treturn syscall.NewCallbackCDecl(fn)\n}\n\n// windows api calls\n\n//sys\tGetLastError() (lasterr error)\n//sys\tLoadLibrary(libname string) (handle Handle, err error) = LoadLibraryW\n//sys\tLoadLibraryEx(libname string, zero Handle, flags uintptr) (handle Handle, err error) = LoadLibraryExW\n//sys\tFreeLibrary(handle Handle) (err error)\n//sys\tGetProcAddress(module Handle, procname string) (proc uintptr, err error)\n//sys\tGetModuleFileName(module Handle, filename *uint16, size uint32) (n uint32, err error) = kernel32.GetModuleFileNameW\n//sys\tGetModuleHandleEx(flags uint32, moduleName *uint16, module *Handle) (err error) = kernel32.GetModuleHandleExW\n//sys\tSetDefaultDllDirectories(directoryFlags uint32) (err error)\n//sys\tAddDllDirectory(path *uint16) (cookie uintptr, err error) = kernel32.AddDllDirectory\n//sys\tRemoveDllDirectory(cookie uintptr) (err error) = kernel32.RemoveDllDirectory\n//sys\tSetDllDirectory(path string) (err error) = kernel32.SetDllDirectoryW\n//sys\tGetVersion() (ver uint32, err error)\n//sys\tFormatMessage(flags uint32, msgsrc uintptr, msgid uint32, langid uint32, buf []uint16, args *byte) (n uint32, err error) = FormatMessageW\n//sys\tExitProcess(exitcode uint32)\n//sys\tIsWow64Process(handle Handle, isWow64 *bool) (err error) = IsWow64Process\n//sys\tIsWow64Process2(handle Handle, processMachine *uint16, nativeMachine *uint16) (err error) = IsWow64Process2?\n//sys\tCreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes, createmode uint32, attrs uint32, templatefile Handle) (handle Handle, err error) [failretval==InvalidHandle] = CreateFileW\n//sys\tCreateNamedPipe(name *uint16, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *SecurityAttributes) (handle Handle, err error)  [failretval==InvalidHandle] = CreateNamedPipeW\n//sys\tConnectNamedPipe(pipe Handle, overlapped *Overlapped) (err error)\n//sys\tDisconnectNamedPipe(pipe Handle) (err error)\n//sys   GetNamedPipeClientProcessId(pipe Handle, clientProcessID *uint32) (err error)\n//sys   GetNamedPipeServerProcessId(pipe Handle, serverProcessID *uint32) (err error)\n//sys\tGetNamedPipeInfo(pipe Handle, flags *uint32, outSize *uint32, inSize *uint32, maxInstances *uint32) (err error)\n//sys\tGetNamedPipeHandleState(pipe Handle, state *uint32, curInstances *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32, userName *uint16, maxUserNameSize uint32) (err error) = GetNamedPipeHandleStateW\n//sys\tSetNamedPipeHandleState(pipe Handle, state *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32) (err error) = SetNamedPipeHandleState\n//sys\treadFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) = ReadFile\n//sys\twriteFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) = WriteFile\n//sys\tGetOverlappedResult(handle Handle, overlapped *Overlapped, done *uint32, wait bool) (err error)\n//sys\tSetFilePointer(handle Handle, lowoffset int32, highoffsetptr *int32, whence uint32) (newlowoffset uint32, err error) [failretval==0xffffffff]\n//sys\tCloseHandle(handle Handle) (err error)\n//sys\tGetStdHandle(stdhandle uint32) (handle Handle, err error) [failretval==InvalidHandle]\n//sys\tSetStdHandle(stdhandle uint32, handle Handle) (err error)\n//sys\tfindFirstFile1(name *uint16, data *win32finddata1) (handle Handle, err error) [failretval==InvalidHandle] = FindFirstFileW\n//sys\tfindNextFile1(handle Handle, data *win32finddata1) (err error) = FindNextFileW\n//sys\tFindClose(handle Handle) (err error)\n//sys\tGetFileInformationByHandle(handle Handle, data *ByHandleFileInformation) (err error)\n//sys\tGetFileInformationByHandleEx(handle Handle, class uint32, outBuffer *byte, outBufferLen uint32) (err error)\n//sys\tSetFileInformationByHandle(handle Handle, class uint32, inBuffer *byte, inBufferLen uint32) (err error)\n//sys\tGetCurrentDirectory(buflen uint32, buf *uint16) (n uint32, err error) = GetCurrentDirectoryW\n//sys\tSetCurrentDirectory(path *uint16) (err error) = SetCurrentDirectoryW\n//sys\tCreateDirectory(path *uint16, sa *SecurityAttributes) (err error) = CreateDirectoryW\n//sys\tRemoveDirectory(path *uint16) (err error) = RemoveDirectoryW\n//sys\tDeleteFile(path *uint16) (err error) = DeleteFileW\n//sys\tMoveFile(from *uint16, to *uint16) (err error) = MoveFileW\n//sys\tMoveFileEx(from *uint16, to *uint16, flags uint32) (err error) = MoveFileExW\n//sys\tLockFileEx(file Handle, flags uint32, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error)\n//sys\tUnlockFileEx(file Handle, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error)\n//sys\tGetComputerName(buf *uint16, n *uint32) (err error) = GetComputerNameW\n//sys\tGetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) = GetComputerNameExW\n//sys\tSetEndOfFile(handle Handle) (err error)\n//sys\tSetFileValidData(handle Handle, validDataLength int64) (err error)\n//sys\tGetSystemTimeAsFileTime(time *Filetime)\n//sys\tGetSystemTimePreciseAsFileTime(time *Filetime)\n//sys\tGetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) [failretval==0xffffffff]\n//sys\tCreateIoCompletionPort(filehandle Handle, cphandle Handle, key uintptr, threadcnt uint32) (handle Handle, err error)\n//sys\tGetQueuedCompletionStatus(cphandle Handle, qty *uint32, key *uintptr, overlapped **Overlapped, timeout uint32) (err error)\n//sys\tPostQueuedCompletionStatus(cphandle Handle, qty uint32, key uintptr, overlapped *Overlapped) (err error)\n//sys\tCancelIo(s Handle) (err error)\n//sys\tCancelIoEx(s Handle, o *Overlapped) (err error)\n//sys\tCreateProcess(appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) = CreateProcessW\n//sys\tCreateProcessAsUser(token Token, appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) = advapi32.CreateProcessAsUserW\n//sys   initializeProcThreadAttributeList(attrlist *ProcThreadAttributeList, attrcount uint32, flags uint32, size *uintptr) (err error) = InitializeProcThreadAttributeList\n//sys   deleteProcThreadAttributeList(attrlist *ProcThreadAttributeList) = DeleteProcThreadAttributeList\n//sys   updateProcThreadAttribute(attrlist *ProcThreadAttributeList, flags uint32, attr uintptr, value unsafe.Pointer, size uintptr, prevvalue unsafe.Pointer, returnedsize *uintptr) (err error) = UpdateProcThreadAttribute\n//sys\tOpenProcess(desiredAccess uint32, inheritHandle bool, processId uint32) (handle Handle, err error)\n//sys\tShellExecute(hwnd Handle, verb *uint16, file *uint16, args *uint16, cwd *uint16, showCmd int32) (err error) [failretval<=32] = shell32.ShellExecuteW\n//sys\tGetWindowThreadProcessId(hwnd HWND, pid *uint32) (tid uint32, err error) = user32.GetWindowThreadProcessId\n//sys\tLoadKeyboardLayout(name *uint16, flags uint32) (hkl Handle, err error) [failretval==0] = user32.LoadKeyboardLayoutW\n//sys\tUnloadKeyboardLayout(hkl Handle) (err error) = user32.UnloadKeyboardLayout\n//sys\tGetKeyboardLayout(tid uint32) (hkl Handle) = user32.GetKeyboardLayout\n//sys\tToUnicodeEx(vkey uint32, scancode uint32, keystate *byte, pwszBuff *uint16, cchBuff int32, flags uint32, hkl Handle) (ret int32) = user32.ToUnicodeEx\n//sys\tGetShellWindow() (shellWindow HWND) = user32.GetShellWindow\n//sys\tMessageBox(hwnd HWND, text *uint16, caption *uint16, boxtype uint32) (ret int32, err error) [failretval==0] = user32.MessageBoxW\n//sys\tExitWindowsEx(flags uint32, reason uint32) (err error) = user32.ExitWindowsEx\n//sys\tshGetKnownFolderPath(id *KNOWNFOLDERID, flags uint32, token Token, path **uint16) (ret error) = shell32.SHGetKnownFolderPath\n//sys\tTerminateProcess(handle Handle, exitcode uint32) (err error)\n//sys\tGetExitCodeProcess(handle Handle, exitcode *uint32) (err error)\n//sys\tgetStartupInfo(startupInfo *StartupInfo) = GetStartupInfoW\n//sys\tGetProcessTimes(handle Handle, creationTime *Filetime, exitTime *Filetime, kernelTime *Filetime, userTime *Filetime) (err error)\n//sys\tDuplicateHandle(hSourceProcessHandle Handle, hSourceHandle Handle, hTargetProcessHandle Handle, lpTargetHandle *Handle, dwDesiredAccess uint32, bInheritHandle bool, dwOptions uint32) (err error)\n//sys\tWaitForSingleObject(handle Handle, waitMilliseconds uint32) (event uint32, err error) [failretval==0xffffffff]\n//sys\twaitForMultipleObjects(count uint32, handles uintptr, waitAll bool, waitMilliseconds uint32) (event uint32, err error) [failretval==0xffffffff] = WaitForMultipleObjects\n//sys\tGetTempPath(buflen uint32, buf *uint16) (n uint32, err error) = GetTempPathW\n//sys\tCreatePipe(readhandle *Handle, writehandle *Handle, sa *SecurityAttributes, size uint32) (err error)\n//sys\tGetFileType(filehandle Handle) (n uint32, err error)\n//sys\tCryptAcquireContext(provhandle *Handle, container *uint16, provider *uint16, provtype uint32, flags uint32) (err error) = advapi32.CryptAcquireContextW\n//sys\tCryptReleaseContext(provhandle Handle, flags uint32) (err error) = advapi32.CryptReleaseContext\n//sys\tCryptGenRandom(provhandle Handle, buflen uint32, buf *byte) (err error) = advapi32.CryptGenRandom\n//sys\tGetEnvironmentStrings() (envs *uint16, err error) [failretval==nil] = kernel32.GetEnvironmentStringsW\n//sys\tFreeEnvironmentStrings(envs *uint16) (err error) = kernel32.FreeEnvironmentStringsW\n//sys\tGetEnvironmentVariable(name *uint16, buffer *uint16, size uint32) (n uint32, err error) = kernel32.GetEnvironmentVariableW\n//sys\tSetEnvironmentVariable(name *uint16, value *uint16) (err error) = kernel32.SetEnvironmentVariableW\n//sys\tExpandEnvironmentStrings(src *uint16, dst *uint16, size uint32) (n uint32, err error) = kernel32.ExpandEnvironmentStringsW\n//sys\tCreateEnvironmentBlock(block **uint16, token Token, inheritExisting bool) (err error) = userenv.CreateEnvironmentBlock\n//sys\tDestroyEnvironmentBlock(block *uint16) (err error) = userenv.DestroyEnvironmentBlock\n//sys\tgetTickCount64() (ms uint64) = kernel32.GetTickCount64\n//sys   GetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error)\n//sys\tSetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error)\n//sys\tGetFileAttributes(name *uint16) (attrs uint32, err error) [failretval==INVALID_FILE_ATTRIBUTES] = kernel32.GetFileAttributesW\n//sys\tSetFileAttributes(name *uint16, attrs uint32) (err error) = kernel32.SetFileAttributesW\n//sys\tGetFileAttributesEx(name *uint16, level uint32, info *byte) (err error) = kernel32.GetFileAttributesExW\n//sys\tGetCommandLine() (cmd *uint16) = kernel32.GetCommandLineW\n//sys\tcommandLineToArgv(cmd *uint16, argc *int32) (argv **uint16, err error) [failretval==nil] = shell32.CommandLineToArgvW\n//sys\tLocalFree(hmem Handle) (handle Handle, err error) [failretval!=0]\n//sys\tLocalAlloc(flags uint32, length uint32) (ptr uintptr, err error)\n//sys\tSetHandleInformation(handle Handle, mask uint32, flags uint32) (err error)\n//sys\tFlushFileBuffers(handle Handle) (err error)\n//sys\tGetFullPathName(path *uint16, buflen uint32, buf *uint16, fname **uint16) (n uint32, err error) = kernel32.GetFullPathNameW\n//sys\tGetLongPathName(path *uint16, buf *uint16, buflen uint32) (n uint32, err error) = kernel32.GetLongPathNameW\n//sys\tGetShortPathName(longpath *uint16, shortpath *uint16, buflen uint32) (n uint32, err error) = kernel32.GetShortPathNameW\n//sys\tGetFinalPathNameByHandle(file Handle, filePath *uint16, filePathSize uint32, flags uint32) (n uint32, err error) = kernel32.GetFinalPathNameByHandleW\n//sys\tCreateFileMapping(fhandle Handle, sa *SecurityAttributes, prot uint32, maxSizeHigh uint32, maxSizeLow uint32, name *uint16) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateFileMappingW\n//sys\tMapViewOfFile(handle Handle, access uint32, offsetHigh uint32, offsetLow uint32, length uintptr) (addr uintptr, err error)\n//sys\tUnmapViewOfFile(addr uintptr) (err error)\n//sys\tFlushViewOfFile(addr uintptr, length uintptr) (err error)\n//sys\tVirtualLock(addr uintptr, length uintptr) (err error)\n//sys\tVirtualUnlock(addr uintptr, length uintptr) (err error)\n//sys\tVirtualAlloc(address uintptr, size uintptr, alloctype uint32, protect uint32) (value uintptr, err error) = kernel32.VirtualAlloc\n//sys\tVirtualFree(address uintptr, size uintptr, freetype uint32) (err error) = kernel32.VirtualFree\n//sys\tVirtualProtect(address uintptr, size uintptr, newprotect uint32, oldprotect *uint32) (err error) = kernel32.VirtualProtect\n//sys\tVirtualProtectEx(process Handle, address uintptr, size uintptr, newProtect uint32, oldProtect *uint32) (err error) = kernel32.VirtualProtectEx\n//sys\tVirtualQuery(address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) = kernel32.VirtualQuery\n//sys\tVirtualQueryEx(process Handle, address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) = kernel32.VirtualQueryEx\n//sys\tReadProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesRead *uintptr) (err error) = kernel32.ReadProcessMemory\n//sys\tWriteProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesWritten *uintptr) (err error) = kernel32.WriteProcessMemory\n//sys\tTransmitFile(s Handle, handle Handle, bytesToWrite uint32, bytsPerSend uint32, overlapped *Overlapped, transmitFileBuf *TransmitFileBuffers, flags uint32) (err error) = mswsock.TransmitFile\n//sys\tReadDirectoryChanges(handle Handle, buf *byte, buflen uint32, watchSubTree bool, mask uint32, retlen *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) = kernel32.ReadDirectoryChangesW\n//sys\tFindFirstChangeNotification(path string, watchSubtree bool, notifyFilter uint32) (handle Handle, err error) [failretval==InvalidHandle] = kernel32.FindFirstChangeNotificationW\n//sys\tFindNextChangeNotification(handle Handle) (err error)\n//sys\tFindCloseChangeNotification(handle Handle) (err error)\n//sys\tCertOpenSystemStore(hprov Handle, name *uint16) (store Handle, err error) = crypt32.CertOpenSystemStoreW\n//sys\tCertOpenStore(storeProvider uintptr, msgAndCertEncodingType uint32, cryptProv uintptr, flags uint32, para uintptr) (handle Handle, err error) = crypt32.CertOpenStore\n//sys\tCertEnumCertificatesInStore(store Handle, prevContext *CertContext) (context *CertContext, err error) [failretval==nil] = crypt32.CertEnumCertificatesInStore\n//sys\tCertAddCertificateContextToStore(store Handle, certContext *CertContext, addDisposition uint32, storeContext **CertContext) (err error) = crypt32.CertAddCertificateContextToStore\n//sys\tCertCloseStore(store Handle, flags uint32) (err error) = crypt32.CertCloseStore\n//sys\tCertDeleteCertificateFromStore(certContext *CertContext) (err error) = crypt32.CertDeleteCertificateFromStore\n//sys\tCertDuplicateCertificateContext(certContext *CertContext) (dupContext *CertContext) = crypt32.CertDuplicateCertificateContext\n//sys\tPFXImportCertStore(pfx *CryptDataBlob, password *uint16, flags uint32) (store Handle, err error) = crypt32.PFXImportCertStore\n//sys\tCertGetCertificateChain(engine Handle, leaf *CertContext, time *Filetime, additionalStore Handle, para *CertChainPara, flags uint32, reserved uintptr, chainCtx **CertChainContext) (err error) = crypt32.CertGetCertificateChain\n//sys\tCertFreeCertificateChain(ctx *CertChainContext) = crypt32.CertFreeCertificateChain\n//sys\tCertCreateCertificateContext(certEncodingType uint32, certEncoded *byte, encodedLen uint32) (context *CertContext, err error) [failretval==nil] = crypt32.CertCreateCertificateContext\n//sys\tCertFreeCertificateContext(ctx *CertContext) (err error) = crypt32.CertFreeCertificateContext\n//sys\tCertVerifyCertificateChainPolicy(policyOID uintptr, chain *CertChainContext, para *CertChainPolicyPara, status *CertChainPolicyStatus) (err error) = crypt32.CertVerifyCertificateChainPolicy\n//sys\tCertGetNameString(certContext *CertContext, nameType uint32, flags uint32, typePara unsafe.Pointer, name *uint16, size uint32) (chars uint32) = crypt32.CertGetNameStringW\n//sys\tCertFindExtension(objId *byte, countExtensions uint32, extensions *CertExtension) (ret *CertExtension) = crypt32.CertFindExtension\n//sys   CertFindCertificateInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevCertContext *CertContext) (cert *CertContext, err error) [failretval==nil] = crypt32.CertFindCertificateInStore\n//sys   CertFindChainInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevChainContext *CertChainContext) (certchain *CertChainContext, err error) [failretval==nil] = crypt32.CertFindChainInStore\n//sys   CryptAcquireCertificatePrivateKey(cert *CertContext, flags uint32, parameters unsafe.Pointer, cryptProvOrNCryptKey *Handle, keySpec *uint32, callerFreeProvOrNCryptKey *bool) (err error) = crypt32.CryptAcquireCertificatePrivateKey\n//sys\tCryptQueryObject(objectType uint32, object unsafe.Pointer, expectedContentTypeFlags uint32, expectedFormatTypeFlags uint32, flags uint32, msgAndCertEncodingType *uint32, contentType *uint32, formatType *uint32, certStore *Handle, msg *Handle, context *unsafe.Pointer) (err error) = crypt32.CryptQueryObject\n//sys\tCryptDecodeObject(encodingType uint32, structType *byte, encodedBytes *byte, lenEncodedBytes uint32, flags uint32, decoded unsafe.Pointer, decodedLen *uint32) (err error) = crypt32.CryptDecodeObject\n//sys\tCryptProtectData(dataIn *DataBlob, name *uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) = crypt32.CryptProtectData\n//sys\tCryptUnprotectData(dataIn *DataBlob, name **uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) = crypt32.CryptUnprotectData\n//sys\tWinVerifyTrustEx(hwnd HWND, actionId *GUID, data *WinTrustData) (ret error) = wintrust.WinVerifyTrustEx\n//sys\tRegOpenKeyEx(key Handle, subkey *uint16, options uint32, desiredAccess uint32, result *Handle) (regerrno error) = advapi32.RegOpenKeyExW\n//sys\tRegCloseKey(key Handle) (regerrno error) = advapi32.RegCloseKey\n//sys\tRegQueryInfoKey(key Handle, class *uint16, classLen *uint32, reserved *uint32, subkeysLen *uint32, maxSubkeyLen *uint32, maxClassLen *uint32, valuesLen *uint32, maxValueNameLen *uint32, maxValueLen *uint32, saLen *uint32, lastWriteTime *Filetime) (regerrno error) = advapi32.RegQueryInfoKeyW\n//sys\tRegEnumKeyEx(key Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, class *uint16, classLen *uint32, lastWriteTime *Filetime) (regerrno error) = advapi32.RegEnumKeyExW\n//sys\tRegQueryValueEx(key Handle, name *uint16, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) = advapi32.RegQueryValueExW\n//sys\tRegNotifyChangeKeyValue(key Handle, watchSubtree bool, notifyFilter uint32, event Handle, asynchronous bool) (regerrno error) = advapi32.RegNotifyChangeKeyValue\n//sys\tGetCurrentProcessId() (pid uint32) = kernel32.GetCurrentProcessId\n//sys\tProcessIdToSessionId(pid uint32, sessionid *uint32) (err error) = kernel32.ProcessIdToSessionId\n//sys\tClosePseudoConsole(console Handle) = kernel32.ClosePseudoConsole\n//sys\tcreatePseudoConsole(size uint32, in Handle, out Handle, flags uint32, pconsole *Handle) (hr error) = kernel32.CreatePseudoConsole\n//sys\tGetConsoleMode(console Handle, mode *uint32) (err error) = kernel32.GetConsoleMode\n//sys\tSetConsoleMode(console Handle, mode uint32) (err error) = kernel32.SetConsoleMode\n//sys\tGetConsoleScreenBufferInfo(console Handle, info *ConsoleScreenBufferInfo) (err error) = kernel32.GetConsoleScreenBufferInfo\n//sys\tsetConsoleCursorPosition(console Handle, position uint32) (err error) = kernel32.SetConsoleCursorPosition\n//sys\tGetConsoleCP() (cp uint32, err error) = kernel32.GetConsoleCP\n//sys\tGetConsoleOutputCP() (cp uint32, err error) = kernel32.GetConsoleOutputCP\n//sys\tSetConsoleCP(cp uint32) (err error) = kernel32.SetConsoleCP\n//sys\tSetConsoleOutputCP(cp uint32) (err error) = kernel32.SetConsoleOutputCP\n//sys\tWriteConsole(console Handle, buf *uint16, towrite uint32, written *uint32, reserved *byte) (err error) = kernel32.WriteConsoleW\n//sys\tReadConsole(console Handle, buf *uint16, toread uint32, read *uint32, inputControl *byte) (err error) = kernel32.ReadConsoleW\n//sys\tresizePseudoConsole(pconsole Handle, size uint32) (hr error) = kernel32.ResizePseudoConsole\n//sys\tCreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, err error) [failretval==InvalidHandle] = kernel32.CreateToolhelp32Snapshot\n//sys\tModule32First(snapshot Handle, moduleEntry *ModuleEntry32) (err error) = kernel32.Module32FirstW\n//sys\tModule32Next(snapshot Handle, moduleEntry *ModuleEntry32) (err error) = kernel32.Module32NextW\n//sys\tProcess32First(snapshot Handle, procEntry *ProcessEntry32) (err error) = kernel32.Process32FirstW\n//sys\tProcess32Next(snapshot Handle, procEntry *ProcessEntry32) (err error) = kernel32.Process32NextW\n//sys\tThread32First(snapshot Handle, threadEntry *ThreadEntry32) (err error)\n//sys\tThread32Next(snapshot Handle, threadEntry *ThreadEntry32) (err error)\n//sys\tDeviceIoControl(handle Handle, ioControlCode uint32, inBuffer *byte, inBufferSize uint32, outBuffer *byte, outBufferSize uint32, bytesReturned *uint32, overlapped *Overlapped) (err error)\n// This function returns 1 byte BOOLEAN rather than the 4 byte BOOL.\n//sys\tCreateSymbolicLink(symlinkfilename *uint16, targetfilename *uint16, flags uint32) (err error) [failretval&0xff==0] = CreateSymbolicLinkW\n//sys\tCreateHardLink(filename *uint16, existingfilename *uint16, reserved uintptr) (err error) [failretval&0xff==0] = CreateHardLinkW\n//sys\tGetCurrentThreadId() (id uint32)\n//sys\tCreateEvent(eventAttrs *SecurityAttributes, manualReset uint32, initialState uint32, name *uint16) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateEventW\n//sys\tCreateEventEx(eventAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateEventExW\n//sys\tOpenEvent(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) = kernel32.OpenEventW\n//sys\tSetEvent(event Handle) (err error) = kernel32.SetEvent\n//sys\tResetEvent(event Handle) (err error) = kernel32.ResetEvent\n//sys\tPulseEvent(event Handle) (err error) = kernel32.PulseEvent\n//sys\tCreateMutex(mutexAttrs *SecurityAttributes, initialOwner bool, name *uint16) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateMutexW\n//sys\tCreateMutexEx(mutexAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) [failretval == 0 || e1 == ERROR_ALREADY_EXISTS] = kernel32.CreateMutexExW\n//sys\tOpenMutex(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) = kernel32.OpenMutexW\n//sys\tReleaseMutex(mutex Handle) (err error) = kernel32.ReleaseMutex\n//sys\tSleepEx(milliseconds uint32, alertable bool) (ret uint32) = kernel32.SleepEx\n//sys\tCreateJobObject(jobAttr *SecurityAttributes, name *uint16) (handle Handle, err error) = kernel32.CreateJobObjectW\n//sys\tAssignProcessToJobObject(job Handle, process Handle) (err error) = kernel32.AssignProcessToJobObject\n//sys\tTerminateJobObject(job Handle, exitCode uint32) (err error) = kernel32.TerminateJobObject\n//sys\tSetErrorMode(mode uint32) (ret uint32) = kernel32.SetErrorMode\n//sys\tResumeThread(thread Handle) (ret uint32, err error) [failretval==0xffffffff] = kernel32.ResumeThread\n//sys\tSetPriorityClass(process Handle, priorityClass uint32) (err error) = kernel32.SetPriorityClass\n//sys\tGetPriorityClass(process Handle) (ret uint32, err error) = kernel32.GetPriorityClass\n//sys\tQueryInformationJobObject(job Handle, JobObjectInformationClass int32, JobObjectInformation uintptr, JobObjectInformationLength uint32, retlen *uint32) (err error) = kernel32.QueryInformationJobObject\n//sys\tSetInformationJobObject(job Handle, JobObjectInformationClass uint32, JobObjectInformation uintptr, JobObjectInformationLength uint32) (ret int, err error)\n//sys\tGenerateConsoleCtrlEvent(ctrlEvent uint32, processGroupID uint32) (err error)\n//sys\tGetProcessId(process Handle) (id uint32, err error)\n//sys\tQueryFullProcessImageName(proc Handle, flags uint32, exeName *uint16, size *uint32) (err error) = kernel32.QueryFullProcessImageNameW\n//sys\tOpenThread(desiredAccess uint32, inheritHandle bool, threadId uint32) (handle Handle, err error)\n//sys\tSetProcessPriorityBoost(process Handle, disable bool) (err error) = kernel32.SetProcessPriorityBoost\n//sys\tGetProcessWorkingSetSizeEx(hProcess Handle, lpMinimumWorkingSetSize *uintptr, lpMaximumWorkingSetSize *uintptr, flags *uint32)\n//sys\tSetProcessWorkingSetSizeEx(hProcess Handle, dwMinimumWorkingSetSize uintptr, dwMaximumWorkingSetSize uintptr, flags uint32) (err error)\n//sys\tClearCommBreak(handle Handle) (err error)\n//sys\tClearCommError(handle Handle, lpErrors *uint32, lpStat *ComStat) (err error)\n//sys\tEscapeCommFunction(handle Handle, dwFunc uint32) (err error)\n//sys\tGetCommState(handle Handle, lpDCB *DCB) (err error)\n//sys\tGetCommModemStatus(handle Handle, lpModemStat *uint32) (err error)\n//sys\tGetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error)\n//sys\tPurgeComm(handle Handle, dwFlags uint32) (err error)\n//sys\tSetCommBreak(handle Handle) (err error)\n//sys\tSetCommMask(handle Handle, dwEvtMask uint32) (err error)\n//sys\tSetCommState(handle Handle, lpDCB *DCB) (err error)\n//sys\tSetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error)\n//sys\tSetupComm(handle Handle, dwInQueue uint32, dwOutQueue uint32) (err error)\n//sys\tWaitCommEvent(handle Handle, lpEvtMask *uint32, lpOverlapped *Overlapped) (err error)\n//sys\tGetActiveProcessorCount(groupNumber uint16) (ret uint32)\n//sys\tGetMaximumProcessorCount(groupNumber uint16) (ret uint32)\n//sys\tEnumWindows(enumFunc uintptr, param unsafe.Pointer) (err error) = user32.EnumWindows\n//sys\tEnumChildWindows(hwnd HWND, enumFunc uintptr, param unsafe.Pointer) = user32.EnumChildWindows\n//sys\tGetClassName(hwnd HWND, className *uint16, maxCount int32) (copied int32, err error) = user32.GetClassNameW\n//sys\tGetDesktopWindow() (hwnd HWND) = user32.GetDesktopWindow\n//sys\tGetForegroundWindow() (hwnd HWND) = user32.GetForegroundWindow\n//sys\tIsWindow(hwnd HWND) (isWindow bool) = user32.IsWindow\n//sys\tIsWindowUnicode(hwnd HWND) (isUnicode bool) = user32.IsWindowUnicode\n//sys\tIsWindowVisible(hwnd HWND) (isVisible bool) = user32.IsWindowVisible\n//sys\tGetGUIThreadInfo(thread uint32, info *GUIThreadInfo) (err error) = user32.GetGUIThreadInfo\n//sys\tGetLargePageMinimum() (size uintptr)\n\n// Volume Management Functions\n//sys\tDefineDosDevice(flags uint32, deviceName *uint16, targetPath *uint16) (err error) = DefineDosDeviceW\n//sys\tDeleteVolumeMountPoint(volumeMountPoint *uint16) (err error) = DeleteVolumeMountPointW\n//sys\tFindFirstVolume(volumeName *uint16, bufferLength uint32) (handle Handle, err error) [failretval==InvalidHandle] = FindFirstVolumeW\n//sys\tFindFirstVolumeMountPoint(rootPathName *uint16, volumeMountPoint *uint16, bufferLength uint32) (handle Handle, err error) [failretval==InvalidHandle] = FindFirstVolumeMountPointW\n//sys\tFindNextVolume(findVolume Handle, volumeName *uint16, bufferLength uint32) (err error) = FindNextVolumeW\n//sys\tFindNextVolumeMountPoint(findVolumeMountPoint Handle, volumeMountPoint *uint16, bufferLength uint32) (err error) = FindNextVolumeMountPointW\n//sys\tFindVolumeClose(findVolume Handle) (err error)\n//sys\tFindVolumeMountPointClose(findVolumeMountPoint Handle) (err error)\n//sys\tGetDiskFreeSpaceEx(directoryName *uint16, freeBytesAvailableToCaller *uint64, totalNumberOfBytes *uint64, totalNumberOfFreeBytes *uint64) (err error) = GetDiskFreeSpaceExW\n//sys\tGetDriveType(rootPathName *uint16) (driveType uint32) = GetDriveTypeW\n//sys\tGetLogicalDrives() (drivesBitMask uint32, err error) [failretval==0]\n//sys\tGetLogicalDriveStrings(bufferLength uint32, buffer *uint16) (n uint32, err error) [failretval==0] = GetLogicalDriveStringsW\n//sys\tGetVolumeInformation(rootPathName *uint16, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) = GetVolumeInformationW\n//sys\tGetVolumeInformationByHandle(file Handle, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) = GetVolumeInformationByHandleW\n//sys\tGetVolumeNameForVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16, bufferlength uint32) (err error) = GetVolumeNameForVolumeMountPointW\n//sys\tGetVolumePathName(fileName *uint16, volumePathName *uint16, bufferLength uint32) (err error) = GetVolumePathNameW\n//sys\tGetVolumePathNamesForVolumeName(volumeName *uint16, volumePathNames *uint16, bufferLength uint32, returnLength *uint32) (err error) = GetVolumePathNamesForVolumeNameW\n//sys\tQueryDosDevice(deviceName *uint16, targetPath *uint16, max uint32) (n uint32, err error) [failretval==0] = QueryDosDeviceW\n//sys\tSetVolumeLabel(rootPathName *uint16, volumeName *uint16) (err error) = SetVolumeLabelW\n//sys\tSetVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16) (err error) = SetVolumeMountPointW\n//sys\tInitiateSystemShutdownEx(machineName *uint16, message *uint16, timeout uint32, forceAppsClosed bool, rebootAfterShutdown bool, reason uint32) (err error) = advapi32.InitiateSystemShutdownExW\n//sys\tSetProcessShutdownParameters(level uint32, flags uint32) (err error) = kernel32.SetProcessShutdownParameters\n//sys\tGetProcessShutdownParameters(level *uint32, flags *uint32) (err error) = kernel32.GetProcessShutdownParameters\n//sys\tclsidFromString(lpsz *uint16, pclsid *GUID) (ret error) = ole32.CLSIDFromString\n//sys\tstringFromGUID2(rguid *GUID, lpsz *uint16, cchMax int32) (chars int32) = ole32.StringFromGUID2\n//sys\tcoCreateGuid(pguid *GUID) (ret error) = ole32.CoCreateGuid\n//sys\tCoTaskMemFree(address unsafe.Pointer) = ole32.CoTaskMemFree\n//sys\tCoInitializeEx(reserved uintptr, coInit uint32) (ret error) = ole32.CoInitializeEx\n//sys\tCoUninitialize() = ole32.CoUninitialize\n//sys\tCoGetObject(name *uint16, bindOpts *BIND_OPTS3, guid *GUID, functionTable **uintptr) (ret error) = ole32.CoGetObject\n//sys\tgetProcessPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetProcessPreferredUILanguages\n//sys\tgetThreadPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetThreadPreferredUILanguages\n//sys\tgetUserPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetUserPreferredUILanguages\n//sys\tgetSystemPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) = kernel32.GetSystemPreferredUILanguages\n//sys\tfindResource(module Handle, name uintptr, resType uintptr) (resInfo Handle, err error) = kernel32.FindResourceW\n//sys\tSizeofResource(module Handle, resInfo Handle) (size uint32, err error) = kernel32.SizeofResource\n//sys\tLoadResource(module Handle, resInfo Handle) (resData Handle, err error) = kernel32.LoadResource\n//sys\tLockResource(resData Handle) (addr uintptr, err error) = kernel32.LockResource\n\n// Version APIs\n//sys\tGetFileVersionInfoSize(filename string, zeroHandle *Handle) (bufSize uint32, err error) = version.GetFileVersionInfoSizeW\n//sys\tGetFileVersionInfo(filename string, handle uint32, bufSize uint32, buffer unsafe.Pointer) (err error) = version.GetFileVersionInfoW\n//sys\tVerQueryValue(block unsafe.Pointer, subBlock string, pointerToBufferPointer unsafe.Pointer, bufSize *uint32) (err error) = version.VerQueryValueW\n\n// Process Status API (PSAPI)\n//sys\tenumProcesses(processIds *uint32, nSize uint32, bytesReturned *uint32) (err error) = psapi.EnumProcesses\n//sys\tEnumProcessModules(process Handle, module *Handle, cb uint32, cbNeeded *uint32) (err error) = psapi.EnumProcessModules\n//sys\tEnumProcessModulesEx(process Handle, module *Handle, cb uint32, cbNeeded *uint32, filterFlag uint32) (err error) = psapi.EnumProcessModulesEx\n//sys\tGetModuleInformation(process Handle, module Handle, modinfo *ModuleInfo, cb uint32) (err error) = psapi.GetModuleInformation\n//sys\tGetModuleFileNameEx(process Handle, module Handle, filename *uint16, size uint32) (err error) = psapi.GetModuleFileNameExW\n//sys\tGetModuleBaseName(process Handle, module Handle, baseName *uint16, size uint32) (err error) = psapi.GetModuleBaseNameW\n//sys   QueryWorkingSetEx(process Handle, pv uintptr, cb uint32) (err error) = psapi.QueryWorkingSetEx\n\n// NT Native APIs\n//sys\trtlNtStatusToDosErrorNoTeb(ntstatus NTStatus) (ret syscall.Errno) = ntdll.RtlNtStatusToDosErrorNoTeb\n//sys\trtlGetVersion(info *OsVersionInfoEx) (ntstatus error) = ntdll.RtlGetVersion\n//sys\trtlGetNtVersionNumbers(majorVersion *uint32, minorVersion *uint32, buildNumber *uint32) = ntdll.RtlGetNtVersionNumbers\n//sys\tRtlGetCurrentPeb() (peb *PEB) = ntdll.RtlGetCurrentPeb\n//sys\tRtlInitUnicodeString(destinationString *NTUnicodeString, sourceString *uint16) = ntdll.RtlInitUnicodeString\n//sys\tRtlInitString(destinationString *NTString, sourceString *byte) = ntdll.RtlInitString\n//sys\tNtCreateFile(handle *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, allocationSize *int64, attributes uint32, share uint32, disposition uint32, options uint32, eabuffer uintptr, ealength uint32) (ntstatus error) = ntdll.NtCreateFile\n//sys\tNtCreateNamedPipeFile(pipe *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, share uint32, disposition uint32, options uint32, typ uint32, readMode uint32, completionMode uint32, maxInstances uint32, inboundQuota uint32, outputQuota uint32, timeout *int64) (ntstatus error) = ntdll.NtCreateNamedPipeFile\n//sys\tNtSetInformationFile(handle Handle, iosb *IO_STATUS_BLOCK, inBuffer *byte, inBufferLen uint32, class uint32) (ntstatus error) = ntdll.NtSetInformationFile\n//sys\tRtlDosPathNameToNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) = ntdll.RtlDosPathNameToNtPathName_U_WithStatus\n//sys\tRtlDosPathNameToRelativeNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) = ntdll.RtlDosPathNameToRelativeNtPathName_U_WithStatus\n//sys\tRtlDefaultNpAcl(acl **ACL) (ntstatus error) = ntdll.RtlDefaultNpAcl\n//sys\tNtQueryInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32, retLen *uint32) (ntstatus error) = ntdll.NtQueryInformationProcess\n//sys\tNtSetInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32) (ntstatus error) = ntdll.NtSetInformationProcess\n//sys\tNtQuerySystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32, retLen *uint32) (ntstatus error) = ntdll.NtQuerySystemInformation\n//sys\tNtSetSystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32) (ntstatus error) = ntdll.NtSetSystemInformation\n//sys\tRtlAddFunctionTable(functionTable *RUNTIME_FUNCTION, entryCount uint32, baseAddress uintptr) (ret bool) = ntdll.RtlAddFunctionTable\n//sys\tRtlDeleteFunctionTable(functionTable *RUNTIME_FUNCTION) (ret bool) = ntdll.RtlDeleteFunctionTable\n\n// Desktop Window Manager API (Dwmapi)\n//sys\tDwmGetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) = dwmapi.DwmGetWindowAttribute\n//sys\tDwmSetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) = dwmapi.DwmSetWindowAttribute\n\n// Windows Multimedia API\n//sys TimeBeginPeriod (period uint32) (err error) [failretval != 0] = winmm.timeBeginPeriod\n//sys TimeEndPeriod (period uint32) (err error) [failretval != 0] = winmm.timeEndPeriod\n\n// syscall interface implementation for other packages\n\n// GetCurrentProcess returns the handle for the current process.\n// It is a pseudo handle that does not need to be closed.\n// The returned error is always nil.\n//\n// Deprecated: use CurrentProcess for the same Handle without the nil\n// error.\nfunc GetCurrentProcess() (Handle, error) {\n\treturn CurrentProcess(), nil\n}\n\n// CurrentProcess returns the handle for the current process.\n// It is a pseudo handle that does not need to be closed.\nfunc CurrentProcess() Handle { return Handle(^uintptr(1 - 1)) }\n\n// GetCurrentThread returns the handle for the current thread.\n// It is a pseudo handle that does not need to be closed.\n// The returned error is always nil.\n//\n// Deprecated: use CurrentThread for the same Handle without the nil\n// error.\nfunc GetCurrentThread() (Handle, error) {\n\treturn CurrentThread(), nil\n}\n\n// CurrentThread returns the handle for the current thread.\n// It is a pseudo handle that does not need to be closed.\nfunc CurrentThread() Handle { return Handle(^uintptr(2 - 1)) }\n\n// GetProcAddressByOrdinal retrieves the address of the exported\n// function from module by ordinal.\nfunc GetProcAddressByOrdinal(module Handle, ordinal uintptr) (proc uintptr, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetProcAddress.Addr(), 2, uintptr(module), ordinal, 0)\n\tproc = uintptr(r0)\n\tif proc == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc Exit(code int) { ExitProcess(uint32(code)) }\n\nfunc makeInheritSa() *SecurityAttributes {\n\tvar sa SecurityAttributes\n\tsa.Length = uint32(unsafe.Sizeof(sa))\n\tsa.InheritHandle = 1\n\treturn &sa\n}\n\nfunc Open(path string, mode int, perm uint32) (fd Handle, err error) {\n\tif len(path) == 0 {\n\t\treturn InvalidHandle, ERROR_FILE_NOT_FOUND\n\t}\n\tpathp, err := UTF16PtrFromString(path)\n\tif err != nil {\n\t\treturn InvalidHandle, err\n\t}\n\tvar access uint32\n\tswitch mode & (O_RDONLY | O_WRONLY | O_RDWR) {\n\tcase O_RDONLY:\n\t\taccess = GENERIC_READ\n\tcase O_WRONLY:\n\t\taccess = GENERIC_WRITE\n\tcase O_RDWR:\n\t\taccess = GENERIC_READ | GENERIC_WRITE\n\t}\n\tif mode&O_CREAT != 0 {\n\t\taccess |= GENERIC_WRITE\n\t}\n\tif mode&O_APPEND != 0 {\n\t\taccess &^= GENERIC_WRITE\n\t\taccess |= FILE_APPEND_DATA\n\t}\n\tsharemode := uint32(FILE_SHARE_READ | FILE_SHARE_WRITE)\n\tvar sa *SecurityAttributes\n\tif mode&O_CLOEXEC == 0 {\n\t\tsa = makeInheritSa()\n\t}\n\tvar createmode uint32\n\tswitch {\n\tcase mode&(O_CREAT|O_EXCL) == (O_CREAT | O_EXCL):\n\t\tcreatemode = CREATE_NEW\n\tcase mode&(O_CREAT|O_TRUNC) == (O_CREAT | O_TRUNC):\n\t\tcreatemode = CREATE_ALWAYS\n\tcase mode&O_CREAT == O_CREAT:\n\t\tcreatemode = OPEN_ALWAYS\n\tcase mode&O_TRUNC == O_TRUNC:\n\t\tcreatemode = TRUNCATE_EXISTING\n\tdefault:\n\t\tcreatemode = OPEN_EXISTING\n\t}\n\tvar attrs uint32 = FILE_ATTRIBUTE_NORMAL\n\tif perm&S_IWRITE == 0 {\n\t\tattrs = FILE_ATTRIBUTE_READONLY\n\t}\n\th, e := CreateFile(pathp, access, sharemode, sa, createmode, attrs, 0)\n\treturn h, e\n}\n\nfunc Read(fd Handle, p []byte) (n int, err error) {\n\tvar done uint32\n\te := ReadFile(fd, p, &done, nil)\n\tif e != nil {\n\t\tif e == ERROR_BROKEN_PIPE {\n\t\t\t// NOTE(brainman): work around ERROR_BROKEN_PIPE is returned on reading EOF from stdin\n\t\t\treturn 0, nil\n\t\t}\n\t\treturn 0, e\n\t}\n\treturn int(done), nil\n}\n\nfunc Write(fd Handle, p []byte) (n int, err error) {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\tvar done uint32\n\te := WriteFile(fd, p, &done, nil)\n\tif e != nil {\n\t\treturn 0, e\n\t}\n\treturn int(done), nil\n}\n\nfunc ReadFile(fd Handle, p []byte, done *uint32, overlapped *Overlapped) error {\n\terr := readFile(fd, p, done, overlapped)\n\tif raceenabled {\n\t\tif *done > 0 {\n\t\t\traceWriteRange(unsafe.Pointer(&p[0]), int(*done))\n\t\t}\n\t\traceAcquire(unsafe.Pointer(&ioSync))\n\t}\n\treturn err\n}\n\nfunc WriteFile(fd Handle, p []byte, done *uint32, overlapped *Overlapped) error {\n\tif raceenabled {\n\t\traceReleaseMerge(unsafe.Pointer(&ioSync))\n\t}\n\terr := writeFile(fd, p, done, overlapped)\n\tif raceenabled && *done > 0 {\n\t\traceReadRange(unsafe.Pointer(&p[0]), int(*done))\n\t}\n\treturn err\n}\n\nvar ioSync int64\n\nfunc Seek(fd Handle, offset int64, whence int) (newoffset int64, err error) {\n\tvar w uint32\n\tswitch whence {\n\tcase 0:\n\t\tw = FILE_BEGIN\n\tcase 1:\n\t\tw = FILE_CURRENT\n\tcase 2:\n\t\tw = FILE_END\n\t}\n\thi := int32(offset >> 32)\n\tlo := int32(offset)\n\t// use GetFileType to check pipe, pipe can't do seek\n\tft, _ := GetFileType(fd)\n\tif ft == FILE_TYPE_PIPE {\n\t\treturn 0, syscall.EPIPE\n\t}\n\trlo, e := SetFilePointer(fd, lo, &hi, w)\n\tif e != nil {\n\t\treturn 0, e\n\t}\n\treturn int64(hi)<<32 + int64(rlo), nil\n}\n\nfunc Close(fd Handle) (err error) {\n\treturn CloseHandle(fd)\n}\n\nvar (\n\tStdin  = getStdHandle(STD_INPUT_HANDLE)\n\tStdout = getStdHandle(STD_OUTPUT_HANDLE)\n\tStderr = getStdHandle(STD_ERROR_HANDLE)\n)\n\nfunc getStdHandle(stdhandle uint32) (fd Handle) {\n\tr, _ := GetStdHandle(stdhandle)\n\treturn r\n}\n\nconst ImplementsGetwd = true\n\nfunc Getwd() (wd string, err error) {\n\tb := make([]uint16, 300)\n\tn, e := GetCurrentDirectory(uint32(len(b)), &b[0])\n\tif e != nil {\n\t\treturn \"\", e\n\t}\n\treturn string(utf16.Decode(b[0:n])), nil\n}\n\nfunc Chdir(path string) (err error) {\n\tpathp, err := UTF16PtrFromString(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn SetCurrentDirectory(pathp)\n}\n\nfunc Mkdir(path string, mode uint32) (err error) {\n\tpathp, err := UTF16PtrFromString(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn CreateDirectory(pathp, nil)\n}\n\nfunc Rmdir(path string) (err error) {\n\tpathp, err := UTF16PtrFromString(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn RemoveDirectory(pathp)\n}\n\nfunc Unlink(path string) (err error) {\n\tpathp, err := UTF16PtrFromString(path)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn DeleteFile(pathp)\n}\n\nfunc Rename(oldpath, newpath string) (err error) {\n\tfrom, err := UTF16PtrFromString(oldpath)\n\tif err != nil {\n\t\treturn err\n\t}\n\tto, err := UTF16PtrFromString(newpath)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn MoveFileEx(from, to, MOVEFILE_REPLACE_EXISTING)\n}\n\nfunc ComputerName() (name string, err error) {\n\tvar n uint32 = MAX_COMPUTERNAME_LENGTH + 1\n\tb := make([]uint16, n)\n\te := GetComputerName(&b[0], &n)\n\tif e != nil {\n\t\treturn \"\", e\n\t}\n\treturn string(utf16.Decode(b[0:n])), nil\n}\n\nfunc DurationSinceBoot() time.Duration {\n\treturn time.Duration(getTickCount64()) * time.Millisecond\n}\n\nfunc Ftruncate(fd Handle, length int64) (err error) {\n\ttype _FILE_END_OF_FILE_INFO struct {\n\t\tEndOfFile int64\n\t}\n\tvar info _FILE_END_OF_FILE_INFO\n\tinfo.EndOfFile = length\n\treturn SetFileInformationByHandle(fd, FileEndOfFileInfo, (*byte)(unsafe.Pointer(&info)), uint32(unsafe.Sizeof(info)))\n}\n\nfunc Gettimeofday(tv *Timeval) (err error) {\n\tvar ft Filetime\n\tGetSystemTimeAsFileTime(&ft)\n\t*tv = NsecToTimeval(ft.Nanoseconds())\n\treturn nil\n}\n\nfunc Pipe(p []Handle) (err error) {\n\tif len(p) != 2 {\n\t\treturn syscall.EINVAL\n\t}\n\tvar r, w Handle\n\te := CreatePipe(&r, &w, makeInheritSa(), 0)\n\tif e != nil {\n\t\treturn e\n\t}\n\tp[0] = r\n\tp[1] = w\n\treturn nil\n}\n\nfunc Utimes(path string, tv []Timeval) (err error) {\n\tif len(tv) != 2 {\n\t\treturn syscall.EINVAL\n\t}\n\tpathp, e := UTF16PtrFromString(path)\n\tif e != nil {\n\t\treturn e\n\t}\n\th, e := CreateFile(pathp,\n\t\tFILE_WRITE_ATTRIBUTES, FILE_SHARE_WRITE, nil,\n\t\tOPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0)\n\tif e != nil {\n\t\treturn e\n\t}\n\tdefer CloseHandle(h)\n\ta := NsecToFiletime(tv[0].Nanoseconds())\n\tw := NsecToFiletime(tv[1].Nanoseconds())\n\treturn SetFileTime(h, nil, &a, &w)\n}\n\nfunc UtimesNano(path string, ts []Timespec) (err error) {\n\tif len(ts) != 2 {\n\t\treturn syscall.EINVAL\n\t}\n\tpathp, e := UTF16PtrFromString(path)\n\tif e != nil {\n\t\treturn e\n\t}\n\th, e := CreateFile(pathp,\n\t\tFILE_WRITE_ATTRIBUTES, FILE_SHARE_WRITE, nil,\n\t\tOPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0)\n\tif e != nil {\n\t\treturn e\n\t}\n\tdefer CloseHandle(h)\n\ta := NsecToFiletime(TimespecToNsec(ts[0]))\n\tw := NsecToFiletime(TimespecToNsec(ts[1]))\n\treturn SetFileTime(h, nil, &a, &w)\n}\n\nfunc Fsync(fd Handle) (err error) {\n\treturn FlushFileBuffers(fd)\n}\n\nfunc Chmod(path string, mode uint32) (err error) {\n\tp, e := UTF16PtrFromString(path)\n\tif e != nil {\n\t\treturn e\n\t}\n\tattrs, e := GetFileAttributes(p)\n\tif e != nil {\n\t\treturn e\n\t}\n\tif mode&S_IWRITE != 0 {\n\t\tattrs &^= FILE_ATTRIBUTE_READONLY\n\t} else {\n\t\tattrs |= FILE_ATTRIBUTE_READONLY\n\t}\n\treturn SetFileAttributes(p, attrs)\n}\n\nfunc LoadGetSystemTimePreciseAsFileTime() error {\n\treturn procGetSystemTimePreciseAsFileTime.Find()\n}\n\nfunc LoadCancelIoEx() error {\n\treturn procCancelIoEx.Find()\n}\n\nfunc LoadSetFileCompletionNotificationModes() error {\n\treturn procSetFileCompletionNotificationModes.Find()\n}\n\nfunc WaitForMultipleObjects(handles []Handle, waitAll bool, waitMilliseconds uint32) (event uint32, err error) {\n\t// Every other win32 array API takes arguments as \"pointer, count\", except for this function. So we\n\t// can't declare it as a usual [] type, because mksyscall will use the opposite order. We therefore\n\t// trivially stub this ourselves.\n\n\tvar handlePtr *Handle\n\tif len(handles) > 0 {\n\t\thandlePtr = &handles[0]\n\t}\n\treturn waitForMultipleObjects(uint32(len(handles)), uintptr(unsafe.Pointer(handlePtr)), waitAll, waitMilliseconds)\n}\n\n// net api calls\n\nconst socket_error = uintptr(^uint32(0))\n\n//sys\tWSAStartup(verreq uint32, data *WSAData) (sockerr error) = ws2_32.WSAStartup\n//sys\tWSACleanup() (err error) [failretval==socket_error] = ws2_32.WSACleanup\n//sys\tWSAIoctl(s Handle, iocc uint32, inbuf *byte, cbif uint32, outbuf *byte, cbob uint32, cbbr *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) [failretval==socket_error] = ws2_32.WSAIoctl\n//sys\tWSALookupServiceBegin(querySet *WSAQUERYSET, flags uint32, handle *Handle) (err error) [failretval==socket_error] = ws2_32.WSALookupServiceBeginW\n//sys\tWSALookupServiceNext(handle Handle, flags uint32, size *int32, querySet *WSAQUERYSET) (err error) [failretval==socket_error] = ws2_32.WSALookupServiceNextW\n//sys\tWSALookupServiceEnd(handle Handle) (err error) [failretval==socket_error] = ws2_32.WSALookupServiceEnd\n//sys\tsocket(af int32, typ int32, protocol int32) (handle Handle, err error) [failretval==InvalidHandle] = ws2_32.socket\n//sys\tsendto(s Handle, buf []byte, flags int32, to unsafe.Pointer, tolen int32) (err error) [failretval==socket_error] = ws2_32.sendto\n//sys\trecvfrom(s Handle, buf []byte, flags int32, from *RawSockaddrAny, fromlen *int32) (n int32, err error) [failretval==-1] = ws2_32.recvfrom\n//sys\tSetsockopt(s Handle, level int32, optname int32, optval *byte, optlen int32) (err error) [failretval==socket_error] = ws2_32.setsockopt\n//sys\tGetsockopt(s Handle, level int32, optname int32, optval *byte, optlen *int32) (err error) [failretval==socket_error] = ws2_32.getsockopt\n//sys\tbind(s Handle, name unsafe.Pointer, namelen int32) (err error) [failretval==socket_error] = ws2_32.bind\n//sys\tconnect(s Handle, name unsafe.Pointer, namelen int32) (err error) [failretval==socket_error] = ws2_32.connect\n//sys\tgetsockname(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) [failretval==socket_error] = ws2_32.getsockname\n//sys\tgetpeername(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) [failretval==socket_error] = ws2_32.getpeername\n//sys\tlisten(s Handle, backlog int32) (err error) [failretval==socket_error] = ws2_32.listen\n//sys\tshutdown(s Handle, how int32) (err error) [failretval==socket_error] = ws2_32.shutdown\n//sys\tClosesocket(s Handle) (err error) [failretval==socket_error] = ws2_32.closesocket\n//sys\tAcceptEx(ls Handle, as Handle, buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, recvd *uint32, overlapped *Overlapped) (err error) = mswsock.AcceptEx\n//sys\tGetAcceptExSockaddrs(buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, lrsa **RawSockaddrAny, lrsalen *int32, rrsa **RawSockaddrAny, rrsalen *int32) = mswsock.GetAcceptExSockaddrs\n//sys\tWSARecv(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSARecv\n//sys\tWSASend(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSASend\n//sys\tWSARecvFrom(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32,  from *RawSockaddrAny, fromlen *int32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSARecvFrom\n//sys\tWSASendTo(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to *RawSockaddrAny, tolen int32,  overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSASendTo\n//sys\tWSASocket(af int32, typ int32, protocol int32, protoInfo *WSAProtocolInfo, group uint32, flags uint32) (handle Handle, err error) [failretval==InvalidHandle] = ws2_32.WSASocketW\n//sys\tGetHostByName(name string) (h *Hostent, err error) [failretval==nil] = ws2_32.gethostbyname\n//sys\tGetServByName(name string, proto string) (s *Servent, err error) [failretval==nil] = ws2_32.getservbyname\n//sys\tNtohs(netshort uint16) (u uint16) = ws2_32.ntohs\n//sys\tGetProtoByName(name string) (p *Protoent, err error) [failretval==nil] = ws2_32.getprotobyname\n//sys\tDnsQuery(name string, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) = dnsapi.DnsQuery_W\n//sys\tDnsRecordListFree(rl *DNSRecord, freetype uint32) = dnsapi.DnsRecordListFree\n//sys\tDnsNameCompare(name1 *uint16, name2 *uint16) (same bool) = dnsapi.DnsNameCompare_W\n//sys\tGetAddrInfoW(nodename *uint16, servicename *uint16, hints *AddrinfoW, result **AddrinfoW) (sockerr error) = ws2_32.GetAddrInfoW\n//sys\tFreeAddrInfoW(addrinfo *AddrinfoW) = ws2_32.FreeAddrInfoW\n//sys\tGetIfEntry(pIfRow *MibIfRow) (errcode error) = iphlpapi.GetIfEntry\n//sys\tGetAdaptersInfo(ai *IpAdapterInfo, ol *uint32) (errcode error) = iphlpapi.GetAdaptersInfo\n//sys\tSetFileCompletionNotificationModes(handle Handle, flags uint8) (err error) = kernel32.SetFileCompletionNotificationModes\n//sys\tWSAEnumProtocols(protocols *int32, protocolBuffer *WSAProtocolInfo, bufferLength *uint32) (n int32, err error) [failretval==-1] = ws2_32.WSAEnumProtocolsW\n//sys\tWSAGetOverlappedResult(h Handle, o *Overlapped, bytes *uint32, wait bool, flags *uint32) (err error) = ws2_32.WSAGetOverlappedResult\n//sys\tGetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapterAddresses *IpAdapterAddresses, sizePointer *uint32) (errcode error) = iphlpapi.GetAdaptersAddresses\n//sys\tGetACP() (acp uint32) = kernel32.GetACP\n//sys\tMultiByteToWideChar(codePage uint32, dwFlags uint32, str *byte, nstr int32, wchar *uint16, nwchar int32) (nwrite int32, err error) = kernel32.MultiByteToWideChar\n//sys\tgetBestInterfaceEx(sockaddr unsafe.Pointer, pdwBestIfIndex *uint32) (errcode error) = iphlpapi.GetBestInterfaceEx\n//sys   GetIfEntry2Ex(level uint32, row *MibIfRow2) (errcode error) = iphlpapi.GetIfEntry2Ex\n//sys   GetUnicastIpAddressEntry(row *MibUnicastIpAddressRow) (errcode error) = iphlpapi.GetUnicastIpAddressEntry\n//sys   NotifyIpInterfaceChange(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) = iphlpapi.NotifyIpInterfaceChange\n//sys   NotifyUnicastIpAddressChange(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) = iphlpapi.NotifyUnicastIpAddressChange\n//sys   CancelMibChangeNotify2(notificationHandle Handle) (errcode error) = iphlpapi.CancelMibChangeNotify2\n\n// For testing: clients can set this flag to force\n// creation of IPv6 sockets to return EAFNOSUPPORT.\nvar SocketDisableIPv6 bool\n\ntype RawSockaddrInet4 struct {\n\tFamily uint16\n\tPort   uint16\n\tAddr   [4]byte /* in_addr */\n\tZero   [8]uint8\n}\n\ntype RawSockaddrInet6 struct {\n\tFamily   uint16\n\tPort     uint16\n\tFlowinfo uint32\n\tAddr     [16]byte /* in6_addr */\n\tScope_id uint32\n}\n\ntype RawSockaddr struct {\n\tFamily uint16\n\tData   [14]int8\n}\n\ntype RawSockaddrAny struct {\n\tAddr RawSockaddr\n\tPad  [100]int8\n}\n\ntype Sockaddr interface {\n\tsockaddr() (ptr unsafe.Pointer, len int32, err error) // lowercase; only we can define Sockaddrs\n}\n\ntype SockaddrInet4 struct {\n\tPort int\n\tAddr [4]byte\n\traw  RawSockaddrInet4\n}\n\nfunc (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, int32, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, syscall.EINVAL\n\t}\n\tsa.raw.Family = AF_INET\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tsa.raw.Addr = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), int32(unsafe.Sizeof(sa.raw)), nil\n}\n\ntype SockaddrInet6 struct {\n\tPort   int\n\tZoneId uint32\n\tAddr   [16]byte\n\traw    RawSockaddrInet6\n}\n\nfunc (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, int32, error) {\n\tif sa.Port < 0 || sa.Port > 0xFFFF {\n\t\treturn nil, 0, syscall.EINVAL\n\t}\n\tsa.raw.Family = AF_INET6\n\tp := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))\n\tp[0] = byte(sa.Port >> 8)\n\tp[1] = byte(sa.Port)\n\tsa.raw.Scope_id = sa.ZoneId\n\tsa.raw.Addr = sa.Addr\n\treturn unsafe.Pointer(&sa.raw), int32(unsafe.Sizeof(sa.raw)), nil\n}\n\ntype RawSockaddrUnix struct {\n\tFamily uint16\n\tPath   [UNIX_PATH_MAX]int8\n}\n\ntype SockaddrUnix struct {\n\tName string\n\traw  RawSockaddrUnix\n}\n\nfunc (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, int32, error) {\n\tname := sa.Name\n\tn := len(name)\n\tif n > len(sa.raw.Path) {\n\t\treturn nil, 0, syscall.EINVAL\n\t}\n\tif n == len(sa.raw.Path) && name[0] != '@' {\n\t\treturn nil, 0, syscall.EINVAL\n\t}\n\tsa.raw.Family = AF_UNIX\n\tfor i := 0; i < n; i++ {\n\t\tsa.raw.Path[i] = int8(name[i])\n\t}\n\t// length is family (uint16), name, NUL.\n\tsl := int32(2)\n\tif n > 0 {\n\t\tsl += int32(n) + 1\n\t}\n\tif sa.raw.Path[0] == '@' || (sa.raw.Path[0] == 0 && sl > 3) {\n\t\t// Check sl > 3 so we don't change unnamed socket behavior.\n\t\tsa.raw.Path[0] = 0\n\t\t// Don't count trailing NUL for abstract address.\n\t\tsl--\n\t}\n\n\treturn unsafe.Pointer(&sa.raw), sl, nil\n}\n\ntype RawSockaddrBth struct {\n\tAddressFamily  [2]byte\n\tBtAddr         [8]byte\n\tServiceClassId [16]byte\n\tPort           [4]byte\n}\n\ntype SockaddrBth struct {\n\tBtAddr         uint64\n\tServiceClassId GUID\n\tPort           uint32\n\n\traw RawSockaddrBth\n}\n\nfunc (sa *SockaddrBth) sockaddr() (unsafe.Pointer, int32, error) {\n\tfamily := AF_BTH\n\tsa.raw = RawSockaddrBth{\n\t\tAddressFamily:  *(*[2]byte)(unsafe.Pointer(&family)),\n\t\tBtAddr:         *(*[8]byte)(unsafe.Pointer(&sa.BtAddr)),\n\t\tPort:           *(*[4]byte)(unsafe.Pointer(&sa.Port)),\n\t\tServiceClassId: *(*[16]byte)(unsafe.Pointer(&sa.ServiceClassId)),\n\t}\n\treturn unsafe.Pointer(&sa.raw), int32(unsafe.Sizeof(sa.raw)), nil\n}\n\nfunc (rsa *RawSockaddrAny) Sockaddr() (Sockaddr, error) {\n\tswitch rsa.Addr.Family {\n\tcase AF_UNIX:\n\t\tpp := (*RawSockaddrUnix)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrUnix)\n\t\tif pp.Path[0] == 0 {\n\t\t\t// \"Abstract\" Unix domain socket.\n\t\t\t// Rewrite leading NUL as @ for textual display.\n\t\t\t// (This is the standard convention.)\n\t\t\t// Not friendly to overwrite in place,\n\t\t\t// but the callers below don't care.\n\t\t\tpp.Path[0] = '@'\n\t\t}\n\n\t\t// Assume path ends at NUL.\n\t\t// This is not technically the Linux semantics for\n\t\t// abstract Unix domain sockets--they are supposed\n\t\t// to be uninterpreted fixed-size binary blobs--but\n\t\t// everyone uses this convention.\n\t\tn := 0\n\t\tfor n < len(pp.Path) && pp.Path[n] != 0 {\n\t\t\tn++\n\t\t}\n\t\tsa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n))\n\t\treturn sa, nil\n\n\tcase AF_INET:\n\t\tpp := (*RawSockaddrInet4)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrInet4)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tsa.Addr = pp.Addr\n\t\treturn sa, nil\n\n\tcase AF_INET6:\n\t\tpp := (*RawSockaddrInet6)(unsafe.Pointer(rsa))\n\t\tsa := new(SockaddrInet6)\n\t\tp := (*[2]byte)(unsafe.Pointer(&pp.Port))\n\t\tsa.Port = int(p[0])<<8 + int(p[1])\n\t\tsa.ZoneId = pp.Scope_id\n\t\tsa.Addr = pp.Addr\n\t\treturn sa, nil\n\t}\n\treturn nil, syscall.EAFNOSUPPORT\n}\n\nfunc Socket(domain, typ, proto int) (fd Handle, err error) {\n\tif domain == AF_INET6 && SocketDisableIPv6 {\n\t\treturn InvalidHandle, syscall.EAFNOSUPPORT\n\t}\n\treturn socket(int32(domain), int32(typ), int32(proto))\n}\n\nfunc SetsockoptInt(fd Handle, level, opt int, value int) (err error) {\n\tv := int32(value)\n\treturn Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&v)), int32(unsafe.Sizeof(v)))\n}\n\nfunc Bind(fd Handle, sa Sockaddr) (err error) {\n\tptr, n, err := sa.sockaddr()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn bind(fd, ptr, n)\n}\n\nfunc Connect(fd Handle, sa Sockaddr) (err error) {\n\tptr, n, err := sa.sockaddr()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn connect(fd, ptr, n)\n}\n\nfunc GetBestInterfaceEx(sa Sockaddr, pdwBestIfIndex *uint32) (err error) {\n\tptr, _, err := sa.sockaddr()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn getBestInterfaceEx(ptr, pdwBestIfIndex)\n}\n\nfunc Getsockname(fd Handle) (sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tl := int32(unsafe.Sizeof(rsa))\n\tif err = getsockname(fd, &rsa, &l); err != nil {\n\t\treturn\n\t}\n\treturn rsa.Sockaddr()\n}\n\nfunc Getpeername(fd Handle) (sa Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tl := int32(unsafe.Sizeof(rsa))\n\tif err = getpeername(fd, &rsa, &l); err != nil {\n\t\treturn\n\t}\n\treturn rsa.Sockaddr()\n}\n\nfunc Listen(s Handle, n int) (err error) {\n\treturn listen(s, int32(n))\n}\n\nfunc Shutdown(fd Handle, how int) (err error) {\n\treturn shutdown(fd, int32(how))\n}\n\nfunc WSASendto(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to Sockaddr, overlapped *Overlapped, croutine *byte) (err error) {\n\tvar rsa unsafe.Pointer\n\tvar l int32\n\tif to != nil {\n\t\trsa, l, err = to.sockaddr()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn WSASendTo(s, bufs, bufcnt, sent, flags, (*RawSockaddrAny)(unsafe.Pointer(rsa)), l, overlapped, croutine)\n}\n\nfunc LoadGetAddrInfo() error {\n\treturn procGetAddrInfoW.Find()\n}\n\nvar connectExFunc struct {\n\tonce sync.Once\n\taddr uintptr\n\terr  error\n}\n\nfunc LoadConnectEx() error {\n\tconnectExFunc.once.Do(func() {\n\t\tvar s Handle\n\t\ts, connectExFunc.err = Socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)\n\t\tif connectExFunc.err != nil {\n\t\t\treturn\n\t\t}\n\t\tdefer CloseHandle(s)\n\t\tvar n uint32\n\t\tconnectExFunc.err = WSAIoctl(s,\n\t\t\tSIO_GET_EXTENSION_FUNCTION_POINTER,\n\t\t\t(*byte)(unsafe.Pointer(&WSAID_CONNECTEX)),\n\t\t\tuint32(unsafe.Sizeof(WSAID_CONNECTEX)),\n\t\t\t(*byte)(unsafe.Pointer(&connectExFunc.addr)),\n\t\t\tuint32(unsafe.Sizeof(connectExFunc.addr)),\n\t\t\t&n, nil, 0)\n\t})\n\treturn connectExFunc.err\n}\n\nfunc connectEx(s Handle, name unsafe.Pointer, namelen int32, sendBuf *byte, sendDataLen uint32, bytesSent *uint32, overlapped *Overlapped) (err error) {\n\tr1, _, e1 := syscall.Syscall9(connectExFunc.addr, 7, uintptr(s), uintptr(name), uintptr(namelen), uintptr(unsafe.Pointer(sendBuf)), uintptr(sendDataLen), uintptr(unsafe.Pointer(bytesSent)), uintptr(unsafe.Pointer(overlapped)), 0, 0)\n\tif r1 == 0 {\n\t\tif e1 != 0 {\n\t\t\terr = error(e1)\n\t\t} else {\n\t\t\terr = syscall.EINVAL\n\t\t}\n\t}\n\treturn\n}\n\nfunc ConnectEx(fd Handle, sa Sockaddr, sendBuf *byte, sendDataLen uint32, bytesSent *uint32, overlapped *Overlapped) error {\n\terr := LoadConnectEx()\n\tif err != nil {\n\t\treturn errorspkg.New(\"failed to find ConnectEx: \" + err.Error())\n\t}\n\tptr, n, err := sa.sockaddr()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn connectEx(fd, ptr, n, sendBuf, sendDataLen, bytesSent, overlapped)\n}\n\nvar sendRecvMsgFunc struct {\n\tonce     sync.Once\n\tsendAddr uintptr\n\trecvAddr uintptr\n\terr      error\n}\n\nfunc loadWSASendRecvMsg() error {\n\tsendRecvMsgFunc.once.Do(func() {\n\t\tvar s Handle\n\t\ts, sendRecvMsgFunc.err = Socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)\n\t\tif sendRecvMsgFunc.err != nil {\n\t\t\treturn\n\t\t}\n\t\tdefer CloseHandle(s)\n\t\tvar n uint32\n\t\tsendRecvMsgFunc.err = WSAIoctl(s,\n\t\t\tSIO_GET_EXTENSION_FUNCTION_POINTER,\n\t\t\t(*byte)(unsafe.Pointer(&WSAID_WSARECVMSG)),\n\t\t\tuint32(unsafe.Sizeof(WSAID_WSARECVMSG)),\n\t\t\t(*byte)(unsafe.Pointer(&sendRecvMsgFunc.recvAddr)),\n\t\t\tuint32(unsafe.Sizeof(sendRecvMsgFunc.recvAddr)),\n\t\t\t&n, nil, 0)\n\t\tif sendRecvMsgFunc.err != nil {\n\t\t\treturn\n\t\t}\n\t\tsendRecvMsgFunc.err = WSAIoctl(s,\n\t\t\tSIO_GET_EXTENSION_FUNCTION_POINTER,\n\t\t\t(*byte)(unsafe.Pointer(&WSAID_WSASENDMSG)),\n\t\t\tuint32(unsafe.Sizeof(WSAID_WSASENDMSG)),\n\t\t\t(*byte)(unsafe.Pointer(&sendRecvMsgFunc.sendAddr)),\n\t\t\tuint32(unsafe.Sizeof(sendRecvMsgFunc.sendAddr)),\n\t\t\t&n, nil, 0)\n\t})\n\treturn sendRecvMsgFunc.err\n}\n\nfunc WSASendMsg(fd Handle, msg *WSAMsg, flags uint32, bytesSent *uint32, overlapped *Overlapped, croutine *byte) error {\n\terr := loadWSASendRecvMsg()\n\tif err != nil {\n\t\treturn err\n\t}\n\tr1, _, e1 := syscall.Syscall6(sendRecvMsgFunc.sendAddr, 6, uintptr(fd), uintptr(unsafe.Pointer(msg)), uintptr(flags), uintptr(unsafe.Pointer(bytesSent)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)))\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn err\n}\n\nfunc WSARecvMsg(fd Handle, msg *WSAMsg, bytesReceived *uint32, overlapped *Overlapped, croutine *byte) error {\n\terr := loadWSASendRecvMsg()\n\tif err != nil {\n\t\treturn err\n\t}\n\tr1, _, e1 := syscall.Syscall6(sendRecvMsgFunc.recvAddr, 5, uintptr(fd), uintptr(unsafe.Pointer(msg)), uintptr(unsafe.Pointer(bytesReceived)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0)\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn err\n}\n\n// Invented structures to support what package os expects.\ntype Rusage struct {\n\tCreationTime Filetime\n\tExitTime     Filetime\n\tKernelTime   Filetime\n\tUserTime     Filetime\n}\n\ntype WaitStatus struct {\n\tExitCode uint32\n}\n\nfunc (w WaitStatus) Exited() bool { return true }\n\nfunc (w WaitStatus) ExitStatus() int { return int(w.ExitCode) }\n\nfunc (w WaitStatus) Signal() Signal { return -1 }\n\nfunc (w WaitStatus) CoreDump() bool { return false }\n\nfunc (w WaitStatus) Stopped() bool { return false }\n\nfunc (w WaitStatus) Continued() bool { return false }\n\nfunc (w WaitStatus) StopSignal() Signal { return -1 }\n\nfunc (w WaitStatus) Signaled() bool { return false }\n\nfunc (w WaitStatus) TrapCause() int { return -1 }\n\n// Timespec is an invented structure on Windows, but here for\n// consistency with the corresponding package for other operating systems.\ntype Timespec struct {\n\tSec  int64\n\tNsec int64\n}\n\nfunc TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }\n\nfunc NsecToTimespec(nsec int64) (ts Timespec) {\n\tts.Sec = nsec / 1e9\n\tts.Nsec = nsec % 1e9\n\treturn\n}\n\n// TODO(brainman): fix all needed for net\n\nfunc Accept(fd Handle) (nfd Handle, sa Sockaddr, err error) { return 0, nil, syscall.EWINDOWS }\n\nfunc Recvfrom(fd Handle, p []byte, flags int) (n int, from Sockaddr, err error) {\n\tvar rsa RawSockaddrAny\n\tl := int32(unsafe.Sizeof(rsa))\n\tn32, err := recvfrom(fd, p, int32(flags), &rsa, &l)\n\tn = int(n32)\n\tif err != nil {\n\t\treturn\n\t}\n\tfrom, err = rsa.Sockaddr()\n\treturn\n}\n\nfunc Sendto(fd Handle, p []byte, flags int, to Sockaddr) (err error) {\n\tptr, l, err := to.sockaddr()\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn sendto(fd, p, int32(flags), ptr, l)\n}\n\nfunc SetsockoptTimeval(fd Handle, level, opt int, tv *Timeval) (err error) { return syscall.EWINDOWS }\n\n// The Linger struct is wrong but we only noticed after Go 1.\n// sysLinger is the real system call structure.\n\n// BUG(brainman): The definition of Linger is not appropriate for direct use\n// with Setsockopt and Getsockopt.\n// Use SetsockoptLinger instead.\n\ntype Linger struct {\n\tOnoff  int32\n\tLinger int32\n}\n\ntype sysLinger struct {\n\tOnoff  uint16\n\tLinger uint16\n}\n\ntype IPMreq struct {\n\tMultiaddr [4]byte /* in_addr */\n\tInterface [4]byte /* in_addr */\n}\n\ntype IPv6Mreq struct {\n\tMultiaddr [16]byte /* in6_addr */\n\tInterface uint32\n}\n\nfunc GetsockoptInt(fd Handle, level, opt int) (int, error) {\n\tv := int32(0)\n\tl := int32(unsafe.Sizeof(v))\n\terr := Getsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&v)), &l)\n\treturn int(v), err\n}\n\nfunc SetsockoptLinger(fd Handle, level, opt int, l *Linger) (err error) {\n\tsys := sysLinger{Onoff: uint16(l.Onoff), Linger: uint16(l.Linger)}\n\treturn Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&sys)), int32(unsafe.Sizeof(sys)))\n}\n\nfunc SetsockoptInet4Addr(fd Handle, level, opt int, value [4]byte) (err error) {\n\treturn Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&value[0])), 4)\n}\n\nfunc SetsockoptIPMreq(fd Handle, level, opt int, mreq *IPMreq) (err error) {\n\treturn Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(mreq)), int32(unsafe.Sizeof(*mreq)))\n}\n\nfunc SetsockoptIPv6Mreq(fd Handle, level, opt int, mreq *IPv6Mreq) (err error) {\n\treturn syscall.EWINDOWS\n}\n\nfunc EnumProcesses(processIds []uint32, bytesReturned *uint32) error {\n\t// EnumProcesses syscall expects the size parameter to be in bytes, but the code generated with mksyscall uses\n\t// the length of the processIds slice instead. Hence, this wrapper function is added to fix the discrepancy.\n\tvar p *uint32\n\tif len(processIds) > 0 {\n\t\tp = &processIds[0]\n\t}\n\tsize := uint32(len(processIds) * 4)\n\treturn enumProcesses(p, size, bytesReturned)\n}\n\nfunc Getpid() (pid int) { return int(GetCurrentProcessId()) }\n\nfunc FindFirstFile(name *uint16, data *Win32finddata) (handle Handle, err error) {\n\t// NOTE(rsc): The Win32finddata struct is wrong for the system call:\n\t// the two paths are each one uint16 short. Use the correct struct,\n\t// a win32finddata1, and then copy the results out.\n\t// There is no loss of expressivity here, because the final\n\t// uint16, if it is used, is supposed to be a NUL, and Go doesn't need that.\n\t// For Go 1.1, we might avoid the allocation of win32finddata1 here\n\t// by adding a final Bug [2]uint16 field to the struct and then\n\t// adjusting the fields in the result directly.\n\tvar data1 win32finddata1\n\thandle, err = findFirstFile1(name, &data1)\n\tif err == nil {\n\t\tcopyFindData(data, &data1)\n\t}\n\treturn\n}\n\nfunc FindNextFile(handle Handle, data *Win32finddata) (err error) {\n\tvar data1 win32finddata1\n\terr = findNextFile1(handle, &data1)\n\tif err == nil {\n\t\tcopyFindData(data, &data1)\n\t}\n\treturn\n}\n\nfunc getProcessEntry(pid int) (*ProcessEntry32, error) {\n\tsnapshot, err := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer CloseHandle(snapshot)\n\tvar procEntry ProcessEntry32\n\tprocEntry.Size = uint32(unsafe.Sizeof(procEntry))\n\tif err = Process32First(snapshot, &procEntry); err != nil {\n\t\treturn nil, err\n\t}\n\tfor {\n\t\tif procEntry.ProcessID == uint32(pid) {\n\t\t\treturn &procEntry, nil\n\t\t}\n\t\terr = Process32Next(snapshot, &procEntry)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n}\n\nfunc Getppid() (ppid int) {\n\tpe, err := getProcessEntry(Getpid())\n\tif err != nil {\n\t\treturn -1\n\t}\n\treturn int(pe.ParentProcessID)\n}\n\n// TODO(brainman): fix all needed for os\nfunc Fchdir(fd Handle) (err error)             { return syscall.EWINDOWS }\nfunc Link(oldpath, newpath string) (err error) { return syscall.EWINDOWS }\nfunc Symlink(path, link string) (err error)    { return syscall.EWINDOWS }\n\nfunc Fchmod(fd Handle, mode uint32) (err error)        { return syscall.EWINDOWS }\nfunc Chown(path string, uid int, gid int) (err error)  { return syscall.EWINDOWS }\nfunc Lchown(path string, uid int, gid int) (err error) { return syscall.EWINDOWS }\nfunc Fchown(fd Handle, uid int, gid int) (err error)   { return syscall.EWINDOWS }\n\nfunc Getuid() (uid int)                  { return -1 }\nfunc Geteuid() (euid int)                { return -1 }\nfunc Getgid() (gid int)                  { return -1 }\nfunc Getegid() (egid int)                { return -1 }\nfunc Getgroups() (gids []int, err error) { return nil, syscall.EWINDOWS }\n\ntype Signal int\n\nfunc (s Signal) Signal() {}\n\nfunc (s Signal) String() string {\n\tif 0 <= s && int(s) < len(signals) {\n\t\tstr := signals[s]\n\t\tif str != \"\" {\n\t\t\treturn str\n\t\t}\n\t}\n\treturn \"signal \" + itoa(int(s))\n}\n\nfunc LoadCreateSymbolicLink() error {\n\treturn procCreateSymbolicLinkW.Find()\n}\n\n// Readlink returns the destination of the named symbolic link.\nfunc Readlink(path string, buf []byte) (n int, err error) {\n\tfd, err := CreateFile(StringToUTF16Ptr(path), GENERIC_READ, 0, nil, OPEN_EXISTING,\n\t\tFILE_FLAG_OPEN_REPARSE_POINT|FILE_FLAG_BACKUP_SEMANTICS, 0)\n\tif err != nil {\n\t\treturn -1, err\n\t}\n\tdefer CloseHandle(fd)\n\n\trdbbuf := make([]byte, MAXIMUM_REPARSE_DATA_BUFFER_SIZE)\n\tvar bytesReturned uint32\n\terr = DeviceIoControl(fd, FSCTL_GET_REPARSE_POINT, nil, 0, &rdbbuf[0], uint32(len(rdbbuf)), &bytesReturned, nil)\n\tif err != nil {\n\t\treturn -1, err\n\t}\n\n\trdb := (*reparseDataBuffer)(unsafe.Pointer(&rdbbuf[0]))\n\tvar s string\n\tswitch rdb.ReparseTag {\n\tcase IO_REPARSE_TAG_SYMLINK:\n\t\tdata := (*symbolicLinkReparseBuffer)(unsafe.Pointer(&rdb.reparseBuffer))\n\t\tp := (*[0xffff]uint16)(unsafe.Pointer(&data.PathBuffer[0]))\n\t\ts = UTF16ToString(p[data.PrintNameOffset/2 : (data.PrintNameLength-data.PrintNameOffset)/2])\n\tcase IO_REPARSE_TAG_MOUNT_POINT:\n\t\tdata := (*mountPointReparseBuffer)(unsafe.Pointer(&rdb.reparseBuffer))\n\t\tp := (*[0xffff]uint16)(unsafe.Pointer(&data.PathBuffer[0]))\n\t\ts = UTF16ToString(p[data.PrintNameOffset/2 : (data.PrintNameLength-data.PrintNameOffset)/2])\n\tdefault:\n\t\t// the path is not a symlink or junction but another type of reparse\n\t\t// point\n\t\treturn -1, syscall.ENOENT\n\t}\n\tn = copy(buf, []byte(s))\n\n\treturn n, nil\n}\n\n// GUIDFromString parses a string in the form of\n// \"{XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}\" into a GUID.\nfunc GUIDFromString(str string) (GUID, error) {\n\tguid := GUID{}\n\tstr16, err := syscall.UTF16PtrFromString(str)\n\tif err != nil {\n\t\treturn guid, err\n\t}\n\terr = clsidFromString(str16, &guid)\n\tif err != nil {\n\t\treturn guid, err\n\t}\n\treturn guid, nil\n}\n\n// GenerateGUID creates a new random GUID.\nfunc GenerateGUID() (GUID, error) {\n\tguid := GUID{}\n\terr := coCreateGuid(&guid)\n\tif err != nil {\n\t\treturn guid, err\n\t}\n\treturn guid, nil\n}\n\n// String returns the canonical string form of the GUID,\n// in the form of \"{XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}\".\nfunc (guid GUID) String() string {\n\tvar str [100]uint16\n\tchars := stringFromGUID2(&guid, &str[0], int32(len(str)))\n\tif chars <= 1 {\n\t\treturn \"\"\n\t}\n\treturn string(utf16.Decode(str[:chars-1]))\n}\n\n// KnownFolderPath returns a well-known folder path for the current user, specified by one of\n// the FOLDERID_ constants, and chosen and optionally created based on a KF_ flag.\nfunc KnownFolderPath(folderID *KNOWNFOLDERID, flags uint32) (string, error) {\n\treturn Token(0).KnownFolderPath(folderID, flags)\n}\n\n// KnownFolderPath returns a well-known folder path for the user token, specified by one of\n// the FOLDERID_ constants, and chosen and optionally created based on a KF_ flag.\nfunc (t Token) KnownFolderPath(folderID *KNOWNFOLDERID, flags uint32) (string, error) {\n\tvar p *uint16\n\terr := shGetKnownFolderPath(folderID, flags, t, &p)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tdefer CoTaskMemFree(unsafe.Pointer(p))\n\treturn UTF16PtrToString(p), nil\n}\n\n// RtlGetVersion returns the version of the underlying operating system, ignoring\n// manifest semantics but is affected by the application compatibility layer.\nfunc RtlGetVersion() *OsVersionInfoEx {\n\tinfo := &OsVersionInfoEx{}\n\tinfo.osVersionInfoSize = uint32(unsafe.Sizeof(*info))\n\t// According to documentation, this function always succeeds.\n\t// The function doesn't even check the validity of the\n\t// osVersionInfoSize member. Disassembling ntdll.dll indicates\n\t// that the documentation is indeed correct about that.\n\t_ = rtlGetVersion(info)\n\treturn info\n}\n\n// RtlGetNtVersionNumbers returns the version of the underlying operating system,\n// ignoring manifest semantics and the application compatibility layer.\nfunc RtlGetNtVersionNumbers() (majorVersion, minorVersion, buildNumber uint32) {\n\trtlGetNtVersionNumbers(&majorVersion, &minorVersion, &buildNumber)\n\tbuildNumber &= 0xffff\n\treturn\n}\n\n// GetProcessPreferredUILanguages retrieves the process preferred UI languages.\nfunc GetProcessPreferredUILanguages(flags uint32) ([]string, error) {\n\treturn getUILanguages(flags, getProcessPreferredUILanguages)\n}\n\n// GetThreadPreferredUILanguages retrieves the thread preferred UI languages for the current thread.\nfunc GetThreadPreferredUILanguages(flags uint32) ([]string, error) {\n\treturn getUILanguages(flags, getThreadPreferredUILanguages)\n}\n\n// GetUserPreferredUILanguages retrieves information about the user preferred UI languages.\nfunc GetUserPreferredUILanguages(flags uint32) ([]string, error) {\n\treturn getUILanguages(flags, getUserPreferredUILanguages)\n}\n\n// GetSystemPreferredUILanguages retrieves the system preferred UI languages.\nfunc GetSystemPreferredUILanguages(flags uint32) ([]string, error) {\n\treturn getUILanguages(flags, getSystemPreferredUILanguages)\n}\n\nfunc getUILanguages(flags uint32, f func(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) error) ([]string, error) {\n\tsize := uint32(128)\n\tfor {\n\t\tvar numLanguages uint32\n\t\tbuf := make([]uint16, size)\n\t\terr := f(flags, &numLanguages, &buf[0], &size)\n\t\tif err == ERROR_INSUFFICIENT_BUFFER {\n\t\t\tcontinue\n\t\t}\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tbuf = buf[:size]\n\t\tif numLanguages == 0 || len(buf) == 0 { // GetProcessPreferredUILanguages may return numLanguages==0 with \"\\0\\0\"\n\t\t\treturn []string{}, nil\n\t\t}\n\t\tif buf[len(buf)-1] == 0 {\n\t\t\tbuf = buf[:len(buf)-1] // remove terminating null\n\t\t}\n\t\tlanguages := make([]string, 0, numLanguages)\n\t\tfrom := 0\n\t\tfor i, c := range buf {\n\t\t\tif c == 0 {\n\t\t\t\tlanguages = append(languages, string(utf16.Decode(buf[from:i])))\n\t\t\t\tfrom = i + 1\n\t\t\t}\n\t\t}\n\t\treturn languages, nil\n\t}\n}\n\nfunc SetConsoleCursorPosition(console Handle, position Coord) error {\n\treturn setConsoleCursorPosition(console, *((*uint32)(unsafe.Pointer(&position))))\n}\n\nfunc GetStartupInfo(startupInfo *StartupInfo) error {\n\tgetStartupInfo(startupInfo)\n\treturn nil\n}\n\nfunc (s NTStatus) Errno() syscall.Errno {\n\treturn rtlNtStatusToDosErrorNoTeb(s)\n}\n\nfunc langID(pri, sub uint16) uint32 { return uint32(sub)<<10 | uint32(pri) }\n\nfunc (s NTStatus) Error() string {\n\tb := make([]uint16, 300)\n\tn, err := FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_FROM_HMODULE|FORMAT_MESSAGE_ARGUMENT_ARRAY, modntdll.Handle(), uint32(s), langID(LANG_ENGLISH, SUBLANG_ENGLISH_US), b, nil)\n\tif err != nil {\n\t\treturn fmt.Sprintf(\"NTSTATUS 0x%08x\", uint32(s))\n\t}\n\t// trim terminating \\r and \\n\n\tfor ; n > 0 && (b[n-1] == '\\n' || b[n-1] == '\\r'); n-- {\n\t}\n\treturn string(utf16.Decode(b[:n]))\n}\n\n// NewNTUnicodeString returns a new NTUnicodeString structure for use with native\n// NT APIs that work over the NTUnicodeString type. Note that most Windows APIs\n// do not use NTUnicodeString, and instead UTF16PtrFromString should be used for\n// the more common *uint16 string type.\nfunc NewNTUnicodeString(s string) (*NTUnicodeString, error) {\n\ts16, err := UTF16FromString(s)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tn := uint16(len(s16) * 2)\n\treturn &NTUnicodeString{\n\t\tLength:        n - 2, // subtract 2 bytes for the NULL terminator\n\t\tMaximumLength: n,\n\t\tBuffer:        &s16[0],\n\t}, nil\n}\n\n// Slice returns a uint16 slice that aliases the data in the NTUnicodeString.\nfunc (s *NTUnicodeString) Slice() []uint16 {\n\tslice := unsafe.Slice(s.Buffer, s.MaximumLength)\n\treturn slice[:s.Length]\n}\n\nfunc (s *NTUnicodeString) String() string {\n\treturn UTF16ToString(s.Slice())\n}\n\n// NewNTString returns a new NTString structure for use with native\n// NT APIs that work over the NTString type. Note that most Windows APIs\n// do not use NTString, and instead UTF16PtrFromString should be used for\n// the more common *uint16 string type.\nfunc NewNTString(s string) (*NTString, error) {\n\tvar nts NTString\n\ts8, err := BytePtrFromString(s)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tRtlInitString(&nts, s8)\n\treturn &nts, nil\n}\n\n// Slice returns a byte slice that aliases the data in the NTString.\nfunc (s *NTString) Slice() []byte {\n\tslice := unsafe.Slice(s.Buffer, s.MaximumLength)\n\treturn slice[:s.Length]\n}\n\nfunc (s *NTString) String() string {\n\treturn ByteSliceToString(s.Slice())\n}\n\n// FindResource resolves a resource of the given name and resource type.\nfunc FindResource(module Handle, name, resType ResourceIDOrString) (Handle, error) {\n\tvar namePtr, resTypePtr uintptr\n\tvar name16, resType16 *uint16\n\tvar err error\n\tresolvePtr := func(i interface{}, keep **uint16) (uintptr, error) {\n\t\tswitch v := i.(type) {\n\t\tcase string:\n\t\t\t*keep, err = UTF16PtrFromString(v)\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\treturn uintptr(unsafe.Pointer(*keep)), nil\n\t\tcase ResourceID:\n\t\t\treturn uintptr(v), nil\n\t\t}\n\t\treturn 0, errorspkg.New(\"parameter must be a ResourceID or a string\")\n\t}\n\tnamePtr, err = resolvePtr(name, &name16)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tresTypePtr, err = resolvePtr(resType, &resType16)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tresInfo, err := findResource(module, namePtr, resTypePtr)\n\truntime.KeepAlive(name16)\n\truntime.KeepAlive(resType16)\n\treturn resInfo, err\n}\n\nfunc LoadResourceData(module, resInfo Handle) (data []byte, err error) {\n\tsize, err := SizeofResource(module, resInfo)\n\tif err != nil {\n\t\treturn\n\t}\n\tresData, err := LoadResource(module, resInfo)\n\tif err != nil {\n\t\treturn\n\t}\n\tptr, err := LockResource(resData)\n\tif err != nil {\n\t\treturn\n\t}\n\tdata = unsafe.Slice((*byte)(unsafe.Pointer(ptr)), size)\n\treturn\n}\n\n// PSAPI_WORKING_SET_EX_BLOCK contains extended working set information for a page.\ntype PSAPI_WORKING_SET_EX_BLOCK uint64\n\n// Valid returns the validity of this page.\n// If this bit is 1, the subsequent members are valid; otherwise they should be ignored.\nfunc (b PSAPI_WORKING_SET_EX_BLOCK) Valid() bool {\n\treturn (b & 1) == 1\n}\n\n// ShareCount is the number of processes that share this page. The maximum value of this member is 7.\nfunc (b PSAPI_WORKING_SET_EX_BLOCK) ShareCount() uint64 {\n\treturn b.intField(1, 3)\n}\n\n// Win32Protection is the memory protection attributes of the page. For a list of values, see\n// https://docs.microsoft.com/en-us/windows/win32/memory/memory-protection-constants\nfunc (b PSAPI_WORKING_SET_EX_BLOCK) Win32Protection() uint64 {\n\treturn b.intField(4, 11)\n}\n\n// Shared returns the shared status of this page.\n// If this bit is 1, the page can be shared.\nfunc (b PSAPI_WORKING_SET_EX_BLOCK) Shared() bool {\n\treturn (b & (1 << 15)) == 1\n}\n\n// Node is the NUMA node. The maximum value of this member is 63.\nfunc (b PSAPI_WORKING_SET_EX_BLOCK) Node() uint64 {\n\treturn b.intField(16, 6)\n}\n\n// Locked returns the locked status of this page.\n// If this bit is 1, the virtual page is locked in physical memory.\nfunc (b PSAPI_WORKING_SET_EX_BLOCK) Locked() bool {\n\treturn (b & (1 << 22)) == 1\n}\n\n// LargePage returns the large page status of this page.\n// If this bit is 1, the page is a large page.\nfunc (b PSAPI_WORKING_SET_EX_BLOCK) LargePage() bool {\n\treturn (b & (1 << 23)) == 1\n}\n\n// Bad returns the bad status of this page.\n// If this bit is 1, the page is has been reported as bad.\nfunc (b PSAPI_WORKING_SET_EX_BLOCK) Bad() bool {\n\treturn (b & (1 << 31)) == 1\n}\n\n// intField extracts an integer field in the PSAPI_WORKING_SET_EX_BLOCK union.\nfunc (b PSAPI_WORKING_SET_EX_BLOCK) intField(start, length int) uint64 {\n\tvar mask PSAPI_WORKING_SET_EX_BLOCK\n\tfor pos := start; pos < start+length; pos++ {\n\t\tmask |= (1 << pos)\n\t}\n\n\tmasked := b & mask\n\treturn uint64(masked >> start)\n}\n\n// PSAPI_WORKING_SET_EX_INFORMATION contains extended working set information for a process.\ntype PSAPI_WORKING_SET_EX_INFORMATION struct {\n\t// The virtual address.\n\tVirtualAddress Pointer\n\t// A PSAPI_WORKING_SET_EX_BLOCK union that indicates the attributes of the page at VirtualAddress.\n\tVirtualAttributes PSAPI_WORKING_SET_EX_BLOCK\n}\n\n// CreatePseudoConsole creates a windows pseudo console.\nfunc CreatePseudoConsole(size Coord, in Handle, out Handle, flags uint32, pconsole *Handle) error {\n\t// We need this wrapper to manually cast Coord to uint32. The autogenerated wrappers only\n\t// accept arguments that can be casted to uintptr, and Coord can't.\n\treturn createPseudoConsole(*((*uint32)(unsafe.Pointer(&size))), in, out, flags, pconsole)\n}\n\n// ResizePseudoConsole resizes the internal buffers of the pseudo console to the width and height specified in `size`.\nfunc ResizePseudoConsole(pconsole Handle, size Coord) error {\n\t// We need this wrapper to manually cast Coord to uint32. The autogenerated wrappers only\n\t// accept arguments that can be casted to uintptr, and Coord can't.\n\treturn resizePseudoConsole(pconsole, *((*uint32)(unsafe.Pointer(&size))))\n}\n\n// DCB constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/ns-winbase-dcb.\nconst (\n\tCBR_110    = 110\n\tCBR_300    = 300\n\tCBR_600    = 600\n\tCBR_1200   = 1200\n\tCBR_2400   = 2400\n\tCBR_4800   = 4800\n\tCBR_9600   = 9600\n\tCBR_14400  = 14400\n\tCBR_19200  = 19200\n\tCBR_38400  = 38400\n\tCBR_57600  = 57600\n\tCBR_115200 = 115200\n\tCBR_128000 = 128000\n\tCBR_256000 = 256000\n\n\tDTR_CONTROL_DISABLE   = 0x00000000\n\tDTR_CONTROL_ENABLE    = 0x00000010\n\tDTR_CONTROL_HANDSHAKE = 0x00000020\n\n\tRTS_CONTROL_DISABLE   = 0x00000000\n\tRTS_CONTROL_ENABLE    = 0x00001000\n\tRTS_CONTROL_HANDSHAKE = 0x00002000\n\tRTS_CONTROL_TOGGLE    = 0x00003000\n\n\tNOPARITY    = 0\n\tODDPARITY   = 1\n\tEVENPARITY  = 2\n\tMARKPARITY  = 3\n\tSPACEPARITY = 4\n\n\tONESTOPBIT   = 0\n\tONE5STOPBITS = 1\n\tTWOSTOPBITS  = 2\n)\n\n// EscapeCommFunction constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-escapecommfunction.\nconst (\n\tSETXOFF  = 1\n\tSETXON   = 2\n\tSETRTS   = 3\n\tCLRRTS   = 4\n\tSETDTR   = 5\n\tCLRDTR   = 6\n\tSETBREAK = 8\n\tCLRBREAK = 9\n)\n\n// PurgeComm constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-purgecomm.\nconst (\n\tPURGE_TXABORT = 0x0001\n\tPURGE_RXABORT = 0x0002\n\tPURGE_TXCLEAR = 0x0004\n\tPURGE_RXCLEAR = 0x0008\n)\n\n// SetCommMask constants. See https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-setcommmask.\nconst (\n\tEV_RXCHAR  = 0x0001\n\tEV_RXFLAG  = 0x0002\n\tEV_TXEMPTY = 0x0004\n\tEV_CTS     = 0x0008\n\tEV_DSR     = 0x0010\n\tEV_RLSD    = 0x0020\n\tEV_BREAK   = 0x0040\n\tEV_ERR     = 0x0080\n\tEV_RING    = 0x0100\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/types_windows.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage windows\n\nimport (\n\t\"net\"\n\t\"syscall\"\n\t\"unsafe\"\n)\n\n// NTStatus corresponds with NTSTATUS, error values returned by ntdll.dll and\n// other native functions.\ntype NTStatus uint32\n\nconst (\n\t// Invented values to support what package os expects.\n\tO_RDONLY   = 0x00000\n\tO_WRONLY   = 0x00001\n\tO_RDWR     = 0x00002\n\tO_CREAT    = 0x00040\n\tO_EXCL     = 0x00080\n\tO_NOCTTY   = 0x00100\n\tO_TRUNC    = 0x00200\n\tO_NONBLOCK = 0x00800\n\tO_APPEND   = 0x00400\n\tO_SYNC     = 0x01000\n\tO_ASYNC    = 0x02000\n\tO_CLOEXEC  = 0x80000\n)\n\nconst (\n\t// More invented values for signals\n\tSIGHUP  = Signal(0x1)\n\tSIGINT  = Signal(0x2)\n\tSIGQUIT = Signal(0x3)\n\tSIGILL  = Signal(0x4)\n\tSIGTRAP = Signal(0x5)\n\tSIGABRT = Signal(0x6)\n\tSIGBUS  = Signal(0x7)\n\tSIGFPE  = Signal(0x8)\n\tSIGKILL = Signal(0x9)\n\tSIGSEGV = Signal(0xb)\n\tSIGPIPE = Signal(0xd)\n\tSIGALRM = Signal(0xe)\n\tSIGTERM = Signal(0xf)\n)\n\nvar signals = [...]string{\n\t1:  \"hangup\",\n\t2:  \"interrupt\",\n\t3:  \"quit\",\n\t4:  \"illegal instruction\",\n\t5:  \"trace/breakpoint trap\",\n\t6:  \"aborted\",\n\t7:  \"bus error\",\n\t8:  \"floating point exception\",\n\t9:  \"killed\",\n\t10: \"user defined signal 1\",\n\t11: \"segmentation fault\",\n\t12: \"user defined signal 2\",\n\t13: \"broken pipe\",\n\t14: \"alarm clock\",\n\t15: \"terminated\",\n}\n\nconst (\n\tFILE_READ_DATA        = 0x00000001\n\tFILE_READ_ATTRIBUTES  = 0x00000080\n\tFILE_READ_EA          = 0x00000008\n\tFILE_WRITE_DATA       = 0x00000002\n\tFILE_WRITE_ATTRIBUTES = 0x00000100\n\tFILE_WRITE_EA         = 0x00000010\n\tFILE_APPEND_DATA      = 0x00000004\n\tFILE_EXECUTE          = 0x00000020\n\n\tFILE_GENERIC_READ    = STANDARD_RIGHTS_READ | FILE_READ_DATA | FILE_READ_ATTRIBUTES | FILE_READ_EA | SYNCHRONIZE\n\tFILE_GENERIC_WRITE   = STANDARD_RIGHTS_WRITE | FILE_WRITE_DATA | FILE_WRITE_ATTRIBUTES | FILE_WRITE_EA | FILE_APPEND_DATA | SYNCHRONIZE\n\tFILE_GENERIC_EXECUTE = STANDARD_RIGHTS_EXECUTE | FILE_READ_ATTRIBUTES | FILE_EXECUTE | SYNCHRONIZE\n\n\tFILE_LIST_DIRECTORY = 0x00000001\n\tFILE_TRAVERSE       = 0x00000020\n\n\tFILE_SHARE_READ   = 0x00000001\n\tFILE_SHARE_WRITE  = 0x00000002\n\tFILE_SHARE_DELETE = 0x00000004\n\n\tFILE_ATTRIBUTE_READONLY              = 0x00000001\n\tFILE_ATTRIBUTE_HIDDEN                = 0x00000002\n\tFILE_ATTRIBUTE_SYSTEM                = 0x00000004\n\tFILE_ATTRIBUTE_DIRECTORY             = 0x00000010\n\tFILE_ATTRIBUTE_ARCHIVE               = 0x00000020\n\tFILE_ATTRIBUTE_DEVICE                = 0x00000040\n\tFILE_ATTRIBUTE_NORMAL                = 0x00000080\n\tFILE_ATTRIBUTE_TEMPORARY             = 0x00000100\n\tFILE_ATTRIBUTE_SPARSE_FILE           = 0x00000200\n\tFILE_ATTRIBUTE_REPARSE_POINT         = 0x00000400\n\tFILE_ATTRIBUTE_COMPRESSED            = 0x00000800\n\tFILE_ATTRIBUTE_OFFLINE               = 0x00001000\n\tFILE_ATTRIBUTE_NOT_CONTENT_INDEXED   = 0x00002000\n\tFILE_ATTRIBUTE_ENCRYPTED             = 0x00004000\n\tFILE_ATTRIBUTE_INTEGRITY_STREAM      = 0x00008000\n\tFILE_ATTRIBUTE_VIRTUAL               = 0x00010000\n\tFILE_ATTRIBUTE_NO_SCRUB_DATA         = 0x00020000\n\tFILE_ATTRIBUTE_RECALL_ON_OPEN        = 0x00040000\n\tFILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS = 0x00400000\n\n\tINVALID_FILE_ATTRIBUTES = 0xffffffff\n\n\tCREATE_NEW        = 1\n\tCREATE_ALWAYS     = 2\n\tOPEN_EXISTING     = 3\n\tOPEN_ALWAYS       = 4\n\tTRUNCATE_EXISTING = 5\n\n\tFILE_FLAG_OPEN_REQUIRING_OPLOCK = 0x00040000\n\tFILE_FLAG_FIRST_PIPE_INSTANCE   = 0x00080000\n\tFILE_FLAG_OPEN_NO_RECALL        = 0x00100000\n\tFILE_FLAG_OPEN_REPARSE_POINT    = 0x00200000\n\tFILE_FLAG_SESSION_AWARE         = 0x00800000\n\tFILE_FLAG_POSIX_SEMANTICS       = 0x01000000\n\tFILE_FLAG_BACKUP_SEMANTICS      = 0x02000000\n\tFILE_FLAG_DELETE_ON_CLOSE       = 0x04000000\n\tFILE_FLAG_SEQUENTIAL_SCAN       = 0x08000000\n\tFILE_FLAG_RANDOM_ACCESS         = 0x10000000\n\tFILE_FLAG_NO_BUFFERING          = 0x20000000\n\tFILE_FLAG_OVERLAPPED            = 0x40000000\n\tFILE_FLAG_WRITE_THROUGH         = 0x80000000\n\n\tHANDLE_FLAG_INHERIT    = 0x00000001\n\tSTARTF_USESTDHANDLES   = 0x00000100\n\tSTARTF_USESHOWWINDOW   = 0x00000001\n\tDUPLICATE_CLOSE_SOURCE = 0x00000001\n\tDUPLICATE_SAME_ACCESS  = 0x00000002\n\n\tSTD_INPUT_HANDLE  = -10 & (1<<32 - 1)\n\tSTD_OUTPUT_HANDLE = -11 & (1<<32 - 1)\n\tSTD_ERROR_HANDLE  = -12 & (1<<32 - 1)\n\n\tFILE_BEGIN   = 0\n\tFILE_CURRENT = 1\n\tFILE_END     = 2\n\n\tLANG_ENGLISH       = 0x09\n\tSUBLANG_ENGLISH_US = 0x01\n\n\tFORMAT_MESSAGE_ALLOCATE_BUFFER = 256\n\tFORMAT_MESSAGE_IGNORE_INSERTS  = 512\n\tFORMAT_MESSAGE_FROM_STRING     = 1024\n\tFORMAT_MESSAGE_FROM_HMODULE    = 2048\n\tFORMAT_MESSAGE_FROM_SYSTEM     = 4096\n\tFORMAT_MESSAGE_ARGUMENT_ARRAY  = 8192\n\tFORMAT_MESSAGE_MAX_WIDTH_MASK  = 255\n\n\tMAX_PATH      = 260\n\tMAX_LONG_PATH = 32768\n\n\tMAX_MODULE_NAME32 = 255\n\n\tMAX_COMPUTERNAME_LENGTH = 15\n\n\tMAX_DHCPV6_DUID_LENGTH = 130\n\n\tMAX_DNS_SUFFIX_STRING_LENGTH = 256\n\n\tTIME_ZONE_ID_UNKNOWN  = 0\n\tTIME_ZONE_ID_STANDARD = 1\n\n\tTIME_ZONE_ID_DAYLIGHT = 2\n\tIGNORE                = 0\n\tINFINITE              = 0xffffffff\n\n\tWAIT_ABANDONED = 0x00000080\n\tWAIT_OBJECT_0  = 0x00000000\n\tWAIT_FAILED    = 0xFFFFFFFF\n\n\t// Access rights for process.\n\tPROCESS_ALL_ACCESS                = 0xFFFF\n\tPROCESS_CREATE_PROCESS            = 0x0080\n\tPROCESS_CREATE_THREAD             = 0x0002\n\tPROCESS_DUP_HANDLE                = 0x0040\n\tPROCESS_QUERY_INFORMATION         = 0x0400\n\tPROCESS_QUERY_LIMITED_INFORMATION = 0x1000\n\tPROCESS_SET_INFORMATION           = 0x0200\n\tPROCESS_SET_QUOTA                 = 0x0100\n\tPROCESS_SUSPEND_RESUME            = 0x0800\n\tPROCESS_TERMINATE                 = 0x0001\n\tPROCESS_VM_OPERATION              = 0x0008\n\tPROCESS_VM_READ                   = 0x0010\n\tPROCESS_VM_WRITE                  = 0x0020\n\n\t// Access rights for thread.\n\tTHREAD_DIRECT_IMPERSONATION      = 0x0200\n\tTHREAD_GET_CONTEXT               = 0x0008\n\tTHREAD_IMPERSONATE               = 0x0100\n\tTHREAD_QUERY_INFORMATION         = 0x0040\n\tTHREAD_QUERY_LIMITED_INFORMATION = 0x0800\n\tTHREAD_SET_CONTEXT               = 0x0010\n\tTHREAD_SET_INFORMATION           = 0x0020\n\tTHREAD_SET_LIMITED_INFORMATION   = 0x0400\n\tTHREAD_SET_THREAD_TOKEN          = 0x0080\n\tTHREAD_SUSPEND_RESUME            = 0x0002\n\tTHREAD_TERMINATE                 = 0x0001\n\n\tFILE_MAP_COPY    = 0x01\n\tFILE_MAP_WRITE   = 0x02\n\tFILE_MAP_READ    = 0x04\n\tFILE_MAP_EXECUTE = 0x20\n\n\tCTRL_C_EVENT        = 0\n\tCTRL_BREAK_EVENT    = 1\n\tCTRL_CLOSE_EVENT    = 2\n\tCTRL_LOGOFF_EVENT   = 5\n\tCTRL_SHUTDOWN_EVENT = 6\n\n\t// Windows reserves errors >= 1<<29 for application use.\n\tAPPLICATION_ERROR = 1 << 29\n)\n\nconst (\n\t// Process creation flags.\n\tCREATE_BREAKAWAY_FROM_JOB        = 0x01000000\n\tCREATE_DEFAULT_ERROR_MODE        = 0x04000000\n\tCREATE_NEW_CONSOLE               = 0x00000010\n\tCREATE_NEW_PROCESS_GROUP         = 0x00000200\n\tCREATE_NO_WINDOW                 = 0x08000000\n\tCREATE_PROTECTED_PROCESS         = 0x00040000\n\tCREATE_PRESERVE_CODE_AUTHZ_LEVEL = 0x02000000\n\tCREATE_SEPARATE_WOW_VDM          = 0x00000800\n\tCREATE_SHARED_WOW_VDM            = 0x00001000\n\tCREATE_SUSPENDED                 = 0x00000004\n\tCREATE_UNICODE_ENVIRONMENT       = 0x00000400\n\tDEBUG_ONLY_THIS_PROCESS          = 0x00000002\n\tDEBUG_PROCESS                    = 0x00000001\n\tDETACHED_PROCESS                 = 0x00000008\n\tEXTENDED_STARTUPINFO_PRESENT     = 0x00080000\n\tINHERIT_PARENT_AFFINITY          = 0x00010000\n)\n\nconst (\n\t// attributes for ProcThreadAttributeList\n\tPROC_THREAD_ATTRIBUTE_PARENT_PROCESS    = 0x00020000\n\tPROC_THREAD_ATTRIBUTE_HANDLE_LIST       = 0x00020002\n\tPROC_THREAD_ATTRIBUTE_GROUP_AFFINITY    = 0x00030003\n\tPROC_THREAD_ATTRIBUTE_PREFERRED_NODE    = 0x00020004\n\tPROC_THREAD_ATTRIBUTE_IDEAL_PROCESSOR   = 0x00030005\n\tPROC_THREAD_ATTRIBUTE_MITIGATION_POLICY = 0x00020007\n\tPROC_THREAD_ATTRIBUTE_UMS_THREAD        = 0x00030006\n\tPROC_THREAD_ATTRIBUTE_PROTECTION_LEVEL  = 0x0002000b\n\tPROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE     = 0x00020016\n)\n\nconst (\n\t// flags for CreateToolhelp32Snapshot\n\tTH32CS_SNAPHEAPLIST = 0x01\n\tTH32CS_SNAPPROCESS  = 0x02\n\tTH32CS_SNAPTHREAD   = 0x04\n\tTH32CS_SNAPMODULE   = 0x08\n\tTH32CS_SNAPMODULE32 = 0x10\n\tTH32CS_SNAPALL      = TH32CS_SNAPHEAPLIST | TH32CS_SNAPMODULE | TH32CS_SNAPPROCESS | TH32CS_SNAPTHREAD\n\tTH32CS_INHERIT      = 0x80000000\n)\n\nconst (\n\t// flags for EnumProcessModulesEx\n\tLIST_MODULES_32BIT   = 0x01\n\tLIST_MODULES_64BIT   = 0x02\n\tLIST_MODULES_ALL     = 0x03\n\tLIST_MODULES_DEFAULT = 0x00\n)\n\nconst (\n\t// filters for ReadDirectoryChangesW and FindFirstChangeNotificationW\n\tFILE_NOTIFY_CHANGE_FILE_NAME   = 0x001\n\tFILE_NOTIFY_CHANGE_DIR_NAME    = 0x002\n\tFILE_NOTIFY_CHANGE_ATTRIBUTES  = 0x004\n\tFILE_NOTIFY_CHANGE_SIZE        = 0x008\n\tFILE_NOTIFY_CHANGE_LAST_WRITE  = 0x010\n\tFILE_NOTIFY_CHANGE_LAST_ACCESS = 0x020\n\tFILE_NOTIFY_CHANGE_CREATION    = 0x040\n\tFILE_NOTIFY_CHANGE_SECURITY    = 0x100\n)\n\nconst (\n\t// do not reorder\n\tFILE_ACTION_ADDED = iota + 1\n\tFILE_ACTION_REMOVED\n\tFILE_ACTION_MODIFIED\n\tFILE_ACTION_RENAMED_OLD_NAME\n\tFILE_ACTION_RENAMED_NEW_NAME\n)\n\nconst (\n\t// wincrypt.h\n\t/* certenrolld_begin -- PROV_RSA_*/\n\tPROV_RSA_FULL      = 1\n\tPROV_RSA_SIG       = 2\n\tPROV_DSS           = 3\n\tPROV_FORTEZZA      = 4\n\tPROV_MS_EXCHANGE   = 5\n\tPROV_SSL           = 6\n\tPROV_RSA_SCHANNEL  = 12\n\tPROV_DSS_DH        = 13\n\tPROV_EC_ECDSA_SIG  = 14\n\tPROV_EC_ECNRA_SIG  = 15\n\tPROV_EC_ECDSA_FULL = 16\n\tPROV_EC_ECNRA_FULL = 17\n\tPROV_DH_SCHANNEL   = 18\n\tPROV_SPYRUS_LYNKS  = 20\n\tPROV_RNG           = 21\n\tPROV_INTEL_SEC     = 22\n\tPROV_REPLACE_OWF   = 23\n\tPROV_RSA_AES       = 24\n\n\t/* dwFlags definitions for CryptAcquireContext */\n\tCRYPT_VERIFYCONTEXT              = 0xF0000000\n\tCRYPT_NEWKEYSET                  = 0x00000008\n\tCRYPT_DELETEKEYSET               = 0x00000010\n\tCRYPT_MACHINE_KEYSET             = 0x00000020\n\tCRYPT_SILENT                     = 0x00000040\n\tCRYPT_DEFAULT_CONTAINER_OPTIONAL = 0x00000080\n\n\t/* Flags for PFXImportCertStore */\n\tCRYPT_EXPORTABLE                   = 0x00000001\n\tCRYPT_USER_PROTECTED               = 0x00000002\n\tCRYPT_USER_KEYSET                  = 0x00001000\n\tPKCS12_PREFER_CNG_KSP              = 0x00000100\n\tPKCS12_ALWAYS_CNG_KSP              = 0x00000200\n\tPKCS12_ALLOW_OVERWRITE_KEY         = 0x00004000\n\tPKCS12_NO_PERSIST_KEY              = 0x00008000\n\tPKCS12_INCLUDE_EXTENDED_PROPERTIES = 0x00000010\n\n\t/* Flags for CryptAcquireCertificatePrivateKey */\n\tCRYPT_ACQUIRE_CACHE_FLAG             = 0x00000001\n\tCRYPT_ACQUIRE_USE_PROV_INFO_FLAG     = 0x00000002\n\tCRYPT_ACQUIRE_COMPARE_KEY_FLAG       = 0x00000004\n\tCRYPT_ACQUIRE_NO_HEALING             = 0x00000008\n\tCRYPT_ACQUIRE_SILENT_FLAG            = 0x00000040\n\tCRYPT_ACQUIRE_WINDOW_HANDLE_FLAG     = 0x00000080\n\tCRYPT_ACQUIRE_NCRYPT_KEY_FLAGS_MASK  = 0x00070000\n\tCRYPT_ACQUIRE_ALLOW_NCRYPT_KEY_FLAG  = 0x00010000\n\tCRYPT_ACQUIRE_PREFER_NCRYPT_KEY_FLAG = 0x00020000\n\tCRYPT_ACQUIRE_ONLY_NCRYPT_KEY_FLAG   = 0x00040000\n\n\t/* pdwKeySpec for CryptAcquireCertificatePrivateKey */\n\tAT_KEYEXCHANGE       = 1\n\tAT_SIGNATURE         = 2\n\tCERT_NCRYPT_KEY_SPEC = 0xFFFFFFFF\n\n\t/* Default usage match type is AND with value zero */\n\tUSAGE_MATCH_TYPE_AND = 0\n\tUSAGE_MATCH_TYPE_OR  = 1\n\n\t/* msgAndCertEncodingType values for CertOpenStore function */\n\tX509_ASN_ENCODING   = 0x00000001\n\tPKCS_7_ASN_ENCODING = 0x00010000\n\n\t/* storeProvider values for CertOpenStore function */\n\tCERT_STORE_PROV_MSG               = 1\n\tCERT_STORE_PROV_MEMORY            = 2\n\tCERT_STORE_PROV_FILE              = 3\n\tCERT_STORE_PROV_REG               = 4\n\tCERT_STORE_PROV_PKCS7             = 5\n\tCERT_STORE_PROV_SERIALIZED        = 6\n\tCERT_STORE_PROV_FILENAME_A        = 7\n\tCERT_STORE_PROV_FILENAME_W        = 8\n\tCERT_STORE_PROV_FILENAME          = CERT_STORE_PROV_FILENAME_W\n\tCERT_STORE_PROV_SYSTEM_A          = 9\n\tCERT_STORE_PROV_SYSTEM_W          = 10\n\tCERT_STORE_PROV_SYSTEM            = CERT_STORE_PROV_SYSTEM_W\n\tCERT_STORE_PROV_COLLECTION        = 11\n\tCERT_STORE_PROV_SYSTEM_REGISTRY_A = 12\n\tCERT_STORE_PROV_SYSTEM_REGISTRY_W = 13\n\tCERT_STORE_PROV_SYSTEM_REGISTRY   = CERT_STORE_PROV_SYSTEM_REGISTRY_W\n\tCERT_STORE_PROV_PHYSICAL_W        = 14\n\tCERT_STORE_PROV_PHYSICAL          = CERT_STORE_PROV_PHYSICAL_W\n\tCERT_STORE_PROV_SMART_CARD_W      = 15\n\tCERT_STORE_PROV_SMART_CARD        = CERT_STORE_PROV_SMART_CARD_W\n\tCERT_STORE_PROV_LDAP_W            = 16\n\tCERT_STORE_PROV_LDAP              = CERT_STORE_PROV_LDAP_W\n\tCERT_STORE_PROV_PKCS12            = 17\n\n\t/* store characteristics (low WORD of flag) for CertOpenStore function */\n\tCERT_STORE_NO_CRYPT_RELEASE_FLAG            = 0x00000001\n\tCERT_STORE_SET_LOCALIZED_NAME_FLAG          = 0x00000002\n\tCERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG = 0x00000004\n\tCERT_STORE_DELETE_FLAG                      = 0x00000010\n\tCERT_STORE_UNSAFE_PHYSICAL_FLAG             = 0x00000020\n\tCERT_STORE_SHARE_STORE_FLAG                 = 0x00000040\n\tCERT_STORE_SHARE_CONTEXT_FLAG               = 0x00000080\n\tCERT_STORE_MANIFOLD_FLAG                    = 0x00000100\n\tCERT_STORE_ENUM_ARCHIVED_FLAG               = 0x00000200\n\tCERT_STORE_UPDATE_KEYID_FLAG                = 0x00000400\n\tCERT_STORE_BACKUP_RESTORE_FLAG              = 0x00000800\n\tCERT_STORE_MAXIMUM_ALLOWED_FLAG             = 0x00001000\n\tCERT_STORE_CREATE_NEW_FLAG                  = 0x00002000\n\tCERT_STORE_OPEN_EXISTING_FLAG               = 0x00004000\n\tCERT_STORE_READONLY_FLAG                    = 0x00008000\n\n\t/* store locations (high WORD of flag) for CertOpenStore function */\n\tCERT_SYSTEM_STORE_CURRENT_USER               = 0x00010000\n\tCERT_SYSTEM_STORE_LOCAL_MACHINE              = 0x00020000\n\tCERT_SYSTEM_STORE_CURRENT_SERVICE            = 0x00040000\n\tCERT_SYSTEM_STORE_SERVICES                   = 0x00050000\n\tCERT_SYSTEM_STORE_USERS                      = 0x00060000\n\tCERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY  = 0x00070000\n\tCERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY = 0x00080000\n\tCERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE   = 0x00090000\n\tCERT_SYSTEM_STORE_UNPROTECTED_FLAG           = 0x40000000\n\tCERT_SYSTEM_STORE_RELOCATE_FLAG              = 0x80000000\n\n\t/* Miscellaneous high-WORD flags for CertOpenStore function */\n\tCERT_REGISTRY_STORE_REMOTE_FLAG      = 0x00010000\n\tCERT_REGISTRY_STORE_SERIALIZED_FLAG  = 0x00020000\n\tCERT_REGISTRY_STORE_ROAMING_FLAG     = 0x00040000\n\tCERT_REGISTRY_STORE_MY_IE_DIRTY_FLAG = 0x00080000\n\tCERT_REGISTRY_STORE_LM_GPT_FLAG      = 0x01000000\n\tCERT_REGISTRY_STORE_CLIENT_GPT_FLAG  = 0x80000000\n\tCERT_FILE_STORE_COMMIT_ENABLE_FLAG   = 0x00010000\n\tCERT_LDAP_STORE_SIGN_FLAG            = 0x00010000\n\tCERT_LDAP_STORE_AREC_EXCLUSIVE_FLAG  = 0x00020000\n\tCERT_LDAP_STORE_OPENED_FLAG          = 0x00040000\n\tCERT_LDAP_STORE_UNBIND_FLAG          = 0x00080000\n\n\t/* addDisposition values for CertAddCertificateContextToStore function */\n\tCERT_STORE_ADD_NEW                                 = 1\n\tCERT_STORE_ADD_USE_EXISTING                        = 2\n\tCERT_STORE_ADD_REPLACE_EXISTING                    = 3\n\tCERT_STORE_ADD_ALWAYS                              = 4\n\tCERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES = 5\n\tCERT_STORE_ADD_NEWER                               = 6\n\tCERT_STORE_ADD_NEWER_INHERIT_PROPERTIES            = 7\n\n\t/* ErrorStatus values for CertTrustStatus struct */\n\tCERT_TRUST_NO_ERROR                          = 0x00000000\n\tCERT_TRUST_IS_NOT_TIME_VALID                 = 0x00000001\n\tCERT_TRUST_IS_REVOKED                        = 0x00000004\n\tCERT_TRUST_IS_NOT_SIGNATURE_VALID            = 0x00000008\n\tCERT_TRUST_IS_NOT_VALID_FOR_USAGE            = 0x00000010\n\tCERT_TRUST_IS_UNTRUSTED_ROOT                 = 0x00000020\n\tCERT_TRUST_REVOCATION_STATUS_UNKNOWN         = 0x00000040\n\tCERT_TRUST_IS_CYCLIC                         = 0x00000080\n\tCERT_TRUST_INVALID_EXTENSION                 = 0x00000100\n\tCERT_TRUST_INVALID_POLICY_CONSTRAINTS        = 0x00000200\n\tCERT_TRUST_INVALID_BASIC_CONSTRAINTS         = 0x00000400\n\tCERT_TRUST_INVALID_NAME_CONSTRAINTS          = 0x00000800\n\tCERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT = 0x00001000\n\tCERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT   = 0x00002000\n\tCERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT = 0x00004000\n\tCERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT      = 0x00008000\n\tCERT_TRUST_IS_PARTIAL_CHAIN                  = 0x00010000\n\tCERT_TRUST_CTL_IS_NOT_TIME_VALID             = 0x00020000\n\tCERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID        = 0x00040000\n\tCERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE        = 0x00080000\n\tCERT_TRUST_HAS_WEAK_SIGNATURE                = 0x00100000\n\tCERT_TRUST_IS_OFFLINE_REVOCATION             = 0x01000000\n\tCERT_TRUST_NO_ISSUANCE_CHAIN_POLICY          = 0x02000000\n\tCERT_TRUST_IS_EXPLICIT_DISTRUST              = 0x04000000\n\tCERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT    = 0x08000000\n\n\t/* InfoStatus values for CertTrustStatus struct */\n\tCERT_TRUST_HAS_EXACT_MATCH_ISSUER        = 0x00000001\n\tCERT_TRUST_HAS_KEY_MATCH_ISSUER          = 0x00000002\n\tCERT_TRUST_HAS_NAME_MATCH_ISSUER         = 0x00000004\n\tCERT_TRUST_IS_SELF_SIGNED                = 0x00000008\n\tCERT_TRUST_HAS_PREFERRED_ISSUER          = 0x00000100\n\tCERT_TRUST_HAS_ISSUANCE_CHAIN_POLICY     = 0x00000400\n\tCERT_TRUST_HAS_VALID_NAME_CONSTRAINTS    = 0x00000400\n\tCERT_TRUST_IS_PEER_TRUSTED               = 0x00000800\n\tCERT_TRUST_HAS_CRL_VALIDITY_EXTENDED     = 0x00001000\n\tCERT_TRUST_IS_FROM_EXCLUSIVE_TRUST_STORE = 0x00002000\n\tCERT_TRUST_IS_CA_TRUSTED                 = 0x00004000\n\tCERT_TRUST_IS_COMPLEX_CHAIN              = 0x00010000\n\n\t/* Certificate Information Flags */\n\tCERT_INFO_VERSION_FLAG                 = 1\n\tCERT_INFO_SERIAL_NUMBER_FLAG           = 2\n\tCERT_INFO_SIGNATURE_ALGORITHM_FLAG     = 3\n\tCERT_INFO_ISSUER_FLAG                  = 4\n\tCERT_INFO_NOT_BEFORE_FLAG              = 5\n\tCERT_INFO_NOT_AFTER_FLAG               = 6\n\tCERT_INFO_SUBJECT_FLAG                 = 7\n\tCERT_INFO_SUBJECT_PUBLIC_KEY_INFO_FLAG = 8\n\tCERT_INFO_ISSUER_UNIQUE_ID_FLAG        = 9\n\tCERT_INFO_SUBJECT_UNIQUE_ID_FLAG       = 10\n\tCERT_INFO_EXTENSION_FLAG               = 11\n\n\t/* dwFindType for CertFindCertificateInStore  */\n\tCERT_COMPARE_MASK                     = 0xFFFF\n\tCERT_COMPARE_SHIFT                    = 16\n\tCERT_COMPARE_ANY                      = 0\n\tCERT_COMPARE_SHA1_HASH                = 1\n\tCERT_COMPARE_NAME                     = 2\n\tCERT_COMPARE_ATTR                     = 3\n\tCERT_COMPARE_MD5_HASH                 = 4\n\tCERT_COMPARE_PROPERTY                 = 5\n\tCERT_COMPARE_PUBLIC_KEY               = 6\n\tCERT_COMPARE_HASH                     = CERT_COMPARE_SHA1_HASH\n\tCERT_COMPARE_NAME_STR_A               = 7\n\tCERT_COMPARE_NAME_STR_W               = 8\n\tCERT_COMPARE_KEY_SPEC                 = 9\n\tCERT_COMPARE_ENHKEY_USAGE             = 10\n\tCERT_COMPARE_CTL_USAGE                = CERT_COMPARE_ENHKEY_USAGE\n\tCERT_COMPARE_SUBJECT_CERT             = 11\n\tCERT_COMPARE_ISSUER_OF                = 12\n\tCERT_COMPARE_EXISTING                 = 13\n\tCERT_COMPARE_SIGNATURE_HASH           = 14\n\tCERT_COMPARE_KEY_IDENTIFIER           = 15\n\tCERT_COMPARE_CERT_ID                  = 16\n\tCERT_COMPARE_CROSS_CERT_DIST_POINTS   = 17\n\tCERT_COMPARE_PUBKEY_MD5_HASH          = 18\n\tCERT_COMPARE_SUBJECT_INFO_ACCESS      = 19\n\tCERT_COMPARE_HASH_STR                 = 20\n\tCERT_COMPARE_HAS_PRIVATE_KEY          = 21\n\tCERT_FIND_ANY                         = (CERT_COMPARE_ANY << CERT_COMPARE_SHIFT)\n\tCERT_FIND_SHA1_HASH                   = (CERT_COMPARE_SHA1_HASH << CERT_COMPARE_SHIFT)\n\tCERT_FIND_MD5_HASH                    = (CERT_COMPARE_MD5_HASH << CERT_COMPARE_SHIFT)\n\tCERT_FIND_SIGNATURE_HASH              = (CERT_COMPARE_SIGNATURE_HASH << CERT_COMPARE_SHIFT)\n\tCERT_FIND_KEY_IDENTIFIER              = (CERT_COMPARE_KEY_IDENTIFIER << CERT_COMPARE_SHIFT)\n\tCERT_FIND_HASH                        = CERT_FIND_SHA1_HASH\n\tCERT_FIND_PROPERTY                    = (CERT_COMPARE_PROPERTY << CERT_COMPARE_SHIFT)\n\tCERT_FIND_PUBLIC_KEY                  = (CERT_COMPARE_PUBLIC_KEY << CERT_COMPARE_SHIFT)\n\tCERT_FIND_SUBJECT_NAME                = (CERT_COMPARE_NAME<<CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG)\n\tCERT_FIND_SUBJECT_ATTR                = (CERT_COMPARE_ATTR<<CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG)\n\tCERT_FIND_ISSUER_NAME                 = (CERT_COMPARE_NAME<<CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG)\n\tCERT_FIND_ISSUER_ATTR                 = (CERT_COMPARE_ATTR<<CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG)\n\tCERT_FIND_SUBJECT_STR_A               = (CERT_COMPARE_NAME_STR_A<<CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG)\n\tCERT_FIND_SUBJECT_STR_W               = (CERT_COMPARE_NAME_STR_W<<CERT_COMPARE_SHIFT | CERT_INFO_SUBJECT_FLAG)\n\tCERT_FIND_SUBJECT_STR                 = CERT_FIND_SUBJECT_STR_W\n\tCERT_FIND_ISSUER_STR_A                = (CERT_COMPARE_NAME_STR_A<<CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG)\n\tCERT_FIND_ISSUER_STR_W                = (CERT_COMPARE_NAME_STR_W<<CERT_COMPARE_SHIFT | CERT_INFO_ISSUER_FLAG)\n\tCERT_FIND_ISSUER_STR                  = CERT_FIND_ISSUER_STR_W\n\tCERT_FIND_KEY_SPEC                    = (CERT_COMPARE_KEY_SPEC << CERT_COMPARE_SHIFT)\n\tCERT_FIND_ENHKEY_USAGE                = (CERT_COMPARE_ENHKEY_USAGE << CERT_COMPARE_SHIFT)\n\tCERT_FIND_CTL_USAGE                   = CERT_FIND_ENHKEY_USAGE\n\tCERT_FIND_SUBJECT_CERT                = (CERT_COMPARE_SUBJECT_CERT << CERT_COMPARE_SHIFT)\n\tCERT_FIND_ISSUER_OF                   = (CERT_COMPARE_ISSUER_OF << CERT_COMPARE_SHIFT)\n\tCERT_FIND_EXISTING                    = (CERT_COMPARE_EXISTING << CERT_COMPARE_SHIFT)\n\tCERT_FIND_CERT_ID                     = (CERT_COMPARE_CERT_ID << CERT_COMPARE_SHIFT)\n\tCERT_FIND_CROSS_CERT_DIST_POINTS      = (CERT_COMPARE_CROSS_CERT_DIST_POINTS << CERT_COMPARE_SHIFT)\n\tCERT_FIND_PUBKEY_MD5_HASH             = (CERT_COMPARE_PUBKEY_MD5_HASH << CERT_COMPARE_SHIFT)\n\tCERT_FIND_SUBJECT_INFO_ACCESS         = (CERT_COMPARE_SUBJECT_INFO_ACCESS << CERT_COMPARE_SHIFT)\n\tCERT_FIND_HASH_STR                    = (CERT_COMPARE_HASH_STR << CERT_COMPARE_SHIFT)\n\tCERT_FIND_HAS_PRIVATE_KEY             = (CERT_COMPARE_HAS_PRIVATE_KEY << CERT_COMPARE_SHIFT)\n\tCERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG  = 0x1\n\tCERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG  = 0x2\n\tCERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG = 0x4\n\tCERT_FIND_NO_ENHKEY_USAGE_FLAG        = 0x8\n\tCERT_FIND_OR_ENHKEY_USAGE_FLAG        = 0x10\n\tCERT_FIND_VALID_ENHKEY_USAGE_FLAG     = 0x20\n\tCERT_FIND_OPTIONAL_CTL_USAGE_FLAG     = CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG\n\tCERT_FIND_EXT_ONLY_CTL_USAGE_FLAG     = CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG\n\tCERT_FIND_PROP_ONLY_CTL_USAGE_FLAG    = CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG\n\tCERT_FIND_NO_CTL_USAGE_FLAG           = CERT_FIND_NO_ENHKEY_USAGE_FLAG\n\tCERT_FIND_OR_CTL_USAGE_FLAG           = CERT_FIND_OR_ENHKEY_USAGE_FLAG\n\tCERT_FIND_VALID_CTL_USAGE_FLAG        = CERT_FIND_VALID_ENHKEY_USAGE_FLAG\n\n\t/* policyOID values for CertVerifyCertificateChainPolicy function */\n\tCERT_CHAIN_POLICY_BASE              = 1\n\tCERT_CHAIN_POLICY_AUTHENTICODE      = 2\n\tCERT_CHAIN_POLICY_AUTHENTICODE_TS   = 3\n\tCERT_CHAIN_POLICY_SSL               = 4\n\tCERT_CHAIN_POLICY_BASIC_CONSTRAINTS = 5\n\tCERT_CHAIN_POLICY_NT_AUTH           = 6\n\tCERT_CHAIN_POLICY_MICROSOFT_ROOT    = 7\n\tCERT_CHAIN_POLICY_EV                = 8\n\tCERT_CHAIN_POLICY_SSL_F12           = 9\n\n\t/* flag for dwFindType CertFindChainInStore  */\n\tCERT_CHAIN_FIND_BY_ISSUER = 1\n\n\t/* dwFindFlags for CertFindChainInStore when dwFindType == CERT_CHAIN_FIND_BY_ISSUER */\n\tCERT_CHAIN_FIND_BY_ISSUER_COMPARE_KEY_FLAG    = 0x0001\n\tCERT_CHAIN_FIND_BY_ISSUER_COMPLEX_CHAIN_FLAG  = 0x0002\n\tCERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_URL_FLAG = 0x0004\n\tCERT_CHAIN_FIND_BY_ISSUER_LOCAL_MACHINE_FLAG  = 0x0008\n\tCERT_CHAIN_FIND_BY_ISSUER_NO_KEY_FLAG         = 0x4000\n\tCERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_FLAG     = 0x8000\n\n\t/* Certificate Store close flags */\n\tCERT_CLOSE_STORE_FORCE_FLAG = 0x00000001\n\tCERT_CLOSE_STORE_CHECK_FLAG = 0x00000002\n\n\t/* CryptQueryObject object type */\n\tCERT_QUERY_OBJECT_FILE = 1\n\tCERT_QUERY_OBJECT_BLOB = 2\n\n\t/* CryptQueryObject content type flags */\n\tCERT_QUERY_CONTENT_CERT                    = 1\n\tCERT_QUERY_CONTENT_CTL                     = 2\n\tCERT_QUERY_CONTENT_CRL                     = 3\n\tCERT_QUERY_CONTENT_SERIALIZED_STORE        = 4\n\tCERT_QUERY_CONTENT_SERIALIZED_CERT         = 5\n\tCERT_QUERY_CONTENT_SERIALIZED_CTL          = 6\n\tCERT_QUERY_CONTENT_SERIALIZED_CRL          = 7\n\tCERT_QUERY_CONTENT_PKCS7_SIGNED            = 8\n\tCERT_QUERY_CONTENT_PKCS7_UNSIGNED          = 9\n\tCERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED      = 10\n\tCERT_QUERY_CONTENT_PKCS10                  = 11\n\tCERT_QUERY_CONTENT_PFX                     = 12\n\tCERT_QUERY_CONTENT_CERT_PAIR               = 13\n\tCERT_QUERY_CONTENT_PFX_AND_LOAD            = 14\n\tCERT_QUERY_CONTENT_FLAG_CERT               = (1 << CERT_QUERY_CONTENT_CERT)\n\tCERT_QUERY_CONTENT_FLAG_CTL                = (1 << CERT_QUERY_CONTENT_CTL)\n\tCERT_QUERY_CONTENT_FLAG_CRL                = (1 << CERT_QUERY_CONTENT_CRL)\n\tCERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE   = (1 << CERT_QUERY_CONTENT_SERIALIZED_STORE)\n\tCERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT    = (1 << CERT_QUERY_CONTENT_SERIALIZED_CERT)\n\tCERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL     = (1 << CERT_QUERY_CONTENT_SERIALIZED_CTL)\n\tCERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL     = (1 << CERT_QUERY_CONTENT_SERIALIZED_CRL)\n\tCERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED       = (1 << CERT_QUERY_CONTENT_PKCS7_SIGNED)\n\tCERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED     = (1 << CERT_QUERY_CONTENT_PKCS7_UNSIGNED)\n\tCERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED = (1 << CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED)\n\tCERT_QUERY_CONTENT_FLAG_PKCS10             = (1 << CERT_QUERY_CONTENT_PKCS10)\n\tCERT_QUERY_CONTENT_FLAG_PFX                = (1 << CERT_QUERY_CONTENT_PFX)\n\tCERT_QUERY_CONTENT_FLAG_CERT_PAIR          = (1 << CERT_QUERY_CONTENT_CERT_PAIR)\n\tCERT_QUERY_CONTENT_FLAG_PFX_AND_LOAD       = (1 << CERT_QUERY_CONTENT_PFX_AND_LOAD)\n\tCERT_QUERY_CONTENT_FLAG_ALL                = (CERT_QUERY_CONTENT_FLAG_CERT | CERT_QUERY_CONTENT_FLAG_CTL | CERT_QUERY_CONTENT_FLAG_CRL | CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE | CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT | CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL | CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL | CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED | CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED | CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED | CERT_QUERY_CONTENT_FLAG_PKCS10 | CERT_QUERY_CONTENT_FLAG_PFX | CERT_QUERY_CONTENT_FLAG_CERT_PAIR)\n\tCERT_QUERY_CONTENT_FLAG_ALL_ISSUER_CERT    = (CERT_QUERY_CONTENT_FLAG_CERT | CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE | CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT | CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED | CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED)\n\n\t/* CryptQueryObject format type flags */\n\tCERT_QUERY_FORMAT_BINARY                     = 1\n\tCERT_QUERY_FORMAT_BASE64_ENCODED             = 2\n\tCERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED      = 3\n\tCERT_QUERY_FORMAT_FLAG_BINARY                = (1 << CERT_QUERY_FORMAT_BINARY)\n\tCERT_QUERY_FORMAT_FLAG_BASE64_ENCODED        = (1 << CERT_QUERY_FORMAT_BASE64_ENCODED)\n\tCERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED = (1 << CERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED)\n\tCERT_QUERY_FORMAT_FLAG_ALL                   = (CERT_QUERY_FORMAT_FLAG_BINARY | CERT_QUERY_FORMAT_FLAG_BASE64_ENCODED | CERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED)\n\n\t/* CertGetNameString name types */\n\tCERT_NAME_EMAIL_TYPE            = 1\n\tCERT_NAME_RDN_TYPE              = 2\n\tCERT_NAME_ATTR_TYPE             = 3\n\tCERT_NAME_SIMPLE_DISPLAY_TYPE   = 4\n\tCERT_NAME_FRIENDLY_DISPLAY_TYPE = 5\n\tCERT_NAME_DNS_TYPE              = 6\n\tCERT_NAME_URL_TYPE              = 7\n\tCERT_NAME_UPN_TYPE              = 8\n\n\t/* CertGetNameString flags */\n\tCERT_NAME_ISSUER_FLAG              = 0x1\n\tCERT_NAME_DISABLE_IE4_UTF8_FLAG    = 0x10000\n\tCERT_NAME_SEARCH_ALL_NAMES_FLAG    = 0x2\n\tCERT_NAME_STR_ENABLE_PUNYCODE_FLAG = 0x00200000\n\n\t/* AuthType values for SSLExtraCertChainPolicyPara struct */\n\tAUTHTYPE_CLIENT = 1\n\tAUTHTYPE_SERVER = 2\n\n\t/* Checks values for SSLExtraCertChainPolicyPara struct */\n\tSECURITY_FLAG_IGNORE_REVOCATION        = 0x00000080\n\tSECURITY_FLAG_IGNORE_UNKNOWN_CA        = 0x00000100\n\tSECURITY_FLAG_IGNORE_WRONG_USAGE       = 0x00000200\n\tSECURITY_FLAG_IGNORE_CERT_CN_INVALID   = 0x00001000\n\tSECURITY_FLAG_IGNORE_CERT_DATE_INVALID = 0x00002000\n\n\t/* Flags for Crypt[Un]ProtectData */\n\tCRYPTPROTECT_UI_FORBIDDEN      = 0x1\n\tCRYPTPROTECT_LOCAL_MACHINE     = 0x4\n\tCRYPTPROTECT_CRED_SYNC         = 0x8\n\tCRYPTPROTECT_AUDIT             = 0x10\n\tCRYPTPROTECT_NO_RECOVERY       = 0x20\n\tCRYPTPROTECT_VERIFY_PROTECTION = 0x40\n\tCRYPTPROTECT_CRED_REGENERATE   = 0x80\n\n\t/* Flags for CryptProtectPromptStruct */\n\tCRYPTPROTECT_PROMPT_ON_UNPROTECT   = 1\n\tCRYPTPROTECT_PROMPT_ON_PROTECT     = 2\n\tCRYPTPROTECT_PROMPT_RESERVED       = 4\n\tCRYPTPROTECT_PROMPT_STRONG         = 8\n\tCRYPTPROTECT_PROMPT_REQUIRE_STRONG = 16\n)\n\nconst (\n\t// flags for SetErrorMode\n\tSEM_FAILCRITICALERRORS     = 0x0001\n\tSEM_NOALIGNMENTFAULTEXCEPT = 0x0004\n\tSEM_NOGPFAULTERRORBOX      = 0x0002\n\tSEM_NOOPENFILEERRORBOX     = 0x8000\n)\n\nconst (\n\t// Priority class.\n\tABOVE_NORMAL_PRIORITY_CLASS   = 0x00008000\n\tBELOW_NORMAL_PRIORITY_CLASS   = 0x00004000\n\tHIGH_PRIORITY_CLASS           = 0x00000080\n\tIDLE_PRIORITY_CLASS           = 0x00000040\n\tNORMAL_PRIORITY_CLASS         = 0x00000020\n\tPROCESS_MODE_BACKGROUND_BEGIN = 0x00100000\n\tPROCESS_MODE_BACKGROUND_END   = 0x00200000\n\tREALTIME_PRIORITY_CLASS       = 0x00000100\n)\n\n/* wintrust.h constants for WinVerifyTrustEx */\nconst (\n\tWTD_UI_ALL    = 1\n\tWTD_UI_NONE   = 2\n\tWTD_UI_NOBAD  = 3\n\tWTD_UI_NOGOOD = 4\n\n\tWTD_REVOKE_NONE       = 0\n\tWTD_REVOKE_WHOLECHAIN = 1\n\n\tWTD_CHOICE_FILE    = 1\n\tWTD_CHOICE_CATALOG = 2\n\tWTD_CHOICE_BLOB    = 3\n\tWTD_CHOICE_SIGNER  = 4\n\tWTD_CHOICE_CERT    = 5\n\n\tWTD_STATEACTION_IGNORE           = 0x00000000\n\tWTD_STATEACTION_VERIFY           = 0x00000001\n\tWTD_STATEACTION_CLOSE            = 0x00000002\n\tWTD_STATEACTION_AUTO_CACHE       = 0x00000003\n\tWTD_STATEACTION_AUTO_CACHE_FLUSH = 0x00000004\n\n\tWTD_USE_IE4_TRUST_FLAG                  = 0x1\n\tWTD_NO_IE4_CHAIN_FLAG                   = 0x2\n\tWTD_NO_POLICY_USAGE_FLAG                = 0x4\n\tWTD_REVOCATION_CHECK_NONE               = 0x10\n\tWTD_REVOCATION_CHECK_END_CERT           = 0x20\n\tWTD_REVOCATION_CHECK_CHAIN              = 0x40\n\tWTD_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT = 0x80\n\tWTD_SAFER_FLAG                          = 0x100\n\tWTD_HASH_ONLY_FLAG                      = 0x200\n\tWTD_USE_DEFAULT_OSVER_CHECK             = 0x400\n\tWTD_LIFETIME_SIGNING_FLAG               = 0x800\n\tWTD_CACHE_ONLY_URL_RETRIEVAL            = 0x1000\n\tWTD_DISABLE_MD2_MD4                     = 0x2000\n\tWTD_MOTW                                = 0x4000\n\n\tWTD_UICONTEXT_EXECUTE = 0\n\tWTD_UICONTEXT_INSTALL = 1\n)\n\nvar (\n\tOID_PKIX_KP_SERVER_AUTH = []byte(\"1.3.6.1.5.5.7.3.1\\x00\")\n\tOID_SERVER_GATED_CRYPTO = []byte(\"1.3.6.1.4.1.311.10.3.3\\x00\")\n\tOID_SGC_NETSCAPE        = []byte(\"2.16.840.1.113730.4.1\\x00\")\n\n\tWINTRUST_ACTION_GENERIC_VERIFY_V2 = GUID{\n\t\tData1: 0xaac56b,\n\t\tData2: 0xcd44,\n\t\tData3: 0x11d0,\n\t\tData4: [8]byte{0x8c, 0xc2, 0x0, 0xc0, 0x4f, 0xc2, 0x95, 0xee},\n\t}\n)\n\n// Pointer represents a pointer to an arbitrary Windows type.\n//\n// Pointer-typed fields may point to one of many different types. It's\n// up to the caller to provide a pointer to the appropriate type, cast\n// to Pointer. The caller must obey the unsafe.Pointer rules while\n// doing so.\ntype Pointer *struct{}\n\n// Invented values to support what package os expects.\ntype Timeval struct {\n\tSec  int32\n\tUsec int32\n}\n\nfunc (tv *Timeval) Nanoseconds() int64 {\n\treturn (int64(tv.Sec)*1e6 + int64(tv.Usec)) * 1e3\n}\n\nfunc NsecToTimeval(nsec int64) (tv Timeval) {\n\ttv.Sec = int32(nsec / 1e9)\n\ttv.Usec = int32(nsec % 1e9 / 1e3)\n\treturn\n}\n\ntype Overlapped struct {\n\tInternal     uintptr\n\tInternalHigh uintptr\n\tOffset       uint32\n\tOffsetHigh   uint32\n\tHEvent       Handle\n}\n\ntype FileNotifyInformation struct {\n\tNextEntryOffset uint32\n\tAction          uint32\n\tFileNameLength  uint32\n\tFileName        uint16\n}\n\ntype Filetime struct {\n\tLowDateTime  uint32\n\tHighDateTime uint32\n}\n\n// Nanoseconds returns Filetime ft in nanoseconds\n// since Epoch (00:00:00 UTC, January 1, 1970).\nfunc (ft *Filetime) Nanoseconds() int64 {\n\t// 100-nanosecond intervals since January 1, 1601\n\tnsec := int64(ft.HighDateTime)<<32 + int64(ft.LowDateTime)\n\t// change starting time to the Epoch (00:00:00 UTC, January 1, 1970)\n\tnsec -= 116444736000000000\n\t// convert into nanoseconds\n\tnsec *= 100\n\treturn nsec\n}\n\nfunc NsecToFiletime(nsec int64) (ft Filetime) {\n\t// convert into 100-nanosecond\n\tnsec /= 100\n\t// change starting time to January 1, 1601\n\tnsec += 116444736000000000\n\t// split into high / low\n\tft.LowDateTime = uint32(nsec & 0xffffffff)\n\tft.HighDateTime = uint32(nsec >> 32 & 0xffffffff)\n\treturn ft\n}\n\ntype Win32finddata struct {\n\tFileAttributes    uint32\n\tCreationTime      Filetime\n\tLastAccessTime    Filetime\n\tLastWriteTime     Filetime\n\tFileSizeHigh      uint32\n\tFileSizeLow       uint32\n\tReserved0         uint32\n\tReserved1         uint32\n\tFileName          [MAX_PATH - 1]uint16\n\tAlternateFileName [13]uint16\n}\n\n// This is the actual system call structure.\n// Win32finddata is what we committed to in Go 1.\ntype win32finddata1 struct {\n\tFileAttributes    uint32\n\tCreationTime      Filetime\n\tLastAccessTime    Filetime\n\tLastWriteTime     Filetime\n\tFileSizeHigh      uint32\n\tFileSizeLow       uint32\n\tReserved0         uint32\n\tReserved1         uint32\n\tFileName          [MAX_PATH]uint16\n\tAlternateFileName [14]uint16\n\n\t// The Microsoft documentation for this struct¹ describes three additional\n\t// fields: dwFileType, dwCreatorType, and wFinderFlags. However, those fields\n\t// are empirically only present in the macOS port of the Win32 API,² and thus\n\t// not needed for binaries built for Windows.\n\t//\n\t// ¹ https://docs.microsoft.com/en-us/windows/win32/api/minwinbase/ns-minwinbase-win32_find_dataw describe\n\t// ² https://golang.org/issue/42637#issuecomment-760715755.\n}\n\nfunc copyFindData(dst *Win32finddata, src *win32finddata1) {\n\tdst.FileAttributes = src.FileAttributes\n\tdst.CreationTime = src.CreationTime\n\tdst.LastAccessTime = src.LastAccessTime\n\tdst.LastWriteTime = src.LastWriteTime\n\tdst.FileSizeHigh = src.FileSizeHigh\n\tdst.FileSizeLow = src.FileSizeLow\n\tdst.Reserved0 = src.Reserved0\n\tdst.Reserved1 = src.Reserved1\n\n\t// The src is 1 element bigger than dst, but it must be NUL.\n\tcopy(dst.FileName[:], src.FileName[:])\n\tcopy(dst.AlternateFileName[:], src.AlternateFileName[:])\n}\n\ntype ByHandleFileInformation struct {\n\tFileAttributes     uint32\n\tCreationTime       Filetime\n\tLastAccessTime     Filetime\n\tLastWriteTime      Filetime\n\tVolumeSerialNumber uint32\n\tFileSizeHigh       uint32\n\tFileSizeLow        uint32\n\tNumberOfLinks      uint32\n\tFileIndexHigh      uint32\n\tFileIndexLow       uint32\n}\n\nconst (\n\tGetFileExInfoStandard = 0\n\tGetFileExMaxInfoLevel = 1\n)\n\ntype Win32FileAttributeData struct {\n\tFileAttributes uint32\n\tCreationTime   Filetime\n\tLastAccessTime Filetime\n\tLastWriteTime  Filetime\n\tFileSizeHigh   uint32\n\tFileSizeLow    uint32\n}\n\n// ShowWindow constants\nconst (\n\t// winuser.h\n\tSW_HIDE            = 0\n\tSW_NORMAL          = 1\n\tSW_SHOWNORMAL      = 1\n\tSW_SHOWMINIMIZED   = 2\n\tSW_SHOWMAXIMIZED   = 3\n\tSW_MAXIMIZE        = 3\n\tSW_SHOWNOACTIVATE  = 4\n\tSW_SHOW            = 5\n\tSW_MINIMIZE        = 6\n\tSW_SHOWMINNOACTIVE = 7\n\tSW_SHOWNA          = 8\n\tSW_RESTORE         = 9\n\tSW_SHOWDEFAULT     = 10\n\tSW_FORCEMINIMIZE   = 11\n)\n\ntype StartupInfo struct {\n\tCb            uint32\n\t_             *uint16\n\tDesktop       *uint16\n\tTitle         *uint16\n\tX             uint32\n\tY             uint32\n\tXSize         uint32\n\tYSize         uint32\n\tXCountChars   uint32\n\tYCountChars   uint32\n\tFillAttribute uint32\n\tFlags         uint32\n\tShowWindow    uint16\n\t_             uint16\n\t_             *byte\n\tStdInput      Handle\n\tStdOutput     Handle\n\tStdErr        Handle\n}\n\ntype StartupInfoEx struct {\n\tStartupInfo\n\tProcThreadAttributeList *ProcThreadAttributeList\n}\n\n// ProcThreadAttributeList is a placeholder type to represent a PROC_THREAD_ATTRIBUTE_LIST.\n//\n// To create a *ProcThreadAttributeList, use NewProcThreadAttributeList, update\n// it with ProcThreadAttributeListContainer.Update, free its memory using\n// ProcThreadAttributeListContainer.Delete, and access the list itself using\n// ProcThreadAttributeListContainer.List.\ntype ProcThreadAttributeList struct{}\n\ntype ProcThreadAttributeListContainer struct {\n\tdata     *ProcThreadAttributeList\n\tpointers []unsafe.Pointer\n}\n\ntype ProcessInformation struct {\n\tProcess   Handle\n\tThread    Handle\n\tProcessId uint32\n\tThreadId  uint32\n}\n\ntype ProcessEntry32 struct {\n\tSize            uint32\n\tUsage           uint32\n\tProcessID       uint32\n\tDefaultHeapID   uintptr\n\tModuleID        uint32\n\tThreads         uint32\n\tParentProcessID uint32\n\tPriClassBase    int32\n\tFlags           uint32\n\tExeFile         [MAX_PATH]uint16\n}\n\ntype ThreadEntry32 struct {\n\tSize           uint32\n\tUsage          uint32\n\tThreadID       uint32\n\tOwnerProcessID uint32\n\tBasePri        int32\n\tDeltaPri       int32\n\tFlags          uint32\n}\n\ntype ModuleEntry32 struct {\n\tSize         uint32\n\tModuleID     uint32\n\tProcessID    uint32\n\tGlblcntUsage uint32\n\tProccntUsage uint32\n\tModBaseAddr  uintptr\n\tModBaseSize  uint32\n\tModuleHandle Handle\n\tModule       [MAX_MODULE_NAME32 + 1]uint16\n\tExePath      [MAX_PATH]uint16\n}\n\nconst SizeofModuleEntry32 = unsafe.Sizeof(ModuleEntry32{})\n\ntype Systemtime struct {\n\tYear         uint16\n\tMonth        uint16\n\tDayOfWeek    uint16\n\tDay          uint16\n\tHour         uint16\n\tMinute       uint16\n\tSecond       uint16\n\tMilliseconds uint16\n}\n\ntype Timezoneinformation struct {\n\tBias         int32\n\tStandardName [32]uint16\n\tStandardDate Systemtime\n\tStandardBias int32\n\tDaylightName [32]uint16\n\tDaylightDate Systemtime\n\tDaylightBias int32\n}\n\n// Socket related.\n\nconst (\n\tAF_UNSPEC  = 0\n\tAF_UNIX    = 1\n\tAF_INET    = 2\n\tAF_NETBIOS = 17\n\tAF_INET6   = 23\n\tAF_IRDA    = 26\n\tAF_BTH     = 32\n\n\tSOCK_STREAM    = 1\n\tSOCK_DGRAM     = 2\n\tSOCK_RAW       = 3\n\tSOCK_RDM       = 4\n\tSOCK_SEQPACKET = 5\n\n\tIPPROTO_IP      = 0\n\tIPPROTO_ICMP    = 1\n\tIPPROTO_IGMP    = 2\n\tBTHPROTO_RFCOMM = 3\n\tIPPROTO_TCP     = 6\n\tIPPROTO_UDP     = 17\n\tIPPROTO_IPV6    = 41\n\tIPPROTO_ICMPV6  = 58\n\tIPPROTO_RM      = 113\n\n\tSOL_SOCKET                = 0xffff\n\tSO_REUSEADDR              = 4\n\tSO_KEEPALIVE              = 8\n\tSO_DONTROUTE              = 16\n\tSO_BROADCAST              = 32\n\tSO_LINGER                 = 128\n\tSO_RCVBUF                 = 0x1002\n\tSO_RCVTIMEO               = 0x1006\n\tSO_SNDBUF                 = 0x1001\n\tSO_UPDATE_ACCEPT_CONTEXT  = 0x700b\n\tSO_UPDATE_CONNECT_CONTEXT = 0x7010\n\n\tIOC_OUT                            = 0x40000000\n\tIOC_IN                             = 0x80000000\n\tIOC_VENDOR                         = 0x18000000\n\tIOC_INOUT                          = IOC_IN | IOC_OUT\n\tIOC_WS2                            = 0x08000000\n\tSIO_GET_EXTENSION_FUNCTION_POINTER = IOC_INOUT | IOC_WS2 | 6\n\tSIO_KEEPALIVE_VALS                 = IOC_IN | IOC_VENDOR | 4\n\tSIO_UDP_CONNRESET                  = IOC_IN | IOC_VENDOR | 12\n\tSIO_UDP_NETRESET                   = IOC_IN | IOC_VENDOR | 15\n\n\t// cf. http://support.microsoft.com/default.aspx?scid=kb;en-us;257460\n\n\tIP_HDRINCL         = 0x2\n\tIP_TOS             = 0x3\n\tIP_TTL             = 0x4\n\tIP_MULTICAST_IF    = 0x9\n\tIP_MULTICAST_TTL   = 0xa\n\tIP_MULTICAST_LOOP  = 0xb\n\tIP_ADD_MEMBERSHIP  = 0xc\n\tIP_DROP_MEMBERSHIP = 0xd\n\tIP_PKTINFO         = 0x13\n\n\tIPV6_V6ONLY         = 0x1b\n\tIPV6_UNICAST_HOPS   = 0x4\n\tIPV6_MULTICAST_IF   = 0x9\n\tIPV6_MULTICAST_HOPS = 0xa\n\tIPV6_MULTICAST_LOOP = 0xb\n\tIPV6_JOIN_GROUP     = 0xc\n\tIPV6_LEAVE_GROUP    = 0xd\n\tIPV6_PKTINFO        = 0x13\n\n\tMSG_OOB       = 0x1\n\tMSG_PEEK      = 0x2\n\tMSG_DONTROUTE = 0x4\n\tMSG_WAITALL   = 0x8\n\n\tMSG_TRUNC  = 0x0100\n\tMSG_CTRUNC = 0x0200\n\tMSG_BCAST  = 0x0400\n\tMSG_MCAST  = 0x0800\n\n\tSOMAXCONN = 0x7fffffff\n\n\tTCP_NODELAY                    = 1\n\tTCP_EXPEDITED_1122             = 2\n\tTCP_KEEPALIVE                  = 3\n\tTCP_MAXSEG                     = 4\n\tTCP_MAXRT                      = 5\n\tTCP_STDURG                     = 6\n\tTCP_NOURG                      = 7\n\tTCP_ATMARK                     = 8\n\tTCP_NOSYNRETRIES               = 9\n\tTCP_TIMESTAMPS                 = 10\n\tTCP_OFFLOAD_PREFERENCE         = 11\n\tTCP_CONGESTION_ALGORITHM       = 12\n\tTCP_DELAY_FIN_ACK              = 13\n\tTCP_MAXRTMS                    = 14\n\tTCP_FASTOPEN                   = 15\n\tTCP_KEEPCNT                    = 16\n\tTCP_KEEPIDLE                   = TCP_KEEPALIVE\n\tTCP_KEEPINTVL                  = 17\n\tTCP_FAIL_CONNECT_ON_ICMP_ERROR = 18\n\tTCP_ICMP_ERROR_INFO            = 19\n\n\tUDP_NOCHECKSUM              = 1\n\tUDP_SEND_MSG_SIZE           = 2\n\tUDP_RECV_MAX_COALESCED_SIZE = 3\n\tUDP_CHECKSUM_COVERAGE       = 20\n\n\tUDP_COALESCED_INFO = 3\n\n\tSHUT_RD   = 0\n\tSHUT_WR   = 1\n\tSHUT_RDWR = 2\n\n\tWSADESCRIPTION_LEN = 256\n\tWSASYS_STATUS_LEN  = 128\n)\n\ntype WSABuf struct {\n\tLen uint32\n\tBuf *byte\n}\n\ntype WSAMsg struct {\n\tName        *syscall.RawSockaddrAny\n\tNamelen     int32\n\tBuffers     *WSABuf\n\tBufferCount uint32\n\tControl     WSABuf\n\tFlags       uint32\n}\n\n// Flags for WSASocket\nconst (\n\tWSA_FLAG_OVERLAPPED             = 0x01\n\tWSA_FLAG_MULTIPOINT_C_ROOT      = 0x02\n\tWSA_FLAG_MULTIPOINT_C_LEAF      = 0x04\n\tWSA_FLAG_MULTIPOINT_D_ROOT      = 0x08\n\tWSA_FLAG_MULTIPOINT_D_LEAF      = 0x10\n\tWSA_FLAG_ACCESS_SYSTEM_SECURITY = 0x40\n\tWSA_FLAG_NO_HANDLE_INHERIT      = 0x80\n\tWSA_FLAG_REGISTERED_IO          = 0x100\n)\n\n// Invented values to support what package os expects.\nconst (\n\tS_IFMT   = 0x1f000\n\tS_IFIFO  = 0x1000\n\tS_IFCHR  = 0x2000\n\tS_IFDIR  = 0x4000\n\tS_IFBLK  = 0x6000\n\tS_IFREG  = 0x8000\n\tS_IFLNK  = 0xa000\n\tS_IFSOCK = 0xc000\n\tS_ISUID  = 0x800\n\tS_ISGID  = 0x400\n\tS_ISVTX  = 0x200\n\tS_IRUSR  = 0x100\n\tS_IWRITE = 0x80\n\tS_IWUSR  = 0x80\n\tS_IXUSR  = 0x40\n)\n\nconst (\n\tFILE_TYPE_CHAR    = 0x0002\n\tFILE_TYPE_DISK    = 0x0001\n\tFILE_TYPE_PIPE    = 0x0003\n\tFILE_TYPE_REMOTE  = 0x8000\n\tFILE_TYPE_UNKNOWN = 0x0000\n)\n\ntype Hostent struct {\n\tName     *byte\n\tAliases  **byte\n\tAddrType uint16\n\tLength   uint16\n\tAddrList **byte\n}\n\ntype Protoent struct {\n\tName    *byte\n\tAliases **byte\n\tProto   uint16\n}\n\nconst (\n\tDNS_TYPE_A       = 0x0001\n\tDNS_TYPE_NS      = 0x0002\n\tDNS_TYPE_MD      = 0x0003\n\tDNS_TYPE_MF      = 0x0004\n\tDNS_TYPE_CNAME   = 0x0005\n\tDNS_TYPE_SOA     = 0x0006\n\tDNS_TYPE_MB      = 0x0007\n\tDNS_TYPE_MG      = 0x0008\n\tDNS_TYPE_MR      = 0x0009\n\tDNS_TYPE_NULL    = 0x000a\n\tDNS_TYPE_WKS     = 0x000b\n\tDNS_TYPE_PTR     = 0x000c\n\tDNS_TYPE_HINFO   = 0x000d\n\tDNS_TYPE_MINFO   = 0x000e\n\tDNS_TYPE_MX      = 0x000f\n\tDNS_TYPE_TEXT    = 0x0010\n\tDNS_TYPE_RP      = 0x0011\n\tDNS_TYPE_AFSDB   = 0x0012\n\tDNS_TYPE_X25     = 0x0013\n\tDNS_TYPE_ISDN    = 0x0014\n\tDNS_TYPE_RT      = 0x0015\n\tDNS_TYPE_NSAP    = 0x0016\n\tDNS_TYPE_NSAPPTR = 0x0017\n\tDNS_TYPE_SIG     = 0x0018\n\tDNS_TYPE_KEY     = 0x0019\n\tDNS_TYPE_PX      = 0x001a\n\tDNS_TYPE_GPOS    = 0x001b\n\tDNS_TYPE_AAAA    = 0x001c\n\tDNS_TYPE_LOC     = 0x001d\n\tDNS_TYPE_NXT     = 0x001e\n\tDNS_TYPE_EID     = 0x001f\n\tDNS_TYPE_NIMLOC  = 0x0020\n\tDNS_TYPE_SRV     = 0x0021\n\tDNS_TYPE_ATMA    = 0x0022\n\tDNS_TYPE_NAPTR   = 0x0023\n\tDNS_TYPE_KX      = 0x0024\n\tDNS_TYPE_CERT    = 0x0025\n\tDNS_TYPE_A6      = 0x0026\n\tDNS_TYPE_DNAME   = 0x0027\n\tDNS_TYPE_SINK    = 0x0028\n\tDNS_TYPE_OPT     = 0x0029\n\tDNS_TYPE_DS      = 0x002B\n\tDNS_TYPE_RRSIG   = 0x002E\n\tDNS_TYPE_NSEC    = 0x002F\n\tDNS_TYPE_DNSKEY  = 0x0030\n\tDNS_TYPE_DHCID   = 0x0031\n\tDNS_TYPE_UINFO   = 0x0064\n\tDNS_TYPE_UID     = 0x0065\n\tDNS_TYPE_GID     = 0x0066\n\tDNS_TYPE_UNSPEC  = 0x0067\n\tDNS_TYPE_ADDRS   = 0x00f8\n\tDNS_TYPE_TKEY    = 0x00f9\n\tDNS_TYPE_TSIG    = 0x00fa\n\tDNS_TYPE_IXFR    = 0x00fb\n\tDNS_TYPE_AXFR    = 0x00fc\n\tDNS_TYPE_MAILB   = 0x00fd\n\tDNS_TYPE_MAILA   = 0x00fe\n\tDNS_TYPE_ALL     = 0x00ff\n\tDNS_TYPE_ANY     = 0x00ff\n\tDNS_TYPE_WINS    = 0xff01\n\tDNS_TYPE_WINSR   = 0xff02\n\tDNS_TYPE_NBSTAT  = 0xff01\n)\n\nconst (\n\t// flags inside DNSRecord.Dw\n\tDnsSectionQuestion   = 0x0000\n\tDnsSectionAnswer     = 0x0001\n\tDnsSectionAuthority  = 0x0002\n\tDnsSectionAdditional = 0x0003\n)\n\nconst (\n\t// flags of WSALookupService\n\tLUP_DEEP                = 0x0001\n\tLUP_CONTAINERS          = 0x0002\n\tLUP_NOCONTAINERS        = 0x0004\n\tLUP_NEAREST             = 0x0008\n\tLUP_RETURN_NAME         = 0x0010\n\tLUP_RETURN_TYPE         = 0x0020\n\tLUP_RETURN_VERSION      = 0x0040\n\tLUP_RETURN_COMMENT      = 0x0080\n\tLUP_RETURN_ADDR         = 0x0100\n\tLUP_RETURN_BLOB         = 0x0200\n\tLUP_RETURN_ALIASES      = 0x0400\n\tLUP_RETURN_QUERY_STRING = 0x0800\n\tLUP_RETURN_ALL          = 0x0FF0\n\tLUP_RES_SERVICE         = 0x8000\n\n\tLUP_FLUSHCACHE    = 0x1000\n\tLUP_FLUSHPREVIOUS = 0x2000\n\n\tLUP_NON_AUTHORITATIVE      = 0x4000\n\tLUP_SECURE                 = 0x8000\n\tLUP_RETURN_PREFERRED_NAMES = 0x10000\n\tLUP_DNS_ONLY               = 0x20000\n\n\tLUP_ADDRCONFIG           = 0x100000\n\tLUP_DUAL_ADDR            = 0x200000\n\tLUP_FILESERVER           = 0x400000\n\tLUP_DISABLE_IDN_ENCODING = 0x00800000\n\tLUP_API_ANSI             = 0x01000000\n\n\tLUP_RESOLUTION_HANDLE = 0x80000000\n)\n\nconst (\n\t// values of WSAQUERYSET's namespace\n\tNS_ALL       = 0\n\tNS_DNS       = 12\n\tNS_NLA       = 15\n\tNS_BTH       = 16\n\tNS_EMAIL     = 37\n\tNS_PNRPNAME  = 38\n\tNS_PNRPCLOUD = 39\n)\n\ntype DNSSRVData struct {\n\tTarget   *uint16\n\tPriority uint16\n\tWeight   uint16\n\tPort     uint16\n\tPad      uint16\n}\n\ntype DNSPTRData struct {\n\tHost *uint16\n}\n\ntype DNSMXData struct {\n\tNameExchange *uint16\n\tPreference   uint16\n\tPad          uint16\n}\n\ntype DNSTXTData struct {\n\tStringCount uint16\n\tStringArray [1]*uint16\n}\n\ntype DNSRecord struct {\n\tNext     *DNSRecord\n\tName     *uint16\n\tType     uint16\n\tLength   uint16\n\tDw       uint32\n\tTtl      uint32\n\tReserved uint32\n\tData     [40]byte\n}\n\nconst (\n\tTF_DISCONNECT         = 1\n\tTF_REUSE_SOCKET       = 2\n\tTF_WRITE_BEHIND       = 4\n\tTF_USE_DEFAULT_WORKER = 0\n\tTF_USE_SYSTEM_THREAD  = 16\n\tTF_USE_KERNEL_APC     = 32\n)\n\ntype TransmitFileBuffers struct {\n\tHead       uintptr\n\tHeadLength uint32\n\tTail       uintptr\n\tTailLength uint32\n}\n\nconst (\n\tIFF_UP           = 1\n\tIFF_BROADCAST    = 2\n\tIFF_LOOPBACK     = 4\n\tIFF_POINTTOPOINT = 8\n\tIFF_MULTICAST    = 16\n)\n\nconst SIO_GET_INTERFACE_LIST = 0x4004747F\n\n// TODO(mattn): SockaddrGen is union of sockaddr/sockaddr_in/sockaddr_in6_old.\n// will be fixed to change variable type as suitable.\n\ntype SockaddrGen [24]byte\n\ntype InterfaceInfo struct {\n\tFlags            uint32\n\tAddress          SockaddrGen\n\tBroadcastAddress SockaddrGen\n\tNetmask          SockaddrGen\n}\n\ntype IpAddressString struct {\n\tString [16]byte\n}\n\ntype IpMaskString IpAddressString\n\ntype IpAddrString struct {\n\tNext      *IpAddrString\n\tIpAddress IpAddressString\n\tIpMask    IpMaskString\n\tContext   uint32\n}\n\nconst MAX_ADAPTER_NAME_LENGTH = 256\nconst MAX_ADAPTER_DESCRIPTION_LENGTH = 128\nconst MAX_ADAPTER_ADDRESS_LENGTH = 8\n\ntype IpAdapterInfo struct {\n\tNext                *IpAdapterInfo\n\tComboIndex          uint32\n\tAdapterName         [MAX_ADAPTER_NAME_LENGTH + 4]byte\n\tDescription         [MAX_ADAPTER_DESCRIPTION_LENGTH + 4]byte\n\tAddressLength       uint32\n\tAddress             [MAX_ADAPTER_ADDRESS_LENGTH]byte\n\tIndex               uint32\n\tType                uint32\n\tDhcpEnabled         uint32\n\tCurrentIpAddress    *IpAddrString\n\tIpAddressList       IpAddrString\n\tGatewayList         IpAddrString\n\tDhcpServer          IpAddrString\n\tHaveWins            bool\n\tPrimaryWinsServer   IpAddrString\n\tSecondaryWinsServer IpAddrString\n\tLeaseObtained       int64\n\tLeaseExpires        int64\n}\n\nconst MAXLEN_PHYSADDR = 8\nconst MAX_INTERFACE_NAME_LEN = 256\nconst MAXLEN_IFDESCR = 256\n\ntype MibIfRow struct {\n\tName            [MAX_INTERFACE_NAME_LEN]uint16\n\tIndex           uint32\n\tType            uint32\n\tMtu             uint32\n\tSpeed           uint32\n\tPhysAddrLen     uint32\n\tPhysAddr        [MAXLEN_PHYSADDR]byte\n\tAdminStatus     uint32\n\tOperStatus      uint32\n\tLastChange      uint32\n\tInOctets        uint32\n\tInUcastPkts     uint32\n\tInNUcastPkts    uint32\n\tInDiscards      uint32\n\tInErrors        uint32\n\tInUnknownProtos uint32\n\tOutOctets       uint32\n\tOutUcastPkts    uint32\n\tOutNUcastPkts   uint32\n\tOutDiscards     uint32\n\tOutErrors       uint32\n\tOutQLen         uint32\n\tDescrLen        uint32\n\tDescr           [MAXLEN_IFDESCR]byte\n}\n\ntype CertInfo struct {\n\tVersion              uint32\n\tSerialNumber         CryptIntegerBlob\n\tSignatureAlgorithm   CryptAlgorithmIdentifier\n\tIssuer               CertNameBlob\n\tNotBefore            Filetime\n\tNotAfter             Filetime\n\tSubject              CertNameBlob\n\tSubjectPublicKeyInfo CertPublicKeyInfo\n\tIssuerUniqueId       CryptBitBlob\n\tSubjectUniqueId      CryptBitBlob\n\tCountExtensions      uint32\n\tExtensions           *CertExtension\n}\n\ntype CertExtension struct {\n\tObjId    *byte\n\tCritical int32\n\tValue    CryptObjidBlob\n}\n\ntype CryptAlgorithmIdentifier struct {\n\tObjId      *byte\n\tParameters CryptObjidBlob\n}\n\ntype CertPublicKeyInfo struct {\n\tAlgorithm CryptAlgorithmIdentifier\n\tPublicKey CryptBitBlob\n}\n\ntype DataBlob struct {\n\tSize uint32\n\tData *byte\n}\ntype CryptIntegerBlob DataBlob\ntype CryptUintBlob DataBlob\ntype CryptObjidBlob DataBlob\ntype CertNameBlob DataBlob\ntype CertRdnValueBlob DataBlob\ntype CertBlob DataBlob\ntype CrlBlob DataBlob\ntype CryptDataBlob DataBlob\ntype CryptHashBlob DataBlob\ntype CryptDigestBlob DataBlob\ntype CryptDerBlob DataBlob\ntype CryptAttrBlob DataBlob\n\ntype CryptBitBlob struct {\n\tSize       uint32\n\tData       *byte\n\tUnusedBits uint32\n}\n\ntype CertContext struct {\n\tEncodingType uint32\n\tEncodedCert  *byte\n\tLength       uint32\n\tCertInfo     *CertInfo\n\tStore        Handle\n}\n\ntype CertChainContext struct {\n\tSize                       uint32\n\tTrustStatus                CertTrustStatus\n\tChainCount                 uint32\n\tChains                     **CertSimpleChain\n\tLowerQualityChainCount     uint32\n\tLowerQualityChains         **CertChainContext\n\tHasRevocationFreshnessTime uint32\n\tRevocationFreshnessTime    uint32\n}\n\ntype CertTrustListInfo struct {\n\t// Not implemented\n}\n\ntype CertSimpleChain struct {\n\tSize                       uint32\n\tTrustStatus                CertTrustStatus\n\tNumElements                uint32\n\tElements                   **CertChainElement\n\tTrustListInfo              *CertTrustListInfo\n\tHasRevocationFreshnessTime uint32\n\tRevocationFreshnessTime    uint32\n}\n\ntype CertChainElement struct {\n\tSize              uint32\n\tCertContext       *CertContext\n\tTrustStatus       CertTrustStatus\n\tRevocationInfo    *CertRevocationInfo\n\tIssuanceUsage     *CertEnhKeyUsage\n\tApplicationUsage  *CertEnhKeyUsage\n\tExtendedErrorInfo *uint16\n}\n\ntype CertRevocationCrlInfo struct {\n\t// Not implemented\n}\n\ntype CertRevocationInfo struct {\n\tSize             uint32\n\tRevocationResult uint32\n\tRevocationOid    *byte\n\tOidSpecificInfo  Pointer\n\tHasFreshnessTime uint32\n\tFreshnessTime    uint32\n\tCrlInfo          *CertRevocationCrlInfo\n}\n\ntype CertTrustStatus struct {\n\tErrorStatus uint32\n\tInfoStatus  uint32\n}\n\ntype CertUsageMatch struct {\n\tType  uint32\n\tUsage CertEnhKeyUsage\n}\n\ntype CertEnhKeyUsage struct {\n\tLength           uint32\n\tUsageIdentifiers **byte\n}\n\ntype CertChainPara struct {\n\tSize                         uint32\n\tRequestedUsage               CertUsageMatch\n\tRequstedIssuancePolicy       CertUsageMatch\n\tURLRetrievalTimeout          uint32\n\tCheckRevocationFreshnessTime uint32\n\tRevocationFreshnessTime      uint32\n\tCacheResync                  *Filetime\n}\n\ntype CertChainPolicyPara struct {\n\tSize            uint32\n\tFlags           uint32\n\tExtraPolicyPara Pointer\n}\n\ntype SSLExtraCertChainPolicyPara struct {\n\tSize       uint32\n\tAuthType   uint32\n\tChecks     uint32\n\tServerName *uint16\n}\n\ntype CertChainPolicyStatus struct {\n\tSize              uint32\n\tError             uint32\n\tChainIndex        uint32\n\tElementIndex      uint32\n\tExtraPolicyStatus Pointer\n}\n\ntype CertPolicyInfo struct {\n\tIdentifier      *byte\n\tCountQualifiers uint32\n\tQualifiers      *CertPolicyQualifierInfo\n}\n\ntype CertPoliciesInfo struct {\n\tCount       uint32\n\tPolicyInfos *CertPolicyInfo\n}\n\ntype CertPolicyQualifierInfo struct {\n\t// Not implemented\n}\n\ntype CertStrongSignPara struct {\n\tSize                      uint32\n\tInfoChoice                uint32\n\tInfoOrSerializedInfoOrOID unsafe.Pointer\n}\n\ntype CryptProtectPromptStruct struct {\n\tSize        uint32\n\tPromptFlags uint32\n\tApp         HWND\n\tPrompt      *uint16\n}\n\ntype CertChainFindByIssuerPara struct {\n\tSize                   uint32\n\tUsageIdentifier        *byte\n\tKeySpec                uint32\n\tAcquirePrivateKeyFlags uint32\n\tIssuerCount            uint32\n\tIssuer                 Pointer\n\tFindCallback           Pointer\n\tFindArg                Pointer\n\tIssuerChainIndex       *uint32\n\tIssuerElementIndex     *uint32\n}\n\ntype WinTrustData struct {\n\tSize                            uint32\n\tPolicyCallbackData              uintptr\n\tSIPClientData                   uintptr\n\tUIChoice                        uint32\n\tRevocationChecks                uint32\n\tUnionChoice                     uint32\n\tFileOrCatalogOrBlobOrSgnrOrCert unsafe.Pointer\n\tStateAction                     uint32\n\tStateData                       Handle\n\tURLReference                    *uint16\n\tProvFlags                       uint32\n\tUIContext                       uint32\n\tSignatureSettings               *WinTrustSignatureSettings\n}\n\ntype WinTrustFileInfo struct {\n\tSize         uint32\n\tFilePath     *uint16\n\tFile         Handle\n\tKnownSubject *GUID\n}\n\ntype WinTrustSignatureSettings struct {\n\tSize             uint32\n\tIndex            uint32\n\tFlags            uint32\n\tSecondarySigs    uint32\n\tVerifiedSigIndex uint32\n\tCryptoPolicy     *CertStrongSignPara\n}\n\nconst (\n\t// do not reorder\n\tHKEY_CLASSES_ROOT = 0x80000000 + iota\n\tHKEY_CURRENT_USER\n\tHKEY_LOCAL_MACHINE\n\tHKEY_USERS\n\tHKEY_PERFORMANCE_DATA\n\tHKEY_CURRENT_CONFIG\n\tHKEY_DYN_DATA\n\n\tKEY_QUERY_VALUE        = 1\n\tKEY_SET_VALUE          = 2\n\tKEY_CREATE_SUB_KEY     = 4\n\tKEY_ENUMERATE_SUB_KEYS = 8\n\tKEY_NOTIFY             = 16\n\tKEY_CREATE_LINK        = 32\n\tKEY_WRITE              = 0x20006\n\tKEY_EXECUTE            = 0x20019\n\tKEY_READ               = 0x20019\n\tKEY_WOW64_64KEY        = 0x0100\n\tKEY_WOW64_32KEY        = 0x0200\n\tKEY_ALL_ACCESS         = 0xf003f\n)\n\nconst (\n\t// do not reorder\n\tREG_NONE = iota\n\tREG_SZ\n\tREG_EXPAND_SZ\n\tREG_BINARY\n\tREG_DWORD_LITTLE_ENDIAN\n\tREG_DWORD_BIG_ENDIAN\n\tREG_LINK\n\tREG_MULTI_SZ\n\tREG_RESOURCE_LIST\n\tREG_FULL_RESOURCE_DESCRIPTOR\n\tREG_RESOURCE_REQUIREMENTS_LIST\n\tREG_QWORD_LITTLE_ENDIAN\n\tREG_DWORD = REG_DWORD_LITTLE_ENDIAN\n\tREG_QWORD = REG_QWORD_LITTLE_ENDIAN\n)\n\nconst (\n\tEVENT_MODIFY_STATE = 0x0002\n\tEVENT_ALL_ACCESS   = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3\n\n\tMUTANT_QUERY_STATE = 0x0001\n\tMUTANT_ALL_ACCESS  = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | MUTANT_QUERY_STATE\n\n\tSEMAPHORE_MODIFY_STATE = 0x0002\n\tSEMAPHORE_ALL_ACCESS   = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3\n\n\tTIMER_QUERY_STATE  = 0x0001\n\tTIMER_MODIFY_STATE = 0x0002\n\tTIMER_ALL_ACCESS   = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | TIMER_QUERY_STATE | TIMER_MODIFY_STATE\n\n\tMUTEX_MODIFY_STATE = MUTANT_QUERY_STATE\n\tMUTEX_ALL_ACCESS   = MUTANT_ALL_ACCESS\n\n\tCREATE_EVENT_MANUAL_RESET  = 0x1\n\tCREATE_EVENT_INITIAL_SET   = 0x2\n\tCREATE_MUTEX_INITIAL_OWNER = 0x1\n)\n\ntype AddrinfoW struct {\n\tFlags     int32\n\tFamily    int32\n\tSocktype  int32\n\tProtocol  int32\n\tAddrlen   uintptr\n\tCanonname *uint16\n\tAddr      uintptr\n\tNext      *AddrinfoW\n}\n\nconst (\n\tAI_PASSIVE     = 1\n\tAI_CANONNAME   = 2\n\tAI_NUMERICHOST = 4\n)\n\ntype GUID struct {\n\tData1 uint32\n\tData2 uint16\n\tData3 uint16\n\tData4 [8]byte\n}\n\nvar WSAID_CONNECTEX = GUID{\n\t0x25a207b9,\n\t0xddf3,\n\t0x4660,\n\t[8]byte{0x8e, 0xe9, 0x76, 0xe5, 0x8c, 0x74, 0x06, 0x3e},\n}\n\nvar WSAID_WSASENDMSG = GUID{\n\t0xa441e712,\n\t0x754f,\n\t0x43ca,\n\t[8]byte{0x84, 0xa7, 0x0d, 0xee, 0x44, 0xcf, 0x60, 0x6d},\n}\n\nvar WSAID_WSARECVMSG = GUID{\n\t0xf689d7c8,\n\t0x6f1f,\n\t0x436b,\n\t[8]byte{0x8a, 0x53, 0xe5, 0x4f, 0xe3, 0x51, 0xc3, 0x22},\n}\n\nconst (\n\tFILE_SKIP_COMPLETION_PORT_ON_SUCCESS = 1\n\tFILE_SKIP_SET_EVENT_ON_HANDLE        = 2\n)\n\nconst (\n\tWSAPROTOCOL_LEN    = 255\n\tMAX_PROTOCOL_CHAIN = 7\n\tBASE_PROTOCOL      = 1\n\tLAYERED_PROTOCOL   = 0\n\n\tXP1_CONNECTIONLESS           = 0x00000001\n\tXP1_GUARANTEED_DELIVERY      = 0x00000002\n\tXP1_GUARANTEED_ORDER         = 0x00000004\n\tXP1_MESSAGE_ORIENTED         = 0x00000008\n\tXP1_PSEUDO_STREAM            = 0x00000010\n\tXP1_GRACEFUL_CLOSE           = 0x00000020\n\tXP1_EXPEDITED_DATA           = 0x00000040\n\tXP1_CONNECT_DATA             = 0x00000080\n\tXP1_DISCONNECT_DATA          = 0x00000100\n\tXP1_SUPPORT_BROADCAST        = 0x00000200\n\tXP1_SUPPORT_MULTIPOINT       = 0x00000400\n\tXP1_MULTIPOINT_CONTROL_PLANE = 0x00000800\n\tXP1_MULTIPOINT_DATA_PLANE    = 0x00001000\n\tXP1_QOS_SUPPORTED            = 0x00002000\n\tXP1_UNI_SEND                 = 0x00008000\n\tXP1_UNI_RECV                 = 0x00010000\n\tXP1_IFS_HANDLES              = 0x00020000\n\tXP1_PARTIAL_MESSAGE          = 0x00040000\n\tXP1_SAN_SUPPORT_SDP          = 0x00080000\n\n\tPFL_MULTIPLE_PROTO_ENTRIES  = 0x00000001\n\tPFL_RECOMMENDED_PROTO_ENTRY = 0x00000002\n\tPFL_HIDDEN                  = 0x00000004\n\tPFL_MATCHES_PROTOCOL_ZERO   = 0x00000008\n\tPFL_NETWORKDIRECT_PROVIDER  = 0x00000010\n)\n\ntype WSAProtocolInfo struct {\n\tServiceFlags1     uint32\n\tServiceFlags2     uint32\n\tServiceFlags3     uint32\n\tServiceFlags4     uint32\n\tProviderFlags     uint32\n\tProviderId        GUID\n\tCatalogEntryId    uint32\n\tProtocolChain     WSAProtocolChain\n\tVersion           int32\n\tAddressFamily     int32\n\tMaxSockAddr       int32\n\tMinSockAddr       int32\n\tSocketType        int32\n\tProtocol          int32\n\tProtocolMaxOffset int32\n\tNetworkByteOrder  int32\n\tSecurityScheme    int32\n\tMessageSize       uint32\n\tProviderReserved  uint32\n\tProtocolName      [WSAPROTOCOL_LEN + 1]uint16\n}\n\ntype WSAProtocolChain struct {\n\tChainLen     int32\n\tChainEntries [MAX_PROTOCOL_CHAIN]uint32\n}\n\ntype TCPKeepalive struct {\n\tOnOff    uint32\n\tTime     uint32\n\tInterval uint32\n}\n\ntype symbolicLinkReparseBuffer struct {\n\tSubstituteNameOffset uint16\n\tSubstituteNameLength uint16\n\tPrintNameOffset      uint16\n\tPrintNameLength      uint16\n\tFlags                uint32\n\tPathBuffer           [1]uint16\n}\n\ntype mountPointReparseBuffer struct {\n\tSubstituteNameOffset uint16\n\tSubstituteNameLength uint16\n\tPrintNameOffset      uint16\n\tPrintNameLength      uint16\n\tPathBuffer           [1]uint16\n}\n\ntype reparseDataBuffer struct {\n\tReparseTag        uint32\n\tReparseDataLength uint16\n\tReserved          uint16\n\n\t// GenericReparseBuffer\n\treparseBuffer byte\n}\n\nconst (\n\tFSCTL_CREATE_OR_GET_OBJECT_ID             = 0x0900C0\n\tFSCTL_DELETE_OBJECT_ID                    = 0x0900A0\n\tFSCTL_DELETE_REPARSE_POINT                = 0x0900AC\n\tFSCTL_DUPLICATE_EXTENTS_TO_FILE           = 0x098344\n\tFSCTL_DUPLICATE_EXTENTS_TO_FILE_EX        = 0x0983E8\n\tFSCTL_FILESYSTEM_GET_STATISTICS           = 0x090060\n\tFSCTL_FILE_LEVEL_TRIM                     = 0x098208\n\tFSCTL_FIND_FILES_BY_SID                   = 0x09008F\n\tFSCTL_GET_COMPRESSION                     = 0x09003C\n\tFSCTL_GET_INTEGRITY_INFORMATION           = 0x09027C\n\tFSCTL_GET_NTFS_VOLUME_DATA                = 0x090064\n\tFSCTL_GET_REFS_VOLUME_DATA                = 0x0902D8\n\tFSCTL_GET_OBJECT_ID                       = 0x09009C\n\tFSCTL_GET_REPARSE_POINT                   = 0x0900A8\n\tFSCTL_GET_RETRIEVAL_POINTER_COUNT         = 0x09042B\n\tFSCTL_GET_RETRIEVAL_POINTERS              = 0x090073\n\tFSCTL_GET_RETRIEVAL_POINTERS_AND_REFCOUNT = 0x0903D3\n\tFSCTL_IS_PATHNAME_VALID                   = 0x09002C\n\tFSCTL_LMR_SET_LINK_TRACKING_INFORMATION   = 0x1400EC\n\tFSCTL_MARK_HANDLE                         = 0x0900FC\n\tFSCTL_OFFLOAD_READ                        = 0x094264\n\tFSCTL_OFFLOAD_WRITE                       = 0x098268\n\tFSCTL_PIPE_PEEK                           = 0x11400C\n\tFSCTL_PIPE_TRANSCEIVE                     = 0x11C017\n\tFSCTL_PIPE_WAIT                           = 0x110018\n\tFSCTL_QUERY_ALLOCATED_RANGES              = 0x0940CF\n\tFSCTL_QUERY_FAT_BPB                       = 0x090058\n\tFSCTL_QUERY_FILE_REGIONS                  = 0x090284\n\tFSCTL_QUERY_ON_DISK_VOLUME_INFO           = 0x09013C\n\tFSCTL_QUERY_SPARING_INFO                  = 0x090138\n\tFSCTL_READ_FILE_USN_DATA                  = 0x0900EB\n\tFSCTL_RECALL_FILE                         = 0x090117\n\tFSCTL_REFS_STREAM_SNAPSHOT_MANAGEMENT     = 0x090440\n\tFSCTL_SET_COMPRESSION                     = 0x09C040\n\tFSCTL_SET_DEFECT_MANAGEMENT               = 0x098134\n\tFSCTL_SET_ENCRYPTION                      = 0x0900D7\n\tFSCTL_SET_INTEGRITY_INFORMATION           = 0x09C280\n\tFSCTL_SET_INTEGRITY_INFORMATION_EX        = 0x090380\n\tFSCTL_SET_OBJECT_ID                       = 0x090098\n\tFSCTL_SET_OBJECT_ID_EXTENDED              = 0x0900BC\n\tFSCTL_SET_REPARSE_POINT                   = 0x0900A4\n\tFSCTL_SET_SPARSE                          = 0x0900C4\n\tFSCTL_SET_ZERO_DATA                       = 0x0980C8\n\tFSCTL_SET_ZERO_ON_DEALLOCATION            = 0x090194\n\tFSCTL_SIS_COPYFILE                        = 0x090100\n\tFSCTL_WRITE_USN_CLOSE_RECORD              = 0x0900EF\n\n\tMAXIMUM_REPARSE_DATA_BUFFER_SIZE = 16 * 1024\n\tIO_REPARSE_TAG_MOUNT_POINT       = 0xA0000003\n\tIO_REPARSE_TAG_SYMLINK           = 0xA000000C\n\tSYMBOLIC_LINK_FLAG_DIRECTORY     = 0x1\n)\n\nconst (\n\tComputerNameNetBIOS                   = 0\n\tComputerNameDnsHostname               = 1\n\tComputerNameDnsDomain                 = 2\n\tComputerNameDnsFullyQualified         = 3\n\tComputerNamePhysicalNetBIOS           = 4\n\tComputerNamePhysicalDnsHostname       = 5\n\tComputerNamePhysicalDnsDomain         = 6\n\tComputerNamePhysicalDnsFullyQualified = 7\n\tComputerNameMax                       = 8\n)\n\n// For MessageBox()\nconst (\n\tMB_OK                   = 0x00000000\n\tMB_OKCANCEL             = 0x00000001\n\tMB_ABORTRETRYIGNORE     = 0x00000002\n\tMB_YESNOCANCEL          = 0x00000003\n\tMB_YESNO                = 0x00000004\n\tMB_RETRYCANCEL          = 0x00000005\n\tMB_CANCELTRYCONTINUE    = 0x00000006\n\tMB_ICONHAND             = 0x00000010\n\tMB_ICONQUESTION         = 0x00000020\n\tMB_ICONEXCLAMATION      = 0x00000030\n\tMB_ICONASTERISK         = 0x00000040\n\tMB_USERICON             = 0x00000080\n\tMB_ICONWARNING          = MB_ICONEXCLAMATION\n\tMB_ICONERROR            = MB_ICONHAND\n\tMB_ICONINFORMATION      = MB_ICONASTERISK\n\tMB_ICONSTOP             = MB_ICONHAND\n\tMB_DEFBUTTON1           = 0x00000000\n\tMB_DEFBUTTON2           = 0x00000100\n\tMB_DEFBUTTON3           = 0x00000200\n\tMB_DEFBUTTON4           = 0x00000300\n\tMB_APPLMODAL            = 0x00000000\n\tMB_SYSTEMMODAL          = 0x00001000\n\tMB_TASKMODAL            = 0x00002000\n\tMB_HELP                 = 0x00004000\n\tMB_NOFOCUS              = 0x00008000\n\tMB_SETFOREGROUND        = 0x00010000\n\tMB_DEFAULT_DESKTOP_ONLY = 0x00020000\n\tMB_TOPMOST              = 0x00040000\n\tMB_RIGHT                = 0x00080000\n\tMB_RTLREADING           = 0x00100000\n\tMB_SERVICE_NOTIFICATION = 0x00200000\n)\n\nconst (\n\tMOVEFILE_REPLACE_EXISTING      = 0x1\n\tMOVEFILE_COPY_ALLOWED          = 0x2\n\tMOVEFILE_DELAY_UNTIL_REBOOT    = 0x4\n\tMOVEFILE_WRITE_THROUGH         = 0x8\n\tMOVEFILE_CREATE_HARDLINK       = 0x10\n\tMOVEFILE_FAIL_IF_NOT_TRACKABLE = 0x20\n)\n\n// Flags for GetAdaptersAddresses, see\n// https://learn.microsoft.com/en-us/windows/win32/api/iphlpapi/nf-iphlpapi-getadaptersaddresses.\nconst (\n\tGAA_FLAG_SKIP_UNICAST                = 0x1\n\tGAA_FLAG_SKIP_ANYCAST                = 0x2\n\tGAA_FLAG_SKIP_MULTICAST              = 0x4\n\tGAA_FLAG_SKIP_DNS_SERVER             = 0x8\n\tGAA_FLAG_INCLUDE_PREFIX              = 0x10\n\tGAA_FLAG_SKIP_FRIENDLY_NAME          = 0x20\n\tGAA_FLAG_INCLUDE_WINS_INFO           = 0x40\n\tGAA_FLAG_INCLUDE_GATEWAYS            = 0x80\n\tGAA_FLAG_INCLUDE_ALL_INTERFACES      = 0x100\n\tGAA_FLAG_INCLUDE_ALL_COMPARTMENTS    = 0x200\n\tGAA_FLAG_INCLUDE_TUNNEL_BINDINGORDER = 0x400\n)\n\nconst (\n\tIF_TYPE_OTHER              = 1\n\tIF_TYPE_ETHERNET_CSMACD    = 6\n\tIF_TYPE_ISO88025_TOKENRING = 9\n\tIF_TYPE_PPP                = 23\n\tIF_TYPE_SOFTWARE_LOOPBACK  = 24\n\tIF_TYPE_ATM                = 37\n\tIF_TYPE_IEEE80211          = 71\n\tIF_TYPE_TUNNEL             = 131\n\tIF_TYPE_IEEE1394           = 144\n)\n\n// Enum NL_PREFIX_ORIGIN for [IpAdapterUnicastAddress], see\n// https://learn.microsoft.com/en-us/windows/win32/api/nldef/ne-nldef-nl_prefix_origin\nconst (\n\tIpPrefixOriginOther               = 0\n\tIpPrefixOriginManual              = 1\n\tIpPrefixOriginWellKnown           = 2\n\tIpPrefixOriginDhcp                = 3\n\tIpPrefixOriginRouterAdvertisement = 4\n\tIpPrefixOriginUnchanged           = 1 << 4\n)\n\n// Enum NL_SUFFIX_ORIGIN for [IpAdapterUnicastAddress], see\n// https://learn.microsoft.com/en-us/windows/win32/api/nldef/ne-nldef-nl_suffix_origin\nconst (\n\tNlsoOther                      = 0\n\tNlsoManual                     = 1\n\tNlsoWellKnown                  = 2\n\tNlsoDhcp                       = 3\n\tNlsoLinkLayerAddress           = 4\n\tNlsoRandom                     = 5\n\tIpSuffixOriginOther            = 0\n\tIpSuffixOriginManual           = 1\n\tIpSuffixOriginWellKnown        = 2\n\tIpSuffixOriginDhcp             = 3\n\tIpSuffixOriginLinkLayerAddress = 4\n\tIpSuffixOriginRandom           = 5\n\tIpSuffixOriginUnchanged        = 1 << 4\n)\n\n// Enum NL_DAD_STATE for [IpAdapterUnicastAddress], see\n// https://learn.microsoft.com/en-us/windows/win32/api/nldef/ne-nldef-nl_dad_state\nconst (\n\tNldsInvalid          = 0\n\tNldsTentative        = 1\n\tNldsDuplicate        = 2\n\tNldsDeprecated       = 3\n\tNldsPreferred        = 4\n\tIpDadStateInvalid    = 0\n\tIpDadStateTentative  = 1\n\tIpDadStateDuplicate  = 2\n\tIpDadStateDeprecated = 3\n\tIpDadStatePreferred  = 4\n)\n\ntype SocketAddress struct {\n\tSockaddr       *syscall.RawSockaddrAny\n\tSockaddrLength int32\n}\n\n// IP returns an IPv4 or IPv6 address, or nil if the underlying SocketAddress is neither.\nfunc (addr *SocketAddress) IP() net.IP {\n\tif uintptr(addr.SockaddrLength) >= unsafe.Sizeof(RawSockaddrInet4{}) && addr.Sockaddr.Addr.Family == AF_INET {\n\t\treturn (*RawSockaddrInet4)(unsafe.Pointer(addr.Sockaddr)).Addr[:]\n\t} else if uintptr(addr.SockaddrLength) >= unsafe.Sizeof(RawSockaddrInet6{}) && addr.Sockaddr.Addr.Family == AF_INET6 {\n\t\treturn (*RawSockaddrInet6)(unsafe.Pointer(addr.Sockaddr)).Addr[:]\n\t}\n\treturn nil\n}\n\ntype IpAdapterUnicastAddress struct {\n\tLength             uint32\n\tFlags              uint32\n\tNext               *IpAdapterUnicastAddress\n\tAddress            SocketAddress\n\tPrefixOrigin       int32\n\tSuffixOrigin       int32\n\tDadState           int32\n\tValidLifetime      uint32\n\tPreferredLifetime  uint32\n\tLeaseLifetime      uint32\n\tOnLinkPrefixLength uint8\n}\n\ntype IpAdapterAnycastAddress struct {\n\tLength  uint32\n\tFlags   uint32\n\tNext    *IpAdapterAnycastAddress\n\tAddress SocketAddress\n}\n\ntype IpAdapterMulticastAddress struct {\n\tLength  uint32\n\tFlags   uint32\n\tNext    *IpAdapterMulticastAddress\n\tAddress SocketAddress\n}\n\ntype IpAdapterDnsServerAdapter struct {\n\tLength   uint32\n\tReserved uint32\n\tNext     *IpAdapterDnsServerAdapter\n\tAddress  SocketAddress\n}\n\ntype IpAdapterPrefix struct {\n\tLength       uint32\n\tFlags        uint32\n\tNext         *IpAdapterPrefix\n\tAddress      SocketAddress\n\tPrefixLength uint32\n}\n\ntype IpAdapterAddresses struct {\n\tLength                 uint32\n\tIfIndex                uint32\n\tNext                   *IpAdapterAddresses\n\tAdapterName            *byte\n\tFirstUnicastAddress    *IpAdapterUnicastAddress\n\tFirstAnycastAddress    *IpAdapterAnycastAddress\n\tFirstMulticastAddress  *IpAdapterMulticastAddress\n\tFirstDnsServerAddress  *IpAdapterDnsServerAdapter\n\tDnsSuffix              *uint16\n\tDescription            *uint16\n\tFriendlyName           *uint16\n\tPhysicalAddress        [syscall.MAX_ADAPTER_ADDRESS_LENGTH]byte\n\tPhysicalAddressLength  uint32\n\tFlags                  uint32\n\tMtu                    uint32\n\tIfType                 uint32\n\tOperStatus             uint32\n\tIpv6IfIndex            uint32\n\tZoneIndices            [16]uint32\n\tFirstPrefix            *IpAdapterPrefix\n\tTransmitLinkSpeed      uint64\n\tReceiveLinkSpeed       uint64\n\tFirstWinsServerAddress *IpAdapterWinsServerAddress\n\tFirstGatewayAddress    *IpAdapterGatewayAddress\n\tIpv4Metric             uint32\n\tIpv6Metric             uint32\n\tLuid                   uint64\n\tDhcpv4Server           SocketAddress\n\tCompartmentId          uint32\n\tNetworkGuid            GUID\n\tConnectionType         uint32\n\tTunnelType             uint32\n\tDhcpv6Server           SocketAddress\n\tDhcpv6ClientDuid       [MAX_DHCPV6_DUID_LENGTH]byte\n\tDhcpv6ClientDuidLength uint32\n\tDhcpv6Iaid             uint32\n\tFirstDnsSuffix         *IpAdapterDNSSuffix\n}\n\ntype IpAdapterWinsServerAddress struct {\n\tLength   uint32\n\tReserved uint32\n\tNext     *IpAdapterWinsServerAddress\n\tAddress  SocketAddress\n}\n\ntype IpAdapterGatewayAddress struct {\n\tLength   uint32\n\tReserved uint32\n\tNext     *IpAdapterGatewayAddress\n\tAddress  SocketAddress\n}\n\ntype IpAdapterDNSSuffix struct {\n\tNext   *IpAdapterDNSSuffix\n\tString [MAX_DNS_SUFFIX_STRING_LENGTH]uint16\n}\n\nconst (\n\tIfOperStatusUp             = 1\n\tIfOperStatusDown           = 2\n\tIfOperStatusTesting        = 3\n\tIfOperStatusUnknown        = 4\n\tIfOperStatusDormant        = 5\n\tIfOperStatusNotPresent     = 6\n\tIfOperStatusLowerLayerDown = 7\n)\n\nconst (\n\tIF_MAX_PHYS_ADDRESS_LENGTH = 32\n\tIF_MAX_STRING_SIZE         = 256\n)\n\n// MIB_IF_ENTRY_LEVEL enumeration from netioapi.h or\n// https://learn.microsoft.com/en-us/windows/win32/api/netioapi/nf-netioapi-getifentry2ex.\nconst (\n\tMibIfEntryNormal                  = 0\n\tMibIfEntryNormalWithoutStatistics = 2\n)\n\n// MIB_NOTIFICATION_TYPE enumeration from netioapi.h or\n// https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ne-netioapi-mib_notification_type.\nconst (\n\tMibParameterNotification = 0\n\tMibAddInstance           = 1\n\tMibDeleteInstance        = 2\n\tMibInitialNotification   = 3\n)\n\n// MibIfRow2 stores information about a particular interface. See\n// https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ns-netioapi-mib_if_row2.\ntype MibIfRow2 struct {\n\tInterfaceLuid               uint64\n\tInterfaceIndex              uint32\n\tInterfaceGuid               GUID\n\tAlias                       [IF_MAX_STRING_SIZE + 1]uint16\n\tDescription                 [IF_MAX_STRING_SIZE + 1]uint16\n\tPhysicalAddressLength       uint32\n\tPhysicalAddress             [IF_MAX_PHYS_ADDRESS_LENGTH]uint8\n\tPermanentPhysicalAddress    [IF_MAX_PHYS_ADDRESS_LENGTH]uint8\n\tMtu                         uint32\n\tType                        uint32\n\tTunnelType                  uint32\n\tMediaType                   uint32\n\tPhysicalMediumType          uint32\n\tAccessType                  uint32\n\tDirectionType               uint32\n\tInterfaceAndOperStatusFlags uint8\n\tOperStatus                  uint32\n\tAdminStatus                 uint32\n\tMediaConnectState           uint32\n\tNetworkGuid                 GUID\n\tConnectionType              uint32\n\tTransmitLinkSpeed           uint64\n\tReceiveLinkSpeed            uint64\n\tInOctets                    uint64\n\tInUcastPkts                 uint64\n\tInNUcastPkts                uint64\n\tInDiscards                  uint64\n\tInErrors                    uint64\n\tInUnknownProtos             uint64\n\tInUcastOctets               uint64\n\tInMulticastOctets           uint64\n\tInBroadcastOctets           uint64\n\tOutOctets                   uint64\n\tOutUcastPkts                uint64\n\tOutNUcastPkts               uint64\n\tOutDiscards                 uint64\n\tOutErrors                   uint64\n\tOutUcastOctets              uint64\n\tOutMulticastOctets          uint64\n\tOutBroadcastOctets          uint64\n\tOutQLen                     uint64\n}\n\n// MIB_UNICASTIPADDRESS_ROW stores information about a unicast IP address. See\n// https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ns-netioapi-mib_unicastipaddress_row.\ntype MibUnicastIpAddressRow struct {\n\tAddress            RawSockaddrInet6 // SOCKADDR_INET union\n\tInterfaceLuid      uint64\n\tInterfaceIndex     uint32\n\tPrefixOrigin       uint32\n\tSuffixOrigin       uint32\n\tValidLifetime      uint32\n\tPreferredLifetime  uint32\n\tOnLinkPrefixLength uint8\n\tSkipAsSource       uint8\n\tDadState           uint32\n\tScopeId            uint32\n\tCreationTimeStamp  Filetime\n}\n\nconst ScopeLevelCount = 16\n\n// MIB_IPINTERFACE_ROW stores interface management information for a particular IP address family on a network interface.\n// See https://learn.microsoft.com/en-us/windows/win32/api/netioapi/ns-netioapi-mib_ipinterface_row.\ntype MibIpInterfaceRow struct {\n\tFamily                               uint16\n\tInterfaceLuid                        uint64\n\tInterfaceIndex                       uint32\n\tMaxReassemblySize                    uint32\n\tInterfaceIdentifier                  uint64\n\tMinRouterAdvertisementInterval       uint32\n\tMaxRouterAdvertisementInterval       uint32\n\tAdvertisingEnabled                   uint8\n\tForwardingEnabled                    uint8\n\tWeakHostSend                         uint8\n\tWeakHostReceive                      uint8\n\tUseAutomaticMetric                   uint8\n\tUseNeighborUnreachabilityDetection   uint8\n\tManagedAddressConfigurationSupported uint8\n\tOtherStatefulConfigurationSupported  uint8\n\tAdvertiseDefaultRoute                uint8\n\tRouterDiscoveryBehavior              uint32\n\tDadTransmits                         uint32\n\tBaseReachableTime                    uint32\n\tRetransmitTime                       uint32\n\tPathMtuDiscoveryTimeout              uint32\n\tLinkLocalAddressBehavior             uint32\n\tLinkLocalAddressTimeout              uint32\n\tZoneIndices                          [ScopeLevelCount]uint32\n\tSitePrefixLength                     uint32\n\tMetric                               uint32\n\tNlMtu                                uint32\n\tConnected                            uint8\n\tSupportsWakeUpPatterns               uint8\n\tSupportsNeighborDiscovery            uint8\n\tSupportsRouterDiscovery              uint8\n\tReachableTime                        uint32\n\tTransmitOffload                      uint32\n\tReceiveOffload                       uint32\n\tDisableDefaultRoutes                 uint8\n}\n\n// Console related constants used for the mode parameter to SetConsoleMode. See\n// https://docs.microsoft.com/en-us/windows/console/setconsolemode for details.\n\nconst (\n\tENABLE_PROCESSED_INPUT        = 0x1\n\tENABLE_LINE_INPUT             = 0x2\n\tENABLE_ECHO_INPUT             = 0x4\n\tENABLE_WINDOW_INPUT           = 0x8\n\tENABLE_MOUSE_INPUT            = 0x10\n\tENABLE_INSERT_MODE            = 0x20\n\tENABLE_QUICK_EDIT_MODE        = 0x40\n\tENABLE_EXTENDED_FLAGS         = 0x80\n\tENABLE_AUTO_POSITION          = 0x100\n\tENABLE_VIRTUAL_TERMINAL_INPUT = 0x200\n\n\tENABLE_PROCESSED_OUTPUT            = 0x1\n\tENABLE_WRAP_AT_EOL_OUTPUT          = 0x2\n\tENABLE_VIRTUAL_TERMINAL_PROCESSING = 0x4\n\tDISABLE_NEWLINE_AUTO_RETURN        = 0x8\n\tENABLE_LVB_GRID_WORLDWIDE          = 0x10\n)\n\n// Pseudo console related constants used for the flags parameter to\n// CreatePseudoConsole. See: https://learn.microsoft.com/en-us/windows/console/createpseudoconsole\nconst (\n\tPSEUDOCONSOLE_INHERIT_CURSOR = 0x1\n)\n\ntype Coord struct {\n\tX int16\n\tY int16\n}\n\ntype SmallRect struct {\n\tLeft   int16\n\tTop    int16\n\tRight  int16\n\tBottom int16\n}\n\n// Used with GetConsoleScreenBuffer to retrieve information about a console\n// screen buffer. See\n// https://docs.microsoft.com/en-us/windows/console/console-screen-buffer-info-str\n// for details.\n\ntype ConsoleScreenBufferInfo struct {\n\tSize              Coord\n\tCursorPosition    Coord\n\tAttributes        uint16\n\tWindow            SmallRect\n\tMaximumWindowSize Coord\n}\n\nconst UNIX_PATH_MAX = 108 // defined in afunix.h\n\nconst (\n\t// flags for JOBOBJECT_BASIC_LIMIT_INFORMATION.LimitFlags\n\tJOB_OBJECT_LIMIT_ACTIVE_PROCESS             = 0x00000008\n\tJOB_OBJECT_LIMIT_AFFINITY                   = 0x00000010\n\tJOB_OBJECT_LIMIT_BREAKAWAY_OK               = 0x00000800\n\tJOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION = 0x00000400\n\tJOB_OBJECT_LIMIT_JOB_MEMORY                 = 0x00000200\n\tJOB_OBJECT_LIMIT_JOB_TIME                   = 0x00000004\n\tJOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE          = 0x00002000\n\tJOB_OBJECT_LIMIT_PRESERVE_JOB_TIME          = 0x00000040\n\tJOB_OBJECT_LIMIT_PRIORITY_CLASS             = 0x00000020\n\tJOB_OBJECT_LIMIT_PROCESS_MEMORY             = 0x00000100\n\tJOB_OBJECT_LIMIT_PROCESS_TIME               = 0x00000002\n\tJOB_OBJECT_LIMIT_SCHEDULING_CLASS           = 0x00000080\n\tJOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK        = 0x00001000\n\tJOB_OBJECT_LIMIT_SUBSET_AFFINITY            = 0x00004000\n\tJOB_OBJECT_LIMIT_WORKINGSET                 = 0x00000001\n)\n\ntype IO_COUNTERS struct {\n\tReadOperationCount  uint64\n\tWriteOperationCount uint64\n\tOtherOperationCount uint64\n\tReadTransferCount   uint64\n\tWriteTransferCount  uint64\n\tOtherTransferCount  uint64\n}\n\ntype JOBOBJECT_EXTENDED_LIMIT_INFORMATION struct {\n\tBasicLimitInformation JOBOBJECT_BASIC_LIMIT_INFORMATION\n\tIoInfo                IO_COUNTERS\n\tProcessMemoryLimit    uintptr\n\tJobMemoryLimit        uintptr\n\tPeakProcessMemoryUsed uintptr\n\tPeakJobMemoryUsed     uintptr\n}\n\nconst (\n\t// UIRestrictionsClass\n\tJOB_OBJECT_UILIMIT_DESKTOP          = 0x00000040\n\tJOB_OBJECT_UILIMIT_DISPLAYSETTINGS  = 0x00000010\n\tJOB_OBJECT_UILIMIT_EXITWINDOWS      = 0x00000080\n\tJOB_OBJECT_UILIMIT_GLOBALATOMS      = 0x00000020\n\tJOB_OBJECT_UILIMIT_HANDLES          = 0x00000001\n\tJOB_OBJECT_UILIMIT_READCLIPBOARD    = 0x00000002\n\tJOB_OBJECT_UILIMIT_SYSTEMPARAMETERS = 0x00000008\n\tJOB_OBJECT_UILIMIT_WRITECLIPBOARD   = 0x00000004\n)\n\ntype JOBOBJECT_BASIC_UI_RESTRICTIONS struct {\n\tUIRestrictionsClass uint32\n}\n\nconst (\n\t// JobObjectInformationClass for QueryInformationJobObject and SetInformationJobObject\n\tJobObjectAssociateCompletionPortInformation = 7\n\tJobObjectBasicAccountingInformation         = 1\n\tJobObjectBasicAndIoAccountingInformation    = 8\n\tJobObjectBasicLimitInformation              = 2\n\tJobObjectBasicProcessIdList                 = 3\n\tJobObjectBasicUIRestrictions                = 4\n\tJobObjectCpuRateControlInformation          = 15\n\tJobObjectEndOfJobTimeInformation            = 6\n\tJobObjectExtendedLimitInformation           = 9\n\tJobObjectGroupInformation                   = 11\n\tJobObjectGroupInformationEx                 = 14\n\tJobObjectLimitViolationInformation          = 13\n\tJobObjectLimitViolationInformation2         = 34\n\tJobObjectNetRateControlInformation          = 32\n\tJobObjectNotificationLimitInformation       = 12\n\tJobObjectNotificationLimitInformation2      = 33\n\tJobObjectSecurityLimitInformation           = 5\n)\n\nconst (\n\tKF_FLAG_DEFAULT                          = 0x00000000\n\tKF_FLAG_FORCE_APP_DATA_REDIRECTION       = 0x00080000\n\tKF_FLAG_RETURN_FILTER_REDIRECTION_TARGET = 0x00040000\n\tKF_FLAG_FORCE_PACKAGE_REDIRECTION        = 0x00020000\n\tKF_FLAG_NO_PACKAGE_REDIRECTION           = 0x00010000\n\tKF_FLAG_FORCE_APPCONTAINER_REDIRECTION   = 0x00020000\n\tKF_FLAG_NO_APPCONTAINER_REDIRECTION      = 0x00010000\n\tKF_FLAG_CREATE                           = 0x00008000\n\tKF_FLAG_DONT_VERIFY                      = 0x00004000\n\tKF_FLAG_DONT_UNEXPAND                    = 0x00002000\n\tKF_FLAG_NO_ALIAS                         = 0x00001000\n\tKF_FLAG_INIT                             = 0x00000800\n\tKF_FLAG_DEFAULT_PATH                     = 0x00000400\n\tKF_FLAG_NOT_PARENT_RELATIVE              = 0x00000200\n\tKF_FLAG_SIMPLE_IDLIST                    = 0x00000100\n\tKF_FLAG_ALIAS_ONLY                       = 0x80000000\n)\n\ntype OsVersionInfoEx struct {\n\tosVersionInfoSize uint32\n\tMajorVersion      uint32\n\tMinorVersion      uint32\n\tBuildNumber       uint32\n\tPlatformId        uint32\n\tCsdVersion        [128]uint16\n\tServicePackMajor  uint16\n\tServicePackMinor  uint16\n\tSuiteMask         uint16\n\tProductType       byte\n\t_                 byte\n}\n\nconst (\n\tEWX_LOGOFF          = 0x00000000\n\tEWX_SHUTDOWN        = 0x00000001\n\tEWX_REBOOT          = 0x00000002\n\tEWX_FORCE           = 0x00000004\n\tEWX_POWEROFF        = 0x00000008\n\tEWX_FORCEIFHUNG     = 0x00000010\n\tEWX_QUICKRESOLVE    = 0x00000020\n\tEWX_RESTARTAPPS     = 0x00000040\n\tEWX_HYBRID_SHUTDOWN = 0x00400000\n\tEWX_BOOTOPTIONS     = 0x01000000\n\n\tSHTDN_REASON_FLAG_COMMENT_REQUIRED          = 0x01000000\n\tSHTDN_REASON_FLAG_DIRTY_PROBLEM_ID_REQUIRED = 0x02000000\n\tSHTDN_REASON_FLAG_CLEAN_UI                  = 0x04000000\n\tSHTDN_REASON_FLAG_DIRTY_UI                  = 0x08000000\n\tSHTDN_REASON_FLAG_USER_DEFINED              = 0x40000000\n\tSHTDN_REASON_FLAG_PLANNED                   = 0x80000000\n\tSHTDN_REASON_MAJOR_OTHER                    = 0x00000000\n\tSHTDN_REASON_MAJOR_NONE                     = 0x00000000\n\tSHTDN_REASON_MAJOR_HARDWARE                 = 0x00010000\n\tSHTDN_REASON_MAJOR_OPERATINGSYSTEM          = 0x00020000\n\tSHTDN_REASON_MAJOR_SOFTWARE                 = 0x00030000\n\tSHTDN_REASON_MAJOR_APPLICATION              = 0x00040000\n\tSHTDN_REASON_MAJOR_SYSTEM                   = 0x00050000\n\tSHTDN_REASON_MAJOR_POWER                    = 0x00060000\n\tSHTDN_REASON_MAJOR_LEGACY_API               = 0x00070000\n\tSHTDN_REASON_MINOR_OTHER                    = 0x00000000\n\tSHTDN_REASON_MINOR_NONE                     = 0x000000ff\n\tSHTDN_REASON_MINOR_MAINTENANCE              = 0x00000001\n\tSHTDN_REASON_MINOR_INSTALLATION             = 0x00000002\n\tSHTDN_REASON_MINOR_UPGRADE                  = 0x00000003\n\tSHTDN_REASON_MINOR_RECONFIG                 = 0x00000004\n\tSHTDN_REASON_MINOR_HUNG                     = 0x00000005\n\tSHTDN_REASON_MINOR_UNSTABLE                 = 0x00000006\n\tSHTDN_REASON_MINOR_DISK                     = 0x00000007\n\tSHTDN_REASON_MINOR_PROCESSOR                = 0x00000008\n\tSHTDN_REASON_MINOR_NETWORKCARD              = 0x00000009\n\tSHTDN_REASON_MINOR_POWER_SUPPLY             = 0x0000000a\n\tSHTDN_REASON_MINOR_CORDUNPLUGGED            = 0x0000000b\n\tSHTDN_REASON_MINOR_ENVIRONMENT              = 0x0000000c\n\tSHTDN_REASON_MINOR_HARDWARE_DRIVER          = 0x0000000d\n\tSHTDN_REASON_MINOR_OTHERDRIVER              = 0x0000000e\n\tSHTDN_REASON_MINOR_BLUESCREEN               = 0x0000000F\n\tSHTDN_REASON_MINOR_SERVICEPACK              = 0x00000010\n\tSHTDN_REASON_MINOR_HOTFIX                   = 0x00000011\n\tSHTDN_REASON_MINOR_SECURITYFIX              = 0x00000012\n\tSHTDN_REASON_MINOR_SECURITY                 = 0x00000013\n\tSHTDN_REASON_MINOR_NETWORK_CONNECTIVITY     = 0x00000014\n\tSHTDN_REASON_MINOR_WMI                      = 0x00000015\n\tSHTDN_REASON_MINOR_SERVICEPACK_UNINSTALL    = 0x00000016\n\tSHTDN_REASON_MINOR_HOTFIX_UNINSTALL         = 0x00000017\n\tSHTDN_REASON_MINOR_SECURITYFIX_UNINSTALL    = 0x00000018\n\tSHTDN_REASON_MINOR_MMC                      = 0x00000019\n\tSHTDN_REASON_MINOR_SYSTEMRESTORE            = 0x0000001a\n\tSHTDN_REASON_MINOR_TERMSRV                  = 0x00000020\n\tSHTDN_REASON_MINOR_DC_PROMOTION             = 0x00000021\n\tSHTDN_REASON_MINOR_DC_DEMOTION              = 0x00000022\n\tSHTDN_REASON_UNKNOWN                        = SHTDN_REASON_MINOR_NONE\n\tSHTDN_REASON_LEGACY_API                     = SHTDN_REASON_MAJOR_LEGACY_API | SHTDN_REASON_FLAG_PLANNED\n\tSHTDN_REASON_VALID_BIT_MASK                 = 0xc0ffffff\n\n\tSHUTDOWN_NORETRY = 0x1\n)\n\n// Flags used for GetModuleHandleEx\nconst (\n\tGET_MODULE_HANDLE_EX_FLAG_PIN                = 1\n\tGET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT = 2\n\tGET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS       = 4\n)\n\n// MUI function flag values\nconst (\n\tMUI_LANGUAGE_ID                    = 0x4\n\tMUI_LANGUAGE_NAME                  = 0x8\n\tMUI_MERGE_SYSTEM_FALLBACK          = 0x10\n\tMUI_MERGE_USER_FALLBACK            = 0x20\n\tMUI_UI_FALLBACK                    = MUI_MERGE_SYSTEM_FALLBACK | MUI_MERGE_USER_FALLBACK\n\tMUI_THREAD_LANGUAGES               = 0x40\n\tMUI_CONSOLE_FILTER                 = 0x100\n\tMUI_COMPLEX_SCRIPT_FILTER          = 0x200\n\tMUI_RESET_FILTERS                  = 0x001\n\tMUI_USER_PREFERRED_UI_LANGUAGES    = 0x10\n\tMUI_USE_INSTALLED_LANGUAGES        = 0x20\n\tMUI_USE_SEARCH_ALL_LANGUAGES       = 0x40\n\tMUI_LANG_NEUTRAL_PE_FILE           = 0x100\n\tMUI_NON_LANG_NEUTRAL_FILE          = 0x200\n\tMUI_MACHINE_LANGUAGE_SETTINGS      = 0x400\n\tMUI_FILETYPE_NOT_LANGUAGE_NEUTRAL  = 0x001\n\tMUI_FILETYPE_LANGUAGE_NEUTRAL_MAIN = 0x002\n\tMUI_FILETYPE_LANGUAGE_NEUTRAL_MUI  = 0x004\n\tMUI_QUERY_TYPE                     = 0x001\n\tMUI_QUERY_CHECKSUM                 = 0x002\n\tMUI_QUERY_LANGUAGE_NAME            = 0x004\n\tMUI_QUERY_RESOURCE_TYPES           = 0x008\n\tMUI_FILEINFO_VERSION               = 0x001\n\n\tMUI_FULL_LANGUAGE      = 0x01\n\tMUI_PARTIAL_LANGUAGE   = 0x02\n\tMUI_LIP_LANGUAGE       = 0x04\n\tMUI_LANGUAGE_INSTALLED = 0x20\n\tMUI_LANGUAGE_LICENSED  = 0x40\n)\n\n// FILE_INFO_BY_HANDLE_CLASS constants for SetFileInformationByHandle/GetFileInformationByHandleEx\nconst (\n\tFileBasicInfo                  = 0\n\tFileStandardInfo               = 1\n\tFileNameInfo                   = 2\n\tFileRenameInfo                 = 3\n\tFileDispositionInfo            = 4\n\tFileAllocationInfo             = 5\n\tFileEndOfFileInfo              = 6\n\tFileStreamInfo                 = 7\n\tFileCompressionInfo            = 8\n\tFileAttributeTagInfo           = 9\n\tFileIdBothDirectoryInfo        = 10\n\tFileIdBothDirectoryRestartInfo = 11\n\tFileIoPriorityHintInfo         = 12\n\tFileRemoteProtocolInfo         = 13\n\tFileFullDirectoryInfo          = 14\n\tFileFullDirectoryRestartInfo   = 15\n\tFileStorageInfo                = 16\n\tFileAlignmentInfo              = 17\n\tFileIdInfo                     = 18\n\tFileIdExtdDirectoryInfo        = 19\n\tFileIdExtdDirectoryRestartInfo = 20\n\tFileDispositionInfoEx          = 21\n\tFileRenameInfoEx               = 22\n\tFileCaseSensitiveInfo          = 23\n\tFileNormalizedNameInfo         = 24\n)\n\n// LoadLibrary flags for determining from where to search for a DLL\nconst (\n\tDONT_RESOLVE_DLL_REFERENCES               = 0x1\n\tLOAD_LIBRARY_AS_DATAFILE                  = 0x2\n\tLOAD_WITH_ALTERED_SEARCH_PATH             = 0x8\n\tLOAD_IGNORE_CODE_AUTHZ_LEVEL              = 0x10\n\tLOAD_LIBRARY_AS_IMAGE_RESOURCE            = 0x20\n\tLOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE        = 0x40\n\tLOAD_LIBRARY_REQUIRE_SIGNED_TARGET        = 0x80\n\tLOAD_LIBRARY_SEARCH_DLL_LOAD_DIR          = 0x100\n\tLOAD_LIBRARY_SEARCH_APPLICATION_DIR       = 0x200\n\tLOAD_LIBRARY_SEARCH_USER_DIRS             = 0x400\n\tLOAD_LIBRARY_SEARCH_SYSTEM32              = 0x800\n\tLOAD_LIBRARY_SEARCH_DEFAULT_DIRS          = 0x1000\n\tLOAD_LIBRARY_SAFE_CURRENT_DIRS            = 0x00002000\n\tLOAD_LIBRARY_SEARCH_SYSTEM32_NO_FORWARDER = 0x00004000\n\tLOAD_LIBRARY_OS_INTEGRITY_CONTINUITY      = 0x00008000\n)\n\n// RegNotifyChangeKeyValue notifyFilter flags.\nconst (\n\t// REG_NOTIFY_CHANGE_NAME notifies the caller if a subkey is added or deleted.\n\tREG_NOTIFY_CHANGE_NAME = 0x00000001\n\n\t// REG_NOTIFY_CHANGE_ATTRIBUTES notifies the caller of changes to the attributes of the key, such as the security descriptor information.\n\tREG_NOTIFY_CHANGE_ATTRIBUTES = 0x00000002\n\n\t// REG_NOTIFY_CHANGE_LAST_SET notifies the caller of changes to a value of the key. This can include adding or deleting a value, or changing an existing value.\n\tREG_NOTIFY_CHANGE_LAST_SET = 0x00000004\n\n\t// REG_NOTIFY_CHANGE_SECURITY notifies the caller of changes to the security descriptor of the key.\n\tREG_NOTIFY_CHANGE_SECURITY = 0x00000008\n\n\t// REG_NOTIFY_THREAD_AGNOSTIC indicates that the lifetime of the registration must not be tied to the lifetime of the thread issuing the RegNotifyChangeKeyValue call. Note: This flag value is only supported in Windows 8 and later.\n\tREG_NOTIFY_THREAD_AGNOSTIC = 0x10000000\n)\n\ntype CommTimeouts struct {\n\tReadIntervalTimeout         uint32\n\tReadTotalTimeoutMultiplier  uint32\n\tReadTotalTimeoutConstant    uint32\n\tWriteTotalTimeoutMultiplier uint32\n\tWriteTotalTimeoutConstant   uint32\n}\n\n// NTUnicodeString is a UTF-16 string for NT native APIs, corresponding to UNICODE_STRING.\ntype NTUnicodeString struct {\n\tLength        uint16\n\tMaximumLength uint16\n\tBuffer        *uint16\n}\n\n// NTString is an ANSI string for NT native APIs, corresponding to STRING.\ntype NTString struct {\n\tLength        uint16\n\tMaximumLength uint16\n\tBuffer        *byte\n}\n\ntype LIST_ENTRY struct {\n\tFlink *LIST_ENTRY\n\tBlink *LIST_ENTRY\n}\n\ntype RUNTIME_FUNCTION struct {\n\tBeginAddress uint32\n\tEndAddress   uint32\n\tUnwindData   uint32\n}\n\ntype LDR_DATA_TABLE_ENTRY struct {\n\treserved1          [2]uintptr\n\tInMemoryOrderLinks LIST_ENTRY\n\treserved2          [2]uintptr\n\tDllBase            uintptr\n\treserved3          [2]uintptr\n\tFullDllName        NTUnicodeString\n\treserved4          [8]byte\n\treserved5          [3]uintptr\n\treserved6          uintptr\n\tTimeDateStamp      uint32\n}\n\ntype PEB_LDR_DATA struct {\n\treserved1               [8]byte\n\treserved2               [3]uintptr\n\tInMemoryOrderModuleList LIST_ENTRY\n}\n\ntype CURDIR struct {\n\tDosPath NTUnicodeString\n\tHandle  Handle\n}\n\ntype RTL_DRIVE_LETTER_CURDIR struct {\n\tFlags     uint16\n\tLength    uint16\n\tTimeStamp uint32\n\tDosPath   NTString\n}\n\ntype RTL_USER_PROCESS_PARAMETERS struct {\n\tMaximumLength, Length uint32\n\n\tFlags, DebugFlags uint32\n\n\tConsoleHandle                                Handle\n\tConsoleFlags                                 uint32\n\tStandardInput, StandardOutput, StandardError Handle\n\n\tCurrentDirectory CURDIR\n\tDllPath          NTUnicodeString\n\tImagePathName    NTUnicodeString\n\tCommandLine      NTUnicodeString\n\tEnvironment      unsafe.Pointer\n\n\tStartingX, StartingY, CountX, CountY, CountCharsX, CountCharsY, FillAttribute uint32\n\n\tWindowFlags, ShowWindowFlags                     uint32\n\tWindowTitle, DesktopInfo, ShellInfo, RuntimeData NTUnicodeString\n\tCurrentDirectories                               [32]RTL_DRIVE_LETTER_CURDIR\n\n\tEnvironmentSize, EnvironmentVersion uintptr\n\n\tPackageDependencyData unsafe.Pointer\n\tProcessGroupId        uint32\n\tLoaderThreads         uint32\n\n\tRedirectionDllName               NTUnicodeString\n\tHeapPartitionName                NTUnicodeString\n\tDefaultThreadpoolCpuSetMasks     uintptr\n\tDefaultThreadpoolCpuSetMaskCount uint32\n}\n\ntype PEB struct {\n\treserved1              [2]byte\n\tBeingDebugged          byte\n\tBitField               byte\n\treserved3              uintptr\n\tImageBaseAddress       uintptr\n\tLdr                    *PEB_LDR_DATA\n\tProcessParameters      *RTL_USER_PROCESS_PARAMETERS\n\treserved4              [3]uintptr\n\tAtlThunkSListPtr       uintptr\n\treserved5              uintptr\n\treserved6              uint32\n\treserved7              uintptr\n\treserved8              uint32\n\tAtlThunkSListPtr32     uint32\n\treserved9              [45]uintptr\n\treserved10             [96]byte\n\tPostProcessInitRoutine uintptr\n\treserved11             [128]byte\n\treserved12             [1]uintptr\n\tSessionId              uint32\n}\n\ntype OBJECT_ATTRIBUTES struct {\n\tLength             uint32\n\tRootDirectory      Handle\n\tObjectName         *NTUnicodeString\n\tAttributes         uint32\n\tSecurityDescriptor *SECURITY_DESCRIPTOR\n\tSecurityQoS        *SECURITY_QUALITY_OF_SERVICE\n}\n\n// Values for the Attributes member of OBJECT_ATTRIBUTES.\nconst (\n\tOBJ_INHERIT                       = 0x00000002\n\tOBJ_PERMANENT                     = 0x00000010\n\tOBJ_EXCLUSIVE                     = 0x00000020\n\tOBJ_CASE_INSENSITIVE              = 0x00000040\n\tOBJ_OPENIF                        = 0x00000080\n\tOBJ_OPENLINK                      = 0x00000100\n\tOBJ_KERNEL_HANDLE                 = 0x00000200\n\tOBJ_FORCE_ACCESS_CHECK            = 0x00000400\n\tOBJ_IGNORE_IMPERSONATED_DEVICEMAP = 0x00000800\n\tOBJ_DONT_REPARSE                  = 0x00001000\n\tOBJ_VALID_ATTRIBUTES              = 0x00001FF2\n)\n\ntype IO_STATUS_BLOCK struct {\n\tStatus      NTStatus\n\tInformation uintptr\n}\n\ntype RTLP_CURDIR_REF struct {\n\tRefCount int32\n\tHandle   Handle\n}\n\ntype RTL_RELATIVE_NAME struct {\n\tRelativeName        NTUnicodeString\n\tContainingDirectory Handle\n\tCurDirRef           *RTLP_CURDIR_REF\n}\n\nconst (\n\t// CreateDisposition flags for NtCreateFile and NtCreateNamedPipeFile.\n\tFILE_SUPERSEDE           = 0x00000000\n\tFILE_OPEN                = 0x00000001\n\tFILE_CREATE              = 0x00000002\n\tFILE_OPEN_IF             = 0x00000003\n\tFILE_OVERWRITE           = 0x00000004\n\tFILE_OVERWRITE_IF        = 0x00000005\n\tFILE_MAXIMUM_DISPOSITION = 0x00000005\n\n\t// CreateOptions flags for NtCreateFile and NtCreateNamedPipeFile.\n\tFILE_DIRECTORY_FILE            = 0x00000001\n\tFILE_WRITE_THROUGH             = 0x00000002\n\tFILE_SEQUENTIAL_ONLY           = 0x00000004\n\tFILE_NO_INTERMEDIATE_BUFFERING = 0x00000008\n\tFILE_SYNCHRONOUS_IO_ALERT      = 0x00000010\n\tFILE_SYNCHRONOUS_IO_NONALERT   = 0x00000020\n\tFILE_NON_DIRECTORY_FILE        = 0x00000040\n\tFILE_CREATE_TREE_CONNECTION    = 0x00000080\n\tFILE_COMPLETE_IF_OPLOCKED      = 0x00000100\n\tFILE_NO_EA_KNOWLEDGE           = 0x00000200\n\tFILE_OPEN_REMOTE_INSTANCE      = 0x00000400\n\tFILE_RANDOM_ACCESS             = 0x00000800\n\tFILE_DELETE_ON_CLOSE           = 0x00001000\n\tFILE_OPEN_BY_FILE_ID           = 0x00002000\n\tFILE_OPEN_FOR_BACKUP_INTENT    = 0x00004000\n\tFILE_NO_COMPRESSION            = 0x00008000\n\tFILE_OPEN_REQUIRING_OPLOCK     = 0x00010000\n\tFILE_DISALLOW_EXCLUSIVE        = 0x00020000\n\tFILE_RESERVE_OPFILTER          = 0x00100000\n\tFILE_OPEN_REPARSE_POINT        = 0x00200000\n\tFILE_OPEN_NO_RECALL            = 0x00400000\n\tFILE_OPEN_FOR_FREE_SPACE_QUERY = 0x00800000\n\n\t// Parameter constants for NtCreateNamedPipeFile.\n\n\tFILE_PIPE_BYTE_STREAM_TYPE = 0x00000000\n\tFILE_PIPE_MESSAGE_TYPE     = 0x00000001\n\n\tFILE_PIPE_ACCEPT_REMOTE_CLIENTS = 0x00000000\n\tFILE_PIPE_REJECT_REMOTE_CLIENTS = 0x00000002\n\n\tFILE_PIPE_TYPE_VALID_MASK = 0x00000003\n\n\tFILE_PIPE_BYTE_STREAM_MODE = 0x00000000\n\tFILE_PIPE_MESSAGE_MODE     = 0x00000001\n\n\tFILE_PIPE_QUEUE_OPERATION    = 0x00000000\n\tFILE_PIPE_COMPLETE_OPERATION = 0x00000001\n\n\tFILE_PIPE_INBOUND     = 0x00000000\n\tFILE_PIPE_OUTBOUND    = 0x00000001\n\tFILE_PIPE_FULL_DUPLEX = 0x00000002\n\n\tFILE_PIPE_DISCONNECTED_STATE = 0x00000001\n\tFILE_PIPE_LISTENING_STATE    = 0x00000002\n\tFILE_PIPE_CONNECTED_STATE    = 0x00000003\n\tFILE_PIPE_CLOSING_STATE      = 0x00000004\n\n\tFILE_PIPE_CLIENT_END = 0x00000000\n\tFILE_PIPE_SERVER_END = 0x00000001\n)\n\nconst (\n\t// FileInformationClass for NtSetInformationFile\n\tFileBasicInformation                         = 4\n\tFileRenameInformation                        = 10\n\tFileDispositionInformation                   = 13\n\tFilePositionInformation                      = 14\n\tFileEndOfFileInformation                     = 20\n\tFileValidDataLengthInformation               = 39\n\tFileShortNameInformation                     = 40\n\tFileIoPriorityHintInformation                = 43\n\tFileReplaceCompletionInformation             = 61\n\tFileDispositionInformationEx                 = 64\n\tFileCaseSensitiveInformation                 = 71\n\tFileLinkInformation                          = 72\n\tFileCaseSensitiveInformationForceAccessCheck = 75\n\tFileKnownFolderInformation                   = 76\n\n\t// Flags for FILE_RENAME_INFORMATION\n\tFILE_RENAME_REPLACE_IF_EXISTS                    = 0x00000001\n\tFILE_RENAME_POSIX_SEMANTICS                      = 0x00000002\n\tFILE_RENAME_SUPPRESS_PIN_STATE_INHERITANCE       = 0x00000004\n\tFILE_RENAME_SUPPRESS_STORAGE_RESERVE_INHERITANCE = 0x00000008\n\tFILE_RENAME_NO_INCREASE_AVAILABLE_SPACE          = 0x00000010\n\tFILE_RENAME_NO_DECREASE_AVAILABLE_SPACE          = 0x00000020\n\tFILE_RENAME_PRESERVE_AVAILABLE_SPACE             = 0x00000030\n\tFILE_RENAME_IGNORE_READONLY_ATTRIBUTE            = 0x00000040\n\tFILE_RENAME_FORCE_RESIZE_TARGET_SR               = 0x00000080\n\tFILE_RENAME_FORCE_RESIZE_SOURCE_SR               = 0x00000100\n\tFILE_RENAME_FORCE_RESIZE_SR                      = 0x00000180\n\n\t// Flags for FILE_DISPOSITION_INFORMATION_EX\n\tFILE_DISPOSITION_DO_NOT_DELETE             = 0x00000000\n\tFILE_DISPOSITION_DELETE                    = 0x00000001\n\tFILE_DISPOSITION_POSIX_SEMANTICS           = 0x00000002\n\tFILE_DISPOSITION_FORCE_IMAGE_SECTION_CHECK = 0x00000004\n\tFILE_DISPOSITION_ON_CLOSE                  = 0x00000008\n\tFILE_DISPOSITION_IGNORE_READONLY_ATTRIBUTE = 0x00000010\n\n\t// Flags for FILE_CASE_SENSITIVE_INFORMATION\n\tFILE_CS_FLAG_CASE_SENSITIVE_DIR = 0x00000001\n\n\t// Flags for FILE_LINK_INFORMATION\n\tFILE_LINK_REPLACE_IF_EXISTS                    = 0x00000001\n\tFILE_LINK_POSIX_SEMANTICS                      = 0x00000002\n\tFILE_LINK_SUPPRESS_STORAGE_RESERVE_INHERITANCE = 0x00000008\n\tFILE_LINK_NO_INCREASE_AVAILABLE_SPACE          = 0x00000010\n\tFILE_LINK_NO_DECREASE_AVAILABLE_SPACE          = 0x00000020\n\tFILE_LINK_PRESERVE_AVAILABLE_SPACE             = 0x00000030\n\tFILE_LINK_IGNORE_READONLY_ATTRIBUTE            = 0x00000040\n\tFILE_LINK_FORCE_RESIZE_TARGET_SR               = 0x00000080\n\tFILE_LINK_FORCE_RESIZE_SOURCE_SR               = 0x00000100\n\tFILE_LINK_FORCE_RESIZE_SR                      = 0x00000180\n)\n\n// ProcessInformationClasses for NtQueryInformationProcess and NtSetInformationProcess.\nconst (\n\tProcessBasicInformation = iota\n\tProcessQuotaLimits\n\tProcessIoCounters\n\tProcessVmCounters\n\tProcessTimes\n\tProcessBasePriority\n\tProcessRaisePriority\n\tProcessDebugPort\n\tProcessExceptionPort\n\tProcessAccessToken\n\tProcessLdtInformation\n\tProcessLdtSize\n\tProcessDefaultHardErrorMode\n\tProcessIoPortHandlers\n\tProcessPooledUsageAndLimits\n\tProcessWorkingSetWatch\n\tProcessUserModeIOPL\n\tProcessEnableAlignmentFaultFixup\n\tProcessPriorityClass\n\tProcessWx86Information\n\tProcessHandleCount\n\tProcessAffinityMask\n\tProcessPriorityBoost\n\tProcessDeviceMap\n\tProcessSessionInformation\n\tProcessForegroundInformation\n\tProcessWow64Information\n\tProcessImageFileName\n\tProcessLUIDDeviceMapsEnabled\n\tProcessBreakOnTermination\n\tProcessDebugObjectHandle\n\tProcessDebugFlags\n\tProcessHandleTracing\n\tProcessIoPriority\n\tProcessExecuteFlags\n\tProcessTlsInformation\n\tProcessCookie\n\tProcessImageInformation\n\tProcessCycleTime\n\tProcessPagePriority\n\tProcessInstrumentationCallback\n\tProcessThreadStackAllocation\n\tProcessWorkingSetWatchEx\n\tProcessImageFileNameWin32\n\tProcessImageFileMapping\n\tProcessAffinityUpdateMode\n\tProcessMemoryAllocationMode\n\tProcessGroupInformation\n\tProcessTokenVirtualizationEnabled\n\tProcessConsoleHostProcess\n\tProcessWindowInformation\n\tProcessHandleInformation\n\tProcessMitigationPolicy\n\tProcessDynamicFunctionTableInformation\n\tProcessHandleCheckingMode\n\tProcessKeepAliveCount\n\tProcessRevokeFileHandles\n\tProcessWorkingSetControl\n\tProcessHandleTable\n\tProcessCheckStackExtentsMode\n\tProcessCommandLineInformation\n\tProcessProtectionInformation\n\tProcessMemoryExhaustion\n\tProcessFaultInformation\n\tProcessTelemetryIdInformation\n\tProcessCommitReleaseInformation\n\tProcessDefaultCpuSetsInformation\n\tProcessAllowedCpuSetsInformation\n\tProcessSubsystemProcess\n\tProcessJobMemoryInformation\n\tProcessInPrivate\n\tProcessRaiseUMExceptionOnInvalidHandleClose\n\tProcessIumChallengeResponse\n\tProcessChildProcessInformation\n\tProcessHighGraphicsPriorityInformation\n\tProcessSubsystemInformation\n\tProcessEnergyValues\n\tProcessActivityThrottleState\n\tProcessActivityThrottlePolicy\n\tProcessWin32kSyscallFilterInformation\n\tProcessDisableSystemAllowedCpuSets\n\tProcessWakeInformation\n\tProcessEnergyTrackingState\n\tProcessManageWritesToExecutableMemory\n\tProcessCaptureTrustletLiveDump\n\tProcessTelemetryCoverage\n\tProcessEnclaveInformation\n\tProcessEnableReadWriteVmLogging\n\tProcessUptimeInformation\n\tProcessImageSection\n\tProcessDebugAuthInformation\n\tProcessSystemResourceManagement\n\tProcessSequenceNumber\n\tProcessLoaderDetour\n\tProcessSecurityDomainInformation\n\tProcessCombineSecurityDomainsInformation\n\tProcessEnableLogging\n\tProcessLeapSecondInformation\n\tProcessFiberShadowStackAllocation\n\tProcessFreeFiberShadowStackAllocation\n\tProcessAltSystemCallInformation\n\tProcessDynamicEHContinuationTargets\n\tProcessDynamicEnforcedCetCompatibleRanges\n)\n\ntype PROCESS_BASIC_INFORMATION struct {\n\tExitStatus                   NTStatus\n\tPebBaseAddress               *PEB\n\tAffinityMask                 uintptr\n\tBasePriority                 int32\n\tUniqueProcessId              uintptr\n\tInheritedFromUniqueProcessId uintptr\n}\n\ntype SYSTEM_PROCESS_INFORMATION struct {\n\tNextEntryOffset              uint32\n\tNumberOfThreads              uint32\n\tWorkingSetPrivateSize        int64\n\tHardFaultCount               uint32\n\tNumberOfThreadsHighWatermark uint32\n\tCycleTime                    uint64\n\tCreateTime                   int64\n\tUserTime                     int64\n\tKernelTime                   int64\n\tImageName                    NTUnicodeString\n\tBasePriority                 int32\n\tUniqueProcessID              uintptr\n\tInheritedFromUniqueProcessID uintptr\n\tHandleCount                  uint32\n\tSessionID                    uint32\n\tUniqueProcessKey             *uint32\n\tPeakVirtualSize              uintptr\n\tVirtualSize                  uintptr\n\tPageFaultCount               uint32\n\tPeakWorkingSetSize           uintptr\n\tWorkingSetSize               uintptr\n\tQuotaPeakPagedPoolUsage      uintptr\n\tQuotaPagedPoolUsage          uintptr\n\tQuotaPeakNonPagedPoolUsage   uintptr\n\tQuotaNonPagedPoolUsage       uintptr\n\tPagefileUsage                uintptr\n\tPeakPagefileUsage            uintptr\n\tPrivatePageCount             uintptr\n\tReadOperationCount           int64\n\tWriteOperationCount          int64\n\tOtherOperationCount          int64\n\tReadTransferCount            int64\n\tWriteTransferCount           int64\n\tOtherTransferCount           int64\n}\n\n// SystemInformationClasses for NtQuerySystemInformation and NtSetSystemInformation\nconst (\n\tSystemBasicInformation = iota\n\tSystemProcessorInformation\n\tSystemPerformanceInformation\n\tSystemTimeOfDayInformation\n\tSystemPathInformation\n\tSystemProcessInformation\n\tSystemCallCountInformation\n\tSystemDeviceInformation\n\tSystemProcessorPerformanceInformation\n\tSystemFlagsInformation\n\tSystemCallTimeInformation\n\tSystemModuleInformation\n\tSystemLocksInformation\n\tSystemStackTraceInformation\n\tSystemPagedPoolInformation\n\tSystemNonPagedPoolInformation\n\tSystemHandleInformation\n\tSystemObjectInformation\n\tSystemPageFileInformation\n\tSystemVdmInstemulInformation\n\tSystemVdmBopInformation\n\tSystemFileCacheInformation\n\tSystemPoolTagInformation\n\tSystemInterruptInformation\n\tSystemDpcBehaviorInformation\n\tSystemFullMemoryInformation\n\tSystemLoadGdiDriverInformation\n\tSystemUnloadGdiDriverInformation\n\tSystemTimeAdjustmentInformation\n\tSystemSummaryMemoryInformation\n\tSystemMirrorMemoryInformation\n\tSystemPerformanceTraceInformation\n\tsystemObsolete0\n\tSystemExceptionInformation\n\tSystemCrashDumpStateInformation\n\tSystemKernelDebuggerInformation\n\tSystemContextSwitchInformation\n\tSystemRegistryQuotaInformation\n\tSystemExtendServiceTableInformation\n\tSystemPrioritySeperation\n\tSystemVerifierAddDriverInformation\n\tSystemVerifierRemoveDriverInformation\n\tSystemProcessorIdleInformation\n\tSystemLegacyDriverInformation\n\tSystemCurrentTimeZoneInformation\n\tSystemLookasideInformation\n\tSystemTimeSlipNotification\n\tSystemSessionCreate\n\tSystemSessionDetach\n\tSystemSessionInformation\n\tSystemRangeStartInformation\n\tSystemVerifierInformation\n\tSystemVerifierThunkExtend\n\tSystemSessionProcessInformation\n\tSystemLoadGdiDriverInSystemSpace\n\tSystemNumaProcessorMap\n\tSystemPrefetcherInformation\n\tSystemExtendedProcessInformation\n\tSystemRecommendedSharedDataAlignment\n\tSystemComPlusPackage\n\tSystemNumaAvailableMemory\n\tSystemProcessorPowerInformation\n\tSystemEmulationBasicInformation\n\tSystemEmulationProcessorInformation\n\tSystemExtendedHandleInformation\n\tSystemLostDelayedWriteInformation\n\tSystemBigPoolInformation\n\tSystemSessionPoolTagInformation\n\tSystemSessionMappedViewInformation\n\tSystemHotpatchInformation\n\tSystemObjectSecurityMode\n\tSystemWatchdogTimerHandler\n\tSystemWatchdogTimerInformation\n\tSystemLogicalProcessorInformation\n\tSystemWow64SharedInformationObsolete\n\tSystemRegisterFirmwareTableInformationHandler\n\tSystemFirmwareTableInformation\n\tSystemModuleInformationEx\n\tSystemVerifierTriageInformation\n\tSystemSuperfetchInformation\n\tSystemMemoryListInformation\n\tSystemFileCacheInformationEx\n\tSystemThreadPriorityClientIdInformation\n\tSystemProcessorIdleCycleTimeInformation\n\tSystemVerifierCancellationInformation\n\tSystemProcessorPowerInformationEx\n\tSystemRefTraceInformation\n\tSystemSpecialPoolInformation\n\tSystemProcessIdInformation\n\tSystemErrorPortInformation\n\tSystemBootEnvironmentInformation\n\tSystemHypervisorInformation\n\tSystemVerifierInformationEx\n\tSystemTimeZoneInformation\n\tSystemImageFileExecutionOptionsInformation\n\tSystemCoverageInformation\n\tSystemPrefetchPatchInformation\n\tSystemVerifierFaultsInformation\n\tSystemSystemPartitionInformation\n\tSystemSystemDiskInformation\n\tSystemProcessorPerformanceDistribution\n\tSystemNumaProximityNodeInformation\n\tSystemDynamicTimeZoneInformation\n\tSystemCodeIntegrityInformation\n\tSystemProcessorMicrocodeUpdateInformation\n\tSystemProcessorBrandString\n\tSystemVirtualAddressInformation\n\tSystemLogicalProcessorAndGroupInformation\n\tSystemProcessorCycleTimeInformation\n\tSystemStoreInformation\n\tSystemRegistryAppendString\n\tSystemAitSamplingValue\n\tSystemVhdBootInformation\n\tSystemCpuQuotaInformation\n\tSystemNativeBasicInformation\n\tsystemSpare1\n\tSystemLowPriorityIoInformation\n\tSystemTpmBootEntropyInformation\n\tSystemVerifierCountersInformation\n\tSystemPagedPoolInformationEx\n\tSystemSystemPtesInformationEx\n\tSystemNodeDistanceInformation\n\tSystemAcpiAuditInformation\n\tSystemBasicPerformanceInformation\n\tSystemQueryPerformanceCounterInformation\n\tSystemSessionBigPoolInformation\n\tSystemBootGraphicsInformation\n\tSystemScrubPhysicalMemoryInformation\n\tSystemBadPageInformation\n\tSystemProcessorProfileControlArea\n\tSystemCombinePhysicalMemoryInformation\n\tSystemEntropyInterruptTimingCallback\n\tSystemConsoleInformation\n\tSystemPlatformBinaryInformation\n\tSystemThrottleNotificationInformation\n\tSystemHypervisorProcessorCountInformation\n\tSystemDeviceDataInformation\n\tSystemDeviceDataEnumerationInformation\n\tSystemMemoryTopologyInformation\n\tSystemMemoryChannelInformation\n\tSystemBootLogoInformation\n\tSystemProcessorPerformanceInformationEx\n\tsystemSpare0\n\tSystemSecureBootPolicyInformation\n\tSystemPageFileInformationEx\n\tSystemSecureBootInformation\n\tSystemEntropyInterruptTimingRawInformation\n\tSystemPortableWorkspaceEfiLauncherInformation\n\tSystemFullProcessInformation\n\tSystemKernelDebuggerInformationEx\n\tSystemBootMetadataInformation\n\tSystemSoftRebootInformation\n\tSystemElamCertificateInformation\n\tSystemOfflineDumpConfigInformation\n\tSystemProcessorFeaturesInformation\n\tSystemRegistryReconciliationInformation\n\tSystemEdidInformation\n\tSystemManufacturingInformation\n\tSystemEnergyEstimationConfigInformation\n\tSystemHypervisorDetailInformation\n\tSystemProcessorCycleStatsInformation\n\tSystemVmGenerationCountInformation\n\tSystemTrustedPlatformModuleInformation\n\tSystemKernelDebuggerFlags\n\tSystemCodeIntegrityPolicyInformation\n\tSystemIsolatedUserModeInformation\n\tSystemHardwareSecurityTestInterfaceResultsInformation\n\tSystemSingleModuleInformation\n\tSystemAllowedCpuSetsInformation\n\tSystemDmaProtectionInformation\n\tSystemInterruptCpuSetsInformation\n\tSystemSecureBootPolicyFullInformation\n\tSystemCodeIntegrityPolicyFullInformation\n\tSystemAffinitizedInterruptProcessorInformation\n\tSystemRootSiloInformation\n)\n\ntype RTL_PROCESS_MODULE_INFORMATION struct {\n\tSection          Handle\n\tMappedBase       uintptr\n\tImageBase        uintptr\n\tImageSize        uint32\n\tFlags            uint32\n\tLoadOrderIndex   uint16\n\tInitOrderIndex   uint16\n\tLoadCount        uint16\n\tOffsetToFileName uint16\n\tFullPathName     [256]byte\n}\n\ntype RTL_PROCESS_MODULES struct {\n\tNumberOfModules uint32\n\tModules         [1]RTL_PROCESS_MODULE_INFORMATION\n}\n\n// Constants for LocalAlloc flags.\nconst (\n\tLMEM_FIXED          = 0x0\n\tLMEM_MOVEABLE       = 0x2\n\tLMEM_NOCOMPACT      = 0x10\n\tLMEM_NODISCARD      = 0x20\n\tLMEM_ZEROINIT       = 0x40\n\tLMEM_MODIFY         = 0x80\n\tLMEM_DISCARDABLE    = 0xf00\n\tLMEM_VALID_FLAGS    = 0xf72\n\tLMEM_INVALID_HANDLE = 0x8000\n\tLHND                = LMEM_MOVEABLE | LMEM_ZEROINIT\n\tLPTR                = LMEM_FIXED | LMEM_ZEROINIT\n\tNONZEROLHND         = LMEM_MOVEABLE\n\tNONZEROLPTR         = LMEM_FIXED\n)\n\n// Constants for the CreateNamedPipe-family of functions.\nconst (\n\tPIPE_ACCESS_INBOUND  = 0x1\n\tPIPE_ACCESS_OUTBOUND = 0x2\n\tPIPE_ACCESS_DUPLEX   = 0x3\n\n\tPIPE_CLIENT_END = 0x0\n\tPIPE_SERVER_END = 0x1\n\n\tPIPE_WAIT                  = 0x0\n\tPIPE_NOWAIT                = 0x1\n\tPIPE_READMODE_BYTE         = 0x0\n\tPIPE_READMODE_MESSAGE      = 0x2\n\tPIPE_TYPE_BYTE             = 0x0\n\tPIPE_TYPE_MESSAGE          = 0x4\n\tPIPE_ACCEPT_REMOTE_CLIENTS = 0x0\n\tPIPE_REJECT_REMOTE_CLIENTS = 0x8\n\n\tPIPE_UNLIMITED_INSTANCES = 255\n)\n\n// Constants for security attributes when opening named pipes.\nconst (\n\tSECURITY_ANONYMOUS      = SecurityAnonymous << 16\n\tSECURITY_IDENTIFICATION = SecurityIdentification << 16\n\tSECURITY_IMPERSONATION  = SecurityImpersonation << 16\n\tSECURITY_DELEGATION     = SecurityDelegation << 16\n\n\tSECURITY_CONTEXT_TRACKING = 0x40000\n\tSECURITY_EFFECTIVE_ONLY   = 0x80000\n\n\tSECURITY_SQOS_PRESENT     = 0x100000\n\tSECURITY_VALID_SQOS_FLAGS = 0x1f0000\n)\n\n// ResourceID represents a 16-bit resource identifier, traditionally created with the MAKEINTRESOURCE macro.\ntype ResourceID uint16\n\n// ResourceIDOrString must be either a ResourceID, to specify a resource or resource type by ID,\n// or a string, to specify a resource or resource type by name.\ntype ResourceIDOrString interface{}\n\n// Predefined resource names and types.\nvar (\n\t// Predefined names.\n\tCREATEPROCESS_MANIFEST_RESOURCE_ID                 ResourceID = 1\n\tISOLATIONAWARE_MANIFEST_RESOURCE_ID                ResourceID = 2\n\tISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID ResourceID = 3\n\tISOLATIONPOLICY_MANIFEST_RESOURCE_ID               ResourceID = 4\n\tISOLATIONPOLICY_BROWSER_MANIFEST_RESOURCE_ID       ResourceID = 5\n\tMINIMUM_RESERVED_MANIFEST_RESOURCE_ID              ResourceID = 1  // inclusive\n\tMAXIMUM_RESERVED_MANIFEST_RESOURCE_ID              ResourceID = 16 // inclusive\n\n\t// Predefined types.\n\tRT_CURSOR       ResourceID = 1\n\tRT_BITMAP       ResourceID = 2\n\tRT_ICON         ResourceID = 3\n\tRT_MENU         ResourceID = 4\n\tRT_DIALOG       ResourceID = 5\n\tRT_STRING       ResourceID = 6\n\tRT_FONTDIR      ResourceID = 7\n\tRT_FONT         ResourceID = 8\n\tRT_ACCELERATOR  ResourceID = 9\n\tRT_RCDATA       ResourceID = 10\n\tRT_MESSAGETABLE ResourceID = 11\n\tRT_GROUP_CURSOR ResourceID = 12\n\tRT_GROUP_ICON   ResourceID = 14\n\tRT_VERSION      ResourceID = 16\n\tRT_DLGINCLUDE   ResourceID = 17\n\tRT_PLUGPLAY     ResourceID = 19\n\tRT_VXD          ResourceID = 20\n\tRT_ANICURSOR    ResourceID = 21\n\tRT_ANIICON      ResourceID = 22\n\tRT_HTML         ResourceID = 23\n\tRT_MANIFEST     ResourceID = 24\n)\n\ntype VS_FIXEDFILEINFO struct {\n\tSignature        uint32\n\tStrucVersion     uint32\n\tFileVersionMS    uint32\n\tFileVersionLS    uint32\n\tProductVersionMS uint32\n\tProductVersionLS uint32\n\tFileFlagsMask    uint32\n\tFileFlags        uint32\n\tFileOS           uint32\n\tFileType         uint32\n\tFileSubtype      uint32\n\tFileDateMS       uint32\n\tFileDateLS       uint32\n}\n\ntype COAUTHIDENTITY struct {\n\tUser           *uint16\n\tUserLength     uint32\n\tDomain         *uint16\n\tDomainLength   uint32\n\tPassword       *uint16\n\tPasswordLength uint32\n\tFlags          uint32\n}\n\ntype COAUTHINFO struct {\n\tAuthnSvc           uint32\n\tAuthzSvc           uint32\n\tServerPrincName    *uint16\n\tAuthnLevel         uint32\n\tImpersonationLevel uint32\n\tAuthIdentityData   *COAUTHIDENTITY\n\tCapabilities       uint32\n}\n\ntype COSERVERINFO struct {\n\tReserved1 uint32\n\tAame      *uint16\n\tAuthInfo  *COAUTHINFO\n\tReserved2 uint32\n}\n\ntype BIND_OPTS3 struct {\n\tCbStruct          uint32\n\tFlags             uint32\n\tMode              uint32\n\tTickCountDeadline uint32\n\tTrackFlags        uint32\n\tClassContext      uint32\n\tLocale            uint32\n\tServerInfo        *COSERVERINFO\n\tHwnd              HWND\n}\n\nconst (\n\tCLSCTX_INPROC_SERVER          = 0x1\n\tCLSCTX_INPROC_HANDLER         = 0x2\n\tCLSCTX_LOCAL_SERVER           = 0x4\n\tCLSCTX_INPROC_SERVER16        = 0x8\n\tCLSCTX_REMOTE_SERVER          = 0x10\n\tCLSCTX_INPROC_HANDLER16       = 0x20\n\tCLSCTX_RESERVED1              = 0x40\n\tCLSCTX_RESERVED2              = 0x80\n\tCLSCTX_RESERVED3              = 0x100\n\tCLSCTX_RESERVED4              = 0x200\n\tCLSCTX_NO_CODE_DOWNLOAD       = 0x400\n\tCLSCTX_RESERVED5              = 0x800\n\tCLSCTX_NO_CUSTOM_MARSHAL      = 0x1000\n\tCLSCTX_ENABLE_CODE_DOWNLOAD   = 0x2000\n\tCLSCTX_NO_FAILURE_LOG         = 0x4000\n\tCLSCTX_DISABLE_AAA            = 0x8000\n\tCLSCTX_ENABLE_AAA             = 0x10000\n\tCLSCTX_FROM_DEFAULT_CONTEXT   = 0x20000\n\tCLSCTX_ACTIVATE_32_BIT_SERVER = 0x40000\n\tCLSCTX_ACTIVATE_64_BIT_SERVER = 0x80000\n\tCLSCTX_ENABLE_CLOAKING        = 0x100000\n\tCLSCTX_APPCONTAINER           = 0x400000\n\tCLSCTX_ACTIVATE_AAA_AS_IU     = 0x800000\n\tCLSCTX_PS_DLL                 = 0x80000000\n\n\tCOINIT_MULTITHREADED     = 0x0\n\tCOINIT_APARTMENTTHREADED = 0x2\n\tCOINIT_DISABLE_OLE1DDE   = 0x4\n\tCOINIT_SPEED_OVER_MEMORY = 0x8\n)\n\n// Flag for QueryFullProcessImageName.\nconst PROCESS_NAME_NATIVE = 1\n\ntype ModuleInfo struct {\n\tBaseOfDll   uintptr\n\tSizeOfImage uint32\n\tEntryPoint  uintptr\n}\n\nconst ALL_PROCESSOR_GROUPS = 0xFFFF\n\ntype Rect struct {\n\tLeft   int32\n\tTop    int32\n\tRight  int32\n\tBottom int32\n}\n\ntype GUIThreadInfo struct {\n\tSize        uint32\n\tFlags       uint32\n\tActive      HWND\n\tFocus       HWND\n\tCapture     HWND\n\tMenuOwner   HWND\n\tMoveSize    HWND\n\tCaretHandle HWND\n\tCaretRect   Rect\n}\n\nconst (\n\tDWMWA_NCRENDERING_ENABLED            = 1\n\tDWMWA_NCRENDERING_POLICY             = 2\n\tDWMWA_TRANSITIONS_FORCEDISABLED      = 3\n\tDWMWA_ALLOW_NCPAINT                  = 4\n\tDWMWA_CAPTION_BUTTON_BOUNDS          = 5\n\tDWMWA_NONCLIENT_RTL_LAYOUT           = 6\n\tDWMWA_FORCE_ICONIC_REPRESENTATION    = 7\n\tDWMWA_FLIP3D_POLICY                  = 8\n\tDWMWA_EXTENDED_FRAME_BOUNDS          = 9\n\tDWMWA_HAS_ICONIC_BITMAP              = 10\n\tDWMWA_DISALLOW_PEEK                  = 11\n\tDWMWA_EXCLUDED_FROM_PEEK             = 12\n\tDWMWA_CLOAK                          = 13\n\tDWMWA_CLOAKED                        = 14\n\tDWMWA_FREEZE_REPRESENTATION          = 15\n\tDWMWA_PASSIVE_UPDATE_MODE            = 16\n\tDWMWA_USE_HOSTBACKDROPBRUSH          = 17\n\tDWMWA_USE_IMMERSIVE_DARK_MODE        = 20\n\tDWMWA_WINDOW_CORNER_PREFERENCE       = 33\n\tDWMWA_BORDER_COLOR                   = 34\n\tDWMWA_CAPTION_COLOR                  = 35\n\tDWMWA_TEXT_COLOR                     = 36\n\tDWMWA_VISIBLE_FRAME_BORDER_THICKNESS = 37\n)\n\ntype WSAQUERYSET struct {\n\tSize                uint32\n\tServiceInstanceName *uint16\n\tServiceClassId      *GUID\n\tVersion             *WSAVersion\n\tComment             *uint16\n\tNameSpace           uint32\n\tNSProviderId        *GUID\n\tContext             *uint16\n\tNumberOfProtocols   uint32\n\tAfpProtocols        *AFProtocols\n\tQueryString         *uint16\n\tNumberOfCsAddrs     uint32\n\tSaBuffer            *CSAddrInfo\n\tOutputFlags         uint32\n\tBlob                *BLOB\n}\n\ntype WSAVersion struct {\n\tVersion                 uint32\n\tEnumerationOfComparison int32\n}\n\ntype AFProtocols struct {\n\tAddressFamily int32\n\tProtocol      int32\n}\n\ntype CSAddrInfo struct {\n\tLocalAddr  SocketAddress\n\tRemoteAddr SocketAddress\n\tSocketType int32\n\tProtocol   int32\n}\n\ntype BLOB struct {\n\tSize     uint32\n\tBlobData *byte\n}\n\ntype ComStat struct {\n\tFlags    uint32\n\tCBInQue  uint32\n\tCBOutQue uint32\n}\n\ntype DCB struct {\n\tDCBlength  uint32\n\tBaudRate   uint32\n\tFlags      uint32\n\twReserved  uint16\n\tXonLim     uint16\n\tXoffLim    uint16\n\tByteSize   uint8\n\tParity     uint8\n\tStopBits   uint8\n\tXonChar    byte\n\tXoffChar   byte\n\tErrorChar  byte\n\tEofChar    byte\n\tEvtChar    byte\n\twReserved1 uint16\n}\n\n// Keyboard Layout Flags.\n// See https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-loadkeyboardlayoutw\nconst (\n\tKLF_ACTIVATE      = 0x00000001\n\tKLF_SUBSTITUTE_OK = 0x00000002\n\tKLF_REORDER       = 0x00000008\n\tKLF_REPLACELANG   = 0x00000010\n\tKLF_NOTELLSHELL   = 0x00000080\n\tKLF_SETFORPROCESS = 0x00000100\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/types_windows_386.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage windows\n\ntype WSAData struct {\n\tVersion      uint16\n\tHighVersion  uint16\n\tDescription  [WSADESCRIPTION_LEN + 1]byte\n\tSystemStatus [WSASYS_STATUS_LEN + 1]byte\n\tMaxSockets   uint16\n\tMaxUdpDg     uint16\n\tVendorInfo   *byte\n}\n\ntype Servent struct {\n\tName    *byte\n\tAliases **byte\n\tPort    uint16\n\tProto   *byte\n}\n\ntype JOBOBJECT_BASIC_LIMIT_INFORMATION struct {\n\tPerProcessUserTimeLimit int64\n\tPerJobUserTimeLimit     int64\n\tLimitFlags              uint32\n\tMinimumWorkingSetSize   uintptr\n\tMaximumWorkingSetSize   uintptr\n\tActiveProcessLimit      uint32\n\tAffinity                uintptr\n\tPriorityClass           uint32\n\tSchedulingClass         uint32\n\t_                       uint32 // pad to 8 byte boundary\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/types_windows_amd64.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage windows\n\ntype WSAData struct {\n\tVersion      uint16\n\tHighVersion  uint16\n\tMaxSockets   uint16\n\tMaxUdpDg     uint16\n\tVendorInfo   *byte\n\tDescription  [WSADESCRIPTION_LEN + 1]byte\n\tSystemStatus [WSASYS_STATUS_LEN + 1]byte\n}\n\ntype Servent struct {\n\tName    *byte\n\tAliases **byte\n\tProto   *byte\n\tPort    uint16\n}\n\ntype JOBOBJECT_BASIC_LIMIT_INFORMATION struct {\n\tPerProcessUserTimeLimit int64\n\tPerJobUserTimeLimit     int64\n\tLimitFlags              uint32\n\tMinimumWorkingSetSize   uintptr\n\tMaximumWorkingSetSize   uintptr\n\tActiveProcessLimit      uint32\n\tAffinity                uintptr\n\tPriorityClass           uint32\n\tSchedulingClass         uint32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/types_windows_arm.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage windows\n\ntype WSAData struct {\n\tVersion      uint16\n\tHighVersion  uint16\n\tDescription  [WSADESCRIPTION_LEN + 1]byte\n\tSystemStatus [WSASYS_STATUS_LEN + 1]byte\n\tMaxSockets   uint16\n\tMaxUdpDg     uint16\n\tVendorInfo   *byte\n}\n\ntype Servent struct {\n\tName    *byte\n\tAliases **byte\n\tPort    uint16\n\tProto   *byte\n}\n\ntype JOBOBJECT_BASIC_LIMIT_INFORMATION struct {\n\tPerProcessUserTimeLimit int64\n\tPerJobUserTimeLimit     int64\n\tLimitFlags              uint32\n\tMinimumWorkingSetSize   uintptr\n\tMaximumWorkingSetSize   uintptr\n\tActiveProcessLimit      uint32\n\tAffinity                uintptr\n\tPriorityClass           uint32\n\tSchedulingClass         uint32\n\t_                       uint32 // pad to 8 byte boundary\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/types_windows_arm64.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage windows\n\ntype WSAData struct {\n\tVersion      uint16\n\tHighVersion  uint16\n\tMaxSockets   uint16\n\tMaxUdpDg     uint16\n\tVendorInfo   *byte\n\tDescription  [WSADESCRIPTION_LEN + 1]byte\n\tSystemStatus [WSASYS_STATUS_LEN + 1]byte\n}\n\ntype Servent struct {\n\tName    *byte\n\tAliases **byte\n\tProto   *byte\n\tPort    uint16\n}\n\ntype JOBOBJECT_BASIC_LIMIT_INFORMATION struct {\n\tPerProcessUserTimeLimit int64\n\tPerJobUserTimeLimit     int64\n\tLimitFlags              uint32\n\tMinimumWorkingSetSize   uintptr\n\tMaximumWorkingSetSize   uintptr\n\tActiveProcessLimit      uint32\n\tAffinity                uintptr\n\tPriorityClass           uint32\n\tSchedulingClass         uint32\n}\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/zerrors_windows.go",
    "content": "// Code generated by 'mkerrors.bash'; DO NOT EDIT.\n\npackage windows\n\nimport \"syscall\"\n\nconst (\n\tFACILITY_NULL                                                                           = 0\n\tFACILITY_RPC                                                                            = 1\n\tFACILITY_DISPATCH                                                                       = 2\n\tFACILITY_STORAGE                                                                        = 3\n\tFACILITY_ITF                                                                            = 4\n\tFACILITY_WIN32                                                                          = 7\n\tFACILITY_WINDOWS                                                                        = 8\n\tFACILITY_SSPI                                                                           = 9\n\tFACILITY_SECURITY                                                                       = 9\n\tFACILITY_CONTROL                                                                        = 10\n\tFACILITY_CERT                                                                           = 11\n\tFACILITY_INTERNET                                                                       = 12\n\tFACILITY_MEDIASERVER                                                                    = 13\n\tFACILITY_MSMQ                                                                           = 14\n\tFACILITY_SETUPAPI                                                                       = 15\n\tFACILITY_SCARD                                                                          = 16\n\tFACILITY_COMPLUS                                                                        = 17\n\tFACILITY_AAF                                                                            = 18\n\tFACILITY_URT                                                                            = 19\n\tFACILITY_ACS                                                                            = 20\n\tFACILITY_DPLAY                                                                          = 21\n\tFACILITY_UMI                                                                            = 22\n\tFACILITY_SXS                                                                            = 23\n\tFACILITY_WINDOWS_CE                                                                     = 24\n\tFACILITY_HTTP                                                                           = 25\n\tFACILITY_USERMODE_COMMONLOG                                                             = 26\n\tFACILITY_WER                                                                            = 27\n\tFACILITY_USERMODE_FILTER_MANAGER                                                        = 31\n\tFACILITY_BACKGROUNDCOPY                                                                 = 32\n\tFACILITY_CONFIGURATION                                                                  = 33\n\tFACILITY_WIA                                                                            = 33\n\tFACILITY_STATE_MANAGEMENT                                                               = 34\n\tFACILITY_METADIRECTORY                                                                  = 35\n\tFACILITY_WINDOWSUPDATE                                                                  = 36\n\tFACILITY_DIRECTORYSERVICE                                                               = 37\n\tFACILITY_GRAPHICS                                                                       = 38\n\tFACILITY_SHELL                                                                          = 39\n\tFACILITY_NAP                                                                            = 39\n\tFACILITY_TPM_SERVICES                                                                   = 40\n\tFACILITY_TPM_SOFTWARE                                                                   = 41\n\tFACILITY_UI                                                                             = 42\n\tFACILITY_XAML                                                                           = 43\n\tFACILITY_ACTION_QUEUE                                                                   = 44\n\tFACILITY_PLA                                                                            = 48\n\tFACILITY_WINDOWS_SETUP                                                                  = 48\n\tFACILITY_FVE                                                                            = 49\n\tFACILITY_FWP                                                                            = 50\n\tFACILITY_WINRM                                                                          = 51\n\tFACILITY_NDIS                                                                           = 52\n\tFACILITY_USERMODE_HYPERVISOR                                                            = 53\n\tFACILITY_CMI                                                                            = 54\n\tFACILITY_USERMODE_VIRTUALIZATION                                                        = 55\n\tFACILITY_USERMODE_VOLMGR                                                                = 56\n\tFACILITY_BCD                                                                            = 57\n\tFACILITY_USERMODE_VHD                                                                   = 58\n\tFACILITY_USERMODE_HNS                                                                   = 59\n\tFACILITY_SDIAG                                                                          = 60\n\tFACILITY_WEBSERVICES                                                                    = 61\n\tFACILITY_WINPE                                                                          = 61\n\tFACILITY_WPN                                                                            = 62\n\tFACILITY_WINDOWS_STORE                                                                  = 63\n\tFACILITY_INPUT                                                                          = 64\n\tFACILITY_EAP                                                                            = 66\n\tFACILITY_WINDOWS_DEFENDER                                                               = 80\n\tFACILITY_OPC                                                                            = 81\n\tFACILITY_XPS                                                                            = 82\n\tFACILITY_MBN                                                                            = 84\n\tFACILITY_POWERSHELL                                                                     = 84\n\tFACILITY_RAS                                                                            = 83\n\tFACILITY_P2P_INT                                                                        = 98\n\tFACILITY_P2P                                                                            = 99\n\tFACILITY_DAF                                                                            = 100\n\tFACILITY_BLUETOOTH_ATT                                                                  = 101\n\tFACILITY_AUDIO                                                                          = 102\n\tFACILITY_STATEREPOSITORY                                                                = 103\n\tFACILITY_VISUALCPP                                                                      = 109\n\tFACILITY_SCRIPT                                                                         = 112\n\tFACILITY_PARSE                                                                          = 113\n\tFACILITY_BLB                                                                            = 120\n\tFACILITY_BLB_CLI                                                                        = 121\n\tFACILITY_WSBAPP                                                                         = 122\n\tFACILITY_BLBUI                                                                          = 128\n\tFACILITY_USN                                                                            = 129\n\tFACILITY_USERMODE_VOLSNAP                                                               = 130\n\tFACILITY_TIERING                                                                        = 131\n\tFACILITY_WSB_ONLINE                                                                     = 133\n\tFACILITY_ONLINE_ID                                                                      = 134\n\tFACILITY_DEVICE_UPDATE_AGENT                                                            = 135\n\tFACILITY_DRVSERVICING                                                                   = 136\n\tFACILITY_DLS                                                                            = 153\n\tFACILITY_DELIVERY_OPTIMIZATION                                                          = 208\n\tFACILITY_USERMODE_SPACES                                                                = 231\n\tFACILITY_USER_MODE_SECURITY_CORE                                                        = 232\n\tFACILITY_USERMODE_LICENSING                                                             = 234\n\tFACILITY_SOS                                                                            = 160\n\tFACILITY_DEBUGGERS                                                                      = 176\n\tFACILITY_SPP                                                                            = 256\n\tFACILITY_RESTORE                                                                        = 256\n\tFACILITY_DMSERVER                                                                       = 256\n\tFACILITY_DEPLOYMENT_SERVICES_SERVER                                                     = 257\n\tFACILITY_DEPLOYMENT_SERVICES_IMAGING                                                    = 258\n\tFACILITY_DEPLOYMENT_SERVICES_MANAGEMENT                                                 = 259\n\tFACILITY_DEPLOYMENT_SERVICES_UTIL                                                       = 260\n\tFACILITY_DEPLOYMENT_SERVICES_BINLSVC                                                    = 261\n\tFACILITY_DEPLOYMENT_SERVICES_PXE                                                        = 263\n\tFACILITY_DEPLOYMENT_SERVICES_TFTP                                                       = 264\n\tFACILITY_DEPLOYMENT_SERVICES_TRANSPORT_MANAGEMENT                                       = 272\n\tFACILITY_DEPLOYMENT_SERVICES_DRIVER_PROVISIONING                                        = 278\n\tFACILITY_DEPLOYMENT_SERVICES_MULTICAST_SERVER                                           = 289\n\tFACILITY_DEPLOYMENT_SERVICES_MULTICAST_CLIENT                                           = 290\n\tFACILITY_DEPLOYMENT_SERVICES_CONTENT_PROVIDER                                           = 293\n\tFACILITY_LINGUISTIC_SERVICES                                                            = 305\n\tFACILITY_AUDIOSTREAMING                                                                 = 1094\n\tFACILITY_ACCELERATOR                                                                    = 1536\n\tFACILITY_WMAAECMA                                                                       = 1996\n\tFACILITY_DIRECTMUSIC                                                                    = 2168\n\tFACILITY_DIRECT3D10                                                                     = 2169\n\tFACILITY_DXGI                                                                           = 2170\n\tFACILITY_DXGI_DDI                                                                       = 2171\n\tFACILITY_DIRECT3D11                                                                     = 2172\n\tFACILITY_DIRECT3D11_DEBUG                                                               = 2173\n\tFACILITY_DIRECT3D12                                                                     = 2174\n\tFACILITY_DIRECT3D12_DEBUG                                                               = 2175\n\tFACILITY_LEAP                                                                           = 2184\n\tFACILITY_AUDCLNT                                                                        = 2185\n\tFACILITY_WINCODEC_DWRITE_DWM                                                            = 2200\n\tFACILITY_WINML                                                                          = 2192\n\tFACILITY_DIRECT2D                                                                       = 2201\n\tFACILITY_DEFRAG                                                                         = 2304\n\tFACILITY_USERMODE_SDBUS                                                                 = 2305\n\tFACILITY_JSCRIPT                                                                        = 2306\n\tFACILITY_PIDGENX                                                                        = 2561\n\tFACILITY_EAS                                                                            = 85\n\tFACILITY_WEB                                                                            = 885\n\tFACILITY_WEB_SOCKET                                                                     = 886\n\tFACILITY_MOBILE                                                                         = 1793\n\tFACILITY_SQLITE                                                                         = 1967\n\tFACILITY_UTC                                                                            = 1989\n\tFACILITY_WEP                                                                            = 2049\n\tFACILITY_SYNCENGINE                                                                     = 2050\n\tFACILITY_XBOX                                                                           = 2339\n\tFACILITY_GAME                                                                           = 2340\n\tFACILITY_PIX                                                                            = 2748\n\tERROR_SUCCESS                                                             syscall.Errno = 0\n\tNO_ERROR                                                                                = 0\n\tSEC_E_OK                                                                  Handle        = 0x00000000\n\tERROR_INVALID_FUNCTION                                                    syscall.Errno = 1\n\tERROR_FILE_NOT_FOUND                                                      syscall.Errno = 2\n\tERROR_PATH_NOT_FOUND                                                      syscall.Errno = 3\n\tERROR_TOO_MANY_OPEN_FILES                                                 syscall.Errno = 4\n\tERROR_ACCESS_DENIED                                                       syscall.Errno = 5\n\tERROR_INVALID_HANDLE                                                      syscall.Errno = 6\n\tERROR_ARENA_TRASHED                                                       syscall.Errno = 7\n\tERROR_NOT_ENOUGH_MEMORY                                                   syscall.Errno = 8\n\tERROR_INVALID_BLOCK                                                       syscall.Errno = 9\n\tERROR_BAD_ENVIRONMENT                                                     syscall.Errno = 10\n\tERROR_BAD_FORMAT                                                          syscall.Errno = 11\n\tERROR_INVALID_ACCESS                                                      syscall.Errno = 12\n\tERROR_INVALID_DATA                                                        syscall.Errno = 13\n\tERROR_OUTOFMEMORY                                                         syscall.Errno = 14\n\tERROR_INVALID_DRIVE                                                       syscall.Errno = 15\n\tERROR_CURRENT_DIRECTORY                                                   syscall.Errno = 16\n\tERROR_NOT_SAME_DEVICE                                                     syscall.Errno = 17\n\tERROR_NO_MORE_FILES                                                       syscall.Errno = 18\n\tERROR_WRITE_PROTECT                                                       syscall.Errno = 19\n\tERROR_BAD_UNIT                                                            syscall.Errno = 20\n\tERROR_NOT_READY                                                           syscall.Errno = 21\n\tERROR_BAD_COMMAND                                                         syscall.Errno = 22\n\tERROR_CRC                                                                 syscall.Errno = 23\n\tERROR_BAD_LENGTH                                                          syscall.Errno = 24\n\tERROR_SEEK                                                                syscall.Errno = 25\n\tERROR_NOT_DOS_DISK                                                        syscall.Errno = 26\n\tERROR_SECTOR_NOT_FOUND                                                    syscall.Errno = 27\n\tERROR_OUT_OF_PAPER                                                        syscall.Errno = 28\n\tERROR_WRITE_FAULT                                                         syscall.Errno = 29\n\tERROR_READ_FAULT                                                          syscall.Errno = 30\n\tERROR_GEN_FAILURE                                                         syscall.Errno = 31\n\tERROR_SHARING_VIOLATION                                                   syscall.Errno = 32\n\tERROR_LOCK_VIOLATION                                                      syscall.Errno = 33\n\tERROR_WRONG_DISK                                                          syscall.Errno = 34\n\tERROR_SHARING_BUFFER_EXCEEDED                                             syscall.Errno = 36\n\tERROR_HANDLE_EOF                                                          syscall.Errno = 38\n\tERROR_HANDLE_DISK_FULL                                                    syscall.Errno = 39\n\tERROR_NOT_SUPPORTED                                                       syscall.Errno = 50\n\tERROR_REM_NOT_LIST                                                        syscall.Errno = 51\n\tERROR_DUP_NAME                                                            syscall.Errno = 52\n\tERROR_BAD_NETPATH                                                         syscall.Errno = 53\n\tERROR_NETWORK_BUSY                                                        syscall.Errno = 54\n\tERROR_DEV_NOT_EXIST                                                       syscall.Errno = 55\n\tERROR_TOO_MANY_CMDS                                                       syscall.Errno = 56\n\tERROR_ADAP_HDW_ERR                                                        syscall.Errno = 57\n\tERROR_BAD_NET_RESP                                                        syscall.Errno = 58\n\tERROR_UNEXP_NET_ERR                                                       syscall.Errno = 59\n\tERROR_BAD_REM_ADAP                                                        syscall.Errno = 60\n\tERROR_PRINTQ_FULL                                                         syscall.Errno = 61\n\tERROR_NO_SPOOL_SPACE                                                      syscall.Errno = 62\n\tERROR_PRINT_CANCELLED                                                     syscall.Errno = 63\n\tERROR_NETNAME_DELETED                                                     syscall.Errno = 64\n\tERROR_NETWORK_ACCESS_DENIED                                               syscall.Errno = 65\n\tERROR_BAD_DEV_TYPE                                                        syscall.Errno = 66\n\tERROR_BAD_NET_NAME                                                        syscall.Errno = 67\n\tERROR_TOO_MANY_NAMES                                                      syscall.Errno = 68\n\tERROR_TOO_MANY_SESS                                                       syscall.Errno = 69\n\tERROR_SHARING_PAUSED                                                      syscall.Errno = 70\n\tERROR_REQ_NOT_ACCEP                                                       syscall.Errno = 71\n\tERROR_REDIR_PAUSED                                                        syscall.Errno = 72\n\tERROR_FILE_EXISTS                                                         syscall.Errno = 80\n\tERROR_CANNOT_MAKE                                                         syscall.Errno = 82\n\tERROR_FAIL_I24                                                            syscall.Errno = 83\n\tERROR_OUT_OF_STRUCTURES                                                   syscall.Errno = 84\n\tERROR_ALREADY_ASSIGNED                                                    syscall.Errno = 85\n\tERROR_INVALID_PASSWORD                                                    syscall.Errno = 86\n\tERROR_INVALID_PARAMETER                                                   syscall.Errno = 87\n\tERROR_NET_WRITE_FAULT                                                     syscall.Errno = 88\n\tERROR_NO_PROC_SLOTS                                                       syscall.Errno = 89\n\tERROR_TOO_MANY_SEMAPHORES                                                 syscall.Errno = 100\n\tERROR_EXCL_SEM_ALREADY_OWNED                                              syscall.Errno = 101\n\tERROR_SEM_IS_SET                                                          syscall.Errno = 102\n\tERROR_TOO_MANY_SEM_REQUESTS                                               syscall.Errno = 103\n\tERROR_INVALID_AT_INTERRUPT_TIME                                           syscall.Errno = 104\n\tERROR_SEM_OWNER_DIED                                                      syscall.Errno = 105\n\tERROR_SEM_USER_LIMIT                                                      syscall.Errno = 106\n\tERROR_DISK_CHANGE                                                         syscall.Errno = 107\n\tERROR_DRIVE_LOCKED                                                        syscall.Errno = 108\n\tERROR_BROKEN_PIPE                                                         syscall.Errno = 109\n\tERROR_OPEN_FAILED                                                         syscall.Errno = 110\n\tERROR_BUFFER_OVERFLOW                                                     syscall.Errno = 111\n\tERROR_DISK_FULL                                                           syscall.Errno = 112\n\tERROR_NO_MORE_SEARCH_HANDLES                                              syscall.Errno = 113\n\tERROR_INVALID_TARGET_HANDLE                                               syscall.Errno = 114\n\tERROR_INVALID_CATEGORY                                                    syscall.Errno = 117\n\tERROR_INVALID_VERIFY_SWITCH                                               syscall.Errno = 118\n\tERROR_BAD_DRIVER_LEVEL                                                    syscall.Errno = 119\n\tERROR_CALL_NOT_IMPLEMENTED                                                syscall.Errno = 120\n\tERROR_SEM_TIMEOUT                                                         syscall.Errno = 121\n\tERROR_INSUFFICIENT_BUFFER                                                 syscall.Errno = 122\n\tERROR_INVALID_NAME                                                        syscall.Errno = 123\n\tERROR_INVALID_LEVEL                                                       syscall.Errno = 124\n\tERROR_NO_VOLUME_LABEL                                                     syscall.Errno = 125\n\tERROR_MOD_NOT_FOUND                                                       syscall.Errno = 126\n\tERROR_PROC_NOT_FOUND                                                      syscall.Errno = 127\n\tERROR_WAIT_NO_CHILDREN                                                    syscall.Errno = 128\n\tERROR_CHILD_NOT_COMPLETE                                                  syscall.Errno = 129\n\tERROR_DIRECT_ACCESS_HANDLE                                                syscall.Errno = 130\n\tERROR_NEGATIVE_SEEK                                                       syscall.Errno = 131\n\tERROR_SEEK_ON_DEVICE                                                      syscall.Errno = 132\n\tERROR_IS_JOIN_TARGET                                                      syscall.Errno = 133\n\tERROR_IS_JOINED                                                           syscall.Errno = 134\n\tERROR_IS_SUBSTED                                                          syscall.Errno = 135\n\tERROR_NOT_JOINED                                                          syscall.Errno = 136\n\tERROR_NOT_SUBSTED                                                         syscall.Errno = 137\n\tERROR_JOIN_TO_JOIN                                                        syscall.Errno = 138\n\tERROR_SUBST_TO_SUBST                                                      syscall.Errno = 139\n\tERROR_JOIN_TO_SUBST                                                       syscall.Errno = 140\n\tERROR_SUBST_TO_JOIN                                                       syscall.Errno = 141\n\tERROR_BUSY_DRIVE                                                          syscall.Errno = 142\n\tERROR_SAME_DRIVE                                                          syscall.Errno = 143\n\tERROR_DIR_NOT_ROOT                                                        syscall.Errno = 144\n\tERROR_DIR_NOT_EMPTY                                                       syscall.Errno = 145\n\tERROR_IS_SUBST_PATH                                                       syscall.Errno = 146\n\tERROR_IS_JOIN_PATH                                                        syscall.Errno = 147\n\tERROR_PATH_BUSY                                                           syscall.Errno = 148\n\tERROR_IS_SUBST_TARGET                                                     syscall.Errno = 149\n\tERROR_SYSTEM_TRACE                                                        syscall.Errno = 150\n\tERROR_INVALID_EVENT_COUNT                                                 syscall.Errno = 151\n\tERROR_TOO_MANY_MUXWAITERS                                                 syscall.Errno = 152\n\tERROR_INVALID_LIST_FORMAT                                                 syscall.Errno = 153\n\tERROR_LABEL_TOO_LONG                                                      syscall.Errno = 154\n\tERROR_TOO_MANY_TCBS                                                       syscall.Errno = 155\n\tERROR_SIGNAL_REFUSED                                                      syscall.Errno = 156\n\tERROR_DISCARDED                                                           syscall.Errno = 157\n\tERROR_NOT_LOCKED                                                          syscall.Errno = 158\n\tERROR_BAD_THREADID_ADDR                                                   syscall.Errno = 159\n\tERROR_BAD_ARGUMENTS                                                       syscall.Errno = 160\n\tERROR_BAD_PATHNAME                                                        syscall.Errno = 161\n\tERROR_SIGNAL_PENDING                                                      syscall.Errno = 162\n\tERROR_MAX_THRDS_REACHED                                                   syscall.Errno = 164\n\tERROR_LOCK_FAILED                                                         syscall.Errno = 167\n\tERROR_BUSY                                                                syscall.Errno = 170\n\tERROR_DEVICE_SUPPORT_IN_PROGRESS                                          syscall.Errno = 171\n\tERROR_CANCEL_VIOLATION                                                    syscall.Errno = 173\n\tERROR_ATOMIC_LOCKS_NOT_SUPPORTED                                          syscall.Errno = 174\n\tERROR_INVALID_SEGMENT_NUMBER                                              syscall.Errno = 180\n\tERROR_INVALID_ORDINAL                                                     syscall.Errno = 182\n\tERROR_ALREADY_EXISTS                                                      syscall.Errno = 183\n\tERROR_INVALID_FLAG_NUMBER                                                 syscall.Errno = 186\n\tERROR_SEM_NOT_FOUND                                                       syscall.Errno = 187\n\tERROR_INVALID_STARTING_CODESEG                                            syscall.Errno = 188\n\tERROR_INVALID_STACKSEG                                                    syscall.Errno = 189\n\tERROR_INVALID_MODULETYPE                                                  syscall.Errno = 190\n\tERROR_INVALID_EXE_SIGNATURE                                               syscall.Errno = 191\n\tERROR_EXE_MARKED_INVALID                                                  syscall.Errno = 192\n\tERROR_BAD_EXE_FORMAT                                                      syscall.Errno = 193\n\tERROR_ITERATED_DATA_EXCEEDS_64k                                           syscall.Errno = 194\n\tERROR_INVALID_MINALLOCSIZE                                                syscall.Errno = 195\n\tERROR_DYNLINK_FROM_INVALID_RING                                           syscall.Errno = 196\n\tERROR_IOPL_NOT_ENABLED                                                    syscall.Errno = 197\n\tERROR_INVALID_SEGDPL                                                      syscall.Errno = 198\n\tERROR_AUTODATASEG_EXCEEDS_64k                                             syscall.Errno = 199\n\tERROR_RING2SEG_MUST_BE_MOVABLE                                            syscall.Errno = 200\n\tERROR_RELOC_CHAIN_XEEDS_SEGLIM                                            syscall.Errno = 201\n\tERROR_INFLOOP_IN_RELOC_CHAIN                                              syscall.Errno = 202\n\tERROR_ENVVAR_NOT_FOUND                                                    syscall.Errno = 203\n\tERROR_NO_SIGNAL_SENT                                                      syscall.Errno = 205\n\tERROR_FILENAME_EXCED_RANGE                                                syscall.Errno = 206\n\tERROR_RING2_STACK_IN_USE                                                  syscall.Errno = 207\n\tERROR_META_EXPANSION_TOO_LONG                                             syscall.Errno = 208\n\tERROR_INVALID_SIGNAL_NUMBER                                               syscall.Errno = 209\n\tERROR_THREAD_1_INACTIVE                                                   syscall.Errno = 210\n\tERROR_LOCKED                                                              syscall.Errno = 212\n\tERROR_TOO_MANY_MODULES                                                    syscall.Errno = 214\n\tERROR_NESTING_NOT_ALLOWED                                                 syscall.Errno = 215\n\tERROR_EXE_MACHINE_TYPE_MISMATCH                                           syscall.Errno = 216\n\tERROR_EXE_CANNOT_MODIFY_SIGNED_BINARY                                     syscall.Errno = 217\n\tERROR_EXE_CANNOT_MODIFY_STRONG_SIGNED_BINARY                              syscall.Errno = 218\n\tERROR_FILE_CHECKED_OUT                                                    syscall.Errno = 220\n\tERROR_CHECKOUT_REQUIRED                                                   syscall.Errno = 221\n\tERROR_BAD_FILE_TYPE                                                       syscall.Errno = 222\n\tERROR_FILE_TOO_LARGE                                                      syscall.Errno = 223\n\tERROR_FORMS_AUTH_REQUIRED                                                 syscall.Errno = 224\n\tERROR_VIRUS_INFECTED                                                      syscall.Errno = 225\n\tERROR_VIRUS_DELETED                                                       syscall.Errno = 226\n\tERROR_PIPE_LOCAL                                                          syscall.Errno = 229\n\tERROR_BAD_PIPE                                                            syscall.Errno = 230\n\tERROR_PIPE_BUSY                                                           syscall.Errno = 231\n\tERROR_NO_DATA                                                             syscall.Errno = 232\n\tERROR_PIPE_NOT_CONNECTED                                                  syscall.Errno = 233\n\tERROR_MORE_DATA                                                           syscall.Errno = 234\n\tERROR_NO_WORK_DONE                                                        syscall.Errno = 235\n\tERROR_VC_DISCONNECTED                                                     syscall.Errno = 240\n\tERROR_INVALID_EA_NAME                                                     syscall.Errno = 254\n\tERROR_EA_LIST_INCONSISTENT                                                syscall.Errno = 255\n\tWAIT_TIMEOUT                                                              syscall.Errno = 258\n\tERROR_NO_MORE_ITEMS                                                       syscall.Errno = 259\n\tERROR_CANNOT_COPY                                                         syscall.Errno = 266\n\tERROR_DIRECTORY                                                           syscall.Errno = 267\n\tERROR_EAS_DIDNT_FIT                                                       syscall.Errno = 275\n\tERROR_EA_FILE_CORRUPT                                                     syscall.Errno = 276\n\tERROR_EA_TABLE_FULL                                                       syscall.Errno = 277\n\tERROR_INVALID_EA_HANDLE                                                   syscall.Errno = 278\n\tERROR_EAS_NOT_SUPPORTED                                                   syscall.Errno = 282\n\tERROR_NOT_OWNER                                                           syscall.Errno = 288\n\tERROR_TOO_MANY_POSTS                                                      syscall.Errno = 298\n\tERROR_PARTIAL_COPY                                                        syscall.Errno = 299\n\tERROR_OPLOCK_NOT_GRANTED                                                  syscall.Errno = 300\n\tERROR_INVALID_OPLOCK_PROTOCOL                                             syscall.Errno = 301\n\tERROR_DISK_TOO_FRAGMENTED                                                 syscall.Errno = 302\n\tERROR_DELETE_PENDING                                                      syscall.Errno = 303\n\tERROR_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING                syscall.Errno = 304\n\tERROR_SHORT_NAMES_NOT_ENABLED_ON_VOLUME                                   syscall.Errno = 305\n\tERROR_SECURITY_STREAM_IS_INCONSISTENT                                     syscall.Errno = 306\n\tERROR_INVALID_LOCK_RANGE                                                  syscall.Errno = 307\n\tERROR_IMAGE_SUBSYSTEM_NOT_PRESENT                                         syscall.Errno = 308\n\tERROR_NOTIFICATION_GUID_ALREADY_DEFINED                                   syscall.Errno = 309\n\tERROR_INVALID_EXCEPTION_HANDLER                                           syscall.Errno = 310\n\tERROR_DUPLICATE_PRIVILEGES                                                syscall.Errno = 311\n\tERROR_NO_RANGES_PROCESSED                                                 syscall.Errno = 312\n\tERROR_NOT_ALLOWED_ON_SYSTEM_FILE                                          syscall.Errno = 313\n\tERROR_DISK_RESOURCES_EXHAUSTED                                            syscall.Errno = 314\n\tERROR_INVALID_TOKEN                                                       syscall.Errno = 315\n\tERROR_DEVICE_FEATURE_NOT_SUPPORTED                                        syscall.Errno = 316\n\tERROR_MR_MID_NOT_FOUND                                                    syscall.Errno = 317\n\tERROR_SCOPE_NOT_FOUND                                                     syscall.Errno = 318\n\tERROR_UNDEFINED_SCOPE                                                     syscall.Errno = 319\n\tERROR_INVALID_CAP                                                         syscall.Errno = 320\n\tERROR_DEVICE_UNREACHABLE                                                  syscall.Errno = 321\n\tERROR_DEVICE_NO_RESOURCES                                                 syscall.Errno = 322\n\tERROR_DATA_CHECKSUM_ERROR                                                 syscall.Errno = 323\n\tERROR_INTERMIXED_KERNEL_EA_OPERATION                                      syscall.Errno = 324\n\tERROR_FILE_LEVEL_TRIM_NOT_SUPPORTED                                       syscall.Errno = 326\n\tERROR_OFFSET_ALIGNMENT_VIOLATION                                          syscall.Errno = 327\n\tERROR_INVALID_FIELD_IN_PARAMETER_LIST                                     syscall.Errno = 328\n\tERROR_OPERATION_IN_PROGRESS                                               syscall.Errno = 329\n\tERROR_BAD_DEVICE_PATH                                                     syscall.Errno = 330\n\tERROR_TOO_MANY_DESCRIPTORS                                                syscall.Errno = 331\n\tERROR_SCRUB_DATA_DISABLED                                                 syscall.Errno = 332\n\tERROR_NOT_REDUNDANT_STORAGE                                               syscall.Errno = 333\n\tERROR_RESIDENT_FILE_NOT_SUPPORTED                                         syscall.Errno = 334\n\tERROR_COMPRESSED_FILE_NOT_SUPPORTED                                       syscall.Errno = 335\n\tERROR_DIRECTORY_NOT_SUPPORTED                                             syscall.Errno = 336\n\tERROR_NOT_READ_FROM_COPY                                                  syscall.Errno = 337\n\tERROR_FT_WRITE_FAILURE                                                    syscall.Errno = 338\n\tERROR_FT_DI_SCAN_REQUIRED                                                 syscall.Errno = 339\n\tERROR_INVALID_KERNEL_INFO_VERSION                                         syscall.Errno = 340\n\tERROR_INVALID_PEP_INFO_VERSION                                            syscall.Errno = 341\n\tERROR_OBJECT_NOT_EXTERNALLY_BACKED                                        syscall.Errno = 342\n\tERROR_EXTERNAL_BACKING_PROVIDER_UNKNOWN                                   syscall.Errno = 343\n\tERROR_COMPRESSION_NOT_BENEFICIAL                                          syscall.Errno = 344\n\tERROR_STORAGE_TOPOLOGY_ID_MISMATCH                                        syscall.Errno = 345\n\tERROR_BLOCKED_BY_PARENTAL_CONTROLS                                        syscall.Errno = 346\n\tERROR_BLOCK_TOO_MANY_REFERENCES                                           syscall.Errno = 347\n\tERROR_MARKED_TO_DISALLOW_WRITES                                           syscall.Errno = 348\n\tERROR_ENCLAVE_FAILURE                                                     syscall.Errno = 349\n\tERROR_FAIL_NOACTION_REBOOT                                                syscall.Errno = 350\n\tERROR_FAIL_SHUTDOWN                                                       syscall.Errno = 351\n\tERROR_FAIL_RESTART                                                        syscall.Errno = 352\n\tERROR_MAX_SESSIONS_REACHED                                                syscall.Errno = 353\n\tERROR_NETWORK_ACCESS_DENIED_EDP                                           syscall.Errno = 354\n\tERROR_DEVICE_HINT_NAME_BUFFER_TOO_SMALL                                   syscall.Errno = 355\n\tERROR_EDP_POLICY_DENIES_OPERATION                                         syscall.Errno = 356\n\tERROR_EDP_DPL_POLICY_CANT_BE_SATISFIED                                    syscall.Errno = 357\n\tERROR_CLOUD_FILE_SYNC_ROOT_METADATA_CORRUPT                               syscall.Errno = 358\n\tERROR_DEVICE_IN_MAINTENANCE                                               syscall.Errno = 359\n\tERROR_NOT_SUPPORTED_ON_DAX                                                syscall.Errno = 360\n\tERROR_DAX_MAPPING_EXISTS                                                  syscall.Errno = 361\n\tERROR_CLOUD_FILE_PROVIDER_NOT_RUNNING                                     syscall.Errno = 362\n\tERROR_CLOUD_FILE_METADATA_CORRUPT                                         syscall.Errno = 363\n\tERROR_CLOUD_FILE_METADATA_TOO_LARGE                                       syscall.Errno = 364\n\tERROR_CLOUD_FILE_PROPERTY_BLOB_TOO_LARGE                                  syscall.Errno = 365\n\tERROR_CLOUD_FILE_PROPERTY_BLOB_CHECKSUM_MISMATCH                          syscall.Errno = 366\n\tERROR_CHILD_PROCESS_BLOCKED                                               syscall.Errno = 367\n\tERROR_STORAGE_LOST_DATA_PERSISTENCE                                       syscall.Errno = 368\n\tERROR_FILE_SYSTEM_VIRTUALIZATION_UNAVAILABLE                              syscall.Errno = 369\n\tERROR_FILE_SYSTEM_VIRTUALIZATION_METADATA_CORRUPT                         syscall.Errno = 370\n\tERROR_FILE_SYSTEM_VIRTUALIZATION_BUSY                                     syscall.Errno = 371\n\tERROR_FILE_SYSTEM_VIRTUALIZATION_PROVIDER_UNKNOWN                         syscall.Errno = 372\n\tERROR_GDI_HANDLE_LEAK                                                     syscall.Errno = 373\n\tERROR_CLOUD_FILE_TOO_MANY_PROPERTY_BLOBS                                  syscall.Errno = 374\n\tERROR_CLOUD_FILE_PROPERTY_VERSION_NOT_SUPPORTED                           syscall.Errno = 375\n\tERROR_NOT_A_CLOUD_FILE                                                    syscall.Errno = 376\n\tERROR_CLOUD_FILE_NOT_IN_SYNC                                              syscall.Errno = 377\n\tERROR_CLOUD_FILE_ALREADY_CONNECTED                                        syscall.Errno = 378\n\tERROR_CLOUD_FILE_NOT_SUPPORTED                                            syscall.Errno = 379\n\tERROR_CLOUD_FILE_INVALID_REQUEST                                          syscall.Errno = 380\n\tERROR_CLOUD_FILE_READ_ONLY_VOLUME                                         syscall.Errno = 381\n\tERROR_CLOUD_FILE_CONNECTED_PROVIDER_ONLY                                  syscall.Errno = 382\n\tERROR_CLOUD_FILE_VALIDATION_FAILED                                        syscall.Errno = 383\n\tERROR_SMB1_NOT_AVAILABLE                                                  syscall.Errno = 384\n\tERROR_FILE_SYSTEM_VIRTUALIZATION_INVALID_OPERATION                        syscall.Errno = 385\n\tERROR_CLOUD_FILE_AUTHENTICATION_FAILED                                    syscall.Errno = 386\n\tERROR_CLOUD_FILE_INSUFFICIENT_RESOURCES                                   syscall.Errno = 387\n\tERROR_CLOUD_FILE_NETWORK_UNAVAILABLE                                      syscall.Errno = 388\n\tERROR_CLOUD_FILE_UNSUCCESSFUL                                             syscall.Errno = 389\n\tERROR_CLOUD_FILE_NOT_UNDER_SYNC_ROOT                                      syscall.Errno = 390\n\tERROR_CLOUD_FILE_IN_USE                                                   syscall.Errno = 391\n\tERROR_CLOUD_FILE_PINNED                                                   syscall.Errno = 392\n\tERROR_CLOUD_FILE_REQUEST_ABORTED                                          syscall.Errno = 393\n\tERROR_CLOUD_FILE_PROPERTY_CORRUPT                                         syscall.Errno = 394\n\tERROR_CLOUD_FILE_ACCESS_DENIED                                            syscall.Errno = 395\n\tERROR_CLOUD_FILE_INCOMPATIBLE_HARDLINKS                                   syscall.Errno = 396\n\tERROR_CLOUD_FILE_PROPERTY_LOCK_CONFLICT                                   syscall.Errno = 397\n\tERROR_CLOUD_FILE_REQUEST_CANCELED                                         syscall.Errno = 398\n\tERROR_EXTERNAL_SYSKEY_NOT_SUPPORTED                                       syscall.Errno = 399\n\tERROR_THREAD_MODE_ALREADY_BACKGROUND                                      syscall.Errno = 400\n\tERROR_THREAD_MODE_NOT_BACKGROUND                                          syscall.Errno = 401\n\tERROR_PROCESS_MODE_ALREADY_BACKGROUND                                     syscall.Errno = 402\n\tERROR_PROCESS_MODE_NOT_BACKGROUND                                         syscall.Errno = 403\n\tERROR_CLOUD_FILE_PROVIDER_TERMINATED                                      syscall.Errno = 404\n\tERROR_NOT_A_CLOUD_SYNC_ROOT                                               syscall.Errno = 405\n\tERROR_FILE_PROTECTED_UNDER_DPL                                            syscall.Errno = 406\n\tERROR_VOLUME_NOT_CLUSTER_ALIGNED                                          syscall.Errno = 407\n\tERROR_NO_PHYSICALLY_ALIGNED_FREE_SPACE_FOUND                              syscall.Errno = 408\n\tERROR_APPX_FILE_NOT_ENCRYPTED                                             syscall.Errno = 409\n\tERROR_RWRAW_ENCRYPTED_FILE_NOT_ENCRYPTED                                  syscall.Errno = 410\n\tERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILEOFFSET                        syscall.Errno = 411\n\tERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILERANGE                         syscall.Errno = 412\n\tERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_PARAMETER                         syscall.Errno = 413\n\tERROR_LINUX_SUBSYSTEM_NOT_PRESENT                                         syscall.Errno = 414\n\tERROR_FT_READ_FAILURE                                                     syscall.Errno = 415\n\tERROR_STORAGE_RESERVE_ID_INVALID                                          syscall.Errno = 416\n\tERROR_STORAGE_RESERVE_DOES_NOT_EXIST                                      syscall.Errno = 417\n\tERROR_STORAGE_RESERVE_ALREADY_EXISTS                                      syscall.Errno = 418\n\tERROR_STORAGE_RESERVE_NOT_EMPTY                                           syscall.Errno = 419\n\tERROR_NOT_A_DAX_VOLUME                                                    syscall.Errno = 420\n\tERROR_NOT_DAX_MAPPABLE                                                    syscall.Errno = 421\n\tERROR_TIME_SENSITIVE_THREAD                                               syscall.Errno = 422\n\tERROR_DPL_NOT_SUPPORTED_FOR_USER                                          syscall.Errno = 423\n\tERROR_CASE_DIFFERING_NAMES_IN_DIR                                         syscall.Errno = 424\n\tERROR_FILE_NOT_SUPPORTED                                                  syscall.Errno = 425\n\tERROR_CLOUD_FILE_REQUEST_TIMEOUT                                          syscall.Errno = 426\n\tERROR_NO_TASK_QUEUE                                                       syscall.Errno = 427\n\tERROR_SRC_SRV_DLL_LOAD_FAILED                                             syscall.Errno = 428\n\tERROR_NOT_SUPPORTED_WITH_BTT                                              syscall.Errno = 429\n\tERROR_ENCRYPTION_DISABLED                                                 syscall.Errno = 430\n\tERROR_ENCRYPTING_METADATA_DISALLOWED                                      syscall.Errno = 431\n\tERROR_CANT_CLEAR_ENCRYPTION_FLAG                                          syscall.Errno = 432\n\tERROR_NO_SUCH_DEVICE                                                      syscall.Errno = 433\n\tERROR_CAPAUTHZ_NOT_DEVUNLOCKED                                            syscall.Errno = 450\n\tERROR_CAPAUTHZ_CHANGE_TYPE                                                syscall.Errno = 451\n\tERROR_CAPAUTHZ_NOT_PROVISIONED                                            syscall.Errno = 452\n\tERROR_CAPAUTHZ_NOT_AUTHORIZED                                             syscall.Errno = 453\n\tERROR_CAPAUTHZ_NO_POLICY                                                  syscall.Errno = 454\n\tERROR_CAPAUTHZ_DB_CORRUPTED                                               syscall.Errno = 455\n\tERROR_CAPAUTHZ_SCCD_INVALID_CATALOG                                       syscall.Errno = 456\n\tERROR_CAPAUTHZ_SCCD_NO_AUTH_ENTITY                                        syscall.Errno = 457\n\tERROR_CAPAUTHZ_SCCD_PARSE_ERROR                                           syscall.Errno = 458\n\tERROR_CAPAUTHZ_SCCD_DEV_MODE_REQUIRED                                     syscall.Errno = 459\n\tERROR_CAPAUTHZ_SCCD_NO_CAPABILITY_MATCH                                   syscall.Errno = 460\n\tERROR_PNP_QUERY_REMOVE_DEVICE_TIMEOUT                                     syscall.Errno = 480\n\tERROR_PNP_QUERY_REMOVE_RELATED_DEVICE_TIMEOUT                             syscall.Errno = 481\n\tERROR_PNP_QUERY_REMOVE_UNRELATED_DEVICE_TIMEOUT                           syscall.Errno = 482\n\tERROR_DEVICE_HARDWARE_ERROR                                               syscall.Errno = 483\n\tERROR_INVALID_ADDRESS                                                     syscall.Errno = 487\n\tERROR_VRF_CFG_ENABLED                                                     syscall.Errno = 1183\n\tERROR_PARTITION_TERMINATING                                               syscall.Errno = 1184\n\tERROR_USER_PROFILE_LOAD                                                   syscall.Errno = 500\n\tERROR_ARITHMETIC_OVERFLOW                                                 syscall.Errno = 534\n\tERROR_PIPE_CONNECTED                                                      syscall.Errno = 535\n\tERROR_PIPE_LISTENING                                                      syscall.Errno = 536\n\tERROR_VERIFIER_STOP                                                       syscall.Errno = 537\n\tERROR_ABIOS_ERROR                                                         syscall.Errno = 538\n\tERROR_WX86_WARNING                                                        syscall.Errno = 539\n\tERROR_WX86_ERROR                                                          syscall.Errno = 540\n\tERROR_TIMER_NOT_CANCELED                                                  syscall.Errno = 541\n\tERROR_UNWIND                                                              syscall.Errno = 542\n\tERROR_BAD_STACK                                                           syscall.Errno = 543\n\tERROR_INVALID_UNWIND_TARGET                                               syscall.Errno = 544\n\tERROR_INVALID_PORT_ATTRIBUTES                                             syscall.Errno = 545\n\tERROR_PORT_MESSAGE_TOO_LONG                                               syscall.Errno = 546\n\tERROR_INVALID_QUOTA_LOWER                                                 syscall.Errno = 547\n\tERROR_DEVICE_ALREADY_ATTACHED                                             syscall.Errno = 548\n\tERROR_INSTRUCTION_MISALIGNMENT                                            syscall.Errno = 549\n\tERROR_PROFILING_NOT_STARTED                                               syscall.Errno = 550\n\tERROR_PROFILING_NOT_STOPPED                                               syscall.Errno = 551\n\tERROR_COULD_NOT_INTERPRET                                                 syscall.Errno = 552\n\tERROR_PROFILING_AT_LIMIT                                                  syscall.Errno = 553\n\tERROR_CANT_WAIT                                                           syscall.Errno = 554\n\tERROR_CANT_TERMINATE_SELF                                                 syscall.Errno = 555\n\tERROR_UNEXPECTED_MM_CREATE_ERR                                            syscall.Errno = 556\n\tERROR_UNEXPECTED_MM_MAP_ERROR                                             syscall.Errno = 557\n\tERROR_UNEXPECTED_MM_EXTEND_ERR                                            syscall.Errno = 558\n\tERROR_BAD_FUNCTION_TABLE                                                  syscall.Errno = 559\n\tERROR_NO_GUID_TRANSLATION                                                 syscall.Errno = 560\n\tERROR_INVALID_LDT_SIZE                                                    syscall.Errno = 561\n\tERROR_INVALID_LDT_OFFSET                                                  syscall.Errno = 563\n\tERROR_INVALID_LDT_DESCRIPTOR                                              syscall.Errno = 564\n\tERROR_TOO_MANY_THREADS                                                    syscall.Errno = 565\n\tERROR_THREAD_NOT_IN_PROCESS                                               syscall.Errno = 566\n\tERROR_PAGEFILE_QUOTA_EXCEEDED                                             syscall.Errno = 567\n\tERROR_LOGON_SERVER_CONFLICT                                               syscall.Errno = 568\n\tERROR_SYNCHRONIZATION_REQUIRED                                            syscall.Errno = 569\n\tERROR_NET_OPEN_FAILED                                                     syscall.Errno = 570\n\tERROR_IO_PRIVILEGE_FAILED                                                 syscall.Errno = 571\n\tERROR_CONTROL_C_EXIT                                                      syscall.Errno = 572\n\tERROR_MISSING_SYSTEMFILE                                                  syscall.Errno = 573\n\tERROR_UNHANDLED_EXCEPTION                                                 syscall.Errno = 574\n\tERROR_APP_INIT_FAILURE                                                    syscall.Errno = 575\n\tERROR_PAGEFILE_CREATE_FAILED                                              syscall.Errno = 576\n\tERROR_INVALID_IMAGE_HASH                                                  syscall.Errno = 577\n\tERROR_NO_PAGEFILE                                                         syscall.Errno = 578\n\tERROR_ILLEGAL_FLOAT_CONTEXT                                               syscall.Errno = 579\n\tERROR_NO_EVENT_PAIR                                                       syscall.Errno = 580\n\tERROR_DOMAIN_CTRLR_CONFIG_ERROR                                           syscall.Errno = 581\n\tERROR_ILLEGAL_CHARACTER                                                   syscall.Errno = 582\n\tERROR_UNDEFINED_CHARACTER                                                 syscall.Errno = 583\n\tERROR_FLOPPY_VOLUME                                                       syscall.Errno = 584\n\tERROR_BIOS_FAILED_TO_CONNECT_INTERRUPT                                    syscall.Errno = 585\n\tERROR_BACKUP_CONTROLLER                                                   syscall.Errno = 586\n\tERROR_MUTANT_LIMIT_EXCEEDED                                               syscall.Errno = 587\n\tERROR_FS_DRIVER_REQUIRED                                                  syscall.Errno = 588\n\tERROR_CANNOT_LOAD_REGISTRY_FILE                                           syscall.Errno = 589\n\tERROR_DEBUG_ATTACH_FAILED                                                 syscall.Errno = 590\n\tERROR_SYSTEM_PROCESS_TERMINATED                                           syscall.Errno = 591\n\tERROR_DATA_NOT_ACCEPTED                                                   syscall.Errno = 592\n\tERROR_VDM_HARD_ERROR                                                      syscall.Errno = 593\n\tERROR_DRIVER_CANCEL_TIMEOUT                                               syscall.Errno = 594\n\tERROR_REPLY_MESSAGE_MISMATCH                                              syscall.Errno = 595\n\tERROR_LOST_WRITEBEHIND_DATA                                               syscall.Errno = 596\n\tERROR_CLIENT_SERVER_PARAMETERS_INVALID                                    syscall.Errno = 597\n\tERROR_NOT_TINY_STREAM                                                     syscall.Errno = 598\n\tERROR_STACK_OVERFLOW_READ                                                 syscall.Errno = 599\n\tERROR_CONVERT_TO_LARGE                                                    syscall.Errno = 600\n\tERROR_FOUND_OUT_OF_SCOPE                                                  syscall.Errno = 601\n\tERROR_ALLOCATE_BUCKET                                                     syscall.Errno = 602\n\tERROR_MARSHALL_OVERFLOW                                                   syscall.Errno = 603\n\tERROR_INVALID_VARIANT                                                     syscall.Errno = 604\n\tERROR_BAD_COMPRESSION_BUFFER                                              syscall.Errno = 605\n\tERROR_AUDIT_FAILED                                                        syscall.Errno = 606\n\tERROR_TIMER_RESOLUTION_NOT_SET                                            syscall.Errno = 607\n\tERROR_INSUFFICIENT_LOGON_INFO                                             syscall.Errno = 608\n\tERROR_BAD_DLL_ENTRYPOINT                                                  syscall.Errno = 609\n\tERROR_BAD_SERVICE_ENTRYPOINT                                              syscall.Errno = 610\n\tERROR_IP_ADDRESS_CONFLICT1                                                syscall.Errno = 611\n\tERROR_IP_ADDRESS_CONFLICT2                                                syscall.Errno = 612\n\tERROR_REGISTRY_QUOTA_LIMIT                                                syscall.Errno = 613\n\tERROR_NO_CALLBACK_ACTIVE                                                  syscall.Errno = 614\n\tERROR_PWD_TOO_SHORT                                                       syscall.Errno = 615\n\tERROR_PWD_TOO_RECENT                                                      syscall.Errno = 616\n\tERROR_PWD_HISTORY_CONFLICT                                                syscall.Errno = 617\n\tERROR_UNSUPPORTED_COMPRESSION                                             syscall.Errno = 618\n\tERROR_INVALID_HW_PROFILE                                                  syscall.Errno = 619\n\tERROR_INVALID_PLUGPLAY_DEVICE_PATH                                        syscall.Errno = 620\n\tERROR_QUOTA_LIST_INCONSISTENT                                             syscall.Errno = 621\n\tERROR_EVALUATION_EXPIRATION                                               syscall.Errno = 622\n\tERROR_ILLEGAL_DLL_RELOCATION                                              syscall.Errno = 623\n\tERROR_DLL_INIT_FAILED_LOGOFF                                              syscall.Errno = 624\n\tERROR_VALIDATE_CONTINUE                                                   syscall.Errno = 625\n\tERROR_NO_MORE_MATCHES                                                     syscall.Errno = 626\n\tERROR_RANGE_LIST_CONFLICT                                                 syscall.Errno = 627\n\tERROR_SERVER_SID_MISMATCH                                                 syscall.Errno = 628\n\tERROR_CANT_ENABLE_DENY_ONLY                                               syscall.Errno = 629\n\tERROR_FLOAT_MULTIPLE_FAULTS                                               syscall.Errno = 630\n\tERROR_FLOAT_MULTIPLE_TRAPS                                                syscall.Errno = 631\n\tERROR_NOINTERFACE                                                         syscall.Errno = 632\n\tERROR_DRIVER_FAILED_SLEEP                                                 syscall.Errno = 633\n\tERROR_CORRUPT_SYSTEM_FILE                                                 syscall.Errno = 634\n\tERROR_COMMITMENT_MINIMUM                                                  syscall.Errno = 635\n\tERROR_PNP_RESTART_ENUMERATION                                             syscall.Errno = 636\n\tERROR_SYSTEM_IMAGE_BAD_SIGNATURE                                          syscall.Errno = 637\n\tERROR_PNP_REBOOT_REQUIRED                                                 syscall.Errno = 638\n\tERROR_INSUFFICIENT_POWER                                                  syscall.Errno = 639\n\tERROR_MULTIPLE_FAULT_VIOLATION                                            syscall.Errno = 640\n\tERROR_SYSTEM_SHUTDOWN                                                     syscall.Errno = 641\n\tERROR_PORT_NOT_SET                                                        syscall.Errno = 642\n\tERROR_DS_VERSION_CHECK_FAILURE                                            syscall.Errno = 643\n\tERROR_RANGE_NOT_FOUND                                                     syscall.Errno = 644\n\tERROR_NOT_SAFE_MODE_DRIVER                                                syscall.Errno = 646\n\tERROR_FAILED_DRIVER_ENTRY                                                 syscall.Errno = 647\n\tERROR_DEVICE_ENUMERATION_ERROR                                            syscall.Errno = 648\n\tERROR_MOUNT_POINT_NOT_RESOLVED                                            syscall.Errno = 649\n\tERROR_INVALID_DEVICE_OBJECT_PARAMETER                                     syscall.Errno = 650\n\tERROR_MCA_OCCURED                                                         syscall.Errno = 651\n\tERROR_DRIVER_DATABASE_ERROR                                               syscall.Errno = 652\n\tERROR_SYSTEM_HIVE_TOO_LARGE                                               syscall.Errno = 653\n\tERROR_DRIVER_FAILED_PRIOR_UNLOAD                                          syscall.Errno = 654\n\tERROR_VOLSNAP_PREPARE_HIBERNATE                                           syscall.Errno = 655\n\tERROR_HIBERNATION_FAILURE                                                 syscall.Errno = 656\n\tERROR_PWD_TOO_LONG                                                        syscall.Errno = 657\n\tERROR_FILE_SYSTEM_LIMITATION                                              syscall.Errno = 665\n\tERROR_ASSERTION_FAILURE                                                   syscall.Errno = 668\n\tERROR_ACPI_ERROR                                                          syscall.Errno = 669\n\tERROR_WOW_ASSERTION                                                       syscall.Errno = 670\n\tERROR_PNP_BAD_MPS_TABLE                                                   syscall.Errno = 671\n\tERROR_PNP_TRANSLATION_FAILED                                              syscall.Errno = 672\n\tERROR_PNP_IRQ_TRANSLATION_FAILED                                          syscall.Errno = 673\n\tERROR_PNP_INVALID_ID                                                      syscall.Errno = 674\n\tERROR_WAKE_SYSTEM_DEBUGGER                                                syscall.Errno = 675\n\tERROR_HANDLES_CLOSED                                                      syscall.Errno = 676\n\tERROR_EXTRANEOUS_INFORMATION                                              syscall.Errno = 677\n\tERROR_RXACT_COMMIT_NECESSARY                                              syscall.Errno = 678\n\tERROR_MEDIA_CHECK                                                         syscall.Errno = 679\n\tERROR_GUID_SUBSTITUTION_MADE                                              syscall.Errno = 680\n\tERROR_STOPPED_ON_SYMLINK                                                  syscall.Errno = 681\n\tERROR_LONGJUMP                                                            syscall.Errno = 682\n\tERROR_PLUGPLAY_QUERY_VETOED                                               syscall.Errno = 683\n\tERROR_UNWIND_CONSOLIDATE                                                  syscall.Errno = 684\n\tERROR_REGISTRY_HIVE_RECOVERED                                             syscall.Errno = 685\n\tERROR_DLL_MIGHT_BE_INSECURE                                               syscall.Errno = 686\n\tERROR_DLL_MIGHT_BE_INCOMPATIBLE                                           syscall.Errno = 687\n\tERROR_DBG_EXCEPTION_NOT_HANDLED                                           syscall.Errno = 688\n\tERROR_DBG_REPLY_LATER                                                     syscall.Errno = 689\n\tERROR_DBG_UNABLE_TO_PROVIDE_HANDLE                                        syscall.Errno = 690\n\tERROR_DBG_TERMINATE_THREAD                                                syscall.Errno = 691\n\tERROR_DBG_TERMINATE_PROCESS                                               syscall.Errno = 692\n\tERROR_DBG_CONTROL_C                                                       syscall.Errno = 693\n\tERROR_DBG_PRINTEXCEPTION_C                                                syscall.Errno = 694\n\tERROR_DBG_RIPEXCEPTION                                                    syscall.Errno = 695\n\tERROR_DBG_CONTROL_BREAK                                                   syscall.Errno = 696\n\tERROR_DBG_COMMAND_EXCEPTION                                               syscall.Errno = 697\n\tERROR_OBJECT_NAME_EXISTS                                                  syscall.Errno = 698\n\tERROR_THREAD_WAS_SUSPENDED                                                syscall.Errno = 699\n\tERROR_IMAGE_NOT_AT_BASE                                                   syscall.Errno = 700\n\tERROR_RXACT_STATE_CREATED                                                 syscall.Errno = 701\n\tERROR_SEGMENT_NOTIFICATION                                                syscall.Errno = 702\n\tERROR_BAD_CURRENT_DIRECTORY                                               syscall.Errno = 703\n\tERROR_FT_READ_RECOVERY_FROM_BACKUP                                        syscall.Errno = 704\n\tERROR_FT_WRITE_RECOVERY                                                   syscall.Errno = 705\n\tERROR_IMAGE_MACHINE_TYPE_MISMATCH                                         syscall.Errno = 706\n\tERROR_RECEIVE_PARTIAL                                                     syscall.Errno = 707\n\tERROR_RECEIVE_EXPEDITED                                                   syscall.Errno = 708\n\tERROR_RECEIVE_PARTIAL_EXPEDITED                                           syscall.Errno = 709\n\tERROR_EVENT_DONE                                                          syscall.Errno = 710\n\tERROR_EVENT_PENDING                                                       syscall.Errno = 711\n\tERROR_CHECKING_FILE_SYSTEM                                                syscall.Errno = 712\n\tERROR_FATAL_APP_EXIT                                                      syscall.Errno = 713\n\tERROR_PREDEFINED_HANDLE                                                   syscall.Errno = 714\n\tERROR_WAS_UNLOCKED                                                        syscall.Errno = 715\n\tERROR_SERVICE_NOTIFICATION                                                syscall.Errno = 716\n\tERROR_WAS_LOCKED                                                          syscall.Errno = 717\n\tERROR_LOG_HARD_ERROR                                                      syscall.Errno = 718\n\tERROR_ALREADY_WIN32                                                       syscall.Errno = 719\n\tERROR_IMAGE_MACHINE_TYPE_MISMATCH_EXE                                     syscall.Errno = 720\n\tERROR_NO_YIELD_PERFORMED                                                  syscall.Errno = 721\n\tERROR_TIMER_RESUME_IGNORED                                                syscall.Errno = 722\n\tERROR_ARBITRATION_UNHANDLED                                               syscall.Errno = 723\n\tERROR_CARDBUS_NOT_SUPPORTED                                               syscall.Errno = 724\n\tERROR_MP_PROCESSOR_MISMATCH                                               syscall.Errno = 725\n\tERROR_HIBERNATED                                                          syscall.Errno = 726\n\tERROR_RESUME_HIBERNATION                                                  syscall.Errno = 727\n\tERROR_FIRMWARE_UPDATED                                                    syscall.Errno = 728\n\tERROR_DRIVERS_LEAKING_LOCKED_PAGES                                        syscall.Errno = 729\n\tERROR_WAKE_SYSTEM                                                         syscall.Errno = 730\n\tERROR_WAIT_1                                                              syscall.Errno = 731\n\tERROR_WAIT_2                                                              syscall.Errno = 732\n\tERROR_WAIT_3                                                              syscall.Errno = 733\n\tERROR_WAIT_63                                                             syscall.Errno = 734\n\tERROR_ABANDONED_WAIT_0                                                    syscall.Errno = 735\n\tERROR_ABANDONED_WAIT_63                                                   syscall.Errno = 736\n\tERROR_USER_APC                                                            syscall.Errno = 737\n\tERROR_KERNEL_APC                                                          syscall.Errno = 738\n\tERROR_ALERTED                                                             syscall.Errno = 739\n\tERROR_ELEVATION_REQUIRED                                                  syscall.Errno = 740\n\tERROR_REPARSE                                                             syscall.Errno = 741\n\tERROR_OPLOCK_BREAK_IN_PROGRESS                                            syscall.Errno = 742\n\tERROR_VOLUME_MOUNTED                                                      syscall.Errno = 743\n\tERROR_RXACT_COMMITTED                                                     syscall.Errno = 744\n\tERROR_NOTIFY_CLEANUP                                                      syscall.Errno = 745\n\tERROR_PRIMARY_TRANSPORT_CONNECT_FAILED                                    syscall.Errno = 746\n\tERROR_PAGE_FAULT_TRANSITION                                               syscall.Errno = 747\n\tERROR_PAGE_FAULT_DEMAND_ZERO                                              syscall.Errno = 748\n\tERROR_PAGE_FAULT_COPY_ON_WRITE                                            syscall.Errno = 749\n\tERROR_PAGE_FAULT_GUARD_PAGE                                               syscall.Errno = 750\n\tERROR_PAGE_FAULT_PAGING_FILE                                              syscall.Errno = 751\n\tERROR_CACHE_PAGE_LOCKED                                                   syscall.Errno = 752\n\tERROR_CRASH_DUMP                                                          syscall.Errno = 753\n\tERROR_BUFFER_ALL_ZEROS                                                    syscall.Errno = 754\n\tERROR_REPARSE_OBJECT                                                      syscall.Errno = 755\n\tERROR_RESOURCE_REQUIREMENTS_CHANGED                                       syscall.Errno = 756\n\tERROR_TRANSLATION_COMPLETE                                                syscall.Errno = 757\n\tERROR_NOTHING_TO_TERMINATE                                                syscall.Errno = 758\n\tERROR_PROCESS_NOT_IN_JOB                                                  syscall.Errno = 759\n\tERROR_PROCESS_IN_JOB                                                      syscall.Errno = 760\n\tERROR_VOLSNAP_HIBERNATE_READY                                             syscall.Errno = 761\n\tERROR_FSFILTER_OP_COMPLETED_SUCCESSFULLY                                  syscall.Errno = 762\n\tERROR_INTERRUPT_VECTOR_ALREADY_CONNECTED                                  syscall.Errno = 763\n\tERROR_INTERRUPT_STILL_CONNECTED                                           syscall.Errno = 764\n\tERROR_WAIT_FOR_OPLOCK                                                     syscall.Errno = 765\n\tERROR_DBG_EXCEPTION_HANDLED                                               syscall.Errno = 766\n\tERROR_DBG_CONTINUE                                                        syscall.Errno = 767\n\tERROR_CALLBACK_POP_STACK                                                  syscall.Errno = 768\n\tERROR_COMPRESSION_DISABLED                                                syscall.Errno = 769\n\tERROR_CANTFETCHBACKWARDS                                                  syscall.Errno = 770\n\tERROR_CANTSCROLLBACKWARDS                                                 syscall.Errno = 771\n\tERROR_ROWSNOTRELEASED                                                     syscall.Errno = 772\n\tERROR_BAD_ACCESSOR_FLAGS                                                  syscall.Errno = 773\n\tERROR_ERRORS_ENCOUNTERED                                                  syscall.Errno = 774\n\tERROR_NOT_CAPABLE                                                         syscall.Errno = 775\n\tERROR_REQUEST_OUT_OF_SEQUENCE                                             syscall.Errno = 776\n\tERROR_VERSION_PARSE_ERROR                                                 syscall.Errno = 777\n\tERROR_BADSTARTPOSITION                                                    syscall.Errno = 778\n\tERROR_MEMORY_HARDWARE                                                     syscall.Errno = 779\n\tERROR_DISK_REPAIR_DISABLED                                                syscall.Errno = 780\n\tERROR_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE             syscall.Errno = 781\n\tERROR_SYSTEM_POWERSTATE_TRANSITION                                        syscall.Errno = 782\n\tERROR_SYSTEM_POWERSTATE_COMPLEX_TRANSITION                                syscall.Errno = 783\n\tERROR_MCA_EXCEPTION                                                       syscall.Errno = 784\n\tERROR_ACCESS_AUDIT_BY_POLICY                                              syscall.Errno = 785\n\tERROR_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY                               syscall.Errno = 786\n\tERROR_ABANDON_HIBERFILE                                                   syscall.Errno = 787\n\tERROR_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED                          syscall.Errno = 788\n\tERROR_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR                          syscall.Errno = 789\n\tERROR_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR                              syscall.Errno = 790\n\tERROR_BAD_MCFG_TABLE                                                      syscall.Errno = 791\n\tERROR_DISK_REPAIR_REDIRECTED                                              syscall.Errno = 792\n\tERROR_DISK_REPAIR_UNSUCCESSFUL                                            syscall.Errno = 793\n\tERROR_CORRUPT_LOG_OVERFULL                                                syscall.Errno = 794\n\tERROR_CORRUPT_LOG_CORRUPTED                                               syscall.Errno = 795\n\tERROR_CORRUPT_LOG_UNAVAILABLE                                             syscall.Errno = 796\n\tERROR_CORRUPT_LOG_DELETED_FULL                                            syscall.Errno = 797\n\tERROR_CORRUPT_LOG_CLEARED                                                 syscall.Errno = 798\n\tERROR_ORPHAN_NAME_EXHAUSTED                                               syscall.Errno = 799\n\tERROR_OPLOCK_SWITCHED_TO_NEW_HANDLE                                       syscall.Errno = 800\n\tERROR_CANNOT_GRANT_REQUESTED_OPLOCK                                       syscall.Errno = 801\n\tERROR_CANNOT_BREAK_OPLOCK                                                 syscall.Errno = 802\n\tERROR_OPLOCK_HANDLE_CLOSED                                                syscall.Errno = 803\n\tERROR_NO_ACE_CONDITION                                                    syscall.Errno = 804\n\tERROR_INVALID_ACE_CONDITION                                               syscall.Errno = 805\n\tERROR_FILE_HANDLE_REVOKED                                                 syscall.Errno = 806\n\tERROR_IMAGE_AT_DIFFERENT_BASE                                             syscall.Errno = 807\n\tERROR_ENCRYPTED_IO_NOT_POSSIBLE                                           syscall.Errno = 808\n\tERROR_FILE_METADATA_OPTIMIZATION_IN_PROGRESS                              syscall.Errno = 809\n\tERROR_QUOTA_ACTIVITY                                                      syscall.Errno = 810\n\tERROR_HANDLE_REVOKED                                                      syscall.Errno = 811\n\tERROR_CALLBACK_INVOKE_INLINE                                              syscall.Errno = 812\n\tERROR_CPU_SET_INVALID                                                     syscall.Errno = 813\n\tERROR_ENCLAVE_NOT_TERMINATED                                              syscall.Errno = 814\n\tERROR_ENCLAVE_VIOLATION                                                   syscall.Errno = 815\n\tERROR_EA_ACCESS_DENIED                                                    syscall.Errno = 994\n\tERROR_OPERATION_ABORTED                                                   syscall.Errno = 995\n\tERROR_IO_INCOMPLETE                                                       syscall.Errno = 996\n\tERROR_IO_PENDING                                                          syscall.Errno = 997\n\tERROR_NOACCESS                                                            syscall.Errno = 998\n\tERROR_SWAPERROR                                                           syscall.Errno = 999\n\tERROR_STACK_OVERFLOW                                                      syscall.Errno = 1001\n\tERROR_INVALID_MESSAGE                                                     syscall.Errno = 1002\n\tERROR_CAN_NOT_COMPLETE                                                    syscall.Errno = 1003\n\tERROR_INVALID_FLAGS                                                       syscall.Errno = 1004\n\tERROR_UNRECOGNIZED_VOLUME                                                 syscall.Errno = 1005\n\tERROR_FILE_INVALID                                                        syscall.Errno = 1006\n\tERROR_FULLSCREEN_MODE                                                     syscall.Errno = 1007\n\tERROR_NO_TOKEN                                                            syscall.Errno = 1008\n\tERROR_BADDB                                                               syscall.Errno = 1009\n\tERROR_BADKEY                                                              syscall.Errno = 1010\n\tERROR_CANTOPEN                                                            syscall.Errno = 1011\n\tERROR_CANTREAD                                                            syscall.Errno = 1012\n\tERROR_CANTWRITE                                                           syscall.Errno = 1013\n\tERROR_REGISTRY_RECOVERED                                                  syscall.Errno = 1014\n\tERROR_REGISTRY_CORRUPT                                                    syscall.Errno = 1015\n\tERROR_REGISTRY_IO_FAILED                                                  syscall.Errno = 1016\n\tERROR_NOT_REGISTRY_FILE                                                   syscall.Errno = 1017\n\tERROR_KEY_DELETED                                                         syscall.Errno = 1018\n\tERROR_NO_LOG_SPACE                                                        syscall.Errno = 1019\n\tERROR_KEY_HAS_CHILDREN                                                    syscall.Errno = 1020\n\tERROR_CHILD_MUST_BE_VOLATILE                                              syscall.Errno = 1021\n\tERROR_NOTIFY_ENUM_DIR                                                     syscall.Errno = 1022\n\tERROR_DEPENDENT_SERVICES_RUNNING                                          syscall.Errno = 1051\n\tERROR_INVALID_SERVICE_CONTROL                                             syscall.Errno = 1052\n\tERROR_SERVICE_REQUEST_TIMEOUT                                             syscall.Errno = 1053\n\tERROR_SERVICE_NO_THREAD                                                   syscall.Errno = 1054\n\tERROR_SERVICE_DATABASE_LOCKED                                             syscall.Errno = 1055\n\tERROR_SERVICE_ALREADY_RUNNING                                             syscall.Errno = 1056\n\tERROR_INVALID_SERVICE_ACCOUNT                                             syscall.Errno = 1057\n\tERROR_SERVICE_DISABLED                                                    syscall.Errno = 1058\n\tERROR_CIRCULAR_DEPENDENCY                                                 syscall.Errno = 1059\n\tERROR_SERVICE_DOES_NOT_EXIST                                              syscall.Errno = 1060\n\tERROR_SERVICE_CANNOT_ACCEPT_CTRL                                          syscall.Errno = 1061\n\tERROR_SERVICE_NOT_ACTIVE                                                  syscall.Errno = 1062\n\tERROR_FAILED_SERVICE_CONTROLLER_CONNECT                                   syscall.Errno = 1063\n\tERROR_EXCEPTION_IN_SERVICE                                                syscall.Errno = 1064\n\tERROR_DATABASE_DOES_NOT_EXIST                                             syscall.Errno = 1065\n\tERROR_SERVICE_SPECIFIC_ERROR                                              syscall.Errno = 1066\n\tERROR_PROCESS_ABORTED                                                     syscall.Errno = 1067\n\tERROR_SERVICE_DEPENDENCY_FAIL                                             syscall.Errno = 1068\n\tERROR_SERVICE_LOGON_FAILED                                                syscall.Errno = 1069\n\tERROR_SERVICE_START_HANG                                                  syscall.Errno = 1070\n\tERROR_INVALID_SERVICE_LOCK                                                syscall.Errno = 1071\n\tERROR_SERVICE_MARKED_FOR_DELETE                                           syscall.Errno = 1072\n\tERROR_SERVICE_EXISTS                                                      syscall.Errno = 1073\n\tERROR_ALREADY_RUNNING_LKG                                                 syscall.Errno = 1074\n\tERROR_SERVICE_DEPENDENCY_DELETED                                          syscall.Errno = 1075\n\tERROR_BOOT_ALREADY_ACCEPTED                                               syscall.Errno = 1076\n\tERROR_SERVICE_NEVER_STARTED                                               syscall.Errno = 1077\n\tERROR_DUPLICATE_SERVICE_NAME                                              syscall.Errno = 1078\n\tERROR_DIFFERENT_SERVICE_ACCOUNT                                           syscall.Errno = 1079\n\tERROR_CANNOT_DETECT_DRIVER_FAILURE                                        syscall.Errno = 1080\n\tERROR_CANNOT_DETECT_PROCESS_ABORT                                         syscall.Errno = 1081\n\tERROR_NO_RECOVERY_PROGRAM                                                 syscall.Errno = 1082\n\tERROR_SERVICE_NOT_IN_EXE                                                  syscall.Errno = 1083\n\tERROR_NOT_SAFEBOOT_SERVICE                                                syscall.Errno = 1084\n\tERROR_END_OF_MEDIA                                                        syscall.Errno = 1100\n\tERROR_FILEMARK_DETECTED                                                   syscall.Errno = 1101\n\tERROR_BEGINNING_OF_MEDIA                                                  syscall.Errno = 1102\n\tERROR_SETMARK_DETECTED                                                    syscall.Errno = 1103\n\tERROR_NO_DATA_DETECTED                                                    syscall.Errno = 1104\n\tERROR_PARTITION_FAILURE                                                   syscall.Errno = 1105\n\tERROR_INVALID_BLOCK_LENGTH                                                syscall.Errno = 1106\n\tERROR_DEVICE_NOT_PARTITIONED                                              syscall.Errno = 1107\n\tERROR_UNABLE_TO_LOCK_MEDIA                                                syscall.Errno = 1108\n\tERROR_UNABLE_TO_UNLOAD_MEDIA                                              syscall.Errno = 1109\n\tERROR_MEDIA_CHANGED                                                       syscall.Errno = 1110\n\tERROR_BUS_RESET                                                           syscall.Errno = 1111\n\tERROR_NO_MEDIA_IN_DRIVE                                                   syscall.Errno = 1112\n\tERROR_NO_UNICODE_TRANSLATION                                              syscall.Errno = 1113\n\tERROR_DLL_INIT_FAILED                                                     syscall.Errno = 1114\n\tERROR_SHUTDOWN_IN_PROGRESS                                                syscall.Errno = 1115\n\tERROR_NO_SHUTDOWN_IN_PROGRESS                                             syscall.Errno = 1116\n\tERROR_IO_DEVICE                                                           syscall.Errno = 1117\n\tERROR_SERIAL_NO_DEVICE                                                    syscall.Errno = 1118\n\tERROR_IRQ_BUSY                                                            syscall.Errno = 1119\n\tERROR_MORE_WRITES                                                         syscall.Errno = 1120\n\tERROR_COUNTER_TIMEOUT                                                     syscall.Errno = 1121\n\tERROR_FLOPPY_ID_MARK_NOT_FOUND                                            syscall.Errno = 1122\n\tERROR_FLOPPY_WRONG_CYLINDER                                               syscall.Errno = 1123\n\tERROR_FLOPPY_UNKNOWN_ERROR                                                syscall.Errno = 1124\n\tERROR_FLOPPY_BAD_REGISTERS                                                syscall.Errno = 1125\n\tERROR_DISK_RECALIBRATE_FAILED                                             syscall.Errno = 1126\n\tERROR_DISK_OPERATION_FAILED                                               syscall.Errno = 1127\n\tERROR_DISK_RESET_FAILED                                                   syscall.Errno = 1128\n\tERROR_EOM_OVERFLOW                                                        syscall.Errno = 1129\n\tERROR_NOT_ENOUGH_SERVER_MEMORY                                            syscall.Errno = 1130\n\tERROR_POSSIBLE_DEADLOCK                                                   syscall.Errno = 1131\n\tERROR_MAPPED_ALIGNMENT                                                    syscall.Errno = 1132\n\tERROR_SET_POWER_STATE_VETOED                                              syscall.Errno = 1140\n\tERROR_SET_POWER_STATE_FAILED                                              syscall.Errno = 1141\n\tERROR_TOO_MANY_LINKS                                                      syscall.Errno = 1142\n\tERROR_OLD_WIN_VERSION                                                     syscall.Errno = 1150\n\tERROR_APP_WRONG_OS                                                        syscall.Errno = 1151\n\tERROR_SINGLE_INSTANCE_APP                                                 syscall.Errno = 1152\n\tERROR_RMODE_APP                                                           syscall.Errno = 1153\n\tERROR_INVALID_DLL                                                         syscall.Errno = 1154\n\tERROR_NO_ASSOCIATION                                                      syscall.Errno = 1155\n\tERROR_DDE_FAIL                                                            syscall.Errno = 1156\n\tERROR_DLL_NOT_FOUND                                                       syscall.Errno = 1157\n\tERROR_NO_MORE_USER_HANDLES                                                syscall.Errno = 1158\n\tERROR_MESSAGE_SYNC_ONLY                                                   syscall.Errno = 1159\n\tERROR_SOURCE_ELEMENT_EMPTY                                                syscall.Errno = 1160\n\tERROR_DESTINATION_ELEMENT_FULL                                            syscall.Errno = 1161\n\tERROR_ILLEGAL_ELEMENT_ADDRESS                                             syscall.Errno = 1162\n\tERROR_MAGAZINE_NOT_PRESENT                                                syscall.Errno = 1163\n\tERROR_DEVICE_REINITIALIZATION_NEEDED                                      syscall.Errno = 1164\n\tERROR_DEVICE_REQUIRES_CLEANING                                            syscall.Errno = 1165\n\tERROR_DEVICE_DOOR_OPEN                                                    syscall.Errno = 1166\n\tERROR_DEVICE_NOT_CONNECTED                                                syscall.Errno = 1167\n\tERROR_NOT_FOUND                                                           syscall.Errno = 1168\n\tERROR_NO_MATCH                                                            syscall.Errno = 1169\n\tERROR_SET_NOT_FOUND                                                       syscall.Errno = 1170\n\tERROR_POINT_NOT_FOUND                                                     syscall.Errno = 1171\n\tERROR_NO_TRACKING_SERVICE                                                 syscall.Errno = 1172\n\tERROR_NO_VOLUME_ID                                                        syscall.Errno = 1173\n\tERROR_UNABLE_TO_REMOVE_REPLACED                                           syscall.Errno = 1175\n\tERROR_UNABLE_TO_MOVE_REPLACEMENT                                          syscall.Errno = 1176\n\tERROR_UNABLE_TO_MOVE_REPLACEMENT_2                                        syscall.Errno = 1177\n\tERROR_JOURNAL_DELETE_IN_PROGRESS                                          syscall.Errno = 1178\n\tERROR_JOURNAL_NOT_ACTIVE                                                  syscall.Errno = 1179\n\tERROR_POTENTIAL_FILE_FOUND                                                syscall.Errno = 1180\n\tERROR_JOURNAL_ENTRY_DELETED                                               syscall.Errno = 1181\n\tERROR_SHUTDOWN_IS_SCHEDULED                                               syscall.Errno = 1190\n\tERROR_SHUTDOWN_USERS_LOGGED_ON                                            syscall.Errno = 1191\n\tERROR_BAD_DEVICE                                                          syscall.Errno = 1200\n\tERROR_CONNECTION_UNAVAIL                                                  syscall.Errno = 1201\n\tERROR_DEVICE_ALREADY_REMEMBERED                                           syscall.Errno = 1202\n\tERROR_NO_NET_OR_BAD_PATH                                                  syscall.Errno = 1203\n\tERROR_BAD_PROVIDER                                                        syscall.Errno = 1204\n\tERROR_CANNOT_OPEN_PROFILE                                                 syscall.Errno = 1205\n\tERROR_BAD_PROFILE                                                         syscall.Errno = 1206\n\tERROR_NOT_CONTAINER                                                       syscall.Errno = 1207\n\tERROR_EXTENDED_ERROR                                                      syscall.Errno = 1208\n\tERROR_INVALID_GROUPNAME                                                   syscall.Errno = 1209\n\tERROR_INVALID_COMPUTERNAME                                                syscall.Errno = 1210\n\tERROR_INVALID_EVENTNAME                                                   syscall.Errno = 1211\n\tERROR_INVALID_DOMAINNAME                                                  syscall.Errno = 1212\n\tERROR_INVALID_SERVICENAME                                                 syscall.Errno = 1213\n\tERROR_INVALID_NETNAME                                                     syscall.Errno = 1214\n\tERROR_INVALID_SHARENAME                                                   syscall.Errno = 1215\n\tERROR_INVALID_PASSWORDNAME                                                syscall.Errno = 1216\n\tERROR_INVALID_MESSAGENAME                                                 syscall.Errno = 1217\n\tERROR_INVALID_MESSAGEDEST                                                 syscall.Errno = 1218\n\tERROR_SESSION_CREDENTIAL_CONFLICT                                         syscall.Errno = 1219\n\tERROR_REMOTE_SESSION_LIMIT_EXCEEDED                                       syscall.Errno = 1220\n\tERROR_DUP_DOMAINNAME                                                      syscall.Errno = 1221\n\tERROR_NO_NETWORK                                                          syscall.Errno = 1222\n\tERROR_CANCELLED                                                           syscall.Errno = 1223\n\tERROR_USER_MAPPED_FILE                                                    syscall.Errno = 1224\n\tERROR_CONNECTION_REFUSED                                                  syscall.Errno = 1225\n\tERROR_GRACEFUL_DISCONNECT                                                 syscall.Errno = 1226\n\tERROR_ADDRESS_ALREADY_ASSOCIATED                                          syscall.Errno = 1227\n\tERROR_ADDRESS_NOT_ASSOCIATED                                              syscall.Errno = 1228\n\tERROR_CONNECTION_INVALID                                                  syscall.Errno = 1229\n\tERROR_CONNECTION_ACTIVE                                                   syscall.Errno = 1230\n\tERROR_NETWORK_UNREACHABLE                                                 syscall.Errno = 1231\n\tERROR_HOST_UNREACHABLE                                                    syscall.Errno = 1232\n\tERROR_PROTOCOL_UNREACHABLE                                                syscall.Errno = 1233\n\tERROR_PORT_UNREACHABLE                                                    syscall.Errno = 1234\n\tERROR_REQUEST_ABORTED                                                     syscall.Errno = 1235\n\tERROR_CONNECTION_ABORTED                                                  syscall.Errno = 1236\n\tERROR_RETRY                                                               syscall.Errno = 1237\n\tERROR_CONNECTION_COUNT_LIMIT                                              syscall.Errno = 1238\n\tERROR_LOGIN_TIME_RESTRICTION                                              syscall.Errno = 1239\n\tERROR_LOGIN_WKSTA_RESTRICTION                                             syscall.Errno = 1240\n\tERROR_INCORRECT_ADDRESS                                                   syscall.Errno = 1241\n\tERROR_ALREADY_REGISTERED                                                  syscall.Errno = 1242\n\tERROR_SERVICE_NOT_FOUND                                                   syscall.Errno = 1243\n\tERROR_NOT_AUTHENTICATED                                                   syscall.Errno = 1244\n\tERROR_NOT_LOGGED_ON                                                       syscall.Errno = 1245\n\tERROR_CONTINUE                                                            syscall.Errno = 1246\n\tERROR_ALREADY_INITIALIZED                                                 syscall.Errno = 1247\n\tERROR_NO_MORE_DEVICES                                                     syscall.Errno = 1248\n\tERROR_NO_SUCH_SITE                                                        syscall.Errno = 1249\n\tERROR_DOMAIN_CONTROLLER_EXISTS                                            syscall.Errno = 1250\n\tERROR_ONLY_IF_CONNECTED                                                   syscall.Errno = 1251\n\tERROR_OVERRIDE_NOCHANGES                                                  syscall.Errno = 1252\n\tERROR_BAD_USER_PROFILE                                                    syscall.Errno = 1253\n\tERROR_NOT_SUPPORTED_ON_SBS                                                syscall.Errno = 1254\n\tERROR_SERVER_SHUTDOWN_IN_PROGRESS                                         syscall.Errno = 1255\n\tERROR_HOST_DOWN                                                           syscall.Errno = 1256\n\tERROR_NON_ACCOUNT_SID                                                     syscall.Errno = 1257\n\tERROR_NON_DOMAIN_SID                                                      syscall.Errno = 1258\n\tERROR_APPHELP_BLOCK                                                       syscall.Errno = 1259\n\tERROR_ACCESS_DISABLED_BY_POLICY                                           syscall.Errno = 1260\n\tERROR_REG_NAT_CONSUMPTION                                                 syscall.Errno = 1261\n\tERROR_CSCSHARE_OFFLINE                                                    syscall.Errno = 1262\n\tERROR_PKINIT_FAILURE                                                      syscall.Errno = 1263\n\tERROR_SMARTCARD_SUBSYSTEM_FAILURE                                         syscall.Errno = 1264\n\tERROR_DOWNGRADE_DETECTED                                                  syscall.Errno = 1265\n\tERROR_MACHINE_LOCKED                                                      syscall.Errno = 1271\n\tERROR_SMB_GUEST_LOGON_BLOCKED                                             syscall.Errno = 1272\n\tERROR_CALLBACK_SUPPLIED_INVALID_DATA                                      syscall.Errno = 1273\n\tERROR_SYNC_FOREGROUND_REFRESH_REQUIRED                                    syscall.Errno = 1274\n\tERROR_DRIVER_BLOCKED                                                      syscall.Errno = 1275\n\tERROR_INVALID_IMPORT_OF_NON_DLL                                           syscall.Errno = 1276\n\tERROR_ACCESS_DISABLED_WEBBLADE                                            syscall.Errno = 1277\n\tERROR_ACCESS_DISABLED_WEBBLADE_TAMPER                                     syscall.Errno = 1278\n\tERROR_RECOVERY_FAILURE                                                    syscall.Errno = 1279\n\tERROR_ALREADY_FIBER                                                       syscall.Errno = 1280\n\tERROR_ALREADY_THREAD                                                      syscall.Errno = 1281\n\tERROR_STACK_BUFFER_OVERRUN                                                syscall.Errno = 1282\n\tERROR_PARAMETER_QUOTA_EXCEEDED                                            syscall.Errno = 1283\n\tERROR_DEBUGGER_INACTIVE                                                   syscall.Errno = 1284\n\tERROR_DELAY_LOAD_FAILED                                                   syscall.Errno = 1285\n\tERROR_VDM_DISALLOWED                                                      syscall.Errno = 1286\n\tERROR_UNIDENTIFIED_ERROR                                                  syscall.Errno = 1287\n\tERROR_INVALID_CRUNTIME_PARAMETER                                          syscall.Errno = 1288\n\tERROR_BEYOND_VDL                                                          syscall.Errno = 1289\n\tERROR_INCOMPATIBLE_SERVICE_SID_TYPE                                       syscall.Errno = 1290\n\tERROR_DRIVER_PROCESS_TERMINATED                                           syscall.Errno = 1291\n\tERROR_IMPLEMENTATION_LIMIT                                                syscall.Errno = 1292\n\tERROR_PROCESS_IS_PROTECTED                                                syscall.Errno = 1293\n\tERROR_SERVICE_NOTIFY_CLIENT_LAGGING                                       syscall.Errno = 1294\n\tERROR_DISK_QUOTA_EXCEEDED                                                 syscall.Errno = 1295\n\tERROR_CONTENT_BLOCKED                                                     syscall.Errno = 1296\n\tERROR_INCOMPATIBLE_SERVICE_PRIVILEGE                                      syscall.Errno = 1297\n\tERROR_APP_HANG                                                            syscall.Errno = 1298\n\tERROR_INVALID_LABEL                                                       syscall.Errno = 1299\n\tERROR_NOT_ALL_ASSIGNED                                                    syscall.Errno = 1300\n\tERROR_SOME_NOT_MAPPED                                                     syscall.Errno = 1301\n\tERROR_NO_QUOTAS_FOR_ACCOUNT                                               syscall.Errno = 1302\n\tERROR_LOCAL_USER_SESSION_KEY                                              syscall.Errno = 1303\n\tERROR_NULL_LM_PASSWORD                                                    syscall.Errno = 1304\n\tERROR_UNKNOWN_REVISION                                                    syscall.Errno = 1305\n\tERROR_REVISION_MISMATCH                                                   syscall.Errno = 1306\n\tERROR_INVALID_OWNER                                                       syscall.Errno = 1307\n\tERROR_INVALID_PRIMARY_GROUP                                               syscall.Errno = 1308\n\tERROR_NO_IMPERSONATION_TOKEN                                              syscall.Errno = 1309\n\tERROR_CANT_DISABLE_MANDATORY                                              syscall.Errno = 1310\n\tERROR_NO_LOGON_SERVERS                                                    syscall.Errno = 1311\n\tERROR_NO_SUCH_LOGON_SESSION                                               syscall.Errno = 1312\n\tERROR_NO_SUCH_PRIVILEGE                                                   syscall.Errno = 1313\n\tERROR_PRIVILEGE_NOT_HELD                                                  syscall.Errno = 1314\n\tERROR_INVALID_ACCOUNT_NAME                                                syscall.Errno = 1315\n\tERROR_USER_EXISTS                                                         syscall.Errno = 1316\n\tERROR_NO_SUCH_USER                                                        syscall.Errno = 1317\n\tERROR_GROUP_EXISTS                                                        syscall.Errno = 1318\n\tERROR_NO_SUCH_GROUP                                                       syscall.Errno = 1319\n\tERROR_MEMBER_IN_GROUP                                                     syscall.Errno = 1320\n\tERROR_MEMBER_NOT_IN_GROUP                                                 syscall.Errno = 1321\n\tERROR_LAST_ADMIN                                                          syscall.Errno = 1322\n\tERROR_WRONG_PASSWORD                                                      syscall.Errno = 1323\n\tERROR_ILL_FORMED_PASSWORD                                                 syscall.Errno = 1324\n\tERROR_PASSWORD_RESTRICTION                                                syscall.Errno = 1325\n\tERROR_LOGON_FAILURE                                                       syscall.Errno = 1326\n\tERROR_ACCOUNT_RESTRICTION                                                 syscall.Errno = 1327\n\tERROR_INVALID_LOGON_HOURS                                                 syscall.Errno = 1328\n\tERROR_INVALID_WORKSTATION                                                 syscall.Errno = 1329\n\tERROR_PASSWORD_EXPIRED                                                    syscall.Errno = 1330\n\tERROR_ACCOUNT_DISABLED                                                    syscall.Errno = 1331\n\tERROR_NONE_MAPPED                                                         syscall.Errno = 1332\n\tERROR_TOO_MANY_LUIDS_REQUESTED                                            syscall.Errno = 1333\n\tERROR_LUIDS_EXHAUSTED                                                     syscall.Errno = 1334\n\tERROR_INVALID_SUB_AUTHORITY                                               syscall.Errno = 1335\n\tERROR_INVALID_ACL                                                         syscall.Errno = 1336\n\tERROR_INVALID_SID                                                         syscall.Errno = 1337\n\tERROR_INVALID_SECURITY_DESCR                                              syscall.Errno = 1338\n\tERROR_BAD_INHERITANCE_ACL                                                 syscall.Errno = 1340\n\tERROR_SERVER_DISABLED                                                     syscall.Errno = 1341\n\tERROR_SERVER_NOT_DISABLED                                                 syscall.Errno = 1342\n\tERROR_INVALID_ID_AUTHORITY                                                syscall.Errno = 1343\n\tERROR_ALLOTTED_SPACE_EXCEEDED                                             syscall.Errno = 1344\n\tERROR_INVALID_GROUP_ATTRIBUTES                                            syscall.Errno = 1345\n\tERROR_BAD_IMPERSONATION_LEVEL                                             syscall.Errno = 1346\n\tERROR_CANT_OPEN_ANONYMOUS                                                 syscall.Errno = 1347\n\tERROR_BAD_VALIDATION_CLASS                                                syscall.Errno = 1348\n\tERROR_BAD_TOKEN_TYPE                                                      syscall.Errno = 1349\n\tERROR_NO_SECURITY_ON_OBJECT                                               syscall.Errno = 1350\n\tERROR_CANT_ACCESS_DOMAIN_INFO                                             syscall.Errno = 1351\n\tERROR_INVALID_SERVER_STATE                                                syscall.Errno = 1352\n\tERROR_INVALID_DOMAIN_STATE                                                syscall.Errno = 1353\n\tERROR_INVALID_DOMAIN_ROLE                                                 syscall.Errno = 1354\n\tERROR_NO_SUCH_DOMAIN                                                      syscall.Errno = 1355\n\tERROR_DOMAIN_EXISTS                                                       syscall.Errno = 1356\n\tERROR_DOMAIN_LIMIT_EXCEEDED                                               syscall.Errno = 1357\n\tERROR_INTERNAL_DB_CORRUPTION                                              syscall.Errno = 1358\n\tERROR_INTERNAL_ERROR                                                      syscall.Errno = 1359\n\tERROR_GENERIC_NOT_MAPPED                                                  syscall.Errno = 1360\n\tERROR_BAD_DESCRIPTOR_FORMAT                                               syscall.Errno = 1361\n\tERROR_NOT_LOGON_PROCESS                                                   syscall.Errno = 1362\n\tERROR_LOGON_SESSION_EXISTS                                                syscall.Errno = 1363\n\tERROR_NO_SUCH_PACKAGE                                                     syscall.Errno = 1364\n\tERROR_BAD_LOGON_SESSION_STATE                                             syscall.Errno = 1365\n\tERROR_LOGON_SESSION_COLLISION                                             syscall.Errno = 1366\n\tERROR_INVALID_LOGON_TYPE                                                  syscall.Errno = 1367\n\tERROR_CANNOT_IMPERSONATE                                                  syscall.Errno = 1368\n\tERROR_RXACT_INVALID_STATE                                                 syscall.Errno = 1369\n\tERROR_RXACT_COMMIT_FAILURE                                                syscall.Errno = 1370\n\tERROR_SPECIAL_ACCOUNT                                                     syscall.Errno = 1371\n\tERROR_SPECIAL_GROUP                                                       syscall.Errno = 1372\n\tERROR_SPECIAL_USER                                                        syscall.Errno = 1373\n\tERROR_MEMBERS_PRIMARY_GROUP                                               syscall.Errno = 1374\n\tERROR_TOKEN_ALREADY_IN_USE                                                syscall.Errno = 1375\n\tERROR_NO_SUCH_ALIAS                                                       syscall.Errno = 1376\n\tERROR_MEMBER_NOT_IN_ALIAS                                                 syscall.Errno = 1377\n\tERROR_MEMBER_IN_ALIAS                                                     syscall.Errno = 1378\n\tERROR_ALIAS_EXISTS                                                        syscall.Errno = 1379\n\tERROR_LOGON_NOT_GRANTED                                                   syscall.Errno = 1380\n\tERROR_TOO_MANY_SECRETS                                                    syscall.Errno = 1381\n\tERROR_SECRET_TOO_LONG                                                     syscall.Errno = 1382\n\tERROR_INTERNAL_DB_ERROR                                                   syscall.Errno = 1383\n\tERROR_TOO_MANY_CONTEXT_IDS                                                syscall.Errno = 1384\n\tERROR_LOGON_TYPE_NOT_GRANTED                                              syscall.Errno = 1385\n\tERROR_NT_CROSS_ENCRYPTION_REQUIRED                                        syscall.Errno = 1386\n\tERROR_NO_SUCH_MEMBER                                                      syscall.Errno = 1387\n\tERROR_INVALID_MEMBER                                                      syscall.Errno = 1388\n\tERROR_TOO_MANY_SIDS                                                       syscall.Errno = 1389\n\tERROR_LM_CROSS_ENCRYPTION_REQUIRED                                        syscall.Errno = 1390\n\tERROR_NO_INHERITANCE                                                      syscall.Errno = 1391\n\tERROR_FILE_CORRUPT                                                        syscall.Errno = 1392\n\tERROR_DISK_CORRUPT                                                        syscall.Errno = 1393\n\tERROR_NO_USER_SESSION_KEY                                                 syscall.Errno = 1394\n\tERROR_LICENSE_QUOTA_EXCEEDED                                              syscall.Errno = 1395\n\tERROR_WRONG_TARGET_NAME                                                   syscall.Errno = 1396\n\tERROR_MUTUAL_AUTH_FAILED                                                  syscall.Errno = 1397\n\tERROR_TIME_SKEW                                                           syscall.Errno = 1398\n\tERROR_CURRENT_DOMAIN_NOT_ALLOWED                                          syscall.Errno = 1399\n\tERROR_INVALID_WINDOW_HANDLE                                               syscall.Errno = 1400\n\tERROR_INVALID_MENU_HANDLE                                                 syscall.Errno = 1401\n\tERROR_INVALID_CURSOR_HANDLE                                               syscall.Errno = 1402\n\tERROR_INVALID_ACCEL_HANDLE                                                syscall.Errno = 1403\n\tERROR_INVALID_HOOK_HANDLE                                                 syscall.Errno = 1404\n\tERROR_INVALID_DWP_HANDLE                                                  syscall.Errno = 1405\n\tERROR_TLW_WITH_WSCHILD                                                    syscall.Errno = 1406\n\tERROR_CANNOT_FIND_WND_CLASS                                               syscall.Errno = 1407\n\tERROR_WINDOW_OF_OTHER_THREAD                                              syscall.Errno = 1408\n\tERROR_HOTKEY_ALREADY_REGISTERED                                           syscall.Errno = 1409\n\tERROR_CLASS_ALREADY_EXISTS                                                syscall.Errno = 1410\n\tERROR_CLASS_DOES_NOT_EXIST                                                syscall.Errno = 1411\n\tERROR_CLASS_HAS_WINDOWS                                                   syscall.Errno = 1412\n\tERROR_INVALID_INDEX                                                       syscall.Errno = 1413\n\tERROR_INVALID_ICON_HANDLE                                                 syscall.Errno = 1414\n\tERROR_PRIVATE_DIALOG_INDEX                                                syscall.Errno = 1415\n\tERROR_LISTBOX_ID_NOT_FOUND                                                syscall.Errno = 1416\n\tERROR_NO_WILDCARD_CHARACTERS                                              syscall.Errno = 1417\n\tERROR_CLIPBOARD_NOT_OPEN                                                  syscall.Errno = 1418\n\tERROR_HOTKEY_NOT_REGISTERED                                               syscall.Errno = 1419\n\tERROR_WINDOW_NOT_DIALOG                                                   syscall.Errno = 1420\n\tERROR_CONTROL_ID_NOT_FOUND                                                syscall.Errno = 1421\n\tERROR_INVALID_COMBOBOX_MESSAGE                                            syscall.Errno = 1422\n\tERROR_WINDOW_NOT_COMBOBOX                                                 syscall.Errno = 1423\n\tERROR_INVALID_EDIT_HEIGHT                                                 syscall.Errno = 1424\n\tERROR_DC_NOT_FOUND                                                        syscall.Errno = 1425\n\tERROR_INVALID_HOOK_FILTER                                                 syscall.Errno = 1426\n\tERROR_INVALID_FILTER_PROC                                                 syscall.Errno = 1427\n\tERROR_HOOK_NEEDS_HMOD                                                     syscall.Errno = 1428\n\tERROR_GLOBAL_ONLY_HOOK                                                    syscall.Errno = 1429\n\tERROR_JOURNAL_HOOK_SET                                                    syscall.Errno = 1430\n\tERROR_HOOK_NOT_INSTALLED                                                  syscall.Errno = 1431\n\tERROR_INVALID_LB_MESSAGE                                                  syscall.Errno = 1432\n\tERROR_SETCOUNT_ON_BAD_LB                                                  syscall.Errno = 1433\n\tERROR_LB_WITHOUT_TABSTOPS                                                 syscall.Errno = 1434\n\tERROR_DESTROY_OBJECT_OF_OTHER_THREAD                                      syscall.Errno = 1435\n\tERROR_CHILD_WINDOW_MENU                                                   syscall.Errno = 1436\n\tERROR_NO_SYSTEM_MENU                                                      syscall.Errno = 1437\n\tERROR_INVALID_MSGBOX_STYLE                                                syscall.Errno = 1438\n\tERROR_INVALID_SPI_VALUE                                                   syscall.Errno = 1439\n\tERROR_SCREEN_ALREADY_LOCKED                                               syscall.Errno = 1440\n\tERROR_HWNDS_HAVE_DIFF_PARENT                                              syscall.Errno = 1441\n\tERROR_NOT_CHILD_WINDOW                                                    syscall.Errno = 1442\n\tERROR_INVALID_GW_COMMAND                                                  syscall.Errno = 1443\n\tERROR_INVALID_THREAD_ID                                                   syscall.Errno = 1444\n\tERROR_NON_MDICHILD_WINDOW                                                 syscall.Errno = 1445\n\tERROR_POPUP_ALREADY_ACTIVE                                                syscall.Errno = 1446\n\tERROR_NO_SCROLLBARS                                                       syscall.Errno = 1447\n\tERROR_INVALID_SCROLLBAR_RANGE                                             syscall.Errno = 1448\n\tERROR_INVALID_SHOWWIN_COMMAND                                             syscall.Errno = 1449\n\tERROR_NO_SYSTEM_RESOURCES                                                 syscall.Errno = 1450\n\tERROR_NONPAGED_SYSTEM_RESOURCES                                           syscall.Errno = 1451\n\tERROR_PAGED_SYSTEM_RESOURCES                                              syscall.Errno = 1452\n\tERROR_WORKING_SET_QUOTA                                                   syscall.Errno = 1453\n\tERROR_PAGEFILE_QUOTA                                                      syscall.Errno = 1454\n\tERROR_COMMITMENT_LIMIT                                                    syscall.Errno = 1455\n\tERROR_MENU_ITEM_NOT_FOUND                                                 syscall.Errno = 1456\n\tERROR_INVALID_KEYBOARD_HANDLE                                             syscall.Errno = 1457\n\tERROR_HOOK_TYPE_NOT_ALLOWED                                               syscall.Errno = 1458\n\tERROR_REQUIRES_INTERACTIVE_WINDOWSTATION                                  syscall.Errno = 1459\n\tERROR_TIMEOUT                                                             syscall.Errno = 1460\n\tERROR_INVALID_MONITOR_HANDLE                                              syscall.Errno = 1461\n\tERROR_INCORRECT_SIZE                                                      syscall.Errno = 1462\n\tERROR_SYMLINK_CLASS_DISABLED                                              syscall.Errno = 1463\n\tERROR_SYMLINK_NOT_SUPPORTED                                               syscall.Errno = 1464\n\tERROR_XML_PARSE_ERROR                                                     syscall.Errno = 1465\n\tERROR_XMLDSIG_ERROR                                                       syscall.Errno = 1466\n\tERROR_RESTART_APPLICATION                                                 syscall.Errno = 1467\n\tERROR_WRONG_COMPARTMENT                                                   syscall.Errno = 1468\n\tERROR_AUTHIP_FAILURE                                                      syscall.Errno = 1469\n\tERROR_NO_NVRAM_RESOURCES                                                  syscall.Errno = 1470\n\tERROR_NOT_GUI_PROCESS                                                     syscall.Errno = 1471\n\tERROR_EVENTLOG_FILE_CORRUPT                                               syscall.Errno = 1500\n\tERROR_EVENTLOG_CANT_START                                                 syscall.Errno = 1501\n\tERROR_LOG_FILE_FULL                                                       syscall.Errno = 1502\n\tERROR_EVENTLOG_FILE_CHANGED                                               syscall.Errno = 1503\n\tERROR_CONTAINER_ASSIGNED                                                  syscall.Errno = 1504\n\tERROR_JOB_NO_CONTAINER                                                    syscall.Errno = 1505\n\tERROR_INVALID_TASK_NAME                                                   syscall.Errno = 1550\n\tERROR_INVALID_TASK_INDEX                                                  syscall.Errno = 1551\n\tERROR_THREAD_ALREADY_IN_TASK                                              syscall.Errno = 1552\n\tERROR_INSTALL_SERVICE_FAILURE                                             syscall.Errno = 1601\n\tERROR_INSTALL_USEREXIT                                                    syscall.Errno = 1602\n\tERROR_INSTALL_FAILURE                                                     syscall.Errno = 1603\n\tERROR_INSTALL_SUSPEND                                                     syscall.Errno = 1604\n\tERROR_UNKNOWN_PRODUCT                                                     syscall.Errno = 1605\n\tERROR_UNKNOWN_FEATURE                                                     syscall.Errno = 1606\n\tERROR_UNKNOWN_COMPONENT                                                   syscall.Errno = 1607\n\tERROR_UNKNOWN_PROPERTY                                                    syscall.Errno = 1608\n\tERROR_INVALID_HANDLE_STATE                                                syscall.Errno = 1609\n\tERROR_BAD_CONFIGURATION                                                   syscall.Errno = 1610\n\tERROR_INDEX_ABSENT                                                        syscall.Errno = 1611\n\tERROR_INSTALL_SOURCE_ABSENT                                               syscall.Errno = 1612\n\tERROR_INSTALL_PACKAGE_VERSION                                             syscall.Errno = 1613\n\tERROR_PRODUCT_UNINSTALLED                                                 syscall.Errno = 1614\n\tERROR_BAD_QUERY_SYNTAX                                                    syscall.Errno = 1615\n\tERROR_INVALID_FIELD                                                       syscall.Errno = 1616\n\tERROR_DEVICE_REMOVED                                                      syscall.Errno = 1617\n\tERROR_INSTALL_ALREADY_RUNNING                                             syscall.Errno = 1618\n\tERROR_INSTALL_PACKAGE_OPEN_FAILED                                         syscall.Errno = 1619\n\tERROR_INSTALL_PACKAGE_INVALID                                             syscall.Errno = 1620\n\tERROR_INSTALL_UI_FAILURE                                                  syscall.Errno = 1621\n\tERROR_INSTALL_LOG_FAILURE                                                 syscall.Errno = 1622\n\tERROR_INSTALL_LANGUAGE_UNSUPPORTED                                        syscall.Errno = 1623\n\tERROR_INSTALL_TRANSFORM_FAILURE                                           syscall.Errno = 1624\n\tERROR_INSTALL_PACKAGE_REJECTED                                            syscall.Errno = 1625\n\tERROR_FUNCTION_NOT_CALLED                                                 syscall.Errno = 1626\n\tERROR_FUNCTION_FAILED                                                     syscall.Errno = 1627\n\tERROR_INVALID_TABLE                                                       syscall.Errno = 1628\n\tERROR_DATATYPE_MISMATCH                                                   syscall.Errno = 1629\n\tERROR_UNSUPPORTED_TYPE                                                    syscall.Errno = 1630\n\tERROR_CREATE_FAILED                                                       syscall.Errno = 1631\n\tERROR_INSTALL_TEMP_UNWRITABLE                                             syscall.Errno = 1632\n\tERROR_INSTALL_PLATFORM_UNSUPPORTED                                        syscall.Errno = 1633\n\tERROR_INSTALL_NOTUSED                                                     syscall.Errno = 1634\n\tERROR_PATCH_PACKAGE_OPEN_FAILED                                           syscall.Errno = 1635\n\tERROR_PATCH_PACKAGE_INVALID                                               syscall.Errno = 1636\n\tERROR_PATCH_PACKAGE_UNSUPPORTED                                           syscall.Errno = 1637\n\tERROR_PRODUCT_VERSION                                                     syscall.Errno = 1638\n\tERROR_INVALID_COMMAND_LINE                                                syscall.Errno = 1639\n\tERROR_INSTALL_REMOTE_DISALLOWED                                           syscall.Errno = 1640\n\tERROR_SUCCESS_REBOOT_INITIATED                                            syscall.Errno = 1641\n\tERROR_PATCH_TARGET_NOT_FOUND                                              syscall.Errno = 1642\n\tERROR_PATCH_PACKAGE_REJECTED                                              syscall.Errno = 1643\n\tERROR_INSTALL_TRANSFORM_REJECTED                                          syscall.Errno = 1644\n\tERROR_INSTALL_REMOTE_PROHIBITED                                           syscall.Errno = 1645\n\tERROR_PATCH_REMOVAL_UNSUPPORTED                                           syscall.Errno = 1646\n\tERROR_UNKNOWN_PATCH                                                       syscall.Errno = 1647\n\tERROR_PATCH_NO_SEQUENCE                                                   syscall.Errno = 1648\n\tERROR_PATCH_REMOVAL_DISALLOWED                                            syscall.Errno = 1649\n\tERROR_INVALID_PATCH_XML                                                   syscall.Errno = 1650\n\tERROR_PATCH_MANAGED_ADVERTISED_PRODUCT                                    syscall.Errno = 1651\n\tERROR_INSTALL_SERVICE_SAFEBOOT                                            syscall.Errno = 1652\n\tERROR_FAIL_FAST_EXCEPTION                                                 syscall.Errno = 1653\n\tERROR_INSTALL_REJECTED                                                    syscall.Errno = 1654\n\tERROR_DYNAMIC_CODE_BLOCKED                                                syscall.Errno = 1655\n\tERROR_NOT_SAME_OBJECT                                                     syscall.Errno = 1656\n\tERROR_STRICT_CFG_VIOLATION                                                syscall.Errno = 1657\n\tERROR_SET_CONTEXT_DENIED                                                  syscall.Errno = 1660\n\tERROR_CROSS_PARTITION_VIOLATION                                           syscall.Errno = 1661\n\tRPC_S_INVALID_STRING_BINDING                                              syscall.Errno = 1700\n\tRPC_S_WRONG_KIND_OF_BINDING                                               syscall.Errno = 1701\n\tRPC_S_INVALID_BINDING                                                     syscall.Errno = 1702\n\tRPC_S_PROTSEQ_NOT_SUPPORTED                                               syscall.Errno = 1703\n\tRPC_S_INVALID_RPC_PROTSEQ                                                 syscall.Errno = 1704\n\tRPC_S_INVALID_STRING_UUID                                                 syscall.Errno = 1705\n\tRPC_S_INVALID_ENDPOINT_FORMAT                                             syscall.Errno = 1706\n\tRPC_S_INVALID_NET_ADDR                                                    syscall.Errno = 1707\n\tRPC_S_NO_ENDPOINT_FOUND                                                   syscall.Errno = 1708\n\tRPC_S_INVALID_TIMEOUT                                                     syscall.Errno = 1709\n\tRPC_S_OBJECT_NOT_FOUND                                                    syscall.Errno = 1710\n\tRPC_S_ALREADY_REGISTERED                                                  syscall.Errno = 1711\n\tRPC_S_TYPE_ALREADY_REGISTERED                                             syscall.Errno = 1712\n\tRPC_S_ALREADY_LISTENING                                                   syscall.Errno = 1713\n\tRPC_S_NO_PROTSEQS_REGISTERED                                              syscall.Errno = 1714\n\tRPC_S_NOT_LISTENING                                                       syscall.Errno = 1715\n\tRPC_S_UNKNOWN_MGR_TYPE                                                    syscall.Errno = 1716\n\tRPC_S_UNKNOWN_IF                                                          syscall.Errno = 1717\n\tRPC_S_NO_BINDINGS                                                         syscall.Errno = 1718\n\tRPC_S_NO_PROTSEQS                                                         syscall.Errno = 1719\n\tRPC_S_CANT_CREATE_ENDPOINT                                                syscall.Errno = 1720\n\tRPC_S_OUT_OF_RESOURCES                                                    syscall.Errno = 1721\n\tRPC_S_SERVER_UNAVAILABLE                                                  syscall.Errno = 1722\n\tRPC_S_SERVER_TOO_BUSY                                                     syscall.Errno = 1723\n\tRPC_S_INVALID_NETWORK_OPTIONS                                             syscall.Errno = 1724\n\tRPC_S_NO_CALL_ACTIVE                                                      syscall.Errno = 1725\n\tRPC_S_CALL_FAILED                                                         syscall.Errno = 1726\n\tRPC_S_CALL_FAILED_DNE                                                     syscall.Errno = 1727\n\tRPC_S_PROTOCOL_ERROR                                                      syscall.Errno = 1728\n\tRPC_S_PROXY_ACCESS_DENIED                                                 syscall.Errno = 1729\n\tRPC_S_UNSUPPORTED_TRANS_SYN                                               syscall.Errno = 1730\n\tRPC_S_UNSUPPORTED_TYPE                                                    syscall.Errno = 1732\n\tRPC_S_INVALID_TAG                                                         syscall.Errno = 1733\n\tRPC_S_INVALID_BOUND                                                       syscall.Errno = 1734\n\tRPC_S_NO_ENTRY_NAME                                                       syscall.Errno = 1735\n\tRPC_S_INVALID_NAME_SYNTAX                                                 syscall.Errno = 1736\n\tRPC_S_UNSUPPORTED_NAME_SYNTAX                                             syscall.Errno = 1737\n\tRPC_S_UUID_NO_ADDRESS                                                     syscall.Errno = 1739\n\tRPC_S_DUPLICATE_ENDPOINT                                                  syscall.Errno = 1740\n\tRPC_S_UNKNOWN_AUTHN_TYPE                                                  syscall.Errno = 1741\n\tRPC_S_MAX_CALLS_TOO_SMALL                                                 syscall.Errno = 1742\n\tRPC_S_STRING_TOO_LONG                                                     syscall.Errno = 1743\n\tRPC_S_PROTSEQ_NOT_FOUND                                                   syscall.Errno = 1744\n\tRPC_S_PROCNUM_OUT_OF_RANGE                                                syscall.Errno = 1745\n\tRPC_S_BINDING_HAS_NO_AUTH                                                 syscall.Errno = 1746\n\tRPC_S_UNKNOWN_AUTHN_SERVICE                                               syscall.Errno = 1747\n\tRPC_S_UNKNOWN_AUTHN_LEVEL                                                 syscall.Errno = 1748\n\tRPC_S_INVALID_AUTH_IDENTITY                                               syscall.Errno = 1749\n\tRPC_S_UNKNOWN_AUTHZ_SERVICE                                               syscall.Errno = 1750\n\tEPT_S_INVALID_ENTRY                                                       syscall.Errno = 1751\n\tEPT_S_CANT_PERFORM_OP                                                     syscall.Errno = 1752\n\tEPT_S_NOT_REGISTERED                                                      syscall.Errno = 1753\n\tRPC_S_NOTHING_TO_EXPORT                                                   syscall.Errno = 1754\n\tRPC_S_INCOMPLETE_NAME                                                     syscall.Errno = 1755\n\tRPC_S_INVALID_VERS_OPTION                                                 syscall.Errno = 1756\n\tRPC_S_NO_MORE_MEMBERS                                                     syscall.Errno = 1757\n\tRPC_S_NOT_ALL_OBJS_UNEXPORTED                                             syscall.Errno = 1758\n\tRPC_S_INTERFACE_NOT_FOUND                                                 syscall.Errno = 1759\n\tRPC_S_ENTRY_ALREADY_EXISTS                                                syscall.Errno = 1760\n\tRPC_S_ENTRY_NOT_FOUND                                                     syscall.Errno = 1761\n\tRPC_S_NAME_SERVICE_UNAVAILABLE                                            syscall.Errno = 1762\n\tRPC_S_INVALID_NAF_ID                                                      syscall.Errno = 1763\n\tRPC_S_CANNOT_SUPPORT                                                      syscall.Errno = 1764\n\tRPC_S_NO_CONTEXT_AVAILABLE                                                syscall.Errno = 1765\n\tRPC_S_INTERNAL_ERROR                                                      syscall.Errno = 1766\n\tRPC_S_ZERO_DIVIDE                                                         syscall.Errno = 1767\n\tRPC_S_ADDRESS_ERROR                                                       syscall.Errno = 1768\n\tRPC_S_FP_DIV_ZERO                                                         syscall.Errno = 1769\n\tRPC_S_FP_UNDERFLOW                                                        syscall.Errno = 1770\n\tRPC_S_FP_OVERFLOW                                                         syscall.Errno = 1771\n\tRPC_X_NO_MORE_ENTRIES                                                     syscall.Errno = 1772\n\tRPC_X_SS_CHAR_TRANS_OPEN_FAIL                                             syscall.Errno = 1773\n\tRPC_X_SS_CHAR_TRANS_SHORT_FILE                                            syscall.Errno = 1774\n\tRPC_X_SS_IN_NULL_CONTEXT                                                  syscall.Errno = 1775\n\tRPC_X_SS_CONTEXT_DAMAGED                                                  syscall.Errno = 1777\n\tRPC_X_SS_HANDLES_MISMATCH                                                 syscall.Errno = 1778\n\tRPC_X_SS_CANNOT_GET_CALL_HANDLE                                           syscall.Errno = 1779\n\tRPC_X_NULL_REF_POINTER                                                    syscall.Errno = 1780\n\tRPC_X_ENUM_VALUE_OUT_OF_RANGE                                             syscall.Errno = 1781\n\tRPC_X_BYTE_COUNT_TOO_SMALL                                                syscall.Errno = 1782\n\tRPC_X_BAD_STUB_DATA                                                       syscall.Errno = 1783\n\tERROR_INVALID_USER_BUFFER                                                 syscall.Errno = 1784\n\tERROR_UNRECOGNIZED_MEDIA                                                  syscall.Errno = 1785\n\tERROR_NO_TRUST_LSA_SECRET                                                 syscall.Errno = 1786\n\tERROR_NO_TRUST_SAM_ACCOUNT                                                syscall.Errno = 1787\n\tERROR_TRUSTED_DOMAIN_FAILURE                                              syscall.Errno = 1788\n\tERROR_TRUSTED_RELATIONSHIP_FAILURE                                        syscall.Errno = 1789\n\tERROR_TRUST_FAILURE                                                       syscall.Errno = 1790\n\tRPC_S_CALL_IN_PROGRESS                                                    syscall.Errno = 1791\n\tERROR_NETLOGON_NOT_STARTED                                                syscall.Errno = 1792\n\tERROR_ACCOUNT_EXPIRED                                                     syscall.Errno = 1793\n\tERROR_REDIRECTOR_HAS_OPEN_HANDLES                                         syscall.Errno = 1794\n\tERROR_PRINTER_DRIVER_ALREADY_INSTALLED                                    syscall.Errno = 1795\n\tERROR_UNKNOWN_PORT                                                        syscall.Errno = 1796\n\tERROR_UNKNOWN_PRINTER_DRIVER                                              syscall.Errno = 1797\n\tERROR_UNKNOWN_PRINTPROCESSOR                                              syscall.Errno = 1798\n\tERROR_INVALID_SEPARATOR_FILE                                              syscall.Errno = 1799\n\tERROR_INVALID_PRIORITY                                                    syscall.Errno = 1800\n\tERROR_INVALID_PRINTER_NAME                                                syscall.Errno = 1801\n\tERROR_PRINTER_ALREADY_EXISTS                                              syscall.Errno = 1802\n\tERROR_INVALID_PRINTER_COMMAND                                             syscall.Errno = 1803\n\tERROR_INVALID_DATATYPE                                                    syscall.Errno = 1804\n\tERROR_INVALID_ENVIRONMENT                                                 syscall.Errno = 1805\n\tRPC_S_NO_MORE_BINDINGS                                                    syscall.Errno = 1806\n\tERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT                                   syscall.Errno = 1807\n\tERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT                                   syscall.Errno = 1808\n\tERROR_NOLOGON_SERVER_TRUST_ACCOUNT                                        syscall.Errno = 1809\n\tERROR_DOMAIN_TRUST_INCONSISTENT                                           syscall.Errno = 1810\n\tERROR_SERVER_HAS_OPEN_HANDLES                                             syscall.Errno = 1811\n\tERROR_RESOURCE_DATA_NOT_FOUND                                             syscall.Errno = 1812\n\tERROR_RESOURCE_TYPE_NOT_FOUND                                             syscall.Errno = 1813\n\tERROR_RESOURCE_NAME_NOT_FOUND                                             syscall.Errno = 1814\n\tERROR_RESOURCE_LANG_NOT_FOUND                                             syscall.Errno = 1815\n\tERROR_NOT_ENOUGH_QUOTA                                                    syscall.Errno = 1816\n\tRPC_S_NO_INTERFACES                                                       syscall.Errno = 1817\n\tRPC_S_CALL_CANCELLED                                                      syscall.Errno = 1818\n\tRPC_S_BINDING_INCOMPLETE                                                  syscall.Errno = 1819\n\tRPC_S_COMM_FAILURE                                                        syscall.Errno = 1820\n\tRPC_S_UNSUPPORTED_AUTHN_LEVEL                                             syscall.Errno = 1821\n\tRPC_S_NO_PRINC_NAME                                                       syscall.Errno = 1822\n\tRPC_S_NOT_RPC_ERROR                                                       syscall.Errno = 1823\n\tRPC_S_UUID_LOCAL_ONLY                                                     syscall.Errno = 1824\n\tRPC_S_SEC_PKG_ERROR                                                       syscall.Errno = 1825\n\tRPC_S_NOT_CANCELLED                                                       syscall.Errno = 1826\n\tRPC_X_INVALID_ES_ACTION                                                   syscall.Errno = 1827\n\tRPC_X_WRONG_ES_VERSION                                                    syscall.Errno = 1828\n\tRPC_X_WRONG_STUB_VERSION                                                  syscall.Errno = 1829\n\tRPC_X_INVALID_PIPE_OBJECT                                                 syscall.Errno = 1830\n\tRPC_X_WRONG_PIPE_ORDER                                                    syscall.Errno = 1831\n\tRPC_X_WRONG_PIPE_VERSION                                                  syscall.Errno = 1832\n\tRPC_S_COOKIE_AUTH_FAILED                                                  syscall.Errno = 1833\n\tRPC_S_DO_NOT_DISTURB                                                      syscall.Errno = 1834\n\tRPC_S_SYSTEM_HANDLE_COUNT_EXCEEDED                                        syscall.Errno = 1835\n\tRPC_S_SYSTEM_HANDLE_TYPE_MISMATCH                                         syscall.Errno = 1836\n\tRPC_S_GROUP_MEMBER_NOT_FOUND                                              syscall.Errno = 1898\n\tEPT_S_CANT_CREATE                                                         syscall.Errno = 1899\n\tRPC_S_INVALID_OBJECT                                                      syscall.Errno = 1900\n\tERROR_INVALID_TIME                                                        syscall.Errno = 1901\n\tERROR_INVALID_FORM_NAME                                                   syscall.Errno = 1902\n\tERROR_INVALID_FORM_SIZE                                                   syscall.Errno = 1903\n\tERROR_ALREADY_WAITING                                                     syscall.Errno = 1904\n\tERROR_PRINTER_DELETED                                                     syscall.Errno = 1905\n\tERROR_INVALID_PRINTER_STATE                                               syscall.Errno = 1906\n\tERROR_PASSWORD_MUST_CHANGE                                                syscall.Errno = 1907\n\tERROR_DOMAIN_CONTROLLER_NOT_FOUND                                         syscall.Errno = 1908\n\tERROR_ACCOUNT_LOCKED_OUT                                                  syscall.Errno = 1909\n\tOR_INVALID_OXID                                                           syscall.Errno = 1910\n\tOR_INVALID_OID                                                            syscall.Errno = 1911\n\tOR_INVALID_SET                                                            syscall.Errno = 1912\n\tRPC_S_SEND_INCOMPLETE                                                     syscall.Errno = 1913\n\tRPC_S_INVALID_ASYNC_HANDLE                                                syscall.Errno = 1914\n\tRPC_S_INVALID_ASYNC_CALL                                                  syscall.Errno = 1915\n\tRPC_X_PIPE_CLOSED                                                         syscall.Errno = 1916\n\tRPC_X_PIPE_DISCIPLINE_ERROR                                               syscall.Errno = 1917\n\tRPC_X_PIPE_EMPTY                                                          syscall.Errno = 1918\n\tERROR_NO_SITENAME                                                         syscall.Errno = 1919\n\tERROR_CANT_ACCESS_FILE                                                    syscall.Errno = 1920\n\tERROR_CANT_RESOLVE_FILENAME                                               syscall.Errno = 1921\n\tRPC_S_ENTRY_TYPE_MISMATCH                                                 syscall.Errno = 1922\n\tRPC_S_NOT_ALL_OBJS_EXPORTED                                               syscall.Errno = 1923\n\tRPC_S_INTERFACE_NOT_EXPORTED                                              syscall.Errno = 1924\n\tRPC_S_PROFILE_NOT_ADDED                                                   syscall.Errno = 1925\n\tRPC_S_PRF_ELT_NOT_ADDED                                                   syscall.Errno = 1926\n\tRPC_S_PRF_ELT_NOT_REMOVED                                                 syscall.Errno = 1927\n\tRPC_S_GRP_ELT_NOT_ADDED                                                   syscall.Errno = 1928\n\tRPC_S_GRP_ELT_NOT_REMOVED                                                 syscall.Errno = 1929\n\tERROR_KM_DRIVER_BLOCKED                                                   syscall.Errno = 1930\n\tERROR_CONTEXT_EXPIRED                                                     syscall.Errno = 1931\n\tERROR_PER_USER_TRUST_QUOTA_EXCEEDED                                       syscall.Errno = 1932\n\tERROR_ALL_USER_TRUST_QUOTA_EXCEEDED                                       syscall.Errno = 1933\n\tERROR_USER_DELETE_TRUST_QUOTA_EXCEEDED                                    syscall.Errno = 1934\n\tERROR_AUTHENTICATION_FIREWALL_FAILED                                      syscall.Errno = 1935\n\tERROR_REMOTE_PRINT_CONNECTIONS_BLOCKED                                    syscall.Errno = 1936\n\tERROR_NTLM_BLOCKED                                                        syscall.Errno = 1937\n\tERROR_PASSWORD_CHANGE_REQUIRED                                            syscall.Errno = 1938\n\tERROR_LOST_MODE_LOGON_RESTRICTION                                         syscall.Errno = 1939\n\tERROR_INVALID_PIXEL_FORMAT                                                syscall.Errno = 2000\n\tERROR_BAD_DRIVER                                                          syscall.Errno = 2001\n\tERROR_INVALID_WINDOW_STYLE                                                syscall.Errno = 2002\n\tERROR_METAFILE_NOT_SUPPORTED                                              syscall.Errno = 2003\n\tERROR_TRANSFORM_NOT_SUPPORTED                                             syscall.Errno = 2004\n\tERROR_CLIPPING_NOT_SUPPORTED                                              syscall.Errno = 2005\n\tERROR_INVALID_CMM                                                         syscall.Errno = 2010\n\tERROR_INVALID_PROFILE                                                     syscall.Errno = 2011\n\tERROR_TAG_NOT_FOUND                                                       syscall.Errno = 2012\n\tERROR_TAG_NOT_PRESENT                                                     syscall.Errno = 2013\n\tERROR_DUPLICATE_TAG                                                       syscall.Errno = 2014\n\tERROR_PROFILE_NOT_ASSOCIATED_WITH_DEVICE                                  syscall.Errno = 2015\n\tERROR_PROFILE_NOT_FOUND                                                   syscall.Errno = 2016\n\tERROR_INVALID_COLORSPACE                                                  syscall.Errno = 2017\n\tERROR_ICM_NOT_ENABLED                                                     syscall.Errno = 2018\n\tERROR_DELETING_ICM_XFORM                                                  syscall.Errno = 2019\n\tERROR_INVALID_TRANSFORM                                                   syscall.Errno = 2020\n\tERROR_COLORSPACE_MISMATCH                                                 syscall.Errno = 2021\n\tERROR_INVALID_COLORINDEX                                                  syscall.Errno = 2022\n\tERROR_PROFILE_DOES_NOT_MATCH_DEVICE                                       syscall.Errno = 2023\n\tERROR_CONNECTED_OTHER_PASSWORD                                            syscall.Errno = 2108\n\tERROR_CONNECTED_OTHER_PASSWORD_DEFAULT                                    syscall.Errno = 2109\n\tERROR_BAD_USERNAME                                                        syscall.Errno = 2202\n\tERROR_NOT_CONNECTED                                                       syscall.Errno = 2250\n\tERROR_OPEN_FILES                                                          syscall.Errno = 2401\n\tERROR_ACTIVE_CONNECTIONS                                                  syscall.Errno = 2402\n\tERROR_DEVICE_IN_USE                                                       syscall.Errno = 2404\n\tERROR_UNKNOWN_PRINT_MONITOR                                               syscall.Errno = 3000\n\tERROR_PRINTER_DRIVER_IN_USE                                               syscall.Errno = 3001\n\tERROR_SPOOL_FILE_NOT_FOUND                                                syscall.Errno = 3002\n\tERROR_SPL_NO_STARTDOC                                                     syscall.Errno = 3003\n\tERROR_SPL_NO_ADDJOB                                                       syscall.Errno = 3004\n\tERROR_PRINT_PROCESSOR_ALREADY_INSTALLED                                   syscall.Errno = 3005\n\tERROR_PRINT_MONITOR_ALREADY_INSTALLED                                     syscall.Errno = 3006\n\tERROR_INVALID_PRINT_MONITOR                                               syscall.Errno = 3007\n\tERROR_PRINT_MONITOR_IN_USE                                                syscall.Errno = 3008\n\tERROR_PRINTER_HAS_JOBS_QUEUED                                             syscall.Errno = 3009\n\tERROR_SUCCESS_REBOOT_REQUIRED                                             syscall.Errno = 3010\n\tERROR_SUCCESS_RESTART_REQUIRED                                            syscall.Errno = 3011\n\tERROR_PRINTER_NOT_FOUND                                                   syscall.Errno = 3012\n\tERROR_PRINTER_DRIVER_WARNED                                               syscall.Errno = 3013\n\tERROR_PRINTER_DRIVER_BLOCKED                                              syscall.Errno = 3014\n\tERROR_PRINTER_DRIVER_PACKAGE_IN_USE                                       syscall.Errno = 3015\n\tERROR_CORE_DRIVER_PACKAGE_NOT_FOUND                                       syscall.Errno = 3016\n\tERROR_FAIL_REBOOT_REQUIRED                                                syscall.Errno = 3017\n\tERROR_FAIL_REBOOT_INITIATED                                               syscall.Errno = 3018\n\tERROR_PRINTER_DRIVER_DOWNLOAD_NEEDED                                      syscall.Errno = 3019\n\tERROR_PRINT_JOB_RESTART_REQUIRED                                          syscall.Errno = 3020\n\tERROR_INVALID_PRINTER_DRIVER_MANIFEST                                     syscall.Errno = 3021\n\tERROR_PRINTER_NOT_SHAREABLE                                               syscall.Errno = 3022\n\tERROR_REQUEST_PAUSED                                                      syscall.Errno = 3050\n\tERROR_APPEXEC_CONDITION_NOT_SATISFIED                                     syscall.Errno = 3060\n\tERROR_APPEXEC_HANDLE_INVALIDATED                                          syscall.Errno = 3061\n\tERROR_APPEXEC_INVALID_HOST_GENERATION                                     syscall.Errno = 3062\n\tERROR_APPEXEC_UNEXPECTED_PROCESS_REGISTRATION                             syscall.Errno = 3063\n\tERROR_APPEXEC_INVALID_HOST_STATE                                          syscall.Errno = 3064\n\tERROR_APPEXEC_NO_DONOR                                                    syscall.Errno = 3065\n\tERROR_APPEXEC_HOST_ID_MISMATCH                                            syscall.Errno = 3066\n\tERROR_APPEXEC_UNKNOWN_USER                                                syscall.Errno = 3067\n\tERROR_IO_REISSUE_AS_CACHED                                                syscall.Errno = 3950\n\tERROR_WINS_INTERNAL                                                       syscall.Errno = 4000\n\tERROR_CAN_NOT_DEL_LOCAL_WINS                                              syscall.Errno = 4001\n\tERROR_STATIC_INIT                                                         syscall.Errno = 4002\n\tERROR_INC_BACKUP                                                          syscall.Errno = 4003\n\tERROR_FULL_BACKUP                                                         syscall.Errno = 4004\n\tERROR_REC_NON_EXISTENT                                                    syscall.Errno = 4005\n\tERROR_RPL_NOT_ALLOWED                                                     syscall.Errno = 4006\n\tPEERDIST_ERROR_CONTENTINFO_VERSION_UNSUPPORTED                            syscall.Errno = 4050\n\tPEERDIST_ERROR_CANNOT_PARSE_CONTENTINFO                                   syscall.Errno = 4051\n\tPEERDIST_ERROR_MISSING_DATA                                               syscall.Errno = 4052\n\tPEERDIST_ERROR_NO_MORE                                                    syscall.Errno = 4053\n\tPEERDIST_ERROR_NOT_INITIALIZED                                            syscall.Errno = 4054\n\tPEERDIST_ERROR_ALREADY_INITIALIZED                                        syscall.Errno = 4055\n\tPEERDIST_ERROR_SHUTDOWN_IN_PROGRESS                                       syscall.Errno = 4056\n\tPEERDIST_ERROR_INVALIDATED                                                syscall.Errno = 4057\n\tPEERDIST_ERROR_ALREADY_EXISTS                                             syscall.Errno = 4058\n\tPEERDIST_ERROR_OPERATION_NOTFOUND                                         syscall.Errno = 4059\n\tPEERDIST_ERROR_ALREADY_COMPLETED                                          syscall.Errno = 4060\n\tPEERDIST_ERROR_OUT_OF_BOUNDS                                              syscall.Errno = 4061\n\tPEERDIST_ERROR_VERSION_UNSUPPORTED                                        syscall.Errno = 4062\n\tPEERDIST_ERROR_INVALID_CONFIGURATION                                      syscall.Errno = 4063\n\tPEERDIST_ERROR_NOT_LICENSED                                               syscall.Errno = 4064\n\tPEERDIST_ERROR_SERVICE_UNAVAILABLE                                        syscall.Errno = 4065\n\tPEERDIST_ERROR_TRUST_FAILURE                                              syscall.Errno = 4066\n\tERROR_DHCP_ADDRESS_CONFLICT                                               syscall.Errno = 4100\n\tERROR_WMI_GUID_NOT_FOUND                                                  syscall.Errno = 4200\n\tERROR_WMI_INSTANCE_NOT_FOUND                                              syscall.Errno = 4201\n\tERROR_WMI_ITEMID_NOT_FOUND                                                syscall.Errno = 4202\n\tERROR_WMI_TRY_AGAIN                                                       syscall.Errno = 4203\n\tERROR_WMI_DP_NOT_FOUND                                                    syscall.Errno = 4204\n\tERROR_WMI_UNRESOLVED_INSTANCE_REF                                         syscall.Errno = 4205\n\tERROR_WMI_ALREADY_ENABLED                                                 syscall.Errno = 4206\n\tERROR_WMI_GUID_DISCONNECTED                                               syscall.Errno = 4207\n\tERROR_WMI_SERVER_UNAVAILABLE                                              syscall.Errno = 4208\n\tERROR_WMI_DP_FAILED                                                       syscall.Errno = 4209\n\tERROR_WMI_INVALID_MOF                                                     syscall.Errno = 4210\n\tERROR_WMI_INVALID_REGINFO                                                 syscall.Errno = 4211\n\tERROR_WMI_ALREADY_DISABLED                                                syscall.Errno = 4212\n\tERROR_WMI_READ_ONLY                                                       syscall.Errno = 4213\n\tERROR_WMI_SET_FAILURE                                                     syscall.Errno = 4214\n\tERROR_NOT_APPCONTAINER                                                    syscall.Errno = 4250\n\tERROR_APPCONTAINER_REQUIRED                                               syscall.Errno = 4251\n\tERROR_NOT_SUPPORTED_IN_APPCONTAINER                                       syscall.Errno = 4252\n\tERROR_INVALID_PACKAGE_SID_LENGTH                                          syscall.Errno = 4253\n\tERROR_INVALID_MEDIA                                                       syscall.Errno = 4300\n\tERROR_INVALID_LIBRARY                                                     syscall.Errno = 4301\n\tERROR_INVALID_MEDIA_POOL                                                  syscall.Errno = 4302\n\tERROR_DRIVE_MEDIA_MISMATCH                                                syscall.Errno = 4303\n\tERROR_MEDIA_OFFLINE                                                       syscall.Errno = 4304\n\tERROR_LIBRARY_OFFLINE                                                     syscall.Errno = 4305\n\tERROR_EMPTY                                                               syscall.Errno = 4306\n\tERROR_NOT_EMPTY                                                           syscall.Errno = 4307\n\tERROR_MEDIA_UNAVAILABLE                                                   syscall.Errno = 4308\n\tERROR_RESOURCE_DISABLED                                                   syscall.Errno = 4309\n\tERROR_INVALID_CLEANER                                                     syscall.Errno = 4310\n\tERROR_UNABLE_TO_CLEAN                                                     syscall.Errno = 4311\n\tERROR_OBJECT_NOT_FOUND                                                    syscall.Errno = 4312\n\tERROR_DATABASE_FAILURE                                                    syscall.Errno = 4313\n\tERROR_DATABASE_FULL                                                       syscall.Errno = 4314\n\tERROR_MEDIA_INCOMPATIBLE                                                  syscall.Errno = 4315\n\tERROR_RESOURCE_NOT_PRESENT                                                syscall.Errno = 4316\n\tERROR_INVALID_OPERATION                                                   syscall.Errno = 4317\n\tERROR_MEDIA_NOT_AVAILABLE                                                 syscall.Errno = 4318\n\tERROR_DEVICE_NOT_AVAILABLE                                                syscall.Errno = 4319\n\tERROR_REQUEST_REFUSED                                                     syscall.Errno = 4320\n\tERROR_INVALID_DRIVE_OBJECT                                                syscall.Errno = 4321\n\tERROR_LIBRARY_FULL                                                        syscall.Errno = 4322\n\tERROR_MEDIUM_NOT_ACCESSIBLE                                               syscall.Errno = 4323\n\tERROR_UNABLE_TO_LOAD_MEDIUM                                               syscall.Errno = 4324\n\tERROR_UNABLE_TO_INVENTORY_DRIVE                                           syscall.Errno = 4325\n\tERROR_UNABLE_TO_INVENTORY_SLOT                                            syscall.Errno = 4326\n\tERROR_UNABLE_TO_INVENTORY_TRANSPORT                                       syscall.Errno = 4327\n\tERROR_TRANSPORT_FULL                                                      syscall.Errno = 4328\n\tERROR_CONTROLLING_IEPORT                                                  syscall.Errno = 4329\n\tERROR_UNABLE_TO_EJECT_MOUNTED_MEDIA                                       syscall.Errno = 4330\n\tERROR_CLEANER_SLOT_SET                                                    syscall.Errno = 4331\n\tERROR_CLEANER_SLOT_NOT_SET                                                syscall.Errno = 4332\n\tERROR_CLEANER_CARTRIDGE_SPENT                                             syscall.Errno = 4333\n\tERROR_UNEXPECTED_OMID                                                     syscall.Errno = 4334\n\tERROR_CANT_DELETE_LAST_ITEM                                               syscall.Errno = 4335\n\tERROR_MESSAGE_EXCEEDS_MAX_SIZE                                            syscall.Errno = 4336\n\tERROR_VOLUME_CONTAINS_SYS_FILES                                           syscall.Errno = 4337\n\tERROR_INDIGENOUS_TYPE                                                     syscall.Errno = 4338\n\tERROR_NO_SUPPORTING_DRIVES                                                syscall.Errno = 4339\n\tERROR_CLEANER_CARTRIDGE_INSTALLED                                         syscall.Errno = 4340\n\tERROR_IEPORT_FULL                                                         syscall.Errno = 4341\n\tERROR_FILE_OFFLINE                                                        syscall.Errno = 4350\n\tERROR_REMOTE_STORAGE_NOT_ACTIVE                                           syscall.Errno = 4351\n\tERROR_REMOTE_STORAGE_MEDIA_ERROR                                          syscall.Errno = 4352\n\tERROR_NOT_A_REPARSE_POINT                                                 syscall.Errno = 4390\n\tERROR_REPARSE_ATTRIBUTE_CONFLICT                                          syscall.Errno = 4391\n\tERROR_INVALID_REPARSE_DATA                                                syscall.Errno = 4392\n\tERROR_REPARSE_TAG_INVALID                                                 syscall.Errno = 4393\n\tERROR_REPARSE_TAG_MISMATCH                                                syscall.Errno = 4394\n\tERROR_REPARSE_POINT_ENCOUNTERED                                           syscall.Errno = 4395\n\tERROR_APP_DATA_NOT_FOUND                                                  syscall.Errno = 4400\n\tERROR_APP_DATA_EXPIRED                                                    syscall.Errno = 4401\n\tERROR_APP_DATA_CORRUPT                                                    syscall.Errno = 4402\n\tERROR_APP_DATA_LIMIT_EXCEEDED                                             syscall.Errno = 4403\n\tERROR_APP_DATA_REBOOT_REQUIRED                                            syscall.Errno = 4404\n\tERROR_SECUREBOOT_ROLLBACK_DETECTED                                        syscall.Errno = 4420\n\tERROR_SECUREBOOT_POLICY_VIOLATION                                         syscall.Errno = 4421\n\tERROR_SECUREBOOT_INVALID_POLICY                                           syscall.Errno = 4422\n\tERROR_SECUREBOOT_POLICY_PUBLISHER_NOT_FOUND                               syscall.Errno = 4423\n\tERROR_SECUREBOOT_POLICY_NOT_SIGNED                                        syscall.Errno = 4424\n\tERROR_SECUREBOOT_NOT_ENABLED                                              syscall.Errno = 4425\n\tERROR_SECUREBOOT_FILE_REPLACED                                            syscall.Errno = 4426\n\tERROR_SECUREBOOT_POLICY_NOT_AUTHORIZED                                    syscall.Errno = 4427\n\tERROR_SECUREBOOT_POLICY_UNKNOWN                                           syscall.Errno = 4428\n\tERROR_SECUREBOOT_POLICY_MISSING_ANTIROLLBACKVERSION                       syscall.Errno = 4429\n\tERROR_SECUREBOOT_PLATFORM_ID_MISMATCH                                     syscall.Errno = 4430\n\tERROR_SECUREBOOT_POLICY_ROLLBACK_DETECTED                                 syscall.Errno = 4431\n\tERROR_SECUREBOOT_POLICY_UPGRADE_MISMATCH                                  syscall.Errno = 4432\n\tERROR_SECUREBOOT_REQUIRED_POLICY_FILE_MISSING                             syscall.Errno = 4433\n\tERROR_SECUREBOOT_NOT_BASE_POLICY                                          syscall.Errno = 4434\n\tERROR_SECUREBOOT_NOT_SUPPLEMENTAL_POLICY                                  syscall.Errno = 4435\n\tERROR_OFFLOAD_READ_FLT_NOT_SUPPORTED                                      syscall.Errno = 4440\n\tERROR_OFFLOAD_WRITE_FLT_NOT_SUPPORTED                                     syscall.Errno = 4441\n\tERROR_OFFLOAD_READ_FILE_NOT_SUPPORTED                                     syscall.Errno = 4442\n\tERROR_OFFLOAD_WRITE_FILE_NOT_SUPPORTED                                    syscall.Errno = 4443\n\tERROR_ALREADY_HAS_STREAM_ID                                               syscall.Errno = 4444\n\tERROR_SMR_GARBAGE_COLLECTION_REQUIRED                                     syscall.Errno = 4445\n\tERROR_WOF_WIM_HEADER_CORRUPT                                              syscall.Errno = 4446\n\tERROR_WOF_WIM_RESOURCE_TABLE_CORRUPT                                      syscall.Errno = 4447\n\tERROR_WOF_FILE_RESOURCE_TABLE_CORRUPT                                     syscall.Errno = 4448\n\tERROR_VOLUME_NOT_SIS_ENABLED                                              syscall.Errno = 4500\n\tERROR_SYSTEM_INTEGRITY_ROLLBACK_DETECTED                                  syscall.Errno = 4550\n\tERROR_SYSTEM_INTEGRITY_POLICY_VIOLATION                                   syscall.Errno = 4551\n\tERROR_SYSTEM_INTEGRITY_INVALID_POLICY                                     syscall.Errno = 4552\n\tERROR_SYSTEM_INTEGRITY_POLICY_NOT_SIGNED                                  syscall.Errno = 4553\n\tERROR_SYSTEM_INTEGRITY_TOO_MANY_POLICIES                                  syscall.Errno = 4554\n\tERROR_SYSTEM_INTEGRITY_SUPPLEMENTAL_POLICY_NOT_AUTHORIZED                 syscall.Errno = 4555\n\tERROR_VSM_NOT_INITIALIZED                                                 syscall.Errno = 4560\n\tERROR_VSM_DMA_PROTECTION_NOT_IN_USE                                       syscall.Errno = 4561\n\tERROR_PLATFORM_MANIFEST_NOT_AUTHORIZED                                    syscall.Errno = 4570\n\tERROR_PLATFORM_MANIFEST_INVALID                                           syscall.Errno = 4571\n\tERROR_PLATFORM_MANIFEST_FILE_NOT_AUTHORIZED                               syscall.Errno = 4572\n\tERROR_PLATFORM_MANIFEST_CATALOG_NOT_AUTHORIZED                            syscall.Errno = 4573\n\tERROR_PLATFORM_MANIFEST_BINARY_ID_NOT_FOUND                               syscall.Errno = 4574\n\tERROR_PLATFORM_MANIFEST_NOT_ACTIVE                                        syscall.Errno = 4575\n\tERROR_PLATFORM_MANIFEST_NOT_SIGNED                                        syscall.Errno = 4576\n\tERROR_DEPENDENT_RESOURCE_EXISTS                                           syscall.Errno = 5001\n\tERROR_DEPENDENCY_NOT_FOUND                                                syscall.Errno = 5002\n\tERROR_DEPENDENCY_ALREADY_EXISTS                                           syscall.Errno = 5003\n\tERROR_RESOURCE_NOT_ONLINE                                                 syscall.Errno = 5004\n\tERROR_HOST_NODE_NOT_AVAILABLE                                             syscall.Errno = 5005\n\tERROR_RESOURCE_NOT_AVAILABLE                                              syscall.Errno = 5006\n\tERROR_RESOURCE_NOT_FOUND                                                  syscall.Errno = 5007\n\tERROR_SHUTDOWN_CLUSTER                                                    syscall.Errno = 5008\n\tERROR_CANT_EVICT_ACTIVE_NODE                                              syscall.Errno = 5009\n\tERROR_OBJECT_ALREADY_EXISTS                                               syscall.Errno = 5010\n\tERROR_OBJECT_IN_LIST                                                      syscall.Errno = 5011\n\tERROR_GROUP_NOT_AVAILABLE                                                 syscall.Errno = 5012\n\tERROR_GROUP_NOT_FOUND                                                     syscall.Errno = 5013\n\tERROR_GROUP_NOT_ONLINE                                                    syscall.Errno = 5014\n\tERROR_HOST_NODE_NOT_RESOURCE_OWNER                                        syscall.Errno = 5015\n\tERROR_HOST_NODE_NOT_GROUP_OWNER                                           syscall.Errno = 5016\n\tERROR_RESMON_CREATE_FAILED                                                syscall.Errno = 5017\n\tERROR_RESMON_ONLINE_FAILED                                                syscall.Errno = 5018\n\tERROR_RESOURCE_ONLINE                                                     syscall.Errno = 5019\n\tERROR_QUORUM_RESOURCE                                                     syscall.Errno = 5020\n\tERROR_NOT_QUORUM_CAPABLE                                                  syscall.Errno = 5021\n\tERROR_CLUSTER_SHUTTING_DOWN                                               syscall.Errno = 5022\n\tERROR_INVALID_STATE                                                       syscall.Errno = 5023\n\tERROR_RESOURCE_PROPERTIES_STORED                                          syscall.Errno = 5024\n\tERROR_NOT_QUORUM_CLASS                                                    syscall.Errno = 5025\n\tERROR_CORE_RESOURCE                                                       syscall.Errno = 5026\n\tERROR_QUORUM_RESOURCE_ONLINE_FAILED                                       syscall.Errno = 5027\n\tERROR_QUORUMLOG_OPEN_FAILED                                               syscall.Errno = 5028\n\tERROR_CLUSTERLOG_CORRUPT                                                  syscall.Errno = 5029\n\tERROR_CLUSTERLOG_RECORD_EXCEEDS_MAXSIZE                                   syscall.Errno = 5030\n\tERROR_CLUSTERLOG_EXCEEDS_MAXSIZE                                          syscall.Errno = 5031\n\tERROR_CLUSTERLOG_CHKPOINT_NOT_FOUND                                       syscall.Errno = 5032\n\tERROR_CLUSTERLOG_NOT_ENOUGH_SPACE                                         syscall.Errno = 5033\n\tERROR_QUORUM_OWNER_ALIVE                                                  syscall.Errno = 5034\n\tERROR_NETWORK_NOT_AVAILABLE                                               syscall.Errno = 5035\n\tERROR_NODE_NOT_AVAILABLE                                                  syscall.Errno = 5036\n\tERROR_ALL_NODES_NOT_AVAILABLE                                             syscall.Errno = 5037\n\tERROR_RESOURCE_FAILED                                                     syscall.Errno = 5038\n\tERROR_CLUSTER_INVALID_NODE                                                syscall.Errno = 5039\n\tERROR_CLUSTER_NODE_EXISTS                                                 syscall.Errno = 5040\n\tERROR_CLUSTER_JOIN_IN_PROGRESS                                            syscall.Errno = 5041\n\tERROR_CLUSTER_NODE_NOT_FOUND                                              syscall.Errno = 5042\n\tERROR_CLUSTER_LOCAL_NODE_NOT_FOUND                                        syscall.Errno = 5043\n\tERROR_CLUSTER_NETWORK_EXISTS                                              syscall.Errno = 5044\n\tERROR_CLUSTER_NETWORK_NOT_FOUND                                           syscall.Errno = 5045\n\tERROR_CLUSTER_NETINTERFACE_EXISTS                                         syscall.Errno = 5046\n\tERROR_CLUSTER_NETINTERFACE_NOT_FOUND                                      syscall.Errno = 5047\n\tERROR_CLUSTER_INVALID_REQUEST                                             syscall.Errno = 5048\n\tERROR_CLUSTER_INVALID_NETWORK_PROVIDER                                    syscall.Errno = 5049\n\tERROR_CLUSTER_NODE_DOWN                                                   syscall.Errno = 5050\n\tERROR_CLUSTER_NODE_UNREACHABLE                                            syscall.Errno = 5051\n\tERROR_CLUSTER_NODE_NOT_MEMBER                                             syscall.Errno = 5052\n\tERROR_CLUSTER_JOIN_NOT_IN_PROGRESS                                        syscall.Errno = 5053\n\tERROR_CLUSTER_INVALID_NETWORK                                             syscall.Errno = 5054\n\tERROR_CLUSTER_NODE_UP                                                     syscall.Errno = 5056\n\tERROR_CLUSTER_IPADDR_IN_USE                                               syscall.Errno = 5057\n\tERROR_CLUSTER_NODE_NOT_PAUSED                                             syscall.Errno = 5058\n\tERROR_CLUSTER_NO_SECURITY_CONTEXT                                         syscall.Errno = 5059\n\tERROR_CLUSTER_NETWORK_NOT_INTERNAL                                        syscall.Errno = 5060\n\tERROR_CLUSTER_NODE_ALREADY_UP                                             syscall.Errno = 5061\n\tERROR_CLUSTER_NODE_ALREADY_DOWN                                           syscall.Errno = 5062\n\tERROR_CLUSTER_NETWORK_ALREADY_ONLINE                                      syscall.Errno = 5063\n\tERROR_CLUSTER_NETWORK_ALREADY_OFFLINE                                     syscall.Errno = 5064\n\tERROR_CLUSTER_NODE_ALREADY_MEMBER                                         syscall.Errno = 5065\n\tERROR_CLUSTER_LAST_INTERNAL_NETWORK                                       syscall.Errno = 5066\n\tERROR_CLUSTER_NETWORK_HAS_DEPENDENTS                                      syscall.Errno = 5067\n\tERROR_INVALID_OPERATION_ON_QUORUM                                         syscall.Errno = 5068\n\tERROR_DEPENDENCY_NOT_ALLOWED                                              syscall.Errno = 5069\n\tERROR_CLUSTER_NODE_PAUSED                                                 syscall.Errno = 5070\n\tERROR_NODE_CANT_HOST_RESOURCE                                             syscall.Errno = 5071\n\tERROR_CLUSTER_NODE_NOT_READY                                              syscall.Errno = 5072\n\tERROR_CLUSTER_NODE_SHUTTING_DOWN                                          syscall.Errno = 5073\n\tERROR_CLUSTER_JOIN_ABORTED                                                syscall.Errno = 5074\n\tERROR_CLUSTER_INCOMPATIBLE_VERSIONS                                       syscall.Errno = 5075\n\tERROR_CLUSTER_MAXNUM_OF_RESOURCES_EXCEEDED                                syscall.Errno = 5076\n\tERROR_CLUSTER_SYSTEM_CONFIG_CHANGED                                       syscall.Errno = 5077\n\tERROR_CLUSTER_RESOURCE_TYPE_NOT_FOUND                                     syscall.Errno = 5078\n\tERROR_CLUSTER_RESTYPE_NOT_SUPPORTED                                       syscall.Errno = 5079\n\tERROR_CLUSTER_RESNAME_NOT_FOUND                                           syscall.Errno = 5080\n\tERROR_CLUSTER_NO_RPC_PACKAGES_REGISTERED                                  syscall.Errno = 5081\n\tERROR_CLUSTER_OWNER_NOT_IN_PREFLIST                                       syscall.Errno = 5082\n\tERROR_CLUSTER_DATABASE_SEQMISMATCH                                        syscall.Errno = 5083\n\tERROR_RESMON_INVALID_STATE                                                syscall.Errno = 5084\n\tERROR_CLUSTER_GUM_NOT_LOCKER                                              syscall.Errno = 5085\n\tERROR_QUORUM_DISK_NOT_FOUND                                               syscall.Errno = 5086\n\tERROR_DATABASE_BACKUP_CORRUPT                                             syscall.Errno = 5087\n\tERROR_CLUSTER_NODE_ALREADY_HAS_DFS_ROOT                                   syscall.Errno = 5088\n\tERROR_RESOURCE_PROPERTY_UNCHANGEABLE                                      syscall.Errno = 5089\n\tERROR_NO_ADMIN_ACCESS_POINT                                               syscall.Errno = 5090\n\tERROR_CLUSTER_MEMBERSHIP_INVALID_STATE                                    syscall.Errno = 5890\n\tERROR_CLUSTER_QUORUMLOG_NOT_FOUND                                         syscall.Errno = 5891\n\tERROR_CLUSTER_MEMBERSHIP_HALT                                             syscall.Errno = 5892\n\tERROR_CLUSTER_INSTANCE_ID_MISMATCH                                        syscall.Errno = 5893\n\tERROR_CLUSTER_NETWORK_NOT_FOUND_FOR_IP                                    syscall.Errno = 5894\n\tERROR_CLUSTER_PROPERTY_DATA_TYPE_MISMATCH                                 syscall.Errno = 5895\n\tERROR_CLUSTER_EVICT_WITHOUT_CLEANUP                                       syscall.Errno = 5896\n\tERROR_CLUSTER_PARAMETER_MISMATCH                                          syscall.Errno = 5897\n\tERROR_NODE_CANNOT_BE_CLUSTERED                                            syscall.Errno = 5898\n\tERROR_CLUSTER_WRONG_OS_VERSION                                            syscall.Errno = 5899\n\tERROR_CLUSTER_CANT_CREATE_DUP_CLUSTER_NAME                                syscall.Errno = 5900\n\tERROR_CLUSCFG_ALREADY_COMMITTED                                           syscall.Errno = 5901\n\tERROR_CLUSCFG_ROLLBACK_FAILED                                             syscall.Errno = 5902\n\tERROR_CLUSCFG_SYSTEM_DISK_DRIVE_LETTER_CONFLICT                           syscall.Errno = 5903\n\tERROR_CLUSTER_OLD_VERSION                                                 syscall.Errno = 5904\n\tERROR_CLUSTER_MISMATCHED_COMPUTER_ACCT_NAME                               syscall.Errno = 5905\n\tERROR_CLUSTER_NO_NET_ADAPTERS                                             syscall.Errno = 5906\n\tERROR_CLUSTER_POISONED                                                    syscall.Errno = 5907\n\tERROR_CLUSTER_GROUP_MOVING                                                syscall.Errno = 5908\n\tERROR_CLUSTER_RESOURCE_TYPE_BUSY                                          syscall.Errno = 5909\n\tERROR_RESOURCE_CALL_TIMED_OUT                                             syscall.Errno = 5910\n\tERROR_INVALID_CLUSTER_IPV6_ADDRESS                                        syscall.Errno = 5911\n\tERROR_CLUSTER_INTERNAL_INVALID_FUNCTION                                   syscall.Errno = 5912\n\tERROR_CLUSTER_PARAMETER_OUT_OF_BOUNDS                                     syscall.Errno = 5913\n\tERROR_CLUSTER_PARTIAL_SEND                                                syscall.Errno = 5914\n\tERROR_CLUSTER_REGISTRY_INVALID_FUNCTION                                   syscall.Errno = 5915\n\tERROR_CLUSTER_INVALID_STRING_TERMINATION                                  syscall.Errno = 5916\n\tERROR_CLUSTER_INVALID_STRING_FORMAT                                       syscall.Errno = 5917\n\tERROR_CLUSTER_DATABASE_TRANSACTION_IN_PROGRESS                            syscall.Errno = 5918\n\tERROR_CLUSTER_DATABASE_TRANSACTION_NOT_IN_PROGRESS                        syscall.Errno = 5919\n\tERROR_CLUSTER_NULL_DATA                                                   syscall.Errno = 5920\n\tERROR_CLUSTER_PARTIAL_READ                                                syscall.Errno = 5921\n\tERROR_CLUSTER_PARTIAL_WRITE                                               syscall.Errno = 5922\n\tERROR_CLUSTER_CANT_DESERIALIZE_DATA                                       syscall.Errno = 5923\n\tERROR_DEPENDENT_RESOURCE_PROPERTY_CONFLICT                                syscall.Errno = 5924\n\tERROR_CLUSTER_NO_QUORUM                                                   syscall.Errno = 5925\n\tERROR_CLUSTER_INVALID_IPV6_NETWORK                                        syscall.Errno = 5926\n\tERROR_CLUSTER_INVALID_IPV6_TUNNEL_NETWORK                                 syscall.Errno = 5927\n\tERROR_QUORUM_NOT_ALLOWED_IN_THIS_GROUP                                    syscall.Errno = 5928\n\tERROR_DEPENDENCY_TREE_TOO_COMPLEX                                         syscall.Errno = 5929\n\tERROR_EXCEPTION_IN_RESOURCE_CALL                                          syscall.Errno = 5930\n\tERROR_CLUSTER_RHS_FAILED_INITIALIZATION                                   syscall.Errno = 5931\n\tERROR_CLUSTER_NOT_INSTALLED                                               syscall.Errno = 5932\n\tERROR_CLUSTER_RESOURCES_MUST_BE_ONLINE_ON_THE_SAME_NODE                   syscall.Errno = 5933\n\tERROR_CLUSTER_MAX_NODES_IN_CLUSTER                                        syscall.Errno = 5934\n\tERROR_CLUSTER_TOO_MANY_NODES                                              syscall.Errno = 5935\n\tERROR_CLUSTER_OBJECT_ALREADY_USED                                         syscall.Errno = 5936\n\tERROR_NONCORE_GROUPS_FOUND                                                syscall.Errno = 5937\n\tERROR_FILE_SHARE_RESOURCE_CONFLICT                                        syscall.Errno = 5938\n\tERROR_CLUSTER_EVICT_INVALID_REQUEST                                       syscall.Errno = 5939\n\tERROR_CLUSTER_SINGLETON_RESOURCE                                          syscall.Errno = 5940\n\tERROR_CLUSTER_GROUP_SINGLETON_RESOURCE                                    syscall.Errno = 5941\n\tERROR_CLUSTER_RESOURCE_PROVIDER_FAILED                                    syscall.Errno = 5942\n\tERROR_CLUSTER_RESOURCE_CONFIGURATION_ERROR                                syscall.Errno = 5943\n\tERROR_CLUSTER_GROUP_BUSY                                                  syscall.Errno = 5944\n\tERROR_CLUSTER_NOT_SHARED_VOLUME                                           syscall.Errno = 5945\n\tERROR_CLUSTER_INVALID_SECURITY_DESCRIPTOR                                 syscall.Errno = 5946\n\tERROR_CLUSTER_SHARED_VOLUMES_IN_USE                                       syscall.Errno = 5947\n\tERROR_CLUSTER_USE_SHARED_VOLUMES_API                                      syscall.Errno = 5948\n\tERROR_CLUSTER_BACKUP_IN_PROGRESS                                          syscall.Errno = 5949\n\tERROR_NON_CSV_PATH                                                        syscall.Errno = 5950\n\tERROR_CSV_VOLUME_NOT_LOCAL                                                syscall.Errno = 5951\n\tERROR_CLUSTER_WATCHDOG_TERMINATING                                        syscall.Errno = 5952\n\tERROR_CLUSTER_RESOURCE_VETOED_MOVE_INCOMPATIBLE_NODES                     syscall.Errno = 5953\n\tERROR_CLUSTER_INVALID_NODE_WEIGHT                                         syscall.Errno = 5954\n\tERROR_CLUSTER_RESOURCE_VETOED_CALL                                        syscall.Errno = 5955\n\tERROR_RESMON_SYSTEM_RESOURCES_LACKING                                     syscall.Errno = 5956\n\tERROR_CLUSTER_RESOURCE_VETOED_MOVE_NOT_ENOUGH_RESOURCES_ON_DESTINATION    syscall.Errno = 5957\n\tERROR_CLUSTER_RESOURCE_VETOED_MOVE_NOT_ENOUGH_RESOURCES_ON_SOURCE         syscall.Errno = 5958\n\tERROR_CLUSTER_GROUP_QUEUED                                                syscall.Errno = 5959\n\tERROR_CLUSTER_RESOURCE_LOCKED_STATUS                                      syscall.Errno = 5960\n\tERROR_CLUSTER_SHARED_VOLUME_FAILOVER_NOT_ALLOWED                          syscall.Errno = 5961\n\tERROR_CLUSTER_NODE_DRAIN_IN_PROGRESS                                      syscall.Errno = 5962\n\tERROR_CLUSTER_DISK_NOT_CONNECTED                                          syscall.Errno = 5963\n\tERROR_DISK_NOT_CSV_CAPABLE                                                syscall.Errno = 5964\n\tERROR_RESOURCE_NOT_IN_AVAILABLE_STORAGE                                   syscall.Errno = 5965\n\tERROR_CLUSTER_SHARED_VOLUME_REDIRECTED                                    syscall.Errno = 5966\n\tERROR_CLUSTER_SHARED_VOLUME_NOT_REDIRECTED                                syscall.Errno = 5967\n\tERROR_CLUSTER_CANNOT_RETURN_PROPERTIES                                    syscall.Errno = 5968\n\tERROR_CLUSTER_RESOURCE_CONTAINS_UNSUPPORTED_DIFF_AREA_FOR_SHARED_VOLUMES  syscall.Errno = 5969\n\tERROR_CLUSTER_RESOURCE_IS_IN_MAINTENANCE_MODE                             syscall.Errno = 5970\n\tERROR_CLUSTER_AFFINITY_CONFLICT                                           syscall.Errno = 5971\n\tERROR_CLUSTER_RESOURCE_IS_REPLICA_VIRTUAL_MACHINE                         syscall.Errno = 5972\n\tERROR_CLUSTER_UPGRADE_INCOMPATIBLE_VERSIONS                               syscall.Errno = 5973\n\tERROR_CLUSTER_UPGRADE_FIX_QUORUM_NOT_SUPPORTED                            syscall.Errno = 5974\n\tERROR_CLUSTER_UPGRADE_RESTART_REQUIRED                                    syscall.Errno = 5975\n\tERROR_CLUSTER_UPGRADE_IN_PROGRESS                                         syscall.Errno = 5976\n\tERROR_CLUSTER_UPGRADE_INCOMPLETE                                          syscall.Errno = 5977\n\tERROR_CLUSTER_NODE_IN_GRACE_PERIOD                                        syscall.Errno = 5978\n\tERROR_CLUSTER_CSV_IO_PAUSE_TIMEOUT                                        syscall.Errno = 5979\n\tERROR_NODE_NOT_ACTIVE_CLUSTER_MEMBER                                      syscall.Errno = 5980\n\tERROR_CLUSTER_RESOURCE_NOT_MONITORED                                      syscall.Errno = 5981\n\tERROR_CLUSTER_RESOURCE_DOES_NOT_SUPPORT_UNMONITORED                       syscall.Errno = 5982\n\tERROR_CLUSTER_RESOURCE_IS_REPLICATED                                      syscall.Errno = 5983\n\tERROR_CLUSTER_NODE_ISOLATED                                               syscall.Errno = 5984\n\tERROR_CLUSTER_NODE_QUARANTINED                                            syscall.Errno = 5985\n\tERROR_CLUSTER_DATABASE_UPDATE_CONDITION_FAILED                            syscall.Errno = 5986\n\tERROR_CLUSTER_SPACE_DEGRADED                                              syscall.Errno = 5987\n\tERROR_CLUSTER_TOKEN_DELEGATION_NOT_SUPPORTED                              syscall.Errno = 5988\n\tERROR_CLUSTER_CSV_INVALID_HANDLE                                          syscall.Errno = 5989\n\tERROR_CLUSTER_CSV_SUPPORTED_ONLY_ON_COORDINATOR                           syscall.Errno = 5990\n\tERROR_GROUPSET_NOT_AVAILABLE                                              syscall.Errno = 5991\n\tERROR_GROUPSET_NOT_FOUND                                                  syscall.Errno = 5992\n\tERROR_GROUPSET_CANT_PROVIDE                                               syscall.Errno = 5993\n\tERROR_CLUSTER_FAULT_DOMAIN_PARENT_NOT_FOUND                               syscall.Errno = 5994\n\tERROR_CLUSTER_FAULT_DOMAIN_INVALID_HIERARCHY                              syscall.Errno = 5995\n\tERROR_CLUSTER_FAULT_DOMAIN_FAILED_S2D_VALIDATION                          syscall.Errno = 5996\n\tERROR_CLUSTER_FAULT_DOMAIN_S2D_CONNECTIVITY_LOSS                          syscall.Errno = 5997\n\tERROR_CLUSTER_INVALID_INFRASTRUCTURE_FILESERVER_NAME                      syscall.Errno = 5998\n\tERROR_CLUSTERSET_MANAGEMENT_CLUSTER_UNREACHABLE                           syscall.Errno = 5999\n\tERROR_ENCRYPTION_FAILED                                                   syscall.Errno = 6000\n\tERROR_DECRYPTION_FAILED                                                   syscall.Errno = 6001\n\tERROR_FILE_ENCRYPTED                                                      syscall.Errno = 6002\n\tERROR_NO_RECOVERY_POLICY                                                  syscall.Errno = 6003\n\tERROR_NO_EFS                                                              syscall.Errno = 6004\n\tERROR_WRONG_EFS                                                           syscall.Errno = 6005\n\tERROR_NO_USER_KEYS                                                        syscall.Errno = 6006\n\tERROR_FILE_NOT_ENCRYPTED                                                  syscall.Errno = 6007\n\tERROR_NOT_EXPORT_FORMAT                                                   syscall.Errno = 6008\n\tERROR_FILE_READ_ONLY                                                      syscall.Errno = 6009\n\tERROR_DIR_EFS_DISALLOWED                                                  syscall.Errno = 6010\n\tERROR_EFS_SERVER_NOT_TRUSTED                                              syscall.Errno = 6011\n\tERROR_BAD_RECOVERY_POLICY                                                 syscall.Errno = 6012\n\tERROR_EFS_ALG_BLOB_TOO_BIG                                                syscall.Errno = 6013\n\tERROR_VOLUME_NOT_SUPPORT_EFS                                              syscall.Errno = 6014\n\tERROR_EFS_DISABLED                                                        syscall.Errno = 6015\n\tERROR_EFS_VERSION_NOT_SUPPORT                                             syscall.Errno = 6016\n\tERROR_CS_ENCRYPTION_INVALID_SERVER_RESPONSE                               syscall.Errno = 6017\n\tERROR_CS_ENCRYPTION_UNSUPPORTED_SERVER                                    syscall.Errno = 6018\n\tERROR_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE                               syscall.Errno = 6019\n\tERROR_CS_ENCRYPTION_NEW_ENCRYPTED_FILE                                    syscall.Errno = 6020\n\tERROR_CS_ENCRYPTION_FILE_NOT_CSE                                          syscall.Errno = 6021\n\tERROR_ENCRYPTION_POLICY_DENIES_OPERATION                                  syscall.Errno = 6022\n\tERROR_WIP_ENCRYPTION_FAILED                                               syscall.Errno = 6023\n\tERROR_NO_BROWSER_SERVERS_FOUND                                            syscall.Errno = 6118\n\tSCHED_E_SERVICE_NOT_LOCALSYSTEM                                           syscall.Errno = 6200\n\tERROR_LOG_SECTOR_INVALID                                                  syscall.Errno = 6600\n\tERROR_LOG_SECTOR_PARITY_INVALID                                           syscall.Errno = 6601\n\tERROR_LOG_SECTOR_REMAPPED                                                 syscall.Errno = 6602\n\tERROR_LOG_BLOCK_INCOMPLETE                                                syscall.Errno = 6603\n\tERROR_LOG_INVALID_RANGE                                                   syscall.Errno = 6604\n\tERROR_LOG_BLOCKS_EXHAUSTED                                                syscall.Errno = 6605\n\tERROR_LOG_READ_CONTEXT_INVALID                                            syscall.Errno = 6606\n\tERROR_LOG_RESTART_INVALID                                                 syscall.Errno = 6607\n\tERROR_LOG_BLOCK_VERSION                                                   syscall.Errno = 6608\n\tERROR_LOG_BLOCK_INVALID                                                   syscall.Errno = 6609\n\tERROR_LOG_READ_MODE_INVALID                                               syscall.Errno = 6610\n\tERROR_LOG_NO_RESTART                                                      syscall.Errno = 6611\n\tERROR_LOG_METADATA_CORRUPT                                                syscall.Errno = 6612\n\tERROR_LOG_METADATA_INVALID                                                syscall.Errno = 6613\n\tERROR_LOG_METADATA_INCONSISTENT                                           syscall.Errno = 6614\n\tERROR_LOG_RESERVATION_INVALID                                             syscall.Errno = 6615\n\tERROR_LOG_CANT_DELETE                                                     syscall.Errno = 6616\n\tERROR_LOG_CONTAINER_LIMIT_EXCEEDED                                        syscall.Errno = 6617\n\tERROR_LOG_START_OF_LOG                                                    syscall.Errno = 6618\n\tERROR_LOG_POLICY_ALREADY_INSTALLED                                        syscall.Errno = 6619\n\tERROR_LOG_POLICY_NOT_INSTALLED                                            syscall.Errno = 6620\n\tERROR_LOG_POLICY_INVALID                                                  syscall.Errno = 6621\n\tERROR_LOG_POLICY_CONFLICT                                                 syscall.Errno = 6622\n\tERROR_LOG_PINNED_ARCHIVE_TAIL                                             syscall.Errno = 6623\n\tERROR_LOG_RECORD_NONEXISTENT                                              syscall.Errno = 6624\n\tERROR_LOG_RECORDS_RESERVED_INVALID                                        syscall.Errno = 6625\n\tERROR_LOG_SPACE_RESERVED_INVALID                                          syscall.Errno = 6626\n\tERROR_LOG_TAIL_INVALID                                                    syscall.Errno = 6627\n\tERROR_LOG_FULL                                                            syscall.Errno = 6628\n\tERROR_COULD_NOT_RESIZE_LOG                                                syscall.Errno = 6629\n\tERROR_LOG_MULTIPLEXED                                                     syscall.Errno = 6630\n\tERROR_LOG_DEDICATED                                                       syscall.Errno = 6631\n\tERROR_LOG_ARCHIVE_NOT_IN_PROGRESS                                         syscall.Errno = 6632\n\tERROR_LOG_ARCHIVE_IN_PROGRESS                                             syscall.Errno = 6633\n\tERROR_LOG_EPHEMERAL                                                       syscall.Errno = 6634\n\tERROR_LOG_NOT_ENOUGH_CONTAINERS                                           syscall.Errno = 6635\n\tERROR_LOG_CLIENT_ALREADY_REGISTERED                                       syscall.Errno = 6636\n\tERROR_LOG_CLIENT_NOT_REGISTERED                                           syscall.Errno = 6637\n\tERROR_LOG_FULL_HANDLER_IN_PROGRESS                                        syscall.Errno = 6638\n\tERROR_LOG_CONTAINER_READ_FAILED                                           syscall.Errno = 6639\n\tERROR_LOG_CONTAINER_WRITE_FAILED                                          syscall.Errno = 6640\n\tERROR_LOG_CONTAINER_OPEN_FAILED                                           syscall.Errno = 6641\n\tERROR_LOG_CONTAINER_STATE_INVALID                                         syscall.Errno = 6642\n\tERROR_LOG_STATE_INVALID                                                   syscall.Errno = 6643\n\tERROR_LOG_PINNED                                                          syscall.Errno = 6644\n\tERROR_LOG_METADATA_FLUSH_FAILED                                           syscall.Errno = 6645\n\tERROR_LOG_INCONSISTENT_SECURITY                                           syscall.Errno = 6646\n\tERROR_LOG_APPENDED_FLUSH_FAILED                                           syscall.Errno = 6647\n\tERROR_LOG_PINNED_RESERVATION                                              syscall.Errno = 6648\n\tERROR_INVALID_TRANSACTION                                                 syscall.Errno = 6700\n\tERROR_TRANSACTION_NOT_ACTIVE                                              syscall.Errno = 6701\n\tERROR_TRANSACTION_REQUEST_NOT_VALID                                       syscall.Errno = 6702\n\tERROR_TRANSACTION_NOT_REQUESTED                                           syscall.Errno = 6703\n\tERROR_TRANSACTION_ALREADY_ABORTED                                         syscall.Errno = 6704\n\tERROR_TRANSACTION_ALREADY_COMMITTED                                       syscall.Errno = 6705\n\tERROR_TM_INITIALIZATION_FAILED                                            syscall.Errno = 6706\n\tERROR_RESOURCEMANAGER_READ_ONLY                                           syscall.Errno = 6707\n\tERROR_TRANSACTION_NOT_JOINED                                              syscall.Errno = 6708\n\tERROR_TRANSACTION_SUPERIOR_EXISTS                                         syscall.Errno = 6709\n\tERROR_CRM_PROTOCOL_ALREADY_EXISTS                                         syscall.Errno = 6710\n\tERROR_TRANSACTION_PROPAGATION_FAILED                                      syscall.Errno = 6711\n\tERROR_CRM_PROTOCOL_NOT_FOUND                                              syscall.Errno = 6712\n\tERROR_TRANSACTION_INVALID_MARSHALL_BUFFER                                 syscall.Errno = 6713\n\tERROR_CURRENT_TRANSACTION_NOT_VALID                                       syscall.Errno = 6714\n\tERROR_TRANSACTION_NOT_FOUND                                               syscall.Errno = 6715\n\tERROR_RESOURCEMANAGER_NOT_FOUND                                           syscall.Errno = 6716\n\tERROR_ENLISTMENT_NOT_FOUND                                                syscall.Errno = 6717\n\tERROR_TRANSACTIONMANAGER_NOT_FOUND                                        syscall.Errno = 6718\n\tERROR_TRANSACTIONMANAGER_NOT_ONLINE                                       syscall.Errno = 6719\n\tERROR_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION                          syscall.Errno = 6720\n\tERROR_TRANSACTION_NOT_ROOT                                                syscall.Errno = 6721\n\tERROR_TRANSACTION_OBJECT_EXPIRED                                          syscall.Errno = 6722\n\tERROR_TRANSACTION_RESPONSE_NOT_ENLISTED                                   syscall.Errno = 6723\n\tERROR_TRANSACTION_RECORD_TOO_LONG                                         syscall.Errno = 6724\n\tERROR_IMPLICIT_TRANSACTION_NOT_SUPPORTED                                  syscall.Errno = 6725\n\tERROR_TRANSACTION_INTEGRITY_VIOLATED                                      syscall.Errno = 6726\n\tERROR_TRANSACTIONMANAGER_IDENTITY_MISMATCH                                syscall.Errno = 6727\n\tERROR_RM_CANNOT_BE_FROZEN_FOR_SNAPSHOT                                    syscall.Errno = 6728\n\tERROR_TRANSACTION_MUST_WRITETHROUGH                                       syscall.Errno = 6729\n\tERROR_TRANSACTION_NO_SUPERIOR                                             syscall.Errno = 6730\n\tERROR_HEURISTIC_DAMAGE_POSSIBLE                                           syscall.Errno = 6731\n\tERROR_TRANSACTIONAL_CONFLICT                                              syscall.Errno = 6800\n\tERROR_RM_NOT_ACTIVE                                                       syscall.Errno = 6801\n\tERROR_RM_METADATA_CORRUPT                                                 syscall.Errno = 6802\n\tERROR_DIRECTORY_NOT_RM                                                    syscall.Errno = 6803\n\tERROR_TRANSACTIONS_UNSUPPORTED_REMOTE                                     syscall.Errno = 6805\n\tERROR_LOG_RESIZE_INVALID_SIZE                                             syscall.Errno = 6806\n\tERROR_OBJECT_NO_LONGER_EXISTS                                             syscall.Errno = 6807\n\tERROR_STREAM_MINIVERSION_NOT_FOUND                                        syscall.Errno = 6808\n\tERROR_STREAM_MINIVERSION_NOT_VALID                                        syscall.Errno = 6809\n\tERROR_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION                 syscall.Errno = 6810\n\tERROR_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT                            syscall.Errno = 6811\n\tERROR_CANT_CREATE_MORE_STREAM_MINIVERSIONS                                syscall.Errno = 6812\n\tERROR_REMOTE_FILE_VERSION_MISMATCH                                        syscall.Errno = 6814\n\tERROR_HANDLE_NO_LONGER_VALID                                              syscall.Errno = 6815\n\tERROR_NO_TXF_METADATA                                                     syscall.Errno = 6816\n\tERROR_LOG_CORRUPTION_DETECTED                                             syscall.Errno = 6817\n\tERROR_CANT_RECOVER_WITH_HANDLE_OPEN                                       syscall.Errno = 6818\n\tERROR_RM_DISCONNECTED                                                     syscall.Errno = 6819\n\tERROR_ENLISTMENT_NOT_SUPERIOR                                             syscall.Errno = 6820\n\tERROR_RECOVERY_NOT_NEEDED                                                 syscall.Errno = 6821\n\tERROR_RM_ALREADY_STARTED                                                  syscall.Errno = 6822\n\tERROR_FILE_IDENTITY_NOT_PERSISTENT                                        syscall.Errno = 6823\n\tERROR_CANT_BREAK_TRANSACTIONAL_DEPENDENCY                                 syscall.Errno = 6824\n\tERROR_CANT_CROSS_RM_BOUNDARY                                              syscall.Errno = 6825\n\tERROR_TXF_DIR_NOT_EMPTY                                                   syscall.Errno = 6826\n\tERROR_INDOUBT_TRANSACTIONS_EXIST                                          syscall.Errno = 6827\n\tERROR_TM_VOLATILE                                                         syscall.Errno = 6828\n\tERROR_ROLLBACK_TIMER_EXPIRED                                              syscall.Errno = 6829\n\tERROR_TXF_ATTRIBUTE_CORRUPT                                               syscall.Errno = 6830\n\tERROR_EFS_NOT_ALLOWED_IN_TRANSACTION                                      syscall.Errno = 6831\n\tERROR_TRANSACTIONAL_OPEN_NOT_ALLOWED                                      syscall.Errno = 6832\n\tERROR_LOG_GROWTH_FAILED                                                   syscall.Errno = 6833\n\tERROR_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE                               syscall.Errno = 6834\n\tERROR_TXF_METADATA_ALREADY_PRESENT                                        syscall.Errno = 6835\n\tERROR_TRANSACTION_SCOPE_CALLBACKS_NOT_SET                                 syscall.Errno = 6836\n\tERROR_TRANSACTION_REQUIRED_PROMOTION                                      syscall.Errno = 6837\n\tERROR_CANNOT_EXECUTE_FILE_IN_TRANSACTION                                  syscall.Errno = 6838\n\tERROR_TRANSACTIONS_NOT_FROZEN                                             syscall.Errno = 6839\n\tERROR_TRANSACTION_FREEZE_IN_PROGRESS                                      syscall.Errno = 6840\n\tERROR_NOT_SNAPSHOT_VOLUME                                                 syscall.Errno = 6841\n\tERROR_NO_SAVEPOINT_WITH_OPEN_FILES                                        syscall.Errno = 6842\n\tERROR_DATA_LOST_REPAIR                                                    syscall.Errno = 6843\n\tERROR_SPARSE_NOT_ALLOWED_IN_TRANSACTION                                   syscall.Errno = 6844\n\tERROR_TM_IDENTITY_MISMATCH                                                syscall.Errno = 6845\n\tERROR_FLOATED_SECTION                                                     syscall.Errno = 6846\n\tERROR_CANNOT_ACCEPT_TRANSACTED_WORK                                       syscall.Errno = 6847\n\tERROR_CANNOT_ABORT_TRANSACTIONS                                           syscall.Errno = 6848\n\tERROR_BAD_CLUSTERS                                                        syscall.Errno = 6849\n\tERROR_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION                              syscall.Errno = 6850\n\tERROR_VOLUME_DIRTY                                                        syscall.Errno = 6851\n\tERROR_NO_LINK_TRACKING_IN_TRANSACTION                                     syscall.Errno = 6852\n\tERROR_OPERATION_NOT_SUPPORTED_IN_TRANSACTION                              syscall.Errno = 6853\n\tERROR_EXPIRED_HANDLE                                                      syscall.Errno = 6854\n\tERROR_TRANSACTION_NOT_ENLISTED                                            syscall.Errno = 6855\n\tERROR_CTX_WINSTATION_NAME_INVALID                                         syscall.Errno = 7001\n\tERROR_CTX_INVALID_PD                                                      syscall.Errno = 7002\n\tERROR_CTX_PD_NOT_FOUND                                                    syscall.Errno = 7003\n\tERROR_CTX_WD_NOT_FOUND                                                    syscall.Errno = 7004\n\tERROR_CTX_CANNOT_MAKE_EVENTLOG_ENTRY                                      syscall.Errno = 7005\n\tERROR_CTX_SERVICE_NAME_COLLISION                                          syscall.Errno = 7006\n\tERROR_CTX_CLOSE_PENDING                                                   syscall.Errno = 7007\n\tERROR_CTX_NO_OUTBUF                                                       syscall.Errno = 7008\n\tERROR_CTX_MODEM_INF_NOT_FOUND                                             syscall.Errno = 7009\n\tERROR_CTX_INVALID_MODEMNAME                                               syscall.Errno = 7010\n\tERROR_CTX_MODEM_RESPONSE_ERROR                                            syscall.Errno = 7011\n\tERROR_CTX_MODEM_RESPONSE_TIMEOUT                                          syscall.Errno = 7012\n\tERROR_CTX_MODEM_RESPONSE_NO_CARRIER                                       syscall.Errno = 7013\n\tERROR_CTX_MODEM_RESPONSE_NO_DIALTONE                                      syscall.Errno = 7014\n\tERROR_CTX_MODEM_RESPONSE_BUSY                                             syscall.Errno = 7015\n\tERROR_CTX_MODEM_RESPONSE_VOICE                                            syscall.Errno = 7016\n\tERROR_CTX_TD_ERROR                                                        syscall.Errno = 7017\n\tERROR_CTX_WINSTATION_NOT_FOUND                                            syscall.Errno = 7022\n\tERROR_CTX_WINSTATION_ALREADY_EXISTS                                       syscall.Errno = 7023\n\tERROR_CTX_WINSTATION_BUSY                                                 syscall.Errno = 7024\n\tERROR_CTX_BAD_VIDEO_MODE                                                  syscall.Errno = 7025\n\tERROR_CTX_GRAPHICS_INVALID                                                syscall.Errno = 7035\n\tERROR_CTX_LOGON_DISABLED                                                  syscall.Errno = 7037\n\tERROR_CTX_NOT_CONSOLE                                                     syscall.Errno = 7038\n\tERROR_CTX_CLIENT_QUERY_TIMEOUT                                            syscall.Errno = 7040\n\tERROR_CTX_CONSOLE_DISCONNECT                                              syscall.Errno = 7041\n\tERROR_CTX_CONSOLE_CONNECT                                                 syscall.Errno = 7042\n\tERROR_CTX_SHADOW_DENIED                                                   syscall.Errno = 7044\n\tERROR_CTX_WINSTATION_ACCESS_DENIED                                        syscall.Errno = 7045\n\tERROR_CTX_INVALID_WD                                                      syscall.Errno = 7049\n\tERROR_CTX_SHADOW_INVALID                                                  syscall.Errno = 7050\n\tERROR_CTX_SHADOW_DISABLED                                                 syscall.Errno = 7051\n\tERROR_CTX_CLIENT_LICENSE_IN_USE                                           syscall.Errno = 7052\n\tERROR_CTX_CLIENT_LICENSE_NOT_SET                                          syscall.Errno = 7053\n\tERROR_CTX_LICENSE_NOT_AVAILABLE                                           syscall.Errno = 7054\n\tERROR_CTX_LICENSE_CLIENT_INVALID                                          syscall.Errno = 7055\n\tERROR_CTX_LICENSE_EXPIRED                                                 syscall.Errno = 7056\n\tERROR_CTX_SHADOW_NOT_RUNNING                                              syscall.Errno = 7057\n\tERROR_CTX_SHADOW_ENDED_BY_MODE_CHANGE                                     syscall.Errno = 7058\n\tERROR_ACTIVATION_COUNT_EXCEEDED                                           syscall.Errno = 7059\n\tERROR_CTX_WINSTATIONS_DISABLED                                            syscall.Errno = 7060\n\tERROR_CTX_ENCRYPTION_LEVEL_REQUIRED                                       syscall.Errno = 7061\n\tERROR_CTX_SESSION_IN_USE                                                  syscall.Errno = 7062\n\tERROR_CTX_NO_FORCE_LOGOFF                                                 syscall.Errno = 7063\n\tERROR_CTX_ACCOUNT_RESTRICTION                                             syscall.Errno = 7064\n\tERROR_RDP_PROTOCOL_ERROR                                                  syscall.Errno = 7065\n\tERROR_CTX_CDM_CONNECT                                                     syscall.Errno = 7066\n\tERROR_CTX_CDM_DISCONNECT                                                  syscall.Errno = 7067\n\tERROR_CTX_SECURITY_LAYER_ERROR                                            syscall.Errno = 7068\n\tERROR_TS_INCOMPATIBLE_SESSIONS                                            syscall.Errno = 7069\n\tERROR_TS_VIDEO_SUBSYSTEM_ERROR                                            syscall.Errno = 7070\n\tFRS_ERR_INVALID_API_SEQUENCE                                              syscall.Errno = 8001\n\tFRS_ERR_STARTING_SERVICE                                                  syscall.Errno = 8002\n\tFRS_ERR_STOPPING_SERVICE                                                  syscall.Errno = 8003\n\tFRS_ERR_INTERNAL_API                                                      syscall.Errno = 8004\n\tFRS_ERR_INTERNAL                                                          syscall.Errno = 8005\n\tFRS_ERR_SERVICE_COMM                                                      syscall.Errno = 8006\n\tFRS_ERR_INSUFFICIENT_PRIV                                                 syscall.Errno = 8007\n\tFRS_ERR_AUTHENTICATION                                                    syscall.Errno = 8008\n\tFRS_ERR_PARENT_INSUFFICIENT_PRIV                                          syscall.Errno = 8009\n\tFRS_ERR_PARENT_AUTHENTICATION                                             syscall.Errno = 8010\n\tFRS_ERR_CHILD_TO_PARENT_COMM                                              syscall.Errno = 8011\n\tFRS_ERR_PARENT_TO_CHILD_COMM                                              syscall.Errno = 8012\n\tFRS_ERR_SYSVOL_POPULATE                                                   syscall.Errno = 8013\n\tFRS_ERR_SYSVOL_POPULATE_TIMEOUT                                           syscall.Errno = 8014\n\tFRS_ERR_SYSVOL_IS_BUSY                                                    syscall.Errno = 8015\n\tFRS_ERR_SYSVOL_DEMOTE                                                     syscall.Errno = 8016\n\tFRS_ERR_INVALID_SERVICE_PARAMETER                                         syscall.Errno = 8017\n\tDS_S_SUCCESS                                                                            = ERROR_SUCCESS\n\tERROR_DS_NOT_INSTALLED                                                    syscall.Errno = 8200\n\tERROR_DS_MEMBERSHIP_EVALUATED_LOCALLY                                     syscall.Errno = 8201\n\tERROR_DS_NO_ATTRIBUTE_OR_VALUE                                            syscall.Errno = 8202\n\tERROR_DS_INVALID_ATTRIBUTE_SYNTAX                                         syscall.Errno = 8203\n\tERROR_DS_ATTRIBUTE_TYPE_UNDEFINED                                         syscall.Errno = 8204\n\tERROR_DS_ATTRIBUTE_OR_VALUE_EXISTS                                        syscall.Errno = 8205\n\tERROR_DS_BUSY                                                             syscall.Errno = 8206\n\tERROR_DS_UNAVAILABLE                                                      syscall.Errno = 8207\n\tERROR_DS_NO_RIDS_ALLOCATED                                                syscall.Errno = 8208\n\tERROR_DS_NO_MORE_RIDS                                                     syscall.Errno = 8209\n\tERROR_DS_INCORRECT_ROLE_OWNER                                             syscall.Errno = 8210\n\tERROR_DS_RIDMGR_INIT_ERROR                                                syscall.Errno = 8211\n\tERROR_DS_OBJ_CLASS_VIOLATION                                              syscall.Errno = 8212\n\tERROR_DS_CANT_ON_NON_LEAF                                                 syscall.Errno = 8213\n\tERROR_DS_CANT_ON_RDN                                                      syscall.Errno = 8214\n\tERROR_DS_CANT_MOD_OBJ_CLASS                                               syscall.Errno = 8215\n\tERROR_DS_CROSS_DOM_MOVE_ERROR                                             syscall.Errno = 8216\n\tERROR_DS_GC_NOT_AVAILABLE                                                 syscall.Errno = 8217\n\tERROR_SHARED_POLICY                                                       syscall.Errno = 8218\n\tERROR_POLICY_OBJECT_NOT_FOUND                                             syscall.Errno = 8219\n\tERROR_POLICY_ONLY_IN_DS                                                   syscall.Errno = 8220\n\tERROR_PROMOTION_ACTIVE                                                    syscall.Errno = 8221\n\tERROR_NO_PROMOTION_ACTIVE                                                 syscall.Errno = 8222\n\tERROR_DS_OPERATIONS_ERROR                                                 syscall.Errno = 8224\n\tERROR_DS_PROTOCOL_ERROR                                                   syscall.Errno = 8225\n\tERROR_DS_TIMELIMIT_EXCEEDED                                               syscall.Errno = 8226\n\tERROR_DS_SIZELIMIT_EXCEEDED                                               syscall.Errno = 8227\n\tERROR_DS_ADMIN_LIMIT_EXCEEDED                                             syscall.Errno = 8228\n\tERROR_DS_COMPARE_FALSE                                                    syscall.Errno = 8229\n\tERROR_DS_COMPARE_TRUE                                                     syscall.Errno = 8230\n\tERROR_DS_AUTH_METHOD_NOT_SUPPORTED                                        syscall.Errno = 8231\n\tERROR_DS_STRONG_AUTH_REQUIRED                                             syscall.Errno = 8232\n\tERROR_DS_INAPPROPRIATE_AUTH                                               syscall.Errno = 8233\n\tERROR_DS_AUTH_UNKNOWN                                                     syscall.Errno = 8234\n\tERROR_DS_REFERRAL                                                         syscall.Errno = 8235\n\tERROR_DS_UNAVAILABLE_CRIT_EXTENSION                                       syscall.Errno = 8236\n\tERROR_DS_CONFIDENTIALITY_REQUIRED                                         syscall.Errno = 8237\n\tERROR_DS_INAPPROPRIATE_MATCHING                                           syscall.Errno = 8238\n\tERROR_DS_CONSTRAINT_VIOLATION                                             syscall.Errno = 8239\n\tERROR_DS_NO_SUCH_OBJECT                                                   syscall.Errno = 8240\n\tERROR_DS_ALIAS_PROBLEM                                                    syscall.Errno = 8241\n\tERROR_DS_INVALID_DN_SYNTAX                                                syscall.Errno = 8242\n\tERROR_DS_IS_LEAF                                                          syscall.Errno = 8243\n\tERROR_DS_ALIAS_DEREF_PROBLEM                                              syscall.Errno = 8244\n\tERROR_DS_UNWILLING_TO_PERFORM                                             syscall.Errno = 8245\n\tERROR_DS_LOOP_DETECT                                                      syscall.Errno = 8246\n\tERROR_DS_NAMING_VIOLATION                                                 syscall.Errno = 8247\n\tERROR_DS_OBJECT_RESULTS_TOO_LARGE                                         syscall.Errno = 8248\n\tERROR_DS_AFFECTS_MULTIPLE_DSAS                                            syscall.Errno = 8249\n\tERROR_DS_SERVER_DOWN                                                      syscall.Errno = 8250\n\tERROR_DS_LOCAL_ERROR                                                      syscall.Errno = 8251\n\tERROR_DS_ENCODING_ERROR                                                   syscall.Errno = 8252\n\tERROR_DS_DECODING_ERROR                                                   syscall.Errno = 8253\n\tERROR_DS_FILTER_UNKNOWN                                                   syscall.Errno = 8254\n\tERROR_DS_PARAM_ERROR                                                      syscall.Errno = 8255\n\tERROR_DS_NOT_SUPPORTED                                                    syscall.Errno = 8256\n\tERROR_DS_NO_RESULTS_RETURNED                                              syscall.Errno = 8257\n\tERROR_DS_CONTROL_NOT_FOUND                                                syscall.Errno = 8258\n\tERROR_DS_CLIENT_LOOP                                                      syscall.Errno = 8259\n\tERROR_DS_REFERRAL_LIMIT_EXCEEDED                                          syscall.Errno = 8260\n\tERROR_DS_SORT_CONTROL_MISSING                                             syscall.Errno = 8261\n\tERROR_DS_OFFSET_RANGE_ERROR                                               syscall.Errno = 8262\n\tERROR_DS_RIDMGR_DISABLED                                                  syscall.Errno = 8263\n\tERROR_DS_ROOT_MUST_BE_NC                                                  syscall.Errno = 8301\n\tERROR_DS_ADD_REPLICA_INHIBITED                                            syscall.Errno = 8302\n\tERROR_DS_ATT_NOT_DEF_IN_SCHEMA                                            syscall.Errno = 8303\n\tERROR_DS_MAX_OBJ_SIZE_EXCEEDED                                            syscall.Errno = 8304\n\tERROR_DS_OBJ_STRING_NAME_EXISTS                                           syscall.Errno = 8305\n\tERROR_DS_NO_RDN_DEFINED_IN_SCHEMA                                         syscall.Errno = 8306\n\tERROR_DS_RDN_DOESNT_MATCH_SCHEMA                                          syscall.Errno = 8307\n\tERROR_DS_NO_REQUESTED_ATTS_FOUND                                          syscall.Errno = 8308\n\tERROR_DS_USER_BUFFER_TO_SMALL                                             syscall.Errno = 8309\n\tERROR_DS_ATT_IS_NOT_ON_OBJ                                                syscall.Errno = 8310\n\tERROR_DS_ILLEGAL_MOD_OPERATION                                            syscall.Errno = 8311\n\tERROR_DS_OBJ_TOO_LARGE                                                    syscall.Errno = 8312\n\tERROR_DS_BAD_INSTANCE_TYPE                                                syscall.Errno = 8313\n\tERROR_DS_MASTERDSA_REQUIRED                                               syscall.Errno = 8314\n\tERROR_DS_OBJECT_CLASS_REQUIRED                                            syscall.Errno = 8315\n\tERROR_DS_MISSING_REQUIRED_ATT                                             syscall.Errno = 8316\n\tERROR_DS_ATT_NOT_DEF_FOR_CLASS                                            syscall.Errno = 8317\n\tERROR_DS_ATT_ALREADY_EXISTS                                               syscall.Errno = 8318\n\tERROR_DS_CANT_ADD_ATT_VALUES                                              syscall.Errno = 8320\n\tERROR_DS_SINGLE_VALUE_CONSTRAINT                                          syscall.Errno = 8321\n\tERROR_DS_RANGE_CONSTRAINT                                                 syscall.Errno = 8322\n\tERROR_DS_ATT_VAL_ALREADY_EXISTS                                           syscall.Errno = 8323\n\tERROR_DS_CANT_REM_MISSING_ATT                                             syscall.Errno = 8324\n\tERROR_DS_CANT_REM_MISSING_ATT_VAL                                         syscall.Errno = 8325\n\tERROR_DS_ROOT_CANT_BE_SUBREF                                              syscall.Errno = 8326\n\tERROR_DS_NO_CHAINING                                                      syscall.Errno = 8327\n\tERROR_DS_NO_CHAINED_EVAL                                                  syscall.Errno = 8328\n\tERROR_DS_NO_PARENT_OBJECT                                                 syscall.Errno = 8329\n\tERROR_DS_PARENT_IS_AN_ALIAS                                               syscall.Errno = 8330\n\tERROR_DS_CANT_MIX_MASTER_AND_REPS                                         syscall.Errno = 8331\n\tERROR_DS_CHILDREN_EXIST                                                   syscall.Errno = 8332\n\tERROR_DS_OBJ_NOT_FOUND                                                    syscall.Errno = 8333\n\tERROR_DS_ALIASED_OBJ_MISSING                                              syscall.Errno = 8334\n\tERROR_DS_BAD_NAME_SYNTAX                                                  syscall.Errno = 8335\n\tERROR_DS_ALIAS_POINTS_TO_ALIAS                                            syscall.Errno = 8336\n\tERROR_DS_CANT_DEREF_ALIAS                                                 syscall.Errno = 8337\n\tERROR_DS_OUT_OF_SCOPE                                                     syscall.Errno = 8338\n\tERROR_DS_OBJECT_BEING_REMOVED                                             syscall.Errno = 8339\n\tERROR_DS_CANT_DELETE_DSA_OBJ                                              syscall.Errno = 8340\n\tERROR_DS_GENERIC_ERROR                                                    syscall.Errno = 8341\n\tERROR_DS_DSA_MUST_BE_INT_MASTER                                           syscall.Errno = 8342\n\tERROR_DS_CLASS_NOT_DSA                                                    syscall.Errno = 8343\n\tERROR_DS_INSUFF_ACCESS_RIGHTS                                             syscall.Errno = 8344\n\tERROR_DS_ILLEGAL_SUPERIOR                                                 syscall.Errno = 8345\n\tERROR_DS_ATTRIBUTE_OWNED_BY_SAM                                           syscall.Errno = 8346\n\tERROR_DS_NAME_TOO_MANY_PARTS                                              syscall.Errno = 8347\n\tERROR_DS_NAME_TOO_LONG                                                    syscall.Errno = 8348\n\tERROR_DS_NAME_VALUE_TOO_LONG                                              syscall.Errno = 8349\n\tERROR_DS_NAME_UNPARSEABLE                                                 syscall.Errno = 8350\n\tERROR_DS_NAME_TYPE_UNKNOWN                                                syscall.Errno = 8351\n\tERROR_DS_NOT_AN_OBJECT                                                    syscall.Errno = 8352\n\tERROR_DS_SEC_DESC_TOO_SHORT                                               syscall.Errno = 8353\n\tERROR_DS_SEC_DESC_INVALID                                                 syscall.Errno = 8354\n\tERROR_DS_NO_DELETED_NAME                                                  syscall.Errno = 8355\n\tERROR_DS_SUBREF_MUST_HAVE_PARENT                                          syscall.Errno = 8356\n\tERROR_DS_NCNAME_MUST_BE_NC                                                syscall.Errno = 8357\n\tERROR_DS_CANT_ADD_SYSTEM_ONLY                                             syscall.Errno = 8358\n\tERROR_DS_CLASS_MUST_BE_CONCRETE                                           syscall.Errno = 8359\n\tERROR_DS_INVALID_DMD                                                      syscall.Errno = 8360\n\tERROR_DS_OBJ_GUID_EXISTS                                                  syscall.Errno = 8361\n\tERROR_DS_NOT_ON_BACKLINK                                                  syscall.Errno = 8362\n\tERROR_DS_NO_CROSSREF_FOR_NC                                               syscall.Errno = 8363\n\tERROR_DS_SHUTTING_DOWN                                                    syscall.Errno = 8364\n\tERROR_DS_UNKNOWN_OPERATION                                                syscall.Errno = 8365\n\tERROR_DS_INVALID_ROLE_OWNER                                               syscall.Errno = 8366\n\tERROR_DS_COULDNT_CONTACT_FSMO                                             syscall.Errno = 8367\n\tERROR_DS_CROSS_NC_DN_RENAME                                               syscall.Errno = 8368\n\tERROR_DS_CANT_MOD_SYSTEM_ONLY                                             syscall.Errno = 8369\n\tERROR_DS_REPLICATOR_ONLY                                                  syscall.Errno = 8370\n\tERROR_DS_OBJ_CLASS_NOT_DEFINED                                            syscall.Errno = 8371\n\tERROR_DS_OBJ_CLASS_NOT_SUBCLASS                                           syscall.Errno = 8372\n\tERROR_DS_NAME_REFERENCE_INVALID                                           syscall.Errno = 8373\n\tERROR_DS_CROSS_REF_EXISTS                                                 syscall.Errno = 8374\n\tERROR_DS_CANT_DEL_MASTER_CROSSREF                                         syscall.Errno = 8375\n\tERROR_DS_SUBTREE_NOTIFY_NOT_NC_HEAD                                       syscall.Errno = 8376\n\tERROR_DS_NOTIFY_FILTER_TOO_COMPLEX                                        syscall.Errno = 8377\n\tERROR_DS_DUP_RDN                                                          syscall.Errno = 8378\n\tERROR_DS_DUP_OID                                                          syscall.Errno = 8379\n\tERROR_DS_DUP_MAPI_ID                                                      syscall.Errno = 8380\n\tERROR_DS_DUP_SCHEMA_ID_GUID                                               syscall.Errno = 8381\n\tERROR_DS_DUP_LDAP_DISPLAY_NAME                                            syscall.Errno = 8382\n\tERROR_DS_SEMANTIC_ATT_TEST                                                syscall.Errno = 8383\n\tERROR_DS_SYNTAX_MISMATCH                                                  syscall.Errno = 8384\n\tERROR_DS_EXISTS_IN_MUST_HAVE                                              syscall.Errno = 8385\n\tERROR_DS_EXISTS_IN_MAY_HAVE                                               syscall.Errno = 8386\n\tERROR_DS_NONEXISTENT_MAY_HAVE                                             syscall.Errno = 8387\n\tERROR_DS_NONEXISTENT_MUST_HAVE                                            syscall.Errno = 8388\n\tERROR_DS_AUX_CLS_TEST_FAIL                                                syscall.Errno = 8389\n\tERROR_DS_NONEXISTENT_POSS_SUP                                             syscall.Errno = 8390\n\tERROR_DS_SUB_CLS_TEST_FAIL                                                syscall.Errno = 8391\n\tERROR_DS_BAD_RDN_ATT_ID_SYNTAX                                            syscall.Errno = 8392\n\tERROR_DS_EXISTS_IN_AUX_CLS                                                syscall.Errno = 8393\n\tERROR_DS_EXISTS_IN_SUB_CLS                                                syscall.Errno = 8394\n\tERROR_DS_EXISTS_IN_POSS_SUP                                               syscall.Errno = 8395\n\tERROR_DS_RECALCSCHEMA_FAILED                                              syscall.Errno = 8396\n\tERROR_DS_TREE_DELETE_NOT_FINISHED                                         syscall.Errno = 8397\n\tERROR_DS_CANT_DELETE                                                      syscall.Errno = 8398\n\tERROR_DS_ATT_SCHEMA_REQ_ID                                                syscall.Errno = 8399\n\tERROR_DS_BAD_ATT_SCHEMA_SYNTAX                                            syscall.Errno = 8400\n\tERROR_DS_CANT_CACHE_ATT                                                   syscall.Errno = 8401\n\tERROR_DS_CANT_CACHE_CLASS                                                 syscall.Errno = 8402\n\tERROR_DS_CANT_REMOVE_ATT_CACHE                                            syscall.Errno = 8403\n\tERROR_DS_CANT_REMOVE_CLASS_CACHE                                          syscall.Errno = 8404\n\tERROR_DS_CANT_RETRIEVE_DN                                                 syscall.Errno = 8405\n\tERROR_DS_MISSING_SUPREF                                                   syscall.Errno = 8406\n\tERROR_DS_CANT_RETRIEVE_INSTANCE                                           syscall.Errno = 8407\n\tERROR_DS_CODE_INCONSISTENCY                                               syscall.Errno = 8408\n\tERROR_DS_DATABASE_ERROR                                                   syscall.Errno = 8409\n\tERROR_DS_GOVERNSID_MISSING                                                syscall.Errno = 8410\n\tERROR_DS_MISSING_EXPECTED_ATT                                             syscall.Errno = 8411\n\tERROR_DS_NCNAME_MISSING_CR_REF                                            syscall.Errno = 8412\n\tERROR_DS_SECURITY_CHECKING_ERROR                                          syscall.Errno = 8413\n\tERROR_DS_SCHEMA_NOT_LOADED                                                syscall.Errno = 8414\n\tERROR_DS_SCHEMA_ALLOC_FAILED                                              syscall.Errno = 8415\n\tERROR_DS_ATT_SCHEMA_REQ_SYNTAX                                            syscall.Errno = 8416\n\tERROR_DS_GCVERIFY_ERROR                                                   syscall.Errno = 8417\n\tERROR_DS_DRA_SCHEMA_MISMATCH                                              syscall.Errno = 8418\n\tERROR_DS_CANT_FIND_DSA_OBJ                                                syscall.Errno = 8419\n\tERROR_DS_CANT_FIND_EXPECTED_NC                                            syscall.Errno = 8420\n\tERROR_DS_CANT_FIND_NC_IN_CACHE                                            syscall.Errno = 8421\n\tERROR_DS_CANT_RETRIEVE_CHILD                                              syscall.Errno = 8422\n\tERROR_DS_SECURITY_ILLEGAL_MODIFY                                          syscall.Errno = 8423\n\tERROR_DS_CANT_REPLACE_HIDDEN_REC                                          syscall.Errno = 8424\n\tERROR_DS_BAD_HIERARCHY_FILE                                               syscall.Errno = 8425\n\tERROR_DS_BUILD_HIERARCHY_TABLE_FAILED                                     syscall.Errno = 8426\n\tERROR_DS_CONFIG_PARAM_MISSING                                             syscall.Errno = 8427\n\tERROR_DS_COUNTING_AB_INDICES_FAILED                                       syscall.Errno = 8428\n\tERROR_DS_HIERARCHY_TABLE_MALLOC_FAILED                                    syscall.Errno = 8429\n\tERROR_DS_INTERNAL_FAILURE                                                 syscall.Errno = 8430\n\tERROR_DS_UNKNOWN_ERROR                                                    syscall.Errno = 8431\n\tERROR_DS_ROOT_REQUIRES_CLASS_TOP                                          syscall.Errno = 8432\n\tERROR_DS_REFUSING_FSMO_ROLES                                              syscall.Errno = 8433\n\tERROR_DS_MISSING_FSMO_SETTINGS                                            syscall.Errno = 8434\n\tERROR_DS_UNABLE_TO_SURRENDER_ROLES                                        syscall.Errno = 8435\n\tERROR_DS_DRA_GENERIC                                                      syscall.Errno = 8436\n\tERROR_DS_DRA_INVALID_PARAMETER                                            syscall.Errno = 8437\n\tERROR_DS_DRA_BUSY                                                         syscall.Errno = 8438\n\tERROR_DS_DRA_BAD_DN                                                       syscall.Errno = 8439\n\tERROR_DS_DRA_BAD_NC                                                       syscall.Errno = 8440\n\tERROR_DS_DRA_DN_EXISTS                                                    syscall.Errno = 8441\n\tERROR_DS_DRA_INTERNAL_ERROR                                               syscall.Errno = 8442\n\tERROR_DS_DRA_INCONSISTENT_DIT                                             syscall.Errno = 8443\n\tERROR_DS_DRA_CONNECTION_FAILED                                            syscall.Errno = 8444\n\tERROR_DS_DRA_BAD_INSTANCE_TYPE                                            syscall.Errno = 8445\n\tERROR_DS_DRA_OUT_OF_MEM                                                   syscall.Errno = 8446\n\tERROR_DS_DRA_MAIL_PROBLEM                                                 syscall.Errno = 8447\n\tERROR_DS_DRA_REF_ALREADY_EXISTS                                           syscall.Errno = 8448\n\tERROR_DS_DRA_REF_NOT_FOUND                                                syscall.Errno = 8449\n\tERROR_DS_DRA_OBJ_IS_REP_SOURCE                                            syscall.Errno = 8450\n\tERROR_DS_DRA_DB_ERROR                                                     syscall.Errno = 8451\n\tERROR_DS_DRA_NO_REPLICA                                                   syscall.Errno = 8452\n\tERROR_DS_DRA_ACCESS_DENIED                                                syscall.Errno = 8453\n\tERROR_DS_DRA_NOT_SUPPORTED                                                syscall.Errno = 8454\n\tERROR_DS_DRA_RPC_CANCELLED                                                syscall.Errno = 8455\n\tERROR_DS_DRA_SOURCE_DISABLED                                              syscall.Errno = 8456\n\tERROR_DS_DRA_SINK_DISABLED                                                syscall.Errno = 8457\n\tERROR_DS_DRA_NAME_COLLISION                                               syscall.Errno = 8458\n\tERROR_DS_DRA_SOURCE_REINSTALLED                                           syscall.Errno = 8459\n\tERROR_DS_DRA_MISSING_PARENT                                               syscall.Errno = 8460\n\tERROR_DS_DRA_PREEMPTED                                                    syscall.Errno = 8461\n\tERROR_DS_DRA_ABANDON_SYNC                                                 syscall.Errno = 8462\n\tERROR_DS_DRA_SHUTDOWN                                                     syscall.Errno = 8463\n\tERROR_DS_DRA_INCOMPATIBLE_PARTIAL_SET                                     syscall.Errno = 8464\n\tERROR_DS_DRA_SOURCE_IS_PARTIAL_REPLICA                                    syscall.Errno = 8465\n\tERROR_DS_DRA_EXTN_CONNECTION_FAILED                                       syscall.Errno = 8466\n\tERROR_DS_INSTALL_SCHEMA_MISMATCH                                          syscall.Errno = 8467\n\tERROR_DS_DUP_LINK_ID                                                      syscall.Errno = 8468\n\tERROR_DS_NAME_ERROR_RESOLVING                                             syscall.Errno = 8469\n\tERROR_DS_NAME_ERROR_NOT_FOUND                                             syscall.Errno = 8470\n\tERROR_DS_NAME_ERROR_NOT_UNIQUE                                            syscall.Errno = 8471\n\tERROR_DS_NAME_ERROR_NO_MAPPING                                            syscall.Errno = 8472\n\tERROR_DS_NAME_ERROR_DOMAIN_ONLY                                           syscall.Errno = 8473\n\tERROR_DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING                                syscall.Errno = 8474\n\tERROR_DS_CONSTRUCTED_ATT_MOD                                              syscall.Errno = 8475\n\tERROR_DS_WRONG_OM_OBJ_CLASS                                               syscall.Errno = 8476\n\tERROR_DS_DRA_REPL_PENDING                                                 syscall.Errno = 8477\n\tERROR_DS_DS_REQUIRED                                                      syscall.Errno = 8478\n\tERROR_DS_INVALID_LDAP_DISPLAY_NAME                                        syscall.Errno = 8479\n\tERROR_DS_NON_BASE_SEARCH                                                  syscall.Errno = 8480\n\tERROR_DS_CANT_RETRIEVE_ATTS                                               syscall.Errno = 8481\n\tERROR_DS_BACKLINK_WITHOUT_LINK                                            syscall.Errno = 8482\n\tERROR_DS_EPOCH_MISMATCH                                                   syscall.Errno = 8483\n\tERROR_DS_SRC_NAME_MISMATCH                                                syscall.Errno = 8484\n\tERROR_DS_SRC_AND_DST_NC_IDENTICAL                                         syscall.Errno = 8485\n\tERROR_DS_DST_NC_MISMATCH                                                  syscall.Errno = 8486\n\tERROR_DS_NOT_AUTHORITIVE_FOR_DST_NC                                       syscall.Errno = 8487\n\tERROR_DS_SRC_GUID_MISMATCH                                                syscall.Errno = 8488\n\tERROR_DS_CANT_MOVE_DELETED_OBJECT                                         syscall.Errno = 8489\n\tERROR_DS_PDC_OPERATION_IN_PROGRESS                                        syscall.Errno = 8490\n\tERROR_DS_CROSS_DOMAIN_CLEANUP_REQD                                        syscall.Errno = 8491\n\tERROR_DS_ILLEGAL_XDOM_MOVE_OPERATION                                      syscall.Errno = 8492\n\tERROR_DS_CANT_WITH_ACCT_GROUP_MEMBERSHPS                                  syscall.Errno = 8493\n\tERROR_DS_NC_MUST_HAVE_NC_PARENT                                           syscall.Errno = 8494\n\tERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE                                        syscall.Errno = 8495\n\tERROR_DS_DST_DOMAIN_NOT_NATIVE                                            syscall.Errno = 8496\n\tERROR_DS_MISSING_INFRASTRUCTURE_CONTAINER                                 syscall.Errno = 8497\n\tERROR_DS_CANT_MOVE_ACCOUNT_GROUP                                          syscall.Errno = 8498\n\tERROR_DS_CANT_MOVE_RESOURCE_GROUP                                         syscall.Errno = 8499\n\tERROR_DS_INVALID_SEARCH_FLAG                                              syscall.Errno = 8500\n\tERROR_DS_NO_TREE_DELETE_ABOVE_NC                                          syscall.Errno = 8501\n\tERROR_DS_COULDNT_LOCK_TREE_FOR_DELETE                                     syscall.Errno = 8502\n\tERROR_DS_COULDNT_IDENTIFY_OBJECTS_FOR_TREE_DELETE                         syscall.Errno = 8503\n\tERROR_DS_SAM_INIT_FAILURE                                                 syscall.Errno = 8504\n\tERROR_DS_SENSITIVE_GROUP_VIOLATION                                        syscall.Errno = 8505\n\tERROR_DS_CANT_MOD_PRIMARYGROUPID                                          syscall.Errno = 8506\n\tERROR_DS_ILLEGAL_BASE_SCHEMA_MOD                                          syscall.Errno = 8507\n\tERROR_DS_NONSAFE_SCHEMA_CHANGE                                            syscall.Errno = 8508\n\tERROR_DS_SCHEMA_UPDATE_DISALLOWED                                         syscall.Errno = 8509\n\tERROR_DS_CANT_CREATE_UNDER_SCHEMA                                         syscall.Errno = 8510\n\tERROR_DS_INSTALL_NO_SRC_SCH_VERSION                                       syscall.Errno = 8511\n\tERROR_DS_INSTALL_NO_SCH_VERSION_IN_INIFILE                                syscall.Errno = 8512\n\tERROR_DS_INVALID_GROUP_TYPE                                               syscall.Errno = 8513\n\tERROR_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN                               syscall.Errno = 8514\n\tERROR_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN                                syscall.Errno = 8515\n\tERROR_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER                                    syscall.Errno = 8516\n\tERROR_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER                                syscall.Errno = 8517\n\tERROR_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER                                 syscall.Errno = 8518\n\tERROR_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER                              syscall.Errno = 8519\n\tERROR_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER                         syscall.Errno = 8520\n\tERROR_DS_HAVE_PRIMARY_MEMBERS                                             syscall.Errno = 8521\n\tERROR_DS_STRING_SD_CONVERSION_FAILED                                      syscall.Errno = 8522\n\tERROR_DS_NAMING_MASTER_GC                                                 syscall.Errno = 8523\n\tERROR_DS_DNS_LOOKUP_FAILURE                                               syscall.Errno = 8524\n\tERROR_DS_COULDNT_UPDATE_SPNS                                              syscall.Errno = 8525\n\tERROR_DS_CANT_RETRIEVE_SD                                                 syscall.Errno = 8526\n\tERROR_DS_KEY_NOT_UNIQUE                                                   syscall.Errno = 8527\n\tERROR_DS_WRONG_LINKED_ATT_SYNTAX                                          syscall.Errno = 8528\n\tERROR_DS_SAM_NEED_BOOTKEY_PASSWORD                                        syscall.Errno = 8529\n\tERROR_DS_SAM_NEED_BOOTKEY_FLOPPY                                          syscall.Errno = 8530\n\tERROR_DS_CANT_START                                                       syscall.Errno = 8531\n\tERROR_DS_INIT_FAILURE                                                     syscall.Errno = 8532\n\tERROR_DS_NO_PKT_PRIVACY_ON_CONNECTION                                     syscall.Errno = 8533\n\tERROR_DS_SOURCE_DOMAIN_IN_FOREST                                          syscall.Errno = 8534\n\tERROR_DS_DESTINATION_DOMAIN_NOT_IN_FOREST                                 syscall.Errno = 8535\n\tERROR_DS_DESTINATION_AUDITING_NOT_ENABLED                                 syscall.Errno = 8536\n\tERROR_DS_CANT_FIND_DC_FOR_SRC_DOMAIN                                      syscall.Errno = 8537\n\tERROR_DS_SRC_OBJ_NOT_GROUP_OR_USER                                        syscall.Errno = 8538\n\tERROR_DS_SRC_SID_EXISTS_IN_FOREST                                         syscall.Errno = 8539\n\tERROR_DS_SRC_AND_DST_OBJECT_CLASS_MISMATCH                                syscall.Errno = 8540\n\tERROR_SAM_INIT_FAILURE                                                    syscall.Errno = 8541\n\tERROR_DS_DRA_SCHEMA_INFO_SHIP                                             syscall.Errno = 8542\n\tERROR_DS_DRA_SCHEMA_CONFLICT                                              syscall.Errno = 8543\n\tERROR_DS_DRA_EARLIER_SCHEMA_CONFLICT                                      syscall.Errno = 8544\n\tERROR_DS_DRA_OBJ_NC_MISMATCH                                              syscall.Errno = 8545\n\tERROR_DS_NC_STILL_HAS_DSAS                                                syscall.Errno = 8546\n\tERROR_DS_GC_REQUIRED                                                      syscall.Errno = 8547\n\tERROR_DS_LOCAL_MEMBER_OF_LOCAL_ONLY                                       syscall.Errno = 8548\n\tERROR_DS_NO_FPO_IN_UNIVERSAL_GROUPS                                       syscall.Errno = 8549\n\tERROR_DS_CANT_ADD_TO_GC                                                   syscall.Errno = 8550\n\tERROR_DS_NO_CHECKPOINT_WITH_PDC                                           syscall.Errno = 8551\n\tERROR_DS_SOURCE_AUDITING_NOT_ENABLED                                      syscall.Errno = 8552\n\tERROR_DS_CANT_CREATE_IN_NONDOMAIN_NC                                      syscall.Errno = 8553\n\tERROR_DS_INVALID_NAME_FOR_SPN                                             syscall.Errno = 8554\n\tERROR_DS_FILTER_USES_CONTRUCTED_ATTRS                                     syscall.Errno = 8555\n\tERROR_DS_UNICODEPWD_NOT_IN_QUOTES                                         syscall.Errno = 8556\n\tERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED                                   syscall.Errno = 8557\n\tERROR_DS_MUST_BE_RUN_ON_DST_DC                                            syscall.Errno = 8558\n\tERROR_DS_SRC_DC_MUST_BE_SP4_OR_GREATER                                    syscall.Errno = 8559\n\tERROR_DS_CANT_TREE_DELETE_CRITICAL_OBJ                                    syscall.Errno = 8560\n\tERROR_DS_INIT_FAILURE_CONSOLE                                             syscall.Errno = 8561\n\tERROR_DS_SAM_INIT_FAILURE_CONSOLE                                         syscall.Errno = 8562\n\tERROR_DS_FOREST_VERSION_TOO_HIGH                                          syscall.Errno = 8563\n\tERROR_DS_DOMAIN_VERSION_TOO_HIGH                                          syscall.Errno = 8564\n\tERROR_DS_FOREST_VERSION_TOO_LOW                                           syscall.Errno = 8565\n\tERROR_DS_DOMAIN_VERSION_TOO_LOW                                           syscall.Errno = 8566\n\tERROR_DS_INCOMPATIBLE_VERSION                                             syscall.Errno = 8567\n\tERROR_DS_LOW_DSA_VERSION                                                  syscall.Errno = 8568\n\tERROR_DS_NO_BEHAVIOR_VERSION_IN_MIXEDDOMAIN                               syscall.Errno = 8569\n\tERROR_DS_NOT_SUPPORTED_SORT_ORDER                                         syscall.Errno = 8570\n\tERROR_DS_NAME_NOT_UNIQUE                                                  syscall.Errno = 8571\n\tERROR_DS_MACHINE_ACCOUNT_CREATED_PRENT4                                   syscall.Errno = 8572\n\tERROR_DS_OUT_OF_VERSION_STORE                                             syscall.Errno = 8573\n\tERROR_DS_INCOMPATIBLE_CONTROLS_USED                                       syscall.Errno = 8574\n\tERROR_DS_NO_REF_DOMAIN                                                    syscall.Errno = 8575\n\tERROR_DS_RESERVED_LINK_ID                                                 syscall.Errno = 8576\n\tERROR_DS_LINK_ID_NOT_AVAILABLE                                            syscall.Errno = 8577\n\tERROR_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER                                    syscall.Errno = 8578\n\tERROR_DS_MODIFYDN_DISALLOWED_BY_INSTANCE_TYPE                             syscall.Errno = 8579\n\tERROR_DS_NO_OBJECT_MOVE_IN_SCHEMA_NC                                      syscall.Errno = 8580\n\tERROR_DS_MODIFYDN_DISALLOWED_BY_FLAG                                      syscall.Errno = 8581\n\tERROR_DS_MODIFYDN_WRONG_GRANDPARENT                                       syscall.Errno = 8582\n\tERROR_DS_NAME_ERROR_TRUST_REFERRAL                                        syscall.Errno = 8583\n\tERROR_NOT_SUPPORTED_ON_STANDARD_SERVER                                    syscall.Errno = 8584\n\tERROR_DS_CANT_ACCESS_REMOTE_PART_OF_AD                                    syscall.Errno = 8585\n\tERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE_V2                                     syscall.Errno = 8586\n\tERROR_DS_THREAD_LIMIT_EXCEEDED                                            syscall.Errno = 8587\n\tERROR_DS_NOT_CLOSEST                                                      syscall.Errno = 8588\n\tERROR_DS_CANT_DERIVE_SPN_WITHOUT_SERVER_REF                               syscall.Errno = 8589\n\tERROR_DS_SINGLE_USER_MODE_FAILED                                          syscall.Errno = 8590\n\tERROR_DS_NTDSCRIPT_SYNTAX_ERROR                                           syscall.Errno = 8591\n\tERROR_DS_NTDSCRIPT_PROCESS_ERROR                                          syscall.Errno = 8592\n\tERROR_DS_DIFFERENT_REPL_EPOCHS                                            syscall.Errno = 8593\n\tERROR_DS_DRS_EXTENSIONS_CHANGED                                           syscall.Errno = 8594\n\tERROR_DS_REPLICA_SET_CHANGE_NOT_ALLOWED_ON_DISABLED_CR                    syscall.Errno = 8595\n\tERROR_DS_NO_MSDS_INTID                                                    syscall.Errno = 8596\n\tERROR_DS_DUP_MSDS_INTID                                                   syscall.Errno = 8597\n\tERROR_DS_EXISTS_IN_RDNATTID                                               syscall.Errno = 8598\n\tERROR_DS_AUTHORIZATION_FAILED                                             syscall.Errno = 8599\n\tERROR_DS_INVALID_SCRIPT                                                   syscall.Errno = 8600\n\tERROR_DS_REMOTE_CROSSREF_OP_FAILED                                        syscall.Errno = 8601\n\tERROR_DS_CROSS_REF_BUSY                                                   syscall.Errno = 8602\n\tERROR_DS_CANT_DERIVE_SPN_FOR_DELETED_DOMAIN                               syscall.Errno = 8603\n\tERROR_DS_CANT_DEMOTE_WITH_WRITEABLE_NC                                    syscall.Errno = 8604\n\tERROR_DS_DUPLICATE_ID_FOUND                                               syscall.Errno = 8605\n\tERROR_DS_INSUFFICIENT_ATTR_TO_CREATE_OBJECT                               syscall.Errno = 8606\n\tERROR_DS_GROUP_CONVERSION_ERROR                                           syscall.Errno = 8607\n\tERROR_DS_CANT_MOVE_APP_BASIC_GROUP                                        syscall.Errno = 8608\n\tERROR_DS_CANT_MOVE_APP_QUERY_GROUP                                        syscall.Errno = 8609\n\tERROR_DS_ROLE_NOT_VERIFIED                                                syscall.Errno = 8610\n\tERROR_DS_WKO_CONTAINER_CANNOT_BE_SPECIAL                                  syscall.Errno = 8611\n\tERROR_DS_DOMAIN_RENAME_IN_PROGRESS                                        syscall.Errno = 8612\n\tERROR_DS_EXISTING_AD_CHILD_NC                                             syscall.Errno = 8613\n\tERROR_DS_REPL_LIFETIME_EXCEEDED                                           syscall.Errno = 8614\n\tERROR_DS_DISALLOWED_IN_SYSTEM_CONTAINER                                   syscall.Errno = 8615\n\tERROR_DS_LDAP_SEND_QUEUE_FULL                                             syscall.Errno = 8616\n\tERROR_DS_DRA_OUT_SCHEDULE_WINDOW                                          syscall.Errno = 8617\n\tERROR_DS_POLICY_NOT_KNOWN                                                 syscall.Errno = 8618\n\tERROR_NO_SITE_SETTINGS_OBJECT                                             syscall.Errno = 8619\n\tERROR_NO_SECRETS                                                          syscall.Errno = 8620\n\tERROR_NO_WRITABLE_DC_FOUND                                                syscall.Errno = 8621\n\tERROR_DS_NO_SERVER_OBJECT                                                 syscall.Errno = 8622\n\tERROR_DS_NO_NTDSA_OBJECT                                                  syscall.Errno = 8623\n\tERROR_DS_NON_ASQ_SEARCH                                                   syscall.Errno = 8624\n\tERROR_DS_AUDIT_FAILURE                                                    syscall.Errno = 8625\n\tERROR_DS_INVALID_SEARCH_FLAG_SUBTREE                                      syscall.Errno = 8626\n\tERROR_DS_INVALID_SEARCH_FLAG_TUPLE                                        syscall.Errno = 8627\n\tERROR_DS_HIERARCHY_TABLE_TOO_DEEP                                         syscall.Errno = 8628\n\tERROR_DS_DRA_CORRUPT_UTD_VECTOR                                           syscall.Errno = 8629\n\tERROR_DS_DRA_SECRETS_DENIED                                               syscall.Errno = 8630\n\tERROR_DS_RESERVED_MAPI_ID                                                 syscall.Errno = 8631\n\tERROR_DS_MAPI_ID_NOT_AVAILABLE                                            syscall.Errno = 8632\n\tERROR_DS_DRA_MISSING_KRBTGT_SECRET                                        syscall.Errno = 8633\n\tERROR_DS_DOMAIN_NAME_EXISTS_IN_FOREST                                     syscall.Errno = 8634\n\tERROR_DS_FLAT_NAME_EXISTS_IN_FOREST                                       syscall.Errno = 8635\n\tERROR_INVALID_USER_PRINCIPAL_NAME                                         syscall.Errno = 8636\n\tERROR_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS                               syscall.Errno = 8637\n\tERROR_DS_OID_NOT_FOUND                                                    syscall.Errno = 8638\n\tERROR_DS_DRA_RECYCLED_TARGET                                              syscall.Errno = 8639\n\tERROR_DS_DISALLOWED_NC_REDIRECT                                           syscall.Errno = 8640\n\tERROR_DS_HIGH_ADLDS_FFL                                                   syscall.Errno = 8641\n\tERROR_DS_HIGH_DSA_VERSION                                                 syscall.Errno = 8642\n\tERROR_DS_LOW_ADLDS_FFL                                                    syscall.Errno = 8643\n\tERROR_DOMAIN_SID_SAME_AS_LOCAL_WORKSTATION                                syscall.Errno = 8644\n\tERROR_DS_UNDELETE_SAM_VALIDATION_FAILED                                   syscall.Errno = 8645\n\tERROR_INCORRECT_ACCOUNT_TYPE                                              syscall.Errno = 8646\n\tERROR_DS_SPN_VALUE_NOT_UNIQUE_IN_FOREST                                   syscall.Errno = 8647\n\tERROR_DS_UPN_VALUE_NOT_UNIQUE_IN_FOREST                                   syscall.Errno = 8648\n\tERROR_DS_MISSING_FOREST_TRUST                                             syscall.Errno = 8649\n\tERROR_DS_VALUE_KEY_NOT_UNIQUE                                             syscall.Errno = 8650\n\tDNS_ERROR_RESPONSE_CODES_BASE                                             syscall.Errno = 9000\n\tDNS_ERROR_RCODE_NO_ERROR                                                                = ERROR_SUCCESS\n\tDNS_ERROR_MASK                                                            syscall.Errno = 0x00002328\n\tDNS_ERROR_RCODE_FORMAT_ERROR                                              syscall.Errno = 9001\n\tDNS_ERROR_RCODE_SERVER_FAILURE                                            syscall.Errno = 9002\n\tDNS_ERROR_RCODE_NAME_ERROR                                                syscall.Errno = 9003\n\tDNS_ERROR_RCODE_NOT_IMPLEMENTED                                           syscall.Errno = 9004\n\tDNS_ERROR_RCODE_REFUSED                                                   syscall.Errno = 9005\n\tDNS_ERROR_RCODE_YXDOMAIN                                                  syscall.Errno = 9006\n\tDNS_ERROR_RCODE_YXRRSET                                                   syscall.Errno = 9007\n\tDNS_ERROR_RCODE_NXRRSET                                                   syscall.Errno = 9008\n\tDNS_ERROR_RCODE_NOTAUTH                                                   syscall.Errno = 9009\n\tDNS_ERROR_RCODE_NOTZONE                                                   syscall.Errno = 9010\n\tDNS_ERROR_RCODE_BADSIG                                                    syscall.Errno = 9016\n\tDNS_ERROR_RCODE_BADKEY                                                    syscall.Errno = 9017\n\tDNS_ERROR_RCODE_BADTIME                                                   syscall.Errno = 9018\n\tDNS_ERROR_RCODE_LAST                                                                    = DNS_ERROR_RCODE_BADTIME\n\tDNS_ERROR_DNSSEC_BASE                                                     syscall.Errno = 9100\n\tDNS_ERROR_KEYMASTER_REQUIRED                                              syscall.Errno = 9101\n\tDNS_ERROR_NOT_ALLOWED_ON_SIGNED_ZONE                                      syscall.Errno = 9102\n\tDNS_ERROR_NSEC3_INCOMPATIBLE_WITH_RSA_SHA1                                syscall.Errno = 9103\n\tDNS_ERROR_NOT_ENOUGH_SIGNING_KEY_DESCRIPTORS                              syscall.Errno = 9104\n\tDNS_ERROR_UNSUPPORTED_ALGORITHM                                           syscall.Errno = 9105\n\tDNS_ERROR_INVALID_KEY_SIZE                                                syscall.Errno = 9106\n\tDNS_ERROR_SIGNING_KEY_NOT_ACCESSIBLE                                      syscall.Errno = 9107\n\tDNS_ERROR_KSP_DOES_NOT_SUPPORT_PROTECTION                                 syscall.Errno = 9108\n\tDNS_ERROR_UNEXPECTED_DATA_PROTECTION_ERROR                                syscall.Errno = 9109\n\tDNS_ERROR_UNEXPECTED_CNG_ERROR                                            syscall.Errno = 9110\n\tDNS_ERROR_UNKNOWN_SIGNING_PARAMETER_VERSION                               syscall.Errno = 9111\n\tDNS_ERROR_KSP_NOT_ACCESSIBLE                                              syscall.Errno = 9112\n\tDNS_ERROR_TOO_MANY_SKDS                                                   syscall.Errno = 9113\n\tDNS_ERROR_INVALID_ROLLOVER_PERIOD                                         syscall.Errno = 9114\n\tDNS_ERROR_INVALID_INITIAL_ROLLOVER_OFFSET                                 syscall.Errno = 9115\n\tDNS_ERROR_ROLLOVER_IN_PROGRESS                                            syscall.Errno = 9116\n\tDNS_ERROR_STANDBY_KEY_NOT_PRESENT                                         syscall.Errno = 9117\n\tDNS_ERROR_NOT_ALLOWED_ON_ZSK                                              syscall.Errno = 9118\n\tDNS_ERROR_NOT_ALLOWED_ON_ACTIVE_SKD                                       syscall.Errno = 9119\n\tDNS_ERROR_ROLLOVER_ALREADY_QUEUED                                         syscall.Errno = 9120\n\tDNS_ERROR_NOT_ALLOWED_ON_UNSIGNED_ZONE                                    syscall.Errno = 9121\n\tDNS_ERROR_BAD_KEYMASTER                                                   syscall.Errno = 9122\n\tDNS_ERROR_INVALID_SIGNATURE_VALIDITY_PERIOD                               syscall.Errno = 9123\n\tDNS_ERROR_INVALID_NSEC3_ITERATION_COUNT                                   syscall.Errno = 9124\n\tDNS_ERROR_DNSSEC_IS_DISABLED                                              syscall.Errno = 9125\n\tDNS_ERROR_INVALID_XML                                                     syscall.Errno = 9126\n\tDNS_ERROR_NO_VALID_TRUST_ANCHORS                                          syscall.Errno = 9127\n\tDNS_ERROR_ROLLOVER_NOT_POKEABLE                                           syscall.Errno = 9128\n\tDNS_ERROR_NSEC3_NAME_COLLISION                                            syscall.Errno = 9129\n\tDNS_ERROR_NSEC_INCOMPATIBLE_WITH_NSEC3_RSA_SHA1                           syscall.Errno = 9130\n\tDNS_ERROR_PACKET_FMT_BASE                                                 syscall.Errno = 9500\n\tDNS_INFO_NO_RECORDS                                                       syscall.Errno = 9501\n\tDNS_ERROR_BAD_PACKET                                                      syscall.Errno = 9502\n\tDNS_ERROR_NO_PACKET                                                       syscall.Errno = 9503\n\tDNS_ERROR_RCODE                                                           syscall.Errno = 9504\n\tDNS_ERROR_UNSECURE_PACKET                                                 syscall.Errno = 9505\n\tDNS_STATUS_PACKET_UNSECURE                                                              = DNS_ERROR_UNSECURE_PACKET\n\tDNS_REQUEST_PENDING                                                       syscall.Errno = 9506\n\tDNS_ERROR_NO_MEMORY                                                                     = ERROR_OUTOFMEMORY\n\tDNS_ERROR_INVALID_NAME                                                                  = ERROR_INVALID_NAME\n\tDNS_ERROR_INVALID_DATA                                                                  = ERROR_INVALID_DATA\n\tDNS_ERROR_GENERAL_API_BASE                                                syscall.Errno = 9550\n\tDNS_ERROR_INVALID_TYPE                                                    syscall.Errno = 9551\n\tDNS_ERROR_INVALID_IP_ADDRESS                                              syscall.Errno = 9552\n\tDNS_ERROR_INVALID_PROPERTY                                                syscall.Errno = 9553\n\tDNS_ERROR_TRY_AGAIN_LATER                                                 syscall.Errno = 9554\n\tDNS_ERROR_NOT_UNIQUE                                                      syscall.Errno = 9555\n\tDNS_ERROR_NON_RFC_NAME                                                    syscall.Errno = 9556\n\tDNS_STATUS_FQDN                                                           syscall.Errno = 9557\n\tDNS_STATUS_DOTTED_NAME                                                    syscall.Errno = 9558\n\tDNS_STATUS_SINGLE_PART_NAME                                               syscall.Errno = 9559\n\tDNS_ERROR_INVALID_NAME_CHAR                                               syscall.Errno = 9560\n\tDNS_ERROR_NUMERIC_NAME                                                    syscall.Errno = 9561\n\tDNS_ERROR_NOT_ALLOWED_ON_ROOT_SERVER                                      syscall.Errno = 9562\n\tDNS_ERROR_NOT_ALLOWED_UNDER_DELEGATION                                    syscall.Errno = 9563\n\tDNS_ERROR_CANNOT_FIND_ROOT_HINTS                                          syscall.Errno = 9564\n\tDNS_ERROR_INCONSISTENT_ROOT_HINTS                                         syscall.Errno = 9565\n\tDNS_ERROR_DWORD_VALUE_TOO_SMALL                                           syscall.Errno = 9566\n\tDNS_ERROR_DWORD_VALUE_TOO_LARGE                                           syscall.Errno = 9567\n\tDNS_ERROR_BACKGROUND_LOADING                                              syscall.Errno = 9568\n\tDNS_ERROR_NOT_ALLOWED_ON_RODC                                             syscall.Errno = 9569\n\tDNS_ERROR_NOT_ALLOWED_UNDER_DNAME                                         syscall.Errno = 9570\n\tDNS_ERROR_DELEGATION_REQUIRED                                             syscall.Errno = 9571\n\tDNS_ERROR_INVALID_POLICY_TABLE                                            syscall.Errno = 9572\n\tDNS_ERROR_ADDRESS_REQUIRED                                                syscall.Errno = 9573\n\tDNS_ERROR_ZONE_BASE                                                       syscall.Errno = 9600\n\tDNS_ERROR_ZONE_DOES_NOT_EXIST                                             syscall.Errno = 9601\n\tDNS_ERROR_NO_ZONE_INFO                                                    syscall.Errno = 9602\n\tDNS_ERROR_INVALID_ZONE_OPERATION                                          syscall.Errno = 9603\n\tDNS_ERROR_ZONE_CONFIGURATION_ERROR                                        syscall.Errno = 9604\n\tDNS_ERROR_ZONE_HAS_NO_SOA_RECORD                                          syscall.Errno = 9605\n\tDNS_ERROR_ZONE_HAS_NO_NS_RECORDS                                          syscall.Errno = 9606\n\tDNS_ERROR_ZONE_LOCKED                                                     syscall.Errno = 9607\n\tDNS_ERROR_ZONE_CREATION_FAILED                                            syscall.Errno = 9608\n\tDNS_ERROR_ZONE_ALREADY_EXISTS                                             syscall.Errno = 9609\n\tDNS_ERROR_AUTOZONE_ALREADY_EXISTS                                         syscall.Errno = 9610\n\tDNS_ERROR_INVALID_ZONE_TYPE                                               syscall.Errno = 9611\n\tDNS_ERROR_SECONDARY_REQUIRES_MASTER_IP                                    syscall.Errno = 9612\n\tDNS_ERROR_ZONE_NOT_SECONDARY                                              syscall.Errno = 9613\n\tDNS_ERROR_NEED_SECONDARY_ADDRESSES                                        syscall.Errno = 9614\n\tDNS_ERROR_WINS_INIT_FAILED                                                syscall.Errno = 9615\n\tDNS_ERROR_NEED_WINS_SERVERS                                               syscall.Errno = 9616\n\tDNS_ERROR_NBSTAT_INIT_FAILED                                              syscall.Errno = 9617\n\tDNS_ERROR_SOA_DELETE_INVALID                                              syscall.Errno = 9618\n\tDNS_ERROR_FORWARDER_ALREADY_EXISTS                                        syscall.Errno = 9619\n\tDNS_ERROR_ZONE_REQUIRES_MASTER_IP                                         syscall.Errno = 9620\n\tDNS_ERROR_ZONE_IS_SHUTDOWN                                                syscall.Errno = 9621\n\tDNS_ERROR_ZONE_LOCKED_FOR_SIGNING                                         syscall.Errno = 9622\n\tDNS_ERROR_DATAFILE_BASE                                                   syscall.Errno = 9650\n\tDNS_ERROR_PRIMARY_REQUIRES_DATAFILE                                       syscall.Errno = 9651\n\tDNS_ERROR_INVALID_DATAFILE_NAME                                           syscall.Errno = 9652\n\tDNS_ERROR_DATAFILE_OPEN_FAILURE                                           syscall.Errno = 9653\n\tDNS_ERROR_FILE_WRITEBACK_FAILED                                           syscall.Errno = 9654\n\tDNS_ERROR_DATAFILE_PARSING                                                syscall.Errno = 9655\n\tDNS_ERROR_DATABASE_BASE                                                   syscall.Errno = 9700\n\tDNS_ERROR_RECORD_DOES_NOT_EXIST                                           syscall.Errno = 9701\n\tDNS_ERROR_RECORD_FORMAT                                                   syscall.Errno = 9702\n\tDNS_ERROR_NODE_CREATION_FAILED                                            syscall.Errno = 9703\n\tDNS_ERROR_UNKNOWN_RECORD_TYPE                                             syscall.Errno = 9704\n\tDNS_ERROR_RECORD_TIMED_OUT                                                syscall.Errno = 9705\n\tDNS_ERROR_NAME_NOT_IN_ZONE                                                syscall.Errno = 9706\n\tDNS_ERROR_CNAME_LOOP                                                      syscall.Errno = 9707\n\tDNS_ERROR_NODE_IS_CNAME                                                   syscall.Errno = 9708\n\tDNS_ERROR_CNAME_COLLISION                                                 syscall.Errno = 9709\n\tDNS_ERROR_RECORD_ONLY_AT_ZONE_ROOT                                        syscall.Errno = 9710\n\tDNS_ERROR_RECORD_ALREADY_EXISTS                                           syscall.Errno = 9711\n\tDNS_ERROR_SECONDARY_DATA                                                  syscall.Errno = 9712\n\tDNS_ERROR_NO_CREATE_CACHE_DATA                                            syscall.Errno = 9713\n\tDNS_ERROR_NAME_DOES_NOT_EXIST                                             syscall.Errno = 9714\n\tDNS_WARNING_PTR_CREATE_FAILED                                             syscall.Errno = 9715\n\tDNS_WARNING_DOMAIN_UNDELETED                                              syscall.Errno = 9716\n\tDNS_ERROR_DS_UNAVAILABLE                                                  syscall.Errno = 9717\n\tDNS_ERROR_DS_ZONE_ALREADY_EXISTS                                          syscall.Errno = 9718\n\tDNS_ERROR_NO_BOOTFILE_IF_DS_ZONE                                          syscall.Errno = 9719\n\tDNS_ERROR_NODE_IS_DNAME                                                   syscall.Errno = 9720\n\tDNS_ERROR_DNAME_COLLISION                                                 syscall.Errno = 9721\n\tDNS_ERROR_ALIAS_LOOP                                                      syscall.Errno = 9722\n\tDNS_ERROR_OPERATION_BASE                                                  syscall.Errno = 9750\n\tDNS_INFO_AXFR_COMPLETE                                                    syscall.Errno = 9751\n\tDNS_ERROR_AXFR                                                            syscall.Errno = 9752\n\tDNS_INFO_ADDED_LOCAL_WINS                                                 syscall.Errno = 9753\n\tDNS_ERROR_SECURE_BASE                                                     syscall.Errno = 9800\n\tDNS_STATUS_CONTINUE_NEEDED                                                syscall.Errno = 9801\n\tDNS_ERROR_SETUP_BASE                                                      syscall.Errno = 9850\n\tDNS_ERROR_NO_TCPIP                                                        syscall.Errno = 9851\n\tDNS_ERROR_NO_DNS_SERVERS                                                  syscall.Errno = 9852\n\tDNS_ERROR_DP_BASE                                                         syscall.Errno = 9900\n\tDNS_ERROR_DP_DOES_NOT_EXIST                                               syscall.Errno = 9901\n\tDNS_ERROR_DP_ALREADY_EXISTS                                               syscall.Errno = 9902\n\tDNS_ERROR_DP_NOT_ENLISTED                                                 syscall.Errno = 9903\n\tDNS_ERROR_DP_ALREADY_ENLISTED                                             syscall.Errno = 9904\n\tDNS_ERROR_DP_NOT_AVAILABLE                                                syscall.Errno = 9905\n\tDNS_ERROR_DP_FSMO_ERROR                                                   syscall.Errno = 9906\n\tDNS_ERROR_RRL_NOT_ENABLED                                                 syscall.Errno = 9911\n\tDNS_ERROR_RRL_INVALID_WINDOW_SIZE                                         syscall.Errno = 9912\n\tDNS_ERROR_RRL_INVALID_IPV4_PREFIX                                         syscall.Errno = 9913\n\tDNS_ERROR_RRL_INVALID_IPV6_PREFIX                                         syscall.Errno = 9914\n\tDNS_ERROR_RRL_INVALID_TC_RATE                                             syscall.Errno = 9915\n\tDNS_ERROR_RRL_INVALID_LEAK_RATE                                           syscall.Errno = 9916\n\tDNS_ERROR_RRL_LEAK_RATE_LESSTHAN_TC_RATE                                  syscall.Errno = 9917\n\tDNS_ERROR_VIRTUALIZATION_INSTANCE_ALREADY_EXISTS                          syscall.Errno = 9921\n\tDNS_ERROR_VIRTUALIZATION_INSTANCE_DOES_NOT_EXIST                          syscall.Errno = 9922\n\tDNS_ERROR_VIRTUALIZATION_TREE_LOCKED                                      syscall.Errno = 9923\n\tDNS_ERROR_INVAILD_VIRTUALIZATION_INSTANCE_NAME                            syscall.Errno = 9924\n\tDNS_ERROR_DEFAULT_VIRTUALIZATION_INSTANCE                                 syscall.Errno = 9925\n\tDNS_ERROR_ZONESCOPE_ALREADY_EXISTS                                        syscall.Errno = 9951\n\tDNS_ERROR_ZONESCOPE_DOES_NOT_EXIST                                        syscall.Errno = 9952\n\tDNS_ERROR_DEFAULT_ZONESCOPE                                               syscall.Errno = 9953\n\tDNS_ERROR_INVALID_ZONESCOPE_NAME                                          syscall.Errno = 9954\n\tDNS_ERROR_NOT_ALLOWED_WITH_ZONESCOPES                                     syscall.Errno = 9955\n\tDNS_ERROR_LOAD_ZONESCOPE_FAILED                                           syscall.Errno = 9956\n\tDNS_ERROR_ZONESCOPE_FILE_WRITEBACK_FAILED                                 syscall.Errno = 9957\n\tDNS_ERROR_INVALID_SCOPE_NAME                                              syscall.Errno = 9958\n\tDNS_ERROR_SCOPE_DOES_NOT_EXIST                                            syscall.Errno = 9959\n\tDNS_ERROR_DEFAULT_SCOPE                                                   syscall.Errno = 9960\n\tDNS_ERROR_INVALID_SCOPE_OPERATION                                         syscall.Errno = 9961\n\tDNS_ERROR_SCOPE_LOCKED                                                    syscall.Errno = 9962\n\tDNS_ERROR_SCOPE_ALREADY_EXISTS                                            syscall.Errno = 9963\n\tDNS_ERROR_POLICY_ALREADY_EXISTS                                           syscall.Errno = 9971\n\tDNS_ERROR_POLICY_DOES_NOT_EXIST                                           syscall.Errno = 9972\n\tDNS_ERROR_POLICY_INVALID_CRITERIA                                         syscall.Errno = 9973\n\tDNS_ERROR_POLICY_INVALID_SETTINGS                                         syscall.Errno = 9974\n\tDNS_ERROR_CLIENT_SUBNET_IS_ACCESSED                                       syscall.Errno = 9975\n\tDNS_ERROR_CLIENT_SUBNET_DOES_NOT_EXIST                                    syscall.Errno = 9976\n\tDNS_ERROR_CLIENT_SUBNET_ALREADY_EXISTS                                    syscall.Errno = 9977\n\tDNS_ERROR_SUBNET_DOES_NOT_EXIST                                           syscall.Errno = 9978\n\tDNS_ERROR_SUBNET_ALREADY_EXISTS                                           syscall.Errno = 9979\n\tDNS_ERROR_POLICY_LOCKED                                                   syscall.Errno = 9980\n\tDNS_ERROR_POLICY_INVALID_WEIGHT                                           syscall.Errno = 9981\n\tDNS_ERROR_POLICY_INVALID_NAME                                             syscall.Errno = 9982\n\tDNS_ERROR_POLICY_MISSING_CRITERIA                                         syscall.Errno = 9983\n\tDNS_ERROR_INVALID_CLIENT_SUBNET_NAME                                      syscall.Errno = 9984\n\tDNS_ERROR_POLICY_PROCESSING_ORDER_INVALID                                 syscall.Errno = 9985\n\tDNS_ERROR_POLICY_SCOPE_MISSING                                            syscall.Errno = 9986\n\tDNS_ERROR_POLICY_SCOPE_NOT_ALLOWED                                        syscall.Errno = 9987\n\tDNS_ERROR_SERVERSCOPE_IS_REFERENCED                                       syscall.Errno = 9988\n\tDNS_ERROR_ZONESCOPE_IS_REFERENCED                                         syscall.Errno = 9989\n\tDNS_ERROR_POLICY_INVALID_CRITERIA_CLIENT_SUBNET                           syscall.Errno = 9990\n\tDNS_ERROR_POLICY_INVALID_CRITERIA_TRANSPORT_PROTOCOL                      syscall.Errno = 9991\n\tDNS_ERROR_POLICY_INVALID_CRITERIA_NETWORK_PROTOCOL                        syscall.Errno = 9992\n\tDNS_ERROR_POLICY_INVALID_CRITERIA_INTERFACE                               syscall.Errno = 9993\n\tDNS_ERROR_POLICY_INVALID_CRITERIA_FQDN                                    syscall.Errno = 9994\n\tDNS_ERROR_POLICY_INVALID_CRITERIA_QUERY_TYPE                              syscall.Errno = 9995\n\tDNS_ERROR_POLICY_INVALID_CRITERIA_TIME_OF_DAY                             syscall.Errno = 9996\n\tWSABASEERR                                                                syscall.Errno = 10000\n\tWSAEINTR                                                                  syscall.Errno = 10004\n\tWSAEBADF                                                                  syscall.Errno = 10009\n\tWSAEACCES                                                                 syscall.Errno = 10013\n\tWSAEFAULT                                                                 syscall.Errno = 10014\n\tWSAEINVAL                                                                 syscall.Errno = 10022\n\tWSAEMFILE                                                                 syscall.Errno = 10024\n\tWSAEWOULDBLOCK                                                            syscall.Errno = 10035\n\tWSAEINPROGRESS                                                            syscall.Errno = 10036\n\tWSAEALREADY                                                               syscall.Errno = 10037\n\tWSAENOTSOCK                                                               syscall.Errno = 10038\n\tWSAEDESTADDRREQ                                                           syscall.Errno = 10039\n\tWSAEMSGSIZE                                                               syscall.Errno = 10040\n\tWSAEPROTOTYPE                                                             syscall.Errno = 10041\n\tWSAENOPROTOOPT                                                            syscall.Errno = 10042\n\tWSAEPROTONOSUPPORT                                                        syscall.Errno = 10043\n\tWSAESOCKTNOSUPPORT                                                        syscall.Errno = 10044\n\tWSAEOPNOTSUPP                                                             syscall.Errno = 10045\n\tWSAEPFNOSUPPORT                                                           syscall.Errno = 10046\n\tWSAEAFNOSUPPORT                                                           syscall.Errno = 10047\n\tWSAEADDRINUSE                                                             syscall.Errno = 10048\n\tWSAEADDRNOTAVAIL                                                          syscall.Errno = 10049\n\tWSAENETDOWN                                                               syscall.Errno = 10050\n\tWSAENETUNREACH                                                            syscall.Errno = 10051\n\tWSAENETRESET                                                              syscall.Errno = 10052\n\tWSAECONNABORTED                                                           syscall.Errno = 10053\n\tWSAECONNRESET                                                             syscall.Errno = 10054\n\tWSAENOBUFS                                                                syscall.Errno = 10055\n\tWSAEISCONN                                                                syscall.Errno = 10056\n\tWSAENOTCONN                                                               syscall.Errno = 10057\n\tWSAESHUTDOWN                                                              syscall.Errno = 10058\n\tWSAETOOMANYREFS                                                           syscall.Errno = 10059\n\tWSAETIMEDOUT                                                              syscall.Errno = 10060\n\tWSAECONNREFUSED                                                           syscall.Errno = 10061\n\tWSAELOOP                                                                  syscall.Errno = 10062\n\tWSAENAMETOOLONG                                                           syscall.Errno = 10063\n\tWSAEHOSTDOWN                                                              syscall.Errno = 10064\n\tWSAEHOSTUNREACH                                                           syscall.Errno = 10065\n\tWSAENOTEMPTY                                                              syscall.Errno = 10066\n\tWSAEPROCLIM                                                               syscall.Errno = 10067\n\tWSAEUSERS                                                                 syscall.Errno = 10068\n\tWSAEDQUOT                                                                 syscall.Errno = 10069\n\tWSAESTALE                                                                 syscall.Errno = 10070\n\tWSAEREMOTE                                                                syscall.Errno = 10071\n\tWSASYSNOTREADY                                                            syscall.Errno = 10091\n\tWSAVERNOTSUPPORTED                                                        syscall.Errno = 10092\n\tWSANOTINITIALISED                                                         syscall.Errno = 10093\n\tWSAEDISCON                                                                syscall.Errno = 10101\n\tWSAENOMORE                                                                syscall.Errno = 10102\n\tWSAECANCELLED                                                             syscall.Errno = 10103\n\tWSAEINVALIDPROCTABLE                                                      syscall.Errno = 10104\n\tWSAEINVALIDPROVIDER                                                       syscall.Errno = 10105\n\tWSAEPROVIDERFAILEDINIT                                                    syscall.Errno = 10106\n\tWSASYSCALLFAILURE                                                         syscall.Errno = 10107\n\tWSASERVICE_NOT_FOUND                                                      syscall.Errno = 10108\n\tWSATYPE_NOT_FOUND                                                         syscall.Errno = 10109\n\tWSA_E_NO_MORE                                                             syscall.Errno = 10110\n\tWSA_E_CANCELLED                                                           syscall.Errno = 10111\n\tWSAEREFUSED                                                               syscall.Errno = 10112\n\tWSAHOST_NOT_FOUND                                                         syscall.Errno = 11001\n\tWSATRY_AGAIN                                                              syscall.Errno = 11002\n\tWSANO_RECOVERY                                                            syscall.Errno = 11003\n\tWSANO_DATA                                                                syscall.Errno = 11004\n\tWSA_QOS_RECEIVERS                                                         syscall.Errno = 11005\n\tWSA_QOS_SENDERS                                                           syscall.Errno = 11006\n\tWSA_QOS_NO_SENDERS                                                        syscall.Errno = 11007\n\tWSA_QOS_NO_RECEIVERS                                                      syscall.Errno = 11008\n\tWSA_QOS_REQUEST_CONFIRMED                                                 syscall.Errno = 11009\n\tWSA_QOS_ADMISSION_FAILURE                                                 syscall.Errno = 11010\n\tWSA_QOS_POLICY_FAILURE                                                    syscall.Errno = 11011\n\tWSA_QOS_BAD_STYLE                                                         syscall.Errno = 11012\n\tWSA_QOS_BAD_OBJECT                                                        syscall.Errno = 11013\n\tWSA_QOS_TRAFFIC_CTRL_ERROR                                                syscall.Errno = 11014\n\tWSA_QOS_GENERIC_ERROR                                                     syscall.Errno = 11015\n\tWSA_QOS_ESERVICETYPE                                                      syscall.Errno = 11016\n\tWSA_QOS_EFLOWSPEC                                                         syscall.Errno = 11017\n\tWSA_QOS_EPROVSPECBUF                                                      syscall.Errno = 11018\n\tWSA_QOS_EFILTERSTYLE                                                      syscall.Errno = 11019\n\tWSA_QOS_EFILTERTYPE                                                       syscall.Errno = 11020\n\tWSA_QOS_EFILTERCOUNT                                                      syscall.Errno = 11021\n\tWSA_QOS_EOBJLENGTH                                                        syscall.Errno = 11022\n\tWSA_QOS_EFLOWCOUNT                                                        syscall.Errno = 11023\n\tWSA_QOS_EUNKOWNPSOBJ                                                      syscall.Errno = 11024\n\tWSA_QOS_EPOLICYOBJ                                                        syscall.Errno = 11025\n\tWSA_QOS_EFLOWDESC                                                         syscall.Errno = 11026\n\tWSA_QOS_EPSFLOWSPEC                                                       syscall.Errno = 11027\n\tWSA_QOS_EPSFILTERSPEC                                                     syscall.Errno = 11028\n\tWSA_QOS_ESDMODEOBJ                                                        syscall.Errno = 11029\n\tWSA_QOS_ESHAPERATEOBJ                                                     syscall.Errno = 11030\n\tWSA_QOS_RESERVED_PETYPE                                                   syscall.Errno = 11031\n\tWSA_SECURE_HOST_NOT_FOUND                                                 syscall.Errno = 11032\n\tWSA_IPSEC_NAME_POLICY_ERROR                                               syscall.Errno = 11033\n\tERROR_IPSEC_QM_POLICY_EXISTS                                              syscall.Errno = 13000\n\tERROR_IPSEC_QM_POLICY_NOT_FOUND                                           syscall.Errno = 13001\n\tERROR_IPSEC_QM_POLICY_IN_USE                                              syscall.Errno = 13002\n\tERROR_IPSEC_MM_POLICY_EXISTS                                              syscall.Errno = 13003\n\tERROR_IPSEC_MM_POLICY_NOT_FOUND                                           syscall.Errno = 13004\n\tERROR_IPSEC_MM_POLICY_IN_USE                                              syscall.Errno = 13005\n\tERROR_IPSEC_MM_FILTER_EXISTS                                              syscall.Errno = 13006\n\tERROR_IPSEC_MM_FILTER_NOT_FOUND                                           syscall.Errno = 13007\n\tERROR_IPSEC_TRANSPORT_FILTER_EXISTS                                       syscall.Errno = 13008\n\tERROR_IPSEC_TRANSPORT_FILTER_NOT_FOUND                                    syscall.Errno = 13009\n\tERROR_IPSEC_MM_AUTH_EXISTS                                                syscall.Errno = 13010\n\tERROR_IPSEC_MM_AUTH_NOT_FOUND                                             syscall.Errno = 13011\n\tERROR_IPSEC_MM_AUTH_IN_USE                                                syscall.Errno = 13012\n\tERROR_IPSEC_DEFAULT_MM_POLICY_NOT_FOUND                                   syscall.Errno = 13013\n\tERROR_IPSEC_DEFAULT_MM_AUTH_NOT_FOUND                                     syscall.Errno = 13014\n\tERROR_IPSEC_DEFAULT_QM_POLICY_NOT_FOUND                                   syscall.Errno = 13015\n\tERROR_IPSEC_TUNNEL_FILTER_EXISTS                                          syscall.Errno = 13016\n\tERROR_IPSEC_TUNNEL_FILTER_NOT_FOUND                                       syscall.Errno = 13017\n\tERROR_IPSEC_MM_FILTER_PENDING_DELETION                                    syscall.Errno = 13018\n\tERROR_IPSEC_TRANSPORT_FILTER_PENDING_DELETION                             syscall.Errno = 13019\n\tERROR_IPSEC_TUNNEL_FILTER_PENDING_DELETION                                syscall.Errno = 13020\n\tERROR_IPSEC_MM_POLICY_PENDING_DELETION                                    syscall.Errno = 13021\n\tERROR_IPSEC_MM_AUTH_PENDING_DELETION                                      syscall.Errno = 13022\n\tERROR_IPSEC_QM_POLICY_PENDING_DELETION                                    syscall.Errno = 13023\n\tWARNING_IPSEC_MM_POLICY_PRUNED                                            syscall.Errno = 13024\n\tWARNING_IPSEC_QM_POLICY_PRUNED                                            syscall.Errno = 13025\n\tERROR_IPSEC_IKE_NEG_STATUS_BEGIN                                          syscall.Errno = 13800\n\tERROR_IPSEC_IKE_AUTH_FAIL                                                 syscall.Errno = 13801\n\tERROR_IPSEC_IKE_ATTRIB_FAIL                                               syscall.Errno = 13802\n\tERROR_IPSEC_IKE_NEGOTIATION_PENDING                                       syscall.Errno = 13803\n\tERROR_IPSEC_IKE_GENERAL_PROCESSING_ERROR                                  syscall.Errno = 13804\n\tERROR_IPSEC_IKE_TIMED_OUT                                                 syscall.Errno = 13805\n\tERROR_IPSEC_IKE_NO_CERT                                                   syscall.Errno = 13806\n\tERROR_IPSEC_IKE_SA_DELETED                                                syscall.Errno = 13807\n\tERROR_IPSEC_IKE_SA_REAPED                                                 syscall.Errno = 13808\n\tERROR_IPSEC_IKE_MM_ACQUIRE_DROP                                           syscall.Errno = 13809\n\tERROR_IPSEC_IKE_QM_ACQUIRE_DROP                                           syscall.Errno = 13810\n\tERROR_IPSEC_IKE_QUEUE_DROP_MM                                             syscall.Errno = 13811\n\tERROR_IPSEC_IKE_QUEUE_DROP_NO_MM                                          syscall.Errno = 13812\n\tERROR_IPSEC_IKE_DROP_NO_RESPONSE                                          syscall.Errno = 13813\n\tERROR_IPSEC_IKE_MM_DELAY_DROP                                             syscall.Errno = 13814\n\tERROR_IPSEC_IKE_QM_DELAY_DROP                                             syscall.Errno = 13815\n\tERROR_IPSEC_IKE_ERROR                                                     syscall.Errno = 13816\n\tERROR_IPSEC_IKE_CRL_FAILED                                                syscall.Errno = 13817\n\tERROR_IPSEC_IKE_INVALID_KEY_USAGE                                         syscall.Errno = 13818\n\tERROR_IPSEC_IKE_INVALID_CERT_TYPE                                         syscall.Errno = 13819\n\tERROR_IPSEC_IKE_NO_PRIVATE_KEY                                            syscall.Errno = 13820\n\tERROR_IPSEC_IKE_SIMULTANEOUS_REKEY                                        syscall.Errno = 13821\n\tERROR_IPSEC_IKE_DH_FAIL                                                   syscall.Errno = 13822\n\tERROR_IPSEC_IKE_CRITICAL_PAYLOAD_NOT_RECOGNIZED                           syscall.Errno = 13823\n\tERROR_IPSEC_IKE_INVALID_HEADER                                            syscall.Errno = 13824\n\tERROR_IPSEC_IKE_NO_POLICY                                                 syscall.Errno = 13825\n\tERROR_IPSEC_IKE_INVALID_SIGNATURE                                         syscall.Errno = 13826\n\tERROR_IPSEC_IKE_KERBEROS_ERROR                                            syscall.Errno = 13827\n\tERROR_IPSEC_IKE_NO_PUBLIC_KEY                                             syscall.Errno = 13828\n\tERROR_IPSEC_IKE_PROCESS_ERR                                               syscall.Errno = 13829\n\tERROR_IPSEC_IKE_PROCESS_ERR_SA                                            syscall.Errno = 13830\n\tERROR_IPSEC_IKE_PROCESS_ERR_PROP                                          syscall.Errno = 13831\n\tERROR_IPSEC_IKE_PROCESS_ERR_TRANS                                         syscall.Errno = 13832\n\tERROR_IPSEC_IKE_PROCESS_ERR_KE                                            syscall.Errno = 13833\n\tERROR_IPSEC_IKE_PROCESS_ERR_ID                                            syscall.Errno = 13834\n\tERROR_IPSEC_IKE_PROCESS_ERR_CERT                                          syscall.Errno = 13835\n\tERROR_IPSEC_IKE_PROCESS_ERR_CERT_REQ                                      syscall.Errno = 13836\n\tERROR_IPSEC_IKE_PROCESS_ERR_HASH                                          syscall.Errno = 13837\n\tERROR_IPSEC_IKE_PROCESS_ERR_SIG                                           syscall.Errno = 13838\n\tERROR_IPSEC_IKE_PROCESS_ERR_NONCE                                         syscall.Errno = 13839\n\tERROR_IPSEC_IKE_PROCESS_ERR_NOTIFY                                        syscall.Errno = 13840\n\tERROR_IPSEC_IKE_PROCESS_ERR_DELETE                                        syscall.Errno = 13841\n\tERROR_IPSEC_IKE_PROCESS_ERR_VENDOR                                        syscall.Errno = 13842\n\tERROR_IPSEC_IKE_INVALID_PAYLOAD                                           syscall.Errno = 13843\n\tERROR_IPSEC_IKE_LOAD_SOFT_SA                                              syscall.Errno = 13844\n\tERROR_IPSEC_IKE_SOFT_SA_TORN_DOWN                                         syscall.Errno = 13845\n\tERROR_IPSEC_IKE_INVALID_COOKIE                                            syscall.Errno = 13846\n\tERROR_IPSEC_IKE_NO_PEER_CERT                                              syscall.Errno = 13847\n\tERROR_IPSEC_IKE_PEER_CRL_FAILED                                           syscall.Errno = 13848\n\tERROR_IPSEC_IKE_POLICY_CHANGE                                             syscall.Errno = 13849\n\tERROR_IPSEC_IKE_NO_MM_POLICY                                              syscall.Errno = 13850\n\tERROR_IPSEC_IKE_NOTCBPRIV                                                 syscall.Errno = 13851\n\tERROR_IPSEC_IKE_SECLOADFAIL                                               syscall.Errno = 13852\n\tERROR_IPSEC_IKE_FAILSSPINIT                                               syscall.Errno = 13853\n\tERROR_IPSEC_IKE_FAILQUERYSSP                                              syscall.Errno = 13854\n\tERROR_IPSEC_IKE_SRVACQFAIL                                                syscall.Errno = 13855\n\tERROR_IPSEC_IKE_SRVQUERYCRED                                              syscall.Errno = 13856\n\tERROR_IPSEC_IKE_GETSPIFAIL                                                syscall.Errno = 13857\n\tERROR_IPSEC_IKE_INVALID_FILTER                                            syscall.Errno = 13858\n\tERROR_IPSEC_IKE_OUT_OF_MEMORY                                             syscall.Errno = 13859\n\tERROR_IPSEC_IKE_ADD_UPDATE_KEY_FAILED                                     syscall.Errno = 13860\n\tERROR_IPSEC_IKE_INVALID_POLICY                                            syscall.Errno = 13861\n\tERROR_IPSEC_IKE_UNKNOWN_DOI                                               syscall.Errno = 13862\n\tERROR_IPSEC_IKE_INVALID_SITUATION                                         syscall.Errno = 13863\n\tERROR_IPSEC_IKE_DH_FAILURE                                                syscall.Errno = 13864\n\tERROR_IPSEC_IKE_INVALID_GROUP                                             syscall.Errno = 13865\n\tERROR_IPSEC_IKE_ENCRYPT                                                   syscall.Errno = 13866\n\tERROR_IPSEC_IKE_DECRYPT                                                   syscall.Errno = 13867\n\tERROR_IPSEC_IKE_POLICY_MATCH                                              syscall.Errno = 13868\n\tERROR_IPSEC_IKE_UNSUPPORTED_ID                                            syscall.Errno = 13869\n\tERROR_IPSEC_IKE_INVALID_HASH                                              syscall.Errno = 13870\n\tERROR_IPSEC_IKE_INVALID_HASH_ALG                                          syscall.Errno = 13871\n\tERROR_IPSEC_IKE_INVALID_HASH_SIZE                                         syscall.Errno = 13872\n\tERROR_IPSEC_IKE_INVALID_ENCRYPT_ALG                                       syscall.Errno = 13873\n\tERROR_IPSEC_IKE_INVALID_AUTH_ALG                                          syscall.Errno = 13874\n\tERROR_IPSEC_IKE_INVALID_SIG                                               syscall.Errno = 13875\n\tERROR_IPSEC_IKE_LOAD_FAILED                                               syscall.Errno = 13876\n\tERROR_IPSEC_IKE_RPC_DELETE                                                syscall.Errno = 13877\n\tERROR_IPSEC_IKE_BENIGN_REINIT                                             syscall.Errno = 13878\n\tERROR_IPSEC_IKE_INVALID_RESPONDER_LIFETIME_NOTIFY                         syscall.Errno = 13879\n\tERROR_IPSEC_IKE_INVALID_MAJOR_VERSION                                     syscall.Errno = 13880\n\tERROR_IPSEC_IKE_INVALID_CERT_KEYLEN                                       syscall.Errno = 13881\n\tERROR_IPSEC_IKE_MM_LIMIT                                                  syscall.Errno = 13882\n\tERROR_IPSEC_IKE_NEGOTIATION_DISABLED                                      syscall.Errno = 13883\n\tERROR_IPSEC_IKE_QM_LIMIT                                                  syscall.Errno = 13884\n\tERROR_IPSEC_IKE_MM_EXPIRED                                                syscall.Errno = 13885\n\tERROR_IPSEC_IKE_PEER_MM_ASSUMED_INVALID                                   syscall.Errno = 13886\n\tERROR_IPSEC_IKE_CERT_CHAIN_POLICY_MISMATCH                                syscall.Errno = 13887\n\tERROR_IPSEC_IKE_UNEXPECTED_MESSAGE_ID                                     syscall.Errno = 13888\n\tERROR_IPSEC_IKE_INVALID_AUTH_PAYLOAD                                      syscall.Errno = 13889\n\tERROR_IPSEC_IKE_DOS_COOKIE_SENT                                           syscall.Errno = 13890\n\tERROR_IPSEC_IKE_SHUTTING_DOWN                                             syscall.Errno = 13891\n\tERROR_IPSEC_IKE_CGA_AUTH_FAILED                                           syscall.Errno = 13892\n\tERROR_IPSEC_IKE_PROCESS_ERR_NATOA                                         syscall.Errno = 13893\n\tERROR_IPSEC_IKE_INVALID_MM_FOR_QM                                         syscall.Errno = 13894\n\tERROR_IPSEC_IKE_QM_EXPIRED                                                syscall.Errno = 13895\n\tERROR_IPSEC_IKE_TOO_MANY_FILTERS                                          syscall.Errno = 13896\n\tERROR_IPSEC_IKE_NEG_STATUS_END                                            syscall.Errno = 13897\n\tERROR_IPSEC_IKE_KILL_DUMMY_NAP_TUNNEL                                     syscall.Errno = 13898\n\tERROR_IPSEC_IKE_INNER_IP_ASSIGNMENT_FAILURE                               syscall.Errno = 13899\n\tERROR_IPSEC_IKE_REQUIRE_CP_PAYLOAD_MISSING                                syscall.Errno = 13900\n\tERROR_IPSEC_KEY_MODULE_IMPERSONATION_NEGOTIATION_PENDING                  syscall.Errno = 13901\n\tERROR_IPSEC_IKE_COEXISTENCE_SUPPRESS                                      syscall.Errno = 13902\n\tERROR_IPSEC_IKE_RATELIMIT_DROP                                            syscall.Errno = 13903\n\tERROR_IPSEC_IKE_PEER_DOESNT_SUPPORT_MOBIKE                                syscall.Errno = 13904\n\tERROR_IPSEC_IKE_AUTHORIZATION_FAILURE                                     syscall.Errno = 13905\n\tERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_FAILURE                         syscall.Errno = 13906\n\tERROR_IPSEC_IKE_AUTHORIZATION_FAILURE_WITH_OPTIONAL_RETRY                 syscall.Errno = 13907\n\tERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_AND_CERTMAP_FAILURE             syscall.Errno = 13908\n\tERROR_IPSEC_IKE_NEG_STATUS_EXTENDED_END                                   syscall.Errno = 13909\n\tERROR_IPSEC_BAD_SPI                                                       syscall.Errno = 13910\n\tERROR_IPSEC_SA_LIFETIME_EXPIRED                                           syscall.Errno = 13911\n\tERROR_IPSEC_WRONG_SA                                                      syscall.Errno = 13912\n\tERROR_IPSEC_REPLAY_CHECK_FAILED                                           syscall.Errno = 13913\n\tERROR_IPSEC_INVALID_PACKET                                                syscall.Errno = 13914\n\tERROR_IPSEC_INTEGRITY_CHECK_FAILED                                        syscall.Errno = 13915\n\tERROR_IPSEC_CLEAR_TEXT_DROP                                               syscall.Errno = 13916\n\tERROR_IPSEC_AUTH_FIREWALL_DROP                                            syscall.Errno = 13917\n\tERROR_IPSEC_THROTTLE_DROP                                                 syscall.Errno = 13918\n\tERROR_IPSEC_DOSP_BLOCK                                                    syscall.Errno = 13925\n\tERROR_IPSEC_DOSP_RECEIVED_MULTICAST                                       syscall.Errno = 13926\n\tERROR_IPSEC_DOSP_INVALID_PACKET                                           syscall.Errno = 13927\n\tERROR_IPSEC_DOSP_STATE_LOOKUP_FAILED                                      syscall.Errno = 13928\n\tERROR_IPSEC_DOSP_MAX_ENTRIES                                              syscall.Errno = 13929\n\tERROR_IPSEC_DOSP_KEYMOD_NOT_ALLOWED                                       syscall.Errno = 13930\n\tERROR_IPSEC_DOSP_NOT_INSTALLED                                            syscall.Errno = 13931\n\tERROR_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES                              syscall.Errno = 13932\n\tERROR_SXS_SECTION_NOT_FOUND                                               syscall.Errno = 14000\n\tERROR_SXS_CANT_GEN_ACTCTX                                                 syscall.Errno = 14001\n\tERROR_SXS_INVALID_ACTCTXDATA_FORMAT                                       syscall.Errno = 14002\n\tERROR_SXS_ASSEMBLY_NOT_FOUND                                              syscall.Errno = 14003\n\tERROR_SXS_MANIFEST_FORMAT_ERROR                                           syscall.Errno = 14004\n\tERROR_SXS_MANIFEST_PARSE_ERROR                                            syscall.Errno = 14005\n\tERROR_SXS_ACTIVATION_CONTEXT_DISABLED                                     syscall.Errno = 14006\n\tERROR_SXS_KEY_NOT_FOUND                                                   syscall.Errno = 14007\n\tERROR_SXS_VERSION_CONFLICT                                                syscall.Errno = 14008\n\tERROR_SXS_WRONG_SECTION_TYPE                                              syscall.Errno = 14009\n\tERROR_SXS_THREAD_QUERIES_DISABLED                                         syscall.Errno = 14010\n\tERROR_SXS_PROCESS_DEFAULT_ALREADY_SET                                     syscall.Errno = 14011\n\tERROR_SXS_UNKNOWN_ENCODING_GROUP                                          syscall.Errno = 14012\n\tERROR_SXS_UNKNOWN_ENCODING                                                syscall.Errno = 14013\n\tERROR_SXS_INVALID_XML_NAMESPACE_URI                                       syscall.Errno = 14014\n\tERROR_SXS_ROOT_MANIFEST_DEPENDENCY_NOT_INSTALLED                          syscall.Errno = 14015\n\tERROR_SXS_LEAF_MANIFEST_DEPENDENCY_NOT_INSTALLED                          syscall.Errno = 14016\n\tERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE                             syscall.Errno = 14017\n\tERROR_SXS_MANIFEST_MISSING_REQUIRED_DEFAULT_NAMESPACE                     syscall.Errno = 14018\n\tERROR_SXS_MANIFEST_INVALID_REQUIRED_DEFAULT_NAMESPACE                     syscall.Errno = 14019\n\tERROR_SXS_PRIVATE_MANIFEST_CROSS_PATH_WITH_REPARSE_POINT                  syscall.Errno = 14020\n\tERROR_SXS_DUPLICATE_DLL_NAME                                              syscall.Errno = 14021\n\tERROR_SXS_DUPLICATE_WINDOWCLASS_NAME                                      syscall.Errno = 14022\n\tERROR_SXS_DUPLICATE_CLSID                                                 syscall.Errno = 14023\n\tERROR_SXS_DUPLICATE_IID                                                   syscall.Errno = 14024\n\tERROR_SXS_DUPLICATE_TLBID                                                 syscall.Errno = 14025\n\tERROR_SXS_DUPLICATE_PROGID                                                syscall.Errno = 14026\n\tERROR_SXS_DUPLICATE_ASSEMBLY_NAME                                         syscall.Errno = 14027\n\tERROR_SXS_FILE_HASH_MISMATCH                                              syscall.Errno = 14028\n\tERROR_SXS_POLICY_PARSE_ERROR                                              syscall.Errno = 14029\n\tERROR_SXS_XML_E_MISSINGQUOTE                                              syscall.Errno = 14030\n\tERROR_SXS_XML_E_COMMENTSYNTAX                                             syscall.Errno = 14031\n\tERROR_SXS_XML_E_BADSTARTNAMECHAR                                          syscall.Errno = 14032\n\tERROR_SXS_XML_E_BADNAMECHAR                                               syscall.Errno = 14033\n\tERROR_SXS_XML_E_BADCHARINSTRING                                           syscall.Errno = 14034\n\tERROR_SXS_XML_E_XMLDECLSYNTAX                                             syscall.Errno = 14035\n\tERROR_SXS_XML_E_BADCHARDATA                                               syscall.Errno = 14036\n\tERROR_SXS_XML_E_MISSINGWHITESPACE                                         syscall.Errno = 14037\n\tERROR_SXS_XML_E_EXPECTINGTAGEND                                           syscall.Errno = 14038\n\tERROR_SXS_XML_E_MISSINGSEMICOLON                                          syscall.Errno = 14039\n\tERROR_SXS_XML_E_UNBALANCEDPAREN                                           syscall.Errno = 14040\n\tERROR_SXS_XML_E_INTERNALERROR                                             syscall.Errno = 14041\n\tERROR_SXS_XML_E_UNEXPECTED_WHITESPACE                                     syscall.Errno = 14042\n\tERROR_SXS_XML_E_INCOMPLETE_ENCODING                                       syscall.Errno = 14043\n\tERROR_SXS_XML_E_MISSING_PAREN                                             syscall.Errno = 14044\n\tERROR_SXS_XML_E_EXPECTINGCLOSEQUOTE                                       syscall.Errno = 14045\n\tERROR_SXS_XML_E_MULTIPLE_COLONS                                           syscall.Errno = 14046\n\tERROR_SXS_XML_E_INVALID_DECIMAL                                           syscall.Errno = 14047\n\tERROR_SXS_XML_E_INVALID_HEXIDECIMAL                                       syscall.Errno = 14048\n\tERROR_SXS_XML_E_INVALID_UNICODE                                           syscall.Errno = 14049\n\tERROR_SXS_XML_E_WHITESPACEORQUESTIONMARK                                  syscall.Errno = 14050\n\tERROR_SXS_XML_E_UNEXPECTEDENDTAG                                          syscall.Errno = 14051\n\tERROR_SXS_XML_E_UNCLOSEDTAG                                               syscall.Errno = 14052\n\tERROR_SXS_XML_E_DUPLICATEATTRIBUTE                                        syscall.Errno = 14053\n\tERROR_SXS_XML_E_MULTIPLEROOTS                                             syscall.Errno = 14054\n\tERROR_SXS_XML_E_INVALIDATROOTLEVEL                                        syscall.Errno = 14055\n\tERROR_SXS_XML_E_BADXMLDECL                                                syscall.Errno = 14056\n\tERROR_SXS_XML_E_MISSINGROOT                                               syscall.Errno = 14057\n\tERROR_SXS_XML_E_UNEXPECTEDEOF                                             syscall.Errno = 14058\n\tERROR_SXS_XML_E_BADPEREFINSUBSET                                          syscall.Errno = 14059\n\tERROR_SXS_XML_E_UNCLOSEDSTARTTAG                                          syscall.Errno = 14060\n\tERROR_SXS_XML_E_UNCLOSEDENDTAG                                            syscall.Errno = 14061\n\tERROR_SXS_XML_E_UNCLOSEDSTRING                                            syscall.Errno = 14062\n\tERROR_SXS_XML_E_UNCLOSEDCOMMENT                                           syscall.Errno = 14063\n\tERROR_SXS_XML_E_UNCLOSEDDECL                                              syscall.Errno = 14064\n\tERROR_SXS_XML_E_UNCLOSEDCDATA                                             syscall.Errno = 14065\n\tERROR_SXS_XML_E_RESERVEDNAMESPACE                                         syscall.Errno = 14066\n\tERROR_SXS_XML_E_INVALIDENCODING                                           syscall.Errno = 14067\n\tERROR_SXS_XML_E_INVALIDSWITCH                                             syscall.Errno = 14068\n\tERROR_SXS_XML_E_BADXMLCASE                                                syscall.Errno = 14069\n\tERROR_SXS_XML_E_INVALID_STANDALONE                                        syscall.Errno = 14070\n\tERROR_SXS_XML_E_UNEXPECTED_STANDALONE                                     syscall.Errno = 14071\n\tERROR_SXS_XML_E_INVALID_VERSION                                           syscall.Errno = 14072\n\tERROR_SXS_XML_E_MISSINGEQUALS                                             syscall.Errno = 14073\n\tERROR_SXS_PROTECTION_RECOVERY_FAILED                                      syscall.Errno = 14074\n\tERROR_SXS_PROTECTION_PUBLIC_KEY_TOO_SHORT                                 syscall.Errno = 14075\n\tERROR_SXS_PROTECTION_CATALOG_NOT_VALID                                    syscall.Errno = 14076\n\tERROR_SXS_UNTRANSLATABLE_HRESULT                                          syscall.Errno = 14077\n\tERROR_SXS_PROTECTION_CATALOG_FILE_MISSING                                 syscall.Errno = 14078\n\tERROR_SXS_MISSING_ASSEMBLY_IDENTITY_ATTRIBUTE                             syscall.Errno = 14079\n\tERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE_NAME                        syscall.Errno = 14080\n\tERROR_SXS_ASSEMBLY_MISSING                                                syscall.Errno = 14081\n\tERROR_SXS_CORRUPT_ACTIVATION_STACK                                        syscall.Errno = 14082\n\tERROR_SXS_CORRUPTION                                                      syscall.Errno = 14083\n\tERROR_SXS_EARLY_DEACTIVATION                                              syscall.Errno = 14084\n\tERROR_SXS_INVALID_DEACTIVATION                                            syscall.Errno = 14085\n\tERROR_SXS_MULTIPLE_DEACTIVATION                                           syscall.Errno = 14086\n\tERROR_SXS_PROCESS_TERMINATION_REQUESTED                                   syscall.Errno = 14087\n\tERROR_SXS_RELEASE_ACTIVATION_CONTEXT                                      syscall.Errno = 14088\n\tERROR_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY                         syscall.Errno = 14089\n\tERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE                                syscall.Errno = 14090\n\tERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME                                 syscall.Errno = 14091\n\tERROR_SXS_IDENTITY_DUPLICATE_ATTRIBUTE                                    syscall.Errno = 14092\n\tERROR_SXS_IDENTITY_PARSE_ERROR                                            syscall.Errno = 14093\n\tERROR_MALFORMED_SUBSTITUTION_STRING                                       syscall.Errno = 14094\n\tERROR_SXS_INCORRECT_PUBLIC_KEY_TOKEN                                      syscall.Errno = 14095\n\tERROR_UNMAPPED_SUBSTITUTION_STRING                                        syscall.Errno = 14096\n\tERROR_SXS_ASSEMBLY_NOT_LOCKED                                             syscall.Errno = 14097\n\tERROR_SXS_COMPONENT_STORE_CORRUPT                                         syscall.Errno = 14098\n\tERROR_ADVANCED_INSTALLER_FAILED                                           syscall.Errno = 14099\n\tERROR_XML_ENCODING_MISMATCH                                               syscall.Errno = 14100\n\tERROR_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT                   syscall.Errno = 14101\n\tERROR_SXS_IDENTITIES_DIFFERENT                                            syscall.Errno = 14102\n\tERROR_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT                                    syscall.Errno = 14103\n\tERROR_SXS_FILE_NOT_PART_OF_ASSEMBLY                                       syscall.Errno = 14104\n\tERROR_SXS_MANIFEST_TOO_BIG                                                syscall.Errno = 14105\n\tERROR_SXS_SETTING_NOT_REGISTERED                                          syscall.Errno = 14106\n\tERROR_SXS_TRANSACTION_CLOSURE_INCOMPLETE                                  syscall.Errno = 14107\n\tERROR_SMI_PRIMITIVE_INSTALLER_FAILED                                      syscall.Errno = 14108\n\tERROR_GENERIC_COMMAND_FAILED                                              syscall.Errno = 14109\n\tERROR_SXS_FILE_HASH_MISSING                                               syscall.Errno = 14110\n\tERROR_SXS_DUPLICATE_ACTIVATABLE_CLASS                                     syscall.Errno = 14111\n\tERROR_EVT_INVALID_CHANNEL_PATH                                            syscall.Errno = 15000\n\tERROR_EVT_INVALID_QUERY                                                   syscall.Errno = 15001\n\tERROR_EVT_PUBLISHER_METADATA_NOT_FOUND                                    syscall.Errno = 15002\n\tERROR_EVT_EVENT_TEMPLATE_NOT_FOUND                                        syscall.Errno = 15003\n\tERROR_EVT_INVALID_PUBLISHER_NAME                                          syscall.Errno = 15004\n\tERROR_EVT_INVALID_EVENT_DATA                                              syscall.Errno = 15005\n\tERROR_EVT_CHANNEL_NOT_FOUND                                               syscall.Errno = 15007\n\tERROR_EVT_MALFORMED_XML_TEXT                                              syscall.Errno = 15008\n\tERROR_EVT_SUBSCRIPTION_TO_DIRECT_CHANNEL                                  syscall.Errno = 15009\n\tERROR_EVT_CONFIGURATION_ERROR                                             syscall.Errno = 15010\n\tERROR_EVT_QUERY_RESULT_STALE                                              syscall.Errno = 15011\n\tERROR_EVT_QUERY_RESULT_INVALID_POSITION                                   syscall.Errno = 15012\n\tERROR_EVT_NON_VALIDATING_MSXML                                            syscall.Errno = 15013\n\tERROR_EVT_FILTER_ALREADYSCOPED                                            syscall.Errno = 15014\n\tERROR_EVT_FILTER_NOTELTSET                                                syscall.Errno = 15015\n\tERROR_EVT_FILTER_INVARG                                                   syscall.Errno = 15016\n\tERROR_EVT_FILTER_INVTEST                                                  syscall.Errno = 15017\n\tERROR_EVT_FILTER_INVTYPE                                                  syscall.Errno = 15018\n\tERROR_EVT_FILTER_PARSEERR                                                 syscall.Errno = 15019\n\tERROR_EVT_FILTER_UNSUPPORTEDOP                                            syscall.Errno = 15020\n\tERROR_EVT_FILTER_UNEXPECTEDTOKEN                                          syscall.Errno = 15021\n\tERROR_EVT_INVALID_OPERATION_OVER_ENABLED_DIRECT_CHANNEL                   syscall.Errno = 15022\n\tERROR_EVT_INVALID_CHANNEL_PROPERTY_VALUE                                  syscall.Errno = 15023\n\tERROR_EVT_INVALID_PUBLISHER_PROPERTY_VALUE                                syscall.Errno = 15024\n\tERROR_EVT_CHANNEL_CANNOT_ACTIVATE                                         syscall.Errno = 15025\n\tERROR_EVT_FILTER_TOO_COMPLEX                                              syscall.Errno = 15026\n\tERROR_EVT_MESSAGE_NOT_FOUND                                               syscall.Errno = 15027\n\tERROR_EVT_MESSAGE_ID_NOT_FOUND                                            syscall.Errno = 15028\n\tERROR_EVT_UNRESOLVED_VALUE_INSERT                                         syscall.Errno = 15029\n\tERROR_EVT_UNRESOLVED_PARAMETER_INSERT                                     syscall.Errno = 15030\n\tERROR_EVT_MAX_INSERTS_REACHED                                             syscall.Errno = 15031\n\tERROR_EVT_EVENT_DEFINITION_NOT_FOUND                                      syscall.Errno = 15032\n\tERROR_EVT_MESSAGE_LOCALE_NOT_FOUND                                        syscall.Errno = 15033\n\tERROR_EVT_VERSION_TOO_OLD                                                 syscall.Errno = 15034\n\tERROR_EVT_VERSION_TOO_NEW                                                 syscall.Errno = 15035\n\tERROR_EVT_CANNOT_OPEN_CHANNEL_OF_QUERY                                    syscall.Errno = 15036\n\tERROR_EVT_PUBLISHER_DISABLED                                              syscall.Errno = 15037\n\tERROR_EVT_FILTER_OUT_OF_RANGE                                             syscall.Errno = 15038\n\tERROR_EC_SUBSCRIPTION_CANNOT_ACTIVATE                                     syscall.Errno = 15080\n\tERROR_EC_LOG_DISABLED                                                     syscall.Errno = 15081\n\tERROR_EC_CIRCULAR_FORWARDING                                              syscall.Errno = 15082\n\tERROR_EC_CREDSTORE_FULL                                                   syscall.Errno = 15083\n\tERROR_EC_CRED_NOT_FOUND                                                   syscall.Errno = 15084\n\tERROR_EC_NO_ACTIVE_CHANNEL                                                syscall.Errno = 15085\n\tERROR_MUI_FILE_NOT_FOUND                                                  syscall.Errno = 15100\n\tERROR_MUI_INVALID_FILE                                                    syscall.Errno = 15101\n\tERROR_MUI_INVALID_RC_CONFIG                                               syscall.Errno = 15102\n\tERROR_MUI_INVALID_LOCALE_NAME                                             syscall.Errno = 15103\n\tERROR_MUI_INVALID_ULTIMATEFALLBACK_NAME                                   syscall.Errno = 15104\n\tERROR_MUI_FILE_NOT_LOADED                                                 syscall.Errno = 15105\n\tERROR_RESOURCE_ENUM_USER_STOP                                             syscall.Errno = 15106\n\tERROR_MUI_INTLSETTINGS_UILANG_NOT_INSTALLED                               syscall.Errno = 15107\n\tERROR_MUI_INTLSETTINGS_INVALID_LOCALE_NAME                                syscall.Errno = 15108\n\tERROR_MRM_RUNTIME_NO_DEFAULT_OR_NEUTRAL_RESOURCE                          syscall.Errno = 15110\n\tERROR_MRM_INVALID_PRICONFIG                                               syscall.Errno = 15111\n\tERROR_MRM_INVALID_FILE_TYPE                                               syscall.Errno = 15112\n\tERROR_MRM_UNKNOWN_QUALIFIER                                               syscall.Errno = 15113\n\tERROR_MRM_INVALID_QUALIFIER_VALUE                                         syscall.Errno = 15114\n\tERROR_MRM_NO_CANDIDATE                                                    syscall.Errno = 15115\n\tERROR_MRM_NO_MATCH_OR_DEFAULT_CANDIDATE                                   syscall.Errno = 15116\n\tERROR_MRM_RESOURCE_TYPE_MISMATCH                                          syscall.Errno = 15117\n\tERROR_MRM_DUPLICATE_MAP_NAME                                              syscall.Errno = 15118\n\tERROR_MRM_DUPLICATE_ENTRY                                                 syscall.Errno = 15119\n\tERROR_MRM_INVALID_RESOURCE_IDENTIFIER                                     syscall.Errno = 15120\n\tERROR_MRM_FILEPATH_TOO_LONG                                               syscall.Errno = 15121\n\tERROR_MRM_UNSUPPORTED_DIRECTORY_TYPE                                      syscall.Errno = 15122\n\tERROR_MRM_INVALID_PRI_FILE                                                syscall.Errno = 15126\n\tERROR_MRM_NAMED_RESOURCE_NOT_FOUND                                        syscall.Errno = 15127\n\tERROR_MRM_MAP_NOT_FOUND                                                   syscall.Errno = 15135\n\tERROR_MRM_UNSUPPORTED_PROFILE_TYPE                                        syscall.Errno = 15136\n\tERROR_MRM_INVALID_QUALIFIER_OPERATOR                                      syscall.Errno = 15137\n\tERROR_MRM_INDETERMINATE_QUALIFIER_VALUE                                   syscall.Errno = 15138\n\tERROR_MRM_AUTOMERGE_ENABLED                                               syscall.Errno = 15139\n\tERROR_MRM_TOO_MANY_RESOURCES                                              syscall.Errno = 15140\n\tERROR_MRM_UNSUPPORTED_FILE_TYPE_FOR_MERGE                                 syscall.Errno = 15141\n\tERROR_MRM_UNSUPPORTED_FILE_TYPE_FOR_LOAD_UNLOAD_PRI_FILE                  syscall.Errno = 15142\n\tERROR_MRM_NO_CURRENT_VIEW_ON_THREAD                                       syscall.Errno = 15143\n\tERROR_DIFFERENT_PROFILE_RESOURCE_MANAGER_EXIST                            syscall.Errno = 15144\n\tERROR_OPERATION_NOT_ALLOWED_FROM_SYSTEM_COMPONENT                         syscall.Errno = 15145\n\tERROR_MRM_DIRECT_REF_TO_NON_DEFAULT_RESOURCE                              syscall.Errno = 15146\n\tERROR_MRM_GENERATION_COUNT_MISMATCH                                       syscall.Errno = 15147\n\tERROR_PRI_MERGE_VERSION_MISMATCH                                          syscall.Errno = 15148\n\tERROR_PRI_MERGE_MISSING_SCHEMA                                            syscall.Errno = 15149\n\tERROR_PRI_MERGE_LOAD_FILE_FAILED                                          syscall.Errno = 15150\n\tERROR_PRI_MERGE_ADD_FILE_FAILED                                           syscall.Errno = 15151\n\tERROR_PRI_MERGE_WRITE_FILE_FAILED                                         syscall.Errno = 15152\n\tERROR_PRI_MERGE_MULTIPLE_PACKAGE_FAMILIES_NOT_ALLOWED                     syscall.Errno = 15153\n\tERROR_PRI_MERGE_MULTIPLE_MAIN_PACKAGES_NOT_ALLOWED                        syscall.Errno = 15154\n\tERROR_PRI_MERGE_BUNDLE_PACKAGES_NOT_ALLOWED                               syscall.Errno = 15155\n\tERROR_PRI_MERGE_MAIN_PACKAGE_REQUIRED                                     syscall.Errno = 15156\n\tERROR_PRI_MERGE_RESOURCE_PACKAGE_REQUIRED                                 syscall.Errno = 15157\n\tERROR_PRI_MERGE_INVALID_FILE_NAME                                         syscall.Errno = 15158\n\tERROR_MRM_PACKAGE_NOT_FOUND                                               syscall.Errno = 15159\n\tERROR_MRM_MISSING_DEFAULT_LANGUAGE                                        syscall.Errno = 15160\n\tERROR_MCA_INVALID_CAPABILITIES_STRING                                     syscall.Errno = 15200\n\tERROR_MCA_INVALID_VCP_VERSION                                             syscall.Errno = 15201\n\tERROR_MCA_MONITOR_VIOLATES_MCCS_SPECIFICATION                             syscall.Errno = 15202\n\tERROR_MCA_MCCS_VERSION_MISMATCH                                           syscall.Errno = 15203\n\tERROR_MCA_UNSUPPORTED_MCCS_VERSION                                        syscall.Errno = 15204\n\tERROR_MCA_INTERNAL_ERROR                                                  syscall.Errno = 15205\n\tERROR_MCA_INVALID_TECHNOLOGY_TYPE_RETURNED                                syscall.Errno = 15206\n\tERROR_MCA_UNSUPPORTED_COLOR_TEMPERATURE                                   syscall.Errno = 15207\n\tERROR_AMBIGUOUS_SYSTEM_DEVICE                                             syscall.Errno = 15250\n\tERROR_SYSTEM_DEVICE_NOT_FOUND                                             syscall.Errno = 15299\n\tERROR_HASH_NOT_SUPPORTED                                                  syscall.Errno = 15300\n\tERROR_HASH_NOT_PRESENT                                                    syscall.Errno = 15301\n\tERROR_SECONDARY_IC_PROVIDER_NOT_REGISTERED                                syscall.Errno = 15321\n\tERROR_GPIO_CLIENT_INFORMATION_INVALID                                     syscall.Errno = 15322\n\tERROR_GPIO_VERSION_NOT_SUPPORTED                                          syscall.Errno = 15323\n\tERROR_GPIO_INVALID_REGISTRATION_PACKET                                    syscall.Errno = 15324\n\tERROR_GPIO_OPERATION_DENIED                                               syscall.Errno = 15325\n\tERROR_GPIO_INCOMPATIBLE_CONNECT_MODE                                      syscall.Errno = 15326\n\tERROR_GPIO_INTERRUPT_ALREADY_UNMASKED                                     syscall.Errno = 15327\n\tERROR_CANNOT_SWITCH_RUNLEVEL                                              syscall.Errno = 15400\n\tERROR_INVALID_RUNLEVEL_SETTING                                            syscall.Errno = 15401\n\tERROR_RUNLEVEL_SWITCH_TIMEOUT                                             syscall.Errno = 15402\n\tERROR_RUNLEVEL_SWITCH_AGENT_TIMEOUT                                       syscall.Errno = 15403\n\tERROR_RUNLEVEL_SWITCH_IN_PROGRESS                                         syscall.Errno = 15404\n\tERROR_SERVICES_FAILED_AUTOSTART                                           syscall.Errno = 15405\n\tERROR_COM_TASK_STOP_PENDING                                               syscall.Errno = 15501\n\tERROR_INSTALL_OPEN_PACKAGE_FAILED                                         syscall.Errno = 15600\n\tERROR_INSTALL_PACKAGE_NOT_FOUND                                           syscall.Errno = 15601\n\tERROR_INSTALL_INVALID_PACKAGE                                             syscall.Errno = 15602\n\tERROR_INSTALL_RESOLVE_DEPENDENCY_FAILED                                   syscall.Errno = 15603\n\tERROR_INSTALL_OUT_OF_DISK_SPACE                                           syscall.Errno = 15604\n\tERROR_INSTALL_NETWORK_FAILURE                                             syscall.Errno = 15605\n\tERROR_INSTALL_REGISTRATION_FAILURE                                        syscall.Errno = 15606\n\tERROR_INSTALL_DEREGISTRATION_FAILURE                                      syscall.Errno = 15607\n\tERROR_INSTALL_CANCEL                                                      syscall.Errno = 15608\n\tERROR_INSTALL_FAILED                                                      syscall.Errno = 15609\n\tERROR_REMOVE_FAILED                                                       syscall.Errno = 15610\n\tERROR_PACKAGE_ALREADY_EXISTS                                              syscall.Errno = 15611\n\tERROR_NEEDS_REMEDIATION                                                   syscall.Errno = 15612\n\tERROR_INSTALL_PREREQUISITE_FAILED                                         syscall.Errno = 15613\n\tERROR_PACKAGE_REPOSITORY_CORRUPTED                                        syscall.Errno = 15614\n\tERROR_INSTALL_POLICY_FAILURE                                              syscall.Errno = 15615\n\tERROR_PACKAGE_UPDATING                                                    syscall.Errno = 15616\n\tERROR_DEPLOYMENT_BLOCKED_BY_POLICY                                        syscall.Errno = 15617\n\tERROR_PACKAGES_IN_USE                                                     syscall.Errno = 15618\n\tERROR_RECOVERY_FILE_CORRUPT                                               syscall.Errno = 15619\n\tERROR_INVALID_STAGED_SIGNATURE                                            syscall.Errno = 15620\n\tERROR_DELETING_EXISTING_APPLICATIONDATA_STORE_FAILED                      syscall.Errno = 15621\n\tERROR_INSTALL_PACKAGE_DOWNGRADE                                           syscall.Errno = 15622\n\tERROR_SYSTEM_NEEDS_REMEDIATION                                            syscall.Errno = 15623\n\tERROR_APPX_INTEGRITY_FAILURE_CLR_NGEN                                     syscall.Errno = 15624\n\tERROR_RESILIENCY_FILE_CORRUPT                                             syscall.Errno = 15625\n\tERROR_INSTALL_FIREWALL_SERVICE_NOT_RUNNING                                syscall.Errno = 15626\n\tERROR_PACKAGE_MOVE_FAILED                                                 syscall.Errno = 15627\n\tERROR_INSTALL_VOLUME_NOT_EMPTY                                            syscall.Errno = 15628\n\tERROR_INSTALL_VOLUME_OFFLINE                                              syscall.Errno = 15629\n\tERROR_INSTALL_VOLUME_CORRUPT                                              syscall.Errno = 15630\n\tERROR_NEEDS_REGISTRATION                                                  syscall.Errno = 15631\n\tERROR_INSTALL_WRONG_PROCESSOR_ARCHITECTURE                                syscall.Errno = 15632\n\tERROR_DEV_SIDELOAD_LIMIT_EXCEEDED                                         syscall.Errno = 15633\n\tERROR_INSTALL_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE                      syscall.Errno = 15634\n\tERROR_PACKAGE_NOT_SUPPORTED_ON_FILESYSTEM                                 syscall.Errno = 15635\n\tERROR_PACKAGE_MOVE_BLOCKED_BY_STREAMING                                   syscall.Errno = 15636\n\tERROR_INSTALL_OPTIONAL_PACKAGE_APPLICATIONID_NOT_UNIQUE                   syscall.Errno = 15637\n\tERROR_PACKAGE_STAGING_ONHOLD                                              syscall.Errno = 15638\n\tERROR_INSTALL_INVALID_RELATED_SET_UPDATE                                  syscall.Errno = 15639\n\tERROR_INSTALL_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE_FULLTRUST_CAPABILITY syscall.Errno = 15640\n\tERROR_DEPLOYMENT_BLOCKED_BY_USER_LOG_OFF                                  syscall.Errno = 15641\n\tERROR_PROVISION_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE_PROVISIONED        syscall.Errno = 15642\n\tERROR_PACKAGES_REPUTATION_CHECK_FAILED                                    syscall.Errno = 15643\n\tERROR_PACKAGES_REPUTATION_CHECK_TIMEDOUT                                  syscall.Errno = 15644\n\tERROR_DEPLOYMENT_OPTION_NOT_SUPPORTED                                     syscall.Errno = 15645\n\tERROR_APPINSTALLER_ACTIVATION_BLOCKED                                     syscall.Errno = 15646\n\tERROR_REGISTRATION_FROM_REMOTE_DRIVE_NOT_SUPPORTED                        syscall.Errno = 15647\n\tERROR_APPX_RAW_DATA_WRITE_FAILED                                          syscall.Errno = 15648\n\tERROR_DEPLOYMENT_BLOCKED_BY_VOLUME_POLICY_PACKAGE                         syscall.Errno = 15649\n\tERROR_DEPLOYMENT_BLOCKED_BY_VOLUME_POLICY_MACHINE                         syscall.Errno = 15650\n\tERROR_DEPLOYMENT_BLOCKED_BY_PROFILE_POLICY                                syscall.Errno = 15651\n\tERROR_DEPLOYMENT_FAILED_CONFLICTING_MUTABLE_PACKAGE_DIRECTORY             syscall.Errno = 15652\n\tERROR_SINGLETON_RESOURCE_INSTALLED_IN_ACTIVE_USER                         syscall.Errno = 15653\n\tERROR_DIFFERENT_VERSION_OF_PACKAGED_SERVICE_INSTALLED                     syscall.Errno = 15654\n\tERROR_SERVICE_EXISTS_AS_NON_PACKAGED_SERVICE                              syscall.Errno = 15655\n\tERROR_PACKAGED_SERVICE_REQUIRES_ADMIN_PRIVILEGES                          syscall.Errno = 15656\n\tAPPMODEL_ERROR_NO_PACKAGE                                                 syscall.Errno = 15700\n\tAPPMODEL_ERROR_PACKAGE_RUNTIME_CORRUPT                                    syscall.Errno = 15701\n\tAPPMODEL_ERROR_PACKAGE_IDENTITY_CORRUPT                                   syscall.Errno = 15702\n\tAPPMODEL_ERROR_NO_APPLICATION                                             syscall.Errno = 15703\n\tAPPMODEL_ERROR_DYNAMIC_PROPERTY_READ_FAILED                               syscall.Errno = 15704\n\tAPPMODEL_ERROR_DYNAMIC_PROPERTY_INVALID                                   syscall.Errno = 15705\n\tAPPMODEL_ERROR_PACKAGE_NOT_AVAILABLE                                      syscall.Errno = 15706\n\tAPPMODEL_ERROR_NO_MUTABLE_DIRECTORY                                       syscall.Errno = 15707\n\tERROR_STATE_LOAD_STORE_FAILED                                             syscall.Errno = 15800\n\tERROR_STATE_GET_VERSION_FAILED                                            syscall.Errno = 15801\n\tERROR_STATE_SET_VERSION_FAILED                                            syscall.Errno = 15802\n\tERROR_STATE_STRUCTURED_RESET_FAILED                                       syscall.Errno = 15803\n\tERROR_STATE_OPEN_CONTAINER_FAILED                                         syscall.Errno = 15804\n\tERROR_STATE_CREATE_CONTAINER_FAILED                                       syscall.Errno = 15805\n\tERROR_STATE_DELETE_CONTAINER_FAILED                                       syscall.Errno = 15806\n\tERROR_STATE_READ_SETTING_FAILED                                           syscall.Errno = 15807\n\tERROR_STATE_WRITE_SETTING_FAILED                                          syscall.Errno = 15808\n\tERROR_STATE_DELETE_SETTING_FAILED                                         syscall.Errno = 15809\n\tERROR_STATE_QUERY_SETTING_FAILED                                          syscall.Errno = 15810\n\tERROR_STATE_READ_COMPOSITE_SETTING_FAILED                                 syscall.Errno = 15811\n\tERROR_STATE_WRITE_COMPOSITE_SETTING_FAILED                                syscall.Errno = 15812\n\tERROR_STATE_ENUMERATE_CONTAINER_FAILED                                    syscall.Errno = 15813\n\tERROR_STATE_ENUMERATE_SETTINGS_FAILED                                     syscall.Errno = 15814\n\tERROR_STATE_COMPOSITE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED                   syscall.Errno = 15815\n\tERROR_STATE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED                             syscall.Errno = 15816\n\tERROR_STATE_SETTING_NAME_SIZE_LIMIT_EXCEEDED                              syscall.Errno = 15817\n\tERROR_STATE_CONTAINER_NAME_SIZE_LIMIT_EXCEEDED                            syscall.Errno = 15818\n\tERROR_API_UNAVAILABLE                                                     syscall.Errno = 15841\n\tSTORE_ERROR_UNLICENSED                                                    syscall.Errno = 15861\n\tSTORE_ERROR_UNLICENSED_USER                                               syscall.Errno = 15862\n\tSTORE_ERROR_PENDING_COM_TRANSACTION                                       syscall.Errno = 15863\n\tSTORE_ERROR_LICENSE_REVOKED                                               syscall.Errno = 15864\n\tSEVERITY_SUCCESS                                                          syscall.Errno = 0\n\tSEVERITY_ERROR                                                            syscall.Errno = 1\n\tFACILITY_NT_BIT                                                                         = 0x10000000\n\tE_NOT_SET                                                                               = ERROR_NOT_FOUND\n\tE_NOT_VALID_STATE                                                                       = ERROR_INVALID_STATE\n\tE_NOT_SUFFICIENT_BUFFER                                                                 = ERROR_INSUFFICIENT_BUFFER\n\tE_TIME_SENSITIVE_THREAD                                                                 = ERROR_TIME_SENSITIVE_THREAD\n\tE_NO_TASK_QUEUE                                                                         = ERROR_NO_TASK_QUEUE\n\tNOERROR                                                                   syscall.Errno = 0\n\tE_UNEXPECTED                                                              Handle        = 0x8000FFFF\n\tE_NOTIMPL                                                                 Handle        = 0x80004001\n\tE_OUTOFMEMORY                                                             Handle        = 0x8007000E\n\tE_INVALIDARG                                                              Handle        = 0x80070057\n\tE_NOINTERFACE                                                             Handle        = 0x80004002\n\tE_POINTER                                                                 Handle        = 0x80004003\n\tE_HANDLE                                                                  Handle        = 0x80070006\n\tE_ABORT                                                                   Handle        = 0x80004004\n\tE_FAIL                                                                    Handle        = 0x80004005\n\tE_ACCESSDENIED                                                            Handle        = 0x80070005\n\tE_PENDING                                                                 Handle        = 0x8000000A\n\tE_BOUNDS                                                                  Handle        = 0x8000000B\n\tE_CHANGED_STATE                                                           Handle        = 0x8000000C\n\tE_ILLEGAL_STATE_CHANGE                                                    Handle        = 0x8000000D\n\tE_ILLEGAL_METHOD_CALL                                                     Handle        = 0x8000000E\n\tRO_E_METADATA_NAME_NOT_FOUND                                              Handle        = 0x8000000F\n\tRO_E_METADATA_NAME_IS_NAMESPACE                                           Handle        = 0x80000010\n\tRO_E_METADATA_INVALID_TYPE_FORMAT                                         Handle        = 0x80000011\n\tRO_E_INVALID_METADATA_FILE                                                Handle        = 0x80000012\n\tRO_E_CLOSED                                                               Handle        = 0x80000013\n\tRO_E_EXCLUSIVE_WRITE                                                      Handle        = 0x80000014\n\tRO_E_CHANGE_NOTIFICATION_IN_PROGRESS                                      Handle        = 0x80000015\n\tRO_E_ERROR_STRING_NOT_FOUND                                               Handle        = 0x80000016\n\tE_STRING_NOT_NULL_TERMINATED                                              Handle        = 0x80000017\n\tE_ILLEGAL_DELEGATE_ASSIGNMENT                                             Handle        = 0x80000018\n\tE_ASYNC_OPERATION_NOT_STARTED                                             Handle        = 0x80000019\n\tE_APPLICATION_EXITING                                                     Handle        = 0x8000001A\n\tE_APPLICATION_VIEW_EXITING                                                Handle        = 0x8000001B\n\tRO_E_MUST_BE_AGILE                                                        Handle        = 0x8000001C\n\tRO_E_UNSUPPORTED_FROM_MTA                                                 Handle        = 0x8000001D\n\tRO_E_COMMITTED                                                            Handle        = 0x8000001E\n\tRO_E_BLOCKED_CROSS_ASTA_CALL                                              Handle        = 0x8000001F\n\tRO_E_CANNOT_ACTIVATE_FULL_TRUST_SERVER                                    Handle        = 0x80000020\n\tRO_E_CANNOT_ACTIVATE_UNIVERSAL_APPLICATION_SERVER                         Handle        = 0x80000021\n\tCO_E_INIT_TLS                                                             Handle        = 0x80004006\n\tCO_E_INIT_SHARED_ALLOCATOR                                                Handle        = 0x80004007\n\tCO_E_INIT_MEMORY_ALLOCATOR                                                Handle        = 0x80004008\n\tCO_E_INIT_CLASS_CACHE                                                     Handle        = 0x80004009\n\tCO_E_INIT_RPC_CHANNEL                                                     Handle        = 0x8000400A\n\tCO_E_INIT_TLS_SET_CHANNEL_CONTROL                                         Handle        = 0x8000400B\n\tCO_E_INIT_TLS_CHANNEL_CONTROL                                             Handle        = 0x8000400C\n\tCO_E_INIT_UNACCEPTED_USER_ALLOCATOR                                       Handle        = 0x8000400D\n\tCO_E_INIT_SCM_MUTEX_EXISTS                                                Handle        = 0x8000400E\n\tCO_E_INIT_SCM_FILE_MAPPING_EXISTS                                         Handle        = 0x8000400F\n\tCO_E_INIT_SCM_MAP_VIEW_OF_FILE                                            Handle        = 0x80004010\n\tCO_E_INIT_SCM_EXEC_FAILURE                                                Handle        = 0x80004011\n\tCO_E_INIT_ONLY_SINGLE_THREADED                                            Handle        = 0x80004012\n\tCO_E_CANT_REMOTE                                                          Handle        = 0x80004013\n\tCO_E_BAD_SERVER_NAME                                                      Handle        = 0x80004014\n\tCO_E_WRONG_SERVER_IDENTITY                                                Handle        = 0x80004015\n\tCO_E_OLE1DDE_DISABLED                                                     Handle        = 0x80004016\n\tCO_E_RUNAS_SYNTAX                                                         Handle        = 0x80004017\n\tCO_E_CREATEPROCESS_FAILURE                                                Handle        = 0x80004018\n\tCO_E_RUNAS_CREATEPROCESS_FAILURE                                          Handle        = 0x80004019\n\tCO_E_RUNAS_LOGON_FAILURE                                                  Handle        = 0x8000401A\n\tCO_E_LAUNCH_PERMSSION_DENIED                                              Handle        = 0x8000401B\n\tCO_E_START_SERVICE_FAILURE                                                Handle        = 0x8000401C\n\tCO_E_REMOTE_COMMUNICATION_FAILURE                                         Handle        = 0x8000401D\n\tCO_E_SERVER_START_TIMEOUT                                                 Handle        = 0x8000401E\n\tCO_E_CLSREG_INCONSISTENT                                                  Handle        = 0x8000401F\n\tCO_E_IIDREG_INCONSISTENT                                                  Handle        = 0x80004020\n\tCO_E_NOT_SUPPORTED                                                        Handle        = 0x80004021\n\tCO_E_RELOAD_DLL                                                           Handle        = 0x80004022\n\tCO_E_MSI_ERROR                                                            Handle        = 0x80004023\n\tCO_E_ATTEMPT_TO_CREATE_OUTSIDE_CLIENT_CONTEXT                             Handle        = 0x80004024\n\tCO_E_SERVER_PAUSED                                                        Handle        = 0x80004025\n\tCO_E_SERVER_NOT_PAUSED                                                    Handle        = 0x80004026\n\tCO_E_CLASS_DISABLED                                                       Handle        = 0x80004027\n\tCO_E_CLRNOTAVAILABLE                                                      Handle        = 0x80004028\n\tCO_E_ASYNC_WORK_REJECTED                                                  Handle        = 0x80004029\n\tCO_E_SERVER_INIT_TIMEOUT                                                  Handle        = 0x8000402A\n\tCO_E_NO_SECCTX_IN_ACTIVATE                                                Handle        = 0x8000402B\n\tCO_E_TRACKER_CONFIG                                                       Handle        = 0x80004030\n\tCO_E_THREADPOOL_CONFIG                                                    Handle        = 0x80004031\n\tCO_E_SXS_CONFIG                                                           Handle        = 0x80004032\n\tCO_E_MALFORMED_SPN                                                        Handle        = 0x80004033\n\tCO_E_UNREVOKED_REGISTRATION_ON_APARTMENT_SHUTDOWN                         Handle        = 0x80004034\n\tCO_E_PREMATURE_STUB_RUNDOWN                                               Handle        = 0x80004035\n\tS_OK                                                                      Handle        = 0\n\tS_FALSE                                                                   Handle        = 1\n\tOLE_E_FIRST                                                               Handle        = 0x80040000\n\tOLE_E_LAST                                                                Handle        = 0x800400FF\n\tOLE_S_FIRST                                                               Handle        = 0x00040000\n\tOLE_S_LAST                                                                Handle        = 0x000400FF\n\tOLE_E_OLEVERB                                                             Handle        = 0x80040000\n\tOLE_E_ADVF                                                                Handle        = 0x80040001\n\tOLE_E_ENUM_NOMORE                                                         Handle        = 0x80040002\n\tOLE_E_ADVISENOTSUPPORTED                                                  Handle        = 0x80040003\n\tOLE_E_NOCONNECTION                                                        Handle        = 0x80040004\n\tOLE_E_NOTRUNNING                                                          Handle        = 0x80040005\n\tOLE_E_NOCACHE                                                             Handle        = 0x80040006\n\tOLE_E_BLANK                                                               Handle        = 0x80040007\n\tOLE_E_CLASSDIFF                                                           Handle        = 0x80040008\n\tOLE_E_CANT_GETMONIKER                                                     Handle        = 0x80040009\n\tOLE_E_CANT_BINDTOSOURCE                                                   Handle        = 0x8004000A\n\tOLE_E_STATIC                                                              Handle        = 0x8004000B\n\tOLE_E_PROMPTSAVECANCELLED                                                 Handle        = 0x8004000C\n\tOLE_E_INVALIDRECT                                                         Handle        = 0x8004000D\n\tOLE_E_WRONGCOMPOBJ                                                        Handle        = 0x8004000E\n\tOLE_E_INVALIDHWND                                                         Handle        = 0x8004000F\n\tOLE_E_NOT_INPLACEACTIVE                                                   Handle        = 0x80040010\n\tOLE_E_CANTCONVERT                                                         Handle        = 0x80040011\n\tOLE_E_NOSTORAGE                                                           Handle        = 0x80040012\n\tDV_E_FORMATETC                                                            Handle        = 0x80040064\n\tDV_E_DVTARGETDEVICE                                                       Handle        = 0x80040065\n\tDV_E_STGMEDIUM                                                            Handle        = 0x80040066\n\tDV_E_STATDATA                                                             Handle        = 0x80040067\n\tDV_E_LINDEX                                                               Handle        = 0x80040068\n\tDV_E_TYMED                                                                Handle        = 0x80040069\n\tDV_E_CLIPFORMAT                                                           Handle        = 0x8004006A\n\tDV_E_DVASPECT                                                             Handle        = 0x8004006B\n\tDV_E_DVTARGETDEVICE_SIZE                                                  Handle        = 0x8004006C\n\tDV_E_NOIVIEWOBJECT                                                        Handle        = 0x8004006D\n\tDRAGDROP_E_FIRST                                                          syscall.Errno = 0x80040100\n\tDRAGDROP_E_LAST                                                           syscall.Errno = 0x8004010F\n\tDRAGDROP_S_FIRST                                                          syscall.Errno = 0x00040100\n\tDRAGDROP_S_LAST                                                           syscall.Errno = 0x0004010F\n\tDRAGDROP_E_NOTREGISTERED                                                  Handle        = 0x80040100\n\tDRAGDROP_E_ALREADYREGISTERED                                              Handle        = 0x80040101\n\tDRAGDROP_E_INVALIDHWND                                                    Handle        = 0x80040102\n\tDRAGDROP_E_CONCURRENT_DRAG_ATTEMPTED                                      Handle        = 0x80040103\n\tCLASSFACTORY_E_FIRST                                                      syscall.Errno = 0x80040110\n\tCLASSFACTORY_E_LAST                                                       syscall.Errno = 0x8004011F\n\tCLASSFACTORY_S_FIRST                                                      syscall.Errno = 0x00040110\n\tCLASSFACTORY_S_LAST                                                       syscall.Errno = 0x0004011F\n\tCLASS_E_NOAGGREGATION                                                     Handle        = 0x80040110\n\tCLASS_E_CLASSNOTAVAILABLE                                                 Handle        = 0x80040111\n\tCLASS_E_NOTLICENSED                                                       Handle        = 0x80040112\n\tMARSHAL_E_FIRST                                                           syscall.Errno = 0x80040120\n\tMARSHAL_E_LAST                                                            syscall.Errno = 0x8004012F\n\tMARSHAL_S_FIRST                                                           syscall.Errno = 0x00040120\n\tMARSHAL_S_LAST                                                            syscall.Errno = 0x0004012F\n\tDATA_E_FIRST                                                              syscall.Errno = 0x80040130\n\tDATA_E_LAST                                                               syscall.Errno = 0x8004013F\n\tDATA_S_FIRST                                                              syscall.Errno = 0x00040130\n\tDATA_S_LAST                                                               syscall.Errno = 0x0004013F\n\tVIEW_E_FIRST                                                              syscall.Errno = 0x80040140\n\tVIEW_E_LAST                                                               syscall.Errno = 0x8004014F\n\tVIEW_S_FIRST                                                              syscall.Errno = 0x00040140\n\tVIEW_S_LAST                                                               syscall.Errno = 0x0004014F\n\tVIEW_E_DRAW                                                               Handle        = 0x80040140\n\tREGDB_E_FIRST                                                             syscall.Errno = 0x80040150\n\tREGDB_E_LAST                                                              syscall.Errno = 0x8004015F\n\tREGDB_S_FIRST                                                             syscall.Errno = 0x00040150\n\tREGDB_S_LAST                                                              syscall.Errno = 0x0004015F\n\tREGDB_E_READREGDB                                                         Handle        = 0x80040150\n\tREGDB_E_WRITEREGDB                                                        Handle        = 0x80040151\n\tREGDB_E_KEYMISSING                                                        Handle        = 0x80040152\n\tREGDB_E_INVALIDVALUE                                                      Handle        = 0x80040153\n\tREGDB_E_CLASSNOTREG                                                       Handle        = 0x80040154\n\tREGDB_E_IIDNOTREG                                                         Handle        = 0x80040155\n\tREGDB_E_BADTHREADINGMODEL                                                 Handle        = 0x80040156\n\tREGDB_E_PACKAGEPOLICYVIOLATION                                            Handle        = 0x80040157\n\tCAT_E_FIRST                                                               syscall.Errno = 0x80040160\n\tCAT_E_LAST                                                                syscall.Errno = 0x80040161\n\tCAT_E_CATIDNOEXIST                                                        Handle        = 0x80040160\n\tCAT_E_NODESCRIPTION                                                       Handle        = 0x80040161\n\tCS_E_FIRST                                                                syscall.Errno = 0x80040164\n\tCS_E_LAST                                                                 syscall.Errno = 0x8004016F\n\tCS_E_PACKAGE_NOTFOUND                                                     Handle        = 0x80040164\n\tCS_E_NOT_DELETABLE                                                        Handle        = 0x80040165\n\tCS_E_CLASS_NOTFOUND                                                       Handle        = 0x80040166\n\tCS_E_INVALID_VERSION                                                      Handle        = 0x80040167\n\tCS_E_NO_CLASSSTORE                                                        Handle        = 0x80040168\n\tCS_E_OBJECT_NOTFOUND                                                      Handle        = 0x80040169\n\tCS_E_OBJECT_ALREADY_EXISTS                                                Handle        = 0x8004016A\n\tCS_E_INVALID_PATH                                                         Handle        = 0x8004016B\n\tCS_E_NETWORK_ERROR                                                        Handle        = 0x8004016C\n\tCS_E_ADMIN_LIMIT_EXCEEDED                                                 Handle        = 0x8004016D\n\tCS_E_SCHEMA_MISMATCH                                                      Handle        = 0x8004016E\n\tCS_E_INTERNAL_ERROR                                                       Handle        = 0x8004016F\n\tCACHE_E_FIRST                                                             syscall.Errno = 0x80040170\n\tCACHE_E_LAST                                                              syscall.Errno = 0x8004017F\n\tCACHE_S_FIRST                                                             syscall.Errno = 0x00040170\n\tCACHE_S_LAST                                                              syscall.Errno = 0x0004017F\n\tCACHE_E_NOCACHE_UPDATED                                                   Handle        = 0x80040170\n\tOLEOBJ_E_FIRST                                                            syscall.Errno = 0x80040180\n\tOLEOBJ_E_LAST                                                             syscall.Errno = 0x8004018F\n\tOLEOBJ_S_FIRST                                                            syscall.Errno = 0x00040180\n\tOLEOBJ_S_LAST                                                             syscall.Errno = 0x0004018F\n\tOLEOBJ_E_NOVERBS                                                          Handle        = 0x80040180\n\tOLEOBJ_E_INVALIDVERB                                                      Handle        = 0x80040181\n\tCLIENTSITE_E_FIRST                                                        syscall.Errno = 0x80040190\n\tCLIENTSITE_E_LAST                                                         syscall.Errno = 0x8004019F\n\tCLIENTSITE_S_FIRST                                                        syscall.Errno = 0x00040190\n\tCLIENTSITE_S_LAST                                                         syscall.Errno = 0x0004019F\n\tINPLACE_E_NOTUNDOABLE                                                     Handle        = 0x800401A0\n\tINPLACE_E_NOTOOLSPACE                                                     Handle        = 0x800401A1\n\tINPLACE_E_FIRST                                                           syscall.Errno = 0x800401A0\n\tINPLACE_E_LAST                                                            syscall.Errno = 0x800401AF\n\tINPLACE_S_FIRST                                                           syscall.Errno = 0x000401A0\n\tINPLACE_S_LAST                                                            syscall.Errno = 0x000401AF\n\tENUM_E_FIRST                                                              syscall.Errno = 0x800401B0\n\tENUM_E_LAST                                                               syscall.Errno = 0x800401BF\n\tENUM_S_FIRST                                                              syscall.Errno = 0x000401B0\n\tENUM_S_LAST                                                               syscall.Errno = 0x000401BF\n\tCONVERT10_E_FIRST                                                         syscall.Errno = 0x800401C0\n\tCONVERT10_E_LAST                                                          syscall.Errno = 0x800401CF\n\tCONVERT10_S_FIRST                                                         syscall.Errno = 0x000401C0\n\tCONVERT10_S_LAST                                                          syscall.Errno = 0x000401CF\n\tCONVERT10_E_OLESTREAM_GET                                                 Handle        = 0x800401C0\n\tCONVERT10_E_OLESTREAM_PUT                                                 Handle        = 0x800401C1\n\tCONVERT10_E_OLESTREAM_FMT                                                 Handle        = 0x800401C2\n\tCONVERT10_E_OLESTREAM_BITMAP_TO_DIB                                       Handle        = 0x800401C3\n\tCONVERT10_E_STG_FMT                                                       Handle        = 0x800401C4\n\tCONVERT10_E_STG_NO_STD_STREAM                                             Handle        = 0x800401C5\n\tCONVERT10_E_STG_DIB_TO_BITMAP                                             Handle        = 0x800401C6\n\tCLIPBRD_E_FIRST                                                           syscall.Errno = 0x800401D0\n\tCLIPBRD_E_LAST                                                            syscall.Errno = 0x800401DF\n\tCLIPBRD_S_FIRST                                                           syscall.Errno = 0x000401D0\n\tCLIPBRD_S_LAST                                                            syscall.Errno = 0x000401DF\n\tCLIPBRD_E_CANT_OPEN                                                       Handle        = 0x800401D0\n\tCLIPBRD_E_CANT_EMPTY                                                      Handle        = 0x800401D1\n\tCLIPBRD_E_CANT_SET                                                        Handle        = 0x800401D2\n\tCLIPBRD_E_BAD_DATA                                                        Handle        = 0x800401D3\n\tCLIPBRD_E_CANT_CLOSE                                                      Handle        = 0x800401D4\n\tMK_E_FIRST                                                                syscall.Errno = 0x800401E0\n\tMK_E_LAST                                                                 syscall.Errno = 0x800401EF\n\tMK_S_FIRST                                                                syscall.Errno = 0x000401E0\n\tMK_S_LAST                                                                 syscall.Errno = 0x000401EF\n\tMK_E_CONNECTMANUALLY                                                      Handle        = 0x800401E0\n\tMK_E_EXCEEDEDDEADLINE                                                     Handle        = 0x800401E1\n\tMK_E_NEEDGENERIC                                                          Handle        = 0x800401E2\n\tMK_E_UNAVAILABLE                                                          Handle        = 0x800401E3\n\tMK_E_SYNTAX                                                               Handle        = 0x800401E4\n\tMK_E_NOOBJECT                                                             Handle        = 0x800401E5\n\tMK_E_INVALIDEXTENSION                                                     Handle        = 0x800401E6\n\tMK_E_INTERMEDIATEINTERFACENOTSUPPORTED                                    Handle        = 0x800401E7\n\tMK_E_NOTBINDABLE                                                          Handle        = 0x800401E8\n\tMK_E_NOTBOUND                                                             Handle        = 0x800401E9\n\tMK_E_CANTOPENFILE                                                         Handle        = 0x800401EA\n\tMK_E_MUSTBOTHERUSER                                                       Handle        = 0x800401EB\n\tMK_E_NOINVERSE                                                            Handle        = 0x800401EC\n\tMK_E_NOSTORAGE                                                            Handle        = 0x800401ED\n\tMK_E_NOPREFIX                                                             Handle        = 0x800401EE\n\tMK_E_ENUMERATION_FAILED                                                   Handle        = 0x800401EF\n\tCO_E_FIRST                                                                syscall.Errno = 0x800401F0\n\tCO_E_LAST                                                                 syscall.Errno = 0x800401FF\n\tCO_S_FIRST                                                                syscall.Errno = 0x000401F0\n\tCO_S_LAST                                                                 syscall.Errno = 0x000401FF\n\tCO_E_NOTINITIALIZED                                                       Handle        = 0x800401F0\n\tCO_E_ALREADYINITIALIZED                                                   Handle        = 0x800401F1\n\tCO_E_CANTDETERMINECLASS                                                   Handle        = 0x800401F2\n\tCO_E_CLASSSTRING                                                          Handle        = 0x800401F3\n\tCO_E_IIDSTRING                                                            Handle        = 0x800401F4\n\tCO_E_APPNOTFOUND                                                          Handle        = 0x800401F5\n\tCO_E_APPSINGLEUSE                                                         Handle        = 0x800401F6\n\tCO_E_ERRORINAPP                                                           Handle        = 0x800401F7\n\tCO_E_DLLNOTFOUND                                                          Handle        = 0x800401F8\n\tCO_E_ERRORINDLL                                                           Handle        = 0x800401F9\n\tCO_E_WRONGOSFORAPP                                                        Handle        = 0x800401FA\n\tCO_E_OBJNOTREG                                                            Handle        = 0x800401FB\n\tCO_E_OBJISREG                                                             Handle        = 0x800401FC\n\tCO_E_OBJNOTCONNECTED                                                      Handle        = 0x800401FD\n\tCO_E_APPDIDNTREG                                                          Handle        = 0x800401FE\n\tCO_E_RELEASED                                                             Handle        = 0x800401FF\n\tEVENT_E_FIRST                                                             syscall.Errno = 0x80040200\n\tEVENT_E_LAST                                                              syscall.Errno = 0x8004021F\n\tEVENT_S_FIRST                                                             syscall.Errno = 0x00040200\n\tEVENT_S_LAST                                                              syscall.Errno = 0x0004021F\n\tEVENT_S_SOME_SUBSCRIBERS_FAILED                                           Handle        = 0x00040200\n\tEVENT_E_ALL_SUBSCRIBERS_FAILED                                            Handle        = 0x80040201\n\tEVENT_S_NOSUBSCRIBERS                                                     Handle        = 0x00040202\n\tEVENT_E_QUERYSYNTAX                                                       Handle        = 0x80040203\n\tEVENT_E_QUERYFIELD                                                        Handle        = 0x80040204\n\tEVENT_E_INTERNALEXCEPTION                                                 Handle        = 0x80040205\n\tEVENT_E_INTERNALERROR                                                     Handle        = 0x80040206\n\tEVENT_E_INVALID_PER_USER_SID                                              Handle        = 0x80040207\n\tEVENT_E_USER_EXCEPTION                                                    Handle        = 0x80040208\n\tEVENT_E_TOO_MANY_METHODS                                                  Handle        = 0x80040209\n\tEVENT_E_MISSING_EVENTCLASS                                                Handle        = 0x8004020A\n\tEVENT_E_NOT_ALL_REMOVED                                                   Handle        = 0x8004020B\n\tEVENT_E_COMPLUS_NOT_INSTALLED                                             Handle        = 0x8004020C\n\tEVENT_E_CANT_MODIFY_OR_DELETE_UNCONFIGURED_OBJECT                         Handle        = 0x8004020D\n\tEVENT_E_CANT_MODIFY_OR_DELETE_CONFIGURED_OBJECT                           Handle        = 0x8004020E\n\tEVENT_E_INVALID_EVENT_CLASS_PARTITION                                     Handle        = 0x8004020F\n\tEVENT_E_PER_USER_SID_NOT_LOGGED_ON                                        Handle        = 0x80040210\n\tTPC_E_INVALID_PROPERTY                                                    Handle        = 0x80040241\n\tTPC_E_NO_DEFAULT_TABLET                                                   Handle        = 0x80040212\n\tTPC_E_UNKNOWN_PROPERTY                                                    Handle        = 0x8004021B\n\tTPC_E_INVALID_INPUT_RECT                                                  Handle        = 0x80040219\n\tTPC_E_INVALID_STROKE                                                      Handle        = 0x80040222\n\tTPC_E_INITIALIZE_FAIL                                                     Handle        = 0x80040223\n\tTPC_E_NOT_RELEVANT                                                        Handle        = 0x80040232\n\tTPC_E_INVALID_PACKET_DESCRIPTION                                          Handle        = 0x80040233\n\tTPC_E_RECOGNIZER_NOT_REGISTERED                                           Handle        = 0x80040235\n\tTPC_E_INVALID_RIGHTS                                                      Handle        = 0x80040236\n\tTPC_E_OUT_OF_ORDER_CALL                                                   Handle        = 0x80040237\n\tTPC_E_QUEUE_FULL                                                          Handle        = 0x80040238\n\tTPC_E_INVALID_CONFIGURATION                                               Handle        = 0x80040239\n\tTPC_E_INVALID_DATA_FROM_RECOGNIZER                                        Handle        = 0x8004023A\n\tTPC_S_TRUNCATED                                                           Handle        = 0x00040252\n\tTPC_S_INTERRUPTED                                                         Handle        = 0x00040253\n\tTPC_S_NO_DATA_TO_PROCESS                                                  Handle        = 0x00040254\n\tXACT_E_FIRST                                                              syscall.Errno = 0x8004D000\n\tXACT_E_LAST                                                               syscall.Errno = 0x8004D02B\n\tXACT_S_FIRST                                                              syscall.Errno = 0x0004D000\n\tXACT_S_LAST                                                               syscall.Errno = 0x0004D010\n\tXACT_E_ALREADYOTHERSINGLEPHASE                                            Handle        = 0x8004D000\n\tXACT_E_CANTRETAIN                                                         Handle        = 0x8004D001\n\tXACT_E_COMMITFAILED                                                       Handle        = 0x8004D002\n\tXACT_E_COMMITPREVENTED                                                    Handle        = 0x8004D003\n\tXACT_E_HEURISTICABORT                                                     Handle        = 0x8004D004\n\tXACT_E_HEURISTICCOMMIT                                                    Handle        = 0x8004D005\n\tXACT_E_HEURISTICDAMAGE                                                    Handle        = 0x8004D006\n\tXACT_E_HEURISTICDANGER                                                    Handle        = 0x8004D007\n\tXACT_E_ISOLATIONLEVEL                                                     Handle        = 0x8004D008\n\tXACT_E_NOASYNC                                                            Handle        = 0x8004D009\n\tXACT_E_NOENLIST                                                           Handle        = 0x8004D00A\n\tXACT_E_NOISORETAIN                                                        Handle        = 0x8004D00B\n\tXACT_E_NORESOURCE                                                         Handle        = 0x8004D00C\n\tXACT_E_NOTCURRENT                                                         Handle        = 0x8004D00D\n\tXACT_E_NOTRANSACTION                                                      Handle        = 0x8004D00E\n\tXACT_E_NOTSUPPORTED                                                       Handle        = 0x8004D00F\n\tXACT_E_UNKNOWNRMGRID                                                      Handle        = 0x8004D010\n\tXACT_E_WRONGSTATE                                                         Handle        = 0x8004D011\n\tXACT_E_WRONGUOW                                                           Handle        = 0x8004D012\n\tXACT_E_XTIONEXISTS                                                        Handle        = 0x8004D013\n\tXACT_E_NOIMPORTOBJECT                                                     Handle        = 0x8004D014\n\tXACT_E_INVALIDCOOKIE                                                      Handle        = 0x8004D015\n\tXACT_E_INDOUBT                                                            Handle        = 0x8004D016\n\tXACT_E_NOTIMEOUT                                                          Handle        = 0x8004D017\n\tXACT_E_ALREADYINPROGRESS                                                  Handle        = 0x8004D018\n\tXACT_E_ABORTED                                                            Handle        = 0x8004D019\n\tXACT_E_LOGFULL                                                            Handle        = 0x8004D01A\n\tXACT_E_TMNOTAVAILABLE                                                     Handle        = 0x8004D01B\n\tXACT_E_CONNECTION_DOWN                                                    Handle        = 0x8004D01C\n\tXACT_E_CONNECTION_DENIED                                                  Handle        = 0x8004D01D\n\tXACT_E_REENLISTTIMEOUT                                                    Handle        = 0x8004D01E\n\tXACT_E_TIP_CONNECT_FAILED                                                 Handle        = 0x8004D01F\n\tXACT_E_TIP_PROTOCOL_ERROR                                                 Handle        = 0x8004D020\n\tXACT_E_TIP_PULL_FAILED                                                    Handle        = 0x8004D021\n\tXACT_E_DEST_TMNOTAVAILABLE                                                Handle        = 0x8004D022\n\tXACT_E_TIP_DISABLED                                                       Handle        = 0x8004D023\n\tXACT_E_NETWORK_TX_DISABLED                                                Handle        = 0x8004D024\n\tXACT_E_PARTNER_NETWORK_TX_DISABLED                                        Handle        = 0x8004D025\n\tXACT_E_XA_TX_DISABLED                                                     Handle        = 0x8004D026\n\tXACT_E_UNABLE_TO_READ_DTC_CONFIG                                          Handle        = 0x8004D027\n\tXACT_E_UNABLE_TO_LOAD_DTC_PROXY                                           Handle        = 0x8004D028\n\tXACT_E_ABORTING                                                           Handle        = 0x8004D029\n\tXACT_E_PUSH_COMM_FAILURE                                                  Handle        = 0x8004D02A\n\tXACT_E_PULL_COMM_FAILURE                                                  Handle        = 0x8004D02B\n\tXACT_E_LU_TX_DISABLED                                                     Handle        = 0x8004D02C\n\tXACT_E_CLERKNOTFOUND                                                      Handle        = 0x8004D080\n\tXACT_E_CLERKEXISTS                                                        Handle        = 0x8004D081\n\tXACT_E_RECOVERYINPROGRESS                                                 Handle        = 0x8004D082\n\tXACT_E_TRANSACTIONCLOSED                                                  Handle        = 0x8004D083\n\tXACT_E_INVALIDLSN                                                         Handle        = 0x8004D084\n\tXACT_E_REPLAYREQUEST                                                      Handle        = 0x8004D085\n\tXACT_S_ASYNC                                                              Handle        = 0x0004D000\n\tXACT_S_DEFECT                                                             Handle        = 0x0004D001\n\tXACT_S_READONLY                                                           Handle        = 0x0004D002\n\tXACT_S_SOMENORETAIN                                                       Handle        = 0x0004D003\n\tXACT_S_OKINFORM                                                           Handle        = 0x0004D004\n\tXACT_S_MADECHANGESCONTENT                                                 Handle        = 0x0004D005\n\tXACT_S_MADECHANGESINFORM                                                  Handle        = 0x0004D006\n\tXACT_S_ALLNORETAIN                                                        Handle        = 0x0004D007\n\tXACT_S_ABORTING                                                           Handle        = 0x0004D008\n\tXACT_S_SINGLEPHASE                                                        Handle        = 0x0004D009\n\tXACT_S_LOCALLY_OK                                                         Handle        = 0x0004D00A\n\tXACT_S_LASTRESOURCEMANAGER                                                Handle        = 0x0004D010\n\tCONTEXT_E_FIRST                                                           syscall.Errno = 0x8004E000\n\tCONTEXT_E_LAST                                                            syscall.Errno = 0x8004E02F\n\tCONTEXT_S_FIRST                                                           syscall.Errno = 0x0004E000\n\tCONTEXT_S_LAST                                                            syscall.Errno = 0x0004E02F\n\tCONTEXT_E_ABORTED                                                         Handle        = 0x8004E002\n\tCONTEXT_E_ABORTING                                                        Handle        = 0x8004E003\n\tCONTEXT_E_NOCONTEXT                                                       Handle        = 0x8004E004\n\tCONTEXT_E_WOULD_DEADLOCK                                                  Handle        = 0x8004E005\n\tCONTEXT_E_SYNCH_TIMEOUT                                                   Handle        = 0x8004E006\n\tCONTEXT_E_OLDREF                                                          Handle        = 0x8004E007\n\tCONTEXT_E_ROLENOTFOUND                                                    Handle        = 0x8004E00C\n\tCONTEXT_E_TMNOTAVAILABLE                                                  Handle        = 0x8004E00F\n\tCO_E_ACTIVATIONFAILED                                                     Handle        = 0x8004E021\n\tCO_E_ACTIVATIONFAILED_EVENTLOGGED                                         Handle        = 0x8004E022\n\tCO_E_ACTIVATIONFAILED_CATALOGERROR                                        Handle        = 0x8004E023\n\tCO_E_ACTIVATIONFAILED_TIMEOUT                                             Handle        = 0x8004E024\n\tCO_E_INITIALIZATIONFAILED                                                 Handle        = 0x8004E025\n\tCONTEXT_E_NOJIT                                                           Handle        = 0x8004E026\n\tCONTEXT_E_NOTRANSACTION                                                   Handle        = 0x8004E027\n\tCO_E_THREADINGMODEL_CHANGED                                               Handle        = 0x8004E028\n\tCO_E_NOIISINTRINSICS                                                      Handle        = 0x8004E029\n\tCO_E_NOCOOKIES                                                            Handle        = 0x8004E02A\n\tCO_E_DBERROR                                                              Handle        = 0x8004E02B\n\tCO_E_NOTPOOLED                                                            Handle        = 0x8004E02C\n\tCO_E_NOTCONSTRUCTED                                                       Handle        = 0x8004E02D\n\tCO_E_NOSYNCHRONIZATION                                                    Handle        = 0x8004E02E\n\tCO_E_ISOLEVELMISMATCH                                                     Handle        = 0x8004E02F\n\tCO_E_CALL_OUT_OF_TX_SCOPE_NOT_ALLOWED                                     Handle        = 0x8004E030\n\tCO_E_EXIT_TRANSACTION_SCOPE_NOT_CALLED                                    Handle        = 0x8004E031\n\tOLE_S_USEREG                                                              Handle        = 0x00040000\n\tOLE_S_STATIC                                                              Handle        = 0x00040001\n\tOLE_S_MAC_CLIPFORMAT                                                      Handle        = 0x00040002\n\tDRAGDROP_S_DROP                                                           Handle        = 0x00040100\n\tDRAGDROP_S_CANCEL                                                         Handle        = 0x00040101\n\tDRAGDROP_S_USEDEFAULTCURSORS                                              Handle        = 0x00040102\n\tDATA_S_SAMEFORMATETC                                                      Handle        = 0x00040130\n\tVIEW_S_ALREADY_FROZEN                                                     Handle        = 0x00040140\n\tCACHE_S_FORMATETC_NOTSUPPORTED                                            Handle        = 0x00040170\n\tCACHE_S_SAMECACHE                                                         Handle        = 0x00040171\n\tCACHE_S_SOMECACHES_NOTUPDATED                                             Handle        = 0x00040172\n\tOLEOBJ_S_INVALIDVERB                                                      Handle        = 0x00040180\n\tOLEOBJ_S_CANNOT_DOVERB_NOW                                                Handle        = 0x00040181\n\tOLEOBJ_S_INVALIDHWND                                                      Handle        = 0x00040182\n\tINPLACE_S_TRUNCATED                                                       Handle        = 0x000401A0\n\tCONVERT10_S_NO_PRESENTATION                                               Handle        = 0x000401C0\n\tMK_S_REDUCED_TO_SELF                                                      Handle        = 0x000401E2\n\tMK_S_ME                                                                   Handle        = 0x000401E4\n\tMK_S_HIM                                                                  Handle        = 0x000401E5\n\tMK_S_US                                                                   Handle        = 0x000401E6\n\tMK_S_MONIKERALREADYREGISTERED                                             Handle        = 0x000401E7\n\tSCHED_S_TASK_READY                                                        Handle        = 0x00041300\n\tSCHED_S_TASK_RUNNING                                                      Handle        = 0x00041301\n\tSCHED_S_TASK_DISABLED                                                     Handle        = 0x00041302\n\tSCHED_S_TASK_HAS_NOT_RUN                                                  Handle        = 0x00041303\n\tSCHED_S_TASK_NO_MORE_RUNS                                                 Handle        = 0x00041304\n\tSCHED_S_TASK_NOT_SCHEDULED                                                Handle        = 0x00041305\n\tSCHED_S_TASK_TERMINATED                                                   Handle        = 0x00041306\n\tSCHED_S_TASK_NO_VALID_TRIGGERS                                            Handle        = 0x00041307\n\tSCHED_S_EVENT_TRIGGER                                                     Handle        = 0x00041308\n\tSCHED_E_TRIGGER_NOT_FOUND                                                 Handle        = 0x80041309\n\tSCHED_E_TASK_NOT_READY                                                    Handle        = 0x8004130A\n\tSCHED_E_TASK_NOT_RUNNING                                                  Handle        = 0x8004130B\n\tSCHED_E_SERVICE_NOT_INSTALLED                                             Handle        = 0x8004130C\n\tSCHED_E_CANNOT_OPEN_TASK                                                  Handle        = 0x8004130D\n\tSCHED_E_INVALID_TASK                                                      Handle        = 0x8004130E\n\tSCHED_E_ACCOUNT_INFORMATION_NOT_SET                                       Handle        = 0x8004130F\n\tSCHED_E_ACCOUNT_NAME_NOT_FOUND                                            Handle        = 0x80041310\n\tSCHED_E_ACCOUNT_DBASE_CORRUPT                                             Handle        = 0x80041311\n\tSCHED_E_NO_SECURITY_SERVICES                                              Handle        = 0x80041312\n\tSCHED_E_UNKNOWN_OBJECT_VERSION                                            Handle        = 0x80041313\n\tSCHED_E_UNSUPPORTED_ACCOUNT_OPTION                                        Handle        = 0x80041314\n\tSCHED_E_SERVICE_NOT_RUNNING                                               Handle        = 0x80041315\n\tSCHED_E_UNEXPECTEDNODE                                                    Handle        = 0x80041316\n\tSCHED_E_NAMESPACE                                                         Handle        = 0x80041317\n\tSCHED_E_INVALIDVALUE                                                      Handle        = 0x80041318\n\tSCHED_E_MISSINGNODE                                                       Handle        = 0x80041319\n\tSCHED_E_MALFORMEDXML                                                      Handle        = 0x8004131A\n\tSCHED_S_SOME_TRIGGERS_FAILED                                              Handle        = 0x0004131B\n\tSCHED_S_BATCH_LOGON_PROBLEM                                               Handle        = 0x0004131C\n\tSCHED_E_TOO_MANY_NODES                                                    Handle        = 0x8004131D\n\tSCHED_E_PAST_END_BOUNDARY                                                 Handle        = 0x8004131E\n\tSCHED_E_ALREADY_RUNNING                                                   Handle        = 0x8004131F\n\tSCHED_E_USER_NOT_LOGGED_ON                                                Handle        = 0x80041320\n\tSCHED_E_INVALID_TASK_HASH                                                 Handle        = 0x80041321\n\tSCHED_E_SERVICE_NOT_AVAILABLE                                             Handle        = 0x80041322\n\tSCHED_E_SERVICE_TOO_BUSY                                                  Handle        = 0x80041323\n\tSCHED_E_TASK_ATTEMPTED                                                    Handle        = 0x80041324\n\tSCHED_S_TASK_QUEUED                                                       Handle        = 0x00041325\n\tSCHED_E_TASK_DISABLED                                                     Handle        = 0x80041326\n\tSCHED_E_TASK_NOT_V1_COMPAT                                                Handle        = 0x80041327\n\tSCHED_E_START_ON_DEMAND                                                   Handle        = 0x80041328\n\tSCHED_E_TASK_NOT_UBPM_COMPAT                                              Handle        = 0x80041329\n\tSCHED_E_DEPRECATED_FEATURE_USED                                           Handle        = 0x80041330\n\tCO_E_CLASS_CREATE_FAILED                                                  Handle        = 0x80080001\n\tCO_E_SCM_ERROR                                                            Handle        = 0x80080002\n\tCO_E_SCM_RPC_FAILURE                                                      Handle        = 0x80080003\n\tCO_E_BAD_PATH                                                             Handle        = 0x80080004\n\tCO_E_SERVER_EXEC_FAILURE                                                  Handle        = 0x80080005\n\tCO_E_OBJSRV_RPC_FAILURE                                                   Handle        = 0x80080006\n\tMK_E_NO_NORMALIZED                                                        Handle        = 0x80080007\n\tCO_E_SERVER_STOPPING                                                      Handle        = 0x80080008\n\tMEM_E_INVALID_ROOT                                                        Handle        = 0x80080009\n\tMEM_E_INVALID_LINK                                                        Handle        = 0x80080010\n\tMEM_E_INVALID_SIZE                                                        Handle        = 0x80080011\n\tCO_S_NOTALLINTERFACES                                                     Handle        = 0x00080012\n\tCO_S_MACHINENAMENOTFOUND                                                  Handle        = 0x00080013\n\tCO_E_MISSING_DISPLAYNAME                                                  Handle        = 0x80080015\n\tCO_E_RUNAS_VALUE_MUST_BE_AAA                                              Handle        = 0x80080016\n\tCO_E_ELEVATION_DISABLED                                                   Handle        = 0x80080017\n\tAPPX_E_PACKAGING_INTERNAL                                                 Handle        = 0x80080200\n\tAPPX_E_INTERLEAVING_NOT_ALLOWED                                           Handle        = 0x80080201\n\tAPPX_E_RELATIONSHIPS_NOT_ALLOWED                                          Handle        = 0x80080202\n\tAPPX_E_MISSING_REQUIRED_FILE                                              Handle        = 0x80080203\n\tAPPX_E_INVALID_MANIFEST                                                   Handle        = 0x80080204\n\tAPPX_E_INVALID_BLOCKMAP                                                   Handle        = 0x80080205\n\tAPPX_E_CORRUPT_CONTENT                                                    Handle        = 0x80080206\n\tAPPX_E_BLOCK_HASH_INVALID                                                 Handle        = 0x80080207\n\tAPPX_E_REQUESTED_RANGE_TOO_LARGE                                          Handle        = 0x80080208\n\tAPPX_E_INVALID_SIP_CLIENT_DATA                                            Handle        = 0x80080209\n\tAPPX_E_INVALID_KEY_INFO                                                   Handle        = 0x8008020A\n\tAPPX_E_INVALID_CONTENTGROUPMAP                                            Handle        = 0x8008020B\n\tAPPX_E_INVALID_APPINSTALLER                                               Handle        = 0x8008020C\n\tAPPX_E_DELTA_BASELINE_VERSION_MISMATCH                                    Handle        = 0x8008020D\n\tAPPX_E_DELTA_PACKAGE_MISSING_FILE                                         Handle        = 0x8008020E\n\tAPPX_E_INVALID_DELTA_PACKAGE                                              Handle        = 0x8008020F\n\tAPPX_E_DELTA_APPENDED_PACKAGE_NOT_ALLOWED                                 Handle        = 0x80080210\n\tAPPX_E_INVALID_PACKAGING_LAYOUT                                           Handle        = 0x80080211\n\tAPPX_E_INVALID_PACKAGESIGNCONFIG                                          Handle        = 0x80080212\n\tAPPX_E_RESOURCESPRI_NOT_ALLOWED                                           Handle        = 0x80080213\n\tAPPX_E_FILE_COMPRESSION_MISMATCH                                          Handle        = 0x80080214\n\tAPPX_E_INVALID_PAYLOAD_PACKAGE_EXTENSION                                  Handle        = 0x80080215\n\tAPPX_E_INVALID_ENCRYPTION_EXCLUSION_FILE_LIST                             Handle        = 0x80080216\n\tBT_E_SPURIOUS_ACTIVATION                                                  Handle        = 0x80080300\n\tDISP_E_UNKNOWNINTERFACE                                                   Handle        = 0x80020001\n\tDISP_E_MEMBERNOTFOUND                                                     Handle        = 0x80020003\n\tDISP_E_PARAMNOTFOUND                                                      Handle        = 0x80020004\n\tDISP_E_TYPEMISMATCH                                                       Handle        = 0x80020005\n\tDISP_E_UNKNOWNNAME                                                        Handle        = 0x80020006\n\tDISP_E_NONAMEDARGS                                                        Handle        = 0x80020007\n\tDISP_E_BADVARTYPE                                                         Handle        = 0x80020008\n\tDISP_E_EXCEPTION                                                          Handle        = 0x80020009\n\tDISP_E_OVERFLOW                                                           Handle        = 0x8002000A\n\tDISP_E_BADINDEX                                                           Handle        = 0x8002000B\n\tDISP_E_UNKNOWNLCID                                                        Handle        = 0x8002000C\n\tDISP_E_ARRAYISLOCKED                                                      Handle        = 0x8002000D\n\tDISP_E_BADPARAMCOUNT                                                      Handle        = 0x8002000E\n\tDISP_E_PARAMNOTOPTIONAL                                                   Handle        = 0x8002000F\n\tDISP_E_BADCALLEE                                                          Handle        = 0x80020010\n\tDISP_E_NOTACOLLECTION                                                     Handle        = 0x80020011\n\tDISP_E_DIVBYZERO                                                          Handle        = 0x80020012\n\tDISP_E_BUFFERTOOSMALL                                                     Handle        = 0x80020013\n\tTYPE_E_BUFFERTOOSMALL                                                     Handle        = 0x80028016\n\tTYPE_E_FIELDNOTFOUND                                                      Handle        = 0x80028017\n\tTYPE_E_INVDATAREAD                                                        Handle        = 0x80028018\n\tTYPE_E_UNSUPFORMAT                                                        Handle        = 0x80028019\n\tTYPE_E_REGISTRYACCESS                                                     Handle        = 0x8002801C\n\tTYPE_E_LIBNOTREGISTERED                                                   Handle        = 0x8002801D\n\tTYPE_E_UNDEFINEDTYPE                                                      Handle        = 0x80028027\n\tTYPE_E_QUALIFIEDNAMEDISALLOWED                                            Handle        = 0x80028028\n\tTYPE_E_INVALIDSTATE                                                       Handle        = 0x80028029\n\tTYPE_E_WRONGTYPEKIND                                                      Handle        = 0x8002802A\n\tTYPE_E_ELEMENTNOTFOUND                                                    Handle        = 0x8002802B\n\tTYPE_E_AMBIGUOUSNAME                                                      Handle        = 0x8002802C\n\tTYPE_E_NAMECONFLICT                                                       Handle        = 0x8002802D\n\tTYPE_E_UNKNOWNLCID                                                        Handle        = 0x8002802E\n\tTYPE_E_DLLFUNCTIONNOTFOUND                                                Handle        = 0x8002802F\n\tTYPE_E_BADMODULEKIND                                                      Handle        = 0x800288BD\n\tTYPE_E_SIZETOOBIG                                                         Handle        = 0x800288C5\n\tTYPE_E_DUPLICATEID                                                        Handle        = 0x800288C6\n\tTYPE_E_INVALIDID                                                          Handle        = 0x800288CF\n\tTYPE_E_TYPEMISMATCH                                                       Handle        = 0x80028CA0\n\tTYPE_E_OUTOFBOUNDS                                                        Handle        = 0x80028CA1\n\tTYPE_E_IOERROR                                                            Handle        = 0x80028CA2\n\tTYPE_E_CANTCREATETMPFILE                                                  Handle        = 0x80028CA3\n\tTYPE_E_CANTLOADLIBRARY                                                    Handle        = 0x80029C4A\n\tTYPE_E_INCONSISTENTPROPFUNCS                                              Handle        = 0x80029C83\n\tTYPE_E_CIRCULARTYPE                                                       Handle        = 0x80029C84\n\tSTG_E_INVALIDFUNCTION                                                     Handle        = 0x80030001\n\tSTG_E_FILENOTFOUND                                                        Handle        = 0x80030002\n\tSTG_E_PATHNOTFOUND                                                        Handle        = 0x80030003\n\tSTG_E_TOOMANYOPENFILES                                                    Handle        = 0x80030004\n\tSTG_E_ACCESSDENIED                                                        Handle        = 0x80030005\n\tSTG_E_INVALIDHANDLE                                                       Handle        = 0x80030006\n\tSTG_E_INSUFFICIENTMEMORY                                                  Handle        = 0x80030008\n\tSTG_E_INVALIDPOINTER                                                      Handle        = 0x80030009\n\tSTG_E_NOMOREFILES                                                         Handle        = 0x80030012\n\tSTG_E_DISKISWRITEPROTECTED                                                Handle        = 0x80030013\n\tSTG_E_SEEKERROR                                                           Handle        = 0x80030019\n\tSTG_E_WRITEFAULT                                                          Handle        = 0x8003001D\n\tSTG_E_READFAULT                                                           Handle        = 0x8003001E\n\tSTG_E_SHAREVIOLATION                                                      Handle        = 0x80030020\n\tSTG_E_LOCKVIOLATION                                                       Handle        = 0x80030021\n\tSTG_E_FILEALREADYEXISTS                                                   Handle        = 0x80030050\n\tSTG_E_INVALIDPARAMETER                                                    Handle        = 0x80030057\n\tSTG_E_MEDIUMFULL                                                          Handle        = 0x80030070\n\tSTG_E_PROPSETMISMATCHED                                                   Handle        = 0x800300F0\n\tSTG_E_ABNORMALAPIEXIT                                                     Handle        = 0x800300FA\n\tSTG_E_INVALIDHEADER                                                       Handle        = 0x800300FB\n\tSTG_E_INVALIDNAME                                                         Handle        = 0x800300FC\n\tSTG_E_UNKNOWN                                                             Handle        = 0x800300FD\n\tSTG_E_UNIMPLEMENTEDFUNCTION                                               Handle        = 0x800300FE\n\tSTG_E_INVALIDFLAG                                                         Handle        = 0x800300FF\n\tSTG_E_INUSE                                                               Handle        = 0x80030100\n\tSTG_E_NOTCURRENT                                                          Handle        = 0x80030101\n\tSTG_E_REVERTED                                                            Handle        = 0x80030102\n\tSTG_E_CANTSAVE                                                            Handle        = 0x80030103\n\tSTG_E_OLDFORMAT                                                           Handle        = 0x80030104\n\tSTG_E_OLDDLL                                                              Handle        = 0x80030105\n\tSTG_E_SHAREREQUIRED                                                       Handle        = 0x80030106\n\tSTG_E_NOTFILEBASEDSTORAGE                                                 Handle        = 0x80030107\n\tSTG_E_EXTANTMARSHALLINGS                                                  Handle        = 0x80030108\n\tSTG_E_DOCFILECORRUPT                                                      Handle        = 0x80030109\n\tSTG_E_BADBASEADDRESS                                                      Handle        = 0x80030110\n\tSTG_E_DOCFILETOOLARGE                                                     Handle        = 0x80030111\n\tSTG_E_NOTSIMPLEFORMAT                                                     Handle        = 0x80030112\n\tSTG_E_INCOMPLETE                                                          Handle        = 0x80030201\n\tSTG_E_TERMINATED                                                          Handle        = 0x80030202\n\tSTG_S_CONVERTED                                                           Handle        = 0x00030200\n\tSTG_S_BLOCK                                                               Handle        = 0x00030201\n\tSTG_S_RETRYNOW                                                            Handle        = 0x00030202\n\tSTG_S_MONITORING                                                          Handle        = 0x00030203\n\tSTG_S_MULTIPLEOPENS                                                       Handle        = 0x00030204\n\tSTG_S_CONSOLIDATIONFAILED                                                 Handle        = 0x00030205\n\tSTG_S_CANNOTCONSOLIDATE                                                   Handle        = 0x00030206\n\tSTG_S_POWER_CYCLE_REQUIRED                                                Handle        = 0x00030207\n\tSTG_E_FIRMWARE_SLOT_INVALID                                               Handle        = 0x80030208\n\tSTG_E_FIRMWARE_IMAGE_INVALID                                              Handle        = 0x80030209\n\tSTG_E_DEVICE_UNRESPONSIVE                                                 Handle        = 0x8003020A\n\tSTG_E_STATUS_COPY_PROTECTION_FAILURE                                      Handle        = 0x80030305\n\tSTG_E_CSS_AUTHENTICATION_FAILURE                                          Handle        = 0x80030306\n\tSTG_E_CSS_KEY_NOT_PRESENT                                                 Handle        = 0x80030307\n\tSTG_E_CSS_KEY_NOT_ESTABLISHED                                             Handle        = 0x80030308\n\tSTG_E_CSS_SCRAMBLED_SECTOR                                                Handle        = 0x80030309\n\tSTG_E_CSS_REGION_MISMATCH                                                 Handle        = 0x8003030A\n\tSTG_E_RESETS_EXHAUSTED                                                    Handle        = 0x8003030B\n\tRPC_E_CALL_REJECTED                                                       Handle        = 0x80010001\n\tRPC_E_CALL_CANCELED                                                       Handle        = 0x80010002\n\tRPC_E_CANTPOST_INSENDCALL                                                 Handle        = 0x80010003\n\tRPC_E_CANTCALLOUT_INASYNCCALL                                             Handle        = 0x80010004\n\tRPC_E_CANTCALLOUT_INEXTERNALCALL                                          Handle        = 0x80010005\n\tRPC_E_CONNECTION_TERMINATED                                               Handle        = 0x80010006\n\tRPC_E_SERVER_DIED                                                         Handle        = 0x80010007\n\tRPC_E_CLIENT_DIED                                                         Handle        = 0x80010008\n\tRPC_E_INVALID_DATAPACKET                                                  Handle        = 0x80010009\n\tRPC_E_CANTTRANSMIT_CALL                                                   Handle        = 0x8001000A\n\tRPC_E_CLIENT_CANTMARSHAL_DATA                                             Handle        = 0x8001000B\n\tRPC_E_CLIENT_CANTUNMARSHAL_DATA                                           Handle        = 0x8001000C\n\tRPC_E_SERVER_CANTMARSHAL_DATA                                             Handle        = 0x8001000D\n\tRPC_E_SERVER_CANTUNMARSHAL_DATA                                           Handle        = 0x8001000E\n\tRPC_E_INVALID_DATA                                                        Handle        = 0x8001000F\n\tRPC_E_INVALID_PARAMETER                                                   Handle        = 0x80010010\n\tRPC_E_CANTCALLOUT_AGAIN                                                   Handle        = 0x80010011\n\tRPC_E_SERVER_DIED_DNE                                                     Handle        = 0x80010012\n\tRPC_E_SYS_CALL_FAILED                                                     Handle        = 0x80010100\n\tRPC_E_OUT_OF_RESOURCES                                                    Handle        = 0x80010101\n\tRPC_E_ATTEMPTED_MULTITHREAD                                               Handle        = 0x80010102\n\tRPC_E_NOT_REGISTERED                                                      Handle        = 0x80010103\n\tRPC_E_FAULT                                                               Handle        = 0x80010104\n\tRPC_E_SERVERFAULT                                                         Handle        = 0x80010105\n\tRPC_E_CHANGED_MODE                                                        Handle        = 0x80010106\n\tRPC_E_INVALIDMETHOD                                                       Handle        = 0x80010107\n\tRPC_E_DISCONNECTED                                                        Handle        = 0x80010108\n\tRPC_E_RETRY                                                               Handle        = 0x80010109\n\tRPC_E_SERVERCALL_RETRYLATER                                               Handle        = 0x8001010A\n\tRPC_E_SERVERCALL_REJECTED                                                 Handle        = 0x8001010B\n\tRPC_E_INVALID_CALLDATA                                                    Handle        = 0x8001010C\n\tRPC_E_CANTCALLOUT_ININPUTSYNCCALL                                         Handle        = 0x8001010D\n\tRPC_E_WRONG_THREAD                                                        Handle        = 0x8001010E\n\tRPC_E_THREAD_NOT_INIT                                                     Handle        = 0x8001010F\n\tRPC_E_VERSION_MISMATCH                                                    Handle        = 0x80010110\n\tRPC_E_INVALID_HEADER                                                      Handle        = 0x80010111\n\tRPC_E_INVALID_EXTENSION                                                   Handle        = 0x80010112\n\tRPC_E_INVALID_IPID                                                        Handle        = 0x80010113\n\tRPC_E_INVALID_OBJECT                                                      Handle        = 0x80010114\n\tRPC_S_CALLPENDING                                                         Handle        = 0x80010115\n\tRPC_S_WAITONTIMER                                                         Handle        = 0x80010116\n\tRPC_E_CALL_COMPLETE                                                       Handle        = 0x80010117\n\tRPC_E_UNSECURE_CALL                                                       Handle        = 0x80010118\n\tRPC_E_TOO_LATE                                                            Handle        = 0x80010119\n\tRPC_E_NO_GOOD_SECURITY_PACKAGES                                           Handle        = 0x8001011A\n\tRPC_E_ACCESS_DENIED                                                       Handle        = 0x8001011B\n\tRPC_E_REMOTE_DISABLED                                                     Handle        = 0x8001011C\n\tRPC_E_INVALID_OBJREF                                                      Handle        = 0x8001011D\n\tRPC_E_NO_CONTEXT                                                          Handle        = 0x8001011E\n\tRPC_E_TIMEOUT                                                             Handle        = 0x8001011F\n\tRPC_E_NO_SYNC                                                             Handle        = 0x80010120\n\tRPC_E_FULLSIC_REQUIRED                                                    Handle        = 0x80010121\n\tRPC_E_INVALID_STD_NAME                                                    Handle        = 0x80010122\n\tCO_E_FAILEDTOIMPERSONATE                                                  Handle        = 0x80010123\n\tCO_E_FAILEDTOGETSECCTX                                                    Handle        = 0x80010124\n\tCO_E_FAILEDTOOPENTHREADTOKEN                                              Handle        = 0x80010125\n\tCO_E_FAILEDTOGETTOKENINFO                                                 Handle        = 0x80010126\n\tCO_E_TRUSTEEDOESNTMATCHCLIENT                                             Handle        = 0x80010127\n\tCO_E_FAILEDTOQUERYCLIENTBLANKET                                           Handle        = 0x80010128\n\tCO_E_FAILEDTOSETDACL                                                      Handle        = 0x80010129\n\tCO_E_ACCESSCHECKFAILED                                                    Handle        = 0x8001012A\n\tCO_E_NETACCESSAPIFAILED                                                   Handle        = 0x8001012B\n\tCO_E_WRONGTRUSTEENAMESYNTAX                                               Handle        = 0x8001012C\n\tCO_E_INVALIDSID                                                           Handle        = 0x8001012D\n\tCO_E_CONVERSIONFAILED                                                     Handle        = 0x8001012E\n\tCO_E_NOMATCHINGSIDFOUND                                                   Handle        = 0x8001012F\n\tCO_E_LOOKUPACCSIDFAILED                                                   Handle        = 0x80010130\n\tCO_E_NOMATCHINGNAMEFOUND                                                  Handle        = 0x80010131\n\tCO_E_LOOKUPACCNAMEFAILED                                                  Handle        = 0x80010132\n\tCO_E_SETSERLHNDLFAILED                                                    Handle        = 0x80010133\n\tCO_E_FAILEDTOGETWINDIR                                                    Handle        = 0x80010134\n\tCO_E_PATHTOOLONG                                                          Handle        = 0x80010135\n\tCO_E_FAILEDTOGENUUID                                                      Handle        = 0x80010136\n\tCO_E_FAILEDTOCREATEFILE                                                   Handle        = 0x80010137\n\tCO_E_FAILEDTOCLOSEHANDLE                                                  Handle        = 0x80010138\n\tCO_E_EXCEEDSYSACLLIMIT                                                    Handle        = 0x80010139\n\tCO_E_ACESINWRONGORDER                                                     Handle        = 0x8001013A\n\tCO_E_INCOMPATIBLESTREAMVERSION                                            Handle        = 0x8001013B\n\tCO_E_FAILEDTOOPENPROCESSTOKEN                                             Handle        = 0x8001013C\n\tCO_E_DECODEFAILED                                                         Handle        = 0x8001013D\n\tCO_E_ACNOTINITIALIZED                                                     Handle        = 0x8001013F\n\tCO_E_CANCEL_DISABLED                                                      Handle        = 0x80010140\n\tRPC_E_UNEXPECTED                                                          Handle        = 0x8001FFFF\n\tERROR_AUDITING_DISABLED                                                   Handle        = 0xC0090001\n\tERROR_ALL_SIDS_FILTERED                                                   Handle        = 0xC0090002\n\tERROR_BIZRULES_NOT_ENABLED                                                Handle        = 0xC0090003\n\tNTE_BAD_UID                                                               Handle        = 0x80090001\n\tNTE_BAD_HASH                                                              Handle        = 0x80090002\n\tNTE_BAD_KEY                                                               Handle        = 0x80090003\n\tNTE_BAD_LEN                                                               Handle        = 0x80090004\n\tNTE_BAD_DATA                                                              Handle        = 0x80090005\n\tNTE_BAD_SIGNATURE                                                         Handle        = 0x80090006\n\tNTE_BAD_VER                                                               Handle        = 0x80090007\n\tNTE_BAD_ALGID                                                             Handle        = 0x80090008\n\tNTE_BAD_FLAGS                                                             Handle        = 0x80090009\n\tNTE_BAD_TYPE                                                              Handle        = 0x8009000A\n\tNTE_BAD_KEY_STATE                                                         Handle        = 0x8009000B\n\tNTE_BAD_HASH_STATE                                                        Handle        = 0x8009000C\n\tNTE_NO_KEY                                                                Handle        = 0x8009000D\n\tNTE_NO_MEMORY                                                             Handle        = 0x8009000E\n\tNTE_EXISTS                                                                Handle        = 0x8009000F\n\tNTE_PERM                                                                  Handle        = 0x80090010\n\tNTE_NOT_FOUND                                                             Handle        = 0x80090011\n\tNTE_DOUBLE_ENCRYPT                                                        Handle        = 0x80090012\n\tNTE_BAD_PROVIDER                                                          Handle        = 0x80090013\n\tNTE_BAD_PROV_TYPE                                                         Handle        = 0x80090014\n\tNTE_BAD_PUBLIC_KEY                                                        Handle        = 0x80090015\n\tNTE_BAD_KEYSET                                                            Handle        = 0x80090016\n\tNTE_PROV_TYPE_NOT_DEF                                                     Handle        = 0x80090017\n\tNTE_PROV_TYPE_ENTRY_BAD                                                   Handle        = 0x80090018\n\tNTE_KEYSET_NOT_DEF                                                        Handle        = 0x80090019\n\tNTE_KEYSET_ENTRY_BAD                                                      Handle        = 0x8009001A\n\tNTE_PROV_TYPE_NO_MATCH                                                    Handle        = 0x8009001B\n\tNTE_SIGNATURE_FILE_BAD                                                    Handle        = 0x8009001C\n\tNTE_PROVIDER_DLL_FAIL                                                     Handle        = 0x8009001D\n\tNTE_PROV_DLL_NOT_FOUND                                                    Handle        = 0x8009001E\n\tNTE_BAD_KEYSET_PARAM                                                      Handle        = 0x8009001F\n\tNTE_FAIL                                                                  Handle        = 0x80090020\n\tNTE_SYS_ERR                                                               Handle        = 0x80090021\n\tNTE_SILENT_CONTEXT                                                        Handle        = 0x80090022\n\tNTE_TOKEN_KEYSET_STORAGE_FULL                                             Handle        = 0x80090023\n\tNTE_TEMPORARY_PROFILE                                                     Handle        = 0x80090024\n\tNTE_FIXEDPARAMETER                                                        Handle        = 0x80090025\n\tNTE_INVALID_HANDLE                                                        Handle        = 0x80090026\n\tNTE_INVALID_PARAMETER                                                     Handle        = 0x80090027\n\tNTE_BUFFER_TOO_SMALL                                                      Handle        = 0x80090028\n\tNTE_NOT_SUPPORTED                                                         Handle        = 0x80090029\n\tNTE_NO_MORE_ITEMS                                                         Handle        = 0x8009002A\n\tNTE_BUFFERS_OVERLAP                                                       Handle        = 0x8009002B\n\tNTE_DECRYPTION_FAILURE                                                    Handle        = 0x8009002C\n\tNTE_INTERNAL_ERROR                                                        Handle        = 0x8009002D\n\tNTE_UI_REQUIRED                                                           Handle        = 0x8009002E\n\tNTE_HMAC_NOT_SUPPORTED                                                    Handle        = 0x8009002F\n\tNTE_DEVICE_NOT_READY                                                      Handle        = 0x80090030\n\tNTE_AUTHENTICATION_IGNORED                                                Handle        = 0x80090031\n\tNTE_VALIDATION_FAILED                                                     Handle        = 0x80090032\n\tNTE_INCORRECT_PASSWORD                                                    Handle        = 0x80090033\n\tNTE_ENCRYPTION_FAILURE                                                    Handle        = 0x80090034\n\tNTE_DEVICE_NOT_FOUND                                                      Handle        = 0x80090035\n\tNTE_USER_CANCELLED                                                        Handle        = 0x80090036\n\tNTE_PASSWORD_CHANGE_REQUIRED                                              Handle        = 0x80090037\n\tNTE_NOT_ACTIVE_CONSOLE                                                    Handle        = 0x80090038\n\tSEC_E_INSUFFICIENT_MEMORY                                                 Handle        = 0x80090300\n\tSEC_E_INVALID_HANDLE                                                      Handle        = 0x80090301\n\tSEC_E_UNSUPPORTED_FUNCTION                                                Handle        = 0x80090302\n\tSEC_E_TARGET_UNKNOWN                                                      Handle        = 0x80090303\n\tSEC_E_INTERNAL_ERROR                                                      Handle        = 0x80090304\n\tSEC_E_SECPKG_NOT_FOUND                                                    Handle        = 0x80090305\n\tSEC_E_NOT_OWNER                                                           Handle        = 0x80090306\n\tSEC_E_CANNOT_INSTALL                                                      Handle        = 0x80090307\n\tSEC_E_INVALID_TOKEN                                                       Handle        = 0x80090308\n\tSEC_E_CANNOT_PACK                                                         Handle        = 0x80090309\n\tSEC_E_QOP_NOT_SUPPORTED                                                   Handle        = 0x8009030A\n\tSEC_E_NO_IMPERSONATION                                                    Handle        = 0x8009030B\n\tSEC_E_LOGON_DENIED                                                        Handle        = 0x8009030C\n\tSEC_E_UNKNOWN_CREDENTIALS                                                 Handle        = 0x8009030D\n\tSEC_E_NO_CREDENTIALS                                                      Handle        = 0x8009030E\n\tSEC_E_MESSAGE_ALTERED                                                     Handle        = 0x8009030F\n\tSEC_E_OUT_OF_SEQUENCE                                                     Handle        = 0x80090310\n\tSEC_E_NO_AUTHENTICATING_AUTHORITY                                         Handle        = 0x80090311\n\tSEC_I_CONTINUE_NEEDED                                                     Handle        = 0x00090312\n\tSEC_I_COMPLETE_NEEDED                                                     Handle        = 0x00090313\n\tSEC_I_COMPLETE_AND_CONTINUE                                               Handle        = 0x00090314\n\tSEC_I_LOCAL_LOGON                                                         Handle        = 0x00090315\n\tSEC_I_GENERIC_EXTENSION_RECEIVED                                          Handle        = 0x00090316\n\tSEC_E_BAD_PKGID                                                           Handle        = 0x80090316\n\tSEC_E_CONTEXT_EXPIRED                                                     Handle        = 0x80090317\n\tSEC_I_CONTEXT_EXPIRED                                                     Handle        = 0x00090317\n\tSEC_E_INCOMPLETE_MESSAGE                                                  Handle        = 0x80090318\n\tSEC_E_INCOMPLETE_CREDENTIALS                                              Handle        = 0x80090320\n\tSEC_E_BUFFER_TOO_SMALL                                                    Handle        = 0x80090321\n\tSEC_I_INCOMPLETE_CREDENTIALS                                              Handle        = 0x00090320\n\tSEC_I_RENEGOTIATE                                                         Handle        = 0x00090321\n\tSEC_E_WRONG_PRINCIPAL                                                     Handle        = 0x80090322\n\tSEC_I_NO_LSA_CONTEXT                                                      Handle        = 0x00090323\n\tSEC_E_TIME_SKEW                                                           Handle        = 0x80090324\n\tSEC_E_UNTRUSTED_ROOT                                                      Handle        = 0x80090325\n\tSEC_E_ILLEGAL_MESSAGE                                                     Handle        = 0x80090326\n\tSEC_E_CERT_UNKNOWN                                                        Handle        = 0x80090327\n\tSEC_E_CERT_EXPIRED                                                        Handle        = 0x80090328\n\tSEC_E_ENCRYPT_FAILURE                                                     Handle        = 0x80090329\n\tSEC_E_DECRYPT_FAILURE                                                     Handle        = 0x80090330\n\tSEC_E_ALGORITHM_MISMATCH                                                  Handle        = 0x80090331\n\tSEC_E_SECURITY_QOS_FAILED                                                 Handle        = 0x80090332\n\tSEC_E_UNFINISHED_CONTEXT_DELETED                                          Handle        = 0x80090333\n\tSEC_E_NO_TGT_REPLY                                                        Handle        = 0x80090334\n\tSEC_E_NO_IP_ADDRESSES                                                     Handle        = 0x80090335\n\tSEC_E_WRONG_CREDENTIAL_HANDLE                                             Handle        = 0x80090336\n\tSEC_E_CRYPTO_SYSTEM_INVALID                                               Handle        = 0x80090337\n\tSEC_E_MAX_REFERRALS_EXCEEDED                                              Handle        = 0x80090338\n\tSEC_E_MUST_BE_KDC                                                         Handle        = 0x80090339\n\tSEC_E_STRONG_CRYPTO_NOT_SUPPORTED                                         Handle        = 0x8009033A\n\tSEC_E_TOO_MANY_PRINCIPALS                                                 Handle        = 0x8009033B\n\tSEC_E_NO_PA_DATA                                                          Handle        = 0x8009033C\n\tSEC_E_PKINIT_NAME_MISMATCH                                                Handle        = 0x8009033D\n\tSEC_E_SMARTCARD_LOGON_REQUIRED                                            Handle        = 0x8009033E\n\tSEC_E_SHUTDOWN_IN_PROGRESS                                                Handle        = 0x8009033F\n\tSEC_E_KDC_INVALID_REQUEST                                                 Handle        = 0x80090340\n\tSEC_E_KDC_UNABLE_TO_REFER                                                 Handle        = 0x80090341\n\tSEC_E_KDC_UNKNOWN_ETYPE                                                   Handle        = 0x80090342\n\tSEC_E_UNSUPPORTED_PREAUTH                                                 Handle        = 0x80090343\n\tSEC_E_DELEGATION_REQUIRED                                                 Handle        = 0x80090345\n\tSEC_E_BAD_BINDINGS                                                        Handle        = 0x80090346\n\tSEC_E_MULTIPLE_ACCOUNTS                                                   Handle        = 0x80090347\n\tSEC_E_NO_KERB_KEY                                                         Handle        = 0x80090348\n\tSEC_E_CERT_WRONG_USAGE                                                    Handle        = 0x80090349\n\tSEC_E_DOWNGRADE_DETECTED                                                  Handle        = 0x80090350\n\tSEC_E_SMARTCARD_CERT_REVOKED                                              Handle        = 0x80090351\n\tSEC_E_ISSUING_CA_UNTRUSTED                                                Handle        = 0x80090352\n\tSEC_E_REVOCATION_OFFLINE_C                                                Handle        = 0x80090353\n\tSEC_E_PKINIT_CLIENT_FAILURE                                               Handle        = 0x80090354\n\tSEC_E_SMARTCARD_CERT_EXPIRED                                              Handle        = 0x80090355\n\tSEC_E_NO_S4U_PROT_SUPPORT                                                 Handle        = 0x80090356\n\tSEC_E_CROSSREALM_DELEGATION_FAILURE                                       Handle        = 0x80090357\n\tSEC_E_REVOCATION_OFFLINE_KDC                                              Handle        = 0x80090358\n\tSEC_E_ISSUING_CA_UNTRUSTED_KDC                                            Handle        = 0x80090359\n\tSEC_E_KDC_CERT_EXPIRED                                                    Handle        = 0x8009035A\n\tSEC_E_KDC_CERT_REVOKED                                                    Handle        = 0x8009035B\n\tSEC_I_SIGNATURE_NEEDED                                                    Handle        = 0x0009035C\n\tSEC_E_INVALID_PARAMETER                                                   Handle        = 0x8009035D\n\tSEC_E_DELEGATION_POLICY                                                   Handle        = 0x8009035E\n\tSEC_E_POLICY_NLTM_ONLY                                                    Handle        = 0x8009035F\n\tSEC_I_NO_RENEGOTIATION                                                    Handle        = 0x00090360\n\tSEC_E_NO_CONTEXT                                                          Handle        = 0x80090361\n\tSEC_E_PKU2U_CERT_FAILURE                                                  Handle        = 0x80090362\n\tSEC_E_MUTUAL_AUTH_FAILED                                                  Handle        = 0x80090363\n\tSEC_I_MESSAGE_FRAGMENT                                                    Handle        = 0x00090364\n\tSEC_E_ONLY_HTTPS_ALLOWED                                                  Handle        = 0x80090365\n\tSEC_I_CONTINUE_NEEDED_MESSAGE_OK                                          Handle        = 0x00090366\n\tSEC_E_APPLICATION_PROTOCOL_MISMATCH                                       Handle        = 0x80090367\n\tSEC_I_ASYNC_CALL_PENDING                                                  Handle        = 0x00090368\n\tSEC_E_INVALID_UPN_NAME                                                    Handle        = 0x80090369\n\tSEC_E_EXT_BUFFER_TOO_SMALL                                                Handle        = 0x8009036A\n\tSEC_E_INSUFFICIENT_BUFFERS                                                Handle        = 0x8009036B\n\tSEC_E_NO_SPM                                                                            = SEC_E_INTERNAL_ERROR\n\tSEC_E_NOT_SUPPORTED                                                                     = SEC_E_UNSUPPORTED_FUNCTION\n\tCRYPT_E_MSG_ERROR                                                         Handle        = 0x80091001\n\tCRYPT_E_UNKNOWN_ALGO                                                      Handle        = 0x80091002\n\tCRYPT_E_OID_FORMAT                                                        Handle        = 0x80091003\n\tCRYPT_E_INVALID_MSG_TYPE                                                  Handle        = 0x80091004\n\tCRYPT_E_UNEXPECTED_ENCODING                                               Handle        = 0x80091005\n\tCRYPT_E_AUTH_ATTR_MISSING                                                 Handle        = 0x80091006\n\tCRYPT_E_HASH_VALUE                                                        Handle        = 0x80091007\n\tCRYPT_E_INVALID_INDEX                                                     Handle        = 0x80091008\n\tCRYPT_E_ALREADY_DECRYPTED                                                 Handle        = 0x80091009\n\tCRYPT_E_NOT_DECRYPTED                                                     Handle        = 0x8009100A\n\tCRYPT_E_RECIPIENT_NOT_FOUND                                               Handle        = 0x8009100B\n\tCRYPT_E_CONTROL_TYPE                                                      Handle        = 0x8009100C\n\tCRYPT_E_ISSUER_SERIALNUMBER                                               Handle        = 0x8009100D\n\tCRYPT_E_SIGNER_NOT_FOUND                                                  Handle        = 0x8009100E\n\tCRYPT_E_ATTRIBUTES_MISSING                                                Handle        = 0x8009100F\n\tCRYPT_E_STREAM_MSG_NOT_READY                                              Handle        = 0x80091010\n\tCRYPT_E_STREAM_INSUFFICIENT_DATA                                          Handle        = 0x80091011\n\tCRYPT_I_NEW_PROTECTION_REQUIRED                                           Handle        = 0x00091012\n\tCRYPT_E_BAD_LEN                                                           Handle        = 0x80092001\n\tCRYPT_E_BAD_ENCODE                                                        Handle        = 0x80092002\n\tCRYPT_E_FILE_ERROR                                                        Handle        = 0x80092003\n\tCRYPT_E_NOT_FOUND                                                         Handle        = 0x80092004\n\tCRYPT_E_EXISTS                                                            Handle        = 0x80092005\n\tCRYPT_E_NO_PROVIDER                                                       Handle        = 0x80092006\n\tCRYPT_E_SELF_SIGNED                                                       Handle        = 0x80092007\n\tCRYPT_E_DELETED_PREV                                                      Handle        = 0x80092008\n\tCRYPT_E_NO_MATCH                                                          Handle        = 0x80092009\n\tCRYPT_E_UNEXPECTED_MSG_TYPE                                               Handle        = 0x8009200A\n\tCRYPT_E_NO_KEY_PROPERTY                                                   Handle        = 0x8009200B\n\tCRYPT_E_NO_DECRYPT_CERT                                                   Handle        = 0x8009200C\n\tCRYPT_E_BAD_MSG                                                           Handle        = 0x8009200D\n\tCRYPT_E_NO_SIGNER                                                         Handle        = 0x8009200E\n\tCRYPT_E_PENDING_CLOSE                                                     Handle        = 0x8009200F\n\tCRYPT_E_REVOKED                                                           Handle        = 0x80092010\n\tCRYPT_E_NO_REVOCATION_DLL                                                 Handle        = 0x80092011\n\tCRYPT_E_NO_REVOCATION_CHECK                                               Handle        = 0x80092012\n\tCRYPT_E_REVOCATION_OFFLINE                                                Handle        = 0x80092013\n\tCRYPT_E_NOT_IN_REVOCATION_DATABASE                                        Handle        = 0x80092014\n\tCRYPT_E_INVALID_NUMERIC_STRING                                            Handle        = 0x80092020\n\tCRYPT_E_INVALID_PRINTABLE_STRING                                          Handle        = 0x80092021\n\tCRYPT_E_INVALID_IA5_STRING                                                Handle        = 0x80092022\n\tCRYPT_E_INVALID_X500_STRING                                               Handle        = 0x80092023\n\tCRYPT_E_NOT_CHAR_STRING                                                   Handle        = 0x80092024\n\tCRYPT_E_FILERESIZED                                                       Handle        = 0x80092025\n\tCRYPT_E_SECURITY_SETTINGS                                                 Handle        = 0x80092026\n\tCRYPT_E_NO_VERIFY_USAGE_DLL                                               Handle        = 0x80092027\n\tCRYPT_E_NO_VERIFY_USAGE_CHECK                                             Handle        = 0x80092028\n\tCRYPT_E_VERIFY_USAGE_OFFLINE                                              Handle        = 0x80092029\n\tCRYPT_E_NOT_IN_CTL                                                        Handle        = 0x8009202A\n\tCRYPT_E_NO_TRUSTED_SIGNER                                                 Handle        = 0x8009202B\n\tCRYPT_E_MISSING_PUBKEY_PARA                                               Handle        = 0x8009202C\n\tCRYPT_E_OBJECT_LOCATOR_OBJECT_NOT_FOUND                                   Handle        = 0x8009202D\n\tCRYPT_E_OSS_ERROR                                                         Handle        = 0x80093000\n\tOSS_MORE_BUF                                                              Handle        = 0x80093001\n\tOSS_NEGATIVE_UINTEGER                                                     Handle        = 0x80093002\n\tOSS_PDU_RANGE                                                             Handle        = 0x80093003\n\tOSS_MORE_INPUT                                                            Handle        = 0x80093004\n\tOSS_DATA_ERROR                                                            Handle        = 0x80093005\n\tOSS_BAD_ARG                                                               Handle        = 0x80093006\n\tOSS_BAD_VERSION                                                           Handle        = 0x80093007\n\tOSS_OUT_MEMORY                                                            Handle        = 0x80093008\n\tOSS_PDU_MISMATCH                                                          Handle        = 0x80093009\n\tOSS_LIMITED                                                               Handle        = 0x8009300A\n\tOSS_BAD_PTR                                                               Handle        = 0x8009300B\n\tOSS_BAD_TIME                                                              Handle        = 0x8009300C\n\tOSS_INDEFINITE_NOT_SUPPORTED                                              Handle        = 0x8009300D\n\tOSS_MEM_ERROR                                                             Handle        = 0x8009300E\n\tOSS_BAD_TABLE                                                             Handle        = 0x8009300F\n\tOSS_TOO_LONG                                                              Handle        = 0x80093010\n\tOSS_CONSTRAINT_VIOLATED                                                   Handle        = 0x80093011\n\tOSS_FATAL_ERROR                                                           Handle        = 0x80093012\n\tOSS_ACCESS_SERIALIZATION_ERROR                                            Handle        = 0x80093013\n\tOSS_NULL_TBL                                                              Handle        = 0x80093014\n\tOSS_NULL_FCN                                                              Handle        = 0x80093015\n\tOSS_BAD_ENCRULES                                                          Handle        = 0x80093016\n\tOSS_UNAVAIL_ENCRULES                                                      Handle        = 0x80093017\n\tOSS_CANT_OPEN_TRACE_WINDOW                                                Handle        = 0x80093018\n\tOSS_UNIMPLEMENTED                                                         Handle        = 0x80093019\n\tOSS_OID_DLL_NOT_LINKED                                                    Handle        = 0x8009301A\n\tOSS_CANT_OPEN_TRACE_FILE                                                  Handle        = 0x8009301B\n\tOSS_TRACE_FILE_ALREADY_OPEN                                               Handle        = 0x8009301C\n\tOSS_TABLE_MISMATCH                                                        Handle        = 0x8009301D\n\tOSS_TYPE_NOT_SUPPORTED                                                    Handle        = 0x8009301E\n\tOSS_REAL_DLL_NOT_LINKED                                                   Handle        = 0x8009301F\n\tOSS_REAL_CODE_NOT_LINKED                                                  Handle        = 0x80093020\n\tOSS_OUT_OF_RANGE                                                          Handle        = 0x80093021\n\tOSS_COPIER_DLL_NOT_LINKED                                                 Handle        = 0x80093022\n\tOSS_CONSTRAINT_DLL_NOT_LINKED                                             Handle        = 0x80093023\n\tOSS_COMPARATOR_DLL_NOT_LINKED                                             Handle        = 0x80093024\n\tOSS_COMPARATOR_CODE_NOT_LINKED                                            Handle        = 0x80093025\n\tOSS_MEM_MGR_DLL_NOT_LINKED                                                Handle        = 0x80093026\n\tOSS_PDV_DLL_NOT_LINKED                                                    Handle        = 0x80093027\n\tOSS_PDV_CODE_NOT_LINKED                                                   Handle        = 0x80093028\n\tOSS_API_DLL_NOT_LINKED                                                    Handle        = 0x80093029\n\tOSS_BERDER_DLL_NOT_LINKED                                                 Handle        = 0x8009302A\n\tOSS_PER_DLL_NOT_LINKED                                                    Handle        = 0x8009302B\n\tOSS_OPEN_TYPE_ERROR                                                       Handle        = 0x8009302C\n\tOSS_MUTEX_NOT_CREATED                                                     Handle        = 0x8009302D\n\tOSS_CANT_CLOSE_TRACE_FILE                                                 Handle        = 0x8009302E\n\tCRYPT_E_ASN1_ERROR                                                        Handle        = 0x80093100\n\tCRYPT_E_ASN1_INTERNAL                                                     Handle        = 0x80093101\n\tCRYPT_E_ASN1_EOD                                                          Handle        = 0x80093102\n\tCRYPT_E_ASN1_CORRUPT                                                      Handle        = 0x80093103\n\tCRYPT_E_ASN1_LARGE                                                        Handle        = 0x80093104\n\tCRYPT_E_ASN1_CONSTRAINT                                                   Handle        = 0x80093105\n\tCRYPT_E_ASN1_MEMORY                                                       Handle        = 0x80093106\n\tCRYPT_E_ASN1_OVERFLOW                                                     Handle        = 0x80093107\n\tCRYPT_E_ASN1_BADPDU                                                       Handle        = 0x80093108\n\tCRYPT_E_ASN1_BADARGS                                                      Handle        = 0x80093109\n\tCRYPT_E_ASN1_BADREAL                                                      Handle        = 0x8009310A\n\tCRYPT_E_ASN1_BADTAG                                                       Handle        = 0x8009310B\n\tCRYPT_E_ASN1_CHOICE                                                       Handle        = 0x8009310C\n\tCRYPT_E_ASN1_RULE                                                         Handle        = 0x8009310D\n\tCRYPT_E_ASN1_UTF8                                                         Handle        = 0x8009310E\n\tCRYPT_E_ASN1_PDU_TYPE                                                     Handle        = 0x80093133\n\tCRYPT_E_ASN1_NYI                                                          Handle        = 0x80093134\n\tCRYPT_E_ASN1_EXTENDED                                                     Handle        = 0x80093201\n\tCRYPT_E_ASN1_NOEOD                                                        Handle        = 0x80093202\n\tCERTSRV_E_BAD_REQUESTSUBJECT                                              Handle        = 0x80094001\n\tCERTSRV_E_NO_REQUEST                                                      Handle        = 0x80094002\n\tCERTSRV_E_BAD_REQUESTSTATUS                                               Handle        = 0x80094003\n\tCERTSRV_E_PROPERTY_EMPTY                                                  Handle        = 0x80094004\n\tCERTSRV_E_INVALID_CA_CERTIFICATE                                          Handle        = 0x80094005\n\tCERTSRV_E_SERVER_SUSPENDED                                                Handle        = 0x80094006\n\tCERTSRV_E_ENCODING_LENGTH                                                 Handle        = 0x80094007\n\tCERTSRV_E_ROLECONFLICT                                                    Handle        = 0x80094008\n\tCERTSRV_E_RESTRICTEDOFFICER                                               Handle        = 0x80094009\n\tCERTSRV_E_KEY_ARCHIVAL_NOT_CONFIGURED                                     Handle        = 0x8009400A\n\tCERTSRV_E_NO_VALID_KRA                                                    Handle        = 0x8009400B\n\tCERTSRV_E_BAD_REQUEST_KEY_ARCHIVAL                                        Handle        = 0x8009400C\n\tCERTSRV_E_NO_CAADMIN_DEFINED                                              Handle        = 0x8009400D\n\tCERTSRV_E_BAD_RENEWAL_CERT_ATTRIBUTE                                      Handle        = 0x8009400E\n\tCERTSRV_E_NO_DB_SESSIONS                                                  Handle        = 0x8009400F\n\tCERTSRV_E_ALIGNMENT_FAULT                                                 Handle        = 0x80094010\n\tCERTSRV_E_ENROLL_DENIED                                                   Handle        = 0x80094011\n\tCERTSRV_E_TEMPLATE_DENIED                                                 Handle        = 0x80094012\n\tCERTSRV_E_DOWNLEVEL_DC_SSL_OR_UPGRADE                                     Handle        = 0x80094013\n\tCERTSRV_E_ADMIN_DENIED_REQUEST                                            Handle        = 0x80094014\n\tCERTSRV_E_NO_POLICY_SERVER                                                Handle        = 0x80094015\n\tCERTSRV_E_WEAK_SIGNATURE_OR_KEY                                           Handle        = 0x80094016\n\tCERTSRV_E_KEY_ATTESTATION_NOT_SUPPORTED                                   Handle        = 0x80094017\n\tCERTSRV_E_ENCRYPTION_CERT_REQUIRED                                        Handle        = 0x80094018\n\tCERTSRV_E_UNSUPPORTED_CERT_TYPE                                           Handle        = 0x80094800\n\tCERTSRV_E_NO_CERT_TYPE                                                    Handle        = 0x80094801\n\tCERTSRV_E_TEMPLATE_CONFLICT                                               Handle        = 0x80094802\n\tCERTSRV_E_SUBJECT_ALT_NAME_REQUIRED                                       Handle        = 0x80094803\n\tCERTSRV_E_ARCHIVED_KEY_REQUIRED                                           Handle        = 0x80094804\n\tCERTSRV_E_SMIME_REQUIRED                                                  Handle        = 0x80094805\n\tCERTSRV_E_BAD_RENEWAL_SUBJECT                                             Handle        = 0x80094806\n\tCERTSRV_E_BAD_TEMPLATE_VERSION                                            Handle        = 0x80094807\n\tCERTSRV_E_TEMPLATE_POLICY_REQUIRED                                        Handle        = 0x80094808\n\tCERTSRV_E_SIGNATURE_POLICY_REQUIRED                                       Handle        = 0x80094809\n\tCERTSRV_E_SIGNATURE_COUNT                                                 Handle        = 0x8009480A\n\tCERTSRV_E_SIGNATURE_REJECTED                                              Handle        = 0x8009480B\n\tCERTSRV_E_ISSUANCE_POLICY_REQUIRED                                        Handle        = 0x8009480C\n\tCERTSRV_E_SUBJECT_UPN_REQUIRED                                            Handle        = 0x8009480D\n\tCERTSRV_E_SUBJECT_DIRECTORY_GUID_REQUIRED                                 Handle        = 0x8009480E\n\tCERTSRV_E_SUBJECT_DNS_REQUIRED                                            Handle        = 0x8009480F\n\tCERTSRV_E_ARCHIVED_KEY_UNEXPECTED                                         Handle        = 0x80094810\n\tCERTSRV_E_KEY_LENGTH                                                      Handle        = 0x80094811\n\tCERTSRV_E_SUBJECT_EMAIL_REQUIRED                                          Handle        = 0x80094812\n\tCERTSRV_E_UNKNOWN_CERT_TYPE                                               Handle        = 0x80094813\n\tCERTSRV_E_CERT_TYPE_OVERLAP                                               Handle        = 0x80094814\n\tCERTSRV_E_TOO_MANY_SIGNATURES                                             Handle        = 0x80094815\n\tCERTSRV_E_RENEWAL_BAD_PUBLIC_KEY                                          Handle        = 0x80094816\n\tCERTSRV_E_INVALID_EK                                                      Handle        = 0x80094817\n\tCERTSRV_E_INVALID_IDBINDING                                               Handle        = 0x80094818\n\tCERTSRV_E_INVALID_ATTESTATION                                             Handle        = 0x80094819\n\tCERTSRV_E_KEY_ATTESTATION                                                 Handle        = 0x8009481A\n\tCERTSRV_E_CORRUPT_KEY_ATTESTATION                                         Handle        = 0x8009481B\n\tCERTSRV_E_EXPIRED_CHALLENGE                                               Handle        = 0x8009481C\n\tCERTSRV_E_INVALID_RESPONSE                                                Handle        = 0x8009481D\n\tCERTSRV_E_INVALID_REQUESTID                                               Handle        = 0x8009481E\n\tCERTSRV_E_REQUEST_PRECERTIFICATE_MISMATCH                                 Handle        = 0x8009481F\n\tCERTSRV_E_PENDING_CLIENT_RESPONSE                                         Handle        = 0x80094820\n\tXENROLL_E_KEY_NOT_EXPORTABLE                                              Handle        = 0x80095000\n\tXENROLL_E_CANNOT_ADD_ROOT_CERT                                            Handle        = 0x80095001\n\tXENROLL_E_RESPONSE_KA_HASH_NOT_FOUND                                      Handle        = 0x80095002\n\tXENROLL_E_RESPONSE_UNEXPECTED_KA_HASH                                     Handle        = 0x80095003\n\tXENROLL_E_RESPONSE_KA_HASH_MISMATCH                                       Handle        = 0x80095004\n\tXENROLL_E_KEYSPEC_SMIME_MISMATCH                                          Handle        = 0x80095005\n\tTRUST_E_SYSTEM_ERROR                                                      Handle        = 0x80096001\n\tTRUST_E_NO_SIGNER_CERT                                                    Handle        = 0x80096002\n\tTRUST_E_COUNTER_SIGNER                                                    Handle        = 0x80096003\n\tTRUST_E_CERT_SIGNATURE                                                    Handle        = 0x80096004\n\tTRUST_E_TIME_STAMP                                                        Handle        = 0x80096005\n\tTRUST_E_BAD_DIGEST                                                        Handle        = 0x80096010\n\tTRUST_E_MALFORMED_SIGNATURE                                               Handle        = 0x80096011\n\tTRUST_E_BASIC_CONSTRAINTS                                                 Handle        = 0x80096019\n\tTRUST_E_FINANCIAL_CRITERIA                                                Handle        = 0x8009601E\n\tMSSIPOTF_E_OUTOFMEMRANGE                                                  Handle        = 0x80097001\n\tMSSIPOTF_E_CANTGETOBJECT                                                  Handle        = 0x80097002\n\tMSSIPOTF_E_NOHEADTABLE                                                    Handle        = 0x80097003\n\tMSSIPOTF_E_BAD_MAGICNUMBER                                                Handle        = 0x80097004\n\tMSSIPOTF_E_BAD_OFFSET_TABLE                                               Handle        = 0x80097005\n\tMSSIPOTF_E_TABLE_TAGORDER                                                 Handle        = 0x80097006\n\tMSSIPOTF_E_TABLE_LONGWORD                                                 Handle        = 0x80097007\n\tMSSIPOTF_E_BAD_FIRST_TABLE_PLACEMENT                                      Handle        = 0x80097008\n\tMSSIPOTF_E_TABLES_OVERLAP                                                 Handle        = 0x80097009\n\tMSSIPOTF_E_TABLE_PADBYTES                                                 Handle        = 0x8009700A\n\tMSSIPOTF_E_FILETOOSMALL                                                   Handle        = 0x8009700B\n\tMSSIPOTF_E_TABLE_CHECKSUM                                                 Handle        = 0x8009700C\n\tMSSIPOTF_E_FILE_CHECKSUM                                                  Handle        = 0x8009700D\n\tMSSIPOTF_E_FAILED_POLICY                                                  Handle        = 0x80097010\n\tMSSIPOTF_E_FAILED_HINTS_CHECK                                             Handle        = 0x80097011\n\tMSSIPOTF_E_NOT_OPENTYPE                                                   Handle        = 0x80097012\n\tMSSIPOTF_E_FILE                                                           Handle        = 0x80097013\n\tMSSIPOTF_E_CRYPT                                                          Handle        = 0x80097014\n\tMSSIPOTF_E_BADVERSION                                                     Handle        = 0x80097015\n\tMSSIPOTF_E_DSIG_STRUCTURE                                                 Handle        = 0x80097016\n\tMSSIPOTF_E_PCONST_CHECK                                                   Handle        = 0x80097017\n\tMSSIPOTF_E_STRUCTURE                                                      Handle        = 0x80097018\n\tERROR_CRED_REQUIRES_CONFIRMATION                                          Handle        = 0x80097019\n\tNTE_OP_OK                                                                 syscall.Errno = 0\n\tTRUST_E_PROVIDER_UNKNOWN                                                  Handle        = 0x800B0001\n\tTRUST_E_ACTION_UNKNOWN                                                    Handle        = 0x800B0002\n\tTRUST_E_SUBJECT_FORM_UNKNOWN                                              Handle        = 0x800B0003\n\tTRUST_E_SUBJECT_NOT_TRUSTED                                               Handle        = 0x800B0004\n\tDIGSIG_E_ENCODE                                                           Handle        = 0x800B0005\n\tDIGSIG_E_DECODE                                                           Handle        = 0x800B0006\n\tDIGSIG_E_EXTENSIBILITY                                                    Handle        = 0x800B0007\n\tDIGSIG_E_CRYPTO                                                           Handle        = 0x800B0008\n\tPERSIST_E_SIZEDEFINITE                                                    Handle        = 0x800B0009\n\tPERSIST_E_SIZEINDEFINITE                                                  Handle        = 0x800B000A\n\tPERSIST_E_NOTSELFSIZING                                                   Handle        = 0x800B000B\n\tTRUST_E_NOSIGNATURE                                                       Handle        = 0x800B0100\n\tCERT_E_EXPIRED                                                            Handle        = 0x800B0101\n\tCERT_E_VALIDITYPERIODNESTING                                              Handle        = 0x800B0102\n\tCERT_E_ROLE                                                               Handle        = 0x800B0103\n\tCERT_E_PATHLENCONST                                                       Handle        = 0x800B0104\n\tCERT_E_CRITICAL                                                           Handle        = 0x800B0105\n\tCERT_E_PURPOSE                                                            Handle        = 0x800B0106\n\tCERT_E_ISSUERCHAINING                                                     Handle        = 0x800B0107\n\tCERT_E_MALFORMED                                                          Handle        = 0x800B0108\n\tCERT_E_UNTRUSTEDROOT                                                      Handle        = 0x800B0109\n\tCERT_E_CHAINING                                                           Handle        = 0x800B010A\n\tTRUST_E_FAIL                                                              Handle        = 0x800B010B\n\tCERT_E_REVOKED                                                            Handle        = 0x800B010C\n\tCERT_E_UNTRUSTEDTESTROOT                                                  Handle        = 0x800B010D\n\tCERT_E_REVOCATION_FAILURE                                                 Handle        = 0x800B010E\n\tCERT_E_CN_NO_MATCH                                                        Handle        = 0x800B010F\n\tCERT_E_WRONG_USAGE                                                        Handle        = 0x800B0110\n\tTRUST_E_EXPLICIT_DISTRUST                                                 Handle        = 0x800B0111\n\tCERT_E_UNTRUSTEDCA                                                        Handle        = 0x800B0112\n\tCERT_E_INVALID_POLICY                                                     Handle        = 0x800B0113\n\tCERT_E_INVALID_NAME                                                       Handle        = 0x800B0114\n\tSPAPI_E_EXPECTED_SECTION_NAME                                             Handle        = 0x800F0000\n\tSPAPI_E_BAD_SECTION_NAME_LINE                                             Handle        = 0x800F0001\n\tSPAPI_E_SECTION_NAME_TOO_LONG                                             Handle        = 0x800F0002\n\tSPAPI_E_GENERAL_SYNTAX                                                    Handle        = 0x800F0003\n\tSPAPI_E_WRONG_INF_STYLE                                                   Handle        = 0x800F0100\n\tSPAPI_E_SECTION_NOT_FOUND                                                 Handle        = 0x800F0101\n\tSPAPI_E_LINE_NOT_FOUND                                                    Handle        = 0x800F0102\n\tSPAPI_E_NO_BACKUP                                                         Handle        = 0x800F0103\n\tSPAPI_E_NO_ASSOCIATED_CLASS                                               Handle        = 0x800F0200\n\tSPAPI_E_CLASS_MISMATCH                                                    Handle        = 0x800F0201\n\tSPAPI_E_DUPLICATE_FOUND                                                   Handle        = 0x800F0202\n\tSPAPI_E_NO_DRIVER_SELECTED                                                Handle        = 0x800F0203\n\tSPAPI_E_KEY_DOES_NOT_EXIST                                                Handle        = 0x800F0204\n\tSPAPI_E_INVALID_DEVINST_NAME                                              Handle        = 0x800F0205\n\tSPAPI_E_INVALID_CLASS                                                     Handle        = 0x800F0206\n\tSPAPI_E_DEVINST_ALREADY_EXISTS                                            Handle        = 0x800F0207\n\tSPAPI_E_DEVINFO_NOT_REGISTERED                                            Handle        = 0x800F0208\n\tSPAPI_E_INVALID_REG_PROPERTY                                              Handle        = 0x800F0209\n\tSPAPI_E_NO_INF                                                            Handle        = 0x800F020A\n\tSPAPI_E_NO_SUCH_DEVINST                                                   Handle        = 0x800F020B\n\tSPAPI_E_CANT_LOAD_CLASS_ICON                                              Handle        = 0x800F020C\n\tSPAPI_E_INVALID_CLASS_INSTALLER                                           Handle        = 0x800F020D\n\tSPAPI_E_DI_DO_DEFAULT                                                     Handle        = 0x800F020E\n\tSPAPI_E_DI_NOFILECOPY                                                     Handle        = 0x800F020F\n\tSPAPI_E_INVALID_HWPROFILE                                                 Handle        = 0x800F0210\n\tSPAPI_E_NO_DEVICE_SELECTED                                                Handle        = 0x800F0211\n\tSPAPI_E_DEVINFO_LIST_LOCKED                                               Handle        = 0x800F0212\n\tSPAPI_E_DEVINFO_DATA_LOCKED                                               Handle        = 0x800F0213\n\tSPAPI_E_DI_BAD_PATH                                                       Handle        = 0x800F0214\n\tSPAPI_E_NO_CLASSINSTALL_PARAMS                                            Handle        = 0x800F0215\n\tSPAPI_E_FILEQUEUE_LOCKED                                                  Handle        = 0x800F0216\n\tSPAPI_E_BAD_SERVICE_INSTALLSECT                                           Handle        = 0x800F0217\n\tSPAPI_E_NO_CLASS_DRIVER_LIST                                              Handle        = 0x800F0218\n\tSPAPI_E_NO_ASSOCIATED_SERVICE                                             Handle        = 0x800F0219\n\tSPAPI_E_NO_DEFAULT_DEVICE_INTERFACE                                       Handle        = 0x800F021A\n\tSPAPI_E_DEVICE_INTERFACE_ACTIVE                                           Handle        = 0x800F021B\n\tSPAPI_E_DEVICE_INTERFACE_REMOVED                                          Handle        = 0x800F021C\n\tSPAPI_E_BAD_INTERFACE_INSTALLSECT                                         Handle        = 0x800F021D\n\tSPAPI_E_NO_SUCH_INTERFACE_CLASS                                           Handle        = 0x800F021E\n\tSPAPI_E_INVALID_REFERENCE_STRING                                          Handle        = 0x800F021F\n\tSPAPI_E_INVALID_MACHINENAME                                               Handle        = 0x800F0220\n\tSPAPI_E_REMOTE_COMM_FAILURE                                               Handle        = 0x800F0221\n\tSPAPI_E_MACHINE_UNAVAILABLE                                               Handle        = 0x800F0222\n\tSPAPI_E_NO_CONFIGMGR_SERVICES                                             Handle        = 0x800F0223\n\tSPAPI_E_INVALID_PROPPAGE_PROVIDER                                         Handle        = 0x800F0224\n\tSPAPI_E_NO_SUCH_DEVICE_INTERFACE                                          Handle        = 0x800F0225\n\tSPAPI_E_DI_POSTPROCESSING_REQUIRED                                        Handle        = 0x800F0226\n\tSPAPI_E_INVALID_COINSTALLER                                               Handle        = 0x800F0227\n\tSPAPI_E_NO_COMPAT_DRIVERS                                                 Handle        = 0x800F0228\n\tSPAPI_E_NO_DEVICE_ICON                                                    Handle        = 0x800F0229\n\tSPAPI_E_INVALID_INF_LOGCONFIG                                             Handle        = 0x800F022A\n\tSPAPI_E_DI_DONT_INSTALL                                                   Handle        = 0x800F022B\n\tSPAPI_E_INVALID_FILTER_DRIVER                                             Handle        = 0x800F022C\n\tSPAPI_E_NON_WINDOWS_NT_DRIVER                                             Handle        = 0x800F022D\n\tSPAPI_E_NON_WINDOWS_DRIVER                                                Handle        = 0x800F022E\n\tSPAPI_E_NO_CATALOG_FOR_OEM_INF                                            Handle        = 0x800F022F\n\tSPAPI_E_DEVINSTALL_QUEUE_NONNATIVE                                        Handle        = 0x800F0230\n\tSPAPI_E_NOT_DISABLEABLE                                                   Handle        = 0x800F0231\n\tSPAPI_E_CANT_REMOVE_DEVINST                                               Handle        = 0x800F0232\n\tSPAPI_E_INVALID_TARGET                                                    Handle        = 0x800F0233\n\tSPAPI_E_DRIVER_NONNATIVE                                                  Handle        = 0x800F0234\n\tSPAPI_E_IN_WOW64                                                          Handle        = 0x800F0235\n\tSPAPI_E_SET_SYSTEM_RESTORE_POINT                                          Handle        = 0x800F0236\n\tSPAPI_E_INCORRECTLY_COPIED_INF                                            Handle        = 0x800F0237\n\tSPAPI_E_SCE_DISABLED                                                      Handle        = 0x800F0238\n\tSPAPI_E_UNKNOWN_EXCEPTION                                                 Handle        = 0x800F0239\n\tSPAPI_E_PNP_REGISTRY_ERROR                                                Handle        = 0x800F023A\n\tSPAPI_E_REMOTE_REQUEST_UNSUPPORTED                                        Handle        = 0x800F023B\n\tSPAPI_E_NOT_AN_INSTALLED_OEM_INF                                          Handle        = 0x800F023C\n\tSPAPI_E_INF_IN_USE_BY_DEVICES                                             Handle        = 0x800F023D\n\tSPAPI_E_DI_FUNCTION_OBSOLETE                                              Handle        = 0x800F023E\n\tSPAPI_E_NO_AUTHENTICODE_CATALOG                                           Handle        = 0x800F023F\n\tSPAPI_E_AUTHENTICODE_DISALLOWED                                           Handle        = 0x800F0240\n\tSPAPI_E_AUTHENTICODE_TRUSTED_PUBLISHER                                    Handle        = 0x800F0241\n\tSPAPI_E_AUTHENTICODE_TRUST_NOT_ESTABLISHED                                Handle        = 0x800F0242\n\tSPAPI_E_AUTHENTICODE_PUBLISHER_NOT_TRUSTED                                Handle        = 0x800F0243\n\tSPAPI_E_SIGNATURE_OSATTRIBUTE_MISMATCH                                    Handle        = 0x800F0244\n\tSPAPI_E_ONLY_VALIDATE_VIA_AUTHENTICODE                                    Handle        = 0x800F0245\n\tSPAPI_E_DEVICE_INSTALLER_NOT_READY                                        Handle        = 0x800F0246\n\tSPAPI_E_DRIVER_STORE_ADD_FAILED                                           Handle        = 0x800F0247\n\tSPAPI_E_DEVICE_INSTALL_BLOCKED                                            Handle        = 0x800F0248\n\tSPAPI_E_DRIVER_INSTALL_BLOCKED                                            Handle        = 0x800F0249\n\tSPAPI_E_WRONG_INF_TYPE                                                    Handle        = 0x800F024A\n\tSPAPI_E_FILE_HASH_NOT_IN_CATALOG                                          Handle        = 0x800F024B\n\tSPAPI_E_DRIVER_STORE_DELETE_FAILED                                        Handle        = 0x800F024C\n\tSPAPI_E_UNRECOVERABLE_STACK_OVERFLOW                                      Handle        = 0x800F0300\n\tSPAPI_E_ERROR_NOT_INSTALLED                                               Handle        = 0x800F1000\n\tSCARD_S_SUCCESS                                                                         = S_OK\n\tSCARD_F_INTERNAL_ERROR                                                    Handle        = 0x80100001\n\tSCARD_E_CANCELLED                                                         Handle        = 0x80100002\n\tSCARD_E_INVALID_HANDLE                                                    Handle        = 0x80100003\n\tSCARD_E_INVALID_PARAMETER                                                 Handle        = 0x80100004\n\tSCARD_E_INVALID_TARGET                                                    Handle        = 0x80100005\n\tSCARD_E_NO_MEMORY                                                         Handle        = 0x80100006\n\tSCARD_F_WAITED_TOO_LONG                                                   Handle        = 0x80100007\n\tSCARD_E_INSUFFICIENT_BUFFER                                               Handle        = 0x80100008\n\tSCARD_E_UNKNOWN_READER                                                    Handle        = 0x80100009\n\tSCARD_E_TIMEOUT                                                           Handle        = 0x8010000A\n\tSCARD_E_SHARING_VIOLATION                                                 Handle        = 0x8010000B\n\tSCARD_E_NO_SMARTCARD                                                      Handle        = 0x8010000C\n\tSCARD_E_UNKNOWN_CARD                                                      Handle        = 0x8010000D\n\tSCARD_E_CANT_DISPOSE                                                      Handle        = 0x8010000E\n\tSCARD_E_PROTO_MISMATCH                                                    Handle        = 0x8010000F\n\tSCARD_E_NOT_READY                                                         Handle        = 0x80100010\n\tSCARD_E_INVALID_VALUE                                                     Handle        = 0x80100011\n\tSCARD_E_SYSTEM_CANCELLED                                                  Handle        = 0x80100012\n\tSCARD_F_COMM_ERROR                                                        Handle        = 0x80100013\n\tSCARD_F_UNKNOWN_ERROR                                                     Handle        = 0x80100014\n\tSCARD_E_INVALID_ATR                                                       Handle        = 0x80100015\n\tSCARD_E_NOT_TRANSACTED                                                    Handle        = 0x80100016\n\tSCARD_E_READER_UNAVAILABLE                                                Handle        = 0x80100017\n\tSCARD_P_SHUTDOWN                                                          Handle        = 0x80100018\n\tSCARD_E_PCI_TOO_SMALL                                                     Handle        = 0x80100019\n\tSCARD_E_READER_UNSUPPORTED                                                Handle        = 0x8010001A\n\tSCARD_E_DUPLICATE_READER                                                  Handle        = 0x8010001B\n\tSCARD_E_CARD_UNSUPPORTED                                                  Handle        = 0x8010001C\n\tSCARD_E_NO_SERVICE                                                        Handle        = 0x8010001D\n\tSCARD_E_SERVICE_STOPPED                                                   Handle        = 0x8010001E\n\tSCARD_E_UNEXPECTED                                                        Handle        = 0x8010001F\n\tSCARD_E_ICC_INSTALLATION                                                  Handle        = 0x80100020\n\tSCARD_E_ICC_CREATEORDER                                                   Handle        = 0x80100021\n\tSCARD_E_UNSUPPORTED_FEATURE                                               Handle        = 0x80100022\n\tSCARD_E_DIR_NOT_FOUND                                                     Handle        = 0x80100023\n\tSCARD_E_FILE_NOT_FOUND                                                    Handle        = 0x80100024\n\tSCARD_E_NO_DIR                                                            Handle        = 0x80100025\n\tSCARD_E_NO_FILE                                                           Handle        = 0x80100026\n\tSCARD_E_NO_ACCESS                                                         Handle        = 0x80100027\n\tSCARD_E_WRITE_TOO_MANY                                                    Handle        = 0x80100028\n\tSCARD_E_BAD_SEEK                                                          Handle        = 0x80100029\n\tSCARD_E_INVALID_CHV                                                       Handle        = 0x8010002A\n\tSCARD_E_UNKNOWN_RES_MNG                                                   Handle        = 0x8010002B\n\tSCARD_E_NO_SUCH_CERTIFICATE                                               Handle        = 0x8010002C\n\tSCARD_E_CERTIFICATE_UNAVAILABLE                                           Handle        = 0x8010002D\n\tSCARD_E_NO_READERS_AVAILABLE                                              Handle        = 0x8010002E\n\tSCARD_E_COMM_DATA_LOST                                                    Handle        = 0x8010002F\n\tSCARD_E_NO_KEY_CONTAINER                                                  Handle        = 0x80100030\n\tSCARD_E_SERVER_TOO_BUSY                                                   Handle        = 0x80100031\n\tSCARD_E_PIN_CACHE_EXPIRED                                                 Handle        = 0x80100032\n\tSCARD_E_NO_PIN_CACHE                                                      Handle        = 0x80100033\n\tSCARD_E_READ_ONLY_CARD                                                    Handle        = 0x80100034\n\tSCARD_W_UNSUPPORTED_CARD                                                  Handle        = 0x80100065\n\tSCARD_W_UNRESPONSIVE_CARD                                                 Handle        = 0x80100066\n\tSCARD_W_UNPOWERED_CARD                                                    Handle        = 0x80100067\n\tSCARD_W_RESET_CARD                                                        Handle        = 0x80100068\n\tSCARD_W_REMOVED_CARD                                                      Handle        = 0x80100069\n\tSCARD_W_SECURITY_VIOLATION                                                Handle        = 0x8010006A\n\tSCARD_W_WRONG_CHV                                                         Handle        = 0x8010006B\n\tSCARD_W_CHV_BLOCKED                                                       Handle        = 0x8010006C\n\tSCARD_W_EOF                                                               Handle        = 0x8010006D\n\tSCARD_W_CANCELLED_BY_USER                                                 Handle        = 0x8010006E\n\tSCARD_W_CARD_NOT_AUTHENTICATED                                            Handle        = 0x8010006F\n\tSCARD_W_CACHE_ITEM_NOT_FOUND                                              Handle        = 0x80100070\n\tSCARD_W_CACHE_ITEM_STALE                                                  Handle        = 0x80100071\n\tSCARD_W_CACHE_ITEM_TOO_BIG                                                Handle        = 0x80100072\n\tCOMADMIN_E_OBJECTERRORS                                                   Handle        = 0x80110401\n\tCOMADMIN_E_OBJECTINVALID                                                  Handle        = 0x80110402\n\tCOMADMIN_E_KEYMISSING                                                     Handle        = 0x80110403\n\tCOMADMIN_E_ALREADYINSTALLED                                               Handle        = 0x80110404\n\tCOMADMIN_E_APP_FILE_WRITEFAIL                                             Handle        = 0x80110407\n\tCOMADMIN_E_APP_FILE_READFAIL                                              Handle        = 0x80110408\n\tCOMADMIN_E_APP_FILE_VERSION                                               Handle        = 0x80110409\n\tCOMADMIN_E_BADPATH                                                        Handle        = 0x8011040A\n\tCOMADMIN_E_APPLICATIONEXISTS                                              Handle        = 0x8011040B\n\tCOMADMIN_E_ROLEEXISTS                                                     Handle        = 0x8011040C\n\tCOMADMIN_E_CANTCOPYFILE                                                   Handle        = 0x8011040D\n\tCOMADMIN_E_NOUSER                                                         Handle        = 0x8011040F\n\tCOMADMIN_E_INVALIDUSERIDS                                                 Handle        = 0x80110410\n\tCOMADMIN_E_NOREGISTRYCLSID                                                Handle        = 0x80110411\n\tCOMADMIN_E_BADREGISTRYPROGID                                              Handle        = 0x80110412\n\tCOMADMIN_E_AUTHENTICATIONLEVEL                                            Handle        = 0x80110413\n\tCOMADMIN_E_USERPASSWDNOTVALID                                             Handle        = 0x80110414\n\tCOMADMIN_E_CLSIDORIIDMISMATCH                                             Handle        = 0x80110418\n\tCOMADMIN_E_REMOTEINTERFACE                                                Handle        = 0x80110419\n\tCOMADMIN_E_DLLREGISTERSERVER                                              Handle        = 0x8011041A\n\tCOMADMIN_E_NOSERVERSHARE                                                  Handle        = 0x8011041B\n\tCOMADMIN_E_DLLLOADFAILED                                                  Handle        = 0x8011041D\n\tCOMADMIN_E_BADREGISTRYLIBID                                               Handle        = 0x8011041E\n\tCOMADMIN_E_APPDIRNOTFOUND                                                 Handle        = 0x8011041F\n\tCOMADMIN_E_REGISTRARFAILED                                                Handle        = 0x80110423\n\tCOMADMIN_E_COMPFILE_DOESNOTEXIST                                          Handle        = 0x80110424\n\tCOMADMIN_E_COMPFILE_LOADDLLFAIL                                           Handle        = 0x80110425\n\tCOMADMIN_E_COMPFILE_GETCLASSOBJ                                           Handle        = 0x80110426\n\tCOMADMIN_E_COMPFILE_CLASSNOTAVAIL                                         Handle        = 0x80110427\n\tCOMADMIN_E_COMPFILE_BADTLB                                                Handle        = 0x80110428\n\tCOMADMIN_E_COMPFILE_NOTINSTALLABLE                                        Handle        = 0x80110429\n\tCOMADMIN_E_NOTCHANGEABLE                                                  Handle        = 0x8011042A\n\tCOMADMIN_E_NOTDELETEABLE                                                  Handle        = 0x8011042B\n\tCOMADMIN_E_SESSION                                                        Handle        = 0x8011042C\n\tCOMADMIN_E_COMP_MOVE_LOCKED                                               Handle        = 0x8011042D\n\tCOMADMIN_E_COMP_MOVE_BAD_DEST                                             Handle        = 0x8011042E\n\tCOMADMIN_E_REGISTERTLB                                                    Handle        = 0x80110430\n\tCOMADMIN_E_SYSTEMAPP                                                      Handle        = 0x80110433\n\tCOMADMIN_E_COMPFILE_NOREGISTRAR                                           Handle        = 0x80110434\n\tCOMADMIN_E_COREQCOMPINSTALLED                                             Handle        = 0x80110435\n\tCOMADMIN_E_SERVICENOTINSTALLED                                            Handle        = 0x80110436\n\tCOMADMIN_E_PROPERTYSAVEFAILED                                             Handle        = 0x80110437\n\tCOMADMIN_E_OBJECTEXISTS                                                   Handle        = 0x80110438\n\tCOMADMIN_E_COMPONENTEXISTS                                                Handle        = 0x80110439\n\tCOMADMIN_E_REGFILE_CORRUPT                                                Handle        = 0x8011043B\n\tCOMADMIN_E_PROPERTY_OVERFLOW                                              Handle        = 0x8011043C\n\tCOMADMIN_E_NOTINREGISTRY                                                  Handle        = 0x8011043E\n\tCOMADMIN_E_OBJECTNOTPOOLABLE                                              Handle        = 0x8011043F\n\tCOMADMIN_E_APPLID_MATCHES_CLSID                                           Handle        = 0x80110446\n\tCOMADMIN_E_ROLE_DOES_NOT_EXIST                                            Handle        = 0x80110447\n\tCOMADMIN_E_START_APP_NEEDS_COMPONENTS                                     Handle        = 0x80110448\n\tCOMADMIN_E_REQUIRES_DIFFERENT_PLATFORM                                    Handle        = 0x80110449\n\tCOMADMIN_E_CAN_NOT_EXPORT_APP_PROXY                                       Handle        = 0x8011044A\n\tCOMADMIN_E_CAN_NOT_START_APP                                              Handle        = 0x8011044B\n\tCOMADMIN_E_CAN_NOT_EXPORT_SYS_APP                                         Handle        = 0x8011044C\n\tCOMADMIN_E_CANT_SUBSCRIBE_TO_COMPONENT                                    Handle        = 0x8011044D\n\tCOMADMIN_E_EVENTCLASS_CANT_BE_SUBSCRIBER                                  Handle        = 0x8011044E\n\tCOMADMIN_E_LIB_APP_PROXY_INCOMPATIBLE                                     Handle        = 0x8011044F\n\tCOMADMIN_E_BASE_PARTITION_ONLY                                            Handle        = 0x80110450\n\tCOMADMIN_E_START_APP_DISABLED                                             Handle        = 0x80110451\n\tCOMADMIN_E_CAT_DUPLICATE_PARTITION_NAME                                   Handle        = 0x80110457\n\tCOMADMIN_E_CAT_INVALID_PARTITION_NAME                                     Handle        = 0x80110458\n\tCOMADMIN_E_CAT_PARTITION_IN_USE                                           Handle        = 0x80110459\n\tCOMADMIN_E_FILE_PARTITION_DUPLICATE_FILES                                 Handle        = 0x8011045A\n\tCOMADMIN_E_CAT_IMPORTED_COMPONENTS_NOT_ALLOWED                            Handle        = 0x8011045B\n\tCOMADMIN_E_AMBIGUOUS_APPLICATION_NAME                                     Handle        = 0x8011045C\n\tCOMADMIN_E_AMBIGUOUS_PARTITION_NAME                                       Handle        = 0x8011045D\n\tCOMADMIN_E_REGDB_NOTINITIALIZED                                           Handle        = 0x80110472\n\tCOMADMIN_E_REGDB_NOTOPEN                                                  Handle        = 0x80110473\n\tCOMADMIN_E_REGDB_SYSTEMERR                                                Handle        = 0x80110474\n\tCOMADMIN_E_REGDB_ALREADYRUNNING                                           Handle        = 0x80110475\n\tCOMADMIN_E_MIG_VERSIONNOTSUPPORTED                                        Handle        = 0x80110480\n\tCOMADMIN_E_MIG_SCHEMANOTFOUND                                             Handle        = 0x80110481\n\tCOMADMIN_E_CAT_BITNESSMISMATCH                                            Handle        = 0x80110482\n\tCOMADMIN_E_CAT_UNACCEPTABLEBITNESS                                        Handle        = 0x80110483\n\tCOMADMIN_E_CAT_WRONGAPPBITNESS                                            Handle        = 0x80110484\n\tCOMADMIN_E_CAT_PAUSE_RESUME_NOT_SUPPORTED                                 Handle        = 0x80110485\n\tCOMADMIN_E_CAT_SERVERFAULT                                                Handle        = 0x80110486\n\tCOMQC_E_APPLICATION_NOT_QUEUED                                            Handle        = 0x80110600\n\tCOMQC_E_NO_QUEUEABLE_INTERFACES                                           Handle        = 0x80110601\n\tCOMQC_E_QUEUING_SERVICE_NOT_AVAILABLE                                     Handle        = 0x80110602\n\tCOMQC_E_NO_IPERSISTSTREAM                                                 Handle        = 0x80110603\n\tCOMQC_E_BAD_MESSAGE                                                       Handle        = 0x80110604\n\tCOMQC_E_UNAUTHENTICATED                                                   Handle        = 0x80110605\n\tCOMQC_E_UNTRUSTED_ENQUEUER                                                Handle        = 0x80110606\n\tMSDTC_E_DUPLICATE_RESOURCE                                                Handle        = 0x80110701\n\tCOMADMIN_E_OBJECT_PARENT_MISSING                                          Handle        = 0x80110808\n\tCOMADMIN_E_OBJECT_DOES_NOT_EXIST                                          Handle        = 0x80110809\n\tCOMADMIN_E_APP_NOT_RUNNING                                                Handle        = 0x8011080A\n\tCOMADMIN_E_INVALID_PARTITION                                              Handle        = 0x8011080B\n\tCOMADMIN_E_SVCAPP_NOT_POOLABLE_OR_RECYCLABLE                              Handle        = 0x8011080D\n\tCOMADMIN_E_USER_IN_SET                                                    Handle        = 0x8011080E\n\tCOMADMIN_E_CANTRECYCLELIBRARYAPPS                                         Handle        = 0x8011080F\n\tCOMADMIN_E_CANTRECYCLESERVICEAPPS                                         Handle        = 0x80110811\n\tCOMADMIN_E_PROCESSALREADYRECYCLED                                         Handle        = 0x80110812\n\tCOMADMIN_E_PAUSEDPROCESSMAYNOTBERECYCLED                                  Handle        = 0x80110813\n\tCOMADMIN_E_CANTMAKEINPROCSERVICE                                          Handle        = 0x80110814\n\tCOMADMIN_E_PROGIDINUSEBYCLSID                                             Handle        = 0x80110815\n\tCOMADMIN_E_DEFAULT_PARTITION_NOT_IN_SET                                   Handle        = 0x80110816\n\tCOMADMIN_E_RECYCLEDPROCESSMAYNOTBEPAUSED                                  Handle        = 0x80110817\n\tCOMADMIN_E_PARTITION_ACCESSDENIED                                         Handle        = 0x80110818\n\tCOMADMIN_E_PARTITION_MSI_ONLY                                             Handle        = 0x80110819\n\tCOMADMIN_E_LEGACYCOMPS_NOT_ALLOWED_IN_1_0_FORMAT                          Handle        = 0x8011081A\n\tCOMADMIN_E_LEGACYCOMPS_NOT_ALLOWED_IN_NONBASE_PARTITIONS                  Handle        = 0x8011081B\n\tCOMADMIN_E_COMP_MOVE_SOURCE                                               Handle        = 0x8011081C\n\tCOMADMIN_E_COMP_MOVE_DEST                                                 Handle        = 0x8011081D\n\tCOMADMIN_E_COMP_MOVE_PRIVATE                                              Handle        = 0x8011081E\n\tCOMADMIN_E_BASEPARTITION_REQUIRED_IN_SET                                  Handle        = 0x8011081F\n\tCOMADMIN_E_CANNOT_ALIAS_EVENTCLASS                                        Handle        = 0x80110820\n\tCOMADMIN_E_PRIVATE_ACCESSDENIED                                           Handle        = 0x80110821\n\tCOMADMIN_E_SAFERINVALID                                                   Handle        = 0x80110822\n\tCOMADMIN_E_REGISTRY_ACCESSDENIED                                          Handle        = 0x80110823\n\tCOMADMIN_E_PARTITIONS_DISABLED                                            Handle        = 0x80110824\n\tWER_S_REPORT_DEBUG                                                        Handle        = 0x001B0000\n\tWER_S_REPORT_UPLOADED                                                     Handle        = 0x001B0001\n\tWER_S_REPORT_QUEUED                                                       Handle        = 0x001B0002\n\tWER_S_DISABLED                                                            Handle        = 0x001B0003\n\tWER_S_SUSPENDED_UPLOAD                                                    Handle        = 0x001B0004\n\tWER_S_DISABLED_QUEUE                                                      Handle        = 0x001B0005\n\tWER_S_DISABLED_ARCHIVE                                                    Handle        = 0x001B0006\n\tWER_S_REPORT_ASYNC                                                        Handle        = 0x001B0007\n\tWER_S_IGNORE_ASSERT_INSTANCE                                              Handle        = 0x001B0008\n\tWER_S_IGNORE_ALL_ASSERTS                                                  Handle        = 0x001B0009\n\tWER_S_ASSERT_CONTINUE                                                     Handle        = 0x001B000A\n\tWER_S_THROTTLED                                                           Handle        = 0x001B000B\n\tWER_S_REPORT_UPLOADED_CAB                                                 Handle        = 0x001B000C\n\tWER_E_CRASH_FAILURE                                                       Handle        = 0x801B8000\n\tWER_E_CANCELED                                                            Handle        = 0x801B8001\n\tWER_E_NETWORK_FAILURE                                                     Handle        = 0x801B8002\n\tWER_E_NOT_INITIALIZED                                                     Handle        = 0x801B8003\n\tWER_E_ALREADY_REPORTING                                                   Handle        = 0x801B8004\n\tWER_E_DUMP_THROTTLED                                                      Handle        = 0x801B8005\n\tWER_E_INSUFFICIENT_CONSENT                                                Handle        = 0x801B8006\n\tWER_E_TOO_HEAVY                                                           Handle        = 0x801B8007\n\tERROR_FLT_IO_COMPLETE                                                     Handle        = 0x001F0001\n\tERROR_FLT_NO_HANDLER_DEFINED                                              Handle        = 0x801F0001\n\tERROR_FLT_CONTEXT_ALREADY_DEFINED                                         Handle        = 0x801F0002\n\tERROR_FLT_INVALID_ASYNCHRONOUS_REQUEST                                    Handle        = 0x801F0003\n\tERROR_FLT_DISALLOW_FAST_IO                                                Handle        = 0x801F0004\n\tERROR_FLT_INVALID_NAME_REQUEST                                            Handle        = 0x801F0005\n\tERROR_FLT_NOT_SAFE_TO_POST_OPERATION                                      Handle        = 0x801F0006\n\tERROR_FLT_NOT_INITIALIZED                                                 Handle        = 0x801F0007\n\tERROR_FLT_FILTER_NOT_READY                                                Handle        = 0x801F0008\n\tERROR_FLT_POST_OPERATION_CLEANUP                                          Handle        = 0x801F0009\n\tERROR_FLT_INTERNAL_ERROR                                                  Handle        = 0x801F000A\n\tERROR_FLT_DELETING_OBJECT                                                 Handle        = 0x801F000B\n\tERROR_FLT_MUST_BE_NONPAGED_POOL                                           Handle        = 0x801F000C\n\tERROR_FLT_DUPLICATE_ENTRY                                                 Handle        = 0x801F000D\n\tERROR_FLT_CBDQ_DISABLED                                                   Handle        = 0x801F000E\n\tERROR_FLT_DO_NOT_ATTACH                                                   Handle        = 0x801F000F\n\tERROR_FLT_DO_NOT_DETACH                                                   Handle        = 0x801F0010\n\tERROR_FLT_INSTANCE_ALTITUDE_COLLISION                                     Handle        = 0x801F0011\n\tERROR_FLT_INSTANCE_NAME_COLLISION                                         Handle        = 0x801F0012\n\tERROR_FLT_FILTER_NOT_FOUND                                                Handle        = 0x801F0013\n\tERROR_FLT_VOLUME_NOT_FOUND                                                Handle        = 0x801F0014\n\tERROR_FLT_INSTANCE_NOT_FOUND                                              Handle        = 0x801F0015\n\tERROR_FLT_CONTEXT_ALLOCATION_NOT_FOUND                                    Handle        = 0x801F0016\n\tERROR_FLT_INVALID_CONTEXT_REGISTRATION                                    Handle        = 0x801F0017\n\tERROR_FLT_NAME_CACHE_MISS                                                 Handle        = 0x801F0018\n\tERROR_FLT_NO_DEVICE_OBJECT                                                Handle        = 0x801F0019\n\tERROR_FLT_VOLUME_ALREADY_MOUNTED                                          Handle        = 0x801F001A\n\tERROR_FLT_ALREADY_ENLISTED                                                Handle        = 0x801F001B\n\tERROR_FLT_CONTEXT_ALREADY_LINKED                                          Handle        = 0x801F001C\n\tERROR_FLT_NO_WAITER_FOR_REPLY                                             Handle        = 0x801F0020\n\tERROR_FLT_REGISTRATION_BUSY                                               Handle        = 0x801F0023\n\tERROR_HUNG_DISPLAY_DRIVER_THREAD                                          Handle        = 0x80260001\n\tDWM_E_COMPOSITIONDISABLED                                                 Handle        = 0x80263001\n\tDWM_E_REMOTING_NOT_SUPPORTED                                              Handle        = 0x80263002\n\tDWM_E_NO_REDIRECTION_SURFACE_AVAILABLE                                    Handle        = 0x80263003\n\tDWM_E_NOT_QUEUING_PRESENTS                                                Handle        = 0x80263004\n\tDWM_E_ADAPTER_NOT_FOUND                                                   Handle        = 0x80263005\n\tDWM_S_GDI_REDIRECTION_SURFACE                                             Handle        = 0x00263005\n\tDWM_E_TEXTURE_TOO_LARGE                                                   Handle        = 0x80263007\n\tDWM_S_GDI_REDIRECTION_SURFACE_BLT_VIA_GDI                                 Handle        = 0x00263008\n\tERROR_MONITOR_NO_DESCRIPTOR                                               Handle        = 0x00261001\n\tERROR_MONITOR_UNKNOWN_DESCRIPTOR_FORMAT                                   Handle        = 0x00261002\n\tERROR_MONITOR_INVALID_DESCRIPTOR_CHECKSUM                                 Handle        = 0xC0261003\n\tERROR_MONITOR_INVALID_STANDARD_TIMING_BLOCK                               Handle        = 0xC0261004\n\tERROR_MONITOR_WMI_DATABLOCK_REGISTRATION_FAILED                           Handle        = 0xC0261005\n\tERROR_MONITOR_INVALID_SERIAL_NUMBER_MONDSC_BLOCK                          Handle        = 0xC0261006\n\tERROR_MONITOR_INVALID_USER_FRIENDLY_MONDSC_BLOCK                          Handle        = 0xC0261007\n\tERROR_MONITOR_NO_MORE_DESCRIPTOR_DATA                                     Handle        = 0xC0261008\n\tERROR_MONITOR_INVALID_DETAILED_TIMING_BLOCK                               Handle        = 0xC0261009\n\tERROR_MONITOR_INVALID_MANUFACTURE_DATE                                    Handle        = 0xC026100A\n\tERROR_GRAPHICS_NOT_EXCLUSIVE_MODE_OWNER                                   Handle        = 0xC0262000\n\tERROR_GRAPHICS_INSUFFICIENT_DMA_BUFFER                                    Handle        = 0xC0262001\n\tERROR_GRAPHICS_INVALID_DISPLAY_ADAPTER                                    Handle        = 0xC0262002\n\tERROR_GRAPHICS_ADAPTER_WAS_RESET                                          Handle        = 0xC0262003\n\tERROR_GRAPHICS_INVALID_DRIVER_MODEL                                       Handle        = 0xC0262004\n\tERROR_GRAPHICS_PRESENT_MODE_CHANGED                                       Handle        = 0xC0262005\n\tERROR_GRAPHICS_PRESENT_OCCLUDED                                           Handle        = 0xC0262006\n\tERROR_GRAPHICS_PRESENT_DENIED                                             Handle        = 0xC0262007\n\tERROR_GRAPHICS_CANNOTCOLORCONVERT                                         Handle        = 0xC0262008\n\tERROR_GRAPHICS_DRIVER_MISMATCH                                            Handle        = 0xC0262009\n\tERROR_GRAPHICS_PARTIAL_DATA_POPULATED                                     Handle        = 0x4026200A\n\tERROR_GRAPHICS_PRESENT_REDIRECTION_DISABLED                               Handle        = 0xC026200B\n\tERROR_GRAPHICS_PRESENT_UNOCCLUDED                                         Handle        = 0xC026200C\n\tERROR_GRAPHICS_WINDOWDC_NOT_AVAILABLE                                     Handle        = 0xC026200D\n\tERROR_GRAPHICS_WINDOWLESS_PRESENT_DISABLED                                Handle        = 0xC026200E\n\tERROR_GRAPHICS_PRESENT_INVALID_WINDOW                                     Handle        = 0xC026200F\n\tERROR_GRAPHICS_PRESENT_BUFFER_NOT_BOUND                                   Handle        = 0xC0262010\n\tERROR_GRAPHICS_VAIL_STATE_CHANGED                                         Handle        = 0xC0262011\n\tERROR_GRAPHICS_INDIRECT_DISPLAY_ABANDON_SWAPCHAIN                         Handle        = 0xC0262012\n\tERROR_GRAPHICS_INDIRECT_DISPLAY_DEVICE_STOPPED                            Handle        = 0xC0262013\n\tERROR_GRAPHICS_NO_VIDEO_MEMORY                                            Handle        = 0xC0262100\n\tERROR_GRAPHICS_CANT_LOCK_MEMORY                                           Handle        = 0xC0262101\n\tERROR_GRAPHICS_ALLOCATION_BUSY                                            Handle        = 0xC0262102\n\tERROR_GRAPHICS_TOO_MANY_REFERENCES                                        Handle        = 0xC0262103\n\tERROR_GRAPHICS_TRY_AGAIN_LATER                                            Handle        = 0xC0262104\n\tERROR_GRAPHICS_TRY_AGAIN_NOW                                              Handle        = 0xC0262105\n\tERROR_GRAPHICS_ALLOCATION_INVALID                                         Handle        = 0xC0262106\n\tERROR_GRAPHICS_UNSWIZZLING_APERTURE_UNAVAILABLE                           Handle        = 0xC0262107\n\tERROR_GRAPHICS_UNSWIZZLING_APERTURE_UNSUPPORTED                           Handle        = 0xC0262108\n\tERROR_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION                               Handle        = 0xC0262109\n\tERROR_GRAPHICS_INVALID_ALLOCATION_USAGE                                   Handle        = 0xC0262110\n\tERROR_GRAPHICS_CANT_RENDER_LOCKED_ALLOCATION                              Handle        = 0xC0262111\n\tERROR_GRAPHICS_ALLOCATION_CLOSED                                          Handle        = 0xC0262112\n\tERROR_GRAPHICS_INVALID_ALLOCATION_INSTANCE                                Handle        = 0xC0262113\n\tERROR_GRAPHICS_INVALID_ALLOCATION_HANDLE                                  Handle        = 0xC0262114\n\tERROR_GRAPHICS_WRONG_ALLOCATION_DEVICE                                    Handle        = 0xC0262115\n\tERROR_GRAPHICS_ALLOCATION_CONTENT_LOST                                    Handle        = 0xC0262116\n\tERROR_GRAPHICS_GPU_EXCEPTION_ON_DEVICE                                    Handle        = 0xC0262200\n\tERROR_GRAPHICS_SKIP_ALLOCATION_PREPARATION                                Handle        = 0x40262201\n\tERROR_GRAPHICS_INVALID_VIDPN_TOPOLOGY                                     Handle        = 0xC0262300\n\tERROR_GRAPHICS_VIDPN_TOPOLOGY_NOT_SUPPORTED                               Handle        = 0xC0262301\n\tERROR_GRAPHICS_VIDPN_TOPOLOGY_CURRENTLY_NOT_SUPPORTED                     Handle        = 0xC0262302\n\tERROR_GRAPHICS_INVALID_VIDPN                                              Handle        = 0xC0262303\n\tERROR_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE                               Handle        = 0xC0262304\n\tERROR_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET                               Handle        = 0xC0262305\n\tERROR_GRAPHICS_VIDPN_MODALITY_NOT_SUPPORTED                               Handle        = 0xC0262306\n\tERROR_GRAPHICS_MODE_NOT_PINNED                                            Handle        = 0x00262307\n\tERROR_GRAPHICS_INVALID_VIDPN_SOURCEMODESET                                Handle        = 0xC0262308\n\tERROR_GRAPHICS_INVALID_VIDPN_TARGETMODESET                                Handle        = 0xC0262309\n\tERROR_GRAPHICS_INVALID_FREQUENCY                                          Handle        = 0xC026230A\n\tERROR_GRAPHICS_INVALID_ACTIVE_REGION                                      Handle        = 0xC026230B\n\tERROR_GRAPHICS_INVALID_TOTAL_REGION                                       Handle        = 0xC026230C\n\tERROR_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE_MODE                          Handle        = 0xC0262310\n\tERROR_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET_MODE                          Handle        = 0xC0262311\n\tERROR_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET                             Handle        = 0xC0262312\n\tERROR_GRAPHICS_PATH_ALREADY_IN_TOPOLOGY                                   Handle        = 0xC0262313\n\tERROR_GRAPHICS_MODE_ALREADY_IN_MODESET                                    Handle        = 0xC0262314\n\tERROR_GRAPHICS_INVALID_VIDEOPRESENTSOURCESET                              Handle        = 0xC0262315\n\tERROR_GRAPHICS_INVALID_VIDEOPRESENTTARGETSET                              Handle        = 0xC0262316\n\tERROR_GRAPHICS_SOURCE_ALREADY_IN_SET                                      Handle        = 0xC0262317\n\tERROR_GRAPHICS_TARGET_ALREADY_IN_SET                                      Handle        = 0xC0262318\n\tERROR_GRAPHICS_INVALID_VIDPN_PRESENT_PATH                                 Handle        = 0xC0262319\n\tERROR_GRAPHICS_NO_RECOMMENDED_VIDPN_TOPOLOGY                              Handle        = 0xC026231A\n\tERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGESET                          Handle        = 0xC026231B\n\tERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE                             Handle        = 0xC026231C\n\tERROR_GRAPHICS_FREQUENCYRANGE_NOT_IN_SET                                  Handle        = 0xC026231D\n\tERROR_GRAPHICS_NO_PREFERRED_MODE                                          Handle        = 0x0026231E\n\tERROR_GRAPHICS_FREQUENCYRANGE_ALREADY_IN_SET                              Handle        = 0xC026231F\n\tERROR_GRAPHICS_STALE_MODESET                                              Handle        = 0xC0262320\n\tERROR_GRAPHICS_INVALID_MONITOR_SOURCEMODESET                              Handle        = 0xC0262321\n\tERROR_GRAPHICS_INVALID_MONITOR_SOURCE_MODE                                Handle        = 0xC0262322\n\tERROR_GRAPHICS_NO_RECOMMENDED_FUNCTIONAL_VIDPN                            Handle        = 0xC0262323\n\tERROR_GRAPHICS_MODE_ID_MUST_BE_UNIQUE                                     Handle        = 0xC0262324\n\tERROR_GRAPHICS_EMPTY_ADAPTER_MONITOR_MODE_SUPPORT_INTERSECTION            Handle        = 0xC0262325\n\tERROR_GRAPHICS_VIDEO_PRESENT_TARGETS_LESS_THAN_SOURCES                    Handle        = 0xC0262326\n\tERROR_GRAPHICS_PATH_NOT_IN_TOPOLOGY                                       Handle        = 0xC0262327\n\tERROR_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_SOURCE                      Handle        = 0xC0262328\n\tERROR_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_TARGET                      Handle        = 0xC0262329\n\tERROR_GRAPHICS_INVALID_MONITORDESCRIPTORSET                               Handle        = 0xC026232A\n\tERROR_GRAPHICS_INVALID_MONITORDESCRIPTOR                                  Handle        = 0xC026232B\n\tERROR_GRAPHICS_MONITORDESCRIPTOR_NOT_IN_SET                               Handle        = 0xC026232C\n\tERROR_GRAPHICS_MONITORDESCRIPTOR_ALREADY_IN_SET                           Handle        = 0xC026232D\n\tERROR_GRAPHICS_MONITORDESCRIPTOR_ID_MUST_BE_UNIQUE                        Handle        = 0xC026232E\n\tERROR_GRAPHICS_INVALID_VIDPN_TARGET_SUBSET_TYPE                           Handle        = 0xC026232F\n\tERROR_GRAPHICS_RESOURCES_NOT_RELATED                                      Handle        = 0xC0262330\n\tERROR_GRAPHICS_SOURCE_ID_MUST_BE_UNIQUE                                   Handle        = 0xC0262331\n\tERROR_GRAPHICS_TARGET_ID_MUST_BE_UNIQUE                                   Handle        = 0xC0262332\n\tERROR_GRAPHICS_NO_AVAILABLE_VIDPN_TARGET                                  Handle        = 0xC0262333\n\tERROR_GRAPHICS_MONITOR_COULD_NOT_BE_ASSOCIATED_WITH_ADAPTER               Handle        = 0xC0262334\n\tERROR_GRAPHICS_NO_VIDPNMGR                                                Handle        = 0xC0262335\n\tERROR_GRAPHICS_NO_ACTIVE_VIDPN                                            Handle        = 0xC0262336\n\tERROR_GRAPHICS_STALE_VIDPN_TOPOLOGY                                       Handle        = 0xC0262337\n\tERROR_GRAPHICS_MONITOR_NOT_CONNECTED                                      Handle        = 0xC0262338\n\tERROR_GRAPHICS_SOURCE_NOT_IN_TOPOLOGY                                     Handle        = 0xC0262339\n\tERROR_GRAPHICS_INVALID_PRIMARYSURFACE_SIZE                                Handle        = 0xC026233A\n\tERROR_GRAPHICS_INVALID_VISIBLEREGION_SIZE                                 Handle        = 0xC026233B\n\tERROR_GRAPHICS_INVALID_STRIDE                                             Handle        = 0xC026233C\n\tERROR_GRAPHICS_INVALID_PIXELFORMAT                                        Handle        = 0xC026233D\n\tERROR_GRAPHICS_INVALID_COLORBASIS                                         Handle        = 0xC026233E\n\tERROR_GRAPHICS_INVALID_PIXELVALUEACCESSMODE                               Handle        = 0xC026233F\n\tERROR_GRAPHICS_TARGET_NOT_IN_TOPOLOGY                                     Handle        = 0xC0262340\n\tERROR_GRAPHICS_NO_DISPLAY_MODE_MANAGEMENT_SUPPORT                         Handle        = 0xC0262341\n\tERROR_GRAPHICS_VIDPN_SOURCE_IN_USE                                        Handle        = 0xC0262342\n\tERROR_GRAPHICS_CANT_ACCESS_ACTIVE_VIDPN                                   Handle        = 0xC0262343\n\tERROR_GRAPHICS_INVALID_PATH_IMPORTANCE_ORDINAL                            Handle        = 0xC0262344\n\tERROR_GRAPHICS_INVALID_PATH_CONTENT_GEOMETRY_TRANSFORMATION               Handle        = 0xC0262345\n\tERROR_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_SUPPORTED         Handle        = 0xC0262346\n\tERROR_GRAPHICS_INVALID_GAMMA_RAMP                                         Handle        = 0xC0262347\n\tERROR_GRAPHICS_GAMMA_RAMP_NOT_SUPPORTED                                   Handle        = 0xC0262348\n\tERROR_GRAPHICS_MULTISAMPLING_NOT_SUPPORTED                                Handle        = 0xC0262349\n\tERROR_GRAPHICS_MODE_NOT_IN_MODESET                                        Handle        = 0xC026234A\n\tERROR_GRAPHICS_DATASET_IS_EMPTY                                           Handle        = 0x0026234B\n\tERROR_GRAPHICS_NO_MORE_ELEMENTS_IN_DATASET                                Handle        = 0x0026234C\n\tERROR_GRAPHICS_INVALID_VIDPN_TOPOLOGY_RECOMMENDATION_REASON               Handle        = 0xC026234D\n\tERROR_GRAPHICS_INVALID_PATH_CONTENT_TYPE                                  Handle        = 0xC026234E\n\tERROR_GRAPHICS_INVALID_COPYPROTECTION_TYPE                                Handle        = 0xC026234F\n\tERROR_GRAPHICS_UNASSIGNED_MODESET_ALREADY_EXISTS                          Handle        = 0xC0262350\n\tERROR_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_PINNED            Handle        = 0x00262351\n\tERROR_GRAPHICS_INVALID_SCANLINE_ORDERING                                  Handle        = 0xC0262352\n\tERROR_GRAPHICS_TOPOLOGY_CHANGES_NOT_ALLOWED                               Handle        = 0xC0262353\n\tERROR_GRAPHICS_NO_AVAILABLE_IMPORTANCE_ORDINALS                           Handle        = 0xC0262354\n\tERROR_GRAPHICS_INCOMPATIBLE_PRIVATE_FORMAT                                Handle        = 0xC0262355\n\tERROR_GRAPHICS_INVALID_MODE_PRUNING_ALGORITHM                             Handle        = 0xC0262356\n\tERROR_GRAPHICS_INVALID_MONITOR_CAPABILITY_ORIGIN                          Handle        = 0xC0262357\n\tERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE_CONSTRAINT                  Handle        = 0xC0262358\n\tERROR_GRAPHICS_MAX_NUM_PATHS_REACHED                                      Handle        = 0xC0262359\n\tERROR_GRAPHICS_CANCEL_VIDPN_TOPOLOGY_AUGMENTATION                         Handle        = 0xC026235A\n\tERROR_GRAPHICS_INVALID_CLIENT_TYPE                                        Handle        = 0xC026235B\n\tERROR_GRAPHICS_CLIENTVIDPN_NOT_SET                                        Handle        = 0xC026235C\n\tERROR_GRAPHICS_SPECIFIED_CHILD_ALREADY_CONNECTED                          Handle        = 0xC0262400\n\tERROR_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED                             Handle        = 0xC0262401\n\tERROR_GRAPHICS_UNKNOWN_CHILD_STATUS                                       Handle        = 0x4026242F\n\tERROR_GRAPHICS_NOT_A_LINKED_ADAPTER                                       Handle        = 0xC0262430\n\tERROR_GRAPHICS_LEADLINK_NOT_ENUMERATED                                    Handle        = 0xC0262431\n\tERROR_GRAPHICS_CHAINLINKS_NOT_ENUMERATED                                  Handle        = 0xC0262432\n\tERROR_GRAPHICS_ADAPTER_CHAIN_NOT_READY                                    Handle        = 0xC0262433\n\tERROR_GRAPHICS_CHAINLINKS_NOT_STARTED                                     Handle        = 0xC0262434\n\tERROR_GRAPHICS_CHAINLINKS_NOT_POWERED_ON                                  Handle        = 0xC0262435\n\tERROR_GRAPHICS_INCONSISTENT_DEVICE_LINK_STATE                             Handle        = 0xC0262436\n\tERROR_GRAPHICS_LEADLINK_START_DEFERRED                                    Handle        = 0x40262437\n\tERROR_GRAPHICS_NOT_POST_DEVICE_DRIVER                                     Handle        = 0xC0262438\n\tERROR_GRAPHICS_POLLING_TOO_FREQUENTLY                                     Handle        = 0x40262439\n\tERROR_GRAPHICS_START_DEFERRED                                             Handle        = 0x4026243A\n\tERROR_GRAPHICS_ADAPTER_ACCESS_NOT_EXCLUDED                                Handle        = 0xC026243B\n\tERROR_GRAPHICS_DEPENDABLE_CHILD_STATUS                                    Handle        = 0x4026243C\n\tERROR_GRAPHICS_OPM_NOT_SUPPORTED                                          Handle        = 0xC0262500\n\tERROR_GRAPHICS_COPP_NOT_SUPPORTED                                         Handle        = 0xC0262501\n\tERROR_GRAPHICS_UAB_NOT_SUPPORTED                                          Handle        = 0xC0262502\n\tERROR_GRAPHICS_OPM_INVALID_ENCRYPTED_PARAMETERS                           Handle        = 0xC0262503\n\tERROR_GRAPHICS_OPM_NO_VIDEO_OUTPUTS_EXIST                                 Handle        = 0xC0262505\n\tERROR_GRAPHICS_OPM_INTERNAL_ERROR                                         Handle        = 0xC026250B\n\tERROR_GRAPHICS_OPM_INVALID_HANDLE                                         Handle        = 0xC026250C\n\tERROR_GRAPHICS_PVP_INVALID_CERTIFICATE_LENGTH                             Handle        = 0xC026250E\n\tERROR_GRAPHICS_OPM_SPANNING_MODE_ENABLED                                  Handle        = 0xC026250F\n\tERROR_GRAPHICS_OPM_THEATER_MODE_ENABLED                                   Handle        = 0xC0262510\n\tERROR_GRAPHICS_PVP_HFS_FAILED                                             Handle        = 0xC0262511\n\tERROR_GRAPHICS_OPM_INVALID_SRM                                            Handle        = 0xC0262512\n\tERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP                           Handle        = 0xC0262513\n\tERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_ACP                            Handle        = 0xC0262514\n\tERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_CGMSA                          Handle        = 0xC0262515\n\tERROR_GRAPHICS_OPM_HDCP_SRM_NEVER_SET                                     Handle        = 0xC0262516\n\tERROR_GRAPHICS_OPM_RESOLUTION_TOO_HIGH                                    Handle        = 0xC0262517\n\tERROR_GRAPHICS_OPM_ALL_HDCP_HARDWARE_ALREADY_IN_USE                       Handle        = 0xC0262518\n\tERROR_GRAPHICS_OPM_VIDEO_OUTPUT_NO_LONGER_EXISTS                          Handle        = 0xC026251A\n\tERROR_GRAPHICS_OPM_SESSION_TYPE_CHANGE_IN_PROGRESS                        Handle        = 0xC026251B\n\tERROR_GRAPHICS_OPM_VIDEO_OUTPUT_DOES_NOT_HAVE_COPP_SEMANTICS              Handle        = 0xC026251C\n\tERROR_GRAPHICS_OPM_INVALID_INFORMATION_REQUEST                            Handle        = 0xC026251D\n\tERROR_GRAPHICS_OPM_DRIVER_INTERNAL_ERROR                                  Handle        = 0xC026251E\n\tERROR_GRAPHICS_OPM_VIDEO_OUTPUT_DOES_NOT_HAVE_OPM_SEMANTICS               Handle        = 0xC026251F\n\tERROR_GRAPHICS_OPM_SIGNALING_NOT_SUPPORTED                                Handle        = 0xC0262520\n\tERROR_GRAPHICS_OPM_INVALID_CONFIGURATION_REQUEST                          Handle        = 0xC0262521\n\tERROR_GRAPHICS_I2C_NOT_SUPPORTED                                          Handle        = 0xC0262580\n\tERROR_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST                                  Handle        = 0xC0262581\n\tERROR_GRAPHICS_I2C_ERROR_TRANSMITTING_DATA                                Handle        = 0xC0262582\n\tERROR_GRAPHICS_I2C_ERROR_RECEIVING_DATA                                   Handle        = 0xC0262583\n\tERROR_GRAPHICS_DDCCI_VCP_NOT_SUPPORTED                                    Handle        = 0xC0262584\n\tERROR_GRAPHICS_DDCCI_INVALID_DATA                                         Handle        = 0xC0262585\n\tERROR_GRAPHICS_DDCCI_MONITOR_RETURNED_INVALID_TIMING_STATUS_BYTE          Handle        = 0xC0262586\n\tERROR_GRAPHICS_MCA_INVALID_CAPABILITIES_STRING                            Handle        = 0xC0262587\n\tERROR_GRAPHICS_MCA_INTERNAL_ERROR                                         Handle        = 0xC0262588\n\tERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_COMMAND                              Handle        = 0xC0262589\n\tERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_LENGTH                               Handle        = 0xC026258A\n\tERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_CHECKSUM                             Handle        = 0xC026258B\n\tERROR_GRAPHICS_INVALID_PHYSICAL_MONITOR_HANDLE                            Handle        = 0xC026258C\n\tERROR_GRAPHICS_MONITOR_NO_LONGER_EXISTS                                   Handle        = 0xC026258D\n\tERROR_GRAPHICS_DDCCI_CURRENT_CURRENT_VALUE_GREATER_THAN_MAXIMUM_VALUE     Handle        = 0xC02625D8\n\tERROR_GRAPHICS_MCA_INVALID_VCP_VERSION                                    Handle        = 0xC02625D9\n\tERROR_GRAPHICS_MCA_MONITOR_VIOLATES_MCCS_SPECIFICATION                    Handle        = 0xC02625DA\n\tERROR_GRAPHICS_MCA_MCCS_VERSION_MISMATCH                                  Handle        = 0xC02625DB\n\tERROR_GRAPHICS_MCA_UNSUPPORTED_MCCS_VERSION                               Handle        = 0xC02625DC\n\tERROR_GRAPHICS_MCA_INVALID_TECHNOLOGY_TYPE_RETURNED                       Handle        = 0xC02625DE\n\tERROR_GRAPHICS_MCA_UNSUPPORTED_COLOR_TEMPERATURE                          Handle        = 0xC02625DF\n\tERROR_GRAPHICS_ONLY_CONSOLE_SESSION_SUPPORTED                             Handle        = 0xC02625E0\n\tERROR_GRAPHICS_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME                      Handle        = 0xC02625E1\n\tERROR_GRAPHICS_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP                     Handle        = 0xC02625E2\n\tERROR_GRAPHICS_MIRRORING_DEVICES_NOT_SUPPORTED                            Handle        = 0xC02625E3\n\tERROR_GRAPHICS_INVALID_POINTER                                            Handle        = 0xC02625E4\n\tERROR_GRAPHICS_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE                   Handle        = 0xC02625E5\n\tERROR_GRAPHICS_PARAMETER_ARRAY_TOO_SMALL                                  Handle        = 0xC02625E6\n\tERROR_GRAPHICS_INTERNAL_ERROR                                             Handle        = 0xC02625E7\n\tERROR_GRAPHICS_SESSION_TYPE_CHANGE_IN_PROGRESS                            Handle        = 0xC02605E8\n\tNAP_E_INVALID_PACKET                                                      Handle        = 0x80270001\n\tNAP_E_MISSING_SOH                                                         Handle        = 0x80270002\n\tNAP_E_CONFLICTING_ID                                                      Handle        = 0x80270003\n\tNAP_E_NO_CACHED_SOH                                                       Handle        = 0x80270004\n\tNAP_E_STILL_BOUND                                                         Handle        = 0x80270005\n\tNAP_E_NOT_REGISTERED                                                      Handle        = 0x80270006\n\tNAP_E_NOT_INITIALIZED                                                     Handle        = 0x80270007\n\tNAP_E_MISMATCHED_ID                                                       Handle        = 0x80270008\n\tNAP_E_NOT_PENDING                                                         Handle        = 0x80270009\n\tNAP_E_ID_NOT_FOUND                                                        Handle        = 0x8027000A\n\tNAP_E_MAXSIZE_TOO_SMALL                                                   Handle        = 0x8027000B\n\tNAP_E_SERVICE_NOT_RUNNING                                                 Handle        = 0x8027000C\n\tNAP_S_CERT_ALREADY_PRESENT                                                Handle        = 0x0027000D\n\tNAP_E_ENTITY_DISABLED                                                     Handle        = 0x8027000E\n\tNAP_E_NETSH_GROUPPOLICY_ERROR                                             Handle        = 0x8027000F\n\tNAP_E_TOO_MANY_CALLS                                                      Handle        = 0x80270010\n\tNAP_E_SHV_CONFIG_EXISTED                                                  Handle        = 0x80270011\n\tNAP_E_SHV_CONFIG_NOT_FOUND                                                Handle        = 0x80270012\n\tNAP_E_SHV_TIMEOUT                                                         Handle        = 0x80270013\n\tTPM_E_ERROR_MASK                                                          Handle        = 0x80280000\n\tTPM_E_AUTHFAIL                                                            Handle        = 0x80280001\n\tTPM_E_BADINDEX                                                            Handle        = 0x80280002\n\tTPM_E_BAD_PARAMETER                                                       Handle        = 0x80280003\n\tTPM_E_AUDITFAILURE                                                        Handle        = 0x80280004\n\tTPM_E_CLEAR_DISABLED                                                      Handle        = 0x80280005\n\tTPM_E_DEACTIVATED                                                         Handle        = 0x80280006\n\tTPM_E_DISABLED                                                            Handle        = 0x80280007\n\tTPM_E_DISABLED_CMD                                                        Handle        = 0x80280008\n\tTPM_E_FAIL                                                                Handle        = 0x80280009\n\tTPM_E_BAD_ORDINAL                                                         Handle        = 0x8028000A\n\tTPM_E_INSTALL_DISABLED                                                    Handle        = 0x8028000B\n\tTPM_E_INVALID_KEYHANDLE                                                   Handle        = 0x8028000C\n\tTPM_E_KEYNOTFOUND                                                         Handle        = 0x8028000D\n\tTPM_E_INAPPROPRIATE_ENC                                                   Handle        = 0x8028000E\n\tTPM_E_MIGRATEFAIL                                                         Handle        = 0x8028000F\n\tTPM_E_INVALID_PCR_INFO                                                    Handle        = 0x80280010\n\tTPM_E_NOSPACE                                                             Handle        = 0x80280011\n\tTPM_E_NOSRK                                                               Handle        = 0x80280012\n\tTPM_E_NOTSEALED_BLOB                                                      Handle        = 0x80280013\n\tTPM_E_OWNER_SET                                                           Handle        = 0x80280014\n\tTPM_E_RESOURCES                                                           Handle        = 0x80280015\n\tTPM_E_SHORTRANDOM                                                         Handle        = 0x80280016\n\tTPM_E_SIZE                                                                Handle        = 0x80280017\n\tTPM_E_WRONGPCRVAL                                                         Handle        = 0x80280018\n\tTPM_E_BAD_PARAM_SIZE                                                      Handle        = 0x80280019\n\tTPM_E_SHA_THREAD                                                          Handle        = 0x8028001A\n\tTPM_E_SHA_ERROR                                                           Handle        = 0x8028001B\n\tTPM_E_FAILEDSELFTEST                                                      Handle        = 0x8028001C\n\tTPM_E_AUTH2FAIL                                                           Handle        = 0x8028001D\n\tTPM_E_BADTAG                                                              Handle        = 0x8028001E\n\tTPM_E_IOERROR                                                             Handle        = 0x8028001F\n\tTPM_E_ENCRYPT_ERROR                                                       Handle        = 0x80280020\n\tTPM_E_DECRYPT_ERROR                                                       Handle        = 0x80280021\n\tTPM_E_INVALID_AUTHHANDLE                                                  Handle        = 0x80280022\n\tTPM_E_NO_ENDORSEMENT                                                      Handle        = 0x80280023\n\tTPM_E_INVALID_KEYUSAGE                                                    Handle        = 0x80280024\n\tTPM_E_WRONG_ENTITYTYPE                                                    Handle        = 0x80280025\n\tTPM_E_INVALID_POSTINIT                                                    Handle        = 0x80280026\n\tTPM_E_INAPPROPRIATE_SIG                                                   Handle        = 0x80280027\n\tTPM_E_BAD_KEY_PROPERTY                                                    Handle        = 0x80280028\n\tTPM_E_BAD_MIGRATION                                                       Handle        = 0x80280029\n\tTPM_E_BAD_SCHEME                                                          Handle        = 0x8028002A\n\tTPM_E_BAD_DATASIZE                                                        Handle        = 0x8028002B\n\tTPM_E_BAD_MODE                                                            Handle        = 0x8028002C\n\tTPM_E_BAD_PRESENCE                                                        Handle        = 0x8028002D\n\tTPM_E_BAD_VERSION                                                         Handle        = 0x8028002E\n\tTPM_E_NO_WRAP_TRANSPORT                                                   Handle        = 0x8028002F\n\tTPM_E_AUDITFAIL_UNSUCCESSFUL                                              Handle        = 0x80280030\n\tTPM_E_AUDITFAIL_SUCCESSFUL                                                Handle        = 0x80280031\n\tTPM_E_NOTRESETABLE                                                        Handle        = 0x80280032\n\tTPM_E_NOTLOCAL                                                            Handle        = 0x80280033\n\tTPM_E_BAD_TYPE                                                            Handle        = 0x80280034\n\tTPM_E_INVALID_RESOURCE                                                    Handle        = 0x80280035\n\tTPM_E_NOTFIPS                                                             Handle        = 0x80280036\n\tTPM_E_INVALID_FAMILY                                                      Handle        = 0x80280037\n\tTPM_E_NO_NV_PERMISSION                                                    Handle        = 0x80280038\n\tTPM_E_REQUIRES_SIGN                                                       Handle        = 0x80280039\n\tTPM_E_KEY_NOTSUPPORTED                                                    Handle        = 0x8028003A\n\tTPM_E_AUTH_CONFLICT                                                       Handle        = 0x8028003B\n\tTPM_E_AREA_LOCKED                                                         Handle        = 0x8028003C\n\tTPM_E_BAD_LOCALITY                                                        Handle        = 0x8028003D\n\tTPM_E_READ_ONLY                                                           Handle        = 0x8028003E\n\tTPM_E_PER_NOWRITE                                                         Handle        = 0x8028003F\n\tTPM_E_FAMILYCOUNT                                                         Handle        = 0x80280040\n\tTPM_E_WRITE_LOCKED                                                        Handle        = 0x80280041\n\tTPM_E_BAD_ATTRIBUTES                                                      Handle        = 0x80280042\n\tTPM_E_INVALID_STRUCTURE                                                   Handle        = 0x80280043\n\tTPM_E_KEY_OWNER_CONTROL                                                   Handle        = 0x80280044\n\tTPM_E_BAD_COUNTER                                                         Handle        = 0x80280045\n\tTPM_E_NOT_FULLWRITE                                                       Handle        = 0x80280046\n\tTPM_E_CONTEXT_GAP                                                         Handle        = 0x80280047\n\tTPM_E_MAXNVWRITES                                                         Handle        = 0x80280048\n\tTPM_E_NOOPERATOR                                                          Handle        = 0x80280049\n\tTPM_E_RESOURCEMISSING                                                     Handle        = 0x8028004A\n\tTPM_E_DELEGATE_LOCK                                                       Handle        = 0x8028004B\n\tTPM_E_DELEGATE_FAMILY                                                     Handle        = 0x8028004C\n\tTPM_E_DELEGATE_ADMIN                                                      Handle        = 0x8028004D\n\tTPM_E_TRANSPORT_NOTEXCLUSIVE                                              Handle        = 0x8028004E\n\tTPM_E_OWNER_CONTROL                                                       Handle        = 0x8028004F\n\tTPM_E_DAA_RESOURCES                                                       Handle        = 0x80280050\n\tTPM_E_DAA_INPUT_DATA0                                                     Handle        = 0x80280051\n\tTPM_E_DAA_INPUT_DATA1                                                     Handle        = 0x80280052\n\tTPM_E_DAA_ISSUER_SETTINGS                                                 Handle        = 0x80280053\n\tTPM_E_DAA_TPM_SETTINGS                                                    Handle        = 0x80280054\n\tTPM_E_DAA_STAGE                                                           Handle        = 0x80280055\n\tTPM_E_DAA_ISSUER_VALIDITY                                                 Handle        = 0x80280056\n\tTPM_E_DAA_WRONG_W                                                         Handle        = 0x80280057\n\tTPM_E_BAD_HANDLE                                                          Handle        = 0x80280058\n\tTPM_E_BAD_DELEGATE                                                        Handle        = 0x80280059\n\tTPM_E_BADCONTEXT                                                          Handle        = 0x8028005A\n\tTPM_E_TOOMANYCONTEXTS                                                     Handle        = 0x8028005B\n\tTPM_E_MA_TICKET_SIGNATURE                                                 Handle        = 0x8028005C\n\tTPM_E_MA_DESTINATION                                                      Handle        = 0x8028005D\n\tTPM_E_MA_SOURCE                                                           Handle        = 0x8028005E\n\tTPM_E_MA_AUTHORITY                                                        Handle        = 0x8028005F\n\tTPM_E_PERMANENTEK                                                         Handle        = 0x80280061\n\tTPM_E_BAD_SIGNATURE                                                       Handle        = 0x80280062\n\tTPM_E_NOCONTEXTSPACE                                                      Handle        = 0x80280063\n\tTPM_20_E_ASYMMETRIC                                                       Handle        = 0x80280081\n\tTPM_20_E_ATTRIBUTES                                                       Handle        = 0x80280082\n\tTPM_20_E_HASH                                                             Handle        = 0x80280083\n\tTPM_20_E_VALUE                                                            Handle        = 0x80280084\n\tTPM_20_E_HIERARCHY                                                        Handle        = 0x80280085\n\tTPM_20_E_KEY_SIZE                                                         Handle        = 0x80280087\n\tTPM_20_E_MGF                                                              Handle        = 0x80280088\n\tTPM_20_E_MODE                                                             Handle        = 0x80280089\n\tTPM_20_E_TYPE                                                             Handle        = 0x8028008A\n\tTPM_20_E_HANDLE                                                           Handle        = 0x8028008B\n\tTPM_20_E_KDF                                                              Handle        = 0x8028008C\n\tTPM_20_E_RANGE                                                            Handle        = 0x8028008D\n\tTPM_20_E_AUTH_FAIL                                                        Handle        = 0x8028008E\n\tTPM_20_E_NONCE                                                            Handle        = 0x8028008F\n\tTPM_20_E_PP                                                               Handle        = 0x80280090\n\tTPM_20_E_SCHEME                                                           Handle        = 0x80280092\n\tTPM_20_E_SIZE                                                             Handle        = 0x80280095\n\tTPM_20_E_SYMMETRIC                                                        Handle        = 0x80280096\n\tTPM_20_E_TAG                                                              Handle        = 0x80280097\n\tTPM_20_E_SELECTOR                                                         Handle        = 0x80280098\n\tTPM_20_E_INSUFFICIENT                                                     Handle        = 0x8028009A\n\tTPM_20_E_SIGNATURE                                                        Handle        = 0x8028009B\n\tTPM_20_E_KEY                                                              Handle        = 0x8028009C\n\tTPM_20_E_POLICY_FAIL                                                      Handle        = 0x8028009D\n\tTPM_20_E_INTEGRITY                                                        Handle        = 0x8028009F\n\tTPM_20_E_TICKET                                                           Handle        = 0x802800A0\n\tTPM_20_E_RESERVED_BITS                                                    Handle        = 0x802800A1\n\tTPM_20_E_BAD_AUTH                                                         Handle        = 0x802800A2\n\tTPM_20_E_EXPIRED                                                          Handle        = 0x802800A3\n\tTPM_20_E_POLICY_CC                                                        Handle        = 0x802800A4\n\tTPM_20_E_BINDING                                                          Handle        = 0x802800A5\n\tTPM_20_E_CURVE                                                            Handle        = 0x802800A6\n\tTPM_20_E_ECC_POINT                                                        Handle        = 0x802800A7\n\tTPM_20_E_INITIALIZE                                                       Handle        = 0x80280100\n\tTPM_20_E_FAILURE                                                          Handle        = 0x80280101\n\tTPM_20_E_SEQUENCE                                                         Handle        = 0x80280103\n\tTPM_20_E_PRIVATE                                                          Handle        = 0x8028010B\n\tTPM_20_E_HMAC                                                             Handle        = 0x80280119\n\tTPM_20_E_DISABLED                                                         Handle        = 0x80280120\n\tTPM_20_E_EXCLUSIVE                                                        Handle        = 0x80280121\n\tTPM_20_E_ECC_CURVE                                                        Handle        = 0x80280123\n\tTPM_20_E_AUTH_TYPE                                                        Handle        = 0x80280124\n\tTPM_20_E_AUTH_MISSING                                                     Handle        = 0x80280125\n\tTPM_20_E_POLICY                                                           Handle        = 0x80280126\n\tTPM_20_E_PCR                                                              Handle        = 0x80280127\n\tTPM_20_E_PCR_CHANGED                                                      Handle        = 0x80280128\n\tTPM_20_E_UPGRADE                                                          Handle        = 0x8028012D\n\tTPM_20_E_TOO_MANY_CONTEXTS                                                Handle        = 0x8028012E\n\tTPM_20_E_AUTH_UNAVAILABLE                                                 Handle        = 0x8028012F\n\tTPM_20_E_REBOOT                                                           Handle        = 0x80280130\n\tTPM_20_E_UNBALANCED                                                       Handle        = 0x80280131\n\tTPM_20_E_COMMAND_SIZE                                                     Handle        = 0x80280142\n\tTPM_20_E_COMMAND_CODE                                                     Handle        = 0x80280143\n\tTPM_20_E_AUTHSIZE                                                         Handle        = 0x80280144\n\tTPM_20_E_AUTH_CONTEXT                                                     Handle        = 0x80280145\n\tTPM_20_E_NV_RANGE                                                         Handle        = 0x80280146\n\tTPM_20_E_NV_SIZE                                                          Handle        = 0x80280147\n\tTPM_20_E_NV_LOCKED                                                        Handle        = 0x80280148\n\tTPM_20_E_NV_AUTHORIZATION                                                 Handle        = 0x80280149\n\tTPM_20_E_NV_UNINITIALIZED                                                 Handle        = 0x8028014A\n\tTPM_20_E_NV_SPACE                                                         Handle        = 0x8028014B\n\tTPM_20_E_NV_DEFINED                                                       Handle        = 0x8028014C\n\tTPM_20_E_BAD_CONTEXT                                                      Handle        = 0x80280150\n\tTPM_20_E_CPHASH                                                           Handle        = 0x80280151\n\tTPM_20_E_PARENT                                                           Handle        = 0x80280152\n\tTPM_20_E_NEEDS_TEST                                                       Handle        = 0x80280153\n\tTPM_20_E_NO_RESULT                                                        Handle        = 0x80280154\n\tTPM_20_E_SENSITIVE                                                        Handle        = 0x80280155\n\tTPM_E_COMMAND_BLOCKED                                                     Handle        = 0x80280400\n\tTPM_E_INVALID_HANDLE                                                      Handle        = 0x80280401\n\tTPM_E_DUPLICATE_VHANDLE                                                   Handle        = 0x80280402\n\tTPM_E_EMBEDDED_COMMAND_BLOCKED                                            Handle        = 0x80280403\n\tTPM_E_EMBEDDED_COMMAND_UNSUPPORTED                                        Handle        = 0x80280404\n\tTPM_E_RETRY                                                               Handle        = 0x80280800\n\tTPM_E_NEEDS_SELFTEST                                                      Handle        = 0x80280801\n\tTPM_E_DOING_SELFTEST                                                      Handle        = 0x80280802\n\tTPM_E_DEFEND_LOCK_RUNNING                                                 Handle        = 0x80280803\n\tTPM_20_E_CONTEXT_GAP                                                      Handle        = 0x80280901\n\tTPM_20_E_OBJECT_MEMORY                                                    Handle        = 0x80280902\n\tTPM_20_E_SESSION_MEMORY                                                   Handle        = 0x80280903\n\tTPM_20_E_MEMORY                                                           Handle        = 0x80280904\n\tTPM_20_E_SESSION_HANDLES                                                  Handle        = 0x80280905\n\tTPM_20_E_OBJECT_HANDLES                                                   Handle        = 0x80280906\n\tTPM_20_E_LOCALITY                                                         Handle        = 0x80280907\n\tTPM_20_E_YIELDED                                                          Handle        = 0x80280908\n\tTPM_20_E_CANCELED                                                         Handle        = 0x80280909\n\tTPM_20_E_TESTING                                                          Handle        = 0x8028090A\n\tTPM_20_E_NV_RATE                                                          Handle        = 0x80280920\n\tTPM_20_E_LOCKOUT                                                          Handle        = 0x80280921\n\tTPM_20_E_RETRY                                                            Handle        = 0x80280922\n\tTPM_20_E_NV_UNAVAILABLE                                                   Handle        = 0x80280923\n\tTBS_E_INTERNAL_ERROR                                                      Handle        = 0x80284001\n\tTBS_E_BAD_PARAMETER                                                       Handle        = 0x80284002\n\tTBS_E_INVALID_OUTPUT_POINTER                                              Handle        = 0x80284003\n\tTBS_E_INVALID_CONTEXT                                                     Handle        = 0x80284004\n\tTBS_E_INSUFFICIENT_BUFFER                                                 Handle        = 0x80284005\n\tTBS_E_IOERROR                                                             Handle        = 0x80284006\n\tTBS_E_INVALID_CONTEXT_PARAM                                               Handle        = 0x80284007\n\tTBS_E_SERVICE_NOT_RUNNING                                                 Handle        = 0x80284008\n\tTBS_E_TOO_MANY_TBS_CONTEXTS                                               Handle        = 0x80284009\n\tTBS_E_TOO_MANY_RESOURCES                                                  Handle        = 0x8028400A\n\tTBS_E_SERVICE_START_PENDING                                               Handle        = 0x8028400B\n\tTBS_E_PPI_NOT_SUPPORTED                                                   Handle        = 0x8028400C\n\tTBS_E_COMMAND_CANCELED                                                    Handle        = 0x8028400D\n\tTBS_E_BUFFER_TOO_LARGE                                                    Handle        = 0x8028400E\n\tTBS_E_TPM_NOT_FOUND                                                       Handle        = 0x8028400F\n\tTBS_E_SERVICE_DISABLED                                                    Handle        = 0x80284010\n\tTBS_E_NO_EVENT_LOG                                                        Handle        = 0x80284011\n\tTBS_E_ACCESS_DENIED                                                       Handle        = 0x80284012\n\tTBS_E_PROVISIONING_NOT_ALLOWED                                            Handle        = 0x80284013\n\tTBS_E_PPI_FUNCTION_UNSUPPORTED                                            Handle        = 0x80284014\n\tTBS_E_OWNERAUTH_NOT_FOUND                                                 Handle        = 0x80284015\n\tTBS_E_PROVISIONING_INCOMPLETE                                             Handle        = 0x80284016\n\tTPMAPI_E_INVALID_STATE                                                    Handle        = 0x80290100\n\tTPMAPI_E_NOT_ENOUGH_DATA                                                  Handle        = 0x80290101\n\tTPMAPI_E_TOO_MUCH_DATA                                                    Handle        = 0x80290102\n\tTPMAPI_E_INVALID_OUTPUT_POINTER                                           Handle        = 0x80290103\n\tTPMAPI_E_INVALID_PARAMETER                                                Handle        = 0x80290104\n\tTPMAPI_E_OUT_OF_MEMORY                                                    Handle        = 0x80290105\n\tTPMAPI_E_BUFFER_TOO_SMALL                                                 Handle        = 0x80290106\n\tTPMAPI_E_INTERNAL_ERROR                                                   Handle        = 0x80290107\n\tTPMAPI_E_ACCESS_DENIED                                                    Handle        = 0x80290108\n\tTPMAPI_E_AUTHORIZATION_FAILED                                             Handle        = 0x80290109\n\tTPMAPI_E_INVALID_CONTEXT_HANDLE                                           Handle        = 0x8029010A\n\tTPMAPI_E_TBS_COMMUNICATION_ERROR                                          Handle        = 0x8029010B\n\tTPMAPI_E_TPM_COMMAND_ERROR                                                Handle        = 0x8029010C\n\tTPMAPI_E_MESSAGE_TOO_LARGE                                                Handle        = 0x8029010D\n\tTPMAPI_E_INVALID_ENCODING                                                 Handle        = 0x8029010E\n\tTPMAPI_E_INVALID_KEY_SIZE                                                 Handle        = 0x8029010F\n\tTPMAPI_E_ENCRYPTION_FAILED                                                Handle        = 0x80290110\n\tTPMAPI_E_INVALID_KEY_PARAMS                                               Handle        = 0x80290111\n\tTPMAPI_E_INVALID_MIGRATION_AUTHORIZATION_BLOB                             Handle        = 0x80290112\n\tTPMAPI_E_INVALID_PCR_INDEX                                                Handle        = 0x80290113\n\tTPMAPI_E_INVALID_DELEGATE_BLOB                                            Handle        = 0x80290114\n\tTPMAPI_E_INVALID_CONTEXT_PARAMS                                           Handle        = 0x80290115\n\tTPMAPI_E_INVALID_KEY_BLOB                                                 Handle        = 0x80290116\n\tTPMAPI_E_INVALID_PCR_DATA                                                 Handle        = 0x80290117\n\tTPMAPI_E_INVALID_OWNER_AUTH                                               Handle        = 0x80290118\n\tTPMAPI_E_FIPS_RNG_CHECK_FAILED                                            Handle        = 0x80290119\n\tTPMAPI_E_EMPTY_TCG_LOG                                                    Handle        = 0x8029011A\n\tTPMAPI_E_INVALID_TCG_LOG_ENTRY                                            Handle        = 0x8029011B\n\tTPMAPI_E_TCG_SEPARATOR_ABSENT                                             Handle        = 0x8029011C\n\tTPMAPI_E_TCG_INVALID_DIGEST_ENTRY                                         Handle        = 0x8029011D\n\tTPMAPI_E_POLICY_DENIES_OPERATION                                          Handle        = 0x8029011E\n\tTPMAPI_E_NV_BITS_NOT_DEFINED                                              Handle        = 0x8029011F\n\tTPMAPI_E_NV_BITS_NOT_READY                                                Handle        = 0x80290120\n\tTPMAPI_E_SEALING_KEY_NOT_AVAILABLE                                        Handle        = 0x80290121\n\tTPMAPI_E_NO_AUTHORIZATION_CHAIN_FOUND                                     Handle        = 0x80290122\n\tTPMAPI_E_SVN_COUNTER_NOT_AVAILABLE                                        Handle        = 0x80290123\n\tTPMAPI_E_OWNER_AUTH_NOT_NULL                                              Handle        = 0x80290124\n\tTPMAPI_E_ENDORSEMENT_AUTH_NOT_NULL                                        Handle        = 0x80290125\n\tTPMAPI_E_AUTHORIZATION_REVOKED                                            Handle        = 0x80290126\n\tTPMAPI_E_MALFORMED_AUTHORIZATION_KEY                                      Handle        = 0x80290127\n\tTPMAPI_E_AUTHORIZING_KEY_NOT_SUPPORTED                                    Handle        = 0x80290128\n\tTPMAPI_E_INVALID_AUTHORIZATION_SIGNATURE                                  Handle        = 0x80290129\n\tTPMAPI_E_MALFORMED_AUTHORIZATION_POLICY                                   Handle        = 0x8029012A\n\tTPMAPI_E_MALFORMED_AUTHORIZATION_OTHER                                    Handle        = 0x8029012B\n\tTPMAPI_E_SEALING_KEY_CHANGED                                              Handle        = 0x8029012C\n\tTBSIMP_E_BUFFER_TOO_SMALL                                                 Handle        = 0x80290200\n\tTBSIMP_E_CLEANUP_FAILED                                                   Handle        = 0x80290201\n\tTBSIMP_E_INVALID_CONTEXT_HANDLE                                           Handle        = 0x80290202\n\tTBSIMP_E_INVALID_CONTEXT_PARAM                                            Handle        = 0x80290203\n\tTBSIMP_E_TPM_ERROR                                                        Handle        = 0x80290204\n\tTBSIMP_E_HASH_BAD_KEY                                                     Handle        = 0x80290205\n\tTBSIMP_E_DUPLICATE_VHANDLE                                                Handle        = 0x80290206\n\tTBSIMP_E_INVALID_OUTPUT_POINTER                                           Handle        = 0x80290207\n\tTBSIMP_E_INVALID_PARAMETER                                                Handle        = 0x80290208\n\tTBSIMP_E_RPC_INIT_FAILED                                                  Handle        = 0x80290209\n\tTBSIMP_E_SCHEDULER_NOT_RUNNING                                            Handle        = 0x8029020A\n\tTBSIMP_E_COMMAND_CANCELED                                                 Handle        = 0x8029020B\n\tTBSIMP_E_OUT_OF_MEMORY                                                    Handle        = 0x8029020C\n\tTBSIMP_E_LIST_NO_MORE_ITEMS                                               Handle        = 0x8029020D\n\tTBSIMP_E_LIST_NOT_FOUND                                                   Handle        = 0x8029020E\n\tTBSIMP_E_NOT_ENOUGH_SPACE                                                 Handle        = 0x8029020F\n\tTBSIMP_E_NOT_ENOUGH_TPM_CONTEXTS                                          Handle        = 0x80290210\n\tTBSIMP_E_COMMAND_FAILED                                                   Handle        = 0x80290211\n\tTBSIMP_E_UNKNOWN_ORDINAL                                                  Handle        = 0x80290212\n\tTBSIMP_E_RESOURCE_EXPIRED                                                 Handle        = 0x80290213\n\tTBSIMP_E_INVALID_RESOURCE                                                 Handle        = 0x80290214\n\tTBSIMP_E_NOTHING_TO_UNLOAD                                                Handle        = 0x80290215\n\tTBSIMP_E_HASH_TABLE_FULL                                                  Handle        = 0x80290216\n\tTBSIMP_E_TOO_MANY_TBS_CONTEXTS                                            Handle        = 0x80290217\n\tTBSIMP_E_TOO_MANY_RESOURCES                                               Handle        = 0x80290218\n\tTBSIMP_E_PPI_NOT_SUPPORTED                                                Handle        = 0x80290219\n\tTBSIMP_E_TPM_INCOMPATIBLE                                                 Handle        = 0x8029021A\n\tTBSIMP_E_NO_EVENT_LOG                                                     Handle        = 0x8029021B\n\tTPM_E_PPI_ACPI_FAILURE                                                    Handle        = 0x80290300\n\tTPM_E_PPI_USER_ABORT                                                      Handle        = 0x80290301\n\tTPM_E_PPI_BIOS_FAILURE                                                    Handle        = 0x80290302\n\tTPM_E_PPI_NOT_SUPPORTED                                                   Handle        = 0x80290303\n\tTPM_E_PPI_BLOCKED_IN_BIOS                                                 Handle        = 0x80290304\n\tTPM_E_PCP_ERROR_MASK                                                      Handle        = 0x80290400\n\tTPM_E_PCP_DEVICE_NOT_READY                                                Handle        = 0x80290401\n\tTPM_E_PCP_INVALID_HANDLE                                                  Handle        = 0x80290402\n\tTPM_E_PCP_INVALID_PARAMETER                                               Handle        = 0x80290403\n\tTPM_E_PCP_FLAG_NOT_SUPPORTED                                              Handle        = 0x80290404\n\tTPM_E_PCP_NOT_SUPPORTED                                                   Handle        = 0x80290405\n\tTPM_E_PCP_BUFFER_TOO_SMALL                                                Handle        = 0x80290406\n\tTPM_E_PCP_INTERNAL_ERROR                                                  Handle        = 0x80290407\n\tTPM_E_PCP_AUTHENTICATION_FAILED                                           Handle        = 0x80290408\n\tTPM_E_PCP_AUTHENTICATION_IGNORED                                          Handle        = 0x80290409\n\tTPM_E_PCP_POLICY_NOT_FOUND                                                Handle        = 0x8029040A\n\tTPM_E_PCP_PROFILE_NOT_FOUND                                               Handle        = 0x8029040B\n\tTPM_E_PCP_VALIDATION_FAILED                                               Handle        = 0x8029040C\n\tTPM_E_PCP_WRONG_PARENT                                                    Handle        = 0x8029040E\n\tTPM_E_KEY_NOT_LOADED                                                      Handle        = 0x8029040F\n\tTPM_E_NO_KEY_CERTIFICATION                                                Handle        = 0x80290410\n\tTPM_E_KEY_NOT_FINALIZED                                                   Handle        = 0x80290411\n\tTPM_E_ATTESTATION_CHALLENGE_NOT_SET                                       Handle        = 0x80290412\n\tTPM_E_NOT_PCR_BOUND                                                       Handle        = 0x80290413\n\tTPM_E_KEY_ALREADY_FINALIZED                                               Handle        = 0x80290414\n\tTPM_E_KEY_USAGE_POLICY_NOT_SUPPORTED                                      Handle        = 0x80290415\n\tTPM_E_KEY_USAGE_POLICY_INVALID                                            Handle        = 0x80290416\n\tTPM_E_SOFT_KEY_ERROR                                                      Handle        = 0x80290417\n\tTPM_E_KEY_NOT_AUTHENTICATED                                               Handle        = 0x80290418\n\tTPM_E_PCP_KEY_NOT_AIK                                                     Handle        = 0x80290419\n\tTPM_E_KEY_NOT_SIGNING_KEY                                                 Handle        = 0x8029041A\n\tTPM_E_LOCKED_OUT                                                          Handle        = 0x8029041B\n\tTPM_E_CLAIM_TYPE_NOT_SUPPORTED                                            Handle        = 0x8029041C\n\tTPM_E_VERSION_NOT_SUPPORTED                                               Handle        = 0x8029041D\n\tTPM_E_BUFFER_LENGTH_MISMATCH                                              Handle        = 0x8029041E\n\tTPM_E_PCP_IFX_RSA_KEY_CREATION_BLOCKED                                    Handle        = 0x8029041F\n\tTPM_E_PCP_TICKET_MISSING                                                  Handle        = 0x80290420\n\tTPM_E_PCP_RAW_POLICY_NOT_SUPPORTED                                        Handle        = 0x80290421\n\tTPM_E_PCP_KEY_HANDLE_INVALIDATED                                          Handle        = 0x80290422\n\tTPM_E_PCP_UNSUPPORTED_PSS_SALT                                            Handle        = 0x40290423\n\tTPM_E_ZERO_EXHAUST_ENABLED                                                Handle        = 0x80290500\n\tPLA_E_DCS_NOT_FOUND                                                       Handle        = 0x80300002\n\tPLA_E_DCS_IN_USE                                                          Handle        = 0x803000AA\n\tPLA_E_TOO_MANY_FOLDERS                                                    Handle        = 0x80300045\n\tPLA_E_NO_MIN_DISK                                                         Handle        = 0x80300070\n\tPLA_E_DCS_ALREADY_EXISTS                                                  Handle        = 0x803000B7\n\tPLA_S_PROPERTY_IGNORED                                                    Handle        = 0x00300100\n\tPLA_E_PROPERTY_CONFLICT                                                   Handle        = 0x80300101\n\tPLA_E_DCS_SINGLETON_REQUIRED                                              Handle        = 0x80300102\n\tPLA_E_CREDENTIALS_REQUIRED                                                Handle        = 0x80300103\n\tPLA_E_DCS_NOT_RUNNING                                                     Handle        = 0x80300104\n\tPLA_E_CONFLICT_INCL_EXCL_API                                              Handle        = 0x80300105\n\tPLA_E_NETWORK_EXE_NOT_VALID                                               Handle        = 0x80300106\n\tPLA_E_EXE_ALREADY_CONFIGURED                                              Handle        = 0x80300107\n\tPLA_E_EXE_PATH_NOT_VALID                                                  Handle        = 0x80300108\n\tPLA_E_DC_ALREADY_EXISTS                                                   Handle        = 0x80300109\n\tPLA_E_DCS_START_WAIT_TIMEOUT                                              Handle        = 0x8030010A\n\tPLA_E_DC_START_WAIT_TIMEOUT                                               Handle        = 0x8030010B\n\tPLA_E_REPORT_WAIT_TIMEOUT                                                 Handle        = 0x8030010C\n\tPLA_E_NO_DUPLICATES                                                       Handle        = 0x8030010D\n\tPLA_E_EXE_FULL_PATH_REQUIRED                                              Handle        = 0x8030010E\n\tPLA_E_INVALID_SESSION_NAME                                                Handle        = 0x8030010F\n\tPLA_E_PLA_CHANNEL_NOT_ENABLED                                             Handle        = 0x80300110\n\tPLA_E_TASKSCHED_CHANNEL_NOT_ENABLED                                       Handle        = 0x80300111\n\tPLA_E_RULES_MANAGER_FAILED                                                Handle        = 0x80300112\n\tPLA_E_CABAPI_FAILURE                                                      Handle        = 0x80300113\n\tFVE_E_LOCKED_VOLUME                                                       Handle        = 0x80310000\n\tFVE_E_NOT_ENCRYPTED                                                       Handle        = 0x80310001\n\tFVE_E_NO_TPM_BIOS                                                         Handle        = 0x80310002\n\tFVE_E_NO_MBR_METRIC                                                       Handle        = 0x80310003\n\tFVE_E_NO_BOOTSECTOR_METRIC                                                Handle        = 0x80310004\n\tFVE_E_NO_BOOTMGR_METRIC                                                   Handle        = 0x80310005\n\tFVE_E_WRONG_BOOTMGR                                                       Handle        = 0x80310006\n\tFVE_E_SECURE_KEY_REQUIRED                                                 Handle        = 0x80310007\n\tFVE_E_NOT_ACTIVATED                                                       Handle        = 0x80310008\n\tFVE_E_ACTION_NOT_ALLOWED                                                  Handle        = 0x80310009\n\tFVE_E_AD_SCHEMA_NOT_INSTALLED                                             Handle        = 0x8031000A\n\tFVE_E_AD_INVALID_DATATYPE                                                 Handle        = 0x8031000B\n\tFVE_E_AD_INVALID_DATASIZE                                                 Handle        = 0x8031000C\n\tFVE_E_AD_NO_VALUES                                                        Handle        = 0x8031000D\n\tFVE_E_AD_ATTR_NOT_SET                                                     Handle        = 0x8031000E\n\tFVE_E_AD_GUID_NOT_FOUND                                                   Handle        = 0x8031000F\n\tFVE_E_BAD_INFORMATION                                                     Handle        = 0x80310010\n\tFVE_E_TOO_SMALL                                                           Handle        = 0x80310011\n\tFVE_E_SYSTEM_VOLUME                                                       Handle        = 0x80310012\n\tFVE_E_FAILED_WRONG_FS                                                     Handle        = 0x80310013\n\tFVE_E_BAD_PARTITION_SIZE                                                  Handle        = 0x80310014\n\tFVE_E_NOT_SUPPORTED                                                       Handle        = 0x80310015\n\tFVE_E_BAD_DATA                                                            Handle        = 0x80310016\n\tFVE_E_VOLUME_NOT_BOUND                                                    Handle        = 0x80310017\n\tFVE_E_TPM_NOT_OWNED                                                       Handle        = 0x80310018\n\tFVE_E_NOT_DATA_VOLUME                                                     Handle        = 0x80310019\n\tFVE_E_AD_INSUFFICIENT_BUFFER                                              Handle        = 0x8031001A\n\tFVE_E_CONV_READ                                                           Handle        = 0x8031001B\n\tFVE_E_CONV_WRITE                                                          Handle        = 0x8031001C\n\tFVE_E_KEY_REQUIRED                                                        Handle        = 0x8031001D\n\tFVE_E_CLUSTERING_NOT_SUPPORTED                                            Handle        = 0x8031001E\n\tFVE_E_VOLUME_BOUND_ALREADY                                                Handle        = 0x8031001F\n\tFVE_E_OS_NOT_PROTECTED                                                    Handle        = 0x80310020\n\tFVE_E_PROTECTION_DISABLED                                                 Handle        = 0x80310021\n\tFVE_E_RECOVERY_KEY_REQUIRED                                               Handle        = 0x80310022\n\tFVE_E_FOREIGN_VOLUME                                                      Handle        = 0x80310023\n\tFVE_E_OVERLAPPED_UPDATE                                                   Handle        = 0x80310024\n\tFVE_E_TPM_SRK_AUTH_NOT_ZERO                                               Handle        = 0x80310025\n\tFVE_E_FAILED_SECTOR_SIZE                                                  Handle        = 0x80310026\n\tFVE_E_FAILED_AUTHENTICATION                                               Handle        = 0x80310027\n\tFVE_E_NOT_OS_VOLUME                                                       Handle        = 0x80310028\n\tFVE_E_AUTOUNLOCK_ENABLED                                                  Handle        = 0x80310029\n\tFVE_E_WRONG_BOOTSECTOR                                                    Handle        = 0x8031002A\n\tFVE_E_WRONG_SYSTEM_FS                                                     Handle        = 0x8031002B\n\tFVE_E_POLICY_PASSWORD_REQUIRED                                            Handle        = 0x8031002C\n\tFVE_E_CANNOT_SET_FVEK_ENCRYPTED                                           Handle        = 0x8031002D\n\tFVE_E_CANNOT_ENCRYPT_NO_KEY                                               Handle        = 0x8031002E\n\tFVE_E_BOOTABLE_CDDVD                                                      Handle        = 0x80310030\n\tFVE_E_PROTECTOR_EXISTS                                                    Handle        = 0x80310031\n\tFVE_E_RELATIVE_PATH                                                       Handle        = 0x80310032\n\tFVE_E_PROTECTOR_NOT_FOUND                                                 Handle        = 0x80310033\n\tFVE_E_INVALID_KEY_FORMAT                                                  Handle        = 0x80310034\n\tFVE_E_INVALID_PASSWORD_FORMAT                                             Handle        = 0x80310035\n\tFVE_E_FIPS_RNG_CHECK_FAILED                                               Handle        = 0x80310036\n\tFVE_E_FIPS_PREVENTS_RECOVERY_PASSWORD                                     Handle        = 0x80310037\n\tFVE_E_FIPS_PREVENTS_EXTERNAL_KEY_EXPORT                                   Handle        = 0x80310038\n\tFVE_E_NOT_DECRYPTED                                                       Handle        = 0x80310039\n\tFVE_E_INVALID_PROTECTOR_TYPE                                              Handle        = 0x8031003A\n\tFVE_E_NO_PROTECTORS_TO_TEST                                               Handle        = 0x8031003B\n\tFVE_E_KEYFILE_NOT_FOUND                                                   Handle        = 0x8031003C\n\tFVE_E_KEYFILE_INVALID                                                     Handle        = 0x8031003D\n\tFVE_E_KEYFILE_NO_VMK                                                      Handle        = 0x8031003E\n\tFVE_E_TPM_DISABLED                                                        Handle        = 0x8031003F\n\tFVE_E_NOT_ALLOWED_IN_SAFE_MODE                                            Handle        = 0x80310040\n\tFVE_E_TPM_INVALID_PCR                                                     Handle        = 0x80310041\n\tFVE_E_TPM_NO_VMK                                                          Handle        = 0x80310042\n\tFVE_E_PIN_INVALID                                                         Handle        = 0x80310043\n\tFVE_E_AUTH_INVALID_APPLICATION                                            Handle        = 0x80310044\n\tFVE_E_AUTH_INVALID_CONFIG                                                 Handle        = 0x80310045\n\tFVE_E_FIPS_DISABLE_PROTECTION_NOT_ALLOWED                                 Handle        = 0x80310046\n\tFVE_E_FS_NOT_EXTENDED                                                     Handle        = 0x80310047\n\tFVE_E_FIRMWARE_TYPE_NOT_SUPPORTED                                         Handle        = 0x80310048\n\tFVE_E_NO_LICENSE                                                          Handle        = 0x80310049\n\tFVE_E_NOT_ON_STACK                                                        Handle        = 0x8031004A\n\tFVE_E_FS_MOUNTED                                                          Handle        = 0x8031004B\n\tFVE_E_TOKEN_NOT_IMPERSONATED                                              Handle        = 0x8031004C\n\tFVE_E_DRY_RUN_FAILED                                                      Handle        = 0x8031004D\n\tFVE_E_REBOOT_REQUIRED                                                     Handle        = 0x8031004E\n\tFVE_E_DEBUGGER_ENABLED                                                    Handle        = 0x8031004F\n\tFVE_E_RAW_ACCESS                                                          Handle        = 0x80310050\n\tFVE_E_RAW_BLOCKED                                                         Handle        = 0x80310051\n\tFVE_E_BCD_APPLICATIONS_PATH_INCORRECT                                     Handle        = 0x80310052\n\tFVE_E_NOT_ALLOWED_IN_VERSION                                              Handle        = 0x80310053\n\tFVE_E_NO_AUTOUNLOCK_MASTER_KEY                                            Handle        = 0x80310054\n\tFVE_E_MOR_FAILED                                                          Handle        = 0x80310055\n\tFVE_E_HIDDEN_VOLUME                                                       Handle        = 0x80310056\n\tFVE_E_TRANSIENT_STATE                                                     Handle        = 0x80310057\n\tFVE_E_PUBKEY_NOT_ALLOWED                                                  Handle        = 0x80310058\n\tFVE_E_VOLUME_HANDLE_OPEN                                                  Handle        = 0x80310059\n\tFVE_E_NO_FEATURE_LICENSE                                                  Handle        = 0x8031005A\n\tFVE_E_INVALID_STARTUP_OPTIONS                                             Handle        = 0x8031005B\n\tFVE_E_POLICY_RECOVERY_PASSWORD_NOT_ALLOWED                                Handle        = 0x8031005C\n\tFVE_E_POLICY_RECOVERY_PASSWORD_REQUIRED                                   Handle        = 0x8031005D\n\tFVE_E_POLICY_RECOVERY_KEY_NOT_ALLOWED                                     Handle        = 0x8031005E\n\tFVE_E_POLICY_RECOVERY_KEY_REQUIRED                                        Handle        = 0x8031005F\n\tFVE_E_POLICY_STARTUP_PIN_NOT_ALLOWED                                      Handle        = 0x80310060\n\tFVE_E_POLICY_STARTUP_PIN_REQUIRED                                         Handle        = 0x80310061\n\tFVE_E_POLICY_STARTUP_KEY_NOT_ALLOWED                                      Handle        = 0x80310062\n\tFVE_E_POLICY_STARTUP_KEY_REQUIRED                                         Handle        = 0x80310063\n\tFVE_E_POLICY_STARTUP_PIN_KEY_NOT_ALLOWED                                  Handle        = 0x80310064\n\tFVE_E_POLICY_STARTUP_PIN_KEY_REQUIRED                                     Handle        = 0x80310065\n\tFVE_E_POLICY_STARTUP_TPM_NOT_ALLOWED                                      Handle        = 0x80310066\n\tFVE_E_POLICY_STARTUP_TPM_REQUIRED                                         Handle        = 0x80310067\n\tFVE_E_POLICY_INVALID_PIN_LENGTH                                           Handle        = 0x80310068\n\tFVE_E_KEY_PROTECTOR_NOT_SUPPORTED                                         Handle        = 0x80310069\n\tFVE_E_POLICY_PASSPHRASE_NOT_ALLOWED                                       Handle        = 0x8031006A\n\tFVE_E_POLICY_PASSPHRASE_REQUIRED                                          Handle        = 0x8031006B\n\tFVE_E_FIPS_PREVENTS_PASSPHRASE                                            Handle        = 0x8031006C\n\tFVE_E_OS_VOLUME_PASSPHRASE_NOT_ALLOWED                                    Handle        = 0x8031006D\n\tFVE_E_INVALID_BITLOCKER_OID                                               Handle        = 0x8031006E\n\tFVE_E_VOLUME_TOO_SMALL                                                    Handle        = 0x8031006F\n\tFVE_E_DV_NOT_SUPPORTED_ON_FS                                              Handle        = 0x80310070\n\tFVE_E_DV_NOT_ALLOWED_BY_GP                                                Handle        = 0x80310071\n\tFVE_E_POLICY_USER_CERTIFICATE_NOT_ALLOWED                                 Handle        = 0x80310072\n\tFVE_E_POLICY_USER_CERTIFICATE_REQUIRED                                    Handle        = 0x80310073\n\tFVE_E_POLICY_USER_CERT_MUST_BE_HW                                         Handle        = 0x80310074\n\tFVE_E_POLICY_USER_CONFIGURE_FDV_AUTOUNLOCK_NOT_ALLOWED                    Handle        = 0x80310075\n\tFVE_E_POLICY_USER_CONFIGURE_RDV_AUTOUNLOCK_NOT_ALLOWED                    Handle        = 0x80310076\n\tFVE_E_POLICY_USER_CONFIGURE_RDV_NOT_ALLOWED                               Handle        = 0x80310077\n\tFVE_E_POLICY_USER_ENABLE_RDV_NOT_ALLOWED                                  Handle        = 0x80310078\n\tFVE_E_POLICY_USER_DISABLE_RDV_NOT_ALLOWED                                 Handle        = 0x80310079\n\tFVE_E_POLICY_INVALID_PASSPHRASE_LENGTH                                    Handle        = 0x80310080\n\tFVE_E_POLICY_PASSPHRASE_TOO_SIMPLE                                        Handle        = 0x80310081\n\tFVE_E_RECOVERY_PARTITION                                                  Handle        = 0x80310082\n\tFVE_E_POLICY_CONFLICT_FDV_RK_OFF_AUK_ON                                   Handle        = 0x80310083\n\tFVE_E_POLICY_CONFLICT_RDV_RK_OFF_AUK_ON                                   Handle        = 0x80310084\n\tFVE_E_NON_BITLOCKER_OID                                                   Handle        = 0x80310085\n\tFVE_E_POLICY_PROHIBITS_SELFSIGNED                                         Handle        = 0x80310086\n\tFVE_E_POLICY_CONFLICT_RO_AND_STARTUP_KEY_REQUIRED                         Handle        = 0x80310087\n\tFVE_E_CONV_RECOVERY_FAILED                                                Handle        = 0x80310088\n\tFVE_E_VIRTUALIZED_SPACE_TOO_BIG                                           Handle        = 0x80310089\n\tFVE_E_POLICY_CONFLICT_OSV_RP_OFF_ADB_ON                                   Handle        = 0x80310090\n\tFVE_E_POLICY_CONFLICT_FDV_RP_OFF_ADB_ON                                   Handle        = 0x80310091\n\tFVE_E_POLICY_CONFLICT_RDV_RP_OFF_ADB_ON                                   Handle        = 0x80310092\n\tFVE_E_NON_BITLOCKER_KU                                                    Handle        = 0x80310093\n\tFVE_E_PRIVATEKEY_AUTH_FAILED                                              Handle        = 0x80310094\n\tFVE_E_REMOVAL_OF_DRA_FAILED                                               Handle        = 0x80310095\n\tFVE_E_OPERATION_NOT_SUPPORTED_ON_VISTA_VOLUME                             Handle        = 0x80310096\n\tFVE_E_CANT_LOCK_AUTOUNLOCK_ENABLED_VOLUME                                 Handle        = 0x80310097\n\tFVE_E_FIPS_HASH_KDF_NOT_ALLOWED                                           Handle        = 0x80310098\n\tFVE_E_ENH_PIN_INVALID                                                     Handle        = 0x80310099\n\tFVE_E_INVALID_PIN_CHARS                                                   Handle        = 0x8031009A\n\tFVE_E_INVALID_DATUM_TYPE                                                  Handle        = 0x8031009B\n\tFVE_E_EFI_ONLY                                                            Handle        = 0x8031009C\n\tFVE_E_MULTIPLE_NKP_CERTS                                                  Handle        = 0x8031009D\n\tFVE_E_REMOVAL_OF_NKP_FAILED                                               Handle        = 0x8031009E\n\tFVE_E_INVALID_NKP_CERT                                                    Handle        = 0x8031009F\n\tFVE_E_NO_EXISTING_PIN                                                     Handle        = 0x803100A0\n\tFVE_E_PROTECTOR_CHANGE_PIN_MISMATCH                                       Handle        = 0x803100A1\n\tFVE_E_PIN_PROTECTOR_CHANGE_BY_STD_USER_DISALLOWED                         Handle        = 0x803100A2\n\tFVE_E_PROTECTOR_CHANGE_MAX_PIN_CHANGE_ATTEMPTS_REACHED                    Handle        = 0x803100A3\n\tFVE_E_POLICY_PASSPHRASE_REQUIRES_ASCII                                    Handle        = 0x803100A4\n\tFVE_E_FULL_ENCRYPTION_NOT_ALLOWED_ON_TP_STORAGE                           Handle        = 0x803100A5\n\tFVE_E_WIPE_NOT_ALLOWED_ON_TP_STORAGE                                      Handle        = 0x803100A6\n\tFVE_E_KEY_LENGTH_NOT_SUPPORTED_BY_EDRIVE                                  Handle        = 0x803100A7\n\tFVE_E_NO_EXISTING_PASSPHRASE                                              Handle        = 0x803100A8\n\tFVE_E_PROTECTOR_CHANGE_PASSPHRASE_MISMATCH                                Handle        = 0x803100A9\n\tFVE_E_PASSPHRASE_TOO_LONG                                                 Handle        = 0x803100AA\n\tFVE_E_NO_PASSPHRASE_WITH_TPM                                              Handle        = 0x803100AB\n\tFVE_E_NO_TPM_WITH_PASSPHRASE                                              Handle        = 0x803100AC\n\tFVE_E_NOT_ALLOWED_ON_CSV_STACK                                            Handle        = 0x803100AD\n\tFVE_E_NOT_ALLOWED_ON_CLUSTER                                              Handle        = 0x803100AE\n\tFVE_E_EDRIVE_NO_FAILOVER_TO_SW                                            Handle        = 0x803100AF\n\tFVE_E_EDRIVE_BAND_IN_USE                                                  Handle        = 0x803100B0\n\tFVE_E_EDRIVE_DISALLOWED_BY_GP                                             Handle        = 0x803100B1\n\tFVE_E_EDRIVE_INCOMPATIBLE_VOLUME                                          Handle        = 0x803100B2\n\tFVE_E_NOT_ALLOWED_TO_UPGRADE_WHILE_CONVERTING                             Handle        = 0x803100B3\n\tFVE_E_EDRIVE_DV_NOT_SUPPORTED                                             Handle        = 0x803100B4\n\tFVE_E_NO_PREBOOT_KEYBOARD_DETECTED                                        Handle        = 0x803100B5\n\tFVE_E_NO_PREBOOT_KEYBOARD_OR_WINRE_DETECTED                               Handle        = 0x803100B6\n\tFVE_E_POLICY_REQUIRES_STARTUP_PIN_ON_TOUCH_DEVICE                         Handle        = 0x803100B7\n\tFVE_E_POLICY_REQUIRES_RECOVERY_PASSWORD_ON_TOUCH_DEVICE                   Handle        = 0x803100B8\n\tFVE_E_WIPE_CANCEL_NOT_APPLICABLE                                          Handle        = 0x803100B9\n\tFVE_E_SECUREBOOT_DISABLED                                                 Handle        = 0x803100BA\n\tFVE_E_SECUREBOOT_CONFIGURATION_INVALID                                    Handle        = 0x803100BB\n\tFVE_E_EDRIVE_DRY_RUN_FAILED                                               Handle        = 0x803100BC\n\tFVE_E_SHADOW_COPY_PRESENT                                                 Handle        = 0x803100BD\n\tFVE_E_POLICY_INVALID_ENHANCED_BCD_SETTINGS                                Handle        = 0x803100BE\n\tFVE_E_EDRIVE_INCOMPATIBLE_FIRMWARE                                        Handle        = 0x803100BF\n\tFVE_E_PROTECTOR_CHANGE_MAX_PASSPHRASE_CHANGE_ATTEMPTS_REACHED             Handle        = 0x803100C0\n\tFVE_E_PASSPHRASE_PROTECTOR_CHANGE_BY_STD_USER_DISALLOWED                  Handle        = 0x803100C1\n\tFVE_E_LIVEID_ACCOUNT_SUSPENDED                                            Handle        = 0x803100C2\n\tFVE_E_LIVEID_ACCOUNT_BLOCKED                                              Handle        = 0x803100C3\n\tFVE_E_NOT_PROVISIONED_ON_ALL_VOLUMES                                      Handle        = 0x803100C4\n\tFVE_E_DE_FIXED_DATA_NOT_SUPPORTED                                         Handle        = 0x803100C5\n\tFVE_E_DE_HARDWARE_NOT_COMPLIANT                                           Handle        = 0x803100C6\n\tFVE_E_DE_WINRE_NOT_CONFIGURED                                             Handle        = 0x803100C7\n\tFVE_E_DE_PROTECTION_SUSPENDED                                             Handle        = 0x803100C8\n\tFVE_E_DE_OS_VOLUME_NOT_PROTECTED                                          Handle        = 0x803100C9\n\tFVE_E_DE_DEVICE_LOCKEDOUT                                                 Handle        = 0x803100CA\n\tFVE_E_DE_PROTECTION_NOT_YET_ENABLED                                       Handle        = 0x803100CB\n\tFVE_E_INVALID_PIN_CHARS_DETAILED                                          Handle        = 0x803100CC\n\tFVE_E_DEVICE_LOCKOUT_COUNTER_UNAVAILABLE                                  Handle        = 0x803100CD\n\tFVE_E_DEVICELOCKOUT_COUNTER_MISMATCH                                      Handle        = 0x803100CE\n\tFVE_E_BUFFER_TOO_LARGE                                                    Handle        = 0x803100CF\n\tFVE_E_NO_SUCH_CAPABILITY_ON_TARGET                                        Handle        = 0x803100D0\n\tFVE_E_DE_PREVENTED_FOR_OS                                                 Handle        = 0x803100D1\n\tFVE_E_DE_VOLUME_OPTED_OUT                                                 Handle        = 0x803100D2\n\tFVE_E_DE_VOLUME_NOT_SUPPORTED                                             Handle        = 0x803100D3\n\tFVE_E_EOW_NOT_SUPPORTED_IN_VERSION                                        Handle        = 0x803100D4\n\tFVE_E_ADBACKUP_NOT_ENABLED                                                Handle        = 0x803100D5\n\tFVE_E_VOLUME_EXTEND_PREVENTS_EOW_DECRYPT                                  Handle        = 0x803100D6\n\tFVE_E_NOT_DE_VOLUME                                                       Handle        = 0x803100D7\n\tFVE_E_PROTECTION_CANNOT_BE_DISABLED                                       Handle        = 0x803100D8\n\tFVE_E_OSV_KSR_NOT_ALLOWED                                                 Handle        = 0x803100D9\n\tFVE_E_AD_BACKUP_REQUIRED_POLICY_NOT_SET_OS_DRIVE                          Handle        = 0x803100DA\n\tFVE_E_AD_BACKUP_REQUIRED_POLICY_NOT_SET_FIXED_DRIVE                       Handle        = 0x803100DB\n\tFVE_E_AD_BACKUP_REQUIRED_POLICY_NOT_SET_REMOVABLE_DRIVE                   Handle        = 0x803100DC\n\tFVE_E_KEY_ROTATION_NOT_SUPPORTED                                          Handle        = 0x803100DD\n\tFVE_E_EXECUTE_REQUEST_SENT_TOO_SOON                                       Handle        = 0x803100DE\n\tFVE_E_KEY_ROTATION_NOT_ENABLED                                            Handle        = 0x803100DF\n\tFVE_E_DEVICE_NOT_JOINED                                                   Handle        = 0x803100E0\n\tFWP_E_CALLOUT_NOT_FOUND                                                   Handle        = 0x80320001\n\tFWP_E_CONDITION_NOT_FOUND                                                 Handle        = 0x80320002\n\tFWP_E_FILTER_NOT_FOUND                                                    Handle        = 0x80320003\n\tFWP_E_LAYER_NOT_FOUND                                                     Handle        = 0x80320004\n\tFWP_E_PROVIDER_NOT_FOUND                                                  Handle        = 0x80320005\n\tFWP_E_PROVIDER_CONTEXT_NOT_FOUND                                          Handle        = 0x80320006\n\tFWP_E_SUBLAYER_NOT_FOUND                                                  Handle        = 0x80320007\n\tFWP_E_NOT_FOUND                                                           Handle        = 0x80320008\n\tFWP_E_ALREADY_EXISTS                                                      Handle        = 0x80320009\n\tFWP_E_IN_USE                                                              Handle        = 0x8032000A\n\tFWP_E_DYNAMIC_SESSION_IN_PROGRESS                                         Handle        = 0x8032000B\n\tFWP_E_WRONG_SESSION                                                       Handle        = 0x8032000C\n\tFWP_E_NO_TXN_IN_PROGRESS                                                  Handle        = 0x8032000D\n\tFWP_E_TXN_IN_PROGRESS                                                     Handle        = 0x8032000E\n\tFWP_E_TXN_ABORTED                                                         Handle        = 0x8032000F\n\tFWP_E_SESSION_ABORTED                                                     Handle        = 0x80320010\n\tFWP_E_INCOMPATIBLE_TXN                                                    Handle        = 0x80320011\n\tFWP_E_TIMEOUT                                                             Handle        = 0x80320012\n\tFWP_E_NET_EVENTS_DISABLED                                                 Handle        = 0x80320013\n\tFWP_E_INCOMPATIBLE_LAYER                                                  Handle        = 0x80320014\n\tFWP_E_KM_CLIENTS_ONLY                                                     Handle        = 0x80320015\n\tFWP_E_LIFETIME_MISMATCH                                                   Handle        = 0x80320016\n\tFWP_E_BUILTIN_OBJECT                                                      Handle        = 0x80320017\n\tFWP_E_TOO_MANY_CALLOUTS                                                   Handle        = 0x80320018\n\tFWP_E_NOTIFICATION_DROPPED                                                Handle        = 0x80320019\n\tFWP_E_TRAFFIC_MISMATCH                                                    Handle        = 0x8032001A\n\tFWP_E_INCOMPATIBLE_SA_STATE                                               Handle        = 0x8032001B\n\tFWP_E_NULL_POINTER                                                        Handle        = 0x8032001C\n\tFWP_E_INVALID_ENUMERATOR                                                  Handle        = 0x8032001D\n\tFWP_E_INVALID_FLAGS                                                       Handle        = 0x8032001E\n\tFWP_E_INVALID_NET_MASK                                                    Handle        = 0x8032001F\n\tFWP_E_INVALID_RANGE                                                       Handle        = 0x80320020\n\tFWP_E_INVALID_INTERVAL                                                    Handle        = 0x80320021\n\tFWP_E_ZERO_LENGTH_ARRAY                                                   Handle        = 0x80320022\n\tFWP_E_NULL_DISPLAY_NAME                                                   Handle        = 0x80320023\n\tFWP_E_INVALID_ACTION_TYPE                                                 Handle        = 0x80320024\n\tFWP_E_INVALID_WEIGHT                                                      Handle        = 0x80320025\n\tFWP_E_MATCH_TYPE_MISMATCH                                                 Handle        = 0x80320026\n\tFWP_E_TYPE_MISMATCH                                                       Handle        = 0x80320027\n\tFWP_E_OUT_OF_BOUNDS                                                       Handle        = 0x80320028\n\tFWP_E_RESERVED                                                            Handle        = 0x80320029\n\tFWP_E_DUPLICATE_CONDITION                                                 Handle        = 0x8032002A\n\tFWP_E_DUPLICATE_KEYMOD                                                    Handle        = 0x8032002B\n\tFWP_E_ACTION_INCOMPATIBLE_WITH_LAYER                                      Handle        = 0x8032002C\n\tFWP_E_ACTION_INCOMPATIBLE_WITH_SUBLAYER                                   Handle        = 0x8032002D\n\tFWP_E_CONTEXT_INCOMPATIBLE_WITH_LAYER                                     Handle        = 0x8032002E\n\tFWP_E_CONTEXT_INCOMPATIBLE_WITH_CALLOUT                                   Handle        = 0x8032002F\n\tFWP_E_INCOMPATIBLE_AUTH_METHOD                                            Handle        = 0x80320030\n\tFWP_E_INCOMPATIBLE_DH_GROUP                                               Handle        = 0x80320031\n\tFWP_E_EM_NOT_SUPPORTED                                                    Handle        = 0x80320032\n\tFWP_E_NEVER_MATCH                                                         Handle        = 0x80320033\n\tFWP_E_PROVIDER_CONTEXT_MISMATCH                                           Handle        = 0x80320034\n\tFWP_E_INVALID_PARAMETER                                                   Handle        = 0x80320035\n\tFWP_E_TOO_MANY_SUBLAYERS                                                  Handle        = 0x80320036\n\tFWP_E_CALLOUT_NOTIFICATION_FAILED                                         Handle        = 0x80320037\n\tFWP_E_INVALID_AUTH_TRANSFORM                                              Handle        = 0x80320038\n\tFWP_E_INVALID_CIPHER_TRANSFORM                                            Handle        = 0x80320039\n\tFWP_E_INCOMPATIBLE_CIPHER_TRANSFORM                                       Handle        = 0x8032003A\n\tFWP_E_INVALID_TRANSFORM_COMBINATION                                       Handle        = 0x8032003B\n\tFWP_E_DUPLICATE_AUTH_METHOD                                               Handle        = 0x8032003C\n\tFWP_E_INVALID_TUNNEL_ENDPOINT                                             Handle        = 0x8032003D\n\tFWP_E_L2_DRIVER_NOT_READY                                                 Handle        = 0x8032003E\n\tFWP_E_KEY_DICTATOR_ALREADY_REGISTERED                                     Handle        = 0x8032003F\n\tFWP_E_KEY_DICTATION_INVALID_KEYING_MATERIAL                               Handle        = 0x80320040\n\tFWP_E_CONNECTIONS_DISABLED                                                Handle        = 0x80320041\n\tFWP_E_INVALID_DNS_NAME                                                    Handle        = 0x80320042\n\tFWP_E_STILL_ON                                                            Handle        = 0x80320043\n\tFWP_E_IKEEXT_NOT_RUNNING                                                  Handle        = 0x80320044\n\tFWP_E_DROP_NOICMP                                                         Handle        = 0x80320104\n\tWS_S_ASYNC                                                                Handle        = 0x003D0000\n\tWS_S_END                                                                  Handle        = 0x003D0001\n\tWS_E_INVALID_FORMAT                                                       Handle        = 0x803D0000\n\tWS_E_OBJECT_FAULTED                                                       Handle        = 0x803D0001\n\tWS_E_NUMERIC_OVERFLOW                                                     Handle        = 0x803D0002\n\tWS_E_INVALID_OPERATION                                                    Handle        = 0x803D0003\n\tWS_E_OPERATION_ABORTED                                                    Handle        = 0x803D0004\n\tWS_E_ENDPOINT_ACCESS_DENIED                                               Handle        = 0x803D0005\n\tWS_E_OPERATION_TIMED_OUT                                                  Handle        = 0x803D0006\n\tWS_E_OPERATION_ABANDONED                                                  Handle        = 0x803D0007\n\tWS_E_QUOTA_EXCEEDED                                                       Handle        = 0x803D0008\n\tWS_E_NO_TRANSLATION_AVAILABLE                                             Handle        = 0x803D0009\n\tWS_E_SECURITY_VERIFICATION_FAILURE                                        Handle        = 0x803D000A\n\tWS_E_ADDRESS_IN_USE                                                       Handle        = 0x803D000B\n\tWS_E_ADDRESS_NOT_AVAILABLE                                                Handle        = 0x803D000C\n\tWS_E_ENDPOINT_NOT_FOUND                                                   Handle        = 0x803D000D\n\tWS_E_ENDPOINT_NOT_AVAILABLE                                               Handle        = 0x803D000E\n\tWS_E_ENDPOINT_FAILURE                                                     Handle        = 0x803D000F\n\tWS_E_ENDPOINT_UNREACHABLE                                                 Handle        = 0x803D0010\n\tWS_E_ENDPOINT_ACTION_NOT_SUPPORTED                                        Handle        = 0x803D0011\n\tWS_E_ENDPOINT_TOO_BUSY                                                    Handle        = 0x803D0012\n\tWS_E_ENDPOINT_FAULT_RECEIVED                                              Handle        = 0x803D0013\n\tWS_E_ENDPOINT_DISCONNECTED                                                Handle        = 0x803D0014\n\tWS_E_PROXY_FAILURE                                                        Handle        = 0x803D0015\n\tWS_E_PROXY_ACCESS_DENIED                                                  Handle        = 0x803D0016\n\tWS_E_NOT_SUPPORTED                                                        Handle        = 0x803D0017\n\tWS_E_PROXY_REQUIRES_BASIC_AUTH                                            Handle        = 0x803D0018\n\tWS_E_PROXY_REQUIRES_DIGEST_AUTH                                           Handle        = 0x803D0019\n\tWS_E_PROXY_REQUIRES_NTLM_AUTH                                             Handle        = 0x803D001A\n\tWS_E_PROXY_REQUIRES_NEGOTIATE_AUTH                                        Handle        = 0x803D001B\n\tWS_E_SERVER_REQUIRES_BASIC_AUTH                                           Handle        = 0x803D001C\n\tWS_E_SERVER_REQUIRES_DIGEST_AUTH                                          Handle        = 0x803D001D\n\tWS_E_SERVER_REQUIRES_NTLM_AUTH                                            Handle        = 0x803D001E\n\tWS_E_SERVER_REQUIRES_NEGOTIATE_AUTH                                       Handle        = 0x803D001F\n\tWS_E_INVALID_ENDPOINT_URL                                                 Handle        = 0x803D0020\n\tWS_E_OTHER                                                                Handle        = 0x803D0021\n\tWS_E_SECURITY_TOKEN_EXPIRED                                               Handle        = 0x803D0022\n\tWS_E_SECURITY_SYSTEM_FAILURE                                              Handle        = 0x803D0023\n\tERROR_NDIS_INTERFACE_CLOSING                                              syscall.Errno = 0x80340002\n\tERROR_NDIS_BAD_VERSION                                                    syscall.Errno = 0x80340004\n\tERROR_NDIS_BAD_CHARACTERISTICS                                            syscall.Errno = 0x80340005\n\tERROR_NDIS_ADAPTER_NOT_FOUND                                              syscall.Errno = 0x80340006\n\tERROR_NDIS_OPEN_FAILED                                                    syscall.Errno = 0x80340007\n\tERROR_NDIS_DEVICE_FAILED                                                  syscall.Errno = 0x80340008\n\tERROR_NDIS_MULTICAST_FULL                                                 syscall.Errno = 0x80340009\n\tERROR_NDIS_MULTICAST_EXISTS                                               syscall.Errno = 0x8034000A\n\tERROR_NDIS_MULTICAST_NOT_FOUND                                            syscall.Errno = 0x8034000B\n\tERROR_NDIS_REQUEST_ABORTED                                                syscall.Errno = 0x8034000C\n\tERROR_NDIS_RESET_IN_PROGRESS                                              syscall.Errno = 0x8034000D\n\tERROR_NDIS_NOT_SUPPORTED                                                  syscall.Errno = 0x803400BB\n\tERROR_NDIS_INVALID_PACKET                                                 syscall.Errno = 0x8034000F\n\tERROR_NDIS_ADAPTER_NOT_READY                                              syscall.Errno = 0x80340011\n\tERROR_NDIS_INVALID_LENGTH                                                 syscall.Errno = 0x80340014\n\tERROR_NDIS_INVALID_DATA                                                   syscall.Errno = 0x80340015\n\tERROR_NDIS_BUFFER_TOO_SHORT                                               syscall.Errno = 0x80340016\n\tERROR_NDIS_INVALID_OID                                                    syscall.Errno = 0x80340017\n\tERROR_NDIS_ADAPTER_REMOVED                                                syscall.Errno = 0x80340018\n\tERROR_NDIS_UNSUPPORTED_MEDIA                                              syscall.Errno = 0x80340019\n\tERROR_NDIS_GROUP_ADDRESS_IN_USE                                           syscall.Errno = 0x8034001A\n\tERROR_NDIS_FILE_NOT_FOUND                                                 syscall.Errno = 0x8034001B\n\tERROR_NDIS_ERROR_READING_FILE                                             syscall.Errno = 0x8034001C\n\tERROR_NDIS_ALREADY_MAPPED                                                 syscall.Errno = 0x8034001D\n\tERROR_NDIS_RESOURCE_CONFLICT                                              syscall.Errno = 0x8034001E\n\tERROR_NDIS_MEDIA_DISCONNECTED                                             syscall.Errno = 0x8034001F\n\tERROR_NDIS_INVALID_ADDRESS                                                syscall.Errno = 0x80340022\n\tERROR_NDIS_INVALID_DEVICE_REQUEST                                         syscall.Errno = 0x80340010\n\tERROR_NDIS_PAUSED                                                         syscall.Errno = 0x8034002A\n\tERROR_NDIS_INTERFACE_NOT_FOUND                                            syscall.Errno = 0x8034002B\n\tERROR_NDIS_UNSUPPORTED_REVISION                                           syscall.Errno = 0x8034002C\n\tERROR_NDIS_INVALID_PORT                                                   syscall.Errno = 0x8034002D\n\tERROR_NDIS_INVALID_PORT_STATE                                             syscall.Errno = 0x8034002E\n\tERROR_NDIS_LOW_POWER_STATE                                                syscall.Errno = 0x8034002F\n\tERROR_NDIS_REINIT_REQUIRED                                                syscall.Errno = 0x80340030\n\tERROR_NDIS_NO_QUEUES                                                      syscall.Errno = 0x80340031\n\tERROR_NDIS_DOT11_AUTO_CONFIG_ENABLED                                      syscall.Errno = 0x80342000\n\tERROR_NDIS_DOT11_MEDIA_IN_USE                                             syscall.Errno = 0x80342001\n\tERROR_NDIS_DOT11_POWER_STATE_INVALID                                      syscall.Errno = 0x80342002\n\tERROR_NDIS_PM_WOL_PATTERN_LIST_FULL                                       syscall.Errno = 0x80342003\n\tERROR_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL                                  syscall.Errno = 0x80342004\n\tERROR_NDIS_DOT11_AP_CHANNEL_CURRENTLY_NOT_AVAILABLE                       syscall.Errno = 0x80342005\n\tERROR_NDIS_DOT11_AP_BAND_CURRENTLY_NOT_AVAILABLE                          syscall.Errno = 0x80342006\n\tERROR_NDIS_DOT11_AP_CHANNEL_NOT_ALLOWED                                   syscall.Errno = 0x80342007\n\tERROR_NDIS_DOT11_AP_BAND_NOT_ALLOWED                                      syscall.Errno = 0x80342008\n\tERROR_NDIS_INDICATION_REQUIRED                                            syscall.Errno = 0x00340001\n\tERROR_NDIS_OFFLOAD_POLICY                                                 syscall.Errno = 0xC034100F\n\tERROR_NDIS_OFFLOAD_CONNECTION_REJECTED                                    syscall.Errno = 0xC0341012\n\tERROR_NDIS_OFFLOAD_PATH_REJECTED                                          syscall.Errno = 0xC0341013\n\tERROR_HV_INVALID_HYPERCALL_CODE                                           syscall.Errno = 0xC0350002\n\tERROR_HV_INVALID_HYPERCALL_INPUT                                          syscall.Errno = 0xC0350003\n\tERROR_HV_INVALID_ALIGNMENT                                                syscall.Errno = 0xC0350004\n\tERROR_HV_INVALID_PARAMETER                                                syscall.Errno = 0xC0350005\n\tERROR_HV_ACCESS_DENIED                                                    syscall.Errno = 0xC0350006\n\tERROR_HV_INVALID_PARTITION_STATE                                          syscall.Errno = 0xC0350007\n\tERROR_HV_OPERATION_DENIED                                                 syscall.Errno = 0xC0350008\n\tERROR_HV_UNKNOWN_PROPERTY                                                 syscall.Errno = 0xC0350009\n\tERROR_HV_PROPERTY_VALUE_OUT_OF_RANGE                                      syscall.Errno = 0xC035000A\n\tERROR_HV_INSUFFICIENT_MEMORY                                              syscall.Errno = 0xC035000B\n\tERROR_HV_PARTITION_TOO_DEEP                                               syscall.Errno = 0xC035000C\n\tERROR_HV_INVALID_PARTITION_ID                                             syscall.Errno = 0xC035000D\n\tERROR_HV_INVALID_VP_INDEX                                                 syscall.Errno = 0xC035000E\n\tERROR_HV_INVALID_PORT_ID                                                  syscall.Errno = 0xC0350011\n\tERROR_HV_INVALID_CONNECTION_ID                                            syscall.Errno = 0xC0350012\n\tERROR_HV_INSUFFICIENT_BUFFERS                                             syscall.Errno = 0xC0350013\n\tERROR_HV_NOT_ACKNOWLEDGED                                                 syscall.Errno = 0xC0350014\n\tERROR_HV_INVALID_VP_STATE                                                 syscall.Errno = 0xC0350015\n\tERROR_HV_ACKNOWLEDGED                                                     syscall.Errno = 0xC0350016\n\tERROR_HV_INVALID_SAVE_RESTORE_STATE                                       syscall.Errno = 0xC0350017\n\tERROR_HV_INVALID_SYNIC_STATE                                              syscall.Errno = 0xC0350018\n\tERROR_HV_OBJECT_IN_USE                                                    syscall.Errno = 0xC0350019\n\tERROR_HV_INVALID_PROXIMITY_DOMAIN_INFO                                    syscall.Errno = 0xC035001A\n\tERROR_HV_NO_DATA                                                          syscall.Errno = 0xC035001B\n\tERROR_HV_INACTIVE                                                         syscall.Errno = 0xC035001C\n\tERROR_HV_NO_RESOURCES                                                     syscall.Errno = 0xC035001D\n\tERROR_HV_FEATURE_UNAVAILABLE                                              syscall.Errno = 0xC035001E\n\tERROR_HV_INSUFFICIENT_BUFFER                                              syscall.Errno = 0xC0350033\n\tERROR_HV_INSUFFICIENT_DEVICE_DOMAINS                                      syscall.Errno = 0xC0350038\n\tERROR_HV_CPUID_FEATURE_VALIDATION                                         syscall.Errno = 0xC035003C\n\tERROR_HV_CPUID_XSAVE_FEATURE_VALIDATION                                   syscall.Errno = 0xC035003D\n\tERROR_HV_PROCESSOR_STARTUP_TIMEOUT                                        syscall.Errno = 0xC035003E\n\tERROR_HV_SMX_ENABLED                                                      syscall.Errno = 0xC035003F\n\tERROR_HV_INVALID_LP_INDEX                                                 syscall.Errno = 0xC0350041\n\tERROR_HV_INVALID_REGISTER_VALUE                                           syscall.Errno = 0xC0350050\n\tERROR_HV_INVALID_VTL_STATE                                                syscall.Errno = 0xC0350051\n\tERROR_HV_NX_NOT_DETECTED                                                  syscall.Errno = 0xC0350055\n\tERROR_HV_INVALID_DEVICE_ID                                                syscall.Errno = 0xC0350057\n\tERROR_HV_INVALID_DEVICE_STATE                                             syscall.Errno = 0xC0350058\n\tERROR_HV_PENDING_PAGE_REQUESTS                                            syscall.Errno = 0x00350059\n\tERROR_HV_PAGE_REQUEST_INVALID                                             syscall.Errno = 0xC0350060\n\tERROR_HV_INVALID_CPU_GROUP_ID                                             syscall.Errno = 0xC035006F\n\tERROR_HV_INVALID_CPU_GROUP_STATE                                          syscall.Errno = 0xC0350070\n\tERROR_HV_OPERATION_FAILED                                                 syscall.Errno = 0xC0350071\n\tERROR_HV_NOT_ALLOWED_WITH_NESTED_VIRT_ACTIVE                              syscall.Errno = 0xC0350072\n\tERROR_HV_INSUFFICIENT_ROOT_MEMORY                                         syscall.Errno = 0xC0350073\n\tERROR_HV_NOT_PRESENT                                                      syscall.Errno = 0xC0351000\n\tERROR_VID_DUPLICATE_HANDLER                                               syscall.Errno = 0xC0370001\n\tERROR_VID_TOO_MANY_HANDLERS                                               syscall.Errno = 0xC0370002\n\tERROR_VID_QUEUE_FULL                                                      syscall.Errno = 0xC0370003\n\tERROR_VID_HANDLER_NOT_PRESENT                                             syscall.Errno = 0xC0370004\n\tERROR_VID_INVALID_OBJECT_NAME                                             syscall.Errno = 0xC0370005\n\tERROR_VID_PARTITION_NAME_TOO_LONG                                         syscall.Errno = 0xC0370006\n\tERROR_VID_MESSAGE_QUEUE_NAME_TOO_LONG                                     syscall.Errno = 0xC0370007\n\tERROR_VID_PARTITION_ALREADY_EXISTS                                        syscall.Errno = 0xC0370008\n\tERROR_VID_PARTITION_DOES_NOT_EXIST                                        syscall.Errno = 0xC0370009\n\tERROR_VID_PARTITION_NAME_NOT_FOUND                                        syscall.Errno = 0xC037000A\n\tERROR_VID_MESSAGE_QUEUE_ALREADY_EXISTS                                    syscall.Errno = 0xC037000B\n\tERROR_VID_EXCEEDED_MBP_ENTRY_MAP_LIMIT                                    syscall.Errno = 0xC037000C\n\tERROR_VID_MB_STILL_REFERENCED                                             syscall.Errno = 0xC037000D\n\tERROR_VID_CHILD_GPA_PAGE_SET_CORRUPTED                                    syscall.Errno = 0xC037000E\n\tERROR_VID_INVALID_NUMA_SETTINGS                                           syscall.Errno = 0xC037000F\n\tERROR_VID_INVALID_NUMA_NODE_INDEX                                         syscall.Errno = 0xC0370010\n\tERROR_VID_NOTIFICATION_QUEUE_ALREADY_ASSOCIATED                           syscall.Errno = 0xC0370011\n\tERROR_VID_INVALID_MEMORY_BLOCK_HANDLE                                     syscall.Errno = 0xC0370012\n\tERROR_VID_PAGE_RANGE_OVERFLOW                                             syscall.Errno = 0xC0370013\n\tERROR_VID_INVALID_MESSAGE_QUEUE_HANDLE                                    syscall.Errno = 0xC0370014\n\tERROR_VID_INVALID_GPA_RANGE_HANDLE                                        syscall.Errno = 0xC0370015\n\tERROR_VID_NO_MEMORY_BLOCK_NOTIFICATION_QUEUE                              syscall.Errno = 0xC0370016\n\tERROR_VID_MEMORY_BLOCK_LOCK_COUNT_EXCEEDED                                syscall.Errno = 0xC0370017\n\tERROR_VID_INVALID_PPM_HANDLE                                              syscall.Errno = 0xC0370018\n\tERROR_VID_MBPS_ARE_LOCKED                                                 syscall.Errno = 0xC0370019\n\tERROR_VID_MESSAGE_QUEUE_CLOSED                                            syscall.Errno = 0xC037001A\n\tERROR_VID_VIRTUAL_PROCESSOR_LIMIT_EXCEEDED                                syscall.Errno = 0xC037001B\n\tERROR_VID_STOP_PENDING                                                    syscall.Errno = 0xC037001C\n\tERROR_VID_INVALID_PROCESSOR_STATE                                         syscall.Errno = 0xC037001D\n\tERROR_VID_EXCEEDED_KM_CONTEXT_COUNT_LIMIT                                 syscall.Errno = 0xC037001E\n\tERROR_VID_KM_INTERFACE_ALREADY_INITIALIZED                                syscall.Errno = 0xC037001F\n\tERROR_VID_MB_PROPERTY_ALREADY_SET_RESET                                   syscall.Errno = 0xC0370020\n\tERROR_VID_MMIO_RANGE_DESTROYED                                            syscall.Errno = 0xC0370021\n\tERROR_VID_INVALID_CHILD_GPA_PAGE_SET                                      syscall.Errno = 0xC0370022\n\tERROR_VID_RESERVE_PAGE_SET_IS_BEING_USED                                  syscall.Errno = 0xC0370023\n\tERROR_VID_RESERVE_PAGE_SET_TOO_SMALL                                      syscall.Errno = 0xC0370024\n\tERROR_VID_MBP_ALREADY_LOCKED_USING_RESERVED_PAGE                          syscall.Errno = 0xC0370025\n\tERROR_VID_MBP_COUNT_EXCEEDED_LIMIT                                        syscall.Errno = 0xC0370026\n\tERROR_VID_SAVED_STATE_CORRUPT                                             syscall.Errno = 0xC0370027\n\tERROR_VID_SAVED_STATE_UNRECOGNIZED_ITEM                                   syscall.Errno = 0xC0370028\n\tERROR_VID_SAVED_STATE_INCOMPATIBLE                                        syscall.Errno = 0xC0370029\n\tERROR_VID_VTL_ACCESS_DENIED                                               syscall.Errno = 0xC037002A\n\tERROR_VMCOMPUTE_TERMINATED_DURING_START                                   syscall.Errno = 0xC0370100\n\tERROR_VMCOMPUTE_IMAGE_MISMATCH                                            syscall.Errno = 0xC0370101\n\tERROR_VMCOMPUTE_HYPERV_NOT_INSTALLED                                      syscall.Errno = 0xC0370102\n\tERROR_VMCOMPUTE_OPERATION_PENDING                                         syscall.Errno = 0xC0370103\n\tERROR_VMCOMPUTE_TOO_MANY_NOTIFICATIONS                                    syscall.Errno = 0xC0370104\n\tERROR_VMCOMPUTE_INVALID_STATE                                             syscall.Errno = 0xC0370105\n\tERROR_VMCOMPUTE_UNEXPECTED_EXIT                                           syscall.Errno = 0xC0370106\n\tERROR_VMCOMPUTE_TERMINATED                                                syscall.Errno = 0xC0370107\n\tERROR_VMCOMPUTE_CONNECT_FAILED                                            syscall.Errno = 0xC0370108\n\tERROR_VMCOMPUTE_TIMEOUT                                                   syscall.Errno = 0xC0370109\n\tERROR_VMCOMPUTE_CONNECTION_CLOSED                                         syscall.Errno = 0xC037010A\n\tERROR_VMCOMPUTE_UNKNOWN_MESSAGE                                           syscall.Errno = 0xC037010B\n\tERROR_VMCOMPUTE_UNSUPPORTED_PROTOCOL_VERSION                              syscall.Errno = 0xC037010C\n\tERROR_VMCOMPUTE_INVALID_JSON                                              syscall.Errno = 0xC037010D\n\tERROR_VMCOMPUTE_SYSTEM_NOT_FOUND                                          syscall.Errno = 0xC037010E\n\tERROR_VMCOMPUTE_SYSTEM_ALREADY_EXISTS                                     syscall.Errno = 0xC037010F\n\tERROR_VMCOMPUTE_SYSTEM_ALREADY_STOPPED                                    syscall.Errno = 0xC0370110\n\tERROR_VMCOMPUTE_PROTOCOL_ERROR                                            syscall.Errno = 0xC0370111\n\tERROR_VMCOMPUTE_INVALID_LAYER                                             syscall.Errno = 0xC0370112\n\tERROR_VMCOMPUTE_WINDOWS_INSIDER_REQUIRED                                  syscall.Errno = 0xC0370113\n\tHCS_E_TERMINATED_DURING_START                                             Handle        = 0x80370100\n\tHCS_E_IMAGE_MISMATCH                                                      Handle        = 0x80370101\n\tHCS_E_HYPERV_NOT_INSTALLED                                                Handle        = 0x80370102\n\tHCS_E_INVALID_STATE                                                       Handle        = 0x80370105\n\tHCS_E_UNEXPECTED_EXIT                                                     Handle        = 0x80370106\n\tHCS_E_TERMINATED                                                          Handle        = 0x80370107\n\tHCS_E_CONNECT_FAILED                                                      Handle        = 0x80370108\n\tHCS_E_CONNECTION_TIMEOUT                                                  Handle        = 0x80370109\n\tHCS_E_CONNECTION_CLOSED                                                   Handle        = 0x8037010A\n\tHCS_E_UNKNOWN_MESSAGE                                                     Handle        = 0x8037010B\n\tHCS_E_UNSUPPORTED_PROTOCOL_VERSION                                        Handle        = 0x8037010C\n\tHCS_E_INVALID_JSON                                                        Handle        = 0x8037010D\n\tHCS_E_SYSTEM_NOT_FOUND                                                    Handle        = 0x8037010E\n\tHCS_E_SYSTEM_ALREADY_EXISTS                                               Handle        = 0x8037010F\n\tHCS_E_SYSTEM_ALREADY_STOPPED                                              Handle        = 0x80370110\n\tHCS_E_PROTOCOL_ERROR                                                      Handle        = 0x80370111\n\tHCS_E_INVALID_LAYER                                                       Handle        = 0x80370112\n\tHCS_E_WINDOWS_INSIDER_REQUIRED                                            Handle        = 0x80370113\n\tHCS_E_SERVICE_NOT_AVAILABLE                                               Handle        = 0x80370114\n\tHCS_E_OPERATION_NOT_STARTED                                               Handle        = 0x80370115\n\tHCS_E_OPERATION_ALREADY_STARTED                                           Handle        = 0x80370116\n\tHCS_E_OPERATION_PENDING                                                   Handle        = 0x80370117\n\tHCS_E_OPERATION_TIMEOUT                                                   Handle        = 0x80370118\n\tHCS_E_OPERATION_SYSTEM_CALLBACK_ALREADY_SET                               Handle        = 0x80370119\n\tHCS_E_OPERATION_RESULT_ALLOCATION_FAILED                                  Handle        = 0x8037011A\n\tHCS_E_ACCESS_DENIED                                                       Handle        = 0x8037011B\n\tHCS_E_GUEST_CRITICAL_ERROR                                                Handle        = 0x8037011C\n\tERROR_VNET_VIRTUAL_SWITCH_NAME_NOT_FOUND                                  syscall.Errno = 0xC0370200\n\tERROR_VID_REMOTE_NODE_PARENT_GPA_PAGES_USED                               syscall.Errno = 0x80370001\n\tWHV_E_UNKNOWN_CAPABILITY                                                  Handle        = 0x80370300\n\tWHV_E_INSUFFICIENT_BUFFER                                                 Handle        = 0x80370301\n\tWHV_E_UNKNOWN_PROPERTY                                                    Handle        = 0x80370302\n\tWHV_E_UNSUPPORTED_HYPERVISOR_CONFIG                                       Handle        = 0x80370303\n\tWHV_E_INVALID_PARTITION_CONFIG                                            Handle        = 0x80370304\n\tWHV_E_GPA_RANGE_NOT_FOUND                                                 Handle        = 0x80370305\n\tWHV_E_VP_ALREADY_EXISTS                                                   Handle        = 0x80370306\n\tWHV_E_VP_DOES_NOT_EXIST                                                   Handle        = 0x80370307\n\tWHV_E_INVALID_VP_STATE                                                    Handle        = 0x80370308\n\tWHV_E_INVALID_VP_REGISTER_NAME                                            Handle        = 0x80370309\n\tERROR_VSMB_SAVED_STATE_FILE_NOT_FOUND                                     syscall.Errno = 0xC0370400\n\tERROR_VSMB_SAVED_STATE_CORRUPT                                            syscall.Errno = 0xC0370401\n\tERROR_VOLMGR_INCOMPLETE_REGENERATION                                      syscall.Errno = 0x80380001\n\tERROR_VOLMGR_INCOMPLETE_DISK_MIGRATION                                    syscall.Errno = 0x80380002\n\tERROR_VOLMGR_DATABASE_FULL                                                syscall.Errno = 0xC0380001\n\tERROR_VOLMGR_DISK_CONFIGURATION_CORRUPTED                                 syscall.Errno = 0xC0380002\n\tERROR_VOLMGR_DISK_CONFIGURATION_NOT_IN_SYNC                               syscall.Errno = 0xC0380003\n\tERROR_VOLMGR_PACK_CONFIG_UPDATE_FAILED                                    syscall.Errno = 0xC0380004\n\tERROR_VOLMGR_DISK_CONTAINS_NON_SIMPLE_VOLUME                              syscall.Errno = 0xC0380005\n\tERROR_VOLMGR_DISK_DUPLICATE                                               syscall.Errno = 0xC0380006\n\tERROR_VOLMGR_DISK_DYNAMIC                                                 syscall.Errno = 0xC0380007\n\tERROR_VOLMGR_DISK_ID_INVALID                                              syscall.Errno = 0xC0380008\n\tERROR_VOLMGR_DISK_INVALID                                                 syscall.Errno = 0xC0380009\n\tERROR_VOLMGR_DISK_LAST_VOTER                                              syscall.Errno = 0xC038000A\n\tERROR_VOLMGR_DISK_LAYOUT_INVALID                                          syscall.Errno = 0xC038000B\n\tERROR_VOLMGR_DISK_LAYOUT_NON_BASIC_BETWEEN_BASIC_PARTITIONS               syscall.Errno = 0xC038000C\n\tERROR_VOLMGR_DISK_LAYOUT_NOT_CYLINDER_ALIGNED                             syscall.Errno = 0xC038000D\n\tERROR_VOLMGR_DISK_LAYOUT_PARTITIONS_TOO_SMALL                             syscall.Errno = 0xC038000E\n\tERROR_VOLMGR_DISK_LAYOUT_PRIMARY_BETWEEN_LOGICAL_PARTITIONS               syscall.Errno = 0xC038000F\n\tERROR_VOLMGR_DISK_LAYOUT_TOO_MANY_PARTITIONS                              syscall.Errno = 0xC0380010\n\tERROR_VOLMGR_DISK_MISSING                                                 syscall.Errno = 0xC0380011\n\tERROR_VOLMGR_DISK_NOT_EMPTY                                               syscall.Errno = 0xC0380012\n\tERROR_VOLMGR_DISK_NOT_ENOUGH_SPACE                                        syscall.Errno = 0xC0380013\n\tERROR_VOLMGR_DISK_REVECTORING_FAILED                                      syscall.Errno = 0xC0380014\n\tERROR_VOLMGR_DISK_SECTOR_SIZE_INVALID                                     syscall.Errno = 0xC0380015\n\tERROR_VOLMGR_DISK_SET_NOT_CONTAINED                                       syscall.Errno = 0xC0380016\n\tERROR_VOLMGR_DISK_USED_BY_MULTIPLE_MEMBERS                                syscall.Errno = 0xC0380017\n\tERROR_VOLMGR_DISK_USED_BY_MULTIPLE_PLEXES                                 syscall.Errno = 0xC0380018\n\tERROR_VOLMGR_DYNAMIC_DISK_NOT_SUPPORTED                                   syscall.Errno = 0xC0380019\n\tERROR_VOLMGR_EXTENT_ALREADY_USED                                          syscall.Errno = 0xC038001A\n\tERROR_VOLMGR_EXTENT_NOT_CONTIGUOUS                                        syscall.Errno = 0xC038001B\n\tERROR_VOLMGR_EXTENT_NOT_IN_PUBLIC_REGION                                  syscall.Errno = 0xC038001C\n\tERROR_VOLMGR_EXTENT_NOT_SECTOR_ALIGNED                                    syscall.Errno = 0xC038001D\n\tERROR_VOLMGR_EXTENT_OVERLAPS_EBR_PARTITION                                syscall.Errno = 0xC038001E\n\tERROR_VOLMGR_EXTENT_VOLUME_LENGTHS_DO_NOT_MATCH                           syscall.Errno = 0xC038001F\n\tERROR_VOLMGR_FAULT_TOLERANT_NOT_SUPPORTED                                 syscall.Errno = 0xC0380020\n\tERROR_VOLMGR_INTERLEAVE_LENGTH_INVALID                                    syscall.Errno = 0xC0380021\n\tERROR_VOLMGR_MAXIMUM_REGISTERED_USERS                                     syscall.Errno = 0xC0380022\n\tERROR_VOLMGR_MEMBER_IN_SYNC                                               syscall.Errno = 0xC0380023\n\tERROR_VOLMGR_MEMBER_INDEX_DUPLICATE                                       syscall.Errno = 0xC0380024\n\tERROR_VOLMGR_MEMBER_INDEX_INVALID                                         syscall.Errno = 0xC0380025\n\tERROR_VOLMGR_MEMBER_MISSING                                               syscall.Errno = 0xC0380026\n\tERROR_VOLMGR_MEMBER_NOT_DETACHED                                          syscall.Errno = 0xC0380027\n\tERROR_VOLMGR_MEMBER_REGENERATING                                          syscall.Errno = 0xC0380028\n\tERROR_VOLMGR_ALL_DISKS_FAILED                                             syscall.Errno = 0xC0380029\n\tERROR_VOLMGR_NO_REGISTERED_USERS                                          syscall.Errno = 0xC038002A\n\tERROR_VOLMGR_NO_SUCH_USER                                                 syscall.Errno = 0xC038002B\n\tERROR_VOLMGR_NOTIFICATION_RESET                                           syscall.Errno = 0xC038002C\n\tERROR_VOLMGR_NUMBER_OF_MEMBERS_INVALID                                    syscall.Errno = 0xC038002D\n\tERROR_VOLMGR_NUMBER_OF_PLEXES_INVALID                                     syscall.Errno = 0xC038002E\n\tERROR_VOLMGR_PACK_DUPLICATE                                               syscall.Errno = 0xC038002F\n\tERROR_VOLMGR_PACK_ID_INVALID                                              syscall.Errno = 0xC0380030\n\tERROR_VOLMGR_PACK_INVALID                                                 syscall.Errno = 0xC0380031\n\tERROR_VOLMGR_PACK_NAME_INVALID                                            syscall.Errno = 0xC0380032\n\tERROR_VOLMGR_PACK_OFFLINE                                                 syscall.Errno = 0xC0380033\n\tERROR_VOLMGR_PACK_HAS_QUORUM                                              syscall.Errno = 0xC0380034\n\tERROR_VOLMGR_PACK_WITHOUT_QUORUM                                          syscall.Errno = 0xC0380035\n\tERROR_VOLMGR_PARTITION_STYLE_INVALID                                      syscall.Errno = 0xC0380036\n\tERROR_VOLMGR_PARTITION_UPDATE_FAILED                                      syscall.Errno = 0xC0380037\n\tERROR_VOLMGR_PLEX_IN_SYNC                                                 syscall.Errno = 0xC0380038\n\tERROR_VOLMGR_PLEX_INDEX_DUPLICATE                                         syscall.Errno = 0xC0380039\n\tERROR_VOLMGR_PLEX_INDEX_INVALID                                           syscall.Errno = 0xC038003A\n\tERROR_VOLMGR_PLEX_LAST_ACTIVE                                             syscall.Errno = 0xC038003B\n\tERROR_VOLMGR_PLEX_MISSING                                                 syscall.Errno = 0xC038003C\n\tERROR_VOLMGR_PLEX_REGENERATING                                            syscall.Errno = 0xC038003D\n\tERROR_VOLMGR_PLEX_TYPE_INVALID                                            syscall.Errno = 0xC038003E\n\tERROR_VOLMGR_PLEX_NOT_RAID5                                               syscall.Errno = 0xC038003F\n\tERROR_VOLMGR_PLEX_NOT_SIMPLE                                              syscall.Errno = 0xC0380040\n\tERROR_VOLMGR_STRUCTURE_SIZE_INVALID                                       syscall.Errno = 0xC0380041\n\tERROR_VOLMGR_TOO_MANY_NOTIFICATION_REQUESTS                               syscall.Errno = 0xC0380042\n\tERROR_VOLMGR_TRANSACTION_IN_PROGRESS                                      syscall.Errno = 0xC0380043\n\tERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE                                syscall.Errno = 0xC0380044\n\tERROR_VOLMGR_VOLUME_CONTAINS_MISSING_DISK                                 syscall.Errno = 0xC0380045\n\tERROR_VOLMGR_VOLUME_ID_INVALID                                            syscall.Errno = 0xC0380046\n\tERROR_VOLMGR_VOLUME_LENGTH_INVALID                                        syscall.Errno = 0xC0380047\n\tERROR_VOLMGR_VOLUME_LENGTH_NOT_SECTOR_SIZE_MULTIPLE                       syscall.Errno = 0xC0380048\n\tERROR_VOLMGR_VOLUME_NOT_MIRRORED                                          syscall.Errno = 0xC0380049\n\tERROR_VOLMGR_VOLUME_NOT_RETAINED                                          syscall.Errno = 0xC038004A\n\tERROR_VOLMGR_VOLUME_OFFLINE                                               syscall.Errno = 0xC038004B\n\tERROR_VOLMGR_VOLUME_RETAINED                                              syscall.Errno = 0xC038004C\n\tERROR_VOLMGR_NUMBER_OF_EXTENTS_INVALID                                    syscall.Errno = 0xC038004D\n\tERROR_VOLMGR_DIFFERENT_SECTOR_SIZE                                        syscall.Errno = 0xC038004E\n\tERROR_VOLMGR_BAD_BOOT_DISK                                                syscall.Errno = 0xC038004F\n\tERROR_VOLMGR_PACK_CONFIG_OFFLINE                                          syscall.Errno = 0xC0380050\n\tERROR_VOLMGR_PACK_CONFIG_ONLINE                                           syscall.Errno = 0xC0380051\n\tERROR_VOLMGR_NOT_PRIMARY_PACK                                             syscall.Errno = 0xC0380052\n\tERROR_VOLMGR_PACK_LOG_UPDATE_FAILED                                       syscall.Errno = 0xC0380053\n\tERROR_VOLMGR_NUMBER_OF_DISKS_IN_PLEX_INVALID                              syscall.Errno = 0xC0380054\n\tERROR_VOLMGR_NUMBER_OF_DISKS_IN_MEMBER_INVALID                            syscall.Errno = 0xC0380055\n\tERROR_VOLMGR_VOLUME_MIRRORED                                              syscall.Errno = 0xC0380056\n\tERROR_VOLMGR_PLEX_NOT_SIMPLE_SPANNED                                      syscall.Errno = 0xC0380057\n\tERROR_VOLMGR_NO_VALID_LOG_COPIES                                          syscall.Errno = 0xC0380058\n\tERROR_VOLMGR_PRIMARY_PACK_PRESENT                                         syscall.Errno = 0xC0380059\n\tERROR_VOLMGR_NUMBER_OF_DISKS_INVALID                                      syscall.Errno = 0xC038005A\n\tERROR_VOLMGR_MIRROR_NOT_SUPPORTED                                         syscall.Errno = 0xC038005B\n\tERROR_VOLMGR_RAID5_NOT_SUPPORTED                                          syscall.Errno = 0xC038005C\n\tERROR_BCD_NOT_ALL_ENTRIES_IMPORTED                                        syscall.Errno = 0x80390001\n\tERROR_BCD_TOO_MANY_ELEMENTS                                               syscall.Errno = 0xC0390002\n\tERROR_BCD_NOT_ALL_ENTRIES_SYNCHRONIZED                                    syscall.Errno = 0x80390003\n\tERROR_VHD_DRIVE_FOOTER_MISSING                                            syscall.Errno = 0xC03A0001\n\tERROR_VHD_DRIVE_FOOTER_CHECKSUM_MISMATCH                                  syscall.Errno = 0xC03A0002\n\tERROR_VHD_DRIVE_FOOTER_CORRUPT                                            syscall.Errno = 0xC03A0003\n\tERROR_VHD_FORMAT_UNKNOWN                                                  syscall.Errno = 0xC03A0004\n\tERROR_VHD_FORMAT_UNSUPPORTED_VERSION                                      syscall.Errno = 0xC03A0005\n\tERROR_VHD_SPARSE_HEADER_CHECKSUM_MISMATCH                                 syscall.Errno = 0xC03A0006\n\tERROR_VHD_SPARSE_HEADER_UNSUPPORTED_VERSION                               syscall.Errno = 0xC03A0007\n\tERROR_VHD_SPARSE_HEADER_CORRUPT                                           syscall.Errno = 0xC03A0008\n\tERROR_VHD_BLOCK_ALLOCATION_FAILURE                                        syscall.Errno = 0xC03A0009\n\tERROR_VHD_BLOCK_ALLOCATION_TABLE_CORRUPT                                  syscall.Errno = 0xC03A000A\n\tERROR_VHD_INVALID_BLOCK_SIZE                                              syscall.Errno = 0xC03A000B\n\tERROR_VHD_BITMAP_MISMATCH                                                 syscall.Errno = 0xC03A000C\n\tERROR_VHD_PARENT_VHD_NOT_FOUND                                            syscall.Errno = 0xC03A000D\n\tERROR_VHD_CHILD_PARENT_ID_MISMATCH                                        syscall.Errno = 0xC03A000E\n\tERROR_VHD_CHILD_PARENT_TIMESTAMP_MISMATCH                                 syscall.Errno = 0xC03A000F\n\tERROR_VHD_METADATA_READ_FAILURE                                           syscall.Errno = 0xC03A0010\n\tERROR_VHD_METADATA_WRITE_FAILURE                                          syscall.Errno = 0xC03A0011\n\tERROR_VHD_INVALID_SIZE                                                    syscall.Errno = 0xC03A0012\n\tERROR_VHD_INVALID_FILE_SIZE                                               syscall.Errno = 0xC03A0013\n\tERROR_VIRTDISK_PROVIDER_NOT_FOUND                                         syscall.Errno = 0xC03A0014\n\tERROR_VIRTDISK_NOT_VIRTUAL_DISK                                           syscall.Errno = 0xC03A0015\n\tERROR_VHD_PARENT_VHD_ACCESS_DENIED                                        syscall.Errno = 0xC03A0016\n\tERROR_VHD_CHILD_PARENT_SIZE_MISMATCH                                      syscall.Errno = 0xC03A0017\n\tERROR_VHD_DIFFERENCING_CHAIN_CYCLE_DETECTED                               syscall.Errno = 0xC03A0018\n\tERROR_VHD_DIFFERENCING_CHAIN_ERROR_IN_PARENT                              syscall.Errno = 0xC03A0019\n\tERROR_VIRTUAL_DISK_LIMITATION                                             syscall.Errno = 0xC03A001A\n\tERROR_VHD_INVALID_TYPE                                                    syscall.Errno = 0xC03A001B\n\tERROR_VHD_INVALID_STATE                                                   syscall.Errno = 0xC03A001C\n\tERROR_VIRTDISK_UNSUPPORTED_DISK_SECTOR_SIZE                               syscall.Errno = 0xC03A001D\n\tERROR_VIRTDISK_DISK_ALREADY_OWNED                                         syscall.Errno = 0xC03A001E\n\tERROR_VIRTDISK_DISK_ONLINE_AND_WRITABLE                                   syscall.Errno = 0xC03A001F\n\tERROR_CTLOG_TRACKING_NOT_INITIALIZED                                      syscall.Errno = 0xC03A0020\n\tERROR_CTLOG_LOGFILE_SIZE_EXCEEDED_MAXSIZE                                 syscall.Errno = 0xC03A0021\n\tERROR_CTLOG_VHD_CHANGED_OFFLINE                                           syscall.Errno = 0xC03A0022\n\tERROR_CTLOG_INVALID_TRACKING_STATE                                        syscall.Errno = 0xC03A0023\n\tERROR_CTLOG_INCONSISTENT_TRACKING_FILE                                    syscall.Errno = 0xC03A0024\n\tERROR_VHD_RESIZE_WOULD_TRUNCATE_DATA                                      syscall.Errno = 0xC03A0025\n\tERROR_VHD_COULD_NOT_COMPUTE_MINIMUM_VIRTUAL_SIZE                          syscall.Errno = 0xC03A0026\n\tERROR_VHD_ALREADY_AT_OR_BELOW_MINIMUM_VIRTUAL_SIZE                        syscall.Errno = 0xC03A0027\n\tERROR_VHD_METADATA_FULL                                                   syscall.Errno = 0xC03A0028\n\tERROR_VHD_INVALID_CHANGE_TRACKING_ID                                      syscall.Errno = 0xC03A0029\n\tERROR_VHD_CHANGE_TRACKING_DISABLED                                        syscall.Errno = 0xC03A002A\n\tERROR_VHD_MISSING_CHANGE_TRACKING_INFORMATION                             syscall.Errno = 0xC03A0030\n\tERROR_QUERY_STORAGE_ERROR                                                 syscall.Errno = 0x803A0001\n\tHCN_E_NETWORK_NOT_FOUND                                                   Handle        = 0x803B0001\n\tHCN_E_ENDPOINT_NOT_FOUND                                                  Handle        = 0x803B0002\n\tHCN_E_LAYER_NOT_FOUND                                                     Handle        = 0x803B0003\n\tHCN_E_SWITCH_NOT_FOUND                                                    Handle        = 0x803B0004\n\tHCN_E_SUBNET_NOT_FOUND                                                    Handle        = 0x803B0005\n\tHCN_E_ADAPTER_NOT_FOUND                                                   Handle        = 0x803B0006\n\tHCN_E_PORT_NOT_FOUND                                                      Handle        = 0x803B0007\n\tHCN_E_POLICY_NOT_FOUND                                                    Handle        = 0x803B0008\n\tHCN_E_VFP_PORTSETTING_NOT_FOUND                                           Handle        = 0x803B0009\n\tHCN_E_INVALID_NETWORK                                                     Handle        = 0x803B000A\n\tHCN_E_INVALID_NETWORK_TYPE                                                Handle        = 0x803B000B\n\tHCN_E_INVALID_ENDPOINT                                                    Handle        = 0x803B000C\n\tHCN_E_INVALID_POLICY                                                      Handle        = 0x803B000D\n\tHCN_E_INVALID_POLICY_TYPE                                                 Handle        = 0x803B000E\n\tHCN_E_INVALID_REMOTE_ENDPOINT_OPERATION                                   Handle        = 0x803B000F\n\tHCN_E_NETWORK_ALREADY_EXISTS                                              Handle        = 0x803B0010\n\tHCN_E_LAYER_ALREADY_EXISTS                                                Handle        = 0x803B0011\n\tHCN_E_POLICY_ALREADY_EXISTS                                               Handle        = 0x803B0012\n\tHCN_E_PORT_ALREADY_EXISTS                                                 Handle        = 0x803B0013\n\tHCN_E_ENDPOINT_ALREADY_ATTACHED                                           Handle        = 0x803B0014\n\tHCN_E_REQUEST_UNSUPPORTED                                                 Handle        = 0x803B0015\n\tHCN_E_MAPPING_NOT_SUPPORTED                                               Handle        = 0x803B0016\n\tHCN_E_DEGRADED_OPERATION                                                  Handle        = 0x803B0017\n\tHCN_E_SHARED_SWITCH_MODIFICATION                                          Handle        = 0x803B0018\n\tHCN_E_GUID_CONVERSION_FAILURE                                             Handle        = 0x803B0019\n\tHCN_E_REGKEY_FAILURE                                                      Handle        = 0x803B001A\n\tHCN_E_INVALID_JSON                                                        Handle        = 0x803B001B\n\tHCN_E_INVALID_JSON_REFERENCE                                              Handle        = 0x803B001C\n\tHCN_E_ENDPOINT_SHARING_DISABLED                                           Handle        = 0x803B001D\n\tHCN_E_INVALID_IP                                                          Handle        = 0x803B001E\n\tHCN_E_SWITCH_EXTENSION_NOT_FOUND                                          Handle        = 0x803B001F\n\tHCN_E_MANAGER_STOPPED                                                     Handle        = 0x803B0020\n\tGCN_E_MODULE_NOT_FOUND                                                    Handle        = 0x803B0021\n\tGCN_E_NO_REQUEST_HANDLERS                                                 Handle        = 0x803B0022\n\tGCN_E_REQUEST_UNSUPPORTED                                                 Handle        = 0x803B0023\n\tGCN_E_RUNTIMEKEYS_FAILED                                                  Handle        = 0x803B0024\n\tGCN_E_NETADAPTER_TIMEOUT                                                  Handle        = 0x803B0025\n\tGCN_E_NETADAPTER_NOT_FOUND                                                Handle        = 0x803B0026\n\tGCN_E_NETCOMPARTMENT_NOT_FOUND                                            Handle        = 0x803B0027\n\tGCN_E_NETINTERFACE_NOT_FOUND                                              Handle        = 0x803B0028\n\tGCN_E_DEFAULTNAMESPACE_EXISTS                                             Handle        = 0x803B0029\n\tHCN_E_ICS_DISABLED                                                        Handle        = 0x803B002A\n\tHCN_E_ENDPOINT_NAMESPACE_ALREADY_EXISTS                                   Handle        = 0x803B002B\n\tHCN_E_ENTITY_HAS_REFERENCES                                               Handle        = 0x803B002C\n\tHCN_E_INVALID_INTERNAL_PORT                                               Handle        = 0x803B002D\n\tHCN_E_NAMESPACE_ATTACH_FAILED                                             Handle        = 0x803B002E\n\tHCN_E_ADDR_INVALID_OR_RESERVED                                            Handle        = 0x803B002F\n\tSDIAG_E_CANCELLED                                                         syscall.Errno = 0x803C0100\n\tSDIAG_E_SCRIPT                                                            syscall.Errno = 0x803C0101\n\tSDIAG_E_POWERSHELL                                                        syscall.Errno = 0x803C0102\n\tSDIAG_E_MANAGEDHOST                                                       syscall.Errno = 0x803C0103\n\tSDIAG_E_NOVERIFIER                                                        syscall.Errno = 0x803C0104\n\tSDIAG_S_CANNOTRUN                                                         syscall.Errno = 0x003C0105\n\tSDIAG_E_DISABLED                                                          syscall.Errno = 0x803C0106\n\tSDIAG_E_TRUST                                                             syscall.Errno = 0x803C0107\n\tSDIAG_E_CANNOTRUN                                                         syscall.Errno = 0x803C0108\n\tSDIAG_E_VERSION                                                           syscall.Errno = 0x803C0109\n\tSDIAG_E_RESOURCE                                                          syscall.Errno = 0x803C010A\n\tSDIAG_E_ROOTCAUSE                                                         syscall.Errno = 0x803C010B\n\tWPN_E_CHANNEL_CLOSED                                                      Handle        = 0x803E0100\n\tWPN_E_CHANNEL_REQUEST_NOT_COMPLETE                                        Handle        = 0x803E0101\n\tWPN_E_INVALID_APP                                                         Handle        = 0x803E0102\n\tWPN_E_OUTSTANDING_CHANNEL_REQUEST                                         Handle        = 0x803E0103\n\tWPN_E_DUPLICATE_CHANNEL                                                   Handle        = 0x803E0104\n\tWPN_E_PLATFORM_UNAVAILABLE                                                Handle        = 0x803E0105\n\tWPN_E_NOTIFICATION_POSTED                                                 Handle        = 0x803E0106\n\tWPN_E_NOTIFICATION_HIDDEN                                                 Handle        = 0x803E0107\n\tWPN_E_NOTIFICATION_NOT_POSTED                                             Handle        = 0x803E0108\n\tWPN_E_CLOUD_DISABLED                                                      Handle        = 0x803E0109\n\tWPN_E_CLOUD_INCAPABLE                                                     Handle        = 0x803E0110\n\tWPN_E_CLOUD_AUTH_UNAVAILABLE                                              Handle        = 0x803E011A\n\tWPN_E_CLOUD_SERVICE_UNAVAILABLE                                           Handle        = 0x803E011B\n\tWPN_E_FAILED_LOCK_SCREEN_UPDATE_INTIALIZATION                             Handle        = 0x803E011C\n\tWPN_E_NOTIFICATION_DISABLED                                               Handle        = 0x803E0111\n\tWPN_E_NOTIFICATION_INCAPABLE                                              Handle        = 0x803E0112\n\tWPN_E_INTERNET_INCAPABLE                                                  Handle        = 0x803E0113\n\tWPN_E_NOTIFICATION_TYPE_DISABLED                                          Handle        = 0x803E0114\n\tWPN_E_NOTIFICATION_SIZE                                                   Handle        = 0x803E0115\n\tWPN_E_TAG_SIZE                                                            Handle        = 0x803E0116\n\tWPN_E_ACCESS_DENIED                                                       Handle        = 0x803E0117\n\tWPN_E_DUPLICATE_REGISTRATION                                              Handle        = 0x803E0118\n\tWPN_E_PUSH_NOTIFICATION_INCAPABLE                                         Handle        = 0x803E0119\n\tWPN_E_DEV_ID_SIZE                                                         Handle        = 0x803E0120\n\tWPN_E_TAG_ALPHANUMERIC                                                    Handle        = 0x803E012A\n\tWPN_E_INVALID_HTTP_STATUS_CODE                                            Handle        = 0x803E012B\n\tWPN_E_OUT_OF_SESSION                                                      Handle        = 0x803E0200\n\tWPN_E_POWER_SAVE                                                          Handle        = 0x803E0201\n\tWPN_E_IMAGE_NOT_FOUND_IN_CACHE                                            Handle        = 0x803E0202\n\tWPN_E_ALL_URL_NOT_COMPLETED                                               Handle        = 0x803E0203\n\tWPN_E_INVALID_CLOUD_IMAGE                                                 Handle        = 0x803E0204\n\tWPN_E_NOTIFICATION_ID_MATCHED                                             Handle        = 0x803E0205\n\tWPN_E_CALLBACK_ALREADY_REGISTERED                                         Handle        = 0x803E0206\n\tWPN_E_TOAST_NOTIFICATION_DROPPED                                          Handle        = 0x803E0207\n\tWPN_E_STORAGE_LOCKED                                                      Handle        = 0x803E0208\n\tWPN_E_GROUP_SIZE                                                          Handle        = 0x803E0209\n\tWPN_E_GROUP_ALPHANUMERIC                                                  Handle        = 0x803E020A\n\tWPN_E_CLOUD_DISABLED_FOR_APP                                              Handle        = 0x803E020B\n\tE_MBN_CONTEXT_NOT_ACTIVATED                                               Handle        = 0x80548201\n\tE_MBN_BAD_SIM                                                             Handle        = 0x80548202\n\tE_MBN_DATA_CLASS_NOT_AVAILABLE                                            Handle        = 0x80548203\n\tE_MBN_INVALID_ACCESS_STRING                                               Handle        = 0x80548204\n\tE_MBN_MAX_ACTIVATED_CONTEXTS                                              Handle        = 0x80548205\n\tE_MBN_PACKET_SVC_DETACHED                                                 Handle        = 0x80548206\n\tE_MBN_PROVIDER_NOT_VISIBLE                                                Handle        = 0x80548207\n\tE_MBN_RADIO_POWER_OFF                                                     Handle        = 0x80548208\n\tE_MBN_SERVICE_NOT_ACTIVATED                                               Handle        = 0x80548209\n\tE_MBN_SIM_NOT_INSERTED                                                    Handle        = 0x8054820A\n\tE_MBN_VOICE_CALL_IN_PROGRESS                                              Handle        = 0x8054820B\n\tE_MBN_INVALID_CACHE                                                       Handle        = 0x8054820C\n\tE_MBN_NOT_REGISTERED                                                      Handle        = 0x8054820D\n\tE_MBN_PROVIDERS_NOT_FOUND                                                 Handle        = 0x8054820E\n\tE_MBN_PIN_NOT_SUPPORTED                                                   Handle        = 0x8054820F\n\tE_MBN_PIN_REQUIRED                                                        Handle        = 0x80548210\n\tE_MBN_PIN_DISABLED                                                        Handle        = 0x80548211\n\tE_MBN_FAILURE                                                             Handle        = 0x80548212\n\tE_MBN_INVALID_PROFILE                                                     Handle        = 0x80548218\n\tE_MBN_DEFAULT_PROFILE_EXIST                                               Handle        = 0x80548219\n\tE_MBN_SMS_ENCODING_NOT_SUPPORTED                                          Handle        = 0x80548220\n\tE_MBN_SMS_FILTER_NOT_SUPPORTED                                            Handle        = 0x80548221\n\tE_MBN_SMS_INVALID_MEMORY_INDEX                                            Handle        = 0x80548222\n\tE_MBN_SMS_LANG_NOT_SUPPORTED                                              Handle        = 0x80548223\n\tE_MBN_SMS_MEMORY_FAILURE                                                  Handle        = 0x80548224\n\tE_MBN_SMS_NETWORK_TIMEOUT                                                 Handle        = 0x80548225\n\tE_MBN_SMS_UNKNOWN_SMSC_ADDRESS                                            Handle        = 0x80548226\n\tE_MBN_SMS_FORMAT_NOT_SUPPORTED                                            Handle        = 0x80548227\n\tE_MBN_SMS_OPERATION_NOT_ALLOWED                                           Handle        = 0x80548228\n\tE_MBN_SMS_MEMORY_FULL                                                     Handle        = 0x80548229\n\tPEER_E_IPV6_NOT_INSTALLED                                                 Handle        = 0x80630001\n\tPEER_E_NOT_INITIALIZED                                                    Handle        = 0x80630002\n\tPEER_E_CANNOT_START_SERVICE                                               Handle        = 0x80630003\n\tPEER_E_NOT_LICENSED                                                       Handle        = 0x80630004\n\tPEER_E_INVALID_GRAPH                                                      Handle        = 0x80630010\n\tPEER_E_DBNAME_CHANGED                                                     Handle        = 0x80630011\n\tPEER_E_DUPLICATE_GRAPH                                                    Handle        = 0x80630012\n\tPEER_E_GRAPH_NOT_READY                                                    Handle        = 0x80630013\n\tPEER_E_GRAPH_SHUTTING_DOWN                                                Handle        = 0x80630014\n\tPEER_E_GRAPH_IN_USE                                                       Handle        = 0x80630015\n\tPEER_E_INVALID_DATABASE                                                   Handle        = 0x80630016\n\tPEER_E_TOO_MANY_ATTRIBUTES                                                Handle        = 0x80630017\n\tPEER_E_CONNECTION_NOT_FOUND                                               Handle        = 0x80630103\n\tPEER_E_CONNECT_SELF                                                       Handle        = 0x80630106\n\tPEER_E_ALREADY_LISTENING                                                  Handle        = 0x80630107\n\tPEER_E_NODE_NOT_FOUND                                                     Handle        = 0x80630108\n\tPEER_E_CONNECTION_FAILED                                                  Handle        = 0x80630109\n\tPEER_E_CONNECTION_NOT_AUTHENTICATED                                       Handle        = 0x8063010A\n\tPEER_E_CONNECTION_REFUSED                                                 Handle        = 0x8063010B\n\tPEER_E_CLASSIFIER_TOO_LONG                                                Handle        = 0x80630201\n\tPEER_E_TOO_MANY_IDENTITIES                                                Handle        = 0x80630202\n\tPEER_E_NO_KEY_ACCESS                                                      Handle        = 0x80630203\n\tPEER_E_GROUPS_EXIST                                                       Handle        = 0x80630204\n\tPEER_E_RECORD_NOT_FOUND                                                   Handle        = 0x80630301\n\tPEER_E_DATABASE_ACCESSDENIED                                              Handle        = 0x80630302\n\tPEER_E_DBINITIALIZATION_FAILED                                            Handle        = 0x80630303\n\tPEER_E_MAX_RECORD_SIZE_EXCEEDED                                           Handle        = 0x80630304\n\tPEER_E_DATABASE_ALREADY_PRESENT                                           Handle        = 0x80630305\n\tPEER_E_DATABASE_NOT_PRESENT                                               Handle        = 0x80630306\n\tPEER_E_IDENTITY_NOT_FOUND                                                 Handle        = 0x80630401\n\tPEER_E_EVENT_HANDLE_NOT_FOUND                                             Handle        = 0x80630501\n\tPEER_E_INVALID_SEARCH                                                     Handle        = 0x80630601\n\tPEER_E_INVALID_ATTRIBUTES                                                 Handle        = 0x80630602\n\tPEER_E_INVITATION_NOT_TRUSTED                                             Handle        = 0x80630701\n\tPEER_E_CHAIN_TOO_LONG                                                     Handle        = 0x80630703\n\tPEER_E_INVALID_TIME_PERIOD                                                Handle        = 0x80630705\n\tPEER_E_CIRCULAR_CHAIN_DETECTED                                            Handle        = 0x80630706\n\tPEER_E_CERT_STORE_CORRUPTED                                               Handle        = 0x80630801\n\tPEER_E_NO_CLOUD                                                           Handle        = 0x80631001\n\tPEER_E_CLOUD_NAME_AMBIGUOUS                                               Handle        = 0x80631005\n\tPEER_E_INVALID_RECORD                                                     Handle        = 0x80632010\n\tPEER_E_NOT_AUTHORIZED                                                     Handle        = 0x80632020\n\tPEER_E_PASSWORD_DOES_NOT_MEET_POLICY                                      Handle        = 0x80632021\n\tPEER_E_DEFERRED_VALIDATION                                                Handle        = 0x80632030\n\tPEER_E_INVALID_GROUP_PROPERTIES                                           Handle        = 0x80632040\n\tPEER_E_INVALID_PEER_NAME                                                  Handle        = 0x80632050\n\tPEER_E_INVALID_CLASSIFIER                                                 Handle        = 0x80632060\n\tPEER_E_INVALID_FRIENDLY_NAME                                              Handle        = 0x80632070\n\tPEER_E_INVALID_ROLE_PROPERTY                                              Handle        = 0x80632071\n\tPEER_E_INVALID_CLASSIFIER_PROPERTY                                        Handle        = 0x80632072\n\tPEER_E_INVALID_RECORD_EXPIRATION                                          Handle        = 0x80632080\n\tPEER_E_INVALID_CREDENTIAL_INFO                                            Handle        = 0x80632081\n\tPEER_E_INVALID_CREDENTIAL                                                 Handle        = 0x80632082\n\tPEER_E_INVALID_RECORD_SIZE                                                Handle        = 0x80632083\n\tPEER_E_UNSUPPORTED_VERSION                                                Handle        = 0x80632090\n\tPEER_E_GROUP_NOT_READY                                                    Handle        = 0x80632091\n\tPEER_E_GROUP_IN_USE                                                       Handle        = 0x80632092\n\tPEER_E_INVALID_GROUP                                                      Handle        = 0x80632093\n\tPEER_E_NO_MEMBERS_FOUND                                                   Handle        = 0x80632094\n\tPEER_E_NO_MEMBER_CONNECTIONS                                              Handle        = 0x80632095\n\tPEER_E_UNABLE_TO_LISTEN                                                   Handle        = 0x80632096\n\tPEER_E_IDENTITY_DELETED                                                   Handle        = 0x806320A0\n\tPEER_E_SERVICE_NOT_AVAILABLE                                              Handle        = 0x806320A1\n\tPEER_E_CONTACT_NOT_FOUND                                                  Handle        = 0x80636001\n\tPEER_S_GRAPH_DATA_CREATED                                                 Handle        = 0x00630001\n\tPEER_S_NO_EVENT_DATA                                                      Handle        = 0x00630002\n\tPEER_S_ALREADY_CONNECTED                                                  Handle        = 0x00632000\n\tPEER_S_SUBSCRIPTION_EXISTS                                                Handle        = 0x00636000\n\tPEER_S_NO_CONNECTIVITY                                                    Handle        = 0x00630005\n\tPEER_S_ALREADY_A_MEMBER                                                   Handle        = 0x00630006\n\tPEER_E_CANNOT_CONVERT_PEER_NAME                                           Handle        = 0x80634001\n\tPEER_E_INVALID_PEER_HOST_NAME                                             Handle        = 0x80634002\n\tPEER_E_NO_MORE                                                            Handle        = 0x80634003\n\tPEER_E_PNRP_DUPLICATE_PEER_NAME                                           Handle        = 0x80634005\n\tPEER_E_INVITE_CANCELLED                                                   Handle        = 0x80637000\n\tPEER_E_INVITE_RESPONSE_NOT_AVAILABLE                                      Handle        = 0x80637001\n\tPEER_E_NOT_SIGNED_IN                                                      Handle        = 0x80637003\n\tPEER_E_PRIVACY_DECLINED                                                   Handle        = 0x80637004\n\tPEER_E_TIMEOUT                                                            Handle        = 0x80637005\n\tPEER_E_INVALID_ADDRESS                                                    Handle        = 0x80637007\n\tPEER_E_FW_EXCEPTION_DISABLED                                              Handle        = 0x80637008\n\tPEER_E_FW_BLOCKED_BY_POLICY                                               Handle        = 0x80637009\n\tPEER_E_FW_BLOCKED_BY_SHIELDS_UP                                           Handle        = 0x8063700A\n\tPEER_E_FW_DECLINED                                                        Handle        = 0x8063700B\n\tUI_E_CREATE_FAILED                                                        Handle        = 0x802A0001\n\tUI_E_SHUTDOWN_CALLED                                                      Handle        = 0x802A0002\n\tUI_E_ILLEGAL_REENTRANCY                                                   Handle        = 0x802A0003\n\tUI_E_OBJECT_SEALED                                                        Handle        = 0x802A0004\n\tUI_E_VALUE_NOT_SET                                                        Handle        = 0x802A0005\n\tUI_E_VALUE_NOT_DETERMINED                                                 Handle        = 0x802A0006\n\tUI_E_INVALID_OUTPUT                                                       Handle        = 0x802A0007\n\tUI_E_BOOLEAN_EXPECTED                                                     Handle        = 0x802A0008\n\tUI_E_DIFFERENT_OWNER                                                      Handle        = 0x802A0009\n\tUI_E_AMBIGUOUS_MATCH                                                      Handle        = 0x802A000A\n\tUI_E_FP_OVERFLOW                                                          Handle        = 0x802A000B\n\tUI_E_WRONG_THREAD                                                         Handle        = 0x802A000C\n\tUI_E_STORYBOARD_ACTIVE                                                    Handle        = 0x802A0101\n\tUI_E_STORYBOARD_NOT_PLAYING                                               Handle        = 0x802A0102\n\tUI_E_START_KEYFRAME_AFTER_END                                             Handle        = 0x802A0103\n\tUI_E_END_KEYFRAME_NOT_DETERMINED                                          Handle        = 0x802A0104\n\tUI_E_LOOPS_OVERLAP                                                        Handle        = 0x802A0105\n\tUI_E_TRANSITION_ALREADY_USED                                              Handle        = 0x802A0106\n\tUI_E_TRANSITION_NOT_IN_STORYBOARD                                         Handle        = 0x802A0107\n\tUI_E_TRANSITION_ECLIPSED                                                  Handle        = 0x802A0108\n\tUI_E_TIME_BEFORE_LAST_UPDATE                                              Handle        = 0x802A0109\n\tUI_E_TIMER_CLIENT_ALREADY_CONNECTED                                       Handle        = 0x802A010A\n\tUI_E_INVALID_DIMENSION                                                    Handle        = 0x802A010B\n\tUI_E_PRIMITIVE_OUT_OF_BOUNDS                                              Handle        = 0x802A010C\n\tUI_E_WINDOW_CLOSED                                                        Handle        = 0x802A0201\n\tE_BLUETOOTH_ATT_INVALID_HANDLE                                            Handle        = 0x80650001\n\tE_BLUETOOTH_ATT_READ_NOT_PERMITTED                                        Handle        = 0x80650002\n\tE_BLUETOOTH_ATT_WRITE_NOT_PERMITTED                                       Handle        = 0x80650003\n\tE_BLUETOOTH_ATT_INVALID_PDU                                               Handle        = 0x80650004\n\tE_BLUETOOTH_ATT_INSUFFICIENT_AUTHENTICATION                               Handle        = 0x80650005\n\tE_BLUETOOTH_ATT_REQUEST_NOT_SUPPORTED                                     Handle        = 0x80650006\n\tE_BLUETOOTH_ATT_INVALID_OFFSET                                            Handle        = 0x80650007\n\tE_BLUETOOTH_ATT_INSUFFICIENT_AUTHORIZATION                                Handle        = 0x80650008\n\tE_BLUETOOTH_ATT_PREPARE_QUEUE_FULL                                        Handle        = 0x80650009\n\tE_BLUETOOTH_ATT_ATTRIBUTE_NOT_FOUND                                       Handle        = 0x8065000A\n\tE_BLUETOOTH_ATT_ATTRIBUTE_NOT_LONG                                        Handle        = 0x8065000B\n\tE_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE                          Handle        = 0x8065000C\n\tE_BLUETOOTH_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH                            Handle        = 0x8065000D\n\tE_BLUETOOTH_ATT_UNLIKELY                                                  Handle        = 0x8065000E\n\tE_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION                                   Handle        = 0x8065000F\n\tE_BLUETOOTH_ATT_UNSUPPORTED_GROUP_TYPE                                    Handle        = 0x80650010\n\tE_BLUETOOTH_ATT_INSUFFICIENT_RESOURCES                                    Handle        = 0x80650011\n\tE_BLUETOOTH_ATT_UNKNOWN_ERROR                                             Handle        = 0x80651000\n\tE_AUDIO_ENGINE_NODE_NOT_FOUND                                             Handle        = 0x80660001\n\tE_HDAUDIO_EMPTY_CONNECTION_LIST                                           Handle        = 0x80660002\n\tE_HDAUDIO_CONNECTION_LIST_NOT_SUPPORTED                                   Handle        = 0x80660003\n\tE_HDAUDIO_NO_LOGICAL_DEVICES_CREATED                                      Handle        = 0x80660004\n\tE_HDAUDIO_NULL_LINKED_LIST_ENTRY                                          Handle        = 0x80660005\n\tSTATEREPOSITORY_E_CONCURRENCY_LOCKING_FAILURE                             Handle        = 0x80670001\n\tSTATEREPOSITORY_E_STATEMENT_INPROGRESS                                    Handle        = 0x80670002\n\tSTATEREPOSITORY_E_CONFIGURATION_INVALID                                   Handle        = 0x80670003\n\tSTATEREPOSITORY_E_UNKNOWN_SCHEMA_VERSION                                  Handle        = 0x80670004\n\tSTATEREPOSITORY_ERROR_DICTIONARY_CORRUPTED                                Handle        = 0x80670005\n\tSTATEREPOSITORY_E_BLOCKED                                                 Handle        = 0x80670006\n\tSTATEREPOSITORY_E_BUSY_RETRY                                              Handle        = 0x80670007\n\tSTATEREPOSITORY_E_BUSY_RECOVERY_RETRY                                     Handle        = 0x80670008\n\tSTATEREPOSITORY_E_LOCKED_RETRY                                            Handle        = 0x80670009\n\tSTATEREPOSITORY_E_LOCKED_SHAREDCACHE_RETRY                                Handle        = 0x8067000A\n\tSTATEREPOSITORY_E_TRANSACTION_REQUIRED                                    Handle        = 0x8067000B\n\tSTATEREPOSITORY_E_BUSY_TIMEOUT_EXCEEDED                                   Handle        = 0x8067000C\n\tSTATEREPOSITORY_E_BUSY_RECOVERY_TIMEOUT_EXCEEDED                          Handle        = 0x8067000D\n\tSTATEREPOSITORY_E_LOCKED_TIMEOUT_EXCEEDED                                 Handle        = 0x8067000E\n\tSTATEREPOSITORY_E_LOCKED_SHAREDCACHE_TIMEOUT_EXCEEDED                     Handle        = 0x8067000F\n\tSTATEREPOSITORY_E_SERVICE_STOP_IN_PROGRESS                                Handle        = 0x80670010\n\tSTATEREPOSTORY_E_NESTED_TRANSACTION_NOT_SUPPORTED                         Handle        = 0x80670011\n\tSTATEREPOSITORY_ERROR_CACHE_CORRUPTED                                     Handle        = 0x80670012\n\tSTATEREPOSITORY_TRANSACTION_CALLER_ID_CHANGED                             Handle        = 0x00670013\n\tSTATEREPOSITORY_TRANSACTION_IN_PROGRESS                                   Handle        = 0x00670014\n\tERROR_SPACES_POOL_WAS_DELETED                                             Handle        = 0x00E70001\n\tERROR_SPACES_FAULT_DOMAIN_TYPE_INVALID                                    Handle        = 0x80E70001\n\tERROR_SPACES_INTERNAL_ERROR                                               Handle        = 0x80E70002\n\tERROR_SPACES_RESILIENCY_TYPE_INVALID                                      Handle        = 0x80E70003\n\tERROR_SPACES_DRIVE_SECTOR_SIZE_INVALID                                    Handle        = 0x80E70004\n\tERROR_SPACES_DRIVE_REDUNDANCY_INVALID                                     Handle        = 0x80E70006\n\tERROR_SPACES_NUMBER_OF_DATA_COPIES_INVALID                                Handle        = 0x80E70007\n\tERROR_SPACES_PARITY_LAYOUT_INVALID                                        Handle        = 0x80E70008\n\tERROR_SPACES_INTERLEAVE_LENGTH_INVALID                                    Handle        = 0x80E70009\n\tERROR_SPACES_NUMBER_OF_COLUMNS_INVALID                                    Handle        = 0x80E7000A\n\tERROR_SPACES_NOT_ENOUGH_DRIVES                                            Handle        = 0x80E7000B\n\tERROR_SPACES_EXTENDED_ERROR                                               Handle        = 0x80E7000C\n\tERROR_SPACES_PROVISIONING_TYPE_INVALID                                    Handle        = 0x80E7000D\n\tERROR_SPACES_ALLOCATION_SIZE_INVALID                                      Handle        = 0x80E7000E\n\tERROR_SPACES_ENCLOSURE_AWARE_INVALID                                      Handle        = 0x80E7000F\n\tERROR_SPACES_WRITE_CACHE_SIZE_INVALID                                     Handle        = 0x80E70010\n\tERROR_SPACES_NUMBER_OF_GROUPS_INVALID                                     Handle        = 0x80E70011\n\tERROR_SPACES_DRIVE_OPERATIONAL_STATE_INVALID                              Handle        = 0x80E70012\n\tERROR_SPACES_ENTRY_INCOMPLETE                                             Handle        = 0x80E70013\n\tERROR_SPACES_ENTRY_INVALID                                                Handle        = 0x80E70014\n\tERROR_VOLSNAP_BOOTFILE_NOT_VALID                                          Handle        = 0x80820001\n\tERROR_VOLSNAP_ACTIVATION_TIMEOUT                                          Handle        = 0x80820002\n\tERROR_TIERING_NOT_SUPPORTED_ON_VOLUME                                     Handle        = 0x80830001\n\tERROR_TIERING_VOLUME_DISMOUNT_IN_PROGRESS                                 Handle        = 0x80830002\n\tERROR_TIERING_STORAGE_TIER_NOT_FOUND                                      Handle        = 0x80830003\n\tERROR_TIERING_INVALID_FILE_ID                                             Handle        = 0x80830004\n\tERROR_TIERING_WRONG_CLUSTER_NODE                                          Handle        = 0x80830005\n\tERROR_TIERING_ALREADY_PROCESSING                                          Handle        = 0x80830006\n\tERROR_TIERING_CANNOT_PIN_OBJECT                                           Handle        = 0x80830007\n\tERROR_TIERING_FILE_IS_NOT_PINNED                                          Handle        = 0x80830008\n\tERROR_NOT_A_TIERED_VOLUME                                                 Handle        = 0x80830009\n\tERROR_ATTRIBUTE_NOT_PRESENT                                               Handle        = 0x8083000A\n\tERROR_SECCORE_INVALID_COMMAND                                             Handle        = 0xC0E80000\n\tERROR_NO_APPLICABLE_APP_LICENSES_FOUND                                    Handle        = 0xC0EA0001\n\tERROR_CLIP_LICENSE_NOT_FOUND                                              Handle        = 0xC0EA0002\n\tERROR_CLIP_DEVICE_LICENSE_MISSING                                         Handle        = 0xC0EA0003\n\tERROR_CLIP_LICENSE_INVALID_SIGNATURE                                      Handle        = 0xC0EA0004\n\tERROR_CLIP_KEYHOLDER_LICENSE_MISSING_OR_INVALID                           Handle        = 0xC0EA0005\n\tERROR_CLIP_LICENSE_EXPIRED                                                Handle        = 0xC0EA0006\n\tERROR_CLIP_LICENSE_SIGNED_BY_UNKNOWN_SOURCE                               Handle        = 0xC0EA0007\n\tERROR_CLIP_LICENSE_NOT_SIGNED                                             Handle        = 0xC0EA0008\n\tERROR_CLIP_LICENSE_HARDWARE_ID_OUT_OF_TOLERANCE                           Handle        = 0xC0EA0009\n\tERROR_CLIP_LICENSE_DEVICE_ID_MISMATCH                                     Handle        = 0xC0EA000A\n\tDXGI_STATUS_OCCLUDED                                                      Handle        = 0x087A0001\n\tDXGI_STATUS_CLIPPED                                                       Handle        = 0x087A0002\n\tDXGI_STATUS_NO_REDIRECTION                                                Handle        = 0x087A0004\n\tDXGI_STATUS_NO_DESKTOP_ACCESS                                             Handle        = 0x087A0005\n\tDXGI_STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE                                  Handle        = 0x087A0006\n\tDXGI_STATUS_MODE_CHANGED                                                  Handle        = 0x087A0007\n\tDXGI_STATUS_MODE_CHANGE_IN_PROGRESS                                       Handle        = 0x087A0008\n\tDXGI_ERROR_INVALID_CALL                                                   Handle        = 0x887A0001\n\tDXGI_ERROR_NOT_FOUND                                                      Handle        = 0x887A0002\n\tDXGI_ERROR_MORE_DATA                                                      Handle        = 0x887A0003\n\tDXGI_ERROR_UNSUPPORTED                                                    Handle        = 0x887A0004\n\tDXGI_ERROR_DEVICE_REMOVED                                                 Handle        = 0x887A0005\n\tDXGI_ERROR_DEVICE_HUNG                                                    Handle        = 0x887A0006\n\tDXGI_ERROR_DEVICE_RESET                                                   Handle        = 0x887A0007\n\tDXGI_ERROR_WAS_STILL_DRAWING                                              Handle        = 0x887A000A\n\tDXGI_ERROR_FRAME_STATISTICS_DISJOINT                                      Handle        = 0x887A000B\n\tDXGI_ERROR_GRAPHICS_VIDPN_SOURCE_IN_USE                                   Handle        = 0x887A000C\n\tDXGI_ERROR_DRIVER_INTERNAL_ERROR                                          Handle        = 0x887A0020\n\tDXGI_ERROR_NONEXCLUSIVE                                                   Handle        = 0x887A0021\n\tDXGI_ERROR_NOT_CURRENTLY_AVAILABLE                                        Handle        = 0x887A0022\n\tDXGI_ERROR_REMOTE_CLIENT_DISCONNECTED                                     Handle        = 0x887A0023\n\tDXGI_ERROR_REMOTE_OUTOFMEMORY                                             Handle        = 0x887A0024\n\tDXGI_ERROR_ACCESS_LOST                                                    Handle        = 0x887A0026\n\tDXGI_ERROR_WAIT_TIMEOUT                                                   Handle        = 0x887A0027\n\tDXGI_ERROR_SESSION_DISCONNECTED                                           Handle        = 0x887A0028\n\tDXGI_ERROR_RESTRICT_TO_OUTPUT_STALE                                       Handle        = 0x887A0029\n\tDXGI_ERROR_CANNOT_PROTECT_CONTENT                                         Handle        = 0x887A002A\n\tDXGI_ERROR_ACCESS_DENIED                                                  Handle        = 0x887A002B\n\tDXGI_ERROR_NAME_ALREADY_EXISTS                                            Handle        = 0x887A002C\n\tDXGI_ERROR_SDK_COMPONENT_MISSING                                          Handle        = 0x887A002D\n\tDXGI_ERROR_NOT_CURRENT                                                    Handle        = 0x887A002E\n\tDXGI_ERROR_HW_PROTECTION_OUTOFMEMORY                                      Handle        = 0x887A0030\n\tDXGI_ERROR_DYNAMIC_CODE_POLICY_VIOLATION                                  Handle        = 0x887A0031\n\tDXGI_ERROR_NON_COMPOSITED_UI                                              Handle        = 0x887A0032\n\tDXGI_STATUS_UNOCCLUDED                                                    Handle        = 0x087A0009\n\tDXGI_STATUS_DDA_WAS_STILL_DRAWING                                         Handle        = 0x087A000A\n\tDXGI_ERROR_MODE_CHANGE_IN_PROGRESS                                        Handle        = 0x887A0025\n\tDXGI_STATUS_PRESENT_REQUIRED                                              Handle        = 0x087A002F\n\tDXGI_ERROR_CACHE_CORRUPT                                                  Handle        = 0x887A0033\n\tDXGI_ERROR_CACHE_FULL                                                     Handle        = 0x887A0034\n\tDXGI_ERROR_CACHE_HASH_COLLISION                                           Handle        = 0x887A0035\n\tDXGI_ERROR_ALREADY_EXISTS                                                 Handle        = 0x887A0036\n\tDXGI_DDI_ERR_WASSTILLDRAWING                                              Handle        = 0x887B0001\n\tDXGI_DDI_ERR_UNSUPPORTED                                                  Handle        = 0x887B0002\n\tDXGI_DDI_ERR_NONEXCLUSIVE                                                 Handle        = 0x887B0003\n\tD3D10_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS                                 Handle        = 0x88790001\n\tD3D10_ERROR_FILE_NOT_FOUND                                                Handle        = 0x88790002\n\tD3D11_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS                                 Handle        = 0x887C0001\n\tD3D11_ERROR_FILE_NOT_FOUND                                                Handle        = 0x887C0002\n\tD3D11_ERROR_TOO_MANY_UNIQUE_VIEW_OBJECTS                                  Handle        = 0x887C0003\n\tD3D11_ERROR_DEFERRED_CONTEXT_MAP_WITHOUT_INITIAL_DISCARD                  Handle        = 0x887C0004\n\tD3D12_ERROR_ADAPTER_NOT_FOUND                                             Handle        = 0x887E0001\n\tD3D12_ERROR_DRIVER_VERSION_MISMATCH                                       Handle        = 0x887E0002\n\tD2DERR_WRONG_STATE                                                        Handle        = 0x88990001\n\tD2DERR_NOT_INITIALIZED                                                    Handle        = 0x88990002\n\tD2DERR_UNSUPPORTED_OPERATION                                              Handle        = 0x88990003\n\tD2DERR_SCANNER_FAILED                                                     Handle        = 0x88990004\n\tD2DERR_SCREEN_ACCESS_DENIED                                               Handle        = 0x88990005\n\tD2DERR_DISPLAY_STATE_INVALID                                              Handle        = 0x88990006\n\tD2DERR_ZERO_VECTOR                                                        Handle        = 0x88990007\n\tD2DERR_INTERNAL_ERROR                                                     Handle        = 0x88990008\n\tD2DERR_DISPLAY_FORMAT_NOT_SUPPORTED                                       Handle        = 0x88990009\n\tD2DERR_INVALID_CALL                                                       Handle        = 0x8899000A\n\tD2DERR_NO_HARDWARE_DEVICE                                                 Handle        = 0x8899000B\n\tD2DERR_RECREATE_TARGET                                                    Handle        = 0x8899000C\n\tD2DERR_TOO_MANY_SHADER_ELEMENTS                                           Handle        = 0x8899000D\n\tD2DERR_SHADER_COMPILE_FAILED                                              Handle        = 0x8899000E\n\tD2DERR_MAX_TEXTURE_SIZE_EXCEEDED                                          Handle        = 0x8899000F\n\tD2DERR_UNSUPPORTED_VERSION                                                Handle        = 0x88990010\n\tD2DERR_BAD_NUMBER                                                         Handle        = 0x88990011\n\tD2DERR_WRONG_FACTORY                                                      Handle        = 0x88990012\n\tD2DERR_LAYER_ALREADY_IN_USE                                               Handle        = 0x88990013\n\tD2DERR_POP_CALL_DID_NOT_MATCH_PUSH                                        Handle        = 0x88990014\n\tD2DERR_WRONG_RESOURCE_DOMAIN                                              Handle        = 0x88990015\n\tD2DERR_PUSH_POP_UNBALANCED                                                Handle        = 0x88990016\n\tD2DERR_RENDER_TARGET_HAS_LAYER_OR_CLIPRECT                                Handle        = 0x88990017\n\tD2DERR_INCOMPATIBLE_BRUSH_TYPES                                           Handle        = 0x88990018\n\tD2DERR_WIN32_ERROR                                                        Handle        = 0x88990019\n\tD2DERR_TARGET_NOT_GDI_COMPATIBLE                                          Handle        = 0x8899001A\n\tD2DERR_TEXT_EFFECT_IS_WRONG_TYPE                                          Handle        = 0x8899001B\n\tD2DERR_TEXT_RENDERER_NOT_RELEASED                                         Handle        = 0x8899001C\n\tD2DERR_EXCEEDS_MAX_BITMAP_SIZE                                            Handle        = 0x8899001D\n\tD2DERR_INVALID_GRAPH_CONFIGURATION                                        Handle        = 0x8899001E\n\tD2DERR_INVALID_INTERNAL_GRAPH_CONFIGURATION                               Handle        = 0x8899001F\n\tD2DERR_CYCLIC_GRAPH                                                       Handle        = 0x88990020\n\tD2DERR_BITMAP_CANNOT_DRAW                                                 Handle        = 0x88990021\n\tD2DERR_OUTSTANDING_BITMAP_REFERENCES                                      Handle        = 0x88990022\n\tD2DERR_ORIGINAL_TARGET_NOT_BOUND                                          Handle        = 0x88990023\n\tD2DERR_INVALID_TARGET                                                     Handle        = 0x88990024\n\tD2DERR_BITMAP_BOUND_AS_TARGET                                             Handle        = 0x88990025\n\tD2DERR_INSUFFICIENT_DEVICE_CAPABILITIES                                   Handle        = 0x88990026\n\tD2DERR_INTERMEDIATE_TOO_LARGE                                             Handle        = 0x88990027\n\tD2DERR_EFFECT_IS_NOT_REGISTERED                                           Handle        = 0x88990028\n\tD2DERR_INVALID_PROPERTY                                                   Handle        = 0x88990029\n\tD2DERR_NO_SUBPROPERTIES                                                   Handle        = 0x8899002A\n\tD2DERR_PRINT_JOB_CLOSED                                                   Handle        = 0x8899002B\n\tD2DERR_PRINT_FORMAT_NOT_SUPPORTED                                         Handle        = 0x8899002C\n\tD2DERR_TOO_MANY_TRANSFORM_INPUTS                                          Handle        = 0x8899002D\n\tD2DERR_INVALID_GLYPH_IMAGE                                                Handle        = 0x8899002E\n\tDWRITE_E_FILEFORMAT                                                       Handle        = 0x88985000\n\tDWRITE_E_UNEXPECTED                                                       Handle        = 0x88985001\n\tDWRITE_E_NOFONT                                                           Handle        = 0x88985002\n\tDWRITE_E_FILENOTFOUND                                                     Handle        = 0x88985003\n\tDWRITE_E_FILEACCESS                                                       Handle        = 0x88985004\n\tDWRITE_E_FONTCOLLECTIONOBSOLETE                                           Handle        = 0x88985005\n\tDWRITE_E_ALREADYREGISTERED                                                Handle        = 0x88985006\n\tDWRITE_E_CACHEFORMAT                                                      Handle        = 0x88985007\n\tDWRITE_E_CACHEVERSION                                                     Handle        = 0x88985008\n\tDWRITE_E_UNSUPPORTEDOPERATION                                             Handle        = 0x88985009\n\tDWRITE_E_TEXTRENDERERINCOMPATIBLE                                         Handle        = 0x8898500A\n\tDWRITE_E_FLOWDIRECTIONCONFLICTS                                           Handle        = 0x8898500B\n\tDWRITE_E_NOCOLOR                                                          Handle        = 0x8898500C\n\tDWRITE_E_REMOTEFONT                                                       Handle        = 0x8898500D\n\tDWRITE_E_DOWNLOADCANCELLED                                                Handle        = 0x8898500E\n\tDWRITE_E_DOWNLOADFAILED                                                   Handle        = 0x8898500F\n\tDWRITE_E_TOOMANYDOWNLOADS                                                 Handle        = 0x88985010\n\tWINCODEC_ERR_WRONGSTATE                                                   Handle        = 0x88982F04\n\tWINCODEC_ERR_VALUEOUTOFRANGE                                              Handle        = 0x88982F05\n\tWINCODEC_ERR_UNKNOWNIMAGEFORMAT                                           Handle        = 0x88982F07\n\tWINCODEC_ERR_UNSUPPORTEDVERSION                                           Handle        = 0x88982F0B\n\tWINCODEC_ERR_NOTINITIALIZED                                               Handle        = 0x88982F0C\n\tWINCODEC_ERR_ALREADYLOCKED                                                Handle        = 0x88982F0D\n\tWINCODEC_ERR_PROPERTYNOTFOUND                                             Handle        = 0x88982F40\n\tWINCODEC_ERR_PROPERTYNOTSUPPORTED                                         Handle        = 0x88982F41\n\tWINCODEC_ERR_PROPERTYSIZE                                                 Handle        = 0x88982F42\n\tWINCODEC_ERR_CODECPRESENT                                                 Handle        = 0x88982F43\n\tWINCODEC_ERR_CODECNOTHUMBNAIL                                             Handle        = 0x88982F44\n\tWINCODEC_ERR_PALETTEUNAVAILABLE                                           Handle        = 0x88982F45\n\tWINCODEC_ERR_CODECTOOMANYSCANLINES                                        Handle        = 0x88982F46\n\tWINCODEC_ERR_INTERNALERROR                                                Handle        = 0x88982F48\n\tWINCODEC_ERR_SOURCERECTDOESNOTMATCHDIMENSIONS                             Handle        = 0x88982F49\n\tWINCODEC_ERR_COMPONENTNOTFOUND                                            Handle        = 0x88982F50\n\tWINCODEC_ERR_IMAGESIZEOUTOFRANGE                                          Handle        = 0x88982F51\n\tWINCODEC_ERR_TOOMUCHMETADATA                                              Handle        = 0x88982F52\n\tWINCODEC_ERR_BADIMAGE                                                     Handle        = 0x88982F60\n\tWINCODEC_ERR_BADHEADER                                                    Handle        = 0x88982F61\n\tWINCODEC_ERR_FRAMEMISSING                                                 Handle        = 0x88982F62\n\tWINCODEC_ERR_BADMETADATAHEADER                                            Handle        = 0x88982F63\n\tWINCODEC_ERR_BADSTREAMDATA                                                Handle        = 0x88982F70\n\tWINCODEC_ERR_STREAMWRITE                                                  Handle        = 0x88982F71\n\tWINCODEC_ERR_STREAMREAD                                                   Handle        = 0x88982F72\n\tWINCODEC_ERR_STREAMNOTAVAILABLE                                           Handle        = 0x88982F73\n\tWINCODEC_ERR_UNSUPPORTEDPIXELFORMAT                                       Handle        = 0x88982F80\n\tWINCODEC_ERR_UNSUPPORTEDOPERATION                                         Handle        = 0x88982F81\n\tWINCODEC_ERR_INVALIDREGISTRATION                                          Handle        = 0x88982F8A\n\tWINCODEC_ERR_COMPONENTINITIALIZEFAILURE                                   Handle        = 0x88982F8B\n\tWINCODEC_ERR_INSUFFICIENTBUFFER                                           Handle        = 0x88982F8C\n\tWINCODEC_ERR_DUPLICATEMETADATAPRESENT                                     Handle        = 0x88982F8D\n\tWINCODEC_ERR_PROPERTYUNEXPECTEDTYPE                                       Handle        = 0x88982F8E\n\tWINCODEC_ERR_UNEXPECTEDSIZE                                               Handle        = 0x88982F8F\n\tWINCODEC_ERR_INVALIDQUERYREQUEST                                          Handle        = 0x88982F90\n\tWINCODEC_ERR_UNEXPECTEDMETADATATYPE                                       Handle        = 0x88982F91\n\tWINCODEC_ERR_REQUESTONLYVALIDATMETADATAROOT                               Handle        = 0x88982F92\n\tWINCODEC_ERR_INVALIDQUERYCHARACTER                                        Handle        = 0x88982F93\n\tWINCODEC_ERR_WIN32ERROR                                                   Handle        = 0x88982F94\n\tWINCODEC_ERR_INVALIDPROGRESSIVELEVEL                                      Handle        = 0x88982F95\n\tWINCODEC_ERR_INVALIDJPEGSCANINDEX                                         Handle        = 0x88982F96\n\tMILERR_OBJECTBUSY                                                         Handle        = 0x88980001\n\tMILERR_INSUFFICIENTBUFFER                                                 Handle        = 0x88980002\n\tMILERR_WIN32ERROR                                                         Handle        = 0x88980003\n\tMILERR_SCANNER_FAILED                                                     Handle        = 0x88980004\n\tMILERR_SCREENACCESSDENIED                                                 Handle        = 0x88980005\n\tMILERR_DISPLAYSTATEINVALID                                                Handle        = 0x88980006\n\tMILERR_NONINVERTIBLEMATRIX                                                Handle        = 0x88980007\n\tMILERR_ZEROVECTOR                                                         Handle        = 0x88980008\n\tMILERR_TERMINATED                                                         Handle        = 0x88980009\n\tMILERR_BADNUMBER                                                          Handle        = 0x8898000A\n\tMILERR_INTERNALERROR                                                      Handle        = 0x88980080\n\tMILERR_DISPLAYFORMATNOTSUPPORTED                                          Handle        = 0x88980084\n\tMILERR_INVALIDCALL                                                        Handle        = 0x88980085\n\tMILERR_ALREADYLOCKED                                                      Handle        = 0x88980086\n\tMILERR_NOTLOCKED                                                          Handle        = 0x88980087\n\tMILERR_DEVICECANNOTRENDERTEXT                                             Handle        = 0x88980088\n\tMILERR_GLYPHBITMAPMISSED                                                  Handle        = 0x88980089\n\tMILERR_MALFORMEDGLYPHCACHE                                                Handle        = 0x8898008A\n\tMILERR_GENERIC_IGNORE                                                     Handle        = 0x8898008B\n\tMILERR_MALFORMED_GUIDELINE_DATA                                           Handle        = 0x8898008C\n\tMILERR_NO_HARDWARE_DEVICE                                                 Handle        = 0x8898008D\n\tMILERR_NEED_RECREATE_AND_PRESENT                                          Handle        = 0x8898008E\n\tMILERR_ALREADY_INITIALIZED                                                Handle        = 0x8898008F\n\tMILERR_MISMATCHED_SIZE                                                    Handle        = 0x88980090\n\tMILERR_NO_REDIRECTION_SURFACE_AVAILABLE                                   Handle        = 0x88980091\n\tMILERR_REMOTING_NOT_SUPPORTED                                             Handle        = 0x88980092\n\tMILERR_QUEUED_PRESENT_NOT_SUPPORTED                                       Handle        = 0x88980093\n\tMILERR_NOT_QUEUING_PRESENTS                                               Handle        = 0x88980094\n\tMILERR_NO_REDIRECTION_SURFACE_RETRY_LATER                                 Handle        = 0x88980095\n\tMILERR_TOOMANYSHADERELEMNTS                                               Handle        = 0x88980096\n\tMILERR_MROW_READLOCK_FAILED                                               Handle        = 0x88980097\n\tMILERR_MROW_UPDATE_FAILED                                                 Handle        = 0x88980098\n\tMILERR_SHADER_COMPILE_FAILED                                              Handle        = 0x88980099\n\tMILERR_MAX_TEXTURE_SIZE_EXCEEDED                                          Handle        = 0x8898009A\n\tMILERR_QPC_TIME_WENT_BACKWARD                                             Handle        = 0x8898009B\n\tMILERR_DXGI_ENUMERATION_OUT_OF_SYNC                                       Handle        = 0x8898009D\n\tMILERR_ADAPTER_NOT_FOUND                                                  Handle        = 0x8898009E\n\tMILERR_COLORSPACE_NOT_SUPPORTED                                           Handle        = 0x8898009F\n\tMILERR_PREFILTER_NOT_SUPPORTED                                            Handle        = 0x889800A0\n\tMILERR_DISPLAYID_ACCESS_DENIED                                            Handle        = 0x889800A1\n\tUCEERR_INVALIDPACKETHEADER                                                Handle        = 0x88980400\n\tUCEERR_UNKNOWNPACKET                                                      Handle        = 0x88980401\n\tUCEERR_ILLEGALPACKET                                                      Handle        = 0x88980402\n\tUCEERR_MALFORMEDPACKET                                                    Handle        = 0x88980403\n\tUCEERR_ILLEGALHANDLE                                                      Handle        = 0x88980404\n\tUCEERR_HANDLELOOKUPFAILED                                                 Handle        = 0x88980405\n\tUCEERR_RENDERTHREADFAILURE                                                Handle        = 0x88980406\n\tUCEERR_CTXSTACKFRSTTARGETNULL                                             Handle        = 0x88980407\n\tUCEERR_CONNECTIONIDLOOKUPFAILED                                           Handle        = 0x88980408\n\tUCEERR_BLOCKSFULL                                                         Handle        = 0x88980409\n\tUCEERR_MEMORYFAILURE                                                      Handle        = 0x8898040A\n\tUCEERR_PACKETRECORDOUTOFRANGE                                             Handle        = 0x8898040B\n\tUCEERR_ILLEGALRECORDTYPE                                                  Handle        = 0x8898040C\n\tUCEERR_OUTOFHANDLES                                                       Handle        = 0x8898040D\n\tUCEERR_UNCHANGABLE_UPDATE_ATTEMPTED                                       Handle        = 0x8898040E\n\tUCEERR_NO_MULTIPLE_WORKER_THREADS                                         Handle        = 0x8898040F\n\tUCEERR_REMOTINGNOTSUPPORTED                                               Handle        = 0x88980410\n\tUCEERR_MISSINGENDCOMMAND                                                  Handle        = 0x88980411\n\tUCEERR_MISSINGBEGINCOMMAND                                                Handle        = 0x88980412\n\tUCEERR_CHANNELSYNCTIMEDOUT                                                Handle        = 0x88980413\n\tUCEERR_CHANNELSYNCABANDONED                                               Handle        = 0x88980414\n\tUCEERR_UNSUPPORTEDTRANSPORTVERSION                                        Handle        = 0x88980415\n\tUCEERR_TRANSPORTUNAVAILABLE                                               Handle        = 0x88980416\n\tUCEERR_FEEDBACK_UNSUPPORTED                                               Handle        = 0x88980417\n\tUCEERR_COMMANDTRANSPORTDENIED                                             Handle        = 0x88980418\n\tUCEERR_GRAPHICSSTREAMUNAVAILABLE                                          Handle        = 0x88980419\n\tUCEERR_GRAPHICSSTREAMALREADYOPEN                                          Handle        = 0x88980420\n\tUCEERR_TRANSPORTDISCONNECTED                                              Handle        = 0x88980421\n\tUCEERR_TRANSPORTOVERLOADED                                                Handle        = 0x88980422\n\tUCEERR_PARTITION_ZOMBIED                                                  Handle        = 0x88980423\n\tMILAVERR_NOCLOCK                                                          Handle        = 0x88980500\n\tMILAVERR_NOMEDIATYPE                                                      Handle        = 0x88980501\n\tMILAVERR_NOVIDEOMIXER                                                     Handle        = 0x88980502\n\tMILAVERR_NOVIDEOPRESENTER                                                 Handle        = 0x88980503\n\tMILAVERR_NOREADYFRAMES                                                    Handle        = 0x88980504\n\tMILAVERR_MODULENOTLOADED                                                  Handle        = 0x88980505\n\tMILAVERR_WMPFACTORYNOTREGISTERED                                          Handle        = 0x88980506\n\tMILAVERR_INVALIDWMPVERSION                                                Handle        = 0x88980507\n\tMILAVERR_INSUFFICIENTVIDEORESOURCES                                       Handle        = 0x88980508\n\tMILAVERR_VIDEOACCELERATIONNOTAVAILABLE                                    Handle        = 0x88980509\n\tMILAVERR_REQUESTEDTEXTURETOOBIG                                           Handle        = 0x8898050A\n\tMILAVERR_SEEKFAILED                                                       Handle        = 0x8898050B\n\tMILAVERR_UNEXPECTEDWMPFAILURE                                             Handle        = 0x8898050C\n\tMILAVERR_MEDIAPLAYERCLOSED                                                Handle        = 0x8898050D\n\tMILAVERR_UNKNOWNHARDWAREERROR                                             Handle        = 0x8898050E\n\tMILEFFECTSERR_UNKNOWNPROPERTY                                             Handle        = 0x8898060E\n\tMILEFFECTSERR_EFFECTNOTPARTOFGROUP                                        Handle        = 0x8898060F\n\tMILEFFECTSERR_NOINPUTSOURCEATTACHED                                       Handle        = 0x88980610\n\tMILEFFECTSERR_CONNECTORNOTCONNECTED                                       Handle        = 0x88980611\n\tMILEFFECTSERR_CONNECTORNOTASSOCIATEDWITHEFFECT                            Handle        = 0x88980612\n\tMILEFFECTSERR_RESERVED                                                    Handle        = 0x88980613\n\tMILEFFECTSERR_CYCLEDETECTED                                               Handle        = 0x88980614\n\tMILEFFECTSERR_EFFECTINMORETHANONEGRAPH                                    Handle        = 0x88980615\n\tMILEFFECTSERR_EFFECTALREADYINAGRAPH                                       Handle        = 0x88980616\n\tMILEFFECTSERR_EFFECTHASNOCHILDREN                                         Handle        = 0x88980617\n\tMILEFFECTSERR_ALREADYATTACHEDTOLISTENER                                   Handle        = 0x88980618\n\tMILEFFECTSERR_NOTAFFINETRANSFORM                                          Handle        = 0x88980619\n\tMILEFFECTSERR_EMPTYBOUNDS                                                 Handle        = 0x8898061A\n\tMILEFFECTSERR_OUTPUTSIZETOOLARGE                                          Handle        = 0x8898061B\n\tDWMERR_STATE_TRANSITION_FAILED                                            Handle        = 0x88980700\n\tDWMERR_THEME_FAILED                                                       Handle        = 0x88980701\n\tDWMERR_CATASTROPHIC_FAILURE                                               Handle        = 0x88980702\n\tDCOMPOSITION_ERROR_WINDOW_ALREADY_COMPOSED                                Handle        = 0x88980800\n\tDCOMPOSITION_ERROR_SURFACE_BEING_RENDERED                                 Handle        = 0x88980801\n\tDCOMPOSITION_ERROR_SURFACE_NOT_BEING_RENDERED                             Handle        = 0x88980802\n\tONL_E_INVALID_AUTHENTICATION_TARGET                                       Handle        = 0x80860001\n\tONL_E_ACCESS_DENIED_BY_TOU                                                Handle        = 0x80860002\n\tONL_E_INVALID_APPLICATION                                                 Handle        = 0x80860003\n\tONL_E_PASSWORD_UPDATE_REQUIRED                                            Handle        = 0x80860004\n\tONL_E_ACCOUNT_UPDATE_REQUIRED                                             Handle        = 0x80860005\n\tONL_E_FORCESIGNIN                                                         Handle        = 0x80860006\n\tONL_E_ACCOUNT_LOCKED                                                      Handle        = 0x80860007\n\tONL_E_PARENTAL_CONSENT_REQUIRED                                           Handle        = 0x80860008\n\tONL_E_EMAIL_VERIFICATION_REQUIRED                                         Handle        = 0x80860009\n\tONL_E_ACCOUNT_SUSPENDED_COMPROIMISE                                       Handle        = 0x8086000A\n\tONL_E_ACCOUNT_SUSPENDED_ABUSE                                             Handle        = 0x8086000B\n\tONL_E_ACTION_REQUIRED                                                     Handle        = 0x8086000C\n\tONL_CONNECTION_COUNT_LIMIT                                                Handle        = 0x8086000D\n\tONL_E_CONNECTED_ACCOUNT_CAN_NOT_SIGNOUT                                   Handle        = 0x8086000E\n\tONL_E_USER_AUTHENTICATION_REQUIRED                                        Handle        = 0x8086000F\n\tONL_E_REQUEST_THROTTLED                                                   Handle        = 0x80860010\n\tFA_E_MAX_PERSISTED_ITEMS_REACHED                                          Handle        = 0x80270220\n\tFA_E_HOMEGROUP_NOT_AVAILABLE                                              Handle        = 0x80270222\n\tE_MONITOR_RESOLUTION_TOO_LOW                                              Handle        = 0x80270250\n\tE_ELEVATED_ACTIVATION_NOT_SUPPORTED                                       Handle        = 0x80270251\n\tE_UAC_DISABLED                                                            Handle        = 0x80270252\n\tE_FULL_ADMIN_NOT_SUPPORTED                                                Handle        = 0x80270253\n\tE_APPLICATION_NOT_REGISTERED                                              Handle        = 0x80270254\n\tE_MULTIPLE_EXTENSIONS_FOR_APPLICATION                                     Handle        = 0x80270255\n\tE_MULTIPLE_PACKAGES_FOR_FAMILY                                            Handle        = 0x80270256\n\tE_APPLICATION_MANAGER_NOT_RUNNING                                         Handle        = 0x80270257\n\tS_STORE_LAUNCHED_FOR_REMEDIATION                                          Handle        = 0x00270258\n\tS_APPLICATION_ACTIVATION_ERROR_HANDLED_BY_DIALOG                          Handle        = 0x00270259\n\tE_APPLICATION_ACTIVATION_TIMED_OUT                                        Handle        = 0x8027025A\n\tE_APPLICATION_ACTIVATION_EXEC_FAILURE                                     Handle        = 0x8027025B\n\tE_APPLICATION_TEMPORARY_LICENSE_ERROR                                     Handle        = 0x8027025C\n\tE_APPLICATION_TRIAL_LICENSE_EXPIRED                                       Handle        = 0x8027025D\n\tE_SKYDRIVE_ROOT_TARGET_FILE_SYSTEM_NOT_SUPPORTED                          Handle        = 0x80270260\n\tE_SKYDRIVE_ROOT_TARGET_OVERLAP                                            Handle        = 0x80270261\n\tE_SKYDRIVE_ROOT_TARGET_CANNOT_INDEX                                       Handle        = 0x80270262\n\tE_SKYDRIVE_FILE_NOT_UPLOADED                                              Handle        = 0x80270263\n\tE_SKYDRIVE_UPDATE_AVAILABILITY_FAIL                                       Handle        = 0x80270264\n\tE_SKYDRIVE_ROOT_TARGET_VOLUME_ROOT_NOT_SUPPORTED                          Handle        = 0x80270265\n\tE_SYNCENGINE_FILE_SIZE_OVER_LIMIT                                         Handle        = 0x8802B001\n\tE_SYNCENGINE_FILE_SIZE_EXCEEDS_REMAINING_QUOTA                            Handle        = 0x8802B002\n\tE_SYNCENGINE_UNSUPPORTED_FILE_NAME                                        Handle        = 0x8802B003\n\tE_SYNCENGINE_FOLDER_ITEM_COUNT_LIMIT_EXCEEDED                             Handle        = 0x8802B004\n\tE_SYNCENGINE_FILE_SYNC_PARTNER_ERROR                                      Handle        = 0x8802B005\n\tE_SYNCENGINE_SYNC_PAUSED_BY_SERVICE                                       Handle        = 0x8802B006\n\tE_SYNCENGINE_FILE_IDENTIFIER_UNKNOWN                                      Handle        = 0x8802C002\n\tE_SYNCENGINE_SERVICE_AUTHENTICATION_FAILED                                Handle        = 0x8802C003\n\tE_SYNCENGINE_UNKNOWN_SERVICE_ERROR                                        Handle        = 0x8802C004\n\tE_SYNCENGINE_SERVICE_RETURNED_UNEXPECTED_SIZE                             Handle        = 0x8802C005\n\tE_SYNCENGINE_REQUEST_BLOCKED_BY_SERVICE                                   Handle        = 0x8802C006\n\tE_SYNCENGINE_REQUEST_BLOCKED_DUE_TO_CLIENT_ERROR                          Handle        = 0x8802C007\n\tE_SYNCENGINE_FOLDER_INACCESSIBLE                                          Handle        = 0x8802D001\n\tE_SYNCENGINE_UNSUPPORTED_FOLDER_NAME                                      Handle        = 0x8802D002\n\tE_SYNCENGINE_UNSUPPORTED_MARKET                                           Handle        = 0x8802D003\n\tE_SYNCENGINE_PATH_LENGTH_LIMIT_EXCEEDED                                   Handle        = 0x8802D004\n\tE_SYNCENGINE_REMOTE_PATH_LENGTH_LIMIT_EXCEEDED                            Handle        = 0x8802D005\n\tE_SYNCENGINE_CLIENT_UPDATE_NEEDED                                         Handle        = 0x8802D006\n\tE_SYNCENGINE_PROXY_AUTHENTICATION_REQUIRED                                Handle        = 0x8802D007\n\tE_SYNCENGINE_STORAGE_SERVICE_PROVISIONING_FAILED                          Handle        = 0x8802D008\n\tE_SYNCENGINE_UNSUPPORTED_REPARSE_POINT                                    Handle        = 0x8802D009\n\tE_SYNCENGINE_STORAGE_SERVICE_BLOCKED                                      Handle        = 0x8802D00A\n\tE_SYNCENGINE_FOLDER_IN_REDIRECTION                                        Handle        = 0x8802D00B\n\tEAS_E_POLICY_NOT_MANAGED_BY_OS                                            Handle        = 0x80550001\n\tEAS_E_POLICY_COMPLIANT_WITH_ACTIONS                                       Handle        = 0x80550002\n\tEAS_E_REQUESTED_POLICY_NOT_ENFORCEABLE                                    Handle        = 0x80550003\n\tEAS_E_CURRENT_USER_HAS_BLANK_PASSWORD                                     Handle        = 0x80550004\n\tEAS_E_REQUESTED_POLICY_PASSWORD_EXPIRATION_INCOMPATIBLE                   Handle        = 0x80550005\n\tEAS_E_USER_CANNOT_CHANGE_PASSWORD                                         Handle        = 0x80550006\n\tEAS_E_ADMINS_HAVE_BLANK_PASSWORD                                          Handle        = 0x80550007\n\tEAS_E_ADMINS_CANNOT_CHANGE_PASSWORD                                       Handle        = 0x80550008\n\tEAS_E_LOCAL_CONTROLLED_USERS_CANNOT_CHANGE_PASSWORD                       Handle        = 0x80550009\n\tEAS_E_PASSWORD_POLICY_NOT_ENFORCEABLE_FOR_CONNECTED_ADMINS                Handle        = 0x8055000A\n\tEAS_E_CONNECTED_ADMINS_NEED_TO_CHANGE_PASSWORD                            Handle        = 0x8055000B\n\tEAS_E_PASSWORD_POLICY_NOT_ENFORCEABLE_FOR_CURRENT_CONNECTED_USER          Handle        = 0x8055000C\n\tEAS_E_CURRENT_CONNECTED_USER_NEED_TO_CHANGE_PASSWORD                      Handle        = 0x8055000D\n\tWEB_E_UNSUPPORTED_FORMAT                                                  Handle        = 0x83750001\n\tWEB_E_INVALID_XML                                                         Handle        = 0x83750002\n\tWEB_E_MISSING_REQUIRED_ELEMENT                                            Handle        = 0x83750003\n\tWEB_E_MISSING_REQUIRED_ATTRIBUTE                                          Handle        = 0x83750004\n\tWEB_E_UNEXPECTED_CONTENT                                                  Handle        = 0x83750005\n\tWEB_E_RESOURCE_TOO_LARGE                                                  Handle        = 0x83750006\n\tWEB_E_INVALID_JSON_STRING                                                 Handle        = 0x83750007\n\tWEB_E_INVALID_JSON_NUMBER                                                 Handle        = 0x83750008\n\tWEB_E_JSON_VALUE_NOT_FOUND                                                Handle        = 0x83750009\n\tHTTP_E_STATUS_UNEXPECTED                                                  Handle        = 0x80190001\n\tHTTP_E_STATUS_UNEXPECTED_REDIRECTION                                      Handle        = 0x80190003\n\tHTTP_E_STATUS_UNEXPECTED_CLIENT_ERROR                                     Handle        = 0x80190004\n\tHTTP_E_STATUS_UNEXPECTED_SERVER_ERROR                                     Handle        = 0x80190005\n\tHTTP_E_STATUS_AMBIGUOUS                                                   Handle        = 0x8019012C\n\tHTTP_E_STATUS_MOVED                                                       Handle        = 0x8019012D\n\tHTTP_E_STATUS_REDIRECT                                                    Handle        = 0x8019012E\n\tHTTP_E_STATUS_REDIRECT_METHOD                                             Handle        = 0x8019012F\n\tHTTP_E_STATUS_NOT_MODIFIED                                                Handle        = 0x80190130\n\tHTTP_E_STATUS_USE_PROXY                                                   Handle        = 0x80190131\n\tHTTP_E_STATUS_REDIRECT_KEEP_VERB                                          Handle        = 0x80190133\n\tHTTP_E_STATUS_BAD_REQUEST                                                 Handle        = 0x80190190\n\tHTTP_E_STATUS_DENIED                                                      Handle        = 0x80190191\n\tHTTP_E_STATUS_PAYMENT_REQ                                                 Handle        = 0x80190192\n\tHTTP_E_STATUS_FORBIDDEN                                                   Handle        = 0x80190193\n\tHTTP_E_STATUS_NOT_FOUND                                                   Handle        = 0x80190194\n\tHTTP_E_STATUS_BAD_METHOD                                                  Handle        = 0x80190195\n\tHTTP_E_STATUS_NONE_ACCEPTABLE                                             Handle        = 0x80190196\n\tHTTP_E_STATUS_PROXY_AUTH_REQ                                              Handle        = 0x80190197\n\tHTTP_E_STATUS_REQUEST_TIMEOUT                                             Handle        = 0x80190198\n\tHTTP_E_STATUS_CONFLICT                                                    Handle        = 0x80190199\n\tHTTP_E_STATUS_GONE                                                        Handle        = 0x8019019A\n\tHTTP_E_STATUS_LENGTH_REQUIRED                                             Handle        = 0x8019019B\n\tHTTP_E_STATUS_PRECOND_FAILED                                              Handle        = 0x8019019C\n\tHTTP_E_STATUS_REQUEST_TOO_LARGE                                           Handle        = 0x8019019D\n\tHTTP_E_STATUS_URI_TOO_LONG                                                Handle        = 0x8019019E\n\tHTTP_E_STATUS_UNSUPPORTED_MEDIA                                           Handle        = 0x8019019F\n\tHTTP_E_STATUS_RANGE_NOT_SATISFIABLE                                       Handle        = 0x801901A0\n\tHTTP_E_STATUS_EXPECTATION_FAILED                                          Handle        = 0x801901A1\n\tHTTP_E_STATUS_SERVER_ERROR                                                Handle        = 0x801901F4\n\tHTTP_E_STATUS_NOT_SUPPORTED                                               Handle        = 0x801901F5\n\tHTTP_E_STATUS_BAD_GATEWAY                                                 Handle        = 0x801901F6\n\tHTTP_E_STATUS_SERVICE_UNAVAIL                                             Handle        = 0x801901F7\n\tHTTP_E_STATUS_GATEWAY_TIMEOUT                                             Handle        = 0x801901F8\n\tHTTP_E_STATUS_VERSION_NOT_SUP                                             Handle        = 0x801901F9\n\tE_INVALID_PROTOCOL_OPERATION                                              Handle        = 0x83760001\n\tE_INVALID_PROTOCOL_FORMAT                                                 Handle        = 0x83760002\n\tE_PROTOCOL_EXTENSIONS_NOT_SUPPORTED                                       Handle        = 0x83760003\n\tE_SUBPROTOCOL_NOT_SUPPORTED                                               Handle        = 0x83760004\n\tE_PROTOCOL_VERSION_NOT_SUPPORTED                                          Handle        = 0x83760005\n\tINPUT_E_OUT_OF_ORDER                                                      Handle        = 0x80400000\n\tINPUT_E_REENTRANCY                                                        Handle        = 0x80400001\n\tINPUT_E_MULTIMODAL                                                        Handle        = 0x80400002\n\tINPUT_E_PACKET                                                            Handle        = 0x80400003\n\tINPUT_E_FRAME                                                             Handle        = 0x80400004\n\tINPUT_E_HISTORY                                                           Handle        = 0x80400005\n\tINPUT_E_DEVICE_INFO                                                       Handle        = 0x80400006\n\tINPUT_E_TRANSFORM                                                         Handle        = 0x80400007\n\tINPUT_E_DEVICE_PROPERTY                                                   Handle        = 0x80400008\n\tINET_E_INVALID_URL                                                        Handle        = 0x800C0002\n\tINET_E_NO_SESSION                                                         Handle        = 0x800C0003\n\tINET_E_CANNOT_CONNECT                                                     Handle        = 0x800C0004\n\tINET_E_RESOURCE_NOT_FOUND                                                 Handle        = 0x800C0005\n\tINET_E_OBJECT_NOT_FOUND                                                   Handle        = 0x800C0006\n\tINET_E_DATA_NOT_AVAILABLE                                                 Handle        = 0x800C0007\n\tINET_E_DOWNLOAD_FAILURE                                                   Handle        = 0x800C0008\n\tINET_E_AUTHENTICATION_REQUIRED                                            Handle        = 0x800C0009\n\tINET_E_NO_VALID_MEDIA                                                     Handle        = 0x800C000A\n\tINET_E_CONNECTION_TIMEOUT                                                 Handle        = 0x800C000B\n\tINET_E_INVALID_REQUEST                                                    Handle        = 0x800C000C\n\tINET_E_UNKNOWN_PROTOCOL                                                   Handle        = 0x800C000D\n\tINET_E_SECURITY_PROBLEM                                                   Handle        = 0x800C000E\n\tINET_E_CANNOT_LOAD_DATA                                                   Handle        = 0x800C000F\n\tINET_E_CANNOT_INSTANTIATE_OBJECT                                          Handle        = 0x800C0010\n\tINET_E_INVALID_CERTIFICATE                                                Handle        = 0x800C0019\n\tINET_E_REDIRECT_FAILED                                                    Handle        = 0x800C0014\n\tINET_E_REDIRECT_TO_DIR                                                    Handle        = 0x800C0015\n\tERROR_DBG_CREATE_PROCESS_FAILURE_LOCKDOWN                                 Handle        = 0x80B00001\n\tERROR_DBG_ATTACH_PROCESS_FAILURE_LOCKDOWN                                 Handle        = 0x80B00002\n\tERROR_DBG_CONNECT_SERVER_FAILURE_LOCKDOWN                                 Handle        = 0x80B00003\n\tERROR_DBG_START_SERVER_FAILURE_LOCKDOWN                                   Handle        = 0x80B00004\n\tERROR_IO_PREEMPTED                                                        Handle        = 0x89010001\n\tJSCRIPT_E_CANTEXECUTE                                                     Handle        = 0x89020001\n\tWEP_E_NOT_PROVISIONED_ON_ALL_VOLUMES                                      Handle        = 0x88010001\n\tWEP_E_FIXED_DATA_NOT_SUPPORTED                                            Handle        = 0x88010002\n\tWEP_E_HARDWARE_NOT_COMPLIANT                                              Handle        = 0x88010003\n\tWEP_E_LOCK_NOT_CONFIGURED                                                 Handle        = 0x88010004\n\tWEP_E_PROTECTION_SUSPENDED                                                Handle        = 0x88010005\n\tWEP_E_NO_LICENSE                                                          Handle        = 0x88010006\n\tWEP_E_OS_NOT_PROTECTED                                                    Handle        = 0x88010007\n\tWEP_E_UNEXPECTED_FAIL                                                     Handle        = 0x88010008\n\tWEP_E_BUFFER_TOO_LARGE                                                    Handle        = 0x88010009\n\tERROR_SVHDX_ERROR_STORED                                                  Handle        = 0xC05C0000\n\tERROR_SVHDX_ERROR_NOT_AVAILABLE                                           Handle        = 0xC05CFF00\n\tERROR_SVHDX_UNIT_ATTENTION_AVAILABLE                                      Handle        = 0xC05CFF01\n\tERROR_SVHDX_UNIT_ATTENTION_CAPACITY_DATA_CHANGED                          Handle        = 0xC05CFF02\n\tERROR_SVHDX_UNIT_ATTENTION_RESERVATIONS_PREEMPTED                         Handle        = 0xC05CFF03\n\tERROR_SVHDX_UNIT_ATTENTION_RESERVATIONS_RELEASED                          Handle        = 0xC05CFF04\n\tERROR_SVHDX_UNIT_ATTENTION_REGISTRATIONS_PREEMPTED                        Handle        = 0xC05CFF05\n\tERROR_SVHDX_UNIT_ATTENTION_OPERATING_DEFINITION_CHANGED                   Handle        = 0xC05CFF06\n\tERROR_SVHDX_RESERVATION_CONFLICT                                          Handle        = 0xC05CFF07\n\tERROR_SVHDX_WRONG_FILE_TYPE                                               Handle        = 0xC05CFF08\n\tERROR_SVHDX_VERSION_MISMATCH                                              Handle        = 0xC05CFF09\n\tERROR_VHD_SHARED                                                          Handle        = 0xC05CFF0A\n\tERROR_SVHDX_NO_INITIATOR                                                  Handle        = 0xC05CFF0B\n\tERROR_VHDSET_BACKING_STORAGE_NOT_FOUND                                    Handle        = 0xC05CFF0C\n\tERROR_SMB_NO_PREAUTH_INTEGRITY_HASH_OVERLAP                               Handle        = 0xC05D0000\n\tERROR_SMB_BAD_CLUSTER_DIALECT                                             Handle        = 0xC05D0001\n\tWININET_E_OUT_OF_HANDLES                                                  Handle        = 0x80072EE1\n\tWININET_E_TIMEOUT                                                         Handle        = 0x80072EE2\n\tWININET_E_EXTENDED_ERROR                                                  Handle        = 0x80072EE3\n\tWININET_E_INTERNAL_ERROR                                                  Handle        = 0x80072EE4\n\tWININET_E_INVALID_URL                                                     Handle        = 0x80072EE5\n\tWININET_E_UNRECOGNIZED_SCHEME                                             Handle        = 0x80072EE6\n\tWININET_E_NAME_NOT_RESOLVED                                               Handle        = 0x80072EE7\n\tWININET_E_PROTOCOL_NOT_FOUND                                              Handle        = 0x80072EE8\n\tWININET_E_INVALID_OPTION                                                  Handle        = 0x80072EE9\n\tWININET_E_BAD_OPTION_LENGTH                                               Handle        = 0x80072EEA\n\tWININET_E_OPTION_NOT_SETTABLE                                             Handle        = 0x80072EEB\n\tWININET_E_SHUTDOWN                                                        Handle        = 0x80072EEC\n\tWININET_E_INCORRECT_USER_NAME                                             Handle        = 0x80072EED\n\tWININET_E_INCORRECT_PASSWORD                                              Handle        = 0x80072EEE\n\tWININET_E_LOGIN_FAILURE                                                   Handle        = 0x80072EEF\n\tWININET_E_INVALID_OPERATION                                               Handle        = 0x80072EF0\n\tWININET_E_OPERATION_CANCELLED                                             Handle        = 0x80072EF1\n\tWININET_E_INCORRECT_HANDLE_TYPE                                           Handle        = 0x80072EF2\n\tWININET_E_INCORRECT_HANDLE_STATE                                          Handle        = 0x80072EF3\n\tWININET_E_NOT_PROXY_REQUEST                                               Handle        = 0x80072EF4\n\tWININET_E_REGISTRY_VALUE_NOT_FOUND                                        Handle        = 0x80072EF5\n\tWININET_E_BAD_REGISTRY_PARAMETER                                          Handle        = 0x80072EF6\n\tWININET_E_NO_DIRECT_ACCESS                                                Handle        = 0x80072EF7\n\tWININET_E_NO_CONTEXT                                                      Handle        = 0x80072EF8\n\tWININET_E_NO_CALLBACK                                                     Handle        = 0x80072EF9\n\tWININET_E_REQUEST_PENDING                                                 Handle        = 0x80072EFA\n\tWININET_E_INCORRECT_FORMAT                                                Handle        = 0x80072EFB\n\tWININET_E_ITEM_NOT_FOUND                                                  Handle        = 0x80072EFC\n\tWININET_E_CANNOT_CONNECT                                                  Handle        = 0x80072EFD\n\tWININET_E_CONNECTION_ABORTED                                              Handle        = 0x80072EFE\n\tWININET_E_CONNECTION_RESET                                                Handle        = 0x80072EFF\n\tWININET_E_FORCE_RETRY                                                     Handle        = 0x80072F00\n\tWININET_E_INVALID_PROXY_REQUEST                                           Handle        = 0x80072F01\n\tWININET_E_NEED_UI                                                         Handle        = 0x80072F02\n\tWININET_E_HANDLE_EXISTS                                                   Handle        = 0x80072F04\n\tWININET_E_SEC_CERT_DATE_INVALID                                           Handle        = 0x80072F05\n\tWININET_E_SEC_CERT_CN_INVALID                                             Handle        = 0x80072F06\n\tWININET_E_HTTP_TO_HTTPS_ON_REDIR                                          Handle        = 0x80072F07\n\tWININET_E_HTTPS_TO_HTTP_ON_REDIR                                          Handle        = 0x80072F08\n\tWININET_E_MIXED_SECURITY                                                  Handle        = 0x80072F09\n\tWININET_E_CHG_POST_IS_NON_SECURE                                          Handle        = 0x80072F0A\n\tWININET_E_POST_IS_NON_SECURE                                              Handle        = 0x80072F0B\n\tWININET_E_CLIENT_AUTH_CERT_NEEDED                                         Handle        = 0x80072F0C\n\tWININET_E_INVALID_CA                                                      Handle        = 0x80072F0D\n\tWININET_E_CLIENT_AUTH_NOT_SETUP                                           Handle        = 0x80072F0E\n\tWININET_E_ASYNC_THREAD_FAILED                                             Handle        = 0x80072F0F\n\tWININET_E_REDIRECT_SCHEME_CHANGE                                          Handle        = 0x80072F10\n\tWININET_E_DIALOG_PENDING                                                  Handle        = 0x80072F11\n\tWININET_E_RETRY_DIALOG                                                    Handle        = 0x80072F12\n\tWININET_E_NO_NEW_CONTAINERS                                               Handle        = 0x80072F13\n\tWININET_E_HTTPS_HTTP_SUBMIT_REDIR                                         Handle        = 0x80072F14\n\tWININET_E_SEC_CERT_ERRORS                                                 Handle        = 0x80072F17\n\tWININET_E_SEC_CERT_REV_FAILED                                             Handle        = 0x80072F19\n\tWININET_E_HEADER_NOT_FOUND                                                Handle        = 0x80072F76\n\tWININET_E_DOWNLEVEL_SERVER                                                Handle        = 0x80072F77\n\tWININET_E_INVALID_SERVER_RESPONSE                                         Handle        = 0x80072F78\n\tWININET_E_INVALID_HEADER                                                  Handle        = 0x80072F79\n\tWININET_E_INVALID_QUERY_REQUEST                                           Handle        = 0x80072F7A\n\tWININET_E_HEADER_ALREADY_EXISTS                                           Handle        = 0x80072F7B\n\tWININET_E_REDIRECT_FAILED                                                 Handle        = 0x80072F7C\n\tWININET_E_SECURITY_CHANNEL_ERROR                                          Handle        = 0x80072F7D\n\tWININET_E_UNABLE_TO_CACHE_FILE                                            Handle        = 0x80072F7E\n\tWININET_E_TCPIP_NOT_INSTALLED                                             Handle        = 0x80072F7F\n\tWININET_E_DISCONNECTED                                                    Handle        = 0x80072F83\n\tWININET_E_SERVER_UNREACHABLE                                              Handle        = 0x80072F84\n\tWININET_E_PROXY_SERVER_UNREACHABLE                                        Handle        = 0x80072F85\n\tWININET_E_BAD_AUTO_PROXY_SCRIPT                                           Handle        = 0x80072F86\n\tWININET_E_UNABLE_TO_DOWNLOAD_SCRIPT                                       Handle        = 0x80072F87\n\tWININET_E_SEC_INVALID_CERT                                                Handle        = 0x80072F89\n\tWININET_E_SEC_CERT_REVOKED                                                Handle        = 0x80072F8A\n\tWININET_E_FAILED_DUETOSECURITYCHECK                                       Handle        = 0x80072F8B\n\tWININET_E_NOT_INITIALIZED                                                 Handle        = 0x80072F8C\n\tWININET_E_LOGIN_FAILURE_DISPLAY_ENTITY_BODY                               Handle        = 0x80072F8E\n\tWININET_E_DECODING_FAILED                                                 Handle        = 0x80072F8F\n\tWININET_E_NOT_REDIRECTED                                                  Handle        = 0x80072F80\n\tWININET_E_COOKIE_NEEDS_CONFIRMATION                                       Handle        = 0x80072F81\n\tWININET_E_COOKIE_DECLINED                                                 Handle        = 0x80072F82\n\tWININET_E_REDIRECT_NEEDS_CONFIRMATION                                     Handle        = 0x80072F88\n\tSQLITE_E_ERROR                                                            Handle        = 0x87AF0001\n\tSQLITE_E_INTERNAL                                                         Handle        = 0x87AF0002\n\tSQLITE_E_PERM                                                             Handle        = 0x87AF0003\n\tSQLITE_E_ABORT                                                            Handle        = 0x87AF0004\n\tSQLITE_E_BUSY                                                             Handle        = 0x87AF0005\n\tSQLITE_E_LOCKED                                                           Handle        = 0x87AF0006\n\tSQLITE_E_NOMEM                                                            Handle        = 0x87AF0007\n\tSQLITE_E_READONLY                                                         Handle        = 0x87AF0008\n\tSQLITE_E_INTERRUPT                                                        Handle        = 0x87AF0009\n\tSQLITE_E_IOERR                                                            Handle        = 0x87AF000A\n\tSQLITE_E_CORRUPT                                                          Handle        = 0x87AF000B\n\tSQLITE_E_NOTFOUND                                                         Handle        = 0x87AF000C\n\tSQLITE_E_FULL                                                             Handle        = 0x87AF000D\n\tSQLITE_E_CANTOPEN                                                         Handle        = 0x87AF000E\n\tSQLITE_E_PROTOCOL                                                         Handle        = 0x87AF000F\n\tSQLITE_E_EMPTY                                                            Handle        = 0x87AF0010\n\tSQLITE_E_SCHEMA                                                           Handle        = 0x87AF0011\n\tSQLITE_E_TOOBIG                                                           Handle        = 0x87AF0012\n\tSQLITE_E_CONSTRAINT                                                       Handle        = 0x87AF0013\n\tSQLITE_E_MISMATCH                                                         Handle        = 0x87AF0014\n\tSQLITE_E_MISUSE                                                           Handle        = 0x87AF0015\n\tSQLITE_E_NOLFS                                                            Handle        = 0x87AF0016\n\tSQLITE_E_AUTH                                                             Handle        = 0x87AF0017\n\tSQLITE_E_FORMAT                                                           Handle        = 0x87AF0018\n\tSQLITE_E_RANGE                                                            Handle        = 0x87AF0019\n\tSQLITE_E_NOTADB                                                           Handle        = 0x87AF001A\n\tSQLITE_E_NOTICE                                                           Handle        = 0x87AF001B\n\tSQLITE_E_WARNING                                                          Handle        = 0x87AF001C\n\tSQLITE_E_ROW                                                              Handle        = 0x87AF0064\n\tSQLITE_E_DONE                                                             Handle        = 0x87AF0065\n\tSQLITE_E_IOERR_READ                                                       Handle        = 0x87AF010A\n\tSQLITE_E_IOERR_SHORT_READ                                                 Handle        = 0x87AF020A\n\tSQLITE_E_IOERR_WRITE                                                      Handle        = 0x87AF030A\n\tSQLITE_E_IOERR_FSYNC                                                      Handle        = 0x87AF040A\n\tSQLITE_E_IOERR_DIR_FSYNC                                                  Handle        = 0x87AF050A\n\tSQLITE_E_IOERR_TRUNCATE                                                   Handle        = 0x87AF060A\n\tSQLITE_E_IOERR_FSTAT                                                      Handle        = 0x87AF070A\n\tSQLITE_E_IOERR_UNLOCK                                                     Handle        = 0x87AF080A\n\tSQLITE_E_IOERR_RDLOCK                                                     Handle        = 0x87AF090A\n\tSQLITE_E_IOERR_DELETE                                                     Handle        = 0x87AF0A0A\n\tSQLITE_E_IOERR_BLOCKED                                                    Handle        = 0x87AF0B0A\n\tSQLITE_E_IOERR_NOMEM                                                      Handle        = 0x87AF0C0A\n\tSQLITE_E_IOERR_ACCESS                                                     Handle        = 0x87AF0D0A\n\tSQLITE_E_IOERR_CHECKRESERVEDLOCK                                          Handle        = 0x87AF0E0A\n\tSQLITE_E_IOERR_LOCK                                                       Handle        = 0x87AF0F0A\n\tSQLITE_E_IOERR_CLOSE                                                      Handle        = 0x87AF100A\n\tSQLITE_E_IOERR_DIR_CLOSE                                                  Handle        = 0x87AF110A\n\tSQLITE_E_IOERR_SHMOPEN                                                    Handle        = 0x87AF120A\n\tSQLITE_E_IOERR_SHMSIZE                                                    Handle        = 0x87AF130A\n\tSQLITE_E_IOERR_SHMLOCK                                                    Handle        = 0x87AF140A\n\tSQLITE_E_IOERR_SHMMAP                                                     Handle        = 0x87AF150A\n\tSQLITE_E_IOERR_SEEK                                                       Handle        = 0x87AF160A\n\tSQLITE_E_IOERR_DELETE_NOENT                                               Handle        = 0x87AF170A\n\tSQLITE_E_IOERR_MMAP                                                       Handle        = 0x87AF180A\n\tSQLITE_E_IOERR_GETTEMPPATH                                                Handle        = 0x87AF190A\n\tSQLITE_E_IOERR_CONVPATH                                                   Handle        = 0x87AF1A0A\n\tSQLITE_E_IOERR_VNODE                                                      Handle        = 0x87AF1A02\n\tSQLITE_E_IOERR_AUTH                                                       Handle        = 0x87AF1A03\n\tSQLITE_E_LOCKED_SHAREDCACHE                                               Handle        = 0x87AF0106\n\tSQLITE_E_BUSY_RECOVERY                                                    Handle        = 0x87AF0105\n\tSQLITE_E_BUSY_SNAPSHOT                                                    Handle        = 0x87AF0205\n\tSQLITE_E_CANTOPEN_NOTEMPDIR                                               Handle        = 0x87AF010E\n\tSQLITE_E_CANTOPEN_ISDIR                                                   Handle        = 0x87AF020E\n\tSQLITE_E_CANTOPEN_FULLPATH                                                Handle        = 0x87AF030E\n\tSQLITE_E_CANTOPEN_CONVPATH                                                Handle        = 0x87AF040E\n\tSQLITE_E_CORRUPT_VTAB                                                     Handle        = 0x87AF010B\n\tSQLITE_E_READONLY_RECOVERY                                                Handle        = 0x87AF0108\n\tSQLITE_E_READONLY_CANTLOCK                                                Handle        = 0x87AF0208\n\tSQLITE_E_READONLY_ROLLBACK                                                Handle        = 0x87AF0308\n\tSQLITE_E_READONLY_DBMOVED                                                 Handle        = 0x87AF0408\n\tSQLITE_E_ABORT_ROLLBACK                                                   Handle        = 0x87AF0204\n\tSQLITE_E_CONSTRAINT_CHECK                                                 Handle        = 0x87AF0113\n\tSQLITE_E_CONSTRAINT_COMMITHOOK                                            Handle        = 0x87AF0213\n\tSQLITE_E_CONSTRAINT_FOREIGNKEY                                            Handle        = 0x87AF0313\n\tSQLITE_E_CONSTRAINT_FUNCTION                                              Handle        = 0x87AF0413\n\tSQLITE_E_CONSTRAINT_NOTNULL                                               Handle        = 0x87AF0513\n\tSQLITE_E_CONSTRAINT_PRIMARYKEY                                            Handle        = 0x87AF0613\n\tSQLITE_E_CONSTRAINT_TRIGGER                                               Handle        = 0x87AF0713\n\tSQLITE_E_CONSTRAINT_UNIQUE                                                Handle        = 0x87AF0813\n\tSQLITE_E_CONSTRAINT_VTAB                                                  Handle        = 0x87AF0913\n\tSQLITE_E_CONSTRAINT_ROWID                                                 Handle        = 0x87AF0A13\n\tSQLITE_E_NOTICE_RECOVER_WAL                                               Handle        = 0x87AF011B\n\tSQLITE_E_NOTICE_RECOVER_ROLLBACK                                          Handle        = 0x87AF021B\n\tSQLITE_E_WARNING_AUTOINDEX                                                Handle        = 0x87AF011C\n\tUTC_E_TOGGLE_TRACE_STARTED                                                Handle        = 0x87C51001\n\tUTC_E_ALTERNATIVE_TRACE_CANNOT_PREEMPT                                    Handle        = 0x87C51002\n\tUTC_E_AOT_NOT_RUNNING                                                     Handle        = 0x87C51003\n\tUTC_E_SCRIPT_TYPE_INVALID                                                 Handle        = 0x87C51004\n\tUTC_E_SCENARIODEF_NOT_FOUND                                               Handle        = 0x87C51005\n\tUTC_E_TRACEPROFILE_NOT_FOUND                                              Handle        = 0x87C51006\n\tUTC_E_FORWARDER_ALREADY_ENABLED                                           Handle        = 0x87C51007\n\tUTC_E_FORWARDER_ALREADY_DISABLED                                          Handle        = 0x87C51008\n\tUTC_E_EVENTLOG_ENTRY_MALFORMED                                            Handle        = 0x87C51009\n\tUTC_E_DIAGRULES_SCHEMAVERSION_MISMATCH                                    Handle        = 0x87C5100A\n\tUTC_E_SCRIPT_TERMINATED                                                   Handle        = 0x87C5100B\n\tUTC_E_INVALID_CUSTOM_FILTER                                               Handle        = 0x87C5100C\n\tUTC_E_TRACE_NOT_RUNNING                                                   Handle        = 0x87C5100D\n\tUTC_E_REESCALATED_TOO_QUICKLY                                             Handle        = 0x87C5100E\n\tUTC_E_ESCALATION_ALREADY_RUNNING                                          Handle        = 0x87C5100F\n\tUTC_E_PERFTRACK_ALREADY_TRACING                                           Handle        = 0x87C51010\n\tUTC_E_REACHED_MAX_ESCALATIONS                                             Handle        = 0x87C51011\n\tUTC_E_FORWARDER_PRODUCER_MISMATCH                                         Handle        = 0x87C51012\n\tUTC_E_INTENTIONAL_SCRIPT_FAILURE                                          Handle        = 0x87C51013\n\tUTC_E_SQM_INIT_FAILED                                                     Handle        = 0x87C51014\n\tUTC_E_NO_WER_LOGGER_SUPPORTED                                             Handle        = 0x87C51015\n\tUTC_E_TRACERS_DONT_EXIST                                                  Handle        = 0x87C51016\n\tUTC_E_WINRT_INIT_FAILED                                                   Handle        = 0x87C51017\n\tUTC_E_SCENARIODEF_SCHEMAVERSION_MISMATCH                                  Handle        = 0x87C51018\n\tUTC_E_INVALID_FILTER                                                      Handle        = 0x87C51019\n\tUTC_E_EXE_TERMINATED                                                      Handle        = 0x87C5101A\n\tUTC_E_ESCALATION_NOT_AUTHORIZED                                           Handle        = 0x87C5101B\n\tUTC_E_SETUP_NOT_AUTHORIZED                                                Handle        = 0x87C5101C\n\tUTC_E_CHILD_PROCESS_FAILED                                                Handle        = 0x87C5101D\n\tUTC_E_COMMAND_LINE_NOT_AUTHORIZED                                         Handle        = 0x87C5101E\n\tUTC_E_CANNOT_LOAD_SCENARIO_EDITOR_XML                                     Handle        = 0x87C5101F\n\tUTC_E_ESCALATION_TIMED_OUT                                                Handle        = 0x87C51020\n\tUTC_E_SETUP_TIMED_OUT                                                     Handle        = 0x87C51021\n\tUTC_E_TRIGGER_MISMATCH                                                    Handle        = 0x87C51022\n\tUTC_E_TRIGGER_NOT_FOUND                                                   Handle        = 0x87C51023\n\tUTC_E_SIF_NOT_SUPPORTED                                                   Handle        = 0x87C51024\n\tUTC_E_DELAY_TERMINATED                                                    Handle        = 0x87C51025\n\tUTC_E_DEVICE_TICKET_ERROR                                                 Handle        = 0x87C51026\n\tUTC_E_TRACE_BUFFER_LIMIT_EXCEEDED                                         Handle        = 0x87C51027\n\tUTC_E_API_RESULT_UNAVAILABLE                                              Handle        = 0x87C51028\n\tUTC_E_RPC_TIMEOUT                                                         Handle        = 0x87C51029\n\tUTC_E_RPC_WAIT_FAILED                                                     Handle        = 0x87C5102A\n\tUTC_E_API_BUSY                                                            Handle        = 0x87C5102B\n\tUTC_E_TRACE_MIN_DURATION_REQUIREMENT_NOT_MET                              Handle        = 0x87C5102C\n\tUTC_E_EXCLUSIVITY_NOT_AVAILABLE                                           Handle        = 0x87C5102D\n\tUTC_E_GETFILE_FILE_PATH_NOT_APPROVED                                      Handle        = 0x87C5102E\n\tUTC_E_ESCALATION_DIRECTORY_ALREADY_EXISTS                                 Handle        = 0x87C5102F\n\tUTC_E_TIME_TRIGGER_ON_START_INVALID                                       Handle        = 0x87C51030\n\tUTC_E_TIME_TRIGGER_ONLY_VALID_ON_SINGLE_TRANSITION                        Handle        = 0x87C51031\n\tUTC_E_TIME_TRIGGER_INVALID_TIME_RANGE                                     Handle        = 0x87C51032\n\tUTC_E_MULTIPLE_TIME_TRIGGER_ON_SINGLE_STATE                               Handle        = 0x87C51033\n\tUTC_E_BINARY_MISSING                                                      Handle        = 0x87C51034\n\tUTC_E_NETWORK_CAPTURE_NOT_ALLOWED                                         Handle        = 0x87C51035\n\tUTC_E_FAILED_TO_RESOLVE_CONTAINER_ID                                      Handle        = 0x87C51036\n\tUTC_E_UNABLE_TO_RESOLVE_SESSION                                           Handle        = 0x87C51037\n\tUTC_E_THROTTLED                                                           Handle        = 0x87C51038\n\tUTC_E_UNAPPROVED_SCRIPT                                                   Handle        = 0x87C51039\n\tUTC_E_SCRIPT_MISSING                                                      Handle        = 0x87C5103A\n\tUTC_E_SCENARIO_THROTTLED                                                  Handle        = 0x87C5103B\n\tUTC_E_API_NOT_SUPPORTED                                                   Handle        = 0x87C5103C\n\tUTC_E_GETFILE_EXTERNAL_PATH_NOT_APPROVED                                  Handle        = 0x87C5103D\n\tUTC_E_TRY_GET_SCENARIO_TIMEOUT_EXCEEDED                                   Handle        = 0x87C5103E\n\tUTC_E_CERT_REV_FAILED                                                     Handle        = 0x87C5103F\n\tUTC_E_FAILED_TO_START_NDISCAP                                             Handle        = 0x87C51040\n\tUTC_E_KERNELDUMP_LIMIT_REACHED                                            Handle        = 0x87C51041\n\tUTC_E_MISSING_AGGREGATE_EVENT_TAG                                         Handle        = 0x87C51042\n\tUTC_E_INVALID_AGGREGATION_STRUCT                                          Handle        = 0x87C51043\n\tUTC_E_ACTION_NOT_SUPPORTED_IN_DESTINATION                                 Handle        = 0x87C51044\n\tUTC_E_FILTER_MISSING_ATTRIBUTE                                            Handle        = 0x87C51045\n\tUTC_E_FILTER_INVALID_TYPE                                                 Handle        = 0x87C51046\n\tUTC_E_FILTER_VARIABLE_NOT_FOUND                                           Handle        = 0x87C51047\n\tUTC_E_FILTER_FUNCTION_RESTRICTED                                          Handle        = 0x87C51048\n\tUTC_E_FILTER_VERSION_MISMATCH                                             Handle        = 0x87C51049\n\tUTC_E_FILTER_INVALID_FUNCTION                                             Handle        = 0x87C51050\n\tUTC_E_FILTER_INVALID_FUNCTION_PARAMS                                      Handle        = 0x87C51051\n\tUTC_E_FILTER_INVALID_COMMAND                                              Handle        = 0x87C51052\n\tUTC_E_FILTER_ILLEGAL_EVAL                                                 Handle        = 0x87C51053\n\tUTC_E_TTTRACER_RETURNED_ERROR                                             Handle        = 0x87C51054\n\tUTC_E_AGENT_DIAGNOSTICS_TOO_LARGE                                         Handle        = 0x87C51055\n\tUTC_E_FAILED_TO_RECEIVE_AGENT_DIAGNOSTICS                                 Handle        = 0x87C51056\n\tUTC_E_SCENARIO_HAS_NO_ACTIONS                                             Handle        = 0x87C51057\n\tUTC_E_TTTRACER_STORAGE_FULL                                               Handle        = 0x87C51058\n\tUTC_E_INSUFFICIENT_SPACE_TO_START_TRACE                                   Handle        = 0x87C51059\n\tUTC_E_ESCALATION_CANCELLED_AT_SHUTDOWN                                    Handle        = 0x87C5105A\n\tUTC_E_GETFILEINFOACTION_FILE_NOT_APPROVED                                 Handle        = 0x87C5105B\n\tUTC_E_SETREGKEYACTION_TYPE_NOT_APPROVED                                   Handle        = 0x87C5105C\n\tWINML_ERR_INVALID_DEVICE                                                  Handle        = 0x88900001\n\tWINML_ERR_INVALID_BINDING                                                 Handle        = 0x88900002\n\tWINML_ERR_VALUE_NOTFOUND                                                  Handle        = 0x88900003\n\tWINML_ERR_SIZE_MISMATCH                                                   Handle        = 0x88900004\n\tSTATUS_WAIT_0                                                             NTStatus      = 0x00000000\n\tSTATUS_SUCCESS                                                            NTStatus      = 0x00000000\n\tSTATUS_WAIT_1                                                             NTStatus      = 0x00000001\n\tSTATUS_WAIT_2                                                             NTStatus      = 0x00000002\n\tSTATUS_WAIT_3                                                             NTStatus      = 0x00000003\n\tSTATUS_WAIT_63                                                            NTStatus      = 0x0000003F\n\tSTATUS_ABANDONED                                                          NTStatus      = 0x00000080\n\tSTATUS_ABANDONED_WAIT_0                                                   NTStatus      = 0x00000080\n\tSTATUS_ABANDONED_WAIT_63                                                  NTStatus      = 0x000000BF\n\tSTATUS_USER_APC                                                           NTStatus      = 0x000000C0\n\tSTATUS_ALREADY_COMPLETE                                                   NTStatus      = 0x000000FF\n\tSTATUS_KERNEL_APC                                                         NTStatus      = 0x00000100\n\tSTATUS_ALERTED                                                            NTStatus      = 0x00000101\n\tSTATUS_TIMEOUT                                                            NTStatus      = 0x00000102\n\tSTATUS_PENDING                                                            NTStatus      = 0x00000103\n\tSTATUS_REPARSE                                                            NTStatus      = 0x00000104\n\tSTATUS_MORE_ENTRIES                                                       NTStatus      = 0x00000105\n\tSTATUS_NOT_ALL_ASSIGNED                                                   NTStatus      = 0x00000106\n\tSTATUS_SOME_NOT_MAPPED                                                    NTStatus      = 0x00000107\n\tSTATUS_OPLOCK_BREAK_IN_PROGRESS                                           NTStatus      = 0x00000108\n\tSTATUS_VOLUME_MOUNTED                                                     NTStatus      = 0x00000109\n\tSTATUS_RXACT_COMMITTED                                                    NTStatus      = 0x0000010A\n\tSTATUS_NOTIFY_CLEANUP                                                     NTStatus      = 0x0000010B\n\tSTATUS_NOTIFY_ENUM_DIR                                                    NTStatus      = 0x0000010C\n\tSTATUS_NO_QUOTAS_FOR_ACCOUNT                                              NTStatus      = 0x0000010D\n\tSTATUS_PRIMARY_TRANSPORT_CONNECT_FAILED                                   NTStatus      = 0x0000010E\n\tSTATUS_PAGE_FAULT_TRANSITION                                              NTStatus      = 0x00000110\n\tSTATUS_PAGE_FAULT_DEMAND_ZERO                                             NTStatus      = 0x00000111\n\tSTATUS_PAGE_FAULT_COPY_ON_WRITE                                           NTStatus      = 0x00000112\n\tSTATUS_PAGE_FAULT_GUARD_PAGE                                              NTStatus      = 0x00000113\n\tSTATUS_PAGE_FAULT_PAGING_FILE                                             NTStatus      = 0x00000114\n\tSTATUS_CACHE_PAGE_LOCKED                                                  NTStatus      = 0x00000115\n\tSTATUS_CRASH_DUMP                                                         NTStatus      = 0x00000116\n\tSTATUS_BUFFER_ALL_ZEROS                                                   NTStatus      = 0x00000117\n\tSTATUS_REPARSE_OBJECT                                                     NTStatus      = 0x00000118\n\tSTATUS_RESOURCE_REQUIREMENTS_CHANGED                                      NTStatus      = 0x00000119\n\tSTATUS_TRANSLATION_COMPLETE                                               NTStatus      = 0x00000120\n\tSTATUS_DS_MEMBERSHIP_EVALUATED_LOCALLY                                    NTStatus      = 0x00000121\n\tSTATUS_NOTHING_TO_TERMINATE                                               NTStatus      = 0x00000122\n\tSTATUS_PROCESS_NOT_IN_JOB                                                 NTStatus      = 0x00000123\n\tSTATUS_PROCESS_IN_JOB                                                     NTStatus      = 0x00000124\n\tSTATUS_VOLSNAP_HIBERNATE_READY                                            NTStatus      = 0x00000125\n\tSTATUS_FSFILTER_OP_COMPLETED_SUCCESSFULLY                                 NTStatus      = 0x00000126\n\tSTATUS_INTERRUPT_VECTOR_ALREADY_CONNECTED                                 NTStatus      = 0x00000127\n\tSTATUS_INTERRUPT_STILL_CONNECTED                                          NTStatus      = 0x00000128\n\tSTATUS_PROCESS_CLONED                                                     NTStatus      = 0x00000129\n\tSTATUS_FILE_LOCKED_WITH_ONLY_READERS                                      NTStatus      = 0x0000012A\n\tSTATUS_FILE_LOCKED_WITH_WRITERS                                           NTStatus      = 0x0000012B\n\tSTATUS_VALID_IMAGE_HASH                                                   NTStatus      = 0x0000012C\n\tSTATUS_VALID_CATALOG_HASH                                                 NTStatus      = 0x0000012D\n\tSTATUS_VALID_STRONG_CODE_HASH                                             NTStatus      = 0x0000012E\n\tSTATUS_GHOSTED                                                            NTStatus      = 0x0000012F\n\tSTATUS_DATA_OVERWRITTEN                                                   NTStatus      = 0x00000130\n\tSTATUS_RESOURCEMANAGER_READ_ONLY                                          NTStatus      = 0x00000202\n\tSTATUS_RING_PREVIOUSLY_EMPTY                                              NTStatus      = 0x00000210\n\tSTATUS_RING_PREVIOUSLY_FULL                                               NTStatus      = 0x00000211\n\tSTATUS_RING_PREVIOUSLY_ABOVE_QUOTA                                        NTStatus      = 0x00000212\n\tSTATUS_RING_NEWLY_EMPTY                                                   NTStatus      = 0x00000213\n\tSTATUS_RING_SIGNAL_OPPOSITE_ENDPOINT                                      NTStatus      = 0x00000214\n\tSTATUS_OPLOCK_SWITCHED_TO_NEW_HANDLE                                      NTStatus      = 0x00000215\n\tSTATUS_OPLOCK_HANDLE_CLOSED                                               NTStatus      = 0x00000216\n\tSTATUS_WAIT_FOR_OPLOCK                                                    NTStatus      = 0x00000367\n\tSTATUS_REPARSE_GLOBAL                                                     NTStatus      = 0x00000368\n\tSTATUS_FLT_IO_COMPLETE                                                    NTStatus      = 0x001C0001\n\tSTATUS_OBJECT_NAME_EXISTS                                                 NTStatus      = 0x40000000\n\tSTATUS_THREAD_WAS_SUSPENDED                                               NTStatus      = 0x40000001\n\tSTATUS_WORKING_SET_LIMIT_RANGE                                            NTStatus      = 0x40000002\n\tSTATUS_IMAGE_NOT_AT_BASE                                                  NTStatus      = 0x40000003\n\tSTATUS_RXACT_STATE_CREATED                                                NTStatus      = 0x40000004\n\tSTATUS_SEGMENT_NOTIFICATION                                               NTStatus      = 0x40000005\n\tSTATUS_LOCAL_USER_SESSION_KEY                                             NTStatus      = 0x40000006\n\tSTATUS_BAD_CURRENT_DIRECTORY                                              NTStatus      = 0x40000007\n\tSTATUS_SERIAL_MORE_WRITES                                                 NTStatus      = 0x40000008\n\tSTATUS_REGISTRY_RECOVERED                                                 NTStatus      = 0x40000009\n\tSTATUS_FT_READ_RECOVERY_FROM_BACKUP                                       NTStatus      = 0x4000000A\n\tSTATUS_FT_WRITE_RECOVERY                                                  NTStatus      = 0x4000000B\n\tSTATUS_SERIAL_COUNTER_TIMEOUT                                             NTStatus      = 0x4000000C\n\tSTATUS_NULL_LM_PASSWORD                                                   NTStatus      = 0x4000000D\n\tSTATUS_IMAGE_MACHINE_TYPE_MISMATCH                                        NTStatus      = 0x4000000E\n\tSTATUS_RECEIVE_PARTIAL                                                    NTStatus      = 0x4000000F\n\tSTATUS_RECEIVE_EXPEDITED                                                  NTStatus      = 0x40000010\n\tSTATUS_RECEIVE_PARTIAL_EXPEDITED                                          NTStatus      = 0x40000011\n\tSTATUS_EVENT_DONE                                                         NTStatus      = 0x40000012\n\tSTATUS_EVENT_PENDING                                                      NTStatus      = 0x40000013\n\tSTATUS_CHECKING_FILE_SYSTEM                                               NTStatus      = 0x40000014\n\tSTATUS_FATAL_APP_EXIT                                                     NTStatus      = 0x40000015\n\tSTATUS_PREDEFINED_HANDLE                                                  NTStatus      = 0x40000016\n\tSTATUS_WAS_UNLOCKED                                                       NTStatus      = 0x40000017\n\tSTATUS_SERVICE_NOTIFICATION                                               NTStatus      = 0x40000018\n\tSTATUS_WAS_LOCKED                                                         NTStatus      = 0x40000019\n\tSTATUS_LOG_HARD_ERROR                                                     NTStatus      = 0x4000001A\n\tSTATUS_ALREADY_WIN32                                                      NTStatus      = 0x4000001B\n\tSTATUS_WX86_UNSIMULATE                                                    NTStatus      = 0x4000001C\n\tSTATUS_WX86_CONTINUE                                                      NTStatus      = 0x4000001D\n\tSTATUS_WX86_SINGLE_STEP                                                   NTStatus      = 0x4000001E\n\tSTATUS_WX86_BREAKPOINT                                                    NTStatus      = 0x4000001F\n\tSTATUS_WX86_EXCEPTION_CONTINUE                                            NTStatus      = 0x40000020\n\tSTATUS_WX86_EXCEPTION_LASTCHANCE                                          NTStatus      = 0x40000021\n\tSTATUS_WX86_EXCEPTION_CHAIN                                               NTStatus      = 0x40000022\n\tSTATUS_IMAGE_MACHINE_TYPE_MISMATCH_EXE                                    NTStatus      = 0x40000023\n\tSTATUS_NO_YIELD_PERFORMED                                                 NTStatus      = 0x40000024\n\tSTATUS_TIMER_RESUME_IGNORED                                               NTStatus      = 0x40000025\n\tSTATUS_ARBITRATION_UNHANDLED                                              NTStatus      = 0x40000026\n\tSTATUS_CARDBUS_NOT_SUPPORTED                                              NTStatus      = 0x40000027\n\tSTATUS_WX86_CREATEWX86TIB                                                 NTStatus      = 0x40000028\n\tSTATUS_MP_PROCESSOR_MISMATCH                                              NTStatus      = 0x40000029\n\tSTATUS_HIBERNATED                                                         NTStatus      = 0x4000002A\n\tSTATUS_RESUME_HIBERNATION                                                 NTStatus      = 0x4000002B\n\tSTATUS_FIRMWARE_UPDATED                                                   NTStatus      = 0x4000002C\n\tSTATUS_DRIVERS_LEAKING_LOCKED_PAGES                                       NTStatus      = 0x4000002D\n\tSTATUS_MESSAGE_RETRIEVED                                                  NTStatus      = 0x4000002E\n\tSTATUS_SYSTEM_POWERSTATE_TRANSITION                                       NTStatus      = 0x4000002F\n\tSTATUS_ALPC_CHECK_COMPLETION_LIST                                         NTStatus      = 0x40000030\n\tSTATUS_SYSTEM_POWERSTATE_COMPLEX_TRANSITION                               NTStatus      = 0x40000031\n\tSTATUS_ACCESS_AUDIT_BY_POLICY                                             NTStatus      = 0x40000032\n\tSTATUS_ABANDON_HIBERFILE                                                  NTStatus      = 0x40000033\n\tSTATUS_BIZRULES_NOT_ENABLED                                               NTStatus      = 0x40000034\n\tSTATUS_FT_READ_FROM_COPY                                                  NTStatus      = 0x40000035\n\tSTATUS_IMAGE_AT_DIFFERENT_BASE                                            NTStatus      = 0x40000036\n\tSTATUS_PATCH_DEFERRED                                                     NTStatus      = 0x40000037\n\tSTATUS_HEURISTIC_DAMAGE_POSSIBLE                                          NTStatus      = 0x40190001\n\tSTATUS_GUARD_PAGE_VIOLATION                                               NTStatus      = 0x80000001\n\tSTATUS_DATATYPE_MISALIGNMENT                                              NTStatus      = 0x80000002\n\tSTATUS_BREAKPOINT                                                         NTStatus      = 0x80000003\n\tSTATUS_SINGLE_STEP                                                        NTStatus      = 0x80000004\n\tSTATUS_BUFFER_OVERFLOW                                                    NTStatus      = 0x80000005\n\tSTATUS_NO_MORE_FILES                                                      NTStatus      = 0x80000006\n\tSTATUS_WAKE_SYSTEM_DEBUGGER                                               NTStatus      = 0x80000007\n\tSTATUS_HANDLES_CLOSED                                                     NTStatus      = 0x8000000A\n\tSTATUS_NO_INHERITANCE                                                     NTStatus      = 0x8000000B\n\tSTATUS_GUID_SUBSTITUTION_MADE                                             NTStatus      = 0x8000000C\n\tSTATUS_PARTIAL_COPY                                                       NTStatus      = 0x8000000D\n\tSTATUS_DEVICE_PAPER_EMPTY                                                 NTStatus      = 0x8000000E\n\tSTATUS_DEVICE_POWERED_OFF                                                 NTStatus      = 0x8000000F\n\tSTATUS_DEVICE_OFF_LINE                                                    NTStatus      = 0x80000010\n\tSTATUS_DEVICE_BUSY                                                        NTStatus      = 0x80000011\n\tSTATUS_NO_MORE_EAS                                                        NTStatus      = 0x80000012\n\tSTATUS_INVALID_EA_NAME                                                    NTStatus      = 0x80000013\n\tSTATUS_EA_LIST_INCONSISTENT                                               NTStatus      = 0x80000014\n\tSTATUS_INVALID_EA_FLAG                                                    NTStatus      = 0x80000015\n\tSTATUS_VERIFY_REQUIRED                                                    NTStatus      = 0x80000016\n\tSTATUS_EXTRANEOUS_INFORMATION                                             NTStatus      = 0x80000017\n\tSTATUS_RXACT_COMMIT_NECESSARY                                             NTStatus      = 0x80000018\n\tSTATUS_NO_MORE_ENTRIES                                                    NTStatus      = 0x8000001A\n\tSTATUS_FILEMARK_DETECTED                                                  NTStatus      = 0x8000001B\n\tSTATUS_MEDIA_CHANGED                                                      NTStatus      = 0x8000001C\n\tSTATUS_BUS_RESET                                                          NTStatus      = 0x8000001D\n\tSTATUS_END_OF_MEDIA                                                       NTStatus      = 0x8000001E\n\tSTATUS_BEGINNING_OF_MEDIA                                                 NTStatus      = 0x8000001F\n\tSTATUS_MEDIA_CHECK                                                        NTStatus      = 0x80000020\n\tSTATUS_SETMARK_DETECTED                                                   NTStatus      = 0x80000021\n\tSTATUS_NO_DATA_DETECTED                                                   NTStatus      = 0x80000022\n\tSTATUS_REDIRECTOR_HAS_OPEN_HANDLES                                        NTStatus      = 0x80000023\n\tSTATUS_SERVER_HAS_OPEN_HANDLES                                            NTStatus      = 0x80000024\n\tSTATUS_ALREADY_DISCONNECTED                                               NTStatus      = 0x80000025\n\tSTATUS_LONGJUMP                                                           NTStatus      = 0x80000026\n\tSTATUS_CLEANER_CARTRIDGE_INSTALLED                                        NTStatus      = 0x80000027\n\tSTATUS_PLUGPLAY_QUERY_VETOED                                              NTStatus      = 0x80000028\n\tSTATUS_UNWIND_CONSOLIDATE                                                 NTStatus      = 0x80000029\n\tSTATUS_REGISTRY_HIVE_RECOVERED                                            NTStatus      = 0x8000002A\n\tSTATUS_DLL_MIGHT_BE_INSECURE                                              NTStatus      = 0x8000002B\n\tSTATUS_DLL_MIGHT_BE_INCOMPATIBLE                                          NTStatus      = 0x8000002C\n\tSTATUS_STOPPED_ON_SYMLINK                                                 NTStatus      = 0x8000002D\n\tSTATUS_CANNOT_GRANT_REQUESTED_OPLOCK                                      NTStatus      = 0x8000002E\n\tSTATUS_NO_ACE_CONDITION                                                   NTStatus      = 0x8000002F\n\tSTATUS_DEVICE_SUPPORT_IN_PROGRESS                                         NTStatus      = 0x80000030\n\tSTATUS_DEVICE_POWER_CYCLE_REQUIRED                                        NTStatus      = 0x80000031\n\tSTATUS_NO_WORK_DONE                                                       NTStatus      = 0x80000032\n\tSTATUS_CLUSTER_NODE_ALREADY_UP                                            NTStatus      = 0x80130001\n\tSTATUS_CLUSTER_NODE_ALREADY_DOWN                                          NTStatus      = 0x80130002\n\tSTATUS_CLUSTER_NETWORK_ALREADY_ONLINE                                     NTStatus      = 0x80130003\n\tSTATUS_CLUSTER_NETWORK_ALREADY_OFFLINE                                    NTStatus      = 0x80130004\n\tSTATUS_CLUSTER_NODE_ALREADY_MEMBER                                        NTStatus      = 0x80130005\n\tSTATUS_FLT_BUFFER_TOO_SMALL                                               NTStatus      = 0x801C0001\n\tSTATUS_FVE_PARTIAL_METADATA                                               NTStatus      = 0x80210001\n\tSTATUS_FVE_TRANSIENT_STATE                                                NTStatus      = 0x80210002\n\tSTATUS_CLOUD_FILE_PROPERTY_BLOB_CHECKSUM_MISMATCH                         NTStatus      = 0x8000CF00\n\tSTATUS_UNSUCCESSFUL                                                       NTStatus      = 0xC0000001\n\tSTATUS_NOT_IMPLEMENTED                                                    NTStatus      = 0xC0000002\n\tSTATUS_INVALID_INFO_CLASS                                                 NTStatus      = 0xC0000003\n\tSTATUS_INFO_LENGTH_MISMATCH                                               NTStatus      = 0xC0000004\n\tSTATUS_ACCESS_VIOLATION                                                   NTStatus      = 0xC0000005\n\tSTATUS_IN_PAGE_ERROR                                                      NTStatus      = 0xC0000006\n\tSTATUS_PAGEFILE_QUOTA                                                     NTStatus      = 0xC0000007\n\tSTATUS_INVALID_HANDLE                                                     NTStatus      = 0xC0000008\n\tSTATUS_BAD_INITIAL_STACK                                                  NTStatus      = 0xC0000009\n\tSTATUS_BAD_INITIAL_PC                                                     NTStatus      = 0xC000000A\n\tSTATUS_INVALID_CID                                                        NTStatus      = 0xC000000B\n\tSTATUS_TIMER_NOT_CANCELED                                                 NTStatus      = 0xC000000C\n\tSTATUS_INVALID_PARAMETER                                                  NTStatus      = 0xC000000D\n\tSTATUS_NO_SUCH_DEVICE                                                     NTStatus      = 0xC000000E\n\tSTATUS_NO_SUCH_FILE                                                       NTStatus      = 0xC000000F\n\tSTATUS_INVALID_DEVICE_REQUEST                                             NTStatus      = 0xC0000010\n\tSTATUS_END_OF_FILE                                                        NTStatus      = 0xC0000011\n\tSTATUS_WRONG_VOLUME                                                       NTStatus      = 0xC0000012\n\tSTATUS_NO_MEDIA_IN_DEVICE                                                 NTStatus      = 0xC0000013\n\tSTATUS_UNRECOGNIZED_MEDIA                                                 NTStatus      = 0xC0000014\n\tSTATUS_NONEXISTENT_SECTOR                                                 NTStatus      = 0xC0000015\n\tSTATUS_MORE_PROCESSING_REQUIRED                                           NTStatus      = 0xC0000016\n\tSTATUS_NO_MEMORY                                                          NTStatus      = 0xC0000017\n\tSTATUS_CONFLICTING_ADDRESSES                                              NTStatus      = 0xC0000018\n\tSTATUS_NOT_MAPPED_VIEW                                                    NTStatus      = 0xC0000019\n\tSTATUS_UNABLE_TO_FREE_VM                                                  NTStatus      = 0xC000001A\n\tSTATUS_UNABLE_TO_DELETE_SECTION                                           NTStatus      = 0xC000001B\n\tSTATUS_INVALID_SYSTEM_SERVICE                                             NTStatus      = 0xC000001C\n\tSTATUS_ILLEGAL_INSTRUCTION                                                NTStatus      = 0xC000001D\n\tSTATUS_INVALID_LOCK_SEQUENCE                                              NTStatus      = 0xC000001E\n\tSTATUS_INVALID_VIEW_SIZE                                                  NTStatus      = 0xC000001F\n\tSTATUS_INVALID_FILE_FOR_SECTION                                           NTStatus      = 0xC0000020\n\tSTATUS_ALREADY_COMMITTED                                                  NTStatus      = 0xC0000021\n\tSTATUS_ACCESS_DENIED                                                      NTStatus      = 0xC0000022\n\tSTATUS_BUFFER_TOO_SMALL                                                   NTStatus      = 0xC0000023\n\tSTATUS_OBJECT_TYPE_MISMATCH                                               NTStatus      = 0xC0000024\n\tSTATUS_NONCONTINUABLE_EXCEPTION                                           NTStatus      = 0xC0000025\n\tSTATUS_INVALID_DISPOSITION                                                NTStatus      = 0xC0000026\n\tSTATUS_UNWIND                                                             NTStatus      = 0xC0000027\n\tSTATUS_BAD_STACK                                                          NTStatus      = 0xC0000028\n\tSTATUS_INVALID_UNWIND_TARGET                                              NTStatus      = 0xC0000029\n\tSTATUS_NOT_LOCKED                                                         NTStatus      = 0xC000002A\n\tSTATUS_PARITY_ERROR                                                       NTStatus      = 0xC000002B\n\tSTATUS_UNABLE_TO_DECOMMIT_VM                                              NTStatus      = 0xC000002C\n\tSTATUS_NOT_COMMITTED                                                      NTStatus      = 0xC000002D\n\tSTATUS_INVALID_PORT_ATTRIBUTES                                            NTStatus      = 0xC000002E\n\tSTATUS_PORT_MESSAGE_TOO_LONG                                              NTStatus      = 0xC000002F\n\tSTATUS_INVALID_PARAMETER_MIX                                              NTStatus      = 0xC0000030\n\tSTATUS_INVALID_QUOTA_LOWER                                                NTStatus      = 0xC0000031\n\tSTATUS_DISK_CORRUPT_ERROR                                                 NTStatus      = 0xC0000032\n\tSTATUS_OBJECT_NAME_INVALID                                                NTStatus      = 0xC0000033\n\tSTATUS_OBJECT_NAME_NOT_FOUND                                              NTStatus      = 0xC0000034\n\tSTATUS_OBJECT_NAME_COLLISION                                              NTStatus      = 0xC0000035\n\tSTATUS_PORT_DO_NOT_DISTURB                                                NTStatus      = 0xC0000036\n\tSTATUS_PORT_DISCONNECTED                                                  NTStatus      = 0xC0000037\n\tSTATUS_DEVICE_ALREADY_ATTACHED                                            NTStatus      = 0xC0000038\n\tSTATUS_OBJECT_PATH_INVALID                                                NTStatus      = 0xC0000039\n\tSTATUS_OBJECT_PATH_NOT_FOUND                                              NTStatus      = 0xC000003A\n\tSTATUS_OBJECT_PATH_SYNTAX_BAD                                             NTStatus      = 0xC000003B\n\tSTATUS_DATA_OVERRUN                                                       NTStatus      = 0xC000003C\n\tSTATUS_DATA_LATE_ERROR                                                    NTStatus      = 0xC000003D\n\tSTATUS_DATA_ERROR                                                         NTStatus      = 0xC000003E\n\tSTATUS_CRC_ERROR                                                          NTStatus      = 0xC000003F\n\tSTATUS_SECTION_TOO_BIG                                                    NTStatus      = 0xC0000040\n\tSTATUS_PORT_CONNECTION_REFUSED                                            NTStatus      = 0xC0000041\n\tSTATUS_INVALID_PORT_HANDLE                                                NTStatus      = 0xC0000042\n\tSTATUS_SHARING_VIOLATION                                                  NTStatus      = 0xC0000043\n\tSTATUS_QUOTA_EXCEEDED                                                     NTStatus      = 0xC0000044\n\tSTATUS_INVALID_PAGE_PROTECTION                                            NTStatus      = 0xC0000045\n\tSTATUS_MUTANT_NOT_OWNED                                                   NTStatus      = 0xC0000046\n\tSTATUS_SEMAPHORE_LIMIT_EXCEEDED                                           NTStatus      = 0xC0000047\n\tSTATUS_PORT_ALREADY_SET                                                   NTStatus      = 0xC0000048\n\tSTATUS_SECTION_NOT_IMAGE                                                  NTStatus      = 0xC0000049\n\tSTATUS_SUSPEND_COUNT_EXCEEDED                                             NTStatus      = 0xC000004A\n\tSTATUS_THREAD_IS_TERMINATING                                              NTStatus      = 0xC000004B\n\tSTATUS_BAD_WORKING_SET_LIMIT                                              NTStatus      = 0xC000004C\n\tSTATUS_INCOMPATIBLE_FILE_MAP                                              NTStatus      = 0xC000004D\n\tSTATUS_SECTION_PROTECTION                                                 NTStatus      = 0xC000004E\n\tSTATUS_EAS_NOT_SUPPORTED                                                  NTStatus      = 0xC000004F\n\tSTATUS_EA_TOO_LARGE                                                       NTStatus      = 0xC0000050\n\tSTATUS_NONEXISTENT_EA_ENTRY                                               NTStatus      = 0xC0000051\n\tSTATUS_NO_EAS_ON_FILE                                                     NTStatus      = 0xC0000052\n\tSTATUS_EA_CORRUPT_ERROR                                                   NTStatus      = 0xC0000053\n\tSTATUS_FILE_LOCK_CONFLICT                                                 NTStatus      = 0xC0000054\n\tSTATUS_LOCK_NOT_GRANTED                                                   NTStatus      = 0xC0000055\n\tSTATUS_DELETE_PENDING                                                     NTStatus      = 0xC0000056\n\tSTATUS_CTL_FILE_NOT_SUPPORTED                                             NTStatus      = 0xC0000057\n\tSTATUS_UNKNOWN_REVISION                                                   NTStatus      = 0xC0000058\n\tSTATUS_REVISION_MISMATCH                                                  NTStatus      = 0xC0000059\n\tSTATUS_INVALID_OWNER                                                      NTStatus      = 0xC000005A\n\tSTATUS_INVALID_PRIMARY_GROUP                                              NTStatus      = 0xC000005B\n\tSTATUS_NO_IMPERSONATION_TOKEN                                             NTStatus      = 0xC000005C\n\tSTATUS_CANT_DISABLE_MANDATORY                                             NTStatus      = 0xC000005D\n\tSTATUS_NO_LOGON_SERVERS                                                   NTStatus      = 0xC000005E\n\tSTATUS_NO_SUCH_LOGON_SESSION                                              NTStatus      = 0xC000005F\n\tSTATUS_NO_SUCH_PRIVILEGE                                                  NTStatus      = 0xC0000060\n\tSTATUS_PRIVILEGE_NOT_HELD                                                 NTStatus      = 0xC0000061\n\tSTATUS_INVALID_ACCOUNT_NAME                                               NTStatus      = 0xC0000062\n\tSTATUS_USER_EXISTS                                                        NTStatus      = 0xC0000063\n\tSTATUS_NO_SUCH_USER                                                       NTStatus      = 0xC0000064\n\tSTATUS_GROUP_EXISTS                                                       NTStatus      = 0xC0000065\n\tSTATUS_NO_SUCH_GROUP                                                      NTStatus      = 0xC0000066\n\tSTATUS_MEMBER_IN_GROUP                                                    NTStatus      = 0xC0000067\n\tSTATUS_MEMBER_NOT_IN_GROUP                                                NTStatus      = 0xC0000068\n\tSTATUS_LAST_ADMIN                                                         NTStatus      = 0xC0000069\n\tSTATUS_WRONG_PASSWORD                                                     NTStatus      = 0xC000006A\n\tSTATUS_ILL_FORMED_PASSWORD                                                NTStatus      = 0xC000006B\n\tSTATUS_PASSWORD_RESTRICTION                                               NTStatus      = 0xC000006C\n\tSTATUS_LOGON_FAILURE                                                      NTStatus      = 0xC000006D\n\tSTATUS_ACCOUNT_RESTRICTION                                                NTStatus      = 0xC000006E\n\tSTATUS_INVALID_LOGON_HOURS                                                NTStatus      = 0xC000006F\n\tSTATUS_INVALID_WORKSTATION                                                NTStatus      = 0xC0000070\n\tSTATUS_PASSWORD_EXPIRED                                                   NTStatus      = 0xC0000071\n\tSTATUS_ACCOUNT_DISABLED                                                   NTStatus      = 0xC0000072\n\tSTATUS_NONE_MAPPED                                                        NTStatus      = 0xC0000073\n\tSTATUS_TOO_MANY_LUIDS_REQUESTED                                           NTStatus      = 0xC0000074\n\tSTATUS_LUIDS_EXHAUSTED                                                    NTStatus      = 0xC0000075\n\tSTATUS_INVALID_SUB_AUTHORITY                                              NTStatus      = 0xC0000076\n\tSTATUS_INVALID_ACL                                                        NTStatus      = 0xC0000077\n\tSTATUS_INVALID_SID                                                        NTStatus      = 0xC0000078\n\tSTATUS_INVALID_SECURITY_DESCR                                             NTStatus      = 0xC0000079\n\tSTATUS_PROCEDURE_NOT_FOUND                                                NTStatus      = 0xC000007A\n\tSTATUS_INVALID_IMAGE_FORMAT                                               NTStatus      = 0xC000007B\n\tSTATUS_NO_TOKEN                                                           NTStatus      = 0xC000007C\n\tSTATUS_BAD_INHERITANCE_ACL                                                NTStatus      = 0xC000007D\n\tSTATUS_RANGE_NOT_LOCKED                                                   NTStatus      = 0xC000007E\n\tSTATUS_DISK_FULL                                                          NTStatus      = 0xC000007F\n\tSTATUS_SERVER_DISABLED                                                    NTStatus      = 0xC0000080\n\tSTATUS_SERVER_NOT_DISABLED                                                NTStatus      = 0xC0000081\n\tSTATUS_TOO_MANY_GUIDS_REQUESTED                                           NTStatus      = 0xC0000082\n\tSTATUS_GUIDS_EXHAUSTED                                                    NTStatus      = 0xC0000083\n\tSTATUS_INVALID_ID_AUTHORITY                                               NTStatus      = 0xC0000084\n\tSTATUS_AGENTS_EXHAUSTED                                                   NTStatus      = 0xC0000085\n\tSTATUS_INVALID_VOLUME_LABEL                                               NTStatus      = 0xC0000086\n\tSTATUS_SECTION_NOT_EXTENDED                                               NTStatus      = 0xC0000087\n\tSTATUS_NOT_MAPPED_DATA                                                    NTStatus      = 0xC0000088\n\tSTATUS_RESOURCE_DATA_NOT_FOUND                                            NTStatus      = 0xC0000089\n\tSTATUS_RESOURCE_TYPE_NOT_FOUND                                            NTStatus      = 0xC000008A\n\tSTATUS_RESOURCE_NAME_NOT_FOUND                                            NTStatus      = 0xC000008B\n\tSTATUS_ARRAY_BOUNDS_EXCEEDED                                              NTStatus      = 0xC000008C\n\tSTATUS_FLOAT_DENORMAL_OPERAND                                             NTStatus      = 0xC000008D\n\tSTATUS_FLOAT_DIVIDE_BY_ZERO                                               NTStatus      = 0xC000008E\n\tSTATUS_FLOAT_INEXACT_RESULT                                               NTStatus      = 0xC000008F\n\tSTATUS_FLOAT_INVALID_OPERATION                                            NTStatus      = 0xC0000090\n\tSTATUS_FLOAT_OVERFLOW                                                     NTStatus      = 0xC0000091\n\tSTATUS_FLOAT_STACK_CHECK                                                  NTStatus      = 0xC0000092\n\tSTATUS_FLOAT_UNDERFLOW                                                    NTStatus      = 0xC0000093\n\tSTATUS_INTEGER_DIVIDE_BY_ZERO                                             NTStatus      = 0xC0000094\n\tSTATUS_INTEGER_OVERFLOW                                                   NTStatus      = 0xC0000095\n\tSTATUS_PRIVILEGED_INSTRUCTION                                             NTStatus      = 0xC0000096\n\tSTATUS_TOO_MANY_PAGING_FILES                                              NTStatus      = 0xC0000097\n\tSTATUS_FILE_INVALID                                                       NTStatus      = 0xC0000098\n\tSTATUS_ALLOTTED_SPACE_EXCEEDED                                            NTStatus      = 0xC0000099\n\tSTATUS_INSUFFICIENT_RESOURCES                                             NTStatus      = 0xC000009A\n\tSTATUS_DFS_EXIT_PATH_FOUND                                                NTStatus      = 0xC000009B\n\tSTATUS_DEVICE_DATA_ERROR                                                  NTStatus      = 0xC000009C\n\tSTATUS_DEVICE_NOT_CONNECTED                                               NTStatus      = 0xC000009D\n\tSTATUS_DEVICE_POWER_FAILURE                                               NTStatus      = 0xC000009E\n\tSTATUS_FREE_VM_NOT_AT_BASE                                                NTStatus      = 0xC000009F\n\tSTATUS_MEMORY_NOT_ALLOCATED                                               NTStatus      = 0xC00000A0\n\tSTATUS_WORKING_SET_QUOTA                                                  NTStatus      = 0xC00000A1\n\tSTATUS_MEDIA_WRITE_PROTECTED                                              NTStatus      = 0xC00000A2\n\tSTATUS_DEVICE_NOT_READY                                                   NTStatus      = 0xC00000A3\n\tSTATUS_INVALID_GROUP_ATTRIBUTES                                           NTStatus      = 0xC00000A4\n\tSTATUS_BAD_IMPERSONATION_LEVEL                                            NTStatus      = 0xC00000A5\n\tSTATUS_CANT_OPEN_ANONYMOUS                                                NTStatus      = 0xC00000A6\n\tSTATUS_BAD_VALIDATION_CLASS                                               NTStatus      = 0xC00000A7\n\tSTATUS_BAD_TOKEN_TYPE                                                     NTStatus      = 0xC00000A8\n\tSTATUS_BAD_MASTER_BOOT_RECORD                                             NTStatus      = 0xC00000A9\n\tSTATUS_INSTRUCTION_MISALIGNMENT                                           NTStatus      = 0xC00000AA\n\tSTATUS_INSTANCE_NOT_AVAILABLE                                             NTStatus      = 0xC00000AB\n\tSTATUS_PIPE_NOT_AVAILABLE                                                 NTStatus      = 0xC00000AC\n\tSTATUS_INVALID_PIPE_STATE                                                 NTStatus      = 0xC00000AD\n\tSTATUS_PIPE_BUSY                                                          NTStatus      = 0xC00000AE\n\tSTATUS_ILLEGAL_FUNCTION                                                   NTStatus      = 0xC00000AF\n\tSTATUS_PIPE_DISCONNECTED                                                  NTStatus      = 0xC00000B0\n\tSTATUS_PIPE_CLOSING                                                       NTStatus      = 0xC00000B1\n\tSTATUS_PIPE_CONNECTED                                                     NTStatus      = 0xC00000B2\n\tSTATUS_PIPE_LISTENING                                                     NTStatus      = 0xC00000B3\n\tSTATUS_INVALID_READ_MODE                                                  NTStatus      = 0xC00000B4\n\tSTATUS_IO_TIMEOUT                                                         NTStatus      = 0xC00000B5\n\tSTATUS_FILE_FORCED_CLOSED                                                 NTStatus      = 0xC00000B6\n\tSTATUS_PROFILING_NOT_STARTED                                              NTStatus      = 0xC00000B7\n\tSTATUS_PROFILING_NOT_STOPPED                                              NTStatus      = 0xC00000B8\n\tSTATUS_COULD_NOT_INTERPRET                                                NTStatus      = 0xC00000B9\n\tSTATUS_FILE_IS_A_DIRECTORY                                                NTStatus      = 0xC00000BA\n\tSTATUS_NOT_SUPPORTED                                                      NTStatus      = 0xC00000BB\n\tSTATUS_REMOTE_NOT_LISTENING                                               NTStatus      = 0xC00000BC\n\tSTATUS_DUPLICATE_NAME                                                     NTStatus      = 0xC00000BD\n\tSTATUS_BAD_NETWORK_PATH                                                   NTStatus      = 0xC00000BE\n\tSTATUS_NETWORK_BUSY                                                       NTStatus      = 0xC00000BF\n\tSTATUS_DEVICE_DOES_NOT_EXIST                                              NTStatus      = 0xC00000C0\n\tSTATUS_TOO_MANY_COMMANDS                                                  NTStatus      = 0xC00000C1\n\tSTATUS_ADAPTER_HARDWARE_ERROR                                             NTStatus      = 0xC00000C2\n\tSTATUS_INVALID_NETWORK_RESPONSE                                           NTStatus      = 0xC00000C3\n\tSTATUS_UNEXPECTED_NETWORK_ERROR                                           NTStatus      = 0xC00000C4\n\tSTATUS_BAD_REMOTE_ADAPTER                                                 NTStatus      = 0xC00000C5\n\tSTATUS_PRINT_QUEUE_FULL                                                   NTStatus      = 0xC00000C6\n\tSTATUS_NO_SPOOL_SPACE                                                     NTStatus      = 0xC00000C7\n\tSTATUS_PRINT_CANCELLED                                                    NTStatus      = 0xC00000C8\n\tSTATUS_NETWORK_NAME_DELETED                                               NTStatus      = 0xC00000C9\n\tSTATUS_NETWORK_ACCESS_DENIED                                              NTStatus      = 0xC00000CA\n\tSTATUS_BAD_DEVICE_TYPE                                                    NTStatus      = 0xC00000CB\n\tSTATUS_BAD_NETWORK_NAME                                                   NTStatus      = 0xC00000CC\n\tSTATUS_TOO_MANY_NAMES                                                     NTStatus      = 0xC00000CD\n\tSTATUS_TOO_MANY_SESSIONS                                                  NTStatus      = 0xC00000CE\n\tSTATUS_SHARING_PAUSED                                                     NTStatus      = 0xC00000CF\n\tSTATUS_REQUEST_NOT_ACCEPTED                                               NTStatus      = 0xC00000D0\n\tSTATUS_REDIRECTOR_PAUSED                                                  NTStatus      = 0xC00000D1\n\tSTATUS_NET_WRITE_FAULT                                                    NTStatus      = 0xC00000D2\n\tSTATUS_PROFILING_AT_LIMIT                                                 NTStatus      = 0xC00000D3\n\tSTATUS_NOT_SAME_DEVICE                                                    NTStatus      = 0xC00000D4\n\tSTATUS_FILE_RENAMED                                                       NTStatus      = 0xC00000D5\n\tSTATUS_VIRTUAL_CIRCUIT_CLOSED                                             NTStatus      = 0xC00000D6\n\tSTATUS_NO_SECURITY_ON_OBJECT                                              NTStatus      = 0xC00000D7\n\tSTATUS_CANT_WAIT                                                          NTStatus      = 0xC00000D8\n\tSTATUS_PIPE_EMPTY                                                         NTStatus      = 0xC00000D9\n\tSTATUS_CANT_ACCESS_DOMAIN_INFO                                            NTStatus      = 0xC00000DA\n\tSTATUS_CANT_TERMINATE_SELF                                                NTStatus      = 0xC00000DB\n\tSTATUS_INVALID_SERVER_STATE                                               NTStatus      = 0xC00000DC\n\tSTATUS_INVALID_DOMAIN_STATE                                               NTStatus      = 0xC00000DD\n\tSTATUS_INVALID_DOMAIN_ROLE                                                NTStatus      = 0xC00000DE\n\tSTATUS_NO_SUCH_DOMAIN                                                     NTStatus      = 0xC00000DF\n\tSTATUS_DOMAIN_EXISTS                                                      NTStatus      = 0xC00000E0\n\tSTATUS_DOMAIN_LIMIT_EXCEEDED                                              NTStatus      = 0xC00000E1\n\tSTATUS_OPLOCK_NOT_GRANTED                                                 NTStatus      = 0xC00000E2\n\tSTATUS_INVALID_OPLOCK_PROTOCOL                                            NTStatus      = 0xC00000E3\n\tSTATUS_INTERNAL_DB_CORRUPTION                                             NTStatus      = 0xC00000E4\n\tSTATUS_INTERNAL_ERROR                                                     NTStatus      = 0xC00000E5\n\tSTATUS_GENERIC_NOT_MAPPED                                                 NTStatus      = 0xC00000E6\n\tSTATUS_BAD_DESCRIPTOR_FORMAT                                              NTStatus      = 0xC00000E7\n\tSTATUS_INVALID_USER_BUFFER                                                NTStatus      = 0xC00000E8\n\tSTATUS_UNEXPECTED_IO_ERROR                                                NTStatus      = 0xC00000E9\n\tSTATUS_UNEXPECTED_MM_CREATE_ERR                                           NTStatus      = 0xC00000EA\n\tSTATUS_UNEXPECTED_MM_MAP_ERROR                                            NTStatus      = 0xC00000EB\n\tSTATUS_UNEXPECTED_MM_EXTEND_ERR                                           NTStatus      = 0xC00000EC\n\tSTATUS_NOT_LOGON_PROCESS                                                  NTStatus      = 0xC00000ED\n\tSTATUS_LOGON_SESSION_EXISTS                                               NTStatus      = 0xC00000EE\n\tSTATUS_INVALID_PARAMETER_1                                                NTStatus      = 0xC00000EF\n\tSTATUS_INVALID_PARAMETER_2                                                NTStatus      = 0xC00000F0\n\tSTATUS_INVALID_PARAMETER_3                                                NTStatus      = 0xC00000F1\n\tSTATUS_INVALID_PARAMETER_4                                                NTStatus      = 0xC00000F2\n\tSTATUS_INVALID_PARAMETER_5                                                NTStatus      = 0xC00000F3\n\tSTATUS_INVALID_PARAMETER_6                                                NTStatus      = 0xC00000F4\n\tSTATUS_INVALID_PARAMETER_7                                                NTStatus      = 0xC00000F5\n\tSTATUS_INVALID_PARAMETER_8                                                NTStatus      = 0xC00000F6\n\tSTATUS_INVALID_PARAMETER_9                                                NTStatus      = 0xC00000F7\n\tSTATUS_INVALID_PARAMETER_10                                               NTStatus      = 0xC00000F8\n\tSTATUS_INVALID_PARAMETER_11                                               NTStatus      = 0xC00000F9\n\tSTATUS_INVALID_PARAMETER_12                                               NTStatus      = 0xC00000FA\n\tSTATUS_REDIRECTOR_NOT_STARTED                                             NTStatus      = 0xC00000FB\n\tSTATUS_REDIRECTOR_STARTED                                                 NTStatus      = 0xC00000FC\n\tSTATUS_STACK_OVERFLOW                                                     NTStatus      = 0xC00000FD\n\tSTATUS_NO_SUCH_PACKAGE                                                    NTStatus      = 0xC00000FE\n\tSTATUS_BAD_FUNCTION_TABLE                                                 NTStatus      = 0xC00000FF\n\tSTATUS_VARIABLE_NOT_FOUND                                                 NTStatus      = 0xC0000100\n\tSTATUS_DIRECTORY_NOT_EMPTY                                                NTStatus      = 0xC0000101\n\tSTATUS_FILE_CORRUPT_ERROR                                                 NTStatus      = 0xC0000102\n\tSTATUS_NOT_A_DIRECTORY                                                    NTStatus      = 0xC0000103\n\tSTATUS_BAD_LOGON_SESSION_STATE                                            NTStatus      = 0xC0000104\n\tSTATUS_LOGON_SESSION_COLLISION                                            NTStatus      = 0xC0000105\n\tSTATUS_NAME_TOO_LONG                                                      NTStatus      = 0xC0000106\n\tSTATUS_FILES_OPEN                                                         NTStatus      = 0xC0000107\n\tSTATUS_CONNECTION_IN_USE                                                  NTStatus      = 0xC0000108\n\tSTATUS_MESSAGE_NOT_FOUND                                                  NTStatus      = 0xC0000109\n\tSTATUS_PROCESS_IS_TERMINATING                                             NTStatus      = 0xC000010A\n\tSTATUS_INVALID_LOGON_TYPE                                                 NTStatus      = 0xC000010B\n\tSTATUS_NO_GUID_TRANSLATION                                                NTStatus      = 0xC000010C\n\tSTATUS_CANNOT_IMPERSONATE                                                 NTStatus      = 0xC000010D\n\tSTATUS_IMAGE_ALREADY_LOADED                                               NTStatus      = 0xC000010E\n\tSTATUS_ABIOS_NOT_PRESENT                                                  NTStatus      = 0xC000010F\n\tSTATUS_ABIOS_LID_NOT_EXIST                                                NTStatus      = 0xC0000110\n\tSTATUS_ABIOS_LID_ALREADY_OWNED                                            NTStatus      = 0xC0000111\n\tSTATUS_ABIOS_NOT_LID_OWNER                                                NTStatus      = 0xC0000112\n\tSTATUS_ABIOS_INVALID_COMMAND                                              NTStatus      = 0xC0000113\n\tSTATUS_ABIOS_INVALID_LID                                                  NTStatus      = 0xC0000114\n\tSTATUS_ABIOS_SELECTOR_NOT_AVAILABLE                                       NTStatus      = 0xC0000115\n\tSTATUS_ABIOS_INVALID_SELECTOR                                             NTStatus      = 0xC0000116\n\tSTATUS_NO_LDT                                                             NTStatus      = 0xC0000117\n\tSTATUS_INVALID_LDT_SIZE                                                   NTStatus      = 0xC0000118\n\tSTATUS_INVALID_LDT_OFFSET                                                 NTStatus      = 0xC0000119\n\tSTATUS_INVALID_LDT_DESCRIPTOR                                             NTStatus      = 0xC000011A\n\tSTATUS_INVALID_IMAGE_NE_FORMAT                                            NTStatus      = 0xC000011B\n\tSTATUS_RXACT_INVALID_STATE                                                NTStatus      = 0xC000011C\n\tSTATUS_RXACT_COMMIT_FAILURE                                               NTStatus      = 0xC000011D\n\tSTATUS_MAPPED_FILE_SIZE_ZERO                                              NTStatus      = 0xC000011E\n\tSTATUS_TOO_MANY_OPENED_FILES                                              NTStatus      = 0xC000011F\n\tSTATUS_CANCELLED                                                          NTStatus      = 0xC0000120\n\tSTATUS_CANNOT_DELETE                                                      NTStatus      = 0xC0000121\n\tSTATUS_INVALID_COMPUTER_NAME                                              NTStatus      = 0xC0000122\n\tSTATUS_FILE_DELETED                                                       NTStatus      = 0xC0000123\n\tSTATUS_SPECIAL_ACCOUNT                                                    NTStatus      = 0xC0000124\n\tSTATUS_SPECIAL_GROUP                                                      NTStatus      = 0xC0000125\n\tSTATUS_SPECIAL_USER                                                       NTStatus      = 0xC0000126\n\tSTATUS_MEMBERS_PRIMARY_GROUP                                              NTStatus      = 0xC0000127\n\tSTATUS_FILE_CLOSED                                                        NTStatus      = 0xC0000128\n\tSTATUS_TOO_MANY_THREADS                                                   NTStatus      = 0xC0000129\n\tSTATUS_THREAD_NOT_IN_PROCESS                                              NTStatus      = 0xC000012A\n\tSTATUS_TOKEN_ALREADY_IN_USE                                               NTStatus      = 0xC000012B\n\tSTATUS_PAGEFILE_QUOTA_EXCEEDED                                            NTStatus      = 0xC000012C\n\tSTATUS_COMMITMENT_LIMIT                                                   NTStatus      = 0xC000012D\n\tSTATUS_INVALID_IMAGE_LE_FORMAT                                            NTStatus      = 0xC000012E\n\tSTATUS_INVALID_IMAGE_NOT_MZ                                               NTStatus      = 0xC000012F\n\tSTATUS_INVALID_IMAGE_PROTECT                                              NTStatus      = 0xC0000130\n\tSTATUS_INVALID_IMAGE_WIN_16                                               NTStatus      = 0xC0000131\n\tSTATUS_LOGON_SERVER_CONFLICT                                              NTStatus      = 0xC0000132\n\tSTATUS_TIME_DIFFERENCE_AT_DC                                              NTStatus      = 0xC0000133\n\tSTATUS_SYNCHRONIZATION_REQUIRED                                           NTStatus      = 0xC0000134\n\tSTATUS_DLL_NOT_FOUND                                                      NTStatus      = 0xC0000135\n\tSTATUS_OPEN_FAILED                                                        NTStatus      = 0xC0000136\n\tSTATUS_IO_PRIVILEGE_FAILED                                                NTStatus      = 0xC0000137\n\tSTATUS_ORDINAL_NOT_FOUND                                                  NTStatus      = 0xC0000138\n\tSTATUS_ENTRYPOINT_NOT_FOUND                                               NTStatus      = 0xC0000139\n\tSTATUS_CONTROL_C_EXIT                                                     NTStatus      = 0xC000013A\n\tSTATUS_LOCAL_DISCONNECT                                                   NTStatus      = 0xC000013B\n\tSTATUS_REMOTE_DISCONNECT                                                  NTStatus      = 0xC000013C\n\tSTATUS_REMOTE_RESOURCES                                                   NTStatus      = 0xC000013D\n\tSTATUS_LINK_FAILED                                                        NTStatus      = 0xC000013E\n\tSTATUS_LINK_TIMEOUT                                                       NTStatus      = 0xC000013F\n\tSTATUS_INVALID_CONNECTION                                                 NTStatus      = 0xC0000140\n\tSTATUS_INVALID_ADDRESS                                                    NTStatus      = 0xC0000141\n\tSTATUS_DLL_INIT_FAILED                                                    NTStatus      = 0xC0000142\n\tSTATUS_MISSING_SYSTEMFILE                                                 NTStatus      = 0xC0000143\n\tSTATUS_UNHANDLED_EXCEPTION                                                NTStatus      = 0xC0000144\n\tSTATUS_APP_INIT_FAILURE                                                   NTStatus      = 0xC0000145\n\tSTATUS_PAGEFILE_CREATE_FAILED                                             NTStatus      = 0xC0000146\n\tSTATUS_NO_PAGEFILE                                                        NTStatus      = 0xC0000147\n\tSTATUS_INVALID_LEVEL                                                      NTStatus      = 0xC0000148\n\tSTATUS_WRONG_PASSWORD_CORE                                                NTStatus      = 0xC0000149\n\tSTATUS_ILLEGAL_FLOAT_CONTEXT                                              NTStatus      = 0xC000014A\n\tSTATUS_PIPE_BROKEN                                                        NTStatus      = 0xC000014B\n\tSTATUS_REGISTRY_CORRUPT                                                   NTStatus      = 0xC000014C\n\tSTATUS_REGISTRY_IO_FAILED                                                 NTStatus      = 0xC000014D\n\tSTATUS_NO_EVENT_PAIR                                                      NTStatus      = 0xC000014E\n\tSTATUS_UNRECOGNIZED_VOLUME                                                NTStatus      = 0xC000014F\n\tSTATUS_SERIAL_NO_DEVICE_INITED                                            NTStatus      = 0xC0000150\n\tSTATUS_NO_SUCH_ALIAS                                                      NTStatus      = 0xC0000151\n\tSTATUS_MEMBER_NOT_IN_ALIAS                                                NTStatus      = 0xC0000152\n\tSTATUS_MEMBER_IN_ALIAS                                                    NTStatus      = 0xC0000153\n\tSTATUS_ALIAS_EXISTS                                                       NTStatus      = 0xC0000154\n\tSTATUS_LOGON_NOT_GRANTED                                                  NTStatus      = 0xC0000155\n\tSTATUS_TOO_MANY_SECRETS                                                   NTStatus      = 0xC0000156\n\tSTATUS_SECRET_TOO_LONG                                                    NTStatus      = 0xC0000157\n\tSTATUS_INTERNAL_DB_ERROR                                                  NTStatus      = 0xC0000158\n\tSTATUS_FULLSCREEN_MODE                                                    NTStatus      = 0xC0000159\n\tSTATUS_TOO_MANY_CONTEXT_IDS                                               NTStatus      = 0xC000015A\n\tSTATUS_LOGON_TYPE_NOT_GRANTED                                             NTStatus      = 0xC000015B\n\tSTATUS_NOT_REGISTRY_FILE                                                  NTStatus      = 0xC000015C\n\tSTATUS_NT_CROSS_ENCRYPTION_REQUIRED                                       NTStatus      = 0xC000015D\n\tSTATUS_DOMAIN_CTRLR_CONFIG_ERROR                                          NTStatus      = 0xC000015E\n\tSTATUS_FT_MISSING_MEMBER                                                  NTStatus      = 0xC000015F\n\tSTATUS_ILL_FORMED_SERVICE_ENTRY                                           NTStatus      = 0xC0000160\n\tSTATUS_ILLEGAL_CHARACTER                                                  NTStatus      = 0xC0000161\n\tSTATUS_UNMAPPABLE_CHARACTER                                               NTStatus      = 0xC0000162\n\tSTATUS_UNDEFINED_CHARACTER                                                NTStatus      = 0xC0000163\n\tSTATUS_FLOPPY_VOLUME                                                      NTStatus      = 0xC0000164\n\tSTATUS_FLOPPY_ID_MARK_NOT_FOUND                                           NTStatus      = 0xC0000165\n\tSTATUS_FLOPPY_WRONG_CYLINDER                                              NTStatus      = 0xC0000166\n\tSTATUS_FLOPPY_UNKNOWN_ERROR                                               NTStatus      = 0xC0000167\n\tSTATUS_FLOPPY_BAD_REGISTERS                                               NTStatus      = 0xC0000168\n\tSTATUS_DISK_RECALIBRATE_FAILED                                            NTStatus      = 0xC0000169\n\tSTATUS_DISK_OPERATION_FAILED                                              NTStatus      = 0xC000016A\n\tSTATUS_DISK_RESET_FAILED                                                  NTStatus      = 0xC000016B\n\tSTATUS_SHARED_IRQ_BUSY                                                    NTStatus      = 0xC000016C\n\tSTATUS_FT_ORPHANING                                                       NTStatus      = 0xC000016D\n\tSTATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT                                   NTStatus      = 0xC000016E\n\tSTATUS_PARTITION_FAILURE                                                  NTStatus      = 0xC0000172\n\tSTATUS_INVALID_BLOCK_LENGTH                                               NTStatus      = 0xC0000173\n\tSTATUS_DEVICE_NOT_PARTITIONED                                             NTStatus      = 0xC0000174\n\tSTATUS_UNABLE_TO_LOCK_MEDIA                                               NTStatus      = 0xC0000175\n\tSTATUS_UNABLE_TO_UNLOAD_MEDIA                                             NTStatus      = 0xC0000176\n\tSTATUS_EOM_OVERFLOW                                                       NTStatus      = 0xC0000177\n\tSTATUS_NO_MEDIA                                                           NTStatus      = 0xC0000178\n\tSTATUS_NO_SUCH_MEMBER                                                     NTStatus      = 0xC000017A\n\tSTATUS_INVALID_MEMBER                                                     NTStatus      = 0xC000017B\n\tSTATUS_KEY_DELETED                                                        NTStatus      = 0xC000017C\n\tSTATUS_NO_LOG_SPACE                                                       NTStatus      = 0xC000017D\n\tSTATUS_TOO_MANY_SIDS                                                      NTStatus      = 0xC000017E\n\tSTATUS_LM_CROSS_ENCRYPTION_REQUIRED                                       NTStatus      = 0xC000017F\n\tSTATUS_KEY_HAS_CHILDREN                                                   NTStatus      = 0xC0000180\n\tSTATUS_CHILD_MUST_BE_VOLATILE                                             NTStatus      = 0xC0000181\n\tSTATUS_DEVICE_CONFIGURATION_ERROR                                         NTStatus      = 0xC0000182\n\tSTATUS_DRIVER_INTERNAL_ERROR                                              NTStatus      = 0xC0000183\n\tSTATUS_INVALID_DEVICE_STATE                                               NTStatus      = 0xC0000184\n\tSTATUS_IO_DEVICE_ERROR                                                    NTStatus      = 0xC0000185\n\tSTATUS_DEVICE_PROTOCOL_ERROR                                              NTStatus      = 0xC0000186\n\tSTATUS_BACKUP_CONTROLLER                                                  NTStatus      = 0xC0000187\n\tSTATUS_LOG_FILE_FULL                                                      NTStatus      = 0xC0000188\n\tSTATUS_TOO_LATE                                                           NTStatus      = 0xC0000189\n\tSTATUS_NO_TRUST_LSA_SECRET                                                NTStatus      = 0xC000018A\n\tSTATUS_NO_TRUST_SAM_ACCOUNT                                               NTStatus      = 0xC000018B\n\tSTATUS_TRUSTED_DOMAIN_FAILURE                                             NTStatus      = 0xC000018C\n\tSTATUS_TRUSTED_RELATIONSHIP_FAILURE                                       NTStatus      = 0xC000018D\n\tSTATUS_EVENTLOG_FILE_CORRUPT                                              NTStatus      = 0xC000018E\n\tSTATUS_EVENTLOG_CANT_START                                                NTStatus      = 0xC000018F\n\tSTATUS_TRUST_FAILURE                                                      NTStatus      = 0xC0000190\n\tSTATUS_MUTANT_LIMIT_EXCEEDED                                              NTStatus      = 0xC0000191\n\tSTATUS_NETLOGON_NOT_STARTED                                               NTStatus      = 0xC0000192\n\tSTATUS_ACCOUNT_EXPIRED                                                    NTStatus      = 0xC0000193\n\tSTATUS_POSSIBLE_DEADLOCK                                                  NTStatus      = 0xC0000194\n\tSTATUS_NETWORK_CREDENTIAL_CONFLICT                                        NTStatus      = 0xC0000195\n\tSTATUS_REMOTE_SESSION_LIMIT                                               NTStatus      = 0xC0000196\n\tSTATUS_EVENTLOG_FILE_CHANGED                                              NTStatus      = 0xC0000197\n\tSTATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT                                  NTStatus      = 0xC0000198\n\tSTATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT                                  NTStatus      = 0xC0000199\n\tSTATUS_NOLOGON_SERVER_TRUST_ACCOUNT                                       NTStatus      = 0xC000019A\n\tSTATUS_DOMAIN_TRUST_INCONSISTENT                                          NTStatus      = 0xC000019B\n\tSTATUS_FS_DRIVER_REQUIRED                                                 NTStatus      = 0xC000019C\n\tSTATUS_IMAGE_ALREADY_LOADED_AS_DLL                                        NTStatus      = 0xC000019D\n\tSTATUS_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING               NTStatus      = 0xC000019E\n\tSTATUS_SHORT_NAMES_NOT_ENABLED_ON_VOLUME                                  NTStatus      = 0xC000019F\n\tSTATUS_SECURITY_STREAM_IS_INCONSISTENT                                    NTStatus      = 0xC00001A0\n\tSTATUS_INVALID_LOCK_RANGE                                                 NTStatus      = 0xC00001A1\n\tSTATUS_INVALID_ACE_CONDITION                                              NTStatus      = 0xC00001A2\n\tSTATUS_IMAGE_SUBSYSTEM_NOT_PRESENT                                        NTStatus      = 0xC00001A3\n\tSTATUS_NOTIFICATION_GUID_ALREADY_DEFINED                                  NTStatus      = 0xC00001A4\n\tSTATUS_INVALID_EXCEPTION_HANDLER                                          NTStatus      = 0xC00001A5\n\tSTATUS_DUPLICATE_PRIVILEGES                                               NTStatus      = 0xC00001A6\n\tSTATUS_NOT_ALLOWED_ON_SYSTEM_FILE                                         NTStatus      = 0xC00001A7\n\tSTATUS_REPAIR_NEEDED                                                      NTStatus      = 0xC00001A8\n\tSTATUS_QUOTA_NOT_ENABLED                                                  NTStatus      = 0xC00001A9\n\tSTATUS_NO_APPLICATION_PACKAGE                                             NTStatus      = 0xC00001AA\n\tSTATUS_FILE_METADATA_OPTIMIZATION_IN_PROGRESS                             NTStatus      = 0xC00001AB\n\tSTATUS_NOT_SAME_OBJECT                                                    NTStatus      = 0xC00001AC\n\tSTATUS_FATAL_MEMORY_EXHAUSTION                                            NTStatus      = 0xC00001AD\n\tSTATUS_ERROR_PROCESS_NOT_IN_JOB                                           NTStatus      = 0xC00001AE\n\tSTATUS_CPU_SET_INVALID                                                    NTStatus      = 0xC00001AF\n\tSTATUS_IO_DEVICE_INVALID_DATA                                             NTStatus      = 0xC00001B0\n\tSTATUS_IO_UNALIGNED_WRITE                                                 NTStatus      = 0xC00001B1\n\tSTATUS_NETWORK_OPEN_RESTRICTION                                           NTStatus      = 0xC0000201\n\tSTATUS_NO_USER_SESSION_KEY                                                NTStatus      = 0xC0000202\n\tSTATUS_USER_SESSION_DELETED                                               NTStatus      = 0xC0000203\n\tSTATUS_RESOURCE_LANG_NOT_FOUND                                            NTStatus      = 0xC0000204\n\tSTATUS_INSUFF_SERVER_RESOURCES                                            NTStatus      = 0xC0000205\n\tSTATUS_INVALID_BUFFER_SIZE                                                NTStatus      = 0xC0000206\n\tSTATUS_INVALID_ADDRESS_COMPONENT                                          NTStatus      = 0xC0000207\n\tSTATUS_INVALID_ADDRESS_WILDCARD                                           NTStatus      = 0xC0000208\n\tSTATUS_TOO_MANY_ADDRESSES                                                 NTStatus      = 0xC0000209\n\tSTATUS_ADDRESS_ALREADY_EXISTS                                             NTStatus      = 0xC000020A\n\tSTATUS_ADDRESS_CLOSED                                                     NTStatus      = 0xC000020B\n\tSTATUS_CONNECTION_DISCONNECTED                                            NTStatus      = 0xC000020C\n\tSTATUS_CONNECTION_RESET                                                   NTStatus      = 0xC000020D\n\tSTATUS_TOO_MANY_NODES                                                     NTStatus      = 0xC000020E\n\tSTATUS_TRANSACTION_ABORTED                                                NTStatus      = 0xC000020F\n\tSTATUS_TRANSACTION_TIMED_OUT                                              NTStatus      = 0xC0000210\n\tSTATUS_TRANSACTION_NO_RELEASE                                             NTStatus      = 0xC0000211\n\tSTATUS_TRANSACTION_NO_MATCH                                               NTStatus      = 0xC0000212\n\tSTATUS_TRANSACTION_RESPONDED                                              NTStatus      = 0xC0000213\n\tSTATUS_TRANSACTION_INVALID_ID                                             NTStatus      = 0xC0000214\n\tSTATUS_TRANSACTION_INVALID_TYPE                                           NTStatus      = 0xC0000215\n\tSTATUS_NOT_SERVER_SESSION                                                 NTStatus      = 0xC0000216\n\tSTATUS_NOT_CLIENT_SESSION                                                 NTStatus      = 0xC0000217\n\tSTATUS_CANNOT_LOAD_REGISTRY_FILE                                          NTStatus      = 0xC0000218\n\tSTATUS_DEBUG_ATTACH_FAILED                                                NTStatus      = 0xC0000219\n\tSTATUS_SYSTEM_PROCESS_TERMINATED                                          NTStatus      = 0xC000021A\n\tSTATUS_DATA_NOT_ACCEPTED                                                  NTStatus      = 0xC000021B\n\tSTATUS_NO_BROWSER_SERVERS_FOUND                                           NTStatus      = 0xC000021C\n\tSTATUS_VDM_HARD_ERROR                                                     NTStatus      = 0xC000021D\n\tSTATUS_DRIVER_CANCEL_TIMEOUT                                              NTStatus      = 0xC000021E\n\tSTATUS_REPLY_MESSAGE_MISMATCH                                             NTStatus      = 0xC000021F\n\tSTATUS_MAPPED_ALIGNMENT                                                   NTStatus      = 0xC0000220\n\tSTATUS_IMAGE_CHECKSUM_MISMATCH                                            NTStatus      = 0xC0000221\n\tSTATUS_LOST_WRITEBEHIND_DATA                                              NTStatus      = 0xC0000222\n\tSTATUS_CLIENT_SERVER_PARAMETERS_INVALID                                   NTStatus      = 0xC0000223\n\tSTATUS_PASSWORD_MUST_CHANGE                                               NTStatus      = 0xC0000224\n\tSTATUS_NOT_FOUND                                                          NTStatus      = 0xC0000225\n\tSTATUS_NOT_TINY_STREAM                                                    NTStatus      = 0xC0000226\n\tSTATUS_RECOVERY_FAILURE                                                   NTStatus      = 0xC0000227\n\tSTATUS_STACK_OVERFLOW_READ                                                NTStatus      = 0xC0000228\n\tSTATUS_FAIL_CHECK                                                         NTStatus      = 0xC0000229\n\tSTATUS_DUPLICATE_OBJECTID                                                 NTStatus      = 0xC000022A\n\tSTATUS_OBJECTID_EXISTS                                                    NTStatus      = 0xC000022B\n\tSTATUS_CONVERT_TO_LARGE                                                   NTStatus      = 0xC000022C\n\tSTATUS_RETRY                                                              NTStatus      = 0xC000022D\n\tSTATUS_FOUND_OUT_OF_SCOPE                                                 NTStatus      = 0xC000022E\n\tSTATUS_ALLOCATE_BUCKET                                                    NTStatus      = 0xC000022F\n\tSTATUS_PROPSET_NOT_FOUND                                                  NTStatus      = 0xC0000230\n\tSTATUS_MARSHALL_OVERFLOW                                                  NTStatus      = 0xC0000231\n\tSTATUS_INVALID_VARIANT                                                    NTStatus      = 0xC0000232\n\tSTATUS_DOMAIN_CONTROLLER_NOT_FOUND                                        NTStatus      = 0xC0000233\n\tSTATUS_ACCOUNT_LOCKED_OUT                                                 NTStatus      = 0xC0000234\n\tSTATUS_HANDLE_NOT_CLOSABLE                                                NTStatus      = 0xC0000235\n\tSTATUS_CONNECTION_REFUSED                                                 NTStatus      = 0xC0000236\n\tSTATUS_GRACEFUL_DISCONNECT                                                NTStatus      = 0xC0000237\n\tSTATUS_ADDRESS_ALREADY_ASSOCIATED                                         NTStatus      = 0xC0000238\n\tSTATUS_ADDRESS_NOT_ASSOCIATED                                             NTStatus      = 0xC0000239\n\tSTATUS_CONNECTION_INVALID                                                 NTStatus      = 0xC000023A\n\tSTATUS_CONNECTION_ACTIVE                                                  NTStatus      = 0xC000023B\n\tSTATUS_NETWORK_UNREACHABLE                                                NTStatus      = 0xC000023C\n\tSTATUS_HOST_UNREACHABLE                                                   NTStatus      = 0xC000023D\n\tSTATUS_PROTOCOL_UNREACHABLE                                               NTStatus      = 0xC000023E\n\tSTATUS_PORT_UNREACHABLE                                                   NTStatus      = 0xC000023F\n\tSTATUS_REQUEST_ABORTED                                                    NTStatus      = 0xC0000240\n\tSTATUS_CONNECTION_ABORTED                                                 NTStatus      = 0xC0000241\n\tSTATUS_BAD_COMPRESSION_BUFFER                                             NTStatus      = 0xC0000242\n\tSTATUS_USER_MAPPED_FILE                                                   NTStatus      = 0xC0000243\n\tSTATUS_AUDIT_FAILED                                                       NTStatus      = 0xC0000244\n\tSTATUS_TIMER_RESOLUTION_NOT_SET                                           NTStatus      = 0xC0000245\n\tSTATUS_CONNECTION_COUNT_LIMIT                                             NTStatus      = 0xC0000246\n\tSTATUS_LOGIN_TIME_RESTRICTION                                             NTStatus      = 0xC0000247\n\tSTATUS_LOGIN_WKSTA_RESTRICTION                                            NTStatus      = 0xC0000248\n\tSTATUS_IMAGE_MP_UP_MISMATCH                                               NTStatus      = 0xC0000249\n\tSTATUS_INSUFFICIENT_LOGON_INFO                                            NTStatus      = 0xC0000250\n\tSTATUS_BAD_DLL_ENTRYPOINT                                                 NTStatus      = 0xC0000251\n\tSTATUS_BAD_SERVICE_ENTRYPOINT                                             NTStatus      = 0xC0000252\n\tSTATUS_LPC_REPLY_LOST                                                     NTStatus      = 0xC0000253\n\tSTATUS_IP_ADDRESS_CONFLICT1                                               NTStatus      = 0xC0000254\n\tSTATUS_IP_ADDRESS_CONFLICT2                                               NTStatus      = 0xC0000255\n\tSTATUS_REGISTRY_QUOTA_LIMIT                                               NTStatus      = 0xC0000256\n\tSTATUS_PATH_NOT_COVERED                                                   NTStatus      = 0xC0000257\n\tSTATUS_NO_CALLBACK_ACTIVE                                                 NTStatus      = 0xC0000258\n\tSTATUS_LICENSE_QUOTA_EXCEEDED                                             NTStatus      = 0xC0000259\n\tSTATUS_PWD_TOO_SHORT                                                      NTStatus      = 0xC000025A\n\tSTATUS_PWD_TOO_RECENT                                                     NTStatus      = 0xC000025B\n\tSTATUS_PWD_HISTORY_CONFLICT                                               NTStatus      = 0xC000025C\n\tSTATUS_PLUGPLAY_NO_DEVICE                                                 NTStatus      = 0xC000025E\n\tSTATUS_UNSUPPORTED_COMPRESSION                                            NTStatus      = 0xC000025F\n\tSTATUS_INVALID_HW_PROFILE                                                 NTStatus      = 0xC0000260\n\tSTATUS_INVALID_PLUGPLAY_DEVICE_PATH                                       NTStatus      = 0xC0000261\n\tSTATUS_DRIVER_ORDINAL_NOT_FOUND                                           NTStatus      = 0xC0000262\n\tSTATUS_DRIVER_ENTRYPOINT_NOT_FOUND                                        NTStatus      = 0xC0000263\n\tSTATUS_RESOURCE_NOT_OWNED                                                 NTStatus      = 0xC0000264\n\tSTATUS_TOO_MANY_LINKS                                                     NTStatus      = 0xC0000265\n\tSTATUS_QUOTA_LIST_INCONSISTENT                                            NTStatus      = 0xC0000266\n\tSTATUS_FILE_IS_OFFLINE                                                    NTStatus      = 0xC0000267\n\tSTATUS_EVALUATION_EXPIRATION                                              NTStatus      = 0xC0000268\n\tSTATUS_ILLEGAL_DLL_RELOCATION                                             NTStatus      = 0xC0000269\n\tSTATUS_LICENSE_VIOLATION                                                  NTStatus      = 0xC000026A\n\tSTATUS_DLL_INIT_FAILED_LOGOFF                                             NTStatus      = 0xC000026B\n\tSTATUS_DRIVER_UNABLE_TO_LOAD                                              NTStatus      = 0xC000026C\n\tSTATUS_DFS_UNAVAILABLE                                                    NTStatus      = 0xC000026D\n\tSTATUS_VOLUME_DISMOUNTED                                                  NTStatus      = 0xC000026E\n\tSTATUS_WX86_INTERNAL_ERROR                                                NTStatus      = 0xC000026F\n\tSTATUS_WX86_FLOAT_STACK_CHECK                                             NTStatus      = 0xC0000270\n\tSTATUS_VALIDATE_CONTINUE                                                  NTStatus      = 0xC0000271\n\tSTATUS_NO_MATCH                                                           NTStatus      = 0xC0000272\n\tSTATUS_NO_MORE_MATCHES                                                    NTStatus      = 0xC0000273\n\tSTATUS_NOT_A_REPARSE_POINT                                                NTStatus      = 0xC0000275\n\tSTATUS_IO_REPARSE_TAG_INVALID                                             NTStatus      = 0xC0000276\n\tSTATUS_IO_REPARSE_TAG_MISMATCH                                            NTStatus      = 0xC0000277\n\tSTATUS_IO_REPARSE_DATA_INVALID                                            NTStatus      = 0xC0000278\n\tSTATUS_IO_REPARSE_TAG_NOT_HANDLED                                         NTStatus      = 0xC0000279\n\tSTATUS_PWD_TOO_LONG                                                       NTStatus      = 0xC000027A\n\tSTATUS_STOWED_EXCEPTION                                                   NTStatus      = 0xC000027B\n\tSTATUS_CONTEXT_STOWED_EXCEPTION                                           NTStatus      = 0xC000027C\n\tSTATUS_REPARSE_POINT_NOT_RESOLVED                                         NTStatus      = 0xC0000280\n\tSTATUS_DIRECTORY_IS_A_REPARSE_POINT                                       NTStatus      = 0xC0000281\n\tSTATUS_RANGE_LIST_CONFLICT                                                NTStatus      = 0xC0000282\n\tSTATUS_SOURCE_ELEMENT_EMPTY                                               NTStatus      = 0xC0000283\n\tSTATUS_DESTINATION_ELEMENT_FULL                                           NTStatus      = 0xC0000284\n\tSTATUS_ILLEGAL_ELEMENT_ADDRESS                                            NTStatus      = 0xC0000285\n\tSTATUS_MAGAZINE_NOT_PRESENT                                               NTStatus      = 0xC0000286\n\tSTATUS_REINITIALIZATION_NEEDED                                            NTStatus      = 0xC0000287\n\tSTATUS_DEVICE_REQUIRES_CLEANING                                           NTStatus      = 0x80000288\n\tSTATUS_DEVICE_DOOR_OPEN                                                   NTStatus      = 0x80000289\n\tSTATUS_ENCRYPTION_FAILED                                                  NTStatus      = 0xC000028A\n\tSTATUS_DECRYPTION_FAILED                                                  NTStatus      = 0xC000028B\n\tSTATUS_RANGE_NOT_FOUND                                                    NTStatus      = 0xC000028C\n\tSTATUS_NO_RECOVERY_POLICY                                                 NTStatus      = 0xC000028D\n\tSTATUS_NO_EFS                                                             NTStatus      = 0xC000028E\n\tSTATUS_WRONG_EFS                                                          NTStatus      = 0xC000028F\n\tSTATUS_NO_USER_KEYS                                                       NTStatus      = 0xC0000290\n\tSTATUS_FILE_NOT_ENCRYPTED                                                 NTStatus      = 0xC0000291\n\tSTATUS_NOT_EXPORT_FORMAT                                                  NTStatus      = 0xC0000292\n\tSTATUS_FILE_ENCRYPTED                                                     NTStatus      = 0xC0000293\n\tSTATUS_WAKE_SYSTEM                                                        NTStatus      = 0x40000294\n\tSTATUS_WMI_GUID_NOT_FOUND                                                 NTStatus      = 0xC0000295\n\tSTATUS_WMI_INSTANCE_NOT_FOUND                                             NTStatus      = 0xC0000296\n\tSTATUS_WMI_ITEMID_NOT_FOUND                                               NTStatus      = 0xC0000297\n\tSTATUS_WMI_TRY_AGAIN                                                      NTStatus      = 0xC0000298\n\tSTATUS_SHARED_POLICY                                                      NTStatus      = 0xC0000299\n\tSTATUS_POLICY_OBJECT_NOT_FOUND                                            NTStatus      = 0xC000029A\n\tSTATUS_POLICY_ONLY_IN_DS                                                  NTStatus      = 0xC000029B\n\tSTATUS_VOLUME_NOT_UPGRADED                                                NTStatus      = 0xC000029C\n\tSTATUS_REMOTE_STORAGE_NOT_ACTIVE                                          NTStatus      = 0xC000029D\n\tSTATUS_REMOTE_STORAGE_MEDIA_ERROR                                         NTStatus      = 0xC000029E\n\tSTATUS_NO_TRACKING_SERVICE                                                NTStatus      = 0xC000029F\n\tSTATUS_SERVER_SID_MISMATCH                                                NTStatus      = 0xC00002A0\n\tSTATUS_DS_NO_ATTRIBUTE_OR_VALUE                                           NTStatus      = 0xC00002A1\n\tSTATUS_DS_INVALID_ATTRIBUTE_SYNTAX                                        NTStatus      = 0xC00002A2\n\tSTATUS_DS_ATTRIBUTE_TYPE_UNDEFINED                                        NTStatus      = 0xC00002A3\n\tSTATUS_DS_ATTRIBUTE_OR_VALUE_EXISTS                                       NTStatus      = 0xC00002A4\n\tSTATUS_DS_BUSY                                                            NTStatus      = 0xC00002A5\n\tSTATUS_DS_UNAVAILABLE                                                     NTStatus      = 0xC00002A6\n\tSTATUS_DS_NO_RIDS_ALLOCATED                                               NTStatus      = 0xC00002A7\n\tSTATUS_DS_NO_MORE_RIDS                                                    NTStatus      = 0xC00002A8\n\tSTATUS_DS_INCORRECT_ROLE_OWNER                                            NTStatus      = 0xC00002A9\n\tSTATUS_DS_RIDMGR_INIT_ERROR                                               NTStatus      = 0xC00002AA\n\tSTATUS_DS_OBJ_CLASS_VIOLATION                                             NTStatus      = 0xC00002AB\n\tSTATUS_DS_CANT_ON_NON_LEAF                                                NTStatus      = 0xC00002AC\n\tSTATUS_DS_CANT_ON_RDN                                                     NTStatus      = 0xC00002AD\n\tSTATUS_DS_CANT_MOD_OBJ_CLASS                                              NTStatus      = 0xC00002AE\n\tSTATUS_DS_CROSS_DOM_MOVE_FAILED                                           NTStatus      = 0xC00002AF\n\tSTATUS_DS_GC_NOT_AVAILABLE                                                NTStatus      = 0xC00002B0\n\tSTATUS_DIRECTORY_SERVICE_REQUIRED                                         NTStatus      = 0xC00002B1\n\tSTATUS_REPARSE_ATTRIBUTE_CONFLICT                                         NTStatus      = 0xC00002B2\n\tSTATUS_CANT_ENABLE_DENY_ONLY                                              NTStatus      = 0xC00002B3\n\tSTATUS_FLOAT_MULTIPLE_FAULTS                                              NTStatus      = 0xC00002B4\n\tSTATUS_FLOAT_MULTIPLE_TRAPS                                               NTStatus      = 0xC00002B5\n\tSTATUS_DEVICE_REMOVED                                                     NTStatus      = 0xC00002B6\n\tSTATUS_JOURNAL_DELETE_IN_PROGRESS                                         NTStatus      = 0xC00002B7\n\tSTATUS_JOURNAL_NOT_ACTIVE                                                 NTStatus      = 0xC00002B8\n\tSTATUS_NOINTERFACE                                                        NTStatus      = 0xC00002B9\n\tSTATUS_DS_RIDMGR_DISABLED                                                 NTStatus      = 0xC00002BA\n\tSTATUS_DS_ADMIN_LIMIT_EXCEEDED                                            NTStatus      = 0xC00002C1\n\tSTATUS_DRIVER_FAILED_SLEEP                                                NTStatus      = 0xC00002C2\n\tSTATUS_MUTUAL_AUTHENTICATION_FAILED                                       NTStatus      = 0xC00002C3\n\tSTATUS_CORRUPT_SYSTEM_FILE                                                NTStatus      = 0xC00002C4\n\tSTATUS_DATATYPE_MISALIGNMENT_ERROR                                        NTStatus      = 0xC00002C5\n\tSTATUS_WMI_READ_ONLY                                                      NTStatus      = 0xC00002C6\n\tSTATUS_WMI_SET_FAILURE                                                    NTStatus      = 0xC00002C7\n\tSTATUS_COMMITMENT_MINIMUM                                                 NTStatus      = 0xC00002C8\n\tSTATUS_REG_NAT_CONSUMPTION                                                NTStatus      = 0xC00002C9\n\tSTATUS_TRANSPORT_FULL                                                     NTStatus      = 0xC00002CA\n\tSTATUS_DS_SAM_INIT_FAILURE                                                NTStatus      = 0xC00002CB\n\tSTATUS_ONLY_IF_CONNECTED                                                  NTStatus      = 0xC00002CC\n\tSTATUS_DS_SENSITIVE_GROUP_VIOLATION                                       NTStatus      = 0xC00002CD\n\tSTATUS_PNP_RESTART_ENUMERATION                                            NTStatus      = 0xC00002CE\n\tSTATUS_JOURNAL_ENTRY_DELETED                                              NTStatus      = 0xC00002CF\n\tSTATUS_DS_CANT_MOD_PRIMARYGROUPID                                         NTStatus      = 0xC00002D0\n\tSTATUS_SYSTEM_IMAGE_BAD_SIGNATURE                                         NTStatus      = 0xC00002D1\n\tSTATUS_PNP_REBOOT_REQUIRED                                                NTStatus      = 0xC00002D2\n\tSTATUS_POWER_STATE_INVALID                                                NTStatus      = 0xC00002D3\n\tSTATUS_DS_INVALID_GROUP_TYPE                                              NTStatus      = 0xC00002D4\n\tSTATUS_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN                              NTStatus      = 0xC00002D5\n\tSTATUS_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN                               NTStatus      = 0xC00002D6\n\tSTATUS_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER                                   NTStatus      = 0xC00002D7\n\tSTATUS_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER                               NTStatus      = 0xC00002D8\n\tSTATUS_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER                                NTStatus      = 0xC00002D9\n\tSTATUS_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER                             NTStatus      = 0xC00002DA\n\tSTATUS_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER                        NTStatus      = 0xC00002DB\n\tSTATUS_DS_HAVE_PRIMARY_MEMBERS                                            NTStatus      = 0xC00002DC\n\tSTATUS_WMI_NOT_SUPPORTED                                                  NTStatus      = 0xC00002DD\n\tSTATUS_INSUFFICIENT_POWER                                                 NTStatus      = 0xC00002DE\n\tSTATUS_SAM_NEED_BOOTKEY_PASSWORD                                          NTStatus      = 0xC00002DF\n\tSTATUS_SAM_NEED_BOOTKEY_FLOPPY                                            NTStatus      = 0xC00002E0\n\tSTATUS_DS_CANT_START                                                      NTStatus      = 0xC00002E1\n\tSTATUS_DS_INIT_FAILURE                                                    NTStatus      = 0xC00002E2\n\tSTATUS_SAM_INIT_FAILURE                                                   NTStatus      = 0xC00002E3\n\tSTATUS_DS_GC_REQUIRED                                                     NTStatus      = 0xC00002E4\n\tSTATUS_DS_LOCAL_MEMBER_OF_LOCAL_ONLY                                      NTStatus      = 0xC00002E5\n\tSTATUS_DS_NO_FPO_IN_UNIVERSAL_GROUPS                                      NTStatus      = 0xC00002E6\n\tSTATUS_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED                                  NTStatus      = 0xC00002E7\n\tSTATUS_MULTIPLE_FAULT_VIOLATION                                           NTStatus      = 0xC00002E8\n\tSTATUS_CURRENT_DOMAIN_NOT_ALLOWED                                         NTStatus      = 0xC00002E9\n\tSTATUS_CANNOT_MAKE                                                        NTStatus      = 0xC00002EA\n\tSTATUS_SYSTEM_SHUTDOWN                                                    NTStatus      = 0xC00002EB\n\tSTATUS_DS_INIT_FAILURE_CONSOLE                                            NTStatus      = 0xC00002EC\n\tSTATUS_DS_SAM_INIT_FAILURE_CONSOLE                                        NTStatus      = 0xC00002ED\n\tSTATUS_UNFINISHED_CONTEXT_DELETED                                         NTStatus      = 0xC00002EE\n\tSTATUS_NO_TGT_REPLY                                                       NTStatus      = 0xC00002EF\n\tSTATUS_OBJECTID_NOT_FOUND                                                 NTStatus      = 0xC00002F0\n\tSTATUS_NO_IP_ADDRESSES                                                    NTStatus      = 0xC00002F1\n\tSTATUS_WRONG_CREDENTIAL_HANDLE                                            NTStatus      = 0xC00002F2\n\tSTATUS_CRYPTO_SYSTEM_INVALID                                              NTStatus      = 0xC00002F3\n\tSTATUS_MAX_REFERRALS_EXCEEDED                                             NTStatus      = 0xC00002F4\n\tSTATUS_MUST_BE_KDC                                                        NTStatus      = 0xC00002F5\n\tSTATUS_STRONG_CRYPTO_NOT_SUPPORTED                                        NTStatus      = 0xC00002F6\n\tSTATUS_TOO_MANY_PRINCIPALS                                                NTStatus      = 0xC00002F7\n\tSTATUS_NO_PA_DATA                                                         NTStatus      = 0xC00002F8\n\tSTATUS_PKINIT_NAME_MISMATCH                                               NTStatus      = 0xC00002F9\n\tSTATUS_SMARTCARD_LOGON_REQUIRED                                           NTStatus      = 0xC00002FA\n\tSTATUS_KDC_INVALID_REQUEST                                                NTStatus      = 0xC00002FB\n\tSTATUS_KDC_UNABLE_TO_REFER                                                NTStatus      = 0xC00002FC\n\tSTATUS_KDC_UNKNOWN_ETYPE                                                  NTStatus      = 0xC00002FD\n\tSTATUS_SHUTDOWN_IN_PROGRESS                                               NTStatus      = 0xC00002FE\n\tSTATUS_SERVER_SHUTDOWN_IN_PROGRESS                                        NTStatus      = 0xC00002FF\n\tSTATUS_NOT_SUPPORTED_ON_SBS                                               NTStatus      = 0xC0000300\n\tSTATUS_WMI_GUID_DISCONNECTED                                              NTStatus      = 0xC0000301\n\tSTATUS_WMI_ALREADY_DISABLED                                               NTStatus      = 0xC0000302\n\tSTATUS_WMI_ALREADY_ENABLED                                                NTStatus      = 0xC0000303\n\tSTATUS_MFT_TOO_FRAGMENTED                                                 NTStatus      = 0xC0000304\n\tSTATUS_COPY_PROTECTION_FAILURE                                            NTStatus      = 0xC0000305\n\tSTATUS_CSS_AUTHENTICATION_FAILURE                                         NTStatus      = 0xC0000306\n\tSTATUS_CSS_KEY_NOT_PRESENT                                                NTStatus      = 0xC0000307\n\tSTATUS_CSS_KEY_NOT_ESTABLISHED                                            NTStatus      = 0xC0000308\n\tSTATUS_CSS_SCRAMBLED_SECTOR                                               NTStatus      = 0xC0000309\n\tSTATUS_CSS_REGION_MISMATCH                                                NTStatus      = 0xC000030A\n\tSTATUS_CSS_RESETS_EXHAUSTED                                               NTStatus      = 0xC000030B\n\tSTATUS_PASSWORD_CHANGE_REQUIRED                                           NTStatus      = 0xC000030C\n\tSTATUS_LOST_MODE_LOGON_RESTRICTION                                        NTStatus      = 0xC000030D\n\tSTATUS_PKINIT_FAILURE                                                     NTStatus      = 0xC0000320\n\tSTATUS_SMARTCARD_SUBSYSTEM_FAILURE                                        NTStatus      = 0xC0000321\n\tSTATUS_NO_KERB_KEY                                                        NTStatus      = 0xC0000322\n\tSTATUS_HOST_DOWN                                                          NTStatus      = 0xC0000350\n\tSTATUS_UNSUPPORTED_PREAUTH                                                NTStatus      = 0xC0000351\n\tSTATUS_EFS_ALG_BLOB_TOO_BIG                                               NTStatus      = 0xC0000352\n\tSTATUS_PORT_NOT_SET                                                       NTStatus      = 0xC0000353\n\tSTATUS_DEBUGGER_INACTIVE                                                  NTStatus      = 0xC0000354\n\tSTATUS_DS_VERSION_CHECK_FAILURE                                           NTStatus      = 0xC0000355\n\tSTATUS_AUDITING_DISABLED                                                  NTStatus      = 0xC0000356\n\tSTATUS_PRENT4_MACHINE_ACCOUNT                                             NTStatus      = 0xC0000357\n\tSTATUS_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER                                   NTStatus      = 0xC0000358\n\tSTATUS_INVALID_IMAGE_WIN_32                                               NTStatus      = 0xC0000359\n\tSTATUS_INVALID_IMAGE_WIN_64                                               NTStatus      = 0xC000035A\n\tSTATUS_BAD_BINDINGS                                                       NTStatus      = 0xC000035B\n\tSTATUS_NETWORK_SESSION_EXPIRED                                            NTStatus      = 0xC000035C\n\tSTATUS_APPHELP_BLOCK                                                      NTStatus      = 0xC000035D\n\tSTATUS_ALL_SIDS_FILTERED                                                  NTStatus      = 0xC000035E\n\tSTATUS_NOT_SAFE_MODE_DRIVER                                               NTStatus      = 0xC000035F\n\tSTATUS_ACCESS_DISABLED_BY_POLICY_DEFAULT                                  NTStatus      = 0xC0000361\n\tSTATUS_ACCESS_DISABLED_BY_POLICY_PATH                                     NTStatus      = 0xC0000362\n\tSTATUS_ACCESS_DISABLED_BY_POLICY_PUBLISHER                                NTStatus      = 0xC0000363\n\tSTATUS_ACCESS_DISABLED_BY_POLICY_OTHER                                    NTStatus      = 0xC0000364\n\tSTATUS_FAILED_DRIVER_ENTRY                                                NTStatus      = 0xC0000365\n\tSTATUS_DEVICE_ENUMERATION_ERROR                                           NTStatus      = 0xC0000366\n\tSTATUS_MOUNT_POINT_NOT_RESOLVED                                           NTStatus      = 0xC0000368\n\tSTATUS_INVALID_DEVICE_OBJECT_PARAMETER                                    NTStatus      = 0xC0000369\n\tSTATUS_MCA_OCCURED                                                        NTStatus      = 0xC000036A\n\tSTATUS_DRIVER_BLOCKED_CRITICAL                                            NTStatus      = 0xC000036B\n\tSTATUS_DRIVER_BLOCKED                                                     NTStatus      = 0xC000036C\n\tSTATUS_DRIVER_DATABASE_ERROR                                              NTStatus      = 0xC000036D\n\tSTATUS_SYSTEM_HIVE_TOO_LARGE                                              NTStatus      = 0xC000036E\n\tSTATUS_INVALID_IMPORT_OF_NON_DLL                                          NTStatus      = 0xC000036F\n\tSTATUS_DS_SHUTTING_DOWN                                                   NTStatus      = 0x40000370\n\tSTATUS_NO_SECRETS                                                         NTStatus      = 0xC0000371\n\tSTATUS_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY                              NTStatus      = 0xC0000372\n\tSTATUS_FAILED_STACK_SWITCH                                                NTStatus      = 0xC0000373\n\tSTATUS_HEAP_CORRUPTION                                                    NTStatus      = 0xC0000374\n\tSTATUS_SMARTCARD_WRONG_PIN                                                NTStatus      = 0xC0000380\n\tSTATUS_SMARTCARD_CARD_BLOCKED                                             NTStatus      = 0xC0000381\n\tSTATUS_SMARTCARD_CARD_NOT_AUTHENTICATED                                   NTStatus      = 0xC0000382\n\tSTATUS_SMARTCARD_NO_CARD                                                  NTStatus      = 0xC0000383\n\tSTATUS_SMARTCARD_NO_KEY_CONTAINER                                         NTStatus      = 0xC0000384\n\tSTATUS_SMARTCARD_NO_CERTIFICATE                                           NTStatus      = 0xC0000385\n\tSTATUS_SMARTCARD_NO_KEYSET                                                NTStatus      = 0xC0000386\n\tSTATUS_SMARTCARD_IO_ERROR                                                 NTStatus      = 0xC0000387\n\tSTATUS_DOWNGRADE_DETECTED                                                 NTStatus      = 0xC0000388\n\tSTATUS_SMARTCARD_CERT_REVOKED                                             NTStatus      = 0xC0000389\n\tSTATUS_ISSUING_CA_UNTRUSTED                                               NTStatus      = 0xC000038A\n\tSTATUS_REVOCATION_OFFLINE_C                                               NTStatus      = 0xC000038B\n\tSTATUS_PKINIT_CLIENT_FAILURE                                              NTStatus      = 0xC000038C\n\tSTATUS_SMARTCARD_CERT_EXPIRED                                             NTStatus      = 0xC000038D\n\tSTATUS_DRIVER_FAILED_PRIOR_UNLOAD                                         NTStatus      = 0xC000038E\n\tSTATUS_SMARTCARD_SILENT_CONTEXT                                           NTStatus      = 0xC000038F\n\tSTATUS_PER_USER_TRUST_QUOTA_EXCEEDED                                      NTStatus      = 0xC0000401\n\tSTATUS_ALL_USER_TRUST_QUOTA_EXCEEDED                                      NTStatus      = 0xC0000402\n\tSTATUS_USER_DELETE_TRUST_QUOTA_EXCEEDED                                   NTStatus      = 0xC0000403\n\tSTATUS_DS_NAME_NOT_UNIQUE                                                 NTStatus      = 0xC0000404\n\tSTATUS_DS_DUPLICATE_ID_FOUND                                              NTStatus      = 0xC0000405\n\tSTATUS_DS_GROUP_CONVERSION_ERROR                                          NTStatus      = 0xC0000406\n\tSTATUS_VOLSNAP_PREPARE_HIBERNATE                                          NTStatus      = 0xC0000407\n\tSTATUS_USER2USER_REQUIRED                                                 NTStatus      = 0xC0000408\n\tSTATUS_STACK_BUFFER_OVERRUN                                               NTStatus      = 0xC0000409\n\tSTATUS_NO_S4U_PROT_SUPPORT                                                NTStatus      = 0xC000040A\n\tSTATUS_CROSSREALM_DELEGATION_FAILURE                                      NTStatus      = 0xC000040B\n\tSTATUS_REVOCATION_OFFLINE_KDC                                             NTStatus      = 0xC000040C\n\tSTATUS_ISSUING_CA_UNTRUSTED_KDC                                           NTStatus      = 0xC000040D\n\tSTATUS_KDC_CERT_EXPIRED                                                   NTStatus      = 0xC000040E\n\tSTATUS_KDC_CERT_REVOKED                                                   NTStatus      = 0xC000040F\n\tSTATUS_PARAMETER_QUOTA_EXCEEDED                                           NTStatus      = 0xC0000410\n\tSTATUS_HIBERNATION_FAILURE                                                NTStatus      = 0xC0000411\n\tSTATUS_DELAY_LOAD_FAILED                                                  NTStatus      = 0xC0000412\n\tSTATUS_AUTHENTICATION_FIREWALL_FAILED                                     NTStatus      = 0xC0000413\n\tSTATUS_VDM_DISALLOWED                                                     NTStatus      = 0xC0000414\n\tSTATUS_HUNG_DISPLAY_DRIVER_THREAD                                         NTStatus      = 0xC0000415\n\tSTATUS_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE            NTStatus      = 0xC0000416\n\tSTATUS_INVALID_CRUNTIME_PARAMETER                                         NTStatus      = 0xC0000417\n\tSTATUS_NTLM_BLOCKED                                                       NTStatus      = 0xC0000418\n\tSTATUS_DS_SRC_SID_EXISTS_IN_FOREST                                        NTStatus      = 0xC0000419\n\tSTATUS_DS_DOMAIN_NAME_EXISTS_IN_FOREST                                    NTStatus      = 0xC000041A\n\tSTATUS_DS_FLAT_NAME_EXISTS_IN_FOREST                                      NTStatus      = 0xC000041B\n\tSTATUS_INVALID_USER_PRINCIPAL_NAME                                        NTStatus      = 0xC000041C\n\tSTATUS_FATAL_USER_CALLBACK_EXCEPTION                                      NTStatus      = 0xC000041D\n\tSTATUS_ASSERTION_FAILURE                                                  NTStatus      = 0xC0000420\n\tSTATUS_VERIFIER_STOP                                                      NTStatus      = 0xC0000421\n\tSTATUS_CALLBACK_POP_STACK                                                 NTStatus      = 0xC0000423\n\tSTATUS_INCOMPATIBLE_DRIVER_BLOCKED                                        NTStatus      = 0xC0000424\n\tSTATUS_HIVE_UNLOADED                                                      NTStatus      = 0xC0000425\n\tSTATUS_COMPRESSION_DISABLED                                               NTStatus      = 0xC0000426\n\tSTATUS_FILE_SYSTEM_LIMITATION                                             NTStatus      = 0xC0000427\n\tSTATUS_INVALID_IMAGE_HASH                                                 NTStatus      = 0xC0000428\n\tSTATUS_NOT_CAPABLE                                                        NTStatus      = 0xC0000429\n\tSTATUS_REQUEST_OUT_OF_SEQUENCE                                            NTStatus      = 0xC000042A\n\tSTATUS_IMPLEMENTATION_LIMIT                                               NTStatus      = 0xC000042B\n\tSTATUS_ELEVATION_REQUIRED                                                 NTStatus      = 0xC000042C\n\tSTATUS_NO_SECURITY_CONTEXT                                                NTStatus      = 0xC000042D\n\tSTATUS_PKU2U_CERT_FAILURE                                                 NTStatus      = 0xC000042F\n\tSTATUS_BEYOND_VDL                                                         NTStatus      = 0xC0000432\n\tSTATUS_ENCOUNTERED_WRITE_IN_PROGRESS                                      NTStatus      = 0xC0000433\n\tSTATUS_PTE_CHANGED                                                        NTStatus      = 0xC0000434\n\tSTATUS_PURGE_FAILED                                                       NTStatus      = 0xC0000435\n\tSTATUS_CRED_REQUIRES_CONFIRMATION                                         NTStatus      = 0xC0000440\n\tSTATUS_CS_ENCRYPTION_INVALID_SERVER_RESPONSE                              NTStatus      = 0xC0000441\n\tSTATUS_CS_ENCRYPTION_UNSUPPORTED_SERVER                                   NTStatus      = 0xC0000442\n\tSTATUS_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE                              NTStatus      = 0xC0000443\n\tSTATUS_CS_ENCRYPTION_NEW_ENCRYPTED_FILE                                   NTStatus      = 0xC0000444\n\tSTATUS_CS_ENCRYPTION_FILE_NOT_CSE                                         NTStatus      = 0xC0000445\n\tSTATUS_INVALID_LABEL                                                      NTStatus      = 0xC0000446\n\tSTATUS_DRIVER_PROCESS_TERMINATED                                          NTStatus      = 0xC0000450\n\tSTATUS_AMBIGUOUS_SYSTEM_DEVICE                                            NTStatus      = 0xC0000451\n\tSTATUS_SYSTEM_DEVICE_NOT_FOUND                                            NTStatus      = 0xC0000452\n\tSTATUS_RESTART_BOOT_APPLICATION                                           NTStatus      = 0xC0000453\n\tSTATUS_INSUFFICIENT_NVRAM_RESOURCES                                       NTStatus      = 0xC0000454\n\tSTATUS_INVALID_SESSION                                                    NTStatus      = 0xC0000455\n\tSTATUS_THREAD_ALREADY_IN_SESSION                                          NTStatus      = 0xC0000456\n\tSTATUS_THREAD_NOT_IN_SESSION                                              NTStatus      = 0xC0000457\n\tSTATUS_INVALID_WEIGHT                                                     NTStatus      = 0xC0000458\n\tSTATUS_REQUEST_PAUSED                                                     NTStatus      = 0xC0000459\n\tSTATUS_NO_RANGES_PROCESSED                                                NTStatus      = 0xC0000460\n\tSTATUS_DISK_RESOURCES_EXHAUSTED                                           NTStatus      = 0xC0000461\n\tSTATUS_NEEDS_REMEDIATION                                                  NTStatus      = 0xC0000462\n\tSTATUS_DEVICE_FEATURE_NOT_SUPPORTED                                       NTStatus      = 0xC0000463\n\tSTATUS_DEVICE_UNREACHABLE                                                 NTStatus      = 0xC0000464\n\tSTATUS_INVALID_TOKEN                                                      NTStatus      = 0xC0000465\n\tSTATUS_SERVER_UNAVAILABLE                                                 NTStatus      = 0xC0000466\n\tSTATUS_FILE_NOT_AVAILABLE                                                 NTStatus      = 0xC0000467\n\tSTATUS_DEVICE_INSUFFICIENT_RESOURCES                                      NTStatus      = 0xC0000468\n\tSTATUS_PACKAGE_UPDATING                                                   NTStatus      = 0xC0000469\n\tSTATUS_NOT_READ_FROM_COPY                                                 NTStatus      = 0xC000046A\n\tSTATUS_FT_WRITE_FAILURE                                                   NTStatus      = 0xC000046B\n\tSTATUS_FT_DI_SCAN_REQUIRED                                                NTStatus      = 0xC000046C\n\tSTATUS_OBJECT_NOT_EXTERNALLY_BACKED                                       NTStatus      = 0xC000046D\n\tSTATUS_EXTERNAL_BACKING_PROVIDER_UNKNOWN                                  NTStatus      = 0xC000046E\n\tSTATUS_COMPRESSION_NOT_BENEFICIAL                                         NTStatus      = 0xC000046F\n\tSTATUS_DATA_CHECKSUM_ERROR                                                NTStatus      = 0xC0000470\n\tSTATUS_INTERMIXED_KERNEL_EA_OPERATION                                     NTStatus      = 0xC0000471\n\tSTATUS_TRIM_READ_ZERO_NOT_SUPPORTED                                       NTStatus      = 0xC0000472\n\tSTATUS_TOO_MANY_SEGMENT_DESCRIPTORS                                       NTStatus      = 0xC0000473\n\tSTATUS_INVALID_OFFSET_ALIGNMENT                                           NTStatus      = 0xC0000474\n\tSTATUS_INVALID_FIELD_IN_PARAMETER_LIST                                    NTStatus      = 0xC0000475\n\tSTATUS_OPERATION_IN_PROGRESS                                              NTStatus      = 0xC0000476\n\tSTATUS_INVALID_INITIATOR_TARGET_PATH                                      NTStatus      = 0xC0000477\n\tSTATUS_SCRUB_DATA_DISABLED                                                NTStatus      = 0xC0000478\n\tSTATUS_NOT_REDUNDANT_STORAGE                                              NTStatus      = 0xC0000479\n\tSTATUS_RESIDENT_FILE_NOT_SUPPORTED                                        NTStatus      = 0xC000047A\n\tSTATUS_COMPRESSED_FILE_NOT_SUPPORTED                                      NTStatus      = 0xC000047B\n\tSTATUS_DIRECTORY_NOT_SUPPORTED                                            NTStatus      = 0xC000047C\n\tSTATUS_IO_OPERATION_TIMEOUT                                               NTStatus      = 0xC000047D\n\tSTATUS_SYSTEM_NEEDS_REMEDIATION                                           NTStatus      = 0xC000047E\n\tSTATUS_APPX_INTEGRITY_FAILURE_CLR_NGEN                                    NTStatus      = 0xC000047F\n\tSTATUS_SHARE_UNAVAILABLE                                                  NTStatus      = 0xC0000480\n\tSTATUS_APISET_NOT_HOSTED                                                  NTStatus      = 0xC0000481\n\tSTATUS_APISET_NOT_PRESENT                                                 NTStatus      = 0xC0000482\n\tSTATUS_DEVICE_HARDWARE_ERROR                                              NTStatus      = 0xC0000483\n\tSTATUS_FIRMWARE_SLOT_INVALID                                              NTStatus      = 0xC0000484\n\tSTATUS_FIRMWARE_IMAGE_INVALID                                             NTStatus      = 0xC0000485\n\tSTATUS_STORAGE_TOPOLOGY_ID_MISMATCH                                       NTStatus      = 0xC0000486\n\tSTATUS_WIM_NOT_BOOTABLE                                                   NTStatus      = 0xC0000487\n\tSTATUS_BLOCKED_BY_PARENTAL_CONTROLS                                       NTStatus      = 0xC0000488\n\tSTATUS_NEEDS_REGISTRATION                                                 NTStatus      = 0xC0000489\n\tSTATUS_QUOTA_ACTIVITY                                                     NTStatus      = 0xC000048A\n\tSTATUS_CALLBACK_INVOKE_INLINE                                             NTStatus      = 0xC000048B\n\tSTATUS_BLOCK_TOO_MANY_REFERENCES                                          NTStatus      = 0xC000048C\n\tSTATUS_MARKED_TO_DISALLOW_WRITES                                          NTStatus      = 0xC000048D\n\tSTATUS_NETWORK_ACCESS_DENIED_EDP                                          NTStatus      = 0xC000048E\n\tSTATUS_ENCLAVE_FAILURE                                                    NTStatus      = 0xC000048F\n\tSTATUS_PNP_NO_COMPAT_DRIVERS                                              NTStatus      = 0xC0000490\n\tSTATUS_PNP_DRIVER_PACKAGE_NOT_FOUND                                       NTStatus      = 0xC0000491\n\tSTATUS_PNP_DRIVER_CONFIGURATION_NOT_FOUND                                 NTStatus      = 0xC0000492\n\tSTATUS_PNP_DRIVER_CONFIGURATION_INCOMPLETE                                NTStatus      = 0xC0000493\n\tSTATUS_PNP_FUNCTION_DRIVER_REQUIRED                                       NTStatus      = 0xC0000494\n\tSTATUS_PNP_DEVICE_CONFIGURATION_PENDING                                   NTStatus      = 0xC0000495\n\tSTATUS_DEVICE_HINT_NAME_BUFFER_TOO_SMALL                                  NTStatus      = 0xC0000496\n\tSTATUS_PACKAGE_NOT_AVAILABLE                                              NTStatus      = 0xC0000497\n\tSTATUS_DEVICE_IN_MAINTENANCE                                              NTStatus      = 0xC0000499\n\tSTATUS_NOT_SUPPORTED_ON_DAX                                               NTStatus      = 0xC000049A\n\tSTATUS_FREE_SPACE_TOO_FRAGMENTED                                          NTStatus      = 0xC000049B\n\tSTATUS_DAX_MAPPING_EXISTS                                                 NTStatus      = 0xC000049C\n\tSTATUS_CHILD_PROCESS_BLOCKED                                              NTStatus      = 0xC000049D\n\tSTATUS_STORAGE_LOST_DATA_PERSISTENCE                                      NTStatus      = 0xC000049E\n\tSTATUS_VRF_CFG_ENABLED                                                    NTStatus      = 0xC000049F\n\tSTATUS_PARTITION_TERMINATING                                              NTStatus      = 0xC00004A0\n\tSTATUS_EXTERNAL_SYSKEY_NOT_SUPPORTED                                      NTStatus      = 0xC00004A1\n\tSTATUS_ENCLAVE_VIOLATION                                                  NTStatus      = 0xC00004A2\n\tSTATUS_FILE_PROTECTED_UNDER_DPL                                           NTStatus      = 0xC00004A3\n\tSTATUS_VOLUME_NOT_CLUSTER_ALIGNED                                         NTStatus      = 0xC00004A4\n\tSTATUS_NO_PHYSICALLY_ALIGNED_FREE_SPACE_FOUND                             NTStatus      = 0xC00004A5\n\tSTATUS_APPX_FILE_NOT_ENCRYPTED                                            NTStatus      = 0xC00004A6\n\tSTATUS_RWRAW_ENCRYPTED_FILE_NOT_ENCRYPTED                                 NTStatus      = 0xC00004A7\n\tSTATUS_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILEOFFSET                       NTStatus      = 0xC00004A8\n\tSTATUS_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILERANGE                        NTStatus      = 0xC00004A9\n\tSTATUS_RWRAW_ENCRYPTED_INVALID_EDATAINFO_PARAMETER                        NTStatus      = 0xC00004AA\n\tSTATUS_FT_READ_FAILURE                                                    NTStatus      = 0xC00004AB\n\tSTATUS_PATCH_CONFLICT                                                     NTStatus      = 0xC00004AC\n\tSTATUS_STORAGE_RESERVE_ID_INVALID                                         NTStatus      = 0xC00004AD\n\tSTATUS_STORAGE_RESERVE_DOES_NOT_EXIST                                     NTStatus      = 0xC00004AE\n\tSTATUS_STORAGE_RESERVE_ALREADY_EXISTS                                     NTStatus      = 0xC00004AF\n\tSTATUS_STORAGE_RESERVE_NOT_EMPTY                                          NTStatus      = 0xC00004B0\n\tSTATUS_NOT_A_DAX_VOLUME                                                   NTStatus      = 0xC00004B1\n\tSTATUS_NOT_DAX_MAPPABLE                                                   NTStatus      = 0xC00004B2\n\tSTATUS_CASE_DIFFERING_NAMES_IN_DIR                                        NTStatus      = 0xC00004B3\n\tSTATUS_FILE_NOT_SUPPORTED                                                 NTStatus      = 0xC00004B4\n\tSTATUS_NOT_SUPPORTED_WITH_BTT                                             NTStatus      = 0xC00004B5\n\tSTATUS_ENCRYPTION_DISABLED                                                NTStatus      = 0xC00004B6\n\tSTATUS_ENCRYPTING_METADATA_DISALLOWED                                     NTStatus      = 0xC00004B7\n\tSTATUS_CANT_CLEAR_ENCRYPTION_FLAG                                         NTStatus      = 0xC00004B8\n\tSTATUS_INVALID_TASK_NAME                                                  NTStatus      = 0xC0000500\n\tSTATUS_INVALID_TASK_INDEX                                                 NTStatus      = 0xC0000501\n\tSTATUS_THREAD_ALREADY_IN_TASK                                             NTStatus      = 0xC0000502\n\tSTATUS_CALLBACK_BYPASS                                                    NTStatus      = 0xC0000503\n\tSTATUS_UNDEFINED_SCOPE                                                    NTStatus      = 0xC0000504\n\tSTATUS_INVALID_CAP                                                        NTStatus      = 0xC0000505\n\tSTATUS_NOT_GUI_PROCESS                                                    NTStatus      = 0xC0000506\n\tSTATUS_DEVICE_HUNG                                                        NTStatus      = 0xC0000507\n\tSTATUS_CONTAINER_ASSIGNED                                                 NTStatus      = 0xC0000508\n\tSTATUS_JOB_NO_CONTAINER                                                   NTStatus      = 0xC0000509\n\tSTATUS_DEVICE_UNRESPONSIVE                                                NTStatus      = 0xC000050A\n\tSTATUS_REPARSE_POINT_ENCOUNTERED                                          NTStatus      = 0xC000050B\n\tSTATUS_ATTRIBUTE_NOT_PRESENT                                              NTStatus      = 0xC000050C\n\tSTATUS_NOT_A_TIERED_VOLUME                                                NTStatus      = 0xC000050D\n\tSTATUS_ALREADY_HAS_STREAM_ID                                              NTStatus      = 0xC000050E\n\tSTATUS_JOB_NOT_EMPTY                                                      NTStatus      = 0xC000050F\n\tSTATUS_ALREADY_INITIALIZED                                                NTStatus      = 0xC0000510\n\tSTATUS_ENCLAVE_NOT_TERMINATED                                             NTStatus      = 0xC0000511\n\tSTATUS_ENCLAVE_IS_TERMINATING                                             NTStatus      = 0xC0000512\n\tSTATUS_SMB1_NOT_AVAILABLE                                                 NTStatus      = 0xC0000513\n\tSTATUS_SMR_GARBAGE_COLLECTION_REQUIRED                                    NTStatus      = 0xC0000514\n\tSTATUS_INTERRUPTED                                                        NTStatus      = 0xC0000515\n\tSTATUS_THREAD_NOT_RUNNING                                                 NTStatus      = 0xC0000516\n\tSTATUS_FAIL_FAST_EXCEPTION                                                NTStatus      = 0xC0000602\n\tSTATUS_IMAGE_CERT_REVOKED                                                 NTStatus      = 0xC0000603\n\tSTATUS_DYNAMIC_CODE_BLOCKED                                               NTStatus      = 0xC0000604\n\tSTATUS_IMAGE_CERT_EXPIRED                                                 NTStatus      = 0xC0000605\n\tSTATUS_STRICT_CFG_VIOLATION                                               NTStatus      = 0xC0000606\n\tSTATUS_SET_CONTEXT_DENIED                                                 NTStatus      = 0xC000060A\n\tSTATUS_CROSS_PARTITION_VIOLATION                                          NTStatus      = 0xC000060B\n\tSTATUS_PORT_CLOSED                                                        NTStatus      = 0xC0000700\n\tSTATUS_MESSAGE_LOST                                                       NTStatus      = 0xC0000701\n\tSTATUS_INVALID_MESSAGE                                                    NTStatus      = 0xC0000702\n\tSTATUS_REQUEST_CANCELED                                                   NTStatus      = 0xC0000703\n\tSTATUS_RECURSIVE_DISPATCH                                                 NTStatus      = 0xC0000704\n\tSTATUS_LPC_RECEIVE_BUFFER_EXPECTED                                        NTStatus      = 0xC0000705\n\tSTATUS_LPC_INVALID_CONNECTION_USAGE                                       NTStatus      = 0xC0000706\n\tSTATUS_LPC_REQUESTS_NOT_ALLOWED                                           NTStatus      = 0xC0000707\n\tSTATUS_RESOURCE_IN_USE                                                    NTStatus      = 0xC0000708\n\tSTATUS_HARDWARE_MEMORY_ERROR                                              NTStatus      = 0xC0000709\n\tSTATUS_THREADPOOL_HANDLE_EXCEPTION                                        NTStatus      = 0xC000070A\n\tSTATUS_THREADPOOL_SET_EVENT_ON_COMPLETION_FAILED                          NTStatus      = 0xC000070B\n\tSTATUS_THREADPOOL_RELEASE_SEMAPHORE_ON_COMPLETION_FAILED                  NTStatus      = 0xC000070C\n\tSTATUS_THREADPOOL_RELEASE_MUTEX_ON_COMPLETION_FAILED                      NTStatus      = 0xC000070D\n\tSTATUS_THREADPOOL_FREE_LIBRARY_ON_COMPLETION_FAILED                       NTStatus      = 0xC000070E\n\tSTATUS_THREADPOOL_RELEASED_DURING_OPERATION                               NTStatus      = 0xC000070F\n\tSTATUS_CALLBACK_RETURNED_WHILE_IMPERSONATING                              NTStatus      = 0xC0000710\n\tSTATUS_APC_RETURNED_WHILE_IMPERSONATING                                   NTStatus      = 0xC0000711\n\tSTATUS_PROCESS_IS_PROTECTED                                               NTStatus      = 0xC0000712\n\tSTATUS_MCA_EXCEPTION                                                      NTStatus      = 0xC0000713\n\tSTATUS_CERTIFICATE_MAPPING_NOT_UNIQUE                                     NTStatus      = 0xC0000714\n\tSTATUS_SYMLINK_CLASS_DISABLED                                             NTStatus      = 0xC0000715\n\tSTATUS_INVALID_IDN_NORMALIZATION                                          NTStatus      = 0xC0000716\n\tSTATUS_NO_UNICODE_TRANSLATION                                             NTStatus      = 0xC0000717\n\tSTATUS_ALREADY_REGISTERED                                                 NTStatus      = 0xC0000718\n\tSTATUS_CONTEXT_MISMATCH                                                   NTStatus      = 0xC0000719\n\tSTATUS_PORT_ALREADY_HAS_COMPLETION_LIST                                   NTStatus      = 0xC000071A\n\tSTATUS_CALLBACK_RETURNED_THREAD_PRIORITY                                  NTStatus      = 0xC000071B\n\tSTATUS_INVALID_THREAD                                                     NTStatus      = 0xC000071C\n\tSTATUS_CALLBACK_RETURNED_TRANSACTION                                      NTStatus      = 0xC000071D\n\tSTATUS_CALLBACK_RETURNED_LDR_LOCK                                         NTStatus      = 0xC000071E\n\tSTATUS_CALLBACK_RETURNED_LANG                                             NTStatus      = 0xC000071F\n\tSTATUS_CALLBACK_RETURNED_PRI_BACK                                         NTStatus      = 0xC0000720\n\tSTATUS_CALLBACK_RETURNED_THREAD_AFFINITY                                  NTStatus      = 0xC0000721\n\tSTATUS_LPC_HANDLE_COUNT_EXCEEDED                                          NTStatus      = 0xC0000722\n\tSTATUS_EXECUTABLE_MEMORY_WRITE                                            NTStatus      = 0xC0000723\n\tSTATUS_KERNEL_EXECUTABLE_MEMORY_WRITE                                     NTStatus      = 0xC0000724\n\tSTATUS_ATTACHED_EXECUTABLE_MEMORY_WRITE                                   NTStatus      = 0xC0000725\n\tSTATUS_TRIGGERED_EXECUTABLE_MEMORY_WRITE                                  NTStatus      = 0xC0000726\n\tSTATUS_DISK_REPAIR_DISABLED                                               NTStatus      = 0xC0000800\n\tSTATUS_DS_DOMAIN_RENAME_IN_PROGRESS                                       NTStatus      = 0xC0000801\n\tSTATUS_DISK_QUOTA_EXCEEDED                                                NTStatus      = 0xC0000802\n\tSTATUS_DATA_LOST_REPAIR                                                   NTStatus      = 0x80000803\n\tSTATUS_CONTENT_BLOCKED                                                    NTStatus      = 0xC0000804\n\tSTATUS_BAD_CLUSTERS                                                       NTStatus      = 0xC0000805\n\tSTATUS_VOLUME_DIRTY                                                       NTStatus      = 0xC0000806\n\tSTATUS_DISK_REPAIR_REDIRECTED                                             NTStatus      = 0x40000807\n\tSTATUS_DISK_REPAIR_UNSUCCESSFUL                                           NTStatus      = 0xC0000808\n\tSTATUS_CORRUPT_LOG_OVERFULL                                               NTStatus      = 0xC0000809\n\tSTATUS_CORRUPT_LOG_CORRUPTED                                              NTStatus      = 0xC000080A\n\tSTATUS_CORRUPT_LOG_UNAVAILABLE                                            NTStatus      = 0xC000080B\n\tSTATUS_CORRUPT_LOG_DELETED_FULL                                           NTStatus      = 0xC000080C\n\tSTATUS_CORRUPT_LOG_CLEARED                                                NTStatus      = 0xC000080D\n\tSTATUS_ORPHAN_NAME_EXHAUSTED                                              NTStatus      = 0xC000080E\n\tSTATUS_PROACTIVE_SCAN_IN_PROGRESS                                         NTStatus      = 0xC000080F\n\tSTATUS_ENCRYPTED_IO_NOT_POSSIBLE                                          NTStatus      = 0xC0000810\n\tSTATUS_CORRUPT_LOG_UPLEVEL_RECORDS                                        NTStatus      = 0xC0000811\n\tSTATUS_FILE_CHECKED_OUT                                                   NTStatus      = 0xC0000901\n\tSTATUS_CHECKOUT_REQUIRED                                                  NTStatus      = 0xC0000902\n\tSTATUS_BAD_FILE_TYPE                                                      NTStatus      = 0xC0000903\n\tSTATUS_FILE_TOO_LARGE                                                     NTStatus      = 0xC0000904\n\tSTATUS_FORMS_AUTH_REQUIRED                                                NTStatus      = 0xC0000905\n\tSTATUS_VIRUS_INFECTED                                                     NTStatus      = 0xC0000906\n\tSTATUS_VIRUS_DELETED                                                      NTStatus      = 0xC0000907\n\tSTATUS_BAD_MCFG_TABLE                                                     NTStatus      = 0xC0000908\n\tSTATUS_CANNOT_BREAK_OPLOCK                                                NTStatus      = 0xC0000909\n\tSTATUS_BAD_KEY                                                            NTStatus      = 0xC000090A\n\tSTATUS_BAD_DATA                                                           NTStatus      = 0xC000090B\n\tSTATUS_NO_KEY                                                             NTStatus      = 0xC000090C\n\tSTATUS_FILE_HANDLE_REVOKED                                                NTStatus      = 0xC0000910\n\tSTATUS_WOW_ASSERTION                                                      NTStatus      = 0xC0009898\n\tSTATUS_INVALID_SIGNATURE                                                  NTStatus      = 0xC000A000\n\tSTATUS_HMAC_NOT_SUPPORTED                                                 NTStatus      = 0xC000A001\n\tSTATUS_AUTH_TAG_MISMATCH                                                  NTStatus      = 0xC000A002\n\tSTATUS_INVALID_STATE_TRANSITION                                           NTStatus      = 0xC000A003\n\tSTATUS_INVALID_KERNEL_INFO_VERSION                                        NTStatus      = 0xC000A004\n\tSTATUS_INVALID_PEP_INFO_VERSION                                           NTStatus      = 0xC000A005\n\tSTATUS_HANDLE_REVOKED                                                     NTStatus      = 0xC000A006\n\tSTATUS_EOF_ON_GHOSTED_RANGE                                               NTStatus      = 0xC000A007\n\tSTATUS_IPSEC_QUEUE_OVERFLOW                                               NTStatus      = 0xC000A010\n\tSTATUS_ND_QUEUE_OVERFLOW                                                  NTStatus      = 0xC000A011\n\tSTATUS_HOPLIMIT_EXCEEDED                                                  NTStatus      = 0xC000A012\n\tSTATUS_PROTOCOL_NOT_SUPPORTED                                             NTStatus      = 0xC000A013\n\tSTATUS_FASTPATH_REJECTED                                                  NTStatus      = 0xC000A014\n\tSTATUS_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED                         NTStatus      = 0xC000A080\n\tSTATUS_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR                         NTStatus      = 0xC000A081\n\tSTATUS_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR                             NTStatus      = 0xC000A082\n\tSTATUS_XML_PARSE_ERROR                                                    NTStatus      = 0xC000A083\n\tSTATUS_XMLDSIG_ERROR                                                      NTStatus      = 0xC000A084\n\tSTATUS_WRONG_COMPARTMENT                                                  NTStatus      = 0xC000A085\n\tSTATUS_AUTHIP_FAILURE                                                     NTStatus      = 0xC000A086\n\tSTATUS_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS                              NTStatus      = 0xC000A087\n\tSTATUS_DS_OID_NOT_FOUND                                                   NTStatus      = 0xC000A088\n\tSTATUS_INCORRECT_ACCOUNT_TYPE                                             NTStatus      = 0xC000A089\n\tSTATUS_HASH_NOT_SUPPORTED                                                 NTStatus      = 0xC000A100\n\tSTATUS_HASH_NOT_PRESENT                                                   NTStatus      = 0xC000A101\n\tSTATUS_SECONDARY_IC_PROVIDER_NOT_REGISTERED                               NTStatus      = 0xC000A121\n\tSTATUS_GPIO_CLIENT_INFORMATION_INVALID                                    NTStatus      = 0xC000A122\n\tSTATUS_GPIO_VERSION_NOT_SUPPORTED                                         NTStatus      = 0xC000A123\n\tSTATUS_GPIO_INVALID_REGISTRATION_PACKET                                   NTStatus      = 0xC000A124\n\tSTATUS_GPIO_OPERATION_DENIED                                              NTStatus      = 0xC000A125\n\tSTATUS_GPIO_INCOMPATIBLE_CONNECT_MODE                                     NTStatus      = 0xC000A126\n\tSTATUS_GPIO_INTERRUPT_ALREADY_UNMASKED                                    NTStatus      = 0x8000A127\n\tSTATUS_CANNOT_SWITCH_RUNLEVEL                                             NTStatus      = 0xC000A141\n\tSTATUS_INVALID_RUNLEVEL_SETTING                                           NTStatus      = 0xC000A142\n\tSTATUS_RUNLEVEL_SWITCH_TIMEOUT                                            NTStatus      = 0xC000A143\n\tSTATUS_SERVICES_FAILED_AUTOSTART                                          NTStatus      = 0x4000A144\n\tSTATUS_RUNLEVEL_SWITCH_AGENT_TIMEOUT                                      NTStatus      = 0xC000A145\n\tSTATUS_RUNLEVEL_SWITCH_IN_PROGRESS                                        NTStatus      = 0xC000A146\n\tSTATUS_NOT_APPCONTAINER                                                   NTStatus      = 0xC000A200\n\tSTATUS_NOT_SUPPORTED_IN_APPCONTAINER                                      NTStatus      = 0xC000A201\n\tSTATUS_INVALID_PACKAGE_SID_LENGTH                                         NTStatus      = 0xC000A202\n\tSTATUS_LPAC_ACCESS_DENIED                                                 NTStatus      = 0xC000A203\n\tSTATUS_ADMINLESS_ACCESS_DENIED                                            NTStatus      = 0xC000A204\n\tSTATUS_APP_DATA_NOT_FOUND                                                 NTStatus      = 0xC000A281\n\tSTATUS_APP_DATA_EXPIRED                                                   NTStatus      = 0xC000A282\n\tSTATUS_APP_DATA_CORRUPT                                                   NTStatus      = 0xC000A283\n\tSTATUS_APP_DATA_LIMIT_EXCEEDED                                            NTStatus      = 0xC000A284\n\tSTATUS_APP_DATA_REBOOT_REQUIRED                                           NTStatus      = 0xC000A285\n\tSTATUS_OFFLOAD_READ_FLT_NOT_SUPPORTED                                     NTStatus      = 0xC000A2A1\n\tSTATUS_OFFLOAD_WRITE_FLT_NOT_SUPPORTED                                    NTStatus      = 0xC000A2A2\n\tSTATUS_OFFLOAD_READ_FILE_NOT_SUPPORTED                                    NTStatus      = 0xC000A2A3\n\tSTATUS_OFFLOAD_WRITE_FILE_NOT_SUPPORTED                                   NTStatus      = 0xC000A2A4\n\tSTATUS_WOF_WIM_HEADER_CORRUPT                                             NTStatus      = 0xC000A2A5\n\tSTATUS_WOF_WIM_RESOURCE_TABLE_CORRUPT                                     NTStatus      = 0xC000A2A6\n\tSTATUS_WOF_FILE_RESOURCE_TABLE_CORRUPT                                    NTStatus      = 0xC000A2A7\n\tSTATUS_FILE_SYSTEM_VIRTUALIZATION_UNAVAILABLE                             NTStatus      = 0xC000CE01\n\tSTATUS_FILE_SYSTEM_VIRTUALIZATION_METADATA_CORRUPT                        NTStatus      = 0xC000CE02\n\tSTATUS_FILE_SYSTEM_VIRTUALIZATION_BUSY                                    NTStatus      = 0xC000CE03\n\tSTATUS_FILE_SYSTEM_VIRTUALIZATION_PROVIDER_UNKNOWN                        NTStatus      = 0xC000CE04\n\tSTATUS_FILE_SYSTEM_VIRTUALIZATION_INVALID_OPERATION                       NTStatus      = 0xC000CE05\n\tSTATUS_CLOUD_FILE_SYNC_ROOT_METADATA_CORRUPT                              NTStatus      = 0xC000CF00\n\tSTATUS_CLOUD_FILE_PROVIDER_NOT_RUNNING                                    NTStatus      = 0xC000CF01\n\tSTATUS_CLOUD_FILE_METADATA_CORRUPT                                        NTStatus      = 0xC000CF02\n\tSTATUS_CLOUD_FILE_METADATA_TOO_LARGE                                      NTStatus      = 0xC000CF03\n\tSTATUS_CLOUD_FILE_PROPERTY_BLOB_TOO_LARGE                                 NTStatus      = 0x8000CF04\n\tSTATUS_CLOUD_FILE_TOO_MANY_PROPERTY_BLOBS                                 NTStatus      = 0x8000CF05\n\tSTATUS_CLOUD_FILE_PROPERTY_VERSION_NOT_SUPPORTED                          NTStatus      = 0xC000CF06\n\tSTATUS_NOT_A_CLOUD_FILE                                                   NTStatus      = 0xC000CF07\n\tSTATUS_CLOUD_FILE_NOT_IN_SYNC                                             NTStatus      = 0xC000CF08\n\tSTATUS_CLOUD_FILE_ALREADY_CONNECTED                                       NTStatus      = 0xC000CF09\n\tSTATUS_CLOUD_FILE_NOT_SUPPORTED                                           NTStatus      = 0xC000CF0A\n\tSTATUS_CLOUD_FILE_INVALID_REQUEST                                         NTStatus      = 0xC000CF0B\n\tSTATUS_CLOUD_FILE_READ_ONLY_VOLUME                                        NTStatus      = 0xC000CF0C\n\tSTATUS_CLOUD_FILE_CONNECTED_PROVIDER_ONLY                                 NTStatus      = 0xC000CF0D\n\tSTATUS_CLOUD_FILE_VALIDATION_FAILED                                       NTStatus      = 0xC000CF0E\n\tSTATUS_CLOUD_FILE_AUTHENTICATION_FAILED                                   NTStatus      = 0xC000CF0F\n\tSTATUS_CLOUD_FILE_INSUFFICIENT_RESOURCES                                  NTStatus      = 0xC000CF10\n\tSTATUS_CLOUD_FILE_NETWORK_UNAVAILABLE                                     NTStatus      = 0xC000CF11\n\tSTATUS_CLOUD_FILE_UNSUCCESSFUL                                            NTStatus      = 0xC000CF12\n\tSTATUS_CLOUD_FILE_NOT_UNDER_SYNC_ROOT                                     NTStatus      = 0xC000CF13\n\tSTATUS_CLOUD_FILE_IN_USE                                                  NTStatus      = 0xC000CF14\n\tSTATUS_CLOUD_FILE_PINNED                                                  NTStatus      = 0xC000CF15\n\tSTATUS_CLOUD_FILE_REQUEST_ABORTED                                         NTStatus      = 0xC000CF16\n\tSTATUS_CLOUD_FILE_PROPERTY_CORRUPT                                        NTStatus      = 0xC000CF17\n\tSTATUS_CLOUD_FILE_ACCESS_DENIED                                           NTStatus      = 0xC000CF18\n\tSTATUS_CLOUD_FILE_INCOMPATIBLE_HARDLINKS                                  NTStatus      = 0xC000CF19\n\tSTATUS_CLOUD_FILE_PROPERTY_LOCK_CONFLICT                                  NTStatus      = 0xC000CF1A\n\tSTATUS_CLOUD_FILE_REQUEST_CANCELED                                        NTStatus      = 0xC000CF1B\n\tSTATUS_CLOUD_FILE_PROVIDER_TERMINATED                                     NTStatus      = 0xC000CF1D\n\tSTATUS_NOT_A_CLOUD_SYNC_ROOT                                              NTStatus      = 0xC000CF1E\n\tSTATUS_CLOUD_FILE_REQUEST_TIMEOUT                                         NTStatus      = 0xC000CF1F\n\tSTATUS_ACPI_INVALID_OPCODE                                                NTStatus      = 0xC0140001\n\tSTATUS_ACPI_STACK_OVERFLOW                                                NTStatus      = 0xC0140002\n\tSTATUS_ACPI_ASSERT_FAILED                                                 NTStatus      = 0xC0140003\n\tSTATUS_ACPI_INVALID_INDEX                                                 NTStatus      = 0xC0140004\n\tSTATUS_ACPI_INVALID_ARGUMENT                                              NTStatus      = 0xC0140005\n\tSTATUS_ACPI_FATAL                                                         NTStatus      = 0xC0140006\n\tSTATUS_ACPI_INVALID_SUPERNAME                                             NTStatus      = 0xC0140007\n\tSTATUS_ACPI_INVALID_ARGTYPE                                               NTStatus      = 0xC0140008\n\tSTATUS_ACPI_INVALID_OBJTYPE                                               NTStatus      = 0xC0140009\n\tSTATUS_ACPI_INVALID_TARGETTYPE                                            NTStatus      = 0xC014000A\n\tSTATUS_ACPI_INCORRECT_ARGUMENT_COUNT                                      NTStatus      = 0xC014000B\n\tSTATUS_ACPI_ADDRESS_NOT_MAPPED                                            NTStatus      = 0xC014000C\n\tSTATUS_ACPI_INVALID_EVENTTYPE                                             NTStatus      = 0xC014000D\n\tSTATUS_ACPI_HANDLER_COLLISION                                             NTStatus      = 0xC014000E\n\tSTATUS_ACPI_INVALID_DATA                                                  NTStatus      = 0xC014000F\n\tSTATUS_ACPI_INVALID_REGION                                                NTStatus      = 0xC0140010\n\tSTATUS_ACPI_INVALID_ACCESS_SIZE                                           NTStatus      = 0xC0140011\n\tSTATUS_ACPI_ACQUIRE_GLOBAL_LOCK                                           NTStatus      = 0xC0140012\n\tSTATUS_ACPI_ALREADY_INITIALIZED                                           NTStatus      = 0xC0140013\n\tSTATUS_ACPI_NOT_INITIALIZED                                               NTStatus      = 0xC0140014\n\tSTATUS_ACPI_INVALID_MUTEX_LEVEL                                           NTStatus      = 0xC0140015\n\tSTATUS_ACPI_MUTEX_NOT_OWNED                                               NTStatus      = 0xC0140016\n\tSTATUS_ACPI_MUTEX_NOT_OWNER                                               NTStatus      = 0xC0140017\n\tSTATUS_ACPI_RS_ACCESS                                                     NTStatus      = 0xC0140018\n\tSTATUS_ACPI_INVALID_TABLE                                                 NTStatus      = 0xC0140019\n\tSTATUS_ACPI_REG_HANDLER_FAILED                                            NTStatus      = 0xC0140020\n\tSTATUS_ACPI_POWER_REQUEST_FAILED                                          NTStatus      = 0xC0140021\n\tSTATUS_CTX_WINSTATION_NAME_INVALID                                        NTStatus      = 0xC00A0001\n\tSTATUS_CTX_INVALID_PD                                                     NTStatus      = 0xC00A0002\n\tSTATUS_CTX_PD_NOT_FOUND                                                   NTStatus      = 0xC00A0003\n\tSTATUS_CTX_CDM_CONNECT                                                    NTStatus      = 0x400A0004\n\tSTATUS_CTX_CDM_DISCONNECT                                                 NTStatus      = 0x400A0005\n\tSTATUS_CTX_CLOSE_PENDING                                                  NTStatus      = 0xC00A0006\n\tSTATUS_CTX_NO_OUTBUF                                                      NTStatus      = 0xC00A0007\n\tSTATUS_CTX_MODEM_INF_NOT_FOUND                                            NTStatus      = 0xC00A0008\n\tSTATUS_CTX_INVALID_MODEMNAME                                              NTStatus      = 0xC00A0009\n\tSTATUS_CTX_RESPONSE_ERROR                                                 NTStatus      = 0xC00A000A\n\tSTATUS_CTX_MODEM_RESPONSE_TIMEOUT                                         NTStatus      = 0xC00A000B\n\tSTATUS_CTX_MODEM_RESPONSE_NO_CARRIER                                      NTStatus      = 0xC00A000C\n\tSTATUS_CTX_MODEM_RESPONSE_NO_DIALTONE                                     NTStatus      = 0xC00A000D\n\tSTATUS_CTX_MODEM_RESPONSE_BUSY                                            NTStatus      = 0xC00A000E\n\tSTATUS_CTX_MODEM_RESPONSE_VOICE                                           NTStatus      = 0xC00A000F\n\tSTATUS_CTX_TD_ERROR                                                       NTStatus      = 0xC00A0010\n\tSTATUS_CTX_LICENSE_CLIENT_INVALID                                         NTStatus      = 0xC00A0012\n\tSTATUS_CTX_LICENSE_NOT_AVAILABLE                                          NTStatus      = 0xC00A0013\n\tSTATUS_CTX_LICENSE_EXPIRED                                                NTStatus      = 0xC00A0014\n\tSTATUS_CTX_WINSTATION_NOT_FOUND                                           NTStatus      = 0xC00A0015\n\tSTATUS_CTX_WINSTATION_NAME_COLLISION                                      NTStatus      = 0xC00A0016\n\tSTATUS_CTX_WINSTATION_BUSY                                                NTStatus      = 0xC00A0017\n\tSTATUS_CTX_BAD_VIDEO_MODE                                                 NTStatus      = 0xC00A0018\n\tSTATUS_CTX_GRAPHICS_INVALID                                               NTStatus      = 0xC00A0022\n\tSTATUS_CTX_NOT_CONSOLE                                                    NTStatus      = 0xC00A0024\n\tSTATUS_CTX_CLIENT_QUERY_TIMEOUT                                           NTStatus      = 0xC00A0026\n\tSTATUS_CTX_CONSOLE_DISCONNECT                                             NTStatus      = 0xC00A0027\n\tSTATUS_CTX_CONSOLE_CONNECT                                                NTStatus      = 0xC00A0028\n\tSTATUS_CTX_SHADOW_DENIED                                                  NTStatus      = 0xC00A002A\n\tSTATUS_CTX_WINSTATION_ACCESS_DENIED                                       NTStatus      = 0xC00A002B\n\tSTATUS_CTX_INVALID_WD                                                     NTStatus      = 0xC00A002E\n\tSTATUS_CTX_WD_NOT_FOUND                                                   NTStatus      = 0xC00A002F\n\tSTATUS_CTX_SHADOW_INVALID                                                 NTStatus      = 0xC00A0030\n\tSTATUS_CTX_SHADOW_DISABLED                                                NTStatus      = 0xC00A0031\n\tSTATUS_RDP_PROTOCOL_ERROR                                                 NTStatus      = 0xC00A0032\n\tSTATUS_CTX_CLIENT_LICENSE_NOT_SET                                         NTStatus      = 0xC00A0033\n\tSTATUS_CTX_CLIENT_LICENSE_IN_USE                                          NTStatus      = 0xC00A0034\n\tSTATUS_CTX_SHADOW_ENDED_BY_MODE_CHANGE                                    NTStatus      = 0xC00A0035\n\tSTATUS_CTX_SHADOW_NOT_RUNNING                                             NTStatus      = 0xC00A0036\n\tSTATUS_CTX_LOGON_DISABLED                                                 NTStatus      = 0xC00A0037\n\tSTATUS_CTX_SECURITY_LAYER_ERROR                                           NTStatus      = 0xC00A0038\n\tSTATUS_TS_INCOMPATIBLE_SESSIONS                                           NTStatus      = 0xC00A0039\n\tSTATUS_TS_VIDEO_SUBSYSTEM_ERROR                                           NTStatus      = 0xC00A003A\n\tSTATUS_PNP_BAD_MPS_TABLE                                                  NTStatus      = 0xC0040035\n\tSTATUS_PNP_TRANSLATION_FAILED                                             NTStatus      = 0xC0040036\n\tSTATUS_PNP_IRQ_TRANSLATION_FAILED                                         NTStatus      = 0xC0040037\n\tSTATUS_PNP_INVALID_ID                                                     NTStatus      = 0xC0040038\n\tSTATUS_IO_REISSUE_AS_CACHED                                               NTStatus      = 0xC0040039\n\tSTATUS_MUI_FILE_NOT_FOUND                                                 NTStatus      = 0xC00B0001\n\tSTATUS_MUI_INVALID_FILE                                                   NTStatus      = 0xC00B0002\n\tSTATUS_MUI_INVALID_RC_CONFIG                                              NTStatus      = 0xC00B0003\n\tSTATUS_MUI_INVALID_LOCALE_NAME                                            NTStatus      = 0xC00B0004\n\tSTATUS_MUI_INVALID_ULTIMATEFALLBACK_NAME                                  NTStatus      = 0xC00B0005\n\tSTATUS_MUI_FILE_NOT_LOADED                                                NTStatus      = 0xC00B0006\n\tSTATUS_RESOURCE_ENUM_USER_STOP                                            NTStatus      = 0xC00B0007\n\tSTATUS_FLT_NO_HANDLER_DEFINED                                             NTStatus      = 0xC01C0001\n\tSTATUS_FLT_CONTEXT_ALREADY_DEFINED                                        NTStatus      = 0xC01C0002\n\tSTATUS_FLT_INVALID_ASYNCHRONOUS_REQUEST                                   NTStatus      = 0xC01C0003\n\tSTATUS_FLT_DISALLOW_FAST_IO                                               NTStatus      = 0xC01C0004\n\tSTATUS_FLT_INVALID_NAME_REQUEST                                           NTStatus      = 0xC01C0005\n\tSTATUS_FLT_NOT_SAFE_TO_POST_OPERATION                                     NTStatus      = 0xC01C0006\n\tSTATUS_FLT_NOT_INITIALIZED                                                NTStatus      = 0xC01C0007\n\tSTATUS_FLT_FILTER_NOT_READY                                               NTStatus      = 0xC01C0008\n\tSTATUS_FLT_POST_OPERATION_CLEANUP                                         NTStatus      = 0xC01C0009\n\tSTATUS_FLT_INTERNAL_ERROR                                                 NTStatus      = 0xC01C000A\n\tSTATUS_FLT_DELETING_OBJECT                                                NTStatus      = 0xC01C000B\n\tSTATUS_FLT_MUST_BE_NONPAGED_POOL                                          NTStatus      = 0xC01C000C\n\tSTATUS_FLT_DUPLICATE_ENTRY                                                NTStatus      = 0xC01C000D\n\tSTATUS_FLT_CBDQ_DISABLED                                                  NTStatus      = 0xC01C000E\n\tSTATUS_FLT_DO_NOT_ATTACH                                                  NTStatus      = 0xC01C000F\n\tSTATUS_FLT_DO_NOT_DETACH                                                  NTStatus      = 0xC01C0010\n\tSTATUS_FLT_INSTANCE_ALTITUDE_COLLISION                                    NTStatus      = 0xC01C0011\n\tSTATUS_FLT_INSTANCE_NAME_COLLISION                                        NTStatus      = 0xC01C0012\n\tSTATUS_FLT_FILTER_NOT_FOUND                                               NTStatus      = 0xC01C0013\n\tSTATUS_FLT_VOLUME_NOT_FOUND                                               NTStatus      = 0xC01C0014\n\tSTATUS_FLT_INSTANCE_NOT_FOUND                                             NTStatus      = 0xC01C0015\n\tSTATUS_FLT_CONTEXT_ALLOCATION_NOT_FOUND                                   NTStatus      = 0xC01C0016\n\tSTATUS_FLT_INVALID_CONTEXT_REGISTRATION                                   NTStatus      = 0xC01C0017\n\tSTATUS_FLT_NAME_CACHE_MISS                                                NTStatus      = 0xC01C0018\n\tSTATUS_FLT_NO_DEVICE_OBJECT                                               NTStatus      = 0xC01C0019\n\tSTATUS_FLT_VOLUME_ALREADY_MOUNTED                                         NTStatus      = 0xC01C001A\n\tSTATUS_FLT_ALREADY_ENLISTED                                               NTStatus      = 0xC01C001B\n\tSTATUS_FLT_CONTEXT_ALREADY_LINKED                                         NTStatus      = 0xC01C001C\n\tSTATUS_FLT_NO_WAITER_FOR_REPLY                                            NTStatus      = 0xC01C0020\n\tSTATUS_FLT_REGISTRATION_BUSY                                              NTStatus      = 0xC01C0023\n\tSTATUS_SXS_SECTION_NOT_FOUND                                              NTStatus      = 0xC0150001\n\tSTATUS_SXS_CANT_GEN_ACTCTX                                                NTStatus      = 0xC0150002\n\tSTATUS_SXS_INVALID_ACTCTXDATA_FORMAT                                      NTStatus      = 0xC0150003\n\tSTATUS_SXS_ASSEMBLY_NOT_FOUND                                             NTStatus      = 0xC0150004\n\tSTATUS_SXS_MANIFEST_FORMAT_ERROR                                          NTStatus      = 0xC0150005\n\tSTATUS_SXS_MANIFEST_PARSE_ERROR                                           NTStatus      = 0xC0150006\n\tSTATUS_SXS_ACTIVATION_CONTEXT_DISABLED                                    NTStatus      = 0xC0150007\n\tSTATUS_SXS_KEY_NOT_FOUND                                                  NTStatus      = 0xC0150008\n\tSTATUS_SXS_VERSION_CONFLICT                                               NTStatus      = 0xC0150009\n\tSTATUS_SXS_WRONG_SECTION_TYPE                                             NTStatus      = 0xC015000A\n\tSTATUS_SXS_THREAD_QUERIES_DISABLED                                        NTStatus      = 0xC015000B\n\tSTATUS_SXS_ASSEMBLY_MISSING                                               NTStatus      = 0xC015000C\n\tSTATUS_SXS_RELEASE_ACTIVATION_CONTEXT                                     NTStatus      = 0x4015000D\n\tSTATUS_SXS_PROCESS_DEFAULT_ALREADY_SET                                    NTStatus      = 0xC015000E\n\tSTATUS_SXS_EARLY_DEACTIVATION                                             NTStatus      = 0xC015000F\n\tSTATUS_SXS_INVALID_DEACTIVATION                                           NTStatus      = 0xC0150010\n\tSTATUS_SXS_MULTIPLE_DEACTIVATION                                          NTStatus      = 0xC0150011\n\tSTATUS_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY                        NTStatus      = 0xC0150012\n\tSTATUS_SXS_PROCESS_TERMINATION_REQUESTED                                  NTStatus      = 0xC0150013\n\tSTATUS_SXS_CORRUPT_ACTIVATION_STACK                                       NTStatus      = 0xC0150014\n\tSTATUS_SXS_CORRUPTION                                                     NTStatus      = 0xC0150015\n\tSTATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE                               NTStatus      = 0xC0150016\n\tSTATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME                                NTStatus      = 0xC0150017\n\tSTATUS_SXS_IDENTITY_DUPLICATE_ATTRIBUTE                                   NTStatus      = 0xC0150018\n\tSTATUS_SXS_IDENTITY_PARSE_ERROR                                           NTStatus      = 0xC0150019\n\tSTATUS_SXS_COMPONENT_STORE_CORRUPT                                        NTStatus      = 0xC015001A\n\tSTATUS_SXS_FILE_HASH_MISMATCH                                             NTStatus      = 0xC015001B\n\tSTATUS_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT                  NTStatus      = 0xC015001C\n\tSTATUS_SXS_IDENTITIES_DIFFERENT                                           NTStatus      = 0xC015001D\n\tSTATUS_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT                                   NTStatus      = 0xC015001E\n\tSTATUS_SXS_FILE_NOT_PART_OF_ASSEMBLY                                      NTStatus      = 0xC015001F\n\tSTATUS_ADVANCED_INSTALLER_FAILED                                          NTStatus      = 0xC0150020\n\tSTATUS_XML_ENCODING_MISMATCH                                              NTStatus      = 0xC0150021\n\tSTATUS_SXS_MANIFEST_TOO_BIG                                               NTStatus      = 0xC0150022\n\tSTATUS_SXS_SETTING_NOT_REGISTERED                                         NTStatus      = 0xC0150023\n\tSTATUS_SXS_TRANSACTION_CLOSURE_INCOMPLETE                                 NTStatus      = 0xC0150024\n\tSTATUS_SMI_PRIMITIVE_INSTALLER_FAILED                                     NTStatus      = 0xC0150025\n\tSTATUS_GENERIC_COMMAND_FAILED                                             NTStatus      = 0xC0150026\n\tSTATUS_SXS_FILE_HASH_MISSING                                              NTStatus      = 0xC0150027\n\tSTATUS_CLUSTER_INVALID_NODE                                               NTStatus      = 0xC0130001\n\tSTATUS_CLUSTER_NODE_EXISTS                                                NTStatus      = 0xC0130002\n\tSTATUS_CLUSTER_JOIN_IN_PROGRESS                                           NTStatus      = 0xC0130003\n\tSTATUS_CLUSTER_NODE_NOT_FOUND                                             NTStatus      = 0xC0130004\n\tSTATUS_CLUSTER_LOCAL_NODE_NOT_FOUND                                       NTStatus      = 0xC0130005\n\tSTATUS_CLUSTER_NETWORK_EXISTS                                             NTStatus      = 0xC0130006\n\tSTATUS_CLUSTER_NETWORK_NOT_FOUND                                          NTStatus      = 0xC0130007\n\tSTATUS_CLUSTER_NETINTERFACE_EXISTS                                        NTStatus      = 0xC0130008\n\tSTATUS_CLUSTER_NETINTERFACE_NOT_FOUND                                     NTStatus      = 0xC0130009\n\tSTATUS_CLUSTER_INVALID_REQUEST                                            NTStatus      = 0xC013000A\n\tSTATUS_CLUSTER_INVALID_NETWORK_PROVIDER                                   NTStatus      = 0xC013000B\n\tSTATUS_CLUSTER_NODE_DOWN                                                  NTStatus      = 0xC013000C\n\tSTATUS_CLUSTER_NODE_UNREACHABLE                                           NTStatus      = 0xC013000D\n\tSTATUS_CLUSTER_NODE_NOT_MEMBER                                            NTStatus      = 0xC013000E\n\tSTATUS_CLUSTER_JOIN_NOT_IN_PROGRESS                                       NTStatus      = 0xC013000F\n\tSTATUS_CLUSTER_INVALID_NETWORK                                            NTStatus      = 0xC0130010\n\tSTATUS_CLUSTER_NO_NET_ADAPTERS                                            NTStatus      = 0xC0130011\n\tSTATUS_CLUSTER_NODE_UP                                                    NTStatus      = 0xC0130012\n\tSTATUS_CLUSTER_NODE_PAUSED                                                NTStatus      = 0xC0130013\n\tSTATUS_CLUSTER_NODE_NOT_PAUSED                                            NTStatus      = 0xC0130014\n\tSTATUS_CLUSTER_NO_SECURITY_CONTEXT                                        NTStatus      = 0xC0130015\n\tSTATUS_CLUSTER_NETWORK_NOT_INTERNAL                                       NTStatus      = 0xC0130016\n\tSTATUS_CLUSTER_POISONED                                                   NTStatus      = 0xC0130017\n\tSTATUS_CLUSTER_NON_CSV_PATH                                               NTStatus      = 0xC0130018\n\tSTATUS_CLUSTER_CSV_VOLUME_NOT_LOCAL                                       NTStatus      = 0xC0130019\n\tSTATUS_CLUSTER_CSV_READ_OPLOCK_BREAK_IN_PROGRESS                          NTStatus      = 0xC0130020\n\tSTATUS_CLUSTER_CSV_AUTO_PAUSE_ERROR                                       NTStatus      = 0xC0130021\n\tSTATUS_CLUSTER_CSV_REDIRECTED                                             NTStatus      = 0xC0130022\n\tSTATUS_CLUSTER_CSV_NOT_REDIRECTED                                         NTStatus      = 0xC0130023\n\tSTATUS_CLUSTER_CSV_VOLUME_DRAINING                                        NTStatus      = 0xC0130024\n\tSTATUS_CLUSTER_CSV_SNAPSHOT_CREATION_IN_PROGRESS                          NTStatus      = 0xC0130025\n\tSTATUS_CLUSTER_CSV_VOLUME_DRAINING_SUCCEEDED_DOWNLEVEL                    NTStatus      = 0xC0130026\n\tSTATUS_CLUSTER_CSV_NO_SNAPSHOTS                                           NTStatus      = 0xC0130027\n\tSTATUS_CSV_IO_PAUSE_TIMEOUT                                               NTStatus      = 0xC0130028\n\tSTATUS_CLUSTER_CSV_INVALID_HANDLE                                         NTStatus      = 0xC0130029\n\tSTATUS_CLUSTER_CSV_SUPPORTED_ONLY_ON_COORDINATOR                          NTStatus      = 0xC0130030\n\tSTATUS_CLUSTER_CAM_TICKET_REPLAY_DETECTED                                 NTStatus      = 0xC0130031\n\tSTATUS_TRANSACTIONAL_CONFLICT                                             NTStatus      = 0xC0190001\n\tSTATUS_INVALID_TRANSACTION                                                NTStatus      = 0xC0190002\n\tSTATUS_TRANSACTION_NOT_ACTIVE                                             NTStatus      = 0xC0190003\n\tSTATUS_TM_INITIALIZATION_FAILED                                           NTStatus      = 0xC0190004\n\tSTATUS_RM_NOT_ACTIVE                                                      NTStatus      = 0xC0190005\n\tSTATUS_RM_METADATA_CORRUPT                                                NTStatus      = 0xC0190006\n\tSTATUS_TRANSACTION_NOT_JOINED                                             NTStatus      = 0xC0190007\n\tSTATUS_DIRECTORY_NOT_RM                                                   NTStatus      = 0xC0190008\n\tSTATUS_COULD_NOT_RESIZE_LOG                                               NTStatus      = 0x80190009\n\tSTATUS_TRANSACTIONS_UNSUPPORTED_REMOTE                                    NTStatus      = 0xC019000A\n\tSTATUS_LOG_RESIZE_INVALID_SIZE                                            NTStatus      = 0xC019000B\n\tSTATUS_REMOTE_FILE_VERSION_MISMATCH                                       NTStatus      = 0xC019000C\n\tSTATUS_CRM_PROTOCOL_ALREADY_EXISTS                                        NTStatus      = 0xC019000F\n\tSTATUS_TRANSACTION_PROPAGATION_FAILED                                     NTStatus      = 0xC0190010\n\tSTATUS_CRM_PROTOCOL_NOT_FOUND                                             NTStatus      = 0xC0190011\n\tSTATUS_TRANSACTION_SUPERIOR_EXISTS                                        NTStatus      = 0xC0190012\n\tSTATUS_TRANSACTION_REQUEST_NOT_VALID                                      NTStatus      = 0xC0190013\n\tSTATUS_TRANSACTION_NOT_REQUESTED                                          NTStatus      = 0xC0190014\n\tSTATUS_TRANSACTION_ALREADY_ABORTED                                        NTStatus      = 0xC0190015\n\tSTATUS_TRANSACTION_ALREADY_COMMITTED                                      NTStatus      = 0xC0190016\n\tSTATUS_TRANSACTION_INVALID_MARSHALL_BUFFER                                NTStatus      = 0xC0190017\n\tSTATUS_CURRENT_TRANSACTION_NOT_VALID                                      NTStatus      = 0xC0190018\n\tSTATUS_LOG_GROWTH_FAILED                                                  NTStatus      = 0xC0190019\n\tSTATUS_OBJECT_NO_LONGER_EXISTS                                            NTStatus      = 0xC0190021\n\tSTATUS_STREAM_MINIVERSION_NOT_FOUND                                       NTStatus      = 0xC0190022\n\tSTATUS_STREAM_MINIVERSION_NOT_VALID                                       NTStatus      = 0xC0190023\n\tSTATUS_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION                NTStatus      = 0xC0190024\n\tSTATUS_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT                           NTStatus      = 0xC0190025\n\tSTATUS_CANT_CREATE_MORE_STREAM_MINIVERSIONS                               NTStatus      = 0xC0190026\n\tSTATUS_HANDLE_NO_LONGER_VALID                                             NTStatus      = 0xC0190028\n\tSTATUS_NO_TXF_METADATA                                                    NTStatus      = 0x80190029\n\tSTATUS_LOG_CORRUPTION_DETECTED                                            NTStatus      = 0xC0190030\n\tSTATUS_CANT_RECOVER_WITH_HANDLE_OPEN                                      NTStatus      = 0x80190031\n\tSTATUS_RM_DISCONNECTED                                                    NTStatus      = 0xC0190032\n\tSTATUS_ENLISTMENT_NOT_SUPERIOR                                            NTStatus      = 0xC0190033\n\tSTATUS_RECOVERY_NOT_NEEDED                                                NTStatus      = 0x40190034\n\tSTATUS_RM_ALREADY_STARTED                                                 NTStatus      = 0x40190035\n\tSTATUS_FILE_IDENTITY_NOT_PERSISTENT                                       NTStatus      = 0xC0190036\n\tSTATUS_CANT_BREAK_TRANSACTIONAL_DEPENDENCY                                NTStatus      = 0xC0190037\n\tSTATUS_CANT_CROSS_RM_BOUNDARY                                             NTStatus      = 0xC0190038\n\tSTATUS_TXF_DIR_NOT_EMPTY                                                  NTStatus      = 0xC0190039\n\tSTATUS_INDOUBT_TRANSACTIONS_EXIST                                         NTStatus      = 0xC019003A\n\tSTATUS_TM_VOLATILE                                                        NTStatus      = 0xC019003B\n\tSTATUS_ROLLBACK_TIMER_EXPIRED                                             NTStatus      = 0xC019003C\n\tSTATUS_TXF_ATTRIBUTE_CORRUPT                                              NTStatus      = 0xC019003D\n\tSTATUS_EFS_NOT_ALLOWED_IN_TRANSACTION                                     NTStatus      = 0xC019003E\n\tSTATUS_TRANSACTIONAL_OPEN_NOT_ALLOWED                                     NTStatus      = 0xC019003F\n\tSTATUS_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE                              NTStatus      = 0xC0190040\n\tSTATUS_TXF_METADATA_ALREADY_PRESENT                                       NTStatus      = 0x80190041\n\tSTATUS_TRANSACTION_SCOPE_CALLBACKS_NOT_SET                                NTStatus      = 0x80190042\n\tSTATUS_TRANSACTION_REQUIRED_PROMOTION                                     NTStatus      = 0xC0190043\n\tSTATUS_CANNOT_EXECUTE_FILE_IN_TRANSACTION                                 NTStatus      = 0xC0190044\n\tSTATUS_TRANSACTIONS_NOT_FROZEN                                            NTStatus      = 0xC0190045\n\tSTATUS_TRANSACTION_FREEZE_IN_PROGRESS                                     NTStatus      = 0xC0190046\n\tSTATUS_NOT_SNAPSHOT_VOLUME                                                NTStatus      = 0xC0190047\n\tSTATUS_NO_SAVEPOINT_WITH_OPEN_FILES                                       NTStatus      = 0xC0190048\n\tSTATUS_SPARSE_NOT_ALLOWED_IN_TRANSACTION                                  NTStatus      = 0xC0190049\n\tSTATUS_TM_IDENTITY_MISMATCH                                               NTStatus      = 0xC019004A\n\tSTATUS_FLOATED_SECTION                                                    NTStatus      = 0xC019004B\n\tSTATUS_CANNOT_ACCEPT_TRANSACTED_WORK                                      NTStatus      = 0xC019004C\n\tSTATUS_CANNOT_ABORT_TRANSACTIONS                                          NTStatus      = 0xC019004D\n\tSTATUS_TRANSACTION_NOT_FOUND                                              NTStatus      = 0xC019004E\n\tSTATUS_RESOURCEMANAGER_NOT_FOUND                                          NTStatus      = 0xC019004F\n\tSTATUS_ENLISTMENT_NOT_FOUND                                               NTStatus      = 0xC0190050\n\tSTATUS_TRANSACTIONMANAGER_NOT_FOUND                                       NTStatus      = 0xC0190051\n\tSTATUS_TRANSACTIONMANAGER_NOT_ONLINE                                      NTStatus      = 0xC0190052\n\tSTATUS_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION                         NTStatus      = 0xC0190053\n\tSTATUS_TRANSACTION_NOT_ROOT                                               NTStatus      = 0xC0190054\n\tSTATUS_TRANSACTION_OBJECT_EXPIRED                                         NTStatus      = 0xC0190055\n\tSTATUS_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION                             NTStatus      = 0xC0190056\n\tSTATUS_TRANSACTION_RESPONSE_NOT_ENLISTED                                  NTStatus      = 0xC0190057\n\tSTATUS_TRANSACTION_RECORD_TOO_LONG                                        NTStatus      = 0xC0190058\n\tSTATUS_NO_LINK_TRACKING_IN_TRANSACTION                                    NTStatus      = 0xC0190059\n\tSTATUS_OPERATION_NOT_SUPPORTED_IN_TRANSACTION                             NTStatus      = 0xC019005A\n\tSTATUS_TRANSACTION_INTEGRITY_VIOLATED                                     NTStatus      = 0xC019005B\n\tSTATUS_TRANSACTIONMANAGER_IDENTITY_MISMATCH                               NTStatus      = 0xC019005C\n\tSTATUS_RM_CANNOT_BE_FROZEN_FOR_SNAPSHOT                                   NTStatus      = 0xC019005D\n\tSTATUS_TRANSACTION_MUST_WRITETHROUGH                                      NTStatus      = 0xC019005E\n\tSTATUS_TRANSACTION_NO_SUPERIOR                                            NTStatus      = 0xC019005F\n\tSTATUS_EXPIRED_HANDLE                                                     NTStatus      = 0xC0190060\n\tSTATUS_TRANSACTION_NOT_ENLISTED                                           NTStatus      = 0xC0190061\n\tSTATUS_LOG_SECTOR_INVALID                                                 NTStatus      = 0xC01A0001\n\tSTATUS_LOG_SECTOR_PARITY_INVALID                                          NTStatus      = 0xC01A0002\n\tSTATUS_LOG_SECTOR_REMAPPED                                                NTStatus      = 0xC01A0003\n\tSTATUS_LOG_BLOCK_INCOMPLETE                                               NTStatus      = 0xC01A0004\n\tSTATUS_LOG_INVALID_RANGE                                                  NTStatus      = 0xC01A0005\n\tSTATUS_LOG_BLOCKS_EXHAUSTED                                               NTStatus      = 0xC01A0006\n\tSTATUS_LOG_READ_CONTEXT_INVALID                                           NTStatus      = 0xC01A0007\n\tSTATUS_LOG_RESTART_INVALID                                                NTStatus      = 0xC01A0008\n\tSTATUS_LOG_BLOCK_VERSION                                                  NTStatus      = 0xC01A0009\n\tSTATUS_LOG_BLOCK_INVALID                                                  NTStatus      = 0xC01A000A\n\tSTATUS_LOG_READ_MODE_INVALID                                              NTStatus      = 0xC01A000B\n\tSTATUS_LOG_NO_RESTART                                                     NTStatus      = 0x401A000C\n\tSTATUS_LOG_METADATA_CORRUPT                                               NTStatus      = 0xC01A000D\n\tSTATUS_LOG_METADATA_INVALID                                               NTStatus      = 0xC01A000E\n\tSTATUS_LOG_METADATA_INCONSISTENT                                          NTStatus      = 0xC01A000F\n\tSTATUS_LOG_RESERVATION_INVALID                                            NTStatus      = 0xC01A0010\n\tSTATUS_LOG_CANT_DELETE                                                    NTStatus      = 0xC01A0011\n\tSTATUS_LOG_CONTAINER_LIMIT_EXCEEDED                                       NTStatus      = 0xC01A0012\n\tSTATUS_LOG_START_OF_LOG                                                   NTStatus      = 0xC01A0013\n\tSTATUS_LOG_POLICY_ALREADY_INSTALLED                                       NTStatus      = 0xC01A0014\n\tSTATUS_LOG_POLICY_NOT_INSTALLED                                           NTStatus      = 0xC01A0015\n\tSTATUS_LOG_POLICY_INVALID                                                 NTStatus      = 0xC01A0016\n\tSTATUS_LOG_POLICY_CONFLICT                                                NTStatus      = 0xC01A0017\n\tSTATUS_LOG_PINNED_ARCHIVE_TAIL                                            NTStatus      = 0xC01A0018\n\tSTATUS_LOG_RECORD_NONEXISTENT                                             NTStatus      = 0xC01A0019\n\tSTATUS_LOG_RECORDS_RESERVED_INVALID                                       NTStatus      = 0xC01A001A\n\tSTATUS_LOG_SPACE_RESERVED_INVALID                                         NTStatus      = 0xC01A001B\n\tSTATUS_LOG_TAIL_INVALID                                                   NTStatus      = 0xC01A001C\n\tSTATUS_LOG_FULL                                                           NTStatus      = 0xC01A001D\n\tSTATUS_LOG_MULTIPLEXED                                                    NTStatus      = 0xC01A001E\n\tSTATUS_LOG_DEDICATED                                                      NTStatus      = 0xC01A001F\n\tSTATUS_LOG_ARCHIVE_NOT_IN_PROGRESS                                        NTStatus      = 0xC01A0020\n\tSTATUS_LOG_ARCHIVE_IN_PROGRESS                                            NTStatus      = 0xC01A0021\n\tSTATUS_LOG_EPHEMERAL                                                      NTStatus      = 0xC01A0022\n\tSTATUS_LOG_NOT_ENOUGH_CONTAINERS                                          NTStatus      = 0xC01A0023\n\tSTATUS_LOG_CLIENT_ALREADY_REGISTERED                                      NTStatus      = 0xC01A0024\n\tSTATUS_LOG_CLIENT_NOT_REGISTERED                                          NTStatus      = 0xC01A0025\n\tSTATUS_LOG_FULL_HANDLER_IN_PROGRESS                                       NTStatus      = 0xC01A0026\n\tSTATUS_LOG_CONTAINER_READ_FAILED                                          NTStatus      = 0xC01A0027\n\tSTATUS_LOG_CONTAINER_WRITE_FAILED                                         NTStatus      = 0xC01A0028\n\tSTATUS_LOG_CONTAINER_OPEN_FAILED                                          NTStatus      = 0xC01A0029\n\tSTATUS_LOG_CONTAINER_STATE_INVALID                                        NTStatus      = 0xC01A002A\n\tSTATUS_LOG_STATE_INVALID                                                  NTStatus      = 0xC01A002B\n\tSTATUS_LOG_PINNED                                                         NTStatus      = 0xC01A002C\n\tSTATUS_LOG_METADATA_FLUSH_FAILED                                          NTStatus      = 0xC01A002D\n\tSTATUS_LOG_INCONSISTENT_SECURITY                                          NTStatus      = 0xC01A002E\n\tSTATUS_LOG_APPENDED_FLUSH_FAILED                                          NTStatus      = 0xC01A002F\n\tSTATUS_LOG_PINNED_RESERVATION                                             NTStatus      = 0xC01A0030\n\tSTATUS_VIDEO_HUNG_DISPLAY_DRIVER_THREAD                                   NTStatus      = 0xC01B00EA\n\tSTATUS_VIDEO_HUNG_DISPLAY_DRIVER_THREAD_RECOVERED                         NTStatus      = 0x801B00EB\n\tSTATUS_VIDEO_DRIVER_DEBUG_REPORT_REQUEST                                  NTStatus      = 0x401B00EC\n\tSTATUS_MONITOR_NO_DESCRIPTOR                                              NTStatus      = 0xC01D0001\n\tSTATUS_MONITOR_UNKNOWN_DESCRIPTOR_FORMAT                                  NTStatus      = 0xC01D0002\n\tSTATUS_MONITOR_INVALID_DESCRIPTOR_CHECKSUM                                NTStatus      = 0xC01D0003\n\tSTATUS_MONITOR_INVALID_STANDARD_TIMING_BLOCK                              NTStatus      = 0xC01D0004\n\tSTATUS_MONITOR_WMI_DATABLOCK_REGISTRATION_FAILED                          NTStatus      = 0xC01D0005\n\tSTATUS_MONITOR_INVALID_SERIAL_NUMBER_MONDSC_BLOCK                         NTStatus      = 0xC01D0006\n\tSTATUS_MONITOR_INVALID_USER_FRIENDLY_MONDSC_BLOCK                         NTStatus      = 0xC01D0007\n\tSTATUS_MONITOR_NO_MORE_DESCRIPTOR_DATA                                    NTStatus      = 0xC01D0008\n\tSTATUS_MONITOR_INVALID_DETAILED_TIMING_BLOCK                              NTStatus      = 0xC01D0009\n\tSTATUS_MONITOR_INVALID_MANUFACTURE_DATE                                   NTStatus      = 0xC01D000A\n\tSTATUS_GRAPHICS_NOT_EXCLUSIVE_MODE_OWNER                                  NTStatus      = 0xC01E0000\n\tSTATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER                                   NTStatus      = 0xC01E0001\n\tSTATUS_GRAPHICS_INVALID_DISPLAY_ADAPTER                                   NTStatus      = 0xC01E0002\n\tSTATUS_GRAPHICS_ADAPTER_WAS_RESET                                         NTStatus      = 0xC01E0003\n\tSTATUS_GRAPHICS_INVALID_DRIVER_MODEL                                      NTStatus      = 0xC01E0004\n\tSTATUS_GRAPHICS_PRESENT_MODE_CHANGED                                      NTStatus      = 0xC01E0005\n\tSTATUS_GRAPHICS_PRESENT_OCCLUDED                                          NTStatus      = 0xC01E0006\n\tSTATUS_GRAPHICS_PRESENT_DENIED                                            NTStatus      = 0xC01E0007\n\tSTATUS_GRAPHICS_CANNOTCOLORCONVERT                                        NTStatus      = 0xC01E0008\n\tSTATUS_GRAPHICS_DRIVER_MISMATCH                                           NTStatus      = 0xC01E0009\n\tSTATUS_GRAPHICS_PARTIAL_DATA_POPULATED                                    NTStatus      = 0x401E000A\n\tSTATUS_GRAPHICS_PRESENT_REDIRECTION_DISABLED                              NTStatus      = 0xC01E000B\n\tSTATUS_GRAPHICS_PRESENT_UNOCCLUDED                                        NTStatus      = 0xC01E000C\n\tSTATUS_GRAPHICS_WINDOWDC_NOT_AVAILABLE                                    NTStatus      = 0xC01E000D\n\tSTATUS_GRAPHICS_WINDOWLESS_PRESENT_DISABLED                               NTStatus      = 0xC01E000E\n\tSTATUS_GRAPHICS_PRESENT_INVALID_WINDOW                                    NTStatus      = 0xC01E000F\n\tSTATUS_GRAPHICS_PRESENT_BUFFER_NOT_BOUND                                  NTStatus      = 0xC01E0010\n\tSTATUS_GRAPHICS_VAIL_STATE_CHANGED                                        NTStatus      = 0xC01E0011\n\tSTATUS_GRAPHICS_INDIRECT_DISPLAY_ABANDON_SWAPCHAIN                        NTStatus      = 0xC01E0012\n\tSTATUS_GRAPHICS_INDIRECT_DISPLAY_DEVICE_STOPPED                           NTStatus      = 0xC01E0013\n\tSTATUS_GRAPHICS_NO_VIDEO_MEMORY                                           NTStatus      = 0xC01E0100\n\tSTATUS_GRAPHICS_CANT_LOCK_MEMORY                                          NTStatus      = 0xC01E0101\n\tSTATUS_GRAPHICS_ALLOCATION_BUSY                                           NTStatus      = 0xC01E0102\n\tSTATUS_GRAPHICS_TOO_MANY_REFERENCES                                       NTStatus      = 0xC01E0103\n\tSTATUS_GRAPHICS_TRY_AGAIN_LATER                                           NTStatus      = 0xC01E0104\n\tSTATUS_GRAPHICS_TRY_AGAIN_NOW                                             NTStatus      = 0xC01E0105\n\tSTATUS_GRAPHICS_ALLOCATION_INVALID                                        NTStatus      = 0xC01E0106\n\tSTATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNAVAILABLE                          NTStatus      = 0xC01E0107\n\tSTATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNSUPPORTED                          NTStatus      = 0xC01E0108\n\tSTATUS_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION                              NTStatus      = 0xC01E0109\n\tSTATUS_GRAPHICS_INVALID_ALLOCATION_USAGE                                  NTStatus      = 0xC01E0110\n\tSTATUS_GRAPHICS_CANT_RENDER_LOCKED_ALLOCATION                             NTStatus      = 0xC01E0111\n\tSTATUS_GRAPHICS_ALLOCATION_CLOSED                                         NTStatus      = 0xC01E0112\n\tSTATUS_GRAPHICS_INVALID_ALLOCATION_INSTANCE                               NTStatus      = 0xC01E0113\n\tSTATUS_GRAPHICS_INVALID_ALLOCATION_HANDLE                                 NTStatus      = 0xC01E0114\n\tSTATUS_GRAPHICS_WRONG_ALLOCATION_DEVICE                                   NTStatus      = 0xC01E0115\n\tSTATUS_GRAPHICS_ALLOCATION_CONTENT_LOST                                   NTStatus      = 0xC01E0116\n\tSTATUS_GRAPHICS_GPU_EXCEPTION_ON_DEVICE                                   NTStatus      = 0xC01E0200\n\tSTATUS_GRAPHICS_SKIP_ALLOCATION_PREPARATION                               NTStatus      = 0x401E0201\n\tSTATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY                                    NTStatus      = 0xC01E0300\n\tSTATUS_GRAPHICS_VIDPN_TOPOLOGY_NOT_SUPPORTED                              NTStatus      = 0xC01E0301\n\tSTATUS_GRAPHICS_VIDPN_TOPOLOGY_CURRENTLY_NOT_SUPPORTED                    NTStatus      = 0xC01E0302\n\tSTATUS_GRAPHICS_INVALID_VIDPN                                             NTStatus      = 0xC01E0303\n\tSTATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE                              NTStatus      = 0xC01E0304\n\tSTATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET                              NTStatus      = 0xC01E0305\n\tSTATUS_GRAPHICS_VIDPN_MODALITY_NOT_SUPPORTED                              NTStatus      = 0xC01E0306\n\tSTATUS_GRAPHICS_MODE_NOT_PINNED                                           NTStatus      = 0x401E0307\n\tSTATUS_GRAPHICS_INVALID_VIDPN_SOURCEMODESET                               NTStatus      = 0xC01E0308\n\tSTATUS_GRAPHICS_INVALID_VIDPN_TARGETMODESET                               NTStatus      = 0xC01E0309\n\tSTATUS_GRAPHICS_INVALID_FREQUENCY                                         NTStatus      = 0xC01E030A\n\tSTATUS_GRAPHICS_INVALID_ACTIVE_REGION                                     NTStatus      = 0xC01E030B\n\tSTATUS_GRAPHICS_INVALID_TOTAL_REGION                                      NTStatus      = 0xC01E030C\n\tSTATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE_MODE                         NTStatus      = 0xC01E0310\n\tSTATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET_MODE                         NTStatus      = 0xC01E0311\n\tSTATUS_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET                            NTStatus      = 0xC01E0312\n\tSTATUS_GRAPHICS_PATH_ALREADY_IN_TOPOLOGY                                  NTStatus      = 0xC01E0313\n\tSTATUS_GRAPHICS_MODE_ALREADY_IN_MODESET                                   NTStatus      = 0xC01E0314\n\tSTATUS_GRAPHICS_INVALID_VIDEOPRESENTSOURCESET                             NTStatus      = 0xC01E0315\n\tSTATUS_GRAPHICS_INVALID_VIDEOPRESENTTARGETSET                             NTStatus      = 0xC01E0316\n\tSTATUS_GRAPHICS_SOURCE_ALREADY_IN_SET                                     NTStatus      = 0xC01E0317\n\tSTATUS_GRAPHICS_TARGET_ALREADY_IN_SET                                     NTStatus      = 0xC01E0318\n\tSTATUS_GRAPHICS_INVALID_VIDPN_PRESENT_PATH                                NTStatus      = 0xC01E0319\n\tSTATUS_GRAPHICS_NO_RECOMMENDED_VIDPN_TOPOLOGY                             NTStatus      = 0xC01E031A\n\tSTATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGESET                         NTStatus      = 0xC01E031B\n\tSTATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE                            NTStatus      = 0xC01E031C\n\tSTATUS_GRAPHICS_FREQUENCYRANGE_NOT_IN_SET                                 NTStatus      = 0xC01E031D\n\tSTATUS_GRAPHICS_NO_PREFERRED_MODE                                         NTStatus      = 0x401E031E\n\tSTATUS_GRAPHICS_FREQUENCYRANGE_ALREADY_IN_SET                             NTStatus      = 0xC01E031F\n\tSTATUS_GRAPHICS_STALE_MODESET                                             NTStatus      = 0xC01E0320\n\tSTATUS_GRAPHICS_INVALID_MONITOR_SOURCEMODESET                             NTStatus      = 0xC01E0321\n\tSTATUS_GRAPHICS_INVALID_MONITOR_SOURCE_MODE                               NTStatus      = 0xC01E0322\n\tSTATUS_GRAPHICS_NO_RECOMMENDED_FUNCTIONAL_VIDPN                           NTStatus      = 0xC01E0323\n\tSTATUS_GRAPHICS_MODE_ID_MUST_BE_UNIQUE                                    NTStatus      = 0xC01E0324\n\tSTATUS_GRAPHICS_EMPTY_ADAPTER_MONITOR_MODE_SUPPORT_INTERSECTION           NTStatus      = 0xC01E0325\n\tSTATUS_GRAPHICS_VIDEO_PRESENT_TARGETS_LESS_THAN_SOURCES                   NTStatus      = 0xC01E0326\n\tSTATUS_GRAPHICS_PATH_NOT_IN_TOPOLOGY                                      NTStatus      = 0xC01E0327\n\tSTATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_SOURCE                     NTStatus      = 0xC01E0328\n\tSTATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_TARGET                     NTStatus      = 0xC01E0329\n\tSTATUS_GRAPHICS_INVALID_MONITORDESCRIPTORSET                              NTStatus      = 0xC01E032A\n\tSTATUS_GRAPHICS_INVALID_MONITORDESCRIPTOR                                 NTStatus      = 0xC01E032B\n\tSTATUS_GRAPHICS_MONITORDESCRIPTOR_NOT_IN_SET                              NTStatus      = 0xC01E032C\n\tSTATUS_GRAPHICS_MONITORDESCRIPTOR_ALREADY_IN_SET                          NTStatus      = 0xC01E032D\n\tSTATUS_GRAPHICS_MONITORDESCRIPTOR_ID_MUST_BE_UNIQUE                       NTStatus      = 0xC01E032E\n\tSTATUS_GRAPHICS_INVALID_VIDPN_TARGET_SUBSET_TYPE                          NTStatus      = 0xC01E032F\n\tSTATUS_GRAPHICS_RESOURCES_NOT_RELATED                                     NTStatus      = 0xC01E0330\n\tSTATUS_GRAPHICS_SOURCE_ID_MUST_BE_UNIQUE                                  NTStatus      = 0xC01E0331\n\tSTATUS_GRAPHICS_TARGET_ID_MUST_BE_UNIQUE                                  NTStatus      = 0xC01E0332\n\tSTATUS_GRAPHICS_NO_AVAILABLE_VIDPN_TARGET                                 NTStatus      = 0xC01E0333\n\tSTATUS_GRAPHICS_MONITOR_COULD_NOT_BE_ASSOCIATED_WITH_ADAPTER              NTStatus      = 0xC01E0334\n\tSTATUS_GRAPHICS_NO_VIDPNMGR                                               NTStatus      = 0xC01E0335\n\tSTATUS_GRAPHICS_NO_ACTIVE_VIDPN                                           NTStatus      = 0xC01E0336\n\tSTATUS_GRAPHICS_STALE_VIDPN_TOPOLOGY                                      NTStatus      = 0xC01E0337\n\tSTATUS_GRAPHICS_MONITOR_NOT_CONNECTED                                     NTStatus      = 0xC01E0338\n\tSTATUS_GRAPHICS_SOURCE_NOT_IN_TOPOLOGY                                    NTStatus      = 0xC01E0339\n\tSTATUS_GRAPHICS_INVALID_PRIMARYSURFACE_SIZE                               NTStatus      = 0xC01E033A\n\tSTATUS_GRAPHICS_INVALID_VISIBLEREGION_SIZE                                NTStatus      = 0xC01E033B\n\tSTATUS_GRAPHICS_INVALID_STRIDE                                            NTStatus      = 0xC01E033C\n\tSTATUS_GRAPHICS_INVALID_PIXELFORMAT                                       NTStatus      = 0xC01E033D\n\tSTATUS_GRAPHICS_INVALID_COLORBASIS                                        NTStatus      = 0xC01E033E\n\tSTATUS_GRAPHICS_INVALID_PIXELVALUEACCESSMODE                              NTStatus      = 0xC01E033F\n\tSTATUS_GRAPHICS_TARGET_NOT_IN_TOPOLOGY                                    NTStatus      = 0xC01E0340\n\tSTATUS_GRAPHICS_NO_DISPLAY_MODE_MANAGEMENT_SUPPORT                        NTStatus      = 0xC01E0341\n\tSTATUS_GRAPHICS_VIDPN_SOURCE_IN_USE                                       NTStatus      = 0xC01E0342\n\tSTATUS_GRAPHICS_CANT_ACCESS_ACTIVE_VIDPN                                  NTStatus      = 0xC01E0343\n\tSTATUS_GRAPHICS_INVALID_PATH_IMPORTANCE_ORDINAL                           NTStatus      = 0xC01E0344\n\tSTATUS_GRAPHICS_INVALID_PATH_CONTENT_GEOMETRY_TRANSFORMATION              NTStatus      = 0xC01E0345\n\tSTATUS_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_SUPPORTED        NTStatus      = 0xC01E0346\n\tSTATUS_GRAPHICS_INVALID_GAMMA_RAMP                                        NTStatus      = 0xC01E0347\n\tSTATUS_GRAPHICS_GAMMA_RAMP_NOT_SUPPORTED                                  NTStatus      = 0xC01E0348\n\tSTATUS_GRAPHICS_MULTISAMPLING_NOT_SUPPORTED                               NTStatus      = 0xC01E0349\n\tSTATUS_GRAPHICS_MODE_NOT_IN_MODESET                                       NTStatus      = 0xC01E034A\n\tSTATUS_GRAPHICS_DATASET_IS_EMPTY                                          NTStatus      = 0x401E034B\n\tSTATUS_GRAPHICS_NO_MORE_ELEMENTS_IN_DATASET                               NTStatus      = 0x401E034C\n\tSTATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY_RECOMMENDATION_REASON              NTStatus      = 0xC01E034D\n\tSTATUS_GRAPHICS_INVALID_PATH_CONTENT_TYPE                                 NTStatus      = 0xC01E034E\n\tSTATUS_GRAPHICS_INVALID_COPYPROTECTION_TYPE                               NTStatus      = 0xC01E034F\n\tSTATUS_GRAPHICS_UNASSIGNED_MODESET_ALREADY_EXISTS                         NTStatus      = 0xC01E0350\n\tSTATUS_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_PINNED           NTStatus      = 0x401E0351\n\tSTATUS_GRAPHICS_INVALID_SCANLINE_ORDERING                                 NTStatus      = 0xC01E0352\n\tSTATUS_GRAPHICS_TOPOLOGY_CHANGES_NOT_ALLOWED                              NTStatus      = 0xC01E0353\n\tSTATUS_GRAPHICS_NO_AVAILABLE_IMPORTANCE_ORDINALS                          NTStatus      = 0xC01E0354\n\tSTATUS_GRAPHICS_INCOMPATIBLE_PRIVATE_FORMAT                               NTStatus      = 0xC01E0355\n\tSTATUS_GRAPHICS_INVALID_MODE_PRUNING_ALGORITHM                            NTStatus      = 0xC01E0356\n\tSTATUS_GRAPHICS_INVALID_MONITOR_CAPABILITY_ORIGIN                         NTStatus      = 0xC01E0357\n\tSTATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE_CONSTRAINT                 NTStatus      = 0xC01E0358\n\tSTATUS_GRAPHICS_MAX_NUM_PATHS_REACHED                                     NTStatus      = 0xC01E0359\n\tSTATUS_GRAPHICS_CANCEL_VIDPN_TOPOLOGY_AUGMENTATION                        NTStatus      = 0xC01E035A\n\tSTATUS_GRAPHICS_INVALID_CLIENT_TYPE                                       NTStatus      = 0xC01E035B\n\tSTATUS_GRAPHICS_CLIENTVIDPN_NOT_SET                                       NTStatus      = 0xC01E035C\n\tSTATUS_GRAPHICS_SPECIFIED_CHILD_ALREADY_CONNECTED                         NTStatus      = 0xC01E0400\n\tSTATUS_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED                            NTStatus      = 0xC01E0401\n\tSTATUS_GRAPHICS_UNKNOWN_CHILD_STATUS                                      NTStatus      = 0x401E042F\n\tSTATUS_GRAPHICS_NOT_A_LINKED_ADAPTER                                      NTStatus      = 0xC01E0430\n\tSTATUS_GRAPHICS_LEADLINK_NOT_ENUMERATED                                   NTStatus      = 0xC01E0431\n\tSTATUS_GRAPHICS_CHAINLINKS_NOT_ENUMERATED                                 NTStatus      = 0xC01E0432\n\tSTATUS_GRAPHICS_ADAPTER_CHAIN_NOT_READY                                   NTStatus      = 0xC01E0433\n\tSTATUS_GRAPHICS_CHAINLINKS_NOT_STARTED                                    NTStatus      = 0xC01E0434\n\tSTATUS_GRAPHICS_CHAINLINKS_NOT_POWERED_ON                                 NTStatus      = 0xC01E0435\n\tSTATUS_GRAPHICS_INCONSISTENT_DEVICE_LINK_STATE                            NTStatus      = 0xC01E0436\n\tSTATUS_GRAPHICS_LEADLINK_START_DEFERRED                                   NTStatus      = 0x401E0437\n\tSTATUS_GRAPHICS_NOT_POST_DEVICE_DRIVER                                    NTStatus      = 0xC01E0438\n\tSTATUS_GRAPHICS_POLLING_TOO_FREQUENTLY                                    NTStatus      = 0x401E0439\n\tSTATUS_GRAPHICS_START_DEFERRED                                            NTStatus      = 0x401E043A\n\tSTATUS_GRAPHICS_ADAPTER_ACCESS_NOT_EXCLUDED                               NTStatus      = 0xC01E043B\n\tSTATUS_GRAPHICS_DEPENDABLE_CHILD_STATUS                                   NTStatus      = 0x401E043C\n\tSTATUS_GRAPHICS_OPM_NOT_SUPPORTED                                         NTStatus      = 0xC01E0500\n\tSTATUS_GRAPHICS_COPP_NOT_SUPPORTED                                        NTStatus      = 0xC01E0501\n\tSTATUS_GRAPHICS_UAB_NOT_SUPPORTED                                         NTStatus      = 0xC01E0502\n\tSTATUS_GRAPHICS_OPM_INVALID_ENCRYPTED_PARAMETERS                          NTStatus      = 0xC01E0503\n\tSTATUS_GRAPHICS_OPM_NO_PROTECTED_OUTPUTS_EXIST                            NTStatus      = 0xC01E0505\n\tSTATUS_GRAPHICS_OPM_INTERNAL_ERROR                                        NTStatus      = 0xC01E050B\n\tSTATUS_GRAPHICS_OPM_INVALID_HANDLE                                        NTStatus      = 0xC01E050C\n\tSTATUS_GRAPHICS_PVP_INVALID_CERTIFICATE_LENGTH                            NTStatus      = 0xC01E050E\n\tSTATUS_GRAPHICS_OPM_SPANNING_MODE_ENABLED                                 NTStatus      = 0xC01E050F\n\tSTATUS_GRAPHICS_OPM_THEATER_MODE_ENABLED                                  NTStatus      = 0xC01E0510\n\tSTATUS_GRAPHICS_PVP_HFS_FAILED                                            NTStatus      = 0xC01E0511\n\tSTATUS_GRAPHICS_OPM_INVALID_SRM                                           NTStatus      = 0xC01E0512\n\tSTATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP                          NTStatus      = 0xC01E0513\n\tSTATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_ACP                           NTStatus      = 0xC01E0514\n\tSTATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_CGMSA                         NTStatus      = 0xC01E0515\n\tSTATUS_GRAPHICS_OPM_HDCP_SRM_NEVER_SET                                    NTStatus      = 0xC01E0516\n\tSTATUS_GRAPHICS_OPM_RESOLUTION_TOO_HIGH                                   NTStatus      = 0xC01E0517\n\tSTATUS_GRAPHICS_OPM_ALL_HDCP_HARDWARE_ALREADY_IN_USE                      NTStatus      = 0xC01E0518\n\tSTATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_NO_LONGER_EXISTS                     NTStatus      = 0xC01E051A\n\tSTATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_COPP_SEMANTICS         NTStatus      = 0xC01E051C\n\tSTATUS_GRAPHICS_OPM_INVALID_INFORMATION_REQUEST                           NTStatus      = 0xC01E051D\n\tSTATUS_GRAPHICS_OPM_DRIVER_INTERNAL_ERROR                                 NTStatus      = 0xC01E051E\n\tSTATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_OPM_SEMANTICS          NTStatus      = 0xC01E051F\n\tSTATUS_GRAPHICS_OPM_SIGNALING_NOT_SUPPORTED                               NTStatus      = 0xC01E0520\n\tSTATUS_GRAPHICS_OPM_INVALID_CONFIGURATION_REQUEST                         NTStatus      = 0xC01E0521\n\tSTATUS_GRAPHICS_I2C_NOT_SUPPORTED                                         NTStatus      = 0xC01E0580\n\tSTATUS_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST                                 NTStatus      = 0xC01E0581\n\tSTATUS_GRAPHICS_I2C_ERROR_TRANSMITTING_DATA                               NTStatus      = 0xC01E0582\n\tSTATUS_GRAPHICS_I2C_ERROR_RECEIVING_DATA                                  NTStatus      = 0xC01E0583\n\tSTATUS_GRAPHICS_DDCCI_VCP_NOT_SUPPORTED                                   NTStatus      = 0xC01E0584\n\tSTATUS_GRAPHICS_DDCCI_INVALID_DATA                                        NTStatus      = 0xC01E0585\n\tSTATUS_GRAPHICS_DDCCI_MONITOR_RETURNED_INVALID_TIMING_STATUS_BYTE         NTStatus      = 0xC01E0586\n\tSTATUS_GRAPHICS_DDCCI_INVALID_CAPABILITIES_STRING                         NTStatus      = 0xC01E0587\n\tSTATUS_GRAPHICS_MCA_INTERNAL_ERROR                                        NTStatus      = 0xC01E0588\n\tSTATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_COMMAND                             NTStatus      = 0xC01E0589\n\tSTATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_LENGTH                              NTStatus      = 0xC01E058A\n\tSTATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_CHECKSUM                            NTStatus      = 0xC01E058B\n\tSTATUS_GRAPHICS_INVALID_PHYSICAL_MONITOR_HANDLE                           NTStatus      = 0xC01E058C\n\tSTATUS_GRAPHICS_MONITOR_NO_LONGER_EXISTS                                  NTStatus      = 0xC01E058D\n\tSTATUS_GRAPHICS_ONLY_CONSOLE_SESSION_SUPPORTED                            NTStatus      = 0xC01E05E0\n\tSTATUS_GRAPHICS_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME                     NTStatus      = 0xC01E05E1\n\tSTATUS_GRAPHICS_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP                    NTStatus      = 0xC01E05E2\n\tSTATUS_GRAPHICS_MIRRORING_DEVICES_NOT_SUPPORTED                           NTStatus      = 0xC01E05E3\n\tSTATUS_GRAPHICS_INVALID_POINTER                                           NTStatus      = 0xC01E05E4\n\tSTATUS_GRAPHICS_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE                  NTStatus      = 0xC01E05E5\n\tSTATUS_GRAPHICS_PARAMETER_ARRAY_TOO_SMALL                                 NTStatus      = 0xC01E05E6\n\tSTATUS_GRAPHICS_INTERNAL_ERROR                                            NTStatus      = 0xC01E05E7\n\tSTATUS_GRAPHICS_SESSION_TYPE_CHANGE_IN_PROGRESS                           NTStatus      = 0xC01E05E8\n\tSTATUS_FVE_LOCKED_VOLUME                                                  NTStatus      = 0xC0210000\n\tSTATUS_FVE_NOT_ENCRYPTED                                                  NTStatus      = 0xC0210001\n\tSTATUS_FVE_BAD_INFORMATION                                                NTStatus      = 0xC0210002\n\tSTATUS_FVE_TOO_SMALL                                                      NTStatus      = 0xC0210003\n\tSTATUS_FVE_FAILED_WRONG_FS                                                NTStatus      = 0xC0210004\n\tSTATUS_FVE_BAD_PARTITION_SIZE                                             NTStatus      = 0xC0210005\n\tSTATUS_FVE_FS_NOT_EXTENDED                                                NTStatus      = 0xC0210006\n\tSTATUS_FVE_FS_MOUNTED                                                     NTStatus      = 0xC0210007\n\tSTATUS_FVE_NO_LICENSE                                                     NTStatus      = 0xC0210008\n\tSTATUS_FVE_ACTION_NOT_ALLOWED                                             NTStatus      = 0xC0210009\n\tSTATUS_FVE_BAD_DATA                                                       NTStatus      = 0xC021000A\n\tSTATUS_FVE_VOLUME_NOT_BOUND                                               NTStatus      = 0xC021000B\n\tSTATUS_FVE_NOT_DATA_VOLUME                                                NTStatus      = 0xC021000C\n\tSTATUS_FVE_CONV_READ_ERROR                                                NTStatus      = 0xC021000D\n\tSTATUS_FVE_CONV_WRITE_ERROR                                               NTStatus      = 0xC021000E\n\tSTATUS_FVE_OVERLAPPED_UPDATE                                              NTStatus      = 0xC021000F\n\tSTATUS_FVE_FAILED_SECTOR_SIZE                                             NTStatus      = 0xC0210010\n\tSTATUS_FVE_FAILED_AUTHENTICATION                                          NTStatus      = 0xC0210011\n\tSTATUS_FVE_NOT_OS_VOLUME                                                  NTStatus      = 0xC0210012\n\tSTATUS_FVE_KEYFILE_NOT_FOUND                                              NTStatus      = 0xC0210013\n\tSTATUS_FVE_KEYFILE_INVALID                                                NTStatus      = 0xC0210014\n\tSTATUS_FVE_KEYFILE_NO_VMK                                                 NTStatus      = 0xC0210015\n\tSTATUS_FVE_TPM_DISABLED                                                   NTStatus      = 0xC0210016\n\tSTATUS_FVE_TPM_SRK_AUTH_NOT_ZERO                                          NTStatus      = 0xC0210017\n\tSTATUS_FVE_TPM_INVALID_PCR                                                NTStatus      = 0xC0210018\n\tSTATUS_FVE_TPM_NO_VMK                                                     NTStatus      = 0xC0210019\n\tSTATUS_FVE_PIN_INVALID                                                    NTStatus      = 0xC021001A\n\tSTATUS_FVE_AUTH_INVALID_APPLICATION                                       NTStatus      = 0xC021001B\n\tSTATUS_FVE_AUTH_INVALID_CONFIG                                            NTStatus      = 0xC021001C\n\tSTATUS_FVE_DEBUGGER_ENABLED                                               NTStatus      = 0xC021001D\n\tSTATUS_FVE_DRY_RUN_FAILED                                                 NTStatus      = 0xC021001E\n\tSTATUS_FVE_BAD_METADATA_POINTER                                           NTStatus      = 0xC021001F\n\tSTATUS_FVE_OLD_METADATA_COPY                                              NTStatus      = 0xC0210020\n\tSTATUS_FVE_REBOOT_REQUIRED                                                NTStatus      = 0xC0210021\n\tSTATUS_FVE_RAW_ACCESS                                                     NTStatus      = 0xC0210022\n\tSTATUS_FVE_RAW_BLOCKED                                                    NTStatus      = 0xC0210023\n\tSTATUS_FVE_NO_AUTOUNLOCK_MASTER_KEY                                       NTStatus      = 0xC0210024\n\tSTATUS_FVE_MOR_FAILED                                                     NTStatus      = 0xC0210025\n\tSTATUS_FVE_NO_FEATURE_LICENSE                                             NTStatus      = 0xC0210026\n\tSTATUS_FVE_POLICY_USER_DISABLE_RDV_NOT_ALLOWED                            NTStatus      = 0xC0210027\n\tSTATUS_FVE_CONV_RECOVERY_FAILED                                           NTStatus      = 0xC0210028\n\tSTATUS_FVE_VIRTUALIZED_SPACE_TOO_BIG                                      NTStatus      = 0xC0210029\n\tSTATUS_FVE_INVALID_DATUM_TYPE                                             NTStatus      = 0xC021002A\n\tSTATUS_FVE_VOLUME_TOO_SMALL                                               NTStatus      = 0xC0210030\n\tSTATUS_FVE_ENH_PIN_INVALID                                                NTStatus      = 0xC0210031\n\tSTATUS_FVE_FULL_ENCRYPTION_NOT_ALLOWED_ON_TP_STORAGE                      NTStatus      = 0xC0210032\n\tSTATUS_FVE_WIPE_NOT_ALLOWED_ON_TP_STORAGE                                 NTStatus      = 0xC0210033\n\tSTATUS_FVE_NOT_ALLOWED_ON_CSV_STACK                                       NTStatus      = 0xC0210034\n\tSTATUS_FVE_NOT_ALLOWED_ON_CLUSTER                                         NTStatus      = 0xC0210035\n\tSTATUS_FVE_NOT_ALLOWED_TO_UPGRADE_WHILE_CONVERTING                        NTStatus      = 0xC0210036\n\tSTATUS_FVE_WIPE_CANCEL_NOT_APPLICABLE                                     NTStatus      = 0xC0210037\n\tSTATUS_FVE_EDRIVE_DRY_RUN_FAILED                                          NTStatus      = 0xC0210038\n\tSTATUS_FVE_SECUREBOOT_DISABLED                                            NTStatus      = 0xC0210039\n\tSTATUS_FVE_SECUREBOOT_CONFIG_CHANGE                                       NTStatus      = 0xC021003A\n\tSTATUS_FVE_DEVICE_LOCKEDOUT                                               NTStatus      = 0xC021003B\n\tSTATUS_FVE_VOLUME_EXTEND_PREVENTS_EOW_DECRYPT                             NTStatus      = 0xC021003C\n\tSTATUS_FVE_NOT_DE_VOLUME                                                  NTStatus      = 0xC021003D\n\tSTATUS_FVE_PROTECTION_DISABLED                                            NTStatus      = 0xC021003E\n\tSTATUS_FVE_PROTECTION_CANNOT_BE_DISABLED                                  NTStatus      = 0xC021003F\n\tSTATUS_FVE_OSV_KSR_NOT_ALLOWED                                            NTStatus      = 0xC0210040\n\tSTATUS_FWP_CALLOUT_NOT_FOUND                                              NTStatus      = 0xC0220001\n\tSTATUS_FWP_CONDITION_NOT_FOUND                                            NTStatus      = 0xC0220002\n\tSTATUS_FWP_FILTER_NOT_FOUND                                               NTStatus      = 0xC0220003\n\tSTATUS_FWP_LAYER_NOT_FOUND                                                NTStatus      = 0xC0220004\n\tSTATUS_FWP_PROVIDER_NOT_FOUND                                             NTStatus      = 0xC0220005\n\tSTATUS_FWP_PROVIDER_CONTEXT_NOT_FOUND                                     NTStatus      = 0xC0220006\n\tSTATUS_FWP_SUBLAYER_NOT_FOUND                                             NTStatus      = 0xC0220007\n\tSTATUS_FWP_NOT_FOUND                                                      NTStatus      = 0xC0220008\n\tSTATUS_FWP_ALREADY_EXISTS                                                 NTStatus      = 0xC0220009\n\tSTATUS_FWP_IN_USE                                                         NTStatus      = 0xC022000A\n\tSTATUS_FWP_DYNAMIC_SESSION_IN_PROGRESS                                    NTStatus      = 0xC022000B\n\tSTATUS_FWP_WRONG_SESSION                                                  NTStatus      = 0xC022000C\n\tSTATUS_FWP_NO_TXN_IN_PROGRESS                                             NTStatus      = 0xC022000D\n\tSTATUS_FWP_TXN_IN_PROGRESS                                                NTStatus      = 0xC022000E\n\tSTATUS_FWP_TXN_ABORTED                                                    NTStatus      = 0xC022000F\n\tSTATUS_FWP_SESSION_ABORTED                                                NTStatus      = 0xC0220010\n\tSTATUS_FWP_INCOMPATIBLE_TXN                                               NTStatus      = 0xC0220011\n\tSTATUS_FWP_TIMEOUT                                                        NTStatus      = 0xC0220012\n\tSTATUS_FWP_NET_EVENTS_DISABLED                                            NTStatus      = 0xC0220013\n\tSTATUS_FWP_INCOMPATIBLE_LAYER                                             NTStatus      = 0xC0220014\n\tSTATUS_FWP_KM_CLIENTS_ONLY                                                NTStatus      = 0xC0220015\n\tSTATUS_FWP_LIFETIME_MISMATCH                                              NTStatus      = 0xC0220016\n\tSTATUS_FWP_BUILTIN_OBJECT                                                 NTStatus      = 0xC0220017\n\tSTATUS_FWP_TOO_MANY_CALLOUTS                                              NTStatus      = 0xC0220018\n\tSTATUS_FWP_NOTIFICATION_DROPPED                                           NTStatus      = 0xC0220019\n\tSTATUS_FWP_TRAFFIC_MISMATCH                                               NTStatus      = 0xC022001A\n\tSTATUS_FWP_INCOMPATIBLE_SA_STATE                                          NTStatus      = 0xC022001B\n\tSTATUS_FWP_NULL_POINTER                                                   NTStatus      = 0xC022001C\n\tSTATUS_FWP_INVALID_ENUMERATOR                                             NTStatus      = 0xC022001D\n\tSTATUS_FWP_INVALID_FLAGS                                                  NTStatus      = 0xC022001E\n\tSTATUS_FWP_INVALID_NET_MASK                                               NTStatus      = 0xC022001F\n\tSTATUS_FWP_INVALID_RANGE                                                  NTStatus      = 0xC0220020\n\tSTATUS_FWP_INVALID_INTERVAL                                               NTStatus      = 0xC0220021\n\tSTATUS_FWP_ZERO_LENGTH_ARRAY                                              NTStatus      = 0xC0220022\n\tSTATUS_FWP_NULL_DISPLAY_NAME                                              NTStatus      = 0xC0220023\n\tSTATUS_FWP_INVALID_ACTION_TYPE                                            NTStatus      = 0xC0220024\n\tSTATUS_FWP_INVALID_WEIGHT                                                 NTStatus      = 0xC0220025\n\tSTATUS_FWP_MATCH_TYPE_MISMATCH                                            NTStatus      = 0xC0220026\n\tSTATUS_FWP_TYPE_MISMATCH                                                  NTStatus      = 0xC0220027\n\tSTATUS_FWP_OUT_OF_BOUNDS                                                  NTStatus      = 0xC0220028\n\tSTATUS_FWP_RESERVED                                                       NTStatus      = 0xC0220029\n\tSTATUS_FWP_DUPLICATE_CONDITION                                            NTStatus      = 0xC022002A\n\tSTATUS_FWP_DUPLICATE_KEYMOD                                               NTStatus      = 0xC022002B\n\tSTATUS_FWP_ACTION_INCOMPATIBLE_WITH_LAYER                                 NTStatus      = 0xC022002C\n\tSTATUS_FWP_ACTION_INCOMPATIBLE_WITH_SUBLAYER                              NTStatus      = 0xC022002D\n\tSTATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_LAYER                                NTStatus      = 0xC022002E\n\tSTATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_CALLOUT                              NTStatus      = 0xC022002F\n\tSTATUS_FWP_INCOMPATIBLE_AUTH_METHOD                                       NTStatus      = 0xC0220030\n\tSTATUS_FWP_INCOMPATIBLE_DH_GROUP                                          NTStatus      = 0xC0220031\n\tSTATUS_FWP_EM_NOT_SUPPORTED                                               NTStatus      = 0xC0220032\n\tSTATUS_FWP_NEVER_MATCH                                                    NTStatus      = 0xC0220033\n\tSTATUS_FWP_PROVIDER_CONTEXT_MISMATCH                                      NTStatus      = 0xC0220034\n\tSTATUS_FWP_INVALID_PARAMETER                                              NTStatus      = 0xC0220035\n\tSTATUS_FWP_TOO_MANY_SUBLAYERS                                             NTStatus      = 0xC0220036\n\tSTATUS_FWP_CALLOUT_NOTIFICATION_FAILED                                    NTStatus      = 0xC0220037\n\tSTATUS_FWP_INVALID_AUTH_TRANSFORM                                         NTStatus      = 0xC0220038\n\tSTATUS_FWP_INVALID_CIPHER_TRANSFORM                                       NTStatus      = 0xC0220039\n\tSTATUS_FWP_INCOMPATIBLE_CIPHER_TRANSFORM                                  NTStatus      = 0xC022003A\n\tSTATUS_FWP_INVALID_TRANSFORM_COMBINATION                                  NTStatus      = 0xC022003B\n\tSTATUS_FWP_DUPLICATE_AUTH_METHOD                                          NTStatus      = 0xC022003C\n\tSTATUS_FWP_INVALID_TUNNEL_ENDPOINT                                        NTStatus      = 0xC022003D\n\tSTATUS_FWP_L2_DRIVER_NOT_READY                                            NTStatus      = 0xC022003E\n\tSTATUS_FWP_KEY_DICTATOR_ALREADY_REGISTERED                                NTStatus      = 0xC022003F\n\tSTATUS_FWP_KEY_DICTATION_INVALID_KEYING_MATERIAL                          NTStatus      = 0xC0220040\n\tSTATUS_FWP_CONNECTIONS_DISABLED                                           NTStatus      = 0xC0220041\n\tSTATUS_FWP_INVALID_DNS_NAME                                               NTStatus      = 0xC0220042\n\tSTATUS_FWP_STILL_ON                                                       NTStatus      = 0xC0220043\n\tSTATUS_FWP_IKEEXT_NOT_RUNNING                                             NTStatus      = 0xC0220044\n\tSTATUS_FWP_TCPIP_NOT_READY                                                NTStatus      = 0xC0220100\n\tSTATUS_FWP_INJECT_HANDLE_CLOSING                                          NTStatus      = 0xC0220101\n\tSTATUS_FWP_INJECT_HANDLE_STALE                                            NTStatus      = 0xC0220102\n\tSTATUS_FWP_CANNOT_PEND                                                    NTStatus      = 0xC0220103\n\tSTATUS_FWP_DROP_NOICMP                                                    NTStatus      = 0xC0220104\n\tSTATUS_NDIS_CLOSING                                                       NTStatus      = 0xC0230002\n\tSTATUS_NDIS_BAD_VERSION                                                   NTStatus      = 0xC0230004\n\tSTATUS_NDIS_BAD_CHARACTERISTICS                                           NTStatus      = 0xC0230005\n\tSTATUS_NDIS_ADAPTER_NOT_FOUND                                             NTStatus      = 0xC0230006\n\tSTATUS_NDIS_OPEN_FAILED                                                   NTStatus      = 0xC0230007\n\tSTATUS_NDIS_DEVICE_FAILED                                                 NTStatus      = 0xC0230008\n\tSTATUS_NDIS_MULTICAST_FULL                                                NTStatus      = 0xC0230009\n\tSTATUS_NDIS_MULTICAST_EXISTS                                              NTStatus      = 0xC023000A\n\tSTATUS_NDIS_MULTICAST_NOT_FOUND                                           NTStatus      = 0xC023000B\n\tSTATUS_NDIS_REQUEST_ABORTED                                               NTStatus      = 0xC023000C\n\tSTATUS_NDIS_RESET_IN_PROGRESS                                             NTStatus      = 0xC023000D\n\tSTATUS_NDIS_NOT_SUPPORTED                                                 NTStatus      = 0xC02300BB\n\tSTATUS_NDIS_INVALID_PACKET                                                NTStatus      = 0xC023000F\n\tSTATUS_NDIS_ADAPTER_NOT_READY                                             NTStatus      = 0xC0230011\n\tSTATUS_NDIS_INVALID_LENGTH                                                NTStatus      = 0xC0230014\n\tSTATUS_NDIS_INVALID_DATA                                                  NTStatus      = 0xC0230015\n\tSTATUS_NDIS_BUFFER_TOO_SHORT                                              NTStatus      = 0xC0230016\n\tSTATUS_NDIS_INVALID_OID                                                   NTStatus      = 0xC0230017\n\tSTATUS_NDIS_ADAPTER_REMOVED                                               NTStatus      = 0xC0230018\n\tSTATUS_NDIS_UNSUPPORTED_MEDIA                                             NTStatus      = 0xC0230019\n\tSTATUS_NDIS_GROUP_ADDRESS_IN_USE                                          NTStatus      = 0xC023001A\n\tSTATUS_NDIS_FILE_NOT_FOUND                                                NTStatus      = 0xC023001B\n\tSTATUS_NDIS_ERROR_READING_FILE                                            NTStatus      = 0xC023001C\n\tSTATUS_NDIS_ALREADY_MAPPED                                                NTStatus      = 0xC023001D\n\tSTATUS_NDIS_RESOURCE_CONFLICT                                             NTStatus      = 0xC023001E\n\tSTATUS_NDIS_MEDIA_DISCONNECTED                                            NTStatus      = 0xC023001F\n\tSTATUS_NDIS_INVALID_ADDRESS                                               NTStatus      = 0xC0230022\n\tSTATUS_NDIS_INVALID_DEVICE_REQUEST                                        NTStatus      = 0xC0230010\n\tSTATUS_NDIS_PAUSED                                                        NTStatus      = 0xC023002A\n\tSTATUS_NDIS_INTERFACE_NOT_FOUND                                           NTStatus      = 0xC023002B\n\tSTATUS_NDIS_UNSUPPORTED_REVISION                                          NTStatus      = 0xC023002C\n\tSTATUS_NDIS_INVALID_PORT                                                  NTStatus      = 0xC023002D\n\tSTATUS_NDIS_INVALID_PORT_STATE                                            NTStatus      = 0xC023002E\n\tSTATUS_NDIS_LOW_POWER_STATE                                               NTStatus      = 0xC023002F\n\tSTATUS_NDIS_REINIT_REQUIRED                                               NTStatus      = 0xC0230030\n\tSTATUS_NDIS_NO_QUEUES                                                     NTStatus      = 0xC0230031\n\tSTATUS_NDIS_DOT11_AUTO_CONFIG_ENABLED                                     NTStatus      = 0xC0232000\n\tSTATUS_NDIS_DOT11_MEDIA_IN_USE                                            NTStatus      = 0xC0232001\n\tSTATUS_NDIS_DOT11_POWER_STATE_INVALID                                     NTStatus      = 0xC0232002\n\tSTATUS_NDIS_PM_WOL_PATTERN_LIST_FULL                                      NTStatus      = 0xC0232003\n\tSTATUS_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL                                 NTStatus      = 0xC0232004\n\tSTATUS_NDIS_DOT11_AP_CHANNEL_CURRENTLY_NOT_AVAILABLE                      NTStatus      = 0xC0232005\n\tSTATUS_NDIS_DOT11_AP_BAND_CURRENTLY_NOT_AVAILABLE                         NTStatus      = 0xC0232006\n\tSTATUS_NDIS_DOT11_AP_CHANNEL_NOT_ALLOWED                                  NTStatus      = 0xC0232007\n\tSTATUS_NDIS_DOT11_AP_BAND_NOT_ALLOWED                                     NTStatus      = 0xC0232008\n\tSTATUS_NDIS_INDICATION_REQUIRED                                           NTStatus      = 0x40230001\n\tSTATUS_NDIS_OFFLOAD_POLICY                                                NTStatus      = 0xC023100F\n\tSTATUS_NDIS_OFFLOAD_CONNECTION_REJECTED                                   NTStatus      = 0xC0231012\n\tSTATUS_NDIS_OFFLOAD_PATH_REJECTED                                         NTStatus      = 0xC0231013\n\tSTATUS_TPM_ERROR_MASK                                                     NTStatus      = 0xC0290000\n\tSTATUS_TPM_AUTHFAIL                                                       NTStatus      = 0xC0290001\n\tSTATUS_TPM_BADINDEX                                                       NTStatus      = 0xC0290002\n\tSTATUS_TPM_BAD_PARAMETER                                                  NTStatus      = 0xC0290003\n\tSTATUS_TPM_AUDITFAILURE                                                   NTStatus      = 0xC0290004\n\tSTATUS_TPM_CLEAR_DISABLED                                                 NTStatus      = 0xC0290005\n\tSTATUS_TPM_DEACTIVATED                                                    NTStatus      = 0xC0290006\n\tSTATUS_TPM_DISABLED                                                       NTStatus      = 0xC0290007\n\tSTATUS_TPM_DISABLED_CMD                                                   NTStatus      = 0xC0290008\n\tSTATUS_TPM_FAIL                                                           NTStatus      = 0xC0290009\n\tSTATUS_TPM_BAD_ORDINAL                                                    NTStatus      = 0xC029000A\n\tSTATUS_TPM_INSTALL_DISABLED                                               NTStatus      = 0xC029000B\n\tSTATUS_TPM_INVALID_KEYHANDLE                                              NTStatus      = 0xC029000C\n\tSTATUS_TPM_KEYNOTFOUND                                                    NTStatus      = 0xC029000D\n\tSTATUS_TPM_INAPPROPRIATE_ENC                                              NTStatus      = 0xC029000E\n\tSTATUS_TPM_MIGRATEFAIL                                                    NTStatus      = 0xC029000F\n\tSTATUS_TPM_INVALID_PCR_INFO                                               NTStatus      = 0xC0290010\n\tSTATUS_TPM_NOSPACE                                                        NTStatus      = 0xC0290011\n\tSTATUS_TPM_NOSRK                                                          NTStatus      = 0xC0290012\n\tSTATUS_TPM_NOTSEALED_BLOB                                                 NTStatus      = 0xC0290013\n\tSTATUS_TPM_OWNER_SET                                                      NTStatus      = 0xC0290014\n\tSTATUS_TPM_RESOURCES                                                      NTStatus      = 0xC0290015\n\tSTATUS_TPM_SHORTRANDOM                                                    NTStatus      = 0xC0290016\n\tSTATUS_TPM_SIZE                                                           NTStatus      = 0xC0290017\n\tSTATUS_TPM_WRONGPCRVAL                                                    NTStatus      = 0xC0290018\n\tSTATUS_TPM_BAD_PARAM_SIZE                                                 NTStatus      = 0xC0290019\n\tSTATUS_TPM_SHA_THREAD                                                     NTStatus      = 0xC029001A\n\tSTATUS_TPM_SHA_ERROR                                                      NTStatus      = 0xC029001B\n\tSTATUS_TPM_FAILEDSELFTEST                                                 NTStatus      = 0xC029001C\n\tSTATUS_TPM_AUTH2FAIL                                                      NTStatus      = 0xC029001D\n\tSTATUS_TPM_BADTAG                                                         NTStatus      = 0xC029001E\n\tSTATUS_TPM_IOERROR                                                        NTStatus      = 0xC029001F\n\tSTATUS_TPM_ENCRYPT_ERROR                                                  NTStatus      = 0xC0290020\n\tSTATUS_TPM_DECRYPT_ERROR                                                  NTStatus      = 0xC0290021\n\tSTATUS_TPM_INVALID_AUTHHANDLE                                             NTStatus      = 0xC0290022\n\tSTATUS_TPM_NO_ENDORSEMENT                                                 NTStatus      = 0xC0290023\n\tSTATUS_TPM_INVALID_KEYUSAGE                                               NTStatus      = 0xC0290024\n\tSTATUS_TPM_WRONG_ENTITYTYPE                                               NTStatus      = 0xC0290025\n\tSTATUS_TPM_INVALID_POSTINIT                                               NTStatus      = 0xC0290026\n\tSTATUS_TPM_INAPPROPRIATE_SIG                                              NTStatus      = 0xC0290027\n\tSTATUS_TPM_BAD_KEY_PROPERTY                                               NTStatus      = 0xC0290028\n\tSTATUS_TPM_BAD_MIGRATION                                                  NTStatus      = 0xC0290029\n\tSTATUS_TPM_BAD_SCHEME                                                     NTStatus      = 0xC029002A\n\tSTATUS_TPM_BAD_DATASIZE                                                   NTStatus      = 0xC029002B\n\tSTATUS_TPM_BAD_MODE                                                       NTStatus      = 0xC029002C\n\tSTATUS_TPM_BAD_PRESENCE                                                   NTStatus      = 0xC029002D\n\tSTATUS_TPM_BAD_VERSION                                                    NTStatus      = 0xC029002E\n\tSTATUS_TPM_NO_WRAP_TRANSPORT                                              NTStatus      = 0xC029002F\n\tSTATUS_TPM_AUDITFAIL_UNSUCCESSFUL                                         NTStatus      = 0xC0290030\n\tSTATUS_TPM_AUDITFAIL_SUCCESSFUL                                           NTStatus      = 0xC0290031\n\tSTATUS_TPM_NOTRESETABLE                                                   NTStatus      = 0xC0290032\n\tSTATUS_TPM_NOTLOCAL                                                       NTStatus      = 0xC0290033\n\tSTATUS_TPM_BAD_TYPE                                                       NTStatus      = 0xC0290034\n\tSTATUS_TPM_INVALID_RESOURCE                                               NTStatus      = 0xC0290035\n\tSTATUS_TPM_NOTFIPS                                                        NTStatus      = 0xC0290036\n\tSTATUS_TPM_INVALID_FAMILY                                                 NTStatus      = 0xC0290037\n\tSTATUS_TPM_NO_NV_PERMISSION                                               NTStatus      = 0xC0290038\n\tSTATUS_TPM_REQUIRES_SIGN                                                  NTStatus      = 0xC0290039\n\tSTATUS_TPM_KEY_NOTSUPPORTED                                               NTStatus      = 0xC029003A\n\tSTATUS_TPM_AUTH_CONFLICT                                                  NTStatus      = 0xC029003B\n\tSTATUS_TPM_AREA_LOCKED                                                    NTStatus      = 0xC029003C\n\tSTATUS_TPM_BAD_LOCALITY                                                   NTStatus      = 0xC029003D\n\tSTATUS_TPM_READ_ONLY                                                      NTStatus      = 0xC029003E\n\tSTATUS_TPM_PER_NOWRITE                                                    NTStatus      = 0xC029003F\n\tSTATUS_TPM_FAMILYCOUNT                                                    NTStatus      = 0xC0290040\n\tSTATUS_TPM_WRITE_LOCKED                                                   NTStatus      = 0xC0290041\n\tSTATUS_TPM_BAD_ATTRIBUTES                                                 NTStatus      = 0xC0290042\n\tSTATUS_TPM_INVALID_STRUCTURE                                              NTStatus      = 0xC0290043\n\tSTATUS_TPM_KEY_OWNER_CONTROL                                              NTStatus      = 0xC0290044\n\tSTATUS_TPM_BAD_COUNTER                                                    NTStatus      = 0xC0290045\n\tSTATUS_TPM_NOT_FULLWRITE                                                  NTStatus      = 0xC0290046\n\tSTATUS_TPM_CONTEXT_GAP                                                    NTStatus      = 0xC0290047\n\tSTATUS_TPM_MAXNVWRITES                                                    NTStatus      = 0xC0290048\n\tSTATUS_TPM_NOOPERATOR                                                     NTStatus      = 0xC0290049\n\tSTATUS_TPM_RESOURCEMISSING                                                NTStatus      = 0xC029004A\n\tSTATUS_TPM_DELEGATE_LOCK                                                  NTStatus      = 0xC029004B\n\tSTATUS_TPM_DELEGATE_FAMILY                                                NTStatus      = 0xC029004C\n\tSTATUS_TPM_DELEGATE_ADMIN                                                 NTStatus      = 0xC029004D\n\tSTATUS_TPM_TRANSPORT_NOTEXCLUSIVE                                         NTStatus      = 0xC029004E\n\tSTATUS_TPM_OWNER_CONTROL                                                  NTStatus      = 0xC029004F\n\tSTATUS_TPM_DAA_RESOURCES                                                  NTStatus      = 0xC0290050\n\tSTATUS_TPM_DAA_INPUT_DATA0                                                NTStatus      = 0xC0290051\n\tSTATUS_TPM_DAA_INPUT_DATA1                                                NTStatus      = 0xC0290052\n\tSTATUS_TPM_DAA_ISSUER_SETTINGS                                            NTStatus      = 0xC0290053\n\tSTATUS_TPM_DAA_TPM_SETTINGS                                               NTStatus      = 0xC0290054\n\tSTATUS_TPM_DAA_STAGE                                                      NTStatus      = 0xC0290055\n\tSTATUS_TPM_DAA_ISSUER_VALIDITY                                            NTStatus      = 0xC0290056\n\tSTATUS_TPM_DAA_WRONG_W                                                    NTStatus      = 0xC0290057\n\tSTATUS_TPM_BAD_HANDLE                                                     NTStatus      = 0xC0290058\n\tSTATUS_TPM_BAD_DELEGATE                                                   NTStatus      = 0xC0290059\n\tSTATUS_TPM_BADCONTEXT                                                     NTStatus      = 0xC029005A\n\tSTATUS_TPM_TOOMANYCONTEXTS                                                NTStatus      = 0xC029005B\n\tSTATUS_TPM_MA_TICKET_SIGNATURE                                            NTStatus      = 0xC029005C\n\tSTATUS_TPM_MA_DESTINATION                                                 NTStatus      = 0xC029005D\n\tSTATUS_TPM_MA_SOURCE                                                      NTStatus      = 0xC029005E\n\tSTATUS_TPM_MA_AUTHORITY                                                   NTStatus      = 0xC029005F\n\tSTATUS_TPM_PERMANENTEK                                                    NTStatus      = 0xC0290061\n\tSTATUS_TPM_BAD_SIGNATURE                                                  NTStatus      = 0xC0290062\n\tSTATUS_TPM_NOCONTEXTSPACE                                                 NTStatus      = 0xC0290063\n\tSTATUS_TPM_20_E_ASYMMETRIC                                                NTStatus      = 0xC0290081\n\tSTATUS_TPM_20_E_ATTRIBUTES                                                NTStatus      = 0xC0290082\n\tSTATUS_TPM_20_E_HASH                                                      NTStatus      = 0xC0290083\n\tSTATUS_TPM_20_E_VALUE                                                     NTStatus      = 0xC0290084\n\tSTATUS_TPM_20_E_HIERARCHY                                                 NTStatus      = 0xC0290085\n\tSTATUS_TPM_20_E_KEY_SIZE                                                  NTStatus      = 0xC0290087\n\tSTATUS_TPM_20_E_MGF                                                       NTStatus      = 0xC0290088\n\tSTATUS_TPM_20_E_MODE                                                      NTStatus      = 0xC0290089\n\tSTATUS_TPM_20_E_TYPE                                                      NTStatus      = 0xC029008A\n\tSTATUS_TPM_20_E_HANDLE                                                    NTStatus      = 0xC029008B\n\tSTATUS_TPM_20_E_KDF                                                       NTStatus      = 0xC029008C\n\tSTATUS_TPM_20_E_RANGE                                                     NTStatus      = 0xC029008D\n\tSTATUS_TPM_20_E_AUTH_FAIL                                                 NTStatus      = 0xC029008E\n\tSTATUS_TPM_20_E_NONCE                                                     NTStatus      = 0xC029008F\n\tSTATUS_TPM_20_E_PP                                                        NTStatus      = 0xC0290090\n\tSTATUS_TPM_20_E_SCHEME                                                    NTStatus      = 0xC0290092\n\tSTATUS_TPM_20_E_SIZE                                                      NTStatus      = 0xC0290095\n\tSTATUS_TPM_20_E_SYMMETRIC                                                 NTStatus      = 0xC0290096\n\tSTATUS_TPM_20_E_TAG                                                       NTStatus      = 0xC0290097\n\tSTATUS_TPM_20_E_SELECTOR                                                  NTStatus      = 0xC0290098\n\tSTATUS_TPM_20_E_INSUFFICIENT                                              NTStatus      = 0xC029009A\n\tSTATUS_TPM_20_E_SIGNATURE                                                 NTStatus      = 0xC029009B\n\tSTATUS_TPM_20_E_KEY                                                       NTStatus      = 0xC029009C\n\tSTATUS_TPM_20_E_POLICY_FAIL                                               NTStatus      = 0xC029009D\n\tSTATUS_TPM_20_E_INTEGRITY                                                 NTStatus      = 0xC029009F\n\tSTATUS_TPM_20_E_TICKET                                                    NTStatus      = 0xC02900A0\n\tSTATUS_TPM_20_E_RESERVED_BITS                                             NTStatus      = 0xC02900A1\n\tSTATUS_TPM_20_E_BAD_AUTH                                                  NTStatus      = 0xC02900A2\n\tSTATUS_TPM_20_E_EXPIRED                                                   NTStatus      = 0xC02900A3\n\tSTATUS_TPM_20_E_POLICY_CC                                                 NTStatus      = 0xC02900A4\n\tSTATUS_TPM_20_E_BINDING                                                   NTStatus      = 0xC02900A5\n\tSTATUS_TPM_20_E_CURVE                                                     NTStatus      = 0xC02900A6\n\tSTATUS_TPM_20_E_ECC_POINT                                                 NTStatus      = 0xC02900A7\n\tSTATUS_TPM_20_E_INITIALIZE                                                NTStatus      = 0xC0290100\n\tSTATUS_TPM_20_E_FAILURE                                                   NTStatus      = 0xC0290101\n\tSTATUS_TPM_20_E_SEQUENCE                                                  NTStatus      = 0xC0290103\n\tSTATUS_TPM_20_E_PRIVATE                                                   NTStatus      = 0xC029010B\n\tSTATUS_TPM_20_E_HMAC                                                      NTStatus      = 0xC0290119\n\tSTATUS_TPM_20_E_DISABLED                                                  NTStatus      = 0xC0290120\n\tSTATUS_TPM_20_E_EXCLUSIVE                                                 NTStatus      = 0xC0290121\n\tSTATUS_TPM_20_E_ECC_CURVE                                                 NTStatus      = 0xC0290123\n\tSTATUS_TPM_20_E_AUTH_TYPE                                                 NTStatus      = 0xC0290124\n\tSTATUS_TPM_20_E_AUTH_MISSING                                              NTStatus      = 0xC0290125\n\tSTATUS_TPM_20_E_POLICY                                                    NTStatus      = 0xC0290126\n\tSTATUS_TPM_20_E_PCR                                                       NTStatus      = 0xC0290127\n\tSTATUS_TPM_20_E_PCR_CHANGED                                               NTStatus      = 0xC0290128\n\tSTATUS_TPM_20_E_UPGRADE                                                   NTStatus      = 0xC029012D\n\tSTATUS_TPM_20_E_TOO_MANY_CONTEXTS                                         NTStatus      = 0xC029012E\n\tSTATUS_TPM_20_E_AUTH_UNAVAILABLE                                          NTStatus      = 0xC029012F\n\tSTATUS_TPM_20_E_REBOOT                                                    NTStatus      = 0xC0290130\n\tSTATUS_TPM_20_E_UNBALANCED                                                NTStatus      = 0xC0290131\n\tSTATUS_TPM_20_E_COMMAND_SIZE                                              NTStatus      = 0xC0290142\n\tSTATUS_TPM_20_E_COMMAND_CODE                                              NTStatus      = 0xC0290143\n\tSTATUS_TPM_20_E_AUTHSIZE                                                  NTStatus      = 0xC0290144\n\tSTATUS_TPM_20_E_AUTH_CONTEXT                                              NTStatus      = 0xC0290145\n\tSTATUS_TPM_20_E_NV_RANGE                                                  NTStatus      = 0xC0290146\n\tSTATUS_TPM_20_E_NV_SIZE                                                   NTStatus      = 0xC0290147\n\tSTATUS_TPM_20_E_NV_LOCKED                                                 NTStatus      = 0xC0290148\n\tSTATUS_TPM_20_E_NV_AUTHORIZATION                                          NTStatus      = 0xC0290149\n\tSTATUS_TPM_20_E_NV_UNINITIALIZED                                          NTStatus      = 0xC029014A\n\tSTATUS_TPM_20_E_NV_SPACE                                                  NTStatus      = 0xC029014B\n\tSTATUS_TPM_20_E_NV_DEFINED                                                NTStatus      = 0xC029014C\n\tSTATUS_TPM_20_E_BAD_CONTEXT                                               NTStatus      = 0xC0290150\n\tSTATUS_TPM_20_E_CPHASH                                                    NTStatus      = 0xC0290151\n\tSTATUS_TPM_20_E_PARENT                                                    NTStatus      = 0xC0290152\n\tSTATUS_TPM_20_E_NEEDS_TEST                                                NTStatus      = 0xC0290153\n\tSTATUS_TPM_20_E_NO_RESULT                                                 NTStatus      = 0xC0290154\n\tSTATUS_TPM_20_E_SENSITIVE                                                 NTStatus      = 0xC0290155\n\tSTATUS_TPM_COMMAND_BLOCKED                                                NTStatus      = 0xC0290400\n\tSTATUS_TPM_INVALID_HANDLE                                                 NTStatus      = 0xC0290401\n\tSTATUS_TPM_DUPLICATE_VHANDLE                                              NTStatus      = 0xC0290402\n\tSTATUS_TPM_EMBEDDED_COMMAND_BLOCKED                                       NTStatus      = 0xC0290403\n\tSTATUS_TPM_EMBEDDED_COMMAND_UNSUPPORTED                                   NTStatus      = 0xC0290404\n\tSTATUS_TPM_RETRY                                                          NTStatus      = 0xC0290800\n\tSTATUS_TPM_NEEDS_SELFTEST                                                 NTStatus      = 0xC0290801\n\tSTATUS_TPM_DOING_SELFTEST                                                 NTStatus      = 0xC0290802\n\tSTATUS_TPM_DEFEND_LOCK_RUNNING                                            NTStatus      = 0xC0290803\n\tSTATUS_TPM_COMMAND_CANCELED                                               NTStatus      = 0xC0291001\n\tSTATUS_TPM_TOO_MANY_CONTEXTS                                              NTStatus      = 0xC0291002\n\tSTATUS_TPM_NOT_FOUND                                                      NTStatus      = 0xC0291003\n\tSTATUS_TPM_ACCESS_DENIED                                                  NTStatus      = 0xC0291004\n\tSTATUS_TPM_INSUFFICIENT_BUFFER                                            NTStatus      = 0xC0291005\n\tSTATUS_TPM_PPI_FUNCTION_UNSUPPORTED                                       NTStatus      = 0xC0291006\n\tSTATUS_PCP_ERROR_MASK                                                     NTStatus      = 0xC0292000\n\tSTATUS_PCP_DEVICE_NOT_READY                                               NTStatus      = 0xC0292001\n\tSTATUS_PCP_INVALID_HANDLE                                                 NTStatus      = 0xC0292002\n\tSTATUS_PCP_INVALID_PARAMETER                                              NTStatus      = 0xC0292003\n\tSTATUS_PCP_FLAG_NOT_SUPPORTED                                             NTStatus      = 0xC0292004\n\tSTATUS_PCP_NOT_SUPPORTED                                                  NTStatus      = 0xC0292005\n\tSTATUS_PCP_BUFFER_TOO_SMALL                                               NTStatus      = 0xC0292006\n\tSTATUS_PCP_INTERNAL_ERROR                                                 NTStatus      = 0xC0292007\n\tSTATUS_PCP_AUTHENTICATION_FAILED                                          NTStatus      = 0xC0292008\n\tSTATUS_PCP_AUTHENTICATION_IGNORED                                         NTStatus      = 0xC0292009\n\tSTATUS_PCP_POLICY_NOT_FOUND                                               NTStatus      = 0xC029200A\n\tSTATUS_PCP_PROFILE_NOT_FOUND                                              NTStatus      = 0xC029200B\n\tSTATUS_PCP_VALIDATION_FAILED                                              NTStatus      = 0xC029200C\n\tSTATUS_PCP_DEVICE_NOT_FOUND                                               NTStatus      = 0xC029200D\n\tSTATUS_PCP_WRONG_PARENT                                                   NTStatus      = 0xC029200E\n\tSTATUS_PCP_KEY_NOT_LOADED                                                 NTStatus      = 0xC029200F\n\tSTATUS_PCP_NO_KEY_CERTIFICATION                                           NTStatus      = 0xC0292010\n\tSTATUS_PCP_KEY_NOT_FINALIZED                                              NTStatus      = 0xC0292011\n\tSTATUS_PCP_ATTESTATION_CHALLENGE_NOT_SET                                  NTStatus      = 0xC0292012\n\tSTATUS_PCP_NOT_PCR_BOUND                                                  NTStatus      = 0xC0292013\n\tSTATUS_PCP_KEY_ALREADY_FINALIZED                                          NTStatus      = 0xC0292014\n\tSTATUS_PCP_KEY_USAGE_POLICY_NOT_SUPPORTED                                 NTStatus      = 0xC0292015\n\tSTATUS_PCP_KEY_USAGE_POLICY_INVALID                                       NTStatus      = 0xC0292016\n\tSTATUS_PCP_SOFT_KEY_ERROR                                                 NTStatus      = 0xC0292017\n\tSTATUS_PCP_KEY_NOT_AUTHENTICATED                                          NTStatus      = 0xC0292018\n\tSTATUS_PCP_KEY_NOT_AIK                                                    NTStatus      = 0xC0292019\n\tSTATUS_PCP_KEY_NOT_SIGNING_KEY                                            NTStatus      = 0xC029201A\n\tSTATUS_PCP_LOCKED_OUT                                                     NTStatus      = 0xC029201B\n\tSTATUS_PCP_CLAIM_TYPE_NOT_SUPPORTED                                       NTStatus      = 0xC029201C\n\tSTATUS_PCP_TPM_VERSION_NOT_SUPPORTED                                      NTStatus      = 0xC029201D\n\tSTATUS_PCP_BUFFER_LENGTH_MISMATCH                                         NTStatus      = 0xC029201E\n\tSTATUS_PCP_IFX_RSA_KEY_CREATION_BLOCKED                                   NTStatus      = 0xC029201F\n\tSTATUS_PCP_TICKET_MISSING                                                 NTStatus      = 0xC0292020\n\tSTATUS_PCP_RAW_POLICY_NOT_SUPPORTED                                       NTStatus      = 0xC0292021\n\tSTATUS_PCP_KEY_HANDLE_INVALIDATED                                         NTStatus      = 0xC0292022\n\tSTATUS_PCP_UNSUPPORTED_PSS_SALT                                           NTStatus      = 0x40292023\n\tSTATUS_RTPM_CONTEXT_CONTINUE                                              NTStatus      = 0x00293000\n\tSTATUS_RTPM_CONTEXT_COMPLETE                                              NTStatus      = 0x00293001\n\tSTATUS_RTPM_NO_RESULT                                                     NTStatus      = 0xC0293002\n\tSTATUS_RTPM_PCR_READ_INCOMPLETE                                           NTStatus      = 0xC0293003\n\tSTATUS_RTPM_INVALID_CONTEXT                                               NTStatus      = 0xC0293004\n\tSTATUS_RTPM_UNSUPPORTED_CMD                                               NTStatus      = 0xC0293005\n\tSTATUS_TPM_ZERO_EXHAUST_ENABLED                                           NTStatus      = 0xC0294000\n\tSTATUS_HV_INVALID_HYPERCALL_CODE                                          NTStatus      = 0xC0350002\n\tSTATUS_HV_INVALID_HYPERCALL_INPUT                                         NTStatus      = 0xC0350003\n\tSTATUS_HV_INVALID_ALIGNMENT                                               NTStatus      = 0xC0350004\n\tSTATUS_HV_INVALID_PARAMETER                                               NTStatus      = 0xC0350005\n\tSTATUS_HV_ACCESS_DENIED                                                   NTStatus      = 0xC0350006\n\tSTATUS_HV_INVALID_PARTITION_STATE                                         NTStatus      = 0xC0350007\n\tSTATUS_HV_OPERATION_DENIED                                                NTStatus      = 0xC0350008\n\tSTATUS_HV_UNKNOWN_PROPERTY                                                NTStatus      = 0xC0350009\n\tSTATUS_HV_PROPERTY_VALUE_OUT_OF_RANGE                                     NTStatus      = 0xC035000A\n\tSTATUS_HV_INSUFFICIENT_MEMORY                                             NTStatus      = 0xC035000B\n\tSTATUS_HV_PARTITION_TOO_DEEP                                              NTStatus      = 0xC035000C\n\tSTATUS_HV_INVALID_PARTITION_ID                                            NTStatus      = 0xC035000D\n\tSTATUS_HV_INVALID_VP_INDEX                                                NTStatus      = 0xC035000E\n\tSTATUS_HV_INVALID_PORT_ID                                                 NTStatus      = 0xC0350011\n\tSTATUS_HV_INVALID_CONNECTION_ID                                           NTStatus      = 0xC0350012\n\tSTATUS_HV_INSUFFICIENT_BUFFERS                                            NTStatus      = 0xC0350013\n\tSTATUS_HV_NOT_ACKNOWLEDGED                                                NTStatus      = 0xC0350014\n\tSTATUS_HV_INVALID_VP_STATE                                                NTStatus      = 0xC0350015\n\tSTATUS_HV_ACKNOWLEDGED                                                    NTStatus      = 0xC0350016\n\tSTATUS_HV_INVALID_SAVE_RESTORE_STATE                                      NTStatus      = 0xC0350017\n\tSTATUS_HV_INVALID_SYNIC_STATE                                             NTStatus      = 0xC0350018\n\tSTATUS_HV_OBJECT_IN_USE                                                   NTStatus      = 0xC0350019\n\tSTATUS_HV_INVALID_PROXIMITY_DOMAIN_INFO                                   NTStatus      = 0xC035001A\n\tSTATUS_HV_NO_DATA                                                         NTStatus      = 0xC035001B\n\tSTATUS_HV_INACTIVE                                                        NTStatus      = 0xC035001C\n\tSTATUS_HV_NO_RESOURCES                                                    NTStatus      = 0xC035001D\n\tSTATUS_HV_FEATURE_UNAVAILABLE                                             NTStatus      = 0xC035001E\n\tSTATUS_HV_INSUFFICIENT_BUFFER                                             NTStatus      = 0xC0350033\n\tSTATUS_HV_INSUFFICIENT_DEVICE_DOMAINS                                     NTStatus      = 0xC0350038\n\tSTATUS_HV_CPUID_FEATURE_VALIDATION_ERROR                                  NTStatus      = 0xC035003C\n\tSTATUS_HV_CPUID_XSAVE_FEATURE_VALIDATION_ERROR                            NTStatus      = 0xC035003D\n\tSTATUS_HV_PROCESSOR_STARTUP_TIMEOUT                                       NTStatus      = 0xC035003E\n\tSTATUS_HV_SMX_ENABLED                                                     NTStatus      = 0xC035003F\n\tSTATUS_HV_INVALID_LP_INDEX                                                NTStatus      = 0xC0350041\n\tSTATUS_HV_INVALID_REGISTER_VALUE                                          NTStatus      = 0xC0350050\n\tSTATUS_HV_INVALID_VTL_STATE                                               NTStatus      = 0xC0350051\n\tSTATUS_HV_NX_NOT_DETECTED                                                 NTStatus      = 0xC0350055\n\tSTATUS_HV_INVALID_DEVICE_ID                                               NTStatus      = 0xC0350057\n\tSTATUS_HV_INVALID_DEVICE_STATE                                            NTStatus      = 0xC0350058\n\tSTATUS_HV_PENDING_PAGE_REQUESTS                                           NTStatus      = 0x00350059\n\tSTATUS_HV_PAGE_REQUEST_INVALID                                            NTStatus      = 0xC0350060\n\tSTATUS_HV_INVALID_CPU_GROUP_ID                                            NTStatus      = 0xC035006F\n\tSTATUS_HV_INVALID_CPU_GROUP_STATE                                         NTStatus      = 0xC0350070\n\tSTATUS_HV_OPERATION_FAILED                                                NTStatus      = 0xC0350071\n\tSTATUS_HV_NOT_ALLOWED_WITH_NESTED_VIRT_ACTIVE                             NTStatus      = 0xC0350072\n\tSTATUS_HV_INSUFFICIENT_ROOT_MEMORY                                        NTStatus      = 0xC0350073\n\tSTATUS_HV_NOT_PRESENT                                                     NTStatus      = 0xC0351000\n\tSTATUS_VID_DUPLICATE_HANDLER                                              NTStatus      = 0xC0370001\n\tSTATUS_VID_TOO_MANY_HANDLERS                                              NTStatus      = 0xC0370002\n\tSTATUS_VID_QUEUE_FULL                                                     NTStatus      = 0xC0370003\n\tSTATUS_VID_HANDLER_NOT_PRESENT                                            NTStatus      = 0xC0370004\n\tSTATUS_VID_INVALID_OBJECT_NAME                                            NTStatus      = 0xC0370005\n\tSTATUS_VID_PARTITION_NAME_TOO_LONG                                        NTStatus      = 0xC0370006\n\tSTATUS_VID_MESSAGE_QUEUE_NAME_TOO_LONG                                    NTStatus      = 0xC0370007\n\tSTATUS_VID_PARTITION_ALREADY_EXISTS                                       NTStatus      = 0xC0370008\n\tSTATUS_VID_PARTITION_DOES_NOT_EXIST                                       NTStatus      = 0xC0370009\n\tSTATUS_VID_PARTITION_NAME_NOT_FOUND                                       NTStatus      = 0xC037000A\n\tSTATUS_VID_MESSAGE_QUEUE_ALREADY_EXISTS                                   NTStatus      = 0xC037000B\n\tSTATUS_VID_EXCEEDED_MBP_ENTRY_MAP_LIMIT                                   NTStatus      = 0xC037000C\n\tSTATUS_VID_MB_STILL_REFERENCED                                            NTStatus      = 0xC037000D\n\tSTATUS_VID_CHILD_GPA_PAGE_SET_CORRUPTED                                   NTStatus      = 0xC037000E\n\tSTATUS_VID_INVALID_NUMA_SETTINGS                                          NTStatus      = 0xC037000F\n\tSTATUS_VID_INVALID_NUMA_NODE_INDEX                                        NTStatus      = 0xC0370010\n\tSTATUS_VID_NOTIFICATION_QUEUE_ALREADY_ASSOCIATED                          NTStatus      = 0xC0370011\n\tSTATUS_VID_INVALID_MEMORY_BLOCK_HANDLE                                    NTStatus      = 0xC0370012\n\tSTATUS_VID_PAGE_RANGE_OVERFLOW                                            NTStatus      = 0xC0370013\n\tSTATUS_VID_INVALID_MESSAGE_QUEUE_HANDLE                                   NTStatus      = 0xC0370014\n\tSTATUS_VID_INVALID_GPA_RANGE_HANDLE                                       NTStatus      = 0xC0370015\n\tSTATUS_VID_NO_MEMORY_BLOCK_NOTIFICATION_QUEUE                             NTStatus      = 0xC0370016\n\tSTATUS_VID_MEMORY_BLOCK_LOCK_COUNT_EXCEEDED                               NTStatus      = 0xC0370017\n\tSTATUS_VID_INVALID_PPM_HANDLE                                             NTStatus      = 0xC0370018\n\tSTATUS_VID_MBPS_ARE_LOCKED                                                NTStatus      = 0xC0370019\n\tSTATUS_VID_MESSAGE_QUEUE_CLOSED                                           NTStatus      = 0xC037001A\n\tSTATUS_VID_VIRTUAL_PROCESSOR_LIMIT_EXCEEDED                               NTStatus      = 0xC037001B\n\tSTATUS_VID_STOP_PENDING                                                   NTStatus      = 0xC037001C\n\tSTATUS_VID_INVALID_PROCESSOR_STATE                                        NTStatus      = 0xC037001D\n\tSTATUS_VID_EXCEEDED_KM_CONTEXT_COUNT_LIMIT                                NTStatus      = 0xC037001E\n\tSTATUS_VID_KM_INTERFACE_ALREADY_INITIALIZED                               NTStatus      = 0xC037001F\n\tSTATUS_VID_MB_PROPERTY_ALREADY_SET_RESET                                  NTStatus      = 0xC0370020\n\tSTATUS_VID_MMIO_RANGE_DESTROYED                                           NTStatus      = 0xC0370021\n\tSTATUS_VID_INVALID_CHILD_GPA_PAGE_SET                                     NTStatus      = 0xC0370022\n\tSTATUS_VID_RESERVE_PAGE_SET_IS_BEING_USED                                 NTStatus      = 0xC0370023\n\tSTATUS_VID_RESERVE_PAGE_SET_TOO_SMALL                                     NTStatus      = 0xC0370024\n\tSTATUS_VID_MBP_ALREADY_LOCKED_USING_RESERVED_PAGE                         NTStatus      = 0xC0370025\n\tSTATUS_VID_MBP_COUNT_EXCEEDED_LIMIT                                       NTStatus      = 0xC0370026\n\tSTATUS_VID_SAVED_STATE_CORRUPT                                            NTStatus      = 0xC0370027\n\tSTATUS_VID_SAVED_STATE_UNRECOGNIZED_ITEM                                  NTStatus      = 0xC0370028\n\tSTATUS_VID_SAVED_STATE_INCOMPATIBLE                                       NTStatus      = 0xC0370029\n\tSTATUS_VID_VTL_ACCESS_DENIED                                              NTStatus      = 0xC037002A\n\tSTATUS_VID_REMOTE_NODE_PARENT_GPA_PAGES_USED                              NTStatus      = 0x80370001\n\tSTATUS_IPSEC_BAD_SPI                                                      NTStatus      = 0xC0360001\n\tSTATUS_IPSEC_SA_LIFETIME_EXPIRED                                          NTStatus      = 0xC0360002\n\tSTATUS_IPSEC_WRONG_SA                                                     NTStatus      = 0xC0360003\n\tSTATUS_IPSEC_REPLAY_CHECK_FAILED                                          NTStatus      = 0xC0360004\n\tSTATUS_IPSEC_INVALID_PACKET                                               NTStatus      = 0xC0360005\n\tSTATUS_IPSEC_INTEGRITY_CHECK_FAILED                                       NTStatus      = 0xC0360006\n\tSTATUS_IPSEC_CLEAR_TEXT_DROP                                              NTStatus      = 0xC0360007\n\tSTATUS_IPSEC_AUTH_FIREWALL_DROP                                           NTStatus      = 0xC0360008\n\tSTATUS_IPSEC_THROTTLE_DROP                                                NTStatus      = 0xC0360009\n\tSTATUS_IPSEC_DOSP_BLOCK                                                   NTStatus      = 0xC0368000\n\tSTATUS_IPSEC_DOSP_RECEIVED_MULTICAST                                      NTStatus      = 0xC0368001\n\tSTATUS_IPSEC_DOSP_INVALID_PACKET                                          NTStatus      = 0xC0368002\n\tSTATUS_IPSEC_DOSP_STATE_LOOKUP_FAILED                                     NTStatus      = 0xC0368003\n\tSTATUS_IPSEC_DOSP_MAX_ENTRIES                                             NTStatus      = 0xC0368004\n\tSTATUS_IPSEC_DOSP_KEYMOD_NOT_ALLOWED                                      NTStatus      = 0xC0368005\n\tSTATUS_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES                             NTStatus      = 0xC0368006\n\tSTATUS_VOLMGR_INCOMPLETE_REGENERATION                                     NTStatus      = 0x80380001\n\tSTATUS_VOLMGR_INCOMPLETE_DISK_MIGRATION                                   NTStatus      = 0x80380002\n\tSTATUS_VOLMGR_DATABASE_FULL                                               NTStatus      = 0xC0380001\n\tSTATUS_VOLMGR_DISK_CONFIGURATION_CORRUPTED                                NTStatus      = 0xC0380002\n\tSTATUS_VOLMGR_DISK_CONFIGURATION_NOT_IN_SYNC                              NTStatus      = 0xC0380003\n\tSTATUS_VOLMGR_PACK_CONFIG_UPDATE_FAILED                                   NTStatus      = 0xC0380004\n\tSTATUS_VOLMGR_DISK_CONTAINS_NON_SIMPLE_VOLUME                             NTStatus      = 0xC0380005\n\tSTATUS_VOLMGR_DISK_DUPLICATE                                              NTStatus      = 0xC0380006\n\tSTATUS_VOLMGR_DISK_DYNAMIC                                                NTStatus      = 0xC0380007\n\tSTATUS_VOLMGR_DISK_ID_INVALID                                             NTStatus      = 0xC0380008\n\tSTATUS_VOLMGR_DISK_INVALID                                                NTStatus      = 0xC0380009\n\tSTATUS_VOLMGR_DISK_LAST_VOTER                                             NTStatus      = 0xC038000A\n\tSTATUS_VOLMGR_DISK_LAYOUT_INVALID                                         NTStatus      = 0xC038000B\n\tSTATUS_VOLMGR_DISK_LAYOUT_NON_BASIC_BETWEEN_BASIC_PARTITIONS              NTStatus      = 0xC038000C\n\tSTATUS_VOLMGR_DISK_LAYOUT_NOT_CYLINDER_ALIGNED                            NTStatus      = 0xC038000D\n\tSTATUS_VOLMGR_DISK_LAYOUT_PARTITIONS_TOO_SMALL                            NTStatus      = 0xC038000E\n\tSTATUS_VOLMGR_DISK_LAYOUT_PRIMARY_BETWEEN_LOGICAL_PARTITIONS              NTStatus      = 0xC038000F\n\tSTATUS_VOLMGR_DISK_LAYOUT_TOO_MANY_PARTITIONS                             NTStatus      = 0xC0380010\n\tSTATUS_VOLMGR_DISK_MISSING                                                NTStatus      = 0xC0380011\n\tSTATUS_VOLMGR_DISK_NOT_EMPTY                                              NTStatus      = 0xC0380012\n\tSTATUS_VOLMGR_DISK_NOT_ENOUGH_SPACE                                       NTStatus      = 0xC0380013\n\tSTATUS_VOLMGR_DISK_REVECTORING_FAILED                                     NTStatus      = 0xC0380014\n\tSTATUS_VOLMGR_DISK_SECTOR_SIZE_INVALID                                    NTStatus      = 0xC0380015\n\tSTATUS_VOLMGR_DISK_SET_NOT_CONTAINED                                      NTStatus      = 0xC0380016\n\tSTATUS_VOLMGR_DISK_USED_BY_MULTIPLE_MEMBERS                               NTStatus      = 0xC0380017\n\tSTATUS_VOLMGR_DISK_USED_BY_MULTIPLE_PLEXES                                NTStatus      = 0xC0380018\n\tSTATUS_VOLMGR_DYNAMIC_DISK_NOT_SUPPORTED                                  NTStatus      = 0xC0380019\n\tSTATUS_VOLMGR_EXTENT_ALREADY_USED                                         NTStatus      = 0xC038001A\n\tSTATUS_VOLMGR_EXTENT_NOT_CONTIGUOUS                                       NTStatus      = 0xC038001B\n\tSTATUS_VOLMGR_EXTENT_NOT_IN_PUBLIC_REGION                                 NTStatus      = 0xC038001C\n\tSTATUS_VOLMGR_EXTENT_NOT_SECTOR_ALIGNED                                   NTStatus      = 0xC038001D\n\tSTATUS_VOLMGR_EXTENT_OVERLAPS_EBR_PARTITION                               NTStatus      = 0xC038001E\n\tSTATUS_VOLMGR_EXTENT_VOLUME_LENGTHS_DO_NOT_MATCH                          NTStatus      = 0xC038001F\n\tSTATUS_VOLMGR_FAULT_TOLERANT_NOT_SUPPORTED                                NTStatus      = 0xC0380020\n\tSTATUS_VOLMGR_INTERLEAVE_LENGTH_INVALID                                   NTStatus      = 0xC0380021\n\tSTATUS_VOLMGR_MAXIMUM_REGISTERED_USERS                                    NTStatus      = 0xC0380022\n\tSTATUS_VOLMGR_MEMBER_IN_SYNC                                              NTStatus      = 0xC0380023\n\tSTATUS_VOLMGR_MEMBER_INDEX_DUPLICATE                                      NTStatus      = 0xC0380024\n\tSTATUS_VOLMGR_MEMBER_INDEX_INVALID                                        NTStatus      = 0xC0380025\n\tSTATUS_VOLMGR_MEMBER_MISSING                                              NTStatus      = 0xC0380026\n\tSTATUS_VOLMGR_MEMBER_NOT_DETACHED                                         NTStatus      = 0xC0380027\n\tSTATUS_VOLMGR_MEMBER_REGENERATING                                         NTStatus      = 0xC0380028\n\tSTATUS_VOLMGR_ALL_DISKS_FAILED                                            NTStatus      = 0xC0380029\n\tSTATUS_VOLMGR_NO_REGISTERED_USERS                                         NTStatus      = 0xC038002A\n\tSTATUS_VOLMGR_NO_SUCH_USER                                                NTStatus      = 0xC038002B\n\tSTATUS_VOLMGR_NOTIFICATION_RESET                                          NTStatus      = 0xC038002C\n\tSTATUS_VOLMGR_NUMBER_OF_MEMBERS_INVALID                                   NTStatus      = 0xC038002D\n\tSTATUS_VOLMGR_NUMBER_OF_PLEXES_INVALID                                    NTStatus      = 0xC038002E\n\tSTATUS_VOLMGR_PACK_DUPLICATE                                              NTStatus      = 0xC038002F\n\tSTATUS_VOLMGR_PACK_ID_INVALID                                             NTStatus      = 0xC0380030\n\tSTATUS_VOLMGR_PACK_INVALID                                                NTStatus      = 0xC0380031\n\tSTATUS_VOLMGR_PACK_NAME_INVALID                                           NTStatus      = 0xC0380032\n\tSTATUS_VOLMGR_PACK_OFFLINE                                                NTStatus      = 0xC0380033\n\tSTATUS_VOLMGR_PACK_HAS_QUORUM                                             NTStatus      = 0xC0380034\n\tSTATUS_VOLMGR_PACK_WITHOUT_QUORUM                                         NTStatus      = 0xC0380035\n\tSTATUS_VOLMGR_PARTITION_STYLE_INVALID                                     NTStatus      = 0xC0380036\n\tSTATUS_VOLMGR_PARTITION_UPDATE_FAILED                                     NTStatus      = 0xC0380037\n\tSTATUS_VOLMGR_PLEX_IN_SYNC                                                NTStatus      = 0xC0380038\n\tSTATUS_VOLMGR_PLEX_INDEX_DUPLICATE                                        NTStatus      = 0xC0380039\n\tSTATUS_VOLMGR_PLEX_INDEX_INVALID                                          NTStatus      = 0xC038003A\n\tSTATUS_VOLMGR_PLEX_LAST_ACTIVE                                            NTStatus      = 0xC038003B\n\tSTATUS_VOLMGR_PLEX_MISSING                                                NTStatus      = 0xC038003C\n\tSTATUS_VOLMGR_PLEX_REGENERATING                                           NTStatus      = 0xC038003D\n\tSTATUS_VOLMGR_PLEX_TYPE_INVALID                                           NTStatus      = 0xC038003E\n\tSTATUS_VOLMGR_PLEX_NOT_RAID5                                              NTStatus      = 0xC038003F\n\tSTATUS_VOLMGR_PLEX_NOT_SIMPLE                                             NTStatus      = 0xC0380040\n\tSTATUS_VOLMGR_STRUCTURE_SIZE_INVALID                                      NTStatus      = 0xC0380041\n\tSTATUS_VOLMGR_TOO_MANY_NOTIFICATION_REQUESTS                              NTStatus      = 0xC0380042\n\tSTATUS_VOLMGR_TRANSACTION_IN_PROGRESS                                     NTStatus      = 0xC0380043\n\tSTATUS_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE                               NTStatus      = 0xC0380044\n\tSTATUS_VOLMGR_VOLUME_CONTAINS_MISSING_DISK                                NTStatus      = 0xC0380045\n\tSTATUS_VOLMGR_VOLUME_ID_INVALID                                           NTStatus      = 0xC0380046\n\tSTATUS_VOLMGR_VOLUME_LENGTH_INVALID                                       NTStatus      = 0xC0380047\n\tSTATUS_VOLMGR_VOLUME_LENGTH_NOT_SECTOR_SIZE_MULTIPLE                      NTStatus      = 0xC0380048\n\tSTATUS_VOLMGR_VOLUME_NOT_MIRRORED                                         NTStatus      = 0xC0380049\n\tSTATUS_VOLMGR_VOLUME_NOT_RETAINED                                         NTStatus      = 0xC038004A\n\tSTATUS_VOLMGR_VOLUME_OFFLINE                                              NTStatus      = 0xC038004B\n\tSTATUS_VOLMGR_VOLUME_RETAINED                                             NTStatus      = 0xC038004C\n\tSTATUS_VOLMGR_NUMBER_OF_EXTENTS_INVALID                                   NTStatus      = 0xC038004D\n\tSTATUS_VOLMGR_DIFFERENT_SECTOR_SIZE                                       NTStatus      = 0xC038004E\n\tSTATUS_VOLMGR_BAD_BOOT_DISK                                               NTStatus      = 0xC038004F\n\tSTATUS_VOLMGR_PACK_CONFIG_OFFLINE                                         NTStatus      = 0xC0380050\n\tSTATUS_VOLMGR_PACK_CONFIG_ONLINE                                          NTStatus      = 0xC0380051\n\tSTATUS_VOLMGR_NOT_PRIMARY_PACK                                            NTStatus      = 0xC0380052\n\tSTATUS_VOLMGR_PACK_LOG_UPDATE_FAILED                                      NTStatus      = 0xC0380053\n\tSTATUS_VOLMGR_NUMBER_OF_DISKS_IN_PLEX_INVALID                             NTStatus      = 0xC0380054\n\tSTATUS_VOLMGR_NUMBER_OF_DISKS_IN_MEMBER_INVALID                           NTStatus      = 0xC0380055\n\tSTATUS_VOLMGR_VOLUME_MIRRORED                                             NTStatus      = 0xC0380056\n\tSTATUS_VOLMGR_PLEX_NOT_SIMPLE_SPANNED                                     NTStatus      = 0xC0380057\n\tSTATUS_VOLMGR_NO_VALID_LOG_COPIES                                         NTStatus      = 0xC0380058\n\tSTATUS_VOLMGR_PRIMARY_PACK_PRESENT                                        NTStatus      = 0xC0380059\n\tSTATUS_VOLMGR_NUMBER_OF_DISKS_INVALID                                     NTStatus      = 0xC038005A\n\tSTATUS_VOLMGR_MIRROR_NOT_SUPPORTED                                        NTStatus      = 0xC038005B\n\tSTATUS_VOLMGR_RAID5_NOT_SUPPORTED                                         NTStatus      = 0xC038005C\n\tSTATUS_BCD_NOT_ALL_ENTRIES_IMPORTED                                       NTStatus      = 0x80390001\n\tSTATUS_BCD_TOO_MANY_ELEMENTS                                              NTStatus      = 0xC0390002\n\tSTATUS_BCD_NOT_ALL_ENTRIES_SYNCHRONIZED                                   NTStatus      = 0x80390003\n\tSTATUS_VHD_DRIVE_FOOTER_MISSING                                           NTStatus      = 0xC03A0001\n\tSTATUS_VHD_DRIVE_FOOTER_CHECKSUM_MISMATCH                                 NTStatus      = 0xC03A0002\n\tSTATUS_VHD_DRIVE_FOOTER_CORRUPT                                           NTStatus      = 0xC03A0003\n\tSTATUS_VHD_FORMAT_UNKNOWN                                                 NTStatus      = 0xC03A0004\n\tSTATUS_VHD_FORMAT_UNSUPPORTED_VERSION                                     NTStatus      = 0xC03A0005\n\tSTATUS_VHD_SPARSE_HEADER_CHECKSUM_MISMATCH                                NTStatus      = 0xC03A0006\n\tSTATUS_VHD_SPARSE_HEADER_UNSUPPORTED_VERSION                              NTStatus      = 0xC03A0007\n\tSTATUS_VHD_SPARSE_HEADER_CORRUPT                                          NTStatus      = 0xC03A0008\n\tSTATUS_VHD_BLOCK_ALLOCATION_FAILURE                                       NTStatus      = 0xC03A0009\n\tSTATUS_VHD_BLOCK_ALLOCATION_TABLE_CORRUPT                                 NTStatus      = 0xC03A000A\n\tSTATUS_VHD_INVALID_BLOCK_SIZE                                             NTStatus      = 0xC03A000B\n\tSTATUS_VHD_BITMAP_MISMATCH                                                NTStatus      = 0xC03A000C\n\tSTATUS_VHD_PARENT_VHD_NOT_FOUND                                           NTStatus      = 0xC03A000D\n\tSTATUS_VHD_CHILD_PARENT_ID_MISMATCH                                       NTStatus      = 0xC03A000E\n\tSTATUS_VHD_CHILD_PARENT_TIMESTAMP_MISMATCH                                NTStatus      = 0xC03A000F\n\tSTATUS_VHD_METADATA_READ_FAILURE                                          NTStatus      = 0xC03A0010\n\tSTATUS_VHD_METADATA_WRITE_FAILURE                                         NTStatus      = 0xC03A0011\n\tSTATUS_VHD_INVALID_SIZE                                                   NTStatus      = 0xC03A0012\n\tSTATUS_VHD_INVALID_FILE_SIZE                                              NTStatus      = 0xC03A0013\n\tSTATUS_VIRTDISK_PROVIDER_NOT_FOUND                                        NTStatus      = 0xC03A0014\n\tSTATUS_VIRTDISK_NOT_VIRTUAL_DISK                                          NTStatus      = 0xC03A0015\n\tSTATUS_VHD_PARENT_VHD_ACCESS_DENIED                                       NTStatus      = 0xC03A0016\n\tSTATUS_VHD_CHILD_PARENT_SIZE_MISMATCH                                     NTStatus      = 0xC03A0017\n\tSTATUS_VHD_DIFFERENCING_CHAIN_CYCLE_DETECTED                              NTStatus      = 0xC03A0018\n\tSTATUS_VHD_DIFFERENCING_CHAIN_ERROR_IN_PARENT                             NTStatus      = 0xC03A0019\n\tSTATUS_VIRTUAL_DISK_LIMITATION                                            NTStatus      = 0xC03A001A\n\tSTATUS_VHD_INVALID_TYPE                                                   NTStatus      = 0xC03A001B\n\tSTATUS_VHD_INVALID_STATE                                                  NTStatus      = 0xC03A001C\n\tSTATUS_VIRTDISK_UNSUPPORTED_DISK_SECTOR_SIZE                              NTStatus      = 0xC03A001D\n\tSTATUS_VIRTDISK_DISK_ALREADY_OWNED                                        NTStatus      = 0xC03A001E\n\tSTATUS_VIRTDISK_DISK_ONLINE_AND_WRITABLE                                  NTStatus      = 0xC03A001F\n\tSTATUS_CTLOG_TRACKING_NOT_INITIALIZED                                     NTStatus      = 0xC03A0020\n\tSTATUS_CTLOG_LOGFILE_SIZE_EXCEEDED_MAXSIZE                                NTStatus      = 0xC03A0021\n\tSTATUS_CTLOG_VHD_CHANGED_OFFLINE                                          NTStatus      = 0xC03A0022\n\tSTATUS_CTLOG_INVALID_TRACKING_STATE                                       NTStatus      = 0xC03A0023\n\tSTATUS_CTLOG_INCONSISTENT_TRACKING_FILE                                   NTStatus      = 0xC03A0024\n\tSTATUS_VHD_METADATA_FULL                                                  NTStatus      = 0xC03A0028\n\tSTATUS_VHD_INVALID_CHANGE_TRACKING_ID                                     NTStatus      = 0xC03A0029\n\tSTATUS_VHD_CHANGE_TRACKING_DISABLED                                       NTStatus      = 0xC03A002A\n\tSTATUS_VHD_MISSING_CHANGE_TRACKING_INFORMATION                            NTStatus      = 0xC03A0030\n\tSTATUS_VHD_RESIZE_WOULD_TRUNCATE_DATA                                     NTStatus      = 0xC03A0031\n\tSTATUS_VHD_COULD_NOT_COMPUTE_MINIMUM_VIRTUAL_SIZE                         NTStatus      = 0xC03A0032\n\tSTATUS_VHD_ALREADY_AT_OR_BELOW_MINIMUM_VIRTUAL_SIZE                       NTStatus      = 0xC03A0033\n\tSTATUS_QUERY_STORAGE_ERROR                                                NTStatus      = 0x803A0001\n\tSTATUS_GDI_HANDLE_LEAK                                                    NTStatus      = 0x803F0001\n\tSTATUS_RKF_KEY_NOT_FOUND                                                  NTStatus      = 0xC0400001\n\tSTATUS_RKF_DUPLICATE_KEY                                                  NTStatus      = 0xC0400002\n\tSTATUS_RKF_BLOB_FULL                                                      NTStatus      = 0xC0400003\n\tSTATUS_RKF_STORE_FULL                                                     NTStatus      = 0xC0400004\n\tSTATUS_RKF_FILE_BLOCKED                                                   NTStatus      = 0xC0400005\n\tSTATUS_RKF_ACTIVE_KEY                                                     NTStatus      = 0xC0400006\n\tSTATUS_RDBSS_RESTART_OPERATION                                            NTStatus      = 0xC0410001\n\tSTATUS_RDBSS_CONTINUE_OPERATION                                           NTStatus      = 0xC0410002\n\tSTATUS_RDBSS_POST_OPERATION                                               NTStatus      = 0xC0410003\n\tSTATUS_RDBSS_RETRY_LOOKUP                                                 NTStatus      = 0xC0410004\n\tSTATUS_BTH_ATT_INVALID_HANDLE                                             NTStatus      = 0xC0420001\n\tSTATUS_BTH_ATT_READ_NOT_PERMITTED                                         NTStatus      = 0xC0420002\n\tSTATUS_BTH_ATT_WRITE_NOT_PERMITTED                                        NTStatus      = 0xC0420003\n\tSTATUS_BTH_ATT_INVALID_PDU                                                NTStatus      = 0xC0420004\n\tSTATUS_BTH_ATT_INSUFFICIENT_AUTHENTICATION                                NTStatus      = 0xC0420005\n\tSTATUS_BTH_ATT_REQUEST_NOT_SUPPORTED                                      NTStatus      = 0xC0420006\n\tSTATUS_BTH_ATT_INVALID_OFFSET                                             NTStatus      = 0xC0420007\n\tSTATUS_BTH_ATT_INSUFFICIENT_AUTHORIZATION                                 NTStatus      = 0xC0420008\n\tSTATUS_BTH_ATT_PREPARE_QUEUE_FULL                                         NTStatus      = 0xC0420009\n\tSTATUS_BTH_ATT_ATTRIBUTE_NOT_FOUND                                        NTStatus      = 0xC042000A\n\tSTATUS_BTH_ATT_ATTRIBUTE_NOT_LONG                                         NTStatus      = 0xC042000B\n\tSTATUS_BTH_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE                           NTStatus      = 0xC042000C\n\tSTATUS_BTH_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH                             NTStatus      = 0xC042000D\n\tSTATUS_BTH_ATT_UNLIKELY                                                   NTStatus      = 0xC042000E\n\tSTATUS_BTH_ATT_INSUFFICIENT_ENCRYPTION                                    NTStatus      = 0xC042000F\n\tSTATUS_BTH_ATT_UNSUPPORTED_GROUP_TYPE                                     NTStatus      = 0xC0420010\n\tSTATUS_BTH_ATT_INSUFFICIENT_RESOURCES                                     NTStatus      = 0xC0420011\n\tSTATUS_BTH_ATT_UNKNOWN_ERROR                                              NTStatus      = 0xC0421000\n\tSTATUS_SECUREBOOT_ROLLBACK_DETECTED                                       NTStatus      = 0xC0430001\n\tSTATUS_SECUREBOOT_POLICY_VIOLATION                                        NTStatus      = 0xC0430002\n\tSTATUS_SECUREBOOT_INVALID_POLICY                                          NTStatus      = 0xC0430003\n\tSTATUS_SECUREBOOT_POLICY_PUBLISHER_NOT_FOUND                              NTStatus      = 0xC0430004\n\tSTATUS_SECUREBOOT_POLICY_NOT_SIGNED                                       NTStatus      = 0xC0430005\n\tSTATUS_SECUREBOOT_NOT_ENABLED                                             NTStatus      = 0x80430006\n\tSTATUS_SECUREBOOT_FILE_REPLACED                                           NTStatus      = 0xC0430007\n\tSTATUS_SECUREBOOT_POLICY_NOT_AUTHORIZED                                   NTStatus      = 0xC0430008\n\tSTATUS_SECUREBOOT_POLICY_UNKNOWN                                          NTStatus      = 0xC0430009\n\tSTATUS_SECUREBOOT_POLICY_MISSING_ANTIROLLBACKVERSION                      NTStatus      = 0xC043000A\n\tSTATUS_SECUREBOOT_PLATFORM_ID_MISMATCH                                    NTStatus      = 0xC043000B\n\tSTATUS_SECUREBOOT_POLICY_ROLLBACK_DETECTED                                NTStatus      = 0xC043000C\n\tSTATUS_SECUREBOOT_POLICY_UPGRADE_MISMATCH                                 NTStatus      = 0xC043000D\n\tSTATUS_SECUREBOOT_REQUIRED_POLICY_FILE_MISSING                            NTStatus      = 0xC043000E\n\tSTATUS_SECUREBOOT_NOT_BASE_POLICY                                         NTStatus      = 0xC043000F\n\tSTATUS_SECUREBOOT_NOT_SUPPLEMENTAL_POLICY                                 NTStatus      = 0xC0430010\n\tSTATUS_PLATFORM_MANIFEST_NOT_AUTHORIZED                                   NTStatus      = 0xC0EB0001\n\tSTATUS_PLATFORM_MANIFEST_INVALID                                          NTStatus      = 0xC0EB0002\n\tSTATUS_PLATFORM_MANIFEST_FILE_NOT_AUTHORIZED                              NTStatus      = 0xC0EB0003\n\tSTATUS_PLATFORM_MANIFEST_CATALOG_NOT_AUTHORIZED                           NTStatus      = 0xC0EB0004\n\tSTATUS_PLATFORM_MANIFEST_BINARY_ID_NOT_FOUND                              NTStatus      = 0xC0EB0005\n\tSTATUS_PLATFORM_MANIFEST_NOT_ACTIVE                                       NTStatus      = 0xC0EB0006\n\tSTATUS_PLATFORM_MANIFEST_NOT_SIGNED                                       NTStatus      = 0xC0EB0007\n\tSTATUS_SYSTEM_INTEGRITY_ROLLBACK_DETECTED                                 NTStatus      = 0xC0E90001\n\tSTATUS_SYSTEM_INTEGRITY_POLICY_VIOLATION                                  NTStatus      = 0xC0E90002\n\tSTATUS_SYSTEM_INTEGRITY_INVALID_POLICY                                    NTStatus      = 0xC0E90003\n\tSTATUS_SYSTEM_INTEGRITY_POLICY_NOT_SIGNED                                 NTStatus      = 0xC0E90004\n\tSTATUS_SYSTEM_INTEGRITY_TOO_MANY_POLICIES                                 NTStatus      = 0xC0E90005\n\tSTATUS_SYSTEM_INTEGRITY_SUPPLEMENTAL_POLICY_NOT_AUTHORIZED                NTStatus      = 0xC0E90006\n\tSTATUS_NO_APPLICABLE_APP_LICENSES_FOUND                                   NTStatus      = 0xC0EA0001\n\tSTATUS_CLIP_LICENSE_NOT_FOUND                                             NTStatus      = 0xC0EA0002\n\tSTATUS_CLIP_DEVICE_LICENSE_MISSING                                        NTStatus      = 0xC0EA0003\n\tSTATUS_CLIP_LICENSE_INVALID_SIGNATURE                                     NTStatus      = 0xC0EA0004\n\tSTATUS_CLIP_KEYHOLDER_LICENSE_MISSING_OR_INVALID                          NTStatus      = 0xC0EA0005\n\tSTATUS_CLIP_LICENSE_EXPIRED                                               NTStatus      = 0xC0EA0006\n\tSTATUS_CLIP_LICENSE_SIGNED_BY_UNKNOWN_SOURCE                              NTStatus      = 0xC0EA0007\n\tSTATUS_CLIP_LICENSE_NOT_SIGNED                                            NTStatus      = 0xC0EA0008\n\tSTATUS_CLIP_LICENSE_HARDWARE_ID_OUT_OF_TOLERANCE                          NTStatus      = 0xC0EA0009\n\tSTATUS_CLIP_LICENSE_DEVICE_ID_MISMATCH                                    NTStatus      = 0xC0EA000A\n\tSTATUS_AUDIO_ENGINE_NODE_NOT_FOUND                                        NTStatus      = 0xC0440001\n\tSTATUS_HDAUDIO_EMPTY_CONNECTION_LIST                                      NTStatus      = 0xC0440002\n\tSTATUS_HDAUDIO_CONNECTION_LIST_NOT_SUPPORTED                              NTStatus      = 0xC0440003\n\tSTATUS_HDAUDIO_NO_LOGICAL_DEVICES_CREATED                                 NTStatus      = 0xC0440004\n\tSTATUS_HDAUDIO_NULL_LINKED_LIST_ENTRY                                     NTStatus      = 0xC0440005\n\tSTATUS_SPACES_REPAIRED                                                    NTStatus      = 0x00E70000\n\tSTATUS_SPACES_PAUSE                                                       NTStatus      = 0x00E70001\n\tSTATUS_SPACES_COMPLETE                                                    NTStatus      = 0x00E70002\n\tSTATUS_SPACES_REDIRECT                                                    NTStatus      = 0x00E70003\n\tSTATUS_SPACES_FAULT_DOMAIN_TYPE_INVALID                                   NTStatus      = 0xC0E70001\n\tSTATUS_SPACES_RESILIENCY_TYPE_INVALID                                     NTStatus      = 0xC0E70003\n\tSTATUS_SPACES_DRIVE_SECTOR_SIZE_INVALID                                   NTStatus      = 0xC0E70004\n\tSTATUS_SPACES_DRIVE_REDUNDANCY_INVALID                                    NTStatus      = 0xC0E70006\n\tSTATUS_SPACES_NUMBER_OF_DATA_COPIES_INVALID                               NTStatus      = 0xC0E70007\n\tSTATUS_SPACES_INTERLEAVE_LENGTH_INVALID                                   NTStatus      = 0xC0E70009\n\tSTATUS_SPACES_NUMBER_OF_COLUMNS_INVALID                                   NTStatus      = 0xC0E7000A\n\tSTATUS_SPACES_NOT_ENOUGH_DRIVES                                           NTStatus      = 0xC0E7000B\n\tSTATUS_SPACES_EXTENDED_ERROR                                              NTStatus      = 0xC0E7000C\n\tSTATUS_SPACES_PROVISIONING_TYPE_INVALID                                   NTStatus      = 0xC0E7000D\n\tSTATUS_SPACES_ALLOCATION_SIZE_INVALID                                     NTStatus      = 0xC0E7000E\n\tSTATUS_SPACES_ENCLOSURE_AWARE_INVALID                                     NTStatus      = 0xC0E7000F\n\tSTATUS_SPACES_WRITE_CACHE_SIZE_INVALID                                    NTStatus      = 0xC0E70010\n\tSTATUS_SPACES_NUMBER_OF_GROUPS_INVALID                                    NTStatus      = 0xC0E70011\n\tSTATUS_SPACES_DRIVE_OPERATIONAL_STATE_INVALID                             NTStatus      = 0xC0E70012\n\tSTATUS_SPACES_UPDATE_COLUMN_STATE                                         NTStatus      = 0xC0E70013\n\tSTATUS_SPACES_MAP_REQUIRED                                                NTStatus      = 0xC0E70014\n\tSTATUS_SPACES_UNSUPPORTED_VERSION                                         NTStatus      = 0xC0E70015\n\tSTATUS_SPACES_CORRUPT_METADATA                                            NTStatus      = 0xC0E70016\n\tSTATUS_SPACES_DRT_FULL                                                    NTStatus      = 0xC0E70017\n\tSTATUS_SPACES_INCONSISTENCY                                               NTStatus      = 0xC0E70018\n\tSTATUS_SPACES_LOG_NOT_READY                                               NTStatus      = 0xC0E70019\n\tSTATUS_SPACES_NO_REDUNDANCY                                               NTStatus      = 0xC0E7001A\n\tSTATUS_SPACES_DRIVE_NOT_READY                                             NTStatus      = 0xC0E7001B\n\tSTATUS_SPACES_DRIVE_SPLIT                                                 NTStatus      = 0xC0E7001C\n\tSTATUS_SPACES_DRIVE_LOST_DATA                                             NTStatus      = 0xC0E7001D\n\tSTATUS_SPACES_ENTRY_INCOMPLETE                                            NTStatus      = 0xC0E7001E\n\tSTATUS_SPACES_ENTRY_INVALID                                               NTStatus      = 0xC0E7001F\n\tSTATUS_SPACES_MARK_DIRTY                                                  NTStatus      = 0xC0E70020\n\tSTATUS_VOLSNAP_BOOTFILE_NOT_VALID                                         NTStatus      = 0xC0500003\n\tSTATUS_VOLSNAP_ACTIVATION_TIMEOUT                                         NTStatus      = 0xC0500004\n\tSTATUS_IO_PREEMPTED                                                       NTStatus      = 0xC0510001\n\tSTATUS_SVHDX_ERROR_STORED                                                 NTStatus      = 0xC05C0000\n\tSTATUS_SVHDX_ERROR_NOT_AVAILABLE                                          NTStatus      = 0xC05CFF00\n\tSTATUS_SVHDX_UNIT_ATTENTION_AVAILABLE                                     NTStatus      = 0xC05CFF01\n\tSTATUS_SVHDX_UNIT_ATTENTION_CAPACITY_DATA_CHANGED                         NTStatus      = 0xC05CFF02\n\tSTATUS_SVHDX_UNIT_ATTENTION_RESERVATIONS_PREEMPTED                        NTStatus      = 0xC05CFF03\n\tSTATUS_SVHDX_UNIT_ATTENTION_RESERVATIONS_RELEASED                         NTStatus      = 0xC05CFF04\n\tSTATUS_SVHDX_UNIT_ATTENTION_REGISTRATIONS_PREEMPTED                       NTStatus      = 0xC05CFF05\n\tSTATUS_SVHDX_UNIT_ATTENTION_OPERATING_DEFINITION_CHANGED                  NTStatus      = 0xC05CFF06\n\tSTATUS_SVHDX_RESERVATION_CONFLICT                                         NTStatus      = 0xC05CFF07\n\tSTATUS_SVHDX_WRONG_FILE_TYPE                                              NTStatus      = 0xC05CFF08\n\tSTATUS_SVHDX_VERSION_MISMATCH                                             NTStatus      = 0xC05CFF09\n\tSTATUS_VHD_SHARED                                                         NTStatus      = 0xC05CFF0A\n\tSTATUS_SVHDX_NO_INITIATOR                                                 NTStatus      = 0xC05CFF0B\n\tSTATUS_VHDSET_BACKING_STORAGE_NOT_FOUND                                   NTStatus      = 0xC05CFF0C\n\tSTATUS_SMB_NO_PREAUTH_INTEGRITY_HASH_OVERLAP                              NTStatus      = 0xC05D0000\n\tSTATUS_SMB_BAD_CLUSTER_DIALECT                                            NTStatus      = 0xC05D0001\n\tSTATUS_SMB_GUEST_LOGON_BLOCKED                                            NTStatus      = 0xC05D0002\n\tSTATUS_SECCORE_INVALID_COMMAND                                            NTStatus      = 0xC0E80000\n\tSTATUS_VSM_NOT_INITIALIZED                                                NTStatus      = 0xC0450000\n\tSTATUS_VSM_DMA_PROTECTION_NOT_IN_USE                                      NTStatus      = 0xC0450001\n\tSTATUS_APPEXEC_CONDITION_NOT_SATISFIED                                    NTStatus      = 0xC0EC0000\n\tSTATUS_APPEXEC_HANDLE_INVALIDATED                                         NTStatus      = 0xC0EC0001\n\tSTATUS_APPEXEC_INVALID_HOST_GENERATION                                    NTStatus      = 0xC0EC0002\n\tSTATUS_APPEXEC_UNEXPECTED_PROCESS_REGISTRATION                            NTStatus      = 0xC0EC0003\n\tSTATUS_APPEXEC_INVALID_HOST_STATE                                         NTStatus      = 0xC0EC0004\n\tSTATUS_APPEXEC_NO_DONOR                                                   NTStatus      = 0xC0EC0005\n\tSTATUS_APPEXEC_HOST_ID_MISMATCH                                           NTStatus      = 0xC0EC0006\n\tSTATUS_APPEXEC_UNKNOWN_USER                                               NTStatus      = 0xC0EC0007\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/zknownfolderids_windows.go",
    "content": "// Code generated by 'mkknownfolderids.bash'; DO NOT EDIT.\n\npackage windows\n\ntype KNOWNFOLDERID GUID\n\nvar (\n\tFOLDERID_NetworkFolder          = &KNOWNFOLDERID{0xd20beec4, 0x5ca8, 0x4905, [8]byte{0xae, 0x3b, 0xbf, 0x25, 0x1e, 0xa0, 0x9b, 0x53}}\n\tFOLDERID_ComputerFolder         = &KNOWNFOLDERID{0x0ac0837c, 0xbbf8, 0x452a, [8]byte{0x85, 0x0d, 0x79, 0xd0, 0x8e, 0x66, 0x7c, 0xa7}}\n\tFOLDERID_InternetFolder         = &KNOWNFOLDERID{0x4d9f7874, 0x4e0c, 0x4904, [8]byte{0x96, 0x7b, 0x40, 0xb0, 0xd2, 0x0c, 0x3e, 0x4b}}\n\tFOLDERID_ControlPanelFolder     = &KNOWNFOLDERID{0x82a74aeb, 0xaeb4, 0x465c, [8]byte{0xa0, 0x14, 0xd0, 0x97, 0xee, 0x34, 0x6d, 0x63}}\n\tFOLDERID_PrintersFolder         = &KNOWNFOLDERID{0x76fc4e2d, 0xd6ad, 0x4519, [8]byte{0xa6, 0x63, 0x37, 0xbd, 0x56, 0x06, 0x81, 0x85}}\n\tFOLDERID_SyncManagerFolder      = &KNOWNFOLDERID{0x43668bf8, 0xc14e, 0x49b2, [8]byte{0x97, 0xc9, 0x74, 0x77, 0x84, 0xd7, 0x84, 0xb7}}\n\tFOLDERID_SyncSetupFolder        = &KNOWNFOLDERID{0x0f214138, 0xb1d3, 0x4a90, [8]byte{0xbb, 0xa9, 0x27, 0xcb, 0xc0, 0xc5, 0x38, 0x9a}}\n\tFOLDERID_ConflictFolder         = &KNOWNFOLDERID{0x4bfefb45, 0x347d, 0x4006, [8]byte{0xa5, 0xbe, 0xac, 0x0c, 0xb0, 0x56, 0x71, 0x92}}\n\tFOLDERID_SyncResultsFolder      = &KNOWNFOLDERID{0x289a9a43, 0xbe44, 0x4057, [8]byte{0xa4, 0x1b, 0x58, 0x7a, 0x76, 0xd7, 0xe7, 0xf9}}\n\tFOLDERID_RecycleBinFolder       = &KNOWNFOLDERID{0xb7534046, 0x3ecb, 0x4c18, [8]byte{0xbe, 0x4e, 0x64, 0xcd, 0x4c, 0xb7, 0xd6, 0xac}}\n\tFOLDERID_ConnectionsFolder      = &KNOWNFOLDERID{0x6f0cd92b, 0x2e97, 0x45d1, [8]byte{0x88, 0xff, 0xb0, 0xd1, 0x86, 0xb8, 0xde, 0xdd}}\n\tFOLDERID_Fonts                  = &KNOWNFOLDERID{0xfd228cb7, 0xae11, 0x4ae3, [8]byte{0x86, 0x4c, 0x16, 0xf3, 0x91, 0x0a, 0xb8, 0xfe}}\n\tFOLDERID_Desktop                = &KNOWNFOLDERID{0xb4bfcc3a, 0xdb2c, 0x424c, [8]byte{0xb0, 0x29, 0x7f, 0xe9, 0x9a, 0x87, 0xc6, 0x41}}\n\tFOLDERID_Startup                = &KNOWNFOLDERID{0xb97d20bb, 0xf46a, 0x4c97, [8]byte{0xba, 0x10, 0x5e, 0x36, 0x08, 0x43, 0x08, 0x54}}\n\tFOLDERID_Programs               = &KNOWNFOLDERID{0xa77f5d77, 0x2e2b, 0x44c3, [8]byte{0xa6, 0xa2, 0xab, 0xa6, 0x01, 0x05, 0x4a, 0x51}}\n\tFOLDERID_StartMenu              = &KNOWNFOLDERID{0x625b53c3, 0xab48, 0x4ec1, [8]byte{0xba, 0x1f, 0xa1, 0xef, 0x41, 0x46, 0xfc, 0x19}}\n\tFOLDERID_Recent                 = &KNOWNFOLDERID{0xae50c081, 0xebd2, 0x438a, [8]byte{0x86, 0x55, 0x8a, 0x09, 0x2e, 0x34, 0x98, 0x7a}}\n\tFOLDERID_SendTo                 = &KNOWNFOLDERID{0x8983036c, 0x27c0, 0x404b, [8]byte{0x8f, 0x08, 0x10, 0x2d, 0x10, 0xdc, 0xfd, 0x74}}\n\tFOLDERID_Documents              = &KNOWNFOLDERID{0xfdd39ad0, 0x238f, 0x46af, [8]byte{0xad, 0xb4, 0x6c, 0x85, 0x48, 0x03, 0x69, 0xc7}}\n\tFOLDERID_Favorites              = &KNOWNFOLDERID{0x1777f761, 0x68ad, 0x4d8a, [8]byte{0x87, 0xbd, 0x30, 0xb7, 0x59, 0xfa, 0x33, 0xdd}}\n\tFOLDERID_NetHood                = &KNOWNFOLDERID{0xc5abbf53, 0xe17f, 0x4121, [8]byte{0x89, 0x00, 0x86, 0x62, 0x6f, 0xc2, 0xc9, 0x73}}\n\tFOLDERID_PrintHood              = &KNOWNFOLDERID{0x9274bd8d, 0xcfd1, 0x41c3, [8]byte{0xb3, 0x5e, 0xb1, 0x3f, 0x55, 0xa7, 0x58, 0xf4}}\n\tFOLDERID_Templates              = &KNOWNFOLDERID{0xa63293e8, 0x664e, 0x48db, [8]byte{0xa0, 0x79, 0xdf, 0x75, 0x9e, 0x05, 0x09, 0xf7}}\n\tFOLDERID_CommonStartup          = &KNOWNFOLDERID{0x82a5ea35, 0xd9cd, 0x47c5, [8]byte{0x96, 0x29, 0xe1, 0x5d, 0x2f, 0x71, 0x4e, 0x6e}}\n\tFOLDERID_CommonPrograms         = &KNOWNFOLDERID{0x0139d44e, 0x6afe, 0x49f2, [8]byte{0x86, 0x90, 0x3d, 0xaf, 0xca, 0xe6, 0xff, 0xb8}}\n\tFOLDERID_CommonStartMenu        = &KNOWNFOLDERID{0xa4115719, 0xd62e, 0x491d, [8]byte{0xaa, 0x7c, 0xe7, 0x4b, 0x8b, 0xe3, 0xb0, 0x67}}\n\tFOLDERID_PublicDesktop          = &KNOWNFOLDERID{0xc4aa340d, 0xf20f, 0x4863, [8]byte{0xaf, 0xef, 0xf8, 0x7e, 0xf2, 0xe6, 0xba, 0x25}}\n\tFOLDERID_ProgramData            = &KNOWNFOLDERID{0x62ab5d82, 0xfdc1, 0x4dc3, [8]byte{0xa9, 0xdd, 0x07, 0x0d, 0x1d, 0x49, 0x5d, 0x97}}\n\tFOLDERID_CommonTemplates        = &KNOWNFOLDERID{0xb94237e7, 0x57ac, 0x4347, [8]byte{0x91, 0x51, 0xb0, 0x8c, 0x6c, 0x32, 0xd1, 0xf7}}\n\tFOLDERID_PublicDocuments        = &KNOWNFOLDERID{0xed4824af, 0xdce4, 0x45a8, [8]byte{0x81, 0xe2, 0xfc, 0x79, 0x65, 0x08, 0x36, 0x34}}\n\tFOLDERID_RoamingAppData         = &KNOWNFOLDERID{0x3eb685db, 0x65f9, 0x4cf6, [8]byte{0xa0, 0x3a, 0xe3, 0xef, 0x65, 0x72, 0x9f, 0x3d}}\n\tFOLDERID_LocalAppData           = &KNOWNFOLDERID{0xf1b32785, 0x6fba, 0x4fcf, [8]byte{0x9d, 0x55, 0x7b, 0x8e, 0x7f, 0x15, 0x70, 0x91}}\n\tFOLDERID_LocalAppDataLow        = &KNOWNFOLDERID{0xa520a1a4, 0x1780, 0x4ff6, [8]byte{0xbd, 0x18, 0x16, 0x73, 0x43, 0xc5, 0xaf, 0x16}}\n\tFOLDERID_InternetCache          = &KNOWNFOLDERID{0x352481e8, 0x33be, 0x4251, [8]byte{0xba, 0x85, 0x60, 0x07, 0xca, 0xed, 0xcf, 0x9d}}\n\tFOLDERID_Cookies                = &KNOWNFOLDERID{0x2b0f765d, 0xc0e9, 0x4171, [8]byte{0x90, 0x8e, 0x08, 0xa6, 0x11, 0xb8, 0x4f, 0xf6}}\n\tFOLDERID_History                = &KNOWNFOLDERID{0xd9dc8a3b, 0xb784, 0x432e, [8]byte{0xa7, 0x81, 0x5a, 0x11, 0x30, 0xa7, 0x59, 0x63}}\n\tFOLDERID_System                 = &KNOWNFOLDERID{0x1ac14e77, 0x02e7, 0x4e5d, [8]byte{0xb7, 0x44, 0x2e, 0xb1, 0xae, 0x51, 0x98, 0xb7}}\n\tFOLDERID_SystemX86              = &KNOWNFOLDERID{0xd65231b0, 0xb2f1, 0x4857, [8]byte{0xa4, 0xce, 0xa8, 0xe7, 0xc6, 0xea, 0x7d, 0x27}}\n\tFOLDERID_Windows                = &KNOWNFOLDERID{0xf38bf404, 0x1d43, 0x42f2, [8]byte{0x93, 0x05, 0x67, 0xde, 0x0b, 0x28, 0xfc, 0x23}}\n\tFOLDERID_Profile                = &KNOWNFOLDERID{0x5e6c858f, 0x0e22, 0x4760, [8]byte{0x9a, 0xfe, 0xea, 0x33, 0x17, 0xb6, 0x71, 0x73}}\n\tFOLDERID_Pictures               = &KNOWNFOLDERID{0x33e28130, 0x4e1e, 0x4676, [8]byte{0x83, 0x5a, 0x98, 0x39, 0x5c, 0x3b, 0xc3, 0xbb}}\n\tFOLDERID_ProgramFilesX86        = &KNOWNFOLDERID{0x7c5a40ef, 0xa0fb, 0x4bfc, [8]byte{0x87, 0x4a, 0xc0, 0xf2, 0xe0, 0xb9, 0xfa, 0x8e}}\n\tFOLDERID_ProgramFilesCommonX86  = &KNOWNFOLDERID{0xde974d24, 0xd9c6, 0x4d3e, [8]byte{0xbf, 0x91, 0xf4, 0x45, 0x51, 0x20, 0xb9, 0x17}}\n\tFOLDERID_ProgramFilesX64        = &KNOWNFOLDERID{0x6d809377, 0x6af0, 0x444b, [8]byte{0x89, 0x57, 0xa3, 0x77, 0x3f, 0x02, 0x20, 0x0e}}\n\tFOLDERID_ProgramFilesCommonX64  = &KNOWNFOLDERID{0x6365d5a7, 0x0f0d, 0x45e5, [8]byte{0x87, 0xf6, 0x0d, 0xa5, 0x6b, 0x6a, 0x4f, 0x7d}}\n\tFOLDERID_ProgramFiles           = &KNOWNFOLDERID{0x905e63b6, 0xc1bf, 0x494e, [8]byte{0xb2, 0x9c, 0x65, 0xb7, 0x32, 0xd3, 0xd2, 0x1a}}\n\tFOLDERID_ProgramFilesCommon     = &KNOWNFOLDERID{0xf7f1ed05, 0x9f6d, 0x47a2, [8]byte{0xaa, 0xae, 0x29, 0xd3, 0x17, 0xc6, 0xf0, 0x66}}\n\tFOLDERID_UserProgramFiles       = &KNOWNFOLDERID{0x5cd7aee2, 0x2219, 0x4a67, [8]byte{0xb8, 0x5d, 0x6c, 0x9c, 0xe1, 0x56, 0x60, 0xcb}}\n\tFOLDERID_UserProgramFilesCommon = &KNOWNFOLDERID{0xbcbd3057, 0xca5c, 0x4622, [8]byte{0xb4, 0x2d, 0xbc, 0x56, 0xdb, 0x0a, 0xe5, 0x16}}\n\tFOLDERID_AdminTools             = &KNOWNFOLDERID{0x724ef170, 0xa42d, 0x4fef, [8]byte{0x9f, 0x26, 0xb6, 0x0e, 0x84, 0x6f, 0xba, 0x4f}}\n\tFOLDERID_CommonAdminTools       = &KNOWNFOLDERID{0xd0384e7d, 0xbac3, 0x4797, [8]byte{0x8f, 0x14, 0xcb, 0xa2, 0x29, 0xb3, 0x92, 0xb5}}\n\tFOLDERID_Music                  = &KNOWNFOLDERID{0x4bd8d571, 0x6d19, 0x48d3, [8]byte{0xbe, 0x97, 0x42, 0x22, 0x20, 0x08, 0x0e, 0x43}}\n\tFOLDERID_Videos                 = &KNOWNFOLDERID{0x18989b1d, 0x99b5, 0x455b, [8]byte{0x84, 0x1c, 0xab, 0x7c, 0x74, 0xe4, 0xdd, 0xfc}}\n\tFOLDERID_Ringtones              = &KNOWNFOLDERID{0xc870044b, 0xf49e, 0x4126, [8]byte{0xa9, 0xc3, 0xb5, 0x2a, 0x1f, 0xf4, 0x11, 0xe8}}\n\tFOLDERID_PublicPictures         = &KNOWNFOLDERID{0xb6ebfb86, 0x6907, 0x413c, [8]byte{0x9a, 0xf7, 0x4f, 0xc2, 0xab, 0xf0, 0x7c, 0xc5}}\n\tFOLDERID_PublicMusic            = &KNOWNFOLDERID{0x3214fab5, 0x9757, 0x4298, [8]byte{0xbb, 0x61, 0x92, 0xa9, 0xde, 0xaa, 0x44, 0xff}}\n\tFOLDERID_PublicVideos           = &KNOWNFOLDERID{0x2400183a, 0x6185, 0x49fb, [8]byte{0xa2, 0xd8, 0x4a, 0x39, 0x2a, 0x60, 0x2b, 0xa3}}\n\tFOLDERID_PublicRingtones        = &KNOWNFOLDERID{0xe555ab60, 0x153b, 0x4d17, [8]byte{0x9f, 0x04, 0xa5, 0xfe, 0x99, 0xfc, 0x15, 0xec}}\n\tFOLDERID_ResourceDir            = &KNOWNFOLDERID{0x8ad10c31, 0x2adb, 0x4296, [8]byte{0xa8, 0xf7, 0xe4, 0x70, 0x12, 0x32, 0xc9, 0x72}}\n\tFOLDERID_LocalizedResourcesDir  = &KNOWNFOLDERID{0x2a00375e, 0x224c, 0x49de, [8]byte{0xb8, 0xd1, 0x44, 0x0d, 0xf7, 0xef, 0x3d, 0xdc}}\n\tFOLDERID_CommonOEMLinks         = &KNOWNFOLDERID{0xc1bae2d0, 0x10df, 0x4334, [8]byte{0xbe, 0xdd, 0x7a, 0xa2, 0x0b, 0x22, 0x7a, 0x9d}}\n\tFOLDERID_CDBurning              = &KNOWNFOLDERID{0x9e52ab10, 0xf80d, 0x49df, [8]byte{0xac, 0xb8, 0x43, 0x30, 0xf5, 0x68, 0x78, 0x55}}\n\tFOLDERID_UserProfiles           = &KNOWNFOLDERID{0x0762d272, 0xc50a, 0x4bb0, [8]byte{0xa3, 0x82, 0x69, 0x7d, 0xcd, 0x72, 0x9b, 0x80}}\n\tFOLDERID_Playlists              = &KNOWNFOLDERID{0xde92c1c7, 0x837f, 0x4f69, [8]byte{0xa3, 0xbb, 0x86, 0xe6, 0x31, 0x20, 0x4a, 0x23}}\n\tFOLDERID_SamplePlaylists        = &KNOWNFOLDERID{0x15ca69b3, 0x30ee, 0x49c1, [8]byte{0xac, 0xe1, 0x6b, 0x5e, 0xc3, 0x72, 0xaf, 0xb5}}\n\tFOLDERID_SampleMusic            = &KNOWNFOLDERID{0xb250c668, 0xf57d, 0x4ee1, [8]byte{0xa6, 0x3c, 0x29, 0x0e, 0xe7, 0xd1, 0xaa, 0x1f}}\n\tFOLDERID_SamplePictures         = &KNOWNFOLDERID{0xc4900540, 0x2379, 0x4c75, [8]byte{0x84, 0x4b, 0x64, 0xe6, 0xfa, 0xf8, 0x71, 0x6b}}\n\tFOLDERID_SampleVideos           = &KNOWNFOLDERID{0x859ead94, 0x2e85, 0x48ad, [8]byte{0xa7, 0x1a, 0x09, 0x69, 0xcb, 0x56, 0xa6, 0xcd}}\n\tFOLDERID_PhotoAlbums            = &KNOWNFOLDERID{0x69d2cf90, 0xfc33, 0x4fb7, [8]byte{0x9a, 0x0c, 0xeb, 0xb0, 0xf0, 0xfc, 0xb4, 0x3c}}\n\tFOLDERID_Public                 = &KNOWNFOLDERID{0xdfdf76a2, 0xc82a, 0x4d63, [8]byte{0x90, 0x6a, 0x56, 0x44, 0xac, 0x45, 0x73, 0x85}}\n\tFOLDERID_ChangeRemovePrograms   = &KNOWNFOLDERID{0xdf7266ac, 0x9274, 0x4867, [8]byte{0x8d, 0x55, 0x3b, 0xd6, 0x61, 0xde, 0x87, 0x2d}}\n\tFOLDERID_AppUpdates             = &KNOWNFOLDERID{0xa305ce99, 0xf527, 0x492b, [8]byte{0x8b, 0x1a, 0x7e, 0x76, 0xfa, 0x98, 0xd6, 0xe4}}\n\tFOLDERID_AddNewPrograms         = &KNOWNFOLDERID{0xde61d971, 0x5ebc, 0x4f02, [8]byte{0xa3, 0xa9, 0x6c, 0x82, 0x89, 0x5e, 0x5c, 0x04}}\n\tFOLDERID_Downloads              = &KNOWNFOLDERID{0x374de290, 0x123f, 0x4565, [8]byte{0x91, 0x64, 0x39, 0xc4, 0x92, 0x5e, 0x46, 0x7b}}\n\tFOLDERID_PublicDownloads        = &KNOWNFOLDERID{0x3d644c9b, 0x1fb8, 0x4f30, [8]byte{0x9b, 0x45, 0xf6, 0x70, 0x23, 0x5f, 0x79, 0xc0}}\n\tFOLDERID_SavedSearches          = &KNOWNFOLDERID{0x7d1d3a04, 0xdebb, 0x4115, [8]byte{0x95, 0xcf, 0x2f, 0x29, 0xda, 0x29, 0x20, 0xda}}\n\tFOLDERID_QuickLaunch            = &KNOWNFOLDERID{0x52a4f021, 0x7b75, 0x48a9, [8]byte{0x9f, 0x6b, 0x4b, 0x87, 0xa2, 0x10, 0xbc, 0x8f}}\n\tFOLDERID_Contacts               = &KNOWNFOLDERID{0x56784854, 0xc6cb, 0x462b, [8]byte{0x81, 0x69, 0x88, 0xe3, 0x50, 0xac, 0xb8, 0x82}}\n\tFOLDERID_SidebarParts           = &KNOWNFOLDERID{0xa75d362e, 0x50fc, 0x4fb7, [8]byte{0xac, 0x2c, 0xa8, 0xbe, 0xaa, 0x31, 0x44, 0x93}}\n\tFOLDERID_SidebarDefaultParts    = &KNOWNFOLDERID{0x7b396e54, 0x9ec5, 0x4300, [8]byte{0xbe, 0x0a, 0x24, 0x82, 0xeb, 0xae, 0x1a, 0x26}}\n\tFOLDERID_PublicGameTasks        = &KNOWNFOLDERID{0xdebf2536, 0xe1a8, 0x4c59, [8]byte{0xb6, 0xa2, 0x41, 0x45, 0x86, 0x47, 0x6a, 0xea}}\n\tFOLDERID_GameTasks              = &KNOWNFOLDERID{0x054fae61, 0x4dd8, 0x4787, [8]byte{0x80, 0xb6, 0x09, 0x02, 0x20, 0xc4, 0xb7, 0x00}}\n\tFOLDERID_SavedGames             = &KNOWNFOLDERID{0x4c5c32ff, 0xbb9d, 0x43b0, [8]byte{0xb5, 0xb4, 0x2d, 0x72, 0xe5, 0x4e, 0xaa, 0xa4}}\n\tFOLDERID_Games                  = &KNOWNFOLDERID{0xcac52c1a, 0xb53d, 0x4edc, [8]byte{0x92, 0xd7, 0x6b, 0x2e, 0x8a, 0xc1, 0x94, 0x34}}\n\tFOLDERID_SEARCH_MAPI            = &KNOWNFOLDERID{0x98ec0e18, 0x2098, 0x4d44, [8]byte{0x86, 0x44, 0x66, 0x97, 0x93, 0x15, 0xa2, 0x81}}\n\tFOLDERID_SEARCH_CSC             = &KNOWNFOLDERID{0xee32e446, 0x31ca, 0x4aba, [8]byte{0x81, 0x4f, 0xa5, 0xeb, 0xd2, 0xfd, 0x6d, 0x5e}}\n\tFOLDERID_Links                  = &KNOWNFOLDERID{0xbfb9d5e0, 0xc6a9, 0x404c, [8]byte{0xb2, 0xb2, 0xae, 0x6d, 0xb6, 0xaf, 0x49, 0x68}}\n\tFOLDERID_UsersFiles             = &KNOWNFOLDERID{0xf3ce0f7c, 0x4901, 0x4acc, [8]byte{0x86, 0x48, 0xd5, 0xd4, 0x4b, 0x04, 0xef, 0x8f}}\n\tFOLDERID_UsersLibraries         = &KNOWNFOLDERID{0xa302545d, 0xdeff, 0x464b, [8]byte{0xab, 0xe8, 0x61, 0xc8, 0x64, 0x8d, 0x93, 0x9b}}\n\tFOLDERID_SearchHome             = &KNOWNFOLDERID{0x190337d1, 0xb8ca, 0x4121, [8]byte{0xa6, 0x39, 0x6d, 0x47, 0x2d, 0x16, 0x97, 0x2a}}\n\tFOLDERID_OriginalImages         = &KNOWNFOLDERID{0x2c36c0aa, 0x5812, 0x4b87, [8]byte{0xbf, 0xd0, 0x4c, 0xd0, 0xdf, 0xb1, 0x9b, 0x39}}\n\tFOLDERID_DocumentsLibrary       = &KNOWNFOLDERID{0x7b0db17d, 0x9cd2, 0x4a93, [8]byte{0x97, 0x33, 0x46, 0xcc, 0x89, 0x02, 0x2e, 0x7c}}\n\tFOLDERID_MusicLibrary           = &KNOWNFOLDERID{0x2112ab0a, 0xc86a, 0x4ffe, [8]byte{0xa3, 0x68, 0x0d, 0xe9, 0x6e, 0x47, 0x01, 0x2e}}\n\tFOLDERID_PicturesLibrary        = &KNOWNFOLDERID{0xa990ae9f, 0xa03b, 0x4e80, [8]byte{0x94, 0xbc, 0x99, 0x12, 0xd7, 0x50, 0x41, 0x04}}\n\tFOLDERID_VideosLibrary          = &KNOWNFOLDERID{0x491e922f, 0x5643, 0x4af4, [8]byte{0xa7, 0xeb, 0x4e, 0x7a, 0x13, 0x8d, 0x81, 0x74}}\n\tFOLDERID_RecordedTVLibrary      = &KNOWNFOLDERID{0x1a6fdba2, 0xf42d, 0x4358, [8]byte{0xa7, 0x98, 0xb7, 0x4d, 0x74, 0x59, 0x26, 0xc5}}\n\tFOLDERID_HomeGroup              = &KNOWNFOLDERID{0x52528a6b, 0xb9e3, 0x4add, [8]byte{0xb6, 0x0d, 0x58, 0x8c, 0x2d, 0xba, 0x84, 0x2d}}\n\tFOLDERID_HomeGroupCurrentUser   = &KNOWNFOLDERID{0x9b74b6a3, 0x0dfd, 0x4f11, [8]byte{0x9e, 0x78, 0x5f, 0x78, 0x00, 0xf2, 0xe7, 0x72}}\n\tFOLDERID_DeviceMetadataStore    = &KNOWNFOLDERID{0x5ce4a5e9, 0xe4eb, 0x479d, [8]byte{0xb8, 0x9f, 0x13, 0x0c, 0x02, 0x88, 0x61, 0x55}}\n\tFOLDERID_Libraries              = &KNOWNFOLDERID{0x1b3ea5dc, 0xb587, 0x4786, [8]byte{0xb4, 0xef, 0xbd, 0x1d, 0xc3, 0x32, 0xae, 0xae}}\n\tFOLDERID_PublicLibraries        = &KNOWNFOLDERID{0x48daf80b, 0xe6cf, 0x4f4e, [8]byte{0xb8, 0x00, 0x0e, 0x69, 0xd8, 0x4e, 0xe3, 0x84}}\n\tFOLDERID_UserPinned             = &KNOWNFOLDERID{0x9e3995ab, 0x1f9c, 0x4f13, [8]byte{0xb8, 0x27, 0x48, 0xb2, 0x4b, 0x6c, 0x71, 0x74}}\n\tFOLDERID_ImplicitAppShortcuts   = &KNOWNFOLDERID{0xbcb5256f, 0x79f6, 0x4cee, [8]byte{0xb7, 0x25, 0xdc, 0x34, 0xe4, 0x02, 0xfd, 0x46}}\n\tFOLDERID_AccountPictures        = &KNOWNFOLDERID{0x008ca0b1, 0x55b4, 0x4c56, [8]byte{0xb8, 0xa8, 0x4d, 0xe4, 0xb2, 0x99, 0xd3, 0xbe}}\n\tFOLDERID_PublicUserTiles        = &KNOWNFOLDERID{0x0482af6c, 0x08f1, 0x4c34, [8]byte{0x8c, 0x90, 0xe1, 0x7e, 0xc9, 0x8b, 0x1e, 0x17}}\n\tFOLDERID_AppsFolder             = &KNOWNFOLDERID{0x1e87508d, 0x89c2, 0x42f0, [8]byte{0x8a, 0x7e, 0x64, 0x5a, 0x0f, 0x50, 0xca, 0x58}}\n\tFOLDERID_StartMenuAllPrograms   = &KNOWNFOLDERID{0xf26305ef, 0x6948, 0x40b9, [8]byte{0xb2, 0x55, 0x81, 0x45, 0x3d, 0x09, 0xc7, 0x85}}\n\tFOLDERID_CommonStartMenuPlaces  = &KNOWNFOLDERID{0xa440879f, 0x87a0, 0x4f7d, [8]byte{0xb7, 0x00, 0x02, 0x07, 0xb9, 0x66, 0x19, 0x4a}}\n\tFOLDERID_ApplicationShortcuts   = &KNOWNFOLDERID{0xa3918781, 0xe5f2, 0x4890, [8]byte{0xb3, 0xd9, 0xa7, 0xe5, 0x43, 0x32, 0x32, 0x8c}}\n\tFOLDERID_RoamingTiles           = &KNOWNFOLDERID{0x00bcfc5a, 0xed94, 0x4e48, [8]byte{0x96, 0xa1, 0x3f, 0x62, 0x17, 0xf2, 0x19, 0x90}}\n\tFOLDERID_RoamedTileImages       = &KNOWNFOLDERID{0xaaa8d5a5, 0xf1d6, 0x4259, [8]byte{0xba, 0xa8, 0x78, 0xe7, 0xef, 0x60, 0x83, 0x5e}}\n\tFOLDERID_Screenshots            = &KNOWNFOLDERID{0xb7bede81, 0xdf94, 0x4682, [8]byte{0xa7, 0xd8, 0x57, 0xa5, 0x26, 0x20, 0xb8, 0x6f}}\n\tFOLDERID_CameraRoll             = &KNOWNFOLDERID{0xab5fb87b, 0x7ce2, 0x4f83, [8]byte{0x91, 0x5d, 0x55, 0x08, 0x46, 0xc9, 0x53, 0x7b}}\n\tFOLDERID_SkyDrive               = &KNOWNFOLDERID{0xa52bba46, 0xe9e1, 0x435f, [8]byte{0xb3, 0xd9, 0x28, 0xda, 0xa6, 0x48, 0xc0, 0xf6}}\n\tFOLDERID_OneDrive               = &KNOWNFOLDERID{0xa52bba46, 0xe9e1, 0x435f, [8]byte{0xb3, 0xd9, 0x28, 0xda, 0xa6, 0x48, 0xc0, 0xf6}}\n\tFOLDERID_SkyDriveDocuments      = &KNOWNFOLDERID{0x24d89e24, 0x2f19, 0x4534, [8]byte{0x9d, 0xde, 0x6a, 0x66, 0x71, 0xfb, 0xb8, 0xfe}}\n\tFOLDERID_SkyDrivePictures       = &KNOWNFOLDERID{0x339719b5, 0x8c47, 0x4894, [8]byte{0x94, 0xc2, 0xd8, 0xf7, 0x7a, 0xdd, 0x44, 0xa6}}\n\tFOLDERID_SkyDriveMusic          = &KNOWNFOLDERID{0xc3f2459e, 0x80d6, 0x45dc, [8]byte{0xbf, 0xef, 0x1f, 0x76, 0x9f, 0x2b, 0xe7, 0x30}}\n\tFOLDERID_SkyDriveCameraRoll     = &KNOWNFOLDERID{0x767e6811, 0x49cb, 0x4273, [8]byte{0x87, 0xc2, 0x20, 0xf3, 0x55, 0xe1, 0x08, 0x5b}}\n\tFOLDERID_SearchHistory          = &KNOWNFOLDERID{0x0d4c3db6, 0x03a3, 0x462f, [8]byte{0xa0, 0xe6, 0x08, 0x92, 0x4c, 0x41, 0xb5, 0xd4}}\n\tFOLDERID_SearchTemplates        = &KNOWNFOLDERID{0x7e636bfe, 0xdfa9, 0x4d5e, [8]byte{0xb4, 0x56, 0xd7, 0xb3, 0x98, 0x51, 0xd8, 0xa9}}\n\tFOLDERID_CameraRollLibrary      = &KNOWNFOLDERID{0x2b20df75, 0x1eda, 0x4039, [8]byte{0x80, 0x97, 0x38, 0x79, 0x82, 0x27, 0xd5, 0xb7}}\n\tFOLDERID_SavedPictures          = &KNOWNFOLDERID{0x3b193882, 0xd3ad, 0x4eab, [8]byte{0x96, 0x5a, 0x69, 0x82, 0x9d, 0x1f, 0xb5, 0x9f}}\n\tFOLDERID_SavedPicturesLibrary   = &KNOWNFOLDERID{0xe25b5812, 0xbe88, 0x4bd9, [8]byte{0x94, 0xb0, 0x29, 0x23, 0x34, 0x77, 0xb6, 0xc3}}\n\tFOLDERID_RetailDemo             = &KNOWNFOLDERID{0x12d4c69e, 0x24ad, 0x4923, [8]byte{0xbe, 0x19, 0x31, 0x32, 0x1c, 0x43, 0xa7, 0x67}}\n\tFOLDERID_Device                 = &KNOWNFOLDERID{0x1c2ac1dc, 0x4358, 0x4b6c, [8]byte{0x97, 0x33, 0xaf, 0x21, 0x15, 0x65, 0x76, 0xf0}}\n\tFOLDERID_DevelopmentFiles       = &KNOWNFOLDERID{0xdbe8e08e, 0x3053, 0x4bbc, [8]byte{0xb1, 0x83, 0x2a, 0x7b, 0x2b, 0x19, 0x1e, 0x59}}\n\tFOLDERID_Objects3D              = &KNOWNFOLDERID{0x31c0dd25, 0x9439, 0x4f12, [8]byte{0xbf, 0x41, 0x7f, 0xf4, 0xed, 0xa3, 0x87, 0x22}}\n\tFOLDERID_AppCaptures            = &KNOWNFOLDERID{0xedc0fe71, 0x98d8, 0x4f4a, [8]byte{0xb9, 0x20, 0xc8, 0xdc, 0x13, 0x3c, 0xb1, 0x65}}\n\tFOLDERID_LocalDocuments         = &KNOWNFOLDERID{0xf42ee2d3, 0x909f, 0x4907, [8]byte{0x88, 0x71, 0x4c, 0x22, 0xfc, 0x0b, 0xf7, 0x56}}\n\tFOLDERID_LocalPictures          = &KNOWNFOLDERID{0x0ddd015d, 0xb06c, 0x45d5, [8]byte{0x8c, 0x4c, 0xf5, 0x97, 0x13, 0x85, 0x46, 0x39}}\n\tFOLDERID_LocalVideos            = &KNOWNFOLDERID{0x35286a68, 0x3c57, 0x41a1, [8]byte{0xbb, 0xb1, 0x0e, 0xae, 0x73, 0xd7, 0x6c, 0x95}}\n\tFOLDERID_LocalMusic             = &KNOWNFOLDERID{0xa0c69a99, 0x21c8, 0x4671, [8]byte{0x87, 0x03, 0x79, 0x34, 0x16, 0x2f, 0xcf, 0x1d}}\n\tFOLDERID_LocalDownloads         = &KNOWNFOLDERID{0x7d83ee9b, 0x2244, 0x4e70, [8]byte{0xb1, 0xf5, 0x53, 0x93, 0x04, 0x2a, 0xf1, 0xe4}}\n\tFOLDERID_RecordedCalls          = &KNOWNFOLDERID{0x2f8b40c2, 0x83ed, 0x48ee, [8]byte{0xb3, 0x83, 0xa1, 0xf1, 0x57, 0xec, 0x6f, 0x9a}}\n\tFOLDERID_AllAppMods             = &KNOWNFOLDERID{0x7ad67899, 0x66af, 0x43ba, [8]byte{0x91, 0x56, 0x6a, 0xad, 0x42, 0xe6, 0xc5, 0x96}}\n\tFOLDERID_CurrentAppMods         = &KNOWNFOLDERID{0x3db40b20, 0x2a30, 0x4dbe, [8]byte{0x91, 0x7e, 0x77, 0x1d, 0xd2, 0x1d, 0xd0, 0x99}}\n\tFOLDERID_AppDataDesktop         = &KNOWNFOLDERID{0xb2c5e279, 0x7add, 0x439f, [8]byte{0xb2, 0x8c, 0xc4, 0x1f, 0xe1, 0xbb, 0xf6, 0x72}}\n\tFOLDERID_AppDataDocuments       = &KNOWNFOLDERID{0x7be16610, 0x1f7f, 0x44ac, [8]byte{0xbf, 0xf0, 0x83, 0xe1, 0x5f, 0x2f, 0xfc, 0xa1}}\n\tFOLDERID_AppDataFavorites       = &KNOWNFOLDERID{0x7cfbefbc, 0xde1f, 0x45aa, [8]byte{0xb8, 0x43, 0xa5, 0x42, 0xac, 0x53, 0x6c, 0xc9}}\n\tFOLDERID_AppDataProgramData     = &KNOWNFOLDERID{0x559d40a3, 0xa036, 0x40fa, [8]byte{0xaf, 0x61, 0x84, 0xcb, 0x43, 0x0a, 0x4d, 0x34}}\n)\n"
  },
  {
    "path": "vendor/golang.org/x/sys/windows/zsyscall_windows.go",
    "content": "// Code generated by 'go generate'; DO NOT EDIT.\n\npackage windows\n\nimport (\n\t\"syscall\"\n\t\"unsafe\"\n)\n\nvar _ unsafe.Pointer\n\n// Do the interface allocations only once for common\n// Errno values.\nconst (\n\terrnoERROR_IO_PENDING = 997\n)\n\nvar (\n\terrERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING)\n\terrERROR_EINVAL     error = syscall.EINVAL\n)\n\n// errnoErr returns common boxed Errno values, to prevent\n// allocations at runtime.\nfunc errnoErr(e syscall.Errno) error {\n\tswitch e {\n\tcase 0:\n\t\treturn errERROR_EINVAL\n\tcase errnoERROR_IO_PENDING:\n\t\treturn errERROR_IO_PENDING\n\t}\n\t// TODO: add more here, after collecting data on the common\n\t// error values see on Windows. (perhaps when running\n\t// all.bat?)\n\treturn e\n}\n\nvar (\n\tmodCfgMgr32 = NewLazySystemDLL(\"CfgMgr32.dll\")\n\tmodadvapi32 = NewLazySystemDLL(\"advapi32.dll\")\n\tmodcrypt32  = NewLazySystemDLL(\"crypt32.dll\")\n\tmoddnsapi   = NewLazySystemDLL(\"dnsapi.dll\")\n\tmoddwmapi   = NewLazySystemDLL(\"dwmapi.dll\")\n\tmodiphlpapi = NewLazySystemDLL(\"iphlpapi.dll\")\n\tmodkernel32 = NewLazySystemDLL(\"kernel32.dll\")\n\tmodmswsock  = NewLazySystemDLL(\"mswsock.dll\")\n\tmodnetapi32 = NewLazySystemDLL(\"netapi32.dll\")\n\tmodntdll    = NewLazySystemDLL(\"ntdll.dll\")\n\tmodole32    = NewLazySystemDLL(\"ole32.dll\")\n\tmodpsapi    = NewLazySystemDLL(\"psapi.dll\")\n\tmodsechost  = NewLazySystemDLL(\"sechost.dll\")\n\tmodsecur32  = NewLazySystemDLL(\"secur32.dll\")\n\tmodsetupapi = NewLazySystemDLL(\"setupapi.dll\")\n\tmodshell32  = NewLazySystemDLL(\"shell32.dll\")\n\tmoduser32   = NewLazySystemDLL(\"user32.dll\")\n\tmoduserenv  = NewLazySystemDLL(\"userenv.dll\")\n\tmodversion  = NewLazySystemDLL(\"version.dll\")\n\tmodwinmm    = NewLazySystemDLL(\"winmm.dll\")\n\tmodwintrust = NewLazySystemDLL(\"wintrust.dll\")\n\tmodws2_32   = NewLazySystemDLL(\"ws2_32.dll\")\n\tmodwtsapi32 = NewLazySystemDLL(\"wtsapi32.dll\")\n\n\tprocCM_Get_DevNode_Status                                = modCfgMgr32.NewProc(\"CM_Get_DevNode_Status\")\n\tprocCM_Get_Device_Interface_ListW                        = modCfgMgr32.NewProc(\"CM_Get_Device_Interface_ListW\")\n\tprocCM_Get_Device_Interface_List_SizeW                   = modCfgMgr32.NewProc(\"CM_Get_Device_Interface_List_SizeW\")\n\tprocCM_MapCrToWin32Err                                   = modCfgMgr32.NewProc(\"CM_MapCrToWin32Err\")\n\tprocAdjustTokenGroups                                    = modadvapi32.NewProc(\"AdjustTokenGroups\")\n\tprocAdjustTokenPrivileges                                = modadvapi32.NewProc(\"AdjustTokenPrivileges\")\n\tprocAllocateAndInitializeSid                             = modadvapi32.NewProc(\"AllocateAndInitializeSid\")\n\tprocBuildSecurityDescriptorW                             = modadvapi32.NewProc(\"BuildSecurityDescriptorW\")\n\tprocChangeServiceConfig2W                                = modadvapi32.NewProc(\"ChangeServiceConfig2W\")\n\tprocChangeServiceConfigW                                 = modadvapi32.NewProc(\"ChangeServiceConfigW\")\n\tprocCheckTokenMembership                                 = modadvapi32.NewProc(\"CheckTokenMembership\")\n\tprocCloseServiceHandle                                   = modadvapi32.NewProc(\"CloseServiceHandle\")\n\tprocControlService                                       = modadvapi32.NewProc(\"ControlService\")\n\tprocConvertSecurityDescriptorToStringSecurityDescriptorW = modadvapi32.NewProc(\"ConvertSecurityDescriptorToStringSecurityDescriptorW\")\n\tprocConvertSidToStringSidW                               = modadvapi32.NewProc(\"ConvertSidToStringSidW\")\n\tprocConvertStringSecurityDescriptorToSecurityDescriptorW = modadvapi32.NewProc(\"ConvertStringSecurityDescriptorToSecurityDescriptorW\")\n\tprocConvertStringSidToSidW                               = modadvapi32.NewProc(\"ConvertStringSidToSidW\")\n\tprocCopySid                                              = modadvapi32.NewProc(\"CopySid\")\n\tprocCreateProcessAsUserW                                 = modadvapi32.NewProc(\"CreateProcessAsUserW\")\n\tprocCreateServiceW                                       = modadvapi32.NewProc(\"CreateServiceW\")\n\tprocCreateWellKnownSid                                   = modadvapi32.NewProc(\"CreateWellKnownSid\")\n\tprocCryptAcquireContextW                                 = modadvapi32.NewProc(\"CryptAcquireContextW\")\n\tprocCryptGenRandom                                       = modadvapi32.NewProc(\"CryptGenRandom\")\n\tprocCryptReleaseContext                                  = modadvapi32.NewProc(\"CryptReleaseContext\")\n\tprocDeleteService                                        = modadvapi32.NewProc(\"DeleteService\")\n\tprocDeregisterEventSource                                = modadvapi32.NewProc(\"DeregisterEventSource\")\n\tprocDuplicateTokenEx                                     = modadvapi32.NewProc(\"DuplicateTokenEx\")\n\tprocEnumDependentServicesW                               = modadvapi32.NewProc(\"EnumDependentServicesW\")\n\tprocEnumServicesStatusExW                                = modadvapi32.NewProc(\"EnumServicesStatusExW\")\n\tprocEqualSid                                             = modadvapi32.NewProc(\"EqualSid\")\n\tprocFreeSid                                              = modadvapi32.NewProc(\"FreeSid\")\n\tprocGetAce                                               = modadvapi32.NewProc(\"GetAce\")\n\tprocGetLengthSid                                         = modadvapi32.NewProc(\"GetLengthSid\")\n\tprocGetNamedSecurityInfoW                                = modadvapi32.NewProc(\"GetNamedSecurityInfoW\")\n\tprocGetSecurityDescriptorControl                         = modadvapi32.NewProc(\"GetSecurityDescriptorControl\")\n\tprocGetSecurityDescriptorDacl                            = modadvapi32.NewProc(\"GetSecurityDescriptorDacl\")\n\tprocGetSecurityDescriptorGroup                           = modadvapi32.NewProc(\"GetSecurityDescriptorGroup\")\n\tprocGetSecurityDescriptorLength                          = modadvapi32.NewProc(\"GetSecurityDescriptorLength\")\n\tprocGetSecurityDescriptorOwner                           = modadvapi32.NewProc(\"GetSecurityDescriptorOwner\")\n\tprocGetSecurityDescriptorRMControl                       = modadvapi32.NewProc(\"GetSecurityDescriptorRMControl\")\n\tprocGetSecurityDescriptorSacl                            = modadvapi32.NewProc(\"GetSecurityDescriptorSacl\")\n\tprocGetSecurityInfo                                      = modadvapi32.NewProc(\"GetSecurityInfo\")\n\tprocGetSidIdentifierAuthority                            = modadvapi32.NewProc(\"GetSidIdentifierAuthority\")\n\tprocGetSidSubAuthority                                   = modadvapi32.NewProc(\"GetSidSubAuthority\")\n\tprocGetSidSubAuthorityCount                              = modadvapi32.NewProc(\"GetSidSubAuthorityCount\")\n\tprocGetTokenInformation                                  = modadvapi32.NewProc(\"GetTokenInformation\")\n\tprocImpersonateSelf                                      = modadvapi32.NewProc(\"ImpersonateSelf\")\n\tprocInitializeSecurityDescriptor                         = modadvapi32.NewProc(\"InitializeSecurityDescriptor\")\n\tprocInitiateSystemShutdownExW                            = modadvapi32.NewProc(\"InitiateSystemShutdownExW\")\n\tprocIsTokenRestricted                                    = modadvapi32.NewProc(\"IsTokenRestricted\")\n\tprocIsValidSecurityDescriptor                            = modadvapi32.NewProc(\"IsValidSecurityDescriptor\")\n\tprocIsValidSid                                           = modadvapi32.NewProc(\"IsValidSid\")\n\tprocIsWellKnownSid                                       = modadvapi32.NewProc(\"IsWellKnownSid\")\n\tprocLookupAccountNameW                                   = modadvapi32.NewProc(\"LookupAccountNameW\")\n\tprocLookupAccountSidW                                    = modadvapi32.NewProc(\"LookupAccountSidW\")\n\tprocLookupPrivilegeValueW                                = modadvapi32.NewProc(\"LookupPrivilegeValueW\")\n\tprocMakeAbsoluteSD                                       = modadvapi32.NewProc(\"MakeAbsoluteSD\")\n\tprocMakeSelfRelativeSD                                   = modadvapi32.NewProc(\"MakeSelfRelativeSD\")\n\tprocNotifyServiceStatusChangeW                           = modadvapi32.NewProc(\"NotifyServiceStatusChangeW\")\n\tprocOpenProcessToken                                     = modadvapi32.NewProc(\"OpenProcessToken\")\n\tprocOpenSCManagerW                                       = modadvapi32.NewProc(\"OpenSCManagerW\")\n\tprocOpenServiceW                                         = modadvapi32.NewProc(\"OpenServiceW\")\n\tprocOpenThreadToken                                      = modadvapi32.NewProc(\"OpenThreadToken\")\n\tprocQueryServiceConfig2W                                 = modadvapi32.NewProc(\"QueryServiceConfig2W\")\n\tprocQueryServiceConfigW                                  = modadvapi32.NewProc(\"QueryServiceConfigW\")\n\tprocQueryServiceDynamicInformation                       = modadvapi32.NewProc(\"QueryServiceDynamicInformation\")\n\tprocQueryServiceLockStatusW                              = modadvapi32.NewProc(\"QueryServiceLockStatusW\")\n\tprocQueryServiceStatus                                   = modadvapi32.NewProc(\"QueryServiceStatus\")\n\tprocQueryServiceStatusEx                                 = modadvapi32.NewProc(\"QueryServiceStatusEx\")\n\tprocRegCloseKey                                          = modadvapi32.NewProc(\"RegCloseKey\")\n\tprocRegEnumKeyExW                                        = modadvapi32.NewProc(\"RegEnumKeyExW\")\n\tprocRegNotifyChangeKeyValue                              = modadvapi32.NewProc(\"RegNotifyChangeKeyValue\")\n\tprocRegOpenKeyExW                                        = modadvapi32.NewProc(\"RegOpenKeyExW\")\n\tprocRegQueryInfoKeyW                                     = modadvapi32.NewProc(\"RegQueryInfoKeyW\")\n\tprocRegQueryValueExW                                     = modadvapi32.NewProc(\"RegQueryValueExW\")\n\tprocRegisterEventSourceW                                 = modadvapi32.NewProc(\"RegisterEventSourceW\")\n\tprocRegisterServiceCtrlHandlerExW                        = modadvapi32.NewProc(\"RegisterServiceCtrlHandlerExW\")\n\tprocReportEventW                                         = modadvapi32.NewProc(\"ReportEventW\")\n\tprocRevertToSelf                                         = modadvapi32.NewProc(\"RevertToSelf\")\n\tprocSetEntriesInAclW                                     = modadvapi32.NewProc(\"SetEntriesInAclW\")\n\tprocSetKernelObjectSecurity                              = modadvapi32.NewProc(\"SetKernelObjectSecurity\")\n\tprocSetNamedSecurityInfoW                                = modadvapi32.NewProc(\"SetNamedSecurityInfoW\")\n\tprocSetSecurityDescriptorControl                         = modadvapi32.NewProc(\"SetSecurityDescriptorControl\")\n\tprocSetSecurityDescriptorDacl                            = modadvapi32.NewProc(\"SetSecurityDescriptorDacl\")\n\tprocSetSecurityDescriptorGroup                           = modadvapi32.NewProc(\"SetSecurityDescriptorGroup\")\n\tprocSetSecurityDescriptorOwner                           = modadvapi32.NewProc(\"SetSecurityDescriptorOwner\")\n\tprocSetSecurityDescriptorRMControl                       = modadvapi32.NewProc(\"SetSecurityDescriptorRMControl\")\n\tprocSetSecurityDescriptorSacl                            = modadvapi32.NewProc(\"SetSecurityDescriptorSacl\")\n\tprocSetSecurityInfo                                      = modadvapi32.NewProc(\"SetSecurityInfo\")\n\tprocSetServiceStatus                                     = modadvapi32.NewProc(\"SetServiceStatus\")\n\tprocSetThreadToken                                       = modadvapi32.NewProc(\"SetThreadToken\")\n\tprocSetTokenInformation                                  = modadvapi32.NewProc(\"SetTokenInformation\")\n\tprocStartServiceCtrlDispatcherW                          = modadvapi32.NewProc(\"StartServiceCtrlDispatcherW\")\n\tprocStartServiceW                                        = modadvapi32.NewProc(\"StartServiceW\")\n\tprocCertAddCertificateContextToStore                     = modcrypt32.NewProc(\"CertAddCertificateContextToStore\")\n\tprocCertCloseStore                                       = modcrypt32.NewProc(\"CertCloseStore\")\n\tprocCertCreateCertificateContext                         = modcrypt32.NewProc(\"CertCreateCertificateContext\")\n\tprocCertDeleteCertificateFromStore                       = modcrypt32.NewProc(\"CertDeleteCertificateFromStore\")\n\tprocCertDuplicateCertificateContext                      = modcrypt32.NewProc(\"CertDuplicateCertificateContext\")\n\tprocCertEnumCertificatesInStore                          = modcrypt32.NewProc(\"CertEnumCertificatesInStore\")\n\tprocCertFindCertificateInStore                           = modcrypt32.NewProc(\"CertFindCertificateInStore\")\n\tprocCertFindChainInStore                                 = modcrypt32.NewProc(\"CertFindChainInStore\")\n\tprocCertFindExtension                                    = modcrypt32.NewProc(\"CertFindExtension\")\n\tprocCertFreeCertificateChain                             = modcrypt32.NewProc(\"CertFreeCertificateChain\")\n\tprocCertFreeCertificateContext                           = modcrypt32.NewProc(\"CertFreeCertificateContext\")\n\tprocCertGetCertificateChain                              = modcrypt32.NewProc(\"CertGetCertificateChain\")\n\tprocCertGetNameStringW                                   = modcrypt32.NewProc(\"CertGetNameStringW\")\n\tprocCertOpenStore                                        = modcrypt32.NewProc(\"CertOpenStore\")\n\tprocCertOpenSystemStoreW                                 = modcrypt32.NewProc(\"CertOpenSystemStoreW\")\n\tprocCertVerifyCertificateChainPolicy                     = modcrypt32.NewProc(\"CertVerifyCertificateChainPolicy\")\n\tprocCryptAcquireCertificatePrivateKey                    = modcrypt32.NewProc(\"CryptAcquireCertificatePrivateKey\")\n\tprocCryptDecodeObject                                    = modcrypt32.NewProc(\"CryptDecodeObject\")\n\tprocCryptProtectData                                     = modcrypt32.NewProc(\"CryptProtectData\")\n\tprocCryptQueryObject                                     = modcrypt32.NewProc(\"CryptQueryObject\")\n\tprocCryptUnprotectData                                   = modcrypt32.NewProc(\"CryptUnprotectData\")\n\tprocPFXImportCertStore                                   = modcrypt32.NewProc(\"PFXImportCertStore\")\n\tprocDnsNameCompare_W                                     = moddnsapi.NewProc(\"DnsNameCompare_W\")\n\tprocDnsQuery_W                                           = moddnsapi.NewProc(\"DnsQuery_W\")\n\tprocDnsRecordListFree                                    = moddnsapi.NewProc(\"DnsRecordListFree\")\n\tprocDwmGetWindowAttribute                                = moddwmapi.NewProc(\"DwmGetWindowAttribute\")\n\tprocDwmSetWindowAttribute                                = moddwmapi.NewProc(\"DwmSetWindowAttribute\")\n\tprocCancelMibChangeNotify2                               = modiphlpapi.NewProc(\"CancelMibChangeNotify2\")\n\tprocGetAdaptersAddresses                                 = modiphlpapi.NewProc(\"GetAdaptersAddresses\")\n\tprocGetAdaptersInfo                                      = modiphlpapi.NewProc(\"GetAdaptersInfo\")\n\tprocGetBestInterfaceEx                                   = modiphlpapi.NewProc(\"GetBestInterfaceEx\")\n\tprocGetIfEntry                                           = modiphlpapi.NewProc(\"GetIfEntry\")\n\tprocGetIfEntry2Ex                                        = modiphlpapi.NewProc(\"GetIfEntry2Ex\")\n\tprocGetUnicastIpAddressEntry                             = modiphlpapi.NewProc(\"GetUnicastIpAddressEntry\")\n\tprocNotifyIpInterfaceChange                              = modiphlpapi.NewProc(\"NotifyIpInterfaceChange\")\n\tprocNotifyUnicastIpAddressChange                         = modiphlpapi.NewProc(\"NotifyUnicastIpAddressChange\")\n\tprocAddDllDirectory                                      = modkernel32.NewProc(\"AddDllDirectory\")\n\tprocAssignProcessToJobObject                             = modkernel32.NewProc(\"AssignProcessToJobObject\")\n\tprocCancelIo                                             = modkernel32.NewProc(\"CancelIo\")\n\tprocCancelIoEx                                           = modkernel32.NewProc(\"CancelIoEx\")\n\tprocClearCommBreak                                       = modkernel32.NewProc(\"ClearCommBreak\")\n\tprocClearCommError                                       = modkernel32.NewProc(\"ClearCommError\")\n\tprocCloseHandle                                          = modkernel32.NewProc(\"CloseHandle\")\n\tprocClosePseudoConsole                                   = modkernel32.NewProc(\"ClosePseudoConsole\")\n\tprocConnectNamedPipe                                     = modkernel32.NewProc(\"ConnectNamedPipe\")\n\tprocCreateDirectoryW                                     = modkernel32.NewProc(\"CreateDirectoryW\")\n\tprocCreateEventExW                                       = modkernel32.NewProc(\"CreateEventExW\")\n\tprocCreateEventW                                         = modkernel32.NewProc(\"CreateEventW\")\n\tprocCreateFileMappingW                                   = modkernel32.NewProc(\"CreateFileMappingW\")\n\tprocCreateFileW                                          = modkernel32.NewProc(\"CreateFileW\")\n\tprocCreateHardLinkW                                      = modkernel32.NewProc(\"CreateHardLinkW\")\n\tprocCreateIoCompletionPort                               = modkernel32.NewProc(\"CreateIoCompletionPort\")\n\tprocCreateJobObjectW                                     = modkernel32.NewProc(\"CreateJobObjectW\")\n\tprocCreateMutexExW                                       = modkernel32.NewProc(\"CreateMutexExW\")\n\tprocCreateMutexW                                         = modkernel32.NewProc(\"CreateMutexW\")\n\tprocCreateNamedPipeW                                     = modkernel32.NewProc(\"CreateNamedPipeW\")\n\tprocCreatePipe                                           = modkernel32.NewProc(\"CreatePipe\")\n\tprocCreateProcessW                                       = modkernel32.NewProc(\"CreateProcessW\")\n\tprocCreatePseudoConsole                                  = modkernel32.NewProc(\"CreatePseudoConsole\")\n\tprocCreateSymbolicLinkW                                  = modkernel32.NewProc(\"CreateSymbolicLinkW\")\n\tprocCreateToolhelp32Snapshot                             = modkernel32.NewProc(\"CreateToolhelp32Snapshot\")\n\tprocDefineDosDeviceW                                     = modkernel32.NewProc(\"DefineDosDeviceW\")\n\tprocDeleteFileW                                          = modkernel32.NewProc(\"DeleteFileW\")\n\tprocDeleteProcThreadAttributeList                        = modkernel32.NewProc(\"DeleteProcThreadAttributeList\")\n\tprocDeleteVolumeMountPointW                              = modkernel32.NewProc(\"DeleteVolumeMountPointW\")\n\tprocDeviceIoControl                                      = modkernel32.NewProc(\"DeviceIoControl\")\n\tprocDisconnectNamedPipe                                  = modkernel32.NewProc(\"DisconnectNamedPipe\")\n\tprocDuplicateHandle                                      = modkernel32.NewProc(\"DuplicateHandle\")\n\tprocEscapeCommFunction                                   = modkernel32.NewProc(\"EscapeCommFunction\")\n\tprocExitProcess                                          = modkernel32.NewProc(\"ExitProcess\")\n\tprocExpandEnvironmentStringsW                            = modkernel32.NewProc(\"ExpandEnvironmentStringsW\")\n\tprocFindClose                                            = modkernel32.NewProc(\"FindClose\")\n\tprocFindCloseChangeNotification                          = modkernel32.NewProc(\"FindCloseChangeNotification\")\n\tprocFindFirstChangeNotificationW                         = modkernel32.NewProc(\"FindFirstChangeNotificationW\")\n\tprocFindFirstFileW                                       = modkernel32.NewProc(\"FindFirstFileW\")\n\tprocFindFirstVolumeMountPointW                           = modkernel32.NewProc(\"FindFirstVolumeMountPointW\")\n\tprocFindFirstVolumeW                                     = modkernel32.NewProc(\"FindFirstVolumeW\")\n\tprocFindNextChangeNotification                           = modkernel32.NewProc(\"FindNextChangeNotification\")\n\tprocFindNextFileW                                        = modkernel32.NewProc(\"FindNextFileW\")\n\tprocFindNextVolumeMountPointW                            = modkernel32.NewProc(\"FindNextVolumeMountPointW\")\n\tprocFindNextVolumeW                                      = modkernel32.NewProc(\"FindNextVolumeW\")\n\tprocFindResourceW                                        = modkernel32.NewProc(\"FindResourceW\")\n\tprocFindVolumeClose                                      = modkernel32.NewProc(\"FindVolumeClose\")\n\tprocFindVolumeMountPointClose                            = modkernel32.NewProc(\"FindVolumeMountPointClose\")\n\tprocFlushFileBuffers                                     = modkernel32.NewProc(\"FlushFileBuffers\")\n\tprocFlushViewOfFile                                      = modkernel32.NewProc(\"FlushViewOfFile\")\n\tprocFormatMessageW                                       = modkernel32.NewProc(\"FormatMessageW\")\n\tprocFreeEnvironmentStringsW                              = modkernel32.NewProc(\"FreeEnvironmentStringsW\")\n\tprocFreeLibrary                                          = modkernel32.NewProc(\"FreeLibrary\")\n\tprocGenerateConsoleCtrlEvent                             = modkernel32.NewProc(\"GenerateConsoleCtrlEvent\")\n\tprocGetACP                                               = modkernel32.NewProc(\"GetACP\")\n\tprocGetActiveProcessorCount                              = modkernel32.NewProc(\"GetActiveProcessorCount\")\n\tprocGetCommModemStatus                                   = modkernel32.NewProc(\"GetCommModemStatus\")\n\tprocGetCommState                                         = modkernel32.NewProc(\"GetCommState\")\n\tprocGetCommTimeouts                                      = modkernel32.NewProc(\"GetCommTimeouts\")\n\tprocGetCommandLineW                                      = modkernel32.NewProc(\"GetCommandLineW\")\n\tprocGetComputerNameExW                                   = modkernel32.NewProc(\"GetComputerNameExW\")\n\tprocGetComputerNameW                                     = modkernel32.NewProc(\"GetComputerNameW\")\n\tprocGetConsoleCP                                         = modkernel32.NewProc(\"GetConsoleCP\")\n\tprocGetConsoleMode                                       = modkernel32.NewProc(\"GetConsoleMode\")\n\tprocGetConsoleOutputCP                                   = modkernel32.NewProc(\"GetConsoleOutputCP\")\n\tprocGetConsoleScreenBufferInfo                           = modkernel32.NewProc(\"GetConsoleScreenBufferInfo\")\n\tprocGetCurrentDirectoryW                                 = modkernel32.NewProc(\"GetCurrentDirectoryW\")\n\tprocGetCurrentProcessId                                  = modkernel32.NewProc(\"GetCurrentProcessId\")\n\tprocGetCurrentThreadId                                   = modkernel32.NewProc(\"GetCurrentThreadId\")\n\tprocGetDiskFreeSpaceExW                                  = modkernel32.NewProc(\"GetDiskFreeSpaceExW\")\n\tprocGetDriveTypeW                                        = modkernel32.NewProc(\"GetDriveTypeW\")\n\tprocGetEnvironmentStringsW                               = modkernel32.NewProc(\"GetEnvironmentStringsW\")\n\tprocGetEnvironmentVariableW                              = modkernel32.NewProc(\"GetEnvironmentVariableW\")\n\tprocGetExitCodeProcess                                   = modkernel32.NewProc(\"GetExitCodeProcess\")\n\tprocGetFileAttributesExW                                 = modkernel32.NewProc(\"GetFileAttributesExW\")\n\tprocGetFileAttributesW                                   = modkernel32.NewProc(\"GetFileAttributesW\")\n\tprocGetFileInformationByHandle                           = modkernel32.NewProc(\"GetFileInformationByHandle\")\n\tprocGetFileInformationByHandleEx                         = modkernel32.NewProc(\"GetFileInformationByHandleEx\")\n\tprocGetFileTime                                          = modkernel32.NewProc(\"GetFileTime\")\n\tprocGetFileType                                          = modkernel32.NewProc(\"GetFileType\")\n\tprocGetFinalPathNameByHandleW                            = modkernel32.NewProc(\"GetFinalPathNameByHandleW\")\n\tprocGetFullPathNameW                                     = modkernel32.NewProc(\"GetFullPathNameW\")\n\tprocGetLargePageMinimum                                  = modkernel32.NewProc(\"GetLargePageMinimum\")\n\tprocGetLastError                                         = modkernel32.NewProc(\"GetLastError\")\n\tprocGetLogicalDriveStringsW                              = modkernel32.NewProc(\"GetLogicalDriveStringsW\")\n\tprocGetLogicalDrives                                     = modkernel32.NewProc(\"GetLogicalDrives\")\n\tprocGetLongPathNameW                                     = modkernel32.NewProc(\"GetLongPathNameW\")\n\tprocGetMaximumProcessorCount                             = modkernel32.NewProc(\"GetMaximumProcessorCount\")\n\tprocGetModuleFileNameW                                   = modkernel32.NewProc(\"GetModuleFileNameW\")\n\tprocGetModuleHandleExW                                   = modkernel32.NewProc(\"GetModuleHandleExW\")\n\tprocGetNamedPipeClientProcessId                          = modkernel32.NewProc(\"GetNamedPipeClientProcessId\")\n\tprocGetNamedPipeHandleStateW                             = modkernel32.NewProc(\"GetNamedPipeHandleStateW\")\n\tprocGetNamedPipeInfo                                     = modkernel32.NewProc(\"GetNamedPipeInfo\")\n\tprocGetNamedPipeServerProcessId                          = modkernel32.NewProc(\"GetNamedPipeServerProcessId\")\n\tprocGetOverlappedResult                                  = modkernel32.NewProc(\"GetOverlappedResult\")\n\tprocGetPriorityClass                                     = modkernel32.NewProc(\"GetPriorityClass\")\n\tprocGetProcAddress                                       = modkernel32.NewProc(\"GetProcAddress\")\n\tprocGetProcessId                                         = modkernel32.NewProc(\"GetProcessId\")\n\tprocGetProcessPreferredUILanguages                       = modkernel32.NewProc(\"GetProcessPreferredUILanguages\")\n\tprocGetProcessShutdownParameters                         = modkernel32.NewProc(\"GetProcessShutdownParameters\")\n\tprocGetProcessTimes                                      = modkernel32.NewProc(\"GetProcessTimes\")\n\tprocGetProcessWorkingSetSizeEx                           = modkernel32.NewProc(\"GetProcessWorkingSetSizeEx\")\n\tprocGetQueuedCompletionStatus                            = modkernel32.NewProc(\"GetQueuedCompletionStatus\")\n\tprocGetShortPathNameW                                    = modkernel32.NewProc(\"GetShortPathNameW\")\n\tprocGetStartupInfoW                                      = modkernel32.NewProc(\"GetStartupInfoW\")\n\tprocGetStdHandle                                         = modkernel32.NewProc(\"GetStdHandle\")\n\tprocGetSystemDirectoryW                                  = modkernel32.NewProc(\"GetSystemDirectoryW\")\n\tprocGetSystemPreferredUILanguages                        = modkernel32.NewProc(\"GetSystemPreferredUILanguages\")\n\tprocGetSystemTimeAsFileTime                              = modkernel32.NewProc(\"GetSystemTimeAsFileTime\")\n\tprocGetSystemTimePreciseAsFileTime                       = modkernel32.NewProc(\"GetSystemTimePreciseAsFileTime\")\n\tprocGetSystemWindowsDirectoryW                           = modkernel32.NewProc(\"GetSystemWindowsDirectoryW\")\n\tprocGetTempPathW                                         = modkernel32.NewProc(\"GetTempPathW\")\n\tprocGetThreadPreferredUILanguages                        = modkernel32.NewProc(\"GetThreadPreferredUILanguages\")\n\tprocGetTickCount64                                       = modkernel32.NewProc(\"GetTickCount64\")\n\tprocGetTimeZoneInformation                               = modkernel32.NewProc(\"GetTimeZoneInformation\")\n\tprocGetUserPreferredUILanguages                          = modkernel32.NewProc(\"GetUserPreferredUILanguages\")\n\tprocGetVersion                                           = modkernel32.NewProc(\"GetVersion\")\n\tprocGetVolumeInformationByHandleW                        = modkernel32.NewProc(\"GetVolumeInformationByHandleW\")\n\tprocGetVolumeInformationW                                = modkernel32.NewProc(\"GetVolumeInformationW\")\n\tprocGetVolumeNameForVolumeMountPointW                    = modkernel32.NewProc(\"GetVolumeNameForVolumeMountPointW\")\n\tprocGetVolumePathNameW                                   = modkernel32.NewProc(\"GetVolumePathNameW\")\n\tprocGetVolumePathNamesForVolumeNameW                     = modkernel32.NewProc(\"GetVolumePathNamesForVolumeNameW\")\n\tprocGetWindowsDirectoryW                                 = modkernel32.NewProc(\"GetWindowsDirectoryW\")\n\tprocInitializeProcThreadAttributeList                    = modkernel32.NewProc(\"InitializeProcThreadAttributeList\")\n\tprocIsWow64Process                                       = modkernel32.NewProc(\"IsWow64Process\")\n\tprocIsWow64Process2                                      = modkernel32.NewProc(\"IsWow64Process2\")\n\tprocLoadLibraryExW                                       = modkernel32.NewProc(\"LoadLibraryExW\")\n\tprocLoadLibraryW                                         = modkernel32.NewProc(\"LoadLibraryW\")\n\tprocLoadResource                                         = modkernel32.NewProc(\"LoadResource\")\n\tprocLocalAlloc                                           = modkernel32.NewProc(\"LocalAlloc\")\n\tprocLocalFree                                            = modkernel32.NewProc(\"LocalFree\")\n\tprocLockFileEx                                           = modkernel32.NewProc(\"LockFileEx\")\n\tprocLockResource                                         = modkernel32.NewProc(\"LockResource\")\n\tprocMapViewOfFile                                        = modkernel32.NewProc(\"MapViewOfFile\")\n\tprocModule32FirstW                                       = modkernel32.NewProc(\"Module32FirstW\")\n\tprocModule32NextW                                        = modkernel32.NewProc(\"Module32NextW\")\n\tprocMoveFileExW                                          = modkernel32.NewProc(\"MoveFileExW\")\n\tprocMoveFileW                                            = modkernel32.NewProc(\"MoveFileW\")\n\tprocMultiByteToWideChar                                  = modkernel32.NewProc(\"MultiByteToWideChar\")\n\tprocOpenEventW                                           = modkernel32.NewProc(\"OpenEventW\")\n\tprocOpenMutexW                                           = modkernel32.NewProc(\"OpenMutexW\")\n\tprocOpenProcess                                          = modkernel32.NewProc(\"OpenProcess\")\n\tprocOpenThread                                           = modkernel32.NewProc(\"OpenThread\")\n\tprocPostQueuedCompletionStatus                           = modkernel32.NewProc(\"PostQueuedCompletionStatus\")\n\tprocProcess32FirstW                                      = modkernel32.NewProc(\"Process32FirstW\")\n\tprocProcess32NextW                                       = modkernel32.NewProc(\"Process32NextW\")\n\tprocProcessIdToSessionId                                 = modkernel32.NewProc(\"ProcessIdToSessionId\")\n\tprocPulseEvent                                           = modkernel32.NewProc(\"PulseEvent\")\n\tprocPurgeComm                                            = modkernel32.NewProc(\"PurgeComm\")\n\tprocQueryDosDeviceW                                      = modkernel32.NewProc(\"QueryDosDeviceW\")\n\tprocQueryFullProcessImageNameW                           = modkernel32.NewProc(\"QueryFullProcessImageNameW\")\n\tprocQueryInformationJobObject                            = modkernel32.NewProc(\"QueryInformationJobObject\")\n\tprocReadConsoleW                                         = modkernel32.NewProc(\"ReadConsoleW\")\n\tprocReadDirectoryChangesW                                = modkernel32.NewProc(\"ReadDirectoryChangesW\")\n\tprocReadFile                                             = modkernel32.NewProc(\"ReadFile\")\n\tprocReadProcessMemory                                    = modkernel32.NewProc(\"ReadProcessMemory\")\n\tprocReleaseMutex                                         = modkernel32.NewProc(\"ReleaseMutex\")\n\tprocRemoveDirectoryW                                     = modkernel32.NewProc(\"RemoveDirectoryW\")\n\tprocRemoveDllDirectory                                   = modkernel32.NewProc(\"RemoveDllDirectory\")\n\tprocResetEvent                                           = modkernel32.NewProc(\"ResetEvent\")\n\tprocResizePseudoConsole                                  = modkernel32.NewProc(\"ResizePseudoConsole\")\n\tprocResumeThread                                         = modkernel32.NewProc(\"ResumeThread\")\n\tprocSetCommBreak                                         = modkernel32.NewProc(\"SetCommBreak\")\n\tprocSetCommMask                                          = modkernel32.NewProc(\"SetCommMask\")\n\tprocSetCommState                                         = modkernel32.NewProc(\"SetCommState\")\n\tprocSetCommTimeouts                                      = modkernel32.NewProc(\"SetCommTimeouts\")\n\tprocSetConsoleCP                                         = modkernel32.NewProc(\"SetConsoleCP\")\n\tprocSetConsoleCursorPosition                             = modkernel32.NewProc(\"SetConsoleCursorPosition\")\n\tprocSetConsoleMode                                       = modkernel32.NewProc(\"SetConsoleMode\")\n\tprocSetConsoleOutputCP                                   = modkernel32.NewProc(\"SetConsoleOutputCP\")\n\tprocSetCurrentDirectoryW                                 = modkernel32.NewProc(\"SetCurrentDirectoryW\")\n\tprocSetDefaultDllDirectories                             = modkernel32.NewProc(\"SetDefaultDllDirectories\")\n\tprocSetDllDirectoryW                                     = modkernel32.NewProc(\"SetDllDirectoryW\")\n\tprocSetEndOfFile                                         = modkernel32.NewProc(\"SetEndOfFile\")\n\tprocSetEnvironmentVariableW                              = modkernel32.NewProc(\"SetEnvironmentVariableW\")\n\tprocSetErrorMode                                         = modkernel32.NewProc(\"SetErrorMode\")\n\tprocSetEvent                                             = modkernel32.NewProc(\"SetEvent\")\n\tprocSetFileAttributesW                                   = modkernel32.NewProc(\"SetFileAttributesW\")\n\tprocSetFileCompletionNotificationModes                   = modkernel32.NewProc(\"SetFileCompletionNotificationModes\")\n\tprocSetFileInformationByHandle                           = modkernel32.NewProc(\"SetFileInformationByHandle\")\n\tprocSetFilePointer                                       = modkernel32.NewProc(\"SetFilePointer\")\n\tprocSetFileTime                                          = modkernel32.NewProc(\"SetFileTime\")\n\tprocSetFileValidData                                     = modkernel32.NewProc(\"SetFileValidData\")\n\tprocSetHandleInformation                                 = modkernel32.NewProc(\"SetHandleInformation\")\n\tprocSetInformationJobObject                              = modkernel32.NewProc(\"SetInformationJobObject\")\n\tprocSetNamedPipeHandleState                              = modkernel32.NewProc(\"SetNamedPipeHandleState\")\n\tprocSetPriorityClass                                     = modkernel32.NewProc(\"SetPriorityClass\")\n\tprocSetProcessPriorityBoost                              = modkernel32.NewProc(\"SetProcessPriorityBoost\")\n\tprocSetProcessShutdownParameters                         = modkernel32.NewProc(\"SetProcessShutdownParameters\")\n\tprocSetProcessWorkingSetSizeEx                           = modkernel32.NewProc(\"SetProcessWorkingSetSizeEx\")\n\tprocSetStdHandle                                         = modkernel32.NewProc(\"SetStdHandle\")\n\tprocSetVolumeLabelW                                      = modkernel32.NewProc(\"SetVolumeLabelW\")\n\tprocSetVolumeMountPointW                                 = modkernel32.NewProc(\"SetVolumeMountPointW\")\n\tprocSetupComm                                            = modkernel32.NewProc(\"SetupComm\")\n\tprocSizeofResource                                       = modkernel32.NewProc(\"SizeofResource\")\n\tprocSleepEx                                              = modkernel32.NewProc(\"SleepEx\")\n\tprocTerminateJobObject                                   = modkernel32.NewProc(\"TerminateJobObject\")\n\tprocTerminateProcess                                     = modkernel32.NewProc(\"TerminateProcess\")\n\tprocThread32First                                        = modkernel32.NewProc(\"Thread32First\")\n\tprocThread32Next                                         = modkernel32.NewProc(\"Thread32Next\")\n\tprocUnlockFileEx                                         = modkernel32.NewProc(\"UnlockFileEx\")\n\tprocUnmapViewOfFile                                      = modkernel32.NewProc(\"UnmapViewOfFile\")\n\tprocUpdateProcThreadAttribute                            = modkernel32.NewProc(\"UpdateProcThreadAttribute\")\n\tprocVirtualAlloc                                         = modkernel32.NewProc(\"VirtualAlloc\")\n\tprocVirtualFree                                          = modkernel32.NewProc(\"VirtualFree\")\n\tprocVirtualLock                                          = modkernel32.NewProc(\"VirtualLock\")\n\tprocVirtualProtect                                       = modkernel32.NewProc(\"VirtualProtect\")\n\tprocVirtualProtectEx                                     = modkernel32.NewProc(\"VirtualProtectEx\")\n\tprocVirtualQuery                                         = modkernel32.NewProc(\"VirtualQuery\")\n\tprocVirtualQueryEx                                       = modkernel32.NewProc(\"VirtualQueryEx\")\n\tprocVirtualUnlock                                        = modkernel32.NewProc(\"VirtualUnlock\")\n\tprocWTSGetActiveConsoleSessionId                         = modkernel32.NewProc(\"WTSGetActiveConsoleSessionId\")\n\tprocWaitCommEvent                                        = modkernel32.NewProc(\"WaitCommEvent\")\n\tprocWaitForMultipleObjects                               = modkernel32.NewProc(\"WaitForMultipleObjects\")\n\tprocWaitForSingleObject                                  = modkernel32.NewProc(\"WaitForSingleObject\")\n\tprocWriteConsoleW                                        = modkernel32.NewProc(\"WriteConsoleW\")\n\tprocWriteFile                                            = modkernel32.NewProc(\"WriteFile\")\n\tprocWriteProcessMemory                                   = modkernel32.NewProc(\"WriteProcessMemory\")\n\tprocAcceptEx                                             = modmswsock.NewProc(\"AcceptEx\")\n\tprocGetAcceptExSockaddrs                                 = modmswsock.NewProc(\"GetAcceptExSockaddrs\")\n\tprocTransmitFile                                         = modmswsock.NewProc(\"TransmitFile\")\n\tprocNetApiBufferFree                                     = modnetapi32.NewProc(\"NetApiBufferFree\")\n\tprocNetGetJoinInformation                                = modnetapi32.NewProc(\"NetGetJoinInformation\")\n\tprocNetUserEnum                                          = modnetapi32.NewProc(\"NetUserEnum\")\n\tprocNetUserGetInfo                                       = modnetapi32.NewProc(\"NetUserGetInfo\")\n\tprocNtCreateFile                                         = modntdll.NewProc(\"NtCreateFile\")\n\tprocNtCreateNamedPipeFile                                = modntdll.NewProc(\"NtCreateNamedPipeFile\")\n\tprocNtQueryInformationProcess                            = modntdll.NewProc(\"NtQueryInformationProcess\")\n\tprocNtQuerySystemInformation                             = modntdll.NewProc(\"NtQuerySystemInformation\")\n\tprocNtSetInformationFile                                 = modntdll.NewProc(\"NtSetInformationFile\")\n\tprocNtSetInformationProcess                              = modntdll.NewProc(\"NtSetInformationProcess\")\n\tprocNtSetSystemInformation                               = modntdll.NewProc(\"NtSetSystemInformation\")\n\tprocRtlAddFunctionTable                                  = modntdll.NewProc(\"RtlAddFunctionTable\")\n\tprocRtlDefaultNpAcl                                      = modntdll.NewProc(\"RtlDefaultNpAcl\")\n\tprocRtlDeleteFunctionTable                               = modntdll.NewProc(\"RtlDeleteFunctionTable\")\n\tprocRtlDosPathNameToNtPathName_U_WithStatus              = modntdll.NewProc(\"RtlDosPathNameToNtPathName_U_WithStatus\")\n\tprocRtlDosPathNameToRelativeNtPathName_U_WithStatus      = modntdll.NewProc(\"RtlDosPathNameToRelativeNtPathName_U_WithStatus\")\n\tprocRtlGetCurrentPeb                                     = modntdll.NewProc(\"RtlGetCurrentPeb\")\n\tprocRtlGetNtVersionNumbers                               = modntdll.NewProc(\"RtlGetNtVersionNumbers\")\n\tprocRtlGetVersion                                        = modntdll.NewProc(\"RtlGetVersion\")\n\tprocRtlInitString                                        = modntdll.NewProc(\"RtlInitString\")\n\tprocRtlInitUnicodeString                                 = modntdll.NewProc(\"RtlInitUnicodeString\")\n\tprocRtlNtStatusToDosErrorNoTeb                           = modntdll.NewProc(\"RtlNtStatusToDosErrorNoTeb\")\n\tprocCLSIDFromString                                      = modole32.NewProc(\"CLSIDFromString\")\n\tprocCoCreateGuid                                         = modole32.NewProc(\"CoCreateGuid\")\n\tprocCoGetObject                                          = modole32.NewProc(\"CoGetObject\")\n\tprocCoInitializeEx                                       = modole32.NewProc(\"CoInitializeEx\")\n\tprocCoTaskMemFree                                        = modole32.NewProc(\"CoTaskMemFree\")\n\tprocCoUninitialize                                       = modole32.NewProc(\"CoUninitialize\")\n\tprocStringFromGUID2                                      = modole32.NewProc(\"StringFromGUID2\")\n\tprocEnumProcessModules                                   = modpsapi.NewProc(\"EnumProcessModules\")\n\tprocEnumProcessModulesEx                                 = modpsapi.NewProc(\"EnumProcessModulesEx\")\n\tprocEnumProcesses                                        = modpsapi.NewProc(\"EnumProcesses\")\n\tprocGetModuleBaseNameW                                   = modpsapi.NewProc(\"GetModuleBaseNameW\")\n\tprocGetModuleFileNameExW                                 = modpsapi.NewProc(\"GetModuleFileNameExW\")\n\tprocGetModuleInformation                                 = modpsapi.NewProc(\"GetModuleInformation\")\n\tprocQueryWorkingSetEx                                    = modpsapi.NewProc(\"QueryWorkingSetEx\")\n\tprocSubscribeServiceChangeNotifications                  = modsechost.NewProc(\"SubscribeServiceChangeNotifications\")\n\tprocUnsubscribeServiceChangeNotifications                = modsechost.NewProc(\"UnsubscribeServiceChangeNotifications\")\n\tprocGetUserNameExW                                       = modsecur32.NewProc(\"GetUserNameExW\")\n\tprocTranslateNameW                                       = modsecur32.NewProc(\"TranslateNameW\")\n\tprocSetupDiBuildDriverInfoList                           = modsetupapi.NewProc(\"SetupDiBuildDriverInfoList\")\n\tprocSetupDiCallClassInstaller                            = modsetupapi.NewProc(\"SetupDiCallClassInstaller\")\n\tprocSetupDiCancelDriverInfoSearch                        = modsetupapi.NewProc(\"SetupDiCancelDriverInfoSearch\")\n\tprocSetupDiClassGuidsFromNameExW                         = modsetupapi.NewProc(\"SetupDiClassGuidsFromNameExW\")\n\tprocSetupDiClassNameFromGuidExW                          = modsetupapi.NewProc(\"SetupDiClassNameFromGuidExW\")\n\tprocSetupDiCreateDeviceInfoListExW                       = modsetupapi.NewProc(\"SetupDiCreateDeviceInfoListExW\")\n\tprocSetupDiCreateDeviceInfoW                             = modsetupapi.NewProc(\"SetupDiCreateDeviceInfoW\")\n\tprocSetupDiDestroyDeviceInfoList                         = modsetupapi.NewProc(\"SetupDiDestroyDeviceInfoList\")\n\tprocSetupDiDestroyDriverInfoList                         = modsetupapi.NewProc(\"SetupDiDestroyDriverInfoList\")\n\tprocSetupDiEnumDeviceInfo                                = modsetupapi.NewProc(\"SetupDiEnumDeviceInfo\")\n\tprocSetupDiEnumDriverInfoW                               = modsetupapi.NewProc(\"SetupDiEnumDriverInfoW\")\n\tprocSetupDiGetClassDevsExW                               = modsetupapi.NewProc(\"SetupDiGetClassDevsExW\")\n\tprocSetupDiGetClassInstallParamsW                        = modsetupapi.NewProc(\"SetupDiGetClassInstallParamsW\")\n\tprocSetupDiGetDeviceInfoListDetailW                      = modsetupapi.NewProc(\"SetupDiGetDeviceInfoListDetailW\")\n\tprocSetupDiGetDeviceInstallParamsW                       = modsetupapi.NewProc(\"SetupDiGetDeviceInstallParamsW\")\n\tprocSetupDiGetDeviceInstanceIdW                          = modsetupapi.NewProc(\"SetupDiGetDeviceInstanceIdW\")\n\tprocSetupDiGetDevicePropertyW                            = modsetupapi.NewProc(\"SetupDiGetDevicePropertyW\")\n\tprocSetupDiGetDeviceRegistryPropertyW                    = modsetupapi.NewProc(\"SetupDiGetDeviceRegistryPropertyW\")\n\tprocSetupDiGetDriverInfoDetailW                          = modsetupapi.NewProc(\"SetupDiGetDriverInfoDetailW\")\n\tprocSetupDiGetSelectedDevice                             = modsetupapi.NewProc(\"SetupDiGetSelectedDevice\")\n\tprocSetupDiGetSelectedDriverW                            = modsetupapi.NewProc(\"SetupDiGetSelectedDriverW\")\n\tprocSetupDiOpenDevRegKey                                 = modsetupapi.NewProc(\"SetupDiOpenDevRegKey\")\n\tprocSetupDiSetClassInstallParamsW                        = modsetupapi.NewProc(\"SetupDiSetClassInstallParamsW\")\n\tprocSetupDiSetDeviceInstallParamsW                       = modsetupapi.NewProc(\"SetupDiSetDeviceInstallParamsW\")\n\tprocSetupDiSetDeviceRegistryPropertyW                    = modsetupapi.NewProc(\"SetupDiSetDeviceRegistryPropertyW\")\n\tprocSetupDiSetSelectedDevice                             = modsetupapi.NewProc(\"SetupDiSetSelectedDevice\")\n\tprocSetupDiSetSelectedDriverW                            = modsetupapi.NewProc(\"SetupDiSetSelectedDriverW\")\n\tprocSetupUninstallOEMInfW                                = modsetupapi.NewProc(\"SetupUninstallOEMInfW\")\n\tprocCommandLineToArgvW                                   = modshell32.NewProc(\"CommandLineToArgvW\")\n\tprocSHGetKnownFolderPath                                 = modshell32.NewProc(\"SHGetKnownFolderPath\")\n\tprocShellExecuteW                                        = modshell32.NewProc(\"ShellExecuteW\")\n\tprocEnumChildWindows                                     = moduser32.NewProc(\"EnumChildWindows\")\n\tprocEnumWindows                                          = moduser32.NewProc(\"EnumWindows\")\n\tprocExitWindowsEx                                        = moduser32.NewProc(\"ExitWindowsEx\")\n\tprocGetClassNameW                                        = moduser32.NewProc(\"GetClassNameW\")\n\tprocGetDesktopWindow                                     = moduser32.NewProc(\"GetDesktopWindow\")\n\tprocGetForegroundWindow                                  = moduser32.NewProc(\"GetForegroundWindow\")\n\tprocGetGUIThreadInfo                                     = moduser32.NewProc(\"GetGUIThreadInfo\")\n\tprocGetKeyboardLayout                                    = moduser32.NewProc(\"GetKeyboardLayout\")\n\tprocGetShellWindow                                       = moduser32.NewProc(\"GetShellWindow\")\n\tprocGetWindowThreadProcessId                             = moduser32.NewProc(\"GetWindowThreadProcessId\")\n\tprocIsWindow                                             = moduser32.NewProc(\"IsWindow\")\n\tprocIsWindowUnicode                                      = moduser32.NewProc(\"IsWindowUnicode\")\n\tprocIsWindowVisible                                      = moduser32.NewProc(\"IsWindowVisible\")\n\tprocLoadKeyboardLayoutW                                  = moduser32.NewProc(\"LoadKeyboardLayoutW\")\n\tprocMessageBoxW                                          = moduser32.NewProc(\"MessageBoxW\")\n\tprocToUnicodeEx                                          = moduser32.NewProc(\"ToUnicodeEx\")\n\tprocUnloadKeyboardLayout                                 = moduser32.NewProc(\"UnloadKeyboardLayout\")\n\tprocCreateEnvironmentBlock                               = moduserenv.NewProc(\"CreateEnvironmentBlock\")\n\tprocDestroyEnvironmentBlock                              = moduserenv.NewProc(\"DestroyEnvironmentBlock\")\n\tprocGetUserProfileDirectoryW                             = moduserenv.NewProc(\"GetUserProfileDirectoryW\")\n\tprocGetFileVersionInfoSizeW                              = modversion.NewProc(\"GetFileVersionInfoSizeW\")\n\tprocGetFileVersionInfoW                                  = modversion.NewProc(\"GetFileVersionInfoW\")\n\tprocVerQueryValueW                                       = modversion.NewProc(\"VerQueryValueW\")\n\tproctimeBeginPeriod                                      = modwinmm.NewProc(\"timeBeginPeriod\")\n\tproctimeEndPeriod                                        = modwinmm.NewProc(\"timeEndPeriod\")\n\tprocWinVerifyTrustEx                                     = modwintrust.NewProc(\"WinVerifyTrustEx\")\n\tprocFreeAddrInfoW                                        = modws2_32.NewProc(\"FreeAddrInfoW\")\n\tprocGetAddrInfoW                                         = modws2_32.NewProc(\"GetAddrInfoW\")\n\tprocWSACleanup                                           = modws2_32.NewProc(\"WSACleanup\")\n\tprocWSAEnumProtocolsW                                    = modws2_32.NewProc(\"WSAEnumProtocolsW\")\n\tprocWSAGetOverlappedResult                               = modws2_32.NewProc(\"WSAGetOverlappedResult\")\n\tprocWSAIoctl                                             = modws2_32.NewProc(\"WSAIoctl\")\n\tprocWSALookupServiceBeginW                               = modws2_32.NewProc(\"WSALookupServiceBeginW\")\n\tprocWSALookupServiceEnd                                  = modws2_32.NewProc(\"WSALookupServiceEnd\")\n\tprocWSALookupServiceNextW                                = modws2_32.NewProc(\"WSALookupServiceNextW\")\n\tprocWSARecv                                              = modws2_32.NewProc(\"WSARecv\")\n\tprocWSARecvFrom                                          = modws2_32.NewProc(\"WSARecvFrom\")\n\tprocWSASend                                              = modws2_32.NewProc(\"WSASend\")\n\tprocWSASendTo                                            = modws2_32.NewProc(\"WSASendTo\")\n\tprocWSASocketW                                           = modws2_32.NewProc(\"WSASocketW\")\n\tprocWSAStartup                                           = modws2_32.NewProc(\"WSAStartup\")\n\tprocbind                                                 = modws2_32.NewProc(\"bind\")\n\tprocclosesocket                                          = modws2_32.NewProc(\"closesocket\")\n\tprocconnect                                              = modws2_32.NewProc(\"connect\")\n\tprocgethostbyname                                        = modws2_32.NewProc(\"gethostbyname\")\n\tprocgetpeername                                          = modws2_32.NewProc(\"getpeername\")\n\tprocgetprotobyname                                       = modws2_32.NewProc(\"getprotobyname\")\n\tprocgetservbyname                                        = modws2_32.NewProc(\"getservbyname\")\n\tprocgetsockname                                          = modws2_32.NewProc(\"getsockname\")\n\tprocgetsockopt                                           = modws2_32.NewProc(\"getsockopt\")\n\tproclisten                                               = modws2_32.NewProc(\"listen\")\n\tprocntohs                                                = modws2_32.NewProc(\"ntohs\")\n\tprocrecvfrom                                             = modws2_32.NewProc(\"recvfrom\")\n\tprocsendto                                               = modws2_32.NewProc(\"sendto\")\n\tprocsetsockopt                                           = modws2_32.NewProc(\"setsockopt\")\n\tprocshutdown                                             = modws2_32.NewProc(\"shutdown\")\n\tprocsocket                                               = modws2_32.NewProc(\"socket\")\n\tprocWTSEnumerateSessionsW                                = modwtsapi32.NewProc(\"WTSEnumerateSessionsW\")\n\tprocWTSFreeMemory                                        = modwtsapi32.NewProc(\"WTSFreeMemory\")\n\tprocWTSQueryUserToken                                    = modwtsapi32.NewProc(\"WTSQueryUserToken\")\n)\n\nfunc cm_Get_DevNode_Status(status *uint32, problemNumber *uint32, devInst DEVINST, flags uint32) (ret CONFIGRET) {\n\tr0, _, _ := syscall.Syscall6(procCM_Get_DevNode_Status.Addr(), 4, uintptr(unsafe.Pointer(status)), uintptr(unsafe.Pointer(problemNumber)), uintptr(devInst), uintptr(flags), 0, 0)\n\tret = CONFIGRET(r0)\n\treturn\n}\n\nfunc cm_Get_Device_Interface_List(interfaceClass *GUID, deviceID *uint16, buffer *uint16, bufferLen uint32, flags uint32) (ret CONFIGRET) {\n\tr0, _, _ := syscall.Syscall6(procCM_Get_Device_Interface_ListW.Addr(), 5, uintptr(unsafe.Pointer(interfaceClass)), uintptr(unsafe.Pointer(deviceID)), uintptr(unsafe.Pointer(buffer)), uintptr(bufferLen), uintptr(flags), 0)\n\tret = CONFIGRET(r0)\n\treturn\n}\n\nfunc cm_Get_Device_Interface_List_Size(len *uint32, interfaceClass *GUID, deviceID *uint16, flags uint32) (ret CONFIGRET) {\n\tr0, _, _ := syscall.Syscall6(procCM_Get_Device_Interface_List_SizeW.Addr(), 4, uintptr(unsafe.Pointer(len)), uintptr(unsafe.Pointer(interfaceClass)), uintptr(unsafe.Pointer(deviceID)), uintptr(flags), 0, 0)\n\tret = CONFIGRET(r0)\n\treturn\n}\n\nfunc cm_MapCrToWin32Err(configRet CONFIGRET, defaultWin32Error Errno) (ret Errno) {\n\tr0, _, _ := syscall.Syscall(procCM_MapCrToWin32Err.Addr(), 2, uintptr(configRet), uintptr(defaultWin32Error), 0)\n\tret = Errno(r0)\n\treturn\n}\n\nfunc AdjustTokenGroups(token Token, resetToDefault bool, newstate *Tokengroups, buflen uint32, prevstate *Tokengroups, returnlen *uint32) (err error) {\n\tvar _p0 uint32\n\tif resetToDefault {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall6(procAdjustTokenGroups.Addr(), 6, uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(newstate)), uintptr(buflen), uintptr(unsafe.Pointer(prevstate)), uintptr(unsafe.Pointer(returnlen)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc AdjustTokenPrivileges(token Token, disableAllPrivileges bool, newstate *Tokenprivileges, buflen uint32, prevstate *Tokenprivileges, returnlen *uint32) (err error) {\n\tvar _p0 uint32\n\tif disableAllPrivileges {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall6(procAdjustTokenPrivileges.Addr(), 6, uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(newstate)), uintptr(buflen), uintptr(unsafe.Pointer(prevstate)), uintptr(unsafe.Pointer(returnlen)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc AllocateAndInitializeSid(identAuth *SidIdentifierAuthority, subAuth byte, subAuth0 uint32, subAuth1 uint32, subAuth2 uint32, subAuth3 uint32, subAuth4 uint32, subAuth5 uint32, subAuth6 uint32, subAuth7 uint32, sid **SID) (err error) {\n\tr1, _, e1 := syscall.Syscall12(procAllocateAndInitializeSid.Addr(), 11, uintptr(unsafe.Pointer(identAuth)), uintptr(subAuth), uintptr(subAuth0), uintptr(subAuth1), uintptr(subAuth2), uintptr(subAuth3), uintptr(subAuth4), uintptr(subAuth5), uintptr(subAuth6), uintptr(subAuth7), uintptr(unsafe.Pointer(sid)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc buildSecurityDescriptor(owner *TRUSTEE, group *TRUSTEE, countAccessEntries uint32, accessEntries *EXPLICIT_ACCESS, countAuditEntries uint32, auditEntries *EXPLICIT_ACCESS, oldSecurityDescriptor *SECURITY_DESCRIPTOR, sizeNewSecurityDescriptor *uint32, newSecurityDescriptor **SECURITY_DESCRIPTOR) (ret error) {\n\tr0, _, _ := syscall.Syscall9(procBuildSecurityDescriptorW.Addr(), 9, uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(countAccessEntries), uintptr(unsafe.Pointer(accessEntries)), uintptr(countAuditEntries), uintptr(unsafe.Pointer(auditEntries)), uintptr(unsafe.Pointer(oldSecurityDescriptor)), uintptr(unsafe.Pointer(sizeNewSecurityDescriptor)), uintptr(unsafe.Pointer(newSecurityDescriptor)))\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc ChangeServiceConfig2(service Handle, infoLevel uint32, info *byte) (err error) {\n\tr1, _, e1 := syscall.Syscall(procChangeServiceConfig2W.Addr(), 3, uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(info)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ChangeServiceConfig(service Handle, serviceType uint32, startType uint32, errorControl uint32, binaryPathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16, displayName *uint16) (err error) {\n\tr1, _, e1 := syscall.Syscall12(procChangeServiceConfigW.Addr(), 11, uintptr(service), uintptr(serviceType), uintptr(startType), uintptr(errorControl), uintptr(unsafe.Pointer(binaryPathName)), uintptr(unsafe.Pointer(loadOrderGroup)), uintptr(unsafe.Pointer(tagId)), uintptr(unsafe.Pointer(dependencies)), uintptr(unsafe.Pointer(serviceStartName)), uintptr(unsafe.Pointer(password)), uintptr(unsafe.Pointer(displayName)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc checkTokenMembership(tokenHandle Token, sidToCheck *SID, isMember *int32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procCheckTokenMembership.Addr(), 3, uintptr(tokenHandle), uintptr(unsafe.Pointer(sidToCheck)), uintptr(unsafe.Pointer(isMember)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CloseServiceHandle(handle Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procCloseServiceHandle.Addr(), 1, uintptr(handle), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ControlService(service Handle, control uint32, status *SERVICE_STATUS) (err error) {\n\tr1, _, e1 := syscall.Syscall(procControlService.Addr(), 3, uintptr(service), uintptr(control), uintptr(unsafe.Pointer(status)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc convertSecurityDescriptorToStringSecurityDescriptor(sd *SECURITY_DESCRIPTOR, revision uint32, securityInformation SECURITY_INFORMATION, str **uint16, strLen *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procConvertSecurityDescriptorToStringSecurityDescriptorW.Addr(), 5, uintptr(unsafe.Pointer(sd)), uintptr(revision), uintptr(securityInformation), uintptr(unsafe.Pointer(str)), uintptr(unsafe.Pointer(strLen)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ConvertSidToStringSid(sid *SID, stringSid **uint16) (err error) {\n\tr1, _, e1 := syscall.Syscall(procConvertSidToStringSidW.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(stringSid)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc convertStringSecurityDescriptorToSecurityDescriptor(str string, revision uint32, sd **SECURITY_DESCRIPTOR, size *uint32) (err error) {\n\tvar _p0 *uint16\n\t_p0, err = syscall.UTF16PtrFromString(str)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn _convertStringSecurityDescriptorToSecurityDescriptor(_p0, revision, sd, size)\n}\n\nfunc _convertStringSecurityDescriptorToSecurityDescriptor(str *uint16, revision uint32, sd **SECURITY_DESCRIPTOR, size *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procConvertStringSecurityDescriptorToSecurityDescriptorW.Addr(), 4, uintptr(unsafe.Pointer(str)), uintptr(revision), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(size)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ConvertStringSidToSid(stringSid *uint16, sid **SID) (err error) {\n\tr1, _, e1 := syscall.Syscall(procConvertStringSidToSidW.Addr(), 2, uintptr(unsafe.Pointer(stringSid)), uintptr(unsafe.Pointer(sid)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CopySid(destSidLen uint32, destSid *SID, srcSid *SID) (err error) {\n\tr1, _, e1 := syscall.Syscall(procCopySid.Addr(), 3, uintptr(destSidLen), uintptr(unsafe.Pointer(destSid)), uintptr(unsafe.Pointer(srcSid)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateProcessAsUser(token Token, appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) {\n\tvar _p0 uint32\n\tif inheritHandles {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall12(procCreateProcessAsUserW.Addr(), 11, uintptr(token), uintptr(unsafe.Pointer(appName)), uintptr(unsafe.Pointer(commandLine)), uintptr(unsafe.Pointer(procSecurity)), uintptr(unsafe.Pointer(threadSecurity)), uintptr(_p0), uintptr(creationFlags), uintptr(unsafe.Pointer(env)), uintptr(unsafe.Pointer(currentDir)), uintptr(unsafe.Pointer(startupInfo)), uintptr(unsafe.Pointer(outProcInfo)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateService(mgr Handle, serviceName *uint16, displayName *uint16, access uint32, srvType uint32, startType uint32, errCtl uint32, pathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall15(procCreateServiceW.Addr(), 13, uintptr(mgr), uintptr(unsafe.Pointer(serviceName)), uintptr(unsafe.Pointer(displayName)), uintptr(access), uintptr(srvType), uintptr(startType), uintptr(errCtl), uintptr(unsafe.Pointer(pathName)), uintptr(unsafe.Pointer(loadOrderGroup)), uintptr(unsafe.Pointer(tagId)), uintptr(unsafe.Pointer(dependencies)), uintptr(unsafe.Pointer(serviceStartName)), uintptr(unsafe.Pointer(password)), 0, 0)\n\thandle = Handle(r0)\n\tif handle == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc createWellKnownSid(sidType WELL_KNOWN_SID_TYPE, domainSid *SID, sid *SID, sizeSid *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procCreateWellKnownSid.Addr(), 4, uintptr(sidType), uintptr(unsafe.Pointer(domainSid)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sizeSid)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CryptAcquireContext(provhandle *Handle, container *uint16, provider *uint16, provtype uint32, flags uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procCryptAcquireContextW.Addr(), 5, uintptr(unsafe.Pointer(provhandle)), uintptr(unsafe.Pointer(container)), uintptr(unsafe.Pointer(provider)), uintptr(provtype), uintptr(flags), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CryptGenRandom(provhandle Handle, buflen uint32, buf *byte) (err error) {\n\tr1, _, e1 := syscall.Syscall(procCryptGenRandom.Addr(), 3, uintptr(provhandle), uintptr(buflen), uintptr(unsafe.Pointer(buf)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CryptReleaseContext(provhandle Handle, flags uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procCryptReleaseContext.Addr(), 2, uintptr(provhandle), uintptr(flags), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc DeleteService(service Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procDeleteService.Addr(), 1, uintptr(service), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc DeregisterEventSource(handle Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procDeregisterEventSource.Addr(), 1, uintptr(handle), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc DuplicateTokenEx(existingToken Token, desiredAccess uint32, tokenAttributes *SecurityAttributes, impersonationLevel uint32, tokenType uint32, newToken *Token) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procDuplicateTokenEx.Addr(), 6, uintptr(existingToken), uintptr(desiredAccess), uintptr(unsafe.Pointer(tokenAttributes)), uintptr(impersonationLevel), uintptr(tokenType), uintptr(unsafe.Pointer(newToken)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc EnumDependentServices(service Handle, activityState uint32, services *ENUM_SERVICE_STATUS, buffSize uint32, bytesNeeded *uint32, servicesReturned *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procEnumDependentServicesW.Addr(), 6, uintptr(service), uintptr(activityState), uintptr(unsafe.Pointer(services)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), uintptr(unsafe.Pointer(servicesReturned)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc EnumServicesStatusEx(mgr Handle, infoLevel uint32, serviceType uint32, serviceState uint32, services *byte, bufSize uint32, bytesNeeded *uint32, servicesReturned *uint32, resumeHandle *uint32, groupName *uint16) (err error) {\n\tr1, _, e1 := syscall.Syscall12(procEnumServicesStatusExW.Addr(), 10, uintptr(mgr), uintptr(infoLevel), uintptr(serviceType), uintptr(serviceState), uintptr(unsafe.Pointer(services)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), uintptr(unsafe.Pointer(servicesReturned)), uintptr(unsafe.Pointer(resumeHandle)), uintptr(unsafe.Pointer(groupName)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc EqualSid(sid1 *SID, sid2 *SID) (isEqual bool) {\n\tr0, _, _ := syscall.Syscall(procEqualSid.Addr(), 2, uintptr(unsafe.Pointer(sid1)), uintptr(unsafe.Pointer(sid2)), 0)\n\tisEqual = r0 != 0\n\treturn\n}\n\nfunc FreeSid(sid *SID) (err error) {\n\tr1, _, e1 := syscall.Syscall(procFreeSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0)\n\tif r1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetAce(acl *ACL, aceIndex uint32, pAce **ACCESS_ALLOWED_ACE) (err error) {\n\tr1, _, e1 := syscall.Syscall(procGetAce.Addr(), 3, uintptr(unsafe.Pointer(acl)), uintptr(aceIndex), uintptr(unsafe.Pointer(pAce)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetLengthSid(sid *SID) (len uint32) {\n\tr0, _, _ := syscall.Syscall(procGetLengthSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0)\n\tlen = uint32(r0)\n\treturn\n}\n\nfunc getNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) {\n\tvar _p0 *uint16\n\t_p0, ret = syscall.UTF16PtrFromString(objectName)\n\tif ret != nil {\n\t\treturn\n\t}\n\treturn _getNamedSecurityInfo(_p0, objectType, securityInformation, owner, group, dacl, sacl, sd)\n}\n\nfunc _getNamedSecurityInfo(objectName *uint16, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) {\n\tr0, _, _ := syscall.Syscall9(procGetNamedSecurityInfoW.Addr(), 8, uintptr(unsafe.Pointer(objectName)), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(sd)), 0)\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc getSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, control *SECURITY_DESCRIPTOR_CONTROL, revision *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procGetSecurityDescriptorControl.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(control)), uintptr(unsafe.Pointer(revision)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent *bool, dacl **ACL, daclDefaulted *bool) (err error) {\n\tvar _p0 uint32\n\tif *daclPresent {\n\t\t_p0 = 1\n\t}\n\tvar _p1 uint32\n\tif *daclDefaulted {\n\t\t_p1 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall6(procGetSecurityDescriptorDacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(&_p0)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(&_p1)), 0, 0)\n\t*daclPresent = _p0 != 0\n\t*daclDefaulted = _p1 != 0\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group **SID, groupDefaulted *bool) (err error) {\n\tvar _p0 uint32\n\tif *groupDefaulted {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall(procGetSecurityDescriptorGroup.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(&_p0)))\n\t*groupDefaulted = _p0 != 0\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getSecurityDescriptorLength(sd *SECURITY_DESCRIPTOR) (len uint32) {\n\tr0, _, _ := syscall.Syscall(procGetSecurityDescriptorLength.Addr(), 1, uintptr(unsafe.Pointer(sd)), 0, 0)\n\tlen = uint32(r0)\n\treturn\n}\n\nfunc getSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner **SID, ownerDefaulted *bool) (err error) {\n\tvar _p0 uint32\n\tif *ownerDefaulted {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall(procGetSecurityDescriptorOwner.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(&_p0)))\n\t*ownerDefaulted = _p0 != 0\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) (ret error) {\n\tr0, _, _ := syscall.Syscall(procGetSecurityDescriptorRMControl.Addr(), 2, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(rmControl)), 0)\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc getSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent *bool, sacl **ACL, saclDefaulted *bool) (err error) {\n\tvar _p0 uint32\n\tif *saclPresent {\n\t\t_p0 = 1\n\t}\n\tvar _p1 uint32\n\tif *saclDefaulted {\n\t\t_p1 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall6(procGetSecurityDescriptorSacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(&_p0)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(&_p1)), 0, 0)\n\t*saclPresent = _p0 != 0\n\t*saclDefaulted = _p1 != 0\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner **SID, group **SID, dacl **ACL, sacl **ACL, sd **SECURITY_DESCRIPTOR) (ret error) {\n\tr0, _, _ := syscall.Syscall9(procGetSecurityInfo.Addr(), 8, uintptr(handle), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(sd)), 0)\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc getSidIdentifierAuthority(sid *SID) (authority *SidIdentifierAuthority) {\n\tr0, _, _ := syscall.Syscall(procGetSidIdentifierAuthority.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0)\n\tauthority = (*SidIdentifierAuthority)(unsafe.Pointer(r0))\n\treturn\n}\n\nfunc getSidSubAuthority(sid *SID, index uint32) (subAuthority *uint32) {\n\tr0, _, _ := syscall.Syscall(procGetSidSubAuthority.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(index), 0)\n\tsubAuthority = (*uint32)(unsafe.Pointer(r0))\n\treturn\n}\n\nfunc getSidSubAuthorityCount(sid *SID) (count *uint8) {\n\tr0, _, _ := syscall.Syscall(procGetSidSubAuthorityCount.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0)\n\tcount = (*uint8)(unsafe.Pointer(r0))\n\treturn\n}\n\nfunc GetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32, returnedLen *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procGetTokenInformation.Addr(), 5, uintptr(token), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen), uintptr(unsafe.Pointer(returnedLen)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ImpersonateSelf(impersonationlevel uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procImpersonateSelf.Addr(), 1, uintptr(impersonationlevel), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc initializeSecurityDescriptor(absoluteSD *SECURITY_DESCRIPTOR, revision uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procInitializeSecurityDescriptor.Addr(), 2, uintptr(unsafe.Pointer(absoluteSD)), uintptr(revision), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc InitiateSystemShutdownEx(machineName *uint16, message *uint16, timeout uint32, forceAppsClosed bool, rebootAfterShutdown bool, reason uint32) (err error) {\n\tvar _p0 uint32\n\tif forceAppsClosed {\n\t\t_p0 = 1\n\t}\n\tvar _p1 uint32\n\tif rebootAfterShutdown {\n\t\t_p1 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall6(procInitiateSystemShutdownExW.Addr(), 6, uintptr(unsafe.Pointer(machineName)), uintptr(unsafe.Pointer(message)), uintptr(timeout), uintptr(_p0), uintptr(_p1), uintptr(reason))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc isTokenRestricted(tokenHandle Token) (ret bool, err error) {\n\tr0, _, e1 := syscall.Syscall(procIsTokenRestricted.Addr(), 1, uintptr(tokenHandle), 0, 0)\n\tret = r0 != 0\n\tif !ret {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc isValidSecurityDescriptor(sd *SECURITY_DESCRIPTOR) (isValid bool) {\n\tr0, _, _ := syscall.Syscall(procIsValidSecurityDescriptor.Addr(), 1, uintptr(unsafe.Pointer(sd)), 0, 0)\n\tisValid = r0 != 0\n\treturn\n}\n\nfunc isValidSid(sid *SID) (isValid bool) {\n\tr0, _, _ := syscall.Syscall(procIsValidSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0)\n\tisValid = r0 != 0\n\treturn\n}\n\nfunc isWellKnownSid(sid *SID, sidType WELL_KNOWN_SID_TYPE) (isWellKnown bool) {\n\tr0, _, _ := syscall.Syscall(procIsWellKnownSid.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(sidType), 0)\n\tisWellKnown = r0 != 0\n\treturn\n}\n\nfunc LookupAccountName(systemName *uint16, accountName *uint16, sid *SID, sidLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procLookupAccountNameW.Addr(), 7, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(accountName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sidLen)), uintptr(unsafe.Pointer(refdDomainName)), uintptr(unsafe.Pointer(refdDomainNameLen)), uintptr(unsafe.Pointer(use)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc LookupAccountSid(systemName *uint16, sid *SID, name *uint16, nameLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procLookupAccountSidW.Addr(), 7, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(refdDomainName)), uintptr(unsafe.Pointer(refdDomainNameLen)), uintptr(unsafe.Pointer(use)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc LookupPrivilegeValue(systemname *uint16, name *uint16, luid *LUID) (err error) {\n\tr1, _, e1 := syscall.Syscall(procLookupPrivilegeValueW.Addr(), 3, uintptr(unsafe.Pointer(systemname)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(luid)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc makeAbsoluteSD(selfRelativeSD *SECURITY_DESCRIPTOR, absoluteSD *SECURITY_DESCRIPTOR, absoluteSDSize *uint32, dacl *ACL, daclSize *uint32, sacl *ACL, saclSize *uint32, owner *SID, ownerSize *uint32, group *SID, groupSize *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall12(procMakeAbsoluteSD.Addr(), 11, uintptr(unsafe.Pointer(selfRelativeSD)), uintptr(unsafe.Pointer(absoluteSD)), uintptr(unsafe.Pointer(absoluteSDSize)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(daclSize)), uintptr(unsafe.Pointer(sacl)), uintptr(unsafe.Pointer(saclSize)), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(ownerSize)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(groupSize)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc makeSelfRelativeSD(absoluteSD *SECURITY_DESCRIPTOR, selfRelativeSD *SECURITY_DESCRIPTOR, selfRelativeSDSize *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procMakeSelfRelativeSD.Addr(), 3, uintptr(unsafe.Pointer(absoluteSD)), uintptr(unsafe.Pointer(selfRelativeSD)), uintptr(unsafe.Pointer(selfRelativeSDSize)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc NotifyServiceStatusChange(service Handle, notifyMask uint32, notifier *SERVICE_NOTIFY) (ret error) {\n\tr0, _, _ := syscall.Syscall(procNotifyServiceStatusChangeW.Addr(), 3, uintptr(service), uintptr(notifyMask), uintptr(unsafe.Pointer(notifier)))\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc OpenProcessToken(process Handle, access uint32, token *Token) (err error) {\n\tr1, _, e1 := syscall.Syscall(procOpenProcessToken.Addr(), 3, uintptr(process), uintptr(access), uintptr(unsafe.Pointer(token)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc OpenSCManager(machineName *uint16, databaseName *uint16, access uint32) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall(procOpenSCManagerW.Addr(), 3, uintptr(unsafe.Pointer(machineName)), uintptr(unsafe.Pointer(databaseName)), uintptr(access))\n\thandle = Handle(r0)\n\tif handle == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc OpenService(mgr Handle, serviceName *uint16, access uint32) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall(procOpenServiceW.Addr(), 3, uintptr(mgr), uintptr(unsafe.Pointer(serviceName)), uintptr(access))\n\thandle = Handle(r0)\n\tif handle == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc OpenThreadToken(thread Handle, access uint32, openAsSelf bool, token *Token) (err error) {\n\tvar _p0 uint32\n\tif openAsSelf {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall6(procOpenThreadToken.Addr(), 4, uintptr(thread), uintptr(access), uintptr(_p0), uintptr(unsafe.Pointer(token)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc QueryServiceConfig2(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procQueryServiceConfig2W.Addr(), 5, uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(buff)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc QueryServiceConfig(service Handle, serviceConfig *QUERY_SERVICE_CONFIG, bufSize uint32, bytesNeeded *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procQueryServiceConfigW.Addr(), 4, uintptr(service), uintptr(unsafe.Pointer(serviceConfig)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc QueryServiceDynamicInformation(service Handle, infoLevel uint32, dynamicInfo unsafe.Pointer) (err error) {\n\terr = procQueryServiceDynamicInformation.Find()\n\tif err != nil {\n\t\treturn\n\t}\n\tr1, _, e1 := syscall.Syscall(procQueryServiceDynamicInformation.Addr(), 3, uintptr(service), uintptr(infoLevel), uintptr(dynamicInfo))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc QueryServiceLockStatus(mgr Handle, lockStatus *QUERY_SERVICE_LOCK_STATUS, bufSize uint32, bytesNeeded *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procQueryServiceLockStatusW.Addr(), 4, uintptr(mgr), uintptr(unsafe.Pointer(lockStatus)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc QueryServiceStatus(service Handle, status *SERVICE_STATUS) (err error) {\n\tr1, _, e1 := syscall.Syscall(procQueryServiceStatus.Addr(), 2, uintptr(service), uintptr(unsafe.Pointer(status)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc QueryServiceStatusEx(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procQueryServiceStatusEx.Addr(), 5, uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(buff)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc RegCloseKey(key Handle) (regerrno error) {\n\tr0, _, _ := syscall.Syscall(procRegCloseKey.Addr(), 1, uintptr(key), 0, 0)\n\tif r0 != 0 {\n\t\tregerrno = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc RegEnumKeyEx(key Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, class *uint16, classLen *uint32, lastWriteTime *Filetime) (regerrno error) {\n\tr0, _, _ := syscall.Syscall9(procRegEnumKeyExW.Addr(), 8, uintptr(key), uintptr(index), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(class)), uintptr(unsafe.Pointer(classLen)), uintptr(unsafe.Pointer(lastWriteTime)), 0)\n\tif r0 != 0 {\n\t\tregerrno = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc RegNotifyChangeKeyValue(key Handle, watchSubtree bool, notifyFilter uint32, event Handle, asynchronous bool) (regerrno error) {\n\tvar _p0 uint32\n\tif watchSubtree {\n\t\t_p0 = 1\n\t}\n\tvar _p1 uint32\n\tif asynchronous {\n\t\t_p1 = 1\n\t}\n\tr0, _, _ := syscall.Syscall6(procRegNotifyChangeKeyValue.Addr(), 5, uintptr(key), uintptr(_p0), uintptr(notifyFilter), uintptr(event), uintptr(_p1), 0)\n\tif r0 != 0 {\n\t\tregerrno = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc RegOpenKeyEx(key Handle, subkey *uint16, options uint32, desiredAccess uint32, result *Handle) (regerrno error) {\n\tr0, _, _ := syscall.Syscall6(procRegOpenKeyExW.Addr(), 5, uintptr(key), uintptr(unsafe.Pointer(subkey)), uintptr(options), uintptr(desiredAccess), uintptr(unsafe.Pointer(result)), 0)\n\tif r0 != 0 {\n\t\tregerrno = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc RegQueryInfoKey(key Handle, class *uint16, classLen *uint32, reserved *uint32, subkeysLen *uint32, maxSubkeyLen *uint32, maxClassLen *uint32, valuesLen *uint32, maxValueNameLen *uint32, maxValueLen *uint32, saLen *uint32, lastWriteTime *Filetime) (regerrno error) {\n\tr0, _, _ := syscall.Syscall12(procRegQueryInfoKeyW.Addr(), 12, uintptr(key), uintptr(unsafe.Pointer(class)), uintptr(unsafe.Pointer(classLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(subkeysLen)), uintptr(unsafe.Pointer(maxSubkeyLen)), uintptr(unsafe.Pointer(maxClassLen)), uintptr(unsafe.Pointer(valuesLen)), uintptr(unsafe.Pointer(maxValueNameLen)), uintptr(unsafe.Pointer(maxValueLen)), uintptr(unsafe.Pointer(saLen)), uintptr(unsafe.Pointer(lastWriteTime)))\n\tif r0 != 0 {\n\t\tregerrno = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc RegQueryValueEx(key Handle, name *uint16, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) {\n\tr0, _, _ := syscall.Syscall6(procRegQueryValueExW.Addr(), 6, uintptr(key), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(valtype)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(buflen)))\n\tif r0 != 0 {\n\t\tregerrno = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc RegisterEventSource(uncServerName *uint16, sourceName *uint16) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall(procRegisterEventSourceW.Addr(), 2, uintptr(unsafe.Pointer(uncServerName)), uintptr(unsafe.Pointer(sourceName)), 0)\n\thandle = Handle(r0)\n\tif handle == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc RegisterServiceCtrlHandlerEx(serviceName *uint16, handlerProc uintptr, context uintptr) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall(procRegisterServiceCtrlHandlerExW.Addr(), 3, uintptr(unsafe.Pointer(serviceName)), uintptr(handlerProc), uintptr(context))\n\thandle = Handle(r0)\n\tif handle == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ReportEvent(log Handle, etype uint16, category uint16, eventId uint32, usrSId uintptr, numStrings uint16, dataSize uint32, strings **uint16, rawData *byte) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procReportEventW.Addr(), 9, uintptr(log), uintptr(etype), uintptr(category), uintptr(eventId), uintptr(usrSId), uintptr(numStrings), uintptr(dataSize), uintptr(unsafe.Pointer(strings)), uintptr(unsafe.Pointer(rawData)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc RevertToSelf() (err error) {\n\tr1, _, e1 := syscall.Syscall(procRevertToSelf.Addr(), 0, 0, 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setEntriesInAcl(countExplicitEntries uint32, explicitEntries *EXPLICIT_ACCESS, oldACL *ACL, newACL **ACL) (ret error) {\n\tr0, _, _ := syscall.Syscall6(procSetEntriesInAclW.Addr(), 4, uintptr(countExplicitEntries), uintptr(unsafe.Pointer(explicitEntries)), uintptr(unsafe.Pointer(oldACL)), uintptr(unsafe.Pointer(newACL)), 0, 0)\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc SetKernelObjectSecurity(handle Handle, securityInformation SECURITY_INFORMATION, securityDescriptor *SECURITY_DESCRIPTOR) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetKernelObjectSecurity.Addr(), 3, uintptr(handle), uintptr(securityInformation), uintptr(unsafe.Pointer(securityDescriptor)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetNamedSecurityInfo(objectName string, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) {\n\tvar _p0 *uint16\n\t_p0, ret = syscall.UTF16PtrFromString(objectName)\n\tif ret != nil {\n\t\treturn\n\t}\n\treturn _SetNamedSecurityInfo(_p0, objectType, securityInformation, owner, group, dacl, sacl)\n}\n\nfunc _SetNamedSecurityInfo(objectName *uint16, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) {\n\tr0, _, _ := syscall.Syscall9(procSetNamedSecurityInfoW.Addr(), 7, uintptr(unsafe.Pointer(objectName)), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), 0, 0)\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc setSecurityDescriptorControl(sd *SECURITY_DESCRIPTOR, controlBitsOfInterest SECURITY_DESCRIPTOR_CONTROL, controlBitsToSet SECURITY_DESCRIPTOR_CONTROL) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetSecurityDescriptorControl.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(controlBitsOfInterest), uintptr(controlBitsToSet))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setSecurityDescriptorDacl(sd *SECURITY_DESCRIPTOR, daclPresent bool, dacl *ACL, daclDefaulted bool) (err error) {\n\tvar _p0 uint32\n\tif daclPresent {\n\t\t_p0 = 1\n\t}\n\tvar _p1 uint32\n\tif daclDefaulted {\n\t\t_p1 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall6(procSetSecurityDescriptorDacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(_p0), uintptr(unsafe.Pointer(dacl)), uintptr(_p1), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setSecurityDescriptorGroup(sd *SECURITY_DESCRIPTOR, group *SID, groupDefaulted bool) (err error) {\n\tvar _p0 uint32\n\tif groupDefaulted {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall(procSetSecurityDescriptorGroup.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(group)), uintptr(_p0))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setSecurityDescriptorOwner(sd *SECURITY_DESCRIPTOR, owner *SID, ownerDefaulted bool) (err error) {\n\tvar _p0 uint32\n\tif ownerDefaulted {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall(procSetSecurityDescriptorOwner.Addr(), 3, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(owner)), uintptr(_p0))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setSecurityDescriptorRMControl(sd *SECURITY_DESCRIPTOR, rmControl *uint8) {\n\tsyscall.Syscall(procSetSecurityDescriptorRMControl.Addr(), 2, uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(rmControl)), 0)\n\treturn\n}\n\nfunc setSecurityDescriptorSacl(sd *SECURITY_DESCRIPTOR, saclPresent bool, sacl *ACL, saclDefaulted bool) (err error) {\n\tvar _p0 uint32\n\tif saclPresent {\n\t\t_p0 = 1\n\t}\n\tvar _p1 uint32\n\tif saclDefaulted {\n\t\t_p1 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall6(procSetSecurityDescriptorSacl.Addr(), 4, uintptr(unsafe.Pointer(sd)), uintptr(_p0), uintptr(unsafe.Pointer(sacl)), uintptr(_p1), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetSecurityInfo(handle Handle, objectType SE_OBJECT_TYPE, securityInformation SECURITY_INFORMATION, owner *SID, group *SID, dacl *ACL, sacl *ACL) (ret error) {\n\tr0, _, _ := syscall.Syscall9(procSetSecurityInfo.Addr(), 7, uintptr(handle), uintptr(objectType), uintptr(securityInformation), uintptr(unsafe.Pointer(owner)), uintptr(unsafe.Pointer(group)), uintptr(unsafe.Pointer(dacl)), uintptr(unsafe.Pointer(sacl)), 0, 0)\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc SetServiceStatus(service Handle, serviceStatus *SERVICE_STATUS) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetServiceStatus.Addr(), 2, uintptr(service), uintptr(unsafe.Pointer(serviceStatus)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetThreadToken(thread *Handle, token Token) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetThreadToken.Addr(), 2, uintptr(unsafe.Pointer(thread)), uintptr(token), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetTokenInformation(token Token, infoClass uint32, info *byte, infoLen uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procSetTokenInformation.Addr(), 4, uintptr(token), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc StartServiceCtrlDispatcher(serviceTable *SERVICE_TABLE_ENTRY) (err error) {\n\tr1, _, e1 := syscall.Syscall(procStartServiceCtrlDispatcherW.Addr(), 1, uintptr(unsafe.Pointer(serviceTable)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc StartService(service Handle, numArgs uint32, argVectors **uint16) (err error) {\n\tr1, _, e1 := syscall.Syscall(procStartServiceW.Addr(), 3, uintptr(service), uintptr(numArgs), uintptr(unsafe.Pointer(argVectors)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CertAddCertificateContextToStore(store Handle, certContext *CertContext, addDisposition uint32, storeContext **CertContext) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procCertAddCertificateContextToStore.Addr(), 4, uintptr(store), uintptr(unsafe.Pointer(certContext)), uintptr(addDisposition), uintptr(unsafe.Pointer(storeContext)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CertCloseStore(store Handle, flags uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procCertCloseStore.Addr(), 2, uintptr(store), uintptr(flags), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CertCreateCertificateContext(certEncodingType uint32, certEncoded *byte, encodedLen uint32) (context *CertContext, err error) {\n\tr0, _, e1 := syscall.Syscall(procCertCreateCertificateContext.Addr(), 3, uintptr(certEncodingType), uintptr(unsafe.Pointer(certEncoded)), uintptr(encodedLen))\n\tcontext = (*CertContext)(unsafe.Pointer(r0))\n\tif context == nil {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CertDeleteCertificateFromStore(certContext *CertContext) (err error) {\n\tr1, _, e1 := syscall.Syscall(procCertDeleteCertificateFromStore.Addr(), 1, uintptr(unsafe.Pointer(certContext)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CertDuplicateCertificateContext(certContext *CertContext) (dupContext *CertContext) {\n\tr0, _, _ := syscall.Syscall(procCertDuplicateCertificateContext.Addr(), 1, uintptr(unsafe.Pointer(certContext)), 0, 0)\n\tdupContext = (*CertContext)(unsafe.Pointer(r0))\n\treturn\n}\n\nfunc CertEnumCertificatesInStore(store Handle, prevContext *CertContext) (context *CertContext, err error) {\n\tr0, _, e1 := syscall.Syscall(procCertEnumCertificatesInStore.Addr(), 2, uintptr(store), uintptr(unsafe.Pointer(prevContext)), 0)\n\tcontext = (*CertContext)(unsafe.Pointer(r0))\n\tif context == nil {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CertFindCertificateInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevCertContext *CertContext) (cert *CertContext, err error) {\n\tr0, _, e1 := syscall.Syscall6(procCertFindCertificateInStore.Addr(), 6, uintptr(store), uintptr(certEncodingType), uintptr(findFlags), uintptr(findType), uintptr(findPara), uintptr(unsafe.Pointer(prevCertContext)))\n\tcert = (*CertContext)(unsafe.Pointer(r0))\n\tif cert == nil {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CertFindChainInStore(store Handle, certEncodingType uint32, findFlags uint32, findType uint32, findPara unsafe.Pointer, prevChainContext *CertChainContext) (certchain *CertChainContext, err error) {\n\tr0, _, e1 := syscall.Syscall6(procCertFindChainInStore.Addr(), 6, uintptr(store), uintptr(certEncodingType), uintptr(findFlags), uintptr(findType), uintptr(findPara), uintptr(unsafe.Pointer(prevChainContext)))\n\tcertchain = (*CertChainContext)(unsafe.Pointer(r0))\n\tif certchain == nil {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CertFindExtension(objId *byte, countExtensions uint32, extensions *CertExtension) (ret *CertExtension) {\n\tr0, _, _ := syscall.Syscall(procCertFindExtension.Addr(), 3, uintptr(unsafe.Pointer(objId)), uintptr(countExtensions), uintptr(unsafe.Pointer(extensions)))\n\tret = (*CertExtension)(unsafe.Pointer(r0))\n\treturn\n}\n\nfunc CertFreeCertificateChain(ctx *CertChainContext) {\n\tsyscall.Syscall(procCertFreeCertificateChain.Addr(), 1, uintptr(unsafe.Pointer(ctx)), 0, 0)\n\treturn\n}\n\nfunc CertFreeCertificateContext(ctx *CertContext) (err error) {\n\tr1, _, e1 := syscall.Syscall(procCertFreeCertificateContext.Addr(), 1, uintptr(unsafe.Pointer(ctx)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CertGetCertificateChain(engine Handle, leaf *CertContext, time *Filetime, additionalStore Handle, para *CertChainPara, flags uint32, reserved uintptr, chainCtx **CertChainContext) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procCertGetCertificateChain.Addr(), 8, uintptr(engine), uintptr(unsafe.Pointer(leaf)), uintptr(unsafe.Pointer(time)), uintptr(additionalStore), uintptr(unsafe.Pointer(para)), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(chainCtx)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CertGetNameString(certContext *CertContext, nameType uint32, flags uint32, typePara unsafe.Pointer, name *uint16, size uint32) (chars uint32) {\n\tr0, _, _ := syscall.Syscall6(procCertGetNameStringW.Addr(), 6, uintptr(unsafe.Pointer(certContext)), uintptr(nameType), uintptr(flags), uintptr(typePara), uintptr(unsafe.Pointer(name)), uintptr(size))\n\tchars = uint32(r0)\n\treturn\n}\n\nfunc CertOpenStore(storeProvider uintptr, msgAndCertEncodingType uint32, cryptProv uintptr, flags uint32, para uintptr) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall6(procCertOpenStore.Addr(), 5, uintptr(storeProvider), uintptr(msgAndCertEncodingType), uintptr(cryptProv), uintptr(flags), uintptr(para), 0)\n\thandle = Handle(r0)\n\tif handle == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CertOpenSystemStore(hprov Handle, name *uint16) (store Handle, err error) {\n\tr0, _, e1 := syscall.Syscall(procCertOpenSystemStoreW.Addr(), 2, uintptr(hprov), uintptr(unsafe.Pointer(name)), 0)\n\tstore = Handle(r0)\n\tif store == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CertVerifyCertificateChainPolicy(policyOID uintptr, chain *CertChainContext, para *CertChainPolicyPara, status *CertChainPolicyStatus) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procCertVerifyCertificateChainPolicy.Addr(), 4, uintptr(policyOID), uintptr(unsafe.Pointer(chain)), uintptr(unsafe.Pointer(para)), uintptr(unsafe.Pointer(status)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CryptAcquireCertificatePrivateKey(cert *CertContext, flags uint32, parameters unsafe.Pointer, cryptProvOrNCryptKey *Handle, keySpec *uint32, callerFreeProvOrNCryptKey *bool) (err error) {\n\tvar _p0 uint32\n\tif *callerFreeProvOrNCryptKey {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall6(procCryptAcquireCertificatePrivateKey.Addr(), 6, uintptr(unsafe.Pointer(cert)), uintptr(flags), uintptr(parameters), uintptr(unsafe.Pointer(cryptProvOrNCryptKey)), uintptr(unsafe.Pointer(keySpec)), uintptr(unsafe.Pointer(&_p0)))\n\t*callerFreeProvOrNCryptKey = _p0 != 0\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CryptDecodeObject(encodingType uint32, structType *byte, encodedBytes *byte, lenEncodedBytes uint32, flags uint32, decoded unsafe.Pointer, decodedLen *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procCryptDecodeObject.Addr(), 7, uintptr(encodingType), uintptr(unsafe.Pointer(structType)), uintptr(unsafe.Pointer(encodedBytes)), uintptr(lenEncodedBytes), uintptr(flags), uintptr(decoded), uintptr(unsafe.Pointer(decodedLen)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CryptProtectData(dataIn *DataBlob, name *uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procCryptProtectData.Addr(), 7, uintptr(unsafe.Pointer(dataIn)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(optionalEntropy)), uintptr(reserved), uintptr(unsafe.Pointer(promptStruct)), uintptr(flags), uintptr(unsafe.Pointer(dataOut)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CryptQueryObject(objectType uint32, object unsafe.Pointer, expectedContentTypeFlags uint32, expectedFormatTypeFlags uint32, flags uint32, msgAndCertEncodingType *uint32, contentType *uint32, formatType *uint32, certStore *Handle, msg *Handle, context *unsafe.Pointer) (err error) {\n\tr1, _, e1 := syscall.Syscall12(procCryptQueryObject.Addr(), 11, uintptr(objectType), uintptr(object), uintptr(expectedContentTypeFlags), uintptr(expectedFormatTypeFlags), uintptr(flags), uintptr(unsafe.Pointer(msgAndCertEncodingType)), uintptr(unsafe.Pointer(contentType)), uintptr(unsafe.Pointer(formatType)), uintptr(unsafe.Pointer(certStore)), uintptr(unsafe.Pointer(msg)), uintptr(unsafe.Pointer(context)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CryptUnprotectData(dataIn *DataBlob, name **uint16, optionalEntropy *DataBlob, reserved uintptr, promptStruct *CryptProtectPromptStruct, flags uint32, dataOut *DataBlob) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procCryptUnprotectData.Addr(), 7, uintptr(unsafe.Pointer(dataIn)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(optionalEntropy)), uintptr(reserved), uintptr(unsafe.Pointer(promptStruct)), uintptr(flags), uintptr(unsafe.Pointer(dataOut)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc PFXImportCertStore(pfx *CryptDataBlob, password *uint16, flags uint32) (store Handle, err error) {\n\tr0, _, e1 := syscall.Syscall(procPFXImportCertStore.Addr(), 3, uintptr(unsafe.Pointer(pfx)), uintptr(unsafe.Pointer(password)), uintptr(flags))\n\tstore = Handle(r0)\n\tif store == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc DnsNameCompare(name1 *uint16, name2 *uint16) (same bool) {\n\tr0, _, _ := syscall.Syscall(procDnsNameCompare_W.Addr(), 2, uintptr(unsafe.Pointer(name1)), uintptr(unsafe.Pointer(name2)), 0)\n\tsame = r0 != 0\n\treturn\n}\n\nfunc DnsQuery(name string, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) {\n\tvar _p0 *uint16\n\t_p0, status = syscall.UTF16PtrFromString(name)\n\tif status != nil {\n\t\treturn\n\t}\n\treturn _DnsQuery(_p0, qtype, options, extra, qrs, pr)\n}\n\nfunc _DnsQuery(name *uint16, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) {\n\tr0, _, _ := syscall.Syscall6(procDnsQuery_W.Addr(), 6, uintptr(unsafe.Pointer(name)), uintptr(qtype), uintptr(options), uintptr(unsafe.Pointer(extra)), uintptr(unsafe.Pointer(qrs)), uintptr(unsafe.Pointer(pr)))\n\tif r0 != 0 {\n\t\tstatus = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc DnsRecordListFree(rl *DNSRecord, freetype uint32) {\n\tsyscall.Syscall(procDnsRecordListFree.Addr(), 2, uintptr(unsafe.Pointer(rl)), uintptr(freetype), 0)\n\treturn\n}\n\nfunc DwmGetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) {\n\tr0, _, _ := syscall.Syscall6(procDwmGetWindowAttribute.Addr(), 4, uintptr(hwnd), uintptr(attribute), uintptr(value), uintptr(size), 0, 0)\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc DwmSetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) {\n\tr0, _, _ := syscall.Syscall6(procDwmSetWindowAttribute.Addr(), 4, uintptr(hwnd), uintptr(attribute), uintptr(value), uintptr(size), 0, 0)\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc CancelMibChangeNotify2(notificationHandle Handle) (errcode error) {\n\tr0, _, _ := syscall.Syscall(procCancelMibChangeNotify2.Addr(), 1, uintptr(notificationHandle), 0, 0)\n\tif r0 != 0 {\n\t\terrcode = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc GetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapterAddresses *IpAdapterAddresses, sizePointer *uint32) (errcode error) {\n\tr0, _, _ := syscall.Syscall6(procGetAdaptersAddresses.Addr(), 5, uintptr(family), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(adapterAddresses)), uintptr(unsafe.Pointer(sizePointer)), 0)\n\tif r0 != 0 {\n\t\terrcode = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc GetAdaptersInfo(ai *IpAdapterInfo, ol *uint32) (errcode error) {\n\tr0, _, _ := syscall.Syscall(procGetAdaptersInfo.Addr(), 2, uintptr(unsafe.Pointer(ai)), uintptr(unsafe.Pointer(ol)), 0)\n\tif r0 != 0 {\n\t\terrcode = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc getBestInterfaceEx(sockaddr unsafe.Pointer, pdwBestIfIndex *uint32) (errcode error) {\n\tr0, _, _ := syscall.Syscall(procGetBestInterfaceEx.Addr(), 2, uintptr(sockaddr), uintptr(unsafe.Pointer(pdwBestIfIndex)), 0)\n\tif r0 != 0 {\n\t\terrcode = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc GetIfEntry(pIfRow *MibIfRow) (errcode error) {\n\tr0, _, _ := syscall.Syscall(procGetIfEntry.Addr(), 1, uintptr(unsafe.Pointer(pIfRow)), 0, 0)\n\tif r0 != 0 {\n\t\terrcode = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc GetIfEntry2Ex(level uint32, row *MibIfRow2) (errcode error) {\n\tr0, _, _ := syscall.Syscall(procGetIfEntry2Ex.Addr(), 2, uintptr(level), uintptr(unsafe.Pointer(row)), 0)\n\tif r0 != 0 {\n\t\terrcode = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc GetUnicastIpAddressEntry(row *MibUnicastIpAddressRow) (errcode error) {\n\tr0, _, _ := syscall.Syscall(procGetUnicastIpAddressEntry.Addr(), 1, uintptr(unsafe.Pointer(row)), 0, 0)\n\tif r0 != 0 {\n\t\terrcode = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc NotifyIpInterfaceChange(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) {\n\tvar _p0 uint32\n\tif initialNotification {\n\t\t_p0 = 1\n\t}\n\tr0, _, _ := syscall.Syscall6(procNotifyIpInterfaceChange.Addr(), 5, uintptr(family), uintptr(callback), uintptr(callerContext), uintptr(_p0), uintptr(unsafe.Pointer(notificationHandle)), 0)\n\tif r0 != 0 {\n\t\terrcode = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc NotifyUnicastIpAddressChange(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) {\n\tvar _p0 uint32\n\tif initialNotification {\n\t\t_p0 = 1\n\t}\n\tr0, _, _ := syscall.Syscall6(procNotifyUnicastIpAddressChange.Addr(), 5, uintptr(family), uintptr(callback), uintptr(callerContext), uintptr(_p0), uintptr(unsafe.Pointer(notificationHandle)), 0)\n\tif r0 != 0 {\n\t\terrcode = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc AddDllDirectory(path *uint16) (cookie uintptr, err error) {\n\tr0, _, e1 := syscall.Syscall(procAddDllDirectory.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0)\n\tcookie = uintptr(r0)\n\tif cookie == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc AssignProcessToJobObject(job Handle, process Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procAssignProcessToJobObject.Addr(), 2, uintptr(job), uintptr(process), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CancelIo(s Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procCancelIo.Addr(), 1, uintptr(s), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CancelIoEx(s Handle, o *Overlapped) (err error) {\n\tr1, _, e1 := syscall.Syscall(procCancelIoEx.Addr(), 2, uintptr(s), uintptr(unsafe.Pointer(o)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ClearCommBreak(handle Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procClearCommBreak.Addr(), 1, uintptr(handle), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ClearCommError(handle Handle, lpErrors *uint32, lpStat *ComStat) (err error) {\n\tr1, _, e1 := syscall.Syscall(procClearCommError.Addr(), 3, uintptr(handle), uintptr(unsafe.Pointer(lpErrors)), uintptr(unsafe.Pointer(lpStat)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CloseHandle(handle Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procCloseHandle.Addr(), 1, uintptr(handle), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ClosePseudoConsole(console Handle) {\n\tsyscall.Syscall(procClosePseudoConsole.Addr(), 1, uintptr(console), 0, 0)\n\treturn\n}\n\nfunc ConnectNamedPipe(pipe Handle, overlapped *Overlapped) (err error) {\n\tr1, _, e1 := syscall.Syscall(procConnectNamedPipe.Addr(), 2, uintptr(pipe), uintptr(unsafe.Pointer(overlapped)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateDirectory(path *uint16, sa *SecurityAttributes) (err error) {\n\tr1, _, e1 := syscall.Syscall(procCreateDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(sa)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateEventEx(eventAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall6(procCreateEventExW.Addr(), 4, uintptr(unsafe.Pointer(eventAttrs)), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(desiredAccess), 0, 0)\n\thandle = Handle(r0)\n\tif handle == 0 || e1 == ERROR_ALREADY_EXISTS {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateEvent(eventAttrs *SecurityAttributes, manualReset uint32, initialState uint32, name *uint16) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall6(procCreateEventW.Addr(), 4, uintptr(unsafe.Pointer(eventAttrs)), uintptr(manualReset), uintptr(initialState), uintptr(unsafe.Pointer(name)), 0, 0)\n\thandle = Handle(r0)\n\tif handle == 0 || e1 == ERROR_ALREADY_EXISTS {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateFileMapping(fhandle Handle, sa *SecurityAttributes, prot uint32, maxSizeHigh uint32, maxSizeLow uint32, name *uint16) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall6(procCreateFileMappingW.Addr(), 6, uintptr(fhandle), uintptr(unsafe.Pointer(sa)), uintptr(prot), uintptr(maxSizeHigh), uintptr(maxSizeLow), uintptr(unsafe.Pointer(name)))\n\thandle = Handle(r0)\n\tif handle == 0 || e1 == ERROR_ALREADY_EXISTS {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes, createmode uint32, attrs uint32, templatefile Handle) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall9(procCreateFileW.Addr(), 7, uintptr(unsafe.Pointer(name)), uintptr(access), uintptr(mode), uintptr(unsafe.Pointer(sa)), uintptr(createmode), uintptr(attrs), uintptr(templatefile), 0, 0)\n\thandle = Handle(r0)\n\tif handle == InvalidHandle {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateHardLink(filename *uint16, existingfilename *uint16, reserved uintptr) (err error) {\n\tr1, _, e1 := syscall.Syscall(procCreateHardLinkW.Addr(), 3, uintptr(unsafe.Pointer(filename)), uintptr(unsafe.Pointer(existingfilename)), uintptr(reserved))\n\tif r1&0xff == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateIoCompletionPort(filehandle Handle, cphandle Handle, key uintptr, threadcnt uint32) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall6(procCreateIoCompletionPort.Addr(), 4, uintptr(filehandle), uintptr(cphandle), uintptr(key), uintptr(threadcnt), 0, 0)\n\thandle = Handle(r0)\n\tif handle == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateJobObject(jobAttr *SecurityAttributes, name *uint16) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall(procCreateJobObjectW.Addr(), 2, uintptr(unsafe.Pointer(jobAttr)), uintptr(unsafe.Pointer(name)), 0)\n\thandle = Handle(r0)\n\tif handle == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateMutexEx(mutexAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall6(procCreateMutexExW.Addr(), 4, uintptr(unsafe.Pointer(mutexAttrs)), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(desiredAccess), 0, 0)\n\thandle = Handle(r0)\n\tif handle == 0 || e1 == ERROR_ALREADY_EXISTS {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateMutex(mutexAttrs *SecurityAttributes, initialOwner bool, name *uint16) (handle Handle, err error) {\n\tvar _p0 uint32\n\tif initialOwner {\n\t\t_p0 = 1\n\t}\n\tr0, _, e1 := syscall.Syscall(procCreateMutexW.Addr(), 3, uintptr(unsafe.Pointer(mutexAttrs)), uintptr(_p0), uintptr(unsafe.Pointer(name)))\n\thandle = Handle(r0)\n\tif handle == 0 || e1 == ERROR_ALREADY_EXISTS {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateNamedPipe(name *uint16, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *SecurityAttributes) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall9(procCreateNamedPipeW.Addr(), 8, uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(pipeMode), uintptr(maxInstances), uintptr(outSize), uintptr(inSize), uintptr(defaultTimeout), uintptr(unsafe.Pointer(sa)), 0)\n\thandle = Handle(r0)\n\tif handle == InvalidHandle {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreatePipe(readhandle *Handle, writehandle *Handle, sa *SecurityAttributes, size uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procCreatePipe.Addr(), 4, uintptr(unsafe.Pointer(readhandle)), uintptr(unsafe.Pointer(writehandle)), uintptr(unsafe.Pointer(sa)), uintptr(size), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateProcess(appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) {\n\tvar _p0 uint32\n\tif inheritHandles {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall12(procCreateProcessW.Addr(), 10, uintptr(unsafe.Pointer(appName)), uintptr(unsafe.Pointer(commandLine)), uintptr(unsafe.Pointer(procSecurity)), uintptr(unsafe.Pointer(threadSecurity)), uintptr(_p0), uintptr(creationFlags), uintptr(unsafe.Pointer(env)), uintptr(unsafe.Pointer(currentDir)), uintptr(unsafe.Pointer(startupInfo)), uintptr(unsafe.Pointer(outProcInfo)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc createPseudoConsole(size uint32, in Handle, out Handle, flags uint32, pconsole *Handle) (hr error) {\n\tr0, _, _ := syscall.Syscall6(procCreatePseudoConsole.Addr(), 5, uintptr(size), uintptr(in), uintptr(out), uintptr(flags), uintptr(unsafe.Pointer(pconsole)), 0)\n\tif r0 != 0 {\n\t\thr = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc CreateSymbolicLink(symlinkfilename *uint16, targetfilename *uint16, flags uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procCreateSymbolicLinkW.Addr(), 3, uintptr(unsafe.Pointer(symlinkfilename)), uintptr(unsafe.Pointer(targetfilename)), uintptr(flags))\n\tif r1&0xff == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall(procCreateToolhelp32Snapshot.Addr(), 2, uintptr(flags), uintptr(processId), 0)\n\thandle = Handle(r0)\n\tif handle == InvalidHandle {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc DefineDosDevice(flags uint32, deviceName *uint16, targetPath *uint16) (err error) {\n\tr1, _, e1 := syscall.Syscall(procDefineDosDeviceW.Addr(), 3, uintptr(flags), uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc DeleteFile(path *uint16) (err error) {\n\tr1, _, e1 := syscall.Syscall(procDeleteFileW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc deleteProcThreadAttributeList(attrlist *ProcThreadAttributeList) {\n\tsyscall.Syscall(procDeleteProcThreadAttributeList.Addr(), 1, uintptr(unsafe.Pointer(attrlist)), 0, 0)\n\treturn\n}\n\nfunc DeleteVolumeMountPoint(volumeMountPoint *uint16) (err error) {\n\tr1, _, e1 := syscall.Syscall(procDeleteVolumeMountPointW.Addr(), 1, uintptr(unsafe.Pointer(volumeMountPoint)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc DeviceIoControl(handle Handle, ioControlCode uint32, inBuffer *byte, inBufferSize uint32, outBuffer *byte, outBufferSize uint32, bytesReturned *uint32, overlapped *Overlapped) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procDeviceIoControl.Addr(), 8, uintptr(handle), uintptr(ioControlCode), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferSize), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferSize), uintptr(unsafe.Pointer(bytesReturned)), uintptr(unsafe.Pointer(overlapped)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc DisconnectNamedPipe(pipe Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procDisconnectNamedPipe.Addr(), 1, uintptr(pipe), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc DuplicateHandle(hSourceProcessHandle Handle, hSourceHandle Handle, hTargetProcessHandle Handle, lpTargetHandle *Handle, dwDesiredAccess uint32, bInheritHandle bool, dwOptions uint32) (err error) {\n\tvar _p0 uint32\n\tif bInheritHandle {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall9(procDuplicateHandle.Addr(), 7, uintptr(hSourceProcessHandle), uintptr(hSourceHandle), uintptr(hTargetProcessHandle), uintptr(unsafe.Pointer(lpTargetHandle)), uintptr(dwDesiredAccess), uintptr(_p0), uintptr(dwOptions), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc EscapeCommFunction(handle Handle, dwFunc uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procEscapeCommFunction.Addr(), 2, uintptr(handle), uintptr(dwFunc), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ExitProcess(exitcode uint32) {\n\tsyscall.Syscall(procExitProcess.Addr(), 1, uintptr(exitcode), 0, 0)\n\treturn\n}\n\nfunc ExpandEnvironmentStrings(src *uint16, dst *uint16, size uint32) (n uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procExpandEnvironmentStringsW.Addr(), 3, uintptr(unsafe.Pointer(src)), uintptr(unsafe.Pointer(dst)), uintptr(size))\n\tn = uint32(r0)\n\tif n == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FindClose(handle Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procFindClose.Addr(), 1, uintptr(handle), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FindCloseChangeNotification(handle Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procFindCloseChangeNotification.Addr(), 1, uintptr(handle), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FindFirstChangeNotification(path string, watchSubtree bool, notifyFilter uint32) (handle Handle, err error) {\n\tvar _p0 *uint16\n\t_p0, err = syscall.UTF16PtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn _FindFirstChangeNotification(_p0, watchSubtree, notifyFilter)\n}\n\nfunc _FindFirstChangeNotification(path *uint16, watchSubtree bool, notifyFilter uint32) (handle Handle, err error) {\n\tvar _p1 uint32\n\tif watchSubtree {\n\t\t_p1 = 1\n\t}\n\tr0, _, e1 := syscall.Syscall(procFindFirstChangeNotificationW.Addr(), 3, uintptr(unsafe.Pointer(path)), uintptr(_p1), uintptr(notifyFilter))\n\thandle = Handle(r0)\n\tif handle == InvalidHandle {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc findFirstFile1(name *uint16, data *win32finddata1) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall(procFindFirstFileW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(data)), 0)\n\thandle = Handle(r0)\n\tif handle == InvalidHandle {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FindFirstVolumeMountPoint(rootPathName *uint16, volumeMountPoint *uint16, bufferLength uint32) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall(procFindFirstVolumeMountPointW.Addr(), 3, uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(bufferLength))\n\thandle = Handle(r0)\n\tif handle == InvalidHandle {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FindFirstVolume(volumeName *uint16, bufferLength uint32) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall(procFindFirstVolumeW.Addr(), 2, uintptr(unsafe.Pointer(volumeName)), uintptr(bufferLength), 0)\n\thandle = Handle(r0)\n\tif handle == InvalidHandle {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FindNextChangeNotification(handle Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procFindNextChangeNotification.Addr(), 1, uintptr(handle), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc findNextFile1(handle Handle, data *win32finddata1) (err error) {\n\tr1, _, e1 := syscall.Syscall(procFindNextFileW.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(data)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FindNextVolumeMountPoint(findVolumeMountPoint Handle, volumeMountPoint *uint16, bufferLength uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procFindNextVolumeMountPointW.Addr(), 3, uintptr(findVolumeMountPoint), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(bufferLength))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FindNextVolume(findVolume Handle, volumeName *uint16, bufferLength uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procFindNextVolumeW.Addr(), 3, uintptr(findVolume), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferLength))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc findResource(module Handle, name uintptr, resType uintptr) (resInfo Handle, err error) {\n\tr0, _, e1 := syscall.Syscall(procFindResourceW.Addr(), 3, uintptr(module), uintptr(name), uintptr(resType))\n\tresInfo = Handle(r0)\n\tif resInfo == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FindVolumeClose(findVolume Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procFindVolumeClose.Addr(), 1, uintptr(findVolume), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FindVolumeMountPointClose(findVolumeMountPoint Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procFindVolumeMountPointClose.Addr(), 1, uintptr(findVolumeMountPoint), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FlushFileBuffers(handle Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procFlushFileBuffers.Addr(), 1, uintptr(handle), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FlushViewOfFile(addr uintptr, length uintptr) (err error) {\n\tr1, _, e1 := syscall.Syscall(procFlushViewOfFile.Addr(), 2, uintptr(addr), uintptr(length), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FormatMessage(flags uint32, msgsrc uintptr, msgid uint32, langid uint32, buf []uint16, args *byte) (n uint32, err error) {\n\tvar _p0 *uint16\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tr0, _, e1 := syscall.Syscall9(procFormatMessageW.Addr(), 7, uintptr(flags), uintptr(msgsrc), uintptr(msgid), uintptr(langid), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(args)), 0, 0)\n\tn = uint32(r0)\n\tif n == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FreeEnvironmentStrings(envs *uint16) (err error) {\n\tr1, _, e1 := syscall.Syscall(procFreeEnvironmentStringsW.Addr(), 1, uintptr(unsafe.Pointer(envs)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc FreeLibrary(handle Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procFreeLibrary.Addr(), 1, uintptr(handle), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GenerateConsoleCtrlEvent(ctrlEvent uint32, processGroupID uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procGenerateConsoleCtrlEvent.Addr(), 2, uintptr(ctrlEvent), uintptr(processGroupID), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetACP() (acp uint32) {\n\tr0, _, _ := syscall.Syscall(procGetACP.Addr(), 0, 0, 0, 0)\n\tacp = uint32(r0)\n\treturn\n}\n\nfunc GetActiveProcessorCount(groupNumber uint16) (ret uint32) {\n\tr0, _, _ := syscall.Syscall(procGetActiveProcessorCount.Addr(), 1, uintptr(groupNumber), 0, 0)\n\tret = uint32(r0)\n\treturn\n}\n\nfunc GetCommModemStatus(handle Handle, lpModemStat *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procGetCommModemStatus.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(lpModemStat)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetCommState(handle Handle, lpDCB *DCB) (err error) {\n\tr1, _, e1 := syscall.Syscall(procGetCommState.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(lpDCB)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) {\n\tr1, _, e1 := syscall.Syscall(procGetCommTimeouts.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(timeouts)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetCommandLine() (cmd *uint16) {\n\tr0, _, _ := syscall.Syscall(procGetCommandLineW.Addr(), 0, 0, 0, 0)\n\tcmd = (*uint16)(unsafe.Pointer(r0))\n\treturn\n}\n\nfunc GetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procGetComputerNameExW.Addr(), 3, uintptr(nametype), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetComputerName(buf *uint16, n *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procGetComputerNameW.Addr(), 2, uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetConsoleCP() (cp uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetConsoleCP.Addr(), 0, 0, 0, 0)\n\tcp = uint32(r0)\n\tif cp == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetConsoleMode(console Handle, mode *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(console), uintptr(unsafe.Pointer(mode)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetConsoleOutputCP() (cp uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetConsoleOutputCP.Addr(), 0, 0, 0, 0)\n\tcp = uint32(r0)\n\tif cp == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetConsoleScreenBufferInfo(console Handle, info *ConsoleScreenBufferInfo) (err error) {\n\tr1, _, e1 := syscall.Syscall(procGetConsoleScreenBufferInfo.Addr(), 2, uintptr(console), uintptr(unsafe.Pointer(info)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetCurrentDirectory(buflen uint32, buf *uint16) (n uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetCurrentDirectoryW.Addr(), 2, uintptr(buflen), uintptr(unsafe.Pointer(buf)), 0)\n\tn = uint32(r0)\n\tif n == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetCurrentProcessId() (pid uint32) {\n\tr0, _, _ := syscall.Syscall(procGetCurrentProcessId.Addr(), 0, 0, 0, 0)\n\tpid = uint32(r0)\n\treturn\n}\n\nfunc GetCurrentThreadId() (id uint32) {\n\tr0, _, _ := syscall.Syscall(procGetCurrentThreadId.Addr(), 0, 0, 0, 0)\n\tid = uint32(r0)\n\treturn\n}\n\nfunc GetDiskFreeSpaceEx(directoryName *uint16, freeBytesAvailableToCaller *uint64, totalNumberOfBytes *uint64, totalNumberOfFreeBytes *uint64) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procGetDiskFreeSpaceExW.Addr(), 4, uintptr(unsafe.Pointer(directoryName)), uintptr(unsafe.Pointer(freeBytesAvailableToCaller)), uintptr(unsafe.Pointer(totalNumberOfBytes)), uintptr(unsafe.Pointer(totalNumberOfFreeBytes)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetDriveType(rootPathName *uint16) (driveType uint32) {\n\tr0, _, _ := syscall.Syscall(procGetDriveTypeW.Addr(), 1, uintptr(unsafe.Pointer(rootPathName)), 0, 0)\n\tdriveType = uint32(r0)\n\treturn\n}\n\nfunc GetEnvironmentStrings() (envs *uint16, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetEnvironmentStringsW.Addr(), 0, 0, 0, 0)\n\tenvs = (*uint16)(unsafe.Pointer(r0))\n\tif envs == nil {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetEnvironmentVariable(name *uint16, buffer *uint16, size uint32) (n uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetEnvironmentVariableW.Addr(), 3, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(buffer)), uintptr(size))\n\tn = uint32(r0)\n\tif n == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetExitCodeProcess(handle Handle, exitcode *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procGetExitCodeProcess.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(exitcode)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetFileAttributesEx(name *uint16, level uint32, info *byte) (err error) {\n\tr1, _, e1 := syscall.Syscall(procGetFileAttributesExW.Addr(), 3, uintptr(unsafe.Pointer(name)), uintptr(level), uintptr(unsafe.Pointer(info)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetFileAttributes(name *uint16) (attrs uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetFileAttributesW.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0)\n\tattrs = uint32(r0)\n\tif attrs == INVALID_FILE_ATTRIBUTES {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetFileInformationByHandle(handle Handle, data *ByHandleFileInformation) (err error) {\n\tr1, _, e1 := syscall.Syscall(procGetFileInformationByHandle.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(data)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetFileInformationByHandleEx(handle Handle, class uint32, outBuffer *byte, outBufferLen uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procGetFileInformationByHandleEx.Addr(), 4, uintptr(handle), uintptr(class), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferLen), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procGetFileTime.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetFileType(filehandle Handle) (n uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetFileType.Addr(), 1, uintptr(filehandle), 0, 0)\n\tn = uint32(r0)\n\tif n == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetFinalPathNameByHandle(file Handle, filePath *uint16, filePathSize uint32, flags uint32) (n uint32, err error) {\n\tr0, _, e1 := syscall.Syscall6(procGetFinalPathNameByHandleW.Addr(), 4, uintptr(file), uintptr(unsafe.Pointer(filePath)), uintptr(filePathSize), uintptr(flags), 0, 0)\n\tn = uint32(r0)\n\tif n == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetFullPathName(path *uint16, buflen uint32, buf *uint16, fname **uint16) (n uint32, err error) {\n\tr0, _, e1 := syscall.Syscall6(procGetFullPathNameW.Addr(), 4, uintptr(unsafe.Pointer(path)), uintptr(buflen), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(fname)), 0, 0)\n\tn = uint32(r0)\n\tif n == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetLargePageMinimum() (size uintptr) {\n\tr0, _, _ := syscall.Syscall(procGetLargePageMinimum.Addr(), 0, 0, 0, 0)\n\tsize = uintptr(r0)\n\treturn\n}\n\nfunc GetLastError() (lasterr error) {\n\tr0, _, _ := syscall.Syscall(procGetLastError.Addr(), 0, 0, 0, 0)\n\tif r0 != 0 {\n\t\tlasterr = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc GetLogicalDriveStrings(bufferLength uint32, buffer *uint16) (n uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetLogicalDriveStringsW.Addr(), 2, uintptr(bufferLength), uintptr(unsafe.Pointer(buffer)), 0)\n\tn = uint32(r0)\n\tif n == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetLogicalDrives() (drivesBitMask uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetLogicalDrives.Addr(), 0, 0, 0, 0)\n\tdrivesBitMask = uint32(r0)\n\tif drivesBitMask == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetLongPathName(path *uint16, buf *uint16, buflen uint32) (n uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetLongPathNameW.Addr(), 3, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(buf)), uintptr(buflen))\n\tn = uint32(r0)\n\tif n == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetMaximumProcessorCount(groupNumber uint16) (ret uint32) {\n\tr0, _, _ := syscall.Syscall(procGetMaximumProcessorCount.Addr(), 1, uintptr(groupNumber), 0, 0)\n\tret = uint32(r0)\n\treturn\n}\n\nfunc GetModuleFileName(module Handle, filename *uint16, size uint32) (n uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetModuleFileNameW.Addr(), 3, uintptr(module), uintptr(unsafe.Pointer(filename)), uintptr(size))\n\tn = uint32(r0)\n\tif n == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetModuleHandleEx(flags uint32, moduleName *uint16, module *Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procGetModuleHandleExW.Addr(), 3, uintptr(flags), uintptr(unsafe.Pointer(moduleName)), uintptr(unsafe.Pointer(module)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetNamedPipeClientProcessId(pipe Handle, clientProcessID *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procGetNamedPipeClientProcessId.Addr(), 2, uintptr(pipe), uintptr(unsafe.Pointer(clientProcessID)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetNamedPipeHandleState(pipe Handle, state *uint32, curInstances *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32, userName *uint16, maxUserNameSize uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procGetNamedPipeHandleStateW.Addr(), 7, uintptr(pipe), uintptr(unsafe.Pointer(state)), uintptr(unsafe.Pointer(curInstances)), uintptr(unsafe.Pointer(maxCollectionCount)), uintptr(unsafe.Pointer(collectDataTimeout)), uintptr(unsafe.Pointer(userName)), uintptr(maxUserNameSize), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetNamedPipeInfo(pipe Handle, flags *uint32, outSize *uint32, inSize *uint32, maxInstances *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procGetNamedPipeInfo.Addr(), 5, uintptr(pipe), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(outSize)), uintptr(unsafe.Pointer(inSize)), uintptr(unsafe.Pointer(maxInstances)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetNamedPipeServerProcessId(pipe Handle, serverProcessID *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procGetNamedPipeServerProcessId.Addr(), 2, uintptr(pipe), uintptr(unsafe.Pointer(serverProcessID)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetOverlappedResult(handle Handle, overlapped *Overlapped, done *uint32, wait bool) (err error) {\n\tvar _p0 uint32\n\tif wait {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall6(procGetOverlappedResult.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(done)), uintptr(_p0), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetPriorityClass(process Handle) (ret uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetPriorityClass.Addr(), 1, uintptr(process), 0, 0)\n\tret = uint32(r0)\n\tif ret == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetProcAddress(module Handle, procname string) (proc uintptr, err error) {\n\tvar _p0 *byte\n\t_p0, err = syscall.BytePtrFromString(procname)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn _GetProcAddress(module, _p0)\n}\n\nfunc _GetProcAddress(module Handle, procname *byte) (proc uintptr, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetProcAddress.Addr(), 2, uintptr(module), uintptr(unsafe.Pointer(procname)), 0)\n\tproc = uintptr(r0)\n\tif proc == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetProcessId(process Handle) (id uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetProcessId.Addr(), 1, uintptr(process), 0, 0)\n\tid = uint32(r0)\n\tif id == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getProcessPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procGetProcessPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetProcessShutdownParameters(level *uint32, flags *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procGetProcessShutdownParameters.Addr(), 2, uintptr(unsafe.Pointer(level)), uintptr(unsafe.Pointer(flags)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetProcessTimes(handle Handle, creationTime *Filetime, exitTime *Filetime, kernelTime *Filetime, userTime *Filetime) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procGetProcessTimes.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(creationTime)), uintptr(unsafe.Pointer(exitTime)), uintptr(unsafe.Pointer(kernelTime)), uintptr(unsafe.Pointer(userTime)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetProcessWorkingSetSizeEx(hProcess Handle, lpMinimumWorkingSetSize *uintptr, lpMaximumWorkingSetSize *uintptr, flags *uint32) {\n\tsyscall.Syscall6(procGetProcessWorkingSetSizeEx.Addr(), 4, uintptr(hProcess), uintptr(unsafe.Pointer(lpMinimumWorkingSetSize)), uintptr(unsafe.Pointer(lpMaximumWorkingSetSize)), uintptr(unsafe.Pointer(flags)), 0, 0)\n\treturn\n}\n\nfunc GetQueuedCompletionStatus(cphandle Handle, qty *uint32, key *uintptr, overlapped **Overlapped, timeout uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procGetQueuedCompletionStatus.Addr(), 5, uintptr(cphandle), uintptr(unsafe.Pointer(qty)), uintptr(unsafe.Pointer(key)), uintptr(unsafe.Pointer(overlapped)), uintptr(timeout), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetShortPathName(longpath *uint16, shortpath *uint16, buflen uint32) (n uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetShortPathNameW.Addr(), 3, uintptr(unsafe.Pointer(longpath)), uintptr(unsafe.Pointer(shortpath)), uintptr(buflen))\n\tn = uint32(r0)\n\tif n == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getStartupInfo(startupInfo *StartupInfo) {\n\tsyscall.Syscall(procGetStartupInfoW.Addr(), 1, uintptr(unsafe.Pointer(startupInfo)), 0, 0)\n\treturn\n}\n\nfunc GetStdHandle(stdhandle uint32) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetStdHandle.Addr(), 1, uintptr(stdhandle), 0, 0)\n\thandle = Handle(r0)\n\tif handle == InvalidHandle {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getSystemDirectory(dir *uint16, dirLen uint32) (len uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetSystemDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(dir)), uintptr(dirLen), 0)\n\tlen = uint32(r0)\n\tif len == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getSystemPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procGetSystemPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetSystemTimeAsFileTime(time *Filetime) {\n\tsyscall.Syscall(procGetSystemTimeAsFileTime.Addr(), 1, uintptr(unsafe.Pointer(time)), 0, 0)\n\treturn\n}\n\nfunc GetSystemTimePreciseAsFileTime(time *Filetime) {\n\tsyscall.Syscall(procGetSystemTimePreciseAsFileTime.Addr(), 1, uintptr(unsafe.Pointer(time)), 0, 0)\n\treturn\n}\n\nfunc getSystemWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetSystemWindowsDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(dir)), uintptr(dirLen), 0)\n\tlen = uint32(r0)\n\tif len == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetTempPath(buflen uint32, buf *uint16) (n uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetTempPathW.Addr(), 2, uintptr(buflen), uintptr(unsafe.Pointer(buf)), 0)\n\tn = uint32(r0)\n\tif n == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getThreadPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procGetThreadPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getTickCount64() (ms uint64) {\n\tr0, _, _ := syscall.Syscall(procGetTickCount64.Addr(), 0, 0, 0, 0)\n\tms = uint64(r0)\n\treturn\n}\n\nfunc GetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetTimeZoneInformation.Addr(), 1, uintptr(unsafe.Pointer(tzi)), 0, 0)\n\trc = uint32(r0)\n\tif rc == 0xffffffff {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getUserPreferredUILanguages(flags uint32, numLanguages *uint32, buf *uint16, bufSize *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procGetUserPreferredUILanguages.Addr(), 4, uintptr(flags), uintptr(unsafe.Pointer(numLanguages)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(bufSize)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetVersion() (ver uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetVersion.Addr(), 0, 0, 0, 0)\n\tver = uint32(r0)\n\tif ver == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetVolumeInformationByHandle(file Handle, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procGetVolumeInformationByHandleW.Addr(), 8, uintptr(file), uintptr(unsafe.Pointer(volumeNameBuffer)), uintptr(volumeNameSize), uintptr(unsafe.Pointer(volumeNameSerialNumber)), uintptr(unsafe.Pointer(maximumComponentLength)), uintptr(unsafe.Pointer(fileSystemFlags)), uintptr(unsafe.Pointer(fileSystemNameBuffer)), uintptr(fileSystemNameSize), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetVolumeInformation(rootPathName *uint16, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procGetVolumeInformationW.Addr(), 8, uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeNameBuffer)), uintptr(volumeNameSize), uintptr(unsafe.Pointer(volumeNameSerialNumber)), uintptr(unsafe.Pointer(maximumComponentLength)), uintptr(unsafe.Pointer(fileSystemFlags)), uintptr(unsafe.Pointer(fileSystemNameBuffer)), uintptr(fileSystemNameSize), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetVolumeNameForVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16, bufferlength uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procGetVolumeNameForVolumeMountPointW.Addr(), 3, uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferlength))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetVolumePathName(fileName *uint16, volumePathName *uint16, bufferLength uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procGetVolumePathNameW.Addr(), 3, uintptr(unsafe.Pointer(fileName)), uintptr(unsafe.Pointer(volumePathName)), uintptr(bufferLength))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetVolumePathNamesForVolumeName(volumeName *uint16, volumePathNames *uint16, bufferLength uint32, returnLength *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procGetVolumePathNamesForVolumeNameW.Addr(), 4, uintptr(unsafe.Pointer(volumeName)), uintptr(unsafe.Pointer(volumePathNames)), uintptr(bufferLength), uintptr(unsafe.Pointer(returnLength)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getWindowsDirectory(dir *uint16, dirLen uint32) (len uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetWindowsDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(dir)), uintptr(dirLen), 0)\n\tlen = uint32(r0)\n\tif len == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc initializeProcThreadAttributeList(attrlist *ProcThreadAttributeList, attrcount uint32, flags uint32, size *uintptr) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procInitializeProcThreadAttributeList.Addr(), 4, uintptr(unsafe.Pointer(attrlist)), uintptr(attrcount), uintptr(flags), uintptr(unsafe.Pointer(size)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc IsWow64Process(handle Handle, isWow64 *bool) (err error) {\n\tvar _p0 uint32\n\tif *isWow64 {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall(procIsWow64Process.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(&_p0)), 0)\n\t*isWow64 = _p0 != 0\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc IsWow64Process2(handle Handle, processMachine *uint16, nativeMachine *uint16) (err error) {\n\terr = procIsWow64Process2.Find()\n\tif err != nil {\n\t\treturn\n\t}\n\tr1, _, e1 := syscall.Syscall(procIsWow64Process2.Addr(), 3, uintptr(handle), uintptr(unsafe.Pointer(processMachine)), uintptr(unsafe.Pointer(nativeMachine)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc LoadLibraryEx(libname string, zero Handle, flags uintptr) (handle Handle, err error) {\n\tvar _p0 *uint16\n\t_p0, err = syscall.UTF16PtrFromString(libname)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn _LoadLibraryEx(_p0, zero, flags)\n}\n\nfunc _LoadLibraryEx(libname *uint16, zero Handle, flags uintptr) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall(procLoadLibraryExW.Addr(), 3, uintptr(unsafe.Pointer(libname)), uintptr(zero), uintptr(flags))\n\thandle = Handle(r0)\n\tif handle == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc LoadLibrary(libname string) (handle Handle, err error) {\n\tvar _p0 *uint16\n\t_p0, err = syscall.UTF16PtrFromString(libname)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn _LoadLibrary(_p0)\n}\n\nfunc _LoadLibrary(libname *uint16) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall(procLoadLibraryW.Addr(), 1, uintptr(unsafe.Pointer(libname)), 0, 0)\n\thandle = Handle(r0)\n\tif handle == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc LoadResource(module Handle, resInfo Handle) (resData Handle, err error) {\n\tr0, _, e1 := syscall.Syscall(procLoadResource.Addr(), 2, uintptr(module), uintptr(resInfo), 0)\n\tresData = Handle(r0)\n\tif resData == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc LocalAlloc(flags uint32, length uint32) (ptr uintptr, err error) {\n\tr0, _, e1 := syscall.Syscall(procLocalAlloc.Addr(), 2, uintptr(flags), uintptr(length), 0)\n\tptr = uintptr(r0)\n\tif ptr == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc LocalFree(hmem Handle) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall(procLocalFree.Addr(), 1, uintptr(hmem), 0, 0)\n\thandle = Handle(r0)\n\tif handle != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc LockFileEx(file Handle, flags uint32, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procLockFileEx.Addr(), 6, uintptr(file), uintptr(flags), uintptr(reserved), uintptr(bytesLow), uintptr(bytesHigh), uintptr(unsafe.Pointer(overlapped)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc LockResource(resData Handle) (addr uintptr, err error) {\n\tr0, _, e1 := syscall.Syscall(procLockResource.Addr(), 1, uintptr(resData), 0, 0)\n\taddr = uintptr(r0)\n\tif addr == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc MapViewOfFile(handle Handle, access uint32, offsetHigh uint32, offsetLow uint32, length uintptr) (addr uintptr, err error) {\n\tr0, _, e1 := syscall.Syscall6(procMapViewOfFile.Addr(), 5, uintptr(handle), uintptr(access), uintptr(offsetHigh), uintptr(offsetLow), uintptr(length), 0)\n\taddr = uintptr(r0)\n\tif addr == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc Module32First(snapshot Handle, moduleEntry *ModuleEntry32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procModule32FirstW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(moduleEntry)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc Module32Next(snapshot Handle, moduleEntry *ModuleEntry32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procModule32NextW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(moduleEntry)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc MoveFileEx(from *uint16, to *uint16, flags uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procMoveFileExW.Addr(), 3, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)), uintptr(flags))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc MoveFile(from *uint16, to *uint16) (err error) {\n\tr1, _, e1 := syscall.Syscall(procMoveFileW.Addr(), 2, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc MultiByteToWideChar(codePage uint32, dwFlags uint32, str *byte, nstr int32, wchar *uint16, nwchar int32) (nwrite int32, err error) {\n\tr0, _, e1 := syscall.Syscall6(procMultiByteToWideChar.Addr(), 6, uintptr(codePage), uintptr(dwFlags), uintptr(unsafe.Pointer(str)), uintptr(nstr), uintptr(unsafe.Pointer(wchar)), uintptr(nwchar))\n\tnwrite = int32(r0)\n\tif nwrite == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc OpenEvent(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) {\n\tvar _p0 uint32\n\tif inheritHandle {\n\t\t_p0 = 1\n\t}\n\tr0, _, e1 := syscall.Syscall(procOpenEventW.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(unsafe.Pointer(name)))\n\thandle = Handle(r0)\n\tif handle == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc OpenMutex(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) {\n\tvar _p0 uint32\n\tif inheritHandle {\n\t\t_p0 = 1\n\t}\n\tr0, _, e1 := syscall.Syscall(procOpenMutexW.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(unsafe.Pointer(name)))\n\thandle = Handle(r0)\n\tif handle == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc OpenProcess(desiredAccess uint32, inheritHandle bool, processId uint32) (handle Handle, err error) {\n\tvar _p0 uint32\n\tif inheritHandle {\n\t\t_p0 = 1\n\t}\n\tr0, _, e1 := syscall.Syscall(procOpenProcess.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(processId))\n\thandle = Handle(r0)\n\tif handle == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc OpenThread(desiredAccess uint32, inheritHandle bool, threadId uint32) (handle Handle, err error) {\n\tvar _p0 uint32\n\tif inheritHandle {\n\t\t_p0 = 1\n\t}\n\tr0, _, e1 := syscall.Syscall(procOpenThread.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(threadId))\n\thandle = Handle(r0)\n\tif handle == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc PostQueuedCompletionStatus(cphandle Handle, qty uint32, key uintptr, overlapped *Overlapped) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procPostQueuedCompletionStatus.Addr(), 4, uintptr(cphandle), uintptr(qty), uintptr(key), uintptr(unsafe.Pointer(overlapped)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc Process32First(snapshot Handle, procEntry *ProcessEntry32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procProcess32FirstW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(procEntry)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc Process32Next(snapshot Handle, procEntry *ProcessEntry32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procProcess32NextW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(procEntry)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ProcessIdToSessionId(pid uint32, sessionid *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procProcessIdToSessionId.Addr(), 2, uintptr(pid), uintptr(unsafe.Pointer(sessionid)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc PulseEvent(event Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procPulseEvent.Addr(), 1, uintptr(event), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc PurgeComm(handle Handle, dwFlags uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procPurgeComm.Addr(), 2, uintptr(handle), uintptr(dwFlags), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc QueryDosDevice(deviceName *uint16, targetPath *uint16, max uint32) (n uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procQueryDosDeviceW.Addr(), 3, uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath)), uintptr(max))\n\tn = uint32(r0)\n\tif n == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc QueryFullProcessImageName(proc Handle, flags uint32, exeName *uint16, size *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procQueryFullProcessImageNameW.Addr(), 4, uintptr(proc), uintptr(flags), uintptr(unsafe.Pointer(exeName)), uintptr(unsafe.Pointer(size)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc QueryInformationJobObject(job Handle, JobObjectInformationClass int32, JobObjectInformation uintptr, JobObjectInformationLength uint32, retlen *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procQueryInformationJobObject.Addr(), 5, uintptr(job), uintptr(JobObjectInformationClass), uintptr(JobObjectInformation), uintptr(JobObjectInformationLength), uintptr(unsafe.Pointer(retlen)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ReadConsole(console Handle, buf *uint16, toread uint32, read *uint32, inputControl *byte) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procReadConsoleW.Addr(), 5, uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(toread), uintptr(unsafe.Pointer(read)), uintptr(unsafe.Pointer(inputControl)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ReadDirectoryChanges(handle Handle, buf *byte, buflen uint32, watchSubTree bool, mask uint32, retlen *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) {\n\tvar _p0 uint32\n\tif watchSubTree {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall9(procReadDirectoryChangesW.Addr(), 8, uintptr(handle), uintptr(unsafe.Pointer(buf)), uintptr(buflen), uintptr(_p0), uintptr(mask), uintptr(unsafe.Pointer(retlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc readFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tr1, _, e1 := syscall.Syscall6(procReadFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ReadProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesRead *uintptr) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procReadProcessMemory.Addr(), 5, uintptr(process), uintptr(baseAddress), uintptr(unsafe.Pointer(buffer)), uintptr(size), uintptr(unsafe.Pointer(numberOfBytesRead)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ReleaseMutex(mutex Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procReleaseMutex.Addr(), 1, uintptr(mutex), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc RemoveDirectory(path *uint16) (err error) {\n\tr1, _, e1 := syscall.Syscall(procRemoveDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc RemoveDllDirectory(cookie uintptr) (err error) {\n\tr1, _, e1 := syscall.Syscall(procRemoveDllDirectory.Addr(), 1, uintptr(cookie), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ResetEvent(event Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procResetEvent.Addr(), 1, uintptr(event), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc resizePseudoConsole(pconsole Handle, size uint32) (hr error) {\n\tr0, _, _ := syscall.Syscall(procResizePseudoConsole.Addr(), 2, uintptr(pconsole), uintptr(size), 0)\n\tif r0 != 0 {\n\t\thr = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc ResumeThread(thread Handle) (ret uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procResumeThread.Addr(), 1, uintptr(thread), 0, 0)\n\tret = uint32(r0)\n\tif ret == 0xffffffff {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetCommBreak(handle Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetCommBreak.Addr(), 1, uintptr(handle), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetCommMask(handle Handle, dwEvtMask uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetCommMask.Addr(), 2, uintptr(handle), uintptr(dwEvtMask), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetCommState(handle Handle, lpDCB *DCB) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetCommState.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(lpDCB)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetCommTimeouts(handle Handle, timeouts *CommTimeouts) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetCommTimeouts.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(timeouts)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetConsoleCP(cp uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetConsoleCP.Addr(), 1, uintptr(cp), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setConsoleCursorPosition(console Handle, position uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetConsoleCursorPosition.Addr(), 2, uintptr(console), uintptr(position), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetConsoleMode(console Handle, mode uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetConsoleMode.Addr(), 2, uintptr(console), uintptr(mode), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetConsoleOutputCP(cp uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetConsoleOutputCP.Addr(), 1, uintptr(cp), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetCurrentDirectory(path *uint16) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetCurrentDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetDefaultDllDirectories(directoryFlags uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetDefaultDllDirectories.Addr(), 1, uintptr(directoryFlags), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetDllDirectory(path string) (err error) {\n\tvar _p0 *uint16\n\t_p0, err = syscall.UTF16PtrFromString(path)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn _SetDllDirectory(_p0)\n}\n\nfunc _SetDllDirectory(path *uint16) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetDllDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetEndOfFile(handle Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetEndOfFile.Addr(), 1, uintptr(handle), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetEnvironmentVariable(name *uint16, value *uint16) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetEnvironmentVariableW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(value)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetErrorMode(mode uint32) (ret uint32) {\n\tr0, _, _ := syscall.Syscall(procSetErrorMode.Addr(), 1, uintptr(mode), 0, 0)\n\tret = uint32(r0)\n\treturn\n}\n\nfunc SetEvent(event Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetEvent.Addr(), 1, uintptr(event), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetFileAttributes(name *uint16, attrs uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetFileAttributesW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(attrs), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetFileCompletionNotificationModes(handle Handle, flags uint8) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetFileCompletionNotificationModes.Addr(), 2, uintptr(handle), uintptr(flags), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetFileInformationByHandle(handle Handle, class uint32, inBuffer *byte, inBufferLen uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procSetFileInformationByHandle.Addr(), 4, uintptr(handle), uintptr(class), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferLen), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetFilePointer(handle Handle, lowoffset int32, highoffsetptr *int32, whence uint32) (newlowoffset uint32, err error) {\n\tr0, _, e1 := syscall.Syscall6(procSetFilePointer.Addr(), 4, uintptr(handle), uintptr(lowoffset), uintptr(unsafe.Pointer(highoffsetptr)), uintptr(whence), 0, 0)\n\tnewlowoffset = uint32(r0)\n\tif newlowoffset == 0xffffffff {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procSetFileTime.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetFileValidData(handle Handle, validDataLength int64) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetFileValidData.Addr(), 2, uintptr(handle), uintptr(validDataLength), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetHandleInformation(handle Handle, mask uint32, flags uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetHandleInformation.Addr(), 3, uintptr(handle), uintptr(mask), uintptr(flags))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetInformationJobObject(job Handle, JobObjectInformationClass uint32, JobObjectInformation uintptr, JobObjectInformationLength uint32) (ret int, err error) {\n\tr0, _, e1 := syscall.Syscall6(procSetInformationJobObject.Addr(), 4, uintptr(job), uintptr(JobObjectInformationClass), uintptr(JobObjectInformation), uintptr(JobObjectInformationLength), 0, 0)\n\tret = int(r0)\n\tif ret == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetNamedPipeHandleState(pipe Handle, state *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procSetNamedPipeHandleState.Addr(), 4, uintptr(pipe), uintptr(unsafe.Pointer(state)), uintptr(unsafe.Pointer(maxCollectionCount)), uintptr(unsafe.Pointer(collectDataTimeout)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetPriorityClass(process Handle, priorityClass uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetPriorityClass.Addr(), 2, uintptr(process), uintptr(priorityClass), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetProcessPriorityBoost(process Handle, disable bool) (err error) {\n\tvar _p0 uint32\n\tif disable {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall(procSetProcessPriorityBoost.Addr(), 2, uintptr(process), uintptr(_p0), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetProcessShutdownParameters(level uint32, flags uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetProcessShutdownParameters.Addr(), 2, uintptr(level), uintptr(flags), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetProcessWorkingSetSizeEx(hProcess Handle, dwMinimumWorkingSetSize uintptr, dwMaximumWorkingSetSize uintptr, flags uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procSetProcessWorkingSetSizeEx.Addr(), 4, uintptr(hProcess), uintptr(dwMinimumWorkingSetSize), uintptr(dwMaximumWorkingSetSize), uintptr(flags), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetStdHandle(stdhandle uint32, handle Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetStdHandle.Addr(), 2, uintptr(stdhandle), uintptr(handle), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetVolumeLabel(rootPathName *uint16, volumeName *uint16) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetVolumeLabelW.Addr(), 2, uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeName)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetVolumeMountPointW.Addr(), 2, uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(unsafe.Pointer(volumeName)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetupComm(handle Handle, dwInQueue uint32, dwOutQueue uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetupComm.Addr(), 3, uintptr(handle), uintptr(dwInQueue), uintptr(dwOutQueue))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SizeofResource(module Handle, resInfo Handle) (size uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procSizeofResource.Addr(), 2, uintptr(module), uintptr(resInfo), 0)\n\tsize = uint32(r0)\n\tif size == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SleepEx(milliseconds uint32, alertable bool) (ret uint32) {\n\tvar _p0 uint32\n\tif alertable {\n\t\t_p0 = 1\n\t}\n\tr0, _, _ := syscall.Syscall(procSleepEx.Addr(), 2, uintptr(milliseconds), uintptr(_p0), 0)\n\tret = uint32(r0)\n\treturn\n}\n\nfunc TerminateJobObject(job Handle, exitCode uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procTerminateJobObject.Addr(), 2, uintptr(job), uintptr(exitCode), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc TerminateProcess(handle Handle, exitcode uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procTerminateProcess.Addr(), 2, uintptr(handle), uintptr(exitcode), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc Thread32First(snapshot Handle, threadEntry *ThreadEntry32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procThread32First.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc Thread32Next(snapshot Handle, threadEntry *ThreadEntry32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procThread32Next.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(threadEntry)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc UnlockFileEx(file Handle, reserved uint32, bytesLow uint32, bytesHigh uint32, overlapped *Overlapped) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procUnlockFileEx.Addr(), 5, uintptr(file), uintptr(reserved), uintptr(bytesLow), uintptr(bytesHigh), uintptr(unsafe.Pointer(overlapped)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc UnmapViewOfFile(addr uintptr) (err error) {\n\tr1, _, e1 := syscall.Syscall(procUnmapViewOfFile.Addr(), 1, uintptr(addr), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc updateProcThreadAttribute(attrlist *ProcThreadAttributeList, flags uint32, attr uintptr, value unsafe.Pointer, size uintptr, prevvalue unsafe.Pointer, returnedsize *uintptr) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procUpdateProcThreadAttribute.Addr(), 7, uintptr(unsafe.Pointer(attrlist)), uintptr(flags), uintptr(attr), uintptr(value), uintptr(size), uintptr(prevvalue), uintptr(unsafe.Pointer(returnedsize)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc VirtualAlloc(address uintptr, size uintptr, alloctype uint32, protect uint32) (value uintptr, err error) {\n\tr0, _, e1 := syscall.Syscall6(procVirtualAlloc.Addr(), 4, uintptr(address), uintptr(size), uintptr(alloctype), uintptr(protect), 0, 0)\n\tvalue = uintptr(r0)\n\tif value == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc VirtualFree(address uintptr, size uintptr, freetype uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procVirtualFree.Addr(), 3, uintptr(address), uintptr(size), uintptr(freetype))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc VirtualLock(addr uintptr, length uintptr) (err error) {\n\tr1, _, e1 := syscall.Syscall(procVirtualLock.Addr(), 2, uintptr(addr), uintptr(length), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc VirtualProtect(address uintptr, size uintptr, newprotect uint32, oldprotect *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procVirtualProtect.Addr(), 4, uintptr(address), uintptr(size), uintptr(newprotect), uintptr(unsafe.Pointer(oldprotect)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc VirtualProtectEx(process Handle, address uintptr, size uintptr, newProtect uint32, oldProtect *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procVirtualProtectEx.Addr(), 5, uintptr(process), uintptr(address), uintptr(size), uintptr(newProtect), uintptr(unsafe.Pointer(oldProtect)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc VirtualQuery(address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) {\n\tr1, _, e1 := syscall.Syscall(procVirtualQuery.Addr(), 3, uintptr(address), uintptr(unsafe.Pointer(buffer)), uintptr(length))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc VirtualQueryEx(process Handle, address uintptr, buffer *MemoryBasicInformation, length uintptr) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procVirtualQueryEx.Addr(), 4, uintptr(process), uintptr(address), uintptr(unsafe.Pointer(buffer)), uintptr(length), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc VirtualUnlock(addr uintptr, length uintptr) (err error) {\n\tr1, _, e1 := syscall.Syscall(procVirtualUnlock.Addr(), 2, uintptr(addr), uintptr(length), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WTSGetActiveConsoleSessionId() (sessionID uint32) {\n\tr0, _, _ := syscall.Syscall(procWTSGetActiveConsoleSessionId.Addr(), 0, 0, 0, 0)\n\tsessionID = uint32(r0)\n\treturn\n}\n\nfunc WaitCommEvent(handle Handle, lpEvtMask *uint32, lpOverlapped *Overlapped) (err error) {\n\tr1, _, e1 := syscall.Syscall(procWaitCommEvent.Addr(), 3, uintptr(handle), uintptr(unsafe.Pointer(lpEvtMask)), uintptr(unsafe.Pointer(lpOverlapped)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc waitForMultipleObjects(count uint32, handles uintptr, waitAll bool, waitMilliseconds uint32) (event uint32, err error) {\n\tvar _p0 uint32\n\tif waitAll {\n\t\t_p0 = 1\n\t}\n\tr0, _, e1 := syscall.Syscall6(procWaitForMultipleObjects.Addr(), 4, uintptr(count), uintptr(handles), uintptr(_p0), uintptr(waitMilliseconds), 0, 0)\n\tevent = uint32(r0)\n\tif event == 0xffffffff {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WaitForSingleObject(handle Handle, waitMilliseconds uint32) (event uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procWaitForSingleObject.Addr(), 2, uintptr(handle), uintptr(waitMilliseconds), 0)\n\tevent = uint32(r0)\n\tif event == 0xffffffff {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WriteConsole(console Handle, buf *uint16, towrite uint32, written *uint32, reserved *byte) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procWriteConsoleW.Addr(), 5, uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(towrite), uintptr(unsafe.Pointer(written)), uintptr(unsafe.Pointer(reserved)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc writeFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tr1, _, e1 := syscall.Syscall6(procWriteFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WriteProcessMemory(process Handle, baseAddress uintptr, buffer *byte, size uintptr, numberOfBytesWritten *uintptr) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procWriteProcessMemory.Addr(), 5, uintptr(process), uintptr(baseAddress), uintptr(unsafe.Pointer(buffer)), uintptr(size), uintptr(unsafe.Pointer(numberOfBytesWritten)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc AcceptEx(ls Handle, as Handle, buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, recvd *uint32, overlapped *Overlapped) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procAcceptEx.Addr(), 8, uintptr(ls), uintptr(as), uintptr(unsafe.Pointer(buf)), uintptr(rxdatalen), uintptr(laddrlen), uintptr(raddrlen), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(overlapped)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetAcceptExSockaddrs(buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, lrsa **RawSockaddrAny, lrsalen *int32, rrsa **RawSockaddrAny, rrsalen *int32) {\n\tsyscall.Syscall9(procGetAcceptExSockaddrs.Addr(), 8, uintptr(unsafe.Pointer(buf)), uintptr(rxdatalen), uintptr(laddrlen), uintptr(raddrlen), uintptr(unsafe.Pointer(lrsa)), uintptr(unsafe.Pointer(lrsalen)), uintptr(unsafe.Pointer(rrsa)), uintptr(unsafe.Pointer(rrsalen)), 0)\n\treturn\n}\n\nfunc TransmitFile(s Handle, handle Handle, bytesToWrite uint32, bytsPerSend uint32, overlapped *Overlapped, transmitFileBuf *TransmitFileBuffers, flags uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procTransmitFile.Addr(), 7, uintptr(s), uintptr(handle), uintptr(bytesToWrite), uintptr(bytsPerSend), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(transmitFileBuf)), uintptr(flags), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc NetApiBufferFree(buf *byte) (neterr error) {\n\tr0, _, _ := syscall.Syscall(procNetApiBufferFree.Addr(), 1, uintptr(unsafe.Pointer(buf)), 0, 0)\n\tif r0 != 0 {\n\t\tneterr = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc NetGetJoinInformation(server *uint16, name **uint16, bufType *uint32) (neterr error) {\n\tr0, _, _ := syscall.Syscall(procNetGetJoinInformation.Addr(), 3, uintptr(unsafe.Pointer(server)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(bufType)))\n\tif r0 != 0 {\n\t\tneterr = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc NetUserEnum(serverName *uint16, level uint32, filter uint32, buf **byte, prefMaxLen uint32, entriesRead *uint32, totalEntries *uint32, resumeHandle *uint32) (neterr error) {\n\tr0, _, _ := syscall.Syscall9(procNetUserEnum.Addr(), 8, uintptr(unsafe.Pointer(serverName)), uintptr(level), uintptr(filter), uintptr(unsafe.Pointer(buf)), uintptr(prefMaxLen), uintptr(unsafe.Pointer(entriesRead)), uintptr(unsafe.Pointer(totalEntries)), uintptr(unsafe.Pointer(resumeHandle)), 0)\n\tif r0 != 0 {\n\t\tneterr = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc NetUserGetInfo(serverName *uint16, userName *uint16, level uint32, buf **byte) (neterr error) {\n\tr0, _, _ := syscall.Syscall6(procNetUserGetInfo.Addr(), 4, uintptr(unsafe.Pointer(serverName)), uintptr(unsafe.Pointer(userName)), uintptr(level), uintptr(unsafe.Pointer(buf)), 0, 0)\n\tif r0 != 0 {\n\t\tneterr = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc NtCreateFile(handle *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, allocationSize *int64, attributes uint32, share uint32, disposition uint32, options uint32, eabuffer uintptr, ealength uint32) (ntstatus error) {\n\tr0, _, _ := syscall.Syscall12(procNtCreateFile.Addr(), 11, uintptr(unsafe.Pointer(handle)), uintptr(access), uintptr(unsafe.Pointer(oa)), uintptr(unsafe.Pointer(iosb)), uintptr(unsafe.Pointer(allocationSize)), uintptr(attributes), uintptr(share), uintptr(disposition), uintptr(options), uintptr(eabuffer), uintptr(ealength), 0)\n\tif r0 != 0 {\n\t\tntstatus = NTStatus(r0)\n\t}\n\treturn\n}\n\nfunc NtCreateNamedPipeFile(pipe *Handle, access uint32, oa *OBJECT_ATTRIBUTES, iosb *IO_STATUS_BLOCK, share uint32, disposition uint32, options uint32, typ uint32, readMode uint32, completionMode uint32, maxInstances uint32, inboundQuota uint32, outputQuota uint32, timeout *int64) (ntstatus error) {\n\tr0, _, _ := syscall.Syscall15(procNtCreateNamedPipeFile.Addr(), 14, uintptr(unsafe.Pointer(pipe)), uintptr(access), uintptr(unsafe.Pointer(oa)), uintptr(unsafe.Pointer(iosb)), uintptr(share), uintptr(disposition), uintptr(options), uintptr(typ), uintptr(readMode), uintptr(completionMode), uintptr(maxInstances), uintptr(inboundQuota), uintptr(outputQuota), uintptr(unsafe.Pointer(timeout)), 0)\n\tif r0 != 0 {\n\t\tntstatus = NTStatus(r0)\n\t}\n\treturn\n}\n\nfunc NtQueryInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32, retLen *uint32) (ntstatus error) {\n\tr0, _, _ := syscall.Syscall6(procNtQueryInformationProcess.Addr(), 5, uintptr(proc), uintptr(procInfoClass), uintptr(procInfo), uintptr(procInfoLen), uintptr(unsafe.Pointer(retLen)), 0)\n\tif r0 != 0 {\n\t\tntstatus = NTStatus(r0)\n\t}\n\treturn\n}\n\nfunc NtQuerySystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32, retLen *uint32) (ntstatus error) {\n\tr0, _, _ := syscall.Syscall6(procNtQuerySystemInformation.Addr(), 4, uintptr(sysInfoClass), uintptr(sysInfo), uintptr(sysInfoLen), uintptr(unsafe.Pointer(retLen)), 0, 0)\n\tif r0 != 0 {\n\t\tntstatus = NTStatus(r0)\n\t}\n\treturn\n}\n\nfunc NtSetInformationFile(handle Handle, iosb *IO_STATUS_BLOCK, inBuffer *byte, inBufferLen uint32, class uint32) (ntstatus error) {\n\tr0, _, _ := syscall.Syscall6(procNtSetInformationFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(iosb)), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferLen), uintptr(class), 0)\n\tif r0 != 0 {\n\t\tntstatus = NTStatus(r0)\n\t}\n\treturn\n}\n\nfunc NtSetInformationProcess(proc Handle, procInfoClass int32, procInfo unsafe.Pointer, procInfoLen uint32) (ntstatus error) {\n\tr0, _, _ := syscall.Syscall6(procNtSetInformationProcess.Addr(), 4, uintptr(proc), uintptr(procInfoClass), uintptr(procInfo), uintptr(procInfoLen), 0, 0)\n\tif r0 != 0 {\n\t\tntstatus = NTStatus(r0)\n\t}\n\treturn\n}\n\nfunc NtSetSystemInformation(sysInfoClass int32, sysInfo unsafe.Pointer, sysInfoLen uint32) (ntstatus error) {\n\tr0, _, _ := syscall.Syscall(procNtSetSystemInformation.Addr(), 3, uintptr(sysInfoClass), uintptr(sysInfo), uintptr(sysInfoLen))\n\tif r0 != 0 {\n\t\tntstatus = NTStatus(r0)\n\t}\n\treturn\n}\n\nfunc RtlAddFunctionTable(functionTable *RUNTIME_FUNCTION, entryCount uint32, baseAddress uintptr) (ret bool) {\n\tr0, _, _ := syscall.Syscall(procRtlAddFunctionTable.Addr(), 3, uintptr(unsafe.Pointer(functionTable)), uintptr(entryCount), uintptr(baseAddress))\n\tret = r0 != 0\n\treturn\n}\n\nfunc RtlDefaultNpAcl(acl **ACL) (ntstatus error) {\n\tr0, _, _ := syscall.Syscall(procRtlDefaultNpAcl.Addr(), 1, uintptr(unsafe.Pointer(acl)), 0, 0)\n\tif r0 != 0 {\n\t\tntstatus = NTStatus(r0)\n\t}\n\treturn\n}\n\nfunc RtlDeleteFunctionTable(functionTable *RUNTIME_FUNCTION) (ret bool) {\n\tr0, _, _ := syscall.Syscall(procRtlDeleteFunctionTable.Addr(), 1, uintptr(unsafe.Pointer(functionTable)), 0, 0)\n\tret = r0 != 0\n\treturn\n}\n\nfunc RtlDosPathNameToNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) {\n\tr0, _, _ := syscall.Syscall6(procRtlDosPathNameToNtPathName_U_WithStatus.Addr(), 4, uintptr(unsafe.Pointer(dosName)), uintptr(unsafe.Pointer(ntName)), uintptr(unsafe.Pointer(ntFileNamePart)), uintptr(unsafe.Pointer(relativeName)), 0, 0)\n\tif r0 != 0 {\n\t\tntstatus = NTStatus(r0)\n\t}\n\treturn\n}\n\nfunc RtlDosPathNameToRelativeNtPathName(dosName *uint16, ntName *NTUnicodeString, ntFileNamePart *uint16, relativeName *RTL_RELATIVE_NAME) (ntstatus error) {\n\tr0, _, _ := syscall.Syscall6(procRtlDosPathNameToRelativeNtPathName_U_WithStatus.Addr(), 4, uintptr(unsafe.Pointer(dosName)), uintptr(unsafe.Pointer(ntName)), uintptr(unsafe.Pointer(ntFileNamePart)), uintptr(unsafe.Pointer(relativeName)), 0, 0)\n\tif r0 != 0 {\n\t\tntstatus = NTStatus(r0)\n\t}\n\treturn\n}\n\nfunc RtlGetCurrentPeb() (peb *PEB) {\n\tr0, _, _ := syscall.Syscall(procRtlGetCurrentPeb.Addr(), 0, 0, 0, 0)\n\tpeb = (*PEB)(unsafe.Pointer(r0))\n\treturn\n}\n\nfunc rtlGetNtVersionNumbers(majorVersion *uint32, minorVersion *uint32, buildNumber *uint32) {\n\tsyscall.Syscall(procRtlGetNtVersionNumbers.Addr(), 3, uintptr(unsafe.Pointer(majorVersion)), uintptr(unsafe.Pointer(minorVersion)), uintptr(unsafe.Pointer(buildNumber)))\n\treturn\n}\n\nfunc rtlGetVersion(info *OsVersionInfoEx) (ntstatus error) {\n\tr0, _, _ := syscall.Syscall(procRtlGetVersion.Addr(), 1, uintptr(unsafe.Pointer(info)), 0, 0)\n\tif r0 != 0 {\n\t\tntstatus = NTStatus(r0)\n\t}\n\treturn\n}\n\nfunc RtlInitString(destinationString *NTString, sourceString *byte) {\n\tsyscall.Syscall(procRtlInitString.Addr(), 2, uintptr(unsafe.Pointer(destinationString)), uintptr(unsafe.Pointer(sourceString)), 0)\n\treturn\n}\n\nfunc RtlInitUnicodeString(destinationString *NTUnicodeString, sourceString *uint16) {\n\tsyscall.Syscall(procRtlInitUnicodeString.Addr(), 2, uintptr(unsafe.Pointer(destinationString)), uintptr(unsafe.Pointer(sourceString)), 0)\n\treturn\n}\n\nfunc rtlNtStatusToDosErrorNoTeb(ntstatus NTStatus) (ret syscall.Errno) {\n\tr0, _, _ := syscall.Syscall(procRtlNtStatusToDosErrorNoTeb.Addr(), 1, uintptr(ntstatus), 0, 0)\n\tret = syscall.Errno(r0)\n\treturn\n}\n\nfunc clsidFromString(lpsz *uint16, pclsid *GUID) (ret error) {\n\tr0, _, _ := syscall.Syscall(procCLSIDFromString.Addr(), 2, uintptr(unsafe.Pointer(lpsz)), uintptr(unsafe.Pointer(pclsid)), 0)\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc coCreateGuid(pguid *GUID) (ret error) {\n\tr0, _, _ := syscall.Syscall(procCoCreateGuid.Addr(), 1, uintptr(unsafe.Pointer(pguid)), 0, 0)\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc CoGetObject(name *uint16, bindOpts *BIND_OPTS3, guid *GUID, functionTable **uintptr) (ret error) {\n\tr0, _, _ := syscall.Syscall6(procCoGetObject.Addr(), 4, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(bindOpts)), uintptr(unsafe.Pointer(guid)), uintptr(unsafe.Pointer(functionTable)), 0, 0)\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc CoInitializeEx(reserved uintptr, coInit uint32) (ret error) {\n\tr0, _, _ := syscall.Syscall(procCoInitializeEx.Addr(), 2, uintptr(reserved), uintptr(coInit), 0)\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc CoTaskMemFree(address unsafe.Pointer) {\n\tsyscall.Syscall(procCoTaskMemFree.Addr(), 1, uintptr(address), 0, 0)\n\treturn\n}\n\nfunc CoUninitialize() {\n\tsyscall.Syscall(procCoUninitialize.Addr(), 0, 0, 0, 0)\n\treturn\n}\n\nfunc stringFromGUID2(rguid *GUID, lpsz *uint16, cchMax int32) (chars int32) {\n\tr0, _, _ := syscall.Syscall(procStringFromGUID2.Addr(), 3, uintptr(unsafe.Pointer(rguid)), uintptr(unsafe.Pointer(lpsz)), uintptr(cchMax))\n\tchars = int32(r0)\n\treturn\n}\n\nfunc EnumProcessModules(process Handle, module *Handle, cb uint32, cbNeeded *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procEnumProcessModules.Addr(), 4, uintptr(process), uintptr(unsafe.Pointer(module)), uintptr(cb), uintptr(unsafe.Pointer(cbNeeded)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc EnumProcessModulesEx(process Handle, module *Handle, cb uint32, cbNeeded *uint32, filterFlag uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procEnumProcessModulesEx.Addr(), 5, uintptr(process), uintptr(unsafe.Pointer(module)), uintptr(cb), uintptr(unsafe.Pointer(cbNeeded)), uintptr(filterFlag), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc enumProcesses(processIds *uint32, nSize uint32, bytesReturned *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procEnumProcesses.Addr(), 3, uintptr(unsafe.Pointer(processIds)), uintptr(nSize), uintptr(unsafe.Pointer(bytesReturned)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetModuleBaseName(process Handle, module Handle, baseName *uint16, size uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procGetModuleBaseNameW.Addr(), 4, uintptr(process), uintptr(module), uintptr(unsafe.Pointer(baseName)), uintptr(size), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetModuleFileNameEx(process Handle, module Handle, filename *uint16, size uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procGetModuleFileNameExW.Addr(), 4, uintptr(process), uintptr(module), uintptr(unsafe.Pointer(filename)), uintptr(size), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetModuleInformation(process Handle, module Handle, modinfo *ModuleInfo, cb uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procGetModuleInformation.Addr(), 4, uintptr(process), uintptr(module), uintptr(unsafe.Pointer(modinfo)), uintptr(cb), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc QueryWorkingSetEx(process Handle, pv uintptr, cb uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procQueryWorkingSetEx.Addr(), 3, uintptr(process), uintptr(pv), uintptr(cb))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SubscribeServiceChangeNotifications(service Handle, eventType uint32, callback uintptr, callbackCtx uintptr, subscription *uintptr) (ret error) {\n\tret = procSubscribeServiceChangeNotifications.Find()\n\tif ret != nil {\n\t\treturn\n\t}\n\tr0, _, _ := syscall.Syscall6(procSubscribeServiceChangeNotifications.Addr(), 5, uintptr(service), uintptr(eventType), uintptr(callback), uintptr(callbackCtx), uintptr(unsafe.Pointer(subscription)), 0)\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc UnsubscribeServiceChangeNotifications(subscription uintptr) (err error) {\n\terr = procUnsubscribeServiceChangeNotifications.Find()\n\tif err != nil {\n\t\treturn\n\t}\n\tsyscall.Syscall(procUnsubscribeServiceChangeNotifications.Addr(), 1, uintptr(subscription), 0, 0)\n\treturn\n}\n\nfunc GetUserNameEx(nameFormat uint32, nameBuffre *uint16, nSize *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procGetUserNameExW.Addr(), 3, uintptr(nameFormat), uintptr(unsafe.Pointer(nameBuffre)), uintptr(unsafe.Pointer(nSize)))\n\tif r1&0xff == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc TranslateName(accName *uint16, accNameFormat uint32, desiredNameFormat uint32, translatedName *uint16, nSize *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procTranslateNameW.Addr(), 5, uintptr(unsafe.Pointer(accName)), uintptr(accNameFormat), uintptr(desiredNameFormat), uintptr(unsafe.Pointer(translatedName)), uintptr(unsafe.Pointer(nSize)), 0)\n\tif r1&0xff == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetupDiBuildDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetupDiBuildDriverInfoList.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetupDiCallClassInstaller(installFunction DI_FUNCTION, deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetupDiCallClassInstaller.Addr(), 3, uintptr(installFunction), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetupDiCancelDriverInfoSearch(deviceInfoSet DevInfo) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetupDiCancelDriverInfoSearch.Addr(), 1, uintptr(deviceInfoSet), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiClassGuidsFromNameEx(className *uint16, classGuidList *GUID, classGuidListSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procSetupDiClassGuidsFromNameExW.Addr(), 6, uintptr(unsafe.Pointer(className)), uintptr(unsafe.Pointer(classGuidList)), uintptr(classGuidListSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(unsafe.Pointer(machineName)), uintptr(reserved))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiClassNameFromGuidEx(classGUID *GUID, className *uint16, classNameSize uint32, requiredSize *uint32, machineName *uint16, reserved uintptr) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procSetupDiClassNameFromGuidExW.Addr(), 6, uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(className)), uintptr(classNameSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(unsafe.Pointer(machineName)), uintptr(reserved))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiCreateDeviceInfoListEx(classGUID *GUID, hwndParent uintptr, machineName *uint16, reserved uintptr) (handle DevInfo, err error) {\n\tr0, _, e1 := syscall.Syscall6(procSetupDiCreateDeviceInfoListExW.Addr(), 4, uintptr(unsafe.Pointer(classGUID)), uintptr(hwndParent), uintptr(unsafe.Pointer(machineName)), uintptr(reserved), 0, 0)\n\thandle = DevInfo(r0)\n\tif handle == DevInfo(InvalidHandle) {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiCreateDeviceInfo(deviceInfoSet DevInfo, DeviceName *uint16, classGUID *GUID, DeviceDescription *uint16, hwndParent uintptr, CreationFlags DICD, deviceInfoData *DevInfoData) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procSetupDiCreateDeviceInfoW.Addr(), 7, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(DeviceName)), uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(DeviceDescription)), uintptr(hwndParent), uintptr(CreationFlags), uintptr(unsafe.Pointer(deviceInfoData)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetupDiDestroyDeviceInfoList(deviceInfoSet DevInfo) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetupDiDestroyDeviceInfoList.Addr(), 1, uintptr(deviceInfoSet), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetupDiDestroyDriverInfoList(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetupDiDestroyDriverInfoList.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiEnumDeviceInfo(deviceInfoSet DevInfo, memberIndex uint32, deviceInfoData *DevInfoData) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetupDiEnumDeviceInfo.Addr(), 3, uintptr(deviceInfoSet), uintptr(memberIndex), uintptr(unsafe.Pointer(deviceInfoData)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiEnumDriverInfo(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverType SPDIT, memberIndex uint32, driverInfoData *DrvInfoData) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procSetupDiEnumDriverInfoW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(driverType), uintptr(memberIndex), uintptr(unsafe.Pointer(driverInfoData)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiGetClassDevsEx(classGUID *GUID, Enumerator *uint16, hwndParent uintptr, Flags DIGCF, deviceInfoSet DevInfo, machineName *uint16, reserved uintptr) (handle DevInfo, err error) {\n\tr0, _, e1 := syscall.Syscall9(procSetupDiGetClassDevsExW.Addr(), 7, uintptr(unsafe.Pointer(classGUID)), uintptr(unsafe.Pointer(Enumerator)), uintptr(hwndParent), uintptr(Flags), uintptr(deviceInfoSet), uintptr(unsafe.Pointer(machineName)), uintptr(reserved), 0, 0)\n\thandle = DevInfo(r0)\n\tif handle == DevInfo(InvalidHandle) {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetupDiGetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32, requiredSize *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procSetupDiGetClassInstallParamsW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(classInstallParams)), uintptr(classInstallParamsSize), uintptr(unsafe.Pointer(requiredSize)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiGetDeviceInfoListDetail(deviceInfoSet DevInfo, deviceInfoSetDetailData *DevInfoListDetailData) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetupDiGetDeviceInfoListDetailW.Addr(), 2, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoSetDetailData)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiGetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetupDiGetDeviceInstallParamsW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(deviceInstallParams)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiGetDeviceInstanceId(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, instanceId *uint16, instanceIdSize uint32, instanceIdRequiredSize *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procSetupDiGetDeviceInstanceIdW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(instanceId)), uintptr(instanceIdSize), uintptr(unsafe.Pointer(instanceIdRequiredSize)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiGetDeviceProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, propertyKey *DEVPROPKEY, propertyType *DEVPROPTYPE, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32, flags uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procSetupDiGetDevicePropertyW.Addr(), 8, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(propertyKey)), uintptr(unsafe.Pointer(propertyType)), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), uintptr(unsafe.Pointer(requiredSize)), uintptr(flags), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiGetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyRegDataType *uint32, propertyBuffer *byte, propertyBufferSize uint32, requiredSize *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procSetupDiGetDeviceRegistryPropertyW.Addr(), 7, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(property), uintptr(unsafe.Pointer(propertyRegDataType)), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), uintptr(unsafe.Pointer(requiredSize)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiGetDriverInfoDetail(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData, driverInfoDetailData *DrvInfoDetailData, driverInfoDetailDataSize uint32, requiredSize *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procSetupDiGetDriverInfoDetailW.Addr(), 6, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData)), uintptr(unsafe.Pointer(driverInfoDetailData)), uintptr(driverInfoDetailDataSize), uintptr(unsafe.Pointer(requiredSize)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiGetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetupDiGetSelectedDevice.Addr(), 2, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiGetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetupDiGetSelectedDriverW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetupDiOpenDevRegKey(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, Scope DICS_FLAG, HwProfile uint32, KeyType DIREG, samDesired uint32) (key Handle, err error) {\n\tr0, _, e1 := syscall.Syscall6(procSetupDiOpenDevRegKey.Addr(), 6, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(Scope), uintptr(HwProfile), uintptr(KeyType), uintptr(samDesired))\n\tkey = Handle(r0)\n\tif key == InvalidHandle {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetupDiSetClassInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, classInstallParams *ClassInstallHeader, classInstallParamsSize uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procSetupDiSetClassInstallParamsW.Addr(), 4, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(classInstallParams)), uintptr(classInstallParamsSize), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetupDiSetDeviceInstallParams(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, deviceInstallParams *DevInstallParams) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetupDiSetDeviceInstallParamsW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(deviceInstallParams)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupDiSetDeviceRegistryProperty(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, property SPDRP, propertyBuffer *byte, propertyBufferSize uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procSetupDiSetDeviceRegistryPropertyW.Addr(), 5, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(property), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(propertyBufferSize), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetupDiSetSelectedDevice(deviceInfoSet DevInfo, deviceInfoData *DevInfoData) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetupDiSetSelectedDevice.Addr(), 2, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc SetupDiSetSelectedDriver(deviceInfoSet DevInfo, deviceInfoData *DevInfoData, driverInfoData *DrvInfoData) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetupDiSetSelectedDriverW.Addr(), 3, uintptr(deviceInfoSet), uintptr(unsafe.Pointer(deviceInfoData)), uintptr(unsafe.Pointer(driverInfoData)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc setupUninstallOEMInf(infFileName *uint16, flags SUOI, reserved uintptr) (err error) {\n\tr1, _, e1 := syscall.Syscall(procSetupUninstallOEMInfW.Addr(), 3, uintptr(unsafe.Pointer(infFileName)), uintptr(flags), uintptr(reserved))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc commandLineToArgv(cmd *uint16, argc *int32) (argv **uint16, err error) {\n\tr0, _, e1 := syscall.Syscall(procCommandLineToArgvW.Addr(), 2, uintptr(unsafe.Pointer(cmd)), uintptr(unsafe.Pointer(argc)), 0)\n\targv = (**uint16)(unsafe.Pointer(r0))\n\tif argv == nil {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc shGetKnownFolderPath(id *KNOWNFOLDERID, flags uint32, token Token, path **uint16) (ret error) {\n\tr0, _, _ := syscall.Syscall6(procSHGetKnownFolderPath.Addr(), 4, uintptr(unsafe.Pointer(id)), uintptr(flags), uintptr(token), uintptr(unsafe.Pointer(path)), 0, 0)\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc ShellExecute(hwnd Handle, verb *uint16, file *uint16, args *uint16, cwd *uint16, showCmd int32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procShellExecuteW.Addr(), 6, uintptr(hwnd), uintptr(unsafe.Pointer(verb)), uintptr(unsafe.Pointer(file)), uintptr(unsafe.Pointer(args)), uintptr(unsafe.Pointer(cwd)), uintptr(showCmd))\n\tif r1 <= 32 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc EnumChildWindows(hwnd HWND, enumFunc uintptr, param unsafe.Pointer) {\n\tsyscall.Syscall(procEnumChildWindows.Addr(), 3, uintptr(hwnd), uintptr(enumFunc), uintptr(param))\n\treturn\n}\n\nfunc EnumWindows(enumFunc uintptr, param unsafe.Pointer) (err error) {\n\tr1, _, e1 := syscall.Syscall(procEnumWindows.Addr(), 2, uintptr(enumFunc), uintptr(param), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ExitWindowsEx(flags uint32, reason uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procExitWindowsEx.Addr(), 2, uintptr(flags), uintptr(reason), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetClassName(hwnd HWND, className *uint16, maxCount int32) (copied int32, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetClassNameW.Addr(), 3, uintptr(hwnd), uintptr(unsafe.Pointer(className)), uintptr(maxCount))\n\tcopied = int32(r0)\n\tif copied == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetDesktopWindow() (hwnd HWND) {\n\tr0, _, _ := syscall.Syscall(procGetDesktopWindow.Addr(), 0, 0, 0, 0)\n\thwnd = HWND(r0)\n\treturn\n}\n\nfunc GetForegroundWindow() (hwnd HWND) {\n\tr0, _, _ := syscall.Syscall(procGetForegroundWindow.Addr(), 0, 0, 0, 0)\n\thwnd = HWND(r0)\n\treturn\n}\n\nfunc GetGUIThreadInfo(thread uint32, info *GUIThreadInfo) (err error) {\n\tr1, _, e1 := syscall.Syscall(procGetGUIThreadInfo.Addr(), 2, uintptr(thread), uintptr(unsafe.Pointer(info)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetKeyboardLayout(tid uint32) (hkl Handle) {\n\tr0, _, _ := syscall.Syscall(procGetKeyboardLayout.Addr(), 1, uintptr(tid), 0, 0)\n\thkl = Handle(r0)\n\treturn\n}\n\nfunc GetShellWindow() (shellWindow HWND) {\n\tr0, _, _ := syscall.Syscall(procGetShellWindow.Addr(), 0, 0, 0, 0)\n\tshellWindow = HWND(r0)\n\treturn\n}\n\nfunc GetWindowThreadProcessId(hwnd HWND, pid *uint32) (tid uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetWindowThreadProcessId.Addr(), 2, uintptr(hwnd), uintptr(unsafe.Pointer(pid)), 0)\n\ttid = uint32(r0)\n\tif tid == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc IsWindow(hwnd HWND) (isWindow bool) {\n\tr0, _, _ := syscall.Syscall(procIsWindow.Addr(), 1, uintptr(hwnd), 0, 0)\n\tisWindow = r0 != 0\n\treturn\n}\n\nfunc IsWindowUnicode(hwnd HWND) (isUnicode bool) {\n\tr0, _, _ := syscall.Syscall(procIsWindowUnicode.Addr(), 1, uintptr(hwnd), 0, 0)\n\tisUnicode = r0 != 0\n\treturn\n}\n\nfunc IsWindowVisible(hwnd HWND) (isVisible bool) {\n\tr0, _, _ := syscall.Syscall(procIsWindowVisible.Addr(), 1, uintptr(hwnd), 0, 0)\n\tisVisible = r0 != 0\n\treturn\n}\n\nfunc LoadKeyboardLayout(name *uint16, flags uint32) (hkl Handle, err error) {\n\tr0, _, e1 := syscall.Syscall(procLoadKeyboardLayoutW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(flags), 0)\n\thkl = Handle(r0)\n\tif hkl == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc MessageBox(hwnd HWND, text *uint16, caption *uint16, boxtype uint32) (ret int32, err error) {\n\tr0, _, e1 := syscall.Syscall6(procMessageBoxW.Addr(), 4, uintptr(hwnd), uintptr(unsafe.Pointer(text)), uintptr(unsafe.Pointer(caption)), uintptr(boxtype), 0, 0)\n\tret = int32(r0)\n\tif ret == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc ToUnicodeEx(vkey uint32, scancode uint32, keystate *byte, pwszBuff *uint16, cchBuff int32, flags uint32, hkl Handle) (ret int32) {\n\tr0, _, _ := syscall.Syscall9(procToUnicodeEx.Addr(), 7, uintptr(vkey), uintptr(scancode), uintptr(unsafe.Pointer(keystate)), uintptr(unsafe.Pointer(pwszBuff)), uintptr(cchBuff), uintptr(flags), uintptr(hkl), 0, 0)\n\tret = int32(r0)\n\treturn\n}\n\nfunc UnloadKeyboardLayout(hkl Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procUnloadKeyboardLayout.Addr(), 1, uintptr(hkl), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc CreateEnvironmentBlock(block **uint16, token Token, inheritExisting bool) (err error) {\n\tvar _p0 uint32\n\tif inheritExisting {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall(procCreateEnvironmentBlock.Addr(), 3, uintptr(unsafe.Pointer(block)), uintptr(token), uintptr(_p0))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc DestroyEnvironmentBlock(block *uint16) (err error) {\n\tr1, _, e1 := syscall.Syscall(procDestroyEnvironmentBlock.Addr(), 1, uintptr(unsafe.Pointer(block)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetUserProfileDirectory(t Token, dir *uint16, dirLen *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procGetUserProfileDirectoryW.Addr(), 3, uintptr(t), uintptr(unsafe.Pointer(dir)), uintptr(unsafe.Pointer(dirLen)))\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetFileVersionInfoSize(filename string, zeroHandle *Handle) (bufSize uint32, err error) {\n\tvar _p0 *uint16\n\t_p0, err = syscall.UTF16PtrFromString(filename)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn _GetFileVersionInfoSize(_p0, zeroHandle)\n}\n\nfunc _GetFileVersionInfoSize(filename *uint16, zeroHandle *Handle) (bufSize uint32, err error) {\n\tr0, _, e1 := syscall.Syscall(procGetFileVersionInfoSizeW.Addr(), 2, uintptr(unsafe.Pointer(filename)), uintptr(unsafe.Pointer(zeroHandle)), 0)\n\tbufSize = uint32(r0)\n\tif bufSize == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetFileVersionInfo(filename string, handle uint32, bufSize uint32, buffer unsafe.Pointer) (err error) {\n\tvar _p0 *uint16\n\t_p0, err = syscall.UTF16PtrFromString(filename)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn _GetFileVersionInfo(_p0, handle, bufSize, buffer)\n}\n\nfunc _GetFileVersionInfo(filename *uint16, handle uint32, bufSize uint32, buffer unsafe.Pointer) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procGetFileVersionInfoW.Addr(), 4, uintptr(unsafe.Pointer(filename)), uintptr(handle), uintptr(bufSize), uintptr(buffer), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc VerQueryValue(block unsafe.Pointer, subBlock string, pointerToBufferPointer unsafe.Pointer, bufSize *uint32) (err error) {\n\tvar _p0 *uint16\n\t_p0, err = syscall.UTF16PtrFromString(subBlock)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn _VerQueryValue(block, _p0, pointerToBufferPointer, bufSize)\n}\n\nfunc _VerQueryValue(block unsafe.Pointer, subBlock *uint16, pointerToBufferPointer unsafe.Pointer, bufSize *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procVerQueryValueW.Addr(), 4, uintptr(block), uintptr(unsafe.Pointer(subBlock)), uintptr(pointerToBufferPointer), uintptr(unsafe.Pointer(bufSize)), 0, 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc TimeBeginPeriod(period uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(proctimeBeginPeriod.Addr(), 1, uintptr(period), 0, 0)\n\tif r1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc TimeEndPeriod(period uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall(proctimeEndPeriod.Addr(), 1, uintptr(period), 0, 0)\n\tif r1 != 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WinVerifyTrustEx(hwnd HWND, actionId *GUID, data *WinTrustData) (ret error) {\n\tr0, _, _ := syscall.Syscall(procWinVerifyTrustEx.Addr(), 3, uintptr(hwnd), uintptr(unsafe.Pointer(actionId)), uintptr(unsafe.Pointer(data)))\n\tif r0 != 0 {\n\t\tret = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc FreeAddrInfoW(addrinfo *AddrinfoW) {\n\tsyscall.Syscall(procFreeAddrInfoW.Addr(), 1, uintptr(unsafe.Pointer(addrinfo)), 0, 0)\n\treturn\n}\n\nfunc GetAddrInfoW(nodename *uint16, servicename *uint16, hints *AddrinfoW, result **AddrinfoW) (sockerr error) {\n\tr0, _, _ := syscall.Syscall6(procGetAddrInfoW.Addr(), 4, uintptr(unsafe.Pointer(nodename)), uintptr(unsafe.Pointer(servicename)), uintptr(unsafe.Pointer(hints)), uintptr(unsafe.Pointer(result)), 0, 0)\n\tif r0 != 0 {\n\t\tsockerr = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc WSACleanup() (err error) {\n\tr1, _, e1 := syscall.Syscall(procWSACleanup.Addr(), 0, 0, 0, 0)\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WSAEnumProtocols(protocols *int32, protocolBuffer *WSAProtocolInfo, bufferLength *uint32) (n int32, err error) {\n\tr0, _, e1 := syscall.Syscall(procWSAEnumProtocolsW.Addr(), 3, uintptr(unsafe.Pointer(protocols)), uintptr(unsafe.Pointer(protocolBuffer)), uintptr(unsafe.Pointer(bufferLength)))\n\tn = int32(r0)\n\tif n == -1 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WSAGetOverlappedResult(h Handle, o *Overlapped, bytes *uint32, wait bool, flags *uint32) (err error) {\n\tvar _p0 uint32\n\tif wait {\n\t\t_p0 = 1\n\t}\n\tr1, _, e1 := syscall.Syscall6(procWSAGetOverlappedResult.Addr(), 5, uintptr(h), uintptr(unsafe.Pointer(o)), uintptr(unsafe.Pointer(bytes)), uintptr(_p0), uintptr(unsafe.Pointer(flags)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WSAIoctl(s Handle, iocc uint32, inbuf *byte, cbif uint32, outbuf *byte, cbob uint32, cbbr *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procWSAIoctl.Addr(), 9, uintptr(s), uintptr(iocc), uintptr(unsafe.Pointer(inbuf)), uintptr(cbif), uintptr(unsafe.Pointer(outbuf)), uintptr(cbob), uintptr(unsafe.Pointer(cbbr)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine))\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WSALookupServiceBegin(querySet *WSAQUERYSET, flags uint32, handle *Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procWSALookupServiceBeginW.Addr(), 3, uintptr(unsafe.Pointer(querySet)), uintptr(flags), uintptr(unsafe.Pointer(handle)))\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WSALookupServiceEnd(handle Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procWSALookupServiceEnd.Addr(), 1, uintptr(handle), 0, 0)\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WSALookupServiceNext(handle Handle, flags uint32, size *int32, querySet *WSAQUERYSET) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procWSALookupServiceNextW.Addr(), 4, uintptr(handle), uintptr(flags), uintptr(unsafe.Pointer(size)), uintptr(unsafe.Pointer(querySet)), 0, 0)\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WSARecv(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, overlapped *Overlapped, croutine *byte) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procWSARecv.Addr(), 7, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0, 0)\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WSARecvFrom(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, from *RawSockaddrAny, fromlen *int32, overlapped *Overlapped, croutine *byte) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procWSARecvFrom.Addr(), 9, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)))\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WSASend(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, overlapped *Overlapped, croutine *byte) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procWSASend.Addr(), 7, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0, 0)\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WSASendTo(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to *RawSockaddrAny, tolen int32, overlapped *Overlapped, croutine *byte) (err error) {\n\tr1, _, e1 := syscall.Syscall9(procWSASendTo.Addr(), 9, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), uintptr(unsafe.Pointer(to)), uintptr(tolen), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)))\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WSASocket(af int32, typ int32, protocol int32, protoInfo *WSAProtocolInfo, group uint32, flags uint32) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall6(procWSASocketW.Addr(), 6, uintptr(af), uintptr(typ), uintptr(protocol), uintptr(unsafe.Pointer(protoInfo)), uintptr(group), uintptr(flags))\n\thandle = Handle(r0)\n\tif handle == InvalidHandle {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WSAStartup(verreq uint32, data *WSAData) (sockerr error) {\n\tr0, _, _ := syscall.Syscall(procWSAStartup.Addr(), 2, uintptr(verreq), uintptr(unsafe.Pointer(data)), 0)\n\tif r0 != 0 {\n\t\tsockerr = syscall.Errno(r0)\n\t}\n\treturn\n}\n\nfunc bind(s Handle, name unsafe.Pointer, namelen int32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procbind.Addr(), 3, uintptr(s), uintptr(name), uintptr(namelen))\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc Closesocket(s Handle) (err error) {\n\tr1, _, e1 := syscall.Syscall(procclosesocket.Addr(), 1, uintptr(s), 0, 0)\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc connect(s Handle, name unsafe.Pointer, namelen int32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procconnect.Addr(), 3, uintptr(s), uintptr(name), uintptr(namelen))\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetHostByName(name string) (h *Hostent, err error) {\n\tvar _p0 *byte\n\t_p0, err = syscall.BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn _GetHostByName(_p0)\n}\n\nfunc _GetHostByName(name *byte) (h *Hostent, err error) {\n\tr0, _, e1 := syscall.Syscall(procgethostbyname.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0)\n\th = (*Hostent)(unsafe.Pointer(r0))\n\tif h == nil {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getpeername(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procgetpeername.Addr(), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetProtoByName(name string) (p *Protoent, err error) {\n\tvar _p0 *byte\n\t_p0, err = syscall.BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn _GetProtoByName(_p0)\n}\n\nfunc _GetProtoByName(name *byte) (p *Protoent, err error) {\n\tr0, _, e1 := syscall.Syscall(procgetprotobyname.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0)\n\tp = (*Protoent)(unsafe.Pointer(r0))\n\tif p == nil {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc GetServByName(name string, proto string) (s *Servent, err error) {\n\tvar _p0 *byte\n\t_p0, err = syscall.BytePtrFromString(name)\n\tif err != nil {\n\t\treturn\n\t}\n\tvar _p1 *byte\n\t_p1, err = syscall.BytePtrFromString(proto)\n\tif err != nil {\n\t\treturn\n\t}\n\treturn _GetServByName(_p0, _p1)\n}\n\nfunc _GetServByName(name *byte, proto *byte) (s *Servent, err error) {\n\tr0, _, e1 := syscall.Syscall(procgetservbyname.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(proto)), 0)\n\ts = (*Servent)(unsafe.Pointer(r0))\n\tif s == nil {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc getsockname(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procgetsockname.Addr(), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc Getsockopt(s Handle, level int32, optname int32, optval *byte, optlen *int32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procgetsockopt.Addr(), 5, uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(unsafe.Pointer(optlen)), 0)\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc listen(s Handle, backlog int32) (err error) {\n\tr1, _, e1 := syscall.Syscall(proclisten.Addr(), 2, uintptr(s), uintptr(backlog), 0)\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc Ntohs(netshort uint16) (u uint16) {\n\tr0, _, _ := syscall.Syscall(procntohs.Addr(), 1, uintptr(netshort), 0, 0)\n\tu = uint16(r0)\n\treturn\n}\n\nfunc recvfrom(s Handle, buf []byte, flags int32, from *RawSockaddrAny, fromlen *int32) (n int32, err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tr0, _, e1 := syscall.Syscall6(procrecvfrom.Addr(), 6, uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))\n\tn = int32(r0)\n\tif n == -1 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc sendto(s Handle, buf []byte, flags int32, to unsafe.Pointer, tolen int32) (err error) {\n\tvar _p0 *byte\n\tif len(buf) > 0 {\n\t\t_p0 = &buf[0]\n\t}\n\tr1, _, e1 := syscall.Syscall6(procsendto.Addr(), 6, uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(tolen))\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc Setsockopt(s Handle, level int32, optname int32, optval *byte, optlen int32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procsetsockopt.Addr(), 5, uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(optlen), 0)\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc shutdown(s Handle, how int32) (err error) {\n\tr1, _, e1 := syscall.Syscall(procshutdown.Addr(), 2, uintptr(s), uintptr(how), 0)\n\tif r1 == socket_error {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc socket(af int32, typ int32, protocol int32) (handle Handle, err error) {\n\tr0, _, e1 := syscall.Syscall(procsocket.Addr(), 3, uintptr(af), uintptr(typ), uintptr(protocol))\n\thandle = Handle(r0)\n\tif handle == InvalidHandle {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WTSEnumerateSessions(handle Handle, reserved uint32, version uint32, sessions **WTS_SESSION_INFO, count *uint32) (err error) {\n\tr1, _, e1 := syscall.Syscall6(procWTSEnumerateSessionsW.Addr(), 5, uintptr(handle), uintptr(reserved), uintptr(version), uintptr(unsafe.Pointer(sessions)), uintptr(unsafe.Pointer(count)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n\nfunc WTSFreeMemory(ptr uintptr) {\n\tsyscall.Syscall(procWTSFreeMemory.Addr(), 1, uintptr(ptr), 0, 0)\n\treturn\n}\n\nfunc WTSQueryUserToken(session uint32, token *Token) (err error) {\n\tr1, _, e1 := syscall.Syscall(procWTSQueryUserToken.Addr(), 2, uintptr(session), uintptr(unsafe.Pointer(token)), 0)\n\tif r1 == 0 {\n\t\terr = errnoErr(e1)\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/golang.org/x/term/CONTRIBUTING.md",
    "content": "# Contributing to Go\n\nGo is an open source project.\n\nIt is the work of hundreds of contributors. We appreciate your help!\n\n## Filing issues\n\nWhen [filing an issue](https://golang.org/issue/new), make sure to answer these five questions:\n\n1.  What version of Go are you using (`go version`)?\n2.  What operating system and processor architecture are you using?\n3.  What did you do?\n4.  What did you expect to see?\n5.  What did you see instead?\n\nGeneral questions should go to the [golang-nuts mailing list](https://groups.google.com/group/golang-nuts) instead of the issue tracker.\nThe gophers there will answer or ask you to file an issue if you've tripped over a bug.\n\n## Contributing code\n\nPlease read the [Contribution Guidelines](https://golang.org/doc/contribute.html)\nbefore sending patches.\n\nUnless otherwise noted, the Go source files are distributed under\nthe BSD-style license found in the LICENSE file.\n"
  },
  {
    "path": "vendor/golang.org/x/term/LICENSE",
    "content": "Copyright 2009 The Go Authors.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google LLC nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/golang.org/x/term/PATENTS",
    "content": "Additional IP Rights Grant (Patents)\n\n\"This implementation\" means the copyrightable works distributed by\nGoogle as part of the Go project.\n\nGoogle hereby grants to You a perpetual, worldwide, non-exclusive,\nno-charge, royalty-free, irrevocable (except as stated in this section)\npatent license to make, have made, use, offer to sell, sell, import,\ntransfer and otherwise run, modify and propagate the contents of this\nimplementation of Go, where such license applies only to those patent\nclaims, both currently owned or controlled by Google and acquired in\nthe future, licensable by Google that are necessarily infringed by this\nimplementation of Go.  This grant does not include claims that would be\ninfringed only as a consequence of further modification of this\nimplementation.  If you or your agent or exclusive licensee institute or\norder or agree to the institution of patent litigation against any\nentity (including a cross-claim or counterclaim in a lawsuit) alleging\nthat this implementation of Go or any code incorporated within this\nimplementation of Go constitutes direct or contributory patent\ninfringement, or inducement of patent infringement, then any patent\nrights granted to you under this License for this implementation of Go\nshall terminate as of the date such litigation is filed.\n"
  },
  {
    "path": "vendor/golang.org/x/term/README.md",
    "content": "# Go terminal/console support\n\n[![Go Reference](https://pkg.go.dev/badge/golang.org/x/term.svg)](https://pkg.go.dev/golang.org/x/term)\n\nThis repository provides Go terminal and console support packages.\n\n## Report Issues / Send Patches\n\nThis repository uses Gerrit for code changes. To learn how to submit changes to\nthis repository, see https://go.dev/doc/contribute.\n\nThe git repository is https://go.googlesource.com/term.\n\nThe main issue tracker for the term repository is located at\nhttps://go.dev/issues. Prefix your issue with \"x/term:\" in the\nsubject line, so it is easy to find.\n"
  },
  {
    "path": "vendor/golang.org/x/term/codereview.cfg",
    "content": "issuerepo: golang/go\n"
  },
  {
    "path": "vendor/golang.org/x/term/term.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package term provides support functions for dealing with terminals, as\n// commonly found on UNIX systems.\n//\n// Putting a terminal into raw mode is the most common requirement:\n//\n//\toldState, err := term.MakeRaw(int(os.Stdin.Fd()))\n//\tif err != nil {\n//\t        panic(err)\n//\t}\n//\tdefer term.Restore(int(os.Stdin.Fd()), oldState)\n//\n// Note that on non-Unix systems os.Stdin.Fd() may not be 0.\npackage term\n\n// State contains the state of a terminal.\ntype State struct {\n\tstate\n}\n\n// IsTerminal returns whether the given file descriptor is a terminal.\nfunc IsTerminal(fd int) bool {\n\treturn isTerminal(fd)\n}\n\n// MakeRaw puts the terminal connected to the given file descriptor into raw\n// mode and returns the previous state of the terminal so that it can be\n// restored.\nfunc MakeRaw(fd int) (*State, error) {\n\treturn makeRaw(fd)\n}\n\n// GetState returns the current state of a terminal which may be useful to\n// restore the terminal after a signal.\nfunc GetState(fd int) (*State, error) {\n\treturn getState(fd)\n}\n\n// Restore restores the terminal connected to the given file descriptor to a\n// previous state.\nfunc Restore(fd int, oldState *State) error {\n\treturn restore(fd, oldState)\n}\n\n// GetSize returns the visible dimensions of the given terminal.\n//\n// These dimensions don't include any scrollback buffer height.\nfunc GetSize(fd int) (width, height int, err error) {\n\treturn getSize(fd)\n}\n\n// ReadPassword reads a line of input from a terminal without local echo.  This\n// is commonly used for inputting passwords and other sensitive data. The slice\n// returned does not include the \\n.\nfunc ReadPassword(fd int) ([]byte, error) {\n\treturn readPassword(fd)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/term/term_plan9.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage term\n\nimport (\n\t\"fmt\"\n\t\"runtime\"\n\n\t\"golang.org/x/sys/plan9\"\n)\n\ntype state struct{}\n\nfunc isTerminal(fd int) bool {\n\tpath, err := plan9.Fd2path(fd)\n\tif err != nil {\n\t\treturn false\n\t}\n\treturn path == \"/dev/cons\" || path == \"/mnt/term/dev/cons\"\n}\n\nfunc makeRaw(fd int) (*State, error) {\n\treturn nil, fmt.Errorf(\"terminal: MakeRaw not implemented on %s/%s\", runtime.GOOS, runtime.GOARCH)\n}\n\nfunc getState(fd int) (*State, error) {\n\treturn nil, fmt.Errorf(\"terminal: GetState not implemented on %s/%s\", runtime.GOOS, runtime.GOARCH)\n}\n\nfunc restore(fd int, state *State) error {\n\treturn fmt.Errorf(\"terminal: Restore not implemented on %s/%s\", runtime.GOOS, runtime.GOARCH)\n}\n\nfunc getSize(fd int) (width, height int, err error) {\n\treturn 0, 0, fmt.Errorf(\"terminal: GetSize not implemented on %s/%s\", runtime.GOOS, runtime.GOARCH)\n}\n\nfunc readPassword(fd int) ([]byte, error) {\n\treturn nil, fmt.Errorf(\"terminal: ReadPassword not implemented on %s/%s\", runtime.GOOS, runtime.GOARCH)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/term/term_unix.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos\n\npackage term\n\nimport (\n\t\"golang.org/x/sys/unix\"\n)\n\ntype state struct {\n\ttermios unix.Termios\n}\n\nfunc isTerminal(fd int) bool {\n\t_, err := unix.IoctlGetTermios(fd, ioctlReadTermios)\n\treturn err == nil\n}\n\nfunc makeRaw(fd int) (*State, error) {\n\ttermios, err := unix.IoctlGetTermios(fd, ioctlReadTermios)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\toldState := State{state{termios: *termios}}\n\n\t// This attempts to replicate the behaviour documented for cfmakeraw in\n\t// the termios(3) manpage.\n\ttermios.Iflag &^= unix.IGNBRK | unix.BRKINT | unix.PARMRK | unix.ISTRIP | unix.INLCR | unix.IGNCR | unix.ICRNL | unix.IXON\n\ttermios.Oflag &^= unix.OPOST\n\ttermios.Lflag &^= unix.ECHO | unix.ECHONL | unix.ICANON | unix.ISIG | unix.IEXTEN\n\ttermios.Cflag &^= unix.CSIZE | unix.PARENB\n\ttermios.Cflag |= unix.CS8\n\ttermios.Cc[unix.VMIN] = 1\n\ttermios.Cc[unix.VTIME] = 0\n\tif err := unix.IoctlSetTermios(fd, ioctlWriteTermios, termios); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &oldState, nil\n}\n\nfunc getState(fd int) (*State, error) {\n\ttermios, err := unix.IoctlGetTermios(fd, ioctlReadTermios)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &State{state{termios: *termios}}, nil\n}\n\nfunc restore(fd int, state *State) error {\n\treturn unix.IoctlSetTermios(fd, ioctlWriteTermios, &state.termios)\n}\n\nfunc getSize(fd int) (width, height int, err error) {\n\tws, err := unix.IoctlGetWinsize(fd, unix.TIOCGWINSZ)\n\tif err != nil {\n\t\treturn 0, 0, err\n\t}\n\treturn int(ws.Col), int(ws.Row), nil\n}\n\n// passwordReader is an io.Reader that reads from a specific file descriptor.\ntype passwordReader int\n\nfunc (r passwordReader) Read(buf []byte) (int, error) {\n\treturn unix.Read(int(r), buf)\n}\n\nfunc readPassword(fd int) ([]byte, error) {\n\ttermios, err := unix.IoctlGetTermios(fd, ioctlReadTermios)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tnewState := *termios\n\tnewState.Lflag &^= unix.ECHO\n\tnewState.Lflag |= unix.ICANON | unix.ISIG\n\tnewState.Iflag |= unix.ICRNL\n\tif err := unix.IoctlSetTermios(fd, ioctlWriteTermios, &newState); err != nil {\n\t\treturn nil, err\n\t}\n\n\tdefer unix.IoctlSetTermios(fd, ioctlWriteTermios, termios)\n\n\treturn readPasswordLine(passwordReader(fd))\n}\n"
  },
  {
    "path": "vendor/golang.org/x/term/term_unix_bsd.go",
    "content": "// Copyright 2013 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build darwin || dragonfly || freebsd || netbsd || openbsd\n\npackage term\n\nimport \"golang.org/x/sys/unix\"\n\nconst ioctlReadTermios = unix.TIOCGETA\nconst ioctlWriteTermios = unix.TIOCSETA\n"
  },
  {
    "path": "vendor/golang.org/x/term/term_unix_other.go",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build aix || linux || solaris || zos\n\npackage term\n\nimport \"golang.org/x/sys/unix\"\n\nconst ioctlReadTermios = unix.TCGETS\nconst ioctlWriteTermios = unix.TCSETS\n"
  },
  {
    "path": "vendor/golang.org/x/term/term_unsupported.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !zos && !windows && !solaris && !plan9\n\npackage term\n\nimport (\n\t\"fmt\"\n\t\"runtime\"\n)\n\ntype state struct{}\n\nfunc isTerminal(fd int) bool {\n\treturn false\n}\n\nfunc makeRaw(fd int) (*State, error) {\n\treturn nil, fmt.Errorf(\"terminal: MakeRaw not implemented on %s/%s\", runtime.GOOS, runtime.GOARCH)\n}\n\nfunc getState(fd int) (*State, error) {\n\treturn nil, fmt.Errorf(\"terminal: GetState not implemented on %s/%s\", runtime.GOOS, runtime.GOARCH)\n}\n\nfunc restore(fd int, state *State) error {\n\treturn fmt.Errorf(\"terminal: Restore not implemented on %s/%s\", runtime.GOOS, runtime.GOARCH)\n}\n\nfunc getSize(fd int) (width, height int, err error) {\n\treturn 0, 0, fmt.Errorf(\"terminal: GetSize not implemented on %s/%s\", runtime.GOOS, runtime.GOARCH)\n}\n\nfunc readPassword(fd int) ([]byte, error) {\n\treturn nil, fmt.Errorf(\"terminal: ReadPassword not implemented on %s/%s\", runtime.GOOS, runtime.GOARCH)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/term/term_windows.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage term\n\nimport (\n\t\"os\"\n\n\t\"golang.org/x/sys/windows\"\n)\n\ntype state struct {\n\tmode uint32\n}\n\nfunc isTerminal(fd int) bool {\n\tvar st uint32\n\terr := windows.GetConsoleMode(windows.Handle(fd), &st)\n\treturn err == nil\n}\n\nfunc makeRaw(fd int) (*State, error) {\n\tvar st uint32\n\tif err := windows.GetConsoleMode(windows.Handle(fd), &st); err != nil {\n\t\treturn nil, err\n\t}\n\traw := st &^ (windows.ENABLE_ECHO_INPUT | windows.ENABLE_PROCESSED_INPUT | windows.ENABLE_LINE_INPUT | windows.ENABLE_PROCESSED_OUTPUT)\n\traw |= windows.ENABLE_VIRTUAL_TERMINAL_INPUT\n\tif err := windows.SetConsoleMode(windows.Handle(fd), raw); err != nil {\n\t\treturn nil, err\n\t}\n\treturn &State{state{st}}, nil\n}\n\nfunc getState(fd int) (*State, error) {\n\tvar st uint32\n\tif err := windows.GetConsoleMode(windows.Handle(fd), &st); err != nil {\n\t\treturn nil, err\n\t}\n\treturn &State{state{st}}, nil\n}\n\nfunc restore(fd int, state *State) error {\n\treturn windows.SetConsoleMode(windows.Handle(fd), state.mode)\n}\n\nfunc getSize(fd int) (width, height int, err error) {\n\tvar info windows.ConsoleScreenBufferInfo\n\tif err := windows.GetConsoleScreenBufferInfo(windows.Handle(fd), &info); err != nil {\n\t\treturn 0, 0, err\n\t}\n\treturn int(info.Window.Right - info.Window.Left + 1), int(info.Window.Bottom - info.Window.Top + 1), nil\n}\n\nfunc readPassword(fd int) ([]byte, error) {\n\tvar st uint32\n\tif err := windows.GetConsoleMode(windows.Handle(fd), &st); err != nil {\n\t\treturn nil, err\n\t}\n\told := st\n\n\tst &^= (windows.ENABLE_ECHO_INPUT | windows.ENABLE_LINE_INPUT)\n\tst |= (windows.ENABLE_PROCESSED_OUTPUT | windows.ENABLE_PROCESSED_INPUT)\n\tif err := windows.SetConsoleMode(windows.Handle(fd), st); err != nil {\n\t\treturn nil, err\n\t}\n\n\tdefer windows.SetConsoleMode(windows.Handle(fd), old)\n\n\tvar h windows.Handle\n\tp, _ := windows.GetCurrentProcess()\n\tif err := windows.DuplicateHandle(p, windows.Handle(fd), p, &h, 0, false, windows.DUPLICATE_SAME_ACCESS); err != nil {\n\t\treturn nil, err\n\t}\n\n\tf := os.NewFile(uintptr(h), \"stdin\")\n\tdefer f.Close()\n\treturn readPasswordLine(f)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/term/terminal.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage term\n\nimport (\n\t\"bytes\"\n\t\"io\"\n\t\"runtime\"\n\t\"strconv\"\n\t\"sync\"\n\t\"unicode/utf8\"\n)\n\n// EscapeCodes contains escape sequences that can be written to the terminal in\n// order to achieve different styles of text.\ntype EscapeCodes struct {\n\t// Foreground colors\n\tBlack, Red, Green, Yellow, Blue, Magenta, Cyan, White []byte\n\n\t// Reset all attributes\n\tReset []byte\n}\n\nvar vt100EscapeCodes = EscapeCodes{\n\tBlack:   []byte{keyEscape, '[', '3', '0', 'm'},\n\tRed:     []byte{keyEscape, '[', '3', '1', 'm'},\n\tGreen:   []byte{keyEscape, '[', '3', '2', 'm'},\n\tYellow:  []byte{keyEscape, '[', '3', '3', 'm'},\n\tBlue:    []byte{keyEscape, '[', '3', '4', 'm'},\n\tMagenta: []byte{keyEscape, '[', '3', '5', 'm'},\n\tCyan:    []byte{keyEscape, '[', '3', '6', 'm'},\n\tWhite:   []byte{keyEscape, '[', '3', '7', 'm'},\n\n\tReset: []byte{keyEscape, '[', '0', 'm'},\n}\n\n// Terminal contains the state for running a VT100 terminal that is capable of\n// reading lines of input.\ntype Terminal struct {\n\t// AutoCompleteCallback, if non-null, is called for each keypress with\n\t// the full input line and the current position of the cursor (in\n\t// bytes, as an index into |line|). If it returns ok=false, the key\n\t// press is processed normally. Otherwise it returns a replacement line\n\t// and the new cursor position.\n\tAutoCompleteCallback func(line string, pos int, key rune) (newLine string, newPos int, ok bool)\n\n\t// Escape contains a pointer to the escape codes for this terminal.\n\t// It's always a valid pointer, although the escape codes themselves\n\t// may be empty if the terminal doesn't support them.\n\tEscape *EscapeCodes\n\n\t// lock protects the terminal and the state in this object from\n\t// concurrent processing of a key press and a Write() call.\n\tlock sync.Mutex\n\n\tc      io.ReadWriter\n\tprompt []rune\n\n\t// line is the current line being entered.\n\tline []rune\n\t// pos is the logical position of the cursor in line\n\tpos int\n\t// echo is true if local echo is enabled\n\techo bool\n\t// pasteActive is true iff there is a bracketed paste operation in\n\t// progress.\n\tpasteActive bool\n\n\t// cursorX contains the current X value of the cursor where the left\n\t// edge is 0. cursorY contains the row number where the first row of\n\t// the current line is 0.\n\tcursorX, cursorY int\n\t// maxLine is the greatest value of cursorY so far.\n\tmaxLine int\n\n\ttermWidth, termHeight int\n\n\t// outBuf contains the terminal data to be sent.\n\toutBuf []byte\n\t// remainder contains the remainder of any partial key sequences after\n\t// a read. It aliases into inBuf.\n\tremainder []byte\n\tinBuf     [256]byte\n\n\t// history contains previously entered commands so that they can be\n\t// accessed with the up and down keys.\n\thistory stRingBuffer\n\t// historyIndex stores the currently accessed history entry, where zero\n\t// means the immediately previous entry.\n\thistoryIndex int\n\t// When navigating up and down the history it's possible to return to\n\t// the incomplete, initial line. That value is stored in\n\t// historyPending.\n\thistoryPending string\n}\n\n// NewTerminal runs a VT100 terminal on the given ReadWriter. If the ReadWriter is\n// a local terminal, that terminal must first have been put into raw mode.\n// prompt is a string that is written at the start of each input line (i.e.\n// \"> \").\nfunc NewTerminal(c io.ReadWriter, prompt string) *Terminal {\n\treturn &Terminal{\n\t\tEscape:       &vt100EscapeCodes,\n\t\tc:            c,\n\t\tprompt:       []rune(prompt),\n\t\ttermWidth:    80,\n\t\ttermHeight:   24,\n\t\techo:         true,\n\t\thistoryIndex: -1,\n\t}\n}\n\nconst (\n\tkeyCtrlC     = 3\n\tkeyCtrlD     = 4\n\tkeyCtrlU     = 21\n\tkeyEnter     = '\\r'\n\tkeyEscape    = 27\n\tkeyBackspace = 127\n\tkeyUnknown   = 0xd800 /* UTF-16 surrogate area */ + iota\n\tkeyUp\n\tkeyDown\n\tkeyLeft\n\tkeyRight\n\tkeyAltLeft\n\tkeyAltRight\n\tkeyHome\n\tkeyEnd\n\tkeyDeleteWord\n\tkeyDeleteLine\n\tkeyClearScreen\n\tkeyPasteStart\n\tkeyPasteEnd\n)\n\nvar (\n\tcrlf       = []byte{'\\r', '\\n'}\n\tpasteStart = []byte{keyEscape, '[', '2', '0', '0', '~'}\n\tpasteEnd   = []byte{keyEscape, '[', '2', '0', '1', '~'}\n)\n\n// bytesToKey tries to parse a key sequence from b. If successful, it returns\n// the key and the remainder of the input. Otherwise it returns utf8.RuneError.\nfunc bytesToKey(b []byte, pasteActive bool) (rune, []byte) {\n\tif len(b) == 0 {\n\t\treturn utf8.RuneError, nil\n\t}\n\n\tif !pasteActive {\n\t\tswitch b[0] {\n\t\tcase 1: // ^A\n\t\t\treturn keyHome, b[1:]\n\t\tcase 2: // ^B\n\t\t\treturn keyLeft, b[1:]\n\t\tcase 5: // ^E\n\t\t\treturn keyEnd, b[1:]\n\t\tcase 6: // ^F\n\t\t\treturn keyRight, b[1:]\n\t\tcase 8: // ^H\n\t\t\treturn keyBackspace, b[1:]\n\t\tcase 11: // ^K\n\t\t\treturn keyDeleteLine, b[1:]\n\t\tcase 12: // ^L\n\t\t\treturn keyClearScreen, b[1:]\n\t\tcase 23: // ^W\n\t\t\treturn keyDeleteWord, b[1:]\n\t\tcase 14: // ^N\n\t\t\treturn keyDown, b[1:]\n\t\tcase 16: // ^P\n\t\t\treturn keyUp, b[1:]\n\t\t}\n\t}\n\n\tif b[0] != keyEscape {\n\t\tif !utf8.FullRune(b) {\n\t\t\treturn utf8.RuneError, b\n\t\t}\n\t\tr, l := utf8.DecodeRune(b)\n\t\treturn r, b[l:]\n\t}\n\n\tif !pasteActive && len(b) >= 3 && b[0] == keyEscape && b[1] == '[' {\n\t\tswitch b[2] {\n\t\tcase 'A':\n\t\t\treturn keyUp, b[3:]\n\t\tcase 'B':\n\t\t\treturn keyDown, b[3:]\n\t\tcase 'C':\n\t\t\treturn keyRight, b[3:]\n\t\tcase 'D':\n\t\t\treturn keyLeft, b[3:]\n\t\tcase 'H':\n\t\t\treturn keyHome, b[3:]\n\t\tcase 'F':\n\t\t\treturn keyEnd, b[3:]\n\t\t}\n\t}\n\n\tif !pasteActive && len(b) >= 6 && b[0] == keyEscape && b[1] == '[' && b[2] == '1' && b[3] == ';' && b[4] == '3' {\n\t\tswitch b[5] {\n\t\tcase 'C':\n\t\t\treturn keyAltRight, b[6:]\n\t\tcase 'D':\n\t\t\treturn keyAltLeft, b[6:]\n\t\t}\n\t}\n\n\tif !pasteActive && len(b) >= 6 && bytes.Equal(b[:6], pasteStart) {\n\t\treturn keyPasteStart, b[6:]\n\t}\n\n\tif pasteActive && len(b) >= 6 && bytes.Equal(b[:6], pasteEnd) {\n\t\treturn keyPasteEnd, b[6:]\n\t}\n\n\t// If we get here then we have a key that we don't recognise, or a\n\t// partial sequence. It's not clear how one should find the end of a\n\t// sequence without knowing them all, but it seems that [a-zA-Z~] only\n\t// appears at the end of a sequence.\n\tfor i, c := range b[0:] {\n\t\tif c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z' || c == '~' {\n\t\t\treturn keyUnknown, b[i+1:]\n\t\t}\n\t}\n\n\treturn utf8.RuneError, b\n}\n\n// queue appends data to the end of t.outBuf\nfunc (t *Terminal) queue(data []rune) {\n\tt.outBuf = append(t.outBuf, []byte(string(data))...)\n}\n\nvar space = []rune{' '}\n\nfunc isPrintable(key rune) bool {\n\tisInSurrogateArea := key >= 0xd800 && key <= 0xdbff\n\treturn key >= 32 && !isInSurrogateArea\n}\n\n// moveCursorToPos appends data to t.outBuf which will move the cursor to the\n// given, logical position in the text.\nfunc (t *Terminal) moveCursorToPos(pos int) {\n\tif !t.echo {\n\t\treturn\n\t}\n\n\tx := visualLength(t.prompt) + pos\n\ty := x / t.termWidth\n\tx = x % t.termWidth\n\n\tup := 0\n\tif y < t.cursorY {\n\t\tup = t.cursorY - y\n\t}\n\n\tdown := 0\n\tif y > t.cursorY {\n\t\tdown = y - t.cursorY\n\t}\n\n\tleft := 0\n\tif x < t.cursorX {\n\t\tleft = t.cursorX - x\n\t}\n\n\tright := 0\n\tif x > t.cursorX {\n\t\tright = x - t.cursorX\n\t}\n\n\tt.cursorX = x\n\tt.cursorY = y\n\tt.move(up, down, left, right)\n}\n\nfunc (t *Terminal) move(up, down, left, right int) {\n\tm := []rune{}\n\n\t// 1 unit up can be expressed as ^[[A or ^[A\n\t// 5 units up can be expressed as ^[[5A\n\n\tif up == 1 {\n\t\tm = append(m, keyEscape, '[', 'A')\n\t} else if up > 1 {\n\t\tm = append(m, keyEscape, '[')\n\t\tm = append(m, []rune(strconv.Itoa(up))...)\n\t\tm = append(m, 'A')\n\t}\n\n\tif down == 1 {\n\t\tm = append(m, keyEscape, '[', 'B')\n\t} else if down > 1 {\n\t\tm = append(m, keyEscape, '[')\n\t\tm = append(m, []rune(strconv.Itoa(down))...)\n\t\tm = append(m, 'B')\n\t}\n\n\tif right == 1 {\n\t\tm = append(m, keyEscape, '[', 'C')\n\t} else if right > 1 {\n\t\tm = append(m, keyEscape, '[')\n\t\tm = append(m, []rune(strconv.Itoa(right))...)\n\t\tm = append(m, 'C')\n\t}\n\n\tif left == 1 {\n\t\tm = append(m, keyEscape, '[', 'D')\n\t} else if left > 1 {\n\t\tm = append(m, keyEscape, '[')\n\t\tm = append(m, []rune(strconv.Itoa(left))...)\n\t\tm = append(m, 'D')\n\t}\n\n\tt.queue(m)\n}\n\nfunc (t *Terminal) clearLineToRight() {\n\top := []rune{keyEscape, '[', 'K'}\n\tt.queue(op)\n}\n\nconst maxLineLength = 4096\n\nfunc (t *Terminal) setLine(newLine []rune, newPos int) {\n\tif t.echo {\n\t\tt.moveCursorToPos(0)\n\t\tt.writeLine(newLine)\n\t\tfor i := len(newLine); i < len(t.line); i++ {\n\t\t\tt.writeLine(space)\n\t\t}\n\t\tt.moveCursorToPos(newPos)\n\t}\n\tt.line = newLine\n\tt.pos = newPos\n}\n\nfunc (t *Terminal) advanceCursor(places int) {\n\tt.cursorX += places\n\tt.cursorY += t.cursorX / t.termWidth\n\tif t.cursorY > t.maxLine {\n\t\tt.maxLine = t.cursorY\n\t}\n\tt.cursorX = t.cursorX % t.termWidth\n\n\tif places > 0 && t.cursorX == 0 {\n\t\t// Normally terminals will advance the current position\n\t\t// when writing a character. But that doesn't happen\n\t\t// for the last character in a line. However, when\n\t\t// writing a character (except a new line) that causes\n\t\t// a line wrap, the position will be advanced two\n\t\t// places.\n\t\t//\n\t\t// So, if we are stopping at the end of a line, we\n\t\t// need to write a newline so that our cursor can be\n\t\t// advanced to the next line.\n\t\tt.outBuf = append(t.outBuf, '\\r', '\\n')\n\t}\n}\n\nfunc (t *Terminal) eraseNPreviousChars(n int) {\n\tif n == 0 {\n\t\treturn\n\t}\n\n\tif t.pos < n {\n\t\tn = t.pos\n\t}\n\tt.pos -= n\n\tt.moveCursorToPos(t.pos)\n\n\tcopy(t.line[t.pos:], t.line[n+t.pos:])\n\tt.line = t.line[:len(t.line)-n]\n\tif t.echo {\n\t\tt.writeLine(t.line[t.pos:])\n\t\tfor i := 0; i < n; i++ {\n\t\t\tt.queue(space)\n\t\t}\n\t\tt.advanceCursor(n)\n\t\tt.moveCursorToPos(t.pos)\n\t}\n}\n\n// countToLeftWord returns then number of characters from the cursor to the\n// start of the previous word.\nfunc (t *Terminal) countToLeftWord() int {\n\tif t.pos == 0 {\n\t\treturn 0\n\t}\n\n\tpos := t.pos - 1\n\tfor pos > 0 {\n\t\tif t.line[pos] != ' ' {\n\t\t\tbreak\n\t\t}\n\t\tpos--\n\t}\n\tfor pos > 0 {\n\t\tif t.line[pos] == ' ' {\n\t\t\tpos++\n\t\t\tbreak\n\t\t}\n\t\tpos--\n\t}\n\n\treturn t.pos - pos\n}\n\n// countToRightWord returns then number of characters from the cursor to the\n// start of the next word.\nfunc (t *Terminal) countToRightWord() int {\n\tpos := t.pos\n\tfor pos < len(t.line) {\n\t\tif t.line[pos] == ' ' {\n\t\t\tbreak\n\t\t}\n\t\tpos++\n\t}\n\tfor pos < len(t.line) {\n\t\tif t.line[pos] != ' ' {\n\t\t\tbreak\n\t\t}\n\t\tpos++\n\t}\n\treturn pos - t.pos\n}\n\n// visualLength returns the number of visible glyphs in s.\nfunc visualLength(runes []rune) int {\n\tinEscapeSeq := false\n\tlength := 0\n\n\tfor _, r := range runes {\n\t\tswitch {\n\t\tcase inEscapeSeq:\n\t\t\tif (r >= 'a' && r <= 'z') || (r >= 'A' && r <= 'Z') {\n\t\t\t\tinEscapeSeq = false\n\t\t\t}\n\t\tcase r == '\\x1b':\n\t\t\tinEscapeSeq = true\n\t\tdefault:\n\t\t\tlength++\n\t\t}\n\t}\n\n\treturn length\n}\n\n// handleKey processes the given key and, optionally, returns a line of text\n// that the user has entered.\nfunc (t *Terminal) handleKey(key rune) (line string, ok bool) {\n\tif t.pasteActive && key != keyEnter {\n\t\tt.addKeyToLine(key)\n\t\treturn\n\t}\n\n\tswitch key {\n\tcase keyBackspace:\n\t\tif t.pos == 0 {\n\t\t\treturn\n\t\t}\n\t\tt.eraseNPreviousChars(1)\n\tcase keyAltLeft:\n\t\t// move left by a word.\n\t\tt.pos -= t.countToLeftWord()\n\t\tt.moveCursorToPos(t.pos)\n\tcase keyAltRight:\n\t\t// move right by a word.\n\t\tt.pos += t.countToRightWord()\n\t\tt.moveCursorToPos(t.pos)\n\tcase keyLeft:\n\t\tif t.pos == 0 {\n\t\t\treturn\n\t\t}\n\t\tt.pos--\n\t\tt.moveCursorToPos(t.pos)\n\tcase keyRight:\n\t\tif t.pos == len(t.line) {\n\t\t\treturn\n\t\t}\n\t\tt.pos++\n\t\tt.moveCursorToPos(t.pos)\n\tcase keyHome:\n\t\tif t.pos == 0 {\n\t\t\treturn\n\t\t}\n\t\tt.pos = 0\n\t\tt.moveCursorToPos(t.pos)\n\tcase keyEnd:\n\t\tif t.pos == len(t.line) {\n\t\t\treturn\n\t\t}\n\t\tt.pos = len(t.line)\n\t\tt.moveCursorToPos(t.pos)\n\tcase keyUp:\n\t\tentry, ok := t.history.NthPreviousEntry(t.historyIndex + 1)\n\t\tif !ok {\n\t\t\treturn \"\", false\n\t\t}\n\t\tif t.historyIndex == -1 {\n\t\t\tt.historyPending = string(t.line)\n\t\t}\n\t\tt.historyIndex++\n\t\trunes := []rune(entry)\n\t\tt.setLine(runes, len(runes))\n\tcase keyDown:\n\t\tswitch t.historyIndex {\n\t\tcase -1:\n\t\t\treturn\n\t\tcase 0:\n\t\t\trunes := []rune(t.historyPending)\n\t\t\tt.setLine(runes, len(runes))\n\t\t\tt.historyIndex--\n\t\tdefault:\n\t\t\tentry, ok := t.history.NthPreviousEntry(t.historyIndex - 1)\n\t\t\tif ok {\n\t\t\t\tt.historyIndex--\n\t\t\t\trunes := []rune(entry)\n\t\t\t\tt.setLine(runes, len(runes))\n\t\t\t}\n\t\t}\n\tcase keyEnter:\n\t\tt.moveCursorToPos(len(t.line))\n\t\tt.queue([]rune(\"\\r\\n\"))\n\t\tline = string(t.line)\n\t\tok = true\n\t\tt.line = t.line[:0]\n\t\tt.pos = 0\n\t\tt.cursorX = 0\n\t\tt.cursorY = 0\n\t\tt.maxLine = 0\n\tcase keyDeleteWord:\n\t\t// Delete zero or more spaces and then one or more characters.\n\t\tt.eraseNPreviousChars(t.countToLeftWord())\n\tcase keyDeleteLine:\n\t\t// Delete everything from the current cursor position to the\n\t\t// end of line.\n\t\tfor i := t.pos; i < len(t.line); i++ {\n\t\t\tt.queue(space)\n\t\t\tt.advanceCursor(1)\n\t\t}\n\t\tt.line = t.line[:t.pos]\n\t\tt.moveCursorToPos(t.pos)\n\tcase keyCtrlD:\n\t\t// Erase the character under the current position.\n\t\t// The EOF case when the line is empty is handled in\n\t\t// readLine().\n\t\tif t.pos < len(t.line) {\n\t\t\tt.pos++\n\t\t\tt.eraseNPreviousChars(1)\n\t\t}\n\tcase keyCtrlU:\n\t\tt.eraseNPreviousChars(t.pos)\n\tcase keyClearScreen:\n\t\t// Erases the screen and moves the cursor to the home position.\n\t\tt.queue([]rune(\"\\x1b[2J\\x1b[H\"))\n\t\tt.queue(t.prompt)\n\t\tt.cursorX, t.cursorY = 0, 0\n\t\tt.advanceCursor(visualLength(t.prompt))\n\t\tt.setLine(t.line, t.pos)\n\tdefault:\n\t\tif t.AutoCompleteCallback != nil {\n\t\t\tprefix := string(t.line[:t.pos])\n\t\t\tsuffix := string(t.line[t.pos:])\n\n\t\t\tt.lock.Unlock()\n\t\t\tnewLine, newPos, completeOk := t.AutoCompleteCallback(prefix+suffix, len(prefix), key)\n\t\t\tt.lock.Lock()\n\n\t\t\tif completeOk {\n\t\t\t\tt.setLine([]rune(newLine), utf8.RuneCount([]byte(newLine)[:newPos]))\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t\tif !isPrintable(key) {\n\t\t\treturn\n\t\t}\n\t\tif len(t.line) == maxLineLength {\n\t\t\treturn\n\t\t}\n\t\tt.addKeyToLine(key)\n\t}\n\treturn\n}\n\n// addKeyToLine inserts the given key at the current position in the current\n// line.\nfunc (t *Terminal) addKeyToLine(key rune) {\n\tif len(t.line) == cap(t.line) {\n\t\tnewLine := make([]rune, len(t.line), 2*(1+len(t.line)))\n\t\tcopy(newLine, t.line)\n\t\tt.line = newLine\n\t}\n\tt.line = t.line[:len(t.line)+1]\n\tcopy(t.line[t.pos+1:], t.line[t.pos:])\n\tt.line[t.pos] = key\n\tif t.echo {\n\t\tt.writeLine(t.line[t.pos:])\n\t}\n\tt.pos++\n\tt.moveCursorToPos(t.pos)\n}\n\nfunc (t *Terminal) writeLine(line []rune) {\n\tfor len(line) != 0 {\n\t\tremainingOnLine := t.termWidth - t.cursorX\n\t\ttodo := len(line)\n\t\tif todo > remainingOnLine {\n\t\t\ttodo = remainingOnLine\n\t\t}\n\t\tt.queue(line[:todo])\n\t\tt.advanceCursor(visualLength(line[:todo]))\n\t\tline = line[todo:]\n\t}\n}\n\n// writeWithCRLF writes buf to w but replaces all occurrences of \\n with \\r\\n.\nfunc writeWithCRLF(w io.Writer, buf []byte) (n int, err error) {\n\tfor len(buf) > 0 {\n\t\ti := bytes.IndexByte(buf, '\\n')\n\t\ttodo := len(buf)\n\t\tif i >= 0 {\n\t\t\ttodo = i\n\t\t}\n\n\t\tvar nn int\n\t\tnn, err = w.Write(buf[:todo])\n\t\tn += nn\n\t\tif err != nil {\n\t\t\treturn n, err\n\t\t}\n\t\tbuf = buf[todo:]\n\n\t\tif i >= 0 {\n\t\t\tif _, err = w.Write(crlf); err != nil {\n\t\t\t\treturn n, err\n\t\t\t}\n\t\t\tn++\n\t\t\tbuf = buf[1:]\n\t\t}\n\t}\n\n\treturn n, nil\n}\n\nfunc (t *Terminal) Write(buf []byte) (n int, err error) {\n\tt.lock.Lock()\n\tdefer t.lock.Unlock()\n\n\tif t.cursorX == 0 && t.cursorY == 0 {\n\t\t// This is the easy case: there's nothing on the screen that we\n\t\t// have to move out of the way.\n\t\treturn writeWithCRLF(t.c, buf)\n\t}\n\n\t// We have a prompt and possibly user input on the screen. We\n\t// have to clear it first.\n\tt.move(0 /* up */, 0 /* down */, t.cursorX /* left */, 0 /* right */)\n\tt.cursorX = 0\n\tt.clearLineToRight()\n\n\tfor t.cursorY > 0 {\n\t\tt.move(1 /* up */, 0, 0, 0)\n\t\tt.cursorY--\n\t\tt.clearLineToRight()\n\t}\n\n\tif _, err = t.c.Write(t.outBuf); err != nil {\n\t\treturn\n\t}\n\tt.outBuf = t.outBuf[:0]\n\n\tif n, err = writeWithCRLF(t.c, buf); err != nil {\n\t\treturn\n\t}\n\n\tt.writeLine(t.prompt)\n\tif t.echo {\n\t\tt.writeLine(t.line)\n\t}\n\n\tt.moveCursorToPos(t.pos)\n\n\tif _, err = t.c.Write(t.outBuf); err != nil {\n\t\treturn\n\t}\n\tt.outBuf = t.outBuf[:0]\n\treturn\n}\n\n// ReadPassword temporarily changes the prompt and reads a password, without\n// echo, from the terminal.\nfunc (t *Terminal) ReadPassword(prompt string) (line string, err error) {\n\tt.lock.Lock()\n\tdefer t.lock.Unlock()\n\n\toldPrompt := t.prompt\n\tt.prompt = []rune(prompt)\n\tt.echo = false\n\n\tline, err = t.readLine()\n\n\tt.prompt = oldPrompt\n\tt.echo = true\n\n\treturn\n}\n\n// ReadLine returns a line of input from the terminal.\nfunc (t *Terminal) ReadLine() (line string, err error) {\n\tt.lock.Lock()\n\tdefer t.lock.Unlock()\n\n\treturn t.readLine()\n}\n\nfunc (t *Terminal) readLine() (line string, err error) {\n\t// t.lock must be held at this point\n\n\tif t.cursorX == 0 && t.cursorY == 0 {\n\t\tt.writeLine(t.prompt)\n\t\tt.c.Write(t.outBuf)\n\t\tt.outBuf = t.outBuf[:0]\n\t}\n\n\tlineIsPasted := t.pasteActive\n\n\tfor {\n\t\trest := t.remainder\n\t\tlineOk := false\n\t\tfor !lineOk {\n\t\t\tvar key rune\n\t\t\tkey, rest = bytesToKey(rest, t.pasteActive)\n\t\t\tif key == utf8.RuneError {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif !t.pasteActive {\n\t\t\t\tif key == keyCtrlD {\n\t\t\t\t\tif len(t.line) == 0 {\n\t\t\t\t\t\treturn \"\", io.EOF\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif key == keyCtrlC {\n\t\t\t\t\treturn \"\", io.EOF\n\t\t\t\t}\n\t\t\t\tif key == keyPasteStart {\n\t\t\t\t\tt.pasteActive = true\n\t\t\t\t\tif len(t.line) == 0 {\n\t\t\t\t\t\tlineIsPasted = true\n\t\t\t\t\t}\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t} else if key == keyPasteEnd {\n\t\t\t\tt.pasteActive = false\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif !t.pasteActive {\n\t\t\t\tlineIsPasted = false\n\t\t\t}\n\t\t\tline, lineOk = t.handleKey(key)\n\t\t}\n\t\tif len(rest) > 0 {\n\t\t\tn := copy(t.inBuf[:], rest)\n\t\t\tt.remainder = t.inBuf[:n]\n\t\t} else {\n\t\t\tt.remainder = nil\n\t\t}\n\t\tt.c.Write(t.outBuf)\n\t\tt.outBuf = t.outBuf[:0]\n\t\tif lineOk {\n\t\t\tif t.echo {\n\t\t\t\tt.historyIndex = -1\n\t\t\t\tt.history.Add(line)\n\t\t\t}\n\t\t\tif lineIsPasted {\n\t\t\t\terr = ErrPasteIndicator\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\t// t.remainder is a slice at the beginning of t.inBuf\n\t\t// containing a partial key sequence\n\t\treadBuf := t.inBuf[len(t.remainder):]\n\t\tvar n int\n\n\t\tt.lock.Unlock()\n\t\tn, err = t.c.Read(readBuf)\n\t\tt.lock.Lock()\n\n\t\tif err != nil {\n\t\t\treturn\n\t\t}\n\n\t\tt.remainder = t.inBuf[:n+len(t.remainder)]\n\t}\n}\n\n// SetPrompt sets the prompt to be used when reading subsequent lines.\nfunc (t *Terminal) SetPrompt(prompt string) {\n\tt.lock.Lock()\n\tdefer t.lock.Unlock()\n\n\tt.prompt = []rune(prompt)\n}\n\nfunc (t *Terminal) clearAndRepaintLinePlusNPrevious(numPrevLines int) {\n\t// Move cursor to column zero at the start of the line.\n\tt.move(t.cursorY, 0, t.cursorX, 0)\n\tt.cursorX, t.cursorY = 0, 0\n\tt.clearLineToRight()\n\tfor t.cursorY < numPrevLines {\n\t\t// Move down a line\n\t\tt.move(0, 1, 0, 0)\n\t\tt.cursorY++\n\t\tt.clearLineToRight()\n\t}\n\t// Move back to beginning.\n\tt.move(t.cursorY, 0, 0, 0)\n\tt.cursorX, t.cursorY = 0, 0\n\n\tt.queue(t.prompt)\n\tt.advanceCursor(visualLength(t.prompt))\n\tt.writeLine(t.line)\n\tt.moveCursorToPos(t.pos)\n}\n\nfunc (t *Terminal) SetSize(width, height int) error {\n\tt.lock.Lock()\n\tdefer t.lock.Unlock()\n\n\tif width == 0 {\n\t\twidth = 1\n\t}\n\n\toldWidth := t.termWidth\n\tt.termWidth, t.termHeight = width, height\n\n\tswitch {\n\tcase width == oldWidth:\n\t\t// If the width didn't change then nothing else needs to be\n\t\t// done.\n\t\treturn nil\n\tcase len(t.line) == 0 && t.cursorX == 0 && t.cursorY == 0:\n\t\t// If there is nothing on current line and no prompt printed,\n\t\t// just do nothing\n\t\treturn nil\n\tcase width < oldWidth:\n\t\t// Some terminals (e.g. xterm) will truncate lines that were\n\t\t// too long when shinking. Others, (e.g. gnome-terminal) will\n\t\t// attempt to wrap them. For the former, repainting t.maxLine\n\t\t// works great, but that behaviour goes badly wrong in the case\n\t\t// of the latter because they have doubled every full line.\n\n\t\t// We assume that we are working on a terminal that wraps lines\n\t\t// and adjust the cursor position based on every previous line\n\t\t// wrapping and turning into two. This causes the prompt on\n\t\t// xterms to move upwards, which isn't great, but it avoids a\n\t\t// huge mess with gnome-terminal.\n\t\tif t.cursorX >= t.termWidth {\n\t\t\tt.cursorX = t.termWidth - 1\n\t\t}\n\t\tt.cursorY *= 2\n\t\tt.clearAndRepaintLinePlusNPrevious(t.maxLine * 2)\n\tcase width > oldWidth:\n\t\t// If the terminal expands then our position calculations will\n\t\t// be wrong in the future because we think the cursor is\n\t\t// |t.pos| chars into the string, but there will be a gap at\n\t\t// the end of any wrapped line.\n\t\t//\n\t\t// But the position will actually be correct until we move, so\n\t\t// we can move back to the beginning and repaint everything.\n\t\tt.clearAndRepaintLinePlusNPrevious(t.maxLine)\n\t}\n\n\t_, err := t.c.Write(t.outBuf)\n\tt.outBuf = t.outBuf[:0]\n\treturn err\n}\n\ntype pasteIndicatorError struct{}\n\nfunc (pasteIndicatorError) Error() string {\n\treturn \"terminal: ErrPasteIndicator not correctly handled\"\n}\n\n// ErrPasteIndicator may be returned from ReadLine as the error, in addition\n// to valid line data. It indicates that bracketed paste mode is enabled and\n// that the returned line consists only of pasted data. Programs may wish to\n// interpret pasted data more literally than typed data.\nvar ErrPasteIndicator = pasteIndicatorError{}\n\n// SetBracketedPasteMode requests that the terminal bracket paste operations\n// with markers. Not all terminals support this but, if it is supported, then\n// enabling this mode will stop any autocomplete callback from running due to\n// pastes. Additionally, any lines that are completely pasted will be returned\n// from ReadLine with the error set to ErrPasteIndicator.\nfunc (t *Terminal) SetBracketedPasteMode(on bool) {\n\tif on {\n\t\tio.WriteString(t.c, \"\\x1b[?2004h\")\n\t} else {\n\t\tio.WriteString(t.c, \"\\x1b[?2004l\")\n\t}\n}\n\n// stRingBuffer is a ring buffer of strings.\ntype stRingBuffer struct {\n\t// entries contains max elements.\n\tentries []string\n\tmax     int\n\t// head contains the index of the element most recently added to the ring.\n\thead int\n\t// size contains the number of elements in the ring.\n\tsize int\n}\n\nfunc (s *stRingBuffer) Add(a string) {\n\tif s.entries == nil {\n\t\tconst defaultNumEntries = 100\n\t\ts.entries = make([]string, defaultNumEntries)\n\t\ts.max = defaultNumEntries\n\t}\n\n\ts.head = (s.head + 1) % s.max\n\ts.entries[s.head] = a\n\tif s.size < s.max {\n\t\ts.size++\n\t}\n}\n\n// NthPreviousEntry returns the value passed to the nth previous call to Add.\n// If n is zero then the immediately prior value is returned, if one, then the\n// next most recent, and so on. If such an element doesn't exist then ok is\n// false.\nfunc (s *stRingBuffer) NthPreviousEntry(n int) (value string, ok bool) {\n\tif n < 0 || n >= s.size {\n\t\treturn \"\", false\n\t}\n\tindex := s.head - n\n\tif index < 0 {\n\t\tindex += s.max\n\t}\n\treturn s.entries[index], true\n}\n\n// readPasswordLine reads from reader until it finds \\n or io.EOF.\n// The slice returned does not include the \\n.\n// readPasswordLine also ignores any \\r it finds.\n// Windows uses \\r as end of line. So, on Windows, readPasswordLine\n// reads until it finds \\r and ignores any \\n it finds during processing.\nfunc readPasswordLine(reader io.Reader) ([]byte, error) {\n\tvar buf [1]byte\n\tvar ret []byte\n\n\tfor {\n\t\tn, err := reader.Read(buf[:])\n\t\tif n > 0 {\n\t\t\tswitch buf[0] {\n\t\t\tcase '\\b':\n\t\t\t\tif len(ret) > 0 {\n\t\t\t\t\tret = ret[:len(ret)-1]\n\t\t\t\t}\n\t\t\tcase '\\n':\n\t\t\t\tif runtime.GOOS != \"windows\" {\n\t\t\t\t\treturn ret, nil\n\t\t\t\t}\n\t\t\t\t// otherwise ignore \\n\n\t\t\tcase '\\r':\n\t\t\t\tif runtime.GOOS == \"windows\" {\n\t\t\t\t\treturn ret, nil\n\t\t\t\t}\n\t\t\t\t// otherwise ignore \\r\n\t\t\tdefault:\n\t\t\t\tret = append(ret, buf[0])\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif err != nil {\n\t\t\tif err == io.EOF && len(ret) > 0 {\n\t\t\t\treturn ret, nil\n\t\t\t}\n\t\t\treturn ret, err\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/LICENSE",
    "content": "Copyright 2009 The Go Authors.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google LLC nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/golang.org/x/text/PATENTS",
    "content": "Additional IP Rights Grant (Patents)\n\n\"This implementation\" means the copyrightable works distributed by\nGoogle as part of the Go project.\n\nGoogle hereby grants to You a perpetual, worldwide, non-exclusive,\nno-charge, royalty-free, irrevocable (except as stated in this section)\npatent license to make, have made, use, offer to sell, sell, import,\ntransfer and otherwise run, modify and propagate the contents of this\nimplementation of Go, where such license applies only to those patent\nclaims, both currently owned or controlled by Google and acquired in\nthe future, licensable by Google that are necessarily infringed by this\nimplementation of Go.  This grant does not include claims that would be\ninfringed only as a consequence of further modification of this\nimplementation.  If you or your agent or exclusive licensee institute or\norder or agree to the institution of patent litigation against any\nentity (including a cross-claim or counterclaim in a lawsuit) alleging\nthat this implementation of Go or any code incorporated within this\nimplementation of Go constitutes direct or contributory patent\ninfringement, or inducement of patent infringement, then any patent\nrights granted to you under this License for this implementation of Go\nshall terminate as of the date such litigation is filed.\n"
  },
  {
    "path": "vendor/golang.org/x/text/secure/bidirule/bidirule.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package bidirule implements the Bidi Rule defined by RFC 5893.\n//\n// This package is under development. The API may change without notice and\n// without preserving backward compatibility.\npackage bidirule\n\nimport (\n\t\"errors\"\n\t\"unicode/utf8\"\n\n\t\"golang.org/x/text/transform\"\n\t\"golang.org/x/text/unicode/bidi\"\n)\n\n// This file contains an implementation of RFC 5893: Right-to-Left Scripts for\n// Internationalized Domain Names for Applications (IDNA)\n//\n// A label is an individual component of a domain name.  Labels are usually\n// shown separated by dots; for example, the domain name \"www.example.com\" is\n// composed of three labels: \"www\", \"example\", and \"com\".\n//\n// An RTL label is a label that contains at least one character of class R, AL,\n// or AN. An LTR label is any label that is not an RTL label.\n//\n// A \"Bidi domain name\" is a domain name that contains at least one RTL label.\n//\n//  The following guarantees can be made based on the above:\n//\n//  o  In a domain name consisting of only labels that satisfy the rule,\n//     the requirements of Section 3 are satisfied.  Note that even LTR\n//     labels and pure ASCII labels have to be tested.\n//\n//  o  In a domain name consisting of only LDH labels (as defined in the\n//     Definitions document [RFC5890]) and labels that satisfy the rule,\n//     the requirements of Section 3 are satisfied as long as a label\n//     that starts with an ASCII digit does not come after a\n//     right-to-left label.\n//\n//  No guarantee is given for other combinations.\n\n// ErrInvalid indicates a label is invalid according to the Bidi Rule.\nvar ErrInvalid = errors.New(\"bidirule: failed Bidi Rule\")\n\ntype ruleState uint8\n\nconst (\n\truleInitial ruleState = iota\n\truleLTR\n\truleLTRFinal\n\truleRTL\n\truleRTLFinal\n\truleInvalid\n)\n\ntype ruleTransition struct {\n\tnext ruleState\n\tmask uint16\n}\n\nvar transitions = [...][2]ruleTransition{\n\t// [2.1] The first character must be a character with Bidi property L, R, or\n\t// AL. If it has the R or AL property, it is an RTL label; if it has the L\n\t// property, it is an LTR label.\n\truleInitial: {\n\t\t{ruleLTRFinal, 1 << bidi.L},\n\t\t{ruleRTLFinal, 1<<bidi.R | 1<<bidi.AL},\n\t},\n\truleRTL: {\n\t\t// [2.3] In an RTL label, the end of the label must be a character with\n\t\t// Bidi property R, AL, EN, or AN, followed by zero or more characters\n\t\t// with Bidi property NSM.\n\t\t{ruleRTLFinal, 1<<bidi.R | 1<<bidi.AL | 1<<bidi.EN | 1<<bidi.AN},\n\n\t\t// [2.2] In an RTL label, only characters with the Bidi properties R,\n\t\t// AL, AN, EN, ES, CS, ET, ON, BN, or NSM are allowed.\n\t\t// We exclude the entries from [2.3]\n\t\t{ruleRTL, 1<<bidi.ES | 1<<bidi.CS | 1<<bidi.ET | 1<<bidi.ON | 1<<bidi.BN | 1<<bidi.NSM},\n\t},\n\truleRTLFinal: {\n\t\t// [2.3] In an RTL label, the end of the label must be a character with\n\t\t// Bidi property R, AL, EN, or AN, followed by zero or more characters\n\t\t// with Bidi property NSM.\n\t\t{ruleRTLFinal, 1<<bidi.R | 1<<bidi.AL | 1<<bidi.EN | 1<<bidi.AN | 1<<bidi.NSM},\n\n\t\t// [2.2] In an RTL label, only characters with the Bidi properties R,\n\t\t// AL, AN, EN, ES, CS, ET, ON, BN, or NSM are allowed.\n\t\t// We exclude the entries from [2.3] and NSM.\n\t\t{ruleRTL, 1<<bidi.ES | 1<<bidi.CS | 1<<bidi.ET | 1<<bidi.ON | 1<<bidi.BN},\n\t},\n\truleLTR: {\n\t\t// [2.6] In an LTR label, the end of the label must be a character with\n\t\t// Bidi property L or EN, followed by zero or more characters with Bidi\n\t\t// property NSM.\n\t\t{ruleLTRFinal, 1<<bidi.L | 1<<bidi.EN},\n\n\t\t// [2.5] In an LTR label, only characters with the Bidi properties L,\n\t\t// EN, ES, CS, ET, ON, BN, or NSM are allowed.\n\t\t// We exclude the entries from [2.6].\n\t\t{ruleLTR, 1<<bidi.ES | 1<<bidi.CS | 1<<bidi.ET | 1<<bidi.ON | 1<<bidi.BN | 1<<bidi.NSM},\n\t},\n\truleLTRFinal: {\n\t\t// [2.6] In an LTR label, the end of the label must be a character with\n\t\t// Bidi property L or EN, followed by zero or more characters with Bidi\n\t\t// property NSM.\n\t\t{ruleLTRFinal, 1<<bidi.L | 1<<bidi.EN | 1<<bidi.NSM},\n\n\t\t// [2.5] In an LTR label, only characters with the Bidi properties L,\n\t\t// EN, ES, CS, ET, ON, BN, or NSM are allowed.\n\t\t// We exclude the entries from [2.6].\n\t\t{ruleLTR, 1<<bidi.ES | 1<<bidi.CS | 1<<bidi.ET | 1<<bidi.ON | 1<<bidi.BN},\n\t},\n\truleInvalid: {\n\t\t{ruleInvalid, 0},\n\t\t{ruleInvalid, 0},\n\t},\n}\n\n// [2.4] In an RTL label, if an EN is present, no AN may be present, and\n// vice versa.\nconst exclusiveRTL = uint16(1<<bidi.EN | 1<<bidi.AN)\n\n// From RFC 5893\n// An RTL label is a label that contains at least one character of type\n// R, AL, or AN.\n//\n// An LTR label is any label that is not an RTL label.\n\n// Direction reports the direction of the given label as defined by RFC 5893.\n// The Bidi Rule does not have to be applied to labels of the category\n// LeftToRight.\nfunc Direction(b []byte) bidi.Direction {\n\tfor i := 0; i < len(b); {\n\t\te, sz := bidi.Lookup(b[i:])\n\t\tif sz == 0 {\n\t\t\ti++\n\t\t}\n\t\tc := e.Class()\n\t\tif c == bidi.R || c == bidi.AL || c == bidi.AN {\n\t\t\treturn bidi.RightToLeft\n\t\t}\n\t\ti += sz\n\t}\n\treturn bidi.LeftToRight\n}\n\n// DirectionString reports the direction of the given label as defined by RFC\n// 5893. The Bidi Rule does not have to be applied to labels of the category\n// LeftToRight.\nfunc DirectionString(s string) bidi.Direction {\n\tfor i := 0; i < len(s); {\n\t\te, sz := bidi.LookupString(s[i:])\n\t\tif sz == 0 {\n\t\t\ti++\n\t\t\tcontinue\n\t\t}\n\t\tc := e.Class()\n\t\tif c == bidi.R || c == bidi.AL || c == bidi.AN {\n\t\t\treturn bidi.RightToLeft\n\t\t}\n\t\ti += sz\n\t}\n\treturn bidi.LeftToRight\n}\n\n// Valid reports whether b conforms to the BiDi rule.\nfunc Valid(b []byte) bool {\n\tvar t Transformer\n\tif n, ok := t.advance(b); !ok || n < len(b) {\n\t\treturn false\n\t}\n\treturn t.isFinal()\n}\n\n// ValidString reports whether s conforms to the BiDi rule.\nfunc ValidString(s string) bool {\n\tvar t Transformer\n\tif n, ok := t.advanceString(s); !ok || n < len(s) {\n\t\treturn false\n\t}\n\treturn t.isFinal()\n}\n\n// New returns a Transformer that verifies that input adheres to the Bidi Rule.\nfunc New() *Transformer {\n\treturn &Transformer{}\n}\n\n// Transformer implements transform.Transform.\ntype Transformer struct {\n\tstate  ruleState\n\thasRTL bool\n\tseen   uint16\n}\n\n// A rule can only be violated for \"Bidi Domain names\", meaning if one of the\n// following categories has been observed.\nfunc (t *Transformer) isRTL() bool {\n\tconst isRTL = 1<<bidi.R | 1<<bidi.AL | 1<<bidi.AN\n\treturn t.seen&isRTL != 0\n}\n\n// Reset implements transform.Transformer.\nfunc (t *Transformer) Reset() { *t = Transformer{} }\n\n// Transform implements transform.Transformer. This Transformer has state and\n// needs to be reset between uses.\nfunc (t *Transformer) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {\n\tif len(dst) < len(src) {\n\t\tsrc = src[:len(dst)]\n\t\tatEOF = false\n\t\terr = transform.ErrShortDst\n\t}\n\tn, err1 := t.Span(src, atEOF)\n\tcopy(dst, src[:n])\n\tif err == nil || err1 != nil && err1 != transform.ErrShortSrc {\n\t\terr = err1\n\t}\n\treturn n, n, err\n}\n\n// Span returns the first n bytes of src that conform to the Bidi rule.\nfunc (t *Transformer) Span(src []byte, atEOF bool) (n int, err error) {\n\tif t.state == ruleInvalid && t.isRTL() {\n\t\treturn 0, ErrInvalid\n\t}\n\tn, ok := t.advance(src)\n\tswitch {\n\tcase !ok:\n\t\terr = ErrInvalid\n\tcase n < len(src):\n\t\tif !atEOF {\n\t\t\terr = transform.ErrShortSrc\n\t\t\tbreak\n\t\t}\n\t\terr = ErrInvalid\n\tcase !t.isFinal():\n\t\terr = ErrInvalid\n\t}\n\treturn n, err\n}\n\n// Precomputing the ASCII values decreases running time for the ASCII fast path\n// by about 30%.\nvar asciiTable [128]bidi.Properties\n\nfunc init() {\n\tfor i := range asciiTable {\n\t\tp, _ := bidi.LookupRune(rune(i))\n\t\tasciiTable[i] = p\n\t}\n}\n\nfunc (t *Transformer) advance(s []byte) (n int, ok bool) {\n\tvar e bidi.Properties\n\tvar sz int\n\tfor n < len(s) {\n\t\tif s[n] < utf8.RuneSelf {\n\t\t\te, sz = asciiTable[s[n]], 1\n\t\t} else {\n\t\t\te, sz = bidi.Lookup(s[n:])\n\t\t\tif sz <= 1 {\n\t\t\t\tif sz == 1 {\n\t\t\t\t\t// We always consider invalid UTF-8 to be invalid, even if\n\t\t\t\t\t// the string has not yet been determined to be RTL.\n\t\t\t\t\t// TODO: is this correct?\n\t\t\t\t\treturn n, false\n\t\t\t\t}\n\t\t\t\treturn n, true // incomplete UTF-8 encoding\n\t\t\t}\n\t\t}\n\t\t// TODO: using CompactClass would result in noticeable speedup.\n\t\t// See unicode/bidi/prop.go:Properties.CompactClass.\n\t\tc := uint16(1 << e.Class())\n\t\tt.seen |= c\n\t\tif t.seen&exclusiveRTL == exclusiveRTL {\n\t\t\tt.state = ruleInvalid\n\t\t\treturn n, false\n\t\t}\n\t\tswitch tr := transitions[t.state]; {\n\t\tcase tr[0].mask&c != 0:\n\t\t\tt.state = tr[0].next\n\t\tcase tr[1].mask&c != 0:\n\t\t\tt.state = tr[1].next\n\t\tdefault:\n\t\t\tt.state = ruleInvalid\n\t\t\tif t.isRTL() {\n\t\t\t\treturn n, false\n\t\t\t}\n\t\t}\n\t\tn += sz\n\t}\n\treturn n, true\n}\n\nfunc (t *Transformer) advanceString(s string) (n int, ok bool) {\n\tvar e bidi.Properties\n\tvar sz int\n\tfor n < len(s) {\n\t\tif s[n] < utf8.RuneSelf {\n\t\t\te, sz = asciiTable[s[n]], 1\n\t\t} else {\n\t\t\te, sz = bidi.LookupString(s[n:])\n\t\t\tif sz <= 1 {\n\t\t\t\tif sz == 1 {\n\t\t\t\t\treturn n, false // invalid UTF-8\n\t\t\t\t}\n\t\t\t\treturn n, true // incomplete UTF-8 encoding\n\t\t\t}\n\t\t}\n\t\t// TODO: using CompactClass results in noticeable speedup.\n\t\t// See unicode/bidi/prop.go:Properties.CompactClass.\n\t\tc := uint16(1 << e.Class())\n\t\tt.seen |= c\n\t\tif t.seen&exclusiveRTL == exclusiveRTL {\n\t\t\tt.state = ruleInvalid\n\t\t\treturn n, false\n\t\t}\n\t\tswitch tr := transitions[t.state]; {\n\t\tcase tr[0].mask&c != 0:\n\t\t\tt.state = tr[0].next\n\t\tcase tr[1].mask&c != 0:\n\t\t\tt.state = tr[1].next\n\t\tdefault:\n\t\t\tt.state = ruleInvalid\n\t\t\tif t.isRTL() {\n\t\t\t\treturn n, false\n\t\t\t}\n\t\t}\n\t\tn += sz\n\t}\n\treturn n, true\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/secure/bidirule/bidirule10.0.0.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build go1.10\n\npackage bidirule\n\nfunc (t *Transformer) isFinal() bool {\n\treturn t.state == ruleLTRFinal || t.state == ruleRTLFinal || t.state == ruleInitial\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/secure/bidirule/bidirule9.0.0.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build !go1.10\n\npackage bidirule\n\nfunc (t *Transformer) isFinal() bool {\n\tif !t.isRTL() {\n\t\treturn true\n\t}\n\treturn t.state == ruleLTRFinal || t.state == ruleRTLFinal || t.state == ruleInitial\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/transform/transform.go",
    "content": "// Copyright 2013 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package transform provides reader and writer wrappers that transform the\n// bytes passing through as well as various transformations. Example\n// transformations provided by other packages include normalization and\n// conversion between character sets.\npackage transform // import \"golang.org/x/text/transform\"\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"io\"\n\t\"unicode/utf8\"\n)\n\nvar (\n\t// ErrShortDst means that the destination buffer was too short to\n\t// receive all of the transformed bytes.\n\tErrShortDst = errors.New(\"transform: short destination buffer\")\n\n\t// ErrShortSrc means that the source buffer has insufficient data to\n\t// complete the transformation.\n\tErrShortSrc = errors.New(\"transform: short source buffer\")\n\n\t// ErrEndOfSpan means that the input and output (the transformed input)\n\t// are not identical.\n\tErrEndOfSpan = errors.New(\"transform: input and output are not identical\")\n\n\t// errInconsistentByteCount means that Transform returned success (nil\n\t// error) but also returned nSrc inconsistent with the src argument.\n\terrInconsistentByteCount = errors.New(\"transform: inconsistent byte count returned\")\n\n\t// errShortInternal means that an internal buffer is not large enough\n\t// to make progress and the Transform operation must be aborted.\n\terrShortInternal = errors.New(\"transform: short internal buffer\")\n)\n\n// Transformer transforms bytes.\ntype Transformer interface {\n\t// Transform writes to dst the transformed bytes read from src, and\n\t// returns the number of dst bytes written and src bytes read. The\n\t// atEOF argument tells whether src represents the last bytes of the\n\t// input.\n\t//\n\t// Callers should always process the nDst bytes produced and account\n\t// for the nSrc bytes consumed before considering the error err.\n\t//\n\t// A nil error means that all of the transformed bytes (whether freshly\n\t// transformed from src or left over from previous Transform calls)\n\t// were written to dst. A nil error can be returned regardless of\n\t// whether atEOF is true. If err is nil then nSrc must equal len(src);\n\t// the converse is not necessarily true.\n\t//\n\t// ErrShortDst means that dst was too short to receive all of the\n\t// transformed bytes. ErrShortSrc means that src had insufficient data\n\t// to complete the transformation. If both conditions apply, then\n\t// either error may be returned. Other than the error conditions listed\n\t// here, implementations are free to report other errors that arise.\n\tTransform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error)\n\n\t// Reset resets the state and allows a Transformer to be reused.\n\tReset()\n}\n\n// SpanningTransformer extends the Transformer interface with a Span method\n// that determines how much of the input already conforms to the Transformer.\ntype SpanningTransformer interface {\n\tTransformer\n\n\t// Span returns a position in src such that transforming src[:n] results in\n\t// identical output src[:n] for these bytes. It does not necessarily return\n\t// the largest such n. The atEOF argument tells whether src represents the\n\t// last bytes of the input.\n\t//\n\t// Callers should always account for the n bytes consumed before\n\t// considering the error err.\n\t//\n\t// A nil error means that all input bytes are known to be identical to the\n\t// output produced by the Transformer. A nil error can be returned\n\t// regardless of whether atEOF is true. If err is nil, then n must\n\t// equal len(src); the converse is not necessarily true.\n\t//\n\t// ErrEndOfSpan means that the Transformer output may differ from the\n\t// input after n bytes. Note that n may be len(src), meaning that the output\n\t// would contain additional bytes after otherwise identical output.\n\t// ErrShortSrc means that src had insufficient data to determine whether the\n\t// remaining bytes would change. Other than the error conditions listed\n\t// here, implementations are free to report other errors that arise.\n\t//\n\t// Calling Span can modify the Transformer state as a side effect. In\n\t// effect, it does the transformation just as calling Transform would, only\n\t// without copying to a destination buffer and only up to a point it can\n\t// determine the input and output bytes are the same. This is obviously more\n\t// limited than calling Transform, but can be more efficient in terms of\n\t// copying and allocating buffers. Calls to Span and Transform may be\n\t// interleaved.\n\tSpan(src []byte, atEOF bool) (n int, err error)\n}\n\n// NopResetter can be embedded by implementations of Transformer to add a nop\n// Reset method.\ntype NopResetter struct{}\n\n// Reset implements the Reset method of the Transformer interface.\nfunc (NopResetter) Reset() {}\n\n// Reader wraps another io.Reader by transforming the bytes read.\ntype Reader struct {\n\tr   io.Reader\n\tt   Transformer\n\terr error\n\n\t// dst[dst0:dst1] contains bytes that have been transformed by t but\n\t// not yet copied out via Read.\n\tdst        []byte\n\tdst0, dst1 int\n\n\t// src[src0:src1] contains bytes that have been read from r but not\n\t// yet transformed through t.\n\tsrc        []byte\n\tsrc0, src1 int\n\n\t// transformComplete is whether the transformation is complete,\n\t// regardless of whether or not it was successful.\n\ttransformComplete bool\n}\n\nconst defaultBufSize = 4096\n\n// NewReader returns a new Reader that wraps r by transforming the bytes read\n// via t. It calls Reset on t.\nfunc NewReader(r io.Reader, t Transformer) *Reader {\n\tt.Reset()\n\treturn &Reader{\n\t\tr:   r,\n\t\tt:   t,\n\t\tdst: make([]byte, defaultBufSize),\n\t\tsrc: make([]byte, defaultBufSize),\n\t}\n}\n\n// Read implements the io.Reader interface.\nfunc (r *Reader) Read(p []byte) (int, error) {\n\tn, err := 0, error(nil)\n\tfor {\n\t\t// Copy out any transformed bytes and return the final error if we are done.\n\t\tif r.dst0 != r.dst1 {\n\t\t\tn = copy(p, r.dst[r.dst0:r.dst1])\n\t\t\tr.dst0 += n\n\t\t\tif r.dst0 == r.dst1 && r.transformComplete {\n\t\t\t\treturn n, r.err\n\t\t\t}\n\t\t\treturn n, nil\n\t\t} else if r.transformComplete {\n\t\t\treturn 0, r.err\n\t\t}\n\n\t\t// Try to transform some source bytes, or to flush the transformer if we\n\t\t// are out of source bytes. We do this even if r.r.Read returned an error.\n\t\t// As the io.Reader documentation says, \"process the n > 0 bytes returned\n\t\t// before considering the error\".\n\t\tif r.src0 != r.src1 || r.err != nil {\n\t\t\tr.dst0 = 0\n\t\t\tr.dst1, n, err = r.t.Transform(r.dst, r.src[r.src0:r.src1], r.err == io.EOF)\n\t\t\tr.src0 += n\n\n\t\t\tswitch {\n\t\t\tcase err == nil:\n\t\t\t\tif r.src0 != r.src1 {\n\t\t\t\t\tr.err = errInconsistentByteCount\n\t\t\t\t}\n\t\t\t\t// The Transform call was successful; we are complete if we\n\t\t\t\t// cannot read more bytes into src.\n\t\t\t\tr.transformComplete = r.err != nil\n\t\t\t\tcontinue\n\t\t\tcase err == ErrShortDst && (r.dst1 != 0 || n != 0):\n\t\t\t\t// Make room in dst by copying out, and try again.\n\t\t\t\tcontinue\n\t\t\tcase err == ErrShortSrc && r.src1-r.src0 != len(r.src) && r.err == nil:\n\t\t\t\t// Read more bytes into src via the code below, and try again.\n\t\t\tdefault:\n\t\t\t\tr.transformComplete = true\n\t\t\t\t// The reader error (r.err) takes precedence over the\n\t\t\t\t// transformer error (err) unless r.err is nil or io.EOF.\n\t\t\t\tif r.err == nil || r.err == io.EOF {\n\t\t\t\t\tr.err = err\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\t// Move any untransformed source bytes to the start of the buffer\n\t\t// and read more bytes.\n\t\tif r.src0 != 0 {\n\t\t\tr.src0, r.src1 = 0, copy(r.src, r.src[r.src0:r.src1])\n\t\t}\n\t\tn, r.err = r.r.Read(r.src[r.src1:])\n\t\tr.src1 += n\n\t}\n}\n\n// TODO: implement ReadByte (and ReadRune??).\n\n// Writer wraps another io.Writer by transforming the bytes read.\n// The user needs to call Close to flush unwritten bytes that may\n// be buffered.\ntype Writer struct {\n\tw   io.Writer\n\tt   Transformer\n\tdst []byte\n\n\t// src[:n] contains bytes that have not yet passed through t.\n\tsrc []byte\n\tn   int\n}\n\n// NewWriter returns a new Writer that wraps w by transforming the bytes written\n// via t. It calls Reset on t.\nfunc NewWriter(w io.Writer, t Transformer) *Writer {\n\tt.Reset()\n\treturn &Writer{\n\t\tw:   w,\n\t\tt:   t,\n\t\tdst: make([]byte, defaultBufSize),\n\t\tsrc: make([]byte, defaultBufSize),\n\t}\n}\n\n// Write implements the io.Writer interface. If there are not enough\n// bytes available to complete a Transform, the bytes will be buffered\n// for the next write. Call Close to convert the remaining bytes.\nfunc (w *Writer) Write(data []byte) (n int, err error) {\n\tsrc := data\n\tif w.n > 0 {\n\t\t// Append bytes from data to the last remainder.\n\t\t// TODO: limit the amount copied on first try.\n\t\tn = copy(w.src[w.n:], data)\n\t\tw.n += n\n\t\tsrc = w.src[:w.n]\n\t}\n\tfor {\n\t\tnDst, nSrc, err := w.t.Transform(w.dst, src, false)\n\t\tif _, werr := w.w.Write(w.dst[:nDst]); werr != nil {\n\t\t\treturn n, werr\n\t\t}\n\t\tsrc = src[nSrc:]\n\t\tif w.n == 0 {\n\t\t\tn += nSrc\n\t\t} else if len(src) <= n {\n\t\t\t// Enough bytes from w.src have been consumed. We make src point\n\t\t\t// to data instead to reduce the copying.\n\t\t\tw.n = 0\n\t\t\tn -= len(src)\n\t\t\tsrc = data[n:]\n\t\t\tif n < len(data) && (err == nil || err == ErrShortSrc) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\t\tswitch err {\n\t\tcase ErrShortDst:\n\t\t\t// This error is okay as long as we are making progress.\n\t\t\tif nDst > 0 || nSrc > 0 {\n\t\t\t\tcontinue\n\t\t\t}\n\t\tcase ErrShortSrc:\n\t\t\tif len(src) < len(w.src) {\n\t\t\t\tm := copy(w.src, src)\n\t\t\t\t// If w.n > 0, bytes from data were already copied to w.src and n\n\t\t\t\t// was already set to the number of bytes consumed.\n\t\t\t\tif w.n == 0 {\n\t\t\t\t\tn += m\n\t\t\t\t}\n\t\t\t\tw.n = m\n\t\t\t\terr = nil\n\t\t\t} else if nDst > 0 || nSrc > 0 {\n\t\t\t\t// Not enough buffer to store the remainder. Keep processing as\n\t\t\t\t// long as there is progress. Without this case, transforms that\n\t\t\t\t// require a lookahead larger than the buffer may result in an\n\t\t\t\t// error. This is not something one may expect to be common in\n\t\t\t\t// practice, but it may occur when buffers are set to small\n\t\t\t\t// sizes during testing.\n\t\t\t\tcontinue\n\t\t\t}\n\t\tcase nil:\n\t\t\tif w.n > 0 {\n\t\t\t\terr = errInconsistentByteCount\n\t\t\t}\n\t\t}\n\t\treturn n, err\n\t}\n}\n\n// Close implements the io.Closer interface.\nfunc (w *Writer) Close() error {\n\tsrc := w.src[:w.n]\n\tfor {\n\t\tnDst, nSrc, err := w.t.Transform(w.dst, src, true)\n\t\tif _, werr := w.w.Write(w.dst[:nDst]); werr != nil {\n\t\t\treturn werr\n\t\t}\n\t\tif err != ErrShortDst {\n\t\t\treturn err\n\t\t}\n\t\tsrc = src[nSrc:]\n\t}\n}\n\ntype nop struct{ NopResetter }\n\nfunc (nop) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {\n\tn := copy(dst, src)\n\tif n < len(src) {\n\t\terr = ErrShortDst\n\t}\n\treturn n, n, err\n}\n\nfunc (nop) Span(src []byte, atEOF bool) (n int, err error) {\n\treturn len(src), nil\n}\n\ntype discard struct{ NopResetter }\n\nfunc (discard) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {\n\treturn 0, len(src), nil\n}\n\nvar (\n\t// Discard is a Transformer for which all Transform calls succeed\n\t// by consuming all bytes and writing nothing.\n\tDiscard Transformer = discard{}\n\n\t// Nop is a SpanningTransformer that copies src to dst.\n\tNop SpanningTransformer = nop{}\n)\n\n// chain is a sequence of links. A chain with N Transformers has N+1 links and\n// N+1 buffers. Of those N+1 buffers, the first and last are the src and dst\n// buffers given to chain.Transform and the middle N-1 buffers are intermediate\n// buffers owned by the chain. The i'th link transforms bytes from the i'th\n// buffer chain.link[i].b at read offset chain.link[i].p to the i+1'th buffer\n// chain.link[i+1].b at write offset chain.link[i+1].n, for i in [0, N).\ntype chain struct {\n\tlink []link\n\terr  error\n\t// errStart is the index at which the error occurred plus 1. Processing\n\t// errStart at this level at the next call to Transform. As long as\n\t// errStart > 0, chain will not consume any more source bytes.\n\terrStart int\n}\n\nfunc (c *chain) fatalError(errIndex int, err error) {\n\tif i := errIndex + 1; i > c.errStart {\n\t\tc.errStart = i\n\t\tc.err = err\n\t}\n}\n\ntype link struct {\n\tt Transformer\n\t// b[p:n] holds the bytes to be transformed by t.\n\tb []byte\n\tp int\n\tn int\n}\n\nfunc (l *link) src() []byte {\n\treturn l.b[l.p:l.n]\n}\n\nfunc (l *link) dst() []byte {\n\treturn l.b[l.n:]\n}\n\n// Chain returns a Transformer that applies t in sequence.\nfunc Chain(t ...Transformer) Transformer {\n\tif len(t) == 0 {\n\t\treturn nop{}\n\t}\n\tc := &chain{link: make([]link, len(t)+1)}\n\tfor i, tt := range t {\n\t\tc.link[i].t = tt\n\t}\n\t// Allocate intermediate buffers.\n\tb := make([][defaultBufSize]byte, len(t)-1)\n\tfor i := range b {\n\t\tc.link[i+1].b = b[i][:]\n\t}\n\treturn c\n}\n\n// Reset resets the state of Chain. It calls Reset on all the Transformers.\nfunc (c *chain) Reset() {\n\tfor i, l := range c.link {\n\t\tif l.t != nil {\n\t\t\tl.t.Reset()\n\t\t}\n\t\tc.link[i].p, c.link[i].n = 0, 0\n\t}\n}\n\n// TODO: make chain use Span (is going to be fun to implement!)\n\n// Transform applies the transformers of c in sequence.\nfunc (c *chain) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {\n\t// Set up src and dst in the chain.\n\tsrcL := &c.link[0]\n\tdstL := &c.link[len(c.link)-1]\n\tsrcL.b, srcL.p, srcL.n = src, 0, len(src)\n\tdstL.b, dstL.n = dst, 0\n\tvar lastFull, needProgress bool // for detecting progress\n\n\t// i is the index of the next Transformer to apply, for i in [low, high].\n\t// low is the lowest index for which c.link[low] may still produce bytes.\n\t// high is the highest index for which c.link[high] has a Transformer.\n\t// The error returned by Transform determines whether to increase or\n\t// decrease i. We try to completely fill a buffer before converting it.\n\tfor low, i, high := c.errStart, c.errStart, len(c.link)-2; low <= i && i <= high; {\n\t\tin, out := &c.link[i], &c.link[i+1]\n\t\tnDst, nSrc, err0 := in.t.Transform(out.dst(), in.src(), atEOF && low == i)\n\t\tout.n += nDst\n\t\tin.p += nSrc\n\t\tif i > 0 && in.p == in.n {\n\t\t\tin.p, in.n = 0, 0\n\t\t}\n\t\tneedProgress, lastFull = lastFull, false\n\t\tswitch err0 {\n\t\tcase ErrShortDst:\n\t\t\t// Process the destination buffer next. Return if we are already\n\t\t\t// at the high index.\n\t\t\tif i == high {\n\t\t\t\treturn dstL.n, srcL.p, ErrShortDst\n\t\t\t}\n\t\t\tif out.n != 0 {\n\t\t\t\ti++\n\t\t\t\t// If the Transformer at the next index is not able to process any\n\t\t\t\t// source bytes there is nothing that can be done to make progress\n\t\t\t\t// and the bytes will remain unprocessed. lastFull is used to\n\t\t\t\t// detect this and break out of the loop with a fatal error.\n\t\t\t\tlastFull = true\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\t// The destination buffer was too small, but is completely empty.\n\t\t\t// Return a fatal error as this transformation can never complete.\n\t\t\tc.fatalError(i, errShortInternal)\n\t\tcase ErrShortSrc:\n\t\t\tif i == 0 {\n\t\t\t\t// Save ErrShortSrc in err. All other errors take precedence.\n\t\t\t\terr = ErrShortSrc\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// Source bytes were depleted before filling up the destination buffer.\n\t\t\t// Verify we made some progress, move the remaining bytes to the errStart\n\t\t\t// and try to get more source bytes.\n\t\t\tif needProgress && nSrc == 0 || in.n-in.p == len(in.b) {\n\t\t\t\t// There were not enough source bytes to proceed while the source\n\t\t\t\t// buffer cannot hold any more bytes. Return a fatal error as this\n\t\t\t\t// transformation can never complete.\n\t\t\t\tc.fatalError(i, errShortInternal)\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// in.b is an internal buffer and we can make progress.\n\t\t\tin.p, in.n = 0, copy(in.b, in.src())\n\t\t\tfallthrough\n\t\tcase nil:\n\t\t\t// if i == low, we have depleted the bytes at index i or any lower levels.\n\t\t\t// In that case we increase low and i. In all other cases we decrease i to\n\t\t\t// fetch more bytes before proceeding to the next index.\n\t\t\tif i > low {\n\t\t\t\ti--\n\t\t\t\tcontinue\n\t\t\t}\n\t\tdefault:\n\t\t\tc.fatalError(i, err0)\n\t\t}\n\t\t// Exhausted level low or fatal error: increase low and continue\n\t\t// to process the bytes accepted so far.\n\t\ti++\n\t\tlow = i\n\t}\n\n\t// If c.errStart > 0, this means we found a fatal error.  We will clear\n\t// all upstream buffers. At this point, no more progress can be made\n\t// downstream, as Transform would have bailed while handling ErrShortDst.\n\tif c.errStart > 0 {\n\t\tfor i := 1; i < c.errStart; i++ {\n\t\t\tc.link[i].p, c.link[i].n = 0, 0\n\t\t}\n\t\terr, c.errStart, c.err = c.err, 0, nil\n\t}\n\treturn dstL.n, srcL.p, err\n}\n\n// Deprecated: Use runes.Remove instead.\nfunc RemoveFunc(f func(r rune) bool) Transformer {\n\treturn removeF(f)\n}\n\ntype removeF func(r rune) bool\n\nfunc (removeF) Reset() {}\n\n// Transform implements the Transformer interface.\nfunc (t removeF) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {\n\tfor r, sz := rune(0), 0; len(src) > 0; src = src[sz:] {\n\n\t\tif r = rune(src[0]); r < utf8.RuneSelf {\n\t\t\tsz = 1\n\t\t} else {\n\t\t\tr, sz = utf8.DecodeRune(src)\n\n\t\t\tif sz == 1 {\n\t\t\t\t// Invalid rune.\n\t\t\t\tif !atEOF && !utf8.FullRune(src) {\n\t\t\t\t\terr = ErrShortSrc\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\t// We replace illegal bytes with RuneError. Not doing so might\n\t\t\t\t// otherwise turn a sequence of invalid UTF-8 into valid UTF-8.\n\t\t\t\t// The resulting byte sequence may subsequently contain runes\n\t\t\t\t// for which t(r) is true that were passed unnoticed.\n\t\t\t\tif !t(r) {\n\t\t\t\t\tif nDst+3 > len(dst) {\n\t\t\t\t\t\terr = ErrShortDst\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tnDst += copy(dst[nDst:], \"\\uFFFD\")\n\t\t\t\t}\n\t\t\t\tnSrc++\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\tif !t(r) {\n\t\t\tif nDst+sz > len(dst) {\n\t\t\t\terr = ErrShortDst\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tnDst += copy(dst[nDst:], src[:sz])\n\t\t}\n\t\tnSrc += sz\n\t}\n\treturn\n}\n\n// grow returns a new []byte that is longer than b, and copies the first n bytes\n// of b to the start of the new slice.\nfunc grow(b []byte, n int) []byte {\n\tm := len(b)\n\tif m <= 32 {\n\t\tm = 64\n\t} else if m <= 256 {\n\t\tm *= 2\n\t} else {\n\t\tm += m >> 1\n\t}\n\tbuf := make([]byte, m)\n\tcopy(buf, b[:n])\n\treturn buf\n}\n\nconst initialBufSize = 128\n\n// String returns a string with the result of converting s[:n] using t, where\n// n <= len(s). If err == nil, n will be len(s). It calls Reset on t.\nfunc String(t Transformer, s string) (result string, n int, err error) {\n\tt.Reset()\n\tif s == \"\" {\n\t\t// Fast path for the common case for empty input. Results in about a\n\t\t// 86% reduction of running time for BenchmarkStringLowerEmpty.\n\t\tif _, _, err := t.Transform(nil, nil, true); err == nil {\n\t\t\treturn \"\", 0, nil\n\t\t}\n\t}\n\n\t// Allocate only once. Note that both dst and src escape when passed to\n\t// Transform.\n\tbuf := [2 * initialBufSize]byte{}\n\tdst := buf[:initialBufSize:initialBufSize]\n\tsrc := buf[initialBufSize : 2*initialBufSize]\n\n\t// The input string s is transformed in multiple chunks (starting with a\n\t// chunk size of initialBufSize). nDst and nSrc are per-chunk (or\n\t// per-Transform-call) indexes, pDst and pSrc are overall indexes.\n\tnDst, nSrc := 0, 0\n\tpDst, pSrc := 0, 0\n\n\t// pPrefix is the length of a common prefix: the first pPrefix bytes of the\n\t// result will equal the first pPrefix bytes of s. It is not guaranteed to\n\t// be the largest such value, but if pPrefix, len(result) and len(s) are\n\t// all equal after the final transform (i.e. calling Transform with atEOF\n\t// being true returned nil error) then we don't need to allocate a new\n\t// result string.\n\tpPrefix := 0\n\tfor {\n\t\t// Invariant: pDst == pPrefix && pSrc == pPrefix.\n\n\t\tn := copy(src, s[pSrc:])\n\t\tnDst, nSrc, err = t.Transform(dst, src[:n], pSrc+n == len(s))\n\t\tpDst += nDst\n\t\tpSrc += nSrc\n\n\t\t// TODO:  let transformers implement an optional Spanner interface, akin\n\t\t// to norm's QuickSpan. This would even allow us to avoid any allocation.\n\t\tif !bytes.Equal(dst[:nDst], src[:nSrc]) {\n\t\t\tbreak\n\t\t}\n\t\tpPrefix = pSrc\n\t\tif err == ErrShortDst {\n\t\t\t// A buffer can only be short if a transformer modifies its input.\n\t\t\tbreak\n\t\t} else if err == ErrShortSrc {\n\t\t\tif nSrc == 0 {\n\t\t\t\t// No progress was made.\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// Equal so far and !atEOF, so continue checking.\n\t\t} else if err != nil || pPrefix == len(s) {\n\t\t\treturn string(s[:pPrefix]), pPrefix, err\n\t\t}\n\t}\n\t// Post-condition: pDst == pPrefix + nDst && pSrc == pPrefix + nSrc.\n\n\t// We have transformed the first pSrc bytes of the input s to become pDst\n\t// transformed bytes. Those transformed bytes are discontiguous: the first\n\t// pPrefix of them equal s[:pPrefix] and the last nDst of them equal\n\t// dst[:nDst]. We copy them around, into a new dst buffer if necessary, so\n\t// that they become one contiguous slice: dst[:pDst].\n\tif pPrefix != 0 {\n\t\tnewDst := dst\n\t\tif pDst > len(newDst) {\n\t\t\tnewDst = make([]byte, len(s)+nDst-nSrc)\n\t\t}\n\t\tcopy(newDst[pPrefix:pDst], dst[:nDst])\n\t\tcopy(newDst[:pPrefix], s[:pPrefix])\n\t\tdst = newDst\n\t}\n\n\t// Prevent duplicate Transform calls with atEOF being true at the end of\n\t// the input. Also return if we have an unrecoverable error.\n\tif (err == nil && pSrc == len(s)) ||\n\t\t(err != nil && err != ErrShortDst && err != ErrShortSrc) {\n\t\treturn string(dst[:pDst]), pSrc, err\n\t}\n\n\t// Transform the remaining input, growing dst and src buffers as necessary.\n\tfor {\n\t\tn := copy(src, s[pSrc:])\n\t\tatEOF := pSrc+n == len(s)\n\t\tnDst, nSrc, err := t.Transform(dst[pDst:], src[:n], atEOF)\n\t\tpDst += nDst\n\t\tpSrc += nSrc\n\n\t\t// If we got ErrShortDst or ErrShortSrc, do not grow as long as we can\n\t\t// make progress. This may avoid excessive allocations.\n\t\tif err == ErrShortDst {\n\t\t\tif nDst == 0 {\n\t\t\t\tdst = grow(dst, pDst)\n\t\t\t}\n\t\t} else if err == ErrShortSrc {\n\t\t\tif atEOF {\n\t\t\t\treturn string(dst[:pDst]), pSrc, err\n\t\t\t}\n\t\t\tif nSrc == 0 {\n\t\t\t\tsrc = grow(src, 0)\n\t\t\t}\n\t\t} else if err != nil || pSrc == len(s) {\n\t\t\treturn string(dst[:pDst]), pSrc, err\n\t\t}\n\t}\n}\n\n// Bytes returns a new byte slice with the result of converting b[:n] using t,\n// where n <= len(b). If err == nil, n will be len(b). It calls Reset on t.\nfunc Bytes(t Transformer, b []byte) (result []byte, n int, err error) {\n\treturn doAppend(t, 0, make([]byte, len(b)), b)\n}\n\n// Append appends the result of converting src[:n] using t to dst, where\n// n <= len(src), If err == nil, n will be len(src). It calls Reset on t.\nfunc Append(t Transformer, dst, src []byte) (result []byte, n int, err error) {\n\tif len(dst) == cap(dst) {\n\t\tn := len(src) + len(dst) // It is okay for this to be 0.\n\t\tb := make([]byte, n)\n\t\tdst = b[:copy(b, dst)]\n\t}\n\treturn doAppend(t, len(dst), dst[:cap(dst)], src)\n}\n\nfunc doAppend(t Transformer, pDst int, dst, src []byte) (result []byte, n int, err error) {\n\tt.Reset()\n\tpSrc := 0\n\tfor {\n\t\tnDst, nSrc, err := t.Transform(dst[pDst:], src[pSrc:], true)\n\t\tpDst += nDst\n\t\tpSrc += nSrc\n\t\tif err != ErrShortDst {\n\t\t\treturn dst[:pDst], pSrc, err\n\t\t}\n\n\t\t// Grow the destination buffer, but do not grow as long as we can make\n\t\t// progress. This may avoid excessive allocations.\n\t\tif nDst == 0 {\n\t\t\tdst = grow(dst, pDst)\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/bidi/bidi.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:generate go run gen.go gen_trieval.go gen_ranges.go\n\n// Package bidi contains functionality for bidirectional text support.\n//\n// See https://www.unicode.org/reports/tr9.\n//\n// NOTE: UNDER CONSTRUCTION. This API may change in backwards incompatible ways\n// and without notice.\npackage bidi // import \"golang.org/x/text/unicode/bidi\"\n\n// TODO\n// - Transformer for reordering?\n// - Transformer (validator, really) for Bidi Rule.\n\nimport (\n\t\"bytes\"\n)\n\n// This API tries to avoid dealing with embedding levels for now. Under the hood\n// these will be computed, but the question is to which extent the user should\n// know they exist. We should at some point allow the user to specify an\n// embedding hierarchy, though.\n\n// A Direction indicates the overall flow of text.\ntype Direction int\n\nconst (\n\t// LeftToRight indicates the text contains no right-to-left characters and\n\t// that either there are some left-to-right characters or the option\n\t// DefaultDirection(LeftToRight) was passed.\n\tLeftToRight Direction = iota\n\n\t// RightToLeft indicates the text contains no left-to-right characters and\n\t// that either there are some right-to-left characters or the option\n\t// DefaultDirection(RightToLeft) was passed.\n\tRightToLeft\n\n\t// Mixed indicates text contains both left-to-right and right-to-left\n\t// characters.\n\tMixed\n\n\t// Neutral means that text contains no left-to-right and right-to-left\n\t// characters and that no default direction has been set.\n\tNeutral\n)\n\ntype options struct {\n\tdefaultDirection Direction\n}\n\n// An Option is an option for Bidi processing.\ntype Option func(*options)\n\n// ICU allows the user to define embedding levels. This may be used, for example,\n// to use hierarchical structure of markup languages to define embeddings.\n// The following option may be a way to expose this functionality in this API.\n// // LevelFunc sets a function that associates nesting levels with the given text.\n// // The levels function will be called with monotonically increasing values for p.\n// func LevelFunc(levels func(p int) int) Option {\n// \tpanic(\"unimplemented\")\n// }\n\n// DefaultDirection sets the default direction for a Paragraph. The direction is\n// overridden if the text contains directional characters.\nfunc DefaultDirection(d Direction) Option {\n\treturn func(opts *options) {\n\t\topts.defaultDirection = d\n\t}\n}\n\n// A Paragraph holds a single Paragraph for Bidi processing.\ntype Paragraph struct {\n\tp          []byte\n\to          Ordering\n\topts       []Option\n\ttypes      []Class\n\tpairTypes  []bracketType\n\tpairValues []rune\n\trunes      []rune\n\toptions    options\n}\n\n// Initialize the p.pairTypes, p.pairValues and p.types from the input previously\n// set by p.SetBytes() or p.SetString(). Also limit the input up to (and including) a paragraph\n// separator (bidi class B).\n//\n// The function p.Order() needs these values to be set, so this preparation could be postponed.\n// But since the SetBytes and SetStrings functions return the length of the input up to the paragraph\n// separator, the whole input needs to be processed anyway and should not be done twice.\n//\n// The function has the same return values as SetBytes() / SetString()\nfunc (p *Paragraph) prepareInput() (n int, err error) {\n\tp.runes = bytes.Runes(p.p)\n\tbytecount := 0\n\t// clear slices from previous SetString or SetBytes\n\tp.pairTypes = nil\n\tp.pairValues = nil\n\tp.types = nil\n\n\tfor _, r := range p.runes {\n\t\tprops, i := LookupRune(r)\n\t\tbytecount += i\n\t\tcls := props.Class()\n\t\tif cls == B {\n\t\t\treturn bytecount, nil\n\t\t}\n\t\tp.types = append(p.types, cls)\n\t\tif props.IsOpeningBracket() {\n\t\t\tp.pairTypes = append(p.pairTypes, bpOpen)\n\t\t\tp.pairValues = append(p.pairValues, r)\n\t\t} else if props.IsBracket() {\n\t\t\t// this must be a closing bracket,\n\t\t\t// since IsOpeningBracket is not true\n\t\t\tp.pairTypes = append(p.pairTypes, bpClose)\n\t\t\tp.pairValues = append(p.pairValues, r)\n\t\t} else {\n\t\t\tp.pairTypes = append(p.pairTypes, bpNone)\n\t\t\tp.pairValues = append(p.pairValues, 0)\n\t\t}\n\t}\n\treturn bytecount, nil\n}\n\n// SetBytes configures p for the given paragraph text. It replaces text\n// previously set by SetBytes or SetString. If b contains a paragraph separator\n// it will only process the first paragraph and report the number of bytes\n// consumed from b including this separator. Error may be non-nil if options are\n// given.\nfunc (p *Paragraph) SetBytes(b []byte, opts ...Option) (n int, err error) {\n\tp.p = b\n\tp.opts = opts\n\treturn p.prepareInput()\n}\n\n// SetString configures s for the given paragraph text. It replaces text\n// previously set by SetBytes or SetString. If s contains a paragraph separator\n// it will only process the first paragraph and report the number of bytes\n// consumed from s including this separator. Error may be non-nil if options are\n// given.\nfunc (p *Paragraph) SetString(s string, opts ...Option) (n int, err error) {\n\tp.p = []byte(s)\n\tp.opts = opts\n\treturn p.prepareInput()\n}\n\n// IsLeftToRight reports whether the principle direction of rendering for this\n// paragraphs is left-to-right. If this returns false, the principle direction\n// of rendering is right-to-left.\nfunc (p *Paragraph) IsLeftToRight() bool {\n\treturn p.Direction() == LeftToRight\n}\n\n// Direction returns the direction of the text of this paragraph.\n//\n// The direction may be LeftToRight, RightToLeft, Mixed, or Neutral.\nfunc (p *Paragraph) Direction() Direction {\n\treturn p.o.Direction()\n}\n\n// TODO: what happens if the position is > len(input)? This should return an error.\n\n// RunAt reports the Run at the given position of the input text.\n//\n// This method can be used for computing line breaks on paragraphs.\nfunc (p *Paragraph) RunAt(pos int) Run {\n\tc := 0\n\trunNumber := 0\n\tfor i, r := range p.o.runes {\n\t\tc += len(r)\n\t\tif pos < c {\n\t\t\trunNumber = i\n\t\t}\n\t}\n\treturn p.o.Run(runNumber)\n}\n\nfunc calculateOrdering(levels []level, runes []rune) Ordering {\n\tvar curDir Direction\n\n\tprevDir := Neutral\n\tprevI := 0\n\n\to := Ordering{}\n\t// lvl = 0,2,4,...: left to right\n\t// lvl = 1,3,5,...: right to left\n\tfor i, lvl := range levels {\n\t\tif lvl%2 == 0 {\n\t\t\tcurDir = LeftToRight\n\t\t} else {\n\t\t\tcurDir = RightToLeft\n\t\t}\n\t\tif curDir != prevDir {\n\t\t\tif i > 0 {\n\t\t\t\to.runes = append(o.runes, runes[prevI:i])\n\t\t\t\to.directions = append(o.directions, prevDir)\n\t\t\t\to.startpos = append(o.startpos, prevI)\n\t\t\t}\n\t\t\tprevI = i\n\t\t\tprevDir = curDir\n\t\t}\n\t}\n\to.runes = append(o.runes, runes[prevI:])\n\to.directions = append(o.directions, prevDir)\n\to.startpos = append(o.startpos, prevI)\n\treturn o\n}\n\n// Order computes the visual ordering of all the runs in a Paragraph.\nfunc (p *Paragraph) Order() (Ordering, error) {\n\tif len(p.types) == 0 {\n\t\treturn Ordering{}, nil\n\t}\n\n\tfor _, fn := range p.opts {\n\t\tfn(&p.options)\n\t}\n\tlvl := level(-1)\n\tif p.options.defaultDirection == RightToLeft {\n\t\tlvl = 1\n\t}\n\tpara, err := newParagraph(p.types, p.pairTypes, p.pairValues, lvl)\n\tif err != nil {\n\t\treturn Ordering{}, err\n\t}\n\n\tlevels := para.getLevels([]int{len(p.types)})\n\n\tp.o = calculateOrdering(levels, p.runes)\n\treturn p.o, nil\n}\n\n// Line computes the visual ordering of runs for a single line starting and\n// ending at the given positions in the original text.\nfunc (p *Paragraph) Line(start, end int) (Ordering, error) {\n\tlineTypes := p.types[start:end]\n\tpara, err := newParagraph(lineTypes, p.pairTypes[start:end], p.pairValues[start:end], -1)\n\tif err != nil {\n\t\treturn Ordering{}, err\n\t}\n\tlevels := para.getLevels([]int{len(lineTypes)})\n\to := calculateOrdering(levels, p.runes[start:end])\n\treturn o, nil\n}\n\n// An Ordering holds the computed visual order of runs of a Paragraph. Calling\n// SetBytes or SetString on the originating Paragraph invalidates an Ordering.\n// The methods of an Ordering should only be called by one goroutine at a time.\ntype Ordering struct {\n\trunes      [][]rune\n\tdirections []Direction\n\tstartpos   []int\n}\n\n// Direction reports the directionality of the runs.\n//\n// The direction may be LeftToRight, RightToLeft, Mixed, or Neutral.\nfunc (o *Ordering) Direction() Direction {\n\treturn o.directions[0]\n}\n\n// NumRuns returns the number of runs.\nfunc (o *Ordering) NumRuns() int {\n\treturn len(o.runes)\n}\n\n// Run returns the ith run within the ordering.\nfunc (o *Ordering) Run(i int) Run {\n\tr := Run{\n\t\trunes:     o.runes[i],\n\t\tdirection: o.directions[i],\n\t\tstartpos:  o.startpos[i],\n\t}\n\treturn r\n}\n\n// TODO: perhaps with options.\n// // Reorder creates a reader that reads the runes in visual order per character.\n// // Modifiers remain after the runes they modify.\n// func (l *Runs) Reorder() io.Reader {\n// \tpanic(\"unimplemented\")\n// }\n\n// A Run is a continuous sequence of characters of a single direction.\ntype Run struct {\n\trunes     []rune\n\tdirection Direction\n\tstartpos  int\n}\n\n// String returns the text of the run in its original order.\nfunc (r *Run) String() string {\n\treturn string(r.runes)\n}\n\n// Bytes returns the text of the run in its original order.\nfunc (r *Run) Bytes() []byte {\n\treturn []byte(r.String())\n}\n\n// TODO: methods for\n// - Display order\n// - headers and footers\n// - bracket replacement.\n\n// Direction reports the direction of the run.\nfunc (r *Run) Direction() Direction {\n\treturn r.direction\n}\n\n// Pos returns the position of the Run within the text passed to SetBytes or SetString of the\n// originating Paragraph value.\nfunc (r *Run) Pos() (start, end int) {\n\treturn r.startpos, r.startpos + len(r.runes) - 1\n}\n\n// AppendReverse reverses the order of characters of in, appends them to out,\n// and returns the result. Modifiers will still follow the runes they modify.\n// Brackets are replaced with their counterparts.\nfunc AppendReverse(out, in []byte) []byte {\n\tret := make([]byte, len(in)+len(out))\n\tcopy(ret, out)\n\tinRunes := bytes.Runes(in)\n\n\tfor i, r := range inRunes {\n\t\tprop, _ := LookupRune(r)\n\t\tif prop.IsBracket() {\n\t\t\tinRunes[i] = prop.reverseBracket(r)\n\t\t}\n\t}\n\n\tfor i, j := 0, len(inRunes)-1; i < j; i, j = i+1, j-1 {\n\t\tinRunes[i], inRunes[j] = inRunes[j], inRunes[i]\n\t}\n\tcopy(ret[len(out):], string(inRunes))\n\n\treturn ret\n}\n\n// ReverseString reverses the order of characters in s and returns a new string.\n// Modifiers will still follow the runes they modify. Brackets are replaced with\n// their counterparts.\nfunc ReverseString(s string) string {\n\tinput := []rune(s)\n\tli := len(input)\n\tret := make([]rune, li)\n\tfor i, r := range input {\n\t\tprop, _ := LookupRune(r)\n\t\tif prop.IsBracket() {\n\t\t\tret[li-i-1] = prop.reverseBracket(r)\n\t\t} else {\n\t\t\tret[li-i-1] = r\n\t\t}\n\t}\n\treturn string(ret)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/bidi/bracket.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage bidi\n\nimport (\n\t\"container/list\"\n\t\"fmt\"\n\t\"sort\"\n)\n\n// This file contains a port of the reference implementation of the\n// Bidi Parentheses Algorithm:\n// https://www.unicode.org/Public/PROGRAMS/BidiReferenceJava/BidiPBAReference.java\n//\n// The implementation in this file covers definitions BD14-BD16 and rule N0\n// of UAX#9.\n//\n// Some preprocessing is done for each rune before data is passed to this\n// algorithm:\n//  - opening and closing brackets are identified\n//  - a bracket pair type, like '(' and ')' is assigned a unique identifier that\n//    is identical for the opening and closing bracket. It is left to do these\n//    mappings.\n//  - The BPA algorithm requires that bracket characters that are canonical\n//    equivalents of each other be able to be substituted for each other.\n//    It is the responsibility of the caller to do this canonicalization.\n//\n// In implementing BD16, this implementation departs slightly from the \"logical\"\n// algorithm defined in UAX#9. In particular, the stack referenced there\n// supports operations that go beyond a \"basic\" stack. An equivalent\n// implementation based on a linked list is used here.\n\n// Bidi_Paired_Bracket_Type\n// BD14. An opening paired bracket is a character whose\n// Bidi_Paired_Bracket_Type property value is Open.\n//\n// BD15. A closing paired bracket is a character whose\n// Bidi_Paired_Bracket_Type property value is Close.\ntype bracketType byte\n\nconst (\n\tbpNone bracketType = iota\n\tbpOpen\n\tbpClose\n)\n\n// bracketPair holds a pair of index values for opening and closing bracket\n// location of a bracket pair.\ntype bracketPair struct {\n\topener int\n\tcloser int\n}\n\nfunc (b *bracketPair) String() string {\n\treturn fmt.Sprintf(\"(%v, %v)\", b.opener, b.closer)\n}\n\n// bracketPairs is a slice of bracketPairs with a sort.Interface implementation.\ntype bracketPairs []bracketPair\n\nfunc (b bracketPairs) Len() int           { return len(b) }\nfunc (b bracketPairs) Swap(i, j int)      { b[i], b[j] = b[j], b[i] }\nfunc (b bracketPairs) Less(i, j int) bool { return b[i].opener < b[j].opener }\n\n// resolvePairedBrackets runs the paired bracket part of the UBA algorithm.\n//\n// For each rune, it takes the indexes into the original string, the class the\n// bracket type (in pairTypes) and the bracket identifier (pairValues). It also\n// takes the direction type for the start-of-sentence and the embedding level.\n//\n// The identifiers for bracket types are the rune of the canonicalized opening\n// bracket for brackets (open or close) or 0 for runes that are not brackets.\nfunc resolvePairedBrackets(s *isolatingRunSequence) {\n\tp := bracketPairer{\n\t\tsos:              s.sos,\n\t\topeners:          list.New(),\n\t\tcodesIsolatedRun: s.types,\n\t\tindexes:          s.indexes,\n\t}\n\tdirEmbed := L\n\tif s.level&1 != 0 {\n\t\tdirEmbed = R\n\t}\n\tp.locateBrackets(s.p.pairTypes, s.p.pairValues)\n\tp.resolveBrackets(dirEmbed, s.p.initialTypes)\n}\n\ntype bracketPairer struct {\n\tsos Class // direction corresponding to start of sequence\n\n\t// The following is a restatement of BD 16 using non-algorithmic language.\n\t//\n\t// A bracket pair is a pair of characters consisting of an opening\n\t// paired bracket and a closing paired bracket such that the\n\t// Bidi_Paired_Bracket property value of the former equals the latter,\n\t// subject to the following constraints.\n\t// - both characters of a pair occur in the same isolating run sequence\n\t// - the closing character of a pair follows the opening character\n\t// - any bracket character can belong at most to one pair, the earliest possible one\n\t// - any bracket character not part of a pair is treated like an ordinary character\n\t// - pairs may nest properly, but their spans may not overlap otherwise\n\n\t// Bracket characters with canonical decompositions are supposed to be\n\t// treated as if they had been normalized, to allow normalized and non-\n\t// normalized text to give the same result. In this implementation that step\n\t// is pushed out to the caller. The caller has to ensure that the pairValue\n\t// slices contain the rune of the opening bracket after normalization for\n\t// any opening or closing bracket.\n\n\topeners *list.List // list of positions for opening brackets\n\n\t// bracket pair positions sorted by location of opening bracket\n\tpairPositions bracketPairs\n\n\tcodesIsolatedRun []Class // directional bidi codes for an isolated run\n\tindexes          []int   // array of index values into the original string\n\n}\n\n// matchOpener reports whether characters at given positions form a matching\n// bracket pair.\nfunc (p *bracketPairer) matchOpener(pairValues []rune, opener, closer int) bool {\n\treturn pairValues[p.indexes[opener]] == pairValues[p.indexes[closer]]\n}\n\nconst maxPairingDepth = 63\n\n// locateBrackets locates matching bracket pairs according to BD16.\n//\n// This implementation uses a linked list instead of a stack, because, while\n// elements are added at the front (like a push) they are not generally removed\n// in atomic 'pop' operations, reducing the benefit of the stack archetype.\nfunc (p *bracketPairer) locateBrackets(pairTypes []bracketType, pairValues []rune) {\n\t// traverse the run\n\t// do that explicitly (not in a for-each) so we can record position\n\tfor i, index := range p.indexes {\n\n\t\t// look at the bracket type for each character\n\t\tif pairTypes[index] == bpNone || p.codesIsolatedRun[i] != ON {\n\t\t\t// continue scanning\n\t\t\tcontinue\n\t\t}\n\t\tswitch pairTypes[index] {\n\t\tcase bpOpen:\n\t\t\t// check if maximum pairing depth reached\n\t\t\tif p.openers.Len() == maxPairingDepth {\n\t\t\t\tp.openers.Init()\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// remember opener location, most recent first\n\t\t\tp.openers.PushFront(i)\n\n\t\tcase bpClose:\n\t\t\t// see if there is a match\n\t\t\tcount := 0\n\t\t\tfor elem := p.openers.Front(); elem != nil; elem = elem.Next() {\n\t\t\t\tcount++\n\t\t\t\topener := elem.Value.(int)\n\t\t\t\tif p.matchOpener(pairValues, opener, i) {\n\t\t\t\t\t// if the opener matches, add nested pair to the ordered list\n\t\t\t\t\tp.pairPositions = append(p.pairPositions, bracketPair{opener, i})\n\t\t\t\t\t// remove up to and including matched opener\n\t\t\t\t\tfor ; count > 0; count-- {\n\t\t\t\t\t\tp.openers.Remove(p.openers.Front())\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tsort.Sort(p.pairPositions)\n\t\t\t// if we get here, the closing bracket matched no openers\n\t\t\t// and gets ignored\n\t\t}\n\t}\n}\n\n// Bracket pairs within an isolating run sequence are processed as units so\n// that both the opening and the closing paired bracket in a pair resolve to\n// the same direction.\n//\n// N0. Process bracket pairs in an isolating run sequence sequentially in\n// the logical order of the text positions of the opening paired brackets\n// using the logic given below. Within this scope, bidirectional types EN\n// and AN are treated as R.\n//\n// Identify the bracket pairs in the current isolating run sequence\n// according to BD16. For each bracket-pair element in the list of pairs of\n// text positions:\n//\n// a Inspect the bidirectional types of the characters enclosed within the\n// bracket pair.\n//\n// b If any strong type (either L or R) matching the embedding direction is\n// found, set the type for both brackets in the pair to match the embedding\n// direction.\n//\n// o [ e ] o -> o e e e o\n//\n// o [ o e ] -> o e o e e\n//\n// o [ NI e ] -> o e NI e e\n//\n// c Otherwise, if a strong type (opposite the embedding direction) is\n// found, test for adjacent strong types as follows: 1 First, check\n// backwards before the opening paired bracket until the first strong type\n// (L, R, or sos) is found. If that first preceding strong type is opposite\n// the embedding direction, then set the type for both brackets in the pair\n// to that type. 2 Otherwise, set the type for both brackets in the pair to\n// the embedding direction.\n//\n// o [ o ] e -> o o o o e\n//\n// o [ o NI ] o -> o o o NI o o\n//\n// e [ o ] o -> e e o e o\n//\n// e [ o ] e -> e e o e e\n//\n// e ( o [ o ] NI ) e -> e e o o o o NI e e\n//\n// d Otherwise, do not set the type for the current bracket pair. Note that\n// if the enclosed text contains no strong types the paired brackets will\n// both resolve to the same level when resolved individually using rules N1\n// and N2.\n//\n// e ( NI ) o -> e ( NI ) o\n\n// getStrongTypeN0 maps character's directional code to strong type as required\n// by rule N0.\n//\n// TODO: have separate type for \"strong\" directionality.\nfunc (p *bracketPairer) getStrongTypeN0(index int) Class {\n\tswitch p.codesIsolatedRun[index] {\n\t// in the scope of N0, number types are treated as R\n\tcase EN, AN, AL, R:\n\t\treturn R\n\tcase L:\n\t\treturn L\n\tdefault:\n\t\treturn ON\n\t}\n}\n\n// classifyPairContent reports the strong types contained inside a Bracket Pair,\n// assuming the given embedding direction.\n//\n// It returns ON if no strong type is found. If a single strong type is found,\n// it returns this type. Otherwise it returns the embedding direction.\n//\n// TODO: use separate type for \"strong\" directionality.\nfunc (p *bracketPairer) classifyPairContent(loc bracketPair, dirEmbed Class) Class {\n\tdirOpposite := ON\n\tfor i := loc.opener + 1; i < loc.closer; i++ {\n\t\tdir := p.getStrongTypeN0(i)\n\t\tif dir == ON {\n\t\t\tcontinue\n\t\t}\n\t\tif dir == dirEmbed {\n\t\t\treturn dir // type matching embedding direction found\n\t\t}\n\t\tdirOpposite = dir\n\t}\n\t// return ON if no strong type found, or class opposite to dirEmbed\n\treturn dirOpposite\n}\n\n// classBeforePair determines which strong types are present before a Bracket\n// Pair. Return R or L if strong type found, otherwise ON.\nfunc (p *bracketPairer) classBeforePair(loc bracketPair) Class {\n\tfor i := loc.opener - 1; i >= 0; i-- {\n\t\tif dir := p.getStrongTypeN0(i); dir != ON {\n\t\t\treturn dir\n\t\t}\n\t}\n\t// no strong types found, return sos\n\treturn p.sos\n}\n\n// assignBracketType implements rule N0 for a single bracket pair.\nfunc (p *bracketPairer) assignBracketType(loc bracketPair, dirEmbed Class, initialTypes []Class) {\n\t// rule \"N0, a\", inspect contents of pair\n\tdirPair := p.classifyPairContent(loc, dirEmbed)\n\n\t// dirPair is now L, R, or N (no strong type found)\n\n\t// the following logical tests are performed out of order compared to\n\t// the statement of the rules but yield the same results\n\tif dirPair == ON {\n\t\treturn // case \"d\" - nothing to do\n\t}\n\n\tif dirPair != dirEmbed {\n\t\t// case \"c\": strong type found, opposite - check before (c.1)\n\t\tdirPair = p.classBeforePair(loc)\n\t\tif dirPair == dirEmbed || dirPair == ON {\n\t\t\t// no strong opposite type found before - use embedding (c.2)\n\t\t\tdirPair = dirEmbed\n\t\t}\n\t}\n\t// else: case \"b\", strong type found matching embedding,\n\t// no explicit action needed, as dirPair is already set to embedding\n\t// direction\n\n\t// set the bracket types to the type found\n\tp.setBracketsToType(loc, dirPair, initialTypes)\n}\n\nfunc (p *bracketPairer) setBracketsToType(loc bracketPair, dirPair Class, initialTypes []Class) {\n\tp.codesIsolatedRun[loc.opener] = dirPair\n\tp.codesIsolatedRun[loc.closer] = dirPair\n\n\tfor i := loc.opener + 1; i < loc.closer; i++ {\n\t\tindex := p.indexes[i]\n\t\tif initialTypes[index] != NSM {\n\t\t\tbreak\n\t\t}\n\t\tp.codesIsolatedRun[i] = dirPair\n\t}\n\n\tfor i := loc.closer + 1; i < len(p.indexes); i++ {\n\t\tindex := p.indexes[i]\n\t\tif initialTypes[index] != NSM {\n\t\t\tbreak\n\t\t}\n\t\tp.codesIsolatedRun[i] = dirPair\n\t}\n}\n\n// resolveBrackets implements rule N0 for a list of pairs.\nfunc (p *bracketPairer) resolveBrackets(dirEmbed Class, initialTypes []Class) {\n\tfor _, loc := range p.pairPositions {\n\t\tp.assignBracketType(loc, dirEmbed, initialTypes)\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/bidi/core.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage bidi\n\nimport (\n\t\"fmt\"\n\t\"log\"\n)\n\n// This implementation is a port based on the reference implementation found at:\n// https://www.unicode.org/Public/PROGRAMS/BidiReferenceJava/\n//\n// described in Unicode Bidirectional Algorithm (UAX #9).\n//\n// Input:\n// There are two levels of input to the algorithm, since clients may prefer to\n// supply some information from out-of-band sources rather than relying on the\n// default behavior.\n//\n// - Bidi class array\n// - Bidi class array, with externally supplied base line direction\n//\n// Output:\n// Output is separated into several stages:\n//\n//  - levels array over entire paragraph\n//  - reordering array over entire paragraph\n//  - levels array over line\n//  - reordering array over line\n//\n// Note that for conformance to the Unicode Bidirectional Algorithm,\n// implementations are only required to generate correct reordering and\n// character directionality (odd or even levels) over a line. Generating\n// identical level arrays over a line is not required. Bidi explicit format\n// codes (LRE, RLE, LRO, RLO, PDF) and BN can be assigned arbitrary levels and\n// positions as long as the rest of the input is properly reordered.\n//\n// As the algorithm is defined to operate on a single paragraph at a time, this\n// implementation is written to handle single paragraphs. Thus rule P1 is\n// presumed by this implementation-- the data provided to the implementation is\n// assumed to be a single paragraph, and either contains no 'B' codes, or a\n// single 'B' code at the end of the input. 'B' is allowed as input to\n// illustrate how the algorithm assigns it a level.\n//\n// Also note that rules L3 and L4 depend on the rendering engine that uses the\n// result of the bidi algorithm. This implementation assumes that the rendering\n// engine expects combining marks in visual order (e.g. to the left of their\n// base character in RTL runs) and that it adjusts the glyphs used to render\n// mirrored characters that are in RTL runs so that they render appropriately.\n\n// level is the embedding level of a character. Even embedding levels indicate\n// left-to-right order and odd levels indicate right-to-left order. The special\n// level of -1 is reserved for undefined order.\ntype level int8\n\nconst implicitLevel level = -1\n\n// in returns if x is equal to any of the values in set.\nfunc (c Class) in(set ...Class) bool {\n\tfor _, s := range set {\n\t\tif c == s {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// A paragraph contains the state of a paragraph.\ntype paragraph struct {\n\tinitialTypes []Class\n\n\t// Arrays of properties needed for paired bracket evaluation in N0\n\tpairTypes  []bracketType // paired Bracket types for paragraph\n\tpairValues []rune        // rune for opening bracket or pbOpen and pbClose; 0 for pbNone\n\n\tembeddingLevel level // default: = implicitLevel;\n\n\t// at the paragraph levels\n\tresultTypes  []Class\n\tresultLevels []level\n\n\t// Index of matching PDI for isolate initiator characters. For other\n\t// characters, the value of matchingPDI will be set to -1. For isolate\n\t// initiators with no matching PDI, matchingPDI will be set to the length of\n\t// the input string.\n\tmatchingPDI []int\n\n\t// Index of matching isolate initiator for PDI characters. For other\n\t// characters, and for PDIs with no matching isolate initiator, the value of\n\t// matchingIsolateInitiator will be set to -1.\n\tmatchingIsolateInitiator []int\n}\n\n// newParagraph initializes a paragraph. The user needs to supply a few arrays\n// corresponding to the preprocessed text input. The types correspond to the\n// Unicode BiDi classes for each rune. pairTypes indicates the bracket type for\n// each rune. pairValues provides a unique bracket class identifier for each\n// rune (suggested is the rune of the open bracket for opening and matching\n// close brackets, after normalization). The embedding levels are optional, but\n// may be supplied to encode embedding levels of styled text.\nfunc newParagraph(types []Class, pairTypes []bracketType, pairValues []rune, levels level) (*paragraph, error) {\n\tvar err error\n\tif err = validateTypes(types); err != nil {\n\t\treturn nil, err\n\t}\n\tif err = validatePbTypes(pairTypes); err != nil {\n\t\treturn nil, err\n\t}\n\tif err = validatePbValues(pairValues, pairTypes); err != nil {\n\t\treturn nil, err\n\t}\n\tif err = validateParagraphEmbeddingLevel(levels); err != nil {\n\t\treturn nil, err\n\t}\n\n\tp := &paragraph{\n\t\tinitialTypes:   append([]Class(nil), types...),\n\t\tembeddingLevel: levels,\n\n\t\tpairTypes:  pairTypes,\n\t\tpairValues: pairValues,\n\n\t\tresultTypes: append([]Class(nil), types...),\n\t}\n\tp.run()\n\treturn p, nil\n}\n\nfunc (p *paragraph) Len() int { return len(p.initialTypes) }\n\n// The algorithm. Does not include line-based processing (Rules L1, L2).\n// These are applied later in the line-based phase of the algorithm.\nfunc (p *paragraph) run() {\n\tp.determineMatchingIsolates()\n\n\t// 1) determining the paragraph level\n\t// Rule P1 is the requirement for entering this algorithm.\n\t// Rules P2, P3.\n\t// If no externally supplied paragraph embedding level, use default.\n\tif p.embeddingLevel == implicitLevel {\n\t\tp.embeddingLevel = p.determineParagraphEmbeddingLevel(0, p.Len())\n\t}\n\n\t// Initialize result levels to paragraph embedding level.\n\tp.resultLevels = make([]level, p.Len())\n\tsetLevels(p.resultLevels, p.embeddingLevel)\n\n\t// 2) Explicit levels and directions\n\t// Rules X1-X8.\n\tp.determineExplicitEmbeddingLevels()\n\n\t// Rule X9.\n\t// We do not remove the embeddings, the overrides, the PDFs, and the BNs\n\t// from the string explicitly. But they are not copied into isolating run\n\t// sequences when they are created, so they are removed for all\n\t// practical purposes.\n\n\t// Rule X10.\n\t// Run remainder of algorithm one isolating run sequence at a time\n\tfor _, seq := range p.determineIsolatingRunSequences() {\n\t\t// 3) resolving weak types\n\t\t// Rules W1-W7.\n\t\tseq.resolveWeakTypes()\n\n\t\t// 4a) resolving paired brackets\n\t\t// Rule N0\n\t\tresolvePairedBrackets(seq)\n\n\t\t// 4b) resolving neutral types\n\t\t// Rules N1-N3.\n\t\tseq.resolveNeutralTypes()\n\n\t\t// 5) resolving implicit embedding levels\n\t\t// Rules I1, I2.\n\t\tseq.resolveImplicitLevels()\n\n\t\t// Apply the computed levels and types\n\t\tseq.applyLevelsAndTypes()\n\t}\n\n\t// Assign appropriate levels to 'hide' LREs, RLEs, LROs, RLOs, PDFs, and\n\t// BNs. This is for convenience, so the resulting level array will have\n\t// a value for every character.\n\tp.assignLevelsToCharactersRemovedByX9()\n}\n\n// determineMatchingIsolates determines the matching PDI for each isolate\n// initiator and vice versa.\n//\n// Definition BD9.\n//\n// At the end of this function:\n//\n//   - The member variable matchingPDI is set to point to the index of the\n//     matching PDI character for each isolate initiator character. If there is\n//     no matching PDI, it is set to the length of the input text. For other\n//     characters, it is set to -1.\n//   - The member variable matchingIsolateInitiator is set to point to the\n//     index of the matching isolate initiator character for each PDI character.\n//     If there is no matching isolate initiator, or the character is not a PDI,\n//     it is set to -1.\nfunc (p *paragraph) determineMatchingIsolates() {\n\tp.matchingPDI = make([]int, p.Len())\n\tp.matchingIsolateInitiator = make([]int, p.Len())\n\n\tfor i := range p.matchingIsolateInitiator {\n\t\tp.matchingIsolateInitiator[i] = -1\n\t}\n\n\tfor i := range p.matchingPDI {\n\t\tp.matchingPDI[i] = -1\n\n\t\tif t := p.resultTypes[i]; t.in(LRI, RLI, FSI) {\n\t\t\tdepthCounter := 1\n\t\t\tfor j := i + 1; j < p.Len(); j++ {\n\t\t\t\tif u := p.resultTypes[j]; u.in(LRI, RLI, FSI) {\n\t\t\t\t\tdepthCounter++\n\t\t\t\t} else if u == PDI {\n\t\t\t\t\tif depthCounter--; depthCounter == 0 {\n\t\t\t\t\t\tp.matchingPDI[i] = j\n\t\t\t\t\t\tp.matchingIsolateInitiator[j] = i\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif p.matchingPDI[i] == -1 {\n\t\t\t\tp.matchingPDI[i] = p.Len()\n\t\t\t}\n\t\t}\n\t}\n}\n\n// determineParagraphEmbeddingLevel reports the resolved paragraph direction of\n// the substring limited by the given range [start, end).\n//\n// Determines the paragraph level based on rules P2, P3. This is also used\n// in rule X5c to find if an FSI should resolve to LRI or RLI.\nfunc (p *paragraph) determineParagraphEmbeddingLevel(start, end int) level {\n\tvar strongType Class = unknownClass\n\n\t// Rule P2.\n\tfor i := start; i < end; i++ {\n\t\tif t := p.resultTypes[i]; t.in(L, AL, R) {\n\t\t\tstrongType = t\n\t\t\tbreak\n\t\t} else if t.in(FSI, LRI, RLI) {\n\t\t\ti = p.matchingPDI[i] // skip over to the matching PDI\n\t\t\tif i > end {\n\t\t\t\tlog.Panic(\"assert (i <= end)\")\n\t\t\t}\n\t\t}\n\t}\n\t// Rule P3.\n\tswitch strongType {\n\tcase unknownClass: // none found\n\t\t// default embedding level when no strong types found is 0.\n\t\treturn 0\n\tcase L:\n\t\treturn 0\n\tdefault: // AL, R\n\t\treturn 1\n\t}\n}\n\nconst maxDepth = 125\n\n// This stack will store the embedding levels and override and isolated\n// statuses\ntype directionalStatusStack struct {\n\tstackCounter        int\n\tembeddingLevelStack [maxDepth + 1]level\n\toverrideStatusStack [maxDepth + 1]Class\n\tisolateStatusStack  [maxDepth + 1]bool\n}\n\nfunc (s *directionalStatusStack) empty()     { s.stackCounter = 0 }\nfunc (s *directionalStatusStack) pop()       { s.stackCounter-- }\nfunc (s *directionalStatusStack) depth() int { return s.stackCounter }\n\nfunc (s *directionalStatusStack) push(level level, overrideStatus Class, isolateStatus bool) {\n\ts.embeddingLevelStack[s.stackCounter] = level\n\ts.overrideStatusStack[s.stackCounter] = overrideStatus\n\ts.isolateStatusStack[s.stackCounter] = isolateStatus\n\ts.stackCounter++\n}\n\nfunc (s *directionalStatusStack) lastEmbeddingLevel() level {\n\treturn s.embeddingLevelStack[s.stackCounter-1]\n}\n\nfunc (s *directionalStatusStack) lastDirectionalOverrideStatus() Class {\n\treturn s.overrideStatusStack[s.stackCounter-1]\n}\n\nfunc (s *directionalStatusStack) lastDirectionalIsolateStatus() bool {\n\treturn s.isolateStatusStack[s.stackCounter-1]\n}\n\n// Determine explicit levels using rules X1 - X8\nfunc (p *paragraph) determineExplicitEmbeddingLevels() {\n\tvar stack directionalStatusStack\n\tvar overflowIsolateCount, overflowEmbeddingCount, validIsolateCount int\n\n\t// Rule X1.\n\tstack.push(p.embeddingLevel, ON, false)\n\n\tfor i, t := range p.resultTypes {\n\t\t// Rules X2, X3, X4, X5, X5a, X5b, X5c\n\t\tswitch t {\n\t\tcase RLE, LRE, RLO, LRO, RLI, LRI, FSI:\n\t\t\tisIsolate := t.in(RLI, LRI, FSI)\n\t\t\tisRTL := t.in(RLE, RLO, RLI)\n\n\t\t\t// override if this is an FSI that resolves to RLI\n\t\t\tif t == FSI {\n\t\t\t\tisRTL = (p.determineParagraphEmbeddingLevel(i+1, p.matchingPDI[i]) == 1)\n\t\t\t}\n\t\t\tif isIsolate {\n\t\t\t\tp.resultLevels[i] = stack.lastEmbeddingLevel()\n\t\t\t\tif stack.lastDirectionalOverrideStatus() != ON {\n\t\t\t\t\tp.resultTypes[i] = stack.lastDirectionalOverrideStatus()\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar newLevel level\n\t\t\tif isRTL {\n\t\t\t\t// least greater odd\n\t\t\t\tnewLevel = (stack.lastEmbeddingLevel() + 1) | 1\n\t\t\t} else {\n\t\t\t\t// least greater even\n\t\t\t\tnewLevel = (stack.lastEmbeddingLevel() + 2) &^ 1\n\t\t\t}\n\n\t\t\tif newLevel <= maxDepth && overflowIsolateCount == 0 && overflowEmbeddingCount == 0 {\n\t\t\t\tif isIsolate {\n\t\t\t\t\tvalidIsolateCount++\n\t\t\t\t}\n\t\t\t\t// Push new embedding level, override status, and isolated\n\t\t\t\t// status.\n\t\t\t\t// No check for valid stack counter, since the level check\n\t\t\t\t// suffices.\n\t\t\t\tswitch t {\n\t\t\t\tcase LRO:\n\t\t\t\t\tstack.push(newLevel, L, isIsolate)\n\t\t\t\tcase RLO:\n\t\t\t\t\tstack.push(newLevel, R, isIsolate)\n\t\t\t\tdefault:\n\t\t\t\t\tstack.push(newLevel, ON, isIsolate)\n\t\t\t\t}\n\t\t\t\t// Not really part of the spec\n\t\t\t\tif !isIsolate {\n\t\t\t\t\tp.resultLevels[i] = newLevel\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// This is an invalid explicit formatting character,\n\t\t\t\t// so apply the \"Otherwise\" part of rules X2-X5b.\n\t\t\t\tif isIsolate {\n\t\t\t\t\toverflowIsolateCount++\n\t\t\t\t} else { // !isIsolate\n\t\t\t\t\tif overflowIsolateCount == 0 {\n\t\t\t\t\t\toverflowEmbeddingCount++\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Rule X6a\n\t\tcase PDI:\n\t\t\tif overflowIsolateCount > 0 {\n\t\t\t\toverflowIsolateCount--\n\t\t\t} else if validIsolateCount == 0 {\n\t\t\t\t// do nothing\n\t\t\t} else {\n\t\t\t\toverflowEmbeddingCount = 0\n\t\t\t\tfor !stack.lastDirectionalIsolateStatus() {\n\t\t\t\t\tstack.pop()\n\t\t\t\t}\n\t\t\t\tstack.pop()\n\t\t\t\tvalidIsolateCount--\n\t\t\t}\n\t\t\tp.resultLevels[i] = stack.lastEmbeddingLevel()\n\n\t\t// Rule X7\n\t\tcase PDF:\n\t\t\t// Not really part of the spec\n\t\t\tp.resultLevels[i] = stack.lastEmbeddingLevel()\n\n\t\t\tif overflowIsolateCount > 0 {\n\t\t\t\t// do nothing\n\t\t\t} else if overflowEmbeddingCount > 0 {\n\t\t\t\toverflowEmbeddingCount--\n\t\t\t} else if !stack.lastDirectionalIsolateStatus() && stack.depth() >= 2 {\n\t\t\t\tstack.pop()\n\t\t\t}\n\n\t\tcase B: // paragraph separator.\n\t\t\t// Rule X8.\n\n\t\t\t// These values are reset for clarity, in this implementation B\n\t\t\t// can only occur as the last code in the array.\n\t\t\tstack.empty()\n\t\t\toverflowIsolateCount = 0\n\t\t\toverflowEmbeddingCount = 0\n\t\t\tvalidIsolateCount = 0\n\t\t\tp.resultLevels[i] = p.embeddingLevel\n\n\t\tdefault:\n\t\t\tp.resultLevels[i] = stack.lastEmbeddingLevel()\n\t\t\tif stack.lastDirectionalOverrideStatus() != ON {\n\t\t\t\tp.resultTypes[i] = stack.lastDirectionalOverrideStatus()\n\t\t\t}\n\t\t}\n\t}\n}\n\ntype isolatingRunSequence struct {\n\tp *paragraph\n\n\tindexes []int // indexes to the original string\n\n\ttypes          []Class // type of each character using the index\n\tresolvedLevels []level // resolved levels after application of rules\n\tlevel          level\n\tsos, eos       Class\n}\n\nfunc (i *isolatingRunSequence) Len() int { return len(i.indexes) }\n\nfunc maxLevel(a, b level) level {\n\tif a > b {\n\t\treturn a\n\t}\n\treturn b\n}\n\n// Rule X10, second bullet: Determine the start-of-sequence (sos) and end-of-sequence (eos) types,\n// either L or R, for each isolating run sequence.\nfunc (p *paragraph) isolatingRunSequence(indexes []int) *isolatingRunSequence {\n\tlength := len(indexes)\n\ttypes := make([]Class, length)\n\tfor i, x := range indexes {\n\t\ttypes[i] = p.resultTypes[x]\n\t}\n\n\t// assign level, sos and eos\n\tprevChar := indexes[0] - 1\n\tfor prevChar >= 0 && isRemovedByX9(p.initialTypes[prevChar]) {\n\t\tprevChar--\n\t}\n\tprevLevel := p.embeddingLevel\n\tif prevChar >= 0 {\n\t\tprevLevel = p.resultLevels[prevChar]\n\t}\n\n\tvar succLevel level\n\tlastType := types[length-1]\n\tif lastType.in(LRI, RLI, FSI) {\n\t\tsuccLevel = p.embeddingLevel\n\t} else {\n\t\t// the first character after the end of run sequence\n\t\tlimit := indexes[length-1] + 1\n\t\tfor ; limit < p.Len() && isRemovedByX9(p.initialTypes[limit]); limit++ {\n\n\t\t}\n\t\tsuccLevel = p.embeddingLevel\n\t\tif limit < p.Len() {\n\t\t\tsuccLevel = p.resultLevels[limit]\n\t\t}\n\t}\n\tlevel := p.resultLevels[indexes[0]]\n\treturn &isolatingRunSequence{\n\t\tp:       p,\n\t\tindexes: indexes,\n\t\ttypes:   types,\n\t\tlevel:   level,\n\t\tsos:     typeForLevel(maxLevel(prevLevel, level)),\n\t\teos:     typeForLevel(maxLevel(succLevel, level)),\n\t}\n}\n\n// Resolving weak types Rules W1-W7.\n//\n// Note that some weak types (EN, AN) remain after this processing is\n// complete.\nfunc (s *isolatingRunSequence) resolveWeakTypes() {\n\n\t// on entry, only these types remain\n\ts.assertOnly(L, R, AL, EN, ES, ET, AN, CS, B, S, WS, ON, NSM, LRI, RLI, FSI, PDI)\n\n\t// Rule W1.\n\t// Changes all NSMs.\n\tprecedingCharacterType := s.sos\n\tfor i, t := range s.types {\n\t\tif t == NSM {\n\t\t\ts.types[i] = precedingCharacterType\n\t\t} else {\n\t\t\t// if t.in(LRI, RLI, FSI, PDI) {\n\t\t\t// \tprecedingCharacterType = ON\n\t\t\t// }\n\t\t\tprecedingCharacterType = t\n\t\t}\n\t}\n\n\t// Rule W2.\n\t// EN does not change at the start of the run, because sos != AL.\n\tfor i, t := range s.types {\n\t\tif t == EN {\n\t\t\tfor j := i - 1; j >= 0; j-- {\n\t\t\t\tif t := s.types[j]; t.in(L, R, AL) {\n\t\t\t\t\tif t == AL {\n\t\t\t\t\t\ts.types[i] = AN\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Rule W3.\n\tfor i, t := range s.types {\n\t\tif t == AL {\n\t\t\ts.types[i] = R\n\t\t}\n\t}\n\n\t// Rule W4.\n\t// Since there must be values on both sides for this rule to have an\n\t// effect, the scan skips the first and last value.\n\t//\n\t// Although the scan proceeds left to right, and changes the type\n\t// values in a way that would appear to affect the computations\n\t// later in the scan, there is actually no problem. A change in the\n\t// current value can only affect the value to its immediate right,\n\t// and only affect it if it is ES or CS. But the current value can\n\t// only change if the value to its right is not ES or CS. Thus\n\t// either the current value will not change, or its change will have\n\t// no effect on the remainder of the analysis.\n\n\tfor i := 1; i < s.Len()-1; i++ {\n\t\tt := s.types[i]\n\t\tif t == ES || t == CS {\n\t\t\tprevSepType := s.types[i-1]\n\t\t\tsuccSepType := s.types[i+1]\n\t\t\tif prevSepType == EN && succSepType == EN {\n\t\t\t\ts.types[i] = EN\n\t\t\t} else if s.types[i] == CS && prevSepType == AN && succSepType == AN {\n\t\t\t\ts.types[i] = AN\n\t\t\t}\n\t\t}\n\t}\n\n\t// Rule W5.\n\tfor i, t := range s.types {\n\t\tif t == ET {\n\t\t\t// locate end of sequence\n\t\t\trunStart := i\n\t\t\trunEnd := s.findRunLimit(runStart, ET)\n\n\t\t\t// check values at ends of sequence\n\t\t\tt := s.sos\n\t\t\tif runStart > 0 {\n\t\t\t\tt = s.types[runStart-1]\n\t\t\t}\n\t\t\tif t != EN {\n\t\t\t\tt = s.eos\n\t\t\t\tif runEnd < len(s.types) {\n\t\t\t\t\tt = s.types[runEnd]\n\t\t\t\t}\n\t\t\t}\n\t\t\tif t == EN {\n\t\t\t\tsetTypes(s.types[runStart:runEnd], EN)\n\t\t\t}\n\t\t\t// continue at end of sequence\n\t\t\ti = runEnd\n\t\t}\n\t}\n\n\t// Rule W6.\n\tfor i, t := range s.types {\n\t\tif t.in(ES, ET, CS) {\n\t\t\ts.types[i] = ON\n\t\t}\n\t}\n\n\t// Rule W7.\n\tfor i, t := range s.types {\n\t\tif t == EN {\n\t\t\t// set default if we reach start of run\n\t\t\tprevStrongType := s.sos\n\t\t\tfor j := i - 1; j >= 0; j-- {\n\t\t\t\tt = s.types[j]\n\t\t\t\tif t == L || t == R { // AL's have been changed to R\n\t\t\t\t\tprevStrongType = t\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif prevStrongType == L {\n\t\t\t\ts.types[i] = L\n\t\t\t}\n\t\t}\n\t}\n}\n\n// 6) resolving neutral types Rules N1-N2.\nfunc (s *isolatingRunSequence) resolveNeutralTypes() {\n\n\t// on entry, only these types can be in resultTypes\n\ts.assertOnly(L, R, EN, AN, B, S, WS, ON, RLI, LRI, FSI, PDI)\n\n\tfor i, t := range s.types {\n\t\tswitch t {\n\t\tcase WS, ON, B, S, RLI, LRI, FSI, PDI:\n\t\t\t// find bounds of run of neutrals\n\t\t\trunStart := i\n\t\t\trunEnd := s.findRunLimit(runStart, B, S, WS, ON, RLI, LRI, FSI, PDI)\n\n\t\t\t// determine effective types at ends of run\n\t\t\tvar leadType, trailType Class\n\n\t\t\t// Note that the character found can only be L, R, AN, or\n\t\t\t// EN.\n\t\t\tif runStart == 0 {\n\t\t\t\tleadType = s.sos\n\t\t\t} else {\n\t\t\t\tleadType = s.types[runStart-1]\n\t\t\t\tif leadType.in(AN, EN) {\n\t\t\t\t\tleadType = R\n\t\t\t\t}\n\t\t\t}\n\t\t\tif runEnd == len(s.types) {\n\t\t\t\ttrailType = s.eos\n\t\t\t} else {\n\t\t\t\ttrailType = s.types[runEnd]\n\t\t\t\tif trailType.in(AN, EN) {\n\t\t\t\t\ttrailType = R\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar resolvedType Class\n\t\t\tif leadType == trailType {\n\t\t\t\t// Rule N1.\n\t\t\t\tresolvedType = leadType\n\t\t\t} else {\n\t\t\t\t// Rule N2.\n\t\t\t\t// Notice the embedding level of the run is used, not\n\t\t\t\t// the paragraph embedding level.\n\t\t\t\tresolvedType = typeForLevel(s.level)\n\t\t\t}\n\n\t\t\tsetTypes(s.types[runStart:runEnd], resolvedType)\n\n\t\t\t// skip over run of (former) neutrals\n\t\t\ti = runEnd\n\t\t}\n\t}\n}\n\nfunc setLevels(levels []level, newLevel level) {\n\tfor i := range levels {\n\t\tlevels[i] = newLevel\n\t}\n}\n\nfunc setTypes(types []Class, newType Class) {\n\tfor i := range types {\n\t\ttypes[i] = newType\n\t}\n}\n\n// 7) resolving implicit embedding levels Rules I1, I2.\nfunc (s *isolatingRunSequence) resolveImplicitLevels() {\n\n\t// on entry, only these types can be in resultTypes\n\ts.assertOnly(L, R, EN, AN)\n\n\ts.resolvedLevels = make([]level, len(s.types))\n\tsetLevels(s.resolvedLevels, s.level)\n\n\tif (s.level & 1) == 0 { // even level\n\t\tfor i, t := range s.types {\n\t\t\t// Rule I1.\n\t\t\tif t == L {\n\t\t\t\t// no change\n\t\t\t} else if t == R {\n\t\t\t\ts.resolvedLevels[i] += 1\n\t\t\t} else { // t == AN || t == EN\n\t\t\t\ts.resolvedLevels[i] += 2\n\t\t\t}\n\t\t}\n\t} else { // odd level\n\t\tfor i, t := range s.types {\n\t\t\t// Rule I2.\n\t\t\tif t == R {\n\t\t\t\t// no change\n\t\t\t} else { // t == L || t == AN || t == EN\n\t\t\t\ts.resolvedLevels[i] += 1\n\t\t\t}\n\t\t}\n\t}\n}\n\n// Applies the levels and types resolved in rules W1-I2 to the\n// resultLevels array.\nfunc (s *isolatingRunSequence) applyLevelsAndTypes() {\n\tfor i, x := range s.indexes {\n\t\ts.p.resultTypes[x] = s.types[i]\n\t\ts.p.resultLevels[x] = s.resolvedLevels[i]\n\t}\n}\n\n// Return the limit of the run consisting only of the types in validSet\n// starting at index. This checks the value at index, and will return\n// index if that value is not in validSet.\nfunc (s *isolatingRunSequence) findRunLimit(index int, validSet ...Class) int {\nloop:\n\tfor ; index < len(s.types); index++ {\n\t\tt := s.types[index]\n\t\tfor _, valid := range validSet {\n\t\t\tif t == valid {\n\t\t\t\tcontinue loop\n\t\t\t}\n\t\t}\n\t\treturn index // didn't find a match in validSet\n\t}\n\treturn len(s.types)\n}\n\n// Algorithm validation. Assert that all values in types are in the\n// provided set.\nfunc (s *isolatingRunSequence) assertOnly(codes ...Class) {\nloop:\n\tfor i, t := range s.types {\n\t\tfor _, c := range codes {\n\t\t\tif t == c {\n\t\t\t\tcontinue loop\n\t\t\t}\n\t\t}\n\t\tlog.Panicf(\"invalid bidi code %v present in assertOnly at position %d\", t, s.indexes[i])\n\t}\n}\n\n// determineLevelRuns returns an array of level runs. Each level run is\n// described as an array of indexes into the input string.\n//\n// Determines the level runs. Rule X9 will be applied in determining the\n// runs, in the way that makes sure the characters that are supposed to be\n// removed are not included in the runs.\nfunc (p *paragraph) determineLevelRuns() [][]int {\n\trun := []int{}\n\tallRuns := [][]int{}\n\tcurrentLevel := implicitLevel\n\n\tfor i := range p.initialTypes {\n\t\tif !isRemovedByX9(p.initialTypes[i]) {\n\t\t\tif p.resultLevels[i] != currentLevel {\n\t\t\t\t// we just encountered a new run; wrap up last run\n\t\t\t\tif currentLevel >= 0 { // only wrap it up if there was a run\n\t\t\t\t\tallRuns = append(allRuns, run)\n\t\t\t\t\trun = nil\n\t\t\t\t}\n\t\t\t\t// Start new run\n\t\t\t\tcurrentLevel = p.resultLevels[i]\n\t\t\t}\n\t\t\trun = append(run, i)\n\t\t}\n\t}\n\t// Wrap up the final run, if any\n\tif len(run) > 0 {\n\t\tallRuns = append(allRuns, run)\n\t}\n\treturn allRuns\n}\n\n// Definition BD13. Determine isolating run sequences.\nfunc (p *paragraph) determineIsolatingRunSequences() []*isolatingRunSequence {\n\tlevelRuns := p.determineLevelRuns()\n\n\t// Compute the run that each character belongs to\n\trunForCharacter := make([]int, p.Len())\n\tfor i, run := range levelRuns {\n\t\tfor _, index := range run {\n\t\t\trunForCharacter[index] = i\n\t\t}\n\t}\n\n\tsequences := []*isolatingRunSequence{}\n\n\tvar currentRunSequence []int\n\n\tfor _, run := range levelRuns {\n\t\tfirst := run[0]\n\t\tif p.initialTypes[first] != PDI || p.matchingIsolateInitiator[first] == -1 {\n\t\t\tcurrentRunSequence = nil\n\t\t\t// int run = i;\n\t\t\tfor {\n\t\t\t\t// Copy this level run into currentRunSequence\n\t\t\t\tcurrentRunSequence = append(currentRunSequence, run...)\n\n\t\t\t\tlast := currentRunSequence[len(currentRunSequence)-1]\n\t\t\t\tlastT := p.initialTypes[last]\n\t\t\t\tif lastT.in(LRI, RLI, FSI) && p.matchingPDI[last] != p.Len() {\n\t\t\t\t\trun = levelRuns[runForCharacter[p.matchingPDI[last]]]\n\t\t\t\t} else {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tsequences = append(sequences, p.isolatingRunSequence(currentRunSequence))\n\t\t}\n\t}\n\treturn sequences\n}\n\n// Assign level information to characters removed by rule X9. This is for\n// ease of relating the level information to the original input data. Note\n// that the levels assigned to these codes are arbitrary, they're chosen so\n// as to avoid breaking level runs.\nfunc (p *paragraph) assignLevelsToCharactersRemovedByX9() {\n\tfor i, t := range p.initialTypes {\n\t\tif t.in(LRE, RLE, LRO, RLO, PDF, BN) {\n\t\t\tp.resultTypes[i] = t\n\t\t\tp.resultLevels[i] = -1\n\t\t}\n\t}\n\t// now propagate forward the levels information (could have\n\t// propagated backward, the main thing is not to introduce a level\n\t// break where one doesn't already exist).\n\n\tif p.resultLevels[0] == -1 {\n\t\tp.resultLevels[0] = p.embeddingLevel\n\t}\n\tfor i := 1; i < len(p.initialTypes); i++ {\n\t\tif p.resultLevels[i] == -1 {\n\t\t\tp.resultLevels[i] = p.resultLevels[i-1]\n\t\t}\n\t}\n\t// Embedding information is for informational purposes only so need not be\n\t// adjusted.\n}\n\n//\n// Output\n//\n\n// getLevels computes levels array breaking lines at offsets in linebreaks.\n// Rule L1.\n//\n// The linebreaks array must include at least one value. The values must be\n// in strictly increasing order (no duplicates) between 1 and the length of\n// the text, inclusive. The last value must be the length of the text.\nfunc (p *paragraph) getLevels(linebreaks []int) []level {\n\t// Note that since the previous processing has removed all\n\t// P, S, and WS values from resultTypes, the values referred to\n\t// in these rules are the initial types, before any processing\n\t// has been applied (including processing of overrides).\n\t//\n\t// This example implementation has reinserted explicit format codes\n\t// and BN, in order that the levels array correspond to the\n\t// initial text. Their final placement is not normative.\n\t// These codes are treated like WS in this implementation,\n\t// so they don't interrupt sequences of WS.\n\n\tvalidateLineBreaks(linebreaks, p.Len())\n\n\tresult := append([]level(nil), p.resultLevels...)\n\n\t// don't worry about linebreaks since if there is a break within\n\t// a series of WS values preceding S, the linebreak itself\n\t// causes the reset.\n\tfor i, t := range p.initialTypes {\n\t\tif t.in(B, S) {\n\t\t\t// Rule L1, clauses one and two.\n\t\t\tresult[i] = p.embeddingLevel\n\n\t\t\t// Rule L1, clause three.\n\t\t\tfor j := i - 1; j >= 0; j-- {\n\t\t\t\tif isWhitespace(p.initialTypes[j]) { // including format codes\n\t\t\t\t\tresult[j] = p.embeddingLevel\n\t\t\t\t} else {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Rule L1, clause four.\n\tstart := 0\n\tfor _, limit := range linebreaks {\n\t\tfor j := limit - 1; j >= start; j-- {\n\t\t\tif isWhitespace(p.initialTypes[j]) { // including format codes\n\t\t\t\tresult[j] = p.embeddingLevel\n\t\t\t} else {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tstart = limit\n\t}\n\n\treturn result\n}\n\n// getReordering returns the reordering of lines from a visual index to a\n// logical index for line breaks at the given offsets.\n//\n// Lines are concatenated from left to right. So for example, the fifth\n// character from the left on the third line is\n//\n//\tgetReordering(linebreaks)[linebreaks[1] + 4]\n//\n// (linebreaks[1] is the position after the last character of the second\n// line, which is also the index of the first character on the third line,\n// and adding four gets the fifth character from the left).\n//\n// The linebreaks array must include at least one value. The values must be\n// in strictly increasing order (no duplicates) between 1 and the length of\n// the text, inclusive. The last value must be the length of the text.\nfunc (p *paragraph) getReordering(linebreaks []int) []int {\n\tvalidateLineBreaks(linebreaks, p.Len())\n\n\treturn computeMultilineReordering(p.getLevels(linebreaks), linebreaks)\n}\n\n// Return multiline reordering array for a given level array. Reordering\n// does not occur across a line break.\nfunc computeMultilineReordering(levels []level, linebreaks []int) []int {\n\tresult := make([]int, len(levels))\n\n\tstart := 0\n\tfor _, limit := range linebreaks {\n\t\ttempLevels := make([]level, limit-start)\n\t\tcopy(tempLevels, levels[start:])\n\n\t\tfor j, order := range computeReordering(tempLevels) {\n\t\t\tresult[start+j] = order + start\n\t\t}\n\t\tstart = limit\n\t}\n\treturn result\n}\n\n// Return reordering array for a given level array. This reorders a single\n// line. The reordering is a visual to logical map. For example, the\n// leftmost char is string.charAt(order[0]). Rule L2.\nfunc computeReordering(levels []level) []int {\n\tresult := make([]int, len(levels))\n\t// initialize order\n\tfor i := range result {\n\t\tresult[i] = i\n\t}\n\n\t// locate highest level found on line.\n\t// Note the rules say text, but no reordering across line bounds is\n\t// performed, so this is sufficient.\n\thighestLevel := level(0)\n\tlowestOddLevel := level(maxDepth + 2)\n\tfor _, level := range levels {\n\t\tif level > highestLevel {\n\t\t\thighestLevel = level\n\t\t}\n\t\tif level&1 != 0 && level < lowestOddLevel {\n\t\t\tlowestOddLevel = level\n\t\t}\n\t}\n\n\tfor level := highestLevel; level >= lowestOddLevel; level-- {\n\t\tfor i := 0; i < len(levels); i++ {\n\t\t\tif levels[i] >= level {\n\t\t\t\t// find range of text at or above this level\n\t\t\t\tstart := i\n\t\t\t\tlimit := i + 1\n\t\t\t\tfor limit < len(levels) && levels[limit] >= level {\n\t\t\t\t\tlimit++\n\t\t\t\t}\n\n\t\t\t\tfor j, k := start, limit-1; j < k; j, k = j+1, k-1 {\n\t\t\t\t\tresult[j], result[k] = result[k], result[j]\n\t\t\t\t}\n\t\t\t\t// skip to end of level run\n\t\t\t\ti = limit\n\t\t\t}\n\t\t}\n\t}\n\n\treturn result\n}\n\n// isWhitespace reports whether the type is considered a whitespace type for the\n// line break rules.\nfunc isWhitespace(c Class) bool {\n\tswitch c {\n\tcase LRE, RLE, LRO, RLO, PDF, LRI, RLI, FSI, PDI, BN, WS:\n\t\treturn true\n\t}\n\treturn false\n}\n\n// isRemovedByX9 reports whether the type is one of the types removed in X9.\nfunc isRemovedByX9(c Class) bool {\n\tswitch c {\n\tcase LRE, RLE, LRO, RLO, PDF, BN:\n\t\treturn true\n\t}\n\treturn false\n}\n\n// typeForLevel reports the strong type (L or R) corresponding to the level.\nfunc typeForLevel(level level) Class {\n\tif (level & 0x1) == 0 {\n\t\treturn L\n\t}\n\treturn R\n}\n\nfunc validateTypes(types []Class) error {\n\tif len(types) == 0 {\n\t\treturn fmt.Errorf(\"types is null\")\n\t}\n\tfor i, t := range types[:len(types)-1] {\n\t\tif t == B {\n\t\t\treturn fmt.Errorf(\"B type before end of paragraph at index: %d\", i)\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc validateParagraphEmbeddingLevel(embeddingLevel level) error {\n\tif embeddingLevel != implicitLevel &&\n\t\tembeddingLevel != 0 &&\n\t\tembeddingLevel != 1 {\n\t\treturn fmt.Errorf(\"illegal paragraph embedding level: %d\", embeddingLevel)\n\t}\n\treturn nil\n}\n\nfunc validateLineBreaks(linebreaks []int, textLength int) error {\n\tprev := 0\n\tfor i, next := range linebreaks {\n\t\tif next <= prev {\n\t\t\treturn fmt.Errorf(\"bad linebreak: %d at index: %d\", next, i)\n\t\t}\n\t\tprev = next\n\t}\n\tif prev != textLength {\n\t\treturn fmt.Errorf(\"last linebreak was %d, want %d\", prev, textLength)\n\t}\n\treturn nil\n}\n\nfunc validatePbTypes(pairTypes []bracketType) error {\n\tif len(pairTypes) == 0 {\n\t\treturn fmt.Errorf(\"pairTypes is null\")\n\t}\n\tfor i, pt := range pairTypes {\n\t\tswitch pt {\n\t\tcase bpNone, bpOpen, bpClose:\n\t\tdefault:\n\t\t\treturn fmt.Errorf(\"illegal pairType value at %d: %v\", i, pairTypes[i])\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc validatePbValues(pairValues []rune, pairTypes []bracketType) error {\n\tif pairValues == nil {\n\t\treturn fmt.Errorf(\"pairValues is null\")\n\t}\n\tif len(pairTypes) != len(pairValues) {\n\t\treturn fmt.Errorf(\"pairTypes is different length from pairValues\")\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/bidi/prop.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage bidi\n\nimport \"unicode/utf8\"\n\n// Properties provides access to BiDi properties of runes.\ntype Properties struct {\n\tentry uint8\n\tlast  uint8\n}\n\nvar trie = newBidiTrie(0)\n\n// TODO: using this for bidirule reduces the running time by about 5%. Consider\n// if this is worth exposing or if we can find a way to speed up the Class\n// method.\n//\n// // CompactClass is like Class, but maps all of the BiDi control classes\n// // (LRO, RLO, LRE, RLE, PDF, LRI, RLI, FSI, PDI) to the class Control.\n// func (p Properties) CompactClass() Class {\n// \treturn Class(p.entry & 0x0F)\n// }\n\n// Class returns the Bidi class for p.\nfunc (p Properties) Class() Class {\n\tc := Class(p.entry & 0x0F)\n\tif c == Control {\n\t\tc = controlByteToClass[p.last&0xF]\n\t}\n\treturn c\n}\n\n// IsBracket reports whether the rune is a bracket.\nfunc (p Properties) IsBracket() bool { return p.entry&0xF0 != 0 }\n\n// IsOpeningBracket reports whether the rune is an opening bracket.\n// IsBracket must return true.\nfunc (p Properties) IsOpeningBracket() bool { return p.entry&openMask != 0 }\n\n// TODO: find a better API and expose.\nfunc (p Properties) reverseBracket(r rune) rune {\n\treturn xorMasks[p.entry>>xorMaskShift] ^ r\n}\n\nvar controlByteToClass = [16]Class{\n\t0xD: LRO, // U+202D LeftToRightOverride,\n\t0xE: RLO, // U+202E RightToLeftOverride,\n\t0xA: LRE, // U+202A LeftToRightEmbedding,\n\t0xB: RLE, // U+202B RightToLeftEmbedding,\n\t0xC: PDF, // U+202C PopDirectionalFormat,\n\t0x6: LRI, // U+2066 LeftToRightIsolate,\n\t0x7: RLI, // U+2067 RightToLeftIsolate,\n\t0x8: FSI, // U+2068 FirstStrongIsolate,\n\t0x9: PDI, // U+2069 PopDirectionalIsolate,\n}\n\n// LookupRune returns properties for r.\nfunc LookupRune(r rune) (p Properties, size int) {\n\tvar buf [4]byte\n\tn := utf8.EncodeRune(buf[:], r)\n\treturn Lookup(buf[:n])\n}\n\n// TODO: these lookup methods are based on the generated trie code. The returned\n// sizes have slightly different semantics from the generated code, in that it\n// always returns size==1 for an illegal UTF-8 byte (instead of the length\n// of the maximum invalid subsequence). Most Transformers, like unicode/norm,\n// leave invalid UTF-8 untouched, in which case it has performance benefits to\n// do so (without changing the semantics). Bidi requires the semantics used here\n// for the bidirule implementation to be compatible with the Go semantics.\n//  They ultimately should perhaps be adopted by all trie implementations, for\n// convenience sake.\n// This unrolled code also boosts performance of the secure/bidirule package by\n// about 30%.\n// So, to remove this code:\n//   - add option to trie generator to define return type.\n//   - always return 1 byte size for ill-formed UTF-8 runes.\n\n// Lookup returns properties for the first rune in s and the width in bytes of\n// its encoding. The size will be 0 if s does not hold enough bytes to complete\n// the encoding.\nfunc Lookup(s []byte) (p Properties, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn Properties{entry: bidiValues[c0]}, 1\n\tcase c0 < 0xC2:\n\t\treturn Properties{}, 1\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn Properties{}, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn Properties{}, 1\n\t\t}\n\t\treturn Properties{entry: trie.lookupValue(uint32(i), c1)}, 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn Properties{}, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn Properties{}, 1\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn Properties{}, 1\n\t\t}\n\t\treturn Properties{entry: trie.lookupValue(uint32(i), c2), last: c2}, 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn Properties{}, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn Properties{}, 1\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn Properties{}, 1\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = bidiIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn Properties{}, 1\n\t\t}\n\t\treturn Properties{entry: trie.lookupValue(uint32(i), c3)}, 4\n\t}\n\t// Illegal rune\n\treturn Properties{}, 1\n}\n\n// LookupString returns properties for the first rune in s and the width in\n// bytes of its encoding. The size will be 0 if s does not hold enough bytes to\n// complete the encoding.\nfunc LookupString(s string) (p Properties, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn Properties{entry: bidiValues[c0]}, 1\n\tcase c0 < 0xC2:\n\t\treturn Properties{}, 1\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn Properties{}, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn Properties{}, 1\n\t\t}\n\t\treturn Properties{entry: trie.lookupValue(uint32(i), c1)}, 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn Properties{}, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn Properties{}, 1\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn Properties{}, 1\n\t\t}\n\t\treturn Properties{entry: trie.lookupValue(uint32(i), c2), last: c2}, 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn Properties{}, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn Properties{}, 1\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn Properties{}, 1\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = bidiIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn Properties{}, 1\n\t\t}\n\t\treturn Properties{entry: trie.lookupValue(uint32(i), c3)}, 4\n\t}\n\t// Illegal rune\n\treturn Properties{}, 1\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n//go:build go1.10 && !go1.13\n\npackage bidi\n\n// UnicodeVersion is the Unicode version from which the tables in this package are derived.\nconst UnicodeVersion = \"10.0.0\"\n\n// xorMasks contains masks to be xor-ed with brackets to get the reverse\n// version.\nvar xorMasks = []int32{ // 8 elements\n\t0, 1, 6, 7, 3, 15, 29, 63,\n} // Size: 56 bytes\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *bidiTrie) lookup(s []byte) (v uint8, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn bidiValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = bidiIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *bidiTrie) lookupUnsafe(s []byte) uint8 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn bidiValues[c0]\n\t}\n\ti := bidiIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *bidiTrie) lookupString(s string) (v uint8, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn bidiValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = bidiIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *bidiTrie) lookupStringUnsafe(s string) uint8 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn bidiValues[c0]\n\t}\n\ti := bidiIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// bidiTrie. Total size: 16128 bytes (15.75 KiB). Checksum: 8122d83e461996f.\ntype bidiTrie struct{}\n\nfunc newBidiTrie(i int) *bidiTrie {\n\treturn &bidiTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *bidiTrie) lookupValue(n uint32, b byte) uint8 {\n\tswitch {\n\tdefault:\n\t\treturn uint8(bidiValues[n<<6+uint32(b)])\n\t}\n}\n\n// bidiValues: 228 blocks, 14592 entries, 14592 bytes\n// The third block is the zero block.\nvar bidiValues = [14592]uint8{\n\t// Block 0x0, offset 0x0\n\t0x00: 0x000b, 0x01: 0x000b, 0x02: 0x000b, 0x03: 0x000b, 0x04: 0x000b, 0x05: 0x000b,\n\t0x06: 0x000b, 0x07: 0x000b, 0x08: 0x000b, 0x09: 0x0008, 0x0a: 0x0007, 0x0b: 0x0008,\n\t0x0c: 0x0009, 0x0d: 0x0007, 0x0e: 0x000b, 0x0f: 0x000b, 0x10: 0x000b, 0x11: 0x000b,\n\t0x12: 0x000b, 0x13: 0x000b, 0x14: 0x000b, 0x15: 0x000b, 0x16: 0x000b, 0x17: 0x000b,\n\t0x18: 0x000b, 0x19: 0x000b, 0x1a: 0x000b, 0x1b: 0x000b, 0x1c: 0x0007, 0x1d: 0x0007,\n\t0x1e: 0x0007, 0x1f: 0x0008, 0x20: 0x0009, 0x21: 0x000a, 0x22: 0x000a, 0x23: 0x0004,\n\t0x24: 0x0004, 0x25: 0x0004, 0x26: 0x000a, 0x27: 0x000a, 0x28: 0x003a, 0x29: 0x002a,\n\t0x2a: 0x000a, 0x2b: 0x0003, 0x2c: 0x0006, 0x2d: 0x0003, 0x2e: 0x0006, 0x2f: 0x0006,\n\t0x30: 0x0002, 0x31: 0x0002, 0x32: 0x0002, 0x33: 0x0002, 0x34: 0x0002, 0x35: 0x0002,\n\t0x36: 0x0002, 0x37: 0x0002, 0x38: 0x0002, 0x39: 0x0002, 0x3a: 0x0006, 0x3b: 0x000a,\n\t0x3c: 0x000a, 0x3d: 0x000a, 0x3e: 0x000a, 0x3f: 0x000a,\n\t// Block 0x1, offset 0x40\n\t0x40: 0x000a,\n\t0x5b: 0x005a, 0x5c: 0x000a, 0x5d: 0x004a,\n\t0x5e: 0x000a, 0x5f: 0x000a, 0x60: 0x000a,\n\t0x7b: 0x005a,\n\t0x7c: 0x000a, 0x7d: 0x004a, 0x7e: 0x000a, 0x7f: 0x000b,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x000b, 0xc1: 0x000b, 0xc2: 0x000b, 0xc3: 0x000b, 0xc4: 0x000b, 0xc5: 0x0007,\n\t0xc6: 0x000b, 0xc7: 0x000b, 0xc8: 0x000b, 0xc9: 0x000b, 0xca: 0x000b, 0xcb: 0x000b,\n\t0xcc: 0x000b, 0xcd: 0x000b, 0xce: 0x000b, 0xcf: 0x000b, 0xd0: 0x000b, 0xd1: 0x000b,\n\t0xd2: 0x000b, 0xd3: 0x000b, 0xd4: 0x000b, 0xd5: 0x000b, 0xd6: 0x000b, 0xd7: 0x000b,\n\t0xd8: 0x000b, 0xd9: 0x000b, 0xda: 0x000b, 0xdb: 0x000b, 0xdc: 0x000b, 0xdd: 0x000b,\n\t0xde: 0x000b, 0xdf: 0x000b, 0xe0: 0x0006, 0xe1: 0x000a, 0xe2: 0x0004, 0xe3: 0x0004,\n\t0xe4: 0x0004, 0xe5: 0x0004, 0xe6: 0x000a, 0xe7: 0x000a, 0xe8: 0x000a, 0xe9: 0x000a,\n\t0xeb: 0x000a, 0xec: 0x000a, 0xed: 0x000b, 0xee: 0x000a, 0xef: 0x000a,\n\t0xf0: 0x0004, 0xf1: 0x0004, 0xf2: 0x0002, 0xf3: 0x0002, 0xf4: 0x000a,\n\t0xf6: 0x000a, 0xf7: 0x000a, 0xf8: 0x000a, 0xf9: 0x0002, 0xfb: 0x000a,\n\t0xfc: 0x000a, 0xfd: 0x000a, 0xfe: 0x000a, 0xff: 0x000a,\n\t// Block 0x4, offset 0x100\n\t0x117: 0x000a,\n\t0x137: 0x000a,\n\t// Block 0x5, offset 0x140\n\t0x179: 0x000a, 0x17a: 0x000a,\n\t// Block 0x6, offset 0x180\n\t0x182: 0x000a, 0x183: 0x000a, 0x184: 0x000a, 0x185: 0x000a,\n\t0x186: 0x000a, 0x187: 0x000a, 0x188: 0x000a, 0x189: 0x000a, 0x18a: 0x000a, 0x18b: 0x000a,\n\t0x18c: 0x000a, 0x18d: 0x000a, 0x18e: 0x000a, 0x18f: 0x000a,\n\t0x192: 0x000a, 0x193: 0x000a, 0x194: 0x000a, 0x195: 0x000a, 0x196: 0x000a, 0x197: 0x000a,\n\t0x198: 0x000a, 0x199: 0x000a, 0x19a: 0x000a, 0x19b: 0x000a, 0x19c: 0x000a, 0x19d: 0x000a,\n\t0x19e: 0x000a, 0x19f: 0x000a,\n\t0x1a5: 0x000a, 0x1a6: 0x000a, 0x1a7: 0x000a, 0x1a8: 0x000a, 0x1a9: 0x000a,\n\t0x1aa: 0x000a, 0x1ab: 0x000a, 0x1ac: 0x000a, 0x1ad: 0x000a, 0x1af: 0x000a,\n\t0x1b0: 0x000a, 0x1b1: 0x000a, 0x1b2: 0x000a, 0x1b3: 0x000a, 0x1b4: 0x000a, 0x1b5: 0x000a,\n\t0x1b6: 0x000a, 0x1b7: 0x000a, 0x1b8: 0x000a, 0x1b9: 0x000a, 0x1ba: 0x000a, 0x1bb: 0x000a,\n\t0x1bc: 0x000a, 0x1bd: 0x000a, 0x1be: 0x000a, 0x1bf: 0x000a,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x000c, 0x1c1: 0x000c, 0x1c2: 0x000c, 0x1c3: 0x000c, 0x1c4: 0x000c, 0x1c5: 0x000c,\n\t0x1c6: 0x000c, 0x1c7: 0x000c, 0x1c8: 0x000c, 0x1c9: 0x000c, 0x1ca: 0x000c, 0x1cb: 0x000c,\n\t0x1cc: 0x000c, 0x1cd: 0x000c, 0x1ce: 0x000c, 0x1cf: 0x000c, 0x1d0: 0x000c, 0x1d1: 0x000c,\n\t0x1d2: 0x000c, 0x1d3: 0x000c, 0x1d4: 0x000c, 0x1d5: 0x000c, 0x1d6: 0x000c, 0x1d7: 0x000c,\n\t0x1d8: 0x000c, 0x1d9: 0x000c, 0x1da: 0x000c, 0x1db: 0x000c, 0x1dc: 0x000c, 0x1dd: 0x000c,\n\t0x1de: 0x000c, 0x1df: 0x000c, 0x1e0: 0x000c, 0x1e1: 0x000c, 0x1e2: 0x000c, 0x1e3: 0x000c,\n\t0x1e4: 0x000c, 0x1e5: 0x000c, 0x1e6: 0x000c, 0x1e7: 0x000c, 0x1e8: 0x000c, 0x1e9: 0x000c,\n\t0x1ea: 0x000c, 0x1eb: 0x000c, 0x1ec: 0x000c, 0x1ed: 0x000c, 0x1ee: 0x000c, 0x1ef: 0x000c,\n\t0x1f0: 0x000c, 0x1f1: 0x000c, 0x1f2: 0x000c, 0x1f3: 0x000c, 0x1f4: 0x000c, 0x1f5: 0x000c,\n\t0x1f6: 0x000c, 0x1f7: 0x000c, 0x1f8: 0x000c, 0x1f9: 0x000c, 0x1fa: 0x000c, 0x1fb: 0x000c,\n\t0x1fc: 0x000c, 0x1fd: 0x000c, 0x1fe: 0x000c, 0x1ff: 0x000c,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x000c, 0x201: 0x000c, 0x202: 0x000c, 0x203: 0x000c, 0x204: 0x000c, 0x205: 0x000c,\n\t0x206: 0x000c, 0x207: 0x000c, 0x208: 0x000c, 0x209: 0x000c, 0x20a: 0x000c, 0x20b: 0x000c,\n\t0x20c: 0x000c, 0x20d: 0x000c, 0x20e: 0x000c, 0x20f: 0x000c, 0x210: 0x000c, 0x211: 0x000c,\n\t0x212: 0x000c, 0x213: 0x000c, 0x214: 0x000c, 0x215: 0x000c, 0x216: 0x000c, 0x217: 0x000c,\n\t0x218: 0x000c, 0x219: 0x000c, 0x21a: 0x000c, 0x21b: 0x000c, 0x21c: 0x000c, 0x21d: 0x000c,\n\t0x21e: 0x000c, 0x21f: 0x000c, 0x220: 0x000c, 0x221: 0x000c, 0x222: 0x000c, 0x223: 0x000c,\n\t0x224: 0x000c, 0x225: 0x000c, 0x226: 0x000c, 0x227: 0x000c, 0x228: 0x000c, 0x229: 0x000c,\n\t0x22a: 0x000c, 0x22b: 0x000c, 0x22c: 0x000c, 0x22d: 0x000c, 0x22e: 0x000c, 0x22f: 0x000c,\n\t0x234: 0x000a, 0x235: 0x000a,\n\t0x23e: 0x000a,\n\t// Block 0x9, offset 0x240\n\t0x244: 0x000a, 0x245: 0x000a,\n\t0x247: 0x000a,\n\t// Block 0xa, offset 0x280\n\t0x2b6: 0x000a,\n\t// Block 0xb, offset 0x2c0\n\t0x2c3: 0x000c, 0x2c4: 0x000c, 0x2c5: 0x000c,\n\t0x2c6: 0x000c, 0x2c7: 0x000c, 0x2c8: 0x000c, 0x2c9: 0x000c,\n\t// Block 0xc, offset 0x300\n\t0x30a: 0x000a,\n\t0x30d: 0x000a, 0x30e: 0x000a, 0x30f: 0x0004, 0x310: 0x0001, 0x311: 0x000c,\n\t0x312: 0x000c, 0x313: 0x000c, 0x314: 0x000c, 0x315: 0x000c, 0x316: 0x000c, 0x317: 0x000c,\n\t0x318: 0x000c, 0x319: 0x000c, 0x31a: 0x000c, 0x31b: 0x000c, 0x31c: 0x000c, 0x31d: 0x000c,\n\t0x31e: 0x000c, 0x31f: 0x000c, 0x320: 0x000c, 0x321: 0x000c, 0x322: 0x000c, 0x323: 0x000c,\n\t0x324: 0x000c, 0x325: 0x000c, 0x326: 0x000c, 0x327: 0x000c, 0x328: 0x000c, 0x329: 0x000c,\n\t0x32a: 0x000c, 0x32b: 0x000c, 0x32c: 0x000c, 0x32d: 0x000c, 0x32e: 0x000c, 0x32f: 0x000c,\n\t0x330: 0x000c, 0x331: 0x000c, 0x332: 0x000c, 0x333: 0x000c, 0x334: 0x000c, 0x335: 0x000c,\n\t0x336: 0x000c, 0x337: 0x000c, 0x338: 0x000c, 0x339: 0x000c, 0x33a: 0x000c, 0x33b: 0x000c,\n\t0x33c: 0x000c, 0x33d: 0x000c, 0x33e: 0x0001, 0x33f: 0x000c,\n\t// Block 0xd, offset 0x340\n\t0x340: 0x0001, 0x341: 0x000c, 0x342: 0x000c, 0x343: 0x0001, 0x344: 0x000c, 0x345: 0x000c,\n\t0x346: 0x0001, 0x347: 0x000c, 0x348: 0x0001, 0x349: 0x0001, 0x34a: 0x0001, 0x34b: 0x0001,\n\t0x34c: 0x0001, 0x34d: 0x0001, 0x34e: 0x0001, 0x34f: 0x0001, 0x350: 0x0001, 0x351: 0x0001,\n\t0x352: 0x0001, 0x353: 0x0001, 0x354: 0x0001, 0x355: 0x0001, 0x356: 0x0001, 0x357: 0x0001,\n\t0x358: 0x0001, 0x359: 0x0001, 0x35a: 0x0001, 0x35b: 0x0001, 0x35c: 0x0001, 0x35d: 0x0001,\n\t0x35e: 0x0001, 0x35f: 0x0001, 0x360: 0x0001, 0x361: 0x0001, 0x362: 0x0001, 0x363: 0x0001,\n\t0x364: 0x0001, 0x365: 0x0001, 0x366: 0x0001, 0x367: 0x0001, 0x368: 0x0001, 0x369: 0x0001,\n\t0x36a: 0x0001, 0x36b: 0x0001, 0x36c: 0x0001, 0x36d: 0x0001, 0x36e: 0x0001, 0x36f: 0x0001,\n\t0x370: 0x0001, 0x371: 0x0001, 0x372: 0x0001, 0x373: 0x0001, 0x374: 0x0001, 0x375: 0x0001,\n\t0x376: 0x0001, 0x377: 0x0001, 0x378: 0x0001, 0x379: 0x0001, 0x37a: 0x0001, 0x37b: 0x0001,\n\t0x37c: 0x0001, 0x37d: 0x0001, 0x37e: 0x0001, 0x37f: 0x0001,\n\t// Block 0xe, offset 0x380\n\t0x380: 0x0005, 0x381: 0x0005, 0x382: 0x0005, 0x383: 0x0005, 0x384: 0x0005, 0x385: 0x0005,\n\t0x386: 0x000a, 0x387: 0x000a, 0x388: 0x000d, 0x389: 0x0004, 0x38a: 0x0004, 0x38b: 0x000d,\n\t0x38c: 0x0006, 0x38d: 0x000d, 0x38e: 0x000a, 0x38f: 0x000a, 0x390: 0x000c, 0x391: 0x000c,\n\t0x392: 0x000c, 0x393: 0x000c, 0x394: 0x000c, 0x395: 0x000c, 0x396: 0x000c, 0x397: 0x000c,\n\t0x398: 0x000c, 0x399: 0x000c, 0x39a: 0x000c, 0x39b: 0x000d, 0x39c: 0x000d, 0x39d: 0x000d,\n\t0x39e: 0x000d, 0x39f: 0x000d, 0x3a0: 0x000d, 0x3a1: 0x000d, 0x3a2: 0x000d, 0x3a3: 0x000d,\n\t0x3a4: 0x000d, 0x3a5: 0x000d, 0x3a6: 0x000d, 0x3a7: 0x000d, 0x3a8: 0x000d, 0x3a9: 0x000d,\n\t0x3aa: 0x000d, 0x3ab: 0x000d, 0x3ac: 0x000d, 0x3ad: 0x000d, 0x3ae: 0x000d, 0x3af: 0x000d,\n\t0x3b0: 0x000d, 0x3b1: 0x000d, 0x3b2: 0x000d, 0x3b3: 0x000d, 0x3b4: 0x000d, 0x3b5: 0x000d,\n\t0x3b6: 0x000d, 0x3b7: 0x000d, 0x3b8: 0x000d, 0x3b9: 0x000d, 0x3ba: 0x000d, 0x3bb: 0x000d,\n\t0x3bc: 0x000d, 0x3bd: 0x000d, 0x3be: 0x000d, 0x3bf: 0x000d,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x000d, 0x3c1: 0x000d, 0x3c2: 0x000d, 0x3c3: 0x000d, 0x3c4: 0x000d, 0x3c5: 0x000d,\n\t0x3c6: 0x000d, 0x3c7: 0x000d, 0x3c8: 0x000d, 0x3c9: 0x000d, 0x3ca: 0x000d, 0x3cb: 0x000c,\n\t0x3cc: 0x000c, 0x3cd: 0x000c, 0x3ce: 0x000c, 0x3cf: 0x000c, 0x3d0: 0x000c, 0x3d1: 0x000c,\n\t0x3d2: 0x000c, 0x3d3: 0x000c, 0x3d4: 0x000c, 0x3d5: 0x000c, 0x3d6: 0x000c, 0x3d7: 0x000c,\n\t0x3d8: 0x000c, 0x3d9: 0x000c, 0x3da: 0x000c, 0x3db: 0x000c, 0x3dc: 0x000c, 0x3dd: 0x000c,\n\t0x3de: 0x000c, 0x3df: 0x000c, 0x3e0: 0x0005, 0x3e1: 0x0005, 0x3e2: 0x0005, 0x3e3: 0x0005,\n\t0x3e4: 0x0005, 0x3e5: 0x0005, 0x3e6: 0x0005, 0x3e7: 0x0005, 0x3e8: 0x0005, 0x3e9: 0x0005,\n\t0x3ea: 0x0004, 0x3eb: 0x0005, 0x3ec: 0x0005, 0x3ed: 0x000d, 0x3ee: 0x000d, 0x3ef: 0x000d,\n\t0x3f0: 0x000c, 0x3f1: 0x000d, 0x3f2: 0x000d, 0x3f3: 0x000d, 0x3f4: 0x000d, 0x3f5: 0x000d,\n\t0x3f6: 0x000d, 0x3f7: 0x000d, 0x3f8: 0x000d, 0x3f9: 0x000d, 0x3fa: 0x000d, 0x3fb: 0x000d,\n\t0x3fc: 0x000d, 0x3fd: 0x000d, 0x3fe: 0x000d, 0x3ff: 0x000d,\n\t// Block 0x10, offset 0x400\n\t0x400: 0x000d, 0x401: 0x000d, 0x402: 0x000d, 0x403: 0x000d, 0x404: 0x000d, 0x405: 0x000d,\n\t0x406: 0x000d, 0x407: 0x000d, 0x408: 0x000d, 0x409: 0x000d, 0x40a: 0x000d, 0x40b: 0x000d,\n\t0x40c: 0x000d, 0x40d: 0x000d, 0x40e: 0x000d, 0x40f: 0x000d, 0x410: 0x000d, 0x411: 0x000d,\n\t0x412: 0x000d, 0x413: 0x000d, 0x414: 0x000d, 0x415: 0x000d, 0x416: 0x000d, 0x417: 0x000d,\n\t0x418: 0x000d, 0x419: 0x000d, 0x41a: 0x000d, 0x41b: 0x000d, 0x41c: 0x000d, 0x41d: 0x000d,\n\t0x41e: 0x000d, 0x41f: 0x000d, 0x420: 0x000d, 0x421: 0x000d, 0x422: 0x000d, 0x423: 0x000d,\n\t0x424: 0x000d, 0x425: 0x000d, 0x426: 0x000d, 0x427: 0x000d, 0x428: 0x000d, 0x429: 0x000d,\n\t0x42a: 0x000d, 0x42b: 0x000d, 0x42c: 0x000d, 0x42d: 0x000d, 0x42e: 0x000d, 0x42f: 0x000d,\n\t0x430: 0x000d, 0x431: 0x000d, 0x432: 0x000d, 0x433: 0x000d, 0x434: 0x000d, 0x435: 0x000d,\n\t0x436: 0x000d, 0x437: 0x000d, 0x438: 0x000d, 0x439: 0x000d, 0x43a: 0x000d, 0x43b: 0x000d,\n\t0x43c: 0x000d, 0x43d: 0x000d, 0x43e: 0x000d, 0x43f: 0x000d,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x000d, 0x441: 0x000d, 0x442: 0x000d, 0x443: 0x000d, 0x444: 0x000d, 0x445: 0x000d,\n\t0x446: 0x000d, 0x447: 0x000d, 0x448: 0x000d, 0x449: 0x000d, 0x44a: 0x000d, 0x44b: 0x000d,\n\t0x44c: 0x000d, 0x44d: 0x000d, 0x44e: 0x000d, 0x44f: 0x000d, 0x450: 0x000d, 0x451: 0x000d,\n\t0x452: 0x000d, 0x453: 0x000d, 0x454: 0x000d, 0x455: 0x000d, 0x456: 0x000c, 0x457: 0x000c,\n\t0x458: 0x000c, 0x459: 0x000c, 0x45a: 0x000c, 0x45b: 0x000c, 0x45c: 0x000c, 0x45d: 0x0005,\n\t0x45e: 0x000a, 0x45f: 0x000c, 0x460: 0x000c, 0x461: 0x000c, 0x462: 0x000c, 0x463: 0x000c,\n\t0x464: 0x000c, 0x465: 0x000d, 0x466: 0x000d, 0x467: 0x000c, 0x468: 0x000c, 0x469: 0x000a,\n\t0x46a: 0x000c, 0x46b: 0x000c, 0x46c: 0x000c, 0x46d: 0x000c, 0x46e: 0x000d, 0x46f: 0x000d,\n\t0x470: 0x0002, 0x471: 0x0002, 0x472: 0x0002, 0x473: 0x0002, 0x474: 0x0002, 0x475: 0x0002,\n\t0x476: 0x0002, 0x477: 0x0002, 0x478: 0x0002, 0x479: 0x0002, 0x47a: 0x000d, 0x47b: 0x000d,\n\t0x47c: 0x000d, 0x47d: 0x000d, 0x47e: 0x000d, 0x47f: 0x000d,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x000d, 0x481: 0x000d, 0x482: 0x000d, 0x483: 0x000d, 0x484: 0x000d, 0x485: 0x000d,\n\t0x486: 0x000d, 0x487: 0x000d, 0x488: 0x000d, 0x489: 0x000d, 0x48a: 0x000d, 0x48b: 0x000d,\n\t0x48c: 0x000d, 0x48d: 0x000d, 0x48e: 0x000d, 0x48f: 0x000d, 0x490: 0x000d, 0x491: 0x000c,\n\t0x492: 0x000d, 0x493: 0x000d, 0x494: 0x000d, 0x495: 0x000d, 0x496: 0x000d, 0x497: 0x000d,\n\t0x498: 0x000d, 0x499: 0x000d, 0x49a: 0x000d, 0x49b: 0x000d, 0x49c: 0x000d, 0x49d: 0x000d,\n\t0x49e: 0x000d, 0x49f: 0x000d, 0x4a0: 0x000d, 0x4a1: 0x000d, 0x4a2: 0x000d, 0x4a3: 0x000d,\n\t0x4a4: 0x000d, 0x4a5: 0x000d, 0x4a6: 0x000d, 0x4a7: 0x000d, 0x4a8: 0x000d, 0x4a9: 0x000d,\n\t0x4aa: 0x000d, 0x4ab: 0x000d, 0x4ac: 0x000d, 0x4ad: 0x000d, 0x4ae: 0x000d, 0x4af: 0x000d,\n\t0x4b0: 0x000c, 0x4b1: 0x000c, 0x4b2: 0x000c, 0x4b3: 0x000c, 0x4b4: 0x000c, 0x4b5: 0x000c,\n\t0x4b6: 0x000c, 0x4b7: 0x000c, 0x4b8: 0x000c, 0x4b9: 0x000c, 0x4ba: 0x000c, 0x4bb: 0x000c,\n\t0x4bc: 0x000c, 0x4bd: 0x000c, 0x4be: 0x000c, 0x4bf: 0x000c,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x000c, 0x4c1: 0x000c, 0x4c2: 0x000c, 0x4c3: 0x000c, 0x4c4: 0x000c, 0x4c5: 0x000c,\n\t0x4c6: 0x000c, 0x4c7: 0x000c, 0x4c8: 0x000c, 0x4c9: 0x000c, 0x4ca: 0x000c, 0x4cb: 0x000d,\n\t0x4cc: 0x000d, 0x4cd: 0x000d, 0x4ce: 0x000d, 0x4cf: 0x000d, 0x4d0: 0x000d, 0x4d1: 0x000d,\n\t0x4d2: 0x000d, 0x4d3: 0x000d, 0x4d4: 0x000d, 0x4d5: 0x000d, 0x4d6: 0x000d, 0x4d7: 0x000d,\n\t0x4d8: 0x000d, 0x4d9: 0x000d, 0x4da: 0x000d, 0x4db: 0x000d, 0x4dc: 0x000d, 0x4dd: 0x000d,\n\t0x4de: 0x000d, 0x4df: 0x000d, 0x4e0: 0x000d, 0x4e1: 0x000d, 0x4e2: 0x000d, 0x4e3: 0x000d,\n\t0x4e4: 0x000d, 0x4e5: 0x000d, 0x4e6: 0x000d, 0x4e7: 0x000d, 0x4e8: 0x000d, 0x4e9: 0x000d,\n\t0x4ea: 0x000d, 0x4eb: 0x000d, 0x4ec: 0x000d, 0x4ed: 0x000d, 0x4ee: 0x000d, 0x4ef: 0x000d,\n\t0x4f0: 0x000d, 0x4f1: 0x000d, 0x4f2: 0x000d, 0x4f3: 0x000d, 0x4f4: 0x000d, 0x4f5: 0x000d,\n\t0x4f6: 0x000d, 0x4f7: 0x000d, 0x4f8: 0x000d, 0x4f9: 0x000d, 0x4fa: 0x000d, 0x4fb: 0x000d,\n\t0x4fc: 0x000d, 0x4fd: 0x000d, 0x4fe: 0x000d, 0x4ff: 0x000d,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x000d, 0x501: 0x000d, 0x502: 0x000d, 0x503: 0x000d, 0x504: 0x000d, 0x505: 0x000d,\n\t0x506: 0x000d, 0x507: 0x000d, 0x508: 0x000d, 0x509: 0x000d, 0x50a: 0x000d, 0x50b: 0x000d,\n\t0x50c: 0x000d, 0x50d: 0x000d, 0x50e: 0x000d, 0x50f: 0x000d, 0x510: 0x000d, 0x511: 0x000d,\n\t0x512: 0x000d, 0x513: 0x000d, 0x514: 0x000d, 0x515: 0x000d, 0x516: 0x000d, 0x517: 0x000d,\n\t0x518: 0x000d, 0x519: 0x000d, 0x51a: 0x000d, 0x51b: 0x000d, 0x51c: 0x000d, 0x51d: 0x000d,\n\t0x51e: 0x000d, 0x51f: 0x000d, 0x520: 0x000d, 0x521: 0x000d, 0x522: 0x000d, 0x523: 0x000d,\n\t0x524: 0x000d, 0x525: 0x000d, 0x526: 0x000c, 0x527: 0x000c, 0x528: 0x000c, 0x529: 0x000c,\n\t0x52a: 0x000c, 0x52b: 0x000c, 0x52c: 0x000c, 0x52d: 0x000c, 0x52e: 0x000c, 0x52f: 0x000c,\n\t0x530: 0x000c, 0x531: 0x000d, 0x532: 0x000d, 0x533: 0x000d, 0x534: 0x000d, 0x535: 0x000d,\n\t0x536: 0x000d, 0x537: 0x000d, 0x538: 0x000d, 0x539: 0x000d, 0x53a: 0x000d, 0x53b: 0x000d,\n\t0x53c: 0x000d, 0x53d: 0x000d, 0x53e: 0x000d, 0x53f: 0x000d,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x0001, 0x541: 0x0001, 0x542: 0x0001, 0x543: 0x0001, 0x544: 0x0001, 0x545: 0x0001,\n\t0x546: 0x0001, 0x547: 0x0001, 0x548: 0x0001, 0x549: 0x0001, 0x54a: 0x0001, 0x54b: 0x0001,\n\t0x54c: 0x0001, 0x54d: 0x0001, 0x54e: 0x0001, 0x54f: 0x0001, 0x550: 0x0001, 0x551: 0x0001,\n\t0x552: 0x0001, 0x553: 0x0001, 0x554: 0x0001, 0x555: 0x0001, 0x556: 0x0001, 0x557: 0x0001,\n\t0x558: 0x0001, 0x559: 0x0001, 0x55a: 0x0001, 0x55b: 0x0001, 0x55c: 0x0001, 0x55d: 0x0001,\n\t0x55e: 0x0001, 0x55f: 0x0001, 0x560: 0x0001, 0x561: 0x0001, 0x562: 0x0001, 0x563: 0x0001,\n\t0x564: 0x0001, 0x565: 0x0001, 0x566: 0x0001, 0x567: 0x0001, 0x568: 0x0001, 0x569: 0x0001,\n\t0x56a: 0x0001, 0x56b: 0x000c, 0x56c: 0x000c, 0x56d: 0x000c, 0x56e: 0x000c, 0x56f: 0x000c,\n\t0x570: 0x000c, 0x571: 0x000c, 0x572: 0x000c, 0x573: 0x000c, 0x574: 0x0001, 0x575: 0x0001,\n\t0x576: 0x000a, 0x577: 0x000a, 0x578: 0x000a, 0x579: 0x000a, 0x57a: 0x0001, 0x57b: 0x0001,\n\t0x57c: 0x0001, 0x57d: 0x0001, 0x57e: 0x0001, 0x57f: 0x0001,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x0001, 0x581: 0x0001, 0x582: 0x0001, 0x583: 0x0001, 0x584: 0x0001, 0x585: 0x0001,\n\t0x586: 0x0001, 0x587: 0x0001, 0x588: 0x0001, 0x589: 0x0001, 0x58a: 0x0001, 0x58b: 0x0001,\n\t0x58c: 0x0001, 0x58d: 0x0001, 0x58e: 0x0001, 0x58f: 0x0001, 0x590: 0x0001, 0x591: 0x0001,\n\t0x592: 0x0001, 0x593: 0x0001, 0x594: 0x0001, 0x595: 0x0001, 0x596: 0x000c, 0x597: 0x000c,\n\t0x598: 0x000c, 0x599: 0x000c, 0x59a: 0x0001, 0x59b: 0x000c, 0x59c: 0x000c, 0x59d: 0x000c,\n\t0x59e: 0x000c, 0x59f: 0x000c, 0x5a0: 0x000c, 0x5a1: 0x000c, 0x5a2: 0x000c, 0x5a3: 0x000c,\n\t0x5a4: 0x0001, 0x5a5: 0x000c, 0x5a6: 0x000c, 0x5a7: 0x000c, 0x5a8: 0x0001, 0x5a9: 0x000c,\n\t0x5aa: 0x000c, 0x5ab: 0x000c, 0x5ac: 0x000c, 0x5ad: 0x000c, 0x5ae: 0x0001, 0x5af: 0x0001,\n\t0x5b0: 0x0001, 0x5b1: 0x0001, 0x5b2: 0x0001, 0x5b3: 0x0001, 0x5b4: 0x0001, 0x5b5: 0x0001,\n\t0x5b6: 0x0001, 0x5b7: 0x0001, 0x5b8: 0x0001, 0x5b9: 0x0001, 0x5ba: 0x0001, 0x5bb: 0x0001,\n\t0x5bc: 0x0001, 0x5bd: 0x0001, 0x5be: 0x0001, 0x5bf: 0x0001,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x0001, 0x5c1: 0x0001, 0x5c2: 0x0001, 0x5c3: 0x0001, 0x5c4: 0x0001, 0x5c5: 0x0001,\n\t0x5c6: 0x0001, 0x5c7: 0x0001, 0x5c8: 0x0001, 0x5c9: 0x0001, 0x5ca: 0x0001, 0x5cb: 0x0001,\n\t0x5cc: 0x0001, 0x5cd: 0x0001, 0x5ce: 0x0001, 0x5cf: 0x0001, 0x5d0: 0x0001, 0x5d1: 0x0001,\n\t0x5d2: 0x0001, 0x5d3: 0x0001, 0x5d4: 0x0001, 0x5d5: 0x0001, 0x5d6: 0x0001, 0x5d7: 0x0001,\n\t0x5d8: 0x0001, 0x5d9: 0x000c, 0x5da: 0x000c, 0x5db: 0x000c, 0x5dc: 0x0001, 0x5dd: 0x0001,\n\t0x5de: 0x0001, 0x5df: 0x0001, 0x5e0: 0x000d, 0x5e1: 0x000d, 0x5e2: 0x000d, 0x5e3: 0x000d,\n\t0x5e4: 0x000d, 0x5e5: 0x000d, 0x5e6: 0x000d, 0x5e7: 0x000d, 0x5e8: 0x000d, 0x5e9: 0x000d,\n\t0x5ea: 0x000d, 0x5eb: 0x000d, 0x5ec: 0x000d, 0x5ed: 0x000d, 0x5ee: 0x000d, 0x5ef: 0x000d,\n\t0x5f0: 0x0001, 0x5f1: 0x0001, 0x5f2: 0x0001, 0x5f3: 0x0001, 0x5f4: 0x0001, 0x5f5: 0x0001,\n\t0x5f6: 0x0001, 0x5f7: 0x0001, 0x5f8: 0x0001, 0x5f9: 0x0001, 0x5fa: 0x0001, 0x5fb: 0x0001,\n\t0x5fc: 0x0001, 0x5fd: 0x0001, 0x5fe: 0x0001, 0x5ff: 0x0001,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x0001, 0x601: 0x0001, 0x602: 0x0001, 0x603: 0x0001, 0x604: 0x0001, 0x605: 0x0001,\n\t0x606: 0x0001, 0x607: 0x0001, 0x608: 0x0001, 0x609: 0x0001, 0x60a: 0x0001, 0x60b: 0x0001,\n\t0x60c: 0x0001, 0x60d: 0x0001, 0x60e: 0x0001, 0x60f: 0x0001, 0x610: 0x0001, 0x611: 0x0001,\n\t0x612: 0x0001, 0x613: 0x0001, 0x614: 0x0001, 0x615: 0x0001, 0x616: 0x0001, 0x617: 0x0001,\n\t0x618: 0x0001, 0x619: 0x0001, 0x61a: 0x0001, 0x61b: 0x0001, 0x61c: 0x0001, 0x61d: 0x0001,\n\t0x61e: 0x0001, 0x61f: 0x0001, 0x620: 0x000d, 0x621: 0x000d, 0x622: 0x000d, 0x623: 0x000d,\n\t0x624: 0x000d, 0x625: 0x000d, 0x626: 0x000d, 0x627: 0x000d, 0x628: 0x000d, 0x629: 0x000d,\n\t0x62a: 0x000d, 0x62b: 0x000d, 0x62c: 0x000d, 0x62d: 0x000d, 0x62e: 0x000d, 0x62f: 0x000d,\n\t0x630: 0x000d, 0x631: 0x000d, 0x632: 0x000d, 0x633: 0x000d, 0x634: 0x000d, 0x635: 0x000d,\n\t0x636: 0x000d, 0x637: 0x000d, 0x638: 0x000d, 0x639: 0x000d, 0x63a: 0x000d, 0x63b: 0x000d,\n\t0x63c: 0x000d, 0x63d: 0x000d, 0x63e: 0x000d, 0x63f: 0x000d,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x000d, 0x641: 0x000d, 0x642: 0x000d, 0x643: 0x000d, 0x644: 0x000d, 0x645: 0x000d,\n\t0x646: 0x000d, 0x647: 0x000d, 0x648: 0x000d, 0x649: 0x000d, 0x64a: 0x000d, 0x64b: 0x000d,\n\t0x64c: 0x000d, 0x64d: 0x000d, 0x64e: 0x000d, 0x64f: 0x000d, 0x650: 0x000d, 0x651: 0x000d,\n\t0x652: 0x000d, 0x653: 0x000d, 0x654: 0x000c, 0x655: 0x000c, 0x656: 0x000c, 0x657: 0x000c,\n\t0x658: 0x000c, 0x659: 0x000c, 0x65a: 0x000c, 0x65b: 0x000c, 0x65c: 0x000c, 0x65d: 0x000c,\n\t0x65e: 0x000c, 0x65f: 0x000c, 0x660: 0x000c, 0x661: 0x000c, 0x662: 0x0005, 0x663: 0x000c,\n\t0x664: 0x000c, 0x665: 0x000c, 0x666: 0x000c, 0x667: 0x000c, 0x668: 0x000c, 0x669: 0x000c,\n\t0x66a: 0x000c, 0x66b: 0x000c, 0x66c: 0x000c, 0x66d: 0x000c, 0x66e: 0x000c, 0x66f: 0x000c,\n\t0x670: 0x000c, 0x671: 0x000c, 0x672: 0x000c, 0x673: 0x000c, 0x674: 0x000c, 0x675: 0x000c,\n\t0x676: 0x000c, 0x677: 0x000c, 0x678: 0x000c, 0x679: 0x000c, 0x67a: 0x000c, 0x67b: 0x000c,\n\t0x67c: 0x000c, 0x67d: 0x000c, 0x67e: 0x000c, 0x67f: 0x000c,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x000c, 0x681: 0x000c, 0x682: 0x000c,\n\t0x6ba: 0x000c,\n\t0x6bc: 0x000c,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c1: 0x000c, 0x6c2: 0x000c, 0x6c3: 0x000c, 0x6c4: 0x000c, 0x6c5: 0x000c,\n\t0x6c6: 0x000c, 0x6c7: 0x000c, 0x6c8: 0x000c,\n\t0x6cd: 0x000c, 0x6d1: 0x000c,\n\t0x6d2: 0x000c, 0x6d3: 0x000c, 0x6d4: 0x000c, 0x6d5: 0x000c, 0x6d6: 0x000c, 0x6d7: 0x000c,\n\t0x6e2: 0x000c, 0x6e3: 0x000c,\n\t// Block 0x1c, offset 0x700\n\t0x701: 0x000c,\n\t0x73c: 0x000c,\n\t// Block 0x1d, offset 0x740\n\t0x741: 0x000c, 0x742: 0x000c, 0x743: 0x000c, 0x744: 0x000c,\n\t0x74d: 0x000c,\n\t0x762: 0x000c, 0x763: 0x000c,\n\t0x772: 0x0004, 0x773: 0x0004,\n\t0x77b: 0x0004,\n\t// Block 0x1e, offset 0x780\n\t0x781: 0x000c, 0x782: 0x000c,\n\t0x7bc: 0x000c,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c1: 0x000c, 0x7c2: 0x000c,\n\t0x7c7: 0x000c, 0x7c8: 0x000c, 0x7cb: 0x000c,\n\t0x7cc: 0x000c, 0x7cd: 0x000c, 0x7d1: 0x000c,\n\t0x7f0: 0x000c, 0x7f1: 0x000c, 0x7f5: 0x000c,\n\t// Block 0x20, offset 0x800\n\t0x801: 0x000c, 0x802: 0x000c, 0x803: 0x000c, 0x804: 0x000c, 0x805: 0x000c,\n\t0x807: 0x000c, 0x808: 0x000c,\n\t0x80d: 0x000c,\n\t0x822: 0x000c, 0x823: 0x000c,\n\t0x831: 0x0004,\n\t0x83a: 0x000c, 0x83b: 0x000c,\n\t0x83c: 0x000c, 0x83d: 0x000c, 0x83e: 0x000c, 0x83f: 0x000c,\n\t// Block 0x21, offset 0x840\n\t0x841: 0x000c,\n\t0x87c: 0x000c, 0x87f: 0x000c,\n\t// Block 0x22, offset 0x880\n\t0x881: 0x000c, 0x882: 0x000c, 0x883: 0x000c, 0x884: 0x000c,\n\t0x88d: 0x000c,\n\t0x896: 0x000c,\n\t0x8a2: 0x000c, 0x8a3: 0x000c,\n\t// Block 0x23, offset 0x8c0\n\t0x8c2: 0x000c,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x000c,\n\t0x90d: 0x000c,\n\t0x933: 0x000a, 0x934: 0x000a, 0x935: 0x000a,\n\t0x936: 0x000a, 0x937: 0x000a, 0x938: 0x000a, 0x939: 0x0004, 0x93a: 0x000a,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x000c,\n\t0x97e: 0x000c, 0x97f: 0x000c,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x000c,\n\t0x986: 0x000c, 0x987: 0x000c, 0x988: 0x000c, 0x98a: 0x000c, 0x98b: 0x000c,\n\t0x98c: 0x000c, 0x98d: 0x000c,\n\t0x995: 0x000c, 0x996: 0x000c,\n\t0x9a2: 0x000c, 0x9a3: 0x000c,\n\t0x9b8: 0x000a, 0x9b9: 0x000a, 0x9ba: 0x000a, 0x9bb: 0x000a,\n\t0x9bc: 0x000a, 0x9bd: 0x000a, 0x9be: 0x000a,\n\t// Block 0x27, offset 0x9c0\n\t0x9cc: 0x000c, 0x9cd: 0x000c,\n\t0x9e2: 0x000c, 0x9e3: 0x000c,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x000c, 0xa01: 0x000c,\n\t0xa3b: 0x000c,\n\t0xa3c: 0x000c,\n\t// Block 0x29, offset 0xa40\n\t0xa41: 0x000c, 0xa42: 0x000c, 0xa43: 0x000c, 0xa44: 0x000c,\n\t0xa4d: 0x000c,\n\t0xa62: 0x000c, 0xa63: 0x000c,\n\t// Block 0x2a, offset 0xa80\n\t0xa8a: 0x000c,\n\t0xa92: 0x000c, 0xa93: 0x000c, 0xa94: 0x000c, 0xa96: 0x000c,\n\t// Block 0x2b, offset 0xac0\n\t0xaf1: 0x000c, 0xaf4: 0x000c, 0xaf5: 0x000c,\n\t0xaf6: 0x000c, 0xaf7: 0x000c, 0xaf8: 0x000c, 0xaf9: 0x000c, 0xafa: 0x000c,\n\t0xaff: 0x0004,\n\t// Block 0x2c, offset 0xb00\n\t0xb07: 0x000c, 0xb08: 0x000c, 0xb09: 0x000c, 0xb0a: 0x000c, 0xb0b: 0x000c,\n\t0xb0c: 0x000c, 0xb0d: 0x000c, 0xb0e: 0x000c,\n\t// Block 0x2d, offset 0xb40\n\t0xb71: 0x000c, 0xb74: 0x000c, 0xb75: 0x000c,\n\t0xb76: 0x000c, 0xb77: 0x000c, 0xb78: 0x000c, 0xb79: 0x000c, 0xb7b: 0x000c,\n\t0xb7c: 0x000c,\n\t// Block 0x2e, offset 0xb80\n\t0xb88: 0x000c, 0xb89: 0x000c, 0xb8a: 0x000c, 0xb8b: 0x000c,\n\t0xb8c: 0x000c, 0xb8d: 0x000c,\n\t// Block 0x2f, offset 0xbc0\n\t0xbd8: 0x000c, 0xbd9: 0x000c,\n\t0xbf5: 0x000c,\n\t0xbf7: 0x000c, 0xbf9: 0x000c, 0xbfa: 0x003a, 0xbfb: 0x002a,\n\t0xbfc: 0x003a, 0xbfd: 0x002a,\n\t// Block 0x30, offset 0xc00\n\t0xc31: 0x000c, 0xc32: 0x000c, 0xc33: 0x000c, 0xc34: 0x000c, 0xc35: 0x000c,\n\t0xc36: 0x000c, 0xc37: 0x000c, 0xc38: 0x000c, 0xc39: 0x000c, 0xc3a: 0x000c, 0xc3b: 0x000c,\n\t0xc3c: 0x000c, 0xc3d: 0x000c, 0xc3e: 0x000c,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x000c, 0xc41: 0x000c, 0xc42: 0x000c, 0xc43: 0x000c, 0xc44: 0x000c,\n\t0xc46: 0x000c, 0xc47: 0x000c,\n\t0xc4d: 0x000c, 0xc4e: 0x000c, 0xc4f: 0x000c, 0xc50: 0x000c, 0xc51: 0x000c,\n\t0xc52: 0x000c, 0xc53: 0x000c, 0xc54: 0x000c, 0xc55: 0x000c, 0xc56: 0x000c, 0xc57: 0x000c,\n\t0xc59: 0x000c, 0xc5a: 0x000c, 0xc5b: 0x000c, 0xc5c: 0x000c, 0xc5d: 0x000c,\n\t0xc5e: 0x000c, 0xc5f: 0x000c, 0xc60: 0x000c, 0xc61: 0x000c, 0xc62: 0x000c, 0xc63: 0x000c,\n\t0xc64: 0x000c, 0xc65: 0x000c, 0xc66: 0x000c, 0xc67: 0x000c, 0xc68: 0x000c, 0xc69: 0x000c,\n\t0xc6a: 0x000c, 0xc6b: 0x000c, 0xc6c: 0x000c, 0xc6d: 0x000c, 0xc6e: 0x000c, 0xc6f: 0x000c,\n\t0xc70: 0x000c, 0xc71: 0x000c, 0xc72: 0x000c, 0xc73: 0x000c, 0xc74: 0x000c, 0xc75: 0x000c,\n\t0xc76: 0x000c, 0xc77: 0x000c, 0xc78: 0x000c, 0xc79: 0x000c, 0xc7a: 0x000c, 0xc7b: 0x000c,\n\t0xc7c: 0x000c,\n\t// Block 0x32, offset 0xc80\n\t0xc86: 0x000c,\n\t// Block 0x33, offset 0xcc0\n\t0xced: 0x000c, 0xcee: 0x000c, 0xcef: 0x000c,\n\t0xcf0: 0x000c, 0xcf2: 0x000c, 0xcf3: 0x000c, 0xcf4: 0x000c, 0xcf5: 0x000c,\n\t0xcf6: 0x000c, 0xcf7: 0x000c, 0xcf9: 0x000c, 0xcfa: 0x000c,\n\t0xcfd: 0x000c, 0xcfe: 0x000c,\n\t// Block 0x34, offset 0xd00\n\t0xd18: 0x000c, 0xd19: 0x000c,\n\t0xd1e: 0x000c, 0xd1f: 0x000c, 0xd20: 0x000c,\n\t0xd31: 0x000c, 0xd32: 0x000c, 0xd33: 0x000c, 0xd34: 0x000c,\n\t// Block 0x35, offset 0xd40\n\t0xd42: 0x000c, 0xd45: 0x000c,\n\t0xd46: 0x000c,\n\t0xd4d: 0x000c,\n\t0xd5d: 0x000c,\n\t// Block 0x36, offset 0xd80\n\t0xd9d: 0x000c,\n\t0xd9e: 0x000c, 0xd9f: 0x000c,\n\t// Block 0x37, offset 0xdc0\n\t0xdd0: 0x000a, 0xdd1: 0x000a,\n\t0xdd2: 0x000a, 0xdd3: 0x000a, 0xdd4: 0x000a, 0xdd5: 0x000a, 0xdd6: 0x000a, 0xdd7: 0x000a,\n\t0xdd8: 0x000a, 0xdd9: 0x000a,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0x000a,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x0009,\n\t0xe5b: 0x007a, 0xe5c: 0x006a,\n\t// Block 0x3a, offset 0xe80\n\t0xe92: 0x000c, 0xe93: 0x000c, 0xe94: 0x000c,\n\t0xeb2: 0x000c, 0xeb3: 0x000c, 0xeb4: 0x000c,\n\t// Block 0x3b, offset 0xec0\n\t0xed2: 0x000c, 0xed3: 0x000c,\n\t0xef2: 0x000c, 0xef3: 0x000c,\n\t// Block 0x3c, offset 0xf00\n\t0xf34: 0x000c, 0xf35: 0x000c,\n\t0xf37: 0x000c, 0xf38: 0x000c, 0xf39: 0x000c, 0xf3a: 0x000c, 0xf3b: 0x000c,\n\t0xf3c: 0x000c, 0xf3d: 0x000c,\n\t// Block 0x3d, offset 0xf40\n\t0xf46: 0x000c, 0xf49: 0x000c, 0xf4a: 0x000c, 0xf4b: 0x000c,\n\t0xf4c: 0x000c, 0xf4d: 0x000c, 0xf4e: 0x000c, 0xf4f: 0x000c, 0xf50: 0x000c, 0xf51: 0x000c,\n\t0xf52: 0x000c, 0xf53: 0x000c,\n\t0xf5b: 0x0004, 0xf5d: 0x000c,\n\t0xf70: 0x000a, 0xf71: 0x000a, 0xf72: 0x000a, 0xf73: 0x000a, 0xf74: 0x000a, 0xf75: 0x000a,\n\t0xf76: 0x000a, 0xf77: 0x000a, 0xf78: 0x000a, 0xf79: 0x000a,\n\t// Block 0x3e, offset 0xf80\n\t0xf80: 0x000a, 0xf81: 0x000a, 0xf82: 0x000a, 0xf83: 0x000a, 0xf84: 0x000a, 0xf85: 0x000a,\n\t0xf86: 0x000a, 0xf87: 0x000a, 0xf88: 0x000a, 0xf89: 0x000a, 0xf8a: 0x000a, 0xf8b: 0x000c,\n\t0xf8c: 0x000c, 0xf8d: 0x000c, 0xf8e: 0x000b,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc5: 0x000c,\n\t0xfc6: 0x000c,\n\t0xfe9: 0x000c,\n\t// Block 0x40, offset 0x1000\n\t0x1020: 0x000c, 0x1021: 0x000c, 0x1022: 0x000c,\n\t0x1027: 0x000c, 0x1028: 0x000c,\n\t0x1032: 0x000c,\n\t0x1039: 0x000c, 0x103a: 0x000c, 0x103b: 0x000c,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x000a, 0x1044: 0x000a, 0x1045: 0x000a,\n\t// Block 0x42, offset 0x1080\n\t0x109e: 0x000a, 0x109f: 0x000a, 0x10a0: 0x000a, 0x10a1: 0x000a, 0x10a2: 0x000a, 0x10a3: 0x000a,\n\t0x10a4: 0x000a, 0x10a5: 0x000a, 0x10a6: 0x000a, 0x10a7: 0x000a, 0x10a8: 0x000a, 0x10a9: 0x000a,\n\t0x10aa: 0x000a, 0x10ab: 0x000a, 0x10ac: 0x000a, 0x10ad: 0x000a, 0x10ae: 0x000a, 0x10af: 0x000a,\n\t0x10b0: 0x000a, 0x10b1: 0x000a, 0x10b2: 0x000a, 0x10b3: 0x000a, 0x10b4: 0x000a, 0x10b5: 0x000a,\n\t0x10b6: 0x000a, 0x10b7: 0x000a, 0x10b8: 0x000a, 0x10b9: 0x000a, 0x10ba: 0x000a, 0x10bb: 0x000a,\n\t0x10bc: 0x000a, 0x10bd: 0x000a, 0x10be: 0x000a, 0x10bf: 0x000a,\n\t// Block 0x43, offset 0x10c0\n\t0x10d7: 0x000c,\n\t0x10d8: 0x000c, 0x10db: 0x000c,\n\t// Block 0x44, offset 0x1100\n\t0x1116: 0x000c,\n\t0x1118: 0x000c, 0x1119: 0x000c, 0x111a: 0x000c, 0x111b: 0x000c, 0x111c: 0x000c, 0x111d: 0x000c,\n\t0x111e: 0x000c, 0x1120: 0x000c, 0x1122: 0x000c,\n\t0x1125: 0x000c, 0x1126: 0x000c, 0x1127: 0x000c, 0x1128: 0x000c, 0x1129: 0x000c,\n\t0x112a: 0x000c, 0x112b: 0x000c, 0x112c: 0x000c,\n\t0x1133: 0x000c, 0x1134: 0x000c, 0x1135: 0x000c,\n\t0x1136: 0x000c, 0x1137: 0x000c, 0x1138: 0x000c, 0x1139: 0x000c, 0x113a: 0x000c, 0x113b: 0x000c,\n\t0x113c: 0x000c, 0x113f: 0x000c,\n\t// Block 0x45, offset 0x1140\n\t0x1170: 0x000c, 0x1171: 0x000c, 0x1172: 0x000c, 0x1173: 0x000c, 0x1174: 0x000c, 0x1175: 0x000c,\n\t0x1176: 0x000c, 0x1177: 0x000c, 0x1178: 0x000c, 0x1179: 0x000c, 0x117a: 0x000c, 0x117b: 0x000c,\n\t0x117c: 0x000c, 0x117d: 0x000c, 0x117e: 0x000c,\n\t// Block 0x46, offset 0x1180\n\t0x1180: 0x000c, 0x1181: 0x000c, 0x1182: 0x000c, 0x1183: 0x000c,\n\t0x11b4: 0x000c,\n\t0x11b6: 0x000c, 0x11b7: 0x000c, 0x11b8: 0x000c, 0x11b9: 0x000c, 0x11ba: 0x000c,\n\t0x11bc: 0x000c,\n\t// Block 0x47, offset 0x11c0\n\t0x11c2: 0x000c,\n\t0x11eb: 0x000c, 0x11ec: 0x000c, 0x11ed: 0x000c, 0x11ee: 0x000c, 0x11ef: 0x000c,\n\t0x11f0: 0x000c, 0x11f1: 0x000c, 0x11f2: 0x000c, 0x11f3: 0x000c,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0x000c, 0x1201: 0x000c,\n\t0x1222: 0x000c, 0x1223: 0x000c,\n\t0x1224: 0x000c, 0x1225: 0x000c, 0x1228: 0x000c, 0x1229: 0x000c,\n\t0x122b: 0x000c, 0x122c: 0x000c, 0x122d: 0x000c,\n\t// Block 0x49, offset 0x1240\n\t0x1266: 0x000c, 0x1268: 0x000c, 0x1269: 0x000c,\n\t0x126d: 0x000c, 0x126f: 0x000c,\n\t0x1270: 0x000c, 0x1271: 0x000c,\n\t// Block 0x4a, offset 0x1280\n\t0x12ac: 0x000c, 0x12ad: 0x000c, 0x12ae: 0x000c, 0x12af: 0x000c,\n\t0x12b0: 0x000c, 0x12b1: 0x000c, 0x12b2: 0x000c, 0x12b3: 0x000c,\n\t0x12b6: 0x000c, 0x12b7: 0x000c,\n\t// Block 0x4b, offset 0x12c0\n\t0x12d0: 0x000c, 0x12d1: 0x000c,\n\t0x12d2: 0x000c, 0x12d4: 0x000c, 0x12d5: 0x000c, 0x12d6: 0x000c, 0x12d7: 0x000c,\n\t0x12d8: 0x000c, 0x12d9: 0x000c, 0x12da: 0x000c, 0x12db: 0x000c, 0x12dc: 0x000c, 0x12dd: 0x000c,\n\t0x12de: 0x000c, 0x12df: 0x000c, 0x12e0: 0x000c, 0x12e2: 0x000c, 0x12e3: 0x000c,\n\t0x12e4: 0x000c, 0x12e5: 0x000c, 0x12e6: 0x000c, 0x12e7: 0x000c, 0x12e8: 0x000c,\n\t0x12ed: 0x000c,\n\t0x12f4: 0x000c,\n\t0x12f8: 0x000c, 0x12f9: 0x000c,\n\t// Block 0x4c, offset 0x1300\n\t0x1300: 0x000c, 0x1301: 0x000c, 0x1302: 0x000c, 0x1303: 0x000c, 0x1304: 0x000c, 0x1305: 0x000c,\n\t0x1306: 0x000c, 0x1307: 0x000c, 0x1308: 0x000c, 0x1309: 0x000c, 0x130a: 0x000c, 0x130b: 0x000c,\n\t0x130c: 0x000c, 0x130d: 0x000c, 0x130e: 0x000c, 0x130f: 0x000c, 0x1310: 0x000c, 0x1311: 0x000c,\n\t0x1312: 0x000c, 0x1313: 0x000c, 0x1314: 0x000c, 0x1315: 0x000c, 0x1316: 0x000c, 0x1317: 0x000c,\n\t0x1318: 0x000c, 0x1319: 0x000c, 0x131a: 0x000c, 0x131b: 0x000c, 0x131c: 0x000c, 0x131d: 0x000c,\n\t0x131e: 0x000c, 0x131f: 0x000c, 0x1320: 0x000c, 0x1321: 0x000c, 0x1322: 0x000c, 0x1323: 0x000c,\n\t0x1324: 0x000c, 0x1325: 0x000c, 0x1326: 0x000c, 0x1327: 0x000c, 0x1328: 0x000c, 0x1329: 0x000c,\n\t0x132a: 0x000c, 0x132b: 0x000c, 0x132c: 0x000c, 0x132d: 0x000c, 0x132e: 0x000c, 0x132f: 0x000c,\n\t0x1330: 0x000c, 0x1331: 0x000c, 0x1332: 0x000c, 0x1333: 0x000c, 0x1334: 0x000c, 0x1335: 0x000c,\n\t0x1336: 0x000c, 0x1337: 0x000c, 0x1338: 0x000c, 0x1339: 0x000c, 0x133b: 0x000c,\n\t0x133c: 0x000c, 0x133d: 0x000c, 0x133e: 0x000c, 0x133f: 0x000c,\n\t// Block 0x4d, offset 0x1340\n\t0x137d: 0x000a, 0x137f: 0x000a,\n\t// Block 0x4e, offset 0x1380\n\t0x1380: 0x000a, 0x1381: 0x000a,\n\t0x138d: 0x000a, 0x138e: 0x000a, 0x138f: 0x000a,\n\t0x139d: 0x000a,\n\t0x139e: 0x000a, 0x139f: 0x000a,\n\t0x13ad: 0x000a, 0x13ae: 0x000a, 0x13af: 0x000a,\n\t0x13bd: 0x000a, 0x13be: 0x000a,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c0: 0x0009, 0x13c1: 0x0009, 0x13c2: 0x0009, 0x13c3: 0x0009, 0x13c4: 0x0009, 0x13c5: 0x0009,\n\t0x13c6: 0x0009, 0x13c7: 0x0009, 0x13c8: 0x0009, 0x13c9: 0x0009, 0x13ca: 0x0009, 0x13cb: 0x000b,\n\t0x13cc: 0x000b, 0x13cd: 0x000b, 0x13cf: 0x0001, 0x13d0: 0x000a, 0x13d1: 0x000a,\n\t0x13d2: 0x000a, 0x13d3: 0x000a, 0x13d4: 0x000a, 0x13d5: 0x000a, 0x13d6: 0x000a, 0x13d7: 0x000a,\n\t0x13d8: 0x000a, 0x13d9: 0x000a, 0x13da: 0x000a, 0x13db: 0x000a, 0x13dc: 0x000a, 0x13dd: 0x000a,\n\t0x13de: 0x000a, 0x13df: 0x000a, 0x13e0: 0x000a, 0x13e1: 0x000a, 0x13e2: 0x000a, 0x13e3: 0x000a,\n\t0x13e4: 0x000a, 0x13e5: 0x000a, 0x13e6: 0x000a, 0x13e7: 0x000a, 0x13e8: 0x0009, 0x13e9: 0x0007,\n\t0x13ea: 0x000e, 0x13eb: 0x000e, 0x13ec: 0x000e, 0x13ed: 0x000e, 0x13ee: 0x000e, 0x13ef: 0x0006,\n\t0x13f0: 0x0004, 0x13f1: 0x0004, 0x13f2: 0x0004, 0x13f3: 0x0004, 0x13f4: 0x0004, 0x13f5: 0x000a,\n\t0x13f6: 0x000a, 0x13f7: 0x000a, 0x13f8: 0x000a, 0x13f9: 0x000a, 0x13fa: 0x000a, 0x13fb: 0x000a,\n\t0x13fc: 0x000a, 0x13fd: 0x000a, 0x13fe: 0x000a, 0x13ff: 0x000a,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x000a, 0x1401: 0x000a, 0x1402: 0x000a, 0x1403: 0x000a, 0x1404: 0x0006, 0x1405: 0x009a,\n\t0x1406: 0x008a, 0x1407: 0x000a, 0x1408: 0x000a, 0x1409: 0x000a, 0x140a: 0x000a, 0x140b: 0x000a,\n\t0x140c: 0x000a, 0x140d: 0x000a, 0x140e: 0x000a, 0x140f: 0x000a, 0x1410: 0x000a, 0x1411: 0x000a,\n\t0x1412: 0x000a, 0x1413: 0x000a, 0x1414: 0x000a, 0x1415: 0x000a, 0x1416: 0x000a, 0x1417: 0x000a,\n\t0x1418: 0x000a, 0x1419: 0x000a, 0x141a: 0x000a, 0x141b: 0x000a, 0x141c: 0x000a, 0x141d: 0x000a,\n\t0x141e: 0x000a, 0x141f: 0x0009, 0x1420: 0x000b, 0x1421: 0x000b, 0x1422: 0x000b, 0x1423: 0x000b,\n\t0x1424: 0x000b, 0x1425: 0x000b, 0x1426: 0x000e, 0x1427: 0x000e, 0x1428: 0x000e, 0x1429: 0x000e,\n\t0x142a: 0x000b, 0x142b: 0x000b, 0x142c: 0x000b, 0x142d: 0x000b, 0x142e: 0x000b, 0x142f: 0x000b,\n\t0x1430: 0x0002, 0x1434: 0x0002, 0x1435: 0x0002,\n\t0x1436: 0x0002, 0x1437: 0x0002, 0x1438: 0x0002, 0x1439: 0x0002, 0x143a: 0x0003, 0x143b: 0x0003,\n\t0x143c: 0x000a, 0x143d: 0x009a, 0x143e: 0x008a,\n\t// Block 0x51, offset 0x1440\n\t0x1440: 0x0002, 0x1441: 0x0002, 0x1442: 0x0002, 0x1443: 0x0002, 0x1444: 0x0002, 0x1445: 0x0002,\n\t0x1446: 0x0002, 0x1447: 0x0002, 0x1448: 0x0002, 0x1449: 0x0002, 0x144a: 0x0003, 0x144b: 0x0003,\n\t0x144c: 0x000a, 0x144d: 0x009a, 0x144e: 0x008a,\n\t0x1460: 0x0004, 0x1461: 0x0004, 0x1462: 0x0004, 0x1463: 0x0004,\n\t0x1464: 0x0004, 0x1465: 0x0004, 0x1466: 0x0004, 0x1467: 0x0004, 0x1468: 0x0004, 0x1469: 0x0004,\n\t0x146a: 0x0004, 0x146b: 0x0004, 0x146c: 0x0004, 0x146d: 0x0004, 0x146e: 0x0004, 0x146f: 0x0004,\n\t0x1470: 0x0004, 0x1471: 0x0004, 0x1472: 0x0004, 0x1473: 0x0004, 0x1474: 0x0004, 0x1475: 0x0004,\n\t0x1476: 0x0004, 0x1477: 0x0004, 0x1478: 0x0004, 0x1479: 0x0004, 0x147a: 0x0004, 0x147b: 0x0004,\n\t0x147c: 0x0004, 0x147d: 0x0004, 0x147e: 0x0004, 0x147f: 0x0004,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x0004, 0x1481: 0x0004, 0x1482: 0x0004, 0x1483: 0x0004, 0x1484: 0x0004, 0x1485: 0x0004,\n\t0x1486: 0x0004, 0x1487: 0x0004, 0x1488: 0x0004, 0x1489: 0x0004, 0x148a: 0x0004, 0x148b: 0x0004,\n\t0x148c: 0x0004, 0x148d: 0x0004, 0x148e: 0x0004, 0x148f: 0x0004, 0x1490: 0x000c, 0x1491: 0x000c,\n\t0x1492: 0x000c, 0x1493: 0x000c, 0x1494: 0x000c, 0x1495: 0x000c, 0x1496: 0x000c, 0x1497: 0x000c,\n\t0x1498: 0x000c, 0x1499: 0x000c, 0x149a: 0x000c, 0x149b: 0x000c, 0x149c: 0x000c, 0x149d: 0x000c,\n\t0x149e: 0x000c, 0x149f: 0x000c, 0x14a0: 0x000c, 0x14a1: 0x000c, 0x14a2: 0x000c, 0x14a3: 0x000c,\n\t0x14a4: 0x000c, 0x14a5: 0x000c, 0x14a6: 0x000c, 0x14a7: 0x000c, 0x14a8: 0x000c, 0x14a9: 0x000c,\n\t0x14aa: 0x000c, 0x14ab: 0x000c, 0x14ac: 0x000c, 0x14ad: 0x000c, 0x14ae: 0x000c, 0x14af: 0x000c,\n\t0x14b0: 0x000c,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x000a, 0x14c1: 0x000a, 0x14c3: 0x000a, 0x14c4: 0x000a, 0x14c5: 0x000a,\n\t0x14c6: 0x000a, 0x14c8: 0x000a, 0x14c9: 0x000a,\n\t0x14d4: 0x000a, 0x14d6: 0x000a, 0x14d7: 0x000a,\n\t0x14d8: 0x000a,\n\t0x14de: 0x000a, 0x14df: 0x000a, 0x14e0: 0x000a, 0x14e1: 0x000a, 0x14e2: 0x000a, 0x14e3: 0x000a,\n\t0x14e5: 0x000a, 0x14e7: 0x000a, 0x14e9: 0x000a,\n\t0x14ee: 0x0004,\n\t0x14fa: 0x000a, 0x14fb: 0x000a,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0x000a, 0x1501: 0x000a, 0x1502: 0x000a, 0x1503: 0x000a, 0x1504: 0x000a,\n\t0x150a: 0x000a, 0x150b: 0x000a,\n\t0x150c: 0x000a, 0x150d: 0x000a, 0x1510: 0x000a, 0x1511: 0x000a,\n\t0x1512: 0x000a, 0x1513: 0x000a, 0x1514: 0x000a, 0x1515: 0x000a, 0x1516: 0x000a, 0x1517: 0x000a,\n\t0x1518: 0x000a, 0x1519: 0x000a, 0x151a: 0x000a, 0x151b: 0x000a, 0x151c: 0x000a, 0x151d: 0x000a,\n\t0x151e: 0x000a, 0x151f: 0x000a,\n\t// Block 0x55, offset 0x1540\n\t0x1549: 0x000a, 0x154a: 0x000a, 0x154b: 0x000a,\n\t0x1550: 0x000a, 0x1551: 0x000a,\n\t0x1552: 0x000a, 0x1553: 0x000a, 0x1554: 0x000a, 0x1555: 0x000a, 0x1556: 0x000a, 0x1557: 0x000a,\n\t0x1558: 0x000a, 0x1559: 0x000a, 0x155a: 0x000a, 0x155b: 0x000a, 0x155c: 0x000a, 0x155d: 0x000a,\n\t0x155e: 0x000a, 0x155f: 0x000a, 0x1560: 0x000a, 0x1561: 0x000a, 0x1562: 0x000a, 0x1563: 0x000a,\n\t0x1564: 0x000a, 0x1565: 0x000a, 0x1566: 0x000a, 0x1567: 0x000a, 0x1568: 0x000a, 0x1569: 0x000a,\n\t0x156a: 0x000a, 0x156b: 0x000a, 0x156c: 0x000a, 0x156d: 0x000a, 0x156e: 0x000a, 0x156f: 0x000a,\n\t0x1570: 0x000a, 0x1571: 0x000a, 0x1572: 0x000a, 0x1573: 0x000a, 0x1574: 0x000a, 0x1575: 0x000a,\n\t0x1576: 0x000a, 0x1577: 0x000a, 0x1578: 0x000a, 0x1579: 0x000a, 0x157a: 0x000a, 0x157b: 0x000a,\n\t0x157c: 0x000a, 0x157d: 0x000a, 0x157e: 0x000a, 0x157f: 0x000a,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x000a, 0x1581: 0x000a, 0x1582: 0x000a, 0x1583: 0x000a, 0x1584: 0x000a, 0x1585: 0x000a,\n\t0x1586: 0x000a, 0x1587: 0x000a, 0x1588: 0x000a, 0x1589: 0x000a, 0x158a: 0x000a, 0x158b: 0x000a,\n\t0x158c: 0x000a, 0x158d: 0x000a, 0x158e: 0x000a, 0x158f: 0x000a, 0x1590: 0x000a, 0x1591: 0x000a,\n\t0x1592: 0x000a, 0x1593: 0x000a, 0x1594: 0x000a, 0x1595: 0x000a, 0x1596: 0x000a, 0x1597: 0x000a,\n\t0x1598: 0x000a, 0x1599: 0x000a, 0x159a: 0x000a, 0x159b: 0x000a, 0x159c: 0x000a, 0x159d: 0x000a,\n\t0x159e: 0x000a, 0x159f: 0x000a, 0x15a0: 0x000a, 0x15a1: 0x000a, 0x15a2: 0x000a, 0x15a3: 0x000a,\n\t0x15a4: 0x000a, 0x15a5: 0x000a, 0x15a6: 0x000a, 0x15a7: 0x000a, 0x15a8: 0x000a, 0x15a9: 0x000a,\n\t0x15aa: 0x000a, 0x15ab: 0x000a, 0x15ac: 0x000a, 0x15ad: 0x000a, 0x15ae: 0x000a, 0x15af: 0x000a,\n\t0x15b0: 0x000a, 0x15b1: 0x000a, 0x15b2: 0x000a, 0x15b3: 0x000a, 0x15b4: 0x000a, 0x15b5: 0x000a,\n\t0x15b6: 0x000a, 0x15b7: 0x000a, 0x15b8: 0x000a, 0x15b9: 0x000a, 0x15ba: 0x000a, 0x15bb: 0x000a,\n\t0x15bc: 0x000a, 0x15bd: 0x000a, 0x15be: 0x000a, 0x15bf: 0x000a,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0x000a, 0x15c1: 0x000a, 0x15c2: 0x000a, 0x15c3: 0x000a, 0x15c4: 0x000a, 0x15c5: 0x000a,\n\t0x15c6: 0x000a, 0x15c7: 0x000a, 0x15c8: 0x000a, 0x15c9: 0x000a, 0x15ca: 0x000a, 0x15cb: 0x000a,\n\t0x15cc: 0x000a, 0x15cd: 0x000a, 0x15ce: 0x000a, 0x15cf: 0x000a, 0x15d0: 0x000a, 0x15d1: 0x000a,\n\t0x15d2: 0x0003, 0x15d3: 0x0004, 0x15d4: 0x000a, 0x15d5: 0x000a, 0x15d6: 0x000a, 0x15d7: 0x000a,\n\t0x15d8: 0x000a, 0x15d9: 0x000a, 0x15da: 0x000a, 0x15db: 0x000a, 0x15dc: 0x000a, 0x15dd: 0x000a,\n\t0x15de: 0x000a, 0x15df: 0x000a, 0x15e0: 0x000a, 0x15e1: 0x000a, 0x15e2: 0x000a, 0x15e3: 0x000a,\n\t0x15e4: 0x000a, 0x15e5: 0x000a, 0x15e6: 0x000a, 0x15e7: 0x000a, 0x15e8: 0x000a, 0x15e9: 0x000a,\n\t0x15ea: 0x000a, 0x15eb: 0x000a, 0x15ec: 0x000a, 0x15ed: 0x000a, 0x15ee: 0x000a, 0x15ef: 0x000a,\n\t0x15f0: 0x000a, 0x15f1: 0x000a, 0x15f2: 0x000a, 0x15f3: 0x000a, 0x15f4: 0x000a, 0x15f5: 0x000a,\n\t0x15f6: 0x000a, 0x15f7: 0x000a, 0x15f8: 0x000a, 0x15f9: 0x000a, 0x15fa: 0x000a, 0x15fb: 0x000a,\n\t0x15fc: 0x000a, 0x15fd: 0x000a, 0x15fe: 0x000a, 0x15ff: 0x000a,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0x000a, 0x1601: 0x000a, 0x1602: 0x000a, 0x1603: 0x000a, 0x1604: 0x000a, 0x1605: 0x000a,\n\t0x1606: 0x000a, 0x1607: 0x000a, 0x1608: 0x003a, 0x1609: 0x002a, 0x160a: 0x003a, 0x160b: 0x002a,\n\t0x160c: 0x000a, 0x160d: 0x000a, 0x160e: 0x000a, 0x160f: 0x000a, 0x1610: 0x000a, 0x1611: 0x000a,\n\t0x1612: 0x000a, 0x1613: 0x000a, 0x1614: 0x000a, 0x1615: 0x000a, 0x1616: 0x000a, 0x1617: 0x000a,\n\t0x1618: 0x000a, 0x1619: 0x000a, 0x161a: 0x000a, 0x161b: 0x000a, 0x161c: 0x000a, 0x161d: 0x000a,\n\t0x161e: 0x000a, 0x161f: 0x000a, 0x1620: 0x000a, 0x1621: 0x000a, 0x1622: 0x000a, 0x1623: 0x000a,\n\t0x1624: 0x000a, 0x1625: 0x000a, 0x1626: 0x000a, 0x1627: 0x000a, 0x1628: 0x000a, 0x1629: 0x009a,\n\t0x162a: 0x008a, 0x162b: 0x000a, 0x162c: 0x000a, 0x162d: 0x000a, 0x162e: 0x000a, 0x162f: 0x000a,\n\t0x1630: 0x000a, 0x1631: 0x000a, 0x1632: 0x000a, 0x1633: 0x000a, 0x1634: 0x000a, 0x1635: 0x000a,\n\t// Block 0x59, offset 0x1640\n\t0x167b: 0x000a,\n\t0x167c: 0x000a, 0x167d: 0x000a, 0x167e: 0x000a, 0x167f: 0x000a,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x000a, 0x1681: 0x000a, 0x1682: 0x000a, 0x1683: 0x000a, 0x1684: 0x000a, 0x1685: 0x000a,\n\t0x1686: 0x000a, 0x1687: 0x000a, 0x1688: 0x000a, 0x1689: 0x000a, 0x168a: 0x000a, 0x168b: 0x000a,\n\t0x168c: 0x000a, 0x168d: 0x000a, 0x168e: 0x000a, 0x168f: 0x000a, 0x1690: 0x000a, 0x1691: 0x000a,\n\t0x1692: 0x000a, 0x1693: 0x000a, 0x1694: 0x000a, 0x1696: 0x000a, 0x1697: 0x000a,\n\t0x1698: 0x000a, 0x1699: 0x000a, 0x169a: 0x000a, 0x169b: 0x000a, 0x169c: 0x000a, 0x169d: 0x000a,\n\t0x169e: 0x000a, 0x169f: 0x000a, 0x16a0: 0x000a, 0x16a1: 0x000a, 0x16a2: 0x000a, 0x16a3: 0x000a,\n\t0x16a4: 0x000a, 0x16a5: 0x000a, 0x16a6: 0x000a, 0x16a7: 0x000a, 0x16a8: 0x000a, 0x16a9: 0x000a,\n\t0x16aa: 0x000a, 0x16ab: 0x000a, 0x16ac: 0x000a, 0x16ad: 0x000a, 0x16ae: 0x000a, 0x16af: 0x000a,\n\t0x16b0: 0x000a, 0x16b1: 0x000a, 0x16b2: 0x000a, 0x16b3: 0x000a, 0x16b4: 0x000a, 0x16b5: 0x000a,\n\t0x16b6: 0x000a, 0x16b7: 0x000a, 0x16b8: 0x000a, 0x16b9: 0x000a, 0x16ba: 0x000a, 0x16bb: 0x000a,\n\t0x16bc: 0x000a, 0x16bd: 0x000a, 0x16be: 0x000a, 0x16bf: 0x000a,\n\t// Block 0x5b, offset 0x16c0\n\t0x16c0: 0x000a, 0x16c1: 0x000a, 0x16c2: 0x000a, 0x16c3: 0x000a, 0x16c4: 0x000a, 0x16c5: 0x000a,\n\t0x16c6: 0x000a, 0x16c7: 0x000a, 0x16c8: 0x000a, 0x16c9: 0x000a, 0x16ca: 0x000a, 0x16cb: 0x000a,\n\t0x16cc: 0x000a, 0x16cd: 0x000a, 0x16ce: 0x000a, 0x16cf: 0x000a, 0x16d0: 0x000a, 0x16d1: 0x000a,\n\t0x16d2: 0x000a, 0x16d3: 0x000a, 0x16d4: 0x000a, 0x16d5: 0x000a, 0x16d6: 0x000a, 0x16d7: 0x000a,\n\t0x16d8: 0x000a, 0x16d9: 0x000a, 0x16da: 0x000a, 0x16db: 0x000a, 0x16dc: 0x000a, 0x16dd: 0x000a,\n\t0x16de: 0x000a, 0x16df: 0x000a, 0x16e0: 0x000a, 0x16e1: 0x000a, 0x16e2: 0x000a, 0x16e3: 0x000a,\n\t0x16e4: 0x000a, 0x16e5: 0x000a, 0x16e6: 0x000a,\n\t// Block 0x5c, offset 0x1700\n\t0x1700: 0x000a, 0x1701: 0x000a, 0x1702: 0x000a, 0x1703: 0x000a, 0x1704: 0x000a, 0x1705: 0x000a,\n\t0x1706: 0x000a, 0x1707: 0x000a, 0x1708: 0x000a, 0x1709: 0x000a, 0x170a: 0x000a,\n\t0x1720: 0x000a, 0x1721: 0x000a, 0x1722: 0x000a, 0x1723: 0x000a,\n\t0x1724: 0x000a, 0x1725: 0x000a, 0x1726: 0x000a, 0x1727: 0x000a, 0x1728: 0x000a, 0x1729: 0x000a,\n\t0x172a: 0x000a, 0x172b: 0x000a, 0x172c: 0x000a, 0x172d: 0x000a, 0x172e: 0x000a, 0x172f: 0x000a,\n\t0x1730: 0x000a, 0x1731: 0x000a, 0x1732: 0x000a, 0x1733: 0x000a, 0x1734: 0x000a, 0x1735: 0x000a,\n\t0x1736: 0x000a, 0x1737: 0x000a, 0x1738: 0x000a, 0x1739: 0x000a, 0x173a: 0x000a, 0x173b: 0x000a,\n\t0x173c: 0x000a, 0x173d: 0x000a, 0x173e: 0x000a, 0x173f: 0x000a,\n\t// Block 0x5d, offset 0x1740\n\t0x1740: 0x000a, 0x1741: 0x000a, 0x1742: 0x000a, 0x1743: 0x000a, 0x1744: 0x000a, 0x1745: 0x000a,\n\t0x1746: 0x000a, 0x1747: 0x000a, 0x1748: 0x0002, 0x1749: 0x0002, 0x174a: 0x0002, 0x174b: 0x0002,\n\t0x174c: 0x0002, 0x174d: 0x0002, 0x174e: 0x0002, 0x174f: 0x0002, 0x1750: 0x0002, 0x1751: 0x0002,\n\t0x1752: 0x0002, 0x1753: 0x0002, 0x1754: 0x0002, 0x1755: 0x0002, 0x1756: 0x0002, 0x1757: 0x0002,\n\t0x1758: 0x0002, 0x1759: 0x0002, 0x175a: 0x0002, 0x175b: 0x0002,\n\t// Block 0x5e, offset 0x1780\n\t0x17aa: 0x000a, 0x17ab: 0x000a, 0x17ac: 0x000a, 0x17ad: 0x000a, 0x17ae: 0x000a, 0x17af: 0x000a,\n\t0x17b0: 0x000a, 0x17b1: 0x000a, 0x17b2: 0x000a, 0x17b3: 0x000a, 0x17b4: 0x000a, 0x17b5: 0x000a,\n\t0x17b6: 0x000a, 0x17b7: 0x000a, 0x17b8: 0x000a, 0x17b9: 0x000a, 0x17ba: 0x000a, 0x17bb: 0x000a,\n\t0x17bc: 0x000a, 0x17bd: 0x000a, 0x17be: 0x000a, 0x17bf: 0x000a,\n\t// Block 0x5f, offset 0x17c0\n\t0x17c0: 0x000a, 0x17c1: 0x000a, 0x17c2: 0x000a, 0x17c3: 0x000a, 0x17c4: 0x000a, 0x17c5: 0x000a,\n\t0x17c6: 0x000a, 0x17c7: 0x000a, 0x17c8: 0x000a, 0x17c9: 0x000a, 0x17ca: 0x000a, 0x17cb: 0x000a,\n\t0x17cc: 0x000a, 0x17cd: 0x000a, 0x17ce: 0x000a, 0x17cf: 0x000a, 0x17d0: 0x000a, 0x17d1: 0x000a,\n\t0x17d2: 0x000a, 0x17d3: 0x000a, 0x17d4: 0x000a, 0x17d5: 0x000a, 0x17d6: 0x000a, 0x17d7: 0x000a,\n\t0x17d8: 0x000a, 0x17d9: 0x000a, 0x17da: 0x000a, 0x17db: 0x000a, 0x17dc: 0x000a, 0x17dd: 0x000a,\n\t0x17de: 0x000a, 0x17df: 0x000a, 0x17e0: 0x000a, 0x17e1: 0x000a, 0x17e2: 0x000a, 0x17e3: 0x000a,\n\t0x17e4: 0x000a, 0x17e5: 0x000a, 0x17e6: 0x000a, 0x17e7: 0x000a, 0x17e8: 0x000a, 0x17e9: 0x000a,\n\t0x17ea: 0x000a, 0x17eb: 0x000a, 0x17ed: 0x000a, 0x17ee: 0x000a, 0x17ef: 0x000a,\n\t0x17f0: 0x000a, 0x17f1: 0x000a, 0x17f2: 0x000a, 0x17f3: 0x000a, 0x17f4: 0x000a, 0x17f5: 0x000a,\n\t0x17f6: 0x000a, 0x17f7: 0x000a, 0x17f8: 0x000a, 0x17f9: 0x000a, 0x17fa: 0x000a, 0x17fb: 0x000a,\n\t0x17fc: 0x000a, 0x17fd: 0x000a, 0x17fe: 0x000a, 0x17ff: 0x000a,\n\t// Block 0x60, offset 0x1800\n\t0x1800: 0x000a, 0x1801: 0x000a, 0x1802: 0x000a, 0x1803: 0x000a, 0x1804: 0x000a, 0x1805: 0x000a,\n\t0x1806: 0x000a, 0x1807: 0x000a, 0x1808: 0x000a, 0x1809: 0x000a, 0x180a: 0x000a, 0x180b: 0x000a,\n\t0x180c: 0x000a, 0x180d: 0x000a, 0x180e: 0x000a, 0x180f: 0x000a, 0x1810: 0x000a, 0x1811: 0x000a,\n\t0x1812: 0x000a, 0x1813: 0x000a, 0x1814: 0x000a, 0x1815: 0x000a, 0x1816: 0x000a, 0x1817: 0x000a,\n\t0x1818: 0x000a, 0x1819: 0x000a, 0x181a: 0x000a, 0x181b: 0x000a, 0x181c: 0x000a, 0x181d: 0x000a,\n\t0x181e: 0x000a, 0x181f: 0x000a, 0x1820: 0x000a, 0x1821: 0x000a, 0x1822: 0x000a, 0x1823: 0x000a,\n\t0x1824: 0x000a, 0x1825: 0x000a, 0x1826: 0x000a, 0x1827: 0x000a, 0x1828: 0x003a, 0x1829: 0x002a,\n\t0x182a: 0x003a, 0x182b: 0x002a, 0x182c: 0x003a, 0x182d: 0x002a, 0x182e: 0x003a, 0x182f: 0x002a,\n\t0x1830: 0x003a, 0x1831: 0x002a, 0x1832: 0x003a, 0x1833: 0x002a, 0x1834: 0x003a, 0x1835: 0x002a,\n\t0x1836: 0x000a, 0x1837: 0x000a, 0x1838: 0x000a, 0x1839: 0x000a, 0x183a: 0x000a, 0x183b: 0x000a,\n\t0x183c: 0x000a, 0x183d: 0x000a, 0x183e: 0x000a, 0x183f: 0x000a,\n\t// Block 0x61, offset 0x1840\n\t0x1840: 0x000a, 0x1841: 0x000a, 0x1842: 0x000a, 0x1843: 0x000a, 0x1844: 0x000a, 0x1845: 0x009a,\n\t0x1846: 0x008a, 0x1847: 0x000a, 0x1848: 0x000a, 0x1849: 0x000a, 0x184a: 0x000a, 0x184b: 0x000a,\n\t0x184c: 0x000a, 0x184d: 0x000a, 0x184e: 0x000a, 0x184f: 0x000a, 0x1850: 0x000a, 0x1851: 0x000a,\n\t0x1852: 0x000a, 0x1853: 0x000a, 0x1854: 0x000a, 0x1855: 0x000a, 0x1856: 0x000a, 0x1857: 0x000a,\n\t0x1858: 0x000a, 0x1859: 0x000a, 0x185a: 0x000a, 0x185b: 0x000a, 0x185c: 0x000a, 0x185d: 0x000a,\n\t0x185e: 0x000a, 0x185f: 0x000a, 0x1860: 0x000a, 0x1861: 0x000a, 0x1862: 0x000a, 0x1863: 0x000a,\n\t0x1864: 0x000a, 0x1865: 0x000a, 0x1866: 0x003a, 0x1867: 0x002a, 0x1868: 0x003a, 0x1869: 0x002a,\n\t0x186a: 0x003a, 0x186b: 0x002a, 0x186c: 0x003a, 0x186d: 0x002a, 0x186e: 0x003a, 0x186f: 0x002a,\n\t0x1870: 0x000a, 0x1871: 0x000a, 0x1872: 0x000a, 0x1873: 0x000a, 0x1874: 0x000a, 0x1875: 0x000a,\n\t0x1876: 0x000a, 0x1877: 0x000a, 0x1878: 0x000a, 0x1879: 0x000a, 0x187a: 0x000a, 0x187b: 0x000a,\n\t0x187c: 0x000a, 0x187d: 0x000a, 0x187e: 0x000a, 0x187f: 0x000a,\n\t// Block 0x62, offset 0x1880\n\t0x1880: 0x000a, 0x1881: 0x000a, 0x1882: 0x000a, 0x1883: 0x007a, 0x1884: 0x006a, 0x1885: 0x009a,\n\t0x1886: 0x008a, 0x1887: 0x00ba, 0x1888: 0x00aa, 0x1889: 0x009a, 0x188a: 0x008a, 0x188b: 0x007a,\n\t0x188c: 0x006a, 0x188d: 0x00da, 0x188e: 0x002a, 0x188f: 0x003a, 0x1890: 0x00ca, 0x1891: 0x009a,\n\t0x1892: 0x008a, 0x1893: 0x007a, 0x1894: 0x006a, 0x1895: 0x009a, 0x1896: 0x008a, 0x1897: 0x00ba,\n\t0x1898: 0x00aa, 0x1899: 0x000a, 0x189a: 0x000a, 0x189b: 0x000a, 0x189c: 0x000a, 0x189d: 0x000a,\n\t0x189e: 0x000a, 0x189f: 0x000a, 0x18a0: 0x000a, 0x18a1: 0x000a, 0x18a2: 0x000a, 0x18a3: 0x000a,\n\t0x18a4: 0x000a, 0x18a5: 0x000a, 0x18a6: 0x000a, 0x18a7: 0x000a, 0x18a8: 0x000a, 0x18a9: 0x000a,\n\t0x18aa: 0x000a, 0x18ab: 0x000a, 0x18ac: 0x000a, 0x18ad: 0x000a, 0x18ae: 0x000a, 0x18af: 0x000a,\n\t0x18b0: 0x000a, 0x18b1: 0x000a, 0x18b2: 0x000a, 0x18b3: 0x000a, 0x18b4: 0x000a, 0x18b5: 0x000a,\n\t0x18b6: 0x000a, 0x18b7: 0x000a, 0x18b8: 0x000a, 0x18b9: 0x000a, 0x18ba: 0x000a, 0x18bb: 0x000a,\n\t0x18bc: 0x000a, 0x18bd: 0x000a, 0x18be: 0x000a, 0x18bf: 0x000a,\n\t// Block 0x63, offset 0x18c0\n\t0x18c0: 0x000a, 0x18c1: 0x000a, 0x18c2: 0x000a, 0x18c3: 0x000a, 0x18c4: 0x000a, 0x18c5: 0x000a,\n\t0x18c6: 0x000a, 0x18c7: 0x000a, 0x18c8: 0x000a, 0x18c9: 0x000a, 0x18ca: 0x000a, 0x18cb: 0x000a,\n\t0x18cc: 0x000a, 0x18cd: 0x000a, 0x18ce: 0x000a, 0x18cf: 0x000a, 0x18d0: 0x000a, 0x18d1: 0x000a,\n\t0x18d2: 0x000a, 0x18d3: 0x000a, 0x18d4: 0x000a, 0x18d5: 0x000a, 0x18d6: 0x000a, 0x18d7: 0x000a,\n\t0x18d8: 0x003a, 0x18d9: 0x002a, 0x18da: 0x003a, 0x18db: 0x002a, 0x18dc: 0x000a, 0x18dd: 0x000a,\n\t0x18de: 0x000a, 0x18df: 0x000a, 0x18e0: 0x000a, 0x18e1: 0x000a, 0x18e2: 0x000a, 0x18e3: 0x000a,\n\t0x18e4: 0x000a, 0x18e5: 0x000a, 0x18e6: 0x000a, 0x18e7: 0x000a, 0x18e8: 0x000a, 0x18e9: 0x000a,\n\t0x18ea: 0x000a, 0x18eb: 0x000a, 0x18ec: 0x000a, 0x18ed: 0x000a, 0x18ee: 0x000a, 0x18ef: 0x000a,\n\t0x18f0: 0x000a, 0x18f1: 0x000a, 0x18f2: 0x000a, 0x18f3: 0x000a, 0x18f4: 0x000a, 0x18f5: 0x000a,\n\t0x18f6: 0x000a, 0x18f7: 0x000a, 0x18f8: 0x000a, 0x18f9: 0x000a, 0x18fa: 0x000a, 0x18fb: 0x000a,\n\t0x18fc: 0x003a, 0x18fd: 0x002a, 0x18fe: 0x000a, 0x18ff: 0x000a,\n\t// Block 0x64, offset 0x1900\n\t0x1900: 0x000a, 0x1901: 0x000a, 0x1902: 0x000a, 0x1903: 0x000a, 0x1904: 0x000a, 0x1905: 0x000a,\n\t0x1906: 0x000a, 0x1907: 0x000a, 0x1908: 0x000a, 0x1909: 0x000a, 0x190a: 0x000a, 0x190b: 0x000a,\n\t0x190c: 0x000a, 0x190d: 0x000a, 0x190e: 0x000a, 0x190f: 0x000a, 0x1910: 0x000a, 0x1911: 0x000a,\n\t0x1912: 0x000a, 0x1913: 0x000a, 0x1914: 0x000a, 0x1915: 0x000a, 0x1916: 0x000a, 0x1917: 0x000a,\n\t0x1918: 0x000a, 0x1919: 0x000a, 0x191a: 0x000a, 0x191b: 0x000a, 0x191c: 0x000a, 0x191d: 0x000a,\n\t0x191e: 0x000a, 0x191f: 0x000a, 0x1920: 0x000a, 0x1921: 0x000a, 0x1922: 0x000a, 0x1923: 0x000a,\n\t0x1924: 0x000a, 0x1925: 0x000a, 0x1926: 0x000a, 0x1927: 0x000a, 0x1928: 0x000a, 0x1929: 0x000a,\n\t0x192a: 0x000a, 0x192b: 0x000a, 0x192c: 0x000a, 0x192d: 0x000a, 0x192e: 0x000a, 0x192f: 0x000a,\n\t0x1930: 0x000a, 0x1931: 0x000a, 0x1932: 0x000a, 0x1933: 0x000a,\n\t0x1936: 0x000a, 0x1937: 0x000a, 0x1938: 0x000a, 0x1939: 0x000a, 0x193a: 0x000a, 0x193b: 0x000a,\n\t0x193c: 0x000a, 0x193d: 0x000a, 0x193e: 0x000a, 0x193f: 0x000a,\n\t// Block 0x65, offset 0x1940\n\t0x1940: 0x000a, 0x1941: 0x000a, 0x1942: 0x000a, 0x1943: 0x000a, 0x1944: 0x000a, 0x1945: 0x000a,\n\t0x1946: 0x000a, 0x1947: 0x000a, 0x1948: 0x000a, 0x1949: 0x000a, 0x194a: 0x000a, 0x194b: 0x000a,\n\t0x194c: 0x000a, 0x194d: 0x000a, 0x194e: 0x000a, 0x194f: 0x000a, 0x1950: 0x000a, 0x1951: 0x000a,\n\t0x1952: 0x000a, 0x1953: 0x000a, 0x1954: 0x000a, 0x1955: 0x000a,\n\t0x1958: 0x000a, 0x1959: 0x000a, 0x195a: 0x000a, 0x195b: 0x000a, 0x195c: 0x000a, 0x195d: 0x000a,\n\t0x195e: 0x000a, 0x195f: 0x000a, 0x1960: 0x000a, 0x1961: 0x000a, 0x1962: 0x000a, 0x1963: 0x000a,\n\t0x1964: 0x000a, 0x1965: 0x000a, 0x1966: 0x000a, 0x1967: 0x000a, 0x1968: 0x000a, 0x1969: 0x000a,\n\t0x196a: 0x000a, 0x196b: 0x000a, 0x196c: 0x000a, 0x196d: 0x000a, 0x196e: 0x000a, 0x196f: 0x000a,\n\t0x1970: 0x000a, 0x1971: 0x000a, 0x1972: 0x000a, 0x1973: 0x000a, 0x1974: 0x000a, 0x1975: 0x000a,\n\t0x1976: 0x000a, 0x1977: 0x000a, 0x1978: 0x000a, 0x1979: 0x000a,\n\t0x197d: 0x000a, 0x197e: 0x000a, 0x197f: 0x000a,\n\t// Block 0x66, offset 0x1980\n\t0x1980: 0x000a, 0x1981: 0x000a, 0x1982: 0x000a, 0x1983: 0x000a, 0x1984: 0x000a, 0x1985: 0x000a,\n\t0x1986: 0x000a, 0x1987: 0x000a, 0x1988: 0x000a, 0x198a: 0x000a, 0x198b: 0x000a,\n\t0x198c: 0x000a, 0x198d: 0x000a, 0x198e: 0x000a, 0x198f: 0x000a, 0x1990: 0x000a, 0x1991: 0x000a,\n\t0x1992: 0x000a,\n\t0x19ac: 0x000a, 0x19ad: 0x000a, 0x19ae: 0x000a, 0x19af: 0x000a,\n\t// Block 0x67, offset 0x19c0\n\t0x19e5: 0x000a, 0x19e6: 0x000a, 0x19e7: 0x000a, 0x19e8: 0x000a, 0x19e9: 0x000a,\n\t0x19ea: 0x000a, 0x19ef: 0x000c,\n\t0x19f0: 0x000c, 0x19f1: 0x000c,\n\t0x19f9: 0x000a, 0x19fa: 0x000a, 0x19fb: 0x000a,\n\t0x19fc: 0x000a, 0x19fd: 0x000a, 0x19fe: 0x000a, 0x19ff: 0x000a,\n\t// Block 0x68, offset 0x1a00\n\t0x1a3f: 0x000c,\n\t// Block 0x69, offset 0x1a40\n\t0x1a60: 0x000c, 0x1a61: 0x000c, 0x1a62: 0x000c, 0x1a63: 0x000c,\n\t0x1a64: 0x000c, 0x1a65: 0x000c, 0x1a66: 0x000c, 0x1a67: 0x000c, 0x1a68: 0x000c, 0x1a69: 0x000c,\n\t0x1a6a: 0x000c, 0x1a6b: 0x000c, 0x1a6c: 0x000c, 0x1a6d: 0x000c, 0x1a6e: 0x000c, 0x1a6f: 0x000c,\n\t0x1a70: 0x000c, 0x1a71: 0x000c, 0x1a72: 0x000c, 0x1a73: 0x000c, 0x1a74: 0x000c, 0x1a75: 0x000c,\n\t0x1a76: 0x000c, 0x1a77: 0x000c, 0x1a78: 0x000c, 0x1a79: 0x000c, 0x1a7a: 0x000c, 0x1a7b: 0x000c,\n\t0x1a7c: 0x000c, 0x1a7d: 0x000c, 0x1a7e: 0x000c, 0x1a7f: 0x000c,\n\t// Block 0x6a, offset 0x1a80\n\t0x1a80: 0x000a, 0x1a81: 0x000a, 0x1a82: 0x000a, 0x1a83: 0x000a, 0x1a84: 0x000a, 0x1a85: 0x000a,\n\t0x1a86: 0x000a, 0x1a87: 0x000a, 0x1a88: 0x000a, 0x1a89: 0x000a, 0x1a8a: 0x000a, 0x1a8b: 0x000a,\n\t0x1a8c: 0x000a, 0x1a8d: 0x000a, 0x1a8e: 0x000a, 0x1a8f: 0x000a, 0x1a90: 0x000a, 0x1a91: 0x000a,\n\t0x1a92: 0x000a, 0x1a93: 0x000a, 0x1a94: 0x000a, 0x1a95: 0x000a, 0x1a96: 0x000a, 0x1a97: 0x000a,\n\t0x1a98: 0x000a, 0x1a99: 0x000a, 0x1a9a: 0x000a, 0x1a9b: 0x000a, 0x1a9c: 0x000a, 0x1a9d: 0x000a,\n\t0x1a9e: 0x000a, 0x1a9f: 0x000a, 0x1aa0: 0x000a, 0x1aa1: 0x000a, 0x1aa2: 0x003a, 0x1aa3: 0x002a,\n\t0x1aa4: 0x003a, 0x1aa5: 0x002a, 0x1aa6: 0x003a, 0x1aa7: 0x002a, 0x1aa8: 0x003a, 0x1aa9: 0x002a,\n\t0x1aaa: 0x000a, 0x1aab: 0x000a, 0x1aac: 0x000a, 0x1aad: 0x000a, 0x1aae: 0x000a, 0x1aaf: 0x000a,\n\t0x1ab0: 0x000a, 0x1ab1: 0x000a, 0x1ab2: 0x000a, 0x1ab3: 0x000a, 0x1ab4: 0x000a, 0x1ab5: 0x000a,\n\t0x1ab6: 0x000a, 0x1ab7: 0x000a, 0x1ab8: 0x000a, 0x1ab9: 0x000a, 0x1aba: 0x000a, 0x1abb: 0x000a,\n\t0x1abc: 0x000a, 0x1abd: 0x000a, 0x1abe: 0x000a, 0x1abf: 0x000a,\n\t// Block 0x6b, offset 0x1ac0\n\t0x1ac0: 0x000a, 0x1ac1: 0x000a, 0x1ac2: 0x000a, 0x1ac3: 0x000a, 0x1ac4: 0x000a, 0x1ac5: 0x000a,\n\t0x1ac6: 0x000a, 0x1ac7: 0x000a, 0x1ac8: 0x000a, 0x1ac9: 0x000a,\n\t// Block 0x6c, offset 0x1b00\n\t0x1b00: 0x000a, 0x1b01: 0x000a, 0x1b02: 0x000a, 0x1b03: 0x000a, 0x1b04: 0x000a, 0x1b05: 0x000a,\n\t0x1b06: 0x000a, 0x1b07: 0x000a, 0x1b08: 0x000a, 0x1b09: 0x000a, 0x1b0a: 0x000a, 0x1b0b: 0x000a,\n\t0x1b0c: 0x000a, 0x1b0d: 0x000a, 0x1b0e: 0x000a, 0x1b0f: 0x000a, 0x1b10: 0x000a, 0x1b11: 0x000a,\n\t0x1b12: 0x000a, 0x1b13: 0x000a, 0x1b14: 0x000a, 0x1b15: 0x000a, 0x1b16: 0x000a, 0x1b17: 0x000a,\n\t0x1b18: 0x000a, 0x1b19: 0x000a, 0x1b1b: 0x000a, 0x1b1c: 0x000a, 0x1b1d: 0x000a,\n\t0x1b1e: 0x000a, 0x1b1f: 0x000a, 0x1b20: 0x000a, 0x1b21: 0x000a, 0x1b22: 0x000a, 0x1b23: 0x000a,\n\t0x1b24: 0x000a, 0x1b25: 0x000a, 0x1b26: 0x000a, 0x1b27: 0x000a, 0x1b28: 0x000a, 0x1b29: 0x000a,\n\t0x1b2a: 0x000a, 0x1b2b: 0x000a, 0x1b2c: 0x000a, 0x1b2d: 0x000a, 0x1b2e: 0x000a, 0x1b2f: 0x000a,\n\t0x1b30: 0x000a, 0x1b31: 0x000a, 0x1b32: 0x000a, 0x1b33: 0x000a, 0x1b34: 0x000a, 0x1b35: 0x000a,\n\t0x1b36: 0x000a, 0x1b37: 0x000a, 0x1b38: 0x000a, 0x1b39: 0x000a, 0x1b3a: 0x000a, 0x1b3b: 0x000a,\n\t0x1b3c: 0x000a, 0x1b3d: 0x000a, 0x1b3e: 0x000a, 0x1b3f: 0x000a,\n\t// Block 0x6d, offset 0x1b40\n\t0x1b40: 0x000a, 0x1b41: 0x000a, 0x1b42: 0x000a, 0x1b43: 0x000a, 0x1b44: 0x000a, 0x1b45: 0x000a,\n\t0x1b46: 0x000a, 0x1b47: 0x000a, 0x1b48: 0x000a, 0x1b49: 0x000a, 0x1b4a: 0x000a, 0x1b4b: 0x000a,\n\t0x1b4c: 0x000a, 0x1b4d: 0x000a, 0x1b4e: 0x000a, 0x1b4f: 0x000a, 0x1b50: 0x000a, 0x1b51: 0x000a,\n\t0x1b52: 0x000a, 0x1b53: 0x000a, 0x1b54: 0x000a, 0x1b55: 0x000a, 0x1b56: 0x000a, 0x1b57: 0x000a,\n\t0x1b58: 0x000a, 0x1b59: 0x000a, 0x1b5a: 0x000a, 0x1b5b: 0x000a, 0x1b5c: 0x000a, 0x1b5d: 0x000a,\n\t0x1b5e: 0x000a, 0x1b5f: 0x000a, 0x1b60: 0x000a, 0x1b61: 0x000a, 0x1b62: 0x000a, 0x1b63: 0x000a,\n\t0x1b64: 0x000a, 0x1b65: 0x000a, 0x1b66: 0x000a, 0x1b67: 0x000a, 0x1b68: 0x000a, 0x1b69: 0x000a,\n\t0x1b6a: 0x000a, 0x1b6b: 0x000a, 0x1b6c: 0x000a, 0x1b6d: 0x000a, 0x1b6e: 0x000a, 0x1b6f: 0x000a,\n\t0x1b70: 0x000a, 0x1b71: 0x000a, 0x1b72: 0x000a, 0x1b73: 0x000a,\n\t// Block 0x6e, offset 0x1b80\n\t0x1b80: 0x000a, 0x1b81: 0x000a, 0x1b82: 0x000a, 0x1b83: 0x000a, 0x1b84: 0x000a, 0x1b85: 0x000a,\n\t0x1b86: 0x000a, 0x1b87: 0x000a, 0x1b88: 0x000a, 0x1b89: 0x000a, 0x1b8a: 0x000a, 0x1b8b: 0x000a,\n\t0x1b8c: 0x000a, 0x1b8d: 0x000a, 0x1b8e: 0x000a, 0x1b8f: 0x000a, 0x1b90: 0x000a, 0x1b91: 0x000a,\n\t0x1b92: 0x000a, 0x1b93: 0x000a, 0x1b94: 0x000a, 0x1b95: 0x000a,\n\t0x1bb0: 0x000a, 0x1bb1: 0x000a, 0x1bb2: 0x000a, 0x1bb3: 0x000a, 0x1bb4: 0x000a, 0x1bb5: 0x000a,\n\t0x1bb6: 0x000a, 0x1bb7: 0x000a, 0x1bb8: 0x000a, 0x1bb9: 0x000a, 0x1bba: 0x000a, 0x1bbb: 0x000a,\n\t// Block 0x6f, offset 0x1bc0\n\t0x1bc0: 0x0009, 0x1bc1: 0x000a, 0x1bc2: 0x000a, 0x1bc3: 0x000a, 0x1bc4: 0x000a,\n\t0x1bc8: 0x003a, 0x1bc9: 0x002a, 0x1bca: 0x003a, 0x1bcb: 0x002a,\n\t0x1bcc: 0x003a, 0x1bcd: 0x002a, 0x1bce: 0x003a, 0x1bcf: 0x002a, 0x1bd0: 0x003a, 0x1bd1: 0x002a,\n\t0x1bd2: 0x000a, 0x1bd3: 0x000a, 0x1bd4: 0x003a, 0x1bd5: 0x002a, 0x1bd6: 0x003a, 0x1bd7: 0x002a,\n\t0x1bd8: 0x003a, 0x1bd9: 0x002a, 0x1bda: 0x003a, 0x1bdb: 0x002a, 0x1bdc: 0x000a, 0x1bdd: 0x000a,\n\t0x1bde: 0x000a, 0x1bdf: 0x000a, 0x1be0: 0x000a,\n\t0x1bea: 0x000c, 0x1beb: 0x000c, 0x1bec: 0x000c, 0x1bed: 0x000c,\n\t0x1bf0: 0x000a,\n\t0x1bf6: 0x000a, 0x1bf7: 0x000a,\n\t0x1bfd: 0x000a, 0x1bfe: 0x000a, 0x1bff: 0x000a,\n\t// Block 0x70, offset 0x1c00\n\t0x1c19: 0x000c, 0x1c1a: 0x000c, 0x1c1b: 0x000a, 0x1c1c: 0x000a,\n\t0x1c20: 0x000a,\n\t// Block 0x71, offset 0x1c40\n\t0x1c7b: 0x000a,\n\t// Block 0x72, offset 0x1c80\n\t0x1c80: 0x000a, 0x1c81: 0x000a, 0x1c82: 0x000a, 0x1c83: 0x000a, 0x1c84: 0x000a, 0x1c85: 0x000a,\n\t0x1c86: 0x000a, 0x1c87: 0x000a, 0x1c88: 0x000a, 0x1c89: 0x000a, 0x1c8a: 0x000a, 0x1c8b: 0x000a,\n\t0x1c8c: 0x000a, 0x1c8d: 0x000a, 0x1c8e: 0x000a, 0x1c8f: 0x000a, 0x1c90: 0x000a, 0x1c91: 0x000a,\n\t0x1c92: 0x000a, 0x1c93: 0x000a, 0x1c94: 0x000a, 0x1c95: 0x000a, 0x1c96: 0x000a, 0x1c97: 0x000a,\n\t0x1c98: 0x000a, 0x1c99: 0x000a, 0x1c9a: 0x000a, 0x1c9b: 0x000a, 0x1c9c: 0x000a, 0x1c9d: 0x000a,\n\t0x1c9e: 0x000a, 0x1c9f: 0x000a, 0x1ca0: 0x000a, 0x1ca1: 0x000a, 0x1ca2: 0x000a, 0x1ca3: 0x000a,\n\t// Block 0x73, offset 0x1cc0\n\t0x1cdd: 0x000a,\n\t0x1cde: 0x000a,\n\t// Block 0x74, offset 0x1d00\n\t0x1d10: 0x000a, 0x1d11: 0x000a,\n\t0x1d12: 0x000a, 0x1d13: 0x000a, 0x1d14: 0x000a, 0x1d15: 0x000a, 0x1d16: 0x000a, 0x1d17: 0x000a,\n\t0x1d18: 0x000a, 0x1d19: 0x000a, 0x1d1a: 0x000a, 0x1d1b: 0x000a, 0x1d1c: 0x000a, 0x1d1d: 0x000a,\n\t0x1d1e: 0x000a, 0x1d1f: 0x000a,\n\t0x1d3c: 0x000a, 0x1d3d: 0x000a, 0x1d3e: 0x000a,\n\t// Block 0x75, offset 0x1d40\n\t0x1d71: 0x000a, 0x1d72: 0x000a, 0x1d73: 0x000a, 0x1d74: 0x000a, 0x1d75: 0x000a,\n\t0x1d76: 0x000a, 0x1d77: 0x000a, 0x1d78: 0x000a, 0x1d79: 0x000a, 0x1d7a: 0x000a, 0x1d7b: 0x000a,\n\t0x1d7c: 0x000a, 0x1d7d: 0x000a, 0x1d7e: 0x000a, 0x1d7f: 0x000a,\n\t// Block 0x76, offset 0x1d80\n\t0x1d8c: 0x000a, 0x1d8d: 0x000a, 0x1d8e: 0x000a, 0x1d8f: 0x000a,\n\t// Block 0x77, offset 0x1dc0\n\t0x1df7: 0x000a, 0x1df8: 0x000a, 0x1df9: 0x000a, 0x1dfa: 0x000a,\n\t// Block 0x78, offset 0x1e00\n\t0x1e1e: 0x000a, 0x1e1f: 0x000a,\n\t0x1e3f: 0x000a,\n\t// Block 0x79, offset 0x1e40\n\t0x1e50: 0x000a, 0x1e51: 0x000a,\n\t0x1e52: 0x000a, 0x1e53: 0x000a, 0x1e54: 0x000a, 0x1e55: 0x000a, 0x1e56: 0x000a, 0x1e57: 0x000a,\n\t0x1e58: 0x000a, 0x1e59: 0x000a, 0x1e5a: 0x000a, 0x1e5b: 0x000a, 0x1e5c: 0x000a, 0x1e5d: 0x000a,\n\t0x1e5e: 0x000a, 0x1e5f: 0x000a, 0x1e60: 0x000a, 0x1e61: 0x000a, 0x1e62: 0x000a, 0x1e63: 0x000a,\n\t0x1e64: 0x000a, 0x1e65: 0x000a, 0x1e66: 0x000a, 0x1e67: 0x000a, 0x1e68: 0x000a, 0x1e69: 0x000a,\n\t0x1e6a: 0x000a, 0x1e6b: 0x000a, 0x1e6c: 0x000a, 0x1e6d: 0x000a, 0x1e6e: 0x000a, 0x1e6f: 0x000a,\n\t0x1e70: 0x000a, 0x1e71: 0x000a, 0x1e72: 0x000a, 0x1e73: 0x000a, 0x1e74: 0x000a, 0x1e75: 0x000a,\n\t0x1e76: 0x000a, 0x1e77: 0x000a, 0x1e78: 0x000a, 0x1e79: 0x000a, 0x1e7a: 0x000a, 0x1e7b: 0x000a,\n\t0x1e7c: 0x000a, 0x1e7d: 0x000a, 0x1e7e: 0x000a, 0x1e7f: 0x000a,\n\t// Block 0x7a, offset 0x1e80\n\t0x1e80: 0x000a, 0x1e81: 0x000a, 0x1e82: 0x000a, 0x1e83: 0x000a, 0x1e84: 0x000a, 0x1e85: 0x000a,\n\t0x1e86: 0x000a,\n\t// Block 0x7b, offset 0x1ec0\n\t0x1ecd: 0x000a, 0x1ece: 0x000a, 0x1ecf: 0x000a,\n\t// Block 0x7c, offset 0x1f00\n\t0x1f2f: 0x000c,\n\t0x1f30: 0x000c, 0x1f31: 0x000c, 0x1f32: 0x000c, 0x1f33: 0x000a, 0x1f34: 0x000c, 0x1f35: 0x000c,\n\t0x1f36: 0x000c, 0x1f37: 0x000c, 0x1f38: 0x000c, 0x1f39: 0x000c, 0x1f3a: 0x000c, 0x1f3b: 0x000c,\n\t0x1f3c: 0x000c, 0x1f3d: 0x000c, 0x1f3e: 0x000a, 0x1f3f: 0x000a,\n\t// Block 0x7d, offset 0x1f40\n\t0x1f5e: 0x000c, 0x1f5f: 0x000c,\n\t// Block 0x7e, offset 0x1f80\n\t0x1fb0: 0x000c, 0x1fb1: 0x000c,\n\t// Block 0x7f, offset 0x1fc0\n\t0x1fc0: 0x000a, 0x1fc1: 0x000a, 0x1fc2: 0x000a, 0x1fc3: 0x000a, 0x1fc4: 0x000a, 0x1fc5: 0x000a,\n\t0x1fc6: 0x000a, 0x1fc7: 0x000a, 0x1fc8: 0x000a, 0x1fc9: 0x000a, 0x1fca: 0x000a, 0x1fcb: 0x000a,\n\t0x1fcc: 0x000a, 0x1fcd: 0x000a, 0x1fce: 0x000a, 0x1fcf: 0x000a, 0x1fd0: 0x000a, 0x1fd1: 0x000a,\n\t0x1fd2: 0x000a, 0x1fd3: 0x000a, 0x1fd4: 0x000a, 0x1fd5: 0x000a, 0x1fd6: 0x000a, 0x1fd7: 0x000a,\n\t0x1fd8: 0x000a, 0x1fd9: 0x000a, 0x1fda: 0x000a, 0x1fdb: 0x000a, 0x1fdc: 0x000a, 0x1fdd: 0x000a,\n\t0x1fde: 0x000a, 0x1fdf: 0x000a, 0x1fe0: 0x000a, 0x1fe1: 0x000a,\n\t// Block 0x80, offset 0x2000\n\t0x2008: 0x000a,\n\t// Block 0x81, offset 0x2040\n\t0x2042: 0x000c,\n\t0x2046: 0x000c, 0x204b: 0x000c,\n\t0x2065: 0x000c, 0x2066: 0x000c, 0x2068: 0x000a, 0x2069: 0x000a,\n\t0x206a: 0x000a, 0x206b: 0x000a,\n\t0x2078: 0x0004, 0x2079: 0x0004,\n\t// Block 0x82, offset 0x2080\n\t0x20b4: 0x000a, 0x20b5: 0x000a,\n\t0x20b6: 0x000a, 0x20b7: 0x000a,\n\t// Block 0x83, offset 0x20c0\n\t0x20c4: 0x000c, 0x20c5: 0x000c,\n\t0x20e0: 0x000c, 0x20e1: 0x000c, 0x20e2: 0x000c, 0x20e3: 0x000c,\n\t0x20e4: 0x000c, 0x20e5: 0x000c, 0x20e6: 0x000c, 0x20e7: 0x000c, 0x20e8: 0x000c, 0x20e9: 0x000c,\n\t0x20ea: 0x000c, 0x20eb: 0x000c, 0x20ec: 0x000c, 0x20ed: 0x000c, 0x20ee: 0x000c, 0x20ef: 0x000c,\n\t0x20f0: 0x000c, 0x20f1: 0x000c,\n\t// Block 0x84, offset 0x2100\n\t0x2126: 0x000c, 0x2127: 0x000c, 0x2128: 0x000c, 0x2129: 0x000c,\n\t0x212a: 0x000c, 0x212b: 0x000c, 0x212c: 0x000c, 0x212d: 0x000c,\n\t// Block 0x85, offset 0x2140\n\t0x2147: 0x000c, 0x2148: 0x000c, 0x2149: 0x000c, 0x214a: 0x000c, 0x214b: 0x000c,\n\t0x214c: 0x000c, 0x214d: 0x000c, 0x214e: 0x000c, 0x214f: 0x000c, 0x2150: 0x000c, 0x2151: 0x000c,\n\t// Block 0x86, offset 0x2180\n\t0x2180: 0x000c, 0x2181: 0x000c, 0x2182: 0x000c,\n\t0x21b3: 0x000c,\n\t0x21b6: 0x000c, 0x21b7: 0x000c, 0x21b8: 0x000c, 0x21b9: 0x000c,\n\t0x21bc: 0x000c,\n\t// Block 0x87, offset 0x21c0\n\t0x21e5: 0x000c,\n\t// Block 0x88, offset 0x2200\n\t0x2229: 0x000c,\n\t0x222a: 0x000c, 0x222b: 0x000c, 0x222c: 0x000c, 0x222d: 0x000c, 0x222e: 0x000c,\n\t0x2231: 0x000c, 0x2232: 0x000c, 0x2235: 0x000c,\n\t0x2236: 0x000c,\n\t// Block 0x89, offset 0x2240\n\t0x2243: 0x000c,\n\t0x224c: 0x000c,\n\t0x227c: 0x000c,\n\t// Block 0x8a, offset 0x2280\n\t0x22b0: 0x000c, 0x22b2: 0x000c, 0x22b3: 0x000c, 0x22b4: 0x000c,\n\t0x22b7: 0x000c, 0x22b8: 0x000c,\n\t0x22be: 0x000c, 0x22bf: 0x000c,\n\t// Block 0x8b, offset 0x22c0\n\t0x22c1: 0x000c,\n\t0x22ec: 0x000c, 0x22ed: 0x000c,\n\t0x22f6: 0x000c,\n\t// Block 0x8c, offset 0x2300\n\t0x2325: 0x000c, 0x2328: 0x000c,\n\t0x232d: 0x000c,\n\t// Block 0x8d, offset 0x2340\n\t0x235d: 0x0001,\n\t0x235e: 0x000c, 0x235f: 0x0001, 0x2360: 0x0001, 0x2361: 0x0001, 0x2362: 0x0001, 0x2363: 0x0001,\n\t0x2364: 0x0001, 0x2365: 0x0001, 0x2366: 0x0001, 0x2367: 0x0001, 0x2368: 0x0001, 0x2369: 0x0003,\n\t0x236a: 0x0001, 0x236b: 0x0001, 0x236c: 0x0001, 0x236d: 0x0001, 0x236e: 0x0001, 0x236f: 0x0001,\n\t0x2370: 0x0001, 0x2371: 0x0001, 0x2372: 0x0001, 0x2373: 0x0001, 0x2374: 0x0001, 0x2375: 0x0001,\n\t0x2376: 0x0001, 0x2377: 0x0001, 0x2378: 0x0001, 0x2379: 0x0001, 0x237a: 0x0001, 0x237b: 0x0001,\n\t0x237c: 0x0001, 0x237d: 0x0001, 0x237e: 0x0001, 0x237f: 0x0001,\n\t// Block 0x8e, offset 0x2380\n\t0x2380: 0x0001, 0x2381: 0x0001, 0x2382: 0x0001, 0x2383: 0x0001, 0x2384: 0x0001, 0x2385: 0x0001,\n\t0x2386: 0x0001, 0x2387: 0x0001, 0x2388: 0x0001, 0x2389: 0x0001, 0x238a: 0x0001, 0x238b: 0x0001,\n\t0x238c: 0x0001, 0x238d: 0x0001, 0x238e: 0x0001, 0x238f: 0x0001, 0x2390: 0x000d, 0x2391: 0x000d,\n\t0x2392: 0x000d, 0x2393: 0x000d, 0x2394: 0x000d, 0x2395: 0x000d, 0x2396: 0x000d, 0x2397: 0x000d,\n\t0x2398: 0x000d, 0x2399: 0x000d, 0x239a: 0x000d, 0x239b: 0x000d, 0x239c: 0x000d, 0x239d: 0x000d,\n\t0x239e: 0x000d, 0x239f: 0x000d, 0x23a0: 0x000d, 0x23a1: 0x000d, 0x23a2: 0x000d, 0x23a3: 0x000d,\n\t0x23a4: 0x000d, 0x23a5: 0x000d, 0x23a6: 0x000d, 0x23a7: 0x000d, 0x23a8: 0x000d, 0x23a9: 0x000d,\n\t0x23aa: 0x000d, 0x23ab: 0x000d, 0x23ac: 0x000d, 0x23ad: 0x000d, 0x23ae: 0x000d, 0x23af: 0x000d,\n\t0x23b0: 0x000d, 0x23b1: 0x000d, 0x23b2: 0x000d, 0x23b3: 0x000d, 0x23b4: 0x000d, 0x23b5: 0x000d,\n\t0x23b6: 0x000d, 0x23b7: 0x000d, 0x23b8: 0x000d, 0x23b9: 0x000d, 0x23ba: 0x000d, 0x23bb: 0x000d,\n\t0x23bc: 0x000d, 0x23bd: 0x000d, 0x23be: 0x000d, 0x23bf: 0x000d,\n\t// Block 0x8f, offset 0x23c0\n\t0x23c0: 0x000d, 0x23c1: 0x000d, 0x23c2: 0x000d, 0x23c3: 0x000d, 0x23c4: 0x000d, 0x23c5: 0x000d,\n\t0x23c6: 0x000d, 0x23c7: 0x000d, 0x23c8: 0x000d, 0x23c9: 0x000d, 0x23ca: 0x000d, 0x23cb: 0x000d,\n\t0x23cc: 0x000d, 0x23cd: 0x000d, 0x23ce: 0x000d, 0x23cf: 0x000d, 0x23d0: 0x000d, 0x23d1: 0x000d,\n\t0x23d2: 0x000d, 0x23d3: 0x000d, 0x23d4: 0x000d, 0x23d5: 0x000d, 0x23d6: 0x000d, 0x23d7: 0x000d,\n\t0x23d8: 0x000d, 0x23d9: 0x000d, 0x23da: 0x000d, 0x23db: 0x000d, 0x23dc: 0x000d, 0x23dd: 0x000d,\n\t0x23de: 0x000d, 0x23df: 0x000d, 0x23e0: 0x000d, 0x23e1: 0x000d, 0x23e2: 0x000d, 0x23e3: 0x000d,\n\t0x23e4: 0x000d, 0x23e5: 0x000d, 0x23e6: 0x000d, 0x23e7: 0x000d, 0x23e8: 0x000d, 0x23e9: 0x000d,\n\t0x23ea: 0x000d, 0x23eb: 0x000d, 0x23ec: 0x000d, 0x23ed: 0x000d, 0x23ee: 0x000d, 0x23ef: 0x000d,\n\t0x23f0: 0x000d, 0x23f1: 0x000d, 0x23f2: 0x000d, 0x23f3: 0x000d, 0x23f4: 0x000d, 0x23f5: 0x000d,\n\t0x23f6: 0x000d, 0x23f7: 0x000d, 0x23f8: 0x000d, 0x23f9: 0x000d, 0x23fa: 0x000d, 0x23fb: 0x000d,\n\t0x23fc: 0x000d, 0x23fd: 0x000d, 0x23fe: 0x000a, 0x23ff: 0x000a,\n\t// Block 0x90, offset 0x2400\n\t0x2400: 0x000d, 0x2401: 0x000d, 0x2402: 0x000d, 0x2403: 0x000d, 0x2404: 0x000d, 0x2405: 0x000d,\n\t0x2406: 0x000d, 0x2407: 0x000d, 0x2408: 0x000d, 0x2409: 0x000d, 0x240a: 0x000d, 0x240b: 0x000d,\n\t0x240c: 0x000d, 0x240d: 0x000d, 0x240e: 0x000d, 0x240f: 0x000d, 0x2410: 0x000b, 0x2411: 0x000b,\n\t0x2412: 0x000b, 0x2413: 0x000b, 0x2414: 0x000b, 0x2415: 0x000b, 0x2416: 0x000b, 0x2417: 0x000b,\n\t0x2418: 0x000b, 0x2419: 0x000b, 0x241a: 0x000b, 0x241b: 0x000b, 0x241c: 0x000b, 0x241d: 0x000b,\n\t0x241e: 0x000b, 0x241f: 0x000b, 0x2420: 0x000b, 0x2421: 0x000b, 0x2422: 0x000b, 0x2423: 0x000b,\n\t0x2424: 0x000b, 0x2425: 0x000b, 0x2426: 0x000b, 0x2427: 0x000b, 0x2428: 0x000b, 0x2429: 0x000b,\n\t0x242a: 0x000b, 0x242b: 0x000b, 0x242c: 0x000b, 0x242d: 0x000b, 0x242e: 0x000b, 0x242f: 0x000b,\n\t0x2430: 0x000d, 0x2431: 0x000d, 0x2432: 0x000d, 0x2433: 0x000d, 0x2434: 0x000d, 0x2435: 0x000d,\n\t0x2436: 0x000d, 0x2437: 0x000d, 0x2438: 0x000d, 0x2439: 0x000d, 0x243a: 0x000d, 0x243b: 0x000d,\n\t0x243c: 0x000d, 0x243d: 0x000a, 0x243e: 0x000d, 0x243f: 0x000d,\n\t// Block 0x91, offset 0x2440\n\t0x2440: 0x000c, 0x2441: 0x000c, 0x2442: 0x000c, 0x2443: 0x000c, 0x2444: 0x000c, 0x2445: 0x000c,\n\t0x2446: 0x000c, 0x2447: 0x000c, 0x2448: 0x000c, 0x2449: 0x000c, 0x244a: 0x000c, 0x244b: 0x000c,\n\t0x244c: 0x000c, 0x244d: 0x000c, 0x244e: 0x000c, 0x244f: 0x000c, 0x2450: 0x000a, 0x2451: 0x000a,\n\t0x2452: 0x000a, 0x2453: 0x000a, 0x2454: 0x000a, 0x2455: 0x000a, 0x2456: 0x000a, 0x2457: 0x000a,\n\t0x2458: 0x000a, 0x2459: 0x000a,\n\t0x2460: 0x000c, 0x2461: 0x000c, 0x2462: 0x000c, 0x2463: 0x000c,\n\t0x2464: 0x000c, 0x2465: 0x000c, 0x2466: 0x000c, 0x2467: 0x000c, 0x2468: 0x000c, 0x2469: 0x000c,\n\t0x246a: 0x000c, 0x246b: 0x000c, 0x246c: 0x000c, 0x246d: 0x000c, 0x246e: 0x000c, 0x246f: 0x000c,\n\t0x2470: 0x000a, 0x2471: 0x000a, 0x2472: 0x000a, 0x2473: 0x000a, 0x2474: 0x000a, 0x2475: 0x000a,\n\t0x2476: 0x000a, 0x2477: 0x000a, 0x2478: 0x000a, 0x2479: 0x000a, 0x247a: 0x000a, 0x247b: 0x000a,\n\t0x247c: 0x000a, 0x247d: 0x000a, 0x247e: 0x000a, 0x247f: 0x000a,\n\t// Block 0x92, offset 0x2480\n\t0x2480: 0x000a, 0x2481: 0x000a, 0x2482: 0x000a, 0x2483: 0x000a, 0x2484: 0x000a, 0x2485: 0x000a,\n\t0x2486: 0x000a, 0x2487: 0x000a, 0x2488: 0x000a, 0x2489: 0x000a, 0x248a: 0x000a, 0x248b: 0x000a,\n\t0x248c: 0x000a, 0x248d: 0x000a, 0x248e: 0x000a, 0x248f: 0x000a, 0x2490: 0x0006, 0x2491: 0x000a,\n\t0x2492: 0x0006, 0x2494: 0x000a, 0x2495: 0x0006, 0x2496: 0x000a, 0x2497: 0x000a,\n\t0x2498: 0x000a, 0x2499: 0x009a, 0x249a: 0x008a, 0x249b: 0x007a, 0x249c: 0x006a, 0x249d: 0x009a,\n\t0x249e: 0x008a, 0x249f: 0x0004, 0x24a0: 0x000a, 0x24a1: 0x000a, 0x24a2: 0x0003, 0x24a3: 0x0003,\n\t0x24a4: 0x000a, 0x24a5: 0x000a, 0x24a6: 0x000a, 0x24a8: 0x000a, 0x24a9: 0x0004,\n\t0x24aa: 0x0004, 0x24ab: 0x000a,\n\t0x24b0: 0x000d, 0x24b1: 0x000d, 0x24b2: 0x000d, 0x24b3: 0x000d, 0x24b4: 0x000d, 0x24b5: 0x000d,\n\t0x24b6: 0x000d, 0x24b7: 0x000d, 0x24b8: 0x000d, 0x24b9: 0x000d, 0x24ba: 0x000d, 0x24bb: 0x000d,\n\t0x24bc: 0x000d, 0x24bd: 0x000d, 0x24be: 0x000d, 0x24bf: 0x000d,\n\t// Block 0x93, offset 0x24c0\n\t0x24c0: 0x000d, 0x24c1: 0x000d, 0x24c2: 0x000d, 0x24c3: 0x000d, 0x24c4: 0x000d, 0x24c5: 0x000d,\n\t0x24c6: 0x000d, 0x24c7: 0x000d, 0x24c8: 0x000d, 0x24c9: 0x000d, 0x24ca: 0x000d, 0x24cb: 0x000d,\n\t0x24cc: 0x000d, 0x24cd: 0x000d, 0x24ce: 0x000d, 0x24cf: 0x000d, 0x24d0: 0x000d, 0x24d1: 0x000d,\n\t0x24d2: 0x000d, 0x24d3: 0x000d, 0x24d4: 0x000d, 0x24d5: 0x000d, 0x24d6: 0x000d, 0x24d7: 0x000d,\n\t0x24d8: 0x000d, 0x24d9: 0x000d, 0x24da: 0x000d, 0x24db: 0x000d, 0x24dc: 0x000d, 0x24dd: 0x000d,\n\t0x24de: 0x000d, 0x24df: 0x000d, 0x24e0: 0x000d, 0x24e1: 0x000d, 0x24e2: 0x000d, 0x24e3: 0x000d,\n\t0x24e4: 0x000d, 0x24e5: 0x000d, 0x24e6: 0x000d, 0x24e7: 0x000d, 0x24e8: 0x000d, 0x24e9: 0x000d,\n\t0x24ea: 0x000d, 0x24eb: 0x000d, 0x24ec: 0x000d, 0x24ed: 0x000d, 0x24ee: 0x000d, 0x24ef: 0x000d,\n\t0x24f0: 0x000d, 0x24f1: 0x000d, 0x24f2: 0x000d, 0x24f3: 0x000d, 0x24f4: 0x000d, 0x24f5: 0x000d,\n\t0x24f6: 0x000d, 0x24f7: 0x000d, 0x24f8: 0x000d, 0x24f9: 0x000d, 0x24fa: 0x000d, 0x24fb: 0x000d,\n\t0x24fc: 0x000d, 0x24fd: 0x000d, 0x24fe: 0x000d, 0x24ff: 0x000b,\n\t// Block 0x94, offset 0x2500\n\t0x2501: 0x000a, 0x2502: 0x000a, 0x2503: 0x0004, 0x2504: 0x0004, 0x2505: 0x0004,\n\t0x2506: 0x000a, 0x2507: 0x000a, 0x2508: 0x003a, 0x2509: 0x002a, 0x250a: 0x000a, 0x250b: 0x0003,\n\t0x250c: 0x0006, 0x250d: 0x0003, 0x250e: 0x0006, 0x250f: 0x0006, 0x2510: 0x0002, 0x2511: 0x0002,\n\t0x2512: 0x0002, 0x2513: 0x0002, 0x2514: 0x0002, 0x2515: 0x0002, 0x2516: 0x0002, 0x2517: 0x0002,\n\t0x2518: 0x0002, 0x2519: 0x0002, 0x251a: 0x0006, 0x251b: 0x000a, 0x251c: 0x000a, 0x251d: 0x000a,\n\t0x251e: 0x000a, 0x251f: 0x000a, 0x2520: 0x000a,\n\t0x253b: 0x005a,\n\t0x253c: 0x000a, 0x253d: 0x004a, 0x253e: 0x000a, 0x253f: 0x000a,\n\t// Block 0x95, offset 0x2540\n\t0x2540: 0x000a,\n\t0x255b: 0x005a, 0x255c: 0x000a, 0x255d: 0x004a,\n\t0x255e: 0x000a, 0x255f: 0x00fa, 0x2560: 0x00ea, 0x2561: 0x000a, 0x2562: 0x003a, 0x2563: 0x002a,\n\t0x2564: 0x000a, 0x2565: 0x000a,\n\t// Block 0x96, offset 0x2580\n\t0x25a0: 0x0004, 0x25a1: 0x0004, 0x25a2: 0x000a, 0x25a3: 0x000a,\n\t0x25a4: 0x000a, 0x25a5: 0x0004, 0x25a6: 0x0004, 0x25a8: 0x000a, 0x25a9: 0x000a,\n\t0x25aa: 0x000a, 0x25ab: 0x000a, 0x25ac: 0x000a, 0x25ad: 0x000a, 0x25ae: 0x000a,\n\t0x25b0: 0x000b, 0x25b1: 0x000b, 0x25b2: 0x000b, 0x25b3: 0x000b, 0x25b4: 0x000b, 0x25b5: 0x000b,\n\t0x25b6: 0x000b, 0x25b7: 0x000b, 0x25b8: 0x000b, 0x25b9: 0x000a, 0x25ba: 0x000a, 0x25bb: 0x000a,\n\t0x25bc: 0x000a, 0x25bd: 0x000a, 0x25be: 0x000b, 0x25bf: 0x000b,\n\t// Block 0x97, offset 0x25c0\n\t0x25c1: 0x000a,\n\t// Block 0x98, offset 0x2600\n\t0x2600: 0x000a, 0x2601: 0x000a, 0x2602: 0x000a, 0x2603: 0x000a, 0x2604: 0x000a, 0x2605: 0x000a,\n\t0x2606: 0x000a, 0x2607: 0x000a, 0x2608: 0x000a, 0x2609: 0x000a, 0x260a: 0x000a, 0x260b: 0x000a,\n\t0x260c: 0x000a, 0x2610: 0x000a, 0x2611: 0x000a,\n\t0x2612: 0x000a, 0x2613: 0x000a, 0x2614: 0x000a, 0x2615: 0x000a, 0x2616: 0x000a, 0x2617: 0x000a,\n\t0x2618: 0x000a, 0x2619: 0x000a, 0x261a: 0x000a, 0x261b: 0x000a,\n\t0x2620: 0x000a,\n\t// Block 0x99, offset 0x2640\n\t0x267d: 0x000c,\n\t// Block 0x9a, offset 0x2680\n\t0x26a0: 0x000c, 0x26a1: 0x0002, 0x26a2: 0x0002, 0x26a3: 0x0002,\n\t0x26a4: 0x0002, 0x26a5: 0x0002, 0x26a6: 0x0002, 0x26a7: 0x0002, 0x26a8: 0x0002, 0x26a9: 0x0002,\n\t0x26aa: 0x0002, 0x26ab: 0x0002, 0x26ac: 0x0002, 0x26ad: 0x0002, 0x26ae: 0x0002, 0x26af: 0x0002,\n\t0x26b0: 0x0002, 0x26b1: 0x0002, 0x26b2: 0x0002, 0x26b3: 0x0002, 0x26b4: 0x0002, 0x26b5: 0x0002,\n\t0x26b6: 0x0002, 0x26b7: 0x0002, 0x26b8: 0x0002, 0x26b9: 0x0002, 0x26ba: 0x0002, 0x26bb: 0x0002,\n\t// Block 0x9b, offset 0x26c0\n\t0x26f6: 0x000c, 0x26f7: 0x000c, 0x26f8: 0x000c, 0x26f9: 0x000c, 0x26fa: 0x000c,\n\t// Block 0x9c, offset 0x2700\n\t0x2700: 0x0001, 0x2701: 0x0001, 0x2702: 0x0001, 0x2703: 0x0001, 0x2704: 0x0001, 0x2705: 0x0001,\n\t0x2706: 0x0001, 0x2707: 0x0001, 0x2708: 0x0001, 0x2709: 0x0001, 0x270a: 0x0001, 0x270b: 0x0001,\n\t0x270c: 0x0001, 0x270d: 0x0001, 0x270e: 0x0001, 0x270f: 0x0001, 0x2710: 0x0001, 0x2711: 0x0001,\n\t0x2712: 0x0001, 0x2713: 0x0001, 0x2714: 0x0001, 0x2715: 0x0001, 0x2716: 0x0001, 0x2717: 0x0001,\n\t0x2718: 0x0001, 0x2719: 0x0001, 0x271a: 0x0001, 0x271b: 0x0001, 0x271c: 0x0001, 0x271d: 0x0001,\n\t0x271e: 0x0001, 0x271f: 0x0001, 0x2720: 0x0001, 0x2721: 0x0001, 0x2722: 0x0001, 0x2723: 0x0001,\n\t0x2724: 0x0001, 0x2725: 0x0001, 0x2726: 0x0001, 0x2727: 0x0001, 0x2728: 0x0001, 0x2729: 0x0001,\n\t0x272a: 0x0001, 0x272b: 0x0001, 0x272c: 0x0001, 0x272d: 0x0001, 0x272e: 0x0001, 0x272f: 0x0001,\n\t0x2730: 0x0001, 0x2731: 0x0001, 0x2732: 0x0001, 0x2733: 0x0001, 0x2734: 0x0001, 0x2735: 0x0001,\n\t0x2736: 0x0001, 0x2737: 0x0001, 0x2738: 0x0001, 0x2739: 0x0001, 0x273a: 0x0001, 0x273b: 0x0001,\n\t0x273c: 0x0001, 0x273d: 0x0001, 0x273e: 0x0001, 0x273f: 0x0001,\n\t// Block 0x9d, offset 0x2740\n\t0x2740: 0x0001, 0x2741: 0x0001, 0x2742: 0x0001, 0x2743: 0x0001, 0x2744: 0x0001, 0x2745: 0x0001,\n\t0x2746: 0x0001, 0x2747: 0x0001, 0x2748: 0x0001, 0x2749: 0x0001, 0x274a: 0x0001, 0x274b: 0x0001,\n\t0x274c: 0x0001, 0x274d: 0x0001, 0x274e: 0x0001, 0x274f: 0x0001, 0x2750: 0x0001, 0x2751: 0x0001,\n\t0x2752: 0x0001, 0x2753: 0x0001, 0x2754: 0x0001, 0x2755: 0x0001, 0x2756: 0x0001, 0x2757: 0x0001,\n\t0x2758: 0x0001, 0x2759: 0x0001, 0x275a: 0x0001, 0x275b: 0x0001, 0x275c: 0x0001, 0x275d: 0x0001,\n\t0x275e: 0x0001, 0x275f: 0x000a, 0x2760: 0x0001, 0x2761: 0x0001, 0x2762: 0x0001, 0x2763: 0x0001,\n\t0x2764: 0x0001, 0x2765: 0x0001, 0x2766: 0x0001, 0x2767: 0x0001, 0x2768: 0x0001, 0x2769: 0x0001,\n\t0x276a: 0x0001, 0x276b: 0x0001, 0x276c: 0x0001, 0x276d: 0x0001, 0x276e: 0x0001, 0x276f: 0x0001,\n\t0x2770: 0x0001, 0x2771: 0x0001, 0x2772: 0x0001, 0x2773: 0x0001, 0x2774: 0x0001, 0x2775: 0x0001,\n\t0x2776: 0x0001, 0x2777: 0x0001, 0x2778: 0x0001, 0x2779: 0x0001, 0x277a: 0x0001, 0x277b: 0x0001,\n\t0x277c: 0x0001, 0x277d: 0x0001, 0x277e: 0x0001, 0x277f: 0x0001,\n\t// Block 0x9e, offset 0x2780\n\t0x2780: 0x0001, 0x2781: 0x000c, 0x2782: 0x000c, 0x2783: 0x000c, 0x2784: 0x0001, 0x2785: 0x000c,\n\t0x2786: 0x000c, 0x2787: 0x0001, 0x2788: 0x0001, 0x2789: 0x0001, 0x278a: 0x0001, 0x278b: 0x0001,\n\t0x278c: 0x000c, 0x278d: 0x000c, 0x278e: 0x000c, 0x278f: 0x000c, 0x2790: 0x0001, 0x2791: 0x0001,\n\t0x2792: 0x0001, 0x2793: 0x0001, 0x2794: 0x0001, 0x2795: 0x0001, 0x2796: 0x0001, 0x2797: 0x0001,\n\t0x2798: 0x0001, 0x2799: 0x0001, 0x279a: 0x0001, 0x279b: 0x0001, 0x279c: 0x0001, 0x279d: 0x0001,\n\t0x279e: 0x0001, 0x279f: 0x0001, 0x27a0: 0x0001, 0x27a1: 0x0001, 0x27a2: 0x0001, 0x27a3: 0x0001,\n\t0x27a4: 0x0001, 0x27a5: 0x0001, 0x27a6: 0x0001, 0x27a7: 0x0001, 0x27a8: 0x0001, 0x27a9: 0x0001,\n\t0x27aa: 0x0001, 0x27ab: 0x0001, 0x27ac: 0x0001, 0x27ad: 0x0001, 0x27ae: 0x0001, 0x27af: 0x0001,\n\t0x27b0: 0x0001, 0x27b1: 0x0001, 0x27b2: 0x0001, 0x27b3: 0x0001, 0x27b4: 0x0001, 0x27b5: 0x0001,\n\t0x27b6: 0x0001, 0x27b7: 0x0001, 0x27b8: 0x000c, 0x27b9: 0x000c, 0x27ba: 0x000c, 0x27bb: 0x0001,\n\t0x27bc: 0x0001, 0x27bd: 0x0001, 0x27be: 0x0001, 0x27bf: 0x000c,\n\t// Block 0x9f, offset 0x27c0\n\t0x27c0: 0x0001, 0x27c1: 0x0001, 0x27c2: 0x0001, 0x27c3: 0x0001, 0x27c4: 0x0001, 0x27c5: 0x0001,\n\t0x27c6: 0x0001, 0x27c7: 0x0001, 0x27c8: 0x0001, 0x27c9: 0x0001, 0x27ca: 0x0001, 0x27cb: 0x0001,\n\t0x27cc: 0x0001, 0x27cd: 0x0001, 0x27ce: 0x0001, 0x27cf: 0x0001, 0x27d0: 0x0001, 0x27d1: 0x0001,\n\t0x27d2: 0x0001, 0x27d3: 0x0001, 0x27d4: 0x0001, 0x27d5: 0x0001, 0x27d6: 0x0001, 0x27d7: 0x0001,\n\t0x27d8: 0x0001, 0x27d9: 0x0001, 0x27da: 0x0001, 0x27db: 0x0001, 0x27dc: 0x0001, 0x27dd: 0x0001,\n\t0x27de: 0x0001, 0x27df: 0x0001, 0x27e0: 0x0001, 0x27e1: 0x0001, 0x27e2: 0x0001, 0x27e3: 0x0001,\n\t0x27e4: 0x0001, 0x27e5: 0x000c, 0x27e6: 0x000c, 0x27e7: 0x0001, 0x27e8: 0x0001, 0x27e9: 0x0001,\n\t0x27ea: 0x0001, 0x27eb: 0x0001, 0x27ec: 0x0001, 0x27ed: 0x0001, 0x27ee: 0x0001, 0x27ef: 0x0001,\n\t0x27f0: 0x0001, 0x27f1: 0x0001, 0x27f2: 0x0001, 0x27f3: 0x0001, 0x27f4: 0x0001, 0x27f5: 0x0001,\n\t0x27f6: 0x0001, 0x27f7: 0x0001, 0x27f8: 0x0001, 0x27f9: 0x0001, 0x27fa: 0x0001, 0x27fb: 0x0001,\n\t0x27fc: 0x0001, 0x27fd: 0x0001, 0x27fe: 0x0001, 0x27ff: 0x0001,\n\t// Block 0xa0, offset 0x2800\n\t0x2800: 0x0001, 0x2801: 0x0001, 0x2802: 0x0001, 0x2803: 0x0001, 0x2804: 0x0001, 0x2805: 0x0001,\n\t0x2806: 0x0001, 0x2807: 0x0001, 0x2808: 0x0001, 0x2809: 0x0001, 0x280a: 0x0001, 0x280b: 0x0001,\n\t0x280c: 0x0001, 0x280d: 0x0001, 0x280e: 0x0001, 0x280f: 0x0001, 0x2810: 0x0001, 0x2811: 0x0001,\n\t0x2812: 0x0001, 0x2813: 0x0001, 0x2814: 0x0001, 0x2815: 0x0001, 0x2816: 0x0001, 0x2817: 0x0001,\n\t0x2818: 0x0001, 0x2819: 0x0001, 0x281a: 0x0001, 0x281b: 0x0001, 0x281c: 0x0001, 0x281d: 0x0001,\n\t0x281e: 0x0001, 0x281f: 0x0001, 0x2820: 0x0001, 0x2821: 0x0001, 0x2822: 0x0001, 0x2823: 0x0001,\n\t0x2824: 0x0001, 0x2825: 0x0001, 0x2826: 0x0001, 0x2827: 0x0001, 0x2828: 0x0001, 0x2829: 0x0001,\n\t0x282a: 0x0001, 0x282b: 0x0001, 0x282c: 0x0001, 0x282d: 0x0001, 0x282e: 0x0001, 0x282f: 0x0001,\n\t0x2830: 0x0001, 0x2831: 0x0001, 0x2832: 0x0001, 0x2833: 0x0001, 0x2834: 0x0001, 0x2835: 0x0001,\n\t0x2836: 0x0001, 0x2837: 0x0001, 0x2838: 0x0001, 0x2839: 0x000a, 0x283a: 0x000a, 0x283b: 0x000a,\n\t0x283c: 0x000a, 0x283d: 0x000a, 0x283e: 0x000a, 0x283f: 0x000a,\n\t// Block 0xa1, offset 0x2840\n\t0x2840: 0x0001, 0x2841: 0x0001, 0x2842: 0x0001, 0x2843: 0x0001, 0x2844: 0x0001, 0x2845: 0x0001,\n\t0x2846: 0x0001, 0x2847: 0x0001, 0x2848: 0x0001, 0x2849: 0x0001, 0x284a: 0x0001, 0x284b: 0x0001,\n\t0x284c: 0x0001, 0x284d: 0x0001, 0x284e: 0x0001, 0x284f: 0x0001, 0x2850: 0x0001, 0x2851: 0x0001,\n\t0x2852: 0x0001, 0x2853: 0x0001, 0x2854: 0x0001, 0x2855: 0x0001, 0x2856: 0x0001, 0x2857: 0x0001,\n\t0x2858: 0x0001, 0x2859: 0x0001, 0x285a: 0x0001, 0x285b: 0x0001, 0x285c: 0x0001, 0x285d: 0x0001,\n\t0x285e: 0x0001, 0x285f: 0x0001, 0x2860: 0x0005, 0x2861: 0x0005, 0x2862: 0x0005, 0x2863: 0x0005,\n\t0x2864: 0x0005, 0x2865: 0x0005, 0x2866: 0x0005, 0x2867: 0x0005, 0x2868: 0x0005, 0x2869: 0x0005,\n\t0x286a: 0x0005, 0x286b: 0x0005, 0x286c: 0x0005, 0x286d: 0x0005, 0x286e: 0x0005, 0x286f: 0x0005,\n\t0x2870: 0x0005, 0x2871: 0x0005, 0x2872: 0x0005, 0x2873: 0x0005, 0x2874: 0x0005, 0x2875: 0x0005,\n\t0x2876: 0x0005, 0x2877: 0x0005, 0x2878: 0x0005, 0x2879: 0x0005, 0x287a: 0x0005, 0x287b: 0x0005,\n\t0x287c: 0x0005, 0x287d: 0x0005, 0x287e: 0x0005, 0x287f: 0x0001,\n\t// Block 0xa2, offset 0x2880\n\t0x2881: 0x000c,\n\t0x28b8: 0x000c, 0x28b9: 0x000c, 0x28ba: 0x000c, 0x28bb: 0x000c,\n\t0x28bc: 0x000c, 0x28bd: 0x000c, 0x28be: 0x000c, 0x28bf: 0x000c,\n\t// Block 0xa3, offset 0x28c0\n\t0x28c0: 0x000c, 0x28c1: 0x000c, 0x28c2: 0x000c, 0x28c3: 0x000c, 0x28c4: 0x000c, 0x28c5: 0x000c,\n\t0x28c6: 0x000c,\n\t0x28d2: 0x000a, 0x28d3: 0x000a, 0x28d4: 0x000a, 0x28d5: 0x000a, 0x28d6: 0x000a, 0x28d7: 0x000a,\n\t0x28d8: 0x000a, 0x28d9: 0x000a, 0x28da: 0x000a, 0x28db: 0x000a, 0x28dc: 0x000a, 0x28dd: 0x000a,\n\t0x28de: 0x000a, 0x28df: 0x000a, 0x28e0: 0x000a, 0x28e1: 0x000a, 0x28e2: 0x000a, 0x28e3: 0x000a,\n\t0x28e4: 0x000a, 0x28e5: 0x000a,\n\t0x28ff: 0x000c,\n\t// Block 0xa4, offset 0x2900\n\t0x2900: 0x000c, 0x2901: 0x000c,\n\t0x2933: 0x000c, 0x2934: 0x000c, 0x2935: 0x000c,\n\t0x2936: 0x000c, 0x2939: 0x000c, 0x293a: 0x000c,\n\t// Block 0xa5, offset 0x2940\n\t0x2940: 0x000c, 0x2941: 0x000c, 0x2942: 0x000c,\n\t0x2967: 0x000c, 0x2968: 0x000c, 0x2969: 0x000c,\n\t0x296a: 0x000c, 0x296b: 0x000c, 0x296d: 0x000c, 0x296e: 0x000c, 0x296f: 0x000c,\n\t0x2970: 0x000c, 0x2971: 0x000c, 0x2972: 0x000c, 0x2973: 0x000c, 0x2974: 0x000c,\n\t// Block 0xa6, offset 0x2980\n\t0x29b3: 0x000c,\n\t// Block 0xa7, offset 0x29c0\n\t0x29c0: 0x000c, 0x29c1: 0x000c,\n\t0x29f6: 0x000c, 0x29f7: 0x000c, 0x29f8: 0x000c, 0x29f9: 0x000c, 0x29fa: 0x000c, 0x29fb: 0x000c,\n\t0x29fc: 0x000c, 0x29fd: 0x000c, 0x29fe: 0x000c,\n\t// Block 0xa8, offset 0x2a00\n\t0x2a0a: 0x000c, 0x2a0b: 0x000c,\n\t0x2a0c: 0x000c,\n\t// Block 0xa9, offset 0x2a40\n\t0x2a6f: 0x000c,\n\t0x2a70: 0x000c, 0x2a71: 0x000c, 0x2a74: 0x000c,\n\t0x2a76: 0x000c, 0x2a77: 0x000c,\n\t0x2a7e: 0x000c,\n\t// Block 0xaa, offset 0x2a80\n\t0x2a9f: 0x000c, 0x2aa3: 0x000c,\n\t0x2aa4: 0x000c, 0x2aa5: 0x000c, 0x2aa6: 0x000c, 0x2aa7: 0x000c, 0x2aa8: 0x000c, 0x2aa9: 0x000c,\n\t0x2aaa: 0x000c,\n\t// Block 0xab, offset 0x2ac0\n\t0x2ac0: 0x000c, 0x2ac1: 0x000c,\n\t0x2afc: 0x000c,\n\t// Block 0xac, offset 0x2b00\n\t0x2b00: 0x000c,\n\t0x2b26: 0x000c, 0x2b27: 0x000c, 0x2b28: 0x000c, 0x2b29: 0x000c,\n\t0x2b2a: 0x000c, 0x2b2b: 0x000c, 0x2b2c: 0x000c,\n\t0x2b30: 0x000c, 0x2b31: 0x000c, 0x2b32: 0x000c, 0x2b33: 0x000c, 0x2b34: 0x000c,\n\t// Block 0xad, offset 0x2b40\n\t0x2b78: 0x000c, 0x2b79: 0x000c, 0x2b7a: 0x000c, 0x2b7b: 0x000c,\n\t0x2b7c: 0x000c, 0x2b7d: 0x000c, 0x2b7e: 0x000c, 0x2b7f: 0x000c,\n\t// Block 0xae, offset 0x2b80\n\t0x2b82: 0x000c, 0x2b83: 0x000c, 0x2b84: 0x000c,\n\t0x2b86: 0x000c,\n\t// Block 0xaf, offset 0x2bc0\n\t0x2bf3: 0x000c, 0x2bf4: 0x000c, 0x2bf5: 0x000c,\n\t0x2bf6: 0x000c, 0x2bf7: 0x000c, 0x2bf8: 0x000c, 0x2bfa: 0x000c,\n\t0x2bff: 0x000c,\n\t// Block 0xb0, offset 0x2c00\n\t0x2c00: 0x000c, 0x2c02: 0x000c, 0x2c03: 0x000c,\n\t// Block 0xb1, offset 0x2c40\n\t0x2c72: 0x000c, 0x2c73: 0x000c, 0x2c74: 0x000c, 0x2c75: 0x000c,\n\t0x2c7c: 0x000c, 0x2c7d: 0x000c, 0x2c7f: 0x000c,\n\t// Block 0xb2, offset 0x2c80\n\t0x2c80: 0x000c,\n\t0x2c9c: 0x000c, 0x2c9d: 0x000c,\n\t// Block 0xb3, offset 0x2cc0\n\t0x2cf3: 0x000c, 0x2cf4: 0x000c, 0x2cf5: 0x000c,\n\t0x2cf6: 0x000c, 0x2cf7: 0x000c, 0x2cf8: 0x000c, 0x2cf9: 0x000c, 0x2cfa: 0x000c,\n\t0x2cfd: 0x000c, 0x2cff: 0x000c,\n\t// Block 0xb4, offset 0x2d00\n\t0x2d00: 0x000c,\n\t0x2d20: 0x000a, 0x2d21: 0x000a, 0x2d22: 0x000a, 0x2d23: 0x000a,\n\t0x2d24: 0x000a, 0x2d25: 0x000a, 0x2d26: 0x000a, 0x2d27: 0x000a, 0x2d28: 0x000a, 0x2d29: 0x000a,\n\t0x2d2a: 0x000a, 0x2d2b: 0x000a, 0x2d2c: 0x000a,\n\t// Block 0xb5, offset 0x2d40\n\t0x2d6b: 0x000c, 0x2d6d: 0x000c,\n\t0x2d70: 0x000c, 0x2d71: 0x000c, 0x2d72: 0x000c, 0x2d73: 0x000c, 0x2d74: 0x000c, 0x2d75: 0x000c,\n\t0x2d77: 0x000c,\n\t// Block 0xb6, offset 0x2d80\n\t0x2d9d: 0x000c,\n\t0x2d9e: 0x000c, 0x2d9f: 0x000c, 0x2da2: 0x000c, 0x2da3: 0x000c,\n\t0x2da4: 0x000c, 0x2da5: 0x000c, 0x2da7: 0x000c, 0x2da8: 0x000c, 0x2da9: 0x000c,\n\t0x2daa: 0x000c, 0x2dab: 0x000c,\n\t// Block 0xb7, offset 0x2dc0\n\t0x2dc1: 0x000c, 0x2dc2: 0x000c, 0x2dc3: 0x000c, 0x2dc4: 0x000c, 0x2dc5: 0x000c,\n\t0x2dc6: 0x000c, 0x2dc9: 0x000c, 0x2dca: 0x000c,\n\t0x2df3: 0x000c, 0x2df4: 0x000c, 0x2df5: 0x000c,\n\t0x2df6: 0x000c, 0x2df7: 0x000c, 0x2df8: 0x000c, 0x2dfb: 0x000c,\n\t0x2dfc: 0x000c, 0x2dfd: 0x000c, 0x2dfe: 0x000c,\n\t// Block 0xb8, offset 0x2e00\n\t0x2e07: 0x000c,\n\t0x2e11: 0x000c,\n\t0x2e12: 0x000c, 0x2e13: 0x000c, 0x2e14: 0x000c, 0x2e15: 0x000c, 0x2e16: 0x000c,\n\t0x2e19: 0x000c, 0x2e1a: 0x000c, 0x2e1b: 0x000c,\n\t// Block 0xb9, offset 0x2e40\n\t0x2e4a: 0x000c, 0x2e4b: 0x000c,\n\t0x2e4c: 0x000c, 0x2e4d: 0x000c, 0x2e4e: 0x000c, 0x2e4f: 0x000c, 0x2e50: 0x000c, 0x2e51: 0x000c,\n\t0x2e52: 0x000c, 0x2e53: 0x000c, 0x2e54: 0x000c, 0x2e55: 0x000c, 0x2e56: 0x000c,\n\t0x2e58: 0x000c, 0x2e59: 0x000c,\n\t// Block 0xba, offset 0x2e80\n\t0x2eb0: 0x000c, 0x2eb1: 0x000c, 0x2eb2: 0x000c, 0x2eb3: 0x000c, 0x2eb4: 0x000c, 0x2eb5: 0x000c,\n\t0x2eb6: 0x000c, 0x2eb8: 0x000c, 0x2eb9: 0x000c, 0x2eba: 0x000c, 0x2ebb: 0x000c,\n\t0x2ebc: 0x000c, 0x2ebd: 0x000c,\n\t// Block 0xbb, offset 0x2ec0\n\t0x2ed2: 0x000c, 0x2ed3: 0x000c, 0x2ed4: 0x000c, 0x2ed5: 0x000c, 0x2ed6: 0x000c, 0x2ed7: 0x000c,\n\t0x2ed8: 0x000c, 0x2ed9: 0x000c, 0x2eda: 0x000c, 0x2edb: 0x000c, 0x2edc: 0x000c, 0x2edd: 0x000c,\n\t0x2ede: 0x000c, 0x2edf: 0x000c, 0x2ee0: 0x000c, 0x2ee1: 0x000c, 0x2ee2: 0x000c, 0x2ee3: 0x000c,\n\t0x2ee4: 0x000c, 0x2ee5: 0x000c, 0x2ee6: 0x000c, 0x2ee7: 0x000c,\n\t0x2eea: 0x000c, 0x2eeb: 0x000c, 0x2eec: 0x000c, 0x2eed: 0x000c, 0x2eee: 0x000c, 0x2eef: 0x000c,\n\t0x2ef0: 0x000c, 0x2ef2: 0x000c, 0x2ef3: 0x000c, 0x2ef5: 0x000c,\n\t0x2ef6: 0x000c,\n\t// Block 0xbc, offset 0x2f00\n\t0x2f31: 0x000c, 0x2f32: 0x000c, 0x2f33: 0x000c, 0x2f34: 0x000c, 0x2f35: 0x000c,\n\t0x2f36: 0x000c, 0x2f3a: 0x000c,\n\t0x2f3c: 0x000c, 0x2f3d: 0x000c, 0x2f3f: 0x000c,\n\t// Block 0xbd, offset 0x2f40\n\t0x2f40: 0x000c, 0x2f41: 0x000c, 0x2f42: 0x000c, 0x2f43: 0x000c, 0x2f44: 0x000c, 0x2f45: 0x000c,\n\t0x2f47: 0x000c,\n\t// Block 0xbe, offset 0x2f80\n\t0x2fb0: 0x000c, 0x2fb1: 0x000c, 0x2fb2: 0x000c, 0x2fb3: 0x000c, 0x2fb4: 0x000c,\n\t// Block 0xbf, offset 0x2fc0\n\t0x2ff0: 0x000c, 0x2ff1: 0x000c, 0x2ff2: 0x000c, 0x2ff3: 0x000c, 0x2ff4: 0x000c, 0x2ff5: 0x000c,\n\t0x2ff6: 0x000c,\n\t// Block 0xc0, offset 0x3000\n\t0x300f: 0x000c, 0x3010: 0x000c, 0x3011: 0x000c,\n\t0x3012: 0x000c,\n\t// Block 0xc1, offset 0x3040\n\t0x305d: 0x000c,\n\t0x305e: 0x000c, 0x3060: 0x000b, 0x3061: 0x000b, 0x3062: 0x000b, 0x3063: 0x000b,\n\t// Block 0xc2, offset 0x3080\n\t0x30a7: 0x000c, 0x30a8: 0x000c, 0x30a9: 0x000c,\n\t0x30b3: 0x000b, 0x30b4: 0x000b, 0x30b5: 0x000b,\n\t0x30b6: 0x000b, 0x30b7: 0x000b, 0x30b8: 0x000b, 0x30b9: 0x000b, 0x30ba: 0x000b, 0x30bb: 0x000c,\n\t0x30bc: 0x000c, 0x30bd: 0x000c, 0x30be: 0x000c, 0x30bf: 0x000c,\n\t// Block 0xc3, offset 0x30c0\n\t0x30c0: 0x000c, 0x30c1: 0x000c, 0x30c2: 0x000c, 0x30c5: 0x000c,\n\t0x30c6: 0x000c, 0x30c7: 0x000c, 0x30c8: 0x000c, 0x30c9: 0x000c, 0x30ca: 0x000c, 0x30cb: 0x000c,\n\t0x30ea: 0x000c, 0x30eb: 0x000c, 0x30ec: 0x000c, 0x30ed: 0x000c,\n\t// Block 0xc4, offset 0x3100\n\t0x3100: 0x000a, 0x3101: 0x000a, 0x3102: 0x000c, 0x3103: 0x000c, 0x3104: 0x000c, 0x3105: 0x000a,\n\t// Block 0xc5, offset 0x3140\n\t0x3140: 0x000a, 0x3141: 0x000a, 0x3142: 0x000a, 0x3143: 0x000a, 0x3144: 0x000a, 0x3145: 0x000a,\n\t0x3146: 0x000a, 0x3147: 0x000a, 0x3148: 0x000a, 0x3149: 0x000a, 0x314a: 0x000a, 0x314b: 0x000a,\n\t0x314c: 0x000a, 0x314d: 0x000a, 0x314e: 0x000a, 0x314f: 0x000a, 0x3150: 0x000a, 0x3151: 0x000a,\n\t0x3152: 0x000a, 0x3153: 0x000a, 0x3154: 0x000a, 0x3155: 0x000a, 0x3156: 0x000a,\n\t// Block 0xc6, offset 0x3180\n\t0x319b: 0x000a,\n\t// Block 0xc7, offset 0x31c0\n\t0x31d5: 0x000a,\n\t// Block 0xc8, offset 0x3200\n\t0x320f: 0x000a,\n\t// Block 0xc9, offset 0x3240\n\t0x3249: 0x000a,\n\t// Block 0xca, offset 0x3280\n\t0x3283: 0x000a,\n\t0x328e: 0x0002, 0x328f: 0x0002, 0x3290: 0x0002, 0x3291: 0x0002,\n\t0x3292: 0x0002, 0x3293: 0x0002, 0x3294: 0x0002, 0x3295: 0x0002, 0x3296: 0x0002, 0x3297: 0x0002,\n\t0x3298: 0x0002, 0x3299: 0x0002, 0x329a: 0x0002, 0x329b: 0x0002, 0x329c: 0x0002, 0x329d: 0x0002,\n\t0x329e: 0x0002, 0x329f: 0x0002, 0x32a0: 0x0002, 0x32a1: 0x0002, 0x32a2: 0x0002, 0x32a3: 0x0002,\n\t0x32a4: 0x0002, 0x32a5: 0x0002, 0x32a6: 0x0002, 0x32a7: 0x0002, 0x32a8: 0x0002, 0x32a9: 0x0002,\n\t0x32aa: 0x0002, 0x32ab: 0x0002, 0x32ac: 0x0002, 0x32ad: 0x0002, 0x32ae: 0x0002, 0x32af: 0x0002,\n\t0x32b0: 0x0002, 0x32b1: 0x0002, 0x32b2: 0x0002, 0x32b3: 0x0002, 0x32b4: 0x0002, 0x32b5: 0x0002,\n\t0x32b6: 0x0002, 0x32b7: 0x0002, 0x32b8: 0x0002, 0x32b9: 0x0002, 0x32ba: 0x0002, 0x32bb: 0x0002,\n\t0x32bc: 0x0002, 0x32bd: 0x0002, 0x32be: 0x0002, 0x32bf: 0x0002,\n\t// Block 0xcb, offset 0x32c0\n\t0x32c0: 0x000c, 0x32c1: 0x000c, 0x32c2: 0x000c, 0x32c3: 0x000c, 0x32c4: 0x000c, 0x32c5: 0x000c,\n\t0x32c6: 0x000c, 0x32c7: 0x000c, 0x32c8: 0x000c, 0x32c9: 0x000c, 0x32ca: 0x000c, 0x32cb: 0x000c,\n\t0x32cc: 0x000c, 0x32cd: 0x000c, 0x32ce: 0x000c, 0x32cf: 0x000c, 0x32d0: 0x000c, 0x32d1: 0x000c,\n\t0x32d2: 0x000c, 0x32d3: 0x000c, 0x32d4: 0x000c, 0x32d5: 0x000c, 0x32d6: 0x000c, 0x32d7: 0x000c,\n\t0x32d8: 0x000c, 0x32d9: 0x000c, 0x32da: 0x000c, 0x32db: 0x000c, 0x32dc: 0x000c, 0x32dd: 0x000c,\n\t0x32de: 0x000c, 0x32df: 0x000c, 0x32e0: 0x000c, 0x32e1: 0x000c, 0x32e2: 0x000c, 0x32e3: 0x000c,\n\t0x32e4: 0x000c, 0x32e5: 0x000c, 0x32e6: 0x000c, 0x32e7: 0x000c, 0x32e8: 0x000c, 0x32e9: 0x000c,\n\t0x32ea: 0x000c, 0x32eb: 0x000c, 0x32ec: 0x000c, 0x32ed: 0x000c, 0x32ee: 0x000c, 0x32ef: 0x000c,\n\t0x32f0: 0x000c, 0x32f1: 0x000c, 0x32f2: 0x000c, 0x32f3: 0x000c, 0x32f4: 0x000c, 0x32f5: 0x000c,\n\t0x32f6: 0x000c, 0x32fb: 0x000c,\n\t0x32fc: 0x000c, 0x32fd: 0x000c, 0x32fe: 0x000c, 0x32ff: 0x000c,\n\t// Block 0xcc, offset 0x3300\n\t0x3300: 0x000c, 0x3301: 0x000c, 0x3302: 0x000c, 0x3303: 0x000c, 0x3304: 0x000c, 0x3305: 0x000c,\n\t0x3306: 0x000c, 0x3307: 0x000c, 0x3308: 0x000c, 0x3309: 0x000c, 0x330a: 0x000c, 0x330b: 0x000c,\n\t0x330c: 0x000c, 0x330d: 0x000c, 0x330e: 0x000c, 0x330f: 0x000c, 0x3310: 0x000c, 0x3311: 0x000c,\n\t0x3312: 0x000c, 0x3313: 0x000c, 0x3314: 0x000c, 0x3315: 0x000c, 0x3316: 0x000c, 0x3317: 0x000c,\n\t0x3318: 0x000c, 0x3319: 0x000c, 0x331a: 0x000c, 0x331b: 0x000c, 0x331c: 0x000c, 0x331d: 0x000c,\n\t0x331e: 0x000c, 0x331f: 0x000c, 0x3320: 0x000c, 0x3321: 0x000c, 0x3322: 0x000c, 0x3323: 0x000c,\n\t0x3324: 0x000c, 0x3325: 0x000c, 0x3326: 0x000c, 0x3327: 0x000c, 0x3328: 0x000c, 0x3329: 0x000c,\n\t0x332a: 0x000c, 0x332b: 0x000c, 0x332c: 0x000c,\n\t0x3335: 0x000c,\n\t// Block 0xcd, offset 0x3340\n\t0x3344: 0x000c,\n\t0x335b: 0x000c, 0x335c: 0x000c, 0x335d: 0x000c,\n\t0x335e: 0x000c, 0x335f: 0x000c, 0x3361: 0x000c, 0x3362: 0x000c, 0x3363: 0x000c,\n\t0x3364: 0x000c, 0x3365: 0x000c, 0x3366: 0x000c, 0x3367: 0x000c, 0x3368: 0x000c, 0x3369: 0x000c,\n\t0x336a: 0x000c, 0x336b: 0x000c, 0x336c: 0x000c, 0x336d: 0x000c, 0x336e: 0x000c, 0x336f: 0x000c,\n\t// Block 0xce, offset 0x3380\n\t0x3380: 0x000c, 0x3381: 0x000c, 0x3382: 0x000c, 0x3383: 0x000c, 0x3384: 0x000c, 0x3385: 0x000c,\n\t0x3386: 0x000c, 0x3388: 0x000c, 0x3389: 0x000c, 0x338a: 0x000c, 0x338b: 0x000c,\n\t0x338c: 0x000c, 0x338d: 0x000c, 0x338e: 0x000c, 0x338f: 0x000c, 0x3390: 0x000c, 0x3391: 0x000c,\n\t0x3392: 0x000c, 0x3393: 0x000c, 0x3394: 0x000c, 0x3395: 0x000c, 0x3396: 0x000c, 0x3397: 0x000c,\n\t0x3398: 0x000c, 0x339b: 0x000c, 0x339c: 0x000c, 0x339d: 0x000c,\n\t0x339e: 0x000c, 0x339f: 0x000c, 0x33a0: 0x000c, 0x33a1: 0x000c, 0x33a3: 0x000c,\n\t0x33a4: 0x000c, 0x33a6: 0x000c, 0x33a7: 0x000c, 0x33a8: 0x000c, 0x33a9: 0x000c,\n\t0x33aa: 0x000c,\n\t// Block 0xcf, offset 0x33c0\n\t0x33c0: 0x0001, 0x33c1: 0x0001, 0x33c2: 0x0001, 0x33c3: 0x0001, 0x33c4: 0x0001, 0x33c5: 0x0001,\n\t0x33c6: 0x0001, 0x33c7: 0x0001, 0x33c8: 0x0001, 0x33c9: 0x0001, 0x33ca: 0x0001, 0x33cb: 0x0001,\n\t0x33cc: 0x0001, 0x33cd: 0x0001, 0x33ce: 0x0001, 0x33cf: 0x0001, 0x33d0: 0x000c, 0x33d1: 0x000c,\n\t0x33d2: 0x000c, 0x33d3: 0x000c, 0x33d4: 0x000c, 0x33d5: 0x000c, 0x33d6: 0x000c, 0x33d7: 0x0001,\n\t0x33d8: 0x0001, 0x33d9: 0x0001, 0x33da: 0x0001, 0x33db: 0x0001, 0x33dc: 0x0001, 0x33dd: 0x0001,\n\t0x33de: 0x0001, 0x33df: 0x0001, 0x33e0: 0x0001, 0x33e1: 0x0001, 0x33e2: 0x0001, 0x33e3: 0x0001,\n\t0x33e4: 0x0001, 0x33e5: 0x0001, 0x33e6: 0x0001, 0x33e7: 0x0001, 0x33e8: 0x0001, 0x33e9: 0x0001,\n\t0x33ea: 0x0001, 0x33eb: 0x0001, 0x33ec: 0x0001, 0x33ed: 0x0001, 0x33ee: 0x0001, 0x33ef: 0x0001,\n\t0x33f0: 0x0001, 0x33f1: 0x0001, 0x33f2: 0x0001, 0x33f3: 0x0001, 0x33f4: 0x0001, 0x33f5: 0x0001,\n\t0x33f6: 0x0001, 0x33f7: 0x0001, 0x33f8: 0x0001, 0x33f9: 0x0001, 0x33fa: 0x0001, 0x33fb: 0x0001,\n\t0x33fc: 0x0001, 0x33fd: 0x0001, 0x33fe: 0x0001, 0x33ff: 0x0001,\n\t// Block 0xd0, offset 0x3400\n\t0x3400: 0x0001, 0x3401: 0x0001, 0x3402: 0x0001, 0x3403: 0x0001, 0x3404: 0x000c, 0x3405: 0x000c,\n\t0x3406: 0x000c, 0x3407: 0x000c, 0x3408: 0x000c, 0x3409: 0x000c, 0x340a: 0x000c, 0x340b: 0x0001,\n\t0x340c: 0x0001, 0x340d: 0x0001, 0x340e: 0x0001, 0x340f: 0x0001, 0x3410: 0x0001, 0x3411: 0x0001,\n\t0x3412: 0x0001, 0x3413: 0x0001, 0x3414: 0x0001, 0x3415: 0x0001, 0x3416: 0x0001, 0x3417: 0x0001,\n\t0x3418: 0x0001, 0x3419: 0x0001, 0x341a: 0x0001, 0x341b: 0x0001, 0x341c: 0x0001, 0x341d: 0x0001,\n\t0x341e: 0x0001, 0x341f: 0x0001, 0x3420: 0x0001, 0x3421: 0x0001, 0x3422: 0x0001, 0x3423: 0x0001,\n\t0x3424: 0x0001, 0x3425: 0x0001, 0x3426: 0x0001, 0x3427: 0x0001, 0x3428: 0x0001, 0x3429: 0x0001,\n\t0x342a: 0x0001, 0x342b: 0x0001, 0x342c: 0x0001, 0x342d: 0x0001, 0x342e: 0x0001, 0x342f: 0x0001,\n\t0x3430: 0x0001, 0x3431: 0x0001, 0x3432: 0x0001, 0x3433: 0x0001, 0x3434: 0x0001, 0x3435: 0x0001,\n\t0x3436: 0x0001, 0x3437: 0x0001, 0x3438: 0x0001, 0x3439: 0x0001, 0x343a: 0x0001, 0x343b: 0x0001,\n\t0x343c: 0x0001, 0x343d: 0x0001, 0x343e: 0x0001, 0x343f: 0x0001,\n\t// Block 0xd1, offset 0x3440\n\t0x3440: 0x000d, 0x3441: 0x000d, 0x3442: 0x000d, 0x3443: 0x000d, 0x3444: 0x000d, 0x3445: 0x000d,\n\t0x3446: 0x000d, 0x3447: 0x000d, 0x3448: 0x000d, 0x3449: 0x000d, 0x344a: 0x000d, 0x344b: 0x000d,\n\t0x344c: 0x000d, 0x344d: 0x000d, 0x344e: 0x000d, 0x344f: 0x000d, 0x3450: 0x000d, 0x3451: 0x000d,\n\t0x3452: 0x000d, 0x3453: 0x000d, 0x3454: 0x000d, 0x3455: 0x000d, 0x3456: 0x000d, 0x3457: 0x000d,\n\t0x3458: 0x000d, 0x3459: 0x000d, 0x345a: 0x000d, 0x345b: 0x000d, 0x345c: 0x000d, 0x345d: 0x000d,\n\t0x345e: 0x000d, 0x345f: 0x000d, 0x3460: 0x000d, 0x3461: 0x000d, 0x3462: 0x000d, 0x3463: 0x000d,\n\t0x3464: 0x000d, 0x3465: 0x000d, 0x3466: 0x000d, 0x3467: 0x000d, 0x3468: 0x000d, 0x3469: 0x000d,\n\t0x346a: 0x000d, 0x346b: 0x000d, 0x346c: 0x000d, 0x346d: 0x000d, 0x346e: 0x000d, 0x346f: 0x000d,\n\t0x3470: 0x000a, 0x3471: 0x000a, 0x3472: 0x000d, 0x3473: 0x000d, 0x3474: 0x000d, 0x3475: 0x000d,\n\t0x3476: 0x000d, 0x3477: 0x000d, 0x3478: 0x000d, 0x3479: 0x000d, 0x347a: 0x000d, 0x347b: 0x000d,\n\t0x347c: 0x000d, 0x347d: 0x000d, 0x347e: 0x000d, 0x347f: 0x000d,\n\t// Block 0xd2, offset 0x3480\n\t0x3480: 0x000a, 0x3481: 0x000a, 0x3482: 0x000a, 0x3483: 0x000a, 0x3484: 0x000a, 0x3485: 0x000a,\n\t0x3486: 0x000a, 0x3487: 0x000a, 0x3488: 0x000a, 0x3489: 0x000a, 0x348a: 0x000a, 0x348b: 0x000a,\n\t0x348c: 0x000a, 0x348d: 0x000a, 0x348e: 0x000a, 0x348f: 0x000a, 0x3490: 0x000a, 0x3491: 0x000a,\n\t0x3492: 0x000a, 0x3493: 0x000a, 0x3494: 0x000a, 0x3495: 0x000a, 0x3496: 0x000a, 0x3497: 0x000a,\n\t0x3498: 0x000a, 0x3499: 0x000a, 0x349a: 0x000a, 0x349b: 0x000a, 0x349c: 0x000a, 0x349d: 0x000a,\n\t0x349e: 0x000a, 0x349f: 0x000a, 0x34a0: 0x000a, 0x34a1: 0x000a, 0x34a2: 0x000a, 0x34a3: 0x000a,\n\t0x34a4: 0x000a, 0x34a5: 0x000a, 0x34a6: 0x000a, 0x34a7: 0x000a, 0x34a8: 0x000a, 0x34a9: 0x000a,\n\t0x34aa: 0x000a, 0x34ab: 0x000a,\n\t0x34b0: 0x000a, 0x34b1: 0x000a, 0x34b2: 0x000a, 0x34b3: 0x000a, 0x34b4: 0x000a, 0x34b5: 0x000a,\n\t0x34b6: 0x000a, 0x34b7: 0x000a, 0x34b8: 0x000a, 0x34b9: 0x000a, 0x34ba: 0x000a, 0x34bb: 0x000a,\n\t0x34bc: 0x000a, 0x34bd: 0x000a, 0x34be: 0x000a, 0x34bf: 0x000a,\n\t// Block 0xd3, offset 0x34c0\n\t0x34c0: 0x000a, 0x34c1: 0x000a, 0x34c2: 0x000a, 0x34c3: 0x000a, 0x34c4: 0x000a, 0x34c5: 0x000a,\n\t0x34c6: 0x000a, 0x34c7: 0x000a, 0x34c8: 0x000a, 0x34c9: 0x000a, 0x34ca: 0x000a, 0x34cb: 0x000a,\n\t0x34cc: 0x000a, 0x34cd: 0x000a, 0x34ce: 0x000a, 0x34cf: 0x000a, 0x34d0: 0x000a, 0x34d1: 0x000a,\n\t0x34d2: 0x000a, 0x34d3: 0x000a,\n\t0x34e0: 0x000a, 0x34e1: 0x000a, 0x34e2: 0x000a, 0x34e3: 0x000a,\n\t0x34e4: 0x000a, 0x34e5: 0x000a, 0x34e6: 0x000a, 0x34e7: 0x000a, 0x34e8: 0x000a, 0x34e9: 0x000a,\n\t0x34ea: 0x000a, 0x34eb: 0x000a, 0x34ec: 0x000a, 0x34ed: 0x000a, 0x34ee: 0x000a,\n\t0x34f1: 0x000a, 0x34f2: 0x000a, 0x34f3: 0x000a, 0x34f4: 0x000a, 0x34f5: 0x000a,\n\t0x34f6: 0x000a, 0x34f7: 0x000a, 0x34f8: 0x000a, 0x34f9: 0x000a, 0x34fa: 0x000a, 0x34fb: 0x000a,\n\t0x34fc: 0x000a, 0x34fd: 0x000a, 0x34fe: 0x000a, 0x34ff: 0x000a,\n\t// Block 0xd4, offset 0x3500\n\t0x3501: 0x000a, 0x3502: 0x000a, 0x3503: 0x000a, 0x3504: 0x000a, 0x3505: 0x000a,\n\t0x3506: 0x000a, 0x3507: 0x000a, 0x3508: 0x000a, 0x3509: 0x000a, 0x350a: 0x000a, 0x350b: 0x000a,\n\t0x350c: 0x000a, 0x350d: 0x000a, 0x350e: 0x000a, 0x350f: 0x000a, 0x3511: 0x000a,\n\t0x3512: 0x000a, 0x3513: 0x000a, 0x3514: 0x000a, 0x3515: 0x000a, 0x3516: 0x000a, 0x3517: 0x000a,\n\t0x3518: 0x000a, 0x3519: 0x000a, 0x351a: 0x000a, 0x351b: 0x000a, 0x351c: 0x000a, 0x351d: 0x000a,\n\t0x351e: 0x000a, 0x351f: 0x000a, 0x3520: 0x000a, 0x3521: 0x000a, 0x3522: 0x000a, 0x3523: 0x000a,\n\t0x3524: 0x000a, 0x3525: 0x000a, 0x3526: 0x000a, 0x3527: 0x000a, 0x3528: 0x000a, 0x3529: 0x000a,\n\t0x352a: 0x000a, 0x352b: 0x000a, 0x352c: 0x000a, 0x352d: 0x000a, 0x352e: 0x000a, 0x352f: 0x000a,\n\t0x3530: 0x000a, 0x3531: 0x000a, 0x3532: 0x000a, 0x3533: 0x000a, 0x3534: 0x000a, 0x3535: 0x000a,\n\t// Block 0xd5, offset 0x3540\n\t0x3540: 0x0002, 0x3541: 0x0002, 0x3542: 0x0002, 0x3543: 0x0002, 0x3544: 0x0002, 0x3545: 0x0002,\n\t0x3546: 0x0002, 0x3547: 0x0002, 0x3548: 0x0002, 0x3549: 0x0002, 0x354a: 0x0002, 0x354b: 0x000a,\n\t0x354c: 0x000a,\n\t// Block 0xd6, offset 0x3580\n\t0x35aa: 0x000a, 0x35ab: 0x000a,\n\t// Block 0xd7, offset 0x35c0\n\t0x35e0: 0x000a, 0x35e1: 0x000a, 0x35e2: 0x000a, 0x35e3: 0x000a,\n\t0x35e4: 0x000a, 0x35e5: 0x000a,\n\t// Block 0xd8, offset 0x3600\n\t0x3600: 0x000a, 0x3601: 0x000a, 0x3602: 0x000a, 0x3603: 0x000a, 0x3604: 0x000a, 0x3605: 0x000a,\n\t0x3606: 0x000a, 0x3607: 0x000a, 0x3608: 0x000a, 0x3609: 0x000a, 0x360a: 0x000a, 0x360b: 0x000a,\n\t0x360c: 0x000a, 0x360d: 0x000a, 0x360e: 0x000a, 0x360f: 0x000a, 0x3610: 0x000a, 0x3611: 0x000a,\n\t0x3612: 0x000a, 0x3613: 0x000a, 0x3614: 0x000a,\n\t0x3620: 0x000a, 0x3621: 0x000a, 0x3622: 0x000a, 0x3623: 0x000a,\n\t0x3624: 0x000a, 0x3625: 0x000a, 0x3626: 0x000a, 0x3627: 0x000a, 0x3628: 0x000a, 0x3629: 0x000a,\n\t0x362a: 0x000a, 0x362b: 0x000a, 0x362c: 0x000a,\n\t0x3630: 0x000a, 0x3631: 0x000a, 0x3632: 0x000a, 0x3633: 0x000a, 0x3634: 0x000a, 0x3635: 0x000a,\n\t0x3636: 0x000a, 0x3637: 0x000a, 0x3638: 0x000a,\n\t// Block 0xd9, offset 0x3640\n\t0x3640: 0x000a, 0x3641: 0x000a, 0x3642: 0x000a, 0x3643: 0x000a, 0x3644: 0x000a, 0x3645: 0x000a,\n\t0x3646: 0x000a, 0x3647: 0x000a, 0x3648: 0x000a, 0x3649: 0x000a, 0x364a: 0x000a, 0x364b: 0x000a,\n\t0x364c: 0x000a, 0x364d: 0x000a, 0x364e: 0x000a, 0x364f: 0x000a, 0x3650: 0x000a, 0x3651: 0x000a,\n\t0x3652: 0x000a, 0x3653: 0x000a, 0x3654: 0x000a,\n\t// Block 0xda, offset 0x3680\n\t0x3680: 0x000a, 0x3681: 0x000a, 0x3682: 0x000a, 0x3683: 0x000a, 0x3684: 0x000a, 0x3685: 0x000a,\n\t0x3686: 0x000a, 0x3687: 0x000a, 0x3688: 0x000a, 0x3689: 0x000a, 0x368a: 0x000a, 0x368b: 0x000a,\n\t0x3690: 0x000a, 0x3691: 0x000a,\n\t0x3692: 0x000a, 0x3693: 0x000a, 0x3694: 0x000a, 0x3695: 0x000a, 0x3696: 0x000a, 0x3697: 0x000a,\n\t0x3698: 0x000a, 0x3699: 0x000a, 0x369a: 0x000a, 0x369b: 0x000a, 0x369c: 0x000a, 0x369d: 0x000a,\n\t0x369e: 0x000a, 0x369f: 0x000a, 0x36a0: 0x000a, 0x36a1: 0x000a, 0x36a2: 0x000a, 0x36a3: 0x000a,\n\t0x36a4: 0x000a, 0x36a5: 0x000a, 0x36a6: 0x000a, 0x36a7: 0x000a, 0x36a8: 0x000a, 0x36a9: 0x000a,\n\t0x36aa: 0x000a, 0x36ab: 0x000a, 0x36ac: 0x000a, 0x36ad: 0x000a, 0x36ae: 0x000a, 0x36af: 0x000a,\n\t0x36b0: 0x000a, 0x36b1: 0x000a, 0x36b2: 0x000a, 0x36b3: 0x000a, 0x36b4: 0x000a, 0x36b5: 0x000a,\n\t0x36b6: 0x000a, 0x36b7: 0x000a, 0x36b8: 0x000a, 0x36b9: 0x000a, 0x36ba: 0x000a, 0x36bb: 0x000a,\n\t0x36bc: 0x000a, 0x36bd: 0x000a, 0x36be: 0x000a, 0x36bf: 0x000a,\n\t// Block 0xdb, offset 0x36c0\n\t0x36c0: 0x000a, 0x36c1: 0x000a, 0x36c2: 0x000a, 0x36c3: 0x000a, 0x36c4: 0x000a, 0x36c5: 0x000a,\n\t0x36c6: 0x000a, 0x36c7: 0x000a,\n\t0x36d0: 0x000a, 0x36d1: 0x000a,\n\t0x36d2: 0x000a, 0x36d3: 0x000a, 0x36d4: 0x000a, 0x36d5: 0x000a, 0x36d6: 0x000a, 0x36d7: 0x000a,\n\t0x36d8: 0x000a, 0x36d9: 0x000a,\n\t0x36e0: 0x000a, 0x36e1: 0x000a, 0x36e2: 0x000a, 0x36e3: 0x000a,\n\t0x36e4: 0x000a, 0x36e5: 0x000a, 0x36e6: 0x000a, 0x36e7: 0x000a, 0x36e8: 0x000a, 0x36e9: 0x000a,\n\t0x36ea: 0x000a, 0x36eb: 0x000a, 0x36ec: 0x000a, 0x36ed: 0x000a, 0x36ee: 0x000a, 0x36ef: 0x000a,\n\t0x36f0: 0x000a, 0x36f1: 0x000a, 0x36f2: 0x000a, 0x36f3: 0x000a, 0x36f4: 0x000a, 0x36f5: 0x000a,\n\t0x36f6: 0x000a, 0x36f7: 0x000a, 0x36f8: 0x000a, 0x36f9: 0x000a, 0x36fa: 0x000a, 0x36fb: 0x000a,\n\t0x36fc: 0x000a, 0x36fd: 0x000a, 0x36fe: 0x000a, 0x36ff: 0x000a,\n\t// Block 0xdc, offset 0x3700\n\t0x3700: 0x000a, 0x3701: 0x000a, 0x3702: 0x000a, 0x3703: 0x000a, 0x3704: 0x000a, 0x3705: 0x000a,\n\t0x3706: 0x000a, 0x3707: 0x000a,\n\t0x3710: 0x000a, 0x3711: 0x000a,\n\t0x3712: 0x000a, 0x3713: 0x000a, 0x3714: 0x000a, 0x3715: 0x000a, 0x3716: 0x000a, 0x3717: 0x000a,\n\t0x3718: 0x000a, 0x3719: 0x000a, 0x371a: 0x000a, 0x371b: 0x000a, 0x371c: 0x000a, 0x371d: 0x000a,\n\t0x371e: 0x000a, 0x371f: 0x000a, 0x3720: 0x000a, 0x3721: 0x000a, 0x3722: 0x000a, 0x3723: 0x000a,\n\t0x3724: 0x000a, 0x3725: 0x000a, 0x3726: 0x000a, 0x3727: 0x000a, 0x3728: 0x000a, 0x3729: 0x000a,\n\t0x372a: 0x000a, 0x372b: 0x000a, 0x372c: 0x000a, 0x372d: 0x000a,\n\t// Block 0xdd, offset 0x3740\n\t0x3740: 0x000a, 0x3741: 0x000a, 0x3742: 0x000a, 0x3743: 0x000a, 0x3744: 0x000a, 0x3745: 0x000a,\n\t0x3746: 0x000a, 0x3747: 0x000a, 0x3748: 0x000a, 0x3749: 0x000a, 0x374a: 0x000a, 0x374b: 0x000a,\n\t0x3750: 0x000a, 0x3751: 0x000a,\n\t0x3752: 0x000a, 0x3753: 0x000a, 0x3754: 0x000a, 0x3755: 0x000a, 0x3756: 0x000a, 0x3757: 0x000a,\n\t0x3758: 0x000a, 0x3759: 0x000a, 0x375a: 0x000a, 0x375b: 0x000a, 0x375c: 0x000a, 0x375d: 0x000a,\n\t0x375e: 0x000a, 0x375f: 0x000a, 0x3760: 0x000a, 0x3761: 0x000a, 0x3762: 0x000a, 0x3763: 0x000a,\n\t0x3764: 0x000a, 0x3765: 0x000a, 0x3766: 0x000a, 0x3767: 0x000a, 0x3768: 0x000a, 0x3769: 0x000a,\n\t0x376a: 0x000a, 0x376b: 0x000a, 0x376c: 0x000a, 0x376d: 0x000a, 0x376e: 0x000a, 0x376f: 0x000a,\n\t0x3770: 0x000a, 0x3771: 0x000a, 0x3772: 0x000a, 0x3773: 0x000a, 0x3774: 0x000a, 0x3775: 0x000a,\n\t0x3776: 0x000a, 0x3777: 0x000a, 0x3778: 0x000a, 0x3779: 0x000a, 0x377a: 0x000a, 0x377b: 0x000a,\n\t0x377c: 0x000a, 0x377d: 0x000a, 0x377e: 0x000a,\n\t// Block 0xde, offset 0x3780\n\t0x3780: 0x000a, 0x3781: 0x000a, 0x3782: 0x000a, 0x3783: 0x000a, 0x3784: 0x000a, 0x3785: 0x000a,\n\t0x3786: 0x000a, 0x3787: 0x000a, 0x3788: 0x000a, 0x3789: 0x000a, 0x378a: 0x000a, 0x378b: 0x000a,\n\t0x378c: 0x000a, 0x3790: 0x000a, 0x3791: 0x000a,\n\t0x3792: 0x000a, 0x3793: 0x000a, 0x3794: 0x000a, 0x3795: 0x000a, 0x3796: 0x000a, 0x3797: 0x000a,\n\t0x3798: 0x000a, 0x3799: 0x000a, 0x379a: 0x000a, 0x379b: 0x000a, 0x379c: 0x000a, 0x379d: 0x000a,\n\t0x379e: 0x000a, 0x379f: 0x000a, 0x37a0: 0x000a, 0x37a1: 0x000a, 0x37a2: 0x000a, 0x37a3: 0x000a,\n\t0x37a4: 0x000a, 0x37a5: 0x000a, 0x37a6: 0x000a, 0x37a7: 0x000a, 0x37a8: 0x000a, 0x37a9: 0x000a,\n\t0x37aa: 0x000a, 0x37ab: 0x000a,\n\t// Block 0xdf, offset 0x37c0\n\t0x37c0: 0x000a, 0x37c1: 0x000a, 0x37c2: 0x000a, 0x37c3: 0x000a, 0x37c4: 0x000a, 0x37c5: 0x000a,\n\t0x37c6: 0x000a, 0x37c7: 0x000a, 0x37c8: 0x000a, 0x37c9: 0x000a, 0x37ca: 0x000a, 0x37cb: 0x000a,\n\t0x37cc: 0x000a, 0x37cd: 0x000a, 0x37ce: 0x000a, 0x37cf: 0x000a, 0x37d0: 0x000a, 0x37d1: 0x000a,\n\t0x37d2: 0x000a, 0x37d3: 0x000a, 0x37d4: 0x000a, 0x37d5: 0x000a, 0x37d6: 0x000a, 0x37d7: 0x000a,\n\t// Block 0xe0, offset 0x3800\n\t0x3800: 0x000a,\n\t0x3810: 0x000a, 0x3811: 0x000a,\n\t0x3812: 0x000a, 0x3813: 0x000a, 0x3814: 0x000a, 0x3815: 0x000a, 0x3816: 0x000a, 0x3817: 0x000a,\n\t0x3818: 0x000a, 0x3819: 0x000a, 0x381a: 0x000a, 0x381b: 0x000a, 0x381c: 0x000a, 0x381d: 0x000a,\n\t0x381e: 0x000a, 0x381f: 0x000a, 0x3820: 0x000a, 0x3821: 0x000a, 0x3822: 0x000a, 0x3823: 0x000a,\n\t0x3824: 0x000a, 0x3825: 0x000a, 0x3826: 0x000a,\n\t// Block 0xe1, offset 0x3840\n\t0x387e: 0x000b, 0x387f: 0x000b,\n\t// Block 0xe2, offset 0x3880\n\t0x3880: 0x000b, 0x3881: 0x000b, 0x3882: 0x000b, 0x3883: 0x000b, 0x3884: 0x000b, 0x3885: 0x000b,\n\t0x3886: 0x000b, 0x3887: 0x000b, 0x3888: 0x000b, 0x3889: 0x000b, 0x388a: 0x000b, 0x388b: 0x000b,\n\t0x388c: 0x000b, 0x388d: 0x000b, 0x388e: 0x000b, 0x388f: 0x000b, 0x3890: 0x000b, 0x3891: 0x000b,\n\t0x3892: 0x000b, 0x3893: 0x000b, 0x3894: 0x000b, 0x3895: 0x000b, 0x3896: 0x000b, 0x3897: 0x000b,\n\t0x3898: 0x000b, 0x3899: 0x000b, 0x389a: 0x000b, 0x389b: 0x000b, 0x389c: 0x000b, 0x389d: 0x000b,\n\t0x389e: 0x000b, 0x389f: 0x000b, 0x38a0: 0x000b, 0x38a1: 0x000b, 0x38a2: 0x000b, 0x38a3: 0x000b,\n\t0x38a4: 0x000b, 0x38a5: 0x000b, 0x38a6: 0x000b, 0x38a7: 0x000b, 0x38a8: 0x000b, 0x38a9: 0x000b,\n\t0x38aa: 0x000b, 0x38ab: 0x000b, 0x38ac: 0x000b, 0x38ad: 0x000b, 0x38ae: 0x000b, 0x38af: 0x000b,\n\t0x38b0: 0x000b, 0x38b1: 0x000b, 0x38b2: 0x000b, 0x38b3: 0x000b, 0x38b4: 0x000b, 0x38b5: 0x000b,\n\t0x38b6: 0x000b, 0x38b7: 0x000b, 0x38b8: 0x000b, 0x38b9: 0x000b, 0x38ba: 0x000b, 0x38bb: 0x000b,\n\t0x38bc: 0x000b, 0x38bd: 0x000b, 0x38be: 0x000b, 0x38bf: 0x000b,\n\t// Block 0xe3, offset 0x38c0\n\t0x38c0: 0x000c, 0x38c1: 0x000c, 0x38c2: 0x000c, 0x38c3: 0x000c, 0x38c4: 0x000c, 0x38c5: 0x000c,\n\t0x38c6: 0x000c, 0x38c7: 0x000c, 0x38c8: 0x000c, 0x38c9: 0x000c, 0x38ca: 0x000c, 0x38cb: 0x000c,\n\t0x38cc: 0x000c, 0x38cd: 0x000c, 0x38ce: 0x000c, 0x38cf: 0x000c, 0x38d0: 0x000c, 0x38d1: 0x000c,\n\t0x38d2: 0x000c, 0x38d3: 0x000c, 0x38d4: 0x000c, 0x38d5: 0x000c, 0x38d6: 0x000c, 0x38d7: 0x000c,\n\t0x38d8: 0x000c, 0x38d9: 0x000c, 0x38da: 0x000c, 0x38db: 0x000c, 0x38dc: 0x000c, 0x38dd: 0x000c,\n\t0x38de: 0x000c, 0x38df: 0x000c, 0x38e0: 0x000c, 0x38e1: 0x000c, 0x38e2: 0x000c, 0x38e3: 0x000c,\n\t0x38e4: 0x000c, 0x38e5: 0x000c, 0x38e6: 0x000c, 0x38e7: 0x000c, 0x38e8: 0x000c, 0x38e9: 0x000c,\n\t0x38ea: 0x000c, 0x38eb: 0x000c, 0x38ec: 0x000c, 0x38ed: 0x000c, 0x38ee: 0x000c, 0x38ef: 0x000c,\n\t0x38f0: 0x000b, 0x38f1: 0x000b, 0x38f2: 0x000b, 0x38f3: 0x000b, 0x38f4: 0x000b, 0x38f5: 0x000b,\n\t0x38f6: 0x000b, 0x38f7: 0x000b, 0x38f8: 0x000b, 0x38f9: 0x000b, 0x38fa: 0x000b, 0x38fb: 0x000b,\n\t0x38fc: 0x000b, 0x38fd: 0x000b, 0x38fe: 0x000b, 0x38ff: 0x000b,\n}\n\n// bidiIndex: 24 blocks, 1536 entries, 1536 bytes\n// Block 0 is the zero block.\nvar bidiIndex = [1536]uint8{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x01, 0xc3: 0x02,\n\t0xca: 0x03, 0xcb: 0x04, 0xcc: 0x05, 0xcd: 0x06, 0xce: 0x07, 0xcf: 0x08,\n\t0xd2: 0x09, 0xd6: 0x0a, 0xd7: 0x0b,\n\t0xd8: 0x0c, 0xd9: 0x0d, 0xda: 0x0e, 0xdb: 0x0f, 0xdc: 0x10, 0xdd: 0x11, 0xde: 0x12, 0xdf: 0x13,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06,\n\t0xea: 0x07, 0xef: 0x08,\n\t0xf0: 0x11, 0xf1: 0x12, 0xf2: 0x12, 0xf3: 0x14, 0xf4: 0x15,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x14, 0x121: 0x15, 0x122: 0x16, 0x123: 0x17, 0x124: 0x18, 0x125: 0x19, 0x126: 0x1a, 0x127: 0x1b,\n\t0x128: 0x1c, 0x129: 0x1d, 0x12a: 0x1c, 0x12b: 0x1e, 0x12c: 0x1f, 0x12d: 0x20, 0x12e: 0x21, 0x12f: 0x22,\n\t0x130: 0x23, 0x131: 0x24, 0x132: 0x1a, 0x133: 0x25, 0x134: 0x26, 0x135: 0x27, 0x137: 0x28,\n\t0x138: 0x29, 0x139: 0x2a, 0x13a: 0x2b, 0x13b: 0x2c, 0x13c: 0x2d, 0x13d: 0x2e, 0x13e: 0x2f, 0x13f: 0x30,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x31, 0x141: 0x32, 0x142: 0x33,\n\t0x14d: 0x34, 0x14e: 0x35,\n\t0x150: 0x36,\n\t0x15a: 0x37, 0x15c: 0x38, 0x15d: 0x39, 0x15e: 0x3a, 0x15f: 0x3b,\n\t0x160: 0x3c, 0x162: 0x3d, 0x164: 0x3e, 0x165: 0x3f, 0x167: 0x40,\n\t0x168: 0x41, 0x169: 0x42, 0x16a: 0x43, 0x16c: 0x44, 0x16d: 0x45, 0x16e: 0x46, 0x16f: 0x47,\n\t0x170: 0x48, 0x173: 0x49, 0x177: 0x4a,\n\t0x17e: 0x4b, 0x17f: 0x4c,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x4d, 0x181: 0x4e, 0x182: 0x4f, 0x183: 0x50, 0x184: 0x51, 0x185: 0x52, 0x186: 0x53, 0x187: 0x54,\n\t0x188: 0x55, 0x189: 0x54, 0x18a: 0x54, 0x18b: 0x54, 0x18c: 0x56, 0x18d: 0x57, 0x18e: 0x58, 0x18f: 0x54,\n\t0x190: 0x59, 0x191: 0x5a, 0x192: 0x5b, 0x193: 0x5c, 0x194: 0x54, 0x195: 0x54, 0x196: 0x54, 0x197: 0x54,\n\t0x198: 0x54, 0x199: 0x54, 0x19a: 0x5d, 0x19b: 0x54, 0x19c: 0x54, 0x19d: 0x5e, 0x19e: 0x54, 0x19f: 0x5f,\n\t0x1a4: 0x54, 0x1a5: 0x54, 0x1a6: 0x60, 0x1a7: 0x61,\n\t0x1a8: 0x54, 0x1a9: 0x54, 0x1aa: 0x54, 0x1ab: 0x54, 0x1ac: 0x54, 0x1ad: 0x62, 0x1ae: 0x63, 0x1af: 0x64,\n\t0x1b3: 0x65, 0x1b5: 0x66, 0x1b7: 0x67,\n\t0x1b8: 0x68, 0x1b9: 0x69, 0x1ba: 0x6a, 0x1bb: 0x6b, 0x1bc: 0x54, 0x1bd: 0x54, 0x1be: 0x54, 0x1bf: 0x6c,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x6d, 0x1c2: 0x6e, 0x1c3: 0x6f, 0x1c7: 0x70,\n\t0x1c8: 0x71, 0x1c9: 0x72, 0x1ca: 0x73, 0x1cb: 0x74, 0x1cd: 0x75, 0x1cf: 0x76,\n\t// Block 0x8, offset 0x200\n\t0x237: 0x54,\n\t// Block 0x9, offset 0x240\n\t0x252: 0x77, 0x253: 0x78,\n\t0x258: 0x79, 0x259: 0x7a, 0x25a: 0x7b, 0x25b: 0x7c, 0x25c: 0x7d, 0x25e: 0x7e,\n\t0x260: 0x7f, 0x261: 0x80, 0x263: 0x81, 0x264: 0x82, 0x265: 0x83, 0x266: 0x84, 0x267: 0x85,\n\t0x268: 0x86, 0x269: 0x87, 0x26a: 0x88, 0x26b: 0x89, 0x26f: 0x8a,\n\t// Block 0xa, offset 0x280\n\t0x2ac: 0x8b, 0x2ad: 0x8c, 0x2ae: 0x0e, 0x2af: 0x0e,\n\t0x2b0: 0x0e, 0x2b1: 0x0e, 0x2b2: 0x0e, 0x2b3: 0x0e, 0x2b4: 0x8d, 0x2b5: 0x0e, 0x2b6: 0x0e, 0x2b7: 0x8e,\n\t0x2b8: 0x8f, 0x2b9: 0x90, 0x2ba: 0x0e, 0x2bb: 0x91, 0x2bc: 0x92, 0x2bd: 0x93, 0x2bf: 0x94,\n\t// Block 0xb, offset 0x2c0\n\t0x2c4: 0x95, 0x2c5: 0x54, 0x2c6: 0x96, 0x2c7: 0x97,\n\t0x2cb: 0x98, 0x2cd: 0x99,\n\t0x2e0: 0x9a, 0x2e1: 0x9a, 0x2e2: 0x9a, 0x2e3: 0x9a, 0x2e4: 0x9b, 0x2e5: 0x9a, 0x2e6: 0x9a, 0x2e7: 0x9a,\n\t0x2e8: 0x9c, 0x2e9: 0x9a, 0x2ea: 0x9a, 0x2eb: 0x9d, 0x2ec: 0x9e, 0x2ed: 0x9a, 0x2ee: 0x9a, 0x2ef: 0x9a,\n\t0x2f0: 0x9a, 0x2f1: 0x9a, 0x2f2: 0x9a, 0x2f3: 0x9a, 0x2f4: 0x9a, 0x2f5: 0x9a, 0x2f6: 0x9a, 0x2f7: 0x9a,\n\t0x2f8: 0x9a, 0x2f9: 0x9f, 0x2fa: 0x9a, 0x2fb: 0x9a, 0x2fc: 0x9a, 0x2fd: 0x9a, 0x2fe: 0x9a, 0x2ff: 0x9a,\n\t// Block 0xc, offset 0x300\n\t0x300: 0xa0, 0x301: 0xa1, 0x302: 0xa2, 0x304: 0xa3, 0x305: 0xa4, 0x306: 0xa5, 0x307: 0xa6,\n\t0x308: 0xa7, 0x30b: 0xa8, 0x30c: 0xa9, 0x30d: 0xaa,\n\t0x310: 0xab, 0x311: 0xac, 0x312: 0xad, 0x313: 0xae, 0x316: 0xaf, 0x317: 0xb0,\n\t0x318: 0xb1, 0x319: 0xb2, 0x31a: 0xb3, 0x31c: 0xb4,\n\t0x328: 0xb5, 0x329: 0xb6, 0x32a: 0xb7,\n\t0x330: 0xb8, 0x332: 0xb9, 0x334: 0xba, 0x335: 0xbb,\n\t// Block 0xd, offset 0x340\n\t0x36b: 0xbc, 0x36c: 0xbd,\n\t0x37e: 0xbe,\n\t// Block 0xe, offset 0x380\n\t0x3b2: 0xbf,\n\t// Block 0xf, offset 0x3c0\n\t0x3c5: 0xc0, 0x3c6: 0xc1,\n\t0x3c8: 0x54, 0x3c9: 0xc2, 0x3cc: 0x54, 0x3cd: 0xc3,\n\t0x3db: 0xc4, 0x3dc: 0xc5, 0x3dd: 0xc6, 0x3de: 0xc7, 0x3df: 0xc8,\n\t0x3e8: 0xc9, 0x3e9: 0xca, 0x3ea: 0xcb,\n\t// Block 0x10, offset 0x400\n\t0x400: 0xcc,\n\t0x420: 0x9a, 0x421: 0x9a, 0x422: 0x9a, 0x423: 0xcd, 0x424: 0x9a, 0x425: 0xce, 0x426: 0x9a, 0x427: 0x9a,\n\t0x428: 0x9a, 0x429: 0x9a, 0x42a: 0x9a, 0x42b: 0x9a, 0x42c: 0x9a, 0x42d: 0x9a, 0x42e: 0x9a, 0x42f: 0x9a,\n\t0x430: 0x9a, 0x431: 0x9a, 0x432: 0x9a, 0x433: 0x9a, 0x434: 0x9a, 0x435: 0x9a, 0x436: 0x9a, 0x437: 0x9a,\n\t0x438: 0x0e, 0x439: 0x0e, 0x43a: 0x0e, 0x43b: 0xcf, 0x43c: 0x9a, 0x43d: 0x9a, 0x43e: 0x9a, 0x43f: 0x9a,\n\t// Block 0x11, offset 0x440\n\t0x440: 0xd0, 0x441: 0x54, 0x442: 0xd1, 0x443: 0xd2, 0x444: 0xd3, 0x445: 0xd4,\n\t0x449: 0xd5, 0x44c: 0x54, 0x44d: 0x54, 0x44e: 0x54, 0x44f: 0x54,\n\t0x450: 0x54, 0x451: 0x54, 0x452: 0x54, 0x453: 0x54, 0x454: 0x54, 0x455: 0x54, 0x456: 0x54, 0x457: 0x54,\n\t0x458: 0x54, 0x459: 0x54, 0x45a: 0x54, 0x45b: 0xd6, 0x45c: 0x54, 0x45d: 0x6b, 0x45e: 0x54, 0x45f: 0xd7,\n\t0x460: 0xd8, 0x461: 0xd9, 0x462: 0xda, 0x464: 0xdb, 0x465: 0xdc, 0x466: 0xdd, 0x467: 0xde,\n\t0x47f: 0xdf,\n\t// Block 0x12, offset 0x480\n\t0x4bf: 0xdf,\n\t// Block 0x13, offset 0x4c0\n\t0x4d0: 0x09, 0x4d1: 0x0a, 0x4d6: 0x0b,\n\t0x4db: 0x0c, 0x4dd: 0x0d, 0x4de: 0x0e, 0x4df: 0x0f,\n\t0x4ef: 0x10,\n\t0x4ff: 0x10,\n\t// Block 0x14, offset 0x500\n\t0x50f: 0x10,\n\t0x51f: 0x10,\n\t0x52f: 0x10,\n\t0x53f: 0x10,\n\t// Block 0x15, offset 0x540\n\t0x540: 0xe0, 0x541: 0xe0, 0x542: 0xe0, 0x543: 0xe0, 0x544: 0x05, 0x545: 0x05, 0x546: 0x05, 0x547: 0xe1,\n\t0x548: 0xe0, 0x549: 0xe0, 0x54a: 0xe0, 0x54b: 0xe0, 0x54c: 0xe0, 0x54d: 0xe0, 0x54e: 0xe0, 0x54f: 0xe0,\n\t0x550: 0xe0, 0x551: 0xe0, 0x552: 0xe0, 0x553: 0xe0, 0x554: 0xe0, 0x555: 0xe0, 0x556: 0xe0, 0x557: 0xe0,\n\t0x558: 0xe0, 0x559: 0xe0, 0x55a: 0xe0, 0x55b: 0xe0, 0x55c: 0xe0, 0x55d: 0xe0, 0x55e: 0xe0, 0x55f: 0xe0,\n\t0x560: 0xe0, 0x561: 0xe0, 0x562: 0xe0, 0x563: 0xe0, 0x564: 0xe0, 0x565: 0xe0, 0x566: 0xe0, 0x567: 0xe0,\n\t0x568: 0xe0, 0x569: 0xe0, 0x56a: 0xe0, 0x56b: 0xe0, 0x56c: 0xe0, 0x56d: 0xe0, 0x56e: 0xe0, 0x56f: 0xe0,\n\t0x570: 0xe0, 0x571: 0xe0, 0x572: 0xe0, 0x573: 0xe0, 0x574: 0xe0, 0x575: 0xe0, 0x576: 0xe0, 0x577: 0xe0,\n\t0x578: 0xe0, 0x579: 0xe0, 0x57a: 0xe0, 0x57b: 0xe0, 0x57c: 0xe0, 0x57d: 0xe0, 0x57e: 0xe0, 0x57f: 0xe0,\n\t// Block 0x16, offset 0x580\n\t0x58f: 0x10,\n\t0x59f: 0x10,\n\t0x5a0: 0x13,\n\t0x5af: 0x10,\n\t0x5bf: 0x10,\n\t// Block 0x17, offset 0x5c0\n\t0x5cf: 0x10,\n}\n\n// Total table size 16184 bytes (15KiB); checksum: F50EF68C\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/bidi/tables11.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n//go:build go1.13 && !go1.14\n\npackage bidi\n\n// UnicodeVersion is the Unicode version from which the tables in this package are derived.\nconst UnicodeVersion = \"11.0.0\"\n\n// xorMasks contains masks to be xor-ed with brackets to get the reverse\n// version.\nvar xorMasks = []int32{ // 8 elements\n\t0, 1, 6, 7, 3, 15, 29, 63,\n} // Size: 56 bytes\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *bidiTrie) lookup(s []byte) (v uint8, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn bidiValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = bidiIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *bidiTrie) lookupUnsafe(s []byte) uint8 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn bidiValues[c0]\n\t}\n\ti := bidiIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *bidiTrie) lookupString(s string) (v uint8, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn bidiValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = bidiIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *bidiTrie) lookupStringUnsafe(s string) uint8 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn bidiValues[c0]\n\t}\n\ti := bidiIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// bidiTrie. Total size: 16512 bytes (16.12 KiB). Checksum: 2a9cf1317f2ffaa.\ntype bidiTrie struct{}\n\nfunc newBidiTrie(i int) *bidiTrie {\n\treturn &bidiTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *bidiTrie) lookupValue(n uint32, b byte) uint8 {\n\tswitch {\n\tdefault:\n\t\treturn uint8(bidiValues[n<<6+uint32(b)])\n\t}\n}\n\n// bidiValues: 234 blocks, 14976 entries, 14976 bytes\n// The third block is the zero block.\nvar bidiValues = [14976]uint8{\n\t// Block 0x0, offset 0x0\n\t0x00: 0x000b, 0x01: 0x000b, 0x02: 0x000b, 0x03: 0x000b, 0x04: 0x000b, 0x05: 0x000b,\n\t0x06: 0x000b, 0x07: 0x000b, 0x08: 0x000b, 0x09: 0x0008, 0x0a: 0x0007, 0x0b: 0x0008,\n\t0x0c: 0x0009, 0x0d: 0x0007, 0x0e: 0x000b, 0x0f: 0x000b, 0x10: 0x000b, 0x11: 0x000b,\n\t0x12: 0x000b, 0x13: 0x000b, 0x14: 0x000b, 0x15: 0x000b, 0x16: 0x000b, 0x17: 0x000b,\n\t0x18: 0x000b, 0x19: 0x000b, 0x1a: 0x000b, 0x1b: 0x000b, 0x1c: 0x0007, 0x1d: 0x0007,\n\t0x1e: 0x0007, 0x1f: 0x0008, 0x20: 0x0009, 0x21: 0x000a, 0x22: 0x000a, 0x23: 0x0004,\n\t0x24: 0x0004, 0x25: 0x0004, 0x26: 0x000a, 0x27: 0x000a, 0x28: 0x003a, 0x29: 0x002a,\n\t0x2a: 0x000a, 0x2b: 0x0003, 0x2c: 0x0006, 0x2d: 0x0003, 0x2e: 0x0006, 0x2f: 0x0006,\n\t0x30: 0x0002, 0x31: 0x0002, 0x32: 0x0002, 0x33: 0x0002, 0x34: 0x0002, 0x35: 0x0002,\n\t0x36: 0x0002, 0x37: 0x0002, 0x38: 0x0002, 0x39: 0x0002, 0x3a: 0x0006, 0x3b: 0x000a,\n\t0x3c: 0x000a, 0x3d: 0x000a, 0x3e: 0x000a, 0x3f: 0x000a,\n\t// Block 0x1, offset 0x40\n\t0x40: 0x000a,\n\t0x5b: 0x005a, 0x5c: 0x000a, 0x5d: 0x004a,\n\t0x5e: 0x000a, 0x5f: 0x000a, 0x60: 0x000a,\n\t0x7b: 0x005a,\n\t0x7c: 0x000a, 0x7d: 0x004a, 0x7e: 0x000a, 0x7f: 0x000b,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x000b, 0xc1: 0x000b, 0xc2: 0x000b, 0xc3: 0x000b, 0xc4: 0x000b, 0xc5: 0x0007,\n\t0xc6: 0x000b, 0xc7: 0x000b, 0xc8: 0x000b, 0xc9: 0x000b, 0xca: 0x000b, 0xcb: 0x000b,\n\t0xcc: 0x000b, 0xcd: 0x000b, 0xce: 0x000b, 0xcf: 0x000b, 0xd0: 0x000b, 0xd1: 0x000b,\n\t0xd2: 0x000b, 0xd3: 0x000b, 0xd4: 0x000b, 0xd5: 0x000b, 0xd6: 0x000b, 0xd7: 0x000b,\n\t0xd8: 0x000b, 0xd9: 0x000b, 0xda: 0x000b, 0xdb: 0x000b, 0xdc: 0x000b, 0xdd: 0x000b,\n\t0xde: 0x000b, 0xdf: 0x000b, 0xe0: 0x0006, 0xe1: 0x000a, 0xe2: 0x0004, 0xe3: 0x0004,\n\t0xe4: 0x0004, 0xe5: 0x0004, 0xe6: 0x000a, 0xe7: 0x000a, 0xe8: 0x000a, 0xe9: 0x000a,\n\t0xeb: 0x000a, 0xec: 0x000a, 0xed: 0x000b, 0xee: 0x000a, 0xef: 0x000a,\n\t0xf0: 0x0004, 0xf1: 0x0004, 0xf2: 0x0002, 0xf3: 0x0002, 0xf4: 0x000a,\n\t0xf6: 0x000a, 0xf7: 0x000a, 0xf8: 0x000a, 0xf9: 0x0002, 0xfb: 0x000a,\n\t0xfc: 0x000a, 0xfd: 0x000a, 0xfe: 0x000a, 0xff: 0x000a,\n\t// Block 0x4, offset 0x100\n\t0x117: 0x000a,\n\t0x137: 0x000a,\n\t// Block 0x5, offset 0x140\n\t0x179: 0x000a, 0x17a: 0x000a,\n\t// Block 0x6, offset 0x180\n\t0x182: 0x000a, 0x183: 0x000a, 0x184: 0x000a, 0x185: 0x000a,\n\t0x186: 0x000a, 0x187: 0x000a, 0x188: 0x000a, 0x189: 0x000a, 0x18a: 0x000a, 0x18b: 0x000a,\n\t0x18c: 0x000a, 0x18d: 0x000a, 0x18e: 0x000a, 0x18f: 0x000a,\n\t0x192: 0x000a, 0x193: 0x000a, 0x194: 0x000a, 0x195: 0x000a, 0x196: 0x000a, 0x197: 0x000a,\n\t0x198: 0x000a, 0x199: 0x000a, 0x19a: 0x000a, 0x19b: 0x000a, 0x19c: 0x000a, 0x19d: 0x000a,\n\t0x19e: 0x000a, 0x19f: 0x000a,\n\t0x1a5: 0x000a, 0x1a6: 0x000a, 0x1a7: 0x000a, 0x1a8: 0x000a, 0x1a9: 0x000a,\n\t0x1aa: 0x000a, 0x1ab: 0x000a, 0x1ac: 0x000a, 0x1ad: 0x000a, 0x1af: 0x000a,\n\t0x1b0: 0x000a, 0x1b1: 0x000a, 0x1b2: 0x000a, 0x1b3: 0x000a, 0x1b4: 0x000a, 0x1b5: 0x000a,\n\t0x1b6: 0x000a, 0x1b7: 0x000a, 0x1b8: 0x000a, 0x1b9: 0x000a, 0x1ba: 0x000a, 0x1bb: 0x000a,\n\t0x1bc: 0x000a, 0x1bd: 0x000a, 0x1be: 0x000a, 0x1bf: 0x000a,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x000c, 0x1c1: 0x000c, 0x1c2: 0x000c, 0x1c3: 0x000c, 0x1c4: 0x000c, 0x1c5: 0x000c,\n\t0x1c6: 0x000c, 0x1c7: 0x000c, 0x1c8: 0x000c, 0x1c9: 0x000c, 0x1ca: 0x000c, 0x1cb: 0x000c,\n\t0x1cc: 0x000c, 0x1cd: 0x000c, 0x1ce: 0x000c, 0x1cf: 0x000c, 0x1d0: 0x000c, 0x1d1: 0x000c,\n\t0x1d2: 0x000c, 0x1d3: 0x000c, 0x1d4: 0x000c, 0x1d5: 0x000c, 0x1d6: 0x000c, 0x1d7: 0x000c,\n\t0x1d8: 0x000c, 0x1d9: 0x000c, 0x1da: 0x000c, 0x1db: 0x000c, 0x1dc: 0x000c, 0x1dd: 0x000c,\n\t0x1de: 0x000c, 0x1df: 0x000c, 0x1e0: 0x000c, 0x1e1: 0x000c, 0x1e2: 0x000c, 0x1e3: 0x000c,\n\t0x1e4: 0x000c, 0x1e5: 0x000c, 0x1e6: 0x000c, 0x1e7: 0x000c, 0x1e8: 0x000c, 0x1e9: 0x000c,\n\t0x1ea: 0x000c, 0x1eb: 0x000c, 0x1ec: 0x000c, 0x1ed: 0x000c, 0x1ee: 0x000c, 0x1ef: 0x000c,\n\t0x1f0: 0x000c, 0x1f1: 0x000c, 0x1f2: 0x000c, 0x1f3: 0x000c, 0x1f4: 0x000c, 0x1f5: 0x000c,\n\t0x1f6: 0x000c, 0x1f7: 0x000c, 0x1f8: 0x000c, 0x1f9: 0x000c, 0x1fa: 0x000c, 0x1fb: 0x000c,\n\t0x1fc: 0x000c, 0x1fd: 0x000c, 0x1fe: 0x000c, 0x1ff: 0x000c,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x000c, 0x201: 0x000c, 0x202: 0x000c, 0x203: 0x000c, 0x204: 0x000c, 0x205: 0x000c,\n\t0x206: 0x000c, 0x207: 0x000c, 0x208: 0x000c, 0x209: 0x000c, 0x20a: 0x000c, 0x20b: 0x000c,\n\t0x20c: 0x000c, 0x20d: 0x000c, 0x20e: 0x000c, 0x20f: 0x000c, 0x210: 0x000c, 0x211: 0x000c,\n\t0x212: 0x000c, 0x213: 0x000c, 0x214: 0x000c, 0x215: 0x000c, 0x216: 0x000c, 0x217: 0x000c,\n\t0x218: 0x000c, 0x219: 0x000c, 0x21a: 0x000c, 0x21b: 0x000c, 0x21c: 0x000c, 0x21d: 0x000c,\n\t0x21e: 0x000c, 0x21f: 0x000c, 0x220: 0x000c, 0x221: 0x000c, 0x222: 0x000c, 0x223: 0x000c,\n\t0x224: 0x000c, 0x225: 0x000c, 0x226: 0x000c, 0x227: 0x000c, 0x228: 0x000c, 0x229: 0x000c,\n\t0x22a: 0x000c, 0x22b: 0x000c, 0x22c: 0x000c, 0x22d: 0x000c, 0x22e: 0x000c, 0x22f: 0x000c,\n\t0x234: 0x000a, 0x235: 0x000a,\n\t0x23e: 0x000a,\n\t// Block 0x9, offset 0x240\n\t0x244: 0x000a, 0x245: 0x000a,\n\t0x247: 0x000a,\n\t// Block 0xa, offset 0x280\n\t0x2b6: 0x000a,\n\t// Block 0xb, offset 0x2c0\n\t0x2c3: 0x000c, 0x2c4: 0x000c, 0x2c5: 0x000c,\n\t0x2c6: 0x000c, 0x2c7: 0x000c, 0x2c8: 0x000c, 0x2c9: 0x000c,\n\t// Block 0xc, offset 0x300\n\t0x30a: 0x000a,\n\t0x30d: 0x000a, 0x30e: 0x000a, 0x30f: 0x0004, 0x310: 0x0001, 0x311: 0x000c,\n\t0x312: 0x000c, 0x313: 0x000c, 0x314: 0x000c, 0x315: 0x000c, 0x316: 0x000c, 0x317: 0x000c,\n\t0x318: 0x000c, 0x319: 0x000c, 0x31a: 0x000c, 0x31b: 0x000c, 0x31c: 0x000c, 0x31d: 0x000c,\n\t0x31e: 0x000c, 0x31f: 0x000c, 0x320: 0x000c, 0x321: 0x000c, 0x322: 0x000c, 0x323: 0x000c,\n\t0x324: 0x000c, 0x325: 0x000c, 0x326: 0x000c, 0x327: 0x000c, 0x328: 0x000c, 0x329: 0x000c,\n\t0x32a: 0x000c, 0x32b: 0x000c, 0x32c: 0x000c, 0x32d: 0x000c, 0x32e: 0x000c, 0x32f: 0x000c,\n\t0x330: 0x000c, 0x331: 0x000c, 0x332: 0x000c, 0x333: 0x000c, 0x334: 0x000c, 0x335: 0x000c,\n\t0x336: 0x000c, 0x337: 0x000c, 0x338: 0x000c, 0x339: 0x000c, 0x33a: 0x000c, 0x33b: 0x000c,\n\t0x33c: 0x000c, 0x33d: 0x000c, 0x33e: 0x0001, 0x33f: 0x000c,\n\t// Block 0xd, offset 0x340\n\t0x340: 0x0001, 0x341: 0x000c, 0x342: 0x000c, 0x343: 0x0001, 0x344: 0x000c, 0x345: 0x000c,\n\t0x346: 0x0001, 0x347: 0x000c, 0x348: 0x0001, 0x349: 0x0001, 0x34a: 0x0001, 0x34b: 0x0001,\n\t0x34c: 0x0001, 0x34d: 0x0001, 0x34e: 0x0001, 0x34f: 0x0001, 0x350: 0x0001, 0x351: 0x0001,\n\t0x352: 0x0001, 0x353: 0x0001, 0x354: 0x0001, 0x355: 0x0001, 0x356: 0x0001, 0x357: 0x0001,\n\t0x358: 0x0001, 0x359: 0x0001, 0x35a: 0x0001, 0x35b: 0x0001, 0x35c: 0x0001, 0x35d: 0x0001,\n\t0x35e: 0x0001, 0x35f: 0x0001, 0x360: 0x0001, 0x361: 0x0001, 0x362: 0x0001, 0x363: 0x0001,\n\t0x364: 0x0001, 0x365: 0x0001, 0x366: 0x0001, 0x367: 0x0001, 0x368: 0x0001, 0x369: 0x0001,\n\t0x36a: 0x0001, 0x36b: 0x0001, 0x36c: 0x0001, 0x36d: 0x0001, 0x36e: 0x0001, 0x36f: 0x0001,\n\t0x370: 0x0001, 0x371: 0x0001, 0x372: 0x0001, 0x373: 0x0001, 0x374: 0x0001, 0x375: 0x0001,\n\t0x376: 0x0001, 0x377: 0x0001, 0x378: 0x0001, 0x379: 0x0001, 0x37a: 0x0001, 0x37b: 0x0001,\n\t0x37c: 0x0001, 0x37d: 0x0001, 0x37e: 0x0001, 0x37f: 0x0001,\n\t// Block 0xe, offset 0x380\n\t0x380: 0x0005, 0x381: 0x0005, 0x382: 0x0005, 0x383: 0x0005, 0x384: 0x0005, 0x385: 0x0005,\n\t0x386: 0x000a, 0x387: 0x000a, 0x388: 0x000d, 0x389: 0x0004, 0x38a: 0x0004, 0x38b: 0x000d,\n\t0x38c: 0x0006, 0x38d: 0x000d, 0x38e: 0x000a, 0x38f: 0x000a, 0x390: 0x000c, 0x391: 0x000c,\n\t0x392: 0x000c, 0x393: 0x000c, 0x394: 0x000c, 0x395: 0x000c, 0x396: 0x000c, 0x397: 0x000c,\n\t0x398: 0x000c, 0x399: 0x000c, 0x39a: 0x000c, 0x39b: 0x000d, 0x39c: 0x000d, 0x39d: 0x000d,\n\t0x39e: 0x000d, 0x39f: 0x000d, 0x3a0: 0x000d, 0x3a1: 0x000d, 0x3a2: 0x000d, 0x3a3: 0x000d,\n\t0x3a4: 0x000d, 0x3a5: 0x000d, 0x3a6: 0x000d, 0x3a7: 0x000d, 0x3a8: 0x000d, 0x3a9: 0x000d,\n\t0x3aa: 0x000d, 0x3ab: 0x000d, 0x3ac: 0x000d, 0x3ad: 0x000d, 0x3ae: 0x000d, 0x3af: 0x000d,\n\t0x3b0: 0x000d, 0x3b1: 0x000d, 0x3b2: 0x000d, 0x3b3: 0x000d, 0x3b4: 0x000d, 0x3b5: 0x000d,\n\t0x3b6: 0x000d, 0x3b7: 0x000d, 0x3b8: 0x000d, 0x3b9: 0x000d, 0x3ba: 0x000d, 0x3bb: 0x000d,\n\t0x3bc: 0x000d, 0x3bd: 0x000d, 0x3be: 0x000d, 0x3bf: 0x000d,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x000d, 0x3c1: 0x000d, 0x3c2: 0x000d, 0x3c3: 0x000d, 0x3c4: 0x000d, 0x3c5: 0x000d,\n\t0x3c6: 0x000d, 0x3c7: 0x000d, 0x3c8: 0x000d, 0x3c9: 0x000d, 0x3ca: 0x000d, 0x3cb: 0x000c,\n\t0x3cc: 0x000c, 0x3cd: 0x000c, 0x3ce: 0x000c, 0x3cf: 0x000c, 0x3d0: 0x000c, 0x3d1: 0x000c,\n\t0x3d2: 0x000c, 0x3d3: 0x000c, 0x3d4: 0x000c, 0x3d5: 0x000c, 0x3d6: 0x000c, 0x3d7: 0x000c,\n\t0x3d8: 0x000c, 0x3d9: 0x000c, 0x3da: 0x000c, 0x3db: 0x000c, 0x3dc: 0x000c, 0x3dd: 0x000c,\n\t0x3de: 0x000c, 0x3df: 0x000c, 0x3e0: 0x0005, 0x3e1: 0x0005, 0x3e2: 0x0005, 0x3e3: 0x0005,\n\t0x3e4: 0x0005, 0x3e5: 0x0005, 0x3e6: 0x0005, 0x3e7: 0x0005, 0x3e8: 0x0005, 0x3e9: 0x0005,\n\t0x3ea: 0x0004, 0x3eb: 0x0005, 0x3ec: 0x0005, 0x3ed: 0x000d, 0x3ee: 0x000d, 0x3ef: 0x000d,\n\t0x3f0: 0x000c, 0x3f1: 0x000d, 0x3f2: 0x000d, 0x3f3: 0x000d, 0x3f4: 0x000d, 0x3f5: 0x000d,\n\t0x3f6: 0x000d, 0x3f7: 0x000d, 0x3f8: 0x000d, 0x3f9: 0x000d, 0x3fa: 0x000d, 0x3fb: 0x000d,\n\t0x3fc: 0x000d, 0x3fd: 0x000d, 0x3fe: 0x000d, 0x3ff: 0x000d,\n\t// Block 0x10, offset 0x400\n\t0x400: 0x000d, 0x401: 0x000d, 0x402: 0x000d, 0x403: 0x000d, 0x404: 0x000d, 0x405: 0x000d,\n\t0x406: 0x000d, 0x407: 0x000d, 0x408: 0x000d, 0x409: 0x000d, 0x40a: 0x000d, 0x40b: 0x000d,\n\t0x40c: 0x000d, 0x40d: 0x000d, 0x40e: 0x000d, 0x40f: 0x000d, 0x410: 0x000d, 0x411: 0x000d,\n\t0x412: 0x000d, 0x413: 0x000d, 0x414: 0x000d, 0x415: 0x000d, 0x416: 0x000d, 0x417: 0x000d,\n\t0x418: 0x000d, 0x419: 0x000d, 0x41a: 0x000d, 0x41b: 0x000d, 0x41c: 0x000d, 0x41d: 0x000d,\n\t0x41e: 0x000d, 0x41f: 0x000d, 0x420: 0x000d, 0x421: 0x000d, 0x422: 0x000d, 0x423: 0x000d,\n\t0x424: 0x000d, 0x425: 0x000d, 0x426: 0x000d, 0x427: 0x000d, 0x428: 0x000d, 0x429: 0x000d,\n\t0x42a: 0x000d, 0x42b: 0x000d, 0x42c: 0x000d, 0x42d: 0x000d, 0x42e: 0x000d, 0x42f: 0x000d,\n\t0x430: 0x000d, 0x431: 0x000d, 0x432: 0x000d, 0x433: 0x000d, 0x434: 0x000d, 0x435: 0x000d,\n\t0x436: 0x000d, 0x437: 0x000d, 0x438: 0x000d, 0x439: 0x000d, 0x43a: 0x000d, 0x43b: 0x000d,\n\t0x43c: 0x000d, 0x43d: 0x000d, 0x43e: 0x000d, 0x43f: 0x000d,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x000d, 0x441: 0x000d, 0x442: 0x000d, 0x443: 0x000d, 0x444: 0x000d, 0x445: 0x000d,\n\t0x446: 0x000d, 0x447: 0x000d, 0x448: 0x000d, 0x449: 0x000d, 0x44a: 0x000d, 0x44b: 0x000d,\n\t0x44c: 0x000d, 0x44d: 0x000d, 0x44e: 0x000d, 0x44f: 0x000d, 0x450: 0x000d, 0x451: 0x000d,\n\t0x452: 0x000d, 0x453: 0x000d, 0x454: 0x000d, 0x455: 0x000d, 0x456: 0x000c, 0x457: 0x000c,\n\t0x458: 0x000c, 0x459: 0x000c, 0x45a: 0x000c, 0x45b: 0x000c, 0x45c: 0x000c, 0x45d: 0x0005,\n\t0x45e: 0x000a, 0x45f: 0x000c, 0x460: 0x000c, 0x461: 0x000c, 0x462: 0x000c, 0x463: 0x000c,\n\t0x464: 0x000c, 0x465: 0x000d, 0x466: 0x000d, 0x467: 0x000c, 0x468: 0x000c, 0x469: 0x000a,\n\t0x46a: 0x000c, 0x46b: 0x000c, 0x46c: 0x000c, 0x46d: 0x000c, 0x46e: 0x000d, 0x46f: 0x000d,\n\t0x470: 0x0002, 0x471: 0x0002, 0x472: 0x0002, 0x473: 0x0002, 0x474: 0x0002, 0x475: 0x0002,\n\t0x476: 0x0002, 0x477: 0x0002, 0x478: 0x0002, 0x479: 0x0002, 0x47a: 0x000d, 0x47b: 0x000d,\n\t0x47c: 0x000d, 0x47d: 0x000d, 0x47e: 0x000d, 0x47f: 0x000d,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x000d, 0x481: 0x000d, 0x482: 0x000d, 0x483: 0x000d, 0x484: 0x000d, 0x485: 0x000d,\n\t0x486: 0x000d, 0x487: 0x000d, 0x488: 0x000d, 0x489: 0x000d, 0x48a: 0x000d, 0x48b: 0x000d,\n\t0x48c: 0x000d, 0x48d: 0x000d, 0x48e: 0x000d, 0x48f: 0x000d, 0x490: 0x000d, 0x491: 0x000c,\n\t0x492: 0x000d, 0x493: 0x000d, 0x494: 0x000d, 0x495: 0x000d, 0x496: 0x000d, 0x497: 0x000d,\n\t0x498: 0x000d, 0x499: 0x000d, 0x49a: 0x000d, 0x49b: 0x000d, 0x49c: 0x000d, 0x49d: 0x000d,\n\t0x49e: 0x000d, 0x49f: 0x000d, 0x4a0: 0x000d, 0x4a1: 0x000d, 0x4a2: 0x000d, 0x4a3: 0x000d,\n\t0x4a4: 0x000d, 0x4a5: 0x000d, 0x4a6: 0x000d, 0x4a7: 0x000d, 0x4a8: 0x000d, 0x4a9: 0x000d,\n\t0x4aa: 0x000d, 0x4ab: 0x000d, 0x4ac: 0x000d, 0x4ad: 0x000d, 0x4ae: 0x000d, 0x4af: 0x000d,\n\t0x4b0: 0x000c, 0x4b1: 0x000c, 0x4b2: 0x000c, 0x4b3: 0x000c, 0x4b4: 0x000c, 0x4b5: 0x000c,\n\t0x4b6: 0x000c, 0x4b7: 0x000c, 0x4b8: 0x000c, 0x4b9: 0x000c, 0x4ba: 0x000c, 0x4bb: 0x000c,\n\t0x4bc: 0x000c, 0x4bd: 0x000c, 0x4be: 0x000c, 0x4bf: 0x000c,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x000c, 0x4c1: 0x000c, 0x4c2: 0x000c, 0x4c3: 0x000c, 0x4c4: 0x000c, 0x4c5: 0x000c,\n\t0x4c6: 0x000c, 0x4c7: 0x000c, 0x4c8: 0x000c, 0x4c9: 0x000c, 0x4ca: 0x000c, 0x4cb: 0x000d,\n\t0x4cc: 0x000d, 0x4cd: 0x000d, 0x4ce: 0x000d, 0x4cf: 0x000d, 0x4d0: 0x000d, 0x4d1: 0x000d,\n\t0x4d2: 0x000d, 0x4d3: 0x000d, 0x4d4: 0x000d, 0x4d5: 0x000d, 0x4d6: 0x000d, 0x4d7: 0x000d,\n\t0x4d8: 0x000d, 0x4d9: 0x000d, 0x4da: 0x000d, 0x4db: 0x000d, 0x4dc: 0x000d, 0x4dd: 0x000d,\n\t0x4de: 0x000d, 0x4df: 0x000d, 0x4e0: 0x000d, 0x4e1: 0x000d, 0x4e2: 0x000d, 0x4e3: 0x000d,\n\t0x4e4: 0x000d, 0x4e5: 0x000d, 0x4e6: 0x000d, 0x4e7: 0x000d, 0x4e8: 0x000d, 0x4e9: 0x000d,\n\t0x4ea: 0x000d, 0x4eb: 0x000d, 0x4ec: 0x000d, 0x4ed: 0x000d, 0x4ee: 0x000d, 0x4ef: 0x000d,\n\t0x4f0: 0x000d, 0x4f1: 0x000d, 0x4f2: 0x000d, 0x4f3: 0x000d, 0x4f4: 0x000d, 0x4f5: 0x000d,\n\t0x4f6: 0x000d, 0x4f7: 0x000d, 0x4f8: 0x000d, 0x4f9: 0x000d, 0x4fa: 0x000d, 0x4fb: 0x000d,\n\t0x4fc: 0x000d, 0x4fd: 0x000d, 0x4fe: 0x000d, 0x4ff: 0x000d,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x000d, 0x501: 0x000d, 0x502: 0x000d, 0x503: 0x000d, 0x504: 0x000d, 0x505: 0x000d,\n\t0x506: 0x000d, 0x507: 0x000d, 0x508: 0x000d, 0x509: 0x000d, 0x50a: 0x000d, 0x50b: 0x000d,\n\t0x50c: 0x000d, 0x50d: 0x000d, 0x50e: 0x000d, 0x50f: 0x000d, 0x510: 0x000d, 0x511: 0x000d,\n\t0x512: 0x000d, 0x513: 0x000d, 0x514: 0x000d, 0x515: 0x000d, 0x516: 0x000d, 0x517: 0x000d,\n\t0x518: 0x000d, 0x519: 0x000d, 0x51a: 0x000d, 0x51b: 0x000d, 0x51c: 0x000d, 0x51d: 0x000d,\n\t0x51e: 0x000d, 0x51f: 0x000d, 0x520: 0x000d, 0x521: 0x000d, 0x522: 0x000d, 0x523: 0x000d,\n\t0x524: 0x000d, 0x525: 0x000d, 0x526: 0x000c, 0x527: 0x000c, 0x528: 0x000c, 0x529: 0x000c,\n\t0x52a: 0x000c, 0x52b: 0x000c, 0x52c: 0x000c, 0x52d: 0x000c, 0x52e: 0x000c, 0x52f: 0x000c,\n\t0x530: 0x000c, 0x531: 0x000d, 0x532: 0x000d, 0x533: 0x000d, 0x534: 0x000d, 0x535: 0x000d,\n\t0x536: 0x000d, 0x537: 0x000d, 0x538: 0x000d, 0x539: 0x000d, 0x53a: 0x000d, 0x53b: 0x000d,\n\t0x53c: 0x000d, 0x53d: 0x000d, 0x53e: 0x000d, 0x53f: 0x000d,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x0001, 0x541: 0x0001, 0x542: 0x0001, 0x543: 0x0001, 0x544: 0x0001, 0x545: 0x0001,\n\t0x546: 0x0001, 0x547: 0x0001, 0x548: 0x0001, 0x549: 0x0001, 0x54a: 0x0001, 0x54b: 0x0001,\n\t0x54c: 0x0001, 0x54d: 0x0001, 0x54e: 0x0001, 0x54f: 0x0001, 0x550: 0x0001, 0x551: 0x0001,\n\t0x552: 0x0001, 0x553: 0x0001, 0x554: 0x0001, 0x555: 0x0001, 0x556: 0x0001, 0x557: 0x0001,\n\t0x558: 0x0001, 0x559: 0x0001, 0x55a: 0x0001, 0x55b: 0x0001, 0x55c: 0x0001, 0x55d: 0x0001,\n\t0x55e: 0x0001, 0x55f: 0x0001, 0x560: 0x0001, 0x561: 0x0001, 0x562: 0x0001, 0x563: 0x0001,\n\t0x564: 0x0001, 0x565: 0x0001, 0x566: 0x0001, 0x567: 0x0001, 0x568: 0x0001, 0x569: 0x0001,\n\t0x56a: 0x0001, 0x56b: 0x000c, 0x56c: 0x000c, 0x56d: 0x000c, 0x56e: 0x000c, 0x56f: 0x000c,\n\t0x570: 0x000c, 0x571: 0x000c, 0x572: 0x000c, 0x573: 0x000c, 0x574: 0x0001, 0x575: 0x0001,\n\t0x576: 0x000a, 0x577: 0x000a, 0x578: 0x000a, 0x579: 0x000a, 0x57a: 0x0001, 0x57b: 0x0001,\n\t0x57c: 0x0001, 0x57d: 0x000c, 0x57e: 0x0001, 0x57f: 0x0001,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x0001, 0x581: 0x0001, 0x582: 0x0001, 0x583: 0x0001, 0x584: 0x0001, 0x585: 0x0001,\n\t0x586: 0x0001, 0x587: 0x0001, 0x588: 0x0001, 0x589: 0x0001, 0x58a: 0x0001, 0x58b: 0x0001,\n\t0x58c: 0x0001, 0x58d: 0x0001, 0x58e: 0x0001, 0x58f: 0x0001, 0x590: 0x0001, 0x591: 0x0001,\n\t0x592: 0x0001, 0x593: 0x0001, 0x594: 0x0001, 0x595: 0x0001, 0x596: 0x000c, 0x597: 0x000c,\n\t0x598: 0x000c, 0x599: 0x000c, 0x59a: 0x0001, 0x59b: 0x000c, 0x59c: 0x000c, 0x59d: 0x000c,\n\t0x59e: 0x000c, 0x59f: 0x000c, 0x5a0: 0x000c, 0x5a1: 0x000c, 0x5a2: 0x000c, 0x5a3: 0x000c,\n\t0x5a4: 0x0001, 0x5a5: 0x000c, 0x5a6: 0x000c, 0x5a7: 0x000c, 0x5a8: 0x0001, 0x5a9: 0x000c,\n\t0x5aa: 0x000c, 0x5ab: 0x000c, 0x5ac: 0x000c, 0x5ad: 0x000c, 0x5ae: 0x0001, 0x5af: 0x0001,\n\t0x5b0: 0x0001, 0x5b1: 0x0001, 0x5b2: 0x0001, 0x5b3: 0x0001, 0x5b4: 0x0001, 0x5b5: 0x0001,\n\t0x5b6: 0x0001, 0x5b7: 0x0001, 0x5b8: 0x0001, 0x5b9: 0x0001, 0x5ba: 0x0001, 0x5bb: 0x0001,\n\t0x5bc: 0x0001, 0x5bd: 0x0001, 0x5be: 0x0001, 0x5bf: 0x0001,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x0001, 0x5c1: 0x0001, 0x5c2: 0x0001, 0x5c3: 0x0001, 0x5c4: 0x0001, 0x5c5: 0x0001,\n\t0x5c6: 0x0001, 0x5c7: 0x0001, 0x5c8: 0x0001, 0x5c9: 0x0001, 0x5ca: 0x0001, 0x5cb: 0x0001,\n\t0x5cc: 0x0001, 0x5cd: 0x0001, 0x5ce: 0x0001, 0x5cf: 0x0001, 0x5d0: 0x0001, 0x5d1: 0x0001,\n\t0x5d2: 0x0001, 0x5d3: 0x0001, 0x5d4: 0x0001, 0x5d5: 0x0001, 0x5d6: 0x0001, 0x5d7: 0x0001,\n\t0x5d8: 0x0001, 0x5d9: 0x000c, 0x5da: 0x000c, 0x5db: 0x000c, 0x5dc: 0x0001, 0x5dd: 0x0001,\n\t0x5de: 0x0001, 0x5df: 0x0001, 0x5e0: 0x000d, 0x5e1: 0x000d, 0x5e2: 0x000d, 0x5e3: 0x000d,\n\t0x5e4: 0x000d, 0x5e5: 0x000d, 0x5e6: 0x000d, 0x5e7: 0x000d, 0x5e8: 0x000d, 0x5e9: 0x000d,\n\t0x5ea: 0x000d, 0x5eb: 0x000d, 0x5ec: 0x000d, 0x5ed: 0x000d, 0x5ee: 0x000d, 0x5ef: 0x000d,\n\t0x5f0: 0x0001, 0x5f1: 0x0001, 0x5f2: 0x0001, 0x5f3: 0x0001, 0x5f4: 0x0001, 0x5f5: 0x0001,\n\t0x5f6: 0x0001, 0x5f7: 0x0001, 0x5f8: 0x0001, 0x5f9: 0x0001, 0x5fa: 0x0001, 0x5fb: 0x0001,\n\t0x5fc: 0x0001, 0x5fd: 0x0001, 0x5fe: 0x0001, 0x5ff: 0x0001,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x0001, 0x601: 0x0001, 0x602: 0x0001, 0x603: 0x0001, 0x604: 0x0001, 0x605: 0x0001,\n\t0x606: 0x0001, 0x607: 0x0001, 0x608: 0x0001, 0x609: 0x0001, 0x60a: 0x0001, 0x60b: 0x0001,\n\t0x60c: 0x0001, 0x60d: 0x0001, 0x60e: 0x0001, 0x60f: 0x0001, 0x610: 0x0001, 0x611: 0x0001,\n\t0x612: 0x0001, 0x613: 0x0001, 0x614: 0x0001, 0x615: 0x0001, 0x616: 0x0001, 0x617: 0x0001,\n\t0x618: 0x0001, 0x619: 0x0001, 0x61a: 0x0001, 0x61b: 0x0001, 0x61c: 0x0001, 0x61d: 0x0001,\n\t0x61e: 0x0001, 0x61f: 0x0001, 0x620: 0x000d, 0x621: 0x000d, 0x622: 0x000d, 0x623: 0x000d,\n\t0x624: 0x000d, 0x625: 0x000d, 0x626: 0x000d, 0x627: 0x000d, 0x628: 0x000d, 0x629: 0x000d,\n\t0x62a: 0x000d, 0x62b: 0x000d, 0x62c: 0x000d, 0x62d: 0x000d, 0x62e: 0x000d, 0x62f: 0x000d,\n\t0x630: 0x000d, 0x631: 0x000d, 0x632: 0x000d, 0x633: 0x000d, 0x634: 0x000d, 0x635: 0x000d,\n\t0x636: 0x000d, 0x637: 0x000d, 0x638: 0x000d, 0x639: 0x000d, 0x63a: 0x000d, 0x63b: 0x000d,\n\t0x63c: 0x000d, 0x63d: 0x000d, 0x63e: 0x000d, 0x63f: 0x000d,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x000d, 0x641: 0x000d, 0x642: 0x000d, 0x643: 0x000d, 0x644: 0x000d, 0x645: 0x000d,\n\t0x646: 0x000d, 0x647: 0x000d, 0x648: 0x000d, 0x649: 0x000d, 0x64a: 0x000d, 0x64b: 0x000d,\n\t0x64c: 0x000d, 0x64d: 0x000d, 0x64e: 0x000d, 0x64f: 0x000d, 0x650: 0x000d, 0x651: 0x000d,\n\t0x652: 0x000d, 0x653: 0x000c, 0x654: 0x000c, 0x655: 0x000c, 0x656: 0x000c, 0x657: 0x000c,\n\t0x658: 0x000c, 0x659: 0x000c, 0x65a: 0x000c, 0x65b: 0x000c, 0x65c: 0x000c, 0x65d: 0x000c,\n\t0x65e: 0x000c, 0x65f: 0x000c, 0x660: 0x000c, 0x661: 0x000c, 0x662: 0x0005, 0x663: 0x000c,\n\t0x664: 0x000c, 0x665: 0x000c, 0x666: 0x000c, 0x667: 0x000c, 0x668: 0x000c, 0x669: 0x000c,\n\t0x66a: 0x000c, 0x66b: 0x000c, 0x66c: 0x000c, 0x66d: 0x000c, 0x66e: 0x000c, 0x66f: 0x000c,\n\t0x670: 0x000c, 0x671: 0x000c, 0x672: 0x000c, 0x673: 0x000c, 0x674: 0x000c, 0x675: 0x000c,\n\t0x676: 0x000c, 0x677: 0x000c, 0x678: 0x000c, 0x679: 0x000c, 0x67a: 0x000c, 0x67b: 0x000c,\n\t0x67c: 0x000c, 0x67d: 0x000c, 0x67e: 0x000c, 0x67f: 0x000c,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x000c, 0x681: 0x000c, 0x682: 0x000c,\n\t0x6ba: 0x000c,\n\t0x6bc: 0x000c,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c1: 0x000c, 0x6c2: 0x000c, 0x6c3: 0x000c, 0x6c4: 0x000c, 0x6c5: 0x000c,\n\t0x6c6: 0x000c, 0x6c7: 0x000c, 0x6c8: 0x000c,\n\t0x6cd: 0x000c, 0x6d1: 0x000c,\n\t0x6d2: 0x000c, 0x6d3: 0x000c, 0x6d4: 0x000c, 0x6d5: 0x000c, 0x6d6: 0x000c, 0x6d7: 0x000c,\n\t0x6e2: 0x000c, 0x6e3: 0x000c,\n\t// Block 0x1c, offset 0x700\n\t0x701: 0x000c,\n\t0x73c: 0x000c,\n\t// Block 0x1d, offset 0x740\n\t0x741: 0x000c, 0x742: 0x000c, 0x743: 0x000c, 0x744: 0x000c,\n\t0x74d: 0x000c,\n\t0x762: 0x000c, 0x763: 0x000c,\n\t0x772: 0x0004, 0x773: 0x0004,\n\t0x77b: 0x0004,\n\t0x77e: 0x000c,\n\t// Block 0x1e, offset 0x780\n\t0x781: 0x000c, 0x782: 0x000c,\n\t0x7bc: 0x000c,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c1: 0x000c, 0x7c2: 0x000c,\n\t0x7c7: 0x000c, 0x7c8: 0x000c, 0x7cb: 0x000c,\n\t0x7cc: 0x000c, 0x7cd: 0x000c, 0x7d1: 0x000c,\n\t0x7f0: 0x000c, 0x7f1: 0x000c, 0x7f5: 0x000c,\n\t// Block 0x20, offset 0x800\n\t0x801: 0x000c, 0x802: 0x000c, 0x803: 0x000c, 0x804: 0x000c, 0x805: 0x000c,\n\t0x807: 0x000c, 0x808: 0x000c,\n\t0x80d: 0x000c,\n\t0x822: 0x000c, 0x823: 0x000c,\n\t0x831: 0x0004,\n\t0x83a: 0x000c, 0x83b: 0x000c,\n\t0x83c: 0x000c, 0x83d: 0x000c, 0x83e: 0x000c, 0x83f: 0x000c,\n\t// Block 0x21, offset 0x840\n\t0x841: 0x000c,\n\t0x87c: 0x000c, 0x87f: 0x000c,\n\t// Block 0x22, offset 0x880\n\t0x881: 0x000c, 0x882: 0x000c, 0x883: 0x000c, 0x884: 0x000c,\n\t0x88d: 0x000c,\n\t0x896: 0x000c,\n\t0x8a2: 0x000c, 0x8a3: 0x000c,\n\t// Block 0x23, offset 0x8c0\n\t0x8c2: 0x000c,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x000c,\n\t0x90d: 0x000c,\n\t0x933: 0x000a, 0x934: 0x000a, 0x935: 0x000a,\n\t0x936: 0x000a, 0x937: 0x000a, 0x938: 0x000a, 0x939: 0x0004, 0x93a: 0x000a,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x000c, 0x944: 0x000c,\n\t0x97e: 0x000c, 0x97f: 0x000c,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x000c,\n\t0x986: 0x000c, 0x987: 0x000c, 0x988: 0x000c, 0x98a: 0x000c, 0x98b: 0x000c,\n\t0x98c: 0x000c, 0x98d: 0x000c,\n\t0x995: 0x000c, 0x996: 0x000c,\n\t0x9a2: 0x000c, 0x9a3: 0x000c,\n\t0x9b8: 0x000a, 0x9b9: 0x000a, 0x9ba: 0x000a, 0x9bb: 0x000a,\n\t0x9bc: 0x000a, 0x9bd: 0x000a, 0x9be: 0x000a,\n\t// Block 0x27, offset 0x9c0\n\t0x9cc: 0x000c, 0x9cd: 0x000c,\n\t0x9e2: 0x000c, 0x9e3: 0x000c,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x000c, 0xa01: 0x000c,\n\t0xa3b: 0x000c,\n\t0xa3c: 0x000c,\n\t// Block 0x29, offset 0xa40\n\t0xa41: 0x000c, 0xa42: 0x000c, 0xa43: 0x000c, 0xa44: 0x000c,\n\t0xa4d: 0x000c,\n\t0xa62: 0x000c, 0xa63: 0x000c,\n\t// Block 0x2a, offset 0xa80\n\t0xa8a: 0x000c,\n\t0xa92: 0x000c, 0xa93: 0x000c, 0xa94: 0x000c, 0xa96: 0x000c,\n\t// Block 0x2b, offset 0xac0\n\t0xaf1: 0x000c, 0xaf4: 0x000c, 0xaf5: 0x000c,\n\t0xaf6: 0x000c, 0xaf7: 0x000c, 0xaf8: 0x000c, 0xaf9: 0x000c, 0xafa: 0x000c,\n\t0xaff: 0x0004,\n\t// Block 0x2c, offset 0xb00\n\t0xb07: 0x000c, 0xb08: 0x000c, 0xb09: 0x000c, 0xb0a: 0x000c, 0xb0b: 0x000c,\n\t0xb0c: 0x000c, 0xb0d: 0x000c, 0xb0e: 0x000c,\n\t// Block 0x2d, offset 0xb40\n\t0xb71: 0x000c, 0xb74: 0x000c, 0xb75: 0x000c,\n\t0xb76: 0x000c, 0xb77: 0x000c, 0xb78: 0x000c, 0xb79: 0x000c, 0xb7b: 0x000c,\n\t0xb7c: 0x000c,\n\t// Block 0x2e, offset 0xb80\n\t0xb88: 0x000c, 0xb89: 0x000c, 0xb8a: 0x000c, 0xb8b: 0x000c,\n\t0xb8c: 0x000c, 0xb8d: 0x000c,\n\t// Block 0x2f, offset 0xbc0\n\t0xbd8: 0x000c, 0xbd9: 0x000c,\n\t0xbf5: 0x000c,\n\t0xbf7: 0x000c, 0xbf9: 0x000c, 0xbfa: 0x003a, 0xbfb: 0x002a,\n\t0xbfc: 0x003a, 0xbfd: 0x002a,\n\t// Block 0x30, offset 0xc00\n\t0xc31: 0x000c, 0xc32: 0x000c, 0xc33: 0x000c, 0xc34: 0x000c, 0xc35: 0x000c,\n\t0xc36: 0x000c, 0xc37: 0x000c, 0xc38: 0x000c, 0xc39: 0x000c, 0xc3a: 0x000c, 0xc3b: 0x000c,\n\t0xc3c: 0x000c, 0xc3d: 0x000c, 0xc3e: 0x000c,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x000c, 0xc41: 0x000c, 0xc42: 0x000c, 0xc43: 0x000c, 0xc44: 0x000c,\n\t0xc46: 0x000c, 0xc47: 0x000c,\n\t0xc4d: 0x000c, 0xc4e: 0x000c, 0xc4f: 0x000c, 0xc50: 0x000c, 0xc51: 0x000c,\n\t0xc52: 0x000c, 0xc53: 0x000c, 0xc54: 0x000c, 0xc55: 0x000c, 0xc56: 0x000c, 0xc57: 0x000c,\n\t0xc59: 0x000c, 0xc5a: 0x000c, 0xc5b: 0x000c, 0xc5c: 0x000c, 0xc5d: 0x000c,\n\t0xc5e: 0x000c, 0xc5f: 0x000c, 0xc60: 0x000c, 0xc61: 0x000c, 0xc62: 0x000c, 0xc63: 0x000c,\n\t0xc64: 0x000c, 0xc65: 0x000c, 0xc66: 0x000c, 0xc67: 0x000c, 0xc68: 0x000c, 0xc69: 0x000c,\n\t0xc6a: 0x000c, 0xc6b: 0x000c, 0xc6c: 0x000c, 0xc6d: 0x000c, 0xc6e: 0x000c, 0xc6f: 0x000c,\n\t0xc70: 0x000c, 0xc71: 0x000c, 0xc72: 0x000c, 0xc73: 0x000c, 0xc74: 0x000c, 0xc75: 0x000c,\n\t0xc76: 0x000c, 0xc77: 0x000c, 0xc78: 0x000c, 0xc79: 0x000c, 0xc7a: 0x000c, 0xc7b: 0x000c,\n\t0xc7c: 0x000c,\n\t// Block 0x32, offset 0xc80\n\t0xc86: 0x000c,\n\t// Block 0x33, offset 0xcc0\n\t0xced: 0x000c, 0xcee: 0x000c, 0xcef: 0x000c,\n\t0xcf0: 0x000c, 0xcf2: 0x000c, 0xcf3: 0x000c, 0xcf4: 0x000c, 0xcf5: 0x000c,\n\t0xcf6: 0x000c, 0xcf7: 0x000c, 0xcf9: 0x000c, 0xcfa: 0x000c,\n\t0xcfd: 0x000c, 0xcfe: 0x000c,\n\t// Block 0x34, offset 0xd00\n\t0xd18: 0x000c, 0xd19: 0x000c,\n\t0xd1e: 0x000c, 0xd1f: 0x000c, 0xd20: 0x000c,\n\t0xd31: 0x000c, 0xd32: 0x000c, 0xd33: 0x000c, 0xd34: 0x000c,\n\t// Block 0x35, offset 0xd40\n\t0xd42: 0x000c, 0xd45: 0x000c,\n\t0xd46: 0x000c,\n\t0xd4d: 0x000c,\n\t0xd5d: 0x000c,\n\t// Block 0x36, offset 0xd80\n\t0xd9d: 0x000c,\n\t0xd9e: 0x000c, 0xd9f: 0x000c,\n\t// Block 0x37, offset 0xdc0\n\t0xdd0: 0x000a, 0xdd1: 0x000a,\n\t0xdd2: 0x000a, 0xdd3: 0x000a, 0xdd4: 0x000a, 0xdd5: 0x000a, 0xdd6: 0x000a, 0xdd7: 0x000a,\n\t0xdd8: 0x000a, 0xdd9: 0x000a,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0x000a,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x0009,\n\t0xe5b: 0x007a, 0xe5c: 0x006a,\n\t// Block 0x3a, offset 0xe80\n\t0xe92: 0x000c, 0xe93: 0x000c, 0xe94: 0x000c,\n\t0xeb2: 0x000c, 0xeb3: 0x000c, 0xeb4: 0x000c,\n\t// Block 0x3b, offset 0xec0\n\t0xed2: 0x000c, 0xed3: 0x000c,\n\t0xef2: 0x000c, 0xef3: 0x000c,\n\t// Block 0x3c, offset 0xf00\n\t0xf34: 0x000c, 0xf35: 0x000c,\n\t0xf37: 0x000c, 0xf38: 0x000c, 0xf39: 0x000c, 0xf3a: 0x000c, 0xf3b: 0x000c,\n\t0xf3c: 0x000c, 0xf3d: 0x000c,\n\t// Block 0x3d, offset 0xf40\n\t0xf46: 0x000c, 0xf49: 0x000c, 0xf4a: 0x000c, 0xf4b: 0x000c,\n\t0xf4c: 0x000c, 0xf4d: 0x000c, 0xf4e: 0x000c, 0xf4f: 0x000c, 0xf50: 0x000c, 0xf51: 0x000c,\n\t0xf52: 0x000c, 0xf53: 0x000c,\n\t0xf5b: 0x0004, 0xf5d: 0x000c,\n\t0xf70: 0x000a, 0xf71: 0x000a, 0xf72: 0x000a, 0xf73: 0x000a, 0xf74: 0x000a, 0xf75: 0x000a,\n\t0xf76: 0x000a, 0xf77: 0x000a, 0xf78: 0x000a, 0xf79: 0x000a,\n\t// Block 0x3e, offset 0xf80\n\t0xf80: 0x000a, 0xf81: 0x000a, 0xf82: 0x000a, 0xf83: 0x000a, 0xf84: 0x000a, 0xf85: 0x000a,\n\t0xf86: 0x000a, 0xf87: 0x000a, 0xf88: 0x000a, 0xf89: 0x000a, 0xf8a: 0x000a, 0xf8b: 0x000c,\n\t0xf8c: 0x000c, 0xf8d: 0x000c, 0xf8e: 0x000b,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc5: 0x000c,\n\t0xfc6: 0x000c,\n\t0xfe9: 0x000c,\n\t// Block 0x40, offset 0x1000\n\t0x1020: 0x000c, 0x1021: 0x000c, 0x1022: 0x000c,\n\t0x1027: 0x000c, 0x1028: 0x000c,\n\t0x1032: 0x000c,\n\t0x1039: 0x000c, 0x103a: 0x000c, 0x103b: 0x000c,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x000a, 0x1044: 0x000a, 0x1045: 0x000a,\n\t// Block 0x42, offset 0x1080\n\t0x109e: 0x000a, 0x109f: 0x000a, 0x10a0: 0x000a, 0x10a1: 0x000a, 0x10a2: 0x000a, 0x10a3: 0x000a,\n\t0x10a4: 0x000a, 0x10a5: 0x000a, 0x10a6: 0x000a, 0x10a7: 0x000a, 0x10a8: 0x000a, 0x10a9: 0x000a,\n\t0x10aa: 0x000a, 0x10ab: 0x000a, 0x10ac: 0x000a, 0x10ad: 0x000a, 0x10ae: 0x000a, 0x10af: 0x000a,\n\t0x10b0: 0x000a, 0x10b1: 0x000a, 0x10b2: 0x000a, 0x10b3: 0x000a, 0x10b4: 0x000a, 0x10b5: 0x000a,\n\t0x10b6: 0x000a, 0x10b7: 0x000a, 0x10b8: 0x000a, 0x10b9: 0x000a, 0x10ba: 0x000a, 0x10bb: 0x000a,\n\t0x10bc: 0x000a, 0x10bd: 0x000a, 0x10be: 0x000a, 0x10bf: 0x000a,\n\t// Block 0x43, offset 0x10c0\n\t0x10d7: 0x000c,\n\t0x10d8: 0x000c, 0x10db: 0x000c,\n\t// Block 0x44, offset 0x1100\n\t0x1116: 0x000c,\n\t0x1118: 0x000c, 0x1119: 0x000c, 0x111a: 0x000c, 0x111b: 0x000c, 0x111c: 0x000c, 0x111d: 0x000c,\n\t0x111e: 0x000c, 0x1120: 0x000c, 0x1122: 0x000c,\n\t0x1125: 0x000c, 0x1126: 0x000c, 0x1127: 0x000c, 0x1128: 0x000c, 0x1129: 0x000c,\n\t0x112a: 0x000c, 0x112b: 0x000c, 0x112c: 0x000c,\n\t0x1133: 0x000c, 0x1134: 0x000c, 0x1135: 0x000c,\n\t0x1136: 0x000c, 0x1137: 0x000c, 0x1138: 0x000c, 0x1139: 0x000c, 0x113a: 0x000c, 0x113b: 0x000c,\n\t0x113c: 0x000c, 0x113f: 0x000c,\n\t// Block 0x45, offset 0x1140\n\t0x1170: 0x000c, 0x1171: 0x000c, 0x1172: 0x000c, 0x1173: 0x000c, 0x1174: 0x000c, 0x1175: 0x000c,\n\t0x1176: 0x000c, 0x1177: 0x000c, 0x1178: 0x000c, 0x1179: 0x000c, 0x117a: 0x000c, 0x117b: 0x000c,\n\t0x117c: 0x000c, 0x117d: 0x000c, 0x117e: 0x000c,\n\t// Block 0x46, offset 0x1180\n\t0x1180: 0x000c, 0x1181: 0x000c, 0x1182: 0x000c, 0x1183: 0x000c,\n\t0x11b4: 0x000c,\n\t0x11b6: 0x000c, 0x11b7: 0x000c, 0x11b8: 0x000c, 0x11b9: 0x000c, 0x11ba: 0x000c,\n\t0x11bc: 0x000c,\n\t// Block 0x47, offset 0x11c0\n\t0x11c2: 0x000c,\n\t0x11eb: 0x000c, 0x11ec: 0x000c, 0x11ed: 0x000c, 0x11ee: 0x000c, 0x11ef: 0x000c,\n\t0x11f0: 0x000c, 0x11f1: 0x000c, 0x11f2: 0x000c, 0x11f3: 0x000c,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0x000c, 0x1201: 0x000c,\n\t0x1222: 0x000c, 0x1223: 0x000c,\n\t0x1224: 0x000c, 0x1225: 0x000c, 0x1228: 0x000c, 0x1229: 0x000c,\n\t0x122b: 0x000c, 0x122c: 0x000c, 0x122d: 0x000c,\n\t// Block 0x49, offset 0x1240\n\t0x1266: 0x000c, 0x1268: 0x000c, 0x1269: 0x000c,\n\t0x126d: 0x000c, 0x126f: 0x000c,\n\t0x1270: 0x000c, 0x1271: 0x000c,\n\t// Block 0x4a, offset 0x1280\n\t0x12ac: 0x000c, 0x12ad: 0x000c, 0x12ae: 0x000c, 0x12af: 0x000c,\n\t0x12b0: 0x000c, 0x12b1: 0x000c, 0x12b2: 0x000c, 0x12b3: 0x000c,\n\t0x12b6: 0x000c, 0x12b7: 0x000c,\n\t// Block 0x4b, offset 0x12c0\n\t0x12d0: 0x000c, 0x12d1: 0x000c,\n\t0x12d2: 0x000c, 0x12d4: 0x000c, 0x12d5: 0x000c, 0x12d6: 0x000c, 0x12d7: 0x000c,\n\t0x12d8: 0x000c, 0x12d9: 0x000c, 0x12da: 0x000c, 0x12db: 0x000c, 0x12dc: 0x000c, 0x12dd: 0x000c,\n\t0x12de: 0x000c, 0x12df: 0x000c, 0x12e0: 0x000c, 0x12e2: 0x000c, 0x12e3: 0x000c,\n\t0x12e4: 0x000c, 0x12e5: 0x000c, 0x12e6: 0x000c, 0x12e7: 0x000c, 0x12e8: 0x000c,\n\t0x12ed: 0x000c,\n\t0x12f4: 0x000c,\n\t0x12f8: 0x000c, 0x12f9: 0x000c,\n\t// Block 0x4c, offset 0x1300\n\t0x1300: 0x000c, 0x1301: 0x000c, 0x1302: 0x000c, 0x1303: 0x000c, 0x1304: 0x000c, 0x1305: 0x000c,\n\t0x1306: 0x000c, 0x1307: 0x000c, 0x1308: 0x000c, 0x1309: 0x000c, 0x130a: 0x000c, 0x130b: 0x000c,\n\t0x130c: 0x000c, 0x130d: 0x000c, 0x130e: 0x000c, 0x130f: 0x000c, 0x1310: 0x000c, 0x1311: 0x000c,\n\t0x1312: 0x000c, 0x1313: 0x000c, 0x1314: 0x000c, 0x1315: 0x000c, 0x1316: 0x000c, 0x1317: 0x000c,\n\t0x1318: 0x000c, 0x1319: 0x000c, 0x131a: 0x000c, 0x131b: 0x000c, 0x131c: 0x000c, 0x131d: 0x000c,\n\t0x131e: 0x000c, 0x131f: 0x000c, 0x1320: 0x000c, 0x1321: 0x000c, 0x1322: 0x000c, 0x1323: 0x000c,\n\t0x1324: 0x000c, 0x1325: 0x000c, 0x1326: 0x000c, 0x1327: 0x000c, 0x1328: 0x000c, 0x1329: 0x000c,\n\t0x132a: 0x000c, 0x132b: 0x000c, 0x132c: 0x000c, 0x132d: 0x000c, 0x132e: 0x000c, 0x132f: 0x000c,\n\t0x1330: 0x000c, 0x1331: 0x000c, 0x1332: 0x000c, 0x1333: 0x000c, 0x1334: 0x000c, 0x1335: 0x000c,\n\t0x1336: 0x000c, 0x1337: 0x000c, 0x1338: 0x000c, 0x1339: 0x000c, 0x133b: 0x000c,\n\t0x133c: 0x000c, 0x133d: 0x000c, 0x133e: 0x000c, 0x133f: 0x000c,\n\t// Block 0x4d, offset 0x1340\n\t0x137d: 0x000a, 0x137f: 0x000a,\n\t// Block 0x4e, offset 0x1380\n\t0x1380: 0x000a, 0x1381: 0x000a,\n\t0x138d: 0x000a, 0x138e: 0x000a, 0x138f: 0x000a,\n\t0x139d: 0x000a,\n\t0x139e: 0x000a, 0x139f: 0x000a,\n\t0x13ad: 0x000a, 0x13ae: 0x000a, 0x13af: 0x000a,\n\t0x13bd: 0x000a, 0x13be: 0x000a,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c0: 0x0009, 0x13c1: 0x0009, 0x13c2: 0x0009, 0x13c3: 0x0009, 0x13c4: 0x0009, 0x13c5: 0x0009,\n\t0x13c6: 0x0009, 0x13c7: 0x0009, 0x13c8: 0x0009, 0x13c9: 0x0009, 0x13ca: 0x0009, 0x13cb: 0x000b,\n\t0x13cc: 0x000b, 0x13cd: 0x000b, 0x13cf: 0x0001, 0x13d0: 0x000a, 0x13d1: 0x000a,\n\t0x13d2: 0x000a, 0x13d3: 0x000a, 0x13d4: 0x000a, 0x13d5: 0x000a, 0x13d6: 0x000a, 0x13d7: 0x000a,\n\t0x13d8: 0x000a, 0x13d9: 0x000a, 0x13da: 0x000a, 0x13db: 0x000a, 0x13dc: 0x000a, 0x13dd: 0x000a,\n\t0x13de: 0x000a, 0x13df: 0x000a, 0x13e0: 0x000a, 0x13e1: 0x000a, 0x13e2: 0x000a, 0x13e3: 0x000a,\n\t0x13e4: 0x000a, 0x13e5: 0x000a, 0x13e6: 0x000a, 0x13e7: 0x000a, 0x13e8: 0x0009, 0x13e9: 0x0007,\n\t0x13ea: 0x000e, 0x13eb: 0x000e, 0x13ec: 0x000e, 0x13ed: 0x000e, 0x13ee: 0x000e, 0x13ef: 0x0006,\n\t0x13f0: 0x0004, 0x13f1: 0x0004, 0x13f2: 0x0004, 0x13f3: 0x0004, 0x13f4: 0x0004, 0x13f5: 0x000a,\n\t0x13f6: 0x000a, 0x13f7: 0x000a, 0x13f8: 0x000a, 0x13f9: 0x000a, 0x13fa: 0x000a, 0x13fb: 0x000a,\n\t0x13fc: 0x000a, 0x13fd: 0x000a, 0x13fe: 0x000a, 0x13ff: 0x000a,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x000a, 0x1401: 0x000a, 0x1402: 0x000a, 0x1403: 0x000a, 0x1404: 0x0006, 0x1405: 0x009a,\n\t0x1406: 0x008a, 0x1407: 0x000a, 0x1408: 0x000a, 0x1409: 0x000a, 0x140a: 0x000a, 0x140b: 0x000a,\n\t0x140c: 0x000a, 0x140d: 0x000a, 0x140e: 0x000a, 0x140f: 0x000a, 0x1410: 0x000a, 0x1411: 0x000a,\n\t0x1412: 0x000a, 0x1413: 0x000a, 0x1414: 0x000a, 0x1415: 0x000a, 0x1416: 0x000a, 0x1417: 0x000a,\n\t0x1418: 0x000a, 0x1419: 0x000a, 0x141a: 0x000a, 0x141b: 0x000a, 0x141c: 0x000a, 0x141d: 0x000a,\n\t0x141e: 0x000a, 0x141f: 0x0009, 0x1420: 0x000b, 0x1421: 0x000b, 0x1422: 0x000b, 0x1423: 0x000b,\n\t0x1424: 0x000b, 0x1425: 0x000b, 0x1426: 0x000e, 0x1427: 0x000e, 0x1428: 0x000e, 0x1429: 0x000e,\n\t0x142a: 0x000b, 0x142b: 0x000b, 0x142c: 0x000b, 0x142d: 0x000b, 0x142e: 0x000b, 0x142f: 0x000b,\n\t0x1430: 0x0002, 0x1434: 0x0002, 0x1435: 0x0002,\n\t0x1436: 0x0002, 0x1437: 0x0002, 0x1438: 0x0002, 0x1439: 0x0002, 0x143a: 0x0003, 0x143b: 0x0003,\n\t0x143c: 0x000a, 0x143d: 0x009a, 0x143e: 0x008a,\n\t// Block 0x51, offset 0x1440\n\t0x1440: 0x0002, 0x1441: 0x0002, 0x1442: 0x0002, 0x1443: 0x0002, 0x1444: 0x0002, 0x1445: 0x0002,\n\t0x1446: 0x0002, 0x1447: 0x0002, 0x1448: 0x0002, 0x1449: 0x0002, 0x144a: 0x0003, 0x144b: 0x0003,\n\t0x144c: 0x000a, 0x144d: 0x009a, 0x144e: 0x008a,\n\t0x1460: 0x0004, 0x1461: 0x0004, 0x1462: 0x0004, 0x1463: 0x0004,\n\t0x1464: 0x0004, 0x1465: 0x0004, 0x1466: 0x0004, 0x1467: 0x0004, 0x1468: 0x0004, 0x1469: 0x0004,\n\t0x146a: 0x0004, 0x146b: 0x0004, 0x146c: 0x0004, 0x146d: 0x0004, 0x146e: 0x0004, 0x146f: 0x0004,\n\t0x1470: 0x0004, 0x1471: 0x0004, 0x1472: 0x0004, 0x1473: 0x0004, 0x1474: 0x0004, 0x1475: 0x0004,\n\t0x1476: 0x0004, 0x1477: 0x0004, 0x1478: 0x0004, 0x1479: 0x0004, 0x147a: 0x0004, 0x147b: 0x0004,\n\t0x147c: 0x0004, 0x147d: 0x0004, 0x147e: 0x0004, 0x147f: 0x0004,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x0004, 0x1481: 0x0004, 0x1482: 0x0004, 0x1483: 0x0004, 0x1484: 0x0004, 0x1485: 0x0004,\n\t0x1486: 0x0004, 0x1487: 0x0004, 0x1488: 0x0004, 0x1489: 0x0004, 0x148a: 0x0004, 0x148b: 0x0004,\n\t0x148c: 0x0004, 0x148d: 0x0004, 0x148e: 0x0004, 0x148f: 0x0004, 0x1490: 0x000c, 0x1491: 0x000c,\n\t0x1492: 0x000c, 0x1493: 0x000c, 0x1494: 0x000c, 0x1495: 0x000c, 0x1496: 0x000c, 0x1497: 0x000c,\n\t0x1498: 0x000c, 0x1499: 0x000c, 0x149a: 0x000c, 0x149b: 0x000c, 0x149c: 0x000c, 0x149d: 0x000c,\n\t0x149e: 0x000c, 0x149f: 0x000c, 0x14a0: 0x000c, 0x14a1: 0x000c, 0x14a2: 0x000c, 0x14a3: 0x000c,\n\t0x14a4: 0x000c, 0x14a5: 0x000c, 0x14a6: 0x000c, 0x14a7: 0x000c, 0x14a8: 0x000c, 0x14a9: 0x000c,\n\t0x14aa: 0x000c, 0x14ab: 0x000c, 0x14ac: 0x000c, 0x14ad: 0x000c, 0x14ae: 0x000c, 0x14af: 0x000c,\n\t0x14b0: 0x000c,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x000a, 0x14c1: 0x000a, 0x14c3: 0x000a, 0x14c4: 0x000a, 0x14c5: 0x000a,\n\t0x14c6: 0x000a, 0x14c8: 0x000a, 0x14c9: 0x000a,\n\t0x14d4: 0x000a, 0x14d6: 0x000a, 0x14d7: 0x000a,\n\t0x14d8: 0x000a,\n\t0x14de: 0x000a, 0x14df: 0x000a, 0x14e0: 0x000a, 0x14e1: 0x000a, 0x14e2: 0x000a, 0x14e3: 0x000a,\n\t0x14e5: 0x000a, 0x14e7: 0x000a, 0x14e9: 0x000a,\n\t0x14ee: 0x0004,\n\t0x14fa: 0x000a, 0x14fb: 0x000a,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0x000a, 0x1501: 0x000a, 0x1502: 0x000a, 0x1503: 0x000a, 0x1504: 0x000a,\n\t0x150a: 0x000a, 0x150b: 0x000a,\n\t0x150c: 0x000a, 0x150d: 0x000a, 0x1510: 0x000a, 0x1511: 0x000a,\n\t0x1512: 0x000a, 0x1513: 0x000a, 0x1514: 0x000a, 0x1515: 0x000a, 0x1516: 0x000a, 0x1517: 0x000a,\n\t0x1518: 0x000a, 0x1519: 0x000a, 0x151a: 0x000a, 0x151b: 0x000a, 0x151c: 0x000a, 0x151d: 0x000a,\n\t0x151e: 0x000a, 0x151f: 0x000a,\n\t// Block 0x55, offset 0x1540\n\t0x1549: 0x000a, 0x154a: 0x000a, 0x154b: 0x000a,\n\t0x1550: 0x000a, 0x1551: 0x000a,\n\t0x1552: 0x000a, 0x1553: 0x000a, 0x1554: 0x000a, 0x1555: 0x000a, 0x1556: 0x000a, 0x1557: 0x000a,\n\t0x1558: 0x000a, 0x1559: 0x000a, 0x155a: 0x000a, 0x155b: 0x000a, 0x155c: 0x000a, 0x155d: 0x000a,\n\t0x155e: 0x000a, 0x155f: 0x000a, 0x1560: 0x000a, 0x1561: 0x000a, 0x1562: 0x000a, 0x1563: 0x000a,\n\t0x1564: 0x000a, 0x1565: 0x000a, 0x1566: 0x000a, 0x1567: 0x000a, 0x1568: 0x000a, 0x1569: 0x000a,\n\t0x156a: 0x000a, 0x156b: 0x000a, 0x156c: 0x000a, 0x156d: 0x000a, 0x156e: 0x000a, 0x156f: 0x000a,\n\t0x1570: 0x000a, 0x1571: 0x000a, 0x1572: 0x000a, 0x1573: 0x000a, 0x1574: 0x000a, 0x1575: 0x000a,\n\t0x1576: 0x000a, 0x1577: 0x000a, 0x1578: 0x000a, 0x1579: 0x000a, 0x157a: 0x000a, 0x157b: 0x000a,\n\t0x157c: 0x000a, 0x157d: 0x000a, 0x157e: 0x000a, 0x157f: 0x000a,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x000a, 0x1581: 0x000a, 0x1582: 0x000a, 0x1583: 0x000a, 0x1584: 0x000a, 0x1585: 0x000a,\n\t0x1586: 0x000a, 0x1587: 0x000a, 0x1588: 0x000a, 0x1589: 0x000a, 0x158a: 0x000a, 0x158b: 0x000a,\n\t0x158c: 0x000a, 0x158d: 0x000a, 0x158e: 0x000a, 0x158f: 0x000a, 0x1590: 0x000a, 0x1591: 0x000a,\n\t0x1592: 0x000a, 0x1593: 0x000a, 0x1594: 0x000a, 0x1595: 0x000a, 0x1596: 0x000a, 0x1597: 0x000a,\n\t0x1598: 0x000a, 0x1599: 0x000a, 0x159a: 0x000a, 0x159b: 0x000a, 0x159c: 0x000a, 0x159d: 0x000a,\n\t0x159e: 0x000a, 0x159f: 0x000a, 0x15a0: 0x000a, 0x15a1: 0x000a, 0x15a2: 0x000a, 0x15a3: 0x000a,\n\t0x15a4: 0x000a, 0x15a5: 0x000a, 0x15a6: 0x000a, 0x15a7: 0x000a, 0x15a8: 0x000a, 0x15a9: 0x000a,\n\t0x15aa: 0x000a, 0x15ab: 0x000a, 0x15ac: 0x000a, 0x15ad: 0x000a, 0x15ae: 0x000a, 0x15af: 0x000a,\n\t0x15b0: 0x000a, 0x15b1: 0x000a, 0x15b2: 0x000a, 0x15b3: 0x000a, 0x15b4: 0x000a, 0x15b5: 0x000a,\n\t0x15b6: 0x000a, 0x15b7: 0x000a, 0x15b8: 0x000a, 0x15b9: 0x000a, 0x15ba: 0x000a, 0x15bb: 0x000a,\n\t0x15bc: 0x000a, 0x15bd: 0x000a, 0x15be: 0x000a, 0x15bf: 0x000a,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0x000a, 0x15c1: 0x000a, 0x15c2: 0x000a, 0x15c3: 0x000a, 0x15c4: 0x000a, 0x15c5: 0x000a,\n\t0x15c6: 0x000a, 0x15c7: 0x000a, 0x15c8: 0x000a, 0x15c9: 0x000a, 0x15ca: 0x000a, 0x15cb: 0x000a,\n\t0x15cc: 0x000a, 0x15cd: 0x000a, 0x15ce: 0x000a, 0x15cf: 0x000a, 0x15d0: 0x000a, 0x15d1: 0x000a,\n\t0x15d2: 0x0003, 0x15d3: 0x0004, 0x15d4: 0x000a, 0x15d5: 0x000a, 0x15d6: 0x000a, 0x15d7: 0x000a,\n\t0x15d8: 0x000a, 0x15d9: 0x000a, 0x15da: 0x000a, 0x15db: 0x000a, 0x15dc: 0x000a, 0x15dd: 0x000a,\n\t0x15de: 0x000a, 0x15df: 0x000a, 0x15e0: 0x000a, 0x15e1: 0x000a, 0x15e2: 0x000a, 0x15e3: 0x000a,\n\t0x15e4: 0x000a, 0x15e5: 0x000a, 0x15e6: 0x000a, 0x15e7: 0x000a, 0x15e8: 0x000a, 0x15e9: 0x000a,\n\t0x15ea: 0x000a, 0x15eb: 0x000a, 0x15ec: 0x000a, 0x15ed: 0x000a, 0x15ee: 0x000a, 0x15ef: 0x000a,\n\t0x15f0: 0x000a, 0x15f1: 0x000a, 0x15f2: 0x000a, 0x15f3: 0x000a, 0x15f4: 0x000a, 0x15f5: 0x000a,\n\t0x15f6: 0x000a, 0x15f7: 0x000a, 0x15f8: 0x000a, 0x15f9: 0x000a, 0x15fa: 0x000a, 0x15fb: 0x000a,\n\t0x15fc: 0x000a, 0x15fd: 0x000a, 0x15fe: 0x000a, 0x15ff: 0x000a,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0x000a, 0x1601: 0x000a, 0x1602: 0x000a, 0x1603: 0x000a, 0x1604: 0x000a, 0x1605: 0x000a,\n\t0x1606: 0x000a, 0x1607: 0x000a, 0x1608: 0x003a, 0x1609: 0x002a, 0x160a: 0x003a, 0x160b: 0x002a,\n\t0x160c: 0x000a, 0x160d: 0x000a, 0x160e: 0x000a, 0x160f: 0x000a, 0x1610: 0x000a, 0x1611: 0x000a,\n\t0x1612: 0x000a, 0x1613: 0x000a, 0x1614: 0x000a, 0x1615: 0x000a, 0x1616: 0x000a, 0x1617: 0x000a,\n\t0x1618: 0x000a, 0x1619: 0x000a, 0x161a: 0x000a, 0x161b: 0x000a, 0x161c: 0x000a, 0x161d: 0x000a,\n\t0x161e: 0x000a, 0x161f: 0x000a, 0x1620: 0x000a, 0x1621: 0x000a, 0x1622: 0x000a, 0x1623: 0x000a,\n\t0x1624: 0x000a, 0x1625: 0x000a, 0x1626: 0x000a, 0x1627: 0x000a, 0x1628: 0x000a, 0x1629: 0x009a,\n\t0x162a: 0x008a, 0x162b: 0x000a, 0x162c: 0x000a, 0x162d: 0x000a, 0x162e: 0x000a, 0x162f: 0x000a,\n\t0x1630: 0x000a, 0x1631: 0x000a, 0x1632: 0x000a, 0x1633: 0x000a, 0x1634: 0x000a, 0x1635: 0x000a,\n\t// Block 0x59, offset 0x1640\n\t0x167b: 0x000a,\n\t0x167c: 0x000a, 0x167d: 0x000a, 0x167e: 0x000a, 0x167f: 0x000a,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x000a, 0x1681: 0x000a, 0x1682: 0x000a, 0x1683: 0x000a, 0x1684: 0x000a, 0x1685: 0x000a,\n\t0x1686: 0x000a, 0x1687: 0x000a, 0x1688: 0x000a, 0x1689: 0x000a, 0x168a: 0x000a, 0x168b: 0x000a,\n\t0x168c: 0x000a, 0x168d: 0x000a, 0x168e: 0x000a, 0x168f: 0x000a, 0x1690: 0x000a, 0x1691: 0x000a,\n\t0x1692: 0x000a, 0x1693: 0x000a, 0x1694: 0x000a, 0x1696: 0x000a, 0x1697: 0x000a,\n\t0x1698: 0x000a, 0x1699: 0x000a, 0x169a: 0x000a, 0x169b: 0x000a, 0x169c: 0x000a, 0x169d: 0x000a,\n\t0x169e: 0x000a, 0x169f: 0x000a, 0x16a0: 0x000a, 0x16a1: 0x000a, 0x16a2: 0x000a, 0x16a3: 0x000a,\n\t0x16a4: 0x000a, 0x16a5: 0x000a, 0x16a6: 0x000a, 0x16a7: 0x000a, 0x16a8: 0x000a, 0x16a9: 0x000a,\n\t0x16aa: 0x000a, 0x16ab: 0x000a, 0x16ac: 0x000a, 0x16ad: 0x000a, 0x16ae: 0x000a, 0x16af: 0x000a,\n\t0x16b0: 0x000a, 0x16b1: 0x000a, 0x16b2: 0x000a, 0x16b3: 0x000a, 0x16b4: 0x000a, 0x16b5: 0x000a,\n\t0x16b6: 0x000a, 0x16b7: 0x000a, 0x16b8: 0x000a, 0x16b9: 0x000a, 0x16ba: 0x000a, 0x16bb: 0x000a,\n\t0x16bc: 0x000a, 0x16bd: 0x000a, 0x16be: 0x000a, 0x16bf: 0x000a,\n\t// Block 0x5b, offset 0x16c0\n\t0x16c0: 0x000a, 0x16c1: 0x000a, 0x16c2: 0x000a, 0x16c3: 0x000a, 0x16c4: 0x000a, 0x16c5: 0x000a,\n\t0x16c6: 0x000a, 0x16c7: 0x000a, 0x16c8: 0x000a, 0x16c9: 0x000a, 0x16ca: 0x000a, 0x16cb: 0x000a,\n\t0x16cc: 0x000a, 0x16cd: 0x000a, 0x16ce: 0x000a, 0x16cf: 0x000a, 0x16d0: 0x000a, 0x16d1: 0x000a,\n\t0x16d2: 0x000a, 0x16d3: 0x000a, 0x16d4: 0x000a, 0x16d5: 0x000a, 0x16d6: 0x000a, 0x16d7: 0x000a,\n\t0x16d8: 0x000a, 0x16d9: 0x000a, 0x16da: 0x000a, 0x16db: 0x000a, 0x16dc: 0x000a, 0x16dd: 0x000a,\n\t0x16de: 0x000a, 0x16df: 0x000a, 0x16e0: 0x000a, 0x16e1: 0x000a, 0x16e2: 0x000a, 0x16e3: 0x000a,\n\t0x16e4: 0x000a, 0x16e5: 0x000a, 0x16e6: 0x000a,\n\t// Block 0x5c, offset 0x1700\n\t0x1700: 0x000a, 0x1701: 0x000a, 0x1702: 0x000a, 0x1703: 0x000a, 0x1704: 0x000a, 0x1705: 0x000a,\n\t0x1706: 0x000a, 0x1707: 0x000a, 0x1708: 0x000a, 0x1709: 0x000a, 0x170a: 0x000a,\n\t0x1720: 0x000a, 0x1721: 0x000a, 0x1722: 0x000a, 0x1723: 0x000a,\n\t0x1724: 0x000a, 0x1725: 0x000a, 0x1726: 0x000a, 0x1727: 0x000a, 0x1728: 0x000a, 0x1729: 0x000a,\n\t0x172a: 0x000a, 0x172b: 0x000a, 0x172c: 0x000a, 0x172d: 0x000a, 0x172e: 0x000a, 0x172f: 0x000a,\n\t0x1730: 0x000a, 0x1731: 0x000a, 0x1732: 0x000a, 0x1733: 0x000a, 0x1734: 0x000a, 0x1735: 0x000a,\n\t0x1736: 0x000a, 0x1737: 0x000a, 0x1738: 0x000a, 0x1739: 0x000a, 0x173a: 0x000a, 0x173b: 0x000a,\n\t0x173c: 0x000a, 0x173d: 0x000a, 0x173e: 0x000a, 0x173f: 0x000a,\n\t// Block 0x5d, offset 0x1740\n\t0x1740: 0x000a, 0x1741: 0x000a, 0x1742: 0x000a, 0x1743: 0x000a, 0x1744: 0x000a, 0x1745: 0x000a,\n\t0x1746: 0x000a, 0x1747: 0x000a, 0x1748: 0x0002, 0x1749: 0x0002, 0x174a: 0x0002, 0x174b: 0x0002,\n\t0x174c: 0x0002, 0x174d: 0x0002, 0x174e: 0x0002, 0x174f: 0x0002, 0x1750: 0x0002, 0x1751: 0x0002,\n\t0x1752: 0x0002, 0x1753: 0x0002, 0x1754: 0x0002, 0x1755: 0x0002, 0x1756: 0x0002, 0x1757: 0x0002,\n\t0x1758: 0x0002, 0x1759: 0x0002, 0x175a: 0x0002, 0x175b: 0x0002,\n\t// Block 0x5e, offset 0x1780\n\t0x17aa: 0x000a, 0x17ab: 0x000a, 0x17ac: 0x000a, 0x17ad: 0x000a, 0x17ae: 0x000a, 0x17af: 0x000a,\n\t0x17b0: 0x000a, 0x17b1: 0x000a, 0x17b2: 0x000a, 0x17b3: 0x000a, 0x17b4: 0x000a, 0x17b5: 0x000a,\n\t0x17b6: 0x000a, 0x17b7: 0x000a, 0x17b8: 0x000a, 0x17b9: 0x000a, 0x17ba: 0x000a, 0x17bb: 0x000a,\n\t0x17bc: 0x000a, 0x17bd: 0x000a, 0x17be: 0x000a, 0x17bf: 0x000a,\n\t// Block 0x5f, offset 0x17c0\n\t0x17c0: 0x000a, 0x17c1: 0x000a, 0x17c2: 0x000a, 0x17c3: 0x000a, 0x17c4: 0x000a, 0x17c5: 0x000a,\n\t0x17c6: 0x000a, 0x17c7: 0x000a, 0x17c8: 0x000a, 0x17c9: 0x000a, 0x17ca: 0x000a, 0x17cb: 0x000a,\n\t0x17cc: 0x000a, 0x17cd: 0x000a, 0x17ce: 0x000a, 0x17cf: 0x000a, 0x17d0: 0x000a, 0x17d1: 0x000a,\n\t0x17d2: 0x000a, 0x17d3: 0x000a, 0x17d4: 0x000a, 0x17d5: 0x000a, 0x17d6: 0x000a, 0x17d7: 0x000a,\n\t0x17d8: 0x000a, 0x17d9: 0x000a, 0x17da: 0x000a, 0x17db: 0x000a, 0x17dc: 0x000a, 0x17dd: 0x000a,\n\t0x17de: 0x000a, 0x17df: 0x000a, 0x17e0: 0x000a, 0x17e1: 0x000a, 0x17e2: 0x000a, 0x17e3: 0x000a,\n\t0x17e4: 0x000a, 0x17e5: 0x000a, 0x17e6: 0x000a, 0x17e7: 0x000a, 0x17e8: 0x000a, 0x17e9: 0x000a,\n\t0x17ea: 0x000a, 0x17eb: 0x000a, 0x17ed: 0x000a, 0x17ee: 0x000a, 0x17ef: 0x000a,\n\t0x17f0: 0x000a, 0x17f1: 0x000a, 0x17f2: 0x000a, 0x17f3: 0x000a, 0x17f4: 0x000a, 0x17f5: 0x000a,\n\t0x17f6: 0x000a, 0x17f7: 0x000a, 0x17f8: 0x000a, 0x17f9: 0x000a, 0x17fa: 0x000a, 0x17fb: 0x000a,\n\t0x17fc: 0x000a, 0x17fd: 0x000a, 0x17fe: 0x000a, 0x17ff: 0x000a,\n\t// Block 0x60, offset 0x1800\n\t0x1800: 0x000a, 0x1801: 0x000a, 0x1802: 0x000a, 0x1803: 0x000a, 0x1804: 0x000a, 0x1805: 0x000a,\n\t0x1806: 0x000a, 0x1807: 0x000a, 0x1808: 0x000a, 0x1809: 0x000a, 0x180a: 0x000a, 0x180b: 0x000a,\n\t0x180c: 0x000a, 0x180d: 0x000a, 0x180e: 0x000a, 0x180f: 0x000a, 0x1810: 0x000a, 0x1811: 0x000a,\n\t0x1812: 0x000a, 0x1813: 0x000a, 0x1814: 0x000a, 0x1815: 0x000a, 0x1816: 0x000a, 0x1817: 0x000a,\n\t0x1818: 0x000a, 0x1819: 0x000a, 0x181a: 0x000a, 0x181b: 0x000a, 0x181c: 0x000a, 0x181d: 0x000a,\n\t0x181e: 0x000a, 0x181f: 0x000a, 0x1820: 0x000a, 0x1821: 0x000a, 0x1822: 0x000a, 0x1823: 0x000a,\n\t0x1824: 0x000a, 0x1825: 0x000a, 0x1826: 0x000a, 0x1827: 0x000a, 0x1828: 0x003a, 0x1829: 0x002a,\n\t0x182a: 0x003a, 0x182b: 0x002a, 0x182c: 0x003a, 0x182d: 0x002a, 0x182e: 0x003a, 0x182f: 0x002a,\n\t0x1830: 0x003a, 0x1831: 0x002a, 0x1832: 0x003a, 0x1833: 0x002a, 0x1834: 0x003a, 0x1835: 0x002a,\n\t0x1836: 0x000a, 0x1837: 0x000a, 0x1838: 0x000a, 0x1839: 0x000a, 0x183a: 0x000a, 0x183b: 0x000a,\n\t0x183c: 0x000a, 0x183d: 0x000a, 0x183e: 0x000a, 0x183f: 0x000a,\n\t// Block 0x61, offset 0x1840\n\t0x1840: 0x000a, 0x1841: 0x000a, 0x1842: 0x000a, 0x1843: 0x000a, 0x1844: 0x000a, 0x1845: 0x009a,\n\t0x1846: 0x008a, 0x1847: 0x000a, 0x1848: 0x000a, 0x1849: 0x000a, 0x184a: 0x000a, 0x184b: 0x000a,\n\t0x184c: 0x000a, 0x184d: 0x000a, 0x184e: 0x000a, 0x184f: 0x000a, 0x1850: 0x000a, 0x1851: 0x000a,\n\t0x1852: 0x000a, 0x1853: 0x000a, 0x1854: 0x000a, 0x1855: 0x000a, 0x1856: 0x000a, 0x1857: 0x000a,\n\t0x1858: 0x000a, 0x1859: 0x000a, 0x185a: 0x000a, 0x185b: 0x000a, 0x185c: 0x000a, 0x185d: 0x000a,\n\t0x185e: 0x000a, 0x185f: 0x000a, 0x1860: 0x000a, 0x1861: 0x000a, 0x1862: 0x000a, 0x1863: 0x000a,\n\t0x1864: 0x000a, 0x1865: 0x000a, 0x1866: 0x003a, 0x1867: 0x002a, 0x1868: 0x003a, 0x1869: 0x002a,\n\t0x186a: 0x003a, 0x186b: 0x002a, 0x186c: 0x003a, 0x186d: 0x002a, 0x186e: 0x003a, 0x186f: 0x002a,\n\t0x1870: 0x000a, 0x1871: 0x000a, 0x1872: 0x000a, 0x1873: 0x000a, 0x1874: 0x000a, 0x1875: 0x000a,\n\t0x1876: 0x000a, 0x1877: 0x000a, 0x1878: 0x000a, 0x1879: 0x000a, 0x187a: 0x000a, 0x187b: 0x000a,\n\t0x187c: 0x000a, 0x187d: 0x000a, 0x187e: 0x000a, 0x187f: 0x000a,\n\t// Block 0x62, offset 0x1880\n\t0x1880: 0x000a, 0x1881: 0x000a, 0x1882: 0x000a, 0x1883: 0x007a, 0x1884: 0x006a, 0x1885: 0x009a,\n\t0x1886: 0x008a, 0x1887: 0x00ba, 0x1888: 0x00aa, 0x1889: 0x009a, 0x188a: 0x008a, 0x188b: 0x007a,\n\t0x188c: 0x006a, 0x188d: 0x00da, 0x188e: 0x002a, 0x188f: 0x003a, 0x1890: 0x00ca, 0x1891: 0x009a,\n\t0x1892: 0x008a, 0x1893: 0x007a, 0x1894: 0x006a, 0x1895: 0x009a, 0x1896: 0x008a, 0x1897: 0x00ba,\n\t0x1898: 0x00aa, 0x1899: 0x000a, 0x189a: 0x000a, 0x189b: 0x000a, 0x189c: 0x000a, 0x189d: 0x000a,\n\t0x189e: 0x000a, 0x189f: 0x000a, 0x18a0: 0x000a, 0x18a1: 0x000a, 0x18a2: 0x000a, 0x18a3: 0x000a,\n\t0x18a4: 0x000a, 0x18a5: 0x000a, 0x18a6: 0x000a, 0x18a7: 0x000a, 0x18a8: 0x000a, 0x18a9: 0x000a,\n\t0x18aa: 0x000a, 0x18ab: 0x000a, 0x18ac: 0x000a, 0x18ad: 0x000a, 0x18ae: 0x000a, 0x18af: 0x000a,\n\t0x18b0: 0x000a, 0x18b1: 0x000a, 0x18b2: 0x000a, 0x18b3: 0x000a, 0x18b4: 0x000a, 0x18b5: 0x000a,\n\t0x18b6: 0x000a, 0x18b7: 0x000a, 0x18b8: 0x000a, 0x18b9: 0x000a, 0x18ba: 0x000a, 0x18bb: 0x000a,\n\t0x18bc: 0x000a, 0x18bd: 0x000a, 0x18be: 0x000a, 0x18bf: 0x000a,\n\t// Block 0x63, offset 0x18c0\n\t0x18c0: 0x000a, 0x18c1: 0x000a, 0x18c2: 0x000a, 0x18c3: 0x000a, 0x18c4: 0x000a, 0x18c5: 0x000a,\n\t0x18c6: 0x000a, 0x18c7: 0x000a, 0x18c8: 0x000a, 0x18c9: 0x000a, 0x18ca: 0x000a, 0x18cb: 0x000a,\n\t0x18cc: 0x000a, 0x18cd: 0x000a, 0x18ce: 0x000a, 0x18cf: 0x000a, 0x18d0: 0x000a, 0x18d1: 0x000a,\n\t0x18d2: 0x000a, 0x18d3: 0x000a, 0x18d4: 0x000a, 0x18d5: 0x000a, 0x18d6: 0x000a, 0x18d7: 0x000a,\n\t0x18d8: 0x003a, 0x18d9: 0x002a, 0x18da: 0x003a, 0x18db: 0x002a, 0x18dc: 0x000a, 0x18dd: 0x000a,\n\t0x18de: 0x000a, 0x18df: 0x000a, 0x18e0: 0x000a, 0x18e1: 0x000a, 0x18e2: 0x000a, 0x18e3: 0x000a,\n\t0x18e4: 0x000a, 0x18e5: 0x000a, 0x18e6: 0x000a, 0x18e7: 0x000a, 0x18e8: 0x000a, 0x18e9: 0x000a,\n\t0x18ea: 0x000a, 0x18eb: 0x000a, 0x18ec: 0x000a, 0x18ed: 0x000a, 0x18ee: 0x000a, 0x18ef: 0x000a,\n\t0x18f0: 0x000a, 0x18f1: 0x000a, 0x18f2: 0x000a, 0x18f3: 0x000a, 0x18f4: 0x000a, 0x18f5: 0x000a,\n\t0x18f6: 0x000a, 0x18f7: 0x000a, 0x18f8: 0x000a, 0x18f9: 0x000a, 0x18fa: 0x000a, 0x18fb: 0x000a,\n\t0x18fc: 0x003a, 0x18fd: 0x002a, 0x18fe: 0x000a, 0x18ff: 0x000a,\n\t// Block 0x64, offset 0x1900\n\t0x1900: 0x000a, 0x1901: 0x000a, 0x1902: 0x000a, 0x1903: 0x000a, 0x1904: 0x000a, 0x1905: 0x000a,\n\t0x1906: 0x000a, 0x1907: 0x000a, 0x1908: 0x000a, 0x1909: 0x000a, 0x190a: 0x000a, 0x190b: 0x000a,\n\t0x190c: 0x000a, 0x190d: 0x000a, 0x190e: 0x000a, 0x190f: 0x000a, 0x1910: 0x000a, 0x1911: 0x000a,\n\t0x1912: 0x000a, 0x1913: 0x000a, 0x1914: 0x000a, 0x1915: 0x000a, 0x1916: 0x000a, 0x1917: 0x000a,\n\t0x1918: 0x000a, 0x1919: 0x000a, 0x191a: 0x000a, 0x191b: 0x000a, 0x191c: 0x000a, 0x191d: 0x000a,\n\t0x191e: 0x000a, 0x191f: 0x000a, 0x1920: 0x000a, 0x1921: 0x000a, 0x1922: 0x000a, 0x1923: 0x000a,\n\t0x1924: 0x000a, 0x1925: 0x000a, 0x1926: 0x000a, 0x1927: 0x000a, 0x1928: 0x000a, 0x1929: 0x000a,\n\t0x192a: 0x000a, 0x192b: 0x000a, 0x192c: 0x000a, 0x192d: 0x000a, 0x192e: 0x000a, 0x192f: 0x000a,\n\t0x1930: 0x000a, 0x1931: 0x000a, 0x1932: 0x000a, 0x1933: 0x000a,\n\t0x1936: 0x000a, 0x1937: 0x000a, 0x1938: 0x000a, 0x1939: 0x000a, 0x193a: 0x000a, 0x193b: 0x000a,\n\t0x193c: 0x000a, 0x193d: 0x000a, 0x193e: 0x000a, 0x193f: 0x000a,\n\t// Block 0x65, offset 0x1940\n\t0x1940: 0x000a, 0x1941: 0x000a, 0x1942: 0x000a, 0x1943: 0x000a, 0x1944: 0x000a, 0x1945: 0x000a,\n\t0x1946: 0x000a, 0x1947: 0x000a, 0x1948: 0x000a, 0x1949: 0x000a, 0x194a: 0x000a, 0x194b: 0x000a,\n\t0x194c: 0x000a, 0x194d: 0x000a, 0x194e: 0x000a, 0x194f: 0x000a, 0x1950: 0x000a, 0x1951: 0x000a,\n\t0x1952: 0x000a, 0x1953: 0x000a, 0x1954: 0x000a, 0x1955: 0x000a,\n\t0x1958: 0x000a, 0x1959: 0x000a, 0x195a: 0x000a, 0x195b: 0x000a, 0x195c: 0x000a, 0x195d: 0x000a,\n\t0x195e: 0x000a, 0x195f: 0x000a, 0x1960: 0x000a, 0x1961: 0x000a, 0x1962: 0x000a, 0x1963: 0x000a,\n\t0x1964: 0x000a, 0x1965: 0x000a, 0x1966: 0x000a, 0x1967: 0x000a, 0x1968: 0x000a, 0x1969: 0x000a,\n\t0x196a: 0x000a, 0x196b: 0x000a, 0x196c: 0x000a, 0x196d: 0x000a, 0x196e: 0x000a, 0x196f: 0x000a,\n\t0x1970: 0x000a, 0x1971: 0x000a, 0x1972: 0x000a, 0x1973: 0x000a, 0x1974: 0x000a, 0x1975: 0x000a,\n\t0x1976: 0x000a, 0x1977: 0x000a, 0x1978: 0x000a, 0x1979: 0x000a, 0x197a: 0x000a, 0x197b: 0x000a,\n\t0x197c: 0x000a, 0x197d: 0x000a, 0x197e: 0x000a, 0x197f: 0x000a,\n\t// Block 0x66, offset 0x1980\n\t0x1980: 0x000a, 0x1981: 0x000a, 0x1982: 0x000a, 0x1983: 0x000a, 0x1984: 0x000a, 0x1985: 0x000a,\n\t0x1986: 0x000a, 0x1987: 0x000a, 0x1988: 0x000a, 0x198a: 0x000a, 0x198b: 0x000a,\n\t0x198c: 0x000a, 0x198d: 0x000a, 0x198e: 0x000a, 0x198f: 0x000a, 0x1990: 0x000a, 0x1991: 0x000a,\n\t0x1992: 0x000a, 0x1993: 0x000a, 0x1994: 0x000a, 0x1995: 0x000a, 0x1996: 0x000a, 0x1997: 0x000a,\n\t0x1998: 0x000a, 0x1999: 0x000a, 0x199a: 0x000a, 0x199b: 0x000a, 0x199c: 0x000a, 0x199d: 0x000a,\n\t0x199e: 0x000a, 0x199f: 0x000a, 0x19a0: 0x000a, 0x19a1: 0x000a, 0x19a2: 0x000a, 0x19a3: 0x000a,\n\t0x19a4: 0x000a, 0x19a5: 0x000a, 0x19a6: 0x000a, 0x19a7: 0x000a, 0x19a8: 0x000a, 0x19a9: 0x000a,\n\t0x19aa: 0x000a, 0x19ab: 0x000a, 0x19ac: 0x000a, 0x19ad: 0x000a, 0x19ae: 0x000a, 0x19af: 0x000a,\n\t0x19b0: 0x000a, 0x19b1: 0x000a, 0x19b2: 0x000a, 0x19b3: 0x000a, 0x19b4: 0x000a, 0x19b5: 0x000a,\n\t0x19b6: 0x000a, 0x19b7: 0x000a, 0x19b8: 0x000a, 0x19b9: 0x000a, 0x19ba: 0x000a, 0x19bb: 0x000a,\n\t0x19bc: 0x000a, 0x19bd: 0x000a, 0x19be: 0x000a,\n\t// Block 0x67, offset 0x19c0\n\t0x19e5: 0x000a, 0x19e6: 0x000a, 0x19e7: 0x000a, 0x19e8: 0x000a, 0x19e9: 0x000a,\n\t0x19ea: 0x000a, 0x19ef: 0x000c,\n\t0x19f0: 0x000c, 0x19f1: 0x000c,\n\t0x19f9: 0x000a, 0x19fa: 0x000a, 0x19fb: 0x000a,\n\t0x19fc: 0x000a, 0x19fd: 0x000a, 0x19fe: 0x000a, 0x19ff: 0x000a,\n\t// Block 0x68, offset 0x1a00\n\t0x1a3f: 0x000c,\n\t// Block 0x69, offset 0x1a40\n\t0x1a60: 0x000c, 0x1a61: 0x000c, 0x1a62: 0x000c, 0x1a63: 0x000c,\n\t0x1a64: 0x000c, 0x1a65: 0x000c, 0x1a66: 0x000c, 0x1a67: 0x000c, 0x1a68: 0x000c, 0x1a69: 0x000c,\n\t0x1a6a: 0x000c, 0x1a6b: 0x000c, 0x1a6c: 0x000c, 0x1a6d: 0x000c, 0x1a6e: 0x000c, 0x1a6f: 0x000c,\n\t0x1a70: 0x000c, 0x1a71: 0x000c, 0x1a72: 0x000c, 0x1a73: 0x000c, 0x1a74: 0x000c, 0x1a75: 0x000c,\n\t0x1a76: 0x000c, 0x1a77: 0x000c, 0x1a78: 0x000c, 0x1a79: 0x000c, 0x1a7a: 0x000c, 0x1a7b: 0x000c,\n\t0x1a7c: 0x000c, 0x1a7d: 0x000c, 0x1a7e: 0x000c, 0x1a7f: 0x000c,\n\t// Block 0x6a, offset 0x1a80\n\t0x1a80: 0x000a, 0x1a81: 0x000a, 0x1a82: 0x000a, 0x1a83: 0x000a, 0x1a84: 0x000a, 0x1a85: 0x000a,\n\t0x1a86: 0x000a, 0x1a87: 0x000a, 0x1a88: 0x000a, 0x1a89: 0x000a, 0x1a8a: 0x000a, 0x1a8b: 0x000a,\n\t0x1a8c: 0x000a, 0x1a8d: 0x000a, 0x1a8e: 0x000a, 0x1a8f: 0x000a, 0x1a90: 0x000a, 0x1a91: 0x000a,\n\t0x1a92: 0x000a, 0x1a93: 0x000a, 0x1a94: 0x000a, 0x1a95: 0x000a, 0x1a96: 0x000a, 0x1a97: 0x000a,\n\t0x1a98: 0x000a, 0x1a99: 0x000a, 0x1a9a: 0x000a, 0x1a9b: 0x000a, 0x1a9c: 0x000a, 0x1a9d: 0x000a,\n\t0x1a9e: 0x000a, 0x1a9f: 0x000a, 0x1aa0: 0x000a, 0x1aa1: 0x000a, 0x1aa2: 0x003a, 0x1aa3: 0x002a,\n\t0x1aa4: 0x003a, 0x1aa5: 0x002a, 0x1aa6: 0x003a, 0x1aa7: 0x002a, 0x1aa8: 0x003a, 0x1aa9: 0x002a,\n\t0x1aaa: 0x000a, 0x1aab: 0x000a, 0x1aac: 0x000a, 0x1aad: 0x000a, 0x1aae: 0x000a, 0x1aaf: 0x000a,\n\t0x1ab0: 0x000a, 0x1ab1: 0x000a, 0x1ab2: 0x000a, 0x1ab3: 0x000a, 0x1ab4: 0x000a, 0x1ab5: 0x000a,\n\t0x1ab6: 0x000a, 0x1ab7: 0x000a, 0x1ab8: 0x000a, 0x1ab9: 0x000a, 0x1aba: 0x000a, 0x1abb: 0x000a,\n\t0x1abc: 0x000a, 0x1abd: 0x000a, 0x1abe: 0x000a, 0x1abf: 0x000a,\n\t// Block 0x6b, offset 0x1ac0\n\t0x1ac0: 0x000a, 0x1ac1: 0x000a, 0x1ac2: 0x000a, 0x1ac3: 0x000a, 0x1ac4: 0x000a, 0x1ac5: 0x000a,\n\t0x1ac6: 0x000a, 0x1ac7: 0x000a, 0x1ac8: 0x000a, 0x1ac9: 0x000a, 0x1aca: 0x000a, 0x1acb: 0x000a,\n\t0x1acc: 0x000a, 0x1acd: 0x000a, 0x1ace: 0x000a,\n\t// Block 0x6c, offset 0x1b00\n\t0x1b00: 0x000a, 0x1b01: 0x000a, 0x1b02: 0x000a, 0x1b03: 0x000a, 0x1b04: 0x000a, 0x1b05: 0x000a,\n\t0x1b06: 0x000a, 0x1b07: 0x000a, 0x1b08: 0x000a, 0x1b09: 0x000a, 0x1b0a: 0x000a, 0x1b0b: 0x000a,\n\t0x1b0c: 0x000a, 0x1b0d: 0x000a, 0x1b0e: 0x000a, 0x1b0f: 0x000a, 0x1b10: 0x000a, 0x1b11: 0x000a,\n\t0x1b12: 0x000a, 0x1b13: 0x000a, 0x1b14: 0x000a, 0x1b15: 0x000a, 0x1b16: 0x000a, 0x1b17: 0x000a,\n\t0x1b18: 0x000a, 0x1b19: 0x000a, 0x1b1b: 0x000a, 0x1b1c: 0x000a, 0x1b1d: 0x000a,\n\t0x1b1e: 0x000a, 0x1b1f: 0x000a, 0x1b20: 0x000a, 0x1b21: 0x000a, 0x1b22: 0x000a, 0x1b23: 0x000a,\n\t0x1b24: 0x000a, 0x1b25: 0x000a, 0x1b26: 0x000a, 0x1b27: 0x000a, 0x1b28: 0x000a, 0x1b29: 0x000a,\n\t0x1b2a: 0x000a, 0x1b2b: 0x000a, 0x1b2c: 0x000a, 0x1b2d: 0x000a, 0x1b2e: 0x000a, 0x1b2f: 0x000a,\n\t0x1b30: 0x000a, 0x1b31: 0x000a, 0x1b32: 0x000a, 0x1b33: 0x000a, 0x1b34: 0x000a, 0x1b35: 0x000a,\n\t0x1b36: 0x000a, 0x1b37: 0x000a, 0x1b38: 0x000a, 0x1b39: 0x000a, 0x1b3a: 0x000a, 0x1b3b: 0x000a,\n\t0x1b3c: 0x000a, 0x1b3d: 0x000a, 0x1b3e: 0x000a, 0x1b3f: 0x000a,\n\t// Block 0x6d, offset 0x1b40\n\t0x1b40: 0x000a, 0x1b41: 0x000a, 0x1b42: 0x000a, 0x1b43: 0x000a, 0x1b44: 0x000a, 0x1b45: 0x000a,\n\t0x1b46: 0x000a, 0x1b47: 0x000a, 0x1b48: 0x000a, 0x1b49: 0x000a, 0x1b4a: 0x000a, 0x1b4b: 0x000a,\n\t0x1b4c: 0x000a, 0x1b4d: 0x000a, 0x1b4e: 0x000a, 0x1b4f: 0x000a, 0x1b50: 0x000a, 0x1b51: 0x000a,\n\t0x1b52: 0x000a, 0x1b53: 0x000a, 0x1b54: 0x000a, 0x1b55: 0x000a, 0x1b56: 0x000a, 0x1b57: 0x000a,\n\t0x1b58: 0x000a, 0x1b59: 0x000a, 0x1b5a: 0x000a, 0x1b5b: 0x000a, 0x1b5c: 0x000a, 0x1b5d: 0x000a,\n\t0x1b5e: 0x000a, 0x1b5f: 0x000a, 0x1b60: 0x000a, 0x1b61: 0x000a, 0x1b62: 0x000a, 0x1b63: 0x000a,\n\t0x1b64: 0x000a, 0x1b65: 0x000a, 0x1b66: 0x000a, 0x1b67: 0x000a, 0x1b68: 0x000a, 0x1b69: 0x000a,\n\t0x1b6a: 0x000a, 0x1b6b: 0x000a, 0x1b6c: 0x000a, 0x1b6d: 0x000a, 0x1b6e: 0x000a, 0x1b6f: 0x000a,\n\t0x1b70: 0x000a, 0x1b71: 0x000a, 0x1b72: 0x000a, 0x1b73: 0x000a,\n\t// Block 0x6e, offset 0x1b80\n\t0x1b80: 0x000a, 0x1b81: 0x000a, 0x1b82: 0x000a, 0x1b83: 0x000a, 0x1b84: 0x000a, 0x1b85: 0x000a,\n\t0x1b86: 0x000a, 0x1b87: 0x000a, 0x1b88: 0x000a, 0x1b89: 0x000a, 0x1b8a: 0x000a, 0x1b8b: 0x000a,\n\t0x1b8c: 0x000a, 0x1b8d: 0x000a, 0x1b8e: 0x000a, 0x1b8f: 0x000a, 0x1b90: 0x000a, 0x1b91: 0x000a,\n\t0x1b92: 0x000a, 0x1b93: 0x000a, 0x1b94: 0x000a, 0x1b95: 0x000a,\n\t0x1bb0: 0x000a, 0x1bb1: 0x000a, 0x1bb2: 0x000a, 0x1bb3: 0x000a, 0x1bb4: 0x000a, 0x1bb5: 0x000a,\n\t0x1bb6: 0x000a, 0x1bb7: 0x000a, 0x1bb8: 0x000a, 0x1bb9: 0x000a, 0x1bba: 0x000a, 0x1bbb: 0x000a,\n\t// Block 0x6f, offset 0x1bc0\n\t0x1bc0: 0x0009, 0x1bc1: 0x000a, 0x1bc2: 0x000a, 0x1bc3: 0x000a, 0x1bc4: 0x000a,\n\t0x1bc8: 0x003a, 0x1bc9: 0x002a, 0x1bca: 0x003a, 0x1bcb: 0x002a,\n\t0x1bcc: 0x003a, 0x1bcd: 0x002a, 0x1bce: 0x003a, 0x1bcf: 0x002a, 0x1bd0: 0x003a, 0x1bd1: 0x002a,\n\t0x1bd2: 0x000a, 0x1bd3: 0x000a, 0x1bd4: 0x003a, 0x1bd5: 0x002a, 0x1bd6: 0x003a, 0x1bd7: 0x002a,\n\t0x1bd8: 0x003a, 0x1bd9: 0x002a, 0x1bda: 0x003a, 0x1bdb: 0x002a, 0x1bdc: 0x000a, 0x1bdd: 0x000a,\n\t0x1bde: 0x000a, 0x1bdf: 0x000a, 0x1be0: 0x000a,\n\t0x1bea: 0x000c, 0x1beb: 0x000c, 0x1bec: 0x000c, 0x1bed: 0x000c,\n\t0x1bf0: 0x000a,\n\t0x1bf6: 0x000a, 0x1bf7: 0x000a,\n\t0x1bfd: 0x000a, 0x1bfe: 0x000a, 0x1bff: 0x000a,\n\t// Block 0x70, offset 0x1c00\n\t0x1c19: 0x000c, 0x1c1a: 0x000c, 0x1c1b: 0x000a, 0x1c1c: 0x000a,\n\t0x1c20: 0x000a,\n\t// Block 0x71, offset 0x1c40\n\t0x1c7b: 0x000a,\n\t// Block 0x72, offset 0x1c80\n\t0x1c80: 0x000a, 0x1c81: 0x000a, 0x1c82: 0x000a, 0x1c83: 0x000a, 0x1c84: 0x000a, 0x1c85: 0x000a,\n\t0x1c86: 0x000a, 0x1c87: 0x000a, 0x1c88: 0x000a, 0x1c89: 0x000a, 0x1c8a: 0x000a, 0x1c8b: 0x000a,\n\t0x1c8c: 0x000a, 0x1c8d: 0x000a, 0x1c8e: 0x000a, 0x1c8f: 0x000a, 0x1c90: 0x000a, 0x1c91: 0x000a,\n\t0x1c92: 0x000a, 0x1c93: 0x000a, 0x1c94: 0x000a, 0x1c95: 0x000a, 0x1c96: 0x000a, 0x1c97: 0x000a,\n\t0x1c98: 0x000a, 0x1c99: 0x000a, 0x1c9a: 0x000a, 0x1c9b: 0x000a, 0x1c9c: 0x000a, 0x1c9d: 0x000a,\n\t0x1c9e: 0x000a, 0x1c9f: 0x000a, 0x1ca0: 0x000a, 0x1ca1: 0x000a, 0x1ca2: 0x000a, 0x1ca3: 0x000a,\n\t// Block 0x73, offset 0x1cc0\n\t0x1cdd: 0x000a,\n\t0x1cde: 0x000a,\n\t// Block 0x74, offset 0x1d00\n\t0x1d10: 0x000a, 0x1d11: 0x000a,\n\t0x1d12: 0x000a, 0x1d13: 0x000a, 0x1d14: 0x000a, 0x1d15: 0x000a, 0x1d16: 0x000a, 0x1d17: 0x000a,\n\t0x1d18: 0x000a, 0x1d19: 0x000a, 0x1d1a: 0x000a, 0x1d1b: 0x000a, 0x1d1c: 0x000a, 0x1d1d: 0x000a,\n\t0x1d1e: 0x000a, 0x1d1f: 0x000a,\n\t0x1d3c: 0x000a, 0x1d3d: 0x000a, 0x1d3e: 0x000a,\n\t// Block 0x75, offset 0x1d40\n\t0x1d71: 0x000a, 0x1d72: 0x000a, 0x1d73: 0x000a, 0x1d74: 0x000a, 0x1d75: 0x000a,\n\t0x1d76: 0x000a, 0x1d77: 0x000a, 0x1d78: 0x000a, 0x1d79: 0x000a, 0x1d7a: 0x000a, 0x1d7b: 0x000a,\n\t0x1d7c: 0x000a, 0x1d7d: 0x000a, 0x1d7e: 0x000a, 0x1d7f: 0x000a,\n\t// Block 0x76, offset 0x1d80\n\t0x1d8c: 0x000a, 0x1d8d: 0x000a, 0x1d8e: 0x000a, 0x1d8f: 0x000a,\n\t// Block 0x77, offset 0x1dc0\n\t0x1df7: 0x000a, 0x1df8: 0x000a, 0x1df9: 0x000a, 0x1dfa: 0x000a,\n\t// Block 0x78, offset 0x1e00\n\t0x1e1e: 0x000a, 0x1e1f: 0x000a,\n\t0x1e3f: 0x000a,\n\t// Block 0x79, offset 0x1e40\n\t0x1e50: 0x000a, 0x1e51: 0x000a,\n\t0x1e52: 0x000a, 0x1e53: 0x000a, 0x1e54: 0x000a, 0x1e55: 0x000a, 0x1e56: 0x000a, 0x1e57: 0x000a,\n\t0x1e58: 0x000a, 0x1e59: 0x000a, 0x1e5a: 0x000a, 0x1e5b: 0x000a, 0x1e5c: 0x000a, 0x1e5d: 0x000a,\n\t0x1e5e: 0x000a, 0x1e5f: 0x000a, 0x1e60: 0x000a, 0x1e61: 0x000a, 0x1e62: 0x000a, 0x1e63: 0x000a,\n\t0x1e64: 0x000a, 0x1e65: 0x000a, 0x1e66: 0x000a, 0x1e67: 0x000a, 0x1e68: 0x000a, 0x1e69: 0x000a,\n\t0x1e6a: 0x000a, 0x1e6b: 0x000a, 0x1e6c: 0x000a, 0x1e6d: 0x000a, 0x1e6e: 0x000a, 0x1e6f: 0x000a,\n\t0x1e70: 0x000a, 0x1e71: 0x000a, 0x1e72: 0x000a, 0x1e73: 0x000a, 0x1e74: 0x000a, 0x1e75: 0x000a,\n\t0x1e76: 0x000a, 0x1e77: 0x000a, 0x1e78: 0x000a, 0x1e79: 0x000a, 0x1e7a: 0x000a, 0x1e7b: 0x000a,\n\t0x1e7c: 0x000a, 0x1e7d: 0x000a, 0x1e7e: 0x000a, 0x1e7f: 0x000a,\n\t// Block 0x7a, offset 0x1e80\n\t0x1e80: 0x000a, 0x1e81: 0x000a, 0x1e82: 0x000a, 0x1e83: 0x000a, 0x1e84: 0x000a, 0x1e85: 0x000a,\n\t0x1e86: 0x000a,\n\t// Block 0x7b, offset 0x1ec0\n\t0x1ecd: 0x000a, 0x1ece: 0x000a, 0x1ecf: 0x000a,\n\t// Block 0x7c, offset 0x1f00\n\t0x1f2f: 0x000c,\n\t0x1f30: 0x000c, 0x1f31: 0x000c, 0x1f32: 0x000c, 0x1f33: 0x000a, 0x1f34: 0x000c, 0x1f35: 0x000c,\n\t0x1f36: 0x000c, 0x1f37: 0x000c, 0x1f38: 0x000c, 0x1f39: 0x000c, 0x1f3a: 0x000c, 0x1f3b: 0x000c,\n\t0x1f3c: 0x000c, 0x1f3d: 0x000c, 0x1f3e: 0x000a, 0x1f3f: 0x000a,\n\t// Block 0x7d, offset 0x1f40\n\t0x1f5e: 0x000c, 0x1f5f: 0x000c,\n\t// Block 0x7e, offset 0x1f80\n\t0x1fb0: 0x000c, 0x1fb1: 0x000c,\n\t// Block 0x7f, offset 0x1fc0\n\t0x1fc0: 0x000a, 0x1fc1: 0x000a, 0x1fc2: 0x000a, 0x1fc3: 0x000a, 0x1fc4: 0x000a, 0x1fc5: 0x000a,\n\t0x1fc6: 0x000a, 0x1fc7: 0x000a, 0x1fc8: 0x000a, 0x1fc9: 0x000a, 0x1fca: 0x000a, 0x1fcb: 0x000a,\n\t0x1fcc: 0x000a, 0x1fcd: 0x000a, 0x1fce: 0x000a, 0x1fcf: 0x000a, 0x1fd0: 0x000a, 0x1fd1: 0x000a,\n\t0x1fd2: 0x000a, 0x1fd3: 0x000a, 0x1fd4: 0x000a, 0x1fd5: 0x000a, 0x1fd6: 0x000a, 0x1fd7: 0x000a,\n\t0x1fd8: 0x000a, 0x1fd9: 0x000a, 0x1fda: 0x000a, 0x1fdb: 0x000a, 0x1fdc: 0x000a, 0x1fdd: 0x000a,\n\t0x1fde: 0x000a, 0x1fdf: 0x000a, 0x1fe0: 0x000a, 0x1fe1: 0x000a,\n\t// Block 0x80, offset 0x2000\n\t0x2008: 0x000a,\n\t// Block 0x81, offset 0x2040\n\t0x2042: 0x000c,\n\t0x2046: 0x000c, 0x204b: 0x000c,\n\t0x2065: 0x000c, 0x2066: 0x000c, 0x2068: 0x000a, 0x2069: 0x000a,\n\t0x206a: 0x000a, 0x206b: 0x000a,\n\t0x2078: 0x0004, 0x2079: 0x0004,\n\t// Block 0x82, offset 0x2080\n\t0x20b4: 0x000a, 0x20b5: 0x000a,\n\t0x20b6: 0x000a, 0x20b7: 0x000a,\n\t// Block 0x83, offset 0x20c0\n\t0x20c4: 0x000c, 0x20c5: 0x000c,\n\t0x20e0: 0x000c, 0x20e1: 0x000c, 0x20e2: 0x000c, 0x20e3: 0x000c,\n\t0x20e4: 0x000c, 0x20e5: 0x000c, 0x20e6: 0x000c, 0x20e7: 0x000c, 0x20e8: 0x000c, 0x20e9: 0x000c,\n\t0x20ea: 0x000c, 0x20eb: 0x000c, 0x20ec: 0x000c, 0x20ed: 0x000c, 0x20ee: 0x000c, 0x20ef: 0x000c,\n\t0x20f0: 0x000c, 0x20f1: 0x000c,\n\t0x20ff: 0x000c,\n\t// Block 0x84, offset 0x2100\n\t0x2126: 0x000c, 0x2127: 0x000c, 0x2128: 0x000c, 0x2129: 0x000c,\n\t0x212a: 0x000c, 0x212b: 0x000c, 0x212c: 0x000c, 0x212d: 0x000c,\n\t// Block 0x85, offset 0x2140\n\t0x2147: 0x000c, 0x2148: 0x000c, 0x2149: 0x000c, 0x214a: 0x000c, 0x214b: 0x000c,\n\t0x214c: 0x000c, 0x214d: 0x000c, 0x214e: 0x000c, 0x214f: 0x000c, 0x2150: 0x000c, 0x2151: 0x000c,\n\t// Block 0x86, offset 0x2180\n\t0x2180: 0x000c, 0x2181: 0x000c, 0x2182: 0x000c,\n\t0x21b3: 0x000c,\n\t0x21b6: 0x000c, 0x21b7: 0x000c, 0x21b8: 0x000c, 0x21b9: 0x000c,\n\t0x21bc: 0x000c,\n\t// Block 0x87, offset 0x21c0\n\t0x21e5: 0x000c,\n\t// Block 0x88, offset 0x2200\n\t0x2229: 0x000c,\n\t0x222a: 0x000c, 0x222b: 0x000c, 0x222c: 0x000c, 0x222d: 0x000c, 0x222e: 0x000c,\n\t0x2231: 0x000c, 0x2232: 0x000c, 0x2235: 0x000c,\n\t0x2236: 0x000c,\n\t// Block 0x89, offset 0x2240\n\t0x2243: 0x000c,\n\t0x224c: 0x000c,\n\t0x227c: 0x000c,\n\t// Block 0x8a, offset 0x2280\n\t0x22b0: 0x000c, 0x22b2: 0x000c, 0x22b3: 0x000c, 0x22b4: 0x000c,\n\t0x22b7: 0x000c, 0x22b8: 0x000c,\n\t0x22be: 0x000c, 0x22bf: 0x000c,\n\t// Block 0x8b, offset 0x22c0\n\t0x22c1: 0x000c,\n\t0x22ec: 0x000c, 0x22ed: 0x000c,\n\t0x22f6: 0x000c,\n\t// Block 0x8c, offset 0x2300\n\t0x2325: 0x000c, 0x2328: 0x000c,\n\t0x232d: 0x000c,\n\t// Block 0x8d, offset 0x2340\n\t0x235d: 0x0001,\n\t0x235e: 0x000c, 0x235f: 0x0001, 0x2360: 0x0001, 0x2361: 0x0001, 0x2362: 0x0001, 0x2363: 0x0001,\n\t0x2364: 0x0001, 0x2365: 0x0001, 0x2366: 0x0001, 0x2367: 0x0001, 0x2368: 0x0001, 0x2369: 0x0003,\n\t0x236a: 0x0001, 0x236b: 0x0001, 0x236c: 0x0001, 0x236d: 0x0001, 0x236e: 0x0001, 0x236f: 0x0001,\n\t0x2370: 0x0001, 0x2371: 0x0001, 0x2372: 0x0001, 0x2373: 0x0001, 0x2374: 0x0001, 0x2375: 0x0001,\n\t0x2376: 0x0001, 0x2377: 0x0001, 0x2378: 0x0001, 0x2379: 0x0001, 0x237a: 0x0001, 0x237b: 0x0001,\n\t0x237c: 0x0001, 0x237d: 0x0001, 0x237e: 0x0001, 0x237f: 0x0001,\n\t// Block 0x8e, offset 0x2380\n\t0x2380: 0x0001, 0x2381: 0x0001, 0x2382: 0x0001, 0x2383: 0x0001, 0x2384: 0x0001, 0x2385: 0x0001,\n\t0x2386: 0x0001, 0x2387: 0x0001, 0x2388: 0x0001, 0x2389: 0x0001, 0x238a: 0x0001, 0x238b: 0x0001,\n\t0x238c: 0x0001, 0x238d: 0x0001, 0x238e: 0x0001, 0x238f: 0x0001, 0x2390: 0x000d, 0x2391: 0x000d,\n\t0x2392: 0x000d, 0x2393: 0x000d, 0x2394: 0x000d, 0x2395: 0x000d, 0x2396: 0x000d, 0x2397: 0x000d,\n\t0x2398: 0x000d, 0x2399: 0x000d, 0x239a: 0x000d, 0x239b: 0x000d, 0x239c: 0x000d, 0x239d: 0x000d,\n\t0x239e: 0x000d, 0x239f: 0x000d, 0x23a0: 0x000d, 0x23a1: 0x000d, 0x23a2: 0x000d, 0x23a3: 0x000d,\n\t0x23a4: 0x000d, 0x23a5: 0x000d, 0x23a6: 0x000d, 0x23a7: 0x000d, 0x23a8: 0x000d, 0x23a9: 0x000d,\n\t0x23aa: 0x000d, 0x23ab: 0x000d, 0x23ac: 0x000d, 0x23ad: 0x000d, 0x23ae: 0x000d, 0x23af: 0x000d,\n\t0x23b0: 0x000d, 0x23b1: 0x000d, 0x23b2: 0x000d, 0x23b3: 0x000d, 0x23b4: 0x000d, 0x23b5: 0x000d,\n\t0x23b6: 0x000d, 0x23b7: 0x000d, 0x23b8: 0x000d, 0x23b9: 0x000d, 0x23ba: 0x000d, 0x23bb: 0x000d,\n\t0x23bc: 0x000d, 0x23bd: 0x000d, 0x23be: 0x000d, 0x23bf: 0x000d,\n\t// Block 0x8f, offset 0x23c0\n\t0x23c0: 0x000d, 0x23c1: 0x000d, 0x23c2: 0x000d, 0x23c3: 0x000d, 0x23c4: 0x000d, 0x23c5: 0x000d,\n\t0x23c6: 0x000d, 0x23c7: 0x000d, 0x23c8: 0x000d, 0x23c9: 0x000d, 0x23ca: 0x000d, 0x23cb: 0x000d,\n\t0x23cc: 0x000d, 0x23cd: 0x000d, 0x23ce: 0x000d, 0x23cf: 0x000d, 0x23d0: 0x000d, 0x23d1: 0x000d,\n\t0x23d2: 0x000d, 0x23d3: 0x000d, 0x23d4: 0x000d, 0x23d5: 0x000d, 0x23d6: 0x000d, 0x23d7: 0x000d,\n\t0x23d8: 0x000d, 0x23d9: 0x000d, 0x23da: 0x000d, 0x23db: 0x000d, 0x23dc: 0x000d, 0x23dd: 0x000d,\n\t0x23de: 0x000d, 0x23df: 0x000d, 0x23e0: 0x000d, 0x23e1: 0x000d, 0x23e2: 0x000d, 0x23e3: 0x000d,\n\t0x23e4: 0x000d, 0x23e5: 0x000d, 0x23e6: 0x000d, 0x23e7: 0x000d, 0x23e8: 0x000d, 0x23e9: 0x000d,\n\t0x23ea: 0x000d, 0x23eb: 0x000d, 0x23ec: 0x000d, 0x23ed: 0x000d, 0x23ee: 0x000d, 0x23ef: 0x000d,\n\t0x23f0: 0x000d, 0x23f1: 0x000d, 0x23f2: 0x000d, 0x23f3: 0x000d, 0x23f4: 0x000d, 0x23f5: 0x000d,\n\t0x23f6: 0x000d, 0x23f7: 0x000d, 0x23f8: 0x000d, 0x23f9: 0x000d, 0x23fa: 0x000d, 0x23fb: 0x000d,\n\t0x23fc: 0x000d, 0x23fd: 0x000d, 0x23fe: 0x000a, 0x23ff: 0x000a,\n\t// Block 0x90, offset 0x2400\n\t0x2400: 0x000d, 0x2401: 0x000d, 0x2402: 0x000d, 0x2403: 0x000d, 0x2404: 0x000d, 0x2405: 0x000d,\n\t0x2406: 0x000d, 0x2407: 0x000d, 0x2408: 0x000d, 0x2409: 0x000d, 0x240a: 0x000d, 0x240b: 0x000d,\n\t0x240c: 0x000d, 0x240d: 0x000d, 0x240e: 0x000d, 0x240f: 0x000d, 0x2410: 0x000b, 0x2411: 0x000b,\n\t0x2412: 0x000b, 0x2413: 0x000b, 0x2414: 0x000b, 0x2415: 0x000b, 0x2416: 0x000b, 0x2417: 0x000b,\n\t0x2418: 0x000b, 0x2419: 0x000b, 0x241a: 0x000b, 0x241b: 0x000b, 0x241c: 0x000b, 0x241d: 0x000b,\n\t0x241e: 0x000b, 0x241f: 0x000b, 0x2420: 0x000b, 0x2421: 0x000b, 0x2422: 0x000b, 0x2423: 0x000b,\n\t0x2424: 0x000b, 0x2425: 0x000b, 0x2426: 0x000b, 0x2427: 0x000b, 0x2428: 0x000b, 0x2429: 0x000b,\n\t0x242a: 0x000b, 0x242b: 0x000b, 0x242c: 0x000b, 0x242d: 0x000b, 0x242e: 0x000b, 0x242f: 0x000b,\n\t0x2430: 0x000d, 0x2431: 0x000d, 0x2432: 0x000d, 0x2433: 0x000d, 0x2434: 0x000d, 0x2435: 0x000d,\n\t0x2436: 0x000d, 0x2437: 0x000d, 0x2438: 0x000d, 0x2439: 0x000d, 0x243a: 0x000d, 0x243b: 0x000d,\n\t0x243c: 0x000d, 0x243d: 0x000a, 0x243e: 0x000d, 0x243f: 0x000d,\n\t// Block 0x91, offset 0x2440\n\t0x2440: 0x000c, 0x2441: 0x000c, 0x2442: 0x000c, 0x2443: 0x000c, 0x2444: 0x000c, 0x2445: 0x000c,\n\t0x2446: 0x000c, 0x2447: 0x000c, 0x2448: 0x000c, 0x2449: 0x000c, 0x244a: 0x000c, 0x244b: 0x000c,\n\t0x244c: 0x000c, 0x244d: 0x000c, 0x244e: 0x000c, 0x244f: 0x000c, 0x2450: 0x000a, 0x2451: 0x000a,\n\t0x2452: 0x000a, 0x2453: 0x000a, 0x2454: 0x000a, 0x2455: 0x000a, 0x2456: 0x000a, 0x2457: 0x000a,\n\t0x2458: 0x000a, 0x2459: 0x000a,\n\t0x2460: 0x000c, 0x2461: 0x000c, 0x2462: 0x000c, 0x2463: 0x000c,\n\t0x2464: 0x000c, 0x2465: 0x000c, 0x2466: 0x000c, 0x2467: 0x000c, 0x2468: 0x000c, 0x2469: 0x000c,\n\t0x246a: 0x000c, 0x246b: 0x000c, 0x246c: 0x000c, 0x246d: 0x000c, 0x246e: 0x000c, 0x246f: 0x000c,\n\t0x2470: 0x000a, 0x2471: 0x000a, 0x2472: 0x000a, 0x2473: 0x000a, 0x2474: 0x000a, 0x2475: 0x000a,\n\t0x2476: 0x000a, 0x2477: 0x000a, 0x2478: 0x000a, 0x2479: 0x000a, 0x247a: 0x000a, 0x247b: 0x000a,\n\t0x247c: 0x000a, 0x247d: 0x000a, 0x247e: 0x000a, 0x247f: 0x000a,\n\t// Block 0x92, offset 0x2480\n\t0x2480: 0x000a, 0x2481: 0x000a, 0x2482: 0x000a, 0x2483: 0x000a, 0x2484: 0x000a, 0x2485: 0x000a,\n\t0x2486: 0x000a, 0x2487: 0x000a, 0x2488: 0x000a, 0x2489: 0x000a, 0x248a: 0x000a, 0x248b: 0x000a,\n\t0x248c: 0x000a, 0x248d: 0x000a, 0x248e: 0x000a, 0x248f: 0x000a, 0x2490: 0x0006, 0x2491: 0x000a,\n\t0x2492: 0x0006, 0x2494: 0x000a, 0x2495: 0x0006, 0x2496: 0x000a, 0x2497: 0x000a,\n\t0x2498: 0x000a, 0x2499: 0x009a, 0x249a: 0x008a, 0x249b: 0x007a, 0x249c: 0x006a, 0x249d: 0x009a,\n\t0x249e: 0x008a, 0x249f: 0x0004, 0x24a0: 0x000a, 0x24a1: 0x000a, 0x24a2: 0x0003, 0x24a3: 0x0003,\n\t0x24a4: 0x000a, 0x24a5: 0x000a, 0x24a6: 0x000a, 0x24a8: 0x000a, 0x24a9: 0x0004,\n\t0x24aa: 0x0004, 0x24ab: 0x000a,\n\t0x24b0: 0x000d, 0x24b1: 0x000d, 0x24b2: 0x000d, 0x24b3: 0x000d, 0x24b4: 0x000d, 0x24b5: 0x000d,\n\t0x24b6: 0x000d, 0x24b7: 0x000d, 0x24b8: 0x000d, 0x24b9: 0x000d, 0x24ba: 0x000d, 0x24bb: 0x000d,\n\t0x24bc: 0x000d, 0x24bd: 0x000d, 0x24be: 0x000d, 0x24bf: 0x000d,\n\t// Block 0x93, offset 0x24c0\n\t0x24c0: 0x000d, 0x24c1: 0x000d, 0x24c2: 0x000d, 0x24c3: 0x000d, 0x24c4: 0x000d, 0x24c5: 0x000d,\n\t0x24c6: 0x000d, 0x24c7: 0x000d, 0x24c8: 0x000d, 0x24c9: 0x000d, 0x24ca: 0x000d, 0x24cb: 0x000d,\n\t0x24cc: 0x000d, 0x24cd: 0x000d, 0x24ce: 0x000d, 0x24cf: 0x000d, 0x24d0: 0x000d, 0x24d1: 0x000d,\n\t0x24d2: 0x000d, 0x24d3: 0x000d, 0x24d4: 0x000d, 0x24d5: 0x000d, 0x24d6: 0x000d, 0x24d7: 0x000d,\n\t0x24d8: 0x000d, 0x24d9: 0x000d, 0x24da: 0x000d, 0x24db: 0x000d, 0x24dc: 0x000d, 0x24dd: 0x000d,\n\t0x24de: 0x000d, 0x24df: 0x000d, 0x24e0: 0x000d, 0x24e1: 0x000d, 0x24e2: 0x000d, 0x24e3: 0x000d,\n\t0x24e4: 0x000d, 0x24e5: 0x000d, 0x24e6: 0x000d, 0x24e7: 0x000d, 0x24e8: 0x000d, 0x24e9: 0x000d,\n\t0x24ea: 0x000d, 0x24eb: 0x000d, 0x24ec: 0x000d, 0x24ed: 0x000d, 0x24ee: 0x000d, 0x24ef: 0x000d,\n\t0x24f0: 0x000d, 0x24f1: 0x000d, 0x24f2: 0x000d, 0x24f3: 0x000d, 0x24f4: 0x000d, 0x24f5: 0x000d,\n\t0x24f6: 0x000d, 0x24f7: 0x000d, 0x24f8: 0x000d, 0x24f9: 0x000d, 0x24fa: 0x000d, 0x24fb: 0x000d,\n\t0x24fc: 0x000d, 0x24fd: 0x000d, 0x24fe: 0x000d, 0x24ff: 0x000b,\n\t// Block 0x94, offset 0x2500\n\t0x2501: 0x000a, 0x2502: 0x000a, 0x2503: 0x0004, 0x2504: 0x0004, 0x2505: 0x0004,\n\t0x2506: 0x000a, 0x2507: 0x000a, 0x2508: 0x003a, 0x2509: 0x002a, 0x250a: 0x000a, 0x250b: 0x0003,\n\t0x250c: 0x0006, 0x250d: 0x0003, 0x250e: 0x0006, 0x250f: 0x0006, 0x2510: 0x0002, 0x2511: 0x0002,\n\t0x2512: 0x0002, 0x2513: 0x0002, 0x2514: 0x0002, 0x2515: 0x0002, 0x2516: 0x0002, 0x2517: 0x0002,\n\t0x2518: 0x0002, 0x2519: 0x0002, 0x251a: 0x0006, 0x251b: 0x000a, 0x251c: 0x000a, 0x251d: 0x000a,\n\t0x251e: 0x000a, 0x251f: 0x000a, 0x2520: 0x000a,\n\t0x253b: 0x005a,\n\t0x253c: 0x000a, 0x253d: 0x004a, 0x253e: 0x000a, 0x253f: 0x000a,\n\t// Block 0x95, offset 0x2540\n\t0x2540: 0x000a,\n\t0x255b: 0x005a, 0x255c: 0x000a, 0x255d: 0x004a,\n\t0x255e: 0x000a, 0x255f: 0x00fa, 0x2560: 0x00ea, 0x2561: 0x000a, 0x2562: 0x003a, 0x2563: 0x002a,\n\t0x2564: 0x000a, 0x2565: 0x000a,\n\t// Block 0x96, offset 0x2580\n\t0x25a0: 0x0004, 0x25a1: 0x0004, 0x25a2: 0x000a, 0x25a3: 0x000a,\n\t0x25a4: 0x000a, 0x25a5: 0x0004, 0x25a6: 0x0004, 0x25a8: 0x000a, 0x25a9: 0x000a,\n\t0x25aa: 0x000a, 0x25ab: 0x000a, 0x25ac: 0x000a, 0x25ad: 0x000a, 0x25ae: 0x000a,\n\t0x25b0: 0x000b, 0x25b1: 0x000b, 0x25b2: 0x000b, 0x25b3: 0x000b, 0x25b4: 0x000b, 0x25b5: 0x000b,\n\t0x25b6: 0x000b, 0x25b7: 0x000b, 0x25b8: 0x000b, 0x25b9: 0x000a, 0x25ba: 0x000a, 0x25bb: 0x000a,\n\t0x25bc: 0x000a, 0x25bd: 0x000a, 0x25be: 0x000b, 0x25bf: 0x000b,\n\t// Block 0x97, offset 0x25c0\n\t0x25c1: 0x000a,\n\t// Block 0x98, offset 0x2600\n\t0x2600: 0x000a, 0x2601: 0x000a, 0x2602: 0x000a, 0x2603: 0x000a, 0x2604: 0x000a, 0x2605: 0x000a,\n\t0x2606: 0x000a, 0x2607: 0x000a, 0x2608: 0x000a, 0x2609: 0x000a, 0x260a: 0x000a, 0x260b: 0x000a,\n\t0x260c: 0x000a, 0x2610: 0x000a, 0x2611: 0x000a,\n\t0x2612: 0x000a, 0x2613: 0x000a, 0x2614: 0x000a, 0x2615: 0x000a, 0x2616: 0x000a, 0x2617: 0x000a,\n\t0x2618: 0x000a, 0x2619: 0x000a, 0x261a: 0x000a, 0x261b: 0x000a,\n\t0x2620: 0x000a,\n\t// Block 0x99, offset 0x2640\n\t0x267d: 0x000c,\n\t// Block 0x9a, offset 0x2680\n\t0x26a0: 0x000c, 0x26a1: 0x0002, 0x26a2: 0x0002, 0x26a3: 0x0002,\n\t0x26a4: 0x0002, 0x26a5: 0x0002, 0x26a6: 0x0002, 0x26a7: 0x0002, 0x26a8: 0x0002, 0x26a9: 0x0002,\n\t0x26aa: 0x0002, 0x26ab: 0x0002, 0x26ac: 0x0002, 0x26ad: 0x0002, 0x26ae: 0x0002, 0x26af: 0x0002,\n\t0x26b0: 0x0002, 0x26b1: 0x0002, 0x26b2: 0x0002, 0x26b3: 0x0002, 0x26b4: 0x0002, 0x26b5: 0x0002,\n\t0x26b6: 0x0002, 0x26b7: 0x0002, 0x26b8: 0x0002, 0x26b9: 0x0002, 0x26ba: 0x0002, 0x26bb: 0x0002,\n\t// Block 0x9b, offset 0x26c0\n\t0x26f6: 0x000c, 0x26f7: 0x000c, 0x26f8: 0x000c, 0x26f9: 0x000c, 0x26fa: 0x000c,\n\t// Block 0x9c, offset 0x2700\n\t0x2700: 0x0001, 0x2701: 0x0001, 0x2702: 0x0001, 0x2703: 0x0001, 0x2704: 0x0001, 0x2705: 0x0001,\n\t0x2706: 0x0001, 0x2707: 0x0001, 0x2708: 0x0001, 0x2709: 0x0001, 0x270a: 0x0001, 0x270b: 0x0001,\n\t0x270c: 0x0001, 0x270d: 0x0001, 0x270e: 0x0001, 0x270f: 0x0001, 0x2710: 0x0001, 0x2711: 0x0001,\n\t0x2712: 0x0001, 0x2713: 0x0001, 0x2714: 0x0001, 0x2715: 0x0001, 0x2716: 0x0001, 0x2717: 0x0001,\n\t0x2718: 0x0001, 0x2719: 0x0001, 0x271a: 0x0001, 0x271b: 0x0001, 0x271c: 0x0001, 0x271d: 0x0001,\n\t0x271e: 0x0001, 0x271f: 0x0001, 0x2720: 0x0001, 0x2721: 0x0001, 0x2722: 0x0001, 0x2723: 0x0001,\n\t0x2724: 0x0001, 0x2725: 0x0001, 0x2726: 0x0001, 0x2727: 0x0001, 0x2728: 0x0001, 0x2729: 0x0001,\n\t0x272a: 0x0001, 0x272b: 0x0001, 0x272c: 0x0001, 0x272d: 0x0001, 0x272e: 0x0001, 0x272f: 0x0001,\n\t0x2730: 0x0001, 0x2731: 0x0001, 0x2732: 0x0001, 0x2733: 0x0001, 0x2734: 0x0001, 0x2735: 0x0001,\n\t0x2736: 0x0001, 0x2737: 0x0001, 0x2738: 0x0001, 0x2739: 0x0001, 0x273a: 0x0001, 0x273b: 0x0001,\n\t0x273c: 0x0001, 0x273d: 0x0001, 0x273e: 0x0001, 0x273f: 0x0001,\n\t// Block 0x9d, offset 0x2740\n\t0x2740: 0x0001, 0x2741: 0x0001, 0x2742: 0x0001, 0x2743: 0x0001, 0x2744: 0x0001, 0x2745: 0x0001,\n\t0x2746: 0x0001, 0x2747: 0x0001, 0x2748: 0x0001, 0x2749: 0x0001, 0x274a: 0x0001, 0x274b: 0x0001,\n\t0x274c: 0x0001, 0x274d: 0x0001, 0x274e: 0x0001, 0x274f: 0x0001, 0x2750: 0x0001, 0x2751: 0x0001,\n\t0x2752: 0x0001, 0x2753: 0x0001, 0x2754: 0x0001, 0x2755: 0x0001, 0x2756: 0x0001, 0x2757: 0x0001,\n\t0x2758: 0x0001, 0x2759: 0x0001, 0x275a: 0x0001, 0x275b: 0x0001, 0x275c: 0x0001, 0x275d: 0x0001,\n\t0x275e: 0x0001, 0x275f: 0x000a, 0x2760: 0x0001, 0x2761: 0x0001, 0x2762: 0x0001, 0x2763: 0x0001,\n\t0x2764: 0x0001, 0x2765: 0x0001, 0x2766: 0x0001, 0x2767: 0x0001, 0x2768: 0x0001, 0x2769: 0x0001,\n\t0x276a: 0x0001, 0x276b: 0x0001, 0x276c: 0x0001, 0x276d: 0x0001, 0x276e: 0x0001, 0x276f: 0x0001,\n\t0x2770: 0x0001, 0x2771: 0x0001, 0x2772: 0x0001, 0x2773: 0x0001, 0x2774: 0x0001, 0x2775: 0x0001,\n\t0x2776: 0x0001, 0x2777: 0x0001, 0x2778: 0x0001, 0x2779: 0x0001, 0x277a: 0x0001, 0x277b: 0x0001,\n\t0x277c: 0x0001, 0x277d: 0x0001, 0x277e: 0x0001, 0x277f: 0x0001,\n\t// Block 0x9e, offset 0x2780\n\t0x2780: 0x0001, 0x2781: 0x000c, 0x2782: 0x000c, 0x2783: 0x000c, 0x2784: 0x0001, 0x2785: 0x000c,\n\t0x2786: 0x000c, 0x2787: 0x0001, 0x2788: 0x0001, 0x2789: 0x0001, 0x278a: 0x0001, 0x278b: 0x0001,\n\t0x278c: 0x000c, 0x278d: 0x000c, 0x278e: 0x000c, 0x278f: 0x000c, 0x2790: 0x0001, 0x2791: 0x0001,\n\t0x2792: 0x0001, 0x2793: 0x0001, 0x2794: 0x0001, 0x2795: 0x0001, 0x2796: 0x0001, 0x2797: 0x0001,\n\t0x2798: 0x0001, 0x2799: 0x0001, 0x279a: 0x0001, 0x279b: 0x0001, 0x279c: 0x0001, 0x279d: 0x0001,\n\t0x279e: 0x0001, 0x279f: 0x0001, 0x27a0: 0x0001, 0x27a1: 0x0001, 0x27a2: 0x0001, 0x27a3: 0x0001,\n\t0x27a4: 0x0001, 0x27a5: 0x0001, 0x27a6: 0x0001, 0x27a7: 0x0001, 0x27a8: 0x0001, 0x27a9: 0x0001,\n\t0x27aa: 0x0001, 0x27ab: 0x0001, 0x27ac: 0x0001, 0x27ad: 0x0001, 0x27ae: 0x0001, 0x27af: 0x0001,\n\t0x27b0: 0x0001, 0x27b1: 0x0001, 0x27b2: 0x0001, 0x27b3: 0x0001, 0x27b4: 0x0001, 0x27b5: 0x0001,\n\t0x27b6: 0x0001, 0x27b7: 0x0001, 0x27b8: 0x000c, 0x27b9: 0x000c, 0x27ba: 0x000c, 0x27bb: 0x0001,\n\t0x27bc: 0x0001, 0x27bd: 0x0001, 0x27be: 0x0001, 0x27bf: 0x000c,\n\t// Block 0x9f, offset 0x27c0\n\t0x27c0: 0x0001, 0x27c1: 0x0001, 0x27c2: 0x0001, 0x27c3: 0x0001, 0x27c4: 0x0001, 0x27c5: 0x0001,\n\t0x27c6: 0x0001, 0x27c7: 0x0001, 0x27c8: 0x0001, 0x27c9: 0x0001, 0x27ca: 0x0001, 0x27cb: 0x0001,\n\t0x27cc: 0x0001, 0x27cd: 0x0001, 0x27ce: 0x0001, 0x27cf: 0x0001, 0x27d0: 0x0001, 0x27d1: 0x0001,\n\t0x27d2: 0x0001, 0x27d3: 0x0001, 0x27d4: 0x0001, 0x27d5: 0x0001, 0x27d6: 0x0001, 0x27d7: 0x0001,\n\t0x27d8: 0x0001, 0x27d9: 0x0001, 0x27da: 0x0001, 0x27db: 0x0001, 0x27dc: 0x0001, 0x27dd: 0x0001,\n\t0x27de: 0x0001, 0x27df: 0x0001, 0x27e0: 0x0001, 0x27e1: 0x0001, 0x27e2: 0x0001, 0x27e3: 0x0001,\n\t0x27e4: 0x0001, 0x27e5: 0x000c, 0x27e6: 0x000c, 0x27e7: 0x0001, 0x27e8: 0x0001, 0x27e9: 0x0001,\n\t0x27ea: 0x0001, 0x27eb: 0x0001, 0x27ec: 0x0001, 0x27ed: 0x0001, 0x27ee: 0x0001, 0x27ef: 0x0001,\n\t0x27f0: 0x0001, 0x27f1: 0x0001, 0x27f2: 0x0001, 0x27f3: 0x0001, 0x27f4: 0x0001, 0x27f5: 0x0001,\n\t0x27f6: 0x0001, 0x27f7: 0x0001, 0x27f8: 0x0001, 0x27f9: 0x0001, 0x27fa: 0x0001, 0x27fb: 0x0001,\n\t0x27fc: 0x0001, 0x27fd: 0x0001, 0x27fe: 0x0001, 0x27ff: 0x0001,\n\t// Block 0xa0, offset 0x2800\n\t0x2800: 0x0001, 0x2801: 0x0001, 0x2802: 0x0001, 0x2803: 0x0001, 0x2804: 0x0001, 0x2805: 0x0001,\n\t0x2806: 0x0001, 0x2807: 0x0001, 0x2808: 0x0001, 0x2809: 0x0001, 0x280a: 0x0001, 0x280b: 0x0001,\n\t0x280c: 0x0001, 0x280d: 0x0001, 0x280e: 0x0001, 0x280f: 0x0001, 0x2810: 0x0001, 0x2811: 0x0001,\n\t0x2812: 0x0001, 0x2813: 0x0001, 0x2814: 0x0001, 0x2815: 0x0001, 0x2816: 0x0001, 0x2817: 0x0001,\n\t0x2818: 0x0001, 0x2819: 0x0001, 0x281a: 0x0001, 0x281b: 0x0001, 0x281c: 0x0001, 0x281d: 0x0001,\n\t0x281e: 0x0001, 0x281f: 0x0001, 0x2820: 0x0001, 0x2821: 0x0001, 0x2822: 0x0001, 0x2823: 0x0001,\n\t0x2824: 0x0001, 0x2825: 0x0001, 0x2826: 0x0001, 0x2827: 0x0001, 0x2828: 0x0001, 0x2829: 0x0001,\n\t0x282a: 0x0001, 0x282b: 0x0001, 0x282c: 0x0001, 0x282d: 0x0001, 0x282e: 0x0001, 0x282f: 0x0001,\n\t0x2830: 0x0001, 0x2831: 0x0001, 0x2832: 0x0001, 0x2833: 0x0001, 0x2834: 0x0001, 0x2835: 0x0001,\n\t0x2836: 0x0001, 0x2837: 0x0001, 0x2838: 0x0001, 0x2839: 0x000a, 0x283a: 0x000a, 0x283b: 0x000a,\n\t0x283c: 0x000a, 0x283d: 0x000a, 0x283e: 0x000a, 0x283f: 0x000a,\n\t// Block 0xa1, offset 0x2840\n\t0x2840: 0x000d, 0x2841: 0x000d, 0x2842: 0x000d, 0x2843: 0x000d, 0x2844: 0x000d, 0x2845: 0x000d,\n\t0x2846: 0x000d, 0x2847: 0x000d, 0x2848: 0x000d, 0x2849: 0x000d, 0x284a: 0x000d, 0x284b: 0x000d,\n\t0x284c: 0x000d, 0x284d: 0x000d, 0x284e: 0x000d, 0x284f: 0x000d, 0x2850: 0x000d, 0x2851: 0x000d,\n\t0x2852: 0x000d, 0x2853: 0x000d, 0x2854: 0x000d, 0x2855: 0x000d, 0x2856: 0x000d, 0x2857: 0x000d,\n\t0x2858: 0x000d, 0x2859: 0x000d, 0x285a: 0x000d, 0x285b: 0x000d, 0x285c: 0x000d, 0x285d: 0x000d,\n\t0x285e: 0x000d, 0x285f: 0x000d, 0x2860: 0x000d, 0x2861: 0x000d, 0x2862: 0x000d, 0x2863: 0x000d,\n\t0x2864: 0x000c, 0x2865: 0x000c, 0x2866: 0x000c, 0x2867: 0x000c, 0x2868: 0x000d, 0x2869: 0x000d,\n\t0x286a: 0x000d, 0x286b: 0x000d, 0x286c: 0x000d, 0x286d: 0x000d, 0x286e: 0x000d, 0x286f: 0x000d,\n\t0x2870: 0x0005, 0x2871: 0x0005, 0x2872: 0x0005, 0x2873: 0x0005, 0x2874: 0x0005, 0x2875: 0x0005,\n\t0x2876: 0x0005, 0x2877: 0x0005, 0x2878: 0x0005, 0x2879: 0x0005, 0x287a: 0x000d, 0x287b: 0x000d,\n\t0x287c: 0x000d, 0x287d: 0x000d, 0x287e: 0x000d, 0x287f: 0x000d,\n\t// Block 0xa2, offset 0x2880\n\t0x2880: 0x0001, 0x2881: 0x0001, 0x2882: 0x0001, 0x2883: 0x0001, 0x2884: 0x0001, 0x2885: 0x0001,\n\t0x2886: 0x0001, 0x2887: 0x0001, 0x2888: 0x0001, 0x2889: 0x0001, 0x288a: 0x0001, 0x288b: 0x0001,\n\t0x288c: 0x0001, 0x288d: 0x0001, 0x288e: 0x0001, 0x288f: 0x0001, 0x2890: 0x0001, 0x2891: 0x0001,\n\t0x2892: 0x0001, 0x2893: 0x0001, 0x2894: 0x0001, 0x2895: 0x0001, 0x2896: 0x0001, 0x2897: 0x0001,\n\t0x2898: 0x0001, 0x2899: 0x0001, 0x289a: 0x0001, 0x289b: 0x0001, 0x289c: 0x0001, 0x289d: 0x0001,\n\t0x289e: 0x0001, 0x289f: 0x0001, 0x28a0: 0x0005, 0x28a1: 0x0005, 0x28a2: 0x0005, 0x28a3: 0x0005,\n\t0x28a4: 0x0005, 0x28a5: 0x0005, 0x28a6: 0x0005, 0x28a7: 0x0005, 0x28a8: 0x0005, 0x28a9: 0x0005,\n\t0x28aa: 0x0005, 0x28ab: 0x0005, 0x28ac: 0x0005, 0x28ad: 0x0005, 0x28ae: 0x0005, 0x28af: 0x0005,\n\t0x28b0: 0x0005, 0x28b1: 0x0005, 0x28b2: 0x0005, 0x28b3: 0x0005, 0x28b4: 0x0005, 0x28b5: 0x0005,\n\t0x28b6: 0x0005, 0x28b7: 0x0005, 0x28b8: 0x0005, 0x28b9: 0x0005, 0x28ba: 0x0005, 0x28bb: 0x0005,\n\t0x28bc: 0x0005, 0x28bd: 0x0005, 0x28be: 0x0005, 0x28bf: 0x0001,\n\t// Block 0xa3, offset 0x28c0\n\t0x28c0: 0x0001, 0x28c1: 0x0001, 0x28c2: 0x0001, 0x28c3: 0x0001, 0x28c4: 0x0001, 0x28c5: 0x0001,\n\t0x28c6: 0x0001, 0x28c7: 0x0001, 0x28c8: 0x0001, 0x28c9: 0x0001, 0x28ca: 0x0001, 0x28cb: 0x0001,\n\t0x28cc: 0x0001, 0x28cd: 0x0001, 0x28ce: 0x0001, 0x28cf: 0x0001, 0x28d0: 0x0001, 0x28d1: 0x0001,\n\t0x28d2: 0x0001, 0x28d3: 0x0001, 0x28d4: 0x0001, 0x28d5: 0x0001, 0x28d6: 0x0001, 0x28d7: 0x0001,\n\t0x28d8: 0x0001, 0x28d9: 0x0001, 0x28da: 0x0001, 0x28db: 0x0001, 0x28dc: 0x0001, 0x28dd: 0x0001,\n\t0x28de: 0x0001, 0x28df: 0x0001, 0x28e0: 0x0001, 0x28e1: 0x0001, 0x28e2: 0x0001, 0x28e3: 0x0001,\n\t0x28e4: 0x0001, 0x28e5: 0x0001, 0x28e6: 0x0001, 0x28e7: 0x0001, 0x28e8: 0x0001, 0x28e9: 0x0001,\n\t0x28ea: 0x0001, 0x28eb: 0x0001, 0x28ec: 0x0001, 0x28ed: 0x0001, 0x28ee: 0x0001, 0x28ef: 0x0001,\n\t0x28f0: 0x000d, 0x28f1: 0x000d, 0x28f2: 0x000d, 0x28f3: 0x000d, 0x28f4: 0x000d, 0x28f5: 0x000d,\n\t0x28f6: 0x000d, 0x28f7: 0x000d, 0x28f8: 0x000d, 0x28f9: 0x000d, 0x28fa: 0x000d, 0x28fb: 0x000d,\n\t0x28fc: 0x000d, 0x28fd: 0x000d, 0x28fe: 0x000d, 0x28ff: 0x000d,\n\t// Block 0xa4, offset 0x2900\n\t0x2900: 0x000d, 0x2901: 0x000d, 0x2902: 0x000d, 0x2903: 0x000d, 0x2904: 0x000d, 0x2905: 0x000d,\n\t0x2906: 0x000c, 0x2907: 0x000c, 0x2908: 0x000c, 0x2909: 0x000c, 0x290a: 0x000c, 0x290b: 0x000c,\n\t0x290c: 0x000c, 0x290d: 0x000c, 0x290e: 0x000c, 0x290f: 0x000c, 0x2910: 0x000c, 0x2911: 0x000d,\n\t0x2912: 0x000d, 0x2913: 0x000d, 0x2914: 0x000d, 0x2915: 0x000d, 0x2916: 0x000d, 0x2917: 0x000d,\n\t0x2918: 0x000d, 0x2919: 0x000d, 0x291a: 0x000d, 0x291b: 0x000d, 0x291c: 0x000d, 0x291d: 0x000d,\n\t0x291e: 0x000d, 0x291f: 0x000d, 0x2920: 0x000d, 0x2921: 0x000d, 0x2922: 0x000d, 0x2923: 0x000d,\n\t0x2924: 0x000d, 0x2925: 0x000d, 0x2926: 0x000d, 0x2927: 0x000d, 0x2928: 0x000d, 0x2929: 0x000d,\n\t0x292a: 0x000d, 0x292b: 0x000d, 0x292c: 0x000d, 0x292d: 0x000d, 0x292e: 0x000d, 0x292f: 0x000d,\n\t0x2930: 0x0001, 0x2931: 0x0001, 0x2932: 0x0001, 0x2933: 0x0001, 0x2934: 0x0001, 0x2935: 0x0001,\n\t0x2936: 0x0001, 0x2937: 0x0001, 0x2938: 0x0001, 0x2939: 0x0001, 0x293a: 0x0001, 0x293b: 0x0001,\n\t0x293c: 0x0001, 0x293d: 0x0001, 0x293e: 0x0001, 0x293f: 0x0001,\n\t// Block 0xa5, offset 0x2940\n\t0x2941: 0x000c,\n\t0x2978: 0x000c, 0x2979: 0x000c, 0x297a: 0x000c, 0x297b: 0x000c,\n\t0x297c: 0x000c, 0x297d: 0x000c, 0x297e: 0x000c, 0x297f: 0x000c,\n\t// Block 0xa6, offset 0x2980\n\t0x2980: 0x000c, 0x2981: 0x000c, 0x2982: 0x000c, 0x2983: 0x000c, 0x2984: 0x000c, 0x2985: 0x000c,\n\t0x2986: 0x000c,\n\t0x2992: 0x000a, 0x2993: 0x000a, 0x2994: 0x000a, 0x2995: 0x000a, 0x2996: 0x000a, 0x2997: 0x000a,\n\t0x2998: 0x000a, 0x2999: 0x000a, 0x299a: 0x000a, 0x299b: 0x000a, 0x299c: 0x000a, 0x299d: 0x000a,\n\t0x299e: 0x000a, 0x299f: 0x000a, 0x29a0: 0x000a, 0x29a1: 0x000a, 0x29a2: 0x000a, 0x29a3: 0x000a,\n\t0x29a4: 0x000a, 0x29a5: 0x000a,\n\t0x29bf: 0x000c,\n\t// Block 0xa7, offset 0x29c0\n\t0x29c0: 0x000c, 0x29c1: 0x000c,\n\t0x29f3: 0x000c, 0x29f4: 0x000c, 0x29f5: 0x000c,\n\t0x29f6: 0x000c, 0x29f9: 0x000c, 0x29fa: 0x000c,\n\t// Block 0xa8, offset 0x2a00\n\t0x2a00: 0x000c, 0x2a01: 0x000c, 0x2a02: 0x000c,\n\t0x2a27: 0x000c, 0x2a28: 0x000c, 0x2a29: 0x000c,\n\t0x2a2a: 0x000c, 0x2a2b: 0x000c, 0x2a2d: 0x000c, 0x2a2e: 0x000c, 0x2a2f: 0x000c,\n\t0x2a30: 0x000c, 0x2a31: 0x000c, 0x2a32: 0x000c, 0x2a33: 0x000c, 0x2a34: 0x000c,\n\t// Block 0xa9, offset 0x2a40\n\t0x2a73: 0x000c,\n\t// Block 0xaa, offset 0x2a80\n\t0x2a80: 0x000c, 0x2a81: 0x000c,\n\t0x2ab6: 0x000c, 0x2ab7: 0x000c, 0x2ab8: 0x000c, 0x2ab9: 0x000c, 0x2aba: 0x000c, 0x2abb: 0x000c,\n\t0x2abc: 0x000c, 0x2abd: 0x000c, 0x2abe: 0x000c,\n\t// Block 0xab, offset 0x2ac0\n\t0x2ac9: 0x000c, 0x2aca: 0x000c, 0x2acb: 0x000c,\n\t0x2acc: 0x000c,\n\t// Block 0xac, offset 0x2b00\n\t0x2b2f: 0x000c,\n\t0x2b30: 0x000c, 0x2b31: 0x000c, 0x2b34: 0x000c,\n\t0x2b36: 0x000c, 0x2b37: 0x000c,\n\t0x2b3e: 0x000c,\n\t// Block 0xad, offset 0x2b40\n\t0x2b5f: 0x000c, 0x2b63: 0x000c,\n\t0x2b64: 0x000c, 0x2b65: 0x000c, 0x2b66: 0x000c, 0x2b67: 0x000c, 0x2b68: 0x000c, 0x2b69: 0x000c,\n\t0x2b6a: 0x000c,\n\t// Block 0xae, offset 0x2b80\n\t0x2b80: 0x000c,\n\t0x2ba6: 0x000c, 0x2ba7: 0x000c, 0x2ba8: 0x000c, 0x2ba9: 0x000c,\n\t0x2baa: 0x000c, 0x2bab: 0x000c, 0x2bac: 0x000c,\n\t0x2bb0: 0x000c, 0x2bb1: 0x000c, 0x2bb2: 0x000c, 0x2bb3: 0x000c, 0x2bb4: 0x000c,\n\t// Block 0xaf, offset 0x2bc0\n\t0x2bf8: 0x000c, 0x2bf9: 0x000c, 0x2bfa: 0x000c, 0x2bfb: 0x000c,\n\t0x2bfc: 0x000c, 0x2bfd: 0x000c, 0x2bfe: 0x000c, 0x2bff: 0x000c,\n\t// Block 0xb0, offset 0x2c00\n\t0x2c02: 0x000c, 0x2c03: 0x000c, 0x2c04: 0x000c,\n\t0x2c06: 0x000c,\n\t0x2c1e: 0x000c,\n\t// Block 0xb1, offset 0x2c40\n\t0x2c73: 0x000c, 0x2c74: 0x000c, 0x2c75: 0x000c,\n\t0x2c76: 0x000c, 0x2c77: 0x000c, 0x2c78: 0x000c, 0x2c7a: 0x000c,\n\t0x2c7f: 0x000c,\n\t// Block 0xb2, offset 0x2c80\n\t0x2c80: 0x000c, 0x2c82: 0x000c, 0x2c83: 0x000c,\n\t// Block 0xb3, offset 0x2cc0\n\t0x2cf2: 0x000c, 0x2cf3: 0x000c, 0x2cf4: 0x000c, 0x2cf5: 0x000c,\n\t0x2cfc: 0x000c, 0x2cfd: 0x000c, 0x2cff: 0x000c,\n\t// Block 0xb4, offset 0x2d00\n\t0x2d00: 0x000c,\n\t0x2d1c: 0x000c, 0x2d1d: 0x000c,\n\t// Block 0xb5, offset 0x2d40\n\t0x2d73: 0x000c, 0x2d74: 0x000c, 0x2d75: 0x000c,\n\t0x2d76: 0x000c, 0x2d77: 0x000c, 0x2d78: 0x000c, 0x2d79: 0x000c, 0x2d7a: 0x000c,\n\t0x2d7d: 0x000c, 0x2d7f: 0x000c,\n\t// Block 0xb6, offset 0x2d80\n\t0x2d80: 0x000c,\n\t0x2da0: 0x000a, 0x2da1: 0x000a, 0x2da2: 0x000a, 0x2da3: 0x000a,\n\t0x2da4: 0x000a, 0x2da5: 0x000a, 0x2da6: 0x000a, 0x2da7: 0x000a, 0x2da8: 0x000a, 0x2da9: 0x000a,\n\t0x2daa: 0x000a, 0x2dab: 0x000a, 0x2dac: 0x000a,\n\t// Block 0xb7, offset 0x2dc0\n\t0x2deb: 0x000c, 0x2ded: 0x000c,\n\t0x2df0: 0x000c, 0x2df1: 0x000c, 0x2df2: 0x000c, 0x2df3: 0x000c, 0x2df4: 0x000c, 0x2df5: 0x000c,\n\t0x2df7: 0x000c,\n\t// Block 0xb8, offset 0x2e00\n\t0x2e1d: 0x000c,\n\t0x2e1e: 0x000c, 0x2e1f: 0x000c, 0x2e22: 0x000c, 0x2e23: 0x000c,\n\t0x2e24: 0x000c, 0x2e25: 0x000c, 0x2e27: 0x000c, 0x2e28: 0x000c, 0x2e29: 0x000c,\n\t0x2e2a: 0x000c, 0x2e2b: 0x000c,\n\t// Block 0xb9, offset 0x2e40\n\t0x2e6f: 0x000c,\n\t0x2e70: 0x000c, 0x2e71: 0x000c, 0x2e72: 0x000c, 0x2e73: 0x000c, 0x2e74: 0x000c, 0x2e75: 0x000c,\n\t0x2e76: 0x000c, 0x2e77: 0x000c, 0x2e79: 0x000c, 0x2e7a: 0x000c,\n\t// Block 0xba, offset 0x2e80\n\t0x2e81: 0x000c, 0x2e82: 0x000c, 0x2e83: 0x000c, 0x2e84: 0x000c, 0x2e85: 0x000c,\n\t0x2e86: 0x000c, 0x2e89: 0x000c, 0x2e8a: 0x000c,\n\t0x2eb3: 0x000c, 0x2eb4: 0x000c, 0x2eb5: 0x000c,\n\t0x2eb6: 0x000c, 0x2eb7: 0x000c, 0x2eb8: 0x000c, 0x2ebb: 0x000c,\n\t0x2ebc: 0x000c, 0x2ebd: 0x000c, 0x2ebe: 0x000c,\n\t// Block 0xbb, offset 0x2ec0\n\t0x2ec7: 0x000c,\n\t0x2ed1: 0x000c,\n\t0x2ed2: 0x000c, 0x2ed3: 0x000c, 0x2ed4: 0x000c, 0x2ed5: 0x000c, 0x2ed6: 0x000c,\n\t0x2ed9: 0x000c, 0x2eda: 0x000c, 0x2edb: 0x000c,\n\t// Block 0xbc, offset 0x2f00\n\t0x2f0a: 0x000c, 0x2f0b: 0x000c,\n\t0x2f0c: 0x000c, 0x2f0d: 0x000c, 0x2f0e: 0x000c, 0x2f0f: 0x000c, 0x2f10: 0x000c, 0x2f11: 0x000c,\n\t0x2f12: 0x000c, 0x2f13: 0x000c, 0x2f14: 0x000c, 0x2f15: 0x000c, 0x2f16: 0x000c,\n\t0x2f18: 0x000c, 0x2f19: 0x000c,\n\t// Block 0xbd, offset 0x2f40\n\t0x2f70: 0x000c, 0x2f71: 0x000c, 0x2f72: 0x000c, 0x2f73: 0x000c, 0x2f74: 0x000c, 0x2f75: 0x000c,\n\t0x2f76: 0x000c, 0x2f78: 0x000c, 0x2f79: 0x000c, 0x2f7a: 0x000c, 0x2f7b: 0x000c,\n\t0x2f7c: 0x000c, 0x2f7d: 0x000c,\n\t// Block 0xbe, offset 0x2f80\n\t0x2f92: 0x000c, 0x2f93: 0x000c, 0x2f94: 0x000c, 0x2f95: 0x000c, 0x2f96: 0x000c, 0x2f97: 0x000c,\n\t0x2f98: 0x000c, 0x2f99: 0x000c, 0x2f9a: 0x000c, 0x2f9b: 0x000c, 0x2f9c: 0x000c, 0x2f9d: 0x000c,\n\t0x2f9e: 0x000c, 0x2f9f: 0x000c, 0x2fa0: 0x000c, 0x2fa1: 0x000c, 0x2fa2: 0x000c, 0x2fa3: 0x000c,\n\t0x2fa4: 0x000c, 0x2fa5: 0x000c, 0x2fa6: 0x000c, 0x2fa7: 0x000c,\n\t0x2faa: 0x000c, 0x2fab: 0x000c, 0x2fac: 0x000c, 0x2fad: 0x000c, 0x2fae: 0x000c, 0x2faf: 0x000c,\n\t0x2fb0: 0x000c, 0x2fb2: 0x000c, 0x2fb3: 0x000c, 0x2fb5: 0x000c,\n\t0x2fb6: 0x000c,\n\t// Block 0xbf, offset 0x2fc0\n\t0x2ff1: 0x000c, 0x2ff2: 0x000c, 0x2ff3: 0x000c, 0x2ff4: 0x000c, 0x2ff5: 0x000c,\n\t0x2ff6: 0x000c, 0x2ffa: 0x000c,\n\t0x2ffc: 0x000c, 0x2ffd: 0x000c, 0x2fff: 0x000c,\n\t// Block 0xc0, offset 0x3000\n\t0x3000: 0x000c, 0x3001: 0x000c, 0x3002: 0x000c, 0x3003: 0x000c, 0x3004: 0x000c, 0x3005: 0x000c,\n\t0x3007: 0x000c,\n\t// Block 0xc1, offset 0x3040\n\t0x3050: 0x000c, 0x3051: 0x000c,\n\t0x3055: 0x000c, 0x3057: 0x000c,\n\t// Block 0xc2, offset 0x3080\n\t0x30b3: 0x000c, 0x30b4: 0x000c,\n\t// Block 0xc3, offset 0x30c0\n\t0x30f0: 0x000c, 0x30f1: 0x000c, 0x30f2: 0x000c, 0x30f3: 0x000c, 0x30f4: 0x000c,\n\t// Block 0xc4, offset 0x3100\n\t0x3130: 0x000c, 0x3131: 0x000c, 0x3132: 0x000c, 0x3133: 0x000c, 0x3134: 0x000c, 0x3135: 0x000c,\n\t0x3136: 0x000c,\n\t// Block 0xc5, offset 0x3140\n\t0x314f: 0x000c, 0x3150: 0x000c, 0x3151: 0x000c,\n\t0x3152: 0x000c,\n\t// Block 0xc6, offset 0x3180\n\t0x319d: 0x000c,\n\t0x319e: 0x000c, 0x31a0: 0x000b, 0x31a1: 0x000b, 0x31a2: 0x000b, 0x31a3: 0x000b,\n\t// Block 0xc7, offset 0x31c0\n\t0x31e7: 0x000c, 0x31e8: 0x000c, 0x31e9: 0x000c,\n\t0x31f3: 0x000b, 0x31f4: 0x000b, 0x31f5: 0x000b,\n\t0x31f6: 0x000b, 0x31f7: 0x000b, 0x31f8: 0x000b, 0x31f9: 0x000b, 0x31fa: 0x000b, 0x31fb: 0x000c,\n\t0x31fc: 0x000c, 0x31fd: 0x000c, 0x31fe: 0x000c, 0x31ff: 0x000c,\n\t// Block 0xc8, offset 0x3200\n\t0x3200: 0x000c, 0x3201: 0x000c, 0x3202: 0x000c, 0x3205: 0x000c,\n\t0x3206: 0x000c, 0x3207: 0x000c, 0x3208: 0x000c, 0x3209: 0x000c, 0x320a: 0x000c, 0x320b: 0x000c,\n\t0x322a: 0x000c, 0x322b: 0x000c, 0x322c: 0x000c, 0x322d: 0x000c,\n\t// Block 0xc9, offset 0x3240\n\t0x3240: 0x000a, 0x3241: 0x000a, 0x3242: 0x000c, 0x3243: 0x000c, 0x3244: 0x000c, 0x3245: 0x000a,\n\t// Block 0xca, offset 0x3280\n\t0x3280: 0x000a, 0x3281: 0x000a, 0x3282: 0x000a, 0x3283: 0x000a, 0x3284: 0x000a, 0x3285: 0x000a,\n\t0x3286: 0x000a, 0x3287: 0x000a, 0x3288: 0x000a, 0x3289: 0x000a, 0x328a: 0x000a, 0x328b: 0x000a,\n\t0x328c: 0x000a, 0x328d: 0x000a, 0x328e: 0x000a, 0x328f: 0x000a, 0x3290: 0x000a, 0x3291: 0x000a,\n\t0x3292: 0x000a, 0x3293: 0x000a, 0x3294: 0x000a, 0x3295: 0x000a, 0x3296: 0x000a,\n\t// Block 0xcb, offset 0x32c0\n\t0x32db: 0x000a,\n\t// Block 0xcc, offset 0x3300\n\t0x3315: 0x000a,\n\t// Block 0xcd, offset 0x3340\n\t0x334f: 0x000a,\n\t// Block 0xce, offset 0x3380\n\t0x3389: 0x000a,\n\t// Block 0xcf, offset 0x33c0\n\t0x33c3: 0x000a,\n\t0x33ce: 0x0002, 0x33cf: 0x0002, 0x33d0: 0x0002, 0x33d1: 0x0002,\n\t0x33d2: 0x0002, 0x33d3: 0x0002, 0x33d4: 0x0002, 0x33d5: 0x0002, 0x33d6: 0x0002, 0x33d7: 0x0002,\n\t0x33d8: 0x0002, 0x33d9: 0x0002, 0x33da: 0x0002, 0x33db: 0x0002, 0x33dc: 0x0002, 0x33dd: 0x0002,\n\t0x33de: 0x0002, 0x33df: 0x0002, 0x33e0: 0x0002, 0x33e1: 0x0002, 0x33e2: 0x0002, 0x33e3: 0x0002,\n\t0x33e4: 0x0002, 0x33e5: 0x0002, 0x33e6: 0x0002, 0x33e7: 0x0002, 0x33e8: 0x0002, 0x33e9: 0x0002,\n\t0x33ea: 0x0002, 0x33eb: 0x0002, 0x33ec: 0x0002, 0x33ed: 0x0002, 0x33ee: 0x0002, 0x33ef: 0x0002,\n\t0x33f0: 0x0002, 0x33f1: 0x0002, 0x33f2: 0x0002, 0x33f3: 0x0002, 0x33f4: 0x0002, 0x33f5: 0x0002,\n\t0x33f6: 0x0002, 0x33f7: 0x0002, 0x33f8: 0x0002, 0x33f9: 0x0002, 0x33fa: 0x0002, 0x33fb: 0x0002,\n\t0x33fc: 0x0002, 0x33fd: 0x0002, 0x33fe: 0x0002, 0x33ff: 0x0002,\n\t// Block 0xd0, offset 0x3400\n\t0x3400: 0x000c, 0x3401: 0x000c, 0x3402: 0x000c, 0x3403: 0x000c, 0x3404: 0x000c, 0x3405: 0x000c,\n\t0x3406: 0x000c, 0x3407: 0x000c, 0x3408: 0x000c, 0x3409: 0x000c, 0x340a: 0x000c, 0x340b: 0x000c,\n\t0x340c: 0x000c, 0x340d: 0x000c, 0x340e: 0x000c, 0x340f: 0x000c, 0x3410: 0x000c, 0x3411: 0x000c,\n\t0x3412: 0x000c, 0x3413: 0x000c, 0x3414: 0x000c, 0x3415: 0x000c, 0x3416: 0x000c, 0x3417: 0x000c,\n\t0x3418: 0x000c, 0x3419: 0x000c, 0x341a: 0x000c, 0x341b: 0x000c, 0x341c: 0x000c, 0x341d: 0x000c,\n\t0x341e: 0x000c, 0x341f: 0x000c, 0x3420: 0x000c, 0x3421: 0x000c, 0x3422: 0x000c, 0x3423: 0x000c,\n\t0x3424: 0x000c, 0x3425: 0x000c, 0x3426: 0x000c, 0x3427: 0x000c, 0x3428: 0x000c, 0x3429: 0x000c,\n\t0x342a: 0x000c, 0x342b: 0x000c, 0x342c: 0x000c, 0x342d: 0x000c, 0x342e: 0x000c, 0x342f: 0x000c,\n\t0x3430: 0x000c, 0x3431: 0x000c, 0x3432: 0x000c, 0x3433: 0x000c, 0x3434: 0x000c, 0x3435: 0x000c,\n\t0x3436: 0x000c, 0x343b: 0x000c,\n\t0x343c: 0x000c, 0x343d: 0x000c, 0x343e: 0x000c, 0x343f: 0x000c,\n\t// Block 0xd1, offset 0x3440\n\t0x3440: 0x000c, 0x3441: 0x000c, 0x3442: 0x000c, 0x3443: 0x000c, 0x3444: 0x000c, 0x3445: 0x000c,\n\t0x3446: 0x000c, 0x3447: 0x000c, 0x3448: 0x000c, 0x3449: 0x000c, 0x344a: 0x000c, 0x344b: 0x000c,\n\t0x344c: 0x000c, 0x344d: 0x000c, 0x344e: 0x000c, 0x344f: 0x000c, 0x3450: 0x000c, 0x3451: 0x000c,\n\t0x3452: 0x000c, 0x3453: 0x000c, 0x3454: 0x000c, 0x3455: 0x000c, 0x3456: 0x000c, 0x3457: 0x000c,\n\t0x3458: 0x000c, 0x3459: 0x000c, 0x345a: 0x000c, 0x345b: 0x000c, 0x345c: 0x000c, 0x345d: 0x000c,\n\t0x345e: 0x000c, 0x345f: 0x000c, 0x3460: 0x000c, 0x3461: 0x000c, 0x3462: 0x000c, 0x3463: 0x000c,\n\t0x3464: 0x000c, 0x3465: 0x000c, 0x3466: 0x000c, 0x3467: 0x000c, 0x3468: 0x000c, 0x3469: 0x000c,\n\t0x346a: 0x000c, 0x346b: 0x000c, 0x346c: 0x000c,\n\t0x3475: 0x000c,\n\t// Block 0xd2, offset 0x3480\n\t0x3484: 0x000c,\n\t0x349b: 0x000c, 0x349c: 0x000c, 0x349d: 0x000c,\n\t0x349e: 0x000c, 0x349f: 0x000c, 0x34a1: 0x000c, 0x34a2: 0x000c, 0x34a3: 0x000c,\n\t0x34a4: 0x000c, 0x34a5: 0x000c, 0x34a6: 0x000c, 0x34a7: 0x000c, 0x34a8: 0x000c, 0x34a9: 0x000c,\n\t0x34aa: 0x000c, 0x34ab: 0x000c, 0x34ac: 0x000c, 0x34ad: 0x000c, 0x34ae: 0x000c, 0x34af: 0x000c,\n\t// Block 0xd3, offset 0x34c0\n\t0x34c0: 0x000c, 0x34c1: 0x000c, 0x34c2: 0x000c, 0x34c3: 0x000c, 0x34c4: 0x000c, 0x34c5: 0x000c,\n\t0x34c6: 0x000c, 0x34c8: 0x000c, 0x34c9: 0x000c, 0x34ca: 0x000c, 0x34cb: 0x000c,\n\t0x34cc: 0x000c, 0x34cd: 0x000c, 0x34ce: 0x000c, 0x34cf: 0x000c, 0x34d0: 0x000c, 0x34d1: 0x000c,\n\t0x34d2: 0x000c, 0x34d3: 0x000c, 0x34d4: 0x000c, 0x34d5: 0x000c, 0x34d6: 0x000c, 0x34d7: 0x000c,\n\t0x34d8: 0x000c, 0x34db: 0x000c, 0x34dc: 0x000c, 0x34dd: 0x000c,\n\t0x34de: 0x000c, 0x34df: 0x000c, 0x34e0: 0x000c, 0x34e1: 0x000c, 0x34e3: 0x000c,\n\t0x34e4: 0x000c, 0x34e6: 0x000c, 0x34e7: 0x000c, 0x34e8: 0x000c, 0x34e9: 0x000c,\n\t0x34ea: 0x000c,\n\t// Block 0xd4, offset 0x3500\n\t0x3500: 0x0001, 0x3501: 0x0001, 0x3502: 0x0001, 0x3503: 0x0001, 0x3504: 0x0001, 0x3505: 0x0001,\n\t0x3506: 0x0001, 0x3507: 0x0001, 0x3508: 0x0001, 0x3509: 0x0001, 0x350a: 0x0001, 0x350b: 0x0001,\n\t0x350c: 0x0001, 0x350d: 0x0001, 0x350e: 0x0001, 0x350f: 0x0001, 0x3510: 0x000c, 0x3511: 0x000c,\n\t0x3512: 0x000c, 0x3513: 0x000c, 0x3514: 0x000c, 0x3515: 0x000c, 0x3516: 0x000c, 0x3517: 0x0001,\n\t0x3518: 0x0001, 0x3519: 0x0001, 0x351a: 0x0001, 0x351b: 0x0001, 0x351c: 0x0001, 0x351d: 0x0001,\n\t0x351e: 0x0001, 0x351f: 0x0001, 0x3520: 0x0001, 0x3521: 0x0001, 0x3522: 0x0001, 0x3523: 0x0001,\n\t0x3524: 0x0001, 0x3525: 0x0001, 0x3526: 0x0001, 0x3527: 0x0001, 0x3528: 0x0001, 0x3529: 0x0001,\n\t0x352a: 0x0001, 0x352b: 0x0001, 0x352c: 0x0001, 0x352d: 0x0001, 0x352e: 0x0001, 0x352f: 0x0001,\n\t0x3530: 0x0001, 0x3531: 0x0001, 0x3532: 0x0001, 0x3533: 0x0001, 0x3534: 0x0001, 0x3535: 0x0001,\n\t0x3536: 0x0001, 0x3537: 0x0001, 0x3538: 0x0001, 0x3539: 0x0001, 0x353a: 0x0001, 0x353b: 0x0001,\n\t0x353c: 0x0001, 0x353d: 0x0001, 0x353e: 0x0001, 0x353f: 0x0001,\n\t// Block 0xd5, offset 0x3540\n\t0x3540: 0x0001, 0x3541: 0x0001, 0x3542: 0x0001, 0x3543: 0x0001, 0x3544: 0x000c, 0x3545: 0x000c,\n\t0x3546: 0x000c, 0x3547: 0x000c, 0x3548: 0x000c, 0x3549: 0x000c, 0x354a: 0x000c, 0x354b: 0x0001,\n\t0x354c: 0x0001, 0x354d: 0x0001, 0x354e: 0x0001, 0x354f: 0x0001, 0x3550: 0x0001, 0x3551: 0x0001,\n\t0x3552: 0x0001, 0x3553: 0x0001, 0x3554: 0x0001, 0x3555: 0x0001, 0x3556: 0x0001, 0x3557: 0x0001,\n\t0x3558: 0x0001, 0x3559: 0x0001, 0x355a: 0x0001, 0x355b: 0x0001, 0x355c: 0x0001, 0x355d: 0x0001,\n\t0x355e: 0x0001, 0x355f: 0x0001, 0x3560: 0x0001, 0x3561: 0x0001, 0x3562: 0x0001, 0x3563: 0x0001,\n\t0x3564: 0x0001, 0x3565: 0x0001, 0x3566: 0x0001, 0x3567: 0x0001, 0x3568: 0x0001, 0x3569: 0x0001,\n\t0x356a: 0x0001, 0x356b: 0x0001, 0x356c: 0x0001, 0x356d: 0x0001, 0x356e: 0x0001, 0x356f: 0x0001,\n\t0x3570: 0x0001, 0x3571: 0x0001, 0x3572: 0x0001, 0x3573: 0x0001, 0x3574: 0x0001, 0x3575: 0x0001,\n\t0x3576: 0x0001, 0x3577: 0x0001, 0x3578: 0x0001, 0x3579: 0x0001, 0x357a: 0x0001, 0x357b: 0x0001,\n\t0x357c: 0x0001, 0x357d: 0x0001, 0x357e: 0x0001, 0x357f: 0x0001,\n\t// Block 0xd6, offset 0x3580\n\t0x3580: 0x000d, 0x3581: 0x000d, 0x3582: 0x000d, 0x3583: 0x000d, 0x3584: 0x000d, 0x3585: 0x000d,\n\t0x3586: 0x000d, 0x3587: 0x000d, 0x3588: 0x000d, 0x3589: 0x000d, 0x358a: 0x000d, 0x358b: 0x000d,\n\t0x358c: 0x000d, 0x358d: 0x000d, 0x358e: 0x000d, 0x358f: 0x000d, 0x3590: 0x000d, 0x3591: 0x000d,\n\t0x3592: 0x000d, 0x3593: 0x000d, 0x3594: 0x000d, 0x3595: 0x000d, 0x3596: 0x000d, 0x3597: 0x000d,\n\t0x3598: 0x000d, 0x3599: 0x000d, 0x359a: 0x000d, 0x359b: 0x000d, 0x359c: 0x000d, 0x359d: 0x000d,\n\t0x359e: 0x000d, 0x359f: 0x000d, 0x35a0: 0x000d, 0x35a1: 0x000d, 0x35a2: 0x000d, 0x35a3: 0x000d,\n\t0x35a4: 0x000d, 0x35a5: 0x000d, 0x35a6: 0x000d, 0x35a7: 0x000d, 0x35a8: 0x000d, 0x35a9: 0x000d,\n\t0x35aa: 0x000d, 0x35ab: 0x000d, 0x35ac: 0x000d, 0x35ad: 0x000d, 0x35ae: 0x000d, 0x35af: 0x000d,\n\t0x35b0: 0x000a, 0x35b1: 0x000a, 0x35b2: 0x000d, 0x35b3: 0x000d, 0x35b4: 0x000d, 0x35b5: 0x000d,\n\t0x35b6: 0x000d, 0x35b7: 0x000d, 0x35b8: 0x000d, 0x35b9: 0x000d, 0x35ba: 0x000d, 0x35bb: 0x000d,\n\t0x35bc: 0x000d, 0x35bd: 0x000d, 0x35be: 0x000d, 0x35bf: 0x000d,\n\t// Block 0xd7, offset 0x35c0\n\t0x35c0: 0x000a, 0x35c1: 0x000a, 0x35c2: 0x000a, 0x35c3: 0x000a, 0x35c4: 0x000a, 0x35c5: 0x000a,\n\t0x35c6: 0x000a, 0x35c7: 0x000a, 0x35c8: 0x000a, 0x35c9: 0x000a, 0x35ca: 0x000a, 0x35cb: 0x000a,\n\t0x35cc: 0x000a, 0x35cd: 0x000a, 0x35ce: 0x000a, 0x35cf: 0x000a, 0x35d0: 0x000a, 0x35d1: 0x000a,\n\t0x35d2: 0x000a, 0x35d3: 0x000a, 0x35d4: 0x000a, 0x35d5: 0x000a, 0x35d6: 0x000a, 0x35d7: 0x000a,\n\t0x35d8: 0x000a, 0x35d9: 0x000a, 0x35da: 0x000a, 0x35db: 0x000a, 0x35dc: 0x000a, 0x35dd: 0x000a,\n\t0x35de: 0x000a, 0x35df: 0x000a, 0x35e0: 0x000a, 0x35e1: 0x000a, 0x35e2: 0x000a, 0x35e3: 0x000a,\n\t0x35e4: 0x000a, 0x35e5: 0x000a, 0x35e6: 0x000a, 0x35e7: 0x000a, 0x35e8: 0x000a, 0x35e9: 0x000a,\n\t0x35ea: 0x000a, 0x35eb: 0x000a,\n\t0x35f0: 0x000a, 0x35f1: 0x000a, 0x35f2: 0x000a, 0x35f3: 0x000a, 0x35f4: 0x000a, 0x35f5: 0x000a,\n\t0x35f6: 0x000a, 0x35f7: 0x000a, 0x35f8: 0x000a, 0x35f9: 0x000a, 0x35fa: 0x000a, 0x35fb: 0x000a,\n\t0x35fc: 0x000a, 0x35fd: 0x000a, 0x35fe: 0x000a, 0x35ff: 0x000a,\n\t// Block 0xd8, offset 0x3600\n\t0x3600: 0x000a, 0x3601: 0x000a, 0x3602: 0x000a, 0x3603: 0x000a, 0x3604: 0x000a, 0x3605: 0x000a,\n\t0x3606: 0x000a, 0x3607: 0x000a, 0x3608: 0x000a, 0x3609: 0x000a, 0x360a: 0x000a, 0x360b: 0x000a,\n\t0x360c: 0x000a, 0x360d: 0x000a, 0x360e: 0x000a, 0x360f: 0x000a, 0x3610: 0x000a, 0x3611: 0x000a,\n\t0x3612: 0x000a, 0x3613: 0x000a,\n\t0x3620: 0x000a, 0x3621: 0x000a, 0x3622: 0x000a, 0x3623: 0x000a,\n\t0x3624: 0x000a, 0x3625: 0x000a, 0x3626: 0x000a, 0x3627: 0x000a, 0x3628: 0x000a, 0x3629: 0x000a,\n\t0x362a: 0x000a, 0x362b: 0x000a, 0x362c: 0x000a, 0x362d: 0x000a, 0x362e: 0x000a,\n\t0x3631: 0x000a, 0x3632: 0x000a, 0x3633: 0x000a, 0x3634: 0x000a, 0x3635: 0x000a,\n\t0x3636: 0x000a, 0x3637: 0x000a, 0x3638: 0x000a, 0x3639: 0x000a, 0x363a: 0x000a, 0x363b: 0x000a,\n\t0x363c: 0x000a, 0x363d: 0x000a, 0x363e: 0x000a, 0x363f: 0x000a,\n\t// Block 0xd9, offset 0x3640\n\t0x3641: 0x000a, 0x3642: 0x000a, 0x3643: 0x000a, 0x3644: 0x000a, 0x3645: 0x000a,\n\t0x3646: 0x000a, 0x3647: 0x000a, 0x3648: 0x000a, 0x3649: 0x000a, 0x364a: 0x000a, 0x364b: 0x000a,\n\t0x364c: 0x000a, 0x364d: 0x000a, 0x364e: 0x000a, 0x364f: 0x000a, 0x3651: 0x000a,\n\t0x3652: 0x000a, 0x3653: 0x000a, 0x3654: 0x000a, 0x3655: 0x000a, 0x3656: 0x000a, 0x3657: 0x000a,\n\t0x3658: 0x000a, 0x3659: 0x000a, 0x365a: 0x000a, 0x365b: 0x000a, 0x365c: 0x000a, 0x365d: 0x000a,\n\t0x365e: 0x000a, 0x365f: 0x000a, 0x3660: 0x000a, 0x3661: 0x000a, 0x3662: 0x000a, 0x3663: 0x000a,\n\t0x3664: 0x000a, 0x3665: 0x000a, 0x3666: 0x000a, 0x3667: 0x000a, 0x3668: 0x000a, 0x3669: 0x000a,\n\t0x366a: 0x000a, 0x366b: 0x000a, 0x366c: 0x000a, 0x366d: 0x000a, 0x366e: 0x000a, 0x366f: 0x000a,\n\t0x3670: 0x000a, 0x3671: 0x000a, 0x3672: 0x000a, 0x3673: 0x000a, 0x3674: 0x000a, 0x3675: 0x000a,\n\t// Block 0xda, offset 0x3680\n\t0x3680: 0x0002, 0x3681: 0x0002, 0x3682: 0x0002, 0x3683: 0x0002, 0x3684: 0x0002, 0x3685: 0x0002,\n\t0x3686: 0x0002, 0x3687: 0x0002, 0x3688: 0x0002, 0x3689: 0x0002, 0x368a: 0x0002, 0x368b: 0x000a,\n\t0x368c: 0x000a,\n\t0x36af: 0x000a,\n\t// Block 0xdb, offset 0x36c0\n\t0x36ea: 0x000a, 0x36eb: 0x000a,\n\t// Block 0xdc, offset 0x3700\n\t0x3720: 0x000a, 0x3721: 0x000a, 0x3722: 0x000a, 0x3723: 0x000a,\n\t0x3724: 0x000a, 0x3725: 0x000a,\n\t// Block 0xdd, offset 0x3740\n\t0x3740: 0x000a, 0x3741: 0x000a, 0x3742: 0x000a, 0x3743: 0x000a, 0x3744: 0x000a, 0x3745: 0x000a,\n\t0x3746: 0x000a, 0x3747: 0x000a, 0x3748: 0x000a, 0x3749: 0x000a, 0x374a: 0x000a, 0x374b: 0x000a,\n\t0x374c: 0x000a, 0x374d: 0x000a, 0x374e: 0x000a, 0x374f: 0x000a, 0x3750: 0x000a, 0x3751: 0x000a,\n\t0x3752: 0x000a, 0x3753: 0x000a, 0x3754: 0x000a,\n\t0x3760: 0x000a, 0x3761: 0x000a, 0x3762: 0x000a, 0x3763: 0x000a,\n\t0x3764: 0x000a, 0x3765: 0x000a, 0x3766: 0x000a, 0x3767: 0x000a, 0x3768: 0x000a, 0x3769: 0x000a,\n\t0x376a: 0x000a, 0x376b: 0x000a, 0x376c: 0x000a,\n\t0x3770: 0x000a, 0x3771: 0x000a, 0x3772: 0x000a, 0x3773: 0x000a, 0x3774: 0x000a, 0x3775: 0x000a,\n\t0x3776: 0x000a, 0x3777: 0x000a, 0x3778: 0x000a, 0x3779: 0x000a,\n\t// Block 0xde, offset 0x3780\n\t0x3780: 0x000a, 0x3781: 0x000a, 0x3782: 0x000a, 0x3783: 0x000a, 0x3784: 0x000a, 0x3785: 0x000a,\n\t0x3786: 0x000a, 0x3787: 0x000a, 0x3788: 0x000a, 0x3789: 0x000a, 0x378a: 0x000a, 0x378b: 0x000a,\n\t0x378c: 0x000a, 0x378d: 0x000a, 0x378e: 0x000a, 0x378f: 0x000a, 0x3790: 0x000a, 0x3791: 0x000a,\n\t0x3792: 0x000a, 0x3793: 0x000a, 0x3794: 0x000a, 0x3795: 0x000a, 0x3796: 0x000a, 0x3797: 0x000a,\n\t0x3798: 0x000a,\n\t// Block 0xdf, offset 0x37c0\n\t0x37c0: 0x000a, 0x37c1: 0x000a, 0x37c2: 0x000a, 0x37c3: 0x000a, 0x37c4: 0x000a, 0x37c5: 0x000a,\n\t0x37c6: 0x000a, 0x37c7: 0x000a, 0x37c8: 0x000a, 0x37c9: 0x000a, 0x37ca: 0x000a, 0x37cb: 0x000a,\n\t0x37d0: 0x000a, 0x37d1: 0x000a,\n\t0x37d2: 0x000a, 0x37d3: 0x000a, 0x37d4: 0x000a, 0x37d5: 0x000a, 0x37d6: 0x000a, 0x37d7: 0x000a,\n\t0x37d8: 0x000a, 0x37d9: 0x000a, 0x37da: 0x000a, 0x37db: 0x000a, 0x37dc: 0x000a, 0x37dd: 0x000a,\n\t0x37de: 0x000a, 0x37df: 0x000a, 0x37e0: 0x000a, 0x37e1: 0x000a, 0x37e2: 0x000a, 0x37e3: 0x000a,\n\t0x37e4: 0x000a, 0x37e5: 0x000a, 0x37e6: 0x000a, 0x37e7: 0x000a, 0x37e8: 0x000a, 0x37e9: 0x000a,\n\t0x37ea: 0x000a, 0x37eb: 0x000a, 0x37ec: 0x000a, 0x37ed: 0x000a, 0x37ee: 0x000a, 0x37ef: 0x000a,\n\t0x37f0: 0x000a, 0x37f1: 0x000a, 0x37f2: 0x000a, 0x37f3: 0x000a, 0x37f4: 0x000a, 0x37f5: 0x000a,\n\t0x37f6: 0x000a, 0x37f7: 0x000a, 0x37f8: 0x000a, 0x37f9: 0x000a, 0x37fa: 0x000a, 0x37fb: 0x000a,\n\t0x37fc: 0x000a, 0x37fd: 0x000a, 0x37fe: 0x000a, 0x37ff: 0x000a,\n\t// Block 0xe0, offset 0x3800\n\t0x3800: 0x000a, 0x3801: 0x000a, 0x3802: 0x000a, 0x3803: 0x000a, 0x3804: 0x000a, 0x3805: 0x000a,\n\t0x3806: 0x000a, 0x3807: 0x000a,\n\t0x3810: 0x000a, 0x3811: 0x000a,\n\t0x3812: 0x000a, 0x3813: 0x000a, 0x3814: 0x000a, 0x3815: 0x000a, 0x3816: 0x000a, 0x3817: 0x000a,\n\t0x3818: 0x000a, 0x3819: 0x000a,\n\t0x3820: 0x000a, 0x3821: 0x000a, 0x3822: 0x000a, 0x3823: 0x000a,\n\t0x3824: 0x000a, 0x3825: 0x000a, 0x3826: 0x000a, 0x3827: 0x000a, 0x3828: 0x000a, 0x3829: 0x000a,\n\t0x382a: 0x000a, 0x382b: 0x000a, 0x382c: 0x000a, 0x382d: 0x000a, 0x382e: 0x000a, 0x382f: 0x000a,\n\t0x3830: 0x000a, 0x3831: 0x000a, 0x3832: 0x000a, 0x3833: 0x000a, 0x3834: 0x000a, 0x3835: 0x000a,\n\t0x3836: 0x000a, 0x3837: 0x000a, 0x3838: 0x000a, 0x3839: 0x000a, 0x383a: 0x000a, 0x383b: 0x000a,\n\t0x383c: 0x000a, 0x383d: 0x000a, 0x383e: 0x000a, 0x383f: 0x000a,\n\t// Block 0xe1, offset 0x3840\n\t0x3840: 0x000a, 0x3841: 0x000a, 0x3842: 0x000a, 0x3843: 0x000a, 0x3844: 0x000a, 0x3845: 0x000a,\n\t0x3846: 0x000a, 0x3847: 0x000a,\n\t0x3850: 0x000a, 0x3851: 0x000a,\n\t0x3852: 0x000a, 0x3853: 0x000a, 0x3854: 0x000a, 0x3855: 0x000a, 0x3856: 0x000a, 0x3857: 0x000a,\n\t0x3858: 0x000a, 0x3859: 0x000a, 0x385a: 0x000a, 0x385b: 0x000a, 0x385c: 0x000a, 0x385d: 0x000a,\n\t0x385e: 0x000a, 0x385f: 0x000a, 0x3860: 0x000a, 0x3861: 0x000a, 0x3862: 0x000a, 0x3863: 0x000a,\n\t0x3864: 0x000a, 0x3865: 0x000a, 0x3866: 0x000a, 0x3867: 0x000a, 0x3868: 0x000a, 0x3869: 0x000a,\n\t0x386a: 0x000a, 0x386b: 0x000a, 0x386c: 0x000a, 0x386d: 0x000a,\n\t// Block 0xe2, offset 0x3880\n\t0x3880: 0x000a, 0x3881: 0x000a, 0x3882: 0x000a, 0x3883: 0x000a, 0x3884: 0x000a, 0x3885: 0x000a,\n\t0x3886: 0x000a, 0x3887: 0x000a, 0x3888: 0x000a, 0x3889: 0x000a, 0x388a: 0x000a, 0x388b: 0x000a,\n\t0x3890: 0x000a, 0x3891: 0x000a,\n\t0x3892: 0x000a, 0x3893: 0x000a, 0x3894: 0x000a, 0x3895: 0x000a, 0x3896: 0x000a, 0x3897: 0x000a,\n\t0x3898: 0x000a, 0x3899: 0x000a, 0x389a: 0x000a, 0x389b: 0x000a, 0x389c: 0x000a, 0x389d: 0x000a,\n\t0x389e: 0x000a, 0x389f: 0x000a, 0x38a0: 0x000a, 0x38a1: 0x000a, 0x38a2: 0x000a, 0x38a3: 0x000a,\n\t0x38a4: 0x000a, 0x38a5: 0x000a, 0x38a6: 0x000a, 0x38a7: 0x000a, 0x38a8: 0x000a, 0x38a9: 0x000a,\n\t0x38aa: 0x000a, 0x38ab: 0x000a, 0x38ac: 0x000a, 0x38ad: 0x000a, 0x38ae: 0x000a, 0x38af: 0x000a,\n\t0x38b0: 0x000a, 0x38b1: 0x000a, 0x38b2: 0x000a, 0x38b3: 0x000a, 0x38b4: 0x000a, 0x38b5: 0x000a,\n\t0x38b6: 0x000a, 0x38b7: 0x000a, 0x38b8: 0x000a, 0x38b9: 0x000a, 0x38ba: 0x000a, 0x38bb: 0x000a,\n\t0x38bc: 0x000a, 0x38bd: 0x000a, 0x38be: 0x000a,\n\t// Block 0xe3, offset 0x38c0\n\t0x38c0: 0x000a, 0x38c1: 0x000a, 0x38c2: 0x000a, 0x38c3: 0x000a, 0x38c4: 0x000a, 0x38c5: 0x000a,\n\t0x38c6: 0x000a, 0x38c7: 0x000a, 0x38c8: 0x000a, 0x38c9: 0x000a, 0x38ca: 0x000a, 0x38cb: 0x000a,\n\t0x38cc: 0x000a, 0x38cd: 0x000a, 0x38ce: 0x000a, 0x38cf: 0x000a, 0x38d0: 0x000a, 0x38d1: 0x000a,\n\t0x38d2: 0x000a, 0x38d3: 0x000a, 0x38d4: 0x000a, 0x38d5: 0x000a, 0x38d6: 0x000a, 0x38d7: 0x000a,\n\t0x38d8: 0x000a, 0x38d9: 0x000a, 0x38da: 0x000a, 0x38db: 0x000a, 0x38dc: 0x000a, 0x38dd: 0x000a,\n\t0x38de: 0x000a, 0x38df: 0x000a, 0x38e0: 0x000a, 0x38e1: 0x000a, 0x38e2: 0x000a, 0x38e3: 0x000a,\n\t0x38e4: 0x000a, 0x38e5: 0x000a, 0x38e6: 0x000a, 0x38e7: 0x000a, 0x38e8: 0x000a, 0x38e9: 0x000a,\n\t0x38ea: 0x000a, 0x38eb: 0x000a, 0x38ec: 0x000a, 0x38ed: 0x000a, 0x38ee: 0x000a, 0x38ef: 0x000a,\n\t0x38f0: 0x000a, 0x38f3: 0x000a, 0x38f4: 0x000a, 0x38f5: 0x000a,\n\t0x38f6: 0x000a, 0x38fa: 0x000a,\n\t0x38fc: 0x000a, 0x38fd: 0x000a, 0x38fe: 0x000a, 0x38ff: 0x000a,\n\t// Block 0xe4, offset 0x3900\n\t0x3900: 0x000a, 0x3901: 0x000a, 0x3902: 0x000a, 0x3903: 0x000a, 0x3904: 0x000a, 0x3905: 0x000a,\n\t0x3906: 0x000a, 0x3907: 0x000a, 0x3908: 0x000a, 0x3909: 0x000a, 0x390a: 0x000a, 0x390b: 0x000a,\n\t0x390c: 0x000a, 0x390d: 0x000a, 0x390e: 0x000a, 0x390f: 0x000a, 0x3910: 0x000a, 0x3911: 0x000a,\n\t0x3912: 0x000a, 0x3913: 0x000a, 0x3914: 0x000a, 0x3915: 0x000a, 0x3916: 0x000a, 0x3917: 0x000a,\n\t0x3918: 0x000a, 0x3919: 0x000a, 0x391a: 0x000a, 0x391b: 0x000a, 0x391c: 0x000a, 0x391d: 0x000a,\n\t0x391e: 0x000a, 0x391f: 0x000a, 0x3920: 0x000a, 0x3921: 0x000a, 0x3922: 0x000a,\n\t0x3930: 0x000a, 0x3931: 0x000a, 0x3932: 0x000a, 0x3933: 0x000a, 0x3934: 0x000a, 0x3935: 0x000a,\n\t0x3936: 0x000a, 0x3937: 0x000a, 0x3938: 0x000a, 0x3939: 0x000a,\n\t// Block 0xe5, offset 0x3940\n\t0x3940: 0x000a, 0x3941: 0x000a, 0x3942: 0x000a,\n\t0x3950: 0x000a, 0x3951: 0x000a,\n\t0x3952: 0x000a, 0x3953: 0x000a, 0x3954: 0x000a, 0x3955: 0x000a, 0x3956: 0x000a, 0x3957: 0x000a,\n\t0x3958: 0x000a, 0x3959: 0x000a, 0x395a: 0x000a, 0x395b: 0x000a, 0x395c: 0x000a, 0x395d: 0x000a,\n\t0x395e: 0x000a, 0x395f: 0x000a, 0x3960: 0x000a, 0x3961: 0x000a, 0x3962: 0x000a, 0x3963: 0x000a,\n\t0x3964: 0x000a, 0x3965: 0x000a, 0x3966: 0x000a, 0x3967: 0x000a, 0x3968: 0x000a, 0x3969: 0x000a,\n\t0x396a: 0x000a, 0x396b: 0x000a, 0x396c: 0x000a, 0x396d: 0x000a, 0x396e: 0x000a, 0x396f: 0x000a,\n\t0x3970: 0x000a, 0x3971: 0x000a, 0x3972: 0x000a, 0x3973: 0x000a, 0x3974: 0x000a, 0x3975: 0x000a,\n\t0x3976: 0x000a, 0x3977: 0x000a, 0x3978: 0x000a, 0x3979: 0x000a, 0x397a: 0x000a, 0x397b: 0x000a,\n\t0x397c: 0x000a, 0x397d: 0x000a, 0x397e: 0x000a, 0x397f: 0x000a,\n\t// Block 0xe6, offset 0x3980\n\t0x39a0: 0x000a, 0x39a1: 0x000a, 0x39a2: 0x000a, 0x39a3: 0x000a,\n\t0x39a4: 0x000a, 0x39a5: 0x000a, 0x39a6: 0x000a, 0x39a7: 0x000a, 0x39a8: 0x000a, 0x39a9: 0x000a,\n\t0x39aa: 0x000a, 0x39ab: 0x000a, 0x39ac: 0x000a, 0x39ad: 0x000a,\n\t// Block 0xe7, offset 0x39c0\n\t0x39fe: 0x000b, 0x39ff: 0x000b,\n\t// Block 0xe8, offset 0x3a00\n\t0x3a00: 0x000b, 0x3a01: 0x000b, 0x3a02: 0x000b, 0x3a03: 0x000b, 0x3a04: 0x000b, 0x3a05: 0x000b,\n\t0x3a06: 0x000b, 0x3a07: 0x000b, 0x3a08: 0x000b, 0x3a09: 0x000b, 0x3a0a: 0x000b, 0x3a0b: 0x000b,\n\t0x3a0c: 0x000b, 0x3a0d: 0x000b, 0x3a0e: 0x000b, 0x3a0f: 0x000b, 0x3a10: 0x000b, 0x3a11: 0x000b,\n\t0x3a12: 0x000b, 0x3a13: 0x000b, 0x3a14: 0x000b, 0x3a15: 0x000b, 0x3a16: 0x000b, 0x3a17: 0x000b,\n\t0x3a18: 0x000b, 0x3a19: 0x000b, 0x3a1a: 0x000b, 0x3a1b: 0x000b, 0x3a1c: 0x000b, 0x3a1d: 0x000b,\n\t0x3a1e: 0x000b, 0x3a1f: 0x000b, 0x3a20: 0x000b, 0x3a21: 0x000b, 0x3a22: 0x000b, 0x3a23: 0x000b,\n\t0x3a24: 0x000b, 0x3a25: 0x000b, 0x3a26: 0x000b, 0x3a27: 0x000b, 0x3a28: 0x000b, 0x3a29: 0x000b,\n\t0x3a2a: 0x000b, 0x3a2b: 0x000b, 0x3a2c: 0x000b, 0x3a2d: 0x000b, 0x3a2e: 0x000b, 0x3a2f: 0x000b,\n\t0x3a30: 0x000b, 0x3a31: 0x000b, 0x3a32: 0x000b, 0x3a33: 0x000b, 0x3a34: 0x000b, 0x3a35: 0x000b,\n\t0x3a36: 0x000b, 0x3a37: 0x000b, 0x3a38: 0x000b, 0x3a39: 0x000b, 0x3a3a: 0x000b, 0x3a3b: 0x000b,\n\t0x3a3c: 0x000b, 0x3a3d: 0x000b, 0x3a3e: 0x000b, 0x3a3f: 0x000b,\n\t// Block 0xe9, offset 0x3a40\n\t0x3a40: 0x000c, 0x3a41: 0x000c, 0x3a42: 0x000c, 0x3a43: 0x000c, 0x3a44: 0x000c, 0x3a45: 0x000c,\n\t0x3a46: 0x000c, 0x3a47: 0x000c, 0x3a48: 0x000c, 0x3a49: 0x000c, 0x3a4a: 0x000c, 0x3a4b: 0x000c,\n\t0x3a4c: 0x000c, 0x3a4d: 0x000c, 0x3a4e: 0x000c, 0x3a4f: 0x000c, 0x3a50: 0x000c, 0x3a51: 0x000c,\n\t0x3a52: 0x000c, 0x3a53: 0x000c, 0x3a54: 0x000c, 0x3a55: 0x000c, 0x3a56: 0x000c, 0x3a57: 0x000c,\n\t0x3a58: 0x000c, 0x3a59: 0x000c, 0x3a5a: 0x000c, 0x3a5b: 0x000c, 0x3a5c: 0x000c, 0x3a5d: 0x000c,\n\t0x3a5e: 0x000c, 0x3a5f: 0x000c, 0x3a60: 0x000c, 0x3a61: 0x000c, 0x3a62: 0x000c, 0x3a63: 0x000c,\n\t0x3a64: 0x000c, 0x3a65: 0x000c, 0x3a66: 0x000c, 0x3a67: 0x000c, 0x3a68: 0x000c, 0x3a69: 0x000c,\n\t0x3a6a: 0x000c, 0x3a6b: 0x000c, 0x3a6c: 0x000c, 0x3a6d: 0x000c, 0x3a6e: 0x000c, 0x3a6f: 0x000c,\n\t0x3a70: 0x000b, 0x3a71: 0x000b, 0x3a72: 0x000b, 0x3a73: 0x000b, 0x3a74: 0x000b, 0x3a75: 0x000b,\n\t0x3a76: 0x000b, 0x3a77: 0x000b, 0x3a78: 0x000b, 0x3a79: 0x000b, 0x3a7a: 0x000b, 0x3a7b: 0x000b,\n\t0x3a7c: 0x000b, 0x3a7d: 0x000b, 0x3a7e: 0x000b, 0x3a7f: 0x000b,\n}\n\n// bidiIndex: 24 blocks, 1536 entries, 1536 bytes\n// Block 0 is the zero block.\nvar bidiIndex = [1536]uint8{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x01, 0xc3: 0x02,\n\t0xca: 0x03, 0xcb: 0x04, 0xcc: 0x05, 0xcd: 0x06, 0xce: 0x07, 0xcf: 0x08,\n\t0xd2: 0x09, 0xd6: 0x0a, 0xd7: 0x0b,\n\t0xd8: 0x0c, 0xd9: 0x0d, 0xda: 0x0e, 0xdb: 0x0f, 0xdc: 0x10, 0xdd: 0x11, 0xde: 0x12, 0xdf: 0x13,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06,\n\t0xea: 0x07, 0xef: 0x08,\n\t0xf0: 0x11, 0xf1: 0x12, 0xf2: 0x12, 0xf3: 0x14, 0xf4: 0x15,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x14, 0x121: 0x15, 0x122: 0x16, 0x123: 0x17, 0x124: 0x18, 0x125: 0x19, 0x126: 0x1a, 0x127: 0x1b,\n\t0x128: 0x1c, 0x129: 0x1d, 0x12a: 0x1c, 0x12b: 0x1e, 0x12c: 0x1f, 0x12d: 0x20, 0x12e: 0x21, 0x12f: 0x22,\n\t0x130: 0x23, 0x131: 0x24, 0x132: 0x1a, 0x133: 0x25, 0x134: 0x26, 0x135: 0x27, 0x137: 0x28,\n\t0x138: 0x29, 0x139: 0x2a, 0x13a: 0x2b, 0x13b: 0x2c, 0x13c: 0x2d, 0x13d: 0x2e, 0x13e: 0x2f, 0x13f: 0x30,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x31, 0x141: 0x32, 0x142: 0x33,\n\t0x14d: 0x34, 0x14e: 0x35,\n\t0x150: 0x36,\n\t0x15a: 0x37, 0x15c: 0x38, 0x15d: 0x39, 0x15e: 0x3a, 0x15f: 0x3b,\n\t0x160: 0x3c, 0x162: 0x3d, 0x164: 0x3e, 0x165: 0x3f, 0x167: 0x40,\n\t0x168: 0x41, 0x169: 0x42, 0x16a: 0x43, 0x16c: 0x44, 0x16d: 0x45, 0x16e: 0x46, 0x16f: 0x47,\n\t0x170: 0x48, 0x173: 0x49, 0x177: 0x4a,\n\t0x17e: 0x4b, 0x17f: 0x4c,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x4d, 0x181: 0x4e, 0x182: 0x4f, 0x183: 0x50, 0x184: 0x51, 0x185: 0x52, 0x186: 0x53, 0x187: 0x54,\n\t0x188: 0x55, 0x189: 0x54, 0x18a: 0x54, 0x18b: 0x54, 0x18c: 0x56, 0x18d: 0x57, 0x18e: 0x58, 0x18f: 0x54,\n\t0x190: 0x59, 0x191: 0x5a, 0x192: 0x5b, 0x193: 0x5c, 0x194: 0x54, 0x195: 0x54, 0x196: 0x54, 0x197: 0x54,\n\t0x198: 0x54, 0x199: 0x54, 0x19a: 0x5d, 0x19b: 0x54, 0x19c: 0x54, 0x19d: 0x5e, 0x19e: 0x54, 0x19f: 0x5f,\n\t0x1a4: 0x54, 0x1a5: 0x54, 0x1a6: 0x60, 0x1a7: 0x61,\n\t0x1a8: 0x54, 0x1a9: 0x54, 0x1aa: 0x54, 0x1ab: 0x54, 0x1ac: 0x54, 0x1ad: 0x62, 0x1ae: 0x63, 0x1af: 0x64,\n\t0x1b3: 0x65, 0x1b5: 0x66, 0x1b7: 0x67,\n\t0x1b8: 0x68, 0x1b9: 0x69, 0x1ba: 0x6a, 0x1bb: 0x6b, 0x1bc: 0x54, 0x1bd: 0x54, 0x1be: 0x54, 0x1bf: 0x6c,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x6d, 0x1c2: 0x6e, 0x1c3: 0x6f, 0x1c7: 0x70,\n\t0x1c8: 0x71, 0x1c9: 0x72, 0x1ca: 0x73, 0x1cb: 0x74, 0x1cd: 0x75, 0x1cf: 0x76,\n\t// Block 0x8, offset 0x200\n\t0x237: 0x54,\n\t// Block 0x9, offset 0x240\n\t0x252: 0x77, 0x253: 0x78,\n\t0x258: 0x79, 0x259: 0x7a, 0x25a: 0x7b, 0x25b: 0x7c, 0x25c: 0x7d, 0x25e: 0x7e,\n\t0x260: 0x7f, 0x261: 0x80, 0x263: 0x81, 0x264: 0x82, 0x265: 0x83, 0x266: 0x84, 0x267: 0x85,\n\t0x268: 0x86, 0x269: 0x87, 0x26a: 0x88, 0x26b: 0x89, 0x26f: 0x8a,\n\t// Block 0xa, offset 0x280\n\t0x2ac: 0x8b, 0x2ad: 0x8c, 0x2ae: 0x0e, 0x2af: 0x0e,\n\t0x2b0: 0x0e, 0x2b1: 0x0e, 0x2b2: 0x0e, 0x2b3: 0x0e, 0x2b4: 0x8d, 0x2b5: 0x0e, 0x2b6: 0x0e, 0x2b7: 0x8e,\n\t0x2b8: 0x8f, 0x2b9: 0x90, 0x2ba: 0x0e, 0x2bb: 0x91, 0x2bc: 0x92, 0x2bd: 0x93, 0x2bf: 0x94,\n\t// Block 0xb, offset 0x2c0\n\t0x2c4: 0x95, 0x2c5: 0x54, 0x2c6: 0x96, 0x2c7: 0x97,\n\t0x2cb: 0x98, 0x2cd: 0x99,\n\t0x2e0: 0x9a, 0x2e1: 0x9a, 0x2e2: 0x9a, 0x2e3: 0x9a, 0x2e4: 0x9b, 0x2e5: 0x9a, 0x2e6: 0x9a, 0x2e7: 0x9a,\n\t0x2e8: 0x9c, 0x2e9: 0x9a, 0x2ea: 0x9a, 0x2eb: 0x9d, 0x2ec: 0x9e, 0x2ed: 0x9a, 0x2ee: 0x9a, 0x2ef: 0x9a,\n\t0x2f0: 0x9a, 0x2f1: 0x9a, 0x2f2: 0x9a, 0x2f3: 0x9a, 0x2f4: 0x9f, 0x2f5: 0x9a, 0x2f6: 0x9a, 0x2f7: 0x9a,\n\t0x2f8: 0x9a, 0x2f9: 0xa0, 0x2fa: 0x9a, 0x2fb: 0x9a, 0x2fc: 0xa1, 0x2fd: 0xa2, 0x2fe: 0x9a, 0x2ff: 0x9a,\n\t// Block 0xc, offset 0x300\n\t0x300: 0xa3, 0x301: 0xa4, 0x302: 0xa5, 0x304: 0xa6, 0x305: 0xa7, 0x306: 0xa8, 0x307: 0xa9,\n\t0x308: 0xaa, 0x30b: 0xab, 0x30c: 0x26, 0x30d: 0xac,\n\t0x310: 0xad, 0x311: 0xae, 0x312: 0xaf, 0x313: 0xb0, 0x316: 0xb1, 0x317: 0xb2,\n\t0x318: 0xb3, 0x319: 0xb4, 0x31a: 0xb5, 0x31c: 0xb6,\n\t0x320: 0xb7,\n\t0x328: 0xb8, 0x329: 0xb9, 0x32a: 0xba,\n\t0x330: 0xbb, 0x332: 0xbc, 0x334: 0xbd, 0x335: 0xbe, 0x336: 0xbf,\n\t0x33b: 0xc0,\n\t// Block 0xd, offset 0x340\n\t0x36b: 0xc1, 0x36c: 0xc2,\n\t0x37e: 0xc3,\n\t// Block 0xe, offset 0x380\n\t0x3b2: 0xc4,\n\t// Block 0xf, offset 0x3c0\n\t0x3c5: 0xc5, 0x3c6: 0xc6,\n\t0x3c8: 0x54, 0x3c9: 0xc7, 0x3cc: 0x54, 0x3cd: 0xc8,\n\t0x3db: 0xc9, 0x3dc: 0xca, 0x3dd: 0xcb, 0x3de: 0xcc, 0x3df: 0xcd,\n\t0x3e8: 0xce, 0x3e9: 0xcf, 0x3ea: 0xd0,\n\t// Block 0x10, offset 0x400\n\t0x400: 0xd1,\n\t0x420: 0x9a, 0x421: 0x9a, 0x422: 0x9a, 0x423: 0xd2, 0x424: 0x9a, 0x425: 0xd3, 0x426: 0x9a, 0x427: 0x9a,\n\t0x428: 0x9a, 0x429: 0x9a, 0x42a: 0x9a, 0x42b: 0x9a, 0x42c: 0x9a, 0x42d: 0x9a, 0x42e: 0x9a, 0x42f: 0x9a,\n\t0x430: 0x9a, 0x431: 0xa1, 0x432: 0x0e, 0x433: 0x9a, 0x434: 0x9a, 0x435: 0x9a, 0x436: 0x9a, 0x437: 0x9a,\n\t0x438: 0x0e, 0x439: 0x0e, 0x43a: 0x0e, 0x43b: 0xd4, 0x43c: 0x9a, 0x43d: 0x9a, 0x43e: 0x9a, 0x43f: 0x9a,\n\t// Block 0x11, offset 0x440\n\t0x440: 0xd5, 0x441: 0x54, 0x442: 0xd6, 0x443: 0xd7, 0x444: 0xd8, 0x445: 0xd9,\n\t0x449: 0xda, 0x44c: 0x54, 0x44d: 0x54, 0x44e: 0x54, 0x44f: 0x54,\n\t0x450: 0x54, 0x451: 0x54, 0x452: 0x54, 0x453: 0x54, 0x454: 0x54, 0x455: 0x54, 0x456: 0x54, 0x457: 0x54,\n\t0x458: 0x54, 0x459: 0x54, 0x45a: 0x54, 0x45b: 0xdb, 0x45c: 0x54, 0x45d: 0x6b, 0x45e: 0x54, 0x45f: 0xdc,\n\t0x460: 0xdd, 0x461: 0xde, 0x462: 0xdf, 0x464: 0xe0, 0x465: 0xe1, 0x466: 0xe2, 0x467: 0xe3,\n\t0x469: 0xe4,\n\t0x47f: 0xe5,\n\t// Block 0x12, offset 0x480\n\t0x4bf: 0xe5,\n\t// Block 0x13, offset 0x4c0\n\t0x4d0: 0x09, 0x4d1: 0x0a, 0x4d6: 0x0b,\n\t0x4db: 0x0c, 0x4dd: 0x0d, 0x4de: 0x0e, 0x4df: 0x0f,\n\t0x4ef: 0x10,\n\t0x4ff: 0x10,\n\t// Block 0x14, offset 0x500\n\t0x50f: 0x10,\n\t0x51f: 0x10,\n\t0x52f: 0x10,\n\t0x53f: 0x10,\n\t// Block 0x15, offset 0x540\n\t0x540: 0xe6, 0x541: 0xe6, 0x542: 0xe6, 0x543: 0xe6, 0x544: 0x05, 0x545: 0x05, 0x546: 0x05, 0x547: 0xe7,\n\t0x548: 0xe6, 0x549: 0xe6, 0x54a: 0xe6, 0x54b: 0xe6, 0x54c: 0xe6, 0x54d: 0xe6, 0x54e: 0xe6, 0x54f: 0xe6,\n\t0x550: 0xe6, 0x551: 0xe6, 0x552: 0xe6, 0x553: 0xe6, 0x554: 0xe6, 0x555: 0xe6, 0x556: 0xe6, 0x557: 0xe6,\n\t0x558: 0xe6, 0x559: 0xe6, 0x55a: 0xe6, 0x55b: 0xe6, 0x55c: 0xe6, 0x55d: 0xe6, 0x55e: 0xe6, 0x55f: 0xe6,\n\t0x560: 0xe6, 0x561: 0xe6, 0x562: 0xe6, 0x563: 0xe6, 0x564: 0xe6, 0x565: 0xe6, 0x566: 0xe6, 0x567: 0xe6,\n\t0x568: 0xe6, 0x569: 0xe6, 0x56a: 0xe6, 0x56b: 0xe6, 0x56c: 0xe6, 0x56d: 0xe6, 0x56e: 0xe6, 0x56f: 0xe6,\n\t0x570: 0xe6, 0x571: 0xe6, 0x572: 0xe6, 0x573: 0xe6, 0x574: 0xe6, 0x575: 0xe6, 0x576: 0xe6, 0x577: 0xe6,\n\t0x578: 0xe6, 0x579: 0xe6, 0x57a: 0xe6, 0x57b: 0xe6, 0x57c: 0xe6, 0x57d: 0xe6, 0x57e: 0xe6, 0x57f: 0xe6,\n\t// Block 0x16, offset 0x580\n\t0x58f: 0x10,\n\t0x59f: 0x10,\n\t0x5a0: 0x13,\n\t0x5af: 0x10,\n\t0x5bf: 0x10,\n\t// Block 0x17, offset 0x5c0\n\t0x5cf: 0x10,\n}\n\n// Total table size 16568 bytes (16KiB); checksum: F50EF68C\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/bidi/tables12.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n//go:build go1.14 && !go1.16\n\npackage bidi\n\n// UnicodeVersion is the Unicode version from which the tables in this package are derived.\nconst UnicodeVersion = \"12.0.0\"\n\n// xorMasks contains masks to be xor-ed with brackets to get the reverse\n// version.\nvar xorMasks = []int32{ // 8 elements\n\t0, 1, 6, 7, 3, 15, 29, 63,\n} // Size: 56 bytes\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *bidiTrie) lookup(s []byte) (v uint8, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn bidiValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = bidiIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *bidiTrie) lookupUnsafe(s []byte) uint8 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn bidiValues[c0]\n\t}\n\ti := bidiIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *bidiTrie) lookupString(s string) (v uint8, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn bidiValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = bidiIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *bidiTrie) lookupStringUnsafe(s string) uint8 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn bidiValues[c0]\n\t}\n\ti := bidiIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// bidiTrie. Total size: 16896 bytes (16.50 KiB). Checksum: 6f0927067913dc6d.\ntype bidiTrie struct{}\n\nfunc newBidiTrie(i int) *bidiTrie {\n\treturn &bidiTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *bidiTrie) lookupValue(n uint32, b byte) uint8 {\n\tswitch {\n\tdefault:\n\t\treturn uint8(bidiValues[n<<6+uint32(b)])\n\t}\n}\n\n// bidiValues: 240 blocks, 15360 entries, 15360 bytes\n// The third block is the zero block.\nvar bidiValues = [15360]uint8{\n\t// Block 0x0, offset 0x0\n\t0x00: 0x000b, 0x01: 0x000b, 0x02: 0x000b, 0x03: 0x000b, 0x04: 0x000b, 0x05: 0x000b,\n\t0x06: 0x000b, 0x07: 0x000b, 0x08: 0x000b, 0x09: 0x0008, 0x0a: 0x0007, 0x0b: 0x0008,\n\t0x0c: 0x0009, 0x0d: 0x0007, 0x0e: 0x000b, 0x0f: 0x000b, 0x10: 0x000b, 0x11: 0x000b,\n\t0x12: 0x000b, 0x13: 0x000b, 0x14: 0x000b, 0x15: 0x000b, 0x16: 0x000b, 0x17: 0x000b,\n\t0x18: 0x000b, 0x19: 0x000b, 0x1a: 0x000b, 0x1b: 0x000b, 0x1c: 0x0007, 0x1d: 0x0007,\n\t0x1e: 0x0007, 0x1f: 0x0008, 0x20: 0x0009, 0x21: 0x000a, 0x22: 0x000a, 0x23: 0x0004,\n\t0x24: 0x0004, 0x25: 0x0004, 0x26: 0x000a, 0x27: 0x000a, 0x28: 0x003a, 0x29: 0x002a,\n\t0x2a: 0x000a, 0x2b: 0x0003, 0x2c: 0x0006, 0x2d: 0x0003, 0x2e: 0x0006, 0x2f: 0x0006,\n\t0x30: 0x0002, 0x31: 0x0002, 0x32: 0x0002, 0x33: 0x0002, 0x34: 0x0002, 0x35: 0x0002,\n\t0x36: 0x0002, 0x37: 0x0002, 0x38: 0x0002, 0x39: 0x0002, 0x3a: 0x0006, 0x3b: 0x000a,\n\t0x3c: 0x000a, 0x3d: 0x000a, 0x3e: 0x000a, 0x3f: 0x000a,\n\t// Block 0x1, offset 0x40\n\t0x40: 0x000a,\n\t0x5b: 0x005a, 0x5c: 0x000a, 0x5d: 0x004a,\n\t0x5e: 0x000a, 0x5f: 0x000a, 0x60: 0x000a,\n\t0x7b: 0x005a,\n\t0x7c: 0x000a, 0x7d: 0x004a, 0x7e: 0x000a, 0x7f: 0x000b,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x000b, 0xc1: 0x000b, 0xc2: 0x000b, 0xc3: 0x000b, 0xc4: 0x000b, 0xc5: 0x0007,\n\t0xc6: 0x000b, 0xc7: 0x000b, 0xc8: 0x000b, 0xc9: 0x000b, 0xca: 0x000b, 0xcb: 0x000b,\n\t0xcc: 0x000b, 0xcd: 0x000b, 0xce: 0x000b, 0xcf: 0x000b, 0xd0: 0x000b, 0xd1: 0x000b,\n\t0xd2: 0x000b, 0xd3: 0x000b, 0xd4: 0x000b, 0xd5: 0x000b, 0xd6: 0x000b, 0xd7: 0x000b,\n\t0xd8: 0x000b, 0xd9: 0x000b, 0xda: 0x000b, 0xdb: 0x000b, 0xdc: 0x000b, 0xdd: 0x000b,\n\t0xde: 0x000b, 0xdf: 0x000b, 0xe0: 0x0006, 0xe1: 0x000a, 0xe2: 0x0004, 0xe3: 0x0004,\n\t0xe4: 0x0004, 0xe5: 0x0004, 0xe6: 0x000a, 0xe7: 0x000a, 0xe8: 0x000a, 0xe9: 0x000a,\n\t0xeb: 0x000a, 0xec: 0x000a, 0xed: 0x000b, 0xee: 0x000a, 0xef: 0x000a,\n\t0xf0: 0x0004, 0xf1: 0x0004, 0xf2: 0x0002, 0xf3: 0x0002, 0xf4: 0x000a,\n\t0xf6: 0x000a, 0xf7: 0x000a, 0xf8: 0x000a, 0xf9: 0x0002, 0xfb: 0x000a,\n\t0xfc: 0x000a, 0xfd: 0x000a, 0xfe: 0x000a, 0xff: 0x000a,\n\t// Block 0x4, offset 0x100\n\t0x117: 0x000a,\n\t0x137: 0x000a,\n\t// Block 0x5, offset 0x140\n\t0x179: 0x000a, 0x17a: 0x000a,\n\t// Block 0x6, offset 0x180\n\t0x182: 0x000a, 0x183: 0x000a, 0x184: 0x000a, 0x185: 0x000a,\n\t0x186: 0x000a, 0x187: 0x000a, 0x188: 0x000a, 0x189: 0x000a, 0x18a: 0x000a, 0x18b: 0x000a,\n\t0x18c: 0x000a, 0x18d: 0x000a, 0x18e: 0x000a, 0x18f: 0x000a,\n\t0x192: 0x000a, 0x193: 0x000a, 0x194: 0x000a, 0x195: 0x000a, 0x196: 0x000a, 0x197: 0x000a,\n\t0x198: 0x000a, 0x199: 0x000a, 0x19a: 0x000a, 0x19b: 0x000a, 0x19c: 0x000a, 0x19d: 0x000a,\n\t0x19e: 0x000a, 0x19f: 0x000a,\n\t0x1a5: 0x000a, 0x1a6: 0x000a, 0x1a7: 0x000a, 0x1a8: 0x000a, 0x1a9: 0x000a,\n\t0x1aa: 0x000a, 0x1ab: 0x000a, 0x1ac: 0x000a, 0x1ad: 0x000a, 0x1af: 0x000a,\n\t0x1b0: 0x000a, 0x1b1: 0x000a, 0x1b2: 0x000a, 0x1b3: 0x000a, 0x1b4: 0x000a, 0x1b5: 0x000a,\n\t0x1b6: 0x000a, 0x1b7: 0x000a, 0x1b8: 0x000a, 0x1b9: 0x000a, 0x1ba: 0x000a, 0x1bb: 0x000a,\n\t0x1bc: 0x000a, 0x1bd: 0x000a, 0x1be: 0x000a, 0x1bf: 0x000a,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x000c, 0x1c1: 0x000c, 0x1c2: 0x000c, 0x1c3: 0x000c, 0x1c4: 0x000c, 0x1c5: 0x000c,\n\t0x1c6: 0x000c, 0x1c7: 0x000c, 0x1c8: 0x000c, 0x1c9: 0x000c, 0x1ca: 0x000c, 0x1cb: 0x000c,\n\t0x1cc: 0x000c, 0x1cd: 0x000c, 0x1ce: 0x000c, 0x1cf: 0x000c, 0x1d0: 0x000c, 0x1d1: 0x000c,\n\t0x1d2: 0x000c, 0x1d3: 0x000c, 0x1d4: 0x000c, 0x1d5: 0x000c, 0x1d6: 0x000c, 0x1d7: 0x000c,\n\t0x1d8: 0x000c, 0x1d9: 0x000c, 0x1da: 0x000c, 0x1db: 0x000c, 0x1dc: 0x000c, 0x1dd: 0x000c,\n\t0x1de: 0x000c, 0x1df: 0x000c, 0x1e0: 0x000c, 0x1e1: 0x000c, 0x1e2: 0x000c, 0x1e3: 0x000c,\n\t0x1e4: 0x000c, 0x1e5: 0x000c, 0x1e6: 0x000c, 0x1e7: 0x000c, 0x1e8: 0x000c, 0x1e9: 0x000c,\n\t0x1ea: 0x000c, 0x1eb: 0x000c, 0x1ec: 0x000c, 0x1ed: 0x000c, 0x1ee: 0x000c, 0x1ef: 0x000c,\n\t0x1f0: 0x000c, 0x1f1: 0x000c, 0x1f2: 0x000c, 0x1f3: 0x000c, 0x1f4: 0x000c, 0x1f5: 0x000c,\n\t0x1f6: 0x000c, 0x1f7: 0x000c, 0x1f8: 0x000c, 0x1f9: 0x000c, 0x1fa: 0x000c, 0x1fb: 0x000c,\n\t0x1fc: 0x000c, 0x1fd: 0x000c, 0x1fe: 0x000c, 0x1ff: 0x000c,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x000c, 0x201: 0x000c, 0x202: 0x000c, 0x203: 0x000c, 0x204: 0x000c, 0x205: 0x000c,\n\t0x206: 0x000c, 0x207: 0x000c, 0x208: 0x000c, 0x209: 0x000c, 0x20a: 0x000c, 0x20b: 0x000c,\n\t0x20c: 0x000c, 0x20d: 0x000c, 0x20e: 0x000c, 0x20f: 0x000c, 0x210: 0x000c, 0x211: 0x000c,\n\t0x212: 0x000c, 0x213: 0x000c, 0x214: 0x000c, 0x215: 0x000c, 0x216: 0x000c, 0x217: 0x000c,\n\t0x218: 0x000c, 0x219: 0x000c, 0x21a: 0x000c, 0x21b: 0x000c, 0x21c: 0x000c, 0x21d: 0x000c,\n\t0x21e: 0x000c, 0x21f: 0x000c, 0x220: 0x000c, 0x221: 0x000c, 0x222: 0x000c, 0x223: 0x000c,\n\t0x224: 0x000c, 0x225: 0x000c, 0x226: 0x000c, 0x227: 0x000c, 0x228: 0x000c, 0x229: 0x000c,\n\t0x22a: 0x000c, 0x22b: 0x000c, 0x22c: 0x000c, 0x22d: 0x000c, 0x22e: 0x000c, 0x22f: 0x000c,\n\t0x234: 0x000a, 0x235: 0x000a,\n\t0x23e: 0x000a,\n\t// Block 0x9, offset 0x240\n\t0x244: 0x000a, 0x245: 0x000a,\n\t0x247: 0x000a,\n\t// Block 0xa, offset 0x280\n\t0x2b6: 0x000a,\n\t// Block 0xb, offset 0x2c0\n\t0x2c3: 0x000c, 0x2c4: 0x000c, 0x2c5: 0x000c,\n\t0x2c6: 0x000c, 0x2c7: 0x000c, 0x2c8: 0x000c, 0x2c9: 0x000c,\n\t// Block 0xc, offset 0x300\n\t0x30a: 0x000a,\n\t0x30d: 0x000a, 0x30e: 0x000a, 0x30f: 0x0004, 0x310: 0x0001, 0x311: 0x000c,\n\t0x312: 0x000c, 0x313: 0x000c, 0x314: 0x000c, 0x315: 0x000c, 0x316: 0x000c, 0x317: 0x000c,\n\t0x318: 0x000c, 0x319: 0x000c, 0x31a: 0x000c, 0x31b: 0x000c, 0x31c: 0x000c, 0x31d: 0x000c,\n\t0x31e: 0x000c, 0x31f: 0x000c, 0x320: 0x000c, 0x321: 0x000c, 0x322: 0x000c, 0x323: 0x000c,\n\t0x324: 0x000c, 0x325: 0x000c, 0x326: 0x000c, 0x327: 0x000c, 0x328: 0x000c, 0x329: 0x000c,\n\t0x32a: 0x000c, 0x32b: 0x000c, 0x32c: 0x000c, 0x32d: 0x000c, 0x32e: 0x000c, 0x32f: 0x000c,\n\t0x330: 0x000c, 0x331: 0x000c, 0x332: 0x000c, 0x333: 0x000c, 0x334: 0x000c, 0x335: 0x000c,\n\t0x336: 0x000c, 0x337: 0x000c, 0x338: 0x000c, 0x339: 0x000c, 0x33a: 0x000c, 0x33b: 0x000c,\n\t0x33c: 0x000c, 0x33d: 0x000c, 0x33e: 0x0001, 0x33f: 0x000c,\n\t// Block 0xd, offset 0x340\n\t0x340: 0x0001, 0x341: 0x000c, 0x342: 0x000c, 0x343: 0x0001, 0x344: 0x000c, 0x345: 0x000c,\n\t0x346: 0x0001, 0x347: 0x000c, 0x348: 0x0001, 0x349: 0x0001, 0x34a: 0x0001, 0x34b: 0x0001,\n\t0x34c: 0x0001, 0x34d: 0x0001, 0x34e: 0x0001, 0x34f: 0x0001, 0x350: 0x0001, 0x351: 0x0001,\n\t0x352: 0x0001, 0x353: 0x0001, 0x354: 0x0001, 0x355: 0x0001, 0x356: 0x0001, 0x357: 0x0001,\n\t0x358: 0x0001, 0x359: 0x0001, 0x35a: 0x0001, 0x35b: 0x0001, 0x35c: 0x0001, 0x35d: 0x0001,\n\t0x35e: 0x0001, 0x35f: 0x0001, 0x360: 0x0001, 0x361: 0x0001, 0x362: 0x0001, 0x363: 0x0001,\n\t0x364: 0x0001, 0x365: 0x0001, 0x366: 0x0001, 0x367: 0x0001, 0x368: 0x0001, 0x369: 0x0001,\n\t0x36a: 0x0001, 0x36b: 0x0001, 0x36c: 0x0001, 0x36d: 0x0001, 0x36e: 0x0001, 0x36f: 0x0001,\n\t0x370: 0x0001, 0x371: 0x0001, 0x372: 0x0001, 0x373: 0x0001, 0x374: 0x0001, 0x375: 0x0001,\n\t0x376: 0x0001, 0x377: 0x0001, 0x378: 0x0001, 0x379: 0x0001, 0x37a: 0x0001, 0x37b: 0x0001,\n\t0x37c: 0x0001, 0x37d: 0x0001, 0x37e: 0x0001, 0x37f: 0x0001,\n\t// Block 0xe, offset 0x380\n\t0x380: 0x0005, 0x381: 0x0005, 0x382: 0x0005, 0x383: 0x0005, 0x384: 0x0005, 0x385: 0x0005,\n\t0x386: 0x000a, 0x387: 0x000a, 0x388: 0x000d, 0x389: 0x0004, 0x38a: 0x0004, 0x38b: 0x000d,\n\t0x38c: 0x0006, 0x38d: 0x000d, 0x38e: 0x000a, 0x38f: 0x000a, 0x390: 0x000c, 0x391: 0x000c,\n\t0x392: 0x000c, 0x393: 0x000c, 0x394: 0x000c, 0x395: 0x000c, 0x396: 0x000c, 0x397: 0x000c,\n\t0x398: 0x000c, 0x399: 0x000c, 0x39a: 0x000c, 0x39b: 0x000d, 0x39c: 0x000d, 0x39d: 0x000d,\n\t0x39e: 0x000d, 0x39f: 0x000d, 0x3a0: 0x000d, 0x3a1: 0x000d, 0x3a2: 0x000d, 0x3a3: 0x000d,\n\t0x3a4: 0x000d, 0x3a5: 0x000d, 0x3a6: 0x000d, 0x3a7: 0x000d, 0x3a8: 0x000d, 0x3a9: 0x000d,\n\t0x3aa: 0x000d, 0x3ab: 0x000d, 0x3ac: 0x000d, 0x3ad: 0x000d, 0x3ae: 0x000d, 0x3af: 0x000d,\n\t0x3b0: 0x000d, 0x3b1: 0x000d, 0x3b2: 0x000d, 0x3b3: 0x000d, 0x3b4: 0x000d, 0x3b5: 0x000d,\n\t0x3b6: 0x000d, 0x3b7: 0x000d, 0x3b8: 0x000d, 0x3b9: 0x000d, 0x3ba: 0x000d, 0x3bb: 0x000d,\n\t0x3bc: 0x000d, 0x3bd: 0x000d, 0x3be: 0x000d, 0x3bf: 0x000d,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x000d, 0x3c1: 0x000d, 0x3c2: 0x000d, 0x3c3: 0x000d, 0x3c4: 0x000d, 0x3c5: 0x000d,\n\t0x3c6: 0x000d, 0x3c7: 0x000d, 0x3c8: 0x000d, 0x3c9: 0x000d, 0x3ca: 0x000d, 0x3cb: 0x000c,\n\t0x3cc: 0x000c, 0x3cd: 0x000c, 0x3ce: 0x000c, 0x3cf: 0x000c, 0x3d0: 0x000c, 0x3d1: 0x000c,\n\t0x3d2: 0x000c, 0x3d3: 0x000c, 0x3d4: 0x000c, 0x3d5: 0x000c, 0x3d6: 0x000c, 0x3d7: 0x000c,\n\t0x3d8: 0x000c, 0x3d9: 0x000c, 0x3da: 0x000c, 0x3db: 0x000c, 0x3dc: 0x000c, 0x3dd: 0x000c,\n\t0x3de: 0x000c, 0x3df: 0x000c, 0x3e0: 0x0005, 0x3e1: 0x0005, 0x3e2: 0x0005, 0x3e3: 0x0005,\n\t0x3e4: 0x0005, 0x3e5: 0x0005, 0x3e6: 0x0005, 0x3e7: 0x0005, 0x3e8: 0x0005, 0x3e9: 0x0005,\n\t0x3ea: 0x0004, 0x3eb: 0x0005, 0x3ec: 0x0005, 0x3ed: 0x000d, 0x3ee: 0x000d, 0x3ef: 0x000d,\n\t0x3f0: 0x000c, 0x3f1: 0x000d, 0x3f2: 0x000d, 0x3f3: 0x000d, 0x3f4: 0x000d, 0x3f5: 0x000d,\n\t0x3f6: 0x000d, 0x3f7: 0x000d, 0x3f8: 0x000d, 0x3f9: 0x000d, 0x3fa: 0x000d, 0x3fb: 0x000d,\n\t0x3fc: 0x000d, 0x3fd: 0x000d, 0x3fe: 0x000d, 0x3ff: 0x000d,\n\t// Block 0x10, offset 0x400\n\t0x400: 0x000d, 0x401: 0x000d, 0x402: 0x000d, 0x403: 0x000d, 0x404: 0x000d, 0x405: 0x000d,\n\t0x406: 0x000d, 0x407: 0x000d, 0x408: 0x000d, 0x409: 0x000d, 0x40a: 0x000d, 0x40b: 0x000d,\n\t0x40c: 0x000d, 0x40d: 0x000d, 0x40e: 0x000d, 0x40f: 0x000d, 0x410: 0x000d, 0x411: 0x000d,\n\t0x412: 0x000d, 0x413: 0x000d, 0x414: 0x000d, 0x415: 0x000d, 0x416: 0x000d, 0x417: 0x000d,\n\t0x418: 0x000d, 0x419: 0x000d, 0x41a: 0x000d, 0x41b: 0x000d, 0x41c: 0x000d, 0x41d: 0x000d,\n\t0x41e: 0x000d, 0x41f: 0x000d, 0x420: 0x000d, 0x421: 0x000d, 0x422: 0x000d, 0x423: 0x000d,\n\t0x424: 0x000d, 0x425: 0x000d, 0x426: 0x000d, 0x427: 0x000d, 0x428: 0x000d, 0x429: 0x000d,\n\t0x42a: 0x000d, 0x42b: 0x000d, 0x42c: 0x000d, 0x42d: 0x000d, 0x42e: 0x000d, 0x42f: 0x000d,\n\t0x430: 0x000d, 0x431: 0x000d, 0x432: 0x000d, 0x433: 0x000d, 0x434: 0x000d, 0x435: 0x000d,\n\t0x436: 0x000d, 0x437: 0x000d, 0x438: 0x000d, 0x439: 0x000d, 0x43a: 0x000d, 0x43b: 0x000d,\n\t0x43c: 0x000d, 0x43d: 0x000d, 0x43e: 0x000d, 0x43f: 0x000d,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x000d, 0x441: 0x000d, 0x442: 0x000d, 0x443: 0x000d, 0x444: 0x000d, 0x445: 0x000d,\n\t0x446: 0x000d, 0x447: 0x000d, 0x448: 0x000d, 0x449: 0x000d, 0x44a: 0x000d, 0x44b: 0x000d,\n\t0x44c: 0x000d, 0x44d: 0x000d, 0x44e: 0x000d, 0x44f: 0x000d, 0x450: 0x000d, 0x451: 0x000d,\n\t0x452: 0x000d, 0x453: 0x000d, 0x454: 0x000d, 0x455: 0x000d, 0x456: 0x000c, 0x457: 0x000c,\n\t0x458: 0x000c, 0x459: 0x000c, 0x45a: 0x000c, 0x45b: 0x000c, 0x45c: 0x000c, 0x45d: 0x0005,\n\t0x45e: 0x000a, 0x45f: 0x000c, 0x460: 0x000c, 0x461: 0x000c, 0x462: 0x000c, 0x463: 0x000c,\n\t0x464: 0x000c, 0x465: 0x000d, 0x466: 0x000d, 0x467: 0x000c, 0x468: 0x000c, 0x469: 0x000a,\n\t0x46a: 0x000c, 0x46b: 0x000c, 0x46c: 0x000c, 0x46d: 0x000c, 0x46e: 0x000d, 0x46f: 0x000d,\n\t0x470: 0x0002, 0x471: 0x0002, 0x472: 0x0002, 0x473: 0x0002, 0x474: 0x0002, 0x475: 0x0002,\n\t0x476: 0x0002, 0x477: 0x0002, 0x478: 0x0002, 0x479: 0x0002, 0x47a: 0x000d, 0x47b: 0x000d,\n\t0x47c: 0x000d, 0x47d: 0x000d, 0x47e: 0x000d, 0x47f: 0x000d,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x000d, 0x481: 0x000d, 0x482: 0x000d, 0x483: 0x000d, 0x484: 0x000d, 0x485: 0x000d,\n\t0x486: 0x000d, 0x487: 0x000d, 0x488: 0x000d, 0x489: 0x000d, 0x48a: 0x000d, 0x48b: 0x000d,\n\t0x48c: 0x000d, 0x48d: 0x000d, 0x48e: 0x000d, 0x48f: 0x000d, 0x490: 0x000d, 0x491: 0x000c,\n\t0x492: 0x000d, 0x493: 0x000d, 0x494: 0x000d, 0x495: 0x000d, 0x496: 0x000d, 0x497: 0x000d,\n\t0x498: 0x000d, 0x499: 0x000d, 0x49a: 0x000d, 0x49b: 0x000d, 0x49c: 0x000d, 0x49d: 0x000d,\n\t0x49e: 0x000d, 0x49f: 0x000d, 0x4a0: 0x000d, 0x4a1: 0x000d, 0x4a2: 0x000d, 0x4a3: 0x000d,\n\t0x4a4: 0x000d, 0x4a5: 0x000d, 0x4a6: 0x000d, 0x4a7: 0x000d, 0x4a8: 0x000d, 0x4a9: 0x000d,\n\t0x4aa: 0x000d, 0x4ab: 0x000d, 0x4ac: 0x000d, 0x4ad: 0x000d, 0x4ae: 0x000d, 0x4af: 0x000d,\n\t0x4b0: 0x000c, 0x4b1: 0x000c, 0x4b2: 0x000c, 0x4b3: 0x000c, 0x4b4: 0x000c, 0x4b5: 0x000c,\n\t0x4b6: 0x000c, 0x4b7: 0x000c, 0x4b8: 0x000c, 0x4b9: 0x000c, 0x4ba: 0x000c, 0x4bb: 0x000c,\n\t0x4bc: 0x000c, 0x4bd: 0x000c, 0x4be: 0x000c, 0x4bf: 0x000c,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x000c, 0x4c1: 0x000c, 0x4c2: 0x000c, 0x4c3: 0x000c, 0x4c4: 0x000c, 0x4c5: 0x000c,\n\t0x4c6: 0x000c, 0x4c7: 0x000c, 0x4c8: 0x000c, 0x4c9: 0x000c, 0x4ca: 0x000c, 0x4cb: 0x000d,\n\t0x4cc: 0x000d, 0x4cd: 0x000d, 0x4ce: 0x000d, 0x4cf: 0x000d, 0x4d0: 0x000d, 0x4d1: 0x000d,\n\t0x4d2: 0x000d, 0x4d3: 0x000d, 0x4d4: 0x000d, 0x4d5: 0x000d, 0x4d6: 0x000d, 0x4d7: 0x000d,\n\t0x4d8: 0x000d, 0x4d9: 0x000d, 0x4da: 0x000d, 0x4db: 0x000d, 0x4dc: 0x000d, 0x4dd: 0x000d,\n\t0x4de: 0x000d, 0x4df: 0x000d, 0x4e0: 0x000d, 0x4e1: 0x000d, 0x4e2: 0x000d, 0x4e3: 0x000d,\n\t0x4e4: 0x000d, 0x4e5: 0x000d, 0x4e6: 0x000d, 0x4e7: 0x000d, 0x4e8: 0x000d, 0x4e9: 0x000d,\n\t0x4ea: 0x000d, 0x4eb: 0x000d, 0x4ec: 0x000d, 0x4ed: 0x000d, 0x4ee: 0x000d, 0x4ef: 0x000d,\n\t0x4f0: 0x000d, 0x4f1: 0x000d, 0x4f2: 0x000d, 0x4f3: 0x000d, 0x4f4: 0x000d, 0x4f5: 0x000d,\n\t0x4f6: 0x000d, 0x4f7: 0x000d, 0x4f8: 0x000d, 0x4f9: 0x000d, 0x4fa: 0x000d, 0x4fb: 0x000d,\n\t0x4fc: 0x000d, 0x4fd: 0x000d, 0x4fe: 0x000d, 0x4ff: 0x000d,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x000d, 0x501: 0x000d, 0x502: 0x000d, 0x503: 0x000d, 0x504: 0x000d, 0x505: 0x000d,\n\t0x506: 0x000d, 0x507: 0x000d, 0x508: 0x000d, 0x509: 0x000d, 0x50a: 0x000d, 0x50b: 0x000d,\n\t0x50c: 0x000d, 0x50d: 0x000d, 0x50e: 0x000d, 0x50f: 0x000d, 0x510: 0x000d, 0x511: 0x000d,\n\t0x512: 0x000d, 0x513: 0x000d, 0x514: 0x000d, 0x515: 0x000d, 0x516: 0x000d, 0x517: 0x000d,\n\t0x518: 0x000d, 0x519: 0x000d, 0x51a: 0x000d, 0x51b: 0x000d, 0x51c: 0x000d, 0x51d: 0x000d,\n\t0x51e: 0x000d, 0x51f: 0x000d, 0x520: 0x000d, 0x521: 0x000d, 0x522: 0x000d, 0x523: 0x000d,\n\t0x524: 0x000d, 0x525: 0x000d, 0x526: 0x000c, 0x527: 0x000c, 0x528: 0x000c, 0x529: 0x000c,\n\t0x52a: 0x000c, 0x52b: 0x000c, 0x52c: 0x000c, 0x52d: 0x000c, 0x52e: 0x000c, 0x52f: 0x000c,\n\t0x530: 0x000c, 0x531: 0x000d, 0x532: 0x000d, 0x533: 0x000d, 0x534: 0x000d, 0x535: 0x000d,\n\t0x536: 0x000d, 0x537: 0x000d, 0x538: 0x000d, 0x539: 0x000d, 0x53a: 0x000d, 0x53b: 0x000d,\n\t0x53c: 0x000d, 0x53d: 0x000d, 0x53e: 0x000d, 0x53f: 0x000d,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x0001, 0x541: 0x0001, 0x542: 0x0001, 0x543: 0x0001, 0x544: 0x0001, 0x545: 0x0001,\n\t0x546: 0x0001, 0x547: 0x0001, 0x548: 0x0001, 0x549: 0x0001, 0x54a: 0x0001, 0x54b: 0x0001,\n\t0x54c: 0x0001, 0x54d: 0x0001, 0x54e: 0x0001, 0x54f: 0x0001, 0x550: 0x0001, 0x551: 0x0001,\n\t0x552: 0x0001, 0x553: 0x0001, 0x554: 0x0001, 0x555: 0x0001, 0x556: 0x0001, 0x557: 0x0001,\n\t0x558: 0x0001, 0x559: 0x0001, 0x55a: 0x0001, 0x55b: 0x0001, 0x55c: 0x0001, 0x55d: 0x0001,\n\t0x55e: 0x0001, 0x55f: 0x0001, 0x560: 0x0001, 0x561: 0x0001, 0x562: 0x0001, 0x563: 0x0001,\n\t0x564: 0x0001, 0x565: 0x0001, 0x566: 0x0001, 0x567: 0x0001, 0x568: 0x0001, 0x569: 0x0001,\n\t0x56a: 0x0001, 0x56b: 0x000c, 0x56c: 0x000c, 0x56d: 0x000c, 0x56e: 0x000c, 0x56f: 0x000c,\n\t0x570: 0x000c, 0x571: 0x000c, 0x572: 0x000c, 0x573: 0x000c, 0x574: 0x0001, 0x575: 0x0001,\n\t0x576: 0x000a, 0x577: 0x000a, 0x578: 0x000a, 0x579: 0x000a, 0x57a: 0x0001, 0x57b: 0x0001,\n\t0x57c: 0x0001, 0x57d: 0x000c, 0x57e: 0x0001, 0x57f: 0x0001,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x0001, 0x581: 0x0001, 0x582: 0x0001, 0x583: 0x0001, 0x584: 0x0001, 0x585: 0x0001,\n\t0x586: 0x0001, 0x587: 0x0001, 0x588: 0x0001, 0x589: 0x0001, 0x58a: 0x0001, 0x58b: 0x0001,\n\t0x58c: 0x0001, 0x58d: 0x0001, 0x58e: 0x0001, 0x58f: 0x0001, 0x590: 0x0001, 0x591: 0x0001,\n\t0x592: 0x0001, 0x593: 0x0001, 0x594: 0x0001, 0x595: 0x0001, 0x596: 0x000c, 0x597: 0x000c,\n\t0x598: 0x000c, 0x599: 0x000c, 0x59a: 0x0001, 0x59b: 0x000c, 0x59c: 0x000c, 0x59d: 0x000c,\n\t0x59e: 0x000c, 0x59f: 0x000c, 0x5a0: 0x000c, 0x5a1: 0x000c, 0x5a2: 0x000c, 0x5a3: 0x000c,\n\t0x5a4: 0x0001, 0x5a5: 0x000c, 0x5a6: 0x000c, 0x5a7: 0x000c, 0x5a8: 0x0001, 0x5a9: 0x000c,\n\t0x5aa: 0x000c, 0x5ab: 0x000c, 0x5ac: 0x000c, 0x5ad: 0x000c, 0x5ae: 0x0001, 0x5af: 0x0001,\n\t0x5b0: 0x0001, 0x5b1: 0x0001, 0x5b2: 0x0001, 0x5b3: 0x0001, 0x5b4: 0x0001, 0x5b5: 0x0001,\n\t0x5b6: 0x0001, 0x5b7: 0x0001, 0x5b8: 0x0001, 0x5b9: 0x0001, 0x5ba: 0x0001, 0x5bb: 0x0001,\n\t0x5bc: 0x0001, 0x5bd: 0x0001, 0x5be: 0x0001, 0x5bf: 0x0001,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x0001, 0x5c1: 0x0001, 0x5c2: 0x0001, 0x5c3: 0x0001, 0x5c4: 0x0001, 0x5c5: 0x0001,\n\t0x5c6: 0x0001, 0x5c7: 0x0001, 0x5c8: 0x0001, 0x5c9: 0x0001, 0x5ca: 0x0001, 0x5cb: 0x0001,\n\t0x5cc: 0x0001, 0x5cd: 0x0001, 0x5ce: 0x0001, 0x5cf: 0x0001, 0x5d0: 0x0001, 0x5d1: 0x0001,\n\t0x5d2: 0x0001, 0x5d3: 0x0001, 0x5d4: 0x0001, 0x5d5: 0x0001, 0x5d6: 0x0001, 0x5d7: 0x0001,\n\t0x5d8: 0x0001, 0x5d9: 0x000c, 0x5da: 0x000c, 0x5db: 0x000c, 0x5dc: 0x0001, 0x5dd: 0x0001,\n\t0x5de: 0x0001, 0x5df: 0x0001, 0x5e0: 0x000d, 0x5e1: 0x000d, 0x5e2: 0x000d, 0x5e3: 0x000d,\n\t0x5e4: 0x000d, 0x5e5: 0x000d, 0x5e6: 0x000d, 0x5e7: 0x000d, 0x5e8: 0x000d, 0x5e9: 0x000d,\n\t0x5ea: 0x000d, 0x5eb: 0x000d, 0x5ec: 0x000d, 0x5ed: 0x000d, 0x5ee: 0x000d, 0x5ef: 0x000d,\n\t0x5f0: 0x0001, 0x5f1: 0x0001, 0x5f2: 0x0001, 0x5f3: 0x0001, 0x5f4: 0x0001, 0x5f5: 0x0001,\n\t0x5f6: 0x0001, 0x5f7: 0x0001, 0x5f8: 0x0001, 0x5f9: 0x0001, 0x5fa: 0x0001, 0x5fb: 0x0001,\n\t0x5fc: 0x0001, 0x5fd: 0x0001, 0x5fe: 0x0001, 0x5ff: 0x0001,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x0001, 0x601: 0x0001, 0x602: 0x0001, 0x603: 0x0001, 0x604: 0x0001, 0x605: 0x0001,\n\t0x606: 0x0001, 0x607: 0x0001, 0x608: 0x0001, 0x609: 0x0001, 0x60a: 0x0001, 0x60b: 0x0001,\n\t0x60c: 0x0001, 0x60d: 0x0001, 0x60e: 0x0001, 0x60f: 0x0001, 0x610: 0x0001, 0x611: 0x0001,\n\t0x612: 0x0001, 0x613: 0x0001, 0x614: 0x0001, 0x615: 0x0001, 0x616: 0x0001, 0x617: 0x0001,\n\t0x618: 0x0001, 0x619: 0x0001, 0x61a: 0x0001, 0x61b: 0x0001, 0x61c: 0x0001, 0x61d: 0x0001,\n\t0x61e: 0x0001, 0x61f: 0x0001, 0x620: 0x000d, 0x621: 0x000d, 0x622: 0x000d, 0x623: 0x000d,\n\t0x624: 0x000d, 0x625: 0x000d, 0x626: 0x000d, 0x627: 0x000d, 0x628: 0x000d, 0x629: 0x000d,\n\t0x62a: 0x000d, 0x62b: 0x000d, 0x62c: 0x000d, 0x62d: 0x000d, 0x62e: 0x000d, 0x62f: 0x000d,\n\t0x630: 0x000d, 0x631: 0x000d, 0x632: 0x000d, 0x633: 0x000d, 0x634: 0x000d, 0x635: 0x000d,\n\t0x636: 0x000d, 0x637: 0x000d, 0x638: 0x000d, 0x639: 0x000d, 0x63a: 0x000d, 0x63b: 0x000d,\n\t0x63c: 0x000d, 0x63d: 0x000d, 0x63e: 0x000d, 0x63f: 0x000d,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x000d, 0x641: 0x000d, 0x642: 0x000d, 0x643: 0x000d, 0x644: 0x000d, 0x645: 0x000d,\n\t0x646: 0x000d, 0x647: 0x000d, 0x648: 0x000d, 0x649: 0x000d, 0x64a: 0x000d, 0x64b: 0x000d,\n\t0x64c: 0x000d, 0x64d: 0x000d, 0x64e: 0x000d, 0x64f: 0x000d, 0x650: 0x000d, 0x651: 0x000d,\n\t0x652: 0x000d, 0x653: 0x000c, 0x654: 0x000c, 0x655: 0x000c, 0x656: 0x000c, 0x657: 0x000c,\n\t0x658: 0x000c, 0x659: 0x000c, 0x65a: 0x000c, 0x65b: 0x000c, 0x65c: 0x000c, 0x65d: 0x000c,\n\t0x65e: 0x000c, 0x65f: 0x000c, 0x660: 0x000c, 0x661: 0x000c, 0x662: 0x0005, 0x663: 0x000c,\n\t0x664: 0x000c, 0x665: 0x000c, 0x666: 0x000c, 0x667: 0x000c, 0x668: 0x000c, 0x669: 0x000c,\n\t0x66a: 0x000c, 0x66b: 0x000c, 0x66c: 0x000c, 0x66d: 0x000c, 0x66e: 0x000c, 0x66f: 0x000c,\n\t0x670: 0x000c, 0x671: 0x000c, 0x672: 0x000c, 0x673: 0x000c, 0x674: 0x000c, 0x675: 0x000c,\n\t0x676: 0x000c, 0x677: 0x000c, 0x678: 0x000c, 0x679: 0x000c, 0x67a: 0x000c, 0x67b: 0x000c,\n\t0x67c: 0x000c, 0x67d: 0x000c, 0x67e: 0x000c, 0x67f: 0x000c,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x000c, 0x681: 0x000c, 0x682: 0x000c,\n\t0x6ba: 0x000c,\n\t0x6bc: 0x000c,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c1: 0x000c, 0x6c2: 0x000c, 0x6c3: 0x000c, 0x6c4: 0x000c, 0x6c5: 0x000c,\n\t0x6c6: 0x000c, 0x6c7: 0x000c, 0x6c8: 0x000c,\n\t0x6cd: 0x000c, 0x6d1: 0x000c,\n\t0x6d2: 0x000c, 0x6d3: 0x000c, 0x6d4: 0x000c, 0x6d5: 0x000c, 0x6d6: 0x000c, 0x6d7: 0x000c,\n\t0x6e2: 0x000c, 0x6e3: 0x000c,\n\t// Block 0x1c, offset 0x700\n\t0x701: 0x000c,\n\t0x73c: 0x000c,\n\t// Block 0x1d, offset 0x740\n\t0x741: 0x000c, 0x742: 0x000c, 0x743: 0x000c, 0x744: 0x000c,\n\t0x74d: 0x000c,\n\t0x762: 0x000c, 0x763: 0x000c,\n\t0x772: 0x0004, 0x773: 0x0004,\n\t0x77b: 0x0004,\n\t0x77e: 0x000c,\n\t// Block 0x1e, offset 0x780\n\t0x781: 0x000c, 0x782: 0x000c,\n\t0x7bc: 0x000c,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c1: 0x000c, 0x7c2: 0x000c,\n\t0x7c7: 0x000c, 0x7c8: 0x000c, 0x7cb: 0x000c,\n\t0x7cc: 0x000c, 0x7cd: 0x000c, 0x7d1: 0x000c,\n\t0x7f0: 0x000c, 0x7f1: 0x000c, 0x7f5: 0x000c,\n\t// Block 0x20, offset 0x800\n\t0x801: 0x000c, 0x802: 0x000c, 0x803: 0x000c, 0x804: 0x000c, 0x805: 0x000c,\n\t0x807: 0x000c, 0x808: 0x000c,\n\t0x80d: 0x000c,\n\t0x822: 0x000c, 0x823: 0x000c,\n\t0x831: 0x0004,\n\t0x83a: 0x000c, 0x83b: 0x000c,\n\t0x83c: 0x000c, 0x83d: 0x000c, 0x83e: 0x000c, 0x83f: 0x000c,\n\t// Block 0x21, offset 0x840\n\t0x841: 0x000c,\n\t0x87c: 0x000c, 0x87f: 0x000c,\n\t// Block 0x22, offset 0x880\n\t0x881: 0x000c, 0x882: 0x000c, 0x883: 0x000c, 0x884: 0x000c,\n\t0x88d: 0x000c,\n\t0x896: 0x000c,\n\t0x8a2: 0x000c, 0x8a3: 0x000c,\n\t// Block 0x23, offset 0x8c0\n\t0x8c2: 0x000c,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x000c,\n\t0x90d: 0x000c,\n\t0x933: 0x000a, 0x934: 0x000a, 0x935: 0x000a,\n\t0x936: 0x000a, 0x937: 0x000a, 0x938: 0x000a, 0x939: 0x0004, 0x93a: 0x000a,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x000c, 0x944: 0x000c,\n\t0x97e: 0x000c, 0x97f: 0x000c,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x000c,\n\t0x986: 0x000c, 0x987: 0x000c, 0x988: 0x000c, 0x98a: 0x000c, 0x98b: 0x000c,\n\t0x98c: 0x000c, 0x98d: 0x000c,\n\t0x995: 0x000c, 0x996: 0x000c,\n\t0x9a2: 0x000c, 0x9a3: 0x000c,\n\t0x9b8: 0x000a, 0x9b9: 0x000a, 0x9ba: 0x000a, 0x9bb: 0x000a,\n\t0x9bc: 0x000a, 0x9bd: 0x000a, 0x9be: 0x000a,\n\t// Block 0x27, offset 0x9c0\n\t0x9cc: 0x000c, 0x9cd: 0x000c,\n\t0x9e2: 0x000c, 0x9e3: 0x000c,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x000c, 0xa01: 0x000c,\n\t0xa3b: 0x000c,\n\t0xa3c: 0x000c,\n\t// Block 0x29, offset 0xa40\n\t0xa41: 0x000c, 0xa42: 0x000c, 0xa43: 0x000c, 0xa44: 0x000c,\n\t0xa4d: 0x000c,\n\t0xa62: 0x000c, 0xa63: 0x000c,\n\t// Block 0x2a, offset 0xa80\n\t0xa8a: 0x000c,\n\t0xa92: 0x000c, 0xa93: 0x000c, 0xa94: 0x000c, 0xa96: 0x000c,\n\t// Block 0x2b, offset 0xac0\n\t0xaf1: 0x000c, 0xaf4: 0x000c, 0xaf5: 0x000c,\n\t0xaf6: 0x000c, 0xaf7: 0x000c, 0xaf8: 0x000c, 0xaf9: 0x000c, 0xafa: 0x000c,\n\t0xaff: 0x0004,\n\t// Block 0x2c, offset 0xb00\n\t0xb07: 0x000c, 0xb08: 0x000c, 0xb09: 0x000c, 0xb0a: 0x000c, 0xb0b: 0x000c,\n\t0xb0c: 0x000c, 0xb0d: 0x000c, 0xb0e: 0x000c,\n\t// Block 0x2d, offset 0xb40\n\t0xb71: 0x000c, 0xb74: 0x000c, 0xb75: 0x000c,\n\t0xb76: 0x000c, 0xb77: 0x000c, 0xb78: 0x000c, 0xb79: 0x000c, 0xb7a: 0x000c, 0xb7b: 0x000c,\n\t0xb7c: 0x000c,\n\t// Block 0x2e, offset 0xb80\n\t0xb88: 0x000c, 0xb89: 0x000c, 0xb8a: 0x000c, 0xb8b: 0x000c,\n\t0xb8c: 0x000c, 0xb8d: 0x000c,\n\t// Block 0x2f, offset 0xbc0\n\t0xbd8: 0x000c, 0xbd9: 0x000c,\n\t0xbf5: 0x000c,\n\t0xbf7: 0x000c, 0xbf9: 0x000c, 0xbfa: 0x003a, 0xbfb: 0x002a,\n\t0xbfc: 0x003a, 0xbfd: 0x002a,\n\t// Block 0x30, offset 0xc00\n\t0xc31: 0x000c, 0xc32: 0x000c, 0xc33: 0x000c, 0xc34: 0x000c, 0xc35: 0x000c,\n\t0xc36: 0x000c, 0xc37: 0x000c, 0xc38: 0x000c, 0xc39: 0x000c, 0xc3a: 0x000c, 0xc3b: 0x000c,\n\t0xc3c: 0x000c, 0xc3d: 0x000c, 0xc3e: 0x000c,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x000c, 0xc41: 0x000c, 0xc42: 0x000c, 0xc43: 0x000c, 0xc44: 0x000c,\n\t0xc46: 0x000c, 0xc47: 0x000c,\n\t0xc4d: 0x000c, 0xc4e: 0x000c, 0xc4f: 0x000c, 0xc50: 0x000c, 0xc51: 0x000c,\n\t0xc52: 0x000c, 0xc53: 0x000c, 0xc54: 0x000c, 0xc55: 0x000c, 0xc56: 0x000c, 0xc57: 0x000c,\n\t0xc59: 0x000c, 0xc5a: 0x000c, 0xc5b: 0x000c, 0xc5c: 0x000c, 0xc5d: 0x000c,\n\t0xc5e: 0x000c, 0xc5f: 0x000c, 0xc60: 0x000c, 0xc61: 0x000c, 0xc62: 0x000c, 0xc63: 0x000c,\n\t0xc64: 0x000c, 0xc65: 0x000c, 0xc66: 0x000c, 0xc67: 0x000c, 0xc68: 0x000c, 0xc69: 0x000c,\n\t0xc6a: 0x000c, 0xc6b: 0x000c, 0xc6c: 0x000c, 0xc6d: 0x000c, 0xc6e: 0x000c, 0xc6f: 0x000c,\n\t0xc70: 0x000c, 0xc71: 0x000c, 0xc72: 0x000c, 0xc73: 0x000c, 0xc74: 0x000c, 0xc75: 0x000c,\n\t0xc76: 0x000c, 0xc77: 0x000c, 0xc78: 0x000c, 0xc79: 0x000c, 0xc7a: 0x000c, 0xc7b: 0x000c,\n\t0xc7c: 0x000c,\n\t// Block 0x32, offset 0xc80\n\t0xc86: 0x000c,\n\t// Block 0x33, offset 0xcc0\n\t0xced: 0x000c, 0xcee: 0x000c, 0xcef: 0x000c,\n\t0xcf0: 0x000c, 0xcf2: 0x000c, 0xcf3: 0x000c, 0xcf4: 0x000c, 0xcf5: 0x000c,\n\t0xcf6: 0x000c, 0xcf7: 0x000c, 0xcf9: 0x000c, 0xcfa: 0x000c,\n\t0xcfd: 0x000c, 0xcfe: 0x000c,\n\t// Block 0x34, offset 0xd00\n\t0xd18: 0x000c, 0xd19: 0x000c,\n\t0xd1e: 0x000c, 0xd1f: 0x000c, 0xd20: 0x000c,\n\t0xd31: 0x000c, 0xd32: 0x000c, 0xd33: 0x000c, 0xd34: 0x000c,\n\t// Block 0x35, offset 0xd40\n\t0xd42: 0x000c, 0xd45: 0x000c,\n\t0xd46: 0x000c,\n\t0xd4d: 0x000c,\n\t0xd5d: 0x000c,\n\t// Block 0x36, offset 0xd80\n\t0xd9d: 0x000c,\n\t0xd9e: 0x000c, 0xd9f: 0x000c,\n\t// Block 0x37, offset 0xdc0\n\t0xdd0: 0x000a, 0xdd1: 0x000a,\n\t0xdd2: 0x000a, 0xdd3: 0x000a, 0xdd4: 0x000a, 0xdd5: 0x000a, 0xdd6: 0x000a, 0xdd7: 0x000a,\n\t0xdd8: 0x000a, 0xdd9: 0x000a,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0x000a,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x0009,\n\t0xe5b: 0x007a, 0xe5c: 0x006a,\n\t// Block 0x3a, offset 0xe80\n\t0xe92: 0x000c, 0xe93: 0x000c, 0xe94: 0x000c,\n\t0xeb2: 0x000c, 0xeb3: 0x000c, 0xeb4: 0x000c,\n\t// Block 0x3b, offset 0xec0\n\t0xed2: 0x000c, 0xed3: 0x000c,\n\t0xef2: 0x000c, 0xef3: 0x000c,\n\t// Block 0x3c, offset 0xf00\n\t0xf34: 0x000c, 0xf35: 0x000c,\n\t0xf37: 0x000c, 0xf38: 0x000c, 0xf39: 0x000c, 0xf3a: 0x000c, 0xf3b: 0x000c,\n\t0xf3c: 0x000c, 0xf3d: 0x000c,\n\t// Block 0x3d, offset 0xf40\n\t0xf46: 0x000c, 0xf49: 0x000c, 0xf4a: 0x000c, 0xf4b: 0x000c,\n\t0xf4c: 0x000c, 0xf4d: 0x000c, 0xf4e: 0x000c, 0xf4f: 0x000c, 0xf50: 0x000c, 0xf51: 0x000c,\n\t0xf52: 0x000c, 0xf53: 0x000c,\n\t0xf5b: 0x0004, 0xf5d: 0x000c,\n\t0xf70: 0x000a, 0xf71: 0x000a, 0xf72: 0x000a, 0xf73: 0x000a, 0xf74: 0x000a, 0xf75: 0x000a,\n\t0xf76: 0x000a, 0xf77: 0x000a, 0xf78: 0x000a, 0xf79: 0x000a,\n\t// Block 0x3e, offset 0xf80\n\t0xf80: 0x000a, 0xf81: 0x000a, 0xf82: 0x000a, 0xf83: 0x000a, 0xf84: 0x000a, 0xf85: 0x000a,\n\t0xf86: 0x000a, 0xf87: 0x000a, 0xf88: 0x000a, 0xf89: 0x000a, 0xf8a: 0x000a, 0xf8b: 0x000c,\n\t0xf8c: 0x000c, 0xf8d: 0x000c, 0xf8e: 0x000b,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc5: 0x000c,\n\t0xfc6: 0x000c,\n\t0xfe9: 0x000c,\n\t// Block 0x40, offset 0x1000\n\t0x1020: 0x000c, 0x1021: 0x000c, 0x1022: 0x000c,\n\t0x1027: 0x000c, 0x1028: 0x000c,\n\t0x1032: 0x000c,\n\t0x1039: 0x000c, 0x103a: 0x000c, 0x103b: 0x000c,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x000a, 0x1044: 0x000a, 0x1045: 0x000a,\n\t// Block 0x42, offset 0x1080\n\t0x109e: 0x000a, 0x109f: 0x000a, 0x10a0: 0x000a, 0x10a1: 0x000a, 0x10a2: 0x000a, 0x10a3: 0x000a,\n\t0x10a4: 0x000a, 0x10a5: 0x000a, 0x10a6: 0x000a, 0x10a7: 0x000a, 0x10a8: 0x000a, 0x10a9: 0x000a,\n\t0x10aa: 0x000a, 0x10ab: 0x000a, 0x10ac: 0x000a, 0x10ad: 0x000a, 0x10ae: 0x000a, 0x10af: 0x000a,\n\t0x10b0: 0x000a, 0x10b1: 0x000a, 0x10b2: 0x000a, 0x10b3: 0x000a, 0x10b4: 0x000a, 0x10b5: 0x000a,\n\t0x10b6: 0x000a, 0x10b7: 0x000a, 0x10b8: 0x000a, 0x10b9: 0x000a, 0x10ba: 0x000a, 0x10bb: 0x000a,\n\t0x10bc: 0x000a, 0x10bd: 0x000a, 0x10be: 0x000a, 0x10bf: 0x000a,\n\t// Block 0x43, offset 0x10c0\n\t0x10d7: 0x000c,\n\t0x10d8: 0x000c, 0x10db: 0x000c,\n\t// Block 0x44, offset 0x1100\n\t0x1116: 0x000c,\n\t0x1118: 0x000c, 0x1119: 0x000c, 0x111a: 0x000c, 0x111b: 0x000c, 0x111c: 0x000c, 0x111d: 0x000c,\n\t0x111e: 0x000c, 0x1120: 0x000c, 0x1122: 0x000c,\n\t0x1125: 0x000c, 0x1126: 0x000c, 0x1127: 0x000c, 0x1128: 0x000c, 0x1129: 0x000c,\n\t0x112a: 0x000c, 0x112b: 0x000c, 0x112c: 0x000c,\n\t0x1133: 0x000c, 0x1134: 0x000c, 0x1135: 0x000c,\n\t0x1136: 0x000c, 0x1137: 0x000c, 0x1138: 0x000c, 0x1139: 0x000c, 0x113a: 0x000c, 0x113b: 0x000c,\n\t0x113c: 0x000c, 0x113f: 0x000c,\n\t// Block 0x45, offset 0x1140\n\t0x1170: 0x000c, 0x1171: 0x000c, 0x1172: 0x000c, 0x1173: 0x000c, 0x1174: 0x000c, 0x1175: 0x000c,\n\t0x1176: 0x000c, 0x1177: 0x000c, 0x1178: 0x000c, 0x1179: 0x000c, 0x117a: 0x000c, 0x117b: 0x000c,\n\t0x117c: 0x000c, 0x117d: 0x000c, 0x117e: 0x000c,\n\t// Block 0x46, offset 0x1180\n\t0x1180: 0x000c, 0x1181: 0x000c, 0x1182: 0x000c, 0x1183: 0x000c,\n\t0x11b4: 0x000c,\n\t0x11b6: 0x000c, 0x11b7: 0x000c, 0x11b8: 0x000c, 0x11b9: 0x000c, 0x11ba: 0x000c,\n\t0x11bc: 0x000c,\n\t// Block 0x47, offset 0x11c0\n\t0x11c2: 0x000c,\n\t0x11eb: 0x000c, 0x11ec: 0x000c, 0x11ed: 0x000c, 0x11ee: 0x000c, 0x11ef: 0x000c,\n\t0x11f0: 0x000c, 0x11f1: 0x000c, 0x11f2: 0x000c, 0x11f3: 0x000c,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0x000c, 0x1201: 0x000c,\n\t0x1222: 0x000c, 0x1223: 0x000c,\n\t0x1224: 0x000c, 0x1225: 0x000c, 0x1228: 0x000c, 0x1229: 0x000c,\n\t0x122b: 0x000c, 0x122c: 0x000c, 0x122d: 0x000c,\n\t// Block 0x49, offset 0x1240\n\t0x1266: 0x000c, 0x1268: 0x000c, 0x1269: 0x000c,\n\t0x126d: 0x000c, 0x126f: 0x000c,\n\t0x1270: 0x000c, 0x1271: 0x000c,\n\t// Block 0x4a, offset 0x1280\n\t0x12ac: 0x000c, 0x12ad: 0x000c, 0x12ae: 0x000c, 0x12af: 0x000c,\n\t0x12b0: 0x000c, 0x12b1: 0x000c, 0x12b2: 0x000c, 0x12b3: 0x000c,\n\t0x12b6: 0x000c, 0x12b7: 0x000c,\n\t// Block 0x4b, offset 0x12c0\n\t0x12d0: 0x000c, 0x12d1: 0x000c,\n\t0x12d2: 0x000c, 0x12d4: 0x000c, 0x12d5: 0x000c, 0x12d6: 0x000c, 0x12d7: 0x000c,\n\t0x12d8: 0x000c, 0x12d9: 0x000c, 0x12da: 0x000c, 0x12db: 0x000c, 0x12dc: 0x000c, 0x12dd: 0x000c,\n\t0x12de: 0x000c, 0x12df: 0x000c, 0x12e0: 0x000c, 0x12e2: 0x000c, 0x12e3: 0x000c,\n\t0x12e4: 0x000c, 0x12e5: 0x000c, 0x12e6: 0x000c, 0x12e7: 0x000c, 0x12e8: 0x000c,\n\t0x12ed: 0x000c,\n\t0x12f4: 0x000c,\n\t0x12f8: 0x000c, 0x12f9: 0x000c,\n\t// Block 0x4c, offset 0x1300\n\t0x1300: 0x000c, 0x1301: 0x000c, 0x1302: 0x000c, 0x1303: 0x000c, 0x1304: 0x000c, 0x1305: 0x000c,\n\t0x1306: 0x000c, 0x1307: 0x000c, 0x1308: 0x000c, 0x1309: 0x000c, 0x130a: 0x000c, 0x130b: 0x000c,\n\t0x130c: 0x000c, 0x130d: 0x000c, 0x130e: 0x000c, 0x130f: 0x000c, 0x1310: 0x000c, 0x1311: 0x000c,\n\t0x1312: 0x000c, 0x1313: 0x000c, 0x1314: 0x000c, 0x1315: 0x000c, 0x1316: 0x000c, 0x1317: 0x000c,\n\t0x1318: 0x000c, 0x1319: 0x000c, 0x131a: 0x000c, 0x131b: 0x000c, 0x131c: 0x000c, 0x131d: 0x000c,\n\t0x131e: 0x000c, 0x131f: 0x000c, 0x1320: 0x000c, 0x1321: 0x000c, 0x1322: 0x000c, 0x1323: 0x000c,\n\t0x1324: 0x000c, 0x1325: 0x000c, 0x1326: 0x000c, 0x1327: 0x000c, 0x1328: 0x000c, 0x1329: 0x000c,\n\t0x132a: 0x000c, 0x132b: 0x000c, 0x132c: 0x000c, 0x132d: 0x000c, 0x132e: 0x000c, 0x132f: 0x000c,\n\t0x1330: 0x000c, 0x1331: 0x000c, 0x1332: 0x000c, 0x1333: 0x000c, 0x1334: 0x000c, 0x1335: 0x000c,\n\t0x1336: 0x000c, 0x1337: 0x000c, 0x1338: 0x000c, 0x1339: 0x000c, 0x133b: 0x000c,\n\t0x133c: 0x000c, 0x133d: 0x000c, 0x133e: 0x000c, 0x133f: 0x000c,\n\t// Block 0x4d, offset 0x1340\n\t0x137d: 0x000a, 0x137f: 0x000a,\n\t// Block 0x4e, offset 0x1380\n\t0x1380: 0x000a, 0x1381: 0x000a,\n\t0x138d: 0x000a, 0x138e: 0x000a, 0x138f: 0x000a,\n\t0x139d: 0x000a,\n\t0x139e: 0x000a, 0x139f: 0x000a,\n\t0x13ad: 0x000a, 0x13ae: 0x000a, 0x13af: 0x000a,\n\t0x13bd: 0x000a, 0x13be: 0x000a,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c0: 0x0009, 0x13c1: 0x0009, 0x13c2: 0x0009, 0x13c3: 0x0009, 0x13c4: 0x0009, 0x13c5: 0x0009,\n\t0x13c6: 0x0009, 0x13c7: 0x0009, 0x13c8: 0x0009, 0x13c9: 0x0009, 0x13ca: 0x0009, 0x13cb: 0x000b,\n\t0x13cc: 0x000b, 0x13cd: 0x000b, 0x13cf: 0x0001, 0x13d0: 0x000a, 0x13d1: 0x000a,\n\t0x13d2: 0x000a, 0x13d3: 0x000a, 0x13d4: 0x000a, 0x13d5: 0x000a, 0x13d6: 0x000a, 0x13d7: 0x000a,\n\t0x13d8: 0x000a, 0x13d9: 0x000a, 0x13da: 0x000a, 0x13db: 0x000a, 0x13dc: 0x000a, 0x13dd: 0x000a,\n\t0x13de: 0x000a, 0x13df: 0x000a, 0x13e0: 0x000a, 0x13e1: 0x000a, 0x13e2: 0x000a, 0x13e3: 0x000a,\n\t0x13e4: 0x000a, 0x13e5: 0x000a, 0x13e6: 0x000a, 0x13e7: 0x000a, 0x13e8: 0x0009, 0x13e9: 0x0007,\n\t0x13ea: 0x000e, 0x13eb: 0x000e, 0x13ec: 0x000e, 0x13ed: 0x000e, 0x13ee: 0x000e, 0x13ef: 0x0006,\n\t0x13f0: 0x0004, 0x13f1: 0x0004, 0x13f2: 0x0004, 0x13f3: 0x0004, 0x13f4: 0x0004, 0x13f5: 0x000a,\n\t0x13f6: 0x000a, 0x13f7: 0x000a, 0x13f8: 0x000a, 0x13f9: 0x000a, 0x13fa: 0x000a, 0x13fb: 0x000a,\n\t0x13fc: 0x000a, 0x13fd: 0x000a, 0x13fe: 0x000a, 0x13ff: 0x000a,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x000a, 0x1401: 0x000a, 0x1402: 0x000a, 0x1403: 0x000a, 0x1404: 0x0006, 0x1405: 0x009a,\n\t0x1406: 0x008a, 0x1407: 0x000a, 0x1408: 0x000a, 0x1409: 0x000a, 0x140a: 0x000a, 0x140b: 0x000a,\n\t0x140c: 0x000a, 0x140d: 0x000a, 0x140e: 0x000a, 0x140f: 0x000a, 0x1410: 0x000a, 0x1411: 0x000a,\n\t0x1412: 0x000a, 0x1413: 0x000a, 0x1414: 0x000a, 0x1415: 0x000a, 0x1416: 0x000a, 0x1417: 0x000a,\n\t0x1418: 0x000a, 0x1419: 0x000a, 0x141a: 0x000a, 0x141b: 0x000a, 0x141c: 0x000a, 0x141d: 0x000a,\n\t0x141e: 0x000a, 0x141f: 0x0009, 0x1420: 0x000b, 0x1421: 0x000b, 0x1422: 0x000b, 0x1423: 0x000b,\n\t0x1424: 0x000b, 0x1425: 0x000b, 0x1426: 0x000e, 0x1427: 0x000e, 0x1428: 0x000e, 0x1429: 0x000e,\n\t0x142a: 0x000b, 0x142b: 0x000b, 0x142c: 0x000b, 0x142d: 0x000b, 0x142e: 0x000b, 0x142f: 0x000b,\n\t0x1430: 0x0002, 0x1434: 0x0002, 0x1435: 0x0002,\n\t0x1436: 0x0002, 0x1437: 0x0002, 0x1438: 0x0002, 0x1439: 0x0002, 0x143a: 0x0003, 0x143b: 0x0003,\n\t0x143c: 0x000a, 0x143d: 0x009a, 0x143e: 0x008a,\n\t// Block 0x51, offset 0x1440\n\t0x1440: 0x0002, 0x1441: 0x0002, 0x1442: 0x0002, 0x1443: 0x0002, 0x1444: 0x0002, 0x1445: 0x0002,\n\t0x1446: 0x0002, 0x1447: 0x0002, 0x1448: 0x0002, 0x1449: 0x0002, 0x144a: 0x0003, 0x144b: 0x0003,\n\t0x144c: 0x000a, 0x144d: 0x009a, 0x144e: 0x008a,\n\t0x1460: 0x0004, 0x1461: 0x0004, 0x1462: 0x0004, 0x1463: 0x0004,\n\t0x1464: 0x0004, 0x1465: 0x0004, 0x1466: 0x0004, 0x1467: 0x0004, 0x1468: 0x0004, 0x1469: 0x0004,\n\t0x146a: 0x0004, 0x146b: 0x0004, 0x146c: 0x0004, 0x146d: 0x0004, 0x146e: 0x0004, 0x146f: 0x0004,\n\t0x1470: 0x0004, 0x1471: 0x0004, 0x1472: 0x0004, 0x1473: 0x0004, 0x1474: 0x0004, 0x1475: 0x0004,\n\t0x1476: 0x0004, 0x1477: 0x0004, 0x1478: 0x0004, 0x1479: 0x0004, 0x147a: 0x0004, 0x147b: 0x0004,\n\t0x147c: 0x0004, 0x147d: 0x0004, 0x147e: 0x0004, 0x147f: 0x0004,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x0004, 0x1481: 0x0004, 0x1482: 0x0004, 0x1483: 0x0004, 0x1484: 0x0004, 0x1485: 0x0004,\n\t0x1486: 0x0004, 0x1487: 0x0004, 0x1488: 0x0004, 0x1489: 0x0004, 0x148a: 0x0004, 0x148b: 0x0004,\n\t0x148c: 0x0004, 0x148d: 0x0004, 0x148e: 0x0004, 0x148f: 0x0004, 0x1490: 0x000c, 0x1491: 0x000c,\n\t0x1492: 0x000c, 0x1493: 0x000c, 0x1494: 0x000c, 0x1495: 0x000c, 0x1496: 0x000c, 0x1497: 0x000c,\n\t0x1498: 0x000c, 0x1499: 0x000c, 0x149a: 0x000c, 0x149b: 0x000c, 0x149c: 0x000c, 0x149d: 0x000c,\n\t0x149e: 0x000c, 0x149f: 0x000c, 0x14a0: 0x000c, 0x14a1: 0x000c, 0x14a2: 0x000c, 0x14a3: 0x000c,\n\t0x14a4: 0x000c, 0x14a5: 0x000c, 0x14a6: 0x000c, 0x14a7: 0x000c, 0x14a8: 0x000c, 0x14a9: 0x000c,\n\t0x14aa: 0x000c, 0x14ab: 0x000c, 0x14ac: 0x000c, 0x14ad: 0x000c, 0x14ae: 0x000c, 0x14af: 0x000c,\n\t0x14b0: 0x000c,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x000a, 0x14c1: 0x000a, 0x14c3: 0x000a, 0x14c4: 0x000a, 0x14c5: 0x000a,\n\t0x14c6: 0x000a, 0x14c8: 0x000a, 0x14c9: 0x000a,\n\t0x14d4: 0x000a, 0x14d6: 0x000a, 0x14d7: 0x000a,\n\t0x14d8: 0x000a,\n\t0x14de: 0x000a, 0x14df: 0x000a, 0x14e0: 0x000a, 0x14e1: 0x000a, 0x14e2: 0x000a, 0x14e3: 0x000a,\n\t0x14e5: 0x000a, 0x14e7: 0x000a, 0x14e9: 0x000a,\n\t0x14ee: 0x0004,\n\t0x14fa: 0x000a, 0x14fb: 0x000a,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0x000a, 0x1501: 0x000a, 0x1502: 0x000a, 0x1503: 0x000a, 0x1504: 0x000a,\n\t0x150a: 0x000a, 0x150b: 0x000a,\n\t0x150c: 0x000a, 0x150d: 0x000a, 0x1510: 0x000a, 0x1511: 0x000a,\n\t0x1512: 0x000a, 0x1513: 0x000a, 0x1514: 0x000a, 0x1515: 0x000a, 0x1516: 0x000a, 0x1517: 0x000a,\n\t0x1518: 0x000a, 0x1519: 0x000a, 0x151a: 0x000a, 0x151b: 0x000a, 0x151c: 0x000a, 0x151d: 0x000a,\n\t0x151e: 0x000a, 0x151f: 0x000a,\n\t// Block 0x55, offset 0x1540\n\t0x1549: 0x000a, 0x154a: 0x000a, 0x154b: 0x000a,\n\t0x1550: 0x000a, 0x1551: 0x000a,\n\t0x1552: 0x000a, 0x1553: 0x000a, 0x1554: 0x000a, 0x1555: 0x000a, 0x1556: 0x000a, 0x1557: 0x000a,\n\t0x1558: 0x000a, 0x1559: 0x000a, 0x155a: 0x000a, 0x155b: 0x000a, 0x155c: 0x000a, 0x155d: 0x000a,\n\t0x155e: 0x000a, 0x155f: 0x000a, 0x1560: 0x000a, 0x1561: 0x000a, 0x1562: 0x000a, 0x1563: 0x000a,\n\t0x1564: 0x000a, 0x1565: 0x000a, 0x1566: 0x000a, 0x1567: 0x000a, 0x1568: 0x000a, 0x1569: 0x000a,\n\t0x156a: 0x000a, 0x156b: 0x000a, 0x156c: 0x000a, 0x156d: 0x000a, 0x156e: 0x000a, 0x156f: 0x000a,\n\t0x1570: 0x000a, 0x1571: 0x000a, 0x1572: 0x000a, 0x1573: 0x000a, 0x1574: 0x000a, 0x1575: 0x000a,\n\t0x1576: 0x000a, 0x1577: 0x000a, 0x1578: 0x000a, 0x1579: 0x000a, 0x157a: 0x000a, 0x157b: 0x000a,\n\t0x157c: 0x000a, 0x157d: 0x000a, 0x157e: 0x000a, 0x157f: 0x000a,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x000a, 0x1581: 0x000a, 0x1582: 0x000a, 0x1583: 0x000a, 0x1584: 0x000a, 0x1585: 0x000a,\n\t0x1586: 0x000a, 0x1587: 0x000a, 0x1588: 0x000a, 0x1589: 0x000a, 0x158a: 0x000a, 0x158b: 0x000a,\n\t0x158c: 0x000a, 0x158d: 0x000a, 0x158e: 0x000a, 0x158f: 0x000a, 0x1590: 0x000a, 0x1591: 0x000a,\n\t0x1592: 0x000a, 0x1593: 0x000a, 0x1594: 0x000a, 0x1595: 0x000a, 0x1596: 0x000a, 0x1597: 0x000a,\n\t0x1598: 0x000a, 0x1599: 0x000a, 0x159a: 0x000a, 0x159b: 0x000a, 0x159c: 0x000a, 0x159d: 0x000a,\n\t0x159e: 0x000a, 0x159f: 0x000a, 0x15a0: 0x000a, 0x15a1: 0x000a, 0x15a2: 0x000a, 0x15a3: 0x000a,\n\t0x15a4: 0x000a, 0x15a5: 0x000a, 0x15a6: 0x000a, 0x15a7: 0x000a, 0x15a8: 0x000a, 0x15a9: 0x000a,\n\t0x15aa: 0x000a, 0x15ab: 0x000a, 0x15ac: 0x000a, 0x15ad: 0x000a, 0x15ae: 0x000a, 0x15af: 0x000a,\n\t0x15b0: 0x000a, 0x15b1: 0x000a, 0x15b2: 0x000a, 0x15b3: 0x000a, 0x15b4: 0x000a, 0x15b5: 0x000a,\n\t0x15b6: 0x000a, 0x15b7: 0x000a, 0x15b8: 0x000a, 0x15b9: 0x000a, 0x15ba: 0x000a, 0x15bb: 0x000a,\n\t0x15bc: 0x000a, 0x15bd: 0x000a, 0x15be: 0x000a, 0x15bf: 0x000a,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0x000a, 0x15c1: 0x000a, 0x15c2: 0x000a, 0x15c3: 0x000a, 0x15c4: 0x000a, 0x15c5: 0x000a,\n\t0x15c6: 0x000a, 0x15c7: 0x000a, 0x15c8: 0x000a, 0x15c9: 0x000a, 0x15ca: 0x000a, 0x15cb: 0x000a,\n\t0x15cc: 0x000a, 0x15cd: 0x000a, 0x15ce: 0x000a, 0x15cf: 0x000a, 0x15d0: 0x000a, 0x15d1: 0x000a,\n\t0x15d2: 0x0003, 0x15d3: 0x0004, 0x15d4: 0x000a, 0x15d5: 0x000a, 0x15d6: 0x000a, 0x15d7: 0x000a,\n\t0x15d8: 0x000a, 0x15d9: 0x000a, 0x15da: 0x000a, 0x15db: 0x000a, 0x15dc: 0x000a, 0x15dd: 0x000a,\n\t0x15de: 0x000a, 0x15df: 0x000a, 0x15e0: 0x000a, 0x15e1: 0x000a, 0x15e2: 0x000a, 0x15e3: 0x000a,\n\t0x15e4: 0x000a, 0x15e5: 0x000a, 0x15e6: 0x000a, 0x15e7: 0x000a, 0x15e8: 0x000a, 0x15e9: 0x000a,\n\t0x15ea: 0x000a, 0x15eb: 0x000a, 0x15ec: 0x000a, 0x15ed: 0x000a, 0x15ee: 0x000a, 0x15ef: 0x000a,\n\t0x15f0: 0x000a, 0x15f1: 0x000a, 0x15f2: 0x000a, 0x15f3: 0x000a, 0x15f4: 0x000a, 0x15f5: 0x000a,\n\t0x15f6: 0x000a, 0x15f7: 0x000a, 0x15f8: 0x000a, 0x15f9: 0x000a, 0x15fa: 0x000a, 0x15fb: 0x000a,\n\t0x15fc: 0x000a, 0x15fd: 0x000a, 0x15fe: 0x000a, 0x15ff: 0x000a,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0x000a, 0x1601: 0x000a, 0x1602: 0x000a, 0x1603: 0x000a, 0x1604: 0x000a, 0x1605: 0x000a,\n\t0x1606: 0x000a, 0x1607: 0x000a, 0x1608: 0x003a, 0x1609: 0x002a, 0x160a: 0x003a, 0x160b: 0x002a,\n\t0x160c: 0x000a, 0x160d: 0x000a, 0x160e: 0x000a, 0x160f: 0x000a, 0x1610: 0x000a, 0x1611: 0x000a,\n\t0x1612: 0x000a, 0x1613: 0x000a, 0x1614: 0x000a, 0x1615: 0x000a, 0x1616: 0x000a, 0x1617: 0x000a,\n\t0x1618: 0x000a, 0x1619: 0x000a, 0x161a: 0x000a, 0x161b: 0x000a, 0x161c: 0x000a, 0x161d: 0x000a,\n\t0x161e: 0x000a, 0x161f: 0x000a, 0x1620: 0x000a, 0x1621: 0x000a, 0x1622: 0x000a, 0x1623: 0x000a,\n\t0x1624: 0x000a, 0x1625: 0x000a, 0x1626: 0x000a, 0x1627: 0x000a, 0x1628: 0x000a, 0x1629: 0x009a,\n\t0x162a: 0x008a, 0x162b: 0x000a, 0x162c: 0x000a, 0x162d: 0x000a, 0x162e: 0x000a, 0x162f: 0x000a,\n\t0x1630: 0x000a, 0x1631: 0x000a, 0x1632: 0x000a, 0x1633: 0x000a, 0x1634: 0x000a, 0x1635: 0x000a,\n\t// Block 0x59, offset 0x1640\n\t0x167b: 0x000a,\n\t0x167c: 0x000a, 0x167d: 0x000a, 0x167e: 0x000a, 0x167f: 0x000a,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x000a, 0x1681: 0x000a, 0x1682: 0x000a, 0x1683: 0x000a, 0x1684: 0x000a, 0x1685: 0x000a,\n\t0x1686: 0x000a, 0x1687: 0x000a, 0x1688: 0x000a, 0x1689: 0x000a, 0x168a: 0x000a, 0x168b: 0x000a,\n\t0x168c: 0x000a, 0x168d: 0x000a, 0x168e: 0x000a, 0x168f: 0x000a, 0x1690: 0x000a, 0x1691: 0x000a,\n\t0x1692: 0x000a, 0x1693: 0x000a, 0x1694: 0x000a, 0x1696: 0x000a, 0x1697: 0x000a,\n\t0x1698: 0x000a, 0x1699: 0x000a, 0x169a: 0x000a, 0x169b: 0x000a, 0x169c: 0x000a, 0x169d: 0x000a,\n\t0x169e: 0x000a, 0x169f: 0x000a, 0x16a0: 0x000a, 0x16a1: 0x000a, 0x16a2: 0x000a, 0x16a3: 0x000a,\n\t0x16a4: 0x000a, 0x16a5: 0x000a, 0x16a6: 0x000a, 0x16a7: 0x000a, 0x16a8: 0x000a, 0x16a9: 0x000a,\n\t0x16aa: 0x000a, 0x16ab: 0x000a, 0x16ac: 0x000a, 0x16ad: 0x000a, 0x16ae: 0x000a, 0x16af: 0x000a,\n\t0x16b0: 0x000a, 0x16b1: 0x000a, 0x16b2: 0x000a, 0x16b3: 0x000a, 0x16b4: 0x000a, 0x16b5: 0x000a,\n\t0x16b6: 0x000a, 0x16b7: 0x000a, 0x16b8: 0x000a, 0x16b9: 0x000a, 0x16ba: 0x000a, 0x16bb: 0x000a,\n\t0x16bc: 0x000a, 0x16bd: 0x000a, 0x16be: 0x000a, 0x16bf: 0x000a,\n\t// Block 0x5b, offset 0x16c0\n\t0x16c0: 0x000a, 0x16c1: 0x000a, 0x16c2: 0x000a, 0x16c3: 0x000a, 0x16c4: 0x000a, 0x16c5: 0x000a,\n\t0x16c6: 0x000a, 0x16c7: 0x000a, 0x16c8: 0x000a, 0x16c9: 0x000a, 0x16ca: 0x000a, 0x16cb: 0x000a,\n\t0x16cc: 0x000a, 0x16cd: 0x000a, 0x16ce: 0x000a, 0x16cf: 0x000a, 0x16d0: 0x000a, 0x16d1: 0x000a,\n\t0x16d2: 0x000a, 0x16d3: 0x000a, 0x16d4: 0x000a, 0x16d5: 0x000a, 0x16d6: 0x000a, 0x16d7: 0x000a,\n\t0x16d8: 0x000a, 0x16d9: 0x000a, 0x16da: 0x000a, 0x16db: 0x000a, 0x16dc: 0x000a, 0x16dd: 0x000a,\n\t0x16de: 0x000a, 0x16df: 0x000a, 0x16e0: 0x000a, 0x16e1: 0x000a, 0x16e2: 0x000a, 0x16e3: 0x000a,\n\t0x16e4: 0x000a, 0x16e5: 0x000a, 0x16e6: 0x000a,\n\t// Block 0x5c, offset 0x1700\n\t0x1700: 0x000a, 0x1701: 0x000a, 0x1702: 0x000a, 0x1703: 0x000a, 0x1704: 0x000a, 0x1705: 0x000a,\n\t0x1706: 0x000a, 0x1707: 0x000a, 0x1708: 0x000a, 0x1709: 0x000a, 0x170a: 0x000a,\n\t0x1720: 0x000a, 0x1721: 0x000a, 0x1722: 0x000a, 0x1723: 0x000a,\n\t0x1724: 0x000a, 0x1725: 0x000a, 0x1726: 0x000a, 0x1727: 0x000a, 0x1728: 0x000a, 0x1729: 0x000a,\n\t0x172a: 0x000a, 0x172b: 0x000a, 0x172c: 0x000a, 0x172d: 0x000a, 0x172e: 0x000a, 0x172f: 0x000a,\n\t0x1730: 0x000a, 0x1731: 0x000a, 0x1732: 0x000a, 0x1733: 0x000a, 0x1734: 0x000a, 0x1735: 0x000a,\n\t0x1736: 0x000a, 0x1737: 0x000a, 0x1738: 0x000a, 0x1739: 0x000a, 0x173a: 0x000a, 0x173b: 0x000a,\n\t0x173c: 0x000a, 0x173d: 0x000a, 0x173e: 0x000a, 0x173f: 0x000a,\n\t// Block 0x5d, offset 0x1740\n\t0x1740: 0x000a, 0x1741: 0x000a, 0x1742: 0x000a, 0x1743: 0x000a, 0x1744: 0x000a, 0x1745: 0x000a,\n\t0x1746: 0x000a, 0x1747: 0x000a, 0x1748: 0x0002, 0x1749: 0x0002, 0x174a: 0x0002, 0x174b: 0x0002,\n\t0x174c: 0x0002, 0x174d: 0x0002, 0x174e: 0x0002, 0x174f: 0x0002, 0x1750: 0x0002, 0x1751: 0x0002,\n\t0x1752: 0x0002, 0x1753: 0x0002, 0x1754: 0x0002, 0x1755: 0x0002, 0x1756: 0x0002, 0x1757: 0x0002,\n\t0x1758: 0x0002, 0x1759: 0x0002, 0x175a: 0x0002, 0x175b: 0x0002,\n\t// Block 0x5e, offset 0x1780\n\t0x17aa: 0x000a, 0x17ab: 0x000a, 0x17ac: 0x000a, 0x17ad: 0x000a, 0x17ae: 0x000a, 0x17af: 0x000a,\n\t0x17b0: 0x000a, 0x17b1: 0x000a, 0x17b2: 0x000a, 0x17b3: 0x000a, 0x17b4: 0x000a, 0x17b5: 0x000a,\n\t0x17b6: 0x000a, 0x17b7: 0x000a, 0x17b8: 0x000a, 0x17b9: 0x000a, 0x17ba: 0x000a, 0x17bb: 0x000a,\n\t0x17bc: 0x000a, 0x17bd: 0x000a, 0x17be: 0x000a, 0x17bf: 0x000a,\n\t// Block 0x5f, offset 0x17c0\n\t0x17c0: 0x000a, 0x17c1: 0x000a, 0x17c2: 0x000a, 0x17c3: 0x000a, 0x17c4: 0x000a, 0x17c5: 0x000a,\n\t0x17c6: 0x000a, 0x17c7: 0x000a, 0x17c8: 0x000a, 0x17c9: 0x000a, 0x17ca: 0x000a, 0x17cb: 0x000a,\n\t0x17cc: 0x000a, 0x17cd: 0x000a, 0x17ce: 0x000a, 0x17cf: 0x000a, 0x17d0: 0x000a, 0x17d1: 0x000a,\n\t0x17d2: 0x000a, 0x17d3: 0x000a, 0x17d4: 0x000a, 0x17d5: 0x000a, 0x17d6: 0x000a, 0x17d7: 0x000a,\n\t0x17d8: 0x000a, 0x17d9: 0x000a, 0x17da: 0x000a, 0x17db: 0x000a, 0x17dc: 0x000a, 0x17dd: 0x000a,\n\t0x17de: 0x000a, 0x17df: 0x000a, 0x17e0: 0x000a, 0x17e1: 0x000a, 0x17e2: 0x000a, 0x17e3: 0x000a,\n\t0x17e4: 0x000a, 0x17e5: 0x000a, 0x17e6: 0x000a, 0x17e7: 0x000a, 0x17e8: 0x000a, 0x17e9: 0x000a,\n\t0x17ea: 0x000a, 0x17eb: 0x000a, 0x17ed: 0x000a, 0x17ee: 0x000a, 0x17ef: 0x000a,\n\t0x17f0: 0x000a, 0x17f1: 0x000a, 0x17f2: 0x000a, 0x17f3: 0x000a, 0x17f4: 0x000a, 0x17f5: 0x000a,\n\t0x17f6: 0x000a, 0x17f7: 0x000a, 0x17f8: 0x000a, 0x17f9: 0x000a, 0x17fa: 0x000a, 0x17fb: 0x000a,\n\t0x17fc: 0x000a, 0x17fd: 0x000a, 0x17fe: 0x000a, 0x17ff: 0x000a,\n\t// Block 0x60, offset 0x1800\n\t0x1800: 0x000a, 0x1801: 0x000a, 0x1802: 0x000a, 0x1803: 0x000a, 0x1804: 0x000a, 0x1805: 0x000a,\n\t0x1806: 0x000a, 0x1807: 0x000a, 0x1808: 0x000a, 0x1809: 0x000a, 0x180a: 0x000a, 0x180b: 0x000a,\n\t0x180c: 0x000a, 0x180d: 0x000a, 0x180e: 0x000a, 0x180f: 0x000a, 0x1810: 0x000a, 0x1811: 0x000a,\n\t0x1812: 0x000a, 0x1813: 0x000a, 0x1814: 0x000a, 0x1815: 0x000a, 0x1816: 0x000a, 0x1817: 0x000a,\n\t0x1818: 0x000a, 0x1819: 0x000a, 0x181a: 0x000a, 0x181b: 0x000a, 0x181c: 0x000a, 0x181d: 0x000a,\n\t0x181e: 0x000a, 0x181f: 0x000a, 0x1820: 0x000a, 0x1821: 0x000a, 0x1822: 0x000a, 0x1823: 0x000a,\n\t0x1824: 0x000a, 0x1825: 0x000a, 0x1826: 0x000a, 0x1827: 0x000a, 0x1828: 0x003a, 0x1829: 0x002a,\n\t0x182a: 0x003a, 0x182b: 0x002a, 0x182c: 0x003a, 0x182d: 0x002a, 0x182e: 0x003a, 0x182f: 0x002a,\n\t0x1830: 0x003a, 0x1831: 0x002a, 0x1832: 0x003a, 0x1833: 0x002a, 0x1834: 0x003a, 0x1835: 0x002a,\n\t0x1836: 0x000a, 0x1837: 0x000a, 0x1838: 0x000a, 0x1839: 0x000a, 0x183a: 0x000a, 0x183b: 0x000a,\n\t0x183c: 0x000a, 0x183d: 0x000a, 0x183e: 0x000a, 0x183f: 0x000a,\n\t// Block 0x61, offset 0x1840\n\t0x1840: 0x000a, 0x1841: 0x000a, 0x1842: 0x000a, 0x1843: 0x000a, 0x1844: 0x000a, 0x1845: 0x009a,\n\t0x1846: 0x008a, 0x1847: 0x000a, 0x1848: 0x000a, 0x1849: 0x000a, 0x184a: 0x000a, 0x184b: 0x000a,\n\t0x184c: 0x000a, 0x184d: 0x000a, 0x184e: 0x000a, 0x184f: 0x000a, 0x1850: 0x000a, 0x1851: 0x000a,\n\t0x1852: 0x000a, 0x1853: 0x000a, 0x1854: 0x000a, 0x1855: 0x000a, 0x1856: 0x000a, 0x1857: 0x000a,\n\t0x1858: 0x000a, 0x1859: 0x000a, 0x185a: 0x000a, 0x185b: 0x000a, 0x185c: 0x000a, 0x185d: 0x000a,\n\t0x185e: 0x000a, 0x185f: 0x000a, 0x1860: 0x000a, 0x1861: 0x000a, 0x1862: 0x000a, 0x1863: 0x000a,\n\t0x1864: 0x000a, 0x1865: 0x000a, 0x1866: 0x003a, 0x1867: 0x002a, 0x1868: 0x003a, 0x1869: 0x002a,\n\t0x186a: 0x003a, 0x186b: 0x002a, 0x186c: 0x003a, 0x186d: 0x002a, 0x186e: 0x003a, 0x186f: 0x002a,\n\t0x1870: 0x000a, 0x1871: 0x000a, 0x1872: 0x000a, 0x1873: 0x000a, 0x1874: 0x000a, 0x1875: 0x000a,\n\t0x1876: 0x000a, 0x1877: 0x000a, 0x1878: 0x000a, 0x1879: 0x000a, 0x187a: 0x000a, 0x187b: 0x000a,\n\t0x187c: 0x000a, 0x187d: 0x000a, 0x187e: 0x000a, 0x187f: 0x000a,\n\t// Block 0x62, offset 0x1880\n\t0x1880: 0x000a, 0x1881: 0x000a, 0x1882: 0x000a, 0x1883: 0x007a, 0x1884: 0x006a, 0x1885: 0x009a,\n\t0x1886: 0x008a, 0x1887: 0x00ba, 0x1888: 0x00aa, 0x1889: 0x009a, 0x188a: 0x008a, 0x188b: 0x007a,\n\t0x188c: 0x006a, 0x188d: 0x00da, 0x188e: 0x002a, 0x188f: 0x003a, 0x1890: 0x00ca, 0x1891: 0x009a,\n\t0x1892: 0x008a, 0x1893: 0x007a, 0x1894: 0x006a, 0x1895: 0x009a, 0x1896: 0x008a, 0x1897: 0x00ba,\n\t0x1898: 0x00aa, 0x1899: 0x000a, 0x189a: 0x000a, 0x189b: 0x000a, 0x189c: 0x000a, 0x189d: 0x000a,\n\t0x189e: 0x000a, 0x189f: 0x000a, 0x18a0: 0x000a, 0x18a1: 0x000a, 0x18a2: 0x000a, 0x18a3: 0x000a,\n\t0x18a4: 0x000a, 0x18a5: 0x000a, 0x18a6: 0x000a, 0x18a7: 0x000a, 0x18a8: 0x000a, 0x18a9: 0x000a,\n\t0x18aa: 0x000a, 0x18ab: 0x000a, 0x18ac: 0x000a, 0x18ad: 0x000a, 0x18ae: 0x000a, 0x18af: 0x000a,\n\t0x18b0: 0x000a, 0x18b1: 0x000a, 0x18b2: 0x000a, 0x18b3: 0x000a, 0x18b4: 0x000a, 0x18b5: 0x000a,\n\t0x18b6: 0x000a, 0x18b7: 0x000a, 0x18b8: 0x000a, 0x18b9: 0x000a, 0x18ba: 0x000a, 0x18bb: 0x000a,\n\t0x18bc: 0x000a, 0x18bd: 0x000a, 0x18be: 0x000a, 0x18bf: 0x000a,\n\t// Block 0x63, offset 0x18c0\n\t0x18c0: 0x000a, 0x18c1: 0x000a, 0x18c2: 0x000a, 0x18c3: 0x000a, 0x18c4: 0x000a, 0x18c5: 0x000a,\n\t0x18c6: 0x000a, 0x18c7: 0x000a, 0x18c8: 0x000a, 0x18c9: 0x000a, 0x18ca: 0x000a, 0x18cb: 0x000a,\n\t0x18cc: 0x000a, 0x18cd: 0x000a, 0x18ce: 0x000a, 0x18cf: 0x000a, 0x18d0: 0x000a, 0x18d1: 0x000a,\n\t0x18d2: 0x000a, 0x18d3: 0x000a, 0x18d4: 0x000a, 0x18d5: 0x000a, 0x18d6: 0x000a, 0x18d7: 0x000a,\n\t0x18d8: 0x003a, 0x18d9: 0x002a, 0x18da: 0x003a, 0x18db: 0x002a, 0x18dc: 0x000a, 0x18dd: 0x000a,\n\t0x18de: 0x000a, 0x18df: 0x000a, 0x18e0: 0x000a, 0x18e1: 0x000a, 0x18e2: 0x000a, 0x18e3: 0x000a,\n\t0x18e4: 0x000a, 0x18e5: 0x000a, 0x18e6: 0x000a, 0x18e7: 0x000a, 0x18e8: 0x000a, 0x18e9: 0x000a,\n\t0x18ea: 0x000a, 0x18eb: 0x000a, 0x18ec: 0x000a, 0x18ed: 0x000a, 0x18ee: 0x000a, 0x18ef: 0x000a,\n\t0x18f0: 0x000a, 0x18f1: 0x000a, 0x18f2: 0x000a, 0x18f3: 0x000a, 0x18f4: 0x000a, 0x18f5: 0x000a,\n\t0x18f6: 0x000a, 0x18f7: 0x000a, 0x18f8: 0x000a, 0x18f9: 0x000a, 0x18fa: 0x000a, 0x18fb: 0x000a,\n\t0x18fc: 0x003a, 0x18fd: 0x002a, 0x18fe: 0x000a, 0x18ff: 0x000a,\n\t// Block 0x64, offset 0x1900\n\t0x1900: 0x000a, 0x1901: 0x000a, 0x1902: 0x000a, 0x1903: 0x000a, 0x1904: 0x000a, 0x1905: 0x000a,\n\t0x1906: 0x000a, 0x1907: 0x000a, 0x1908: 0x000a, 0x1909: 0x000a, 0x190a: 0x000a, 0x190b: 0x000a,\n\t0x190c: 0x000a, 0x190d: 0x000a, 0x190e: 0x000a, 0x190f: 0x000a, 0x1910: 0x000a, 0x1911: 0x000a,\n\t0x1912: 0x000a, 0x1913: 0x000a, 0x1914: 0x000a, 0x1915: 0x000a, 0x1916: 0x000a, 0x1917: 0x000a,\n\t0x1918: 0x000a, 0x1919: 0x000a, 0x191a: 0x000a, 0x191b: 0x000a, 0x191c: 0x000a, 0x191d: 0x000a,\n\t0x191e: 0x000a, 0x191f: 0x000a, 0x1920: 0x000a, 0x1921: 0x000a, 0x1922: 0x000a, 0x1923: 0x000a,\n\t0x1924: 0x000a, 0x1925: 0x000a, 0x1926: 0x000a, 0x1927: 0x000a, 0x1928: 0x000a, 0x1929: 0x000a,\n\t0x192a: 0x000a, 0x192b: 0x000a, 0x192c: 0x000a, 0x192d: 0x000a, 0x192e: 0x000a, 0x192f: 0x000a,\n\t0x1930: 0x000a, 0x1931: 0x000a, 0x1932: 0x000a, 0x1933: 0x000a,\n\t0x1936: 0x000a, 0x1937: 0x000a, 0x1938: 0x000a, 0x1939: 0x000a, 0x193a: 0x000a, 0x193b: 0x000a,\n\t0x193c: 0x000a, 0x193d: 0x000a, 0x193e: 0x000a, 0x193f: 0x000a,\n\t// Block 0x65, offset 0x1940\n\t0x1940: 0x000a, 0x1941: 0x000a, 0x1942: 0x000a, 0x1943: 0x000a, 0x1944: 0x000a, 0x1945: 0x000a,\n\t0x1946: 0x000a, 0x1947: 0x000a, 0x1948: 0x000a, 0x1949: 0x000a, 0x194a: 0x000a, 0x194b: 0x000a,\n\t0x194c: 0x000a, 0x194d: 0x000a, 0x194e: 0x000a, 0x194f: 0x000a, 0x1950: 0x000a, 0x1951: 0x000a,\n\t0x1952: 0x000a, 0x1953: 0x000a, 0x1954: 0x000a, 0x1955: 0x000a,\n\t0x1958: 0x000a, 0x1959: 0x000a, 0x195a: 0x000a, 0x195b: 0x000a, 0x195c: 0x000a, 0x195d: 0x000a,\n\t0x195e: 0x000a, 0x195f: 0x000a, 0x1960: 0x000a, 0x1961: 0x000a, 0x1962: 0x000a, 0x1963: 0x000a,\n\t0x1964: 0x000a, 0x1965: 0x000a, 0x1966: 0x000a, 0x1967: 0x000a, 0x1968: 0x000a, 0x1969: 0x000a,\n\t0x196a: 0x000a, 0x196b: 0x000a, 0x196c: 0x000a, 0x196d: 0x000a, 0x196e: 0x000a, 0x196f: 0x000a,\n\t0x1970: 0x000a, 0x1971: 0x000a, 0x1972: 0x000a, 0x1973: 0x000a, 0x1974: 0x000a, 0x1975: 0x000a,\n\t0x1976: 0x000a, 0x1977: 0x000a, 0x1978: 0x000a, 0x1979: 0x000a, 0x197a: 0x000a, 0x197b: 0x000a,\n\t0x197c: 0x000a, 0x197d: 0x000a, 0x197e: 0x000a, 0x197f: 0x000a,\n\t// Block 0x66, offset 0x1980\n\t0x19a5: 0x000a, 0x19a6: 0x000a, 0x19a7: 0x000a, 0x19a8: 0x000a, 0x19a9: 0x000a,\n\t0x19aa: 0x000a, 0x19af: 0x000c,\n\t0x19b0: 0x000c, 0x19b1: 0x000c,\n\t0x19b9: 0x000a, 0x19ba: 0x000a, 0x19bb: 0x000a,\n\t0x19bc: 0x000a, 0x19bd: 0x000a, 0x19be: 0x000a, 0x19bf: 0x000a,\n\t// Block 0x67, offset 0x19c0\n\t0x19ff: 0x000c,\n\t// Block 0x68, offset 0x1a00\n\t0x1a20: 0x000c, 0x1a21: 0x000c, 0x1a22: 0x000c, 0x1a23: 0x000c,\n\t0x1a24: 0x000c, 0x1a25: 0x000c, 0x1a26: 0x000c, 0x1a27: 0x000c, 0x1a28: 0x000c, 0x1a29: 0x000c,\n\t0x1a2a: 0x000c, 0x1a2b: 0x000c, 0x1a2c: 0x000c, 0x1a2d: 0x000c, 0x1a2e: 0x000c, 0x1a2f: 0x000c,\n\t0x1a30: 0x000c, 0x1a31: 0x000c, 0x1a32: 0x000c, 0x1a33: 0x000c, 0x1a34: 0x000c, 0x1a35: 0x000c,\n\t0x1a36: 0x000c, 0x1a37: 0x000c, 0x1a38: 0x000c, 0x1a39: 0x000c, 0x1a3a: 0x000c, 0x1a3b: 0x000c,\n\t0x1a3c: 0x000c, 0x1a3d: 0x000c, 0x1a3e: 0x000c, 0x1a3f: 0x000c,\n\t// Block 0x69, offset 0x1a40\n\t0x1a40: 0x000a, 0x1a41: 0x000a, 0x1a42: 0x000a, 0x1a43: 0x000a, 0x1a44: 0x000a, 0x1a45: 0x000a,\n\t0x1a46: 0x000a, 0x1a47: 0x000a, 0x1a48: 0x000a, 0x1a49: 0x000a, 0x1a4a: 0x000a, 0x1a4b: 0x000a,\n\t0x1a4c: 0x000a, 0x1a4d: 0x000a, 0x1a4e: 0x000a, 0x1a4f: 0x000a, 0x1a50: 0x000a, 0x1a51: 0x000a,\n\t0x1a52: 0x000a, 0x1a53: 0x000a, 0x1a54: 0x000a, 0x1a55: 0x000a, 0x1a56: 0x000a, 0x1a57: 0x000a,\n\t0x1a58: 0x000a, 0x1a59: 0x000a, 0x1a5a: 0x000a, 0x1a5b: 0x000a, 0x1a5c: 0x000a, 0x1a5d: 0x000a,\n\t0x1a5e: 0x000a, 0x1a5f: 0x000a, 0x1a60: 0x000a, 0x1a61: 0x000a, 0x1a62: 0x003a, 0x1a63: 0x002a,\n\t0x1a64: 0x003a, 0x1a65: 0x002a, 0x1a66: 0x003a, 0x1a67: 0x002a, 0x1a68: 0x003a, 0x1a69: 0x002a,\n\t0x1a6a: 0x000a, 0x1a6b: 0x000a, 0x1a6c: 0x000a, 0x1a6d: 0x000a, 0x1a6e: 0x000a, 0x1a6f: 0x000a,\n\t0x1a70: 0x000a, 0x1a71: 0x000a, 0x1a72: 0x000a, 0x1a73: 0x000a, 0x1a74: 0x000a, 0x1a75: 0x000a,\n\t0x1a76: 0x000a, 0x1a77: 0x000a, 0x1a78: 0x000a, 0x1a79: 0x000a, 0x1a7a: 0x000a, 0x1a7b: 0x000a,\n\t0x1a7c: 0x000a, 0x1a7d: 0x000a, 0x1a7e: 0x000a, 0x1a7f: 0x000a,\n\t// Block 0x6a, offset 0x1a80\n\t0x1a80: 0x000a, 0x1a81: 0x000a, 0x1a82: 0x000a, 0x1a83: 0x000a, 0x1a84: 0x000a, 0x1a85: 0x000a,\n\t0x1a86: 0x000a, 0x1a87: 0x000a, 0x1a88: 0x000a, 0x1a89: 0x000a, 0x1a8a: 0x000a, 0x1a8b: 0x000a,\n\t0x1a8c: 0x000a, 0x1a8d: 0x000a, 0x1a8e: 0x000a, 0x1a8f: 0x000a,\n\t// Block 0x6b, offset 0x1ac0\n\t0x1ac0: 0x000a, 0x1ac1: 0x000a, 0x1ac2: 0x000a, 0x1ac3: 0x000a, 0x1ac4: 0x000a, 0x1ac5: 0x000a,\n\t0x1ac6: 0x000a, 0x1ac7: 0x000a, 0x1ac8: 0x000a, 0x1ac9: 0x000a, 0x1aca: 0x000a, 0x1acb: 0x000a,\n\t0x1acc: 0x000a, 0x1acd: 0x000a, 0x1ace: 0x000a, 0x1acf: 0x000a, 0x1ad0: 0x000a, 0x1ad1: 0x000a,\n\t0x1ad2: 0x000a, 0x1ad3: 0x000a, 0x1ad4: 0x000a, 0x1ad5: 0x000a, 0x1ad6: 0x000a, 0x1ad7: 0x000a,\n\t0x1ad8: 0x000a, 0x1ad9: 0x000a, 0x1adb: 0x000a, 0x1adc: 0x000a, 0x1add: 0x000a,\n\t0x1ade: 0x000a, 0x1adf: 0x000a, 0x1ae0: 0x000a, 0x1ae1: 0x000a, 0x1ae2: 0x000a, 0x1ae3: 0x000a,\n\t0x1ae4: 0x000a, 0x1ae5: 0x000a, 0x1ae6: 0x000a, 0x1ae7: 0x000a, 0x1ae8: 0x000a, 0x1ae9: 0x000a,\n\t0x1aea: 0x000a, 0x1aeb: 0x000a, 0x1aec: 0x000a, 0x1aed: 0x000a, 0x1aee: 0x000a, 0x1aef: 0x000a,\n\t0x1af0: 0x000a, 0x1af1: 0x000a, 0x1af2: 0x000a, 0x1af3: 0x000a, 0x1af4: 0x000a, 0x1af5: 0x000a,\n\t0x1af6: 0x000a, 0x1af7: 0x000a, 0x1af8: 0x000a, 0x1af9: 0x000a, 0x1afa: 0x000a, 0x1afb: 0x000a,\n\t0x1afc: 0x000a, 0x1afd: 0x000a, 0x1afe: 0x000a, 0x1aff: 0x000a,\n\t// Block 0x6c, offset 0x1b00\n\t0x1b00: 0x000a, 0x1b01: 0x000a, 0x1b02: 0x000a, 0x1b03: 0x000a, 0x1b04: 0x000a, 0x1b05: 0x000a,\n\t0x1b06: 0x000a, 0x1b07: 0x000a, 0x1b08: 0x000a, 0x1b09: 0x000a, 0x1b0a: 0x000a, 0x1b0b: 0x000a,\n\t0x1b0c: 0x000a, 0x1b0d: 0x000a, 0x1b0e: 0x000a, 0x1b0f: 0x000a, 0x1b10: 0x000a, 0x1b11: 0x000a,\n\t0x1b12: 0x000a, 0x1b13: 0x000a, 0x1b14: 0x000a, 0x1b15: 0x000a, 0x1b16: 0x000a, 0x1b17: 0x000a,\n\t0x1b18: 0x000a, 0x1b19: 0x000a, 0x1b1a: 0x000a, 0x1b1b: 0x000a, 0x1b1c: 0x000a, 0x1b1d: 0x000a,\n\t0x1b1e: 0x000a, 0x1b1f: 0x000a, 0x1b20: 0x000a, 0x1b21: 0x000a, 0x1b22: 0x000a, 0x1b23: 0x000a,\n\t0x1b24: 0x000a, 0x1b25: 0x000a, 0x1b26: 0x000a, 0x1b27: 0x000a, 0x1b28: 0x000a, 0x1b29: 0x000a,\n\t0x1b2a: 0x000a, 0x1b2b: 0x000a, 0x1b2c: 0x000a, 0x1b2d: 0x000a, 0x1b2e: 0x000a, 0x1b2f: 0x000a,\n\t0x1b30: 0x000a, 0x1b31: 0x000a, 0x1b32: 0x000a, 0x1b33: 0x000a,\n\t// Block 0x6d, offset 0x1b40\n\t0x1b40: 0x000a, 0x1b41: 0x000a, 0x1b42: 0x000a, 0x1b43: 0x000a, 0x1b44: 0x000a, 0x1b45: 0x000a,\n\t0x1b46: 0x000a, 0x1b47: 0x000a, 0x1b48: 0x000a, 0x1b49: 0x000a, 0x1b4a: 0x000a, 0x1b4b: 0x000a,\n\t0x1b4c: 0x000a, 0x1b4d: 0x000a, 0x1b4e: 0x000a, 0x1b4f: 0x000a, 0x1b50: 0x000a, 0x1b51: 0x000a,\n\t0x1b52: 0x000a, 0x1b53: 0x000a, 0x1b54: 0x000a, 0x1b55: 0x000a,\n\t0x1b70: 0x000a, 0x1b71: 0x000a, 0x1b72: 0x000a, 0x1b73: 0x000a, 0x1b74: 0x000a, 0x1b75: 0x000a,\n\t0x1b76: 0x000a, 0x1b77: 0x000a, 0x1b78: 0x000a, 0x1b79: 0x000a, 0x1b7a: 0x000a, 0x1b7b: 0x000a,\n\t// Block 0x6e, offset 0x1b80\n\t0x1b80: 0x0009, 0x1b81: 0x000a, 0x1b82: 0x000a, 0x1b83: 0x000a, 0x1b84: 0x000a,\n\t0x1b88: 0x003a, 0x1b89: 0x002a, 0x1b8a: 0x003a, 0x1b8b: 0x002a,\n\t0x1b8c: 0x003a, 0x1b8d: 0x002a, 0x1b8e: 0x003a, 0x1b8f: 0x002a, 0x1b90: 0x003a, 0x1b91: 0x002a,\n\t0x1b92: 0x000a, 0x1b93: 0x000a, 0x1b94: 0x003a, 0x1b95: 0x002a, 0x1b96: 0x003a, 0x1b97: 0x002a,\n\t0x1b98: 0x003a, 0x1b99: 0x002a, 0x1b9a: 0x003a, 0x1b9b: 0x002a, 0x1b9c: 0x000a, 0x1b9d: 0x000a,\n\t0x1b9e: 0x000a, 0x1b9f: 0x000a, 0x1ba0: 0x000a,\n\t0x1baa: 0x000c, 0x1bab: 0x000c, 0x1bac: 0x000c, 0x1bad: 0x000c,\n\t0x1bb0: 0x000a,\n\t0x1bb6: 0x000a, 0x1bb7: 0x000a,\n\t0x1bbd: 0x000a, 0x1bbe: 0x000a, 0x1bbf: 0x000a,\n\t// Block 0x6f, offset 0x1bc0\n\t0x1bd9: 0x000c, 0x1bda: 0x000c, 0x1bdb: 0x000a, 0x1bdc: 0x000a,\n\t0x1be0: 0x000a,\n\t// Block 0x70, offset 0x1c00\n\t0x1c3b: 0x000a,\n\t// Block 0x71, offset 0x1c40\n\t0x1c40: 0x000a, 0x1c41: 0x000a, 0x1c42: 0x000a, 0x1c43: 0x000a, 0x1c44: 0x000a, 0x1c45: 0x000a,\n\t0x1c46: 0x000a, 0x1c47: 0x000a, 0x1c48: 0x000a, 0x1c49: 0x000a, 0x1c4a: 0x000a, 0x1c4b: 0x000a,\n\t0x1c4c: 0x000a, 0x1c4d: 0x000a, 0x1c4e: 0x000a, 0x1c4f: 0x000a, 0x1c50: 0x000a, 0x1c51: 0x000a,\n\t0x1c52: 0x000a, 0x1c53: 0x000a, 0x1c54: 0x000a, 0x1c55: 0x000a, 0x1c56: 0x000a, 0x1c57: 0x000a,\n\t0x1c58: 0x000a, 0x1c59: 0x000a, 0x1c5a: 0x000a, 0x1c5b: 0x000a, 0x1c5c: 0x000a, 0x1c5d: 0x000a,\n\t0x1c5e: 0x000a, 0x1c5f: 0x000a, 0x1c60: 0x000a, 0x1c61: 0x000a, 0x1c62: 0x000a, 0x1c63: 0x000a,\n\t// Block 0x72, offset 0x1c80\n\t0x1c9d: 0x000a,\n\t0x1c9e: 0x000a,\n\t// Block 0x73, offset 0x1cc0\n\t0x1cd0: 0x000a, 0x1cd1: 0x000a,\n\t0x1cd2: 0x000a, 0x1cd3: 0x000a, 0x1cd4: 0x000a, 0x1cd5: 0x000a, 0x1cd6: 0x000a, 0x1cd7: 0x000a,\n\t0x1cd8: 0x000a, 0x1cd9: 0x000a, 0x1cda: 0x000a, 0x1cdb: 0x000a, 0x1cdc: 0x000a, 0x1cdd: 0x000a,\n\t0x1cde: 0x000a, 0x1cdf: 0x000a,\n\t0x1cfc: 0x000a, 0x1cfd: 0x000a, 0x1cfe: 0x000a,\n\t// Block 0x74, offset 0x1d00\n\t0x1d31: 0x000a, 0x1d32: 0x000a, 0x1d33: 0x000a, 0x1d34: 0x000a, 0x1d35: 0x000a,\n\t0x1d36: 0x000a, 0x1d37: 0x000a, 0x1d38: 0x000a, 0x1d39: 0x000a, 0x1d3a: 0x000a, 0x1d3b: 0x000a,\n\t0x1d3c: 0x000a, 0x1d3d: 0x000a, 0x1d3e: 0x000a, 0x1d3f: 0x000a,\n\t// Block 0x75, offset 0x1d40\n\t0x1d4c: 0x000a, 0x1d4d: 0x000a, 0x1d4e: 0x000a, 0x1d4f: 0x000a,\n\t// Block 0x76, offset 0x1d80\n\t0x1db7: 0x000a, 0x1db8: 0x000a, 0x1db9: 0x000a, 0x1dba: 0x000a,\n\t// Block 0x77, offset 0x1dc0\n\t0x1dde: 0x000a, 0x1ddf: 0x000a,\n\t0x1dff: 0x000a,\n\t// Block 0x78, offset 0x1e00\n\t0x1e10: 0x000a, 0x1e11: 0x000a,\n\t0x1e12: 0x000a, 0x1e13: 0x000a, 0x1e14: 0x000a, 0x1e15: 0x000a, 0x1e16: 0x000a, 0x1e17: 0x000a,\n\t0x1e18: 0x000a, 0x1e19: 0x000a, 0x1e1a: 0x000a, 0x1e1b: 0x000a, 0x1e1c: 0x000a, 0x1e1d: 0x000a,\n\t0x1e1e: 0x000a, 0x1e1f: 0x000a, 0x1e20: 0x000a, 0x1e21: 0x000a, 0x1e22: 0x000a, 0x1e23: 0x000a,\n\t0x1e24: 0x000a, 0x1e25: 0x000a, 0x1e26: 0x000a, 0x1e27: 0x000a, 0x1e28: 0x000a, 0x1e29: 0x000a,\n\t0x1e2a: 0x000a, 0x1e2b: 0x000a, 0x1e2c: 0x000a, 0x1e2d: 0x000a, 0x1e2e: 0x000a, 0x1e2f: 0x000a,\n\t0x1e30: 0x000a, 0x1e31: 0x000a, 0x1e32: 0x000a, 0x1e33: 0x000a, 0x1e34: 0x000a, 0x1e35: 0x000a,\n\t0x1e36: 0x000a, 0x1e37: 0x000a, 0x1e38: 0x000a, 0x1e39: 0x000a, 0x1e3a: 0x000a, 0x1e3b: 0x000a,\n\t0x1e3c: 0x000a, 0x1e3d: 0x000a, 0x1e3e: 0x000a, 0x1e3f: 0x000a,\n\t// Block 0x79, offset 0x1e40\n\t0x1e40: 0x000a, 0x1e41: 0x000a, 0x1e42: 0x000a, 0x1e43: 0x000a, 0x1e44: 0x000a, 0x1e45: 0x000a,\n\t0x1e46: 0x000a,\n\t// Block 0x7a, offset 0x1e80\n\t0x1e8d: 0x000a, 0x1e8e: 0x000a, 0x1e8f: 0x000a,\n\t// Block 0x7b, offset 0x1ec0\n\t0x1eef: 0x000c,\n\t0x1ef0: 0x000c, 0x1ef1: 0x000c, 0x1ef2: 0x000c, 0x1ef3: 0x000a, 0x1ef4: 0x000c, 0x1ef5: 0x000c,\n\t0x1ef6: 0x000c, 0x1ef7: 0x000c, 0x1ef8: 0x000c, 0x1ef9: 0x000c, 0x1efa: 0x000c, 0x1efb: 0x000c,\n\t0x1efc: 0x000c, 0x1efd: 0x000c, 0x1efe: 0x000a, 0x1eff: 0x000a,\n\t// Block 0x7c, offset 0x1f00\n\t0x1f1e: 0x000c, 0x1f1f: 0x000c,\n\t// Block 0x7d, offset 0x1f40\n\t0x1f70: 0x000c, 0x1f71: 0x000c,\n\t// Block 0x7e, offset 0x1f80\n\t0x1f80: 0x000a, 0x1f81: 0x000a, 0x1f82: 0x000a, 0x1f83: 0x000a, 0x1f84: 0x000a, 0x1f85: 0x000a,\n\t0x1f86: 0x000a, 0x1f87: 0x000a, 0x1f88: 0x000a, 0x1f89: 0x000a, 0x1f8a: 0x000a, 0x1f8b: 0x000a,\n\t0x1f8c: 0x000a, 0x1f8d: 0x000a, 0x1f8e: 0x000a, 0x1f8f: 0x000a, 0x1f90: 0x000a, 0x1f91: 0x000a,\n\t0x1f92: 0x000a, 0x1f93: 0x000a, 0x1f94: 0x000a, 0x1f95: 0x000a, 0x1f96: 0x000a, 0x1f97: 0x000a,\n\t0x1f98: 0x000a, 0x1f99: 0x000a, 0x1f9a: 0x000a, 0x1f9b: 0x000a, 0x1f9c: 0x000a, 0x1f9d: 0x000a,\n\t0x1f9e: 0x000a, 0x1f9f: 0x000a, 0x1fa0: 0x000a, 0x1fa1: 0x000a,\n\t// Block 0x7f, offset 0x1fc0\n\t0x1fc8: 0x000a,\n\t// Block 0x80, offset 0x2000\n\t0x2002: 0x000c,\n\t0x2006: 0x000c, 0x200b: 0x000c,\n\t0x2025: 0x000c, 0x2026: 0x000c, 0x2028: 0x000a, 0x2029: 0x000a,\n\t0x202a: 0x000a, 0x202b: 0x000a,\n\t0x2038: 0x0004, 0x2039: 0x0004,\n\t// Block 0x81, offset 0x2040\n\t0x2074: 0x000a, 0x2075: 0x000a,\n\t0x2076: 0x000a, 0x2077: 0x000a,\n\t// Block 0x82, offset 0x2080\n\t0x2084: 0x000c, 0x2085: 0x000c,\n\t0x20a0: 0x000c, 0x20a1: 0x000c, 0x20a2: 0x000c, 0x20a3: 0x000c,\n\t0x20a4: 0x000c, 0x20a5: 0x000c, 0x20a6: 0x000c, 0x20a7: 0x000c, 0x20a8: 0x000c, 0x20a9: 0x000c,\n\t0x20aa: 0x000c, 0x20ab: 0x000c, 0x20ac: 0x000c, 0x20ad: 0x000c, 0x20ae: 0x000c, 0x20af: 0x000c,\n\t0x20b0: 0x000c, 0x20b1: 0x000c,\n\t0x20bf: 0x000c,\n\t// Block 0x83, offset 0x20c0\n\t0x20e6: 0x000c, 0x20e7: 0x000c, 0x20e8: 0x000c, 0x20e9: 0x000c,\n\t0x20ea: 0x000c, 0x20eb: 0x000c, 0x20ec: 0x000c, 0x20ed: 0x000c,\n\t// Block 0x84, offset 0x2100\n\t0x2107: 0x000c, 0x2108: 0x000c, 0x2109: 0x000c, 0x210a: 0x000c, 0x210b: 0x000c,\n\t0x210c: 0x000c, 0x210d: 0x000c, 0x210e: 0x000c, 0x210f: 0x000c, 0x2110: 0x000c, 0x2111: 0x000c,\n\t// Block 0x85, offset 0x2140\n\t0x2140: 0x000c, 0x2141: 0x000c, 0x2142: 0x000c,\n\t0x2173: 0x000c,\n\t0x2176: 0x000c, 0x2177: 0x000c, 0x2178: 0x000c, 0x2179: 0x000c,\n\t0x217c: 0x000c, 0x217d: 0x000c,\n\t// Block 0x86, offset 0x2180\n\t0x21a5: 0x000c,\n\t// Block 0x87, offset 0x21c0\n\t0x21e9: 0x000c,\n\t0x21ea: 0x000c, 0x21eb: 0x000c, 0x21ec: 0x000c, 0x21ed: 0x000c, 0x21ee: 0x000c,\n\t0x21f1: 0x000c, 0x21f2: 0x000c, 0x21f5: 0x000c,\n\t0x21f6: 0x000c,\n\t// Block 0x88, offset 0x2200\n\t0x2203: 0x000c,\n\t0x220c: 0x000c,\n\t0x223c: 0x000c,\n\t// Block 0x89, offset 0x2240\n\t0x2270: 0x000c, 0x2272: 0x000c, 0x2273: 0x000c, 0x2274: 0x000c,\n\t0x2277: 0x000c, 0x2278: 0x000c,\n\t0x227e: 0x000c, 0x227f: 0x000c,\n\t// Block 0x8a, offset 0x2280\n\t0x2281: 0x000c,\n\t0x22ac: 0x000c, 0x22ad: 0x000c,\n\t0x22b6: 0x000c,\n\t// Block 0x8b, offset 0x22c0\n\t0x22e5: 0x000c, 0x22e8: 0x000c,\n\t0x22ed: 0x000c,\n\t// Block 0x8c, offset 0x2300\n\t0x231d: 0x0001,\n\t0x231e: 0x000c, 0x231f: 0x0001, 0x2320: 0x0001, 0x2321: 0x0001, 0x2322: 0x0001, 0x2323: 0x0001,\n\t0x2324: 0x0001, 0x2325: 0x0001, 0x2326: 0x0001, 0x2327: 0x0001, 0x2328: 0x0001, 0x2329: 0x0003,\n\t0x232a: 0x0001, 0x232b: 0x0001, 0x232c: 0x0001, 0x232d: 0x0001, 0x232e: 0x0001, 0x232f: 0x0001,\n\t0x2330: 0x0001, 0x2331: 0x0001, 0x2332: 0x0001, 0x2333: 0x0001, 0x2334: 0x0001, 0x2335: 0x0001,\n\t0x2336: 0x0001, 0x2337: 0x0001, 0x2338: 0x0001, 0x2339: 0x0001, 0x233a: 0x0001, 0x233b: 0x0001,\n\t0x233c: 0x0001, 0x233d: 0x0001, 0x233e: 0x0001, 0x233f: 0x0001,\n\t// Block 0x8d, offset 0x2340\n\t0x2340: 0x0001, 0x2341: 0x0001, 0x2342: 0x0001, 0x2343: 0x0001, 0x2344: 0x0001, 0x2345: 0x0001,\n\t0x2346: 0x0001, 0x2347: 0x0001, 0x2348: 0x0001, 0x2349: 0x0001, 0x234a: 0x0001, 0x234b: 0x0001,\n\t0x234c: 0x0001, 0x234d: 0x0001, 0x234e: 0x0001, 0x234f: 0x0001, 0x2350: 0x000d, 0x2351: 0x000d,\n\t0x2352: 0x000d, 0x2353: 0x000d, 0x2354: 0x000d, 0x2355: 0x000d, 0x2356: 0x000d, 0x2357: 0x000d,\n\t0x2358: 0x000d, 0x2359: 0x000d, 0x235a: 0x000d, 0x235b: 0x000d, 0x235c: 0x000d, 0x235d: 0x000d,\n\t0x235e: 0x000d, 0x235f: 0x000d, 0x2360: 0x000d, 0x2361: 0x000d, 0x2362: 0x000d, 0x2363: 0x000d,\n\t0x2364: 0x000d, 0x2365: 0x000d, 0x2366: 0x000d, 0x2367: 0x000d, 0x2368: 0x000d, 0x2369: 0x000d,\n\t0x236a: 0x000d, 0x236b: 0x000d, 0x236c: 0x000d, 0x236d: 0x000d, 0x236e: 0x000d, 0x236f: 0x000d,\n\t0x2370: 0x000d, 0x2371: 0x000d, 0x2372: 0x000d, 0x2373: 0x000d, 0x2374: 0x000d, 0x2375: 0x000d,\n\t0x2376: 0x000d, 0x2377: 0x000d, 0x2378: 0x000d, 0x2379: 0x000d, 0x237a: 0x000d, 0x237b: 0x000d,\n\t0x237c: 0x000d, 0x237d: 0x000d, 0x237e: 0x000d, 0x237f: 0x000d,\n\t// Block 0x8e, offset 0x2380\n\t0x2380: 0x000d, 0x2381: 0x000d, 0x2382: 0x000d, 0x2383: 0x000d, 0x2384: 0x000d, 0x2385: 0x000d,\n\t0x2386: 0x000d, 0x2387: 0x000d, 0x2388: 0x000d, 0x2389: 0x000d, 0x238a: 0x000d, 0x238b: 0x000d,\n\t0x238c: 0x000d, 0x238d: 0x000d, 0x238e: 0x000d, 0x238f: 0x000d, 0x2390: 0x000d, 0x2391: 0x000d,\n\t0x2392: 0x000d, 0x2393: 0x000d, 0x2394: 0x000d, 0x2395: 0x000d, 0x2396: 0x000d, 0x2397: 0x000d,\n\t0x2398: 0x000d, 0x2399: 0x000d, 0x239a: 0x000d, 0x239b: 0x000d, 0x239c: 0x000d, 0x239d: 0x000d,\n\t0x239e: 0x000d, 0x239f: 0x000d, 0x23a0: 0x000d, 0x23a1: 0x000d, 0x23a2: 0x000d, 0x23a3: 0x000d,\n\t0x23a4: 0x000d, 0x23a5: 0x000d, 0x23a6: 0x000d, 0x23a7: 0x000d, 0x23a8: 0x000d, 0x23a9: 0x000d,\n\t0x23aa: 0x000d, 0x23ab: 0x000d, 0x23ac: 0x000d, 0x23ad: 0x000d, 0x23ae: 0x000d, 0x23af: 0x000d,\n\t0x23b0: 0x000d, 0x23b1: 0x000d, 0x23b2: 0x000d, 0x23b3: 0x000d, 0x23b4: 0x000d, 0x23b5: 0x000d,\n\t0x23b6: 0x000d, 0x23b7: 0x000d, 0x23b8: 0x000d, 0x23b9: 0x000d, 0x23ba: 0x000d, 0x23bb: 0x000d,\n\t0x23bc: 0x000d, 0x23bd: 0x000d, 0x23be: 0x000a, 0x23bf: 0x000a,\n\t// Block 0x8f, offset 0x23c0\n\t0x23c0: 0x000d, 0x23c1: 0x000d, 0x23c2: 0x000d, 0x23c3: 0x000d, 0x23c4: 0x000d, 0x23c5: 0x000d,\n\t0x23c6: 0x000d, 0x23c7: 0x000d, 0x23c8: 0x000d, 0x23c9: 0x000d, 0x23ca: 0x000d, 0x23cb: 0x000d,\n\t0x23cc: 0x000d, 0x23cd: 0x000d, 0x23ce: 0x000d, 0x23cf: 0x000d, 0x23d0: 0x000b, 0x23d1: 0x000b,\n\t0x23d2: 0x000b, 0x23d3: 0x000b, 0x23d4: 0x000b, 0x23d5: 0x000b, 0x23d6: 0x000b, 0x23d7: 0x000b,\n\t0x23d8: 0x000b, 0x23d9: 0x000b, 0x23da: 0x000b, 0x23db: 0x000b, 0x23dc: 0x000b, 0x23dd: 0x000b,\n\t0x23de: 0x000b, 0x23df: 0x000b, 0x23e0: 0x000b, 0x23e1: 0x000b, 0x23e2: 0x000b, 0x23e3: 0x000b,\n\t0x23e4: 0x000b, 0x23e5: 0x000b, 0x23e6: 0x000b, 0x23e7: 0x000b, 0x23e8: 0x000b, 0x23e9: 0x000b,\n\t0x23ea: 0x000b, 0x23eb: 0x000b, 0x23ec: 0x000b, 0x23ed: 0x000b, 0x23ee: 0x000b, 0x23ef: 0x000b,\n\t0x23f0: 0x000d, 0x23f1: 0x000d, 0x23f2: 0x000d, 0x23f3: 0x000d, 0x23f4: 0x000d, 0x23f5: 0x000d,\n\t0x23f6: 0x000d, 0x23f7: 0x000d, 0x23f8: 0x000d, 0x23f9: 0x000d, 0x23fa: 0x000d, 0x23fb: 0x000d,\n\t0x23fc: 0x000d, 0x23fd: 0x000a, 0x23fe: 0x000d, 0x23ff: 0x000d,\n\t// Block 0x90, offset 0x2400\n\t0x2400: 0x000c, 0x2401: 0x000c, 0x2402: 0x000c, 0x2403: 0x000c, 0x2404: 0x000c, 0x2405: 0x000c,\n\t0x2406: 0x000c, 0x2407: 0x000c, 0x2408: 0x000c, 0x2409: 0x000c, 0x240a: 0x000c, 0x240b: 0x000c,\n\t0x240c: 0x000c, 0x240d: 0x000c, 0x240e: 0x000c, 0x240f: 0x000c, 0x2410: 0x000a, 0x2411: 0x000a,\n\t0x2412: 0x000a, 0x2413: 0x000a, 0x2414: 0x000a, 0x2415: 0x000a, 0x2416: 0x000a, 0x2417: 0x000a,\n\t0x2418: 0x000a, 0x2419: 0x000a,\n\t0x2420: 0x000c, 0x2421: 0x000c, 0x2422: 0x000c, 0x2423: 0x000c,\n\t0x2424: 0x000c, 0x2425: 0x000c, 0x2426: 0x000c, 0x2427: 0x000c, 0x2428: 0x000c, 0x2429: 0x000c,\n\t0x242a: 0x000c, 0x242b: 0x000c, 0x242c: 0x000c, 0x242d: 0x000c, 0x242e: 0x000c, 0x242f: 0x000c,\n\t0x2430: 0x000a, 0x2431: 0x000a, 0x2432: 0x000a, 0x2433: 0x000a, 0x2434: 0x000a, 0x2435: 0x000a,\n\t0x2436: 0x000a, 0x2437: 0x000a, 0x2438: 0x000a, 0x2439: 0x000a, 0x243a: 0x000a, 0x243b: 0x000a,\n\t0x243c: 0x000a, 0x243d: 0x000a, 0x243e: 0x000a, 0x243f: 0x000a,\n\t// Block 0x91, offset 0x2440\n\t0x2440: 0x000a, 0x2441: 0x000a, 0x2442: 0x000a, 0x2443: 0x000a, 0x2444: 0x000a, 0x2445: 0x000a,\n\t0x2446: 0x000a, 0x2447: 0x000a, 0x2448: 0x000a, 0x2449: 0x000a, 0x244a: 0x000a, 0x244b: 0x000a,\n\t0x244c: 0x000a, 0x244d: 0x000a, 0x244e: 0x000a, 0x244f: 0x000a, 0x2450: 0x0006, 0x2451: 0x000a,\n\t0x2452: 0x0006, 0x2454: 0x000a, 0x2455: 0x0006, 0x2456: 0x000a, 0x2457: 0x000a,\n\t0x2458: 0x000a, 0x2459: 0x009a, 0x245a: 0x008a, 0x245b: 0x007a, 0x245c: 0x006a, 0x245d: 0x009a,\n\t0x245e: 0x008a, 0x245f: 0x0004, 0x2460: 0x000a, 0x2461: 0x000a, 0x2462: 0x0003, 0x2463: 0x0003,\n\t0x2464: 0x000a, 0x2465: 0x000a, 0x2466: 0x000a, 0x2468: 0x000a, 0x2469: 0x0004,\n\t0x246a: 0x0004, 0x246b: 0x000a,\n\t0x2470: 0x000d, 0x2471: 0x000d, 0x2472: 0x000d, 0x2473: 0x000d, 0x2474: 0x000d, 0x2475: 0x000d,\n\t0x2476: 0x000d, 0x2477: 0x000d, 0x2478: 0x000d, 0x2479: 0x000d, 0x247a: 0x000d, 0x247b: 0x000d,\n\t0x247c: 0x000d, 0x247d: 0x000d, 0x247e: 0x000d, 0x247f: 0x000d,\n\t// Block 0x92, offset 0x2480\n\t0x2480: 0x000d, 0x2481: 0x000d, 0x2482: 0x000d, 0x2483: 0x000d, 0x2484: 0x000d, 0x2485: 0x000d,\n\t0x2486: 0x000d, 0x2487: 0x000d, 0x2488: 0x000d, 0x2489: 0x000d, 0x248a: 0x000d, 0x248b: 0x000d,\n\t0x248c: 0x000d, 0x248d: 0x000d, 0x248e: 0x000d, 0x248f: 0x000d, 0x2490: 0x000d, 0x2491: 0x000d,\n\t0x2492: 0x000d, 0x2493: 0x000d, 0x2494: 0x000d, 0x2495: 0x000d, 0x2496: 0x000d, 0x2497: 0x000d,\n\t0x2498: 0x000d, 0x2499: 0x000d, 0x249a: 0x000d, 0x249b: 0x000d, 0x249c: 0x000d, 0x249d: 0x000d,\n\t0x249e: 0x000d, 0x249f: 0x000d, 0x24a0: 0x000d, 0x24a1: 0x000d, 0x24a2: 0x000d, 0x24a3: 0x000d,\n\t0x24a4: 0x000d, 0x24a5: 0x000d, 0x24a6: 0x000d, 0x24a7: 0x000d, 0x24a8: 0x000d, 0x24a9: 0x000d,\n\t0x24aa: 0x000d, 0x24ab: 0x000d, 0x24ac: 0x000d, 0x24ad: 0x000d, 0x24ae: 0x000d, 0x24af: 0x000d,\n\t0x24b0: 0x000d, 0x24b1: 0x000d, 0x24b2: 0x000d, 0x24b3: 0x000d, 0x24b4: 0x000d, 0x24b5: 0x000d,\n\t0x24b6: 0x000d, 0x24b7: 0x000d, 0x24b8: 0x000d, 0x24b9: 0x000d, 0x24ba: 0x000d, 0x24bb: 0x000d,\n\t0x24bc: 0x000d, 0x24bd: 0x000d, 0x24be: 0x000d, 0x24bf: 0x000b,\n\t// Block 0x93, offset 0x24c0\n\t0x24c1: 0x000a, 0x24c2: 0x000a, 0x24c3: 0x0004, 0x24c4: 0x0004, 0x24c5: 0x0004,\n\t0x24c6: 0x000a, 0x24c7: 0x000a, 0x24c8: 0x003a, 0x24c9: 0x002a, 0x24ca: 0x000a, 0x24cb: 0x0003,\n\t0x24cc: 0x0006, 0x24cd: 0x0003, 0x24ce: 0x0006, 0x24cf: 0x0006, 0x24d0: 0x0002, 0x24d1: 0x0002,\n\t0x24d2: 0x0002, 0x24d3: 0x0002, 0x24d4: 0x0002, 0x24d5: 0x0002, 0x24d6: 0x0002, 0x24d7: 0x0002,\n\t0x24d8: 0x0002, 0x24d9: 0x0002, 0x24da: 0x0006, 0x24db: 0x000a, 0x24dc: 0x000a, 0x24dd: 0x000a,\n\t0x24de: 0x000a, 0x24df: 0x000a, 0x24e0: 0x000a,\n\t0x24fb: 0x005a,\n\t0x24fc: 0x000a, 0x24fd: 0x004a, 0x24fe: 0x000a, 0x24ff: 0x000a,\n\t// Block 0x94, offset 0x2500\n\t0x2500: 0x000a,\n\t0x251b: 0x005a, 0x251c: 0x000a, 0x251d: 0x004a,\n\t0x251e: 0x000a, 0x251f: 0x00fa, 0x2520: 0x00ea, 0x2521: 0x000a, 0x2522: 0x003a, 0x2523: 0x002a,\n\t0x2524: 0x000a, 0x2525: 0x000a,\n\t// Block 0x95, offset 0x2540\n\t0x2560: 0x0004, 0x2561: 0x0004, 0x2562: 0x000a, 0x2563: 0x000a,\n\t0x2564: 0x000a, 0x2565: 0x0004, 0x2566: 0x0004, 0x2568: 0x000a, 0x2569: 0x000a,\n\t0x256a: 0x000a, 0x256b: 0x000a, 0x256c: 0x000a, 0x256d: 0x000a, 0x256e: 0x000a,\n\t0x2570: 0x000b, 0x2571: 0x000b, 0x2572: 0x000b, 0x2573: 0x000b, 0x2574: 0x000b, 0x2575: 0x000b,\n\t0x2576: 0x000b, 0x2577: 0x000b, 0x2578: 0x000b, 0x2579: 0x000a, 0x257a: 0x000a, 0x257b: 0x000a,\n\t0x257c: 0x000a, 0x257d: 0x000a, 0x257e: 0x000b, 0x257f: 0x000b,\n\t// Block 0x96, offset 0x2580\n\t0x2581: 0x000a,\n\t// Block 0x97, offset 0x25c0\n\t0x25c0: 0x000a, 0x25c1: 0x000a, 0x25c2: 0x000a, 0x25c3: 0x000a, 0x25c4: 0x000a, 0x25c5: 0x000a,\n\t0x25c6: 0x000a, 0x25c7: 0x000a, 0x25c8: 0x000a, 0x25c9: 0x000a, 0x25ca: 0x000a, 0x25cb: 0x000a,\n\t0x25cc: 0x000a, 0x25d0: 0x000a, 0x25d1: 0x000a,\n\t0x25d2: 0x000a, 0x25d3: 0x000a, 0x25d4: 0x000a, 0x25d5: 0x000a, 0x25d6: 0x000a, 0x25d7: 0x000a,\n\t0x25d8: 0x000a, 0x25d9: 0x000a, 0x25da: 0x000a, 0x25db: 0x000a,\n\t0x25e0: 0x000a,\n\t// Block 0x98, offset 0x2600\n\t0x263d: 0x000c,\n\t// Block 0x99, offset 0x2640\n\t0x2660: 0x000c, 0x2661: 0x0002, 0x2662: 0x0002, 0x2663: 0x0002,\n\t0x2664: 0x0002, 0x2665: 0x0002, 0x2666: 0x0002, 0x2667: 0x0002, 0x2668: 0x0002, 0x2669: 0x0002,\n\t0x266a: 0x0002, 0x266b: 0x0002, 0x266c: 0x0002, 0x266d: 0x0002, 0x266e: 0x0002, 0x266f: 0x0002,\n\t0x2670: 0x0002, 0x2671: 0x0002, 0x2672: 0x0002, 0x2673: 0x0002, 0x2674: 0x0002, 0x2675: 0x0002,\n\t0x2676: 0x0002, 0x2677: 0x0002, 0x2678: 0x0002, 0x2679: 0x0002, 0x267a: 0x0002, 0x267b: 0x0002,\n\t// Block 0x9a, offset 0x2680\n\t0x26b6: 0x000c, 0x26b7: 0x000c, 0x26b8: 0x000c, 0x26b9: 0x000c, 0x26ba: 0x000c,\n\t// Block 0x9b, offset 0x26c0\n\t0x26c0: 0x0001, 0x26c1: 0x0001, 0x26c2: 0x0001, 0x26c3: 0x0001, 0x26c4: 0x0001, 0x26c5: 0x0001,\n\t0x26c6: 0x0001, 0x26c7: 0x0001, 0x26c8: 0x0001, 0x26c9: 0x0001, 0x26ca: 0x0001, 0x26cb: 0x0001,\n\t0x26cc: 0x0001, 0x26cd: 0x0001, 0x26ce: 0x0001, 0x26cf: 0x0001, 0x26d0: 0x0001, 0x26d1: 0x0001,\n\t0x26d2: 0x0001, 0x26d3: 0x0001, 0x26d4: 0x0001, 0x26d5: 0x0001, 0x26d6: 0x0001, 0x26d7: 0x0001,\n\t0x26d8: 0x0001, 0x26d9: 0x0001, 0x26da: 0x0001, 0x26db: 0x0001, 0x26dc: 0x0001, 0x26dd: 0x0001,\n\t0x26de: 0x0001, 0x26df: 0x0001, 0x26e0: 0x0001, 0x26e1: 0x0001, 0x26e2: 0x0001, 0x26e3: 0x0001,\n\t0x26e4: 0x0001, 0x26e5: 0x0001, 0x26e6: 0x0001, 0x26e7: 0x0001, 0x26e8: 0x0001, 0x26e9: 0x0001,\n\t0x26ea: 0x0001, 0x26eb: 0x0001, 0x26ec: 0x0001, 0x26ed: 0x0001, 0x26ee: 0x0001, 0x26ef: 0x0001,\n\t0x26f0: 0x0001, 0x26f1: 0x0001, 0x26f2: 0x0001, 0x26f3: 0x0001, 0x26f4: 0x0001, 0x26f5: 0x0001,\n\t0x26f6: 0x0001, 0x26f7: 0x0001, 0x26f8: 0x0001, 0x26f9: 0x0001, 0x26fa: 0x0001, 0x26fb: 0x0001,\n\t0x26fc: 0x0001, 0x26fd: 0x0001, 0x26fe: 0x0001, 0x26ff: 0x0001,\n\t// Block 0x9c, offset 0x2700\n\t0x2700: 0x0001, 0x2701: 0x0001, 0x2702: 0x0001, 0x2703: 0x0001, 0x2704: 0x0001, 0x2705: 0x0001,\n\t0x2706: 0x0001, 0x2707: 0x0001, 0x2708: 0x0001, 0x2709: 0x0001, 0x270a: 0x0001, 0x270b: 0x0001,\n\t0x270c: 0x0001, 0x270d: 0x0001, 0x270e: 0x0001, 0x270f: 0x0001, 0x2710: 0x0001, 0x2711: 0x0001,\n\t0x2712: 0x0001, 0x2713: 0x0001, 0x2714: 0x0001, 0x2715: 0x0001, 0x2716: 0x0001, 0x2717: 0x0001,\n\t0x2718: 0x0001, 0x2719: 0x0001, 0x271a: 0x0001, 0x271b: 0x0001, 0x271c: 0x0001, 0x271d: 0x0001,\n\t0x271e: 0x0001, 0x271f: 0x000a, 0x2720: 0x0001, 0x2721: 0x0001, 0x2722: 0x0001, 0x2723: 0x0001,\n\t0x2724: 0x0001, 0x2725: 0x0001, 0x2726: 0x0001, 0x2727: 0x0001, 0x2728: 0x0001, 0x2729: 0x0001,\n\t0x272a: 0x0001, 0x272b: 0x0001, 0x272c: 0x0001, 0x272d: 0x0001, 0x272e: 0x0001, 0x272f: 0x0001,\n\t0x2730: 0x0001, 0x2731: 0x0001, 0x2732: 0x0001, 0x2733: 0x0001, 0x2734: 0x0001, 0x2735: 0x0001,\n\t0x2736: 0x0001, 0x2737: 0x0001, 0x2738: 0x0001, 0x2739: 0x0001, 0x273a: 0x0001, 0x273b: 0x0001,\n\t0x273c: 0x0001, 0x273d: 0x0001, 0x273e: 0x0001, 0x273f: 0x0001,\n\t// Block 0x9d, offset 0x2740\n\t0x2740: 0x0001, 0x2741: 0x000c, 0x2742: 0x000c, 0x2743: 0x000c, 0x2744: 0x0001, 0x2745: 0x000c,\n\t0x2746: 0x000c, 0x2747: 0x0001, 0x2748: 0x0001, 0x2749: 0x0001, 0x274a: 0x0001, 0x274b: 0x0001,\n\t0x274c: 0x000c, 0x274d: 0x000c, 0x274e: 0x000c, 0x274f: 0x000c, 0x2750: 0x0001, 0x2751: 0x0001,\n\t0x2752: 0x0001, 0x2753: 0x0001, 0x2754: 0x0001, 0x2755: 0x0001, 0x2756: 0x0001, 0x2757: 0x0001,\n\t0x2758: 0x0001, 0x2759: 0x0001, 0x275a: 0x0001, 0x275b: 0x0001, 0x275c: 0x0001, 0x275d: 0x0001,\n\t0x275e: 0x0001, 0x275f: 0x0001, 0x2760: 0x0001, 0x2761: 0x0001, 0x2762: 0x0001, 0x2763: 0x0001,\n\t0x2764: 0x0001, 0x2765: 0x0001, 0x2766: 0x0001, 0x2767: 0x0001, 0x2768: 0x0001, 0x2769: 0x0001,\n\t0x276a: 0x0001, 0x276b: 0x0001, 0x276c: 0x0001, 0x276d: 0x0001, 0x276e: 0x0001, 0x276f: 0x0001,\n\t0x2770: 0x0001, 0x2771: 0x0001, 0x2772: 0x0001, 0x2773: 0x0001, 0x2774: 0x0001, 0x2775: 0x0001,\n\t0x2776: 0x0001, 0x2777: 0x0001, 0x2778: 0x000c, 0x2779: 0x000c, 0x277a: 0x000c, 0x277b: 0x0001,\n\t0x277c: 0x0001, 0x277d: 0x0001, 0x277e: 0x0001, 0x277f: 0x000c,\n\t// Block 0x9e, offset 0x2780\n\t0x2780: 0x0001, 0x2781: 0x0001, 0x2782: 0x0001, 0x2783: 0x0001, 0x2784: 0x0001, 0x2785: 0x0001,\n\t0x2786: 0x0001, 0x2787: 0x0001, 0x2788: 0x0001, 0x2789: 0x0001, 0x278a: 0x0001, 0x278b: 0x0001,\n\t0x278c: 0x0001, 0x278d: 0x0001, 0x278e: 0x0001, 0x278f: 0x0001, 0x2790: 0x0001, 0x2791: 0x0001,\n\t0x2792: 0x0001, 0x2793: 0x0001, 0x2794: 0x0001, 0x2795: 0x0001, 0x2796: 0x0001, 0x2797: 0x0001,\n\t0x2798: 0x0001, 0x2799: 0x0001, 0x279a: 0x0001, 0x279b: 0x0001, 0x279c: 0x0001, 0x279d: 0x0001,\n\t0x279e: 0x0001, 0x279f: 0x0001, 0x27a0: 0x0001, 0x27a1: 0x0001, 0x27a2: 0x0001, 0x27a3: 0x0001,\n\t0x27a4: 0x0001, 0x27a5: 0x000c, 0x27a6: 0x000c, 0x27a7: 0x0001, 0x27a8: 0x0001, 0x27a9: 0x0001,\n\t0x27aa: 0x0001, 0x27ab: 0x0001, 0x27ac: 0x0001, 0x27ad: 0x0001, 0x27ae: 0x0001, 0x27af: 0x0001,\n\t0x27b0: 0x0001, 0x27b1: 0x0001, 0x27b2: 0x0001, 0x27b3: 0x0001, 0x27b4: 0x0001, 0x27b5: 0x0001,\n\t0x27b6: 0x0001, 0x27b7: 0x0001, 0x27b8: 0x0001, 0x27b9: 0x0001, 0x27ba: 0x0001, 0x27bb: 0x0001,\n\t0x27bc: 0x0001, 0x27bd: 0x0001, 0x27be: 0x0001, 0x27bf: 0x0001,\n\t// Block 0x9f, offset 0x27c0\n\t0x27c0: 0x0001, 0x27c1: 0x0001, 0x27c2: 0x0001, 0x27c3: 0x0001, 0x27c4: 0x0001, 0x27c5: 0x0001,\n\t0x27c6: 0x0001, 0x27c7: 0x0001, 0x27c8: 0x0001, 0x27c9: 0x0001, 0x27ca: 0x0001, 0x27cb: 0x0001,\n\t0x27cc: 0x0001, 0x27cd: 0x0001, 0x27ce: 0x0001, 0x27cf: 0x0001, 0x27d0: 0x0001, 0x27d1: 0x0001,\n\t0x27d2: 0x0001, 0x27d3: 0x0001, 0x27d4: 0x0001, 0x27d5: 0x0001, 0x27d6: 0x0001, 0x27d7: 0x0001,\n\t0x27d8: 0x0001, 0x27d9: 0x0001, 0x27da: 0x0001, 0x27db: 0x0001, 0x27dc: 0x0001, 0x27dd: 0x0001,\n\t0x27de: 0x0001, 0x27df: 0x0001, 0x27e0: 0x0001, 0x27e1: 0x0001, 0x27e2: 0x0001, 0x27e3: 0x0001,\n\t0x27e4: 0x0001, 0x27e5: 0x0001, 0x27e6: 0x0001, 0x27e7: 0x0001, 0x27e8: 0x0001, 0x27e9: 0x0001,\n\t0x27ea: 0x0001, 0x27eb: 0x0001, 0x27ec: 0x0001, 0x27ed: 0x0001, 0x27ee: 0x0001, 0x27ef: 0x0001,\n\t0x27f0: 0x0001, 0x27f1: 0x0001, 0x27f2: 0x0001, 0x27f3: 0x0001, 0x27f4: 0x0001, 0x27f5: 0x0001,\n\t0x27f6: 0x0001, 0x27f7: 0x0001, 0x27f8: 0x0001, 0x27f9: 0x000a, 0x27fa: 0x000a, 0x27fb: 0x000a,\n\t0x27fc: 0x000a, 0x27fd: 0x000a, 0x27fe: 0x000a, 0x27ff: 0x000a,\n\t// Block 0xa0, offset 0x2800\n\t0x2800: 0x000d, 0x2801: 0x000d, 0x2802: 0x000d, 0x2803: 0x000d, 0x2804: 0x000d, 0x2805: 0x000d,\n\t0x2806: 0x000d, 0x2807: 0x000d, 0x2808: 0x000d, 0x2809: 0x000d, 0x280a: 0x000d, 0x280b: 0x000d,\n\t0x280c: 0x000d, 0x280d: 0x000d, 0x280e: 0x000d, 0x280f: 0x000d, 0x2810: 0x000d, 0x2811: 0x000d,\n\t0x2812: 0x000d, 0x2813: 0x000d, 0x2814: 0x000d, 0x2815: 0x000d, 0x2816: 0x000d, 0x2817: 0x000d,\n\t0x2818: 0x000d, 0x2819: 0x000d, 0x281a: 0x000d, 0x281b: 0x000d, 0x281c: 0x000d, 0x281d: 0x000d,\n\t0x281e: 0x000d, 0x281f: 0x000d, 0x2820: 0x000d, 0x2821: 0x000d, 0x2822: 0x000d, 0x2823: 0x000d,\n\t0x2824: 0x000c, 0x2825: 0x000c, 0x2826: 0x000c, 0x2827: 0x000c, 0x2828: 0x000d, 0x2829: 0x000d,\n\t0x282a: 0x000d, 0x282b: 0x000d, 0x282c: 0x000d, 0x282d: 0x000d, 0x282e: 0x000d, 0x282f: 0x000d,\n\t0x2830: 0x0005, 0x2831: 0x0005, 0x2832: 0x0005, 0x2833: 0x0005, 0x2834: 0x0005, 0x2835: 0x0005,\n\t0x2836: 0x0005, 0x2837: 0x0005, 0x2838: 0x0005, 0x2839: 0x0005, 0x283a: 0x000d, 0x283b: 0x000d,\n\t0x283c: 0x000d, 0x283d: 0x000d, 0x283e: 0x000d, 0x283f: 0x000d,\n\t// Block 0xa1, offset 0x2840\n\t0x2840: 0x0001, 0x2841: 0x0001, 0x2842: 0x0001, 0x2843: 0x0001, 0x2844: 0x0001, 0x2845: 0x0001,\n\t0x2846: 0x0001, 0x2847: 0x0001, 0x2848: 0x0001, 0x2849: 0x0001, 0x284a: 0x0001, 0x284b: 0x0001,\n\t0x284c: 0x0001, 0x284d: 0x0001, 0x284e: 0x0001, 0x284f: 0x0001, 0x2850: 0x0001, 0x2851: 0x0001,\n\t0x2852: 0x0001, 0x2853: 0x0001, 0x2854: 0x0001, 0x2855: 0x0001, 0x2856: 0x0001, 0x2857: 0x0001,\n\t0x2858: 0x0001, 0x2859: 0x0001, 0x285a: 0x0001, 0x285b: 0x0001, 0x285c: 0x0001, 0x285d: 0x0001,\n\t0x285e: 0x0001, 0x285f: 0x0001, 0x2860: 0x0005, 0x2861: 0x0005, 0x2862: 0x0005, 0x2863: 0x0005,\n\t0x2864: 0x0005, 0x2865: 0x0005, 0x2866: 0x0005, 0x2867: 0x0005, 0x2868: 0x0005, 0x2869: 0x0005,\n\t0x286a: 0x0005, 0x286b: 0x0005, 0x286c: 0x0005, 0x286d: 0x0005, 0x286e: 0x0005, 0x286f: 0x0005,\n\t0x2870: 0x0005, 0x2871: 0x0005, 0x2872: 0x0005, 0x2873: 0x0005, 0x2874: 0x0005, 0x2875: 0x0005,\n\t0x2876: 0x0005, 0x2877: 0x0005, 0x2878: 0x0005, 0x2879: 0x0005, 0x287a: 0x0005, 0x287b: 0x0005,\n\t0x287c: 0x0005, 0x287d: 0x0005, 0x287e: 0x0005, 0x287f: 0x0001,\n\t// Block 0xa2, offset 0x2880\n\t0x2880: 0x0001, 0x2881: 0x0001, 0x2882: 0x0001, 0x2883: 0x0001, 0x2884: 0x0001, 0x2885: 0x0001,\n\t0x2886: 0x0001, 0x2887: 0x0001, 0x2888: 0x0001, 0x2889: 0x0001, 0x288a: 0x0001, 0x288b: 0x0001,\n\t0x288c: 0x0001, 0x288d: 0x0001, 0x288e: 0x0001, 0x288f: 0x0001, 0x2890: 0x0001, 0x2891: 0x0001,\n\t0x2892: 0x0001, 0x2893: 0x0001, 0x2894: 0x0001, 0x2895: 0x0001, 0x2896: 0x0001, 0x2897: 0x0001,\n\t0x2898: 0x0001, 0x2899: 0x0001, 0x289a: 0x0001, 0x289b: 0x0001, 0x289c: 0x0001, 0x289d: 0x0001,\n\t0x289e: 0x0001, 0x289f: 0x0001, 0x28a0: 0x0001, 0x28a1: 0x0001, 0x28a2: 0x0001, 0x28a3: 0x0001,\n\t0x28a4: 0x0001, 0x28a5: 0x0001, 0x28a6: 0x0001, 0x28a7: 0x0001, 0x28a8: 0x0001, 0x28a9: 0x0001,\n\t0x28aa: 0x0001, 0x28ab: 0x0001, 0x28ac: 0x0001, 0x28ad: 0x0001, 0x28ae: 0x0001, 0x28af: 0x0001,\n\t0x28b0: 0x000d, 0x28b1: 0x000d, 0x28b2: 0x000d, 0x28b3: 0x000d, 0x28b4: 0x000d, 0x28b5: 0x000d,\n\t0x28b6: 0x000d, 0x28b7: 0x000d, 0x28b8: 0x000d, 0x28b9: 0x000d, 0x28ba: 0x000d, 0x28bb: 0x000d,\n\t0x28bc: 0x000d, 0x28bd: 0x000d, 0x28be: 0x000d, 0x28bf: 0x000d,\n\t// Block 0xa3, offset 0x28c0\n\t0x28c0: 0x000d, 0x28c1: 0x000d, 0x28c2: 0x000d, 0x28c3: 0x000d, 0x28c4: 0x000d, 0x28c5: 0x000d,\n\t0x28c6: 0x000c, 0x28c7: 0x000c, 0x28c8: 0x000c, 0x28c9: 0x000c, 0x28ca: 0x000c, 0x28cb: 0x000c,\n\t0x28cc: 0x000c, 0x28cd: 0x000c, 0x28ce: 0x000c, 0x28cf: 0x000c, 0x28d0: 0x000c, 0x28d1: 0x000d,\n\t0x28d2: 0x000d, 0x28d3: 0x000d, 0x28d4: 0x000d, 0x28d5: 0x000d, 0x28d6: 0x000d, 0x28d7: 0x000d,\n\t0x28d8: 0x000d, 0x28d9: 0x000d, 0x28da: 0x000d, 0x28db: 0x000d, 0x28dc: 0x000d, 0x28dd: 0x000d,\n\t0x28de: 0x000d, 0x28df: 0x000d, 0x28e0: 0x000d, 0x28e1: 0x000d, 0x28e2: 0x000d, 0x28e3: 0x000d,\n\t0x28e4: 0x000d, 0x28e5: 0x000d, 0x28e6: 0x000d, 0x28e7: 0x000d, 0x28e8: 0x000d, 0x28e9: 0x000d,\n\t0x28ea: 0x000d, 0x28eb: 0x000d, 0x28ec: 0x000d, 0x28ed: 0x000d, 0x28ee: 0x000d, 0x28ef: 0x000d,\n\t0x28f0: 0x0001, 0x28f1: 0x0001, 0x28f2: 0x0001, 0x28f3: 0x0001, 0x28f4: 0x0001, 0x28f5: 0x0001,\n\t0x28f6: 0x0001, 0x28f7: 0x0001, 0x28f8: 0x0001, 0x28f9: 0x0001, 0x28fa: 0x0001, 0x28fb: 0x0001,\n\t0x28fc: 0x0001, 0x28fd: 0x0001, 0x28fe: 0x0001, 0x28ff: 0x0001,\n\t// Block 0xa4, offset 0x2900\n\t0x2901: 0x000c,\n\t0x2938: 0x000c, 0x2939: 0x000c, 0x293a: 0x000c, 0x293b: 0x000c,\n\t0x293c: 0x000c, 0x293d: 0x000c, 0x293e: 0x000c, 0x293f: 0x000c,\n\t// Block 0xa5, offset 0x2940\n\t0x2940: 0x000c, 0x2941: 0x000c, 0x2942: 0x000c, 0x2943: 0x000c, 0x2944: 0x000c, 0x2945: 0x000c,\n\t0x2946: 0x000c,\n\t0x2952: 0x000a, 0x2953: 0x000a, 0x2954: 0x000a, 0x2955: 0x000a, 0x2956: 0x000a, 0x2957: 0x000a,\n\t0x2958: 0x000a, 0x2959: 0x000a, 0x295a: 0x000a, 0x295b: 0x000a, 0x295c: 0x000a, 0x295d: 0x000a,\n\t0x295e: 0x000a, 0x295f: 0x000a, 0x2960: 0x000a, 0x2961: 0x000a, 0x2962: 0x000a, 0x2963: 0x000a,\n\t0x2964: 0x000a, 0x2965: 0x000a,\n\t0x297f: 0x000c,\n\t// Block 0xa6, offset 0x2980\n\t0x2980: 0x000c, 0x2981: 0x000c,\n\t0x29b3: 0x000c, 0x29b4: 0x000c, 0x29b5: 0x000c,\n\t0x29b6: 0x000c, 0x29b9: 0x000c, 0x29ba: 0x000c,\n\t// Block 0xa7, offset 0x29c0\n\t0x29c0: 0x000c, 0x29c1: 0x000c, 0x29c2: 0x000c,\n\t0x29e7: 0x000c, 0x29e8: 0x000c, 0x29e9: 0x000c,\n\t0x29ea: 0x000c, 0x29eb: 0x000c, 0x29ed: 0x000c, 0x29ee: 0x000c, 0x29ef: 0x000c,\n\t0x29f0: 0x000c, 0x29f1: 0x000c, 0x29f2: 0x000c, 0x29f3: 0x000c, 0x29f4: 0x000c,\n\t// Block 0xa8, offset 0x2a00\n\t0x2a33: 0x000c,\n\t// Block 0xa9, offset 0x2a40\n\t0x2a40: 0x000c, 0x2a41: 0x000c,\n\t0x2a76: 0x000c, 0x2a77: 0x000c, 0x2a78: 0x000c, 0x2a79: 0x000c, 0x2a7a: 0x000c, 0x2a7b: 0x000c,\n\t0x2a7c: 0x000c, 0x2a7d: 0x000c, 0x2a7e: 0x000c,\n\t// Block 0xaa, offset 0x2a80\n\t0x2a89: 0x000c, 0x2a8a: 0x000c, 0x2a8b: 0x000c,\n\t0x2a8c: 0x000c,\n\t// Block 0xab, offset 0x2ac0\n\t0x2aef: 0x000c,\n\t0x2af0: 0x000c, 0x2af1: 0x000c, 0x2af4: 0x000c,\n\t0x2af6: 0x000c, 0x2af7: 0x000c,\n\t0x2afe: 0x000c,\n\t// Block 0xac, offset 0x2b00\n\t0x2b1f: 0x000c, 0x2b23: 0x000c,\n\t0x2b24: 0x000c, 0x2b25: 0x000c, 0x2b26: 0x000c, 0x2b27: 0x000c, 0x2b28: 0x000c, 0x2b29: 0x000c,\n\t0x2b2a: 0x000c,\n\t// Block 0xad, offset 0x2b40\n\t0x2b40: 0x000c,\n\t0x2b66: 0x000c, 0x2b67: 0x000c, 0x2b68: 0x000c, 0x2b69: 0x000c,\n\t0x2b6a: 0x000c, 0x2b6b: 0x000c, 0x2b6c: 0x000c,\n\t0x2b70: 0x000c, 0x2b71: 0x000c, 0x2b72: 0x000c, 0x2b73: 0x000c, 0x2b74: 0x000c,\n\t// Block 0xae, offset 0x2b80\n\t0x2bb8: 0x000c, 0x2bb9: 0x000c, 0x2bba: 0x000c, 0x2bbb: 0x000c,\n\t0x2bbc: 0x000c, 0x2bbd: 0x000c, 0x2bbe: 0x000c, 0x2bbf: 0x000c,\n\t// Block 0xaf, offset 0x2bc0\n\t0x2bc2: 0x000c, 0x2bc3: 0x000c, 0x2bc4: 0x000c,\n\t0x2bc6: 0x000c,\n\t0x2bde: 0x000c,\n\t// Block 0xb0, offset 0x2c00\n\t0x2c33: 0x000c, 0x2c34: 0x000c, 0x2c35: 0x000c,\n\t0x2c36: 0x000c, 0x2c37: 0x000c, 0x2c38: 0x000c, 0x2c3a: 0x000c,\n\t0x2c3f: 0x000c,\n\t// Block 0xb1, offset 0x2c40\n\t0x2c40: 0x000c, 0x2c42: 0x000c, 0x2c43: 0x000c,\n\t// Block 0xb2, offset 0x2c80\n\t0x2cb2: 0x000c, 0x2cb3: 0x000c, 0x2cb4: 0x000c, 0x2cb5: 0x000c,\n\t0x2cbc: 0x000c, 0x2cbd: 0x000c, 0x2cbf: 0x000c,\n\t// Block 0xb3, offset 0x2cc0\n\t0x2cc0: 0x000c,\n\t0x2cdc: 0x000c, 0x2cdd: 0x000c,\n\t// Block 0xb4, offset 0x2d00\n\t0x2d33: 0x000c, 0x2d34: 0x000c, 0x2d35: 0x000c,\n\t0x2d36: 0x000c, 0x2d37: 0x000c, 0x2d38: 0x000c, 0x2d39: 0x000c, 0x2d3a: 0x000c,\n\t0x2d3d: 0x000c, 0x2d3f: 0x000c,\n\t// Block 0xb5, offset 0x2d40\n\t0x2d40: 0x000c,\n\t0x2d60: 0x000a, 0x2d61: 0x000a, 0x2d62: 0x000a, 0x2d63: 0x000a,\n\t0x2d64: 0x000a, 0x2d65: 0x000a, 0x2d66: 0x000a, 0x2d67: 0x000a, 0x2d68: 0x000a, 0x2d69: 0x000a,\n\t0x2d6a: 0x000a, 0x2d6b: 0x000a, 0x2d6c: 0x000a,\n\t// Block 0xb6, offset 0x2d80\n\t0x2dab: 0x000c, 0x2dad: 0x000c,\n\t0x2db0: 0x000c, 0x2db1: 0x000c, 0x2db2: 0x000c, 0x2db3: 0x000c, 0x2db4: 0x000c, 0x2db5: 0x000c,\n\t0x2db7: 0x000c,\n\t// Block 0xb7, offset 0x2dc0\n\t0x2ddd: 0x000c,\n\t0x2dde: 0x000c, 0x2ddf: 0x000c, 0x2de2: 0x000c, 0x2de3: 0x000c,\n\t0x2de4: 0x000c, 0x2de5: 0x000c, 0x2de7: 0x000c, 0x2de8: 0x000c, 0x2de9: 0x000c,\n\t0x2dea: 0x000c, 0x2deb: 0x000c,\n\t// Block 0xb8, offset 0x2e00\n\t0x2e2f: 0x000c,\n\t0x2e30: 0x000c, 0x2e31: 0x000c, 0x2e32: 0x000c, 0x2e33: 0x000c, 0x2e34: 0x000c, 0x2e35: 0x000c,\n\t0x2e36: 0x000c, 0x2e37: 0x000c, 0x2e39: 0x000c, 0x2e3a: 0x000c,\n\t// Block 0xb9, offset 0x2e40\n\t0x2e54: 0x000c, 0x2e55: 0x000c, 0x2e56: 0x000c, 0x2e57: 0x000c,\n\t0x2e5a: 0x000c, 0x2e5b: 0x000c,\n\t0x2e60: 0x000c,\n\t// Block 0xba, offset 0x2e80\n\t0x2e81: 0x000c, 0x2e82: 0x000c, 0x2e83: 0x000c, 0x2e84: 0x000c, 0x2e85: 0x000c,\n\t0x2e86: 0x000c, 0x2e89: 0x000c, 0x2e8a: 0x000c,\n\t0x2eb3: 0x000c, 0x2eb4: 0x000c, 0x2eb5: 0x000c,\n\t0x2eb6: 0x000c, 0x2eb7: 0x000c, 0x2eb8: 0x000c, 0x2ebb: 0x000c,\n\t0x2ebc: 0x000c, 0x2ebd: 0x000c, 0x2ebe: 0x000c,\n\t// Block 0xbb, offset 0x2ec0\n\t0x2ec7: 0x000c,\n\t0x2ed1: 0x000c,\n\t0x2ed2: 0x000c, 0x2ed3: 0x000c, 0x2ed4: 0x000c, 0x2ed5: 0x000c, 0x2ed6: 0x000c,\n\t0x2ed9: 0x000c, 0x2eda: 0x000c, 0x2edb: 0x000c,\n\t// Block 0xbc, offset 0x2f00\n\t0x2f0a: 0x000c, 0x2f0b: 0x000c,\n\t0x2f0c: 0x000c, 0x2f0d: 0x000c, 0x2f0e: 0x000c, 0x2f0f: 0x000c, 0x2f10: 0x000c, 0x2f11: 0x000c,\n\t0x2f12: 0x000c, 0x2f13: 0x000c, 0x2f14: 0x000c, 0x2f15: 0x000c, 0x2f16: 0x000c,\n\t0x2f18: 0x000c, 0x2f19: 0x000c,\n\t// Block 0xbd, offset 0x2f40\n\t0x2f70: 0x000c, 0x2f71: 0x000c, 0x2f72: 0x000c, 0x2f73: 0x000c, 0x2f74: 0x000c, 0x2f75: 0x000c,\n\t0x2f76: 0x000c, 0x2f78: 0x000c, 0x2f79: 0x000c, 0x2f7a: 0x000c, 0x2f7b: 0x000c,\n\t0x2f7c: 0x000c, 0x2f7d: 0x000c,\n\t// Block 0xbe, offset 0x2f80\n\t0x2f92: 0x000c, 0x2f93: 0x000c, 0x2f94: 0x000c, 0x2f95: 0x000c, 0x2f96: 0x000c, 0x2f97: 0x000c,\n\t0x2f98: 0x000c, 0x2f99: 0x000c, 0x2f9a: 0x000c, 0x2f9b: 0x000c, 0x2f9c: 0x000c, 0x2f9d: 0x000c,\n\t0x2f9e: 0x000c, 0x2f9f: 0x000c, 0x2fa0: 0x000c, 0x2fa1: 0x000c, 0x2fa2: 0x000c, 0x2fa3: 0x000c,\n\t0x2fa4: 0x000c, 0x2fa5: 0x000c, 0x2fa6: 0x000c, 0x2fa7: 0x000c,\n\t0x2faa: 0x000c, 0x2fab: 0x000c, 0x2fac: 0x000c, 0x2fad: 0x000c, 0x2fae: 0x000c, 0x2faf: 0x000c,\n\t0x2fb0: 0x000c, 0x2fb2: 0x000c, 0x2fb3: 0x000c, 0x2fb5: 0x000c,\n\t0x2fb6: 0x000c,\n\t// Block 0xbf, offset 0x2fc0\n\t0x2ff1: 0x000c, 0x2ff2: 0x000c, 0x2ff3: 0x000c, 0x2ff4: 0x000c, 0x2ff5: 0x000c,\n\t0x2ff6: 0x000c, 0x2ffa: 0x000c,\n\t0x2ffc: 0x000c, 0x2ffd: 0x000c, 0x2fff: 0x000c,\n\t// Block 0xc0, offset 0x3000\n\t0x3000: 0x000c, 0x3001: 0x000c, 0x3002: 0x000c, 0x3003: 0x000c, 0x3004: 0x000c, 0x3005: 0x000c,\n\t0x3007: 0x000c,\n\t// Block 0xc1, offset 0x3040\n\t0x3050: 0x000c, 0x3051: 0x000c,\n\t0x3055: 0x000c, 0x3057: 0x000c,\n\t// Block 0xc2, offset 0x3080\n\t0x30b3: 0x000c, 0x30b4: 0x000c,\n\t// Block 0xc3, offset 0x30c0\n\t0x30d5: 0x000a, 0x30d6: 0x000a, 0x30d7: 0x000a,\n\t0x30d8: 0x000a, 0x30d9: 0x000a, 0x30da: 0x000a, 0x30db: 0x000a, 0x30dc: 0x000a, 0x30dd: 0x0004,\n\t0x30de: 0x0004, 0x30df: 0x0004, 0x30e0: 0x0004, 0x30e1: 0x000a, 0x30e2: 0x000a, 0x30e3: 0x000a,\n\t0x30e4: 0x000a, 0x30e5: 0x000a, 0x30e6: 0x000a, 0x30e7: 0x000a, 0x30e8: 0x000a, 0x30e9: 0x000a,\n\t0x30ea: 0x000a, 0x30eb: 0x000a, 0x30ec: 0x000a, 0x30ed: 0x000a, 0x30ee: 0x000a, 0x30ef: 0x000a,\n\t0x30f0: 0x000a, 0x30f1: 0x000a,\n\t// Block 0xc4, offset 0x3100\n\t0x3130: 0x000c, 0x3131: 0x000c, 0x3132: 0x000c, 0x3133: 0x000c, 0x3134: 0x000c,\n\t// Block 0xc5, offset 0x3140\n\t0x3170: 0x000c, 0x3171: 0x000c, 0x3172: 0x000c, 0x3173: 0x000c, 0x3174: 0x000c, 0x3175: 0x000c,\n\t0x3176: 0x000c,\n\t// Block 0xc6, offset 0x3180\n\t0x318f: 0x000c,\n\t// Block 0xc7, offset 0x31c0\n\t0x31cf: 0x000c, 0x31d0: 0x000c, 0x31d1: 0x000c,\n\t0x31d2: 0x000c,\n\t// Block 0xc8, offset 0x3200\n\t0x3222: 0x000a,\n\t// Block 0xc9, offset 0x3240\n\t0x325d: 0x000c,\n\t0x325e: 0x000c, 0x3260: 0x000b, 0x3261: 0x000b, 0x3262: 0x000b, 0x3263: 0x000b,\n\t// Block 0xca, offset 0x3280\n\t0x32a7: 0x000c, 0x32a8: 0x000c, 0x32a9: 0x000c,\n\t0x32b3: 0x000b, 0x32b4: 0x000b, 0x32b5: 0x000b,\n\t0x32b6: 0x000b, 0x32b7: 0x000b, 0x32b8: 0x000b, 0x32b9: 0x000b, 0x32ba: 0x000b, 0x32bb: 0x000c,\n\t0x32bc: 0x000c, 0x32bd: 0x000c, 0x32be: 0x000c, 0x32bf: 0x000c,\n\t// Block 0xcb, offset 0x32c0\n\t0x32c0: 0x000c, 0x32c1: 0x000c, 0x32c2: 0x000c, 0x32c5: 0x000c,\n\t0x32c6: 0x000c, 0x32c7: 0x000c, 0x32c8: 0x000c, 0x32c9: 0x000c, 0x32ca: 0x000c, 0x32cb: 0x000c,\n\t0x32ea: 0x000c, 0x32eb: 0x000c, 0x32ec: 0x000c, 0x32ed: 0x000c,\n\t// Block 0xcc, offset 0x3300\n\t0x3300: 0x000a, 0x3301: 0x000a, 0x3302: 0x000c, 0x3303: 0x000c, 0x3304: 0x000c, 0x3305: 0x000a,\n\t// Block 0xcd, offset 0x3340\n\t0x3340: 0x000a, 0x3341: 0x000a, 0x3342: 0x000a, 0x3343: 0x000a, 0x3344: 0x000a, 0x3345: 0x000a,\n\t0x3346: 0x000a, 0x3347: 0x000a, 0x3348: 0x000a, 0x3349: 0x000a, 0x334a: 0x000a, 0x334b: 0x000a,\n\t0x334c: 0x000a, 0x334d: 0x000a, 0x334e: 0x000a, 0x334f: 0x000a, 0x3350: 0x000a, 0x3351: 0x000a,\n\t0x3352: 0x000a, 0x3353: 0x000a, 0x3354: 0x000a, 0x3355: 0x000a, 0x3356: 0x000a,\n\t// Block 0xce, offset 0x3380\n\t0x339b: 0x000a,\n\t// Block 0xcf, offset 0x33c0\n\t0x33d5: 0x000a,\n\t// Block 0xd0, offset 0x3400\n\t0x340f: 0x000a,\n\t// Block 0xd1, offset 0x3440\n\t0x3449: 0x000a,\n\t// Block 0xd2, offset 0x3480\n\t0x3483: 0x000a,\n\t0x348e: 0x0002, 0x348f: 0x0002, 0x3490: 0x0002, 0x3491: 0x0002,\n\t0x3492: 0x0002, 0x3493: 0x0002, 0x3494: 0x0002, 0x3495: 0x0002, 0x3496: 0x0002, 0x3497: 0x0002,\n\t0x3498: 0x0002, 0x3499: 0x0002, 0x349a: 0x0002, 0x349b: 0x0002, 0x349c: 0x0002, 0x349d: 0x0002,\n\t0x349e: 0x0002, 0x349f: 0x0002, 0x34a0: 0x0002, 0x34a1: 0x0002, 0x34a2: 0x0002, 0x34a3: 0x0002,\n\t0x34a4: 0x0002, 0x34a5: 0x0002, 0x34a6: 0x0002, 0x34a7: 0x0002, 0x34a8: 0x0002, 0x34a9: 0x0002,\n\t0x34aa: 0x0002, 0x34ab: 0x0002, 0x34ac: 0x0002, 0x34ad: 0x0002, 0x34ae: 0x0002, 0x34af: 0x0002,\n\t0x34b0: 0x0002, 0x34b1: 0x0002, 0x34b2: 0x0002, 0x34b3: 0x0002, 0x34b4: 0x0002, 0x34b5: 0x0002,\n\t0x34b6: 0x0002, 0x34b7: 0x0002, 0x34b8: 0x0002, 0x34b9: 0x0002, 0x34ba: 0x0002, 0x34bb: 0x0002,\n\t0x34bc: 0x0002, 0x34bd: 0x0002, 0x34be: 0x0002, 0x34bf: 0x0002,\n\t// Block 0xd3, offset 0x34c0\n\t0x34c0: 0x000c, 0x34c1: 0x000c, 0x34c2: 0x000c, 0x34c3: 0x000c, 0x34c4: 0x000c, 0x34c5: 0x000c,\n\t0x34c6: 0x000c, 0x34c7: 0x000c, 0x34c8: 0x000c, 0x34c9: 0x000c, 0x34ca: 0x000c, 0x34cb: 0x000c,\n\t0x34cc: 0x000c, 0x34cd: 0x000c, 0x34ce: 0x000c, 0x34cf: 0x000c, 0x34d0: 0x000c, 0x34d1: 0x000c,\n\t0x34d2: 0x000c, 0x34d3: 0x000c, 0x34d4: 0x000c, 0x34d5: 0x000c, 0x34d6: 0x000c, 0x34d7: 0x000c,\n\t0x34d8: 0x000c, 0x34d9: 0x000c, 0x34da: 0x000c, 0x34db: 0x000c, 0x34dc: 0x000c, 0x34dd: 0x000c,\n\t0x34de: 0x000c, 0x34df: 0x000c, 0x34e0: 0x000c, 0x34e1: 0x000c, 0x34e2: 0x000c, 0x34e3: 0x000c,\n\t0x34e4: 0x000c, 0x34e5: 0x000c, 0x34e6: 0x000c, 0x34e7: 0x000c, 0x34e8: 0x000c, 0x34e9: 0x000c,\n\t0x34ea: 0x000c, 0x34eb: 0x000c, 0x34ec: 0x000c, 0x34ed: 0x000c, 0x34ee: 0x000c, 0x34ef: 0x000c,\n\t0x34f0: 0x000c, 0x34f1: 0x000c, 0x34f2: 0x000c, 0x34f3: 0x000c, 0x34f4: 0x000c, 0x34f5: 0x000c,\n\t0x34f6: 0x000c, 0x34fb: 0x000c,\n\t0x34fc: 0x000c, 0x34fd: 0x000c, 0x34fe: 0x000c, 0x34ff: 0x000c,\n\t// Block 0xd4, offset 0x3500\n\t0x3500: 0x000c, 0x3501: 0x000c, 0x3502: 0x000c, 0x3503: 0x000c, 0x3504: 0x000c, 0x3505: 0x000c,\n\t0x3506: 0x000c, 0x3507: 0x000c, 0x3508: 0x000c, 0x3509: 0x000c, 0x350a: 0x000c, 0x350b: 0x000c,\n\t0x350c: 0x000c, 0x350d: 0x000c, 0x350e: 0x000c, 0x350f: 0x000c, 0x3510: 0x000c, 0x3511: 0x000c,\n\t0x3512: 0x000c, 0x3513: 0x000c, 0x3514: 0x000c, 0x3515: 0x000c, 0x3516: 0x000c, 0x3517: 0x000c,\n\t0x3518: 0x000c, 0x3519: 0x000c, 0x351a: 0x000c, 0x351b: 0x000c, 0x351c: 0x000c, 0x351d: 0x000c,\n\t0x351e: 0x000c, 0x351f: 0x000c, 0x3520: 0x000c, 0x3521: 0x000c, 0x3522: 0x000c, 0x3523: 0x000c,\n\t0x3524: 0x000c, 0x3525: 0x000c, 0x3526: 0x000c, 0x3527: 0x000c, 0x3528: 0x000c, 0x3529: 0x000c,\n\t0x352a: 0x000c, 0x352b: 0x000c, 0x352c: 0x000c,\n\t0x3535: 0x000c,\n\t// Block 0xd5, offset 0x3540\n\t0x3544: 0x000c,\n\t0x355b: 0x000c, 0x355c: 0x000c, 0x355d: 0x000c,\n\t0x355e: 0x000c, 0x355f: 0x000c, 0x3561: 0x000c, 0x3562: 0x000c, 0x3563: 0x000c,\n\t0x3564: 0x000c, 0x3565: 0x000c, 0x3566: 0x000c, 0x3567: 0x000c, 0x3568: 0x000c, 0x3569: 0x000c,\n\t0x356a: 0x000c, 0x356b: 0x000c, 0x356c: 0x000c, 0x356d: 0x000c, 0x356e: 0x000c, 0x356f: 0x000c,\n\t// Block 0xd6, offset 0x3580\n\t0x3580: 0x000c, 0x3581: 0x000c, 0x3582: 0x000c, 0x3583: 0x000c, 0x3584: 0x000c, 0x3585: 0x000c,\n\t0x3586: 0x000c, 0x3588: 0x000c, 0x3589: 0x000c, 0x358a: 0x000c, 0x358b: 0x000c,\n\t0x358c: 0x000c, 0x358d: 0x000c, 0x358e: 0x000c, 0x358f: 0x000c, 0x3590: 0x000c, 0x3591: 0x000c,\n\t0x3592: 0x000c, 0x3593: 0x000c, 0x3594: 0x000c, 0x3595: 0x000c, 0x3596: 0x000c, 0x3597: 0x000c,\n\t0x3598: 0x000c, 0x359b: 0x000c, 0x359c: 0x000c, 0x359d: 0x000c,\n\t0x359e: 0x000c, 0x359f: 0x000c, 0x35a0: 0x000c, 0x35a1: 0x000c, 0x35a3: 0x000c,\n\t0x35a4: 0x000c, 0x35a6: 0x000c, 0x35a7: 0x000c, 0x35a8: 0x000c, 0x35a9: 0x000c,\n\t0x35aa: 0x000c,\n\t// Block 0xd7, offset 0x35c0\n\t0x35ec: 0x000c, 0x35ed: 0x000c, 0x35ee: 0x000c, 0x35ef: 0x000c,\n\t0x35ff: 0x0004,\n\t// Block 0xd8, offset 0x3600\n\t0x3600: 0x0001, 0x3601: 0x0001, 0x3602: 0x0001, 0x3603: 0x0001, 0x3604: 0x0001, 0x3605: 0x0001,\n\t0x3606: 0x0001, 0x3607: 0x0001, 0x3608: 0x0001, 0x3609: 0x0001, 0x360a: 0x0001, 0x360b: 0x0001,\n\t0x360c: 0x0001, 0x360d: 0x0001, 0x360e: 0x0001, 0x360f: 0x0001, 0x3610: 0x000c, 0x3611: 0x000c,\n\t0x3612: 0x000c, 0x3613: 0x000c, 0x3614: 0x000c, 0x3615: 0x000c, 0x3616: 0x000c, 0x3617: 0x0001,\n\t0x3618: 0x0001, 0x3619: 0x0001, 0x361a: 0x0001, 0x361b: 0x0001, 0x361c: 0x0001, 0x361d: 0x0001,\n\t0x361e: 0x0001, 0x361f: 0x0001, 0x3620: 0x0001, 0x3621: 0x0001, 0x3622: 0x0001, 0x3623: 0x0001,\n\t0x3624: 0x0001, 0x3625: 0x0001, 0x3626: 0x0001, 0x3627: 0x0001, 0x3628: 0x0001, 0x3629: 0x0001,\n\t0x362a: 0x0001, 0x362b: 0x0001, 0x362c: 0x0001, 0x362d: 0x0001, 0x362e: 0x0001, 0x362f: 0x0001,\n\t0x3630: 0x0001, 0x3631: 0x0001, 0x3632: 0x0001, 0x3633: 0x0001, 0x3634: 0x0001, 0x3635: 0x0001,\n\t0x3636: 0x0001, 0x3637: 0x0001, 0x3638: 0x0001, 0x3639: 0x0001, 0x363a: 0x0001, 0x363b: 0x0001,\n\t0x363c: 0x0001, 0x363d: 0x0001, 0x363e: 0x0001, 0x363f: 0x0001,\n\t// Block 0xd9, offset 0x3640\n\t0x3640: 0x0001, 0x3641: 0x0001, 0x3642: 0x0001, 0x3643: 0x0001, 0x3644: 0x000c, 0x3645: 0x000c,\n\t0x3646: 0x000c, 0x3647: 0x000c, 0x3648: 0x000c, 0x3649: 0x000c, 0x364a: 0x000c, 0x364b: 0x0001,\n\t0x364c: 0x0001, 0x364d: 0x0001, 0x364e: 0x0001, 0x364f: 0x0001, 0x3650: 0x0001, 0x3651: 0x0001,\n\t0x3652: 0x0001, 0x3653: 0x0001, 0x3654: 0x0001, 0x3655: 0x0001, 0x3656: 0x0001, 0x3657: 0x0001,\n\t0x3658: 0x0001, 0x3659: 0x0001, 0x365a: 0x0001, 0x365b: 0x0001, 0x365c: 0x0001, 0x365d: 0x0001,\n\t0x365e: 0x0001, 0x365f: 0x0001, 0x3660: 0x0001, 0x3661: 0x0001, 0x3662: 0x0001, 0x3663: 0x0001,\n\t0x3664: 0x0001, 0x3665: 0x0001, 0x3666: 0x0001, 0x3667: 0x0001, 0x3668: 0x0001, 0x3669: 0x0001,\n\t0x366a: 0x0001, 0x366b: 0x0001, 0x366c: 0x0001, 0x366d: 0x0001, 0x366e: 0x0001, 0x366f: 0x0001,\n\t0x3670: 0x0001, 0x3671: 0x0001, 0x3672: 0x0001, 0x3673: 0x0001, 0x3674: 0x0001, 0x3675: 0x0001,\n\t0x3676: 0x0001, 0x3677: 0x0001, 0x3678: 0x0001, 0x3679: 0x0001, 0x367a: 0x0001, 0x367b: 0x0001,\n\t0x367c: 0x0001, 0x367d: 0x0001, 0x367e: 0x0001, 0x367f: 0x0001,\n\t// Block 0xda, offset 0x3680\n\t0x3680: 0x000d, 0x3681: 0x000d, 0x3682: 0x000d, 0x3683: 0x000d, 0x3684: 0x000d, 0x3685: 0x000d,\n\t0x3686: 0x000d, 0x3687: 0x000d, 0x3688: 0x000d, 0x3689: 0x000d, 0x368a: 0x000d, 0x368b: 0x000d,\n\t0x368c: 0x000d, 0x368d: 0x000d, 0x368e: 0x000d, 0x368f: 0x000d, 0x3690: 0x0001, 0x3691: 0x0001,\n\t0x3692: 0x0001, 0x3693: 0x0001, 0x3694: 0x0001, 0x3695: 0x0001, 0x3696: 0x0001, 0x3697: 0x0001,\n\t0x3698: 0x0001, 0x3699: 0x0001, 0x369a: 0x0001, 0x369b: 0x0001, 0x369c: 0x0001, 0x369d: 0x0001,\n\t0x369e: 0x0001, 0x369f: 0x0001, 0x36a0: 0x0001, 0x36a1: 0x0001, 0x36a2: 0x0001, 0x36a3: 0x0001,\n\t0x36a4: 0x0001, 0x36a5: 0x0001, 0x36a6: 0x0001, 0x36a7: 0x0001, 0x36a8: 0x0001, 0x36a9: 0x0001,\n\t0x36aa: 0x0001, 0x36ab: 0x0001, 0x36ac: 0x0001, 0x36ad: 0x0001, 0x36ae: 0x0001, 0x36af: 0x0001,\n\t0x36b0: 0x0001, 0x36b1: 0x0001, 0x36b2: 0x0001, 0x36b3: 0x0001, 0x36b4: 0x0001, 0x36b5: 0x0001,\n\t0x36b6: 0x0001, 0x36b7: 0x0001, 0x36b8: 0x0001, 0x36b9: 0x0001, 0x36ba: 0x0001, 0x36bb: 0x0001,\n\t0x36bc: 0x0001, 0x36bd: 0x0001, 0x36be: 0x0001, 0x36bf: 0x0001,\n\t// Block 0xdb, offset 0x36c0\n\t0x36c0: 0x000d, 0x36c1: 0x000d, 0x36c2: 0x000d, 0x36c3: 0x000d, 0x36c4: 0x000d, 0x36c5: 0x000d,\n\t0x36c6: 0x000d, 0x36c7: 0x000d, 0x36c8: 0x000d, 0x36c9: 0x000d, 0x36ca: 0x000d, 0x36cb: 0x000d,\n\t0x36cc: 0x000d, 0x36cd: 0x000d, 0x36ce: 0x000d, 0x36cf: 0x000d, 0x36d0: 0x000d, 0x36d1: 0x000d,\n\t0x36d2: 0x000d, 0x36d3: 0x000d, 0x36d4: 0x000d, 0x36d5: 0x000d, 0x36d6: 0x000d, 0x36d7: 0x000d,\n\t0x36d8: 0x000d, 0x36d9: 0x000d, 0x36da: 0x000d, 0x36db: 0x000d, 0x36dc: 0x000d, 0x36dd: 0x000d,\n\t0x36de: 0x000d, 0x36df: 0x000d, 0x36e0: 0x000d, 0x36e1: 0x000d, 0x36e2: 0x000d, 0x36e3: 0x000d,\n\t0x36e4: 0x000d, 0x36e5: 0x000d, 0x36e6: 0x000d, 0x36e7: 0x000d, 0x36e8: 0x000d, 0x36e9: 0x000d,\n\t0x36ea: 0x000d, 0x36eb: 0x000d, 0x36ec: 0x000d, 0x36ed: 0x000d, 0x36ee: 0x000d, 0x36ef: 0x000d,\n\t0x36f0: 0x000a, 0x36f1: 0x000a, 0x36f2: 0x000d, 0x36f3: 0x000d, 0x36f4: 0x000d, 0x36f5: 0x000d,\n\t0x36f6: 0x000d, 0x36f7: 0x000d, 0x36f8: 0x000d, 0x36f9: 0x000d, 0x36fa: 0x000d, 0x36fb: 0x000d,\n\t0x36fc: 0x000d, 0x36fd: 0x000d, 0x36fe: 0x000d, 0x36ff: 0x000d,\n\t// Block 0xdc, offset 0x3700\n\t0x3700: 0x000a, 0x3701: 0x000a, 0x3702: 0x000a, 0x3703: 0x000a, 0x3704: 0x000a, 0x3705: 0x000a,\n\t0x3706: 0x000a, 0x3707: 0x000a, 0x3708: 0x000a, 0x3709: 0x000a, 0x370a: 0x000a, 0x370b: 0x000a,\n\t0x370c: 0x000a, 0x370d: 0x000a, 0x370e: 0x000a, 0x370f: 0x000a, 0x3710: 0x000a, 0x3711: 0x000a,\n\t0x3712: 0x000a, 0x3713: 0x000a, 0x3714: 0x000a, 0x3715: 0x000a, 0x3716: 0x000a, 0x3717: 0x000a,\n\t0x3718: 0x000a, 0x3719: 0x000a, 0x371a: 0x000a, 0x371b: 0x000a, 0x371c: 0x000a, 0x371d: 0x000a,\n\t0x371e: 0x000a, 0x371f: 0x000a, 0x3720: 0x000a, 0x3721: 0x000a, 0x3722: 0x000a, 0x3723: 0x000a,\n\t0x3724: 0x000a, 0x3725: 0x000a, 0x3726: 0x000a, 0x3727: 0x000a, 0x3728: 0x000a, 0x3729: 0x000a,\n\t0x372a: 0x000a, 0x372b: 0x000a,\n\t0x3730: 0x000a, 0x3731: 0x000a, 0x3732: 0x000a, 0x3733: 0x000a, 0x3734: 0x000a, 0x3735: 0x000a,\n\t0x3736: 0x000a, 0x3737: 0x000a, 0x3738: 0x000a, 0x3739: 0x000a, 0x373a: 0x000a, 0x373b: 0x000a,\n\t0x373c: 0x000a, 0x373d: 0x000a, 0x373e: 0x000a, 0x373f: 0x000a,\n\t// Block 0xdd, offset 0x3740\n\t0x3740: 0x000a, 0x3741: 0x000a, 0x3742: 0x000a, 0x3743: 0x000a, 0x3744: 0x000a, 0x3745: 0x000a,\n\t0x3746: 0x000a, 0x3747: 0x000a, 0x3748: 0x000a, 0x3749: 0x000a, 0x374a: 0x000a, 0x374b: 0x000a,\n\t0x374c: 0x000a, 0x374d: 0x000a, 0x374e: 0x000a, 0x374f: 0x000a, 0x3750: 0x000a, 0x3751: 0x000a,\n\t0x3752: 0x000a, 0x3753: 0x000a,\n\t0x3760: 0x000a, 0x3761: 0x000a, 0x3762: 0x000a, 0x3763: 0x000a,\n\t0x3764: 0x000a, 0x3765: 0x000a, 0x3766: 0x000a, 0x3767: 0x000a, 0x3768: 0x000a, 0x3769: 0x000a,\n\t0x376a: 0x000a, 0x376b: 0x000a, 0x376c: 0x000a, 0x376d: 0x000a, 0x376e: 0x000a,\n\t0x3771: 0x000a, 0x3772: 0x000a, 0x3773: 0x000a, 0x3774: 0x000a, 0x3775: 0x000a,\n\t0x3776: 0x000a, 0x3777: 0x000a, 0x3778: 0x000a, 0x3779: 0x000a, 0x377a: 0x000a, 0x377b: 0x000a,\n\t0x377c: 0x000a, 0x377d: 0x000a, 0x377e: 0x000a, 0x377f: 0x000a,\n\t// Block 0xde, offset 0x3780\n\t0x3781: 0x000a, 0x3782: 0x000a, 0x3783: 0x000a, 0x3784: 0x000a, 0x3785: 0x000a,\n\t0x3786: 0x000a, 0x3787: 0x000a, 0x3788: 0x000a, 0x3789: 0x000a, 0x378a: 0x000a, 0x378b: 0x000a,\n\t0x378c: 0x000a, 0x378d: 0x000a, 0x378e: 0x000a, 0x378f: 0x000a, 0x3791: 0x000a,\n\t0x3792: 0x000a, 0x3793: 0x000a, 0x3794: 0x000a, 0x3795: 0x000a, 0x3796: 0x000a, 0x3797: 0x000a,\n\t0x3798: 0x000a, 0x3799: 0x000a, 0x379a: 0x000a, 0x379b: 0x000a, 0x379c: 0x000a, 0x379d: 0x000a,\n\t0x379e: 0x000a, 0x379f: 0x000a, 0x37a0: 0x000a, 0x37a1: 0x000a, 0x37a2: 0x000a, 0x37a3: 0x000a,\n\t0x37a4: 0x000a, 0x37a5: 0x000a, 0x37a6: 0x000a, 0x37a7: 0x000a, 0x37a8: 0x000a, 0x37a9: 0x000a,\n\t0x37aa: 0x000a, 0x37ab: 0x000a, 0x37ac: 0x000a, 0x37ad: 0x000a, 0x37ae: 0x000a, 0x37af: 0x000a,\n\t0x37b0: 0x000a, 0x37b1: 0x000a, 0x37b2: 0x000a, 0x37b3: 0x000a, 0x37b4: 0x000a, 0x37b5: 0x000a,\n\t// Block 0xdf, offset 0x37c0\n\t0x37c0: 0x0002, 0x37c1: 0x0002, 0x37c2: 0x0002, 0x37c3: 0x0002, 0x37c4: 0x0002, 0x37c5: 0x0002,\n\t0x37c6: 0x0002, 0x37c7: 0x0002, 0x37c8: 0x0002, 0x37c9: 0x0002, 0x37ca: 0x0002, 0x37cb: 0x000a,\n\t0x37cc: 0x000a,\n\t0x37ef: 0x000a,\n\t// Block 0xe0, offset 0x3800\n\t0x382a: 0x000a, 0x382b: 0x000a, 0x382c: 0x000a,\n\t// Block 0xe1, offset 0x3840\n\t0x3860: 0x000a, 0x3861: 0x000a, 0x3862: 0x000a, 0x3863: 0x000a,\n\t0x3864: 0x000a, 0x3865: 0x000a,\n\t// Block 0xe2, offset 0x3880\n\t0x3880: 0x000a, 0x3881: 0x000a, 0x3882: 0x000a, 0x3883: 0x000a, 0x3884: 0x000a, 0x3885: 0x000a,\n\t0x3886: 0x000a, 0x3887: 0x000a, 0x3888: 0x000a, 0x3889: 0x000a, 0x388a: 0x000a, 0x388b: 0x000a,\n\t0x388c: 0x000a, 0x388d: 0x000a, 0x388e: 0x000a, 0x388f: 0x000a, 0x3890: 0x000a, 0x3891: 0x000a,\n\t0x3892: 0x000a, 0x3893: 0x000a, 0x3894: 0x000a, 0x3895: 0x000a,\n\t0x38a0: 0x000a, 0x38a1: 0x000a, 0x38a2: 0x000a, 0x38a3: 0x000a,\n\t0x38a4: 0x000a, 0x38a5: 0x000a, 0x38a6: 0x000a, 0x38a7: 0x000a, 0x38a8: 0x000a, 0x38a9: 0x000a,\n\t0x38aa: 0x000a, 0x38ab: 0x000a, 0x38ac: 0x000a,\n\t0x38b0: 0x000a, 0x38b1: 0x000a, 0x38b2: 0x000a, 0x38b3: 0x000a, 0x38b4: 0x000a, 0x38b5: 0x000a,\n\t0x38b6: 0x000a, 0x38b7: 0x000a, 0x38b8: 0x000a, 0x38b9: 0x000a, 0x38ba: 0x000a,\n\t// Block 0xe3, offset 0x38c0\n\t0x38c0: 0x000a, 0x38c1: 0x000a, 0x38c2: 0x000a, 0x38c3: 0x000a, 0x38c4: 0x000a, 0x38c5: 0x000a,\n\t0x38c6: 0x000a, 0x38c7: 0x000a, 0x38c8: 0x000a, 0x38c9: 0x000a, 0x38ca: 0x000a, 0x38cb: 0x000a,\n\t0x38cc: 0x000a, 0x38cd: 0x000a, 0x38ce: 0x000a, 0x38cf: 0x000a, 0x38d0: 0x000a, 0x38d1: 0x000a,\n\t0x38d2: 0x000a, 0x38d3: 0x000a, 0x38d4: 0x000a, 0x38d5: 0x000a, 0x38d6: 0x000a, 0x38d7: 0x000a,\n\t0x38d8: 0x000a,\n\t0x38e0: 0x000a, 0x38e1: 0x000a, 0x38e2: 0x000a, 0x38e3: 0x000a,\n\t0x38e4: 0x000a, 0x38e5: 0x000a, 0x38e6: 0x000a, 0x38e7: 0x000a, 0x38e8: 0x000a, 0x38e9: 0x000a,\n\t0x38ea: 0x000a, 0x38eb: 0x000a,\n\t// Block 0xe4, offset 0x3900\n\t0x3900: 0x000a, 0x3901: 0x000a, 0x3902: 0x000a, 0x3903: 0x000a, 0x3904: 0x000a, 0x3905: 0x000a,\n\t0x3906: 0x000a, 0x3907: 0x000a, 0x3908: 0x000a, 0x3909: 0x000a, 0x390a: 0x000a, 0x390b: 0x000a,\n\t0x3910: 0x000a, 0x3911: 0x000a,\n\t0x3912: 0x000a, 0x3913: 0x000a, 0x3914: 0x000a, 0x3915: 0x000a, 0x3916: 0x000a, 0x3917: 0x000a,\n\t0x3918: 0x000a, 0x3919: 0x000a, 0x391a: 0x000a, 0x391b: 0x000a, 0x391c: 0x000a, 0x391d: 0x000a,\n\t0x391e: 0x000a, 0x391f: 0x000a, 0x3920: 0x000a, 0x3921: 0x000a, 0x3922: 0x000a, 0x3923: 0x000a,\n\t0x3924: 0x000a, 0x3925: 0x000a, 0x3926: 0x000a, 0x3927: 0x000a, 0x3928: 0x000a, 0x3929: 0x000a,\n\t0x392a: 0x000a, 0x392b: 0x000a, 0x392c: 0x000a, 0x392d: 0x000a, 0x392e: 0x000a, 0x392f: 0x000a,\n\t0x3930: 0x000a, 0x3931: 0x000a, 0x3932: 0x000a, 0x3933: 0x000a, 0x3934: 0x000a, 0x3935: 0x000a,\n\t0x3936: 0x000a, 0x3937: 0x000a, 0x3938: 0x000a, 0x3939: 0x000a, 0x393a: 0x000a, 0x393b: 0x000a,\n\t0x393c: 0x000a, 0x393d: 0x000a, 0x393e: 0x000a, 0x393f: 0x000a,\n\t// Block 0xe5, offset 0x3940\n\t0x3940: 0x000a, 0x3941: 0x000a, 0x3942: 0x000a, 0x3943: 0x000a, 0x3944: 0x000a, 0x3945: 0x000a,\n\t0x3946: 0x000a, 0x3947: 0x000a,\n\t0x3950: 0x000a, 0x3951: 0x000a,\n\t0x3952: 0x000a, 0x3953: 0x000a, 0x3954: 0x000a, 0x3955: 0x000a, 0x3956: 0x000a, 0x3957: 0x000a,\n\t0x3958: 0x000a, 0x3959: 0x000a,\n\t0x3960: 0x000a, 0x3961: 0x000a, 0x3962: 0x000a, 0x3963: 0x000a,\n\t0x3964: 0x000a, 0x3965: 0x000a, 0x3966: 0x000a, 0x3967: 0x000a, 0x3968: 0x000a, 0x3969: 0x000a,\n\t0x396a: 0x000a, 0x396b: 0x000a, 0x396c: 0x000a, 0x396d: 0x000a, 0x396e: 0x000a, 0x396f: 0x000a,\n\t0x3970: 0x000a, 0x3971: 0x000a, 0x3972: 0x000a, 0x3973: 0x000a, 0x3974: 0x000a, 0x3975: 0x000a,\n\t0x3976: 0x000a, 0x3977: 0x000a, 0x3978: 0x000a, 0x3979: 0x000a, 0x397a: 0x000a, 0x397b: 0x000a,\n\t0x397c: 0x000a, 0x397d: 0x000a, 0x397e: 0x000a, 0x397f: 0x000a,\n\t// Block 0xe6, offset 0x3980\n\t0x3980: 0x000a, 0x3981: 0x000a, 0x3982: 0x000a, 0x3983: 0x000a, 0x3984: 0x000a, 0x3985: 0x000a,\n\t0x3986: 0x000a, 0x3987: 0x000a,\n\t0x3990: 0x000a, 0x3991: 0x000a,\n\t0x3992: 0x000a, 0x3993: 0x000a, 0x3994: 0x000a, 0x3995: 0x000a, 0x3996: 0x000a, 0x3997: 0x000a,\n\t0x3998: 0x000a, 0x3999: 0x000a, 0x399a: 0x000a, 0x399b: 0x000a, 0x399c: 0x000a, 0x399d: 0x000a,\n\t0x399e: 0x000a, 0x399f: 0x000a, 0x39a0: 0x000a, 0x39a1: 0x000a, 0x39a2: 0x000a, 0x39a3: 0x000a,\n\t0x39a4: 0x000a, 0x39a5: 0x000a, 0x39a6: 0x000a, 0x39a7: 0x000a, 0x39a8: 0x000a, 0x39a9: 0x000a,\n\t0x39aa: 0x000a, 0x39ab: 0x000a, 0x39ac: 0x000a, 0x39ad: 0x000a,\n\t// Block 0xe7, offset 0x39c0\n\t0x39c0: 0x000a, 0x39c1: 0x000a, 0x39c2: 0x000a, 0x39c3: 0x000a, 0x39c4: 0x000a, 0x39c5: 0x000a,\n\t0x39c6: 0x000a, 0x39c7: 0x000a, 0x39c8: 0x000a, 0x39c9: 0x000a, 0x39ca: 0x000a, 0x39cb: 0x000a,\n\t0x39cd: 0x000a, 0x39ce: 0x000a, 0x39cf: 0x000a, 0x39d0: 0x000a, 0x39d1: 0x000a,\n\t0x39d2: 0x000a, 0x39d3: 0x000a, 0x39d4: 0x000a, 0x39d5: 0x000a, 0x39d6: 0x000a, 0x39d7: 0x000a,\n\t0x39d8: 0x000a, 0x39d9: 0x000a, 0x39da: 0x000a, 0x39db: 0x000a, 0x39dc: 0x000a, 0x39dd: 0x000a,\n\t0x39de: 0x000a, 0x39df: 0x000a, 0x39e0: 0x000a, 0x39e1: 0x000a, 0x39e2: 0x000a, 0x39e3: 0x000a,\n\t0x39e4: 0x000a, 0x39e5: 0x000a, 0x39e6: 0x000a, 0x39e7: 0x000a, 0x39e8: 0x000a, 0x39e9: 0x000a,\n\t0x39ea: 0x000a, 0x39eb: 0x000a, 0x39ec: 0x000a, 0x39ed: 0x000a, 0x39ee: 0x000a, 0x39ef: 0x000a,\n\t0x39f0: 0x000a, 0x39f1: 0x000a, 0x39f2: 0x000a, 0x39f3: 0x000a, 0x39f4: 0x000a, 0x39f5: 0x000a,\n\t0x39f6: 0x000a, 0x39f7: 0x000a, 0x39f8: 0x000a, 0x39f9: 0x000a, 0x39fa: 0x000a, 0x39fb: 0x000a,\n\t0x39fc: 0x000a, 0x39fd: 0x000a, 0x39fe: 0x000a, 0x39ff: 0x000a,\n\t// Block 0xe8, offset 0x3a00\n\t0x3a00: 0x000a, 0x3a01: 0x000a, 0x3a02: 0x000a, 0x3a03: 0x000a, 0x3a04: 0x000a, 0x3a05: 0x000a,\n\t0x3a06: 0x000a, 0x3a07: 0x000a, 0x3a08: 0x000a, 0x3a09: 0x000a, 0x3a0a: 0x000a, 0x3a0b: 0x000a,\n\t0x3a0c: 0x000a, 0x3a0d: 0x000a, 0x3a0e: 0x000a, 0x3a0f: 0x000a, 0x3a10: 0x000a, 0x3a11: 0x000a,\n\t0x3a12: 0x000a, 0x3a13: 0x000a, 0x3a14: 0x000a, 0x3a15: 0x000a, 0x3a16: 0x000a, 0x3a17: 0x000a,\n\t0x3a18: 0x000a, 0x3a19: 0x000a, 0x3a1a: 0x000a, 0x3a1b: 0x000a, 0x3a1c: 0x000a, 0x3a1d: 0x000a,\n\t0x3a1e: 0x000a, 0x3a1f: 0x000a, 0x3a20: 0x000a, 0x3a21: 0x000a, 0x3a22: 0x000a, 0x3a23: 0x000a,\n\t0x3a24: 0x000a, 0x3a25: 0x000a, 0x3a26: 0x000a, 0x3a27: 0x000a, 0x3a28: 0x000a, 0x3a29: 0x000a,\n\t0x3a2a: 0x000a, 0x3a2b: 0x000a, 0x3a2c: 0x000a, 0x3a2d: 0x000a, 0x3a2e: 0x000a, 0x3a2f: 0x000a,\n\t0x3a30: 0x000a, 0x3a31: 0x000a, 0x3a33: 0x000a, 0x3a34: 0x000a, 0x3a35: 0x000a,\n\t0x3a36: 0x000a, 0x3a3a: 0x000a, 0x3a3b: 0x000a,\n\t0x3a3c: 0x000a, 0x3a3d: 0x000a, 0x3a3e: 0x000a, 0x3a3f: 0x000a,\n\t// Block 0xe9, offset 0x3a40\n\t0x3a40: 0x000a, 0x3a41: 0x000a, 0x3a42: 0x000a, 0x3a43: 0x000a, 0x3a44: 0x000a, 0x3a45: 0x000a,\n\t0x3a46: 0x000a, 0x3a47: 0x000a, 0x3a48: 0x000a, 0x3a49: 0x000a, 0x3a4a: 0x000a, 0x3a4b: 0x000a,\n\t0x3a4c: 0x000a, 0x3a4d: 0x000a, 0x3a4e: 0x000a, 0x3a4f: 0x000a, 0x3a50: 0x000a, 0x3a51: 0x000a,\n\t0x3a52: 0x000a, 0x3a53: 0x000a, 0x3a54: 0x000a, 0x3a55: 0x000a, 0x3a56: 0x000a, 0x3a57: 0x000a,\n\t0x3a58: 0x000a, 0x3a59: 0x000a, 0x3a5a: 0x000a, 0x3a5b: 0x000a, 0x3a5c: 0x000a, 0x3a5d: 0x000a,\n\t0x3a5e: 0x000a, 0x3a5f: 0x000a, 0x3a60: 0x000a, 0x3a61: 0x000a, 0x3a62: 0x000a,\n\t0x3a65: 0x000a, 0x3a66: 0x000a, 0x3a67: 0x000a, 0x3a68: 0x000a, 0x3a69: 0x000a,\n\t0x3a6a: 0x000a, 0x3a6e: 0x000a, 0x3a6f: 0x000a,\n\t0x3a70: 0x000a, 0x3a71: 0x000a, 0x3a72: 0x000a, 0x3a73: 0x000a, 0x3a74: 0x000a, 0x3a75: 0x000a,\n\t0x3a76: 0x000a, 0x3a77: 0x000a, 0x3a78: 0x000a, 0x3a79: 0x000a, 0x3a7a: 0x000a, 0x3a7b: 0x000a,\n\t0x3a7c: 0x000a, 0x3a7d: 0x000a, 0x3a7e: 0x000a, 0x3a7f: 0x000a,\n\t// Block 0xea, offset 0x3a80\n\t0x3a80: 0x000a, 0x3a81: 0x000a, 0x3a82: 0x000a, 0x3a83: 0x000a, 0x3a84: 0x000a, 0x3a85: 0x000a,\n\t0x3a86: 0x000a, 0x3a87: 0x000a, 0x3a88: 0x000a, 0x3a89: 0x000a, 0x3a8a: 0x000a,\n\t0x3a8d: 0x000a, 0x3a8e: 0x000a, 0x3a8f: 0x000a, 0x3a90: 0x000a, 0x3a91: 0x000a,\n\t0x3a92: 0x000a, 0x3a93: 0x000a, 0x3a94: 0x000a, 0x3a95: 0x000a, 0x3a96: 0x000a, 0x3a97: 0x000a,\n\t0x3a98: 0x000a, 0x3a99: 0x000a, 0x3a9a: 0x000a, 0x3a9b: 0x000a, 0x3a9c: 0x000a, 0x3a9d: 0x000a,\n\t0x3a9e: 0x000a, 0x3a9f: 0x000a, 0x3aa0: 0x000a, 0x3aa1: 0x000a, 0x3aa2: 0x000a, 0x3aa3: 0x000a,\n\t0x3aa4: 0x000a, 0x3aa5: 0x000a, 0x3aa6: 0x000a, 0x3aa7: 0x000a, 0x3aa8: 0x000a, 0x3aa9: 0x000a,\n\t0x3aaa: 0x000a, 0x3aab: 0x000a, 0x3aac: 0x000a, 0x3aad: 0x000a, 0x3aae: 0x000a, 0x3aaf: 0x000a,\n\t0x3ab0: 0x000a, 0x3ab1: 0x000a, 0x3ab2: 0x000a, 0x3ab3: 0x000a, 0x3ab4: 0x000a, 0x3ab5: 0x000a,\n\t0x3ab6: 0x000a, 0x3ab7: 0x000a, 0x3ab8: 0x000a, 0x3ab9: 0x000a, 0x3aba: 0x000a, 0x3abb: 0x000a,\n\t0x3abc: 0x000a, 0x3abd: 0x000a, 0x3abe: 0x000a, 0x3abf: 0x000a,\n\t// Block 0xeb, offset 0x3ac0\n\t0x3ac0: 0x000a, 0x3ac1: 0x000a, 0x3ac2: 0x000a, 0x3ac3: 0x000a, 0x3ac4: 0x000a, 0x3ac5: 0x000a,\n\t0x3ac6: 0x000a, 0x3ac7: 0x000a, 0x3ac8: 0x000a, 0x3ac9: 0x000a, 0x3aca: 0x000a, 0x3acb: 0x000a,\n\t0x3acc: 0x000a, 0x3acd: 0x000a, 0x3ace: 0x000a, 0x3acf: 0x000a, 0x3ad0: 0x000a, 0x3ad1: 0x000a,\n\t0x3ad2: 0x000a, 0x3ad3: 0x000a,\n\t0x3ae0: 0x000a, 0x3ae1: 0x000a, 0x3ae2: 0x000a, 0x3ae3: 0x000a,\n\t0x3ae4: 0x000a, 0x3ae5: 0x000a, 0x3ae6: 0x000a, 0x3ae7: 0x000a, 0x3ae8: 0x000a, 0x3ae9: 0x000a,\n\t0x3aea: 0x000a, 0x3aeb: 0x000a, 0x3aec: 0x000a, 0x3aed: 0x000a,\n\t0x3af0: 0x000a, 0x3af1: 0x000a, 0x3af2: 0x000a, 0x3af3: 0x000a,\n\t0x3af8: 0x000a, 0x3af9: 0x000a, 0x3afa: 0x000a,\n\t// Block 0xec, offset 0x3b00\n\t0x3b00: 0x000a, 0x3b01: 0x000a, 0x3b02: 0x000a,\n\t0x3b10: 0x000a, 0x3b11: 0x000a,\n\t0x3b12: 0x000a, 0x3b13: 0x000a, 0x3b14: 0x000a, 0x3b15: 0x000a,\n\t// Block 0xed, offset 0x3b40\n\t0x3b7e: 0x000b, 0x3b7f: 0x000b,\n\t// Block 0xee, offset 0x3b80\n\t0x3b80: 0x000b, 0x3b81: 0x000b, 0x3b82: 0x000b, 0x3b83: 0x000b, 0x3b84: 0x000b, 0x3b85: 0x000b,\n\t0x3b86: 0x000b, 0x3b87: 0x000b, 0x3b88: 0x000b, 0x3b89: 0x000b, 0x3b8a: 0x000b, 0x3b8b: 0x000b,\n\t0x3b8c: 0x000b, 0x3b8d: 0x000b, 0x3b8e: 0x000b, 0x3b8f: 0x000b, 0x3b90: 0x000b, 0x3b91: 0x000b,\n\t0x3b92: 0x000b, 0x3b93: 0x000b, 0x3b94: 0x000b, 0x3b95: 0x000b, 0x3b96: 0x000b, 0x3b97: 0x000b,\n\t0x3b98: 0x000b, 0x3b99: 0x000b, 0x3b9a: 0x000b, 0x3b9b: 0x000b, 0x3b9c: 0x000b, 0x3b9d: 0x000b,\n\t0x3b9e: 0x000b, 0x3b9f: 0x000b, 0x3ba0: 0x000b, 0x3ba1: 0x000b, 0x3ba2: 0x000b, 0x3ba3: 0x000b,\n\t0x3ba4: 0x000b, 0x3ba5: 0x000b, 0x3ba6: 0x000b, 0x3ba7: 0x000b, 0x3ba8: 0x000b, 0x3ba9: 0x000b,\n\t0x3baa: 0x000b, 0x3bab: 0x000b, 0x3bac: 0x000b, 0x3bad: 0x000b, 0x3bae: 0x000b, 0x3baf: 0x000b,\n\t0x3bb0: 0x000b, 0x3bb1: 0x000b, 0x3bb2: 0x000b, 0x3bb3: 0x000b, 0x3bb4: 0x000b, 0x3bb5: 0x000b,\n\t0x3bb6: 0x000b, 0x3bb7: 0x000b, 0x3bb8: 0x000b, 0x3bb9: 0x000b, 0x3bba: 0x000b, 0x3bbb: 0x000b,\n\t0x3bbc: 0x000b, 0x3bbd: 0x000b, 0x3bbe: 0x000b, 0x3bbf: 0x000b,\n\t// Block 0xef, offset 0x3bc0\n\t0x3bc0: 0x000c, 0x3bc1: 0x000c, 0x3bc2: 0x000c, 0x3bc3: 0x000c, 0x3bc4: 0x000c, 0x3bc5: 0x000c,\n\t0x3bc6: 0x000c, 0x3bc7: 0x000c, 0x3bc8: 0x000c, 0x3bc9: 0x000c, 0x3bca: 0x000c, 0x3bcb: 0x000c,\n\t0x3bcc: 0x000c, 0x3bcd: 0x000c, 0x3bce: 0x000c, 0x3bcf: 0x000c, 0x3bd0: 0x000c, 0x3bd1: 0x000c,\n\t0x3bd2: 0x000c, 0x3bd3: 0x000c, 0x3bd4: 0x000c, 0x3bd5: 0x000c, 0x3bd6: 0x000c, 0x3bd7: 0x000c,\n\t0x3bd8: 0x000c, 0x3bd9: 0x000c, 0x3bda: 0x000c, 0x3bdb: 0x000c, 0x3bdc: 0x000c, 0x3bdd: 0x000c,\n\t0x3bde: 0x000c, 0x3bdf: 0x000c, 0x3be0: 0x000c, 0x3be1: 0x000c, 0x3be2: 0x000c, 0x3be3: 0x000c,\n\t0x3be4: 0x000c, 0x3be5: 0x000c, 0x3be6: 0x000c, 0x3be7: 0x000c, 0x3be8: 0x000c, 0x3be9: 0x000c,\n\t0x3bea: 0x000c, 0x3beb: 0x000c, 0x3bec: 0x000c, 0x3bed: 0x000c, 0x3bee: 0x000c, 0x3bef: 0x000c,\n\t0x3bf0: 0x000b, 0x3bf1: 0x000b, 0x3bf2: 0x000b, 0x3bf3: 0x000b, 0x3bf4: 0x000b, 0x3bf5: 0x000b,\n\t0x3bf6: 0x000b, 0x3bf7: 0x000b, 0x3bf8: 0x000b, 0x3bf9: 0x000b, 0x3bfa: 0x000b, 0x3bfb: 0x000b,\n\t0x3bfc: 0x000b, 0x3bfd: 0x000b, 0x3bfe: 0x000b, 0x3bff: 0x000b,\n}\n\n// bidiIndex: 24 blocks, 1536 entries, 1536 bytes\n// Block 0 is the zero block.\nvar bidiIndex = [1536]uint8{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x01, 0xc3: 0x02,\n\t0xca: 0x03, 0xcb: 0x04, 0xcc: 0x05, 0xcd: 0x06, 0xce: 0x07, 0xcf: 0x08,\n\t0xd2: 0x09, 0xd6: 0x0a, 0xd7: 0x0b,\n\t0xd8: 0x0c, 0xd9: 0x0d, 0xda: 0x0e, 0xdb: 0x0f, 0xdc: 0x10, 0xdd: 0x11, 0xde: 0x12, 0xdf: 0x13,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06,\n\t0xea: 0x07, 0xef: 0x08,\n\t0xf0: 0x11, 0xf1: 0x12, 0xf2: 0x12, 0xf3: 0x14, 0xf4: 0x15,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x14, 0x121: 0x15, 0x122: 0x16, 0x123: 0x17, 0x124: 0x18, 0x125: 0x19, 0x126: 0x1a, 0x127: 0x1b,\n\t0x128: 0x1c, 0x129: 0x1d, 0x12a: 0x1c, 0x12b: 0x1e, 0x12c: 0x1f, 0x12d: 0x20, 0x12e: 0x21, 0x12f: 0x22,\n\t0x130: 0x23, 0x131: 0x24, 0x132: 0x1a, 0x133: 0x25, 0x134: 0x26, 0x135: 0x27, 0x137: 0x28,\n\t0x138: 0x29, 0x139: 0x2a, 0x13a: 0x2b, 0x13b: 0x2c, 0x13c: 0x2d, 0x13d: 0x2e, 0x13e: 0x2f, 0x13f: 0x30,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x31, 0x141: 0x32, 0x142: 0x33,\n\t0x14d: 0x34, 0x14e: 0x35,\n\t0x150: 0x36,\n\t0x15a: 0x37, 0x15c: 0x38, 0x15d: 0x39, 0x15e: 0x3a, 0x15f: 0x3b,\n\t0x160: 0x3c, 0x162: 0x3d, 0x164: 0x3e, 0x165: 0x3f, 0x167: 0x40,\n\t0x168: 0x41, 0x169: 0x42, 0x16a: 0x43, 0x16c: 0x44, 0x16d: 0x45, 0x16e: 0x46, 0x16f: 0x47,\n\t0x170: 0x48, 0x173: 0x49, 0x177: 0x4a,\n\t0x17e: 0x4b, 0x17f: 0x4c,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x4d, 0x181: 0x4e, 0x182: 0x4f, 0x183: 0x50, 0x184: 0x51, 0x185: 0x52, 0x186: 0x53, 0x187: 0x54,\n\t0x188: 0x55, 0x189: 0x54, 0x18a: 0x54, 0x18b: 0x54, 0x18c: 0x56, 0x18d: 0x57, 0x18e: 0x58, 0x18f: 0x54,\n\t0x190: 0x59, 0x191: 0x5a, 0x192: 0x5b, 0x193: 0x5c, 0x194: 0x54, 0x195: 0x54, 0x196: 0x54, 0x197: 0x54,\n\t0x198: 0x54, 0x199: 0x54, 0x19a: 0x5d, 0x19b: 0x54, 0x19c: 0x54, 0x19d: 0x5e, 0x19e: 0x54, 0x19f: 0x5f,\n\t0x1a4: 0x54, 0x1a5: 0x54, 0x1a6: 0x60, 0x1a7: 0x61,\n\t0x1a8: 0x54, 0x1a9: 0x54, 0x1aa: 0x54, 0x1ab: 0x54, 0x1ac: 0x54, 0x1ad: 0x62, 0x1ae: 0x63, 0x1af: 0x54,\n\t0x1b3: 0x64, 0x1b5: 0x65, 0x1b7: 0x66,\n\t0x1b8: 0x67, 0x1b9: 0x68, 0x1ba: 0x69, 0x1bb: 0x6a, 0x1bc: 0x54, 0x1bd: 0x54, 0x1be: 0x54, 0x1bf: 0x6b,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x6c, 0x1c2: 0x6d, 0x1c3: 0x6e, 0x1c7: 0x6f,\n\t0x1c8: 0x70, 0x1c9: 0x71, 0x1ca: 0x72, 0x1cb: 0x73, 0x1cd: 0x74, 0x1cf: 0x75,\n\t// Block 0x8, offset 0x200\n\t0x237: 0x54,\n\t// Block 0x9, offset 0x240\n\t0x252: 0x76, 0x253: 0x77,\n\t0x258: 0x78, 0x259: 0x79, 0x25a: 0x7a, 0x25b: 0x7b, 0x25c: 0x7c, 0x25e: 0x7d,\n\t0x260: 0x7e, 0x261: 0x7f, 0x263: 0x80, 0x264: 0x81, 0x265: 0x82, 0x266: 0x83, 0x267: 0x84,\n\t0x268: 0x85, 0x269: 0x86, 0x26a: 0x87, 0x26b: 0x88, 0x26f: 0x89,\n\t// Block 0xa, offset 0x280\n\t0x2ac: 0x8a, 0x2ad: 0x8b, 0x2ae: 0x0e, 0x2af: 0x0e,\n\t0x2b0: 0x0e, 0x2b1: 0x0e, 0x2b2: 0x0e, 0x2b3: 0x0e, 0x2b4: 0x8c, 0x2b5: 0x0e, 0x2b6: 0x0e, 0x2b7: 0x8d,\n\t0x2b8: 0x8e, 0x2b9: 0x8f, 0x2ba: 0x0e, 0x2bb: 0x90, 0x2bc: 0x91, 0x2bd: 0x92, 0x2bf: 0x93,\n\t// Block 0xb, offset 0x2c0\n\t0x2c4: 0x94, 0x2c5: 0x54, 0x2c6: 0x95, 0x2c7: 0x96,\n\t0x2cb: 0x97, 0x2cd: 0x98,\n\t0x2e0: 0x99, 0x2e1: 0x99, 0x2e2: 0x99, 0x2e3: 0x99, 0x2e4: 0x9a, 0x2e5: 0x99, 0x2e6: 0x99, 0x2e7: 0x99,\n\t0x2e8: 0x9b, 0x2e9: 0x99, 0x2ea: 0x99, 0x2eb: 0x9c, 0x2ec: 0x9d, 0x2ed: 0x99, 0x2ee: 0x99, 0x2ef: 0x99,\n\t0x2f0: 0x99, 0x2f1: 0x99, 0x2f2: 0x99, 0x2f3: 0x99, 0x2f4: 0x9e, 0x2f5: 0x99, 0x2f6: 0x99, 0x2f7: 0x99,\n\t0x2f8: 0x99, 0x2f9: 0x9f, 0x2fa: 0x99, 0x2fb: 0x99, 0x2fc: 0xa0, 0x2fd: 0xa1, 0x2fe: 0x99, 0x2ff: 0x99,\n\t// Block 0xc, offset 0x300\n\t0x300: 0xa2, 0x301: 0xa3, 0x302: 0xa4, 0x304: 0xa5, 0x305: 0xa6, 0x306: 0xa7, 0x307: 0xa8,\n\t0x308: 0xa9, 0x30b: 0xaa, 0x30c: 0x26, 0x30d: 0xab,\n\t0x310: 0xac, 0x311: 0xad, 0x312: 0xae, 0x313: 0xaf, 0x316: 0xb0, 0x317: 0xb1,\n\t0x318: 0xb2, 0x319: 0xb3, 0x31a: 0xb4, 0x31c: 0xb5,\n\t0x320: 0xb6, 0x327: 0xb7,\n\t0x328: 0xb8, 0x329: 0xb9, 0x32a: 0xba,\n\t0x330: 0xbb, 0x332: 0xbc, 0x334: 0xbd, 0x335: 0xbe, 0x336: 0xbf,\n\t0x33b: 0xc0, 0x33f: 0xc1,\n\t// Block 0xd, offset 0x340\n\t0x36b: 0xc2, 0x36c: 0xc3,\n\t0x37d: 0xc4, 0x37e: 0xc5, 0x37f: 0xc6,\n\t// Block 0xe, offset 0x380\n\t0x3b2: 0xc7,\n\t// Block 0xf, offset 0x3c0\n\t0x3c5: 0xc8, 0x3c6: 0xc9,\n\t0x3c8: 0x54, 0x3c9: 0xca, 0x3cc: 0x54, 0x3cd: 0xcb,\n\t0x3db: 0xcc, 0x3dc: 0xcd, 0x3dd: 0xce, 0x3de: 0xcf, 0x3df: 0xd0,\n\t0x3e8: 0xd1, 0x3e9: 0xd2, 0x3ea: 0xd3,\n\t// Block 0x10, offset 0x400\n\t0x400: 0xd4, 0x404: 0xc3,\n\t0x40b: 0xd5,\n\t0x420: 0x99, 0x421: 0x99, 0x422: 0x99, 0x423: 0xd6, 0x424: 0x99, 0x425: 0xd7, 0x426: 0x99, 0x427: 0x99,\n\t0x428: 0x99, 0x429: 0x99, 0x42a: 0x99, 0x42b: 0x99, 0x42c: 0x99, 0x42d: 0x99, 0x42e: 0x99, 0x42f: 0x99,\n\t0x430: 0x99, 0x431: 0xa0, 0x432: 0x0e, 0x433: 0x99, 0x434: 0x0e, 0x435: 0xd8, 0x436: 0x99, 0x437: 0x99,\n\t0x438: 0x0e, 0x439: 0x0e, 0x43a: 0x0e, 0x43b: 0xd9, 0x43c: 0x99, 0x43d: 0x99, 0x43e: 0x99, 0x43f: 0x99,\n\t// Block 0x11, offset 0x440\n\t0x440: 0xda, 0x441: 0x54, 0x442: 0xdb, 0x443: 0xdc, 0x444: 0xdd, 0x445: 0xde,\n\t0x449: 0xdf, 0x44c: 0x54, 0x44d: 0x54, 0x44e: 0x54, 0x44f: 0x54,\n\t0x450: 0x54, 0x451: 0x54, 0x452: 0x54, 0x453: 0x54, 0x454: 0x54, 0x455: 0x54, 0x456: 0x54, 0x457: 0x54,\n\t0x458: 0x54, 0x459: 0x54, 0x45a: 0x54, 0x45b: 0xe0, 0x45c: 0x54, 0x45d: 0x6a, 0x45e: 0x54, 0x45f: 0xe1,\n\t0x460: 0xe2, 0x461: 0xe3, 0x462: 0xe4, 0x464: 0xe5, 0x465: 0xe6, 0x466: 0xe7, 0x467: 0xe8,\n\t0x468: 0x54, 0x469: 0xe9, 0x46a: 0xea,\n\t0x47f: 0xeb,\n\t// Block 0x12, offset 0x480\n\t0x4bf: 0xeb,\n\t// Block 0x13, offset 0x4c0\n\t0x4d0: 0x09, 0x4d1: 0x0a, 0x4d6: 0x0b,\n\t0x4db: 0x0c, 0x4dd: 0x0d, 0x4de: 0x0e, 0x4df: 0x0f,\n\t0x4ef: 0x10,\n\t0x4ff: 0x10,\n\t// Block 0x14, offset 0x500\n\t0x50f: 0x10,\n\t0x51f: 0x10,\n\t0x52f: 0x10,\n\t0x53f: 0x10,\n\t// Block 0x15, offset 0x540\n\t0x540: 0xec, 0x541: 0xec, 0x542: 0xec, 0x543: 0xec, 0x544: 0x05, 0x545: 0x05, 0x546: 0x05, 0x547: 0xed,\n\t0x548: 0xec, 0x549: 0xec, 0x54a: 0xec, 0x54b: 0xec, 0x54c: 0xec, 0x54d: 0xec, 0x54e: 0xec, 0x54f: 0xec,\n\t0x550: 0xec, 0x551: 0xec, 0x552: 0xec, 0x553: 0xec, 0x554: 0xec, 0x555: 0xec, 0x556: 0xec, 0x557: 0xec,\n\t0x558: 0xec, 0x559: 0xec, 0x55a: 0xec, 0x55b: 0xec, 0x55c: 0xec, 0x55d: 0xec, 0x55e: 0xec, 0x55f: 0xec,\n\t0x560: 0xec, 0x561: 0xec, 0x562: 0xec, 0x563: 0xec, 0x564: 0xec, 0x565: 0xec, 0x566: 0xec, 0x567: 0xec,\n\t0x568: 0xec, 0x569: 0xec, 0x56a: 0xec, 0x56b: 0xec, 0x56c: 0xec, 0x56d: 0xec, 0x56e: 0xec, 0x56f: 0xec,\n\t0x570: 0xec, 0x571: 0xec, 0x572: 0xec, 0x573: 0xec, 0x574: 0xec, 0x575: 0xec, 0x576: 0xec, 0x577: 0xec,\n\t0x578: 0xec, 0x579: 0xec, 0x57a: 0xec, 0x57b: 0xec, 0x57c: 0xec, 0x57d: 0xec, 0x57e: 0xec, 0x57f: 0xec,\n\t// Block 0x16, offset 0x580\n\t0x58f: 0x10,\n\t0x59f: 0x10,\n\t0x5a0: 0x13,\n\t0x5af: 0x10,\n\t0x5bf: 0x10,\n\t// Block 0x17, offset 0x5c0\n\t0x5cf: 0x10,\n}\n\n// Total table size 16952 bytes (16KiB); checksum: F50EF68C\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/bidi/tables13.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n//go:build go1.16 && !go1.21\n\npackage bidi\n\n// UnicodeVersion is the Unicode version from which the tables in this package are derived.\nconst UnicodeVersion = \"13.0.0\"\n\n// xorMasks contains masks to be xor-ed with brackets to get the reverse\n// version.\nvar xorMasks = []int32{ // 8 elements\n\t0, 1, 6, 7, 3, 15, 29, 63,\n} // Size: 56 bytes\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *bidiTrie) lookup(s []byte) (v uint8, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn bidiValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = bidiIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *bidiTrie) lookupUnsafe(s []byte) uint8 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn bidiValues[c0]\n\t}\n\ti := bidiIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *bidiTrie) lookupString(s string) (v uint8, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn bidiValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = bidiIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *bidiTrie) lookupStringUnsafe(s string) uint8 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn bidiValues[c0]\n\t}\n\ti := bidiIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// bidiTrie. Total size: 17408 bytes (17.00 KiB). Checksum: df85fcbfe9b8377f.\ntype bidiTrie struct{}\n\nfunc newBidiTrie(i int) *bidiTrie {\n\treturn &bidiTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *bidiTrie) lookupValue(n uint32, b byte) uint8 {\n\tswitch {\n\tdefault:\n\t\treturn uint8(bidiValues[n<<6+uint32(b)])\n\t}\n}\n\n// bidiValues: 248 blocks, 15872 entries, 15872 bytes\n// The third block is the zero block.\nvar bidiValues = [15872]uint8{\n\t// Block 0x0, offset 0x0\n\t0x00: 0x000b, 0x01: 0x000b, 0x02: 0x000b, 0x03: 0x000b, 0x04: 0x000b, 0x05: 0x000b,\n\t0x06: 0x000b, 0x07: 0x000b, 0x08: 0x000b, 0x09: 0x0008, 0x0a: 0x0007, 0x0b: 0x0008,\n\t0x0c: 0x0009, 0x0d: 0x0007, 0x0e: 0x000b, 0x0f: 0x000b, 0x10: 0x000b, 0x11: 0x000b,\n\t0x12: 0x000b, 0x13: 0x000b, 0x14: 0x000b, 0x15: 0x000b, 0x16: 0x000b, 0x17: 0x000b,\n\t0x18: 0x000b, 0x19: 0x000b, 0x1a: 0x000b, 0x1b: 0x000b, 0x1c: 0x0007, 0x1d: 0x0007,\n\t0x1e: 0x0007, 0x1f: 0x0008, 0x20: 0x0009, 0x21: 0x000a, 0x22: 0x000a, 0x23: 0x0004,\n\t0x24: 0x0004, 0x25: 0x0004, 0x26: 0x000a, 0x27: 0x000a, 0x28: 0x003a, 0x29: 0x002a,\n\t0x2a: 0x000a, 0x2b: 0x0003, 0x2c: 0x0006, 0x2d: 0x0003, 0x2e: 0x0006, 0x2f: 0x0006,\n\t0x30: 0x0002, 0x31: 0x0002, 0x32: 0x0002, 0x33: 0x0002, 0x34: 0x0002, 0x35: 0x0002,\n\t0x36: 0x0002, 0x37: 0x0002, 0x38: 0x0002, 0x39: 0x0002, 0x3a: 0x0006, 0x3b: 0x000a,\n\t0x3c: 0x000a, 0x3d: 0x000a, 0x3e: 0x000a, 0x3f: 0x000a,\n\t// Block 0x1, offset 0x40\n\t0x40: 0x000a,\n\t0x5b: 0x005a, 0x5c: 0x000a, 0x5d: 0x004a,\n\t0x5e: 0x000a, 0x5f: 0x000a, 0x60: 0x000a,\n\t0x7b: 0x005a,\n\t0x7c: 0x000a, 0x7d: 0x004a, 0x7e: 0x000a, 0x7f: 0x000b,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x000b, 0xc1: 0x000b, 0xc2: 0x000b, 0xc3: 0x000b, 0xc4: 0x000b, 0xc5: 0x0007,\n\t0xc6: 0x000b, 0xc7: 0x000b, 0xc8: 0x000b, 0xc9: 0x000b, 0xca: 0x000b, 0xcb: 0x000b,\n\t0xcc: 0x000b, 0xcd: 0x000b, 0xce: 0x000b, 0xcf: 0x000b, 0xd0: 0x000b, 0xd1: 0x000b,\n\t0xd2: 0x000b, 0xd3: 0x000b, 0xd4: 0x000b, 0xd5: 0x000b, 0xd6: 0x000b, 0xd7: 0x000b,\n\t0xd8: 0x000b, 0xd9: 0x000b, 0xda: 0x000b, 0xdb: 0x000b, 0xdc: 0x000b, 0xdd: 0x000b,\n\t0xde: 0x000b, 0xdf: 0x000b, 0xe0: 0x0006, 0xe1: 0x000a, 0xe2: 0x0004, 0xe3: 0x0004,\n\t0xe4: 0x0004, 0xe5: 0x0004, 0xe6: 0x000a, 0xe7: 0x000a, 0xe8: 0x000a, 0xe9: 0x000a,\n\t0xeb: 0x000a, 0xec: 0x000a, 0xed: 0x000b, 0xee: 0x000a, 0xef: 0x000a,\n\t0xf0: 0x0004, 0xf1: 0x0004, 0xf2: 0x0002, 0xf3: 0x0002, 0xf4: 0x000a,\n\t0xf6: 0x000a, 0xf7: 0x000a, 0xf8: 0x000a, 0xf9: 0x0002, 0xfb: 0x000a,\n\t0xfc: 0x000a, 0xfd: 0x000a, 0xfe: 0x000a, 0xff: 0x000a,\n\t// Block 0x4, offset 0x100\n\t0x117: 0x000a,\n\t0x137: 0x000a,\n\t// Block 0x5, offset 0x140\n\t0x179: 0x000a, 0x17a: 0x000a,\n\t// Block 0x6, offset 0x180\n\t0x182: 0x000a, 0x183: 0x000a, 0x184: 0x000a, 0x185: 0x000a,\n\t0x186: 0x000a, 0x187: 0x000a, 0x188: 0x000a, 0x189: 0x000a, 0x18a: 0x000a, 0x18b: 0x000a,\n\t0x18c: 0x000a, 0x18d: 0x000a, 0x18e: 0x000a, 0x18f: 0x000a,\n\t0x192: 0x000a, 0x193: 0x000a, 0x194: 0x000a, 0x195: 0x000a, 0x196: 0x000a, 0x197: 0x000a,\n\t0x198: 0x000a, 0x199: 0x000a, 0x19a: 0x000a, 0x19b: 0x000a, 0x19c: 0x000a, 0x19d: 0x000a,\n\t0x19e: 0x000a, 0x19f: 0x000a,\n\t0x1a5: 0x000a, 0x1a6: 0x000a, 0x1a7: 0x000a, 0x1a8: 0x000a, 0x1a9: 0x000a,\n\t0x1aa: 0x000a, 0x1ab: 0x000a, 0x1ac: 0x000a, 0x1ad: 0x000a, 0x1af: 0x000a,\n\t0x1b0: 0x000a, 0x1b1: 0x000a, 0x1b2: 0x000a, 0x1b3: 0x000a, 0x1b4: 0x000a, 0x1b5: 0x000a,\n\t0x1b6: 0x000a, 0x1b7: 0x000a, 0x1b8: 0x000a, 0x1b9: 0x000a, 0x1ba: 0x000a, 0x1bb: 0x000a,\n\t0x1bc: 0x000a, 0x1bd: 0x000a, 0x1be: 0x000a, 0x1bf: 0x000a,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x000c, 0x1c1: 0x000c, 0x1c2: 0x000c, 0x1c3: 0x000c, 0x1c4: 0x000c, 0x1c5: 0x000c,\n\t0x1c6: 0x000c, 0x1c7: 0x000c, 0x1c8: 0x000c, 0x1c9: 0x000c, 0x1ca: 0x000c, 0x1cb: 0x000c,\n\t0x1cc: 0x000c, 0x1cd: 0x000c, 0x1ce: 0x000c, 0x1cf: 0x000c, 0x1d0: 0x000c, 0x1d1: 0x000c,\n\t0x1d2: 0x000c, 0x1d3: 0x000c, 0x1d4: 0x000c, 0x1d5: 0x000c, 0x1d6: 0x000c, 0x1d7: 0x000c,\n\t0x1d8: 0x000c, 0x1d9: 0x000c, 0x1da: 0x000c, 0x1db: 0x000c, 0x1dc: 0x000c, 0x1dd: 0x000c,\n\t0x1de: 0x000c, 0x1df: 0x000c, 0x1e0: 0x000c, 0x1e1: 0x000c, 0x1e2: 0x000c, 0x1e3: 0x000c,\n\t0x1e4: 0x000c, 0x1e5: 0x000c, 0x1e6: 0x000c, 0x1e7: 0x000c, 0x1e8: 0x000c, 0x1e9: 0x000c,\n\t0x1ea: 0x000c, 0x1eb: 0x000c, 0x1ec: 0x000c, 0x1ed: 0x000c, 0x1ee: 0x000c, 0x1ef: 0x000c,\n\t0x1f0: 0x000c, 0x1f1: 0x000c, 0x1f2: 0x000c, 0x1f3: 0x000c, 0x1f4: 0x000c, 0x1f5: 0x000c,\n\t0x1f6: 0x000c, 0x1f7: 0x000c, 0x1f8: 0x000c, 0x1f9: 0x000c, 0x1fa: 0x000c, 0x1fb: 0x000c,\n\t0x1fc: 0x000c, 0x1fd: 0x000c, 0x1fe: 0x000c, 0x1ff: 0x000c,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x000c, 0x201: 0x000c, 0x202: 0x000c, 0x203: 0x000c, 0x204: 0x000c, 0x205: 0x000c,\n\t0x206: 0x000c, 0x207: 0x000c, 0x208: 0x000c, 0x209: 0x000c, 0x20a: 0x000c, 0x20b: 0x000c,\n\t0x20c: 0x000c, 0x20d: 0x000c, 0x20e: 0x000c, 0x20f: 0x000c, 0x210: 0x000c, 0x211: 0x000c,\n\t0x212: 0x000c, 0x213: 0x000c, 0x214: 0x000c, 0x215: 0x000c, 0x216: 0x000c, 0x217: 0x000c,\n\t0x218: 0x000c, 0x219: 0x000c, 0x21a: 0x000c, 0x21b: 0x000c, 0x21c: 0x000c, 0x21d: 0x000c,\n\t0x21e: 0x000c, 0x21f: 0x000c, 0x220: 0x000c, 0x221: 0x000c, 0x222: 0x000c, 0x223: 0x000c,\n\t0x224: 0x000c, 0x225: 0x000c, 0x226: 0x000c, 0x227: 0x000c, 0x228: 0x000c, 0x229: 0x000c,\n\t0x22a: 0x000c, 0x22b: 0x000c, 0x22c: 0x000c, 0x22d: 0x000c, 0x22e: 0x000c, 0x22f: 0x000c,\n\t0x234: 0x000a, 0x235: 0x000a,\n\t0x23e: 0x000a,\n\t// Block 0x9, offset 0x240\n\t0x244: 0x000a, 0x245: 0x000a,\n\t0x247: 0x000a,\n\t// Block 0xa, offset 0x280\n\t0x2b6: 0x000a,\n\t// Block 0xb, offset 0x2c0\n\t0x2c3: 0x000c, 0x2c4: 0x000c, 0x2c5: 0x000c,\n\t0x2c6: 0x000c, 0x2c7: 0x000c, 0x2c8: 0x000c, 0x2c9: 0x000c,\n\t// Block 0xc, offset 0x300\n\t0x30a: 0x000a,\n\t0x30d: 0x000a, 0x30e: 0x000a, 0x30f: 0x0004, 0x310: 0x0001, 0x311: 0x000c,\n\t0x312: 0x000c, 0x313: 0x000c, 0x314: 0x000c, 0x315: 0x000c, 0x316: 0x000c, 0x317: 0x000c,\n\t0x318: 0x000c, 0x319: 0x000c, 0x31a: 0x000c, 0x31b: 0x000c, 0x31c: 0x000c, 0x31d: 0x000c,\n\t0x31e: 0x000c, 0x31f: 0x000c, 0x320: 0x000c, 0x321: 0x000c, 0x322: 0x000c, 0x323: 0x000c,\n\t0x324: 0x000c, 0x325: 0x000c, 0x326: 0x000c, 0x327: 0x000c, 0x328: 0x000c, 0x329: 0x000c,\n\t0x32a: 0x000c, 0x32b: 0x000c, 0x32c: 0x000c, 0x32d: 0x000c, 0x32e: 0x000c, 0x32f: 0x000c,\n\t0x330: 0x000c, 0x331: 0x000c, 0x332: 0x000c, 0x333: 0x000c, 0x334: 0x000c, 0x335: 0x000c,\n\t0x336: 0x000c, 0x337: 0x000c, 0x338: 0x000c, 0x339: 0x000c, 0x33a: 0x000c, 0x33b: 0x000c,\n\t0x33c: 0x000c, 0x33d: 0x000c, 0x33e: 0x0001, 0x33f: 0x000c,\n\t// Block 0xd, offset 0x340\n\t0x340: 0x0001, 0x341: 0x000c, 0x342: 0x000c, 0x343: 0x0001, 0x344: 0x000c, 0x345: 0x000c,\n\t0x346: 0x0001, 0x347: 0x000c, 0x348: 0x0001, 0x349: 0x0001, 0x34a: 0x0001, 0x34b: 0x0001,\n\t0x34c: 0x0001, 0x34d: 0x0001, 0x34e: 0x0001, 0x34f: 0x0001, 0x350: 0x0001, 0x351: 0x0001,\n\t0x352: 0x0001, 0x353: 0x0001, 0x354: 0x0001, 0x355: 0x0001, 0x356: 0x0001, 0x357: 0x0001,\n\t0x358: 0x0001, 0x359: 0x0001, 0x35a: 0x0001, 0x35b: 0x0001, 0x35c: 0x0001, 0x35d: 0x0001,\n\t0x35e: 0x0001, 0x35f: 0x0001, 0x360: 0x0001, 0x361: 0x0001, 0x362: 0x0001, 0x363: 0x0001,\n\t0x364: 0x0001, 0x365: 0x0001, 0x366: 0x0001, 0x367: 0x0001, 0x368: 0x0001, 0x369: 0x0001,\n\t0x36a: 0x0001, 0x36b: 0x0001, 0x36c: 0x0001, 0x36d: 0x0001, 0x36e: 0x0001, 0x36f: 0x0001,\n\t0x370: 0x0001, 0x371: 0x0001, 0x372: 0x0001, 0x373: 0x0001, 0x374: 0x0001, 0x375: 0x0001,\n\t0x376: 0x0001, 0x377: 0x0001, 0x378: 0x0001, 0x379: 0x0001, 0x37a: 0x0001, 0x37b: 0x0001,\n\t0x37c: 0x0001, 0x37d: 0x0001, 0x37e: 0x0001, 0x37f: 0x0001,\n\t// Block 0xe, offset 0x380\n\t0x380: 0x0005, 0x381: 0x0005, 0x382: 0x0005, 0x383: 0x0005, 0x384: 0x0005, 0x385: 0x0005,\n\t0x386: 0x000a, 0x387: 0x000a, 0x388: 0x000d, 0x389: 0x0004, 0x38a: 0x0004, 0x38b: 0x000d,\n\t0x38c: 0x0006, 0x38d: 0x000d, 0x38e: 0x000a, 0x38f: 0x000a, 0x390: 0x000c, 0x391: 0x000c,\n\t0x392: 0x000c, 0x393: 0x000c, 0x394: 0x000c, 0x395: 0x000c, 0x396: 0x000c, 0x397: 0x000c,\n\t0x398: 0x000c, 0x399: 0x000c, 0x39a: 0x000c, 0x39b: 0x000d, 0x39c: 0x000d, 0x39d: 0x000d,\n\t0x39e: 0x000d, 0x39f: 0x000d, 0x3a0: 0x000d, 0x3a1: 0x000d, 0x3a2: 0x000d, 0x3a3: 0x000d,\n\t0x3a4: 0x000d, 0x3a5: 0x000d, 0x3a6: 0x000d, 0x3a7: 0x000d, 0x3a8: 0x000d, 0x3a9: 0x000d,\n\t0x3aa: 0x000d, 0x3ab: 0x000d, 0x3ac: 0x000d, 0x3ad: 0x000d, 0x3ae: 0x000d, 0x3af: 0x000d,\n\t0x3b0: 0x000d, 0x3b1: 0x000d, 0x3b2: 0x000d, 0x3b3: 0x000d, 0x3b4: 0x000d, 0x3b5: 0x000d,\n\t0x3b6: 0x000d, 0x3b7: 0x000d, 0x3b8: 0x000d, 0x3b9: 0x000d, 0x3ba: 0x000d, 0x3bb: 0x000d,\n\t0x3bc: 0x000d, 0x3bd: 0x000d, 0x3be: 0x000d, 0x3bf: 0x000d,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x000d, 0x3c1: 0x000d, 0x3c2: 0x000d, 0x3c3: 0x000d, 0x3c4: 0x000d, 0x3c5: 0x000d,\n\t0x3c6: 0x000d, 0x3c7: 0x000d, 0x3c8: 0x000d, 0x3c9: 0x000d, 0x3ca: 0x000d, 0x3cb: 0x000c,\n\t0x3cc: 0x000c, 0x3cd: 0x000c, 0x3ce: 0x000c, 0x3cf: 0x000c, 0x3d0: 0x000c, 0x3d1: 0x000c,\n\t0x3d2: 0x000c, 0x3d3: 0x000c, 0x3d4: 0x000c, 0x3d5: 0x000c, 0x3d6: 0x000c, 0x3d7: 0x000c,\n\t0x3d8: 0x000c, 0x3d9: 0x000c, 0x3da: 0x000c, 0x3db: 0x000c, 0x3dc: 0x000c, 0x3dd: 0x000c,\n\t0x3de: 0x000c, 0x3df: 0x000c, 0x3e0: 0x0005, 0x3e1: 0x0005, 0x3e2: 0x0005, 0x3e3: 0x0005,\n\t0x3e4: 0x0005, 0x3e5: 0x0005, 0x3e6: 0x0005, 0x3e7: 0x0005, 0x3e8: 0x0005, 0x3e9: 0x0005,\n\t0x3ea: 0x0004, 0x3eb: 0x0005, 0x3ec: 0x0005, 0x3ed: 0x000d, 0x3ee: 0x000d, 0x3ef: 0x000d,\n\t0x3f0: 0x000c, 0x3f1: 0x000d, 0x3f2: 0x000d, 0x3f3: 0x000d, 0x3f4: 0x000d, 0x3f5: 0x000d,\n\t0x3f6: 0x000d, 0x3f7: 0x000d, 0x3f8: 0x000d, 0x3f9: 0x000d, 0x3fa: 0x000d, 0x3fb: 0x000d,\n\t0x3fc: 0x000d, 0x3fd: 0x000d, 0x3fe: 0x000d, 0x3ff: 0x000d,\n\t// Block 0x10, offset 0x400\n\t0x400: 0x000d, 0x401: 0x000d, 0x402: 0x000d, 0x403: 0x000d, 0x404: 0x000d, 0x405: 0x000d,\n\t0x406: 0x000d, 0x407: 0x000d, 0x408: 0x000d, 0x409: 0x000d, 0x40a: 0x000d, 0x40b: 0x000d,\n\t0x40c: 0x000d, 0x40d: 0x000d, 0x40e: 0x000d, 0x40f: 0x000d, 0x410: 0x000d, 0x411: 0x000d,\n\t0x412: 0x000d, 0x413: 0x000d, 0x414: 0x000d, 0x415: 0x000d, 0x416: 0x000d, 0x417: 0x000d,\n\t0x418: 0x000d, 0x419: 0x000d, 0x41a: 0x000d, 0x41b: 0x000d, 0x41c: 0x000d, 0x41d: 0x000d,\n\t0x41e: 0x000d, 0x41f: 0x000d, 0x420: 0x000d, 0x421: 0x000d, 0x422: 0x000d, 0x423: 0x000d,\n\t0x424: 0x000d, 0x425: 0x000d, 0x426: 0x000d, 0x427: 0x000d, 0x428: 0x000d, 0x429: 0x000d,\n\t0x42a: 0x000d, 0x42b: 0x000d, 0x42c: 0x000d, 0x42d: 0x000d, 0x42e: 0x000d, 0x42f: 0x000d,\n\t0x430: 0x000d, 0x431: 0x000d, 0x432: 0x000d, 0x433: 0x000d, 0x434: 0x000d, 0x435: 0x000d,\n\t0x436: 0x000d, 0x437: 0x000d, 0x438: 0x000d, 0x439: 0x000d, 0x43a: 0x000d, 0x43b: 0x000d,\n\t0x43c: 0x000d, 0x43d: 0x000d, 0x43e: 0x000d, 0x43f: 0x000d,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x000d, 0x441: 0x000d, 0x442: 0x000d, 0x443: 0x000d, 0x444: 0x000d, 0x445: 0x000d,\n\t0x446: 0x000d, 0x447: 0x000d, 0x448: 0x000d, 0x449: 0x000d, 0x44a: 0x000d, 0x44b: 0x000d,\n\t0x44c: 0x000d, 0x44d: 0x000d, 0x44e: 0x000d, 0x44f: 0x000d, 0x450: 0x000d, 0x451: 0x000d,\n\t0x452: 0x000d, 0x453: 0x000d, 0x454: 0x000d, 0x455: 0x000d, 0x456: 0x000c, 0x457: 0x000c,\n\t0x458: 0x000c, 0x459: 0x000c, 0x45a: 0x000c, 0x45b: 0x000c, 0x45c: 0x000c, 0x45d: 0x0005,\n\t0x45e: 0x000a, 0x45f: 0x000c, 0x460: 0x000c, 0x461: 0x000c, 0x462: 0x000c, 0x463: 0x000c,\n\t0x464: 0x000c, 0x465: 0x000d, 0x466: 0x000d, 0x467: 0x000c, 0x468: 0x000c, 0x469: 0x000a,\n\t0x46a: 0x000c, 0x46b: 0x000c, 0x46c: 0x000c, 0x46d: 0x000c, 0x46e: 0x000d, 0x46f: 0x000d,\n\t0x470: 0x0002, 0x471: 0x0002, 0x472: 0x0002, 0x473: 0x0002, 0x474: 0x0002, 0x475: 0x0002,\n\t0x476: 0x0002, 0x477: 0x0002, 0x478: 0x0002, 0x479: 0x0002, 0x47a: 0x000d, 0x47b: 0x000d,\n\t0x47c: 0x000d, 0x47d: 0x000d, 0x47e: 0x000d, 0x47f: 0x000d,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x000d, 0x481: 0x000d, 0x482: 0x000d, 0x483: 0x000d, 0x484: 0x000d, 0x485: 0x000d,\n\t0x486: 0x000d, 0x487: 0x000d, 0x488: 0x000d, 0x489: 0x000d, 0x48a: 0x000d, 0x48b: 0x000d,\n\t0x48c: 0x000d, 0x48d: 0x000d, 0x48e: 0x000d, 0x48f: 0x000d, 0x490: 0x000d, 0x491: 0x000c,\n\t0x492: 0x000d, 0x493: 0x000d, 0x494: 0x000d, 0x495: 0x000d, 0x496: 0x000d, 0x497: 0x000d,\n\t0x498: 0x000d, 0x499: 0x000d, 0x49a: 0x000d, 0x49b: 0x000d, 0x49c: 0x000d, 0x49d: 0x000d,\n\t0x49e: 0x000d, 0x49f: 0x000d, 0x4a0: 0x000d, 0x4a1: 0x000d, 0x4a2: 0x000d, 0x4a3: 0x000d,\n\t0x4a4: 0x000d, 0x4a5: 0x000d, 0x4a6: 0x000d, 0x4a7: 0x000d, 0x4a8: 0x000d, 0x4a9: 0x000d,\n\t0x4aa: 0x000d, 0x4ab: 0x000d, 0x4ac: 0x000d, 0x4ad: 0x000d, 0x4ae: 0x000d, 0x4af: 0x000d,\n\t0x4b0: 0x000c, 0x4b1: 0x000c, 0x4b2: 0x000c, 0x4b3: 0x000c, 0x4b4: 0x000c, 0x4b5: 0x000c,\n\t0x4b6: 0x000c, 0x4b7: 0x000c, 0x4b8: 0x000c, 0x4b9: 0x000c, 0x4ba: 0x000c, 0x4bb: 0x000c,\n\t0x4bc: 0x000c, 0x4bd: 0x000c, 0x4be: 0x000c, 0x4bf: 0x000c,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x000c, 0x4c1: 0x000c, 0x4c2: 0x000c, 0x4c3: 0x000c, 0x4c4: 0x000c, 0x4c5: 0x000c,\n\t0x4c6: 0x000c, 0x4c7: 0x000c, 0x4c8: 0x000c, 0x4c9: 0x000c, 0x4ca: 0x000c, 0x4cb: 0x000d,\n\t0x4cc: 0x000d, 0x4cd: 0x000d, 0x4ce: 0x000d, 0x4cf: 0x000d, 0x4d0: 0x000d, 0x4d1: 0x000d,\n\t0x4d2: 0x000d, 0x4d3: 0x000d, 0x4d4: 0x000d, 0x4d5: 0x000d, 0x4d6: 0x000d, 0x4d7: 0x000d,\n\t0x4d8: 0x000d, 0x4d9: 0x000d, 0x4da: 0x000d, 0x4db: 0x000d, 0x4dc: 0x000d, 0x4dd: 0x000d,\n\t0x4de: 0x000d, 0x4df: 0x000d, 0x4e0: 0x000d, 0x4e1: 0x000d, 0x4e2: 0x000d, 0x4e3: 0x000d,\n\t0x4e4: 0x000d, 0x4e5: 0x000d, 0x4e6: 0x000d, 0x4e7: 0x000d, 0x4e8: 0x000d, 0x4e9: 0x000d,\n\t0x4ea: 0x000d, 0x4eb: 0x000d, 0x4ec: 0x000d, 0x4ed: 0x000d, 0x4ee: 0x000d, 0x4ef: 0x000d,\n\t0x4f0: 0x000d, 0x4f1: 0x000d, 0x4f2: 0x000d, 0x4f3: 0x000d, 0x4f4: 0x000d, 0x4f5: 0x000d,\n\t0x4f6: 0x000d, 0x4f7: 0x000d, 0x4f8: 0x000d, 0x4f9: 0x000d, 0x4fa: 0x000d, 0x4fb: 0x000d,\n\t0x4fc: 0x000d, 0x4fd: 0x000d, 0x4fe: 0x000d, 0x4ff: 0x000d,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x000d, 0x501: 0x000d, 0x502: 0x000d, 0x503: 0x000d, 0x504: 0x000d, 0x505: 0x000d,\n\t0x506: 0x000d, 0x507: 0x000d, 0x508: 0x000d, 0x509: 0x000d, 0x50a: 0x000d, 0x50b: 0x000d,\n\t0x50c: 0x000d, 0x50d: 0x000d, 0x50e: 0x000d, 0x50f: 0x000d, 0x510: 0x000d, 0x511: 0x000d,\n\t0x512: 0x000d, 0x513: 0x000d, 0x514: 0x000d, 0x515: 0x000d, 0x516: 0x000d, 0x517: 0x000d,\n\t0x518: 0x000d, 0x519: 0x000d, 0x51a: 0x000d, 0x51b: 0x000d, 0x51c: 0x000d, 0x51d: 0x000d,\n\t0x51e: 0x000d, 0x51f: 0x000d, 0x520: 0x000d, 0x521: 0x000d, 0x522: 0x000d, 0x523: 0x000d,\n\t0x524: 0x000d, 0x525: 0x000d, 0x526: 0x000c, 0x527: 0x000c, 0x528: 0x000c, 0x529: 0x000c,\n\t0x52a: 0x000c, 0x52b: 0x000c, 0x52c: 0x000c, 0x52d: 0x000c, 0x52e: 0x000c, 0x52f: 0x000c,\n\t0x530: 0x000c, 0x531: 0x000d, 0x532: 0x000d, 0x533: 0x000d, 0x534: 0x000d, 0x535: 0x000d,\n\t0x536: 0x000d, 0x537: 0x000d, 0x538: 0x000d, 0x539: 0x000d, 0x53a: 0x000d, 0x53b: 0x000d,\n\t0x53c: 0x000d, 0x53d: 0x000d, 0x53e: 0x000d, 0x53f: 0x000d,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x0001, 0x541: 0x0001, 0x542: 0x0001, 0x543: 0x0001, 0x544: 0x0001, 0x545: 0x0001,\n\t0x546: 0x0001, 0x547: 0x0001, 0x548: 0x0001, 0x549: 0x0001, 0x54a: 0x0001, 0x54b: 0x0001,\n\t0x54c: 0x0001, 0x54d: 0x0001, 0x54e: 0x0001, 0x54f: 0x0001, 0x550: 0x0001, 0x551: 0x0001,\n\t0x552: 0x0001, 0x553: 0x0001, 0x554: 0x0001, 0x555: 0x0001, 0x556: 0x0001, 0x557: 0x0001,\n\t0x558: 0x0001, 0x559: 0x0001, 0x55a: 0x0001, 0x55b: 0x0001, 0x55c: 0x0001, 0x55d: 0x0001,\n\t0x55e: 0x0001, 0x55f: 0x0001, 0x560: 0x0001, 0x561: 0x0001, 0x562: 0x0001, 0x563: 0x0001,\n\t0x564: 0x0001, 0x565: 0x0001, 0x566: 0x0001, 0x567: 0x0001, 0x568: 0x0001, 0x569: 0x0001,\n\t0x56a: 0x0001, 0x56b: 0x000c, 0x56c: 0x000c, 0x56d: 0x000c, 0x56e: 0x000c, 0x56f: 0x000c,\n\t0x570: 0x000c, 0x571: 0x000c, 0x572: 0x000c, 0x573: 0x000c, 0x574: 0x0001, 0x575: 0x0001,\n\t0x576: 0x000a, 0x577: 0x000a, 0x578: 0x000a, 0x579: 0x000a, 0x57a: 0x0001, 0x57b: 0x0001,\n\t0x57c: 0x0001, 0x57d: 0x000c, 0x57e: 0x0001, 0x57f: 0x0001,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x0001, 0x581: 0x0001, 0x582: 0x0001, 0x583: 0x0001, 0x584: 0x0001, 0x585: 0x0001,\n\t0x586: 0x0001, 0x587: 0x0001, 0x588: 0x0001, 0x589: 0x0001, 0x58a: 0x0001, 0x58b: 0x0001,\n\t0x58c: 0x0001, 0x58d: 0x0001, 0x58e: 0x0001, 0x58f: 0x0001, 0x590: 0x0001, 0x591: 0x0001,\n\t0x592: 0x0001, 0x593: 0x0001, 0x594: 0x0001, 0x595: 0x0001, 0x596: 0x000c, 0x597: 0x000c,\n\t0x598: 0x000c, 0x599: 0x000c, 0x59a: 0x0001, 0x59b: 0x000c, 0x59c: 0x000c, 0x59d: 0x000c,\n\t0x59e: 0x000c, 0x59f: 0x000c, 0x5a0: 0x000c, 0x5a1: 0x000c, 0x5a2: 0x000c, 0x5a3: 0x000c,\n\t0x5a4: 0x0001, 0x5a5: 0x000c, 0x5a6: 0x000c, 0x5a7: 0x000c, 0x5a8: 0x0001, 0x5a9: 0x000c,\n\t0x5aa: 0x000c, 0x5ab: 0x000c, 0x5ac: 0x000c, 0x5ad: 0x000c, 0x5ae: 0x0001, 0x5af: 0x0001,\n\t0x5b0: 0x0001, 0x5b1: 0x0001, 0x5b2: 0x0001, 0x5b3: 0x0001, 0x5b4: 0x0001, 0x5b5: 0x0001,\n\t0x5b6: 0x0001, 0x5b7: 0x0001, 0x5b8: 0x0001, 0x5b9: 0x0001, 0x5ba: 0x0001, 0x5bb: 0x0001,\n\t0x5bc: 0x0001, 0x5bd: 0x0001, 0x5be: 0x0001, 0x5bf: 0x0001,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x0001, 0x5c1: 0x0001, 0x5c2: 0x0001, 0x5c3: 0x0001, 0x5c4: 0x0001, 0x5c5: 0x0001,\n\t0x5c6: 0x0001, 0x5c7: 0x0001, 0x5c8: 0x0001, 0x5c9: 0x0001, 0x5ca: 0x0001, 0x5cb: 0x0001,\n\t0x5cc: 0x0001, 0x5cd: 0x0001, 0x5ce: 0x0001, 0x5cf: 0x0001, 0x5d0: 0x0001, 0x5d1: 0x0001,\n\t0x5d2: 0x0001, 0x5d3: 0x0001, 0x5d4: 0x0001, 0x5d5: 0x0001, 0x5d6: 0x0001, 0x5d7: 0x0001,\n\t0x5d8: 0x0001, 0x5d9: 0x000c, 0x5da: 0x000c, 0x5db: 0x000c, 0x5dc: 0x0001, 0x5dd: 0x0001,\n\t0x5de: 0x0001, 0x5df: 0x0001, 0x5e0: 0x000d, 0x5e1: 0x000d, 0x5e2: 0x000d, 0x5e3: 0x000d,\n\t0x5e4: 0x000d, 0x5e5: 0x000d, 0x5e6: 0x000d, 0x5e7: 0x000d, 0x5e8: 0x000d, 0x5e9: 0x000d,\n\t0x5ea: 0x000d, 0x5eb: 0x000d, 0x5ec: 0x000d, 0x5ed: 0x000d, 0x5ee: 0x000d, 0x5ef: 0x000d,\n\t0x5f0: 0x0001, 0x5f1: 0x0001, 0x5f2: 0x0001, 0x5f3: 0x0001, 0x5f4: 0x0001, 0x5f5: 0x0001,\n\t0x5f6: 0x0001, 0x5f7: 0x0001, 0x5f8: 0x0001, 0x5f9: 0x0001, 0x5fa: 0x0001, 0x5fb: 0x0001,\n\t0x5fc: 0x0001, 0x5fd: 0x0001, 0x5fe: 0x0001, 0x5ff: 0x0001,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x0001, 0x601: 0x0001, 0x602: 0x0001, 0x603: 0x0001, 0x604: 0x0001, 0x605: 0x0001,\n\t0x606: 0x0001, 0x607: 0x0001, 0x608: 0x0001, 0x609: 0x0001, 0x60a: 0x0001, 0x60b: 0x0001,\n\t0x60c: 0x0001, 0x60d: 0x0001, 0x60e: 0x0001, 0x60f: 0x0001, 0x610: 0x0001, 0x611: 0x0001,\n\t0x612: 0x0001, 0x613: 0x0001, 0x614: 0x0001, 0x615: 0x0001, 0x616: 0x0001, 0x617: 0x0001,\n\t0x618: 0x0001, 0x619: 0x0001, 0x61a: 0x0001, 0x61b: 0x0001, 0x61c: 0x0001, 0x61d: 0x0001,\n\t0x61e: 0x0001, 0x61f: 0x0001, 0x620: 0x000d, 0x621: 0x000d, 0x622: 0x000d, 0x623: 0x000d,\n\t0x624: 0x000d, 0x625: 0x000d, 0x626: 0x000d, 0x627: 0x000d, 0x628: 0x000d, 0x629: 0x000d,\n\t0x62a: 0x000d, 0x62b: 0x000d, 0x62c: 0x000d, 0x62d: 0x000d, 0x62e: 0x000d, 0x62f: 0x000d,\n\t0x630: 0x000d, 0x631: 0x000d, 0x632: 0x000d, 0x633: 0x000d, 0x634: 0x000d, 0x635: 0x000d,\n\t0x636: 0x000d, 0x637: 0x000d, 0x638: 0x000d, 0x639: 0x000d, 0x63a: 0x000d, 0x63b: 0x000d,\n\t0x63c: 0x000d, 0x63d: 0x000d, 0x63e: 0x000d, 0x63f: 0x000d,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x000d, 0x641: 0x000d, 0x642: 0x000d, 0x643: 0x000d, 0x644: 0x000d, 0x645: 0x000d,\n\t0x646: 0x000d, 0x647: 0x000d, 0x648: 0x000d, 0x649: 0x000d, 0x64a: 0x000d, 0x64b: 0x000d,\n\t0x64c: 0x000d, 0x64d: 0x000d, 0x64e: 0x000d, 0x64f: 0x000d, 0x650: 0x000d, 0x651: 0x000d,\n\t0x652: 0x000d, 0x653: 0x000c, 0x654: 0x000c, 0x655: 0x000c, 0x656: 0x000c, 0x657: 0x000c,\n\t0x658: 0x000c, 0x659: 0x000c, 0x65a: 0x000c, 0x65b: 0x000c, 0x65c: 0x000c, 0x65d: 0x000c,\n\t0x65e: 0x000c, 0x65f: 0x000c, 0x660: 0x000c, 0x661: 0x000c, 0x662: 0x0005, 0x663: 0x000c,\n\t0x664: 0x000c, 0x665: 0x000c, 0x666: 0x000c, 0x667: 0x000c, 0x668: 0x000c, 0x669: 0x000c,\n\t0x66a: 0x000c, 0x66b: 0x000c, 0x66c: 0x000c, 0x66d: 0x000c, 0x66e: 0x000c, 0x66f: 0x000c,\n\t0x670: 0x000c, 0x671: 0x000c, 0x672: 0x000c, 0x673: 0x000c, 0x674: 0x000c, 0x675: 0x000c,\n\t0x676: 0x000c, 0x677: 0x000c, 0x678: 0x000c, 0x679: 0x000c, 0x67a: 0x000c, 0x67b: 0x000c,\n\t0x67c: 0x000c, 0x67d: 0x000c, 0x67e: 0x000c, 0x67f: 0x000c,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x000c, 0x681: 0x000c, 0x682: 0x000c,\n\t0x6ba: 0x000c,\n\t0x6bc: 0x000c,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c1: 0x000c, 0x6c2: 0x000c, 0x6c3: 0x000c, 0x6c4: 0x000c, 0x6c5: 0x000c,\n\t0x6c6: 0x000c, 0x6c7: 0x000c, 0x6c8: 0x000c,\n\t0x6cd: 0x000c, 0x6d1: 0x000c,\n\t0x6d2: 0x000c, 0x6d3: 0x000c, 0x6d4: 0x000c, 0x6d5: 0x000c, 0x6d6: 0x000c, 0x6d7: 0x000c,\n\t0x6e2: 0x000c, 0x6e3: 0x000c,\n\t// Block 0x1c, offset 0x700\n\t0x701: 0x000c,\n\t0x73c: 0x000c,\n\t// Block 0x1d, offset 0x740\n\t0x741: 0x000c, 0x742: 0x000c, 0x743: 0x000c, 0x744: 0x000c,\n\t0x74d: 0x000c,\n\t0x762: 0x000c, 0x763: 0x000c,\n\t0x772: 0x0004, 0x773: 0x0004,\n\t0x77b: 0x0004,\n\t0x77e: 0x000c,\n\t// Block 0x1e, offset 0x780\n\t0x781: 0x000c, 0x782: 0x000c,\n\t0x7bc: 0x000c,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c1: 0x000c, 0x7c2: 0x000c,\n\t0x7c7: 0x000c, 0x7c8: 0x000c, 0x7cb: 0x000c,\n\t0x7cc: 0x000c, 0x7cd: 0x000c, 0x7d1: 0x000c,\n\t0x7f0: 0x000c, 0x7f1: 0x000c, 0x7f5: 0x000c,\n\t// Block 0x20, offset 0x800\n\t0x801: 0x000c, 0x802: 0x000c, 0x803: 0x000c, 0x804: 0x000c, 0x805: 0x000c,\n\t0x807: 0x000c, 0x808: 0x000c,\n\t0x80d: 0x000c,\n\t0x822: 0x000c, 0x823: 0x000c,\n\t0x831: 0x0004,\n\t0x83a: 0x000c, 0x83b: 0x000c,\n\t0x83c: 0x000c, 0x83d: 0x000c, 0x83e: 0x000c, 0x83f: 0x000c,\n\t// Block 0x21, offset 0x840\n\t0x841: 0x000c,\n\t0x87c: 0x000c, 0x87f: 0x000c,\n\t// Block 0x22, offset 0x880\n\t0x881: 0x000c, 0x882: 0x000c, 0x883: 0x000c, 0x884: 0x000c,\n\t0x88d: 0x000c,\n\t0x895: 0x000c, 0x896: 0x000c,\n\t0x8a2: 0x000c, 0x8a3: 0x000c,\n\t// Block 0x23, offset 0x8c0\n\t0x8c2: 0x000c,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x000c,\n\t0x90d: 0x000c,\n\t0x933: 0x000a, 0x934: 0x000a, 0x935: 0x000a,\n\t0x936: 0x000a, 0x937: 0x000a, 0x938: 0x000a, 0x939: 0x0004, 0x93a: 0x000a,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x000c, 0x944: 0x000c,\n\t0x97e: 0x000c, 0x97f: 0x000c,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x000c,\n\t0x986: 0x000c, 0x987: 0x000c, 0x988: 0x000c, 0x98a: 0x000c, 0x98b: 0x000c,\n\t0x98c: 0x000c, 0x98d: 0x000c,\n\t0x995: 0x000c, 0x996: 0x000c,\n\t0x9a2: 0x000c, 0x9a3: 0x000c,\n\t0x9b8: 0x000a, 0x9b9: 0x000a, 0x9ba: 0x000a, 0x9bb: 0x000a,\n\t0x9bc: 0x000a, 0x9bd: 0x000a, 0x9be: 0x000a,\n\t// Block 0x27, offset 0x9c0\n\t0x9cc: 0x000c, 0x9cd: 0x000c,\n\t0x9e2: 0x000c, 0x9e3: 0x000c,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x000c, 0xa01: 0x000c,\n\t0xa3b: 0x000c,\n\t0xa3c: 0x000c,\n\t// Block 0x29, offset 0xa40\n\t0xa41: 0x000c, 0xa42: 0x000c, 0xa43: 0x000c, 0xa44: 0x000c,\n\t0xa4d: 0x000c,\n\t0xa62: 0x000c, 0xa63: 0x000c,\n\t// Block 0x2a, offset 0xa80\n\t0xa81: 0x000c,\n\t// Block 0x2b, offset 0xac0\n\t0xaca: 0x000c,\n\t0xad2: 0x000c, 0xad3: 0x000c, 0xad4: 0x000c, 0xad6: 0x000c,\n\t// Block 0x2c, offset 0xb00\n\t0xb31: 0x000c, 0xb34: 0x000c, 0xb35: 0x000c,\n\t0xb36: 0x000c, 0xb37: 0x000c, 0xb38: 0x000c, 0xb39: 0x000c, 0xb3a: 0x000c,\n\t0xb3f: 0x0004,\n\t// Block 0x2d, offset 0xb40\n\t0xb47: 0x000c, 0xb48: 0x000c, 0xb49: 0x000c, 0xb4a: 0x000c, 0xb4b: 0x000c,\n\t0xb4c: 0x000c, 0xb4d: 0x000c, 0xb4e: 0x000c,\n\t// Block 0x2e, offset 0xb80\n\t0xbb1: 0x000c, 0xbb4: 0x000c, 0xbb5: 0x000c,\n\t0xbb6: 0x000c, 0xbb7: 0x000c, 0xbb8: 0x000c, 0xbb9: 0x000c, 0xbba: 0x000c, 0xbbb: 0x000c,\n\t0xbbc: 0x000c,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc8: 0x000c, 0xbc9: 0x000c, 0xbca: 0x000c, 0xbcb: 0x000c,\n\t0xbcc: 0x000c, 0xbcd: 0x000c,\n\t// Block 0x30, offset 0xc00\n\t0xc18: 0x000c, 0xc19: 0x000c,\n\t0xc35: 0x000c,\n\t0xc37: 0x000c, 0xc39: 0x000c, 0xc3a: 0x003a, 0xc3b: 0x002a,\n\t0xc3c: 0x003a, 0xc3d: 0x002a,\n\t// Block 0x31, offset 0xc40\n\t0xc71: 0x000c, 0xc72: 0x000c, 0xc73: 0x000c, 0xc74: 0x000c, 0xc75: 0x000c,\n\t0xc76: 0x000c, 0xc77: 0x000c, 0xc78: 0x000c, 0xc79: 0x000c, 0xc7a: 0x000c, 0xc7b: 0x000c,\n\t0xc7c: 0x000c, 0xc7d: 0x000c, 0xc7e: 0x000c,\n\t// Block 0x32, offset 0xc80\n\t0xc80: 0x000c, 0xc81: 0x000c, 0xc82: 0x000c, 0xc83: 0x000c, 0xc84: 0x000c,\n\t0xc86: 0x000c, 0xc87: 0x000c,\n\t0xc8d: 0x000c, 0xc8e: 0x000c, 0xc8f: 0x000c, 0xc90: 0x000c, 0xc91: 0x000c,\n\t0xc92: 0x000c, 0xc93: 0x000c, 0xc94: 0x000c, 0xc95: 0x000c, 0xc96: 0x000c, 0xc97: 0x000c,\n\t0xc99: 0x000c, 0xc9a: 0x000c, 0xc9b: 0x000c, 0xc9c: 0x000c, 0xc9d: 0x000c,\n\t0xc9e: 0x000c, 0xc9f: 0x000c, 0xca0: 0x000c, 0xca1: 0x000c, 0xca2: 0x000c, 0xca3: 0x000c,\n\t0xca4: 0x000c, 0xca5: 0x000c, 0xca6: 0x000c, 0xca7: 0x000c, 0xca8: 0x000c, 0xca9: 0x000c,\n\t0xcaa: 0x000c, 0xcab: 0x000c, 0xcac: 0x000c, 0xcad: 0x000c, 0xcae: 0x000c, 0xcaf: 0x000c,\n\t0xcb0: 0x000c, 0xcb1: 0x000c, 0xcb2: 0x000c, 0xcb3: 0x000c, 0xcb4: 0x000c, 0xcb5: 0x000c,\n\t0xcb6: 0x000c, 0xcb7: 0x000c, 0xcb8: 0x000c, 0xcb9: 0x000c, 0xcba: 0x000c, 0xcbb: 0x000c,\n\t0xcbc: 0x000c,\n\t// Block 0x33, offset 0xcc0\n\t0xcc6: 0x000c,\n\t// Block 0x34, offset 0xd00\n\t0xd2d: 0x000c, 0xd2e: 0x000c, 0xd2f: 0x000c,\n\t0xd30: 0x000c, 0xd32: 0x000c, 0xd33: 0x000c, 0xd34: 0x000c, 0xd35: 0x000c,\n\t0xd36: 0x000c, 0xd37: 0x000c, 0xd39: 0x000c, 0xd3a: 0x000c,\n\t0xd3d: 0x000c, 0xd3e: 0x000c,\n\t// Block 0x35, offset 0xd40\n\t0xd58: 0x000c, 0xd59: 0x000c,\n\t0xd5e: 0x000c, 0xd5f: 0x000c, 0xd60: 0x000c,\n\t0xd71: 0x000c, 0xd72: 0x000c, 0xd73: 0x000c, 0xd74: 0x000c,\n\t// Block 0x36, offset 0xd80\n\t0xd82: 0x000c, 0xd85: 0x000c,\n\t0xd86: 0x000c,\n\t0xd8d: 0x000c,\n\t0xd9d: 0x000c,\n\t// Block 0x37, offset 0xdc0\n\t0xddd: 0x000c,\n\t0xdde: 0x000c, 0xddf: 0x000c,\n\t// Block 0x38, offset 0xe00\n\t0xe10: 0x000a, 0xe11: 0x000a,\n\t0xe12: 0x000a, 0xe13: 0x000a, 0xe14: 0x000a, 0xe15: 0x000a, 0xe16: 0x000a, 0xe17: 0x000a,\n\t0xe18: 0x000a, 0xe19: 0x000a,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x000a,\n\t// Block 0x3a, offset 0xe80\n\t0xe80: 0x0009,\n\t0xe9b: 0x007a, 0xe9c: 0x006a,\n\t// Block 0x3b, offset 0xec0\n\t0xed2: 0x000c, 0xed3: 0x000c, 0xed4: 0x000c,\n\t0xef2: 0x000c, 0xef3: 0x000c, 0xef4: 0x000c,\n\t// Block 0x3c, offset 0xf00\n\t0xf12: 0x000c, 0xf13: 0x000c,\n\t0xf32: 0x000c, 0xf33: 0x000c,\n\t// Block 0x3d, offset 0xf40\n\t0xf74: 0x000c, 0xf75: 0x000c,\n\t0xf77: 0x000c, 0xf78: 0x000c, 0xf79: 0x000c, 0xf7a: 0x000c, 0xf7b: 0x000c,\n\t0xf7c: 0x000c, 0xf7d: 0x000c,\n\t// Block 0x3e, offset 0xf80\n\t0xf86: 0x000c, 0xf89: 0x000c, 0xf8a: 0x000c, 0xf8b: 0x000c,\n\t0xf8c: 0x000c, 0xf8d: 0x000c, 0xf8e: 0x000c, 0xf8f: 0x000c, 0xf90: 0x000c, 0xf91: 0x000c,\n\t0xf92: 0x000c, 0xf93: 0x000c,\n\t0xf9b: 0x0004, 0xf9d: 0x000c,\n\t0xfb0: 0x000a, 0xfb1: 0x000a, 0xfb2: 0x000a, 0xfb3: 0x000a, 0xfb4: 0x000a, 0xfb5: 0x000a,\n\t0xfb6: 0x000a, 0xfb7: 0x000a, 0xfb8: 0x000a, 0xfb9: 0x000a,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc0: 0x000a, 0xfc1: 0x000a, 0xfc2: 0x000a, 0xfc3: 0x000a, 0xfc4: 0x000a, 0xfc5: 0x000a,\n\t0xfc6: 0x000a, 0xfc7: 0x000a, 0xfc8: 0x000a, 0xfc9: 0x000a, 0xfca: 0x000a, 0xfcb: 0x000c,\n\t0xfcc: 0x000c, 0xfcd: 0x000c, 0xfce: 0x000b,\n\t// Block 0x40, offset 0x1000\n\t0x1005: 0x000c,\n\t0x1006: 0x000c,\n\t0x1029: 0x000c,\n\t// Block 0x41, offset 0x1040\n\t0x1060: 0x000c, 0x1061: 0x000c, 0x1062: 0x000c,\n\t0x1067: 0x000c, 0x1068: 0x000c,\n\t0x1072: 0x000c,\n\t0x1079: 0x000c, 0x107a: 0x000c, 0x107b: 0x000c,\n\t// Block 0x42, offset 0x1080\n\t0x1080: 0x000a, 0x1084: 0x000a, 0x1085: 0x000a,\n\t// Block 0x43, offset 0x10c0\n\t0x10de: 0x000a, 0x10df: 0x000a, 0x10e0: 0x000a, 0x10e1: 0x000a, 0x10e2: 0x000a, 0x10e3: 0x000a,\n\t0x10e4: 0x000a, 0x10e5: 0x000a, 0x10e6: 0x000a, 0x10e7: 0x000a, 0x10e8: 0x000a, 0x10e9: 0x000a,\n\t0x10ea: 0x000a, 0x10eb: 0x000a, 0x10ec: 0x000a, 0x10ed: 0x000a, 0x10ee: 0x000a, 0x10ef: 0x000a,\n\t0x10f0: 0x000a, 0x10f1: 0x000a, 0x10f2: 0x000a, 0x10f3: 0x000a, 0x10f4: 0x000a, 0x10f5: 0x000a,\n\t0x10f6: 0x000a, 0x10f7: 0x000a, 0x10f8: 0x000a, 0x10f9: 0x000a, 0x10fa: 0x000a, 0x10fb: 0x000a,\n\t0x10fc: 0x000a, 0x10fd: 0x000a, 0x10fe: 0x000a, 0x10ff: 0x000a,\n\t// Block 0x44, offset 0x1100\n\t0x1117: 0x000c,\n\t0x1118: 0x000c, 0x111b: 0x000c,\n\t// Block 0x45, offset 0x1140\n\t0x1156: 0x000c,\n\t0x1158: 0x000c, 0x1159: 0x000c, 0x115a: 0x000c, 0x115b: 0x000c, 0x115c: 0x000c, 0x115d: 0x000c,\n\t0x115e: 0x000c, 0x1160: 0x000c, 0x1162: 0x000c,\n\t0x1165: 0x000c, 0x1166: 0x000c, 0x1167: 0x000c, 0x1168: 0x000c, 0x1169: 0x000c,\n\t0x116a: 0x000c, 0x116b: 0x000c, 0x116c: 0x000c,\n\t0x1173: 0x000c, 0x1174: 0x000c, 0x1175: 0x000c,\n\t0x1176: 0x000c, 0x1177: 0x000c, 0x1178: 0x000c, 0x1179: 0x000c, 0x117a: 0x000c, 0x117b: 0x000c,\n\t0x117c: 0x000c, 0x117f: 0x000c,\n\t// Block 0x46, offset 0x1180\n\t0x11b0: 0x000c, 0x11b1: 0x000c, 0x11b2: 0x000c, 0x11b3: 0x000c, 0x11b4: 0x000c, 0x11b5: 0x000c,\n\t0x11b6: 0x000c, 0x11b7: 0x000c, 0x11b8: 0x000c, 0x11b9: 0x000c, 0x11ba: 0x000c, 0x11bb: 0x000c,\n\t0x11bc: 0x000c, 0x11bd: 0x000c, 0x11be: 0x000c, 0x11bf: 0x000c,\n\t// Block 0x47, offset 0x11c0\n\t0x11c0: 0x000c,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0x000c, 0x1201: 0x000c, 0x1202: 0x000c, 0x1203: 0x000c,\n\t0x1234: 0x000c,\n\t0x1236: 0x000c, 0x1237: 0x000c, 0x1238: 0x000c, 0x1239: 0x000c, 0x123a: 0x000c,\n\t0x123c: 0x000c,\n\t// Block 0x49, offset 0x1240\n\t0x1242: 0x000c,\n\t0x126b: 0x000c, 0x126c: 0x000c, 0x126d: 0x000c, 0x126e: 0x000c, 0x126f: 0x000c,\n\t0x1270: 0x000c, 0x1271: 0x000c, 0x1272: 0x000c, 0x1273: 0x000c,\n\t// Block 0x4a, offset 0x1280\n\t0x1280: 0x000c, 0x1281: 0x000c,\n\t0x12a2: 0x000c, 0x12a3: 0x000c,\n\t0x12a4: 0x000c, 0x12a5: 0x000c, 0x12a8: 0x000c, 0x12a9: 0x000c,\n\t0x12ab: 0x000c, 0x12ac: 0x000c, 0x12ad: 0x000c,\n\t// Block 0x4b, offset 0x12c0\n\t0x12e6: 0x000c, 0x12e8: 0x000c, 0x12e9: 0x000c,\n\t0x12ed: 0x000c, 0x12ef: 0x000c,\n\t0x12f0: 0x000c, 0x12f1: 0x000c,\n\t// Block 0x4c, offset 0x1300\n\t0x132c: 0x000c, 0x132d: 0x000c, 0x132e: 0x000c, 0x132f: 0x000c,\n\t0x1330: 0x000c, 0x1331: 0x000c, 0x1332: 0x000c, 0x1333: 0x000c,\n\t0x1336: 0x000c, 0x1337: 0x000c,\n\t// Block 0x4d, offset 0x1340\n\t0x1350: 0x000c, 0x1351: 0x000c,\n\t0x1352: 0x000c, 0x1354: 0x000c, 0x1355: 0x000c, 0x1356: 0x000c, 0x1357: 0x000c,\n\t0x1358: 0x000c, 0x1359: 0x000c, 0x135a: 0x000c, 0x135b: 0x000c, 0x135c: 0x000c, 0x135d: 0x000c,\n\t0x135e: 0x000c, 0x135f: 0x000c, 0x1360: 0x000c, 0x1362: 0x000c, 0x1363: 0x000c,\n\t0x1364: 0x000c, 0x1365: 0x000c, 0x1366: 0x000c, 0x1367: 0x000c, 0x1368: 0x000c,\n\t0x136d: 0x000c,\n\t0x1374: 0x000c,\n\t0x1378: 0x000c, 0x1379: 0x000c,\n\t// Block 0x4e, offset 0x1380\n\t0x1380: 0x000c, 0x1381: 0x000c, 0x1382: 0x000c, 0x1383: 0x000c, 0x1384: 0x000c, 0x1385: 0x000c,\n\t0x1386: 0x000c, 0x1387: 0x000c, 0x1388: 0x000c, 0x1389: 0x000c, 0x138a: 0x000c, 0x138b: 0x000c,\n\t0x138c: 0x000c, 0x138d: 0x000c, 0x138e: 0x000c, 0x138f: 0x000c, 0x1390: 0x000c, 0x1391: 0x000c,\n\t0x1392: 0x000c, 0x1393: 0x000c, 0x1394: 0x000c, 0x1395: 0x000c, 0x1396: 0x000c, 0x1397: 0x000c,\n\t0x1398: 0x000c, 0x1399: 0x000c, 0x139a: 0x000c, 0x139b: 0x000c, 0x139c: 0x000c, 0x139d: 0x000c,\n\t0x139e: 0x000c, 0x139f: 0x000c, 0x13a0: 0x000c, 0x13a1: 0x000c, 0x13a2: 0x000c, 0x13a3: 0x000c,\n\t0x13a4: 0x000c, 0x13a5: 0x000c, 0x13a6: 0x000c, 0x13a7: 0x000c, 0x13a8: 0x000c, 0x13a9: 0x000c,\n\t0x13aa: 0x000c, 0x13ab: 0x000c, 0x13ac: 0x000c, 0x13ad: 0x000c, 0x13ae: 0x000c, 0x13af: 0x000c,\n\t0x13b0: 0x000c, 0x13b1: 0x000c, 0x13b2: 0x000c, 0x13b3: 0x000c, 0x13b4: 0x000c, 0x13b5: 0x000c,\n\t0x13b6: 0x000c, 0x13b7: 0x000c, 0x13b8: 0x000c, 0x13b9: 0x000c, 0x13bb: 0x000c,\n\t0x13bc: 0x000c, 0x13bd: 0x000c, 0x13be: 0x000c, 0x13bf: 0x000c,\n\t// Block 0x4f, offset 0x13c0\n\t0x13fd: 0x000a, 0x13ff: 0x000a,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x000a, 0x1401: 0x000a,\n\t0x140d: 0x000a, 0x140e: 0x000a, 0x140f: 0x000a,\n\t0x141d: 0x000a,\n\t0x141e: 0x000a, 0x141f: 0x000a,\n\t0x142d: 0x000a, 0x142e: 0x000a, 0x142f: 0x000a,\n\t0x143d: 0x000a, 0x143e: 0x000a,\n\t// Block 0x51, offset 0x1440\n\t0x1440: 0x0009, 0x1441: 0x0009, 0x1442: 0x0009, 0x1443: 0x0009, 0x1444: 0x0009, 0x1445: 0x0009,\n\t0x1446: 0x0009, 0x1447: 0x0009, 0x1448: 0x0009, 0x1449: 0x0009, 0x144a: 0x0009, 0x144b: 0x000b,\n\t0x144c: 0x000b, 0x144d: 0x000b, 0x144f: 0x0001, 0x1450: 0x000a, 0x1451: 0x000a,\n\t0x1452: 0x000a, 0x1453: 0x000a, 0x1454: 0x000a, 0x1455: 0x000a, 0x1456: 0x000a, 0x1457: 0x000a,\n\t0x1458: 0x000a, 0x1459: 0x000a, 0x145a: 0x000a, 0x145b: 0x000a, 0x145c: 0x000a, 0x145d: 0x000a,\n\t0x145e: 0x000a, 0x145f: 0x000a, 0x1460: 0x000a, 0x1461: 0x000a, 0x1462: 0x000a, 0x1463: 0x000a,\n\t0x1464: 0x000a, 0x1465: 0x000a, 0x1466: 0x000a, 0x1467: 0x000a, 0x1468: 0x0009, 0x1469: 0x0007,\n\t0x146a: 0x000e, 0x146b: 0x000e, 0x146c: 0x000e, 0x146d: 0x000e, 0x146e: 0x000e, 0x146f: 0x0006,\n\t0x1470: 0x0004, 0x1471: 0x0004, 0x1472: 0x0004, 0x1473: 0x0004, 0x1474: 0x0004, 0x1475: 0x000a,\n\t0x1476: 0x000a, 0x1477: 0x000a, 0x1478: 0x000a, 0x1479: 0x000a, 0x147a: 0x000a, 0x147b: 0x000a,\n\t0x147c: 0x000a, 0x147d: 0x000a, 0x147e: 0x000a, 0x147f: 0x000a,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x000a, 0x1481: 0x000a, 0x1482: 0x000a, 0x1483: 0x000a, 0x1484: 0x0006, 0x1485: 0x009a,\n\t0x1486: 0x008a, 0x1487: 0x000a, 0x1488: 0x000a, 0x1489: 0x000a, 0x148a: 0x000a, 0x148b: 0x000a,\n\t0x148c: 0x000a, 0x148d: 0x000a, 0x148e: 0x000a, 0x148f: 0x000a, 0x1490: 0x000a, 0x1491: 0x000a,\n\t0x1492: 0x000a, 0x1493: 0x000a, 0x1494: 0x000a, 0x1495: 0x000a, 0x1496: 0x000a, 0x1497: 0x000a,\n\t0x1498: 0x000a, 0x1499: 0x000a, 0x149a: 0x000a, 0x149b: 0x000a, 0x149c: 0x000a, 0x149d: 0x000a,\n\t0x149e: 0x000a, 0x149f: 0x0009, 0x14a0: 0x000b, 0x14a1: 0x000b, 0x14a2: 0x000b, 0x14a3: 0x000b,\n\t0x14a4: 0x000b, 0x14a5: 0x000b, 0x14a6: 0x000e, 0x14a7: 0x000e, 0x14a8: 0x000e, 0x14a9: 0x000e,\n\t0x14aa: 0x000b, 0x14ab: 0x000b, 0x14ac: 0x000b, 0x14ad: 0x000b, 0x14ae: 0x000b, 0x14af: 0x000b,\n\t0x14b0: 0x0002, 0x14b4: 0x0002, 0x14b5: 0x0002,\n\t0x14b6: 0x0002, 0x14b7: 0x0002, 0x14b8: 0x0002, 0x14b9: 0x0002, 0x14ba: 0x0003, 0x14bb: 0x0003,\n\t0x14bc: 0x000a, 0x14bd: 0x009a, 0x14be: 0x008a,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x0002, 0x14c1: 0x0002, 0x14c2: 0x0002, 0x14c3: 0x0002, 0x14c4: 0x0002, 0x14c5: 0x0002,\n\t0x14c6: 0x0002, 0x14c7: 0x0002, 0x14c8: 0x0002, 0x14c9: 0x0002, 0x14ca: 0x0003, 0x14cb: 0x0003,\n\t0x14cc: 0x000a, 0x14cd: 0x009a, 0x14ce: 0x008a,\n\t0x14e0: 0x0004, 0x14e1: 0x0004, 0x14e2: 0x0004, 0x14e3: 0x0004,\n\t0x14e4: 0x0004, 0x14e5: 0x0004, 0x14e6: 0x0004, 0x14e7: 0x0004, 0x14e8: 0x0004, 0x14e9: 0x0004,\n\t0x14ea: 0x0004, 0x14eb: 0x0004, 0x14ec: 0x0004, 0x14ed: 0x0004, 0x14ee: 0x0004, 0x14ef: 0x0004,\n\t0x14f0: 0x0004, 0x14f1: 0x0004, 0x14f2: 0x0004, 0x14f3: 0x0004, 0x14f4: 0x0004, 0x14f5: 0x0004,\n\t0x14f6: 0x0004, 0x14f7: 0x0004, 0x14f8: 0x0004, 0x14f9: 0x0004, 0x14fa: 0x0004, 0x14fb: 0x0004,\n\t0x14fc: 0x0004, 0x14fd: 0x0004, 0x14fe: 0x0004, 0x14ff: 0x0004,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0x0004, 0x1501: 0x0004, 0x1502: 0x0004, 0x1503: 0x0004, 0x1504: 0x0004, 0x1505: 0x0004,\n\t0x1506: 0x0004, 0x1507: 0x0004, 0x1508: 0x0004, 0x1509: 0x0004, 0x150a: 0x0004, 0x150b: 0x0004,\n\t0x150c: 0x0004, 0x150d: 0x0004, 0x150e: 0x0004, 0x150f: 0x0004, 0x1510: 0x000c, 0x1511: 0x000c,\n\t0x1512: 0x000c, 0x1513: 0x000c, 0x1514: 0x000c, 0x1515: 0x000c, 0x1516: 0x000c, 0x1517: 0x000c,\n\t0x1518: 0x000c, 0x1519: 0x000c, 0x151a: 0x000c, 0x151b: 0x000c, 0x151c: 0x000c, 0x151d: 0x000c,\n\t0x151e: 0x000c, 0x151f: 0x000c, 0x1520: 0x000c, 0x1521: 0x000c, 0x1522: 0x000c, 0x1523: 0x000c,\n\t0x1524: 0x000c, 0x1525: 0x000c, 0x1526: 0x000c, 0x1527: 0x000c, 0x1528: 0x000c, 0x1529: 0x000c,\n\t0x152a: 0x000c, 0x152b: 0x000c, 0x152c: 0x000c, 0x152d: 0x000c, 0x152e: 0x000c, 0x152f: 0x000c,\n\t0x1530: 0x000c,\n\t// Block 0x55, offset 0x1540\n\t0x1540: 0x000a, 0x1541: 0x000a, 0x1543: 0x000a, 0x1544: 0x000a, 0x1545: 0x000a,\n\t0x1546: 0x000a, 0x1548: 0x000a, 0x1549: 0x000a,\n\t0x1554: 0x000a, 0x1556: 0x000a, 0x1557: 0x000a,\n\t0x1558: 0x000a,\n\t0x155e: 0x000a, 0x155f: 0x000a, 0x1560: 0x000a, 0x1561: 0x000a, 0x1562: 0x000a, 0x1563: 0x000a,\n\t0x1565: 0x000a, 0x1567: 0x000a, 0x1569: 0x000a,\n\t0x156e: 0x0004,\n\t0x157a: 0x000a, 0x157b: 0x000a,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x000a, 0x1581: 0x000a, 0x1582: 0x000a, 0x1583: 0x000a, 0x1584: 0x000a,\n\t0x158a: 0x000a, 0x158b: 0x000a,\n\t0x158c: 0x000a, 0x158d: 0x000a, 0x1590: 0x000a, 0x1591: 0x000a,\n\t0x1592: 0x000a, 0x1593: 0x000a, 0x1594: 0x000a, 0x1595: 0x000a, 0x1596: 0x000a, 0x1597: 0x000a,\n\t0x1598: 0x000a, 0x1599: 0x000a, 0x159a: 0x000a, 0x159b: 0x000a, 0x159c: 0x000a, 0x159d: 0x000a,\n\t0x159e: 0x000a, 0x159f: 0x000a,\n\t// Block 0x57, offset 0x15c0\n\t0x15c9: 0x000a, 0x15ca: 0x000a, 0x15cb: 0x000a,\n\t0x15d0: 0x000a, 0x15d1: 0x000a,\n\t0x15d2: 0x000a, 0x15d3: 0x000a, 0x15d4: 0x000a, 0x15d5: 0x000a, 0x15d6: 0x000a, 0x15d7: 0x000a,\n\t0x15d8: 0x000a, 0x15d9: 0x000a, 0x15da: 0x000a, 0x15db: 0x000a, 0x15dc: 0x000a, 0x15dd: 0x000a,\n\t0x15de: 0x000a, 0x15df: 0x000a, 0x15e0: 0x000a, 0x15e1: 0x000a, 0x15e2: 0x000a, 0x15e3: 0x000a,\n\t0x15e4: 0x000a, 0x15e5: 0x000a, 0x15e6: 0x000a, 0x15e7: 0x000a, 0x15e8: 0x000a, 0x15e9: 0x000a,\n\t0x15ea: 0x000a, 0x15eb: 0x000a, 0x15ec: 0x000a, 0x15ed: 0x000a, 0x15ee: 0x000a, 0x15ef: 0x000a,\n\t0x15f0: 0x000a, 0x15f1: 0x000a, 0x15f2: 0x000a, 0x15f3: 0x000a, 0x15f4: 0x000a, 0x15f5: 0x000a,\n\t0x15f6: 0x000a, 0x15f7: 0x000a, 0x15f8: 0x000a, 0x15f9: 0x000a, 0x15fa: 0x000a, 0x15fb: 0x000a,\n\t0x15fc: 0x000a, 0x15fd: 0x000a, 0x15fe: 0x000a, 0x15ff: 0x000a,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0x000a, 0x1601: 0x000a, 0x1602: 0x000a, 0x1603: 0x000a, 0x1604: 0x000a, 0x1605: 0x000a,\n\t0x1606: 0x000a, 0x1607: 0x000a, 0x1608: 0x000a, 0x1609: 0x000a, 0x160a: 0x000a, 0x160b: 0x000a,\n\t0x160c: 0x000a, 0x160d: 0x000a, 0x160e: 0x000a, 0x160f: 0x000a, 0x1610: 0x000a, 0x1611: 0x000a,\n\t0x1612: 0x000a, 0x1613: 0x000a, 0x1614: 0x000a, 0x1615: 0x000a, 0x1616: 0x000a, 0x1617: 0x000a,\n\t0x1618: 0x000a, 0x1619: 0x000a, 0x161a: 0x000a, 0x161b: 0x000a, 0x161c: 0x000a, 0x161d: 0x000a,\n\t0x161e: 0x000a, 0x161f: 0x000a, 0x1620: 0x000a, 0x1621: 0x000a, 0x1622: 0x000a, 0x1623: 0x000a,\n\t0x1624: 0x000a, 0x1625: 0x000a, 0x1626: 0x000a, 0x1627: 0x000a, 0x1628: 0x000a, 0x1629: 0x000a,\n\t0x162a: 0x000a, 0x162b: 0x000a, 0x162c: 0x000a, 0x162d: 0x000a, 0x162e: 0x000a, 0x162f: 0x000a,\n\t0x1630: 0x000a, 0x1631: 0x000a, 0x1632: 0x000a, 0x1633: 0x000a, 0x1634: 0x000a, 0x1635: 0x000a,\n\t0x1636: 0x000a, 0x1637: 0x000a, 0x1638: 0x000a, 0x1639: 0x000a, 0x163a: 0x000a, 0x163b: 0x000a,\n\t0x163c: 0x000a, 0x163d: 0x000a, 0x163e: 0x000a, 0x163f: 0x000a,\n\t// Block 0x59, offset 0x1640\n\t0x1640: 0x000a, 0x1641: 0x000a, 0x1642: 0x000a, 0x1643: 0x000a, 0x1644: 0x000a, 0x1645: 0x000a,\n\t0x1646: 0x000a, 0x1647: 0x000a, 0x1648: 0x000a, 0x1649: 0x000a, 0x164a: 0x000a, 0x164b: 0x000a,\n\t0x164c: 0x000a, 0x164d: 0x000a, 0x164e: 0x000a, 0x164f: 0x000a, 0x1650: 0x000a, 0x1651: 0x000a,\n\t0x1652: 0x0003, 0x1653: 0x0004, 0x1654: 0x000a, 0x1655: 0x000a, 0x1656: 0x000a, 0x1657: 0x000a,\n\t0x1658: 0x000a, 0x1659: 0x000a, 0x165a: 0x000a, 0x165b: 0x000a, 0x165c: 0x000a, 0x165d: 0x000a,\n\t0x165e: 0x000a, 0x165f: 0x000a, 0x1660: 0x000a, 0x1661: 0x000a, 0x1662: 0x000a, 0x1663: 0x000a,\n\t0x1664: 0x000a, 0x1665: 0x000a, 0x1666: 0x000a, 0x1667: 0x000a, 0x1668: 0x000a, 0x1669: 0x000a,\n\t0x166a: 0x000a, 0x166b: 0x000a, 0x166c: 0x000a, 0x166d: 0x000a, 0x166e: 0x000a, 0x166f: 0x000a,\n\t0x1670: 0x000a, 0x1671: 0x000a, 0x1672: 0x000a, 0x1673: 0x000a, 0x1674: 0x000a, 0x1675: 0x000a,\n\t0x1676: 0x000a, 0x1677: 0x000a, 0x1678: 0x000a, 0x1679: 0x000a, 0x167a: 0x000a, 0x167b: 0x000a,\n\t0x167c: 0x000a, 0x167d: 0x000a, 0x167e: 0x000a, 0x167f: 0x000a,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x000a, 0x1681: 0x000a, 0x1682: 0x000a, 0x1683: 0x000a, 0x1684: 0x000a, 0x1685: 0x000a,\n\t0x1686: 0x000a, 0x1687: 0x000a, 0x1688: 0x003a, 0x1689: 0x002a, 0x168a: 0x003a, 0x168b: 0x002a,\n\t0x168c: 0x000a, 0x168d: 0x000a, 0x168e: 0x000a, 0x168f: 0x000a, 0x1690: 0x000a, 0x1691: 0x000a,\n\t0x1692: 0x000a, 0x1693: 0x000a, 0x1694: 0x000a, 0x1695: 0x000a, 0x1696: 0x000a, 0x1697: 0x000a,\n\t0x1698: 0x000a, 0x1699: 0x000a, 0x169a: 0x000a, 0x169b: 0x000a, 0x169c: 0x000a, 0x169d: 0x000a,\n\t0x169e: 0x000a, 0x169f: 0x000a, 0x16a0: 0x000a, 0x16a1: 0x000a, 0x16a2: 0x000a, 0x16a3: 0x000a,\n\t0x16a4: 0x000a, 0x16a5: 0x000a, 0x16a6: 0x000a, 0x16a7: 0x000a, 0x16a8: 0x000a, 0x16a9: 0x009a,\n\t0x16aa: 0x008a, 0x16ab: 0x000a, 0x16ac: 0x000a, 0x16ad: 0x000a, 0x16ae: 0x000a, 0x16af: 0x000a,\n\t0x16b0: 0x000a, 0x16b1: 0x000a, 0x16b2: 0x000a, 0x16b3: 0x000a, 0x16b4: 0x000a, 0x16b5: 0x000a,\n\t// Block 0x5b, offset 0x16c0\n\t0x16fb: 0x000a,\n\t0x16fc: 0x000a, 0x16fd: 0x000a, 0x16fe: 0x000a, 0x16ff: 0x000a,\n\t// Block 0x5c, offset 0x1700\n\t0x1700: 0x000a, 0x1701: 0x000a, 0x1702: 0x000a, 0x1703: 0x000a, 0x1704: 0x000a, 0x1705: 0x000a,\n\t0x1706: 0x000a, 0x1707: 0x000a, 0x1708: 0x000a, 0x1709: 0x000a, 0x170a: 0x000a, 0x170b: 0x000a,\n\t0x170c: 0x000a, 0x170d: 0x000a, 0x170e: 0x000a, 0x170f: 0x000a, 0x1710: 0x000a, 0x1711: 0x000a,\n\t0x1712: 0x000a, 0x1713: 0x000a, 0x1714: 0x000a, 0x1716: 0x000a, 0x1717: 0x000a,\n\t0x1718: 0x000a, 0x1719: 0x000a, 0x171a: 0x000a, 0x171b: 0x000a, 0x171c: 0x000a, 0x171d: 0x000a,\n\t0x171e: 0x000a, 0x171f: 0x000a, 0x1720: 0x000a, 0x1721: 0x000a, 0x1722: 0x000a, 0x1723: 0x000a,\n\t0x1724: 0x000a, 0x1725: 0x000a, 0x1726: 0x000a, 0x1727: 0x000a, 0x1728: 0x000a, 0x1729: 0x000a,\n\t0x172a: 0x000a, 0x172b: 0x000a, 0x172c: 0x000a, 0x172d: 0x000a, 0x172e: 0x000a, 0x172f: 0x000a,\n\t0x1730: 0x000a, 0x1731: 0x000a, 0x1732: 0x000a, 0x1733: 0x000a, 0x1734: 0x000a, 0x1735: 0x000a,\n\t0x1736: 0x000a, 0x1737: 0x000a, 0x1738: 0x000a, 0x1739: 0x000a, 0x173a: 0x000a, 0x173b: 0x000a,\n\t0x173c: 0x000a, 0x173d: 0x000a, 0x173e: 0x000a, 0x173f: 0x000a,\n\t// Block 0x5d, offset 0x1740\n\t0x1740: 0x000a, 0x1741: 0x000a, 0x1742: 0x000a, 0x1743: 0x000a, 0x1744: 0x000a, 0x1745: 0x000a,\n\t0x1746: 0x000a, 0x1747: 0x000a, 0x1748: 0x000a, 0x1749: 0x000a, 0x174a: 0x000a, 0x174b: 0x000a,\n\t0x174c: 0x000a, 0x174d: 0x000a, 0x174e: 0x000a, 0x174f: 0x000a, 0x1750: 0x000a, 0x1751: 0x000a,\n\t0x1752: 0x000a, 0x1753: 0x000a, 0x1754: 0x000a, 0x1755: 0x000a, 0x1756: 0x000a, 0x1757: 0x000a,\n\t0x1758: 0x000a, 0x1759: 0x000a, 0x175a: 0x000a, 0x175b: 0x000a, 0x175c: 0x000a, 0x175d: 0x000a,\n\t0x175e: 0x000a, 0x175f: 0x000a, 0x1760: 0x000a, 0x1761: 0x000a, 0x1762: 0x000a, 0x1763: 0x000a,\n\t0x1764: 0x000a, 0x1765: 0x000a, 0x1766: 0x000a,\n\t// Block 0x5e, offset 0x1780\n\t0x1780: 0x000a, 0x1781: 0x000a, 0x1782: 0x000a, 0x1783: 0x000a, 0x1784: 0x000a, 0x1785: 0x000a,\n\t0x1786: 0x000a, 0x1787: 0x000a, 0x1788: 0x000a, 0x1789: 0x000a, 0x178a: 0x000a,\n\t0x17a0: 0x000a, 0x17a1: 0x000a, 0x17a2: 0x000a, 0x17a3: 0x000a,\n\t0x17a4: 0x000a, 0x17a5: 0x000a, 0x17a6: 0x000a, 0x17a7: 0x000a, 0x17a8: 0x000a, 0x17a9: 0x000a,\n\t0x17aa: 0x000a, 0x17ab: 0x000a, 0x17ac: 0x000a, 0x17ad: 0x000a, 0x17ae: 0x000a, 0x17af: 0x000a,\n\t0x17b0: 0x000a, 0x17b1: 0x000a, 0x17b2: 0x000a, 0x17b3: 0x000a, 0x17b4: 0x000a, 0x17b5: 0x000a,\n\t0x17b6: 0x000a, 0x17b7: 0x000a, 0x17b8: 0x000a, 0x17b9: 0x000a, 0x17ba: 0x000a, 0x17bb: 0x000a,\n\t0x17bc: 0x000a, 0x17bd: 0x000a, 0x17be: 0x000a, 0x17bf: 0x000a,\n\t// Block 0x5f, offset 0x17c0\n\t0x17c0: 0x000a, 0x17c1: 0x000a, 0x17c2: 0x000a, 0x17c3: 0x000a, 0x17c4: 0x000a, 0x17c5: 0x000a,\n\t0x17c6: 0x000a, 0x17c7: 0x000a, 0x17c8: 0x0002, 0x17c9: 0x0002, 0x17ca: 0x0002, 0x17cb: 0x0002,\n\t0x17cc: 0x0002, 0x17cd: 0x0002, 0x17ce: 0x0002, 0x17cf: 0x0002, 0x17d0: 0x0002, 0x17d1: 0x0002,\n\t0x17d2: 0x0002, 0x17d3: 0x0002, 0x17d4: 0x0002, 0x17d5: 0x0002, 0x17d6: 0x0002, 0x17d7: 0x0002,\n\t0x17d8: 0x0002, 0x17d9: 0x0002, 0x17da: 0x0002, 0x17db: 0x0002,\n\t// Block 0x60, offset 0x1800\n\t0x182a: 0x000a, 0x182b: 0x000a, 0x182c: 0x000a, 0x182d: 0x000a, 0x182e: 0x000a, 0x182f: 0x000a,\n\t0x1830: 0x000a, 0x1831: 0x000a, 0x1832: 0x000a, 0x1833: 0x000a, 0x1834: 0x000a, 0x1835: 0x000a,\n\t0x1836: 0x000a, 0x1837: 0x000a, 0x1838: 0x000a, 0x1839: 0x000a, 0x183a: 0x000a, 0x183b: 0x000a,\n\t0x183c: 0x000a, 0x183d: 0x000a, 0x183e: 0x000a, 0x183f: 0x000a,\n\t// Block 0x61, offset 0x1840\n\t0x1840: 0x000a, 0x1841: 0x000a, 0x1842: 0x000a, 0x1843: 0x000a, 0x1844: 0x000a, 0x1845: 0x000a,\n\t0x1846: 0x000a, 0x1847: 0x000a, 0x1848: 0x000a, 0x1849: 0x000a, 0x184a: 0x000a, 0x184b: 0x000a,\n\t0x184c: 0x000a, 0x184d: 0x000a, 0x184e: 0x000a, 0x184f: 0x000a, 0x1850: 0x000a, 0x1851: 0x000a,\n\t0x1852: 0x000a, 0x1853: 0x000a, 0x1854: 0x000a, 0x1855: 0x000a, 0x1856: 0x000a, 0x1857: 0x000a,\n\t0x1858: 0x000a, 0x1859: 0x000a, 0x185a: 0x000a, 0x185b: 0x000a, 0x185c: 0x000a, 0x185d: 0x000a,\n\t0x185e: 0x000a, 0x185f: 0x000a, 0x1860: 0x000a, 0x1861: 0x000a, 0x1862: 0x000a, 0x1863: 0x000a,\n\t0x1864: 0x000a, 0x1865: 0x000a, 0x1866: 0x000a, 0x1867: 0x000a, 0x1868: 0x000a, 0x1869: 0x000a,\n\t0x186a: 0x000a, 0x186b: 0x000a, 0x186d: 0x000a, 0x186e: 0x000a, 0x186f: 0x000a,\n\t0x1870: 0x000a, 0x1871: 0x000a, 0x1872: 0x000a, 0x1873: 0x000a, 0x1874: 0x000a, 0x1875: 0x000a,\n\t0x1876: 0x000a, 0x1877: 0x000a, 0x1878: 0x000a, 0x1879: 0x000a, 0x187a: 0x000a, 0x187b: 0x000a,\n\t0x187c: 0x000a, 0x187d: 0x000a, 0x187e: 0x000a, 0x187f: 0x000a,\n\t// Block 0x62, offset 0x1880\n\t0x1880: 0x000a, 0x1881: 0x000a, 0x1882: 0x000a, 0x1883: 0x000a, 0x1884: 0x000a, 0x1885: 0x000a,\n\t0x1886: 0x000a, 0x1887: 0x000a, 0x1888: 0x000a, 0x1889: 0x000a, 0x188a: 0x000a, 0x188b: 0x000a,\n\t0x188c: 0x000a, 0x188d: 0x000a, 0x188e: 0x000a, 0x188f: 0x000a, 0x1890: 0x000a, 0x1891: 0x000a,\n\t0x1892: 0x000a, 0x1893: 0x000a, 0x1894: 0x000a, 0x1895: 0x000a, 0x1896: 0x000a, 0x1897: 0x000a,\n\t0x1898: 0x000a, 0x1899: 0x000a, 0x189a: 0x000a, 0x189b: 0x000a, 0x189c: 0x000a, 0x189d: 0x000a,\n\t0x189e: 0x000a, 0x189f: 0x000a, 0x18a0: 0x000a, 0x18a1: 0x000a, 0x18a2: 0x000a, 0x18a3: 0x000a,\n\t0x18a4: 0x000a, 0x18a5: 0x000a, 0x18a6: 0x000a, 0x18a7: 0x000a, 0x18a8: 0x003a, 0x18a9: 0x002a,\n\t0x18aa: 0x003a, 0x18ab: 0x002a, 0x18ac: 0x003a, 0x18ad: 0x002a, 0x18ae: 0x003a, 0x18af: 0x002a,\n\t0x18b0: 0x003a, 0x18b1: 0x002a, 0x18b2: 0x003a, 0x18b3: 0x002a, 0x18b4: 0x003a, 0x18b5: 0x002a,\n\t0x18b6: 0x000a, 0x18b7: 0x000a, 0x18b8: 0x000a, 0x18b9: 0x000a, 0x18ba: 0x000a, 0x18bb: 0x000a,\n\t0x18bc: 0x000a, 0x18bd: 0x000a, 0x18be: 0x000a, 0x18bf: 0x000a,\n\t// Block 0x63, offset 0x18c0\n\t0x18c0: 0x000a, 0x18c1: 0x000a, 0x18c2: 0x000a, 0x18c3: 0x000a, 0x18c4: 0x000a, 0x18c5: 0x009a,\n\t0x18c6: 0x008a, 0x18c7: 0x000a, 0x18c8: 0x000a, 0x18c9: 0x000a, 0x18ca: 0x000a, 0x18cb: 0x000a,\n\t0x18cc: 0x000a, 0x18cd: 0x000a, 0x18ce: 0x000a, 0x18cf: 0x000a, 0x18d0: 0x000a, 0x18d1: 0x000a,\n\t0x18d2: 0x000a, 0x18d3: 0x000a, 0x18d4: 0x000a, 0x18d5: 0x000a, 0x18d6: 0x000a, 0x18d7: 0x000a,\n\t0x18d8: 0x000a, 0x18d9: 0x000a, 0x18da: 0x000a, 0x18db: 0x000a, 0x18dc: 0x000a, 0x18dd: 0x000a,\n\t0x18de: 0x000a, 0x18df: 0x000a, 0x18e0: 0x000a, 0x18e1: 0x000a, 0x18e2: 0x000a, 0x18e3: 0x000a,\n\t0x18e4: 0x000a, 0x18e5: 0x000a, 0x18e6: 0x003a, 0x18e7: 0x002a, 0x18e8: 0x003a, 0x18e9: 0x002a,\n\t0x18ea: 0x003a, 0x18eb: 0x002a, 0x18ec: 0x003a, 0x18ed: 0x002a, 0x18ee: 0x003a, 0x18ef: 0x002a,\n\t0x18f0: 0x000a, 0x18f1: 0x000a, 0x18f2: 0x000a, 0x18f3: 0x000a, 0x18f4: 0x000a, 0x18f5: 0x000a,\n\t0x18f6: 0x000a, 0x18f7: 0x000a, 0x18f8: 0x000a, 0x18f9: 0x000a, 0x18fa: 0x000a, 0x18fb: 0x000a,\n\t0x18fc: 0x000a, 0x18fd: 0x000a, 0x18fe: 0x000a, 0x18ff: 0x000a,\n\t// Block 0x64, offset 0x1900\n\t0x1900: 0x000a, 0x1901: 0x000a, 0x1902: 0x000a, 0x1903: 0x007a, 0x1904: 0x006a, 0x1905: 0x009a,\n\t0x1906: 0x008a, 0x1907: 0x00ba, 0x1908: 0x00aa, 0x1909: 0x009a, 0x190a: 0x008a, 0x190b: 0x007a,\n\t0x190c: 0x006a, 0x190d: 0x00da, 0x190e: 0x002a, 0x190f: 0x003a, 0x1910: 0x00ca, 0x1911: 0x009a,\n\t0x1912: 0x008a, 0x1913: 0x007a, 0x1914: 0x006a, 0x1915: 0x009a, 0x1916: 0x008a, 0x1917: 0x00ba,\n\t0x1918: 0x00aa, 0x1919: 0x000a, 0x191a: 0x000a, 0x191b: 0x000a, 0x191c: 0x000a, 0x191d: 0x000a,\n\t0x191e: 0x000a, 0x191f: 0x000a, 0x1920: 0x000a, 0x1921: 0x000a, 0x1922: 0x000a, 0x1923: 0x000a,\n\t0x1924: 0x000a, 0x1925: 0x000a, 0x1926: 0x000a, 0x1927: 0x000a, 0x1928: 0x000a, 0x1929: 0x000a,\n\t0x192a: 0x000a, 0x192b: 0x000a, 0x192c: 0x000a, 0x192d: 0x000a, 0x192e: 0x000a, 0x192f: 0x000a,\n\t0x1930: 0x000a, 0x1931: 0x000a, 0x1932: 0x000a, 0x1933: 0x000a, 0x1934: 0x000a, 0x1935: 0x000a,\n\t0x1936: 0x000a, 0x1937: 0x000a, 0x1938: 0x000a, 0x1939: 0x000a, 0x193a: 0x000a, 0x193b: 0x000a,\n\t0x193c: 0x000a, 0x193d: 0x000a, 0x193e: 0x000a, 0x193f: 0x000a,\n\t// Block 0x65, offset 0x1940\n\t0x1940: 0x000a, 0x1941: 0x000a, 0x1942: 0x000a, 0x1943: 0x000a, 0x1944: 0x000a, 0x1945: 0x000a,\n\t0x1946: 0x000a, 0x1947: 0x000a, 0x1948: 0x000a, 0x1949: 0x000a, 0x194a: 0x000a, 0x194b: 0x000a,\n\t0x194c: 0x000a, 0x194d: 0x000a, 0x194e: 0x000a, 0x194f: 0x000a, 0x1950: 0x000a, 0x1951: 0x000a,\n\t0x1952: 0x000a, 0x1953: 0x000a, 0x1954: 0x000a, 0x1955: 0x000a, 0x1956: 0x000a, 0x1957: 0x000a,\n\t0x1958: 0x003a, 0x1959: 0x002a, 0x195a: 0x003a, 0x195b: 0x002a, 0x195c: 0x000a, 0x195d: 0x000a,\n\t0x195e: 0x000a, 0x195f: 0x000a, 0x1960: 0x000a, 0x1961: 0x000a, 0x1962: 0x000a, 0x1963: 0x000a,\n\t0x1964: 0x000a, 0x1965: 0x000a, 0x1966: 0x000a, 0x1967: 0x000a, 0x1968: 0x000a, 0x1969: 0x000a,\n\t0x196a: 0x000a, 0x196b: 0x000a, 0x196c: 0x000a, 0x196d: 0x000a, 0x196e: 0x000a, 0x196f: 0x000a,\n\t0x1970: 0x000a, 0x1971: 0x000a, 0x1972: 0x000a, 0x1973: 0x000a, 0x1974: 0x000a, 0x1975: 0x000a,\n\t0x1976: 0x000a, 0x1977: 0x000a, 0x1978: 0x000a, 0x1979: 0x000a, 0x197a: 0x000a, 0x197b: 0x000a,\n\t0x197c: 0x003a, 0x197d: 0x002a, 0x197e: 0x000a, 0x197f: 0x000a,\n\t// Block 0x66, offset 0x1980\n\t0x1980: 0x000a, 0x1981: 0x000a, 0x1982: 0x000a, 0x1983: 0x000a, 0x1984: 0x000a, 0x1985: 0x000a,\n\t0x1986: 0x000a, 0x1987: 0x000a, 0x1988: 0x000a, 0x1989: 0x000a, 0x198a: 0x000a, 0x198b: 0x000a,\n\t0x198c: 0x000a, 0x198d: 0x000a, 0x198e: 0x000a, 0x198f: 0x000a, 0x1990: 0x000a, 0x1991: 0x000a,\n\t0x1992: 0x000a, 0x1993: 0x000a, 0x1994: 0x000a, 0x1995: 0x000a, 0x1996: 0x000a, 0x1997: 0x000a,\n\t0x1998: 0x000a, 0x1999: 0x000a, 0x199a: 0x000a, 0x199b: 0x000a, 0x199c: 0x000a, 0x199d: 0x000a,\n\t0x199e: 0x000a, 0x199f: 0x000a, 0x19a0: 0x000a, 0x19a1: 0x000a, 0x19a2: 0x000a, 0x19a3: 0x000a,\n\t0x19a4: 0x000a, 0x19a5: 0x000a, 0x19a6: 0x000a, 0x19a7: 0x000a, 0x19a8: 0x000a, 0x19a9: 0x000a,\n\t0x19aa: 0x000a, 0x19ab: 0x000a, 0x19ac: 0x000a, 0x19ad: 0x000a, 0x19ae: 0x000a, 0x19af: 0x000a,\n\t0x19b0: 0x000a, 0x19b1: 0x000a, 0x19b2: 0x000a, 0x19b3: 0x000a,\n\t0x19b6: 0x000a, 0x19b7: 0x000a, 0x19b8: 0x000a, 0x19b9: 0x000a, 0x19ba: 0x000a, 0x19bb: 0x000a,\n\t0x19bc: 0x000a, 0x19bd: 0x000a, 0x19be: 0x000a, 0x19bf: 0x000a,\n\t// Block 0x67, offset 0x19c0\n\t0x19c0: 0x000a, 0x19c1: 0x000a, 0x19c2: 0x000a, 0x19c3: 0x000a, 0x19c4: 0x000a, 0x19c5: 0x000a,\n\t0x19c6: 0x000a, 0x19c7: 0x000a, 0x19c8: 0x000a, 0x19c9: 0x000a, 0x19ca: 0x000a, 0x19cb: 0x000a,\n\t0x19cc: 0x000a, 0x19cd: 0x000a, 0x19ce: 0x000a, 0x19cf: 0x000a, 0x19d0: 0x000a, 0x19d1: 0x000a,\n\t0x19d2: 0x000a, 0x19d3: 0x000a, 0x19d4: 0x000a, 0x19d5: 0x000a, 0x19d7: 0x000a,\n\t0x19d8: 0x000a, 0x19d9: 0x000a, 0x19da: 0x000a, 0x19db: 0x000a, 0x19dc: 0x000a, 0x19dd: 0x000a,\n\t0x19de: 0x000a, 0x19df: 0x000a, 0x19e0: 0x000a, 0x19e1: 0x000a, 0x19e2: 0x000a, 0x19e3: 0x000a,\n\t0x19e4: 0x000a, 0x19e5: 0x000a, 0x19e6: 0x000a, 0x19e7: 0x000a, 0x19e8: 0x000a, 0x19e9: 0x000a,\n\t0x19ea: 0x000a, 0x19eb: 0x000a, 0x19ec: 0x000a, 0x19ed: 0x000a, 0x19ee: 0x000a, 0x19ef: 0x000a,\n\t0x19f0: 0x000a, 0x19f1: 0x000a, 0x19f2: 0x000a, 0x19f3: 0x000a, 0x19f4: 0x000a, 0x19f5: 0x000a,\n\t0x19f6: 0x000a, 0x19f7: 0x000a, 0x19f8: 0x000a, 0x19f9: 0x000a, 0x19fa: 0x000a, 0x19fb: 0x000a,\n\t0x19fc: 0x000a, 0x19fd: 0x000a, 0x19fe: 0x000a, 0x19ff: 0x000a,\n\t// Block 0x68, offset 0x1a00\n\t0x1a25: 0x000a, 0x1a26: 0x000a, 0x1a27: 0x000a, 0x1a28: 0x000a, 0x1a29: 0x000a,\n\t0x1a2a: 0x000a, 0x1a2f: 0x000c,\n\t0x1a30: 0x000c, 0x1a31: 0x000c,\n\t0x1a39: 0x000a, 0x1a3a: 0x000a, 0x1a3b: 0x000a,\n\t0x1a3c: 0x000a, 0x1a3d: 0x000a, 0x1a3e: 0x000a, 0x1a3f: 0x000a,\n\t// Block 0x69, offset 0x1a40\n\t0x1a7f: 0x000c,\n\t// Block 0x6a, offset 0x1a80\n\t0x1aa0: 0x000c, 0x1aa1: 0x000c, 0x1aa2: 0x000c, 0x1aa3: 0x000c,\n\t0x1aa4: 0x000c, 0x1aa5: 0x000c, 0x1aa6: 0x000c, 0x1aa7: 0x000c, 0x1aa8: 0x000c, 0x1aa9: 0x000c,\n\t0x1aaa: 0x000c, 0x1aab: 0x000c, 0x1aac: 0x000c, 0x1aad: 0x000c, 0x1aae: 0x000c, 0x1aaf: 0x000c,\n\t0x1ab0: 0x000c, 0x1ab1: 0x000c, 0x1ab2: 0x000c, 0x1ab3: 0x000c, 0x1ab4: 0x000c, 0x1ab5: 0x000c,\n\t0x1ab6: 0x000c, 0x1ab7: 0x000c, 0x1ab8: 0x000c, 0x1ab9: 0x000c, 0x1aba: 0x000c, 0x1abb: 0x000c,\n\t0x1abc: 0x000c, 0x1abd: 0x000c, 0x1abe: 0x000c, 0x1abf: 0x000c,\n\t// Block 0x6b, offset 0x1ac0\n\t0x1ac0: 0x000a, 0x1ac1: 0x000a, 0x1ac2: 0x000a, 0x1ac3: 0x000a, 0x1ac4: 0x000a, 0x1ac5: 0x000a,\n\t0x1ac6: 0x000a, 0x1ac7: 0x000a, 0x1ac8: 0x000a, 0x1ac9: 0x000a, 0x1aca: 0x000a, 0x1acb: 0x000a,\n\t0x1acc: 0x000a, 0x1acd: 0x000a, 0x1ace: 0x000a, 0x1acf: 0x000a, 0x1ad0: 0x000a, 0x1ad1: 0x000a,\n\t0x1ad2: 0x000a, 0x1ad3: 0x000a, 0x1ad4: 0x000a, 0x1ad5: 0x000a, 0x1ad6: 0x000a, 0x1ad7: 0x000a,\n\t0x1ad8: 0x000a, 0x1ad9: 0x000a, 0x1ada: 0x000a, 0x1adb: 0x000a, 0x1adc: 0x000a, 0x1add: 0x000a,\n\t0x1ade: 0x000a, 0x1adf: 0x000a, 0x1ae0: 0x000a, 0x1ae1: 0x000a, 0x1ae2: 0x003a, 0x1ae3: 0x002a,\n\t0x1ae4: 0x003a, 0x1ae5: 0x002a, 0x1ae6: 0x003a, 0x1ae7: 0x002a, 0x1ae8: 0x003a, 0x1ae9: 0x002a,\n\t0x1aea: 0x000a, 0x1aeb: 0x000a, 0x1aec: 0x000a, 0x1aed: 0x000a, 0x1aee: 0x000a, 0x1aef: 0x000a,\n\t0x1af0: 0x000a, 0x1af1: 0x000a, 0x1af2: 0x000a, 0x1af3: 0x000a, 0x1af4: 0x000a, 0x1af5: 0x000a,\n\t0x1af6: 0x000a, 0x1af7: 0x000a, 0x1af8: 0x000a, 0x1af9: 0x000a, 0x1afa: 0x000a, 0x1afb: 0x000a,\n\t0x1afc: 0x000a, 0x1afd: 0x000a, 0x1afe: 0x000a, 0x1aff: 0x000a,\n\t// Block 0x6c, offset 0x1b00\n\t0x1b00: 0x000a, 0x1b01: 0x000a, 0x1b02: 0x000a, 0x1b03: 0x000a, 0x1b04: 0x000a, 0x1b05: 0x000a,\n\t0x1b06: 0x000a, 0x1b07: 0x000a, 0x1b08: 0x000a, 0x1b09: 0x000a, 0x1b0a: 0x000a, 0x1b0b: 0x000a,\n\t0x1b0c: 0x000a, 0x1b0d: 0x000a, 0x1b0e: 0x000a, 0x1b0f: 0x000a, 0x1b10: 0x000a, 0x1b11: 0x000a,\n\t0x1b12: 0x000a,\n\t// Block 0x6d, offset 0x1b40\n\t0x1b40: 0x000a, 0x1b41: 0x000a, 0x1b42: 0x000a, 0x1b43: 0x000a, 0x1b44: 0x000a, 0x1b45: 0x000a,\n\t0x1b46: 0x000a, 0x1b47: 0x000a, 0x1b48: 0x000a, 0x1b49: 0x000a, 0x1b4a: 0x000a, 0x1b4b: 0x000a,\n\t0x1b4c: 0x000a, 0x1b4d: 0x000a, 0x1b4e: 0x000a, 0x1b4f: 0x000a, 0x1b50: 0x000a, 0x1b51: 0x000a,\n\t0x1b52: 0x000a, 0x1b53: 0x000a, 0x1b54: 0x000a, 0x1b55: 0x000a, 0x1b56: 0x000a, 0x1b57: 0x000a,\n\t0x1b58: 0x000a, 0x1b59: 0x000a, 0x1b5b: 0x000a, 0x1b5c: 0x000a, 0x1b5d: 0x000a,\n\t0x1b5e: 0x000a, 0x1b5f: 0x000a, 0x1b60: 0x000a, 0x1b61: 0x000a, 0x1b62: 0x000a, 0x1b63: 0x000a,\n\t0x1b64: 0x000a, 0x1b65: 0x000a, 0x1b66: 0x000a, 0x1b67: 0x000a, 0x1b68: 0x000a, 0x1b69: 0x000a,\n\t0x1b6a: 0x000a, 0x1b6b: 0x000a, 0x1b6c: 0x000a, 0x1b6d: 0x000a, 0x1b6e: 0x000a, 0x1b6f: 0x000a,\n\t0x1b70: 0x000a, 0x1b71: 0x000a, 0x1b72: 0x000a, 0x1b73: 0x000a, 0x1b74: 0x000a, 0x1b75: 0x000a,\n\t0x1b76: 0x000a, 0x1b77: 0x000a, 0x1b78: 0x000a, 0x1b79: 0x000a, 0x1b7a: 0x000a, 0x1b7b: 0x000a,\n\t0x1b7c: 0x000a, 0x1b7d: 0x000a, 0x1b7e: 0x000a, 0x1b7f: 0x000a,\n\t// Block 0x6e, offset 0x1b80\n\t0x1b80: 0x000a, 0x1b81: 0x000a, 0x1b82: 0x000a, 0x1b83: 0x000a, 0x1b84: 0x000a, 0x1b85: 0x000a,\n\t0x1b86: 0x000a, 0x1b87: 0x000a, 0x1b88: 0x000a, 0x1b89: 0x000a, 0x1b8a: 0x000a, 0x1b8b: 0x000a,\n\t0x1b8c: 0x000a, 0x1b8d: 0x000a, 0x1b8e: 0x000a, 0x1b8f: 0x000a, 0x1b90: 0x000a, 0x1b91: 0x000a,\n\t0x1b92: 0x000a, 0x1b93: 0x000a, 0x1b94: 0x000a, 0x1b95: 0x000a, 0x1b96: 0x000a, 0x1b97: 0x000a,\n\t0x1b98: 0x000a, 0x1b99: 0x000a, 0x1b9a: 0x000a, 0x1b9b: 0x000a, 0x1b9c: 0x000a, 0x1b9d: 0x000a,\n\t0x1b9e: 0x000a, 0x1b9f: 0x000a, 0x1ba0: 0x000a, 0x1ba1: 0x000a, 0x1ba2: 0x000a, 0x1ba3: 0x000a,\n\t0x1ba4: 0x000a, 0x1ba5: 0x000a, 0x1ba6: 0x000a, 0x1ba7: 0x000a, 0x1ba8: 0x000a, 0x1ba9: 0x000a,\n\t0x1baa: 0x000a, 0x1bab: 0x000a, 0x1bac: 0x000a, 0x1bad: 0x000a, 0x1bae: 0x000a, 0x1baf: 0x000a,\n\t0x1bb0: 0x000a, 0x1bb1: 0x000a, 0x1bb2: 0x000a, 0x1bb3: 0x000a,\n\t// Block 0x6f, offset 0x1bc0\n\t0x1bc0: 0x000a, 0x1bc1: 0x000a, 0x1bc2: 0x000a, 0x1bc3: 0x000a, 0x1bc4: 0x000a, 0x1bc5: 0x000a,\n\t0x1bc6: 0x000a, 0x1bc7: 0x000a, 0x1bc8: 0x000a, 0x1bc9: 0x000a, 0x1bca: 0x000a, 0x1bcb: 0x000a,\n\t0x1bcc: 0x000a, 0x1bcd: 0x000a, 0x1bce: 0x000a, 0x1bcf: 0x000a, 0x1bd0: 0x000a, 0x1bd1: 0x000a,\n\t0x1bd2: 0x000a, 0x1bd3: 0x000a, 0x1bd4: 0x000a, 0x1bd5: 0x000a,\n\t0x1bf0: 0x000a, 0x1bf1: 0x000a, 0x1bf2: 0x000a, 0x1bf3: 0x000a, 0x1bf4: 0x000a, 0x1bf5: 0x000a,\n\t0x1bf6: 0x000a, 0x1bf7: 0x000a, 0x1bf8: 0x000a, 0x1bf9: 0x000a, 0x1bfa: 0x000a, 0x1bfb: 0x000a,\n\t// Block 0x70, offset 0x1c00\n\t0x1c00: 0x0009, 0x1c01: 0x000a, 0x1c02: 0x000a, 0x1c03: 0x000a, 0x1c04: 0x000a,\n\t0x1c08: 0x003a, 0x1c09: 0x002a, 0x1c0a: 0x003a, 0x1c0b: 0x002a,\n\t0x1c0c: 0x003a, 0x1c0d: 0x002a, 0x1c0e: 0x003a, 0x1c0f: 0x002a, 0x1c10: 0x003a, 0x1c11: 0x002a,\n\t0x1c12: 0x000a, 0x1c13: 0x000a, 0x1c14: 0x003a, 0x1c15: 0x002a, 0x1c16: 0x003a, 0x1c17: 0x002a,\n\t0x1c18: 0x003a, 0x1c19: 0x002a, 0x1c1a: 0x003a, 0x1c1b: 0x002a, 0x1c1c: 0x000a, 0x1c1d: 0x000a,\n\t0x1c1e: 0x000a, 0x1c1f: 0x000a, 0x1c20: 0x000a,\n\t0x1c2a: 0x000c, 0x1c2b: 0x000c, 0x1c2c: 0x000c, 0x1c2d: 0x000c,\n\t0x1c30: 0x000a,\n\t0x1c36: 0x000a, 0x1c37: 0x000a,\n\t0x1c3d: 0x000a, 0x1c3e: 0x000a, 0x1c3f: 0x000a,\n\t// Block 0x71, offset 0x1c40\n\t0x1c59: 0x000c, 0x1c5a: 0x000c, 0x1c5b: 0x000a, 0x1c5c: 0x000a,\n\t0x1c60: 0x000a,\n\t// Block 0x72, offset 0x1c80\n\t0x1cbb: 0x000a,\n\t// Block 0x73, offset 0x1cc0\n\t0x1cc0: 0x000a, 0x1cc1: 0x000a, 0x1cc2: 0x000a, 0x1cc3: 0x000a, 0x1cc4: 0x000a, 0x1cc5: 0x000a,\n\t0x1cc6: 0x000a, 0x1cc7: 0x000a, 0x1cc8: 0x000a, 0x1cc9: 0x000a, 0x1cca: 0x000a, 0x1ccb: 0x000a,\n\t0x1ccc: 0x000a, 0x1ccd: 0x000a, 0x1cce: 0x000a, 0x1ccf: 0x000a, 0x1cd0: 0x000a, 0x1cd1: 0x000a,\n\t0x1cd2: 0x000a, 0x1cd3: 0x000a, 0x1cd4: 0x000a, 0x1cd5: 0x000a, 0x1cd6: 0x000a, 0x1cd7: 0x000a,\n\t0x1cd8: 0x000a, 0x1cd9: 0x000a, 0x1cda: 0x000a, 0x1cdb: 0x000a, 0x1cdc: 0x000a, 0x1cdd: 0x000a,\n\t0x1cde: 0x000a, 0x1cdf: 0x000a, 0x1ce0: 0x000a, 0x1ce1: 0x000a, 0x1ce2: 0x000a, 0x1ce3: 0x000a,\n\t// Block 0x74, offset 0x1d00\n\t0x1d1d: 0x000a,\n\t0x1d1e: 0x000a,\n\t// Block 0x75, offset 0x1d40\n\t0x1d50: 0x000a, 0x1d51: 0x000a,\n\t0x1d52: 0x000a, 0x1d53: 0x000a, 0x1d54: 0x000a, 0x1d55: 0x000a, 0x1d56: 0x000a, 0x1d57: 0x000a,\n\t0x1d58: 0x000a, 0x1d59: 0x000a, 0x1d5a: 0x000a, 0x1d5b: 0x000a, 0x1d5c: 0x000a, 0x1d5d: 0x000a,\n\t0x1d5e: 0x000a, 0x1d5f: 0x000a,\n\t0x1d7c: 0x000a, 0x1d7d: 0x000a, 0x1d7e: 0x000a,\n\t// Block 0x76, offset 0x1d80\n\t0x1db1: 0x000a, 0x1db2: 0x000a, 0x1db3: 0x000a, 0x1db4: 0x000a, 0x1db5: 0x000a,\n\t0x1db6: 0x000a, 0x1db7: 0x000a, 0x1db8: 0x000a, 0x1db9: 0x000a, 0x1dba: 0x000a, 0x1dbb: 0x000a,\n\t0x1dbc: 0x000a, 0x1dbd: 0x000a, 0x1dbe: 0x000a, 0x1dbf: 0x000a,\n\t// Block 0x77, offset 0x1dc0\n\t0x1dcc: 0x000a, 0x1dcd: 0x000a, 0x1dce: 0x000a, 0x1dcf: 0x000a,\n\t// Block 0x78, offset 0x1e00\n\t0x1e37: 0x000a, 0x1e38: 0x000a, 0x1e39: 0x000a, 0x1e3a: 0x000a,\n\t// Block 0x79, offset 0x1e40\n\t0x1e5e: 0x000a, 0x1e5f: 0x000a,\n\t0x1e7f: 0x000a,\n\t// Block 0x7a, offset 0x1e80\n\t0x1e90: 0x000a, 0x1e91: 0x000a,\n\t0x1e92: 0x000a, 0x1e93: 0x000a, 0x1e94: 0x000a, 0x1e95: 0x000a, 0x1e96: 0x000a, 0x1e97: 0x000a,\n\t0x1e98: 0x000a, 0x1e99: 0x000a, 0x1e9a: 0x000a, 0x1e9b: 0x000a, 0x1e9c: 0x000a, 0x1e9d: 0x000a,\n\t0x1e9e: 0x000a, 0x1e9f: 0x000a, 0x1ea0: 0x000a, 0x1ea1: 0x000a, 0x1ea2: 0x000a, 0x1ea3: 0x000a,\n\t0x1ea4: 0x000a, 0x1ea5: 0x000a, 0x1ea6: 0x000a, 0x1ea7: 0x000a, 0x1ea8: 0x000a, 0x1ea9: 0x000a,\n\t0x1eaa: 0x000a, 0x1eab: 0x000a, 0x1eac: 0x000a, 0x1ead: 0x000a, 0x1eae: 0x000a, 0x1eaf: 0x000a,\n\t0x1eb0: 0x000a, 0x1eb1: 0x000a, 0x1eb2: 0x000a, 0x1eb3: 0x000a, 0x1eb4: 0x000a, 0x1eb5: 0x000a,\n\t0x1eb6: 0x000a, 0x1eb7: 0x000a, 0x1eb8: 0x000a, 0x1eb9: 0x000a, 0x1eba: 0x000a, 0x1ebb: 0x000a,\n\t0x1ebc: 0x000a, 0x1ebd: 0x000a, 0x1ebe: 0x000a, 0x1ebf: 0x000a,\n\t// Block 0x7b, offset 0x1ec0\n\t0x1ec0: 0x000a, 0x1ec1: 0x000a, 0x1ec2: 0x000a, 0x1ec3: 0x000a, 0x1ec4: 0x000a, 0x1ec5: 0x000a,\n\t0x1ec6: 0x000a,\n\t// Block 0x7c, offset 0x1f00\n\t0x1f0d: 0x000a, 0x1f0e: 0x000a, 0x1f0f: 0x000a,\n\t// Block 0x7d, offset 0x1f40\n\t0x1f6f: 0x000c,\n\t0x1f70: 0x000c, 0x1f71: 0x000c, 0x1f72: 0x000c, 0x1f73: 0x000a, 0x1f74: 0x000c, 0x1f75: 0x000c,\n\t0x1f76: 0x000c, 0x1f77: 0x000c, 0x1f78: 0x000c, 0x1f79: 0x000c, 0x1f7a: 0x000c, 0x1f7b: 0x000c,\n\t0x1f7c: 0x000c, 0x1f7d: 0x000c, 0x1f7e: 0x000a, 0x1f7f: 0x000a,\n\t// Block 0x7e, offset 0x1f80\n\t0x1f9e: 0x000c, 0x1f9f: 0x000c,\n\t// Block 0x7f, offset 0x1fc0\n\t0x1ff0: 0x000c, 0x1ff1: 0x000c,\n\t// Block 0x80, offset 0x2000\n\t0x2000: 0x000a, 0x2001: 0x000a, 0x2002: 0x000a, 0x2003: 0x000a, 0x2004: 0x000a, 0x2005: 0x000a,\n\t0x2006: 0x000a, 0x2007: 0x000a, 0x2008: 0x000a, 0x2009: 0x000a, 0x200a: 0x000a, 0x200b: 0x000a,\n\t0x200c: 0x000a, 0x200d: 0x000a, 0x200e: 0x000a, 0x200f: 0x000a, 0x2010: 0x000a, 0x2011: 0x000a,\n\t0x2012: 0x000a, 0x2013: 0x000a, 0x2014: 0x000a, 0x2015: 0x000a, 0x2016: 0x000a, 0x2017: 0x000a,\n\t0x2018: 0x000a, 0x2019: 0x000a, 0x201a: 0x000a, 0x201b: 0x000a, 0x201c: 0x000a, 0x201d: 0x000a,\n\t0x201e: 0x000a, 0x201f: 0x000a, 0x2020: 0x000a, 0x2021: 0x000a,\n\t// Block 0x81, offset 0x2040\n\t0x2048: 0x000a,\n\t// Block 0x82, offset 0x2080\n\t0x2082: 0x000c,\n\t0x2086: 0x000c, 0x208b: 0x000c,\n\t0x20a5: 0x000c, 0x20a6: 0x000c, 0x20a8: 0x000a, 0x20a9: 0x000a,\n\t0x20aa: 0x000a, 0x20ab: 0x000a, 0x20ac: 0x000c,\n\t0x20b8: 0x0004, 0x20b9: 0x0004,\n\t// Block 0x83, offset 0x20c0\n\t0x20f4: 0x000a, 0x20f5: 0x000a,\n\t0x20f6: 0x000a, 0x20f7: 0x000a,\n\t// Block 0x84, offset 0x2100\n\t0x2104: 0x000c, 0x2105: 0x000c,\n\t0x2120: 0x000c, 0x2121: 0x000c, 0x2122: 0x000c, 0x2123: 0x000c,\n\t0x2124: 0x000c, 0x2125: 0x000c, 0x2126: 0x000c, 0x2127: 0x000c, 0x2128: 0x000c, 0x2129: 0x000c,\n\t0x212a: 0x000c, 0x212b: 0x000c, 0x212c: 0x000c, 0x212d: 0x000c, 0x212e: 0x000c, 0x212f: 0x000c,\n\t0x2130: 0x000c, 0x2131: 0x000c,\n\t0x213f: 0x000c,\n\t// Block 0x85, offset 0x2140\n\t0x2166: 0x000c, 0x2167: 0x000c, 0x2168: 0x000c, 0x2169: 0x000c,\n\t0x216a: 0x000c, 0x216b: 0x000c, 0x216c: 0x000c, 0x216d: 0x000c,\n\t// Block 0x86, offset 0x2180\n\t0x2187: 0x000c, 0x2188: 0x000c, 0x2189: 0x000c, 0x218a: 0x000c, 0x218b: 0x000c,\n\t0x218c: 0x000c, 0x218d: 0x000c, 0x218e: 0x000c, 0x218f: 0x000c, 0x2190: 0x000c, 0x2191: 0x000c,\n\t// Block 0x87, offset 0x21c0\n\t0x21c0: 0x000c, 0x21c1: 0x000c, 0x21c2: 0x000c,\n\t0x21f3: 0x000c,\n\t0x21f6: 0x000c, 0x21f7: 0x000c, 0x21f8: 0x000c, 0x21f9: 0x000c,\n\t0x21fc: 0x000c, 0x21fd: 0x000c,\n\t// Block 0x88, offset 0x2200\n\t0x2225: 0x000c,\n\t// Block 0x89, offset 0x2240\n\t0x2269: 0x000c,\n\t0x226a: 0x000c, 0x226b: 0x000c, 0x226c: 0x000c, 0x226d: 0x000c, 0x226e: 0x000c,\n\t0x2271: 0x000c, 0x2272: 0x000c, 0x2275: 0x000c,\n\t0x2276: 0x000c,\n\t// Block 0x8a, offset 0x2280\n\t0x2283: 0x000c,\n\t0x228c: 0x000c,\n\t0x22bc: 0x000c,\n\t// Block 0x8b, offset 0x22c0\n\t0x22f0: 0x000c, 0x22f2: 0x000c, 0x22f3: 0x000c, 0x22f4: 0x000c,\n\t0x22f7: 0x000c, 0x22f8: 0x000c,\n\t0x22fe: 0x000c, 0x22ff: 0x000c,\n\t// Block 0x8c, offset 0x2300\n\t0x2301: 0x000c,\n\t0x232c: 0x000c, 0x232d: 0x000c,\n\t0x2336: 0x000c,\n\t// Block 0x8d, offset 0x2340\n\t0x236a: 0x000a, 0x236b: 0x000a,\n\t// Block 0x8e, offset 0x2380\n\t0x23a5: 0x000c, 0x23a8: 0x000c,\n\t0x23ad: 0x000c,\n\t// Block 0x8f, offset 0x23c0\n\t0x23dd: 0x0001,\n\t0x23de: 0x000c, 0x23df: 0x0001, 0x23e0: 0x0001, 0x23e1: 0x0001, 0x23e2: 0x0001, 0x23e3: 0x0001,\n\t0x23e4: 0x0001, 0x23e5: 0x0001, 0x23e6: 0x0001, 0x23e7: 0x0001, 0x23e8: 0x0001, 0x23e9: 0x0003,\n\t0x23ea: 0x0001, 0x23eb: 0x0001, 0x23ec: 0x0001, 0x23ed: 0x0001, 0x23ee: 0x0001, 0x23ef: 0x0001,\n\t0x23f0: 0x0001, 0x23f1: 0x0001, 0x23f2: 0x0001, 0x23f3: 0x0001, 0x23f4: 0x0001, 0x23f5: 0x0001,\n\t0x23f6: 0x0001, 0x23f7: 0x0001, 0x23f8: 0x0001, 0x23f9: 0x0001, 0x23fa: 0x0001, 0x23fb: 0x0001,\n\t0x23fc: 0x0001, 0x23fd: 0x0001, 0x23fe: 0x0001, 0x23ff: 0x0001,\n\t// Block 0x90, offset 0x2400\n\t0x2400: 0x0001, 0x2401: 0x0001, 0x2402: 0x0001, 0x2403: 0x0001, 0x2404: 0x0001, 0x2405: 0x0001,\n\t0x2406: 0x0001, 0x2407: 0x0001, 0x2408: 0x0001, 0x2409: 0x0001, 0x240a: 0x0001, 0x240b: 0x0001,\n\t0x240c: 0x0001, 0x240d: 0x0001, 0x240e: 0x0001, 0x240f: 0x0001, 0x2410: 0x000d, 0x2411: 0x000d,\n\t0x2412: 0x000d, 0x2413: 0x000d, 0x2414: 0x000d, 0x2415: 0x000d, 0x2416: 0x000d, 0x2417: 0x000d,\n\t0x2418: 0x000d, 0x2419: 0x000d, 0x241a: 0x000d, 0x241b: 0x000d, 0x241c: 0x000d, 0x241d: 0x000d,\n\t0x241e: 0x000d, 0x241f: 0x000d, 0x2420: 0x000d, 0x2421: 0x000d, 0x2422: 0x000d, 0x2423: 0x000d,\n\t0x2424: 0x000d, 0x2425: 0x000d, 0x2426: 0x000d, 0x2427: 0x000d, 0x2428: 0x000d, 0x2429: 0x000d,\n\t0x242a: 0x000d, 0x242b: 0x000d, 0x242c: 0x000d, 0x242d: 0x000d, 0x242e: 0x000d, 0x242f: 0x000d,\n\t0x2430: 0x000d, 0x2431: 0x000d, 0x2432: 0x000d, 0x2433: 0x000d, 0x2434: 0x000d, 0x2435: 0x000d,\n\t0x2436: 0x000d, 0x2437: 0x000d, 0x2438: 0x000d, 0x2439: 0x000d, 0x243a: 0x000d, 0x243b: 0x000d,\n\t0x243c: 0x000d, 0x243d: 0x000d, 0x243e: 0x000d, 0x243f: 0x000d,\n\t// Block 0x91, offset 0x2440\n\t0x2440: 0x000d, 0x2441: 0x000d, 0x2442: 0x000d, 0x2443: 0x000d, 0x2444: 0x000d, 0x2445: 0x000d,\n\t0x2446: 0x000d, 0x2447: 0x000d, 0x2448: 0x000d, 0x2449: 0x000d, 0x244a: 0x000d, 0x244b: 0x000d,\n\t0x244c: 0x000d, 0x244d: 0x000d, 0x244e: 0x000d, 0x244f: 0x000d, 0x2450: 0x000d, 0x2451: 0x000d,\n\t0x2452: 0x000d, 0x2453: 0x000d, 0x2454: 0x000d, 0x2455: 0x000d, 0x2456: 0x000d, 0x2457: 0x000d,\n\t0x2458: 0x000d, 0x2459: 0x000d, 0x245a: 0x000d, 0x245b: 0x000d, 0x245c: 0x000d, 0x245d: 0x000d,\n\t0x245e: 0x000d, 0x245f: 0x000d, 0x2460: 0x000d, 0x2461: 0x000d, 0x2462: 0x000d, 0x2463: 0x000d,\n\t0x2464: 0x000d, 0x2465: 0x000d, 0x2466: 0x000d, 0x2467: 0x000d, 0x2468: 0x000d, 0x2469: 0x000d,\n\t0x246a: 0x000d, 0x246b: 0x000d, 0x246c: 0x000d, 0x246d: 0x000d, 0x246e: 0x000d, 0x246f: 0x000d,\n\t0x2470: 0x000d, 0x2471: 0x000d, 0x2472: 0x000d, 0x2473: 0x000d, 0x2474: 0x000d, 0x2475: 0x000d,\n\t0x2476: 0x000d, 0x2477: 0x000d, 0x2478: 0x000d, 0x2479: 0x000d, 0x247a: 0x000d, 0x247b: 0x000d,\n\t0x247c: 0x000d, 0x247d: 0x000d, 0x247e: 0x000a, 0x247f: 0x000a,\n\t// Block 0x92, offset 0x2480\n\t0x2480: 0x000d, 0x2481: 0x000d, 0x2482: 0x000d, 0x2483: 0x000d, 0x2484: 0x000d, 0x2485: 0x000d,\n\t0x2486: 0x000d, 0x2487: 0x000d, 0x2488: 0x000d, 0x2489: 0x000d, 0x248a: 0x000d, 0x248b: 0x000d,\n\t0x248c: 0x000d, 0x248d: 0x000d, 0x248e: 0x000d, 0x248f: 0x000d, 0x2490: 0x000b, 0x2491: 0x000b,\n\t0x2492: 0x000b, 0x2493: 0x000b, 0x2494: 0x000b, 0x2495: 0x000b, 0x2496: 0x000b, 0x2497: 0x000b,\n\t0x2498: 0x000b, 0x2499: 0x000b, 0x249a: 0x000b, 0x249b: 0x000b, 0x249c: 0x000b, 0x249d: 0x000b,\n\t0x249e: 0x000b, 0x249f: 0x000b, 0x24a0: 0x000b, 0x24a1: 0x000b, 0x24a2: 0x000b, 0x24a3: 0x000b,\n\t0x24a4: 0x000b, 0x24a5: 0x000b, 0x24a6: 0x000b, 0x24a7: 0x000b, 0x24a8: 0x000b, 0x24a9: 0x000b,\n\t0x24aa: 0x000b, 0x24ab: 0x000b, 0x24ac: 0x000b, 0x24ad: 0x000b, 0x24ae: 0x000b, 0x24af: 0x000b,\n\t0x24b0: 0x000d, 0x24b1: 0x000d, 0x24b2: 0x000d, 0x24b3: 0x000d, 0x24b4: 0x000d, 0x24b5: 0x000d,\n\t0x24b6: 0x000d, 0x24b7: 0x000d, 0x24b8: 0x000d, 0x24b9: 0x000d, 0x24ba: 0x000d, 0x24bb: 0x000d,\n\t0x24bc: 0x000d, 0x24bd: 0x000a, 0x24be: 0x000d, 0x24bf: 0x000d,\n\t// Block 0x93, offset 0x24c0\n\t0x24c0: 0x000c, 0x24c1: 0x000c, 0x24c2: 0x000c, 0x24c3: 0x000c, 0x24c4: 0x000c, 0x24c5: 0x000c,\n\t0x24c6: 0x000c, 0x24c7: 0x000c, 0x24c8: 0x000c, 0x24c9: 0x000c, 0x24ca: 0x000c, 0x24cb: 0x000c,\n\t0x24cc: 0x000c, 0x24cd: 0x000c, 0x24ce: 0x000c, 0x24cf: 0x000c, 0x24d0: 0x000a, 0x24d1: 0x000a,\n\t0x24d2: 0x000a, 0x24d3: 0x000a, 0x24d4: 0x000a, 0x24d5: 0x000a, 0x24d6: 0x000a, 0x24d7: 0x000a,\n\t0x24d8: 0x000a, 0x24d9: 0x000a,\n\t0x24e0: 0x000c, 0x24e1: 0x000c, 0x24e2: 0x000c, 0x24e3: 0x000c,\n\t0x24e4: 0x000c, 0x24e5: 0x000c, 0x24e6: 0x000c, 0x24e7: 0x000c, 0x24e8: 0x000c, 0x24e9: 0x000c,\n\t0x24ea: 0x000c, 0x24eb: 0x000c, 0x24ec: 0x000c, 0x24ed: 0x000c, 0x24ee: 0x000c, 0x24ef: 0x000c,\n\t0x24f0: 0x000a, 0x24f1: 0x000a, 0x24f2: 0x000a, 0x24f3: 0x000a, 0x24f4: 0x000a, 0x24f5: 0x000a,\n\t0x24f6: 0x000a, 0x24f7: 0x000a, 0x24f8: 0x000a, 0x24f9: 0x000a, 0x24fa: 0x000a, 0x24fb: 0x000a,\n\t0x24fc: 0x000a, 0x24fd: 0x000a, 0x24fe: 0x000a, 0x24ff: 0x000a,\n\t// Block 0x94, offset 0x2500\n\t0x2500: 0x000a, 0x2501: 0x000a, 0x2502: 0x000a, 0x2503: 0x000a, 0x2504: 0x000a, 0x2505: 0x000a,\n\t0x2506: 0x000a, 0x2507: 0x000a, 0x2508: 0x000a, 0x2509: 0x000a, 0x250a: 0x000a, 0x250b: 0x000a,\n\t0x250c: 0x000a, 0x250d: 0x000a, 0x250e: 0x000a, 0x250f: 0x000a, 0x2510: 0x0006, 0x2511: 0x000a,\n\t0x2512: 0x0006, 0x2514: 0x000a, 0x2515: 0x0006, 0x2516: 0x000a, 0x2517: 0x000a,\n\t0x2518: 0x000a, 0x2519: 0x009a, 0x251a: 0x008a, 0x251b: 0x007a, 0x251c: 0x006a, 0x251d: 0x009a,\n\t0x251e: 0x008a, 0x251f: 0x0004, 0x2520: 0x000a, 0x2521: 0x000a, 0x2522: 0x0003, 0x2523: 0x0003,\n\t0x2524: 0x000a, 0x2525: 0x000a, 0x2526: 0x000a, 0x2528: 0x000a, 0x2529: 0x0004,\n\t0x252a: 0x0004, 0x252b: 0x000a,\n\t0x2530: 0x000d, 0x2531: 0x000d, 0x2532: 0x000d, 0x2533: 0x000d, 0x2534: 0x000d, 0x2535: 0x000d,\n\t0x2536: 0x000d, 0x2537: 0x000d, 0x2538: 0x000d, 0x2539: 0x000d, 0x253a: 0x000d, 0x253b: 0x000d,\n\t0x253c: 0x000d, 0x253d: 0x000d, 0x253e: 0x000d, 0x253f: 0x000d,\n\t// Block 0x95, offset 0x2540\n\t0x2540: 0x000d, 0x2541: 0x000d, 0x2542: 0x000d, 0x2543: 0x000d, 0x2544: 0x000d, 0x2545: 0x000d,\n\t0x2546: 0x000d, 0x2547: 0x000d, 0x2548: 0x000d, 0x2549: 0x000d, 0x254a: 0x000d, 0x254b: 0x000d,\n\t0x254c: 0x000d, 0x254d: 0x000d, 0x254e: 0x000d, 0x254f: 0x000d, 0x2550: 0x000d, 0x2551: 0x000d,\n\t0x2552: 0x000d, 0x2553: 0x000d, 0x2554: 0x000d, 0x2555: 0x000d, 0x2556: 0x000d, 0x2557: 0x000d,\n\t0x2558: 0x000d, 0x2559: 0x000d, 0x255a: 0x000d, 0x255b: 0x000d, 0x255c: 0x000d, 0x255d: 0x000d,\n\t0x255e: 0x000d, 0x255f: 0x000d, 0x2560: 0x000d, 0x2561: 0x000d, 0x2562: 0x000d, 0x2563: 0x000d,\n\t0x2564: 0x000d, 0x2565: 0x000d, 0x2566: 0x000d, 0x2567: 0x000d, 0x2568: 0x000d, 0x2569: 0x000d,\n\t0x256a: 0x000d, 0x256b: 0x000d, 0x256c: 0x000d, 0x256d: 0x000d, 0x256e: 0x000d, 0x256f: 0x000d,\n\t0x2570: 0x000d, 0x2571: 0x000d, 0x2572: 0x000d, 0x2573: 0x000d, 0x2574: 0x000d, 0x2575: 0x000d,\n\t0x2576: 0x000d, 0x2577: 0x000d, 0x2578: 0x000d, 0x2579: 0x000d, 0x257a: 0x000d, 0x257b: 0x000d,\n\t0x257c: 0x000d, 0x257d: 0x000d, 0x257e: 0x000d, 0x257f: 0x000b,\n\t// Block 0x96, offset 0x2580\n\t0x2581: 0x000a, 0x2582: 0x000a, 0x2583: 0x0004, 0x2584: 0x0004, 0x2585: 0x0004,\n\t0x2586: 0x000a, 0x2587: 0x000a, 0x2588: 0x003a, 0x2589: 0x002a, 0x258a: 0x000a, 0x258b: 0x0003,\n\t0x258c: 0x0006, 0x258d: 0x0003, 0x258e: 0x0006, 0x258f: 0x0006, 0x2590: 0x0002, 0x2591: 0x0002,\n\t0x2592: 0x0002, 0x2593: 0x0002, 0x2594: 0x0002, 0x2595: 0x0002, 0x2596: 0x0002, 0x2597: 0x0002,\n\t0x2598: 0x0002, 0x2599: 0x0002, 0x259a: 0x0006, 0x259b: 0x000a, 0x259c: 0x000a, 0x259d: 0x000a,\n\t0x259e: 0x000a, 0x259f: 0x000a, 0x25a0: 0x000a,\n\t0x25bb: 0x005a,\n\t0x25bc: 0x000a, 0x25bd: 0x004a, 0x25be: 0x000a, 0x25bf: 0x000a,\n\t// Block 0x97, offset 0x25c0\n\t0x25c0: 0x000a,\n\t0x25db: 0x005a, 0x25dc: 0x000a, 0x25dd: 0x004a,\n\t0x25de: 0x000a, 0x25df: 0x00fa, 0x25e0: 0x00ea, 0x25e1: 0x000a, 0x25e2: 0x003a, 0x25e3: 0x002a,\n\t0x25e4: 0x000a, 0x25e5: 0x000a,\n\t// Block 0x98, offset 0x2600\n\t0x2620: 0x0004, 0x2621: 0x0004, 0x2622: 0x000a, 0x2623: 0x000a,\n\t0x2624: 0x000a, 0x2625: 0x0004, 0x2626: 0x0004, 0x2628: 0x000a, 0x2629: 0x000a,\n\t0x262a: 0x000a, 0x262b: 0x000a, 0x262c: 0x000a, 0x262d: 0x000a, 0x262e: 0x000a,\n\t0x2630: 0x000b, 0x2631: 0x000b, 0x2632: 0x000b, 0x2633: 0x000b, 0x2634: 0x000b, 0x2635: 0x000b,\n\t0x2636: 0x000b, 0x2637: 0x000b, 0x2638: 0x000b, 0x2639: 0x000a, 0x263a: 0x000a, 0x263b: 0x000a,\n\t0x263c: 0x000a, 0x263d: 0x000a, 0x263e: 0x000b, 0x263f: 0x000b,\n\t// Block 0x99, offset 0x2640\n\t0x2641: 0x000a,\n\t// Block 0x9a, offset 0x2680\n\t0x2680: 0x000a, 0x2681: 0x000a, 0x2682: 0x000a, 0x2683: 0x000a, 0x2684: 0x000a, 0x2685: 0x000a,\n\t0x2686: 0x000a, 0x2687: 0x000a, 0x2688: 0x000a, 0x2689: 0x000a, 0x268a: 0x000a, 0x268b: 0x000a,\n\t0x268c: 0x000a, 0x2690: 0x000a, 0x2691: 0x000a,\n\t0x2692: 0x000a, 0x2693: 0x000a, 0x2694: 0x000a, 0x2695: 0x000a, 0x2696: 0x000a, 0x2697: 0x000a,\n\t0x2698: 0x000a, 0x2699: 0x000a, 0x269a: 0x000a, 0x269b: 0x000a, 0x269c: 0x000a,\n\t0x26a0: 0x000a,\n\t// Block 0x9b, offset 0x26c0\n\t0x26fd: 0x000c,\n\t// Block 0x9c, offset 0x2700\n\t0x2720: 0x000c, 0x2721: 0x0002, 0x2722: 0x0002, 0x2723: 0x0002,\n\t0x2724: 0x0002, 0x2725: 0x0002, 0x2726: 0x0002, 0x2727: 0x0002, 0x2728: 0x0002, 0x2729: 0x0002,\n\t0x272a: 0x0002, 0x272b: 0x0002, 0x272c: 0x0002, 0x272d: 0x0002, 0x272e: 0x0002, 0x272f: 0x0002,\n\t0x2730: 0x0002, 0x2731: 0x0002, 0x2732: 0x0002, 0x2733: 0x0002, 0x2734: 0x0002, 0x2735: 0x0002,\n\t0x2736: 0x0002, 0x2737: 0x0002, 0x2738: 0x0002, 0x2739: 0x0002, 0x273a: 0x0002, 0x273b: 0x0002,\n\t// Block 0x9d, offset 0x2740\n\t0x2776: 0x000c, 0x2777: 0x000c, 0x2778: 0x000c, 0x2779: 0x000c, 0x277a: 0x000c,\n\t// Block 0x9e, offset 0x2780\n\t0x2780: 0x0001, 0x2781: 0x0001, 0x2782: 0x0001, 0x2783: 0x0001, 0x2784: 0x0001, 0x2785: 0x0001,\n\t0x2786: 0x0001, 0x2787: 0x0001, 0x2788: 0x0001, 0x2789: 0x0001, 0x278a: 0x0001, 0x278b: 0x0001,\n\t0x278c: 0x0001, 0x278d: 0x0001, 0x278e: 0x0001, 0x278f: 0x0001, 0x2790: 0x0001, 0x2791: 0x0001,\n\t0x2792: 0x0001, 0x2793: 0x0001, 0x2794: 0x0001, 0x2795: 0x0001, 0x2796: 0x0001, 0x2797: 0x0001,\n\t0x2798: 0x0001, 0x2799: 0x0001, 0x279a: 0x0001, 0x279b: 0x0001, 0x279c: 0x0001, 0x279d: 0x0001,\n\t0x279e: 0x0001, 0x279f: 0x0001, 0x27a0: 0x0001, 0x27a1: 0x0001, 0x27a2: 0x0001, 0x27a3: 0x0001,\n\t0x27a4: 0x0001, 0x27a5: 0x0001, 0x27a6: 0x0001, 0x27a7: 0x0001, 0x27a8: 0x0001, 0x27a9: 0x0001,\n\t0x27aa: 0x0001, 0x27ab: 0x0001, 0x27ac: 0x0001, 0x27ad: 0x0001, 0x27ae: 0x0001, 0x27af: 0x0001,\n\t0x27b0: 0x0001, 0x27b1: 0x0001, 0x27b2: 0x0001, 0x27b3: 0x0001, 0x27b4: 0x0001, 0x27b5: 0x0001,\n\t0x27b6: 0x0001, 0x27b7: 0x0001, 0x27b8: 0x0001, 0x27b9: 0x0001, 0x27ba: 0x0001, 0x27bb: 0x0001,\n\t0x27bc: 0x0001, 0x27bd: 0x0001, 0x27be: 0x0001, 0x27bf: 0x0001,\n\t// Block 0x9f, offset 0x27c0\n\t0x27c0: 0x0001, 0x27c1: 0x0001, 0x27c2: 0x0001, 0x27c3: 0x0001, 0x27c4: 0x0001, 0x27c5: 0x0001,\n\t0x27c6: 0x0001, 0x27c7: 0x0001, 0x27c8: 0x0001, 0x27c9: 0x0001, 0x27ca: 0x0001, 0x27cb: 0x0001,\n\t0x27cc: 0x0001, 0x27cd: 0x0001, 0x27ce: 0x0001, 0x27cf: 0x0001, 0x27d0: 0x0001, 0x27d1: 0x0001,\n\t0x27d2: 0x0001, 0x27d3: 0x0001, 0x27d4: 0x0001, 0x27d5: 0x0001, 0x27d6: 0x0001, 0x27d7: 0x0001,\n\t0x27d8: 0x0001, 0x27d9: 0x0001, 0x27da: 0x0001, 0x27db: 0x0001, 0x27dc: 0x0001, 0x27dd: 0x0001,\n\t0x27de: 0x0001, 0x27df: 0x000a, 0x27e0: 0x0001, 0x27e1: 0x0001, 0x27e2: 0x0001, 0x27e3: 0x0001,\n\t0x27e4: 0x0001, 0x27e5: 0x0001, 0x27e6: 0x0001, 0x27e7: 0x0001, 0x27e8: 0x0001, 0x27e9: 0x0001,\n\t0x27ea: 0x0001, 0x27eb: 0x0001, 0x27ec: 0x0001, 0x27ed: 0x0001, 0x27ee: 0x0001, 0x27ef: 0x0001,\n\t0x27f0: 0x0001, 0x27f1: 0x0001, 0x27f2: 0x0001, 0x27f3: 0x0001, 0x27f4: 0x0001, 0x27f5: 0x0001,\n\t0x27f6: 0x0001, 0x27f7: 0x0001, 0x27f8: 0x0001, 0x27f9: 0x0001, 0x27fa: 0x0001, 0x27fb: 0x0001,\n\t0x27fc: 0x0001, 0x27fd: 0x0001, 0x27fe: 0x0001, 0x27ff: 0x0001,\n\t// Block 0xa0, offset 0x2800\n\t0x2800: 0x0001, 0x2801: 0x000c, 0x2802: 0x000c, 0x2803: 0x000c, 0x2804: 0x0001, 0x2805: 0x000c,\n\t0x2806: 0x000c, 0x2807: 0x0001, 0x2808: 0x0001, 0x2809: 0x0001, 0x280a: 0x0001, 0x280b: 0x0001,\n\t0x280c: 0x000c, 0x280d: 0x000c, 0x280e: 0x000c, 0x280f: 0x000c, 0x2810: 0x0001, 0x2811: 0x0001,\n\t0x2812: 0x0001, 0x2813: 0x0001, 0x2814: 0x0001, 0x2815: 0x0001, 0x2816: 0x0001, 0x2817: 0x0001,\n\t0x2818: 0x0001, 0x2819: 0x0001, 0x281a: 0x0001, 0x281b: 0x0001, 0x281c: 0x0001, 0x281d: 0x0001,\n\t0x281e: 0x0001, 0x281f: 0x0001, 0x2820: 0x0001, 0x2821: 0x0001, 0x2822: 0x0001, 0x2823: 0x0001,\n\t0x2824: 0x0001, 0x2825: 0x0001, 0x2826: 0x0001, 0x2827: 0x0001, 0x2828: 0x0001, 0x2829: 0x0001,\n\t0x282a: 0x0001, 0x282b: 0x0001, 0x282c: 0x0001, 0x282d: 0x0001, 0x282e: 0x0001, 0x282f: 0x0001,\n\t0x2830: 0x0001, 0x2831: 0x0001, 0x2832: 0x0001, 0x2833: 0x0001, 0x2834: 0x0001, 0x2835: 0x0001,\n\t0x2836: 0x0001, 0x2837: 0x0001, 0x2838: 0x000c, 0x2839: 0x000c, 0x283a: 0x000c, 0x283b: 0x0001,\n\t0x283c: 0x0001, 0x283d: 0x0001, 0x283e: 0x0001, 0x283f: 0x000c,\n\t// Block 0xa1, offset 0x2840\n\t0x2840: 0x0001, 0x2841: 0x0001, 0x2842: 0x0001, 0x2843: 0x0001, 0x2844: 0x0001, 0x2845: 0x0001,\n\t0x2846: 0x0001, 0x2847: 0x0001, 0x2848: 0x0001, 0x2849: 0x0001, 0x284a: 0x0001, 0x284b: 0x0001,\n\t0x284c: 0x0001, 0x284d: 0x0001, 0x284e: 0x0001, 0x284f: 0x0001, 0x2850: 0x0001, 0x2851: 0x0001,\n\t0x2852: 0x0001, 0x2853: 0x0001, 0x2854: 0x0001, 0x2855: 0x0001, 0x2856: 0x0001, 0x2857: 0x0001,\n\t0x2858: 0x0001, 0x2859: 0x0001, 0x285a: 0x0001, 0x285b: 0x0001, 0x285c: 0x0001, 0x285d: 0x0001,\n\t0x285e: 0x0001, 0x285f: 0x0001, 0x2860: 0x0001, 0x2861: 0x0001, 0x2862: 0x0001, 0x2863: 0x0001,\n\t0x2864: 0x0001, 0x2865: 0x000c, 0x2866: 0x000c, 0x2867: 0x0001, 0x2868: 0x0001, 0x2869: 0x0001,\n\t0x286a: 0x0001, 0x286b: 0x0001, 0x286c: 0x0001, 0x286d: 0x0001, 0x286e: 0x0001, 0x286f: 0x0001,\n\t0x2870: 0x0001, 0x2871: 0x0001, 0x2872: 0x0001, 0x2873: 0x0001, 0x2874: 0x0001, 0x2875: 0x0001,\n\t0x2876: 0x0001, 0x2877: 0x0001, 0x2878: 0x0001, 0x2879: 0x0001, 0x287a: 0x0001, 0x287b: 0x0001,\n\t0x287c: 0x0001, 0x287d: 0x0001, 0x287e: 0x0001, 0x287f: 0x0001,\n\t// Block 0xa2, offset 0x2880\n\t0x2880: 0x0001, 0x2881: 0x0001, 0x2882: 0x0001, 0x2883: 0x0001, 0x2884: 0x0001, 0x2885: 0x0001,\n\t0x2886: 0x0001, 0x2887: 0x0001, 0x2888: 0x0001, 0x2889: 0x0001, 0x288a: 0x0001, 0x288b: 0x0001,\n\t0x288c: 0x0001, 0x288d: 0x0001, 0x288e: 0x0001, 0x288f: 0x0001, 0x2890: 0x0001, 0x2891: 0x0001,\n\t0x2892: 0x0001, 0x2893: 0x0001, 0x2894: 0x0001, 0x2895: 0x0001, 0x2896: 0x0001, 0x2897: 0x0001,\n\t0x2898: 0x0001, 0x2899: 0x0001, 0x289a: 0x0001, 0x289b: 0x0001, 0x289c: 0x0001, 0x289d: 0x0001,\n\t0x289e: 0x0001, 0x289f: 0x0001, 0x28a0: 0x0001, 0x28a1: 0x0001, 0x28a2: 0x0001, 0x28a3: 0x0001,\n\t0x28a4: 0x0001, 0x28a5: 0x0001, 0x28a6: 0x0001, 0x28a7: 0x0001, 0x28a8: 0x0001, 0x28a9: 0x0001,\n\t0x28aa: 0x0001, 0x28ab: 0x0001, 0x28ac: 0x0001, 0x28ad: 0x0001, 0x28ae: 0x0001, 0x28af: 0x0001,\n\t0x28b0: 0x0001, 0x28b1: 0x0001, 0x28b2: 0x0001, 0x28b3: 0x0001, 0x28b4: 0x0001, 0x28b5: 0x0001,\n\t0x28b6: 0x0001, 0x28b7: 0x0001, 0x28b8: 0x0001, 0x28b9: 0x000a, 0x28ba: 0x000a, 0x28bb: 0x000a,\n\t0x28bc: 0x000a, 0x28bd: 0x000a, 0x28be: 0x000a, 0x28bf: 0x000a,\n\t// Block 0xa3, offset 0x28c0\n\t0x28c0: 0x000d, 0x28c1: 0x000d, 0x28c2: 0x000d, 0x28c3: 0x000d, 0x28c4: 0x000d, 0x28c5: 0x000d,\n\t0x28c6: 0x000d, 0x28c7: 0x000d, 0x28c8: 0x000d, 0x28c9: 0x000d, 0x28ca: 0x000d, 0x28cb: 0x000d,\n\t0x28cc: 0x000d, 0x28cd: 0x000d, 0x28ce: 0x000d, 0x28cf: 0x000d, 0x28d0: 0x000d, 0x28d1: 0x000d,\n\t0x28d2: 0x000d, 0x28d3: 0x000d, 0x28d4: 0x000d, 0x28d5: 0x000d, 0x28d6: 0x000d, 0x28d7: 0x000d,\n\t0x28d8: 0x000d, 0x28d9: 0x000d, 0x28da: 0x000d, 0x28db: 0x000d, 0x28dc: 0x000d, 0x28dd: 0x000d,\n\t0x28de: 0x000d, 0x28df: 0x000d, 0x28e0: 0x000d, 0x28e1: 0x000d, 0x28e2: 0x000d, 0x28e3: 0x000d,\n\t0x28e4: 0x000c, 0x28e5: 0x000c, 0x28e6: 0x000c, 0x28e7: 0x000c, 0x28e8: 0x000d, 0x28e9: 0x000d,\n\t0x28ea: 0x000d, 0x28eb: 0x000d, 0x28ec: 0x000d, 0x28ed: 0x000d, 0x28ee: 0x000d, 0x28ef: 0x000d,\n\t0x28f0: 0x0005, 0x28f1: 0x0005, 0x28f2: 0x0005, 0x28f3: 0x0005, 0x28f4: 0x0005, 0x28f5: 0x0005,\n\t0x28f6: 0x0005, 0x28f7: 0x0005, 0x28f8: 0x0005, 0x28f9: 0x0005, 0x28fa: 0x000d, 0x28fb: 0x000d,\n\t0x28fc: 0x000d, 0x28fd: 0x000d, 0x28fe: 0x000d, 0x28ff: 0x000d,\n\t// Block 0xa4, offset 0x2900\n\t0x2900: 0x0001, 0x2901: 0x0001, 0x2902: 0x0001, 0x2903: 0x0001, 0x2904: 0x0001, 0x2905: 0x0001,\n\t0x2906: 0x0001, 0x2907: 0x0001, 0x2908: 0x0001, 0x2909: 0x0001, 0x290a: 0x0001, 0x290b: 0x0001,\n\t0x290c: 0x0001, 0x290d: 0x0001, 0x290e: 0x0001, 0x290f: 0x0001, 0x2910: 0x0001, 0x2911: 0x0001,\n\t0x2912: 0x0001, 0x2913: 0x0001, 0x2914: 0x0001, 0x2915: 0x0001, 0x2916: 0x0001, 0x2917: 0x0001,\n\t0x2918: 0x0001, 0x2919: 0x0001, 0x291a: 0x0001, 0x291b: 0x0001, 0x291c: 0x0001, 0x291d: 0x0001,\n\t0x291e: 0x0001, 0x291f: 0x0001, 0x2920: 0x0005, 0x2921: 0x0005, 0x2922: 0x0005, 0x2923: 0x0005,\n\t0x2924: 0x0005, 0x2925: 0x0005, 0x2926: 0x0005, 0x2927: 0x0005, 0x2928: 0x0005, 0x2929: 0x0005,\n\t0x292a: 0x0005, 0x292b: 0x0005, 0x292c: 0x0005, 0x292d: 0x0005, 0x292e: 0x0005, 0x292f: 0x0005,\n\t0x2930: 0x0005, 0x2931: 0x0005, 0x2932: 0x0005, 0x2933: 0x0005, 0x2934: 0x0005, 0x2935: 0x0005,\n\t0x2936: 0x0005, 0x2937: 0x0005, 0x2938: 0x0005, 0x2939: 0x0005, 0x293a: 0x0005, 0x293b: 0x0005,\n\t0x293c: 0x0005, 0x293d: 0x0005, 0x293e: 0x0005, 0x293f: 0x0001,\n\t// Block 0xa5, offset 0x2940\n\t0x2940: 0x0001, 0x2941: 0x0001, 0x2942: 0x0001, 0x2943: 0x0001, 0x2944: 0x0001, 0x2945: 0x0001,\n\t0x2946: 0x0001, 0x2947: 0x0001, 0x2948: 0x0001, 0x2949: 0x0001, 0x294a: 0x0001, 0x294b: 0x0001,\n\t0x294c: 0x0001, 0x294d: 0x0001, 0x294e: 0x0001, 0x294f: 0x0001, 0x2950: 0x0001, 0x2951: 0x0001,\n\t0x2952: 0x0001, 0x2953: 0x0001, 0x2954: 0x0001, 0x2955: 0x0001, 0x2956: 0x0001, 0x2957: 0x0001,\n\t0x2958: 0x0001, 0x2959: 0x0001, 0x295a: 0x0001, 0x295b: 0x0001, 0x295c: 0x0001, 0x295d: 0x0001,\n\t0x295e: 0x0001, 0x295f: 0x0001, 0x2960: 0x0001, 0x2961: 0x0001, 0x2962: 0x0001, 0x2963: 0x0001,\n\t0x2964: 0x0001, 0x2965: 0x0001, 0x2966: 0x0001, 0x2967: 0x0001, 0x2968: 0x0001, 0x2969: 0x0001,\n\t0x296a: 0x0001, 0x296b: 0x000c, 0x296c: 0x000c, 0x296d: 0x0001, 0x296e: 0x0001, 0x296f: 0x0001,\n\t0x2970: 0x0001, 0x2971: 0x0001, 0x2972: 0x0001, 0x2973: 0x0001, 0x2974: 0x0001, 0x2975: 0x0001,\n\t0x2976: 0x0001, 0x2977: 0x0001, 0x2978: 0x0001, 0x2979: 0x0001, 0x297a: 0x0001, 0x297b: 0x0001,\n\t0x297c: 0x0001, 0x297d: 0x0001, 0x297e: 0x0001, 0x297f: 0x0001,\n\t// Block 0xa6, offset 0x2980\n\t0x2980: 0x0001, 0x2981: 0x0001, 0x2982: 0x0001, 0x2983: 0x0001, 0x2984: 0x0001, 0x2985: 0x0001,\n\t0x2986: 0x0001, 0x2987: 0x0001, 0x2988: 0x0001, 0x2989: 0x0001, 0x298a: 0x0001, 0x298b: 0x0001,\n\t0x298c: 0x0001, 0x298d: 0x0001, 0x298e: 0x0001, 0x298f: 0x0001, 0x2990: 0x0001, 0x2991: 0x0001,\n\t0x2992: 0x0001, 0x2993: 0x0001, 0x2994: 0x0001, 0x2995: 0x0001, 0x2996: 0x0001, 0x2997: 0x0001,\n\t0x2998: 0x0001, 0x2999: 0x0001, 0x299a: 0x0001, 0x299b: 0x0001, 0x299c: 0x0001, 0x299d: 0x0001,\n\t0x299e: 0x0001, 0x299f: 0x0001, 0x29a0: 0x0001, 0x29a1: 0x0001, 0x29a2: 0x0001, 0x29a3: 0x0001,\n\t0x29a4: 0x0001, 0x29a5: 0x0001, 0x29a6: 0x0001, 0x29a7: 0x0001, 0x29a8: 0x0001, 0x29a9: 0x0001,\n\t0x29aa: 0x0001, 0x29ab: 0x0001, 0x29ac: 0x0001, 0x29ad: 0x0001, 0x29ae: 0x0001, 0x29af: 0x0001,\n\t0x29b0: 0x000d, 0x29b1: 0x000d, 0x29b2: 0x000d, 0x29b3: 0x000d, 0x29b4: 0x000d, 0x29b5: 0x000d,\n\t0x29b6: 0x000d, 0x29b7: 0x000d, 0x29b8: 0x000d, 0x29b9: 0x000d, 0x29ba: 0x000d, 0x29bb: 0x000d,\n\t0x29bc: 0x000d, 0x29bd: 0x000d, 0x29be: 0x000d, 0x29bf: 0x000d,\n\t// Block 0xa7, offset 0x29c0\n\t0x29c0: 0x000d, 0x29c1: 0x000d, 0x29c2: 0x000d, 0x29c3: 0x000d, 0x29c4: 0x000d, 0x29c5: 0x000d,\n\t0x29c6: 0x000c, 0x29c7: 0x000c, 0x29c8: 0x000c, 0x29c9: 0x000c, 0x29ca: 0x000c, 0x29cb: 0x000c,\n\t0x29cc: 0x000c, 0x29cd: 0x000c, 0x29ce: 0x000c, 0x29cf: 0x000c, 0x29d0: 0x000c, 0x29d1: 0x000d,\n\t0x29d2: 0x000d, 0x29d3: 0x000d, 0x29d4: 0x000d, 0x29d5: 0x000d, 0x29d6: 0x000d, 0x29d7: 0x000d,\n\t0x29d8: 0x000d, 0x29d9: 0x000d, 0x29da: 0x000d, 0x29db: 0x000d, 0x29dc: 0x000d, 0x29dd: 0x000d,\n\t0x29de: 0x000d, 0x29df: 0x000d, 0x29e0: 0x000d, 0x29e1: 0x000d, 0x29e2: 0x000d, 0x29e3: 0x000d,\n\t0x29e4: 0x000d, 0x29e5: 0x000d, 0x29e6: 0x000d, 0x29e7: 0x000d, 0x29e8: 0x000d, 0x29e9: 0x000d,\n\t0x29ea: 0x000d, 0x29eb: 0x000d, 0x29ec: 0x000d, 0x29ed: 0x000d, 0x29ee: 0x000d, 0x29ef: 0x000d,\n\t0x29f0: 0x0001, 0x29f1: 0x0001, 0x29f2: 0x0001, 0x29f3: 0x0001, 0x29f4: 0x0001, 0x29f5: 0x0001,\n\t0x29f6: 0x0001, 0x29f7: 0x0001, 0x29f8: 0x0001, 0x29f9: 0x0001, 0x29fa: 0x0001, 0x29fb: 0x0001,\n\t0x29fc: 0x0001, 0x29fd: 0x0001, 0x29fe: 0x0001, 0x29ff: 0x0001,\n\t// Block 0xa8, offset 0x2a00\n\t0x2a01: 0x000c,\n\t0x2a38: 0x000c, 0x2a39: 0x000c, 0x2a3a: 0x000c, 0x2a3b: 0x000c,\n\t0x2a3c: 0x000c, 0x2a3d: 0x000c, 0x2a3e: 0x000c, 0x2a3f: 0x000c,\n\t// Block 0xa9, offset 0x2a40\n\t0x2a40: 0x000c, 0x2a41: 0x000c, 0x2a42: 0x000c, 0x2a43: 0x000c, 0x2a44: 0x000c, 0x2a45: 0x000c,\n\t0x2a46: 0x000c,\n\t0x2a52: 0x000a, 0x2a53: 0x000a, 0x2a54: 0x000a, 0x2a55: 0x000a, 0x2a56: 0x000a, 0x2a57: 0x000a,\n\t0x2a58: 0x000a, 0x2a59: 0x000a, 0x2a5a: 0x000a, 0x2a5b: 0x000a, 0x2a5c: 0x000a, 0x2a5d: 0x000a,\n\t0x2a5e: 0x000a, 0x2a5f: 0x000a, 0x2a60: 0x000a, 0x2a61: 0x000a, 0x2a62: 0x000a, 0x2a63: 0x000a,\n\t0x2a64: 0x000a, 0x2a65: 0x000a,\n\t0x2a7f: 0x000c,\n\t// Block 0xaa, offset 0x2a80\n\t0x2a80: 0x000c, 0x2a81: 0x000c,\n\t0x2ab3: 0x000c, 0x2ab4: 0x000c, 0x2ab5: 0x000c,\n\t0x2ab6: 0x000c, 0x2ab9: 0x000c, 0x2aba: 0x000c,\n\t// Block 0xab, offset 0x2ac0\n\t0x2ac0: 0x000c, 0x2ac1: 0x000c, 0x2ac2: 0x000c,\n\t0x2ae7: 0x000c, 0x2ae8: 0x000c, 0x2ae9: 0x000c,\n\t0x2aea: 0x000c, 0x2aeb: 0x000c, 0x2aed: 0x000c, 0x2aee: 0x000c, 0x2aef: 0x000c,\n\t0x2af0: 0x000c, 0x2af1: 0x000c, 0x2af2: 0x000c, 0x2af3: 0x000c, 0x2af4: 0x000c,\n\t// Block 0xac, offset 0x2b00\n\t0x2b33: 0x000c,\n\t// Block 0xad, offset 0x2b40\n\t0x2b40: 0x000c, 0x2b41: 0x000c,\n\t0x2b76: 0x000c, 0x2b77: 0x000c, 0x2b78: 0x000c, 0x2b79: 0x000c, 0x2b7a: 0x000c, 0x2b7b: 0x000c,\n\t0x2b7c: 0x000c, 0x2b7d: 0x000c, 0x2b7e: 0x000c,\n\t// Block 0xae, offset 0x2b80\n\t0x2b89: 0x000c, 0x2b8a: 0x000c, 0x2b8b: 0x000c,\n\t0x2b8c: 0x000c, 0x2b8f: 0x000c,\n\t// Block 0xaf, offset 0x2bc0\n\t0x2bef: 0x000c,\n\t0x2bf0: 0x000c, 0x2bf1: 0x000c, 0x2bf4: 0x000c,\n\t0x2bf6: 0x000c, 0x2bf7: 0x000c,\n\t0x2bfe: 0x000c,\n\t// Block 0xb0, offset 0x2c00\n\t0x2c1f: 0x000c, 0x2c23: 0x000c,\n\t0x2c24: 0x000c, 0x2c25: 0x000c, 0x2c26: 0x000c, 0x2c27: 0x000c, 0x2c28: 0x000c, 0x2c29: 0x000c,\n\t0x2c2a: 0x000c,\n\t// Block 0xb1, offset 0x2c40\n\t0x2c40: 0x000c,\n\t0x2c66: 0x000c, 0x2c67: 0x000c, 0x2c68: 0x000c, 0x2c69: 0x000c,\n\t0x2c6a: 0x000c, 0x2c6b: 0x000c, 0x2c6c: 0x000c,\n\t0x2c70: 0x000c, 0x2c71: 0x000c, 0x2c72: 0x000c, 0x2c73: 0x000c, 0x2c74: 0x000c,\n\t// Block 0xb2, offset 0x2c80\n\t0x2cb8: 0x000c, 0x2cb9: 0x000c, 0x2cba: 0x000c, 0x2cbb: 0x000c,\n\t0x2cbc: 0x000c, 0x2cbd: 0x000c, 0x2cbe: 0x000c, 0x2cbf: 0x000c,\n\t// Block 0xb3, offset 0x2cc0\n\t0x2cc2: 0x000c, 0x2cc3: 0x000c, 0x2cc4: 0x000c,\n\t0x2cc6: 0x000c,\n\t0x2cde: 0x000c,\n\t// Block 0xb4, offset 0x2d00\n\t0x2d33: 0x000c, 0x2d34: 0x000c, 0x2d35: 0x000c,\n\t0x2d36: 0x000c, 0x2d37: 0x000c, 0x2d38: 0x000c, 0x2d3a: 0x000c,\n\t0x2d3f: 0x000c,\n\t// Block 0xb5, offset 0x2d40\n\t0x2d40: 0x000c, 0x2d42: 0x000c, 0x2d43: 0x000c,\n\t// Block 0xb6, offset 0x2d80\n\t0x2db2: 0x000c, 0x2db3: 0x000c, 0x2db4: 0x000c, 0x2db5: 0x000c,\n\t0x2dbc: 0x000c, 0x2dbd: 0x000c, 0x2dbf: 0x000c,\n\t// Block 0xb7, offset 0x2dc0\n\t0x2dc0: 0x000c,\n\t0x2ddc: 0x000c, 0x2ddd: 0x000c,\n\t// Block 0xb8, offset 0x2e00\n\t0x2e33: 0x000c, 0x2e34: 0x000c, 0x2e35: 0x000c,\n\t0x2e36: 0x000c, 0x2e37: 0x000c, 0x2e38: 0x000c, 0x2e39: 0x000c, 0x2e3a: 0x000c,\n\t0x2e3d: 0x000c, 0x2e3f: 0x000c,\n\t// Block 0xb9, offset 0x2e40\n\t0x2e40: 0x000c,\n\t0x2e60: 0x000a, 0x2e61: 0x000a, 0x2e62: 0x000a, 0x2e63: 0x000a,\n\t0x2e64: 0x000a, 0x2e65: 0x000a, 0x2e66: 0x000a, 0x2e67: 0x000a, 0x2e68: 0x000a, 0x2e69: 0x000a,\n\t0x2e6a: 0x000a, 0x2e6b: 0x000a, 0x2e6c: 0x000a,\n\t// Block 0xba, offset 0x2e80\n\t0x2eab: 0x000c, 0x2ead: 0x000c,\n\t0x2eb0: 0x000c, 0x2eb1: 0x000c, 0x2eb2: 0x000c, 0x2eb3: 0x000c, 0x2eb4: 0x000c, 0x2eb5: 0x000c,\n\t0x2eb7: 0x000c,\n\t// Block 0xbb, offset 0x2ec0\n\t0x2edd: 0x000c,\n\t0x2ede: 0x000c, 0x2edf: 0x000c, 0x2ee2: 0x000c, 0x2ee3: 0x000c,\n\t0x2ee4: 0x000c, 0x2ee5: 0x000c, 0x2ee7: 0x000c, 0x2ee8: 0x000c, 0x2ee9: 0x000c,\n\t0x2eea: 0x000c, 0x2eeb: 0x000c,\n\t// Block 0xbc, offset 0x2f00\n\t0x2f2f: 0x000c,\n\t0x2f30: 0x000c, 0x2f31: 0x000c, 0x2f32: 0x000c, 0x2f33: 0x000c, 0x2f34: 0x000c, 0x2f35: 0x000c,\n\t0x2f36: 0x000c, 0x2f37: 0x000c, 0x2f39: 0x000c, 0x2f3a: 0x000c,\n\t// Block 0xbd, offset 0x2f40\n\t0x2f7b: 0x000c,\n\t0x2f7c: 0x000c, 0x2f7e: 0x000c,\n\t// Block 0xbe, offset 0x2f80\n\t0x2f83: 0x000c,\n\t// Block 0xbf, offset 0x2fc0\n\t0x2fd4: 0x000c, 0x2fd5: 0x000c, 0x2fd6: 0x000c, 0x2fd7: 0x000c,\n\t0x2fda: 0x000c, 0x2fdb: 0x000c,\n\t0x2fe0: 0x000c,\n\t// Block 0xc0, offset 0x3000\n\t0x3001: 0x000c, 0x3002: 0x000c, 0x3003: 0x000c, 0x3004: 0x000c, 0x3005: 0x000c,\n\t0x3006: 0x000c, 0x3009: 0x000c, 0x300a: 0x000c,\n\t0x3033: 0x000c, 0x3034: 0x000c, 0x3035: 0x000c,\n\t0x3036: 0x000c, 0x3037: 0x000c, 0x3038: 0x000c, 0x303b: 0x000c,\n\t0x303c: 0x000c, 0x303d: 0x000c, 0x303e: 0x000c,\n\t// Block 0xc1, offset 0x3040\n\t0x3047: 0x000c,\n\t0x3051: 0x000c,\n\t0x3052: 0x000c, 0x3053: 0x000c, 0x3054: 0x000c, 0x3055: 0x000c, 0x3056: 0x000c,\n\t0x3059: 0x000c, 0x305a: 0x000c, 0x305b: 0x000c,\n\t// Block 0xc2, offset 0x3080\n\t0x308a: 0x000c, 0x308b: 0x000c,\n\t0x308c: 0x000c, 0x308d: 0x000c, 0x308e: 0x000c, 0x308f: 0x000c, 0x3090: 0x000c, 0x3091: 0x000c,\n\t0x3092: 0x000c, 0x3093: 0x000c, 0x3094: 0x000c, 0x3095: 0x000c, 0x3096: 0x000c,\n\t0x3098: 0x000c, 0x3099: 0x000c,\n\t// Block 0xc3, offset 0x30c0\n\t0x30f0: 0x000c, 0x30f1: 0x000c, 0x30f2: 0x000c, 0x30f3: 0x000c, 0x30f4: 0x000c, 0x30f5: 0x000c,\n\t0x30f6: 0x000c, 0x30f8: 0x000c, 0x30f9: 0x000c, 0x30fa: 0x000c, 0x30fb: 0x000c,\n\t0x30fc: 0x000c, 0x30fd: 0x000c,\n\t// Block 0xc4, offset 0x3100\n\t0x3112: 0x000c, 0x3113: 0x000c, 0x3114: 0x000c, 0x3115: 0x000c, 0x3116: 0x000c, 0x3117: 0x000c,\n\t0x3118: 0x000c, 0x3119: 0x000c, 0x311a: 0x000c, 0x311b: 0x000c, 0x311c: 0x000c, 0x311d: 0x000c,\n\t0x311e: 0x000c, 0x311f: 0x000c, 0x3120: 0x000c, 0x3121: 0x000c, 0x3122: 0x000c, 0x3123: 0x000c,\n\t0x3124: 0x000c, 0x3125: 0x000c, 0x3126: 0x000c, 0x3127: 0x000c,\n\t0x312a: 0x000c, 0x312b: 0x000c, 0x312c: 0x000c, 0x312d: 0x000c, 0x312e: 0x000c, 0x312f: 0x000c,\n\t0x3130: 0x000c, 0x3132: 0x000c, 0x3133: 0x000c, 0x3135: 0x000c,\n\t0x3136: 0x000c,\n\t// Block 0xc5, offset 0x3140\n\t0x3171: 0x000c, 0x3172: 0x000c, 0x3173: 0x000c, 0x3174: 0x000c, 0x3175: 0x000c,\n\t0x3176: 0x000c, 0x317a: 0x000c,\n\t0x317c: 0x000c, 0x317d: 0x000c, 0x317f: 0x000c,\n\t// Block 0xc6, offset 0x3180\n\t0x3180: 0x000c, 0x3181: 0x000c, 0x3182: 0x000c, 0x3183: 0x000c, 0x3184: 0x000c, 0x3185: 0x000c,\n\t0x3187: 0x000c,\n\t// Block 0xc7, offset 0x31c0\n\t0x31d0: 0x000c, 0x31d1: 0x000c,\n\t0x31d5: 0x000c, 0x31d7: 0x000c,\n\t// Block 0xc8, offset 0x3200\n\t0x3233: 0x000c, 0x3234: 0x000c,\n\t// Block 0xc9, offset 0x3240\n\t0x3255: 0x000a, 0x3256: 0x000a, 0x3257: 0x000a,\n\t0x3258: 0x000a, 0x3259: 0x000a, 0x325a: 0x000a, 0x325b: 0x000a, 0x325c: 0x000a, 0x325d: 0x0004,\n\t0x325e: 0x0004, 0x325f: 0x0004, 0x3260: 0x0004, 0x3261: 0x000a, 0x3262: 0x000a, 0x3263: 0x000a,\n\t0x3264: 0x000a, 0x3265: 0x000a, 0x3266: 0x000a, 0x3267: 0x000a, 0x3268: 0x000a, 0x3269: 0x000a,\n\t0x326a: 0x000a, 0x326b: 0x000a, 0x326c: 0x000a, 0x326d: 0x000a, 0x326e: 0x000a, 0x326f: 0x000a,\n\t0x3270: 0x000a, 0x3271: 0x000a,\n\t// Block 0xca, offset 0x3280\n\t0x32b0: 0x000c, 0x32b1: 0x000c, 0x32b2: 0x000c, 0x32b3: 0x000c, 0x32b4: 0x000c,\n\t// Block 0xcb, offset 0x32c0\n\t0x32f0: 0x000c, 0x32f1: 0x000c, 0x32f2: 0x000c, 0x32f3: 0x000c, 0x32f4: 0x000c, 0x32f5: 0x000c,\n\t0x32f6: 0x000c,\n\t// Block 0xcc, offset 0x3300\n\t0x330f: 0x000c,\n\t// Block 0xcd, offset 0x3340\n\t0x334f: 0x000c, 0x3350: 0x000c, 0x3351: 0x000c,\n\t0x3352: 0x000c,\n\t// Block 0xce, offset 0x3380\n\t0x33a2: 0x000a,\n\t0x33a4: 0x000c,\n\t// Block 0xcf, offset 0x33c0\n\t0x33dd: 0x000c,\n\t0x33de: 0x000c, 0x33e0: 0x000b, 0x33e1: 0x000b, 0x33e2: 0x000b, 0x33e3: 0x000b,\n\t// Block 0xd0, offset 0x3400\n\t0x3427: 0x000c, 0x3428: 0x000c, 0x3429: 0x000c,\n\t0x3433: 0x000b, 0x3434: 0x000b, 0x3435: 0x000b,\n\t0x3436: 0x000b, 0x3437: 0x000b, 0x3438: 0x000b, 0x3439: 0x000b, 0x343a: 0x000b, 0x343b: 0x000c,\n\t0x343c: 0x000c, 0x343d: 0x000c, 0x343e: 0x000c, 0x343f: 0x000c,\n\t// Block 0xd1, offset 0x3440\n\t0x3440: 0x000c, 0x3441: 0x000c, 0x3442: 0x000c, 0x3445: 0x000c,\n\t0x3446: 0x000c, 0x3447: 0x000c, 0x3448: 0x000c, 0x3449: 0x000c, 0x344a: 0x000c, 0x344b: 0x000c,\n\t0x346a: 0x000c, 0x346b: 0x000c, 0x346c: 0x000c, 0x346d: 0x000c,\n\t// Block 0xd2, offset 0x3480\n\t0x3480: 0x000a, 0x3481: 0x000a, 0x3482: 0x000c, 0x3483: 0x000c, 0x3484: 0x000c, 0x3485: 0x000a,\n\t// Block 0xd3, offset 0x34c0\n\t0x34c0: 0x000a, 0x34c1: 0x000a, 0x34c2: 0x000a, 0x34c3: 0x000a, 0x34c4: 0x000a, 0x34c5: 0x000a,\n\t0x34c6: 0x000a, 0x34c7: 0x000a, 0x34c8: 0x000a, 0x34c9: 0x000a, 0x34ca: 0x000a, 0x34cb: 0x000a,\n\t0x34cc: 0x000a, 0x34cd: 0x000a, 0x34ce: 0x000a, 0x34cf: 0x000a, 0x34d0: 0x000a, 0x34d1: 0x000a,\n\t0x34d2: 0x000a, 0x34d3: 0x000a, 0x34d4: 0x000a, 0x34d5: 0x000a, 0x34d6: 0x000a,\n\t// Block 0xd4, offset 0x3500\n\t0x351b: 0x000a,\n\t// Block 0xd5, offset 0x3540\n\t0x3555: 0x000a,\n\t// Block 0xd6, offset 0x3580\n\t0x358f: 0x000a,\n\t// Block 0xd7, offset 0x35c0\n\t0x35c9: 0x000a,\n\t// Block 0xd8, offset 0x3600\n\t0x3603: 0x000a,\n\t0x360e: 0x0002, 0x360f: 0x0002, 0x3610: 0x0002, 0x3611: 0x0002,\n\t0x3612: 0x0002, 0x3613: 0x0002, 0x3614: 0x0002, 0x3615: 0x0002, 0x3616: 0x0002, 0x3617: 0x0002,\n\t0x3618: 0x0002, 0x3619: 0x0002, 0x361a: 0x0002, 0x361b: 0x0002, 0x361c: 0x0002, 0x361d: 0x0002,\n\t0x361e: 0x0002, 0x361f: 0x0002, 0x3620: 0x0002, 0x3621: 0x0002, 0x3622: 0x0002, 0x3623: 0x0002,\n\t0x3624: 0x0002, 0x3625: 0x0002, 0x3626: 0x0002, 0x3627: 0x0002, 0x3628: 0x0002, 0x3629: 0x0002,\n\t0x362a: 0x0002, 0x362b: 0x0002, 0x362c: 0x0002, 0x362d: 0x0002, 0x362e: 0x0002, 0x362f: 0x0002,\n\t0x3630: 0x0002, 0x3631: 0x0002, 0x3632: 0x0002, 0x3633: 0x0002, 0x3634: 0x0002, 0x3635: 0x0002,\n\t0x3636: 0x0002, 0x3637: 0x0002, 0x3638: 0x0002, 0x3639: 0x0002, 0x363a: 0x0002, 0x363b: 0x0002,\n\t0x363c: 0x0002, 0x363d: 0x0002, 0x363e: 0x0002, 0x363f: 0x0002,\n\t// Block 0xd9, offset 0x3640\n\t0x3640: 0x000c, 0x3641: 0x000c, 0x3642: 0x000c, 0x3643: 0x000c, 0x3644: 0x000c, 0x3645: 0x000c,\n\t0x3646: 0x000c, 0x3647: 0x000c, 0x3648: 0x000c, 0x3649: 0x000c, 0x364a: 0x000c, 0x364b: 0x000c,\n\t0x364c: 0x000c, 0x364d: 0x000c, 0x364e: 0x000c, 0x364f: 0x000c, 0x3650: 0x000c, 0x3651: 0x000c,\n\t0x3652: 0x000c, 0x3653: 0x000c, 0x3654: 0x000c, 0x3655: 0x000c, 0x3656: 0x000c, 0x3657: 0x000c,\n\t0x3658: 0x000c, 0x3659: 0x000c, 0x365a: 0x000c, 0x365b: 0x000c, 0x365c: 0x000c, 0x365d: 0x000c,\n\t0x365e: 0x000c, 0x365f: 0x000c, 0x3660: 0x000c, 0x3661: 0x000c, 0x3662: 0x000c, 0x3663: 0x000c,\n\t0x3664: 0x000c, 0x3665: 0x000c, 0x3666: 0x000c, 0x3667: 0x000c, 0x3668: 0x000c, 0x3669: 0x000c,\n\t0x366a: 0x000c, 0x366b: 0x000c, 0x366c: 0x000c, 0x366d: 0x000c, 0x366e: 0x000c, 0x366f: 0x000c,\n\t0x3670: 0x000c, 0x3671: 0x000c, 0x3672: 0x000c, 0x3673: 0x000c, 0x3674: 0x000c, 0x3675: 0x000c,\n\t0x3676: 0x000c, 0x367b: 0x000c,\n\t0x367c: 0x000c, 0x367d: 0x000c, 0x367e: 0x000c, 0x367f: 0x000c,\n\t// Block 0xda, offset 0x3680\n\t0x3680: 0x000c, 0x3681: 0x000c, 0x3682: 0x000c, 0x3683: 0x000c, 0x3684: 0x000c, 0x3685: 0x000c,\n\t0x3686: 0x000c, 0x3687: 0x000c, 0x3688: 0x000c, 0x3689: 0x000c, 0x368a: 0x000c, 0x368b: 0x000c,\n\t0x368c: 0x000c, 0x368d: 0x000c, 0x368e: 0x000c, 0x368f: 0x000c, 0x3690: 0x000c, 0x3691: 0x000c,\n\t0x3692: 0x000c, 0x3693: 0x000c, 0x3694: 0x000c, 0x3695: 0x000c, 0x3696: 0x000c, 0x3697: 0x000c,\n\t0x3698: 0x000c, 0x3699: 0x000c, 0x369a: 0x000c, 0x369b: 0x000c, 0x369c: 0x000c, 0x369d: 0x000c,\n\t0x369e: 0x000c, 0x369f: 0x000c, 0x36a0: 0x000c, 0x36a1: 0x000c, 0x36a2: 0x000c, 0x36a3: 0x000c,\n\t0x36a4: 0x000c, 0x36a5: 0x000c, 0x36a6: 0x000c, 0x36a7: 0x000c, 0x36a8: 0x000c, 0x36a9: 0x000c,\n\t0x36aa: 0x000c, 0x36ab: 0x000c, 0x36ac: 0x000c,\n\t0x36b5: 0x000c,\n\t// Block 0xdb, offset 0x36c0\n\t0x36c4: 0x000c,\n\t0x36db: 0x000c, 0x36dc: 0x000c, 0x36dd: 0x000c,\n\t0x36de: 0x000c, 0x36df: 0x000c, 0x36e1: 0x000c, 0x36e2: 0x000c, 0x36e3: 0x000c,\n\t0x36e4: 0x000c, 0x36e5: 0x000c, 0x36e6: 0x000c, 0x36e7: 0x000c, 0x36e8: 0x000c, 0x36e9: 0x000c,\n\t0x36ea: 0x000c, 0x36eb: 0x000c, 0x36ec: 0x000c, 0x36ed: 0x000c, 0x36ee: 0x000c, 0x36ef: 0x000c,\n\t// Block 0xdc, offset 0x3700\n\t0x3700: 0x000c, 0x3701: 0x000c, 0x3702: 0x000c, 0x3703: 0x000c, 0x3704: 0x000c, 0x3705: 0x000c,\n\t0x3706: 0x000c, 0x3708: 0x000c, 0x3709: 0x000c, 0x370a: 0x000c, 0x370b: 0x000c,\n\t0x370c: 0x000c, 0x370d: 0x000c, 0x370e: 0x000c, 0x370f: 0x000c, 0x3710: 0x000c, 0x3711: 0x000c,\n\t0x3712: 0x000c, 0x3713: 0x000c, 0x3714: 0x000c, 0x3715: 0x000c, 0x3716: 0x000c, 0x3717: 0x000c,\n\t0x3718: 0x000c, 0x371b: 0x000c, 0x371c: 0x000c, 0x371d: 0x000c,\n\t0x371e: 0x000c, 0x371f: 0x000c, 0x3720: 0x000c, 0x3721: 0x000c, 0x3723: 0x000c,\n\t0x3724: 0x000c, 0x3726: 0x000c, 0x3727: 0x000c, 0x3728: 0x000c, 0x3729: 0x000c,\n\t0x372a: 0x000c,\n\t// Block 0xdd, offset 0x3740\n\t0x376c: 0x000c, 0x376d: 0x000c, 0x376e: 0x000c, 0x376f: 0x000c,\n\t0x377f: 0x0004,\n\t// Block 0xde, offset 0x3780\n\t0x3780: 0x0001, 0x3781: 0x0001, 0x3782: 0x0001, 0x3783: 0x0001, 0x3784: 0x0001, 0x3785: 0x0001,\n\t0x3786: 0x0001, 0x3787: 0x0001, 0x3788: 0x0001, 0x3789: 0x0001, 0x378a: 0x0001, 0x378b: 0x0001,\n\t0x378c: 0x0001, 0x378d: 0x0001, 0x378e: 0x0001, 0x378f: 0x0001, 0x3790: 0x000c, 0x3791: 0x000c,\n\t0x3792: 0x000c, 0x3793: 0x000c, 0x3794: 0x000c, 0x3795: 0x000c, 0x3796: 0x000c, 0x3797: 0x0001,\n\t0x3798: 0x0001, 0x3799: 0x0001, 0x379a: 0x0001, 0x379b: 0x0001, 0x379c: 0x0001, 0x379d: 0x0001,\n\t0x379e: 0x0001, 0x379f: 0x0001, 0x37a0: 0x0001, 0x37a1: 0x0001, 0x37a2: 0x0001, 0x37a3: 0x0001,\n\t0x37a4: 0x0001, 0x37a5: 0x0001, 0x37a6: 0x0001, 0x37a7: 0x0001, 0x37a8: 0x0001, 0x37a9: 0x0001,\n\t0x37aa: 0x0001, 0x37ab: 0x0001, 0x37ac: 0x0001, 0x37ad: 0x0001, 0x37ae: 0x0001, 0x37af: 0x0001,\n\t0x37b0: 0x0001, 0x37b1: 0x0001, 0x37b2: 0x0001, 0x37b3: 0x0001, 0x37b4: 0x0001, 0x37b5: 0x0001,\n\t0x37b6: 0x0001, 0x37b7: 0x0001, 0x37b8: 0x0001, 0x37b9: 0x0001, 0x37ba: 0x0001, 0x37bb: 0x0001,\n\t0x37bc: 0x0001, 0x37bd: 0x0001, 0x37be: 0x0001, 0x37bf: 0x0001,\n\t// Block 0xdf, offset 0x37c0\n\t0x37c0: 0x0001, 0x37c1: 0x0001, 0x37c2: 0x0001, 0x37c3: 0x0001, 0x37c4: 0x000c, 0x37c5: 0x000c,\n\t0x37c6: 0x000c, 0x37c7: 0x000c, 0x37c8: 0x000c, 0x37c9: 0x000c, 0x37ca: 0x000c, 0x37cb: 0x0001,\n\t0x37cc: 0x0001, 0x37cd: 0x0001, 0x37ce: 0x0001, 0x37cf: 0x0001, 0x37d0: 0x0001, 0x37d1: 0x0001,\n\t0x37d2: 0x0001, 0x37d3: 0x0001, 0x37d4: 0x0001, 0x37d5: 0x0001, 0x37d6: 0x0001, 0x37d7: 0x0001,\n\t0x37d8: 0x0001, 0x37d9: 0x0001, 0x37da: 0x0001, 0x37db: 0x0001, 0x37dc: 0x0001, 0x37dd: 0x0001,\n\t0x37de: 0x0001, 0x37df: 0x0001, 0x37e0: 0x0001, 0x37e1: 0x0001, 0x37e2: 0x0001, 0x37e3: 0x0001,\n\t0x37e4: 0x0001, 0x37e5: 0x0001, 0x37e6: 0x0001, 0x37e7: 0x0001, 0x37e8: 0x0001, 0x37e9: 0x0001,\n\t0x37ea: 0x0001, 0x37eb: 0x0001, 0x37ec: 0x0001, 0x37ed: 0x0001, 0x37ee: 0x0001, 0x37ef: 0x0001,\n\t0x37f0: 0x0001, 0x37f1: 0x0001, 0x37f2: 0x0001, 0x37f3: 0x0001, 0x37f4: 0x0001, 0x37f5: 0x0001,\n\t0x37f6: 0x0001, 0x37f7: 0x0001, 0x37f8: 0x0001, 0x37f9: 0x0001, 0x37fa: 0x0001, 0x37fb: 0x0001,\n\t0x37fc: 0x0001, 0x37fd: 0x0001, 0x37fe: 0x0001, 0x37ff: 0x0001,\n\t// Block 0xe0, offset 0x3800\n\t0x3800: 0x000d, 0x3801: 0x000d, 0x3802: 0x000d, 0x3803: 0x000d, 0x3804: 0x000d, 0x3805: 0x000d,\n\t0x3806: 0x000d, 0x3807: 0x000d, 0x3808: 0x000d, 0x3809: 0x000d, 0x380a: 0x000d, 0x380b: 0x000d,\n\t0x380c: 0x000d, 0x380d: 0x000d, 0x380e: 0x000d, 0x380f: 0x000d, 0x3810: 0x0001, 0x3811: 0x0001,\n\t0x3812: 0x0001, 0x3813: 0x0001, 0x3814: 0x0001, 0x3815: 0x0001, 0x3816: 0x0001, 0x3817: 0x0001,\n\t0x3818: 0x0001, 0x3819: 0x0001, 0x381a: 0x0001, 0x381b: 0x0001, 0x381c: 0x0001, 0x381d: 0x0001,\n\t0x381e: 0x0001, 0x381f: 0x0001, 0x3820: 0x0001, 0x3821: 0x0001, 0x3822: 0x0001, 0x3823: 0x0001,\n\t0x3824: 0x0001, 0x3825: 0x0001, 0x3826: 0x0001, 0x3827: 0x0001, 0x3828: 0x0001, 0x3829: 0x0001,\n\t0x382a: 0x0001, 0x382b: 0x0001, 0x382c: 0x0001, 0x382d: 0x0001, 0x382e: 0x0001, 0x382f: 0x0001,\n\t0x3830: 0x0001, 0x3831: 0x0001, 0x3832: 0x0001, 0x3833: 0x0001, 0x3834: 0x0001, 0x3835: 0x0001,\n\t0x3836: 0x0001, 0x3837: 0x0001, 0x3838: 0x0001, 0x3839: 0x0001, 0x383a: 0x0001, 0x383b: 0x0001,\n\t0x383c: 0x0001, 0x383d: 0x0001, 0x383e: 0x0001, 0x383f: 0x0001,\n\t// Block 0xe1, offset 0x3840\n\t0x3840: 0x000d, 0x3841: 0x000d, 0x3842: 0x000d, 0x3843: 0x000d, 0x3844: 0x000d, 0x3845: 0x000d,\n\t0x3846: 0x000d, 0x3847: 0x000d, 0x3848: 0x000d, 0x3849: 0x000d, 0x384a: 0x000d, 0x384b: 0x000d,\n\t0x384c: 0x000d, 0x384d: 0x000d, 0x384e: 0x000d, 0x384f: 0x000d, 0x3850: 0x000d, 0x3851: 0x000d,\n\t0x3852: 0x000d, 0x3853: 0x000d, 0x3854: 0x000d, 0x3855: 0x000d, 0x3856: 0x000d, 0x3857: 0x000d,\n\t0x3858: 0x000d, 0x3859: 0x000d, 0x385a: 0x000d, 0x385b: 0x000d, 0x385c: 0x000d, 0x385d: 0x000d,\n\t0x385e: 0x000d, 0x385f: 0x000d, 0x3860: 0x000d, 0x3861: 0x000d, 0x3862: 0x000d, 0x3863: 0x000d,\n\t0x3864: 0x000d, 0x3865: 0x000d, 0x3866: 0x000d, 0x3867: 0x000d, 0x3868: 0x000d, 0x3869: 0x000d,\n\t0x386a: 0x000d, 0x386b: 0x000d, 0x386c: 0x000d, 0x386d: 0x000d, 0x386e: 0x000d, 0x386f: 0x000d,\n\t0x3870: 0x000a, 0x3871: 0x000a, 0x3872: 0x000d, 0x3873: 0x000d, 0x3874: 0x000d, 0x3875: 0x000d,\n\t0x3876: 0x000d, 0x3877: 0x000d, 0x3878: 0x000d, 0x3879: 0x000d, 0x387a: 0x000d, 0x387b: 0x000d,\n\t0x387c: 0x000d, 0x387d: 0x000d, 0x387e: 0x000d, 0x387f: 0x000d,\n\t// Block 0xe2, offset 0x3880\n\t0x3880: 0x000a, 0x3881: 0x000a, 0x3882: 0x000a, 0x3883: 0x000a, 0x3884: 0x000a, 0x3885: 0x000a,\n\t0x3886: 0x000a, 0x3887: 0x000a, 0x3888: 0x000a, 0x3889: 0x000a, 0x388a: 0x000a, 0x388b: 0x000a,\n\t0x388c: 0x000a, 0x388d: 0x000a, 0x388e: 0x000a, 0x388f: 0x000a, 0x3890: 0x000a, 0x3891: 0x000a,\n\t0x3892: 0x000a, 0x3893: 0x000a, 0x3894: 0x000a, 0x3895: 0x000a, 0x3896: 0x000a, 0x3897: 0x000a,\n\t0x3898: 0x000a, 0x3899: 0x000a, 0x389a: 0x000a, 0x389b: 0x000a, 0x389c: 0x000a, 0x389d: 0x000a,\n\t0x389e: 0x000a, 0x389f: 0x000a, 0x38a0: 0x000a, 0x38a1: 0x000a, 0x38a2: 0x000a, 0x38a3: 0x000a,\n\t0x38a4: 0x000a, 0x38a5: 0x000a, 0x38a6: 0x000a, 0x38a7: 0x000a, 0x38a8: 0x000a, 0x38a9: 0x000a,\n\t0x38aa: 0x000a, 0x38ab: 0x000a,\n\t0x38b0: 0x000a, 0x38b1: 0x000a, 0x38b2: 0x000a, 0x38b3: 0x000a, 0x38b4: 0x000a, 0x38b5: 0x000a,\n\t0x38b6: 0x000a, 0x38b7: 0x000a, 0x38b8: 0x000a, 0x38b9: 0x000a, 0x38ba: 0x000a, 0x38bb: 0x000a,\n\t0x38bc: 0x000a, 0x38bd: 0x000a, 0x38be: 0x000a, 0x38bf: 0x000a,\n\t// Block 0xe3, offset 0x38c0\n\t0x38c0: 0x000a, 0x38c1: 0x000a, 0x38c2: 0x000a, 0x38c3: 0x000a, 0x38c4: 0x000a, 0x38c5: 0x000a,\n\t0x38c6: 0x000a, 0x38c7: 0x000a, 0x38c8: 0x000a, 0x38c9: 0x000a, 0x38ca: 0x000a, 0x38cb: 0x000a,\n\t0x38cc: 0x000a, 0x38cd: 0x000a, 0x38ce: 0x000a, 0x38cf: 0x000a, 0x38d0: 0x000a, 0x38d1: 0x000a,\n\t0x38d2: 0x000a, 0x38d3: 0x000a,\n\t0x38e0: 0x000a, 0x38e1: 0x000a, 0x38e2: 0x000a, 0x38e3: 0x000a,\n\t0x38e4: 0x000a, 0x38e5: 0x000a, 0x38e6: 0x000a, 0x38e7: 0x000a, 0x38e8: 0x000a, 0x38e9: 0x000a,\n\t0x38ea: 0x000a, 0x38eb: 0x000a, 0x38ec: 0x000a, 0x38ed: 0x000a, 0x38ee: 0x000a,\n\t0x38f1: 0x000a, 0x38f2: 0x000a, 0x38f3: 0x000a, 0x38f4: 0x000a, 0x38f5: 0x000a,\n\t0x38f6: 0x000a, 0x38f7: 0x000a, 0x38f8: 0x000a, 0x38f9: 0x000a, 0x38fa: 0x000a, 0x38fb: 0x000a,\n\t0x38fc: 0x000a, 0x38fd: 0x000a, 0x38fe: 0x000a, 0x38ff: 0x000a,\n\t// Block 0xe4, offset 0x3900\n\t0x3901: 0x000a, 0x3902: 0x000a, 0x3903: 0x000a, 0x3904: 0x000a, 0x3905: 0x000a,\n\t0x3906: 0x000a, 0x3907: 0x000a, 0x3908: 0x000a, 0x3909: 0x000a, 0x390a: 0x000a, 0x390b: 0x000a,\n\t0x390c: 0x000a, 0x390d: 0x000a, 0x390e: 0x000a, 0x390f: 0x000a, 0x3911: 0x000a,\n\t0x3912: 0x000a, 0x3913: 0x000a, 0x3914: 0x000a, 0x3915: 0x000a, 0x3916: 0x000a, 0x3917: 0x000a,\n\t0x3918: 0x000a, 0x3919: 0x000a, 0x391a: 0x000a, 0x391b: 0x000a, 0x391c: 0x000a, 0x391d: 0x000a,\n\t0x391e: 0x000a, 0x391f: 0x000a, 0x3920: 0x000a, 0x3921: 0x000a, 0x3922: 0x000a, 0x3923: 0x000a,\n\t0x3924: 0x000a, 0x3925: 0x000a, 0x3926: 0x000a, 0x3927: 0x000a, 0x3928: 0x000a, 0x3929: 0x000a,\n\t0x392a: 0x000a, 0x392b: 0x000a, 0x392c: 0x000a, 0x392d: 0x000a, 0x392e: 0x000a, 0x392f: 0x000a,\n\t0x3930: 0x000a, 0x3931: 0x000a, 0x3932: 0x000a, 0x3933: 0x000a, 0x3934: 0x000a, 0x3935: 0x000a,\n\t// Block 0xe5, offset 0x3940\n\t0x3940: 0x0002, 0x3941: 0x0002, 0x3942: 0x0002, 0x3943: 0x0002, 0x3944: 0x0002, 0x3945: 0x0002,\n\t0x3946: 0x0002, 0x3947: 0x0002, 0x3948: 0x0002, 0x3949: 0x0002, 0x394a: 0x0002, 0x394b: 0x000a,\n\t0x394c: 0x000a, 0x394d: 0x000a, 0x394e: 0x000a, 0x394f: 0x000a,\n\t0x396f: 0x000a,\n\t// Block 0xe6, offset 0x3980\n\t0x39aa: 0x000a, 0x39ab: 0x000a, 0x39ac: 0x000a, 0x39ad: 0x000a, 0x39ae: 0x000a, 0x39af: 0x000a,\n\t// Block 0xe7, offset 0x39c0\n\t0x39ed: 0x000a,\n\t// Block 0xe8, offset 0x3a00\n\t0x3a20: 0x000a, 0x3a21: 0x000a, 0x3a22: 0x000a, 0x3a23: 0x000a,\n\t0x3a24: 0x000a, 0x3a25: 0x000a,\n\t// Block 0xe9, offset 0x3a40\n\t0x3a40: 0x000a, 0x3a41: 0x000a, 0x3a42: 0x000a, 0x3a43: 0x000a, 0x3a44: 0x000a, 0x3a45: 0x000a,\n\t0x3a46: 0x000a, 0x3a47: 0x000a, 0x3a48: 0x000a, 0x3a49: 0x000a, 0x3a4a: 0x000a, 0x3a4b: 0x000a,\n\t0x3a4c: 0x000a, 0x3a4d: 0x000a, 0x3a4e: 0x000a, 0x3a4f: 0x000a, 0x3a50: 0x000a, 0x3a51: 0x000a,\n\t0x3a52: 0x000a, 0x3a53: 0x000a, 0x3a54: 0x000a, 0x3a55: 0x000a, 0x3a56: 0x000a, 0x3a57: 0x000a,\n\t0x3a60: 0x000a, 0x3a61: 0x000a, 0x3a62: 0x000a, 0x3a63: 0x000a,\n\t0x3a64: 0x000a, 0x3a65: 0x000a, 0x3a66: 0x000a, 0x3a67: 0x000a, 0x3a68: 0x000a, 0x3a69: 0x000a,\n\t0x3a6a: 0x000a, 0x3a6b: 0x000a, 0x3a6c: 0x000a,\n\t0x3a70: 0x000a, 0x3a71: 0x000a, 0x3a72: 0x000a, 0x3a73: 0x000a, 0x3a74: 0x000a, 0x3a75: 0x000a,\n\t0x3a76: 0x000a, 0x3a77: 0x000a, 0x3a78: 0x000a, 0x3a79: 0x000a, 0x3a7a: 0x000a, 0x3a7b: 0x000a,\n\t0x3a7c: 0x000a,\n\t// Block 0xea, offset 0x3a80\n\t0x3a80: 0x000a, 0x3a81: 0x000a, 0x3a82: 0x000a, 0x3a83: 0x000a, 0x3a84: 0x000a, 0x3a85: 0x000a,\n\t0x3a86: 0x000a, 0x3a87: 0x000a, 0x3a88: 0x000a, 0x3a89: 0x000a, 0x3a8a: 0x000a, 0x3a8b: 0x000a,\n\t0x3a8c: 0x000a, 0x3a8d: 0x000a, 0x3a8e: 0x000a, 0x3a8f: 0x000a, 0x3a90: 0x000a, 0x3a91: 0x000a,\n\t0x3a92: 0x000a, 0x3a93: 0x000a, 0x3a94: 0x000a, 0x3a95: 0x000a, 0x3a96: 0x000a, 0x3a97: 0x000a,\n\t0x3a98: 0x000a,\n\t0x3aa0: 0x000a, 0x3aa1: 0x000a, 0x3aa2: 0x000a, 0x3aa3: 0x000a,\n\t0x3aa4: 0x000a, 0x3aa5: 0x000a, 0x3aa6: 0x000a, 0x3aa7: 0x000a, 0x3aa8: 0x000a, 0x3aa9: 0x000a,\n\t0x3aaa: 0x000a, 0x3aab: 0x000a,\n\t// Block 0xeb, offset 0x3ac0\n\t0x3ac0: 0x000a, 0x3ac1: 0x000a, 0x3ac2: 0x000a, 0x3ac3: 0x000a, 0x3ac4: 0x000a, 0x3ac5: 0x000a,\n\t0x3ac6: 0x000a, 0x3ac7: 0x000a, 0x3ac8: 0x000a, 0x3ac9: 0x000a, 0x3aca: 0x000a, 0x3acb: 0x000a,\n\t0x3ad0: 0x000a, 0x3ad1: 0x000a,\n\t0x3ad2: 0x000a, 0x3ad3: 0x000a, 0x3ad4: 0x000a, 0x3ad5: 0x000a, 0x3ad6: 0x000a, 0x3ad7: 0x000a,\n\t0x3ad8: 0x000a, 0x3ad9: 0x000a, 0x3ada: 0x000a, 0x3adb: 0x000a, 0x3adc: 0x000a, 0x3add: 0x000a,\n\t0x3ade: 0x000a, 0x3adf: 0x000a, 0x3ae0: 0x000a, 0x3ae1: 0x000a, 0x3ae2: 0x000a, 0x3ae3: 0x000a,\n\t0x3ae4: 0x000a, 0x3ae5: 0x000a, 0x3ae6: 0x000a, 0x3ae7: 0x000a, 0x3ae8: 0x000a, 0x3ae9: 0x000a,\n\t0x3aea: 0x000a, 0x3aeb: 0x000a, 0x3aec: 0x000a, 0x3aed: 0x000a, 0x3aee: 0x000a, 0x3aef: 0x000a,\n\t0x3af0: 0x000a, 0x3af1: 0x000a, 0x3af2: 0x000a, 0x3af3: 0x000a, 0x3af4: 0x000a, 0x3af5: 0x000a,\n\t0x3af6: 0x000a, 0x3af7: 0x000a, 0x3af8: 0x000a, 0x3af9: 0x000a, 0x3afa: 0x000a, 0x3afb: 0x000a,\n\t0x3afc: 0x000a, 0x3afd: 0x000a, 0x3afe: 0x000a, 0x3aff: 0x000a,\n\t// Block 0xec, offset 0x3b00\n\t0x3b00: 0x000a, 0x3b01: 0x000a, 0x3b02: 0x000a, 0x3b03: 0x000a, 0x3b04: 0x000a, 0x3b05: 0x000a,\n\t0x3b06: 0x000a, 0x3b07: 0x000a,\n\t0x3b10: 0x000a, 0x3b11: 0x000a,\n\t0x3b12: 0x000a, 0x3b13: 0x000a, 0x3b14: 0x000a, 0x3b15: 0x000a, 0x3b16: 0x000a, 0x3b17: 0x000a,\n\t0x3b18: 0x000a, 0x3b19: 0x000a,\n\t0x3b20: 0x000a, 0x3b21: 0x000a, 0x3b22: 0x000a, 0x3b23: 0x000a,\n\t0x3b24: 0x000a, 0x3b25: 0x000a, 0x3b26: 0x000a, 0x3b27: 0x000a, 0x3b28: 0x000a, 0x3b29: 0x000a,\n\t0x3b2a: 0x000a, 0x3b2b: 0x000a, 0x3b2c: 0x000a, 0x3b2d: 0x000a, 0x3b2e: 0x000a, 0x3b2f: 0x000a,\n\t0x3b30: 0x000a, 0x3b31: 0x000a, 0x3b32: 0x000a, 0x3b33: 0x000a, 0x3b34: 0x000a, 0x3b35: 0x000a,\n\t0x3b36: 0x000a, 0x3b37: 0x000a, 0x3b38: 0x000a, 0x3b39: 0x000a, 0x3b3a: 0x000a, 0x3b3b: 0x000a,\n\t0x3b3c: 0x000a, 0x3b3d: 0x000a, 0x3b3e: 0x000a, 0x3b3f: 0x000a,\n\t// Block 0xed, offset 0x3b40\n\t0x3b40: 0x000a, 0x3b41: 0x000a, 0x3b42: 0x000a, 0x3b43: 0x000a, 0x3b44: 0x000a, 0x3b45: 0x000a,\n\t0x3b46: 0x000a, 0x3b47: 0x000a,\n\t0x3b50: 0x000a, 0x3b51: 0x000a,\n\t0x3b52: 0x000a, 0x3b53: 0x000a, 0x3b54: 0x000a, 0x3b55: 0x000a, 0x3b56: 0x000a, 0x3b57: 0x000a,\n\t0x3b58: 0x000a, 0x3b59: 0x000a, 0x3b5a: 0x000a, 0x3b5b: 0x000a, 0x3b5c: 0x000a, 0x3b5d: 0x000a,\n\t0x3b5e: 0x000a, 0x3b5f: 0x000a, 0x3b60: 0x000a, 0x3b61: 0x000a, 0x3b62: 0x000a, 0x3b63: 0x000a,\n\t0x3b64: 0x000a, 0x3b65: 0x000a, 0x3b66: 0x000a, 0x3b67: 0x000a, 0x3b68: 0x000a, 0x3b69: 0x000a,\n\t0x3b6a: 0x000a, 0x3b6b: 0x000a, 0x3b6c: 0x000a, 0x3b6d: 0x000a,\n\t0x3b70: 0x000a, 0x3b71: 0x000a,\n\t// Block 0xee, offset 0x3b80\n\t0x3b80: 0x000a, 0x3b81: 0x000a, 0x3b82: 0x000a, 0x3b83: 0x000a, 0x3b84: 0x000a, 0x3b85: 0x000a,\n\t0x3b86: 0x000a, 0x3b87: 0x000a, 0x3b88: 0x000a, 0x3b89: 0x000a, 0x3b8a: 0x000a, 0x3b8b: 0x000a,\n\t0x3b8c: 0x000a, 0x3b8d: 0x000a, 0x3b8e: 0x000a, 0x3b8f: 0x000a, 0x3b90: 0x000a, 0x3b91: 0x000a,\n\t0x3b92: 0x000a, 0x3b93: 0x000a, 0x3b94: 0x000a, 0x3b95: 0x000a, 0x3b96: 0x000a, 0x3b97: 0x000a,\n\t0x3b98: 0x000a, 0x3b99: 0x000a, 0x3b9a: 0x000a, 0x3b9b: 0x000a, 0x3b9c: 0x000a, 0x3b9d: 0x000a,\n\t0x3b9e: 0x000a, 0x3b9f: 0x000a, 0x3ba0: 0x000a, 0x3ba1: 0x000a, 0x3ba2: 0x000a, 0x3ba3: 0x000a,\n\t0x3ba4: 0x000a, 0x3ba5: 0x000a, 0x3ba6: 0x000a, 0x3ba7: 0x000a, 0x3ba8: 0x000a, 0x3ba9: 0x000a,\n\t0x3baa: 0x000a, 0x3bab: 0x000a, 0x3bac: 0x000a, 0x3bad: 0x000a, 0x3bae: 0x000a, 0x3baf: 0x000a,\n\t0x3bb0: 0x000a, 0x3bb1: 0x000a, 0x3bb2: 0x000a, 0x3bb3: 0x000a, 0x3bb4: 0x000a, 0x3bb5: 0x000a,\n\t0x3bb6: 0x000a, 0x3bb7: 0x000a, 0x3bb8: 0x000a, 0x3bba: 0x000a, 0x3bbb: 0x000a,\n\t0x3bbc: 0x000a, 0x3bbd: 0x000a, 0x3bbe: 0x000a, 0x3bbf: 0x000a,\n\t// Block 0xef, offset 0x3bc0\n\t0x3bc0: 0x000a, 0x3bc1: 0x000a, 0x3bc2: 0x000a, 0x3bc3: 0x000a, 0x3bc4: 0x000a, 0x3bc5: 0x000a,\n\t0x3bc6: 0x000a, 0x3bc7: 0x000a, 0x3bc8: 0x000a, 0x3bc9: 0x000a, 0x3bca: 0x000a, 0x3bcb: 0x000a,\n\t0x3bcd: 0x000a, 0x3bce: 0x000a, 0x3bcf: 0x000a, 0x3bd0: 0x000a, 0x3bd1: 0x000a,\n\t0x3bd2: 0x000a, 0x3bd3: 0x000a, 0x3bd4: 0x000a, 0x3bd5: 0x000a, 0x3bd6: 0x000a, 0x3bd7: 0x000a,\n\t0x3bd8: 0x000a, 0x3bd9: 0x000a, 0x3bda: 0x000a, 0x3bdb: 0x000a, 0x3bdc: 0x000a, 0x3bdd: 0x000a,\n\t0x3bde: 0x000a, 0x3bdf: 0x000a, 0x3be0: 0x000a, 0x3be1: 0x000a, 0x3be2: 0x000a, 0x3be3: 0x000a,\n\t0x3be4: 0x000a, 0x3be5: 0x000a, 0x3be6: 0x000a, 0x3be7: 0x000a, 0x3be8: 0x000a, 0x3be9: 0x000a,\n\t0x3bea: 0x000a, 0x3beb: 0x000a, 0x3bec: 0x000a, 0x3bed: 0x000a, 0x3bee: 0x000a, 0x3bef: 0x000a,\n\t0x3bf0: 0x000a, 0x3bf1: 0x000a, 0x3bf2: 0x000a, 0x3bf3: 0x000a, 0x3bf4: 0x000a, 0x3bf5: 0x000a,\n\t0x3bf6: 0x000a, 0x3bf7: 0x000a, 0x3bf8: 0x000a, 0x3bf9: 0x000a, 0x3bfa: 0x000a, 0x3bfb: 0x000a,\n\t0x3bfc: 0x000a, 0x3bfd: 0x000a, 0x3bfe: 0x000a, 0x3bff: 0x000a,\n\t// Block 0xf0, offset 0x3c00\n\t0x3c00: 0x000a, 0x3c01: 0x000a, 0x3c02: 0x000a, 0x3c03: 0x000a, 0x3c04: 0x000a, 0x3c05: 0x000a,\n\t0x3c06: 0x000a, 0x3c07: 0x000a, 0x3c08: 0x000a, 0x3c09: 0x000a, 0x3c0a: 0x000a, 0x3c0b: 0x000a,\n\t0x3c0c: 0x000a, 0x3c0d: 0x000a, 0x3c0e: 0x000a, 0x3c0f: 0x000a, 0x3c10: 0x000a, 0x3c11: 0x000a,\n\t0x3c12: 0x000a, 0x3c13: 0x000a,\n\t0x3c20: 0x000a, 0x3c21: 0x000a, 0x3c22: 0x000a, 0x3c23: 0x000a,\n\t0x3c24: 0x000a, 0x3c25: 0x000a, 0x3c26: 0x000a, 0x3c27: 0x000a, 0x3c28: 0x000a, 0x3c29: 0x000a,\n\t0x3c2a: 0x000a, 0x3c2b: 0x000a, 0x3c2c: 0x000a, 0x3c2d: 0x000a,\n\t0x3c30: 0x000a, 0x3c31: 0x000a, 0x3c32: 0x000a, 0x3c33: 0x000a, 0x3c34: 0x000a,\n\t0x3c38: 0x000a, 0x3c39: 0x000a, 0x3c3a: 0x000a,\n\t// Block 0xf1, offset 0x3c40\n\t0x3c40: 0x000a, 0x3c41: 0x000a, 0x3c42: 0x000a, 0x3c43: 0x000a, 0x3c44: 0x000a, 0x3c45: 0x000a,\n\t0x3c46: 0x000a,\n\t0x3c50: 0x000a, 0x3c51: 0x000a,\n\t0x3c52: 0x000a, 0x3c53: 0x000a, 0x3c54: 0x000a, 0x3c55: 0x000a, 0x3c56: 0x000a, 0x3c57: 0x000a,\n\t0x3c58: 0x000a, 0x3c59: 0x000a, 0x3c5a: 0x000a, 0x3c5b: 0x000a, 0x3c5c: 0x000a, 0x3c5d: 0x000a,\n\t0x3c5e: 0x000a, 0x3c5f: 0x000a, 0x3c60: 0x000a, 0x3c61: 0x000a, 0x3c62: 0x000a, 0x3c63: 0x000a,\n\t0x3c64: 0x000a, 0x3c65: 0x000a, 0x3c66: 0x000a, 0x3c67: 0x000a, 0x3c68: 0x000a,\n\t0x3c70: 0x000a, 0x3c71: 0x000a, 0x3c72: 0x000a, 0x3c73: 0x000a, 0x3c74: 0x000a, 0x3c75: 0x000a,\n\t0x3c76: 0x000a,\n\t// Block 0xf2, offset 0x3c80\n\t0x3c80: 0x000a, 0x3c81: 0x000a, 0x3c82: 0x000a,\n\t0x3c90: 0x000a, 0x3c91: 0x000a,\n\t0x3c92: 0x000a, 0x3c93: 0x000a, 0x3c94: 0x000a, 0x3c95: 0x000a, 0x3c96: 0x000a,\n\t// Block 0xf3, offset 0x3cc0\n\t0x3cc0: 0x000a, 0x3cc1: 0x000a, 0x3cc2: 0x000a, 0x3cc3: 0x000a, 0x3cc4: 0x000a, 0x3cc5: 0x000a,\n\t0x3cc6: 0x000a, 0x3cc7: 0x000a, 0x3cc8: 0x000a, 0x3cc9: 0x000a, 0x3cca: 0x000a, 0x3ccb: 0x000a,\n\t0x3ccc: 0x000a, 0x3ccd: 0x000a, 0x3cce: 0x000a, 0x3ccf: 0x000a, 0x3cd0: 0x000a, 0x3cd1: 0x000a,\n\t0x3cd2: 0x000a, 0x3cd4: 0x000a, 0x3cd5: 0x000a, 0x3cd6: 0x000a, 0x3cd7: 0x000a,\n\t0x3cd8: 0x000a, 0x3cd9: 0x000a, 0x3cda: 0x000a, 0x3cdb: 0x000a, 0x3cdc: 0x000a, 0x3cdd: 0x000a,\n\t0x3cde: 0x000a, 0x3cdf: 0x000a, 0x3ce0: 0x000a, 0x3ce1: 0x000a, 0x3ce2: 0x000a, 0x3ce3: 0x000a,\n\t0x3ce4: 0x000a, 0x3ce5: 0x000a, 0x3ce6: 0x000a, 0x3ce7: 0x000a, 0x3ce8: 0x000a, 0x3ce9: 0x000a,\n\t0x3cea: 0x000a, 0x3ceb: 0x000a, 0x3cec: 0x000a, 0x3ced: 0x000a, 0x3cee: 0x000a, 0x3cef: 0x000a,\n\t0x3cf0: 0x000a, 0x3cf1: 0x000a, 0x3cf2: 0x000a, 0x3cf3: 0x000a, 0x3cf4: 0x000a, 0x3cf5: 0x000a,\n\t0x3cf6: 0x000a, 0x3cf7: 0x000a, 0x3cf8: 0x000a, 0x3cf9: 0x000a, 0x3cfa: 0x000a, 0x3cfb: 0x000a,\n\t0x3cfc: 0x000a, 0x3cfd: 0x000a, 0x3cfe: 0x000a, 0x3cff: 0x000a,\n\t// Block 0xf4, offset 0x3d00\n\t0x3d00: 0x000a, 0x3d01: 0x000a, 0x3d02: 0x000a, 0x3d03: 0x000a, 0x3d04: 0x000a, 0x3d05: 0x000a,\n\t0x3d06: 0x000a, 0x3d07: 0x000a, 0x3d08: 0x000a, 0x3d09: 0x000a, 0x3d0a: 0x000a,\n\t0x3d30: 0x0002, 0x3d31: 0x0002, 0x3d32: 0x0002, 0x3d33: 0x0002, 0x3d34: 0x0002, 0x3d35: 0x0002,\n\t0x3d36: 0x0002, 0x3d37: 0x0002, 0x3d38: 0x0002, 0x3d39: 0x0002,\n\t// Block 0xf5, offset 0x3d40\n\t0x3d7e: 0x000b, 0x3d7f: 0x000b,\n\t// Block 0xf6, offset 0x3d80\n\t0x3d80: 0x000b, 0x3d81: 0x000b, 0x3d82: 0x000b, 0x3d83: 0x000b, 0x3d84: 0x000b, 0x3d85: 0x000b,\n\t0x3d86: 0x000b, 0x3d87: 0x000b, 0x3d88: 0x000b, 0x3d89: 0x000b, 0x3d8a: 0x000b, 0x3d8b: 0x000b,\n\t0x3d8c: 0x000b, 0x3d8d: 0x000b, 0x3d8e: 0x000b, 0x3d8f: 0x000b, 0x3d90: 0x000b, 0x3d91: 0x000b,\n\t0x3d92: 0x000b, 0x3d93: 0x000b, 0x3d94: 0x000b, 0x3d95: 0x000b, 0x3d96: 0x000b, 0x3d97: 0x000b,\n\t0x3d98: 0x000b, 0x3d99: 0x000b, 0x3d9a: 0x000b, 0x3d9b: 0x000b, 0x3d9c: 0x000b, 0x3d9d: 0x000b,\n\t0x3d9e: 0x000b, 0x3d9f: 0x000b, 0x3da0: 0x000b, 0x3da1: 0x000b, 0x3da2: 0x000b, 0x3da3: 0x000b,\n\t0x3da4: 0x000b, 0x3da5: 0x000b, 0x3da6: 0x000b, 0x3da7: 0x000b, 0x3da8: 0x000b, 0x3da9: 0x000b,\n\t0x3daa: 0x000b, 0x3dab: 0x000b, 0x3dac: 0x000b, 0x3dad: 0x000b, 0x3dae: 0x000b, 0x3daf: 0x000b,\n\t0x3db0: 0x000b, 0x3db1: 0x000b, 0x3db2: 0x000b, 0x3db3: 0x000b, 0x3db4: 0x000b, 0x3db5: 0x000b,\n\t0x3db6: 0x000b, 0x3db7: 0x000b, 0x3db8: 0x000b, 0x3db9: 0x000b, 0x3dba: 0x000b, 0x3dbb: 0x000b,\n\t0x3dbc: 0x000b, 0x3dbd: 0x000b, 0x3dbe: 0x000b, 0x3dbf: 0x000b,\n\t// Block 0xf7, offset 0x3dc0\n\t0x3dc0: 0x000c, 0x3dc1: 0x000c, 0x3dc2: 0x000c, 0x3dc3: 0x000c, 0x3dc4: 0x000c, 0x3dc5: 0x000c,\n\t0x3dc6: 0x000c, 0x3dc7: 0x000c, 0x3dc8: 0x000c, 0x3dc9: 0x000c, 0x3dca: 0x000c, 0x3dcb: 0x000c,\n\t0x3dcc: 0x000c, 0x3dcd: 0x000c, 0x3dce: 0x000c, 0x3dcf: 0x000c, 0x3dd0: 0x000c, 0x3dd1: 0x000c,\n\t0x3dd2: 0x000c, 0x3dd3: 0x000c, 0x3dd4: 0x000c, 0x3dd5: 0x000c, 0x3dd6: 0x000c, 0x3dd7: 0x000c,\n\t0x3dd8: 0x000c, 0x3dd9: 0x000c, 0x3dda: 0x000c, 0x3ddb: 0x000c, 0x3ddc: 0x000c, 0x3ddd: 0x000c,\n\t0x3dde: 0x000c, 0x3ddf: 0x000c, 0x3de0: 0x000c, 0x3de1: 0x000c, 0x3de2: 0x000c, 0x3de3: 0x000c,\n\t0x3de4: 0x000c, 0x3de5: 0x000c, 0x3de6: 0x000c, 0x3de7: 0x000c, 0x3de8: 0x000c, 0x3de9: 0x000c,\n\t0x3dea: 0x000c, 0x3deb: 0x000c, 0x3dec: 0x000c, 0x3ded: 0x000c, 0x3dee: 0x000c, 0x3def: 0x000c,\n\t0x3df0: 0x000b, 0x3df1: 0x000b, 0x3df2: 0x000b, 0x3df3: 0x000b, 0x3df4: 0x000b, 0x3df5: 0x000b,\n\t0x3df6: 0x000b, 0x3df7: 0x000b, 0x3df8: 0x000b, 0x3df9: 0x000b, 0x3dfa: 0x000b, 0x3dfb: 0x000b,\n\t0x3dfc: 0x000b, 0x3dfd: 0x000b, 0x3dfe: 0x000b, 0x3dff: 0x000b,\n}\n\n// bidiIndex: 24 blocks, 1536 entries, 1536 bytes\n// Block 0 is the zero block.\nvar bidiIndex = [1536]uint8{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x01, 0xc3: 0x02,\n\t0xca: 0x03, 0xcb: 0x04, 0xcc: 0x05, 0xcd: 0x06, 0xce: 0x07, 0xcf: 0x08,\n\t0xd2: 0x09, 0xd6: 0x0a, 0xd7: 0x0b,\n\t0xd8: 0x0c, 0xd9: 0x0d, 0xda: 0x0e, 0xdb: 0x0f, 0xdc: 0x10, 0xdd: 0x11, 0xde: 0x12, 0xdf: 0x13,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06,\n\t0xea: 0x07, 0xef: 0x08,\n\t0xf0: 0x11, 0xf1: 0x12, 0xf2: 0x12, 0xf3: 0x14, 0xf4: 0x15,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x14, 0x121: 0x15, 0x122: 0x16, 0x123: 0x17, 0x124: 0x18, 0x125: 0x19, 0x126: 0x1a, 0x127: 0x1b,\n\t0x128: 0x1c, 0x129: 0x1d, 0x12a: 0x1c, 0x12b: 0x1e, 0x12c: 0x1f, 0x12d: 0x20, 0x12e: 0x21, 0x12f: 0x22,\n\t0x130: 0x23, 0x131: 0x24, 0x132: 0x1a, 0x133: 0x25, 0x134: 0x26, 0x135: 0x27, 0x136: 0x28, 0x137: 0x29,\n\t0x138: 0x2a, 0x139: 0x2b, 0x13a: 0x2c, 0x13b: 0x2d, 0x13c: 0x2e, 0x13d: 0x2f, 0x13e: 0x30, 0x13f: 0x31,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x32, 0x141: 0x33, 0x142: 0x34,\n\t0x14d: 0x35, 0x14e: 0x36,\n\t0x150: 0x37,\n\t0x15a: 0x38, 0x15c: 0x39, 0x15d: 0x3a, 0x15e: 0x3b, 0x15f: 0x3c,\n\t0x160: 0x3d, 0x162: 0x3e, 0x164: 0x3f, 0x165: 0x40, 0x167: 0x41,\n\t0x168: 0x42, 0x169: 0x43, 0x16a: 0x44, 0x16b: 0x45, 0x16c: 0x46, 0x16d: 0x47, 0x16e: 0x48, 0x16f: 0x49,\n\t0x170: 0x4a, 0x173: 0x4b, 0x177: 0x4c,\n\t0x17e: 0x4d, 0x17f: 0x4e,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x4f, 0x181: 0x50, 0x182: 0x51, 0x183: 0x52, 0x184: 0x53, 0x185: 0x54, 0x186: 0x55, 0x187: 0x56,\n\t0x188: 0x57, 0x189: 0x56, 0x18a: 0x56, 0x18b: 0x56, 0x18c: 0x58, 0x18d: 0x59, 0x18e: 0x5a, 0x18f: 0x56,\n\t0x190: 0x5b, 0x191: 0x5c, 0x192: 0x5d, 0x193: 0x5e, 0x194: 0x56, 0x195: 0x56, 0x196: 0x56, 0x197: 0x56,\n\t0x198: 0x56, 0x199: 0x56, 0x19a: 0x5f, 0x19b: 0x56, 0x19c: 0x56, 0x19d: 0x60, 0x19e: 0x56, 0x19f: 0x61,\n\t0x1a4: 0x56, 0x1a5: 0x56, 0x1a6: 0x62, 0x1a7: 0x63,\n\t0x1a8: 0x56, 0x1a9: 0x56, 0x1aa: 0x56, 0x1ab: 0x56, 0x1ac: 0x56, 0x1ad: 0x64, 0x1ae: 0x65, 0x1af: 0x56,\n\t0x1b3: 0x66, 0x1b5: 0x67, 0x1b7: 0x68,\n\t0x1b8: 0x69, 0x1b9: 0x6a, 0x1ba: 0x6b, 0x1bb: 0x6c, 0x1bc: 0x56, 0x1bd: 0x56, 0x1be: 0x56, 0x1bf: 0x6d,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x6e, 0x1c2: 0x6f, 0x1c3: 0x70, 0x1c7: 0x71,\n\t0x1c8: 0x72, 0x1c9: 0x73, 0x1ca: 0x74, 0x1cb: 0x75, 0x1cd: 0x76, 0x1cf: 0x77,\n\t// Block 0x8, offset 0x200\n\t0x237: 0x56,\n\t// Block 0x9, offset 0x240\n\t0x252: 0x78, 0x253: 0x79,\n\t0x258: 0x7a, 0x259: 0x7b, 0x25a: 0x7c, 0x25b: 0x7d, 0x25c: 0x7e, 0x25e: 0x7f,\n\t0x260: 0x80, 0x261: 0x81, 0x263: 0x82, 0x264: 0x83, 0x265: 0x84, 0x266: 0x85, 0x267: 0x86,\n\t0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26d: 0x8b, 0x26f: 0x8c,\n\t// Block 0xa, offset 0x280\n\t0x2ac: 0x8d, 0x2ad: 0x8e, 0x2ae: 0x0e, 0x2af: 0x0e,\n\t0x2b0: 0x0e, 0x2b1: 0x0e, 0x2b2: 0x0e, 0x2b3: 0x0e, 0x2b4: 0x8f, 0x2b5: 0x0e, 0x2b6: 0x0e, 0x2b7: 0x90,\n\t0x2b8: 0x91, 0x2b9: 0x92, 0x2ba: 0x0e, 0x2bb: 0x93, 0x2bc: 0x94, 0x2bd: 0x95, 0x2bf: 0x96,\n\t// Block 0xb, offset 0x2c0\n\t0x2c4: 0x97, 0x2c5: 0x56, 0x2c6: 0x98, 0x2c7: 0x99,\n\t0x2cb: 0x9a, 0x2cd: 0x9b,\n\t0x2e0: 0x9c, 0x2e1: 0x9c, 0x2e2: 0x9c, 0x2e3: 0x9c, 0x2e4: 0x9d, 0x2e5: 0x9c, 0x2e6: 0x9c, 0x2e7: 0x9c,\n\t0x2e8: 0x9e, 0x2e9: 0x9c, 0x2ea: 0x9c, 0x2eb: 0x9f, 0x2ec: 0xa0, 0x2ed: 0x9c, 0x2ee: 0x9c, 0x2ef: 0x9c,\n\t0x2f0: 0x9c, 0x2f1: 0x9c, 0x2f2: 0x9c, 0x2f3: 0x9c, 0x2f4: 0xa1, 0x2f5: 0x9c, 0x2f6: 0x9c, 0x2f7: 0x9c,\n\t0x2f8: 0x9c, 0x2f9: 0xa2, 0x2fa: 0xa3, 0x2fb: 0x9c, 0x2fc: 0xa4, 0x2fd: 0xa5, 0x2fe: 0x9c, 0x2ff: 0x9c,\n\t// Block 0xc, offset 0x300\n\t0x300: 0xa6, 0x301: 0xa7, 0x302: 0xa8, 0x304: 0xa9, 0x305: 0xaa, 0x306: 0xab, 0x307: 0xac,\n\t0x308: 0xad, 0x30b: 0xae, 0x30c: 0x26, 0x30d: 0xaf,\n\t0x310: 0xb0, 0x311: 0xb1, 0x312: 0xb2, 0x313: 0xb3, 0x316: 0xb4, 0x317: 0xb5,\n\t0x318: 0xb6, 0x319: 0xb7, 0x31a: 0xb8, 0x31c: 0xb9,\n\t0x320: 0xba, 0x324: 0xbb, 0x325: 0xbc, 0x327: 0xbd,\n\t0x328: 0xbe, 0x329: 0xbf, 0x32a: 0xc0,\n\t0x330: 0xc1, 0x332: 0xc2, 0x334: 0xc3, 0x335: 0xc4, 0x336: 0xc5,\n\t0x33b: 0xc6, 0x33f: 0xc7,\n\t// Block 0xd, offset 0x340\n\t0x36b: 0xc8, 0x36c: 0xc9,\n\t0x37d: 0xca, 0x37e: 0xcb, 0x37f: 0xcc,\n\t// Block 0xe, offset 0x380\n\t0x3b2: 0xcd,\n\t// Block 0xf, offset 0x3c0\n\t0x3c5: 0xce, 0x3c6: 0xcf,\n\t0x3c8: 0x56, 0x3c9: 0xd0, 0x3cc: 0x56, 0x3cd: 0xd1,\n\t0x3db: 0xd2, 0x3dc: 0xd3, 0x3dd: 0xd4, 0x3de: 0xd5, 0x3df: 0xd6,\n\t0x3e8: 0xd7, 0x3e9: 0xd8, 0x3ea: 0xd9,\n\t// Block 0x10, offset 0x400\n\t0x400: 0xda, 0x404: 0xc9,\n\t0x40b: 0xdb,\n\t0x420: 0x9c, 0x421: 0x9c, 0x422: 0x9c, 0x423: 0xdc, 0x424: 0x9c, 0x425: 0xdd, 0x426: 0x9c, 0x427: 0x9c,\n\t0x428: 0x9c, 0x429: 0x9c, 0x42a: 0x9c, 0x42b: 0x9c, 0x42c: 0x9c, 0x42d: 0x9c, 0x42e: 0x9c, 0x42f: 0x9c,\n\t0x430: 0x9c, 0x431: 0xa4, 0x432: 0x0e, 0x433: 0x9c, 0x434: 0x0e, 0x435: 0xde, 0x436: 0x9c, 0x437: 0x9c,\n\t0x438: 0x0e, 0x439: 0x0e, 0x43a: 0x0e, 0x43b: 0xdf, 0x43c: 0x9c, 0x43d: 0x9c, 0x43e: 0x9c, 0x43f: 0x9c,\n\t// Block 0x11, offset 0x440\n\t0x440: 0xe0, 0x441: 0x56, 0x442: 0xe1, 0x443: 0xe2, 0x444: 0xe3, 0x445: 0xe4, 0x446: 0xe5,\n\t0x449: 0xe6, 0x44c: 0x56, 0x44d: 0x56, 0x44e: 0x56, 0x44f: 0x56,\n\t0x450: 0x56, 0x451: 0x56, 0x452: 0x56, 0x453: 0x56, 0x454: 0x56, 0x455: 0x56, 0x456: 0x56, 0x457: 0x56,\n\t0x458: 0x56, 0x459: 0x56, 0x45a: 0x56, 0x45b: 0xe7, 0x45c: 0x56, 0x45d: 0x6c, 0x45e: 0x56, 0x45f: 0xe8,\n\t0x460: 0xe9, 0x461: 0xea, 0x462: 0xeb, 0x464: 0x56, 0x465: 0xec, 0x466: 0x56, 0x467: 0xed,\n\t0x468: 0x56, 0x469: 0xee, 0x46a: 0xef, 0x46b: 0xf0, 0x46c: 0x56, 0x46d: 0x56, 0x46e: 0xf1, 0x46f: 0xf2,\n\t0x47f: 0xf3,\n\t// Block 0x12, offset 0x480\n\t0x4bf: 0xf3,\n\t// Block 0x13, offset 0x4c0\n\t0x4d0: 0x09, 0x4d1: 0x0a, 0x4d6: 0x0b,\n\t0x4db: 0x0c, 0x4dd: 0x0d, 0x4de: 0x0e, 0x4df: 0x0f,\n\t0x4ef: 0x10,\n\t0x4ff: 0x10,\n\t// Block 0x14, offset 0x500\n\t0x50f: 0x10,\n\t0x51f: 0x10,\n\t0x52f: 0x10,\n\t0x53f: 0x10,\n\t// Block 0x15, offset 0x540\n\t0x540: 0xf4, 0x541: 0xf4, 0x542: 0xf4, 0x543: 0xf4, 0x544: 0x05, 0x545: 0x05, 0x546: 0x05, 0x547: 0xf5,\n\t0x548: 0xf4, 0x549: 0xf4, 0x54a: 0xf4, 0x54b: 0xf4, 0x54c: 0xf4, 0x54d: 0xf4, 0x54e: 0xf4, 0x54f: 0xf4,\n\t0x550: 0xf4, 0x551: 0xf4, 0x552: 0xf4, 0x553: 0xf4, 0x554: 0xf4, 0x555: 0xf4, 0x556: 0xf4, 0x557: 0xf4,\n\t0x558: 0xf4, 0x559: 0xf4, 0x55a: 0xf4, 0x55b: 0xf4, 0x55c: 0xf4, 0x55d: 0xf4, 0x55e: 0xf4, 0x55f: 0xf4,\n\t0x560: 0xf4, 0x561: 0xf4, 0x562: 0xf4, 0x563: 0xf4, 0x564: 0xf4, 0x565: 0xf4, 0x566: 0xf4, 0x567: 0xf4,\n\t0x568: 0xf4, 0x569: 0xf4, 0x56a: 0xf4, 0x56b: 0xf4, 0x56c: 0xf4, 0x56d: 0xf4, 0x56e: 0xf4, 0x56f: 0xf4,\n\t0x570: 0xf4, 0x571: 0xf4, 0x572: 0xf4, 0x573: 0xf4, 0x574: 0xf4, 0x575: 0xf4, 0x576: 0xf4, 0x577: 0xf4,\n\t0x578: 0xf4, 0x579: 0xf4, 0x57a: 0xf4, 0x57b: 0xf4, 0x57c: 0xf4, 0x57d: 0xf4, 0x57e: 0xf4, 0x57f: 0xf4,\n\t// Block 0x16, offset 0x580\n\t0x58f: 0x10,\n\t0x59f: 0x10,\n\t0x5a0: 0x13,\n\t0x5af: 0x10,\n\t0x5bf: 0x10,\n\t// Block 0x17, offset 0x5c0\n\t0x5cf: 0x10,\n}\n\n// Total table size 17464 bytes (17KiB); checksum: F50EF68C\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/bidi/tables15.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n//go:build go1.21\n\npackage bidi\n\n// UnicodeVersion is the Unicode version from which the tables in this package are derived.\nconst UnicodeVersion = \"15.0.0\"\n\n// xorMasks contains masks to be xor-ed with brackets to get the reverse\n// version.\nvar xorMasks = []int32{ // 8 elements\n\t0, 1, 6, 7, 3, 15, 29, 63,\n} // Size: 56 bytes\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *bidiTrie) lookup(s []byte) (v uint8, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn bidiValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = bidiIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *bidiTrie) lookupUnsafe(s []byte) uint8 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn bidiValues[c0]\n\t}\n\ti := bidiIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *bidiTrie) lookupString(s string) (v uint8, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn bidiValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = bidiIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *bidiTrie) lookupStringUnsafe(s string) uint8 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn bidiValues[c0]\n\t}\n\ti := bidiIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// bidiTrie. Total size: 19904 bytes (19.44 KiB). Checksum: b1f201ed2debb6c8.\ntype bidiTrie struct{}\n\nfunc newBidiTrie(i int) *bidiTrie {\n\treturn &bidiTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *bidiTrie) lookupValue(n uint32, b byte) uint8 {\n\tswitch {\n\tdefault:\n\t\treturn uint8(bidiValues[n<<6+uint32(b)])\n\t}\n}\n\n// bidiValues: 259 blocks, 16576 entries, 16576 bytes\n// The third block is the zero block.\nvar bidiValues = [16576]uint8{\n\t// Block 0x0, offset 0x0\n\t0x00: 0x000b, 0x01: 0x000b, 0x02: 0x000b, 0x03: 0x000b, 0x04: 0x000b, 0x05: 0x000b,\n\t0x06: 0x000b, 0x07: 0x000b, 0x08: 0x000b, 0x09: 0x0008, 0x0a: 0x0007, 0x0b: 0x0008,\n\t0x0c: 0x0009, 0x0d: 0x0007, 0x0e: 0x000b, 0x0f: 0x000b, 0x10: 0x000b, 0x11: 0x000b,\n\t0x12: 0x000b, 0x13: 0x000b, 0x14: 0x000b, 0x15: 0x000b, 0x16: 0x000b, 0x17: 0x000b,\n\t0x18: 0x000b, 0x19: 0x000b, 0x1a: 0x000b, 0x1b: 0x000b, 0x1c: 0x0007, 0x1d: 0x0007,\n\t0x1e: 0x0007, 0x1f: 0x0008, 0x20: 0x0009, 0x21: 0x000a, 0x22: 0x000a, 0x23: 0x0004,\n\t0x24: 0x0004, 0x25: 0x0004, 0x26: 0x000a, 0x27: 0x000a, 0x28: 0x003a, 0x29: 0x002a,\n\t0x2a: 0x000a, 0x2b: 0x0003, 0x2c: 0x0006, 0x2d: 0x0003, 0x2e: 0x0006, 0x2f: 0x0006,\n\t0x30: 0x0002, 0x31: 0x0002, 0x32: 0x0002, 0x33: 0x0002, 0x34: 0x0002, 0x35: 0x0002,\n\t0x36: 0x0002, 0x37: 0x0002, 0x38: 0x0002, 0x39: 0x0002, 0x3a: 0x0006, 0x3b: 0x000a,\n\t0x3c: 0x000a, 0x3d: 0x000a, 0x3e: 0x000a, 0x3f: 0x000a,\n\t// Block 0x1, offset 0x40\n\t0x40: 0x000a,\n\t0x5b: 0x005a, 0x5c: 0x000a, 0x5d: 0x004a,\n\t0x5e: 0x000a, 0x5f: 0x000a, 0x60: 0x000a,\n\t0x7b: 0x005a,\n\t0x7c: 0x000a, 0x7d: 0x004a, 0x7e: 0x000a, 0x7f: 0x000b,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x000b, 0xc1: 0x000b, 0xc2: 0x000b, 0xc3: 0x000b, 0xc4: 0x000b, 0xc5: 0x0007,\n\t0xc6: 0x000b, 0xc7: 0x000b, 0xc8: 0x000b, 0xc9: 0x000b, 0xca: 0x000b, 0xcb: 0x000b,\n\t0xcc: 0x000b, 0xcd: 0x000b, 0xce: 0x000b, 0xcf: 0x000b, 0xd0: 0x000b, 0xd1: 0x000b,\n\t0xd2: 0x000b, 0xd3: 0x000b, 0xd4: 0x000b, 0xd5: 0x000b, 0xd6: 0x000b, 0xd7: 0x000b,\n\t0xd8: 0x000b, 0xd9: 0x000b, 0xda: 0x000b, 0xdb: 0x000b, 0xdc: 0x000b, 0xdd: 0x000b,\n\t0xde: 0x000b, 0xdf: 0x000b, 0xe0: 0x0006, 0xe1: 0x000a, 0xe2: 0x0004, 0xe3: 0x0004,\n\t0xe4: 0x0004, 0xe5: 0x0004, 0xe6: 0x000a, 0xe7: 0x000a, 0xe8: 0x000a, 0xe9: 0x000a,\n\t0xeb: 0x000a, 0xec: 0x000a, 0xed: 0x000b, 0xee: 0x000a, 0xef: 0x000a,\n\t0xf0: 0x0004, 0xf1: 0x0004, 0xf2: 0x0002, 0xf3: 0x0002, 0xf4: 0x000a,\n\t0xf6: 0x000a, 0xf7: 0x000a, 0xf8: 0x000a, 0xf9: 0x0002, 0xfb: 0x000a,\n\t0xfc: 0x000a, 0xfd: 0x000a, 0xfe: 0x000a, 0xff: 0x000a,\n\t// Block 0x4, offset 0x100\n\t0x117: 0x000a,\n\t0x137: 0x000a,\n\t// Block 0x5, offset 0x140\n\t0x179: 0x000a, 0x17a: 0x000a,\n\t// Block 0x6, offset 0x180\n\t0x182: 0x000a, 0x183: 0x000a, 0x184: 0x000a, 0x185: 0x000a,\n\t0x186: 0x000a, 0x187: 0x000a, 0x188: 0x000a, 0x189: 0x000a, 0x18a: 0x000a, 0x18b: 0x000a,\n\t0x18c: 0x000a, 0x18d: 0x000a, 0x18e: 0x000a, 0x18f: 0x000a,\n\t0x192: 0x000a, 0x193: 0x000a, 0x194: 0x000a, 0x195: 0x000a, 0x196: 0x000a, 0x197: 0x000a,\n\t0x198: 0x000a, 0x199: 0x000a, 0x19a: 0x000a, 0x19b: 0x000a, 0x19c: 0x000a, 0x19d: 0x000a,\n\t0x19e: 0x000a, 0x19f: 0x000a,\n\t0x1a5: 0x000a, 0x1a6: 0x000a, 0x1a7: 0x000a, 0x1a8: 0x000a, 0x1a9: 0x000a,\n\t0x1aa: 0x000a, 0x1ab: 0x000a, 0x1ac: 0x000a, 0x1ad: 0x000a, 0x1af: 0x000a,\n\t0x1b0: 0x000a, 0x1b1: 0x000a, 0x1b2: 0x000a, 0x1b3: 0x000a, 0x1b4: 0x000a, 0x1b5: 0x000a,\n\t0x1b6: 0x000a, 0x1b7: 0x000a, 0x1b8: 0x000a, 0x1b9: 0x000a, 0x1ba: 0x000a, 0x1bb: 0x000a,\n\t0x1bc: 0x000a, 0x1bd: 0x000a, 0x1be: 0x000a, 0x1bf: 0x000a,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x000c, 0x1c1: 0x000c, 0x1c2: 0x000c, 0x1c3: 0x000c, 0x1c4: 0x000c, 0x1c5: 0x000c,\n\t0x1c6: 0x000c, 0x1c7: 0x000c, 0x1c8: 0x000c, 0x1c9: 0x000c, 0x1ca: 0x000c, 0x1cb: 0x000c,\n\t0x1cc: 0x000c, 0x1cd: 0x000c, 0x1ce: 0x000c, 0x1cf: 0x000c, 0x1d0: 0x000c, 0x1d1: 0x000c,\n\t0x1d2: 0x000c, 0x1d3: 0x000c, 0x1d4: 0x000c, 0x1d5: 0x000c, 0x1d6: 0x000c, 0x1d7: 0x000c,\n\t0x1d8: 0x000c, 0x1d9: 0x000c, 0x1da: 0x000c, 0x1db: 0x000c, 0x1dc: 0x000c, 0x1dd: 0x000c,\n\t0x1de: 0x000c, 0x1df: 0x000c, 0x1e0: 0x000c, 0x1e1: 0x000c, 0x1e2: 0x000c, 0x1e3: 0x000c,\n\t0x1e4: 0x000c, 0x1e5: 0x000c, 0x1e6: 0x000c, 0x1e7: 0x000c, 0x1e8: 0x000c, 0x1e9: 0x000c,\n\t0x1ea: 0x000c, 0x1eb: 0x000c, 0x1ec: 0x000c, 0x1ed: 0x000c, 0x1ee: 0x000c, 0x1ef: 0x000c,\n\t0x1f0: 0x000c, 0x1f1: 0x000c, 0x1f2: 0x000c, 0x1f3: 0x000c, 0x1f4: 0x000c, 0x1f5: 0x000c,\n\t0x1f6: 0x000c, 0x1f7: 0x000c, 0x1f8: 0x000c, 0x1f9: 0x000c, 0x1fa: 0x000c, 0x1fb: 0x000c,\n\t0x1fc: 0x000c, 0x1fd: 0x000c, 0x1fe: 0x000c, 0x1ff: 0x000c,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x000c, 0x201: 0x000c, 0x202: 0x000c, 0x203: 0x000c, 0x204: 0x000c, 0x205: 0x000c,\n\t0x206: 0x000c, 0x207: 0x000c, 0x208: 0x000c, 0x209: 0x000c, 0x20a: 0x000c, 0x20b: 0x000c,\n\t0x20c: 0x000c, 0x20d: 0x000c, 0x20e: 0x000c, 0x20f: 0x000c, 0x210: 0x000c, 0x211: 0x000c,\n\t0x212: 0x000c, 0x213: 0x000c, 0x214: 0x000c, 0x215: 0x000c, 0x216: 0x000c, 0x217: 0x000c,\n\t0x218: 0x000c, 0x219: 0x000c, 0x21a: 0x000c, 0x21b: 0x000c, 0x21c: 0x000c, 0x21d: 0x000c,\n\t0x21e: 0x000c, 0x21f: 0x000c, 0x220: 0x000c, 0x221: 0x000c, 0x222: 0x000c, 0x223: 0x000c,\n\t0x224: 0x000c, 0x225: 0x000c, 0x226: 0x000c, 0x227: 0x000c, 0x228: 0x000c, 0x229: 0x000c,\n\t0x22a: 0x000c, 0x22b: 0x000c, 0x22c: 0x000c, 0x22d: 0x000c, 0x22e: 0x000c, 0x22f: 0x000c,\n\t0x234: 0x000a, 0x235: 0x000a,\n\t0x23e: 0x000a,\n\t// Block 0x9, offset 0x240\n\t0x244: 0x000a, 0x245: 0x000a,\n\t0x247: 0x000a,\n\t// Block 0xa, offset 0x280\n\t0x2b6: 0x000a,\n\t// Block 0xb, offset 0x2c0\n\t0x2c3: 0x000c, 0x2c4: 0x000c, 0x2c5: 0x000c,\n\t0x2c6: 0x000c, 0x2c7: 0x000c, 0x2c8: 0x000c, 0x2c9: 0x000c,\n\t// Block 0xc, offset 0x300\n\t0x30a: 0x000a,\n\t0x30d: 0x000a, 0x30e: 0x000a, 0x30f: 0x0004, 0x310: 0x0001, 0x311: 0x000c,\n\t0x312: 0x000c, 0x313: 0x000c, 0x314: 0x000c, 0x315: 0x000c, 0x316: 0x000c, 0x317: 0x000c,\n\t0x318: 0x000c, 0x319: 0x000c, 0x31a: 0x000c, 0x31b: 0x000c, 0x31c: 0x000c, 0x31d: 0x000c,\n\t0x31e: 0x000c, 0x31f: 0x000c, 0x320: 0x000c, 0x321: 0x000c, 0x322: 0x000c, 0x323: 0x000c,\n\t0x324: 0x000c, 0x325: 0x000c, 0x326: 0x000c, 0x327: 0x000c, 0x328: 0x000c, 0x329: 0x000c,\n\t0x32a: 0x000c, 0x32b: 0x000c, 0x32c: 0x000c, 0x32d: 0x000c, 0x32e: 0x000c, 0x32f: 0x000c,\n\t0x330: 0x000c, 0x331: 0x000c, 0x332: 0x000c, 0x333: 0x000c, 0x334: 0x000c, 0x335: 0x000c,\n\t0x336: 0x000c, 0x337: 0x000c, 0x338: 0x000c, 0x339: 0x000c, 0x33a: 0x000c, 0x33b: 0x000c,\n\t0x33c: 0x000c, 0x33d: 0x000c, 0x33e: 0x0001, 0x33f: 0x000c,\n\t// Block 0xd, offset 0x340\n\t0x340: 0x0001, 0x341: 0x000c, 0x342: 0x000c, 0x343: 0x0001, 0x344: 0x000c, 0x345: 0x000c,\n\t0x346: 0x0001, 0x347: 0x000c, 0x348: 0x0001, 0x349: 0x0001, 0x34a: 0x0001, 0x34b: 0x0001,\n\t0x34c: 0x0001, 0x34d: 0x0001, 0x34e: 0x0001, 0x34f: 0x0001, 0x350: 0x0001, 0x351: 0x0001,\n\t0x352: 0x0001, 0x353: 0x0001, 0x354: 0x0001, 0x355: 0x0001, 0x356: 0x0001, 0x357: 0x0001,\n\t0x358: 0x0001, 0x359: 0x0001, 0x35a: 0x0001, 0x35b: 0x0001, 0x35c: 0x0001, 0x35d: 0x0001,\n\t0x35e: 0x0001, 0x35f: 0x0001, 0x360: 0x0001, 0x361: 0x0001, 0x362: 0x0001, 0x363: 0x0001,\n\t0x364: 0x0001, 0x365: 0x0001, 0x366: 0x0001, 0x367: 0x0001, 0x368: 0x0001, 0x369: 0x0001,\n\t0x36a: 0x0001, 0x36b: 0x0001, 0x36c: 0x0001, 0x36d: 0x0001, 0x36e: 0x0001, 0x36f: 0x0001,\n\t0x370: 0x0001, 0x371: 0x0001, 0x372: 0x0001, 0x373: 0x0001, 0x374: 0x0001, 0x375: 0x0001,\n\t0x376: 0x0001, 0x377: 0x0001, 0x378: 0x0001, 0x379: 0x0001, 0x37a: 0x0001, 0x37b: 0x0001,\n\t0x37c: 0x0001, 0x37d: 0x0001, 0x37e: 0x0001, 0x37f: 0x0001,\n\t// Block 0xe, offset 0x380\n\t0x380: 0x0005, 0x381: 0x0005, 0x382: 0x0005, 0x383: 0x0005, 0x384: 0x0005, 0x385: 0x0005,\n\t0x386: 0x000a, 0x387: 0x000a, 0x388: 0x000d, 0x389: 0x0004, 0x38a: 0x0004, 0x38b: 0x000d,\n\t0x38c: 0x0006, 0x38d: 0x000d, 0x38e: 0x000a, 0x38f: 0x000a, 0x390: 0x000c, 0x391: 0x000c,\n\t0x392: 0x000c, 0x393: 0x000c, 0x394: 0x000c, 0x395: 0x000c, 0x396: 0x000c, 0x397: 0x000c,\n\t0x398: 0x000c, 0x399: 0x000c, 0x39a: 0x000c, 0x39b: 0x000d, 0x39c: 0x000d, 0x39d: 0x000d,\n\t0x39e: 0x000d, 0x39f: 0x000d, 0x3a0: 0x000d, 0x3a1: 0x000d, 0x3a2: 0x000d, 0x3a3: 0x000d,\n\t0x3a4: 0x000d, 0x3a5: 0x000d, 0x3a6: 0x000d, 0x3a7: 0x000d, 0x3a8: 0x000d, 0x3a9: 0x000d,\n\t0x3aa: 0x000d, 0x3ab: 0x000d, 0x3ac: 0x000d, 0x3ad: 0x000d, 0x3ae: 0x000d, 0x3af: 0x000d,\n\t0x3b0: 0x000d, 0x3b1: 0x000d, 0x3b2: 0x000d, 0x3b3: 0x000d, 0x3b4: 0x000d, 0x3b5: 0x000d,\n\t0x3b6: 0x000d, 0x3b7: 0x000d, 0x3b8: 0x000d, 0x3b9: 0x000d, 0x3ba: 0x000d, 0x3bb: 0x000d,\n\t0x3bc: 0x000d, 0x3bd: 0x000d, 0x3be: 0x000d, 0x3bf: 0x000d,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x000d, 0x3c1: 0x000d, 0x3c2: 0x000d, 0x3c3: 0x000d, 0x3c4: 0x000d, 0x3c5: 0x000d,\n\t0x3c6: 0x000d, 0x3c7: 0x000d, 0x3c8: 0x000d, 0x3c9: 0x000d, 0x3ca: 0x000d, 0x3cb: 0x000c,\n\t0x3cc: 0x000c, 0x3cd: 0x000c, 0x3ce: 0x000c, 0x3cf: 0x000c, 0x3d0: 0x000c, 0x3d1: 0x000c,\n\t0x3d2: 0x000c, 0x3d3: 0x000c, 0x3d4: 0x000c, 0x3d5: 0x000c, 0x3d6: 0x000c, 0x3d7: 0x000c,\n\t0x3d8: 0x000c, 0x3d9: 0x000c, 0x3da: 0x000c, 0x3db: 0x000c, 0x3dc: 0x000c, 0x3dd: 0x000c,\n\t0x3de: 0x000c, 0x3df: 0x000c, 0x3e0: 0x0005, 0x3e1: 0x0005, 0x3e2: 0x0005, 0x3e3: 0x0005,\n\t0x3e4: 0x0005, 0x3e5: 0x0005, 0x3e6: 0x0005, 0x3e7: 0x0005, 0x3e8: 0x0005, 0x3e9: 0x0005,\n\t0x3ea: 0x0004, 0x3eb: 0x0005, 0x3ec: 0x0005, 0x3ed: 0x000d, 0x3ee: 0x000d, 0x3ef: 0x000d,\n\t0x3f0: 0x000c, 0x3f1: 0x000d, 0x3f2: 0x000d, 0x3f3: 0x000d, 0x3f4: 0x000d, 0x3f5: 0x000d,\n\t0x3f6: 0x000d, 0x3f7: 0x000d, 0x3f8: 0x000d, 0x3f9: 0x000d, 0x3fa: 0x000d, 0x3fb: 0x000d,\n\t0x3fc: 0x000d, 0x3fd: 0x000d, 0x3fe: 0x000d, 0x3ff: 0x000d,\n\t// Block 0x10, offset 0x400\n\t0x400: 0x000d, 0x401: 0x000d, 0x402: 0x000d, 0x403: 0x000d, 0x404: 0x000d, 0x405: 0x000d,\n\t0x406: 0x000d, 0x407: 0x000d, 0x408: 0x000d, 0x409: 0x000d, 0x40a: 0x000d, 0x40b: 0x000d,\n\t0x40c: 0x000d, 0x40d: 0x000d, 0x40e: 0x000d, 0x40f: 0x000d, 0x410: 0x000d, 0x411: 0x000d,\n\t0x412: 0x000d, 0x413: 0x000d, 0x414: 0x000d, 0x415: 0x000d, 0x416: 0x000d, 0x417: 0x000d,\n\t0x418: 0x000d, 0x419: 0x000d, 0x41a: 0x000d, 0x41b: 0x000d, 0x41c: 0x000d, 0x41d: 0x000d,\n\t0x41e: 0x000d, 0x41f: 0x000d, 0x420: 0x000d, 0x421: 0x000d, 0x422: 0x000d, 0x423: 0x000d,\n\t0x424: 0x000d, 0x425: 0x000d, 0x426: 0x000d, 0x427: 0x000d, 0x428: 0x000d, 0x429: 0x000d,\n\t0x42a: 0x000d, 0x42b: 0x000d, 0x42c: 0x000d, 0x42d: 0x000d, 0x42e: 0x000d, 0x42f: 0x000d,\n\t0x430: 0x000d, 0x431: 0x000d, 0x432: 0x000d, 0x433: 0x000d, 0x434: 0x000d, 0x435: 0x000d,\n\t0x436: 0x000d, 0x437: 0x000d, 0x438: 0x000d, 0x439: 0x000d, 0x43a: 0x000d, 0x43b: 0x000d,\n\t0x43c: 0x000d, 0x43d: 0x000d, 0x43e: 0x000d, 0x43f: 0x000d,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x000d, 0x441: 0x000d, 0x442: 0x000d, 0x443: 0x000d, 0x444: 0x000d, 0x445: 0x000d,\n\t0x446: 0x000d, 0x447: 0x000d, 0x448: 0x000d, 0x449: 0x000d, 0x44a: 0x000d, 0x44b: 0x000d,\n\t0x44c: 0x000d, 0x44d: 0x000d, 0x44e: 0x000d, 0x44f: 0x000d, 0x450: 0x000d, 0x451: 0x000d,\n\t0x452: 0x000d, 0x453: 0x000d, 0x454: 0x000d, 0x455: 0x000d, 0x456: 0x000c, 0x457: 0x000c,\n\t0x458: 0x000c, 0x459: 0x000c, 0x45a: 0x000c, 0x45b: 0x000c, 0x45c: 0x000c, 0x45d: 0x0005,\n\t0x45e: 0x000a, 0x45f: 0x000c, 0x460: 0x000c, 0x461: 0x000c, 0x462: 0x000c, 0x463: 0x000c,\n\t0x464: 0x000c, 0x465: 0x000d, 0x466: 0x000d, 0x467: 0x000c, 0x468: 0x000c, 0x469: 0x000a,\n\t0x46a: 0x000c, 0x46b: 0x000c, 0x46c: 0x000c, 0x46d: 0x000c, 0x46e: 0x000d, 0x46f: 0x000d,\n\t0x470: 0x0002, 0x471: 0x0002, 0x472: 0x0002, 0x473: 0x0002, 0x474: 0x0002, 0x475: 0x0002,\n\t0x476: 0x0002, 0x477: 0x0002, 0x478: 0x0002, 0x479: 0x0002, 0x47a: 0x000d, 0x47b: 0x000d,\n\t0x47c: 0x000d, 0x47d: 0x000d, 0x47e: 0x000d, 0x47f: 0x000d,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x000d, 0x481: 0x000d, 0x482: 0x000d, 0x483: 0x000d, 0x484: 0x000d, 0x485: 0x000d,\n\t0x486: 0x000d, 0x487: 0x000d, 0x488: 0x000d, 0x489: 0x000d, 0x48a: 0x000d, 0x48b: 0x000d,\n\t0x48c: 0x000d, 0x48d: 0x000d, 0x48e: 0x000d, 0x48f: 0x000d, 0x490: 0x000d, 0x491: 0x000c,\n\t0x492: 0x000d, 0x493: 0x000d, 0x494: 0x000d, 0x495: 0x000d, 0x496: 0x000d, 0x497: 0x000d,\n\t0x498: 0x000d, 0x499: 0x000d, 0x49a: 0x000d, 0x49b: 0x000d, 0x49c: 0x000d, 0x49d: 0x000d,\n\t0x49e: 0x000d, 0x49f: 0x000d, 0x4a0: 0x000d, 0x4a1: 0x000d, 0x4a2: 0x000d, 0x4a3: 0x000d,\n\t0x4a4: 0x000d, 0x4a5: 0x000d, 0x4a6: 0x000d, 0x4a7: 0x000d, 0x4a8: 0x000d, 0x4a9: 0x000d,\n\t0x4aa: 0x000d, 0x4ab: 0x000d, 0x4ac: 0x000d, 0x4ad: 0x000d, 0x4ae: 0x000d, 0x4af: 0x000d,\n\t0x4b0: 0x000c, 0x4b1: 0x000c, 0x4b2: 0x000c, 0x4b3: 0x000c, 0x4b4: 0x000c, 0x4b5: 0x000c,\n\t0x4b6: 0x000c, 0x4b7: 0x000c, 0x4b8: 0x000c, 0x4b9: 0x000c, 0x4ba: 0x000c, 0x4bb: 0x000c,\n\t0x4bc: 0x000c, 0x4bd: 0x000c, 0x4be: 0x000c, 0x4bf: 0x000c,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x000c, 0x4c1: 0x000c, 0x4c2: 0x000c, 0x4c3: 0x000c, 0x4c4: 0x000c, 0x4c5: 0x000c,\n\t0x4c6: 0x000c, 0x4c7: 0x000c, 0x4c8: 0x000c, 0x4c9: 0x000c, 0x4ca: 0x000c, 0x4cb: 0x000d,\n\t0x4cc: 0x000d, 0x4cd: 0x000d, 0x4ce: 0x000d, 0x4cf: 0x000d, 0x4d0: 0x000d, 0x4d1: 0x000d,\n\t0x4d2: 0x000d, 0x4d3: 0x000d, 0x4d4: 0x000d, 0x4d5: 0x000d, 0x4d6: 0x000d, 0x4d7: 0x000d,\n\t0x4d8: 0x000d, 0x4d9: 0x000d, 0x4da: 0x000d, 0x4db: 0x000d, 0x4dc: 0x000d, 0x4dd: 0x000d,\n\t0x4de: 0x000d, 0x4df: 0x000d, 0x4e0: 0x000d, 0x4e1: 0x000d, 0x4e2: 0x000d, 0x4e3: 0x000d,\n\t0x4e4: 0x000d, 0x4e5: 0x000d, 0x4e6: 0x000d, 0x4e7: 0x000d, 0x4e8: 0x000d, 0x4e9: 0x000d,\n\t0x4ea: 0x000d, 0x4eb: 0x000d, 0x4ec: 0x000d, 0x4ed: 0x000d, 0x4ee: 0x000d, 0x4ef: 0x000d,\n\t0x4f0: 0x000d, 0x4f1: 0x000d, 0x4f2: 0x000d, 0x4f3: 0x000d, 0x4f4: 0x000d, 0x4f5: 0x000d,\n\t0x4f6: 0x000d, 0x4f7: 0x000d, 0x4f8: 0x000d, 0x4f9: 0x000d, 0x4fa: 0x000d, 0x4fb: 0x000d,\n\t0x4fc: 0x000d, 0x4fd: 0x000d, 0x4fe: 0x000d, 0x4ff: 0x000d,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x000d, 0x501: 0x000d, 0x502: 0x000d, 0x503: 0x000d, 0x504: 0x000d, 0x505: 0x000d,\n\t0x506: 0x000d, 0x507: 0x000d, 0x508: 0x000d, 0x509: 0x000d, 0x50a: 0x000d, 0x50b: 0x000d,\n\t0x50c: 0x000d, 0x50d: 0x000d, 0x50e: 0x000d, 0x50f: 0x000d, 0x510: 0x000d, 0x511: 0x000d,\n\t0x512: 0x000d, 0x513: 0x000d, 0x514: 0x000d, 0x515: 0x000d, 0x516: 0x000d, 0x517: 0x000d,\n\t0x518: 0x000d, 0x519: 0x000d, 0x51a: 0x000d, 0x51b: 0x000d, 0x51c: 0x000d, 0x51d: 0x000d,\n\t0x51e: 0x000d, 0x51f: 0x000d, 0x520: 0x000d, 0x521: 0x000d, 0x522: 0x000d, 0x523: 0x000d,\n\t0x524: 0x000d, 0x525: 0x000d, 0x526: 0x000c, 0x527: 0x000c, 0x528: 0x000c, 0x529: 0x000c,\n\t0x52a: 0x000c, 0x52b: 0x000c, 0x52c: 0x000c, 0x52d: 0x000c, 0x52e: 0x000c, 0x52f: 0x000c,\n\t0x530: 0x000c, 0x531: 0x000d, 0x532: 0x000d, 0x533: 0x000d, 0x534: 0x000d, 0x535: 0x000d,\n\t0x536: 0x000d, 0x537: 0x000d, 0x538: 0x000d, 0x539: 0x000d, 0x53a: 0x000d, 0x53b: 0x000d,\n\t0x53c: 0x000d, 0x53d: 0x000d, 0x53e: 0x000d, 0x53f: 0x000d,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x0001, 0x541: 0x0001, 0x542: 0x0001, 0x543: 0x0001, 0x544: 0x0001, 0x545: 0x0001,\n\t0x546: 0x0001, 0x547: 0x0001, 0x548: 0x0001, 0x549: 0x0001, 0x54a: 0x0001, 0x54b: 0x0001,\n\t0x54c: 0x0001, 0x54d: 0x0001, 0x54e: 0x0001, 0x54f: 0x0001, 0x550: 0x0001, 0x551: 0x0001,\n\t0x552: 0x0001, 0x553: 0x0001, 0x554: 0x0001, 0x555: 0x0001, 0x556: 0x0001, 0x557: 0x0001,\n\t0x558: 0x0001, 0x559: 0x0001, 0x55a: 0x0001, 0x55b: 0x0001, 0x55c: 0x0001, 0x55d: 0x0001,\n\t0x55e: 0x0001, 0x55f: 0x0001, 0x560: 0x0001, 0x561: 0x0001, 0x562: 0x0001, 0x563: 0x0001,\n\t0x564: 0x0001, 0x565: 0x0001, 0x566: 0x0001, 0x567: 0x0001, 0x568: 0x0001, 0x569: 0x0001,\n\t0x56a: 0x0001, 0x56b: 0x000c, 0x56c: 0x000c, 0x56d: 0x000c, 0x56e: 0x000c, 0x56f: 0x000c,\n\t0x570: 0x000c, 0x571: 0x000c, 0x572: 0x000c, 0x573: 0x000c, 0x574: 0x0001, 0x575: 0x0001,\n\t0x576: 0x000a, 0x577: 0x000a, 0x578: 0x000a, 0x579: 0x000a, 0x57a: 0x0001, 0x57b: 0x0001,\n\t0x57c: 0x0001, 0x57d: 0x000c, 0x57e: 0x0001, 0x57f: 0x0001,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x0001, 0x581: 0x0001, 0x582: 0x0001, 0x583: 0x0001, 0x584: 0x0001, 0x585: 0x0001,\n\t0x586: 0x0001, 0x587: 0x0001, 0x588: 0x0001, 0x589: 0x0001, 0x58a: 0x0001, 0x58b: 0x0001,\n\t0x58c: 0x0001, 0x58d: 0x0001, 0x58e: 0x0001, 0x58f: 0x0001, 0x590: 0x0001, 0x591: 0x0001,\n\t0x592: 0x0001, 0x593: 0x0001, 0x594: 0x0001, 0x595: 0x0001, 0x596: 0x000c, 0x597: 0x000c,\n\t0x598: 0x000c, 0x599: 0x000c, 0x59a: 0x0001, 0x59b: 0x000c, 0x59c: 0x000c, 0x59d: 0x000c,\n\t0x59e: 0x000c, 0x59f: 0x000c, 0x5a0: 0x000c, 0x5a1: 0x000c, 0x5a2: 0x000c, 0x5a3: 0x000c,\n\t0x5a4: 0x0001, 0x5a5: 0x000c, 0x5a6: 0x000c, 0x5a7: 0x000c, 0x5a8: 0x0001, 0x5a9: 0x000c,\n\t0x5aa: 0x000c, 0x5ab: 0x000c, 0x5ac: 0x000c, 0x5ad: 0x000c, 0x5ae: 0x0001, 0x5af: 0x0001,\n\t0x5b0: 0x0001, 0x5b1: 0x0001, 0x5b2: 0x0001, 0x5b3: 0x0001, 0x5b4: 0x0001, 0x5b5: 0x0001,\n\t0x5b6: 0x0001, 0x5b7: 0x0001, 0x5b8: 0x0001, 0x5b9: 0x0001, 0x5ba: 0x0001, 0x5bb: 0x0001,\n\t0x5bc: 0x0001, 0x5bd: 0x0001, 0x5be: 0x0001, 0x5bf: 0x0001,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x0001, 0x5c1: 0x0001, 0x5c2: 0x0001, 0x5c3: 0x0001, 0x5c4: 0x0001, 0x5c5: 0x0001,\n\t0x5c6: 0x0001, 0x5c7: 0x0001, 0x5c8: 0x0001, 0x5c9: 0x0001, 0x5ca: 0x0001, 0x5cb: 0x0001,\n\t0x5cc: 0x0001, 0x5cd: 0x0001, 0x5ce: 0x0001, 0x5cf: 0x0001, 0x5d0: 0x0001, 0x5d1: 0x0001,\n\t0x5d2: 0x0001, 0x5d3: 0x0001, 0x5d4: 0x0001, 0x5d5: 0x0001, 0x5d6: 0x0001, 0x5d7: 0x0001,\n\t0x5d8: 0x0001, 0x5d9: 0x000c, 0x5da: 0x000c, 0x5db: 0x000c, 0x5dc: 0x0001, 0x5dd: 0x0001,\n\t0x5de: 0x0001, 0x5df: 0x0001, 0x5e0: 0x000d, 0x5e1: 0x000d, 0x5e2: 0x000d, 0x5e3: 0x000d,\n\t0x5e4: 0x000d, 0x5e5: 0x000d, 0x5e6: 0x000d, 0x5e7: 0x000d, 0x5e8: 0x000d, 0x5e9: 0x000d,\n\t0x5ea: 0x000d, 0x5eb: 0x0001, 0x5ec: 0x0001, 0x5ed: 0x0001, 0x5ee: 0x0001, 0x5ef: 0x0001,\n\t0x5f0: 0x000d, 0x5f1: 0x000d, 0x5f2: 0x000d, 0x5f3: 0x000d, 0x5f4: 0x000d, 0x5f5: 0x000d,\n\t0x5f6: 0x000d, 0x5f7: 0x000d, 0x5f8: 0x000d, 0x5f9: 0x000d, 0x5fa: 0x000d, 0x5fb: 0x000d,\n\t0x5fc: 0x000d, 0x5fd: 0x000d, 0x5fe: 0x000d, 0x5ff: 0x000d,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x000d, 0x601: 0x000d, 0x602: 0x000d, 0x603: 0x000d, 0x604: 0x000d, 0x605: 0x000d,\n\t0x606: 0x000d, 0x607: 0x000d, 0x608: 0x000d, 0x609: 0x000d, 0x60a: 0x000d, 0x60b: 0x000d,\n\t0x60c: 0x000d, 0x60d: 0x000d, 0x60e: 0x000d, 0x60f: 0x0001, 0x610: 0x0005, 0x611: 0x0005,\n\t0x612: 0x0001, 0x613: 0x0001, 0x614: 0x0001, 0x615: 0x0001, 0x616: 0x0001, 0x617: 0x0001,\n\t0x618: 0x000c, 0x619: 0x000c, 0x61a: 0x000c, 0x61b: 0x000c, 0x61c: 0x000c, 0x61d: 0x000c,\n\t0x61e: 0x000c, 0x61f: 0x000c, 0x620: 0x000d, 0x621: 0x000d, 0x622: 0x000d, 0x623: 0x000d,\n\t0x624: 0x000d, 0x625: 0x000d, 0x626: 0x000d, 0x627: 0x000d, 0x628: 0x000d, 0x629: 0x000d,\n\t0x62a: 0x000d, 0x62b: 0x000d, 0x62c: 0x000d, 0x62d: 0x000d, 0x62e: 0x000d, 0x62f: 0x000d,\n\t0x630: 0x000d, 0x631: 0x000d, 0x632: 0x000d, 0x633: 0x000d, 0x634: 0x000d, 0x635: 0x000d,\n\t0x636: 0x000d, 0x637: 0x000d, 0x638: 0x000d, 0x639: 0x000d, 0x63a: 0x000d, 0x63b: 0x000d,\n\t0x63c: 0x000d, 0x63d: 0x000d, 0x63e: 0x000d, 0x63f: 0x000d,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x000d, 0x641: 0x000d, 0x642: 0x000d, 0x643: 0x000d, 0x644: 0x000d, 0x645: 0x000d,\n\t0x646: 0x000d, 0x647: 0x000d, 0x648: 0x000d, 0x649: 0x000d, 0x64a: 0x000c, 0x64b: 0x000c,\n\t0x64c: 0x000c, 0x64d: 0x000c, 0x64e: 0x000c, 0x64f: 0x000c, 0x650: 0x000c, 0x651: 0x000c,\n\t0x652: 0x000c, 0x653: 0x000c, 0x654: 0x000c, 0x655: 0x000c, 0x656: 0x000c, 0x657: 0x000c,\n\t0x658: 0x000c, 0x659: 0x000c, 0x65a: 0x000c, 0x65b: 0x000c, 0x65c: 0x000c, 0x65d: 0x000c,\n\t0x65e: 0x000c, 0x65f: 0x000c, 0x660: 0x000c, 0x661: 0x000c, 0x662: 0x0005, 0x663: 0x000c,\n\t0x664: 0x000c, 0x665: 0x000c, 0x666: 0x000c, 0x667: 0x000c, 0x668: 0x000c, 0x669: 0x000c,\n\t0x66a: 0x000c, 0x66b: 0x000c, 0x66c: 0x000c, 0x66d: 0x000c, 0x66e: 0x000c, 0x66f: 0x000c,\n\t0x670: 0x000c, 0x671: 0x000c, 0x672: 0x000c, 0x673: 0x000c, 0x674: 0x000c, 0x675: 0x000c,\n\t0x676: 0x000c, 0x677: 0x000c, 0x678: 0x000c, 0x679: 0x000c, 0x67a: 0x000c, 0x67b: 0x000c,\n\t0x67c: 0x000c, 0x67d: 0x000c, 0x67e: 0x000c, 0x67f: 0x000c,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x000c, 0x681: 0x000c, 0x682: 0x000c,\n\t0x6ba: 0x000c,\n\t0x6bc: 0x000c,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c1: 0x000c, 0x6c2: 0x000c, 0x6c3: 0x000c, 0x6c4: 0x000c, 0x6c5: 0x000c,\n\t0x6c6: 0x000c, 0x6c7: 0x000c, 0x6c8: 0x000c,\n\t0x6cd: 0x000c, 0x6d1: 0x000c,\n\t0x6d2: 0x000c, 0x6d3: 0x000c, 0x6d4: 0x000c, 0x6d5: 0x000c, 0x6d6: 0x000c, 0x6d7: 0x000c,\n\t0x6e2: 0x000c, 0x6e3: 0x000c,\n\t// Block 0x1c, offset 0x700\n\t0x701: 0x000c,\n\t0x73c: 0x000c,\n\t// Block 0x1d, offset 0x740\n\t0x741: 0x000c, 0x742: 0x000c, 0x743: 0x000c, 0x744: 0x000c,\n\t0x74d: 0x000c,\n\t0x762: 0x000c, 0x763: 0x000c,\n\t0x772: 0x0004, 0x773: 0x0004,\n\t0x77b: 0x0004,\n\t0x77e: 0x000c,\n\t// Block 0x1e, offset 0x780\n\t0x781: 0x000c, 0x782: 0x000c,\n\t0x7bc: 0x000c,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c1: 0x000c, 0x7c2: 0x000c,\n\t0x7c7: 0x000c, 0x7c8: 0x000c, 0x7cb: 0x000c,\n\t0x7cc: 0x000c, 0x7cd: 0x000c, 0x7d1: 0x000c,\n\t0x7f0: 0x000c, 0x7f1: 0x000c, 0x7f5: 0x000c,\n\t// Block 0x20, offset 0x800\n\t0x801: 0x000c, 0x802: 0x000c, 0x803: 0x000c, 0x804: 0x000c, 0x805: 0x000c,\n\t0x807: 0x000c, 0x808: 0x000c,\n\t0x80d: 0x000c,\n\t0x822: 0x000c, 0x823: 0x000c,\n\t0x831: 0x0004,\n\t0x83a: 0x000c, 0x83b: 0x000c,\n\t0x83c: 0x000c, 0x83d: 0x000c, 0x83e: 0x000c, 0x83f: 0x000c,\n\t// Block 0x21, offset 0x840\n\t0x841: 0x000c,\n\t0x87c: 0x000c, 0x87f: 0x000c,\n\t// Block 0x22, offset 0x880\n\t0x881: 0x000c, 0x882: 0x000c, 0x883: 0x000c, 0x884: 0x000c,\n\t0x88d: 0x000c,\n\t0x895: 0x000c, 0x896: 0x000c,\n\t0x8a2: 0x000c, 0x8a3: 0x000c,\n\t// Block 0x23, offset 0x8c0\n\t0x8c2: 0x000c,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x000c,\n\t0x90d: 0x000c,\n\t0x933: 0x000a, 0x934: 0x000a, 0x935: 0x000a,\n\t0x936: 0x000a, 0x937: 0x000a, 0x938: 0x000a, 0x939: 0x0004, 0x93a: 0x000a,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x000c, 0x944: 0x000c,\n\t0x97c: 0x000c, 0x97e: 0x000c, 0x97f: 0x000c,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x000c,\n\t0x986: 0x000c, 0x987: 0x000c, 0x988: 0x000c, 0x98a: 0x000c, 0x98b: 0x000c,\n\t0x98c: 0x000c, 0x98d: 0x000c,\n\t0x995: 0x000c, 0x996: 0x000c,\n\t0x9a2: 0x000c, 0x9a3: 0x000c,\n\t0x9b8: 0x000a, 0x9b9: 0x000a, 0x9ba: 0x000a, 0x9bb: 0x000a,\n\t0x9bc: 0x000a, 0x9bd: 0x000a, 0x9be: 0x000a,\n\t// Block 0x27, offset 0x9c0\n\t0x9cc: 0x000c, 0x9cd: 0x000c,\n\t0x9e2: 0x000c, 0x9e3: 0x000c,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x000c, 0xa01: 0x000c,\n\t0xa3b: 0x000c,\n\t0xa3c: 0x000c,\n\t// Block 0x29, offset 0xa40\n\t0xa41: 0x000c, 0xa42: 0x000c, 0xa43: 0x000c, 0xa44: 0x000c,\n\t0xa4d: 0x000c,\n\t0xa62: 0x000c, 0xa63: 0x000c,\n\t// Block 0x2a, offset 0xa80\n\t0xa81: 0x000c,\n\t// Block 0x2b, offset 0xac0\n\t0xaca: 0x000c,\n\t0xad2: 0x000c, 0xad3: 0x000c, 0xad4: 0x000c, 0xad6: 0x000c,\n\t// Block 0x2c, offset 0xb00\n\t0xb31: 0x000c, 0xb34: 0x000c, 0xb35: 0x000c,\n\t0xb36: 0x000c, 0xb37: 0x000c, 0xb38: 0x000c, 0xb39: 0x000c, 0xb3a: 0x000c,\n\t0xb3f: 0x0004,\n\t// Block 0x2d, offset 0xb40\n\t0xb47: 0x000c, 0xb48: 0x000c, 0xb49: 0x000c, 0xb4a: 0x000c, 0xb4b: 0x000c,\n\t0xb4c: 0x000c, 0xb4d: 0x000c, 0xb4e: 0x000c,\n\t// Block 0x2e, offset 0xb80\n\t0xbb1: 0x000c, 0xbb4: 0x000c, 0xbb5: 0x000c,\n\t0xbb6: 0x000c, 0xbb7: 0x000c, 0xbb8: 0x000c, 0xbb9: 0x000c, 0xbba: 0x000c, 0xbbb: 0x000c,\n\t0xbbc: 0x000c,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc8: 0x000c, 0xbc9: 0x000c, 0xbca: 0x000c, 0xbcb: 0x000c,\n\t0xbcc: 0x000c, 0xbcd: 0x000c, 0xbce: 0x000c,\n\t// Block 0x30, offset 0xc00\n\t0xc18: 0x000c, 0xc19: 0x000c,\n\t0xc35: 0x000c,\n\t0xc37: 0x000c, 0xc39: 0x000c, 0xc3a: 0x003a, 0xc3b: 0x002a,\n\t0xc3c: 0x003a, 0xc3d: 0x002a,\n\t// Block 0x31, offset 0xc40\n\t0xc71: 0x000c, 0xc72: 0x000c, 0xc73: 0x000c, 0xc74: 0x000c, 0xc75: 0x000c,\n\t0xc76: 0x000c, 0xc77: 0x000c, 0xc78: 0x000c, 0xc79: 0x000c, 0xc7a: 0x000c, 0xc7b: 0x000c,\n\t0xc7c: 0x000c, 0xc7d: 0x000c, 0xc7e: 0x000c,\n\t// Block 0x32, offset 0xc80\n\t0xc80: 0x000c, 0xc81: 0x000c, 0xc82: 0x000c, 0xc83: 0x000c, 0xc84: 0x000c,\n\t0xc86: 0x000c, 0xc87: 0x000c,\n\t0xc8d: 0x000c, 0xc8e: 0x000c, 0xc8f: 0x000c, 0xc90: 0x000c, 0xc91: 0x000c,\n\t0xc92: 0x000c, 0xc93: 0x000c, 0xc94: 0x000c, 0xc95: 0x000c, 0xc96: 0x000c, 0xc97: 0x000c,\n\t0xc99: 0x000c, 0xc9a: 0x000c, 0xc9b: 0x000c, 0xc9c: 0x000c, 0xc9d: 0x000c,\n\t0xc9e: 0x000c, 0xc9f: 0x000c, 0xca0: 0x000c, 0xca1: 0x000c, 0xca2: 0x000c, 0xca3: 0x000c,\n\t0xca4: 0x000c, 0xca5: 0x000c, 0xca6: 0x000c, 0xca7: 0x000c, 0xca8: 0x000c, 0xca9: 0x000c,\n\t0xcaa: 0x000c, 0xcab: 0x000c, 0xcac: 0x000c, 0xcad: 0x000c, 0xcae: 0x000c, 0xcaf: 0x000c,\n\t0xcb0: 0x000c, 0xcb1: 0x000c, 0xcb2: 0x000c, 0xcb3: 0x000c, 0xcb4: 0x000c, 0xcb5: 0x000c,\n\t0xcb6: 0x000c, 0xcb7: 0x000c, 0xcb8: 0x000c, 0xcb9: 0x000c, 0xcba: 0x000c, 0xcbb: 0x000c,\n\t0xcbc: 0x000c,\n\t// Block 0x33, offset 0xcc0\n\t0xcc6: 0x000c,\n\t// Block 0x34, offset 0xd00\n\t0xd2d: 0x000c, 0xd2e: 0x000c, 0xd2f: 0x000c,\n\t0xd30: 0x000c, 0xd32: 0x000c, 0xd33: 0x000c, 0xd34: 0x000c, 0xd35: 0x000c,\n\t0xd36: 0x000c, 0xd37: 0x000c, 0xd39: 0x000c, 0xd3a: 0x000c,\n\t0xd3d: 0x000c, 0xd3e: 0x000c,\n\t// Block 0x35, offset 0xd40\n\t0xd58: 0x000c, 0xd59: 0x000c,\n\t0xd5e: 0x000c, 0xd5f: 0x000c, 0xd60: 0x000c,\n\t0xd71: 0x000c, 0xd72: 0x000c, 0xd73: 0x000c, 0xd74: 0x000c,\n\t// Block 0x36, offset 0xd80\n\t0xd82: 0x000c, 0xd85: 0x000c,\n\t0xd86: 0x000c,\n\t0xd8d: 0x000c,\n\t0xd9d: 0x000c,\n\t// Block 0x37, offset 0xdc0\n\t0xddd: 0x000c,\n\t0xdde: 0x000c, 0xddf: 0x000c,\n\t// Block 0x38, offset 0xe00\n\t0xe10: 0x000a, 0xe11: 0x000a,\n\t0xe12: 0x000a, 0xe13: 0x000a, 0xe14: 0x000a, 0xe15: 0x000a, 0xe16: 0x000a, 0xe17: 0x000a,\n\t0xe18: 0x000a, 0xe19: 0x000a,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x000a,\n\t// Block 0x3a, offset 0xe80\n\t0xe80: 0x0009,\n\t0xe9b: 0x007a, 0xe9c: 0x006a,\n\t// Block 0x3b, offset 0xec0\n\t0xed2: 0x000c, 0xed3: 0x000c, 0xed4: 0x000c,\n\t0xef2: 0x000c, 0xef3: 0x000c,\n\t// Block 0x3c, offset 0xf00\n\t0xf12: 0x000c, 0xf13: 0x000c,\n\t0xf32: 0x000c, 0xf33: 0x000c,\n\t// Block 0x3d, offset 0xf40\n\t0xf74: 0x000c, 0xf75: 0x000c,\n\t0xf77: 0x000c, 0xf78: 0x000c, 0xf79: 0x000c, 0xf7a: 0x000c, 0xf7b: 0x000c,\n\t0xf7c: 0x000c, 0xf7d: 0x000c,\n\t// Block 0x3e, offset 0xf80\n\t0xf86: 0x000c, 0xf89: 0x000c, 0xf8a: 0x000c, 0xf8b: 0x000c,\n\t0xf8c: 0x000c, 0xf8d: 0x000c, 0xf8e: 0x000c, 0xf8f: 0x000c, 0xf90: 0x000c, 0xf91: 0x000c,\n\t0xf92: 0x000c, 0xf93: 0x000c,\n\t0xf9b: 0x0004, 0xf9d: 0x000c,\n\t0xfb0: 0x000a, 0xfb1: 0x000a, 0xfb2: 0x000a, 0xfb3: 0x000a, 0xfb4: 0x000a, 0xfb5: 0x000a,\n\t0xfb6: 0x000a, 0xfb7: 0x000a, 0xfb8: 0x000a, 0xfb9: 0x000a,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc0: 0x000a, 0xfc1: 0x000a, 0xfc2: 0x000a, 0xfc3: 0x000a, 0xfc4: 0x000a, 0xfc5: 0x000a,\n\t0xfc6: 0x000a, 0xfc7: 0x000a, 0xfc8: 0x000a, 0xfc9: 0x000a, 0xfca: 0x000a, 0xfcb: 0x000c,\n\t0xfcc: 0x000c, 0xfcd: 0x000c, 0xfce: 0x000b, 0xfcf: 0x000c,\n\t// Block 0x40, offset 0x1000\n\t0x1005: 0x000c,\n\t0x1006: 0x000c,\n\t0x1029: 0x000c,\n\t// Block 0x41, offset 0x1040\n\t0x1060: 0x000c, 0x1061: 0x000c, 0x1062: 0x000c,\n\t0x1067: 0x000c, 0x1068: 0x000c,\n\t0x1072: 0x000c,\n\t0x1079: 0x000c, 0x107a: 0x000c, 0x107b: 0x000c,\n\t// Block 0x42, offset 0x1080\n\t0x1080: 0x000a, 0x1084: 0x000a, 0x1085: 0x000a,\n\t// Block 0x43, offset 0x10c0\n\t0x10de: 0x000a, 0x10df: 0x000a, 0x10e0: 0x000a, 0x10e1: 0x000a, 0x10e2: 0x000a, 0x10e3: 0x000a,\n\t0x10e4: 0x000a, 0x10e5: 0x000a, 0x10e6: 0x000a, 0x10e7: 0x000a, 0x10e8: 0x000a, 0x10e9: 0x000a,\n\t0x10ea: 0x000a, 0x10eb: 0x000a, 0x10ec: 0x000a, 0x10ed: 0x000a, 0x10ee: 0x000a, 0x10ef: 0x000a,\n\t0x10f0: 0x000a, 0x10f1: 0x000a, 0x10f2: 0x000a, 0x10f3: 0x000a, 0x10f4: 0x000a, 0x10f5: 0x000a,\n\t0x10f6: 0x000a, 0x10f7: 0x000a, 0x10f8: 0x000a, 0x10f9: 0x000a, 0x10fa: 0x000a, 0x10fb: 0x000a,\n\t0x10fc: 0x000a, 0x10fd: 0x000a, 0x10fe: 0x000a, 0x10ff: 0x000a,\n\t// Block 0x44, offset 0x1100\n\t0x1117: 0x000c,\n\t0x1118: 0x000c, 0x111b: 0x000c,\n\t// Block 0x45, offset 0x1140\n\t0x1156: 0x000c,\n\t0x1158: 0x000c, 0x1159: 0x000c, 0x115a: 0x000c, 0x115b: 0x000c, 0x115c: 0x000c, 0x115d: 0x000c,\n\t0x115e: 0x000c, 0x1160: 0x000c, 0x1162: 0x000c,\n\t0x1165: 0x000c, 0x1166: 0x000c, 0x1167: 0x000c, 0x1168: 0x000c, 0x1169: 0x000c,\n\t0x116a: 0x000c, 0x116b: 0x000c, 0x116c: 0x000c,\n\t0x1173: 0x000c, 0x1174: 0x000c, 0x1175: 0x000c,\n\t0x1176: 0x000c, 0x1177: 0x000c, 0x1178: 0x000c, 0x1179: 0x000c, 0x117a: 0x000c, 0x117b: 0x000c,\n\t0x117c: 0x000c, 0x117f: 0x000c,\n\t// Block 0x46, offset 0x1180\n\t0x11b0: 0x000c, 0x11b1: 0x000c, 0x11b2: 0x000c, 0x11b3: 0x000c, 0x11b4: 0x000c, 0x11b5: 0x000c,\n\t0x11b6: 0x000c, 0x11b7: 0x000c, 0x11b8: 0x000c, 0x11b9: 0x000c, 0x11ba: 0x000c, 0x11bb: 0x000c,\n\t0x11bc: 0x000c, 0x11bd: 0x000c, 0x11be: 0x000c, 0x11bf: 0x000c,\n\t// Block 0x47, offset 0x11c0\n\t0x11c0: 0x000c, 0x11c1: 0x000c, 0x11c2: 0x000c, 0x11c3: 0x000c, 0x11c4: 0x000c, 0x11c5: 0x000c,\n\t0x11c6: 0x000c, 0x11c7: 0x000c, 0x11c8: 0x000c, 0x11c9: 0x000c, 0x11ca: 0x000c, 0x11cb: 0x000c,\n\t0x11cc: 0x000c, 0x11cd: 0x000c, 0x11ce: 0x000c,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0x000c, 0x1201: 0x000c, 0x1202: 0x000c, 0x1203: 0x000c,\n\t0x1234: 0x000c,\n\t0x1236: 0x000c, 0x1237: 0x000c, 0x1238: 0x000c, 0x1239: 0x000c, 0x123a: 0x000c,\n\t0x123c: 0x000c,\n\t// Block 0x49, offset 0x1240\n\t0x1242: 0x000c,\n\t0x126b: 0x000c, 0x126c: 0x000c, 0x126d: 0x000c, 0x126e: 0x000c, 0x126f: 0x000c,\n\t0x1270: 0x000c, 0x1271: 0x000c, 0x1272: 0x000c, 0x1273: 0x000c,\n\t// Block 0x4a, offset 0x1280\n\t0x1280: 0x000c, 0x1281: 0x000c,\n\t0x12a2: 0x000c, 0x12a3: 0x000c,\n\t0x12a4: 0x000c, 0x12a5: 0x000c, 0x12a8: 0x000c, 0x12a9: 0x000c,\n\t0x12ab: 0x000c, 0x12ac: 0x000c, 0x12ad: 0x000c,\n\t// Block 0x4b, offset 0x12c0\n\t0x12e6: 0x000c, 0x12e8: 0x000c, 0x12e9: 0x000c,\n\t0x12ed: 0x000c, 0x12ef: 0x000c,\n\t0x12f0: 0x000c, 0x12f1: 0x000c,\n\t// Block 0x4c, offset 0x1300\n\t0x132c: 0x000c, 0x132d: 0x000c, 0x132e: 0x000c, 0x132f: 0x000c,\n\t0x1330: 0x000c, 0x1331: 0x000c, 0x1332: 0x000c, 0x1333: 0x000c,\n\t0x1336: 0x000c, 0x1337: 0x000c,\n\t// Block 0x4d, offset 0x1340\n\t0x1350: 0x000c, 0x1351: 0x000c,\n\t0x1352: 0x000c, 0x1354: 0x000c, 0x1355: 0x000c, 0x1356: 0x000c, 0x1357: 0x000c,\n\t0x1358: 0x000c, 0x1359: 0x000c, 0x135a: 0x000c, 0x135b: 0x000c, 0x135c: 0x000c, 0x135d: 0x000c,\n\t0x135e: 0x000c, 0x135f: 0x000c, 0x1360: 0x000c, 0x1362: 0x000c, 0x1363: 0x000c,\n\t0x1364: 0x000c, 0x1365: 0x000c, 0x1366: 0x000c, 0x1367: 0x000c, 0x1368: 0x000c,\n\t0x136d: 0x000c,\n\t0x1374: 0x000c,\n\t0x1378: 0x000c, 0x1379: 0x000c,\n\t// Block 0x4e, offset 0x1380\n\t0x13bd: 0x000a, 0x13bf: 0x000a,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c0: 0x000a, 0x13c1: 0x000a,\n\t0x13cd: 0x000a, 0x13ce: 0x000a, 0x13cf: 0x000a,\n\t0x13dd: 0x000a,\n\t0x13de: 0x000a, 0x13df: 0x000a,\n\t0x13ed: 0x000a, 0x13ee: 0x000a, 0x13ef: 0x000a,\n\t0x13fd: 0x000a, 0x13fe: 0x000a,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x0009, 0x1401: 0x0009, 0x1402: 0x0009, 0x1403: 0x0009, 0x1404: 0x0009, 0x1405: 0x0009,\n\t0x1406: 0x0009, 0x1407: 0x0009, 0x1408: 0x0009, 0x1409: 0x0009, 0x140a: 0x0009, 0x140b: 0x000b,\n\t0x140c: 0x000b, 0x140d: 0x000b, 0x140f: 0x0001, 0x1410: 0x000a, 0x1411: 0x000a,\n\t0x1412: 0x000a, 0x1413: 0x000a, 0x1414: 0x000a, 0x1415: 0x000a, 0x1416: 0x000a, 0x1417: 0x000a,\n\t0x1418: 0x000a, 0x1419: 0x000a, 0x141a: 0x000a, 0x141b: 0x000a, 0x141c: 0x000a, 0x141d: 0x000a,\n\t0x141e: 0x000a, 0x141f: 0x000a, 0x1420: 0x000a, 0x1421: 0x000a, 0x1422: 0x000a, 0x1423: 0x000a,\n\t0x1424: 0x000a, 0x1425: 0x000a, 0x1426: 0x000a, 0x1427: 0x000a, 0x1428: 0x0009, 0x1429: 0x0007,\n\t0x142a: 0x000e, 0x142b: 0x000e, 0x142c: 0x000e, 0x142d: 0x000e, 0x142e: 0x000e, 0x142f: 0x0006,\n\t0x1430: 0x0004, 0x1431: 0x0004, 0x1432: 0x0004, 0x1433: 0x0004, 0x1434: 0x0004, 0x1435: 0x000a,\n\t0x1436: 0x000a, 0x1437: 0x000a, 0x1438: 0x000a, 0x1439: 0x000a, 0x143a: 0x000a, 0x143b: 0x000a,\n\t0x143c: 0x000a, 0x143d: 0x000a, 0x143e: 0x000a, 0x143f: 0x000a,\n\t// Block 0x51, offset 0x1440\n\t0x1440: 0x000a, 0x1441: 0x000a, 0x1442: 0x000a, 0x1443: 0x000a, 0x1444: 0x0006, 0x1445: 0x009a,\n\t0x1446: 0x008a, 0x1447: 0x000a, 0x1448: 0x000a, 0x1449: 0x000a, 0x144a: 0x000a, 0x144b: 0x000a,\n\t0x144c: 0x000a, 0x144d: 0x000a, 0x144e: 0x000a, 0x144f: 0x000a, 0x1450: 0x000a, 0x1451: 0x000a,\n\t0x1452: 0x000a, 0x1453: 0x000a, 0x1454: 0x000a, 0x1455: 0x000a, 0x1456: 0x000a, 0x1457: 0x000a,\n\t0x1458: 0x000a, 0x1459: 0x000a, 0x145a: 0x000a, 0x145b: 0x000a, 0x145c: 0x000a, 0x145d: 0x000a,\n\t0x145e: 0x000a, 0x145f: 0x0009, 0x1460: 0x000b, 0x1461: 0x000b, 0x1462: 0x000b, 0x1463: 0x000b,\n\t0x1464: 0x000b, 0x1465: 0x000b, 0x1466: 0x000e, 0x1467: 0x000e, 0x1468: 0x000e, 0x1469: 0x000e,\n\t0x146a: 0x000b, 0x146b: 0x000b, 0x146c: 0x000b, 0x146d: 0x000b, 0x146e: 0x000b, 0x146f: 0x000b,\n\t0x1470: 0x0002, 0x1474: 0x0002, 0x1475: 0x0002,\n\t0x1476: 0x0002, 0x1477: 0x0002, 0x1478: 0x0002, 0x1479: 0x0002, 0x147a: 0x0003, 0x147b: 0x0003,\n\t0x147c: 0x000a, 0x147d: 0x009a, 0x147e: 0x008a,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x0002, 0x1481: 0x0002, 0x1482: 0x0002, 0x1483: 0x0002, 0x1484: 0x0002, 0x1485: 0x0002,\n\t0x1486: 0x0002, 0x1487: 0x0002, 0x1488: 0x0002, 0x1489: 0x0002, 0x148a: 0x0003, 0x148b: 0x0003,\n\t0x148c: 0x000a, 0x148d: 0x009a, 0x148e: 0x008a,\n\t0x14a0: 0x0004, 0x14a1: 0x0004, 0x14a2: 0x0004, 0x14a3: 0x0004,\n\t0x14a4: 0x0004, 0x14a5: 0x0004, 0x14a6: 0x0004, 0x14a7: 0x0004, 0x14a8: 0x0004, 0x14a9: 0x0004,\n\t0x14aa: 0x0004, 0x14ab: 0x0004, 0x14ac: 0x0004, 0x14ad: 0x0004, 0x14ae: 0x0004, 0x14af: 0x0004,\n\t0x14b0: 0x0004, 0x14b1: 0x0004, 0x14b2: 0x0004, 0x14b3: 0x0004, 0x14b4: 0x0004, 0x14b5: 0x0004,\n\t0x14b6: 0x0004, 0x14b7: 0x0004, 0x14b8: 0x0004, 0x14b9: 0x0004, 0x14ba: 0x0004, 0x14bb: 0x0004,\n\t0x14bc: 0x0004, 0x14bd: 0x0004, 0x14be: 0x0004, 0x14bf: 0x0004,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x0004, 0x14c1: 0x0004, 0x14c2: 0x0004, 0x14c3: 0x0004, 0x14c4: 0x0004, 0x14c5: 0x0004,\n\t0x14c6: 0x0004, 0x14c7: 0x0004, 0x14c8: 0x0004, 0x14c9: 0x0004, 0x14ca: 0x0004, 0x14cb: 0x0004,\n\t0x14cc: 0x0004, 0x14cd: 0x0004, 0x14ce: 0x0004, 0x14cf: 0x0004, 0x14d0: 0x000c, 0x14d1: 0x000c,\n\t0x14d2: 0x000c, 0x14d3: 0x000c, 0x14d4: 0x000c, 0x14d5: 0x000c, 0x14d6: 0x000c, 0x14d7: 0x000c,\n\t0x14d8: 0x000c, 0x14d9: 0x000c, 0x14da: 0x000c, 0x14db: 0x000c, 0x14dc: 0x000c, 0x14dd: 0x000c,\n\t0x14de: 0x000c, 0x14df: 0x000c, 0x14e0: 0x000c, 0x14e1: 0x000c, 0x14e2: 0x000c, 0x14e3: 0x000c,\n\t0x14e4: 0x000c, 0x14e5: 0x000c, 0x14e6: 0x000c, 0x14e7: 0x000c, 0x14e8: 0x000c, 0x14e9: 0x000c,\n\t0x14ea: 0x000c, 0x14eb: 0x000c, 0x14ec: 0x000c, 0x14ed: 0x000c, 0x14ee: 0x000c, 0x14ef: 0x000c,\n\t0x14f0: 0x000c,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0x000a, 0x1501: 0x000a, 0x1503: 0x000a, 0x1504: 0x000a, 0x1505: 0x000a,\n\t0x1506: 0x000a, 0x1508: 0x000a, 0x1509: 0x000a,\n\t0x1514: 0x000a, 0x1516: 0x000a, 0x1517: 0x000a,\n\t0x1518: 0x000a,\n\t0x151e: 0x000a, 0x151f: 0x000a, 0x1520: 0x000a, 0x1521: 0x000a, 0x1522: 0x000a, 0x1523: 0x000a,\n\t0x1525: 0x000a, 0x1527: 0x000a, 0x1529: 0x000a,\n\t0x152e: 0x0004,\n\t0x153a: 0x000a, 0x153b: 0x000a,\n\t// Block 0x55, offset 0x1540\n\t0x1540: 0x000a, 0x1541: 0x000a, 0x1542: 0x000a, 0x1543: 0x000a, 0x1544: 0x000a,\n\t0x154a: 0x000a, 0x154b: 0x000a,\n\t0x154c: 0x000a, 0x154d: 0x000a, 0x1550: 0x000a, 0x1551: 0x000a,\n\t0x1552: 0x000a, 0x1553: 0x000a, 0x1554: 0x000a, 0x1555: 0x000a, 0x1556: 0x000a, 0x1557: 0x000a,\n\t0x1558: 0x000a, 0x1559: 0x000a, 0x155a: 0x000a, 0x155b: 0x000a, 0x155c: 0x000a, 0x155d: 0x000a,\n\t0x155e: 0x000a, 0x155f: 0x000a,\n\t// Block 0x56, offset 0x1580\n\t0x1589: 0x000a, 0x158a: 0x000a, 0x158b: 0x000a,\n\t0x1590: 0x000a, 0x1591: 0x000a,\n\t0x1592: 0x000a, 0x1593: 0x000a, 0x1594: 0x000a, 0x1595: 0x000a, 0x1596: 0x000a, 0x1597: 0x000a,\n\t0x1598: 0x000a, 0x1599: 0x000a, 0x159a: 0x000a, 0x159b: 0x000a, 0x159c: 0x000a, 0x159d: 0x000a,\n\t0x159e: 0x000a, 0x159f: 0x000a, 0x15a0: 0x000a, 0x15a1: 0x000a, 0x15a2: 0x000a, 0x15a3: 0x000a,\n\t0x15a4: 0x000a, 0x15a5: 0x000a, 0x15a6: 0x000a, 0x15a7: 0x000a, 0x15a8: 0x000a, 0x15a9: 0x000a,\n\t0x15aa: 0x000a, 0x15ab: 0x000a, 0x15ac: 0x000a, 0x15ad: 0x000a, 0x15ae: 0x000a, 0x15af: 0x000a,\n\t0x15b0: 0x000a, 0x15b1: 0x000a, 0x15b2: 0x000a, 0x15b3: 0x000a, 0x15b4: 0x000a, 0x15b5: 0x000a,\n\t0x15b6: 0x000a, 0x15b7: 0x000a, 0x15b8: 0x000a, 0x15b9: 0x000a, 0x15ba: 0x000a, 0x15bb: 0x000a,\n\t0x15bc: 0x000a, 0x15bd: 0x000a, 0x15be: 0x000a, 0x15bf: 0x000a,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0x000a, 0x15c1: 0x000a, 0x15c2: 0x000a, 0x15c3: 0x000a, 0x15c4: 0x000a, 0x15c5: 0x000a,\n\t0x15c6: 0x000a, 0x15c7: 0x000a, 0x15c8: 0x000a, 0x15c9: 0x000a, 0x15ca: 0x000a, 0x15cb: 0x000a,\n\t0x15cc: 0x000a, 0x15cd: 0x000a, 0x15ce: 0x000a, 0x15cf: 0x000a, 0x15d0: 0x000a, 0x15d1: 0x000a,\n\t0x15d2: 0x000a, 0x15d3: 0x000a, 0x15d4: 0x000a, 0x15d5: 0x000a, 0x15d6: 0x000a, 0x15d7: 0x000a,\n\t0x15d8: 0x000a, 0x15d9: 0x000a, 0x15da: 0x000a, 0x15db: 0x000a, 0x15dc: 0x000a, 0x15dd: 0x000a,\n\t0x15de: 0x000a, 0x15df: 0x000a, 0x15e0: 0x000a, 0x15e1: 0x000a, 0x15e2: 0x000a, 0x15e3: 0x000a,\n\t0x15e4: 0x000a, 0x15e5: 0x000a, 0x15e6: 0x000a, 0x15e7: 0x000a, 0x15e8: 0x000a, 0x15e9: 0x000a,\n\t0x15ea: 0x000a, 0x15eb: 0x000a, 0x15ec: 0x000a, 0x15ed: 0x000a, 0x15ee: 0x000a, 0x15ef: 0x000a,\n\t0x15f0: 0x000a, 0x15f1: 0x000a, 0x15f2: 0x000a, 0x15f3: 0x000a, 0x15f4: 0x000a, 0x15f5: 0x000a,\n\t0x15f6: 0x000a, 0x15f7: 0x000a, 0x15f8: 0x000a, 0x15f9: 0x000a, 0x15fa: 0x000a, 0x15fb: 0x000a,\n\t0x15fc: 0x000a, 0x15fd: 0x000a, 0x15fe: 0x000a, 0x15ff: 0x000a,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0x000a, 0x1601: 0x000a, 0x1602: 0x000a, 0x1603: 0x000a, 0x1604: 0x000a, 0x1605: 0x000a,\n\t0x1606: 0x000a, 0x1607: 0x000a, 0x1608: 0x000a, 0x1609: 0x000a, 0x160a: 0x000a, 0x160b: 0x000a,\n\t0x160c: 0x000a, 0x160d: 0x000a, 0x160e: 0x000a, 0x160f: 0x000a, 0x1610: 0x000a, 0x1611: 0x000a,\n\t0x1612: 0x0003, 0x1613: 0x0004, 0x1614: 0x000a, 0x1615: 0x000a, 0x1616: 0x000a, 0x1617: 0x000a,\n\t0x1618: 0x000a, 0x1619: 0x000a, 0x161a: 0x000a, 0x161b: 0x000a, 0x161c: 0x000a, 0x161d: 0x000a,\n\t0x161e: 0x000a, 0x161f: 0x000a, 0x1620: 0x000a, 0x1621: 0x000a, 0x1622: 0x000a, 0x1623: 0x000a,\n\t0x1624: 0x000a, 0x1625: 0x000a, 0x1626: 0x000a, 0x1627: 0x000a, 0x1628: 0x000a, 0x1629: 0x000a,\n\t0x162a: 0x000a, 0x162b: 0x000a, 0x162c: 0x000a, 0x162d: 0x000a, 0x162e: 0x000a, 0x162f: 0x000a,\n\t0x1630: 0x000a, 0x1631: 0x000a, 0x1632: 0x000a, 0x1633: 0x000a, 0x1634: 0x000a, 0x1635: 0x000a,\n\t0x1636: 0x000a, 0x1637: 0x000a, 0x1638: 0x000a, 0x1639: 0x000a, 0x163a: 0x000a, 0x163b: 0x000a,\n\t0x163c: 0x000a, 0x163d: 0x000a, 0x163e: 0x000a, 0x163f: 0x000a,\n\t// Block 0x59, offset 0x1640\n\t0x1640: 0x000a, 0x1641: 0x000a, 0x1642: 0x000a, 0x1643: 0x000a, 0x1644: 0x000a, 0x1645: 0x000a,\n\t0x1646: 0x000a, 0x1647: 0x000a, 0x1648: 0x003a, 0x1649: 0x002a, 0x164a: 0x003a, 0x164b: 0x002a,\n\t0x164c: 0x000a, 0x164d: 0x000a, 0x164e: 0x000a, 0x164f: 0x000a, 0x1650: 0x000a, 0x1651: 0x000a,\n\t0x1652: 0x000a, 0x1653: 0x000a, 0x1654: 0x000a, 0x1655: 0x000a, 0x1656: 0x000a, 0x1657: 0x000a,\n\t0x1658: 0x000a, 0x1659: 0x000a, 0x165a: 0x000a, 0x165b: 0x000a, 0x165c: 0x000a, 0x165d: 0x000a,\n\t0x165e: 0x000a, 0x165f: 0x000a, 0x1660: 0x000a, 0x1661: 0x000a, 0x1662: 0x000a, 0x1663: 0x000a,\n\t0x1664: 0x000a, 0x1665: 0x000a, 0x1666: 0x000a, 0x1667: 0x000a, 0x1668: 0x000a, 0x1669: 0x009a,\n\t0x166a: 0x008a, 0x166b: 0x000a, 0x166c: 0x000a, 0x166d: 0x000a, 0x166e: 0x000a, 0x166f: 0x000a,\n\t0x1670: 0x000a, 0x1671: 0x000a, 0x1672: 0x000a, 0x1673: 0x000a, 0x1674: 0x000a, 0x1675: 0x000a,\n\t// Block 0x5a, offset 0x1680\n\t0x16bb: 0x000a,\n\t0x16bc: 0x000a, 0x16bd: 0x000a, 0x16be: 0x000a, 0x16bf: 0x000a,\n\t// Block 0x5b, offset 0x16c0\n\t0x16c0: 0x000a, 0x16c1: 0x000a, 0x16c2: 0x000a, 0x16c3: 0x000a, 0x16c4: 0x000a, 0x16c5: 0x000a,\n\t0x16c6: 0x000a, 0x16c7: 0x000a, 0x16c8: 0x000a, 0x16c9: 0x000a, 0x16ca: 0x000a, 0x16cb: 0x000a,\n\t0x16cc: 0x000a, 0x16cd: 0x000a, 0x16ce: 0x000a, 0x16cf: 0x000a, 0x16d0: 0x000a, 0x16d1: 0x000a,\n\t0x16d2: 0x000a, 0x16d3: 0x000a, 0x16d4: 0x000a, 0x16d6: 0x000a, 0x16d7: 0x000a,\n\t0x16d8: 0x000a, 0x16d9: 0x000a, 0x16da: 0x000a, 0x16db: 0x000a, 0x16dc: 0x000a, 0x16dd: 0x000a,\n\t0x16de: 0x000a, 0x16df: 0x000a, 0x16e0: 0x000a, 0x16e1: 0x000a, 0x16e2: 0x000a, 0x16e3: 0x000a,\n\t0x16e4: 0x000a, 0x16e5: 0x000a, 0x16e6: 0x000a, 0x16e7: 0x000a, 0x16e8: 0x000a, 0x16e9: 0x000a,\n\t0x16ea: 0x000a, 0x16eb: 0x000a, 0x16ec: 0x000a, 0x16ed: 0x000a, 0x16ee: 0x000a, 0x16ef: 0x000a,\n\t0x16f0: 0x000a, 0x16f1: 0x000a, 0x16f2: 0x000a, 0x16f3: 0x000a, 0x16f4: 0x000a, 0x16f5: 0x000a,\n\t0x16f6: 0x000a, 0x16f7: 0x000a, 0x16f8: 0x000a, 0x16f9: 0x000a, 0x16fa: 0x000a, 0x16fb: 0x000a,\n\t0x16fc: 0x000a, 0x16fd: 0x000a, 0x16fe: 0x000a, 0x16ff: 0x000a,\n\t// Block 0x5c, offset 0x1700\n\t0x1700: 0x000a, 0x1701: 0x000a, 0x1702: 0x000a, 0x1703: 0x000a, 0x1704: 0x000a, 0x1705: 0x000a,\n\t0x1706: 0x000a, 0x1707: 0x000a, 0x1708: 0x000a, 0x1709: 0x000a, 0x170a: 0x000a, 0x170b: 0x000a,\n\t0x170c: 0x000a, 0x170d: 0x000a, 0x170e: 0x000a, 0x170f: 0x000a, 0x1710: 0x000a, 0x1711: 0x000a,\n\t0x1712: 0x000a, 0x1713: 0x000a, 0x1714: 0x000a, 0x1715: 0x000a, 0x1716: 0x000a, 0x1717: 0x000a,\n\t0x1718: 0x000a, 0x1719: 0x000a, 0x171a: 0x000a, 0x171b: 0x000a, 0x171c: 0x000a, 0x171d: 0x000a,\n\t0x171e: 0x000a, 0x171f: 0x000a, 0x1720: 0x000a, 0x1721: 0x000a, 0x1722: 0x000a, 0x1723: 0x000a,\n\t0x1724: 0x000a, 0x1725: 0x000a, 0x1726: 0x000a,\n\t// Block 0x5d, offset 0x1740\n\t0x1740: 0x000a, 0x1741: 0x000a, 0x1742: 0x000a, 0x1743: 0x000a, 0x1744: 0x000a, 0x1745: 0x000a,\n\t0x1746: 0x000a, 0x1747: 0x000a, 0x1748: 0x000a, 0x1749: 0x000a, 0x174a: 0x000a,\n\t0x1760: 0x000a, 0x1761: 0x000a, 0x1762: 0x000a, 0x1763: 0x000a,\n\t0x1764: 0x000a, 0x1765: 0x000a, 0x1766: 0x000a, 0x1767: 0x000a, 0x1768: 0x000a, 0x1769: 0x000a,\n\t0x176a: 0x000a, 0x176b: 0x000a, 0x176c: 0x000a, 0x176d: 0x000a, 0x176e: 0x000a, 0x176f: 0x000a,\n\t0x1770: 0x000a, 0x1771: 0x000a, 0x1772: 0x000a, 0x1773: 0x000a, 0x1774: 0x000a, 0x1775: 0x000a,\n\t0x1776: 0x000a, 0x1777: 0x000a, 0x1778: 0x000a, 0x1779: 0x000a, 0x177a: 0x000a, 0x177b: 0x000a,\n\t0x177c: 0x000a, 0x177d: 0x000a, 0x177e: 0x000a, 0x177f: 0x000a,\n\t// Block 0x5e, offset 0x1780\n\t0x1780: 0x000a, 0x1781: 0x000a, 0x1782: 0x000a, 0x1783: 0x000a, 0x1784: 0x000a, 0x1785: 0x000a,\n\t0x1786: 0x000a, 0x1787: 0x000a, 0x1788: 0x0002, 0x1789: 0x0002, 0x178a: 0x0002, 0x178b: 0x0002,\n\t0x178c: 0x0002, 0x178d: 0x0002, 0x178e: 0x0002, 0x178f: 0x0002, 0x1790: 0x0002, 0x1791: 0x0002,\n\t0x1792: 0x0002, 0x1793: 0x0002, 0x1794: 0x0002, 0x1795: 0x0002, 0x1796: 0x0002, 0x1797: 0x0002,\n\t0x1798: 0x0002, 0x1799: 0x0002, 0x179a: 0x0002, 0x179b: 0x0002,\n\t// Block 0x5f, offset 0x17c0\n\t0x17ea: 0x000a, 0x17eb: 0x000a, 0x17ec: 0x000a, 0x17ed: 0x000a, 0x17ee: 0x000a, 0x17ef: 0x000a,\n\t0x17f0: 0x000a, 0x17f1: 0x000a, 0x17f2: 0x000a, 0x17f3: 0x000a, 0x17f4: 0x000a, 0x17f5: 0x000a,\n\t0x17f6: 0x000a, 0x17f7: 0x000a, 0x17f8: 0x000a, 0x17f9: 0x000a, 0x17fa: 0x000a, 0x17fb: 0x000a,\n\t0x17fc: 0x000a, 0x17fd: 0x000a, 0x17fe: 0x000a, 0x17ff: 0x000a,\n\t// Block 0x60, offset 0x1800\n\t0x1800: 0x000a, 0x1801: 0x000a, 0x1802: 0x000a, 0x1803: 0x000a, 0x1804: 0x000a, 0x1805: 0x000a,\n\t0x1806: 0x000a, 0x1807: 0x000a, 0x1808: 0x000a, 0x1809: 0x000a, 0x180a: 0x000a, 0x180b: 0x000a,\n\t0x180c: 0x000a, 0x180d: 0x000a, 0x180e: 0x000a, 0x180f: 0x000a, 0x1810: 0x000a, 0x1811: 0x000a,\n\t0x1812: 0x000a, 0x1813: 0x000a, 0x1814: 0x000a, 0x1815: 0x000a, 0x1816: 0x000a, 0x1817: 0x000a,\n\t0x1818: 0x000a, 0x1819: 0x000a, 0x181a: 0x000a, 0x181b: 0x000a, 0x181c: 0x000a, 0x181d: 0x000a,\n\t0x181e: 0x000a, 0x181f: 0x000a, 0x1820: 0x000a, 0x1821: 0x000a, 0x1822: 0x000a, 0x1823: 0x000a,\n\t0x1824: 0x000a, 0x1825: 0x000a, 0x1826: 0x000a, 0x1827: 0x000a, 0x1828: 0x000a, 0x1829: 0x000a,\n\t0x182a: 0x000a, 0x182b: 0x000a, 0x182d: 0x000a, 0x182e: 0x000a, 0x182f: 0x000a,\n\t0x1830: 0x000a, 0x1831: 0x000a, 0x1832: 0x000a, 0x1833: 0x000a, 0x1834: 0x000a, 0x1835: 0x000a,\n\t0x1836: 0x000a, 0x1837: 0x000a, 0x1838: 0x000a, 0x1839: 0x000a, 0x183a: 0x000a, 0x183b: 0x000a,\n\t0x183c: 0x000a, 0x183d: 0x000a, 0x183e: 0x000a, 0x183f: 0x000a,\n\t// Block 0x61, offset 0x1840\n\t0x1840: 0x000a, 0x1841: 0x000a, 0x1842: 0x000a, 0x1843: 0x000a, 0x1844: 0x000a, 0x1845: 0x000a,\n\t0x1846: 0x000a, 0x1847: 0x000a, 0x1848: 0x000a, 0x1849: 0x000a, 0x184a: 0x000a, 0x184b: 0x000a,\n\t0x184c: 0x000a, 0x184d: 0x000a, 0x184e: 0x000a, 0x184f: 0x000a, 0x1850: 0x000a, 0x1851: 0x000a,\n\t0x1852: 0x000a, 0x1853: 0x000a, 0x1854: 0x000a, 0x1855: 0x000a, 0x1856: 0x000a, 0x1857: 0x000a,\n\t0x1858: 0x000a, 0x1859: 0x000a, 0x185a: 0x000a, 0x185b: 0x000a, 0x185c: 0x000a, 0x185d: 0x000a,\n\t0x185e: 0x000a, 0x185f: 0x000a, 0x1860: 0x000a, 0x1861: 0x000a, 0x1862: 0x000a, 0x1863: 0x000a,\n\t0x1864: 0x000a, 0x1865: 0x000a, 0x1866: 0x000a, 0x1867: 0x000a, 0x1868: 0x003a, 0x1869: 0x002a,\n\t0x186a: 0x003a, 0x186b: 0x002a, 0x186c: 0x003a, 0x186d: 0x002a, 0x186e: 0x003a, 0x186f: 0x002a,\n\t0x1870: 0x003a, 0x1871: 0x002a, 0x1872: 0x003a, 0x1873: 0x002a, 0x1874: 0x003a, 0x1875: 0x002a,\n\t0x1876: 0x000a, 0x1877: 0x000a, 0x1878: 0x000a, 0x1879: 0x000a, 0x187a: 0x000a, 0x187b: 0x000a,\n\t0x187c: 0x000a, 0x187d: 0x000a, 0x187e: 0x000a, 0x187f: 0x000a,\n\t// Block 0x62, offset 0x1880\n\t0x1880: 0x000a, 0x1881: 0x000a, 0x1882: 0x000a, 0x1883: 0x000a, 0x1884: 0x000a, 0x1885: 0x009a,\n\t0x1886: 0x008a, 0x1887: 0x000a, 0x1888: 0x000a, 0x1889: 0x000a, 0x188a: 0x000a, 0x188b: 0x000a,\n\t0x188c: 0x000a, 0x188d: 0x000a, 0x188e: 0x000a, 0x188f: 0x000a, 0x1890: 0x000a, 0x1891: 0x000a,\n\t0x1892: 0x000a, 0x1893: 0x000a, 0x1894: 0x000a, 0x1895: 0x000a, 0x1896: 0x000a, 0x1897: 0x000a,\n\t0x1898: 0x000a, 0x1899: 0x000a, 0x189a: 0x000a, 0x189b: 0x000a, 0x189c: 0x000a, 0x189d: 0x000a,\n\t0x189e: 0x000a, 0x189f: 0x000a, 0x18a0: 0x000a, 0x18a1: 0x000a, 0x18a2: 0x000a, 0x18a3: 0x000a,\n\t0x18a4: 0x000a, 0x18a5: 0x000a, 0x18a6: 0x003a, 0x18a7: 0x002a, 0x18a8: 0x003a, 0x18a9: 0x002a,\n\t0x18aa: 0x003a, 0x18ab: 0x002a, 0x18ac: 0x003a, 0x18ad: 0x002a, 0x18ae: 0x003a, 0x18af: 0x002a,\n\t0x18b0: 0x000a, 0x18b1: 0x000a, 0x18b2: 0x000a, 0x18b3: 0x000a, 0x18b4: 0x000a, 0x18b5: 0x000a,\n\t0x18b6: 0x000a, 0x18b7: 0x000a, 0x18b8: 0x000a, 0x18b9: 0x000a, 0x18ba: 0x000a, 0x18bb: 0x000a,\n\t0x18bc: 0x000a, 0x18bd: 0x000a, 0x18be: 0x000a, 0x18bf: 0x000a,\n\t// Block 0x63, offset 0x18c0\n\t0x18c0: 0x000a, 0x18c1: 0x000a, 0x18c2: 0x000a, 0x18c3: 0x007a, 0x18c4: 0x006a, 0x18c5: 0x009a,\n\t0x18c6: 0x008a, 0x18c7: 0x00ba, 0x18c8: 0x00aa, 0x18c9: 0x009a, 0x18ca: 0x008a, 0x18cb: 0x007a,\n\t0x18cc: 0x006a, 0x18cd: 0x00da, 0x18ce: 0x002a, 0x18cf: 0x003a, 0x18d0: 0x00ca, 0x18d1: 0x009a,\n\t0x18d2: 0x008a, 0x18d3: 0x007a, 0x18d4: 0x006a, 0x18d5: 0x009a, 0x18d6: 0x008a, 0x18d7: 0x00ba,\n\t0x18d8: 0x00aa, 0x18d9: 0x000a, 0x18da: 0x000a, 0x18db: 0x000a, 0x18dc: 0x000a, 0x18dd: 0x000a,\n\t0x18de: 0x000a, 0x18df: 0x000a, 0x18e0: 0x000a, 0x18e1: 0x000a, 0x18e2: 0x000a, 0x18e3: 0x000a,\n\t0x18e4: 0x000a, 0x18e5: 0x000a, 0x18e6: 0x000a, 0x18e7: 0x000a, 0x18e8: 0x000a, 0x18e9: 0x000a,\n\t0x18ea: 0x000a, 0x18eb: 0x000a, 0x18ec: 0x000a, 0x18ed: 0x000a, 0x18ee: 0x000a, 0x18ef: 0x000a,\n\t0x18f0: 0x000a, 0x18f1: 0x000a, 0x18f2: 0x000a, 0x18f3: 0x000a, 0x18f4: 0x000a, 0x18f5: 0x000a,\n\t0x18f6: 0x000a, 0x18f7: 0x000a, 0x18f8: 0x000a, 0x18f9: 0x000a, 0x18fa: 0x000a, 0x18fb: 0x000a,\n\t0x18fc: 0x000a, 0x18fd: 0x000a, 0x18fe: 0x000a, 0x18ff: 0x000a,\n\t// Block 0x64, offset 0x1900\n\t0x1900: 0x000a, 0x1901: 0x000a, 0x1902: 0x000a, 0x1903: 0x000a, 0x1904: 0x000a, 0x1905: 0x000a,\n\t0x1906: 0x000a, 0x1907: 0x000a, 0x1908: 0x000a, 0x1909: 0x000a, 0x190a: 0x000a, 0x190b: 0x000a,\n\t0x190c: 0x000a, 0x190d: 0x000a, 0x190e: 0x000a, 0x190f: 0x000a, 0x1910: 0x000a, 0x1911: 0x000a,\n\t0x1912: 0x000a, 0x1913: 0x000a, 0x1914: 0x000a, 0x1915: 0x000a, 0x1916: 0x000a, 0x1917: 0x000a,\n\t0x1918: 0x003a, 0x1919: 0x002a, 0x191a: 0x003a, 0x191b: 0x002a, 0x191c: 0x000a, 0x191d: 0x000a,\n\t0x191e: 0x000a, 0x191f: 0x000a, 0x1920: 0x000a, 0x1921: 0x000a, 0x1922: 0x000a, 0x1923: 0x000a,\n\t0x1924: 0x000a, 0x1925: 0x000a, 0x1926: 0x000a, 0x1927: 0x000a, 0x1928: 0x000a, 0x1929: 0x000a,\n\t0x192a: 0x000a, 0x192b: 0x000a, 0x192c: 0x000a, 0x192d: 0x000a, 0x192e: 0x000a, 0x192f: 0x000a,\n\t0x1930: 0x000a, 0x1931: 0x000a, 0x1932: 0x000a, 0x1933: 0x000a, 0x1934: 0x000a, 0x1935: 0x000a,\n\t0x1936: 0x000a, 0x1937: 0x000a, 0x1938: 0x000a, 0x1939: 0x000a, 0x193a: 0x000a, 0x193b: 0x000a,\n\t0x193c: 0x003a, 0x193d: 0x002a, 0x193e: 0x000a, 0x193f: 0x000a,\n\t// Block 0x65, offset 0x1940\n\t0x1940: 0x000a, 0x1941: 0x000a, 0x1942: 0x000a, 0x1943: 0x000a, 0x1944: 0x000a, 0x1945: 0x000a,\n\t0x1946: 0x000a, 0x1947: 0x000a, 0x1948: 0x000a, 0x1949: 0x000a, 0x194a: 0x000a, 0x194b: 0x000a,\n\t0x194c: 0x000a, 0x194d: 0x000a, 0x194e: 0x000a, 0x194f: 0x000a, 0x1950: 0x000a, 0x1951: 0x000a,\n\t0x1952: 0x000a, 0x1953: 0x000a, 0x1954: 0x000a, 0x1955: 0x000a, 0x1956: 0x000a, 0x1957: 0x000a,\n\t0x1958: 0x000a, 0x1959: 0x000a, 0x195a: 0x000a, 0x195b: 0x000a, 0x195c: 0x000a, 0x195d: 0x000a,\n\t0x195e: 0x000a, 0x195f: 0x000a, 0x1960: 0x000a, 0x1961: 0x000a, 0x1962: 0x000a, 0x1963: 0x000a,\n\t0x1964: 0x000a, 0x1965: 0x000a, 0x1966: 0x000a, 0x1967: 0x000a, 0x1968: 0x000a, 0x1969: 0x000a,\n\t0x196a: 0x000a, 0x196b: 0x000a, 0x196c: 0x000a, 0x196d: 0x000a, 0x196e: 0x000a, 0x196f: 0x000a,\n\t0x1970: 0x000a, 0x1971: 0x000a, 0x1972: 0x000a, 0x1973: 0x000a,\n\t0x1976: 0x000a, 0x1977: 0x000a, 0x1978: 0x000a, 0x1979: 0x000a, 0x197a: 0x000a, 0x197b: 0x000a,\n\t0x197c: 0x000a, 0x197d: 0x000a, 0x197e: 0x000a, 0x197f: 0x000a,\n\t// Block 0x66, offset 0x1980\n\t0x1980: 0x000a, 0x1981: 0x000a, 0x1982: 0x000a, 0x1983: 0x000a, 0x1984: 0x000a, 0x1985: 0x000a,\n\t0x1986: 0x000a, 0x1987: 0x000a, 0x1988: 0x000a, 0x1989: 0x000a, 0x198a: 0x000a, 0x198b: 0x000a,\n\t0x198c: 0x000a, 0x198d: 0x000a, 0x198e: 0x000a, 0x198f: 0x000a, 0x1990: 0x000a, 0x1991: 0x000a,\n\t0x1992: 0x000a, 0x1993: 0x000a, 0x1994: 0x000a, 0x1995: 0x000a, 0x1997: 0x000a,\n\t0x1998: 0x000a, 0x1999: 0x000a, 0x199a: 0x000a, 0x199b: 0x000a, 0x199c: 0x000a, 0x199d: 0x000a,\n\t0x199e: 0x000a, 0x199f: 0x000a, 0x19a0: 0x000a, 0x19a1: 0x000a, 0x19a2: 0x000a, 0x19a3: 0x000a,\n\t0x19a4: 0x000a, 0x19a5: 0x000a, 0x19a6: 0x000a, 0x19a7: 0x000a, 0x19a8: 0x000a, 0x19a9: 0x000a,\n\t0x19aa: 0x000a, 0x19ab: 0x000a, 0x19ac: 0x000a, 0x19ad: 0x000a, 0x19ae: 0x000a, 0x19af: 0x000a,\n\t0x19b0: 0x000a, 0x19b1: 0x000a, 0x19b2: 0x000a, 0x19b3: 0x000a, 0x19b4: 0x000a, 0x19b5: 0x000a,\n\t0x19b6: 0x000a, 0x19b7: 0x000a, 0x19b8: 0x000a, 0x19b9: 0x000a, 0x19ba: 0x000a, 0x19bb: 0x000a,\n\t0x19bc: 0x000a, 0x19bd: 0x000a, 0x19be: 0x000a, 0x19bf: 0x000a,\n\t// Block 0x67, offset 0x19c0\n\t0x19e5: 0x000a, 0x19e6: 0x000a, 0x19e7: 0x000a, 0x19e8: 0x000a, 0x19e9: 0x000a,\n\t0x19ea: 0x000a, 0x19ef: 0x000c,\n\t0x19f0: 0x000c, 0x19f1: 0x000c,\n\t0x19f9: 0x000a, 0x19fa: 0x000a, 0x19fb: 0x000a,\n\t0x19fc: 0x000a, 0x19fd: 0x000a, 0x19fe: 0x000a, 0x19ff: 0x000a,\n\t// Block 0x68, offset 0x1a00\n\t0x1a3f: 0x000c,\n\t// Block 0x69, offset 0x1a40\n\t0x1a60: 0x000c, 0x1a61: 0x000c, 0x1a62: 0x000c, 0x1a63: 0x000c,\n\t0x1a64: 0x000c, 0x1a65: 0x000c, 0x1a66: 0x000c, 0x1a67: 0x000c, 0x1a68: 0x000c, 0x1a69: 0x000c,\n\t0x1a6a: 0x000c, 0x1a6b: 0x000c, 0x1a6c: 0x000c, 0x1a6d: 0x000c, 0x1a6e: 0x000c, 0x1a6f: 0x000c,\n\t0x1a70: 0x000c, 0x1a71: 0x000c, 0x1a72: 0x000c, 0x1a73: 0x000c, 0x1a74: 0x000c, 0x1a75: 0x000c,\n\t0x1a76: 0x000c, 0x1a77: 0x000c, 0x1a78: 0x000c, 0x1a79: 0x000c, 0x1a7a: 0x000c, 0x1a7b: 0x000c,\n\t0x1a7c: 0x000c, 0x1a7d: 0x000c, 0x1a7e: 0x000c, 0x1a7f: 0x000c,\n\t// Block 0x6a, offset 0x1a80\n\t0x1a80: 0x000a, 0x1a81: 0x000a, 0x1a82: 0x000a, 0x1a83: 0x000a, 0x1a84: 0x000a, 0x1a85: 0x000a,\n\t0x1a86: 0x000a, 0x1a87: 0x000a, 0x1a88: 0x000a, 0x1a89: 0x000a, 0x1a8a: 0x000a, 0x1a8b: 0x000a,\n\t0x1a8c: 0x000a, 0x1a8d: 0x000a, 0x1a8e: 0x000a, 0x1a8f: 0x000a, 0x1a90: 0x000a, 0x1a91: 0x000a,\n\t0x1a92: 0x000a, 0x1a93: 0x000a, 0x1a94: 0x000a, 0x1a95: 0x000a, 0x1a96: 0x000a, 0x1a97: 0x000a,\n\t0x1a98: 0x000a, 0x1a99: 0x000a, 0x1a9a: 0x000a, 0x1a9b: 0x000a, 0x1a9c: 0x000a, 0x1a9d: 0x000a,\n\t0x1a9e: 0x000a, 0x1a9f: 0x000a, 0x1aa0: 0x000a, 0x1aa1: 0x000a, 0x1aa2: 0x003a, 0x1aa3: 0x002a,\n\t0x1aa4: 0x003a, 0x1aa5: 0x002a, 0x1aa6: 0x003a, 0x1aa7: 0x002a, 0x1aa8: 0x003a, 0x1aa9: 0x002a,\n\t0x1aaa: 0x000a, 0x1aab: 0x000a, 0x1aac: 0x000a, 0x1aad: 0x000a, 0x1aae: 0x000a, 0x1aaf: 0x000a,\n\t0x1ab0: 0x000a, 0x1ab1: 0x000a, 0x1ab2: 0x000a, 0x1ab3: 0x000a, 0x1ab4: 0x000a, 0x1ab5: 0x000a,\n\t0x1ab6: 0x000a, 0x1ab7: 0x000a, 0x1ab8: 0x000a, 0x1ab9: 0x000a, 0x1aba: 0x000a, 0x1abb: 0x000a,\n\t0x1abc: 0x000a, 0x1abd: 0x000a, 0x1abe: 0x000a, 0x1abf: 0x000a,\n\t// Block 0x6b, offset 0x1ac0\n\t0x1ac0: 0x000a, 0x1ac1: 0x000a, 0x1ac2: 0x000a, 0x1ac3: 0x000a, 0x1ac4: 0x000a, 0x1ac5: 0x000a,\n\t0x1ac6: 0x000a, 0x1ac7: 0x000a, 0x1ac8: 0x000a, 0x1ac9: 0x000a, 0x1aca: 0x000a, 0x1acb: 0x000a,\n\t0x1acc: 0x000a, 0x1acd: 0x000a, 0x1ace: 0x000a, 0x1acf: 0x000a, 0x1ad0: 0x000a, 0x1ad1: 0x000a,\n\t0x1ad2: 0x000a, 0x1ad3: 0x000a, 0x1ad4: 0x000a, 0x1ad5: 0x009a, 0x1ad6: 0x008a, 0x1ad7: 0x00ba,\n\t0x1ad8: 0x00aa, 0x1ad9: 0x009a, 0x1ada: 0x008a, 0x1adb: 0x007a, 0x1adc: 0x006a, 0x1add: 0x000a,\n\t// Block 0x6c, offset 0x1b00\n\t0x1b00: 0x000a, 0x1b01: 0x000a, 0x1b02: 0x000a, 0x1b03: 0x000a, 0x1b04: 0x000a, 0x1b05: 0x000a,\n\t0x1b06: 0x000a, 0x1b07: 0x000a, 0x1b08: 0x000a, 0x1b09: 0x000a, 0x1b0a: 0x000a, 0x1b0b: 0x000a,\n\t0x1b0c: 0x000a, 0x1b0d: 0x000a, 0x1b0e: 0x000a, 0x1b0f: 0x000a, 0x1b10: 0x000a, 0x1b11: 0x000a,\n\t0x1b12: 0x000a, 0x1b13: 0x000a, 0x1b14: 0x000a, 0x1b15: 0x000a, 0x1b16: 0x000a, 0x1b17: 0x000a,\n\t0x1b18: 0x000a, 0x1b19: 0x000a, 0x1b1b: 0x000a, 0x1b1c: 0x000a, 0x1b1d: 0x000a,\n\t0x1b1e: 0x000a, 0x1b1f: 0x000a, 0x1b20: 0x000a, 0x1b21: 0x000a, 0x1b22: 0x000a, 0x1b23: 0x000a,\n\t0x1b24: 0x000a, 0x1b25: 0x000a, 0x1b26: 0x000a, 0x1b27: 0x000a, 0x1b28: 0x000a, 0x1b29: 0x000a,\n\t0x1b2a: 0x000a, 0x1b2b: 0x000a, 0x1b2c: 0x000a, 0x1b2d: 0x000a, 0x1b2e: 0x000a, 0x1b2f: 0x000a,\n\t0x1b30: 0x000a, 0x1b31: 0x000a, 0x1b32: 0x000a, 0x1b33: 0x000a, 0x1b34: 0x000a, 0x1b35: 0x000a,\n\t0x1b36: 0x000a, 0x1b37: 0x000a, 0x1b38: 0x000a, 0x1b39: 0x000a, 0x1b3a: 0x000a, 0x1b3b: 0x000a,\n\t0x1b3c: 0x000a, 0x1b3d: 0x000a, 0x1b3e: 0x000a, 0x1b3f: 0x000a,\n\t// Block 0x6d, offset 0x1b40\n\t0x1b40: 0x000a, 0x1b41: 0x000a, 0x1b42: 0x000a, 0x1b43: 0x000a, 0x1b44: 0x000a, 0x1b45: 0x000a,\n\t0x1b46: 0x000a, 0x1b47: 0x000a, 0x1b48: 0x000a, 0x1b49: 0x000a, 0x1b4a: 0x000a, 0x1b4b: 0x000a,\n\t0x1b4c: 0x000a, 0x1b4d: 0x000a, 0x1b4e: 0x000a, 0x1b4f: 0x000a, 0x1b50: 0x000a, 0x1b51: 0x000a,\n\t0x1b52: 0x000a, 0x1b53: 0x000a, 0x1b54: 0x000a, 0x1b55: 0x000a, 0x1b56: 0x000a, 0x1b57: 0x000a,\n\t0x1b58: 0x000a, 0x1b59: 0x000a, 0x1b5a: 0x000a, 0x1b5b: 0x000a, 0x1b5c: 0x000a, 0x1b5d: 0x000a,\n\t0x1b5e: 0x000a, 0x1b5f: 0x000a, 0x1b60: 0x000a, 0x1b61: 0x000a, 0x1b62: 0x000a, 0x1b63: 0x000a,\n\t0x1b64: 0x000a, 0x1b65: 0x000a, 0x1b66: 0x000a, 0x1b67: 0x000a, 0x1b68: 0x000a, 0x1b69: 0x000a,\n\t0x1b6a: 0x000a, 0x1b6b: 0x000a, 0x1b6c: 0x000a, 0x1b6d: 0x000a, 0x1b6e: 0x000a, 0x1b6f: 0x000a,\n\t0x1b70: 0x000a, 0x1b71: 0x000a, 0x1b72: 0x000a, 0x1b73: 0x000a,\n\t// Block 0x6e, offset 0x1b80\n\t0x1b80: 0x000a, 0x1b81: 0x000a, 0x1b82: 0x000a, 0x1b83: 0x000a, 0x1b84: 0x000a, 0x1b85: 0x000a,\n\t0x1b86: 0x000a, 0x1b87: 0x000a, 0x1b88: 0x000a, 0x1b89: 0x000a, 0x1b8a: 0x000a, 0x1b8b: 0x000a,\n\t0x1b8c: 0x000a, 0x1b8d: 0x000a, 0x1b8e: 0x000a, 0x1b8f: 0x000a, 0x1b90: 0x000a, 0x1b91: 0x000a,\n\t0x1b92: 0x000a, 0x1b93: 0x000a, 0x1b94: 0x000a, 0x1b95: 0x000a,\n\t0x1bb0: 0x000a, 0x1bb1: 0x000a, 0x1bb2: 0x000a, 0x1bb3: 0x000a, 0x1bb4: 0x000a, 0x1bb5: 0x000a,\n\t0x1bb6: 0x000a, 0x1bb7: 0x000a, 0x1bb8: 0x000a, 0x1bb9: 0x000a, 0x1bba: 0x000a, 0x1bbb: 0x000a,\n\t// Block 0x6f, offset 0x1bc0\n\t0x1bc0: 0x0009, 0x1bc1: 0x000a, 0x1bc2: 0x000a, 0x1bc3: 0x000a, 0x1bc4: 0x000a,\n\t0x1bc8: 0x003a, 0x1bc9: 0x002a, 0x1bca: 0x003a, 0x1bcb: 0x002a,\n\t0x1bcc: 0x003a, 0x1bcd: 0x002a, 0x1bce: 0x003a, 0x1bcf: 0x002a, 0x1bd0: 0x003a, 0x1bd1: 0x002a,\n\t0x1bd2: 0x000a, 0x1bd3: 0x000a, 0x1bd4: 0x003a, 0x1bd5: 0x002a, 0x1bd6: 0x003a, 0x1bd7: 0x002a,\n\t0x1bd8: 0x003a, 0x1bd9: 0x002a, 0x1bda: 0x003a, 0x1bdb: 0x002a, 0x1bdc: 0x000a, 0x1bdd: 0x000a,\n\t0x1bde: 0x000a, 0x1bdf: 0x000a, 0x1be0: 0x000a,\n\t0x1bea: 0x000c, 0x1beb: 0x000c, 0x1bec: 0x000c, 0x1bed: 0x000c,\n\t0x1bf0: 0x000a,\n\t0x1bf6: 0x000a, 0x1bf7: 0x000a,\n\t0x1bfd: 0x000a, 0x1bfe: 0x000a, 0x1bff: 0x000a,\n\t// Block 0x70, offset 0x1c00\n\t0x1c19: 0x000c, 0x1c1a: 0x000c, 0x1c1b: 0x000a, 0x1c1c: 0x000a,\n\t0x1c20: 0x000a,\n\t// Block 0x71, offset 0x1c40\n\t0x1c7b: 0x000a,\n\t// Block 0x72, offset 0x1c80\n\t0x1c80: 0x000a, 0x1c81: 0x000a, 0x1c82: 0x000a, 0x1c83: 0x000a, 0x1c84: 0x000a, 0x1c85: 0x000a,\n\t0x1c86: 0x000a, 0x1c87: 0x000a, 0x1c88: 0x000a, 0x1c89: 0x000a, 0x1c8a: 0x000a, 0x1c8b: 0x000a,\n\t0x1c8c: 0x000a, 0x1c8d: 0x000a, 0x1c8e: 0x000a, 0x1c8f: 0x000a, 0x1c90: 0x000a, 0x1c91: 0x000a,\n\t0x1c92: 0x000a, 0x1c93: 0x000a, 0x1c94: 0x000a, 0x1c95: 0x000a, 0x1c96: 0x000a, 0x1c97: 0x000a,\n\t0x1c98: 0x000a, 0x1c99: 0x000a, 0x1c9a: 0x000a, 0x1c9b: 0x000a, 0x1c9c: 0x000a, 0x1c9d: 0x000a,\n\t0x1c9e: 0x000a, 0x1c9f: 0x000a, 0x1ca0: 0x000a, 0x1ca1: 0x000a, 0x1ca2: 0x000a, 0x1ca3: 0x000a,\n\t// Block 0x73, offset 0x1cc0\n\t0x1cdd: 0x000a,\n\t0x1cde: 0x000a,\n\t// Block 0x74, offset 0x1d00\n\t0x1d10: 0x000a, 0x1d11: 0x000a,\n\t0x1d12: 0x000a, 0x1d13: 0x000a, 0x1d14: 0x000a, 0x1d15: 0x000a, 0x1d16: 0x000a, 0x1d17: 0x000a,\n\t0x1d18: 0x000a, 0x1d19: 0x000a, 0x1d1a: 0x000a, 0x1d1b: 0x000a, 0x1d1c: 0x000a, 0x1d1d: 0x000a,\n\t0x1d1e: 0x000a, 0x1d1f: 0x000a,\n\t0x1d3c: 0x000a, 0x1d3d: 0x000a, 0x1d3e: 0x000a,\n\t// Block 0x75, offset 0x1d40\n\t0x1d71: 0x000a, 0x1d72: 0x000a, 0x1d73: 0x000a, 0x1d74: 0x000a, 0x1d75: 0x000a,\n\t0x1d76: 0x000a, 0x1d77: 0x000a, 0x1d78: 0x000a, 0x1d79: 0x000a, 0x1d7a: 0x000a, 0x1d7b: 0x000a,\n\t0x1d7c: 0x000a, 0x1d7d: 0x000a, 0x1d7e: 0x000a, 0x1d7f: 0x000a,\n\t// Block 0x76, offset 0x1d80\n\t0x1d8c: 0x000a, 0x1d8d: 0x000a, 0x1d8e: 0x000a, 0x1d8f: 0x000a,\n\t// Block 0x77, offset 0x1dc0\n\t0x1df7: 0x000a, 0x1df8: 0x000a, 0x1df9: 0x000a, 0x1dfa: 0x000a,\n\t// Block 0x78, offset 0x1e00\n\t0x1e1e: 0x000a, 0x1e1f: 0x000a,\n\t0x1e3f: 0x000a,\n\t// Block 0x79, offset 0x1e40\n\t0x1e50: 0x000a, 0x1e51: 0x000a,\n\t0x1e52: 0x000a, 0x1e53: 0x000a, 0x1e54: 0x000a, 0x1e55: 0x000a, 0x1e56: 0x000a, 0x1e57: 0x000a,\n\t0x1e58: 0x000a, 0x1e59: 0x000a, 0x1e5a: 0x000a, 0x1e5b: 0x000a, 0x1e5c: 0x000a, 0x1e5d: 0x000a,\n\t0x1e5e: 0x000a, 0x1e5f: 0x000a, 0x1e60: 0x000a, 0x1e61: 0x000a, 0x1e62: 0x000a, 0x1e63: 0x000a,\n\t0x1e64: 0x000a, 0x1e65: 0x000a, 0x1e66: 0x000a, 0x1e67: 0x000a, 0x1e68: 0x000a, 0x1e69: 0x000a,\n\t0x1e6a: 0x000a, 0x1e6b: 0x000a, 0x1e6c: 0x000a, 0x1e6d: 0x000a, 0x1e6e: 0x000a, 0x1e6f: 0x000a,\n\t0x1e70: 0x000a, 0x1e71: 0x000a, 0x1e72: 0x000a, 0x1e73: 0x000a, 0x1e74: 0x000a, 0x1e75: 0x000a,\n\t0x1e76: 0x000a, 0x1e77: 0x000a, 0x1e78: 0x000a, 0x1e79: 0x000a, 0x1e7a: 0x000a, 0x1e7b: 0x000a,\n\t0x1e7c: 0x000a, 0x1e7d: 0x000a, 0x1e7e: 0x000a, 0x1e7f: 0x000a,\n\t// Block 0x7a, offset 0x1e80\n\t0x1e80: 0x000a, 0x1e81: 0x000a, 0x1e82: 0x000a, 0x1e83: 0x000a, 0x1e84: 0x000a, 0x1e85: 0x000a,\n\t0x1e86: 0x000a,\n\t// Block 0x7b, offset 0x1ec0\n\t0x1ecd: 0x000a, 0x1ece: 0x000a, 0x1ecf: 0x000a,\n\t// Block 0x7c, offset 0x1f00\n\t0x1f2f: 0x000c,\n\t0x1f30: 0x000c, 0x1f31: 0x000c, 0x1f32: 0x000c, 0x1f33: 0x000a, 0x1f34: 0x000c, 0x1f35: 0x000c,\n\t0x1f36: 0x000c, 0x1f37: 0x000c, 0x1f38: 0x000c, 0x1f39: 0x000c, 0x1f3a: 0x000c, 0x1f3b: 0x000c,\n\t0x1f3c: 0x000c, 0x1f3d: 0x000c, 0x1f3e: 0x000a, 0x1f3f: 0x000a,\n\t// Block 0x7d, offset 0x1f40\n\t0x1f5e: 0x000c, 0x1f5f: 0x000c,\n\t// Block 0x7e, offset 0x1f80\n\t0x1fb0: 0x000c, 0x1fb1: 0x000c,\n\t// Block 0x7f, offset 0x1fc0\n\t0x1fc0: 0x000a, 0x1fc1: 0x000a, 0x1fc2: 0x000a, 0x1fc3: 0x000a, 0x1fc4: 0x000a, 0x1fc5: 0x000a,\n\t0x1fc6: 0x000a, 0x1fc7: 0x000a, 0x1fc8: 0x000a, 0x1fc9: 0x000a, 0x1fca: 0x000a, 0x1fcb: 0x000a,\n\t0x1fcc: 0x000a, 0x1fcd: 0x000a, 0x1fce: 0x000a, 0x1fcf: 0x000a, 0x1fd0: 0x000a, 0x1fd1: 0x000a,\n\t0x1fd2: 0x000a, 0x1fd3: 0x000a, 0x1fd4: 0x000a, 0x1fd5: 0x000a, 0x1fd6: 0x000a, 0x1fd7: 0x000a,\n\t0x1fd8: 0x000a, 0x1fd9: 0x000a, 0x1fda: 0x000a, 0x1fdb: 0x000a, 0x1fdc: 0x000a, 0x1fdd: 0x000a,\n\t0x1fde: 0x000a, 0x1fdf: 0x000a, 0x1fe0: 0x000a, 0x1fe1: 0x000a,\n\t// Block 0x80, offset 0x2000\n\t0x2008: 0x000a,\n\t// Block 0x81, offset 0x2040\n\t0x2042: 0x000c,\n\t0x2046: 0x000c, 0x204b: 0x000c,\n\t0x2065: 0x000c, 0x2066: 0x000c, 0x2068: 0x000a, 0x2069: 0x000a,\n\t0x206a: 0x000a, 0x206b: 0x000a, 0x206c: 0x000c,\n\t0x2078: 0x0004, 0x2079: 0x0004,\n\t// Block 0x82, offset 0x2080\n\t0x20b4: 0x000a, 0x20b5: 0x000a,\n\t0x20b6: 0x000a, 0x20b7: 0x000a,\n\t// Block 0x83, offset 0x20c0\n\t0x20c4: 0x000c, 0x20c5: 0x000c,\n\t0x20e0: 0x000c, 0x20e1: 0x000c, 0x20e2: 0x000c, 0x20e3: 0x000c,\n\t0x20e4: 0x000c, 0x20e5: 0x000c, 0x20e6: 0x000c, 0x20e7: 0x000c, 0x20e8: 0x000c, 0x20e9: 0x000c,\n\t0x20ea: 0x000c, 0x20eb: 0x000c, 0x20ec: 0x000c, 0x20ed: 0x000c, 0x20ee: 0x000c, 0x20ef: 0x000c,\n\t0x20f0: 0x000c, 0x20f1: 0x000c,\n\t0x20ff: 0x000c,\n\t// Block 0x84, offset 0x2100\n\t0x2126: 0x000c, 0x2127: 0x000c, 0x2128: 0x000c, 0x2129: 0x000c,\n\t0x212a: 0x000c, 0x212b: 0x000c, 0x212c: 0x000c, 0x212d: 0x000c,\n\t// Block 0x85, offset 0x2140\n\t0x2147: 0x000c, 0x2148: 0x000c, 0x2149: 0x000c, 0x214a: 0x000c, 0x214b: 0x000c,\n\t0x214c: 0x000c, 0x214d: 0x000c, 0x214e: 0x000c, 0x214f: 0x000c, 0x2150: 0x000c, 0x2151: 0x000c,\n\t// Block 0x86, offset 0x2180\n\t0x2180: 0x000c, 0x2181: 0x000c, 0x2182: 0x000c,\n\t0x21b3: 0x000c,\n\t0x21b6: 0x000c, 0x21b7: 0x000c, 0x21b8: 0x000c, 0x21b9: 0x000c,\n\t0x21bc: 0x000c, 0x21bd: 0x000c,\n\t// Block 0x87, offset 0x21c0\n\t0x21e5: 0x000c,\n\t// Block 0x88, offset 0x2200\n\t0x2229: 0x000c,\n\t0x222a: 0x000c, 0x222b: 0x000c, 0x222c: 0x000c, 0x222d: 0x000c, 0x222e: 0x000c,\n\t0x2231: 0x000c, 0x2232: 0x000c, 0x2235: 0x000c,\n\t0x2236: 0x000c,\n\t// Block 0x89, offset 0x2240\n\t0x2243: 0x000c,\n\t0x224c: 0x000c,\n\t0x227c: 0x000c,\n\t// Block 0x8a, offset 0x2280\n\t0x22b0: 0x000c, 0x22b2: 0x000c, 0x22b3: 0x000c, 0x22b4: 0x000c,\n\t0x22b7: 0x000c, 0x22b8: 0x000c,\n\t0x22be: 0x000c, 0x22bf: 0x000c,\n\t// Block 0x8b, offset 0x22c0\n\t0x22c1: 0x000c,\n\t0x22ec: 0x000c, 0x22ed: 0x000c,\n\t0x22f6: 0x000c,\n\t// Block 0x8c, offset 0x2300\n\t0x232a: 0x000a, 0x232b: 0x000a,\n\t// Block 0x8d, offset 0x2340\n\t0x2365: 0x000c, 0x2368: 0x000c,\n\t0x236d: 0x000c,\n\t// Block 0x8e, offset 0x2380\n\t0x239d: 0x0001,\n\t0x239e: 0x000c, 0x239f: 0x0001, 0x23a0: 0x0001, 0x23a1: 0x0001, 0x23a2: 0x0001, 0x23a3: 0x0001,\n\t0x23a4: 0x0001, 0x23a5: 0x0001, 0x23a6: 0x0001, 0x23a7: 0x0001, 0x23a8: 0x0001, 0x23a9: 0x0003,\n\t0x23aa: 0x0001, 0x23ab: 0x0001, 0x23ac: 0x0001, 0x23ad: 0x0001, 0x23ae: 0x0001, 0x23af: 0x0001,\n\t0x23b0: 0x0001, 0x23b1: 0x0001, 0x23b2: 0x0001, 0x23b3: 0x0001, 0x23b4: 0x0001, 0x23b5: 0x0001,\n\t0x23b6: 0x0001, 0x23b7: 0x0001, 0x23b8: 0x0001, 0x23b9: 0x0001, 0x23ba: 0x0001, 0x23bb: 0x0001,\n\t0x23bc: 0x0001, 0x23bd: 0x0001, 0x23be: 0x0001, 0x23bf: 0x0001,\n\t// Block 0x8f, offset 0x23c0\n\t0x23c0: 0x0001, 0x23c1: 0x0001, 0x23c2: 0x0001, 0x23c3: 0x0001, 0x23c4: 0x0001, 0x23c5: 0x0001,\n\t0x23c6: 0x0001, 0x23c7: 0x0001, 0x23c8: 0x0001, 0x23c9: 0x0001, 0x23ca: 0x0001, 0x23cb: 0x0001,\n\t0x23cc: 0x0001, 0x23cd: 0x0001, 0x23ce: 0x0001, 0x23cf: 0x0001, 0x23d0: 0x000d, 0x23d1: 0x000d,\n\t0x23d2: 0x000d, 0x23d3: 0x000d, 0x23d4: 0x000d, 0x23d5: 0x000d, 0x23d6: 0x000d, 0x23d7: 0x000d,\n\t0x23d8: 0x000d, 0x23d9: 0x000d, 0x23da: 0x000d, 0x23db: 0x000d, 0x23dc: 0x000d, 0x23dd: 0x000d,\n\t0x23de: 0x000d, 0x23df: 0x000d, 0x23e0: 0x000d, 0x23e1: 0x000d, 0x23e2: 0x000d, 0x23e3: 0x000d,\n\t0x23e4: 0x000d, 0x23e5: 0x000d, 0x23e6: 0x000d, 0x23e7: 0x000d, 0x23e8: 0x000d, 0x23e9: 0x000d,\n\t0x23ea: 0x000d, 0x23eb: 0x000d, 0x23ec: 0x000d, 0x23ed: 0x000d, 0x23ee: 0x000d, 0x23ef: 0x000d,\n\t0x23f0: 0x000d, 0x23f1: 0x000d, 0x23f2: 0x000d, 0x23f3: 0x000d, 0x23f4: 0x000d, 0x23f5: 0x000d,\n\t0x23f6: 0x000d, 0x23f7: 0x000d, 0x23f8: 0x000d, 0x23f9: 0x000d, 0x23fa: 0x000d, 0x23fb: 0x000d,\n\t0x23fc: 0x000d, 0x23fd: 0x000d, 0x23fe: 0x000d, 0x23ff: 0x000d,\n\t// Block 0x90, offset 0x2400\n\t0x2400: 0x000d, 0x2401: 0x000d, 0x2402: 0x000d, 0x2403: 0x000d, 0x2404: 0x000d, 0x2405: 0x000d,\n\t0x2406: 0x000d, 0x2407: 0x000d, 0x2408: 0x000d, 0x2409: 0x000d, 0x240a: 0x000d, 0x240b: 0x000d,\n\t0x240c: 0x000d, 0x240d: 0x000d, 0x240e: 0x000d, 0x240f: 0x000d, 0x2410: 0x000d, 0x2411: 0x000d,\n\t0x2412: 0x000d, 0x2413: 0x000d, 0x2414: 0x000d, 0x2415: 0x000d, 0x2416: 0x000d, 0x2417: 0x000d,\n\t0x2418: 0x000d, 0x2419: 0x000d, 0x241a: 0x000d, 0x241b: 0x000d, 0x241c: 0x000d, 0x241d: 0x000d,\n\t0x241e: 0x000d, 0x241f: 0x000d, 0x2420: 0x000d, 0x2421: 0x000d, 0x2422: 0x000d, 0x2423: 0x000d,\n\t0x2424: 0x000d, 0x2425: 0x000d, 0x2426: 0x000d, 0x2427: 0x000d, 0x2428: 0x000d, 0x2429: 0x000d,\n\t0x242a: 0x000d, 0x242b: 0x000d, 0x242c: 0x000d, 0x242d: 0x000d, 0x242e: 0x000d, 0x242f: 0x000d,\n\t0x2430: 0x000d, 0x2431: 0x000d, 0x2432: 0x000d, 0x2433: 0x000d, 0x2434: 0x000d, 0x2435: 0x000d,\n\t0x2436: 0x000d, 0x2437: 0x000d, 0x2438: 0x000d, 0x2439: 0x000d, 0x243a: 0x000d, 0x243b: 0x000d,\n\t0x243c: 0x000d, 0x243d: 0x000d, 0x243e: 0x000a, 0x243f: 0x000a,\n\t// Block 0x91, offset 0x2440\n\t0x2440: 0x000a, 0x2441: 0x000a, 0x2442: 0x000a, 0x2443: 0x000a, 0x2444: 0x000a, 0x2445: 0x000a,\n\t0x2446: 0x000a, 0x2447: 0x000a, 0x2448: 0x000a, 0x2449: 0x000a, 0x244a: 0x000a, 0x244b: 0x000a,\n\t0x244c: 0x000a, 0x244d: 0x000a, 0x244e: 0x000a, 0x244f: 0x000a, 0x2450: 0x000d, 0x2451: 0x000d,\n\t0x2452: 0x000d, 0x2453: 0x000d, 0x2454: 0x000d, 0x2455: 0x000d, 0x2456: 0x000d, 0x2457: 0x000d,\n\t0x2458: 0x000d, 0x2459: 0x000d, 0x245a: 0x000d, 0x245b: 0x000d, 0x245c: 0x000d, 0x245d: 0x000d,\n\t0x245e: 0x000d, 0x245f: 0x000d, 0x2460: 0x000d, 0x2461: 0x000d, 0x2462: 0x000d, 0x2463: 0x000d,\n\t0x2464: 0x000d, 0x2465: 0x000d, 0x2466: 0x000d, 0x2467: 0x000d, 0x2468: 0x000d, 0x2469: 0x000d,\n\t0x246a: 0x000d, 0x246b: 0x000d, 0x246c: 0x000d, 0x246d: 0x000d, 0x246e: 0x000d, 0x246f: 0x000d,\n\t0x2470: 0x000d, 0x2471: 0x000d, 0x2472: 0x000d, 0x2473: 0x000d, 0x2474: 0x000d, 0x2475: 0x000d,\n\t0x2476: 0x000d, 0x2477: 0x000d, 0x2478: 0x000d, 0x2479: 0x000d, 0x247a: 0x000d, 0x247b: 0x000d,\n\t0x247c: 0x000d, 0x247d: 0x000d, 0x247e: 0x000d, 0x247f: 0x000d,\n\t// Block 0x92, offset 0x2480\n\t0x2480: 0x000d, 0x2481: 0x000d, 0x2482: 0x000d, 0x2483: 0x000d, 0x2484: 0x000d, 0x2485: 0x000d,\n\t0x2486: 0x000d, 0x2487: 0x000d, 0x2488: 0x000d, 0x2489: 0x000d, 0x248a: 0x000d, 0x248b: 0x000d,\n\t0x248c: 0x000d, 0x248d: 0x000d, 0x248e: 0x000d, 0x248f: 0x000a, 0x2490: 0x000b, 0x2491: 0x000b,\n\t0x2492: 0x000b, 0x2493: 0x000b, 0x2494: 0x000b, 0x2495: 0x000b, 0x2496: 0x000b, 0x2497: 0x000b,\n\t0x2498: 0x000b, 0x2499: 0x000b, 0x249a: 0x000b, 0x249b: 0x000b, 0x249c: 0x000b, 0x249d: 0x000b,\n\t0x249e: 0x000b, 0x249f: 0x000b, 0x24a0: 0x000b, 0x24a1: 0x000b, 0x24a2: 0x000b, 0x24a3: 0x000b,\n\t0x24a4: 0x000b, 0x24a5: 0x000b, 0x24a6: 0x000b, 0x24a7: 0x000b, 0x24a8: 0x000b, 0x24a9: 0x000b,\n\t0x24aa: 0x000b, 0x24ab: 0x000b, 0x24ac: 0x000b, 0x24ad: 0x000b, 0x24ae: 0x000b, 0x24af: 0x000b,\n\t0x24b0: 0x000d, 0x24b1: 0x000d, 0x24b2: 0x000d, 0x24b3: 0x000d, 0x24b4: 0x000d, 0x24b5: 0x000d,\n\t0x24b6: 0x000d, 0x24b7: 0x000d, 0x24b8: 0x000d, 0x24b9: 0x000d, 0x24ba: 0x000d, 0x24bb: 0x000d,\n\t0x24bc: 0x000d, 0x24bd: 0x000a, 0x24be: 0x000a, 0x24bf: 0x000a,\n\t// Block 0x93, offset 0x24c0\n\t0x24c0: 0x000c, 0x24c1: 0x000c, 0x24c2: 0x000c, 0x24c3: 0x000c, 0x24c4: 0x000c, 0x24c5: 0x000c,\n\t0x24c6: 0x000c, 0x24c7: 0x000c, 0x24c8: 0x000c, 0x24c9: 0x000c, 0x24ca: 0x000c, 0x24cb: 0x000c,\n\t0x24cc: 0x000c, 0x24cd: 0x000c, 0x24ce: 0x000c, 0x24cf: 0x000c, 0x24d0: 0x000a, 0x24d1: 0x000a,\n\t0x24d2: 0x000a, 0x24d3: 0x000a, 0x24d4: 0x000a, 0x24d5: 0x000a, 0x24d6: 0x000a, 0x24d7: 0x000a,\n\t0x24d8: 0x000a, 0x24d9: 0x000a,\n\t0x24e0: 0x000c, 0x24e1: 0x000c, 0x24e2: 0x000c, 0x24e3: 0x000c,\n\t0x24e4: 0x000c, 0x24e5: 0x000c, 0x24e6: 0x000c, 0x24e7: 0x000c, 0x24e8: 0x000c, 0x24e9: 0x000c,\n\t0x24ea: 0x000c, 0x24eb: 0x000c, 0x24ec: 0x000c, 0x24ed: 0x000c, 0x24ee: 0x000c, 0x24ef: 0x000c,\n\t0x24f0: 0x000a, 0x24f1: 0x000a, 0x24f2: 0x000a, 0x24f3: 0x000a, 0x24f4: 0x000a, 0x24f5: 0x000a,\n\t0x24f6: 0x000a, 0x24f7: 0x000a, 0x24f8: 0x000a, 0x24f9: 0x000a, 0x24fa: 0x000a, 0x24fb: 0x000a,\n\t0x24fc: 0x000a, 0x24fd: 0x000a, 0x24fe: 0x000a, 0x24ff: 0x000a,\n\t// Block 0x94, offset 0x2500\n\t0x2500: 0x000a, 0x2501: 0x000a, 0x2502: 0x000a, 0x2503: 0x000a, 0x2504: 0x000a, 0x2505: 0x000a,\n\t0x2506: 0x000a, 0x2507: 0x000a, 0x2508: 0x000a, 0x2509: 0x000a, 0x250a: 0x000a, 0x250b: 0x000a,\n\t0x250c: 0x000a, 0x250d: 0x000a, 0x250e: 0x000a, 0x250f: 0x000a, 0x2510: 0x0006, 0x2511: 0x000a,\n\t0x2512: 0x0006, 0x2514: 0x000a, 0x2515: 0x0006, 0x2516: 0x000a, 0x2517: 0x000a,\n\t0x2518: 0x000a, 0x2519: 0x009a, 0x251a: 0x008a, 0x251b: 0x007a, 0x251c: 0x006a, 0x251d: 0x009a,\n\t0x251e: 0x008a, 0x251f: 0x0004, 0x2520: 0x000a, 0x2521: 0x000a, 0x2522: 0x0003, 0x2523: 0x0003,\n\t0x2524: 0x000a, 0x2525: 0x000a, 0x2526: 0x000a, 0x2528: 0x000a, 0x2529: 0x0004,\n\t0x252a: 0x0004, 0x252b: 0x000a,\n\t0x2530: 0x000d, 0x2531: 0x000d, 0x2532: 0x000d, 0x2533: 0x000d, 0x2534: 0x000d, 0x2535: 0x000d,\n\t0x2536: 0x000d, 0x2537: 0x000d, 0x2538: 0x000d, 0x2539: 0x000d, 0x253a: 0x000d, 0x253b: 0x000d,\n\t0x253c: 0x000d, 0x253d: 0x000d, 0x253e: 0x000d, 0x253f: 0x000d,\n\t// Block 0x95, offset 0x2540\n\t0x2540: 0x000d, 0x2541: 0x000d, 0x2542: 0x000d, 0x2543: 0x000d, 0x2544: 0x000d, 0x2545: 0x000d,\n\t0x2546: 0x000d, 0x2547: 0x000d, 0x2548: 0x000d, 0x2549: 0x000d, 0x254a: 0x000d, 0x254b: 0x000d,\n\t0x254c: 0x000d, 0x254d: 0x000d, 0x254e: 0x000d, 0x254f: 0x000d, 0x2550: 0x000d, 0x2551: 0x000d,\n\t0x2552: 0x000d, 0x2553: 0x000d, 0x2554: 0x000d, 0x2555: 0x000d, 0x2556: 0x000d, 0x2557: 0x000d,\n\t0x2558: 0x000d, 0x2559: 0x000d, 0x255a: 0x000d, 0x255b: 0x000d, 0x255c: 0x000d, 0x255d: 0x000d,\n\t0x255e: 0x000d, 0x255f: 0x000d, 0x2560: 0x000d, 0x2561: 0x000d, 0x2562: 0x000d, 0x2563: 0x000d,\n\t0x2564: 0x000d, 0x2565: 0x000d, 0x2566: 0x000d, 0x2567: 0x000d, 0x2568: 0x000d, 0x2569: 0x000d,\n\t0x256a: 0x000d, 0x256b: 0x000d, 0x256c: 0x000d, 0x256d: 0x000d, 0x256e: 0x000d, 0x256f: 0x000d,\n\t0x2570: 0x000d, 0x2571: 0x000d, 0x2572: 0x000d, 0x2573: 0x000d, 0x2574: 0x000d, 0x2575: 0x000d,\n\t0x2576: 0x000d, 0x2577: 0x000d, 0x2578: 0x000d, 0x2579: 0x000d, 0x257a: 0x000d, 0x257b: 0x000d,\n\t0x257c: 0x000d, 0x257d: 0x000d, 0x257e: 0x000d, 0x257f: 0x000b,\n\t// Block 0x96, offset 0x2580\n\t0x2581: 0x000a, 0x2582: 0x000a, 0x2583: 0x0004, 0x2584: 0x0004, 0x2585: 0x0004,\n\t0x2586: 0x000a, 0x2587: 0x000a, 0x2588: 0x003a, 0x2589: 0x002a, 0x258a: 0x000a, 0x258b: 0x0003,\n\t0x258c: 0x0006, 0x258d: 0x0003, 0x258e: 0x0006, 0x258f: 0x0006, 0x2590: 0x0002, 0x2591: 0x0002,\n\t0x2592: 0x0002, 0x2593: 0x0002, 0x2594: 0x0002, 0x2595: 0x0002, 0x2596: 0x0002, 0x2597: 0x0002,\n\t0x2598: 0x0002, 0x2599: 0x0002, 0x259a: 0x0006, 0x259b: 0x000a, 0x259c: 0x000a, 0x259d: 0x000a,\n\t0x259e: 0x000a, 0x259f: 0x000a, 0x25a0: 0x000a,\n\t0x25bb: 0x005a,\n\t0x25bc: 0x000a, 0x25bd: 0x004a, 0x25be: 0x000a, 0x25bf: 0x000a,\n\t// Block 0x97, offset 0x25c0\n\t0x25c0: 0x000a,\n\t0x25db: 0x005a, 0x25dc: 0x000a, 0x25dd: 0x004a,\n\t0x25de: 0x000a, 0x25df: 0x00fa, 0x25e0: 0x00ea, 0x25e1: 0x000a, 0x25e2: 0x003a, 0x25e3: 0x002a,\n\t0x25e4: 0x000a, 0x25e5: 0x000a,\n\t// Block 0x98, offset 0x2600\n\t0x2620: 0x0004, 0x2621: 0x0004, 0x2622: 0x000a, 0x2623: 0x000a,\n\t0x2624: 0x000a, 0x2625: 0x0004, 0x2626: 0x0004, 0x2628: 0x000a, 0x2629: 0x000a,\n\t0x262a: 0x000a, 0x262b: 0x000a, 0x262c: 0x000a, 0x262d: 0x000a, 0x262e: 0x000a,\n\t0x2630: 0x000b, 0x2631: 0x000b, 0x2632: 0x000b, 0x2633: 0x000b, 0x2634: 0x000b, 0x2635: 0x000b,\n\t0x2636: 0x000b, 0x2637: 0x000b, 0x2638: 0x000b, 0x2639: 0x000a, 0x263a: 0x000a, 0x263b: 0x000a,\n\t0x263c: 0x000a, 0x263d: 0x000a, 0x263e: 0x000b, 0x263f: 0x000b,\n\t// Block 0x99, offset 0x2640\n\t0x2641: 0x000a,\n\t// Block 0x9a, offset 0x2680\n\t0x2680: 0x000a, 0x2681: 0x000a, 0x2682: 0x000a, 0x2683: 0x000a, 0x2684: 0x000a, 0x2685: 0x000a,\n\t0x2686: 0x000a, 0x2687: 0x000a, 0x2688: 0x000a, 0x2689: 0x000a, 0x268a: 0x000a, 0x268b: 0x000a,\n\t0x268c: 0x000a, 0x2690: 0x000a, 0x2691: 0x000a,\n\t0x2692: 0x000a, 0x2693: 0x000a, 0x2694: 0x000a, 0x2695: 0x000a, 0x2696: 0x000a, 0x2697: 0x000a,\n\t0x2698: 0x000a, 0x2699: 0x000a, 0x269a: 0x000a, 0x269b: 0x000a, 0x269c: 0x000a,\n\t0x26a0: 0x000a,\n\t// Block 0x9b, offset 0x26c0\n\t0x26fd: 0x000c,\n\t// Block 0x9c, offset 0x2700\n\t0x2720: 0x000c, 0x2721: 0x0002, 0x2722: 0x0002, 0x2723: 0x0002,\n\t0x2724: 0x0002, 0x2725: 0x0002, 0x2726: 0x0002, 0x2727: 0x0002, 0x2728: 0x0002, 0x2729: 0x0002,\n\t0x272a: 0x0002, 0x272b: 0x0002, 0x272c: 0x0002, 0x272d: 0x0002, 0x272e: 0x0002, 0x272f: 0x0002,\n\t0x2730: 0x0002, 0x2731: 0x0002, 0x2732: 0x0002, 0x2733: 0x0002, 0x2734: 0x0002, 0x2735: 0x0002,\n\t0x2736: 0x0002, 0x2737: 0x0002, 0x2738: 0x0002, 0x2739: 0x0002, 0x273a: 0x0002, 0x273b: 0x0002,\n\t// Block 0x9d, offset 0x2740\n\t0x2776: 0x000c, 0x2777: 0x000c, 0x2778: 0x000c, 0x2779: 0x000c, 0x277a: 0x000c,\n\t// Block 0x9e, offset 0x2780\n\t0x2780: 0x0001, 0x2781: 0x0001, 0x2782: 0x0001, 0x2783: 0x0001, 0x2784: 0x0001, 0x2785: 0x0001,\n\t0x2786: 0x0001, 0x2787: 0x0001, 0x2788: 0x0001, 0x2789: 0x0001, 0x278a: 0x0001, 0x278b: 0x0001,\n\t0x278c: 0x0001, 0x278d: 0x0001, 0x278e: 0x0001, 0x278f: 0x0001, 0x2790: 0x0001, 0x2791: 0x0001,\n\t0x2792: 0x0001, 0x2793: 0x0001, 0x2794: 0x0001, 0x2795: 0x0001, 0x2796: 0x0001, 0x2797: 0x0001,\n\t0x2798: 0x0001, 0x2799: 0x0001, 0x279a: 0x0001, 0x279b: 0x0001, 0x279c: 0x0001, 0x279d: 0x0001,\n\t0x279e: 0x0001, 0x279f: 0x0001, 0x27a0: 0x0001, 0x27a1: 0x0001, 0x27a2: 0x0001, 0x27a3: 0x0001,\n\t0x27a4: 0x0001, 0x27a5: 0x0001, 0x27a6: 0x0001, 0x27a7: 0x0001, 0x27a8: 0x0001, 0x27a9: 0x0001,\n\t0x27aa: 0x0001, 0x27ab: 0x0001, 0x27ac: 0x0001, 0x27ad: 0x0001, 0x27ae: 0x0001, 0x27af: 0x0001,\n\t0x27b0: 0x0001, 0x27b1: 0x0001, 0x27b2: 0x0001, 0x27b3: 0x0001, 0x27b4: 0x0001, 0x27b5: 0x0001,\n\t0x27b6: 0x0001, 0x27b7: 0x0001, 0x27b8: 0x0001, 0x27b9: 0x0001, 0x27ba: 0x0001, 0x27bb: 0x0001,\n\t0x27bc: 0x0001, 0x27bd: 0x0001, 0x27be: 0x0001, 0x27bf: 0x0001,\n\t// Block 0x9f, offset 0x27c0\n\t0x27c0: 0x0001, 0x27c1: 0x0001, 0x27c2: 0x0001, 0x27c3: 0x0001, 0x27c4: 0x0001, 0x27c5: 0x0001,\n\t0x27c6: 0x0001, 0x27c7: 0x0001, 0x27c8: 0x0001, 0x27c9: 0x0001, 0x27ca: 0x0001, 0x27cb: 0x0001,\n\t0x27cc: 0x0001, 0x27cd: 0x0001, 0x27ce: 0x0001, 0x27cf: 0x0001, 0x27d0: 0x0001, 0x27d1: 0x0001,\n\t0x27d2: 0x0001, 0x27d3: 0x0001, 0x27d4: 0x0001, 0x27d5: 0x0001, 0x27d6: 0x0001, 0x27d7: 0x0001,\n\t0x27d8: 0x0001, 0x27d9: 0x0001, 0x27da: 0x0001, 0x27db: 0x0001, 0x27dc: 0x0001, 0x27dd: 0x0001,\n\t0x27de: 0x0001, 0x27df: 0x000a, 0x27e0: 0x0001, 0x27e1: 0x0001, 0x27e2: 0x0001, 0x27e3: 0x0001,\n\t0x27e4: 0x0001, 0x27e5: 0x0001, 0x27e6: 0x0001, 0x27e7: 0x0001, 0x27e8: 0x0001, 0x27e9: 0x0001,\n\t0x27ea: 0x0001, 0x27eb: 0x0001, 0x27ec: 0x0001, 0x27ed: 0x0001, 0x27ee: 0x0001, 0x27ef: 0x0001,\n\t0x27f0: 0x0001, 0x27f1: 0x0001, 0x27f2: 0x0001, 0x27f3: 0x0001, 0x27f4: 0x0001, 0x27f5: 0x0001,\n\t0x27f6: 0x0001, 0x27f7: 0x0001, 0x27f8: 0x0001, 0x27f9: 0x0001, 0x27fa: 0x0001, 0x27fb: 0x0001,\n\t0x27fc: 0x0001, 0x27fd: 0x0001, 0x27fe: 0x0001, 0x27ff: 0x0001,\n\t// Block 0xa0, offset 0x2800\n\t0x2800: 0x0001, 0x2801: 0x000c, 0x2802: 0x000c, 0x2803: 0x000c, 0x2804: 0x0001, 0x2805: 0x000c,\n\t0x2806: 0x000c, 0x2807: 0x0001, 0x2808: 0x0001, 0x2809: 0x0001, 0x280a: 0x0001, 0x280b: 0x0001,\n\t0x280c: 0x000c, 0x280d: 0x000c, 0x280e: 0x000c, 0x280f: 0x000c, 0x2810: 0x0001, 0x2811: 0x0001,\n\t0x2812: 0x0001, 0x2813: 0x0001, 0x2814: 0x0001, 0x2815: 0x0001, 0x2816: 0x0001, 0x2817: 0x0001,\n\t0x2818: 0x0001, 0x2819: 0x0001, 0x281a: 0x0001, 0x281b: 0x0001, 0x281c: 0x0001, 0x281d: 0x0001,\n\t0x281e: 0x0001, 0x281f: 0x0001, 0x2820: 0x0001, 0x2821: 0x0001, 0x2822: 0x0001, 0x2823: 0x0001,\n\t0x2824: 0x0001, 0x2825: 0x0001, 0x2826: 0x0001, 0x2827: 0x0001, 0x2828: 0x0001, 0x2829: 0x0001,\n\t0x282a: 0x0001, 0x282b: 0x0001, 0x282c: 0x0001, 0x282d: 0x0001, 0x282e: 0x0001, 0x282f: 0x0001,\n\t0x2830: 0x0001, 0x2831: 0x0001, 0x2832: 0x0001, 0x2833: 0x0001, 0x2834: 0x0001, 0x2835: 0x0001,\n\t0x2836: 0x0001, 0x2837: 0x0001, 0x2838: 0x000c, 0x2839: 0x000c, 0x283a: 0x000c, 0x283b: 0x0001,\n\t0x283c: 0x0001, 0x283d: 0x0001, 0x283e: 0x0001, 0x283f: 0x000c,\n\t// Block 0xa1, offset 0x2840\n\t0x2840: 0x0001, 0x2841: 0x0001, 0x2842: 0x0001, 0x2843: 0x0001, 0x2844: 0x0001, 0x2845: 0x0001,\n\t0x2846: 0x0001, 0x2847: 0x0001, 0x2848: 0x0001, 0x2849: 0x0001, 0x284a: 0x0001, 0x284b: 0x0001,\n\t0x284c: 0x0001, 0x284d: 0x0001, 0x284e: 0x0001, 0x284f: 0x0001, 0x2850: 0x0001, 0x2851: 0x0001,\n\t0x2852: 0x0001, 0x2853: 0x0001, 0x2854: 0x0001, 0x2855: 0x0001, 0x2856: 0x0001, 0x2857: 0x0001,\n\t0x2858: 0x0001, 0x2859: 0x0001, 0x285a: 0x0001, 0x285b: 0x0001, 0x285c: 0x0001, 0x285d: 0x0001,\n\t0x285e: 0x0001, 0x285f: 0x0001, 0x2860: 0x0001, 0x2861: 0x0001, 0x2862: 0x0001, 0x2863: 0x0001,\n\t0x2864: 0x0001, 0x2865: 0x000c, 0x2866: 0x000c, 0x2867: 0x0001, 0x2868: 0x0001, 0x2869: 0x0001,\n\t0x286a: 0x0001, 0x286b: 0x0001, 0x286c: 0x0001, 0x286d: 0x0001, 0x286e: 0x0001, 0x286f: 0x0001,\n\t0x2870: 0x0001, 0x2871: 0x0001, 0x2872: 0x0001, 0x2873: 0x0001, 0x2874: 0x0001, 0x2875: 0x0001,\n\t0x2876: 0x0001, 0x2877: 0x0001, 0x2878: 0x0001, 0x2879: 0x0001, 0x287a: 0x0001, 0x287b: 0x0001,\n\t0x287c: 0x0001, 0x287d: 0x0001, 0x287e: 0x0001, 0x287f: 0x0001,\n\t// Block 0xa2, offset 0x2880\n\t0x2880: 0x0001, 0x2881: 0x0001, 0x2882: 0x0001, 0x2883: 0x0001, 0x2884: 0x0001, 0x2885: 0x0001,\n\t0x2886: 0x0001, 0x2887: 0x0001, 0x2888: 0x0001, 0x2889: 0x0001, 0x288a: 0x0001, 0x288b: 0x0001,\n\t0x288c: 0x0001, 0x288d: 0x0001, 0x288e: 0x0001, 0x288f: 0x0001, 0x2890: 0x0001, 0x2891: 0x0001,\n\t0x2892: 0x0001, 0x2893: 0x0001, 0x2894: 0x0001, 0x2895: 0x0001, 0x2896: 0x0001, 0x2897: 0x0001,\n\t0x2898: 0x0001, 0x2899: 0x0001, 0x289a: 0x0001, 0x289b: 0x0001, 0x289c: 0x0001, 0x289d: 0x0001,\n\t0x289e: 0x0001, 0x289f: 0x0001, 0x28a0: 0x0001, 0x28a1: 0x0001, 0x28a2: 0x0001, 0x28a3: 0x0001,\n\t0x28a4: 0x0001, 0x28a5: 0x0001, 0x28a6: 0x0001, 0x28a7: 0x0001, 0x28a8: 0x0001, 0x28a9: 0x0001,\n\t0x28aa: 0x0001, 0x28ab: 0x0001, 0x28ac: 0x0001, 0x28ad: 0x0001, 0x28ae: 0x0001, 0x28af: 0x0001,\n\t0x28b0: 0x0001, 0x28b1: 0x0001, 0x28b2: 0x0001, 0x28b3: 0x0001, 0x28b4: 0x0001, 0x28b5: 0x0001,\n\t0x28b6: 0x0001, 0x28b7: 0x0001, 0x28b8: 0x0001, 0x28b9: 0x000a, 0x28ba: 0x000a, 0x28bb: 0x000a,\n\t0x28bc: 0x000a, 0x28bd: 0x000a, 0x28be: 0x000a, 0x28bf: 0x000a,\n\t// Block 0xa3, offset 0x28c0\n\t0x28c0: 0x000d, 0x28c1: 0x000d, 0x28c2: 0x000d, 0x28c3: 0x000d, 0x28c4: 0x000d, 0x28c5: 0x000d,\n\t0x28c6: 0x000d, 0x28c7: 0x000d, 0x28c8: 0x000d, 0x28c9: 0x000d, 0x28ca: 0x000d, 0x28cb: 0x000d,\n\t0x28cc: 0x000d, 0x28cd: 0x000d, 0x28ce: 0x000d, 0x28cf: 0x000d, 0x28d0: 0x000d, 0x28d1: 0x000d,\n\t0x28d2: 0x000d, 0x28d3: 0x000d, 0x28d4: 0x000d, 0x28d5: 0x000d, 0x28d6: 0x000d, 0x28d7: 0x000d,\n\t0x28d8: 0x000d, 0x28d9: 0x000d, 0x28da: 0x000d, 0x28db: 0x000d, 0x28dc: 0x000d, 0x28dd: 0x000d,\n\t0x28de: 0x000d, 0x28df: 0x000d, 0x28e0: 0x000d, 0x28e1: 0x000d, 0x28e2: 0x000d, 0x28e3: 0x000d,\n\t0x28e4: 0x000c, 0x28e5: 0x000c, 0x28e6: 0x000c, 0x28e7: 0x000c, 0x28e8: 0x0001, 0x28e9: 0x0001,\n\t0x28ea: 0x0001, 0x28eb: 0x0001, 0x28ec: 0x0001, 0x28ed: 0x0001, 0x28ee: 0x0001, 0x28ef: 0x0001,\n\t0x28f0: 0x0005, 0x28f1: 0x0005, 0x28f2: 0x0005, 0x28f3: 0x0005, 0x28f4: 0x0005, 0x28f5: 0x0005,\n\t0x28f6: 0x0005, 0x28f7: 0x0005, 0x28f8: 0x0005, 0x28f9: 0x0005, 0x28fa: 0x0001, 0x28fb: 0x0001,\n\t0x28fc: 0x0001, 0x28fd: 0x0001, 0x28fe: 0x0001, 0x28ff: 0x0001,\n\t// Block 0xa4, offset 0x2900\n\t0x2900: 0x0001, 0x2901: 0x0001, 0x2902: 0x0001, 0x2903: 0x0001, 0x2904: 0x0001, 0x2905: 0x0001,\n\t0x2906: 0x0001, 0x2907: 0x0001, 0x2908: 0x0001, 0x2909: 0x0001, 0x290a: 0x0001, 0x290b: 0x0001,\n\t0x290c: 0x0001, 0x290d: 0x0001, 0x290e: 0x0001, 0x290f: 0x0001, 0x2910: 0x0001, 0x2911: 0x0001,\n\t0x2912: 0x0001, 0x2913: 0x0001, 0x2914: 0x0001, 0x2915: 0x0001, 0x2916: 0x0001, 0x2917: 0x0001,\n\t0x2918: 0x0001, 0x2919: 0x0001, 0x291a: 0x0001, 0x291b: 0x0001, 0x291c: 0x0001, 0x291d: 0x0001,\n\t0x291e: 0x0001, 0x291f: 0x0001, 0x2920: 0x0005, 0x2921: 0x0005, 0x2922: 0x0005, 0x2923: 0x0005,\n\t0x2924: 0x0005, 0x2925: 0x0005, 0x2926: 0x0005, 0x2927: 0x0005, 0x2928: 0x0005, 0x2929: 0x0005,\n\t0x292a: 0x0005, 0x292b: 0x0005, 0x292c: 0x0005, 0x292d: 0x0005, 0x292e: 0x0005, 0x292f: 0x0005,\n\t0x2930: 0x0005, 0x2931: 0x0005, 0x2932: 0x0005, 0x2933: 0x0005, 0x2934: 0x0005, 0x2935: 0x0005,\n\t0x2936: 0x0005, 0x2937: 0x0005, 0x2938: 0x0005, 0x2939: 0x0005, 0x293a: 0x0005, 0x293b: 0x0005,\n\t0x293c: 0x0005, 0x293d: 0x0005, 0x293e: 0x0005, 0x293f: 0x0001,\n\t// Block 0xa5, offset 0x2940\n\t0x2940: 0x0001, 0x2941: 0x0001, 0x2942: 0x0001, 0x2943: 0x0001, 0x2944: 0x0001, 0x2945: 0x0001,\n\t0x2946: 0x0001, 0x2947: 0x0001, 0x2948: 0x0001, 0x2949: 0x0001, 0x294a: 0x0001, 0x294b: 0x0001,\n\t0x294c: 0x0001, 0x294d: 0x0001, 0x294e: 0x0001, 0x294f: 0x0001, 0x2950: 0x0001, 0x2951: 0x0001,\n\t0x2952: 0x0001, 0x2953: 0x0001, 0x2954: 0x0001, 0x2955: 0x0001, 0x2956: 0x0001, 0x2957: 0x0001,\n\t0x2958: 0x0001, 0x2959: 0x0001, 0x295a: 0x0001, 0x295b: 0x0001, 0x295c: 0x0001, 0x295d: 0x0001,\n\t0x295e: 0x0001, 0x295f: 0x0001, 0x2960: 0x0001, 0x2961: 0x0001, 0x2962: 0x0001, 0x2963: 0x0001,\n\t0x2964: 0x0001, 0x2965: 0x0001, 0x2966: 0x0001, 0x2967: 0x0001, 0x2968: 0x0001, 0x2969: 0x0001,\n\t0x296a: 0x0001, 0x296b: 0x000c, 0x296c: 0x000c, 0x296d: 0x0001, 0x296e: 0x0001, 0x296f: 0x0001,\n\t0x2970: 0x0001, 0x2971: 0x0001, 0x2972: 0x0001, 0x2973: 0x0001, 0x2974: 0x0001, 0x2975: 0x0001,\n\t0x2976: 0x0001, 0x2977: 0x0001, 0x2978: 0x0001, 0x2979: 0x0001, 0x297a: 0x0001, 0x297b: 0x0001,\n\t0x297c: 0x0001, 0x297d: 0x0001, 0x297e: 0x0001, 0x297f: 0x0001,\n\t// Block 0xa6, offset 0x2980\n\t0x2980: 0x0001, 0x2981: 0x0001, 0x2982: 0x0001, 0x2983: 0x0001, 0x2984: 0x0001, 0x2985: 0x0001,\n\t0x2986: 0x0001, 0x2987: 0x0001, 0x2988: 0x0001, 0x2989: 0x0001, 0x298a: 0x0001, 0x298b: 0x0001,\n\t0x298c: 0x0001, 0x298d: 0x0001, 0x298e: 0x0001, 0x298f: 0x0001, 0x2990: 0x0001, 0x2991: 0x0001,\n\t0x2992: 0x0001, 0x2993: 0x0001, 0x2994: 0x0001, 0x2995: 0x0001, 0x2996: 0x0001, 0x2997: 0x0001,\n\t0x2998: 0x0001, 0x2999: 0x0001, 0x299a: 0x0001, 0x299b: 0x0001, 0x299c: 0x0001, 0x299d: 0x0001,\n\t0x299e: 0x0001, 0x299f: 0x0001, 0x29a0: 0x0001, 0x29a1: 0x0001, 0x29a2: 0x0001, 0x29a3: 0x0001,\n\t0x29a4: 0x0001, 0x29a5: 0x0001, 0x29a6: 0x0001, 0x29a7: 0x0001, 0x29a8: 0x0001, 0x29a9: 0x0001,\n\t0x29aa: 0x0001, 0x29ab: 0x0001, 0x29ac: 0x0001, 0x29ad: 0x0001, 0x29ae: 0x0001, 0x29af: 0x0001,\n\t0x29b0: 0x0001, 0x29b1: 0x0001, 0x29b2: 0x0001, 0x29b3: 0x0001, 0x29b4: 0x0001, 0x29b5: 0x0001,\n\t0x29b6: 0x0001, 0x29b7: 0x0001, 0x29b8: 0x0001, 0x29b9: 0x0001, 0x29ba: 0x0001, 0x29bb: 0x0001,\n\t0x29bc: 0x0001, 0x29bd: 0x000c, 0x29be: 0x000c, 0x29bf: 0x000c,\n\t// Block 0xa7, offset 0x29c0\n\t0x29c0: 0x0001, 0x29c1: 0x0001, 0x29c2: 0x0001, 0x29c3: 0x0001, 0x29c4: 0x0001, 0x29c5: 0x0001,\n\t0x29c6: 0x0001, 0x29c7: 0x0001, 0x29c8: 0x0001, 0x29c9: 0x0001, 0x29ca: 0x0001, 0x29cb: 0x0001,\n\t0x29cc: 0x0001, 0x29cd: 0x0001, 0x29ce: 0x0001, 0x29cf: 0x0001, 0x29d0: 0x0001, 0x29d1: 0x0001,\n\t0x29d2: 0x0001, 0x29d3: 0x0001, 0x29d4: 0x0001, 0x29d5: 0x0001, 0x29d6: 0x0001, 0x29d7: 0x0001,\n\t0x29d8: 0x0001, 0x29d9: 0x0001, 0x29da: 0x0001, 0x29db: 0x0001, 0x29dc: 0x0001, 0x29dd: 0x0001,\n\t0x29de: 0x0001, 0x29df: 0x0001, 0x29e0: 0x0001, 0x29e1: 0x0001, 0x29e2: 0x0001, 0x29e3: 0x0001,\n\t0x29e4: 0x0001, 0x29e5: 0x0001, 0x29e6: 0x0001, 0x29e7: 0x0001, 0x29e8: 0x0001, 0x29e9: 0x0001,\n\t0x29ea: 0x0001, 0x29eb: 0x0001, 0x29ec: 0x0001, 0x29ed: 0x0001, 0x29ee: 0x0001, 0x29ef: 0x0001,\n\t0x29f0: 0x000d, 0x29f1: 0x000d, 0x29f2: 0x000d, 0x29f3: 0x000d, 0x29f4: 0x000d, 0x29f5: 0x000d,\n\t0x29f6: 0x000d, 0x29f7: 0x000d, 0x29f8: 0x000d, 0x29f9: 0x000d, 0x29fa: 0x000d, 0x29fb: 0x000d,\n\t0x29fc: 0x000d, 0x29fd: 0x000d, 0x29fe: 0x000d, 0x29ff: 0x000d,\n\t// Block 0xa8, offset 0x2a00\n\t0x2a00: 0x000d, 0x2a01: 0x000d, 0x2a02: 0x000d, 0x2a03: 0x000d, 0x2a04: 0x000d, 0x2a05: 0x000d,\n\t0x2a06: 0x000c, 0x2a07: 0x000c, 0x2a08: 0x000c, 0x2a09: 0x000c, 0x2a0a: 0x000c, 0x2a0b: 0x000c,\n\t0x2a0c: 0x000c, 0x2a0d: 0x000c, 0x2a0e: 0x000c, 0x2a0f: 0x000c, 0x2a10: 0x000c, 0x2a11: 0x000d,\n\t0x2a12: 0x000d, 0x2a13: 0x000d, 0x2a14: 0x000d, 0x2a15: 0x000d, 0x2a16: 0x000d, 0x2a17: 0x000d,\n\t0x2a18: 0x000d, 0x2a19: 0x000d, 0x2a1a: 0x0001, 0x2a1b: 0x0001, 0x2a1c: 0x0001, 0x2a1d: 0x0001,\n\t0x2a1e: 0x0001, 0x2a1f: 0x0001, 0x2a20: 0x0001, 0x2a21: 0x0001, 0x2a22: 0x0001, 0x2a23: 0x0001,\n\t0x2a24: 0x0001, 0x2a25: 0x0001, 0x2a26: 0x0001, 0x2a27: 0x0001, 0x2a28: 0x0001, 0x2a29: 0x0001,\n\t0x2a2a: 0x0001, 0x2a2b: 0x0001, 0x2a2c: 0x0001, 0x2a2d: 0x0001, 0x2a2e: 0x0001, 0x2a2f: 0x0001,\n\t0x2a30: 0x0001, 0x2a31: 0x0001, 0x2a32: 0x0001, 0x2a33: 0x0001, 0x2a34: 0x0001, 0x2a35: 0x0001,\n\t0x2a36: 0x0001, 0x2a37: 0x0001, 0x2a38: 0x0001, 0x2a39: 0x0001, 0x2a3a: 0x0001, 0x2a3b: 0x0001,\n\t0x2a3c: 0x0001, 0x2a3d: 0x0001, 0x2a3e: 0x0001, 0x2a3f: 0x0001,\n\t// Block 0xa9, offset 0x2a40\n\t0x2a40: 0x0001, 0x2a41: 0x0001, 0x2a42: 0x000c, 0x2a43: 0x000c, 0x2a44: 0x000c, 0x2a45: 0x000c,\n\t0x2a46: 0x0001, 0x2a47: 0x0001, 0x2a48: 0x0001, 0x2a49: 0x0001, 0x2a4a: 0x0001, 0x2a4b: 0x0001,\n\t0x2a4c: 0x0001, 0x2a4d: 0x0001, 0x2a4e: 0x0001, 0x2a4f: 0x0001, 0x2a50: 0x0001, 0x2a51: 0x0001,\n\t0x2a52: 0x0001, 0x2a53: 0x0001, 0x2a54: 0x0001, 0x2a55: 0x0001, 0x2a56: 0x0001, 0x2a57: 0x0001,\n\t0x2a58: 0x0001, 0x2a59: 0x0001, 0x2a5a: 0x0001, 0x2a5b: 0x0001, 0x2a5c: 0x0001, 0x2a5d: 0x0001,\n\t0x2a5e: 0x0001, 0x2a5f: 0x0001, 0x2a60: 0x0001, 0x2a61: 0x0001, 0x2a62: 0x0001, 0x2a63: 0x0001,\n\t0x2a64: 0x0001, 0x2a65: 0x0001, 0x2a66: 0x0001, 0x2a67: 0x0001, 0x2a68: 0x0001, 0x2a69: 0x0001,\n\t0x2a6a: 0x0001, 0x2a6b: 0x0001, 0x2a6c: 0x0001, 0x2a6d: 0x0001, 0x2a6e: 0x0001, 0x2a6f: 0x0001,\n\t0x2a70: 0x0001, 0x2a71: 0x0001, 0x2a72: 0x0001, 0x2a73: 0x0001, 0x2a74: 0x0001, 0x2a75: 0x0001,\n\t0x2a76: 0x0001, 0x2a77: 0x0001, 0x2a78: 0x0001, 0x2a79: 0x0001, 0x2a7a: 0x0001, 0x2a7b: 0x0001,\n\t0x2a7c: 0x0001, 0x2a7d: 0x0001, 0x2a7e: 0x0001, 0x2a7f: 0x0001,\n\t// Block 0xaa, offset 0x2a80\n\t0x2a81: 0x000c,\n\t0x2ab8: 0x000c, 0x2ab9: 0x000c, 0x2aba: 0x000c, 0x2abb: 0x000c,\n\t0x2abc: 0x000c, 0x2abd: 0x000c, 0x2abe: 0x000c, 0x2abf: 0x000c,\n\t// Block 0xab, offset 0x2ac0\n\t0x2ac0: 0x000c, 0x2ac1: 0x000c, 0x2ac2: 0x000c, 0x2ac3: 0x000c, 0x2ac4: 0x000c, 0x2ac5: 0x000c,\n\t0x2ac6: 0x000c,\n\t0x2ad2: 0x000a, 0x2ad3: 0x000a, 0x2ad4: 0x000a, 0x2ad5: 0x000a, 0x2ad6: 0x000a, 0x2ad7: 0x000a,\n\t0x2ad8: 0x000a, 0x2ad9: 0x000a, 0x2ada: 0x000a, 0x2adb: 0x000a, 0x2adc: 0x000a, 0x2add: 0x000a,\n\t0x2ade: 0x000a, 0x2adf: 0x000a, 0x2ae0: 0x000a, 0x2ae1: 0x000a, 0x2ae2: 0x000a, 0x2ae3: 0x000a,\n\t0x2ae4: 0x000a, 0x2ae5: 0x000a,\n\t0x2af0: 0x000c, 0x2af3: 0x000c, 0x2af4: 0x000c,\n\t0x2aff: 0x000c,\n\t// Block 0xac, offset 0x2b00\n\t0x2b00: 0x000c, 0x2b01: 0x000c,\n\t0x2b33: 0x000c, 0x2b34: 0x000c, 0x2b35: 0x000c,\n\t0x2b36: 0x000c, 0x2b39: 0x000c, 0x2b3a: 0x000c,\n\t// Block 0xad, offset 0x2b40\n\t0x2b40: 0x000c, 0x2b41: 0x000c, 0x2b42: 0x000c,\n\t0x2b67: 0x000c, 0x2b68: 0x000c, 0x2b69: 0x000c,\n\t0x2b6a: 0x000c, 0x2b6b: 0x000c, 0x2b6d: 0x000c, 0x2b6e: 0x000c, 0x2b6f: 0x000c,\n\t0x2b70: 0x000c, 0x2b71: 0x000c, 0x2b72: 0x000c, 0x2b73: 0x000c, 0x2b74: 0x000c,\n\t// Block 0xae, offset 0x2b80\n\t0x2bb3: 0x000c,\n\t// Block 0xaf, offset 0x2bc0\n\t0x2bc0: 0x000c, 0x2bc1: 0x000c,\n\t0x2bf6: 0x000c, 0x2bf7: 0x000c, 0x2bf8: 0x000c, 0x2bf9: 0x000c, 0x2bfa: 0x000c, 0x2bfb: 0x000c,\n\t0x2bfc: 0x000c, 0x2bfd: 0x000c, 0x2bfe: 0x000c,\n\t// Block 0xb0, offset 0x2c00\n\t0x2c09: 0x000c, 0x2c0a: 0x000c, 0x2c0b: 0x000c,\n\t0x2c0c: 0x000c, 0x2c0f: 0x000c,\n\t// Block 0xb1, offset 0x2c40\n\t0x2c6f: 0x000c,\n\t0x2c70: 0x000c, 0x2c71: 0x000c, 0x2c74: 0x000c,\n\t0x2c76: 0x000c, 0x2c77: 0x000c,\n\t0x2c7e: 0x000c,\n\t// Block 0xb2, offset 0x2c80\n\t0x2c9f: 0x000c, 0x2ca3: 0x000c,\n\t0x2ca4: 0x000c, 0x2ca5: 0x000c, 0x2ca6: 0x000c, 0x2ca7: 0x000c, 0x2ca8: 0x000c, 0x2ca9: 0x000c,\n\t0x2caa: 0x000c,\n\t// Block 0xb3, offset 0x2cc0\n\t0x2cc0: 0x000c,\n\t0x2ce6: 0x000c, 0x2ce7: 0x000c, 0x2ce8: 0x000c, 0x2ce9: 0x000c,\n\t0x2cea: 0x000c, 0x2ceb: 0x000c, 0x2cec: 0x000c,\n\t0x2cf0: 0x000c, 0x2cf1: 0x000c, 0x2cf2: 0x000c, 0x2cf3: 0x000c, 0x2cf4: 0x000c,\n\t// Block 0xb4, offset 0x2d00\n\t0x2d38: 0x000c, 0x2d39: 0x000c, 0x2d3a: 0x000c, 0x2d3b: 0x000c,\n\t0x2d3c: 0x000c, 0x2d3d: 0x000c, 0x2d3e: 0x000c, 0x2d3f: 0x000c,\n\t// Block 0xb5, offset 0x2d40\n\t0x2d42: 0x000c, 0x2d43: 0x000c, 0x2d44: 0x000c,\n\t0x2d46: 0x000c,\n\t0x2d5e: 0x000c,\n\t// Block 0xb6, offset 0x2d80\n\t0x2db3: 0x000c, 0x2db4: 0x000c, 0x2db5: 0x000c,\n\t0x2db6: 0x000c, 0x2db7: 0x000c, 0x2db8: 0x000c, 0x2dba: 0x000c,\n\t0x2dbf: 0x000c,\n\t// Block 0xb7, offset 0x2dc0\n\t0x2dc0: 0x000c, 0x2dc2: 0x000c, 0x2dc3: 0x000c,\n\t// Block 0xb8, offset 0x2e00\n\t0x2e32: 0x000c, 0x2e33: 0x000c, 0x2e34: 0x000c, 0x2e35: 0x000c,\n\t0x2e3c: 0x000c, 0x2e3d: 0x000c, 0x2e3f: 0x000c,\n\t// Block 0xb9, offset 0x2e40\n\t0x2e40: 0x000c,\n\t0x2e5c: 0x000c, 0x2e5d: 0x000c,\n\t// Block 0xba, offset 0x2e80\n\t0x2eb3: 0x000c, 0x2eb4: 0x000c, 0x2eb5: 0x000c,\n\t0x2eb6: 0x000c, 0x2eb7: 0x000c, 0x2eb8: 0x000c, 0x2eb9: 0x000c, 0x2eba: 0x000c,\n\t0x2ebd: 0x000c, 0x2ebf: 0x000c,\n\t// Block 0xbb, offset 0x2ec0\n\t0x2ec0: 0x000c,\n\t0x2ee0: 0x000a, 0x2ee1: 0x000a, 0x2ee2: 0x000a, 0x2ee3: 0x000a,\n\t0x2ee4: 0x000a, 0x2ee5: 0x000a, 0x2ee6: 0x000a, 0x2ee7: 0x000a, 0x2ee8: 0x000a, 0x2ee9: 0x000a,\n\t0x2eea: 0x000a, 0x2eeb: 0x000a, 0x2eec: 0x000a,\n\t// Block 0xbc, offset 0x2f00\n\t0x2f2b: 0x000c, 0x2f2d: 0x000c,\n\t0x2f30: 0x000c, 0x2f31: 0x000c, 0x2f32: 0x000c, 0x2f33: 0x000c, 0x2f34: 0x000c, 0x2f35: 0x000c,\n\t0x2f37: 0x000c,\n\t// Block 0xbd, offset 0x2f40\n\t0x2f5d: 0x000c,\n\t0x2f5e: 0x000c, 0x2f5f: 0x000c, 0x2f62: 0x000c, 0x2f63: 0x000c,\n\t0x2f64: 0x000c, 0x2f65: 0x000c, 0x2f67: 0x000c, 0x2f68: 0x000c, 0x2f69: 0x000c,\n\t0x2f6a: 0x000c, 0x2f6b: 0x000c,\n\t// Block 0xbe, offset 0x2f80\n\t0x2faf: 0x000c,\n\t0x2fb0: 0x000c, 0x2fb1: 0x000c, 0x2fb2: 0x000c, 0x2fb3: 0x000c, 0x2fb4: 0x000c, 0x2fb5: 0x000c,\n\t0x2fb6: 0x000c, 0x2fb7: 0x000c, 0x2fb9: 0x000c, 0x2fba: 0x000c,\n\t// Block 0xbf, offset 0x2fc0\n\t0x2ffb: 0x000c,\n\t0x2ffc: 0x000c, 0x2ffe: 0x000c,\n\t// Block 0xc0, offset 0x3000\n\t0x3003: 0x000c,\n\t// Block 0xc1, offset 0x3040\n\t0x3054: 0x000c, 0x3055: 0x000c, 0x3056: 0x000c, 0x3057: 0x000c,\n\t0x305a: 0x000c, 0x305b: 0x000c,\n\t0x3060: 0x000c,\n\t// Block 0xc2, offset 0x3080\n\t0x3081: 0x000c, 0x3082: 0x000c, 0x3083: 0x000c, 0x3084: 0x000c, 0x3085: 0x000c,\n\t0x3086: 0x000c, 0x3089: 0x000c, 0x308a: 0x000c,\n\t0x30b3: 0x000c, 0x30b4: 0x000c, 0x30b5: 0x000c,\n\t0x30b6: 0x000c, 0x30b7: 0x000c, 0x30b8: 0x000c, 0x30bb: 0x000c,\n\t0x30bc: 0x000c, 0x30bd: 0x000c, 0x30be: 0x000c,\n\t// Block 0xc3, offset 0x30c0\n\t0x30c7: 0x000c,\n\t0x30d1: 0x000c,\n\t0x30d2: 0x000c, 0x30d3: 0x000c, 0x30d4: 0x000c, 0x30d5: 0x000c, 0x30d6: 0x000c,\n\t0x30d9: 0x000c, 0x30da: 0x000c, 0x30db: 0x000c,\n\t// Block 0xc4, offset 0x3100\n\t0x310a: 0x000c, 0x310b: 0x000c,\n\t0x310c: 0x000c, 0x310d: 0x000c, 0x310e: 0x000c, 0x310f: 0x000c, 0x3110: 0x000c, 0x3111: 0x000c,\n\t0x3112: 0x000c, 0x3113: 0x000c, 0x3114: 0x000c, 0x3115: 0x000c, 0x3116: 0x000c,\n\t0x3118: 0x000c, 0x3119: 0x000c,\n\t// Block 0xc5, offset 0x3140\n\t0x3170: 0x000c, 0x3171: 0x000c, 0x3172: 0x000c, 0x3173: 0x000c, 0x3174: 0x000c, 0x3175: 0x000c,\n\t0x3176: 0x000c, 0x3178: 0x000c, 0x3179: 0x000c, 0x317a: 0x000c, 0x317b: 0x000c,\n\t0x317c: 0x000c, 0x317d: 0x000c,\n\t// Block 0xc6, offset 0x3180\n\t0x3192: 0x000c, 0x3193: 0x000c, 0x3194: 0x000c, 0x3195: 0x000c, 0x3196: 0x000c, 0x3197: 0x000c,\n\t0x3198: 0x000c, 0x3199: 0x000c, 0x319a: 0x000c, 0x319b: 0x000c, 0x319c: 0x000c, 0x319d: 0x000c,\n\t0x319e: 0x000c, 0x319f: 0x000c, 0x31a0: 0x000c, 0x31a1: 0x000c, 0x31a2: 0x000c, 0x31a3: 0x000c,\n\t0x31a4: 0x000c, 0x31a5: 0x000c, 0x31a6: 0x000c, 0x31a7: 0x000c,\n\t0x31aa: 0x000c, 0x31ab: 0x000c, 0x31ac: 0x000c, 0x31ad: 0x000c, 0x31ae: 0x000c, 0x31af: 0x000c,\n\t0x31b0: 0x000c, 0x31b2: 0x000c, 0x31b3: 0x000c, 0x31b5: 0x000c,\n\t0x31b6: 0x000c,\n\t// Block 0xc7, offset 0x31c0\n\t0x31f1: 0x000c, 0x31f2: 0x000c, 0x31f3: 0x000c, 0x31f4: 0x000c, 0x31f5: 0x000c,\n\t0x31f6: 0x000c, 0x31fa: 0x000c,\n\t0x31fc: 0x000c, 0x31fd: 0x000c, 0x31ff: 0x000c,\n\t// Block 0xc8, offset 0x3200\n\t0x3200: 0x000c, 0x3201: 0x000c, 0x3202: 0x000c, 0x3203: 0x000c, 0x3204: 0x000c, 0x3205: 0x000c,\n\t0x3207: 0x000c,\n\t// Block 0xc9, offset 0x3240\n\t0x3250: 0x000c, 0x3251: 0x000c,\n\t0x3255: 0x000c, 0x3257: 0x000c,\n\t// Block 0xca, offset 0x3280\n\t0x32b3: 0x000c, 0x32b4: 0x000c,\n\t// Block 0xcb, offset 0x32c0\n\t0x32c0: 0x000c, 0x32c1: 0x000c,\n\t0x32f6: 0x000c, 0x32f7: 0x000c, 0x32f8: 0x000c, 0x32f9: 0x000c, 0x32fa: 0x000c,\n\t// Block 0xcc, offset 0x3300\n\t0x3300: 0x000c, 0x3302: 0x000c,\n\t// Block 0xcd, offset 0x3340\n\t0x3355: 0x000a, 0x3356: 0x000a, 0x3357: 0x000a,\n\t0x3358: 0x000a, 0x3359: 0x000a, 0x335a: 0x000a, 0x335b: 0x000a, 0x335c: 0x000a, 0x335d: 0x0004,\n\t0x335e: 0x0004, 0x335f: 0x0004, 0x3360: 0x0004, 0x3361: 0x000a, 0x3362: 0x000a, 0x3363: 0x000a,\n\t0x3364: 0x000a, 0x3365: 0x000a, 0x3366: 0x000a, 0x3367: 0x000a, 0x3368: 0x000a, 0x3369: 0x000a,\n\t0x336a: 0x000a, 0x336b: 0x000a, 0x336c: 0x000a, 0x336d: 0x000a, 0x336e: 0x000a, 0x336f: 0x000a,\n\t0x3370: 0x000a, 0x3371: 0x000a,\n\t// Block 0xce, offset 0x3380\n\t0x3380: 0x000c,\n\t0x3387: 0x000c, 0x3388: 0x000c, 0x3389: 0x000c, 0x338a: 0x000c, 0x338b: 0x000c,\n\t0x338c: 0x000c, 0x338d: 0x000c, 0x338e: 0x000c, 0x338f: 0x000c, 0x3390: 0x000c, 0x3391: 0x000c,\n\t0x3392: 0x000c, 0x3393: 0x000c, 0x3394: 0x000c, 0x3395: 0x000c,\n\t// Block 0xcf, offset 0x33c0\n\t0x33f0: 0x000c, 0x33f1: 0x000c, 0x33f2: 0x000c, 0x33f3: 0x000c, 0x33f4: 0x000c,\n\t// Block 0xd0, offset 0x3400\n\t0x3430: 0x000c, 0x3431: 0x000c, 0x3432: 0x000c, 0x3433: 0x000c, 0x3434: 0x000c, 0x3435: 0x000c,\n\t0x3436: 0x000c,\n\t// Block 0xd1, offset 0x3440\n\t0x344f: 0x000c,\n\t// Block 0xd2, offset 0x3480\n\t0x348f: 0x000c, 0x3490: 0x000c, 0x3491: 0x000c,\n\t0x3492: 0x000c,\n\t// Block 0xd3, offset 0x34c0\n\t0x34e2: 0x000a,\n\t0x34e4: 0x000c,\n\t// Block 0xd4, offset 0x3500\n\t0x351d: 0x000c,\n\t0x351e: 0x000c, 0x3520: 0x000b, 0x3521: 0x000b, 0x3522: 0x000b, 0x3523: 0x000b,\n\t// Block 0xd5, offset 0x3540\n\t0x3540: 0x000c, 0x3541: 0x000c, 0x3542: 0x000c, 0x3543: 0x000c, 0x3544: 0x000c, 0x3545: 0x000c,\n\t0x3546: 0x000c, 0x3547: 0x000c, 0x3548: 0x000c, 0x3549: 0x000c, 0x354a: 0x000c, 0x354b: 0x000c,\n\t0x354c: 0x000c, 0x354d: 0x000c, 0x354e: 0x000c, 0x354f: 0x000c, 0x3550: 0x000c, 0x3551: 0x000c,\n\t0x3552: 0x000c, 0x3553: 0x000c, 0x3554: 0x000c, 0x3555: 0x000c, 0x3556: 0x000c, 0x3557: 0x000c,\n\t0x3558: 0x000c, 0x3559: 0x000c, 0x355a: 0x000c, 0x355b: 0x000c, 0x355c: 0x000c, 0x355d: 0x000c,\n\t0x355e: 0x000c, 0x355f: 0x000c, 0x3560: 0x000c, 0x3561: 0x000c, 0x3562: 0x000c, 0x3563: 0x000c,\n\t0x3564: 0x000c, 0x3565: 0x000c, 0x3566: 0x000c, 0x3567: 0x000c, 0x3568: 0x000c, 0x3569: 0x000c,\n\t0x356a: 0x000c, 0x356b: 0x000c, 0x356c: 0x000c, 0x356d: 0x000c,\n\t0x3570: 0x000c, 0x3571: 0x000c, 0x3572: 0x000c, 0x3573: 0x000c, 0x3574: 0x000c, 0x3575: 0x000c,\n\t0x3576: 0x000c, 0x3577: 0x000c, 0x3578: 0x000c, 0x3579: 0x000c, 0x357a: 0x000c, 0x357b: 0x000c,\n\t0x357c: 0x000c, 0x357d: 0x000c, 0x357e: 0x000c, 0x357f: 0x000c,\n\t// Block 0xd6, offset 0x3580\n\t0x3580: 0x000c, 0x3581: 0x000c, 0x3582: 0x000c, 0x3583: 0x000c, 0x3584: 0x000c, 0x3585: 0x000c,\n\t0x3586: 0x000c,\n\t// Block 0xd7, offset 0x35c0\n\t0x35e7: 0x000c, 0x35e8: 0x000c, 0x35e9: 0x000c,\n\t0x35f3: 0x000b, 0x35f4: 0x000b, 0x35f5: 0x000b,\n\t0x35f6: 0x000b, 0x35f7: 0x000b, 0x35f8: 0x000b, 0x35f9: 0x000b, 0x35fa: 0x000b, 0x35fb: 0x000c,\n\t0x35fc: 0x000c, 0x35fd: 0x000c, 0x35fe: 0x000c, 0x35ff: 0x000c,\n\t// Block 0xd8, offset 0x3600\n\t0x3600: 0x000c, 0x3601: 0x000c, 0x3602: 0x000c, 0x3605: 0x000c,\n\t0x3606: 0x000c, 0x3607: 0x000c, 0x3608: 0x000c, 0x3609: 0x000c, 0x360a: 0x000c, 0x360b: 0x000c,\n\t0x362a: 0x000c, 0x362b: 0x000c, 0x362c: 0x000c, 0x362d: 0x000c,\n\t// Block 0xd9, offset 0x3640\n\t0x3669: 0x000a,\n\t0x366a: 0x000a,\n\t// Block 0xda, offset 0x3680\n\t0x3680: 0x000a, 0x3681: 0x000a, 0x3682: 0x000c, 0x3683: 0x000c, 0x3684: 0x000c, 0x3685: 0x000a,\n\t// Block 0xdb, offset 0x36c0\n\t0x36c0: 0x000a, 0x36c1: 0x000a, 0x36c2: 0x000a, 0x36c3: 0x000a, 0x36c4: 0x000a, 0x36c5: 0x000a,\n\t0x36c6: 0x000a, 0x36c7: 0x000a, 0x36c8: 0x000a, 0x36c9: 0x000a, 0x36ca: 0x000a, 0x36cb: 0x000a,\n\t0x36cc: 0x000a, 0x36cd: 0x000a, 0x36ce: 0x000a, 0x36cf: 0x000a, 0x36d0: 0x000a, 0x36d1: 0x000a,\n\t0x36d2: 0x000a, 0x36d3: 0x000a, 0x36d4: 0x000a, 0x36d5: 0x000a, 0x36d6: 0x000a,\n\t// Block 0xdc, offset 0x3700\n\t0x371b: 0x000a,\n\t// Block 0xdd, offset 0x3740\n\t0x3755: 0x000a,\n\t// Block 0xde, offset 0x3780\n\t0x378f: 0x000a,\n\t// Block 0xdf, offset 0x37c0\n\t0x37c9: 0x000a,\n\t// Block 0xe0, offset 0x3800\n\t0x3803: 0x000a,\n\t0x380e: 0x0002, 0x380f: 0x0002, 0x3810: 0x0002, 0x3811: 0x0002,\n\t0x3812: 0x0002, 0x3813: 0x0002, 0x3814: 0x0002, 0x3815: 0x0002, 0x3816: 0x0002, 0x3817: 0x0002,\n\t0x3818: 0x0002, 0x3819: 0x0002, 0x381a: 0x0002, 0x381b: 0x0002, 0x381c: 0x0002, 0x381d: 0x0002,\n\t0x381e: 0x0002, 0x381f: 0x0002, 0x3820: 0x0002, 0x3821: 0x0002, 0x3822: 0x0002, 0x3823: 0x0002,\n\t0x3824: 0x0002, 0x3825: 0x0002, 0x3826: 0x0002, 0x3827: 0x0002, 0x3828: 0x0002, 0x3829: 0x0002,\n\t0x382a: 0x0002, 0x382b: 0x0002, 0x382c: 0x0002, 0x382d: 0x0002, 0x382e: 0x0002, 0x382f: 0x0002,\n\t0x3830: 0x0002, 0x3831: 0x0002, 0x3832: 0x0002, 0x3833: 0x0002, 0x3834: 0x0002, 0x3835: 0x0002,\n\t0x3836: 0x0002, 0x3837: 0x0002, 0x3838: 0x0002, 0x3839: 0x0002, 0x383a: 0x0002, 0x383b: 0x0002,\n\t0x383c: 0x0002, 0x383d: 0x0002, 0x383e: 0x0002, 0x383f: 0x0002,\n\t// Block 0xe1, offset 0x3840\n\t0x3840: 0x000c, 0x3841: 0x000c, 0x3842: 0x000c, 0x3843: 0x000c, 0x3844: 0x000c, 0x3845: 0x000c,\n\t0x3846: 0x000c, 0x3847: 0x000c, 0x3848: 0x000c, 0x3849: 0x000c, 0x384a: 0x000c, 0x384b: 0x000c,\n\t0x384c: 0x000c, 0x384d: 0x000c, 0x384e: 0x000c, 0x384f: 0x000c, 0x3850: 0x000c, 0x3851: 0x000c,\n\t0x3852: 0x000c, 0x3853: 0x000c, 0x3854: 0x000c, 0x3855: 0x000c, 0x3856: 0x000c, 0x3857: 0x000c,\n\t0x3858: 0x000c, 0x3859: 0x000c, 0x385a: 0x000c, 0x385b: 0x000c, 0x385c: 0x000c, 0x385d: 0x000c,\n\t0x385e: 0x000c, 0x385f: 0x000c, 0x3860: 0x000c, 0x3861: 0x000c, 0x3862: 0x000c, 0x3863: 0x000c,\n\t0x3864: 0x000c, 0x3865: 0x000c, 0x3866: 0x000c, 0x3867: 0x000c, 0x3868: 0x000c, 0x3869: 0x000c,\n\t0x386a: 0x000c, 0x386b: 0x000c, 0x386c: 0x000c, 0x386d: 0x000c, 0x386e: 0x000c, 0x386f: 0x000c,\n\t0x3870: 0x000c, 0x3871: 0x000c, 0x3872: 0x000c, 0x3873: 0x000c, 0x3874: 0x000c, 0x3875: 0x000c,\n\t0x3876: 0x000c, 0x387b: 0x000c,\n\t0x387c: 0x000c, 0x387d: 0x000c, 0x387e: 0x000c, 0x387f: 0x000c,\n\t// Block 0xe2, offset 0x3880\n\t0x3880: 0x000c, 0x3881: 0x000c, 0x3882: 0x000c, 0x3883: 0x000c, 0x3884: 0x000c, 0x3885: 0x000c,\n\t0x3886: 0x000c, 0x3887: 0x000c, 0x3888: 0x000c, 0x3889: 0x000c, 0x388a: 0x000c, 0x388b: 0x000c,\n\t0x388c: 0x000c, 0x388d: 0x000c, 0x388e: 0x000c, 0x388f: 0x000c, 0x3890: 0x000c, 0x3891: 0x000c,\n\t0x3892: 0x000c, 0x3893: 0x000c, 0x3894: 0x000c, 0x3895: 0x000c, 0x3896: 0x000c, 0x3897: 0x000c,\n\t0x3898: 0x000c, 0x3899: 0x000c, 0x389a: 0x000c, 0x389b: 0x000c, 0x389c: 0x000c, 0x389d: 0x000c,\n\t0x389e: 0x000c, 0x389f: 0x000c, 0x38a0: 0x000c, 0x38a1: 0x000c, 0x38a2: 0x000c, 0x38a3: 0x000c,\n\t0x38a4: 0x000c, 0x38a5: 0x000c, 0x38a6: 0x000c, 0x38a7: 0x000c, 0x38a8: 0x000c, 0x38a9: 0x000c,\n\t0x38aa: 0x000c, 0x38ab: 0x000c, 0x38ac: 0x000c,\n\t0x38b5: 0x000c,\n\t// Block 0xe3, offset 0x38c0\n\t0x38c4: 0x000c,\n\t0x38db: 0x000c, 0x38dc: 0x000c, 0x38dd: 0x000c,\n\t0x38de: 0x000c, 0x38df: 0x000c, 0x38e1: 0x000c, 0x38e2: 0x000c, 0x38e3: 0x000c,\n\t0x38e4: 0x000c, 0x38e5: 0x000c, 0x38e6: 0x000c, 0x38e7: 0x000c, 0x38e8: 0x000c, 0x38e9: 0x000c,\n\t0x38ea: 0x000c, 0x38eb: 0x000c, 0x38ec: 0x000c, 0x38ed: 0x000c, 0x38ee: 0x000c, 0x38ef: 0x000c,\n\t// Block 0xe4, offset 0x3900\n\t0x3900: 0x000c, 0x3901: 0x000c, 0x3902: 0x000c, 0x3903: 0x000c, 0x3904: 0x000c, 0x3905: 0x000c,\n\t0x3906: 0x000c, 0x3908: 0x000c, 0x3909: 0x000c, 0x390a: 0x000c, 0x390b: 0x000c,\n\t0x390c: 0x000c, 0x390d: 0x000c, 0x390e: 0x000c, 0x390f: 0x000c, 0x3910: 0x000c, 0x3911: 0x000c,\n\t0x3912: 0x000c, 0x3913: 0x000c, 0x3914: 0x000c, 0x3915: 0x000c, 0x3916: 0x000c, 0x3917: 0x000c,\n\t0x3918: 0x000c, 0x391b: 0x000c, 0x391c: 0x000c, 0x391d: 0x000c,\n\t0x391e: 0x000c, 0x391f: 0x000c, 0x3920: 0x000c, 0x3921: 0x000c, 0x3923: 0x000c,\n\t0x3924: 0x000c, 0x3926: 0x000c, 0x3927: 0x000c, 0x3928: 0x000c, 0x3929: 0x000c,\n\t0x392a: 0x000c,\n\t// Block 0xe5, offset 0x3940\n\t0x396e: 0x000c,\n\t// Block 0xe6, offset 0x3980\n\t0x39ac: 0x000c, 0x39ad: 0x000c, 0x39ae: 0x000c, 0x39af: 0x000c,\n\t0x39bf: 0x0004,\n\t// Block 0xe7, offset 0x39c0\n\t0x39ec: 0x000c, 0x39ed: 0x000c, 0x39ee: 0x000c, 0x39ef: 0x000c,\n\t// Block 0xe8, offset 0x3a00\n\t0x3a00: 0x0001, 0x3a01: 0x0001, 0x3a02: 0x0001, 0x3a03: 0x0001, 0x3a04: 0x0001, 0x3a05: 0x0001,\n\t0x3a06: 0x0001, 0x3a07: 0x0001, 0x3a08: 0x0001, 0x3a09: 0x0001, 0x3a0a: 0x0001, 0x3a0b: 0x0001,\n\t0x3a0c: 0x0001, 0x3a0d: 0x0001, 0x3a0e: 0x0001, 0x3a0f: 0x0001, 0x3a10: 0x000c, 0x3a11: 0x000c,\n\t0x3a12: 0x000c, 0x3a13: 0x000c, 0x3a14: 0x000c, 0x3a15: 0x000c, 0x3a16: 0x000c, 0x3a17: 0x0001,\n\t0x3a18: 0x0001, 0x3a19: 0x0001, 0x3a1a: 0x0001, 0x3a1b: 0x0001, 0x3a1c: 0x0001, 0x3a1d: 0x0001,\n\t0x3a1e: 0x0001, 0x3a1f: 0x0001, 0x3a20: 0x0001, 0x3a21: 0x0001, 0x3a22: 0x0001, 0x3a23: 0x0001,\n\t0x3a24: 0x0001, 0x3a25: 0x0001, 0x3a26: 0x0001, 0x3a27: 0x0001, 0x3a28: 0x0001, 0x3a29: 0x0001,\n\t0x3a2a: 0x0001, 0x3a2b: 0x0001, 0x3a2c: 0x0001, 0x3a2d: 0x0001, 0x3a2e: 0x0001, 0x3a2f: 0x0001,\n\t0x3a30: 0x0001, 0x3a31: 0x0001, 0x3a32: 0x0001, 0x3a33: 0x0001, 0x3a34: 0x0001, 0x3a35: 0x0001,\n\t0x3a36: 0x0001, 0x3a37: 0x0001, 0x3a38: 0x0001, 0x3a39: 0x0001, 0x3a3a: 0x0001, 0x3a3b: 0x0001,\n\t0x3a3c: 0x0001, 0x3a3d: 0x0001, 0x3a3e: 0x0001, 0x3a3f: 0x0001,\n\t// Block 0xe9, offset 0x3a40\n\t0x3a40: 0x0001, 0x3a41: 0x0001, 0x3a42: 0x0001, 0x3a43: 0x0001, 0x3a44: 0x000c, 0x3a45: 0x000c,\n\t0x3a46: 0x000c, 0x3a47: 0x000c, 0x3a48: 0x000c, 0x3a49: 0x000c, 0x3a4a: 0x000c, 0x3a4b: 0x0001,\n\t0x3a4c: 0x0001, 0x3a4d: 0x0001, 0x3a4e: 0x0001, 0x3a4f: 0x0001, 0x3a50: 0x0001, 0x3a51: 0x0001,\n\t0x3a52: 0x0001, 0x3a53: 0x0001, 0x3a54: 0x0001, 0x3a55: 0x0001, 0x3a56: 0x0001, 0x3a57: 0x0001,\n\t0x3a58: 0x0001, 0x3a59: 0x0001, 0x3a5a: 0x0001, 0x3a5b: 0x0001, 0x3a5c: 0x0001, 0x3a5d: 0x0001,\n\t0x3a5e: 0x0001, 0x3a5f: 0x0001, 0x3a60: 0x0001, 0x3a61: 0x0001, 0x3a62: 0x0001, 0x3a63: 0x0001,\n\t0x3a64: 0x0001, 0x3a65: 0x0001, 0x3a66: 0x0001, 0x3a67: 0x0001, 0x3a68: 0x0001, 0x3a69: 0x0001,\n\t0x3a6a: 0x0001, 0x3a6b: 0x0001, 0x3a6c: 0x0001, 0x3a6d: 0x0001, 0x3a6e: 0x0001, 0x3a6f: 0x0001,\n\t0x3a70: 0x0001, 0x3a71: 0x0001, 0x3a72: 0x0001, 0x3a73: 0x0001, 0x3a74: 0x0001, 0x3a75: 0x0001,\n\t0x3a76: 0x0001, 0x3a77: 0x0001, 0x3a78: 0x0001, 0x3a79: 0x0001, 0x3a7a: 0x0001, 0x3a7b: 0x0001,\n\t0x3a7c: 0x0001, 0x3a7d: 0x0001, 0x3a7e: 0x0001, 0x3a7f: 0x0001,\n\t// Block 0xea, offset 0x3a80\n\t0x3a80: 0x0001, 0x3a81: 0x0001, 0x3a82: 0x0001, 0x3a83: 0x0001, 0x3a84: 0x0001, 0x3a85: 0x0001,\n\t0x3a86: 0x0001, 0x3a87: 0x0001, 0x3a88: 0x0001, 0x3a89: 0x0001, 0x3a8a: 0x0001, 0x3a8b: 0x0001,\n\t0x3a8c: 0x0001, 0x3a8d: 0x0001, 0x3a8e: 0x0001, 0x3a8f: 0x0001, 0x3a90: 0x0001, 0x3a91: 0x0001,\n\t0x3a92: 0x0001, 0x3a93: 0x0001, 0x3a94: 0x0001, 0x3a95: 0x0001, 0x3a96: 0x0001, 0x3a97: 0x0001,\n\t0x3a98: 0x0001, 0x3a99: 0x0001, 0x3a9a: 0x0001, 0x3a9b: 0x0001, 0x3a9c: 0x0001, 0x3a9d: 0x0001,\n\t0x3a9e: 0x0001, 0x3a9f: 0x0001, 0x3aa0: 0x0001, 0x3aa1: 0x0001, 0x3aa2: 0x0001, 0x3aa3: 0x0001,\n\t0x3aa4: 0x0001, 0x3aa5: 0x0001, 0x3aa6: 0x0001, 0x3aa7: 0x0001, 0x3aa8: 0x0001, 0x3aa9: 0x0001,\n\t0x3aaa: 0x0001, 0x3aab: 0x0001, 0x3aac: 0x0001, 0x3aad: 0x0001, 0x3aae: 0x0001, 0x3aaf: 0x0001,\n\t0x3ab0: 0x0001, 0x3ab1: 0x000d, 0x3ab2: 0x000d, 0x3ab3: 0x000d, 0x3ab4: 0x000d, 0x3ab5: 0x000d,\n\t0x3ab6: 0x000d, 0x3ab7: 0x000d, 0x3ab8: 0x000d, 0x3ab9: 0x000d, 0x3aba: 0x000d, 0x3abb: 0x000d,\n\t0x3abc: 0x000d, 0x3abd: 0x000d, 0x3abe: 0x000d, 0x3abf: 0x000d,\n\t// Block 0xeb, offset 0x3ac0\n\t0x3ac0: 0x000d, 0x3ac1: 0x000d, 0x3ac2: 0x000d, 0x3ac3: 0x000d, 0x3ac4: 0x000d, 0x3ac5: 0x000d,\n\t0x3ac6: 0x000d, 0x3ac7: 0x000d, 0x3ac8: 0x000d, 0x3ac9: 0x000d, 0x3aca: 0x000d, 0x3acb: 0x000d,\n\t0x3acc: 0x000d, 0x3acd: 0x000d, 0x3ace: 0x000d, 0x3acf: 0x000d, 0x3ad0: 0x000d, 0x3ad1: 0x000d,\n\t0x3ad2: 0x000d, 0x3ad3: 0x000d, 0x3ad4: 0x000d, 0x3ad5: 0x000d, 0x3ad6: 0x000d, 0x3ad7: 0x000d,\n\t0x3ad8: 0x000d, 0x3ad9: 0x000d, 0x3ada: 0x000d, 0x3adb: 0x000d, 0x3adc: 0x000d, 0x3add: 0x000d,\n\t0x3ade: 0x000d, 0x3adf: 0x000d, 0x3ae0: 0x000d, 0x3ae1: 0x000d, 0x3ae2: 0x000d, 0x3ae3: 0x000d,\n\t0x3ae4: 0x000d, 0x3ae5: 0x000d, 0x3ae6: 0x000d, 0x3ae7: 0x000d, 0x3ae8: 0x000d, 0x3ae9: 0x000d,\n\t0x3aea: 0x000d, 0x3aeb: 0x000d, 0x3aec: 0x000d, 0x3aed: 0x000d, 0x3aee: 0x000d, 0x3aef: 0x000d,\n\t0x3af0: 0x000d, 0x3af1: 0x000d, 0x3af2: 0x000d, 0x3af3: 0x000d, 0x3af4: 0x000d, 0x3af5: 0x0001,\n\t0x3af6: 0x0001, 0x3af7: 0x0001, 0x3af8: 0x0001, 0x3af9: 0x0001, 0x3afa: 0x0001, 0x3afb: 0x0001,\n\t0x3afc: 0x0001, 0x3afd: 0x0001, 0x3afe: 0x0001, 0x3aff: 0x0001,\n\t// Block 0xec, offset 0x3b00\n\t0x3b00: 0x0001, 0x3b01: 0x000d, 0x3b02: 0x000d, 0x3b03: 0x000d, 0x3b04: 0x000d, 0x3b05: 0x000d,\n\t0x3b06: 0x000d, 0x3b07: 0x000d, 0x3b08: 0x000d, 0x3b09: 0x000d, 0x3b0a: 0x000d, 0x3b0b: 0x000d,\n\t0x3b0c: 0x000d, 0x3b0d: 0x000d, 0x3b0e: 0x000d, 0x3b0f: 0x000d, 0x3b10: 0x000d, 0x3b11: 0x000d,\n\t0x3b12: 0x000d, 0x3b13: 0x000d, 0x3b14: 0x000d, 0x3b15: 0x000d, 0x3b16: 0x000d, 0x3b17: 0x000d,\n\t0x3b18: 0x000d, 0x3b19: 0x000d, 0x3b1a: 0x000d, 0x3b1b: 0x000d, 0x3b1c: 0x000d, 0x3b1d: 0x000d,\n\t0x3b1e: 0x000d, 0x3b1f: 0x000d, 0x3b20: 0x000d, 0x3b21: 0x000d, 0x3b22: 0x000d, 0x3b23: 0x000d,\n\t0x3b24: 0x000d, 0x3b25: 0x000d, 0x3b26: 0x000d, 0x3b27: 0x000d, 0x3b28: 0x000d, 0x3b29: 0x000d,\n\t0x3b2a: 0x000d, 0x3b2b: 0x000d, 0x3b2c: 0x000d, 0x3b2d: 0x000d, 0x3b2e: 0x000d, 0x3b2f: 0x000d,\n\t0x3b30: 0x000d, 0x3b31: 0x000d, 0x3b32: 0x000d, 0x3b33: 0x000d, 0x3b34: 0x000d, 0x3b35: 0x000d,\n\t0x3b36: 0x000d, 0x3b37: 0x000d, 0x3b38: 0x000d, 0x3b39: 0x000d, 0x3b3a: 0x000d, 0x3b3b: 0x000d,\n\t0x3b3c: 0x000d, 0x3b3d: 0x000d, 0x3b3e: 0x0001, 0x3b3f: 0x0001,\n\t// Block 0xed, offset 0x3b40\n\t0x3b40: 0x000d, 0x3b41: 0x000d, 0x3b42: 0x000d, 0x3b43: 0x000d, 0x3b44: 0x000d, 0x3b45: 0x000d,\n\t0x3b46: 0x000d, 0x3b47: 0x000d, 0x3b48: 0x000d, 0x3b49: 0x000d, 0x3b4a: 0x000d, 0x3b4b: 0x000d,\n\t0x3b4c: 0x000d, 0x3b4d: 0x000d, 0x3b4e: 0x000d, 0x3b4f: 0x000d, 0x3b50: 0x000d, 0x3b51: 0x000d,\n\t0x3b52: 0x000d, 0x3b53: 0x000d, 0x3b54: 0x000d, 0x3b55: 0x000d, 0x3b56: 0x000d, 0x3b57: 0x000d,\n\t0x3b58: 0x000d, 0x3b59: 0x000d, 0x3b5a: 0x000d, 0x3b5b: 0x000d, 0x3b5c: 0x000d, 0x3b5d: 0x000d,\n\t0x3b5e: 0x000d, 0x3b5f: 0x000d, 0x3b60: 0x000d, 0x3b61: 0x000d, 0x3b62: 0x000d, 0x3b63: 0x000d,\n\t0x3b64: 0x000d, 0x3b65: 0x000d, 0x3b66: 0x000d, 0x3b67: 0x000d, 0x3b68: 0x000d, 0x3b69: 0x000d,\n\t0x3b6a: 0x000d, 0x3b6b: 0x000d, 0x3b6c: 0x000d, 0x3b6d: 0x000d, 0x3b6e: 0x000d, 0x3b6f: 0x000d,\n\t0x3b70: 0x000a, 0x3b71: 0x000a, 0x3b72: 0x000d, 0x3b73: 0x000d, 0x3b74: 0x000d, 0x3b75: 0x000d,\n\t0x3b76: 0x000d, 0x3b77: 0x000d, 0x3b78: 0x000d, 0x3b79: 0x000d, 0x3b7a: 0x000d, 0x3b7b: 0x000d,\n\t0x3b7c: 0x000d, 0x3b7d: 0x000d, 0x3b7e: 0x000d, 0x3b7f: 0x000d,\n\t// Block 0xee, offset 0x3b80\n\t0x3b80: 0x000a, 0x3b81: 0x000a, 0x3b82: 0x000a, 0x3b83: 0x000a, 0x3b84: 0x000a, 0x3b85: 0x000a,\n\t0x3b86: 0x000a, 0x3b87: 0x000a, 0x3b88: 0x000a, 0x3b89: 0x000a, 0x3b8a: 0x000a, 0x3b8b: 0x000a,\n\t0x3b8c: 0x000a, 0x3b8d: 0x000a, 0x3b8e: 0x000a, 0x3b8f: 0x000a, 0x3b90: 0x000a, 0x3b91: 0x000a,\n\t0x3b92: 0x000a, 0x3b93: 0x000a, 0x3b94: 0x000a, 0x3b95: 0x000a, 0x3b96: 0x000a, 0x3b97: 0x000a,\n\t0x3b98: 0x000a, 0x3b99: 0x000a, 0x3b9a: 0x000a, 0x3b9b: 0x000a, 0x3b9c: 0x000a, 0x3b9d: 0x000a,\n\t0x3b9e: 0x000a, 0x3b9f: 0x000a, 0x3ba0: 0x000a, 0x3ba1: 0x000a, 0x3ba2: 0x000a, 0x3ba3: 0x000a,\n\t0x3ba4: 0x000a, 0x3ba5: 0x000a, 0x3ba6: 0x000a, 0x3ba7: 0x000a, 0x3ba8: 0x000a, 0x3ba9: 0x000a,\n\t0x3baa: 0x000a, 0x3bab: 0x000a,\n\t0x3bb0: 0x000a, 0x3bb1: 0x000a, 0x3bb2: 0x000a, 0x3bb3: 0x000a, 0x3bb4: 0x000a, 0x3bb5: 0x000a,\n\t0x3bb6: 0x000a, 0x3bb7: 0x000a, 0x3bb8: 0x000a, 0x3bb9: 0x000a, 0x3bba: 0x000a, 0x3bbb: 0x000a,\n\t0x3bbc: 0x000a, 0x3bbd: 0x000a, 0x3bbe: 0x000a, 0x3bbf: 0x000a,\n\t// Block 0xef, offset 0x3bc0\n\t0x3bc0: 0x000a, 0x3bc1: 0x000a, 0x3bc2: 0x000a, 0x3bc3: 0x000a, 0x3bc4: 0x000a, 0x3bc5: 0x000a,\n\t0x3bc6: 0x000a, 0x3bc7: 0x000a, 0x3bc8: 0x000a, 0x3bc9: 0x000a, 0x3bca: 0x000a, 0x3bcb: 0x000a,\n\t0x3bcc: 0x000a, 0x3bcd: 0x000a, 0x3bce: 0x000a, 0x3bcf: 0x000a, 0x3bd0: 0x000a, 0x3bd1: 0x000a,\n\t0x3bd2: 0x000a, 0x3bd3: 0x000a,\n\t0x3be0: 0x000a, 0x3be1: 0x000a, 0x3be2: 0x000a, 0x3be3: 0x000a,\n\t0x3be4: 0x000a, 0x3be5: 0x000a, 0x3be6: 0x000a, 0x3be7: 0x000a, 0x3be8: 0x000a, 0x3be9: 0x000a,\n\t0x3bea: 0x000a, 0x3beb: 0x000a, 0x3bec: 0x000a, 0x3bed: 0x000a, 0x3bee: 0x000a,\n\t0x3bf1: 0x000a, 0x3bf2: 0x000a, 0x3bf3: 0x000a, 0x3bf4: 0x000a, 0x3bf5: 0x000a,\n\t0x3bf6: 0x000a, 0x3bf7: 0x000a, 0x3bf8: 0x000a, 0x3bf9: 0x000a, 0x3bfa: 0x000a, 0x3bfb: 0x000a,\n\t0x3bfc: 0x000a, 0x3bfd: 0x000a, 0x3bfe: 0x000a, 0x3bff: 0x000a,\n\t// Block 0xf0, offset 0x3c00\n\t0x3c01: 0x000a, 0x3c02: 0x000a, 0x3c03: 0x000a, 0x3c04: 0x000a, 0x3c05: 0x000a,\n\t0x3c06: 0x000a, 0x3c07: 0x000a, 0x3c08: 0x000a, 0x3c09: 0x000a, 0x3c0a: 0x000a, 0x3c0b: 0x000a,\n\t0x3c0c: 0x000a, 0x3c0d: 0x000a, 0x3c0e: 0x000a, 0x3c0f: 0x000a, 0x3c11: 0x000a,\n\t0x3c12: 0x000a, 0x3c13: 0x000a, 0x3c14: 0x000a, 0x3c15: 0x000a, 0x3c16: 0x000a, 0x3c17: 0x000a,\n\t0x3c18: 0x000a, 0x3c19: 0x000a, 0x3c1a: 0x000a, 0x3c1b: 0x000a, 0x3c1c: 0x000a, 0x3c1d: 0x000a,\n\t0x3c1e: 0x000a, 0x3c1f: 0x000a, 0x3c20: 0x000a, 0x3c21: 0x000a, 0x3c22: 0x000a, 0x3c23: 0x000a,\n\t0x3c24: 0x000a, 0x3c25: 0x000a, 0x3c26: 0x000a, 0x3c27: 0x000a, 0x3c28: 0x000a, 0x3c29: 0x000a,\n\t0x3c2a: 0x000a, 0x3c2b: 0x000a, 0x3c2c: 0x000a, 0x3c2d: 0x000a, 0x3c2e: 0x000a, 0x3c2f: 0x000a,\n\t0x3c30: 0x000a, 0x3c31: 0x000a, 0x3c32: 0x000a, 0x3c33: 0x000a, 0x3c34: 0x000a, 0x3c35: 0x000a,\n\t// Block 0xf1, offset 0x3c40\n\t0x3c40: 0x0002, 0x3c41: 0x0002, 0x3c42: 0x0002, 0x3c43: 0x0002, 0x3c44: 0x0002, 0x3c45: 0x0002,\n\t0x3c46: 0x0002, 0x3c47: 0x0002, 0x3c48: 0x0002, 0x3c49: 0x0002, 0x3c4a: 0x0002, 0x3c4b: 0x000a,\n\t0x3c4c: 0x000a, 0x3c4d: 0x000a, 0x3c4e: 0x000a, 0x3c4f: 0x000a,\n\t0x3c6f: 0x000a,\n\t// Block 0xf2, offset 0x3c80\n\t0x3caa: 0x000a, 0x3cab: 0x000a, 0x3cac: 0x000a, 0x3cad: 0x000a, 0x3cae: 0x000a, 0x3caf: 0x000a,\n\t// Block 0xf3, offset 0x3cc0\n\t0x3ced: 0x000a,\n\t// Block 0xf4, offset 0x3d00\n\t0x3d20: 0x000a, 0x3d21: 0x000a, 0x3d22: 0x000a, 0x3d23: 0x000a,\n\t0x3d24: 0x000a, 0x3d25: 0x000a,\n\t// Block 0xf5, offset 0x3d40\n\t0x3d40: 0x000a, 0x3d41: 0x000a, 0x3d42: 0x000a, 0x3d43: 0x000a, 0x3d44: 0x000a, 0x3d45: 0x000a,\n\t0x3d46: 0x000a, 0x3d47: 0x000a, 0x3d48: 0x000a, 0x3d49: 0x000a, 0x3d4a: 0x000a, 0x3d4b: 0x000a,\n\t0x3d4c: 0x000a, 0x3d4d: 0x000a, 0x3d4e: 0x000a, 0x3d4f: 0x000a, 0x3d50: 0x000a, 0x3d51: 0x000a,\n\t0x3d52: 0x000a, 0x3d53: 0x000a, 0x3d54: 0x000a, 0x3d55: 0x000a, 0x3d56: 0x000a, 0x3d57: 0x000a,\n\t0x3d5c: 0x000a, 0x3d5d: 0x000a,\n\t0x3d5e: 0x000a, 0x3d5f: 0x000a, 0x3d60: 0x000a, 0x3d61: 0x000a, 0x3d62: 0x000a, 0x3d63: 0x000a,\n\t0x3d64: 0x000a, 0x3d65: 0x000a, 0x3d66: 0x000a, 0x3d67: 0x000a, 0x3d68: 0x000a, 0x3d69: 0x000a,\n\t0x3d6a: 0x000a, 0x3d6b: 0x000a, 0x3d6c: 0x000a,\n\t0x3d70: 0x000a, 0x3d71: 0x000a, 0x3d72: 0x000a, 0x3d73: 0x000a, 0x3d74: 0x000a, 0x3d75: 0x000a,\n\t0x3d76: 0x000a, 0x3d77: 0x000a, 0x3d78: 0x000a, 0x3d79: 0x000a, 0x3d7a: 0x000a, 0x3d7b: 0x000a,\n\t0x3d7c: 0x000a,\n\t// Block 0xf6, offset 0x3d80\n\t0x3d80: 0x000a, 0x3d81: 0x000a, 0x3d82: 0x000a, 0x3d83: 0x000a, 0x3d84: 0x000a, 0x3d85: 0x000a,\n\t0x3d86: 0x000a, 0x3d87: 0x000a, 0x3d88: 0x000a, 0x3d89: 0x000a, 0x3d8a: 0x000a, 0x3d8b: 0x000a,\n\t0x3d8c: 0x000a, 0x3d8d: 0x000a, 0x3d8e: 0x000a, 0x3d8f: 0x000a, 0x3d90: 0x000a, 0x3d91: 0x000a,\n\t0x3d92: 0x000a, 0x3d93: 0x000a, 0x3d94: 0x000a, 0x3d95: 0x000a, 0x3d96: 0x000a, 0x3d97: 0x000a,\n\t0x3d98: 0x000a, 0x3d99: 0x000a, 0x3d9a: 0x000a, 0x3d9b: 0x000a, 0x3d9c: 0x000a, 0x3d9d: 0x000a,\n\t0x3d9e: 0x000a, 0x3d9f: 0x000a, 0x3da0: 0x000a, 0x3da1: 0x000a, 0x3da2: 0x000a, 0x3da3: 0x000a,\n\t0x3da4: 0x000a, 0x3da5: 0x000a, 0x3da6: 0x000a, 0x3da7: 0x000a, 0x3da8: 0x000a, 0x3da9: 0x000a,\n\t0x3daa: 0x000a, 0x3dab: 0x000a, 0x3dac: 0x000a, 0x3dad: 0x000a, 0x3dae: 0x000a, 0x3daf: 0x000a,\n\t0x3db0: 0x000a, 0x3db1: 0x000a, 0x3db2: 0x000a, 0x3db3: 0x000a, 0x3db4: 0x000a, 0x3db5: 0x000a,\n\t0x3db6: 0x000a, 0x3dbb: 0x000a,\n\t0x3dbc: 0x000a, 0x3dbd: 0x000a, 0x3dbe: 0x000a, 0x3dbf: 0x000a,\n\t// Block 0xf7, offset 0x3dc0\n\t0x3dc0: 0x000a, 0x3dc1: 0x000a, 0x3dc2: 0x000a, 0x3dc3: 0x000a, 0x3dc4: 0x000a, 0x3dc5: 0x000a,\n\t0x3dc6: 0x000a, 0x3dc7: 0x000a, 0x3dc8: 0x000a, 0x3dc9: 0x000a, 0x3dca: 0x000a, 0x3dcb: 0x000a,\n\t0x3dcc: 0x000a, 0x3dcd: 0x000a, 0x3dce: 0x000a, 0x3dcf: 0x000a, 0x3dd0: 0x000a, 0x3dd1: 0x000a,\n\t0x3dd2: 0x000a, 0x3dd3: 0x000a, 0x3dd4: 0x000a, 0x3dd5: 0x000a, 0x3dd6: 0x000a, 0x3dd7: 0x000a,\n\t0x3dd8: 0x000a, 0x3dd9: 0x000a,\n\t0x3de0: 0x000a, 0x3de1: 0x000a, 0x3de2: 0x000a, 0x3de3: 0x000a,\n\t0x3de4: 0x000a, 0x3de5: 0x000a, 0x3de6: 0x000a, 0x3de7: 0x000a, 0x3de8: 0x000a, 0x3de9: 0x000a,\n\t0x3dea: 0x000a, 0x3deb: 0x000a,\n\t0x3df0: 0x000a,\n\t// Block 0xf8, offset 0x3e00\n\t0x3e00: 0x000a, 0x3e01: 0x000a, 0x3e02: 0x000a, 0x3e03: 0x000a, 0x3e04: 0x000a, 0x3e05: 0x000a,\n\t0x3e06: 0x000a, 0x3e07: 0x000a, 0x3e08: 0x000a, 0x3e09: 0x000a, 0x3e0a: 0x000a, 0x3e0b: 0x000a,\n\t0x3e10: 0x000a, 0x3e11: 0x000a,\n\t0x3e12: 0x000a, 0x3e13: 0x000a, 0x3e14: 0x000a, 0x3e15: 0x000a, 0x3e16: 0x000a, 0x3e17: 0x000a,\n\t0x3e18: 0x000a, 0x3e19: 0x000a, 0x3e1a: 0x000a, 0x3e1b: 0x000a, 0x3e1c: 0x000a, 0x3e1d: 0x000a,\n\t0x3e1e: 0x000a, 0x3e1f: 0x000a, 0x3e20: 0x000a, 0x3e21: 0x000a, 0x3e22: 0x000a, 0x3e23: 0x000a,\n\t0x3e24: 0x000a, 0x3e25: 0x000a, 0x3e26: 0x000a, 0x3e27: 0x000a, 0x3e28: 0x000a, 0x3e29: 0x000a,\n\t0x3e2a: 0x000a, 0x3e2b: 0x000a, 0x3e2c: 0x000a, 0x3e2d: 0x000a, 0x3e2e: 0x000a, 0x3e2f: 0x000a,\n\t0x3e30: 0x000a, 0x3e31: 0x000a, 0x3e32: 0x000a, 0x3e33: 0x000a, 0x3e34: 0x000a, 0x3e35: 0x000a,\n\t0x3e36: 0x000a, 0x3e37: 0x000a, 0x3e38: 0x000a, 0x3e39: 0x000a, 0x3e3a: 0x000a, 0x3e3b: 0x000a,\n\t0x3e3c: 0x000a, 0x3e3d: 0x000a, 0x3e3e: 0x000a, 0x3e3f: 0x000a,\n\t// Block 0xf9, offset 0x3e40\n\t0x3e40: 0x000a, 0x3e41: 0x000a, 0x3e42: 0x000a, 0x3e43: 0x000a, 0x3e44: 0x000a, 0x3e45: 0x000a,\n\t0x3e46: 0x000a, 0x3e47: 0x000a,\n\t0x3e50: 0x000a, 0x3e51: 0x000a,\n\t0x3e52: 0x000a, 0x3e53: 0x000a, 0x3e54: 0x000a, 0x3e55: 0x000a, 0x3e56: 0x000a, 0x3e57: 0x000a,\n\t0x3e58: 0x000a, 0x3e59: 0x000a,\n\t0x3e60: 0x000a, 0x3e61: 0x000a, 0x3e62: 0x000a, 0x3e63: 0x000a,\n\t0x3e64: 0x000a, 0x3e65: 0x000a, 0x3e66: 0x000a, 0x3e67: 0x000a, 0x3e68: 0x000a, 0x3e69: 0x000a,\n\t0x3e6a: 0x000a, 0x3e6b: 0x000a, 0x3e6c: 0x000a, 0x3e6d: 0x000a, 0x3e6e: 0x000a, 0x3e6f: 0x000a,\n\t0x3e70: 0x000a, 0x3e71: 0x000a, 0x3e72: 0x000a, 0x3e73: 0x000a, 0x3e74: 0x000a, 0x3e75: 0x000a,\n\t0x3e76: 0x000a, 0x3e77: 0x000a, 0x3e78: 0x000a, 0x3e79: 0x000a, 0x3e7a: 0x000a, 0x3e7b: 0x000a,\n\t0x3e7c: 0x000a, 0x3e7d: 0x000a, 0x3e7e: 0x000a, 0x3e7f: 0x000a,\n\t// Block 0xfa, offset 0x3e80\n\t0x3e80: 0x000a, 0x3e81: 0x000a, 0x3e82: 0x000a, 0x3e83: 0x000a, 0x3e84: 0x000a, 0x3e85: 0x000a,\n\t0x3e86: 0x000a, 0x3e87: 0x000a,\n\t0x3e90: 0x000a, 0x3e91: 0x000a,\n\t0x3e92: 0x000a, 0x3e93: 0x000a, 0x3e94: 0x000a, 0x3e95: 0x000a, 0x3e96: 0x000a, 0x3e97: 0x000a,\n\t0x3e98: 0x000a, 0x3e99: 0x000a, 0x3e9a: 0x000a, 0x3e9b: 0x000a, 0x3e9c: 0x000a, 0x3e9d: 0x000a,\n\t0x3e9e: 0x000a, 0x3e9f: 0x000a, 0x3ea0: 0x000a, 0x3ea1: 0x000a, 0x3ea2: 0x000a, 0x3ea3: 0x000a,\n\t0x3ea4: 0x000a, 0x3ea5: 0x000a, 0x3ea6: 0x000a, 0x3ea7: 0x000a, 0x3ea8: 0x000a, 0x3ea9: 0x000a,\n\t0x3eaa: 0x000a, 0x3eab: 0x000a, 0x3eac: 0x000a, 0x3ead: 0x000a,\n\t0x3eb0: 0x000a, 0x3eb1: 0x000a,\n\t// Block 0xfb, offset 0x3ec0\n\t0x3ec0: 0x000a, 0x3ec1: 0x000a, 0x3ec2: 0x000a, 0x3ec3: 0x000a, 0x3ec4: 0x000a, 0x3ec5: 0x000a,\n\t0x3ec6: 0x000a, 0x3ec7: 0x000a, 0x3ec8: 0x000a, 0x3ec9: 0x000a, 0x3eca: 0x000a, 0x3ecb: 0x000a,\n\t0x3ecc: 0x000a, 0x3ecd: 0x000a, 0x3ece: 0x000a, 0x3ecf: 0x000a, 0x3ed0: 0x000a, 0x3ed1: 0x000a,\n\t0x3ed2: 0x000a, 0x3ed3: 0x000a,\n\t0x3ee0: 0x000a, 0x3ee1: 0x000a, 0x3ee2: 0x000a, 0x3ee3: 0x000a,\n\t0x3ee4: 0x000a, 0x3ee5: 0x000a, 0x3ee6: 0x000a, 0x3ee7: 0x000a, 0x3ee8: 0x000a, 0x3ee9: 0x000a,\n\t0x3eea: 0x000a, 0x3eeb: 0x000a, 0x3eec: 0x000a, 0x3eed: 0x000a,\n\t0x3ef0: 0x000a, 0x3ef1: 0x000a, 0x3ef2: 0x000a, 0x3ef3: 0x000a, 0x3ef4: 0x000a, 0x3ef5: 0x000a,\n\t0x3ef6: 0x000a, 0x3ef7: 0x000a, 0x3ef8: 0x000a, 0x3ef9: 0x000a, 0x3efa: 0x000a, 0x3efb: 0x000a,\n\t0x3efc: 0x000a,\n\t// Block 0xfc, offset 0x3f00\n\t0x3f00: 0x000a, 0x3f01: 0x000a, 0x3f02: 0x000a, 0x3f03: 0x000a, 0x3f04: 0x000a, 0x3f05: 0x000a,\n\t0x3f06: 0x000a, 0x3f07: 0x000a, 0x3f08: 0x000a,\n\t0x3f10: 0x000a, 0x3f11: 0x000a,\n\t0x3f12: 0x000a, 0x3f13: 0x000a, 0x3f14: 0x000a, 0x3f15: 0x000a, 0x3f16: 0x000a, 0x3f17: 0x000a,\n\t0x3f18: 0x000a, 0x3f19: 0x000a, 0x3f1a: 0x000a, 0x3f1b: 0x000a, 0x3f1c: 0x000a, 0x3f1d: 0x000a,\n\t0x3f1e: 0x000a, 0x3f1f: 0x000a, 0x3f20: 0x000a, 0x3f21: 0x000a, 0x3f22: 0x000a, 0x3f23: 0x000a,\n\t0x3f24: 0x000a, 0x3f25: 0x000a, 0x3f26: 0x000a, 0x3f27: 0x000a, 0x3f28: 0x000a, 0x3f29: 0x000a,\n\t0x3f2a: 0x000a, 0x3f2b: 0x000a, 0x3f2c: 0x000a, 0x3f2d: 0x000a, 0x3f2e: 0x000a, 0x3f2f: 0x000a,\n\t0x3f30: 0x000a, 0x3f31: 0x000a, 0x3f32: 0x000a, 0x3f33: 0x000a, 0x3f34: 0x000a, 0x3f35: 0x000a,\n\t0x3f36: 0x000a, 0x3f37: 0x000a, 0x3f38: 0x000a, 0x3f39: 0x000a, 0x3f3a: 0x000a, 0x3f3b: 0x000a,\n\t0x3f3c: 0x000a, 0x3f3d: 0x000a, 0x3f3f: 0x000a,\n\t// Block 0xfd, offset 0x3f40\n\t0x3f40: 0x000a, 0x3f41: 0x000a, 0x3f42: 0x000a, 0x3f43: 0x000a, 0x3f44: 0x000a, 0x3f45: 0x000a,\n\t0x3f4e: 0x000a, 0x3f4f: 0x000a, 0x3f50: 0x000a, 0x3f51: 0x000a,\n\t0x3f52: 0x000a, 0x3f53: 0x000a, 0x3f54: 0x000a, 0x3f55: 0x000a, 0x3f56: 0x000a, 0x3f57: 0x000a,\n\t0x3f58: 0x000a, 0x3f59: 0x000a, 0x3f5a: 0x000a, 0x3f5b: 0x000a,\n\t0x3f60: 0x000a, 0x3f61: 0x000a, 0x3f62: 0x000a, 0x3f63: 0x000a,\n\t0x3f64: 0x000a, 0x3f65: 0x000a, 0x3f66: 0x000a, 0x3f67: 0x000a, 0x3f68: 0x000a,\n\t0x3f70: 0x000a, 0x3f71: 0x000a, 0x3f72: 0x000a, 0x3f73: 0x000a, 0x3f74: 0x000a, 0x3f75: 0x000a,\n\t0x3f76: 0x000a, 0x3f77: 0x000a, 0x3f78: 0x000a,\n\t// Block 0xfe, offset 0x3f80\n\t0x3f80: 0x000a, 0x3f81: 0x000a, 0x3f82: 0x000a, 0x3f83: 0x000a, 0x3f84: 0x000a, 0x3f85: 0x000a,\n\t0x3f86: 0x000a, 0x3f87: 0x000a, 0x3f88: 0x000a, 0x3f89: 0x000a, 0x3f8a: 0x000a, 0x3f8b: 0x000a,\n\t0x3f8c: 0x000a, 0x3f8d: 0x000a, 0x3f8e: 0x000a, 0x3f8f: 0x000a, 0x3f90: 0x000a, 0x3f91: 0x000a,\n\t0x3f92: 0x000a, 0x3f94: 0x000a, 0x3f95: 0x000a, 0x3f96: 0x000a, 0x3f97: 0x000a,\n\t0x3f98: 0x000a, 0x3f99: 0x000a, 0x3f9a: 0x000a, 0x3f9b: 0x000a, 0x3f9c: 0x000a, 0x3f9d: 0x000a,\n\t0x3f9e: 0x000a, 0x3f9f: 0x000a, 0x3fa0: 0x000a, 0x3fa1: 0x000a, 0x3fa2: 0x000a, 0x3fa3: 0x000a,\n\t0x3fa4: 0x000a, 0x3fa5: 0x000a, 0x3fa6: 0x000a, 0x3fa7: 0x000a, 0x3fa8: 0x000a, 0x3fa9: 0x000a,\n\t0x3faa: 0x000a, 0x3fab: 0x000a, 0x3fac: 0x000a, 0x3fad: 0x000a, 0x3fae: 0x000a, 0x3faf: 0x000a,\n\t0x3fb0: 0x000a, 0x3fb1: 0x000a, 0x3fb2: 0x000a, 0x3fb3: 0x000a, 0x3fb4: 0x000a, 0x3fb5: 0x000a,\n\t0x3fb6: 0x000a, 0x3fb7: 0x000a, 0x3fb8: 0x000a, 0x3fb9: 0x000a, 0x3fba: 0x000a, 0x3fbb: 0x000a,\n\t0x3fbc: 0x000a, 0x3fbd: 0x000a, 0x3fbe: 0x000a, 0x3fbf: 0x000a,\n\t// Block 0xff, offset 0x3fc0\n\t0x3fc0: 0x000a, 0x3fc1: 0x000a, 0x3fc2: 0x000a, 0x3fc3: 0x000a, 0x3fc4: 0x000a, 0x3fc5: 0x000a,\n\t0x3fc6: 0x000a, 0x3fc7: 0x000a, 0x3fc8: 0x000a, 0x3fc9: 0x000a, 0x3fca: 0x000a,\n\t0x3ff0: 0x0002, 0x3ff1: 0x0002, 0x3ff2: 0x0002, 0x3ff3: 0x0002, 0x3ff4: 0x0002, 0x3ff5: 0x0002,\n\t0x3ff6: 0x0002, 0x3ff7: 0x0002, 0x3ff8: 0x0002, 0x3ff9: 0x0002,\n\t// Block 0x100, offset 0x4000\n\t0x403e: 0x000b, 0x403f: 0x000b,\n\t// Block 0x101, offset 0x4040\n\t0x4040: 0x000b, 0x4041: 0x000b, 0x4042: 0x000b, 0x4043: 0x000b, 0x4044: 0x000b, 0x4045: 0x000b,\n\t0x4046: 0x000b, 0x4047: 0x000b, 0x4048: 0x000b, 0x4049: 0x000b, 0x404a: 0x000b, 0x404b: 0x000b,\n\t0x404c: 0x000b, 0x404d: 0x000b, 0x404e: 0x000b, 0x404f: 0x000b, 0x4050: 0x000b, 0x4051: 0x000b,\n\t0x4052: 0x000b, 0x4053: 0x000b, 0x4054: 0x000b, 0x4055: 0x000b, 0x4056: 0x000b, 0x4057: 0x000b,\n\t0x4058: 0x000b, 0x4059: 0x000b, 0x405a: 0x000b, 0x405b: 0x000b, 0x405c: 0x000b, 0x405d: 0x000b,\n\t0x405e: 0x000b, 0x405f: 0x000b, 0x4060: 0x000b, 0x4061: 0x000b, 0x4062: 0x000b, 0x4063: 0x000b,\n\t0x4064: 0x000b, 0x4065: 0x000b, 0x4066: 0x000b, 0x4067: 0x000b, 0x4068: 0x000b, 0x4069: 0x000b,\n\t0x406a: 0x000b, 0x406b: 0x000b, 0x406c: 0x000b, 0x406d: 0x000b, 0x406e: 0x000b, 0x406f: 0x000b,\n\t0x4070: 0x000b, 0x4071: 0x000b, 0x4072: 0x000b, 0x4073: 0x000b, 0x4074: 0x000b, 0x4075: 0x000b,\n\t0x4076: 0x000b, 0x4077: 0x000b, 0x4078: 0x000b, 0x4079: 0x000b, 0x407a: 0x000b, 0x407b: 0x000b,\n\t0x407c: 0x000b, 0x407d: 0x000b, 0x407e: 0x000b, 0x407f: 0x000b,\n\t// Block 0x102, offset 0x4080\n\t0x4080: 0x000c, 0x4081: 0x000c, 0x4082: 0x000c, 0x4083: 0x000c, 0x4084: 0x000c, 0x4085: 0x000c,\n\t0x4086: 0x000c, 0x4087: 0x000c, 0x4088: 0x000c, 0x4089: 0x000c, 0x408a: 0x000c, 0x408b: 0x000c,\n\t0x408c: 0x000c, 0x408d: 0x000c, 0x408e: 0x000c, 0x408f: 0x000c, 0x4090: 0x000c, 0x4091: 0x000c,\n\t0x4092: 0x000c, 0x4093: 0x000c, 0x4094: 0x000c, 0x4095: 0x000c, 0x4096: 0x000c, 0x4097: 0x000c,\n\t0x4098: 0x000c, 0x4099: 0x000c, 0x409a: 0x000c, 0x409b: 0x000c, 0x409c: 0x000c, 0x409d: 0x000c,\n\t0x409e: 0x000c, 0x409f: 0x000c, 0x40a0: 0x000c, 0x40a1: 0x000c, 0x40a2: 0x000c, 0x40a3: 0x000c,\n\t0x40a4: 0x000c, 0x40a5: 0x000c, 0x40a6: 0x000c, 0x40a7: 0x000c, 0x40a8: 0x000c, 0x40a9: 0x000c,\n\t0x40aa: 0x000c, 0x40ab: 0x000c, 0x40ac: 0x000c, 0x40ad: 0x000c, 0x40ae: 0x000c, 0x40af: 0x000c,\n\t0x40b0: 0x000b, 0x40b1: 0x000b, 0x40b2: 0x000b, 0x40b3: 0x000b, 0x40b4: 0x000b, 0x40b5: 0x000b,\n\t0x40b6: 0x000b, 0x40b7: 0x000b, 0x40b8: 0x000b, 0x40b9: 0x000b, 0x40ba: 0x000b, 0x40bb: 0x000b,\n\t0x40bc: 0x000b, 0x40bd: 0x000b, 0x40be: 0x000b, 0x40bf: 0x000b,\n}\n\n// bidiIndex: 26 blocks, 1664 entries, 3328 bytes\n// Block 0 is the zero block.\nvar bidiIndex = [1664]uint16{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x01, 0xc3: 0x02,\n\t0xca: 0x03, 0xcb: 0x04, 0xcc: 0x05, 0xcd: 0x06, 0xce: 0x07, 0xcf: 0x08,\n\t0xd2: 0x09, 0xd6: 0x0a, 0xd7: 0x0b,\n\t0xd8: 0x0c, 0xd9: 0x0d, 0xda: 0x0e, 0xdb: 0x0f, 0xdc: 0x10, 0xdd: 0x11, 0xde: 0x12, 0xdf: 0x13,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06,\n\t0xea: 0x07, 0xef: 0x08,\n\t0xf0: 0x13, 0xf1: 0x14, 0xf2: 0x14, 0xf3: 0x16, 0xf4: 0x17,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x14, 0x121: 0x15, 0x122: 0x16, 0x123: 0x17, 0x124: 0x18, 0x125: 0x19, 0x126: 0x1a, 0x127: 0x1b,\n\t0x128: 0x1c, 0x129: 0x1d, 0x12a: 0x1c, 0x12b: 0x1e, 0x12c: 0x1f, 0x12d: 0x20, 0x12e: 0x21, 0x12f: 0x22,\n\t0x130: 0x23, 0x131: 0x24, 0x132: 0x1a, 0x133: 0x25, 0x134: 0x26, 0x135: 0x27, 0x136: 0x28, 0x137: 0x29,\n\t0x138: 0x2a, 0x139: 0x2b, 0x13a: 0x2c, 0x13b: 0x2d, 0x13c: 0x2e, 0x13d: 0x2f, 0x13e: 0x30, 0x13f: 0x31,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x32, 0x141: 0x33, 0x142: 0x34,\n\t0x14d: 0x35, 0x14e: 0x36,\n\t0x150: 0x37,\n\t0x15a: 0x38, 0x15c: 0x39, 0x15d: 0x3a, 0x15e: 0x3b, 0x15f: 0x3c,\n\t0x160: 0x3d, 0x162: 0x3e, 0x164: 0x3f, 0x165: 0x40, 0x167: 0x41,\n\t0x168: 0x42, 0x169: 0x43, 0x16a: 0x44, 0x16b: 0x45, 0x16c: 0x46, 0x16d: 0x47, 0x16e: 0x48, 0x16f: 0x49,\n\t0x170: 0x4a, 0x173: 0x4b, 0x177: 0x05,\n\t0x17e: 0x4c, 0x17f: 0x4d,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x4e, 0x181: 0x4f, 0x182: 0x50, 0x183: 0x51, 0x184: 0x52, 0x185: 0x53, 0x186: 0x54, 0x187: 0x55,\n\t0x188: 0x56, 0x189: 0x55, 0x18a: 0x55, 0x18b: 0x55, 0x18c: 0x57, 0x18d: 0x58, 0x18e: 0x59, 0x18f: 0x55,\n\t0x190: 0x5a, 0x191: 0x5b, 0x192: 0x5c, 0x193: 0x5d, 0x194: 0x55, 0x195: 0x55, 0x196: 0x55, 0x197: 0x55,\n\t0x198: 0x55, 0x199: 0x55, 0x19a: 0x5e, 0x19b: 0x55, 0x19c: 0x55, 0x19d: 0x5f, 0x19e: 0x55, 0x19f: 0x60,\n\t0x1a4: 0x55, 0x1a5: 0x55, 0x1a6: 0x61, 0x1a7: 0x62,\n\t0x1a8: 0x55, 0x1a9: 0x55, 0x1aa: 0x55, 0x1ab: 0x55, 0x1ac: 0x55, 0x1ad: 0x63, 0x1ae: 0x64, 0x1af: 0x55,\n\t0x1b3: 0x65, 0x1b5: 0x66, 0x1b7: 0x67,\n\t0x1b8: 0x68, 0x1b9: 0x69, 0x1ba: 0x6a, 0x1bb: 0x6b, 0x1bc: 0x55, 0x1bd: 0x55, 0x1be: 0x55, 0x1bf: 0x6c,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x6d, 0x1c2: 0x6e, 0x1c3: 0x6f, 0x1c7: 0x70,\n\t0x1c8: 0x71, 0x1c9: 0x72, 0x1ca: 0x73, 0x1cb: 0x74, 0x1cd: 0x75, 0x1cf: 0x76,\n\t// Block 0x8, offset 0x200\n\t0x237: 0x55,\n\t// Block 0x9, offset 0x240\n\t0x252: 0x77, 0x253: 0x78,\n\t0x258: 0x79, 0x259: 0x7a, 0x25a: 0x7b, 0x25b: 0x7c, 0x25c: 0x7d, 0x25e: 0x7e,\n\t0x260: 0x7f, 0x261: 0x80, 0x263: 0x81, 0x264: 0x82, 0x265: 0x83, 0x266: 0x84, 0x267: 0x85,\n\t0x268: 0x86, 0x269: 0x87, 0x26a: 0x88, 0x26b: 0x89, 0x26d: 0x8a, 0x26f: 0x8b,\n\t// Block 0xa, offset 0x280\n\t0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x0e, 0x2af: 0x0e,\n\t0x2b0: 0x0e, 0x2b1: 0x0e, 0x2b2: 0x0e, 0x2b3: 0x0e, 0x2b4: 0x8e, 0x2b5: 0x8f, 0x2b6: 0x0e, 0x2b7: 0x90,\n\t0x2b8: 0x91, 0x2b9: 0x92, 0x2ba: 0x0e, 0x2bb: 0x93, 0x2bc: 0x94, 0x2bd: 0x95, 0x2bf: 0x96,\n\t// Block 0xb, offset 0x2c0\n\t0x2c4: 0x97, 0x2c5: 0x55, 0x2c6: 0x98, 0x2c7: 0x99,\n\t0x2cb: 0x9a, 0x2cd: 0x9b,\n\t0x2e0: 0x9c, 0x2e1: 0x9c, 0x2e2: 0x9c, 0x2e3: 0x9c, 0x2e4: 0x9d, 0x2e5: 0x9c, 0x2e6: 0x9c, 0x2e7: 0x9c,\n\t0x2e8: 0x9e, 0x2e9: 0x9c, 0x2ea: 0x9c, 0x2eb: 0x9f, 0x2ec: 0xa0, 0x2ed: 0x9c, 0x2ee: 0x9c, 0x2ef: 0x9c,\n\t0x2f0: 0x9c, 0x2f1: 0x9c, 0x2f2: 0x9c, 0x2f3: 0x9c, 0x2f4: 0xa1, 0x2f5: 0x9c, 0x2f6: 0x9c, 0x2f7: 0x9c,\n\t0x2f8: 0x9c, 0x2f9: 0xa2, 0x2fa: 0xa3, 0x2fb: 0xa4, 0x2fc: 0xa5, 0x2fd: 0xa6, 0x2fe: 0xa7, 0x2ff: 0x9c,\n\t// Block 0xc, offset 0x300\n\t0x300: 0xa8, 0x301: 0xa9, 0x302: 0xaa, 0x303: 0x21, 0x304: 0xab, 0x305: 0xac, 0x306: 0xad, 0x307: 0xae,\n\t0x308: 0xaf, 0x309: 0x28, 0x30b: 0xb0, 0x30c: 0x26, 0x30d: 0xb1,\n\t0x310: 0xb2, 0x311: 0xb3, 0x312: 0xb4, 0x313: 0xb5, 0x316: 0xb6, 0x317: 0xb7,\n\t0x318: 0xb8, 0x319: 0xb9, 0x31a: 0xba, 0x31c: 0xbb,\n\t0x320: 0xbc, 0x324: 0xbd, 0x325: 0xbe, 0x327: 0xbf,\n\t0x328: 0xc0, 0x329: 0xc1, 0x32a: 0xc2,\n\t0x330: 0xc3, 0x332: 0xc4, 0x334: 0xc5, 0x335: 0xc6, 0x336: 0xc7,\n\t0x33b: 0xc8, 0x33c: 0xc9, 0x33d: 0xca, 0x33f: 0xcb,\n\t// Block 0xd, offset 0x340\n\t0x351: 0xcc,\n\t// Block 0xe, offset 0x380\n\t0x3ab: 0xcd, 0x3ac: 0xce,\n\t0x3bd: 0xcf, 0x3be: 0xd0, 0x3bf: 0xd1,\n\t// Block 0xf, offset 0x3c0\n\t0x3f2: 0xd2,\n\t// Block 0x10, offset 0x400\n\t0x43c: 0xd3, 0x43d: 0xd4,\n\t// Block 0x11, offset 0x440\n\t0x445: 0xd5, 0x446: 0xd6, 0x447: 0xd7,\n\t0x448: 0x55, 0x449: 0xd8, 0x44c: 0x55, 0x44d: 0xd9,\n\t0x45b: 0xda, 0x45c: 0xdb, 0x45d: 0xdc, 0x45e: 0xdd, 0x45f: 0xde,\n\t0x468: 0xdf, 0x469: 0xe0, 0x46a: 0xe1,\n\t// Block 0x12, offset 0x480\n\t0x480: 0xe2, 0x482: 0xcf, 0x484: 0xce,\n\t0x48a: 0xe3, 0x48b: 0xe4,\n\t0x493: 0xe5,\n\t0x4a0: 0x9c, 0x4a1: 0x9c, 0x4a2: 0x9c, 0x4a3: 0xe6, 0x4a4: 0x9c, 0x4a5: 0xe7, 0x4a6: 0x9c, 0x4a7: 0x9c,\n\t0x4a8: 0x9c, 0x4a9: 0x9c, 0x4aa: 0x9c, 0x4ab: 0x9c, 0x4ac: 0x9c, 0x4ad: 0x9c, 0x4ae: 0x9c, 0x4af: 0x9c,\n\t0x4b0: 0x9c, 0x4b1: 0xe8, 0x4b2: 0xe9, 0x4b3: 0x9c, 0x4b4: 0xea, 0x4b5: 0x9c, 0x4b6: 0x9c, 0x4b7: 0x9c,\n\t0x4b8: 0x0e, 0x4b9: 0x0e, 0x4ba: 0x0e, 0x4bb: 0xeb, 0x4bc: 0x9c, 0x4bd: 0x9c, 0x4be: 0x9c, 0x4bf: 0x9c,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0xec, 0x4c1: 0x55, 0x4c2: 0xed, 0x4c3: 0xee, 0x4c4: 0xef, 0x4c5: 0xf0, 0x4c6: 0xf1,\n\t0x4c9: 0xf2, 0x4cc: 0x55, 0x4cd: 0x55, 0x4ce: 0x55, 0x4cf: 0x55,\n\t0x4d0: 0x55, 0x4d1: 0x55, 0x4d2: 0x55, 0x4d3: 0x55, 0x4d4: 0x55, 0x4d5: 0x55, 0x4d6: 0x55, 0x4d7: 0x55,\n\t0x4d8: 0x55, 0x4d9: 0x55, 0x4da: 0x55, 0x4db: 0xf3, 0x4dc: 0x55, 0x4dd: 0xf4, 0x4de: 0x55, 0x4df: 0xf5,\n\t0x4e0: 0xf6, 0x4e1: 0xf7, 0x4e2: 0xf8, 0x4e4: 0x55, 0x4e5: 0x55, 0x4e6: 0x55, 0x4e7: 0x55,\n\t0x4e8: 0x55, 0x4e9: 0xf9, 0x4ea: 0xfa, 0x4eb: 0xfb, 0x4ec: 0x55, 0x4ed: 0x55, 0x4ee: 0xfc, 0x4ef: 0xfd,\n\t0x4ff: 0xfe,\n\t// Block 0x14, offset 0x500\n\t0x53f: 0xfe,\n\t// Block 0x15, offset 0x540\n\t0x550: 0x09, 0x551: 0x0a, 0x553: 0x0b, 0x556: 0x0c,\n\t0x55b: 0x0d, 0x55c: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,\n\t0x56f: 0x12,\n\t0x57f: 0x12,\n\t// Block 0x16, offset 0x580\n\t0x58f: 0x12,\n\t0x59f: 0x12,\n\t0x5af: 0x12,\n\t0x5bf: 0x12,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0xff, 0x5c1: 0xff, 0x5c2: 0xff, 0x5c3: 0xff, 0x5c4: 0x05, 0x5c5: 0x05, 0x5c6: 0x05, 0x5c7: 0x100,\n\t0x5c8: 0xff, 0x5c9: 0xff, 0x5ca: 0xff, 0x5cb: 0xff, 0x5cc: 0xff, 0x5cd: 0xff, 0x5ce: 0xff, 0x5cf: 0xff,\n\t0x5d0: 0xff, 0x5d1: 0xff, 0x5d2: 0xff, 0x5d3: 0xff, 0x5d4: 0xff, 0x5d5: 0xff, 0x5d6: 0xff, 0x5d7: 0xff,\n\t0x5d8: 0xff, 0x5d9: 0xff, 0x5da: 0xff, 0x5db: 0xff, 0x5dc: 0xff, 0x5dd: 0xff, 0x5de: 0xff, 0x5df: 0xff,\n\t0x5e0: 0xff, 0x5e1: 0xff, 0x5e2: 0xff, 0x5e3: 0xff, 0x5e4: 0xff, 0x5e5: 0xff, 0x5e6: 0xff, 0x5e7: 0xff,\n\t0x5e8: 0xff, 0x5e9: 0xff, 0x5ea: 0xff, 0x5eb: 0xff, 0x5ec: 0xff, 0x5ed: 0xff, 0x5ee: 0xff, 0x5ef: 0xff,\n\t0x5f0: 0xff, 0x5f1: 0xff, 0x5f2: 0xff, 0x5f3: 0xff, 0x5f4: 0xff, 0x5f5: 0xff, 0x5f6: 0xff, 0x5f7: 0xff,\n\t0x5f8: 0xff, 0x5f9: 0xff, 0x5fa: 0xff, 0x5fb: 0xff, 0x5fc: 0xff, 0x5fd: 0xff, 0x5fe: 0xff, 0x5ff: 0xff,\n\t// Block 0x18, offset 0x600\n\t0x60f: 0x12,\n\t0x61f: 0x12,\n\t0x620: 0x15,\n\t0x62f: 0x12,\n\t0x63f: 0x12,\n\t// Block 0x19, offset 0x640\n\t0x64f: 0x12,\n}\n\n// Total table size 19960 bytes (19KiB); checksum: F50EF68C\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/bidi/tables9.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n//go:build !go1.10\n\npackage bidi\n\n// UnicodeVersion is the Unicode version from which the tables in this package are derived.\nconst UnicodeVersion = \"9.0.0\"\n\n// xorMasks contains masks to be xor-ed with brackets to get the reverse\n// version.\nvar xorMasks = []int32{ // 8 elements\n\t0, 1, 6, 7, 3, 15, 29, 63,\n} // Size: 56 bytes\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *bidiTrie) lookup(s []byte) (v uint8, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn bidiValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = bidiIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *bidiTrie) lookupUnsafe(s []byte) uint8 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn bidiValues[c0]\n\t}\n\ti := bidiIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *bidiTrie) lookupString(s string) (v uint8, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn bidiValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := bidiIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = bidiIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = bidiIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *bidiTrie) lookupStringUnsafe(s string) uint8 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn bidiValues[c0]\n\t}\n\ti := bidiIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = bidiIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// bidiTrie. Total size: 15744 bytes (15.38 KiB). Checksum: b4c3b70954803b86.\ntype bidiTrie struct{}\n\nfunc newBidiTrie(i int) *bidiTrie {\n\treturn &bidiTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *bidiTrie) lookupValue(n uint32, b byte) uint8 {\n\tswitch {\n\tdefault:\n\t\treturn uint8(bidiValues[n<<6+uint32(b)])\n\t}\n}\n\n// bidiValues: 222 blocks, 14208 entries, 14208 bytes\n// The third block is the zero block.\nvar bidiValues = [14208]uint8{\n\t// Block 0x0, offset 0x0\n\t0x00: 0x000b, 0x01: 0x000b, 0x02: 0x000b, 0x03: 0x000b, 0x04: 0x000b, 0x05: 0x000b,\n\t0x06: 0x000b, 0x07: 0x000b, 0x08: 0x000b, 0x09: 0x0008, 0x0a: 0x0007, 0x0b: 0x0008,\n\t0x0c: 0x0009, 0x0d: 0x0007, 0x0e: 0x000b, 0x0f: 0x000b, 0x10: 0x000b, 0x11: 0x000b,\n\t0x12: 0x000b, 0x13: 0x000b, 0x14: 0x000b, 0x15: 0x000b, 0x16: 0x000b, 0x17: 0x000b,\n\t0x18: 0x000b, 0x19: 0x000b, 0x1a: 0x000b, 0x1b: 0x000b, 0x1c: 0x0007, 0x1d: 0x0007,\n\t0x1e: 0x0007, 0x1f: 0x0008, 0x20: 0x0009, 0x21: 0x000a, 0x22: 0x000a, 0x23: 0x0004,\n\t0x24: 0x0004, 0x25: 0x0004, 0x26: 0x000a, 0x27: 0x000a, 0x28: 0x003a, 0x29: 0x002a,\n\t0x2a: 0x000a, 0x2b: 0x0003, 0x2c: 0x0006, 0x2d: 0x0003, 0x2e: 0x0006, 0x2f: 0x0006,\n\t0x30: 0x0002, 0x31: 0x0002, 0x32: 0x0002, 0x33: 0x0002, 0x34: 0x0002, 0x35: 0x0002,\n\t0x36: 0x0002, 0x37: 0x0002, 0x38: 0x0002, 0x39: 0x0002, 0x3a: 0x0006, 0x3b: 0x000a,\n\t0x3c: 0x000a, 0x3d: 0x000a, 0x3e: 0x000a, 0x3f: 0x000a,\n\t// Block 0x1, offset 0x40\n\t0x40: 0x000a,\n\t0x5b: 0x005a, 0x5c: 0x000a, 0x5d: 0x004a,\n\t0x5e: 0x000a, 0x5f: 0x000a, 0x60: 0x000a,\n\t0x7b: 0x005a,\n\t0x7c: 0x000a, 0x7d: 0x004a, 0x7e: 0x000a, 0x7f: 0x000b,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x000b, 0xc1: 0x000b, 0xc2: 0x000b, 0xc3: 0x000b, 0xc4: 0x000b, 0xc5: 0x0007,\n\t0xc6: 0x000b, 0xc7: 0x000b, 0xc8: 0x000b, 0xc9: 0x000b, 0xca: 0x000b, 0xcb: 0x000b,\n\t0xcc: 0x000b, 0xcd: 0x000b, 0xce: 0x000b, 0xcf: 0x000b, 0xd0: 0x000b, 0xd1: 0x000b,\n\t0xd2: 0x000b, 0xd3: 0x000b, 0xd4: 0x000b, 0xd5: 0x000b, 0xd6: 0x000b, 0xd7: 0x000b,\n\t0xd8: 0x000b, 0xd9: 0x000b, 0xda: 0x000b, 0xdb: 0x000b, 0xdc: 0x000b, 0xdd: 0x000b,\n\t0xde: 0x000b, 0xdf: 0x000b, 0xe0: 0x0006, 0xe1: 0x000a, 0xe2: 0x0004, 0xe3: 0x0004,\n\t0xe4: 0x0004, 0xe5: 0x0004, 0xe6: 0x000a, 0xe7: 0x000a, 0xe8: 0x000a, 0xe9: 0x000a,\n\t0xeb: 0x000a, 0xec: 0x000a, 0xed: 0x000b, 0xee: 0x000a, 0xef: 0x000a,\n\t0xf0: 0x0004, 0xf1: 0x0004, 0xf2: 0x0002, 0xf3: 0x0002, 0xf4: 0x000a,\n\t0xf6: 0x000a, 0xf7: 0x000a, 0xf8: 0x000a, 0xf9: 0x0002, 0xfb: 0x000a,\n\t0xfc: 0x000a, 0xfd: 0x000a, 0xfe: 0x000a, 0xff: 0x000a,\n\t// Block 0x4, offset 0x100\n\t0x117: 0x000a,\n\t0x137: 0x000a,\n\t// Block 0x5, offset 0x140\n\t0x179: 0x000a, 0x17a: 0x000a,\n\t// Block 0x6, offset 0x180\n\t0x182: 0x000a, 0x183: 0x000a, 0x184: 0x000a, 0x185: 0x000a,\n\t0x186: 0x000a, 0x187: 0x000a, 0x188: 0x000a, 0x189: 0x000a, 0x18a: 0x000a, 0x18b: 0x000a,\n\t0x18c: 0x000a, 0x18d: 0x000a, 0x18e: 0x000a, 0x18f: 0x000a,\n\t0x192: 0x000a, 0x193: 0x000a, 0x194: 0x000a, 0x195: 0x000a, 0x196: 0x000a, 0x197: 0x000a,\n\t0x198: 0x000a, 0x199: 0x000a, 0x19a: 0x000a, 0x19b: 0x000a, 0x19c: 0x000a, 0x19d: 0x000a,\n\t0x19e: 0x000a, 0x19f: 0x000a,\n\t0x1a5: 0x000a, 0x1a6: 0x000a, 0x1a7: 0x000a, 0x1a8: 0x000a, 0x1a9: 0x000a,\n\t0x1aa: 0x000a, 0x1ab: 0x000a, 0x1ac: 0x000a, 0x1ad: 0x000a, 0x1af: 0x000a,\n\t0x1b0: 0x000a, 0x1b1: 0x000a, 0x1b2: 0x000a, 0x1b3: 0x000a, 0x1b4: 0x000a, 0x1b5: 0x000a,\n\t0x1b6: 0x000a, 0x1b7: 0x000a, 0x1b8: 0x000a, 0x1b9: 0x000a, 0x1ba: 0x000a, 0x1bb: 0x000a,\n\t0x1bc: 0x000a, 0x1bd: 0x000a, 0x1be: 0x000a, 0x1bf: 0x000a,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x000c, 0x1c1: 0x000c, 0x1c2: 0x000c, 0x1c3: 0x000c, 0x1c4: 0x000c, 0x1c5: 0x000c,\n\t0x1c6: 0x000c, 0x1c7: 0x000c, 0x1c8: 0x000c, 0x1c9: 0x000c, 0x1ca: 0x000c, 0x1cb: 0x000c,\n\t0x1cc: 0x000c, 0x1cd: 0x000c, 0x1ce: 0x000c, 0x1cf: 0x000c, 0x1d0: 0x000c, 0x1d1: 0x000c,\n\t0x1d2: 0x000c, 0x1d3: 0x000c, 0x1d4: 0x000c, 0x1d5: 0x000c, 0x1d6: 0x000c, 0x1d7: 0x000c,\n\t0x1d8: 0x000c, 0x1d9: 0x000c, 0x1da: 0x000c, 0x1db: 0x000c, 0x1dc: 0x000c, 0x1dd: 0x000c,\n\t0x1de: 0x000c, 0x1df: 0x000c, 0x1e0: 0x000c, 0x1e1: 0x000c, 0x1e2: 0x000c, 0x1e3: 0x000c,\n\t0x1e4: 0x000c, 0x1e5: 0x000c, 0x1e6: 0x000c, 0x1e7: 0x000c, 0x1e8: 0x000c, 0x1e9: 0x000c,\n\t0x1ea: 0x000c, 0x1eb: 0x000c, 0x1ec: 0x000c, 0x1ed: 0x000c, 0x1ee: 0x000c, 0x1ef: 0x000c,\n\t0x1f0: 0x000c, 0x1f1: 0x000c, 0x1f2: 0x000c, 0x1f3: 0x000c, 0x1f4: 0x000c, 0x1f5: 0x000c,\n\t0x1f6: 0x000c, 0x1f7: 0x000c, 0x1f8: 0x000c, 0x1f9: 0x000c, 0x1fa: 0x000c, 0x1fb: 0x000c,\n\t0x1fc: 0x000c, 0x1fd: 0x000c, 0x1fe: 0x000c, 0x1ff: 0x000c,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x000c, 0x201: 0x000c, 0x202: 0x000c, 0x203: 0x000c, 0x204: 0x000c, 0x205: 0x000c,\n\t0x206: 0x000c, 0x207: 0x000c, 0x208: 0x000c, 0x209: 0x000c, 0x20a: 0x000c, 0x20b: 0x000c,\n\t0x20c: 0x000c, 0x20d: 0x000c, 0x20e: 0x000c, 0x20f: 0x000c, 0x210: 0x000c, 0x211: 0x000c,\n\t0x212: 0x000c, 0x213: 0x000c, 0x214: 0x000c, 0x215: 0x000c, 0x216: 0x000c, 0x217: 0x000c,\n\t0x218: 0x000c, 0x219: 0x000c, 0x21a: 0x000c, 0x21b: 0x000c, 0x21c: 0x000c, 0x21d: 0x000c,\n\t0x21e: 0x000c, 0x21f: 0x000c, 0x220: 0x000c, 0x221: 0x000c, 0x222: 0x000c, 0x223: 0x000c,\n\t0x224: 0x000c, 0x225: 0x000c, 0x226: 0x000c, 0x227: 0x000c, 0x228: 0x000c, 0x229: 0x000c,\n\t0x22a: 0x000c, 0x22b: 0x000c, 0x22c: 0x000c, 0x22d: 0x000c, 0x22e: 0x000c, 0x22f: 0x000c,\n\t0x234: 0x000a, 0x235: 0x000a,\n\t0x23e: 0x000a,\n\t// Block 0x9, offset 0x240\n\t0x244: 0x000a, 0x245: 0x000a,\n\t0x247: 0x000a,\n\t// Block 0xa, offset 0x280\n\t0x2b6: 0x000a,\n\t// Block 0xb, offset 0x2c0\n\t0x2c3: 0x000c, 0x2c4: 0x000c, 0x2c5: 0x000c,\n\t0x2c6: 0x000c, 0x2c7: 0x000c, 0x2c8: 0x000c, 0x2c9: 0x000c,\n\t// Block 0xc, offset 0x300\n\t0x30a: 0x000a,\n\t0x30d: 0x000a, 0x30e: 0x000a, 0x30f: 0x0004, 0x310: 0x0001, 0x311: 0x000c,\n\t0x312: 0x000c, 0x313: 0x000c, 0x314: 0x000c, 0x315: 0x000c, 0x316: 0x000c, 0x317: 0x000c,\n\t0x318: 0x000c, 0x319: 0x000c, 0x31a: 0x000c, 0x31b: 0x000c, 0x31c: 0x000c, 0x31d: 0x000c,\n\t0x31e: 0x000c, 0x31f: 0x000c, 0x320: 0x000c, 0x321: 0x000c, 0x322: 0x000c, 0x323: 0x000c,\n\t0x324: 0x000c, 0x325: 0x000c, 0x326: 0x000c, 0x327: 0x000c, 0x328: 0x000c, 0x329: 0x000c,\n\t0x32a: 0x000c, 0x32b: 0x000c, 0x32c: 0x000c, 0x32d: 0x000c, 0x32e: 0x000c, 0x32f: 0x000c,\n\t0x330: 0x000c, 0x331: 0x000c, 0x332: 0x000c, 0x333: 0x000c, 0x334: 0x000c, 0x335: 0x000c,\n\t0x336: 0x000c, 0x337: 0x000c, 0x338: 0x000c, 0x339: 0x000c, 0x33a: 0x000c, 0x33b: 0x000c,\n\t0x33c: 0x000c, 0x33d: 0x000c, 0x33e: 0x0001, 0x33f: 0x000c,\n\t// Block 0xd, offset 0x340\n\t0x340: 0x0001, 0x341: 0x000c, 0x342: 0x000c, 0x343: 0x0001, 0x344: 0x000c, 0x345: 0x000c,\n\t0x346: 0x0001, 0x347: 0x000c, 0x348: 0x0001, 0x349: 0x0001, 0x34a: 0x0001, 0x34b: 0x0001,\n\t0x34c: 0x0001, 0x34d: 0x0001, 0x34e: 0x0001, 0x34f: 0x0001, 0x350: 0x0001, 0x351: 0x0001,\n\t0x352: 0x0001, 0x353: 0x0001, 0x354: 0x0001, 0x355: 0x0001, 0x356: 0x0001, 0x357: 0x0001,\n\t0x358: 0x0001, 0x359: 0x0001, 0x35a: 0x0001, 0x35b: 0x0001, 0x35c: 0x0001, 0x35d: 0x0001,\n\t0x35e: 0x0001, 0x35f: 0x0001, 0x360: 0x0001, 0x361: 0x0001, 0x362: 0x0001, 0x363: 0x0001,\n\t0x364: 0x0001, 0x365: 0x0001, 0x366: 0x0001, 0x367: 0x0001, 0x368: 0x0001, 0x369: 0x0001,\n\t0x36a: 0x0001, 0x36b: 0x0001, 0x36c: 0x0001, 0x36d: 0x0001, 0x36e: 0x0001, 0x36f: 0x0001,\n\t0x370: 0x0001, 0x371: 0x0001, 0x372: 0x0001, 0x373: 0x0001, 0x374: 0x0001, 0x375: 0x0001,\n\t0x376: 0x0001, 0x377: 0x0001, 0x378: 0x0001, 0x379: 0x0001, 0x37a: 0x0001, 0x37b: 0x0001,\n\t0x37c: 0x0001, 0x37d: 0x0001, 0x37e: 0x0001, 0x37f: 0x0001,\n\t// Block 0xe, offset 0x380\n\t0x380: 0x0005, 0x381: 0x0005, 0x382: 0x0005, 0x383: 0x0005, 0x384: 0x0005, 0x385: 0x0005,\n\t0x386: 0x000a, 0x387: 0x000a, 0x388: 0x000d, 0x389: 0x0004, 0x38a: 0x0004, 0x38b: 0x000d,\n\t0x38c: 0x0006, 0x38d: 0x000d, 0x38e: 0x000a, 0x38f: 0x000a, 0x390: 0x000c, 0x391: 0x000c,\n\t0x392: 0x000c, 0x393: 0x000c, 0x394: 0x000c, 0x395: 0x000c, 0x396: 0x000c, 0x397: 0x000c,\n\t0x398: 0x000c, 0x399: 0x000c, 0x39a: 0x000c, 0x39b: 0x000d, 0x39c: 0x000d, 0x39d: 0x000d,\n\t0x39e: 0x000d, 0x39f: 0x000d, 0x3a0: 0x000d, 0x3a1: 0x000d, 0x3a2: 0x000d, 0x3a3: 0x000d,\n\t0x3a4: 0x000d, 0x3a5: 0x000d, 0x3a6: 0x000d, 0x3a7: 0x000d, 0x3a8: 0x000d, 0x3a9: 0x000d,\n\t0x3aa: 0x000d, 0x3ab: 0x000d, 0x3ac: 0x000d, 0x3ad: 0x000d, 0x3ae: 0x000d, 0x3af: 0x000d,\n\t0x3b0: 0x000d, 0x3b1: 0x000d, 0x3b2: 0x000d, 0x3b3: 0x000d, 0x3b4: 0x000d, 0x3b5: 0x000d,\n\t0x3b6: 0x000d, 0x3b7: 0x000d, 0x3b8: 0x000d, 0x3b9: 0x000d, 0x3ba: 0x000d, 0x3bb: 0x000d,\n\t0x3bc: 0x000d, 0x3bd: 0x000d, 0x3be: 0x000d, 0x3bf: 0x000d,\n\t// Block 0xf, offset 0x3c0\n\t0x3c0: 0x000d, 0x3c1: 0x000d, 0x3c2: 0x000d, 0x3c3: 0x000d, 0x3c4: 0x000d, 0x3c5: 0x000d,\n\t0x3c6: 0x000d, 0x3c7: 0x000d, 0x3c8: 0x000d, 0x3c9: 0x000d, 0x3ca: 0x000d, 0x3cb: 0x000c,\n\t0x3cc: 0x000c, 0x3cd: 0x000c, 0x3ce: 0x000c, 0x3cf: 0x000c, 0x3d0: 0x000c, 0x3d1: 0x000c,\n\t0x3d2: 0x000c, 0x3d3: 0x000c, 0x3d4: 0x000c, 0x3d5: 0x000c, 0x3d6: 0x000c, 0x3d7: 0x000c,\n\t0x3d8: 0x000c, 0x3d9: 0x000c, 0x3da: 0x000c, 0x3db: 0x000c, 0x3dc: 0x000c, 0x3dd: 0x000c,\n\t0x3de: 0x000c, 0x3df: 0x000c, 0x3e0: 0x0005, 0x3e1: 0x0005, 0x3e2: 0x0005, 0x3e3: 0x0005,\n\t0x3e4: 0x0005, 0x3e5: 0x0005, 0x3e6: 0x0005, 0x3e7: 0x0005, 0x3e8: 0x0005, 0x3e9: 0x0005,\n\t0x3ea: 0x0004, 0x3eb: 0x0005, 0x3ec: 0x0005, 0x3ed: 0x000d, 0x3ee: 0x000d, 0x3ef: 0x000d,\n\t0x3f0: 0x000c, 0x3f1: 0x000d, 0x3f2: 0x000d, 0x3f3: 0x000d, 0x3f4: 0x000d, 0x3f5: 0x000d,\n\t0x3f6: 0x000d, 0x3f7: 0x000d, 0x3f8: 0x000d, 0x3f9: 0x000d, 0x3fa: 0x000d, 0x3fb: 0x000d,\n\t0x3fc: 0x000d, 0x3fd: 0x000d, 0x3fe: 0x000d, 0x3ff: 0x000d,\n\t// Block 0x10, offset 0x400\n\t0x400: 0x000d, 0x401: 0x000d, 0x402: 0x000d, 0x403: 0x000d, 0x404: 0x000d, 0x405: 0x000d,\n\t0x406: 0x000d, 0x407: 0x000d, 0x408: 0x000d, 0x409: 0x000d, 0x40a: 0x000d, 0x40b: 0x000d,\n\t0x40c: 0x000d, 0x40d: 0x000d, 0x40e: 0x000d, 0x40f: 0x000d, 0x410: 0x000d, 0x411: 0x000d,\n\t0x412: 0x000d, 0x413: 0x000d, 0x414: 0x000d, 0x415: 0x000d, 0x416: 0x000d, 0x417: 0x000d,\n\t0x418: 0x000d, 0x419: 0x000d, 0x41a: 0x000d, 0x41b: 0x000d, 0x41c: 0x000d, 0x41d: 0x000d,\n\t0x41e: 0x000d, 0x41f: 0x000d, 0x420: 0x000d, 0x421: 0x000d, 0x422: 0x000d, 0x423: 0x000d,\n\t0x424: 0x000d, 0x425: 0x000d, 0x426: 0x000d, 0x427: 0x000d, 0x428: 0x000d, 0x429: 0x000d,\n\t0x42a: 0x000d, 0x42b: 0x000d, 0x42c: 0x000d, 0x42d: 0x000d, 0x42e: 0x000d, 0x42f: 0x000d,\n\t0x430: 0x000d, 0x431: 0x000d, 0x432: 0x000d, 0x433: 0x000d, 0x434: 0x000d, 0x435: 0x000d,\n\t0x436: 0x000d, 0x437: 0x000d, 0x438: 0x000d, 0x439: 0x000d, 0x43a: 0x000d, 0x43b: 0x000d,\n\t0x43c: 0x000d, 0x43d: 0x000d, 0x43e: 0x000d, 0x43f: 0x000d,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x000d, 0x441: 0x000d, 0x442: 0x000d, 0x443: 0x000d, 0x444: 0x000d, 0x445: 0x000d,\n\t0x446: 0x000d, 0x447: 0x000d, 0x448: 0x000d, 0x449: 0x000d, 0x44a: 0x000d, 0x44b: 0x000d,\n\t0x44c: 0x000d, 0x44d: 0x000d, 0x44e: 0x000d, 0x44f: 0x000d, 0x450: 0x000d, 0x451: 0x000d,\n\t0x452: 0x000d, 0x453: 0x000d, 0x454: 0x000d, 0x455: 0x000d, 0x456: 0x000c, 0x457: 0x000c,\n\t0x458: 0x000c, 0x459: 0x000c, 0x45a: 0x000c, 0x45b: 0x000c, 0x45c: 0x000c, 0x45d: 0x0005,\n\t0x45e: 0x000a, 0x45f: 0x000c, 0x460: 0x000c, 0x461: 0x000c, 0x462: 0x000c, 0x463: 0x000c,\n\t0x464: 0x000c, 0x465: 0x000d, 0x466: 0x000d, 0x467: 0x000c, 0x468: 0x000c, 0x469: 0x000a,\n\t0x46a: 0x000c, 0x46b: 0x000c, 0x46c: 0x000c, 0x46d: 0x000c, 0x46e: 0x000d, 0x46f: 0x000d,\n\t0x470: 0x0002, 0x471: 0x0002, 0x472: 0x0002, 0x473: 0x0002, 0x474: 0x0002, 0x475: 0x0002,\n\t0x476: 0x0002, 0x477: 0x0002, 0x478: 0x0002, 0x479: 0x0002, 0x47a: 0x000d, 0x47b: 0x000d,\n\t0x47c: 0x000d, 0x47d: 0x000d, 0x47e: 0x000d, 0x47f: 0x000d,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x000d, 0x481: 0x000d, 0x482: 0x000d, 0x483: 0x000d, 0x484: 0x000d, 0x485: 0x000d,\n\t0x486: 0x000d, 0x487: 0x000d, 0x488: 0x000d, 0x489: 0x000d, 0x48a: 0x000d, 0x48b: 0x000d,\n\t0x48c: 0x000d, 0x48d: 0x000d, 0x48e: 0x000d, 0x48f: 0x000d, 0x490: 0x000d, 0x491: 0x000c,\n\t0x492: 0x000d, 0x493: 0x000d, 0x494: 0x000d, 0x495: 0x000d, 0x496: 0x000d, 0x497: 0x000d,\n\t0x498: 0x000d, 0x499: 0x000d, 0x49a: 0x000d, 0x49b: 0x000d, 0x49c: 0x000d, 0x49d: 0x000d,\n\t0x49e: 0x000d, 0x49f: 0x000d, 0x4a0: 0x000d, 0x4a1: 0x000d, 0x4a2: 0x000d, 0x4a3: 0x000d,\n\t0x4a4: 0x000d, 0x4a5: 0x000d, 0x4a6: 0x000d, 0x4a7: 0x000d, 0x4a8: 0x000d, 0x4a9: 0x000d,\n\t0x4aa: 0x000d, 0x4ab: 0x000d, 0x4ac: 0x000d, 0x4ad: 0x000d, 0x4ae: 0x000d, 0x4af: 0x000d,\n\t0x4b0: 0x000c, 0x4b1: 0x000c, 0x4b2: 0x000c, 0x4b3: 0x000c, 0x4b4: 0x000c, 0x4b5: 0x000c,\n\t0x4b6: 0x000c, 0x4b7: 0x000c, 0x4b8: 0x000c, 0x4b9: 0x000c, 0x4ba: 0x000c, 0x4bb: 0x000c,\n\t0x4bc: 0x000c, 0x4bd: 0x000c, 0x4be: 0x000c, 0x4bf: 0x000c,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x000c, 0x4c1: 0x000c, 0x4c2: 0x000c, 0x4c3: 0x000c, 0x4c4: 0x000c, 0x4c5: 0x000c,\n\t0x4c6: 0x000c, 0x4c7: 0x000c, 0x4c8: 0x000c, 0x4c9: 0x000c, 0x4ca: 0x000c, 0x4cb: 0x000d,\n\t0x4cc: 0x000d, 0x4cd: 0x000d, 0x4ce: 0x000d, 0x4cf: 0x000d, 0x4d0: 0x000d, 0x4d1: 0x000d,\n\t0x4d2: 0x000d, 0x4d3: 0x000d, 0x4d4: 0x000d, 0x4d5: 0x000d, 0x4d6: 0x000d, 0x4d7: 0x000d,\n\t0x4d8: 0x000d, 0x4d9: 0x000d, 0x4da: 0x000d, 0x4db: 0x000d, 0x4dc: 0x000d, 0x4dd: 0x000d,\n\t0x4de: 0x000d, 0x4df: 0x000d, 0x4e0: 0x000d, 0x4e1: 0x000d, 0x4e2: 0x000d, 0x4e3: 0x000d,\n\t0x4e4: 0x000d, 0x4e5: 0x000d, 0x4e6: 0x000d, 0x4e7: 0x000d, 0x4e8: 0x000d, 0x4e9: 0x000d,\n\t0x4ea: 0x000d, 0x4eb: 0x000d, 0x4ec: 0x000d, 0x4ed: 0x000d, 0x4ee: 0x000d, 0x4ef: 0x000d,\n\t0x4f0: 0x000d, 0x4f1: 0x000d, 0x4f2: 0x000d, 0x4f3: 0x000d, 0x4f4: 0x000d, 0x4f5: 0x000d,\n\t0x4f6: 0x000d, 0x4f7: 0x000d, 0x4f8: 0x000d, 0x4f9: 0x000d, 0x4fa: 0x000d, 0x4fb: 0x000d,\n\t0x4fc: 0x000d, 0x4fd: 0x000d, 0x4fe: 0x000d, 0x4ff: 0x000d,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x000d, 0x501: 0x000d, 0x502: 0x000d, 0x503: 0x000d, 0x504: 0x000d, 0x505: 0x000d,\n\t0x506: 0x000d, 0x507: 0x000d, 0x508: 0x000d, 0x509: 0x000d, 0x50a: 0x000d, 0x50b: 0x000d,\n\t0x50c: 0x000d, 0x50d: 0x000d, 0x50e: 0x000d, 0x50f: 0x000d, 0x510: 0x000d, 0x511: 0x000d,\n\t0x512: 0x000d, 0x513: 0x000d, 0x514: 0x000d, 0x515: 0x000d, 0x516: 0x000d, 0x517: 0x000d,\n\t0x518: 0x000d, 0x519: 0x000d, 0x51a: 0x000d, 0x51b: 0x000d, 0x51c: 0x000d, 0x51d: 0x000d,\n\t0x51e: 0x000d, 0x51f: 0x000d, 0x520: 0x000d, 0x521: 0x000d, 0x522: 0x000d, 0x523: 0x000d,\n\t0x524: 0x000d, 0x525: 0x000d, 0x526: 0x000c, 0x527: 0x000c, 0x528: 0x000c, 0x529: 0x000c,\n\t0x52a: 0x000c, 0x52b: 0x000c, 0x52c: 0x000c, 0x52d: 0x000c, 0x52e: 0x000c, 0x52f: 0x000c,\n\t0x530: 0x000c, 0x531: 0x000d, 0x532: 0x000d, 0x533: 0x000d, 0x534: 0x000d, 0x535: 0x000d,\n\t0x536: 0x000d, 0x537: 0x000d, 0x538: 0x000d, 0x539: 0x000d, 0x53a: 0x000d, 0x53b: 0x000d,\n\t0x53c: 0x000d, 0x53d: 0x000d, 0x53e: 0x000d, 0x53f: 0x000d,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x0001, 0x541: 0x0001, 0x542: 0x0001, 0x543: 0x0001, 0x544: 0x0001, 0x545: 0x0001,\n\t0x546: 0x0001, 0x547: 0x0001, 0x548: 0x0001, 0x549: 0x0001, 0x54a: 0x0001, 0x54b: 0x0001,\n\t0x54c: 0x0001, 0x54d: 0x0001, 0x54e: 0x0001, 0x54f: 0x0001, 0x550: 0x0001, 0x551: 0x0001,\n\t0x552: 0x0001, 0x553: 0x0001, 0x554: 0x0001, 0x555: 0x0001, 0x556: 0x0001, 0x557: 0x0001,\n\t0x558: 0x0001, 0x559: 0x0001, 0x55a: 0x0001, 0x55b: 0x0001, 0x55c: 0x0001, 0x55d: 0x0001,\n\t0x55e: 0x0001, 0x55f: 0x0001, 0x560: 0x0001, 0x561: 0x0001, 0x562: 0x0001, 0x563: 0x0001,\n\t0x564: 0x0001, 0x565: 0x0001, 0x566: 0x0001, 0x567: 0x0001, 0x568: 0x0001, 0x569: 0x0001,\n\t0x56a: 0x0001, 0x56b: 0x000c, 0x56c: 0x000c, 0x56d: 0x000c, 0x56e: 0x000c, 0x56f: 0x000c,\n\t0x570: 0x000c, 0x571: 0x000c, 0x572: 0x000c, 0x573: 0x000c, 0x574: 0x0001, 0x575: 0x0001,\n\t0x576: 0x000a, 0x577: 0x000a, 0x578: 0x000a, 0x579: 0x000a, 0x57a: 0x0001, 0x57b: 0x0001,\n\t0x57c: 0x0001, 0x57d: 0x0001, 0x57e: 0x0001, 0x57f: 0x0001,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x0001, 0x581: 0x0001, 0x582: 0x0001, 0x583: 0x0001, 0x584: 0x0001, 0x585: 0x0001,\n\t0x586: 0x0001, 0x587: 0x0001, 0x588: 0x0001, 0x589: 0x0001, 0x58a: 0x0001, 0x58b: 0x0001,\n\t0x58c: 0x0001, 0x58d: 0x0001, 0x58e: 0x0001, 0x58f: 0x0001, 0x590: 0x0001, 0x591: 0x0001,\n\t0x592: 0x0001, 0x593: 0x0001, 0x594: 0x0001, 0x595: 0x0001, 0x596: 0x000c, 0x597: 0x000c,\n\t0x598: 0x000c, 0x599: 0x000c, 0x59a: 0x0001, 0x59b: 0x000c, 0x59c: 0x000c, 0x59d: 0x000c,\n\t0x59e: 0x000c, 0x59f: 0x000c, 0x5a0: 0x000c, 0x5a1: 0x000c, 0x5a2: 0x000c, 0x5a3: 0x000c,\n\t0x5a4: 0x0001, 0x5a5: 0x000c, 0x5a6: 0x000c, 0x5a7: 0x000c, 0x5a8: 0x0001, 0x5a9: 0x000c,\n\t0x5aa: 0x000c, 0x5ab: 0x000c, 0x5ac: 0x000c, 0x5ad: 0x000c, 0x5ae: 0x0001, 0x5af: 0x0001,\n\t0x5b0: 0x0001, 0x5b1: 0x0001, 0x5b2: 0x0001, 0x5b3: 0x0001, 0x5b4: 0x0001, 0x5b5: 0x0001,\n\t0x5b6: 0x0001, 0x5b7: 0x0001, 0x5b8: 0x0001, 0x5b9: 0x0001, 0x5ba: 0x0001, 0x5bb: 0x0001,\n\t0x5bc: 0x0001, 0x5bd: 0x0001, 0x5be: 0x0001, 0x5bf: 0x0001,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x0001, 0x5c1: 0x0001, 0x5c2: 0x0001, 0x5c3: 0x0001, 0x5c4: 0x0001, 0x5c5: 0x0001,\n\t0x5c6: 0x0001, 0x5c7: 0x0001, 0x5c8: 0x0001, 0x5c9: 0x0001, 0x5ca: 0x0001, 0x5cb: 0x0001,\n\t0x5cc: 0x0001, 0x5cd: 0x0001, 0x5ce: 0x0001, 0x5cf: 0x0001, 0x5d0: 0x0001, 0x5d1: 0x0001,\n\t0x5d2: 0x0001, 0x5d3: 0x0001, 0x5d4: 0x0001, 0x5d5: 0x0001, 0x5d6: 0x0001, 0x5d7: 0x0001,\n\t0x5d8: 0x0001, 0x5d9: 0x000c, 0x5da: 0x000c, 0x5db: 0x000c, 0x5dc: 0x0001, 0x5dd: 0x0001,\n\t0x5de: 0x0001, 0x5df: 0x0001, 0x5e0: 0x0001, 0x5e1: 0x0001, 0x5e2: 0x0001, 0x5e3: 0x0001,\n\t0x5e4: 0x0001, 0x5e5: 0x0001, 0x5e6: 0x0001, 0x5e7: 0x0001, 0x5e8: 0x0001, 0x5e9: 0x0001,\n\t0x5ea: 0x0001, 0x5eb: 0x0001, 0x5ec: 0x0001, 0x5ed: 0x0001, 0x5ee: 0x0001, 0x5ef: 0x0001,\n\t0x5f0: 0x0001, 0x5f1: 0x0001, 0x5f2: 0x0001, 0x5f3: 0x0001, 0x5f4: 0x0001, 0x5f5: 0x0001,\n\t0x5f6: 0x0001, 0x5f7: 0x0001, 0x5f8: 0x0001, 0x5f9: 0x0001, 0x5fa: 0x0001, 0x5fb: 0x0001,\n\t0x5fc: 0x0001, 0x5fd: 0x0001, 0x5fe: 0x0001, 0x5ff: 0x0001,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x0001, 0x601: 0x0001, 0x602: 0x0001, 0x603: 0x0001, 0x604: 0x0001, 0x605: 0x0001,\n\t0x606: 0x0001, 0x607: 0x0001, 0x608: 0x0001, 0x609: 0x0001, 0x60a: 0x0001, 0x60b: 0x0001,\n\t0x60c: 0x0001, 0x60d: 0x0001, 0x60e: 0x0001, 0x60f: 0x0001, 0x610: 0x0001, 0x611: 0x0001,\n\t0x612: 0x0001, 0x613: 0x0001, 0x614: 0x0001, 0x615: 0x0001, 0x616: 0x0001, 0x617: 0x0001,\n\t0x618: 0x0001, 0x619: 0x0001, 0x61a: 0x0001, 0x61b: 0x0001, 0x61c: 0x0001, 0x61d: 0x0001,\n\t0x61e: 0x0001, 0x61f: 0x0001, 0x620: 0x000d, 0x621: 0x000d, 0x622: 0x000d, 0x623: 0x000d,\n\t0x624: 0x000d, 0x625: 0x000d, 0x626: 0x000d, 0x627: 0x000d, 0x628: 0x000d, 0x629: 0x000d,\n\t0x62a: 0x000d, 0x62b: 0x000d, 0x62c: 0x000d, 0x62d: 0x000d, 0x62e: 0x000d, 0x62f: 0x000d,\n\t0x630: 0x000d, 0x631: 0x000d, 0x632: 0x000d, 0x633: 0x000d, 0x634: 0x000d, 0x635: 0x000d,\n\t0x636: 0x000d, 0x637: 0x000d, 0x638: 0x000d, 0x639: 0x000d, 0x63a: 0x000d, 0x63b: 0x000d,\n\t0x63c: 0x000d, 0x63d: 0x000d, 0x63e: 0x000d, 0x63f: 0x000d,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x000d, 0x641: 0x000d, 0x642: 0x000d, 0x643: 0x000d, 0x644: 0x000d, 0x645: 0x000d,\n\t0x646: 0x000d, 0x647: 0x000d, 0x648: 0x000d, 0x649: 0x000d, 0x64a: 0x000d, 0x64b: 0x000d,\n\t0x64c: 0x000d, 0x64d: 0x000d, 0x64e: 0x000d, 0x64f: 0x000d, 0x650: 0x000d, 0x651: 0x000d,\n\t0x652: 0x000d, 0x653: 0x000d, 0x654: 0x000c, 0x655: 0x000c, 0x656: 0x000c, 0x657: 0x000c,\n\t0x658: 0x000c, 0x659: 0x000c, 0x65a: 0x000c, 0x65b: 0x000c, 0x65c: 0x000c, 0x65d: 0x000c,\n\t0x65e: 0x000c, 0x65f: 0x000c, 0x660: 0x000c, 0x661: 0x000c, 0x662: 0x0005, 0x663: 0x000c,\n\t0x664: 0x000c, 0x665: 0x000c, 0x666: 0x000c, 0x667: 0x000c, 0x668: 0x000c, 0x669: 0x000c,\n\t0x66a: 0x000c, 0x66b: 0x000c, 0x66c: 0x000c, 0x66d: 0x000c, 0x66e: 0x000c, 0x66f: 0x000c,\n\t0x670: 0x000c, 0x671: 0x000c, 0x672: 0x000c, 0x673: 0x000c, 0x674: 0x000c, 0x675: 0x000c,\n\t0x676: 0x000c, 0x677: 0x000c, 0x678: 0x000c, 0x679: 0x000c, 0x67a: 0x000c, 0x67b: 0x000c,\n\t0x67c: 0x000c, 0x67d: 0x000c, 0x67e: 0x000c, 0x67f: 0x000c,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x000c, 0x681: 0x000c, 0x682: 0x000c,\n\t0x6ba: 0x000c,\n\t0x6bc: 0x000c,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c1: 0x000c, 0x6c2: 0x000c, 0x6c3: 0x000c, 0x6c4: 0x000c, 0x6c5: 0x000c,\n\t0x6c6: 0x000c, 0x6c7: 0x000c, 0x6c8: 0x000c,\n\t0x6cd: 0x000c, 0x6d1: 0x000c,\n\t0x6d2: 0x000c, 0x6d3: 0x000c, 0x6d4: 0x000c, 0x6d5: 0x000c, 0x6d6: 0x000c, 0x6d7: 0x000c,\n\t0x6e2: 0x000c, 0x6e3: 0x000c,\n\t// Block 0x1c, offset 0x700\n\t0x701: 0x000c,\n\t0x73c: 0x000c,\n\t// Block 0x1d, offset 0x740\n\t0x741: 0x000c, 0x742: 0x000c, 0x743: 0x000c, 0x744: 0x000c,\n\t0x74d: 0x000c,\n\t0x762: 0x000c, 0x763: 0x000c,\n\t0x772: 0x0004, 0x773: 0x0004,\n\t0x77b: 0x0004,\n\t// Block 0x1e, offset 0x780\n\t0x781: 0x000c, 0x782: 0x000c,\n\t0x7bc: 0x000c,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c1: 0x000c, 0x7c2: 0x000c,\n\t0x7c7: 0x000c, 0x7c8: 0x000c, 0x7cb: 0x000c,\n\t0x7cc: 0x000c, 0x7cd: 0x000c, 0x7d1: 0x000c,\n\t0x7f0: 0x000c, 0x7f1: 0x000c, 0x7f5: 0x000c,\n\t// Block 0x20, offset 0x800\n\t0x801: 0x000c, 0x802: 0x000c, 0x803: 0x000c, 0x804: 0x000c, 0x805: 0x000c,\n\t0x807: 0x000c, 0x808: 0x000c,\n\t0x80d: 0x000c,\n\t0x822: 0x000c, 0x823: 0x000c,\n\t0x831: 0x0004,\n\t// Block 0x21, offset 0x840\n\t0x841: 0x000c,\n\t0x87c: 0x000c, 0x87f: 0x000c,\n\t// Block 0x22, offset 0x880\n\t0x881: 0x000c, 0x882: 0x000c, 0x883: 0x000c, 0x884: 0x000c,\n\t0x88d: 0x000c,\n\t0x896: 0x000c,\n\t0x8a2: 0x000c, 0x8a3: 0x000c,\n\t// Block 0x23, offset 0x8c0\n\t0x8c2: 0x000c,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x000c,\n\t0x90d: 0x000c,\n\t0x933: 0x000a, 0x934: 0x000a, 0x935: 0x000a,\n\t0x936: 0x000a, 0x937: 0x000a, 0x938: 0x000a, 0x939: 0x0004, 0x93a: 0x000a,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x000c,\n\t0x97e: 0x000c, 0x97f: 0x000c,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x000c,\n\t0x986: 0x000c, 0x987: 0x000c, 0x988: 0x000c, 0x98a: 0x000c, 0x98b: 0x000c,\n\t0x98c: 0x000c, 0x98d: 0x000c,\n\t0x995: 0x000c, 0x996: 0x000c,\n\t0x9a2: 0x000c, 0x9a3: 0x000c,\n\t0x9b8: 0x000a, 0x9b9: 0x000a, 0x9ba: 0x000a, 0x9bb: 0x000a,\n\t0x9bc: 0x000a, 0x9bd: 0x000a, 0x9be: 0x000a,\n\t// Block 0x27, offset 0x9c0\n\t0x9cc: 0x000c, 0x9cd: 0x000c,\n\t0x9e2: 0x000c, 0x9e3: 0x000c,\n\t// Block 0x28, offset 0xa00\n\t0xa01: 0x000c,\n\t// Block 0x29, offset 0xa40\n\t0xa41: 0x000c, 0xa42: 0x000c, 0xa43: 0x000c, 0xa44: 0x000c,\n\t0xa4d: 0x000c,\n\t0xa62: 0x000c, 0xa63: 0x000c,\n\t// Block 0x2a, offset 0xa80\n\t0xa8a: 0x000c,\n\t0xa92: 0x000c, 0xa93: 0x000c, 0xa94: 0x000c, 0xa96: 0x000c,\n\t// Block 0x2b, offset 0xac0\n\t0xaf1: 0x000c, 0xaf4: 0x000c, 0xaf5: 0x000c,\n\t0xaf6: 0x000c, 0xaf7: 0x000c, 0xaf8: 0x000c, 0xaf9: 0x000c, 0xafa: 0x000c,\n\t0xaff: 0x0004,\n\t// Block 0x2c, offset 0xb00\n\t0xb07: 0x000c, 0xb08: 0x000c, 0xb09: 0x000c, 0xb0a: 0x000c, 0xb0b: 0x000c,\n\t0xb0c: 0x000c, 0xb0d: 0x000c, 0xb0e: 0x000c,\n\t// Block 0x2d, offset 0xb40\n\t0xb71: 0x000c, 0xb74: 0x000c, 0xb75: 0x000c,\n\t0xb76: 0x000c, 0xb77: 0x000c, 0xb78: 0x000c, 0xb79: 0x000c, 0xb7b: 0x000c,\n\t0xb7c: 0x000c,\n\t// Block 0x2e, offset 0xb80\n\t0xb88: 0x000c, 0xb89: 0x000c, 0xb8a: 0x000c, 0xb8b: 0x000c,\n\t0xb8c: 0x000c, 0xb8d: 0x000c,\n\t// Block 0x2f, offset 0xbc0\n\t0xbd8: 0x000c, 0xbd9: 0x000c,\n\t0xbf5: 0x000c,\n\t0xbf7: 0x000c, 0xbf9: 0x000c, 0xbfa: 0x003a, 0xbfb: 0x002a,\n\t0xbfc: 0x003a, 0xbfd: 0x002a,\n\t// Block 0x30, offset 0xc00\n\t0xc31: 0x000c, 0xc32: 0x000c, 0xc33: 0x000c, 0xc34: 0x000c, 0xc35: 0x000c,\n\t0xc36: 0x000c, 0xc37: 0x000c, 0xc38: 0x000c, 0xc39: 0x000c, 0xc3a: 0x000c, 0xc3b: 0x000c,\n\t0xc3c: 0x000c, 0xc3d: 0x000c, 0xc3e: 0x000c,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x000c, 0xc41: 0x000c, 0xc42: 0x000c, 0xc43: 0x000c, 0xc44: 0x000c,\n\t0xc46: 0x000c, 0xc47: 0x000c,\n\t0xc4d: 0x000c, 0xc4e: 0x000c, 0xc4f: 0x000c, 0xc50: 0x000c, 0xc51: 0x000c,\n\t0xc52: 0x000c, 0xc53: 0x000c, 0xc54: 0x000c, 0xc55: 0x000c, 0xc56: 0x000c, 0xc57: 0x000c,\n\t0xc59: 0x000c, 0xc5a: 0x000c, 0xc5b: 0x000c, 0xc5c: 0x000c, 0xc5d: 0x000c,\n\t0xc5e: 0x000c, 0xc5f: 0x000c, 0xc60: 0x000c, 0xc61: 0x000c, 0xc62: 0x000c, 0xc63: 0x000c,\n\t0xc64: 0x000c, 0xc65: 0x000c, 0xc66: 0x000c, 0xc67: 0x000c, 0xc68: 0x000c, 0xc69: 0x000c,\n\t0xc6a: 0x000c, 0xc6b: 0x000c, 0xc6c: 0x000c, 0xc6d: 0x000c, 0xc6e: 0x000c, 0xc6f: 0x000c,\n\t0xc70: 0x000c, 0xc71: 0x000c, 0xc72: 0x000c, 0xc73: 0x000c, 0xc74: 0x000c, 0xc75: 0x000c,\n\t0xc76: 0x000c, 0xc77: 0x000c, 0xc78: 0x000c, 0xc79: 0x000c, 0xc7a: 0x000c, 0xc7b: 0x000c,\n\t0xc7c: 0x000c,\n\t// Block 0x32, offset 0xc80\n\t0xc86: 0x000c,\n\t// Block 0x33, offset 0xcc0\n\t0xced: 0x000c, 0xcee: 0x000c, 0xcef: 0x000c,\n\t0xcf0: 0x000c, 0xcf2: 0x000c, 0xcf3: 0x000c, 0xcf4: 0x000c, 0xcf5: 0x000c,\n\t0xcf6: 0x000c, 0xcf7: 0x000c, 0xcf9: 0x000c, 0xcfa: 0x000c,\n\t0xcfd: 0x000c, 0xcfe: 0x000c,\n\t// Block 0x34, offset 0xd00\n\t0xd18: 0x000c, 0xd19: 0x000c,\n\t0xd1e: 0x000c, 0xd1f: 0x000c, 0xd20: 0x000c,\n\t0xd31: 0x000c, 0xd32: 0x000c, 0xd33: 0x000c, 0xd34: 0x000c,\n\t// Block 0x35, offset 0xd40\n\t0xd42: 0x000c, 0xd45: 0x000c,\n\t0xd46: 0x000c,\n\t0xd4d: 0x000c,\n\t0xd5d: 0x000c,\n\t// Block 0x36, offset 0xd80\n\t0xd9d: 0x000c,\n\t0xd9e: 0x000c, 0xd9f: 0x000c,\n\t// Block 0x37, offset 0xdc0\n\t0xdd0: 0x000a, 0xdd1: 0x000a,\n\t0xdd2: 0x000a, 0xdd3: 0x000a, 0xdd4: 0x000a, 0xdd5: 0x000a, 0xdd6: 0x000a, 0xdd7: 0x000a,\n\t0xdd8: 0x000a, 0xdd9: 0x000a,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0x000a,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x0009,\n\t0xe5b: 0x007a, 0xe5c: 0x006a,\n\t// Block 0x3a, offset 0xe80\n\t0xe92: 0x000c, 0xe93: 0x000c, 0xe94: 0x000c,\n\t0xeb2: 0x000c, 0xeb3: 0x000c, 0xeb4: 0x000c,\n\t// Block 0x3b, offset 0xec0\n\t0xed2: 0x000c, 0xed3: 0x000c,\n\t0xef2: 0x000c, 0xef3: 0x000c,\n\t// Block 0x3c, offset 0xf00\n\t0xf34: 0x000c, 0xf35: 0x000c,\n\t0xf37: 0x000c, 0xf38: 0x000c, 0xf39: 0x000c, 0xf3a: 0x000c, 0xf3b: 0x000c,\n\t0xf3c: 0x000c, 0xf3d: 0x000c,\n\t// Block 0x3d, offset 0xf40\n\t0xf46: 0x000c, 0xf49: 0x000c, 0xf4a: 0x000c, 0xf4b: 0x000c,\n\t0xf4c: 0x000c, 0xf4d: 0x000c, 0xf4e: 0x000c, 0xf4f: 0x000c, 0xf50: 0x000c, 0xf51: 0x000c,\n\t0xf52: 0x000c, 0xf53: 0x000c,\n\t0xf5b: 0x0004, 0xf5d: 0x000c,\n\t0xf70: 0x000a, 0xf71: 0x000a, 0xf72: 0x000a, 0xf73: 0x000a, 0xf74: 0x000a, 0xf75: 0x000a,\n\t0xf76: 0x000a, 0xf77: 0x000a, 0xf78: 0x000a, 0xf79: 0x000a,\n\t// Block 0x3e, offset 0xf80\n\t0xf80: 0x000a, 0xf81: 0x000a, 0xf82: 0x000a, 0xf83: 0x000a, 0xf84: 0x000a, 0xf85: 0x000a,\n\t0xf86: 0x000a, 0xf87: 0x000a, 0xf88: 0x000a, 0xf89: 0x000a, 0xf8a: 0x000a, 0xf8b: 0x000c,\n\t0xf8c: 0x000c, 0xf8d: 0x000c, 0xf8e: 0x000b,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc5: 0x000c,\n\t0xfc6: 0x000c,\n\t0xfe9: 0x000c,\n\t// Block 0x40, offset 0x1000\n\t0x1020: 0x000c, 0x1021: 0x000c, 0x1022: 0x000c,\n\t0x1027: 0x000c, 0x1028: 0x000c,\n\t0x1032: 0x000c,\n\t0x1039: 0x000c, 0x103a: 0x000c, 0x103b: 0x000c,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x000a, 0x1044: 0x000a, 0x1045: 0x000a,\n\t// Block 0x42, offset 0x1080\n\t0x109e: 0x000a, 0x109f: 0x000a, 0x10a0: 0x000a, 0x10a1: 0x000a, 0x10a2: 0x000a, 0x10a3: 0x000a,\n\t0x10a4: 0x000a, 0x10a5: 0x000a, 0x10a6: 0x000a, 0x10a7: 0x000a, 0x10a8: 0x000a, 0x10a9: 0x000a,\n\t0x10aa: 0x000a, 0x10ab: 0x000a, 0x10ac: 0x000a, 0x10ad: 0x000a, 0x10ae: 0x000a, 0x10af: 0x000a,\n\t0x10b0: 0x000a, 0x10b1: 0x000a, 0x10b2: 0x000a, 0x10b3: 0x000a, 0x10b4: 0x000a, 0x10b5: 0x000a,\n\t0x10b6: 0x000a, 0x10b7: 0x000a, 0x10b8: 0x000a, 0x10b9: 0x000a, 0x10ba: 0x000a, 0x10bb: 0x000a,\n\t0x10bc: 0x000a, 0x10bd: 0x000a, 0x10be: 0x000a, 0x10bf: 0x000a,\n\t// Block 0x43, offset 0x10c0\n\t0x10d7: 0x000c,\n\t0x10d8: 0x000c, 0x10db: 0x000c,\n\t// Block 0x44, offset 0x1100\n\t0x1116: 0x000c,\n\t0x1118: 0x000c, 0x1119: 0x000c, 0x111a: 0x000c, 0x111b: 0x000c, 0x111c: 0x000c, 0x111d: 0x000c,\n\t0x111e: 0x000c, 0x1120: 0x000c, 0x1122: 0x000c,\n\t0x1125: 0x000c, 0x1126: 0x000c, 0x1127: 0x000c, 0x1128: 0x000c, 0x1129: 0x000c,\n\t0x112a: 0x000c, 0x112b: 0x000c, 0x112c: 0x000c,\n\t0x1133: 0x000c, 0x1134: 0x000c, 0x1135: 0x000c,\n\t0x1136: 0x000c, 0x1137: 0x000c, 0x1138: 0x000c, 0x1139: 0x000c, 0x113a: 0x000c, 0x113b: 0x000c,\n\t0x113c: 0x000c, 0x113f: 0x000c,\n\t// Block 0x45, offset 0x1140\n\t0x1170: 0x000c, 0x1171: 0x000c, 0x1172: 0x000c, 0x1173: 0x000c, 0x1174: 0x000c, 0x1175: 0x000c,\n\t0x1176: 0x000c, 0x1177: 0x000c, 0x1178: 0x000c, 0x1179: 0x000c, 0x117a: 0x000c, 0x117b: 0x000c,\n\t0x117c: 0x000c, 0x117d: 0x000c, 0x117e: 0x000c,\n\t// Block 0x46, offset 0x1180\n\t0x1180: 0x000c, 0x1181: 0x000c, 0x1182: 0x000c, 0x1183: 0x000c,\n\t0x11b4: 0x000c,\n\t0x11b6: 0x000c, 0x11b7: 0x000c, 0x11b8: 0x000c, 0x11b9: 0x000c, 0x11ba: 0x000c,\n\t0x11bc: 0x000c,\n\t// Block 0x47, offset 0x11c0\n\t0x11c2: 0x000c,\n\t0x11eb: 0x000c, 0x11ec: 0x000c, 0x11ed: 0x000c, 0x11ee: 0x000c, 0x11ef: 0x000c,\n\t0x11f0: 0x000c, 0x11f1: 0x000c, 0x11f2: 0x000c, 0x11f3: 0x000c,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0x000c, 0x1201: 0x000c,\n\t0x1222: 0x000c, 0x1223: 0x000c,\n\t0x1224: 0x000c, 0x1225: 0x000c, 0x1228: 0x000c, 0x1229: 0x000c,\n\t0x122b: 0x000c, 0x122c: 0x000c, 0x122d: 0x000c,\n\t// Block 0x49, offset 0x1240\n\t0x1266: 0x000c, 0x1268: 0x000c, 0x1269: 0x000c,\n\t0x126d: 0x000c, 0x126f: 0x000c,\n\t0x1270: 0x000c, 0x1271: 0x000c,\n\t// Block 0x4a, offset 0x1280\n\t0x12ac: 0x000c, 0x12ad: 0x000c, 0x12ae: 0x000c, 0x12af: 0x000c,\n\t0x12b0: 0x000c, 0x12b1: 0x000c, 0x12b2: 0x000c, 0x12b3: 0x000c,\n\t0x12b6: 0x000c, 0x12b7: 0x000c,\n\t// Block 0x4b, offset 0x12c0\n\t0x12d0: 0x000c, 0x12d1: 0x000c,\n\t0x12d2: 0x000c, 0x12d4: 0x000c, 0x12d5: 0x000c, 0x12d6: 0x000c, 0x12d7: 0x000c,\n\t0x12d8: 0x000c, 0x12d9: 0x000c, 0x12da: 0x000c, 0x12db: 0x000c, 0x12dc: 0x000c, 0x12dd: 0x000c,\n\t0x12de: 0x000c, 0x12df: 0x000c, 0x12e0: 0x000c, 0x12e2: 0x000c, 0x12e3: 0x000c,\n\t0x12e4: 0x000c, 0x12e5: 0x000c, 0x12e6: 0x000c, 0x12e7: 0x000c, 0x12e8: 0x000c,\n\t0x12ed: 0x000c,\n\t0x12f4: 0x000c,\n\t0x12f8: 0x000c, 0x12f9: 0x000c,\n\t// Block 0x4c, offset 0x1300\n\t0x1300: 0x000c, 0x1301: 0x000c, 0x1302: 0x000c, 0x1303: 0x000c, 0x1304: 0x000c, 0x1305: 0x000c,\n\t0x1306: 0x000c, 0x1307: 0x000c, 0x1308: 0x000c, 0x1309: 0x000c, 0x130a: 0x000c, 0x130b: 0x000c,\n\t0x130c: 0x000c, 0x130d: 0x000c, 0x130e: 0x000c, 0x130f: 0x000c, 0x1310: 0x000c, 0x1311: 0x000c,\n\t0x1312: 0x000c, 0x1313: 0x000c, 0x1314: 0x000c, 0x1315: 0x000c, 0x1316: 0x000c, 0x1317: 0x000c,\n\t0x1318: 0x000c, 0x1319: 0x000c, 0x131a: 0x000c, 0x131b: 0x000c, 0x131c: 0x000c, 0x131d: 0x000c,\n\t0x131e: 0x000c, 0x131f: 0x000c, 0x1320: 0x000c, 0x1321: 0x000c, 0x1322: 0x000c, 0x1323: 0x000c,\n\t0x1324: 0x000c, 0x1325: 0x000c, 0x1326: 0x000c, 0x1327: 0x000c, 0x1328: 0x000c, 0x1329: 0x000c,\n\t0x132a: 0x000c, 0x132b: 0x000c, 0x132c: 0x000c, 0x132d: 0x000c, 0x132e: 0x000c, 0x132f: 0x000c,\n\t0x1330: 0x000c, 0x1331: 0x000c, 0x1332: 0x000c, 0x1333: 0x000c, 0x1334: 0x000c, 0x1335: 0x000c,\n\t0x133b: 0x000c,\n\t0x133c: 0x000c, 0x133d: 0x000c, 0x133e: 0x000c, 0x133f: 0x000c,\n\t// Block 0x4d, offset 0x1340\n\t0x137d: 0x000a, 0x137f: 0x000a,\n\t// Block 0x4e, offset 0x1380\n\t0x1380: 0x000a, 0x1381: 0x000a,\n\t0x138d: 0x000a, 0x138e: 0x000a, 0x138f: 0x000a,\n\t0x139d: 0x000a,\n\t0x139e: 0x000a, 0x139f: 0x000a,\n\t0x13ad: 0x000a, 0x13ae: 0x000a, 0x13af: 0x000a,\n\t0x13bd: 0x000a, 0x13be: 0x000a,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c0: 0x0009, 0x13c1: 0x0009, 0x13c2: 0x0009, 0x13c3: 0x0009, 0x13c4: 0x0009, 0x13c5: 0x0009,\n\t0x13c6: 0x0009, 0x13c7: 0x0009, 0x13c8: 0x0009, 0x13c9: 0x0009, 0x13ca: 0x0009, 0x13cb: 0x000b,\n\t0x13cc: 0x000b, 0x13cd: 0x000b, 0x13cf: 0x0001, 0x13d0: 0x000a, 0x13d1: 0x000a,\n\t0x13d2: 0x000a, 0x13d3: 0x000a, 0x13d4: 0x000a, 0x13d5: 0x000a, 0x13d6: 0x000a, 0x13d7: 0x000a,\n\t0x13d8: 0x000a, 0x13d9: 0x000a, 0x13da: 0x000a, 0x13db: 0x000a, 0x13dc: 0x000a, 0x13dd: 0x000a,\n\t0x13de: 0x000a, 0x13df: 0x000a, 0x13e0: 0x000a, 0x13e1: 0x000a, 0x13e2: 0x000a, 0x13e3: 0x000a,\n\t0x13e4: 0x000a, 0x13e5: 0x000a, 0x13e6: 0x000a, 0x13e7: 0x000a, 0x13e8: 0x0009, 0x13e9: 0x0007,\n\t0x13ea: 0x000e, 0x13eb: 0x000e, 0x13ec: 0x000e, 0x13ed: 0x000e, 0x13ee: 0x000e, 0x13ef: 0x0006,\n\t0x13f0: 0x0004, 0x13f1: 0x0004, 0x13f2: 0x0004, 0x13f3: 0x0004, 0x13f4: 0x0004, 0x13f5: 0x000a,\n\t0x13f6: 0x000a, 0x13f7: 0x000a, 0x13f8: 0x000a, 0x13f9: 0x000a, 0x13fa: 0x000a, 0x13fb: 0x000a,\n\t0x13fc: 0x000a, 0x13fd: 0x000a, 0x13fe: 0x000a, 0x13ff: 0x000a,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x000a, 0x1401: 0x000a, 0x1402: 0x000a, 0x1403: 0x000a, 0x1404: 0x0006, 0x1405: 0x009a,\n\t0x1406: 0x008a, 0x1407: 0x000a, 0x1408: 0x000a, 0x1409: 0x000a, 0x140a: 0x000a, 0x140b: 0x000a,\n\t0x140c: 0x000a, 0x140d: 0x000a, 0x140e: 0x000a, 0x140f: 0x000a, 0x1410: 0x000a, 0x1411: 0x000a,\n\t0x1412: 0x000a, 0x1413: 0x000a, 0x1414: 0x000a, 0x1415: 0x000a, 0x1416: 0x000a, 0x1417: 0x000a,\n\t0x1418: 0x000a, 0x1419: 0x000a, 0x141a: 0x000a, 0x141b: 0x000a, 0x141c: 0x000a, 0x141d: 0x000a,\n\t0x141e: 0x000a, 0x141f: 0x0009, 0x1420: 0x000b, 0x1421: 0x000b, 0x1422: 0x000b, 0x1423: 0x000b,\n\t0x1424: 0x000b, 0x1425: 0x000b, 0x1426: 0x000e, 0x1427: 0x000e, 0x1428: 0x000e, 0x1429: 0x000e,\n\t0x142a: 0x000b, 0x142b: 0x000b, 0x142c: 0x000b, 0x142d: 0x000b, 0x142e: 0x000b, 0x142f: 0x000b,\n\t0x1430: 0x0002, 0x1434: 0x0002, 0x1435: 0x0002,\n\t0x1436: 0x0002, 0x1437: 0x0002, 0x1438: 0x0002, 0x1439: 0x0002, 0x143a: 0x0003, 0x143b: 0x0003,\n\t0x143c: 0x000a, 0x143d: 0x009a, 0x143e: 0x008a,\n\t// Block 0x51, offset 0x1440\n\t0x1440: 0x0002, 0x1441: 0x0002, 0x1442: 0x0002, 0x1443: 0x0002, 0x1444: 0x0002, 0x1445: 0x0002,\n\t0x1446: 0x0002, 0x1447: 0x0002, 0x1448: 0x0002, 0x1449: 0x0002, 0x144a: 0x0003, 0x144b: 0x0003,\n\t0x144c: 0x000a, 0x144d: 0x009a, 0x144e: 0x008a,\n\t0x1460: 0x0004, 0x1461: 0x0004, 0x1462: 0x0004, 0x1463: 0x0004,\n\t0x1464: 0x0004, 0x1465: 0x0004, 0x1466: 0x0004, 0x1467: 0x0004, 0x1468: 0x0004, 0x1469: 0x0004,\n\t0x146a: 0x0004, 0x146b: 0x0004, 0x146c: 0x0004, 0x146d: 0x0004, 0x146e: 0x0004, 0x146f: 0x0004,\n\t0x1470: 0x0004, 0x1471: 0x0004, 0x1472: 0x0004, 0x1473: 0x0004, 0x1474: 0x0004, 0x1475: 0x0004,\n\t0x1476: 0x0004, 0x1477: 0x0004, 0x1478: 0x0004, 0x1479: 0x0004, 0x147a: 0x0004, 0x147b: 0x0004,\n\t0x147c: 0x0004, 0x147d: 0x0004, 0x147e: 0x0004, 0x147f: 0x0004,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x0004, 0x1481: 0x0004, 0x1482: 0x0004, 0x1483: 0x0004, 0x1484: 0x0004, 0x1485: 0x0004,\n\t0x1486: 0x0004, 0x1487: 0x0004, 0x1488: 0x0004, 0x1489: 0x0004, 0x148a: 0x0004, 0x148b: 0x0004,\n\t0x148c: 0x0004, 0x148d: 0x0004, 0x148e: 0x0004, 0x148f: 0x0004, 0x1490: 0x000c, 0x1491: 0x000c,\n\t0x1492: 0x000c, 0x1493: 0x000c, 0x1494: 0x000c, 0x1495: 0x000c, 0x1496: 0x000c, 0x1497: 0x000c,\n\t0x1498: 0x000c, 0x1499: 0x000c, 0x149a: 0x000c, 0x149b: 0x000c, 0x149c: 0x000c, 0x149d: 0x000c,\n\t0x149e: 0x000c, 0x149f: 0x000c, 0x14a0: 0x000c, 0x14a1: 0x000c, 0x14a2: 0x000c, 0x14a3: 0x000c,\n\t0x14a4: 0x000c, 0x14a5: 0x000c, 0x14a6: 0x000c, 0x14a7: 0x000c, 0x14a8: 0x000c, 0x14a9: 0x000c,\n\t0x14aa: 0x000c, 0x14ab: 0x000c, 0x14ac: 0x000c, 0x14ad: 0x000c, 0x14ae: 0x000c, 0x14af: 0x000c,\n\t0x14b0: 0x000c,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x000a, 0x14c1: 0x000a, 0x14c3: 0x000a, 0x14c4: 0x000a, 0x14c5: 0x000a,\n\t0x14c6: 0x000a, 0x14c8: 0x000a, 0x14c9: 0x000a,\n\t0x14d4: 0x000a, 0x14d6: 0x000a, 0x14d7: 0x000a,\n\t0x14d8: 0x000a,\n\t0x14de: 0x000a, 0x14df: 0x000a, 0x14e0: 0x000a, 0x14e1: 0x000a, 0x14e2: 0x000a, 0x14e3: 0x000a,\n\t0x14e5: 0x000a, 0x14e7: 0x000a, 0x14e9: 0x000a,\n\t0x14ee: 0x0004,\n\t0x14fa: 0x000a, 0x14fb: 0x000a,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0x000a, 0x1501: 0x000a, 0x1502: 0x000a, 0x1503: 0x000a, 0x1504: 0x000a,\n\t0x150a: 0x000a, 0x150b: 0x000a,\n\t0x150c: 0x000a, 0x150d: 0x000a, 0x1510: 0x000a, 0x1511: 0x000a,\n\t0x1512: 0x000a, 0x1513: 0x000a, 0x1514: 0x000a, 0x1515: 0x000a, 0x1516: 0x000a, 0x1517: 0x000a,\n\t0x1518: 0x000a, 0x1519: 0x000a, 0x151a: 0x000a, 0x151b: 0x000a, 0x151c: 0x000a, 0x151d: 0x000a,\n\t0x151e: 0x000a, 0x151f: 0x000a,\n\t// Block 0x55, offset 0x1540\n\t0x1549: 0x000a, 0x154a: 0x000a, 0x154b: 0x000a,\n\t0x1550: 0x000a, 0x1551: 0x000a,\n\t0x1552: 0x000a, 0x1553: 0x000a, 0x1554: 0x000a, 0x1555: 0x000a, 0x1556: 0x000a, 0x1557: 0x000a,\n\t0x1558: 0x000a, 0x1559: 0x000a, 0x155a: 0x000a, 0x155b: 0x000a, 0x155c: 0x000a, 0x155d: 0x000a,\n\t0x155e: 0x000a, 0x155f: 0x000a, 0x1560: 0x000a, 0x1561: 0x000a, 0x1562: 0x000a, 0x1563: 0x000a,\n\t0x1564: 0x000a, 0x1565: 0x000a, 0x1566: 0x000a, 0x1567: 0x000a, 0x1568: 0x000a, 0x1569: 0x000a,\n\t0x156a: 0x000a, 0x156b: 0x000a, 0x156c: 0x000a, 0x156d: 0x000a, 0x156e: 0x000a, 0x156f: 0x000a,\n\t0x1570: 0x000a, 0x1571: 0x000a, 0x1572: 0x000a, 0x1573: 0x000a, 0x1574: 0x000a, 0x1575: 0x000a,\n\t0x1576: 0x000a, 0x1577: 0x000a, 0x1578: 0x000a, 0x1579: 0x000a, 0x157a: 0x000a, 0x157b: 0x000a,\n\t0x157c: 0x000a, 0x157d: 0x000a, 0x157e: 0x000a, 0x157f: 0x000a,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x000a, 0x1581: 0x000a, 0x1582: 0x000a, 0x1583: 0x000a, 0x1584: 0x000a, 0x1585: 0x000a,\n\t0x1586: 0x000a, 0x1587: 0x000a, 0x1588: 0x000a, 0x1589: 0x000a, 0x158a: 0x000a, 0x158b: 0x000a,\n\t0x158c: 0x000a, 0x158d: 0x000a, 0x158e: 0x000a, 0x158f: 0x000a, 0x1590: 0x000a, 0x1591: 0x000a,\n\t0x1592: 0x000a, 0x1593: 0x000a, 0x1594: 0x000a, 0x1595: 0x000a, 0x1596: 0x000a, 0x1597: 0x000a,\n\t0x1598: 0x000a, 0x1599: 0x000a, 0x159a: 0x000a, 0x159b: 0x000a, 0x159c: 0x000a, 0x159d: 0x000a,\n\t0x159e: 0x000a, 0x159f: 0x000a, 0x15a0: 0x000a, 0x15a1: 0x000a, 0x15a2: 0x000a, 0x15a3: 0x000a,\n\t0x15a4: 0x000a, 0x15a5: 0x000a, 0x15a6: 0x000a, 0x15a7: 0x000a, 0x15a8: 0x000a, 0x15a9: 0x000a,\n\t0x15aa: 0x000a, 0x15ab: 0x000a, 0x15ac: 0x000a, 0x15ad: 0x000a, 0x15ae: 0x000a, 0x15af: 0x000a,\n\t0x15b0: 0x000a, 0x15b1: 0x000a, 0x15b2: 0x000a, 0x15b3: 0x000a, 0x15b4: 0x000a, 0x15b5: 0x000a,\n\t0x15b6: 0x000a, 0x15b7: 0x000a, 0x15b8: 0x000a, 0x15b9: 0x000a, 0x15ba: 0x000a, 0x15bb: 0x000a,\n\t0x15bc: 0x000a, 0x15bd: 0x000a, 0x15be: 0x000a, 0x15bf: 0x000a,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0x000a, 0x15c1: 0x000a, 0x15c2: 0x000a, 0x15c3: 0x000a, 0x15c4: 0x000a, 0x15c5: 0x000a,\n\t0x15c6: 0x000a, 0x15c7: 0x000a, 0x15c8: 0x000a, 0x15c9: 0x000a, 0x15ca: 0x000a, 0x15cb: 0x000a,\n\t0x15cc: 0x000a, 0x15cd: 0x000a, 0x15ce: 0x000a, 0x15cf: 0x000a, 0x15d0: 0x000a, 0x15d1: 0x000a,\n\t0x15d2: 0x0003, 0x15d3: 0x0004, 0x15d4: 0x000a, 0x15d5: 0x000a, 0x15d6: 0x000a, 0x15d7: 0x000a,\n\t0x15d8: 0x000a, 0x15d9: 0x000a, 0x15da: 0x000a, 0x15db: 0x000a, 0x15dc: 0x000a, 0x15dd: 0x000a,\n\t0x15de: 0x000a, 0x15df: 0x000a, 0x15e0: 0x000a, 0x15e1: 0x000a, 0x15e2: 0x000a, 0x15e3: 0x000a,\n\t0x15e4: 0x000a, 0x15e5: 0x000a, 0x15e6: 0x000a, 0x15e7: 0x000a, 0x15e8: 0x000a, 0x15e9: 0x000a,\n\t0x15ea: 0x000a, 0x15eb: 0x000a, 0x15ec: 0x000a, 0x15ed: 0x000a, 0x15ee: 0x000a, 0x15ef: 0x000a,\n\t0x15f0: 0x000a, 0x15f1: 0x000a, 0x15f2: 0x000a, 0x15f3: 0x000a, 0x15f4: 0x000a, 0x15f5: 0x000a,\n\t0x15f6: 0x000a, 0x15f7: 0x000a, 0x15f8: 0x000a, 0x15f9: 0x000a, 0x15fa: 0x000a, 0x15fb: 0x000a,\n\t0x15fc: 0x000a, 0x15fd: 0x000a, 0x15fe: 0x000a, 0x15ff: 0x000a,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0x000a, 0x1601: 0x000a, 0x1602: 0x000a, 0x1603: 0x000a, 0x1604: 0x000a, 0x1605: 0x000a,\n\t0x1606: 0x000a, 0x1607: 0x000a, 0x1608: 0x003a, 0x1609: 0x002a, 0x160a: 0x003a, 0x160b: 0x002a,\n\t0x160c: 0x000a, 0x160d: 0x000a, 0x160e: 0x000a, 0x160f: 0x000a, 0x1610: 0x000a, 0x1611: 0x000a,\n\t0x1612: 0x000a, 0x1613: 0x000a, 0x1614: 0x000a, 0x1615: 0x000a, 0x1616: 0x000a, 0x1617: 0x000a,\n\t0x1618: 0x000a, 0x1619: 0x000a, 0x161a: 0x000a, 0x161b: 0x000a, 0x161c: 0x000a, 0x161d: 0x000a,\n\t0x161e: 0x000a, 0x161f: 0x000a, 0x1620: 0x000a, 0x1621: 0x000a, 0x1622: 0x000a, 0x1623: 0x000a,\n\t0x1624: 0x000a, 0x1625: 0x000a, 0x1626: 0x000a, 0x1627: 0x000a, 0x1628: 0x000a, 0x1629: 0x009a,\n\t0x162a: 0x008a, 0x162b: 0x000a, 0x162c: 0x000a, 0x162d: 0x000a, 0x162e: 0x000a, 0x162f: 0x000a,\n\t0x1630: 0x000a, 0x1631: 0x000a, 0x1632: 0x000a, 0x1633: 0x000a, 0x1634: 0x000a, 0x1635: 0x000a,\n\t// Block 0x59, offset 0x1640\n\t0x167b: 0x000a,\n\t0x167c: 0x000a, 0x167d: 0x000a, 0x167e: 0x000a, 0x167f: 0x000a,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x000a, 0x1681: 0x000a, 0x1682: 0x000a, 0x1683: 0x000a, 0x1684: 0x000a, 0x1685: 0x000a,\n\t0x1686: 0x000a, 0x1687: 0x000a, 0x1688: 0x000a, 0x1689: 0x000a, 0x168a: 0x000a, 0x168b: 0x000a,\n\t0x168c: 0x000a, 0x168d: 0x000a, 0x168e: 0x000a, 0x168f: 0x000a, 0x1690: 0x000a, 0x1691: 0x000a,\n\t0x1692: 0x000a, 0x1693: 0x000a, 0x1694: 0x000a, 0x1696: 0x000a, 0x1697: 0x000a,\n\t0x1698: 0x000a, 0x1699: 0x000a, 0x169a: 0x000a, 0x169b: 0x000a, 0x169c: 0x000a, 0x169d: 0x000a,\n\t0x169e: 0x000a, 0x169f: 0x000a, 0x16a0: 0x000a, 0x16a1: 0x000a, 0x16a2: 0x000a, 0x16a3: 0x000a,\n\t0x16a4: 0x000a, 0x16a5: 0x000a, 0x16a6: 0x000a, 0x16a7: 0x000a, 0x16a8: 0x000a, 0x16a9: 0x000a,\n\t0x16aa: 0x000a, 0x16ab: 0x000a, 0x16ac: 0x000a, 0x16ad: 0x000a, 0x16ae: 0x000a, 0x16af: 0x000a,\n\t0x16b0: 0x000a, 0x16b1: 0x000a, 0x16b2: 0x000a, 0x16b3: 0x000a, 0x16b4: 0x000a, 0x16b5: 0x000a,\n\t0x16b6: 0x000a, 0x16b7: 0x000a, 0x16b8: 0x000a, 0x16b9: 0x000a, 0x16ba: 0x000a, 0x16bb: 0x000a,\n\t0x16bc: 0x000a, 0x16bd: 0x000a, 0x16be: 0x000a, 0x16bf: 0x000a,\n\t// Block 0x5b, offset 0x16c0\n\t0x16c0: 0x000a, 0x16c1: 0x000a, 0x16c2: 0x000a, 0x16c3: 0x000a, 0x16c4: 0x000a, 0x16c5: 0x000a,\n\t0x16c6: 0x000a, 0x16c7: 0x000a, 0x16c8: 0x000a, 0x16c9: 0x000a, 0x16ca: 0x000a, 0x16cb: 0x000a,\n\t0x16cc: 0x000a, 0x16cd: 0x000a, 0x16ce: 0x000a, 0x16cf: 0x000a, 0x16d0: 0x000a, 0x16d1: 0x000a,\n\t0x16d2: 0x000a, 0x16d3: 0x000a, 0x16d4: 0x000a, 0x16d5: 0x000a, 0x16d6: 0x000a, 0x16d7: 0x000a,\n\t0x16d8: 0x000a, 0x16d9: 0x000a, 0x16da: 0x000a, 0x16db: 0x000a, 0x16dc: 0x000a, 0x16dd: 0x000a,\n\t0x16de: 0x000a, 0x16df: 0x000a, 0x16e0: 0x000a, 0x16e1: 0x000a, 0x16e2: 0x000a, 0x16e3: 0x000a,\n\t0x16e4: 0x000a, 0x16e5: 0x000a, 0x16e6: 0x000a, 0x16e7: 0x000a, 0x16e8: 0x000a, 0x16e9: 0x000a,\n\t0x16ea: 0x000a, 0x16eb: 0x000a, 0x16ec: 0x000a, 0x16ed: 0x000a, 0x16ee: 0x000a, 0x16ef: 0x000a,\n\t0x16f0: 0x000a, 0x16f1: 0x000a, 0x16f2: 0x000a, 0x16f3: 0x000a, 0x16f4: 0x000a, 0x16f5: 0x000a,\n\t0x16f6: 0x000a, 0x16f7: 0x000a, 0x16f8: 0x000a, 0x16f9: 0x000a, 0x16fa: 0x000a, 0x16fb: 0x000a,\n\t0x16fc: 0x000a, 0x16fd: 0x000a, 0x16fe: 0x000a,\n\t// Block 0x5c, offset 0x1700\n\t0x1700: 0x000a, 0x1701: 0x000a, 0x1702: 0x000a, 0x1703: 0x000a, 0x1704: 0x000a, 0x1705: 0x000a,\n\t0x1706: 0x000a, 0x1707: 0x000a, 0x1708: 0x000a, 0x1709: 0x000a, 0x170a: 0x000a, 0x170b: 0x000a,\n\t0x170c: 0x000a, 0x170d: 0x000a, 0x170e: 0x000a, 0x170f: 0x000a, 0x1710: 0x000a, 0x1711: 0x000a,\n\t0x1712: 0x000a, 0x1713: 0x000a, 0x1714: 0x000a, 0x1715: 0x000a, 0x1716: 0x000a, 0x1717: 0x000a,\n\t0x1718: 0x000a, 0x1719: 0x000a, 0x171a: 0x000a, 0x171b: 0x000a, 0x171c: 0x000a, 0x171d: 0x000a,\n\t0x171e: 0x000a, 0x171f: 0x000a, 0x1720: 0x000a, 0x1721: 0x000a, 0x1722: 0x000a, 0x1723: 0x000a,\n\t0x1724: 0x000a, 0x1725: 0x000a, 0x1726: 0x000a,\n\t// Block 0x5d, offset 0x1740\n\t0x1740: 0x000a, 0x1741: 0x000a, 0x1742: 0x000a, 0x1743: 0x000a, 0x1744: 0x000a, 0x1745: 0x000a,\n\t0x1746: 0x000a, 0x1747: 0x000a, 0x1748: 0x000a, 0x1749: 0x000a, 0x174a: 0x000a,\n\t0x1760: 0x000a, 0x1761: 0x000a, 0x1762: 0x000a, 0x1763: 0x000a,\n\t0x1764: 0x000a, 0x1765: 0x000a, 0x1766: 0x000a, 0x1767: 0x000a, 0x1768: 0x000a, 0x1769: 0x000a,\n\t0x176a: 0x000a, 0x176b: 0x000a, 0x176c: 0x000a, 0x176d: 0x000a, 0x176e: 0x000a, 0x176f: 0x000a,\n\t0x1770: 0x000a, 0x1771: 0x000a, 0x1772: 0x000a, 0x1773: 0x000a, 0x1774: 0x000a, 0x1775: 0x000a,\n\t0x1776: 0x000a, 0x1777: 0x000a, 0x1778: 0x000a, 0x1779: 0x000a, 0x177a: 0x000a, 0x177b: 0x000a,\n\t0x177c: 0x000a, 0x177d: 0x000a, 0x177e: 0x000a, 0x177f: 0x000a,\n\t// Block 0x5e, offset 0x1780\n\t0x1780: 0x000a, 0x1781: 0x000a, 0x1782: 0x000a, 0x1783: 0x000a, 0x1784: 0x000a, 0x1785: 0x000a,\n\t0x1786: 0x000a, 0x1787: 0x000a, 0x1788: 0x0002, 0x1789: 0x0002, 0x178a: 0x0002, 0x178b: 0x0002,\n\t0x178c: 0x0002, 0x178d: 0x0002, 0x178e: 0x0002, 0x178f: 0x0002, 0x1790: 0x0002, 0x1791: 0x0002,\n\t0x1792: 0x0002, 0x1793: 0x0002, 0x1794: 0x0002, 0x1795: 0x0002, 0x1796: 0x0002, 0x1797: 0x0002,\n\t0x1798: 0x0002, 0x1799: 0x0002, 0x179a: 0x0002, 0x179b: 0x0002,\n\t// Block 0x5f, offset 0x17c0\n\t0x17ea: 0x000a, 0x17eb: 0x000a, 0x17ec: 0x000a, 0x17ed: 0x000a, 0x17ee: 0x000a, 0x17ef: 0x000a,\n\t0x17f0: 0x000a, 0x17f1: 0x000a, 0x17f2: 0x000a, 0x17f3: 0x000a, 0x17f4: 0x000a, 0x17f5: 0x000a,\n\t0x17f6: 0x000a, 0x17f7: 0x000a, 0x17f8: 0x000a, 0x17f9: 0x000a, 0x17fa: 0x000a, 0x17fb: 0x000a,\n\t0x17fc: 0x000a, 0x17fd: 0x000a, 0x17fe: 0x000a, 0x17ff: 0x000a,\n\t// Block 0x60, offset 0x1800\n\t0x1800: 0x000a, 0x1801: 0x000a, 0x1802: 0x000a, 0x1803: 0x000a, 0x1804: 0x000a, 0x1805: 0x000a,\n\t0x1806: 0x000a, 0x1807: 0x000a, 0x1808: 0x000a, 0x1809: 0x000a, 0x180a: 0x000a, 0x180b: 0x000a,\n\t0x180c: 0x000a, 0x180d: 0x000a, 0x180e: 0x000a, 0x180f: 0x000a, 0x1810: 0x000a, 0x1811: 0x000a,\n\t0x1812: 0x000a, 0x1813: 0x000a, 0x1814: 0x000a, 0x1815: 0x000a, 0x1816: 0x000a, 0x1817: 0x000a,\n\t0x1818: 0x000a, 0x1819: 0x000a, 0x181a: 0x000a, 0x181b: 0x000a, 0x181c: 0x000a, 0x181d: 0x000a,\n\t0x181e: 0x000a, 0x181f: 0x000a, 0x1820: 0x000a, 0x1821: 0x000a, 0x1822: 0x000a, 0x1823: 0x000a,\n\t0x1824: 0x000a, 0x1825: 0x000a, 0x1826: 0x000a, 0x1827: 0x000a, 0x1828: 0x000a, 0x1829: 0x000a,\n\t0x182a: 0x000a, 0x182b: 0x000a, 0x182d: 0x000a, 0x182e: 0x000a, 0x182f: 0x000a,\n\t0x1830: 0x000a, 0x1831: 0x000a, 0x1832: 0x000a, 0x1833: 0x000a, 0x1834: 0x000a, 0x1835: 0x000a,\n\t0x1836: 0x000a, 0x1837: 0x000a, 0x1838: 0x000a, 0x1839: 0x000a, 0x183a: 0x000a, 0x183b: 0x000a,\n\t0x183c: 0x000a, 0x183d: 0x000a, 0x183e: 0x000a, 0x183f: 0x000a,\n\t// Block 0x61, offset 0x1840\n\t0x1840: 0x000a, 0x1841: 0x000a, 0x1842: 0x000a, 0x1843: 0x000a, 0x1844: 0x000a, 0x1845: 0x000a,\n\t0x1846: 0x000a, 0x1847: 0x000a, 0x1848: 0x000a, 0x1849: 0x000a, 0x184a: 0x000a, 0x184b: 0x000a,\n\t0x184c: 0x000a, 0x184d: 0x000a, 0x184e: 0x000a, 0x184f: 0x000a, 0x1850: 0x000a, 0x1851: 0x000a,\n\t0x1852: 0x000a, 0x1853: 0x000a, 0x1854: 0x000a, 0x1855: 0x000a, 0x1856: 0x000a, 0x1857: 0x000a,\n\t0x1858: 0x000a, 0x1859: 0x000a, 0x185a: 0x000a, 0x185b: 0x000a, 0x185c: 0x000a, 0x185d: 0x000a,\n\t0x185e: 0x000a, 0x185f: 0x000a, 0x1860: 0x000a, 0x1861: 0x000a, 0x1862: 0x000a, 0x1863: 0x000a,\n\t0x1864: 0x000a, 0x1865: 0x000a, 0x1866: 0x000a, 0x1867: 0x000a, 0x1868: 0x003a, 0x1869: 0x002a,\n\t0x186a: 0x003a, 0x186b: 0x002a, 0x186c: 0x003a, 0x186d: 0x002a, 0x186e: 0x003a, 0x186f: 0x002a,\n\t0x1870: 0x003a, 0x1871: 0x002a, 0x1872: 0x003a, 0x1873: 0x002a, 0x1874: 0x003a, 0x1875: 0x002a,\n\t0x1876: 0x000a, 0x1877: 0x000a, 0x1878: 0x000a, 0x1879: 0x000a, 0x187a: 0x000a, 0x187b: 0x000a,\n\t0x187c: 0x000a, 0x187d: 0x000a, 0x187e: 0x000a, 0x187f: 0x000a,\n\t// Block 0x62, offset 0x1880\n\t0x1880: 0x000a, 0x1881: 0x000a, 0x1882: 0x000a, 0x1883: 0x000a, 0x1884: 0x000a, 0x1885: 0x009a,\n\t0x1886: 0x008a, 0x1887: 0x000a, 0x1888: 0x000a, 0x1889: 0x000a, 0x188a: 0x000a, 0x188b: 0x000a,\n\t0x188c: 0x000a, 0x188d: 0x000a, 0x188e: 0x000a, 0x188f: 0x000a, 0x1890: 0x000a, 0x1891: 0x000a,\n\t0x1892: 0x000a, 0x1893: 0x000a, 0x1894: 0x000a, 0x1895: 0x000a, 0x1896: 0x000a, 0x1897: 0x000a,\n\t0x1898: 0x000a, 0x1899: 0x000a, 0x189a: 0x000a, 0x189b: 0x000a, 0x189c: 0x000a, 0x189d: 0x000a,\n\t0x189e: 0x000a, 0x189f: 0x000a, 0x18a0: 0x000a, 0x18a1: 0x000a, 0x18a2: 0x000a, 0x18a3: 0x000a,\n\t0x18a4: 0x000a, 0x18a5: 0x000a, 0x18a6: 0x003a, 0x18a7: 0x002a, 0x18a8: 0x003a, 0x18a9: 0x002a,\n\t0x18aa: 0x003a, 0x18ab: 0x002a, 0x18ac: 0x003a, 0x18ad: 0x002a, 0x18ae: 0x003a, 0x18af: 0x002a,\n\t0x18b0: 0x000a, 0x18b1: 0x000a, 0x18b2: 0x000a, 0x18b3: 0x000a, 0x18b4: 0x000a, 0x18b5: 0x000a,\n\t0x18b6: 0x000a, 0x18b7: 0x000a, 0x18b8: 0x000a, 0x18b9: 0x000a, 0x18ba: 0x000a, 0x18bb: 0x000a,\n\t0x18bc: 0x000a, 0x18bd: 0x000a, 0x18be: 0x000a, 0x18bf: 0x000a,\n\t// Block 0x63, offset 0x18c0\n\t0x18c0: 0x000a, 0x18c1: 0x000a, 0x18c2: 0x000a, 0x18c3: 0x007a, 0x18c4: 0x006a, 0x18c5: 0x009a,\n\t0x18c6: 0x008a, 0x18c7: 0x00ba, 0x18c8: 0x00aa, 0x18c9: 0x009a, 0x18ca: 0x008a, 0x18cb: 0x007a,\n\t0x18cc: 0x006a, 0x18cd: 0x00da, 0x18ce: 0x002a, 0x18cf: 0x003a, 0x18d0: 0x00ca, 0x18d1: 0x009a,\n\t0x18d2: 0x008a, 0x18d3: 0x007a, 0x18d4: 0x006a, 0x18d5: 0x009a, 0x18d6: 0x008a, 0x18d7: 0x00ba,\n\t0x18d8: 0x00aa, 0x18d9: 0x000a, 0x18da: 0x000a, 0x18db: 0x000a, 0x18dc: 0x000a, 0x18dd: 0x000a,\n\t0x18de: 0x000a, 0x18df: 0x000a, 0x18e0: 0x000a, 0x18e1: 0x000a, 0x18e2: 0x000a, 0x18e3: 0x000a,\n\t0x18e4: 0x000a, 0x18e5: 0x000a, 0x18e6: 0x000a, 0x18e7: 0x000a, 0x18e8: 0x000a, 0x18e9: 0x000a,\n\t0x18ea: 0x000a, 0x18eb: 0x000a, 0x18ec: 0x000a, 0x18ed: 0x000a, 0x18ee: 0x000a, 0x18ef: 0x000a,\n\t0x18f0: 0x000a, 0x18f1: 0x000a, 0x18f2: 0x000a, 0x18f3: 0x000a, 0x18f4: 0x000a, 0x18f5: 0x000a,\n\t0x18f6: 0x000a, 0x18f7: 0x000a, 0x18f8: 0x000a, 0x18f9: 0x000a, 0x18fa: 0x000a, 0x18fb: 0x000a,\n\t0x18fc: 0x000a, 0x18fd: 0x000a, 0x18fe: 0x000a, 0x18ff: 0x000a,\n\t// Block 0x64, offset 0x1900\n\t0x1900: 0x000a, 0x1901: 0x000a, 0x1902: 0x000a, 0x1903: 0x000a, 0x1904: 0x000a, 0x1905: 0x000a,\n\t0x1906: 0x000a, 0x1907: 0x000a, 0x1908: 0x000a, 0x1909: 0x000a, 0x190a: 0x000a, 0x190b: 0x000a,\n\t0x190c: 0x000a, 0x190d: 0x000a, 0x190e: 0x000a, 0x190f: 0x000a, 0x1910: 0x000a, 0x1911: 0x000a,\n\t0x1912: 0x000a, 0x1913: 0x000a, 0x1914: 0x000a, 0x1915: 0x000a, 0x1916: 0x000a, 0x1917: 0x000a,\n\t0x1918: 0x003a, 0x1919: 0x002a, 0x191a: 0x003a, 0x191b: 0x002a, 0x191c: 0x000a, 0x191d: 0x000a,\n\t0x191e: 0x000a, 0x191f: 0x000a, 0x1920: 0x000a, 0x1921: 0x000a, 0x1922: 0x000a, 0x1923: 0x000a,\n\t0x1924: 0x000a, 0x1925: 0x000a, 0x1926: 0x000a, 0x1927: 0x000a, 0x1928: 0x000a, 0x1929: 0x000a,\n\t0x192a: 0x000a, 0x192b: 0x000a, 0x192c: 0x000a, 0x192d: 0x000a, 0x192e: 0x000a, 0x192f: 0x000a,\n\t0x1930: 0x000a, 0x1931: 0x000a, 0x1932: 0x000a, 0x1933: 0x000a, 0x1934: 0x000a, 0x1935: 0x000a,\n\t0x1936: 0x000a, 0x1937: 0x000a, 0x1938: 0x000a, 0x1939: 0x000a, 0x193a: 0x000a, 0x193b: 0x000a,\n\t0x193c: 0x003a, 0x193d: 0x002a, 0x193e: 0x000a, 0x193f: 0x000a,\n\t// Block 0x65, offset 0x1940\n\t0x1940: 0x000a, 0x1941: 0x000a, 0x1942: 0x000a, 0x1943: 0x000a, 0x1944: 0x000a, 0x1945: 0x000a,\n\t0x1946: 0x000a, 0x1947: 0x000a, 0x1948: 0x000a, 0x1949: 0x000a, 0x194a: 0x000a, 0x194b: 0x000a,\n\t0x194c: 0x000a, 0x194d: 0x000a, 0x194e: 0x000a, 0x194f: 0x000a, 0x1950: 0x000a, 0x1951: 0x000a,\n\t0x1952: 0x000a, 0x1953: 0x000a, 0x1954: 0x000a, 0x1955: 0x000a, 0x1956: 0x000a, 0x1957: 0x000a,\n\t0x1958: 0x000a, 0x1959: 0x000a, 0x195a: 0x000a, 0x195b: 0x000a, 0x195c: 0x000a, 0x195d: 0x000a,\n\t0x195e: 0x000a, 0x195f: 0x000a, 0x1960: 0x000a, 0x1961: 0x000a, 0x1962: 0x000a, 0x1963: 0x000a,\n\t0x1964: 0x000a, 0x1965: 0x000a, 0x1966: 0x000a, 0x1967: 0x000a, 0x1968: 0x000a, 0x1969: 0x000a,\n\t0x196a: 0x000a, 0x196b: 0x000a, 0x196c: 0x000a, 0x196d: 0x000a, 0x196e: 0x000a, 0x196f: 0x000a,\n\t0x1970: 0x000a, 0x1971: 0x000a, 0x1972: 0x000a, 0x1973: 0x000a,\n\t0x1976: 0x000a, 0x1977: 0x000a, 0x1978: 0x000a, 0x1979: 0x000a, 0x197a: 0x000a, 0x197b: 0x000a,\n\t0x197c: 0x000a, 0x197d: 0x000a, 0x197e: 0x000a, 0x197f: 0x000a,\n\t// Block 0x66, offset 0x1980\n\t0x1980: 0x000a, 0x1981: 0x000a, 0x1982: 0x000a, 0x1983: 0x000a, 0x1984: 0x000a, 0x1985: 0x000a,\n\t0x1986: 0x000a, 0x1987: 0x000a, 0x1988: 0x000a, 0x1989: 0x000a, 0x198a: 0x000a, 0x198b: 0x000a,\n\t0x198c: 0x000a, 0x198d: 0x000a, 0x198e: 0x000a, 0x198f: 0x000a, 0x1990: 0x000a, 0x1991: 0x000a,\n\t0x1992: 0x000a, 0x1993: 0x000a, 0x1994: 0x000a, 0x1995: 0x000a,\n\t0x1998: 0x000a, 0x1999: 0x000a, 0x199a: 0x000a, 0x199b: 0x000a, 0x199c: 0x000a, 0x199d: 0x000a,\n\t0x199e: 0x000a, 0x199f: 0x000a, 0x19a0: 0x000a, 0x19a1: 0x000a, 0x19a2: 0x000a, 0x19a3: 0x000a,\n\t0x19a4: 0x000a, 0x19a5: 0x000a, 0x19a6: 0x000a, 0x19a7: 0x000a, 0x19a8: 0x000a, 0x19a9: 0x000a,\n\t0x19aa: 0x000a, 0x19ab: 0x000a, 0x19ac: 0x000a, 0x19ad: 0x000a, 0x19ae: 0x000a, 0x19af: 0x000a,\n\t0x19b0: 0x000a, 0x19b1: 0x000a, 0x19b2: 0x000a, 0x19b3: 0x000a, 0x19b4: 0x000a, 0x19b5: 0x000a,\n\t0x19b6: 0x000a, 0x19b7: 0x000a, 0x19b8: 0x000a, 0x19b9: 0x000a,\n\t0x19bd: 0x000a, 0x19be: 0x000a, 0x19bf: 0x000a,\n\t// Block 0x67, offset 0x19c0\n\t0x19c0: 0x000a, 0x19c1: 0x000a, 0x19c2: 0x000a, 0x19c3: 0x000a, 0x19c4: 0x000a, 0x19c5: 0x000a,\n\t0x19c6: 0x000a, 0x19c7: 0x000a, 0x19c8: 0x000a, 0x19ca: 0x000a, 0x19cb: 0x000a,\n\t0x19cc: 0x000a, 0x19cd: 0x000a, 0x19ce: 0x000a, 0x19cf: 0x000a, 0x19d0: 0x000a, 0x19d1: 0x000a,\n\t0x19ec: 0x000a, 0x19ed: 0x000a, 0x19ee: 0x000a, 0x19ef: 0x000a,\n\t// Block 0x68, offset 0x1a00\n\t0x1a25: 0x000a, 0x1a26: 0x000a, 0x1a27: 0x000a, 0x1a28: 0x000a, 0x1a29: 0x000a,\n\t0x1a2a: 0x000a, 0x1a2f: 0x000c,\n\t0x1a30: 0x000c, 0x1a31: 0x000c,\n\t0x1a39: 0x000a, 0x1a3a: 0x000a, 0x1a3b: 0x000a,\n\t0x1a3c: 0x000a, 0x1a3d: 0x000a, 0x1a3e: 0x000a, 0x1a3f: 0x000a,\n\t// Block 0x69, offset 0x1a40\n\t0x1a7f: 0x000c,\n\t// Block 0x6a, offset 0x1a80\n\t0x1aa0: 0x000c, 0x1aa1: 0x000c, 0x1aa2: 0x000c, 0x1aa3: 0x000c,\n\t0x1aa4: 0x000c, 0x1aa5: 0x000c, 0x1aa6: 0x000c, 0x1aa7: 0x000c, 0x1aa8: 0x000c, 0x1aa9: 0x000c,\n\t0x1aaa: 0x000c, 0x1aab: 0x000c, 0x1aac: 0x000c, 0x1aad: 0x000c, 0x1aae: 0x000c, 0x1aaf: 0x000c,\n\t0x1ab0: 0x000c, 0x1ab1: 0x000c, 0x1ab2: 0x000c, 0x1ab3: 0x000c, 0x1ab4: 0x000c, 0x1ab5: 0x000c,\n\t0x1ab6: 0x000c, 0x1ab7: 0x000c, 0x1ab8: 0x000c, 0x1ab9: 0x000c, 0x1aba: 0x000c, 0x1abb: 0x000c,\n\t0x1abc: 0x000c, 0x1abd: 0x000c, 0x1abe: 0x000c, 0x1abf: 0x000c,\n\t// Block 0x6b, offset 0x1ac0\n\t0x1ac0: 0x000a, 0x1ac1: 0x000a, 0x1ac2: 0x000a, 0x1ac3: 0x000a, 0x1ac4: 0x000a, 0x1ac5: 0x000a,\n\t0x1ac6: 0x000a, 0x1ac7: 0x000a, 0x1ac8: 0x000a, 0x1ac9: 0x000a, 0x1aca: 0x000a, 0x1acb: 0x000a,\n\t0x1acc: 0x000a, 0x1acd: 0x000a, 0x1ace: 0x000a, 0x1acf: 0x000a, 0x1ad0: 0x000a, 0x1ad1: 0x000a,\n\t0x1ad2: 0x000a, 0x1ad3: 0x000a, 0x1ad4: 0x000a, 0x1ad5: 0x000a, 0x1ad6: 0x000a, 0x1ad7: 0x000a,\n\t0x1ad8: 0x000a, 0x1ad9: 0x000a, 0x1ada: 0x000a, 0x1adb: 0x000a, 0x1adc: 0x000a, 0x1add: 0x000a,\n\t0x1ade: 0x000a, 0x1adf: 0x000a, 0x1ae0: 0x000a, 0x1ae1: 0x000a, 0x1ae2: 0x003a, 0x1ae3: 0x002a,\n\t0x1ae4: 0x003a, 0x1ae5: 0x002a, 0x1ae6: 0x003a, 0x1ae7: 0x002a, 0x1ae8: 0x003a, 0x1ae9: 0x002a,\n\t0x1aea: 0x000a, 0x1aeb: 0x000a, 0x1aec: 0x000a, 0x1aed: 0x000a, 0x1aee: 0x000a, 0x1aef: 0x000a,\n\t0x1af0: 0x000a, 0x1af1: 0x000a, 0x1af2: 0x000a, 0x1af3: 0x000a, 0x1af4: 0x000a, 0x1af5: 0x000a,\n\t0x1af6: 0x000a, 0x1af7: 0x000a, 0x1af8: 0x000a, 0x1af9: 0x000a, 0x1afa: 0x000a, 0x1afb: 0x000a,\n\t0x1afc: 0x000a, 0x1afd: 0x000a, 0x1afe: 0x000a, 0x1aff: 0x000a,\n\t// Block 0x6c, offset 0x1b00\n\t0x1b00: 0x000a, 0x1b01: 0x000a, 0x1b02: 0x000a, 0x1b03: 0x000a, 0x1b04: 0x000a,\n\t// Block 0x6d, offset 0x1b40\n\t0x1b40: 0x000a, 0x1b41: 0x000a, 0x1b42: 0x000a, 0x1b43: 0x000a, 0x1b44: 0x000a, 0x1b45: 0x000a,\n\t0x1b46: 0x000a, 0x1b47: 0x000a, 0x1b48: 0x000a, 0x1b49: 0x000a, 0x1b4a: 0x000a, 0x1b4b: 0x000a,\n\t0x1b4c: 0x000a, 0x1b4d: 0x000a, 0x1b4e: 0x000a, 0x1b4f: 0x000a, 0x1b50: 0x000a, 0x1b51: 0x000a,\n\t0x1b52: 0x000a, 0x1b53: 0x000a, 0x1b54: 0x000a, 0x1b55: 0x000a, 0x1b56: 0x000a, 0x1b57: 0x000a,\n\t0x1b58: 0x000a, 0x1b59: 0x000a, 0x1b5b: 0x000a, 0x1b5c: 0x000a, 0x1b5d: 0x000a,\n\t0x1b5e: 0x000a, 0x1b5f: 0x000a, 0x1b60: 0x000a, 0x1b61: 0x000a, 0x1b62: 0x000a, 0x1b63: 0x000a,\n\t0x1b64: 0x000a, 0x1b65: 0x000a, 0x1b66: 0x000a, 0x1b67: 0x000a, 0x1b68: 0x000a, 0x1b69: 0x000a,\n\t0x1b6a: 0x000a, 0x1b6b: 0x000a, 0x1b6c: 0x000a, 0x1b6d: 0x000a, 0x1b6e: 0x000a, 0x1b6f: 0x000a,\n\t0x1b70: 0x000a, 0x1b71: 0x000a, 0x1b72: 0x000a, 0x1b73: 0x000a, 0x1b74: 0x000a, 0x1b75: 0x000a,\n\t0x1b76: 0x000a, 0x1b77: 0x000a, 0x1b78: 0x000a, 0x1b79: 0x000a, 0x1b7a: 0x000a, 0x1b7b: 0x000a,\n\t0x1b7c: 0x000a, 0x1b7d: 0x000a, 0x1b7e: 0x000a, 0x1b7f: 0x000a,\n\t// Block 0x6e, offset 0x1b80\n\t0x1b80: 0x000a, 0x1b81: 0x000a, 0x1b82: 0x000a, 0x1b83: 0x000a, 0x1b84: 0x000a, 0x1b85: 0x000a,\n\t0x1b86: 0x000a, 0x1b87: 0x000a, 0x1b88: 0x000a, 0x1b89: 0x000a, 0x1b8a: 0x000a, 0x1b8b: 0x000a,\n\t0x1b8c: 0x000a, 0x1b8d: 0x000a, 0x1b8e: 0x000a, 0x1b8f: 0x000a, 0x1b90: 0x000a, 0x1b91: 0x000a,\n\t0x1b92: 0x000a, 0x1b93: 0x000a, 0x1b94: 0x000a, 0x1b95: 0x000a, 0x1b96: 0x000a, 0x1b97: 0x000a,\n\t0x1b98: 0x000a, 0x1b99: 0x000a, 0x1b9a: 0x000a, 0x1b9b: 0x000a, 0x1b9c: 0x000a, 0x1b9d: 0x000a,\n\t0x1b9e: 0x000a, 0x1b9f: 0x000a, 0x1ba0: 0x000a, 0x1ba1: 0x000a, 0x1ba2: 0x000a, 0x1ba3: 0x000a,\n\t0x1ba4: 0x000a, 0x1ba5: 0x000a, 0x1ba6: 0x000a, 0x1ba7: 0x000a, 0x1ba8: 0x000a, 0x1ba9: 0x000a,\n\t0x1baa: 0x000a, 0x1bab: 0x000a, 0x1bac: 0x000a, 0x1bad: 0x000a, 0x1bae: 0x000a, 0x1baf: 0x000a,\n\t0x1bb0: 0x000a, 0x1bb1: 0x000a, 0x1bb2: 0x000a, 0x1bb3: 0x000a,\n\t// Block 0x6f, offset 0x1bc0\n\t0x1bc0: 0x000a, 0x1bc1: 0x000a, 0x1bc2: 0x000a, 0x1bc3: 0x000a, 0x1bc4: 0x000a, 0x1bc5: 0x000a,\n\t0x1bc6: 0x000a, 0x1bc7: 0x000a, 0x1bc8: 0x000a, 0x1bc9: 0x000a, 0x1bca: 0x000a, 0x1bcb: 0x000a,\n\t0x1bcc: 0x000a, 0x1bcd: 0x000a, 0x1bce: 0x000a, 0x1bcf: 0x000a, 0x1bd0: 0x000a, 0x1bd1: 0x000a,\n\t0x1bd2: 0x000a, 0x1bd3: 0x000a, 0x1bd4: 0x000a, 0x1bd5: 0x000a,\n\t0x1bf0: 0x000a, 0x1bf1: 0x000a, 0x1bf2: 0x000a, 0x1bf3: 0x000a, 0x1bf4: 0x000a, 0x1bf5: 0x000a,\n\t0x1bf6: 0x000a, 0x1bf7: 0x000a, 0x1bf8: 0x000a, 0x1bf9: 0x000a, 0x1bfa: 0x000a, 0x1bfb: 0x000a,\n\t// Block 0x70, offset 0x1c00\n\t0x1c00: 0x0009, 0x1c01: 0x000a, 0x1c02: 0x000a, 0x1c03: 0x000a, 0x1c04: 0x000a,\n\t0x1c08: 0x003a, 0x1c09: 0x002a, 0x1c0a: 0x003a, 0x1c0b: 0x002a,\n\t0x1c0c: 0x003a, 0x1c0d: 0x002a, 0x1c0e: 0x003a, 0x1c0f: 0x002a, 0x1c10: 0x003a, 0x1c11: 0x002a,\n\t0x1c12: 0x000a, 0x1c13: 0x000a, 0x1c14: 0x003a, 0x1c15: 0x002a, 0x1c16: 0x003a, 0x1c17: 0x002a,\n\t0x1c18: 0x003a, 0x1c19: 0x002a, 0x1c1a: 0x003a, 0x1c1b: 0x002a, 0x1c1c: 0x000a, 0x1c1d: 0x000a,\n\t0x1c1e: 0x000a, 0x1c1f: 0x000a, 0x1c20: 0x000a,\n\t0x1c2a: 0x000c, 0x1c2b: 0x000c, 0x1c2c: 0x000c, 0x1c2d: 0x000c,\n\t0x1c30: 0x000a,\n\t0x1c36: 0x000a, 0x1c37: 0x000a,\n\t0x1c3d: 0x000a, 0x1c3e: 0x000a, 0x1c3f: 0x000a,\n\t// Block 0x71, offset 0x1c40\n\t0x1c59: 0x000c, 0x1c5a: 0x000c, 0x1c5b: 0x000a, 0x1c5c: 0x000a,\n\t0x1c60: 0x000a,\n\t// Block 0x72, offset 0x1c80\n\t0x1cbb: 0x000a,\n\t// Block 0x73, offset 0x1cc0\n\t0x1cc0: 0x000a, 0x1cc1: 0x000a, 0x1cc2: 0x000a, 0x1cc3: 0x000a, 0x1cc4: 0x000a, 0x1cc5: 0x000a,\n\t0x1cc6: 0x000a, 0x1cc7: 0x000a, 0x1cc8: 0x000a, 0x1cc9: 0x000a, 0x1cca: 0x000a, 0x1ccb: 0x000a,\n\t0x1ccc: 0x000a, 0x1ccd: 0x000a, 0x1cce: 0x000a, 0x1ccf: 0x000a, 0x1cd0: 0x000a, 0x1cd1: 0x000a,\n\t0x1cd2: 0x000a, 0x1cd3: 0x000a, 0x1cd4: 0x000a, 0x1cd5: 0x000a, 0x1cd6: 0x000a, 0x1cd7: 0x000a,\n\t0x1cd8: 0x000a, 0x1cd9: 0x000a, 0x1cda: 0x000a, 0x1cdb: 0x000a, 0x1cdc: 0x000a, 0x1cdd: 0x000a,\n\t0x1cde: 0x000a, 0x1cdf: 0x000a, 0x1ce0: 0x000a, 0x1ce1: 0x000a, 0x1ce2: 0x000a, 0x1ce3: 0x000a,\n\t// Block 0x74, offset 0x1d00\n\t0x1d1d: 0x000a,\n\t0x1d1e: 0x000a,\n\t// Block 0x75, offset 0x1d40\n\t0x1d50: 0x000a, 0x1d51: 0x000a,\n\t0x1d52: 0x000a, 0x1d53: 0x000a, 0x1d54: 0x000a, 0x1d55: 0x000a, 0x1d56: 0x000a, 0x1d57: 0x000a,\n\t0x1d58: 0x000a, 0x1d59: 0x000a, 0x1d5a: 0x000a, 0x1d5b: 0x000a, 0x1d5c: 0x000a, 0x1d5d: 0x000a,\n\t0x1d5e: 0x000a, 0x1d5f: 0x000a,\n\t0x1d7c: 0x000a, 0x1d7d: 0x000a, 0x1d7e: 0x000a,\n\t// Block 0x76, offset 0x1d80\n\t0x1db1: 0x000a, 0x1db2: 0x000a, 0x1db3: 0x000a, 0x1db4: 0x000a, 0x1db5: 0x000a,\n\t0x1db6: 0x000a, 0x1db7: 0x000a, 0x1db8: 0x000a, 0x1db9: 0x000a, 0x1dba: 0x000a, 0x1dbb: 0x000a,\n\t0x1dbc: 0x000a, 0x1dbd: 0x000a, 0x1dbe: 0x000a, 0x1dbf: 0x000a,\n\t// Block 0x77, offset 0x1dc0\n\t0x1dcc: 0x000a, 0x1dcd: 0x000a, 0x1dce: 0x000a, 0x1dcf: 0x000a,\n\t// Block 0x78, offset 0x1e00\n\t0x1e37: 0x000a, 0x1e38: 0x000a, 0x1e39: 0x000a, 0x1e3a: 0x000a,\n\t// Block 0x79, offset 0x1e40\n\t0x1e5e: 0x000a, 0x1e5f: 0x000a,\n\t0x1e7f: 0x000a,\n\t// Block 0x7a, offset 0x1e80\n\t0x1e90: 0x000a, 0x1e91: 0x000a,\n\t0x1e92: 0x000a, 0x1e93: 0x000a, 0x1e94: 0x000a, 0x1e95: 0x000a, 0x1e96: 0x000a, 0x1e97: 0x000a,\n\t0x1e98: 0x000a, 0x1e99: 0x000a, 0x1e9a: 0x000a, 0x1e9b: 0x000a, 0x1e9c: 0x000a, 0x1e9d: 0x000a,\n\t0x1e9e: 0x000a, 0x1e9f: 0x000a, 0x1ea0: 0x000a, 0x1ea1: 0x000a, 0x1ea2: 0x000a, 0x1ea3: 0x000a,\n\t0x1ea4: 0x000a, 0x1ea5: 0x000a, 0x1ea6: 0x000a, 0x1ea7: 0x000a, 0x1ea8: 0x000a, 0x1ea9: 0x000a,\n\t0x1eaa: 0x000a, 0x1eab: 0x000a, 0x1eac: 0x000a, 0x1ead: 0x000a, 0x1eae: 0x000a, 0x1eaf: 0x000a,\n\t0x1eb0: 0x000a, 0x1eb1: 0x000a, 0x1eb2: 0x000a, 0x1eb3: 0x000a, 0x1eb4: 0x000a, 0x1eb5: 0x000a,\n\t0x1eb6: 0x000a, 0x1eb7: 0x000a, 0x1eb8: 0x000a, 0x1eb9: 0x000a, 0x1eba: 0x000a, 0x1ebb: 0x000a,\n\t0x1ebc: 0x000a, 0x1ebd: 0x000a, 0x1ebe: 0x000a, 0x1ebf: 0x000a,\n\t// Block 0x7b, offset 0x1ec0\n\t0x1ec0: 0x000a, 0x1ec1: 0x000a, 0x1ec2: 0x000a, 0x1ec3: 0x000a, 0x1ec4: 0x000a, 0x1ec5: 0x000a,\n\t0x1ec6: 0x000a,\n\t// Block 0x7c, offset 0x1f00\n\t0x1f0d: 0x000a, 0x1f0e: 0x000a, 0x1f0f: 0x000a,\n\t// Block 0x7d, offset 0x1f40\n\t0x1f6f: 0x000c,\n\t0x1f70: 0x000c, 0x1f71: 0x000c, 0x1f72: 0x000c, 0x1f73: 0x000a, 0x1f74: 0x000c, 0x1f75: 0x000c,\n\t0x1f76: 0x000c, 0x1f77: 0x000c, 0x1f78: 0x000c, 0x1f79: 0x000c, 0x1f7a: 0x000c, 0x1f7b: 0x000c,\n\t0x1f7c: 0x000c, 0x1f7d: 0x000c, 0x1f7e: 0x000a, 0x1f7f: 0x000a,\n\t// Block 0x7e, offset 0x1f80\n\t0x1f9e: 0x000c, 0x1f9f: 0x000c,\n\t// Block 0x7f, offset 0x1fc0\n\t0x1ff0: 0x000c, 0x1ff1: 0x000c,\n\t// Block 0x80, offset 0x2000\n\t0x2000: 0x000a, 0x2001: 0x000a, 0x2002: 0x000a, 0x2003: 0x000a, 0x2004: 0x000a, 0x2005: 0x000a,\n\t0x2006: 0x000a, 0x2007: 0x000a, 0x2008: 0x000a, 0x2009: 0x000a, 0x200a: 0x000a, 0x200b: 0x000a,\n\t0x200c: 0x000a, 0x200d: 0x000a, 0x200e: 0x000a, 0x200f: 0x000a, 0x2010: 0x000a, 0x2011: 0x000a,\n\t0x2012: 0x000a, 0x2013: 0x000a, 0x2014: 0x000a, 0x2015: 0x000a, 0x2016: 0x000a, 0x2017: 0x000a,\n\t0x2018: 0x000a, 0x2019: 0x000a, 0x201a: 0x000a, 0x201b: 0x000a, 0x201c: 0x000a, 0x201d: 0x000a,\n\t0x201e: 0x000a, 0x201f: 0x000a, 0x2020: 0x000a, 0x2021: 0x000a,\n\t// Block 0x81, offset 0x2040\n\t0x2048: 0x000a,\n\t// Block 0x82, offset 0x2080\n\t0x2082: 0x000c,\n\t0x2086: 0x000c, 0x208b: 0x000c,\n\t0x20a5: 0x000c, 0x20a6: 0x000c, 0x20a8: 0x000a, 0x20a9: 0x000a,\n\t0x20aa: 0x000a, 0x20ab: 0x000a,\n\t0x20b8: 0x0004, 0x20b9: 0x0004,\n\t// Block 0x83, offset 0x20c0\n\t0x20f4: 0x000a, 0x20f5: 0x000a,\n\t0x20f6: 0x000a, 0x20f7: 0x000a,\n\t// Block 0x84, offset 0x2100\n\t0x2104: 0x000c, 0x2105: 0x000c,\n\t0x2120: 0x000c, 0x2121: 0x000c, 0x2122: 0x000c, 0x2123: 0x000c,\n\t0x2124: 0x000c, 0x2125: 0x000c, 0x2126: 0x000c, 0x2127: 0x000c, 0x2128: 0x000c, 0x2129: 0x000c,\n\t0x212a: 0x000c, 0x212b: 0x000c, 0x212c: 0x000c, 0x212d: 0x000c, 0x212e: 0x000c, 0x212f: 0x000c,\n\t0x2130: 0x000c, 0x2131: 0x000c,\n\t// Block 0x85, offset 0x2140\n\t0x2166: 0x000c, 0x2167: 0x000c, 0x2168: 0x000c, 0x2169: 0x000c,\n\t0x216a: 0x000c, 0x216b: 0x000c, 0x216c: 0x000c, 0x216d: 0x000c,\n\t// Block 0x86, offset 0x2180\n\t0x2187: 0x000c, 0x2188: 0x000c, 0x2189: 0x000c, 0x218a: 0x000c, 0x218b: 0x000c,\n\t0x218c: 0x000c, 0x218d: 0x000c, 0x218e: 0x000c, 0x218f: 0x000c, 0x2190: 0x000c, 0x2191: 0x000c,\n\t// Block 0x87, offset 0x21c0\n\t0x21c0: 0x000c, 0x21c1: 0x000c, 0x21c2: 0x000c,\n\t0x21f3: 0x000c,\n\t0x21f6: 0x000c, 0x21f7: 0x000c, 0x21f8: 0x000c, 0x21f9: 0x000c,\n\t0x21fc: 0x000c,\n\t// Block 0x88, offset 0x2200\n\t0x2225: 0x000c,\n\t// Block 0x89, offset 0x2240\n\t0x2269: 0x000c,\n\t0x226a: 0x000c, 0x226b: 0x000c, 0x226c: 0x000c, 0x226d: 0x000c, 0x226e: 0x000c,\n\t0x2271: 0x000c, 0x2272: 0x000c, 0x2275: 0x000c,\n\t0x2276: 0x000c,\n\t// Block 0x8a, offset 0x2280\n\t0x2283: 0x000c,\n\t0x228c: 0x000c,\n\t0x22bc: 0x000c,\n\t// Block 0x8b, offset 0x22c0\n\t0x22f0: 0x000c, 0x22f2: 0x000c, 0x22f3: 0x000c, 0x22f4: 0x000c,\n\t0x22f7: 0x000c, 0x22f8: 0x000c,\n\t0x22fe: 0x000c, 0x22ff: 0x000c,\n\t// Block 0x8c, offset 0x2300\n\t0x2301: 0x000c,\n\t0x232c: 0x000c, 0x232d: 0x000c,\n\t0x2336: 0x000c,\n\t// Block 0x8d, offset 0x2340\n\t0x2365: 0x000c, 0x2368: 0x000c,\n\t0x236d: 0x000c,\n\t// Block 0x8e, offset 0x2380\n\t0x239d: 0x0001,\n\t0x239e: 0x000c, 0x239f: 0x0001, 0x23a0: 0x0001, 0x23a1: 0x0001, 0x23a2: 0x0001, 0x23a3: 0x0001,\n\t0x23a4: 0x0001, 0x23a5: 0x0001, 0x23a6: 0x0001, 0x23a7: 0x0001, 0x23a8: 0x0001, 0x23a9: 0x0003,\n\t0x23aa: 0x0001, 0x23ab: 0x0001, 0x23ac: 0x0001, 0x23ad: 0x0001, 0x23ae: 0x0001, 0x23af: 0x0001,\n\t0x23b0: 0x0001, 0x23b1: 0x0001, 0x23b2: 0x0001, 0x23b3: 0x0001, 0x23b4: 0x0001, 0x23b5: 0x0001,\n\t0x23b6: 0x0001, 0x23b7: 0x0001, 0x23b8: 0x0001, 0x23b9: 0x0001, 0x23ba: 0x0001, 0x23bb: 0x0001,\n\t0x23bc: 0x0001, 0x23bd: 0x0001, 0x23be: 0x0001, 0x23bf: 0x0001,\n\t// Block 0x8f, offset 0x23c0\n\t0x23c0: 0x0001, 0x23c1: 0x0001, 0x23c2: 0x0001, 0x23c3: 0x0001, 0x23c4: 0x0001, 0x23c5: 0x0001,\n\t0x23c6: 0x0001, 0x23c7: 0x0001, 0x23c8: 0x0001, 0x23c9: 0x0001, 0x23ca: 0x0001, 0x23cb: 0x0001,\n\t0x23cc: 0x0001, 0x23cd: 0x0001, 0x23ce: 0x0001, 0x23cf: 0x0001, 0x23d0: 0x000d, 0x23d1: 0x000d,\n\t0x23d2: 0x000d, 0x23d3: 0x000d, 0x23d4: 0x000d, 0x23d5: 0x000d, 0x23d6: 0x000d, 0x23d7: 0x000d,\n\t0x23d8: 0x000d, 0x23d9: 0x000d, 0x23da: 0x000d, 0x23db: 0x000d, 0x23dc: 0x000d, 0x23dd: 0x000d,\n\t0x23de: 0x000d, 0x23df: 0x000d, 0x23e0: 0x000d, 0x23e1: 0x000d, 0x23e2: 0x000d, 0x23e3: 0x000d,\n\t0x23e4: 0x000d, 0x23e5: 0x000d, 0x23e6: 0x000d, 0x23e7: 0x000d, 0x23e8: 0x000d, 0x23e9: 0x000d,\n\t0x23ea: 0x000d, 0x23eb: 0x000d, 0x23ec: 0x000d, 0x23ed: 0x000d, 0x23ee: 0x000d, 0x23ef: 0x000d,\n\t0x23f0: 0x000d, 0x23f1: 0x000d, 0x23f2: 0x000d, 0x23f3: 0x000d, 0x23f4: 0x000d, 0x23f5: 0x000d,\n\t0x23f6: 0x000d, 0x23f7: 0x000d, 0x23f8: 0x000d, 0x23f9: 0x000d, 0x23fa: 0x000d, 0x23fb: 0x000d,\n\t0x23fc: 0x000d, 0x23fd: 0x000d, 0x23fe: 0x000d, 0x23ff: 0x000d,\n\t// Block 0x90, offset 0x2400\n\t0x2400: 0x000d, 0x2401: 0x000d, 0x2402: 0x000d, 0x2403: 0x000d, 0x2404: 0x000d, 0x2405: 0x000d,\n\t0x2406: 0x000d, 0x2407: 0x000d, 0x2408: 0x000d, 0x2409: 0x000d, 0x240a: 0x000d, 0x240b: 0x000d,\n\t0x240c: 0x000d, 0x240d: 0x000d, 0x240e: 0x000d, 0x240f: 0x000d, 0x2410: 0x000d, 0x2411: 0x000d,\n\t0x2412: 0x000d, 0x2413: 0x000d, 0x2414: 0x000d, 0x2415: 0x000d, 0x2416: 0x000d, 0x2417: 0x000d,\n\t0x2418: 0x000d, 0x2419: 0x000d, 0x241a: 0x000d, 0x241b: 0x000d, 0x241c: 0x000d, 0x241d: 0x000d,\n\t0x241e: 0x000d, 0x241f: 0x000d, 0x2420: 0x000d, 0x2421: 0x000d, 0x2422: 0x000d, 0x2423: 0x000d,\n\t0x2424: 0x000d, 0x2425: 0x000d, 0x2426: 0x000d, 0x2427: 0x000d, 0x2428: 0x000d, 0x2429: 0x000d,\n\t0x242a: 0x000d, 0x242b: 0x000d, 0x242c: 0x000d, 0x242d: 0x000d, 0x242e: 0x000d, 0x242f: 0x000d,\n\t0x2430: 0x000d, 0x2431: 0x000d, 0x2432: 0x000d, 0x2433: 0x000d, 0x2434: 0x000d, 0x2435: 0x000d,\n\t0x2436: 0x000d, 0x2437: 0x000d, 0x2438: 0x000d, 0x2439: 0x000d, 0x243a: 0x000d, 0x243b: 0x000d,\n\t0x243c: 0x000d, 0x243d: 0x000d, 0x243e: 0x000a, 0x243f: 0x000a,\n\t// Block 0x91, offset 0x2440\n\t0x2440: 0x000d, 0x2441: 0x000d, 0x2442: 0x000d, 0x2443: 0x000d, 0x2444: 0x000d, 0x2445: 0x000d,\n\t0x2446: 0x000d, 0x2447: 0x000d, 0x2448: 0x000d, 0x2449: 0x000d, 0x244a: 0x000d, 0x244b: 0x000d,\n\t0x244c: 0x000d, 0x244d: 0x000d, 0x244e: 0x000d, 0x244f: 0x000d, 0x2450: 0x000b, 0x2451: 0x000b,\n\t0x2452: 0x000b, 0x2453: 0x000b, 0x2454: 0x000b, 0x2455: 0x000b, 0x2456: 0x000b, 0x2457: 0x000b,\n\t0x2458: 0x000b, 0x2459: 0x000b, 0x245a: 0x000b, 0x245b: 0x000b, 0x245c: 0x000b, 0x245d: 0x000b,\n\t0x245e: 0x000b, 0x245f: 0x000b, 0x2460: 0x000b, 0x2461: 0x000b, 0x2462: 0x000b, 0x2463: 0x000b,\n\t0x2464: 0x000b, 0x2465: 0x000b, 0x2466: 0x000b, 0x2467: 0x000b, 0x2468: 0x000b, 0x2469: 0x000b,\n\t0x246a: 0x000b, 0x246b: 0x000b, 0x246c: 0x000b, 0x246d: 0x000b, 0x246e: 0x000b, 0x246f: 0x000b,\n\t0x2470: 0x000d, 0x2471: 0x000d, 0x2472: 0x000d, 0x2473: 0x000d, 0x2474: 0x000d, 0x2475: 0x000d,\n\t0x2476: 0x000d, 0x2477: 0x000d, 0x2478: 0x000d, 0x2479: 0x000d, 0x247a: 0x000d, 0x247b: 0x000d,\n\t0x247c: 0x000d, 0x247d: 0x000a, 0x247e: 0x000d, 0x247f: 0x000d,\n\t// Block 0x92, offset 0x2480\n\t0x2480: 0x000c, 0x2481: 0x000c, 0x2482: 0x000c, 0x2483: 0x000c, 0x2484: 0x000c, 0x2485: 0x000c,\n\t0x2486: 0x000c, 0x2487: 0x000c, 0x2488: 0x000c, 0x2489: 0x000c, 0x248a: 0x000c, 0x248b: 0x000c,\n\t0x248c: 0x000c, 0x248d: 0x000c, 0x248e: 0x000c, 0x248f: 0x000c, 0x2490: 0x000a, 0x2491: 0x000a,\n\t0x2492: 0x000a, 0x2493: 0x000a, 0x2494: 0x000a, 0x2495: 0x000a, 0x2496: 0x000a, 0x2497: 0x000a,\n\t0x2498: 0x000a, 0x2499: 0x000a,\n\t0x24a0: 0x000c, 0x24a1: 0x000c, 0x24a2: 0x000c, 0x24a3: 0x000c,\n\t0x24a4: 0x000c, 0x24a5: 0x000c, 0x24a6: 0x000c, 0x24a7: 0x000c, 0x24a8: 0x000c, 0x24a9: 0x000c,\n\t0x24aa: 0x000c, 0x24ab: 0x000c, 0x24ac: 0x000c, 0x24ad: 0x000c, 0x24ae: 0x000c, 0x24af: 0x000c,\n\t0x24b0: 0x000a, 0x24b1: 0x000a, 0x24b2: 0x000a, 0x24b3: 0x000a, 0x24b4: 0x000a, 0x24b5: 0x000a,\n\t0x24b6: 0x000a, 0x24b7: 0x000a, 0x24b8: 0x000a, 0x24b9: 0x000a, 0x24ba: 0x000a, 0x24bb: 0x000a,\n\t0x24bc: 0x000a, 0x24bd: 0x000a, 0x24be: 0x000a, 0x24bf: 0x000a,\n\t// Block 0x93, offset 0x24c0\n\t0x24c0: 0x000a, 0x24c1: 0x000a, 0x24c2: 0x000a, 0x24c3: 0x000a, 0x24c4: 0x000a, 0x24c5: 0x000a,\n\t0x24c6: 0x000a, 0x24c7: 0x000a, 0x24c8: 0x000a, 0x24c9: 0x000a, 0x24ca: 0x000a, 0x24cb: 0x000a,\n\t0x24cc: 0x000a, 0x24cd: 0x000a, 0x24ce: 0x000a, 0x24cf: 0x000a, 0x24d0: 0x0006, 0x24d1: 0x000a,\n\t0x24d2: 0x0006, 0x24d4: 0x000a, 0x24d5: 0x0006, 0x24d6: 0x000a, 0x24d7: 0x000a,\n\t0x24d8: 0x000a, 0x24d9: 0x009a, 0x24da: 0x008a, 0x24db: 0x007a, 0x24dc: 0x006a, 0x24dd: 0x009a,\n\t0x24de: 0x008a, 0x24df: 0x0004, 0x24e0: 0x000a, 0x24e1: 0x000a, 0x24e2: 0x0003, 0x24e3: 0x0003,\n\t0x24e4: 0x000a, 0x24e5: 0x000a, 0x24e6: 0x000a, 0x24e8: 0x000a, 0x24e9: 0x0004,\n\t0x24ea: 0x0004, 0x24eb: 0x000a,\n\t0x24f0: 0x000d, 0x24f1: 0x000d, 0x24f2: 0x000d, 0x24f3: 0x000d, 0x24f4: 0x000d, 0x24f5: 0x000d,\n\t0x24f6: 0x000d, 0x24f7: 0x000d, 0x24f8: 0x000d, 0x24f9: 0x000d, 0x24fa: 0x000d, 0x24fb: 0x000d,\n\t0x24fc: 0x000d, 0x24fd: 0x000d, 0x24fe: 0x000d, 0x24ff: 0x000d,\n\t// Block 0x94, offset 0x2500\n\t0x2500: 0x000d, 0x2501: 0x000d, 0x2502: 0x000d, 0x2503: 0x000d, 0x2504: 0x000d, 0x2505: 0x000d,\n\t0x2506: 0x000d, 0x2507: 0x000d, 0x2508: 0x000d, 0x2509: 0x000d, 0x250a: 0x000d, 0x250b: 0x000d,\n\t0x250c: 0x000d, 0x250d: 0x000d, 0x250e: 0x000d, 0x250f: 0x000d, 0x2510: 0x000d, 0x2511: 0x000d,\n\t0x2512: 0x000d, 0x2513: 0x000d, 0x2514: 0x000d, 0x2515: 0x000d, 0x2516: 0x000d, 0x2517: 0x000d,\n\t0x2518: 0x000d, 0x2519: 0x000d, 0x251a: 0x000d, 0x251b: 0x000d, 0x251c: 0x000d, 0x251d: 0x000d,\n\t0x251e: 0x000d, 0x251f: 0x000d, 0x2520: 0x000d, 0x2521: 0x000d, 0x2522: 0x000d, 0x2523: 0x000d,\n\t0x2524: 0x000d, 0x2525: 0x000d, 0x2526: 0x000d, 0x2527: 0x000d, 0x2528: 0x000d, 0x2529: 0x000d,\n\t0x252a: 0x000d, 0x252b: 0x000d, 0x252c: 0x000d, 0x252d: 0x000d, 0x252e: 0x000d, 0x252f: 0x000d,\n\t0x2530: 0x000d, 0x2531: 0x000d, 0x2532: 0x000d, 0x2533: 0x000d, 0x2534: 0x000d, 0x2535: 0x000d,\n\t0x2536: 0x000d, 0x2537: 0x000d, 0x2538: 0x000d, 0x2539: 0x000d, 0x253a: 0x000d, 0x253b: 0x000d,\n\t0x253c: 0x000d, 0x253d: 0x000d, 0x253e: 0x000d, 0x253f: 0x000b,\n\t// Block 0x95, offset 0x2540\n\t0x2541: 0x000a, 0x2542: 0x000a, 0x2543: 0x0004, 0x2544: 0x0004, 0x2545: 0x0004,\n\t0x2546: 0x000a, 0x2547: 0x000a, 0x2548: 0x003a, 0x2549: 0x002a, 0x254a: 0x000a, 0x254b: 0x0003,\n\t0x254c: 0x0006, 0x254d: 0x0003, 0x254e: 0x0006, 0x254f: 0x0006, 0x2550: 0x0002, 0x2551: 0x0002,\n\t0x2552: 0x0002, 0x2553: 0x0002, 0x2554: 0x0002, 0x2555: 0x0002, 0x2556: 0x0002, 0x2557: 0x0002,\n\t0x2558: 0x0002, 0x2559: 0x0002, 0x255a: 0x0006, 0x255b: 0x000a, 0x255c: 0x000a, 0x255d: 0x000a,\n\t0x255e: 0x000a, 0x255f: 0x000a, 0x2560: 0x000a,\n\t0x257b: 0x005a,\n\t0x257c: 0x000a, 0x257d: 0x004a, 0x257e: 0x000a, 0x257f: 0x000a,\n\t// Block 0x96, offset 0x2580\n\t0x2580: 0x000a,\n\t0x259b: 0x005a, 0x259c: 0x000a, 0x259d: 0x004a,\n\t0x259e: 0x000a, 0x259f: 0x00fa, 0x25a0: 0x00ea, 0x25a1: 0x000a, 0x25a2: 0x003a, 0x25a3: 0x002a,\n\t0x25a4: 0x000a, 0x25a5: 0x000a,\n\t// Block 0x97, offset 0x25c0\n\t0x25e0: 0x0004, 0x25e1: 0x0004, 0x25e2: 0x000a, 0x25e3: 0x000a,\n\t0x25e4: 0x000a, 0x25e5: 0x0004, 0x25e6: 0x0004, 0x25e8: 0x000a, 0x25e9: 0x000a,\n\t0x25ea: 0x000a, 0x25eb: 0x000a, 0x25ec: 0x000a, 0x25ed: 0x000a, 0x25ee: 0x000a,\n\t0x25f0: 0x000b, 0x25f1: 0x000b, 0x25f2: 0x000b, 0x25f3: 0x000b, 0x25f4: 0x000b, 0x25f5: 0x000b,\n\t0x25f6: 0x000b, 0x25f7: 0x000b, 0x25f8: 0x000b, 0x25f9: 0x000a, 0x25fa: 0x000a, 0x25fb: 0x000a,\n\t0x25fc: 0x000a, 0x25fd: 0x000a, 0x25fe: 0x000b, 0x25ff: 0x000b,\n\t// Block 0x98, offset 0x2600\n\t0x2601: 0x000a,\n\t// Block 0x99, offset 0x2640\n\t0x2640: 0x000a, 0x2641: 0x000a, 0x2642: 0x000a, 0x2643: 0x000a, 0x2644: 0x000a, 0x2645: 0x000a,\n\t0x2646: 0x000a, 0x2647: 0x000a, 0x2648: 0x000a, 0x2649: 0x000a, 0x264a: 0x000a, 0x264b: 0x000a,\n\t0x264c: 0x000a, 0x2650: 0x000a, 0x2651: 0x000a,\n\t0x2652: 0x000a, 0x2653: 0x000a, 0x2654: 0x000a, 0x2655: 0x000a, 0x2656: 0x000a, 0x2657: 0x000a,\n\t0x2658: 0x000a, 0x2659: 0x000a, 0x265a: 0x000a, 0x265b: 0x000a,\n\t0x2660: 0x000a,\n\t// Block 0x9a, offset 0x2680\n\t0x26bd: 0x000c,\n\t// Block 0x9b, offset 0x26c0\n\t0x26e0: 0x000c, 0x26e1: 0x0002, 0x26e2: 0x0002, 0x26e3: 0x0002,\n\t0x26e4: 0x0002, 0x26e5: 0x0002, 0x26e6: 0x0002, 0x26e7: 0x0002, 0x26e8: 0x0002, 0x26e9: 0x0002,\n\t0x26ea: 0x0002, 0x26eb: 0x0002, 0x26ec: 0x0002, 0x26ed: 0x0002, 0x26ee: 0x0002, 0x26ef: 0x0002,\n\t0x26f0: 0x0002, 0x26f1: 0x0002, 0x26f2: 0x0002, 0x26f3: 0x0002, 0x26f4: 0x0002, 0x26f5: 0x0002,\n\t0x26f6: 0x0002, 0x26f7: 0x0002, 0x26f8: 0x0002, 0x26f9: 0x0002, 0x26fa: 0x0002, 0x26fb: 0x0002,\n\t// Block 0x9c, offset 0x2700\n\t0x2736: 0x000c, 0x2737: 0x000c, 0x2738: 0x000c, 0x2739: 0x000c, 0x273a: 0x000c,\n\t// Block 0x9d, offset 0x2740\n\t0x2740: 0x0001, 0x2741: 0x0001, 0x2742: 0x0001, 0x2743: 0x0001, 0x2744: 0x0001, 0x2745: 0x0001,\n\t0x2746: 0x0001, 0x2747: 0x0001, 0x2748: 0x0001, 0x2749: 0x0001, 0x274a: 0x0001, 0x274b: 0x0001,\n\t0x274c: 0x0001, 0x274d: 0x0001, 0x274e: 0x0001, 0x274f: 0x0001, 0x2750: 0x0001, 0x2751: 0x0001,\n\t0x2752: 0x0001, 0x2753: 0x0001, 0x2754: 0x0001, 0x2755: 0x0001, 0x2756: 0x0001, 0x2757: 0x0001,\n\t0x2758: 0x0001, 0x2759: 0x0001, 0x275a: 0x0001, 0x275b: 0x0001, 0x275c: 0x0001, 0x275d: 0x0001,\n\t0x275e: 0x0001, 0x275f: 0x0001, 0x2760: 0x0001, 0x2761: 0x0001, 0x2762: 0x0001, 0x2763: 0x0001,\n\t0x2764: 0x0001, 0x2765: 0x0001, 0x2766: 0x0001, 0x2767: 0x0001, 0x2768: 0x0001, 0x2769: 0x0001,\n\t0x276a: 0x0001, 0x276b: 0x0001, 0x276c: 0x0001, 0x276d: 0x0001, 0x276e: 0x0001, 0x276f: 0x0001,\n\t0x2770: 0x0001, 0x2771: 0x0001, 0x2772: 0x0001, 0x2773: 0x0001, 0x2774: 0x0001, 0x2775: 0x0001,\n\t0x2776: 0x0001, 0x2777: 0x0001, 0x2778: 0x0001, 0x2779: 0x0001, 0x277a: 0x0001, 0x277b: 0x0001,\n\t0x277c: 0x0001, 0x277d: 0x0001, 0x277e: 0x0001, 0x277f: 0x0001,\n\t// Block 0x9e, offset 0x2780\n\t0x2780: 0x0001, 0x2781: 0x0001, 0x2782: 0x0001, 0x2783: 0x0001, 0x2784: 0x0001, 0x2785: 0x0001,\n\t0x2786: 0x0001, 0x2787: 0x0001, 0x2788: 0x0001, 0x2789: 0x0001, 0x278a: 0x0001, 0x278b: 0x0001,\n\t0x278c: 0x0001, 0x278d: 0x0001, 0x278e: 0x0001, 0x278f: 0x0001, 0x2790: 0x0001, 0x2791: 0x0001,\n\t0x2792: 0x0001, 0x2793: 0x0001, 0x2794: 0x0001, 0x2795: 0x0001, 0x2796: 0x0001, 0x2797: 0x0001,\n\t0x2798: 0x0001, 0x2799: 0x0001, 0x279a: 0x0001, 0x279b: 0x0001, 0x279c: 0x0001, 0x279d: 0x0001,\n\t0x279e: 0x0001, 0x279f: 0x000a, 0x27a0: 0x0001, 0x27a1: 0x0001, 0x27a2: 0x0001, 0x27a3: 0x0001,\n\t0x27a4: 0x0001, 0x27a5: 0x0001, 0x27a6: 0x0001, 0x27a7: 0x0001, 0x27a8: 0x0001, 0x27a9: 0x0001,\n\t0x27aa: 0x0001, 0x27ab: 0x0001, 0x27ac: 0x0001, 0x27ad: 0x0001, 0x27ae: 0x0001, 0x27af: 0x0001,\n\t0x27b0: 0x0001, 0x27b1: 0x0001, 0x27b2: 0x0001, 0x27b3: 0x0001, 0x27b4: 0x0001, 0x27b5: 0x0001,\n\t0x27b6: 0x0001, 0x27b7: 0x0001, 0x27b8: 0x0001, 0x27b9: 0x0001, 0x27ba: 0x0001, 0x27bb: 0x0001,\n\t0x27bc: 0x0001, 0x27bd: 0x0001, 0x27be: 0x0001, 0x27bf: 0x0001,\n\t// Block 0x9f, offset 0x27c0\n\t0x27c0: 0x0001, 0x27c1: 0x000c, 0x27c2: 0x000c, 0x27c3: 0x000c, 0x27c4: 0x0001, 0x27c5: 0x000c,\n\t0x27c6: 0x000c, 0x27c7: 0x0001, 0x27c8: 0x0001, 0x27c9: 0x0001, 0x27ca: 0x0001, 0x27cb: 0x0001,\n\t0x27cc: 0x000c, 0x27cd: 0x000c, 0x27ce: 0x000c, 0x27cf: 0x000c, 0x27d0: 0x0001, 0x27d1: 0x0001,\n\t0x27d2: 0x0001, 0x27d3: 0x0001, 0x27d4: 0x0001, 0x27d5: 0x0001, 0x27d6: 0x0001, 0x27d7: 0x0001,\n\t0x27d8: 0x0001, 0x27d9: 0x0001, 0x27da: 0x0001, 0x27db: 0x0001, 0x27dc: 0x0001, 0x27dd: 0x0001,\n\t0x27de: 0x0001, 0x27df: 0x0001, 0x27e0: 0x0001, 0x27e1: 0x0001, 0x27e2: 0x0001, 0x27e3: 0x0001,\n\t0x27e4: 0x0001, 0x27e5: 0x0001, 0x27e6: 0x0001, 0x27e7: 0x0001, 0x27e8: 0x0001, 0x27e9: 0x0001,\n\t0x27ea: 0x0001, 0x27eb: 0x0001, 0x27ec: 0x0001, 0x27ed: 0x0001, 0x27ee: 0x0001, 0x27ef: 0x0001,\n\t0x27f0: 0x0001, 0x27f1: 0x0001, 0x27f2: 0x0001, 0x27f3: 0x0001, 0x27f4: 0x0001, 0x27f5: 0x0001,\n\t0x27f6: 0x0001, 0x27f7: 0x0001, 0x27f8: 0x000c, 0x27f9: 0x000c, 0x27fa: 0x000c, 0x27fb: 0x0001,\n\t0x27fc: 0x0001, 0x27fd: 0x0001, 0x27fe: 0x0001, 0x27ff: 0x000c,\n\t// Block 0xa0, offset 0x2800\n\t0x2800: 0x0001, 0x2801: 0x0001, 0x2802: 0x0001, 0x2803: 0x0001, 0x2804: 0x0001, 0x2805: 0x0001,\n\t0x2806: 0x0001, 0x2807: 0x0001, 0x2808: 0x0001, 0x2809: 0x0001, 0x280a: 0x0001, 0x280b: 0x0001,\n\t0x280c: 0x0001, 0x280d: 0x0001, 0x280e: 0x0001, 0x280f: 0x0001, 0x2810: 0x0001, 0x2811: 0x0001,\n\t0x2812: 0x0001, 0x2813: 0x0001, 0x2814: 0x0001, 0x2815: 0x0001, 0x2816: 0x0001, 0x2817: 0x0001,\n\t0x2818: 0x0001, 0x2819: 0x0001, 0x281a: 0x0001, 0x281b: 0x0001, 0x281c: 0x0001, 0x281d: 0x0001,\n\t0x281e: 0x0001, 0x281f: 0x0001, 0x2820: 0x0001, 0x2821: 0x0001, 0x2822: 0x0001, 0x2823: 0x0001,\n\t0x2824: 0x0001, 0x2825: 0x000c, 0x2826: 0x000c, 0x2827: 0x0001, 0x2828: 0x0001, 0x2829: 0x0001,\n\t0x282a: 0x0001, 0x282b: 0x0001, 0x282c: 0x0001, 0x282d: 0x0001, 0x282e: 0x0001, 0x282f: 0x0001,\n\t0x2830: 0x0001, 0x2831: 0x0001, 0x2832: 0x0001, 0x2833: 0x0001, 0x2834: 0x0001, 0x2835: 0x0001,\n\t0x2836: 0x0001, 0x2837: 0x0001, 0x2838: 0x0001, 0x2839: 0x0001, 0x283a: 0x0001, 0x283b: 0x0001,\n\t0x283c: 0x0001, 0x283d: 0x0001, 0x283e: 0x0001, 0x283f: 0x0001,\n\t// Block 0xa1, offset 0x2840\n\t0x2840: 0x0001, 0x2841: 0x0001, 0x2842: 0x0001, 0x2843: 0x0001, 0x2844: 0x0001, 0x2845: 0x0001,\n\t0x2846: 0x0001, 0x2847: 0x0001, 0x2848: 0x0001, 0x2849: 0x0001, 0x284a: 0x0001, 0x284b: 0x0001,\n\t0x284c: 0x0001, 0x284d: 0x0001, 0x284e: 0x0001, 0x284f: 0x0001, 0x2850: 0x0001, 0x2851: 0x0001,\n\t0x2852: 0x0001, 0x2853: 0x0001, 0x2854: 0x0001, 0x2855: 0x0001, 0x2856: 0x0001, 0x2857: 0x0001,\n\t0x2858: 0x0001, 0x2859: 0x0001, 0x285a: 0x0001, 0x285b: 0x0001, 0x285c: 0x0001, 0x285d: 0x0001,\n\t0x285e: 0x0001, 0x285f: 0x0001, 0x2860: 0x0001, 0x2861: 0x0001, 0x2862: 0x0001, 0x2863: 0x0001,\n\t0x2864: 0x0001, 0x2865: 0x0001, 0x2866: 0x0001, 0x2867: 0x0001, 0x2868: 0x0001, 0x2869: 0x0001,\n\t0x286a: 0x0001, 0x286b: 0x0001, 0x286c: 0x0001, 0x286d: 0x0001, 0x286e: 0x0001, 0x286f: 0x0001,\n\t0x2870: 0x0001, 0x2871: 0x0001, 0x2872: 0x0001, 0x2873: 0x0001, 0x2874: 0x0001, 0x2875: 0x0001,\n\t0x2876: 0x0001, 0x2877: 0x0001, 0x2878: 0x0001, 0x2879: 0x000a, 0x287a: 0x000a, 0x287b: 0x000a,\n\t0x287c: 0x000a, 0x287d: 0x000a, 0x287e: 0x000a, 0x287f: 0x000a,\n\t// Block 0xa2, offset 0x2880\n\t0x2880: 0x0001, 0x2881: 0x0001, 0x2882: 0x0001, 0x2883: 0x0001, 0x2884: 0x0001, 0x2885: 0x0001,\n\t0x2886: 0x0001, 0x2887: 0x0001, 0x2888: 0x0001, 0x2889: 0x0001, 0x288a: 0x0001, 0x288b: 0x0001,\n\t0x288c: 0x0001, 0x288d: 0x0001, 0x288e: 0x0001, 0x288f: 0x0001, 0x2890: 0x0001, 0x2891: 0x0001,\n\t0x2892: 0x0001, 0x2893: 0x0001, 0x2894: 0x0001, 0x2895: 0x0001, 0x2896: 0x0001, 0x2897: 0x0001,\n\t0x2898: 0x0001, 0x2899: 0x0001, 0x289a: 0x0001, 0x289b: 0x0001, 0x289c: 0x0001, 0x289d: 0x0001,\n\t0x289e: 0x0001, 0x289f: 0x0001, 0x28a0: 0x0005, 0x28a1: 0x0005, 0x28a2: 0x0005, 0x28a3: 0x0005,\n\t0x28a4: 0x0005, 0x28a5: 0x0005, 0x28a6: 0x0005, 0x28a7: 0x0005, 0x28a8: 0x0005, 0x28a9: 0x0005,\n\t0x28aa: 0x0005, 0x28ab: 0x0005, 0x28ac: 0x0005, 0x28ad: 0x0005, 0x28ae: 0x0005, 0x28af: 0x0005,\n\t0x28b0: 0x0005, 0x28b1: 0x0005, 0x28b2: 0x0005, 0x28b3: 0x0005, 0x28b4: 0x0005, 0x28b5: 0x0005,\n\t0x28b6: 0x0005, 0x28b7: 0x0005, 0x28b8: 0x0005, 0x28b9: 0x0005, 0x28ba: 0x0005, 0x28bb: 0x0005,\n\t0x28bc: 0x0005, 0x28bd: 0x0005, 0x28be: 0x0005, 0x28bf: 0x0001,\n\t// Block 0xa3, offset 0x28c0\n\t0x28c1: 0x000c,\n\t0x28f8: 0x000c, 0x28f9: 0x000c, 0x28fa: 0x000c, 0x28fb: 0x000c,\n\t0x28fc: 0x000c, 0x28fd: 0x000c, 0x28fe: 0x000c, 0x28ff: 0x000c,\n\t// Block 0xa4, offset 0x2900\n\t0x2900: 0x000c, 0x2901: 0x000c, 0x2902: 0x000c, 0x2903: 0x000c, 0x2904: 0x000c, 0x2905: 0x000c,\n\t0x2906: 0x000c,\n\t0x2912: 0x000a, 0x2913: 0x000a, 0x2914: 0x000a, 0x2915: 0x000a, 0x2916: 0x000a, 0x2917: 0x000a,\n\t0x2918: 0x000a, 0x2919: 0x000a, 0x291a: 0x000a, 0x291b: 0x000a, 0x291c: 0x000a, 0x291d: 0x000a,\n\t0x291e: 0x000a, 0x291f: 0x000a, 0x2920: 0x000a, 0x2921: 0x000a, 0x2922: 0x000a, 0x2923: 0x000a,\n\t0x2924: 0x000a, 0x2925: 0x000a,\n\t0x293f: 0x000c,\n\t// Block 0xa5, offset 0x2940\n\t0x2940: 0x000c, 0x2941: 0x000c,\n\t0x2973: 0x000c, 0x2974: 0x000c, 0x2975: 0x000c,\n\t0x2976: 0x000c, 0x2979: 0x000c, 0x297a: 0x000c,\n\t// Block 0xa6, offset 0x2980\n\t0x2980: 0x000c, 0x2981: 0x000c, 0x2982: 0x000c,\n\t0x29a7: 0x000c, 0x29a8: 0x000c, 0x29a9: 0x000c,\n\t0x29aa: 0x000c, 0x29ab: 0x000c, 0x29ad: 0x000c, 0x29ae: 0x000c, 0x29af: 0x000c,\n\t0x29b0: 0x000c, 0x29b1: 0x000c, 0x29b2: 0x000c, 0x29b3: 0x000c, 0x29b4: 0x000c,\n\t// Block 0xa7, offset 0x29c0\n\t0x29f3: 0x000c,\n\t// Block 0xa8, offset 0x2a00\n\t0x2a00: 0x000c, 0x2a01: 0x000c,\n\t0x2a36: 0x000c, 0x2a37: 0x000c, 0x2a38: 0x000c, 0x2a39: 0x000c, 0x2a3a: 0x000c, 0x2a3b: 0x000c,\n\t0x2a3c: 0x000c, 0x2a3d: 0x000c, 0x2a3e: 0x000c,\n\t// Block 0xa9, offset 0x2a40\n\t0x2a4a: 0x000c, 0x2a4b: 0x000c,\n\t0x2a4c: 0x000c,\n\t// Block 0xaa, offset 0x2a80\n\t0x2aaf: 0x000c,\n\t0x2ab0: 0x000c, 0x2ab1: 0x000c, 0x2ab4: 0x000c,\n\t0x2ab6: 0x000c, 0x2ab7: 0x000c,\n\t0x2abe: 0x000c,\n\t// Block 0xab, offset 0x2ac0\n\t0x2adf: 0x000c, 0x2ae3: 0x000c,\n\t0x2ae4: 0x000c, 0x2ae5: 0x000c, 0x2ae6: 0x000c, 0x2ae7: 0x000c, 0x2ae8: 0x000c, 0x2ae9: 0x000c,\n\t0x2aea: 0x000c,\n\t// Block 0xac, offset 0x2b00\n\t0x2b00: 0x000c, 0x2b01: 0x000c,\n\t0x2b3c: 0x000c,\n\t// Block 0xad, offset 0x2b40\n\t0x2b40: 0x000c,\n\t0x2b66: 0x000c, 0x2b67: 0x000c, 0x2b68: 0x000c, 0x2b69: 0x000c,\n\t0x2b6a: 0x000c, 0x2b6b: 0x000c, 0x2b6c: 0x000c,\n\t0x2b70: 0x000c, 0x2b71: 0x000c, 0x2b72: 0x000c, 0x2b73: 0x000c, 0x2b74: 0x000c,\n\t// Block 0xae, offset 0x2b80\n\t0x2bb8: 0x000c, 0x2bb9: 0x000c, 0x2bba: 0x000c, 0x2bbb: 0x000c,\n\t0x2bbc: 0x000c, 0x2bbd: 0x000c, 0x2bbe: 0x000c, 0x2bbf: 0x000c,\n\t// Block 0xaf, offset 0x2bc0\n\t0x2bc2: 0x000c, 0x2bc3: 0x000c, 0x2bc4: 0x000c,\n\t0x2bc6: 0x000c,\n\t// Block 0xb0, offset 0x2c00\n\t0x2c33: 0x000c, 0x2c34: 0x000c, 0x2c35: 0x000c,\n\t0x2c36: 0x000c, 0x2c37: 0x000c, 0x2c38: 0x000c, 0x2c3a: 0x000c,\n\t0x2c3f: 0x000c,\n\t// Block 0xb1, offset 0x2c40\n\t0x2c40: 0x000c, 0x2c42: 0x000c, 0x2c43: 0x000c,\n\t// Block 0xb2, offset 0x2c80\n\t0x2cb2: 0x000c, 0x2cb3: 0x000c, 0x2cb4: 0x000c, 0x2cb5: 0x000c,\n\t0x2cbc: 0x000c, 0x2cbd: 0x000c, 0x2cbf: 0x000c,\n\t// Block 0xb3, offset 0x2cc0\n\t0x2cc0: 0x000c,\n\t0x2cdc: 0x000c, 0x2cdd: 0x000c,\n\t// Block 0xb4, offset 0x2d00\n\t0x2d33: 0x000c, 0x2d34: 0x000c, 0x2d35: 0x000c,\n\t0x2d36: 0x000c, 0x2d37: 0x000c, 0x2d38: 0x000c, 0x2d39: 0x000c, 0x2d3a: 0x000c,\n\t0x2d3d: 0x000c, 0x2d3f: 0x000c,\n\t// Block 0xb5, offset 0x2d40\n\t0x2d40: 0x000c,\n\t0x2d60: 0x000a, 0x2d61: 0x000a, 0x2d62: 0x000a, 0x2d63: 0x000a,\n\t0x2d64: 0x000a, 0x2d65: 0x000a, 0x2d66: 0x000a, 0x2d67: 0x000a, 0x2d68: 0x000a, 0x2d69: 0x000a,\n\t0x2d6a: 0x000a, 0x2d6b: 0x000a, 0x2d6c: 0x000a,\n\t// Block 0xb6, offset 0x2d80\n\t0x2dab: 0x000c, 0x2dad: 0x000c,\n\t0x2db0: 0x000c, 0x2db1: 0x000c, 0x2db2: 0x000c, 0x2db3: 0x000c, 0x2db4: 0x000c, 0x2db5: 0x000c,\n\t0x2db7: 0x000c,\n\t// Block 0xb7, offset 0x2dc0\n\t0x2ddd: 0x000c,\n\t0x2dde: 0x000c, 0x2ddf: 0x000c, 0x2de2: 0x000c, 0x2de3: 0x000c,\n\t0x2de4: 0x000c, 0x2de5: 0x000c, 0x2de7: 0x000c, 0x2de8: 0x000c, 0x2de9: 0x000c,\n\t0x2dea: 0x000c, 0x2deb: 0x000c,\n\t// Block 0xb8, offset 0x2e00\n\t0x2e30: 0x000c, 0x2e31: 0x000c, 0x2e32: 0x000c, 0x2e33: 0x000c, 0x2e34: 0x000c, 0x2e35: 0x000c,\n\t0x2e36: 0x000c, 0x2e38: 0x000c, 0x2e39: 0x000c, 0x2e3a: 0x000c, 0x2e3b: 0x000c,\n\t0x2e3c: 0x000c, 0x2e3d: 0x000c,\n\t// Block 0xb9, offset 0x2e40\n\t0x2e52: 0x000c, 0x2e53: 0x000c, 0x2e54: 0x000c, 0x2e55: 0x000c, 0x2e56: 0x000c, 0x2e57: 0x000c,\n\t0x2e58: 0x000c, 0x2e59: 0x000c, 0x2e5a: 0x000c, 0x2e5b: 0x000c, 0x2e5c: 0x000c, 0x2e5d: 0x000c,\n\t0x2e5e: 0x000c, 0x2e5f: 0x000c, 0x2e60: 0x000c, 0x2e61: 0x000c, 0x2e62: 0x000c, 0x2e63: 0x000c,\n\t0x2e64: 0x000c, 0x2e65: 0x000c, 0x2e66: 0x000c, 0x2e67: 0x000c,\n\t0x2e6a: 0x000c, 0x2e6b: 0x000c, 0x2e6c: 0x000c, 0x2e6d: 0x000c, 0x2e6e: 0x000c, 0x2e6f: 0x000c,\n\t0x2e70: 0x000c, 0x2e72: 0x000c, 0x2e73: 0x000c, 0x2e75: 0x000c,\n\t0x2e76: 0x000c,\n\t// Block 0xba, offset 0x2e80\n\t0x2eb0: 0x000c, 0x2eb1: 0x000c, 0x2eb2: 0x000c, 0x2eb3: 0x000c, 0x2eb4: 0x000c,\n\t// Block 0xbb, offset 0x2ec0\n\t0x2ef0: 0x000c, 0x2ef1: 0x000c, 0x2ef2: 0x000c, 0x2ef3: 0x000c, 0x2ef4: 0x000c, 0x2ef5: 0x000c,\n\t0x2ef6: 0x000c,\n\t// Block 0xbc, offset 0x2f00\n\t0x2f0f: 0x000c, 0x2f10: 0x000c, 0x2f11: 0x000c,\n\t0x2f12: 0x000c,\n\t// Block 0xbd, offset 0x2f40\n\t0x2f5d: 0x000c,\n\t0x2f5e: 0x000c, 0x2f60: 0x000b, 0x2f61: 0x000b, 0x2f62: 0x000b, 0x2f63: 0x000b,\n\t// Block 0xbe, offset 0x2f80\n\t0x2fa7: 0x000c, 0x2fa8: 0x000c, 0x2fa9: 0x000c,\n\t0x2fb3: 0x000b, 0x2fb4: 0x000b, 0x2fb5: 0x000b,\n\t0x2fb6: 0x000b, 0x2fb7: 0x000b, 0x2fb8: 0x000b, 0x2fb9: 0x000b, 0x2fba: 0x000b, 0x2fbb: 0x000c,\n\t0x2fbc: 0x000c, 0x2fbd: 0x000c, 0x2fbe: 0x000c, 0x2fbf: 0x000c,\n\t// Block 0xbf, offset 0x2fc0\n\t0x2fc0: 0x000c, 0x2fc1: 0x000c, 0x2fc2: 0x000c, 0x2fc5: 0x000c,\n\t0x2fc6: 0x000c, 0x2fc7: 0x000c, 0x2fc8: 0x000c, 0x2fc9: 0x000c, 0x2fca: 0x000c, 0x2fcb: 0x000c,\n\t0x2fea: 0x000c, 0x2feb: 0x000c, 0x2fec: 0x000c, 0x2fed: 0x000c,\n\t// Block 0xc0, offset 0x3000\n\t0x3000: 0x000a, 0x3001: 0x000a, 0x3002: 0x000c, 0x3003: 0x000c, 0x3004: 0x000c, 0x3005: 0x000a,\n\t// Block 0xc1, offset 0x3040\n\t0x3040: 0x000a, 0x3041: 0x000a, 0x3042: 0x000a, 0x3043: 0x000a, 0x3044: 0x000a, 0x3045: 0x000a,\n\t0x3046: 0x000a, 0x3047: 0x000a, 0x3048: 0x000a, 0x3049: 0x000a, 0x304a: 0x000a, 0x304b: 0x000a,\n\t0x304c: 0x000a, 0x304d: 0x000a, 0x304e: 0x000a, 0x304f: 0x000a, 0x3050: 0x000a, 0x3051: 0x000a,\n\t0x3052: 0x000a, 0x3053: 0x000a, 0x3054: 0x000a, 0x3055: 0x000a, 0x3056: 0x000a,\n\t// Block 0xc2, offset 0x3080\n\t0x309b: 0x000a,\n\t// Block 0xc3, offset 0x30c0\n\t0x30d5: 0x000a,\n\t// Block 0xc4, offset 0x3100\n\t0x310f: 0x000a,\n\t// Block 0xc5, offset 0x3140\n\t0x3149: 0x000a,\n\t// Block 0xc6, offset 0x3180\n\t0x3183: 0x000a,\n\t0x318e: 0x0002, 0x318f: 0x0002, 0x3190: 0x0002, 0x3191: 0x0002,\n\t0x3192: 0x0002, 0x3193: 0x0002, 0x3194: 0x0002, 0x3195: 0x0002, 0x3196: 0x0002, 0x3197: 0x0002,\n\t0x3198: 0x0002, 0x3199: 0x0002, 0x319a: 0x0002, 0x319b: 0x0002, 0x319c: 0x0002, 0x319d: 0x0002,\n\t0x319e: 0x0002, 0x319f: 0x0002, 0x31a0: 0x0002, 0x31a1: 0x0002, 0x31a2: 0x0002, 0x31a3: 0x0002,\n\t0x31a4: 0x0002, 0x31a5: 0x0002, 0x31a6: 0x0002, 0x31a7: 0x0002, 0x31a8: 0x0002, 0x31a9: 0x0002,\n\t0x31aa: 0x0002, 0x31ab: 0x0002, 0x31ac: 0x0002, 0x31ad: 0x0002, 0x31ae: 0x0002, 0x31af: 0x0002,\n\t0x31b0: 0x0002, 0x31b1: 0x0002, 0x31b2: 0x0002, 0x31b3: 0x0002, 0x31b4: 0x0002, 0x31b5: 0x0002,\n\t0x31b6: 0x0002, 0x31b7: 0x0002, 0x31b8: 0x0002, 0x31b9: 0x0002, 0x31ba: 0x0002, 0x31bb: 0x0002,\n\t0x31bc: 0x0002, 0x31bd: 0x0002, 0x31be: 0x0002, 0x31bf: 0x0002,\n\t// Block 0xc7, offset 0x31c0\n\t0x31c0: 0x000c, 0x31c1: 0x000c, 0x31c2: 0x000c, 0x31c3: 0x000c, 0x31c4: 0x000c, 0x31c5: 0x000c,\n\t0x31c6: 0x000c, 0x31c7: 0x000c, 0x31c8: 0x000c, 0x31c9: 0x000c, 0x31ca: 0x000c, 0x31cb: 0x000c,\n\t0x31cc: 0x000c, 0x31cd: 0x000c, 0x31ce: 0x000c, 0x31cf: 0x000c, 0x31d0: 0x000c, 0x31d1: 0x000c,\n\t0x31d2: 0x000c, 0x31d3: 0x000c, 0x31d4: 0x000c, 0x31d5: 0x000c, 0x31d6: 0x000c, 0x31d7: 0x000c,\n\t0x31d8: 0x000c, 0x31d9: 0x000c, 0x31da: 0x000c, 0x31db: 0x000c, 0x31dc: 0x000c, 0x31dd: 0x000c,\n\t0x31de: 0x000c, 0x31df: 0x000c, 0x31e0: 0x000c, 0x31e1: 0x000c, 0x31e2: 0x000c, 0x31e3: 0x000c,\n\t0x31e4: 0x000c, 0x31e5: 0x000c, 0x31e6: 0x000c, 0x31e7: 0x000c, 0x31e8: 0x000c, 0x31e9: 0x000c,\n\t0x31ea: 0x000c, 0x31eb: 0x000c, 0x31ec: 0x000c, 0x31ed: 0x000c, 0x31ee: 0x000c, 0x31ef: 0x000c,\n\t0x31f0: 0x000c, 0x31f1: 0x000c, 0x31f2: 0x000c, 0x31f3: 0x000c, 0x31f4: 0x000c, 0x31f5: 0x000c,\n\t0x31f6: 0x000c, 0x31fb: 0x000c,\n\t0x31fc: 0x000c, 0x31fd: 0x000c, 0x31fe: 0x000c, 0x31ff: 0x000c,\n\t// Block 0xc8, offset 0x3200\n\t0x3200: 0x000c, 0x3201: 0x000c, 0x3202: 0x000c, 0x3203: 0x000c, 0x3204: 0x000c, 0x3205: 0x000c,\n\t0x3206: 0x000c, 0x3207: 0x000c, 0x3208: 0x000c, 0x3209: 0x000c, 0x320a: 0x000c, 0x320b: 0x000c,\n\t0x320c: 0x000c, 0x320d: 0x000c, 0x320e: 0x000c, 0x320f: 0x000c, 0x3210: 0x000c, 0x3211: 0x000c,\n\t0x3212: 0x000c, 0x3213: 0x000c, 0x3214: 0x000c, 0x3215: 0x000c, 0x3216: 0x000c, 0x3217: 0x000c,\n\t0x3218: 0x000c, 0x3219: 0x000c, 0x321a: 0x000c, 0x321b: 0x000c, 0x321c: 0x000c, 0x321d: 0x000c,\n\t0x321e: 0x000c, 0x321f: 0x000c, 0x3220: 0x000c, 0x3221: 0x000c, 0x3222: 0x000c, 0x3223: 0x000c,\n\t0x3224: 0x000c, 0x3225: 0x000c, 0x3226: 0x000c, 0x3227: 0x000c, 0x3228: 0x000c, 0x3229: 0x000c,\n\t0x322a: 0x000c, 0x322b: 0x000c, 0x322c: 0x000c,\n\t0x3235: 0x000c,\n\t// Block 0xc9, offset 0x3240\n\t0x3244: 0x000c,\n\t0x325b: 0x000c, 0x325c: 0x000c, 0x325d: 0x000c,\n\t0x325e: 0x000c, 0x325f: 0x000c, 0x3261: 0x000c, 0x3262: 0x000c, 0x3263: 0x000c,\n\t0x3264: 0x000c, 0x3265: 0x000c, 0x3266: 0x000c, 0x3267: 0x000c, 0x3268: 0x000c, 0x3269: 0x000c,\n\t0x326a: 0x000c, 0x326b: 0x000c, 0x326c: 0x000c, 0x326d: 0x000c, 0x326e: 0x000c, 0x326f: 0x000c,\n\t// Block 0xca, offset 0x3280\n\t0x3280: 0x000c, 0x3281: 0x000c, 0x3282: 0x000c, 0x3283: 0x000c, 0x3284: 0x000c, 0x3285: 0x000c,\n\t0x3286: 0x000c, 0x3288: 0x000c, 0x3289: 0x000c, 0x328a: 0x000c, 0x328b: 0x000c,\n\t0x328c: 0x000c, 0x328d: 0x000c, 0x328e: 0x000c, 0x328f: 0x000c, 0x3290: 0x000c, 0x3291: 0x000c,\n\t0x3292: 0x000c, 0x3293: 0x000c, 0x3294: 0x000c, 0x3295: 0x000c, 0x3296: 0x000c, 0x3297: 0x000c,\n\t0x3298: 0x000c, 0x329b: 0x000c, 0x329c: 0x000c, 0x329d: 0x000c,\n\t0x329e: 0x000c, 0x329f: 0x000c, 0x32a0: 0x000c, 0x32a1: 0x000c, 0x32a3: 0x000c,\n\t0x32a4: 0x000c, 0x32a6: 0x000c, 0x32a7: 0x000c, 0x32a8: 0x000c, 0x32a9: 0x000c,\n\t0x32aa: 0x000c,\n\t// Block 0xcb, offset 0x32c0\n\t0x32c0: 0x0001, 0x32c1: 0x0001, 0x32c2: 0x0001, 0x32c3: 0x0001, 0x32c4: 0x0001, 0x32c5: 0x0001,\n\t0x32c6: 0x0001, 0x32c7: 0x0001, 0x32c8: 0x0001, 0x32c9: 0x0001, 0x32ca: 0x0001, 0x32cb: 0x0001,\n\t0x32cc: 0x0001, 0x32cd: 0x0001, 0x32ce: 0x0001, 0x32cf: 0x0001, 0x32d0: 0x000c, 0x32d1: 0x000c,\n\t0x32d2: 0x000c, 0x32d3: 0x000c, 0x32d4: 0x000c, 0x32d5: 0x000c, 0x32d6: 0x000c, 0x32d7: 0x0001,\n\t0x32d8: 0x0001, 0x32d9: 0x0001, 0x32da: 0x0001, 0x32db: 0x0001, 0x32dc: 0x0001, 0x32dd: 0x0001,\n\t0x32de: 0x0001, 0x32df: 0x0001, 0x32e0: 0x0001, 0x32e1: 0x0001, 0x32e2: 0x0001, 0x32e3: 0x0001,\n\t0x32e4: 0x0001, 0x32e5: 0x0001, 0x32e6: 0x0001, 0x32e7: 0x0001, 0x32e8: 0x0001, 0x32e9: 0x0001,\n\t0x32ea: 0x0001, 0x32eb: 0x0001, 0x32ec: 0x0001, 0x32ed: 0x0001, 0x32ee: 0x0001, 0x32ef: 0x0001,\n\t0x32f0: 0x0001, 0x32f1: 0x0001, 0x32f2: 0x0001, 0x32f3: 0x0001, 0x32f4: 0x0001, 0x32f5: 0x0001,\n\t0x32f6: 0x0001, 0x32f7: 0x0001, 0x32f8: 0x0001, 0x32f9: 0x0001, 0x32fa: 0x0001, 0x32fb: 0x0001,\n\t0x32fc: 0x0001, 0x32fd: 0x0001, 0x32fe: 0x0001, 0x32ff: 0x0001,\n\t// Block 0xcc, offset 0x3300\n\t0x3300: 0x0001, 0x3301: 0x0001, 0x3302: 0x0001, 0x3303: 0x0001, 0x3304: 0x000c, 0x3305: 0x000c,\n\t0x3306: 0x000c, 0x3307: 0x000c, 0x3308: 0x000c, 0x3309: 0x000c, 0x330a: 0x000c, 0x330b: 0x0001,\n\t0x330c: 0x0001, 0x330d: 0x0001, 0x330e: 0x0001, 0x330f: 0x0001, 0x3310: 0x0001, 0x3311: 0x0001,\n\t0x3312: 0x0001, 0x3313: 0x0001, 0x3314: 0x0001, 0x3315: 0x0001, 0x3316: 0x0001, 0x3317: 0x0001,\n\t0x3318: 0x0001, 0x3319: 0x0001, 0x331a: 0x0001, 0x331b: 0x0001, 0x331c: 0x0001, 0x331d: 0x0001,\n\t0x331e: 0x0001, 0x331f: 0x0001, 0x3320: 0x0001, 0x3321: 0x0001, 0x3322: 0x0001, 0x3323: 0x0001,\n\t0x3324: 0x0001, 0x3325: 0x0001, 0x3326: 0x0001, 0x3327: 0x0001, 0x3328: 0x0001, 0x3329: 0x0001,\n\t0x332a: 0x0001, 0x332b: 0x0001, 0x332c: 0x0001, 0x332d: 0x0001, 0x332e: 0x0001, 0x332f: 0x0001,\n\t0x3330: 0x0001, 0x3331: 0x0001, 0x3332: 0x0001, 0x3333: 0x0001, 0x3334: 0x0001, 0x3335: 0x0001,\n\t0x3336: 0x0001, 0x3337: 0x0001, 0x3338: 0x0001, 0x3339: 0x0001, 0x333a: 0x0001, 0x333b: 0x0001,\n\t0x333c: 0x0001, 0x333d: 0x0001, 0x333e: 0x0001, 0x333f: 0x0001,\n\t// Block 0xcd, offset 0x3340\n\t0x3340: 0x000d, 0x3341: 0x000d, 0x3342: 0x000d, 0x3343: 0x000d, 0x3344: 0x000d, 0x3345: 0x000d,\n\t0x3346: 0x000d, 0x3347: 0x000d, 0x3348: 0x000d, 0x3349: 0x000d, 0x334a: 0x000d, 0x334b: 0x000d,\n\t0x334c: 0x000d, 0x334d: 0x000d, 0x334e: 0x000d, 0x334f: 0x000d, 0x3350: 0x000d, 0x3351: 0x000d,\n\t0x3352: 0x000d, 0x3353: 0x000d, 0x3354: 0x000d, 0x3355: 0x000d, 0x3356: 0x000d, 0x3357: 0x000d,\n\t0x3358: 0x000d, 0x3359: 0x000d, 0x335a: 0x000d, 0x335b: 0x000d, 0x335c: 0x000d, 0x335d: 0x000d,\n\t0x335e: 0x000d, 0x335f: 0x000d, 0x3360: 0x000d, 0x3361: 0x000d, 0x3362: 0x000d, 0x3363: 0x000d,\n\t0x3364: 0x000d, 0x3365: 0x000d, 0x3366: 0x000d, 0x3367: 0x000d, 0x3368: 0x000d, 0x3369: 0x000d,\n\t0x336a: 0x000d, 0x336b: 0x000d, 0x336c: 0x000d, 0x336d: 0x000d, 0x336e: 0x000d, 0x336f: 0x000d,\n\t0x3370: 0x000a, 0x3371: 0x000a, 0x3372: 0x000d, 0x3373: 0x000d, 0x3374: 0x000d, 0x3375: 0x000d,\n\t0x3376: 0x000d, 0x3377: 0x000d, 0x3378: 0x000d, 0x3379: 0x000d, 0x337a: 0x000d, 0x337b: 0x000d,\n\t0x337c: 0x000d, 0x337d: 0x000d, 0x337e: 0x000d, 0x337f: 0x000d,\n\t// Block 0xce, offset 0x3380\n\t0x3380: 0x000a, 0x3381: 0x000a, 0x3382: 0x000a, 0x3383: 0x000a, 0x3384: 0x000a, 0x3385: 0x000a,\n\t0x3386: 0x000a, 0x3387: 0x000a, 0x3388: 0x000a, 0x3389: 0x000a, 0x338a: 0x000a, 0x338b: 0x000a,\n\t0x338c: 0x000a, 0x338d: 0x000a, 0x338e: 0x000a, 0x338f: 0x000a, 0x3390: 0x000a, 0x3391: 0x000a,\n\t0x3392: 0x000a, 0x3393: 0x000a, 0x3394: 0x000a, 0x3395: 0x000a, 0x3396: 0x000a, 0x3397: 0x000a,\n\t0x3398: 0x000a, 0x3399: 0x000a, 0x339a: 0x000a, 0x339b: 0x000a, 0x339c: 0x000a, 0x339d: 0x000a,\n\t0x339e: 0x000a, 0x339f: 0x000a, 0x33a0: 0x000a, 0x33a1: 0x000a, 0x33a2: 0x000a, 0x33a3: 0x000a,\n\t0x33a4: 0x000a, 0x33a5: 0x000a, 0x33a6: 0x000a, 0x33a7: 0x000a, 0x33a8: 0x000a, 0x33a9: 0x000a,\n\t0x33aa: 0x000a, 0x33ab: 0x000a,\n\t0x33b0: 0x000a, 0x33b1: 0x000a, 0x33b2: 0x000a, 0x33b3: 0x000a, 0x33b4: 0x000a, 0x33b5: 0x000a,\n\t0x33b6: 0x000a, 0x33b7: 0x000a, 0x33b8: 0x000a, 0x33b9: 0x000a, 0x33ba: 0x000a, 0x33bb: 0x000a,\n\t0x33bc: 0x000a, 0x33bd: 0x000a, 0x33be: 0x000a, 0x33bf: 0x000a,\n\t// Block 0xcf, offset 0x33c0\n\t0x33c0: 0x000a, 0x33c1: 0x000a, 0x33c2: 0x000a, 0x33c3: 0x000a, 0x33c4: 0x000a, 0x33c5: 0x000a,\n\t0x33c6: 0x000a, 0x33c7: 0x000a, 0x33c8: 0x000a, 0x33c9: 0x000a, 0x33ca: 0x000a, 0x33cb: 0x000a,\n\t0x33cc: 0x000a, 0x33cd: 0x000a, 0x33ce: 0x000a, 0x33cf: 0x000a, 0x33d0: 0x000a, 0x33d1: 0x000a,\n\t0x33d2: 0x000a, 0x33d3: 0x000a,\n\t0x33e0: 0x000a, 0x33e1: 0x000a, 0x33e2: 0x000a, 0x33e3: 0x000a,\n\t0x33e4: 0x000a, 0x33e5: 0x000a, 0x33e6: 0x000a, 0x33e7: 0x000a, 0x33e8: 0x000a, 0x33e9: 0x000a,\n\t0x33ea: 0x000a, 0x33eb: 0x000a, 0x33ec: 0x000a, 0x33ed: 0x000a, 0x33ee: 0x000a,\n\t0x33f1: 0x000a, 0x33f2: 0x000a, 0x33f3: 0x000a, 0x33f4: 0x000a, 0x33f5: 0x000a,\n\t0x33f6: 0x000a, 0x33f7: 0x000a, 0x33f8: 0x000a, 0x33f9: 0x000a, 0x33fa: 0x000a, 0x33fb: 0x000a,\n\t0x33fc: 0x000a, 0x33fd: 0x000a, 0x33fe: 0x000a, 0x33ff: 0x000a,\n\t// Block 0xd0, offset 0x3400\n\t0x3401: 0x000a, 0x3402: 0x000a, 0x3403: 0x000a, 0x3404: 0x000a, 0x3405: 0x000a,\n\t0x3406: 0x000a, 0x3407: 0x000a, 0x3408: 0x000a, 0x3409: 0x000a, 0x340a: 0x000a, 0x340b: 0x000a,\n\t0x340c: 0x000a, 0x340d: 0x000a, 0x340e: 0x000a, 0x340f: 0x000a, 0x3411: 0x000a,\n\t0x3412: 0x000a, 0x3413: 0x000a, 0x3414: 0x000a, 0x3415: 0x000a, 0x3416: 0x000a, 0x3417: 0x000a,\n\t0x3418: 0x000a, 0x3419: 0x000a, 0x341a: 0x000a, 0x341b: 0x000a, 0x341c: 0x000a, 0x341d: 0x000a,\n\t0x341e: 0x000a, 0x341f: 0x000a, 0x3420: 0x000a, 0x3421: 0x000a, 0x3422: 0x000a, 0x3423: 0x000a,\n\t0x3424: 0x000a, 0x3425: 0x000a, 0x3426: 0x000a, 0x3427: 0x000a, 0x3428: 0x000a, 0x3429: 0x000a,\n\t0x342a: 0x000a, 0x342b: 0x000a, 0x342c: 0x000a, 0x342d: 0x000a, 0x342e: 0x000a, 0x342f: 0x000a,\n\t0x3430: 0x000a, 0x3431: 0x000a, 0x3432: 0x000a, 0x3433: 0x000a, 0x3434: 0x000a, 0x3435: 0x000a,\n\t// Block 0xd1, offset 0x3440\n\t0x3440: 0x0002, 0x3441: 0x0002, 0x3442: 0x0002, 0x3443: 0x0002, 0x3444: 0x0002, 0x3445: 0x0002,\n\t0x3446: 0x0002, 0x3447: 0x0002, 0x3448: 0x0002, 0x3449: 0x0002, 0x344a: 0x0002, 0x344b: 0x000a,\n\t0x344c: 0x000a,\n\t// Block 0xd2, offset 0x3480\n\t0x34aa: 0x000a, 0x34ab: 0x000a,\n\t// Block 0xd3, offset 0x34c0\n\t0x34c0: 0x000a, 0x34c1: 0x000a, 0x34c2: 0x000a, 0x34c3: 0x000a, 0x34c4: 0x000a, 0x34c5: 0x000a,\n\t0x34c6: 0x000a, 0x34c7: 0x000a, 0x34c8: 0x000a, 0x34c9: 0x000a, 0x34ca: 0x000a, 0x34cb: 0x000a,\n\t0x34cc: 0x000a, 0x34cd: 0x000a, 0x34ce: 0x000a, 0x34cf: 0x000a, 0x34d0: 0x000a, 0x34d1: 0x000a,\n\t0x34d2: 0x000a,\n\t0x34e0: 0x000a, 0x34e1: 0x000a, 0x34e2: 0x000a, 0x34e3: 0x000a,\n\t0x34e4: 0x000a, 0x34e5: 0x000a, 0x34e6: 0x000a, 0x34e7: 0x000a, 0x34e8: 0x000a, 0x34e9: 0x000a,\n\t0x34ea: 0x000a, 0x34eb: 0x000a, 0x34ec: 0x000a,\n\t0x34f0: 0x000a, 0x34f1: 0x000a, 0x34f2: 0x000a, 0x34f3: 0x000a, 0x34f4: 0x000a, 0x34f5: 0x000a,\n\t0x34f6: 0x000a,\n\t// Block 0xd4, offset 0x3500\n\t0x3500: 0x000a, 0x3501: 0x000a, 0x3502: 0x000a, 0x3503: 0x000a, 0x3504: 0x000a, 0x3505: 0x000a,\n\t0x3506: 0x000a, 0x3507: 0x000a, 0x3508: 0x000a, 0x3509: 0x000a, 0x350a: 0x000a, 0x350b: 0x000a,\n\t0x350c: 0x000a, 0x350d: 0x000a, 0x350e: 0x000a, 0x350f: 0x000a, 0x3510: 0x000a, 0x3511: 0x000a,\n\t0x3512: 0x000a, 0x3513: 0x000a, 0x3514: 0x000a,\n\t// Block 0xd5, offset 0x3540\n\t0x3540: 0x000a, 0x3541: 0x000a, 0x3542: 0x000a, 0x3543: 0x000a, 0x3544: 0x000a, 0x3545: 0x000a,\n\t0x3546: 0x000a, 0x3547: 0x000a, 0x3548: 0x000a, 0x3549: 0x000a, 0x354a: 0x000a, 0x354b: 0x000a,\n\t0x3550: 0x000a, 0x3551: 0x000a,\n\t0x3552: 0x000a, 0x3553: 0x000a, 0x3554: 0x000a, 0x3555: 0x000a, 0x3556: 0x000a, 0x3557: 0x000a,\n\t0x3558: 0x000a, 0x3559: 0x000a, 0x355a: 0x000a, 0x355b: 0x000a, 0x355c: 0x000a, 0x355d: 0x000a,\n\t0x355e: 0x000a, 0x355f: 0x000a, 0x3560: 0x000a, 0x3561: 0x000a, 0x3562: 0x000a, 0x3563: 0x000a,\n\t0x3564: 0x000a, 0x3565: 0x000a, 0x3566: 0x000a, 0x3567: 0x000a, 0x3568: 0x000a, 0x3569: 0x000a,\n\t0x356a: 0x000a, 0x356b: 0x000a, 0x356c: 0x000a, 0x356d: 0x000a, 0x356e: 0x000a, 0x356f: 0x000a,\n\t0x3570: 0x000a, 0x3571: 0x000a, 0x3572: 0x000a, 0x3573: 0x000a, 0x3574: 0x000a, 0x3575: 0x000a,\n\t0x3576: 0x000a, 0x3577: 0x000a, 0x3578: 0x000a, 0x3579: 0x000a, 0x357a: 0x000a, 0x357b: 0x000a,\n\t0x357c: 0x000a, 0x357d: 0x000a, 0x357e: 0x000a, 0x357f: 0x000a,\n\t// Block 0xd6, offset 0x3580\n\t0x3580: 0x000a, 0x3581: 0x000a, 0x3582: 0x000a, 0x3583: 0x000a, 0x3584: 0x000a, 0x3585: 0x000a,\n\t0x3586: 0x000a, 0x3587: 0x000a,\n\t0x3590: 0x000a, 0x3591: 0x000a,\n\t0x3592: 0x000a, 0x3593: 0x000a, 0x3594: 0x000a, 0x3595: 0x000a, 0x3596: 0x000a, 0x3597: 0x000a,\n\t0x3598: 0x000a, 0x3599: 0x000a,\n\t0x35a0: 0x000a, 0x35a1: 0x000a, 0x35a2: 0x000a, 0x35a3: 0x000a,\n\t0x35a4: 0x000a, 0x35a5: 0x000a, 0x35a6: 0x000a, 0x35a7: 0x000a, 0x35a8: 0x000a, 0x35a9: 0x000a,\n\t0x35aa: 0x000a, 0x35ab: 0x000a, 0x35ac: 0x000a, 0x35ad: 0x000a, 0x35ae: 0x000a, 0x35af: 0x000a,\n\t0x35b0: 0x000a, 0x35b1: 0x000a, 0x35b2: 0x000a, 0x35b3: 0x000a, 0x35b4: 0x000a, 0x35b5: 0x000a,\n\t0x35b6: 0x000a, 0x35b7: 0x000a, 0x35b8: 0x000a, 0x35b9: 0x000a, 0x35ba: 0x000a, 0x35bb: 0x000a,\n\t0x35bc: 0x000a, 0x35bd: 0x000a, 0x35be: 0x000a, 0x35bf: 0x000a,\n\t// Block 0xd7, offset 0x35c0\n\t0x35c0: 0x000a, 0x35c1: 0x000a, 0x35c2: 0x000a, 0x35c3: 0x000a, 0x35c4: 0x000a, 0x35c5: 0x000a,\n\t0x35c6: 0x000a, 0x35c7: 0x000a,\n\t0x35d0: 0x000a, 0x35d1: 0x000a,\n\t0x35d2: 0x000a, 0x35d3: 0x000a, 0x35d4: 0x000a, 0x35d5: 0x000a, 0x35d6: 0x000a, 0x35d7: 0x000a,\n\t0x35d8: 0x000a, 0x35d9: 0x000a, 0x35da: 0x000a, 0x35db: 0x000a, 0x35dc: 0x000a, 0x35dd: 0x000a,\n\t0x35de: 0x000a, 0x35df: 0x000a, 0x35e0: 0x000a, 0x35e1: 0x000a, 0x35e2: 0x000a, 0x35e3: 0x000a,\n\t0x35e4: 0x000a, 0x35e5: 0x000a, 0x35e6: 0x000a, 0x35e7: 0x000a, 0x35e8: 0x000a, 0x35e9: 0x000a,\n\t0x35ea: 0x000a, 0x35eb: 0x000a, 0x35ec: 0x000a, 0x35ed: 0x000a,\n\t// Block 0xd8, offset 0x3600\n\t0x3610: 0x000a, 0x3611: 0x000a,\n\t0x3612: 0x000a, 0x3613: 0x000a, 0x3614: 0x000a, 0x3615: 0x000a, 0x3616: 0x000a, 0x3617: 0x000a,\n\t0x3618: 0x000a, 0x3619: 0x000a, 0x361a: 0x000a, 0x361b: 0x000a, 0x361c: 0x000a, 0x361d: 0x000a,\n\t0x361e: 0x000a, 0x3620: 0x000a, 0x3621: 0x000a, 0x3622: 0x000a, 0x3623: 0x000a,\n\t0x3624: 0x000a, 0x3625: 0x000a, 0x3626: 0x000a, 0x3627: 0x000a,\n\t0x3630: 0x000a, 0x3633: 0x000a, 0x3634: 0x000a, 0x3635: 0x000a,\n\t0x3636: 0x000a, 0x3637: 0x000a, 0x3638: 0x000a, 0x3639: 0x000a, 0x363a: 0x000a, 0x363b: 0x000a,\n\t0x363c: 0x000a, 0x363d: 0x000a, 0x363e: 0x000a,\n\t// Block 0xd9, offset 0x3640\n\t0x3640: 0x000a, 0x3641: 0x000a, 0x3642: 0x000a, 0x3643: 0x000a, 0x3644: 0x000a, 0x3645: 0x000a,\n\t0x3646: 0x000a, 0x3647: 0x000a, 0x3648: 0x000a, 0x3649: 0x000a, 0x364a: 0x000a, 0x364b: 0x000a,\n\t0x3650: 0x000a, 0x3651: 0x000a,\n\t0x3652: 0x000a, 0x3653: 0x000a, 0x3654: 0x000a, 0x3655: 0x000a, 0x3656: 0x000a, 0x3657: 0x000a,\n\t0x3658: 0x000a, 0x3659: 0x000a, 0x365a: 0x000a, 0x365b: 0x000a, 0x365c: 0x000a, 0x365d: 0x000a,\n\t0x365e: 0x000a,\n\t// Block 0xda, offset 0x3680\n\t0x3680: 0x000a, 0x3681: 0x000a, 0x3682: 0x000a, 0x3683: 0x000a, 0x3684: 0x000a, 0x3685: 0x000a,\n\t0x3686: 0x000a, 0x3687: 0x000a, 0x3688: 0x000a, 0x3689: 0x000a, 0x368a: 0x000a, 0x368b: 0x000a,\n\t0x368c: 0x000a, 0x368d: 0x000a, 0x368e: 0x000a, 0x368f: 0x000a, 0x3690: 0x000a, 0x3691: 0x000a,\n\t// Block 0xdb, offset 0x36c0\n\t0x36fe: 0x000b, 0x36ff: 0x000b,\n\t// Block 0xdc, offset 0x3700\n\t0x3700: 0x000b, 0x3701: 0x000b, 0x3702: 0x000b, 0x3703: 0x000b, 0x3704: 0x000b, 0x3705: 0x000b,\n\t0x3706: 0x000b, 0x3707: 0x000b, 0x3708: 0x000b, 0x3709: 0x000b, 0x370a: 0x000b, 0x370b: 0x000b,\n\t0x370c: 0x000b, 0x370d: 0x000b, 0x370e: 0x000b, 0x370f: 0x000b, 0x3710: 0x000b, 0x3711: 0x000b,\n\t0x3712: 0x000b, 0x3713: 0x000b, 0x3714: 0x000b, 0x3715: 0x000b, 0x3716: 0x000b, 0x3717: 0x000b,\n\t0x3718: 0x000b, 0x3719: 0x000b, 0x371a: 0x000b, 0x371b: 0x000b, 0x371c: 0x000b, 0x371d: 0x000b,\n\t0x371e: 0x000b, 0x371f: 0x000b, 0x3720: 0x000b, 0x3721: 0x000b, 0x3722: 0x000b, 0x3723: 0x000b,\n\t0x3724: 0x000b, 0x3725: 0x000b, 0x3726: 0x000b, 0x3727: 0x000b, 0x3728: 0x000b, 0x3729: 0x000b,\n\t0x372a: 0x000b, 0x372b: 0x000b, 0x372c: 0x000b, 0x372d: 0x000b, 0x372e: 0x000b, 0x372f: 0x000b,\n\t0x3730: 0x000b, 0x3731: 0x000b, 0x3732: 0x000b, 0x3733: 0x000b, 0x3734: 0x000b, 0x3735: 0x000b,\n\t0x3736: 0x000b, 0x3737: 0x000b, 0x3738: 0x000b, 0x3739: 0x000b, 0x373a: 0x000b, 0x373b: 0x000b,\n\t0x373c: 0x000b, 0x373d: 0x000b, 0x373e: 0x000b, 0x373f: 0x000b,\n\t// Block 0xdd, offset 0x3740\n\t0x3740: 0x000c, 0x3741: 0x000c, 0x3742: 0x000c, 0x3743: 0x000c, 0x3744: 0x000c, 0x3745: 0x000c,\n\t0x3746: 0x000c, 0x3747: 0x000c, 0x3748: 0x000c, 0x3749: 0x000c, 0x374a: 0x000c, 0x374b: 0x000c,\n\t0x374c: 0x000c, 0x374d: 0x000c, 0x374e: 0x000c, 0x374f: 0x000c, 0x3750: 0x000c, 0x3751: 0x000c,\n\t0x3752: 0x000c, 0x3753: 0x000c, 0x3754: 0x000c, 0x3755: 0x000c, 0x3756: 0x000c, 0x3757: 0x000c,\n\t0x3758: 0x000c, 0x3759: 0x000c, 0x375a: 0x000c, 0x375b: 0x000c, 0x375c: 0x000c, 0x375d: 0x000c,\n\t0x375e: 0x000c, 0x375f: 0x000c, 0x3760: 0x000c, 0x3761: 0x000c, 0x3762: 0x000c, 0x3763: 0x000c,\n\t0x3764: 0x000c, 0x3765: 0x000c, 0x3766: 0x000c, 0x3767: 0x000c, 0x3768: 0x000c, 0x3769: 0x000c,\n\t0x376a: 0x000c, 0x376b: 0x000c, 0x376c: 0x000c, 0x376d: 0x000c, 0x376e: 0x000c, 0x376f: 0x000c,\n\t0x3770: 0x000b, 0x3771: 0x000b, 0x3772: 0x000b, 0x3773: 0x000b, 0x3774: 0x000b, 0x3775: 0x000b,\n\t0x3776: 0x000b, 0x3777: 0x000b, 0x3778: 0x000b, 0x3779: 0x000b, 0x377a: 0x000b, 0x377b: 0x000b,\n\t0x377c: 0x000b, 0x377d: 0x000b, 0x377e: 0x000b, 0x377f: 0x000b,\n}\n\n// bidiIndex: 24 blocks, 1536 entries, 1536 bytes\n// Block 0 is the zero block.\nvar bidiIndex = [1536]uint8{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x01, 0xc3: 0x02,\n\t0xca: 0x03, 0xcb: 0x04, 0xcc: 0x05, 0xcd: 0x06, 0xce: 0x07, 0xcf: 0x08,\n\t0xd2: 0x09, 0xd6: 0x0a, 0xd7: 0x0b,\n\t0xd8: 0x0c, 0xd9: 0x0d, 0xda: 0x0e, 0xdb: 0x0f, 0xdc: 0x10, 0xdd: 0x11, 0xde: 0x12, 0xdf: 0x13,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06,\n\t0xea: 0x07, 0xef: 0x08,\n\t0xf0: 0x11, 0xf1: 0x12, 0xf2: 0x12, 0xf3: 0x14, 0xf4: 0x15,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x14, 0x121: 0x15, 0x122: 0x16, 0x123: 0x17, 0x124: 0x18, 0x125: 0x19, 0x126: 0x1a, 0x127: 0x1b,\n\t0x128: 0x1c, 0x129: 0x1d, 0x12a: 0x1c, 0x12b: 0x1e, 0x12c: 0x1f, 0x12d: 0x20, 0x12e: 0x21, 0x12f: 0x22,\n\t0x130: 0x23, 0x131: 0x24, 0x132: 0x1a, 0x133: 0x25, 0x134: 0x26, 0x135: 0x27, 0x137: 0x28,\n\t0x138: 0x29, 0x139: 0x2a, 0x13a: 0x2b, 0x13b: 0x2c, 0x13c: 0x2d, 0x13d: 0x2e, 0x13e: 0x2f, 0x13f: 0x30,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x31, 0x141: 0x32, 0x142: 0x33,\n\t0x14d: 0x34, 0x14e: 0x35,\n\t0x150: 0x36,\n\t0x15a: 0x37, 0x15c: 0x38, 0x15d: 0x39, 0x15e: 0x3a, 0x15f: 0x3b,\n\t0x160: 0x3c, 0x162: 0x3d, 0x164: 0x3e, 0x165: 0x3f, 0x167: 0x40,\n\t0x168: 0x41, 0x169: 0x42, 0x16a: 0x43, 0x16c: 0x44, 0x16d: 0x45, 0x16e: 0x46, 0x16f: 0x47,\n\t0x170: 0x48, 0x173: 0x49, 0x177: 0x4a,\n\t0x17e: 0x4b, 0x17f: 0x4c,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x4d, 0x181: 0x4e, 0x182: 0x4f, 0x183: 0x50, 0x184: 0x51, 0x185: 0x52, 0x186: 0x53, 0x187: 0x54,\n\t0x188: 0x55, 0x189: 0x54, 0x18a: 0x54, 0x18b: 0x54, 0x18c: 0x56, 0x18d: 0x57, 0x18e: 0x58, 0x18f: 0x59,\n\t0x190: 0x5a, 0x191: 0x5b, 0x192: 0x5c, 0x193: 0x5d, 0x194: 0x54, 0x195: 0x54, 0x196: 0x54, 0x197: 0x54,\n\t0x198: 0x54, 0x199: 0x54, 0x19a: 0x5e, 0x19b: 0x54, 0x19c: 0x54, 0x19d: 0x5f, 0x19e: 0x54, 0x19f: 0x60,\n\t0x1a4: 0x54, 0x1a5: 0x54, 0x1a6: 0x61, 0x1a7: 0x62,\n\t0x1a8: 0x54, 0x1a9: 0x54, 0x1aa: 0x54, 0x1ab: 0x54, 0x1ac: 0x54, 0x1ad: 0x63, 0x1ae: 0x64, 0x1af: 0x65,\n\t0x1b3: 0x66, 0x1b5: 0x67, 0x1b7: 0x68,\n\t0x1b8: 0x69, 0x1b9: 0x6a, 0x1ba: 0x6b, 0x1bb: 0x6c, 0x1bc: 0x54, 0x1bd: 0x54, 0x1be: 0x54, 0x1bf: 0x6d,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x6e, 0x1c2: 0x6f, 0x1c3: 0x70, 0x1c7: 0x71,\n\t0x1c8: 0x72, 0x1c9: 0x73, 0x1ca: 0x74, 0x1cb: 0x75, 0x1cd: 0x76, 0x1cf: 0x77,\n\t// Block 0x8, offset 0x200\n\t0x237: 0x54,\n\t// Block 0x9, offset 0x240\n\t0x252: 0x78, 0x253: 0x79,\n\t0x258: 0x7a, 0x259: 0x7b, 0x25a: 0x7c, 0x25b: 0x7d, 0x25c: 0x7e, 0x25e: 0x7f,\n\t0x260: 0x80, 0x261: 0x81, 0x263: 0x82, 0x264: 0x83, 0x265: 0x84, 0x266: 0x85, 0x267: 0x86,\n\t0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26f: 0x8b,\n\t// Block 0xa, offset 0x280\n\t0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x0e, 0x2af: 0x0e,\n\t0x2b0: 0x0e, 0x2b1: 0x0e, 0x2b2: 0x0e, 0x2b3: 0x0e, 0x2b4: 0x8e, 0x2b5: 0x0e, 0x2b6: 0x0e, 0x2b7: 0x8f,\n\t0x2b8: 0x90, 0x2b9: 0x91, 0x2ba: 0x0e, 0x2bb: 0x92, 0x2bc: 0x93, 0x2bd: 0x94, 0x2bf: 0x95,\n\t// Block 0xb, offset 0x2c0\n\t0x2c4: 0x96, 0x2c5: 0x54, 0x2c6: 0x97, 0x2c7: 0x98,\n\t0x2cb: 0x99, 0x2cd: 0x9a,\n\t0x2e0: 0x9b, 0x2e1: 0x9b, 0x2e2: 0x9b, 0x2e3: 0x9b, 0x2e4: 0x9c, 0x2e5: 0x9b, 0x2e6: 0x9b, 0x2e7: 0x9b,\n\t0x2e8: 0x9d, 0x2e9: 0x9b, 0x2ea: 0x9b, 0x2eb: 0x9e, 0x2ec: 0x9f, 0x2ed: 0x9b, 0x2ee: 0x9b, 0x2ef: 0x9b,\n\t0x2f0: 0x9b, 0x2f1: 0x9b, 0x2f2: 0x9b, 0x2f3: 0x9b, 0x2f4: 0x9b, 0x2f5: 0x9b, 0x2f6: 0x9b, 0x2f7: 0x9b,\n\t0x2f8: 0x9b, 0x2f9: 0xa0, 0x2fa: 0x9b, 0x2fb: 0x9b, 0x2fc: 0x9b, 0x2fd: 0x9b, 0x2fe: 0x9b, 0x2ff: 0x9b,\n\t// Block 0xc, offset 0x300\n\t0x300: 0xa1, 0x301: 0xa2, 0x302: 0xa3, 0x304: 0xa4, 0x305: 0xa5, 0x306: 0xa6, 0x307: 0xa7,\n\t0x308: 0xa8, 0x30b: 0xa9, 0x30c: 0xaa, 0x30d: 0xab,\n\t0x310: 0xac, 0x311: 0xad, 0x312: 0xae, 0x313: 0xaf, 0x316: 0xb0, 0x317: 0xb1,\n\t0x318: 0xb2, 0x319: 0xb3, 0x31a: 0xb4, 0x31c: 0xb5,\n\t0x330: 0xb6, 0x332: 0xb7,\n\t// Block 0xd, offset 0x340\n\t0x36b: 0xb8, 0x36c: 0xb9,\n\t0x37e: 0xba,\n\t// Block 0xe, offset 0x380\n\t0x3b2: 0xbb,\n\t// Block 0xf, offset 0x3c0\n\t0x3c5: 0xbc, 0x3c6: 0xbd,\n\t0x3c8: 0x54, 0x3c9: 0xbe, 0x3cc: 0x54, 0x3cd: 0xbf,\n\t0x3db: 0xc0, 0x3dc: 0xc1, 0x3dd: 0xc2, 0x3de: 0xc3, 0x3df: 0xc4,\n\t0x3e8: 0xc5, 0x3e9: 0xc6, 0x3ea: 0xc7,\n\t// Block 0x10, offset 0x400\n\t0x400: 0xc8,\n\t0x420: 0x9b, 0x421: 0x9b, 0x422: 0x9b, 0x423: 0xc9, 0x424: 0x9b, 0x425: 0xca, 0x426: 0x9b, 0x427: 0x9b,\n\t0x428: 0x9b, 0x429: 0x9b, 0x42a: 0x9b, 0x42b: 0x9b, 0x42c: 0x9b, 0x42d: 0x9b, 0x42e: 0x9b, 0x42f: 0x9b,\n\t0x430: 0x9b, 0x431: 0x9b, 0x432: 0x9b, 0x433: 0x9b, 0x434: 0x9b, 0x435: 0x9b, 0x436: 0x9b, 0x437: 0x9b,\n\t0x438: 0x0e, 0x439: 0x0e, 0x43a: 0x0e, 0x43b: 0xcb, 0x43c: 0x9b, 0x43d: 0x9b, 0x43e: 0x9b, 0x43f: 0x9b,\n\t// Block 0x11, offset 0x440\n\t0x440: 0xcc, 0x441: 0x54, 0x442: 0xcd, 0x443: 0xce, 0x444: 0xcf, 0x445: 0xd0,\n\t0x44c: 0x54, 0x44d: 0x54, 0x44e: 0x54, 0x44f: 0x54,\n\t0x450: 0x54, 0x451: 0x54, 0x452: 0x54, 0x453: 0x54, 0x454: 0x54, 0x455: 0x54, 0x456: 0x54, 0x457: 0x54,\n\t0x458: 0x54, 0x459: 0x54, 0x45a: 0x54, 0x45b: 0xd1, 0x45c: 0x54, 0x45d: 0x6c, 0x45e: 0x54, 0x45f: 0xd2,\n\t0x460: 0xd3, 0x461: 0xd4, 0x462: 0xd5, 0x464: 0xd6, 0x465: 0xd7, 0x466: 0xd8, 0x467: 0x36,\n\t0x47f: 0xd9,\n\t// Block 0x12, offset 0x480\n\t0x4bf: 0xd9,\n\t// Block 0x13, offset 0x4c0\n\t0x4d0: 0x09, 0x4d1: 0x0a, 0x4d6: 0x0b,\n\t0x4db: 0x0c, 0x4dd: 0x0d, 0x4de: 0x0e, 0x4df: 0x0f,\n\t0x4ef: 0x10,\n\t0x4ff: 0x10,\n\t// Block 0x14, offset 0x500\n\t0x50f: 0x10,\n\t0x51f: 0x10,\n\t0x52f: 0x10,\n\t0x53f: 0x10,\n\t// Block 0x15, offset 0x540\n\t0x540: 0xda, 0x541: 0xda, 0x542: 0xda, 0x543: 0xda, 0x544: 0x05, 0x545: 0x05, 0x546: 0x05, 0x547: 0xdb,\n\t0x548: 0xda, 0x549: 0xda, 0x54a: 0xda, 0x54b: 0xda, 0x54c: 0xda, 0x54d: 0xda, 0x54e: 0xda, 0x54f: 0xda,\n\t0x550: 0xda, 0x551: 0xda, 0x552: 0xda, 0x553: 0xda, 0x554: 0xda, 0x555: 0xda, 0x556: 0xda, 0x557: 0xda,\n\t0x558: 0xda, 0x559: 0xda, 0x55a: 0xda, 0x55b: 0xda, 0x55c: 0xda, 0x55d: 0xda, 0x55e: 0xda, 0x55f: 0xda,\n\t0x560: 0xda, 0x561: 0xda, 0x562: 0xda, 0x563: 0xda, 0x564: 0xda, 0x565: 0xda, 0x566: 0xda, 0x567: 0xda,\n\t0x568: 0xda, 0x569: 0xda, 0x56a: 0xda, 0x56b: 0xda, 0x56c: 0xda, 0x56d: 0xda, 0x56e: 0xda, 0x56f: 0xda,\n\t0x570: 0xda, 0x571: 0xda, 0x572: 0xda, 0x573: 0xda, 0x574: 0xda, 0x575: 0xda, 0x576: 0xda, 0x577: 0xda,\n\t0x578: 0xda, 0x579: 0xda, 0x57a: 0xda, 0x57b: 0xda, 0x57c: 0xda, 0x57d: 0xda, 0x57e: 0xda, 0x57f: 0xda,\n\t// Block 0x16, offset 0x580\n\t0x58f: 0x10,\n\t0x59f: 0x10,\n\t0x5a0: 0x13,\n\t0x5af: 0x10,\n\t0x5bf: 0x10,\n\t// Block 0x17, offset 0x5c0\n\t0x5cf: 0x10,\n}\n\n// Total table size 15800 bytes (15KiB); checksum: F50EF68C\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/bidi/trieval.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\npackage bidi\n\n// Class is the Unicode BiDi class. Each rune has a single class.\ntype Class uint\n\nconst (\n\tL       Class = iota // LeftToRight\n\tR                    // RightToLeft\n\tEN                   // EuropeanNumber\n\tES                   // EuropeanSeparator\n\tET                   // EuropeanTerminator\n\tAN                   // ArabicNumber\n\tCS                   // CommonSeparator\n\tB                    // ParagraphSeparator\n\tS                    // SegmentSeparator\n\tWS                   // WhiteSpace\n\tON                   // OtherNeutral\n\tBN                   // BoundaryNeutral\n\tNSM                  // NonspacingMark\n\tAL                   // ArabicLetter\n\tControl              // Control LRO - PDI\n\n\tnumClass\n\n\tLRO // LeftToRightOverride\n\tRLO // RightToLeftOverride\n\tLRE // LeftToRightEmbedding\n\tRLE // RightToLeftEmbedding\n\tPDF // PopDirectionalFormat\n\tLRI // LeftToRightIsolate\n\tRLI // RightToLeftIsolate\n\tFSI // FirstStrongIsolate\n\tPDI // PopDirectionalIsolate\n\n\tunknownClass = ^Class(0)\n)\n\n// A trie entry has the following bits:\n// 7..5  XOR mask for brackets\n// 4     1: Bracket open, 0: Bracket close\n// 3..0  Class type\n\nconst (\n\topenMask     = 0x10\n\txorMaskShift = 5\n)\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/norm/composition.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage norm\n\nimport \"unicode/utf8\"\n\nconst (\n\tmaxNonStarters = 30\n\t// The maximum number of characters needed for a buffer is\n\t// maxNonStarters + 1 for the starter + 1 for the GCJ\n\tmaxBufferSize    = maxNonStarters + 2\n\tmaxNFCExpansion  = 3  // NFC(0x1D160)\n\tmaxNFKCExpansion = 18 // NFKC(0xFDFA)\n\n\tmaxByteBufferSize = utf8.UTFMax * maxBufferSize // 128\n)\n\n// ssState is used for reporting the segment state after inserting a rune.\n// It is returned by streamSafe.next.\ntype ssState int\n\nconst (\n\t// Indicates a rune was successfully added to the segment.\n\tssSuccess ssState = iota\n\t// Indicates a rune starts a new segment and should not be added.\n\tssStarter\n\t// Indicates a rune caused a segment overflow and a CGJ should be inserted.\n\tssOverflow\n)\n\n// streamSafe implements the policy of when a CGJ should be inserted.\ntype streamSafe uint8\n\n// first inserts the first rune of a segment. It is a faster version of next if\n// it is known p represents the first rune in a segment.\nfunc (ss *streamSafe) first(p Properties) {\n\t*ss = streamSafe(p.nTrailingNonStarters())\n}\n\n// insert returns a ssState value to indicate whether a rune represented by p\n// can be inserted.\nfunc (ss *streamSafe) next(p Properties) ssState {\n\tif *ss > maxNonStarters {\n\t\tpanic(\"streamSafe was not reset\")\n\t}\n\tn := p.nLeadingNonStarters()\n\tif *ss += streamSafe(n); *ss > maxNonStarters {\n\t\t*ss = 0\n\t\treturn ssOverflow\n\t}\n\t// The Stream-Safe Text Processing prescribes that the counting can stop\n\t// as soon as a starter is encountered. However, there are some starters,\n\t// like Jamo V and T, that can combine with other runes, leaving their\n\t// successive non-starters appended to the previous, possibly causing an\n\t// overflow. We will therefore consider any rune with a non-zero nLead to\n\t// be a non-starter. Note that it always hold that if nLead > 0 then\n\t// nLead == nTrail.\n\tif n == 0 {\n\t\t*ss = streamSafe(p.nTrailingNonStarters())\n\t\treturn ssStarter\n\t}\n\treturn ssSuccess\n}\n\n// backwards is used for checking for overflow and segment starts\n// when traversing a string backwards. Users do not need to call first\n// for the first rune. The state of the streamSafe retains the count of\n// the non-starters loaded.\nfunc (ss *streamSafe) backwards(p Properties) ssState {\n\tif *ss > maxNonStarters {\n\t\tpanic(\"streamSafe was not reset\")\n\t}\n\tc := *ss + streamSafe(p.nTrailingNonStarters())\n\tif c > maxNonStarters {\n\t\treturn ssOverflow\n\t}\n\t*ss = c\n\tif p.nLeadingNonStarters() == 0 {\n\t\treturn ssStarter\n\t}\n\treturn ssSuccess\n}\n\nfunc (ss streamSafe) isMax() bool {\n\treturn ss == maxNonStarters\n}\n\n// GraphemeJoiner is inserted after maxNonStarters non-starter runes.\nconst GraphemeJoiner = \"\\u034F\"\n\n// reorderBuffer is used to normalize a single segment.  Characters inserted with\n// insert are decomposed and reordered based on CCC. The compose method can\n// be used to recombine characters.  Note that the byte buffer does not hold\n// the UTF-8 characters in order.  Only the rune array is maintained in sorted\n// order. flush writes the resulting segment to a byte array.\ntype reorderBuffer struct {\n\trune  [maxBufferSize]Properties // Per character info.\n\tbyte  [maxByteBufferSize]byte   // UTF-8 buffer. Referenced by runeInfo.pos.\n\tnbyte uint8                     // Number or bytes.\n\tss    streamSafe                // For limiting length of non-starter sequence.\n\tnrune int                       // Number of runeInfos.\n\tf     formInfo\n\n\tsrc      input\n\tnsrc     int\n\ttmpBytes input\n\n\tout    []byte\n\tflushF func(*reorderBuffer) bool\n}\n\nfunc (rb *reorderBuffer) init(f Form, src []byte) {\n\trb.f = *formTable[f]\n\trb.src.setBytes(src)\n\trb.nsrc = len(src)\n\trb.ss = 0\n}\n\nfunc (rb *reorderBuffer) initString(f Form, src string) {\n\trb.f = *formTable[f]\n\trb.src.setString(src)\n\trb.nsrc = len(src)\n\trb.ss = 0\n}\n\nfunc (rb *reorderBuffer) setFlusher(out []byte, f func(*reorderBuffer) bool) {\n\trb.out = out\n\trb.flushF = f\n}\n\n// reset discards all characters from the buffer.\nfunc (rb *reorderBuffer) reset() {\n\trb.nrune = 0\n\trb.nbyte = 0\n}\n\nfunc (rb *reorderBuffer) doFlush() bool {\n\tif rb.f.composing {\n\t\trb.compose()\n\t}\n\tres := rb.flushF(rb)\n\trb.reset()\n\treturn res\n}\n\n// appendFlush appends the normalized segment to rb.out.\nfunc appendFlush(rb *reorderBuffer) bool {\n\tfor i := 0; i < rb.nrune; i++ {\n\t\tstart := rb.rune[i].pos\n\t\tend := start + rb.rune[i].size\n\t\trb.out = append(rb.out, rb.byte[start:end]...)\n\t}\n\treturn true\n}\n\n// flush appends the normalized segment to out and resets rb.\nfunc (rb *reorderBuffer) flush(out []byte) []byte {\n\tfor i := 0; i < rb.nrune; i++ {\n\t\tstart := rb.rune[i].pos\n\t\tend := start + rb.rune[i].size\n\t\tout = append(out, rb.byte[start:end]...)\n\t}\n\trb.reset()\n\treturn out\n}\n\n// flushCopy copies the normalized segment to buf and resets rb.\n// It returns the number of bytes written to buf.\nfunc (rb *reorderBuffer) flushCopy(buf []byte) int {\n\tp := 0\n\tfor i := 0; i < rb.nrune; i++ {\n\t\trunep := rb.rune[i]\n\t\tp += copy(buf[p:], rb.byte[runep.pos:runep.pos+runep.size])\n\t}\n\trb.reset()\n\treturn p\n}\n\n// insertOrdered inserts a rune in the buffer, ordered by Canonical Combining Class.\n// It returns false if the buffer is not large enough to hold the rune.\n// It is used internally by insert and insertString only.\nfunc (rb *reorderBuffer) insertOrdered(info Properties) {\n\tn := rb.nrune\n\tb := rb.rune[:]\n\tcc := info.ccc\n\tif cc > 0 {\n\t\t// Find insertion position + move elements to make room.\n\t\tfor ; n > 0; n-- {\n\t\t\tif b[n-1].ccc <= cc {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tb[n] = b[n-1]\n\t\t}\n\t}\n\trb.nrune += 1\n\tpos := uint8(rb.nbyte)\n\trb.nbyte += utf8.UTFMax\n\tinfo.pos = pos\n\tb[n] = info\n}\n\n// insertErr is an error code returned by insert. Using this type instead\n// of error improves performance up to 20% for many of the benchmarks.\ntype insertErr int\n\nconst (\n\tiSuccess insertErr = -iota\n\tiShortDst\n\tiShortSrc\n)\n\n// insertFlush inserts the given rune in the buffer ordered by CCC.\n// If a decomposition with multiple segments are encountered, they leading\n// ones are flushed.\n// It returns a non-zero error code if the rune was not inserted.\nfunc (rb *reorderBuffer) insertFlush(src input, i int, info Properties) insertErr {\n\tif rune := src.hangul(i); rune != 0 {\n\t\trb.decomposeHangul(rune)\n\t\treturn iSuccess\n\t}\n\tif info.hasDecomposition() {\n\t\treturn rb.insertDecomposed(info.Decomposition())\n\t}\n\trb.insertSingle(src, i, info)\n\treturn iSuccess\n}\n\n// insertUnsafe inserts the given rune in the buffer ordered by CCC.\n// It is assumed there is sufficient space to hold the runes. It is the\n// responsibility of the caller to ensure this. This can be done by checking\n// the state returned by the streamSafe type.\nfunc (rb *reorderBuffer) insertUnsafe(src input, i int, info Properties) {\n\tif rune := src.hangul(i); rune != 0 {\n\t\trb.decomposeHangul(rune)\n\t}\n\tif info.hasDecomposition() {\n\t\t// TODO: inline.\n\t\trb.insertDecomposed(info.Decomposition())\n\t} else {\n\t\trb.insertSingle(src, i, info)\n\t}\n}\n\n// insertDecomposed inserts an entry in to the reorderBuffer for each rune\n// in dcomp. dcomp must be a sequence of decomposed UTF-8-encoded runes.\n// It flushes the buffer on each new segment start.\nfunc (rb *reorderBuffer) insertDecomposed(dcomp []byte) insertErr {\n\trb.tmpBytes.setBytes(dcomp)\n\t// As the streamSafe accounting already handles the counting for modifiers,\n\t// we don't have to call next. However, we do need to keep the accounting\n\t// intact when flushing the buffer.\n\tfor i := 0; i < len(dcomp); {\n\t\tinfo := rb.f.info(rb.tmpBytes, i)\n\t\tif info.BoundaryBefore() && rb.nrune > 0 && !rb.doFlush() {\n\t\t\treturn iShortDst\n\t\t}\n\t\ti += copy(rb.byte[rb.nbyte:], dcomp[i:i+int(info.size)])\n\t\trb.insertOrdered(info)\n\t}\n\treturn iSuccess\n}\n\n// insertSingle inserts an entry in the reorderBuffer for the rune at\n// position i. info is the runeInfo for the rune at position i.\nfunc (rb *reorderBuffer) insertSingle(src input, i int, info Properties) {\n\tsrc.copySlice(rb.byte[rb.nbyte:], i, i+int(info.size))\n\trb.insertOrdered(info)\n}\n\n// insertCGJ inserts a Combining Grapheme Joiner (0x034f) into rb.\nfunc (rb *reorderBuffer) insertCGJ() {\n\trb.insertSingle(input{str: GraphemeJoiner}, 0, Properties{size: uint8(len(GraphemeJoiner))})\n}\n\n// appendRune inserts a rune at the end of the buffer. It is used for Hangul.\nfunc (rb *reorderBuffer) appendRune(r rune) {\n\tbn := rb.nbyte\n\tsz := utf8.EncodeRune(rb.byte[bn:], rune(r))\n\trb.nbyte += utf8.UTFMax\n\trb.rune[rb.nrune] = Properties{pos: bn, size: uint8(sz)}\n\trb.nrune++\n}\n\n// assignRune sets a rune at position pos. It is used for Hangul and recomposition.\nfunc (rb *reorderBuffer) assignRune(pos int, r rune) {\n\tbn := rb.rune[pos].pos\n\tsz := utf8.EncodeRune(rb.byte[bn:], rune(r))\n\trb.rune[pos] = Properties{pos: bn, size: uint8(sz)}\n}\n\n// runeAt returns the rune at position n. It is used for Hangul and recomposition.\nfunc (rb *reorderBuffer) runeAt(n int) rune {\n\tinf := rb.rune[n]\n\tr, _ := utf8.DecodeRune(rb.byte[inf.pos : inf.pos+inf.size])\n\treturn r\n}\n\n// bytesAt returns the UTF-8 encoding of the rune at position n.\n// It is used for Hangul and recomposition.\nfunc (rb *reorderBuffer) bytesAt(n int) []byte {\n\tinf := rb.rune[n]\n\treturn rb.byte[inf.pos : int(inf.pos)+int(inf.size)]\n}\n\n// For Hangul we combine algorithmically, instead of using tables.\nconst (\n\thangulBase  = 0xAC00 // UTF-8(hangulBase) -> EA B0 80\n\thangulBase0 = 0xEA\n\thangulBase1 = 0xB0\n\thangulBase2 = 0x80\n\n\thangulEnd  = hangulBase + jamoLVTCount // UTF-8(0xD7A4) -> ED 9E A4\n\thangulEnd0 = 0xED\n\thangulEnd1 = 0x9E\n\thangulEnd2 = 0xA4\n\n\tjamoLBase  = 0x1100 // UTF-8(jamoLBase) -> E1 84 00\n\tjamoLBase0 = 0xE1\n\tjamoLBase1 = 0x84\n\tjamoLEnd   = 0x1113\n\tjamoVBase  = 0x1161\n\tjamoVEnd   = 0x1176\n\tjamoTBase  = 0x11A7\n\tjamoTEnd   = 0x11C3\n\n\tjamoTCount   = 28\n\tjamoVCount   = 21\n\tjamoVTCount  = 21 * 28\n\tjamoLVTCount = 19 * 21 * 28\n)\n\nconst hangulUTF8Size = 3\n\nfunc isHangul(b []byte) bool {\n\tif len(b) < hangulUTF8Size {\n\t\treturn false\n\t}\n\tb0 := b[0]\n\tif b0 < hangulBase0 {\n\t\treturn false\n\t}\n\tb1 := b[1]\n\tswitch {\n\tcase b0 == hangulBase0:\n\t\treturn b1 >= hangulBase1\n\tcase b0 < hangulEnd0:\n\t\treturn true\n\tcase b0 > hangulEnd0:\n\t\treturn false\n\tcase b1 < hangulEnd1:\n\t\treturn true\n\t}\n\treturn b1 == hangulEnd1 && b[2] < hangulEnd2\n}\n\nfunc isHangulString(b string) bool {\n\tif len(b) < hangulUTF8Size {\n\t\treturn false\n\t}\n\tb0 := b[0]\n\tif b0 < hangulBase0 {\n\t\treturn false\n\t}\n\tb1 := b[1]\n\tswitch {\n\tcase b0 == hangulBase0:\n\t\treturn b1 >= hangulBase1\n\tcase b0 < hangulEnd0:\n\t\treturn true\n\tcase b0 > hangulEnd0:\n\t\treturn false\n\tcase b1 < hangulEnd1:\n\t\treturn true\n\t}\n\treturn b1 == hangulEnd1 && b[2] < hangulEnd2\n}\n\n// Caller must ensure len(b) >= 2.\nfunc isJamoVT(b []byte) bool {\n\t// True if (rune & 0xff00) == jamoLBase\n\treturn b[0] == jamoLBase0 && (b[1]&0xFC) == jamoLBase1\n}\n\nfunc isHangulWithoutJamoT(b []byte) bool {\n\tc, _ := utf8.DecodeRune(b)\n\tc -= hangulBase\n\treturn c < jamoLVTCount && c%jamoTCount == 0\n}\n\n// decomposeHangul writes the decomposed Hangul to buf and returns the number\n// of bytes written.  len(buf) should be at least 9.\nfunc decomposeHangul(buf []byte, r rune) int {\n\tconst JamoUTF8Len = 3\n\tr -= hangulBase\n\tx := r % jamoTCount\n\tr /= jamoTCount\n\tutf8.EncodeRune(buf, jamoLBase+r/jamoVCount)\n\tutf8.EncodeRune(buf[JamoUTF8Len:], jamoVBase+r%jamoVCount)\n\tif x != 0 {\n\t\tutf8.EncodeRune(buf[2*JamoUTF8Len:], jamoTBase+x)\n\t\treturn 3 * JamoUTF8Len\n\t}\n\treturn 2 * JamoUTF8Len\n}\n\n// decomposeHangul algorithmically decomposes a Hangul rune into\n// its Jamo components.\n// See https://unicode.org/reports/tr15/#Hangul for details on decomposing Hangul.\nfunc (rb *reorderBuffer) decomposeHangul(r rune) {\n\tr -= hangulBase\n\tx := r % jamoTCount\n\tr /= jamoTCount\n\trb.appendRune(jamoLBase + r/jamoVCount)\n\trb.appendRune(jamoVBase + r%jamoVCount)\n\tif x != 0 {\n\t\trb.appendRune(jamoTBase + x)\n\t}\n}\n\n// combineHangul algorithmically combines Jamo character components into Hangul.\n// See https://unicode.org/reports/tr15/#Hangul for details on combining Hangul.\nfunc (rb *reorderBuffer) combineHangul(s, i, k int) {\n\tb := rb.rune[:]\n\tbn := rb.nrune\n\tfor ; i < bn; i++ {\n\t\tcccB := b[k-1].ccc\n\t\tcccC := b[i].ccc\n\t\tif cccB == 0 {\n\t\t\ts = k - 1\n\t\t}\n\t\tif s != k-1 && cccB >= cccC {\n\t\t\t// b[i] is blocked by greater-equal cccX below it\n\t\t\tb[k] = b[i]\n\t\t\tk++\n\t\t} else {\n\t\t\tl := rb.runeAt(s) // also used to compare to hangulBase\n\t\t\tv := rb.runeAt(i) // also used to compare to jamoT\n\t\t\tswitch {\n\t\t\tcase jamoLBase <= l && l < jamoLEnd &&\n\t\t\t\tjamoVBase <= v && v < jamoVEnd:\n\t\t\t\t// 11xx plus 116x to LV\n\t\t\t\trb.assignRune(s, hangulBase+\n\t\t\t\t\t(l-jamoLBase)*jamoVTCount+(v-jamoVBase)*jamoTCount)\n\t\t\tcase hangulBase <= l && l < hangulEnd &&\n\t\t\t\tjamoTBase < v && v < jamoTEnd &&\n\t\t\t\t((l-hangulBase)%jamoTCount) == 0:\n\t\t\t\t// ACxx plus 11Ax to LVT\n\t\t\t\trb.assignRune(s, l+v-jamoTBase)\n\t\t\tdefault:\n\t\t\t\tb[k] = b[i]\n\t\t\t\tk++\n\t\t\t}\n\t\t}\n\t}\n\trb.nrune = k\n}\n\n// compose recombines the runes in the buffer.\n// It should only be used to recompose a single segment, as it will not\n// handle alternations between Hangul and non-Hangul characters correctly.\nfunc (rb *reorderBuffer) compose() {\n\t// Lazily load the map used by the combine func below, but do\n\t// it outside of the loop.\n\trecompMapOnce.Do(buildRecompMap)\n\n\t// UAX #15, section X5 , including Corrigendum #5\n\t// \"In any character sequence beginning with starter S, a character C is\n\t//  blocked from S if and only if there is some character B between S\n\t//  and C, and either B is a starter or it has the same or higher\n\t//  combining class as C.\"\n\tbn := rb.nrune\n\tif bn == 0 {\n\t\treturn\n\t}\n\tk := 1\n\tb := rb.rune[:]\n\tfor s, i := 0, 1; i < bn; i++ {\n\t\tif isJamoVT(rb.bytesAt(i)) {\n\t\t\t// Redo from start in Hangul mode. Necessary to support\n\t\t\t// U+320E..U+321E in NFKC mode.\n\t\t\trb.combineHangul(s, i, k)\n\t\t\treturn\n\t\t}\n\t\tii := b[i]\n\t\t// We can only use combineForward as a filter if we later\n\t\t// get the info for the combined character. This is more\n\t\t// expensive than using the filter. Using combinesBackward()\n\t\t// is safe.\n\t\tif ii.combinesBackward() {\n\t\t\tcccB := b[k-1].ccc\n\t\t\tcccC := ii.ccc\n\t\t\tblocked := false // b[i] blocked by starter or greater or equal CCC?\n\t\t\tif cccB == 0 {\n\t\t\t\ts = k - 1\n\t\t\t} else {\n\t\t\t\tblocked = s != k-1 && cccB >= cccC\n\t\t\t}\n\t\t\tif !blocked {\n\t\t\t\tcombined := combine(rb.runeAt(s), rb.runeAt(i))\n\t\t\t\tif combined != 0 {\n\t\t\t\t\trb.assignRune(s, combined)\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tb[k] = b[i]\n\t\tk++\n\t}\n\trb.nrune = k\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/norm/forminfo.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage norm\n\nimport \"encoding/binary\"\n\n// This file contains Form-specific logic and wrappers for data in tables.go.\n\n// Rune info is stored in a separate trie per composing form. A composing form\n// and its corresponding decomposing form share the same trie.  Each trie maps\n// a rune to a uint16. The values take two forms.  For v >= 0x8000:\n//   bits\n//   15:    1 (inverse of NFD_QC bit of qcInfo)\n//   13..7: qcInfo (see below). isYesD is always true (no decomposition).\n//    6..0: ccc (compressed CCC value).\n// For v < 0x8000, the respective rune has a decomposition and v is an index\n// into a byte array of UTF-8 decomposition sequences and additional info and\n// has the form:\n//    <header> <decomp_byte>* [<tccc> [<lccc>]]\n// The header contains the number of bytes in the decomposition (excluding this\n// length byte). The two most significant bits of this length byte correspond\n// to bit 5 and 4 of qcInfo (see below).  The byte sequence itself starts at v+1.\n// The byte sequence is followed by a trailing and leading CCC if the values\n// for these are not zero.  The value of v determines which ccc are appended\n// to the sequences.  For v < firstCCC, there are none, for v >= firstCCC,\n// the sequence is followed by a trailing ccc, and for v >= firstLeadingCC\n// there is an additional leading ccc. The value of tccc itself is the\n// trailing CCC shifted left 2 bits. The two least-significant bits of tccc\n// are the number of trailing non-starters.\n\nconst (\n\tqcInfoMask      = 0x3F // to clear all but the relevant bits in a qcInfo\n\theaderLenMask   = 0x3F // extract the length value from the header byte\n\theaderFlagsMask = 0xC0 // extract the qcInfo bits from the header byte\n)\n\n// Properties provides access to normalization properties of a rune.\ntype Properties struct {\n\tpos   uint8  // start position in reorderBuffer; used in composition.go\n\tsize  uint8  // length of UTF-8 encoding of this rune\n\tccc   uint8  // leading canonical combining class (ccc if not decomposition)\n\ttccc  uint8  // trailing canonical combining class (ccc if not decomposition)\n\tnLead uint8  // number of leading non-starters.\n\tflags qcInfo // quick check flags\n\tindex uint16\n}\n\n// functions dispatchable per form\ntype lookupFunc func(b input, i int) Properties\n\n// formInfo holds Form-specific functions and tables.\ntype formInfo struct {\n\tform                     Form\n\tcomposing, compatibility bool // form type\n\tinfo                     lookupFunc\n\tnextMain                 iterFunc\n}\n\nvar formTable = []*formInfo{{\n\tform:          NFC,\n\tcomposing:     true,\n\tcompatibility: false,\n\tinfo:          lookupInfoNFC,\n\tnextMain:      nextComposed,\n}, {\n\tform:          NFD,\n\tcomposing:     false,\n\tcompatibility: false,\n\tinfo:          lookupInfoNFC,\n\tnextMain:      nextDecomposed,\n}, {\n\tform:          NFKC,\n\tcomposing:     true,\n\tcompatibility: true,\n\tinfo:          lookupInfoNFKC,\n\tnextMain:      nextComposed,\n}, {\n\tform:          NFKD,\n\tcomposing:     false,\n\tcompatibility: true,\n\tinfo:          lookupInfoNFKC,\n\tnextMain:      nextDecomposed,\n}}\n\n// We do not distinguish between boundaries for NFC, NFD, etc. to avoid\n// unexpected behavior for the user.  For example, in NFD, there is a boundary\n// after 'a'.  However, 'a' might combine with modifiers, so from the application's\n// perspective it is not a good boundary. We will therefore always use the\n// boundaries for the combining variants.\n\n// BoundaryBefore returns true if this rune starts a new segment and\n// cannot combine with any rune on the left.\nfunc (p Properties) BoundaryBefore() bool {\n\tif p.ccc == 0 && !p.combinesBackward() {\n\t\treturn true\n\t}\n\t// We assume that the CCC of the first character in a decomposition\n\t// is always non-zero if different from info.ccc and that we can return\n\t// false at this point. This is verified by maketables.\n\treturn false\n}\n\n// BoundaryAfter returns true if runes cannot combine with or otherwise\n// interact with this or previous runes.\nfunc (p Properties) BoundaryAfter() bool {\n\t// TODO: loosen these conditions.\n\treturn p.isInert()\n}\n\n// We pack quick check data in 4 bits:\n//\n//\t5:    Combines forward  (0 == false, 1 == true)\n//\t4..3: NFC_QC Yes(00), No (10), or Maybe (11)\n//\t2:    NFD_QC Yes (0) or No (1). No also means there is a decomposition.\n//\t1..0: Number of trailing non-starters.\n//\n// When all 4 bits are zero, the character is inert, meaning it is never\n// influenced by normalization.\ntype qcInfo uint8\n\nfunc (p Properties) isYesC() bool { return p.flags&0x10 == 0 }\nfunc (p Properties) isYesD() bool { return p.flags&0x4 == 0 }\n\nfunc (p Properties) combinesForward() bool  { return p.flags&0x20 != 0 }\nfunc (p Properties) combinesBackward() bool { return p.flags&0x8 != 0 } // == isMaybe\nfunc (p Properties) hasDecomposition() bool { return p.flags&0x4 != 0 } // == isNoD\n\nfunc (p Properties) isInert() bool {\n\treturn p.flags&qcInfoMask == 0 && p.ccc == 0\n}\n\nfunc (p Properties) multiSegment() bool {\n\treturn p.index >= firstMulti && p.index < endMulti\n}\n\nfunc (p Properties) nLeadingNonStarters() uint8 {\n\treturn p.nLead\n}\n\nfunc (p Properties) nTrailingNonStarters() uint8 {\n\treturn uint8(p.flags & 0x03)\n}\n\n// Decomposition returns the decomposition for the underlying rune\n// or nil if there is none.\nfunc (p Properties) Decomposition() []byte {\n\t// TODO: create the decomposition for Hangul?\n\tif p.index == 0 {\n\t\treturn nil\n\t}\n\ti := p.index\n\tn := decomps[i] & headerLenMask\n\ti++\n\treturn decomps[i : i+uint16(n)]\n}\n\n// Size returns the length of UTF-8 encoding of the rune.\nfunc (p Properties) Size() int {\n\treturn int(p.size)\n}\n\n// CCC returns the canonical combining class of the underlying rune.\nfunc (p Properties) CCC() uint8 {\n\tif p.index >= firstCCCZeroExcept {\n\t\treturn 0\n\t}\n\treturn ccc[p.ccc]\n}\n\n// LeadCCC returns the CCC of the first rune in the decomposition.\n// If there is no decomposition, LeadCCC equals CCC.\nfunc (p Properties) LeadCCC() uint8 {\n\treturn ccc[p.ccc]\n}\n\n// TrailCCC returns the CCC of the last rune in the decomposition.\n// If there is no decomposition, TrailCCC equals CCC.\nfunc (p Properties) TrailCCC() uint8 {\n\treturn ccc[p.tccc]\n}\n\nfunc buildRecompMap() {\n\trecompMap = make(map[uint32]rune, len(recompMapPacked)/8)\n\tvar buf [8]byte\n\tfor i := 0; i < len(recompMapPacked); i += 8 {\n\t\tcopy(buf[:], recompMapPacked[i:i+8])\n\t\tkey := binary.BigEndian.Uint32(buf[:4])\n\t\tval := binary.BigEndian.Uint32(buf[4:])\n\t\trecompMap[key] = rune(val)\n\t}\n}\n\n// Recomposition\n// We use 32-bit keys instead of 64-bit for the two codepoint keys.\n// This clips off the bits of three entries, but we know this will not\n// result in a collision. In the unlikely event that changes to\n// UnicodeData.txt introduce collisions, the compiler will catch it.\n// Note that the recomposition map for NFC and NFKC are identical.\n\n// combine returns the combined rune or 0 if it doesn't exist.\n//\n// The caller is responsible for calling\n// recompMapOnce.Do(buildRecompMap) sometime before this is called.\nfunc combine(a, b rune) rune {\n\tkey := uint32(uint16(a))<<16 + uint32(uint16(b))\n\tif recompMap == nil {\n\t\tpanic(\"caller error\") // see func comment\n\t}\n\treturn recompMap[key]\n}\n\nfunc lookupInfoNFC(b input, i int) Properties {\n\tv, sz := b.charinfoNFC(i)\n\treturn compInfo(v, sz)\n}\n\nfunc lookupInfoNFKC(b input, i int) Properties {\n\tv, sz := b.charinfoNFKC(i)\n\treturn compInfo(v, sz)\n}\n\n// Properties returns properties for the first rune in s.\nfunc (f Form) Properties(s []byte) Properties {\n\tif f == NFC || f == NFD {\n\t\treturn compInfo(nfcData.lookup(s))\n\t}\n\treturn compInfo(nfkcData.lookup(s))\n}\n\n// PropertiesString returns properties for the first rune in s.\nfunc (f Form) PropertiesString(s string) Properties {\n\tif f == NFC || f == NFD {\n\t\treturn compInfo(nfcData.lookupString(s))\n\t}\n\treturn compInfo(nfkcData.lookupString(s))\n}\n\n// compInfo converts the information contained in v and sz\n// to a Properties.  See the comment at the top of the file\n// for more information on the format.\nfunc compInfo(v uint16, sz int) Properties {\n\tif v == 0 {\n\t\treturn Properties{size: uint8(sz)}\n\t} else if v >= 0x8000 {\n\t\tp := Properties{\n\t\t\tsize:  uint8(sz),\n\t\t\tccc:   uint8(v),\n\t\t\ttccc:  uint8(v),\n\t\t\tflags: qcInfo(v >> 8),\n\t\t}\n\t\tif p.ccc > 0 || p.combinesBackward() {\n\t\t\tp.nLead = uint8(p.flags & 0x3)\n\t\t}\n\t\treturn p\n\t}\n\t// has decomposition\n\th := decomps[v]\n\tf := (qcInfo(h&headerFlagsMask) >> 2) | 0x4\n\tp := Properties{size: uint8(sz), flags: f, index: v}\n\tif v >= firstCCC {\n\t\tv += uint16(h&headerLenMask) + 1\n\t\tc := decomps[v]\n\t\tp.tccc = c >> 2\n\t\tp.flags |= qcInfo(c & 0x3)\n\t\tif v >= firstLeadingCCC {\n\t\t\tp.nLead = c & 0x3\n\t\t\tif v >= firstStarterWithNLead {\n\t\t\t\t// We were tricked. Remove the decomposition.\n\t\t\t\tp.flags &= 0x03\n\t\t\t\tp.index = 0\n\t\t\t\treturn p\n\t\t\t}\n\t\t\tp.ccc = decomps[v+1]\n\t\t}\n\t}\n\treturn p\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/norm/input.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage norm\n\nimport \"unicode/utf8\"\n\ntype input struct {\n\tstr   string\n\tbytes []byte\n}\n\nfunc inputBytes(str []byte) input {\n\treturn input{bytes: str}\n}\n\nfunc inputString(str string) input {\n\treturn input{str: str}\n}\n\nfunc (in *input) setBytes(str []byte) {\n\tin.str = \"\"\n\tin.bytes = str\n}\n\nfunc (in *input) setString(str string) {\n\tin.str = str\n\tin.bytes = nil\n}\n\nfunc (in *input) _byte(p int) byte {\n\tif in.bytes == nil {\n\t\treturn in.str[p]\n\t}\n\treturn in.bytes[p]\n}\n\nfunc (in *input) skipASCII(p, max int) int {\n\tif in.bytes == nil {\n\t\tfor ; p < max && in.str[p] < utf8.RuneSelf; p++ {\n\t\t}\n\t} else {\n\t\tfor ; p < max && in.bytes[p] < utf8.RuneSelf; p++ {\n\t\t}\n\t}\n\treturn p\n}\n\nfunc (in *input) skipContinuationBytes(p int) int {\n\tif in.bytes == nil {\n\t\tfor ; p < len(in.str) && !utf8.RuneStart(in.str[p]); p++ {\n\t\t}\n\t} else {\n\t\tfor ; p < len(in.bytes) && !utf8.RuneStart(in.bytes[p]); p++ {\n\t\t}\n\t}\n\treturn p\n}\n\nfunc (in *input) appendSlice(buf []byte, b, e int) []byte {\n\tif in.bytes != nil {\n\t\treturn append(buf, in.bytes[b:e]...)\n\t}\n\tfor i := b; i < e; i++ {\n\t\tbuf = append(buf, in.str[i])\n\t}\n\treturn buf\n}\n\nfunc (in *input) copySlice(buf []byte, b, e int) int {\n\tif in.bytes == nil {\n\t\treturn copy(buf, in.str[b:e])\n\t}\n\treturn copy(buf, in.bytes[b:e])\n}\n\nfunc (in *input) charinfoNFC(p int) (uint16, int) {\n\tif in.bytes == nil {\n\t\treturn nfcData.lookupString(in.str[p:])\n\t}\n\treturn nfcData.lookup(in.bytes[p:])\n}\n\nfunc (in *input) charinfoNFKC(p int) (uint16, int) {\n\tif in.bytes == nil {\n\t\treturn nfkcData.lookupString(in.str[p:])\n\t}\n\treturn nfkcData.lookup(in.bytes[p:])\n}\n\nfunc (in *input) hangul(p int) (r rune) {\n\tvar size int\n\tif in.bytes == nil {\n\t\tif !isHangulString(in.str[p:]) {\n\t\t\treturn 0\n\t\t}\n\t\tr, size = utf8.DecodeRuneInString(in.str[p:])\n\t} else {\n\t\tif !isHangul(in.bytes[p:]) {\n\t\t\treturn 0\n\t\t}\n\t\tr, size = utf8.DecodeRune(in.bytes[p:])\n\t}\n\tif size != hangulUTF8Size {\n\t\treturn 0\n\t}\n\treturn r\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/norm/iter.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage norm\n\nimport (\n\t\"fmt\"\n\t\"unicode/utf8\"\n)\n\n// MaxSegmentSize is the maximum size of a byte buffer needed to consider any\n// sequence of starter and non-starter runes for the purpose of normalization.\nconst MaxSegmentSize = maxByteBufferSize\n\n// An Iter iterates over a string or byte slice, while normalizing it\n// to a given Form.\ntype Iter struct {\n\trb     reorderBuffer\n\tbuf    [maxByteBufferSize]byte\n\tinfo   Properties // first character saved from previous iteration\n\tnext   iterFunc   // implementation of next depends on form\n\tasciiF iterFunc\n\n\tp        int    // current position in input source\n\tmultiSeg []byte // remainder of multi-segment decomposition\n}\n\ntype iterFunc func(*Iter) []byte\n\n// Init initializes i to iterate over src after normalizing it to Form f.\nfunc (i *Iter) Init(f Form, src []byte) {\n\ti.p = 0\n\tif len(src) == 0 {\n\t\ti.setDone()\n\t\ti.rb.nsrc = 0\n\t\treturn\n\t}\n\ti.multiSeg = nil\n\ti.rb.init(f, src)\n\ti.next = i.rb.f.nextMain\n\ti.asciiF = nextASCIIBytes\n\ti.info = i.rb.f.info(i.rb.src, i.p)\n\ti.rb.ss.first(i.info)\n}\n\n// InitString initializes i to iterate over src after normalizing it to Form f.\nfunc (i *Iter) InitString(f Form, src string) {\n\ti.p = 0\n\tif len(src) == 0 {\n\t\ti.setDone()\n\t\ti.rb.nsrc = 0\n\t\treturn\n\t}\n\ti.multiSeg = nil\n\ti.rb.initString(f, src)\n\ti.next = i.rb.f.nextMain\n\ti.asciiF = nextASCIIString\n\ti.info = i.rb.f.info(i.rb.src, i.p)\n\ti.rb.ss.first(i.info)\n}\n\n// Seek sets the segment to be returned by the next call to Next to start\n// at position p.  It is the responsibility of the caller to set p to the\n// start of a segment.\nfunc (i *Iter) Seek(offset int64, whence int) (int64, error) {\n\tvar abs int64\n\tswitch whence {\n\tcase 0:\n\t\tabs = offset\n\tcase 1:\n\t\tabs = int64(i.p) + offset\n\tcase 2:\n\t\tabs = int64(i.rb.nsrc) + offset\n\tdefault:\n\t\treturn 0, fmt.Errorf(\"norm: invalid whence\")\n\t}\n\tif abs < 0 {\n\t\treturn 0, fmt.Errorf(\"norm: negative position\")\n\t}\n\tif int(abs) >= i.rb.nsrc {\n\t\ti.setDone()\n\t\treturn int64(i.p), nil\n\t}\n\ti.p = int(abs)\n\ti.multiSeg = nil\n\ti.next = i.rb.f.nextMain\n\ti.info = i.rb.f.info(i.rb.src, i.p)\n\ti.rb.ss.first(i.info)\n\treturn abs, nil\n}\n\n// returnSlice returns a slice of the underlying input type as a byte slice.\n// If the underlying is of type []byte, it will simply return a slice.\n// If the underlying is of type string, it will copy the slice to the buffer\n// and return that.\nfunc (i *Iter) returnSlice(a, b int) []byte {\n\tif i.rb.src.bytes == nil {\n\t\treturn i.buf[:copy(i.buf[:], i.rb.src.str[a:b])]\n\t}\n\treturn i.rb.src.bytes[a:b]\n}\n\n// Pos returns the byte position at which the next call to Next will commence processing.\nfunc (i *Iter) Pos() int {\n\treturn i.p\n}\n\nfunc (i *Iter) setDone() {\n\ti.next = nextDone\n\ti.p = i.rb.nsrc\n}\n\n// Done returns true if there is no more input to process.\nfunc (i *Iter) Done() bool {\n\treturn i.p >= i.rb.nsrc\n}\n\n// Next returns f(i.input[i.Pos():n]), where n is a boundary of i.input.\n// For any input a and b for which f(a) == f(b), subsequent calls\n// to Next will return the same segments.\n// Modifying runes are grouped together with the preceding starter, if such a starter exists.\n// Although not guaranteed, n will typically be the smallest possible n.\nfunc (i *Iter) Next() []byte {\n\treturn i.next(i)\n}\n\nfunc nextASCIIBytes(i *Iter) []byte {\n\tp := i.p + 1\n\tif p >= i.rb.nsrc {\n\t\tp0 := i.p\n\t\ti.setDone()\n\t\treturn i.rb.src.bytes[p0:p]\n\t}\n\tif i.rb.src.bytes[p] < utf8.RuneSelf {\n\t\tp0 := i.p\n\t\ti.p = p\n\t\treturn i.rb.src.bytes[p0:p]\n\t}\n\ti.info = i.rb.f.info(i.rb.src, i.p)\n\ti.next = i.rb.f.nextMain\n\treturn i.next(i)\n}\n\nfunc nextASCIIString(i *Iter) []byte {\n\tp := i.p + 1\n\tif p >= i.rb.nsrc {\n\t\ti.buf[0] = i.rb.src.str[i.p]\n\t\ti.setDone()\n\t\treturn i.buf[:1]\n\t}\n\tif i.rb.src.str[p] < utf8.RuneSelf {\n\t\ti.buf[0] = i.rb.src.str[i.p]\n\t\ti.p = p\n\t\treturn i.buf[:1]\n\t}\n\ti.info = i.rb.f.info(i.rb.src, i.p)\n\ti.next = i.rb.f.nextMain\n\treturn i.next(i)\n}\n\nfunc nextHangul(i *Iter) []byte {\n\tp := i.p\n\tnext := p + hangulUTF8Size\n\tif next >= i.rb.nsrc {\n\t\ti.setDone()\n\t} else if i.rb.src.hangul(next) == 0 {\n\t\ti.rb.ss.next(i.info)\n\t\ti.info = i.rb.f.info(i.rb.src, i.p)\n\t\ti.next = i.rb.f.nextMain\n\t\treturn i.next(i)\n\t}\n\ti.p = next\n\treturn i.buf[:decomposeHangul(i.buf[:], i.rb.src.hangul(p))]\n}\n\nfunc nextDone(i *Iter) []byte {\n\treturn nil\n}\n\n// nextMulti is used for iterating over multi-segment decompositions\n// for decomposing normal forms.\nfunc nextMulti(i *Iter) []byte {\n\tj := 0\n\td := i.multiSeg\n\t// skip first rune\n\tfor j = 1; j < len(d) && !utf8.RuneStart(d[j]); j++ {\n\t}\n\tfor j < len(d) {\n\t\tinfo := i.rb.f.info(input{bytes: d}, j)\n\t\tif info.BoundaryBefore() {\n\t\t\ti.multiSeg = d[j:]\n\t\t\treturn d[:j]\n\t\t}\n\t\tj += int(info.size)\n\t}\n\t// treat last segment as normal decomposition\n\ti.next = i.rb.f.nextMain\n\treturn i.next(i)\n}\n\n// nextMultiNorm is used for iterating over multi-segment decompositions\n// for composing normal forms.\nfunc nextMultiNorm(i *Iter) []byte {\n\tj := 0\n\td := i.multiSeg\n\tfor j < len(d) {\n\t\tinfo := i.rb.f.info(input{bytes: d}, j)\n\t\tif info.BoundaryBefore() {\n\t\t\ti.rb.compose()\n\t\t\tseg := i.buf[:i.rb.flushCopy(i.buf[:])]\n\t\t\ti.rb.insertUnsafe(input{bytes: d}, j, info)\n\t\t\ti.multiSeg = d[j+int(info.size):]\n\t\t\treturn seg\n\t\t}\n\t\ti.rb.insertUnsafe(input{bytes: d}, j, info)\n\t\tj += int(info.size)\n\t}\n\ti.multiSeg = nil\n\ti.next = nextComposed\n\treturn doNormComposed(i)\n}\n\n// nextDecomposed is the implementation of Next for forms NFD and NFKD.\nfunc nextDecomposed(i *Iter) (next []byte) {\n\toutp := 0\n\tinCopyStart, outCopyStart := i.p, 0\n\tfor {\n\t\tif sz := int(i.info.size); sz <= 1 {\n\t\t\ti.rb.ss = 0\n\t\t\tp := i.p\n\t\t\ti.p++ // ASCII or illegal byte.  Either way, advance by 1.\n\t\t\tif i.p >= i.rb.nsrc {\n\t\t\t\ti.setDone()\n\t\t\t\treturn i.returnSlice(p, i.p)\n\t\t\t} else if i.rb.src._byte(i.p) < utf8.RuneSelf {\n\t\t\t\ti.next = i.asciiF\n\t\t\t\treturn i.returnSlice(p, i.p)\n\t\t\t}\n\t\t\toutp++\n\t\t} else if d := i.info.Decomposition(); d != nil {\n\t\t\t// Note: If leading CCC != 0, then len(d) == 2 and last is also non-zero.\n\t\t\t// Case 1: there is a leftover to copy.  In this case the decomposition\n\t\t\t// must begin with a modifier and should always be appended.\n\t\t\t// Case 2: no leftover. Simply return d if followed by a ccc == 0 value.\n\t\t\tp := outp + len(d)\n\t\t\tif outp > 0 {\n\t\t\t\ti.rb.src.copySlice(i.buf[outCopyStart:], inCopyStart, i.p)\n\t\t\t\t// TODO: this condition should not be possible, but we leave it\n\t\t\t\t// in for defensive purposes.\n\t\t\t\tif p > len(i.buf) {\n\t\t\t\t\treturn i.buf[:outp]\n\t\t\t\t}\n\t\t\t} else if i.info.multiSegment() {\n\t\t\t\t// outp must be 0 as multi-segment decompositions always\n\t\t\t\t// start a new segment.\n\t\t\t\tif i.multiSeg == nil {\n\t\t\t\t\ti.multiSeg = d\n\t\t\t\t\ti.next = nextMulti\n\t\t\t\t\treturn nextMulti(i)\n\t\t\t\t}\n\t\t\t\t// We are in the last segment.  Treat as normal decomposition.\n\t\t\t\td = i.multiSeg\n\t\t\t\ti.multiSeg = nil\n\t\t\t\tp = len(d)\n\t\t\t}\n\t\t\tprevCC := i.info.tccc\n\t\t\tif i.p += sz; i.p >= i.rb.nsrc {\n\t\t\t\ti.setDone()\n\t\t\t\ti.info = Properties{} // Force BoundaryBefore to succeed.\n\t\t\t} else {\n\t\t\t\ti.info = i.rb.f.info(i.rb.src, i.p)\n\t\t\t}\n\t\t\tswitch i.rb.ss.next(i.info) {\n\t\t\tcase ssOverflow:\n\t\t\t\ti.next = nextCGJDecompose\n\t\t\t\tfallthrough\n\t\t\tcase ssStarter:\n\t\t\t\tif outp > 0 {\n\t\t\t\t\tcopy(i.buf[outp:], d)\n\t\t\t\t\treturn i.buf[:p]\n\t\t\t\t}\n\t\t\t\treturn d\n\t\t\t}\n\t\t\tcopy(i.buf[outp:], d)\n\t\t\toutp = p\n\t\t\tinCopyStart, outCopyStart = i.p, outp\n\t\t\tif i.info.ccc < prevCC {\n\t\t\t\tgoto doNorm\n\t\t\t}\n\t\t\tcontinue\n\t\t} else if r := i.rb.src.hangul(i.p); r != 0 {\n\t\t\toutp = decomposeHangul(i.buf[:], r)\n\t\t\ti.p += hangulUTF8Size\n\t\t\tinCopyStart, outCopyStart = i.p, outp\n\t\t\tif i.p >= i.rb.nsrc {\n\t\t\t\ti.setDone()\n\t\t\t\tbreak\n\t\t\t} else if i.rb.src.hangul(i.p) != 0 {\n\t\t\t\ti.next = nextHangul\n\t\t\t\treturn i.buf[:outp]\n\t\t\t}\n\t\t} else {\n\t\t\tp := outp + sz\n\t\t\tif p > len(i.buf) {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\toutp = p\n\t\t\ti.p += sz\n\t\t}\n\t\tif i.p >= i.rb.nsrc {\n\t\t\ti.setDone()\n\t\t\tbreak\n\t\t}\n\t\tprevCC := i.info.tccc\n\t\ti.info = i.rb.f.info(i.rb.src, i.p)\n\t\tif v := i.rb.ss.next(i.info); v == ssStarter {\n\t\t\tbreak\n\t\t} else if v == ssOverflow {\n\t\t\ti.next = nextCGJDecompose\n\t\t\tbreak\n\t\t}\n\t\tif i.info.ccc < prevCC {\n\t\t\tgoto doNorm\n\t\t}\n\t}\n\tif outCopyStart == 0 {\n\t\treturn i.returnSlice(inCopyStart, i.p)\n\t} else if inCopyStart < i.p {\n\t\ti.rb.src.copySlice(i.buf[outCopyStart:], inCopyStart, i.p)\n\t}\n\treturn i.buf[:outp]\ndoNorm:\n\t// Insert what we have decomposed so far in the reorderBuffer.\n\t// As we will only reorder, there will always be enough room.\n\ti.rb.src.copySlice(i.buf[outCopyStart:], inCopyStart, i.p)\n\ti.rb.insertDecomposed(i.buf[0:outp])\n\treturn doNormDecomposed(i)\n}\n\nfunc doNormDecomposed(i *Iter) []byte {\n\tfor {\n\t\ti.rb.insertUnsafe(i.rb.src, i.p, i.info)\n\t\tif i.p += int(i.info.size); i.p >= i.rb.nsrc {\n\t\t\ti.setDone()\n\t\t\tbreak\n\t\t}\n\t\ti.info = i.rb.f.info(i.rb.src, i.p)\n\t\tif i.info.ccc == 0 {\n\t\t\tbreak\n\t\t}\n\t\tif s := i.rb.ss.next(i.info); s == ssOverflow {\n\t\t\ti.next = nextCGJDecompose\n\t\t\tbreak\n\t\t}\n\t}\n\t// new segment or too many combining characters: exit normalization\n\treturn i.buf[:i.rb.flushCopy(i.buf[:])]\n}\n\nfunc nextCGJDecompose(i *Iter) []byte {\n\ti.rb.ss = 0\n\ti.rb.insertCGJ()\n\ti.next = nextDecomposed\n\ti.rb.ss.first(i.info)\n\tbuf := doNormDecomposed(i)\n\treturn buf\n}\n\n// nextComposed is the implementation of Next for forms NFC and NFKC.\nfunc nextComposed(i *Iter) []byte {\n\toutp, startp := 0, i.p\n\tvar prevCC uint8\n\tfor {\n\t\tif !i.info.isYesC() {\n\t\t\tgoto doNorm\n\t\t}\n\t\tprevCC = i.info.tccc\n\t\tsz := int(i.info.size)\n\t\tif sz == 0 {\n\t\t\tsz = 1 // illegal rune: copy byte-by-byte\n\t\t}\n\t\tp := outp + sz\n\t\tif p > len(i.buf) {\n\t\t\tbreak\n\t\t}\n\t\toutp = p\n\t\ti.p += sz\n\t\tif i.p >= i.rb.nsrc {\n\t\t\ti.setDone()\n\t\t\tbreak\n\t\t} else if i.rb.src._byte(i.p) < utf8.RuneSelf {\n\t\t\ti.rb.ss = 0\n\t\t\ti.next = i.asciiF\n\t\t\tbreak\n\t\t}\n\t\ti.info = i.rb.f.info(i.rb.src, i.p)\n\t\tif v := i.rb.ss.next(i.info); v == ssStarter {\n\t\t\tbreak\n\t\t} else if v == ssOverflow {\n\t\t\ti.next = nextCGJCompose\n\t\t\tbreak\n\t\t}\n\t\tif i.info.ccc < prevCC {\n\t\t\tgoto doNorm\n\t\t}\n\t}\n\treturn i.returnSlice(startp, i.p)\ndoNorm:\n\t// reset to start position\n\ti.p = startp\n\ti.info = i.rb.f.info(i.rb.src, i.p)\n\ti.rb.ss.first(i.info)\n\tif i.info.multiSegment() {\n\t\td := i.info.Decomposition()\n\t\tinfo := i.rb.f.info(input{bytes: d}, 0)\n\t\ti.rb.insertUnsafe(input{bytes: d}, 0, info)\n\t\ti.multiSeg = d[int(info.size):]\n\t\ti.next = nextMultiNorm\n\t\treturn nextMultiNorm(i)\n\t}\n\ti.rb.ss.first(i.info)\n\ti.rb.insertUnsafe(i.rb.src, i.p, i.info)\n\treturn doNormComposed(i)\n}\n\nfunc doNormComposed(i *Iter) []byte {\n\t// First rune should already be inserted.\n\tfor {\n\t\tif i.p += int(i.info.size); i.p >= i.rb.nsrc {\n\t\t\ti.setDone()\n\t\t\tbreak\n\t\t}\n\t\ti.info = i.rb.f.info(i.rb.src, i.p)\n\t\tif s := i.rb.ss.next(i.info); s == ssStarter {\n\t\t\tbreak\n\t\t} else if s == ssOverflow {\n\t\t\ti.next = nextCGJCompose\n\t\t\tbreak\n\t\t}\n\t\ti.rb.insertUnsafe(i.rb.src, i.p, i.info)\n\t}\n\ti.rb.compose()\n\tseg := i.buf[:i.rb.flushCopy(i.buf[:])]\n\treturn seg\n}\n\nfunc nextCGJCompose(i *Iter) []byte {\n\ti.rb.ss = 0 // instead of first\n\ti.rb.insertCGJ()\n\ti.next = nextComposed\n\t// Note that we treat any rune with nLeadingNonStarters > 0 as a non-starter,\n\t// even if they are not. This is particularly dubious for U+FF9E and UFF9A.\n\t// If we ever change that, insert a check here.\n\ti.rb.ss.first(i.info)\n\ti.rb.insertUnsafe(i.rb.src, i.p, i.info)\n\treturn doNormComposed(i)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/norm/normalize.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Note: the file data_test.go that is generated should not be checked in.\n//go:generate go run maketables.go triegen.go\n//go:generate go test -tags test\n\n// Package norm contains types and functions for normalizing Unicode strings.\npackage norm // import \"golang.org/x/text/unicode/norm\"\n\nimport (\n\t\"unicode/utf8\"\n\n\t\"golang.org/x/text/transform\"\n)\n\n// A Form denotes a canonical representation of Unicode code points.\n// The Unicode-defined normalization and equivalence forms are:\n//\n//\tNFC   Unicode Normalization Form C\n//\tNFD   Unicode Normalization Form D\n//\tNFKC  Unicode Normalization Form KC\n//\tNFKD  Unicode Normalization Form KD\n//\n// For a Form f, this documentation uses the notation f(x) to mean\n// the bytes or string x converted to the given form.\n// A position n in x is called a boundary if conversion to the form can\n// proceed independently on both sides:\n//\n//\tf(x) == append(f(x[0:n]), f(x[n:])...)\n//\n// References: https://unicode.org/reports/tr15/ and\n// https://unicode.org/notes/tn5/.\ntype Form int\n\nconst (\n\tNFC Form = iota\n\tNFD\n\tNFKC\n\tNFKD\n)\n\n// Bytes returns f(b). May return b if f(b) = b.\nfunc (f Form) Bytes(b []byte) []byte {\n\tsrc := inputBytes(b)\n\tft := formTable[f]\n\tn, ok := ft.quickSpan(src, 0, len(b), true)\n\tif ok {\n\t\treturn b\n\t}\n\tout := make([]byte, n, len(b))\n\tcopy(out, b[0:n])\n\trb := reorderBuffer{f: *ft, src: src, nsrc: len(b), out: out, flushF: appendFlush}\n\treturn doAppendInner(&rb, n)\n}\n\n// String returns f(s).\nfunc (f Form) String(s string) string {\n\tsrc := inputString(s)\n\tft := formTable[f]\n\tn, ok := ft.quickSpan(src, 0, len(s), true)\n\tif ok {\n\t\treturn s\n\t}\n\tout := make([]byte, n, len(s))\n\tcopy(out, s[0:n])\n\trb := reorderBuffer{f: *ft, src: src, nsrc: len(s), out: out, flushF: appendFlush}\n\treturn string(doAppendInner(&rb, n))\n}\n\n// IsNormal returns true if b == f(b).\nfunc (f Form) IsNormal(b []byte) bool {\n\tsrc := inputBytes(b)\n\tft := formTable[f]\n\tbp, ok := ft.quickSpan(src, 0, len(b), true)\n\tif ok {\n\t\treturn true\n\t}\n\trb := reorderBuffer{f: *ft, src: src, nsrc: len(b)}\n\trb.setFlusher(nil, cmpNormalBytes)\n\tfor bp < len(b) {\n\t\trb.out = b[bp:]\n\t\tif bp = decomposeSegment(&rb, bp, true); bp < 0 {\n\t\t\treturn false\n\t\t}\n\t\tbp, _ = rb.f.quickSpan(rb.src, bp, len(b), true)\n\t}\n\treturn true\n}\n\nfunc cmpNormalBytes(rb *reorderBuffer) bool {\n\tb := rb.out\n\tfor i := 0; i < rb.nrune; i++ {\n\t\tinfo := rb.rune[i]\n\t\tif int(info.size) > len(b) {\n\t\t\treturn false\n\t\t}\n\t\tp := info.pos\n\t\tpe := p + info.size\n\t\tfor ; p < pe; p++ {\n\t\t\tif b[0] != rb.byte[p] {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tb = b[1:]\n\t\t}\n\t}\n\treturn true\n}\n\n// IsNormalString returns true if s == f(s).\nfunc (f Form) IsNormalString(s string) bool {\n\tsrc := inputString(s)\n\tft := formTable[f]\n\tbp, ok := ft.quickSpan(src, 0, len(s), true)\n\tif ok {\n\t\treturn true\n\t}\n\trb := reorderBuffer{f: *ft, src: src, nsrc: len(s)}\n\trb.setFlusher(nil, func(rb *reorderBuffer) bool {\n\t\tfor i := 0; i < rb.nrune; i++ {\n\t\t\tinfo := rb.rune[i]\n\t\t\tif bp+int(info.size) > len(s) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tp := info.pos\n\t\t\tpe := p + info.size\n\t\t\tfor ; p < pe; p++ {\n\t\t\t\tif s[bp] != rb.byte[p] {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tbp++\n\t\t\t}\n\t\t}\n\t\treturn true\n\t})\n\tfor bp < len(s) {\n\t\tif bp = decomposeSegment(&rb, bp, true); bp < 0 {\n\t\t\treturn false\n\t\t}\n\t\tbp, _ = rb.f.quickSpan(rb.src, bp, len(s), true)\n\t}\n\treturn true\n}\n\n// patchTail fixes a case where a rune may be incorrectly normalized\n// if it is followed by illegal continuation bytes. It returns the\n// patched buffer and whether the decomposition is still in progress.\nfunc patchTail(rb *reorderBuffer) bool {\n\tinfo, p := lastRuneStart(&rb.f, rb.out)\n\tif p == -1 || info.size == 0 {\n\t\treturn true\n\t}\n\tend := p + int(info.size)\n\textra := len(rb.out) - end\n\tif extra > 0 {\n\t\t// Potentially allocating memory. However, this only\n\t\t// happens with ill-formed UTF-8.\n\t\tx := make([]byte, 0)\n\t\tx = append(x, rb.out[len(rb.out)-extra:]...)\n\t\trb.out = rb.out[:end]\n\t\tdecomposeToLastBoundary(rb)\n\t\trb.doFlush()\n\t\trb.out = append(rb.out, x...)\n\t\treturn false\n\t}\n\tbuf := rb.out[p:]\n\trb.out = rb.out[:p]\n\tdecomposeToLastBoundary(rb)\n\tif s := rb.ss.next(info); s == ssStarter {\n\t\trb.doFlush()\n\t\trb.ss.first(info)\n\t} else if s == ssOverflow {\n\t\trb.doFlush()\n\t\trb.insertCGJ()\n\t\trb.ss = 0\n\t}\n\trb.insertUnsafe(inputBytes(buf), 0, info)\n\treturn true\n}\n\nfunc appendQuick(rb *reorderBuffer, i int) int {\n\tif rb.nsrc == i {\n\t\treturn i\n\t}\n\tend, _ := rb.f.quickSpan(rb.src, i, rb.nsrc, true)\n\trb.out = rb.src.appendSlice(rb.out, i, end)\n\treturn end\n}\n\n// Append returns f(append(out, b...)).\n// The buffer out must be nil, empty, or equal to f(out).\nfunc (f Form) Append(out []byte, src ...byte) []byte {\n\treturn f.doAppend(out, inputBytes(src), len(src))\n}\n\nfunc (f Form) doAppend(out []byte, src input, n int) []byte {\n\tif n == 0 {\n\t\treturn out\n\t}\n\tft := formTable[f]\n\t// Attempt to do a quickSpan first so we can avoid initializing the reorderBuffer.\n\tif len(out) == 0 {\n\t\tp, _ := ft.quickSpan(src, 0, n, true)\n\t\tout = src.appendSlice(out, 0, p)\n\t\tif p == n {\n\t\t\treturn out\n\t\t}\n\t\trb := reorderBuffer{f: *ft, src: src, nsrc: n, out: out, flushF: appendFlush}\n\t\treturn doAppendInner(&rb, p)\n\t}\n\trb := reorderBuffer{f: *ft, src: src, nsrc: n}\n\treturn doAppend(&rb, out, 0)\n}\n\nfunc doAppend(rb *reorderBuffer, out []byte, p int) []byte {\n\trb.setFlusher(out, appendFlush)\n\tsrc, n := rb.src, rb.nsrc\n\tdoMerge := len(out) > 0\n\tif q := src.skipContinuationBytes(p); q > p {\n\t\t// Move leading non-starters to destination.\n\t\trb.out = src.appendSlice(rb.out, p, q)\n\t\tp = q\n\t\tdoMerge = patchTail(rb)\n\t}\n\tfd := &rb.f\n\tif doMerge {\n\t\tvar info Properties\n\t\tif p < n {\n\t\t\tinfo = fd.info(src, p)\n\t\t\tif !info.BoundaryBefore() || info.nLeadingNonStarters() > 0 {\n\t\t\t\tif p == 0 {\n\t\t\t\t\tdecomposeToLastBoundary(rb)\n\t\t\t\t}\n\t\t\t\tp = decomposeSegment(rb, p, true)\n\t\t\t}\n\t\t}\n\t\tif info.size == 0 {\n\t\t\trb.doFlush()\n\t\t\t// Append incomplete UTF-8 encoding.\n\t\t\treturn src.appendSlice(rb.out, p, n)\n\t\t}\n\t\tif rb.nrune > 0 {\n\t\t\treturn doAppendInner(rb, p)\n\t\t}\n\t}\n\tp = appendQuick(rb, p)\n\treturn doAppendInner(rb, p)\n}\n\nfunc doAppendInner(rb *reorderBuffer, p int) []byte {\n\tfor n := rb.nsrc; p < n; {\n\t\tp = decomposeSegment(rb, p, true)\n\t\tp = appendQuick(rb, p)\n\t}\n\treturn rb.out\n}\n\n// AppendString returns f(append(out, []byte(s))).\n// The buffer out must be nil, empty, or equal to f(out).\nfunc (f Form) AppendString(out []byte, src string) []byte {\n\treturn f.doAppend(out, inputString(src), len(src))\n}\n\n// QuickSpan returns a boundary n such that b[0:n] == f(b[0:n]).\n// It is not guaranteed to return the largest such n.\nfunc (f Form) QuickSpan(b []byte) int {\n\tn, _ := formTable[f].quickSpan(inputBytes(b), 0, len(b), true)\n\treturn n\n}\n\n// Span implements transform.SpanningTransformer. It returns a boundary n such\n// that b[0:n] == f(b[0:n]). It is not guaranteed to return the largest such n.\nfunc (f Form) Span(b []byte, atEOF bool) (n int, err error) {\n\tn, ok := formTable[f].quickSpan(inputBytes(b), 0, len(b), atEOF)\n\tif n < len(b) {\n\t\tif !ok {\n\t\t\terr = transform.ErrEndOfSpan\n\t\t} else {\n\t\t\terr = transform.ErrShortSrc\n\t\t}\n\t}\n\treturn n, err\n}\n\n// SpanString returns a boundary n such that s[0:n] == f(s[0:n]).\n// It is not guaranteed to return the largest such n.\nfunc (f Form) SpanString(s string, atEOF bool) (n int, err error) {\n\tn, ok := formTable[f].quickSpan(inputString(s), 0, len(s), atEOF)\n\tif n < len(s) {\n\t\tif !ok {\n\t\t\terr = transform.ErrEndOfSpan\n\t\t} else {\n\t\t\terr = transform.ErrShortSrc\n\t\t}\n\t}\n\treturn n, err\n}\n\n// quickSpan returns a boundary n such that src[0:n] == f(src[0:n]) and\n// whether any non-normalized parts were found. If atEOF is false, n will\n// not point past the last segment if this segment might be become\n// non-normalized by appending other runes.\nfunc (f *formInfo) quickSpan(src input, i, end int, atEOF bool) (n int, ok bool) {\n\tvar lastCC uint8\n\tss := streamSafe(0)\n\tlastSegStart := i\n\tfor n = end; i < n; {\n\t\tif j := src.skipASCII(i, n); i != j {\n\t\t\ti = j\n\t\t\tlastSegStart = i - 1\n\t\t\tlastCC = 0\n\t\t\tss = 0\n\t\t\tcontinue\n\t\t}\n\t\tinfo := f.info(src, i)\n\t\tif info.size == 0 {\n\t\t\tif atEOF {\n\t\t\t\t// include incomplete runes\n\t\t\t\treturn n, true\n\t\t\t}\n\t\t\treturn lastSegStart, true\n\t\t}\n\t\t// This block needs to be before the next, because it is possible to\n\t\t// have an overflow for runes that are starters (e.g. with U+FF9E).\n\t\tswitch ss.next(info) {\n\t\tcase ssStarter:\n\t\t\tlastSegStart = i\n\t\tcase ssOverflow:\n\t\t\treturn lastSegStart, false\n\t\tcase ssSuccess:\n\t\t\tif lastCC > info.ccc {\n\t\t\t\treturn lastSegStart, false\n\t\t\t}\n\t\t}\n\t\tif f.composing {\n\t\t\tif !info.isYesC() {\n\t\t\t\tbreak\n\t\t\t}\n\t\t} else {\n\t\t\tif !info.isYesD() {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tlastCC = info.ccc\n\t\ti += int(info.size)\n\t}\n\tif i == n {\n\t\tif !atEOF {\n\t\t\tn = lastSegStart\n\t\t}\n\t\treturn n, true\n\t}\n\treturn lastSegStart, false\n}\n\n// QuickSpanString returns a boundary n such that s[0:n] == f(s[0:n]).\n// It is not guaranteed to return the largest such n.\nfunc (f Form) QuickSpanString(s string) int {\n\tn, _ := formTable[f].quickSpan(inputString(s), 0, len(s), true)\n\treturn n\n}\n\n// FirstBoundary returns the position i of the first boundary in b\n// or -1 if b contains no boundary.\nfunc (f Form) FirstBoundary(b []byte) int {\n\treturn f.firstBoundary(inputBytes(b), len(b))\n}\n\nfunc (f Form) firstBoundary(src input, nsrc int) int {\n\ti := src.skipContinuationBytes(0)\n\tif i >= nsrc {\n\t\treturn -1\n\t}\n\tfd := formTable[f]\n\tss := streamSafe(0)\n\t// We should call ss.first here, but we can't as the first rune is\n\t// skipped already. This means FirstBoundary can't really determine\n\t// CGJ insertion points correctly. Luckily it doesn't have to.\n\tfor {\n\t\tinfo := fd.info(src, i)\n\t\tif info.size == 0 {\n\t\t\treturn -1\n\t\t}\n\t\tif s := ss.next(info); s != ssSuccess {\n\t\t\treturn i\n\t\t}\n\t\ti += int(info.size)\n\t\tif i >= nsrc {\n\t\t\tif !info.BoundaryAfter() && !ss.isMax() {\n\t\t\t\treturn -1\n\t\t\t}\n\t\t\treturn nsrc\n\t\t}\n\t}\n}\n\n// FirstBoundaryInString returns the position i of the first boundary in s\n// or -1 if s contains no boundary.\nfunc (f Form) FirstBoundaryInString(s string) int {\n\treturn f.firstBoundary(inputString(s), len(s))\n}\n\n// NextBoundary reports the index of the boundary between the first and next\n// segment in b or -1 if atEOF is false and there are not enough bytes to\n// determine this boundary.\nfunc (f Form) NextBoundary(b []byte, atEOF bool) int {\n\treturn f.nextBoundary(inputBytes(b), len(b), atEOF)\n}\n\n// NextBoundaryInString reports the index of the boundary between the first and\n// next segment in b or -1 if atEOF is false and there are not enough bytes to\n// determine this boundary.\nfunc (f Form) NextBoundaryInString(s string, atEOF bool) int {\n\treturn f.nextBoundary(inputString(s), len(s), atEOF)\n}\n\nfunc (f Form) nextBoundary(src input, nsrc int, atEOF bool) int {\n\tif nsrc == 0 {\n\t\tif atEOF {\n\t\t\treturn 0\n\t\t}\n\t\treturn -1\n\t}\n\tfd := formTable[f]\n\tinfo := fd.info(src, 0)\n\tif info.size == 0 {\n\t\tif atEOF {\n\t\t\treturn 1\n\t\t}\n\t\treturn -1\n\t}\n\tss := streamSafe(0)\n\tss.first(info)\n\n\tfor i := int(info.size); i < nsrc; i += int(info.size) {\n\t\tinfo = fd.info(src, i)\n\t\tif info.size == 0 {\n\t\t\tif atEOF {\n\t\t\t\treturn i\n\t\t\t}\n\t\t\treturn -1\n\t\t}\n\t\t// TODO: Using streamSafe to determine the boundary isn't the same as\n\t\t// using BoundaryBefore. Determine which should be used.\n\t\tif s := ss.next(info); s != ssSuccess {\n\t\t\treturn i\n\t\t}\n\t}\n\tif !atEOF && !info.BoundaryAfter() && !ss.isMax() {\n\t\treturn -1\n\t}\n\treturn nsrc\n}\n\n// LastBoundary returns the position i of the last boundary in b\n// or -1 if b contains no boundary.\nfunc (f Form) LastBoundary(b []byte) int {\n\treturn lastBoundary(formTable[f], b)\n}\n\nfunc lastBoundary(fd *formInfo, b []byte) int {\n\ti := len(b)\n\tinfo, p := lastRuneStart(fd, b)\n\tif p == -1 {\n\t\treturn -1\n\t}\n\tif info.size == 0 { // ends with incomplete rune\n\t\tif p == 0 { // starts with incomplete rune\n\t\t\treturn -1\n\t\t}\n\t\ti = p\n\t\tinfo, p = lastRuneStart(fd, b[:i])\n\t\tif p == -1 { // incomplete UTF-8 encoding or non-starter bytes without a starter\n\t\t\treturn i\n\t\t}\n\t}\n\tif p+int(info.size) != i { // trailing non-starter bytes: illegal UTF-8\n\t\treturn i\n\t}\n\tif info.BoundaryAfter() {\n\t\treturn i\n\t}\n\tss := streamSafe(0)\n\tv := ss.backwards(info)\n\tfor i = p; i >= 0 && v != ssStarter; i = p {\n\t\tinfo, p = lastRuneStart(fd, b[:i])\n\t\tif v = ss.backwards(info); v == ssOverflow {\n\t\t\tbreak\n\t\t}\n\t\tif p+int(info.size) != i {\n\t\t\tif p == -1 { // no boundary found\n\t\t\t\treturn -1\n\t\t\t}\n\t\t\treturn i // boundary after an illegal UTF-8 encoding\n\t\t}\n\t}\n\treturn i\n}\n\n// decomposeSegment scans the first segment in src into rb. It inserts 0x034f\n// (Grapheme Joiner) when it encounters a sequence of more than 30 non-starters\n// and returns the number of bytes consumed from src or iShortDst or iShortSrc.\nfunc decomposeSegment(rb *reorderBuffer, sp int, atEOF bool) int {\n\t// Force one character to be consumed.\n\tinfo := rb.f.info(rb.src, sp)\n\tif info.size == 0 {\n\t\treturn 0\n\t}\n\tif s := rb.ss.next(info); s == ssStarter {\n\t\t// TODO: this could be removed if we don't support merging.\n\t\tif rb.nrune > 0 {\n\t\t\tgoto end\n\t\t}\n\t} else if s == ssOverflow {\n\t\trb.insertCGJ()\n\t\tgoto end\n\t}\n\tif err := rb.insertFlush(rb.src, sp, info); err != iSuccess {\n\t\treturn int(err)\n\t}\n\tfor {\n\t\tsp += int(info.size)\n\t\tif sp >= rb.nsrc {\n\t\t\tif !atEOF && !info.BoundaryAfter() {\n\t\t\t\treturn int(iShortSrc)\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t\tinfo = rb.f.info(rb.src, sp)\n\t\tif info.size == 0 {\n\t\t\tif !atEOF {\n\t\t\t\treturn int(iShortSrc)\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t\tif s := rb.ss.next(info); s == ssStarter {\n\t\t\tbreak\n\t\t} else if s == ssOverflow {\n\t\t\trb.insertCGJ()\n\t\t\tbreak\n\t\t}\n\t\tif err := rb.insertFlush(rb.src, sp, info); err != iSuccess {\n\t\t\treturn int(err)\n\t\t}\n\t}\nend:\n\tif !rb.doFlush() {\n\t\treturn int(iShortDst)\n\t}\n\treturn sp\n}\n\n// lastRuneStart returns the runeInfo and position of the last\n// rune in buf or the zero runeInfo and -1 if no rune was found.\nfunc lastRuneStart(fd *formInfo, buf []byte) (Properties, int) {\n\tp := len(buf) - 1\n\tfor ; p >= 0 && !utf8.RuneStart(buf[p]); p-- {\n\t}\n\tif p < 0 {\n\t\treturn Properties{}, -1\n\t}\n\treturn fd.info(inputBytes(buf), p), p\n}\n\n// decomposeToLastBoundary finds an open segment at the end of the buffer\n// and scans it into rb. Returns the buffer minus the last segment.\nfunc decomposeToLastBoundary(rb *reorderBuffer) {\n\tfd := &rb.f\n\tinfo, i := lastRuneStart(fd, rb.out)\n\tif int(info.size) != len(rb.out)-i {\n\t\t// illegal trailing continuation bytes\n\t\treturn\n\t}\n\tif info.BoundaryAfter() {\n\t\treturn\n\t}\n\tvar add [maxNonStarters + 1]Properties // stores runeInfo in reverse order\n\tpadd := 0\n\tss := streamSafe(0)\n\tp := len(rb.out)\n\tfor {\n\t\tadd[padd] = info\n\t\tv := ss.backwards(info)\n\t\tif v == ssOverflow {\n\t\t\t// Note that if we have an overflow, it the string we are appending to\n\t\t\t// is not correctly normalized. In this case the behavior is undefined.\n\t\t\tbreak\n\t\t}\n\t\tpadd++\n\t\tp -= int(info.size)\n\t\tif v == ssStarter || p < 0 {\n\t\t\tbreak\n\t\t}\n\t\tinfo, i = lastRuneStart(fd, rb.out[:p])\n\t\tif int(info.size) != p-i {\n\t\t\tbreak\n\t\t}\n\t}\n\trb.ss = ss\n\t// Copy bytes for insertion as we may need to overwrite rb.out.\n\tvar buf [maxBufferSize * utf8.UTFMax]byte\n\tcp := buf[:copy(buf[:], rb.out[p:])]\n\trb.out = rb.out[:p]\n\tfor padd--; padd >= 0; padd-- {\n\t\tinfo = add[padd]\n\t\trb.insertUnsafe(inputBytes(cp), 0, info)\n\t\tcp = cp[info.size:]\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/norm/readwriter.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage norm\n\nimport \"io\"\n\ntype normWriter struct {\n\trb  reorderBuffer\n\tw   io.Writer\n\tbuf []byte\n}\n\n// Write implements the standard write interface.  If the last characters are\n// not at a normalization boundary, the bytes will be buffered for the next\n// write. The remaining bytes will be written on close.\nfunc (w *normWriter) Write(data []byte) (n int, err error) {\n\t// Process data in pieces to keep w.buf size bounded.\n\tconst chunk = 4000\n\n\tfor len(data) > 0 {\n\t\t// Normalize into w.buf.\n\t\tm := len(data)\n\t\tif m > chunk {\n\t\t\tm = chunk\n\t\t}\n\t\tw.rb.src = inputBytes(data[:m])\n\t\tw.rb.nsrc = m\n\t\tw.buf = doAppend(&w.rb, w.buf, 0)\n\t\tdata = data[m:]\n\t\tn += m\n\n\t\t// Write out complete prefix, save remainder.\n\t\t// Note that lastBoundary looks back at most 31 runes.\n\t\ti := lastBoundary(&w.rb.f, w.buf)\n\t\tif i == -1 {\n\t\t\ti = 0\n\t\t}\n\t\tif i > 0 {\n\t\t\tif _, err = w.w.Write(w.buf[:i]); err != nil {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tbn := copy(w.buf, w.buf[i:])\n\t\t\tw.buf = w.buf[:bn]\n\t\t}\n\t}\n\treturn n, err\n}\n\n// Close forces data that remains in the buffer to be written.\nfunc (w *normWriter) Close() error {\n\tif len(w.buf) > 0 {\n\t\t_, err := w.w.Write(w.buf)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// Writer returns a new writer that implements Write(b)\n// by writing f(b) to w. The returned writer may use an\n// internal buffer to maintain state across Write calls.\n// Calling its Close method writes any buffered data to w.\nfunc (f Form) Writer(w io.Writer) io.WriteCloser {\n\twr := &normWriter{rb: reorderBuffer{}, w: w}\n\twr.rb.init(f, nil)\n\treturn wr\n}\n\ntype normReader struct {\n\trb           reorderBuffer\n\tr            io.Reader\n\tinbuf        []byte\n\toutbuf       []byte\n\tbufStart     int\n\tlastBoundary int\n\terr          error\n}\n\n// Read implements the standard read interface.\nfunc (r *normReader) Read(p []byte) (int, error) {\n\tfor {\n\t\tif r.lastBoundary-r.bufStart > 0 {\n\t\t\tn := copy(p, r.outbuf[r.bufStart:r.lastBoundary])\n\t\t\tr.bufStart += n\n\t\t\tif r.lastBoundary-r.bufStart > 0 {\n\t\t\t\treturn n, nil\n\t\t\t}\n\t\t\treturn n, r.err\n\t\t}\n\t\tif r.err != nil {\n\t\t\treturn 0, r.err\n\t\t}\n\t\toutn := copy(r.outbuf, r.outbuf[r.lastBoundary:])\n\t\tr.outbuf = r.outbuf[0:outn]\n\t\tr.bufStart = 0\n\n\t\tn, err := r.r.Read(r.inbuf)\n\t\tr.rb.src = inputBytes(r.inbuf[0:n])\n\t\tr.rb.nsrc, r.err = n, err\n\t\tif n > 0 {\n\t\t\tr.outbuf = doAppend(&r.rb, r.outbuf, 0)\n\t\t}\n\t\tif err == io.EOF {\n\t\t\tr.lastBoundary = len(r.outbuf)\n\t\t} else {\n\t\t\tr.lastBoundary = lastBoundary(&r.rb.f, r.outbuf)\n\t\t\tif r.lastBoundary == -1 {\n\t\t\t\tr.lastBoundary = 0\n\t\t\t}\n\t\t}\n\t}\n}\n\n// Reader returns a new reader that implements Read\n// by reading data from r and returning f(data).\nfunc (f Form) Reader(r io.Reader) io.Reader {\n\tconst chunk = 4000\n\tbuf := make([]byte, chunk)\n\trr := &normReader{rb: reorderBuffer{}, r: r, inbuf: buf}\n\trr.rb.init(f, buf)\n\treturn rr\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/norm/tables10.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n//go:build go1.10 && !go1.13\n\npackage norm\n\nimport \"sync\"\n\nconst (\n\t// Version is the Unicode edition from which the tables are derived.\n\tVersion = \"10.0.0\"\n\n\t// MaxTransformChunkSize indicates the maximum number of bytes that Transform\n\t// may need to write atomically for any Form. Making a destination buffer at\n\t// least this size ensures that Transform can always make progress and that\n\t// the user does not need to grow the buffer on an ErrShortDst.\n\tMaxTransformChunkSize = 35 + maxNonStarters*4\n)\n\nvar ccc = [55]uint8{\n\t0, 1, 7, 8, 9, 10, 11, 12,\n\t13, 14, 15, 16, 17, 18, 19, 20,\n\t21, 22, 23, 24, 25, 26, 27, 28,\n\t29, 30, 31, 32, 33, 34, 35, 36,\n\t84, 91, 103, 107, 118, 122, 129, 130,\n\t132, 202, 214, 216, 218, 220, 222, 224,\n\t226, 228, 230, 232, 233, 234, 240,\n}\n\nconst (\n\tfirstMulti            = 0x186D\n\tfirstCCC              = 0x2C9E\n\tendMulti              = 0x2F60\n\tfirstLeadingCCC       = 0x49AE\n\tfirstCCCZeroExcept    = 0x4A78\n\tfirstStarterWithNLead = 0x4A9F\n\tlastDecomp            = 0x4AA1\n\tmaxDecomp             = 0x8000\n)\n\n// decomps: 19105 bytes\nvar decomps = [...]byte{\n\t// Bytes 0 - 3f\n\t0x00, 0x41, 0x20, 0x41, 0x21, 0x41, 0x22, 0x41,\n\t0x23, 0x41, 0x24, 0x41, 0x25, 0x41, 0x26, 0x41,\n\t0x27, 0x41, 0x28, 0x41, 0x29, 0x41, 0x2A, 0x41,\n\t0x2B, 0x41, 0x2C, 0x41, 0x2D, 0x41, 0x2E, 0x41,\n\t0x2F, 0x41, 0x30, 0x41, 0x31, 0x41, 0x32, 0x41,\n\t0x33, 0x41, 0x34, 0x41, 0x35, 0x41, 0x36, 0x41,\n\t0x37, 0x41, 0x38, 0x41, 0x39, 0x41, 0x3A, 0x41,\n\t0x3B, 0x41, 0x3C, 0x41, 0x3D, 0x41, 0x3E, 0x41,\n\t// Bytes 40 - 7f\n\t0x3F, 0x41, 0x40, 0x41, 0x41, 0x41, 0x42, 0x41,\n\t0x43, 0x41, 0x44, 0x41, 0x45, 0x41, 0x46, 0x41,\n\t0x47, 0x41, 0x48, 0x41, 0x49, 0x41, 0x4A, 0x41,\n\t0x4B, 0x41, 0x4C, 0x41, 0x4D, 0x41, 0x4E, 0x41,\n\t0x4F, 0x41, 0x50, 0x41, 0x51, 0x41, 0x52, 0x41,\n\t0x53, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41,\n\t0x57, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5A, 0x41,\n\t0x5B, 0x41, 0x5C, 0x41, 0x5D, 0x41, 0x5E, 0x41,\n\t// Bytes 80 - bf\n\t0x5F, 0x41, 0x60, 0x41, 0x61, 0x41, 0x62, 0x41,\n\t0x63, 0x41, 0x64, 0x41, 0x65, 0x41, 0x66, 0x41,\n\t0x67, 0x41, 0x68, 0x41, 0x69, 0x41, 0x6A, 0x41,\n\t0x6B, 0x41, 0x6C, 0x41, 0x6D, 0x41, 0x6E, 0x41,\n\t0x6F, 0x41, 0x70, 0x41, 0x71, 0x41, 0x72, 0x41,\n\t0x73, 0x41, 0x74, 0x41, 0x75, 0x41, 0x76, 0x41,\n\t0x77, 0x41, 0x78, 0x41, 0x79, 0x41, 0x7A, 0x41,\n\t0x7B, 0x41, 0x7C, 0x41, 0x7D, 0x41, 0x7E, 0x42,\n\t// Bytes c0 - ff\n\t0xC2, 0xA2, 0x42, 0xC2, 0xA3, 0x42, 0xC2, 0xA5,\n\t0x42, 0xC2, 0xA6, 0x42, 0xC2, 0xAC, 0x42, 0xC2,\n\t0xB7, 0x42, 0xC3, 0x86, 0x42, 0xC3, 0xB0, 0x42,\n\t0xC4, 0xA6, 0x42, 0xC4, 0xA7, 0x42, 0xC4, 0xB1,\n\t0x42, 0xC5, 0x8B, 0x42, 0xC5, 0x93, 0x42, 0xC6,\n\t0x8E, 0x42, 0xC6, 0x90, 0x42, 0xC6, 0xAB, 0x42,\n\t0xC8, 0xA2, 0x42, 0xC8, 0xB7, 0x42, 0xC9, 0x90,\n\t0x42, 0xC9, 0x91, 0x42, 0xC9, 0x92, 0x42, 0xC9,\n\t// Bytes 100 - 13f\n\t0x94, 0x42, 0xC9, 0x95, 0x42, 0xC9, 0x99, 0x42,\n\t0xC9, 0x9B, 0x42, 0xC9, 0x9C, 0x42, 0xC9, 0x9F,\n\t0x42, 0xC9, 0xA1, 0x42, 0xC9, 0xA3, 0x42, 0xC9,\n\t0xA5, 0x42, 0xC9, 0xA6, 0x42, 0xC9, 0xA8, 0x42,\n\t0xC9, 0xA9, 0x42, 0xC9, 0xAA, 0x42, 0xC9, 0xAB,\n\t0x42, 0xC9, 0xAD, 0x42, 0xC9, 0xAF, 0x42, 0xC9,\n\t0xB0, 0x42, 0xC9, 0xB1, 0x42, 0xC9, 0xB2, 0x42,\n\t0xC9, 0xB3, 0x42, 0xC9, 0xB4, 0x42, 0xC9, 0xB5,\n\t// Bytes 140 - 17f\n\t0x42, 0xC9, 0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9,\n\t0xBB, 0x42, 0xCA, 0x81, 0x42, 0xCA, 0x82, 0x42,\n\t0xCA, 0x83, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A,\n\t0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA,\n\t0x90, 0x42, 0xCA, 0x91, 0x42, 0xCA, 0x92, 0x42,\n\t0xCA, 0x95, 0x42, 0xCA, 0x9D, 0x42, 0xCA, 0x9F,\n\t0x42, 0xCA, 0xB9, 0x42, 0xCE, 0x91, 0x42, 0xCE,\n\t0x92, 0x42, 0xCE, 0x93, 0x42, 0xCE, 0x94, 0x42,\n\t// Bytes 180 - 1bf\n\t0xCE, 0x95, 0x42, 0xCE, 0x96, 0x42, 0xCE, 0x97,\n\t0x42, 0xCE, 0x98, 0x42, 0xCE, 0x99, 0x42, 0xCE,\n\t0x9A, 0x42, 0xCE, 0x9B, 0x42, 0xCE, 0x9C, 0x42,\n\t0xCE, 0x9D, 0x42, 0xCE, 0x9E, 0x42, 0xCE, 0x9F,\n\t0x42, 0xCE, 0xA0, 0x42, 0xCE, 0xA1, 0x42, 0xCE,\n\t0xA3, 0x42, 0xCE, 0xA4, 0x42, 0xCE, 0xA5, 0x42,\n\t0xCE, 0xA6, 0x42, 0xCE, 0xA7, 0x42, 0xCE, 0xA8,\n\t0x42, 0xCE, 0xA9, 0x42, 0xCE, 0xB1, 0x42, 0xCE,\n\t// Bytes 1c0 - 1ff\n\t0xB2, 0x42, 0xCE, 0xB3, 0x42, 0xCE, 0xB4, 0x42,\n\t0xCE, 0xB5, 0x42, 0xCE, 0xB6, 0x42, 0xCE, 0xB7,\n\t0x42, 0xCE, 0xB8, 0x42, 0xCE, 0xB9, 0x42, 0xCE,\n\t0xBA, 0x42, 0xCE, 0xBB, 0x42, 0xCE, 0xBC, 0x42,\n\t0xCE, 0xBD, 0x42, 0xCE, 0xBE, 0x42, 0xCE, 0xBF,\n\t0x42, 0xCF, 0x80, 0x42, 0xCF, 0x81, 0x42, 0xCF,\n\t0x82, 0x42, 0xCF, 0x83, 0x42, 0xCF, 0x84, 0x42,\n\t0xCF, 0x85, 0x42, 0xCF, 0x86, 0x42, 0xCF, 0x87,\n\t// Bytes 200 - 23f\n\t0x42, 0xCF, 0x88, 0x42, 0xCF, 0x89, 0x42, 0xCF,\n\t0x9C, 0x42, 0xCF, 0x9D, 0x42, 0xD0, 0xBD, 0x42,\n\t0xD1, 0x8A, 0x42, 0xD1, 0x8C, 0x42, 0xD7, 0x90,\n\t0x42, 0xD7, 0x91, 0x42, 0xD7, 0x92, 0x42, 0xD7,\n\t0x93, 0x42, 0xD7, 0x94, 0x42, 0xD7, 0x9B, 0x42,\n\t0xD7, 0x9C, 0x42, 0xD7, 0x9D, 0x42, 0xD7, 0xA2,\n\t0x42, 0xD7, 0xA8, 0x42, 0xD7, 0xAA, 0x42, 0xD8,\n\t0xA1, 0x42, 0xD8, 0xA7, 0x42, 0xD8, 0xA8, 0x42,\n\t// Bytes 240 - 27f\n\t0xD8, 0xA9, 0x42, 0xD8, 0xAA, 0x42, 0xD8, 0xAB,\n\t0x42, 0xD8, 0xAC, 0x42, 0xD8, 0xAD, 0x42, 0xD8,\n\t0xAE, 0x42, 0xD8, 0xAF, 0x42, 0xD8, 0xB0, 0x42,\n\t0xD8, 0xB1, 0x42, 0xD8, 0xB2, 0x42, 0xD8, 0xB3,\n\t0x42, 0xD8, 0xB4, 0x42, 0xD8, 0xB5, 0x42, 0xD8,\n\t0xB6, 0x42, 0xD8, 0xB7, 0x42, 0xD8, 0xB8, 0x42,\n\t0xD8, 0xB9, 0x42, 0xD8, 0xBA, 0x42, 0xD9, 0x81,\n\t0x42, 0xD9, 0x82, 0x42, 0xD9, 0x83, 0x42, 0xD9,\n\t// Bytes 280 - 2bf\n\t0x84, 0x42, 0xD9, 0x85, 0x42, 0xD9, 0x86, 0x42,\n\t0xD9, 0x87, 0x42, 0xD9, 0x88, 0x42, 0xD9, 0x89,\n\t0x42, 0xD9, 0x8A, 0x42, 0xD9, 0xAE, 0x42, 0xD9,\n\t0xAF, 0x42, 0xD9, 0xB1, 0x42, 0xD9, 0xB9, 0x42,\n\t0xD9, 0xBA, 0x42, 0xD9, 0xBB, 0x42, 0xD9, 0xBE,\n\t0x42, 0xD9, 0xBF, 0x42, 0xDA, 0x80, 0x42, 0xDA,\n\t0x83, 0x42, 0xDA, 0x84, 0x42, 0xDA, 0x86, 0x42,\n\t0xDA, 0x87, 0x42, 0xDA, 0x88, 0x42, 0xDA, 0x8C,\n\t// Bytes 2c0 - 2ff\n\t0x42, 0xDA, 0x8D, 0x42, 0xDA, 0x8E, 0x42, 0xDA,\n\t0x91, 0x42, 0xDA, 0x98, 0x42, 0xDA, 0xA1, 0x42,\n\t0xDA, 0xA4, 0x42, 0xDA, 0xA6, 0x42, 0xDA, 0xA9,\n\t0x42, 0xDA, 0xAD, 0x42, 0xDA, 0xAF, 0x42, 0xDA,\n\t0xB1, 0x42, 0xDA, 0xB3, 0x42, 0xDA, 0xBA, 0x42,\n\t0xDA, 0xBB, 0x42, 0xDA, 0xBE, 0x42, 0xDB, 0x81,\n\t0x42, 0xDB, 0x85, 0x42, 0xDB, 0x86, 0x42, 0xDB,\n\t0x87, 0x42, 0xDB, 0x88, 0x42, 0xDB, 0x89, 0x42,\n\t// Bytes 300 - 33f\n\t0xDB, 0x8B, 0x42, 0xDB, 0x8C, 0x42, 0xDB, 0x90,\n\t0x42, 0xDB, 0x92, 0x43, 0xE0, 0xBC, 0x8B, 0x43,\n\t0xE1, 0x83, 0x9C, 0x43, 0xE1, 0x84, 0x80, 0x43,\n\t0xE1, 0x84, 0x81, 0x43, 0xE1, 0x84, 0x82, 0x43,\n\t0xE1, 0x84, 0x83, 0x43, 0xE1, 0x84, 0x84, 0x43,\n\t0xE1, 0x84, 0x85, 0x43, 0xE1, 0x84, 0x86, 0x43,\n\t0xE1, 0x84, 0x87, 0x43, 0xE1, 0x84, 0x88, 0x43,\n\t0xE1, 0x84, 0x89, 0x43, 0xE1, 0x84, 0x8A, 0x43,\n\t// Bytes 340 - 37f\n\t0xE1, 0x84, 0x8B, 0x43, 0xE1, 0x84, 0x8C, 0x43,\n\t0xE1, 0x84, 0x8D, 0x43, 0xE1, 0x84, 0x8E, 0x43,\n\t0xE1, 0x84, 0x8F, 0x43, 0xE1, 0x84, 0x90, 0x43,\n\t0xE1, 0x84, 0x91, 0x43, 0xE1, 0x84, 0x92, 0x43,\n\t0xE1, 0x84, 0x94, 0x43, 0xE1, 0x84, 0x95, 0x43,\n\t0xE1, 0x84, 0x9A, 0x43, 0xE1, 0x84, 0x9C, 0x43,\n\t0xE1, 0x84, 0x9D, 0x43, 0xE1, 0x84, 0x9E, 0x43,\n\t0xE1, 0x84, 0xA0, 0x43, 0xE1, 0x84, 0xA1, 0x43,\n\t// Bytes 380 - 3bf\n\t0xE1, 0x84, 0xA2, 0x43, 0xE1, 0x84, 0xA3, 0x43,\n\t0xE1, 0x84, 0xA7, 0x43, 0xE1, 0x84, 0xA9, 0x43,\n\t0xE1, 0x84, 0xAB, 0x43, 0xE1, 0x84, 0xAC, 0x43,\n\t0xE1, 0x84, 0xAD, 0x43, 0xE1, 0x84, 0xAE, 0x43,\n\t0xE1, 0x84, 0xAF, 0x43, 0xE1, 0x84, 0xB2, 0x43,\n\t0xE1, 0x84, 0xB6, 0x43, 0xE1, 0x85, 0x80, 0x43,\n\t0xE1, 0x85, 0x87, 0x43, 0xE1, 0x85, 0x8C, 0x43,\n\t0xE1, 0x85, 0x97, 0x43, 0xE1, 0x85, 0x98, 0x43,\n\t// Bytes 3c0 - 3ff\n\t0xE1, 0x85, 0x99, 0x43, 0xE1, 0x85, 0xA0, 0x43,\n\t0xE1, 0x86, 0x84, 0x43, 0xE1, 0x86, 0x85, 0x43,\n\t0xE1, 0x86, 0x88, 0x43, 0xE1, 0x86, 0x91, 0x43,\n\t0xE1, 0x86, 0x92, 0x43, 0xE1, 0x86, 0x94, 0x43,\n\t0xE1, 0x86, 0x9E, 0x43, 0xE1, 0x86, 0xA1, 0x43,\n\t0xE1, 0x87, 0x87, 0x43, 0xE1, 0x87, 0x88, 0x43,\n\t0xE1, 0x87, 0x8C, 0x43, 0xE1, 0x87, 0x8E, 0x43,\n\t0xE1, 0x87, 0x93, 0x43, 0xE1, 0x87, 0x97, 0x43,\n\t// Bytes 400 - 43f\n\t0xE1, 0x87, 0x99, 0x43, 0xE1, 0x87, 0x9D, 0x43,\n\t0xE1, 0x87, 0x9F, 0x43, 0xE1, 0x87, 0xB1, 0x43,\n\t0xE1, 0x87, 0xB2, 0x43, 0xE1, 0xB4, 0x82, 0x43,\n\t0xE1, 0xB4, 0x96, 0x43, 0xE1, 0xB4, 0x97, 0x43,\n\t0xE1, 0xB4, 0x9C, 0x43, 0xE1, 0xB4, 0x9D, 0x43,\n\t0xE1, 0xB4, 0xA5, 0x43, 0xE1, 0xB5, 0xBB, 0x43,\n\t0xE1, 0xB6, 0x85, 0x43, 0xE2, 0x80, 0x82, 0x43,\n\t0xE2, 0x80, 0x83, 0x43, 0xE2, 0x80, 0x90, 0x43,\n\t// Bytes 440 - 47f\n\t0xE2, 0x80, 0x93, 0x43, 0xE2, 0x80, 0x94, 0x43,\n\t0xE2, 0x82, 0xA9, 0x43, 0xE2, 0x86, 0x90, 0x43,\n\t0xE2, 0x86, 0x91, 0x43, 0xE2, 0x86, 0x92, 0x43,\n\t0xE2, 0x86, 0x93, 0x43, 0xE2, 0x88, 0x82, 0x43,\n\t0xE2, 0x88, 0x87, 0x43, 0xE2, 0x88, 0x91, 0x43,\n\t0xE2, 0x88, 0x92, 0x43, 0xE2, 0x94, 0x82, 0x43,\n\t0xE2, 0x96, 0xA0, 0x43, 0xE2, 0x97, 0x8B, 0x43,\n\t0xE2, 0xA6, 0x85, 0x43, 0xE2, 0xA6, 0x86, 0x43,\n\t// Bytes 480 - 4bf\n\t0xE2, 0xB5, 0xA1, 0x43, 0xE3, 0x80, 0x81, 0x43,\n\t0xE3, 0x80, 0x82, 0x43, 0xE3, 0x80, 0x88, 0x43,\n\t0xE3, 0x80, 0x89, 0x43, 0xE3, 0x80, 0x8A, 0x43,\n\t0xE3, 0x80, 0x8B, 0x43, 0xE3, 0x80, 0x8C, 0x43,\n\t0xE3, 0x80, 0x8D, 0x43, 0xE3, 0x80, 0x8E, 0x43,\n\t0xE3, 0x80, 0x8F, 0x43, 0xE3, 0x80, 0x90, 0x43,\n\t0xE3, 0x80, 0x91, 0x43, 0xE3, 0x80, 0x92, 0x43,\n\t0xE3, 0x80, 0x94, 0x43, 0xE3, 0x80, 0x95, 0x43,\n\t// Bytes 4c0 - 4ff\n\t0xE3, 0x80, 0x96, 0x43, 0xE3, 0x80, 0x97, 0x43,\n\t0xE3, 0x82, 0xA1, 0x43, 0xE3, 0x82, 0xA2, 0x43,\n\t0xE3, 0x82, 0xA3, 0x43, 0xE3, 0x82, 0xA4, 0x43,\n\t0xE3, 0x82, 0xA5, 0x43, 0xE3, 0x82, 0xA6, 0x43,\n\t0xE3, 0x82, 0xA7, 0x43, 0xE3, 0x82, 0xA8, 0x43,\n\t0xE3, 0x82, 0xA9, 0x43, 0xE3, 0x82, 0xAA, 0x43,\n\t0xE3, 0x82, 0xAB, 0x43, 0xE3, 0x82, 0xAD, 0x43,\n\t0xE3, 0x82, 0xAF, 0x43, 0xE3, 0x82, 0xB1, 0x43,\n\t// Bytes 500 - 53f\n\t0xE3, 0x82, 0xB3, 0x43, 0xE3, 0x82, 0xB5, 0x43,\n\t0xE3, 0x82, 0xB7, 0x43, 0xE3, 0x82, 0xB9, 0x43,\n\t0xE3, 0x82, 0xBB, 0x43, 0xE3, 0x82, 0xBD, 0x43,\n\t0xE3, 0x82, 0xBF, 0x43, 0xE3, 0x83, 0x81, 0x43,\n\t0xE3, 0x83, 0x83, 0x43, 0xE3, 0x83, 0x84, 0x43,\n\t0xE3, 0x83, 0x86, 0x43, 0xE3, 0x83, 0x88, 0x43,\n\t0xE3, 0x83, 0x8A, 0x43, 0xE3, 0x83, 0x8B, 0x43,\n\t0xE3, 0x83, 0x8C, 0x43, 0xE3, 0x83, 0x8D, 0x43,\n\t// Bytes 540 - 57f\n\t0xE3, 0x83, 0x8E, 0x43, 0xE3, 0x83, 0x8F, 0x43,\n\t0xE3, 0x83, 0x92, 0x43, 0xE3, 0x83, 0x95, 0x43,\n\t0xE3, 0x83, 0x98, 0x43, 0xE3, 0x83, 0x9B, 0x43,\n\t0xE3, 0x83, 0x9E, 0x43, 0xE3, 0x83, 0x9F, 0x43,\n\t0xE3, 0x83, 0xA0, 0x43, 0xE3, 0x83, 0xA1, 0x43,\n\t0xE3, 0x83, 0xA2, 0x43, 0xE3, 0x83, 0xA3, 0x43,\n\t0xE3, 0x83, 0xA4, 0x43, 0xE3, 0x83, 0xA5, 0x43,\n\t0xE3, 0x83, 0xA6, 0x43, 0xE3, 0x83, 0xA7, 0x43,\n\t// Bytes 580 - 5bf\n\t0xE3, 0x83, 0xA8, 0x43, 0xE3, 0x83, 0xA9, 0x43,\n\t0xE3, 0x83, 0xAA, 0x43, 0xE3, 0x83, 0xAB, 0x43,\n\t0xE3, 0x83, 0xAC, 0x43, 0xE3, 0x83, 0xAD, 0x43,\n\t0xE3, 0x83, 0xAF, 0x43, 0xE3, 0x83, 0xB0, 0x43,\n\t0xE3, 0x83, 0xB1, 0x43, 0xE3, 0x83, 0xB2, 0x43,\n\t0xE3, 0x83, 0xB3, 0x43, 0xE3, 0x83, 0xBB, 0x43,\n\t0xE3, 0x83, 0xBC, 0x43, 0xE3, 0x92, 0x9E, 0x43,\n\t0xE3, 0x92, 0xB9, 0x43, 0xE3, 0x92, 0xBB, 0x43,\n\t// Bytes 5c0 - 5ff\n\t0xE3, 0x93, 0x9F, 0x43, 0xE3, 0x94, 0x95, 0x43,\n\t0xE3, 0x9B, 0xAE, 0x43, 0xE3, 0x9B, 0xBC, 0x43,\n\t0xE3, 0x9E, 0x81, 0x43, 0xE3, 0xA0, 0xAF, 0x43,\n\t0xE3, 0xA1, 0xA2, 0x43, 0xE3, 0xA1, 0xBC, 0x43,\n\t0xE3, 0xA3, 0x87, 0x43, 0xE3, 0xA3, 0xA3, 0x43,\n\t0xE3, 0xA4, 0x9C, 0x43, 0xE3, 0xA4, 0xBA, 0x43,\n\t0xE3, 0xA8, 0xAE, 0x43, 0xE3, 0xA9, 0xAC, 0x43,\n\t0xE3, 0xAB, 0xA4, 0x43, 0xE3, 0xAC, 0x88, 0x43,\n\t// Bytes 600 - 63f\n\t0xE3, 0xAC, 0x99, 0x43, 0xE3, 0xAD, 0x89, 0x43,\n\t0xE3, 0xAE, 0x9D, 0x43, 0xE3, 0xB0, 0x98, 0x43,\n\t0xE3, 0xB1, 0x8E, 0x43, 0xE3, 0xB4, 0xB3, 0x43,\n\t0xE3, 0xB6, 0x96, 0x43, 0xE3, 0xBA, 0xAC, 0x43,\n\t0xE3, 0xBA, 0xB8, 0x43, 0xE3, 0xBC, 0x9B, 0x43,\n\t0xE3, 0xBF, 0xBC, 0x43, 0xE4, 0x80, 0x88, 0x43,\n\t0xE4, 0x80, 0x98, 0x43, 0xE4, 0x80, 0xB9, 0x43,\n\t0xE4, 0x81, 0x86, 0x43, 0xE4, 0x82, 0x96, 0x43,\n\t// Bytes 640 - 67f\n\t0xE4, 0x83, 0xA3, 0x43, 0xE4, 0x84, 0xAF, 0x43,\n\t0xE4, 0x88, 0x82, 0x43, 0xE4, 0x88, 0xA7, 0x43,\n\t0xE4, 0x8A, 0xA0, 0x43, 0xE4, 0x8C, 0x81, 0x43,\n\t0xE4, 0x8C, 0xB4, 0x43, 0xE4, 0x8D, 0x99, 0x43,\n\t0xE4, 0x8F, 0x95, 0x43, 0xE4, 0x8F, 0x99, 0x43,\n\t0xE4, 0x90, 0x8B, 0x43, 0xE4, 0x91, 0xAB, 0x43,\n\t0xE4, 0x94, 0xAB, 0x43, 0xE4, 0x95, 0x9D, 0x43,\n\t0xE4, 0x95, 0xA1, 0x43, 0xE4, 0x95, 0xAB, 0x43,\n\t// Bytes 680 - 6bf\n\t0xE4, 0x97, 0x97, 0x43, 0xE4, 0x97, 0xB9, 0x43,\n\t0xE4, 0x98, 0xB5, 0x43, 0xE4, 0x9A, 0xBE, 0x43,\n\t0xE4, 0x9B, 0x87, 0x43, 0xE4, 0xA6, 0x95, 0x43,\n\t0xE4, 0xA7, 0xA6, 0x43, 0xE4, 0xA9, 0xAE, 0x43,\n\t0xE4, 0xA9, 0xB6, 0x43, 0xE4, 0xAA, 0xB2, 0x43,\n\t0xE4, 0xAC, 0xB3, 0x43, 0xE4, 0xAF, 0x8E, 0x43,\n\t0xE4, 0xB3, 0x8E, 0x43, 0xE4, 0xB3, 0xAD, 0x43,\n\t0xE4, 0xB3, 0xB8, 0x43, 0xE4, 0xB5, 0x96, 0x43,\n\t// Bytes 6c0 - 6ff\n\t0xE4, 0xB8, 0x80, 0x43, 0xE4, 0xB8, 0x81, 0x43,\n\t0xE4, 0xB8, 0x83, 0x43, 0xE4, 0xB8, 0x89, 0x43,\n\t0xE4, 0xB8, 0x8A, 0x43, 0xE4, 0xB8, 0x8B, 0x43,\n\t0xE4, 0xB8, 0x8D, 0x43, 0xE4, 0xB8, 0x99, 0x43,\n\t0xE4, 0xB8, 0xA6, 0x43, 0xE4, 0xB8, 0xA8, 0x43,\n\t0xE4, 0xB8, 0xAD, 0x43, 0xE4, 0xB8, 0xB2, 0x43,\n\t0xE4, 0xB8, 0xB6, 0x43, 0xE4, 0xB8, 0xB8, 0x43,\n\t0xE4, 0xB8, 0xB9, 0x43, 0xE4, 0xB8, 0xBD, 0x43,\n\t// Bytes 700 - 73f\n\t0xE4, 0xB8, 0xBF, 0x43, 0xE4, 0xB9, 0x81, 0x43,\n\t0xE4, 0xB9, 0x99, 0x43, 0xE4, 0xB9, 0x9D, 0x43,\n\t0xE4, 0xBA, 0x82, 0x43, 0xE4, 0xBA, 0x85, 0x43,\n\t0xE4, 0xBA, 0x86, 0x43, 0xE4, 0xBA, 0x8C, 0x43,\n\t0xE4, 0xBA, 0x94, 0x43, 0xE4, 0xBA, 0xA0, 0x43,\n\t0xE4, 0xBA, 0xA4, 0x43, 0xE4, 0xBA, 0xAE, 0x43,\n\t0xE4, 0xBA, 0xBA, 0x43, 0xE4, 0xBB, 0x80, 0x43,\n\t0xE4, 0xBB, 0x8C, 0x43, 0xE4, 0xBB, 0xA4, 0x43,\n\t// Bytes 740 - 77f\n\t0xE4, 0xBC, 0x81, 0x43, 0xE4, 0xBC, 0x91, 0x43,\n\t0xE4, 0xBD, 0xA0, 0x43, 0xE4, 0xBE, 0x80, 0x43,\n\t0xE4, 0xBE, 0x86, 0x43, 0xE4, 0xBE, 0x8B, 0x43,\n\t0xE4, 0xBE, 0xAE, 0x43, 0xE4, 0xBE, 0xBB, 0x43,\n\t0xE4, 0xBE, 0xBF, 0x43, 0xE5, 0x80, 0x82, 0x43,\n\t0xE5, 0x80, 0xAB, 0x43, 0xE5, 0x81, 0xBA, 0x43,\n\t0xE5, 0x82, 0x99, 0x43, 0xE5, 0x83, 0x8F, 0x43,\n\t0xE5, 0x83, 0x9A, 0x43, 0xE5, 0x83, 0xA7, 0x43,\n\t// Bytes 780 - 7bf\n\t0xE5, 0x84, 0xAA, 0x43, 0xE5, 0x84, 0xBF, 0x43,\n\t0xE5, 0x85, 0x80, 0x43, 0xE5, 0x85, 0x85, 0x43,\n\t0xE5, 0x85, 0x8D, 0x43, 0xE5, 0x85, 0x94, 0x43,\n\t0xE5, 0x85, 0xA4, 0x43, 0xE5, 0x85, 0xA5, 0x43,\n\t0xE5, 0x85, 0xA7, 0x43, 0xE5, 0x85, 0xA8, 0x43,\n\t0xE5, 0x85, 0xA9, 0x43, 0xE5, 0x85, 0xAB, 0x43,\n\t0xE5, 0x85, 0xAD, 0x43, 0xE5, 0x85, 0xB7, 0x43,\n\t0xE5, 0x86, 0x80, 0x43, 0xE5, 0x86, 0x82, 0x43,\n\t// Bytes 7c0 - 7ff\n\t0xE5, 0x86, 0x8D, 0x43, 0xE5, 0x86, 0x92, 0x43,\n\t0xE5, 0x86, 0x95, 0x43, 0xE5, 0x86, 0x96, 0x43,\n\t0xE5, 0x86, 0x97, 0x43, 0xE5, 0x86, 0x99, 0x43,\n\t0xE5, 0x86, 0xA4, 0x43, 0xE5, 0x86, 0xAB, 0x43,\n\t0xE5, 0x86, 0xAC, 0x43, 0xE5, 0x86, 0xB5, 0x43,\n\t0xE5, 0x86, 0xB7, 0x43, 0xE5, 0x87, 0x89, 0x43,\n\t0xE5, 0x87, 0x8C, 0x43, 0xE5, 0x87, 0x9C, 0x43,\n\t0xE5, 0x87, 0x9E, 0x43, 0xE5, 0x87, 0xA0, 0x43,\n\t// Bytes 800 - 83f\n\t0xE5, 0x87, 0xB5, 0x43, 0xE5, 0x88, 0x80, 0x43,\n\t0xE5, 0x88, 0x83, 0x43, 0xE5, 0x88, 0x87, 0x43,\n\t0xE5, 0x88, 0x97, 0x43, 0xE5, 0x88, 0x9D, 0x43,\n\t0xE5, 0x88, 0xA9, 0x43, 0xE5, 0x88, 0xBA, 0x43,\n\t0xE5, 0x88, 0xBB, 0x43, 0xE5, 0x89, 0x86, 0x43,\n\t0xE5, 0x89, 0x8D, 0x43, 0xE5, 0x89, 0xB2, 0x43,\n\t0xE5, 0x89, 0xB7, 0x43, 0xE5, 0x8A, 0x89, 0x43,\n\t0xE5, 0x8A, 0x9B, 0x43, 0xE5, 0x8A, 0xA3, 0x43,\n\t// Bytes 840 - 87f\n\t0xE5, 0x8A, 0xB3, 0x43, 0xE5, 0x8A, 0xB4, 0x43,\n\t0xE5, 0x8B, 0x87, 0x43, 0xE5, 0x8B, 0x89, 0x43,\n\t0xE5, 0x8B, 0x92, 0x43, 0xE5, 0x8B, 0x9E, 0x43,\n\t0xE5, 0x8B, 0xA4, 0x43, 0xE5, 0x8B, 0xB5, 0x43,\n\t0xE5, 0x8B, 0xB9, 0x43, 0xE5, 0x8B, 0xBA, 0x43,\n\t0xE5, 0x8C, 0x85, 0x43, 0xE5, 0x8C, 0x86, 0x43,\n\t0xE5, 0x8C, 0x95, 0x43, 0xE5, 0x8C, 0x97, 0x43,\n\t0xE5, 0x8C, 0x9A, 0x43, 0xE5, 0x8C, 0xB8, 0x43,\n\t// Bytes 880 - 8bf\n\t0xE5, 0x8C, 0xBB, 0x43, 0xE5, 0x8C, 0xBF, 0x43,\n\t0xE5, 0x8D, 0x81, 0x43, 0xE5, 0x8D, 0x84, 0x43,\n\t0xE5, 0x8D, 0x85, 0x43, 0xE5, 0x8D, 0x89, 0x43,\n\t0xE5, 0x8D, 0x91, 0x43, 0xE5, 0x8D, 0x94, 0x43,\n\t0xE5, 0x8D, 0x9A, 0x43, 0xE5, 0x8D, 0x9C, 0x43,\n\t0xE5, 0x8D, 0xA9, 0x43, 0xE5, 0x8D, 0xB0, 0x43,\n\t0xE5, 0x8D, 0xB3, 0x43, 0xE5, 0x8D, 0xB5, 0x43,\n\t0xE5, 0x8D, 0xBD, 0x43, 0xE5, 0x8D, 0xBF, 0x43,\n\t// Bytes 8c0 - 8ff\n\t0xE5, 0x8E, 0x82, 0x43, 0xE5, 0x8E, 0xB6, 0x43,\n\t0xE5, 0x8F, 0x83, 0x43, 0xE5, 0x8F, 0x88, 0x43,\n\t0xE5, 0x8F, 0x8A, 0x43, 0xE5, 0x8F, 0x8C, 0x43,\n\t0xE5, 0x8F, 0x9F, 0x43, 0xE5, 0x8F, 0xA3, 0x43,\n\t0xE5, 0x8F, 0xA5, 0x43, 0xE5, 0x8F, 0xAB, 0x43,\n\t0xE5, 0x8F, 0xAF, 0x43, 0xE5, 0x8F, 0xB1, 0x43,\n\t0xE5, 0x8F, 0xB3, 0x43, 0xE5, 0x90, 0x86, 0x43,\n\t0xE5, 0x90, 0x88, 0x43, 0xE5, 0x90, 0x8D, 0x43,\n\t// Bytes 900 - 93f\n\t0xE5, 0x90, 0x8F, 0x43, 0xE5, 0x90, 0x9D, 0x43,\n\t0xE5, 0x90, 0xB8, 0x43, 0xE5, 0x90, 0xB9, 0x43,\n\t0xE5, 0x91, 0x82, 0x43, 0xE5, 0x91, 0x88, 0x43,\n\t0xE5, 0x91, 0xA8, 0x43, 0xE5, 0x92, 0x9E, 0x43,\n\t0xE5, 0x92, 0xA2, 0x43, 0xE5, 0x92, 0xBD, 0x43,\n\t0xE5, 0x93, 0xB6, 0x43, 0xE5, 0x94, 0x90, 0x43,\n\t0xE5, 0x95, 0x8F, 0x43, 0xE5, 0x95, 0x93, 0x43,\n\t0xE5, 0x95, 0x95, 0x43, 0xE5, 0x95, 0xA3, 0x43,\n\t// Bytes 940 - 97f\n\t0xE5, 0x96, 0x84, 0x43, 0xE5, 0x96, 0x87, 0x43,\n\t0xE5, 0x96, 0x99, 0x43, 0xE5, 0x96, 0x9D, 0x43,\n\t0xE5, 0x96, 0xAB, 0x43, 0xE5, 0x96, 0xB3, 0x43,\n\t0xE5, 0x96, 0xB6, 0x43, 0xE5, 0x97, 0x80, 0x43,\n\t0xE5, 0x97, 0x82, 0x43, 0xE5, 0x97, 0xA2, 0x43,\n\t0xE5, 0x98, 0x86, 0x43, 0xE5, 0x99, 0x91, 0x43,\n\t0xE5, 0x99, 0xA8, 0x43, 0xE5, 0x99, 0xB4, 0x43,\n\t0xE5, 0x9B, 0x97, 0x43, 0xE5, 0x9B, 0x9B, 0x43,\n\t// Bytes 980 - 9bf\n\t0xE5, 0x9B, 0xB9, 0x43, 0xE5, 0x9C, 0x96, 0x43,\n\t0xE5, 0x9C, 0x97, 0x43, 0xE5, 0x9C, 0x9F, 0x43,\n\t0xE5, 0x9C, 0xB0, 0x43, 0xE5, 0x9E, 0x8B, 0x43,\n\t0xE5, 0x9F, 0x8E, 0x43, 0xE5, 0x9F, 0xB4, 0x43,\n\t0xE5, 0xA0, 0x8D, 0x43, 0xE5, 0xA0, 0xB1, 0x43,\n\t0xE5, 0xA0, 0xB2, 0x43, 0xE5, 0xA1, 0x80, 0x43,\n\t0xE5, 0xA1, 0x9A, 0x43, 0xE5, 0xA1, 0x9E, 0x43,\n\t0xE5, 0xA2, 0xA8, 0x43, 0xE5, 0xA2, 0xAC, 0x43,\n\t// Bytes 9c0 - 9ff\n\t0xE5, 0xA2, 0xB3, 0x43, 0xE5, 0xA3, 0x98, 0x43,\n\t0xE5, 0xA3, 0x9F, 0x43, 0xE5, 0xA3, 0xAB, 0x43,\n\t0xE5, 0xA3, 0xAE, 0x43, 0xE5, 0xA3, 0xB0, 0x43,\n\t0xE5, 0xA3, 0xB2, 0x43, 0xE5, 0xA3, 0xB7, 0x43,\n\t0xE5, 0xA4, 0x82, 0x43, 0xE5, 0xA4, 0x86, 0x43,\n\t0xE5, 0xA4, 0x8A, 0x43, 0xE5, 0xA4, 0x95, 0x43,\n\t0xE5, 0xA4, 0x9A, 0x43, 0xE5, 0xA4, 0x9C, 0x43,\n\t0xE5, 0xA4, 0xA2, 0x43, 0xE5, 0xA4, 0xA7, 0x43,\n\t// Bytes a00 - a3f\n\t0xE5, 0xA4, 0xA9, 0x43, 0xE5, 0xA5, 0x84, 0x43,\n\t0xE5, 0xA5, 0x88, 0x43, 0xE5, 0xA5, 0x91, 0x43,\n\t0xE5, 0xA5, 0x94, 0x43, 0xE5, 0xA5, 0xA2, 0x43,\n\t0xE5, 0xA5, 0xB3, 0x43, 0xE5, 0xA7, 0x98, 0x43,\n\t0xE5, 0xA7, 0xAC, 0x43, 0xE5, 0xA8, 0x9B, 0x43,\n\t0xE5, 0xA8, 0xA7, 0x43, 0xE5, 0xA9, 0xA2, 0x43,\n\t0xE5, 0xA9, 0xA6, 0x43, 0xE5, 0xAA, 0xB5, 0x43,\n\t0xE5, 0xAC, 0x88, 0x43, 0xE5, 0xAC, 0xA8, 0x43,\n\t// Bytes a40 - a7f\n\t0xE5, 0xAC, 0xBE, 0x43, 0xE5, 0xAD, 0x90, 0x43,\n\t0xE5, 0xAD, 0x97, 0x43, 0xE5, 0xAD, 0xA6, 0x43,\n\t0xE5, 0xAE, 0x80, 0x43, 0xE5, 0xAE, 0x85, 0x43,\n\t0xE5, 0xAE, 0x97, 0x43, 0xE5, 0xAF, 0x83, 0x43,\n\t0xE5, 0xAF, 0x98, 0x43, 0xE5, 0xAF, 0xA7, 0x43,\n\t0xE5, 0xAF, 0xAE, 0x43, 0xE5, 0xAF, 0xB3, 0x43,\n\t0xE5, 0xAF, 0xB8, 0x43, 0xE5, 0xAF, 0xBF, 0x43,\n\t0xE5, 0xB0, 0x86, 0x43, 0xE5, 0xB0, 0x8F, 0x43,\n\t// Bytes a80 - abf\n\t0xE5, 0xB0, 0xA2, 0x43, 0xE5, 0xB0, 0xB8, 0x43,\n\t0xE5, 0xB0, 0xBF, 0x43, 0xE5, 0xB1, 0xA0, 0x43,\n\t0xE5, 0xB1, 0xA2, 0x43, 0xE5, 0xB1, 0xA4, 0x43,\n\t0xE5, 0xB1, 0xA5, 0x43, 0xE5, 0xB1, 0xAE, 0x43,\n\t0xE5, 0xB1, 0xB1, 0x43, 0xE5, 0xB2, 0x8D, 0x43,\n\t0xE5, 0xB3, 0x80, 0x43, 0xE5, 0xB4, 0x99, 0x43,\n\t0xE5, 0xB5, 0x83, 0x43, 0xE5, 0xB5, 0x90, 0x43,\n\t0xE5, 0xB5, 0xAB, 0x43, 0xE5, 0xB5, 0xAE, 0x43,\n\t// Bytes ac0 - aff\n\t0xE5, 0xB5, 0xBC, 0x43, 0xE5, 0xB6, 0xB2, 0x43,\n\t0xE5, 0xB6, 0xBA, 0x43, 0xE5, 0xB7, 0x9B, 0x43,\n\t0xE5, 0xB7, 0xA1, 0x43, 0xE5, 0xB7, 0xA2, 0x43,\n\t0xE5, 0xB7, 0xA5, 0x43, 0xE5, 0xB7, 0xA6, 0x43,\n\t0xE5, 0xB7, 0xB1, 0x43, 0xE5, 0xB7, 0xBD, 0x43,\n\t0xE5, 0xB7, 0xBE, 0x43, 0xE5, 0xB8, 0xA8, 0x43,\n\t0xE5, 0xB8, 0xBD, 0x43, 0xE5, 0xB9, 0xA9, 0x43,\n\t0xE5, 0xB9, 0xB2, 0x43, 0xE5, 0xB9, 0xB4, 0x43,\n\t// Bytes b00 - b3f\n\t0xE5, 0xB9, 0xBA, 0x43, 0xE5, 0xB9, 0xBC, 0x43,\n\t0xE5, 0xB9, 0xBF, 0x43, 0xE5, 0xBA, 0xA6, 0x43,\n\t0xE5, 0xBA, 0xB0, 0x43, 0xE5, 0xBA, 0xB3, 0x43,\n\t0xE5, 0xBA, 0xB6, 0x43, 0xE5, 0xBB, 0x89, 0x43,\n\t0xE5, 0xBB, 0x8A, 0x43, 0xE5, 0xBB, 0x92, 0x43,\n\t0xE5, 0xBB, 0x93, 0x43, 0xE5, 0xBB, 0x99, 0x43,\n\t0xE5, 0xBB, 0xAC, 0x43, 0xE5, 0xBB, 0xB4, 0x43,\n\t0xE5, 0xBB, 0xBE, 0x43, 0xE5, 0xBC, 0x84, 0x43,\n\t// Bytes b40 - b7f\n\t0xE5, 0xBC, 0x8B, 0x43, 0xE5, 0xBC, 0x93, 0x43,\n\t0xE5, 0xBC, 0xA2, 0x43, 0xE5, 0xBD, 0x90, 0x43,\n\t0xE5, 0xBD, 0x93, 0x43, 0xE5, 0xBD, 0xA1, 0x43,\n\t0xE5, 0xBD, 0xA2, 0x43, 0xE5, 0xBD, 0xA9, 0x43,\n\t0xE5, 0xBD, 0xAB, 0x43, 0xE5, 0xBD, 0xB3, 0x43,\n\t0xE5, 0xBE, 0x8B, 0x43, 0xE5, 0xBE, 0x8C, 0x43,\n\t0xE5, 0xBE, 0x97, 0x43, 0xE5, 0xBE, 0x9A, 0x43,\n\t0xE5, 0xBE, 0xA9, 0x43, 0xE5, 0xBE, 0xAD, 0x43,\n\t// Bytes b80 - bbf\n\t0xE5, 0xBF, 0x83, 0x43, 0xE5, 0xBF, 0x8D, 0x43,\n\t0xE5, 0xBF, 0x97, 0x43, 0xE5, 0xBF, 0xB5, 0x43,\n\t0xE5, 0xBF, 0xB9, 0x43, 0xE6, 0x80, 0x92, 0x43,\n\t0xE6, 0x80, 0x9C, 0x43, 0xE6, 0x81, 0xB5, 0x43,\n\t0xE6, 0x82, 0x81, 0x43, 0xE6, 0x82, 0x94, 0x43,\n\t0xE6, 0x83, 0x87, 0x43, 0xE6, 0x83, 0x98, 0x43,\n\t0xE6, 0x83, 0xA1, 0x43, 0xE6, 0x84, 0x88, 0x43,\n\t0xE6, 0x85, 0x84, 0x43, 0xE6, 0x85, 0x88, 0x43,\n\t// Bytes bc0 - bff\n\t0xE6, 0x85, 0x8C, 0x43, 0xE6, 0x85, 0x8E, 0x43,\n\t0xE6, 0x85, 0xA0, 0x43, 0xE6, 0x85, 0xA8, 0x43,\n\t0xE6, 0x85, 0xBA, 0x43, 0xE6, 0x86, 0x8E, 0x43,\n\t0xE6, 0x86, 0x90, 0x43, 0xE6, 0x86, 0xA4, 0x43,\n\t0xE6, 0x86, 0xAF, 0x43, 0xE6, 0x86, 0xB2, 0x43,\n\t0xE6, 0x87, 0x9E, 0x43, 0xE6, 0x87, 0xB2, 0x43,\n\t0xE6, 0x87, 0xB6, 0x43, 0xE6, 0x88, 0x80, 0x43,\n\t0xE6, 0x88, 0x88, 0x43, 0xE6, 0x88, 0x90, 0x43,\n\t// Bytes c00 - c3f\n\t0xE6, 0x88, 0x9B, 0x43, 0xE6, 0x88, 0xAE, 0x43,\n\t0xE6, 0x88, 0xB4, 0x43, 0xE6, 0x88, 0xB6, 0x43,\n\t0xE6, 0x89, 0x8B, 0x43, 0xE6, 0x89, 0x93, 0x43,\n\t0xE6, 0x89, 0x9D, 0x43, 0xE6, 0x8A, 0x95, 0x43,\n\t0xE6, 0x8A, 0xB1, 0x43, 0xE6, 0x8B, 0x89, 0x43,\n\t0xE6, 0x8B, 0x8F, 0x43, 0xE6, 0x8B, 0x93, 0x43,\n\t0xE6, 0x8B, 0x94, 0x43, 0xE6, 0x8B, 0xBC, 0x43,\n\t0xE6, 0x8B, 0xBE, 0x43, 0xE6, 0x8C, 0x87, 0x43,\n\t// Bytes c40 - c7f\n\t0xE6, 0x8C, 0xBD, 0x43, 0xE6, 0x8D, 0x90, 0x43,\n\t0xE6, 0x8D, 0x95, 0x43, 0xE6, 0x8D, 0xA8, 0x43,\n\t0xE6, 0x8D, 0xBB, 0x43, 0xE6, 0x8E, 0x83, 0x43,\n\t0xE6, 0x8E, 0xA0, 0x43, 0xE6, 0x8E, 0xA9, 0x43,\n\t0xE6, 0x8F, 0x84, 0x43, 0xE6, 0x8F, 0x85, 0x43,\n\t0xE6, 0x8F, 0xA4, 0x43, 0xE6, 0x90, 0x9C, 0x43,\n\t0xE6, 0x90, 0xA2, 0x43, 0xE6, 0x91, 0x92, 0x43,\n\t0xE6, 0x91, 0xA9, 0x43, 0xE6, 0x91, 0xB7, 0x43,\n\t// Bytes c80 - cbf\n\t0xE6, 0x91, 0xBE, 0x43, 0xE6, 0x92, 0x9A, 0x43,\n\t0xE6, 0x92, 0x9D, 0x43, 0xE6, 0x93, 0x84, 0x43,\n\t0xE6, 0x94, 0xAF, 0x43, 0xE6, 0x94, 0xB4, 0x43,\n\t0xE6, 0x95, 0x8F, 0x43, 0xE6, 0x95, 0x96, 0x43,\n\t0xE6, 0x95, 0xAC, 0x43, 0xE6, 0x95, 0xB8, 0x43,\n\t0xE6, 0x96, 0x87, 0x43, 0xE6, 0x96, 0x97, 0x43,\n\t0xE6, 0x96, 0x99, 0x43, 0xE6, 0x96, 0xA4, 0x43,\n\t0xE6, 0x96, 0xB0, 0x43, 0xE6, 0x96, 0xB9, 0x43,\n\t// Bytes cc0 - cff\n\t0xE6, 0x97, 0x85, 0x43, 0xE6, 0x97, 0xA0, 0x43,\n\t0xE6, 0x97, 0xA2, 0x43, 0xE6, 0x97, 0xA3, 0x43,\n\t0xE6, 0x97, 0xA5, 0x43, 0xE6, 0x98, 0x93, 0x43,\n\t0xE6, 0x98, 0xA0, 0x43, 0xE6, 0x99, 0x89, 0x43,\n\t0xE6, 0x99, 0xB4, 0x43, 0xE6, 0x9A, 0x88, 0x43,\n\t0xE6, 0x9A, 0x91, 0x43, 0xE6, 0x9A, 0x9C, 0x43,\n\t0xE6, 0x9A, 0xB4, 0x43, 0xE6, 0x9B, 0x86, 0x43,\n\t0xE6, 0x9B, 0xB0, 0x43, 0xE6, 0x9B, 0xB4, 0x43,\n\t// Bytes d00 - d3f\n\t0xE6, 0x9B, 0xB8, 0x43, 0xE6, 0x9C, 0x80, 0x43,\n\t0xE6, 0x9C, 0x88, 0x43, 0xE6, 0x9C, 0x89, 0x43,\n\t0xE6, 0x9C, 0x97, 0x43, 0xE6, 0x9C, 0x9B, 0x43,\n\t0xE6, 0x9C, 0xA1, 0x43, 0xE6, 0x9C, 0xA8, 0x43,\n\t0xE6, 0x9D, 0x8E, 0x43, 0xE6, 0x9D, 0x93, 0x43,\n\t0xE6, 0x9D, 0x96, 0x43, 0xE6, 0x9D, 0x9E, 0x43,\n\t0xE6, 0x9D, 0xBB, 0x43, 0xE6, 0x9E, 0x85, 0x43,\n\t0xE6, 0x9E, 0x97, 0x43, 0xE6, 0x9F, 0xB3, 0x43,\n\t// Bytes d40 - d7f\n\t0xE6, 0x9F, 0xBA, 0x43, 0xE6, 0xA0, 0x97, 0x43,\n\t0xE6, 0xA0, 0x9F, 0x43, 0xE6, 0xA0, 0xAA, 0x43,\n\t0xE6, 0xA1, 0x92, 0x43, 0xE6, 0xA2, 0x81, 0x43,\n\t0xE6, 0xA2, 0x85, 0x43, 0xE6, 0xA2, 0x8E, 0x43,\n\t0xE6, 0xA2, 0xA8, 0x43, 0xE6, 0xA4, 0x94, 0x43,\n\t0xE6, 0xA5, 0x82, 0x43, 0xE6, 0xA6, 0xA3, 0x43,\n\t0xE6, 0xA7, 0xAA, 0x43, 0xE6, 0xA8, 0x82, 0x43,\n\t0xE6, 0xA8, 0x93, 0x43, 0xE6, 0xAA, 0xA8, 0x43,\n\t// Bytes d80 - dbf\n\t0xE6, 0xAB, 0x93, 0x43, 0xE6, 0xAB, 0x9B, 0x43,\n\t0xE6, 0xAC, 0x84, 0x43, 0xE6, 0xAC, 0xA0, 0x43,\n\t0xE6, 0xAC, 0xA1, 0x43, 0xE6, 0xAD, 0x94, 0x43,\n\t0xE6, 0xAD, 0xA2, 0x43, 0xE6, 0xAD, 0xA3, 0x43,\n\t0xE6, 0xAD, 0xB2, 0x43, 0xE6, 0xAD, 0xB7, 0x43,\n\t0xE6, 0xAD, 0xB9, 0x43, 0xE6, 0xAE, 0x9F, 0x43,\n\t0xE6, 0xAE, 0xAE, 0x43, 0xE6, 0xAE, 0xB3, 0x43,\n\t0xE6, 0xAE, 0xBA, 0x43, 0xE6, 0xAE, 0xBB, 0x43,\n\t// Bytes dc0 - dff\n\t0xE6, 0xAF, 0x8B, 0x43, 0xE6, 0xAF, 0x8D, 0x43,\n\t0xE6, 0xAF, 0x94, 0x43, 0xE6, 0xAF, 0x9B, 0x43,\n\t0xE6, 0xB0, 0x8F, 0x43, 0xE6, 0xB0, 0x94, 0x43,\n\t0xE6, 0xB0, 0xB4, 0x43, 0xE6, 0xB1, 0x8E, 0x43,\n\t0xE6, 0xB1, 0xA7, 0x43, 0xE6, 0xB2, 0x88, 0x43,\n\t0xE6, 0xB2, 0xBF, 0x43, 0xE6, 0xB3, 0x8C, 0x43,\n\t0xE6, 0xB3, 0x8D, 0x43, 0xE6, 0xB3, 0xA5, 0x43,\n\t0xE6, 0xB3, 0xA8, 0x43, 0xE6, 0xB4, 0x96, 0x43,\n\t// Bytes e00 - e3f\n\t0xE6, 0xB4, 0x9B, 0x43, 0xE6, 0xB4, 0x9E, 0x43,\n\t0xE6, 0xB4, 0xB4, 0x43, 0xE6, 0xB4, 0xBE, 0x43,\n\t0xE6, 0xB5, 0x81, 0x43, 0xE6, 0xB5, 0xA9, 0x43,\n\t0xE6, 0xB5, 0xAA, 0x43, 0xE6, 0xB5, 0xB7, 0x43,\n\t0xE6, 0xB5, 0xB8, 0x43, 0xE6, 0xB6, 0x85, 0x43,\n\t0xE6, 0xB7, 0x8B, 0x43, 0xE6, 0xB7, 0x9A, 0x43,\n\t0xE6, 0xB7, 0xAA, 0x43, 0xE6, 0xB7, 0xB9, 0x43,\n\t0xE6, 0xB8, 0x9A, 0x43, 0xE6, 0xB8, 0xAF, 0x43,\n\t// Bytes e40 - e7f\n\t0xE6, 0xB9, 0xAE, 0x43, 0xE6, 0xBA, 0x80, 0x43,\n\t0xE6, 0xBA, 0x9C, 0x43, 0xE6, 0xBA, 0xBA, 0x43,\n\t0xE6, 0xBB, 0x87, 0x43, 0xE6, 0xBB, 0x8B, 0x43,\n\t0xE6, 0xBB, 0x91, 0x43, 0xE6, 0xBB, 0x9B, 0x43,\n\t0xE6, 0xBC, 0x8F, 0x43, 0xE6, 0xBC, 0x94, 0x43,\n\t0xE6, 0xBC, 0xA2, 0x43, 0xE6, 0xBC, 0xA3, 0x43,\n\t0xE6, 0xBD, 0xAE, 0x43, 0xE6, 0xBF, 0x86, 0x43,\n\t0xE6, 0xBF, 0xAB, 0x43, 0xE6, 0xBF, 0xBE, 0x43,\n\t// Bytes e80 - ebf\n\t0xE7, 0x80, 0x9B, 0x43, 0xE7, 0x80, 0x9E, 0x43,\n\t0xE7, 0x80, 0xB9, 0x43, 0xE7, 0x81, 0x8A, 0x43,\n\t0xE7, 0x81, 0xAB, 0x43, 0xE7, 0x81, 0xB0, 0x43,\n\t0xE7, 0x81, 0xB7, 0x43, 0xE7, 0x81, 0xBD, 0x43,\n\t0xE7, 0x82, 0x99, 0x43, 0xE7, 0x82, 0xAD, 0x43,\n\t0xE7, 0x83, 0x88, 0x43, 0xE7, 0x83, 0x99, 0x43,\n\t0xE7, 0x84, 0xA1, 0x43, 0xE7, 0x85, 0x85, 0x43,\n\t0xE7, 0x85, 0x89, 0x43, 0xE7, 0x85, 0xAE, 0x43,\n\t// Bytes ec0 - eff\n\t0xE7, 0x86, 0x9C, 0x43, 0xE7, 0x87, 0x8E, 0x43,\n\t0xE7, 0x87, 0x90, 0x43, 0xE7, 0x88, 0x90, 0x43,\n\t0xE7, 0x88, 0x9B, 0x43, 0xE7, 0x88, 0xA8, 0x43,\n\t0xE7, 0x88, 0xAA, 0x43, 0xE7, 0x88, 0xAB, 0x43,\n\t0xE7, 0x88, 0xB5, 0x43, 0xE7, 0x88, 0xB6, 0x43,\n\t0xE7, 0x88, 0xBB, 0x43, 0xE7, 0x88, 0xBF, 0x43,\n\t0xE7, 0x89, 0x87, 0x43, 0xE7, 0x89, 0x90, 0x43,\n\t0xE7, 0x89, 0x99, 0x43, 0xE7, 0x89, 0x9B, 0x43,\n\t// Bytes f00 - f3f\n\t0xE7, 0x89, 0xA2, 0x43, 0xE7, 0x89, 0xB9, 0x43,\n\t0xE7, 0x8A, 0x80, 0x43, 0xE7, 0x8A, 0x95, 0x43,\n\t0xE7, 0x8A, 0xAC, 0x43, 0xE7, 0x8A, 0xAF, 0x43,\n\t0xE7, 0x8B, 0x80, 0x43, 0xE7, 0x8B, 0xBC, 0x43,\n\t0xE7, 0x8C, 0xAA, 0x43, 0xE7, 0x8D, 0xB5, 0x43,\n\t0xE7, 0x8D, 0xBA, 0x43, 0xE7, 0x8E, 0x84, 0x43,\n\t0xE7, 0x8E, 0x87, 0x43, 0xE7, 0x8E, 0x89, 0x43,\n\t0xE7, 0x8E, 0x8B, 0x43, 0xE7, 0x8E, 0xA5, 0x43,\n\t// Bytes f40 - f7f\n\t0xE7, 0x8E, 0xB2, 0x43, 0xE7, 0x8F, 0x9E, 0x43,\n\t0xE7, 0x90, 0x86, 0x43, 0xE7, 0x90, 0x89, 0x43,\n\t0xE7, 0x90, 0xA2, 0x43, 0xE7, 0x91, 0x87, 0x43,\n\t0xE7, 0x91, 0x9C, 0x43, 0xE7, 0x91, 0xA9, 0x43,\n\t0xE7, 0x91, 0xB1, 0x43, 0xE7, 0x92, 0x85, 0x43,\n\t0xE7, 0x92, 0x89, 0x43, 0xE7, 0x92, 0x98, 0x43,\n\t0xE7, 0x93, 0x8A, 0x43, 0xE7, 0x93, 0x9C, 0x43,\n\t0xE7, 0x93, 0xA6, 0x43, 0xE7, 0x94, 0x86, 0x43,\n\t// Bytes f80 - fbf\n\t0xE7, 0x94, 0x98, 0x43, 0xE7, 0x94, 0x9F, 0x43,\n\t0xE7, 0x94, 0xA4, 0x43, 0xE7, 0x94, 0xA8, 0x43,\n\t0xE7, 0x94, 0xB0, 0x43, 0xE7, 0x94, 0xB2, 0x43,\n\t0xE7, 0x94, 0xB3, 0x43, 0xE7, 0x94, 0xB7, 0x43,\n\t0xE7, 0x94, 0xBB, 0x43, 0xE7, 0x94, 0xBE, 0x43,\n\t0xE7, 0x95, 0x99, 0x43, 0xE7, 0x95, 0xA5, 0x43,\n\t0xE7, 0x95, 0xB0, 0x43, 0xE7, 0x96, 0x8B, 0x43,\n\t0xE7, 0x96, 0x92, 0x43, 0xE7, 0x97, 0xA2, 0x43,\n\t// Bytes fc0 - fff\n\t0xE7, 0x98, 0x90, 0x43, 0xE7, 0x98, 0x9D, 0x43,\n\t0xE7, 0x98, 0x9F, 0x43, 0xE7, 0x99, 0x82, 0x43,\n\t0xE7, 0x99, 0xA9, 0x43, 0xE7, 0x99, 0xB6, 0x43,\n\t0xE7, 0x99, 0xBD, 0x43, 0xE7, 0x9A, 0xAE, 0x43,\n\t0xE7, 0x9A, 0xBF, 0x43, 0xE7, 0x9B, 0x8A, 0x43,\n\t0xE7, 0x9B, 0x9B, 0x43, 0xE7, 0x9B, 0xA3, 0x43,\n\t0xE7, 0x9B, 0xA7, 0x43, 0xE7, 0x9B, 0xAE, 0x43,\n\t0xE7, 0x9B, 0xB4, 0x43, 0xE7, 0x9C, 0x81, 0x43,\n\t// Bytes 1000 - 103f\n\t0xE7, 0x9C, 0x9E, 0x43, 0xE7, 0x9C, 0x9F, 0x43,\n\t0xE7, 0x9D, 0x80, 0x43, 0xE7, 0x9D, 0x8A, 0x43,\n\t0xE7, 0x9E, 0x8B, 0x43, 0xE7, 0x9E, 0xA7, 0x43,\n\t0xE7, 0x9F, 0x9B, 0x43, 0xE7, 0x9F, 0xA2, 0x43,\n\t0xE7, 0x9F, 0xB3, 0x43, 0xE7, 0xA1, 0x8E, 0x43,\n\t0xE7, 0xA1, 0xAB, 0x43, 0xE7, 0xA2, 0x8C, 0x43,\n\t0xE7, 0xA2, 0x91, 0x43, 0xE7, 0xA3, 0x8A, 0x43,\n\t0xE7, 0xA3, 0x8C, 0x43, 0xE7, 0xA3, 0xBB, 0x43,\n\t// Bytes 1040 - 107f\n\t0xE7, 0xA4, 0xAA, 0x43, 0xE7, 0xA4, 0xBA, 0x43,\n\t0xE7, 0xA4, 0xBC, 0x43, 0xE7, 0xA4, 0xBE, 0x43,\n\t0xE7, 0xA5, 0x88, 0x43, 0xE7, 0xA5, 0x89, 0x43,\n\t0xE7, 0xA5, 0x90, 0x43, 0xE7, 0xA5, 0x96, 0x43,\n\t0xE7, 0xA5, 0x9D, 0x43, 0xE7, 0xA5, 0x9E, 0x43,\n\t0xE7, 0xA5, 0xA5, 0x43, 0xE7, 0xA5, 0xBF, 0x43,\n\t0xE7, 0xA6, 0x81, 0x43, 0xE7, 0xA6, 0x8D, 0x43,\n\t0xE7, 0xA6, 0x8E, 0x43, 0xE7, 0xA6, 0x8F, 0x43,\n\t// Bytes 1080 - 10bf\n\t0xE7, 0xA6, 0xAE, 0x43, 0xE7, 0xA6, 0xB8, 0x43,\n\t0xE7, 0xA6, 0xBE, 0x43, 0xE7, 0xA7, 0x8A, 0x43,\n\t0xE7, 0xA7, 0x98, 0x43, 0xE7, 0xA7, 0xAB, 0x43,\n\t0xE7, 0xA8, 0x9C, 0x43, 0xE7, 0xA9, 0x80, 0x43,\n\t0xE7, 0xA9, 0x8A, 0x43, 0xE7, 0xA9, 0x8F, 0x43,\n\t0xE7, 0xA9, 0xB4, 0x43, 0xE7, 0xA9, 0xBA, 0x43,\n\t0xE7, 0xAA, 0x81, 0x43, 0xE7, 0xAA, 0xB1, 0x43,\n\t0xE7, 0xAB, 0x8B, 0x43, 0xE7, 0xAB, 0xAE, 0x43,\n\t// Bytes 10c0 - 10ff\n\t0xE7, 0xAB, 0xB9, 0x43, 0xE7, 0xAC, 0xA0, 0x43,\n\t0xE7, 0xAE, 0x8F, 0x43, 0xE7, 0xAF, 0x80, 0x43,\n\t0xE7, 0xAF, 0x86, 0x43, 0xE7, 0xAF, 0x89, 0x43,\n\t0xE7, 0xB0, 0xBE, 0x43, 0xE7, 0xB1, 0xA0, 0x43,\n\t0xE7, 0xB1, 0xB3, 0x43, 0xE7, 0xB1, 0xBB, 0x43,\n\t0xE7, 0xB2, 0x92, 0x43, 0xE7, 0xB2, 0xBE, 0x43,\n\t0xE7, 0xB3, 0x92, 0x43, 0xE7, 0xB3, 0x96, 0x43,\n\t0xE7, 0xB3, 0xA3, 0x43, 0xE7, 0xB3, 0xA7, 0x43,\n\t// Bytes 1100 - 113f\n\t0xE7, 0xB3, 0xA8, 0x43, 0xE7, 0xB3, 0xB8, 0x43,\n\t0xE7, 0xB4, 0x80, 0x43, 0xE7, 0xB4, 0x90, 0x43,\n\t0xE7, 0xB4, 0xA2, 0x43, 0xE7, 0xB4, 0xAF, 0x43,\n\t0xE7, 0xB5, 0x82, 0x43, 0xE7, 0xB5, 0x9B, 0x43,\n\t0xE7, 0xB5, 0xA3, 0x43, 0xE7, 0xB6, 0xA0, 0x43,\n\t0xE7, 0xB6, 0xBE, 0x43, 0xE7, 0xB7, 0x87, 0x43,\n\t0xE7, 0xB7, 0xB4, 0x43, 0xE7, 0xB8, 0x82, 0x43,\n\t0xE7, 0xB8, 0x89, 0x43, 0xE7, 0xB8, 0xB7, 0x43,\n\t// Bytes 1140 - 117f\n\t0xE7, 0xB9, 0x81, 0x43, 0xE7, 0xB9, 0x85, 0x43,\n\t0xE7, 0xBC, 0xB6, 0x43, 0xE7, 0xBC, 0xBE, 0x43,\n\t0xE7, 0xBD, 0x91, 0x43, 0xE7, 0xBD, 0xB2, 0x43,\n\t0xE7, 0xBD, 0xB9, 0x43, 0xE7, 0xBD, 0xBA, 0x43,\n\t0xE7, 0xBE, 0x85, 0x43, 0xE7, 0xBE, 0x8A, 0x43,\n\t0xE7, 0xBE, 0x95, 0x43, 0xE7, 0xBE, 0x9A, 0x43,\n\t0xE7, 0xBE, 0xBD, 0x43, 0xE7, 0xBF, 0xBA, 0x43,\n\t0xE8, 0x80, 0x81, 0x43, 0xE8, 0x80, 0x85, 0x43,\n\t// Bytes 1180 - 11bf\n\t0xE8, 0x80, 0x8C, 0x43, 0xE8, 0x80, 0x92, 0x43,\n\t0xE8, 0x80, 0xB3, 0x43, 0xE8, 0x81, 0x86, 0x43,\n\t0xE8, 0x81, 0xA0, 0x43, 0xE8, 0x81, 0xAF, 0x43,\n\t0xE8, 0x81, 0xB0, 0x43, 0xE8, 0x81, 0xBE, 0x43,\n\t0xE8, 0x81, 0xBF, 0x43, 0xE8, 0x82, 0x89, 0x43,\n\t0xE8, 0x82, 0x8B, 0x43, 0xE8, 0x82, 0xAD, 0x43,\n\t0xE8, 0x82, 0xB2, 0x43, 0xE8, 0x84, 0x83, 0x43,\n\t0xE8, 0x84, 0xBE, 0x43, 0xE8, 0x87, 0x98, 0x43,\n\t// Bytes 11c0 - 11ff\n\t0xE8, 0x87, 0xA3, 0x43, 0xE8, 0x87, 0xA8, 0x43,\n\t0xE8, 0x87, 0xAA, 0x43, 0xE8, 0x87, 0xAD, 0x43,\n\t0xE8, 0x87, 0xB3, 0x43, 0xE8, 0x87, 0xBC, 0x43,\n\t0xE8, 0x88, 0x81, 0x43, 0xE8, 0x88, 0x84, 0x43,\n\t0xE8, 0x88, 0x8C, 0x43, 0xE8, 0x88, 0x98, 0x43,\n\t0xE8, 0x88, 0x9B, 0x43, 0xE8, 0x88, 0x9F, 0x43,\n\t0xE8, 0x89, 0xAE, 0x43, 0xE8, 0x89, 0xAF, 0x43,\n\t0xE8, 0x89, 0xB2, 0x43, 0xE8, 0x89, 0xB8, 0x43,\n\t// Bytes 1200 - 123f\n\t0xE8, 0x89, 0xB9, 0x43, 0xE8, 0x8A, 0x8B, 0x43,\n\t0xE8, 0x8A, 0x91, 0x43, 0xE8, 0x8A, 0x9D, 0x43,\n\t0xE8, 0x8A, 0xB1, 0x43, 0xE8, 0x8A, 0xB3, 0x43,\n\t0xE8, 0x8A, 0xBD, 0x43, 0xE8, 0x8B, 0xA5, 0x43,\n\t0xE8, 0x8B, 0xA6, 0x43, 0xE8, 0x8C, 0x9D, 0x43,\n\t0xE8, 0x8C, 0xA3, 0x43, 0xE8, 0x8C, 0xB6, 0x43,\n\t0xE8, 0x8D, 0x92, 0x43, 0xE8, 0x8D, 0x93, 0x43,\n\t0xE8, 0x8D, 0xA3, 0x43, 0xE8, 0x8E, 0xAD, 0x43,\n\t// Bytes 1240 - 127f\n\t0xE8, 0x8E, 0xBD, 0x43, 0xE8, 0x8F, 0x89, 0x43,\n\t0xE8, 0x8F, 0x8A, 0x43, 0xE8, 0x8F, 0x8C, 0x43,\n\t0xE8, 0x8F, 0x9C, 0x43, 0xE8, 0x8F, 0xA7, 0x43,\n\t0xE8, 0x8F, 0xAF, 0x43, 0xE8, 0x8F, 0xB1, 0x43,\n\t0xE8, 0x90, 0xBD, 0x43, 0xE8, 0x91, 0x89, 0x43,\n\t0xE8, 0x91, 0x97, 0x43, 0xE8, 0x93, 0xAE, 0x43,\n\t0xE8, 0x93, 0xB1, 0x43, 0xE8, 0x93, 0xB3, 0x43,\n\t0xE8, 0x93, 0xBC, 0x43, 0xE8, 0x94, 0x96, 0x43,\n\t// Bytes 1280 - 12bf\n\t0xE8, 0x95, 0xA4, 0x43, 0xE8, 0x97, 0x8D, 0x43,\n\t0xE8, 0x97, 0xBA, 0x43, 0xE8, 0x98, 0x86, 0x43,\n\t0xE8, 0x98, 0x92, 0x43, 0xE8, 0x98, 0xAD, 0x43,\n\t0xE8, 0x98, 0xBF, 0x43, 0xE8, 0x99, 0x8D, 0x43,\n\t0xE8, 0x99, 0x90, 0x43, 0xE8, 0x99, 0x9C, 0x43,\n\t0xE8, 0x99, 0xA7, 0x43, 0xE8, 0x99, 0xA9, 0x43,\n\t0xE8, 0x99, 0xAB, 0x43, 0xE8, 0x9A, 0x88, 0x43,\n\t0xE8, 0x9A, 0xA9, 0x43, 0xE8, 0x9B, 0xA2, 0x43,\n\t// Bytes 12c0 - 12ff\n\t0xE8, 0x9C, 0x8E, 0x43, 0xE8, 0x9C, 0xA8, 0x43,\n\t0xE8, 0x9D, 0xAB, 0x43, 0xE8, 0x9D, 0xB9, 0x43,\n\t0xE8, 0x9E, 0x86, 0x43, 0xE8, 0x9E, 0xBA, 0x43,\n\t0xE8, 0x9F, 0xA1, 0x43, 0xE8, 0xA0, 0x81, 0x43,\n\t0xE8, 0xA0, 0x9F, 0x43, 0xE8, 0xA1, 0x80, 0x43,\n\t0xE8, 0xA1, 0x8C, 0x43, 0xE8, 0xA1, 0xA0, 0x43,\n\t0xE8, 0xA1, 0xA3, 0x43, 0xE8, 0xA3, 0x82, 0x43,\n\t0xE8, 0xA3, 0x8F, 0x43, 0xE8, 0xA3, 0x97, 0x43,\n\t// Bytes 1300 - 133f\n\t0xE8, 0xA3, 0x9E, 0x43, 0xE8, 0xA3, 0xA1, 0x43,\n\t0xE8, 0xA3, 0xB8, 0x43, 0xE8, 0xA3, 0xBA, 0x43,\n\t0xE8, 0xA4, 0x90, 0x43, 0xE8, 0xA5, 0x81, 0x43,\n\t0xE8, 0xA5, 0xA4, 0x43, 0xE8, 0xA5, 0xBE, 0x43,\n\t0xE8, 0xA6, 0x86, 0x43, 0xE8, 0xA6, 0x8B, 0x43,\n\t0xE8, 0xA6, 0x96, 0x43, 0xE8, 0xA7, 0x92, 0x43,\n\t0xE8, 0xA7, 0xA3, 0x43, 0xE8, 0xA8, 0x80, 0x43,\n\t0xE8, 0xAA, 0xA0, 0x43, 0xE8, 0xAA, 0xAA, 0x43,\n\t// Bytes 1340 - 137f\n\t0xE8, 0xAA, 0xBF, 0x43, 0xE8, 0xAB, 0x8B, 0x43,\n\t0xE8, 0xAB, 0x92, 0x43, 0xE8, 0xAB, 0x96, 0x43,\n\t0xE8, 0xAB, 0xAD, 0x43, 0xE8, 0xAB, 0xB8, 0x43,\n\t0xE8, 0xAB, 0xBE, 0x43, 0xE8, 0xAC, 0x81, 0x43,\n\t0xE8, 0xAC, 0xB9, 0x43, 0xE8, 0xAD, 0x98, 0x43,\n\t0xE8, 0xAE, 0x80, 0x43, 0xE8, 0xAE, 0x8A, 0x43,\n\t0xE8, 0xB0, 0xB7, 0x43, 0xE8, 0xB1, 0x86, 0x43,\n\t0xE8, 0xB1, 0x88, 0x43, 0xE8, 0xB1, 0x95, 0x43,\n\t// Bytes 1380 - 13bf\n\t0xE8, 0xB1, 0xB8, 0x43, 0xE8, 0xB2, 0x9D, 0x43,\n\t0xE8, 0xB2, 0xA1, 0x43, 0xE8, 0xB2, 0xA9, 0x43,\n\t0xE8, 0xB2, 0xAB, 0x43, 0xE8, 0xB3, 0x81, 0x43,\n\t0xE8, 0xB3, 0x82, 0x43, 0xE8, 0xB3, 0x87, 0x43,\n\t0xE8, 0xB3, 0x88, 0x43, 0xE8, 0xB3, 0x93, 0x43,\n\t0xE8, 0xB4, 0x88, 0x43, 0xE8, 0xB4, 0x9B, 0x43,\n\t0xE8, 0xB5, 0xA4, 0x43, 0xE8, 0xB5, 0xB0, 0x43,\n\t0xE8, 0xB5, 0xB7, 0x43, 0xE8, 0xB6, 0xB3, 0x43,\n\t// Bytes 13c0 - 13ff\n\t0xE8, 0xB6, 0xBC, 0x43, 0xE8, 0xB7, 0x8B, 0x43,\n\t0xE8, 0xB7, 0xAF, 0x43, 0xE8, 0xB7, 0xB0, 0x43,\n\t0xE8, 0xBA, 0xAB, 0x43, 0xE8, 0xBB, 0x8A, 0x43,\n\t0xE8, 0xBB, 0x94, 0x43, 0xE8, 0xBC, 0xA6, 0x43,\n\t0xE8, 0xBC, 0xAA, 0x43, 0xE8, 0xBC, 0xB8, 0x43,\n\t0xE8, 0xBC, 0xBB, 0x43, 0xE8, 0xBD, 0xA2, 0x43,\n\t0xE8, 0xBE, 0x9B, 0x43, 0xE8, 0xBE, 0x9E, 0x43,\n\t0xE8, 0xBE, 0xB0, 0x43, 0xE8, 0xBE, 0xB5, 0x43,\n\t// Bytes 1400 - 143f\n\t0xE8, 0xBE, 0xB6, 0x43, 0xE9, 0x80, 0xA3, 0x43,\n\t0xE9, 0x80, 0xB8, 0x43, 0xE9, 0x81, 0x8A, 0x43,\n\t0xE9, 0x81, 0xA9, 0x43, 0xE9, 0x81, 0xB2, 0x43,\n\t0xE9, 0x81, 0xBC, 0x43, 0xE9, 0x82, 0x8F, 0x43,\n\t0xE9, 0x82, 0x91, 0x43, 0xE9, 0x82, 0x94, 0x43,\n\t0xE9, 0x83, 0x8E, 0x43, 0xE9, 0x83, 0x9E, 0x43,\n\t0xE9, 0x83, 0xB1, 0x43, 0xE9, 0x83, 0xBD, 0x43,\n\t0xE9, 0x84, 0x91, 0x43, 0xE9, 0x84, 0x9B, 0x43,\n\t// Bytes 1440 - 147f\n\t0xE9, 0x85, 0x89, 0x43, 0xE9, 0x85, 0x8D, 0x43,\n\t0xE9, 0x85, 0xAA, 0x43, 0xE9, 0x86, 0x99, 0x43,\n\t0xE9, 0x86, 0xB4, 0x43, 0xE9, 0x87, 0x86, 0x43,\n\t0xE9, 0x87, 0x8C, 0x43, 0xE9, 0x87, 0x8F, 0x43,\n\t0xE9, 0x87, 0x91, 0x43, 0xE9, 0x88, 0xB4, 0x43,\n\t0xE9, 0x88, 0xB8, 0x43, 0xE9, 0x89, 0xB6, 0x43,\n\t0xE9, 0x89, 0xBC, 0x43, 0xE9, 0x8B, 0x97, 0x43,\n\t0xE9, 0x8B, 0x98, 0x43, 0xE9, 0x8C, 0x84, 0x43,\n\t// Bytes 1480 - 14bf\n\t0xE9, 0x8D, 0x8A, 0x43, 0xE9, 0x8F, 0xB9, 0x43,\n\t0xE9, 0x90, 0x95, 0x43, 0xE9, 0x95, 0xB7, 0x43,\n\t0xE9, 0x96, 0x80, 0x43, 0xE9, 0x96, 0x8B, 0x43,\n\t0xE9, 0x96, 0xAD, 0x43, 0xE9, 0x96, 0xB7, 0x43,\n\t0xE9, 0x98, 0x9C, 0x43, 0xE9, 0x98, 0xAE, 0x43,\n\t0xE9, 0x99, 0x8B, 0x43, 0xE9, 0x99, 0x8D, 0x43,\n\t0xE9, 0x99, 0xB5, 0x43, 0xE9, 0x99, 0xB8, 0x43,\n\t0xE9, 0x99, 0xBC, 0x43, 0xE9, 0x9A, 0x86, 0x43,\n\t// Bytes 14c0 - 14ff\n\t0xE9, 0x9A, 0xA3, 0x43, 0xE9, 0x9A, 0xB6, 0x43,\n\t0xE9, 0x9A, 0xB7, 0x43, 0xE9, 0x9A, 0xB8, 0x43,\n\t0xE9, 0x9A, 0xB9, 0x43, 0xE9, 0x9B, 0x83, 0x43,\n\t0xE9, 0x9B, 0xA2, 0x43, 0xE9, 0x9B, 0xA3, 0x43,\n\t0xE9, 0x9B, 0xA8, 0x43, 0xE9, 0x9B, 0xB6, 0x43,\n\t0xE9, 0x9B, 0xB7, 0x43, 0xE9, 0x9C, 0xA3, 0x43,\n\t0xE9, 0x9C, 0xB2, 0x43, 0xE9, 0x9D, 0x88, 0x43,\n\t0xE9, 0x9D, 0x91, 0x43, 0xE9, 0x9D, 0x96, 0x43,\n\t// Bytes 1500 - 153f\n\t0xE9, 0x9D, 0x9E, 0x43, 0xE9, 0x9D, 0xA2, 0x43,\n\t0xE9, 0x9D, 0xA9, 0x43, 0xE9, 0x9F, 0x8B, 0x43,\n\t0xE9, 0x9F, 0x9B, 0x43, 0xE9, 0x9F, 0xA0, 0x43,\n\t0xE9, 0x9F, 0xAD, 0x43, 0xE9, 0x9F, 0xB3, 0x43,\n\t0xE9, 0x9F, 0xBF, 0x43, 0xE9, 0xA0, 0x81, 0x43,\n\t0xE9, 0xA0, 0x85, 0x43, 0xE9, 0xA0, 0x8B, 0x43,\n\t0xE9, 0xA0, 0x98, 0x43, 0xE9, 0xA0, 0xA9, 0x43,\n\t0xE9, 0xA0, 0xBB, 0x43, 0xE9, 0xA1, 0x9E, 0x43,\n\t// Bytes 1540 - 157f\n\t0xE9, 0xA2, 0xA8, 0x43, 0xE9, 0xA3, 0x9B, 0x43,\n\t0xE9, 0xA3, 0x9F, 0x43, 0xE9, 0xA3, 0xA2, 0x43,\n\t0xE9, 0xA3, 0xAF, 0x43, 0xE9, 0xA3, 0xBC, 0x43,\n\t0xE9, 0xA4, 0xA8, 0x43, 0xE9, 0xA4, 0xA9, 0x43,\n\t0xE9, 0xA6, 0x96, 0x43, 0xE9, 0xA6, 0x99, 0x43,\n\t0xE9, 0xA6, 0xA7, 0x43, 0xE9, 0xA6, 0xAC, 0x43,\n\t0xE9, 0xA7, 0x82, 0x43, 0xE9, 0xA7, 0xB1, 0x43,\n\t0xE9, 0xA7, 0xBE, 0x43, 0xE9, 0xA9, 0xAA, 0x43,\n\t// Bytes 1580 - 15bf\n\t0xE9, 0xAA, 0xA8, 0x43, 0xE9, 0xAB, 0x98, 0x43,\n\t0xE9, 0xAB, 0x9F, 0x43, 0xE9, 0xAC, 0x92, 0x43,\n\t0xE9, 0xAC, 0xA5, 0x43, 0xE9, 0xAC, 0xAF, 0x43,\n\t0xE9, 0xAC, 0xB2, 0x43, 0xE9, 0xAC, 0xBC, 0x43,\n\t0xE9, 0xAD, 0x9A, 0x43, 0xE9, 0xAD, 0xAF, 0x43,\n\t0xE9, 0xB1, 0x80, 0x43, 0xE9, 0xB1, 0x97, 0x43,\n\t0xE9, 0xB3, 0xA5, 0x43, 0xE9, 0xB3, 0xBD, 0x43,\n\t0xE9, 0xB5, 0xA7, 0x43, 0xE9, 0xB6, 0xB4, 0x43,\n\t// Bytes 15c0 - 15ff\n\t0xE9, 0xB7, 0xBA, 0x43, 0xE9, 0xB8, 0x9E, 0x43,\n\t0xE9, 0xB9, 0xB5, 0x43, 0xE9, 0xB9, 0xBF, 0x43,\n\t0xE9, 0xBA, 0x97, 0x43, 0xE9, 0xBA, 0x9F, 0x43,\n\t0xE9, 0xBA, 0xA5, 0x43, 0xE9, 0xBA, 0xBB, 0x43,\n\t0xE9, 0xBB, 0x83, 0x43, 0xE9, 0xBB, 0x8D, 0x43,\n\t0xE9, 0xBB, 0x8E, 0x43, 0xE9, 0xBB, 0x91, 0x43,\n\t0xE9, 0xBB, 0xB9, 0x43, 0xE9, 0xBB, 0xBD, 0x43,\n\t0xE9, 0xBB, 0xBE, 0x43, 0xE9, 0xBC, 0x85, 0x43,\n\t// Bytes 1600 - 163f\n\t0xE9, 0xBC, 0x8E, 0x43, 0xE9, 0xBC, 0x8F, 0x43,\n\t0xE9, 0xBC, 0x93, 0x43, 0xE9, 0xBC, 0x96, 0x43,\n\t0xE9, 0xBC, 0xA0, 0x43, 0xE9, 0xBC, 0xBB, 0x43,\n\t0xE9, 0xBD, 0x83, 0x43, 0xE9, 0xBD, 0x8A, 0x43,\n\t0xE9, 0xBD, 0x92, 0x43, 0xE9, 0xBE, 0x8D, 0x43,\n\t0xE9, 0xBE, 0x8E, 0x43, 0xE9, 0xBE, 0x9C, 0x43,\n\t0xE9, 0xBE, 0x9F, 0x43, 0xE9, 0xBE, 0xA0, 0x43,\n\t0xEA, 0x9C, 0xA7, 0x43, 0xEA, 0x9D, 0xAF, 0x43,\n\t// Bytes 1640 - 167f\n\t0xEA, 0xAC, 0xB7, 0x43, 0xEA, 0xAD, 0x92, 0x44,\n\t0xF0, 0xA0, 0x84, 0xA2, 0x44, 0xF0, 0xA0, 0x94,\n\t0x9C, 0x44, 0xF0, 0xA0, 0x94, 0xA5, 0x44, 0xF0,\n\t0xA0, 0x95, 0x8B, 0x44, 0xF0, 0xA0, 0x98, 0xBA,\n\t0x44, 0xF0, 0xA0, 0xA0, 0x84, 0x44, 0xF0, 0xA0,\n\t0xA3, 0x9E, 0x44, 0xF0, 0xA0, 0xA8, 0xAC, 0x44,\n\t0xF0, 0xA0, 0xAD, 0xA3, 0x44, 0xF0, 0xA1, 0x93,\n\t0xA4, 0x44, 0xF0, 0xA1, 0x9A, 0xA8, 0x44, 0xF0,\n\t// Bytes 1680 - 16bf\n\t0xA1, 0x9B, 0xAA, 0x44, 0xF0, 0xA1, 0xA7, 0x88,\n\t0x44, 0xF0, 0xA1, 0xAC, 0x98, 0x44, 0xF0, 0xA1,\n\t0xB4, 0x8B, 0x44, 0xF0, 0xA1, 0xB7, 0xA4, 0x44,\n\t0xF0, 0xA1, 0xB7, 0xA6, 0x44, 0xF0, 0xA2, 0x86,\n\t0x83, 0x44, 0xF0, 0xA2, 0x86, 0x9F, 0x44, 0xF0,\n\t0xA2, 0x8C, 0xB1, 0x44, 0xF0, 0xA2, 0x9B, 0x94,\n\t0x44, 0xF0, 0xA2, 0xA1, 0x84, 0x44, 0xF0, 0xA2,\n\t0xA1, 0x8A, 0x44, 0xF0, 0xA2, 0xAC, 0x8C, 0x44,\n\t// Bytes 16c0 - 16ff\n\t0xF0, 0xA2, 0xAF, 0xB1, 0x44, 0xF0, 0xA3, 0x80,\n\t0x8A, 0x44, 0xF0, 0xA3, 0x8A, 0xB8, 0x44, 0xF0,\n\t0xA3, 0x8D, 0x9F, 0x44, 0xF0, 0xA3, 0x8E, 0x93,\n\t0x44, 0xF0, 0xA3, 0x8E, 0x9C, 0x44, 0xF0, 0xA3,\n\t0x8F, 0x83, 0x44, 0xF0, 0xA3, 0x8F, 0x95, 0x44,\n\t0xF0, 0xA3, 0x91, 0xAD, 0x44, 0xF0, 0xA3, 0x9A,\n\t0xA3, 0x44, 0xF0, 0xA3, 0xA2, 0xA7, 0x44, 0xF0,\n\t0xA3, 0xAA, 0x8D, 0x44, 0xF0, 0xA3, 0xAB, 0xBA,\n\t// Bytes 1700 - 173f\n\t0x44, 0xF0, 0xA3, 0xB2, 0xBC, 0x44, 0xF0, 0xA3,\n\t0xB4, 0x9E, 0x44, 0xF0, 0xA3, 0xBB, 0x91, 0x44,\n\t0xF0, 0xA3, 0xBD, 0x9E, 0x44, 0xF0, 0xA3, 0xBE,\n\t0x8E, 0x44, 0xF0, 0xA4, 0x89, 0xA3, 0x44, 0xF0,\n\t0xA4, 0x8B, 0xAE, 0x44, 0xF0, 0xA4, 0x8E, 0xAB,\n\t0x44, 0xF0, 0xA4, 0x98, 0x88, 0x44, 0xF0, 0xA4,\n\t0x9C, 0xB5, 0x44, 0xF0, 0xA4, 0xA0, 0x94, 0x44,\n\t0xF0, 0xA4, 0xB0, 0xB6, 0x44, 0xF0, 0xA4, 0xB2,\n\t// Bytes 1740 - 177f\n\t0x92, 0x44, 0xF0, 0xA4, 0xBE, 0xA1, 0x44, 0xF0,\n\t0xA4, 0xBE, 0xB8, 0x44, 0xF0, 0xA5, 0x81, 0x84,\n\t0x44, 0xF0, 0xA5, 0x83, 0xB2, 0x44, 0xF0, 0xA5,\n\t0x83, 0xB3, 0x44, 0xF0, 0xA5, 0x84, 0x99, 0x44,\n\t0xF0, 0xA5, 0x84, 0xB3, 0x44, 0xF0, 0xA5, 0x89,\n\t0x89, 0x44, 0xF0, 0xA5, 0x90, 0x9D, 0x44, 0xF0,\n\t0xA5, 0x98, 0xA6, 0x44, 0xF0, 0xA5, 0x9A, 0x9A,\n\t0x44, 0xF0, 0xA5, 0x9B, 0x85, 0x44, 0xF0, 0xA5,\n\t// Bytes 1780 - 17bf\n\t0xA5, 0xBC, 0x44, 0xF0, 0xA5, 0xAA, 0xA7, 0x44,\n\t0xF0, 0xA5, 0xAE, 0xAB, 0x44, 0xF0, 0xA5, 0xB2,\n\t0x80, 0x44, 0xF0, 0xA5, 0xB3, 0x90, 0x44, 0xF0,\n\t0xA5, 0xBE, 0x86, 0x44, 0xF0, 0xA6, 0x87, 0x9A,\n\t0x44, 0xF0, 0xA6, 0x88, 0xA8, 0x44, 0xF0, 0xA6,\n\t0x89, 0x87, 0x44, 0xF0, 0xA6, 0x8B, 0x99, 0x44,\n\t0xF0, 0xA6, 0x8C, 0xBE, 0x44, 0xF0, 0xA6, 0x93,\n\t0x9A, 0x44, 0xF0, 0xA6, 0x94, 0xA3, 0x44, 0xF0,\n\t// Bytes 17c0 - 17ff\n\t0xA6, 0x96, 0xA8, 0x44, 0xF0, 0xA6, 0x9E, 0xA7,\n\t0x44, 0xF0, 0xA6, 0x9E, 0xB5, 0x44, 0xF0, 0xA6,\n\t0xAC, 0xBC, 0x44, 0xF0, 0xA6, 0xB0, 0xB6, 0x44,\n\t0xF0, 0xA6, 0xB3, 0x95, 0x44, 0xF0, 0xA6, 0xB5,\n\t0xAB, 0x44, 0xF0, 0xA6, 0xBC, 0xAC, 0x44, 0xF0,\n\t0xA6, 0xBE, 0xB1, 0x44, 0xF0, 0xA7, 0x83, 0x92,\n\t0x44, 0xF0, 0xA7, 0x8F, 0x8A, 0x44, 0xF0, 0xA7,\n\t0x99, 0xA7, 0x44, 0xF0, 0xA7, 0xA2, 0xAE, 0x44,\n\t// Bytes 1800 - 183f\n\t0xF0, 0xA7, 0xA5, 0xA6, 0x44, 0xF0, 0xA7, 0xB2,\n\t0xA8, 0x44, 0xF0, 0xA7, 0xBB, 0x93, 0x44, 0xF0,\n\t0xA7, 0xBC, 0xAF, 0x44, 0xF0, 0xA8, 0x97, 0x92,\n\t0x44, 0xF0, 0xA8, 0x97, 0xAD, 0x44, 0xF0, 0xA8,\n\t0x9C, 0xAE, 0x44, 0xF0, 0xA8, 0xAF, 0xBA, 0x44,\n\t0xF0, 0xA8, 0xB5, 0xB7, 0x44, 0xF0, 0xA9, 0x85,\n\t0x85, 0x44, 0xF0, 0xA9, 0x87, 0x9F, 0x44, 0xF0,\n\t0xA9, 0x88, 0x9A, 0x44, 0xF0, 0xA9, 0x90, 0x8A,\n\t// Bytes 1840 - 187f\n\t0x44, 0xF0, 0xA9, 0x92, 0x96, 0x44, 0xF0, 0xA9,\n\t0x96, 0xB6, 0x44, 0xF0, 0xA9, 0xAC, 0xB0, 0x44,\n\t0xF0, 0xAA, 0x83, 0x8E, 0x44, 0xF0, 0xAA, 0x84,\n\t0x85, 0x44, 0xF0, 0xAA, 0x88, 0x8E, 0x44, 0xF0,\n\t0xAA, 0x8A, 0x91, 0x44, 0xF0, 0xAA, 0x8E, 0x92,\n\t0x44, 0xF0, 0xAA, 0x98, 0x80, 0x42, 0x21, 0x21,\n\t0x42, 0x21, 0x3F, 0x42, 0x2E, 0x2E, 0x42, 0x30,\n\t0x2C, 0x42, 0x30, 0x2E, 0x42, 0x31, 0x2C, 0x42,\n\t// Bytes 1880 - 18bf\n\t0x31, 0x2E, 0x42, 0x31, 0x30, 0x42, 0x31, 0x31,\n\t0x42, 0x31, 0x32, 0x42, 0x31, 0x33, 0x42, 0x31,\n\t0x34, 0x42, 0x31, 0x35, 0x42, 0x31, 0x36, 0x42,\n\t0x31, 0x37, 0x42, 0x31, 0x38, 0x42, 0x31, 0x39,\n\t0x42, 0x32, 0x2C, 0x42, 0x32, 0x2E, 0x42, 0x32,\n\t0x30, 0x42, 0x32, 0x31, 0x42, 0x32, 0x32, 0x42,\n\t0x32, 0x33, 0x42, 0x32, 0x34, 0x42, 0x32, 0x35,\n\t0x42, 0x32, 0x36, 0x42, 0x32, 0x37, 0x42, 0x32,\n\t// Bytes 18c0 - 18ff\n\t0x38, 0x42, 0x32, 0x39, 0x42, 0x33, 0x2C, 0x42,\n\t0x33, 0x2E, 0x42, 0x33, 0x30, 0x42, 0x33, 0x31,\n\t0x42, 0x33, 0x32, 0x42, 0x33, 0x33, 0x42, 0x33,\n\t0x34, 0x42, 0x33, 0x35, 0x42, 0x33, 0x36, 0x42,\n\t0x33, 0x37, 0x42, 0x33, 0x38, 0x42, 0x33, 0x39,\n\t0x42, 0x34, 0x2C, 0x42, 0x34, 0x2E, 0x42, 0x34,\n\t0x30, 0x42, 0x34, 0x31, 0x42, 0x34, 0x32, 0x42,\n\t0x34, 0x33, 0x42, 0x34, 0x34, 0x42, 0x34, 0x35,\n\t// Bytes 1900 - 193f\n\t0x42, 0x34, 0x36, 0x42, 0x34, 0x37, 0x42, 0x34,\n\t0x38, 0x42, 0x34, 0x39, 0x42, 0x35, 0x2C, 0x42,\n\t0x35, 0x2E, 0x42, 0x35, 0x30, 0x42, 0x36, 0x2C,\n\t0x42, 0x36, 0x2E, 0x42, 0x37, 0x2C, 0x42, 0x37,\n\t0x2E, 0x42, 0x38, 0x2C, 0x42, 0x38, 0x2E, 0x42,\n\t0x39, 0x2C, 0x42, 0x39, 0x2E, 0x42, 0x3D, 0x3D,\n\t0x42, 0x3F, 0x21, 0x42, 0x3F, 0x3F, 0x42, 0x41,\n\t0x55, 0x42, 0x42, 0x71, 0x42, 0x43, 0x44, 0x42,\n\t// Bytes 1940 - 197f\n\t0x44, 0x4A, 0x42, 0x44, 0x5A, 0x42, 0x44, 0x7A,\n\t0x42, 0x47, 0x42, 0x42, 0x47, 0x79, 0x42, 0x48,\n\t0x50, 0x42, 0x48, 0x56, 0x42, 0x48, 0x67, 0x42,\n\t0x48, 0x7A, 0x42, 0x49, 0x49, 0x42, 0x49, 0x4A,\n\t0x42, 0x49, 0x55, 0x42, 0x49, 0x56, 0x42, 0x49,\n\t0x58, 0x42, 0x4B, 0x42, 0x42, 0x4B, 0x4B, 0x42,\n\t0x4B, 0x4D, 0x42, 0x4C, 0x4A, 0x42, 0x4C, 0x6A,\n\t0x42, 0x4D, 0x42, 0x42, 0x4D, 0x43, 0x42, 0x4D,\n\t// Bytes 1980 - 19bf\n\t0x44, 0x42, 0x4D, 0x56, 0x42, 0x4D, 0x57, 0x42,\n\t0x4E, 0x4A, 0x42, 0x4E, 0x6A, 0x42, 0x4E, 0x6F,\n\t0x42, 0x50, 0x48, 0x42, 0x50, 0x52, 0x42, 0x50,\n\t0x61, 0x42, 0x52, 0x73, 0x42, 0x53, 0x44, 0x42,\n\t0x53, 0x4D, 0x42, 0x53, 0x53, 0x42, 0x53, 0x76,\n\t0x42, 0x54, 0x4D, 0x42, 0x56, 0x49, 0x42, 0x57,\n\t0x43, 0x42, 0x57, 0x5A, 0x42, 0x57, 0x62, 0x42,\n\t0x58, 0x49, 0x42, 0x63, 0x63, 0x42, 0x63, 0x64,\n\t// Bytes 19c0 - 19ff\n\t0x42, 0x63, 0x6D, 0x42, 0x64, 0x42, 0x42, 0x64,\n\t0x61, 0x42, 0x64, 0x6C, 0x42, 0x64, 0x6D, 0x42,\n\t0x64, 0x7A, 0x42, 0x65, 0x56, 0x42, 0x66, 0x66,\n\t0x42, 0x66, 0x69, 0x42, 0x66, 0x6C, 0x42, 0x66,\n\t0x6D, 0x42, 0x68, 0x61, 0x42, 0x69, 0x69, 0x42,\n\t0x69, 0x6A, 0x42, 0x69, 0x6E, 0x42, 0x69, 0x76,\n\t0x42, 0x69, 0x78, 0x42, 0x6B, 0x41, 0x42, 0x6B,\n\t0x56, 0x42, 0x6B, 0x57, 0x42, 0x6B, 0x67, 0x42,\n\t// Bytes 1a00 - 1a3f\n\t0x6B, 0x6C, 0x42, 0x6B, 0x6D, 0x42, 0x6B, 0x74,\n\t0x42, 0x6C, 0x6A, 0x42, 0x6C, 0x6D, 0x42, 0x6C,\n\t0x6E, 0x42, 0x6C, 0x78, 0x42, 0x6D, 0x32, 0x42,\n\t0x6D, 0x33, 0x42, 0x6D, 0x41, 0x42, 0x6D, 0x56,\n\t0x42, 0x6D, 0x57, 0x42, 0x6D, 0x62, 0x42, 0x6D,\n\t0x67, 0x42, 0x6D, 0x6C, 0x42, 0x6D, 0x6D, 0x42,\n\t0x6D, 0x73, 0x42, 0x6E, 0x41, 0x42, 0x6E, 0x46,\n\t0x42, 0x6E, 0x56, 0x42, 0x6E, 0x57, 0x42, 0x6E,\n\t// Bytes 1a40 - 1a7f\n\t0x6A, 0x42, 0x6E, 0x6D, 0x42, 0x6E, 0x73, 0x42,\n\t0x6F, 0x56, 0x42, 0x70, 0x41, 0x42, 0x70, 0x46,\n\t0x42, 0x70, 0x56, 0x42, 0x70, 0x57, 0x42, 0x70,\n\t0x63, 0x42, 0x70, 0x73, 0x42, 0x73, 0x72, 0x42,\n\t0x73, 0x74, 0x42, 0x76, 0x69, 0x42, 0x78, 0x69,\n\t0x43, 0x28, 0x31, 0x29, 0x43, 0x28, 0x32, 0x29,\n\t0x43, 0x28, 0x33, 0x29, 0x43, 0x28, 0x34, 0x29,\n\t0x43, 0x28, 0x35, 0x29, 0x43, 0x28, 0x36, 0x29,\n\t// Bytes 1a80 - 1abf\n\t0x43, 0x28, 0x37, 0x29, 0x43, 0x28, 0x38, 0x29,\n\t0x43, 0x28, 0x39, 0x29, 0x43, 0x28, 0x41, 0x29,\n\t0x43, 0x28, 0x42, 0x29, 0x43, 0x28, 0x43, 0x29,\n\t0x43, 0x28, 0x44, 0x29, 0x43, 0x28, 0x45, 0x29,\n\t0x43, 0x28, 0x46, 0x29, 0x43, 0x28, 0x47, 0x29,\n\t0x43, 0x28, 0x48, 0x29, 0x43, 0x28, 0x49, 0x29,\n\t0x43, 0x28, 0x4A, 0x29, 0x43, 0x28, 0x4B, 0x29,\n\t0x43, 0x28, 0x4C, 0x29, 0x43, 0x28, 0x4D, 0x29,\n\t// Bytes 1ac0 - 1aff\n\t0x43, 0x28, 0x4E, 0x29, 0x43, 0x28, 0x4F, 0x29,\n\t0x43, 0x28, 0x50, 0x29, 0x43, 0x28, 0x51, 0x29,\n\t0x43, 0x28, 0x52, 0x29, 0x43, 0x28, 0x53, 0x29,\n\t0x43, 0x28, 0x54, 0x29, 0x43, 0x28, 0x55, 0x29,\n\t0x43, 0x28, 0x56, 0x29, 0x43, 0x28, 0x57, 0x29,\n\t0x43, 0x28, 0x58, 0x29, 0x43, 0x28, 0x59, 0x29,\n\t0x43, 0x28, 0x5A, 0x29, 0x43, 0x28, 0x61, 0x29,\n\t0x43, 0x28, 0x62, 0x29, 0x43, 0x28, 0x63, 0x29,\n\t// Bytes 1b00 - 1b3f\n\t0x43, 0x28, 0x64, 0x29, 0x43, 0x28, 0x65, 0x29,\n\t0x43, 0x28, 0x66, 0x29, 0x43, 0x28, 0x67, 0x29,\n\t0x43, 0x28, 0x68, 0x29, 0x43, 0x28, 0x69, 0x29,\n\t0x43, 0x28, 0x6A, 0x29, 0x43, 0x28, 0x6B, 0x29,\n\t0x43, 0x28, 0x6C, 0x29, 0x43, 0x28, 0x6D, 0x29,\n\t0x43, 0x28, 0x6E, 0x29, 0x43, 0x28, 0x6F, 0x29,\n\t0x43, 0x28, 0x70, 0x29, 0x43, 0x28, 0x71, 0x29,\n\t0x43, 0x28, 0x72, 0x29, 0x43, 0x28, 0x73, 0x29,\n\t// Bytes 1b40 - 1b7f\n\t0x43, 0x28, 0x74, 0x29, 0x43, 0x28, 0x75, 0x29,\n\t0x43, 0x28, 0x76, 0x29, 0x43, 0x28, 0x77, 0x29,\n\t0x43, 0x28, 0x78, 0x29, 0x43, 0x28, 0x79, 0x29,\n\t0x43, 0x28, 0x7A, 0x29, 0x43, 0x2E, 0x2E, 0x2E,\n\t0x43, 0x31, 0x30, 0x2E, 0x43, 0x31, 0x31, 0x2E,\n\t0x43, 0x31, 0x32, 0x2E, 0x43, 0x31, 0x33, 0x2E,\n\t0x43, 0x31, 0x34, 0x2E, 0x43, 0x31, 0x35, 0x2E,\n\t0x43, 0x31, 0x36, 0x2E, 0x43, 0x31, 0x37, 0x2E,\n\t// Bytes 1b80 - 1bbf\n\t0x43, 0x31, 0x38, 0x2E, 0x43, 0x31, 0x39, 0x2E,\n\t0x43, 0x32, 0x30, 0x2E, 0x43, 0x3A, 0x3A, 0x3D,\n\t0x43, 0x3D, 0x3D, 0x3D, 0x43, 0x43, 0x6F, 0x2E,\n\t0x43, 0x46, 0x41, 0x58, 0x43, 0x47, 0x48, 0x7A,\n\t0x43, 0x47, 0x50, 0x61, 0x43, 0x49, 0x49, 0x49,\n\t0x43, 0x4C, 0x54, 0x44, 0x43, 0x4C, 0xC2, 0xB7,\n\t0x43, 0x4D, 0x48, 0x7A, 0x43, 0x4D, 0x50, 0x61,\n\t0x43, 0x4D, 0xCE, 0xA9, 0x43, 0x50, 0x50, 0x4D,\n\t// Bytes 1bc0 - 1bff\n\t0x43, 0x50, 0x50, 0x56, 0x43, 0x50, 0x54, 0x45,\n\t0x43, 0x54, 0x45, 0x4C, 0x43, 0x54, 0x48, 0x7A,\n\t0x43, 0x56, 0x49, 0x49, 0x43, 0x58, 0x49, 0x49,\n\t0x43, 0x61, 0x2F, 0x63, 0x43, 0x61, 0x2F, 0x73,\n\t0x43, 0x61, 0xCA, 0xBE, 0x43, 0x62, 0x61, 0x72,\n\t0x43, 0x63, 0x2F, 0x6F, 0x43, 0x63, 0x2F, 0x75,\n\t0x43, 0x63, 0x61, 0x6C, 0x43, 0x63, 0x6D, 0x32,\n\t0x43, 0x63, 0x6D, 0x33, 0x43, 0x64, 0x6D, 0x32,\n\t// Bytes 1c00 - 1c3f\n\t0x43, 0x64, 0x6D, 0x33, 0x43, 0x65, 0x72, 0x67,\n\t0x43, 0x66, 0x66, 0x69, 0x43, 0x66, 0x66, 0x6C,\n\t0x43, 0x67, 0x61, 0x6C, 0x43, 0x68, 0x50, 0x61,\n\t0x43, 0x69, 0x69, 0x69, 0x43, 0x6B, 0x48, 0x7A,\n\t0x43, 0x6B, 0x50, 0x61, 0x43, 0x6B, 0x6D, 0x32,\n\t0x43, 0x6B, 0x6D, 0x33, 0x43, 0x6B, 0xCE, 0xA9,\n\t0x43, 0x6C, 0x6F, 0x67, 0x43, 0x6C, 0xC2, 0xB7,\n\t0x43, 0x6D, 0x69, 0x6C, 0x43, 0x6D, 0x6D, 0x32,\n\t// Bytes 1c40 - 1c7f\n\t0x43, 0x6D, 0x6D, 0x33, 0x43, 0x6D, 0x6F, 0x6C,\n\t0x43, 0x72, 0x61, 0x64, 0x43, 0x76, 0x69, 0x69,\n\t0x43, 0x78, 0x69, 0x69, 0x43, 0xC2, 0xB0, 0x43,\n\t0x43, 0xC2, 0xB0, 0x46, 0x43, 0xCA, 0xBC, 0x6E,\n\t0x43, 0xCE, 0xBC, 0x41, 0x43, 0xCE, 0xBC, 0x46,\n\t0x43, 0xCE, 0xBC, 0x56, 0x43, 0xCE, 0xBC, 0x57,\n\t0x43, 0xCE, 0xBC, 0x67, 0x43, 0xCE, 0xBC, 0x6C,\n\t0x43, 0xCE, 0xBC, 0x6D, 0x43, 0xCE, 0xBC, 0x73,\n\t// Bytes 1c80 - 1cbf\n\t0x44, 0x28, 0x31, 0x30, 0x29, 0x44, 0x28, 0x31,\n\t0x31, 0x29, 0x44, 0x28, 0x31, 0x32, 0x29, 0x44,\n\t0x28, 0x31, 0x33, 0x29, 0x44, 0x28, 0x31, 0x34,\n\t0x29, 0x44, 0x28, 0x31, 0x35, 0x29, 0x44, 0x28,\n\t0x31, 0x36, 0x29, 0x44, 0x28, 0x31, 0x37, 0x29,\n\t0x44, 0x28, 0x31, 0x38, 0x29, 0x44, 0x28, 0x31,\n\t0x39, 0x29, 0x44, 0x28, 0x32, 0x30, 0x29, 0x44,\n\t0x30, 0xE7, 0x82, 0xB9, 0x44, 0x31, 0xE2, 0x81,\n\t// Bytes 1cc0 - 1cff\n\t0x84, 0x44, 0x31, 0xE6, 0x97, 0xA5, 0x44, 0x31,\n\t0xE6, 0x9C, 0x88, 0x44, 0x31, 0xE7, 0x82, 0xB9,\n\t0x44, 0x32, 0xE6, 0x97, 0xA5, 0x44, 0x32, 0xE6,\n\t0x9C, 0x88, 0x44, 0x32, 0xE7, 0x82, 0xB9, 0x44,\n\t0x33, 0xE6, 0x97, 0xA5, 0x44, 0x33, 0xE6, 0x9C,\n\t0x88, 0x44, 0x33, 0xE7, 0x82, 0xB9, 0x44, 0x34,\n\t0xE6, 0x97, 0xA5, 0x44, 0x34, 0xE6, 0x9C, 0x88,\n\t0x44, 0x34, 0xE7, 0x82, 0xB9, 0x44, 0x35, 0xE6,\n\t// Bytes 1d00 - 1d3f\n\t0x97, 0xA5, 0x44, 0x35, 0xE6, 0x9C, 0x88, 0x44,\n\t0x35, 0xE7, 0x82, 0xB9, 0x44, 0x36, 0xE6, 0x97,\n\t0xA5, 0x44, 0x36, 0xE6, 0x9C, 0x88, 0x44, 0x36,\n\t0xE7, 0x82, 0xB9, 0x44, 0x37, 0xE6, 0x97, 0xA5,\n\t0x44, 0x37, 0xE6, 0x9C, 0x88, 0x44, 0x37, 0xE7,\n\t0x82, 0xB9, 0x44, 0x38, 0xE6, 0x97, 0xA5, 0x44,\n\t0x38, 0xE6, 0x9C, 0x88, 0x44, 0x38, 0xE7, 0x82,\n\t0xB9, 0x44, 0x39, 0xE6, 0x97, 0xA5, 0x44, 0x39,\n\t// Bytes 1d40 - 1d7f\n\t0xE6, 0x9C, 0x88, 0x44, 0x39, 0xE7, 0x82, 0xB9,\n\t0x44, 0x56, 0x49, 0x49, 0x49, 0x44, 0x61, 0x2E,\n\t0x6D, 0x2E, 0x44, 0x6B, 0x63, 0x61, 0x6C, 0x44,\n\t0x70, 0x2E, 0x6D, 0x2E, 0x44, 0x76, 0x69, 0x69,\n\t0x69, 0x44, 0xD5, 0xA5, 0xD6, 0x82, 0x44, 0xD5,\n\t0xB4, 0xD5, 0xA5, 0x44, 0xD5, 0xB4, 0xD5, 0xAB,\n\t0x44, 0xD5, 0xB4, 0xD5, 0xAD, 0x44, 0xD5, 0xB4,\n\t0xD5, 0xB6, 0x44, 0xD5, 0xBE, 0xD5, 0xB6, 0x44,\n\t// Bytes 1d80 - 1dbf\n\t0xD7, 0x90, 0xD7, 0x9C, 0x44, 0xD8, 0xA7, 0xD9,\n\t0xB4, 0x44, 0xD8, 0xA8, 0xD8, 0xAC, 0x44, 0xD8,\n\t0xA8, 0xD8, 0xAD, 0x44, 0xD8, 0xA8, 0xD8, 0xAE,\n\t0x44, 0xD8, 0xA8, 0xD8, 0xB1, 0x44, 0xD8, 0xA8,\n\t0xD8, 0xB2, 0x44, 0xD8, 0xA8, 0xD9, 0x85, 0x44,\n\t0xD8, 0xA8, 0xD9, 0x86, 0x44, 0xD8, 0xA8, 0xD9,\n\t0x87, 0x44, 0xD8, 0xA8, 0xD9, 0x89, 0x44, 0xD8,\n\t0xA8, 0xD9, 0x8A, 0x44, 0xD8, 0xAA, 0xD8, 0xAC,\n\t// Bytes 1dc0 - 1dff\n\t0x44, 0xD8, 0xAA, 0xD8, 0xAD, 0x44, 0xD8, 0xAA,\n\t0xD8, 0xAE, 0x44, 0xD8, 0xAA, 0xD8, 0xB1, 0x44,\n\t0xD8, 0xAA, 0xD8, 0xB2, 0x44, 0xD8, 0xAA, 0xD9,\n\t0x85, 0x44, 0xD8, 0xAA, 0xD9, 0x86, 0x44, 0xD8,\n\t0xAA, 0xD9, 0x87, 0x44, 0xD8, 0xAA, 0xD9, 0x89,\n\t0x44, 0xD8, 0xAA, 0xD9, 0x8A, 0x44, 0xD8, 0xAB,\n\t0xD8, 0xAC, 0x44, 0xD8, 0xAB, 0xD8, 0xB1, 0x44,\n\t0xD8, 0xAB, 0xD8, 0xB2, 0x44, 0xD8, 0xAB, 0xD9,\n\t// Bytes 1e00 - 1e3f\n\t0x85, 0x44, 0xD8, 0xAB, 0xD9, 0x86, 0x44, 0xD8,\n\t0xAB, 0xD9, 0x87, 0x44, 0xD8, 0xAB, 0xD9, 0x89,\n\t0x44, 0xD8, 0xAB, 0xD9, 0x8A, 0x44, 0xD8, 0xAC,\n\t0xD8, 0xAD, 0x44, 0xD8, 0xAC, 0xD9, 0x85, 0x44,\n\t0xD8, 0xAC, 0xD9, 0x89, 0x44, 0xD8, 0xAC, 0xD9,\n\t0x8A, 0x44, 0xD8, 0xAD, 0xD8, 0xAC, 0x44, 0xD8,\n\t0xAD, 0xD9, 0x85, 0x44, 0xD8, 0xAD, 0xD9, 0x89,\n\t0x44, 0xD8, 0xAD, 0xD9, 0x8A, 0x44, 0xD8, 0xAE,\n\t// Bytes 1e40 - 1e7f\n\t0xD8, 0xAC, 0x44, 0xD8, 0xAE, 0xD8, 0xAD, 0x44,\n\t0xD8, 0xAE, 0xD9, 0x85, 0x44, 0xD8, 0xAE, 0xD9,\n\t0x89, 0x44, 0xD8, 0xAE, 0xD9, 0x8A, 0x44, 0xD8,\n\t0xB3, 0xD8, 0xAC, 0x44, 0xD8, 0xB3, 0xD8, 0xAD,\n\t0x44, 0xD8, 0xB3, 0xD8, 0xAE, 0x44, 0xD8, 0xB3,\n\t0xD8, 0xB1, 0x44, 0xD8, 0xB3, 0xD9, 0x85, 0x44,\n\t0xD8, 0xB3, 0xD9, 0x87, 0x44, 0xD8, 0xB3, 0xD9,\n\t0x89, 0x44, 0xD8, 0xB3, 0xD9, 0x8A, 0x44, 0xD8,\n\t// Bytes 1e80 - 1ebf\n\t0xB4, 0xD8, 0xAC, 0x44, 0xD8, 0xB4, 0xD8, 0xAD,\n\t0x44, 0xD8, 0xB4, 0xD8, 0xAE, 0x44, 0xD8, 0xB4,\n\t0xD8, 0xB1, 0x44, 0xD8, 0xB4, 0xD9, 0x85, 0x44,\n\t0xD8, 0xB4, 0xD9, 0x87, 0x44, 0xD8, 0xB4, 0xD9,\n\t0x89, 0x44, 0xD8, 0xB4, 0xD9, 0x8A, 0x44, 0xD8,\n\t0xB5, 0xD8, 0xAD, 0x44, 0xD8, 0xB5, 0xD8, 0xAE,\n\t0x44, 0xD8, 0xB5, 0xD8, 0xB1, 0x44, 0xD8, 0xB5,\n\t0xD9, 0x85, 0x44, 0xD8, 0xB5, 0xD9, 0x89, 0x44,\n\t// Bytes 1ec0 - 1eff\n\t0xD8, 0xB5, 0xD9, 0x8A, 0x44, 0xD8, 0xB6, 0xD8,\n\t0xAC, 0x44, 0xD8, 0xB6, 0xD8, 0xAD, 0x44, 0xD8,\n\t0xB6, 0xD8, 0xAE, 0x44, 0xD8, 0xB6, 0xD8, 0xB1,\n\t0x44, 0xD8, 0xB6, 0xD9, 0x85, 0x44, 0xD8, 0xB6,\n\t0xD9, 0x89, 0x44, 0xD8, 0xB6, 0xD9, 0x8A, 0x44,\n\t0xD8, 0xB7, 0xD8, 0xAD, 0x44, 0xD8, 0xB7, 0xD9,\n\t0x85, 0x44, 0xD8, 0xB7, 0xD9, 0x89, 0x44, 0xD8,\n\t0xB7, 0xD9, 0x8A, 0x44, 0xD8, 0xB8, 0xD9, 0x85,\n\t// Bytes 1f00 - 1f3f\n\t0x44, 0xD8, 0xB9, 0xD8, 0xAC, 0x44, 0xD8, 0xB9,\n\t0xD9, 0x85, 0x44, 0xD8, 0xB9, 0xD9, 0x89, 0x44,\n\t0xD8, 0xB9, 0xD9, 0x8A, 0x44, 0xD8, 0xBA, 0xD8,\n\t0xAC, 0x44, 0xD8, 0xBA, 0xD9, 0x85, 0x44, 0xD8,\n\t0xBA, 0xD9, 0x89, 0x44, 0xD8, 0xBA, 0xD9, 0x8A,\n\t0x44, 0xD9, 0x81, 0xD8, 0xAC, 0x44, 0xD9, 0x81,\n\t0xD8, 0xAD, 0x44, 0xD9, 0x81, 0xD8, 0xAE, 0x44,\n\t0xD9, 0x81, 0xD9, 0x85, 0x44, 0xD9, 0x81, 0xD9,\n\t// Bytes 1f40 - 1f7f\n\t0x89, 0x44, 0xD9, 0x81, 0xD9, 0x8A, 0x44, 0xD9,\n\t0x82, 0xD8, 0xAD, 0x44, 0xD9, 0x82, 0xD9, 0x85,\n\t0x44, 0xD9, 0x82, 0xD9, 0x89, 0x44, 0xD9, 0x82,\n\t0xD9, 0x8A, 0x44, 0xD9, 0x83, 0xD8, 0xA7, 0x44,\n\t0xD9, 0x83, 0xD8, 0xAC, 0x44, 0xD9, 0x83, 0xD8,\n\t0xAD, 0x44, 0xD9, 0x83, 0xD8, 0xAE, 0x44, 0xD9,\n\t0x83, 0xD9, 0x84, 0x44, 0xD9, 0x83, 0xD9, 0x85,\n\t0x44, 0xD9, 0x83, 0xD9, 0x89, 0x44, 0xD9, 0x83,\n\t// Bytes 1f80 - 1fbf\n\t0xD9, 0x8A, 0x44, 0xD9, 0x84, 0xD8, 0xA7, 0x44,\n\t0xD9, 0x84, 0xD8, 0xAC, 0x44, 0xD9, 0x84, 0xD8,\n\t0xAD, 0x44, 0xD9, 0x84, 0xD8, 0xAE, 0x44, 0xD9,\n\t0x84, 0xD9, 0x85, 0x44, 0xD9, 0x84, 0xD9, 0x87,\n\t0x44, 0xD9, 0x84, 0xD9, 0x89, 0x44, 0xD9, 0x84,\n\t0xD9, 0x8A, 0x44, 0xD9, 0x85, 0xD8, 0xA7, 0x44,\n\t0xD9, 0x85, 0xD8, 0xAC, 0x44, 0xD9, 0x85, 0xD8,\n\t0xAD, 0x44, 0xD9, 0x85, 0xD8, 0xAE, 0x44, 0xD9,\n\t// Bytes 1fc0 - 1fff\n\t0x85, 0xD9, 0x85, 0x44, 0xD9, 0x85, 0xD9, 0x89,\n\t0x44, 0xD9, 0x85, 0xD9, 0x8A, 0x44, 0xD9, 0x86,\n\t0xD8, 0xAC, 0x44, 0xD9, 0x86, 0xD8, 0xAD, 0x44,\n\t0xD9, 0x86, 0xD8, 0xAE, 0x44, 0xD9, 0x86, 0xD8,\n\t0xB1, 0x44, 0xD9, 0x86, 0xD8, 0xB2, 0x44, 0xD9,\n\t0x86, 0xD9, 0x85, 0x44, 0xD9, 0x86, 0xD9, 0x86,\n\t0x44, 0xD9, 0x86, 0xD9, 0x87, 0x44, 0xD9, 0x86,\n\t0xD9, 0x89, 0x44, 0xD9, 0x86, 0xD9, 0x8A, 0x44,\n\t// Bytes 2000 - 203f\n\t0xD9, 0x87, 0xD8, 0xAC, 0x44, 0xD9, 0x87, 0xD9,\n\t0x85, 0x44, 0xD9, 0x87, 0xD9, 0x89, 0x44, 0xD9,\n\t0x87, 0xD9, 0x8A, 0x44, 0xD9, 0x88, 0xD9, 0xB4,\n\t0x44, 0xD9, 0x8A, 0xD8, 0xAC, 0x44, 0xD9, 0x8A,\n\t0xD8, 0xAD, 0x44, 0xD9, 0x8A, 0xD8, 0xAE, 0x44,\n\t0xD9, 0x8A, 0xD8, 0xB1, 0x44, 0xD9, 0x8A, 0xD8,\n\t0xB2, 0x44, 0xD9, 0x8A, 0xD9, 0x85, 0x44, 0xD9,\n\t0x8A, 0xD9, 0x86, 0x44, 0xD9, 0x8A, 0xD9, 0x87,\n\t// Bytes 2040 - 207f\n\t0x44, 0xD9, 0x8A, 0xD9, 0x89, 0x44, 0xD9, 0x8A,\n\t0xD9, 0x8A, 0x44, 0xD9, 0x8A, 0xD9, 0xB4, 0x44,\n\t0xDB, 0x87, 0xD9, 0xB4, 0x45, 0x28, 0xE1, 0x84,\n\t0x80, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x82, 0x29,\n\t0x45, 0x28, 0xE1, 0x84, 0x83, 0x29, 0x45, 0x28,\n\t0xE1, 0x84, 0x85, 0x29, 0x45, 0x28, 0xE1, 0x84,\n\t0x86, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x87, 0x29,\n\t0x45, 0x28, 0xE1, 0x84, 0x89, 0x29, 0x45, 0x28,\n\t// Bytes 2080 - 20bf\n\t0xE1, 0x84, 0x8B, 0x29, 0x45, 0x28, 0xE1, 0x84,\n\t0x8C, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8E, 0x29,\n\t0x45, 0x28, 0xE1, 0x84, 0x8F, 0x29, 0x45, 0x28,\n\t0xE1, 0x84, 0x90, 0x29, 0x45, 0x28, 0xE1, 0x84,\n\t0x91, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x92, 0x29,\n\t0x45, 0x28, 0xE4, 0xB8, 0x80, 0x29, 0x45, 0x28,\n\t0xE4, 0xB8, 0x83, 0x29, 0x45, 0x28, 0xE4, 0xB8,\n\t0x89, 0x29, 0x45, 0x28, 0xE4, 0xB9, 0x9D, 0x29,\n\t// Bytes 20c0 - 20ff\n\t0x45, 0x28, 0xE4, 0xBA, 0x8C, 0x29, 0x45, 0x28,\n\t0xE4, 0xBA, 0x94, 0x29, 0x45, 0x28, 0xE4, 0xBB,\n\t0xA3, 0x29, 0x45, 0x28, 0xE4, 0xBC, 0x81, 0x29,\n\t0x45, 0x28, 0xE4, 0xBC, 0x91, 0x29, 0x45, 0x28,\n\t0xE5, 0x85, 0xAB, 0x29, 0x45, 0x28, 0xE5, 0x85,\n\t0xAD, 0x29, 0x45, 0x28, 0xE5, 0x8A, 0xB4, 0x29,\n\t0x45, 0x28, 0xE5, 0x8D, 0x81, 0x29, 0x45, 0x28,\n\t0xE5, 0x8D, 0x94, 0x29, 0x45, 0x28, 0xE5, 0x90,\n\t// Bytes 2100 - 213f\n\t0x8D, 0x29, 0x45, 0x28, 0xE5, 0x91, 0xBC, 0x29,\n\t0x45, 0x28, 0xE5, 0x9B, 0x9B, 0x29, 0x45, 0x28,\n\t0xE5, 0x9C, 0x9F, 0x29, 0x45, 0x28, 0xE5, 0xAD,\n\t0xA6, 0x29, 0x45, 0x28, 0xE6, 0x97, 0xA5, 0x29,\n\t0x45, 0x28, 0xE6, 0x9C, 0x88, 0x29, 0x45, 0x28,\n\t0xE6, 0x9C, 0x89, 0x29, 0x45, 0x28, 0xE6, 0x9C,\n\t0xA8, 0x29, 0x45, 0x28, 0xE6, 0xA0, 0xAA, 0x29,\n\t0x45, 0x28, 0xE6, 0xB0, 0xB4, 0x29, 0x45, 0x28,\n\t// Bytes 2140 - 217f\n\t0xE7, 0x81, 0xAB, 0x29, 0x45, 0x28, 0xE7, 0x89,\n\t0xB9, 0x29, 0x45, 0x28, 0xE7, 0x9B, 0xA3, 0x29,\n\t0x45, 0x28, 0xE7, 0xA4, 0xBE, 0x29, 0x45, 0x28,\n\t0xE7, 0xA5, 0x9D, 0x29, 0x45, 0x28, 0xE7, 0xA5,\n\t0xAD, 0x29, 0x45, 0x28, 0xE8, 0x87, 0xAA, 0x29,\n\t0x45, 0x28, 0xE8, 0x87, 0xB3, 0x29, 0x45, 0x28,\n\t0xE8, 0xB2, 0xA1, 0x29, 0x45, 0x28, 0xE8, 0xB3,\n\t0x87, 0x29, 0x45, 0x28, 0xE9, 0x87, 0x91, 0x29,\n\t// Bytes 2180 - 21bf\n\t0x45, 0x30, 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31,\n\t0x30, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x30, 0xE6,\n\t0x9C, 0x88, 0x45, 0x31, 0x30, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t0x31, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x31, 0xE7,\n\t0x82, 0xB9, 0x45, 0x31, 0x32, 0xE6, 0x97, 0xA5,\n\t0x45, 0x31, 0x32, 0xE6, 0x9C, 0x88, 0x45, 0x31,\n\t0x32, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x33, 0xE6,\n\t// Bytes 21c0 - 21ff\n\t0x97, 0xA5, 0x45, 0x31, 0x33, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t0x34, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x35, 0xE6,\n\t0x97, 0xA5, 0x45, 0x31, 0x35, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x36, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t0x36, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x37, 0xE6,\n\t0x97, 0xA5, 0x45, 0x31, 0x37, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t// Bytes 2200 - 223f\n\t0x38, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x39, 0xE6,\n\t0x97, 0xA5, 0x45, 0x31, 0x39, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0xE2, 0x81, 0x84, 0x32, 0x45, 0x31,\n\t0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, 0xE2, 0x81,\n\t0x84, 0x34, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x35,\n\t0x45, 0x31, 0xE2, 0x81, 0x84, 0x36, 0x45, 0x31,\n\t0xE2, 0x81, 0x84, 0x37, 0x45, 0x31, 0xE2, 0x81,\n\t0x84, 0x38, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x39,\n\t// Bytes 2240 - 227f\n\t0x45, 0x32, 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x30, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x31, 0xE6,\n\t0x97, 0xA5, 0x45, 0x32, 0x31, 0xE7, 0x82, 0xB9,\n\t0x45, 0x32, 0x32, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x32, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x33, 0xE6,\n\t0x97, 0xA5, 0x45, 0x32, 0x33, 0xE7, 0x82, 0xB9,\n\t0x45, 0x32, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x34, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x35, 0xE6,\n\t// Bytes 2280 - 22bf\n\t0x97, 0xA5, 0x45, 0x32, 0x36, 0xE6, 0x97, 0xA5,\n\t0x45, 0x32, 0x37, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x38, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x39, 0xE6,\n\t0x97, 0xA5, 0x45, 0x32, 0xE2, 0x81, 0x84, 0x33,\n\t0x45, 0x32, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33,\n\t0x30, 0xE6, 0x97, 0xA5, 0x45, 0x33, 0x31, 0xE6,\n\t0x97, 0xA5, 0x45, 0x33, 0xE2, 0x81, 0x84, 0x34,\n\t0x45, 0x33, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33,\n\t// Bytes 22c0 - 22ff\n\t0xE2, 0x81, 0x84, 0x38, 0x45, 0x34, 0xE2, 0x81,\n\t0x84, 0x35, 0x45, 0x35, 0xE2, 0x81, 0x84, 0x36,\n\t0x45, 0x35, 0xE2, 0x81, 0x84, 0x38, 0x45, 0x37,\n\t0xE2, 0x81, 0x84, 0x38, 0x45, 0x41, 0xE2, 0x88,\n\t0x95, 0x6D, 0x45, 0x56, 0xE2, 0x88, 0x95, 0x6D,\n\t0x45, 0x6D, 0xE2, 0x88, 0x95, 0x73, 0x46, 0x31,\n\t0xE2, 0x81, 0x84, 0x31, 0x30, 0x46, 0x43, 0xE2,\n\t0x88, 0x95, 0x6B, 0x67, 0x46, 0x6D, 0xE2, 0x88,\n\t// Bytes 2300 - 233f\n\t0x95, 0x73, 0x32, 0x46, 0xD8, 0xA8, 0xD8, 0xAD,\n\t0xD9, 0x8A, 0x46, 0xD8, 0xA8, 0xD8, 0xAE, 0xD9,\n\t0x8A, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x85,\n\t0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x89, 0x46,\n\t0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8,\n\t0xAA, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xAA,\n\t0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8,\n\t0xAE, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAE,\n\t// Bytes 2340 - 237f\n\t0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9,\n\t0x8A, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAC,\n\t0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAD, 0x46,\n\t0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAE, 0x46, 0xD8,\n\t0xAA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAA,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD8,\n\t0xAD, 0xD9, 0x89, 0x46, 0xD8, 0xAC, 0xD8, 0xAD,\n\t0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD8,\n\t// Bytes 2380 - 23bf\n\t0xAD, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x89,\n\t0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x8A, 0x46,\n\t0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8,\n\t0xAD, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAD,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB3, 0xD8,\n\t0xAC, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, 0xD8, 0xAC,\n\t0xD9, 0x89, 0x46, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8,\n\t0xAC, 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x89,\n\t// Bytes 23c0 - 23ff\n\t0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x8A, 0x46,\n\t0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD8,\n\t0xB3, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xB3,\n\t0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8,\n\t0xAC, 0xD9, 0x8A, 0x46, 0xD8, 0xB4, 0xD8, 0xAD,\n\t0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, 0xD9,\n\t0x8A, 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xAE,\n\t0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD9, 0x85, 0x46,\n\t// Bytes 2400 - 243f\n\t0xD8, 0xB5, 0xD8, 0xAD, 0xD8, 0xAD, 0x46, 0xD8,\n\t0xB5, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB5,\n\t0xD9, 0x84, 0xD9, 0x89, 0x46, 0xD8, 0xB5, 0xD9,\n\t0x84, 0xDB, 0x92, 0x46, 0xD8, 0xB5, 0xD9, 0x85,\n\t0xD9, 0x85, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9,\n\t0x89, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x8A,\n\t0x46, 0xD8, 0xB6, 0xD8, 0xAE, 0xD9, 0x85, 0x46,\n\t0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8,\n\t// Bytes 2440 - 247f\n\t0xB7, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB7,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB9, 0xD8,\n\t0xAC, 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85,\n\t0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9,\n\t0x89, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x8A,\n\t0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x85, 0x46,\n\t0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8,\n\t0xBA, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x81,\n\t// Bytes 2480 - 24bf\n\t0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x81, 0xD9,\n\t0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x82, 0xD9, 0x84,\n\t0xDB, 0x92, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD8,\n\t0xAD, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x85,\n\t0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x8A, 0x46,\n\t0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9,\n\t0x83, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x84,\n\t0xD8, 0xAC, 0xD8, 0xAC, 0x46, 0xD9, 0x84, 0xD8,\n\t// Bytes 24c0 - 24ff\n\t0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAC,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9,\n\t0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x89,\n\t0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x8A, 0x46,\n\t0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9,\n\t0x84, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x84,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8,\n\t0xAC, 0xD8, 0xAD, 0x46, 0xD9, 0x85, 0xD8, 0xAC,\n\t// Bytes 2500 - 253f\n\t0xD8, 0xAE, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9,\n\t0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x8A,\n\t0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0x46,\n\t0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9,\n\t0x85, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x85,\n\t0xD8, 0xAE, 0xD8, 0xAC, 0x46, 0xD9, 0x85, 0xD8,\n\t0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAE,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD9, 0x85, 0xD9,\n\t// Bytes 2540 - 257f\n\t0x8A, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD8, 0xAD,\n\t0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x85, 0x46,\n\t0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD9,\n\t0x86, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x86,\n\t0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x86, 0xD8,\n\t0xAD, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD8, 0xAD,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9,\n\t0x89, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x8A,\n\t// Bytes 2580 - 25bf\n\t0x46, 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xAC, 0x46,\n\t0xD9, 0x87, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9,\n\t0x8A, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x8A,\n\t0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9,\n\t0x85, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x85,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8,\n\t0xA7, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAC,\n\t0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAD, 0x46,\n\t// Bytes 25c0 - 25ff\n\t0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAE, 0x46, 0xD9,\n\t0x8A, 0xD9, 0x94, 0xD8, 0xB1, 0x46, 0xD9, 0x8A,\n\t0xD9, 0x94, 0xD8, 0xB2, 0x46, 0xD9, 0x8A, 0xD9,\n\t0x94, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x94,\n\t0xD9, 0x86, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9,\n\t0x87, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x88,\n\t0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x89, 0x46,\n\t0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x8A, 0x46, 0xD9,\n\t// Bytes 2600 - 263f\n\t0x8A, 0xD9, 0x94, 0xDB, 0x86, 0x46, 0xD9, 0x8A,\n\t0xD9, 0x94, 0xDB, 0x87, 0x46, 0xD9, 0x8A, 0xD9,\n\t0x94, 0xDB, 0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94,\n\t0xDB, 0x90, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB,\n\t0x95, 0x46, 0xE0, 0xB9, 0x8D, 0xE0, 0xB8, 0xB2,\n\t0x46, 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0x99, 0x46,\n\t0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0xA1, 0x46, 0xE0,\n\t0xBB, 0x8D, 0xE0, 0xBA, 0xB2, 0x46, 0xE0, 0xBD,\n\t// Bytes 2640 - 267f\n\t0x80, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, 0xBD, 0x82,\n\t0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x8C, 0xE0,\n\t0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x91, 0xE0, 0xBE,\n\t0xB7, 0x46, 0xE0, 0xBD, 0x96, 0xE0, 0xBE, 0xB7,\n\t0x46, 0xE0, 0xBD, 0x9B, 0xE0, 0xBE, 0xB7, 0x46,\n\t0xE0, 0xBE, 0x90, 0xE0, 0xBE, 0xB5, 0x46, 0xE0,\n\t0xBE, 0x92, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE,\n\t0x9C, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA1,\n\t// Bytes 2680 - 26bf\n\t0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA6, 0xE0,\n\t0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xAB, 0xE0, 0xBE,\n\t0xB7, 0x46, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,\n\t0x46, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x46,\n\t0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x46, 0xE2,\n\t0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x46, 0xE3, 0x81,\n\t0xBB, 0xE3, 0x81, 0x8B, 0x46, 0xE3, 0x82, 0x88,\n\t0xE3, 0x82, 0x8A, 0x46, 0xE3, 0x82, 0xAD, 0xE3,\n\t// Bytes 26c0 - 26ff\n\t0x83, 0xAD, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x82,\n\t0xB3, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0x88,\n\t0x46, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x46,\n\t0xE3, 0x83, 0x8A, 0xE3, 0x83, 0x8E, 0x46, 0xE3,\n\t0x83, 0x9B, 0xE3, 0x83, 0xB3, 0x46, 0xE3, 0x83,\n\t0x9F, 0xE3, 0x83, 0xAA, 0x46, 0xE3, 0x83, 0xAA,\n\t0xE3, 0x83, 0xA9, 0x46, 0xE3, 0x83, 0xAC, 0xE3,\n\t0x83, 0xA0, 0x46, 0xE5, 0xA4, 0xA7, 0xE6, 0xAD,\n\t// Bytes 2700 - 273f\n\t0xA3, 0x46, 0xE5, 0xB9, 0xB3, 0xE6, 0x88, 0x90,\n\t0x46, 0xE6, 0x98, 0x8E, 0xE6, 0xB2, 0xBB, 0x46,\n\t0xE6, 0x98, 0xAD, 0xE5, 0x92, 0x8C, 0x47, 0x72,\n\t0x61, 0x64, 0xE2, 0x88, 0x95, 0x73, 0x47, 0xE3,\n\t0x80, 0x94, 0x53, 0xE3, 0x80, 0x95, 0x48, 0x28,\n\t0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x29, 0x48,\n\t0x28, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x29,\n\t0x48, 0x28, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1,\n\t// Bytes 2740 - 277f\n\t0x29, 0x48, 0x28, 0xE1, 0x84, 0x85, 0xE1, 0x85,\n\t0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x86, 0xE1,\n\t0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x87,\n\t0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,\n\t0x89, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1,\n\t0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28,\n\t0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x29, 0x48,\n\t0x28, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xAE, 0x29,\n\t// Bytes 2780 - 27bf\n\t0x48, 0x28, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1,\n\t0x29, 0x48, 0x28, 0xE1, 0x84, 0x8F, 0xE1, 0x85,\n\t0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x90, 0xE1,\n\t0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x91,\n\t0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,\n\t0x92, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x72, 0x61,\n\t0x64, 0xE2, 0x88, 0x95, 0x73, 0x32, 0x48, 0xD8,\n\t0xA7, 0xD9, 0x83, 0xD8, 0xA8, 0xD8, 0xB1, 0x48,\n\t// Bytes 27c0 - 27ff\n\t0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x87,\n\t0x48, 0xD8, 0xB1, 0xD8, 0xB3, 0xD9, 0x88, 0xD9,\n\t0x84, 0x48, 0xD8, 0xB1, 0xDB, 0x8C, 0xD8, 0xA7,\n\t0xD9, 0x84, 0x48, 0xD8, 0xB5, 0xD9, 0x84, 0xD8,\n\t0xB9, 0xD9, 0x85, 0x48, 0xD8, 0xB9, 0xD9, 0x84,\n\t0xD9, 0x8A, 0xD9, 0x87, 0x48, 0xD9, 0x85, 0xD8,\n\t0xAD, 0xD9, 0x85, 0xD8, 0xAF, 0x48, 0xD9, 0x88,\n\t0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x49, 0xE2,\n\t// Bytes 2800 - 283f\n\t0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,\n\t0x49, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0xE2,\n\t0x80, 0xB5, 0x49, 0xE2, 0x88, 0xAB, 0xE2, 0x88,\n\t0xAB, 0xE2, 0x88, 0xAB, 0x49, 0xE2, 0x88, 0xAE,\n\t0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x49, 0xE3,\n\t0x80, 0x94, 0xE4, 0xB8, 0x89, 0xE3, 0x80, 0x95,\n\t0x49, 0xE3, 0x80, 0x94, 0xE4, 0xBA, 0x8C, 0xE3,\n\t0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE5, 0x8B,\n\t// Bytes 2840 - 287f\n\t0x9D, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94,\n\t0xE5, 0xAE, 0x89, 0xE3, 0x80, 0x95, 0x49, 0xE3,\n\t0x80, 0x94, 0xE6, 0x89, 0x93, 0xE3, 0x80, 0x95,\n\t0x49, 0xE3, 0x80, 0x94, 0xE6, 0x95, 0x97, 0xE3,\n\t0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x9C,\n\t0xAC, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94,\n\t0xE7, 0x82, 0xB9, 0xE3, 0x80, 0x95, 0x49, 0xE3,\n\t0x80, 0x94, 0xE7, 0x9B, 0x97, 0xE3, 0x80, 0x95,\n\t// Bytes 2880 - 28bf\n\t0x49, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0xAB, 0x49, 0xE3, 0x82, 0xA4, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x81, 0x49, 0xE3, 0x82, 0xA6,\n\t0xE3, 0x82, 0xA9, 0xE3, 0x83, 0xB3, 0x49, 0xE3,\n\t0x82, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB9,\n\t0x49, 0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0xA0, 0x49, 0xE3, 0x82, 0xAB, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x83, 0xAA, 0x49, 0xE3, 0x82, 0xB1,\n\t// Bytes 28c0 - 28ff\n\t0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB9, 0x49, 0xE3,\n\t0x82, 0xB3, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x8A,\n\t0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3,\n\t0x83, 0x81, 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x88, 0x49, 0xE3, 0x83, 0x86,\n\t0xE3, 0x82, 0x99, 0xE3, 0x82, 0xB7, 0x49, 0xE3,\n\t0x83, 0x88, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB,\n\t0x49, 0xE3, 0x83, 0x8E, 0xE3, 0x83, 0x83, 0xE3,\n\t// Bytes 2900 - 293f\n\t0x83, 0x88, 0x49, 0xE3, 0x83, 0x8F, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x83, 0x84, 0x49, 0xE3, 0x83, 0x92,\n\t0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0x49, 0xE3,\n\t0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xB3,\n\t0x49, 0xE3, 0x83, 0x95, 0xE3, 0x83, 0xA9, 0xE3,\n\t0x83, 0xB3, 0x49, 0xE3, 0x83, 0x98, 0xE3, 0x82,\n\t0x9A, 0xE3, 0x82, 0xBD, 0x49, 0xE3, 0x83, 0x98,\n\t0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x84, 0x49, 0xE3,\n\t// Bytes 2940 - 297f\n\t0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB,\n\t0x49, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0xB3, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x9E,\n\t0xE3, 0x83, 0x83, 0xE3, 0x83, 0x8F, 0x49, 0xE3,\n\t0x83, 0x9E, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xAF,\n\t0x49, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0xAB, 0x49, 0xE3, 0x83, 0xA6, 0xE3, 0x82,\n\t// Bytes 2980 - 29bf\n\t0xA2, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83, 0xAF,\n\t0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x4C, 0xE2,\n\t0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,\n\t0xE2, 0x80, 0xB2, 0x4C, 0xE2, 0x88, 0xAB, 0xE2,\n\t0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB,\n\t0x4C, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xAB, 0xE3,\n\t0x83, 0x95, 0xE3, 0x82, 0xA1, 0x4C, 0xE3, 0x82,\n\t0xA8, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAB, 0xE3,\n\t// Bytes 29c0 - 29ff\n\t0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, 0x4C,\n\t0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x9E, 0x4C, 0xE3, 0x82, 0xAB,\n\t0xE3, 0x83, 0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83,\n\t0x88, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xAD,\n\t0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, 0x4C, 0xE3,\n\t0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x8B,\n\t// Bytes 2a00 - 2a3f\n\t0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3,\n\t0x83, 0xA5, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC,\n\t0x4C, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3,\n\t0x83, 0xA9, 0xE3, 0x83, 0xA0, 0x4C, 0xE3, 0x82,\n\t0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0x8D, 0x4C, 0xE3, 0x82, 0xB5, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C,\n\t0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t// Bytes 2a40 - 2a7f\n\t0xBC, 0xE3, 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x8F,\n\t0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0x84, 0x4C, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, 0xE3,\n\t0x83, 0x95, 0xE3, 0x82, 0xA3, 0xE3, 0x83, 0xBC,\n\t0xE3, 0x83, 0x88, 0x4C, 0xE3, 0x83, 0x98, 0xE3,\n\t0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xBF,\n\t0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3,\n\t// Bytes 2a80 - 2abf\n\t0x83, 0x8B, 0xE3, 0x83, 0x92, 0x4C, 0xE3, 0x83,\n\t0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3, 0xE3,\n\t0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x9B, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x88, 0x4C,\n\t0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x82,\n\t0xAF, 0xE3, 0x83, 0xAD, 0x4C, 0xE3, 0x83, 0x9F,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83,\n\t0xB3, 0x4C, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC,\n\t// Bytes 2ac0 - 2aff\n\t0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x4C, 0xE3,\n\t0x83, 0xAA, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88,\n\t0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83, 0xAB, 0xE3,\n\t0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC,\n\t0x4C, 0xE6, 0xA0, 0xAA, 0xE5, 0xBC, 0x8F, 0xE4,\n\t0xBC, 0x9A, 0xE7, 0xA4, 0xBE, 0x4E, 0x28, 0xE1,\n\t0x84, 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x92,\n\t0xE1, 0x85, 0xAE, 0x29, 0x4F, 0xD8, 0xAC, 0xD9,\n\t// Bytes 2b00 - 2b3f\n\t0x84, 0x20, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xA7,\n\t0xD9, 0x84, 0xD9, 0x87, 0x4F, 0xE3, 0x82, 0xA2,\n\t0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xA2,\n\t0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x98, 0xE3, 0x82,\n\t0x9A, 0xE3, 0x82, 0xA2, 0x4F, 0xE3, 0x82, 0xAD,\n\t0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAF, 0xE3, 0x83,\n\t0x83, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xB5,\n\t// Bytes 2b40 - 2b7f\n\t0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x83, 0xA0, 0x4F, 0xE3, 0x83, 0x8F,\n\t0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0xAC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x98,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x82, 0xBF, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x9B,\n\t0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA4, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x83, 0x9E,\n\t// Bytes 2b80 - 2bbf\n\t0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB7, 0xE3, 0x83,\n\t0xA7, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xA1,\n\t0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0x88, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xAB,\n\t0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x95, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xAB, 0x51, 0x28, 0xE1, 0x84,\n\t0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x8C, 0xE1,\n\t0x85, 0xA5, 0xE1, 0x86, 0xAB, 0x29, 0x52, 0xE3,\n\t// Bytes 2bc0 - 2bff\n\t0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB,\n\t0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0xBC, 0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0xA9, 0xE3, 0x83, 0xA0, 0x52, 0xE3, 0x82, 0xAD,\n\t0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xA1, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x52,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t// Bytes 2c00 - 2c3f\n\t0xA9, 0xE3, 0x83, 0xA0, 0xE3, 0x83, 0x88, 0xE3,\n\t0x83, 0xB3, 0x52, 0xE3, 0x82, 0xAF, 0xE3, 0x83,\n\t0xAB, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0xE3,\n\t0x82, 0xA4, 0xE3, 0x83, 0xAD, 0x52, 0xE3, 0x83,\n\t0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88,\n\t0x52, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3,\n\t0x82, 0xA2, 0xE3, 0x82, 0xB9, 0xE3, 0x83, 0x88,\n\t// Bytes 2c40 - 2c7f\n\t0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83, 0x95, 0xE3,\n\t0x82, 0x99, 0xE3, 0x83, 0x83, 0xE3, 0x82, 0xB7,\n\t0xE3, 0x82, 0xA7, 0xE3, 0x83, 0xAB, 0x52, 0xE3,\n\t0x83, 0x9F, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x8F,\n\t0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0xAB, 0x52, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xB3,\n\t0xE3, 0x83, 0x88, 0xE3, 0x82, 0xB1, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xB3, 0x61, 0xD8, 0xB5, 0xD9,\n\t// Bytes 2c80 - 2cbf\n\t0x84, 0xD9, 0x89, 0x20, 0xD8, 0xA7, 0xD9, 0x84,\n\t0xD9, 0x84, 0xD9, 0x87, 0x20, 0xD8, 0xB9, 0xD9,\n\t0x84, 0xD9, 0x8A, 0xD9, 0x87, 0x20, 0xD9, 0x88,\n\t0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x06, 0xE0,\n\t0xA7, 0x87, 0xE0, 0xA6, 0xBE, 0x01, 0x06, 0xE0,\n\t0xA7, 0x87, 0xE0, 0xA7, 0x97, 0x01, 0x06, 0xE0,\n\t0xAD, 0x87, 0xE0, 0xAC, 0xBE, 0x01, 0x06, 0xE0,\n\t0xAD, 0x87, 0xE0, 0xAD, 0x96, 0x01, 0x06, 0xE0,\n\t// Bytes 2cc0 - 2cff\n\t0xAD, 0x87, 0xE0, 0xAD, 0x97, 0x01, 0x06, 0xE0,\n\t0xAE, 0x92, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0,\n\t0xAF, 0x86, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0,\n\t0xAF, 0x86, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0,\n\t0xAF, 0x87, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0,\n\t0xB2, 0xBF, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0,\n\t0xB3, 0x86, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0,\n\t0xB3, 0x86, 0xE0, 0xB3, 0x96, 0x01, 0x06, 0xE0,\n\t// Bytes 2d00 - 2d3f\n\t0xB5, 0x86, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0,\n\t0xB5, 0x86, 0xE0, 0xB5, 0x97, 0x01, 0x06, 0xE0,\n\t0xB5, 0x87, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0,\n\t0xB7, 0x99, 0xE0, 0xB7, 0x9F, 0x01, 0x06, 0xE1,\n\t0x80, 0xA5, 0xE1, 0x80, 0xAE, 0x01, 0x06, 0xE1,\n\t0xAC, 0x85, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0x87, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0x89, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t// Bytes 2d40 - 2d7f\n\t0xAC, 0x8B, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0x8D, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0x91, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0xBA, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0xBC, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0xBE, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0xBF, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAD, 0x82, 0xE1, 0xAC, 0xB5, 0x01, 0x08, 0xF0,\n\t// Bytes 2d80 - 2dbf\n\t0x91, 0x84, 0xB1, 0xF0, 0x91, 0x84, 0xA7, 0x01,\n\t0x08, 0xF0, 0x91, 0x84, 0xB2, 0xF0, 0x91, 0x84,\n\t0xA7, 0x01, 0x08, 0xF0, 0x91, 0x8D, 0x87, 0xF0,\n\t0x91, 0x8C, 0xBE, 0x01, 0x08, 0xF0, 0x91, 0x8D,\n\t0x87, 0xF0, 0x91, 0x8D, 0x97, 0x01, 0x08, 0xF0,\n\t0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xB0, 0x01,\n\t0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92,\n\t0xBA, 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0,\n\t// Bytes 2dc0 - 2dff\n\t0x91, 0x92, 0xBD, 0x01, 0x08, 0xF0, 0x91, 0x96,\n\t0xB8, 0xF0, 0x91, 0x96, 0xAF, 0x01, 0x08, 0xF0,\n\t0x91, 0x96, 0xB9, 0xF0, 0x91, 0x96, 0xAF, 0x01,\n\t0x09, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0xE0,\n\t0xB3, 0x95, 0x02, 0x09, 0xE0, 0xB7, 0x99, 0xE0,\n\t0xB7, 0x8F, 0xE0, 0xB7, 0x8A, 0x12, 0x44, 0x44,\n\t0x5A, 0xCC, 0x8C, 0xC9, 0x44, 0x44, 0x7A, 0xCC,\n\t0x8C, 0xC9, 0x44, 0x64, 0x7A, 0xCC, 0x8C, 0xC9,\n\t// Bytes 2e00 - 2e3f\n\t0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x93, 0xC9,\n\t0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94, 0xC9,\n\t0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x95, 0xB5,\n\t0x46, 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1, 0x01,\n\t// Bytes 2e40 - 2e7f\n\t0x46, 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xAE, 0x01,\n\t0x46, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x90, 0xE1, 0x85, 0xA1, 0x01,\n\t// Bytes 2e80 - 2ebf\n\t0x46, 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0x01,\n\t0x49, 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB, 0xE3,\n\t0x82, 0x99, 0x0D, 0x4C, 0xE1, 0x84, 0x8C, 0xE1,\n\t0x85, 0xAE, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xB4,\n\t0x01, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99,\n\t0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, 0x4C,\n\t0xE3, 0x82, 0xB3, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t// Bytes 2ec0 - 2eff\n\t0x9B, 0xE3, 0x82, 0x9A, 0x0D, 0x4C, 0xE3, 0x83,\n\t0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3,\n\t0x82, 0x99, 0x0D, 0x4F, 0xE1, 0x84, 0x8E, 0xE1,\n\t0x85, 0xA1, 0xE1, 0x86, 0xB7, 0xE1, 0x84, 0x80,\n\t0xE1, 0x85, 0xA9, 0x01, 0x4F, 0xE3, 0x82, 0xA4,\n\t0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xB3, 0xE3, 0x82,\n\t0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3, 0x82,\n\t0xB7, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xB3, 0xE3,\n\t// Bytes 2f00 - 2f3f\n\t0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3,\n\t0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC,\n\t0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D, 0x4F,\n\t0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D,\n\t0x52, 0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xB9, 0xE3,\n\t0x82, 0xAF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88,\n\t0xE3, 0x82, 0x99, 0x0D, 0x52, 0xE3, 0x83, 0x95,\n\t// Bytes 2f40 - 2f7f\n\t0xE3, 0x82, 0xA1, 0xE3, 0x83, 0xA9, 0xE3, 0x83,\n\t0x83, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D,\n\t0x86, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0x01,\n\t0x86, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8F, 0x01,\n\t0x03, 0x3C, 0xCC, 0xB8, 0x05, 0x03, 0x3D, 0xCC,\n\t0xB8, 0x05, 0x03, 0x3E, 0xCC, 0xB8, 0x05, 0x03,\n\t0x41, 0xCC, 0x80, 0xC9, 0x03, 0x41, 0xCC, 0x81,\n\t0xC9, 0x03, 0x41, 0xCC, 0x83, 0xC9, 0x03, 0x41,\n\t// Bytes 2f80 - 2fbf\n\t0xCC, 0x84, 0xC9, 0x03, 0x41, 0xCC, 0x89, 0xC9,\n\t0x03, 0x41, 0xCC, 0x8C, 0xC9, 0x03, 0x41, 0xCC,\n\t0x8F, 0xC9, 0x03, 0x41, 0xCC, 0x91, 0xC9, 0x03,\n\t0x41, 0xCC, 0xA5, 0xB5, 0x03, 0x41, 0xCC, 0xA8,\n\t0xA5, 0x03, 0x42, 0xCC, 0x87, 0xC9, 0x03, 0x42,\n\t0xCC, 0xA3, 0xB5, 0x03, 0x42, 0xCC, 0xB1, 0xB5,\n\t0x03, 0x43, 0xCC, 0x81, 0xC9, 0x03, 0x43, 0xCC,\n\t0x82, 0xC9, 0x03, 0x43, 0xCC, 0x87, 0xC9, 0x03,\n\t// Bytes 2fc0 - 2fff\n\t0x43, 0xCC, 0x8C, 0xC9, 0x03, 0x44, 0xCC, 0x87,\n\t0xC9, 0x03, 0x44, 0xCC, 0x8C, 0xC9, 0x03, 0x44,\n\t0xCC, 0xA3, 0xB5, 0x03, 0x44, 0xCC, 0xA7, 0xA5,\n\t0x03, 0x44, 0xCC, 0xAD, 0xB5, 0x03, 0x44, 0xCC,\n\t0xB1, 0xB5, 0x03, 0x45, 0xCC, 0x80, 0xC9, 0x03,\n\t0x45, 0xCC, 0x81, 0xC9, 0x03, 0x45, 0xCC, 0x83,\n\t0xC9, 0x03, 0x45, 0xCC, 0x86, 0xC9, 0x03, 0x45,\n\t0xCC, 0x87, 0xC9, 0x03, 0x45, 0xCC, 0x88, 0xC9,\n\t// Bytes 3000 - 303f\n\t0x03, 0x45, 0xCC, 0x89, 0xC9, 0x03, 0x45, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x45, 0xCC, 0x8F, 0xC9, 0x03,\n\t0x45, 0xCC, 0x91, 0xC9, 0x03, 0x45, 0xCC, 0xA8,\n\t0xA5, 0x03, 0x45, 0xCC, 0xAD, 0xB5, 0x03, 0x45,\n\t0xCC, 0xB0, 0xB5, 0x03, 0x46, 0xCC, 0x87, 0xC9,\n\t0x03, 0x47, 0xCC, 0x81, 0xC9, 0x03, 0x47, 0xCC,\n\t0x82, 0xC9, 0x03, 0x47, 0xCC, 0x84, 0xC9, 0x03,\n\t0x47, 0xCC, 0x86, 0xC9, 0x03, 0x47, 0xCC, 0x87,\n\t// Bytes 3040 - 307f\n\t0xC9, 0x03, 0x47, 0xCC, 0x8C, 0xC9, 0x03, 0x47,\n\t0xCC, 0xA7, 0xA5, 0x03, 0x48, 0xCC, 0x82, 0xC9,\n\t0x03, 0x48, 0xCC, 0x87, 0xC9, 0x03, 0x48, 0xCC,\n\t0x88, 0xC9, 0x03, 0x48, 0xCC, 0x8C, 0xC9, 0x03,\n\t0x48, 0xCC, 0xA3, 0xB5, 0x03, 0x48, 0xCC, 0xA7,\n\t0xA5, 0x03, 0x48, 0xCC, 0xAE, 0xB5, 0x03, 0x49,\n\t0xCC, 0x80, 0xC9, 0x03, 0x49, 0xCC, 0x81, 0xC9,\n\t0x03, 0x49, 0xCC, 0x82, 0xC9, 0x03, 0x49, 0xCC,\n\t// Bytes 3080 - 30bf\n\t0x83, 0xC9, 0x03, 0x49, 0xCC, 0x84, 0xC9, 0x03,\n\t0x49, 0xCC, 0x86, 0xC9, 0x03, 0x49, 0xCC, 0x87,\n\t0xC9, 0x03, 0x49, 0xCC, 0x89, 0xC9, 0x03, 0x49,\n\t0xCC, 0x8C, 0xC9, 0x03, 0x49, 0xCC, 0x8F, 0xC9,\n\t0x03, 0x49, 0xCC, 0x91, 0xC9, 0x03, 0x49, 0xCC,\n\t0xA3, 0xB5, 0x03, 0x49, 0xCC, 0xA8, 0xA5, 0x03,\n\t0x49, 0xCC, 0xB0, 0xB5, 0x03, 0x4A, 0xCC, 0x82,\n\t0xC9, 0x03, 0x4B, 0xCC, 0x81, 0xC9, 0x03, 0x4B,\n\t// Bytes 30c0 - 30ff\n\t0xCC, 0x8C, 0xC9, 0x03, 0x4B, 0xCC, 0xA3, 0xB5,\n\t0x03, 0x4B, 0xCC, 0xA7, 0xA5, 0x03, 0x4B, 0xCC,\n\t0xB1, 0xB5, 0x03, 0x4C, 0xCC, 0x81, 0xC9, 0x03,\n\t0x4C, 0xCC, 0x8C, 0xC9, 0x03, 0x4C, 0xCC, 0xA7,\n\t0xA5, 0x03, 0x4C, 0xCC, 0xAD, 0xB5, 0x03, 0x4C,\n\t0xCC, 0xB1, 0xB5, 0x03, 0x4D, 0xCC, 0x81, 0xC9,\n\t0x03, 0x4D, 0xCC, 0x87, 0xC9, 0x03, 0x4D, 0xCC,\n\t0xA3, 0xB5, 0x03, 0x4E, 0xCC, 0x80, 0xC9, 0x03,\n\t// Bytes 3100 - 313f\n\t0x4E, 0xCC, 0x81, 0xC9, 0x03, 0x4E, 0xCC, 0x83,\n\t0xC9, 0x03, 0x4E, 0xCC, 0x87, 0xC9, 0x03, 0x4E,\n\t0xCC, 0x8C, 0xC9, 0x03, 0x4E, 0xCC, 0xA3, 0xB5,\n\t0x03, 0x4E, 0xCC, 0xA7, 0xA5, 0x03, 0x4E, 0xCC,\n\t0xAD, 0xB5, 0x03, 0x4E, 0xCC, 0xB1, 0xB5, 0x03,\n\t0x4F, 0xCC, 0x80, 0xC9, 0x03, 0x4F, 0xCC, 0x81,\n\t0xC9, 0x03, 0x4F, 0xCC, 0x86, 0xC9, 0x03, 0x4F,\n\t0xCC, 0x89, 0xC9, 0x03, 0x4F, 0xCC, 0x8B, 0xC9,\n\t// Bytes 3140 - 317f\n\t0x03, 0x4F, 0xCC, 0x8C, 0xC9, 0x03, 0x4F, 0xCC,\n\t0x8F, 0xC9, 0x03, 0x4F, 0xCC, 0x91, 0xC9, 0x03,\n\t0x50, 0xCC, 0x81, 0xC9, 0x03, 0x50, 0xCC, 0x87,\n\t0xC9, 0x03, 0x52, 0xCC, 0x81, 0xC9, 0x03, 0x52,\n\t0xCC, 0x87, 0xC9, 0x03, 0x52, 0xCC, 0x8C, 0xC9,\n\t0x03, 0x52, 0xCC, 0x8F, 0xC9, 0x03, 0x52, 0xCC,\n\t0x91, 0xC9, 0x03, 0x52, 0xCC, 0xA7, 0xA5, 0x03,\n\t0x52, 0xCC, 0xB1, 0xB5, 0x03, 0x53, 0xCC, 0x82,\n\t// Bytes 3180 - 31bf\n\t0xC9, 0x03, 0x53, 0xCC, 0x87, 0xC9, 0x03, 0x53,\n\t0xCC, 0xA6, 0xB5, 0x03, 0x53, 0xCC, 0xA7, 0xA5,\n\t0x03, 0x54, 0xCC, 0x87, 0xC9, 0x03, 0x54, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x54, 0xCC, 0xA3, 0xB5, 0x03,\n\t0x54, 0xCC, 0xA6, 0xB5, 0x03, 0x54, 0xCC, 0xA7,\n\t0xA5, 0x03, 0x54, 0xCC, 0xAD, 0xB5, 0x03, 0x54,\n\t0xCC, 0xB1, 0xB5, 0x03, 0x55, 0xCC, 0x80, 0xC9,\n\t0x03, 0x55, 0xCC, 0x81, 0xC9, 0x03, 0x55, 0xCC,\n\t// Bytes 31c0 - 31ff\n\t0x82, 0xC9, 0x03, 0x55, 0xCC, 0x86, 0xC9, 0x03,\n\t0x55, 0xCC, 0x89, 0xC9, 0x03, 0x55, 0xCC, 0x8A,\n\t0xC9, 0x03, 0x55, 0xCC, 0x8B, 0xC9, 0x03, 0x55,\n\t0xCC, 0x8C, 0xC9, 0x03, 0x55, 0xCC, 0x8F, 0xC9,\n\t0x03, 0x55, 0xCC, 0x91, 0xC9, 0x03, 0x55, 0xCC,\n\t0xA3, 0xB5, 0x03, 0x55, 0xCC, 0xA4, 0xB5, 0x03,\n\t0x55, 0xCC, 0xA8, 0xA5, 0x03, 0x55, 0xCC, 0xAD,\n\t0xB5, 0x03, 0x55, 0xCC, 0xB0, 0xB5, 0x03, 0x56,\n\t// Bytes 3200 - 323f\n\t0xCC, 0x83, 0xC9, 0x03, 0x56, 0xCC, 0xA3, 0xB5,\n\t0x03, 0x57, 0xCC, 0x80, 0xC9, 0x03, 0x57, 0xCC,\n\t0x81, 0xC9, 0x03, 0x57, 0xCC, 0x82, 0xC9, 0x03,\n\t0x57, 0xCC, 0x87, 0xC9, 0x03, 0x57, 0xCC, 0x88,\n\t0xC9, 0x03, 0x57, 0xCC, 0xA3, 0xB5, 0x03, 0x58,\n\t0xCC, 0x87, 0xC9, 0x03, 0x58, 0xCC, 0x88, 0xC9,\n\t0x03, 0x59, 0xCC, 0x80, 0xC9, 0x03, 0x59, 0xCC,\n\t0x81, 0xC9, 0x03, 0x59, 0xCC, 0x82, 0xC9, 0x03,\n\t// Bytes 3240 - 327f\n\t0x59, 0xCC, 0x83, 0xC9, 0x03, 0x59, 0xCC, 0x84,\n\t0xC9, 0x03, 0x59, 0xCC, 0x87, 0xC9, 0x03, 0x59,\n\t0xCC, 0x88, 0xC9, 0x03, 0x59, 0xCC, 0x89, 0xC9,\n\t0x03, 0x59, 0xCC, 0xA3, 0xB5, 0x03, 0x5A, 0xCC,\n\t0x81, 0xC9, 0x03, 0x5A, 0xCC, 0x82, 0xC9, 0x03,\n\t0x5A, 0xCC, 0x87, 0xC9, 0x03, 0x5A, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x5A, 0xCC, 0xA3, 0xB5, 0x03, 0x5A,\n\t0xCC, 0xB1, 0xB5, 0x03, 0x61, 0xCC, 0x80, 0xC9,\n\t// Bytes 3280 - 32bf\n\t0x03, 0x61, 0xCC, 0x81, 0xC9, 0x03, 0x61, 0xCC,\n\t0x83, 0xC9, 0x03, 0x61, 0xCC, 0x84, 0xC9, 0x03,\n\t0x61, 0xCC, 0x89, 0xC9, 0x03, 0x61, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x61, 0xCC, 0x8F, 0xC9, 0x03, 0x61,\n\t0xCC, 0x91, 0xC9, 0x03, 0x61, 0xCC, 0xA5, 0xB5,\n\t0x03, 0x61, 0xCC, 0xA8, 0xA5, 0x03, 0x62, 0xCC,\n\t0x87, 0xC9, 0x03, 0x62, 0xCC, 0xA3, 0xB5, 0x03,\n\t0x62, 0xCC, 0xB1, 0xB5, 0x03, 0x63, 0xCC, 0x81,\n\t// Bytes 32c0 - 32ff\n\t0xC9, 0x03, 0x63, 0xCC, 0x82, 0xC9, 0x03, 0x63,\n\t0xCC, 0x87, 0xC9, 0x03, 0x63, 0xCC, 0x8C, 0xC9,\n\t0x03, 0x64, 0xCC, 0x87, 0xC9, 0x03, 0x64, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x64, 0xCC, 0xA3, 0xB5, 0x03,\n\t0x64, 0xCC, 0xA7, 0xA5, 0x03, 0x64, 0xCC, 0xAD,\n\t0xB5, 0x03, 0x64, 0xCC, 0xB1, 0xB5, 0x03, 0x65,\n\t0xCC, 0x80, 0xC9, 0x03, 0x65, 0xCC, 0x81, 0xC9,\n\t0x03, 0x65, 0xCC, 0x83, 0xC9, 0x03, 0x65, 0xCC,\n\t// Bytes 3300 - 333f\n\t0x86, 0xC9, 0x03, 0x65, 0xCC, 0x87, 0xC9, 0x03,\n\t0x65, 0xCC, 0x88, 0xC9, 0x03, 0x65, 0xCC, 0x89,\n\t0xC9, 0x03, 0x65, 0xCC, 0x8C, 0xC9, 0x03, 0x65,\n\t0xCC, 0x8F, 0xC9, 0x03, 0x65, 0xCC, 0x91, 0xC9,\n\t0x03, 0x65, 0xCC, 0xA8, 0xA5, 0x03, 0x65, 0xCC,\n\t0xAD, 0xB5, 0x03, 0x65, 0xCC, 0xB0, 0xB5, 0x03,\n\t0x66, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC, 0x81,\n\t0xC9, 0x03, 0x67, 0xCC, 0x82, 0xC9, 0x03, 0x67,\n\t// Bytes 3340 - 337f\n\t0xCC, 0x84, 0xC9, 0x03, 0x67, 0xCC, 0x86, 0xC9,\n\t0x03, 0x67, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x67, 0xCC, 0xA7, 0xA5, 0x03,\n\t0x68, 0xCC, 0x82, 0xC9, 0x03, 0x68, 0xCC, 0x87,\n\t0xC9, 0x03, 0x68, 0xCC, 0x88, 0xC9, 0x03, 0x68,\n\t0xCC, 0x8C, 0xC9, 0x03, 0x68, 0xCC, 0xA3, 0xB5,\n\t0x03, 0x68, 0xCC, 0xA7, 0xA5, 0x03, 0x68, 0xCC,\n\t0xAE, 0xB5, 0x03, 0x68, 0xCC, 0xB1, 0xB5, 0x03,\n\t// Bytes 3380 - 33bf\n\t0x69, 0xCC, 0x80, 0xC9, 0x03, 0x69, 0xCC, 0x81,\n\t0xC9, 0x03, 0x69, 0xCC, 0x82, 0xC9, 0x03, 0x69,\n\t0xCC, 0x83, 0xC9, 0x03, 0x69, 0xCC, 0x84, 0xC9,\n\t0x03, 0x69, 0xCC, 0x86, 0xC9, 0x03, 0x69, 0xCC,\n\t0x89, 0xC9, 0x03, 0x69, 0xCC, 0x8C, 0xC9, 0x03,\n\t0x69, 0xCC, 0x8F, 0xC9, 0x03, 0x69, 0xCC, 0x91,\n\t0xC9, 0x03, 0x69, 0xCC, 0xA3, 0xB5, 0x03, 0x69,\n\t0xCC, 0xA8, 0xA5, 0x03, 0x69, 0xCC, 0xB0, 0xB5,\n\t// Bytes 33c0 - 33ff\n\t0x03, 0x6A, 0xCC, 0x82, 0xC9, 0x03, 0x6A, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0x81, 0xC9, 0x03,\n\t0x6B, 0xCC, 0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0xA3,\n\t0xB5, 0x03, 0x6B, 0xCC, 0xA7, 0xA5, 0x03, 0x6B,\n\t0xCC, 0xB1, 0xB5, 0x03, 0x6C, 0xCC, 0x81, 0xC9,\n\t0x03, 0x6C, 0xCC, 0x8C, 0xC9, 0x03, 0x6C, 0xCC,\n\t0xA7, 0xA5, 0x03, 0x6C, 0xCC, 0xAD, 0xB5, 0x03,\n\t0x6C, 0xCC, 0xB1, 0xB5, 0x03, 0x6D, 0xCC, 0x81,\n\t// Bytes 3400 - 343f\n\t0xC9, 0x03, 0x6D, 0xCC, 0x87, 0xC9, 0x03, 0x6D,\n\t0xCC, 0xA3, 0xB5, 0x03, 0x6E, 0xCC, 0x80, 0xC9,\n\t0x03, 0x6E, 0xCC, 0x81, 0xC9, 0x03, 0x6E, 0xCC,\n\t0x83, 0xC9, 0x03, 0x6E, 0xCC, 0x87, 0xC9, 0x03,\n\t0x6E, 0xCC, 0x8C, 0xC9, 0x03, 0x6E, 0xCC, 0xA3,\n\t0xB5, 0x03, 0x6E, 0xCC, 0xA7, 0xA5, 0x03, 0x6E,\n\t0xCC, 0xAD, 0xB5, 0x03, 0x6E, 0xCC, 0xB1, 0xB5,\n\t0x03, 0x6F, 0xCC, 0x80, 0xC9, 0x03, 0x6F, 0xCC,\n\t// Bytes 3440 - 347f\n\t0x81, 0xC9, 0x03, 0x6F, 0xCC, 0x86, 0xC9, 0x03,\n\t0x6F, 0xCC, 0x89, 0xC9, 0x03, 0x6F, 0xCC, 0x8B,\n\t0xC9, 0x03, 0x6F, 0xCC, 0x8C, 0xC9, 0x03, 0x6F,\n\t0xCC, 0x8F, 0xC9, 0x03, 0x6F, 0xCC, 0x91, 0xC9,\n\t0x03, 0x70, 0xCC, 0x81, 0xC9, 0x03, 0x70, 0xCC,\n\t0x87, 0xC9, 0x03, 0x72, 0xCC, 0x81, 0xC9, 0x03,\n\t0x72, 0xCC, 0x87, 0xC9, 0x03, 0x72, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x72, 0xCC, 0x8F, 0xC9, 0x03, 0x72,\n\t// Bytes 3480 - 34bf\n\t0xCC, 0x91, 0xC9, 0x03, 0x72, 0xCC, 0xA7, 0xA5,\n\t0x03, 0x72, 0xCC, 0xB1, 0xB5, 0x03, 0x73, 0xCC,\n\t0x82, 0xC9, 0x03, 0x73, 0xCC, 0x87, 0xC9, 0x03,\n\t0x73, 0xCC, 0xA6, 0xB5, 0x03, 0x73, 0xCC, 0xA7,\n\t0xA5, 0x03, 0x74, 0xCC, 0x87, 0xC9, 0x03, 0x74,\n\t0xCC, 0x88, 0xC9, 0x03, 0x74, 0xCC, 0x8C, 0xC9,\n\t0x03, 0x74, 0xCC, 0xA3, 0xB5, 0x03, 0x74, 0xCC,\n\t0xA6, 0xB5, 0x03, 0x74, 0xCC, 0xA7, 0xA5, 0x03,\n\t// Bytes 34c0 - 34ff\n\t0x74, 0xCC, 0xAD, 0xB5, 0x03, 0x74, 0xCC, 0xB1,\n\t0xB5, 0x03, 0x75, 0xCC, 0x80, 0xC9, 0x03, 0x75,\n\t0xCC, 0x81, 0xC9, 0x03, 0x75, 0xCC, 0x82, 0xC9,\n\t0x03, 0x75, 0xCC, 0x86, 0xC9, 0x03, 0x75, 0xCC,\n\t0x89, 0xC9, 0x03, 0x75, 0xCC, 0x8A, 0xC9, 0x03,\n\t0x75, 0xCC, 0x8B, 0xC9, 0x03, 0x75, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x75, 0xCC, 0x8F, 0xC9, 0x03, 0x75,\n\t0xCC, 0x91, 0xC9, 0x03, 0x75, 0xCC, 0xA3, 0xB5,\n\t// Bytes 3500 - 353f\n\t0x03, 0x75, 0xCC, 0xA4, 0xB5, 0x03, 0x75, 0xCC,\n\t0xA8, 0xA5, 0x03, 0x75, 0xCC, 0xAD, 0xB5, 0x03,\n\t0x75, 0xCC, 0xB0, 0xB5, 0x03, 0x76, 0xCC, 0x83,\n\t0xC9, 0x03, 0x76, 0xCC, 0xA3, 0xB5, 0x03, 0x77,\n\t0xCC, 0x80, 0xC9, 0x03, 0x77, 0xCC, 0x81, 0xC9,\n\t0x03, 0x77, 0xCC, 0x82, 0xC9, 0x03, 0x77, 0xCC,\n\t0x87, 0xC9, 0x03, 0x77, 0xCC, 0x88, 0xC9, 0x03,\n\t0x77, 0xCC, 0x8A, 0xC9, 0x03, 0x77, 0xCC, 0xA3,\n\t// Bytes 3540 - 357f\n\t0xB5, 0x03, 0x78, 0xCC, 0x87, 0xC9, 0x03, 0x78,\n\t0xCC, 0x88, 0xC9, 0x03, 0x79, 0xCC, 0x80, 0xC9,\n\t0x03, 0x79, 0xCC, 0x81, 0xC9, 0x03, 0x79, 0xCC,\n\t0x82, 0xC9, 0x03, 0x79, 0xCC, 0x83, 0xC9, 0x03,\n\t0x79, 0xCC, 0x84, 0xC9, 0x03, 0x79, 0xCC, 0x87,\n\t0xC9, 0x03, 0x79, 0xCC, 0x88, 0xC9, 0x03, 0x79,\n\t0xCC, 0x89, 0xC9, 0x03, 0x79, 0xCC, 0x8A, 0xC9,\n\t0x03, 0x79, 0xCC, 0xA3, 0xB5, 0x03, 0x7A, 0xCC,\n\t// Bytes 3580 - 35bf\n\t0x81, 0xC9, 0x03, 0x7A, 0xCC, 0x82, 0xC9, 0x03,\n\t0x7A, 0xCC, 0x87, 0xC9, 0x03, 0x7A, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x7A, 0xCC, 0xA3, 0xB5, 0x03, 0x7A,\n\t0xCC, 0xB1, 0xB5, 0x04, 0xC2, 0xA8, 0xCC, 0x80,\n\t0xCA, 0x04, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x04,\n\t0xC2, 0xA8, 0xCD, 0x82, 0xCA, 0x04, 0xC3, 0x86,\n\t0xCC, 0x81, 0xC9, 0x04, 0xC3, 0x86, 0xCC, 0x84,\n\t0xC9, 0x04, 0xC3, 0x98, 0xCC, 0x81, 0xC9, 0x04,\n\t// Bytes 35c0 - 35ff\n\t0xC3, 0xA6, 0xCC, 0x81, 0xC9, 0x04, 0xC3, 0xA6,\n\t0xCC, 0x84, 0xC9, 0x04, 0xC3, 0xB8, 0xCC, 0x81,\n\t0xC9, 0x04, 0xC5, 0xBF, 0xCC, 0x87, 0xC9, 0x04,\n\t0xC6, 0xB7, 0xCC, 0x8C, 0xC9, 0x04, 0xCA, 0x92,\n\t0xCC, 0x8C, 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x80,\n\t0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x81, 0xC9, 0x04,\n\t0xCE, 0x91, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0x91,\n\t0xCC, 0x86, 0xC9, 0x04, 0xCE, 0x91, 0xCD, 0x85,\n\t// Bytes 3600 - 363f\n\t0xD9, 0x04, 0xCE, 0x95, 0xCC, 0x80, 0xC9, 0x04,\n\t0xCE, 0x95, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x97,\n\t0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x97, 0xCC, 0x81,\n\t0xC9, 0x04, 0xCE, 0x97, 0xCD, 0x85, 0xD9, 0x04,\n\t0xCE, 0x99, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x99,\n\t0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x84,\n\t0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x86, 0xC9, 0x04,\n\t0xCE, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0x9F,\n\t// Bytes 3640 - 367f\n\t0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x9F, 0xCC, 0x81,\n\t0xC9, 0x04, 0xCE, 0xA1, 0xCC, 0x94, 0xC9, 0x04,\n\t0xCE, 0xA5, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA5,\n\t0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x84,\n\t0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x86, 0xC9, 0x04,\n\t0xCE, 0xA5, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0xA9,\n\t0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA9, 0xCC, 0x81,\n\t0xC9, 0x04, 0xCE, 0xA9, 0xCD, 0x85, 0xD9, 0x04,\n\t// Bytes 3680 - 36bf\n\t0xCE, 0xB1, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB1,\n\t0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB1, 0xCD, 0x85,\n\t0xD9, 0x04, 0xCE, 0xB5, 0xCC, 0x80, 0xC9, 0x04,\n\t0xCE, 0xB5, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xB7,\n\t0xCD, 0x85, 0xD9, 0x04, 0xCE, 0xB9, 0xCC, 0x80,\n\t0xC9, 0x04, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x04,\n\t0xCE, 0xB9, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB9,\n\t0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB9, 0xCD, 0x82,\n\t// Bytes 36c0 - 36ff\n\t0xC9, 0x04, 0xCE, 0xBF, 0xCC, 0x80, 0xC9, 0x04,\n\t0xCE, 0xBF, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x81,\n\t0xCC, 0x93, 0xC9, 0x04, 0xCF, 0x81, 0xCC, 0x94,\n\t0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x80, 0xC9, 0x04,\n\t0xCF, 0x85, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x85,\n\t0xCC, 0x84, 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x86,\n\t0xC9, 0x04, 0xCF, 0x85, 0xCD, 0x82, 0xC9, 0x04,\n\t0xCF, 0x89, 0xCD, 0x85, 0xD9, 0x04, 0xCF, 0x92,\n\t// Bytes 3700 - 373f\n\t0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x92, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD0, 0x86, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD0, 0x90, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x90,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x93, 0xCC, 0x81,\n\t0xC9, 0x04, 0xD0, 0x95, 0xCC, 0x80, 0xC9, 0x04,\n\t0xD0, 0x95, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x95,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x86,\n\t0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x88, 0xC9, 0x04,\n\t// Bytes 3740 - 377f\n\t0xD0, 0x97, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x98,\n\t0xCC, 0x80, 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x84,\n\t0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x86, 0xC9, 0x04,\n\t0xD0, 0x98, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x9A,\n\t0xCC, 0x81, 0xC9, 0x04, 0xD0, 0x9E, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x84, 0xC9, 0x04,\n\t0xD0, 0xA3, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xA3,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x8B,\n\t// Bytes 3780 - 37bf\n\t0xC9, 0x04, 0xD0, 0xA7, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD0, 0xAB, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xAD,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x86,\n\t0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD0, 0xB3, 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0xB5,\n\t0xCC, 0x80, 0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x86,\n\t0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD0, 0xB6, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB6,\n\t// Bytes 37c0 - 37ff\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB7, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x80, 0xC9, 0x04,\n\t0xD0, 0xB8, 0xCC, 0x84, 0xC9, 0x04, 0xD0, 0xB8,\n\t0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD0, 0xBA, 0xCC, 0x81, 0xC9, 0x04,\n\t0xD0, 0xBE, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x83,\n\t0xCC, 0x84, 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x86,\n\t0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x88, 0xC9, 0x04,\n\t// Bytes 3800 - 383f\n\t0xD1, 0x83, 0xCC, 0x8B, 0xC9, 0x04, 0xD1, 0x87,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x8B, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD1, 0x8D, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD1, 0x96, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0xB4,\n\t0xCC, 0x8F, 0xC9, 0x04, 0xD1, 0xB5, 0xCC, 0x8F,\n\t0xC9, 0x04, 0xD3, 0x98, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD3, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA8,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA9, 0xCC, 0x88,\n\t// Bytes 3840 - 387f\n\t0xC9, 0x04, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, 0x04,\n\t0xD8, 0xA7, 0xD9, 0x94, 0xC9, 0x04, 0xD8, 0xA7,\n\t0xD9, 0x95, 0xB5, 0x04, 0xD9, 0x88, 0xD9, 0x94,\n\t0xC9, 0x04, 0xD9, 0x8A, 0xD9, 0x94, 0xC9, 0x04,\n\t0xDB, 0x81, 0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x92,\n\t0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x95, 0xD9, 0x94,\n\t0xC9, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x80, 0xCA,\n\t0x05, 0x41, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05,\n\t// Bytes 3880 - 38bf\n\t0x41, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x41,\n\t0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x41, 0xCC,\n\t0x86, 0xCC, 0x80, 0xCA, 0x05, 0x41, 0xCC, 0x86,\n\t0xCC, 0x81, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC,\n\t0x83, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC, 0x89,\n\t0xCA, 0x05, 0x41, 0xCC, 0x87, 0xCC, 0x84, 0xCA,\n\t0x05, 0x41, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05,\n\t0x41, 0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x41,\n\t// Bytes 38c0 - 38ff\n\t0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x41, 0xCC,\n\t0xA3, 0xCC, 0x86, 0xCA, 0x05, 0x43, 0xCC, 0xA7,\n\t0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC,\n\t0x80, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x81,\n\t0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x83, 0xCA,\n\t0x05, 0x45, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05,\n\t0x45, 0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x45,\n\t0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC,\n\t// Bytes 3900 - 393f\n\t0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x45, 0xCC, 0xA7,\n\t0xCC, 0x86, 0xCA, 0x05, 0x49, 0xCC, 0x88, 0xCC,\n\t0x81, 0xCA, 0x05, 0x4C, 0xCC, 0xA3, 0xCC, 0x84,\n\t0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x80, 0xCA,\n\t0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05,\n\t0x4F, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x4F,\n\t0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x4F, 0xCC,\n\t0x83, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x83,\n\t// Bytes 3940 - 397f\n\t0xCC, 0x84, 0xCA, 0x05, 0x4F, 0xCC, 0x83, 0xCC,\n\t0x88, 0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x80,\n\t0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x81, 0xCA,\n\t0x05, 0x4F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05,\n\t0x4F, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x4F,\n\t0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x4F, 0xCC,\n\t0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x9B,\n\t0xCC, 0x83, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC,\n\t// Bytes 3980 - 39bf\n\t0x89, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0xA3,\n\t0xB6, 0x05, 0x4F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA,\n\t0x05, 0x4F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05,\n\t0x52, 0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x53,\n\t0xCC, 0x81, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC,\n\t0x8C, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC, 0xA3,\n\t0xCC, 0x87, 0xCA, 0x05, 0x55, 0xCC, 0x83, 0xCC,\n\t0x81, 0xCA, 0x05, 0x55, 0xCC, 0x84, 0xCC, 0x88,\n\t// Bytes 39c0 - 39ff\n\t0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x80, 0xCA,\n\t0x05, 0x55, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05,\n\t0x55, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x55,\n\t0xCC, 0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x55, 0xCC,\n\t0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x55, 0xCC, 0x9B,\n\t0xCC, 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC,\n\t0x83, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x89,\n\t0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6,\n\t// Bytes 3a00 - 3a3f\n\t0x05, 0x61, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05,\n\t0x61, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x61,\n\t0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x61, 0xCC,\n\t0x82, 0xCC, 0x89, 0xCA, 0x05, 0x61, 0xCC, 0x86,\n\t0xCC, 0x80, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC,\n\t0x81, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x83,\n\t0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x89, 0xCA,\n\t0x05, 0x61, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05,\n\t// Bytes 3a40 - 3a7f\n\t0x61, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x61,\n\t0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x61, 0xCC,\n\t0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x61, 0xCC, 0xA3,\n\t0xCC, 0x86, 0xCA, 0x05, 0x63, 0xCC, 0xA7, 0xCC,\n\t0x81, 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x80,\n\t0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x81, 0xCA,\n\t0x05, 0x65, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05,\n\t0x65, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x65,\n\t// Bytes 3a80 - 3abf\n\t0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x65, 0xCC,\n\t0x84, 0xCC, 0x81, 0xCA, 0x05, 0x65, 0xCC, 0xA3,\n\t0xCC, 0x82, 0xCA, 0x05, 0x65, 0xCC, 0xA7, 0xCC,\n\t0x86, 0xCA, 0x05, 0x69, 0xCC, 0x88, 0xCC, 0x81,\n\t0xCA, 0x05, 0x6C, 0xCC, 0xA3, 0xCC, 0x84, 0xCA,\n\t0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05,\n\t0x6F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x6F,\n\t0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x6F, 0xCC,\n\t// Bytes 3ac0 - 3aff\n\t0x82, 0xCC, 0x89, 0xCA, 0x05, 0x6F, 0xCC, 0x83,\n\t0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC,\n\t0x84, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC, 0x88,\n\t0xCA, 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x80, 0xCA,\n\t0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05,\n\t0x6F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, 0x6F,\n\t0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x6F, 0xCC,\n\t0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x6F, 0xCC, 0x9B,\n\t// Bytes 3b00 - 3b3f\n\t0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC,\n\t0x83, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x89,\n\t0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6,\n\t0x05, 0x6F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05,\n\t0x6F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05, 0x72,\n\t0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x73, 0xCC,\n\t0x81, 0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0x8C,\n\t0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0xA3, 0xCC,\n\t// Bytes 3b40 - 3b7f\n\t0x87, 0xCA, 0x05, 0x75, 0xCC, 0x83, 0xCC, 0x81,\n\t0xCA, 0x05, 0x75, 0xCC, 0x84, 0xCC, 0x88, 0xCA,\n\t0x05, 0x75, 0xCC, 0x88, 0xCC, 0x80, 0xCA, 0x05,\n\t0x75, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, 0x75,\n\t0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x75, 0xCC,\n\t0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x75, 0xCC, 0x9B,\n\t0xCC, 0x80, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC,\n\t0x81, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x83,\n\t// Bytes 3b80 - 3bbf\n\t0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x89, 0xCA,\n\t0x05, 0x75, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, 0x05,\n\t0xE1, 0xBE, 0xBF, 0xCC, 0x80, 0xCA, 0x05, 0xE1,\n\t0xBE, 0xBF, 0xCC, 0x81, 0xCA, 0x05, 0xE1, 0xBE,\n\t0xBF, 0xCD, 0x82, 0xCA, 0x05, 0xE1, 0xBF, 0xBE,\n\t0xCC, 0x80, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCC,\n\t0x81, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCD, 0x82,\n\t0xCA, 0x05, 0xE2, 0x86, 0x90, 0xCC, 0xB8, 0x05,\n\t// Bytes 3bc0 - 3bff\n\t0x05, 0xE2, 0x86, 0x92, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x86, 0x94, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x87, 0x90, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87,\n\t0x92, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, 0x94,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x83, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x88, 0x88, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x88, 0x8B, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x88, 0xA3, 0xCC, 0xB8, 0x05, 0x05,\n\t// Bytes 3c00 - 3c3f\n\t0xE2, 0x88, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x88, 0xBC, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89,\n\t0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x85,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x88, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x89, 0x8D, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x89, 0xA1, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x89, 0xA4, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x89, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t// Bytes 3c40 - 3c7f\n\t0x89, 0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89,\n\t0xB3, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB6,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB7, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBA, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x89, 0xBB, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x89, 0xBC, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x89, 0xBD, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x8A, 0x82, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,\n\t// Bytes 3c80 - 3cbf\n\t0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x86,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x87, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x91, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x8A, 0x92, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x8A, 0xA2, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x8A, 0xA8, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x8A, 0xA9, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,\n\t0xAB, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB2,\n\t// Bytes 3cc0 - 3cff\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB3, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB4, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x8A, 0xB5, 0xCC, 0xB8, 0x05,\n\t0x06, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t// Bytes 3d00 - 3d3f\n\t0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t// Bytes 3d40 - 3d7f\n\t0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x82, 0xCA,\n\t// Bytes 3d80 - 3dbf\n\t0x06, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCC, 0x81, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t// Bytes 3dc0 - 3dff\n\t0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x85, 0xDA,\n\t// Bytes 3e00 - 3e3f\n\t0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t// Bytes 3e40 - 3e7f\n\t0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCD, 0x82, 0xCA,\n\t// Bytes 3e80 - 3ebf\n\t0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x85, 0xDA,\n\t// Bytes 3ec0 - 3eff\n\t0x06, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x85, 0xDA,\n\t0x06, 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBC, 0x09,\n\t0x06, 0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBC, 0x09,\n\t0x06, 0xE0, 0xA4, 0xB3, 0xE0, 0xA4, 0xBC, 0x09,\n\t0x06, 0xE0, 0xB1, 0x86, 0xE0, 0xB1, 0x96, 0x85,\n\t0x06, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8A, 0x11,\n\t// Bytes 3f00 - 3f3f\n\t0x06, 0xE3, 0x81, 0x86, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x8B, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x8D, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x8F, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x91, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x93, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x95, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x97, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 3f40 - 3f7f\n\t0x06, 0xE3, 0x81, 0x99, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x9B, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x9D, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x9F, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xA1, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xA4, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xA6, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xA8, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 3f80 - 3fbf\n\t0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x9A, 0x0D,\n\t// Bytes 3fc0 - 3fff\n\t0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x82, 0x9D, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 4000 - 403f\n\t0x06, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xB5, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xBD, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x81, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 4040 - 407f\n\t0x06, 0xE3, 0x83, 0x84, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 4080 - 40bf\n\t0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0xAF, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0xB0, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0xB1, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 40c0 - 40ff\n\t0x06, 0xE3, 0x83, 0xB2, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0xBD, 0xE3, 0x82, 0x99, 0x0D,\n\t0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC,\n\t0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC,\n\t0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCD,\n\t// Bytes 4100 - 413f\n\t0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCD,\n\t0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC,\n\t0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x94, 0xCC,\n\t0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC,\n\t0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t// Bytes 4140 - 417f\n\t0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC,\n\t0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC,\n\t0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCD,\n\t// Bytes 4180 - 41bf\n\t0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC,\n\t0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x94, 0xCC,\n\t0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC,\n\t0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB,\n\t// Bytes 41c0 - 41ff\n\t0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC,\n\t0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC,\n\t0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCD,\n\t0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC,\n\t// Bytes 4200 - 423f\n\t0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF,\n\t0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x94, 0xCC,\n\t0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC,\n\t0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCF,\n\t0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB,\n\t0x08, 0xF0, 0x91, 0x82, 0x99, 0xF0, 0x91, 0x82,\n\t// Bytes 4240 - 427f\n\t0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82, 0x9B, 0xF0,\n\t0x91, 0x82, 0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82,\n\t0xA5, 0xF0, 0x91, 0x82, 0xBA, 0x09, 0x42, 0xC2,\n\t0xB4, 0x01, 0x43, 0x20, 0xCC, 0x81, 0xC9, 0x43,\n\t0x20, 0xCC, 0x83, 0xC9, 0x43, 0x20, 0xCC, 0x84,\n\t0xC9, 0x43, 0x20, 0xCC, 0x85, 0xC9, 0x43, 0x20,\n\t0xCC, 0x86, 0xC9, 0x43, 0x20, 0xCC, 0x87, 0xC9,\n\t0x43, 0x20, 0xCC, 0x88, 0xC9, 0x43, 0x20, 0xCC,\n\t// Bytes 4280 - 42bf\n\t0x8A, 0xC9, 0x43, 0x20, 0xCC, 0x8B, 0xC9, 0x43,\n\t0x20, 0xCC, 0x93, 0xC9, 0x43, 0x20, 0xCC, 0x94,\n\t0xC9, 0x43, 0x20, 0xCC, 0xA7, 0xA5, 0x43, 0x20,\n\t0xCC, 0xA8, 0xA5, 0x43, 0x20, 0xCC, 0xB3, 0xB5,\n\t0x43, 0x20, 0xCD, 0x82, 0xC9, 0x43, 0x20, 0xCD,\n\t0x85, 0xD9, 0x43, 0x20, 0xD9, 0x8B, 0x59, 0x43,\n\t0x20, 0xD9, 0x8C, 0x5D, 0x43, 0x20, 0xD9, 0x8D,\n\t0x61, 0x43, 0x20, 0xD9, 0x8E, 0x65, 0x43, 0x20,\n\t// Bytes 42c0 - 42ff\n\t0xD9, 0x8F, 0x69, 0x43, 0x20, 0xD9, 0x90, 0x6D,\n\t0x43, 0x20, 0xD9, 0x91, 0x71, 0x43, 0x20, 0xD9,\n\t0x92, 0x75, 0x43, 0x41, 0xCC, 0x8A, 0xC9, 0x43,\n\t0x73, 0xCC, 0x87, 0xC9, 0x44, 0x20, 0xE3, 0x82,\n\t0x99, 0x0D, 0x44, 0x20, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x44, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x44, 0xCE,\n\t0x91, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x95, 0xCC,\n\t0x81, 0xC9, 0x44, 0xCE, 0x97, 0xCC, 0x81, 0xC9,\n\t// Bytes 4300 - 433f\n\t0x44, 0xCE, 0x99, 0xCC, 0x81, 0xC9, 0x44, 0xCE,\n\t0x9F, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC,\n\t0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC, 0x88, 0xC9,\n\t0x44, 0xCE, 0xA9, 0xCC, 0x81, 0xC9, 0x44, 0xCE,\n\t0xB1, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xB5, 0xCC,\n\t0x81, 0xC9, 0x44, 0xCE, 0xB7, 0xCC, 0x81, 0xC9,\n\t0x44, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x44, 0xCE,\n\t0xBF, 0xCC, 0x81, 0xC9, 0x44, 0xCF, 0x85, 0xCC,\n\t// Bytes 4340 - 437f\n\t0x81, 0xC9, 0x44, 0xCF, 0x89, 0xCC, 0x81, 0xC9,\n\t0x44, 0xD7, 0x90, 0xD6, 0xB7, 0x31, 0x44, 0xD7,\n\t0x90, 0xD6, 0xB8, 0x35, 0x44, 0xD7, 0x90, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0x91, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0x91, 0xD6, 0xBF, 0x49, 0x44, 0xD7,\n\t0x92, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x93, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0x94, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0x95, 0xD6, 0xB9, 0x39, 0x44, 0xD7,\n\t// Bytes 4380 - 43bf\n\t0x95, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x96, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0x98, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0x99, 0xD6, 0xB4, 0x25, 0x44, 0xD7,\n\t0x99, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9A, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0x9B, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0x9B, 0xD6, 0xBF, 0x49, 0x44, 0xD7,\n\t0x9C, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9E, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0xA0, 0xD6, 0xBC, 0x41,\n\t// Bytes 43c0 - 43ff\n\t0x44, 0xD7, 0xA1, 0xD6, 0xBC, 0x41, 0x44, 0xD7,\n\t0xA3, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6, 0xBF, 0x49,\n\t0x44, 0xD7, 0xA6, 0xD6, 0xBC, 0x41, 0x44, 0xD7,\n\t0xA7, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA8, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0xA9, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0xA9, 0xD7, 0x81, 0x4D, 0x44, 0xD7,\n\t0xA9, 0xD7, 0x82, 0x51, 0x44, 0xD7, 0xAA, 0xD6,\n\t// Bytes 4400 - 443f\n\t0xBC, 0x41, 0x44, 0xD7, 0xB2, 0xD6, 0xB7, 0x31,\n\t0x44, 0xD8, 0xA7, 0xD9, 0x8B, 0x59, 0x44, 0xD8,\n\t0xA7, 0xD9, 0x93, 0xC9, 0x44, 0xD8, 0xA7, 0xD9,\n\t0x94, 0xC9, 0x44, 0xD8, 0xA7, 0xD9, 0x95, 0xB5,\n\t0x44, 0xD8, 0xB0, 0xD9, 0xB0, 0x79, 0x44, 0xD8,\n\t0xB1, 0xD9, 0xB0, 0x79, 0x44, 0xD9, 0x80, 0xD9,\n\t0x8B, 0x59, 0x44, 0xD9, 0x80, 0xD9, 0x8E, 0x65,\n\t0x44, 0xD9, 0x80, 0xD9, 0x8F, 0x69, 0x44, 0xD9,\n\t// Bytes 4440 - 447f\n\t0x80, 0xD9, 0x90, 0x6D, 0x44, 0xD9, 0x80, 0xD9,\n\t0x91, 0x71, 0x44, 0xD9, 0x80, 0xD9, 0x92, 0x75,\n\t0x44, 0xD9, 0x87, 0xD9, 0xB0, 0x79, 0x44, 0xD9,\n\t0x88, 0xD9, 0x94, 0xC9, 0x44, 0xD9, 0x89, 0xD9,\n\t0xB0, 0x79, 0x44, 0xD9, 0x8A, 0xD9, 0x94, 0xC9,\n\t0x44, 0xDB, 0x92, 0xD9, 0x94, 0xC9, 0x44, 0xDB,\n\t0x95, 0xD9, 0x94, 0xC9, 0x45, 0x20, 0xCC, 0x88,\n\t0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCC,\n\t// Bytes 4480 - 44bf\n\t0x81, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCD, 0x82,\n\t0xCA, 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x45, 0x20, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x45,\n\t0x20, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x45, 0x20,\n\t0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC,\n\t0x94, 0xCC, 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x94,\n\t0xCD, 0x82, 0xCA, 0x45, 0x20, 0xD9, 0x8C, 0xD9,\n\t0x91, 0x72, 0x45, 0x20, 0xD9, 0x8D, 0xD9, 0x91,\n\t// Bytes 44c0 - 44ff\n\t0x72, 0x45, 0x20, 0xD9, 0x8E, 0xD9, 0x91, 0x72,\n\t0x45, 0x20, 0xD9, 0x8F, 0xD9, 0x91, 0x72, 0x45,\n\t0x20, 0xD9, 0x90, 0xD9, 0x91, 0x72, 0x45, 0x20,\n\t0xD9, 0x91, 0xD9, 0xB0, 0x7A, 0x45, 0xE2, 0xAB,\n\t0x9D, 0xCC, 0xB8, 0x05, 0x46, 0xCE, 0xB9, 0xCC,\n\t0x88, 0xCC, 0x81, 0xCA, 0x46, 0xCF, 0x85, 0xCC,\n\t0x88, 0xCC, 0x81, 0xCA, 0x46, 0xD7, 0xA9, 0xD6,\n\t0xBC, 0xD7, 0x81, 0x4E, 0x46, 0xD7, 0xA9, 0xD6,\n\t// Bytes 4500 - 453f\n\t0xBC, 0xD7, 0x82, 0x52, 0x46, 0xD9, 0x80, 0xD9,\n\t0x8E, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9,\n\t0x8F, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9,\n\t0x90, 0xD9, 0x91, 0x72, 0x46, 0xE0, 0xA4, 0x95,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x96,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x97,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x9C,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA1,\n\t// Bytes 4540 - 457f\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA2,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAB,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAF,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA1,\n\t0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA2,\n\t0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xAF,\n\t0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x96,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x97,\n\t// Bytes 4580 - 45bf\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x9C,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xAB,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB2,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB8,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA1,\n\t0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA2,\n\t0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xBE, 0xB2,\n\t0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE0, 0xBE, 0xB3,\n\t// Bytes 45c0 - 45ff\n\t0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE3, 0x83, 0x86,\n\t0xE3, 0x82, 0x99, 0x0D, 0x48, 0xF0, 0x9D, 0x85,\n\t0x97, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, 0x48, 0xF0,\n\t0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xAD,\n\t0x48, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85,\n\t0xA5, 0xAD, 0x48, 0xF0, 0x9D, 0x86, 0xBA, 0xF0,\n\t0x9D, 0x85, 0xA5, 0xAD, 0x49, 0xE0, 0xBE, 0xB2,\n\t0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x49,\n\t// Bytes 4600 - 463f\n\t0xE0, 0xBE, 0xB3, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE,\n\t0x80, 0x9E, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0,\n\t0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE,\n\t0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85,\n\t0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0,\n\t0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0,\n\t0x9D, 0x85, 0xB0, 0xAE, 0x4C, 0xF0, 0x9D, 0x85,\n\t0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85,\n\t// Bytes 4640 - 467f\n\t0xB1, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0,\n\t0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB2, 0xAE,\n\t0x4C, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85,\n\t0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE, 0x4C, 0xF0,\n\t0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xF0,\n\t0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0, 0x9D, 0x86,\n\t0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85,\n\t0xAE, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xBA, 0xF0,\n\t// Bytes 4680 - 46bf\n\t0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE,\n\t0x83, 0x41, 0xCC, 0x82, 0xC9, 0x83, 0x41, 0xCC,\n\t0x86, 0xC9, 0x83, 0x41, 0xCC, 0x87, 0xC9, 0x83,\n\t0x41, 0xCC, 0x88, 0xC9, 0x83, 0x41, 0xCC, 0x8A,\n\t0xC9, 0x83, 0x41, 0xCC, 0xA3, 0xB5, 0x83, 0x43,\n\t0xCC, 0xA7, 0xA5, 0x83, 0x45, 0xCC, 0x82, 0xC9,\n\t0x83, 0x45, 0xCC, 0x84, 0xC9, 0x83, 0x45, 0xCC,\n\t0xA3, 0xB5, 0x83, 0x45, 0xCC, 0xA7, 0xA5, 0x83,\n\t// Bytes 46c0 - 46ff\n\t0x49, 0xCC, 0x88, 0xC9, 0x83, 0x4C, 0xCC, 0xA3,\n\t0xB5, 0x83, 0x4F, 0xCC, 0x82, 0xC9, 0x83, 0x4F,\n\t0xCC, 0x83, 0xC9, 0x83, 0x4F, 0xCC, 0x84, 0xC9,\n\t0x83, 0x4F, 0xCC, 0x87, 0xC9, 0x83, 0x4F, 0xCC,\n\t0x88, 0xC9, 0x83, 0x4F, 0xCC, 0x9B, 0xAD, 0x83,\n\t0x4F, 0xCC, 0xA3, 0xB5, 0x83, 0x4F, 0xCC, 0xA8,\n\t0xA5, 0x83, 0x52, 0xCC, 0xA3, 0xB5, 0x83, 0x53,\n\t0xCC, 0x81, 0xC9, 0x83, 0x53, 0xCC, 0x8C, 0xC9,\n\t// Bytes 4700 - 473f\n\t0x83, 0x53, 0xCC, 0xA3, 0xB5, 0x83, 0x55, 0xCC,\n\t0x83, 0xC9, 0x83, 0x55, 0xCC, 0x84, 0xC9, 0x83,\n\t0x55, 0xCC, 0x88, 0xC9, 0x83, 0x55, 0xCC, 0x9B,\n\t0xAD, 0x83, 0x61, 0xCC, 0x82, 0xC9, 0x83, 0x61,\n\t0xCC, 0x86, 0xC9, 0x83, 0x61, 0xCC, 0x87, 0xC9,\n\t0x83, 0x61, 0xCC, 0x88, 0xC9, 0x83, 0x61, 0xCC,\n\t0x8A, 0xC9, 0x83, 0x61, 0xCC, 0xA3, 0xB5, 0x83,\n\t0x63, 0xCC, 0xA7, 0xA5, 0x83, 0x65, 0xCC, 0x82,\n\t// Bytes 4740 - 477f\n\t0xC9, 0x83, 0x65, 0xCC, 0x84, 0xC9, 0x83, 0x65,\n\t0xCC, 0xA3, 0xB5, 0x83, 0x65, 0xCC, 0xA7, 0xA5,\n\t0x83, 0x69, 0xCC, 0x88, 0xC9, 0x83, 0x6C, 0xCC,\n\t0xA3, 0xB5, 0x83, 0x6F, 0xCC, 0x82, 0xC9, 0x83,\n\t0x6F, 0xCC, 0x83, 0xC9, 0x83, 0x6F, 0xCC, 0x84,\n\t0xC9, 0x83, 0x6F, 0xCC, 0x87, 0xC9, 0x83, 0x6F,\n\t0xCC, 0x88, 0xC9, 0x83, 0x6F, 0xCC, 0x9B, 0xAD,\n\t0x83, 0x6F, 0xCC, 0xA3, 0xB5, 0x83, 0x6F, 0xCC,\n\t// Bytes 4780 - 47bf\n\t0xA8, 0xA5, 0x83, 0x72, 0xCC, 0xA3, 0xB5, 0x83,\n\t0x73, 0xCC, 0x81, 0xC9, 0x83, 0x73, 0xCC, 0x8C,\n\t0xC9, 0x83, 0x73, 0xCC, 0xA3, 0xB5, 0x83, 0x75,\n\t0xCC, 0x83, 0xC9, 0x83, 0x75, 0xCC, 0x84, 0xC9,\n\t0x83, 0x75, 0xCC, 0x88, 0xC9, 0x83, 0x75, 0xCC,\n\t0x9B, 0xAD, 0x84, 0xCE, 0x91, 0xCC, 0x93, 0xC9,\n\t0x84, 0xCE, 0x91, 0xCC, 0x94, 0xC9, 0x84, 0xCE,\n\t0x95, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x95, 0xCC,\n\t// Bytes 47c0 - 47ff\n\t0x94, 0xC9, 0x84, 0xCE, 0x97, 0xCC, 0x93, 0xC9,\n\t0x84, 0xCE, 0x97, 0xCC, 0x94, 0xC9, 0x84, 0xCE,\n\t0x99, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x99, 0xCC,\n\t0x94, 0xC9, 0x84, 0xCE, 0x9F, 0xCC, 0x93, 0xC9,\n\t0x84, 0xCE, 0x9F, 0xCC, 0x94, 0xC9, 0x84, 0xCE,\n\t0xA5, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xA9, 0xCC,\n\t0x93, 0xC9, 0x84, 0xCE, 0xA9, 0xCC, 0x94, 0xC9,\n\t0x84, 0xCE, 0xB1, 0xCC, 0x80, 0xC9, 0x84, 0xCE,\n\t// Bytes 4800 - 483f\n\t0xB1, 0xCC, 0x81, 0xC9, 0x84, 0xCE, 0xB1, 0xCC,\n\t0x93, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, 0x94, 0xC9,\n\t0x84, 0xCE, 0xB1, 0xCD, 0x82, 0xC9, 0x84, 0xCE,\n\t0xB5, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB5, 0xCC,\n\t0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, 0x80, 0xC9,\n\t0x84, 0xCE, 0xB7, 0xCC, 0x81, 0xC9, 0x84, 0xCE,\n\t0xB7, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB7, 0xCC,\n\t0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCD, 0x82, 0xC9,\n\t// Bytes 4840 - 487f\n\t0x84, 0xCE, 0xB9, 0xCC, 0x88, 0xC9, 0x84, 0xCE,\n\t0xB9, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB9, 0xCC,\n\t0x94, 0xC9, 0x84, 0xCE, 0xBF, 0xCC, 0x93, 0xC9,\n\t0x84, 0xCE, 0xBF, 0xCC, 0x94, 0xC9, 0x84, 0xCF,\n\t0x85, 0xCC, 0x88, 0xC9, 0x84, 0xCF, 0x85, 0xCC,\n\t0x93, 0xC9, 0x84, 0xCF, 0x85, 0xCC, 0x94, 0xC9,\n\t0x84, 0xCF, 0x89, 0xCC, 0x80, 0xC9, 0x84, 0xCF,\n\t0x89, 0xCC, 0x81, 0xC9, 0x84, 0xCF, 0x89, 0xCC,\n\t// Bytes 4880 - 48bf\n\t0x93, 0xC9, 0x84, 0xCF, 0x89, 0xCC, 0x94, 0xC9,\n\t0x84, 0xCF, 0x89, 0xCD, 0x82, 0xC9, 0x86, 0xCE,\n\t0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t// Bytes 48c0 - 48ff\n\t0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t// Bytes 4900 - 493f\n\t0xA9, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t// Bytes 4940 - 497f\n\t0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCF,\n\t// Bytes 4980 - 49bf\n\t0x89, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x42, 0xCC,\n\t0x80, 0xC9, 0x32, 0x42, 0xCC, 0x81, 0xC9, 0x32,\n\t0x42, 0xCC, 0x93, 0xC9, 0x32, 0x43, 0xE1, 0x85,\n\t// Bytes 49c0 - 49ff\n\t0xA1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA2, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xA3, 0x01, 0x00, 0x43,\n\t0xE1, 0x85, 0xA4, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xA5, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA6, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xA7, 0x01, 0x00, 0x43,\n\t0xE1, 0x85, 0xA8, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xA9, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAA, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xAB, 0x01, 0x00, 0x43,\n\t// Bytes 4a00 - 4a3f\n\t0xE1, 0x85, 0xAC, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xAD, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAE, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xAF, 0x01, 0x00, 0x43,\n\t0xE1, 0x85, 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xB1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB2, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xB3, 0x01, 0x00, 0x43,\n\t0xE1, 0x85, 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xB5, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAA, 0x01,\n\t// Bytes 4a40 - 4a7f\n\t0x00, 0x43, 0xE1, 0x86, 0xAC, 0x01, 0x00, 0x43,\n\t0xE1, 0x86, 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x86,\n\t0xB0, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB1, 0x01,\n\t0x00, 0x43, 0xE1, 0x86, 0xB2, 0x01, 0x00, 0x43,\n\t0xE1, 0x86, 0xB3, 0x01, 0x00, 0x43, 0xE1, 0x86,\n\t0xB4, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB5, 0x01,\n\t0x00, 0x44, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x32,\n\t0x43, 0xE3, 0x82, 0x99, 0x0D, 0x03, 0x43, 0xE3,\n\t// Bytes 4a80 - 4abf\n\t0x82, 0x9A, 0x0D, 0x03, 0x46, 0xE0, 0xBD, 0xB1,\n\t0xE0, 0xBD, 0xB2, 0x9E, 0x26, 0x46, 0xE0, 0xBD,\n\t0xB1, 0xE0, 0xBD, 0xB4, 0xA2, 0x26, 0x46, 0xE0,\n\t0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x26, 0x00,\n\t0x01,\n}\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfcTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfcTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfcValues[c0]\n\t}\n\ti := nfcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfcTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfcTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfcValues[c0]\n\t}\n\ti := nfcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// nfcTrie. Total size: 10442 bytes (10.20 KiB). Checksum: 4ba400a9d8208e03.\ntype nfcTrie struct{}\n\nfunc newNfcTrie(i int) *nfcTrie {\n\treturn &nfcTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *nfcTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 45:\n\t\treturn uint16(nfcValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 45\n\t\treturn uint16(nfcSparse.lookup(n, b))\n\t}\n}\n\n// nfcValues: 47 blocks, 3008 entries, 6016 bytes\n// The third block is the zero block.\nvar nfcValues = [3008]uint16{\n\t// Block 0x0, offset 0x0\n\t0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000,\n\t// Block 0x1, offset 0x40\n\t0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000,\n\t0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000,\n\t0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000,\n\t0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000,\n\t0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000,\n\t0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000,\n\t0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000,\n\t0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000,\n\t0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000,\n\t0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c,\n\t0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb,\n\t0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104,\n\t0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd,\n\t0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235,\n\t0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285,\n\t0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3,\n\t0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750,\n\t0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f,\n\t0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3,\n\t0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569,\n\t// Block 0x4, offset 0x100\n\t0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8,\n\t0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6,\n\t0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5,\n\t0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302,\n\t0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339,\n\t0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352,\n\t0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e,\n\t0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6,\n\t0x130: 0x308c, 0x134: 0x30b4, 0x135: 0x33c0,\n\t0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc,\n\t0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8,\n\t// Block 0x5, offset 0x140\n\t0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118,\n\t0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f,\n\t0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c,\n\t0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483,\n\t0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d,\n\t0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba,\n\t0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796,\n\t0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2,\n\t0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528,\n\t0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267,\n\t0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0xa000,\n\t// Block 0x6, offset 0x180\n\t0x184: 0x8100, 0x185: 0x8100,\n\t0x186: 0x8100,\n\t0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140,\n\t0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8,\n\t0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50,\n\t0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5,\n\t0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf,\n\t0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd,\n\t0x1b0: 0x33c5, 0x1b4: 0x3028, 0x1b5: 0x3334,\n\t0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46,\n\t0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316,\n\t0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac,\n\t0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479,\n\t0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6,\n\t0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5,\n\t0x1de: 0x305a, 0x1df: 0x3366,\n\t0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b,\n\t0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769,\n\t0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132,\n\t0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932,\n\t0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932,\n\t0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d,\n\t0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d,\n\t0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d,\n\t0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d,\n\t0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d,\n\t0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101,\n\t0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d,\n\t0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936,\n\t0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132,\n\t0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132,\n\t0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132,\n\t0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135,\n\t0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132,\n\t0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132,\n\t0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132,\n\t0x274: 0x0170,\n\t0x27a: 0x8100,\n\t0x27e: 0x0037,\n\t// Block 0xa, offset 0x280\n\t0x284: 0x8100, 0x285: 0x35a1,\n\t0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625,\n\t0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000,\n\t0x295: 0xa000, 0x297: 0xa000,\n\t0x299: 0xa000,\n\t0x29f: 0xa000, 0x2a1: 0xa000,\n\t0x2a5: 0xa000, 0x2a9: 0xa000,\n\t0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9,\n\t0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000,\n\t0x2b7: 0xa000, 0x2b9: 0xa000,\n\t0x2bf: 0xa000,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x3721, 0x2c1: 0x372d, 0x2c3: 0x371b,\n\t0x2c6: 0xa000, 0x2c7: 0x3709,\n\t0x2cc: 0x375d, 0x2cd: 0x3745, 0x2ce: 0x376f, 0x2d0: 0xa000,\n\t0x2d3: 0xa000, 0x2d5: 0xa000, 0x2d6: 0xa000, 0x2d7: 0xa000,\n\t0x2d8: 0xa000, 0x2d9: 0x3751, 0x2da: 0xa000,\n\t0x2de: 0xa000, 0x2e3: 0xa000,\n\t0x2e7: 0xa000,\n\t0x2eb: 0xa000, 0x2ed: 0xa000,\n\t0x2f0: 0xa000, 0x2f3: 0xa000, 0x2f5: 0xa000,\n\t0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x37d5, 0x2fa: 0xa000,\n\t0x2fe: 0xa000,\n\t// Block 0xc, offset 0x300\n\t0x301: 0x3733, 0x302: 0x37b7,\n\t0x310: 0x370f, 0x311: 0x3793,\n\t0x312: 0x3715, 0x313: 0x3799, 0x316: 0x3727, 0x317: 0x37ab,\n\t0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x3829, 0x31b: 0x382f, 0x31c: 0x3739, 0x31d: 0x37bd,\n\t0x31e: 0x373f, 0x31f: 0x37c3, 0x322: 0x374b, 0x323: 0x37cf,\n\t0x324: 0x3757, 0x325: 0x37db, 0x326: 0x3763, 0x327: 0x37e7, 0x328: 0xa000, 0x329: 0xa000,\n\t0x32a: 0x3835, 0x32b: 0x383b, 0x32c: 0x378d, 0x32d: 0x3811, 0x32e: 0x3769, 0x32f: 0x37ed,\n\t0x330: 0x3775, 0x331: 0x37f9, 0x332: 0x377b, 0x333: 0x37ff, 0x334: 0x3781, 0x335: 0x3805,\n\t0x338: 0x3787, 0x339: 0x380b,\n\t// Block 0xd, offset 0x340\n\t0x351: 0x812d,\n\t0x352: 0x8132, 0x353: 0x8132, 0x354: 0x8132, 0x355: 0x8132, 0x356: 0x812d, 0x357: 0x8132,\n\t0x358: 0x8132, 0x359: 0x8132, 0x35a: 0x812e, 0x35b: 0x812d, 0x35c: 0x8132, 0x35d: 0x8132,\n\t0x35e: 0x8132, 0x35f: 0x8132, 0x360: 0x8132, 0x361: 0x8132, 0x362: 0x812d, 0x363: 0x812d,\n\t0x364: 0x812d, 0x365: 0x812d, 0x366: 0x812d, 0x367: 0x812d, 0x368: 0x8132, 0x369: 0x8132,\n\t0x36a: 0x812d, 0x36b: 0x8132, 0x36c: 0x8132, 0x36d: 0x812e, 0x36e: 0x8131, 0x36f: 0x8132,\n\t0x370: 0x8105, 0x371: 0x8106, 0x372: 0x8107, 0x373: 0x8108, 0x374: 0x8109, 0x375: 0x810a,\n\t0x376: 0x810b, 0x377: 0x810c, 0x378: 0x810d, 0x379: 0x810e, 0x37a: 0x810e, 0x37b: 0x810f,\n\t0x37c: 0x8110, 0x37d: 0x8111, 0x37f: 0x8112,\n\t// Block 0xe, offset 0x380\n\t0x388: 0xa000, 0x38a: 0xa000, 0x38b: 0x8116,\n\t0x38c: 0x8117, 0x38d: 0x8118, 0x38e: 0x8119, 0x38f: 0x811a, 0x390: 0x811b, 0x391: 0x811c,\n\t0x392: 0x811d, 0x393: 0x9932, 0x394: 0x9932, 0x395: 0x992d, 0x396: 0x812d, 0x397: 0x8132,\n\t0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x8132, 0x39b: 0x8132, 0x39c: 0x812d, 0x39d: 0x8132,\n\t0x39e: 0x8132, 0x39f: 0x812d,\n\t0x3b0: 0x811e,\n\t// Block 0xf, offset 0x3c0\n\t0x3c5: 0xa000,\n\t0x3c6: 0x2d26, 0x3c7: 0xa000, 0x3c8: 0x2d2e, 0x3c9: 0xa000, 0x3ca: 0x2d36, 0x3cb: 0xa000,\n\t0x3cc: 0x2d3e, 0x3cd: 0xa000, 0x3ce: 0x2d46, 0x3d1: 0xa000,\n\t0x3d2: 0x2d4e,\n\t0x3f4: 0x8102, 0x3f5: 0x9900,\n\t0x3fa: 0xa000, 0x3fb: 0x2d56,\n\t0x3fc: 0xa000, 0x3fd: 0x2d5e, 0x3fe: 0xa000, 0x3ff: 0xa000,\n\t// Block 0x10, offset 0x400\n\t0x400: 0x8132, 0x401: 0x8132, 0x402: 0x812d, 0x403: 0x8132, 0x404: 0x8132, 0x405: 0x8132,\n\t0x406: 0x8132, 0x407: 0x8132, 0x408: 0x8132, 0x409: 0x8132, 0x40a: 0x812d, 0x40b: 0x8132,\n\t0x40c: 0x8132, 0x40d: 0x8135, 0x40e: 0x812a, 0x40f: 0x812d, 0x410: 0x8129, 0x411: 0x8132,\n\t0x412: 0x8132, 0x413: 0x8132, 0x414: 0x8132, 0x415: 0x8132, 0x416: 0x8132, 0x417: 0x8132,\n\t0x418: 0x8132, 0x419: 0x8132, 0x41a: 0x8132, 0x41b: 0x8132, 0x41c: 0x8132, 0x41d: 0x8132,\n\t0x41e: 0x8132, 0x41f: 0x8132, 0x420: 0x8132, 0x421: 0x8132, 0x422: 0x8132, 0x423: 0x8132,\n\t0x424: 0x8132, 0x425: 0x8132, 0x426: 0x8132, 0x427: 0x8132, 0x428: 0x8132, 0x429: 0x8132,\n\t0x42a: 0x8132, 0x42b: 0x8132, 0x42c: 0x8132, 0x42d: 0x8132, 0x42e: 0x8132, 0x42f: 0x8132,\n\t0x430: 0x8132, 0x431: 0x8132, 0x432: 0x8132, 0x433: 0x8132, 0x434: 0x8132, 0x435: 0x8132,\n\t0x436: 0x8133, 0x437: 0x8131, 0x438: 0x8131, 0x439: 0x812d, 0x43b: 0x8132,\n\t0x43c: 0x8134, 0x43d: 0x812d, 0x43e: 0x8132, 0x43f: 0x812d,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x2f97, 0x441: 0x32a3, 0x442: 0x2fa1, 0x443: 0x32ad, 0x444: 0x2fa6, 0x445: 0x32b2,\n\t0x446: 0x2fab, 0x447: 0x32b7, 0x448: 0x38cc, 0x449: 0x3a5b, 0x44a: 0x2fc4, 0x44b: 0x32d0,\n\t0x44c: 0x2fce, 0x44d: 0x32da, 0x44e: 0x2fdd, 0x44f: 0x32e9, 0x450: 0x2fd3, 0x451: 0x32df,\n\t0x452: 0x2fd8, 0x453: 0x32e4, 0x454: 0x38ef, 0x455: 0x3a7e, 0x456: 0x38f6, 0x457: 0x3a85,\n\t0x458: 0x3019, 0x459: 0x3325, 0x45a: 0x301e, 0x45b: 0x332a, 0x45c: 0x3904, 0x45d: 0x3a93,\n\t0x45e: 0x3023, 0x45f: 0x332f, 0x460: 0x3032, 0x461: 0x333e, 0x462: 0x3050, 0x463: 0x335c,\n\t0x464: 0x305f, 0x465: 0x336b, 0x466: 0x3055, 0x467: 0x3361, 0x468: 0x3064, 0x469: 0x3370,\n\t0x46a: 0x3069, 0x46b: 0x3375, 0x46c: 0x30af, 0x46d: 0x33bb, 0x46e: 0x390b, 0x46f: 0x3a9a,\n\t0x470: 0x30b9, 0x471: 0x33ca, 0x472: 0x30c3, 0x473: 0x33d4, 0x474: 0x30cd, 0x475: 0x33de,\n\t0x476: 0x46c4, 0x477: 0x4755, 0x478: 0x3912, 0x479: 0x3aa1, 0x47a: 0x30e6, 0x47b: 0x33f7,\n\t0x47c: 0x30e1, 0x47d: 0x33f2, 0x47e: 0x30eb, 0x47f: 0x33fc,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x30f0, 0x481: 0x3401, 0x482: 0x30f5, 0x483: 0x3406, 0x484: 0x3109, 0x485: 0x341a,\n\t0x486: 0x3113, 0x487: 0x3424, 0x488: 0x3122, 0x489: 0x3433, 0x48a: 0x311d, 0x48b: 0x342e,\n\t0x48c: 0x3935, 0x48d: 0x3ac4, 0x48e: 0x3943, 0x48f: 0x3ad2, 0x490: 0x394a, 0x491: 0x3ad9,\n\t0x492: 0x3951, 0x493: 0x3ae0, 0x494: 0x314f, 0x495: 0x3460, 0x496: 0x3154, 0x497: 0x3465,\n\t0x498: 0x315e, 0x499: 0x346f, 0x49a: 0x46f1, 0x49b: 0x4782, 0x49c: 0x3997, 0x49d: 0x3b26,\n\t0x49e: 0x3177, 0x49f: 0x3488, 0x4a0: 0x3181, 0x4a1: 0x3492, 0x4a2: 0x4700, 0x4a3: 0x4791,\n\t0x4a4: 0x399e, 0x4a5: 0x3b2d, 0x4a6: 0x39a5, 0x4a7: 0x3b34, 0x4a8: 0x39ac, 0x4a9: 0x3b3b,\n\t0x4aa: 0x3190, 0x4ab: 0x34a1, 0x4ac: 0x319a, 0x4ad: 0x34b0, 0x4ae: 0x31ae, 0x4af: 0x34c4,\n\t0x4b0: 0x31a9, 0x4b1: 0x34bf, 0x4b2: 0x31ea, 0x4b3: 0x3500, 0x4b4: 0x31f9, 0x4b5: 0x350f,\n\t0x4b6: 0x31f4, 0x4b7: 0x350a, 0x4b8: 0x39b3, 0x4b9: 0x3b42, 0x4ba: 0x39ba, 0x4bb: 0x3b49,\n\t0x4bc: 0x31fe, 0x4bd: 0x3514, 0x4be: 0x3203, 0x4bf: 0x3519,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x3208, 0x4c1: 0x351e, 0x4c2: 0x320d, 0x4c3: 0x3523, 0x4c4: 0x321c, 0x4c5: 0x3532,\n\t0x4c6: 0x3217, 0x4c7: 0x352d, 0x4c8: 0x3221, 0x4c9: 0x353c, 0x4ca: 0x3226, 0x4cb: 0x3541,\n\t0x4cc: 0x322b, 0x4cd: 0x3546, 0x4ce: 0x3249, 0x4cf: 0x3564, 0x4d0: 0x3262, 0x4d1: 0x3582,\n\t0x4d2: 0x3271, 0x4d3: 0x3591, 0x4d4: 0x3276, 0x4d5: 0x3596, 0x4d6: 0x337a, 0x4d7: 0x34a6,\n\t0x4d8: 0x3537, 0x4d9: 0x3573, 0x4db: 0x35d1,\n\t0x4e0: 0x46a1, 0x4e1: 0x4732, 0x4e2: 0x2f83, 0x4e3: 0x328f,\n\t0x4e4: 0x3878, 0x4e5: 0x3a07, 0x4e6: 0x3871, 0x4e7: 0x3a00, 0x4e8: 0x3886, 0x4e9: 0x3a15,\n\t0x4ea: 0x387f, 0x4eb: 0x3a0e, 0x4ec: 0x38be, 0x4ed: 0x3a4d, 0x4ee: 0x3894, 0x4ef: 0x3a23,\n\t0x4f0: 0x388d, 0x4f1: 0x3a1c, 0x4f2: 0x38a2, 0x4f3: 0x3a31, 0x4f4: 0x389b, 0x4f5: 0x3a2a,\n\t0x4f6: 0x38c5, 0x4f7: 0x3a54, 0x4f8: 0x46b5, 0x4f9: 0x4746, 0x4fa: 0x3000, 0x4fb: 0x330c,\n\t0x4fc: 0x2fec, 0x4fd: 0x32f8, 0x4fe: 0x38da, 0x4ff: 0x3a69,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x38d3, 0x501: 0x3a62, 0x502: 0x38e8, 0x503: 0x3a77, 0x504: 0x38e1, 0x505: 0x3a70,\n\t0x506: 0x38fd, 0x507: 0x3a8c, 0x508: 0x3091, 0x509: 0x339d, 0x50a: 0x30a5, 0x50b: 0x33b1,\n\t0x50c: 0x46e7, 0x50d: 0x4778, 0x50e: 0x3136, 0x50f: 0x3447, 0x510: 0x3920, 0x511: 0x3aaf,\n\t0x512: 0x3919, 0x513: 0x3aa8, 0x514: 0x392e, 0x515: 0x3abd, 0x516: 0x3927, 0x517: 0x3ab6,\n\t0x518: 0x3989, 0x519: 0x3b18, 0x51a: 0x396d, 0x51b: 0x3afc, 0x51c: 0x3966, 0x51d: 0x3af5,\n\t0x51e: 0x397b, 0x51f: 0x3b0a, 0x520: 0x3974, 0x521: 0x3b03, 0x522: 0x3982, 0x523: 0x3b11,\n\t0x524: 0x31e5, 0x525: 0x34fb, 0x526: 0x31c7, 0x527: 0x34dd, 0x528: 0x39e4, 0x529: 0x3b73,\n\t0x52a: 0x39dd, 0x52b: 0x3b6c, 0x52c: 0x39f2, 0x52d: 0x3b81, 0x52e: 0x39eb, 0x52f: 0x3b7a,\n\t0x530: 0x39f9, 0x531: 0x3b88, 0x532: 0x3230, 0x533: 0x354b, 0x534: 0x3258, 0x535: 0x3578,\n\t0x536: 0x3253, 0x537: 0x356e, 0x538: 0x323f, 0x539: 0x355a,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x4804, 0x541: 0x480a, 0x542: 0x491e, 0x543: 0x4936, 0x544: 0x4926, 0x545: 0x493e,\n\t0x546: 0x492e, 0x547: 0x4946, 0x548: 0x47aa, 0x549: 0x47b0, 0x54a: 0x488e, 0x54b: 0x48a6,\n\t0x54c: 0x4896, 0x54d: 0x48ae, 0x54e: 0x489e, 0x54f: 0x48b6, 0x550: 0x4816, 0x551: 0x481c,\n\t0x552: 0x3db8, 0x553: 0x3dc8, 0x554: 0x3dc0, 0x555: 0x3dd0,\n\t0x558: 0x47b6, 0x559: 0x47bc, 0x55a: 0x3ce8, 0x55b: 0x3cf8, 0x55c: 0x3cf0, 0x55d: 0x3d00,\n\t0x560: 0x482e, 0x561: 0x4834, 0x562: 0x494e, 0x563: 0x4966,\n\t0x564: 0x4956, 0x565: 0x496e, 0x566: 0x495e, 0x567: 0x4976, 0x568: 0x47c2, 0x569: 0x47c8,\n\t0x56a: 0x48be, 0x56b: 0x48d6, 0x56c: 0x48c6, 0x56d: 0x48de, 0x56e: 0x48ce, 0x56f: 0x48e6,\n\t0x570: 0x4846, 0x571: 0x484c, 0x572: 0x3e18, 0x573: 0x3e30, 0x574: 0x3e20, 0x575: 0x3e38,\n\t0x576: 0x3e28, 0x577: 0x3e40, 0x578: 0x47ce, 0x579: 0x47d4, 0x57a: 0x3d18, 0x57b: 0x3d30,\n\t0x57c: 0x3d20, 0x57d: 0x3d38, 0x57e: 0x3d28, 0x57f: 0x3d40,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x4852, 0x581: 0x4858, 0x582: 0x3e48, 0x583: 0x3e58, 0x584: 0x3e50, 0x585: 0x3e60,\n\t0x588: 0x47da, 0x589: 0x47e0, 0x58a: 0x3d48, 0x58b: 0x3d58,\n\t0x58c: 0x3d50, 0x58d: 0x3d60, 0x590: 0x4864, 0x591: 0x486a,\n\t0x592: 0x3e80, 0x593: 0x3e98, 0x594: 0x3e88, 0x595: 0x3ea0, 0x596: 0x3e90, 0x597: 0x3ea8,\n\t0x599: 0x47e6, 0x59b: 0x3d68, 0x59d: 0x3d70,\n\t0x59f: 0x3d78, 0x5a0: 0x487c, 0x5a1: 0x4882, 0x5a2: 0x497e, 0x5a3: 0x4996,\n\t0x5a4: 0x4986, 0x5a5: 0x499e, 0x5a6: 0x498e, 0x5a7: 0x49a6, 0x5a8: 0x47ec, 0x5a9: 0x47f2,\n\t0x5aa: 0x48ee, 0x5ab: 0x4906, 0x5ac: 0x48f6, 0x5ad: 0x490e, 0x5ae: 0x48fe, 0x5af: 0x4916,\n\t0x5b0: 0x47f8, 0x5b1: 0x431e, 0x5b2: 0x3691, 0x5b3: 0x4324, 0x5b4: 0x4822, 0x5b5: 0x432a,\n\t0x5b6: 0x36a3, 0x5b7: 0x4330, 0x5b8: 0x36c1, 0x5b9: 0x4336, 0x5ba: 0x36d9, 0x5bb: 0x433c,\n\t0x5bc: 0x4870, 0x5bd: 0x4342,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x3da0, 0x5c1: 0x3da8, 0x5c2: 0x4184, 0x5c3: 0x41a2, 0x5c4: 0x418e, 0x5c5: 0x41ac,\n\t0x5c6: 0x4198, 0x5c7: 0x41b6, 0x5c8: 0x3cd8, 0x5c9: 0x3ce0, 0x5ca: 0x40d0, 0x5cb: 0x40ee,\n\t0x5cc: 0x40da, 0x5cd: 0x40f8, 0x5ce: 0x40e4, 0x5cf: 0x4102, 0x5d0: 0x3de8, 0x5d1: 0x3df0,\n\t0x5d2: 0x41c0, 0x5d3: 0x41de, 0x5d4: 0x41ca, 0x5d5: 0x41e8, 0x5d6: 0x41d4, 0x5d7: 0x41f2,\n\t0x5d8: 0x3d08, 0x5d9: 0x3d10, 0x5da: 0x410c, 0x5db: 0x412a, 0x5dc: 0x4116, 0x5dd: 0x4134,\n\t0x5de: 0x4120, 0x5df: 0x413e, 0x5e0: 0x3ec0, 0x5e1: 0x3ec8, 0x5e2: 0x41fc, 0x5e3: 0x421a,\n\t0x5e4: 0x4206, 0x5e5: 0x4224, 0x5e6: 0x4210, 0x5e7: 0x422e, 0x5e8: 0x3d80, 0x5e9: 0x3d88,\n\t0x5ea: 0x4148, 0x5eb: 0x4166, 0x5ec: 0x4152, 0x5ed: 0x4170, 0x5ee: 0x415c, 0x5ef: 0x417a,\n\t0x5f0: 0x3685, 0x5f1: 0x367f, 0x5f2: 0x3d90, 0x5f3: 0x368b, 0x5f4: 0x3d98,\n\t0x5f6: 0x4810, 0x5f7: 0x3db0, 0x5f8: 0x35f5, 0x5f9: 0x35ef, 0x5fa: 0x35e3, 0x5fb: 0x42ee,\n\t0x5fc: 0x35fb, 0x5fd: 0x8100, 0x5fe: 0x01d3, 0x5ff: 0xa100,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x8100, 0x601: 0x35a7, 0x602: 0x3dd8, 0x603: 0x369d, 0x604: 0x3de0,\n\t0x606: 0x483a, 0x607: 0x3df8, 0x608: 0x3601, 0x609: 0x42f4, 0x60a: 0x360d, 0x60b: 0x42fa,\n\t0x60c: 0x3619, 0x60d: 0x3b8f, 0x60e: 0x3b96, 0x60f: 0x3b9d, 0x610: 0x36b5, 0x611: 0x36af,\n\t0x612: 0x3e00, 0x613: 0x44e4, 0x616: 0x36bb, 0x617: 0x3e10,\n\t0x618: 0x3631, 0x619: 0x362b, 0x61a: 0x361f, 0x61b: 0x4300, 0x61d: 0x3ba4,\n\t0x61e: 0x3bab, 0x61f: 0x3bb2, 0x620: 0x36eb, 0x621: 0x36e5, 0x622: 0x3e68, 0x623: 0x44ec,\n\t0x624: 0x36cd, 0x625: 0x36d3, 0x626: 0x36f1, 0x627: 0x3e78, 0x628: 0x3661, 0x629: 0x365b,\n\t0x62a: 0x364f, 0x62b: 0x430c, 0x62c: 0x3649, 0x62d: 0x359b, 0x62e: 0x42e8, 0x62f: 0x0081,\n\t0x632: 0x3eb0, 0x633: 0x36f7, 0x634: 0x3eb8,\n\t0x636: 0x4888, 0x637: 0x3ed0, 0x638: 0x363d, 0x639: 0x4306, 0x63a: 0x366d, 0x63b: 0x4318,\n\t0x63c: 0x3679, 0x63d: 0x4256, 0x63e: 0xa100,\n\t// Block 0x19, offset 0x640\n\t0x641: 0x3c06, 0x643: 0xa000, 0x644: 0x3c0d, 0x645: 0xa000,\n\t0x647: 0x3c14, 0x648: 0xa000, 0x649: 0x3c1b,\n\t0x64d: 0xa000,\n\t0x660: 0x2f65, 0x661: 0xa000, 0x662: 0x3c29,\n\t0x664: 0xa000, 0x665: 0xa000,\n\t0x66d: 0x3c22, 0x66e: 0x2f60, 0x66f: 0x2f6a,\n\t0x670: 0x3c30, 0x671: 0x3c37, 0x672: 0xa000, 0x673: 0xa000, 0x674: 0x3c3e, 0x675: 0x3c45,\n\t0x676: 0xa000, 0x677: 0xa000, 0x678: 0x3c4c, 0x679: 0x3c53, 0x67a: 0xa000, 0x67b: 0xa000,\n\t0x67c: 0xa000, 0x67d: 0xa000,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x3c5a, 0x681: 0x3c61, 0x682: 0xa000, 0x683: 0xa000, 0x684: 0x3c76, 0x685: 0x3c7d,\n\t0x686: 0xa000, 0x687: 0xa000, 0x688: 0x3c84, 0x689: 0x3c8b,\n\t0x691: 0xa000,\n\t0x692: 0xa000,\n\t0x6a2: 0xa000,\n\t0x6a8: 0xa000, 0x6a9: 0xa000,\n\t0x6ab: 0xa000, 0x6ac: 0x3ca0, 0x6ad: 0x3ca7, 0x6ae: 0x3cae, 0x6af: 0x3cb5,\n\t0x6b2: 0xa000, 0x6b3: 0xa000, 0x6b4: 0xa000, 0x6b5: 0xa000,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c6: 0xa000, 0x6cb: 0xa000,\n\t0x6cc: 0x3f08, 0x6cd: 0xa000, 0x6ce: 0x3f10, 0x6cf: 0xa000, 0x6d0: 0x3f18, 0x6d1: 0xa000,\n\t0x6d2: 0x3f20, 0x6d3: 0xa000, 0x6d4: 0x3f28, 0x6d5: 0xa000, 0x6d6: 0x3f30, 0x6d7: 0xa000,\n\t0x6d8: 0x3f38, 0x6d9: 0xa000, 0x6da: 0x3f40, 0x6db: 0xa000, 0x6dc: 0x3f48, 0x6dd: 0xa000,\n\t0x6de: 0x3f50, 0x6df: 0xa000, 0x6e0: 0x3f58, 0x6e1: 0xa000, 0x6e2: 0x3f60,\n\t0x6e4: 0xa000, 0x6e5: 0x3f68, 0x6e6: 0xa000, 0x6e7: 0x3f70, 0x6e8: 0xa000, 0x6e9: 0x3f78,\n\t0x6ef: 0xa000,\n\t0x6f0: 0x3f80, 0x6f1: 0x3f88, 0x6f2: 0xa000, 0x6f3: 0x3f90, 0x6f4: 0x3f98, 0x6f5: 0xa000,\n\t0x6f6: 0x3fa0, 0x6f7: 0x3fa8, 0x6f8: 0xa000, 0x6f9: 0x3fb0, 0x6fa: 0x3fb8, 0x6fb: 0xa000,\n\t0x6fc: 0x3fc0, 0x6fd: 0x3fc8,\n\t// Block 0x1c, offset 0x700\n\t0x714: 0x3f00,\n\t0x719: 0x9903, 0x71a: 0x9903, 0x71b: 0x8100, 0x71c: 0x8100, 0x71d: 0xa000,\n\t0x71e: 0x3fd0,\n\t0x726: 0xa000,\n\t0x72b: 0xa000, 0x72c: 0x3fe0, 0x72d: 0xa000, 0x72e: 0x3fe8, 0x72f: 0xa000,\n\t0x730: 0x3ff0, 0x731: 0xa000, 0x732: 0x3ff8, 0x733: 0xa000, 0x734: 0x4000, 0x735: 0xa000,\n\t0x736: 0x4008, 0x737: 0xa000, 0x738: 0x4010, 0x739: 0xa000, 0x73a: 0x4018, 0x73b: 0xa000,\n\t0x73c: 0x4020, 0x73d: 0xa000, 0x73e: 0x4028, 0x73f: 0xa000,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0x4030, 0x741: 0xa000, 0x742: 0x4038, 0x744: 0xa000, 0x745: 0x4040,\n\t0x746: 0xa000, 0x747: 0x4048, 0x748: 0xa000, 0x749: 0x4050,\n\t0x74f: 0xa000, 0x750: 0x4058, 0x751: 0x4060,\n\t0x752: 0xa000, 0x753: 0x4068, 0x754: 0x4070, 0x755: 0xa000, 0x756: 0x4078, 0x757: 0x4080,\n\t0x758: 0xa000, 0x759: 0x4088, 0x75a: 0x4090, 0x75b: 0xa000, 0x75c: 0x4098, 0x75d: 0x40a0,\n\t0x76f: 0xa000,\n\t0x770: 0xa000, 0x771: 0xa000, 0x772: 0xa000, 0x774: 0x3fd8,\n\t0x777: 0x40a8, 0x778: 0x40b0, 0x779: 0x40b8, 0x77a: 0x40c0,\n\t0x77d: 0xa000, 0x77e: 0x40c8,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0x1377, 0x781: 0x0cfb, 0x782: 0x13d3, 0x783: 0x139f, 0x784: 0x0e57, 0x785: 0x06eb,\n\t0x786: 0x08df, 0x787: 0x162b, 0x788: 0x162b, 0x789: 0x0a0b, 0x78a: 0x145f, 0x78b: 0x0943,\n\t0x78c: 0x0a07, 0x78d: 0x0bef, 0x78e: 0x0fcf, 0x78f: 0x115f, 0x790: 0x1297, 0x791: 0x12d3,\n\t0x792: 0x1307, 0x793: 0x141b, 0x794: 0x0d73, 0x795: 0x0dff, 0x796: 0x0eab, 0x797: 0x0f43,\n\t0x798: 0x125f, 0x799: 0x1447, 0x79a: 0x1573, 0x79b: 0x070f, 0x79c: 0x08b3, 0x79d: 0x0d87,\n\t0x79e: 0x0ecf, 0x79f: 0x1293, 0x7a0: 0x15c3, 0x7a1: 0x0ab3, 0x7a2: 0x0e77, 0x7a3: 0x1283,\n\t0x7a4: 0x1317, 0x7a5: 0x0c23, 0x7a6: 0x11bb, 0x7a7: 0x12df, 0x7a8: 0x0b1f, 0x7a9: 0x0d0f,\n\t0x7aa: 0x0e17, 0x7ab: 0x0f1b, 0x7ac: 0x1427, 0x7ad: 0x074f, 0x7ae: 0x07e7, 0x7af: 0x0853,\n\t0x7b0: 0x0c8b, 0x7b1: 0x0d7f, 0x7b2: 0x0ecb, 0x7b3: 0x0fef, 0x7b4: 0x1177, 0x7b5: 0x128b,\n\t0x7b6: 0x12a3, 0x7b7: 0x13c7, 0x7b8: 0x14ef, 0x7b9: 0x15a3, 0x7ba: 0x15bf, 0x7bb: 0x102b,\n\t0x7bc: 0x106b, 0x7bd: 0x1123, 0x7be: 0x1243, 0x7bf: 0x147b,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0x15cb, 0x7c1: 0x134b, 0x7c2: 0x09c7, 0x7c3: 0x0b3b, 0x7c4: 0x10db, 0x7c5: 0x119b,\n\t0x7c6: 0x0eff, 0x7c7: 0x1033, 0x7c8: 0x1397, 0x7c9: 0x14e7, 0x7ca: 0x09c3, 0x7cb: 0x0a8f,\n\t0x7cc: 0x0d77, 0x7cd: 0x0e2b, 0x7ce: 0x0e5f, 0x7cf: 0x1113, 0x7d0: 0x113b, 0x7d1: 0x14a7,\n\t0x7d2: 0x084f, 0x7d3: 0x11a7, 0x7d4: 0x07f3, 0x7d5: 0x07ef, 0x7d6: 0x1097, 0x7d7: 0x1127,\n\t0x7d8: 0x125b, 0x7d9: 0x14af, 0x7da: 0x1367, 0x7db: 0x0c27, 0x7dc: 0x0d73, 0x7dd: 0x1357,\n\t0x7de: 0x06f7, 0x7df: 0x0a63, 0x7e0: 0x0b93, 0x7e1: 0x0f2f, 0x7e2: 0x0faf, 0x7e3: 0x0873,\n\t0x7e4: 0x103b, 0x7e5: 0x075f, 0x7e6: 0x0b77, 0x7e7: 0x06d7, 0x7e8: 0x0deb, 0x7e9: 0x0ca3,\n\t0x7ea: 0x110f, 0x7eb: 0x08c7, 0x7ec: 0x09b3, 0x7ed: 0x0ffb, 0x7ee: 0x1263, 0x7ef: 0x133b,\n\t0x7f0: 0x0db7, 0x7f1: 0x13f7, 0x7f2: 0x0de3, 0x7f3: 0x0c37, 0x7f4: 0x121b, 0x7f5: 0x0c57,\n\t0x7f6: 0x0fab, 0x7f7: 0x072b, 0x7f8: 0x07a7, 0x7f9: 0x07eb, 0x7fa: 0x0d53, 0x7fb: 0x10fb,\n\t0x7fc: 0x11f3, 0x7fd: 0x1347, 0x7fe: 0x145b, 0x7ff: 0x085b,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x090f, 0x801: 0x0a17, 0x802: 0x0b2f, 0x803: 0x0cbf, 0x804: 0x0e7b, 0x805: 0x103f,\n\t0x806: 0x1497, 0x807: 0x157b, 0x808: 0x15cf, 0x809: 0x15e7, 0x80a: 0x0837, 0x80b: 0x0cf3,\n\t0x80c: 0x0da3, 0x80d: 0x13eb, 0x80e: 0x0afb, 0x80f: 0x0bd7, 0x810: 0x0bf3, 0x811: 0x0c83,\n\t0x812: 0x0e6b, 0x813: 0x0eb7, 0x814: 0x0f67, 0x815: 0x108b, 0x816: 0x112f, 0x817: 0x1193,\n\t0x818: 0x13db, 0x819: 0x126b, 0x81a: 0x1403, 0x81b: 0x147f, 0x81c: 0x080f, 0x81d: 0x083b,\n\t0x81e: 0x0923, 0x81f: 0x0ea7, 0x820: 0x12f3, 0x821: 0x133b, 0x822: 0x0b1b, 0x823: 0x0b8b,\n\t0x824: 0x0c4f, 0x825: 0x0daf, 0x826: 0x10d7, 0x827: 0x0f23, 0x828: 0x073b, 0x829: 0x097f,\n\t0x82a: 0x0a63, 0x82b: 0x0ac7, 0x82c: 0x0b97, 0x82d: 0x0f3f, 0x82e: 0x0f5b, 0x82f: 0x116b,\n\t0x830: 0x118b, 0x831: 0x1463, 0x832: 0x14e3, 0x833: 0x14f3, 0x834: 0x152f, 0x835: 0x0753,\n\t0x836: 0x107f, 0x837: 0x144f, 0x838: 0x14cb, 0x839: 0x0baf, 0x83a: 0x0717, 0x83b: 0x0777,\n\t0x83c: 0x0a67, 0x83d: 0x0a87, 0x83e: 0x0caf, 0x83f: 0x0d73,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x0ec3, 0x841: 0x0fcb, 0x842: 0x1277, 0x843: 0x1417, 0x844: 0x1623, 0x845: 0x0ce3,\n\t0x846: 0x14a3, 0x847: 0x0833, 0x848: 0x0d2f, 0x849: 0x0d3b, 0x84a: 0x0e0f, 0x84b: 0x0e47,\n\t0x84c: 0x0f4b, 0x84d: 0x0fa7, 0x84e: 0x1027, 0x84f: 0x110b, 0x850: 0x153b, 0x851: 0x07af,\n\t0x852: 0x0c03, 0x853: 0x14b3, 0x854: 0x0767, 0x855: 0x0aab, 0x856: 0x0e2f, 0x857: 0x13df,\n\t0x858: 0x0b67, 0x859: 0x0bb7, 0x85a: 0x0d43, 0x85b: 0x0f2f, 0x85c: 0x14bb, 0x85d: 0x0817,\n\t0x85e: 0x08ff, 0x85f: 0x0a97, 0x860: 0x0cd3, 0x861: 0x0d1f, 0x862: 0x0d5f, 0x863: 0x0df3,\n\t0x864: 0x0f47, 0x865: 0x0fbb, 0x866: 0x1157, 0x867: 0x12f7, 0x868: 0x1303, 0x869: 0x1457,\n\t0x86a: 0x14d7, 0x86b: 0x0883, 0x86c: 0x0e4b, 0x86d: 0x0903, 0x86e: 0x0ec7, 0x86f: 0x0f6b,\n\t0x870: 0x1287, 0x871: 0x14bf, 0x872: 0x15ab, 0x873: 0x15d3, 0x874: 0x0d37, 0x875: 0x0e27,\n\t0x876: 0x11c3, 0x877: 0x10b7, 0x878: 0x10c3, 0x879: 0x10e7, 0x87a: 0x0f17, 0x87b: 0x0e9f,\n\t0x87c: 0x1363, 0x87d: 0x0733, 0x87e: 0x122b, 0x87f: 0x081b,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x080b, 0x881: 0x0b0b, 0x882: 0x0c2b, 0x883: 0x10f3, 0x884: 0x0a53, 0x885: 0x0e03,\n\t0x886: 0x0cef, 0x887: 0x13e7, 0x888: 0x12e7, 0x889: 0x14ab, 0x88a: 0x1323, 0x88b: 0x0b27,\n\t0x88c: 0x0787, 0x88d: 0x095b, 0x890: 0x09af,\n\t0x892: 0x0cdf, 0x895: 0x07f7, 0x896: 0x0f1f, 0x897: 0x0fe3,\n\t0x898: 0x1047, 0x899: 0x1063, 0x89a: 0x1067, 0x89b: 0x107b, 0x89c: 0x14fb, 0x89d: 0x10eb,\n\t0x89e: 0x116f, 0x8a0: 0x128f, 0x8a2: 0x1353,\n\t0x8a5: 0x1407, 0x8a6: 0x1433,\n\t0x8aa: 0x154f, 0x8ab: 0x1553, 0x8ac: 0x1557, 0x8ad: 0x15bb, 0x8ae: 0x142b, 0x8af: 0x14c7,\n\t0x8b0: 0x0757, 0x8b1: 0x077b, 0x8b2: 0x078f, 0x8b3: 0x084b, 0x8b4: 0x0857, 0x8b5: 0x0897,\n\t0x8b6: 0x094b, 0x8b7: 0x0967, 0x8b8: 0x096f, 0x8b9: 0x09ab, 0x8ba: 0x09b7, 0x8bb: 0x0a93,\n\t0x8bc: 0x0a9b, 0x8bd: 0x0ba3, 0x8be: 0x0bcb, 0x8bf: 0x0bd3,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x0beb, 0x8c1: 0x0c97, 0x8c2: 0x0cc7, 0x8c3: 0x0ce7, 0x8c4: 0x0d57, 0x8c5: 0x0e1b,\n\t0x8c6: 0x0e37, 0x8c7: 0x0e67, 0x8c8: 0x0ebb, 0x8c9: 0x0edb, 0x8ca: 0x0f4f, 0x8cb: 0x102f,\n\t0x8cc: 0x104b, 0x8cd: 0x1053, 0x8ce: 0x104f, 0x8cf: 0x1057, 0x8d0: 0x105b, 0x8d1: 0x105f,\n\t0x8d2: 0x1073, 0x8d3: 0x1077, 0x8d4: 0x109b, 0x8d5: 0x10af, 0x8d6: 0x10cb, 0x8d7: 0x112f,\n\t0x8d8: 0x1137, 0x8d9: 0x113f, 0x8da: 0x1153, 0x8db: 0x117b, 0x8dc: 0x11cb, 0x8dd: 0x11ff,\n\t0x8de: 0x11ff, 0x8df: 0x1267, 0x8e0: 0x130f, 0x8e1: 0x1327, 0x8e2: 0x135b, 0x8e3: 0x135f,\n\t0x8e4: 0x13a3, 0x8e5: 0x13a7, 0x8e6: 0x13ff, 0x8e7: 0x1407, 0x8e8: 0x14db, 0x8e9: 0x151f,\n\t0x8ea: 0x1537, 0x8eb: 0x0b9b, 0x8ec: 0x171e, 0x8ed: 0x11e3,\n\t0x8f0: 0x06df, 0x8f1: 0x07e3, 0x8f2: 0x07a3, 0x8f3: 0x074b, 0x8f4: 0x078b, 0x8f5: 0x07b7,\n\t0x8f6: 0x0847, 0x8f7: 0x0863, 0x8f8: 0x094b, 0x8f9: 0x0937, 0x8fa: 0x0947, 0x8fb: 0x0963,\n\t0x8fc: 0x09af, 0x8fd: 0x09bf, 0x8fe: 0x0a03, 0x8ff: 0x0a0f,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x0a2b, 0x901: 0x0a3b, 0x902: 0x0b23, 0x903: 0x0b2b, 0x904: 0x0b5b, 0x905: 0x0b7b,\n\t0x906: 0x0bab, 0x907: 0x0bc3, 0x908: 0x0bb3, 0x909: 0x0bd3, 0x90a: 0x0bc7, 0x90b: 0x0beb,\n\t0x90c: 0x0c07, 0x90d: 0x0c5f, 0x90e: 0x0c6b, 0x90f: 0x0c73, 0x910: 0x0c9b, 0x911: 0x0cdf,\n\t0x912: 0x0d0f, 0x913: 0x0d13, 0x914: 0x0d27, 0x915: 0x0da7, 0x916: 0x0db7, 0x917: 0x0e0f,\n\t0x918: 0x0e5b, 0x919: 0x0e53, 0x91a: 0x0e67, 0x91b: 0x0e83, 0x91c: 0x0ebb, 0x91d: 0x1013,\n\t0x91e: 0x0edf, 0x91f: 0x0f13, 0x920: 0x0f1f, 0x921: 0x0f5f, 0x922: 0x0f7b, 0x923: 0x0f9f,\n\t0x924: 0x0fc3, 0x925: 0x0fc7, 0x926: 0x0fe3, 0x927: 0x0fe7, 0x928: 0x0ff7, 0x929: 0x100b,\n\t0x92a: 0x1007, 0x92b: 0x1037, 0x92c: 0x10b3, 0x92d: 0x10cb, 0x92e: 0x10e3, 0x92f: 0x111b,\n\t0x930: 0x112f, 0x931: 0x114b, 0x932: 0x117b, 0x933: 0x122f, 0x934: 0x1257, 0x935: 0x12cb,\n\t0x936: 0x1313, 0x937: 0x131f, 0x938: 0x1327, 0x939: 0x133f, 0x93a: 0x1353, 0x93b: 0x1343,\n\t0x93c: 0x135b, 0x93d: 0x1357, 0x93e: 0x134f, 0x93f: 0x135f,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x136b, 0x941: 0x13a7, 0x942: 0x13e3, 0x943: 0x1413, 0x944: 0x144b, 0x945: 0x146b,\n\t0x946: 0x14b7, 0x947: 0x14db, 0x948: 0x14fb, 0x949: 0x150f, 0x94a: 0x151f, 0x94b: 0x152b,\n\t0x94c: 0x1537, 0x94d: 0x158b, 0x94e: 0x162b, 0x94f: 0x16b5, 0x950: 0x16b0, 0x951: 0x16e2,\n\t0x952: 0x0607, 0x953: 0x062f, 0x954: 0x0633, 0x955: 0x1764, 0x956: 0x1791, 0x957: 0x1809,\n\t0x958: 0x1617, 0x959: 0x1627,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x06fb, 0x981: 0x06f3, 0x982: 0x0703, 0x983: 0x1647, 0x984: 0x0747, 0x985: 0x0757,\n\t0x986: 0x075b, 0x987: 0x0763, 0x988: 0x076b, 0x989: 0x076f, 0x98a: 0x077b, 0x98b: 0x0773,\n\t0x98c: 0x05b3, 0x98d: 0x165b, 0x98e: 0x078f, 0x98f: 0x0793, 0x990: 0x0797, 0x991: 0x07b3,\n\t0x992: 0x164c, 0x993: 0x05b7, 0x994: 0x079f, 0x995: 0x07bf, 0x996: 0x1656, 0x997: 0x07cf,\n\t0x998: 0x07d7, 0x999: 0x0737, 0x99a: 0x07df, 0x99b: 0x07e3, 0x99c: 0x1831, 0x99d: 0x07ff,\n\t0x99e: 0x0807, 0x99f: 0x05bf, 0x9a0: 0x081f, 0x9a1: 0x0823, 0x9a2: 0x082b, 0x9a3: 0x082f,\n\t0x9a4: 0x05c3, 0x9a5: 0x0847, 0x9a6: 0x084b, 0x9a7: 0x0857, 0x9a8: 0x0863, 0x9a9: 0x0867,\n\t0x9aa: 0x086b, 0x9ab: 0x0873, 0x9ac: 0x0893, 0x9ad: 0x0897, 0x9ae: 0x089f, 0x9af: 0x08af,\n\t0x9b0: 0x08b7, 0x9b1: 0x08bb, 0x9b2: 0x08bb, 0x9b3: 0x08bb, 0x9b4: 0x166a, 0x9b5: 0x0e93,\n\t0x9b6: 0x08cf, 0x9b7: 0x08d7, 0x9b8: 0x166f, 0x9b9: 0x08e3, 0x9ba: 0x08eb, 0x9bb: 0x08f3,\n\t0x9bc: 0x091b, 0x9bd: 0x0907, 0x9be: 0x0913, 0x9bf: 0x0917,\n\t// Block 0x27, offset 0x9c0\n\t0x9c0: 0x091f, 0x9c1: 0x0927, 0x9c2: 0x092b, 0x9c3: 0x0933, 0x9c4: 0x093b, 0x9c5: 0x093f,\n\t0x9c6: 0x093f, 0x9c7: 0x0947, 0x9c8: 0x094f, 0x9c9: 0x0953, 0x9ca: 0x095f, 0x9cb: 0x0983,\n\t0x9cc: 0x0967, 0x9cd: 0x0987, 0x9ce: 0x096b, 0x9cf: 0x0973, 0x9d0: 0x080b, 0x9d1: 0x09cf,\n\t0x9d2: 0x0997, 0x9d3: 0x099b, 0x9d4: 0x099f, 0x9d5: 0x0993, 0x9d6: 0x09a7, 0x9d7: 0x09a3,\n\t0x9d8: 0x09bb, 0x9d9: 0x1674, 0x9da: 0x09d7, 0x9db: 0x09db, 0x9dc: 0x09e3, 0x9dd: 0x09ef,\n\t0x9de: 0x09f7, 0x9df: 0x0a13, 0x9e0: 0x1679, 0x9e1: 0x167e, 0x9e2: 0x0a1f, 0x9e3: 0x0a23,\n\t0x9e4: 0x0a27, 0x9e5: 0x0a1b, 0x9e6: 0x0a2f, 0x9e7: 0x05c7, 0x9e8: 0x05cb, 0x9e9: 0x0a37,\n\t0x9ea: 0x0a3f, 0x9eb: 0x0a3f, 0x9ec: 0x1683, 0x9ed: 0x0a5b, 0x9ee: 0x0a5f, 0x9ef: 0x0a63,\n\t0x9f0: 0x0a6b, 0x9f1: 0x1688, 0x9f2: 0x0a73, 0x9f3: 0x0a77, 0x9f4: 0x0b4f, 0x9f5: 0x0a7f,\n\t0x9f6: 0x05cf, 0x9f7: 0x0a8b, 0x9f8: 0x0a9b, 0x9f9: 0x0aa7, 0x9fa: 0x0aa3, 0x9fb: 0x1692,\n\t0x9fc: 0x0aaf, 0x9fd: 0x1697, 0x9fe: 0x0abb, 0x9ff: 0x0ab7,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x0abf, 0xa01: 0x0acf, 0xa02: 0x0ad3, 0xa03: 0x05d3, 0xa04: 0x0ae3, 0xa05: 0x0aeb,\n\t0xa06: 0x0aef, 0xa07: 0x0af3, 0xa08: 0x05d7, 0xa09: 0x169c, 0xa0a: 0x05db, 0xa0b: 0x0b0f,\n\t0xa0c: 0x0b13, 0xa0d: 0x0b17, 0xa0e: 0x0b1f, 0xa0f: 0x1863, 0xa10: 0x0b37, 0xa11: 0x16a6,\n\t0xa12: 0x16a6, 0xa13: 0x11d7, 0xa14: 0x0b47, 0xa15: 0x0b47, 0xa16: 0x05df, 0xa17: 0x16c9,\n\t0xa18: 0x179b, 0xa19: 0x0b57, 0xa1a: 0x0b5f, 0xa1b: 0x05e3, 0xa1c: 0x0b73, 0xa1d: 0x0b83,\n\t0xa1e: 0x0b87, 0xa1f: 0x0b8f, 0xa20: 0x0b9f, 0xa21: 0x05eb, 0xa22: 0x05e7, 0xa23: 0x0ba3,\n\t0xa24: 0x16ab, 0xa25: 0x0ba7, 0xa26: 0x0bbb, 0xa27: 0x0bbf, 0xa28: 0x0bc3, 0xa29: 0x0bbf,\n\t0xa2a: 0x0bcf, 0xa2b: 0x0bd3, 0xa2c: 0x0be3, 0xa2d: 0x0bdb, 0xa2e: 0x0bdf, 0xa2f: 0x0be7,\n\t0xa30: 0x0beb, 0xa31: 0x0bef, 0xa32: 0x0bfb, 0xa33: 0x0bff, 0xa34: 0x0c17, 0xa35: 0x0c1f,\n\t0xa36: 0x0c2f, 0xa37: 0x0c43, 0xa38: 0x16ba, 0xa39: 0x0c3f, 0xa3a: 0x0c33, 0xa3b: 0x0c4b,\n\t0xa3c: 0x0c53, 0xa3d: 0x0c67, 0xa3e: 0x16bf, 0xa3f: 0x0c6f,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0x0c63, 0xa41: 0x0c5b, 0xa42: 0x05ef, 0xa43: 0x0c77, 0xa44: 0x0c7f, 0xa45: 0x0c87,\n\t0xa46: 0x0c7b, 0xa47: 0x05f3, 0xa48: 0x0c97, 0xa49: 0x0c9f, 0xa4a: 0x16c4, 0xa4b: 0x0ccb,\n\t0xa4c: 0x0cff, 0xa4d: 0x0cdb, 0xa4e: 0x05ff, 0xa4f: 0x0ce7, 0xa50: 0x05fb, 0xa51: 0x05f7,\n\t0xa52: 0x07c3, 0xa53: 0x07c7, 0xa54: 0x0d03, 0xa55: 0x0ceb, 0xa56: 0x11ab, 0xa57: 0x0663,\n\t0xa58: 0x0d0f, 0xa59: 0x0d13, 0xa5a: 0x0d17, 0xa5b: 0x0d2b, 0xa5c: 0x0d23, 0xa5d: 0x16dd,\n\t0xa5e: 0x0603, 0xa5f: 0x0d3f, 0xa60: 0x0d33, 0xa61: 0x0d4f, 0xa62: 0x0d57, 0xa63: 0x16e7,\n\t0xa64: 0x0d5b, 0xa65: 0x0d47, 0xa66: 0x0d63, 0xa67: 0x0607, 0xa68: 0x0d67, 0xa69: 0x0d6b,\n\t0xa6a: 0x0d6f, 0xa6b: 0x0d7b, 0xa6c: 0x16ec, 0xa6d: 0x0d83, 0xa6e: 0x060b, 0xa6f: 0x0d8f,\n\t0xa70: 0x16f1, 0xa71: 0x0d93, 0xa72: 0x060f, 0xa73: 0x0d9f, 0xa74: 0x0dab, 0xa75: 0x0db7,\n\t0xa76: 0x0dbb, 0xa77: 0x16f6, 0xa78: 0x168d, 0xa79: 0x16fb, 0xa7a: 0x0ddb, 0xa7b: 0x1700,\n\t0xa7c: 0x0de7, 0xa7d: 0x0def, 0xa7e: 0x0ddf, 0xa7f: 0x0dfb,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0x0e0b, 0xa81: 0x0e1b, 0xa82: 0x0e0f, 0xa83: 0x0e13, 0xa84: 0x0e1f, 0xa85: 0x0e23,\n\t0xa86: 0x1705, 0xa87: 0x0e07, 0xa88: 0x0e3b, 0xa89: 0x0e3f, 0xa8a: 0x0613, 0xa8b: 0x0e53,\n\t0xa8c: 0x0e4f, 0xa8d: 0x170a, 0xa8e: 0x0e33, 0xa8f: 0x0e6f, 0xa90: 0x170f, 0xa91: 0x1714,\n\t0xa92: 0x0e73, 0xa93: 0x0e87, 0xa94: 0x0e83, 0xa95: 0x0e7f, 0xa96: 0x0617, 0xa97: 0x0e8b,\n\t0xa98: 0x0e9b, 0xa99: 0x0e97, 0xa9a: 0x0ea3, 0xa9b: 0x1651, 0xa9c: 0x0eb3, 0xa9d: 0x1719,\n\t0xa9e: 0x0ebf, 0xa9f: 0x1723, 0xaa0: 0x0ed3, 0xaa1: 0x0edf, 0xaa2: 0x0ef3, 0xaa3: 0x1728,\n\t0xaa4: 0x0f07, 0xaa5: 0x0f0b, 0xaa6: 0x172d, 0xaa7: 0x1732, 0xaa8: 0x0f27, 0xaa9: 0x0f37,\n\t0xaaa: 0x061b, 0xaab: 0x0f3b, 0xaac: 0x061f, 0xaad: 0x061f, 0xaae: 0x0f53, 0xaaf: 0x0f57,\n\t0xab0: 0x0f5f, 0xab1: 0x0f63, 0xab2: 0x0f6f, 0xab3: 0x0623, 0xab4: 0x0f87, 0xab5: 0x1737,\n\t0xab6: 0x0fa3, 0xab7: 0x173c, 0xab8: 0x0faf, 0xab9: 0x16a1, 0xaba: 0x0fbf, 0xabb: 0x1741,\n\t0xabc: 0x1746, 0xabd: 0x174b, 0xabe: 0x0627, 0xabf: 0x062b,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0x0ff7, 0xac1: 0x1755, 0xac2: 0x1750, 0xac3: 0x175a, 0xac4: 0x175f, 0xac5: 0x0fff,\n\t0xac6: 0x1003, 0xac7: 0x1003, 0xac8: 0x100b, 0xac9: 0x0633, 0xaca: 0x100f, 0xacb: 0x0637,\n\t0xacc: 0x063b, 0xacd: 0x1769, 0xace: 0x1023, 0xacf: 0x102b, 0xad0: 0x1037, 0xad1: 0x063f,\n\t0xad2: 0x176e, 0xad3: 0x105b, 0xad4: 0x1773, 0xad5: 0x1778, 0xad6: 0x107b, 0xad7: 0x1093,\n\t0xad8: 0x0643, 0xad9: 0x109b, 0xada: 0x109f, 0xadb: 0x10a3, 0xadc: 0x177d, 0xadd: 0x1782,\n\t0xade: 0x1782, 0xadf: 0x10bb, 0xae0: 0x0647, 0xae1: 0x1787, 0xae2: 0x10cf, 0xae3: 0x10d3,\n\t0xae4: 0x064b, 0xae5: 0x178c, 0xae6: 0x10ef, 0xae7: 0x064f, 0xae8: 0x10ff, 0xae9: 0x10f7,\n\t0xaea: 0x1107, 0xaeb: 0x1796, 0xaec: 0x111f, 0xaed: 0x0653, 0xaee: 0x112b, 0xaef: 0x1133,\n\t0xaf0: 0x1143, 0xaf1: 0x0657, 0xaf2: 0x17a0, 0xaf3: 0x17a5, 0xaf4: 0x065b, 0xaf5: 0x17aa,\n\t0xaf6: 0x115b, 0xaf7: 0x17af, 0xaf8: 0x1167, 0xaf9: 0x1173, 0xafa: 0x117b, 0xafb: 0x17b4,\n\t0xafc: 0x17b9, 0xafd: 0x118f, 0xafe: 0x17be, 0xaff: 0x1197,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0x16ce, 0xb01: 0x065f, 0xb02: 0x11af, 0xb03: 0x11b3, 0xb04: 0x0667, 0xb05: 0x11b7,\n\t0xb06: 0x0a33, 0xb07: 0x17c3, 0xb08: 0x17c8, 0xb09: 0x16d3, 0xb0a: 0x16d8, 0xb0b: 0x11d7,\n\t0xb0c: 0x11db, 0xb0d: 0x13f3, 0xb0e: 0x066b, 0xb0f: 0x1207, 0xb10: 0x1203, 0xb11: 0x120b,\n\t0xb12: 0x083f, 0xb13: 0x120f, 0xb14: 0x1213, 0xb15: 0x1217, 0xb16: 0x121f, 0xb17: 0x17cd,\n\t0xb18: 0x121b, 0xb19: 0x1223, 0xb1a: 0x1237, 0xb1b: 0x123b, 0xb1c: 0x1227, 0xb1d: 0x123f,\n\t0xb1e: 0x1253, 0xb1f: 0x1267, 0xb20: 0x1233, 0xb21: 0x1247, 0xb22: 0x124b, 0xb23: 0x124f,\n\t0xb24: 0x17d2, 0xb25: 0x17dc, 0xb26: 0x17d7, 0xb27: 0x066f, 0xb28: 0x126f, 0xb29: 0x1273,\n\t0xb2a: 0x127b, 0xb2b: 0x17f0, 0xb2c: 0x127f, 0xb2d: 0x17e1, 0xb2e: 0x0673, 0xb2f: 0x0677,\n\t0xb30: 0x17e6, 0xb31: 0x17eb, 0xb32: 0x067b, 0xb33: 0x129f, 0xb34: 0x12a3, 0xb35: 0x12a7,\n\t0xb36: 0x12ab, 0xb37: 0x12b7, 0xb38: 0x12b3, 0xb39: 0x12bf, 0xb3a: 0x12bb, 0xb3b: 0x12cb,\n\t0xb3c: 0x12c3, 0xb3d: 0x12c7, 0xb3e: 0x12cf, 0xb3f: 0x067f,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x12d7, 0xb41: 0x12db, 0xb42: 0x0683, 0xb43: 0x12eb, 0xb44: 0x12ef, 0xb45: 0x17f5,\n\t0xb46: 0x12fb, 0xb47: 0x12ff, 0xb48: 0x0687, 0xb49: 0x130b, 0xb4a: 0x05bb, 0xb4b: 0x17fa,\n\t0xb4c: 0x17ff, 0xb4d: 0x068b, 0xb4e: 0x068f, 0xb4f: 0x1337, 0xb50: 0x134f, 0xb51: 0x136b,\n\t0xb52: 0x137b, 0xb53: 0x1804, 0xb54: 0x138f, 0xb55: 0x1393, 0xb56: 0x13ab, 0xb57: 0x13b7,\n\t0xb58: 0x180e, 0xb59: 0x1660, 0xb5a: 0x13c3, 0xb5b: 0x13bf, 0xb5c: 0x13cb, 0xb5d: 0x1665,\n\t0xb5e: 0x13d7, 0xb5f: 0x13e3, 0xb60: 0x1813, 0xb61: 0x1818, 0xb62: 0x1423, 0xb63: 0x142f,\n\t0xb64: 0x1437, 0xb65: 0x181d, 0xb66: 0x143b, 0xb67: 0x1467, 0xb68: 0x1473, 0xb69: 0x1477,\n\t0xb6a: 0x146f, 0xb6b: 0x1483, 0xb6c: 0x1487, 0xb6d: 0x1822, 0xb6e: 0x1493, 0xb6f: 0x0693,\n\t0xb70: 0x149b, 0xb71: 0x1827, 0xb72: 0x0697, 0xb73: 0x14d3, 0xb74: 0x0ac3, 0xb75: 0x14eb,\n\t0xb76: 0x182c, 0xb77: 0x1836, 0xb78: 0x069b, 0xb79: 0x069f, 0xb7a: 0x1513, 0xb7b: 0x183b,\n\t0xb7c: 0x06a3, 0xb7d: 0x1840, 0xb7e: 0x152b, 0xb7f: 0x152b,\n\t// Block 0x2e, offset 0xb80\n\t0xb80: 0x1533, 0xb81: 0x1845, 0xb82: 0x154b, 0xb83: 0x06a7, 0xb84: 0x155b, 0xb85: 0x1567,\n\t0xb86: 0x156f, 0xb87: 0x1577, 0xb88: 0x06ab, 0xb89: 0x184a, 0xb8a: 0x158b, 0xb8b: 0x15a7,\n\t0xb8c: 0x15b3, 0xb8d: 0x06af, 0xb8e: 0x06b3, 0xb8f: 0x15b7, 0xb90: 0x184f, 0xb91: 0x06b7,\n\t0xb92: 0x1854, 0xb93: 0x1859, 0xb94: 0x185e, 0xb95: 0x15db, 0xb96: 0x06bb, 0xb97: 0x15ef,\n\t0xb98: 0x15f7, 0xb99: 0x15fb, 0xb9a: 0x1603, 0xb9b: 0x160b, 0xb9c: 0x1613, 0xb9d: 0x1868,\n}\n\n// nfcIndex: 22 blocks, 1408 entries, 1408 bytes\n// Block 0 is the zero block.\nvar nfcIndex = [1408]uint8{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x2d, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x2e, 0xc7: 0x04,\n\t0xc8: 0x05, 0xca: 0x2f, 0xcb: 0x30, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x31,\n\t0xd0: 0x09, 0xd1: 0x32, 0xd2: 0x33, 0xd3: 0x0a, 0xd6: 0x0b, 0xd7: 0x34,\n\t0xd8: 0x35, 0xd9: 0x0c, 0xdb: 0x36, 0xdc: 0x37, 0xdd: 0x38, 0xdf: 0x39,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,\n\t0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a,\n\t0xf0: 0x13,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x3a, 0x121: 0x3b, 0x123: 0x3c, 0x124: 0x3d, 0x125: 0x3e, 0x126: 0x3f, 0x127: 0x40,\n\t0x128: 0x41, 0x129: 0x42, 0x12a: 0x43, 0x12b: 0x44, 0x12c: 0x3f, 0x12d: 0x45, 0x12e: 0x46, 0x12f: 0x47,\n\t0x131: 0x48, 0x132: 0x49, 0x133: 0x4a, 0x134: 0x4b, 0x135: 0x4c, 0x137: 0x4d,\n\t0x138: 0x4e, 0x139: 0x4f, 0x13a: 0x50, 0x13b: 0x51, 0x13c: 0x52, 0x13d: 0x53, 0x13e: 0x54, 0x13f: 0x55,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x56, 0x142: 0x57, 0x144: 0x58, 0x145: 0x59, 0x146: 0x5a, 0x147: 0x5b,\n\t0x14d: 0x5c,\n\t0x15c: 0x5d, 0x15f: 0x5e,\n\t0x162: 0x5f, 0x164: 0x60,\n\t0x168: 0x61, 0x169: 0x62, 0x16a: 0x63, 0x16c: 0x0d, 0x16d: 0x64, 0x16e: 0x65, 0x16f: 0x66,\n\t0x170: 0x67, 0x173: 0x68, 0x177: 0x0e,\n\t0x178: 0x0f, 0x179: 0x10, 0x17a: 0x11, 0x17b: 0x12, 0x17c: 0x13, 0x17d: 0x14, 0x17e: 0x15, 0x17f: 0x16,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x69, 0x183: 0x6a, 0x184: 0x6b, 0x186: 0x6c, 0x187: 0x6d,\n\t0x188: 0x6e, 0x189: 0x17, 0x18a: 0x18, 0x18b: 0x6f, 0x18c: 0x70,\n\t0x1ab: 0x71,\n\t0x1b3: 0x72, 0x1b5: 0x73, 0x1b7: 0x74,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x75, 0x1c1: 0x19, 0x1c2: 0x1a, 0x1c3: 0x1b, 0x1c4: 0x76, 0x1c5: 0x77,\n\t0x1c9: 0x78, 0x1cc: 0x79, 0x1cd: 0x7a,\n\t// Block 0x8, offset 0x200\n\t0x219: 0x7b, 0x21a: 0x7c, 0x21b: 0x7d,\n\t0x220: 0x7e, 0x223: 0x7f, 0x224: 0x80, 0x225: 0x81, 0x226: 0x82, 0x227: 0x83,\n\t0x22a: 0x84, 0x22b: 0x85, 0x22f: 0x86,\n\t0x230: 0x87, 0x231: 0x88, 0x232: 0x89, 0x233: 0x8a, 0x234: 0x8b, 0x235: 0x8c, 0x236: 0x8d, 0x237: 0x87,\n\t0x238: 0x88, 0x239: 0x89, 0x23a: 0x8a, 0x23b: 0x8b, 0x23c: 0x8c, 0x23d: 0x8d, 0x23e: 0x87, 0x23f: 0x88,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x89, 0x241: 0x8a, 0x242: 0x8b, 0x243: 0x8c, 0x244: 0x8d, 0x245: 0x87, 0x246: 0x88, 0x247: 0x89,\n\t0x248: 0x8a, 0x249: 0x8b, 0x24a: 0x8c, 0x24b: 0x8d, 0x24c: 0x87, 0x24d: 0x88, 0x24e: 0x89, 0x24f: 0x8a,\n\t0x250: 0x8b, 0x251: 0x8c, 0x252: 0x8d, 0x253: 0x87, 0x254: 0x88, 0x255: 0x89, 0x256: 0x8a, 0x257: 0x8b,\n\t0x258: 0x8c, 0x259: 0x8d, 0x25a: 0x87, 0x25b: 0x88, 0x25c: 0x89, 0x25d: 0x8a, 0x25e: 0x8b, 0x25f: 0x8c,\n\t0x260: 0x8d, 0x261: 0x87, 0x262: 0x88, 0x263: 0x89, 0x264: 0x8a, 0x265: 0x8b, 0x266: 0x8c, 0x267: 0x8d,\n\t0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26c: 0x8b, 0x26d: 0x8c, 0x26e: 0x8d, 0x26f: 0x87,\n\t0x270: 0x88, 0x271: 0x89, 0x272: 0x8a, 0x273: 0x8b, 0x274: 0x8c, 0x275: 0x8d, 0x276: 0x87, 0x277: 0x88,\n\t0x278: 0x89, 0x279: 0x8a, 0x27a: 0x8b, 0x27b: 0x8c, 0x27c: 0x8d, 0x27d: 0x87, 0x27e: 0x88, 0x27f: 0x89,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x8a, 0x281: 0x8b, 0x282: 0x8c, 0x283: 0x8d, 0x284: 0x87, 0x285: 0x88, 0x286: 0x89, 0x287: 0x8a,\n\t0x288: 0x8b, 0x289: 0x8c, 0x28a: 0x8d, 0x28b: 0x87, 0x28c: 0x88, 0x28d: 0x89, 0x28e: 0x8a, 0x28f: 0x8b,\n\t0x290: 0x8c, 0x291: 0x8d, 0x292: 0x87, 0x293: 0x88, 0x294: 0x89, 0x295: 0x8a, 0x296: 0x8b, 0x297: 0x8c,\n\t0x298: 0x8d, 0x299: 0x87, 0x29a: 0x88, 0x29b: 0x89, 0x29c: 0x8a, 0x29d: 0x8b, 0x29e: 0x8c, 0x29f: 0x8d,\n\t0x2a0: 0x87, 0x2a1: 0x88, 0x2a2: 0x89, 0x2a3: 0x8a, 0x2a4: 0x8b, 0x2a5: 0x8c, 0x2a6: 0x8d, 0x2a7: 0x87,\n\t0x2a8: 0x88, 0x2a9: 0x89, 0x2aa: 0x8a, 0x2ab: 0x8b, 0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x87, 0x2af: 0x88,\n\t0x2b0: 0x89, 0x2b1: 0x8a, 0x2b2: 0x8b, 0x2b3: 0x8c, 0x2b4: 0x8d, 0x2b5: 0x87, 0x2b6: 0x88, 0x2b7: 0x89,\n\t0x2b8: 0x8a, 0x2b9: 0x8b, 0x2ba: 0x8c, 0x2bb: 0x8d, 0x2bc: 0x87, 0x2bd: 0x88, 0x2be: 0x89, 0x2bf: 0x8a,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x8b, 0x2c1: 0x8c, 0x2c2: 0x8d, 0x2c3: 0x87, 0x2c4: 0x88, 0x2c5: 0x89, 0x2c6: 0x8a, 0x2c7: 0x8b,\n\t0x2c8: 0x8c, 0x2c9: 0x8d, 0x2ca: 0x87, 0x2cb: 0x88, 0x2cc: 0x89, 0x2cd: 0x8a, 0x2ce: 0x8b, 0x2cf: 0x8c,\n\t0x2d0: 0x8d, 0x2d1: 0x87, 0x2d2: 0x88, 0x2d3: 0x89, 0x2d4: 0x8a, 0x2d5: 0x8b, 0x2d6: 0x8c, 0x2d7: 0x8d,\n\t0x2d8: 0x87, 0x2d9: 0x88, 0x2da: 0x89, 0x2db: 0x8a, 0x2dc: 0x8b, 0x2dd: 0x8c, 0x2de: 0x8e,\n\t// Block 0xc, offset 0x300\n\t0x324: 0x1c, 0x325: 0x1d, 0x326: 0x1e, 0x327: 0x1f,\n\t0x328: 0x20, 0x329: 0x21, 0x32a: 0x22, 0x32b: 0x23, 0x32c: 0x8f, 0x32d: 0x90, 0x32e: 0x91,\n\t0x331: 0x92, 0x332: 0x93, 0x333: 0x94, 0x334: 0x95,\n\t0x338: 0x96, 0x339: 0x97, 0x33a: 0x98, 0x33b: 0x99, 0x33e: 0x9a, 0x33f: 0x9b,\n\t// Block 0xd, offset 0x340\n\t0x347: 0x9c,\n\t0x34b: 0x9d, 0x34d: 0x9e,\n\t0x368: 0x9f, 0x36b: 0xa0,\n\t// Block 0xe, offset 0x380\n\t0x381: 0xa1, 0x382: 0xa2, 0x384: 0xa3, 0x385: 0x82, 0x387: 0xa4,\n\t0x388: 0xa5, 0x38b: 0xa6, 0x38c: 0x3f, 0x38d: 0xa7,\n\t0x391: 0xa8, 0x392: 0xa9, 0x393: 0xaa, 0x396: 0xab, 0x397: 0xac,\n\t0x398: 0x73, 0x39a: 0xad, 0x39c: 0xae,\n\t0x3a8: 0xaf, 0x3a9: 0xb0, 0x3aa: 0xb1,\n\t0x3b0: 0x73, 0x3b5: 0xb2,\n\t// Block 0xf, offset 0x3c0\n\t0x3eb: 0xb3, 0x3ec: 0xb4,\n\t// Block 0x10, offset 0x400\n\t0x432: 0xb5,\n\t// Block 0x11, offset 0x440\n\t0x445: 0xb6, 0x446: 0xb7, 0x447: 0xb8,\n\t0x449: 0xb9,\n\t// Block 0x12, offset 0x480\n\t0x480: 0xba,\n\t0x4a3: 0xbb, 0x4a5: 0xbc,\n\t// Block 0x13, offset 0x4c0\n\t0x4c8: 0xbd,\n\t// Block 0x14, offset 0x500\n\t0x520: 0x24, 0x521: 0x25, 0x522: 0x26, 0x523: 0x27, 0x524: 0x28, 0x525: 0x29, 0x526: 0x2a, 0x527: 0x2b,\n\t0x528: 0x2c,\n\t// Block 0x15, offset 0x540\n\t0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,\n\t0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,\n\t0x56f: 0x12,\n}\n\n// nfcSparseOffset: 145 entries, 290 bytes\nvar nfcSparseOffset = []uint16{0x0, 0x5, 0x9, 0xb, 0xd, 0x18, 0x28, 0x2a, 0x2f, 0x3a, 0x49, 0x56, 0x5e, 0x62, 0x67, 0x69, 0x7a, 0x82, 0x89, 0x8c, 0x93, 0x97, 0x9b, 0x9d, 0x9f, 0xa8, 0xac, 0xb3, 0xb8, 0xbb, 0xc5, 0xc8, 0xcf, 0xd7, 0xda, 0xdc, 0xde, 0xe0, 0xe5, 0xf6, 0x102, 0x104, 0x10a, 0x10c, 0x10e, 0x110, 0x112, 0x114, 0x116, 0x119, 0x11c, 0x11e, 0x121, 0x124, 0x128, 0x12d, 0x136, 0x138, 0x13b, 0x13d, 0x148, 0x14c, 0x15a, 0x15d, 0x163, 0x169, 0x174, 0x178, 0x17a, 0x17c, 0x17e, 0x180, 0x182, 0x188, 0x18c, 0x18e, 0x190, 0x198, 0x19c, 0x19f, 0x1a1, 0x1a3, 0x1a5, 0x1a8, 0x1aa, 0x1ac, 0x1ae, 0x1b0, 0x1b6, 0x1b9, 0x1bb, 0x1c2, 0x1c8, 0x1ce, 0x1d6, 0x1dc, 0x1e2, 0x1e8, 0x1ec, 0x1fa, 0x203, 0x206, 0x209, 0x20b, 0x20e, 0x210, 0x214, 0x219, 0x21b, 0x21d, 0x222, 0x228, 0x22a, 0x22c, 0x22e, 0x234, 0x237, 0x23a, 0x242, 0x249, 0x24c, 0x24f, 0x251, 0x259, 0x25c, 0x263, 0x266, 0x26c, 0x26e, 0x271, 0x273, 0x275, 0x277, 0x279, 0x27c, 0x27e, 0x280, 0x282, 0x28f, 0x299, 0x29b, 0x29d, 0x2a3, 0x2a5, 0x2a8}\n\n// nfcSparseValues: 682 entries, 2728 bytes\nvar nfcSparseValues = [682]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0xa100, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8100, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8100, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8100, lo: 0xb8, hi: 0xb8},\n\t// Block 0x1, offset 0x5\n\t{value: 0x0091, lo: 0x03},\n\t{value: 0x46e2, lo: 0xa0, hi: 0xa1},\n\t{value: 0x4714, lo: 0xaf, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb7, hi: 0xb7},\n\t// Block 0x2, offset 0x9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t// Block 0x3, offset 0xb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x98, hi: 0x9d},\n\t// Block 0x4, offset 0xd\n\t{value: 0x0006, lo: 0x0a},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x85, hi: 0x85},\n\t{value: 0xa000, lo: 0x89, hi: 0x89},\n\t{value: 0x4840, lo: 0x8a, hi: 0x8a},\n\t{value: 0x485e, lo: 0x8b, hi: 0x8b},\n\t{value: 0x36c7, lo: 0x8c, hi: 0x8c},\n\t{value: 0x36df, lo: 0x8d, hi: 0x8d},\n\t{value: 0x4876, lo: 0x8e, hi: 0x8e},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x36fd, lo: 0x93, hi: 0x94},\n\t// Block 0x5, offset 0x18\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0xa000, lo: 0x8d, hi: 0x8d},\n\t{value: 0x37a5, lo: 0x90, hi: 0x90},\n\t{value: 0x37b1, lo: 0x91, hi: 0x91},\n\t{value: 0x379f, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x96, hi: 0x96},\n\t{value: 0x3817, lo: 0x97, hi: 0x97},\n\t{value: 0x37e1, lo: 0x9c, hi: 0x9c},\n\t{value: 0x37c9, lo: 0x9d, hi: 0x9d},\n\t{value: 0x37f3, lo: 0x9e, hi: 0x9e},\n\t{value: 0xa000, lo: 0xb4, hi: 0xb5},\n\t{value: 0x381d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3823, lo: 0xb7, hi: 0xb7},\n\t// Block 0x6, offset 0x28\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x83, hi: 0x87},\n\t// Block 0x7, offset 0x2a\n\t{value: 0x0001, lo: 0x04},\n\t{value: 0x8113, lo: 0x81, hi: 0x82},\n\t{value: 0x8132, lo: 0x84, hi: 0x84},\n\t{value: 0x812d, lo: 0x85, hi: 0x85},\n\t{value: 0x810d, lo: 0x87, hi: 0x87},\n\t// Block 0x8, offset 0x2f\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x97},\n\t{value: 0x8119, lo: 0x98, hi: 0x98},\n\t{value: 0x811a, lo: 0x99, hi: 0x99},\n\t{value: 0x811b, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3841, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3847, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3853, lo: 0xa4, hi: 0xa4},\n\t{value: 0x384d, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3859, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xa7, hi: 0xa7},\n\t// Block 0x9, offset 0x3a\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x386b, lo: 0x80, hi: 0x80},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0x385f, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x3865, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x95, hi: 0x95},\n\t{value: 0x8132, lo: 0x96, hi: 0x9c},\n\t{value: 0x8132, lo: 0x9f, hi: 0xa2},\n\t{value: 0x812d, lo: 0xa3, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa8},\n\t{value: 0x812d, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8132, lo: 0xab, hi: 0xac},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t// Block 0xa, offset 0x49\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x811f, lo: 0x91, hi: 0x91},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x812d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb5, hi: 0xb6},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb9},\n\t{value: 0x8132, lo: 0xba, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbc},\n\t{value: 0x8132, lo: 0xbd, hi: 0xbd},\n\t{value: 0x812d, lo: 0xbe, hi: 0xbe},\n\t{value: 0x8132, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb, offset 0x56\n\t{value: 0x0005, lo: 0x07},\n\t{value: 0x8132, lo: 0x80, hi: 0x80},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x812d, lo: 0x82, hi: 0x83},\n\t{value: 0x812d, lo: 0x84, hi: 0x85},\n\t{value: 0x812d, lo: 0x86, hi: 0x87},\n\t{value: 0x812d, lo: 0x88, hi: 0x89},\n\t{value: 0x8132, lo: 0x8a, hi: 0x8a},\n\t// Block 0xc, offset 0x5e\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8132, lo: 0xab, hi: 0xb1},\n\t{value: 0x812d, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8132, lo: 0xb3, hi: 0xb3},\n\t// Block 0xd, offset 0x62\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0x96, hi: 0x99},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa7},\n\t{value: 0x8132, lo: 0xa9, hi: 0xad},\n\t// Block 0xe, offset 0x67\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x99, hi: 0x9b},\n\t// Block 0xf, offset 0x69\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x8132, lo: 0x94, hi: 0xa1},\n\t{value: 0x812d, lo: 0xa3, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa5},\n\t{value: 0x812d, lo: 0xa6, hi: 0xa6},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa8},\n\t{value: 0x812d, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8132, lo: 0xaa, hi: 0xac},\n\t{value: 0x812d, lo: 0xad, hi: 0xaf},\n\t{value: 0x8116, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8117, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8118, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8132, lo: 0xb3, hi: 0xb5},\n\t{value: 0x812d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8132, lo: 0xb7, hi: 0xb8},\n\t{value: 0x812d, lo: 0xb9, hi: 0xba},\n\t{value: 0x8132, lo: 0xbb, hi: 0xbf},\n\t// Block 0x10, offset 0x7a\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3ed8, lo: 0xa9, hi: 0xa9},\n\t{value: 0xa000, lo: 0xb0, hi: 0xb0},\n\t{value: 0x3ee0, lo: 0xb1, hi: 0xb1},\n\t{value: 0xa000, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3ee8, lo: 0xb4, hi: 0xb4},\n\t{value: 0x9902, lo: 0xbc, hi: 0xbc},\n\t// Block 0x11, offset 0x82\n\t{value: 0x0008, lo: 0x06},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x91, hi: 0x91},\n\t{value: 0x812d, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x93, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x94},\n\t{value: 0x451c, lo: 0x98, hi: 0x9f},\n\t// Block 0x12, offset 0x89\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x13, offset 0x8c\n\t{value: 0x0008, lo: 0x06},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2c9e, lo: 0x8b, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x455c, lo: 0x9c, hi: 0x9d},\n\t{value: 0x456c, lo: 0x9f, hi: 0x9f},\n\t// Block 0x14, offset 0x93\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x4594, lo: 0xb3, hi: 0xb3},\n\t{value: 0x459c, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x15, offset 0x97\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x4574, lo: 0x99, hi: 0x9b},\n\t{value: 0x458c, lo: 0x9e, hi: 0x9e},\n\t// Block 0x16, offset 0x9b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x17, offset 0x9d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t// Block 0x18, offset 0x9f\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2cb6, lo: 0x88, hi: 0x88},\n\t{value: 0x2cae, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cbe, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x96, hi: 0x97},\n\t{value: 0x45a4, lo: 0x9c, hi: 0x9c},\n\t{value: 0x45ac, lo: 0x9d, hi: 0x9d},\n\t// Block 0x19, offset 0xa8\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x2cc6, lo: 0x94, hi: 0x94},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1a, offset 0xac\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cce, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2cde, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cd6, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1b, offset 0xb3\n\t{value: 0x1801, lo: 0x04},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x3ef0, lo: 0x88, hi: 0x88},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8120, lo: 0x95, hi: 0x96},\n\t// Block 0x1c, offset 0xb8\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0xa000, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1d, offset 0xbb\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x2ce6, lo: 0x80, hi: 0x80},\n\t{value: 0x9900, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x2cee, lo: 0x87, hi: 0x87},\n\t{value: 0x2cf6, lo: 0x88, hi: 0x88},\n\t{value: 0x2f50, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2dd8, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x95, hi: 0x96},\n\t// Block 0x1e, offset 0xc5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xbb, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1f, offset 0xc8\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cfe, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2d0e, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d06, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x20, offset 0xcf\n\t{value: 0x6bea, lo: 0x07},\n\t{value: 0x9904, lo: 0x8a, hi: 0x8a},\n\t{value: 0x9900, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x3ef8, lo: 0x9a, hi: 0x9a},\n\t{value: 0x2f58, lo: 0x9c, hi: 0x9c},\n\t{value: 0x2de3, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2d16, lo: 0x9e, hi: 0x9f},\n\t// Block 0x21, offset 0xd7\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8122, lo: 0xb8, hi: 0xb9},\n\t{value: 0x8104, lo: 0xba, hi: 0xba},\n\t// Block 0x22, offset 0xda\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8123, lo: 0x88, hi: 0x8b},\n\t// Block 0x23, offset 0xdc\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8124, lo: 0xb8, hi: 0xb9},\n\t// Block 0x24, offset 0xde\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8125, lo: 0x88, hi: 0x8b},\n\t// Block 0x25, offset 0xe0\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x812d, lo: 0x98, hi: 0x99},\n\t{value: 0x812d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb7},\n\t{value: 0x812b, lo: 0xb9, hi: 0xb9},\n\t// Block 0x26, offset 0xe5\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x2644, lo: 0x83, hi: 0x83},\n\t{value: 0x264b, lo: 0x8d, hi: 0x8d},\n\t{value: 0x2652, lo: 0x92, hi: 0x92},\n\t{value: 0x2659, lo: 0x97, hi: 0x97},\n\t{value: 0x2660, lo: 0x9c, hi: 0x9c},\n\t{value: 0x263d, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8126, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8127, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4a84, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8128, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4a8d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x45b4, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8200, lo: 0xb7, hi: 0xb7},\n\t{value: 0x45bc, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8200, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8127, lo: 0xba, hi: 0xbd},\n\t// Block 0x27, offset 0xf6\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x8127, lo: 0x80, hi: 0x80},\n\t{value: 0x4a96, lo: 0x81, hi: 0x81},\n\t{value: 0x8132, lo: 0x82, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0x86, hi: 0x87},\n\t{value: 0x266e, lo: 0x93, hi: 0x93},\n\t{value: 0x2675, lo: 0x9d, hi: 0x9d},\n\t{value: 0x267c, lo: 0xa2, hi: 0xa2},\n\t{value: 0x2683, lo: 0xa7, hi: 0xa7},\n\t{value: 0x268a, lo: 0xac, hi: 0xac},\n\t{value: 0x2667, lo: 0xb9, hi: 0xb9},\n\t// Block 0x28, offset 0x102\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x86, hi: 0x86},\n\t// Block 0x29, offset 0x104\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x2d1e, lo: 0xa6, hi: 0xa6},\n\t{value: 0x9900, lo: 0xae, hi: 0xae},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x2a, offset 0x10a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t// Block 0x2b, offset 0x10c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x80, hi: 0x92},\n\t// Block 0x2c, offset 0x10e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xb900, lo: 0xa1, hi: 0xb5},\n\t// Block 0x2d, offset 0x110\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0xa8, hi: 0xbf},\n\t// Block 0x2e, offset 0x112\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0x80, hi: 0x82},\n\t// Block 0x2f, offset 0x114\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9f},\n\t// Block 0x30, offset 0x116\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x94, hi: 0x94},\n\t{value: 0x8104, lo: 0xb4, hi: 0xb4},\n\t// Block 0x31, offset 0x119\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9d},\n\t// Block 0x32, offset 0x11c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8131, lo: 0xa9, hi: 0xa9},\n\t// Block 0x33, offset 0x11e\n\t{value: 0x0004, lo: 0x02},\n\t{value: 0x812e, lo: 0xb9, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbb},\n\t// Block 0x34, offset 0x121\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x97, hi: 0x97},\n\t{value: 0x812d, lo: 0x98, hi: 0x98},\n\t// Block 0x35, offset 0x124\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8104, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8132, lo: 0xb5, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbf, hi: 0xbf},\n\t// Block 0x36, offset 0x128\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t{value: 0x812d, lo: 0xb5, hi: 0xba},\n\t{value: 0x8132, lo: 0xbb, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x37, offset 0x12d\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x2d66, lo: 0x80, hi: 0x80},\n\t{value: 0x2d6e, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x82, hi: 0x82},\n\t{value: 0x2d76, lo: 0x83, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xab, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xac},\n\t{value: 0x8132, lo: 0xad, hi: 0xb3},\n\t// Block 0x38, offset 0x136\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xaa, hi: 0xab},\n\t// Block 0x39, offset 0x138\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xa6, hi: 0xa6},\n\t{value: 0x8104, lo: 0xb2, hi: 0xb3},\n\t// Block 0x3a, offset 0x13b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x3b, offset 0x13d\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x92},\n\t{value: 0x8101, lo: 0x94, hi: 0x94},\n\t{value: 0x812d, lo: 0x95, hi: 0x99},\n\t{value: 0x8132, lo: 0x9a, hi: 0x9b},\n\t{value: 0x812d, lo: 0x9c, hi: 0x9f},\n\t{value: 0x8132, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8101, lo: 0xa2, hi: 0xa8},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t{value: 0x8132, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb9},\n\t// Block 0x3c, offset 0x148\n\t{value: 0x0004, lo: 0x03},\n\t{value: 0x0433, lo: 0x80, hi: 0x81},\n\t{value: 0x8100, lo: 0x97, hi: 0x97},\n\t{value: 0x8100, lo: 0xbe, hi: 0xbe},\n\t// Block 0x3d, offset 0x14c\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x8132, lo: 0x90, hi: 0x91},\n\t{value: 0x8101, lo: 0x92, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x97},\n\t{value: 0x8101, lo: 0x98, hi: 0x9a},\n\t{value: 0x8132, lo: 0x9b, hi: 0x9c},\n\t{value: 0x8132, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8101, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa7},\n\t{value: 0x812d, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8132, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8101, lo: 0xaa, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t// Block 0x3e, offset 0x15a\n\t{value: 0x427b, lo: 0x02},\n\t{value: 0x01b8, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0057, lo: 0xaa, hi: 0xab},\n\t// Block 0x3f, offset 0x15d\n\t{value: 0x0007, lo: 0x05},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t{value: 0x3bb9, lo: 0x9a, hi: 0x9b},\n\t{value: 0x3bc7, lo: 0xae, hi: 0xae},\n\t// Block 0x40, offset 0x163\n\t{value: 0x000e, lo: 0x05},\n\t{value: 0x3bce, lo: 0x8d, hi: 0x8e},\n\t{value: 0x3bd5, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t// Block 0x41, offset 0x169\n\t{value: 0x6408, lo: 0x0a},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0x3be3, lo: 0x84, hi: 0x84},\n\t{value: 0xa000, lo: 0x88, hi: 0x88},\n\t{value: 0x3bea, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0x3bf1, lo: 0x8c, hi: 0x8c},\n\t{value: 0xa000, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3bf8, lo: 0xa4, hi: 0xa5},\n\t{value: 0x3bff, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xbc, hi: 0xbc},\n\t// Block 0x42, offset 0x174\n\t{value: 0x0007, lo: 0x03},\n\t{value: 0x3c68, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3c92, lo: 0xa2, hi: 0xa3},\n\t{value: 0x3cbc, lo: 0xaa, hi: 0xad},\n\t// Block 0x43, offset 0x178\n\t{value: 0x0004, lo: 0x01},\n\t{value: 0x048b, lo: 0xa9, hi: 0xaa},\n\t// Block 0x44, offset 0x17a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x44dd, lo: 0x9c, hi: 0x9c},\n\t// Block 0x45, offset 0x17c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xaf, hi: 0xb1},\n\t// Block 0x46, offset 0x17e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x47, offset 0x180\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xa0, hi: 0xbf},\n\t// Block 0x48, offset 0x182\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x812c, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8131, lo: 0xab, hi: 0xab},\n\t{value: 0x8133, lo: 0xac, hi: 0xac},\n\t{value: 0x812e, lo: 0xad, hi: 0xad},\n\t{value: 0x812f, lo: 0xae, hi: 0xaf},\n\t// Block 0x49, offset 0x188\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x4a9f, lo: 0xb3, hi: 0xb3},\n\t{value: 0x4a9f, lo: 0xb5, hi: 0xb6},\n\t{value: 0x4a9f, lo: 0xba, hi: 0xbf},\n\t// Block 0x4a, offset 0x18c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x4a9f, lo: 0x8f, hi: 0xa3},\n\t// Block 0x4b, offset 0x18e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xae, hi: 0xbe},\n\t// Block 0x4c, offset 0x190\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x8100, lo: 0x84, hi: 0x84},\n\t{value: 0x8100, lo: 0x87, hi: 0x87},\n\t{value: 0x8100, lo: 0x90, hi: 0x90},\n\t{value: 0x8100, lo: 0x9e, hi: 0x9e},\n\t{value: 0x8100, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8100, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8100, lo: 0xbb, hi: 0xbb},\n\t// Block 0x4d, offset 0x198\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8100, lo: 0x80, hi: 0x80},\n\t{value: 0x8100, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8100, lo: 0x8e, hi: 0x8e},\n\t// Block 0x4e, offset 0x19c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb4, hi: 0xbd},\n\t// Block 0x4f, offset 0x19f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x9e, hi: 0x9f},\n\t// Block 0x50, offset 0x1a1\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb1},\n\t// Block 0x51, offset 0x1a3\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t// Block 0x52, offset 0x1a5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xa0, hi: 0xb1},\n\t// Block 0x53, offset 0x1a8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xab, hi: 0xad},\n\t// Block 0x54, offset 0x1aa\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x93, hi: 0x93},\n\t// Block 0x55, offset 0x1ac\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb3, hi: 0xb3},\n\t// Block 0x56, offset 0x1ae\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t// Block 0x57, offset 0x1b0\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb7, hi: 0xb8},\n\t{value: 0x8132, lo: 0xbe, hi: 0xbf},\n\t// Block 0x58, offset 0x1b6\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t// Block 0x59, offset 0x1b9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xad, hi: 0xad},\n\t// Block 0x5a, offset 0x1bb\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe500, lo: 0x80, hi: 0x80},\n\t{value: 0xc600, lo: 0x81, hi: 0x9b},\n\t{value: 0xe500, lo: 0x9c, hi: 0x9c},\n\t{value: 0xc600, lo: 0x9d, hi: 0xb7},\n\t{value: 0xe500, lo: 0xb8, hi: 0xb8},\n\t{value: 0xc600, lo: 0xb9, hi: 0xbf},\n\t// Block 0x5b, offset 0x1c2\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x93},\n\t{value: 0xe500, lo: 0x94, hi: 0x94},\n\t{value: 0xc600, lo: 0x95, hi: 0xaf},\n\t{value: 0xe500, lo: 0xb0, hi: 0xb0},\n\t{value: 0xc600, lo: 0xb1, hi: 0xbf},\n\t// Block 0x5c, offset 0x1c8\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8b},\n\t{value: 0xe500, lo: 0x8c, hi: 0x8c},\n\t{value: 0xc600, lo: 0x8d, hi: 0xa7},\n\t{value: 0xe500, lo: 0xa8, hi: 0xa8},\n\t{value: 0xc600, lo: 0xa9, hi: 0xbf},\n\t// Block 0x5d, offset 0x1ce\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xc600, lo: 0x80, hi: 0x83},\n\t{value: 0xe500, lo: 0x84, hi: 0x84},\n\t{value: 0xc600, lo: 0x85, hi: 0x9f},\n\t{value: 0xe500, lo: 0xa0, hi: 0xa0},\n\t{value: 0xc600, lo: 0xa1, hi: 0xbb},\n\t{value: 0xe500, lo: 0xbc, hi: 0xbc},\n\t{value: 0xc600, lo: 0xbd, hi: 0xbf},\n\t// Block 0x5e, offset 0x1d6\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x97},\n\t{value: 0xe500, lo: 0x98, hi: 0x98},\n\t{value: 0xc600, lo: 0x99, hi: 0xb3},\n\t{value: 0xe500, lo: 0xb4, hi: 0xb4},\n\t{value: 0xc600, lo: 0xb5, hi: 0xbf},\n\t// Block 0x5f, offset 0x1dc\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8f},\n\t{value: 0xe500, lo: 0x90, hi: 0x90},\n\t{value: 0xc600, lo: 0x91, hi: 0xab},\n\t{value: 0xe500, lo: 0xac, hi: 0xac},\n\t{value: 0xc600, lo: 0xad, hi: 0xbf},\n\t// Block 0x60, offset 0x1e2\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t{value: 0xe500, lo: 0xa4, hi: 0xa4},\n\t{value: 0xc600, lo: 0xa5, hi: 0xbf},\n\t// Block 0x61, offset 0x1e8\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t// Block 0x62, offset 0x1ec\n\t{value: 0x0006, lo: 0x0d},\n\t{value: 0x4390, lo: 0x9d, hi: 0x9d},\n\t{value: 0x8115, lo: 0x9e, hi: 0x9e},\n\t{value: 0x4402, lo: 0x9f, hi: 0x9f},\n\t{value: 0x43f0, lo: 0xaa, hi: 0xab},\n\t{value: 0x44f4, lo: 0xac, hi: 0xac},\n\t{value: 0x44fc, lo: 0xad, hi: 0xad},\n\t{value: 0x4348, lo: 0xae, hi: 0xb1},\n\t{value: 0x4366, lo: 0xb2, hi: 0xb4},\n\t{value: 0x437e, lo: 0xb5, hi: 0xb6},\n\t{value: 0x438a, lo: 0xb8, hi: 0xb8},\n\t{value: 0x4396, lo: 0xb9, hi: 0xbb},\n\t{value: 0x43ae, lo: 0xbc, hi: 0xbc},\n\t{value: 0x43b4, lo: 0xbe, hi: 0xbe},\n\t// Block 0x63, offset 0x1fa\n\t{value: 0x0006, lo: 0x08},\n\t{value: 0x43ba, lo: 0x80, hi: 0x81},\n\t{value: 0x43c6, lo: 0x83, hi: 0x84},\n\t{value: 0x43d8, lo: 0x86, hi: 0x89},\n\t{value: 0x43fc, lo: 0x8a, hi: 0x8a},\n\t{value: 0x4378, lo: 0x8b, hi: 0x8b},\n\t{value: 0x4360, lo: 0x8c, hi: 0x8c},\n\t{value: 0x43a8, lo: 0x8d, hi: 0x8d},\n\t{value: 0x43d2, lo: 0x8e, hi: 0x8e},\n\t// Block 0x64, offset 0x203\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0xa4, hi: 0xa5},\n\t{value: 0x8100, lo: 0xb0, hi: 0xb1},\n\t// Block 0x65, offset 0x206\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0x9b, hi: 0x9d},\n\t{value: 0x8200, lo: 0x9e, hi: 0xa3},\n\t// Block 0x66, offset 0x209\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x90, hi: 0x90},\n\t// Block 0x67, offset 0x20b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0x99, hi: 0x99},\n\t{value: 0x8200, lo: 0xb2, hi: 0xb4},\n\t// Block 0x68, offset 0x20e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xbc, hi: 0xbd},\n\t// Block 0x69, offset 0x210\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8132, lo: 0xa0, hi: 0xa6},\n\t{value: 0x812d, lo: 0xa7, hi: 0xad},\n\t{value: 0x8132, lo: 0xae, hi: 0xaf},\n\t// Block 0x6a, offset 0x214\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8100, lo: 0x89, hi: 0x8c},\n\t{value: 0x8100, lo: 0xb0, hi: 0xb2},\n\t{value: 0x8100, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8100, lo: 0xb6, hi: 0xbf},\n\t// Block 0x6b, offset 0x219\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x81, hi: 0x8c},\n\t// Block 0x6c, offset 0x21b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xb5, hi: 0xba},\n\t// Block 0x6d, offset 0x21d\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x4a9f, lo: 0x9e, hi: 0x9f},\n\t{value: 0x4a9f, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4a9f, lo: 0xa5, hi: 0xa6},\n\t{value: 0x4a9f, lo: 0xaa, hi: 0xaf},\n\t// Block 0x6e, offset 0x222\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x4a9f, lo: 0x82, hi: 0x87},\n\t{value: 0x4a9f, lo: 0x8a, hi: 0x8f},\n\t{value: 0x4a9f, lo: 0x92, hi: 0x97},\n\t{value: 0x4a9f, lo: 0x9a, hi: 0x9c},\n\t{value: 0x8100, lo: 0xa3, hi: 0xa3},\n\t// Block 0x6f, offset 0x228\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x70, offset 0x22a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xa0, hi: 0xa0},\n\t// Block 0x71, offset 0x22c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb6, hi: 0xba},\n\t// Block 0x72, offset 0x22e\n\t{value: 0x002c, lo: 0x05},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x8f, hi: 0x8f},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8101, lo: 0xb9, hi: 0xba},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x73, offset 0x234\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa5},\n\t{value: 0x812d, lo: 0xa6, hi: 0xa6},\n\t// Block 0x74, offset 0x237\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x75, offset 0x23a\n\t{value: 0x17fe, lo: 0x07},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x4238, lo: 0x9a, hi: 0x9a},\n\t{value: 0xa000, lo: 0x9b, hi: 0x9b},\n\t{value: 0x4242, lo: 0x9c, hi: 0x9c},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x424c, lo: 0xab, hi: 0xab},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x76, offset 0x242\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x8132, lo: 0x80, hi: 0x82},\n\t{value: 0x9900, lo: 0xa7, hi: 0xa7},\n\t{value: 0x2d7e, lo: 0xae, hi: 0xae},\n\t{value: 0x2d88, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb1, hi: 0xb2},\n\t{value: 0x8104, lo: 0xb3, hi: 0xb4},\n\t// Block 0x77, offset 0x249\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0x78, offset 0x24c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb5, hi: 0xb5},\n\t{value: 0x8102, lo: 0xb6, hi: 0xb6},\n\t// Block 0x79, offset 0x24f\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x8102, lo: 0xa9, hi: 0xaa},\n\t// Block 0x7a, offset 0x251\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2d92, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d9c, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x8132, lo: 0xa6, hi: 0xac},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t// Block 0x7b, offset 0x259\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x86, hi: 0x86},\n\t// Block 0x7c, offset 0x25c\n\t{value: 0x6b5a, lo: 0x06},\n\t{value: 0x9900, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb9, hi: 0xb9},\n\t{value: 0x9900, lo: 0xba, hi: 0xba},\n\t{value: 0x2db0, lo: 0xbb, hi: 0xbb},\n\t{value: 0x2da6, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2dba, lo: 0xbe, hi: 0xbe},\n\t// Block 0x7d, offset 0x263\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x83, hi: 0x83},\n\t// Block 0x7e, offset 0x266\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x9900, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2dc4, lo: 0xba, hi: 0xba},\n\t{value: 0x2dce, lo: 0xbb, hi: 0xbb},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7f, offset 0x26c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0x80, hi: 0x80},\n\t// Block 0x80, offset 0x26e\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x81, offset 0x271\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xab, hi: 0xab},\n\t// Block 0x82, offset 0x273\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xb4, hi: 0xb4},\n\t// Block 0x83, offset 0x275\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x87, hi: 0x87},\n\t// Block 0x84, offset 0x277\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x99, hi: 0x99},\n\t// Block 0x85, offset 0x279\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0x82, hi: 0x82},\n\t{value: 0x8104, lo: 0x84, hi: 0x85},\n\t// Block 0x86, offset 0x27c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0xb0, hi: 0xb4},\n\t// Block 0x87, offset 0x27e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb6},\n\t// Block 0x88, offset 0x280\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0x9e, hi: 0x9e},\n\t// Block 0x89, offset 0x282\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x45cc, lo: 0x9e, hi: 0x9e},\n\t{value: 0x45d6, lo: 0x9f, hi: 0x9f},\n\t{value: 0x460a, lo: 0xa0, hi: 0xa0},\n\t{value: 0x4618, lo: 0xa1, hi: 0xa1},\n\t{value: 0x4626, lo: 0xa2, hi: 0xa2},\n\t{value: 0x4634, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4642, lo: 0xa4, hi: 0xa4},\n\t{value: 0x812b, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8101, lo: 0xa7, hi: 0xa9},\n\t{value: 0x8130, lo: 0xad, hi: 0xad},\n\t{value: 0x812b, lo: 0xae, hi: 0xb2},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbf},\n\t// Block 0x8a, offset 0x28f\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x812d, lo: 0x80, hi: 0x82},\n\t{value: 0x8132, lo: 0x85, hi: 0x89},\n\t{value: 0x812d, lo: 0x8a, hi: 0x8b},\n\t{value: 0x8132, lo: 0xaa, hi: 0xad},\n\t{value: 0x45e0, lo: 0xbb, hi: 0xbb},\n\t{value: 0x45ea, lo: 0xbc, hi: 0xbc},\n\t{value: 0x4650, lo: 0xbd, hi: 0xbd},\n\t{value: 0x466c, lo: 0xbe, hi: 0xbe},\n\t{value: 0x465e, lo: 0xbf, hi: 0xbf},\n\t// Block 0x8b, offset 0x299\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x467a, lo: 0x80, hi: 0x80},\n\t// Block 0x8c, offset 0x29b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x82, hi: 0x84},\n\t// Block 0x8d, offset 0x29d\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0x80, hi: 0x86},\n\t{value: 0x8132, lo: 0x88, hi: 0x98},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa1},\n\t{value: 0x8132, lo: 0xa3, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa6, hi: 0xaa},\n\t// Block 0x8e, offset 0x2a3\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x90, hi: 0x96},\n\t// Block 0x8f, offset 0x2a5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x84, hi: 0x89},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0x90, offset 0x2a8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x93, hi: 0x93},\n}\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfkcTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfkcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfkcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfkcTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfkcValues[c0]\n\t}\n\ti := nfkcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfkcTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfkcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfkcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfkcTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfkcValues[c0]\n\t}\n\ti := nfkcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// nfkcTrie. Total size: 17104 bytes (16.70 KiB). Checksum: d985061cf5307b35.\ntype nfkcTrie struct{}\n\nfunc newNfkcTrie(i int) *nfkcTrie {\n\treturn &nfkcTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *nfkcTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 91:\n\t\treturn uint16(nfkcValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 91\n\t\treturn uint16(nfkcSparse.lookup(n, b))\n\t}\n}\n\n// nfkcValues: 93 blocks, 5952 entries, 11904 bytes\n// The third block is the zero block.\nvar nfkcValues = [5952]uint16{\n\t// Block 0x0, offset 0x0\n\t0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000,\n\t// Block 0x1, offset 0x40\n\t0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000,\n\t0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000,\n\t0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000,\n\t0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000,\n\t0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000,\n\t0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000,\n\t0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000,\n\t0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000,\n\t0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000,\n\t0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c,\n\t0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb,\n\t0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104,\n\t0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd,\n\t0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235,\n\t0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285,\n\t0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3,\n\t0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750,\n\t0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f,\n\t0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3,\n\t0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569,\n\t// Block 0x4, offset 0x100\n\t0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8,\n\t0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6,\n\t0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5,\n\t0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302,\n\t0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339,\n\t0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352,\n\t0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e,\n\t0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6,\n\t0x130: 0x308c, 0x132: 0x195d, 0x133: 0x19e7, 0x134: 0x30b4, 0x135: 0x33c0,\n\t0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc,\n\t0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8, 0x13f: 0x1bac,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x1c34, 0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118,\n\t0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f, 0x149: 0x1c5c,\n\t0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c,\n\t0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483,\n\t0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d,\n\t0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba,\n\t0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796,\n\t0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2,\n\t0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528,\n\t0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267,\n\t0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0x00a7,\n\t// Block 0x6, offset 0x180\n\t0x184: 0x2dee, 0x185: 0x2df4,\n\t0x186: 0x2dfa, 0x187: 0x1972, 0x188: 0x1975, 0x189: 0x1a08, 0x18a: 0x1987, 0x18b: 0x198a,\n\t0x18c: 0x1a3e, 0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140,\n\t0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8,\n\t0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50,\n\t0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5,\n\t0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf,\n\t0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd,\n\t0x1b0: 0x33c5, 0x1b1: 0x1942, 0x1b2: 0x1945, 0x1b3: 0x19cf, 0x1b4: 0x3028, 0x1b5: 0x3334,\n\t0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46,\n\t0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316,\n\t0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac,\n\t0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479,\n\t0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6,\n\t0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5,\n\t0x1de: 0x305a, 0x1df: 0x3366,\n\t0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b,\n\t0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769,\n\t0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132,\n\t0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932,\n\t0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932,\n\t0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d,\n\t0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d,\n\t0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d,\n\t0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d,\n\t0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d,\n\t0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101,\n\t0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d,\n\t0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936,\n\t0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132,\n\t0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132,\n\t0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132,\n\t0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135,\n\t0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132,\n\t0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132,\n\t0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132,\n\t0x274: 0x0170,\n\t0x27a: 0x42a5,\n\t0x27e: 0x0037,\n\t// Block 0xa, offset 0x280\n\t0x284: 0x425a, 0x285: 0x447b,\n\t0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625,\n\t0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000,\n\t0x295: 0xa000, 0x297: 0xa000,\n\t0x299: 0xa000,\n\t0x29f: 0xa000, 0x2a1: 0xa000,\n\t0x2a5: 0xa000, 0x2a9: 0xa000,\n\t0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9,\n\t0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000,\n\t0x2b7: 0xa000, 0x2b9: 0xa000,\n\t0x2bf: 0xa000,\n\t// Block 0xb, offset 0x2c0\n\t0x2c1: 0xa000, 0x2c5: 0xa000,\n\t0x2c9: 0xa000, 0x2ca: 0x4840, 0x2cb: 0x485e,\n\t0x2cc: 0x36c7, 0x2cd: 0x36df, 0x2ce: 0x4876, 0x2d0: 0x01be, 0x2d1: 0x01d0,\n\t0x2d2: 0x01ac, 0x2d3: 0x430c, 0x2d4: 0x4312, 0x2d5: 0x01fa, 0x2d6: 0x01e8,\n\t0x2f0: 0x01d6, 0x2f1: 0x01eb, 0x2f2: 0x01ee, 0x2f4: 0x0188, 0x2f5: 0x01c7,\n\t0x2f9: 0x01a6,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x3721, 0x301: 0x372d, 0x303: 0x371b,\n\t0x306: 0xa000, 0x307: 0x3709,\n\t0x30c: 0x375d, 0x30d: 0x3745, 0x30e: 0x376f, 0x310: 0xa000,\n\t0x313: 0xa000, 0x315: 0xa000, 0x316: 0xa000, 0x317: 0xa000,\n\t0x318: 0xa000, 0x319: 0x3751, 0x31a: 0xa000,\n\t0x31e: 0xa000, 0x323: 0xa000,\n\t0x327: 0xa000,\n\t0x32b: 0xa000, 0x32d: 0xa000,\n\t0x330: 0xa000, 0x333: 0xa000, 0x335: 0xa000,\n\t0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x37d5, 0x33a: 0xa000,\n\t0x33e: 0xa000,\n\t// Block 0xd, offset 0x340\n\t0x341: 0x3733, 0x342: 0x37b7,\n\t0x350: 0x370f, 0x351: 0x3793,\n\t0x352: 0x3715, 0x353: 0x3799, 0x356: 0x3727, 0x357: 0x37ab,\n\t0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x3829, 0x35b: 0x382f, 0x35c: 0x3739, 0x35d: 0x37bd,\n\t0x35e: 0x373f, 0x35f: 0x37c3, 0x362: 0x374b, 0x363: 0x37cf,\n\t0x364: 0x3757, 0x365: 0x37db, 0x366: 0x3763, 0x367: 0x37e7, 0x368: 0xa000, 0x369: 0xa000,\n\t0x36a: 0x3835, 0x36b: 0x383b, 0x36c: 0x378d, 0x36d: 0x3811, 0x36e: 0x3769, 0x36f: 0x37ed,\n\t0x370: 0x3775, 0x371: 0x37f9, 0x372: 0x377b, 0x373: 0x37ff, 0x374: 0x3781, 0x375: 0x3805,\n\t0x378: 0x3787, 0x379: 0x380b,\n\t// Block 0xe, offset 0x380\n\t0x387: 0x1d61,\n\t0x391: 0x812d,\n\t0x392: 0x8132, 0x393: 0x8132, 0x394: 0x8132, 0x395: 0x8132, 0x396: 0x812d, 0x397: 0x8132,\n\t0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x812e, 0x39b: 0x812d, 0x39c: 0x8132, 0x39d: 0x8132,\n\t0x39e: 0x8132, 0x39f: 0x8132, 0x3a0: 0x8132, 0x3a1: 0x8132, 0x3a2: 0x812d, 0x3a3: 0x812d,\n\t0x3a4: 0x812d, 0x3a5: 0x812d, 0x3a6: 0x812d, 0x3a7: 0x812d, 0x3a8: 0x8132, 0x3a9: 0x8132,\n\t0x3aa: 0x812d, 0x3ab: 0x8132, 0x3ac: 0x8132, 0x3ad: 0x812e, 0x3ae: 0x8131, 0x3af: 0x8132,\n\t0x3b0: 0x8105, 0x3b1: 0x8106, 0x3b2: 0x8107, 0x3b3: 0x8108, 0x3b4: 0x8109, 0x3b5: 0x810a,\n\t0x3b6: 0x810b, 0x3b7: 0x810c, 0x3b8: 0x810d, 0x3b9: 0x810e, 0x3ba: 0x810e, 0x3bb: 0x810f,\n\t0x3bc: 0x8110, 0x3bd: 0x8111, 0x3bf: 0x8112,\n\t// Block 0xf, offset 0x3c0\n\t0x3c8: 0xa000, 0x3ca: 0xa000, 0x3cb: 0x8116,\n\t0x3cc: 0x8117, 0x3cd: 0x8118, 0x3ce: 0x8119, 0x3cf: 0x811a, 0x3d0: 0x811b, 0x3d1: 0x811c,\n\t0x3d2: 0x811d, 0x3d3: 0x9932, 0x3d4: 0x9932, 0x3d5: 0x992d, 0x3d6: 0x812d, 0x3d7: 0x8132,\n\t0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x812d, 0x3dd: 0x8132,\n\t0x3de: 0x8132, 0x3df: 0x812d,\n\t0x3f0: 0x811e, 0x3f5: 0x1d84,\n\t0x3f6: 0x2013, 0x3f7: 0x204f, 0x3f8: 0x204a,\n\t// Block 0x10, offset 0x400\n\t0x405: 0xa000,\n\t0x406: 0x2d26, 0x407: 0xa000, 0x408: 0x2d2e, 0x409: 0xa000, 0x40a: 0x2d36, 0x40b: 0xa000,\n\t0x40c: 0x2d3e, 0x40d: 0xa000, 0x40e: 0x2d46, 0x411: 0xa000,\n\t0x412: 0x2d4e,\n\t0x434: 0x8102, 0x435: 0x9900,\n\t0x43a: 0xa000, 0x43b: 0x2d56,\n\t0x43c: 0xa000, 0x43d: 0x2d5e, 0x43e: 0xa000, 0x43f: 0xa000,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x0069, 0x441: 0x006b, 0x442: 0x006f, 0x443: 0x0083, 0x444: 0x00f5, 0x445: 0x00f8,\n\t0x446: 0x0413, 0x447: 0x0085, 0x448: 0x0089, 0x449: 0x008b, 0x44a: 0x0104, 0x44b: 0x0107,\n\t0x44c: 0x010a, 0x44d: 0x008f, 0x44f: 0x0097, 0x450: 0x009b, 0x451: 0x00e0,\n\t0x452: 0x009f, 0x453: 0x00fe, 0x454: 0x0417, 0x455: 0x041b, 0x456: 0x00a1, 0x457: 0x00a9,\n\t0x458: 0x00ab, 0x459: 0x0423, 0x45a: 0x012b, 0x45b: 0x00ad, 0x45c: 0x0427, 0x45d: 0x01be,\n\t0x45e: 0x01c1, 0x45f: 0x01c4, 0x460: 0x01fa, 0x461: 0x01fd, 0x462: 0x0093, 0x463: 0x00a5,\n\t0x464: 0x00ab, 0x465: 0x00ad, 0x466: 0x01be, 0x467: 0x01c1, 0x468: 0x01eb, 0x469: 0x01fa,\n\t0x46a: 0x01fd,\n\t0x478: 0x020c,\n\t// Block 0x12, offset 0x480\n\t0x49b: 0x00fb, 0x49c: 0x0087, 0x49d: 0x0101,\n\t0x49e: 0x00d4, 0x49f: 0x010a, 0x4a0: 0x008d, 0x4a1: 0x010d, 0x4a2: 0x0110, 0x4a3: 0x0116,\n\t0x4a4: 0x011c, 0x4a5: 0x011f, 0x4a6: 0x0122, 0x4a7: 0x042b, 0x4a8: 0x016a, 0x4a9: 0x0128,\n\t0x4aa: 0x042f, 0x4ab: 0x016d, 0x4ac: 0x0131, 0x4ad: 0x012e, 0x4ae: 0x0134, 0x4af: 0x0137,\n\t0x4b0: 0x013a, 0x4b1: 0x013d, 0x4b2: 0x0140, 0x4b3: 0x014c, 0x4b4: 0x014f, 0x4b5: 0x00ec,\n\t0x4b6: 0x0152, 0x4b7: 0x0155, 0x4b8: 0x041f, 0x4b9: 0x0158, 0x4ba: 0x015b, 0x4bb: 0x00b5,\n\t0x4bc: 0x015e, 0x4bd: 0x0161, 0x4be: 0x0164, 0x4bf: 0x01d0,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x8132, 0x4c1: 0x8132, 0x4c2: 0x812d, 0x4c3: 0x8132, 0x4c4: 0x8132, 0x4c5: 0x8132,\n\t0x4c6: 0x8132, 0x4c7: 0x8132, 0x4c8: 0x8132, 0x4c9: 0x8132, 0x4ca: 0x812d, 0x4cb: 0x8132,\n\t0x4cc: 0x8132, 0x4cd: 0x8135, 0x4ce: 0x812a, 0x4cf: 0x812d, 0x4d0: 0x8129, 0x4d1: 0x8132,\n\t0x4d2: 0x8132, 0x4d3: 0x8132, 0x4d4: 0x8132, 0x4d5: 0x8132, 0x4d6: 0x8132, 0x4d7: 0x8132,\n\t0x4d8: 0x8132, 0x4d9: 0x8132, 0x4da: 0x8132, 0x4db: 0x8132, 0x4dc: 0x8132, 0x4dd: 0x8132,\n\t0x4de: 0x8132, 0x4df: 0x8132, 0x4e0: 0x8132, 0x4e1: 0x8132, 0x4e2: 0x8132, 0x4e3: 0x8132,\n\t0x4e4: 0x8132, 0x4e5: 0x8132, 0x4e6: 0x8132, 0x4e7: 0x8132, 0x4e8: 0x8132, 0x4e9: 0x8132,\n\t0x4ea: 0x8132, 0x4eb: 0x8132, 0x4ec: 0x8132, 0x4ed: 0x8132, 0x4ee: 0x8132, 0x4ef: 0x8132,\n\t0x4f0: 0x8132, 0x4f1: 0x8132, 0x4f2: 0x8132, 0x4f3: 0x8132, 0x4f4: 0x8132, 0x4f5: 0x8132,\n\t0x4f6: 0x8133, 0x4f7: 0x8131, 0x4f8: 0x8131, 0x4f9: 0x812d, 0x4fb: 0x8132,\n\t0x4fc: 0x8134, 0x4fd: 0x812d, 0x4fe: 0x8132, 0x4ff: 0x812d,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x2f97, 0x501: 0x32a3, 0x502: 0x2fa1, 0x503: 0x32ad, 0x504: 0x2fa6, 0x505: 0x32b2,\n\t0x506: 0x2fab, 0x507: 0x32b7, 0x508: 0x38cc, 0x509: 0x3a5b, 0x50a: 0x2fc4, 0x50b: 0x32d0,\n\t0x50c: 0x2fce, 0x50d: 0x32da, 0x50e: 0x2fdd, 0x50f: 0x32e9, 0x510: 0x2fd3, 0x511: 0x32df,\n\t0x512: 0x2fd8, 0x513: 0x32e4, 0x514: 0x38ef, 0x515: 0x3a7e, 0x516: 0x38f6, 0x517: 0x3a85,\n\t0x518: 0x3019, 0x519: 0x3325, 0x51a: 0x301e, 0x51b: 0x332a, 0x51c: 0x3904, 0x51d: 0x3a93,\n\t0x51e: 0x3023, 0x51f: 0x332f, 0x520: 0x3032, 0x521: 0x333e, 0x522: 0x3050, 0x523: 0x335c,\n\t0x524: 0x305f, 0x525: 0x336b, 0x526: 0x3055, 0x527: 0x3361, 0x528: 0x3064, 0x529: 0x3370,\n\t0x52a: 0x3069, 0x52b: 0x3375, 0x52c: 0x30af, 0x52d: 0x33bb, 0x52e: 0x390b, 0x52f: 0x3a9a,\n\t0x530: 0x30b9, 0x531: 0x33ca, 0x532: 0x30c3, 0x533: 0x33d4, 0x534: 0x30cd, 0x535: 0x33de,\n\t0x536: 0x46c4, 0x537: 0x4755, 0x538: 0x3912, 0x539: 0x3aa1, 0x53a: 0x30e6, 0x53b: 0x33f7,\n\t0x53c: 0x30e1, 0x53d: 0x33f2, 0x53e: 0x30eb, 0x53f: 0x33fc,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x30f0, 0x541: 0x3401, 0x542: 0x30f5, 0x543: 0x3406, 0x544: 0x3109, 0x545: 0x341a,\n\t0x546: 0x3113, 0x547: 0x3424, 0x548: 0x3122, 0x549: 0x3433, 0x54a: 0x311d, 0x54b: 0x342e,\n\t0x54c: 0x3935, 0x54d: 0x3ac4, 0x54e: 0x3943, 0x54f: 0x3ad2, 0x550: 0x394a, 0x551: 0x3ad9,\n\t0x552: 0x3951, 0x553: 0x3ae0, 0x554: 0x314f, 0x555: 0x3460, 0x556: 0x3154, 0x557: 0x3465,\n\t0x558: 0x315e, 0x559: 0x346f, 0x55a: 0x46f1, 0x55b: 0x4782, 0x55c: 0x3997, 0x55d: 0x3b26,\n\t0x55e: 0x3177, 0x55f: 0x3488, 0x560: 0x3181, 0x561: 0x3492, 0x562: 0x4700, 0x563: 0x4791,\n\t0x564: 0x399e, 0x565: 0x3b2d, 0x566: 0x39a5, 0x567: 0x3b34, 0x568: 0x39ac, 0x569: 0x3b3b,\n\t0x56a: 0x3190, 0x56b: 0x34a1, 0x56c: 0x319a, 0x56d: 0x34b0, 0x56e: 0x31ae, 0x56f: 0x34c4,\n\t0x570: 0x31a9, 0x571: 0x34bf, 0x572: 0x31ea, 0x573: 0x3500, 0x574: 0x31f9, 0x575: 0x350f,\n\t0x576: 0x31f4, 0x577: 0x350a, 0x578: 0x39b3, 0x579: 0x3b42, 0x57a: 0x39ba, 0x57b: 0x3b49,\n\t0x57c: 0x31fe, 0x57d: 0x3514, 0x57e: 0x3203, 0x57f: 0x3519,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x3208, 0x581: 0x351e, 0x582: 0x320d, 0x583: 0x3523, 0x584: 0x321c, 0x585: 0x3532,\n\t0x586: 0x3217, 0x587: 0x352d, 0x588: 0x3221, 0x589: 0x353c, 0x58a: 0x3226, 0x58b: 0x3541,\n\t0x58c: 0x322b, 0x58d: 0x3546, 0x58e: 0x3249, 0x58f: 0x3564, 0x590: 0x3262, 0x591: 0x3582,\n\t0x592: 0x3271, 0x593: 0x3591, 0x594: 0x3276, 0x595: 0x3596, 0x596: 0x337a, 0x597: 0x34a6,\n\t0x598: 0x3537, 0x599: 0x3573, 0x59a: 0x1be0, 0x59b: 0x42d7,\n\t0x5a0: 0x46a1, 0x5a1: 0x4732, 0x5a2: 0x2f83, 0x5a3: 0x328f,\n\t0x5a4: 0x3878, 0x5a5: 0x3a07, 0x5a6: 0x3871, 0x5a7: 0x3a00, 0x5a8: 0x3886, 0x5a9: 0x3a15,\n\t0x5aa: 0x387f, 0x5ab: 0x3a0e, 0x5ac: 0x38be, 0x5ad: 0x3a4d, 0x5ae: 0x3894, 0x5af: 0x3a23,\n\t0x5b0: 0x388d, 0x5b1: 0x3a1c, 0x5b2: 0x38a2, 0x5b3: 0x3a31, 0x5b4: 0x389b, 0x5b5: 0x3a2a,\n\t0x5b6: 0x38c5, 0x5b7: 0x3a54, 0x5b8: 0x46b5, 0x5b9: 0x4746, 0x5ba: 0x3000, 0x5bb: 0x330c,\n\t0x5bc: 0x2fec, 0x5bd: 0x32f8, 0x5be: 0x38da, 0x5bf: 0x3a69,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x38d3, 0x5c1: 0x3a62, 0x5c2: 0x38e8, 0x5c3: 0x3a77, 0x5c4: 0x38e1, 0x5c5: 0x3a70,\n\t0x5c6: 0x38fd, 0x5c7: 0x3a8c, 0x5c8: 0x3091, 0x5c9: 0x339d, 0x5ca: 0x30a5, 0x5cb: 0x33b1,\n\t0x5cc: 0x46e7, 0x5cd: 0x4778, 0x5ce: 0x3136, 0x5cf: 0x3447, 0x5d0: 0x3920, 0x5d1: 0x3aaf,\n\t0x5d2: 0x3919, 0x5d3: 0x3aa8, 0x5d4: 0x392e, 0x5d5: 0x3abd, 0x5d6: 0x3927, 0x5d7: 0x3ab6,\n\t0x5d8: 0x3989, 0x5d9: 0x3b18, 0x5da: 0x396d, 0x5db: 0x3afc, 0x5dc: 0x3966, 0x5dd: 0x3af5,\n\t0x5de: 0x397b, 0x5df: 0x3b0a, 0x5e0: 0x3974, 0x5e1: 0x3b03, 0x5e2: 0x3982, 0x5e3: 0x3b11,\n\t0x5e4: 0x31e5, 0x5e5: 0x34fb, 0x5e6: 0x31c7, 0x5e7: 0x34dd, 0x5e8: 0x39e4, 0x5e9: 0x3b73,\n\t0x5ea: 0x39dd, 0x5eb: 0x3b6c, 0x5ec: 0x39f2, 0x5ed: 0x3b81, 0x5ee: 0x39eb, 0x5ef: 0x3b7a,\n\t0x5f0: 0x39f9, 0x5f1: 0x3b88, 0x5f2: 0x3230, 0x5f3: 0x354b, 0x5f4: 0x3258, 0x5f5: 0x3578,\n\t0x5f6: 0x3253, 0x5f7: 0x356e, 0x5f8: 0x323f, 0x5f9: 0x355a,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x4804, 0x601: 0x480a, 0x602: 0x491e, 0x603: 0x4936, 0x604: 0x4926, 0x605: 0x493e,\n\t0x606: 0x492e, 0x607: 0x4946, 0x608: 0x47aa, 0x609: 0x47b0, 0x60a: 0x488e, 0x60b: 0x48a6,\n\t0x60c: 0x4896, 0x60d: 0x48ae, 0x60e: 0x489e, 0x60f: 0x48b6, 0x610: 0x4816, 0x611: 0x481c,\n\t0x612: 0x3db8, 0x613: 0x3dc8, 0x614: 0x3dc0, 0x615: 0x3dd0,\n\t0x618: 0x47b6, 0x619: 0x47bc, 0x61a: 0x3ce8, 0x61b: 0x3cf8, 0x61c: 0x3cf0, 0x61d: 0x3d00,\n\t0x620: 0x482e, 0x621: 0x4834, 0x622: 0x494e, 0x623: 0x4966,\n\t0x624: 0x4956, 0x625: 0x496e, 0x626: 0x495e, 0x627: 0x4976, 0x628: 0x47c2, 0x629: 0x47c8,\n\t0x62a: 0x48be, 0x62b: 0x48d6, 0x62c: 0x48c6, 0x62d: 0x48de, 0x62e: 0x48ce, 0x62f: 0x48e6,\n\t0x630: 0x4846, 0x631: 0x484c, 0x632: 0x3e18, 0x633: 0x3e30, 0x634: 0x3e20, 0x635: 0x3e38,\n\t0x636: 0x3e28, 0x637: 0x3e40, 0x638: 0x47ce, 0x639: 0x47d4, 0x63a: 0x3d18, 0x63b: 0x3d30,\n\t0x63c: 0x3d20, 0x63d: 0x3d38, 0x63e: 0x3d28, 0x63f: 0x3d40,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x4852, 0x641: 0x4858, 0x642: 0x3e48, 0x643: 0x3e58, 0x644: 0x3e50, 0x645: 0x3e60,\n\t0x648: 0x47da, 0x649: 0x47e0, 0x64a: 0x3d48, 0x64b: 0x3d58,\n\t0x64c: 0x3d50, 0x64d: 0x3d60, 0x650: 0x4864, 0x651: 0x486a,\n\t0x652: 0x3e80, 0x653: 0x3e98, 0x654: 0x3e88, 0x655: 0x3ea0, 0x656: 0x3e90, 0x657: 0x3ea8,\n\t0x659: 0x47e6, 0x65b: 0x3d68, 0x65d: 0x3d70,\n\t0x65f: 0x3d78, 0x660: 0x487c, 0x661: 0x4882, 0x662: 0x497e, 0x663: 0x4996,\n\t0x664: 0x4986, 0x665: 0x499e, 0x666: 0x498e, 0x667: 0x49a6, 0x668: 0x47ec, 0x669: 0x47f2,\n\t0x66a: 0x48ee, 0x66b: 0x4906, 0x66c: 0x48f6, 0x66d: 0x490e, 0x66e: 0x48fe, 0x66f: 0x4916,\n\t0x670: 0x47f8, 0x671: 0x431e, 0x672: 0x3691, 0x673: 0x4324, 0x674: 0x4822, 0x675: 0x432a,\n\t0x676: 0x36a3, 0x677: 0x4330, 0x678: 0x36c1, 0x679: 0x4336, 0x67a: 0x36d9, 0x67b: 0x433c,\n\t0x67c: 0x4870, 0x67d: 0x4342,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x3da0, 0x681: 0x3da8, 0x682: 0x4184, 0x683: 0x41a2, 0x684: 0x418e, 0x685: 0x41ac,\n\t0x686: 0x4198, 0x687: 0x41b6, 0x688: 0x3cd8, 0x689: 0x3ce0, 0x68a: 0x40d0, 0x68b: 0x40ee,\n\t0x68c: 0x40da, 0x68d: 0x40f8, 0x68e: 0x40e4, 0x68f: 0x4102, 0x690: 0x3de8, 0x691: 0x3df0,\n\t0x692: 0x41c0, 0x693: 0x41de, 0x694: 0x41ca, 0x695: 0x41e8, 0x696: 0x41d4, 0x697: 0x41f2,\n\t0x698: 0x3d08, 0x699: 0x3d10, 0x69a: 0x410c, 0x69b: 0x412a, 0x69c: 0x4116, 0x69d: 0x4134,\n\t0x69e: 0x4120, 0x69f: 0x413e, 0x6a0: 0x3ec0, 0x6a1: 0x3ec8, 0x6a2: 0x41fc, 0x6a3: 0x421a,\n\t0x6a4: 0x4206, 0x6a5: 0x4224, 0x6a6: 0x4210, 0x6a7: 0x422e, 0x6a8: 0x3d80, 0x6a9: 0x3d88,\n\t0x6aa: 0x4148, 0x6ab: 0x4166, 0x6ac: 0x4152, 0x6ad: 0x4170, 0x6ae: 0x415c, 0x6af: 0x417a,\n\t0x6b0: 0x3685, 0x6b1: 0x367f, 0x6b2: 0x3d90, 0x6b3: 0x368b, 0x6b4: 0x3d98,\n\t0x6b6: 0x4810, 0x6b7: 0x3db0, 0x6b8: 0x35f5, 0x6b9: 0x35ef, 0x6ba: 0x35e3, 0x6bb: 0x42ee,\n\t0x6bc: 0x35fb, 0x6bd: 0x4287, 0x6be: 0x01d3, 0x6bf: 0x4287,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x42a0, 0x6c1: 0x4482, 0x6c2: 0x3dd8, 0x6c3: 0x369d, 0x6c4: 0x3de0,\n\t0x6c6: 0x483a, 0x6c7: 0x3df8, 0x6c8: 0x3601, 0x6c9: 0x42f4, 0x6ca: 0x360d, 0x6cb: 0x42fa,\n\t0x6cc: 0x3619, 0x6cd: 0x4489, 0x6ce: 0x4490, 0x6cf: 0x4497, 0x6d0: 0x36b5, 0x6d1: 0x36af,\n\t0x6d2: 0x3e00, 0x6d3: 0x44e4, 0x6d6: 0x36bb, 0x6d7: 0x3e10,\n\t0x6d8: 0x3631, 0x6d9: 0x362b, 0x6da: 0x361f, 0x6db: 0x4300, 0x6dd: 0x449e,\n\t0x6de: 0x44a5, 0x6df: 0x44ac, 0x6e0: 0x36eb, 0x6e1: 0x36e5, 0x6e2: 0x3e68, 0x6e3: 0x44ec,\n\t0x6e4: 0x36cd, 0x6e5: 0x36d3, 0x6e6: 0x36f1, 0x6e7: 0x3e78, 0x6e8: 0x3661, 0x6e9: 0x365b,\n\t0x6ea: 0x364f, 0x6eb: 0x430c, 0x6ec: 0x3649, 0x6ed: 0x4474, 0x6ee: 0x447b, 0x6ef: 0x0081,\n\t0x6f2: 0x3eb0, 0x6f3: 0x36f7, 0x6f4: 0x3eb8,\n\t0x6f6: 0x4888, 0x6f7: 0x3ed0, 0x6f8: 0x363d, 0x6f9: 0x4306, 0x6fa: 0x366d, 0x6fb: 0x4318,\n\t0x6fc: 0x3679, 0x6fd: 0x425a, 0x6fe: 0x428c,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x1bd8, 0x701: 0x1bdc, 0x702: 0x0047, 0x703: 0x1c54, 0x705: 0x1be8,\n\t0x706: 0x1bec, 0x707: 0x00e9, 0x709: 0x1c58, 0x70a: 0x008f, 0x70b: 0x0051,\n\t0x70c: 0x0051, 0x70d: 0x0051, 0x70e: 0x0091, 0x70f: 0x00da, 0x710: 0x0053, 0x711: 0x0053,\n\t0x712: 0x0059, 0x713: 0x0099, 0x715: 0x005d, 0x716: 0x198d,\n\t0x719: 0x0061, 0x71a: 0x0063, 0x71b: 0x0065, 0x71c: 0x0065, 0x71d: 0x0065,\n\t0x720: 0x199f, 0x721: 0x1bc8, 0x722: 0x19a8,\n\t0x724: 0x0075, 0x726: 0x01b8, 0x728: 0x0075,\n\t0x72a: 0x0057, 0x72b: 0x42d2, 0x72c: 0x0045, 0x72d: 0x0047, 0x72f: 0x008b,\n\t0x730: 0x004b, 0x731: 0x004d, 0x733: 0x005b, 0x734: 0x009f, 0x735: 0x0215,\n\t0x736: 0x0218, 0x737: 0x021b, 0x738: 0x021e, 0x739: 0x0093, 0x73b: 0x1b98,\n\t0x73c: 0x01e8, 0x73d: 0x01c1, 0x73e: 0x0179, 0x73f: 0x01a0,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0x0463, 0x745: 0x0049,\n\t0x746: 0x0089, 0x747: 0x008b, 0x748: 0x0093, 0x749: 0x0095,\n\t0x750: 0x222e, 0x751: 0x223a,\n\t0x752: 0x22ee, 0x753: 0x2216, 0x754: 0x229a, 0x755: 0x2222, 0x756: 0x22a0, 0x757: 0x22b8,\n\t0x758: 0x22c4, 0x759: 0x2228, 0x75a: 0x22ca, 0x75b: 0x2234, 0x75c: 0x22be, 0x75d: 0x22d0,\n\t0x75e: 0x22d6, 0x75f: 0x1cbc, 0x760: 0x0053, 0x761: 0x195a, 0x762: 0x1ba4, 0x763: 0x1963,\n\t0x764: 0x006d, 0x765: 0x19ab, 0x766: 0x1bd0, 0x767: 0x1d48, 0x768: 0x1966, 0x769: 0x0071,\n\t0x76a: 0x19b7, 0x76b: 0x1bd4, 0x76c: 0x0059, 0x76d: 0x0047, 0x76e: 0x0049, 0x76f: 0x005b,\n\t0x770: 0x0093, 0x771: 0x19e4, 0x772: 0x1c18, 0x773: 0x19ed, 0x774: 0x00ad, 0x775: 0x1a62,\n\t0x776: 0x1c4c, 0x777: 0x1d5c, 0x778: 0x19f0, 0x779: 0x00b1, 0x77a: 0x1a65, 0x77b: 0x1c50,\n\t0x77c: 0x0099, 0x77d: 0x0087, 0x77e: 0x0089, 0x77f: 0x009b,\n\t// Block 0x1e, offset 0x780\n\t0x781: 0x3c06, 0x783: 0xa000, 0x784: 0x3c0d, 0x785: 0xa000,\n\t0x787: 0x3c14, 0x788: 0xa000, 0x789: 0x3c1b,\n\t0x78d: 0xa000,\n\t0x7a0: 0x2f65, 0x7a1: 0xa000, 0x7a2: 0x3c29,\n\t0x7a4: 0xa000, 0x7a5: 0xa000,\n\t0x7ad: 0x3c22, 0x7ae: 0x2f60, 0x7af: 0x2f6a,\n\t0x7b0: 0x3c30, 0x7b1: 0x3c37, 0x7b2: 0xa000, 0x7b3: 0xa000, 0x7b4: 0x3c3e, 0x7b5: 0x3c45,\n\t0x7b6: 0xa000, 0x7b7: 0xa000, 0x7b8: 0x3c4c, 0x7b9: 0x3c53, 0x7ba: 0xa000, 0x7bb: 0xa000,\n\t0x7bc: 0xa000, 0x7bd: 0xa000,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0x3c5a, 0x7c1: 0x3c61, 0x7c2: 0xa000, 0x7c3: 0xa000, 0x7c4: 0x3c76, 0x7c5: 0x3c7d,\n\t0x7c6: 0xa000, 0x7c7: 0xa000, 0x7c8: 0x3c84, 0x7c9: 0x3c8b,\n\t0x7d1: 0xa000,\n\t0x7d2: 0xa000,\n\t0x7e2: 0xa000,\n\t0x7e8: 0xa000, 0x7e9: 0xa000,\n\t0x7eb: 0xa000, 0x7ec: 0x3ca0, 0x7ed: 0x3ca7, 0x7ee: 0x3cae, 0x7ef: 0x3cb5,\n\t0x7f2: 0xa000, 0x7f3: 0xa000, 0x7f4: 0xa000, 0x7f5: 0xa000,\n\t// Block 0x20, offset 0x800\n\t0x820: 0x0023, 0x821: 0x0025, 0x822: 0x0027, 0x823: 0x0029,\n\t0x824: 0x002b, 0x825: 0x002d, 0x826: 0x002f, 0x827: 0x0031, 0x828: 0x0033, 0x829: 0x1882,\n\t0x82a: 0x1885, 0x82b: 0x1888, 0x82c: 0x188b, 0x82d: 0x188e, 0x82e: 0x1891, 0x82f: 0x1894,\n\t0x830: 0x1897, 0x831: 0x189a, 0x832: 0x189d, 0x833: 0x18a6, 0x834: 0x1a68, 0x835: 0x1a6c,\n\t0x836: 0x1a70, 0x837: 0x1a74, 0x838: 0x1a78, 0x839: 0x1a7c, 0x83a: 0x1a80, 0x83b: 0x1a84,\n\t0x83c: 0x1a88, 0x83d: 0x1c80, 0x83e: 0x1c85, 0x83f: 0x1c8a,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x1c8f, 0x841: 0x1c94, 0x842: 0x1c99, 0x843: 0x1c9e, 0x844: 0x1ca3, 0x845: 0x1ca8,\n\t0x846: 0x1cad, 0x847: 0x1cb2, 0x848: 0x187f, 0x849: 0x18a3, 0x84a: 0x18c7, 0x84b: 0x18eb,\n\t0x84c: 0x190f, 0x84d: 0x1918, 0x84e: 0x191e, 0x84f: 0x1924, 0x850: 0x192a, 0x851: 0x1b60,\n\t0x852: 0x1b64, 0x853: 0x1b68, 0x854: 0x1b6c, 0x855: 0x1b70, 0x856: 0x1b74, 0x857: 0x1b78,\n\t0x858: 0x1b7c, 0x859: 0x1b80, 0x85a: 0x1b84, 0x85b: 0x1b88, 0x85c: 0x1af4, 0x85d: 0x1af8,\n\t0x85e: 0x1afc, 0x85f: 0x1b00, 0x860: 0x1b04, 0x861: 0x1b08, 0x862: 0x1b0c, 0x863: 0x1b10,\n\t0x864: 0x1b14, 0x865: 0x1b18, 0x866: 0x1b1c, 0x867: 0x1b20, 0x868: 0x1b24, 0x869: 0x1b28,\n\t0x86a: 0x1b2c, 0x86b: 0x1b30, 0x86c: 0x1b34, 0x86d: 0x1b38, 0x86e: 0x1b3c, 0x86f: 0x1b40,\n\t0x870: 0x1b44, 0x871: 0x1b48, 0x872: 0x1b4c, 0x873: 0x1b50, 0x874: 0x1b54, 0x875: 0x1b58,\n\t0x876: 0x0043, 0x877: 0x0045, 0x878: 0x0047, 0x879: 0x0049, 0x87a: 0x004b, 0x87b: 0x004d,\n\t0x87c: 0x004f, 0x87d: 0x0051, 0x87e: 0x0053, 0x87f: 0x0055,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x06bf, 0x881: 0x06e3, 0x882: 0x06ef, 0x883: 0x06ff, 0x884: 0x0707, 0x885: 0x0713,\n\t0x886: 0x071b, 0x887: 0x0723, 0x888: 0x072f, 0x889: 0x0783, 0x88a: 0x079b, 0x88b: 0x07ab,\n\t0x88c: 0x07bb, 0x88d: 0x07cb, 0x88e: 0x07db, 0x88f: 0x07fb, 0x890: 0x07ff, 0x891: 0x0803,\n\t0x892: 0x0837, 0x893: 0x085f, 0x894: 0x086f, 0x895: 0x0877, 0x896: 0x087b, 0x897: 0x0887,\n\t0x898: 0x08a3, 0x899: 0x08a7, 0x89a: 0x08bf, 0x89b: 0x08c3, 0x89c: 0x08cb, 0x89d: 0x08db,\n\t0x89e: 0x0977, 0x89f: 0x098b, 0x8a0: 0x09cb, 0x8a1: 0x09df, 0x8a2: 0x09e7, 0x8a3: 0x09eb,\n\t0x8a4: 0x09fb, 0x8a5: 0x0a17, 0x8a6: 0x0a43, 0x8a7: 0x0a4f, 0x8a8: 0x0a6f, 0x8a9: 0x0a7b,\n\t0x8aa: 0x0a7f, 0x8ab: 0x0a83, 0x8ac: 0x0a9b, 0x8ad: 0x0a9f, 0x8ae: 0x0acb, 0x8af: 0x0ad7,\n\t0x8b0: 0x0adf, 0x8b1: 0x0ae7, 0x8b2: 0x0af7, 0x8b3: 0x0aff, 0x8b4: 0x0b07, 0x8b5: 0x0b33,\n\t0x8b6: 0x0b37, 0x8b7: 0x0b3f, 0x8b8: 0x0b43, 0x8b9: 0x0b4b, 0x8ba: 0x0b53, 0x8bb: 0x0b63,\n\t0x8bc: 0x0b7f, 0x8bd: 0x0bf7, 0x8be: 0x0c0b, 0x8bf: 0x0c0f,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x0c8f, 0x8c1: 0x0c93, 0x8c2: 0x0ca7, 0x8c3: 0x0cab, 0x8c4: 0x0cb3, 0x8c5: 0x0cbb,\n\t0x8c6: 0x0cc3, 0x8c7: 0x0ccf, 0x8c8: 0x0cf7, 0x8c9: 0x0d07, 0x8ca: 0x0d1b, 0x8cb: 0x0d8b,\n\t0x8cc: 0x0d97, 0x8cd: 0x0da7, 0x8ce: 0x0db3, 0x8cf: 0x0dbf, 0x8d0: 0x0dc7, 0x8d1: 0x0dcb,\n\t0x8d2: 0x0dcf, 0x8d3: 0x0dd3, 0x8d4: 0x0dd7, 0x8d5: 0x0e8f, 0x8d6: 0x0ed7, 0x8d7: 0x0ee3,\n\t0x8d8: 0x0ee7, 0x8d9: 0x0eeb, 0x8da: 0x0eef, 0x8db: 0x0ef7, 0x8dc: 0x0efb, 0x8dd: 0x0f0f,\n\t0x8de: 0x0f2b, 0x8df: 0x0f33, 0x8e0: 0x0f73, 0x8e1: 0x0f77, 0x8e2: 0x0f7f, 0x8e3: 0x0f83,\n\t0x8e4: 0x0f8b, 0x8e5: 0x0f8f, 0x8e6: 0x0fb3, 0x8e7: 0x0fb7, 0x8e8: 0x0fd3, 0x8e9: 0x0fd7,\n\t0x8ea: 0x0fdb, 0x8eb: 0x0fdf, 0x8ec: 0x0ff3, 0x8ed: 0x1017, 0x8ee: 0x101b, 0x8ef: 0x101f,\n\t0x8f0: 0x1043, 0x8f1: 0x1083, 0x8f2: 0x1087, 0x8f3: 0x10a7, 0x8f4: 0x10b7, 0x8f5: 0x10bf,\n\t0x8f6: 0x10df, 0x8f7: 0x1103, 0x8f8: 0x1147, 0x8f9: 0x114f, 0x8fa: 0x1163, 0x8fb: 0x116f,\n\t0x8fc: 0x1177, 0x8fd: 0x117f, 0x8fe: 0x1183, 0x8ff: 0x1187,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x119f, 0x901: 0x11a3, 0x902: 0x11bf, 0x903: 0x11c7, 0x904: 0x11cf, 0x905: 0x11d3,\n\t0x906: 0x11df, 0x907: 0x11e7, 0x908: 0x11eb, 0x909: 0x11ef, 0x90a: 0x11f7, 0x90b: 0x11fb,\n\t0x90c: 0x129b, 0x90d: 0x12af, 0x90e: 0x12e3, 0x90f: 0x12e7, 0x910: 0x12ef, 0x911: 0x131b,\n\t0x912: 0x1323, 0x913: 0x132b, 0x914: 0x1333, 0x915: 0x136f, 0x916: 0x1373, 0x917: 0x137b,\n\t0x918: 0x137f, 0x919: 0x1383, 0x91a: 0x13af, 0x91b: 0x13b3, 0x91c: 0x13bb, 0x91d: 0x13cf,\n\t0x91e: 0x13d3, 0x91f: 0x13ef, 0x920: 0x13f7, 0x921: 0x13fb, 0x922: 0x141f, 0x923: 0x143f,\n\t0x924: 0x1453, 0x925: 0x1457, 0x926: 0x145f, 0x927: 0x148b, 0x928: 0x148f, 0x929: 0x149f,\n\t0x92a: 0x14c3, 0x92b: 0x14cf, 0x92c: 0x14df, 0x92d: 0x14f7, 0x92e: 0x14ff, 0x92f: 0x1503,\n\t0x930: 0x1507, 0x931: 0x150b, 0x932: 0x1517, 0x933: 0x151b, 0x934: 0x1523, 0x935: 0x153f,\n\t0x936: 0x1543, 0x937: 0x1547, 0x938: 0x155f, 0x939: 0x1563, 0x93a: 0x156b, 0x93b: 0x157f,\n\t0x93c: 0x1583, 0x93d: 0x1587, 0x93e: 0x158f, 0x93f: 0x1593,\n\t// Block 0x25, offset 0x940\n\t0x946: 0xa000, 0x94b: 0xa000,\n\t0x94c: 0x3f08, 0x94d: 0xa000, 0x94e: 0x3f10, 0x94f: 0xa000, 0x950: 0x3f18, 0x951: 0xa000,\n\t0x952: 0x3f20, 0x953: 0xa000, 0x954: 0x3f28, 0x955: 0xa000, 0x956: 0x3f30, 0x957: 0xa000,\n\t0x958: 0x3f38, 0x959: 0xa000, 0x95a: 0x3f40, 0x95b: 0xa000, 0x95c: 0x3f48, 0x95d: 0xa000,\n\t0x95e: 0x3f50, 0x95f: 0xa000, 0x960: 0x3f58, 0x961: 0xa000, 0x962: 0x3f60,\n\t0x964: 0xa000, 0x965: 0x3f68, 0x966: 0xa000, 0x967: 0x3f70, 0x968: 0xa000, 0x969: 0x3f78,\n\t0x96f: 0xa000,\n\t0x970: 0x3f80, 0x971: 0x3f88, 0x972: 0xa000, 0x973: 0x3f90, 0x974: 0x3f98, 0x975: 0xa000,\n\t0x976: 0x3fa0, 0x977: 0x3fa8, 0x978: 0xa000, 0x979: 0x3fb0, 0x97a: 0x3fb8, 0x97b: 0xa000,\n\t0x97c: 0x3fc0, 0x97d: 0x3fc8,\n\t// Block 0x26, offset 0x980\n\t0x994: 0x3f00,\n\t0x999: 0x9903, 0x99a: 0x9903, 0x99b: 0x42dc, 0x99c: 0x42e2, 0x99d: 0xa000,\n\t0x99e: 0x3fd0, 0x99f: 0x26b4,\n\t0x9a6: 0xa000,\n\t0x9ab: 0xa000, 0x9ac: 0x3fe0, 0x9ad: 0xa000, 0x9ae: 0x3fe8, 0x9af: 0xa000,\n\t0x9b0: 0x3ff0, 0x9b1: 0xa000, 0x9b2: 0x3ff8, 0x9b3: 0xa000, 0x9b4: 0x4000, 0x9b5: 0xa000,\n\t0x9b6: 0x4008, 0x9b7: 0xa000, 0x9b8: 0x4010, 0x9b9: 0xa000, 0x9ba: 0x4018, 0x9bb: 0xa000,\n\t0x9bc: 0x4020, 0x9bd: 0xa000, 0x9be: 0x4028, 0x9bf: 0xa000,\n\t// Block 0x27, offset 0x9c0\n\t0x9c0: 0x4030, 0x9c1: 0xa000, 0x9c2: 0x4038, 0x9c4: 0xa000, 0x9c5: 0x4040,\n\t0x9c6: 0xa000, 0x9c7: 0x4048, 0x9c8: 0xa000, 0x9c9: 0x4050,\n\t0x9cf: 0xa000, 0x9d0: 0x4058, 0x9d1: 0x4060,\n\t0x9d2: 0xa000, 0x9d3: 0x4068, 0x9d4: 0x4070, 0x9d5: 0xa000, 0x9d6: 0x4078, 0x9d7: 0x4080,\n\t0x9d8: 0xa000, 0x9d9: 0x4088, 0x9da: 0x4090, 0x9db: 0xa000, 0x9dc: 0x4098, 0x9dd: 0x40a0,\n\t0x9ef: 0xa000,\n\t0x9f0: 0xa000, 0x9f1: 0xa000, 0x9f2: 0xa000, 0x9f4: 0x3fd8,\n\t0x9f7: 0x40a8, 0x9f8: 0x40b0, 0x9f9: 0x40b8, 0x9fa: 0x40c0,\n\t0x9fd: 0xa000, 0x9fe: 0x40c8, 0x9ff: 0x26c9,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x0367, 0xa01: 0x032b, 0xa02: 0x032f, 0xa03: 0x0333, 0xa04: 0x037b, 0xa05: 0x0337,\n\t0xa06: 0x033b, 0xa07: 0x033f, 0xa08: 0x0343, 0xa09: 0x0347, 0xa0a: 0x034b, 0xa0b: 0x034f,\n\t0xa0c: 0x0353, 0xa0d: 0x0357, 0xa0e: 0x035b, 0xa0f: 0x49bd, 0xa10: 0x49c3, 0xa11: 0x49c9,\n\t0xa12: 0x49cf, 0xa13: 0x49d5, 0xa14: 0x49db, 0xa15: 0x49e1, 0xa16: 0x49e7, 0xa17: 0x49ed,\n\t0xa18: 0x49f3, 0xa19: 0x49f9, 0xa1a: 0x49ff, 0xa1b: 0x4a05, 0xa1c: 0x4a0b, 0xa1d: 0x4a11,\n\t0xa1e: 0x4a17, 0xa1f: 0x4a1d, 0xa20: 0x4a23, 0xa21: 0x4a29, 0xa22: 0x4a2f, 0xa23: 0x4a35,\n\t0xa24: 0x03c3, 0xa25: 0x035f, 0xa26: 0x0363, 0xa27: 0x03e7, 0xa28: 0x03eb, 0xa29: 0x03ef,\n\t0xa2a: 0x03f3, 0xa2b: 0x03f7, 0xa2c: 0x03fb, 0xa2d: 0x03ff, 0xa2e: 0x036b, 0xa2f: 0x0403,\n\t0xa30: 0x0407, 0xa31: 0x036f, 0xa32: 0x0373, 0xa33: 0x0377, 0xa34: 0x037f, 0xa35: 0x0383,\n\t0xa36: 0x0387, 0xa37: 0x038b, 0xa38: 0x038f, 0xa39: 0x0393, 0xa3a: 0x0397, 0xa3b: 0x039b,\n\t0xa3c: 0x039f, 0xa3d: 0x03a3, 0xa3e: 0x03a7, 0xa3f: 0x03ab,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0x03af, 0xa41: 0x03b3, 0xa42: 0x040b, 0xa43: 0x040f, 0xa44: 0x03b7, 0xa45: 0x03bb,\n\t0xa46: 0x03bf, 0xa47: 0x03c7, 0xa48: 0x03cb, 0xa49: 0x03cf, 0xa4a: 0x03d3, 0xa4b: 0x03d7,\n\t0xa4c: 0x03db, 0xa4d: 0x03df, 0xa4e: 0x03e3,\n\t0xa52: 0x06bf, 0xa53: 0x071b, 0xa54: 0x06cb, 0xa55: 0x097b, 0xa56: 0x06cf, 0xa57: 0x06e7,\n\t0xa58: 0x06d3, 0xa59: 0x0f93, 0xa5a: 0x0707, 0xa5b: 0x06db, 0xa5c: 0x06c3, 0xa5d: 0x09ff,\n\t0xa5e: 0x098f, 0xa5f: 0x072f,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0x2054, 0xa81: 0x205a, 0xa82: 0x2060, 0xa83: 0x2066, 0xa84: 0x206c, 0xa85: 0x2072,\n\t0xa86: 0x2078, 0xa87: 0x207e, 0xa88: 0x2084, 0xa89: 0x208a, 0xa8a: 0x2090, 0xa8b: 0x2096,\n\t0xa8c: 0x209c, 0xa8d: 0x20a2, 0xa8e: 0x2726, 0xa8f: 0x272f, 0xa90: 0x2738, 0xa91: 0x2741,\n\t0xa92: 0x274a, 0xa93: 0x2753, 0xa94: 0x275c, 0xa95: 0x2765, 0xa96: 0x276e, 0xa97: 0x2780,\n\t0xa98: 0x2789, 0xa99: 0x2792, 0xa9a: 0x279b, 0xa9b: 0x27a4, 0xa9c: 0x2777, 0xa9d: 0x2bac,\n\t0xa9e: 0x2aed, 0xaa0: 0x20a8, 0xaa1: 0x20c0, 0xaa2: 0x20b4, 0xaa3: 0x2108,\n\t0xaa4: 0x20c6, 0xaa5: 0x20e4, 0xaa6: 0x20ae, 0xaa7: 0x20de, 0xaa8: 0x20ba, 0xaa9: 0x20f0,\n\t0xaaa: 0x2120, 0xaab: 0x213e, 0xaac: 0x2138, 0xaad: 0x212c, 0xaae: 0x217a, 0xaaf: 0x210e,\n\t0xab0: 0x211a, 0xab1: 0x2132, 0xab2: 0x2126, 0xab3: 0x2150, 0xab4: 0x20fc, 0xab5: 0x2144,\n\t0xab6: 0x216e, 0xab7: 0x2156, 0xab8: 0x20ea, 0xab9: 0x20cc, 0xaba: 0x2102, 0xabb: 0x2114,\n\t0xabc: 0x214a, 0xabd: 0x20d2, 0xabe: 0x2174, 0xabf: 0x20f6,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0x215c, 0xac1: 0x20d8, 0xac2: 0x2162, 0xac3: 0x2168, 0xac4: 0x092f, 0xac5: 0x0b03,\n\t0xac6: 0x0ca7, 0xac7: 0x10c7,\n\t0xad0: 0x1bc4, 0xad1: 0x18a9,\n\t0xad2: 0x18ac, 0xad3: 0x18af, 0xad4: 0x18b2, 0xad5: 0x18b5, 0xad6: 0x18b8, 0xad7: 0x18bb,\n\t0xad8: 0x18be, 0xad9: 0x18c1, 0xada: 0x18ca, 0xadb: 0x18cd, 0xadc: 0x18d0, 0xadd: 0x18d3,\n\t0xade: 0x18d6, 0xadf: 0x18d9, 0xae0: 0x0313, 0xae1: 0x031b, 0xae2: 0x031f, 0xae3: 0x0327,\n\t0xae4: 0x032b, 0xae5: 0x032f, 0xae6: 0x0337, 0xae7: 0x033f, 0xae8: 0x0343, 0xae9: 0x034b,\n\t0xaea: 0x034f, 0xaeb: 0x0353, 0xaec: 0x0357, 0xaed: 0x035b, 0xaee: 0x2e18, 0xaef: 0x2e20,\n\t0xaf0: 0x2e28, 0xaf1: 0x2e30, 0xaf2: 0x2e38, 0xaf3: 0x2e40, 0xaf4: 0x2e48, 0xaf5: 0x2e50,\n\t0xaf6: 0x2e60, 0xaf7: 0x2e68, 0xaf8: 0x2e70, 0xaf9: 0x2e78, 0xafa: 0x2e80, 0xafb: 0x2e88,\n\t0xafc: 0x2ed3, 0xafd: 0x2e9b, 0xafe: 0x2e58,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0x06bf, 0xb01: 0x071b, 0xb02: 0x06cb, 0xb03: 0x097b, 0xb04: 0x071f, 0xb05: 0x07af,\n\t0xb06: 0x06c7, 0xb07: 0x07ab, 0xb08: 0x070b, 0xb09: 0x0887, 0xb0a: 0x0d07, 0xb0b: 0x0e8f,\n\t0xb0c: 0x0dd7, 0xb0d: 0x0d1b, 0xb0e: 0x145f, 0xb0f: 0x098b, 0xb10: 0x0ccf, 0xb11: 0x0d4b,\n\t0xb12: 0x0d0b, 0xb13: 0x104b, 0xb14: 0x08fb, 0xb15: 0x0f03, 0xb16: 0x1387, 0xb17: 0x105f,\n\t0xb18: 0x0843, 0xb19: 0x108f, 0xb1a: 0x0f9b, 0xb1b: 0x0a17, 0xb1c: 0x140f, 0xb1d: 0x077f,\n\t0xb1e: 0x08ab, 0xb1f: 0x0df7, 0xb20: 0x1527, 0xb21: 0x0743, 0xb22: 0x07d3, 0xb23: 0x0d9b,\n\t0xb24: 0x06cf, 0xb25: 0x06e7, 0xb26: 0x06d3, 0xb27: 0x0adb, 0xb28: 0x08ef, 0xb29: 0x087f,\n\t0xb2a: 0x0a57, 0xb2b: 0x0a4b, 0xb2c: 0x0feb, 0xb2d: 0x073f, 0xb2e: 0x139b, 0xb2f: 0x089b,\n\t0xb30: 0x09f3, 0xb31: 0x18dc, 0xb32: 0x18df, 0xb33: 0x18e2, 0xb34: 0x18e5, 0xb35: 0x18ee,\n\t0xb36: 0x18f1, 0xb37: 0x18f4, 0xb38: 0x18f7, 0xb39: 0x18fa, 0xb3a: 0x18fd, 0xb3b: 0x1900,\n\t0xb3c: 0x1903, 0xb3d: 0x1906, 0xb3e: 0x1909, 0xb3f: 0x1912,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x1cc6, 0xb41: 0x1cd5, 0xb42: 0x1ce4, 0xb43: 0x1cf3, 0xb44: 0x1d02, 0xb45: 0x1d11,\n\t0xb46: 0x1d20, 0xb47: 0x1d2f, 0xb48: 0x1d3e, 0xb49: 0x218c, 0xb4a: 0x219e, 0xb4b: 0x21b0,\n\t0xb4c: 0x1954, 0xb4d: 0x1c04, 0xb4e: 0x19d2, 0xb4f: 0x1ba8, 0xb50: 0x04cb, 0xb51: 0x04d3,\n\t0xb52: 0x04db, 0xb53: 0x04e3, 0xb54: 0x04eb, 0xb55: 0x04ef, 0xb56: 0x04f3, 0xb57: 0x04f7,\n\t0xb58: 0x04fb, 0xb59: 0x04ff, 0xb5a: 0x0503, 0xb5b: 0x0507, 0xb5c: 0x050b, 0xb5d: 0x050f,\n\t0xb5e: 0x0513, 0xb5f: 0x0517, 0xb60: 0x051b, 0xb61: 0x0523, 0xb62: 0x0527, 0xb63: 0x052b,\n\t0xb64: 0x052f, 0xb65: 0x0533, 0xb66: 0x0537, 0xb67: 0x053b, 0xb68: 0x053f, 0xb69: 0x0543,\n\t0xb6a: 0x0547, 0xb6b: 0x054b, 0xb6c: 0x054f, 0xb6d: 0x0553, 0xb6e: 0x0557, 0xb6f: 0x055b,\n\t0xb70: 0x055f, 0xb71: 0x0563, 0xb72: 0x0567, 0xb73: 0x056f, 0xb74: 0x0577, 0xb75: 0x057f,\n\t0xb76: 0x0583, 0xb77: 0x0587, 0xb78: 0x058b, 0xb79: 0x058f, 0xb7a: 0x0593, 0xb7b: 0x0597,\n\t0xb7c: 0x059b, 0xb7d: 0x059f, 0xb7e: 0x05a3,\n\t// Block 0x2e, offset 0xb80\n\t0xb80: 0x2b0c, 0xb81: 0x29a8, 0xb82: 0x2b1c, 0xb83: 0x2880, 0xb84: 0x2ee4, 0xb85: 0x288a,\n\t0xb86: 0x2894, 0xb87: 0x2f28, 0xb88: 0x29b5, 0xb89: 0x289e, 0xb8a: 0x28a8, 0xb8b: 0x28b2,\n\t0xb8c: 0x29dc, 0xb8d: 0x29e9, 0xb8e: 0x29c2, 0xb8f: 0x29cf, 0xb90: 0x2ea9, 0xb91: 0x29f6,\n\t0xb92: 0x2a03, 0xb93: 0x2bbe, 0xb94: 0x26bb, 0xb95: 0x2bd1, 0xb96: 0x2be4, 0xb97: 0x2b2c,\n\t0xb98: 0x2a10, 0xb99: 0x2bf7, 0xb9a: 0x2c0a, 0xb9b: 0x2a1d, 0xb9c: 0x28bc, 0xb9d: 0x28c6,\n\t0xb9e: 0x2eb7, 0xb9f: 0x2a2a, 0xba0: 0x2b3c, 0xba1: 0x2ef5, 0xba2: 0x28d0, 0xba3: 0x28da,\n\t0xba4: 0x2a37, 0xba5: 0x28e4, 0xba6: 0x28ee, 0xba7: 0x26d0, 0xba8: 0x26d7, 0xba9: 0x28f8,\n\t0xbaa: 0x2902, 0xbab: 0x2c1d, 0xbac: 0x2a44, 0xbad: 0x2b4c, 0xbae: 0x2c30, 0xbaf: 0x2a51,\n\t0xbb0: 0x2916, 0xbb1: 0x290c, 0xbb2: 0x2f3c, 0xbb3: 0x2a5e, 0xbb4: 0x2c43, 0xbb5: 0x2920,\n\t0xbb6: 0x2b5c, 0xbb7: 0x292a, 0xbb8: 0x2a78, 0xbb9: 0x2934, 0xbba: 0x2a85, 0xbbb: 0x2f06,\n\t0xbbc: 0x2a6b, 0xbbd: 0x2b6c, 0xbbe: 0x2a92, 0xbbf: 0x26de,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc0: 0x2f17, 0xbc1: 0x293e, 0xbc2: 0x2948, 0xbc3: 0x2a9f, 0xbc4: 0x2952, 0xbc5: 0x295c,\n\t0xbc6: 0x2966, 0xbc7: 0x2b7c, 0xbc8: 0x2aac, 0xbc9: 0x26e5, 0xbca: 0x2c56, 0xbcb: 0x2e90,\n\t0xbcc: 0x2b8c, 0xbcd: 0x2ab9, 0xbce: 0x2ec5, 0xbcf: 0x2970, 0xbd0: 0x297a, 0xbd1: 0x2ac6,\n\t0xbd2: 0x26ec, 0xbd3: 0x2ad3, 0xbd4: 0x2b9c, 0xbd5: 0x26f3, 0xbd6: 0x2c69, 0xbd7: 0x2984,\n\t0xbd8: 0x1cb7, 0xbd9: 0x1ccb, 0xbda: 0x1cda, 0xbdb: 0x1ce9, 0xbdc: 0x1cf8, 0xbdd: 0x1d07,\n\t0xbde: 0x1d16, 0xbdf: 0x1d25, 0xbe0: 0x1d34, 0xbe1: 0x1d43, 0xbe2: 0x2192, 0xbe3: 0x21a4,\n\t0xbe4: 0x21b6, 0xbe5: 0x21c2, 0xbe6: 0x21ce, 0xbe7: 0x21da, 0xbe8: 0x21e6, 0xbe9: 0x21f2,\n\t0xbea: 0x21fe, 0xbeb: 0x220a, 0xbec: 0x2246, 0xbed: 0x2252, 0xbee: 0x225e, 0xbef: 0x226a,\n\t0xbf0: 0x2276, 0xbf1: 0x1c14, 0xbf2: 0x19c6, 0xbf3: 0x1936, 0xbf4: 0x1be4, 0xbf5: 0x1a47,\n\t0xbf6: 0x1a56, 0xbf7: 0x19cc, 0xbf8: 0x1bfc, 0xbf9: 0x1c00, 0xbfa: 0x1960, 0xbfb: 0x2701,\n\t0xbfc: 0x270f, 0xbfd: 0x26fa, 0xbfe: 0x2708, 0xbff: 0x2ae0,\n\t// Block 0x30, offset 0xc00\n\t0xc00: 0x1a4a, 0xc01: 0x1a32, 0xc02: 0x1c60, 0xc03: 0x1a1a, 0xc04: 0x19f3, 0xc05: 0x1969,\n\t0xc06: 0x1978, 0xc07: 0x1948, 0xc08: 0x1bf0, 0xc09: 0x1d52, 0xc0a: 0x1a4d, 0xc0b: 0x1a35,\n\t0xc0c: 0x1c64, 0xc0d: 0x1c70, 0xc0e: 0x1a26, 0xc0f: 0x19fc, 0xc10: 0x1957, 0xc11: 0x1c1c,\n\t0xc12: 0x1bb0, 0xc13: 0x1b9c, 0xc14: 0x1bcc, 0xc15: 0x1c74, 0xc16: 0x1a29, 0xc17: 0x19c9,\n\t0xc18: 0x19ff, 0xc19: 0x19de, 0xc1a: 0x1a41, 0xc1b: 0x1c78, 0xc1c: 0x1a2c, 0xc1d: 0x19c0,\n\t0xc1e: 0x1a02, 0xc1f: 0x1c3c, 0xc20: 0x1bf4, 0xc21: 0x1a14, 0xc22: 0x1c24, 0xc23: 0x1c40,\n\t0xc24: 0x1bf8, 0xc25: 0x1a17, 0xc26: 0x1c28, 0xc27: 0x22e8, 0xc28: 0x22fc, 0xc29: 0x1996,\n\t0xc2a: 0x1c20, 0xc2b: 0x1bb4, 0xc2c: 0x1ba0, 0xc2d: 0x1c48, 0xc2e: 0x2716, 0xc2f: 0x27ad,\n\t0xc30: 0x1a59, 0xc31: 0x1a44, 0xc32: 0x1c7c, 0xc33: 0x1a2f, 0xc34: 0x1a50, 0xc35: 0x1a38,\n\t0xc36: 0x1c68, 0xc37: 0x1a1d, 0xc38: 0x19f6, 0xc39: 0x1981, 0xc3a: 0x1a53, 0xc3b: 0x1a3b,\n\t0xc3c: 0x1c6c, 0xc3d: 0x1a20, 0xc3e: 0x19f9, 0xc3f: 0x1984,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x1c2c, 0xc41: 0x1bb8, 0xc42: 0x1d4d, 0xc43: 0x1939, 0xc44: 0x19ba, 0xc45: 0x19bd,\n\t0xc46: 0x22f5, 0xc47: 0x1b94, 0xc48: 0x19c3, 0xc49: 0x194b, 0xc4a: 0x19e1, 0xc4b: 0x194e,\n\t0xc4c: 0x19ea, 0xc4d: 0x196c, 0xc4e: 0x196f, 0xc4f: 0x1a05, 0xc50: 0x1a0b, 0xc51: 0x1a0e,\n\t0xc52: 0x1c30, 0xc53: 0x1a11, 0xc54: 0x1a23, 0xc55: 0x1c38, 0xc56: 0x1c44, 0xc57: 0x1990,\n\t0xc58: 0x1d57, 0xc59: 0x1bbc, 0xc5a: 0x1993, 0xc5b: 0x1a5c, 0xc5c: 0x19a5, 0xc5d: 0x19b4,\n\t0xc5e: 0x22e2, 0xc5f: 0x22dc, 0xc60: 0x1cc1, 0xc61: 0x1cd0, 0xc62: 0x1cdf, 0xc63: 0x1cee,\n\t0xc64: 0x1cfd, 0xc65: 0x1d0c, 0xc66: 0x1d1b, 0xc67: 0x1d2a, 0xc68: 0x1d39, 0xc69: 0x2186,\n\t0xc6a: 0x2198, 0xc6b: 0x21aa, 0xc6c: 0x21bc, 0xc6d: 0x21c8, 0xc6e: 0x21d4, 0xc6f: 0x21e0,\n\t0xc70: 0x21ec, 0xc71: 0x21f8, 0xc72: 0x2204, 0xc73: 0x2240, 0xc74: 0x224c, 0xc75: 0x2258,\n\t0xc76: 0x2264, 0xc77: 0x2270, 0xc78: 0x227c, 0xc79: 0x2282, 0xc7a: 0x2288, 0xc7b: 0x228e,\n\t0xc7c: 0x2294, 0xc7d: 0x22a6, 0xc7e: 0x22ac, 0xc7f: 0x1c10,\n\t// Block 0x32, offset 0xc80\n\t0xc80: 0x1377, 0xc81: 0x0cfb, 0xc82: 0x13d3, 0xc83: 0x139f, 0xc84: 0x0e57, 0xc85: 0x06eb,\n\t0xc86: 0x08df, 0xc87: 0x162b, 0xc88: 0x162b, 0xc89: 0x0a0b, 0xc8a: 0x145f, 0xc8b: 0x0943,\n\t0xc8c: 0x0a07, 0xc8d: 0x0bef, 0xc8e: 0x0fcf, 0xc8f: 0x115f, 0xc90: 0x1297, 0xc91: 0x12d3,\n\t0xc92: 0x1307, 0xc93: 0x141b, 0xc94: 0x0d73, 0xc95: 0x0dff, 0xc96: 0x0eab, 0xc97: 0x0f43,\n\t0xc98: 0x125f, 0xc99: 0x1447, 0xc9a: 0x1573, 0xc9b: 0x070f, 0xc9c: 0x08b3, 0xc9d: 0x0d87,\n\t0xc9e: 0x0ecf, 0xc9f: 0x1293, 0xca0: 0x15c3, 0xca1: 0x0ab3, 0xca2: 0x0e77, 0xca3: 0x1283,\n\t0xca4: 0x1317, 0xca5: 0x0c23, 0xca6: 0x11bb, 0xca7: 0x12df, 0xca8: 0x0b1f, 0xca9: 0x0d0f,\n\t0xcaa: 0x0e17, 0xcab: 0x0f1b, 0xcac: 0x1427, 0xcad: 0x074f, 0xcae: 0x07e7, 0xcaf: 0x0853,\n\t0xcb0: 0x0c8b, 0xcb1: 0x0d7f, 0xcb2: 0x0ecb, 0xcb3: 0x0fef, 0xcb4: 0x1177, 0xcb5: 0x128b,\n\t0xcb6: 0x12a3, 0xcb7: 0x13c7, 0xcb8: 0x14ef, 0xcb9: 0x15a3, 0xcba: 0x15bf, 0xcbb: 0x102b,\n\t0xcbc: 0x106b, 0xcbd: 0x1123, 0xcbe: 0x1243, 0xcbf: 0x147b,\n\t// Block 0x33, offset 0xcc0\n\t0xcc0: 0x15cb, 0xcc1: 0x134b, 0xcc2: 0x09c7, 0xcc3: 0x0b3b, 0xcc4: 0x10db, 0xcc5: 0x119b,\n\t0xcc6: 0x0eff, 0xcc7: 0x1033, 0xcc8: 0x1397, 0xcc9: 0x14e7, 0xcca: 0x09c3, 0xccb: 0x0a8f,\n\t0xccc: 0x0d77, 0xccd: 0x0e2b, 0xcce: 0x0e5f, 0xccf: 0x1113, 0xcd0: 0x113b, 0xcd1: 0x14a7,\n\t0xcd2: 0x084f, 0xcd3: 0x11a7, 0xcd4: 0x07f3, 0xcd5: 0x07ef, 0xcd6: 0x1097, 0xcd7: 0x1127,\n\t0xcd8: 0x125b, 0xcd9: 0x14af, 0xcda: 0x1367, 0xcdb: 0x0c27, 0xcdc: 0x0d73, 0xcdd: 0x1357,\n\t0xcde: 0x06f7, 0xcdf: 0x0a63, 0xce0: 0x0b93, 0xce1: 0x0f2f, 0xce2: 0x0faf, 0xce3: 0x0873,\n\t0xce4: 0x103b, 0xce5: 0x075f, 0xce6: 0x0b77, 0xce7: 0x06d7, 0xce8: 0x0deb, 0xce9: 0x0ca3,\n\t0xcea: 0x110f, 0xceb: 0x08c7, 0xcec: 0x09b3, 0xced: 0x0ffb, 0xcee: 0x1263, 0xcef: 0x133b,\n\t0xcf0: 0x0db7, 0xcf1: 0x13f7, 0xcf2: 0x0de3, 0xcf3: 0x0c37, 0xcf4: 0x121b, 0xcf5: 0x0c57,\n\t0xcf6: 0x0fab, 0xcf7: 0x072b, 0xcf8: 0x07a7, 0xcf9: 0x07eb, 0xcfa: 0x0d53, 0xcfb: 0x10fb,\n\t0xcfc: 0x11f3, 0xcfd: 0x1347, 0xcfe: 0x145b, 0xcff: 0x085b,\n\t// Block 0x34, offset 0xd00\n\t0xd00: 0x090f, 0xd01: 0x0a17, 0xd02: 0x0b2f, 0xd03: 0x0cbf, 0xd04: 0x0e7b, 0xd05: 0x103f,\n\t0xd06: 0x1497, 0xd07: 0x157b, 0xd08: 0x15cf, 0xd09: 0x15e7, 0xd0a: 0x0837, 0xd0b: 0x0cf3,\n\t0xd0c: 0x0da3, 0xd0d: 0x13eb, 0xd0e: 0x0afb, 0xd0f: 0x0bd7, 0xd10: 0x0bf3, 0xd11: 0x0c83,\n\t0xd12: 0x0e6b, 0xd13: 0x0eb7, 0xd14: 0x0f67, 0xd15: 0x108b, 0xd16: 0x112f, 0xd17: 0x1193,\n\t0xd18: 0x13db, 0xd19: 0x126b, 0xd1a: 0x1403, 0xd1b: 0x147f, 0xd1c: 0x080f, 0xd1d: 0x083b,\n\t0xd1e: 0x0923, 0xd1f: 0x0ea7, 0xd20: 0x12f3, 0xd21: 0x133b, 0xd22: 0x0b1b, 0xd23: 0x0b8b,\n\t0xd24: 0x0c4f, 0xd25: 0x0daf, 0xd26: 0x10d7, 0xd27: 0x0f23, 0xd28: 0x073b, 0xd29: 0x097f,\n\t0xd2a: 0x0a63, 0xd2b: 0x0ac7, 0xd2c: 0x0b97, 0xd2d: 0x0f3f, 0xd2e: 0x0f5b, 0xd2f: 0x116b,\n\t0xd30: 0x118b, 0xd31: 0x1463, 0xd32: 0x14e3, 0xd33: 0x14f3, 0xd34: 0x152f, 0xd35: 0x0753,\n\t0xd36: 0x107f, 0xd37: 0x144f, 0xd38: 0x14cb, 0xd39: 0x0baf, 0xd3a: 0x0717, 0xd3b: 0x0777,\n\t0xd3c: 0x0a67, 0xd3d: 0x0a87, 0xd3e: 0x0caf, 0xd3f: 0x0d73,\n\t// Block 0x35, offset 0xd40\n\t0xd40: 0x0ec3, 0xd41: 0x0fcb, 0xd42: 0x1277, 0xd43: 0x1417, 0xd44: 0x1623, 0xd45: 0x0ce3,\n\t0xd46: 0x14a3, 0xd47: 0x0833, 0xd48: 0x0d2f, 0xd49: 0x0d3b, 0xd4a: 0x0e0f, 0xd4b: 0x0e47,\n\t0xd4c: 0x0f4b, 0xd4d: 0x0fa7, 0xd4e: 0x1027, 0xd4f: 0x110b, 0xd50: 0x153b, 0xd51: 0x07af,\n\t0xd52: 0x0c03, 0xd53: 0x14b3, 0xd54: 0x0767, 0xd55: 0x0aab, 0xd56: 0x0e2f, 0xd57: 0x13df,\n\t0xd58: 0x0b67, 0xd59: 0x0bb7, 0xd5a: 0x0d43, 0xd5b: 0x0f2f, 0xd5c: 0x14bb, 0xd5d: 0x0817,\n\t0xd5e: 0x08ff, 0xd5f: 0x0a97, 0xd60: 0x0cd3, 0xd61: 0x0d1f, 0xd62: 0x0d5f, 0xd63: 0x0df3,\n\t0xd64: 0x0f47, 0xd65: 0x0fbb, 0xd66: 0x1157, 0xd67: 0x12f7, 0xd68: 0x1303, 0xd69: 0x1457,\n\t0xd6a: 0x14d7, 0xd6b: 0x0883, 0xd6c: 0x0e4b, 0xd6d: 0x0903, 0xd6e: 0x0ec7, 0xd6f: 0x0f6b,\n\t0xd70: 0x1287, 0xd71: 0x14bf, 0xd72: 0x15ab, 0xd73: 0x15d3, 0xd74: 0x0d37, 0xd75: 0x0e27,\n\t0xd76: 0x11c3, 0xd77: 0x10b7, 0xd78: 0x10c3, 0xd79: 0x10e7, 0xd7a: 0x0f17, 0xd7b: 0x0e9f,\n\t0xd7c: 0x1363, 0xd7d: 0x0733, 0xd7e: 0x122b, 0xd7f: 0x081b,\n\t// Block 0x36, offset 0xd80\n\t0xd80: 0x080b, 0xd81: 0x0b0b, 0xd82: 0x0c2b, 0xd83: 0x10f3, 0xd84: 0x0a53, 0xd85: 0x0e03,\n\t0xd86: 0x0cef, 0xd87: 0x13e7, 0xd88: 0x12e7, 0xd89: 0x14ab, 0xd8a: 0x1323, 0xd8b: 0x0b27,\n\t0xd8c: 0x0787, 0xd8d: 0x095b, 0xd90: 0x09af,\n\t0xd92: 0x0cdf, 0xd95: 0x07f7, 0xd96: 0x0f1f, 0xd97: 0x0fe3,\n\t0xd98: 0x1047, 0xd99: 0x1063, 0xd9a: 0x1067, 0xd9b: 0x107b, 0xd9c: 0x14fb, 0xd9d: 0x10eb,\n\t0xd9e: 0x116f, 0xda0: 0x128f, 0xda2: 0x1353,\n\t0xda5: 0x1407, 0xda6: 0x1433,\n\t0xdaa: 0x154f, 0xdab: 0x1553, 0xdac: 0x1557, 0xdad: 0x15bb, 0xdae: 0x142b, 0xdaf: 0x14c7,\n\t0xdb0: 0x0757, 0xdb1: 0x077b, 0xdb2: 0x078f, 0xdb3: 0x084b, 0xdb4: 0x0857, 0xdb5: 0x0897,\n\t0xdb6: 0x094b, 0xdb7: 0x0967, 0xdb8: 0x096f, 0xdb9: 0x09ab, 0xdba: 0x09b7, 0xdbb: 0x0a93,\n\t0xdbc: 0x0a9b, 0xdbd: 0x0ba3, 0xdbe: 0x0bcb, 0xdbf: 0x0bd3,\n\t// Block 0x37, offset 0xdc0\n\t0xdc0: 0x0beb, 0xdc1: 0x0c97, 0xdc2: 0x0cc7, 0xdc3: 0x0ce7, 0xdc4: 0x0d57, 0xdc5: 0x0e1b,\n\t0xdc6: 0x0e37, 0xdc7: 0x0e67, 0xdc8: 0x0ebb, 0xdc9: 0x0edb, 0xdca: 0x0f4f, 0xdcb: 0x102f,\n\t0xdcc: 0x104b, 0xdcd: 0x1053, 0xdce: 0x104f, 0xdcf: 0x1057, 0xdd0: 0x105b, 0xdd1: 0x105f,\n\t0xdd2: 0x1073, 0xdd3: 0x1077, 0xdd4: 0x109b, 0xdd5: 0x10af, 0xdd6: 0x10cb, 0xdd7: 0x112f,\n\t0xdd8: 0x1137, 0xdd9: 0x113f, 0xdda: 0x1153, 0xddb: 0x117b, 0xddc: 0x11cb, 0xddd: 0x11ff,\n\t0xdde: 0x11ff, 0xddf: 0x1267, 0xde0: 0x130f, 0xde1: 0x1327, 0xde2: 0x135b, 0xde3: 0x135f,\n\t0xde4: 0x13a3, 0xde5: 0x13a7, 0xde6: 0x13ff, 0xde7: 0x1407, 0xde8: 0x14db, 0xde9: 0x151f,\n\t0xdea: 0x1537, 0xdeb: 0x0b9b, 0xdec: 0x171e, 0xded: 0x11e3,\n\t0xdf0: 0x06df, 0xdf1: 0x07e3, 0xdf2: 0x07a3, 0xdf3: 0x074b, 0xdf4: 0x078b, 0xdf5: 0x07b7,\n\t0xdf6: 0x0847, 0xdf7: 0x0863, 0xdf8: 0x094b, 0xdf9: 0x0937, 0xdfa: 0x0947, 0xdfb: 0x0963,\n\t0xdfc: 0x09af, 0xdfd: 0x09bf, 0xdfe: 0x0a03, 0xdff: 0x0a0f,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0x0a2b, 0xe01: 0x0a3b, 0xe02: 0x0b23, 0xe03: 0x0b2b, 0xe04: 0x0b5b, 0xe05: 0x0b7b,\n\t0xe06: 0x0bab, 0xe07: 0x0bc3, 0xe08: 0x0bb3, 0xe09: 0x0bd3, 0xe0a: 0x0bc7, 0xe0b: 0x0beb,\n\t0xe0c: 0x0c07, 0xe0d: 0x0c5f, 0xe0e: 0x0c6b, 0xe0f: 0x0c73, 0xe10: 0x0c9b, 0xe11: 0x0cdf,\n\t0xe12: 0x0d0f, 0xe13: 0x0d13, 0xe14: 0x0d27, 0xe15: 0x0da7, 0xe16: 0x0db7, 0xe17: 0x0e0f,\n\t0xe18: 0x0e5b, 0xe19: 0x0e53, 0xe1a: 0x0e67, 0xe1b: 0x0e83, 0xe1c: 0x0ebb, 0xe1d: 0x1013,\n\t0xe1e: 0x0edf, 0xe1f: 0x0f13, 0xe20: 0x0f1f, 0xe21: 0x0f5f, 0xe22: 0x0f7b, 0xe23: 0x0f9f,\n\t0xe24: 0x0fc3, 0xe25: 0x0fc7, 0xe26: 0x0fe3, 0xe27: 0x0fe7, 0xe28: 0x0ff7, 0xe29: 0x100b,\n\t0xe2a: 0x1007, 0xe2b: 0x1037, 0xe2c: 0x10b3, 0xe2d: 0x10cb, 0xe2e: 0x10e3, 0xe2f: 0x111b,\n\t0xe30: 0x112f, 0xe31: 0x114b, 0xe32: 0x117b, 0xe33: 0x122f, 0xe34: 0x1257, 0xe35: 0x12cb,\n\t0xe36: 0x1313, 0xe37: 0x131f, 0xe38: 0x1327, 0xe39: 0x133f, 0xe3a: 0x1353, 0xe3b: 0x1343,\n\t0xe3c: 0x135b, 0xe3d: 0x1357, 0xe3e: 0x134f, 0xe3f: 0x135f,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x136b, 0xe41: 0x13a7, 0xe42: 0x13e3, 0xe43: 0x1413, 0xe44: 0x144b, 0xe45: 0x146b,\n\t0xe46: 0x14b7, 0xe47: 0x14db, 0xe48: 0x14fb, 0xe49: 0x150f, 0xe4a: 0x151f, 0xe4b: 0x152b,\n\t0xe4c: 0x1537, 0xe4d: 0x158b, 0xe4e: 0x162b, 0xe4f: 0x16b5, 0xe50: 0x16b0, 0xe51: 0x16e2,\n\t0xe52: 0x0607, 0xe53: 0x062f, 0xe54: 0x0633, 0xe55: 0x1764, 0xe56: 0x1791, 0xe57: 0x1809,\n\t0xe58: 0x1617, 0xe59: 0x1627,\n\t// Block 0x3a, offset 0xe80\n\t0xe80: 0x19d5, 0xe81: 0x19d8, 0xe82: 0x19db, 0xe83: 0x1c08, 0xe84: 0x1c0c, 0xe85: 0x1a5f,\n\t0xe86: 0x1a5f,\n\t0xe93: 0x1d75, 0xe94: 0x1d66, 0xe95: 0x1d6b, 0xe96: 0x1d7a, 0xe97: 0x1d70,\n\t0xe9d: 0x4390,\n\t0xe9e: 0x8115, 0xe9f: 0x4402, 0xea0: 0x022d, 0xea1: 0x0215, 0xea2: 0x021e, 0xea3: 0x0221,\n\t0xea4: 0x0224, 0xea5: 0x0227, 0xea6: 0x022a, 0xea7: 0x0230, 0xea8: 0x0233, 0xea9: 0x0017,\n\t0xeaa: 0x43f0, 0xeab: 0x43f6, 0xeac: 0x44f4, 0xead: 0x44fc, 0xeae: 0x4348, 0xeaf: 0x434e,\n\t0xeb0: 0x4354, 0xeb1: 0x435a, 0xeb2: 0x4366, 0xeb3: 0x436c, 0xeb4: 0x4372, 0xeb5: 0x437e,\n\t0xeb6: 0x4384, 0xeb8: 0x438a, 0xeb9: 0x4396, 0xeba: 0x439c, 0xebb: 0x43a2,\n\t0xebc: 0x43ae, 0xebe: 0x43b4,\n\t// Block 0x3b, offset 0xec0\n\t0xec0: 0x43ba, 0xec1: 0x43c0, 0xec3: 0x43c6, 0xec4: 0x43cc,\n\t0xec6: 0x43d8, 0xec7: 0x43de, 0xec8: 0x43e4, 0xec9: 0x43ea, 0xeca: 0x43fc, 0xecb: 0x4378,\n\t0xecc: 0x4360, 0xecd: 0x43a8, 0xece: 0x43d2, 0xecf: 0x1d7f, 0xed0: 0x0299, 0xed1: 0x0299,\n\t0xed2: 0x02a2, 0xed3: 0x02a2, 0xed4: 0x02a2, 0xed5: 0x02a2, 0xed6: 0x02a5, 0xed7: 0x02a5,\n\t0xed8: 0x02a5, 0xed9: 0x02a5, 0xeda: 0x02ab, 0xedb: 0x02ab, 0xedc: 0x02ab, 0xedd: 0x02ab,\n\t0xede: 0x029f, 0xedf: 0x029f, 0xee0: 0x029f, 0xee1: 0x029f, 0xee2: 0x02a8, 0xee3: 0x02a8,\n\t0xee4: 0x02a8, 0xee5: 0x02a8, 0xee6: 0x029c, 0xee7: 0x029c, 0xee8: 0x029c, 0xee9: 0x029c,\n\t0xeea: 0x02cf, 0xeeb: 0x02cf, 0xeec: 0x02cf, 0xeed: 0x02cf, 0xeee: 0x02d2, 0xeef: 0x02d2,\n\t0xef0: 0x02d2, 0xef1: 0x02d2, 0xef2: 0x02b1, 0xef3: 0x02b1, 0xef4: 0x02b1, 0xef5: 0x02b1,\n\t0xef6: 0x02ae, 0xef7: 0x02ae, 0xef8: 0x02ae, 0xef9: 0x02ae, 0xefa: 0x02b4, 0xefb: 0x02b4,\n\t0xefc: 0x02b4, 0xefd: 0x02b4, 0xefe: 0x02b7, 0xeff: 0x02b7,\n\t// Block 0x3c, offset 0xf00\n\t0xf00: 0x02b7, 0xf01: 0x02b7, 0xf02: 0x02c0, 0xf03: 0x02c0, 0xf04: 0x02bd, 0xf05: 0x02bd,\n\t0xf06: 0x02c3, 0xf07: 0x02c3, 0xf08: 0x02ba, 0xf09: 0x02ba, 0xf0a: 0x02c9, 0xf0b: 0x02c9,\n\t0xf0c: 0x02c6, 0xf0d: 0x02c6, 0xf0e: 0x02d5, 0xf0f: 0x02d5, 0xf10: 0x02d5, 0xf11: 0x02d5,\n\t0xf12: 0x02db, 0xf13: 0x02db, 0xf14: 0x02db, 0xf15: 0x02db, 0xf16: 0x02e1, 0xf17: 0x02e1,\n\t0xf18: 0x02e1, 0xf19: 0x02e1, 0xf1a: 0x02de, 0xf1b: 0x02de, 0xf1c: 0x02de, 0xf1d: 0x02de,\n\t0xf1e: 0x02e4, 0xf1f: 0x02e4, 0xf20: 0x02e7, 0xf21: 0x02e7, 0xf22: 0x02e7, 0xf23: 0x02e7,\n\t0xf24: 0x446e, 0xf25: 0x446e, 0xf26: 0x02ed, 0xf27: 0x02ed, 0xf28: 0x02ed, 0xf29: 0x02ed,\n\t0xf2a: 0x02ea, 0xf2b: 0x02ea, 0xf2c: 0x02ea, 0xf2d: 0x02ea, 0xf2e: 0x0308, 0xf2f: 0x0308,\n\t0xf30: 0x4468, 0xf31: 0x4468,\n\t// Block 0x3d, offset 0xf40\n\t0xf53: 0x02d8, 0xf54: 0x02d8, 0xf55: 0x02d8, 0xf56: 0x02d8, 0xf57: 0x02f6,\n\t0xf58: 0x02f6, 0xf59: 0x02f3, 0xf5a: 0x02f3, 0xf5b: 0x02f9, 0xf5c: 0x02f9, 0xf5d: 0x204f,\n\t0xf5e: 0x02ff, 0xf5f: 0x02ff, 0xf60: 0x02f0, 0xf61: 0x02f0, 0xf62: 0x02fc, 0xf63: 0x02fc,\n\t0xf64: 0x0305, 0xf65: 0x0305, 0xf66: 0x0305, 0xf67: 0x0305, 0xf68: 0x028d, 0xf69: 0x028d,\n\t0xf6a: 0x25aa, 0xf6b: 0x25aa, 0xf6c: 0x261a, 0xf6d: 0x261a, 0xf6e: 0x25e9, 0xf6f: 0x25e9,\n\t0xf70: 0x2605, 0xf71: 0x2605, 0xf72: 0x25fe, 0xf73: 0x25fe, 0xf74: 0x260c, 0xf75: 0x260c,\n\t0xf76: 0x2613, 0xf77: 0x2613, 0xf78: 0x2613, 0xf79: 0x25f0, 0xf7a: 0x25f0, 0xf7b: 0x25f0,\n\t0xf7c: 0x0302, 0xf7d: 0x0302, 0xf7e: 0x0302, 0xf7f: 0x0302,\n\t// Block 0x3e, offset 0xf80\n\t0xf80: 0x25b1, 0xf81: 0x25b8, 0xf82: 0x25d4, 0xf83: 0x25f0, 0xf84: 0x25f7, 0xf85: 0x1d89,\n\t0xf86: 0x1d8e, 0xf87: 0x1d93, 0xf88: 0x1da2, 0xf89: 0x1db1, 0xf8a: 0x1db6, 0xf8b: 0x1dbb,\n\t0xf8c: 0x1dc0, 0xf8d: 0x1dc5, 0xf8e: 0x1dd4, 0xf8f: 0x1de3, 0xf90: 0x1de8, 0xf91: 0x1ded,\n\t0xf92: 0x1dfc, 0xf93: 0x1e0b, 0xf94: 0x1e10, 0xf95: 0x1e15, 0xf96: 0x1e1a, 0xf97: 0x1e29,\n\t0xf98: 0x1e2e, 0xf99: 0x1e3d, 0xf9a: 0x1e42, 0xf9b: 0x1e47, 0xf9c: 0x1e56, 0xf9d: 0x1e5b,\n\t0xf9e: 0x1e60, 0xf9f: 0x1e6a, 0xfa0: 0x1ea6, 0xfa1: 0x1eb5, 0xfa2: 0x1ec4, 0xfa3: 0x1ec9,\n\t0xfa4: 0x1ece, 0xfa5: 0x1ed8, 0xfa6: 0x1ee7, 0xfa7: 0x1eec, 0xfa8: 0x1efb, 0xfa9: 0x1f00,\n\t0xfaa: 0x1f05, 0xfab: 0x1f14, 0xfac: 0x1f19, 0xfad: 0x1f28, 0xfae: 0x1f2d, 0xfaf: 0x1f32,\n\t0xfb0: 0x1f37, 0xfb1: 0x1f3c, 0xfb2: 0x1f41, 0xfb3: 0x1f46, 0xfb4: 0x1f4b, 0xfb5: 0x1f50,\n\t0xfb6: 0x1f55, 0xfb7: 0x1f5a, 0xfb8: 0x1f5f, 0xfb9: 0x1f64, 0xfba: 0x1f69, 0xfbb: 0x1f6e,\n\t0xfbc: 0x1f73, 0xfbd: 0x1f78, 0xfbe: 0x1f7d, 0xfbf: 0x1f87,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc0: 0x1f8c, 0xfc1: 0x1f91, 0xfc2: 0x1f96, 0xfc3: 0x1fa0, 0xfc4: 0x1fa5, 0xfc5: 0x1faf,\n\t0xfc6: 0x1fb4, 0xfc7: 0x1fb9, 0xfc8: 0x1fbe, 0xfc9: 0x1fc3, 0xfca: 0x1fc8, 0xfcb: 0x1fcd,\n\t0xfcc: 0x1fd2, 0xfcd: 0x1fd7, 0xfce: 0x1fe6, 0xfcf: 0x1ff5, 0xfd0: 0x1ffa, 0xfd1: 0x1fff,\n\t0xfd2: 0x2004, 0xfd3: 0x2009, 0xfd4: 0x200e, 0xfd5: 0x2018, 0xfd6: 0x201d, 0xfd7: 0x2022,\n\t0xfd8: 0x2031, 0xfd9: 0x2040, 0xfda: 0x2045, 0xfdb: 0x4420, 0xfdc: 0x4426, 0xfdd: 0x445c,\n\t0xfde: 0x44b3, 0xfdf: 0x44ba, 0xfe0: 0x44c1, 0xfe1: 0x44c8, 0xfe2: 0x44cf, 0xfe3: 0x44d6,\n\t0xfe4: 0x25c6, 0xfe5: 0x25cd, 0xfe6: 0x25d4, 0xfe7: 0x25db, 0xfe8: 0x25f0, 0xfe9: 0x25f7,\n\t0xfea: 0x1d98, 0xfeb: 0x1d9d, 0xfec: 0x1da2, 0xfed: 0x1da7, 0xfee: 0x1db1, 0xfef: 0x1db6,\n\t0xff0: 0x1dca, 0xff1: 0x1dcf, 0xff2: 0x1dd4, 0xff3: 0x1dd9, 0xff4: 0x1de3, 0xff5: 0x1de8,\n\t0xff6: 0x1df2, 0xff7: 0x1df7, 0xff8: 0x1dfc, 0xff9: 0x1e01, 0xffa: 0x1e0b, 0xffb: 0x1e10,\n\t0xffc: 0x1f3c, 0xffd: 0x1f41, 0xffe: 0x1f50, 0xfff: 0x1f55,\n\t// Block 0x40, offset 0x1000\n\t0x1000: 0x1f5a, 0x1001: 0x1f6e, 0x1002: 0x1f73, 0x1003: 0x1f78, 0x1004: 0x1f7d, 0x1005: 0x1f96,\n\t0x1006: 0x1fa0, 0x1007: 0x1fa5, 0x1008: 0x1faa, 0x1009: 0x1fbe, 0x100a: 0x1fdc, 0x100b: 0x1fe1,\n\t0x100c: 0x1fe6, 0x100d: 0x1feb, 0x100e: 0x1ff5, 0x100f: 0x1ffa, 0x1010: 0x445c, 0x1011: 0x2027,\n\t0x1012: 0x202c, 0x1013: 0x2031, 0x1014: 0x2036, 0x1015: 0x2040, 0x1016: 0x2045, 0x1017: 0x25b1,\n\t0x1018: 0x25b8, 0x1019: 0x25bf, 0x101a: 0x25d4, 0x101b: 0x25e2, 0x101c: 0x1d89, 0x101d: 0x1d8e,\n\t0x101e: 0x1d93, 0x101f: 0x1da2, 0x1020: 0x1dac, 0x1021: 0x1dbb, 0x1022: 0x1dc0, 0x1023: 0x1dc5,\n\t0x1024: 0x1dd4, 0x1025: 0x1dde, 0x1026: 0x1dfc, 0x1027: 0x1e15, 0x1028: 0x1e1a, 0x1029: 0x1e29,\n\t0x102a: 0x1e2e, 0x102b: 0x1e3d, 0x102c: 0x1e47, 0x102d: 0x1e56, 0x102e: 0x1e5b, 0x102f: 0x1e60,\n\t0x1030: 0x1e6a, 0x1031: 0x1ea6, 0x1032: 0x1eab, 0x1033: 0x1eb5, 0x1034: 0x1ec4, 0x1035: 0x1ec9,\n\t0x1036: 0x1ece, 0x1037: 0x1ed8, 0x1038: 0x1ee7, 0x1039: 0x1efb, 0x103a: 0x1f00, 0x103b: 0x1f05,\n\t0x103c: 0x1f14, 0x103d: 0x1f19, 0x103e: 0x1f28, 0x103f: 0x1f2d,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x1f32, 0x1041: 0x1f37, 0x1042: 0x1f46, 0x1043: 0x1f4b, 0x1044: 0x1f5f, 0x1045: 0x1f64,\n\t0x1046: 0x1f69, 0x1047: 0x1f6e, 0x1048: 0x1f73, 0x1049: 0x1f87, 0x104a: 0x1f8c, 0x104b: 0x1f91,\n\t0x104c: 0x1f96, 0x104d: 0x1f9b, 0x104e: 0x1faf, 0x104f: 0x1fb4, 0x1050: 0x1fb9, 0x1051: 0x1fbe,\n\t0x1052: 0x1fcd, 0x1053: 0x1fd2, 0x1054: 0x1fd7, 0x1055: 0x1fe6, 0x1056: 0x1ff0, 0x1057: 0x1fff,\n\t0x1058: 0x2004, 0x1059: 0x4450, 0x105a: 0x2018, 0x105b: 0x201d, 0x105c: 0x2022, 0x105d: 0x2031,\n\t0x105e: 0x203b, 0x105f: 0x25d4, 0x1060: 0x25e2, 0x1061: 0x1da2, 0x1062: 0x1dac, 0x1063: 0x1dd4,\n\t0x1064: 0x1dde, 0x1065: 0x1dfc, 0x1066: 0x1e06, 0x1067: 0x1e6a, 0x1068: 0x1e6f, 0x1069: 0x1e92,\n\t0x106a: 0x1e97, 0x106b: 0x1f6e, 0x106c: 0x1f73, 0x106d: 0x1f96, 0x106e: 0x1fe6, 0x106f: 0x1ff0,\n\t0x1070: 0x2031, 0x1071: 0x203b, 0x1072: 0x4504, 0x1073: 0x450c, 0x1074: 0x4514, 0x1075: 0x1ef1,\n\t0x1076: 0x1ef6, 0x1077: 0x1f0a, 0x1078: 0x1f0f, 0x1079: 0x1f1e, 0x107a: 0x1f23, 0x107b: 0x1e74,\n\t0x107c: 0x1e79, 0x107d: 0x1e9c, 0x107e: 0x1ea1, 0x107f: 0x1e33,\n\t// Block 0x42, offset 0x1080\n\t0x1080: 0x1e38, 0x1081: 0x1e1f, 0x1082: 0x1e24, 0x1083: 0x1e4c, 0x1084: 0x1e51, 0x1085: 0x1eba,\n\t0x1086: 0x1ebf, 0x1087: 0x1edd, 0x1088: 0x1ee2, 0x1089: 0x1e7e, 0x108a: 0x1e83, 0x108b: 0x1e88,\n\t0x108c: 0x1e92, 0x108d: 0x1e8d, 0x108e: 0x1e65, 0x108f: 0x1eb0, 0x1090: 0x1ed3, 0x1091: 0x1ef1,\n\t0x1092: 0x1ef6, 0x1093: 0x1f0a, 0x1094: 0x1f0f, 0x1095: 0x1f1e, 0x1096: 0x1f23, 0x1097: 0x1e74,\n\t0x1098: 0x1e79, 0x1099: 0x1e9c, 0x109a: 0x1ea1, 0x109b: 0x1e33, 0x109c: 0x1e38, 0x109d: 0x1e1f,\n\t0x109e: 0x1e24, 0x109f: 0x1e4c, 0x10a0: 0x1e51, 0x10a1: 0x1eba, 0x10a2: 0x1ebf, 0x10a3: 0x1edd,\n\t0x10a4: 0x1ee2, 0x10a5: 0x1e7e, 0x10a6: 0x1e83, 0x10a7: 0x1e88, 0x10a8: 0x1e92, 0x10a9: 0x1e8d,\n\t0x10aa: 0x1e65, 0x10ab: 0x1eb0, 0x10ac: 0x1ed3, 0x10ad: 0x1e7e, 0x10ae: 0x1e83, 0x10af: 0x1e88,\n\t0x10b0: 0x1e92, 0x10b1: 0x1e6f, 0x10b2: 0x1e97, 0x10b3: 0x1eec, 0x10b4: 0x1e56, 0x10b5: 0x1e5b,\n\t0x10b6: 0x1e60, 0x10b7: 0x1e7e, 0x10b8: 0x1e83, 0x10b9: 0x1e88, 0x10ba: 0x1eec, 0x10bb: 0x1efb,\n\t0x10bc: 0x4408, 0x10bd: 0x4408,\n\t// Block 0x43, offset 0x10c0\n\t0x10d0: 0x2311, 0x10d1: 0x2326,\n\t0x10d2: 0x2326, 0x10d3: 0x232d, 0x10d4: 0x2334, 0x10d5: 0x2349, 0x10d6: 0x2350, 0x10d7: 0x2357,\n\t0x10d8: 0x237a, 0x10d9: 0x237a, 0x10da: 0x239d, 0x10db: 0x2396, 0x10dc: 0x23b2, 0x10dd: 0x23a4,\n\t0x10de: 0x23ab, 0x10df: 0x23ce, 0x10e0: 0x23ce, 0x10e1: 0x23c7, 0x10e2: 0x23d5, 0x10e3: 0x23d5,\n\t0x10e4: 0x23ff, 0x10e5: 0x23ff, 0x10e6: 0x241b, 0x10e7: 0x23e3, 0x10e8: 0x23e3, 0x10e9: 0x23dc,\n\t0x10ea: 0x23f1, 0x10eb: 0x23f1, 0x10ec: 0x23f8, 0x10ed: 0x23f8, 0x10ee: 0x2422, 0x10ef: 0x2430,\n\t0x10f0: 0x2430, 0x10f1: 0x2437, 0x10f2: 0x2437, 0x10f3: 0x243e, 0x10f4: 0x2445, 0x10f5: 0x244c,\n\t0x10f6: 0x2453, 0x10f7: 0x2453, 0x10f8: 0x245a, 0x10f9: 0x2468, 0x10fa: 0x2476, 0x10fb: 0x246f,\n\t0x10fc: 0x247d, 0x10fd: 0x247d, 0x10fe: 0x2492, 0x10ff: 0x2499,\n\t// Block 0x44, offset 0x1100\n\t0x1100: 0x24ca, 0x1101: 0x24d8, 0x1102: 0x24d1, 0x1103: 0x24b5, 0x1104: 0x24b5, 0x1105: 0x24df,\n\t0x1106: 0x24df, 0x1107: 0x24e6, 0x1108: 0x24e6, 0x1109: 0x2510, 0x110a: 0x2517, 0x110b: 0x251e,\n\t0x110c: 0x24f4, 0x110d: 0x2502, 0x110e: 0x2525, 0x110f: 0x252c,\n\t0x1112: 0x24fb, 0x1113: 0x2580, 0x1114: 0x2587, 0x1115: 0x255d, 0x1116: 0x2564, 0x1117: 0x2548,\n\t0x1118: 0x2548, 0x1119: 0x254f, 0x111a: 0x2579, 0x111b: 0x2572, 0x111c: 0x259c, 0x111d: 0x259c,\n\t0x111e: 0x230a, 0x111f: 0x231f, 0x1120: 0x2318, 0x1121: 0x2342, 0x1122: 0x233b, 0x1123: 0x2365,\n\t0x1124: 0x235e, 0x1125: 0x2388, 0x1126: 0x236c, 0x1127: 0x2381, 0x1128: 0x23b9, 0x1129: 0x2406,\n\t0x112a: 0x23ea, 0x112b: 0x2429, 0x112c: 0x24c3, 0x112d: 0x24ed, 0x112e: 0x2595, 0x112f: 0x258e,\n\t0x1130: 0x25a3, 0x1131: 0x253a, 0x1132: 0x24a0, 0x1133: 0x256b, 0x1134: 0x2492, 0x1135: 0x24ca,\n\t0x1136: 0x2461, 0x1137: 0x24ae, 0x1138: 0x2541, 0x1139: 0x2533, 0x113a: 0x24bc, 0x113b: 0x24a7,\n\t0x113c: 0x24bc, 0x113d: 0x2541, 0x113e: 0x2373, 0x113f: 0x238f,\n\t// Block 0x45, offset 0x1140\n\t0x1140: 0x2509, 0x1141: 0x2484, 0x1142: 0x2303, 0x1143: 0x24a7, 0x1144: 0x244c, 0x1145: 0x241b,\n\t0x1146: 0x23c0, 0x1147: 0x2556,\n\t0x1170: 0x2414, 0x1171: 0x248b, 0x1172: 0x27bf, 0x1173: 0x27b6, 0x1174: 0x27ec, 0x1175: 0x27da,\n\t0x1176: 0x27c8, 0x1177: 0x27e3, 0x1178: 0x27f5, 0x1179: 0x240d, 0x117a: 0x2c7c, 0x117b: 0x2afc,\n\t0x117c: 0x27d1,\n\t// Block 0x46, offset 0x1180\n\t0x1190: 0x0019, 0x1191: 0x0483,\n\t0x1192: 0x0487, 0x1193: 0x0035, 0x1194: 0x0037, 0x1195: 0x0003, 0x1196: 0x003f, 0x1197: 0x04bf,\n\t0x1198: 0x04c3, 0x1199: 0x1b5c,\n\t0x11a0: 0x8132, 0x11a1: 0x8132, 0x11a2: 0x8132, 0x11a3: 0x8132,\n\t0x11a4: 0x8132, 0x11a5: 0x8132, 0x11a6: 0x8132, 0x11a7: 0x812d, 0x11a8: 0x812d, 0x11a9: 0x812d,\n\t0x11aa: 0x812d, 0x11ab: 0x812d, 0x11ac: 0x812d, 0x11ad: 0x812d, 0x11ae: 0x8132, 0x11af: 0x8132,\n\t0x11b0: 0x1873, 0x11b1: 0x0443, 0x11b2: 0x043f, 0x11b3: 0x007f, 0x11b4: 0x007f, 0x11b5: 0x0011,\n\t0x11b6: 0x0013, 0x11b7: 0x00b7, 0x11b8: 0x00bb, 0x11b9: 0x04b7, 0x11ba: 0x04bb, 0x11bb: 0x04ab,\n\t0x11bc: 0x04af, 0x11bd: 0x0493, 0x11be: 0x0497, 0x11bf: 0x048b,\n\t// Block 0x47, offset 0x11c0\n\t0x11c0: 0x048f, 0x11c1: 0x049b, 0x11c2: 0x049f, 0x11c3: 0x04a3, 0x11c4: 0x04a7,\n\t0x11c7: 0x0077, 0x11c8: 0x007b, 0x11c9: 0x4269, 0x11ca: 0x4269, 0x11cb: 0x4269,\n\t0x11cc: 0x4269, 0x11cd: 0x007f, 0x11ce: 0x007f, 0x11cf: 0x007f, 0x11d0: 0x0019, 0x11d1: 0x0483,\n\t0x11d2: 0x001d, 0x11d4: 0x0037, 0x11d5: 0x0035, 0x11d6: 0x003f, 0x11d7: 0x0003,\n\t0x11d8: 0x0443, 0x11d9: 0x0011, 0x11da: 0x0013, 0x11db: 0x00b7, 0x11dc: 0x00bb, 0x11dd: 0x04b7,\n\t0x11de: 0x04bb, 0x11df: 0x0007, 0x11e0: 0x000d, 0x11e1: 0x0015, 0x11e2: 0x0017, 0x11e3: 0x001b,\n\t0x11e4: 0x0039, 0x11e5: 0x003d, 0x11e6: 0x003b, 0x11e8: 0x0079, 0x11e9: 0x0009,\n\t0x11ea: 0x000b, 0x11eb: 0x0041,\n\t0x11f0: 0x42aa, 0x11f1: 0x442c, 0x11f2: 0x42af, 0x11f4: 0x42b4,\n\t0x11f6: 0x42b9, 0x11f7: 0x4432, 0x11f8: 0x42be, 0x11f9: 0x4438, 0x11fa: 0x42c3, 0x11fb: 0x443e,\n\t0x11fc: 0x42c8, 0x11fd: 0x4444, 0x11fe: 0x42cd, 0x11ff: 0x444a,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0x0236, 0x1201: 0x440e, 0x1202: 0x440e, 0x1203: 0x4414, 0x1204: 0x4414, 0x1205: 0x4456,\n\t0x1206: 0x4456, 0x1207: 0x441a, 0x1208: 0x441a, 0x1209: 0x4462, 0x120a: 0x4462, 0x120b: 0x4462,\n\t0x120c: 0x4462, 0x120d: 0x0239, 0x120e: 0x0239, 0x120f: 0x023c, 0x1210: 0x023c, 0x1211: 0x023c,\n\t0x1212: 0x023c, 0x1213: 0x023f, 0x1214: 0x023f, 0x1215: 0x0242, 0x1216: 0x0242, 0x1217: 0x0242,\n\t0x1218: 0x0242, 0x1219: 0x0245, 0x121a: 0x0245, 0x121b: 0x0245, 0x121c: 0x0245, 0x121d: 0x0248,\n\t0x121e: 0x0248, 0x121f: 0x0248, 0x1220: 0x0248, 0x1221: 0x024b, 0x1222: 0x024b, 0x1223: 0x024b,\n\t0x1224: 0x024b, 0x1225: 0x024e, 0x1226: 0x024e, 0x1227: 0x024e, 0x1228: 0x024e, 0x1229: 0x0251,\n\t0x122a: 0x0251, 0x122b: 0x0254, 0x122c: 0x0254, 0x122d: 0x0257, 0x122e: 0x0257, 0x122f: 0x025a,\n\t0x1230: 0x025a, 0x1231: 0x025d, 0x1232: 0x025d, 0x1233: 0x025d, 0x1234: 0x025d, 0x1235: 0x0260,\n\t0x1236: 0x0260, 0x1237: 0x0260, 0x1238: 0x0260, 0x1239: 0x0263, 0x123a: 0x0263, 0x123b: 0x0263,\n\t0x123c: 0x0263, 0x123d: 0x0266, 0x123e: 0x0266, 0x123f: 0x0266,\n\t// Block 0x49, offset 0x1240\n\t0x1240: 0x0266, 0x1241: 0x0269, 0x1242: 0x0269, 0x1243: 0x0269, 0x1244: 0x0269, 0x1245: 0x026c,\n\t0x1246: 0x026c, 0x1247: 0x026c, 0x1248: 0x026c, 0x1249: 0x026f, 0x124a: 0x026f, 0x124b: 0x026f,\n\t0x124c: 0x026f, 0x124d: 0x0272, 0x124e: 0x0272, 0x124f: 0x0272, 0x1250: 0x0272, 0x1251: 0x0275,\n\t0x1252: 0x0275, 0x1253: 0x0275, 0x1254: 0x0275, 0x1255: 0x0278, 0x1256: 0x0278, 0x1257: 0x0278,\n\t0x1258: 0x0278, 0x1259: 0x027b, 0x125a: 0x027b, 0x125b: 0x027b, 0x125c: 0x027b, 0x125d: 0x027e,\n\t0x125e: 0x027e, 0x125f: 0x027e, 0x1260: 0x027e, 0x1261: 0x0281, 0x1262: 0x0281, 0x1263: 0x0281,\n\t0x1264: 0x0281, 0x1265: 0x0284, 0x1266: 0x0284, 0x1267: 0x0284, 0x1268: 0x0284, 0x1269: 0x0287,\n\t0x126a: 0x0287, 0x126b: 0x0287, 0x126c: 0x0287, 0x126d: 0x028a, 0x126e: 0x028a, 0x126f: 0x028d,\n\t0x1270: 0x028d, 0x1271: 0x0290, 0x1272: 0x0290, 0x1273: 0x0290, 0x1274: 0x0290, 0x1275: 0x2e00,\n\t0x1276: 0x2e00, 0x1277: 0x2e08, 0x1278: 0x2e08, 0x1279: 0x2e10, 0x127a: 0x2e10, 0x127b: 0x1f82,\n\t0x127c: 0x1f82,\n\t// Block 0x4a, offset 0x1280\n\t0x1280: 0x0081, 0x1281: 0x0083, 0x1282: 0x0085, 0x1283: 0x0087, 0x1284: 0x0089, 0x1285: 0x008b,\n\t0x1286: 0x008d, 0x1287: 0x008f, 0x1288: 0x0091, 0x1289: 0x0093, 0x128a: 0x0095, 0x128b: 0x0097,\n\t0x128c: 0x0099, 0x128d: 0x009b, 0x128e: 0x009d, 0x128f: 0x009f, 0x1290: 0x00a1, 0x1291: 0x00a3,\n\t0x1292: 0x00a5, 0x1293: 0x00a7, 0x1294: 0x00a9, 0x1295: 0x00ab, 0x1296: 0x00ad, 0x1297: 0x00af,\n\t0x1298: 0x00b1, 0x1299: 0x00b3, 0x129a: 0x00b5, 0x129b: 0x00b7, 0x129c: 0x00b9, 0x129d: 0x00bb,\n\t0x129e: 0x00bd, 0x129f: 0x0477, 0x12a0: 0x047b, 0x12a1: 0x0487, 0x12a2: 0x049b, 0x12a3: 0x049f,\n\t0x12a4: 0x0483, 0x12a5: 0x05ab, 0x12a6: 0x05a3, 0x12a7: 0x04c7, 0x12a8: 0x04cf, 0x12a9: 0x04d7,\n\t0x12aa: 0x04df, 0x12ab: 0x04e7, 0x12ac: 0x056b, 0x12ad: 0x0573, 0x12ae: 0x057b, 0x12af: 0x051f,\n\t0x12b0: 0x05af, 0x12b1: 0x04cb, 0x12b2: 0x04d3, 0x12b3: 0x04db, 0x12b4: 0x04e3, 0x12b5: 0x04eb,\n\t0x12b6: 0x04ef, 0x12b7: 0x04f3, 0x12b8: 0x04f7, 0x12b9: 0x04fb, 0x12ba: 0x04ff, 0x12bb: 0x0503,\n\t0x12bc: 0x0507, 0x12bd: 0x050b, 0x12be: 0x050f, 0x12bf: 0x0513,\n\t// Block 0x4b, offset 0x12c0\n\t0x12c0: 0x0517, 0x12c1: 0x051b, 0x12c2: 0x0523, 0x12c3: 0x0527, 0x12c4: 0x052b, 0x12c5: 0x052f,\n\t0x12c6: 0x0533, 0x12c7: 0x0537, 0x12c8: 0x053b, 0x12c9: 0x053f, 0x12ca: 0x0543, 0x12cb: 0x0547,\n\t0x12cc: 0x054b, 0x12cd: 0x054f, 0x12ce: 0x0553, 0x12cf: 0x0557, 0x12d0: 0x055b, 0x12d1: 0x055f,\n\t0x12d2: 0x0563, 0x12d3: 0x0567, 0x12d4: 0x056f, 0x12d5: 0x0577, 0x12d6: 0x057f, 0x12d7: 0x0583,\n\t0x12d8: 0x0587, 0x12d9: 0x058b, 0x12da: 0x058f, 0x12db: 0x0593, 0x12dc: 0x0597, 0x12dd: 0x05a7,\n\t0x12de: 0x4a78, 0x12df: 0x4a7e, 0x12e0: 0x03c3, 0x12e1: 0x0313, 0x12e2: 0x0317, 0x12e3: 0x4a3b,\n\t0x12e4: 0x031b, 0x12e5: 0x4a41, 0x12e6: 0x4a47, 0x12e7: 0x031f, 0x12e8: 0x0323, 0x12e9: 0x0327,\n\t0x12ea: 0x4a4d, 0x12eb: 0x4a53, 0x12ec: 0x4a59, 0x12ed: 0x4a5f, 0x12ee: 0x4a65, 0x12ef: 0x4a6b,\n\t0x12f0: 0x0367, 0x12f1: 0x032b, 0x12f2: 0x032f, 0x12f3: 0x0333, 0x12f4: 0x037b, 0x12f5: 0x0337,\n\t0x12f6: 0x033b, 0x12f7: 0x033f, 0x12f8: 0x0343, 0x12f9: 0x0347, 0x12fa: 0x034b, 0x12fb: 0x034f,\n\t0x12fc: 0x0353, 0x12fd: 0x0357, 0x12fe: 0x035b,\n\t// Block 0x4c, offset 0x1300\n\t0x1302: 0x49bd, 0x1303: 0x49c3, 0x1304: 0x49c9, 0x1305: 0x49cf,\n\t0x1306: 0x49d5, 0x1307: 0x49db, 0x130a: 0x49e1, 0x130b: 0x49e7,\n\t0x130c: 0x49ed, 0x130d: 0x49f3, 0x130e: 0x49f9, 0x130f: 0x49ff,\n\t0x1312: 0x4a05, 0x1313: 0x4a0b, 0x1314: 0x4a11, 0x1315: 0x4a17, 0x1316: 0x4a1d, 0x1317: 0x4a23,\n\t0x131a: 0x4a29, 0x131b: 0x4a2f, 0x131c: 0x4a35,\n\t0x1320: 0x00bf, 0x1321: 0x00c2, 0x1322: 0x00cb, 0x1323: 0x4264,\n\t0x1324: 0x00c8, 0x1325: 0x00c5, 0x1326: 0x0447, 0x1328: 0x046b, 0x1329: 0x044b,\n\t0x132a: 0x044f, 0x132b: 0x0453, 0x132c: 0x0457, 0x132d: 0x046f, 0x132e: 0x0473,\n\t// Block 0x4d, offset 0x1340\n\t0x1340: 0x0063, 0x1341: 0x0065, 0x1342: 0x0067, 0x1343: 0x0069, 0x1344: 0x006b, 0x1345: 0x006d,\n\t0x1346: 0x006f, 0x1347: 0x0071, 0x1348: 0x0073, 0x1349: 0x0075, 0x134a: 0x0083, 0x134b: 0x0085,\n\t0x134c: 0x0087, 0x134d: 0x0089, 0x134e: 0x008b, 0x134f: 0x008d, 0x1350: 0x008f, 0x1351: 0x0091,\n\t0x1352: 0x0093, 0x1353: 0x0095, 0x1354: 0x0097, 0x1355: 0x0099, 0x1356: 0x009b, 0x1357: 0x009d,\n\t0x1358: 0x009f, 0x1359: 0x00a1, 0x135a: 0x00a3, 0x135b: 0x00a5, 0x135c: 0x00a7, 0x135d: 0x00a9,\n\t0x135e: 0x00ab, 0x135f: 0x00ad, 0x1360: 0x00af, 0x1361: 0x00b1, 0x1362: 0x00b3, 0x1363: 0x00b5,\n\t0x1364: 0x00dd, 0x1365: 0x00f2, 0x1368: 0x0173, 0x1369: 0x0176,\n\t0x136a: 0x0179, 0x136b: 0x017c, 0x136c: 0x017f, 0x136d: 0x0182, 0x136e: 0x0185, 0x136f: 0x0188,\n\t0x1370: 0x018b, 0x1371: 0x018e, 0x1372: 0x0191, 0x1373: 0x0194, 0x1374: 0x0197, 0x1375: 0x019a,\n\t0x1376: 0x019d, 0x1377: 0x01a0, 0x1378: 0x01a3, 0x1379: 0x0188, 0x137a: 0x01a6, 0x137b: 0x01a9,\n\t0x137c: 0x01ac, 0x137d: 0x01af, 0x137e: 0x01b2, 0x137f: 0x01b5,\n\t// Block 0x4e, offset 0x1380\n\t0x1380: 0x01fd, 0x1381: 0x0200, 0x1382: 0x0203, 0x1383: 0x045b, 0x1384: 0x01c7, 0x1385: 0x01d0,\n\t0x1386: 0x01d6, 0x1387: 0x01fa, 0x1388: 0x01eb, 0x1389: 0x01e8, 0x138a: 0x0206, 0x138b: 0x0209,\n\t0x138e: 0x0021, 0x138f: 0x0023, 0x1390: 0x0025, 0x1391: 0x0027,\n\t0x1392: 0x0029, 0x1393: 0x002b, 0x1394: 0x002d, 0x1395: 0x002f, 0x1396: 0x0031, 0x1397: 0x0033,\n\t0x1398: 0x0021, 0x1399: 0x0023, 0x139a: 0x0025, 0x139b: 0x0027, 0x139c: 0x0029, 0x139d: 0x002b,\n\t0x139e: 0x002d, 0x139f: 0x002f, 0x13a0: 0x0031, 0x13a1: 0x0033, 0x13a2: 0x0021, 0x13a3: 0x0023,\n\t0x13a4: 0x0025, 0x13a5: 0x0027, 0x13a6: 0x0029, 0x13a7: 0x002b, 0x13a8: 0x002d, 0x13a9: 0x002f,\n\t0x13aa: 0x0031, 0x13ab: 0x0033, 0x13ac: 0x0021, 0x13ad: 0x0023, 0x13ae: 0x0025, 0x13af: 0x0027,\n\t0x13b0: 0x0029, 0x13b1: 0x002b, 0x13b2: 0x002d, 0x13b3: 0x002f, 0x13b4: 0x0031, 0x13b5: 0x0033,\n\t0x13b6: 0x0021, 0x13b7: 0x0023, 0x13b8: 0x0025, 0x13b9: 0x0027, 0x13ba: 0x0029, 0x13bb: 0x002b,\n\t0x13bc: 0x002d, 0x13bd: 0x002f, 0x13be: 0x0031, 0x13bf: 0x0033,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c0: 0x0239, 0x13c1: 0x023c, 0x13c2: 0x0248, 0x13c3: 0x0251, 0x13c5: 0x028a,\n\t0x13c6: 0x025a, 0x13c7: 0x024b, 0x13c8: 0x0269, 0x13c9: 0x0290, 0x13ca: 0x027b, 0x13cb: 0x027e,\n\t0x13cc: 0x0281, 0x13cd: 0x0284, 0x13ce: 0x025d, 0x13cf: 0x026f, 0x13d0: 0x0275, 0x13d1: 0x0263,\n\t0x13d2: 0x0278, 0x13d3: 0x0257, 0x13d4: 0x0260, 0x13d5: 0x0242, 0x13d6: 0x0245, 0x13d7: 0x024e,\n\t0x13d8: 0x0254, 0x13d9: 0x0266, 0x13da: 0x026c, 0x13db: 0x0272, 0x13dc: 0x0293, 0x13dd: 0x02e4,\n\t0x13de: 0x02cc, 0x13df: 0x0296, 0x13e1: 0x023c, 0x13e2: 0x0248,\n\t0x13e4: 0x0287, 0x13e7: 0x024b, 0x13e9: 0x0290,\n\t0x13ea: 0x027b, 0x13eb: 0x027e, 0x13ec: 0x0281, 0x13ed: 0x0284, 0x13ee: 0x025d, 0x13ef: 0x026f,\n\t0x13f0: 0x0275, 0x13f1: 0x0263, 0x13f2: 0x0278, 0x13f4: 0x0260, 0x13f5: 0x0242,\n\t0x13f6: 0x0245, 0x13f7: 0x024e, 0x13f9: 0x0266, 0x13fb: 0x0272,\n\t// Block 0x50, offset 0x1400\n\t0x1402: 0x0248,\n\t0x1407: 0x024b, 0x1409: 0x0290, 0x140b: 0x027e,\n\t0x140d: 0x0284, 0x140e: 0x025d, 0x140f: 0x026f, 0x1411: 0x0263,\n\t0x1412: 0x0278, 0x1414: 0x0260, 0x1417: 0x024e,\n\t0x1419: 0x0266, 0x141b: 0x0272, 0x141d: 0x02e4,\n\t0x141f: 0x0296, 0x1421: 0x023c, 0x1422: 0x0248,\n\t0x1424: 0x0287, 0x1427: 0x024b, 0x1428: 0x0269, 0x1429: 0x0290,\n\t0x142a: 0x027b, 0x142c: 0x0281, 0x142d: 0x0284, 0x142e: 0x025d, 0x142f: 0x026f,\n\t0x1430: 0x0275, 0x1431: 0x0263, 0x1432: 0x0278, 0x1434: 0x0260, 0x1435: 0x0242,\n\t0x1436: 0x0245, 0x1437: 0x024e, 0x1439: 0x0266, 0x143a: 0x026c, 0x143b: 0x0272,\n\t0x143c: 0x0293, 0x143e: 0x02cc,\n\t// Block 0x51, offset 0x1440\n\t0x1440: 0x0239, 0x1441: 0x023c, 0x1442: 0x0248, 0x1443: 0x0251, 0x1444: 0x0287, 0x1445: 0x028a,\n\t0x1446: 0x025a, 0x1447: 0x024b, 0x1448: 0x0269, 0x1449: 0x0290, 0x144b: 0x027e,\n\t0x144c: 0x0281, 0x144d: 0x0284, 0x144e: 0x025d, 0x144f: 0x026f, 0x1450: 0x0275, 0x1451: 0x0263,\n\t0x1452: 0x0278, 0x1453: 0x0257, 0x1454: 0x0260, 0x1455: 0x0242, 0x1456: 0x0245, 0x1457: 0x024e,\n\t0x1458: 0x0254, 0x1459: 0x0266, 0x145a: 0x026c, 0x145b: 0x0272,\n\t0x1461: 0x023c, 0x1462: 0x0248, 0x1463: 0x0251,\n\t0x1465: 0x028a, 0x1466: 0x025a, 0x1467: 0x024b, 0x1468: 0x0269, 0x1469: 0x0290,\n\t0x146b: 0x027e, 0x146c: 0x0281, 0x146d: 0x0284, 0x146e: 0x025d, 0x146f: 0x026f,\n\t0x1470: 0x0275, 0x1471: 0x0263, 0x1472: 0x0278, 0x1473: 0x0257, 0x1474: 0x0260, 0x1475: 0x0242,\n\t0x1476: 0x0245, 0x1477: 0x024e, 0x1478: 0x0254, 0x1479: 0x0266, 0x147a: 0x026c, 0x147b: 0x0272,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x1879, 0x1481: 0x1876, 0x1482: 0x187c, 0x1483: 0x18a0, 0x1484: 0x18c4, 0x1485: 0x18e8,\n\t0x1486: 0x190c, 0x1487: 0x1915, 0x1488: 0x191b, 0x1489: 0x1921, 0x148a: 0x1927,\n\t0x1490: 0x1a8c, 0x1491: 0x1a90,\n\t0x1492: 0x1a94, 0x1493: 0x1a98, 0x1494: 0x1a9c, 0x1495: 0x1aa0, 0x1496: 0x1aa4, 0x1497: 0x1aa8,\n\t0x1498: 0x1aac, 0x1499: 0x1ab0, 0x149a: 0x1ab4, 0x149b: 0x1ab8, 0x149c: 0x1abc, 0x149d: 0x1ac0,\n\t0x149e: 0x1ac4, 0x149f: 0x1ac8, 0x14a0: 0x1acc, 0x14a1: 0x1ad0, 0x14a2: 0x1ad4, 0x14a3: 0x1ad8,\n\t0x14a4: 0x1adc, 0x14a5: 0x1ae0, 0x14a6: 0x1ae4, 0x14a7: 0x1ae8, 0x14a8: 0x1aec, 0x14a9: 0x1af0,\n\t0x14aa: 0x271e, 0x14ab: 0x0047, 0x14ac: 0x0065, 0x14ad: 0x193c, 0x14ae: 0x19b1,\n\t0x14b0: 0x0043, 0x14b1: 0x0045, 0x14b2: 0x0047, 0x14b3: 0x0049, 0x14b4: 0x004b, 0x14b5: 0x004d,\n\t0x14b6: 0x004f, 0x14b7: 0x0051, 0x14b8: 0x0053, 0x14b9: 0x0055, 0x14ba: 0x0057, 0x14bb: 0x0059,\n\t0x14bc: 0x005b, 0x14bd: 0x005d, 0x14be: 0x005f, 0x14bf: 0x0061,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x26ad, 0x14c1: 0x26c2, 0x14c2: 0x0503,\n\t0x14d0: 0x0c0f, 0x14d1: 0x0a47,\n\t0x14d2: 0x08d3, 0x14d3: 0x45c4, 0x14d4: 0x071b, 0x14d5: 0x09ef, 0x14d6: 0x132f, 0x14d7: 0x09ff,\n\t0x14d8: 0x0727, 0x14d9: 0x0cd7, 0x14da: 0x0eaf, 0x14db: 0x0caf, 0x14dc: 0x0827, 0x14dd: 0x0b6b,\n\t0x14de: 0x07bf, 0x14df: 0x0cb7, 0x14e0: 0x0813, 0x14e1: 0x1117, 0x14e2: 0x0f83, 0x14e3: 0x138b,\n\t0x14e4: 0x09d3, 0x14e5: 0x090b, 0x14e6: 0x0e63, 0x14e7: 0x0c1b, 0x14e8: 0x0c47, 0x14e9: 0x06bf,\n\t0x14ea: 0x06cb, 0x14eb: 0x140b, 0x14ec: 0x0adb, 0x14ed: 0x06e7, 0x14ee: 0x08ef, 0x14ef: 0x0c3b,\n\t0x14f0: 0x13b3, 0x14f1: 0x0c13, 0x14f2: 0x106f, 0x14f3: 0x10ab, 0x14f4: 0x08f7, 0x14f5: 0x0e43,\n\t0x14f6: 0x0d0b, 0x14f7: 0x0d07, 0x14f8: 0x0f97, 0x14f9: 0x082b, 0x14fa: 0x0957, 0x14fb: 0x1443,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0x06fb, 0x1501: 0x06f3, 0x1502: 0x0703, 0x1503: 0x1647, 0x1504: 0x0747, 0x1505: 0x0757,\n\t0x1506: 0x075b, 0x1507: 0x0763, 0x1508: 0x076b, 0x1509: 0x076f, 0x150a: 0x077b, 0x150b: 0x0773,\n\t0x150c: 0x05b3, 0x150d: 0x165b, 0x150e: 0x078f, 0x150f: 0x0793, 0x1510: 0x0797, 0x1511: 0x07b3,\n\t0x1512: 0x164c, 0x1513: 0x05b7, 0x1514: 0x079f, 0x1515: 0x07bf, 0x1516: 0x1656, 0x1517: 0x07cf,\n\t0x1518: 0x07d7, 0x1519: 0x0737, 0x151a: 0x07df, 0x151b: 0x07e3, 0x151c: 0x1831, 0x151d: 0x07ff,\n\t0x151e: 0x0807, 0x151f: 0x05bf, 0x1520: 0x081f, 0x1521: 0x0823, 0x1522: 0x082b, 0x1523: 0x082f,\n\t0x1524: 0x05c3, 0x1525: 0x0847, 0x1526: 0x084b, 0x1527: 0x0857, 0x1528: 0x0863, 0x1529: 0x0867,\n\t0x152a: 0x086b, 0x152b: 0x0873, 0x152c: 0x0893, 0x152d: 0x0897, 0x152e: 0x089f, 0x152f: 0x08af,\n\t0x1530: 0x08b7, 0x1531: 0x08bb, 0x1532: 0x08bb, 0x1533: 0x08bb, 0x1534: 0x166a, 0x1535: 0x0e93,\n\t0x1536: 0x08cf, 0x1537: 0x08d7, 0x1538: 0x166f, 0x1539: 0x08e3, 0x153a: 0x08eb, 0x153b: 0x08f3,\n\t0x153c: 0x091b, 0x153d: 0x0907, 0x153e: 0x0913, 0x153f: 0x0917,\n\t// Block 0x55, offset 0x1540\n\t0x1540: 0x091f, 0x1541: 0x0927, 0x1542: 0x092b, 0x1543: 0x0933, 0x1544: 0x093b, 0x1545: 0x093f,\n\t0x1546: 0x093f, 0x1547: 0x0947, 0x1548: 0x094f, 0x1549: 0x0953, 0x154a: 0x095f, 0x154b: 0x0983,\n\t0x154c: 0x0967, 0x154d: 0x0987, 0x154e: 0x096b, 0x154f: 0x0973, 0x1550: 0x080b, 0x1551: 0x09cf,\n\t0x1552: 0x0997, 0x1553: 0x099b, 0x1554: 0x099f, 0x1555: 0x0993, 0x1556: 0x09a7, 0x1557: 0x09a3,\n\t0x1558: 0x09bb, 0x1559: 0x1674, 0x155a: 0x09d7, 0x155b: 0x09db, 0x155c: 0x09e3, 0x155d: 0x09ef,\n\t0x155e: 0x09f7, 0x155f: 0x0a13, 0x1560: 0x1679, 0x1561: 0x167e, 0x1562: 0x0a1f, 0x1563: 0x0a23,\n\t0x1564: 0x0a27, 0x1565: 0x0a1b, 0x1566: 0x0a2f, 0x1567: 0x05c7, 0x1568: 0x05cb, 0x1569: 0x0a37,\n\t0x156a: 0x0a3f, 0x156b: 0x0a3f, 0x156c: 0x1683, 0x156d: 0x0a5b, 0x156e: 0x0a5f, 0x156f: 0x0a63,\n\t0x1570: 0x0a6b, 0x1571: 0x1688, 0x1572: 0x0a73, 0x1573: 0x0a77, 0x1574: 0x0b4f, 0x1575: 0x0a7f,\n\t0x1576: 0x05cf, 0x1577: 0x0a8b, 0x1578: 0x0a9b, 0x1579: 0x0aa7, 0x157a: 0x0aa3, 0x157b: 0x1692,\n\t0x157c: 0x0aaf, 0x157d: 0x1697, 0x157e: 0x0abb, 0x157f: 0x0ab7,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x0abf, 0x1581: 0x0acf, 0x1582: 0x0ad3, 0x1583: 0x05d3, 0x1584: 0x0ae3, 0x1585: 0x0aeb,\n\t0x1586: 0x0aef, 0x1587: 0x0af3, 0x1588: 0x05d7, 0x1589: 0x169c, 0x158a: 0x05db, 0x158b: 0x0b0f,\n\t0x158c: 0x0b13, 0x158d: 0x0b17, 0x158e: 0x0b1f, 0x158f: 0x1863, 0x1590: 0x0b37, 0x1591: 0x16a6,\n\t0x1592: 0x16a6, 0x1593: 0x11d7, 0x1594: 0x0b47, 0x1595: 0x0b47, 0x1596: 0x05df, 0x1597: 0x16c9,\n\t0x1598: 0x179b, 0x1599: 0x0b57, 0x159a: 0x0b5f, 0x159b: 0x05e3, 0x159c: 0x0b73, 0x159d: 0x0b83,\n\t0x159e: 0x0b87, 0x159f: 0x0b8f, 0x15a0: 0x0b9f, 0x15a1: 0x05eb, 0x15a2: 0x05e7, 0x15a3: 0x0ba3,\n\t0x15a4: 0x16ab, 0x15a5: 0x0ba7, 0x15a6: 0x0bbb, 0x15a7: 0x0bbf, 0x15a8: 0x0bc3, 0x15a9: 0x0bbf,\n\t0x15aa: 0x0bcf, 0x15ab: 0x0bd3, 0x15ac: 0x0be3, 0x15ad: 0x0bdb, 0x15ae: 0x0bdf, 0x15af: 0x0be7,\n\t0x15b0: 0x0beb, 0x15b1: 0x0bef, 0x15b2: 0x0bfb, 0x15b3: 0x0bff, 0x15b4: 0x0c17, 0x15b5: 0x0c1f,\n\t0x15b6: 0x0c2f, 0x15b7: 0x0c43, 0x15b8: 0x16ba, 0x15b9: 0x0c3f, 0x15ba: 0x0c33, 0x15bb: 0x0c4b,\n\t0x15bc: 0x0c53, 0x15bd: 0x0c67, 0x15be: 0x16bf, 0x15bf: 0x0c6f,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0x0c63, 0x15c1: 0x0c5b, 0x15c2: 0x05ef, 0x15c3: 0x0c77, 0x15c4: 0x0c7f, 0x15c5: 0x0c87,\n\t0x15c6: 0x0c7b, 0x15c7: 0x05f3, 0x15c8: 0x0c97, 0x15c9: 0x0c9f, 0x15ca: 0x16c4, 0x15cb: 0x0ccb,\n\t0x15cc: 0x0cff, 0x15cd: 0x0cdb, 0x15ce: 0x05ff, 0x15cf: 0x0ce7, 0x15d0: 0x05fb, 0x15d1: 0x05f7,\n\t0x15d2: 0x07c3, 0x15d3: 0x07c7, 0x15d4: 0x0d03, 0x15d5: 0x0ceb, 0x15d6: 0x11ab, 0x15d7: 0x0663,\n\t0x15d8: 0x0d0f, 0x15d9: 0x0d13, 0x15da: 0x0d17, 0x15db: 0x0d2b, 0x15dc: 0x0d23, 0x15dd: 0x16dd,\n\t0x15de: 0x0603, 0x15df: 0x0d3f, 0x15e0: 0x0d33, 0x15e1: 0x0d4f, 0x15e2: 0x0d57, 0x15e3: 0x16e7,\n\t0x15e4: 0x0d5b, 0x15e5: 0x0d47, 0x15e6: 0x0d63, 0x15e7: 0x0607, 0x15e8: 0x0d67, 0x15e9: 0x0d6b,\n\t0x15ea: 0x0d6f, 0x15eb: 0x0d7b, 0x15ec: 0x16ec, 0x15ed: 0x0d83, 0x15ee: 0x060b, 0x15ef: 0x0d8f,\n\t0x15f0: 0x16f1, 0x15f1: 0x0d93, 0x15f2: 0x060f, 0x15f3: 0x0d9f, 0x15f4: 0x0dab, 0x15f5: 0x0db7,\n\t0x15f6: 0x0dbb, 0x15f7: 0x16f6, 0x15f8: 0x168d, 0x15f9: 0x16fb, 0x15fa: 0x0ddb, 0x15fb: 0x1700,\n\t0x15fc: 0x0de7, 0x15fd: 0x0def, 0x15fe: 0x0ddf, 0x15ff: 0x0dfb,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0x0e0b, 0x1601: 0x0e1b, 0x1602: 0x0e0f, 0x1603: 0x0e13, 0x1604: 0x0e1f, 0x1605: 0x0e23,\n\t0x1606: 0x1705, 0x1607: 0x0e07, 0x1608: 0x0e3b, 0x1609: 0x0e3f, 0x160a: 0x0613, 0x160b: 0x0e53,\n\t0x160c: 0x0e4f, 0x160d: 0x170a, 0x160e: 0x0e33, 0x160f: 0x0e6f, 0x1610: 0x170f, 0x1611: 0x1714,\n\t0x1612: 0x0e73, 0x1613: 0x0e87, 0x1614: 0x0e83, 0x1615: 0x0e7f, 0x1616: 0x0617, 0x1617: 0x0e8b,\n\t0x1618: 0x0e9b, 0x1619: 0x0e97, 0x161a: 0x0ea3, 0x161b: 0x1651, 0x161c: 0x0eb3, 0x161d: 0x1719,\n\t0x161e: 0x0ebf, 0x161f: 0x1723, 0x1620: 0x0ed3, 0x1621: 0x0edf, 0x1622: 0x0ef3, 0x1623: 0x1728,\n\t0x1624: 0x0f07, 0x1625: 0x0f0b, 0x1626: 0x172d, 0x1627: 0x1732, 0x1628: 0x0f27, 0x1629: 0x0f37,\n\t0x162a: 0x061b, 0x162b: 0x0f3b, 0x162c: 0x061f, 0x162d: 0x061f, 0x162e: 0x0f53, 0x162f: 0x0f57,\n\t0x1630: 0x0f5f, 0x1631: 0x0f63, 0x1632: 0x0f6f, 0x1633: 0x0623, 0x1634: 0x0f87, 0x1635: 0x1737,\n\t0x1636: 0x0fa3, 0x1637: 0x173c, 0x1638: 0x0faf, 0x1639: 0x16a1, 0x163a: 0x0fbf, 0x163b: 0x1741,\n\t0x163c: 0x1746, 0x163d: 0x174b, 0x163e: 0x0627, 0x163f: 0x062b,\n\t// Block 0x59, offset 0x1640\n\t0x1640: 0x0ff7, 0x1641: 0x1755, 0x1642: 0x1750, 0x1643: 0x175a, 0x1644: 0x175f, 0x1645: 0x0fff,\n\t0x1646: 0x1003, 0x1647: 0x1003, 0x1648: 0x100b, 0x1649: 0x0633, 0x164a: 0x100f, 0x164b: 0x0637,\n\t0x164c: 0x063b, 0x164d: 0x1769, 0x164e: 0x1023, 0x164f: 0x102b, 0x1650: 0x1037, 0x1651: 0x063f,\n\t0x1652: 0x176e, 0x1653: 0x105b, 0x1654: 0x1773, 0x1655: 0x1778, 0x1656: 0x107b, 0x1657: 0x1093,\n\t0x1658: 0x0643, 0x1659: 0x109b, 0x165a: 0x109f, 0x165b: 0x10a3, 0x165c: 0x177d, 0x165d: 0x1782,\n\t0x165e: 0x1782, 0x165f: 0x10bb, 0x1660: 0x0647, 0x1661: 0x1787, 0x1662: 0x10cf, 0x1663: 0x10d3,\n\t0x1664: 0x064b, 0x1665: 0x178c, 0x1666: 0x10ef, 0x1667: 0x064f, 0x1668: 0x10ff, 0x1669: 0x10f7,\n\t0x166a: 0x1107, 0x166b: 0x1796, 0x166c: 0x111f, 0x166d: 0x0653, 0x166e: 0x112b, 0x166f: 0x1133,\n\t0x1670: 0x1143, 0x1671: 0x0657, 0x1672: 0x17a0, 0x1673: 0x17a5, 0x1674: 0x065b, 0x1675: 0x17aa,\n\t0x1676: 0x115b, 0x1677: 0x17af, 0x1678: 0x1167, 0x1679: 0x1173, 0x167a: 0x117b, 0x167b: 0x17b4,\n\t0x167c: 0x17b9, 0x167d: 0x118f, 0x167e: 0x17be, 0x167f: 0x1197,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x16ce, 0x1681: 0x065f, 0x1682: 0x11af, 0x1683: 0x11b3, 0x1684: 0x0667, 0x1685: 0x11b7,\n\t0x1686: 0x0a33, 0x1687: 0x17c3, 0x1688: 0x17c8, 0x1689: 0x16d3, 0x168a: 0x16d8, 0x168b: 0x11d7,\n\t0x168c: 0x11db, 0x168d: 0x13f3, 0x168e: 0x066b, 0x168f: 0x1207, 0x1690: 0x1203, 0x1691: 0x120b,\n\t0x1692: 0x083f, 0x1693: 0x120f, 0x1694: 0x1213, 0x1695: 0x1217, 0x1696: 0x121f, 0x1697: 0x17cd,\n\t0x1698: 0x121b, 0x1699: 0x1223, 0x169a: 0x1237, 0x169b: 0x123b, 0x169c: 0x1227, 0x169d: 0x123f,\n\t0x169e: 0x1253, 0x169f: 0x1267, 0x16a0: 0x1233, 0x16a1: 0x1247, 0x16a2: 0x124b, 0x16a3: 0x124f,\n\t0x16a4: 0x17d2, 0x16a5: 0x17dc, 0x16a6: 0x17d7, 0x16a7: 0x066f, 0x16a8: 0x126f, 0x16a9: 0x1273,\n\t0x16aa: 0x127b, 0x16ab: 0x17f0, 0x16ac: 0x127f, 0x16ad: 0x17e1, 0x16ae: 0x0673, 0x16af: 0x0677,\n\t0x16b0: 0x17e6, 0x16b1: 0x17eb, 0x16b2: 0x067b, 0x16b3: 0x129f, 0x16b4: 0x12a3, 0x16b5: 0x12a7,\n\t0x16b6: 0x12ab, 0x16b7: 0x12b7, 0x16b8: 0x12b3, 0x16b9: 0x12bf, 0x16ba: 0x12bb, 0x16bb: 0x12cb,\n\t0x16bc: 0x12c3, 0x16bd: 0x12c7, 0x16be: 0x12cf, 0x16bf: 0x067f,\n\t// Block 0x5b, offset 0x16c0\n\t0x16c0: 0x12d7, 0x16c1: 0x12db, 0x16c2: 0x0683, 0x16c3: 0x12eb, 0x16c4: 0x12ef, 0x16c5: 0x17f5,\n\t0x16c6: 0x12fb, 0x16c7: 0x12ff, 0x16c8: 0x0687, 0x16c9: 0x130b, 0x16ca: 0x05bb, 0x16cb: 0x17fa,\n\t0x16cc: 0x17ff, 0x16cd: 0x068b, 0x16ce: 0x068f, 0x16cf: 0x1337, 0x16d0: 0x134f, 0x16d1: 0x136b,\n\t0x16d2: 0x137b, 0x16d3: 0x1804, 0x16d4: 0x138f, 0x16d5: 0x1393, 0x16d6: 0x13ab, 0x16d7: 0x13b7,\n\t0x16d8: 0x180e, 0x16d9: 0x1660, 0x16da: 0x13c3, 0x16db: 0x13bf, 0x16dc: 0x13cb, 0x16dd: 0x1665,\n\t0x16de: 0x13d7, 0x16df: 0x13e3, 0x16e0: 0x1813, 0x16e1: 0x1818, 0x16e2: 0x1423, 0x16e3: 0x142f,\n\t0x16e4: 0x1437, 0x16e5: 0x181d, 0x16e6: 0x143b, 0x16e7: 0x1467, 0x16e8: 0x1473, 0x16e9: 0x1477,\n\t0x16ea: 0x146f, 0x16eb: 0x1483, 0x16ec: 0x1487, 0x16ed: 0x1822, 0x16ee: 0x1493, 0x16ef: 0x0693,\n\t0x16f0: 0x149b, 0x16f1: 0x1827, 0x16f2: 0x0697, 0x16f3: 0x14d3, 0x16f4: 0x0ac3, 0x16f5: 0x14eb,\n\t0x16f6: 0x182c, 0x16f7: 0x1836, 0x16f8: 0x069b, 0x16f9: 0x069f, 0x16fa: 0x1513, 0x16fb: 0x183b,\n\t0x16fc: 0x06a3, 0x16fd: 0x1840, 0x16fe: 0x152b, 0x16ff: 0x152b,\n\t// Block 0x5c, offset 0x1700\n\t0x1700: 0x1533, 0x1701: 0x1845, 0x1702: 0x154b, 0x1703: 0x06a7, 0x1704: 0x155b, 0x1705: 0x1567,\n\t0x1706: 0x156f, 0x1707: 0x1577, 0x1708: 0x06ab, 0x1709: 0x184a, 0x170a: 0x158b, 0x170b: 0x15a7,\n\t0x170c: 0x15b3, 0x170d: 0x06af, 0x170e: 0x06b3, 0x170f: 0x15b7, 0x1710: 0x184f, 0x1711: 0x06b7,\n\t0x1712: 0x1854, 0x1713: 0x1859, 0x1714: 0x185e, 0x1715: 0x15db, 0x1716: 0x06bb, 0x1717: 0x15ef,\n\t0x1718: 0x15f7, 0x1719: 0x15fb, 0x171a: 0x1603, 0x171b: 0x160b, 0x171c: 0x1613, 0x171d: 0x1868,\n}\n\n// nfkcIndex: 22 blocks, 1408 entries, 1408 bytes\n// Block 0 is the zero block.\nvar nfkcIndex = [1408]uint8{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x5b, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x5c, 0xc7: 0x04,\n\t0xc8: 0x05, 0xca: 0x5d, 0xcb: 0x5e, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09,\n\t0xd0: 0x0a, 0xd1: 0x5f, 0xd2: 0x60, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x61,\n\t0xd8: 0x62, 0xd9: 0x0d, 0xdb: 0x63, 0xdc: 0x64, 0xdd: 0x65, 0xdf: 0x66,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,\n\t0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a,\n\t0xf0: 0x13,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x67, 0x121: 0x68, 0x123: 0x69, 0x124: 0x6a, 0x125: 0x6b, 0x126: 0x6c, 0x127: 0x6d,\n\t0x128: 0x6e, 0x129: 0x6f, 0x12a: 0x70, 0x12b: 0x71, 0x12c: 0x6c, 0x12d: 0x72, 0x12e: 0x73, 0x12f: 0x74,\n\t0x131: 0x75, 0x132: 0x76, 0x133: 0x77, 0x134: 0x78, 0x135: 0x79, 0x137: 0x7a,\n\t0x138: 0x7b, 0x139: 0x7c, 0x13a: 0x7d, 0x13b: 0x7e, 0x13c: 0x7f, 0x13d: 0x80, 0x13e: 0x81, 0x13f: 0x82,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x83, 0x142: 0x84, 0x143: 0x85, 0x144: 0x86, 0x145: 0x87, 0x146: 0x88, 0x147: 0x89,\n\t0x14d: 0x8a,\n\t0x15c: 0x8b, 0x15f: 0x8c,\n\t0x162: 0x8d, 0x164: 0x8e,\n\t0x168: 0x8f, 0x169: 0x90, 0x16a: 0x91, 0x16c: 0x0e, 0x16d: 0x92, 0x16e: 0x93, 0x16f: 0x94,\n\t0x170: 0x95, 0x173: 0x96, 0x174: 0x97, 0x175: 0x0f, 0x176: 0x10, 0x177: 0x11,\n\t0x178: 0x12, 0x179: 0x13, 0x17a: 0x14, 0x17b: 0x15, 0x17c: 0x16, 0x17d: 0x17, 0x17e: 0x18, 0x17f: 0x19,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x98, 0x181: 0x99, 0x182: 0x9a, 0x183: 0x9b, 0x184: 0x1a, 0x185: 0x1b, 0x186: 0x9c, 0x187: 0x9d,\n\t0x188: 0x9e, 0x189: 0x1c, 0x18a: 0x1d, 0x18b: 0x9f, 0x18c: 0xa0,\n\t0x191: 0x1e, 0x192: 0x1f, 0x193: 0xa1,\n\t0x1a8: 0xa2, 0x1a9: 0xa3, 0x1ab: 0xa4,\n\t0x1b1: 0xa5, 0x1b3: 0xa6, 0x1b5: 0xa7, 0x1b7: 0xa8,\n\t0x1ba: 0xa9, 0x1bb: 0xaa, 0x1bc: 0x20, 0x1bd: 0x21, 0x1be: 0x22, 0x1bf: 0xab,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0xac, 0x1c1: 0x23, 0x1c2: 0x24, 0x1c3: 0x25, 0x1c4: 0xad, 0x1c5: 0x26, 0x1c6: 0x27,\n\t0x1c8: 0x28, 0x1c9: 0x29, 0x1ca: 0x2a, 0x1cb: 0x2b, 0x1cc: 0x2c, 0x1cd: 0x2d, 0x1ce: 0x2e, 0x1cf: 0x2f,\n\t// Block 0x8, offset 0x200\n\t0x219: 0xae, 0x21a: 0xaf, 0x21b: 0xb0, 0x21d: 0xb1, 0x21f: 0xb2,\n\t0x220: 0xb3, 0x223: 0xb4, 0x224: 0xb5, 0x225: 0xb6, 0x226: 0xb7, 0x227: 0xb8,\n\t0x22a: 0xb9, 0x22b: 0xba, 0x22d: 0xbb, 0x22f: 0xbc,\n\t0x230: 0xbd, 0x231: 0xbe, 0x232: 0xbf, 0x233: 0xc0, 0x234: 0xc1, 0x235: 0xc2, 0x236: 0xc3, 0x237: 0xbd,\n\t0x238: 0xbe, 0x239: 0xbf, 0x23a: 0xc0, 0x23b: 0xc1, 0x23c: 0xc2, 0x23d: 0xc3, 0x23e: 0xbd, 0x23f: 0xbe,\n\t// Block 0x9, offset 0x240\n\t0x240: 0xbf, 0x241: 0xc0, 0x242: 0xc1, 0x243: 0xc2, 0x244: 0xc3, 0x245: 0xbd, 0x246: 0xbe, 0x247: 0xbf,\n\t0x248: 0xc0, 0x249: 0xc1, 0x24a: 0xc2, 0x24b: 0xc3, 0x24c: 0xbd, 0x24d: 0xbe, 0x24e: 0xbf, 0x24f: 0xc0,\n\t0x250: 0xc1, 0x251: 0xc2, 0x252: 0xc3, 0x253: 0xbd, 0x254: 0xbe, 0x255: 0xbf, 0x256: 0xc0, 0x257: 0xc1,\n\t0x258: 0xc2, 0x259: 0xc3, 0x25a: 0xbd, 0x25b: 0xbe, 0x25c: 0xbf, 0x25d: 0xc0, 0x25e: 0xc1, 0x25f: 0xc2,\n\t0x260: 0xc3, 0x261: 0xbd, 0x262: 0xbe, 0x263: 0xbf, 0x264: 0xc0, 0x265: 0xc1, 0x266: 0xc2, 0x267: 0xc3,\n\t0x268: 0xbd, 0x269: 0xbe, 0x26a: 0xbf, 0x26b: 0xc0, 0x26c: 0xc1, 0x26d: 0xc2, 0x26e: 0xc3, 0x26f: 0xbd,\n\t0x270: 0xbe, 0x271: 0xbf, 0x272: 0xc0, 0x273: 0xc1, 0x274: 0xc2, 0x275: 0xc3, 0x276: 0xbd, 0x277: 0xbe,\n\t0x278: 0xbf, 0x279: 0xc0, 0x27a: 0xc1, 0x27b: 0xc2, 0x27c: 0xc3, 0x27d: 0xbd, 0x27e: 0xbe, 0x27f: 0xbf,\n\t// Block 0xa, offset 0x280\n\t0x280: 0xc0, 0x281: 0xc1, 0x282: 0xc2, 0x283: 0xc3, 0x284: 0xbd, 0x285: 0xbe, 0x286: 0xbf, 0x287: 0xc0,\n\t0x288: 0xc1, 0x289: 0xc2, 0x28a: 0xc3, 0x28b: 0xbd, 0x28c: 0xbe, 0x28d: 0xbf, 0x28e: 0xc0, 0x28f: 0xc1,\n\t0x290: 0xc2, 0x291: 0xc3, 0x292: 0xbd, 0x293: 0xbe, 0x294: 0xbf, 0x295: 0xc0, 0x296: 0xc1, 0x297: 0xc2,\n\t0x298: 0xc3, 0x299: 0xbd, 0x29a: 0xbe, 0x29b: 0xbf, 0x29c: 0xc0, 0x29d: 0xc1, 0x29e: 0xc2, 0x29f: 0xc3,\n\t0x2a0: 0xbd, 0x2a1: 0xbe, 0x2a2: 0xbf, 0x2a3: 0xc0, 0x2a4: 0xc1, 0x2a5: 0xc2, 0x2a6: 0xc3, 0x2a7: 0xbd,\n\t0x2a8: 0xbe, 0x2a9: 0xbf, 0x2aa: 0xc0, 0x2ab: 0xc1, 0x2ac: 0xc2, 0x2ad: 0xc3, 0x2ae: 0xbd, 0x2af: 0xbe,\n\t0x2b0: 0xbf, 0x2b1: 0xc0, 0x2b2: 0xc1, 0x2b3: 0xc2, 0x2b4: 0xc3, 0x2b5: 0xbd, 0x2b6: 0xbe, 0x2b7: 0xbf,\n\t0x2b8: 0xc0, 0x2b9: 0xc1, 0x2ba: 0xc2, 0x2bb: 0xc3, 0x2bc: 0xbd, 0x2bd: 0xbe, 0x2be: 0xbf, 0x2bf: 0xc0,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0xc1, 0x2c1: 0xc2, 0x2c2: 0xc3, 0x2c3: 0xbd, 0x2c4: 0xbe, 0x2c5: 0xbf, 0x2c6: 0xc0, 0x2c7: 0xc1,\n\t0x2c8: 0xc2, 0x2c9: 0xc3, 0x2ca: 0xbd, 0x2cb: 0xbe, 0x2cc: 0xbf, 0x2cd: 0xc0, 0x2ce: 0xc1, 0x2cf: 0xc2,\n\t0x2d0: 0xc3, 0x2d1: 0xbd, 0x2d2: 0xbe, 0x2d3: 0xbf, 0x2d4: 0xc0, 0x2d5: 0xc1, 0x2d6: 0xc2, 0x2d7: 0xc3,\n\t0x2d8: 0xbd, 0x2d9: 0xbe, 0x2da: 0xbf, 0x2db: 0xc0, 0x2dc: 0xc1, 0x2dd: 0xc2, 0x2de: 0xc4,\n\t// Block 0xc, offset 0x300\n\t0x324: 0x30, 0x325: 0x31, 0x326: 0x32, 0x327: 0x33,\n\t0x328: 0x34, 0x329: 0x35, 0x32a: 0x36, 0x32b: 0x37, 0x32c: 0x38, 0x32d: 0x39, 0x32e: 0x3a, 0x32f: 0x3b,\n\t0x330: 0x3c, 0x331: 0x3d, 0x332: 0x3e, 0x333: 0x3f, 0x334: 0x40, 0x335: 0x41, 0x336: 0x42, 0x337: 0x43,\n\t0x338: 0x44, 0x339: 0x45, 0x33a: 0x46, 0x33b: 0x47, 0x33c: 0xc5, 0x33d: 0x48, 0x33e: 0x49, 0x33f: 0x4a,\n\t// Block 0xd, offset 0x340\n\t0x347: 0xc6,\n\t0x34b: 0xc7, 0x34d: 0xc8,\n\t0x368: 0xc9, 0x36b: 0xca,\n\t// Block 0xe, offset 0x380\n\t0x381: 0xcb, 0x382: 0xcc, 0x384: 0xcd, 0x385: 0xb7, 0x387: 0xce,\n\t0x388: 0xcf, 0x38b: 0xd0, 0x38c: 0x6c, 0x38d: 0xd1,\n\t0x391: 0xd2, 0x392: 0xd3, 0x393: 0xd4, 0x396: 0xd5, 0x397: 0xd6,\n\t0x398: 0xd7, 0x39a: 0xd8, 0x39c: 0xd9,\n\t0x3a8: 0xda, 0x3a9: 0xdb, 0x3aa: 0xdc,\n\t0x3b0: 0xd7, 0x3b5: 0xdd,\n\t// Block 0xf, offset 0x3c0\n\t0x3eb: 0xde, 0x3ec: 0xdf,\n\t// Block 0x10, offset 0x400\n\t0x432: 0xe0,\n\t// Block 0x11, offset 0x440\n\t0x445: 0xe1, 0x446: 0xe2, 0x447: 0xe3,\n\t0x449: 0xe4,\n\t0x450: 0xe5, 0x451: 0xe6, 0x452: 0xe7, 0x453: 0xe8, 0x454: 0xe9, 0x455: 0xea, 0x456: 0xeb, 0x457: 0xec,\n\t0x458: 0xed, 0x459: 0xee, 0x45a: 0x4b, 0x45b: 0xef, 0x45c: 0xf0, 0x45d: 0xf1, 0x45e: 0xf2, 0x45f: 0x4c,\n\t// Block 0x12, offset 0x480\n\t0x480: 0xf3,\n\t0x4a3: 0xf4, 0x4a5: 0xf5,\n\t0x4b8: 0x4d, 0x4b9: 0x4e, 0x4ba: 0x4f,\n\t// Block 0x13, offset 0x4c0\n\t0x4c4: 0x50, 0x4c5: 0xf6, 0x4c6: 0xf7,\n\t0x4c8: 0x51, 0x4c9: 0xf8,\n\t// Block 0x14, offset 0x500\n\t0x520: 0x52, 0x521: 0x53, 0x522: 0x54, 0x523: 0x55, 0x524: 0x56, 0x525: 0x57, 0x526: 0x58, 0x527: 0x59,\n\t0x528: 0x5a,\n\t// Block 0x15, offset 0x540\n\t0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,\n\t0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,\n\t0x56f: 0x12,\n}\n\n// nfkcSparseOffset: 158 entries, 316 bytes\nvar nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1b, 0x25, 0x35, 0x37, 0x3c, 0x47, 0x56, 0x63, 0x6b, 0x6f, 0x74, 0x76, 0x87, 0x8f, 0x96, 0x99, 0xa0, 0xa4, 0xa8, 0xaa, 0xac, 0xb5, 0xb9, 0xc0, 0xc5, 0xc8, 0xd2, 0xd5, 0xdc, 0xe4, 0xe8, 0xea, 0xed, 0xf1, 0xf7, 0x108, 0x114, 0x116, 0x11c, 0x11e, 0x120, 0x122, 0x124, 0x126, 0x128, 0x12a, 0x12d, 0x130, 0x132, 0x135, 0x138, 0x13c, 0x141, 0x14a, 0x14c, 0x14f, 0x151, 0x15c, 0x167, 0x175, 0x183, 0x193, 0x1a1, 0x1a8, 0x1ae, 0x1bd, 0x1c1, 0x1c3, 0x1c7, 0x1c9, 0x1cc, 0x1ce, 0x1d1, 0x1d3, 0x1d6, 0x1d8, 0x1da, 0x1dc, 0x1e8, 0x1f2, 0x1fc, 0x1ff, 0x203, 0x205, 0x207, 0x209, 0x20b, 0x20e, 0x210, 0x212, 0x214, 0x216, 0x21c, 0x21f, 0x223, 0x225, 0x22c, 0x232, 0x238, 0x240, 0x246, 0x24c, 0x252, 0x256, 0x258, 0x25a, 0x25c, 0x25e, 0x264, 0x267, 0x26a, 0x272, 0x279, 0x27c, 0x27f, 0x281, 0x289, 0x28c, 0x293, 0x296, 0x29c, 0x29e, 0x2a0, 0x2a3, 0x2a5, 0x2a7, 0x2a9, 0x2ab, 0x2ae, 0x2b0, 0x2b2, 0x2b4, 0x2c1, 0x2cb, 0x2cd, 0x2cf, 0x2d3, 0x2d8, 0x2e4, 0x2e9, 0x2f2, 0x2f8, 0x2fd, 0x301, 0x306, 0x30a, 0x31a, 0x328, 0x336, 0x344, 0x34a, 0x34c, 0x34f, 0x359, 0x35b}\n\n// nfkcSparseValues: 869 entries, 3476 bytes\nvar nfkcSparseValues = [869]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0002, lo: 0x0d},\n\t{value: 0x0001, lo: 0xa0, hi: 0xa0},\n\t{value: 0x4278, lo: 0xa8, hi: 0xa8},\n\t{value: 0x0083, lo: 0xaa, hi: 0xaa},\n\t{value: 0x4264, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0025, lo: 0xb2, hi: 0xb3},\n\t{value: 0x425a, lo: 0xb4, hi: 0xb4},\n\t{value: 0x01dc, lo: 0xb5, hi: 0xb5},\n\t{value: 0x4291, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0023, lo: 0xb9, hi: 0xb9},\n\t{value: 0x009f, lo: 0xba, hi: 0xba},\n\t{value: 0x221c, lo: 0xbc, hi: 0xbc},\n\t{value: 0x2210, lo: 0xbd, hi: 0xbd},\n\t{value: 0x22b2, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1, offset 0xe\n\t{value: 0x0091, lo: 0x03},\n\t{value: 0x46e2, lo: 0xa0, hi: 0xa1},\n\t{value: 0x4714, lo: 0xaf, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb7, hi: 0xb7},\n\t// Block 0x2, offset 0x12\n\t{value: 0x0003, lo: 0x08},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x0091, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0119, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0095, lo: 0xb2, hi: 0xb2},\n\t{value: 0x00a5, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0143, lo: 0xb4, hi: 0xb6},\n\t{value: 0x00af, lo: 0xb7, hi: 0xb7},\n\t{value: 0x00b3, lo: 0xb8, hi: 0xb8},\n\t// Block 0x3, offset 0x1b\n\t{value: 0x000a, lo: 0x09},\n\t{value: 0x426e, lo: 0x98, hi: 0x98},\n\t{value: 0x4273, lo: 0x99, hi: 0x9a},\n\t{value: 0x4296, lo: 0x9b, hi: 0x9b},\n\t{value: 0x425f, lo: 0x9c, hi: 0x9c},\n\t{value: 0x4282, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0113, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0099, lo: 0xa1, hi: 0xa1},\n\t{value: 0x00a7, lo: 0xa2, hi: 0xa3},\n\t{value: 0x0167, lo: 0xa4, hi: 0xa4},\n\t// Block 0x4, offset 0x25\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0xa000, lo: 0x8d, hi: 0x8d},\n\t{value: 0x37a5, lo: 0x90, hi: 0x90},\n\t{value: 0x37b1, lo: 0x91, hi: 0x91},\n\t{value: 0x379f, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x96, hi: 0x96},\n\t{value: 0x3817, lo: 0x97, hi: 0x97},\n\t{value: 0x37e1, lo: 0x9c, hi: 0x9c},\n\t{value: 0x37c9, lo: 0x9d, hi: 0x9d},\n\t{value: 0x37f3, lo: 0x9e, hi: 0x9e},\n\t{value: 0xa000, lo: 0xb4, hi: 0xb5},\n\t{value: 0x381d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3823, lo: 0xb7, hi: 0xb7},\n\t// Block 0x5, offset 0x35\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x83, hi: 0x87},\n\t// Block 0x6, offset 0x37\n\t{value: 0x0001, lo: 0x04},\n\t{value: 0x8113, lo: 0x81, hi: 0x82},\n\t{value: 0x8132, lo: 0x84, hi: 0x84},\n\t{value: 0x812d, lo: 0x85, hi: 0x85},\n\t{value: 0x810d, lo: 0x87, hi: 0x87},\n\t// Block 0x7, offset 0x3c\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x97},\n\t{value: 0x8119, lo: 0x98, hi: 0x98},\n\t{value: 0x811a, lo: 0x99, hi: 0x99},\n\t{value: 0x811b, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3841, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3847, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3853, lo: 0xa4, hi: 0xa4},\n\t{value: 0x384d, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3859, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xa7, hi: 0xa7},\n\t// Block 0x8, offset 0x47\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x386b, lo: 0x80, hi: 0x80},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0x385f, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x3865, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x95, hi: 0x95},\n\t{value: 0x8132, lo: 0x96, hi: 0x9c},\n\t{value: 0x8132, lo: 0x9f, hi: 0xa2},\n\t{value: 0x812d, lo: 0xa3, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa8},\n\t{value: 0x812d, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8132, lo: 0xab, hi: 0xac},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t// Block 0x9, offset 0x56\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x811f, lo: 0x91, hi: 0x91},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x812d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb5, hi: 0xb6},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb9},\n\t{value: 0x8132, lo: 0xba, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbc},\n\t{value: 0x8132, lo: 0xbd, hi: 0xbd},\n\t{value: 0x812d, lo: 0xbe, hi: 0xbe},\n\t{value: 0x8132, lo: 0xbf, hi: 0xbf},\n\t// Block 0xa, offset 0x63\n\t{value: 0x0005, lo: 0x07},\n\t{value: 0x8132, lo: 0x80, hi: 0x80},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x812d, lo: 0x82, hi: 0x83},\n\t{value: 0x812d, lo: 0x84, hi: 0x85},\n\t{value: 0x812d, lo: 0x86, hi: 0x87},\n\t{value: 0x812d, lo: 0x88, hi: 0x89},\n\t{value: 0x8132, lo: 0x8a, hi: 0x8a},\n\t// Block 0xb, offset 0x6b\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8132, lo: 0xab, hi: 0xb1},\n\t{value: 0x812d, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8132, lo: 0xb3, hi: 0xb3},\n\t// Block 0xc, offset 0x6f\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0x96, hi: 0x99},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa7},\n\t{value: 0x8132, lo: 0xa9, hi: 0xad},\n\t// Block 0xd, offset 0x74\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x99, hi: 0x9b},\n\t// Block 0xe, offset 0x76\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x8132, lo: 0x94, hi: 0xa1},\n\t{value: 0x812d, lo: 0xa3, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa5},\n\t{value: 0x812d, lo: 0xa6, hi: 0xa6},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa8},\n\t{value: 0x812d, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8132, lo: 0xaa, hi: 0xac},\n\t{value: 0x812d, lo: 0xad, hi: 0xaf},\n\t{value: 0x8116, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8117, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8118, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8132, lo: 0xb3, hi: 0xb5},\n\t{value: 0x812d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8132, lo: 0xb7, hi: 0xb8},\n\t{value: 0x812d, lo: 0xb9, hi: 0xba},\n\t{value: 0x8132, lo: 0xbb, hi: 0xbf},\n\t// Block 0xf, offset 0x87\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3ed8, lo: 0xa9, hi: 0xa9},\n\t{value: 0xa000, lo: 0xb0, hi: 0xb0},\n\t{value: 0x3ee0, lo: 0xb1, hi: 0xb1},\n\t{value: 0xa000, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3ee8, lo: 0xb4, hi: 0xb4},\n\t{value: 0x9902, lo: 0xbc, hi: 0xbc},\n\t// Block 0x10, offset 0x8f\n\t{value: 0x0008, lo: 0x06},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x91, hi: 0x91},\n\t{value: 0x812d, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x93, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x94},\n\t{value: 0x451c, lo: 0x98, hi: 0x9f},\n\t// Block 0x11, offset 0x96\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x12, offset 0x99\n\t{value: 0x0008, lo: 0x06},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2c9e, lo: 0x8b, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x455c, lo: 0x9c, hi: 0x9d},\n\t{value: 0x456c, lo: 0x9f, hi: 0x9f},\n\t// Block 0x13, offset 0xa0\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x4594, lo: 0xb3, hi: 0xb3},\n\t{value: 0x459c, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x14, offset 0xa4\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x4574, lo: 0x99, hi: 0x9b},\n\t{value: 0x458c, lo: 0x9e, hi: 0x9e},\n\t// Block 0x15, offset 0xa8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x16, offset 0xaa\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t// Block 0x17, offset 0xac\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2cb6, lo: 0x88, hi: 0x88},\n\t{value: 0x2cae, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cbe, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x96, hi: 0x97},\n\t{value: 0x45a4, lo: 0x9c, hi: 0x9c},\n\t{value: 0x45ac, lo: 0x9d, hi: 0x9d},\n\t// Block 0x18, offset 0xb5\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x2cc6, lo: 0x94, hi: 0x94},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x19, offset 0xb9\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cce, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2cde, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cd6, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1a, offset 0xc0\n\t{value: 0x1801, lo: 0x04},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x3ef0, lo: 0x88, hi: 0x88},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8120, lo: 0x95, hi: 0x96},\n\t// Block 0x1b, offset 0xc5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0xa000, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1c, offset 0xc8\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x2ce6, lo: 0x80, hi: 0x80},\n\t{value: 0x9900, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x2cee, lo: 0x87, hi: 0x87},\n\t{value: 0x2cf6, lo: 0x88, hi: 0x88},\n\t{value: 0x2f50, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2dd8, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x95, hi: 0x96},\n\t// Block 0x1d, offset 0xd2\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xbb, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1e, offset 0xd5\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cfe, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2d0e, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d06, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1f, offset 0xdc\n\t{value: 0x6bea, lo: 0x07},\n\t{value: 0x9904, lo: 0x8a, hi: 0x8a},\n\t{value: 0x9900, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x3ef8, lo: 0x9a, hi: 0x9a},\n\t{value: 0x2f58, lo: 0x9c, hi: 0x9c},\n\t{value: 0x2de3, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2d16, lo: 0x9e, hi: 0x9f},\n\t// Block 0x20, offset 0xe4\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x2621, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8122, lo: 0xb8, hi: 0xb9},\n\t{value: 0x8104, lo: 0xba, hi: 0xba},\n\t// Block 0x21, offset 0xe8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8123, lo: 0x88, hi: 0x8b},\n\t// Block 0x22, offset 0xea\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x2636, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8124, lo: 0xb8, hi: 0xb9},\n\t// Block 0x23, offset 0xed\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8125, lo: 0x88, hi: 0x8b},\n\t{value: 0x2628, lo: 0x9c, hi: 0x9c},\n\t{value: 0x262f, lo: 0x9d, hi: 0x9d},\n\t// Block 0x24, offset 0xf1\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x030b, lo: 0x8c, hi: 0x8c},\n\t{value: 0x812d, lo: 0x98, hi: 0x99},\n\t{value: 0x812d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb7},\n\t{value: 0x812b, lo: 0xb9, hi: 0xb9},\n\t// Block 0x25, offset 0xf7\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x2644, lo: 0x83, hi: 0x83},\n\t{value: 0x264b, lo: 0x8d, hi: 0x8d},\n\t{value: 0x2652, lo: 0x92, hi: 0x92},\n\t{value: 0x2659, lo: 0x97, hi: 0x97},\n\t{value: 0x2660, lo: 0x9c, hi: 0x9c},\n\t{value: 0x263d, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8126, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8127, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4a84, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8128, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4a8d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x45b4, lo: 0xb6, hi: 0xb6},\n\t{value: 0x45f4, lo: 0xb7, hi: 0xb7},\n\t{value: 0x45bc, lo: 0xb8, hi: 0xb8},\n\t{value: 0x45ff, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8127, lo: 0xba, hi: 0xbd},\n\t// Block 0x26, offset 0x108\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x8127, lo: 0x80, hi: 0x80},\n\t{value: 0x4a96, lo: 0x81, hi: 0x81},\n\t{value: 0x8132, lo: 0x82, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0x86, hi: 0x87},\n\t{value: 0x266e, lo: 0x93, hi: 0x93},\n\t{value: 0x2675, lo: 0x9d, hi: 0x9d},\n\t{value: 0x267c, lo: 0xa2, hi: 0xa2},\n\t{value: 0x2683, lo: 0xa7, hi: 0xa7},\n\t{value: 0x268a, lo: 0xac, hi: 0xac},\n\t{value: 0x2667, lo: 0xb9, hi: 0xb9},\n\t// Block 0x27, offset 0x114\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x86, hi: 0x86},\n\t// Block 0x28, offset 0x116\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x2d1e, lo: 0xa6, hi: 0xa6},\n\t{value: 0x9900, lo: 0xae, hi: 0xae},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x29, offset 0x11c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t// Block 0x2a, offset 0x11e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x030f, lo: 0xbc, hi: 0xbc},\n\t// Block 0x2b, offset 0x120\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x80, hi: 0x92},\n\t// Block 0x2c, offset 0x122\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xb900, lo: 0xa1, hi: 0xb5},\n\t// Block 0x2d, offset 0x124\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0xa8, hi: 0xbf},\n\t// Block 0x2e, offset 0x126\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0x80, hi: 0x82},\n\t// Block 0x2f, offset 0x128\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9f},\n\t// Block 0x30, offset 0x12a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x94, hi: 0x94},\n\t{value: 0x8104, lo: 0xb4, hi: 0xb4},\n\t// Block 0x31, offset 0x12d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9d},\n\t// Block 0x32, offset 0x130\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8131, lo: 0xa9, hi: 0xa9},\n\t// Block 0x33, offset 0x132\n\t{value: 0x0004, lo: 0x02},\n\t{value: 0x812e, lo: 0xb9, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbb},\n\t// Block 0x34, offset 0x135\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x97, hi: 0x97},\n\t{value: 0x812d, lo: 0x98, hi: 0x98},\n\t// Block 0x35, offset 0x138\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8104, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8132, lo: 0xb5, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbf, hi: 0xbf},\n\t// Block 0x36, offset 0x13c\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t{value: 0x812d, lo: 0xb5, hi: 0xba},\n\t{value: 0x8132, lo: 0xbb, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x37, offset 0x141\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x2d66, lo: 0x80, hi: 0x80},\n\t{value: 0x2d6e, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x82, hi: 0x82},\n\t{value: 0x2d76, lo: 0x83, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xab, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xac},\n\t{value: 0x8132, lo: 0xad, hi: 0xb3},\n\t// Block 0x38, offset 0x14a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xaa, hi: 0xab},\n\t// Block 0x39, offset 0x14c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xa6, hi: 0xa6},\n\t{value: 0x8104, lo: 0xb2, hi: 0xb3},\n\t// Block 0x3a, offset 0x14f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x3b, offset 0x151\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x92},\n\t{value: 0x8101, lo: 0x94, hi: 0x94},\n\t{value: 0x812d, lo: 0x95, hi: 0x99},\n\t{value: 0x8132, lo: 0x9a, hi: 0x9b},\n\t{value: 0x812d, lo: 0x9c, hi: 0x9f},\n\t{value: 0x8132, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8101, lo: 0xa2, hi: 0xa8},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t{value: 0x8132, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb9},\n\t// Block 0x3c, offset 0x15c\n\t{value: 0x0002, lo: 0x0a},\n\t{value: 0x0043, lo: 0xac, hi: 0xac},\n\t{value: 0x00d1, lo: 0xad, hi: 0xad},\n\t{value: 0x0045, lo: 0xae, hi: 0xae},\n\t{value: 0x0049, lo: 0xb0, hi: 0xb1},\n\t{value: 0x00e6, lo: 0xb2, hi: 0xb2},\n\t{value: 0x004f, lo: 0xb3, hi: 0xba},\n\t{value: 0x005f, lo: 0xbc, hi: 0xbc},\n\t{value: 0x00ef, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0061, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0065, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3d, offset 0x167\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0001, lo: 0x80, hi: 0x8a},\n\t{value: 0x043b, lo: 0x91, hi: 0x91},\n\t{value: 0x429b, lo: 0x97, hi: 0x97},\n\t{value: 0x001d, lo: 0xa4, hi: 0xa4},\n\t{value: 0x1873, lo: 0xa5, hi: 0xa5},\n\t{value: 0x1b5c, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0001, lo: 0xaf, hi: 0xaf},\n\t{value: 0x2691, lo: 0xb3, hi: 0xb3},\n\t{value: 0x27fe, lo: 0xb4, hi: 0xb4},\n\t{value: 0x2698, lo: 0xb6, hi: 0xb6},\n\t{value: 0x2808, lo: 0xb7, hi: 0xb7},\n\t{value: 0x186d, lo: 0xbc, hi: 0xbc},\n\t{value: 0x4269, lo: 0xbe, hi: 0xbe},\n\t// Block 0x3e, offset 0x175\n\t{value: 0x0002, lo: 0x0d},\n\t{value: 0x1933, lo: 0x87, hi: 0x87},\n\t{value: 0x1930, lo: 0x88, hi: 0x88},\n\t{value: 0x1870, lo: 0x89, hi: 0x89},\n\t{value: 0x298e, lo: 0x97, hi: 0x97},\n\t{value: 0x0001, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0021, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0093, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0029, lo: 0xb4, hi: 0xb9},\n\t{value: 0x0017, lo: 0xba, hi: 0xba},\n\t{value: 0x0467, lo: 0xbb, hi: 0xbb},\n\t{value: 0x003b, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0011, lo: 0xbd, hi: 0xbe},\n\t{value: 0x009d, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3f, offset 0x183\n\t{value: 0x0002, lo: 0x0f},\n\t{value: 0x0021, lo: 0x80, hi: 0x89},\n\t{value: 0x0017, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0467, lo: 0x8b, hi: 0x8b},\n\t{value: 0x003b, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0011, lo: 0x8d, hi: 0x8e},\n\t{value: 0x0083, lo: 0x90, hi: 0x90},\n\t{value: 0x008b, lo: 0x91, hi: 0x91},\n\t{value: 0x009f, lo: 0x92, hi: 0x92},\n\t{value: 0x00b1, lo: 0x93, hi: 0x93},\n\t{value: 0x0104, lo: 0x94, hi: 0x94},\n\t{value: 0x0091, lo: 0x95, hi: 0x95},\n\t{value: 0x0097, lo: 0x96, hi: 0x99},\n\t{value: 0x00a1, lo: 0x9a, hi: 0x9a},\n\t{value: 0x00a7, lo: 0x9b, hi: 0x9c},\n\t{value: 0x1999, lo: 0xa8, hi: 0xa8},\n\t// Block 0x40, offset 0x193\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x8132, lo: 0x90, hi: 0x91},\n\t{value: 0x8101, lo: 0x92, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x97},\n\t{value: 0x8101, lo: 0x98, hi: 0x9a},\n\t{value: 0x8132, lo: 0x9b, hi: 0x9c},\n\t{value: 0x8132, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8101, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa7},\n\t{value: 0x812d, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8132, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8101, lo: 0xaa, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t// Block 0x41, offset 0x1a1\n\t{value: 0x0007, lo: 0x06},\n\t{value: 0x2180, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t{value: 0x3bb9, lo: 0x9a, hi: 0x9b},\n\t{value: 0x3bc7, lo: 0xae, hi: 0xae},\n\t// Block 0x42, offset 0x1a8\n\t{value: 0x000e, lo: 0x05},\n\t{value: 0x3bce, lo: 0x8d, hi: 0x8e},\n\t{value: 0x3bd5, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t// Block 0x43, offset 0x1ae\n\t{value: 0x0173, lo: 0x0e},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0x3be3, lo: 0x84, hi: 0x84},\n\t{value: 0xa000, lo: 0x88, hi: 0x88},\n\t{value: 0x3bea, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0x3bf1, lo: 0x8c, hi: 0x8c},\n\t{value: 0xa000, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3bf8, lo: 0xa4, hi: 0xa4},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3bff, lo: 0xa6, hi: 0xa6},\n\t{value: 0x269f, lo: 0xac, hi: 0xad},\n\t{value: 0x26a6, lo: 0xaf, hi: 0xaf},\n\t{value: 0x281c, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xbc, hi: 0xbc},\n\t// Block 0x44, offset 0x1bd\n\t{value: 0x0007, lo: 0x03},\n\t{value: 0x3c68, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3c92, lo: 0xa2, hi: 0xa3},\n\t{value: 0x3cbc, lo: 0xaa, hi: 0xad},\n\t// Block 0x45, offset 0x1c1\n\t{value: 0x0004, lo: 0x01},\n\t{value: 0x048b, lo: 0xa9, hi: 0xaa},\n\t// Block 0x46, offset 0x1c3\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x0057, lo: 0x80, hi: 0x8f},\n\t{value: 0x0083, lo: 0x90, hi: 0xa9},\n\t{value: 0x0021, lo: 0xaa, hi: 0xaa},\n\t// Block 0x47, offset 0x1c7\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x299b, lo: 0x8c, hi: 0x8c},\n\t// Block 0x48, offset 0x1c9\n\t{value: 0x0263, lo: 0x02},\n\t{value: 0x1b8c, lo: 0xb4, hi: 0xb4},\n\t{value: 0x192d, lo: 0xb5, hi: 0xb6},\n\t// Block 0x49, offset 0x1cc\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x44dd, lo: 0x9c, hi: 0x9c},\n\t// Block 0x4a, offset 0x1ce\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0095, lo: 0xbc, hi: 0xbc},\n\t{value: 0x006d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x4b, offset 0x1d1\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xaf, hi: 0xb1},\n\t// Block 0x4c, offset 0x1d3\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x047f, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x4d, offset 0x1d6\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xa0, hi: 0xbf},\n\t// Block 0x4e, offset 0x1d8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0dc3, lo: 0x9f, hi: 0x9f},\n\t// Block 0x4f, offset 0x1da\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x162f, lo: 0xb3, hi: 0xb3},\n\t// Block 0x50, offset 0x1dc\n\t{value: 0x0004, lo: 0x0b},\n\t{value: 0x1597, lo: 0x80, hi: 0x82},\n\t{value: 0x15af, lo: 0x83, hi: 0x83},\n\t{value: 0x15c7, lo: 0x84, hi: 0x85},\n\t{value: 0x15d7, lo: 0x86, hi: 0x89},\n\t{value: 0x15eb, lo: 0x8a, hi: 0x8c},\n\t{value: 0x15ff, lo: 0x8d, hi: 0x8d},\n\t{value: 0x1607, lo: 0x8e, hi: 0x8e},\n\t{value: 0x160f, lo: 0x8f, hi: 0x90},\n\t{value: 0x161b, lo: 0x91, hi: 0x93},\n\t{value: 0x162b, lo: 0x94, hi: 0x94},\n\t{value: 0x1633, lo: 0x95, hi: 0x95},\n\t// Block 0x51, offset 0x1e8\n\t{value: 0x0004, lo: 0x09},\n\t{value: 0x0001, lo: 0x80, hi: 0x80},\n\t{value: 0x812c, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8131, lo: 0xab, hi: 0xab},\n\t{value: 0x8133, lo: 0xac, hi: 0xac},\n\t{value: 0x812e, lo: 0xad, hi: 0xad},\n\t{value: 0x812f, lo: 0xae, hi: 0xae},\n\t{value: 0x812f, lo: 0xaf, hi: 0xaf},\n\t{value: 0x04b3, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0887, lo: 0xb8, hi: 0xba},\n\t// Block 0x52, offset 0x1f2\n\t{value: 0x0006, lo: 0x09},\n\t{value: 0x0313, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0317, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4a3b, lo: 0xb3, hi: 0xb3},\n\t{value: 0x031b, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4a41, lo: 0xb5, hi: 0xb6},\n\t{value: 0x031f, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0323, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0327, lo: 0xb9, hi: 0xb9},\n\t{value: 0x4a4d, lo: 0xba, hi: 0xbf},\n\t// Block 0x53, offset 0x1fc\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb4, hi: 0xbd},\n\t// Block 0x54, offset 0x1ff\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x020f, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0212, lo: 0x9d, hi: 0x9d},\n\t{value: 0x8132, lo: 0x9e, hi: 0x9f},\n\t// Block 0x55, offset 0x203\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb1},\n\t// Block 0x56, offset 0x205\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x163b, lo: 0xb0, hi: 0xb0},\n\t// Block 0x57, offset 0x207\n\t{value: 0x000c, lo: 0x01},\n\t{value: 0x00d7, lo: 0xb8, hi: 0xb9},\n\t// Block 0x58, offset 0x209\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t// Block 0x59, offset 0x20b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xa0, hi: 0xb1},\n\t// Block 0x5a, offset 0x20e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xab, hi: 0xad},\n\t// Block 0x5b, offset 0x210\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x93, hi: 0x93},\n\t// Block 0x5c, offset 0x212\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb3, hi: 0xb3},\n\t// Block 0x5d, offset 0x214\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t// Block 0x5e, offset 0x216\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb7, hi: 0xb8},\n\t{value: 0x8132, lo: 0xbe, hi: 0xbf},\n\t// Block 0x5f, offset 0x21c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t// Block 0x60, offset 0x21f\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x1637, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0125, lo: 0x9e, hi: 0x9e},\n\t{value: 0x1643, lo: 0x9f, hi: 0x9f},\n\t// Block 0x61, offset 0x223\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xad, hi: 0xad},\n\t// Block 0x62, offset 0x225\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe500, lo: 0x80, hi: 0x80},\n\t{value: 0xc600, lo: 0x81, hi: 0x9b},\n\t{value: 0xe500, lo: 0x9c, hi: 0x9c},\n\t{value: 0xc600, lo: 0x9d, hi: 0xb7},\n\t{value: 0xe500, lo: 0xb8, hi: 0xb8},\n\t{value: 0xc600, lo: 0xb9, hi: 0xbf},\n\t// Block 0x63, offset 0x22c\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x93},\n\t{value: 0xe500, lo: 0x94, hi: 0x94},\n\t{value: 0xc600, lo: 0x95, hi: 0xaf},\n\t{value: 0xe500, lo: 0xb0, hi: 0xb0},\n\t{value: 0xc600, lo: 0xb1, hi: 0xbf},\n\t// Block 0x64, offset 0x232\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8b},\n\t{value: 0xe500, lo: 0x8c, hi: 0x8c},\n\t{value: 0xc600, lo: 0x8d, hi: 0xa7},\n\t{value: 0xe500, lo: 0xa8, hi: 0xa8},\n\t{value: 0xc600, lo: 0xa9, hi: 0xbf},\n\t// Block 0x65, offset 0x238\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xc600, lo: 0x80, hi: 0x83},\n\t{value: 0xe500, lo: 0x84, hi: 0x84},\n\t{value: 0xc600, lo: 0x85, hi: 0x9f},\n\t{value: 0xe500, lo: 0xa0, hi: 0xa0},\n\t{value: 0xc600, lo: 0xa1, hi: 0xbb},\n\t{value: 0xe500, lo: 0xbc, hi: 0xbc},\n\t{value: 0xc600, lo: 0xbd, hi: 0xbf},\n\t// Block 0x66, offset 0x240\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x97},\n\t{value: 0xe500, lo: 0x98, hi: 0x98},\n\t{value: 0xc600, lo: 0x99, hi: 0xb3},\n\t{value: 0xe500, lo: 0xb4, hi: 0xb4},\n\t{value: 0xc600, lo: 0xb5, hi: 0xbf},\n\t// Block 0x67, offset 0x246\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8f},\n\t{value: 0xe500, lo: 0x90, hi: 0x90},\n\t{value: 0xc600, lo: 0x91, hi: 0xab},\n\t{value: 0xe500, lo: 0xac, hi: 0xac},\n\t{value: 0xc600, lo: 0xad, hi: 0xbf},\n\t// Block 0x68, offset 0x24c\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t{value: 0xe500, lo: 0xa4, hi: 0xa4},\n\t{value: 0xc600, lo: 0xa5, hi: 0xbf},\n\t// Block 0x69, offset 0x252\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t// Block 0x6a, offset 0x256\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x0003, lo: 0x81, hi: 0xbf},\n\t// Block 0x6b, offset 0x258\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x6c, offset 0x25a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xa0, hi: 0xa0},\n\t// Block 0x6d, offset 0x25c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb6, hi: 0xba},\n\t// Block 0x6e, offset 0x25e\n\t{value: 0x002c, lo: 0x05},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x8f, hi: 0x8f},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8101, lo: 0xb9, hi: 0xba},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x6f, offset 0x264\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa5},\n\t{value: 0x812d, lo: 0xa6, hi: 0xa6},\n\t// Block 0x70, offset 0x267\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x71, offset 0x26a\n\t{value: 0x17fe, lo: 0x07},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x4238, lo: 0x9a, hi: 0x9a},\n\t{value: 0xa000, lo: 0x9b, hi: 0x9b},\n\t{value: 0x4242, lo: 0x9c, hi: 0x9c},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x424c, lo: 0xab, hi: 0xab},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x72, offset 0x272\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x8132, lo: 0x80, hi: 0x82},\n\t{value: 0x9900, lo: 0xa7, hi: 0xa7},\n\t{value: 0x2d7e, lo: 0xae, hi: 0xae},\n\t{value: 0x2d88, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb1, hi: 0xb2},\n\t{value: 0x8104, lo: 0xb3, hi: 0xb4},\n\t// Block 0x73, offset 0x279\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0x74, offset 0x27c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb5, hi: 0xb5},\n\t{value: 0x8102, lo: 0xb6, hi: 0xb6},\n\t// Block 0x75, offset 0x27f\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x8102, lo: 0xa9, hi: 0xaa},\n\t// Block 0x76, offset 0x281\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2d92, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d9c, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x8132, lo: 0xa6, hi: 0xac},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t// Block 0x77, offset 0x289\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x86, hi: 0x86},\n\t// Block 0x78, offset 0x28c\n\t{value: 0x6b5a, lo: 0x06},\n\t{value: 0x9900, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb9, hi: 0xb9},\n\t{value: 0x9900, lo: 0xba, hi: 0xba},\n\t{value: 0x2db0, lo: 0xbb, hi: 0xbb},\n\t{value: 0x2da6, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2dba, lo: 0xbe, hi: 0xbe},\n\t// Block 0x79, offset 0x293\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x83, hi: 0x83},\n\t// Block 0x7a, offset 0x296\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x9900, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2dc4, lo: 0xba, hi: 0xba},\n\t{value: 0x2dce, lo: 0xbb, hi: 0xbb},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7b, offset 0x29c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0x80, hi: 0x80},\n\t// Block 0x7c, offset 0x29e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7d, offset 0x2a0\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x7e, offset 0x2a3\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xab, hi: 0xab},\n\t// Block 0x7f, offset 0x2a5\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xb4, hi: 0xb4},\n\t// Block 0x80, offset 0x2a7\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x87, hi: 0x87},\n\t// Block 0x81, offset 0x2a9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x99, hi: 0x99},\n\t// Block 0x82, offset 0x2ab\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0x82, hi: 0x82},\n\t{value: 0x8104, lo: 0x84, hi: 0x85},\n\t// Block 0x83, offset 0x2ae\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0xb0, hi: 0xb4},\n\t// Block 0x84, offset 0x2b0\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb6},\n\t// Block 0x85, offset 0x2b2\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0x9e, hi: 0x9e},\n\t// Block 0x86, offset 0x2b4\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x45cc, lo: 0x9e, hi: 0x9e},\n\t{value: 0x45d6, lo: 0x9f, hi: 0x9f},\n\t{value: 0x460a, lo: 0xa0, hi: 0xa0},\n\t{value: 0x4618, lo: 0xa1, hi: 0xa1},\n\t{value: 0x4626, lo: 0xa2, hi: 0xa2},\n\t{value: 0x4634, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4642, lo: 0xa4, hi: 0xa4},\n\t{value: 0x812b, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8101, lo: 0xa7, hi: 0xa9},\n\t{value: 0x8130, lo: 0xad, hi: 0xad},\n\t{value: 0x812b, lo: 0xae, hi: 0xb2},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbf},\n\t// Block 0x87, offset 0x2c1\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x812d, lo: 0x80, hi: 0x82},\n\t{value: 0x8132, lo: 0x85, hi: 0x89},\n\t{value: 0x812d, lo: 0x8a, hi: 0x8b},\n\t{value: 0x8132, lo: 0xaa, hi: 0xad},\n\t{value: 0x45e0, lo: 0xbb, hi: 0xbb},\n\t{value: 0x45ea, lo: 0xbc, hi: 0xbc},\n\t{value: 0x4650, lo: 0xbd, hi: 0xbd},\n\t{value: 0x466c, lo: 0xbe, hi: 0xbe},\n\t{value: 0x465e, lo: 0xbf, hi: 0xbf},\n\t// Block 0x88, offset 0x2cb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x467a, lo: 0x80, hi: 0x80},\n\t// Block 0x89, offset 0x2cd\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x82, hi: 0x84},\n\t// Block 0x8a, offset 0x2cf\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x0043, lo: 0x80, hi: 0x99},\n\t{value: 0x0083, lo: 0x9a, hi: 0xb3},\n\t{value: 0x0043, lo: 0xb4, hi: 0xbf},\n\t// Block 0x8b, offset 0x2d3\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x005b, lo: 0x80, hi: 0x8d},\n\t{value: 0x0083, lo: 0x8e, hi: 0x94},\n\t{value: 0x0093, lo: 0x96, hi: 0xa7},\n\t{value: 0x0043, lo: 0xa8, hi: 0xbf},\n\t// Block 0x8c, offset 0x2d8\n\t{value: 0x0002, lo: 0x0b},\n\t{value: 0x0073, lo: 0x80, hi: 0x81},\n\t{value: 0x0083, lo: 0x82, hi: 0x9b},\n\t{value: 0x0043, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0047, lo: 0x9e, hi: 0x9f},\n\t{value: 0x004f, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0055, lo: 0xa5, hi: 0xa6},\n\t{value: 0x005d, lo: 0xa9, hi: 0xac},\n\t{value: 0x0067, lo: 0xae, hi: 0xb5},\n\t{value: 0x0083, lo: 0xb6, hi: 0xb9},\n\t{value: 0x008d, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0091, lo: 0xbd, hi: 0xbf},\n\t// Block 0x8d, offset 0x2e4\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x0097, lo: 0x80, hi: 0x83},\n\t{value: 0x00a1, lo: 0x85, hi: 0x8f},\n\t{value: 0x0043, lo: 0x90, hi: 0xa9},\n\t{value: 0x0083, lo: 0xaa, hi: 0xbf},\n\t// Block 0x8e, offset 0x2e9\n\t{value: 0x0002, lo: 0x08},\n\t{value: 0x00af, lo: 0x80, hi: 0x83},\n\t{value: 0x0043, lo: 0x84, hi: 0x85},\n\t{value: 0x0049, lo: 0x87, hi: 0x8a},\n\t{value: 0x0055, lo: 0x8d, hi: 0x94},\n\t{value: 0x0067, lo: 0x96, hi: 0x9c},\n\t{value: 0x0083, lo: 0x9e, hi: 0xb7},\n\t{value: 0x0043, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0049, lo: 0xbb, hi: 0xbe},\n\t// Block 0x8f, offset 0x2f2\n\t{value: 0x0002, lo: 0x05},\n\t{value: 0x0053, lo: 0x80, hi: 0x84},\n\t{value: 0x005f, lo: 0x86, hi: 0x86},\n\t{value: 0x0067, lo: 0x8a, hi: 0x90},\n\t{value: 0x0083, lo: 0x92, hi: 0xab},\n\t{value: 0x0043, lo: 0xac, hi: 0xbf},\n\t// Block 0x90, offset 0x2f8\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x006b, lo: 0x80, hi: 0x85},\n\t{value: 0x0083, lo: 0x86, hi: 0x9f},\n\t{value: 0x0043, lo: 0xa0, hi: 0xb9},\n\t{value: 0x0083, lo: 0xba, hi: 0xbf},\n\t// Block 0x91, offset 0x2fd\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x008f, lo: 0x80, hi: 0x93},\n\t{value: 0x0043, lo: 0x94, hi: 0xad},\n\t{value: 0x0083, lo: 0xae, hi: 0xbf},\n\t// Block 0x92, offset 0x301\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x00a7, lo: 0x80, hi: 0x87},\n\t{value: 0x0043, lo: 0x88, hi: 0xa1},\n\t{value: 0x0083, lo: 0xa2, hi: 0xbb},\n\t{value: 0x0043, lo: 0xbc, hi: 0xbf},\n\t// Block 0x93, offset 0x306\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x004b, lo: 0x80, hi: 0x95},\n\t{value: 0x0083, lo: 0x96, hi: 0xaf},\n\t{value: 0x0043, lo: 0xb0, hi: 0xbf},\n\t// Block 0x94, offset 0x30a\n\t{value: 0x0003, lo: 0x0f},\n\t{value: 0x01b8, lo: 0x80, hi: 0x80},\n\t{value: 0x045f, lo: 0x81, hi: 0x81},\n\t{value: 0x01bb, lo: 0x82, hi: 0x9a},\n\t{value: 0x045b, lo: 0x9b, hi: 0x9b},\n\t{value: 0x01c7, lo: 0x9c, hi: 0x9c},\n\t{value: 0x01d0, lo: 0x9d, hi: 0x9d},\n\t{value: 0x01d6, lo: 0x9e, hi: 0x9e},\n\t{value: 0x01fa, lo: 0x9f, hi: 0x9f},\n\t{value: 0x01eb, lo: 0xa0, hi: 0xa0},\n\t{value: 0x01e8, lo: 0xa1, hi: 0xa1},\n\t{value: 0x0173, lo: 0xa2, hi: 0xb2},\n\t{value: 0x0188, lo: 0xb3, hi: 0xb3},\n\t{value: 0x01a6, lo: 0xb4, hi: 0xba},\n\t{value: 0x045f, lo: 0xbb, hi: 0xbb},\n\t{value: 0x01bb, lo: 0xbc, hi: 0xbf},\n\t// Block 0x95, offset 0x31a\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x01c7, lo: 0x80, hi: 0x94},\n\t{value: 0x045b, lo: 0x95, hi: 0x95},\n\t{value: 0x01c7, lo: 0x96, hi: 0x96},\n\t{value: 0x01d0, lo: 0x97, hi: 0x97},\n\t{value: 0x01d6, lo: 0x98, hi: 0x98},\n\t{value: 0x01fa, lo: 0x99, hi: 0x99},\n\t{value: 0x01eb, lo: 0x9a, hi: 0x9a},\n\t{value: 0x01e8, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0173, lo: 0x9c, hi: 0xac},\n\t{value: 0x0188, lo: 0xad, hi: 0xad},\n\t{value: 0x01a6, lo: 0xae, hi: 0xb4},\n\t{value: 0x045f, lo: 0xb5, hi: 0xb5},\n\t{value: 0x01bb, lo: 0xb6, hi: 0xbf},\n\t// Block 0x96, offset 0x328\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x01d9, lo: 0x80, hi: 0x8e},\n\t{value: 0x045b, lo: 0x8f, hi: 0x8f},\n\t{value: 0x01c7, lo: 0x90, hi: 0x90},\n\t{value: 0x01d0, lo: 0x91, hi: 0x91},\n\t{value: 0x01d6, lo: 0x92, hi: 0x92},\n\t{value: 0x01fa, lo: 0x93, hi: 0x93},\n\t{value: 0x01eb, lo: 0x94, hi: 0x94},\n\t{value: 0x01e8, lo: 0x95, hi: 0x95},\n\t{value: 0x0173, lo: 0x96, hi: 0xa6},\n\t{value: 0x0188, lo: 0xa7, hi: 0xa7},\n\t{value: 0x01a6, lo: 0xa8, hi: 0xae},\n\t{value: 0x045f, lo: 0xaf, hi: 0xaf},\n\t{value: 0x01bb, lo: 0xb0, hi: 0xbf},\n\t// Block 0x97, offset 0x336\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x01eb, lo: 0x80, hi: 0x88},\n\t{value: 0x045b, lo: 0x89, hi: 0x89},\n\t{value: 0x01c7, lo: 0x8a, hi: 0x8a},\n\t{value: 0x01d0, lo: 0x8b, hi: 0x8b},\n\t{value: 0x01d6, lo: 0x8c, hi: 0x8c},\n\t{value: 0x01fa, lo: 0x8d, hi: 0x8d},\n\t{value: 0x01eb, lo: 0x8e, hi: 0x8e},\n\t{value: 0x01e8, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0173, lo: 0x90, hi: 0xa0},\n\t{value: 0x0188, lo: 0xa1, hi: 0xa1},\n\t{value: 0x01a6, lo: 0xa2, hi: 0xa8},\n\t{value: 0x045f, lo: 0xa9, hi: 0xa9},\n\t{value: 0x01bb, lo: 0xaa, hi: 0xbf},\n\t// Block 0x98, offset 0x344\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0x80, hi: 0x86},\n\t{value: 0x8132, lo: 0x88, hi: 0x98},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa1},\n\t{value: 0x8132, lo: 0xa3, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa6, hi: 0xaa},\n\t// Block 0x99, offset 0x34a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x90, hi: 0x96},\n\t// Block 0x9a, offset 0x34c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x84, hi: 0x89},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0x9b, offset 0x34f\n\t{value: 0x0002, lo: 0x09},\n\t{value: 0x0063, lo: 0x80, hi: 0x89},\n\t{value: 0x1951, lo: 0x8a, hi: 0x8a},\n\t{value: 0x1981, lo: 0x8b, hi: 0x8b},\n\t{value: 0x199c, lo: 0x8c, hi: 0x8c},\n\t{value: 0x19a2, lo: 0x8d, hi: 0x8d},\n\t{value: 0x1bc0, lo: 0x8e, hi: 0x8e},\n\t{value: 0x19ae, lo: 0x8f, hi: 0x8f},\n\t{value: 0x197b, lo: 0xaa, hi: 0xaa},\n\t{value: 0x197e, lo: 0xab, hi: 0xab},\n\t// Block 0x9c, offset 0x359\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x193f, lo: 0x90, hi: 0x90},\n\t// Block 0x9d, offset 0x35b\n\t{value: 0x0028, lo: 0x09},\n\t{value: 0x2862, lo: 0x80, hi: 0x80},\n\t{value: 0x2826, lo: 0x81, hi: 0x81},\n\t{value: 0x2830, lo: 0x82, hi: 0x82},\n\t{value: 0x2844, lo: 0x83, hi: 0x84},\n\t{value: 0x284e, lo: 0x85, hi: 0x86},\n\t{value: 0x283a, lo: 0x87, hi: 0x87},\n\t{value: 0x2858, lo: 0x88, hi: 0x88},\n\t{value: 0x0b6f, lo: 0x90, hi: 0x90},\n\t{value: 0x08e7, lo: 0x91, hi: 0x91},\n}\n\n// recompMap: 7520 bytes (entries only)\nvar recompMap map[uint32]rune\nvar recompMapOnce sync.Once\n\nconst recompMapPacked = \"\" +\n\t\"\\x00A\\x03\\x00\\x00\\x00\\x00\\xc0\" + // 0x00410300: 0x000000C0\n\t\"\\x00A\\x03\\x01\\x00\\x00\\x00\\xc1\" + // 0x00410301: 0x000000C1\n\t\"\\x00A\\x03\\x02\\x00\\x00\\x00\\xc2\" + // 0x00410302: 0x000000C2\n\t\"\\x00A\\x03\\x03\\x00\\x00\\x00\\xc3\" + // 0x00410303: 0x000000C3\n\t\"\\x00A\\x03\\b\\x00\\x00\\x00\\xc4\" + // 0x00410308: 0x000000C4\n\t\"\\x00A\\x03\\n\\x00\\x00\\x00\\xc5\" + // 0x0041030A: 0x000000C5\n\t\"\\x00C\\x03'\\x00\\x00\\x00\\xc7\" + // 0x00430327: 0x000000C7\n\t\"\\x00E\\x03\\x00\\x00\\x00\\x00\\xc8\" + // 0x00450300: 0x000000C8\n\t\"\\x00E\\x03\\x01\\x00\\x00\\x00\\xc9\" + // 0x00450301: 0x000000C9\n\t\"\\x00E\\x03\\x02\\x00\\x00\\x00\\xca\" + // 0x00450302: 0x000000CA\n\t\"\\x00E\\x03\\b\\x00\\x00\\x00\\xcb\" + // 0x00450308: 0x000000CB\n\t\"\\x00I\\x03\\x00\\x00\\x00\\x00\\xcc\" + // 0x00490300: 0x000000CC\n\t\"\\x00I\\x03\\x01\\x00\\x00\\x00\\xcd\" + // 0x00490301: 0x000000CD\n\t\"\\x00I\\x03\\x02\\x00\\x00\\x00\\xce\" + // 0x00490302: 0x000000CE\n\t\"\\x00I\\x03\\b\\x00\\x00\\x00\\xcf\" + // 0x00490308: 0x000000CF\n\t\"\\x00N\\x03\\x03\\x00\\x00\\x00\\xd1\" + // 0x004E0303: 0x000000D1\n\t\"\\x00O\\x03\\x00\\x00\\x00\\x00\\xd2\" + // 0x004F0300: 0x000000D2\n\t\"\\x00O\\x03\\x01\\x00\\x00\\x00\\xd3\" + // 0x004F0301: 0x000000D3\n\t\"\\x00O\\x03\\x02\\x00\\x00\\x00\\xd4\" + // 0x004F0302: 0x000000D4\n\t\"\\x00O\\x03\\x03\\x00\\x00\\x00\\xd5\" + // 0x004F0303: 0x000000D5\n\t\"\\x00O\\x03\\b\\x00\\x00\\x00\\xd6\" + // 0x004F0308: 0x000000D6\n\t\"\\x00U\\x03\\x00\\x00\\x00\\x00\\xd9\" + // 0x00550300: 0x000000D9\n\t\"\\x00U\\x03\\x01\\x00\\x00\\x00\\xda\" + // 0x00550301: 0x000000DA\n\t\"\\x00U\\x03\\x02\\x00\\x00\\x00\\xdb\" + // 0x00550302: 0x000000DB\n\t\"\\x00U\\x03\\b\\x00\\x00\\x00\\xdc\" + // 0x00550308: 0x000000DC\n\t\"\\x00Y\\x03\\x01\\x00\\x00\\x00\\xdd\" + // 0x00590301: 0x000000DD\n\t\"\\x00a\\x03\\x00\\x00\\x00\\x00\\xe0\" + // 0x00610300: 0x000000E0\n\t\"\\x00a\\x03\\x01\\x00\\x00\\x00\\xe1\" + // 0x00610301: 0x000000E1\n\t\"\\x00a\\x03\\x02\\x00\\x00\\x00\\xe2\" + // 0x00610302: 0x000000E2\n\t\"\\x00a\\x03\\x03\\x00\\x00\\x00\\xe3\" + // 0x00610303: 0x000000E3\n\t\"\\x00a\\x03\\b\\x00\\x00\\x00\\xe4\" + // 0x00610308: 0x000000E4\n\t\"\\x00a\\x03\\n\\x00\\x00\\x00\\xe5\" + // 0x0061030A: 0x000000E5\n\t\"\\x00c\\x03'\\x00\\x00\\x00\\xe7\" + // 0x00630327: 0x000000E7\n\t\"\\x00e\\x03\\x00\\x00\\x00\\x00\\xe8\" + // 0x00650300: 0x000000E8\n\t\"\\x00e\\x03\\x01\\x00\\x00\\x00\\xe9\" + // 0x00650301: 0x000000E9\n\t\"\\x00e\\x03\\x02\\x00\\x00\\x00\\xea\" + // 0x00650302: 0x000000EA\n\t\"\\x00e\\x03\\b\\x00\\x00\\x00\\xeb\" + // 0x00650308: 0x000000EB\n\t\"\\x00i\\x03\\x00\\x00\\x00\\x00\\xec\" + // 0x00690300: 0x000000EC\n\t\"\\x00i\\x03\\x01\\x00\\x00\\x00\\xed\" + // 0x00690301: 0x000000ED\n\t\"\\x00i\\x03\\x02\\x00\\x00\\x00\\xee\" + // 0x00690302: 0x000000EE\n\t\"\\x00i\\x03\\b\\x00\\x00\\x00\\xef\" + // 0x00690308: 0x000000EF\n\t\"\\x00n\\x03\\x03\\x00\\x00\\x00\\xf1\" + // 0x006E0303: 0x000000F1\n\t\"\\x00o\\x03\\x00\\x00\\x00\\x00\\xf2\" + // 0x006F0300: 0x000000F2\n\t\"\\x00o\\x03\\x01\\x00\\x00\\x00\\xf3\" + // 0x006F0301: 0x000000F3\n\t\"\\x00o\\x03\\x02\\x00\\x00\\x00\\xf4\" + // 0x006F0302: 0x000000F4\n\t\"\\x00o\\x03\\x03\\x00\\x00\\x00\\xf5\" + // 0x006F0303: 0x000000F5\n\t\"\\x00o\\x03\\b\\x00\\x00\\x00\\xf6\" + // 0x006F0308: 0x000000F6\n\t\"\\x00u\\x03\\x00\\x00\\x00\\x00\\xf9\" + // 0x00750300: 0x000000F9\n\t\"\\x00u\\x03\\x01\\x00\\x00\\x00\\xfa\" + // 0x00750301: 0x000000FA\n\t\"\\x00u\\x03\\x02\\x00\\x00\\x00\\xfb\" + // 0x00750302: 0x000000FB\n\t\"\\x00u\\x03\\b\\x00\\x00\\x00\\xfc\" + // 0x00750308: 0x000000FC\n\t\"\\x00y\\x03\\x01\\x00\\x00\\x00\\xfd\" + // 0x00790301: 0x000000FD\n\t\"\\x00y\\x03\\b\\x00\\x00\\x00\\xff\" + // 0x00790308: 0x000000FF\n\t\"\\x00A\\x03\\x04\\x00\\x00\\x01\\x00\" + // 0x00410304: 0x00000100\n\t\"\\x00a\\x03\\x04\\x00\\x00\\x01\\x01\" + // 0x00610304: 0x00000101\n\t\"\\x00A\\x03\\x06\\x00\\x00\\x01\\x02\" + // 0x00410306: 0x00000102\n\t\"\\x00a\\x03\\x06\\x00\\x00\\x01\\x03\" + // 0x00610306: 0x00000103\n\t\"\\x00A\\x03(\\x00\\x00\\x01\\x04\" + // 0x00410328: 0x00000104\n\t\"\\x00a\\x03(\\x00\\x00\\x01\\x05\" + // 0x00610328: 0x00000105\n\t\"\\x00C\\x03\\x01\\x00\\x00\\x01\\x06\" + // 0x00430301: 0x00000106\n\t\"\\x00c\\x03\\x01\\x00\\x00\\x01\\a\" + // 0x00630301: 0x00000107\n\t\"\\x00C\\x03\\x02\\x00\\x00\\x01\\b\" + // 0x00430302: 0x00000108\n\t\"\\x00c\\x03\\x02\\x00\\x00\\x01\\t\" + // 0x00630302: 0x00000109\n\t\"\\x00C\\x03\\a\\x00\\x00\\x01\\n\" + // 0x00430307: 0x0000010A\n\t\"\\x00c\\x03\\a\\x00\\x00\\x01\\v\" + // 0x00630307: 0x0000010B\n\t\"\\x00C\\x03\\f\\x00\\x00\\x01\\f\" + // 0x0043030C: 0x0000010C\n\t\"\\x00c\\x03\\f\\x00\\x00\\x01\\r\" + // 0x0063030C: 0x0000010D\n\t\"\\x00D\\x03\\f\\x00\\x00\\x01\\x0e\" + // 0x0044030C: 0x0000010E\n\t\"\\x00d\\x03\\f\\x00\\x00\\x01\\x0f\" + // 0x0064030C: 0x0000010F\n\t\"\\x00E\\x03\\x04\\x00\\x00\\x01\\x12\" + // 0x00450304: 0x00000112\n\t\"\\x00e\\x03\\x04\\x00\\x00\\x01\\x13\" + // 0x00650304: 0x00000113\n\t\"\\x00E\\x03\\x06\\x00\\x00\\x01\\x14\" + // 0x00450306: 0x00000114\n\t\"\\x00e\\x03\\x06\\x00\\x00\\x01\\x15\" + // 0x00650306: 0x00000115\n\t\"\\x00E\\x03\\a\\x00\\x00\\x01\\x16\" + // 0x00450307: 0x00000116\n\t\"\\x00e\\x03\\a\\x00\\x00\\x01\\x17\" + // 0x00650307: 0x00000117\n\t\"\\x00E\\x03(\\x00\\x00\\x01\\x18\" + // 0x00450328: 0x00000118\n\t\"\\x00e\\x03(\\x00\\x00\\x01\\x19\" + // 0x00650328: 0x00000119\n\t\"\\x00E\\x03\\f\\x00\\x00\\x01\\x1a\" + // 0x0045030C: 0x0000011A\n\t\"\\x00e\\x03\\f\\x00\\x00\\x01\\x1b\" + // 0x0065030C: 0x0000011B\n\t\"\\x00G\\x03\\x02\\x00\\x00\\x01\\x1c\" + // 0x00470302: 0x0000011C\n\t\"\\x00g\\x03\\x02\\x00\\x00\\x01\\x1d\" + // 0x00670302: 0x0000011D\n\t\"\\x00G\\x03\\x06\\x00\\x00\\x01\\x1e\" + // 0x00470306: 0x0000011E\n\t\"\\x00g\\x03\\x06\\x00\\x00\\x01\\x1f\" + // 0x00670306: 0x0000011F\n\t\"\\x00G\\x03\\a\\x00\\x00\\x01 \" + // 0x00470307: 0x00000120\n\t\"\\x00g\\x03\\a\\x00\\x00\\x01!\" + // 0x00670307: 0x00000121\n\t\"\\x00G\\x03'\\x00\\x00\\x01\\\"\" + // 0x00470327: 0x00000122\n\t\"\\x00g\\x03'\\x00\\x00\\x01#\" + // 0x00670327: 0x00000123\n\t\"\\x00H\\x03\\x02\\x00\\x00\\x01$\" + // 0x00480302: 0x00000124\n\t\"\\x00h\\x03\\x02\\x00\\x00\\x01%\" + // 0x00680302: 0x00000125\n\t\"\\x00I\\x03\\x03\\x00\\x00\\x01(\" + // 0x00490303: 0x00000128\n\t\"\\x00i\\x03\\x03\\x00\\x00\\x01)\" + // 0x00690303: 0x00000129\n\t\"\\x00I\\x03\\x04\\x00\\x00\\x01*\" + // 0x00490304: 0x0000012A\n\t\"\\x00i\\x03\\x04\\x00\\x00\\x01+\" + // 0x00690304: 0x0000012B\n\t\"\\x00I\\x03\\x06\\x00\\x00\\x01,\" + // 0x00490306: 0x0000012C\n\t\"\\x00i\\x03\\x06\\x00\\x00\\x01-\" + // 0x00690306: 0x0000012D\n\t\"\\x00I\\x03(\\x00\\x00\\x01.\" + // 0x00490328: 0x0000012E\n\t\"\\x00i\\x03(\\x00\\x00\\x01/\" + // 0x00690328: 0x0000012F\n\t\"\\x00I\\x03\\a\\x00\\x00\\x010\" + // 0x00490307: 0x00000130\n\t\"\\x00J\\x03\\x02\\x00\\x00\\x014\" + // 0x004A0302: 0x00000134\n\t\"\\x00j\\x03\\x02\\x00\\x00\\x015\" + // 0x006A0302: 0x00000135\n\t\"\\x00K\\x03'\\x00\\x00\\x016\" + // 0x004B0327: 0x00000136\n\t\"\\x00k\\x03'\\x00\\x00\\x017\" + // 0x006B0327: 0x00000137\n\t\"\\x00L\\x03\\x01\\x00\\x00\\x019\" + // 0x004C0301: 0x00000139\n\t\"\\x00l\\x03\\x01\\x00\\x00\\x01:\" + // 0x006C0301: 0x0000013A\n\t\"\\x00L\\x03'\\x00\\x00\\x01;\" + // 0x004C0327: 0x0000013B\n\t\"\\x00l\\x03'\\x00\\x00\\x01<\" + // 0x006C0327: 0x0000013C\n\t\"\\x00L\\x03\\f\\x00\\x00\\x01=\" + // 0x004C030C: 0x0000013D\n\t\"\\x00l\\x03\\f\\x00\\x00\\x01>\" + // 0x006C030C: 0x0000013E\n\t\"\\x00N\\x03\\x01\\x00\\x00\\x01C\" + // 0x004E0301: 0x00000143\n\t\"\\x00n\\x03\\x01\\x00\\x00\\x01D\" + // 0x006E0301: 0x00000144\n\t\"\\x00N\\x03'\\x00\\x00\\x01E\" + // 0x004E0327: 0x00000145\n\t\"\\x00n\\x03'\\x00\\x00\\x01F\" + // 0x006E0327: 0x00000146\n\t\"\\x00N\\x03\\f\\x00\\x00\\x01G\" + // 0x004E030C: 0x00000147\n\t\"\\x00n\\x03\\f\\x00\\x00\\x01H\" + // 0x006E030C: 0x00000148\n\t\"\\x00O\\x03\\x04\\x00\\x00\\x01L\" + // 0x004F0304: 0x0000014C\n\t\"\\x00o\\x03\\x04\\x00\\x00\\x01M\" + // 0x006F0304: 0x0000014D\n\t\"\\x00O\\x03\\x06\\x00\\x00\\x01N\" + // 0x004F0306: 0x0000014E\n\t\"\\x00o\\x03\\x06\\x00\\x00\\x01O\" + // 0x006F0306: 0x0000014F\n\t\"\\x00O\\x03\\v\\x00\\x00\\x01P\" + // 0x004F030B: 0x00000150\n\t\"\\x00o\\x03\\v\\x00\\x00\\x01Q\" + // 0x006F030B: 0x00000151\n\t\"\\x00R\\x03\\x01\\x00\\x00\\x01T\" + // 0x00520301: 0x00000154\n\t\"\\x00r\\x03\\x01\\x00\\x00\\x01U\" + // 0x00720301: 0x00000155\n\t\"\\x00R\\x03'\\x00\\x00\\x01V\" + // 0x00520327: 0x00000156\n\t\"\\x00r\\x03'\\x00\\x00\\x01W\" + // 0x00720327: 0x00000157\n\t\"\\x00R\\x03\\f\\x00\\x00\\x01X\" + // 0x0052030C: 0x00000158\n\t\"\\x00r\\x03\\f\\x00\\x00\\x01Y\" + // 0x0072030C: 0x00000159\n\t\"\\x00S\\x03\\x01\\x00\\x00\\x01Z\" + // 0x00530301: 0x0000015A\n\t\"\\x00s\\x03\\x01\\x00\\x00\\x01[\" + // 0x00730301: 0x0000015B\n\t\"\\x00S\\x03\\x02\\x00\\x00\\x01\\\\\" + // 0x00530302: 0x0000015C\n\t\"\\x00s\\x03\\x02\\x00\\x00\\x01]\" + // 0x00730302: 0x0000015D\n\t\"\\x00S\\x03'\\x00\\x00\\x01^\" + // 0x00530327: 0x0000015E\n\t\"\\x00s\\x03'\\x00\\x00\\x01_\" + // 0x00730327: 0x0000015F\n\t\"\\x00S\\x03\\f\\x00\\x00\\x01`\" + // 0x0053030C: 0x00000160\n\t\"\\x00s\\x03\\f\\x00\\x00\\x01a\" + // 0x0073030C: 0x00000161\n\t\"\\x00T\\x03'\\x00\\x00\\x01b\" + // 0x00540327: 0x00000162\n\t\"\\x00t\\x03'\\x00\\x00\\x01c\" + // 0x00740327: 0x00000163\n\t\"\\x00T\\x03\\f\\x00\\x00\\x01d\" + // 0x0054030C: 0x00000164\n\t\"\\x00t\\x03\\f\\x00\\x00\\x01e\" + // 0x0074030C: 0x00000165\n\t\"\\x00U\\x03\\x03\\x00\\x00\\x01h\" + // 0x00550303: 0x00000168\n\t\"\\x00u\\x03\\x03\\x00\\x00\\x01i\" + // 0x00750303: 0x00000169\n\t\"\\x00U\\x03\\x04\\x00\\x00\\x01j\" + // 0x00550304: 0x0000016A\n\t\"\\x00u\\x03\\x04\\x00\\x00\\x01k\" + // 0x00750304: 0x0000016B\n\t\"\\x00U\\x03\\x06\\x00\\x00\\x01l\" + // 0x00550306: 0x0000016C\n\t\"\\x00u\\x03\\x06\\x00\\x00\\x01m\" + // 0x00750306: 0x0000016D\n\t\"\\x00U\\x03\\n\\x00\\x00\\x01n\" + // 0x0055030A: 0x0000016E\n\t\"\\x00u\\x03\\n\\x00\\x00\\x01o\" + // 0x0075030A: 0x0000016F\n\t\"\\x00U\\x03\\v\\x00\\x00\\x01p\" + // 0x0055030B: 0x00000170\n\t\"\\x00u\\x03\\v\\x00\\x00\\x01q\" + // 0x0075030B: 0x00000171\n\t\"\\x00U\\x03(\\x00\\x00\\x01r\" + // 0x00550328: 0x00000172\n\t\"\\x00u\\x03(\\x00\\x00\\x01s\" + // 0x00750328: 0x00000173\n\t\"\\x00W\\x03\\x02\\x00\\x00\\x01t\" + // 0x00570302: 0x00000174\n\t\"\\x00w\\x03\\x02\\x00\\x00\\x01u\" + // 0x00770302: 0x00000175\n\t\"\\x00Y\\x03\\x02\\x00\\x00\\x01v\" + // 0x00590302: 0x00000176\n\t\"\\x00y\\x03\\x02\\x00\\x00\\x01w\" + // 0x00790302: 0x00000177\n\t\"\\x00Y\\x03\\b\\x00\\x00\\x01x\" + // 0x00590308: 0x00000178\n\t\"\\x00Z\\x03\\x01\\x00\\x00\\x01y\" + // 0x005A0301: 0x00000179\n\t\"\\x00z\\x03\\x01\\x00\\x00\\x01z\" + // 0x007A0301: 0x0000017A\n\t\"\\x00Z\\x03\\a\\x00\\x00\\x01{\" + // 0x005A0307: 0x0000017B\n\t\"\\x00z\\x03\\a\\x00\\x00\\x01|\" + // 0x007A0307: 0x0000017C\n\t\"\\x00Z\\x03\\f\\x00\\x00\\x01}\" + // 0x005A030C: 0x0000017D\n\t\"\\x00z\\x03\\f\\x00\\x00\\x01~\" + // 0x007A030C: 0x0000017E\n\t\"\\x00O\\x03\\x1b\\x00\\x00\\x01\\xa0\" + // 0x004F031B: 0x000001A0\n\t\"\\x00o\\x03\\x1b\\x00\\x00\\x01\\xa1\" + // 0x006F031B: 0x000001A1\n\t\"\\x00U\\x03\\x1b\\x00\\x00\\x01\\xaf\" + // 0x0055031B: 0x000001AF\n\t\"\\x00u\\x03\\x1b\\x00\\x00\\x01\\xb0\" + // 0x0075031B: 0x000001B0\n\t\"\\x00A\\x03\\f\\x00\\x00\\x01\\xcd\" + // 0x0041030C: 0x000001CD\n\t\"\\x00a\\x03\\f\\x00\\x00\\x01\\xce\" + // 0x0061030C: 0x000001CE\n\t\"\\x00I\\x03\\f\\x00\\x00\\x01\\xcf\" + // 0x0049030C: 0x000001CF\n\t\"\\x00i\\x03\\f\\x00\\x00\\x01\\xd0\" + // 0x0069030C: 0x000001D0\n\t\"\\x00O\\x03\\f\\x00\\x00\\x01\\xd1\" + // 0x004F030C: 0x000001D1\n\t\"\\x00o\\x03\\f\\x00\\x00\\x01\\xd2\" + // 0x006F030C: 0x000001D2\n\t\"\\x00U\\x03\\f\\x00\\x00\\x01\\xd3\" + // 0x0055030C: 0x000001D3\n\t\"\\x00u\\x03\\f\\x00\\x00\\x01\\xd4\" + // 0x0075030C: 0x000001D4\n\t\"\\x00\\xdc\\x03\\x04\\x00\\x00\\x01\\xd5\" + // 0x00DC0304: 0x000001D5\n\t\"\\x00\\xfc\\x03\\x04\\x00\\x00\\x01\\xd6\" + // 0x00FC0304: 0x000001D6\n\t\"\\x00\\xdc\\x03\\x01\\x00\\x00\\x01\\xd7\" + // 0x00DC0301: 0x000001D7\n\t\"\\x00\\xfc\\x03\\x01\\x00\\x00\\x01\\xd8\" + // 0x00FC0301: 0x000001D8\n\t\"\\x00\\xdc\\x03\\f\\x00\\x00\\x01\\xd9\" + // 0x00DC030C: 0x000001D9\n\t\"\\x00\\xfc\\x03\\f\\x00\\x00\\x01\\xda\" + // 0x00FC030C: 0x000001DA\n\t\"\\x00\\xdc\\x03\\x00\\x00\\x00\\x01\\xdb\" + // 0x00DC0300: 0x000001DB\n\t\"\\x00\\xfc\\x03\\x00\\x00\\x00\\x01\\xdc\" + // 0x00FC0300: 0x000001DC\n\t\"\\x00\\xc4\\x03\\x04\\x00\\x00\\x01\\xde\" + // 0x00C40304: 0x000001DE\n\t\"\\x00\\xe4\\x03\\x04\\x00\\x00\\x01\\xdf\" + // 0x00E40304: 0x000001DF\n\t\"\\x02&\\x03\\x04\\x00\\x00\\x01\\xe0\" + // 0x02260304: 0x000001E0\n\t\"\\x02'\\x03\\x04\\x00\\x00\\x01\\xe1\" + // 0x02270304: 0x000001E1\n\t\"\\x00\\xc6\\x03\\x04\\x00\\x00\\x01\\xe2\" + // 0x00C60304: 0x000001E2\n\t\"\\x00\\xe6\\x03\\x04\\x00\\x00\\x01\\xe3\" + // 0x00E60304: 0x000001E3\n\t\"\\x00G\\x03\\f\\x00\\x00\\x01\\xe6\" + // 0x0047030C: 0x000001E6\n\t\"\\x00g\\x03\\f\\x00\\x00\\x01\\xe7\" + // 0x0067030C: 0x000001E7\n\t\"\\x00K\\x03\\f\\x00\\x00\\x01\\xe8\" + // 0x004B030C: 0x000001E8\n\t\"\\x00k\\x03\\f\\x00\\x00\\x01\\xe9\" + // 0x006B030C: 0x000001E9\n\t\"\\x00O\\x03(\\x00\\x00\\x01\\xea\" + // 0x004F0328: 0x000001EA\n\t\"\\x00o\\x03(\\x00\\x00\\x01\\xeb\" + // 0x006F0328: 0x000001EB\n\t\"\\x01\\xea\\x03\\x04\\x00\\x00\\x01\\xec\" + // 0x01EA0304: 0x000001EC\n\t\"\\x01\\xeb\\x03\\x04\\x00\\x00\\x01\\xed\" + // 0x01EB0304: 0x000001ED\n\t\"\\x01\\xb7\\x03\\f\\x00\\x00\\x01\\xee\" + // 0x01B7030C: 0x000001EE\n\t\"\\x02\\x92\\x03\\f\\x00\\x00\\x01\\xef\" + // 0x0292030C: 0x000001EF\n\t\"\\x00j\\x03\\f\\x00\\x00\\x01\\xf0\" + // 0x006A030C: 0x000001F0\n\t\"\\x00G\\x03\\x01\\x00\\x00\\x01\\xf4\" + // 0x00470301: 0x000001F4\n\t\"\\x00g\\x03\\x01\\x00\\x00\\x01\\xf5\" + // 0x00670301: 0x000001F5\n\t\"\\x00N\\x03\\x00\\x00\\x00\\x01\\xf8\" + // 0x004E0300: 0x000001F8\n\t\"\\x00n\\x03\\x00\\x00\\x00\\x01\\xf9\" + // 0x006E0300: 0x000001F9\n\t\"\\x00\\xc5\\x03\\x01\\x00\\x00\\x01\\xfa\" + // 0x00C50301: 0x000001FA\n\t\"\\x00\\xe5\\x03\\x01\\x00\\x00\\x01\\xfb\" + // 0x00E50301: 0x000001FB\n\t\"\\x00\\xc6\\x03\\x01\\x00\\x00\\x01\\xfc\" + // 0x00C60301: 0x000001FC\n\t\"\\x00\\xe6\\x03\\x01\\x00\\x00\\x01\\xfd\" + // 0x00E60301: 0x000001FD\n\t\"\\x00\\xd8\\x03\\x01\\x00\\x00\\x01\\xfe\" + // 0x00D80301: 0x000001FE\n\t\"\\x00\\xf8\\x03\\x01\\x00\\x00\\x01\\xff\" + // 0x00F80301: 0x000001FF\n\t\"\\x00A\\x03\\x0f\\x00\\x00\\x02\\x00\" + // 0x0041030F: 0x00000200\n\t\"\\x00a\\x03\\x0f\\x00\\x00\\x02\\x01\" + // 0x0061030F: 0x00000201\n\t\"\\x00A\\x03\\x11\\x00\\x00\\x02\\x02\" + // 0x00410311: 0x00000202\n\t\"\\x00a\\x03\\x11\\x00\\x00\\x02\\x03\" + // 0x00610311: 0x00000203\n\t\"\\x00E\\x03\\x0f\\x00\\x00\\x02\\x04\" + // 0x0045030F: 0x00000204\n\t\"\\x00e\\x03\\x0f\\x00\\x00\\x02\\x05\" + // 0x0065030F: 0x00000205\n\t\"\\x00E\\x03\\x11\\x00\\x00\\x02\\x06\" + // 0x00450311: 0x00000206\n\t\"\\x00e\\x03\\x11\\x00\\x00\\x02\\a\" + // 0x00650311: 0x00000207\n\t\"\\x00I\\x03\\x0f\\x00\\x00\\x02\\b\" + // 0x0049030F: 0x00000208\n\t\"\\x00i\\x03\\x0f\\x00\\x00\\x02\\t\" + // 0x0069030F: 0x00000209\n\t\"\\x00I\\x03\\x11\\x00\\x00\\x02\\n\" + // 0x00490311: 0x0000020A\n\t\"\\x00i\\x03\\x11\\x00\\x00\\x02\\v\" + // 0x00690311: 0x0000020B\n\t\"\\x00O\\x03\\x0f\\x00\\x00\\x02\\f\" + // 0x004F030F: 0x0000020C\n\t\"\\x00o\\x03\\x0f\\x00\\x00\\x02\\r\" + // 0x006F030F: 0x0000020D\n\t\"\\x00O\\x03\\x11\\x00\\x00\\x02\\x0e\" + // 0x004F0311: 0x0000020E\n\t\"\\x00o\\x03\\x11\\x00\\x00\\x02\\x0f\" + // 0x006F0311: 0x0000020F\n\t\"\\x00R\\x03\\x0f\\x00\\x00\\x02\\x10\" + // 0x0052030F: 0x00000210\n\t\"\\x00r\\x03\\x0f\\x00\\x00\\x02\\x11\" + // 0x0072030F: 0x00000211\n\t\"\\x00R\\x03\\x11\\x00\\x00\\x02\\x12\" + // 0x00520311: 0x00000212\n\t\"\\x00r\\x03\\x11\\x00\\x00\\x02\\x13\" + // 0x00720311: 0x00000213\n\t\"\\x00U\\x03\\x0f\\x00\\x00\\x02\\x14\" + // 0x0055030F: 0x00000214\n\t\"\\x00u\\x03\\x0f\\x00\\x00\\x02\\x15\" + // 0x0075030F: 0x00000215\n\t\"\\x00U\\x03\\x11\\x00\\x00\\x02\\x16\" + // 0x00550311: 0x00000216\n\t\"\\x00u\\x03\\x11\\x00\\x00\\x02\\x17\" + // 0x00750311: 0x00000217\n\t\"\\x00S\\x03&\\x00\\x00\\x02\\x18\" + // 0x00530326: 0x00000218\n\t\"\\x00s\\x03&\\x00\\x00\\x02\\x19\" + // 0x00730326: 0x00000219\n\t\"\\x00T\\x03&\\x00\\x00\\x02\\x1a\" + // 0x00540326: 0x0000021A\n\t\"\\x00t\\x03&\\x00\\x00\\x02\\x1b\" + // 0x00740326: 0x0000021B\n\t\"\\x00H\\x03\\f\\x00\\x00\\x02\\x1e\" + // 0x0048030C: 0x0000021E\n\t\"\\x00h\\x03\\f\\x00\\x00\\x02\\x1f\" + // 0x0068030C: 0x0000021F\n\t\"\\x00A\\x03\\a\\x00\\x00\\x02&\" + // 0x00410307: 0x00000226\n\t\"\\x00a\\x03\\a\\x00\\x00\\x02'\" + // 0x00610307: 0x00000227\n\t\"\\x00E\\x03'\\x00\\x00\\x02(\" + // 0x00450327: 0x00000228\n\t\"\\x00e\\x03'\\x00\\x00\\x02)\" + // 0x00650327: 0x00000229\n\t\"\\x00\\xd6\\x03\\x04\\x00\\x00\\x02*\" + // 0x00D60304: 0x0000022A\n\t\"\\x00\\xf6\\x03\\x04\\x00\\x00\\x02+\" + // 0x00F60304: 0x0000022B\n\t\"\\x00\\xd5\\x03\\x04\\x00\\x00\\x02,\" + // 0x00D50304: 0x0000022C\n\t\"\\x00\\xf5\\x03\\x04\\x00\\x00\\x02-\" + // 0x00F50304: 0x0000022D\n\t\"\\x00O\\x03\\a\\x00\\x00\\x02.\" + // 0x004F0307: 0x0000022E\n\t\"\\x00o\\x03\\a\\x00\\x00\\x02/\" + // 0x006F0307: 0x0000022F\n\t\"\\x02.\\x03\\x04\\x00\\x00\\x020\" + // 0x022E0304: 0x00000230\n\t\"\\x02/\\x03\\x04\\x00\\x00\\x021\" + // 0x022F0304: 0x00000231\n\t\"\\x00Y\\x03\\x04\\x00\\x00\\x022\" + // 0x00590304: 0x00000232\n\t\"\\x00y\\x03\\x04\\x00\\x00\\x023\" + // 0x00790304: 0x00000233\n\t\"\\x00\\xa8\\x03\\x01\\x00\\x00\\x03\\x85\" + // 0x00A80301: 0x00000385\n\t\"\\x03\\x91\\x03\\x01\\x00\\x00\\x03\\x86\" + // 0x03910301: 0x00000386\n\t\"\\x03\\x95\\x03\\x01\\x00\\x00\\x03\\x88\" + // 0x03950301: 0x00000388\n\t\"\\x03\\x97\\x03\\x01\\x00\\x00\\x03\\x89\" + // 0x03970301: 0x00000389\n\t\"\\x03\\x99\\x03\\x01\\x00\\x00\\x03\\x8a\" + // 0x03990301: 0x0000038A\n\t\"\\x03\\x9f\\x03\\x01\\x00\\x00\\x03\\x8c\" + // 0x039F0301: 0x0000038C\n\t\"\\x03\\xa5\\x03\\x01\\x00\\x00\\x03\\x8e\" + // 0x03A50301: 0x0000038E\n\t\"\\x03\\xa9\\x03\\x01\\x00\\x00\\x03\\x8f\" + // 0x03A90301: 0x0000038F\n\t\"\\x03\\xca\\x03\\x01\\x00\\x00\\x03\\x90\" + // 0x03CA0301: 0x00000390\n\t\"\\x03\\x99\\x03\\b\\x00\\x00\\x03\\xaa\" + // 0x03990308: 0x000003AA\n\t\"\\x03\\xa5\\x03\\b\\x00\\x00\\x03\\xab\" + // 0x03A50308: 0x000003AB\n\t\"\\x03\\xb1\\x03\\x01\\x00\\x00\\x03\\xac\" + // 0x03B10301: 0x000003AC\n\t\"\\x03\\xb5\\x03\\x01\\x00\\x00\\x03\\xad\" + // 0x03B50301: 0x000003AD\n\t\"\\x03\\xb7\\x03\\x01\\x00\\x00\\x03\\xae\" + // 0x03B70301: 0x000003AE\n\t\"\\x03\\xb9\\x03\\x01\\x00\\x00\\x03\\xaf\" + // 0x03B90301: 0x000003AF\n\t\"\\x03\\xcb\\x03\\x01\\x00\\x00\\x03\\xb0\" + // 0x03CB0301: 0x000003B0\n\t\"\\x03\\xb9\\x03\\b\\x00\\x00\\x03\\xca\" + // 0x03B90308: 0x000003CA\n\t\"\\x03\\xc5\\x03\\b\\x00\\x00\\x03\\xcb\" + // 0x03C50308: 0x000003CB\n\t\"\\x03\\xbf\\x03\\x01\\x00\\x00\\x03\\xcc\" + // 0x03BF0301: 0x000003CC\n\t\"\\x03\\xc5\\x03\\x01\\x00\\x00\\x03\\xcd\" + // 0x03C50301: 0x000003CD\n\t\"\\x03\\xc9\\x03\\x01\\x00\\x00\\x03\\xce\" + // 0x03C90301: 0x000003CE\n\t\"\\x03\\xd2\\x03\\x01\\x00\\x00\\x03\\xd3\" + // 0x03D20301: 0x000003D3\n\t\"\\x03\\xd2\\x03\\b\\x00\\x00\\x03\\xd4\" + // 0x03D20308: 0x000003D4\n\t\"\\x04\\x15\\x03\\x00\\x00\\x00\\x04\\x00\" + // 0x04150300: 0x00000400\n\t\"\\x04\\x15\\x03\\b\\x00\\x00\\x04\\x01\" + // 0x04150308: 0x00000401\n\t\"\\x04\\x13\\x03\\x01\\x00\\x00\\x04\\x03\" + // 0x04130301: 0x00000403\n\t\"\\x04\\x06\\x03\\b\\x00\\x00\\x04\\a\" + // 0x04060308: 0x00000407\n\t\"\\x04\\x1a\\x03\\x01\\x00\\x00\\x04\\f\" + // 0x041A0301: 0x0000040C\n\t\"\\x04\\x18\\x03\\x00\\x00\\x00\\x04\\r\" + // 0x04180300: 0x0000040D\n\t\"\\x04#\\x03\\x06\\x00\\x00\\x04\\x0e\" + // 0x04230306: 0x0000040E\n\t\"\\x04\\x18\\x03\\x06\\x00\\x00\\x04\\x19\" + // 0x04180306: 0x00000419\n\t\"\\x048\\x03\\x06\\x00\\x00\\x049\" + // 0x04380306: 0x00000439\n\t\"\\x045\\x03\\x00\\x00\\x00\\x04P\" + // 0x04350300: 0x00000450\n\t\"\\x045\\x03\\b\\x00\\x00\\x04Q\" + // 0x04350308: 0x00000451\n\t\"\\x043\\x03\\x01\\x00\\x00\\x04S\" + // 0x04330301: 0x00000453\n\t\"\\x04V\\x03\\b\\x00\\x00\\x04W\" + // 0x04560308: 0x00000457\n\t\"\\x04:\\x03\\x01\\x00\\x00\\x04\\\\\" + // 0x043A0301: 0x0000045C\n\t\"\\x048\\x03\\x00\\x00\\x00\\x04]\" + // 0x04380300: 0x0000045D\n\t\"\\x04C\\x03\\x06\\x00\\x00\\x04^\" + // 0x04430306: 0x0000045E\n\t\"\\x04t\\x03\\x0f\\x00\\x00\\x04v\" + // 0x0474030F: 0x00000476\n\t\"\\x04u\\x03\\x0f\\x00\\x00\\x04w\" + // 0x0475030F: 0x00000477\n\t\"\\x04\\x16\\x03\\x06\\x00\\x00\\x04\\xc1\" + // 0x04160306: 0x000004C1\n\t\"\\x046\\x03\\x06\\x00\\x00\\x04\\xc2\" + // 0x04360306: 0x000004C2\n\t\"\\x04\\x10\\x03\\x06\\x00\\x00\\x04\\xd0\" + // 0x04100306: 0x000004D0\n\t\"\\x040\\x03\\x06\\x00\\x00\\x04\\xd1\" + // 0x04300306: 0x000004D1\n\t\"\\x04\\x10\\x03\\b\\x00\\x00\\x04\\xd2\" + // 0x04100308: 0x000004D2\n\t\"\\x040\\x03\\b\\x00\\x00\\x04\\xd3\" + // 0x04300308: 0x000004D3\n\t\"\\x04\\x15\\x03\\x06\\x00\\x00\\x04\\xd6\" + // 0x04150306: 0x000004D6\n\t\"\\x045\\x03\\x06\\x00\\x00\\x04\\xd7\" + // 0x04350306: 0x000004D7\n\t\"\\x04\\xd8\\x03\\b\\x00\\x00\\x04\\xda\" + // 0x04D80308: 0x000004DA\n\t\"\\x04\\xd9\\x03\\b\\x00\\x00\\x04\\xdb\" + // 0x04D90308: 0x000004DB\n\t\"\\x04\\x16\\x03\\b\\x00\\x00\\x04\\xdc\" + // 0x04160308: 0x000004DC\n\t\"\\x046\\x03\\b\\x00\\x00\\x04\\xdd\" + // 0x04360308: 0x000004DD\n\t\"\\x04\\x17\\x03\\b\\x00\\x00\\x04\\xde\" + // 0x04170308: 0x000004DE\n\t\"\\x047\\x03\\b\\x00\\x00\\x04\\xdf\" + // 0x04370308: 0x000004DF\n\t\"\\x04\\x18\\x03\\x04\\x00\\x00\\x04\\xe2\" + // 0x04180304: 0x000004E2\n\t\"\\x048\\x03\\x04\\x00\\x00\\x04\\xe3\" + // 0x04380304: 0x000004E3\n\t\"\\x04\\x18\\x03\\b\\x00\\x00\\x04\\xe4\" + // 0x04180308: 0x000004E4\n\t\"\\x048\\x03\\b\\x00\\x00\\x04\\xe5\" + // 0x04380308: 0x000004E5\n\t\"\\x04\\x1e\\x03\\b\\x00\\x00\\x04\\xe6\" + // 0x041E0308: 0x000004E6\n\t\"\\x04>\\x03\\b\\x00\\x00\\x04\\xe7\" + // 0x043E0308: 0x000004E7\n\t\"\\x04\\xe8\\x03\\b\\x00\\x00\\x04\\xea\" + // 0x04E80308: 0x000004EA\n\t\"\\x04\\xe9\\x03\\b\\x00\\x00\\x04\\xeb\" + // 0x04E90308: 0x000004EB\n\t\"\\x04-\\x03\\b\\x00\\x00\\x04\\xec\" + // 0x042D0308: 0x000004EC\n\t\"\\x04M\\x03\\b\\x00\\x00\\x04\\xed\" + // 0x044D0308: 0x000004ED\n\t\"\\x04#\\x03\\x04\\x00\\x00\\x04\\xee\" + // 0x04230304: 0x000004EE\n\t\"\\x04C\\x03\\x04\\x00\\x00\\x04\\xef\" + // 0x04430304: 0x000004EF\n\t\"\\x04#\\x03\\b\\x00\\x00\\x04\\xf0\" + // 0x04230308: 0x000004F0\n\t\"\\x04C\\x03\\b\\x00\\x00\\x04\\xf1\" + // 0x04430308: 0x000004F1\n\t\"\\x04#\\x03\\v\\x00\\x00\\x04\\xf2\" + // 0x0423030B: 0x000004F2\n\t\"\\x04C\\x03\\v\\x00\\x00\\x04\\xf3\" + // 0x0443030B: 0x000004F3\n\t\"\\x04'\\x03\\b\\x00\\x00\\x04\\xf4\" + // 0x04270308: 0x000004F4\n\t\"\\x04G\\x03\\b\\x00\\x00\\x04\\xf5\" + // 0x04470308: 0x000004F5\n\t\"\\x04+\\x03\\b\\x00\\x00\\x04\\xf8\" + // 0x042B0308: 0x000004F8\n\t\"\\x04K\\x03\\b\\x00\\x00\\x04\\xf9\" + // 0x044B0308: 0x000004F9\n\t\"\\x06'\\x06S\\x00\\x00\\x06\\\"\" + // 0x06270653: 0x00000622\n\t\"\\x06'\\x06T\\x00\\x00\\x06#\" + // 0x06270654: 0x00000623\n\t\"\\x06H\\x06T\\x00\\x00\\x06$\" + // 0x06480654: 0x00000624\n\t\"\\x06'\\x06U\\x00\\x00\\x06%\" + // 0x06270655: 0x00000625\n\t\"\\x06J\\x06T\\x00\\x00\\x06&\" + // 0x064A0654: 0x00000626\n\t\"\\x06\\xd5\\x06T\\x00\\x00\\x06\\xc0\" + // 0x06D50654: 0x000006C0\n\t\"\\x06\\xc1\\x06T\\x00\\x00\\x06\\xc2\" + // 0x06C10654: 0x000006C2\n\t\"\\x06\\xd2\\x06T\\x00\\x00\\x06\\xd3\" + // 0x06D20654: 0x000006D3\n\t\"\\t(\\t<\\x00\\x00\\t)\" + // 0x0928093C: 0x00000929\n\t\"\\t0\\t<\\x00\\x00\\t1\" + // 0x0930093C: 0x00000931\n\t\"\\t3\\t<\\x00\\x00\\t4\" + // 0x0933093C: 0x00000934\n\t\"\\t\\xc7\\t\\xbe\\x00\\x00\\t\\xcb\" + // 0x09C709BE: 0x000009CB\n\t\"\\t\\xc7\\t\\xd7\\x00\\x00\\t\\xcc\" + // 0x09C709D7: 0x000009CC\n\t\"\\vG\\vV\\x00\\x00\\vH\" + // 0x0B470B56: 0x00000B48\n\t\"\\vG\\v>\\x00\\x00\\vK\" + // 0x0B470B3E: 0x00000B4B\n\t\"\\vG\\vW\\x00\\x00\\vL\" + // 0x0B470B57: 0x00000B4C\n\t\"\\v\\x92\\v\\xd7\\x00\\x00\\v\\x94\" + // 0x0B920BD7: 0x00000B94\n\t\"\\v\\xc6\\v\\xbe\\x00\\x00\\v\\xca\" + // 0x0BC60BBE: 0x00000BCA\n\t\"\\v\\xc7\\v\\xbe\\x00\\x00\\v\\xcb\" + // 0x0BC70BBE: 0x00000BCB\n\t\"\\v\\xc6\\v\\xd7\\x00\\x00\\v\\xcc\" + // 0x0BC60BD7: 0x00000BCC\n\t\"\\fF\\fV\\x00\\x00\\fH\" + // 0x0C460C56: 0x00000C48\n\t\"\\f\\xbf\\f\\xd5\\x00\\x00\\f\\xc0\" + // 0x0CBF0CD5: 0x00000CC0\n\t\"\\f\\xc6\\f\\xd5\\x00\\x00\\f\\xc7\" + // 0x0CC60CD5: 0x00000CC7\n\t\"\\f\\xc6\\f\\xd6\\x00\\x00\\f\\xc8\" + // 0x0CC60CD6: 0x00000CC8\n\t\"\\f\\xc6\\f\\xc2\\x00\\x00\\f\\xca\" + // 0x0CC60CC2: 0x00000CCA\n\t\"\\f\\xca\\f\\xd5\\x00\\x00\\f\\xcb\" + // 0x0CCA0CD5: 0x00000CCB\n\t\"\\rF\\r>\\x00\\x00\\rJ\" + // 0x0D460D3E: 0x00000D4A\n\t\"\\rG\\r>\\x00\\x00\\rK\" + // 0x0D470D3E: 0x00000D4B\n\t\"\\rF\\rW\\x00\\x00\\rL\" + // 0x0D460D57: 0x00000D4C\n\t\"\\r\\xd9\\r\\xca\\x00\\x00\\r\\xda\" + // 0x0DD90DCA: 0x00000DDA\n\t\"\\r\\xd9\\r\\xcf\\x00\\x00\\r\\xdc\" + // 0x0DD90DCF: 0x00000DDC\n\t\"\\r\\xdc\\r\\xca\\x00\\x00\\r\\xdd\" + // 0x0DDC0DCA: 0x00000DDD\n\t\"\\r\\xd9\\r\\xdf\\x00\\x00\\r\\xde\" + // 0x0DD90DDF: 0x00000DDE\n\t\"\\x10%\\x10.\\x00\\x00\\x10&\" + // 0x1025102E: 0x00001026\n\t\"\\x1b\\x05\\x1b5\\x00\\x00\\x1b\\x06\" + // 0x1B051B35: 0x00001B06\n\t\"\\x1b\\a\\x1b5\\x00\\x00\\x1b\\b\" + // 0x1B071B35: 0x00001B08\n\t\"\\x1b\\t\\x1b5\\x00\\x00\\x1b\\n\" + // 0x1B091B35: 0x00001B0A\n\t\"\\x1b\\v\\x1b5\\x00\\x00\\x1b\\f\" + // 0x1B0B1B35: 0x00001B0C\n\t\"\\x1b\\r\\x1b5\\x00\\x00\\x1b\\x0e\" + // 0x1B0D1B35: 0x00001B0E\n\t\"\\x1b\\x11\\x1b5\\x00\\x00\\x1b\\x12\" + // 0x1B111B35: 0x00001B12\n\t\"\\x1b:\\x1b5\\x00\\x00\\x1b;\" + // 0x1B3A1B35: 0x00001B3B\n\t\"\\x1b<\\x1b5\\x00\\x00\\x1b=\" + // 0x1B3C1B35: 0x00001B3D\n\t\"\\x1b>\\x1b5\\x00\\x00\\x1b@\" + // 0x1B3E1B35: 0x00001B40\n\t\"\\x1b?\\x1b5\\x00\\x00\\x1bA\" + // 0x1B3F1B35: 0x00001B41\n\t\"\\x1bB\\x1b5\\x00\\x00\\x1bC\" + // 0x1B421B35: 0x00001B43\n\t\"\\x00A\\x03%\\x00\\x00\\x1e\\x00\" + // 0x00410325: 0x00001E00\n\t\"\\x00a\\x03%\\x00\\x00\\x1e\\x01\" + // 0x00610325: 0x00001E01\n\t\"\\x00B\\x03\\a\\x00\\x00\\x1e\\x02\" + // 0x00420307: 0x00001E02\n\t\"\\x00b\\x03\\a\\x00\\x00\\x1e\\x03\" + // 0x00620307: 0x00001E03\n\t\"\\x00B\\x03#\\x00\\x00\\x1e\\x04\" + // 0x00420323: 0x00001E04\n\t\"\\x00b\\x03#\\x00\\x00\\x1e\\x05\" + // 0x00620323: 0x00001E05\n\t\"\\x00B\\x031\\x00\\x00\\x1e\\x06\" + // 0x00420331: 0x00001E06\n\t\"\\x00b\\x031\\x00\\x00\\x1e\\a\" + // 0x00620331: 0x00001E07\n\t\"\\x00\\xc7\\x03\\x01\\x00\\x00\\x1e\\b\" + // 0x00C70301: 0x00001E08\n\t\"\\x00\\xe7\\x03\\x01\\x00\\x00\\x1e\\t\" + // 0x00E70301: 0x00001E09\n\t\"\\x00D\\x03\\a\\x00\\x00\\x1e\\n\" + // 0x00440307: 0x00001E0A\n\t\"\\x00d\\x03\\a\\x00\\x00\\x1e\\v\" + // 0x00640307: 0x00001E0B\n\t\"\\x00D\\x03#\\x00\\x00\\x1e\\f\" + // 0x00440323: 0x00001E0C\n\t\"\\x00d\\x03#\\x00\\x00\\x1e\\r\" + // 0x00640323: 0x00001E0D\n\t\"\\x00D\\x031\\x00\\x00\\x1e\\x0e\" + // 0x00440331: 0x00001E0E\n\t\"\\x00d\\x031\\x00\\x00\\x1e\\x0f\" + // 0x00640331: 0x00001E0F\n\t\"\\x00D\\x03'\\x00\\x00\\x1e\\x10\" + // 0x00440327: 0x00001E10\n\t\"\\x00d\\x03'\\x00\\x00\\x1e\\x11\" + // 0x00640327: 0x00001E11\n\t\"\\x00D\\x03-\\x00\\x00\\x1e\\x12\" + // 0x0044032D: 0x00001E12\n\t\"\\x00d\\x03-\\x00\\x00\\x1e\\x13\" + // 0x0064032D: 0x00001E13\n\t\"\\x01\\x12\\x03\\x00\\x00\\x00\\x1e\\x14\" + // 0x01120300: 0x00001E14\n\t\"\\x01\\x13\\x03\\x00\\x00\\x00\\x1e\\x15\" + // 0x01130300: 0x00001E15\n\t\"\\x01\\x12\\x03\\x01\\x00\\x00\\x1e\\x16\" + // 0x01120301: 0x00001E16\n\t\"\\x01\\x13\\x03\\x01\\x00\\x00\\x1e\\x17\" + // 0x01130301: 0x00001E17\n\t\"\\x00E\\x03-\\x00\\x00\\x1e\\x18\" + // 0x0045032D: 0x00001E18\n\t\"\\x00e\\x03-\\x00\\x00\\x1e\\x19\" + // 0x0065032D: 0x00001E19\n\t\"\\x00E\\x030\\x00\\x00\\x1e\\x1a\" + // 0x00450330: 0x00001E1A\n\t\"\\x00e\\x030\\x00\\x00\\x1e\\x1b\" + // 0x00650330: 0x00001E1B\n\t\"\\x02(\\x03\\x06\\x00\\x00\\x1e\\x1c\" + // 0x02280306: 0x00001E1C\n\t\"\\x02)\\x03\\x06\\x00\\x00\\x1e\\x1d\" + // 0x02290306: 0x00001E1D\n\t\"\\x00F\\x03\\a\\x00\\x00\\x1e\\x1e\" + // 0x00460307: 0x00001E1E\n\t\"\\x00f\\x03\\a\\x00\\x00\\x1e\\x1f\" + // 0x00660307: 0x00001E1F\n\t\"\\x00G\\x03\\x04\\x00\\x00\\x1e \" + // 0x00470304: 0x00001E20\n\t\"\\x00g\\x03\\x04\\x00\\x00\\x1e!\" + // 0x00670304: 0x00001E21\n\t\"\\x00H\\x03\\a\\x00\\x00\\x1e\\\"\" + // 0x00480307: 0x00001E22\n\t\"\\x00h\\x03\\a\\x00\\x00\\x1e#\" + // 0x00680307: 0x00001E23\n\t\"\\x00H\\x03#\\x00\\x00\\x1e$\" + // 0x00480323: 0x00001E24\n\t\"\\x00h\\x03#\\x00\\x00\\x1e%\" + // 0x00680323: 0x00001E25\n\t\"\\x00H\\x03\\b\\x00\\x00\\x1e&\" + // 0x00480308: 0x00001E26\n\t\"\\x00h\\x03\\b\\x00\\x00\\x1e'\" + // 0x00680308: 0x00001E27\n\t\"\\x00H\\x03'\\x00\\x00\\x1e(\" + // 0x00480327: 0x00001E28\n\t\"\\x00h\\x03'\\x00\\x00\\x1e)\" + // 0x00680327: 0x00001E29\n\t\"\\x00H\\x03.\\x00\\x00\\x1e*\" + // 0x0048032E: 0x00001E2A\n\t\"\\x00h\\x03.\\x00\\x00\\x1e+\" + // 0x0068032E: 0x00001E2B\n\t\"\\x00I\\x030\\x00\\x00\\x1e,\" + // 0x00490330: 0x00001E2C\n\t\"\\x00i\\x030\\x00\\x00\\x1e-\" + // 0x00690330: 0x00001E2D\n\t\"\\x00\\xcf\\x03\\x01\\x00\\x00\\x1e.\" + // 0x00CF0301: 0x00001E2E\n\t\"\\x00\\xef\\x03\\x01\\x00\\x00\\x1e/\" + // 0x00EF0301: 0x00001E2F\n\t\"\\x00K\\x03\\x01\\x00\\x00\\x1e0\" + // 0x004B0301: 0x00001E30\n\t\"\\x00k\\x03\\x01\\x00\\x00\\x1e1\" + // 0x006B0301: 0x00001E31\n\t\"\\x00K\\x03#\\x00\\x00\\x1e2\" + // 0x004B0323: 0x00001E32\n\t\"\\x00k\\x03#\\x00\\x00\\x1e3\" + // 0x006B0323: 0x00001E33\n\t\"\\x00K\\x031\\x00\\x00\\x1e4\" + // 0x004B0331: 0x00001E34\n\t\"\\x00k\\x031\\x00\\x00\\x1e5\" + // 0x006B0331: 0x00001E35\n\t\"\\x00L\\x03#\\x00\\x00\\x1e6\" + // 0x004C0323: 0x00001E36\n\t\"\\x00l\\x03#\\x00\\x00\\x1e7\" + // 0x006C0323: 0x00001E37\n\t\"\\x1e6\\x03\\x04\\x00\\x00\\x1e8\" + // 0x1E360304: 0x00001E38\n\t\"\\x1e7\\x03\\x04\\x00\\x00\\x1e9\" + // 0x1E370304: 0x00001E39\n\t\"\\x00L\\x031\\x00\\x00\\x1e:\" + // 0x004C0331: 0x00001E3A\n\t\"\\x00l\\x031\\x00\\x00\\x1e;\" + // 0x006C0331: 0x00001E3B\n\t\"\\x00L\\x03-\\x00\\x00\\x1e<\" + // 0x004C032D: 0x00001E3C\n\t\"\\x00l\\x03-\\x00\\x00\\x1e=\" + // 0x006C032D: 0x00001E3D\n\t\"\\x00M\\x03\\x01\\x00\\x00\\x1e>\" + // 0x004D0301: 0x00001E3E\n\t\"\\x00m\\x03\\x01\\x00\\x00\\x1e?\" + // 0x006D0301: 0x00001E3F\n\t\"\\x00M\\x03\\a\\x00\\x00\\x1e@\" + // 0x004D0307: 0x00001E40\n\t\"\\x00m\\x03\\a\\x00\\x00\\x1eA\" + // 0x006D0307: 0x00001E41\n\t\"\\x00M\\x03#\\x00\\x00\\x1eB\" + // 0x004D0323: 0x00001E42\n\t\"\\x00m\\x03#\\x00\\x00\\x1eC\" + // 0x006D0323: 0x00001E43\n\t\"\\x00N\\x03\\a\\x00\\x00\\x1eD\" + // 0x004E0307: 0x00001E44\n\t\"\\x00n\\x03\\a\\x00\\x00\\x1eE\" + // 0x006E0307: 0x00001E45\n\t\"\\x00N\\x03#\\x00\\x00\\x1eF\" + // 0x004E0323: 0x00001E46\n\t\"\\x00n\\x03#\\x00\\x00\\x1eG\" + // 0x006E0323: 0x00001E47\n\t\"\\x00N\\x031\\x00\\x00\\x1eH\" + // 0x004E0331: 0x00001E48\n\t\"\\x00n\\x031\\x00\\x00\\x1eI\" + // 0x006E0331: 0x00001E49\n\t\"\\x00N\\x03-\\x00\\x00\\x1eJ\" + // 0x004E032D: 0x00001E4A\n\t\"\\x00n\\x03-\\x00\\x00\\x1eK\" + // 0x006E032D: 0x00001E4B\n\t\"\\x00\\xd5\\x03\\x01\\x00\\x00\\x1eL\" + // 0x00D50301: 0x00001E4C\n\t\"\\x00\\xf5\\x03\\x01\\x00\\x00\\x1eM\" + // 0x00F50301: 0x00001E4D\n\t\"\\x00\\xd5\\x03\\b\\x00\\x00\\x1eN\" + // 0x00D50308: 0x00001E4E\n\t\"\\x00\\xf5\\x03\\b\\x00\\x00\\x1eO\" + // 0x00F50308: 0x00001E4F\n\t\"\\x01L\\x03\\x00\\x00\\x00\\x1eP\" + // 0x014C0300: 0x00001E50\n\t\"\\x01M\\x03\\x00\\x00\\x00\\x1eQ\" + // 0x014D0300: 0x00001E51\n\t\"\\x01L\\x03\\x01\\x00\\x00\\x1eR\" + // 0x014C0301: 0x00001E52\n\t\"\\x01M\\x03\\x01\\x00\\x00\\x1eS\" + // 0x014D0301: 0x00001E53\n\t\"\\x00P\\x03\\x01\\x00\\x00\\x1eT\" + // 0x00500301: 0x00001E54\n\t\"\\x00p\\x03\\x01\\x00\\x00\\x1eU\" + // 0x00700301: 0x00001E55\n\t\"\\x00P\\x03\\a\\x00\\x00\\x1eV\" + // 0x00500307: 0x00001E56\n\t\"\\x00p\\x03\\a\\x00\\x00\\x1eW\" + // 0x00700307: 0x00001E57\n\t\"\\x00R\\x03\\a\\x00\\x00\\x1eX\" + // 0x00520307: 0x00001E58\n\t\"\\x00r\\x03\\a\\x00\\x00\\x1eY\" + // 0x00720307: 0x00001E59\n\t\"\\x00R\\x03#\\x00\\x00\\x1eZ\" + // 0x00520323: 0x00001E5A\n\t\"\\x00r\\x03#\\x00\\x00\\x1e[\" + // 0x00720323: 0x00001E5B\n\t\"\\x1eZ\\x03\\x04\\x00\\x00\\x1e\\\\\" + // 0x1E5A0304: 0x00001E5C\n\t\"\\x1e[\\x03\\x04\\x00\\x00\\x1e]\" + // 0x1E5B0304: 0x00001E5D\n\t\"\\x00R\\x031\\x00\\x00\\x1e^\" + // 0x00520331: 0x00001E5E\n\t\"\\x00r\\x031\\x00\\x00\\x1e_\" + // 0x00720331: 0x00001E5F\n\t\"\\x00S\\x03\\a\\x00\\x00\\x1e`\" + // 0x00530307: 0x00001E60\n\t\"\\x00s\\x03\\a\\x00\\x00\\x1ea\" + // 0x00730307: 0x00001E61\n\t\"\\x00S\\x03#\\x00\\x00\\x1eb\" + // 0x00530323: 0x00001E62\n\t\"\\x00s\\x03#\\x00\\x00\\x1ec\" + // 0x00730323: 0x00001E63\n\t\"\\x01Z\\x03\\a\\x00\\x00\\x1ed\" + // 0x015A0307: 0x00001E64\n\t\"\\x01[\\x03\\a\\x00\\x00\\x1ee\" + // 0x015B0307: 0x00001E65\n\t\"\\x01`\\x03\\a\\x00\\x00\\x1ef\" + // 0x01600307: 0x00001E66\n\t\"\\x01a\\x03\\a\\x00\\x00\\x1eg\" + // 0x01610307: 0x00001E67\n\t\"\\x1eb\\x03\\a\\x00\\x00\\x1eh\" + // 0x1E620307: 0x00001E68\n\t\"\\x1ec\\x03\\a\\x00\\x00\\x1ei\" + // 0x1E630307: 0x00001E69\n\t\"\\x00T\\x03\\a\\x00\\x00\\x1ej\" + // 0x00540307: 0x00001E6A\n\t\"\\x00t\\x03\\a\\x00\\x00\\x1ek\" + // 0x00740307: 0x00001E6B\n\t\"\\x00T\\x03#\\x00\\x00\\x1el\" + // 0x00540323: 0x00001E6C\n\t\"\\x00t\\x03#\\x00\\x00\\x1em\" + // 0x00740323: 0x00001E6D\n\t\"\\x00T\\x031\\x00\\x00\\x1en\" + // 0x00540331: 0x00001E6E\n\t\"\\x00t\\x031\\x00\\x00\\x1eo\" + // 0x00740331: 0x00001E6F\n\t\"\\x00T\\x03-\\x00\\x00\\x1ep\" + // 0x0054032D: 0x00001E70\n\t\"\\x00t\\x03-\\x00\\x00\\x1eq\" + // 0x0074032D: 0x00001E71\n\t\"\\x00U\\x03$\\x00\\x00\\x1er\" + // 0x00550324: 0x00001E72\n\t\"\\x00u\\x03$\\x00\\x00\\x1es\" + // 0x00750324: 0x00001E73\n\t\"\\x00U\\x030\\x00\\x00\\x1et\" + // 0x00550330: 0x00001E74\n\t\"\\x00u\\x030\\x00\\x00\\x1eu\" + // 0x00750330: 0x00001E75\n\t\"\\x00U\\x03-\\x00\\x00\\x1ev\" + // 0x0055032D: 0x00001E76\n\t\"\\x00u\\x03-\\x00\\x00\\x1ew\" + // 0x0075032D: 0x00001E77\n\t\"\\x01h\\x03\\x01\\x00\\x00\\x1ex\" + // 0x01680301: 0x00001E78\n\t\"\\x01i\\x03\\x01\\x00\\x00\\x1ey\" + // 0x01690301: 0x00001E79\n\t\"\\x01j\\x03\\b\\x00\\x00\\x1ez\" + // 0x016A0308: 0x00001E7A\n\t\"\\x01k\\x03\\b\\x00\\x00\\x1e{\" + // 0x016B0308: 0x00001E7B\n\t\"\\x00V\\x03\\x03\\x00\\x00\\x1e|\" + // 0x00560303: 0x00001E7C\n\t\"\\x00v\\x03\\x03\\x00\\x00\\x1e}\" + // 0x00760303: 0x00001E7D\n\t\"\\x00V\\x03#\\x00\\x00\\x1e~\" + // 0x00560323: 0x00001E7E\n\t\"\\x00v\\x03#\\x00\\x00\\x1e\\u007f\" + // 0x00760323: 0x00001E7F\n\t\"\\x00W\\x03\\x00\\x00\\x00\\x1e\\x80\" + // 0x00570300: 0x00001E80\n\t\"\\x00w\\x03\\x00\\x00\\x00\\x1e\\x81\" + // 0x00770300: 0x00001E81\n\t\"\\x00W\\x03\\x01\\x00\\x00\\x1e\\x82\" + // 0x00570301: 0x00001E82\n\t\"\\x00w\\x03\\x01\\x00\\x00\\x1e\\x83\" + // 0x00770301: 0x00001E83\n\t\"\\x00W\\x03\\b\\x00\\x00\\x1e\\x84\" + // 0x00570308: 0x00001E84\n\t\"\\x00w\\x03\\b\\x00\\x00\\x1e\\x85\" + // 0x00770308: 0x00001E85\n\t\"\\x00W\\x03\\a\\x00\\x00\\x1e\\x86\" + // 0x00570307: 0x00001E86\n\t\"\\x00w\\x03\\a\\x00\\x00\\x1e\\x87\" + // 0x00770307: 0x00001E87\n\t\"\\x00W\\x03#\\x00\\x00\\x1e\\x88\" + // 0x00570323: 0x00001E88\n\t\"\\x00w\\x03#\\x00\\x00\\x1e\\x89\" + // 0x00770323: 0x00001E89\n\t\"\\x00X\\x03\\a\\x00\\x00\\x1e\\x8a\" + // 0x00580307: 0x00001E8A\n\t\"\\x00x\\x03\\a\\x00\\x00\\x1e\\x8b\" + // 0x00780307: 0x00001E8B\n\t\"\\x00X\\x03\\b\\x00\\x00\\x1e\\x8c\" + // 0x00580308: 0x00001E8C\n\t\"\\x00x\\x03\\b\\x00\\x00\\x1e\\x8d\" + // 0x00780308: 0x00001E8D\n\t\"\\x00Y\\x03\\a\\x00\\x00\\x1e\\x8e\" + // 0x00590307: 0x00001E8E\n\t\"\\x00y\\x03\\a\\x00\\x00\\x1e\\x8f\" + // 0x00790307: 0x00001E8F\n\t\"\\x00Z\\x03\\x02\\x00\\x00\\x1e\\x90\" + // 0x005A0302: 0x00001E90\n\t\"\\x00z\\x03\\x02\\x00\\x00\\x1e\\x91\" + // 0x007A0302: 0x00001E91\n\t\"\\x00Z\\x03#\\x00\\x00\\x1e\\x92\" + // 0x005A0323: 0x00001E92\n\t\"\\x00z\\x03#\\x00\\x00\\x1e\\x93\" + // 0x007A0323: 0x00001E93\n\t\"\\x00Z\\x031\\x00\\x00\\x1e\\x94\" + // 0x005A0331: 0x00001E94\n\t\"\\x00z\\x031\\x00\\x00\\x1e\\x95\" + // 0x007A0331: 0x00001E95\n\t\"\\x00h\\x031\\x00\\x00\\x1e\\x96\" + // 0x00680331: 0x00001E96\n\t\"\\x00t\\x03\\b\\x00\\x00\\x1e\\x97\" + // 0x00740308: 0x00001E97\n\t\"\\x00w\\x03\\n\\x00\\x00\\x1e\\x98\" + // 0x0077030A: 0x00001E98\n\t\"\\x00y\\x03\\n\\x00\\x00\\x1e\\x99\" + // 0x0079030A: 0x00001E99\n\t\"\\x01\\u007f\\x03\\a\\x00\\x00\\x1e\\x9b\" + // 0x017F0307: 0x00001E9B\n\t\"\\x00A\\x03#\\x00\\x00\\x1e\\xa0\" + // 0x00410323: 0x00001EA0\n\t\"\\x00a\\x03#\\x00\\x00\\x1e\\xa1\" + // 0x00610323: 0x00001EA1\n\t\"\\x00A\\x03\\t\\x00\\x00\\x1e\\xa2\" + // 0x00410309: 0x00001EA2\n\t\"\\x00a\\x03\\t\\x00\\x00\\x1e\\xa3\" + // 0x00610309: 0x00001EA3\n\t\"\\x00\\xc2\\x03\\x01\\x00\\x00\\x1e\\xa4\" + // 0x00C20301: 0x00001EA4\n\t\"\\x00\\xe2\\x03\\x01\\x00\\x00\\x1e\\xa5\" + // 0x00E20301: 0x00001EA5\n\t\"\\x00\\xc2\\x03\\x00\\x00\\x00\\x1e\\xa6\" + // 0x00C20300: 0x00001EA6\n\t\"\\x00\\xe2\\x03\\x00\\x00\\x00\\x1e\\xa7\" + // 0x00E20300: 0x00001EA7\n\t\"\\x00\\xc2\\x03\\t\\x00\\x00\\x1e\\xa8\" + // 0x00C20309: 0x00001EA8\n\t\"\\x00\\xe2\\x03\\t\\x00\\x00\\x1e\\xa9\" + // 0x00E20309: 0x00001EA9\n\t\"\\x00\\xc2\\x03\\x03\\x00\\x00\\x1e\\xaa\" + // 0x00C20303: 0x00001EAA\n\t\"\\x00\\xe2\\x03\\x03\\x00\\x00\\x1e\\xab\" + // 0x00E20303: 0x00001EAB\n\t\"\\x1e\\xa0\\x03\\x02\\x00\\x00\\x1e\\xac\" + // 0x1EA00302: 0x00001EAC\n\t\"\\x1e\\xa1\\x03\\x02\\x00\\x00\\x1e\\xad\" + // 0x1EA10302: 0x00001EAD\n\t\"\\x01\\x02\\x03\\x01\\x00\\x00\\x1e\\xae\" + // 0x01020301: 0x00001EAE\n\t\"\\x01\\x03\\x03\\x01\\x00\\x00\\x1e\\xaf\" + // 0x01030301: 0x00001EAF\n\t\"\\x01\\x02\\x03\\x00\\x00\\x00\\x1e\\xb0\" + // 0x01020300: 0x00001EB0\n\t\"\\x01\\x03\\x03\\x00\\x00\\x00\\x1e\\xb1\" + // 0x01030300: 0x00001EB1\n\t\"\\x01\\x02\\x03\\t\\x00\\x00\\x1e\\xb2\" + // 0x01020309: 0x00001EB2\n\t\"\\x01\\x03\\x03\\t\\x00\\x00\\x1e\\xb3\" + // 0x01030309: 0x00001EB3\n\t\"\\x01\\x02\\x03\\x03\\x00\\x00\\x1e\\xb4\" + // 0x01020303: 0x00001EB4\n\t\"\\x01\\x03\\x03\\x03\\x00\\x00\\x1e\\xb5\" + // 0x01030303: 0x00001EB5\n\t\"\\x1e\\xa0\\x03\\x06\\x00\\x00\\x1e\\xb6\" + // 0x1EA00306: 0x00001EB6\n\t\"\\x1e\\xa1\\x03\\x06\\x00\\x00\\x1e\\xb7\" + // 0x1EA10306: 0x00001EB7\n\t\"\\x00E\\x03#\\x00\\x00\\x1e\\xb8\" + // 0x00450323: 0x00001EB8\n\t\"\\x00e\\x03#\\x00\\x00\\x1e\\xb9\" + // 0x00650323: 0x00001EB9\n\t\"\\x00E\\x03\\t\\x00\\x00\\x1e\\xba\" + // 0x00450309: 0x00001EBA\n\t\"\\x00e\\x03\\t\\x00\\x00\\x1e\\xbb\" + // 0x00650309: 0x00001EBB\n\t\"\\x00E\\x03\\x03\\x00\\x00\\x1e\\xbc\" + // 0x00450303: 0x00001EBC\n\t\"\\x00e\\x03\\x03\\x00\\x00\\x1e\\xbd\" + // 0x00650303: 0x00001EBD\n\t\"\\x00\\xca\\x03\\x01\\x00\\x00\\x1e\\xbe\" + // 0x00CA0301: 0x00001EBE\n\t\"\\x00\\xea\\x03\\x01\\x00\\x00\\x1e\\xbf\" + // 0x00EA0301: 0x00001EBF\n\t\"\\x00\\xca\\x03\\x00\\x00\\x00\\x1e\\xc0\" + // 0x00CA0300: 0x00001EC0\n\t\"\\x00\\xea\\x03\\x00\\x00\\x00\\x1e\\xc1\" + // 0x00EA0300: 0x00001EC1\n\t\"\\x00\\xca\\x03\\t\\x00\\x00\\x1e\\xc2\" + // 0x00CA0309: 0x00001EC2\n\t\"\\x00\\xea\\x03\\t\\x00\\x00\\x1e\\xc3\" + // 0x00EA0309: 0x00001EC3\n\t\"\\x00\\xca\\x03\\x03\\x00\\x00\\x1e\\xc4\" + // 0x00CA0303: 0x00001EC4\n\t\"\\x00\\xea\\x03\\x03\\x00\\x00\\x1e\\xc5\" + // 0x00EA0303: 0x00001EC5\n\t\"\\x1e\\xb8\\x03\\x02\\x00\\x00\\x1e\\xc6\" + // 0x1EB80302: 0x00001EC6\n\t\"\\x1e\\xb9\\x03\\x02\\x00\\x00\\x1e\\xc7\" + // 0x1EB90302: 0x00001EC7\n\t\"\\x00I\\x03\\t\\x00\\x00\\x1e\\xc8\" + // 0x00490309: 0x00001EC8\n\t\"\\x00i\\x03\\t\\x00\\x00\\x1e\\xc9\" + // 0x00690309: 0x00001EC9\n\t\"\\x00I\\x03#\\x00\\x00\\x1e\\xca\" + // 0x00490323: 0x00001ECA\n\t\"\\x00i\\x03#\\x00\\x00\\x1e\\xcb\" + // 0x00690323: 0x00001ECB\n\t\"\\x00O\\x03#\\x00\\x00\\x1e\\xcc\" + // 0x004F0323: 0x00001ECC\n\t\"\\x00o\\x03#\\x00\\x00\\x1e\\xcd\" + // 0x006F0323: 0x00001ECD\n\t\"\\x00O\\x03\\t\\x00\\x00\\x1e\\xce\" + // 0x004F0309: 0x00001ECE\n\t\"\\x00o\\x03\\t\\x00\\x00\\x1e\\xcf\" + // 0x006F0309: 0x00001ECF\n\t\"\\x00\\xd4\\x03\\x01\\x00\\x00\\x1e\\xd0\" + // 0x00D40301: 0x00001ED0\n\t\"\\x00\\xf4\\x03\\x01\\x00\\x00\\x1e\\xd1\" + // 0x00F40301: 0x00001ED1\n\t\"\\x00\\xd4\\x03\\x00\\x00\\x00\\x1e\\xd2\" + // 0x00D40300: 0x00001ED2\n\t\"\\x00\\xf4\\x03\\x00\\x00\\x00\\x1e\\xd3\" + // 0x00F40300: 0x00001ED3\n\t\"\\x00\\xd4\\x03\\t\\x00\\x00\\x1e\\xd4\" + // 0x00D40309: 0x00001ED4\n\t\"\\x00\\xf4\\x03\\t\\x00\\x00\\x1e\\xd5\" + // 0x00F40309: 0x00001ED5\n\t\"\\x00\\xd4\\x03\\x03\\x00\\x00\\x1e\\xd6\" + // 0x00D40303: 0x00001ED6\n\t\"\\x00\\xf4\\x03\\x03\\x00\\x00\\x1e\\xd7\" + // 0x00F40303: 0x00001ED7\n\t\"\\x1e\\xcc\\x03\\x02\\x00\\x00\\x1e\\xd8\" + // 0x1ECC0302: 0x00001ED8\n\t\"\\x1e\\xcd\\x03\\x02\\x00\\x00\\x1e\\xd9\" + // 0x1ECD0302: 0x00001ED9\n\t\"\\x01\\xa0\\x03\\x01\\x00\\x00\\x1e\\xda\" + // 0x01A00301: 0x00001EDA\n\t\"\\x01\\xa1\\x03\\x01\\x00\\x00\\x1e\\xdb\" + // 0x01A10301: 0x00001EDB\n\t\"\\x01\\xa0\\x03\\x00\\x00\\x00\\x1e\\xdc\" + // 0x01A00300: 0x00001EDC\n\t\"\\x01\\xa1\\x03\\x00\\x00\\x00\\x1e\\xdd\" + // 0x01A10300: 0x00001EDD\n\t\"\\x01\\xa0\\x03\\t\\x00\\x00\\x1e\\xde\" + // 0x01A00309: 0x00001EDE\n\t\"\\x01\\xa1\\x03\\t\\x00\\x00\\x1e\\xdf\" + // 0x01A10309: 0x00001EDF\n\t\"\\x01\\xa0\\x03\\x03\\x00\\x00\\x1e\\xe0\" + // 0x01A00303: 0x00001EE0\n\t\"\\x01\\xa1\\x03\\x03\\x00\\x00\\x1e\\xe1\" + // 0x01A10303: 0x00001EE1\n\t\"\\x01\\xa0\\x03#\\x00\\x00\\x1e\\xe2\" + // 0x01A00323: 0x00001EE2\n\t\"\\x01\\xa1\\x03#\\x00\\x00\\x1e\\xe3\" + // 0x01A10323: 0x00001EE3\n\t\"\\x00U\\x03#\\x00\\x00\\x1e\\xe4\" + // 0x00550323: 0x00001EE4\n\t\"\\x00u\\x03#\\x00\\x00\\x1e\\xe5\" + // 0x00750323: 0x00001EE5\n\t\"\\x00U\\x03\\t\\x00\\x00\\x1e\\xe6\" + // 0x00550309: 0x00001EE6\n\t\"\\x00u\\x03\\t\\x00\\x00\\x1e\\xe7\" + // 0x00750309: 0x00001EE7\n\t\"\\x01\\xaf\\x03\\x01\\x00\\x00\\x1e\\xe8\" + // 0x01AF0301: 0x00001EE8\n\t\"\\x01\\xb0\\x03\\x01\\x00\\x00\\x1e\\xe9\" + // 0x01B00301: 0x00001EE9\n\t\"\\x01\\xaf\\x03\\x00\\x00\\x00\\x1e\\xea\" + // 0x01AF0300: 0x00001EEA\n\t\"\\x01\\xb0\\x03\\x00\\x00\\x00\\x1e\\xeb\" + // 0x01B00300: 0x00001EEB\n\t\"\\x01\\xaf\\x03\\t\\x00\\x00\\x1e\\xec\" + // 0x01AF0309: 0x00001EEC\n\t\"\\x01\\xb0\\x03\\t\\x00\\x00\\x1e\\xed\" + // 0x01B00309: 0x00001EED\n\t\"\\x01\\xaf\\x03\\x03\\x00\\x00\\x1e\\xee\" + // 0x01AF0303: 0x00001EEE\n\t\"\\x01\\xb0\\x03\\x03\\x00\\x00\\x1e\\xef\" + // 0x01B00303: 0x00001EEF\n\t\"\\x01\\xaf\\x03#\\x00\\x00\\x1e\\xf0\" + // 0x01AF0323: 0x00001EF0\n\t\"\\x01\\xb0\\x03#\\x00\\x00\\x1e\\xf1\" + // 0x01B00323: 0x00001EF1\n\t\"\\x00Y\\x03\\x00\\x00\\x00\\x1e\\xf2\" + // 0x00590300: 0x00001EF2\n\t\"\\x00y\\x03\\x00\\x00\\x00\\x1e\\xf3\" + // 0x00790300: 0x00001EF3\n\t\"\\x00Y\\x03#\\x00\\x00\\x1e\\xf4\" + // 0x00590323: 0x00001EF4\n\t\"\\x00y\\x03#\\x00\\x00\\x1e\\xf5\" + // 0x00790323: 0x00001EF5\n\t\"\\x00Y\\x03\\t\\x00\\x00\\x1e\\xf6\" + // 0x00590309: 0x00001EF6\n\t\"\\x00y\\x03\\t\\x00\\x00\\x1e\\xf7\" + // 0x00790309: 0x00001EF7\n\t\"\\x00Y\\x03\\x03\\x00\\x00\\x1e\\xf8\" + // 0x00590303: 0x00001EF8\n\t\"\\x00y\\x03\\x03\\x00\\x00\\x1e\\xf9\" + // 0x00790303: 0x00001EF9\n\t\"\\x03\\xb1\\x03\\x13\\x00\\x00\\x1f\\x00\" + // 0x03B10313: 0x00001F00\n\t\"\\x03\\xb1\\x03\\x14\\x00\\x00\\x1f\\x01\" + // 0x03B10314: 0x00001F01\n\t\"\\x1f\\x00\\x03\\x00\\x00\\x00\\x1f\\x02\" + // 0x1F000300: 0x00001F02\n\t\"\\x1f\\x01\\x03\\x00\\x00\\x00\\x1f\\x03\" + // 0x1F010300: 0x00001F03\n\t\"\\x1f\\x00\\x03\\x01\\x00\\x00\\x1f\\x04\" + // 0x1F000301: 0x00001F04\n\t\"\\x1f\\x01\\x03\\x01\\x00\\x00\\x1f\\x05\" + // 0x1F010301: 0x00001F05\n\t\"\\x1f\\x00\\x03B\\x00\\x00\\x1f\\x06\" + // 0x1F000342: 0x00001F06\n\t\"\\x1f\\x01\\x03B\\x00\\x00\\x1f\\a\" + // 0x1F010342: 0x00001F07\n\t\"\\x03\\x91\\x03\\x13\\x00\\x00\\x1f\\b\" + // 0x03910313: 0x00001F08\n\t\"\\x03\\x91\\x03\\x14\\x00\\x00\\x1f\\t\" + // 0x03910314: 0x00001F09\n\t\"\\x1f\\b\\x03\\x00\\x00\\x00\\x1f\\n\" + // 0x1F080300: 0x00001F0A\n\t\"\\x1f\\t\\x03\\x00\\x00\\x00\\x1f\\v\" + // 0x1F090300: 0x00001F0B\n\t\"\\x1f\\b\\x03\\x01\\x00\\x00\\x1f\\f\" + // 0x1F080301: 0x00001F0C\n\t\"\\x1f\\t\\x03\\x01\\x00\\x00\\x1f\\r\" + // 0x1F090301: 0x00001F0D\n\t\"\\x1f\\b\\x03B\\x00\\x00\\x1f\\x0e\" + // 0x1F080342: 0x00001F0E\n\t\"\\x1f\\t\\x03B\\x00\\x00\\x1f\\x0f\" + // 0x1F090342: 0x00001F0F\n\t\"\\x03\\xb5\\x03\\x13\\x00\\x00\\x1f\\x10\" + // 0x03B50313: 0x00001F10\n\t\"\\x03\\xb5\\x03\\x14\\x00\\x00\\x1f\\x11\" + // 0x03B50314: 0x00001F11\n\t\"\\x1f\\x10\\x03\\x00\\x00\\x00\\x1f\\x12\" + // 0x1F100300: 0x00001F12\n\t\"\\x1f\\x11\\x03\\x00\\x00\\x00\\x1f\\x13\" + // 0x1F110300: 0x00001F13\n\t\"\\x1f\\x10\\x03\\x01\\x00\\x00\\x1f\\x14\" + // 0x1F100301: 0x00001F14\n\t\"\\x1f\\x11\\x03\\x01\\x00\\x00\\x1f\\x15\" + // 0x1F110301: 0x00001F15\n\t\"\\x03\\x95\\x03\\x13\\x00\\x00\\x1f\\x18\" + // 0x03950313: 0x00001F18\n\t\"\\x03\\x95\\x03\\x14\\x00\\x00\\x1f\\x19\" + // 0x03950314: 0x00001F19\n\t\"\\x1f\\x18\\x03\\x00\\x00\\x00\\x1f\\x1a\" + // 0x1F180300: 0x00001F1A\n\t\"\\x1f\\x19\\x03\\x00\\x00\\x00\\x1f\\x1b\" + // 0x1F190300: 0x00001F1B\n\t\"\\x1f\\x18\\x03\\x01\\x00\\x00\\x1f\\x1c\" + // 0x1F180301: 0x00001F1C\n\t\"\\x1f\\x19\\x03\\x01\\x00\\x00\\x1f\\x1d\" + // 0x1F190301: 0x00001F1D\n\t\"\\x03\\xb7\\x03\\x13\\x00\\x00\\x1f \" + // 0x03B70313: 0x00001F20\n\t\"\\x03\\xb7\\x03\\x14\\x00\\x00\\x1f!\" + // 0x03B70314: 0x00001F21\n\t\"\\x1f \\x03\\x00\\x00\\x00\\x1f\\\"\" + // 0x1F200300: 0x00001F22\n\t\"\\x1f!\\x03\\x00\\x00\\x00\\x1f#\" + // 0x1F210300: 0x00001F23\n\t\"\\x1f \\x03\\x01\\x00\\x00\\x1f$\" + // 0x1F200301: 0x00001F24\n\t\"\\x1f!\\x03\\x01\\x00\\x00\\x1f%\" + // 0x1F210301: 0x00001F25\n\t\"\\x1f \\x03B\\x00\\x00\\x1f&\" + // 0x1F200342: 0x00001F26\n\t\"\\x1f!\\x03B\\x00\\x00\\x1f'\" + // 0x1F210342: 0x00001F27\n\t\"\\x03\\x97\\x03\\x13\\x00\\x00\\x1f(\" + // 0x03970313: 0x00001F28\n\t\"\\x03\\x97\\x03\\x14\\x00\\x00\\x1f)\" + // 0x03970314: 0x00001F29\n\t\"\\x1f(\\x03\\x00\\x00\\x00\\x1f*\" + // 0x1F280300: 0x00001F2A\n\t\"\\x1f)\\x03\\x00\\x00\\x00\\x1f+\" + // 0x1F290300: 0x00001F2B\n\t\"\\x1f(\\x03\\x01\\x00\\x00\\x1f,\" + // 0x1F280301: 0x00001F2C\n\t\"\\x1f)\\x03\\x01\\x00\\x00\\x1f-\" + // 0x1F290301: 0x00001F2D\n\t\"\\x1f(\\x03B\\x00\\x00\\x1f.\" + // 0x1F280342: 0x00001F2E\n\t\"\\x1f)\\x03B\\x00\\x00\\x1f/\" + // 0x1F290342: 0x00001F2F\n\t\"\\x03\\xb9\\x03\\x13\\x00\\x00\\x1f0\" + // 0x03B90313: 0x00001F30\n\t\"\\x03\\xb9\\x03\\x14\\x00\\x00\\x1f1\" + // 0x03B90314: 0x00001F31\n\t\"\\x1f0\\x03\\x00\\x00\\x00\\x1f2\" + // 0x1F300300: 0x00001F32\n\t\"\\x1f1\\x03\\x00\\x00\\x00\\x1f3\" + // 0x1F310300: 0x00001F33\n\t\"\\x1f0\\x03\\x01\\x00\\x00\\x1f4\" + // 0x1F300301: 0x00001F34\n\t\"\\x1f1\\x03\\x01\\x00\\x00\\x1f5\" + // 0x1F310301: 0x00001F35\n\t\"\\x1f0\\x03B\\x00\\x00\\x1f6\" + // 0x1F300342: 0x00001F36\n\t\"\\x1f1\\x03B\\x00\\x00\\x1f7\" + // 0x1F310342: 0x00001F37\n\t\"\\x03\\x99\\x03\\x13\\x00\\x00\\x1f8\" + // 0x03990313: 0x00001F38\n\t\"\\x03\\x99\\x03\\x14\\x00\\x00\\x1f9\" + // 0x03990314: 0x00001F39\n\t\"\\x1f8\\x03\\x00\\x00\\x00\\x1f:\" + // 0x1F380300: 0x00001F3A\n\t\"\\x1f9\\x03\\x00\\x00\\x00\\x1f;\" + // 0x1F390300: 0x00001F3B\n\t\"\\x1f8\\x03\\x01\\x00\\x00\\x1f<\" + // 0x1F380301: 0x00001F3C\n\t\"\\x1f9\\x03\\x01\\x00\\x00\\x1f=\" + // 0x1F390301: 0x00001F3D\n\t\"\\x1f8\\x03B\\x00\\x00\\x1f>\" + // 0x1F380342: 0x00001F3E\n\t\"\\x1f9\\x03B\\x00\\x00\\x1f?\" + // 0x1F390342: 0x00001F3F\n\t\"\\x03\\xbf\\x03\\x13\\x00\\x00\\x1f@\" + // 0x03BF0313: 0x00001F40\n\t\"\\x03\\xbf\\x03\\x14\\x00\\x00\\x1fA\" + // 0x03BF0314: 0x00001F41\n\t\"\\x1f@\\x03\\x00\\x00\\x00\\x1fB\" + // 0x1F400300: 0x00001F42\n\t\"\\x1fA\\x03\\x00\\x00\\x00\\x1fC\" + // 0x1F410300: 0x00001F43\n\t\"\\x1f@\\x03\\x01\\x00\\x00\\x1fD\" + // 0x1F400301: 0x00001F44\n\t\"\\x1fA\\x03\\x01\\x00\\x00\\x1fE\" + // 0x1F410301: 0x00001F45\n\t\"\\x03\\x9f\\x03\\x13\\x00\\x00\\x1fH\" + // 0x039F0313: 0x00001F48\n\t\"\\x03\\x9f\\x03\\x14\\x00\\x00\\x1fI\" + // 0x039F0314: 0x00001F49\n\t\"\\x1fH\\x03\\x00\\x00\\x00\\x1fJ\" + // 0x1F480300: 0x00001F4A\n\t\"\\x1fI\\x03\\x00\\x00\\x00\\x1fK\" + // 0x1F490300: 0x00001F4B\n\t\"\\x1fH\\x03\\x01\\x00\\x00\\x1fL\" + // 0x1F480301: 0x00001F4C\n\t\"\\x1fI\\x03\\x01\\x00\\x00\\x1fM\" + // 0x1F490301: 0x00001F4D\n\t\"\\x03\\xc5\\x03\\x13\\x00\\x00\\x1fP\" + // 0x03C50313: 0x00001F50\n\t\"\\x03\\xc5\\x03\\x14\\x00\\x00\\x1fQ\" + // 0x03C50314: 0x00001F51\n\t\"\\x1fP\\x03\\x00\\x00\\x00\\x1fR\" + // 0x1F500300: 0x00001F52\n\t\"\\x1fQ\\x03\\x00\\x00\\x00\\x1fS\" + // 0x1F510300: 0x00001F53\n\t\"\\x1fP\\x03\\x01\\x00\\x00\\x1fT\" + // 0x1F500301: 0x00001F54\n\t\"\\x1fQ\\x03\\x01\\x00\\x00\\x1fU\" + // 0x1F510301: 0x00001F55\n\t\"\\x1fP\\x03B\\x00\\x00\\x1fV\" + // 0x1F500342: 0x00001F56\n\t\"\\x1fQ\\x03B\\x00\\x00\\x1fW\" + // 0x1F510342: 0x00001F57\n\t\"\\x03\\xa5\\x03\\x14\\x00\\x00\\x1fY\" + // 0x03A50314: 0x00001F59\n\t\"\\x1fY\\x03\\x00\\x00\\x00\\x1f[\" + // 0x1F590300: 0x00001F5B\n\t\"\\x1fY\\x03\\x01\\x00\\x00\\x1f]\" + // 0x1F590301: 0x00001F5D\n\t\"\\x1fY\\x03B\\x00\\x00\\x1f_\" + // 0x1F590342: 0x00001F5F\n\t\"\\x03\\xc9\\x03\\x13\\x00\\x00\\x1f`\" + // 0x03C90313: 0x00001F60\n\t\"\\x03\\xc9\\x03\\x14\\x00\\x00\\x1fa\" + // 0x03C90314: 0x00001F61\n\t\"\\x1f`\\x03\\x00\\x00\\x00\\x1fb\" + // 0x1F600300: 0x00001F62\n\t\"\\x1fa\\x03\\x00\\x00\\x00\\x1fc\" + // 0x1F610300: 0x00001F63\n\t\"\\x1f`\\x03\\x01\\x00\\x00\\x1fd\" + // 0x1F600301: 0x00001F64\n\t\"\\x1fa\\x03\\x01\\x00\\x00\\x1fe\" + // 0x1F610301: 0x00001F65\n\t\"\\x1f`\\x03B\\x00\\x00\\x1ff\" + // 0x1F600342: 0x00001F66\n\t\"\\x1fa\\x03B\\x00\\x00\\x1fg\" + // 0x1F610342: 0x00001F67\n\t\"\\x03\\xa9\\x03\\x13\\x00\\x00\\x1fh\" + // 0x03A90313: 0x00001F68\n\t\"\\x03\\xa9\\x03\\x14\\x00\\x00\\x1fi\" + // 0x03A90314: 0x00001F69\n\t\"\\x1fh\\x03\\x00\\x00\\x00\\x1fj\" + // 0x1F680300: 0x00001F6A\n\t\"\\x1fi\\x03\\x00\\x00\\x00\\x1fk\" + // 0x1F690300: 0x00001F6B\n\t\"\\x1fh\\x03\\x01\\x00\\x00\\x1fl\" + // 0x1F680301: 0x00001F6C\n\t\"\\x1fi\\x03\\x01\\x00\\x00\\x1fm\" + // 0x1F690301: 0x00001F6D\n\t\"\\x1fh\\x03B\\x00\\x00\\x1fn\" + // 0x1F680342: 0x00001F6E\n\t\"\\x1fi\\x03B\\x00\\x00\\x1fo\" + // 0x1F690342: 0x00001F6F\n\t\"\\x03\\xb1\\x03\\x00\\x00\\x00\\x1fp\" + // 0x03B10300: 0x00001F70\n\t\"\\x03\\xb5\\x03\\x00\\x00\\x00\\x1fr\" + // 0x03B50300: 0x00001F72\n\t\"\\x03\\xb7\\x03\\x00\\x00\\x00\\x1ft\" + // 0x03B70300: 0x00001F74\n\t\"\\x03\\xb9\\x03\\x00\\x00\\x00\\x1fv\" + // 0x03B90300: 0x00001F76\n\t\"\\x03\\xbf\\x03\\x00\\x00\\x00\\x1fx\" + // 0x03BF0300: 0x00001F78\n\t\"\\x03\\xc5\\x03\\x00\\x00\\x00\\x1fz\" + // 0x03C50300: 0x00001F7A\n\t\"\\x03\\xc9\\x03\\x00\\x00\\x00\\x1f|\" + // 0x03C90300: 0x00001F7C\n\t\"\\x1f\\x00\\x03E\\x00\\x00\\x1f\\x80\" + // 0x1F000345: 0x00001F80\n\t\"\\x1f\\x01\\x03E\\x00\\x00\\x1f\\x81\" + // 0x1F010345: 0x00001F81\n\t\"\\x1f\\x02\\x03E\\x00\\x00\\x1f\\x82\" + // 0x1F020345: 0x00001F82\n\t\"\\x1f\\x03\\x03E\\x00\\x00\\x1f\\x83\" + // 0x1F030345: 0x00001F83\n\t\"\\x1f\\x04\\x03E\\x00\\x00\\x1f\\x84\" + // 0x1F040345: 0x00001F84\n\t\"\\x1f\\x05\\x03E\\x00\\x00\\x1f\\x85\" + // 0x1F050345: 0x00001F85\n\t\"\\x1f\\x06\\x03E\\x00\\x00\\x1f\\x86\" + // 0x1F060345: 0x00001F86\n\t\"\\x1f\\a\\x03E\\x00\\x00\\x1f\\x87\" + // 0x1F070345: 0x00001F87\n\t\"\\x1f\\b\\x03E\\x00\\x00\\x1f\\x88\" + // 0x1F080345: 0x00001F88\n\t\"\\x1f\\t\\x03E\\x00\\x00\\x1f\\x89\" + // 0x1F090345: 0x00001F89\n\t\"\\x1f\\n\\x03E\\x00\\x00\\x1f\\x8a\" + // 0x1F0A0345: 0x00001F8A\n\t\"\\x1f\\v\\x03E\\x00\\x00\\x1f\\x8b\" + // 0x1F0B0345: 0x00001F8B\n\t\"\\x1f\\f\\x03E\\x00\\x00\\x1f\\x8c\" + // 0x1F0C0345: 0x00001F8C\n\t\"\\x1f\\r\\x03E\\x00\\x00\\x1f\\x8d\" + // 0x1F0D0345: 0x00001F8D\n\t\"\\x1f\\x0e\\x03E\\x00\\x00\\x1f\\x8e\" + // 0x1F0E0345: 0x00001F8E\n\t\"\\x1f\\x0f\\x03E\\x00\\x00\\x1f\\x8f\" + // 0x1F0F0345: 0x00001F8F\n\t\"\\x1f \\x03E\\x00\\x00\\x1f\\x90\" + // 0x1F200345: 0x00001F90\n\t\"\\x1f!\\x03E\\x00\\x00\\x1f\\x91\" + // 0x1F210345: 0x00001F91\n\t\"\\x1f\\\"\\x03E\\x00\\x00\\x1f\\x92\" + // 0x1F220345: 0x00001F92\n\t\"\\x1f#\\x03E\\x00\\x00\\x1f\\x93\" + // 0x1F230345: 0x00001F93\n\t\"\\x1f$\\x03E\\x00\\x00\\x1f\\x94\" + // 0x1F240345: 0x00001F94\n\t\"\\x1f%\\x03E\\x00\\x00\\x1f\\x95\" + // 0x1F250345: 0x00001F95\n\t\"\\x1f&\\x03E\\x00\\x00\\x1f\\x96\" + // 0x1F260345: 0x00001F96\n\t\"\\x1f'\\x03E\\x00\\x00\\x1f\\x97\" + // 0x1F270345: 0x00001F97\n\t\"\\x1f(\\x03E\\x00\\x00\\x1f\\x98\" + // 0x1F280345: 0x00001F98\n\t\"\\x1f)\\x03E\\x00\\x00\\x1f\\x99\" + // 0x1F290345: 0x00001F99\n\t\"\\x1f*\\x03E\\x00\\x00\\x1f\\x9a\" + // 0x1F2A0345: 0x00001F9A\n\t\"\\x1f+\\x03E\\x00\\x00\\x1f\\x9b\" + // 0x1F2B0345: 0x00001F9B\n\t\"\\x1f,\\x03E\\x00\\x00\\x1f\\x9c\" + // 0x1F2C0345: 0x00001F9C\n\t\"\\x1f-\\x03E\\x00\\x00\\x1f\\x9d\" + // 0x1F2D0345: 0x00001F9D\n\t\"\\x1f.\\x03E\\x00\\x00\\x1f\\x9e\" + // 0x1F2E0345: 0x00001F9E\n\t\"\\x1f/\\x03E\\x00\\x00\\x1f\\x9f\" + // 0x1F2F0345: 0x00001F9F\n\t\"\\x1f`\\x03E\\x00\\x00\\x1f\\xa0\" + // 0x1F600345: 0x00001FA0\n\t\"\\x1fa\\x03E\\x00\\x00\\x1f\\xa1\" + // 0x1F610345: 0x00001FA1\n\t\"\\x1fb\\x03E\\x00\\x00\\x1f\\xa2\" + // 0x1F620345: 0x00001FA2\n\t\"\\x1fc\\x03E\\x00\\x00\\x1f\\xa3\" + // 0x1F630345: 0x00001FA3\n\t\"\\x1fd\\x03E\\x00\\x00\\x1f\\xa4\" + // 0x1F640345: 0x00001FA4\n\t\"\\x1fe\\x03E\\x00\\x00\\x1f\\xa5\" + // 0x1F650345: 0x00001FA5\n\t\"\\x1ff\\x03E\\x00\\x00\\x1f\\xa6\" + // 0x1F660345: 0x00001FA6\n\t\"\\x1fg\\x03E\\x00\\x00\\x1f\\xa7\" + // 0x1F670345: 0x00001FA7\n\t\"\\x1fh\\x03E\\x00\\x00\\x1f\\xa8\" + // 0x1F680345: 0x00001FA8\n\t\"\\x1fi\\x03E\\x00\\x00\\x1f\\xa9\" + // 0x1F690345: 0x00001FA9\n\t\"\\x1fj\\x03E\\x00\\x00\\x1f\\xaa\" + // 0x1F6A0345: 0x00001FAA\n\t\"\\x1fk\\x03E\\x00\\x00\\x1f\\xab\" + // 0x1F6B0345: 0x00001FAB\n\t\"\\x1fl\\x03E\\x00\\x00\\x1f\\xac\" + // 0x1F6C0345: 0x00001FAC\n\t\"\\x1fm\\x03E\\x00\\x00\\x1f\\xad\" + // 0x1F6D0345: 0x00001FAD\n\t\"\\x1fn\\x03E\\x00\\x00\\x1f\\xae\" + // 0x1F6E0345: 0x00001FAE\n\t\"\\x1fo\\x03E\\x00\\x00\\x1f\\xaf\" + // 0x1F6F0345: 0x00001FAF\n\t\"\\x03\\xb1\\x03\\x06\\x00\\x00\\x1f\\xb0\" + // 0x03B10306: 0x00001FB0\n\t\"\\x03\\xb1\\x03\\x04\\x00\\x00\\x1f\\xb1\" + // 0x03B10304: 0x00001FB1\n\t\"\\x1fp\\x03E\\x00\\x00\\x1f\\xb2\" + // 0x1F700345: 0x00001FB2\n\t\"\\x03\\xb1\\x03E\\x00\\x00\\x1f\\xb3\" + // 0x03B10345: 0x00001FB3\n\t\"\\x03\\xac\\x03E\\x00\\x00\\x1f\\xb4\" + // 0x03AC0345: 0x00001FB4\n\t\"\\x03\\xb1\\x03B\\x00\\x00\\x1f\\xb6\" + // 0x03B10342: 0x00001FB6\n\t\"\\x1f\\xb6\\x03E\\x00\\x00\\x1f\\xb7\" + // 0x1FB60345: 0x00001FB7\n\t\"\\x03\\x91\\x03\\x06\\x00\\x00\\x1f\\xb8\" + // 0x03910306: 0x00001FB8\n\t\"\\x03\\x91\\x03\\x04\\x00\\x00\\x1f\\xb9\" + // 0x03910304: 0x00001FB9\n\t\"\\x03\\x91\\x03\\x00\\x00\\x00\\x1f\\xba\" + // 0x03910300: 0x00001FBA\n\t\"\\x03\\x91\\x03E\\x00\\x00\\x1f\\xbc\" + // 0x03910345: 0x00001FBC\n\t\"\\x00\\xa8\\x03B\\x00\\x00\\x1f\\xc1\" + // 0x00A80342: 0x00001FC1\n\t\"\\x1ft\\x03E\\x00\\x00\\x1f\\xc2\" + // 0x1F740345: 0x00001FC2\n\t\"\\x03\\xb7\\x03E\\x00\\x00\\x1f\\xc3\" + // 0x03B70345: 0x00001FC3\n\t\"\\x03\\xae\\x03E\\x00\\x00\\x1f\\xc4\" + // 0x03AE0345: 0x00001FC4\n\t\"\\x03\\xb7\\x03B\\x00\\x00\\x1f\\xc6\" + // 0x03B70342: 0x00001FC6\n\t\"\\x1f\\xc6\\x03E\\x00\\x00\\x1f\\xc7\" + // 0x1FC60345: 0x00001FC7\n\t\"\\x03\\x95\\x03\\x00\\x00\\x00\\x1f\\xc8\" + // 0x03950300: 0x00001FC8\n\t\"\\x03\\x97\\x03\\x00\\x00\\x00\\x1f\\xca\" + // 0x03970300: 0x00001FCA\n\t\"\\x03\\x97\\x03E\\x00\\x00\\x1f\\xcc\" + // 0x03970345: 0x00001FCC\n\t\"\\x1f\\xbf\\x03\\x00\\x00\\x00\\x1f\\xcd\" + // 0x1FBF0300: 0x00001FCD\n\t\"\\x1f\\xbf\\x03\\x01\\x00\\x00\\x1f\\xce\" + // 0x1FBF0301: 0x00001FCE\n\t\"\\x1f\\xbf\\x03B\\x00\\x00\\x1f\\xcf\" + // 0x1FBF0342: 0x00001FCF\n\t\"\\x03\\xb9\\x03\\x06\\x00\\x00\\x1f\\xd0\" + // 0x03B90306: 0x00001FD0\n\t\"\\x03\\xb9\\x03\\x04\\x00\\x00\\x1f\\xd1\" + // 0x03B90304: 0x00001FD1\n\t\"\\x03\\xca\\x03\\x00\\x00\\x00\\x1f\\xd2\" + // 0x03CA0300: 0x00001FD2\n\t\"\\x03\\xb9\\x03B\\x00\\x00\\x1f\\xd6\" + // 0x03B90342: 0x00001FD6\n\t\"\\x03\\xca\\x03B\\x00\\x00\\x1f\\xd7\" + // 0x03CA0342: 0x00001FD7\n\t\"\\x03\\x99\\x03\\x06\\x00\\x00\\x1f\\xd8\" + // 0x03990306: 0x00001FD8\n\t\"\\x03\\x99\\x03\\x04\\x00\\x00\\x1f\\xd9\" + // 0x03990304: 0x00001FD9\n\t\"\\x03\\x99\\x03\\x00\\x00\\x00\\x1f\\xda\" + // 0x03990300: 0x00001FDA\n\t\"\\x1f\\xfe\\x03\\x00\\x00\\x00\\x1f\\xdd\" + // 0x1FFE0300: 0x00001FDD\n\t\"\\x1f\\xfe\\x03\\x01\\x00\\x00\\x1f\\xde\" + // 0x1FFE0301: 0x00001FDE\n\t\"\\x1f\\xfe\\x03B\\x00\\x00\\x1f\\xdf\" + // 0x1FFE0342: 0x00001FDF\n\t\"\\x03\\xc5\\x03\\x06\\x00\\x00\\x1f\\xe0\" + // 0x03C50306: 0x00001FE0\n\t\"\\x03\\xc5\\x03\\x04\\x00\\x00\\x1f\\xe1\" + // 0x03C50304: 0x00001FE1\n\t\"\\x03\\xcb\\x03\\x00\\x00\\x00\\x1f\\xe2\" + // 0x03CB0300: 0x00001FE2\n\t\"\\x03\\xc1\\x03\\x13\\x00\\x00\\x1f\\xe4\" + // 0x03C10313: 0x00001FE4\n\t\"\\x03\\xc1\\x03\\x14\\x00\\x00\\x1f\\xe5\" + // 0x03C10314: 0x00001FE5\n\t\"\\x03\\xc5\\x03B\\x00\\x00\\x1f\\xe6\" + // 0x03C50342: 0x00001FE6\n\t\"\\x03\\xcb\\x03B\\x00\\x00\\x1f\\xe7\" + // 0x03CB0342: 0x00001FE7\n\t\"\\x03\\xa5\\x03\\x06\\x00\\x00\\x1f\\xe8\" + // 0x03A50306: 0x00001FE8\n\t\"\\x03\\xa5\\x03\\x04\\x00\\x00\\x1f\\xe9\" + // 0x03A50304: 0x00001FE9\n\t\"\\x03\\xa5\\x03\\x00\\x00\\x00\\x1f\\xea\" + // 0x03A50300: 0x00001FEA\n\t\"\\x03\\xa1\\x03\\x14\\x00\\x00\\x1f\\xec\" + // 0x03A10314: 0x00001FEC\n\t\"\\x00\\xa8\\x03\\x00\\x00\\x00\\x1f\\xed\" + // 0x00A80300: 0x00001FED\n\t\"\\x1f|\\x03E\\x00\\x00\\x1f\\xf2\" + // 0x1F7C0345: 0x00001FF2\n\t\"\\x03\\xc9\\x03E\\x00\\x00\\x1f\\xf3\" + // 0x03C90345: 0x00001FF3\n\t\"\\x03\\xce\\x03E\\x00\\x00\\x1f\\xf4\" + // 0x03CE0345: 0x00001FF4\n\t\"\\x03\\xc9\\x03B\\x00\\x00\\x1f\\xf6\" + // 0x03C90342: 0x00001FF6\n\t\"\\x1f\\xf6\\x03E\\x00\\x00\\x1f\\xf7\" + // 0x1FF60345: 0x00001FF7\n\t\"\\x03\\x9f\\x03\\x00\\x00\\x00\\x1f\\xf8\" + // 0x039F0300: 0x00001FF8\n\t\"\\x03\\xa9\\x03\\x00\\x00\\x00\\x1f\\xfa\" + // 0x03A90300: 0x00001FFA\n\t\"\\x03\\xa9\\x03E\\x00\\x00\\x1f\\xfc\" + // 0x03A90345: 0x00001FFC\n\t\"!\\x90\\x038\\x00\\x00!\\x9a\" + // 0x21900338: 0x0000219A\n\t\"!\\x92\\x038\\x00\\x00!\\x9b\" + // 0x21920338: 0x0000219B\n\t\"!\\x94\\x038\\x00\\x00!\\xae\" + // 0x21940338: 0x000021AE\n\t\"!\\xd0\\x038\\x00\\x00!\\xcd\" + // 0x21D00338: 0x000021CD\n\t\"!\\xd4\\x038\\x00\\x00!\\xce\" + // 0x21D40338: 0x000021CE\n\t\"!\\xd2\\x038\\x00\\x00!\\xcf\" + // 0x21D20338: 0x000021CF\n\t\"\\\"\\x03\\x038\\x00\\x00\\\"\\x04\" + // 0x22030338: 0x00002204\n\t\"\\\"\\b\\x038\\x00\\x00\\\"\\t\" + // 0x22080338: 0x00002209\n\t\"\\\"\\v\\x038\\x00\\x00\\\"\\f\" + // 0x220B0338: 0x0000220C\n\t\"\\\"#\\x038\\x00\\x00\\\"$\" + // 0x22230338: 0x00002224\n\t\"\\\"%\\x038\\x00\\x00\\\"&\" + // 0x22250338: 0x00002226\n\t\"\\\"<\\x038\\x00\\x00\\\"A\" + // 0x223C0338: 0x00002241\n\t\"\\\"C\\x038\\x00\\x00\\\"D\" + // 0x22430338: 0x00002244\n\t\"\\\"E\\x038\\x00\\x00\\\"G\" + // 0x22450338: 0x00002247\n\t\"\\\"H\\x038\\x00\\x00\\\"I\" + // 0x22480338: 0x00002249\n\t\"\\x00=\\x038\\x00\\x00\\\"`\" + // 0x003D0338: 0x00002260\n\t\"\\\"a\\x038\\x00\\x00\\\"b\" + // 0x22610338: 0x00002262\n\t\"\\\"M\\x038\\x00\\x00\\\"m\" + // 0x224D0338: 0x0000226D\n\t\"\\x00<\\x038\\x00\\x00\\\"n\" + // 0x003C0338: 0x0000226E\n\t\"\\x00>\\x038\\x00\\x00\\\"o\" + // 0x003E0338: 0x0000226F\n\t\"\\\"d\\x038\\x00\\x00\\\"p\" + // 0x22640338: 0x00002270\n\t\"\\\"e\\x038\\x00\\x00\\\"q\" + // 0x22650338: 0x00002271\n\t\"\\\"r\\x038\\x00\\x00\\\"t\" + // 0x22720338: 0x00002274\n\t\"\\\"s\\x038\\x00\\x00\\\"u\" + // 0x22730338: 0x00002275\n\t\"\\\"v\\x038\\x00\\x00\\\"x\" + // 0x22760338: 0x00002278\n\t\"\\\"w\\x038\\x00\\x00\\\"y\" + // 0x22770338: 0x00002279\n\t\"\\\"z\\x038\\x00\\x00\\\"\\x80\" + // 0x227A0338: 0x00002280\n\t\"\\\"{\\x038\\x00\\x00\\\"\\x81\" + // 0x227B0338: 0x00002281\n\t\"\\\"\\x82\\x038\\x00\\x00\\\"\\x84\" + // 0x22820338: 0x00002284\n\t\"\\\"\\x83\\x038\\x00\\x00\\\"\\x85\" + // 0x22830338: 0x00002285\n\t\"\\\"\\x86\\x038\\x00\\x00\\\"\\x88\" + // 0x22860338: 0x00002288\n\t\"\\\"\\x87\\x038\\x00\\x00\\\"\\x89\" + // 0x22870338: 0x00002289\n\t\"\\\"\\xa2\\x038\\x00\\x00\\\"\\xac\" + // 0x22A20338: 0x000022AC\n\t\"\\\"\\xa8\\x038\\x00\\x00\\\"\\xad\" + // 0x22A80338: 0x000022AD\n\t\"\\\"\\xa9\\x038\\x00\\x00\\\"\\xae\" + // 0x22A90338: 0x000022AE\n\t\"\\\"\\xab\\x038\\x00\\x00\\\"\\xaf\" + // 0x22AB0338: 0x000022AF\n\t\"\\\"|\\x038\\x00\\x00\\\"\\xe0\" + // 0x227C0338: 0x000022E0\n\t\"\\\"}\\x038\\x00\\x00\\\"\\xe1\" + // 0x227D0338: 0x000022E1\n\t\"\\\"\\x91\\x038\\x00\\x00\\\"\\xe2\" + // 0x22910338: 0x000022E2\n\t\"\\\"\\x92\\x038\\x00\\x00\\\"\\xe3\" + // 0x22920338: 0x000022E3\n\t\"\\\"\\xb2\\x038\\x00\\x00\\\"\\xea\" + // 0x22B20338: 0x000022EA\n\t\"\\\"\\xb3\\x038\\x00\\x00\\\"\\xeb\" + // 0x22B30338: 0x000022EB\n\t\"\\\"\\xb4\\x038\\x00\\x00\\\"\\xec\" + // 0x22B40338: 0x000022EC\n\t\"\\\"\\xb5\\x038\\x00\\x00\\\"\\xed\" + // 0x22B50338: 0x000022ED\n\t\"0K0\\x99\\x00\\x000L\" + // 0x304B3099: 0x0000304C\n\t\"0M0\\x99\\x00\\x000N\" + // 0x304D3099: 0x0000304E\n\t\"0O0\\x99\\x00\\x000P\" + // 0x304F3099: 0x00003050\n\t\"0Q0\\x99\\x00\\x000R\" + // 0x30513099: 0x00003052\n\t\"0S0\\x99\\x00\\x000T\" + // 0x30533099: 0x00003054\n\t\"0U0\\x99\\x00\\x000V\" + // 0x30553099: 0x00003056\n\t\"0W0\\x99\\x00\\x000X\" + // 0x30573099: 0x00003058\n\t\"0Y0\\x99\\x00\\x000Z\" + // 0x30593099: 0x0000305A\n\t\"0[0\\x99\\x00\\x000\\\\\" + // 0x305B3099: 0x0000305C\n\t\"0]0\\x99\\x00\\x000^\" + // 0x305D3099: 0x0000305E\n\t\"0_0\\x99\\x00\\x000`\" + // 0x305F3099: 0x00003060\n\t\"0a0\\x99\\x00\\x000b\" + // 0x30613099: 0x00003062\n\t\"0d0\\x99\\x00\\x000e\" + // 0x30643099: 0x00003065\n\t\"0f0\\x99\\x00\\x000g\" + // 0x30663099: 0x00003067\n\t\"0h0\\x99\\x00\\x000i\" + // 0x30683099: 0x00003069\n\t\"0o0\\x99\\x00\\x000p\" + // 0x306F3099: 0x00003070\n\t\"0o0\\x9a\\x00\\x000q\" + // 0x306F309A: 0x00003071\n\t\"0r0\\x99\\x00\\x000s\" + // 0x30723099: 0x00003073\n\t\"0r0\\x9a\\x00\\x000t\" + // 0x3072309A: 0x00003074\n\t\"0u0\\x99\\x00\\x000v\" + // 0x30753099: 0x00003076\n\t\"0u0\\x9a\\x00\\x000w\" + // 0x3075309A: 0x00003077\n\t\"0x0\\x99\\x00\\x000y\" + // 0x30783099: 0x00003079\n\t\"0x0\\x9a\\x00\\x000z\" + // 0x3078309A: 0x0000307A\n\t\"0{0\\x99\\x00\\x000|\" + // 0x307B3099: 0x0000307C\n\t\"0{0\\x9a\\x00\\x000}\" + // 0x307B309A: 0x0000307D\n\t\"0F0\\x99\\x00\\x000\\x94\" + // 0x30463099: 0x00003094\n\t\"0\\x9d0\\x99\\x00\\x000\\x9e\" + // 0x309D3099: 0x0000309E\n\t\"0\\xab0\\x99\\x00\\x000\\xac\" + // 0x30AB3099: 0x000030AC\n\t\"0\\xad0\\x99\\x00\\x000\\xae\" + // 0x30AD3099: 0x000030AE\n\t\"0\\xaf0\\x99\\x00\\x000\\xb0\" + // 0x30AF3099: 0x000030B0\n\t\"0\\xb10\\x99\\x00\\x000\\xb2\" + // 0x30B13099: 0x000030B2\n\t\"0\\xb30\\x99\\x00\\x000\\xb4\" + // 0x30B33099: 0x000030B4\n\t\"0\\xb50\\x99\\x00\\x000\\xb6\" + // 0x30B53099: 0x000030B6\n\t\"0\\xb70\\x99\\x00\\x000\\xb8\" + // 0x30B73099: 0x000030B8\n\t\"0\\xb90\\x99\\x00\\x000\\xba\" + // 0x30B93099: 0x000030BA\n\t\"0\\xbb0\\x99\\x00\\x000\\xbc\" + // 0x30BB3099: 0x000030BC\n\t\"0\\xbd0\\x99\\x00\\x000\\xbe\" + // 0x30BD3099: 0x000030BE\n\t\"0\\xbf0\\x99\\x00\\x000\\xc0\" + // 0x30BF3099: 0x000030C0\n\t\"0\\xc10\\x99\\x00\\x000\\xc2\" + // 0x30C13099: 0x000030C2\n\t\"0\\xc40\\x99\\x00\\x000\\xc5\" + // 0x30C43099: 0x000030C5\n\t\"0\\xc60\\x99\\x00\\x000\\xc7\" + // 0x30C63099: 0x000030C7\n\t\"0\\xc80\\x99\\x00\\x000\\xc9\" + // 0x30C83099: 0x000030C9\n\t\"0\\xcf0\\x99\\x00\\x000\\xd0\" + // 0x30CF3099: 0x000030D0\n\t\"0\\xcf0\\x9a\\x00\\x000\\xd1\" + // 0x30CF309A: 0x000030D1\n\t\"0\\xd20\\x99\\x00\\x000\\xd3\" + // 0x30D23099: 0x000030D3\n\t\"0\\xd20\\x9a\\x00\\x000\\xd4\" + // 0x30D2309A: 0x000030D4\n\t\"0\\xd50\\x99\\x00\\x000\\xd6\" + // 0x30D53099: 0x000030D6\n\t\"0\\xd50\\x9a\\x00\\x000\\xd7\" + // 0x30D5309A: 0x000030D7\n\t\"0\\xd80\\x99\\x00\\x000\\xd9\" + // 0x30D83099: 0x000030D9\n\t\"0\\xd80\\x9a\\x00\\x000\\xda\" + // 0x30D8309A: 0x000030DA\n\t\"0\\xdb0\\x99\\x00\\x000\\xdc\" + // 0x30DB3099: 0x000030DC\n\t\"0\\xdb0\\x9a\\x00\\x000\\xdd\" + // 0x30DB309A: 0x000030DD\n\t\"0\\xa60\\x99\\x00\\x000\\xf4\" + // 0x30A63099: 0x000030F4\n\t\"0\\xef0\\x99\\x00\\x000\\xf7\" + // 0x30EF3099: 0x000030F7\n\t\"0\\xf00\\x99\\x00\\x000\\xf8\" + // 0x30F03099: 0x000030F8\n\t\"0\\xf10\\x99\\x00\\x000\\xf9\" + // 0x30F13099: 0x000030F9\n\t\"0\\xf20\\x99\\x00\\x000\\xfa\" + // 0x30F23099: 0x000030FA\n\t\"0\\xfd0\\x99\\x00\\x000\\xfe\" + // 0x30FD3099: 0x000030FE\n\t\"\\x10\\x99\\x10\\xba\\x00\\x01\\x10\\x9a\" + // 0x109910BA: 0x0001109A\n\t\"\\x10\\x9b\\x10\\xba\\x00\\x01\\x10\\x9c\" + // 0x109B10BA: 0x0001109C\n\t\"\\x10\\xa5\\x10\\xba\\x00\\x01\\x10\\xab\" + // 0x10A510BA: 0x000110AB\n\t\"\\x111\\x11'\\x00\\x01\\x11.\" + // 0x11311127: 0x0001112E\n\t\"\\x112\\x11'\\x00\\x01\\x11/\" + // 0x11321127: 0x0001112F\n\t\"\\x13G\\x13>\\x00\\x01\\x13K\" + // 0x1347133E: 0x0001134B\n\t\"\\x13G\\x13W\\x00\\x01\\x13L\" + // 0x13471357: 0x0001134C\n\t\"\\x14\\xb9\\x14\\xba\\x00\\x01\\x14\\xbb\" + // 0x14B914BA: 0x000114BB\n\t\"\\x14\\xb9\\x14\\xb0\\x00\\x01\\x14\\xbc\" + // 0x14B914B0: 0x000114BC\n\t\"\\x14\\xb9\\x14\\xbd\\x00\\x01\\x14\\xbe\" + // 0x14B914BD: 0x000114BE\n\t\"\\x15\\xb8\\x15\\xaf\\x00\\x01\\x15\\xba\" + // 0x15B815AF: 0x000115BA\n\t\"\\x15\\xb9\\x15\\xaf\\x00\\x01\\x15\\xbb\" + // 0x15B915AF: 0x000115BB\n\t\"\"\n\t// Total size of tables: 53KB (54226 bytes)\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/norm/tables11.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n//go:build go1.13 && !go1.14\n\npackage norm\n\nimport \"sync\"\n\nconst (\n\t// Version is the Unicode edition from which the tables are derived.\n\tVersion = \"11.0.0\"\n\n\t// MaxTransformChunkSize indicates the maximum number of bytes that Transform\n\t// may need to write atomically for any Form. Making a destination buffer at\n\t// least this size ensures that Transform can always make progress and that\n\t// the user does not need to grow the buffer on an ErrShortDst.\n\tMaxTransformChunkSize = 35 + maxNonStarters*4\n)\n\nvar ccc = [55]uint8{\n\t0, 1, 7, 8, 9, 10, 11, 12,\n\t13, 14, 15, 16, 17, 18, 19, 20,\n\t21, 22, 23, 24, 25, 26, 27, 28,\n\t29, 30, 31, 32, 33, 34, 35, 36,\n\t84, 91, 103, 107, 118, 122, 129, 130,\n\t132, 202, 214, 216, 218, 220, 222, 224,\n\t226, 228, 230, 232, 233, 234, 240,\n}\n\nconst (\n\tfirstMulti            = 0x186D\n\tfirstCCC              = 0x2C9E\n\tendMulti              = 0x2F60\n\tfirstLeadingCCC       = 0x49AE\n\tfirstCCCZeroExcept    = 0x4A78\n\tfirstStarterWithNLead = 0x4A9F\n\tlastDecomp            = 0x4AA1\n\tmaxDecomp             = 0x8000\n)\n\n// decomps: 19105 bytes\nvar decomps = [...]byte{\n\t// Bytes 0 - 3f\n\t0x00, 0x41, 0x20, 0x41, 0x21, 0x41, 0x22, 0x41,\n\t0x23, 0x41, 0x24, 0x41, 0x25, 0x41, 0x26, 0x41,\n\t0x27, 0x41, 0x28, 0x41, 0x29, 0x41, 0x2A, 0x41,\n\t0x2B, 0x41, 0x2C, 0x41, 0x2D, 0x41, 0x2E, 0x41,\n\t0x2F, 0x41, 0x30, 0x41, 0x31, 0x41, 0x32, 0x41,\n\t0x33, 0x41, 0x34, 0x41, 0x35, 0x41, 0x36, 0x41,\n\t0x37, 0x41, 0x38, 0x41, 0x39, 0x41, 0x3A, 0x41,\n\t0x3B, 0x41, 0x3C, 0x41, 0x3D, 0x41, 0x3E, 0x41,\n\t// Bytes 40 - 7f\n\t0x3F, 0x41, 0x40, 0x41, 0x41, 0x41, 0x42, 0x41,\n\t0x43, 0x41, 0x44, 0x41, 0x45, 0x41, 0x46, 0x41,\n\t0x47, 0x41, 0x48, 0x41, 0x49, 0x41, 0x4A, 0x41,\n\t0x4B, 0x41, 0x4C, 0x41, 0x4D, 0x41, 0x4E, 0x41,\n\t0x4F, 0x41, 0x50, 0x41, 0x51, 0x41, 0x52, 0x41,\n\t0x53, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41,\n\t0x57, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5A, 0x41,\n\t0x5B, 0x41, 0x5C, 0x41, 0x5D, 0x41, 0x5E, 0x41,\n\t// Bytes 80 - bf\n\t0x5F, 0x41, 0x60, 0x41, 0x61, 0x41, 0x62, 0x41,\n\t0x63, 0x41, 0x64, 0x41, 0x65, 0x41, 0x66, 0x41,\n\t0x67, 0x41, 0x68, 0x41, 0x69, 0x41, 0x6A, 0x41,\n\t0x6B, 0x41, 0x6C, 0x41, 0x6D, 0x41, 0x6E, 0x41,\n\t0x6F, 0x41, 0x70, 0x41, 0x71, 0x41, 0x72, 0x41,\n\t0x73, 0x41, 0x74, 0x41, 0x75, 0x41, 0x76, 0x41,\n\t0x77, 0x41, 0x78, 0x41, 0x79, 0x41, 0x7A, 0x41,\n\t0x7B, 0x41, 0x7C, 0x41, 0x7D, 0x41, 0x7E, 0x42,\n\t// Bytes c0 - ff\n\t0xC2, 0xA2, 0x42, 0xC2, 0xA3, 0x42, 0xC2, 0xA5,\n\t0x42, 0xC2, 0xA6, 0x42, 0xC2, 0xAC, 0x42, 0xC2,\n\t0xB7, 0x42, 0xC3, 0x86, 0x42, 0xC3, 0xB0, 0x42,\n\t0xC4, 0xA6, 0x42, 0xC4, 0xA7, 0x42, 0xC4, 0xB1,\n\t0x42, 0xC5, 0x8B, 0x42, 0xC5, 0x93, 0x42, 0xC6,\n\t0x8E, 0x42, 0xC6, 0x90, 0x42, 0xC6, 0xAB, 0x42,\n\t0xC8, 0xA2, 0x42, 0xC8, 0xB7, 0x42, 0xC9, 0x90,\n\t0x42, 0xC9, 0x91, 0x42, 0xC9, 0x92, 0x42, 0xC9,\n\t// Bytes 100 - 13f\n\t0x94, 0x42, 0xC9, 0x95, 0x42, 0xC9, 0x99, 0x42,\n\t0xC9, 0x9B, 0x42, 0xC9, 0x9C, 0x42, 0xC9, 0x9F,\n\t0x42, 0xC9, 0xA1, 0x42, 0xC9, 0xA3, 0x42, 0xC9,\n\t0xA5, 0x42, 0xC9, 0xA6, 0x42, 0xC9, 0xA8, 0x42,\n\t0xC9, 0xA9, 0x42, 0xC9, 0xAA, 0x42, 0xC9, 0xAB,\n\t0x42, 0xC9, 0xAD, 0x42, 0xC9, 0xAF, 0x42, 0xC9,\n\t0xB0, 0x42, 0xC9, 0xB1, 0x42, 0xC9, 0xB2, 0x42,\n\t0xC9, 0xB3, 0x42, 0xC9, 0xB4, 0x42, 0xC9, 0xB5,\n\t// Bytes 140 - 17f\n\t0x42, 0xC9, 0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9,\n\t0xBB, 0x42, 0xCA, 0x81, 0x42, 0xCA, 0x82, 0x42,\n\t0xCA, 0x83, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A,\n\t0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA,\n\t0x90, 0x42, 0xCA, 0x91, 0x42, 0xCA, 0x92, 0x42,\n\t0xCA, 0x95, 0x42, 0xCA, 0x9D, 0x42, 0xCA, 0x9F,\n\t0x42, 0xCA, 0xB9, 0x42, 0xCE, 0x91, 0x42, 0xCE,\n\t0x92, 0x42, 0xCE, 0x93, 0x42, 0xCE, 0x94, 0x42,\n\t// Bytes 180 - 1bf\n\t0xCE, 0x95, 0x42, 0xCE, 0x96, 0x42, 0xCE, 0x97,\n\t0x42, 0xCE, 0x98, 0x42, 0xCE, 0x99, 0x42, 0xCE,\n\t0x9A, 0x42, 0xCE, 0x9B, 0x42, 0xCE, 0x9C, 0x42,\n\t0xCE, 0x9D, 0x42, 0xCE, 0x9E, 0x42, 0xCE, 0x9F,\n\t0x42, 0xCE, 0xA0, 0x42, 0xCE, 0xA1, 0x42, 0xCE,\n\t0xA3, 0x42, 0xCE, 0xA4, 0x42, 0xCE, 0xA5, 0x42,\n\t0xCE, 0xA6, 0x42, 0xCE, 0xA7, 0x42, 0xCE, 0xA8,\n\t0x42, 0xCE, 0xA9, 0x42, 0xCE, 0xB1, 0x42, 0xCE,\n\t// Bytes 1c0 - 1ff\n\t0xB2, 0x42, 0xCE, 0xB3, 0x42, 0xCE, 0xB4, 0x42,\n\t0xCE, 0xB5, 0x42, 0xCE, 0xB6, 0x42, 0xCE, 0xB7,\n\t0x42, 0xCE, 0xB8, 0x42, 0xCE, 0xB9, 0x42, 0xCE,\n\t0xBA, 0x42, 0xCE, 0xBB, 0x42, 0xCE, 0xBC, 0x42,\n\t0xCE, 0xBD, 0x42, 0xCE, 0xBE, 0x42, 0xCE, 0xBF,\n\t0x42, 0xCF, 0x80, 0x42, 0xCF, 0x81, 0x42, 0xCF,\n\t0x82, 0x42, 0xCF, 0x83, 0x42, 0xCF, 0x84, 0x42,\n\t0xCF, 0x85, 0x42, 0xCF, 0x86, 0x42, 0xCF, 0x87,\n\t// Bytes 200 - 23f\n\t0x42, 0xCF, 0x88, 0x42, 0xCF, 0x89, 0x42, 0xCF,\n\t0x9C, 0x42, 0xCF, 0x9D, 0x42, 0xD0, 0xBD, 0x42,\n\t0xD1, 0x8A, 0x42, 0xD1, 0x8C, 0x42, 0xD7, 0x90,\n\t0x42, 0xD7, 0x91, 0x42, 0xD7, 0x92, 0x42, 0xD7,\n\t0x93, 0x42, 0xD7, 0x94, 0x42, 0xD7, 0x9B, 0x42,\n\t0xD7, 0x9C, 0x42, 0xD7, 0x9D, 0x42, 0xD7, 0xA2,\n\t0x42, 0xD7, 0xA8, 0x42, 0xD7, 0xAA, 0x42, 0xD8,\n\t0xA1, 0x42, 0xD8, 0xA7, 0x42, 0xD8, 0xA8, 0x42,\n\t// Bytes 240 - 27f\n\t0xD8, 0xA9, 0x42, 0xD8, 0xAA, 0x42, 0xD8, 0xAB,\n\t0x42, 0xD8, 0xAC, 0x42, 0xD8, 0xAD, 0x42, 0xD8,\n\t0xAE, 0x42, 0xD8, 0xAF, 0x42, 0xD8, 0xB0, 0x42,\n\t0xD8, 0xB1, 0x42, 0xD8, 0xB2, 0x42, 0xD8, 0xB3,\n\t0x42, 0xD8, 0xB4, 0x42, 0xD8, 0xB5, 0x42, 0xD8,\n\t0xB6, 0x42, 0xD8, 0xB7, 0x42, 0xD8, 0xB8, 0x42,\n\t0xD8, 0xB9, 0x42, 0xD8, 0xBA, 0x42, 0xD9, 0x81,\n\t0x42, 0xD9, 0x82, 0x42, 0xD9, 0x83, 0x42, 0xD9,\n\t// Bytes 280 - 2bf\n\t0x84, 0x42, 0xD9, 0x85, 0x42, 0xD9, 0x86, 0x42,\n\t0xD9, 0x87, 0x42, 0xD9, 0x88, 0x42, 0xD9, 0x89,\n\t0x42, 0xD9, 0x8A, 0x42, 0xD9, 0xAE, 0x42, 0xD9,\n\t0xAF, 0x42, 0xD9, 0xB1, 0x42, 0xD9, 0xB9, 0x42,\n\t0xD9, 0xBA, 0x42, 0xD9, 0xBB, 0x42, 0xD9, 0xBE,\n\t0x42, 0xD9, 0xBF, 0x42, 0xDA, 0x80, 0x42, 0xDA,\n\t0x83, 0x42, 0xDA, 0x84, 0x42, 0xDA, 0x86, 0x42,\n\t0xDA, 0x87, 0x42, 0xDA, 0x88, 0x42, 0xDA, 0x8C,\n\t// Bytes 2c0 - 2ff\n\t0x42, 0xDA, 0x8D, 0x42, 0xDA, 0x8E, 0x42, 0xDA,\n\t0x91, 0x42, 0xDA, 0x98, 0x42, 0xDA, 0xA1, 0x42,\n\t0xDA, 0xA4, 0x42, 0xDA, 0xA6, 0x42, 0xDA, 0xA9,\n\t0x42, 0xDA, 0xAD, 0x42, 0xDA, 0xAF, 0x42, 0xDA,\n\t0xB1, 0x42, 0xDA, 0xB3, 0x42, 0xDA, 0xBA, 0x42,\n\t0xDA, 0xBB, 0x42, 0xDA, 0xBE, 0x42, 0xDB, 0x81,\n\t0x42, 0xDB, 0x85, 0x42, 0xDB, 0x86, 0x42, 0xDB,\n\t0x87, 0x42, 0xDB, 0x88, 0x42, 0xDB, 0x89, 0x42,\n\t// Bytes 300 - 33f\n\t0xDB, 0x8B, 0x42, 0xDB, 0x8C, 0x42, 0xDB, 0x90,\n\t0x42, 0xDB, 0x92, 0x43, 0xE0, 0xBC, 0x8B, 0x43,\n\t0xE1, 0x83, 0x9C, 0x43, 0xE1, 0x84, 0x80, 0x43,\n\t0xE1, 0x84, 0x81, 0x43, 0xE1, 0x84, 0x82, 0x43,\n\t0xE1, 0x84, 0x83, 0x43, 0xE1, 0x84, 0x84, 0x43,\n\t0xE1, 0x84, 0x85, 0x43, 0xE1, 0x84, 0x86, 0x43,\n\t0xE1, 0x84, 0x87, 0x43, 0xE1, 0x84, 0x88, 0x43,\n\t0xE1, 0x84, 0x89, 0x43, 0xE1, 0x84, 0x8A, 0x43,\n\t// Bytes 340 - 37f\n\t0xE1, 0x84, 0x8B, 0x43, 0xE1, 0x84, 0x8C, 0x43,\n\t0xE1, 0x84, 0x8D, 0x43, 0xE1, 0x84, 0x8E, 0x43,\n\t0xE1, 0x84, 0x8F, 0x43, 0xE1, 0x84, 0x90, 0x43,\n\t0xE1, 0x84, 0x91, 0x43, 0xE1, 0x84, 0x92, 0x43,\n\t0xE1, 0x84, 0x94, 0x43, 0xE1, 0x84, 0x95, 0x43,\n\t0xE1, 0x84, 0x9A, 0x43, 0xE1, 0x84, 0x9C, 0x43,\n\t0xE1, 0x84, 0x9D, 0x43, 0xE1, 0x84, 0x9E, 0x43,\n\t0xE1, 0x84, 0xA0, 0x43, 0xE1, 0x84, 0xA1, 0x43,\n\t// Bytes 380 - 3bf\n\t0xE1, 0x84, 0xA2, 0x43, 0xE1, 0x84, 0xA3, 0x43,\n\t0xE1, 0x84, 0xA7, 0x43, 0xE1, 0x84, 0xA9, 0x43,\n\t0xE1, 0x84, 0xAB, 0x43, 0xE1, 0x84, 0xAC, 0x43,\n\t0xE1, 0x84, 0xAD, 0x43, 0xE1, 0x84, 0xAE, 0x43,\n\t0xE1, 0x84, 0xAF, 0x43, 0xE1, 0x84, 0xB2, 0x43,\n\t0xE1, 0x84, 0xB6, 0x43, 0xE1, 0x85, 0x80, 0x43,\n\t0xE1, 0x85, 0x87, 0x43, 0xE1, 0x85, 0x8C, 0x43,\n\t0xE1, 0x85, 0x97, 0x43, 0xE1, 0x85, 0x98, 0x43,\n\t// Bytes 3c0 - 3ff\n\t0xE1, 0x85, 0x99, 0x43, 0xE1, 0x85, 0xA0, 0x43,\n\t0xE1, 0x86, 0x84, 0x43, 0xE1, 0x86, 0x85, 0x43,\n\t0xE1, 0x86, 0x88, 0x43, 0xE1, 0x86, 0x91, 0x43,\n\t0xE1, 0x86, 0x92, 0x43, 0xE1, 0x86, 0x94, 0x43,\n\t0xE1, 0x86, 0x9E, 0x43, 0xE1, 0x86, 0xA1, 0x43,\n\t0xE1, 0x87, 0x87, 0x43, 0xE1, 0x87, 0x88, 0x43,\n\t0xE1, 0x87, 0x8C, 0x43, 0xE1, 0x87, 0x8E, 0x43,\n\t0xE1, 0x87, 0x93, 0x43, 0xE1, 0x87, 0x97, 0x43,\n\t// Bytes 400 - 43f\n\t0xE1, 0x87, 0x99, 0x43, 0xE1, 0x87, 0x9D, 0x43,\n\t0xE1, 0x87, 0x9F, 0x43, 0xE1, 0x87, 0xB1, 0x43,\n\t0xE1, 0x87, 0xB2, 0x43, 0xE1, 0xB4, 0x82, 0x43,\n\t0xE1, 0xB4, 0x96, 0x43, 0xE1, 0xB4, 0x97, 0x43,\n\t0xE1, 0xB4, 0x9C, 0x43, 0xE1, 0xB4, 0x9D, 0x43,\n\t0xE1, 0xB4, 0xA5, 0x43, 0xE1, 0xB5, 0xBB, 0x43,\n\t0xE1, 0xB6, 0x85, 0x43, 0xE2, 0x80, 0x82, 0x43,\n\t0xE2, 0x80, 0x83, 0x43, 0xE2, 0x80, 0x90, 0x43,\n\t// Bytes 440 - 47f\n\t0xE2, 0x80, 0x93, 0x43, 0xE2, 0x80, 0x94, 0x43,\n\t0xE2, 0x82, 0xA9, 0x43, 0xE2, 0x86, 0x90, 0x43,\n\t0xE2, 0x86, 0x91, 0x43, 0xE2, 0x86, 0x92, 0x43,\n\t0xE2, 0x86, 0x93, 0x43, 0xE2, 0x88, 0x82, 0x43,\n\t0xE2, 0x88, 0x87, 0x43, 0xE2, 0x88, 0x91, 0x43,\n\t0xE2, 0x88, 0x92, 0x43, 0xE2, 0x94, 0x82, 0x43,\n\t0xE2, 0x96, 0xA0, 0x43, 0xE2, 0x97, 0x8B, 0x43,\n\t0xE2, 0xA6, 0x85, 0x43, 0xE2, 0xA6, 0x86, 0x43,\n\t// Bytes 480 - 4bf\n\t0xE2, 0xB5, 0xA1, 0x43, 0xE3, 0x80, 0x81, 0x43,\n\t0xE3, 0x80, 0x82, 0x43, 0xE3, 0x80, 0x88, 0x43,\n\t0xE3, 0x80, 0x89, 0x43, 0xE3, 0x80, 0x8A, 0x43,\n\t0xE3, 0x80, 0x8B, 0x43, 0xE3, 0x80, 0x8C, 0x43,\n\t0xE3, 0x80, 0x8D, 0x43, 0xE3, 0x80, 0x8E, 0x43,\n\t0xE3, 0x80, 0x8F, 0x43, 0xE3, 0x80, 0x90, 0x43,\n\t0xE3, 0x80, 0x91, 0x43, 0xE3, 0x80, 0x92, 0x43,\n\t0xE3, 0x80, 0x94, 0x43, 0xE3, 0x80, 0x95, 0x43,\n\t// Bytes 4c0 - 4ff\n\t0xE3, 0x80, 0x96, 0x43, 0xE3, 0x80, 0x97, 0x43,\n\t0xE3, 0x82, 0xA1, 0x43, 0xE3, 0x82, 0xA2, 0x43,\n\t0xE3, 0x82, 0xA3, 0x43, 0xE3, 0x82, 0xA4, 0x43,\n\t0xE3, 0x82, 0xA5, 0x43, 0xE3, 0x82, 0xA6, 0x43,\n\t0xE3, 0x82, 0xA7, 0x43, 0xE3, 0x82, 0xA8, 0x43,\n\t0xE3, 0x82, 0xA9, 0x43, 0xE3, 0x82, 0xAA, 0x43,\n\t0xE3, 0x82, 0xAB, 0x43, 0xE3, 0x82, 0xAD, 0x43,\n\t0xE3, 0x82, 0xAF, 0x43, 0xE3, 0x82, 0xB1, 0x43,\n\t// Bytes 500 - 53f\n\t0xE3, 0x82, 0xB3, 0x43, 0xE3, 0x82, 0xB5, 0x43,\n\t0xE3, 0x82, 0xB7, 0x43, 0xE3, 0x82, 0xB9, 0x43,\n\t0xE3, 0x82, 0xBB, 0x43, 0xE3, 0x82, 0xBD, 0x43,\n\t0xE3, 0x82, 0xBF, 0x43, 0xE3, 0x83, 0x81, 0x43,\n\t0xE3, 0x83, 0x83, 0x43, 0xE3, 0x83, 0x84, 0x43,\n\t0xE3, 0x83, 0x86, 0x43, 0xE3, 0x83, 0x88, 0x43,\n\t0xE3, 0x83, 0x8A, 0x43, 0xE3, 0x83, 0x8B, 0x43,\n\t0xE3, 0x83, 0x8C, 0x43, 0xE3, 0x83, 0x8D, 0x43,\n\t// Bytes 540 - 57f\n\t0xE3, 0x83, 0x8E, 0x43, 0xE3, 0x83, 0x8F, 0x43,\n\t0xE3, 0x83, 0x92, 0x43, 0xE3, 0x83, 0x95, 0x43,\n\t0xE3, 0x83, 0x98, 0x43, 0xE3, 0x83, 0x9B, 0x43,\n\t0xE3, 0x83, 0x9E, 0x43, 0xE3, 0x83, 0x9F, 0x43,\n\t0xE3, 0x83, 0xA0, 0x43, 0xE3, 0x83, 0xA1, 0x43,\n\t0xE3, 0x83, 0xA2, 0x43, 0xE3, 0x83, 0xA3, 0x43,\n\t0xE3, 0x83, 0xA4, 0x43, 0xE3, 0x83, 0xA5, 0x43,\n\t0xE3, 0x83, 0xA6, 0x43, 0xE3, 0x83, 0xA7, 0x43,\n\t// Bytes 580 - 5bf\n\t0xE3, 0x83, 0xA8, 0x43, 0xE3, 0x83, 0xA9, 0x43,\n\t0xE3, 0x83, 0xAA, 0x43, 0xE3, 0x83, 0xAB, 0x43,\n\t0xE3, 0x83, 0xAC, 0x43, 0xE3, 0x83, 0xAD, 0x43,\n\t0xE3, 0x83, 0xAF, 0x43, 0xE3, 0x83, 0xB0, 0x43,\n\t0xE3, 0x83, 0xB1, 0x43, 0xE3, 0x83, 0xB2, 0x43,\n\t0xE3, 0x83, 0xB3, 0x43, 0xE3, 0x83, 0xBB, 0x43,\n\t0xE3, 0x83, 0xBC, 0x43, 0xE3, 0x92, 0x9E, 0x43,\n\t0xE3, 0x92, 0xB9, 0x43, 0xE3, 0x92, 0xBB, 0x43,\n\t// Bytes 5c0 - 5ff\n\t0xE3, 0x93, 0x9F, 0x43, 0xE3, 0x94, 0x95, 0x43,\n\t0xE3, 0x9B, 0xAE, 0x43, 0xE3, 0x9B, 0xBC, 0x43,\n\t0xE3, 0x9E, 0x81, 0x43, 0xE3, 0xA0, 0xAF, 0x43,\n\t0xE3, 0xA1, 0xA2, 0x43, 0xE3, 0xA1, 0xBC, 0x43,\n\t0xE3, 0xA3, 0x87, 0x43, 0xE3, 0xA3, 0xA3, 0x43,\n\t0xE3, 0xA4, 0x9C, 0x43, 0xE3, 0xA4, 0xBA, 0x43,\n\t0xE3, 0xA8, 0xAE, 0x43, 0xE3, 0xA9, 0xAC, 0x43,\n\t0xE3, 0xAB, 0xA4, 0x43, 0xE3, 0xAC, 0x88, 0x43,\n\t// Bytes 600 - 63f\n\t0xE3, 0xAC, 0x99, 0x43, 0xE3, 0xAD, 0x89, 0x43,\n\t0xE3, 0xAE, 0x9D, 0x43, 0xE3, 0xB0, 0x98, 0x43,\n\t0xE3, 0xB1, 0x8E, 0x43, 0xE3, 0xB4, 0xB3, 0x43,\n\t0xE3, 0xB6, 0x96, 0x43, 0xE3, 0xBA, 0xAC, 0x43,\n\t0xE3, 0xBA, 0xB8, 0x43, 0xE3, 0xBC, 0x9B, 0x43,\n\t0xE3, 0xBF, 0xBC, 0x43, 0xE4, 0x80, 0x88, 0x43,\n\t0xE4, 0x80, 0x98, 0x43, 0xE4, 0x80, 0xB9, 0x43,\n\t0xE4, 0x81, 0x86, 0x43, 0xE4, 0x82, 0x96, 0x43,\n\t// Bytes 640 - 67f\n\t0xE4, 0x83, 0xA3, 0x43, 0xE4, 0x84, 0xAF, 0x43,\n\t0xE4, 0x88, 0x82, 0x43, 0xE4, 0x88, 0xA7, 0x43,\n\t0xE4, 0x8A, 0xA0, 0x43, 0xE4, 0x8C, 0x81, 0x43,\n\t0xE4, 0x8C, 0xB4, 0x43, 0xE4, 0x8D, 0x99, 0x43,\n\t0xE4, 0x8F, 0x95, 0x43, 0xE4, 0x8F, 0x99, 0x43,\n\t0xE4, 0x90, 0x8B, 0x43, 0xE4, 0x91, 0xAB, 0x43,\n\t0xE4, 0x94, 0xAB, 0x43, 0xE4, 0x95, 0x9D, 0x43,\n\t0xE4, 0x95, 0xA1, 0x43, 0xE4, 0x95, 0xAB, 0x43,\n\t// Bytes 680 - 6bf\n\t0xE4, 0x97, 0x97, 0x43, 0xE4, 0x97, 0xB9, 0x43,\n\t0xE4, 0x98, 0xB5, 0x43, 0xE4, 0x9A, 0xBE, 0x43,\n\t0xE4, 0x9B, 0x87, 0x43, 0xE4, 0xA6, 0x95, 0x43,\n\t0xE4, 0xA7, 0xA6, 0x43, 0xE4, 0xA9, 0xAE, 0x43,\n\t0xE4, 0xA9, 0xB6, 0x43, 0xE4, 0xAA, 0xB2, 0x43,\n\t0xE4, 0xAC, 0xB3, 0x43, 0xE4, 0xAF, 0x8E, 0x43,\n\t0xE4, 0xB3, 0x8E, 0x43, 0xE4, 0xB3, 0xAD, 0x43,\n\t0xE4, 0xB3, 0xB8, 0x43, 0xE4, 0xB5, 0x96, 0x43,\n\t// Bytes 6c0 - 6ff\n\t0xE4, 0xB8, 0x80, 0x43, 0xE4, 0xB8, 0x81, 0x43,\n\t0xE4, 0xB8, 0x83, 0x43, 0xE4, 0xB8, 0x89, 0x43,\n\t0xE4, 0xB8, 0x8A, 0x43, 0xE4, 0xB8, 0x8B, 0x43,\n\t0xE4, 0xB8, 0x8D, 0x43, 0xE4, 0xB8, 0x99, 0x43,\n\t0xE4, 0xB8, 0xA6, 0x43, 0xE4, 0xB8, 0xA8, 0x43,\n\t0xE4, 0xB8, 0xAD, 0x43, 0xE4, 0xB8, 0xB2, 0x43,\n\t0xE4, 0xB8, 0xB6, 0x43, 0xE4, 0xB8, 0xB8, 0x43,\n\t0xE4, 0xB8, 0xB9, 0x43, 0xE4, 0xB8, 0xBD, 0x43,\n\t// Bytes 700 - 73f\n\t0xE4, 0xB8, 0xBF, 0x43, 0xE4, 0xB9, 0x81, 0x43,\n\t0xE4, 0xB9, 0x99, 0x43, 0xE4, 0xB9, 0x9D, 0x43,\n\t0xE4, 0xBA, 0x82, 0x43, 0xE4, 0xBA, 0x85, 0x43,\n\t0xE4, 0xBA, 0x86, 0x43, 0xE4, 0xBA, 0x8C, 0x43,\n\t0xE4, 0xBA, 0x94, 0x43, 0xE4, 0xBA, 0xA0, 0x43,\n\t0xE4, 0xBA, 0xA4, 0x43, 0xE4, 0xBA, 0xAE, 0x43,\n\t0xE4, 0xBA, 0xBA, 0x43, 0xE4, 0xBB, 0x80, 0x43,\n\t0xE4, 0xBB, 0x8C, 0x43, 0xE4, 0xBB, 0xA4, 0x43,\n\t// Bytes 740 - 77f\n\t0xE4, 0xBC, 0x81, 0x43, 0xE4, 0xBC, 0x91, 0x43,\n\t0xE4, 0xBD, 0xA0, 0x43, 0xE4, 0xBE, 0x80, 0x43,\n\t0xE4, 0xBE, 0x86, 0x43, 0xE4, 0xBE, 0x8B, 0x43,\n\t0xE4, 0xBE, 0xAE, 0x43, 0xE4, 0xBE, 0xBB, 0x43,\n\t0xE4, 0xBE, 0xBF, 0x43, 0xE5, 0x80, 0x82, 0x43,\n\t0xE5, 0x80, 0xAB, 0x43, 0xE5, 0x81, 0xBA, 0x43,\n\t0xE5, 0x82, 0x99, 0x43, 0xE5, 0x83, 0x8F, 0x43,\n\t0xE5, 0x83, 0x9A, 0x43, 0xE5, 0x83, 0xA7, 0x43,\n\t// Bytes 780 - 7bf\n\t0xE5, 0x84, 0xAA, 0x43, 0xE5, 0x84, 0xBF, 0x43,\n\t0xE5, 0x85, 0x80, 0x43, 0xE5, 0x85, 0x85, 0x43,\n\t0xE5, 0x85, 0x8D, 0x43, 0xE5, 0x85, 0x94, 0x43,\n\t0xE5, 0x85, 0xA4, 0x43, 0xE5, 0x85, 0xA5, 0x43,\n\t0xE5, 0x85, 0xA7, 0x43, 0xE5, 0x85, 0xA8, 0x43,\n\t0xE5, 0x85, 0xA9, 0x43, 0xE5, 0x85, 0xAB, 0x43,\n\t0xE5, 0x85, 0xAD, 0x43, 0xE5, 0x85, 0xB7, 0x43,\n\t0xE5, 0x86, 0x80, 0x43, 0xE5, 0x86, 0x82, 0x43,\n\t// Bytes 7c0 - 7ff\n\t0xE5, 0x86, 0x8D, 0x43, 0xE5, 0x86, 0x92, 0x43,\n\t0xE5, 0x86, 0x95, 0x43, 0xE5, 0x86, 0x96, 0x43,\n\t0xE5, 0x86, 0x97, 0x43, 0xE5, 0x86, 0x99, 0x43,\n\t0xE5, 0x86, 0xA4, 0x43, 0xE5, 0x86, 0xAB, 0x43,\n\t0xE5, 0x86, 0xAC, 0x43, 0xE5, 0x86, 0xB5, 0x43,\n\t0xE5, 0x86, 0xB7, 0x43, 0xE5, 0x87, 0x89, 0x43,\n\t0xE5, 0x87, 0x8C, 0x43, 0xE5, 0x87, 0x9C, 0x43,\n\t0xE5, 0x87, 0x9E, 0x43, 0xE5, 0x87, 0xA0, 0x43,\n\t// Bytes 800 - 83f\n\t0xE5, 0x87, 0xB5, 0x43, 0xE5, 0x88, 0x80, 0x43,\n\t0xE5, 0x88, 0x83, 0x43, 0xE5, 0x88, 0x87, 0x43,\n\t0xE5, 0x88, 0x97, 0x43, 0xE5, 0x88, 0x9D, 0x43,\n\t0xE5, 0x88, 0xA9, 0x43, 0xE5, 0x88, 0xBA, 0x43,\n\t0xE5, 0x88, 0xBB, 0x43, 0xE5, 0x89, 0x86, 0x43,\n\t0xE5, 0x89, 0x8D, 0x43, 0xE5, 0x89, 0xB2, 0x43,\n\t0xE5, 0x89, 0xB7, 0x43, 0xE5, 0x8A, 0x89, 0x43,\n\t0xE5, 0x8A, 0x9B, 0x43, 0xE5, 0x8A, 0xA3, 0x43,\n\t// Bytes 840 - 87f\n\t0xE5, 0x8A, 0xB3, 0x43, 0xE5, 0x8A, 0xB4, 0x43,\n\t0xE5, 0x8B, 0x87, 0x43, 0xE5, 0x8B, 0x89, 0x43,\n\t0xE5, 0x8B, 0x92, 0x43, 0xE5, 0x8B, 0x9E, 0x43,\n\t0xE5, 0x8B, 0xA4, 0x43, 0xE5, 0x8B, 0xB5, 0x43,\n\t0xE5, 0x8B, 0xB9, 0x43, 0xE5, 0x8B, 0xBA, 0x43,\n\t0xE5, 0x8C, 0x85, 0x43, 0xE5, 0x8C, 0x86, 0x43,\n\t0xE5, 0x8C, 0x95, 0x43, 0xE5, 0x8C, 0x97, 0x43,\n\t0xE5, 0x8C, 0x9A, 0x43, 0xE5, 0x8C, 0xB8, 0x43,\n\t// Bytes 880 - 8bf\n\t0xE5, 0x8C, 0xBB, 0x43, 0xE5, 0x8C, 0xBF, 0x43,\n\t0xE5, 0x8D, 0x81, 0x43, 0xE5, 0x8D, 0x84, 0x43,\n\t0xE5, 0x8D, 0x85, 0x43, 0xE5, 0x8D, 0x89, 0x43,\n\t0xE5, 0x8D, 0x91, 0x43, 0xE5, 0x8D, 0x94, 0x43,\n\t0xE5, 0x8D, 0x9A, 0x43, 0xE5, 0x8D, 0x9C, 0x43,\n\t0xE5, 0x8D, 0xA9, 0x43, 0xE5, 0x8D, 0xB0, 0x43,\n\t0xE5, 0x8D, 0xB3, 0x43, 0xE5, 0x8D, 0xB5, 0x43,\n\t0xE5, 0x8D, 0xBD, 0x43, 0xE5, 0x8D, 0xBF, 0x43,\n\t// Bytes 8c0 - 8ff\n\t0xE5, 0x8E, 0x82, 0x43, 0xE5, 0x8E, 0xB6, 0x43,\n\t0xE5, 0x8F, 0x83, 0x43, 0xE5, 0x8F, 0x88, 0x43,\n\t0xE5, 0x8F, 0x8A, 0x43, 0xE5, 0x8F, 0x8C, 0x43,\n\t0xE5, 0x8F, 0x9F, 0x43, 0xE5, 0x8F, 0xA3, 0x43,\n\t0xE5, 0x8F, 0xA5, 0x43, 0xE5, 0x8F, 0xAB, 0x43,\n\t0xE5, 0x8F, 0xAF, 0x43, 0xE5, 0x8F, 0xB1, 0x43,\n\t0xE5, 0x8F, 0xB3, 0x43, 0xE5, 0x90, 0x86, 0x43,\n\t0xE5, 0x90, 0x88, 0x43, 0xE5, 0x90, 0x8D, 0x43,\n\t// Bytes 900 - 93f\n\t0xE5, 0x90, 0x8F, 0x43, 0xE5, 0x90, 0x9D, 0x43,\n\t0xE5, 0x90, 0xB8, 0x43, 0xE5, 0x90, 0xB9, 0x43,\n\t0xE5, 0x91, 0x82, 0x43, 0xE5, 0x91, 0x88, 0x43,\n\t0xE5, 0x91, 0xA8, 0x43, 0xE5, 0x92, 0x9E, 0x43,\n\t0xE5, 0x92, 0xA2, 0x43, 0xE5, 0x92, 0xBD, 0x43,\n\t0xE5, 0x93, 0xB6, 0x43, 0xE5, 0x94, 0x90, 0x43,\n\t0xE5, 0x95, 0x8F, 0x43, 0xE5, 0x95, 0x93, 0x43,\n\t0xE5, 0x95, 0x95, 0x43, 0xE5, 0x95, 0xA3, 0x43,\n\t// Bytes 940 - 97f\n\t0xE5, 0x96, 0x84, 0x43, 0xE5, 0x96, 0x87, 0x43,\n\t0xE5, 0x96, 0x99, 0x43, 0xE5, 0x96, 0x9D, 0x43,\n\t0xE5, 0x96, 0xAB, 0x43, 0xE5, 0x96, 0xB3, 0x43,\n\t0xE5, 0x96, 0xB6, 0x43, 0xE5, 0x97, 0x80, 0x43,\n\t0xE5, 0x97, 0x82, 0x43, 0xE5, 0x97, 0xA2, 0x43,\n\t0xE5, 0x98, 0x86, 0x43, 0xE5, 0x99, 0x91, 0x43,\n\t0xE5, 0x99, 0xA8, 0x43, 0xE5, 0x99, 0xB4, 0x43,\n\t0xE5, 0x9B, 0x97, 0x43, 0xE5, 0x9B, 0x9B, 0x43,\n\t// Bytes 980 - 9bf\n\t0xE5, 0x9B, 0xB9, 0x43, 0xE5, 0x9C, 0x96, 0x43,\n\t0xE5, 0x9C, 0x97, 0x43, 0xE5, 0x9C, 0x9F, 0x43,\n\t0xE5, 0x9C, 0xB0, 0x43, 0xE5, 0x9E, 0x8B, 0x43,\n\t0xE5, 0x9F, 0x8E, 0x43, 0xE5, 0x9F, 0xB4, 0x43,\n\t0xE5, 0xA0, 0x8D, 0x43, 0xE5, 0xA0, 0xB1, 0x43,\n\t0xE5, 0xA0, 0xB2, 0x43, 0xE5, 0xA1, 0x80, 0x43,\n\t0xE5, 0xA1, 0x9A, 0x43, 0xE5, 0xA1, 0x9E, 0x43,\n\t0xE5, 0xA2, 0xA8, 0x43, 0xE5, 0xA2, 0xAC, 0x43,\n\t// Bytes 9c0 - 9ff\n\t0xE5, 0xA2, 0xB3, 0x43, 0xE5, 0xA3, 0x98, 0x43,\n\t0xE5, 0xA3, 0x9F, 0x43, 0xE5, 0xA3, 0xAB, 0x43,\n\t0xE5, 0xA3, 0xAE, 0x43, 0xE5, 0xA3, 0xB0, 0x43,\n\t0xE5, 0xA3, 0xB2, 0x43, 0xE5, 0xA3, 0xB7, 0x43,\n\t0xE5, 0xA4, 0x82, 0x43, 0xE5, 0xA4, 0x86, 0x43,\n\t0xE5, 0xA4, 0x8A, 0x43, 0xE5, 0xA4, 0x95, 0x43,\n\t0xE5, 0xA4, 0x9A, 0x43, 0xE5, 0xA4, 0x9C, 0x43,\n\t0xE5, 0xA4, 0xA2, 0x43, 0xE5, 0xA4, 0xA7, 0x43,\n\t// Bytes a00 - a3f\n\t0xE5, 0xA4, 0xA9, 0x43, 0xE5, 0xA5, 0x84, 0x43,\n\t0xE5, 0xA5, 0x88, 0x43, 0xE5, 0xA5, 0x91, 0x43,\n\t0xE5, 0xA5, 0x94, 0x43, 0xE5, 0xA5, 0xA2, 0x43,\n\t0xE5, 0xA5, 0xB3, 0x43, 0xE5, 0xA7, 0x98, 0x43,\n\t0xE5, 0xA7, 0xAC, 0x43, 0xE5, 0xA8, 0x9B, 0x43,\n\t0xE5, 0xA8, 0xA7, 0x43, 0xE5, 0xA9, 0xA2, 0x43,\n\t0xE5, 0xA9, 0xA6, 0x43, 0xE5, 0xAA, 0xB5, 0x43,\n\t0xE5, 0xAC, 0x88, 0x43, 0xE5, 0xAC, 0xA8, 0x43,\n\t// Bytes a40 - a7f\n\t0xE5, 0xAC, 0xBE, 0x43, 0xE5, 0xAD, 0x90, 0x43,\n\t0xE5, 0xAD, 0x97, 0x43, 0xE5, 0xAD, 0xA6, 0x43,\n\t0xE5, 0xAE, 0x80, 0x43, 0xE5, 0xAE, 0x85, 0x43,\n\t0xE5, 0xAE, 0x97, 0x43, 0xE5, 0xAF, 0x83, 0x43,\n\t0xE5, 0xAF, 0x98, 0x43, 0xE5, 0xAF, 0xA7, 0x43,\n\t0xE5, 0xAF, 0xAE, 0x43, 0xE5, 0xAF, 0xB3, 0x43,\n\t0xE5, 0xAF, 0xB8, 0x43, 0xE5, 0xAF, 0xBF, 0x43,\n\t0xE5, 0xB0, 0x86, 0x43, 0xE5, 0xB0, 0x8F, 0x43,\n\t// Bytes a80 - abf\n\t0xE5, 0xB0, 0xA2, 0x43, 0xE5, 0xB0, 0xB8, 0x43,\n\t0xE5, 0xB0, 0xBF, 0x43, 0xE5, 0xB1, 0xA0, 0x43,\n\t0xE5, 0xB1, 0xA2, 0x43, 0xE5, 0xB1, 0xA4, 0x43,\n\t0xE5, 0xB1, 0xA5, 0x43, 0xE5, 0xB1, 0xAE, 0x43,\n\t0xE5, 0xB1, 0xB1, 0x43, 0xE5, 0xB2, 0x8D, 0x43,\n\t0xE5, 0xB3, 0x80, 0x43, 0xE5, 0xB4, 0x99, 0x43,\n\t0xE5, 0xB5, 0x83, 0x43, 0xE5, 0xB5, 0x90, 0x43,\n\t0xE5, 0xB5, 0xAB, 0x43, 0xE5, 0xB5, 0xAE, 0x43,\n\t// Bytes ac0 - aff\n\t0xE5, 0xB5, 0xBC, 0x43, 0xE5, 0xB6, 0xB2, 0x43,\n\t0xE5, 0xB6, 0xBA, 0x43, 0xE5, 0xB7, 0x9B, 0x43,\n\t0xE5, 0xB7, 0xA1, 0x43, 0xE5, 0xB7, 0xA2, 0x43,\n\t0xE5, 0xB7, 0xA5, 0x43, 0xE5, 0xB7, 0xA6, 0x43,\n\t0xE5, 0xB7, 0xB1, 0x43, 0xE5, 0xB7, 0xBD, 0x43,\n\t0xE5, 0xB7, 0xBE, 0x43, 0xE5, 0xB8, 0xA8, 0x43,\n\t0xE5, 0xB8, 0xBD, 0x43, 0xE5, 0xB9, 0xA9, 0x43,\n\t0xE5, 0xB9, 0xB2, 0x43, 0xE5, 0xB9, 0xB4, 0x43,\n\t// Bytes b00 - b3f\n\t0xE5, 0xB9, 0xBA, 0x43, 0xE5, 0xB9, 0xBC, 0x43,\n\t0xE5, 0xB9, 0xBF, 0x43, 0xE5, 0xBA, 0xA6, 0x43,\n\t0xE5, 0xBA, 0xB0, 0x43, 0xE5, 0xBA, 0xB3, 0x43,\n\t0xE5, 0xBA, 0xB6, 0x43, 0xE5, 0xBB, 0x89, 0x43,\n\t0xE5, 0xBB, 0x8A, 0x43, 0xE5, 0xBB, 0x92, 0x43,\n\t0xE5, 0xBB, 0x93, 0x43, 0xE5, 0xBB, 0x99, 0x43,\n\t0xE5, 0xBB, 0xAC, 0x43, 0xE5, 0xBB, 0xB4, 0x43,\n\t0xE5, 0xBB, 0xBE, 0x43, 0xE5, 0xBC, 0x84, 0x43,\n\t// Bytes b40 - b7f\n\t0xE5, 0xBC, 0x8B, 0x43, 0xE5, 0xBC, 0x93, 0x43,\n\t0xE5, 0xBC, 0xA2, 0x43, 0xE5, 0xBD, 0x90, 0x43,\n\t0xE5, 0xBD, 0x93, 0x43, 0xE5, 0xBD, 0xA1, 0x43,\n\t0xE5, 0xBD, 0xA2, 0x43, 0xE5, 0xBD, 0xA9, 0x43,\n\t0xE5, 0xBD, 0xAB, 0x43, 0xE5, 0xBD, 0xB3, 0x43,\n\t0xE5, 0xBE, 0x8B, 0x43, 0xE5, 0xBE, 0x8C, 0x43,\n\t0xE5, 0xBE, 0x97, 0x43, 0xE5, 0xBE, 0x9A, 0x43,\n\t0xE5, 0xBE, 0xA9, 0x43, 0xE5, 0xBE, 0xAD, 0x43,\n\t// Bytes b80 - bbf\n\t0xE5, 0xBF, 0x83, 0x43, 0xE5, 0xBF, 0x8D, 0x43,\n\t0xE5, 0xBF, 0x97, 0x43, 0xE5, 0xBF, 0xB5, 0x43,\n\t0xE5, 0xBF, 0xB9, 0x43, 0xE6, 0x80, 0x92, 0x43,\n\t0xE6, 0x80, 0x9C, 0x43, 0xE6, 0x81, 0xB5, 0x43,\n\t0xE6, 0x82, 0x81, 0x43, 0xE6, 0x82, 0x94, 0x43,\n\t0xE6, 0x83, 0x87, 0x43, 0xE6, 0x83, 0x98, 0x43,\n\t0xE6, 0x83, 0xA1, 0x43, 0xE6, 0x84, 0x88, 0x43,\n\t0xE6, 0x85, 0x84, 0x43, 0xE6, 0x85, 0x88, 0x43,\n\t// Bytes bc0 - bff\n\t0xE6, 0x85, 0x8C, 0x43, 0xE6, 0x85, 0x8E, 0x43,\n\t0xE6, 0x85, 0xA0, 0x43, 0xE6, 0x85, 0xA8, 0x43,\n\t0xE6, 0x85, 0xBA, 0x43, 0xE6, 0x86, 0x8E, 0x43,\n\t0xE6, 0x86, 0x90, 0x43, 0xE6, 0x86, 0xA4, 0x43,\n\t0xE6, 0x86, 0xAF, 0x43, 0xE6, 0x86, 0xB2, 0x43,\n\t0xE6, 0x87, 0x9E, 0x43, 0xE6, 0x87, 0xB2, 0x43,\n\t0xE6, 0x87, 0xB6, 0x43, 0xE6, 0x88, 0x80, 0x43,\n\t0xE6, 0x88, 0x88, 0x43, 0xE6, 0x88, 0x90, 0x43,\n\t// Bytes c00 - c3f\n\t0xE6, 0x88, 0x9B, 0x43, 0xE6, 0x88, 0xAE, 0x43,\n\t0xE6, 0x88, 0xB4, 0x43, 0xE6, 0x88, 0xB6, 0x43,\n\t0xE6, 0x89, 0x8B, 0x43, 0xE6, 0x89, 0x93, 0x43,\n\t0xE6, 0x89, 0x9D, 0x43, 0xE6, 0x8A, 0x95, 0x43,\n\t0xE6, 0x8A, 0xB1, 0x43, 0xE6, 0x8B, 0x89, 0x43,\n\t0xE6, 0x8B, 0x8F, 0x43, 0xE6, 0x8B, 0x93, 0x43,\n\t0xE6, 0x8B, 0x94, 0x43, 0xE6, 0x8B, 0xBC, 0x43,\n\t0xE6, 0x8B, 0xBE, 0x43, 0xE6, 0x8C, 0x87, 0x43,\n\t// Bytes c40 - c7f\n\t0xE6, 0x8C, 0xBD, 0x43, 0xE6, 0x8D, 0x90, 0x43,\n\t0xE6, 0x8D, 0x95, 0x43, 0xE6, 0x8D, 0xA8, 0x43,\n\t0xE6, 0x8D, 0xBB, 0x43, 0xE6, 0x8E, 0x83, 0x43,\n\t0xE6, 0x8E, 0xA0, 0x43, 0xE6, 0x8E, 0xA9, 0x43,\n\t0xE6, 0x8F, 0x84, 0x43, 0xE6, 0x8F, 0x85, 0x43,\n\t0xE6, 0x8F, 0xA4, 0x43, 0xE6, 0x90, 0x9C, 0x43,\n\t0xE6, 0x90, 0xA2, 0x43, 0xE6, 0x91, 0x92, 0x43,\n\t0xE6, 0x91, 0xA9, 0x43, 0xE6, 0x91, 0xB7, 0x43,\n\t// Bytes c80 - cbf\n\t0xE6, 0x91, 0xBE, 0x43, 0xE6, 0x92, 0x9A, 0x43,\n\t0xE6, 0x92, 0x9D, 0x43, 0xE6, 0x93, 0x84, 0x43,\n\t0xE6, 0x94, 0xAF, 0x43, 0xE6, 0x94, 0xB4, 0x43,\n\t0xE6, 0x95, 0x8F, 0x43, 0xE6, 0x95, 0x96, 0x43,\n\t0xE6, 0x95, 0xAC, 0x43, 0xE6, 0x95, 0xB8, 0x43,\n\t0xE6, 0x96, 0x87, 0x43, 0xE6, 0x96, 0x97, 0x43,\n\t0xE6, 0x96, 0x99, 0x43, 0xE6, 0x96, 0xA4, 0x43,\n\t0xE6, 0x96, 0xB0, 0x43, 0xE6, 0x96, 0xB9, 0x43,\n\t// Bytes cc0 - cff\n\t0xE6, 0x97, 0x85, 0x43, 0xE6, 0x97, 0xA0, 0x43,\n\t0xE6, 0x97, 0xA2, 0x43, 0xE6, 0x97, 0xA3, 0x43,\n\t0xE6, 0x97, 0xA5, 0x43, 0xE6, 0x98, 0x93, 0x43,\n\t0xE6, 0x98, 0xA0, 0x43, 0xE6, 0x99, 0x89, 0x43,\n\t0xE6, 0x99, 0xB4, 0x43, 0xE6, 0x9A, 0x88, 0x43,\n\t0xE6, 0x9A, 0x91, 0x43, 0xE6, 0x9A, 0x9C, 0x43,\n\t0xE6, 0x9A, 0xB4, 0x43, 0xE6, 0x9B, 0x86, 0x43,\n\t0xE6, 0x9B, 0xB0, 0x43, 0xE6, 0x9B, 0xB4, 0x43,\n\t// Bytes d00 - d3f\n\t0xE6, 0x9B, 0xB8, 0x43, 0xE6, 0x9C, 0x80, 0x43,\n\t0xE6, 0x9C, 0x88, 0x43, 0xE6, 0x9C, 0x89, 0x43,\n\t0xE6, 0x9C, 0x97, 0x43, 0xE6, 0x9C, 0x9B, 0x43,\n\t0xE6, 0x9C, 0xA1, 0x43, 0xE6, 0x9C, 0xA8, 0x43,\n\t0xE6, 0x9D, 0x8E, 0x43, 0xE6, 0x9D, 0x93, 0x43,\n\t0xE6, 0x9D, 0x96, 0x43, 0xE6, 0x9D, 0x9E, 0x43,\n\t0xE6, 0x9D, 0xBB, 0x43, 0xE6, 0x9E, 0x85, 0x43,\n\t0xE6, 0x9E, 0x97, 0x43, 0xE6, 0x9F, 0xB3, 0x43,\n\t// Bytes d40 - d7f\n\t0xE6, 0x9F, 0xBA, 0x43, 0xE6, 0xA0, 0x97, 0x43,\n\t0xE6, 0xA0, 0x9F, 0x43, 0xE6, 0xA0, 0xAA, 0x43,\n\t0xE6, 0xA1, 0x92, 0x43, 0xE6, 0xA2, 0x81, 0x43,\n\t0xE6, 0xA2, 0x85, 0x43, 0xE6, 0xA2, 0x8E, 0x43,\n\t0xE6, 0xA2, 0xA8, 0x43, 0xE6, 0xA4, 0x94, 0x43,\n\t0xE6, 0xA5, 0x82, 0x43, 0xE6, 0xA6, 0xA3, 0x43,\n\t0xE6, 0xA7, 0xAA, 0x43, 0xE6, 0xA8, 0x82, 0x43,\n\t0xE6, 0xA8, 0x93, 0x43, 0xE6, 0xAA, 0xA8, 0x43,\n\t// Bytes d80 - dbf\n\t0xE6, 0xAB, 0x93, 0x43, 0xE6, 0xAB, 0x9B, 0x43,\n\t0xE6, 0xAC, 0x84, 0x43, 0xE6, 0xAC, 0xA0, 0x43,\n\t0xE6, 0xAC, 0xA1, 0x43, 0xE6, 0xAD, 0x94, 0x43,\n\t0xE6, 0xAD, 0xA2, 0x43, 0xE6, 0xAD, 0xA3, 0x43,\n\t0xE6, 0xAD, 0xB2, 0x43, 0xE6, 0xAD, 0xB7, 0x43,\n\t0xE6, 0xAD, 0xB9, 0x43, 0xE6, 0xAE, 0x9F, 0x43,\n\t0xE6, 0xAE, 0xAE, 0x43, 0xE6, 0xAE, 0xB3, 0x43,\n\t0xE6, 0xAE, 0xBA, 0x43, 0xE6, 0xAE, 0xBB, 0x43,\n\t// Bytes dc0 - dff\n\t0xE6, 0xAF, 0x8B, 0x43, 0xE6, 0xAF, 0x8D, 0x43,\n\t0xE6, 0xAF, 0x94, 0x43, 0xE6, 0xAF, 0x9B, 0x43,\n\t0xE6, 0xB0, 0x8F, 0x43, 0xE6, 0xB0, 0x94, 0x43,\n\t0xE6, 0xB0, 0xB4, 0x43, 0xE6, 0xB1, 0x8E, 0x43,\n\t0xE6, 0xB1, 0xA7, 0x43, 0xE6, 0xB2, 0x88, 0x43,\n\t0xE6, 0xB2, 0xBF, 0x43, 0xE6, 0xB3, 0x8C, 0x43,\n\t0xE6, 0xB3, 0x8D, 0x43, 0xE6, 0xB3, 0xA5, 0x43,\n\t0xE6, 0xB3, 0xA8, 0x43, 0xE6, 0xB4, 0x96, 0x43,\n\t// Bytes e00 - e3f\n\t0xE6, 0xB4, 0x9B, 0x43, 0xE6, 0xB4, 0x9E, 0x43,\n\t0xE6, 0xB4, 0xB4, 0x43, 0xE6, 0xB4, 0xBE, 0x43,\n\t0xE6, 0xB5, 0x81, 0x43, 0xE6, 0xB5, 0xA9, 0x43,\n\t0xE6, 0xB5, 0xAA, 0x43, 0xE6, 0xB5, 0xB7, 0x43,\n\t0xE6, 0xB5, 0xB8, 0x43, 0xE6, 0xB6, 0x85, 0x43,\n\t0xE6, 0xB7, 0x8B, 0x43, 0xE6, 0xB7, 0x9A, 0x43,\n\t0xE6, 0xB7, 0xAA, 0x43, 0xE6, 0xB7, 0xB9, 0x43,\n\t0xE6, 0xB8, 0x9A, 0x43, 0xE6, 0xB8, 0xAF, 0x43,\n\t// Bytes e40 - e7f\n\t0xE6, 0xB9, 0xAE, 0x43, 0xE6, 0xBA, 0x80, 0x43,\n\t0xE6, 0xBA, 0x9C, 0x43, 0xE6, 0xBA, 0xBA, 0x43,\n\t0xE6, 0xBB, 0x87, 0x43, 0xE6, 0xBB, 0x8B, 0x43,\n\t0xE6, 0xBB, 0x91, 0x43, 0xE6, 0xBB, 0x9B, 0x43,\n\t0xE6, 0xBC, 0x8F, 0x43, 0xE6, 0xBC, 0x94, 0x43,\n\t0xE6, 0xBC, 0xA2, 0x43, 0xE6, 0xBC, 0xA3, 0x43,\n\t0xE6, 0xBD, 0xAE, 0x43, 0xE6, 0xBF, 0x86, 0x43,\n\t0xE6, 0xBF, 0xAB, 0x43, 0xE6, 0xBF, 0xBE, 0x43,\n\t// Bytes e80 - ebf\n\t0xE7, 0x80, 0x9B, 0x43, 0xE7, 0x80, 0x9E, 0x43,\n\t0xE7, 0x80, 0xB9, 0x43, 0xE7, 0x81, 0x8A, 0x43,\n\t0xE7, 0x81, 0xAB, 0x43, 0xE7, 0x81, 0xB0, 0x43,\n\t0xE7, 0x81, 0xB7, 0x43, 0xE7, 0x81, 0xBD, 0x43,\n\t0xE7, 0x82, 0x99, 0x43, 0xE7, 0x82, 0xAD, 0x43,\n\t0xE7, 0x83, 0x88, 0x43, 0xE7, 0x83, 0x99, 0x43,\n\t0xE7, 0x84, 0xA1, 0x43, 0xE7, 0x85, 0x85, 0x43,\n\t0xE7, 0x85, 0x89, 0x43, 0xE7, 0x85, 0xAE, 0x43,\n\t// Bytes ec0 - eff\n\t0xE7, 0x86, 0x9C, 0x43, 0xE7, 0x87, 0x8E, 0x43,\n\t0xE7, 0x87, 0x90, 0x43, 0xE7, 0x88, 0x90, 0x43,\n\t0xE7, 0x88, 0x9B, 0x43, 0xE7, 0x88, 0xA8, 0x43,\n\t0xE7, 0x88, 0xAA, 0x43, 0xE7, 0x88, 0xAB, 0x43,\n\t0xE7, 0x88, 0xB5, 0x43, 0xE7, 0x88, 0xB6, 0x43,\n\t0xE7, 0x88, 0xBB, 0x43, 0xE7, 0x88, 0xBF, 0x43,\n\t0xE7, 0x89, 0x87, 0x43, 0xE7, 0x89, 0x90, 0x43,\n\t0xE7, 0x89, 0x99, 0x43, 0xE7, 0x89, 0x9B, 0x43,\n\t// Bytes f00 - f3f\n\t0xE7, 0x89, 0xA2, 0x43, 0xE7, 0x89, 0xB9, 0x43,\n\t0xE7, 0x8A, 0x80, 0x43, 0xE7, 0x8A, 0x95, 0x43,\n\t0xE7, 0x8A, 0xAC, 0x43, 0xE7, 0x8A, 0xAF, 0x43,\n\t0xE7, 0x8B, 0x80, 0x43, 0xE7, 0x8B, 0xBC, 0x43,\n\t0xE7, 0x8C, 0xAA, 0x43, 0xE7, 0x8D, 0xB5, 0x43,\n\t0xE7, 0x8D, 0xBA, 0x43, 0xE7, 0x8E, 0x84, 0x43,\n\t0xE7, 0x8E, 0x87, 0x43, 0xE7, 0x8E, 0x89, 0x43,\n\t0xE7, 0x8E, 0x8B, 0x43, 0xE7, 0x8E, 0xA5, 0x43,\n\t// Bytes f40 - f7f\n\t0xE7, 0x8E, 0xB2, 0x43, 0xE7, 0x8F, 0x9E, 0x43,\n\t0xE7, 0x90, 0x86, 0x43, 0xE7, 0x90, 0x89, 0x43,\n\t0xE7, 0x90, 0xA2, 0x43, 0xE7, 0x91, 0x87, 0x43,\n\t0xE7, 0x91, 0x9C, 0x43, 0xE7, 0x91, 0xA9, 0x43,\n\t0xE7, 0x91, 0xB1, 0x43, 0xE7, 0x92, 0x85, 0x43,\n\t0xE7, 0x92, 0x89, 0x43, 0xE7, 0x92, 0x98, 0x43,\n\t0xE7, 0x93, 0x8A, 0x43, 0xE7, 0x93, 0x9C, 0x43,\n\t0xE7, 0x93, 0xA6, 0x43, 0xE7, 0x94, 0x86, 0x43,\n\t// Bytes f80 - fbf\n\t0xE7, 0x94, 0x98, 0x43, 0xE7, 0x94, 0x9F, 0x43,\n\t0xE7, 0x94, 0xA4, 0x43, 0xE7, 0x94, 0xA8, 0x43,\n\t0xE7, 0x94, 0xB0, 0x43, 0xE7, 0x94, 0xB2, 0x43,\n\t0xE7, 0x94, 0xB3, 0x43, 0xE7, 0x94, 0xB7, 0x43,\n\t0xE7, 0x94, 0xBB, 0x43, 0xE7, 0x94, 0xBE, 0x43,\n\t0xE7, 0x95, 0x99, 0x43, 0xE7, 0x95, 0xA5, 0x43,\n\t0xE7, 0x95, 0xB0, 0x43, 0xE7, 0x96, 0x8B, 0x43,\n\t0xE7, 0x96, 0x92, 0x43, 0xE7, 0x97, 0xA2, 0x43,\n\t// Bytes fc0 - fff\n\t0xE7, 0x98, 0x90, 0x43, 0xE7, 0x98, 0x9D, 0x43,\n\t0xE7, 0x98, 0x9F, 0x43, 0xE7, 0x99, 0x82, 0x43,\n\t0xE7, 0x99, 0xA9, 0x43, 0xE7, 0x99, 0xB6, 0x43,\n\t0xE7, 0x99, 0xBD, 0x43, 0xE7, 0x9A, 0xAE, 0x43,\n\t0xE7, 0x9A, 0xBF, 0x43, 0xE7, 0x9B, 0x8A, 0x43,\n\t0xE7, 0x9B, 0x9B, 0x43, 0xE7, 0x9B, 0xA3, 0x43,\n\t0xE7, 0x9B, 0xA7, 0x43, 0xE7, 0x9B, 0xAE, 0x43,\n\t0xE7, 0x9B, 0xB4, 0x43, 0xE7, 0x9C, 0x81, 0x43,\n\t// Bytes 1000 - 103f\n\t0xE7, 0x9C, 0x9E, 0x43, 0xE7, 0x9C, 0x9F, 0x43,\n\t0xE7, 0x9D, 0x80, 0x43, 0xE7, 0x9D, 0x8A, 0x43,\n\t0xE7, 0x9E, 0x8B, 0x43, 0xE7, 0x9E, 0xA7, 0x43,\n\t0xE7, 0x9F, 0x9B, 0x43, 0xE7, 0x9F, 0xA2, 0x43,\n\t0xE7, 0x9F, 0xB3, 0x43, 0xE7, 0xA1, 0x8E, 0x43,\n\t0xE7, 0xA1, 0xAB, 0x43, 0xE7, 0xA2, 0x8C, 0x43,\n\t0xE7, 0xA2, 0x91, 0x43, 0xE7, 0xA3, 0x8A, 0x43,\n\t0xE7, 0xA3, 0x8C, 0x43, 0xE7, 0xA3, 0xBB, 0x43,\n\t// Bytes 1040 - 107f\n\t0xE7, 0xA4, 0xAA, 0x43, 0xE7, 0xA4, 0xBA, 0x43,\n\t0xE7, 0xA4, 0xBC, 0x43, 0xE7, 0xA4, 0xBE, 0x43,\n\t0xE7, 0xA5, 0x88, 0x43, 0xE7, 0xA5, 0x89, 0x43,\n\t0xE7, 0xA5, 0x90, 0x43, 0xE7, 0xA5, 0x96, 0x43,\n\t0xE7, 0xA5, 0x9D, 0x43, 0xE7, 0xA5, 0x9E, 0x43,\n\t0xE7, 0xA5, 0xA5, 0x43, 0xE7, 0xA5, 0xBF, 0x43,\n\t0xE7, 0xA6, 0x81, 0x43, 0xE7, 0xA6, 0x8D, 0x43,\n\t0xE7, 0xA6, 0x8E, 0x43, 0xE7, 0xA6, 0x8F, 0x43,\n\t// Bytes 1080 - 10bf\n\t0xE7, 0xA6, 0xAE, 0x43, 0xE7, 0xA6, 0xB8, 0x43,\n\t0xE7, 0xA6, 0xBE, 0x43, 0xE7, 0xA7, 0x8A, 0x43,\n\t0xE7, 0xA7, 0x98, 0x43, 0xE7, 0xA7, 0xAB, 0x43,\n\t0xE7, 0xA8, 0x9C, 0x43, 0xE7, 0xA9, 0x80, 0x43,\n\t0xE7, 0xA9, 0x8A, 0x43, 0xE7, 0xA9, 0x8F, 0x43,\n\t0xE7, 0xA9, 0xB4, 0x43, 0xE7, 0xA9, 0xBA, 0x43,\n\t0xE7, 0xAA, 0x81, 0x43, 0xE7, 0xAA, 0xB1, 0x43,\n\t0xE7, 0xAB, 0x8B, 0x43, 0xE7, 0xAB, 0xAE, 0x43,\n\t// Bytes 10c0 - 10ff\n\t0xE7, 0xAB, 0xB9, 0x43, 0xE7, 0xAC, 0xA0, 0x43,\n\t0xE7, 0xAE, 0x8F, 0x43, 0xE7, 0xAF, 0x80, 0x43,\n\t0xE7, 0xAF, 0x86, 0x43, 0xE7, 0xAF, 0x89, 0x43,\n\t0xE7, 0xB0, 0xBE, 0x43, 0xE7, 0xB1, 0xA0, 0x43,\n\t0xE7, 0xB1, 0xB3, 0x43, 0xE7, 0xB1, 0xBB, 0x43,\n\t0xE7, 0xB2, 0x92, 0x43, 0xE7, 0xB2, 0xBE, 0x43,\n\t0xE7, 0xB3, 0x92, 0x43, 0xE7, 0xB3, 0x96, 0x43,\n\t0xE7, 0xB3, 0xA3, 0x43, 0xE7, 0xB3, 0xA7, 0x43,\n\t// Bytes 1100 - 113f\n\t0xE7, 0xB3, 0xA8, 0x43, 0xE7, 0xB3, 0xB8, 0x43,\n\t0xE7, 0xB4, 0x80, 0x43, 0xE7, 0xB4, 0x90, 0x43,\n\t0xE7, 0xB4, 0xA2, 0x43, 0xE7, 0xB4, 0xAF, 0x43,\n\t0xE7, 0xB5, 0x82, 0x43, 0xE7, 0xB5, 0x9B, 0x43,\n\t0xE7, 0xB5, 0xA3, 0x43, 0xE7, 0xB6, 0xA0, 0x43,\n\t0xE7, 0xB6, 0xBE, 0x43, 0xE7, 0xB7, 0x87, 0x43,\n\t0xE7, 0xB7, 0xB4, 0x43, 0xE7, 0xB8, 0x82, 0x43,\n\t0xE7, 0xB8, 0x89, 0x43, 0xE7, 0xB8, 0xB7, 0x43,\n\t// Bytes 1140 - 117f\n\t0xE7, 0xB9, 0x81, 0x43, 0xE7, 0xB9, 0x85, 0x43,\n\t0xE7, 0xBC, 0xB6, 0x43, 0xE7, 0xBC, 0xBE, 0x43,\n\t0xE7, 0xBD, 0x91, 0x43, 0xE7, 0xBD, 0xB2, 0x43,\n\t0xE7, 0xBD, 0xB9, 0x43, 0xE7, 0xBD, 0xBA, 0x43,\n\t0xE7, 0xBE, 0x85, 0x43, 0xE7, 0xBE, 0x8A, 0x43,\n\t0xE7, 0xBE, 0x95, 0x43, 0xE7, 0xBE, 0x9A, 0x43,\n\t0xE7, 0xBE, 0xBD, 0x43, 0xE7, 0xBF, 0xBA, 0x43,\n\t0xE8, 0x80, 0x81, 0x43, 0xE8, 0x80, 0x85, 0x43,\n\t// Bytes 1180 - 11bf\n\t0xE8, 0x80, 0x8C, 0x43, 0xE8, 0x80, 0x92, 0x43,\n\t0xE8, 0x80, 0xB3, 0x43, 0xE8, 0x81, 0x86, 0x43,\n\t0xE8, 0x81, 0xA0, 0x43, 0xE8, 0x81, 0xAF, 0x43,\n\t0xE8, 0x81, 0xB0, 0x43, 0xE8, 0x81, 0xBE, 0x43,\n\t0xE8, 0x81, 0xBF, 0x43, 0xE8, 0x82, 0x89, 0x43,\n\t0xE8, 0x82, 0x8B, 0x43, 0xE8, 0x82, 0xAD, 0x43,\n\t0xE8, 0x82, 0xB2, 0x43, 0xE8, 0x84, 0x83, 0x43,\n\t0xE8, 0x84, 0xBE, 0x43, 0xE8, 0x87, 0x98, 0x43,\n\t// Bytes 11c0 - 11ff\n\t0xE8, 0x87, 0xA3, 0x43, 0xE8, 0x87, 0xA8, 0x43,\n\t0xE8, 0x87, 0xAA, 0x43, 0xE8, 0x87, 0xAD, 0x43,\n\t0xE8, 0x87, 0xB3, 0x43, 0xE8, 0x87, 0xBC, 0x43,\n\t0xE8, 0x88, 0x81, 0x43, 0xE8, 0x88, 0x84, 0x43,\n\t0xE8, 0x88, 0x8C, 0x43, 0xE8, 0x88, 0x98, 0x43,\n\t0xE8, 0x88, 0x9B, 0x43, 0xE8, 0x88, 0x9F, 0x43,\n\t0xE8, 0x89, 0xAE, 0x43, 0xE8, 0x89, 0xAF, 0x43,\n\t0xE8, 0x89, 0xB2, 0x43, 0xE8, 0x89, 0xB8, 0x43,\n\t// Bytes 1200 - 123f\n\t0xE8, 0x89, 0xB9, 0x43, 0xE8, 0x8A, 0x8B, 0x43,\n\t0xE8, 0x8A, 0x91, 0x43, 0xE8, 0x8A, 0x9D, 0x43,\n\t0xE8, 0x8A, 0xB1, 0x43, 0xE8, 0x8A, 0xB3, 0x43,\n\t0xE8, 0x8A, 0xBD, 0x43, 0xE8, 0x8B, 0xA5, 0x43,\n\t0xE8, 0x8B, 0xA6, 0x43, 0xE8, 0x8C, 0x9D, 0x43,\n\t0xE8, 0x8C, 0xA3, 0x43, 0xE8, 0x8C, 0xB6, 0x43,\n\t0xE8, 0x8D, 0x92, 0x43, 0xE8, 0x8D, 0x93, 0x43,\n\t0xE8, 0x8D, 0xA3, 0x43, 0xE8, 0x8E, 0xAD, 0x43,\n\t// Bytes 1240 - 127f\n\t0xE8, 0x8E, 0xBD, 0x43, 0xE8, 0x8F, 0x89, 0x43,\n\t0xE8, 0x8F, 0x8A, 0x43, 0xE8, 0x8F, 0x8C, 0x43,\n\t0xE8, 0x8F, 0x9C, 0x43, 0xE8, 0x8F, 0xA7, 0x43,\n\t0xE8, 0x8F, 0xAF, 0x43, 0xE8, 0x8F, 0xB1, 0x43,\n\t0xE8, 0x90, 0xBD, 0x43, 0xE8, 0x91, 0x89, 0x43,\n\t0xE8, 0x91, 0x97, 0x43, 0xE8, 0x93, 0xAE, 0x43,\n\t0xE8, 0x93, 0xB1, 0x43, 0xE8, 0x93, 0xB3, 0x43,\n\t0xE8, 0x93, 0xBC, 0x43, 0xE8, 0x94, 0x96, 0x43,\n\t// Bytes 1280 - 12bf\n\t0xE8, 0x95, 0xA4, 0x43, 0xE8, 0x97, 0x8D, 0x43,\n\t0xE8, 0x97, 0xBA, 0x43, 0xE8, 0x98, 0x86, 0x43,\n\t0xE8, 0x98, 0x92, 0x43, 0xE8, 0x98, 0xAD, 0x43,\n\t0xE8, 0x98, 0xBF, 0x43, 0xE8, 0x99, 0x8D, 0x43,\n\t0xE8, 0x99, 0x90, 0x43, 0xE8, 0x99, 0x9C, 0x43,\n\t0xE8, 0x99, 0xA7, 0x43, 0xE8, 0x99, 0xA9, 0x43,\n\t0xE8, 0x99, 0xAB, 0x43, 0xE8, 0x9A, 0x88, 0x43,\n\t0xE8, 0x9A, 0xA9, 0x43, 0xE8, 0x9B, 0xA2, 0x43,\n\t// Bytes 12c0 - 12ff\n\t0xE8, 0x9C, 0x8E, 0x43, 0xE8, 0x9C, 0xA8, 0x43,\n\t0xE8, 0x9D, 0xAB, 0x43, 0xE8, 0x9D, 0xB9, 0x43,\n\t0xE8, 0x9E, 0x86, 0x43, 0xE8, 0x9E, 0xBA, 0x43,\n\t0xE8, 0x9F, 0xA1, 0x43, 0xE8, 0xA0, 0x81, 0x43,\n\t0xE8, 0xA0, 0x9F, 0x43, 0xE8, 0xA1, 0x80, 0x43,\n\t0xE8, 0xA1, 0x8C, 0x43, 0xE8, 0xA1, 0xA0, 0x43,\n\t0xE8, 0xA1, 0xA3, 0x43, 0xE8, 0xA3, 0x82, 0x43,\n\t0xE8, 0xA3, 0x8F, 0x43, 0xE8, 0xA3, 0x97, 0x43,\n\t// Bytes 1300 - 133f\n\t0xE8, 0xA3, 0x9E, 0x43, 0xE8, 0xA3, 0xA1, 0x43,\n\t0xE8, 0xA3, 0xB8, 0x43, 0xE8, 0xA3, 0xBA, 0x43,\n\t0xE8, 0xA4, 0x90, 0x43, 0xE8, 0xA5, 0x81, 0x43,\n\t0xE8, 0xA5, 0xA4, 0x43, 0xE8, 0xA5, 0xBE, 0x43,\n\t0xE8, 0xA6, 0x86, 0x43, 0xE8, 0xA6, 0x8B, 0x43,\n\t0xE8, 0xA6, 0x96, 0x43, 0xE8, 0xA7, 0x92, 0x43,\n\t0xE8, 0xA7, 0xA3, 0x43, 0xE8, 0xA8, 0x80, 0x43,\n\t0xE8, 0xAA, 0xA0, 0x43, 0xE8, 0xAA, 0xAA, 0x43,\n\t// Bytes 1340 - 137f\n\t0xE8, 0xAA, 0xBF, 0x43, 0xE8, 0xAB, 0x8B, 0x43,\n\t0xE8, 0xAB, 0x92, 0x43, 0xE8, 0xAB, 0x96, 0x43,\n\t0xE8, 0xAB, 0xAD, 0x43, 0xE8, 0xAB, 0xB8, 0x43,\n\t0xE8, 0xAB, 0xBE, 0x43, 0xE8, 0xAC, 0x81, 0x43,\n\t0xE8, 0xAC, 0xB9, 0x43, 0xE8, 0xAD, 0x98, 0x43,\n\t0xE8, 0xAE, 0x80, 0x43, 0xE8, 0xAE, 0x8A, 0x43,\n\t0xE8, 0xB0, 0xB7, 0x43, 0xE8, 0xB1, 0x86, 0x43,\n\t0xE8, 0xB1, 0x88, 0x43, 0xE8, 0xB1, 0x95, 0x43,\n\t// Bytes 1380 - 13bf\n\t0xE8, 0xB1, 0xB8, 0x43, 0xE8, 0xB2, 0x9D, 0x43,\n\t0xE8, 0xB2, 0xA1, 0x43, 0xE8, 0xB2, 0xA9, 0x43,\n\t0xE8, 0xB2, 0xAB, 0x43, 0xE8, 0xB3, 0x81, 0x43,\n\t0xE8, 0xB3, 0x82, 0x43, 0xE8, 0xB3, 0x87, 0x43,\n\t0xE8, 0xB3, 0x88, 0x43, 0xE8, 0xB3, 0x93, 0x43,\n\t0xE8, 0xB4, 0x88, 0x43, 0xE8, 0xB4, 0x9B, 0x43,\n\t0xE8, 0xB5, 0xA4, 0x43, 0xE8, 0xB5, 0xB0, 0x43,\n\t0xE8, 0xB5, 0xB7, 0x43, 0xE8, 0xB6, 0xB3, 0x43,\n\t// Bytes 13c0 - 13ff\n\t0xE8, 0xB6, 0xBC, 0x43, 0xE8, 0xB7, 0x8B, 0x43,\n\t0xE8, 0xB7, 0xAF, 0x43, 0xE8, 0xB7, 0xB0, 0x43,\n\t0xE8, 0xBA, 0xAB, 0x43, 0xE8, 0xBB, 0x8A, 0x43,\n\t0xE8, 0xBB, 0x94, 0x43, 0xE8, 0xBC, 0xA6, 0x43,\n\t0xE8, 0xBC, 0xAA, 0x43, 0xE8, 0xBC, 0xB8, 0x43,\n\t0xE8, 0xBC, 0xBB, 0x43, 0xE8, 0xBD, 0xA2, 0x43,\n\t0xE8, 0xBE, 0x9B, 0x43, 0xE8, 0xBE, 0x9E, 0x43,\n\t0xE8, 0xBE, 0xB0, 0x43, 0xE8, 0xBE, 0xB5, 0x43,\n\t// Bytes 1400 - 143f\n\t0xE8, 0xBE, 0xB6, 0x43, 0xE9, 0x80, 0xA3, 0x43,\n\t0xE9, 0x80, 0xB8, 0x43, 0xE9, 0x81, 0x8A, 0x43,\n\t0xE9, 0x81, 0xA9, 0x43, 0xE9, 0x81, 0xB2, 0x43,\n\t0xE9, 0x81, 0xBC, 0x43, 0xE9, 0x82, 0x8F, 0x43,\n\t0xE9, 0x82, 0x91, 0x43, 0xE9, 0x82, 0x94, 0x43,\n\t0xE9, 0x83, 0x8E, 0x43, 0xE9, 0x83, 0x9E, 0x43,\n\t0xE9, 0x83, 0xB1, 0x43, 0xE9, 0x83, 0xBD, 0x43,\n\t0xE9, 0x84, 0x91, 0x43, 0xE9, 0x84, 0x9B, 0x43,\n\t// Bytes 1440 - 147f\n\t0xE9, 0x85, 0x89, 0x43, 0xE9, 0x85, 0x8D, 0x43,\n\t0xE9, 0x85, 0xAA, 0x43, 0xE9, 0x86, 0x99, 0x43,\n\t0xE9, 0x86, 0xB4, 0x43, 0xE9, 0x87, 0x86, 0x43,\n\t0xE9, 0x87, 0x8C, 0x43, 0xE9, 0x87, 0x8F, 0x43,\n\t0xE9, 0x87, 0x91, 0x43, 0xE9, 0x88, 0xB4, 0x43,\n\t0xE9, 0x88, 0xB8, 0x43, 0xE9, 0x89, 0xB6, 0x43,\n\t0xE9, 0x89, 0xBC, 0x43, 0xE9, 0x8B, 0x97, 0x43,\n\t0xE9, 0x8B, 0x98, 0x43, 0xE9, 0x8C, 0x84, 0x43,\n\t// Bytes 1480 - 14bf\n\t0xE9, 0x8D, 0x8A, 0x43, 0xE9, 0x8F, 0xB9, 0x43,\n\t0xE9, 0x90, 0x95, 0x43, 0xE9, 0x95, 0xB7, 0x43,\n\t0xE9, 0x96, 0x80, 0x43, 0xE9, 0x96, 0x8B, 0x43,\n\t0xE9, 0x96, 0xAD, 0x43, 0xE9, 0x96, 0xB7, 0x43,\n\t0xE9, 0x98, 0x9C, 0x43, 0xE9, 0x98, 0xAE, 0x43,\n\t0xE9, 0x99, 0x8B, 0x43, 0xE9, 0x99, 0x8D, 0x43,\n\t0xE9, 0x99, 0xB5, 0x43, 0xE9, 0x99, 0xB8, 0x43,\n\t0xE9, 0x99, 0xBC, 0x43, 0xE9, 0x9A, 0x86, 0x43,\n\t// Bytes 14c0 - 14ff\n\t0xE9, 0x9A, 0xA3, 0x43, 0xE9, 0x9A, 0xB6, 0x43,\n\t0xE9, 0x9A, 0xB7, 0x43, 0xE9, 0x9A, 0xB8, 0x43,\n\t0xE9, 0x9A, 0xB9, 0x43, 0xE9, 0x9B, 0x83, 0x43,\n\t0xE9, 0x9B, 0xA2, 0x43, 0xE9, 0x9B, 0xA3, 0x43,\n\t0xE9, 0x9B, 0xA8, 0x43, 0xE9, 0x9B, 0xB6, 0x43,\n\t0xE9, 0x9B, 0xB7, 0x43, 0xE9, 0x9C, 0xA3, 0x43,\n\t0xE9, 0x9C, 0xB2, 0x43, 0xE9, 0x9D, 0x88, 0x43,\n\t0xE9, 0x9D, 0x91, 0x43, 0xE9, 0x9D, 0x96, 0x43,\n\t// Bytes 1500 - 153f\n\t0xE9, 0x9D, 0x9E, 0x43, 0xE9, 0x9D, 0xA2, 0x43,\n\t0xE9, 0x9D, 0xA9, 0x43, 0xE9, 0x9F, 0x8B, 0x43,\n\t0xE9, 0x9F, 0x9B, 0x43, 0xE9, 0x9F, 0xA0, 0x43,\n\t0xE9, 0x9F, 0xAD, 0x43, 0xE9, 0x9F, 0xB3, 0x43,\n\t0xE9, 0x9F, 0xBF, 0x43, 0xE9, 0xA0, 0x81, 0x43,\n\t0xE9, 0xA0, 0x85, 0x43, 0xE9, 0xA0, 0x8B, 0x43,\n\t0xE9, 0xA0, 0x98, 0x43, 0xE9, 0xA0, 0xA9, 0x43,\n\t0xE9, 0xA0, 0xBB, 0x43, 0xE9, 0xA1, 0x9E, 0x43,\n\t// Bytes 1540 - 157f\n\t0xE9, 0xA2, 0xA8, 0x43, 0xE9, 0xA3, 0x9B, 0x43,\n\t0xE9, 0xA3, 0x9F, 0x43, 0xE9, 0xA3, 0xA2, 0x43,\n\t0xE9, 0xA3, 0xAF, 0x43, 0xE9, 0xA3, 0xBC, 0x43,\n\t0xE9, 0xA4, 0xA8, 0x43, 0xE9, 0xA4, 0xA9, 0x43,\n\t0xE9, 0xA6, 0x96, 0x43, 0xE9, 0xA6, 0x99, 0x43,\n\t0xE9, 0xA6, 0xA7, 0x43, 0xE9, 0xA6, 0xAC, 0x43,\n\t0xE9, 0xA7, 0x82, 0x43, 0xE9, 0xA7, 0xB1, 0x43,\n\t0xE9, 0xA7, 0xBE, 0x43, 0xE9, 0xA9, 0xAA, 0x43,\n\t// Bytes 1580 - 15bf\n\t0xE9, 0xAA, 0xA8, 0x43, 0xE9, 0xAB, 0x98, 0x43,\n\t0xE9, 0xAB, 0x9F, 0x43, 0xE9, 0xAC, 0x92, 0x43,\n\t0xE9, 0xAC, 0xA5, 0x43, 0xE9, 0xAC, 0xAF, 0x43,\n\t0xE9, 0xAC, 0xB2, 0x43, 0xE9, 0xAC, 0xBC, 0x43,\n\t0xE9, 0xAD, 0x9A, 0x43, 0xE9, 0xAD, 0xAF, 0x43,\n\t0xE9, 0xB1, 0x80, 0x43, 0xE9, 0xB1, 0x97, 0x43,\n\t0xE9, 0xB3, 0xA5, 0x43, 0xE9, 0xB3, 0xBD, 0x43,\n\t0xE9, 0xB5, 0xA7, 0x43, 0xE9, 0xB6, 0xB4, 0x43,\n\t// Bytes 15c0 - 15ff\n\t0xE9, 0xB7, 0xBA, 0x43, 0xE9, 0xB8, 0x9E, 0x43,\n\t0xE9, 0xB9, 0xB5, 0x43, 0xE9, 0xB9, 0xBF, 0x43,\n\t0xE9, 0xBA, 0x97, 0x43, 0xE9, 0xBA, 0x9F, 0x43,\n\t0xE9, 0xBA, 0xA5, 0x43, 0xE9, 0xBA, 0xBB, 0x43,\n\t0xE9, 0xBB, 0x83, 0x43, 0xE9, 0xBB, 0x8D, 0x43,\n\t0xE9, 0xBB, 0x8E, 0x43, 0xE9, 0xBB, 0x91, 0x43,\n\t0xE9, 0xBB, 0xB9, 0x43, 0xE9, 0xBB, 0xBD, 0x43,\n\t0xE9, 0xBB, 0xBE, 0x43, 0xE9, 0xBC, 0x85, 0x43,\n\t// Bytes 1600 - 163f\n\t0xE9, 0xBC, 0x8E, 0x43, 0xE9, 0xBC, 0x8F, 0x43,\n\t0xE9, 0xBC, 0x93, 0x43, 0xE9, 0xBC, 0x96, 0x43,\n\t0xE9, 0xBC, 0xA0, 0x43, 0xE9, 0xBC, 0xBB, 0x43,\n\t0xE9, 0xBD, 0x83, 0x43, 0xE9, 0xBD, 0x8A, 0x43,\n\t0xE9, 0xBD, 0x92, 0x43, 0xE9, 0xBE, 0x8D, 0x43,\n\t0xE9, 0xBE, 0x8E, 0x43, 0xE9, 0xBE, 0x9C, 0x43,\n\t0xE9, 0xBE, 0x9F, 0x43, 0xE9, 0xBE, 0xA0, 0x43,\n\t0xEA, 0x9C, 0xA7, 0x43, 0xEA, 0x9D, 0xAF, 0x43,\n\t// Bytes 1640 - 167f\n\t0xEA, 0xAC, 0xB7, 0x43, 0xEA, 0xAD, 0x92, 0x44,\n\t0xF0, 0xA0, 0x84, 0xA2, 0x44, 0xF0, 0xA0, 0x94,\n\t0x9C, 0x44, 0xF0, 0xA0, 0x94, 0xA5, 0x44, 0xF0,\n\t0xA0, 0x95, 0x8B, 0x44, 0xF0, 0xA0, 0x98, 0xBA,\n\t0x44, 0xF0, 0xA0, 0xA0, 0x84, 0x44, 0xF0, 0xA0,\n\t0xA3, 0x9E, 0x44, 0xF0, 0xA0, 0xA8, 0xAC, 0x44,\n\t0xF0, 0xA0, 0xAD, 0xA3, 0x44, 0xF0, 0xA1, 0x93,\n\t0xA4, 0x44, 0xF0, 0xA1, 0x9A, 0xA8, 0x44, 0xF0,\n\t// Bytes 1680 - 16bf\n\t0xA1, 0x9B, 0xAA, 0x44, 0xF0, 0xA1, 0xA7, 0x88,\n\t0x44, 0xF0, 0xA1, 0xAC, 0x98, 0x44, 0xF0, 0xA1,\n\t0xB4, 0x8B, 0x44, 0xF0, 0xA1, 0xB7, 0xA4, 0x44,\n\t0xF0, 0xA1, 0xB7, 0xA6, 0x44, 0xF0, 0xA2, 0x86,\n\t0x83, 0x44, 0xF0, 0xA2, 0x86, 0x9F, 0x44, 0xF0,\n\t0xA2, 0x8C, 0xB1, 0x44, 0xF0, 0xA2, 0x9B, 0x94,\n\t0x44, 0xF0, 0xA2, 0xA1, 0x84, 0x44, 0xF0, 0xA2,\n\t0xA1, 0x8A, 0x44, 0xF0, 0xA2, 0xAC, 0x8C, 0x44,\n\t// Bytes 16c0 - 16ff\n\t0xF0, 0xA2, 0xAF, 0xB1, 0x44, 0xF0, 0xA3, 0x80,\n\t0x8A, 0x44, 0xF0, 0xA3, 0x8A, 0xB8, 0x44, 0xF0,\n\t0xA3, 0x8D, 0x9F, 0x44, 0xF0, 0xA3, 0x8E, 0x93,\n\t0x44, 0xF0, 0xA3, 0x8E, 0x9C, 0x44, 0xF0, 0xA3,\n\t0x8F, 0x83, 0x44, 0xF0, 0xA3, 0x8F, 0x95, 0x44,\n\t0xF0, 0xA3, 0x91, 0xAD, 0x44, 0xF0, 0xA3, 0x9A,\n\t0xA3, 0x44, 0xF0, 0xA3, 0xA2, 0xA7, 0x44, 0xF0,\n\t0xA3, 0xAA, 0x8D, 0x44, 0xF0, 0xA3, 0xAB, 0xBA,\n\t// Bytes 1700 - 173f\n\t0x44, 0xF0, 0xA3, 0xB2, 0xBC, 0x44, 0xF0, 0xA3,\n\t0xB4, 0x9E, 0x44, 0xF0, 0xA3, 0xBB, 0x91, 0x44,\n\t0xF0, 0xA3, 0xBD, 0x9E, 0x44, 0xF0, 0xA3, 0xBE,\n\t0x8E, 0x44, 0xF0, 0xA4, 0x89, 0xA3, 0x44, 0xF0,\n\t0xA4, 0x8B, 0xAE, 0x44, 0xF0, 0xA4, 0x8E, 0xAB,\n\t0x44, 0xF0, 0xA4, 0x98, 0x88, 0x44, 0xF0, 0xA4,\n\t0x9C, 0xB5, 0x44, 0xF0, 0xA4, 0xA0, 0x94, 0x44,\n\t0xF0, 0xA4, 0xB0, 0xB6, 0x44, 0xF0, 0xA4, 0xB2,\n\t// Bytes 1740 - 177f\n\t0x92, 0x44, 0xF0, 0xA4, 0xBE, 0xA1, 0x44, 0xF0,\n\t0xA4, 0xBE, 0xB8, 0x44, 0xF0, 0xA5, 0x81, 0x84,\n\t0x44, 0xF0, 0xA5, 0x83, 0xB2, 0x44, 0xF0, 0xA5,\n\t0x83, 0xB3, 0x44, 0xF0, 0xA5, 0x84, 0x99, 0x44,\n\t0xF0, 0xA5, 0x84, 0xB3, 0x44, 0xF0, 0xA5, 0x89,\n\t0x89, 0x44, 0xF0, 0xA5, 0x90, 0x9D, 0x44, 0xF0,\n\t0xA5, 0x98, 0xA6, 0x44, 0xF0, 0xA5, 0x9A, 0x9A,\n\t0x44, 0xF0, 0xA5, 0x9B, 0x85, 0x44, 0xF0, 0xA5,\n\t// Bytes 1780 - 17bf\n\t0xA5, 0xBC, 0x44, 0xF0, 0xA5, 0xAA, 0xA7, 0x44,\n\t0xF0, 0xA5, 0xAE, 0xAB, 0x44, 0xF0, 0xA5, 0xB2,\n\t0x80, 0x44, 0xF0, 0xA5, 0xB3, 0x90, 0x44, 0xF0,\n\t0xA5, 0xBE, 0x86, 0x44, 0xF0, 0xA6, 0x87, 0x9A,\n\t0x44, 0xF0, 0xA6, 0x88, 0xA8, 0x44, 0xF0, 0xA6,\n\t0x89, 0x87, 0x44, 0xF0, 0xA6, 0x8B, 0x99, 0x44,\n\t0xF0, 0xA6, 0x8C, 0xBE, 0x44, 0xF0, 0xA6, 0x93,\n\t0x9A, 0x44, 0xF0, 0xA6, 0x94, 0xA3, 0x44, 0xF0,\n\t// Bytes 17c0 - 17ff\n\t0xA6, 0x96, 0xA8, 0x44, 0xF0, 0xA6, 0x9E, 0xA7,\n\t0x44, 0xF0, 0xA6, 0x9E, 0xB5, 0x44, 0xF0, 0xA6,\n\t0xAC, 0xBC, 0x44, 0xF0, 0xA6, 0xB0, 0xB6, 0x44,\n\t0xF0, 0xA6, 0xB3, 0x95, 0x44, 0xF0, 0xA6, 0xB5,\n\t0xAB, 0x44, 0xF0, 0xA6, 0xBC, 0xAC, 0x44, 0xF0,\n\t0xA6, 0xBE, 0xB1, 0x44, 0xF0, 0xA7, 0x83, 0x92,\n\t0x44, 0xF0, 0xA7, 0x8F, 0x8A, 0x44, 0xF0, 0xA7,\n\t0x99, 0xA7, 0x44, 0xF0, 0xA7, 0xA2, 0xAE, 0x44,\n\t// Bytes 1800 - 183f\n\t0xF0, 0xA7, 0xA5, 0xA6, 0x44, 0xF0, 0xA7, 0xB2,\n\t0xA8, 0x44, 0xF0, 0xA7, 0xBB, 0x93, 0x44, 0xF0,\n\t0xA7, 0xBC, 0xAF, 0x44, 0xF0, 0xA8, 0x97, 0x92,\n\t0x44, 0xF0, 0xA8, 0x97, 0xAD, 0x44, 0xF0, 0xA8,\n\t0x9C, 0xAE, 0x44, 0xF0, 0xA8, 0xAF, 0xBA, 0x44,\n\t0xF0, 0xA8, 0xB5, 0xB7, 0x44, 0xF0, 0xA9, 0x85,\n\t0x85, 0x44, 0xF0, 0xA9, 0x87, 0x9F, 0x44, 0xF0,\n\t0xA9, 0x88, 0x9A, 0x44, 0xF0, 0xA9, 0x90, 0x8A,\n\t// Bytes 1840 - 187f\n\t0x44, 0xF0, 0xA9, 0x92, 0x96, 0x44, 0xF0, 0xA9,\n\t0x96, 0xB6, 0x44, 0xF0, 0xA9, 0xAC, 0xB0, 0x44,\n\t0xF0, 0xAA, 0x83, 0x8E, 0x44, 0xF0, 0xAA, 0x84,\n\t0x85, 0x44, 0xF0, 0xAA, 0x88, 0x8E, 0x44, 0xF0,\n\t0xAA, 0x8A, 0x91, 0x44, 0xF0, 0xAA, 0x8E, 0x92,\n\t0x44, 0xF0, 0xAA, 0x98, 0x80, 0x42, 0x21, 0x21,\n\t0x42, 0x21, 0x3F, 0x42, 0x2E, 0x2E, 0x42, 0x30,\n\t0x2C, 0x42, 0x30, 0x2E, 0x42, 0x31, 0x2C, 0x42,\n\t// Bytes 1880 - 18bf\n\t0x31, 0x2E, 0x42, 0x31, 0x30, 0x42, 0x31, 0x31,\n\t0x42, 0x31, 0x32, 0x42, 0x31, 0x33, 0x42, 0x31,\n\t0x34, 0x42, 0x31, 0x35, 0x42, 0x31, 0x36, 0x42,\n\t0x31, 0x37, 0x42, 0x31, 0x38, 0x42, 0x31, 0x39,\n\t0x42, 0x32, 0x2C, 0x42, 0x32, 0x2E, 0x42, 0x32,\n\t0x30, 0x42, 0x32, 0x31, 0x42, 0x32, 0x32, 0x42,\n\t0x32, 0x33, 0x42, 0x32, 0x34, 0x42, 0x32, 0x35,\n\t0x42, 0x32, 0x36, 0x42, 0x32, 0x37, 0x42, 0x32,\n\t// Bytes 18c0 - 18ff\n\t0x38, 0x42, 0x32, 0x39, 0x42, 0x33, 0x2C, 0x42,\n\t0x33, 0x2E, 0x42, 0x33, 0x30, 0x42, 0x33, 0x31,\n\t0x42, 0x33, 0x32, 0x42, 0x33, 0x33, 0x42, 0x33,\n\t0x34, 0x42, 0x33, 0x35, 0x42, 0x33, 0x36, 0x42,\n\t0x33, 0x37, 0x42, 0x33, 0x38, 0x42, 0x33, 0x39,\n\t0x42, 0x34, 0x2C, 0x42, 0x34, 0x2E, 0x42, 0x34,\n\t0x30, 0x42, 0x34, 0x31, 0x42, 0x34, 0x32, 0x42,\n\t0x34, 0x33, 0x42, 0x34, 0x34, 0x42, 0x34, 0x35,\n\t// Bytes 1900 - 193f\n\t0x42, 0x34, 0x36, 0x42, 0x34, 0x37, 0x42, 0x34,\n\t0x38, 0x42, 0x34, 0x39, 0x42, 0x35, 0x2C, 0x42,\n\t0x35, 0x2E, 0x42, 0x35, 0x30, 0x42, 0x36, 0x2C,\n\t0x42, 0x36, 0x2E, 0x42, 0x37, 0x2C, 0x42, 0x37,\n\t0x2E, 0x42, 0x38, 0x2C, 0x42, 0x38, 0x2E, 0x42,\n\t0x39, 0x2C, 0x42, 0x39, 0x2E, 0x42, 0x3D, 0x3D,\n\t0x42, 0x3F, 0x21, 0x42, 0x3F, 0x3F, 0x42, 0x41,\n\t0x55, 0x42, 0x42, 0x71, 0x42, 0x43, 0x44, 0x42,\n\t// Bytes 1940 - 197f\n\t0x44, 0x4A, 0x42, 0x44, 0x5A, 0x42, 0x44, 0x7A,\n\t0x42, 0x47, 0x42, 0x42, 0x47, 0x79, 0x42, 0x48,\n\t0x50, 0x42, 0x48, 0x56, 0x42, 0x48, 0x67, 0x42,\n\t0x48, 0x7A, 0x42, 0x49, 0x49, 0x42, 0x49, 0x4A,\n\t0x42, 0x49, 0x55, 0x42, 0x49, 0x56, 0x42, 0x49,\n\t0x58, 0x42, 0x4B, 0x42, 0x42, 0x4B, 0x4B, 0x42,\n\t0x4B, 0x4D, 0x42, 0x4C, 0x4A, 0x42, 0x4C, 0x6A,\n\t0x42, 0x4D, 0x42, 0x42, 0x4D, 0x43, 0x42, 0x4D,\n\t// Bytes 1980 - 19bf\n\t0x44, 0x42, 0x4D, 0x56, 0x42, 0x4D, 0x57, 0x42,\n\t0x4E, 0x4A, 0x42, 0x4E, 0x6A, 0x42, 0x4E, 0x6F,\n\t0x42, 0x50, 0x48, 0x42, 0x50, 0x52, 0x42, 0x50,\n\t0x61, 0x42, 0x52, 0x73, 0x42, 0x53, 0x44, 0x42,\n\t0x53, 0x4D, 0x42, 0x53, 0x53, 0x42, 0x53, 0x76,\n\t0x42, 0x54, 0x4D, 0x42, 0x56, 0x49, 0x42, 0x57,\n\t0x43, 0x42, 0x57, 0x5A, 0x42, 0x57, 0x62, 0x42,\n\t0x58, 0x49, 0x42, 0x63, 0x63, 0x42, 0x63, 0x64,\n\t// Bytes 19c0 - 19ff\n\t0x42, 0x63, 0x6D, 0x42, 0x64, 0x42, 0x42, 0x64,\n\t0x61, 0x42, 0x64, 0x6C, 0x42, 0x64, 0x6D, 0x42,\n\t0x64, 0x7A, 0x42, 0x65, 0x56, 0x42, 0x66, 0x66,\n\t0x42, 0x66, 0x69, 0x42, 0x66, 0x6C, 0x42, 0x66,\n\t0x6D, 0x42, 0x68, 0x61, 0x42, 0x69, 0x69, 0x42,\n\t0x69, 0x6A, 0x42, 0x69, 0x6E, 0x42, 0x69, 0x76,\n\t0x42, 0x69, 0x78, 0x42, 0x6B, 0x41, 0x42, 0x6B,\n\t0x56, 0x42, 0x6B, 0x57, 0x42, 0x6B, 0x67, 0x42,\n\t// Bytes 1a00 - 1a3f\n\t0x6B, 0x6C, 0x42, 0x6B, 0x6D, 0x42, 0x6B, 0x74,\n\t0x42, 0x6C, 0x6A, 0x42, 0x6C, 0x6D, 0x42, 0x6C,\n\t0x6E, 0x42, 0x6C, 0x78, 0x42, 0x6D, 0x32, 0x42,\n\t0x6D, 0x33, 0x42, 0x6D, 0x41, 0x42, 0x6D, 0x56,\n\t0x42, 0x6D, 0x57, 0x42, 0x6D, 0x62, 0x42, 0x6D,\n\t0x67, 0x42, 0x6D, 0x6C, 0x42, 0x6D, 0x6D, 0x42,\n\t0x6D, 0x73, 0x42, 0x6E, 0x41, 0x42, 0x6E, 0x46,\n\t0x42, 0x6E, 0x56, 0x42, 0x6E, 0x57, 0x42, 0x6E,\n\t// Bytes 1a40 - 1a7f\n\t0x6A, 0x42, 0x6E, 0x6D, 0x42, 0x6E, 0x73, 0x42,\n\t0x6F, 0x56, 0x42, 0x70, 0x41, 0x42, 0x70, 0x46,\n\t0x42, 0x70, 0x56, 0x42, 0x70, 0x57, 0x42, 0x70,\n\t0x63, 0x42, 0x70, 0x73, 0x42, 0x73, 0x72, 0x42,\n\t0x73, 0x74, 0x42, 0x76, 0x69, 0x42, 0x78, 0x69,\n\t0x43, 0x28, 0x31, 0x29, 0x43, 0x28, 0x32, 0x29,\n\t0x43, 0x28, 0x33, 0x29, 0x43, 0x28, 0x34, 0x29,\n\t0x43, 0x28, 0x35, 0x29, 0x43, 0x28, 0x36, 0x29,\n\t// Bytes 1a80 - 1abf\n\t0x43, 0x28, 0x37, 0x29, 0x43, 0x28, 0x38, 0x29,\n\t0x43, 0x28, 0x39, 0x29, 0x43, 0x28, 0x41, 0x29,\n\t0x43, 0x28, 0x42, 0x29, 0x43, 0x28, 0x43, 0x29,\n\t0x43, 0x28, 0x44, 0x29, 0x43, 0x28, 0x45, 0x29,\n\t0x43, 0x28, 0x46, 0x29, 0x43, 0x28, 0x47, 0x29,\n\t0x43, 0x28, 0x48, 0x29, 0x43, 0x28, 0x49, 0x29,\n\t0x43, 0x28, 0x4A, 0x29, 0x43, 0x28, 0x4B, 0x29,\n\t0x43, 0x28, 0x4C, 0x29, 0x43, 0x28, 0x4D, 0x29,\n\t// Bytes 1ac0 - 1aff\n\t0x43, 0x28, 0x4E, 0x29, 0x43, 0x28, 0x4F, 0x29,\n\t0x43, 0x28, 0x50, 0x29, 0x43, 0x28, 0x51, 0x29,\n\t0x43, 0x28, 0x52, 0x29, 0x43, 0x28, 0x53, 0x29,\n\t0x43, 0x28, 0x54, 0x29, 0x43, 0x28, 0x55, 0x29,\n\t0x43, 0x28, 0x56, 0x29, 0x43, 0x28, 0x57, 0x29,\n\t0x43, 0x28, 0x58, 0x29, 0x43, 0x28, 0x59, 0x29,\n\t0x43, 0x28, 0x5A, 0x29, 0x43, 0x28, 0x61, 0x29,\n\t0x43, 0x28, 0x62, 0x29, 0x43, 0x28, 0x63, 0x29,\n\t// Bytes 1b00 - 1b3f\n\t0x43, 0x28, 0x64, 0x29, 0x43, 0x28, 0x65, 0x29,\n\t0x43, 0x28, 0x66, 0x29, 0x43, 0x28, 0x67, 0x29,\n\t0x43, 0x28, 0x68, 0x29, 0x43, 0x28, 0x69, 0x29,\n\t0x43, 0x28, 0x6A, 0x29, 0x43, 0x28, 0x6B, 0x29,\n\t0x43, 0x28, 0x6C, 0x29, 0x43, 0x28, 0x6D, 0x29,\n\t0x43, 0x28, 0x6E, 0x29, 0x43, 0x28, 0x6F, 0x29,\n\t0x43, 0x28, 0x70, 0x29, 0x43, 0x28, 0x71, 0x29,\n\t0x43, 0x28, 0x72, 0x29, 0x43, 0x28, 0x73, 0x29,\n\t// Bytes 1b40 - 1b7f\n\t0x43, 0x28, 0x74, 0x29, 0x43, 0x28, 0x75, 0x29,\n\t0x43, 0x28, 0x76, 0x29, 0x43, 0x28, 0x77, 0x29,\n\t0x43, 0x28, 0x78, 0x29, 0x43, 0x28, 0x79, 0x29,\n\t0x43, 0x28, 0x7A, 0x29, 0x43, 0x2E, 0x2E, 0x2E,\n\t0x43, 0x31, 0x30, 0x2E, 0x43, 0x31, 0x31, 0x2E,\n\t0x43, 0x31, 0x32, 0x2E, 0x43, 0x31, 0x33, 0x2E,\n\t0x43, 0x31, 0x34, 0x2E, 0x43, 0x31, 0x35, 0x2E,\n\t0x43, 0x31, 0x36, 0x2E, 0x43, 0x31, 0x37, 0x2E,\n\t// Bytes 1b80 - 1bbf\n\t0x43, 0x31, 0x38, 0x2E, 0x43, 0x31, 0x39, 0x2E,\n\t0x43, 0x32, 0x30, 0x2E, 0x43, 0x3A, 0x3A, 0x3D,\n\t0x43, 0x3D, 0x3D, 0x3D, 0x43, 0x43, 0x6F, 0x2E,\n\t0x43, 0x46, 0x41, 0x58, 0x43, 0x47, 0x48, 0x7A,\n\t0x43, 0x47, 0x50, 0x61, 0x43, 0x49, 0x49, 0x49,\n\t0x43, 0x4C, 0x54, 0x44, 0x43, 0x4C, 0xC2, 0xB7,\n\t0x43, 0x4D, 0x48, 0x7A, 0x43, 0x4D, 0x50, 0x61,\n\t0x43, 0x4D, 0xCE, 0xA9, 0x43, 0x50, 0x50, 0x4D,\n\t// Bytes 1bc0 - 1bff\n\t0x43, 0x50, 0x50, 0x56, 0x43, 0x50, 0x54, 0x45,\n\t0x43, 0x54, 0x45, 0x4C, 0x43, 0x54, 0x48, 0x7A,\n\t0x43, 0x56, 0x49, 0x49, 0x43, 0x58, 0x49, 0x49,\n\t0x43, 0x61, 0x2F, 0x63, 0x43, 0x61, 0x2F, 0x73,\n\t0x43, 0x61, 0xCA, 0xBE, 0x43, 0x62, 0x61, 0x72,\n\t0x43, 0x63, 0x2F, 0x6F, 0x43, 0x63, 0x2F, 0x75,\n\t0x43, 0x63, 0x61, 0x6C, 0x43, 0x63, 0x6D, 0x32,\n\t0x43, 0x63, 0x6D, 0x33, 0x43, 0x64, 0x6D, 0x32,\n\t// Bytes 1c00 - 1c3f\n\t0x43, 0x64, 0x6D, 0x33, 0x43, 0x65, 0x72, 0x67,\n\t0x43, 0x66, 0x66, 0x69, 0x43, 0x66, 0x66, 0x6C,\n\t0x43, 0x67, 0x61, 0x6C, 0x43, 0x68, 0x50, 0x61,\n\t0x43, 0x69, 0x69, 0x69, 0x43, 0x6B, 0x48, 0x7A,\n\t0x43, 0x6B, 0x50, 0x61, 0x43, 0x6B, 0x6D, 0x32,\n\t0x43, 0x6B, 0x6D, 0x33, 0x43, 0x6B, 0xCE, 0xA9,\n\t0x43, 0x6C, 0x6F, 0x67, 0x43, 0x6C, 0xC2, 0xB7,\n\t0x43, 0x6D, 0x69, 0x6C, 0x43, 0x6D, 0x6D, 0x32,\n\t// Bytes 1c40 - 1c7f\n\t0x43, 0x6D, 0x6D, 0x33, 0x43, 0x6D, 0x6F, 0x6C,\n\t0x43, 0x72, 0x61, 0x64, 0x43, 0x76, 0x69, 0x69,\n\t0x43, 0x78, 0x69, 0x69, 0x43, 0xC2, 0xB0, 0x43,\n\t0x43, 0xC2, 0xB0, 0x46, 0x43, 0xCA, 0xBC, 0x6E,\n\t0x43, 0xCE, 0xBC, 0x41, 0x43, 0xCE, 0xBC, 0x46,\n\t0x43, 0xCE, 0xBC, 0x56, 0x43, 0xCE, 0xBC, 0x57,\n\t0x43, 0xCE, 0xBC, 0x67, 0x43, 0xCE, 0xBC, 0x6C,\n\t0x43, 0xCE, 0xBC, 0x6D, 0x43, 0xCE, 0xBC, 0x73,\n\t// Bytes 1c80 - 1cbf\n\t0x44, 0x28, 0x31, 0x30, 0x29, 0x44, 0x28, 0x31,\n\t0x31, 0x29, 0x44, 0x28, 0x31, 0x32, 0x29, 0x44,\n\t0x28, 0x31, 0x33, 0x29, 0x44, 0x28, 0x31, 0x34,\n\t0x29, 0x44, 0x28, 0x31, 0x35, 0x29, 0x44, 0x28,\n\t0x31, 0x36, 0x29, 0x44, 0x28, 0x31, 0x37, 0x29,\n\t0x44, 0x28, 0x31, 0x38, 0x29, 0x44, 0x28, 0x31,\n\t0x39, 0x29, 0x44, 0x28, 0x32, 0x30, 0x29, 0x44,\n\t0x30, 0xE7, 0x82, 0xB9, 0x44, 0x31, 0xE2, 0x81,\n\t// Bytes 1cc0 - 1cff\n\t0x84, 0x44, 0x31, 0xE6, 0x97, 0xA5, 0x44, 0x31,\n\t0xE6, 0x9C, 0x88, 0x44, 0x31, 0xE7, 0x82, 0xB9,\n\t0x44, 0x32, 0xE6, 0x97, 0xA5, 0x44, 0x32, 0xE6,\n\t0x9C, 0x88, 0x44, 0x32, 0xE7, 0x82, 0xB9, 0x44,\n\t0x33, 0xE6, 0x97, 0xA5, 0x44, 0x33, 0xE6, 0x9C,\n\t0x88, 0x44, 0x33, 0xE7, 0x82, 0xB9, 0x44, 0x34,\n\t0xE6, 0x97, 0xA5, 0x44, 0x34, 0xE6, 0x9C, 0x88,\n\t0x44, 0x34, 0xE7, 0x82, 0xB9, 0x44, 0x35, 0xE6,\n\t// Bytes 1d00 - 1d3f\n\t0x97, 0xA5, 0x44, 0x35, 0xE6, 0x9C, 0x88, 0x44,\n\t0x35, 0xE7, 0x82, 0xB9, 0x44, 0x36, 0xE6, 0x97,\n\t0xA5, 0x44, 0x36, 0xE6, 0x9C, 0x88, 0x44, 0x36,\n\t0xE7, 0x82, 0xB9, 0x44, 0x37, 0xE6, 0x97, 0xA5,\n\t0x44, 0x37, 0xE6, 0x9C, 0x88, 0x44, 0x37, 0xE7,\n\t0x82, 0xB9, 0x44, 0x38, 0xE6, 0x97, 0xA5, 0x44,\n\t0x38, 0xE6, 0x9C, 0x88, 0x44, 0x38, 0xE7, 0x82,\n\t0xB9, 0x44, 0x39, 0xE6, 0x97, 0xA5, 0x44, 0x39,\n\t// Bytes 1d40 - 1d7f\n\t0xE6, 0x9C, 0x88, 0x44, 0x39, 0xE7, 0x82, 0xB9,\n\t0x44, 0x56, 0x49, 0x49, 0x49, 0x44, 0x61, 0x2E,\n\t0x6D, 0x2E, 0x44, 0x6B, 0x63, 0x61, 0x6C, 0x44,\n\t0x70, 0x2E, 0x6D, 0x2E, 0x44, 0x76, 0x69, 0x69,\n\t0x69, 0x44, 0xD5, 0xA5, 0xD6, 0x82, 0x44, 0xD5,\n\t0xB4, 0xD5, 0xA5, 0x44, 0xD5, 0xB4, 0xD5, 0xAB,\n\t0x44, 0xD5, 0xB4, 0xD5, 0xAD, 0x44, 0xD5, 0xB4,\n\t0xD5, 0xB6, 0x44, 0xD5, 0xBE, 0xD5, 0xB6, 0x44,\n\t// Bytes 1d80 - 1dbf\n\t0xD7, 0x90, 0xD7, 0x9C, 0x44, 0xD8, 0xA7, 0xD9,\n\t0xB4, 0x44, 0xD8, 0xA8, 0xD8, 0xAC, 0x44, 0xD8,\n\t0xA8, 0xD8, 0xAD, 0x44, 0xD8, 0xA8, 0xD8, 0xAE,\n\t0x44, 0xD8, 0xA8, 0xD8, 0xB1, 0x44, 0xD8, 0xA8,\n\t0xD8, 0xB2, 0x44, 0xD8, 0xA8, 0xD9, 0x85, 0x44,\n\t0xD8, 0xA8, 0xD9, 0x86, 0x44, 0xD8, 0xA8, 0xD9,\n\t0x87, 0x44, 0xD8, 0xA8, 0xD9, 0x89, 0x44, 0xD8,\n\t0xA8, 0xD9, 0x8A, 0x44, 0xD8, 0xAA, 0xD8, 0xAC,\n\t// Bytes 1dc0 - 1dff\n\t0x44, 0xD8, 0xAA, 0xD8, 0xAD, 0x44, 0xD8, 0xAA,\n\t0xD8, 0xAE, 0x44, 0xD8, 0xAA, 0xD8, 0xB1, 0x44,\n\t0xD8, 0xAA, 0xD8, 0xB2, 0x44, 0xD8, 0xAA, 0xD9,\n\t0x85, 0x44, 0xD8, 0xAA, 0xD9, 0x86, 0x44, 0xD8,\n\t0xAA, 0xD9, 0x87, 0x44, 0xD8, 0xAA, 0xD9, 0x89,\n\t0x44, 0xD8, 0xAA, 0xD9, 0x8A, 0x44, 0xD8, 0xAB,\n\t0xD8, 0xAC, 0x44, 0xD8, 0xAB, 0xD8, 0xB1, 0x44,\n\t0xD8, 0xAB, 0xD8, 0xB2, 0x44, 0xD8, 0xAB, 0xD9,\n\t// Bytes 1e00 - 1e3f\n\t0x85, 0x44, 0xD8, 0xAB, 0xD9, 0x86, 0x44, 0xD8,\n\t0xAB, 0xD9, 0x87, 0x44, 0xD8, 0xAB, 0xD9, 0x89,\n\t0x44, 0xD8, 0xAB, 0xD9, 0x8A, 0x44, 0xD8, 0xAC,\n\t0xD8, 0xAD, 0x44, 0xD8, 0xAC, 0xD9, 0x85, 0x44,\n\t0xD8, 0xAC, 0xD9, 0x89, 0x44, 0xD8, 0xAC, 0xD9,\n\t0x8A, 0x44, 0xD8, 0xAD, 0xD8, 0xAC, 0x44, 0xD8,\n\t0xAD, 0xD9, 0x85, 0x44, 0xD8, 0xAD, 0xD9, 0x89,\n\t0x44, 0xD8, 0xAD, 0xD9, 0x8A, 0x44, 0xD8, 0xAE,\n\t// Bytes 1e40 - 1e7f\n\t0xD8, 0xAC, 0x44, 0xD8, 0xAE, 0xD8, 0xAD, 0x44,\n\t0xD8, 0xAE, 0xD9, 0x85, 0x44, 0xD8, 0xAE, 0xD9,\n\t0x89, 0x44, 0xD8, 0xAE, 0xD9, 0x8A, 0x44, 0xD8,\n\t0xB3, 0xD8, 0xAC, 0x44, 0xD8, 0xB3, 0xD8, 0xAD,\n\t0x44, 0xD8, 0xB3, 0xD8, 0xAE, 0x44, 0xD8, 0xB3,\n\t0xD8, 0xB1, 0x44, 0xD8, 0xB3, 0xD9, 0x85, 0x44,\n\t0xD8, 0xB3, 0xD9, 0x87, 0x44, 0xD8, 0xB3, 0xD9,\n\t0x89, 0x44, 0xD8, 0xB3, 0xD9, 0x8A, 0x44, 0xD8,\n\t// Bytes 1e80 - 1ebf\n\t0xB4, 0xD8, 0xAC, 0x44, 0xD8, 0xB4, 0xD8, 0xAD,\n\t0x44, 0xD8, 0xB4, 0xD8, 0xAE, 0x44, 0xD8, 0xB4,\n\t0xD8, 0xB1, 0x44, 0xD8, 0xB4, 0xD9, 0x85, 0x44,\n\t0xD8, 0xB4, 0xD9, 0x87, 0x44, 0xD8, 0xB4, 0xD9,\n\t0x89, 0x44, 0xD8, 0xB4, 0xD9, 0x8A, 0x44, 0xD8,\n\t0xB5, 0xD8, 0xAD, 0x44, 0xD8, 0xB5, 0xD8, 0xAE,\n\t0x44, 0xD8, 0xB5, 0xD8, 0xB1, 0x44, 0xD8, 0xB5,\n\t0xD9, 0x85, 0x44, 0xD8, 0xB5, 0xD9, 0x89, 0x44,\n\t// Bytes 1ec0 - 1eff\n\t0xD8, 0xB5, 0xD9, 0x8A, 0x44, 0xD8, 0xB6, 0xD8,\n\t0xAC, 0x44, 0xD8, 0xB6, 0xD8, 0xAD, 0x44, 0xD8,\n\t0xB6, 0xD8, 0xAE, 0x44, 0xD8, 0xB6, 0xD8, 0xB1,\n\t0x44, 0xD8, 0xB6, 0xD9, 0x85, 0x44, 0xD8, 0xB6,\n\t0xD9, 0x89, 0x44, 0xD8, 0xB6, 0xD9, 0x8A, 0x44,\n\t0xD8, 0xB7, 0xD8, 0xAD, 0x44, 0xD8, 0xB7, 0xD9,\n\t0x85, 0x44, 0xD8, 0xB7, 0xD9, 0x89, 0x44, 0xD8,\n\t0xB7, 0xD9, 0x8A, 0x44, 0xD8, 0xB8, 0xD9, 0x85,\n\t// Bytes 1f00 - 1f3f\n\t0x44, 0xD8, 0xB9, 0xD8, 0xAC, 0x44, 0xD8, 0xB9,\n\t0xD9, 0x85, 0x44, 0xD8, 0xB9, 0xD9, 0x89, 0x44,\n\t0xD8, 0xB9, 0xD9, 0x8A, 0x44, 0xD8, 0xBA, 0xD8,\n\t0xAC, 0x44, 0xD8, 0xBA, 0xD9, 0x85, 0x44, 0xD8,\n\t0xBA, 0xD9, 0x89, 0x44, 0xD8, 0xBA, 0xD9, 0x8A,\n\t0x44, 0xD9, 0x81, 0xD8, 0xAC, 0x44, 0xD9, 0x81,\n\t0xD8, 0xAD, 0x44, 0xD9, 0x81, 0xD8, 0xAE, 0x44,\n\t0xD9, 0x81, 0xD9, 0x85, 0x44, 0xD9, 0x81, 0xD9,\n\t// Bytes 1f40 - 1f7f\n\t0x89, 0x44, 0xD9, 0x81, 0xD9, 0x8A, 0x44, 0xD9,\n\t0x82, 0xD8, 0xAD, 0x44, 0xD9, 0x82, 0xD9, 0x85,\n\t0x44, 0xD9, 0x82, 0xD9, 0x89, 0x44, 0xD9, 0x82,\n\t0xD9, 0x8A, 0x44, 0xD9, 0x83, 0xD8, 0xA7, 0x44,\n\t0xD9, 0x83, 0xD8, 0xAC, 0x44, 0xD9, 0x83, 0xD8,\n\t0xAD, 0x44, 0xD9, 0x83, 0xD8, 0xAE, 0x44, 0xD9,\n\t0x83, 0xD9, 0x84, 0x44, 0xD9, 0x83, 0xD9, 0x85,\n\t0x44, 0xD9, 0x83, 0xD9, 0x89, 0x44, 0xD9, 0x83,\n\t// Bytes 1f80 - 1fbf\n\t0xD9, 0x8A, 0x44, 0xD9, 0x84, 0xD8, 0xA7, 0x44,\n\t0xD9, 0x84, 0xD8, 0xAC, 0x44, 0xD9, 0x84, 0xD8,\n\t0xAD, 0x44, 0xD9, 0x84, 0xD8, 0xAE, 0x44, 0xD9,\n\t0x84, 0xD9, 0x85, 0x44, 0xD9, 0x84, 0xD9, 0x87,\n\t0x44, 0xD9, 0x84, 0xD9, 0x89, 0x44, 0xD9, 0x84,\n\t0xD9, 0x8A, 0x44, 0xD9, 0x85, 0xD8, 0xA7, 0x44,\n\t0xD9, 0x85, 0xD8, 0xAC, 0x44, 0xD9, 0x85, 0xD8,\n\t0xAD, 0x44, 0xD9, 0x85, 0xD8, 0xAE, 0x44, 0xD9,\n\t// Bytes 1fc0 - 1fff\n\t0x85, 0xD9, 0x85, 0x44, 0xD9, 0x85, 0xD9, 0x89,\n\t0x44, 0xD9, 0x85, 0xD9, 0x8A, 0x44, 0xD9, 0x86,\n\t0xD8, 0xAC, 0x44, 0xD9, 0x86, 0xD8, 0xAD, 0x44,\n\t0xD9, 0x86, 0xD8, 0xAE, 0x44, 0xD9, 0x86, 0xD8,\n\t0xB1, 0x44, 0xD9, 0x86, 0xD8, 0xB2, 0x44, 0xD9,\n\t0x86, 0xD9, 0x85, 0x44, 0xD9, 0x86, 0xD9, 0x86,\n\t0x44, 0xD9, 0x86, 0xD9, 0x87, 0x44, 0xD9, 0x86,\n\t0xD9, 0x89, 0x44, 0xD9, 0x86, 0xD9, 0x8A, 0x44,\n\t// Bytes 2000 - 203f\n\t0xD9, 0x87, 0xD8, 0xAC, 0x44, 0xD9, 0x87, 0xD9,\n\t0x85, 0x44, 0xD9, 0x87, 0xD9, 0x89, 0x44, 0xD9,\n\t0x87, 0xD9, 0x8A, 0x44, 0xD9, 0x88, 0xD9, 0xB4,\n\t0x44, 0xD9, 0x8A, 0xD8, 0xAC, 0x44, 0xD9, 0x8A,\n\t0xD8, 0xAD, 0x44, 0xD9, 0x8A, 0xD8, 0xAE, 0x44,\n\t0xD9, 0x8A, 0xD8, 0xB1, 0x44, 0xD9, 0x8A, 0xD8,\n\t0xB2, 0x44, 0xD9, 0x8A, 0xD9, 0x85, 0x44, 0xD9,\n\t0x8A, 0xD9, 0x86, 0x44, 0xD9, 0x8A, 0xD9, 0x87,\n\t// Bytes 2040 - 207f\n\t0x44, 0xD9, 0x8A, 0xD9, 0x89, 0x44, 0xD9, 0x8A,\n\t0xD9, 0x8A, 0x44, 0xD9, 0x8A, 0xD9, 0xB4, 0x44,\n\t0xDB, 0x87, 0xD9, 0xB4, 0x45, 0x28, 0xE1, 0x84,\n\t0x80, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x82, 0x29,\n\t0x45, 0x28, 0xE1, 0x84, 0x83, 0x29, 0x45, 0x28,\n\t0xE1, 0x84, 0x85, 0x29, 0x45, 0x28, 0xE1, 0x84,\n\t0x86, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x87, 0x29,\n\t0x45, 0x28, 0xE1, 0x84, 0x89, 0x29, 0x45, 0x28,\n\t// Bytes 2080 - 20bf\n\t0xE1, 0x84, 0x8B, 0x29, 0x45, 0x28, 0xE1, 0x84,\n\t0x8C, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8E, 0x29,\n\t0x45, 0x28, 0xE1, 0x84, 0x8F, 0x29, 0x45, 0x28,\n\t0xE1, 0x84, 0x90, 0x29, 0x45, 0x28, 0xE1, 0x84,\n\t0x91, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x92, 0x29,\n\t0x45, 0x28, 0xE4, 0xB8, 0x80, 0x29, 0x45, 0x28,\n\t0xE4, 0xB8, 0x83, 0x29, 0x45, 0x28, 0xE4, 0xB8,\n\t0x89, 0x29, 0x45, 0x28, 0xE4, 0xB9, 0x9D, 0x29,\n\t// Bytes 20c0 - 20ff\n\t0x45, 0x28, 0xE4, 0xBA, 0x8C, 0x29, 0x45, 0x28,\n\t0xE4, 0xBA, 0x94, 0x29, 0x45, 0x28, 0xE4, 0xBB,\n\t0xA3, 0x29, 0x45, 0x28, 0xE4, 0xBC, 0x81, 0x29,\n\t0x45, 0x28, 0xE4, 0xBC, 0x91, 0x29, 0x45, 0x28,\n\t0xE5, 0x85, 0xAB, 0x29, 0x45, 0x28, 0xE5, 0x85,\n\t0xAD, 0x29, 0x45, 0x28, 0xE5, 0x8A, 0xB4, 0x29,\n\t0x45, 0x28, 0xE5, 0x8D, 0x81, 0x29, 0x45, 0x28,\n\t0xE5, 0x8D, 0x94, 0x29, 0x45, 0x28, 0xE5, 0x90,\n\t// Bytes 2100 - 213f\n\t0x8D, 0x29, 0x45, 0x28, 0xE5, 0x91, 0xBC, 0x29,\n\t0x45, 0x28, 0xE5, 0x9B, 0x9B, 0x29, 0x45, 0x28,\n\t0xE5, 0x9C, 0x9F, 0x29, 0x45, 0x28, 0xE5, 0xAD,\n\t0xA6, 0x29, 0x45, 0x28, 0xE6, 0x97, 0xA5, 0x29,\n\t0x45, 0x28, 0xE6, 0x9C, 0x88, 0x29, 0x45, 0x28,\n\t0xE6, 0x9C, 0x89, 0x29, 0x45, 0x28, 0xE6, 0x9C,\n\t0xA8, 0x29, 0x45, 0x28, 0xE6, 0xA0, 0xAA, 0x29,\n\t0x45, 0x28, 0xE6, 0xB0, 0xB4, 0x29, 0x45, 0x28,\n\t// Bytes 2140 - 217f\n\t0xE7, 0x81, 0xAB, 0x29, 0x45, 0x28, 0xE7, 0x89,\n\t0xB9, 0x29, 0x45, 0x28, 0xE7, 0x9B, 0xA3, 0x29,\n\t0x45, 0x28, 0xE7, 0xA4, 0xBE, 0x29, 0x45, 0x28,\n\t0xE7, 0xA5, 0x9D, 0x29, 0x45, 0x28, 0xE7, 0xA5,\n\t0xAD, 0x29, 0x45, 0x28, 0xE8, 0x87, 0xAA, 0x29,\n\t0x45, 0x28, 0xE8, 0x87, 0xB3, 0x29, 0x45, 0x28,\n\t0xE8, 0xB2, 0xA1, 0x29, 0x45, 0x28, 0xE8, 0xB3,\n\t0x87, 0x29, 0x45, 0x28, 0xE9, 0x87, 0x91, 0x29,\n\t// Bytes 2180 - 21bf\n\t0x45, 0x30, 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31,\n\t0x30, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x30, 0xE6,\n\t0x9C, 0x88, 0x45, 0x31, 0x30, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t0x31, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x31, 0xE7,\n\t0x82, 0xB9, 0x45, 0x31, 0x32, 0xE6, 0x97, 0xA5,\n\t0x45, 0x31, 0x32, 0xE6, 0x9C, 0x88, 0x45, 0x31,\n\t0x32, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x33, 0xE6,\n\t// Bytes 21c0 - 21ff\n\t0x97, 0xA5, 0x45, 0x31, 0x33, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t0x34, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x35, 0xE6,\n\t0x97, 0xA5, 0x45, 0x31, 0x35, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x36, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t0x36, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x37, 0xE6,\n\t0x97, 0xA5, 0x45, 0x31, 0x37, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t// Bytes 2200 - 223f\n\t0x38, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x39, 0xE6,\n\t0x97, 0xA5, 0x45, 0x31, 0x39, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0xE2, 0x81, 0x84, 0x32, 0x45, 0x31,\n\t0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, 0xE2, 0x81,\n\t0x84, 0x34, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x35,\n\t0x45, 0x31, 0xE2, 0x81, 0x84, 0x36, 0x45, 0x31,\n\t0xE2, 0x81, 0x84, 0x37, 0x45, 0x31, 0xE2, 0x81,\n\t0x84, 0x38, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x39,\n\t// Bytes 2240 - 227f\n\t0x45, 0x32, 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x30, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x31, 0xE6,\n\t0x97, 0xA5, 0x45, 0x32, 0x31, 0xE7, 0x82, 0xB9,\n\t0x45, 0x32, 0x32, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x32, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x33, 0xE6,\n\t0x97, 0xA5, 0x45, 0x32, 0x33, 0xE7, 0x82, 0xB9,\n\t0x45, 0x32, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x34, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x35, 0xE6,\n\t// Bytes 2280 - 22bf\n\t0x97, 0xA5, 0x45, 0x32, 0x36, 0xE6, 0x97, 0xA5,\n\t0x45, 0x32, 0x37, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x38, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x39, 0xE6,\n\t0x97, 0xA5, 0x45, 0x32, 0xE2, 0x81, 0x84, 0x33,\n\t0x45, 0x32, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33,\n\t0x30, 0xE6, 0x97, 0xA5, 0x45, 0x33, 0x31, 0xE6,\n\t0x97, 0xA5, 0x45, 0x33, 0xE2, 0x81, 0x84, 0x34,\n\t0x45, 0x33, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33,\n\t// Bytes 22c0 - 22ff\n\t0xE2, 0x81, 0x84, 0x38, 0x45, 0x34, 0xE2, 0x81,\n\t0x84, 0x35, 0x45, 0x35, 0xE2, 0x81, 0x84, 0x36,\n\t0x45, 0x35, 0xE2, 0x81, 0x84, 0x38, 0x45, 0x37,\n\t0xE2, 0x81, 0x84, 0x38, 0x45, 0x41, 0xE2, 0x88,\n\t0x95, 0x6D, 0x45, 0x56, 0xE2, 0x88, 0x95, 0x6D,\n\t0x45, 0x6D, 0xE2, 0x88, 0x95, 0x73, 0x46, 0x31,\n\t0xE2, 0x81, 0x84, 0x31, 0x30, 0x46, 0x43, 0xE2,\n\t0x88, 0x95, 0x6B, 0x67, 0x46, 0x6D, 0xE2, 0x88,\n\t// Bytes 2300 - 233f\n\t0x95, 0x73, 0x32, 0x46, 0xD8, 0xA8, 0xD8, 0xAD,\n\t0xD9, 0x8A, 0x46, 0xD8, 0xA8, 0xD8, 0xAE, 0xD9,\n\t0x8A, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x85,\n\t0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x89, 0x46,\n\t0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8,\n\t0xAA, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xAA,\n\t0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8,\n\t0xAE, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAE,\n\t// Bytes 2340 - 237f\n\t0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9,\n\t0x8A, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAC,\n\t0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAD, 0x46,\n\t0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAE, 0x46, 0xD8,\n\t0xAA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAA,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD8,\n\t0xAD, 0xD9, 0x89, 0x46, 0xD8, 0xAC, 0xD8, 0xAD,\n\t0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD8,\n\t// Bytes 2380 - 23bf\n\t0xAD, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x89,\n\t0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x8A, 0x46,\n\t0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8,\n\t0xAD, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAD,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB3, 0xD8,\n\t0xAC, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, 0xD8, 0xAC,\n\t0xD9, 0x89, 0x46, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8,\n\t0xAC, 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x89,\n\t// Bytes 23c0 - 23ff\n\t0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x8A, 0x46,\n\t0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD8,\n\t0xB3, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xB3,\n\t0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8,\n\t0xAC, 0xD9, 0x8A, 0x46, 0xD8, 0xB4, 0xD8, 0xAD,\n\t0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, 0xD9,\n\t0x8A, 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xAE,\n\t0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD9, 0x85, 0x46,\n\t// Bytes 2400 - 243f\n\t0xD8, 0xB5, 0xD8, 0xAD, 0xD8, 0xAD, 0x46, 0xD8,\n\t0xB5, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB5,\n\t0xD9, 0x84, 0xD9, 0x89, 0x46, 0xD8, 0xB5, 0xD9,\n\t0x84, 0xDB, 0x92, 0x46, 0xD8, 0xB5, 0xD9, 0x85,\n\t0xD9, 0x85, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9,\n\t0x89, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x8A,\n\t0x46, 0xD8, 0xB6, 0xD8, 0xAE, 0xD9, 0x85, 0x46,\n\t0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8,\n\t// Bytes 2440 - 247f\n\t0xB7, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB7,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB9, 0xD8,\n\t0xAC, 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85,\n\t0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9,\n\t0x89, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x8A,\n\t0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x85, 0x46,\n\t0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8,\n\t0xBA, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x81,\n\t// Bytes 2480 - 24bf\n\t0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x81, 0xD9,\n\t0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x82, 0xD9, 0x84,\n\t0xDB, 0x92, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD8,\n\t0xAD, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x85,\n\t0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x8A, 0x46,\n\t0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9,\n\t0x83, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x84,\n\t0xD8, 0xAC, 0xD8, 0xAC, 0x46, 0xD9, 0x84, 0xD8,\n\t// Bytes 24c0 - 24ff\n\t0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAC,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9,\n\t0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x89,\n\t0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x8A, 0x46,\n\t0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9,\n\t0x84, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x84,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8,\n\t0xAC, 0xD8, 0xAD, 0x46, 0xD9, 0x85, 0xD8, 0xAC,\n\t// Bytes 2500 - 253f\n\t0xD8, 0xAE, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9,\n\t0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x8A,\n\t0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0x46,\n\t0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9,\n\t0x85, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x85,\n\t0xD8, 0xAE, 0xD8, 0xAC, 0x46, 0xD9, 0x85, 0xD8,\n\t0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAE,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD9, 0x85, 0xD9,\n\t// Bytes 2540 - 257f\n\t0x8A, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD8, 0xAD,\n\t0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x85, 0x46,\n\t0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD9,\n\t0x86, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x86,\n\t0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x86, 0xD8,\n\t0xAD, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD8, 0xAD,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9,\n\t0x89, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x8A,\n\t// Bytes 2580 - 25bf\n\t0x46, 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xAC, 0x46,\n\t0xD9, 0x87, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9,\n\t0x8A, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x8A,\n\t0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9,\n\t0x85, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x85,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8,\n\t0xA7, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAC,\n\t0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAD, 0x46,\n\t// Bytes 25c0 - 25ff\n\t0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAE, 0x46, 0xD9,\n\t0x8A, 0xD9, 0x94, 0xD8, 0xB1, 0x46, 0xD9, 0x8A,\n\t0xD9, 0x94, 0xD8, 0xB2, 0x46, 0xD9, 0x8A, 0xD9,\n\t0x94, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x94,\n\t0xD9, 0x86, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9,\n\t0x87, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x88,\n\t0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x89, 0x46,\n\t0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x8A, 0x46, 0xD9,\n\t// Bytes 2600 - 263f\n\t0x8A, 0xD9, 0x94, 0xDB, 0x86, 0x46, 0xD9, 0x8A,\n\t0xD9, 0x94, 0xDB, 0x87, 0x46, 0xD9, 0x8A, 0xD9,\n\t0x94, 0xDB, 0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94,\n\t0xDB, 0x90, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB,\n\t0x95, 0x46, 0xE0, 0xB9, 0x8D, 0xE0, 0xB8, 0xB2,\n\t0x46, 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0x99, 0x46,\n\t0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0xA1, 0x46, 0xE0,\n\t0xBB, 0x8D, 0xE0, 0xBA, 0xB2, 0x46, 0xE0, 0xBD,\n\t// Bytes 2640 - 267f\n\t0x80, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, 0xBD, 0x82,\n\t0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x8C, 0xE0,\n\t0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x91, 0xE0, 0xBE,\n\t0xB7, 0x46, 0xE0, 0xBD, 0x96, 0xE0, 0xBE, 0xB7,\n\t0x46, 0xE0, 0xBD, 0x9B, 0xE0, 0xBE, 0xB7, 0x46,\n\t0xE0, 0xBE, 0x90, 0xE0, 0xBE, 0xB5, 0x46, 0xE0,\n\t0xBE, 0x92, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE,\n\t0x9C, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA1,\n\t// Bytes 2680 - 26bf\n\t0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA6, 0xE0,\n\t0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xAB, 0xE0, 0xBE,\n\t0xB7, 0x46, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,\n\t0x46, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x46,\n\t0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x46, 0xE2,\n\t0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x46, 0xE3, 0x81,\n\t0xBB, 0xE3, 0x81, 0x8B, 0x46, 0xE3, 0x82, 0x88,\n\t0xE3, 0x82, 0x8A, 0x46, 0xE3, 0x82, 0xAD, 0xE3,\n\t// Bytes 26c0 - 26ff\n\t0x83, 0xAD, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x82,\n\t0xB3, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0x88,\n\t0x46, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x46,\n\t0xE3, 0x83, 0x8A, 0xE3, 0x83, 0x8E, 0x46, 0xE3,\n\t0x83, 0x9B, 0xE3, 0x83, 0xB3, 0x46, 0xE3, 0x83,\n\t0x9F, 0xE3, 0x83, 0xAA, 0x46, 0xE3, 0x83, 0xAA,\n\t0xE3, 0x83, 0xA9, 0x46, 0xE3, 0x83, 0xAC, 0xE3,\n\t0x83, 0xA0, 0x46, 0xE5, 0xA4, 0xA7, 0xE6, 0xAD,\n\t// Bytes 2700 - 273f\n\t0xA3, 0x46, 0xE5, 0xB9, 0xB3, 0xE6, 0x88, 0x90,\n\t0x46, 0xE6, 0x98, 0x8E, 0xE6, 0xB2, 0xBB, 0x46,\n\t0xE6, 0x98, 0xAD, 0xE5, 0x92, 0x8C, 0x47, 0x72,\n\t0x61, 0x64, 0xE2, 0x88, 0x95, 0x73, 0x47, 0xE3,\n\t0x80, 0x94, 0x53, 0xE3, 0x80, 0x95, 0x48, 0x28,\n\t0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x29, 0x48,\n\t0x28, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x29,\n\t0x48, 0x28, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1,\n\t// Bytes 2740 - 277f\n\t0x29, 0x48, 0x28, 0xE1, 0x84, 0x85, 0xE1, 0x85,\n\t0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x86, 0xE1,\n\t0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x87,\n\t0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,\n\t0x89, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1,\n\t0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28,\n\t0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x29, 0x48,\n\t0x28, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xAE, 0x29,\n\t// Bytes 2780 - 27bf\n\t0x48, 0x28, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1,\n\t0x29, 0x48, 0x28, 0xE1, 0x84, 0x8F, 0xE1, 0x85,\n\t0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x90, 0xE1,\n\t0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x91,\n\t0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,\n\t0x92, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x72, 0x61,\n\t0x64, 0xE2, 0x88, 0x95, 0x73, 0x32, 0x48, 0xD8,\n\t0xA7, 0xD9, 0x83, 0xD8, 0xA8, 0xD8, 0xB1, 0x48,\n\t// Bytes 27c0 - 27ff\n\t0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x87,\n\t0x48, 0xD8, 0xB1, 0xD8, 0xB3, 0xD9, 0x88, 0xD9,\n\t0x84, 0x48, 0xD8, 0xB1, 0xDB, 0x8C, 0xD8, 0xA7,\n\t0xD9, 0x84, 0x48, 0xD8, 0xB5, 0xD9, 0x84, 0xD8,\n\t0xB9, 0xD9, 0x85, 0x48, 0xD8, 0xB9, 0xD9, 0x84,\n\t0xD9, 0x8A, 0xD9, 0x87, 0x48, 0xD9, 0x85, 0xD8,\n\t0xAD, 0xD9, 0x85, 0xD8, 0xAF, 0x48, 0xD9, 0x88,\n\t0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x49, 0xE2,\n\t// Bytes 2800 - 283f\n\t0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,\n\t0x49, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0xE2,\n\t0x80, 0xB5, 0x49, 0xE2, 0x88, 0xAB, 0xE2, 0x88,\n\t0xAB, 0xE2, 0x88, 0xAB, 0x49, 0xE2, 0x88, 0xAE,\n\t0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x49, 0xE3,\n\t0x80, 0x94, 0xE4, 0xB8, 0x89, 0xE3, 0x80, 0x95,\n\t0x49, 0xE3, 0x80, 0x94, 0xE4, 0xBA, 0x8C, 0xE3,\n\t0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE5, 0x8B,\n\t// Bytes 2840 - 287f\n\t0x9D, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94,\n\t0xE5, 0xAE, 0x89, 0xE3, 0x80, 0x95, 0x49, 0xE3,\n\t0x80, 0x94, 0xE6, 0x89, 0x93, 0xE3, 0x80, 0x95,\n\t0x49, 0xE3, 0x80, 0x94, 0xE6, 0x95, 0x97, 0xE3,\n\t0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x9C,\n\t0xAC, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94,\n\t0xE7, 0x82, 0xB9, 0xE3, 0x80, 0x95, 0x49, 0xE3,\n\t0x80, 0x94, 0xE7, 0x9B, 0x97, 0xE3, 0x80, 0x95,\n\t// Bytes 2880 - 28bf\n\t0x49, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0xAB, 0x49, 0xE3, 0x82, 0xA4, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x81, 0x49, 0xE3, 0x82, 0xA6,\n\t0xE3, 0x82, 0xA9, 0xE3, 0x83, 0xB3, 0x49, 0xE3,\n\t0x82, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB9,\n\t0x49, 0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0xA0, 0x49, 0xE3, 0x82, 0xAB, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x83, 0xAA, 0x49, 0xE3, 0x82, 0xB1,\n\t// Bytes 28c0 - 28ff\n\t0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB9, 0x49, 0xE3,\n\t0x82, 0xB3, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x8A,\n\t0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3,\n\t0x83, 0x81, 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x88, 0x49, 0xE3, 0x83, 0x86,\n\t0xE3, 0x82, 0x99, 0xE3, 0x82, 0xB7, 0x49, 0xE3,\n\t0x83, 0x88, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB,\n\t0x49, 0xE3, 0x83, 0x8E, 0xE3, 0x83, 0x83, 0xE3,\n\t// Bytes 2900 - 293f\n\t0x83, 0x88, 0x49, 0xE3, 0x83, 0x8F, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x83, 0x84, 0x49, 0xE3, 0x83, 0x92,\n\t0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0x49, 0xE3,\n\t0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xB3,\n\t0x49, 0xE3, 0x83, 0x95, 0xE3, 0x83, 0xA9, 0xE3,\n\t0x83, 0xB3, 0x49, 0xE3, 0x83, 0x98, 0xE3, 0x82,\n\t0x9A, 0xE3, 0x82, 0xBD, 0x49, 0xE3, 0x83, 0x98,\n\t0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x84, 0x49, 0xE3,\n\t// Bytes 2940 - 297f\n\t0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB,\n\t0x49, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0xB3, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x9E,\n\t0xE3, 0x83, 0x83, 0xE3, 0x83, 0x8F, 0x49, 0xE3,\n\t0x83, 0x9E, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xAF,\n\t0x49, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0xAB, 0x49, 0xE3, 0x83, 0xA6, 0xE3, 0x82,\n\t// Bytes 2980 - 29bf\n\t0xA2, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83, 0xAF,\n\t0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x4C, 0xE2,\n\t0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,\n\t0xE2, 0x80, 0xB2, 0x4C, 0xE2, 0x88, 0xAB, 0xE2,\n\t0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB,\n\t0x4C, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xAB, 0xE3,\n\t0x83, 0x95, 0xE3, 0x82, 0xA1, 0x4C, 0xE3, 0x82,\n\t0xA8, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAB, 0xE3,\n\t// Bytes 29c0 - 29ff\n\t0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, 0x4C,\n\t0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x9E, 0x4C, 0xE3, 0x82, 0xAB,\n\t0xE3, 0x83, 0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83,\n\t0x88, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xAD,\n\t0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, 0x4C, 0xE3,\n\t0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x8B,\n\t// Bytes 2a00 - 2a3f\n\t0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3,\n\t0x83, 0xA5, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC,\n\t0x4C, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3,\n\t0x83, 0xA9, 0xE3, 0x83, 0xA0, 0x4C, 0xE3, 0x82,\n\t0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0x8D, 0x4C, 0xE3, 0x82, 0xB5, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C,\n\t0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t// Bytes 2a40 - 2a7f\n\t0xBC, 0xE3, 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x8F,\n\t0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0x84, 0x4C, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, 0xE3,\n\t0x83, 0x95, 0xE3, 0x82, 0xA3, 0xE3, 0x83, 0xBC,\n\t0xE3, 0x83, 0x88, 0x4C, 0xE3, 0x83, 0x98, 0xE3,\n\t0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xBF,\n\t0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3,\n\t// Bytes 2a80 - 2abf\n\t0x83, 0x8B, 0xE3, 0x83, 0x92, 0x4C, 0xE3, 0x83,\n\t0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3, 0xE3,\n\t0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x9B, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x88, 0x4C,\n\t0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x82,\n\t0xAF, 0xE3, 0x83, 0xAD, 0x4C, 0xE3, 0x83, 0x9F,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83,\n\t0xB3, 0x4C, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC,\n\t// Bytes 2ac0 - 2aff\n\t0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x4C, 0xE3,\n\t0x83, 0xAA, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88,\n\t0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83, 0xAB, 0xE3,\n\t0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC,\n\t0x4C, 0xE6, 0xA0, 0xAA, 0xE5, 0xBC, 0x8F, 0xE4,\n\t0xBC, 0x9A, 0xE7, 0xA4, 0xBE, 0x4E, 0x28, 0xE1,\n\t0x84, 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x92,\n\t0xE1, 0x85, 0xAE, 0x29, 0x4F, 0xD8, 0xAC, 0xD9,\n\t// Bytes 2b00 - 2b3f\n\t0x84, 0x20, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xA7,\n\t0xD9, 0x84, 0xD9, 0x87, 0x4F, 0xE3, 0x82, 0xA2,\n\t0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xA2,\n\t0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x98, 0xE3, 0x82,\n\t0x9A, 0xE3, 0x82, 0xA2, 0x4F, 0xE3, 0x82, 0xAD,\n\t0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAF, 0xE3, 0x83,\n\t0x83, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xB5,\n\t// Bytes 2b40 - 2b7f\n\t0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x83, 0xA0, 0x4F, 0xE3, 0x83, 0x8F,\n\t0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0xAC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x98,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x82, 0xBF, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x9B,\n\t0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA4, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x83, 0x9E,\n\t// Bytes 2b80 - 2bbf\n\t0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB7, 0xE3, 0x83,\n\t0xA7, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xA1,\n\t0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0x88, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xAB,\n\t0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x95, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xAB, 0x51, 0x28, 0xE1, 0x84,\n\t0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x8C, 0xE1,\n\t0x85, 0xA5, 0xE1, 0x86, 0xAB, 0x29, 0x52, 0xE3,\n\t// Bytes 2bc0 - 2bff\n\t0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB,\n\t0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0xBC, 0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0xA9, 0xE3, 0x83, 0xA0, 0x52, 0xE3, 0x82, 0xAD,\n\t0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xA1, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x52,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t// Bytes 2c00 - 2c3f\n\t0xA9, 0xE3, 0x83, 0xA0, 0xE3, 0x83, 0x88, 0xE3,\n\t0x83, 0xB3, 0x52, 0xE3, 0x82, 0xAF, 0xE3, 0x83,\n\t0xAB, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0xE3,\n\t0x82, 0xA4, 0xE3, 0x83, 0xAD, 0x52, 0xE3, 0x83,\n\t0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88,\n\t0x52, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3,\n\t0x82, 0xA2, 0xE3, 0x82, 0xB9, 0xE3, 0x83, 0x88,\n\t// Bytes 2c40 - 2c7f\n\t0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83, 0x95, 0xE3,\n\t0x82, 0x99, 0xE3, 0x83, 0x83, 0xE3, 0x82, 0xB7,\n\t0xE3, 0x82, 0xA7, 0xE3, 0x83, 0xAB, 0x52, 0xE3,\n\t0x83, 0x9F, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x8F,\n\t0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0xAB, 0x52, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xB3,\n\t0xE3, 0x83, 0x88, 0xE3, 0x82, 0xB1, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xB3, 0x61, 0xD8, 0xB5, 0xD9,\n\t// Bytes 2c80 - 2cbf\n\t0x84, 0xD9, 0x89, 0x20, 0xD8, 0xA7, 0xD9, 0x84,\n\t0xD9, 0x84, 0xD9, 0x87, 0x20, 0xD8, 0xB9, 0xD9,\n\t0x84, 0xD9, 0x8A, 0xD9, 0x87, 0x20, 0xD9, 0x88,\n\t0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x06, 0xE0,\n\t0xA7, 0x87, 0xE0, 0xA6, 0xBE, 0x01, 0x06, 0xE0,\n\t0xA7, 0x87, 0xE0, 0xA7, 0x97, 0x01, 0x06, 0xE0,\n\t0xAD, 0x87, 0xE0, 0xAC, 0xBE, 0x01, 0x06, 0xE0,\n\t0xAD, 0x87, 0xE0, 0xAD, 0x96, 0x01, 0x06, 0xE0,\n\t// Bytes 2cc0 - 2cff\n\t0xAD, 0x87, 0xE0, 0xAD, 0x97, 0x01, 0x06, 0xE0,\n\t0xAE, 0x92, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0,\n\t0xAF, 0x86, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0,\n\t0xAF, 0x86, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0,\n\t0xAF, 0x87, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0,\n\t0xB2, 0xBF, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0,\n\t0xB3, 0x86, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0,\n\t0xB3, 0x86, 0xE0, 0xB3, 0x96, 0x01, 0x06, 0xE0,\n\t// Bytes 2d00 - 2d3f\n\t0xB5, 0x86, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0,\n\t0xB5, 0x86, 0xE0, 0xB5, 0x97, 0x01, 0x06, 0xE0,\n\t0xB5, 0x87, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0,\n\t0xB7, 0x99, 0xE0, 0xB7, 0x9F, 0x01, 0x06, 0xE1,\n\t0x80, 0xA5, 0xE1, 0x80, 0xAE, 0x01, 0x06, 0xE1,\n\t0xAC, 0x85, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0x87, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0x89, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t// Bytes 2d40 - 2d7f\n\t0xAC, 0x8B, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0x8D, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0x91, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0xBA, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0xBC, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0xBE, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0xBF, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAD, 0x82, 0xE1, 0xAC, 0xB5, 0x01, 0x08, 0xF0,\n\t// Bytes 2d80 - 2dbf\n\t0x91, 0x84, 0xB1, 0xF0, 0x91, 0x84, 0xA7, 0x01,\n\t0x08, 0xF0, 0x91, 0x84, 0xB2, 0xF0, 0x91, 0x84,\n\t0xA7, 0x01, 0x08, 0xF0, 0x91, 0x8D, 0x87, 0xF0,\n\t0x91, 0x8C, 0xBE, 0x01, 0x08, 0xF0, 0x91, 0x8D,\n\t0x87, 0xF0, 0x91, 0x8D, 0x97, 0x01, 0x08, 0xF0,\n\t0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xB0, 0x01,\n\t0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92,\n\t0xBA, 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0,\n\t// Bytes 2dc0 - 2dff\n\t0x91, 0x92, 0xBD, 0x01, 0x08, 0xF0, 0x91, 0x96,\n\t0xB8, 0xF0, 0x91, 0x96, 0xAF, 0x01, 0x08, 0xF0,\n\t0x91, 0x96, 0xB9, 0xF0, 0x91, 0x96, 0xAF, 0x01,\n\t0x09, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0xE0,\n\t0xB3, 0x95, 0x02, 0x09, 0xE0, 0xB7, 0x99, 0xE0,\n\t0xB7, 0x8F, 0xE0, 0xB7, 0x8A, 0x12, 0x44, 0x44,\n\t0x5A, 0xCC, 0x8C, 0xC9, 0x44, 0x44, 0x7A, 0xCC,\n\t0x8C, 0xC9, 0x44, 0x64, 0x7A, 0xCC, 0x8C, 0xC9,\n\t// Bytes 2e00 - 2e3f\n\t0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x93, 0xC9,\n\t0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94, 0xC9,\n\t0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x95, 0xB5,\n\t0x46, 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1, 0x01,\n\t// Bytes 2e40 - 2e7f\n\t0x46, 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xAE, 0x01,\n\t0x46, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x90, 0xE1, 0x85, 0xA1, 0x01,\n\t// Bytes 2e80 - 2ebf\n\t0x46, 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0x01,\n\t0x49, 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB, 0xE3,\n\t0x82, 0x99, 0x0D, 0x4C, 0xE1, 0x84, 0x8C, 0xE1,\n\t0x85, 0xAE, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xB4,\n\t0x01, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99,\n\t0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, 0x4C,\n\t0xE3, 0x82, 0xB3, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t// Bytes 2ec0 - 2eff\n\t0x9B, 0xE3, 0x82, 0x9A, 0x0D, 0x4C, 0xE3, 0x83,\n\t0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3,\n\t0x82, 0x99, 0x0D, 0x4F, 0xE1, 0x84, 0x8E, 0xE1,\n\t0x85, 0xA1, 0xE1, 0x86, 0xB7, 0xE1, 0x84, 0x80,\n\t0xE1, 0x85, 0xA9, 0x01, 0x4F, 0xE3, 0x82, 0xA4,\n\t0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xB3, 0xE3, 0x82,\n\t0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3, 0x82,\n\t0xB7, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xB3, 0xE3,\n\t// Bytes 2f00 - 2f3f\n\t0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3,\n\t0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC,\n\t0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D, 0x4F,\n\t0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D,\n\t0x52, 0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xB9, 0xE3,\n\t0x82, 0xAF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88,\n\t0xE3, 0x82, 0x99, 0x0D, 0x52, 0xE3, 0x83, 0x95,\n\t// Bytes 2f40 - 2f7f\n\t0xE3, 0x82, 0xA1, 0xE3, 0x83, 0xA9, 0xE3, 0x83,\n\t0x83, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D,\n\t0x86, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0x01,\n\t0x86, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8F, 0x01,\n\t0x03, 0x3C, 0xCC, 0xB8, 0x05, 0x03, 0x3D, 0xCC,\n\t0xB8, 0x05, 0x03, 0x3E, 0xCC, 0xB8, 0x05, 0x03,\n\t0x41, 0xCC, 0x80, 0xC9, 0x03, 0x41, 0xCC, 0x81,\n\t0xC9, 0x03, 0x41, 0xCC, 0x83, 0xC9, 0x03, 0x41,\n\t// Bytes 2f80 - 2fbf\n\t0xCC, 0x84, 0xC9, 0x03, 0x41, 0xCC, 0x89, 0xC9,\n\t0x03, 0x41, 0xCC, 0x8C, 0xC9, 0x03, 0x41, 0xCC,\n\t0x8F, 0xC9, 0x03, 0x41, 0xCC, 0x91, 0xC9, 0x03,\n\t0x41, 0xCC, 0xA5, 0xB5, 0x03, 0x41, 0xCC, 0xA8,\n\t0xA5, 0x03, 0x42, 0xCC, 0x87, 0xC9, 0x03, 0x42,\n\t0xCC, 0xA3, 0xB5, 0x03, 0x42, 0xCC, 0xB1, 0xB5,\n\t0x03, 0x43, 0xCC, 0x81, 0xC9, 0x03, 0x43, 0xCC,\n\t0x82, 0xC9, 0x03, 0x43, 0xCC, 0x87, 0xC9, 0x03,\n\t// Bytes 2fc0 - 2fff\n\t0x43, 0xCC, 0x8C, 0xC9, 0x03, 0x44, 0xCC, 0x87,\n\t0xC9, 0x03, 0x44, 0xCC, 0x8C, 0xC9, 0x03, 0x44,\n\t0xCC, 0xA3, 0xB5, 0x03, 0x44, 0xCC, 0xA7, 0xA5,\n\t0x03, 0x44, 0xCC, 0xAD, 0xB5, 0x03, 0x44, 0xCC,\n\t0xB1, 0xB5, 0x03, 0x45, 0xCC, 0x80, 0xC9, 0x03,\n\t0x45, 0xCC, 0x81, 0xC9, 0x03, 0x45, 0xCC, 0x83,\n\t0xC9, 0x03, 0x45, 0xCC, 0x86, 0xC9, 0x03, 0x45,\n\t0xCC, 0x87, 0xC9, 0x03, 0x45, 0xCC, 0x88, 0xC9,\n\t// Bytes 3000 - 303f\n\t0x03, 0x45, 0xCC, 0x89, 0xC9, 0x03, 0x45, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x45, 0xCC, 0x8F, 0xC9, 0x03,\n\t0x45, 0xCC, 0x91, 0xC9, 0x03, 0x45, 0xCC, 0xA8,\n\t0xA5, 0x03, 0x45, 0xCC, 0xAD, 0xB5, 0x03, 0x45,\n\t0xCC, 0xB0, 0xB5, 0x03, 0x46, 0xCC, 0x87, 0xC9,\n\t0x03, 0x47, 0xCC, 0x81, 0xC9, 0x03, 0x47, 0xCC,\n\t0x82, 0xC9, 0x03, 0x47, 0xCC, 0x84, 0xC9, 0x03,\n\t0x47, 0xCC, 0x86, 0xC9, 0x03, 0x47, 0xCC, 0x87,\n\t// Bytes 3040 - 307f\n\t0xC9, 0x03, 0x47, 0xCC, 0x8C, 0xC9, 0x03, 0x47,\n\t0xCC, 0xA7, 0xA5, 0x03, 0x48, 0xCC, 0x82, 0xC9,\n\t0x03, 0x48, 0xCC, 0x87, 0xC9, 0x03, 0x48, 0xCC,\n\t0x88, 0xC9, 0x03, 0x48, 0xCC, 0x8C, 0xC9, 0x03,\n\t0x48, 0xCC, 0xA3, 0xB5, 0x03, 0x48, 0xCC, 0xA7,\n\t0xA5, 0x03, 0x48, 0xCC, 0xAE, 0xB5, 0x03, 0x49,\n\t0xCC, 0x80, 0xC9, 0x03, 0x49, 0xCC, 0x81, 0xC9,\n\t0x03, 0x49, 0xCC, 0x82, 0xC9, 0x03, 0x49, 0xCC,\n\t// Bytes 3080 - 30bf\n\t0x83, 0xC9, 0x03, 0x49, 0xCC, 0x84, 0xC9, 0x03,\n\t0x49, 0xCC, 0x86, 0xC9, 0x03, 0x49, 0xCC, 0x87,\n\t0xC9, 0x03, 0x49, 0xCC, 0x89, 0xC9, 0x03, 0x49,\n\t0xCC, 0x8C, 0xC9, 0x03, 0x49, 0xCC, 0x8F, 0xC9,\n\t0x03, 0x49, 0xCC, 0x91, 0xC9, 0x03, 0x49, 0xCC,\n\t0xA3, 0xB5, 0x03, 0x49, 0xCC, 0xA8, 0xA5, 0x03,\n\t0x49, 0xCC, 0xB0, 0xB5, 0x03, 0x4A, 0xCC, 0x82,\n\t0xC9, 0x03, 0x4B, 0xCC, 0x81, 0xC9, 0x03, 0x4B,\n\t// Bytes 30c0 - 30ff\n\t0xCC, 0x8C, 0xC9, 0x03, 0x4B, 0xCC, 0xA3, 0xB5,\n\t0x03, 0x4B, 0xCC, 0xA7, 0xA5, 0x03, 0x4B, 0xCC,\n\t0xB1, 0xB5, 0x03, 0x4C, 0xCC, 0x81, 0xC9, 0x03,\n\t0x4C, 0xCC, 0x8C, 0xC9, 0x03, 0x4C, 0xCC, 0xA7,\n\t0xA5, 0x03, 0x4C, 0xCC, 0xAD, 0xB5, 0x03, 0x4C,\n\t0xCC, 0xB1, 0xB5, 0x03, 0x4D, 0xCC, 0x81, 0xC9,\n\t0x03, 0x4D, 0xCC, 0x87, 0xC9, 0x03, 0x4D, 0xCC,\n\t0xA3, 0xB5, 0x03, 0x4E, 0xCC, 0x80, 0xC9, 0x03,\n\t// Bytes 3100 - 313f\n\t0x4E, 0xCC, 0x81, 0xC9, 0x03, 0x4E, 0xCC, 0x83,\n\t0xC9, 0x03, 0x4E, 0xCC, 0x87, 0xC9, 0x03, 0x4E,\n\t0xCC, 0x8C, 0xC9, 0x03, 0x4E, 0xCC, 0xA3, 0xB5,\n\t0x03, 0x4E, 0xCC, 0xA7, 0xA5, 0x03, 0x4E, 0xCC,\n\t0xAD, 0xB5, 0x03, 0x4E, 0xCC, 0xB1, 0xB5, 0x03,\n\t0x4F, 0xCC, 0x80, 0xC9, 0x03, 0x4F, 0xCC, 0x81,\n\t0xC9, 0x03, 0x4F, 0xCC, 0x86, 0xC9, 0x03, 0x4F,\n\t0xCC, 0x89, 0xC9, 0x03, 0x4F, 0xCC, 0x8B, 0xC9,\n\t// Bytes 3140 - 317f\n\t0x03, 0x4F, 0xCC, 0x8C, 0xC9, 0x03, 0x4F, 0xCC,\n\t0x8F, 0xC9, 0x03, 0x4F, 0xCC, 0x91, 0xC9, 0x03,\n\t0x50, 0xCC, 0x81, 0xC9, 0x03, 0x50, 0xCC, 0x87,\n\t0xC9, 0x03, 0x52, 0xCC, 0x81, 0xC9, 0x03, 0x52,\n\t0xCC, 0x87, 0xC9, 0x03, 0x52, 0xCC, 0x8C, 0xC9,\n\t0x03, 0x52, 0xCC, 0x8F, 0xC9, 0x03, 0x52, 0xCC,\n\t0x91, 0xC9, 0x03, 0x52, 0xCC, 0xA7, 0xA5, 0x03,\n\t0x52, 0xCC, 0xB1, 0xB5, 0x03, 0x53, 0xCC, 0x82,\n\t// Bytes 3180 - 31bf\n\t0xC9, 0x03, 0x53, 0xCC, 0x87, 0xC9, 0x03, 0x53,\n\t0xCC, 0xA6, 0xB5, 0x03, 0x53, 0xCC, 0xA7, 0xA5,\n\t0x03, 0x54, 0xCC, 0x87, 0xC9, 0x03, 0x54, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x54, 0xCC, 0xA3, 0xB5, 0x03,\n\t0x54, 0xCC, 0xA6, 0xB5, 0x03, 0x54, 0xCC, 0xA7,\n\t0xA5, 0x03, 0x54, 0xCC, 0xAD, 0xB5, 0x03, 0x54,\n\t0xCC, 0xB1, 0xB5, 0x03, 0x55, 0xCC, 0x80, 0xC9,\n\t0x03, 0x55, 0xCC, 0x81, 0xC9, 0x03, 0x55, 0xCC,\n\t// Bytes 31c0 - 31ff\n\t0x82, 0xC9, 0x03, 0x55, 0xCC, 0x86, 0xC9, 0x03,\n\t0x55, 0xCC, 0x89, 0xC9, 0x03, 0x55, 0xCC, 0x8A,\n\t0xC9, 0x03, 0x55, 0xCC, 0x8B, 0xC9, 0x03, 0x55,\n\t0xCC, 0x8C, 0xC9, 0x03, 0x55, 0xCC, 0x8F, 0xC9,\n\t0x03, 0x55, 0xCC, 0x91, 0xC9, 0x03, 0x55, 0xCC,\n\t0xA3, 0xB5, 0x03, 0x55, 0xCC, 0xA4, 0xB5, 0x03,\n\t0x55, 0xCC, 0xA8, 0xA5, 0x03, 0x55, 0xCC, 0xAD,\n\t0xB5, 0x03, 0x55, 0xCC, 0xB0, 0xB5, 0x03, 0x56,\n\t// Bytes 3200 - 323f\n\t0xCC, 0x83, 0xC9, 0x03, 0x56, 0xCC, 0xA3, 0xB5,\n\t0x03, 0x57, 0xCC, 0x80, 0xC9, 0x03, 0x57, 0xCC,\n\t0x81, 0xC9, 0x03, 0x57, 0xCC, 0x82, 0xC9, 0x03,\n\t0x57, 0xCC, 0x87, 0xC9, 0x03, 0x57, 0xCC, 0x88,\n\t0xC9, 0x03, 0x57, 0xCC, 0xA3, 0xB5, 0x03, 0x58,\n\t0xCC, 0x87, 0xC9, 0x03, 0x58, 0xCC, 0x88, 0xC9,\n\t0x03, 0x59, 0xCC, 0x80, 0xC9, 0x03, 0x59, 0xCC,\n\t0x81, 0xC9, 0x03, 0x59, 0xCC, 0x82, 0xC9, 0x03,\n\t// Bytes 3240 - 327f\n\t0x59, 0xCC, 0x83, 0xC9, 0x03, 0x59, 0xCC, 0x84,\n\t0xC9, 0x03, 0x59, 0xCC, 0x87, 0xC9, 0x03, 0x59,\n\t0xCC, 0x88, 0xC9, 0x03, 0x59, 0xCC, 0x89, 0xC9,\n\t0x03, 0x59, 0xCC, 0xA3, 0xB5, 0x03, 0x5A, 0xCC,\n\t0x81, 0xC9, 0x03, 0x5A, 0xCC, 0x82, 0xC9, 0x03,\n\t0x5A, 0xCC, 0x87, 0xC9, 0x03, 0x5A, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x5A, 0xCC, 0xA3, 0xB5, 0x03, 0x5A,\n\t0xCC, 0xB1, 0xB5, 0x03, 0x61, 0xCC, 0x80, 0xC9,\n\t// Bytes 3280 - 32bf\n\t0x03, 0x61, 0xCC, 0x81, 0xC9, 0x03, 0x61, 0xCC,\n\t0x83, 0xC9, 0x03, 0x61, 0xCC, 0x84, 0xC9, 0x03,\n\t0x61, 0xCC, 0x89, 0xC9, 0x03, 0x61, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x61, 0xCC, 0x8F, 0xC9, 0x03, 0x61,\n\t0xCC, 0x91, 0xC9, 0x03, 0x61, 0xCC, 0xA5, 0xB5,\n\t0x03, 0x61, 0xCC, 0xA8, 0xA5, 0x03, 0x62, 0xCC,\n\t0x87, 0xC9, 0x03, 0x62, 0xCC, 0xA3, 0xB5, 0x03,\n\t0x62, 0xCC, 0xB1, 0xB5, 0x03, 0x63, 0xCC, 0x81,\n\t// Bytes 32c0 - 32ff\n\t0xC9, 0x03, 0x63, 0xCC, 0x82, 0xC9, 0x03, 0x63,\n\t0xCC, 0x87, 0xC9, 0x03, 0x63, 0xCC, 0x8C, 0xC9,\n\t0x03, 0x64, 0xCC, 0x87, 0xC9, 0x03, 0x64, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x64, 0xCC, 0xA3, 0xB5, 0x03,\n\t0x64, 0xCC, 0xA7, 0xA5, 0x03, 0x64, 0xCC, 0xAD,\n\t0xB5, 0x03, 0x64, 0xCC, 0xB1, 0xB5, 0x03, 0x65,\n\t0xCC, 0x80, 0xC9, 0x03, 0x65, 0xCC, 0x81, 0xC9,\n\t0x03, 0x65, 0xCC, 0x83, 0xC9, 0x03, 0x65, 0xCC,\n\t// Bytes 3300 - 333f\n\t0x86, 0xC9, 0x03, 0x65, 0xCC, 0x87, 0xC9, 0x03,\n\t0x65, 0xCC, 0x88, 0xC9, 0x03, 0x65, 0xCC, 0x89,\n\t0xC9, 0x03, 0x65, 0xCC, 0x8C, 0xC9, 0x03, 0x65,\n\t0xCC, 0x8F, 0xC9, 0x03, 0x65, 0xCC, 0x91, 0xC9,\n\t0x03, 0x65, 0xCC, 0xA8, 0xA5, 0x03, 0x65, 0xCC,\n\t0xAD, 0xB5, 0x03, 0x65, 0xCC, 0xB0, 0xB5, 0x03,\n\t0x66, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC, 0x81,\n\t0xC9, 0x03, 0x67, 0xCC, 0x82, 0xC9, 0x03, 0x67,\n\t// Bytes 3340 - 337f\n\t0xCC, 0x84, 0xC9, 0x03, 0x67, 0xCC, 0x86, 0xC9,\n\t0x03, 0x67, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x67, 0xCC, 0xA7, 0xA5, 0x03,\n\t0x68, 0xCC, 0x82, 0xC9, 0x03, 0x68, 0xCC, 0x87,\n\t0xC9, 0x03, 0x68, 0xCC, 0x88, 0xC9, 0x03, 0x68,\n\t0xCC, 0x8C, 0xC9, 0x03, 0x68, 0xCC, 0xA3, 0xB5,\n\t0x03, 0x68, 0xCC, 0xA7, 0xA5, 0x03, 0x68, 0xCC,\n\t0xAE, 0xB5, 0x03, 0x68, 0xCC, 0xB1, 0xB5, 0x03,\n\t// Bytes 3380 - 33bf\n\t0x69, 0xCC, 0x80, 0xC9, 0x03, 0x69, 0xCC, 0x81,\n\t0xC9, 0x03, 0x69, 0xCC, 0x82, 0xC9, 0x03, 0x69,\n\t0xCC, 0x83, 0xC9, 0x03, 0x69, 0xCC, 0x84, 0xC9,\n\t0x03, 0x69, 0xCC, 0x86, 0xC9, 0x03, 0x69, 0xCC,\n\t0x89, 0xC9, 0x03, 0x69, 0xCC, 0x8C, 0xC9, 0x03,\n\t0x69, 0xCC, 0x8F, 0xC9, 0x03, 0x69, 0xCC, 0x91,\n\t0xC9, 0x03, 0x69, 0xCC, 0xA3, 0xB5, 0x03, 0x69,\n\t0xCC, 0xA8, 0xA5, 0x03, 0x69, 0xCC, 0xB0, 0xB5,\n\t// Bytes 33c0 - 33ff\n\t0x03, 0x6A, 0xCC, 0x82, 0xC9, 0x03, 0x6A, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0x81, 0xC9, 0x03,\n\t0x6B, 0xCC, 0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0xA3,\n\t0xB5, 0x03, 0x6B, 0xCC, 0xA7, 0xA5, 0x03, 0x6B,\n\t0xCC, 0xB1, 0xB5, 0x03, 0x6C, 0xCC, 0x81, 0xC9,\n\t0x03, 0x6C, 0xCC, 0x8C, 0xC9, 0x03, 0x6C, 0xCC,\n\t0xA7, 0xA5, 0x03, 0x6C, 0xCC, 0xAD, 0xB5, 0x03,\n\t0x6C, 0xCC, 0xB1, 0xB5, 0x03, 0x6D, 0xCC, 0x81,\n\t// Bytes 3400 - 343f\n\t0xC9, 0x03, 0x6D, 0xCC, 0x87, 0xC9, 0x03, 0x6D,\n\t0xCC, 0xA3, 0xB5, 0x03, 0x6E, 0xCC, 0x80, 0xC9,\n\t0x03, 0x6E, 0xCC, 0x81, 0xC9, 0x03, 0x6E, 0xCC,\n\t0x83, 0xC9, 0x03, 0x6E, 0xCC, 0x87, 0xC9, 0x03,\n\t0x6E, 0xCC, 0x8C, 0xC9, 0x03, 0x6E, 0xCC, 0xA3,\n\t0xB5, 0x03, 0x6E, 0xCC, 0xA7, 0xA5, 0x03, 0x6E,\n\t0xCC, 0xAD, 0xB5, 0x03, 0x6E, 0xCC, 0xB1, 0xB5,\n\t0x03, 0x6F, 0xCC, 0x80, 0xC9, 0x03, 0x6F, 0xCC,\n\t// Bytes 3440 - 347f\n\t0x81, 0xC9, 0x03, 0x6F, 0xCC, 0x86, 0xC9, 0x03,\n\t0x6F, 0xCC, 0x89, 0xC9, 0x03, 0x6F, 0xCC, 0x8B,\n\t0xC9, 0x03, 0x6F, 0xCC, 0x8C, 0xC9, 0x03, 0x6F,\n\t0xCC, 0x8F, 0xC9, 0x03, 0x6F, 0xCC, 0x91, 0xC9,\n\t0x03, 0x70, 0xCC, 0x81, 0xC9, 0x03, 0x70, 0xCC,\n\t0x87, 0xC9, 0x03, 0x72, 0xCC, 0x81, 0xC9, 0x03,\n\t0x72, 0xCC, 0x87, 0xC9, 0x03, 0x72, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x72, 0xCC, 0x8F, 0xC9, 0x03, 0x72,\n\t// Bytes 3480 - 34bf\n\t0xCC, 0x91, 0xC9, 0x03, 0x72, 0xCC, 0xA7, 0xA5,\n\t0x03, 0x72, 0xCC, 0xB1, 0xB5, 0x03, 0x73, 0xCC,\n\t0x82, 0xC9, 0x03, 0x73, 0xCC, 0x87, 0xC9, 0x03,\n\t0x73, 0xCC, 0xA6, 0xB5, 0x03, 0x73, 0xCC, 0xA7,\n\t0xA5, 0x03, 0x74, 0xCC, 0x87, 0xC9, 0x03, 0x74,\n\t0xCC, 0x88, 0xC9, 0x03, 0x74, 0xCC, 0x8C, 0xC9,\n\t0x03, 0x74, 0xCC, 0xA3, 0xB5, 0x03, 0x74, 0xCC,\n\t0xA6, 0xB5, 0x03, 0x74, 0xCC, 0xA7, 0xA5, 0x03,\n\t// Bytes 34c0 - 34ff\n\t0x74, 0xCC, 0xAD, 0xB5, 0x03, 0x74, 0xCC, 0xB1,\n\t0xB5, 0x03, 0x75, 0xCC, 0x80, 0xC9, 0x03, 0x75,\n\t0xCC, 0x81, 0xC9, 0x03, 0x75, 0xCC, 0x82, 0xC9,\n\t0x03, 0x75, 0xCC, 0x86, 0xC9, 0x03, 0x75, 0xCC,\n\t0x89, 0xC9, 0x03, 0x75, 0xCC, 0x8A, 0xC9, 0x03,\n\t0x75, 0xCC, 0x8B, 0xC9, 0x03, 0x75, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x75, 0xCC, 0x8F, 0xC9, 0x03, 0x75,\n\t0xCC, 0x91, 0xC9, 0x03, 0x75, 0xCC, 0xA3, 0xB5,\n\t// Bytes 3500 - 353f\n\t0x03, 0x75, 0xCC, 0xA4, 0xB5, 0x03, 0x75, 0xCC,\n\t0xA8, 0xA5, 0x03, 0x75, 0xCC, 0xAD, 0xB5, 0x03,\n\t0x75, 0xCC, 0xB0, 0xB5, 0x03, 0x76, 0xCC, 0x83,\n\t0xC9, 0x03, 0x76, 0xCC, 0xA3, 0xB5, 0x03, 0x77,\n\t0xCC, 0x80, 0xC9, 0x03, 0x77, 0xCC, 0x81, 0xC9,\n\t0x03, 0x77, 0xCC, 0x82, 0xC9, 0x03, 0x77, 0xCC,\n\t0x87, 0xC9, 0x03, 0x77, 0xCC, 0x88, 0xC9, 0x03,\n\t0x77, 0xCC, 0x8A, 0xC9, 0x03, 0x77, 0xCC, 0xA3,\n\t// Bytes 3540 - 357f\n\t0xB5, 0x03, 0x78, 0xCC, 0x87, 0xC9, 0x03, 0x78,\n\t0xCC, 0x88, 0xC9, 0x03, 0x79, 0xCC, 0x80, 0xC9,\n\t0x03, 0x79, 0xCC, 0x81, 0xC9, 0x03, 0x79, 0xCC,\n\t0x82, 0xC9, 0x03, 0x79, 0xCC, 0x83, 0xC9, 0x03,\n\t0x79, 0xCC, 0x84, 0xC9, 0x03, 0x79, 0xCC, 0x87,\n\t0xC9, 0x03, 0x79, 0xCC, 0x88, 0xC9, 0x03, 0x79,\n\t0xCC, 0x89, 0xC9, 0x03, 0x79, 0xCC, 0x8A, 0xC9,\n\t0x03, 0x79, 0xCC, 0xA3, 0xB5, 0x03, 0x7A, 0xCC,\n\t// Bytes 3580 - 35bf\n\t0x81, 0xC9, 0x03, 0x7A, 0xCC, 0x82, 0xC9, 0x03,\n\t0x7A, 0xCC, 0x87, 0xC9, 0x03, 0x7A, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x7A, 0xCC, 0xA3, 0xB5, 0x03, 0x7A,\n\t0xCC, 0xB1, 0xB5, 0x04, 0xC2, 0xA8, 0xCC, 0x80,\n\t0xCA, 0x04, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x04,\n\t0xC2, 0xA8, 0xCD, 0x82, 0xCA, 0x04, 0xC3, 0x86,\n\t0xCC, 0x81, 0xC9, 0x04, 0xC3, 0x86, 0xCC, 0x84,\n\t0xC9, 0x04, 0xC3, 0x98, 0xCC, 0x81, 0xC9, 0x04,\n\t// Bytes 35c0 - 35ff\n\t0xC3, 0xA6, 0xCC, 0x81, 0xC9, 0x04, 0xC3, 0xA6,\n\t0xCC, 0x84, 0xC9, 0x04, 0xC3, 0xB8, 0xCC, 0x81,\n\t0xC9, 0x04, 0xC5, 0xBF, 0xCC, 0x87, 0xC9, 0x04,\n\t0xC6, 0xB7, 0xCC, 0x8C, 0xC9, 0x04, 0xCA, 0x92,\n\t0xCC, 0x8C, 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x80,\n\t0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x81, 0xC9, 0x04,\n\t0xCE, 0x91, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0x91,\n\t0xCC, 0x86, 0xC9, 0x04, 0xCE, 0x91, 0xCD, 0x85,\n\t// Bytes 3600 - 363f\n\t0xD9, 0x04, 0xCE, 0x95, 0xCC, 0x80, 0xC9, 0x04,\n\t0xCE, 0x95, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x97,\n\t0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x97, 0xCC, 0x81,\n\t0xC9, 0x04, 0xCE, 0x97, 0xCD, 0x85, 0xD9, 0x04,\n\t0xCE, 0x99, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x99,\n\t0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x84,\n\t0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x86, 0xC9, 0x04,\n\t0xCE, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0x9F,\n\t// Bytes 3640 - 367f\n\t0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x9F, 0xCC, 0x81,\n\t0xC9, 0x04, 0xCE, 0xA1, 0xCC, 0x94, 0xC9, 0x04,\n\t0xCE, 0xA5, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA5,\n\t0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x84,\n\t0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x86, 0xC9, 0x04,\n\t0xCE, 0xA5, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0xA9,\n\t0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA9, 0xCC, 0x81,\n\t0xC9, 0x04, 0xCE, 0xA9, 0xCD, 0x85, 0xD9, 0x04,\n\t// Bytes 3680 - 36bf\n\t0xCE, 0xB1, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB1,\n\t0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB1, 0xCD, 0x85,\n\t0xD9, 0x04, 0xCE, 0xB5, 0xCC, 0x80, 0xC9, 0x04,\n\t0xCE, 0xB5, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xB7,\n\t0xCD, 0x85, 0xD9, 0x04, 0xCE, 0xB9, 0xCC, 0x80,\n\t0xC9, 0x04, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x04,\n\t0xCE, 0xB9, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB9,\n\t0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB9, 0xCD, 0x82,\n\t// Bytes 36c0 - 36ff\n\t0xC9, 0x04, 0xCE, 0xBF, 0xCC, 0x80, 0xC9, 0x04,\n\t0xCE, 0xBF, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x81,\n\t0xCC, 0x93, 0xC9, 0x04, 0xCF, 0x81, 0xCC, 0x94,\n\t0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x80, 0xC9, 0x04,\n\t0xCF, 0x85, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x85,\n\t0xCC, 0x84, 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x86,\n\t0xC9, 0x04, 0xCF, 0x85, 0xCD, 0x82, 0xC9, 0x04,\n\t0xCF, 0x89, 0xCD, 0x85, 0xD9, 0x04, 0xCF, 0x92,\n\t// Bytes 3700 - 373f\n\t0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x92, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD0, 0x86, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD0, 0x90, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x90,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x93, 0xCC, 0x81,\n\t0xC9, 0x04, 0xD0, 0x95, 0xCC, 0x80, 0xC9, 0x04,\n\t0xD0, 0x95, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x95,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x86,\n\t0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x88, 0xC9, 0x04,\n\t// Bytes 3740 - 377f\n\t0xD0, 0x97, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x98,\n\t0xCC, 0x80, 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x84,\n\t0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x86, 0xC9, 0x04,\n\t0xD0, 0x98, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x9A,\n\t0xCC, 0x81, 0xC9, 0x04, 0xD0, 0x9E, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x84, 0xC9, 0x04,\n\t0xD0, 0xA3, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xA3,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x8B,\n\t// Bytes 3780 - 37bf\n\t0xC9, 0x04, 0xD0, 0xA7, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD0, 0xAB, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xAD,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x86,\n\t0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD0, 0xB3, 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0xB5,\n\t0xCC, 0x80, 0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x86,\n\t0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD0, 0xB6, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB6,\n\t// Bytes 37c0 - 37ff\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB7, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x80, 0xC9, 0x04,\n\t0xD0, 0xB8, 0xCC, 0x84, 0xC9, 0x04, 0xD0, 0xB8,\n\t0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD0, 0xBA, 0xCC, 0x81, 0xC9, 0x04,\n\t0xD0, 0xBE, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x83,\n\t0xCC, 0x84, 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x86,\n\t0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x88, 0xC9, 0x04,\n\t// Bytes 3800 - 383f\n\t0xD1, 0x83, 0xCC, 0x8B, 0xC9, 0x04, 0xD1, 0x87,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x8B, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD1, 0x8D, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD1, 0x96, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0xB4,\n\t0xCC, 0x8F, 0xC9, 0x04, 0xD1, 0xB5, 0xCC, 0x8F,\n\t0xC9, 0x04, 0xD3, 0x98, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD3, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA8,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA9, 0xCC, 0x88,\n\t// Bytes 3840 - 387f\n\t0xC9, 0x04, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, 0x04,\n\t0xD8, 0xA7, 0xD9, 0x94, 0xC9, 0x04, 0xD8, 0xA7,\n\t0xD9, 0x95, 0xB5, 0x04, 0xD9, 0x88, 0xD9, 0x94,\n\t0xC9, 0x04, 0xD9, 0x8A, 0xD9, 0x94, 0xC9, 0x04,\n\t0xDB, 0x81, 0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x92,\n\t0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x95, 0xD9, 0x94,\n\t0xC9, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x80, 0xCA,\n\t0x05, 0x41, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05,\n\t// Bytes 3880 - 38bf\n\t0x41, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x41,\n\t0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x41, 0xCC,\n\t0x86, 0xCC, 0x80, 0xCA, 0x05, 0x41, 0xCC, 0x86,\n\t0xCC, 0x81, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC,\n\t0x83, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC, 0x89,\n\t0xCA, 0x05, 0x41, 0xCC, 0x87, 0xCC, 0x84, 0xCA,\n\t0x05, 0x41, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05,\n\t0x41, 0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x41,\n\t// Bytes 38c0 - 38ff\n\t0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x41, 0xCC,\n\t0xA3, 0xCC, 0x86, 0xCA, 0x05, 0x43, 0xCC, 0xA7,\n\t0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC,\n\t0x80, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x81,\n\t0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x83, 0xCA,\n\t0x05, 0x45, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05,\n\t0x45, 0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x45,\n\t0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC,\n\t// Bytes 3900 - 393f\n\t0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x45, 0xCC, 0xA7,\n\t0xCC, 0x86, 0xCA, 0x05, 0x49, 0xCC, 0x88, 0xCC,\n\t0x81, 0xCA, 0x05, 0x4C, 0xCC, 0xA3, 0xCC, 0x84,\n\t0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x80, 0xCA,\n\t0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05,\n\t0x4F, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x4F,\n\t0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x4F, 0xCC,\n\t0x83, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x83,\n\t// Bytes 3940 - 397f\n\t0xCC, 0x84, 0xCA, 0x05, 0x4F, 0xCC, 0x83, 0xCC,\n\t0x88, 0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x80,\n\t0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x81, 0xCA,\n\t0x05, 0x4F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05,\n\t0x4F, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x4F,\n\t0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x4F, 0xCC,\n\t0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x9B,\n\t0xCC, 0x83, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC,\n\t// Bytes 3980 - 39bf\n\t0x89, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0xA3,\n\t0xB6, 0x05, 0x4F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA,\n\t0x05, 0x4F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05,\n\t0x52, 0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x53,\n\t0xCC, 0x81, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC,\n\t0x8C, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC, 0xA3,\n\t0xCC, 0x87, 0xCA, 0x05, 0x55, 0xCC, 0x83, 0xCC,\n\t0x81, 0xCA, 0x05, 0x55, 0xCC, 0x84, 0xCC, 0x88,\n\t// Bytes 39c0 - 39ff\n\t0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x80, 0xCA,\n\t0x05, 0x55, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05,\n\t0x55, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x55,\n\t0xCC, 0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x55, 0xCC,\n\t0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x55, 0xCC, 0x9B,\n\t0xCC, 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC,\n\t0x83, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x89,\n\t0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6,\n\t// Bytes 3a00 - 3a3f\n\t0x05, 0x61, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05,\n\t0x61, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x61,\n\t0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x61, 0xCC,\n\t0x82, 0xCC, 0x89, 0xCA, 0x05, 0x61, 0xCC, 0x86,\n\t0xCC, 0x80, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC,\n\t0x81, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x83,\n\t0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x89, 0xCA,\n\t0x05, 0x61, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05,\n\t// Bytes 3a40 - 3a7f\n\t0x61, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x61,\n\t0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x61, 0xCC,\n\t0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x61, 0xCC, 0xA3,\n\t0xCC, 0x86, 0xCA, 0x05, 0x63, 0xCC, 0xA7, 0xCC,\n\t0x81, 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x80,\n\t0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x81, 0xCA,\n\t0x05, 0x65, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05,\n\t0x65, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x65,\n\t// Bytes 3a80 - 3abf\n\t0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x65, 0xCC,\n\t0x84, 0xCC, 0x81, 0xCA, 0x05, 0x65, 0xCC, 0xA3,\n\t0xCC, 0x82, 0xCA, 0x05, 0x65, 0xCC, 0xA7, 0xCC,\n\t0x86, 0xCA, 0x05, 0x69, 0xCC, 0x88, 0xCC, 0x81,\n\t0xCA, 0x05, 0x6C, 0xCC, 0xA3, 0xCC, 0x84, 0xCA,\n\t0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05,\n\t0x6F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x6F,\n\t0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x6F, 0xCC,\n\t// Bytes 3ac0 - 3aff\n\t0x82, 0xCC, 0x89, 0xCA, 0x05, 0x6F, 0xCC, 0x83,\n\t0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC,\n\t0x84, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC, 0x88,\n\t0xCA, 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x80, 0xCA,\n\t0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05,\n\t0x6F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, 0x6F,\n\t0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x6F, 0xCC,\n\t0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x6F, 0xCC, 0x9B,\n\t// Bytes 3b00 - 3b3f\n\t0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC,\n\t0x83, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x89,\n\t0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6,\n\t0x05, 0x6F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05,\n\t0x6F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05, 0x72,\n\t0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x73, 0xCC,\n\t0x81, 0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0x8C,\n\t0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0xA3, 0xCC,\n\t// Bytes 3b40 - 3b7f\n\t0x87, 0xCA, 0x05, 0x75, 0xCC, 0x83, 0xCC, 0x81,\n\t0xCA, 0x05, 0x75, 0xCC, 0x84, 0xCC, 0x88, 0xCA,\n\t0x05, 0x75, 0xCC, 0x88, 0xCC, 0x80, 0xCA, 0x05,\n\t0x75, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, 0x75,\n\t0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x75, 0xCC,\n\t0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x75, 0xCC, 0x9B,\n\t0xCC, 0x80, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC,\n\t0x81, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x83,\n\t// Bytes 3b80 - 3bbf\n\t0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x89, 0xCA,\n\t0x05, 0x75, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, 0x05,\n\t0xE1, 0xBE, 0xBF, 0xCC, 0x80, 0xCA, 0x05, 0xE1,\n\t0xBE, 0xBF, 0xCC, 0x81, 0xCA, 0x05, 0xE1, 0xBE,\n\t0xBF, 0xCD, 0x82, 0xCA, 0x05, 0xE1, 0xBF, 0xBE,\n\t0xCC, 0x80, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCC,\n\t0x81, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCD, 0x82,\n\t0xCA, 0x05, 0xE2, 0x86, 0x90, 0xCC, 0xB8, 0x05,\n\t// Bytes 3bc0 - 3bff\n\t0x05, 0xE2, 0x86, 0x92, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x86, 0x94, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x87, 0x90, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87,\n\t0x92, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, 0x94,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x83, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x88, 0x88, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x88, 0x8B, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x88, 0xA3, 0xCC, 0xB8, 0x05, 0x05,\n\t// Bytes 3c00 - 3c3f\n\t0xE2, 0x88, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x88, 0xBC, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89,\n\t0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x85,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x88, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x89, 0x8D, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x89, 0xA1, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x89, 0xA4, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x89, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t// Bytes 3c40 - 3c7f\n\t0x89, 0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89,\n\t0xB3, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB6,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB7, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBA, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x89, 0xBB, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x89, 0xBC, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x89, 0xBD, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x8A, 0x82, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,\n\t// Bytes 3c80 - 3cbf\n\t0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x86,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x87, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x91, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x8A, 0x92, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x8A, 0xA2, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x8A, 0xA8, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x8A, 0xA9, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,\n\t0xAB, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB2,\n\t// Bytes 3cc0 - 3cff\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB3, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB4, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x8A, 0xB5, 0xCC, 0xB8, 0x05,\n\t0x06, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t// Bytes 3d00 - 3d3f\n\t0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t// Bytes 3d40 - 3d7f\n\t0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x82, 0xCA,\n\t// Bytes 3d80 - 3dbf\n\t0x06, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCC, 0x81, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t// Bytes 3dc0 - 3dff\n\t0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x85, 0xDA,\n\t// Bytes 3e00 - 3e3f\n\t0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t// Bytes 3e40 - 3e7f\n\t0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCD, 0x82, 0xCA,\n\t// Bytes 3e80 - 3ebf\n\t0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x85, 0xDA,\n\t// Bytes 3ec0 - 3eff\n\t0x06, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x85, 0xDA,\n\t0x06, 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBC, 0x09,\n\t0x06, 0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBC, 0x09,\n\t0x06, 0xE0, 0xA4, 0xB3, 0xE0, 0xA4, 0xBC, 0x09,\n\t0x06, 0xE0, 0xB1, 0x86, 0xE0, 0xB1, 0x96, 0x85,\n\t0x06, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8A, 0x11,\n\t// Bytes 3f00 - 3f3f\n\t0x06, 0xE3, 0x81, 0x86, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x8B, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x8D, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x8F, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x91, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x93, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x95, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x97, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 3f40 - 3f7f\n\t0x06, 0xE3, 0x81, 0x99, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x9B, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x9D, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x9F, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xA1, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xA4, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xA6, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xA8, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 3f80 - 3fbf\n\t0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x9A, 0x0D,\n\t// Bytes 3fc0 - 3fff\n\t0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x82, 0x9D, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 4000 - 403f\n\t0x06, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xB5, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xBD, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x81, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 4040 - 407f\n\t0x06, 0xE3, 0x83, 0x84, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 4080 - 40bf\n\t0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0xAF, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0xB0, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0xB1, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 40c0 - 40ff\n\t0x06, 0xE3, 0x83, 0xB2, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0xBD, 0xE3, 0x82, 0x99, 0x0D,\n\t0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC,\n\t0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC,\n\t0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCD,\n\t// Bytes 4100 - 413f\n\t0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCD,\n\t0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC,\n\t0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x94, 0xCC,\n\t0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC,\n\t0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t// Bytes 4140 - 417f\n\t0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC,\n\t0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC,\n\t0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCD,\n\t// Bytes 4180 - 41bf\n\t0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC,\n\t0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x94, 0xCC,\n\t0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC,\n\t0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB,\n\t// Bytes 41c0 - 41ff\n\t0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC,\n\t0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC,\n\t0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCD,\n\t0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC,\n\t// Bytes 4200 - 423f\n\t0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF,\n\t0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x94, 0xCC,\n\t0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC,\n\t0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCF,\n\t0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB,\n\t0x08, 0xF0, 0x91, 0x82, 0x99, 0xF0, 0x91, 0x82,\n\t// Bytes 4240 - 427f\n\t0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82, 0x9B, 0xF0,\n\t0x91, 0x82, 0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82,\n\t0xA5, 0xF0, 0x91, 0x82, 0xBA, 0x09, 0x42, 0xC2,\n\t0xB4, 0x01, 0x43, 0x20, 0xCC, 0x81, 0xC9, 0x43,\n\t0x20, 0xCC, 0x83, 0xC9, 0x43, 0x20, 0xCC, 0x84,\n\t0xC9, 0x43, 0x20, 0xCC, 0x85, 0xC9, 0x43, 0x20,\n\t0xCC, 0x86, 0xC9, 0x43, 0x20, 0xCC, 0x87, 0xC9,\n\t0x43, 0x20, 0xCC, 0x88, 0xC9, 0x43, 0x20, 0xCC,\n\t// Bytes 4280 - 42bf\n\t0x8A, 0xC9, 0x43, 0x20, 0xCC, 0x8B, 0xC9, 0x43,\n\t0x20, 0xCC, 0x93, 0xC9, 0x43, 0x20, 0xCC, 0x94,\n\t0xC9, 0x43, 0x20, 0xCC, 0xA7, 0xA5, 0x43, 0x20,\n\t0xCC, 0xA8, 0xA5, 0x43, 0x20, 0xCC, 0xB3, 0xB5,\n\t0x43, 0x20, 0xCD, 0x82, 0xC9, 0x43, 0x20, 0xCD,\n\t0x85, 0xD9, 0x43, 0x20, 0xD9, 0x8B, 0x59, 0x43,\n\t0x20, 0xD9, 0x8C, 0x5D, 0x43, 0x20, 0xD9, 0x8D,\n\t0x61, 0x43, 0x20, 0xD9, 0x8E, 0x65, 0x43, 0x20,\n\t// Bytes 42c0 - 42ff\n\t0xD9, 0x8F, 0x69, 0x43, 0x20, 0xD9, 0x90, 0x6D,\n\t0x43, 0x20, 0xD9, 0x91, 0x71, 0x43, 0x20, 0xD9,\n\t0x92, 0x75, 0x43, 0x41, 0xCC, 0x8A, 0xC9, 0x43,\n\t0x73, 0xCC, 0x87, 0xC9, 0x44, 0x20, 0xE3, 0x82,\n\t0x99, 0x0D, 0x44, 0x20, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x44, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x44, 0xCE,\n\t0x91, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x95, 0xCC,\n\t0x81, 0xC9, 0x44, 0xCE, 0x97, 0xCC, 0x81, 0xC9,\n\t// Bytes 4300 - 433f\n\t0x44, 0xCE, 0x99, 0xCC, 0x81, 0xC9, 0x44, 0xCE,\n\t0x9F, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC,\n\t0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC, 0x88, 0xC9,\n\t0x44, 0xCE, 0xA9, 0xCC, 0x81, 0xC9, 0x44, 0xCE,\n\t0xB1, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xB5, 0xCC,\n\t0x81, 0xC9, 0x44, 0xCE, 0xB7, 0xCC, 0x81, 0xC9,\n\t0x44, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x44, 0xCE,\n\t0xBF, 0xCC, 0x81, 0xC9, 0x44, 0xCF, 0x85, 0xCC,\n\t// Bytes 4340 - 437f\n\t0x81, 0xC9, 0x44, 0xCF, 0x89, 0xCC, 0x81, 0xC9,\n\t0x44, 0xD7, 0x90, 0xD6, 0xB7, 0x31, 0x44, 0xD7,\n\t0x90, 0xD6, 0xB8, 0x35, 0x44, 0xD7, 0x90, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0x91, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0x91, 0xD6, 0xBF, 0x49, 0x44, 0xD7,\n\t0x92, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x93, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0x94, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0x95, 0xD6, 0xB9, 0x39, 0x44, 0xD7,\n\t// Bytes 4380 - 43bf\n\t0x95, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x96, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0x98, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0x99, 0xD6, 0xB4, 0x25, 0x44, 0xD7,\n\t0x99, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9A, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0x9B, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0x9B, 0xD6, 0xBF, 0x49, 0x44, 0xD7,\n\t0x9C, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9E, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0xA0, 0xD6, 0xBC, 0x41,\n\t// Bytes 43c0 - 43ff\n\t0x44, 0xD7, 0xA1, 0xD6, 0xBC, 0x41, 0x44, 0xD7,\n\t0xA3, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6, 0xBF, 0x49,\n\t0x44, 0xD7, 0xA6, 0xD6, 0xBC, 0x41, 0x44, 0xD7,\n\t0xA7, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA8, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0xA9, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0xA9, 0xD7, 0x81, 0x4D, 0x44, 0xD7,\n\t0xA9, 0xD7, 0x82, 0x51, 0x44, 0xD7, 0xAA, 0xD6,\n\t// Bytes 4400 - 443f\n\t0xBC, 0x41, 0x44, 0xD7, 0xB2, 0xD6, 0xB7, 0x31,\n\t0x44, 0xD8, 0xA7, 0xD9, 0x8B, 0x59, 0x44, 0xD8,\n\t0xA7, 0xD9, 0x93, 0xC9, 0x44, 0xD8, 0xA7, 0xD9,\n\t0x94, 0xC9, 0x44, 0xD8, 0xA7, 0xD9, 0x95, 0xB5,\n\t0x44, 0xD8, 0xB0, 0xD9, 0xB0, 0x79, 0x44, 0xD8,\n\t0xB1, 0xD9, 0xB0, 0x79, 0x44, 0xD9, 0x80, 0xD9,\n\t0x8B, 0x59, 0x44, 0xD9, 0x80, 0xD9, 0x8E, 0x65,\n\t0x44, 0xD9, 0x80, 0xD9, 0x8F, 0x69, 0x44, 0xD9,\n\t// Bytes 4440 - 447f\n\t0x80, 0xD9, 0x90, 0x6D, 0x44, 0xD9, 0x80, 0xD9,\n\t0x91, 0x71, 0x44, 0xD9, 0x80, 0xD9, 0x92, 0x75,\n\t0x44, 0xD9, 0x87, 0xD9, 0xB0, 0x79, 0x44, 0xD9,\n\t0x88, 0xD9, 0x94, 0xC9, 0x44, 0xD9, 0x89, 0xD9,\n\t0xB0, 0x79, 0x44, 0xD9, 0x8A, 0xD9, 0x94, 0xC9,\n\t0x44, 0xDB, 0x92, 0xD9, 0x94, 0xC9, 0x44, 0xDB,\n\t0x95, 0xD9, 0x94, 0xC9, 0x45, 0x20, 0xCC, 0x88,\n\t0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCC,\n\t// Bytes 4480 - 44bf\n\t0x81, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCD, 0x82,\n\t0xCA, 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x45, 0x20, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x45,\n\t0x20, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x45, 0x20,\n\t0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC,\n\t0x94, 0xCC, 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x94,\n\t0xCD, 0x82, 0xCA, 0x45, 0x20, 0xD9, 0x8C, 0xD9,\n\t0x91, 0x72, 0x45, 0x20, 0xD9, 0x8D, 0xD9, 0x91,\n\t// Bytes 44c0 - 44ff\n\t0x72, 0x45, 0x20, 0xD9, 0x8E, 0xD9, 0x91, 0x72,\n\t0x45, 0x20, 0xD9, 0x8F, 0xD9, 0x91, 0x72, 0x45,\n\t0x20, 0xD9, 0x90, 0xD9, 0x91, 0x72, 0x45, 0x20,\n\t0xD9, 0x91, 0xD9, 0xB0, 0x7A, 0x45, 0xE2, 0xAB,\n\t0x9D, 0xCC, 0xB8, 0x05, 0x46, 0xCE, 0xB9, 0xCC,\n\t0x88, 0xCC, 0x81, 0xCA, 0x46, 0xCF, 0x85, 0xCC,\n\t0x88, 0xCC, 0x81, 0xCA, 0x46, 0xD7, 0xA9, 0xD6,\n\t0xBC, 0xD7, 0x81, 0x4E, 0x46, 0xD7, 0xA9, 0xD6,\n\t// Bytes 4500 - 453f\n\t0xBC, 0xD7, 0x82, 0x52, 0x46, 0xD9, 0x80, 0xD9,\n\t0x8E, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9,\n\t0x8F, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9,\n\t0x90, 0xD9, 0x91, 0x72, 0x46, 0xE0, 0xA4, 0x95,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x96,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x97,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x9C,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA1,\n\t// Bytes 4540 - 457f\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA2,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAB,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAF,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA1,\n\t0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA2,\n\t0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xAF,\n\t0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x96,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x97,\n\t// Bytes 4580 - 45bf\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x9C,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xAB,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB2,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB8,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA1,\n\t0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA2,\n\t0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xBE, 0xB2,\n\t0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE0, 0xBE, 0xB3,\n\t// Bytes 45c0 - 45ff\n\t0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE3, 0x83, 0x86,\n\t0xE3, 0x82, 0x99, 0x0D, 0x48, 0xF0, 0x9D, 0x85,\n\t0x97, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, 0x48, 0xF0,\n\t0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xAD,\n\t0x48, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85,\n\t0xA5, 0xAD, 0x48, 0xF0, 0x9D, 0x86, 0xBA, 0xF0,\n\t0x9D, 0x85, 0xA5, 0xAD, 0x49, 0xE0, 0xBE, 0xB2,\n\t0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x49,\n\t// Bytes 4600 - 463f\n\t0xE0, 0xBE, 0xB3, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE,\n\t0x80, 0x9E, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0,\n\t0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE,\n\t0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85,\n\t0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0,\n\t0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0,\n\t0x9D, 0x85, 0xB0, 0xAE, 0x4C, 0xF0, 0x9D, 0x85,\n\t0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85,\n\t// Bytes 4640 - 467f\n\t0xB1, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0,\n\t0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB2, 0xAE,\n\t0x4C, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85,\n\t0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE, 0x4C, 0xF0,\n\t0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xF0,\n\t0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0, 0x9D, 0x86,\n\t0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85,\n\t0xAE, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xBA, 0xF0,\n\t// Bytes 4680 - 46bf\n\t0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE,\n\t0x83, 0x41, 0xCC, 0x82, 0xC9, 0x83, 0x41, 0xCC,\n\t0x86, 0xC9, 0x83, 0x41, 0xCC, 0x87, 0xC9, 0x83,\n\t0x41, 0xCC, 0x88, 0xC9, 0x83, 0x41, 0xCC, 0x8A,\n\t0xC9, 0x83, 0x41, 0xCC, 0xA3, 0xB5, 0x83, 0x43,\n\t0xCC, 0xA7, 0xA5, 0x83, 0x45, 0xCC, 0x82, 0xC9,\n\t0x83, 0x45, 0xCC, 0x84, 0xC9, 0x83, 0x45, 0xCC,\n\t0xA3, 0xB5, 0x83, 0x45, 0xCC, 0xA7, 0xA5, 0x83,\n\t// Bytes 46c0 - 46ff\n\t0x49, 0xCC, 0x88, 0xC9, 0x83, 0x4C, 0xCC, 0xA3,\n\t0xB5, 0x83, 0x4F, 0xCC, 0x82, 0xC9, 0x83, 0x4F,\n\t0xCC, 0x83, 0xC9, 0x83, 0x4F, 0xCC, 0x84, 0xC9,\n\t0x83, 0x4F, 0xCC, 0x87, 0xC9, 0x83, 0x4F, 0xCC,\n\t0x88, 0xC9, 0x83, 0x4F, 0xCC, 0x9B, 0xAD, 0x83,\n\t0x4F, 0xCC, 0xA3, 0xB5, 0x83, 0x4F, 0xCC, 0xA8,\n\t0xA5, 0x83, 0x52, 0xCC, 0xA3, 0xB5, 0x83, 0x53,\n\t0xCC, 0x81, 0xC9, 0x83, 0x53, 0xCC, 0x8C, 0xC9,\n\t// Bytes 4700 - 473f\n\t0x83, 0x53, 0xCC, 0xA3, 0xB5, 0x83, 0x55, 0xCC,\n\t0x83, 0xC9, 0x83, 0x55, 0xCC, 0x84, 0xC9, 0x83,\n\t0x55, 0xCC, 0x88, 0xC9, 0x83, 0x55, 0xCC, 0x9B,\n\t0xAD, 0x83, 0x61, 0xCC, 0x82, 0xC9, 0x83, 0x61,\n\t0xCC, 0x86, 0xC9, 0x83, 0x61, 0xCC, 0x87, 0xC9,\n\t0x83, 0x61, 0xCC, 0x88, 0xC9, 0x83, 0x61, 0xCC,\n\t0x8A, 0xC9, 0x83, 0x61, 0xCC, 0xA3, 0xB5, 0x83,\n\t0x63, 0xCC, 0xA7, 0xA5, 0x83, 0x65, 0xCC, 0x82,\n\t// Bytes 4740 - 477f\n\t0xC9, 0x83, 0x65, 0xCC, 0x84, 0xC9, 0x83, 0x65,\n\t0xCC, 0xA3, 0xB5, 0x83, 0x65, 0xCC, 0xA7, 0xA5,\n\t0x83, 0x69, 0xCC, 0x88, 0xC9, 0x83, 0x6C, 0xCC,\n\t0xA3, 0xB5, 0x83, 0x6F, 0xCC, 0x82, 0xC9, 0x83,\n\t0x6F, 0xCC, 0x83, 0xC9, 0x83, 0x6F, 0xCC, 0x84,\n\t0xC9, 0x83, 0x6F, 0xCC, 0x87, 0xC9, 0x83, 0x6F,\n\t0xCC, 0x88, 0xC9, 0x83, 0x6F, 0xCC, 0x9B, 0xAD,\n\t0x83, 0x6F, 0xCC, 0xA3, 0xB5, 0x83, 0x6F, 0xCC,\n\t// Bytes 4780 - 47bf\n\t0xA8, 0xA5, 0x83, 0x72, 0xCC, 0xA3, 0xB5, 0x83,\n\t0x73, 0xCC, 0x81, 0xC9, 0x83, 0x73, 0xCC, 0x8C,\n\t0xC9, 0x83, 0x73, 0xCC, 0xA3, 0xB5, 0x83, 0x75,\n\t0xCC, 0x83, 0xC9, 0x83, 0x75, 0xCC, 0x84, 0xC9,\n\t0x83, 0x75, 0xCC, 0x88, 0xC9, 0x83, 0x75, 0xCC,\n\t0x9B, 0xAD, 0x84, 0xCE, 0x91, 0xCC, 0x93, 0xC9,\n\t0x84, 0xCE, 0x91, 0xCC, 0x94, 0xC9, 0x84, 0xCE,\n\t0x95, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x95, 0xCC,\n\t// Bytes 47c0 - 47ff\n\t0x94, 0xC9, 0x84, 0xCE, 0x97, 0xCC, 0x93, 0xC9,\n\t0x84, 0xCE, 0x97, 0xCC, 0x94, 0xC9, 0x84, 0xCE,\n\t0x99, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x99, 0xCC,\n\t0x94, 0xC9, 0x84, 0xCE, 0x9F, 0xCC, 0x93, 0xC9,\n\t0x84, 0xCE, 0x9F, 0xCC, 0x94, 0xC9, 0x84, 0xCE,\n\t0xA5, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xA9, 0xCC,\n\t0x93, 0xC9, 0x84, 0xCE, 0xA9, 0xCC, 0x94, 0xC9,\n\t0x84, 0xCE, 0xB1, 0xCC, 0x80, 0xC9, 0x84, 0xCE,\n\t// Bytes 4800 - 483f\n\t0xB1, 0xCC, 0x81, 0xC9, 0x84, 0xCE, 0xB1, 0xCC,\n\t0x93, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, 0x94, 0xC9,\n\t0x84, 0xCE, 0xB1, 0xCD, 0x82, 0xC9, 0x84, 0xCE,\n\t0xB5, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB5, 0xCC,\n\t0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, 0x80, 0xC9,\n\t0x84, 0xCE, 0xB7, 0xCC, 0x81, 0xC9, 0x84, 0xCE,\n\t0xB7, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB7, 0xCC,\n\t0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCD, 0x82, 0xC9,\n\t// Bytes 4840 - 487f\n\t0x84, 0xCE, 0xB9, 0xCC, 0x88, 0xC9, 0x84, 0xCE,\n\t0xB9, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB9, 0xCC,\n\t0x94, 0xC9, 0x84, 0xCE, 0xBF, 0xCC, 0x93, 0xC9,\n\t0x84, 0xCE, 0xBF, 0xCC, 0x94, 0xC9, 0x84, 0xCF,\n\t0x85, 0xCC, 0x88, 0xC9, 0x84, 0xCF, 0x85, 0xCC,\n\t0x93, 0xC9, 0x84, 0xCF, 0x85, 0xCC, 0x94, 0xC9,\n\t0x84, 0xCF, 0x89, 0xCC, 0x80, 0xC9, 0x84, 0xCF,\n\t0x89, 0xCC, 0x81, 0xC9, 0x84, 0xCF, 0x89, 0xCC,\n\t// Bytes 4880 - 48bf\n\t0x93, 0xC9, 0x84, 0xCF, 0x89, 0xCC, 0x94, 0xC9,\n\t0x84, 0xCF, 0x89, 0xCD, 0x82, 0xC9, 0x86, 0xCE,\n\t0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t// Bytes 48c0 - 48ff\n\t0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t// Bytes 4900 - 493f\n\t0xA9, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t// Bytes 4940 - 497f\n\t0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCF,\n\t// Bytes 4980 - 49bf\n\t0x89, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x42, 0xCC,\n\t0x80, 0xC9, 0x32, 0x42, 0xCC, 0x81, 0xC9, 0x32,\n\t0x42, 0xCC, 0x93, 0xC9, 0x32, 0x43, 0xE1, 0x85,\n\t// Bytes 49c0 - 49ff\n\t0xA1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA2, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xA3, 0x01, 0x00, 0x43,\n\t0xE1, 0x85, 0xA4, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xA5, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA6, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xA7, 0x01, 0x00, 0x43,\n\t0xE1, 0x85, 0xA8, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xA9, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAA, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xAB, 0x01, 0x00, 0x43,\n\t// Bytes 4a00 - 4a3f\n\t0xE1, 0x85, 0xAC, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xAD, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAE, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xAF, 0x01, 0x00, 0x43,\n\t0xE1, 0x85, 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xB1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB2, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xB3, 0x01, 0x00, 0x43,\n\t0xE1, 0x85, 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xB5, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAA, 0x01,\n\t// Bytes 4a40 - 4a7f\n\t0x00, 0x43, 0xE1, 0x86, 0xAC, 0x01, 0x00, 0x43,\n\t0xE1, 0x86, 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x86,\n\t0xB0, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB1, 0x01,\n\t0x00, 0x43, 0xE1, 0x86, 0xB2, 0x01, 0x00, 0x43,\n\t0xE1, 0x86, 0xB3, 0x01, 0x00, 0x43, 0xE1, 0x86,\n\t0xB4, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB5, 0x01,\n\t0x00, 0x44, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x32,\n\t0x43, 0xE3, 0x82, 0x99, 0x0D, 0x03, 0x43, 0xE3,\n\t// Bytes 4a80 - 4abf\n\t0x82, 0x9A, 0x0D, 0x03, 0x46, 0xE0, 0xBD, 0xB1,\n\t0xE0, 0xBD, 0xB2, 0x9E, 0x26, 0x46, 0xE0, 0xBD,\n\t0xB1, 0xE0, 0xBD, 0xB4, 0xA2, 0x26, 0x46, 0xE0,\n\t0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x26, 0x00,\n\t0x01,\n}\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfcTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfcTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfcValues[c0]\n\t}\n\ti := nfcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfcTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfcTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfcValues[c0]\n\t}\n\ti := nfcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// nfcTrie. Total size: 10586 bytes (10.34 KiB). Checksum: dd926e82067bee11.\ntype nfcTrie struct{}\n\nfunc newNfcTrie(i int) *nfcTrie {\n\treturn &nfcTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *nfcTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 46:\n\t\treturn uint16(nfcValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 46\n\t\treturn uint16(nfcSparse.lookup(n, b))\n\t}\n}\n\n// nfcValues: 48 blocks, 3072 entries, 6144 bytes\n// The third block is the zero block.\nvar nfcValues = [3072]uint16{\n\t// Block 0x0, offset 0x0\n\t0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000,\n\t// Block 0x1, offset 0x40\n\t0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000,\n\t0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000,\n\t0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000,\n\t0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000,\n\t0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000,\n\t0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000,\n\t0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000,\n\t0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000,\n\t0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000,\n\t0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c,\n\t0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb,\n\t0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104,\n\t0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd,\n\t0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235,\n\t0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285,\n\t0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3,\n\t0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750,\n\t0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f,\n\t0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3,\n\t0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569,\n\t// Block 0x4, offset 0x100\n\t0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8,\n\t0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6,\n\t0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5,\n\t0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302,\n\t0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339,\n\t0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352,\n\t0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e,\n\t0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6,\n\t0x130: 0x308c, 0x134: 0x30b4, 0x135: 0x33c0,\n\t0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc,\n\t0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8,\n\t// Block 0x5, offset 0x140\n\t0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118,\n\t0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f,\n\t0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c,\n\t0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483,\n\t0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d,\n\t0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba,\n\t0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796,\n\t0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2,\n\t0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528,\n\t0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267,\n\t0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0xa000,\n\t// Block 0x6, offset 0x180\n\t0x184: 0x8100, 0x185: 0x8100,\n\t0x186: 0x8100,\n\t0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140,\n\t0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8,\n\t0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50,\n\t0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5,\n\t0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf,\n\t0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd,\n\t0x1b0: 0x33c5, 0x1b4: 0x3028, 0x1b5: 0x3334,\n\t0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46,\n\t0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316,\n\t0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac,\n\t0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479,\n\t0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6,\n\t0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5,\n\t0x1de: 0x305a, 0x1df: 0x3366,\n\t0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b,\n\t0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769,\n\t0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132,\n\t0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932,\n\t0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932,\n\t0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d,\n\t0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d,\n\t0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d,\n\t0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d,\n\t0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d,\n\t0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101,\n\t0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d,\n\t0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936,\n\t0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132,\n\t0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132,\n\t0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132,\n\t0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135,\n\t0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132,\n\t0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132,\n\t0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132,\n\t0x274: 0x0170,\n\t0x27a: 0x8100,\n\t0x27e: 0x0037,\n\t// Block 0xa, offset 0x280\n\t0x284: 0x8100, 0x285: 0x35a1,\n\t0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625,\n\t0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000,\n\t0x295: 0xa000, 0x297: 0xa000,\n\t0x299: 0xa000,\n\t0x29f: 0xa000, 0x2a1: 0xa000,\n\t0x2a5: 0xa000, 0x2a9: 0xa000,\n\t0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9,\n\t0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000,\n\t0x2b7: 0xa000, 0x2b9: 0xa000,\n\t0x2bf: 0xa000,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x3721, 0x2c1: 0x372d, 0x2c3: 0x371b,\n\t0x2c6: 0xa000, 0x2c7: 0x3709,\n\t0x2cc: 0x375d, 0x2cd: 0x3745, 0x2ce: 0x376f, 0x2d0: 0xa000,\n\t0x2d3: 0xa000, 0x2d5: 0xa000, 0x2d6: 0xa000, 0x2d7: 0xa000,\n\t0x2d8: 0xa000, 0x2d9: 0x3751, 0x2da: 0xa000,\n\t0x2de: 0xa000, 0x2e3: 0xa000,\n\t0x2e7: 0xa000,\n\t0x2eb: 0xa000, 0x2ed: 0xa000,\n\t0x2f0: 0xa000, 0x2f3: 0xa000, 0x2f5: 0xa000,\n\t0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x37d5, 0x2fa: 0xa000,\n\t0x2fe: 0xa000,\n\t// Block 0xc, offset 0x300\n\t0x301: 0x3733, 0x302: 0x37b7,\n\t0x310: 0x370f, 0x311: 0x3793,\n\t0x312: 0x3715, 0x313: 0x3799, 0x316: 0x3727, 0x317: 0x37ab,\n\t0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x3829, 0x31b: 0x382f, 0x31c: 0x3739, 0x31d: 0x37bd,\n\t0x31e: 0x373f, 0x31f: 0x37c3, 0x322: 0x374b, 0x323: 0x37cf,\n\t0x324: 0x3757, 0x325: 0x37db, 0x326: 0x3763, 0x327: 0x37e7, 0x328: 0xa000, 0x329: 0xa000,\n\t0x32a: 0x3835, 0x32b: 0x383b, 0x32c: 0x378d, 0x32d: 0x3811, 0x32e: 0x3769, 0x32f: 0x37ed,\n\t0x330: 0x3775, 0x331: 0x37f9, 0x332: 0x377b, 0x333: 0x37ff, 0x334: 0x3781, 0x335: 0x3805,\n\t0x338: 0x3787, 0x339: 0x380b,\n\t// Block 0xd, offset 0x340\n\t0x351: 0x812d,\n\t0x352: 0x8132, 0x353: 0x8132, 0x354: 0x8132, 0x355: 0x8132, 0x356: 0x812d, 0x357: 0x8132,\n\t0x358: 0x8132, 0x359: 0x8132, 0x35a: 0x812e, 0x35b: 0x812d, 0x35c: 0x8132, 0x35d: 0x8132,\n\t0x35e: 0x8132, 0x35f: 0x8132, 0x360: 0x8132, 0x361: 0x8132, 0x362: 0x812d, 0x363: 0x812d,\n\t0x364: 0x812d, 0x365: 0x812d, 0x366: 0x812d, 0x367: 0x812d, 0x368: 0x8132, 0x369: 0x8132,\n\t0x36a: 0x812d, 0x36b: 0x8132, 0x36c: 0x8132, 0x36d: 0x812e, 0x36e: 0x8131, 0x36f: 0x8132,\n\t0x370: 0x8105, 0x371: 0x8106, 0x372: 0x8107, 0x373: 0x8108, 0x374: 0x8109, 0x375: 0x810a,\n\t0x376: 0x810b, 0x377: 0x810c, 0x378: 0x810d, 0x379: 0x810e, 0x37a: 0x810e, 0x37b: 0x810f,\n\t0x37c: 0x8110, 0x37d: 0x8111, 0x37f: 0x8112,\n\t// Block 0xe, offset 0x380\n\t0x388: 0xa000, 0x38a: 0xa000, 0x38b: 0x8116,\n\t0x38c: 0x8117, 0x38d: 0x8118, 0x38e: 0x8119, 0x38f: 0x811a, 0x390: 0x811b, 0x391: 0x811c,\n\t0x392: 0x811d, 0x393: 0x9932, 0x394: 0x9932, 0x395: 0x992d, 0x396: 0x812d, 0x397: 0x8132,\n\t0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x8132, 0x39b: 0x8132, 0x39c: 0x812d, 0x39d: 0x8132,\n\t0x39e: 0x8132, 0x39f: 0x812d,\n\t0x3b0: 0x811e,\n\t// Block 0xf, offset 0x3c0\n\t0x3d3: 0x812d, 0x3d4: 0x8132, 0x3d5: 0x8132, 0x3d6: 0x8132, 0x3d7: 0x8132,\n\t0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x8132, 0x3dd: 0x8132,\n\t0x3de: 0x8132, 0x3df: 0x8132, 0x3e0: 0x8132, 0x3e1: 0x8132, 0x3e3: 0x812d,\n\t0x3e4: 0x8132, 0x3e5: 0x8132, 0x3e6: 0x812d, 0x3e7: 0x8132, 0x3e8: 0x8132, 0x3e9: 0x812d,\n\t0x3ea: 0x8132, 0x3eb: 0x8132, 0x3ec: 0x8132, 0x3ed: 0x812d, 0x3ee: 0x812d, 0x3ef: 0x812d,\n\t0x3f0: 0x8116, 0x3f1: 0x8117, 0x3f2: 0x8118, 0x3f3: 0x8132, 0x3f4: 0x8132, 0x3f5: 0x8132,\n\t0x3f6: 0x812d, 0x3f7: 0x8132, 0x3f8: 0x8132, 0x3f9: 0x812d, 0x3fa: 0x812d, 0x3fb: 0x8132,\n\t0x3fc: 0x8132, 0x3fd: 0x8132, 0x3fe: 0x8132, 0x3ff: 0x8132,\n\t// Block 0x10, offset 0x400\n\t0x405: 0xa000,\n\t0x406: 0x2d26, 0x407: 0xa000, 0x408: 0x2d2e, 0x409: 0xa000, 0x40a: 0x2d36, 0x40b: 0xa000,\n\t0x40c: 0x2d3e, 0x40d: 0xa000, 0x40e: 0x2d46, 0x411: 0xa000,\n\t0x412: 0x2d4e,\n\t0x434: 0x8102, 0x435: 0x9900,\n\t0x43a: 0xa000, 0x43b: 0x2d56,\n\t0x43c: 0xa000, 0x43d: 0x2d5e, 0x43e: 0xa000, 0x43f: 0xa000,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x8132, 0x441: 0x8132, 0x442: 0x812d, 0x443: 0x8132, 0x444: 0x8132, 0x445: 0x8132,\n\t0x446: 0x8132, 0x447: 0x8132, 0x448: 0x8132, 0x449: 0x8132, 0x44a: 0x812d, 0x44b: 0x8132,\n\t0x44c: 0x8132, 0x44d: 0x8135, 0x44e: 0x812a, 0x44f: 0x812d, 0x450: 0x8129, 0x451: 0x8132,\n\t0x452: 0x8132, 0x453: 0x8132, 0x454: 0x8132, 0x455: 0x8132, 0x456: 0x8132, 0x457: 0x8132,\n\t0x458: 0x8132, 0x459: 0x8132, 0x45a: 0x8132, 0x45b: 0x8132, 0x45c: 0x8132, 0x45d: 0x8132,\n\t0x45e: 0x8132, 0x45f: 0x8132, 0x460: 0x8132, 0x461: 0x8132, 0x462: 0x8132, 0x463: 0x8132,\n\t0x464: 0x8132, 0x465: 0x8132, 0x466: 0x8132, 0x467: 0x8132, 0x468: 0x8132, 0x469: 0x8132,\n\t0x46a: 0x8132, 0x46b: 0x8132, 0x46c: 0x8132, 0x46d: 0x8132, 0x46e: 0x8132, 0x46f: 0x8132,\n\t0x470: 0x8132, 0x471: 0x8132, 0x472: 0x8132, 0x473: 0x8132, 0x474: 0x8132, 0x475: 0x8132,\n\t0x476: 0x8133, 0x477: 0x8131, 0x478: 0x8131, 0x479: 0x812d, 0x47b: 0x8132,\n\t0x47c: 0x8134, 0x47d: 0x812d, 0x47e: 0x8132, 0x47f: 0x812d,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x2f97, 0x481: 0x32a3, 0x482: 0x2fa1, 0x483: 0x32ad, 0x484: 0x2fa6, 0x485: 0x32b2,\n\t0x486: 0x2fab, 0x487: 0x32b7, 0x488: 0x38cc, 0x489: 0x3a5b, 0x48a: 0x2fc4, 0x48b: 0x32d0,\n\t0x48c: 0x2fce, 0x48d: 0x32da, 0x48e: 0x2fdd, 0x48f: 0x32e9, 0x490: 0x2fd3, 0x491: 0x32df,\n\t0x492: 0x2fd8, 0x493: 0x32e4, 0x494: 0x38ef, 0x495: 0x3a7e, 0x496: 0x38f6, 0x497: 0x3a85,\n\t0x498: 0x3019, 0x499: 0x3325, 0x49a: 0x301e, 0x49b: 0x332a, 0x49c: 0x3904, 0x49d: 0x3a93,\n\t0x49e: 0x3023, 0x49f: 0x332f, 0x4a0: 0x3032, 0x4a1: 0x333e, 0x4a2: 0x3050, 0x4a3: 0x335c,\n\t0x4a4: 0x305f, 0x4a5: 0x336b, 0x4a6: 0x3055, 0x4a7: 0x3361, 0x4a8: 0x3064, 0x4a9: 0x3370,\n\t0x4aa: 0x3069, 0x4ab: 0x3375, 0x4ac: 0x30af, 0x4ad: 0x33bb, 0x4ae: 0x390b, 0x4af: 0x3a9a,\n\t0x4b0: 0x30b9, 0x4b1: 0x33ca, 0x4b2: 0x30c3, 0x4b3: 0x33d4, 0x4b4: 0x30cd, 0x4b5: 0x33de,\n\t0x4b6: 0x46c4, 0x4b7: 0x4755, 0x4b8: 0x3912, 0x4b9: 0x3aa1, 0x4ba: 0x30e6, 0x4bb: 0x33f7,\n\t0x4bc: 0x30e1, 0x4bd: 0x33f2, 0x4be: 0x30eb, 0x4bf: 0x33fc,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x30f0, 0x4c1: 0x3401, 0x4c2: 0x30f5, 0x4c3: 0x3406, 0x4c4: 0x3109, 0x4c5: 0x341a,\n\t0x4c6: 0x3113, 0x4c7: 0x3424, 0x4c8: 0x3122, 0x4c9: 0x3433, 0x4ca: 0x311d, 0x4cb: 0x342e,\n\t0x4cc: 0x3935, 0x4cd: 0x3ac4, 0x4ce: 0x3943, 0x4cf: 0x3ad2, 0x4d0: 0x394a, 0x4d1: 0x3ad9,\n\t0x4d2: 0x3951, 0x4d3: 0x3ae0, 0x4d4: 0x314f, 0x4d5: 0x3460, 0x4d6: 0x3154, 0x4d7: 0x3465,\n\t0x4d8: 0x315e, 0x4d9: 0x346f, 0x4da: 0x46f1, 0x4db: 0x4782, 0x4dc: 0x3997, 0x4dd: 0x3b26,\n\t0x4de: 0x3177, 0x4df: 0x3488, 0x4e0: 0x3181, 0x4e1: 0x3492, 0x4e2: 0x4700, 0x4e3: 0x4791,\n\t0x4e4: 0x399e, 0x4e5: 0x3b2d, 0x4e6: 0x39a5, 0x4e7: 0x3b34, 0x4e8: 0x39ac, 0x4e9: 0x3b3b,\n\t0x4ea: 0x3190, 0x4eb: 0x34a1, 0x4ec: 0x319a, 0x4ed: 0x34b0, 0x4ee: 0x31ae, 0x4ef: 0x34c4,\n\t0x4f0: 0x31a9, 0x4f1: 0x34bf, 0x4f2: 0x31ea, 0x4f3: 0x3500, 0x4f4: 0x31f9, 0x4f5: 0x350f,\n\t0x4f6: 0x31f4, 0x4f7: 0x350a, 0x4f8: 0x39b3, 0x4f9: 0x3b42, 0x4fa: 0x39ba, 0x4fb: 0x3b49,\n\t0x4fc: 0x31fe, 0x4fd: 0x3514, 0x4fe: 0x3203, 0x4ff: 0x3519,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x3208, 0x501: 0x351e, 0x502: 0x320d, 0x503: 0x3523, 0x504: 0x321c, 0x505: 0x3532,\n\t0x506: 0x3217, 0x507: 0x352d, 0x508: 0x3221, 0x509: 0x353c, 0x50a: 0x3226, 0x50b: 0x3541,\n\t0x50c: 0x322b, 0x50d: 0x3546, 0x50e: 0x3249, 0x50f: 0x3564, 0x510: 0x3262, 0x511: 0x3582,\n\t0x512: 0x3271, 0x513: 0x3591, 0x514: 0x3276, 0x515: 0x3596, 0x516: 0x337a, 0x517: 0x34a6,\n\t0x518: 0x3537, 0x519: 0x3573, 0x51b: 0x35d1,\n\t0x520: 0x46a1, 0x521: 0x4732, 0x522: 0x2f83, 0x523: 0x328f,\n\t0x524: 0x3878, 0x525: 0x3a07, 0x526: 0x3871, 0x527: 0x3a00, 0x528: 0x3886, 0x529: 0x3a15,\n\t0x52a: 0x387f, 0x52b: 0x3a0e, 0x52c: 0x38be, 0x52d: 0x3a4d, 0x52e: 0x3894, 0x52f: 0x3a23,\n\t0x530: 0x388d, 0x531: 0x3a1c, 0x532: 0x38a2, 0x533: 0x3a31, 0x534: 0x389b, 0x535: 0x3a2a,\n\t0x536: 0x38c5, 0x537: 0x3a54, 0x538: 0x46b5, 0x539: 0x4746, 0x53a: 0x3000, 0x53b: 0x330c,\n\t0x53c: 0x2fec, 0x53d: 0x32f8, 0x53e: 0x38da, 0x53f: 0x3a69,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x38d3, 0x541: 0x3a62, 0x542: 0x38e8, 0x543: 0x3a77, 0x544: 0x38e1, 0x545: 0x3a70,\n\t0x546: 0x38fd, 0x547: 0x3a8c, 0x548: 0x3091, 0x549: 0x339d, 0x54a: 0x30a5, 0x54b: 0x33b1,\n\t0x54c: 0x46e7, 0x54d: 0x4778, 0x54e: 0x3136, 0x54f: 0x3447, 0x550: 0x3920, 0x551: 0x3aaf,\n\t0x552: 0x3919, 0x553: 0x3aa8, 0x554: 0x392e, 0x555: 0x3abd, 0x556: 0x3927, 0x557: 0x3ab6,\n\t0x558: 0x3989, 0x559: 0x3b18, 0x55a: 0x396d, 0x55b: 0x3afc, 0x55c: 0x3966, 0x55d: 0x3af5,\n\t0x55e: 0x397b, 0x55f: 0x3b0a, 0x560: 0x3974, 0x561: 0x3b03, 0x562: 0x3982, 0x563: 0x3b11,\n\t0x564: 0x31e5, 0x565: 0x34fb, 0x566: 0x31c7, 0x567: 0x34dd, 0x568: 0x39e4, 0x569: 0x3b73,\n\t0x56a: 0x39dd, 0x56b: 0x3b6c, 0x56c: 0x39f2, 0x56d: 0x3b81, 0x56e: 0x39eb, 0x56f: 0x3b7a,\n\t0x570: 0x39f9, 0x571: 0x3b88, 0x572: 0x3230, 0x573: 0x354b, 0x574: 0x3258, 0x575: 0x3578,\n\t0x576: 0x3253, 0x577: 0x356e, 0x578: 0x323f, 0x579: 0x355a,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x4804, 0x581: 0x480a, 0x582: 0x491e, 0x583: 0x4936, 0x584: 0x4926, 0x585: 0x493e,\n\t0x586: 0x492e, 0x587: 0x4946, 0x588: 0x47aa, 0x589: 0x47b0, 0x58a: 0x488e, 0x58b: 0x48a6,\n\t0x58c: 0x4896, 0x58d: 0x48ae, 0x58e: 0x489e, 0x58f: 0x48b6, 0x590: 0x4816, 0x591: 0x481c,\n\t0x592: 0x3db8, 0x593: 0x3dc8, 0x594: 0x3dc0, 0x595: 0x3dd0,\n\t0x598: 0x47b6, 0x599: 0x47bc, 0x59a: 0x3ce8, 0x59b: 0x3cf8, 0x59c: 0x3cf0, 0x59d: 0x3d00,\n\t0x5a0: 0x482e, 0x5a1: 0x4834, 0x5a2: 0x494e, 0x5a3: 0x4966,\n\t0x5a4: 0x4956, 0x5a5: 0x496e, 0x5a6: 0x495e, 0x5a7: 0x4976, 0x5a8: 0x47c2, 0x5a9: 0x47c8,\n\t0x5aa: 0x48be, 0x5ab: 0x48d6, 0x5ac: 0x48c6, 0x5ad: 0x48de, 0x5ae: 0x48ce, 0x5af: 0x48e6,\n\t0x5b0: 0x4846, 0x5b1: 0x484c, 0x5b2: 0x3e18, 0x5b3: 0x3e30, 0x5b4: 0x3e20, 0x5b5: 0x3e38,\n\t0x5b6: 0x3e28, 0x5b7: 0x3e40, 0x5b8: 0x47ce, 0x5b9: 0x47d4, 0x5ba: 0x3d18, 0x5bb: 0x3d30,\n\t0x5bc: 0x3d20, 0x5bd: 0x3d38, 0x5be: 0x3d28, 0x5bf: 0x3d40,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x4852, 0x5c1: 0x4858, 0x5c2: 0x3e48, 0x5c3: 0x3e58, 0x5c4: 0x3e50, 0x5c5: 0x3e60,\n\t0x5c8: 0x47da, 0x5c9: 0x47e0, 0x5ca: 0x3d48, 0x5cb: 0x3d58,\n\t0x5cc: 0x3d50, 0x5cd: 0x3d60, 0x5d0: 0x4864, 0x5d1: 0x486a,\n\t0x5d2: 0x3e80, 0x5d3: 0x3e98, 0x5d4: 0x3e88, 0x5d5: 0x3ea0, 0x5d6: 0x3e90, 0x5d7: 0x3ea8,\n\t0x5d9: 0x47e6, 0x5db: 0x3d68, 0x5dd: 0x3d70,\n\t0x5df: 0x3d78, 0x5e0: 0x487c, 0x5e1: 0x4882, 0x5e2: 0x497e, 0x5e3: 0x4996,\n\t0x5e4: 0x4986, 0x5e5: 0x499e, 0x5e6: 0x498e, 0x5e7: 0x49a6, 0x5e8: 0x47ec, 0x5e9: 0x47f2,\n\t0x5ea: 0x48ee, 0x5eb: 0x4906, 0x5ec: 0x48f6, 0x5ed: 0x490e, 0x5ee: 0x48fe, 0x5ef: 0x4916,\n\t0x5f0: 0x47f8, 0x5f1: 0x431e, 0x5f2: 0x3691, 0x5f3: 0x4324, 0x5f4: 0x4822, 0x5f5: 0x432a,\n\t0x5f6: 0x36a3, 0x5f7: 0x4330, 0x5f8: 0x36c1, 0x5f9: 0x4336, 0x5fa: 0x36d9, 0x5fb: 0x433c,\n\t0x5fc: 0x4870, 0x5fd: 0x4342,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x3da0, 0x601: 0x3da8, 0x602: 0x4184, 0x603: 0x41a2, 0x604: 0x418e, 0x605: 0x41ac,\n\t0x606: 0x4198, 0x607: 0x41b6, 0x608: 0x3cd8, 0x609: 0x3ce0, 0x60a: 0x40d0, 0x60b: 0x40ee,\n\t0x60c: 0x40da, 0x60d: 0x40f8, 0x60e: 0x40e4, 0x60f: 0x4102, 0x610: 0x3de8, 0x611: 0x3df0,\n\t0x612: 0x41c0, 0x613: 0x41de, 0x614: 0x41ca, 0x615: 0x41e8, 0x616: 0x41d4, 0x617: 0x41f2,\n\t0x618: 0x3d08, 0x619: 0x3d10, 0x61a: 0x410c, 0x61b: 0x412a, 0x61c: 0x4116, 0x61d: 0x4134,\n\t0x61e: 0x4120, 0x61f: 0x413e, 0x620: 0x3ec0, 0x621: 0x3ec8, 0x622: 0x41fc, 0x623: 0x421a,\n\t0x624: 0x4206, 0x625: 0x4224, 0x626: 0x4210, 0x627: 0x422e, 0x628: 0x3d80, 0x629: 0x3d88,\n\t0x62a: 0x4148, 0x62b: 0x4166, 0x62c: 0x4152, 0x62d: 0x4170, 0x62e: 0x415c, 0x62f: 0x417a,\n\t0x630: 0x3685, 0x631: 0x367f, 0x632: 0x3d90, 0x633: 0x368b, 0x634: 0x3d98,\n\t0x636: 0x4810, 0x637: 0x3db0, 0x638: 0x35f5, 0x639: 0x35ef, 0x63a: 0x35e3, 0x63b: 0x42ee,\n\t0x63c: 0x35fb, 0x63d: 0x8100, 0x63e: 0x01d3, 0x63f: 0xa100,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x8100, 0x641: 0x35a7, 0x642: 0x3dd8, 0x643: 0x369d, 0x644: 0x3de0,\n\t0x646: 0x483a, 0x647: 0x3df8, 0x648: 0x3601, 0x649: 0x42f4, 0x64a: 0x360d, 0x64b: 0x42fa,\n\t0x64c: 0x3619, 0x64d: 0x3b8f, 0x64e: 0x3b96, 0x64f: 0x3b9d, 0x650: 0x36b5, 0x651: 0x36af,\n\t0x652: 0x3e00, 0x653: 0x44e4, 0x656: 0x36bb, 0x657: 0x3e10,\n\t0x658: 0x3631, 0x659: 0x362b, 0x65a: 0x361f, 0x65b: 0x4300, 0x65d: 0x3ba4,\n\t0x65e: 0x3bab, 0x65f: 0x3bb2, 0x660: 0x36eb, 0x661: 0x36e5, 0x662: 0x3e68, 0x663: 0x44ec,\n\t0x664: 0x36cd, 0x665: 0x36d3, 0x666: 0x36f1, 0x667: 0x3e78, 0x668: 0x3661, 0x669: 0x365b,\n\t0x66a: 0x364f, 0x66b: 0x430c, 0x66c: 0x3649, 0x66d: 0x359b, 0x66e: 0x42e8, 0x66f: 0x0081,\n\t0x672: 0x3eb0, 0x673: 0x36f7, 0x674: 0x3eb8,\n\t0x676: 0x4888, 0x677: 0x3ed0, 0x678: 0x363d, 0x679: 0x4306, 0x67a: 0x366d, 0x67b: 0x4318,\n\t0x67c: 0x3679, 0x67d: 0x4256, 0x67e: 0xa100,\n\t// Block 0x1a, offset 0x680\n\t0x681: 0x3c06, 0x683: 0xa000, 0x684: 0x3c0d, 0x685: 0xa000,\n\t0x687: 0x3c14, 0x688: 0xa000, 0x689: 0x3c1b,\n\t0x68d: 0xa000,\n\t0x6a0: 0x2f65, 0x6a1: 0xa000, 0x6a2: 0x3c29,\n\t0x6a4: 0xa000, 0x6a5: 0xa000,\n\t0x6ad: 0x3c22, 0x6ae: 0x2f60, 0x6af: 0x2f6a,\n\t0x6b0: 0x3c30, 0x6b1: 0x3c37, 0x6b2: 0xa000, 0x6b3: 0xa000, 0x6b4: 0x3c3e, 0x6b5: 0x3c45,\n\t0x6b6: 0xa000, 0x6b7: 0xa000, 0x6b8: 0x3c4c, 0x6b9: 0x3c53, 0x6ba: 0xa000, 0x6bb: 0xa000,\n\t0x6bc: 0xa000, 0x6bd: 0xa000,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x3c5a, 0x6c1: 0x3c61, 0x6c2: 0xa000, 0x6c3: 0xa000, 0x6c4: 0x3c76, 0x6c5: 0x3c7d,\n\t0x6c6: 0xa000, 0x6c7: 0xa000, 0x6c8: 0x3c84, 0x6c9: 0x3c8b,\n\t0x6d1: 0xa000,\n\t0x6d2: 0xa000,\n\t0x6e2: 0xa000,\n\t0x6e8: 0xa000, 0x6e9: 0xa000,\n\t0x6eb: 0xa000, 0x6ec: 0x3ca0, 0x6ed: 0x3ca7, 0x6ee: 0x3cae, 0x6ef: 0x3cb5,\n\t0x6f2: 0xa000, 0x6f3: 0xa000, 0x6f4: 0xa000, 0x6f5: 0xa000,\n\t// Block 0x1c, offset 0x700\n\t0x706: 0xa000, 0x70b: 0xa000,\n\t0x70c: 0x3f08, 0x70d: 0xa000, 0x70e: 0x3f10, 0x70f: 0xa000, 0x710: 0x3f18, 0x711: 0xa000,\n\t0x712: 0x3f20, 0x713: 0xa000, 0x714: 0x3f28, 0x715: 0xa000, 0x716: 0x3f30, 0x717: 0xa000,\n\t0x718: 0x3f38, 0x719: 0xa000, 0x71a: 0x3f40, 0x71b: 0xa000, 0x71c: 0x3f48, 0x71d: 0xa000,\n\t0x71e: 0x3f50, 0x71f: 0xa000, 0x720: 0x3f58, 0x721: 0xa000, 0x722: 0x3f60,\n\t0x724: 0xa000, 0x725: 0x3f68, 0x726: 0xa000, 0x727: 0x3f70, 0x728: 0xa000, 0x729: 0x3f78,\n\t0x72f: 0xa000,\n\t0x730: 0x3f80, 0x731: 0x3f88, 0x732: 0xa000, 0x733: 0x3f90, 0x734: 0x3f98, 0x735: 0xa000,\n\t0x736: 0x3fa0, 0x737: 0x3fa8, 0x738: 0xa000, 0x739: 0x3fb0, 0x73a: 0x3fb8, 0x73b: 0xa000,\n\t0x73c: 0x3fc0, 0x73d: 0x3fc8,\n\t// Block 0x1d, offset 0x740\n\t0x754: 0x3f00,\n\t0x759: 0x9903, 0x75a: 0x9903, 0x75b: 0x8100, 0x75c: 0x8100, 0x75d: 0xa000,\n\t0x75e: 0x3fd0,\n\t0x766: 0xa000,\n\t0x76b: 0xa000, 0x76c: 0x3fe0, 0x76d: 0xa000, 0x76e: 0x3fe8, 0x76f: 0xa000,\n\t0x770: 0x3ff0, 0x771: 0xa000, 0x772: 0x3ff8, 0x773: 0xa000, 0x774: 0x4000, 0x775: 0xa000,\n\t0x776: 0x4008, 0x777: 0xa000, 0x778: 0x4010, 0x779: 0xa000, 0x77a: 0x4018, 0x77b: 0xa000,\n\t0x77c: 0x4020, 0x77d: 0xa000, 0x77e: 0x4028, 0x77f: 0xa000,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0x4030, 0x781: 0xa000, 0x782: 0x4038, 0x784: 0xa000, 0x785: 0x4040,\n\t0x786: 0xa000, 0x787: 0x4048, 0x788: 0xa000, 0x789: 0x4050,\n\t0x78f: 0xa000, 0x790: 0x4058, 0x791: 0x4060,\n\t0x792: 0xa000, 0x793: 0x4068, 0x794: 0x4070, 0x795: 0xa000, 0x796: 0x4078, 0x797: 0x4080,\n\t0x798: 0xa000, 0x799: 0x4088, 0x79a: 0x4090, 0x79b: 0xa000, 0x79c: 0x4098, 0x79d: 0x40a0,\n\t0x7af: 0xa000,\n\t0x7b0: 0xa000, 0x7b1: 0xa000, 0x7b2: 0xa000, 0x7b4: 0x3fd8,\n\t0x7b7: 0x40a8, 0x7b8: 0x40b0, 0x7b9: 0x40b8, 0x7ba: 0x40c0,\n\t0x7bd: 0xa000, 0x7be: 0x40c8,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0x1377, 0x7c1: 0x0cfb, 0x7c2: 0x13d3, 0x7c3: 0x139f, 0x7c4: 0x0e57, 0x7c5: 0x06eb,\n\t0x7c6: 0x08df, 0x7c7: 0x162b, 0x7c8: 0x162b, 0x7c9: 0x0a0b, 0x7ca: 0x145f, 0x7cb: 0x0943,\n\t0x7cc: 0x0a07, 0x7cd: 0x0bef, 0x7ce: 0x0fcf, 0x7cf: 0x115f, 0x7d0: 0x1297, 0x7d1: 0x12d3,\n\t0x7d2: 0x1307, 0x7d3: 0x141b, 0x7d4: 0x0d73, 0x7d5: 0x0dff, 0x7d6: 0x0eab, 0x7d7: 0x0f43,\n\t0x7d8: 0x125f, 0x7d9: 0x1447, 0x7da: 0x1573, 0x7db: 0x070f, 0x7dc: 0x08b3, 0x7dd: 0x0d87,\n\t0x7de: 0x0ecf, 0x7df: 0x1293, 0x7e0: 0x15c3, 0x7e1: 0x0ab3, 0x7e2: 0x0e77, 0x7e3: 0x1283,\n\t0x7e4: 0x1317, 0x7e5: 0x0c23, 0x7e6: 0x11bb, 0x7e7: 0x12df, 0x7e8: 0x0b1f, 0x7e9: 0x0d0f,\n\t0x7ea: 0x0e17, 0x7eb: 0x0f1b, 0x7ec: 0x1427, 0x7ed: 0x074f, 0x7ee: 0x07e7, 0x7ef: 0x0853,\n\t0x7f0: 0x0c8b, 0x7f1: 0x0d7f, 0x7f2: 0x0ecb, 0x7f3: 0x0fef, 0x7f4: 0x1177, 0x7f5: 0x128b,\n\t0x7f6: 0x12a3, 0x7f7: 0x13c7, 0x7f8: 0x14ef, 0x7f9: 0x15a3, 0x7fa: 0x15bf, 0x7fb: 0x102b,\n\t0x7fc: 0x106b, 0x7fd: 0x1123, 0x7fe: 0x1243, 0x7ff: 0x147b,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x15cb, 0x801: 0x134b, 0x802: 0x09c7, 0x803: 0x0b3b, 0x804: 0x10db, 0x805: 0x119b,\n\t0x806: 0x0eff, 0x807: 0x1033, 0x808: 0x1397, 0x809: 0x14e7, 0x80a: 0x09c3, 0x80b: 0x0a8f,\n\t0x80c: 0x0d77, 0x80d: 0x0e2b, 0x80e: 0x0e5f, 0x80f: 0x1113, 0x810: 0x113b, 0x811: 0x14a7,\n\t0x812: 0x084f, 0x813: 0x11a7, 0x814: 0x07f3, 0x815: 0x07ef, 0x816: 0x1097, 0x817: 0x1127,\n\t0x818: 0x125b, 0x819: 0x14af, 0x81a: 0x1367, 0x81b: 0x0c27, 0x81c: 0x0d73, 0x81d: 0x1357,\n\t0x81e: 0x06f7, 0x81f: 0x0a63, 0x820: 0x0b93, 0x821: 0x0f2f, 0x822: 0x0faf, 0x823: 0x0873,\n\t0x824: 0x103b, 0x825: 0x075f, 0x826: 0x0b77, 0x827: 0x06d7, 0x828: 0x0deb, 0x829: 0x0ca3,\n\t0x82a: 0x110f, 0x82b: 0x08c7, 0x82c: 0x09b3, 0x82d: 0x0ffb, 0x82e: 0x1263, 0x82f: 0x133b,\n\t0x830: 0x0db7, 0x831: 0x13f7, 0x832: 0x0de3, 0x833: 0x0c37, 0x834: 0x121b, 0x835: 0x0c57,\n\t0x836: 0x0fab, 0x837: 0x072b, 0x838: 0x07a7, 0x839: 0x07eb, 0x83a: 0x0d53, 0x83b: 0x10fb,\n\t0x83c: 0x11f3, 0x83d: 0x1347, 0x83e: 0x145b, 0x83f: 0x085b,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x090f, 0x841: 0x0a17, 0x842: 0x0b2f, 0x843: 0x0cbf, 0x844: 0x0e7b, 0x845: 0x103f,\n\t0x846: 0x1497, 0x847: 0x157b, 0x848: 0x15cf, 0x849: 0x15e7, 0x84a: 0x0837, 0x84b: 0x0cf3,\n\t0x84c: 0x0da3, 0x84d: 0x13eb, 0x84e: 0x0afb, 0x84f: 0x0bd7, 0x850: 0x0bf3, 0x851: 0x0c83,\n\t0x852: 0x0e6b, 0x853: 0x0eb7, 0x854: 0x0f67, 0x855: 0x108b, 0x856: 0x112f, 0x857: 0x1193,\n\t0x858: 0x13db, 0x859: 0x126b, 0x85a: 0x1403, 0x85b: 0x147f, 0x85c: 0x080f, 0x85d: 0x083b,\n\t0x85e: 0x0923, 0x85f: 0x0ea7, 0x860: 0x12f3, 0x861: 0x133b, 0x862: 0x0b1b, 0x863: 0x0b8b,\n\t0x864: 0x0c4f, 0x865: 0x0daf, 0x866: 0x10d7, 0x867: 0x0f23, 0x868: 0x073b, 0x869: 0x097f,\n\t0x86a: 0x0a63, 0x86b: 0x0ac7, 0x86c: 0x0b97, 0x86d: 0x0f3f, 0x86e: 0x0f5b, 0x86f: 0x116b,\n\t0x870: 0x118b, 0x871: 0x1463, 0x872: 0x14e3, 0x873: 0x14f3, 0x874: 0x152f, 0x875: 0x0753,\n\t0x876: 0x107f, 0x877: 0x144f, 0x878: 0x14cb, 0x879: 0x0baf, 0x87a: 0x0717, 0x87b: 0x0777,\n\t0x87c: 0x0a67, 0x87d: 0x0a87, 0x87e: 0x0caf, 0x87f: 0x0d73,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x0ec3, 0x881: 0x0fcb, 0x882: 0x1277, 0x883: 0x1417, 0x884: 0x1623, 0x885: 0x0ce3,\n\t0x886: 0x14a3, 0x887: 0x0833, 0x888: 0x0d2f, 0x889: 0x0d3b, 0x88a: 0x0e0f, 0x88b: 0x0e47,\n\t0x88c: 0x0f4b, 0x88d: 0x0fa7, 0x88e: 0x1027, 0x88f: 0x110b, 0x890: 0x153b, 0x891: 0x07af,\n\t0x892: 0x0c03, 0x893: 0x14b3, 0x894: 0x0767, 0x895: 0x0aab, 0x896: 0x0e2f, 0x897: 0x13df,\n\t0x898: 0x0b67, 0x899: 0x0bb7, 0x89a: 0x0d43, 0x89b: 0x0f2f, 0x89c: 0x14bb, 0x89d: 0x0817,\n\t0x89e: 0x08ff, 0x89f: 0x0a97, 0x8a0: 0x0cd3, 0x8a1: 0x0d1f, 0x8a2: 0x0d5f, 0x8a3: 0x0df3,\n\t0x8a4: 0x0f47, 0x8a5: 0x0fbb, 0x8a6: 0x1157, 0x8a7: 0x12f7, 0x8a8: 0x1303, 0x8a9: 0x1457,\n\t0x8aa: 0x14d7, 0x8ab: 0x0883, 0x8ac: 0x0e4b, 0x8ad: 0x0903, 0x8ae: 0x0ec7, 0x8af: 0x0f6b,\n\t0x8b0: 0x1287, 0x8b1: 0x14bf, 0x8b2: 0x15ab, 0x8b3: 0x15d3, 0x8b4: 0x0d37, 0x8b5: 0x0e27,\n\t0x8b6: 0x11c3, 0x8b7: 0x10b7, 0x8b8: 0x10c3, 0x8b9: 0x10e7, 0x8ba: 0x0f17, 0x8bb: 0x0e9f,\n\t0x8bc: 0x1363, 0x8bd: 0x0733, 0x8be: 0x122b, 0x8bf: 0x081b,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x080b, 0x8c1: 0x0b0b, 0x8c2: 0x0c2b, 0x8c3: 0x10f3, 0x8c4: 0x0a53, 0x8c5: 0x0e03,\n\t0x8c6: 0x0cef, 0x8c7: 0x13e7, 0x8c8: 0x12e7, 0x8c9: 0x14ab, 0x8ca: 0x1323, 0x8cb: 0x0b27,\n\t0x8cc: 0x0787, 0x8cd: 0x095b, 0x8d0: 0x09af,\n\t0x8d2: 0x0cdf, 0x8d5: 0x07f7, 0x8d6: 0x0f1f, 0x8d7: 0x0fe3,\n\t0x8d8: 0x1047, 0x8d9: 0x1063, 0x8da: 0x1067, 0x8db: 0x107b, 0x8dc: 0x14fb, 0x8dd: 0x10eb,\n\t0x8de: 0x116f, 0x8e0: 0x128f, 0x8e2: 0x1353,\n\t0x8e5: 0x1407, 0x8e6: 0x1433,\n\t0x8ea: 0x154f, 0x8eb: 0x1553, 0x8ec: 0x1557, 0x8ed: 0x15bb, 0x8ee: 0x142b, 0x8ef: 0x14c7,\n\t0x8f0: 0x0757, 0x8f1: 0x077b, 0x8f2: 0x078f, 0x8f3: 0x084b, 0x8f4: 0x0857, 0x8f5: 0x0897,\n\t0x8f6: 0x094b, 0x8f7: 0x0967, 0x8f8: 0x096f, 0x8f9: 0x09ab, 0x8fa: 0x09b7, 0x8fb: 0x0a93,\n\t0x8fc: 0x0a9b, 0x8fd: 0x0ba3, 0x8fe: 0x0bcb, 0x8ff: 0x0bd3,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x0beb, 0x901: 0x0c97, 0x902: 0x0cc7, 0x903: 0x0ce7, 0x904: 0x0d57, 0x905: 0x0e1b,\n\t0x906: 0x0e37, 0x907: 0x0e67, 0x908: 0x0ebb, 0x909: 0x0edb, 0x90a: 0x0f4f, 0x90b: 0x102f,\n\t0x90c: 0x104b, 0x90d: 0x1053, 0x90e: 0x104f, 0x90f: 0x1057, 0x910: 0x105b, 0x911: 0x105f,\n\t0x912: 0x1073, 0x913: 0x1077, 0x914: 0x109b, 0x915: 0x10af, 0x916: 0x10cb, 0x917: 0x112f,\n\t0x918: 0x1137, 0x919: 0x113f, 0x91a: 0x1153, 0x91b: 0x117b, 0x91c: 0x11cb, 0x91d: 0x11ff,\n\t0x91e: 0x11ff, 0x91f: 0x1267, 0x920: 0x130f, 0x921: 0x1327, 0x922: 0x135b, 0x923: 0x135f,\n\t0x924: 0x13a3, 0x925: 0x13a7, 0x926: 0x13ff, 0x927: 0x1407, 0x928: 0x14db, 0x929: 0x151f,\n\t0x92a: 0x1537, 0x92b: 0x0b9b, 0x92c: 0x171e, 0x92d: 0x11e3,\n\t0x930: 0x06df, 0x931: 0x07e3, 0x932: 0x07a3, 0x933: 0x074b, 0x934: 0x078b, 0x935: 0x07b7,\n\t0x936: 0x0847, 0x937: 0x0863, 0x938: 0x094b, 0x939: 0x0937, 0x93a: 0x0947, 0x93b: 0x0963,\n\t0x93c: 0x09af, 0x93d: 0x09bf, 0x93e: 0x0a03, 0x93f: 0x0a0f,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x0a2b, 0x941: 0x0a3b, 0x942: 0x0b23, 0x943: 0x0b2b, 0x944: 0x0b5b, 0x945: 0x0b7b,\n\t0x946: 0x0bab, 0x947: 0x0bc3, 0x948: 0x0bb3, 0x949: 0x0bd3, 0x94a: 0x0bc7, 0x94b: 0x0beb,\n\t0x94c: 0x0c07, 0x94d: 0x0c5f, 0x94e: 0x0c6b, 0x94f: 0x0c73, 0x950: 0x0c9b, 0x951: 0x0cdf,\n\t0x952: 0x0d0f, 0x953: 0x0d13, 0x954: 0x0d27, 0x955: 0x0da7, 0x956: 0x0db7, 0x957: 0x0e0f,\n\t0x958: 0x0e5b, 0x959: 0x0e53, 0x95a: 0x0e67, 0x95b: 0x0e83, 0x95c: 0x0ebb, 0x95d: 0x1013,\n\t0x95e: 0x0edf, 0x95f: 0x0f13, 0x960: 0x0f1f, 0x961: 0x0f5f, 0x962: 0x0f7b, 0x963: 0x0f9f,\n\t0x964: 0x0fc3, 0x965: 0x0fc7, 0x966: 0x0fe3, 0x967: 0x0fe7, 0x968: 0x0ff7, 0x969: 0x100b,\n\t0x96a: 0x1007, 0x96b: 0x1037, 0x96c: 0x10b3, 0x96d: 0x10cb, 0x96e: 0x10e3, 0x96f: 0x111b,\n\t0x970: 0x112f, 0x971: 0x114b, 0x972: 0x117b, 0x973: 0x122f, 0x974: 0x1257, 0x975: 0x12cb,\n\t0x976: 0x1313, 0x977: 0x131f, 0x978: 0x1327, 0x979: 0x133f, 0x97a: 0x1353, 0x97b: 0x1343,\n\t0x97c: 0x135b, 0x97d: 0x1357, 0x97e: 0x134f, 0x97f: 0x135f,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x136b, 0x981: 0x13a7, 0x982: 0x13e3, 0x983: 0x1413, 0x984: 0x144b, 0x985: 0x146b,\n\t0x986: 0x14b7, 0x987: 0x14db, 0x988: 0x14fb, 0x989: 0x150f, 0x98a: 0x151f, 0x98b: 0x152b,\n\t0x98c: 0x1537, 0x98d: 0x158b, 0x98e: 0x162b, 0x98f: 0x16b5, 0x990: 0x16b0, 0x991: 0x16e2,\n\t0x992: 0x0607, 0x993: 0x062f, 0x994: 0x0633, 0x995: 0x1764, 0x996: 0x1791, 0x997: 0x1809,\n\t0x998: 0x1617, 0x999: 0x1627,\n\t// Block 0x27, offset 0x9c0\n\t0x9c0: 0x06fb, 0x9c1: 0x06f3, 0x9c2: 0x0703, 0x9c3: 0x1647, 0x9c4: 0x0747, 0x9c5: 0x0757,\n\t0x9c6: 0x075b, 0x9c7: 0x0763, 0x9c8: 0x076b, 0x9c9: 0x076f, 0x9ca: 0x077b, 0x9cb: 0x0773,\n\t0x9cc: 0x05b3, 0x9cd: 0x165b, 0x9ce: 0x078f, 0x9cf: 0x0793, 0x9d0: 0x0797, 0x9d1: 0x07b3,\n\t0x9d2: 0x164c, 0x9d3: 0x05b7, 0x9d4: 0x079f, 0x9d5: 0x07bf, 0x9d6: 0x1656, 0x9d7: 0x07cf,\n\t0x9d8: 0x07d7, 0x9d9: 0x0737, 0x9da: 0x07df, 0x9db: 0x07e3, 0x9dc: 0x1831, 0x9dd: 0x07ff,\n\t0x9de: 0x0807, 0x9df: 0x05bf, 0x9e0: 0x081f, 0x9e1: 0x0823, 0x9e2: 0x082b, 0x9e3: 0x082f,\n\t0x9e4: 0x05c3, 0x9e5: 0x0847, 0x9e6: 0x084b, 0x9e7: 0x0857, 0x9e8: 0x0863, 0x9e9: 0x0867,\n\t0x9ea: 0x086b, 0x9eb: 0x0873, 0x9ec: 0x0893, 0x9ed: 0x0897, 0x9ee: 0x089f, 0x9ef: 0x08af,\n\t0x9f0: 0x08b7, 0x9f1: 0x08bb, 0x9f2: 0x08bb, 0x9f3: 0x08bb, 0x9f4: 0x166a, 0x9f5: 0x0e93,\n\t0x9f6: 0x08cf, 0x9f7: 0x08d7, 0x9f8: 0x166f, 0x9f9: 0x08e3, 0x9fa: 0x08eb, 0x9fb: 0x08f3,\n\t0x9fc: 0x091b, 0x9fd: 0x0907, 0x9fe: 0x0913, 0x9ff: 0x0917,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x091f, 0xa01: 0x0927, 0xa02: 0x092b, 0xa03: 0x0933, 0xa04: 0x093b, 0xa05: 0x093f,\n\t0xa06: 0x093f, 0xa07: 0x0947, 0xa08: 0x094f, 0xa09: 0x0953, 0xa0a: 0x095f, 0xa0b: 0x0983,\n\t0xa0c: 0x0967, 0xa0d: 0x0987, 0xa0e: 0x096b, 0xa0f: 0x0973, 0xa10: 0x080b, 0xa11: 0x09cf,\n\t0xa12: 0x0997, 0xa13: 0x099b, 0xa14: 0x099f, 0xa15: 0x0993, 0xa16: 0x09a7, 0xa17: 0x09a3,\n\t0xa18: 0x09bb, 0xa19: 0x1674, 0xa1a: 0x09d7, 0xa1b: 0x09db, 0xa1c: 0x09e3, 0xa1d: 0x09ef,\n\t0xa1e: 0x09f7, 0xa1f: 0x0a13, 0xa20: 0x1679, 0xa21: 0x167e, 0xa22: 0x0a1f, 0xa23: 0x0a23,\n\t0xa24: 0x0a27, 0xa25: 0x0a1b, 0xa26: 0x0a2f, 0xa27: 0x05c7, 0xa28: 0x05cb, 0xa29: 0x0a37,\n\t0xa2a: 0x0a3f, 0xa2b: 0x0a3f, 0xa2c: 0x1683, 0xa2d: 0x0a5b, 0xa2e: 0x0a5f, 0xa2f: 0x0a63,\n\t0xa30: 0x0a6b, 0xa31: 0x1688, 0xa32: 0x0a73, 0xa33: 0x0a77, 0xa34: 0x0b4f, 0xa35: 0x0a7f,\n\t0xa36: 0x05cf, 0xa37: 0x0a8b, 0xa38: 0x0a9b, 0xa39: 0x0aa7, 0xa3a: 0x0aa3, 0xa3b: 0x1692,\n\t0xa3c: 0x0aaf, 0xa3d: 0x1697, 0xa3e: 0x0abb, 0xa3f: 0x0ab7,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0x0abf, 0xa41: 0x0acf, 0xa42: 0x0ad3, 0xa43: 0x05d3, 0xa44: 0x0ae3, 0xa45: 0x0aeb,\n\t0xa46: 0x0aef, 0xa47: 0x0af3, 0xa48: 0x05d7, 0xa49: 0x169c, 0xa4a: 0x05db, 0xa4b: 0x0b0f,\n\t0xa4c: 0x0b13, 0xa4d: 0x0b17, 0xa4e: 0x0b1f, 0xa4f: 0x1863, 0xa50: 0x0b37, 0xa51: 0x16a6,\n\t0xa52: 0x16a6, 0xa53: 0x11d7, 0xa54: 0x0b47, 0xa55: 0x0b47, 0xa56: 0x05df, 0xa57: 0x16c9,\n\t0xa58: 0x179b, 0xa59: 0x0b57, 0xa5a: 0x0b5f, 0xa5b: 0x05e3, 0xa5c: 0x0b73, 0xa5d: 0x0b83,\n\t0xa5e: 0x0b87, 0xa5f: 0x0b8f, 0xa60: 0x0b9f, 0xa61: 0x05eb, 0xa62: 0x05e7, 0xa63: 0x0ba3,\n\t0xa64: 0x16ab, 0xa65: 0x0ba7, 0xa66: 0x0bbb, 0xa67: 0x0bbf, 0xa68: 0x0bc3, 0xa69: 0x0bbf,\n\t0xa6a: 0x0bcf, 0xa6b: 0x0bd3, 0xa6c: 0x0be3, 0xa6d: 0x0bdb, 0xa6e: 0x0bdf, 0xa6f: 0x0be7,\n\t0xa70: 0x0beb, 0xa71: 0x0bef, 0xa72: 0x0bfb, 0xa73: 0x0bff, 0xa74: 0x0c17, 0xa75: 0x0c1f,\n\t0xa76: 0x0c2f, 0xa77: 0x0c43, 0xa78: 0x16ba, 0xa79: 0x0c3f, 0xa7a: 0x0c33, 0xa7b: 0x0c4b,\n\t0xa7c: 0x0c53, 0xa7d: 0x0c67, 0xa7e: 0x16bf, 0xa7f: 0x0c6f,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0x0c63, 0xa81: 0x0c5b, 0xa82: 0x05ef, 0xa83: 0x0c77, 0xa84: 0x0c7f, 0xa85: 0x0c87,\n\t0xa86: 0x0c7b, 0xa87: 0x05f3, 0xa88: 0x0c97, 0xa89: 0x0c9f, 0xa8a: 0x16c4, 0xa8b: 0x0ccb,\n\t0xa8c: 0x0cff, 0xa8d: 0x0cdb, 0xa8e: 0x05ff, 0xa8f: 0x0ce7, 0xa90: 0x05fb, 0xa91: 0x05f7,\n\t0xa92: 0x07c3, 0xa93: 0x07c7, 0xa94: 0x0d03, 0xa95: 0x0ceb, 0xa96: 0x11ab, 0xa97: 0x0663,\n\t0xa98: 0x0d0f, 0xa99: 0x0d13, 0xa9a: 0x0d17, 0xa9b: 0x0d2b, 0xa9c: 0x0d23, 0xa9d: 0x16dd,\n\t0xa9e: 0x0603, 0xa9f: 0x0d3f, 0xaa0: 0x0d33, 0xaa1: 0x0d4f, 0xaa2: 0x0d57, 0xaa3: 0x16e7,\n\t0xaa4: 0x0d5b, 0xaa5: 0x0d47, 0xaa6: 0x0d63, 0xaa7: 0x0607, 0xaa8: 0x0d67, 0xaa9: 0x0d6b,\n\t0xaaa: 0x0d6f, 0xaab: 0x0d7b, 0xaac: 0x16ec, 0xaad: 0x0d83, 0xaae: 0x060b, 0xaaf: 0x0d8f,\n\t0xab0: 0x16f1, 0xab1: 0x0d93, 0xab2: 0x060f, 0xab3: 0x0d9f, 0xab4: 0x0dab, 0xab5: 0x0db7,\n\t0xab6: 0x0dbb, 0xab7: 0x16f6, 0xab8: 0x168d, 0xab9: 0x16fb, 0xaba: 0x0ddb, 0xabb: 0x1700,\n\t0xabc: 0x0de7, 0xabd: 0x0def, 0xabe: 0x0ddf, 0xabf: 0x0dfb,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0x0e0b, 0xac1: 0x0e1b, 0xac2: 0x0e0f, 0xac3: 0x0e13, 0xac4: 0x0e1f, 0xac5: 0x0e23,\n\t0xac6: 0x1705, 0xac7: 0x0e07, 0xac8: 0x0e3b, 0xac9: 0x0e3f, 0xaca: 0x0613, 0xacb: 0x0e53,\n\t0xacc: 0x0e4f, 0xacd: 0x170a, 0xace: 0x0e33, 0xacf: 0x0e6f, 0xad0: 0x170f, 0xad1: 0x1714,\n\t0xad2: 0x0e73, 0xad3: 0x0e87, 0xad4: 0x0e83, 0xad5: 0x0e7f, 0xad6: 0x0617, 0xad7: 0x0e8b,\n\t0xad8: 0x0e9b, 0xad9: 0x0e97, 0xada: 0x0ea3, 0xadb: 0x1651, 0xadc: 0x0eb3, 0xadd: 0x1719,\n\t0xade: 0x0ebf, 0xadf: 0x1723, 0xae0: 0x0ed3, 0xae1: 0x0edf, 0xae2: 0x0ef3, 0xae3: 0x1728,\n\t0xae4: 0x0f07, 0xae5: 0x0f0b, 0xae6: 0x172d, 0xae7: 0x1732, 0xae8: 0x0f27, 0xae9: 0x0f37,\n\t0xaea: 0x061b, 0xaeb: 0x0f3b, 0xaec: 0x061f, 0xaed: 0x061f, 0xaee: 0x0f53, 0xaef: 0x0f57,\n\t0xaf0: 0x0f5f, 0xaf1: 0x0f63, 0xaf2: 0x0f6f, 0xaf3: 0x0623, 0xaf4: 0x0f87, 0xaf5: 0x1737,\n\t0xaf6: 0x0fa3, 0xaf7: 0x173c, 0xaf8: 0x0faf, 0xaf9: 0x16a1, 0xafa: 0x0fbf, 0xafb: 0x1741,\n\t0xafc: 0x1746, 0xafd: 0x174b, 0xafe: 0x0627, 0xaff: 0x062b,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0x0ff7, 0xb01: 0x1755, 0xb02: 0x1750, 0xb03: 0x175a, 0xb04: 0x175f, 0xb05: 0x0fff,\n\t0xb06: 0x1003, 0xb07: 0x1003, 0xb08: 0x100b, 0xb09: 0x0633, 0xb0a: 0x100f, 0xb0b: 0x0637,\n\t0xb0c: 0x063b, 0xb0d: 0x1769, 0xb0e: 0x1023, 0xb0f: 0x102b, 0xb10: 0x1037, 0xb11: 0x063f,\n\t0xb12: 0x176e, 0xb13: 0x105b, 0xb14: 0x1773, 0xb15: 0x1778, 0xb16: 0x107b, 0xb17: 0x1093,\n\t0xb18: 0x0643, 0xb19: 0x109b, 0xb1a: 0x109f, 0xb1b: 0x10a3, 0xb1c: 0x177d, 0xb1d: 0x1782,\n\t0xb1e: 0x1782, 0xb1f: 0x10bb, 0xb20: 0x0647, 0xb21: 0x1787, 0xb22: 0x10cf, 0xb23: 0x10d3,\n\t0xb24: 0x064b, 0xb25: 0x178c, 0xb26: 0x10ef, 0xb27: 0x064f, 0xb28: 0x10ff, 0xb29: 0x10f7,\n\t0xb2a: 0x1107, 0xb2b: 0x1796, 0xb2c: 0x111f, 0xb2d: 0x0653, 0xb2e: 0x112b, 0xb2f: 0x1133,\n\t0xb30: 0x1143, 0xb31: 0x0657, 0xb32: 0x17a0, 0xb33: 0x17a5, 0xb34: 0x065b, 0xb35: 0x17aa,\n\t0xb36: 0x115b, 0xb37: 0x17af, 0xb38: 0x1167, 0xb39: 0x1173, 0xb3a: 0x117b, 0xb3b: 0x17b4,\n\t0xb3c: 0x17b9, 0xb3d: 0x118f, 0xb3e: 0x17be, 0xb3f: 0x1197,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x16ce, 0xb41: 0x065f, 0xb42: 0x11af, 0xb43: 0x11b3, 0xb44: 0x0667, 0xb45: 0x11b7,\n\t0xb46: 0x0a33, 0xb47: 0x17c3, 0xb48: 0x17c8, 0xb49: 0x16d3, 0xb4a: 0x16d8, 0xb4b: 0x11d7,\n\t0xb4c: 0x11db, 0xb4d: 0x13f3, 0xb4e: 0x066b, 0xb4f: 0x1207, 0xb50: 0x1203, 0xb51: 0x120b,\n\t0xb52: 0x083f, 0xb53: 0x120f, 0xb54: 0x1213, 0xb55: 0x1217, 0xb56: 0x121f, 0xb57: 0x17cd,\n\t0xb58: 0x121b, 0xb59: 0x1223, 0xb5a: 0x1237, 0xb5b: 0x123b, 0xb5c: 0x1227, 0xb5d: 0x123f,\n\t0xb5e: 0x1253, 0xb5f: 0x1267, 0xb60: 0x1233, 0xb61: 0x1247, 0xb62: 0x124b, 0xb63: 0x124f,\n\t0xb64: 0x17d2, 0xb65: 0x17dc, 0xb66: 0x17d7, 0xb67: 0x066f, 0xb68: 0x126f, 0xb69: 0x1273,\n\t0xb6a: 0x127b, 0xb6b: 0x17f0, 0xb6c: 0x127f, 0xb6d: 0x17e1, 0xb6e: 0x0673, 0xb6f: 0x0677,\n\t0xb70: 0x17e6, 0xb71: 0x17eb, 0xb72: 0x067b, 0xb73: 0x129f, 0xb74: 0x12a3, 0xb75: 0x12a7,\n\t0xb76: 0x12ab, 0xb77: 0x12b7, 0xb78: 0x12b3, 0xb79: 0x12bf, 0xb7a: 0x12bb, 0xb7b: 0x12cb,\n\t0xb7c: 0x12c3, 0xb7d: 0x12c7, 0xb7e: 0x12cf, 0xb7f: 0x067f,\n\t// Block 0x2e, offset 0xb80\n\t0xb80: 0x12d7, 0xb81: 0x12db, 0xb82: 0x0683, 0xb83: 0x12eb, 0xb84: 0x12ef, 0xb85: 0x17f5,\n\t0xb86: 0x12fb, 0xb87: 0x12ff, 0xb88: 0x0687, 0xb89: 0x130b, 0xb8a: 0x05bb, 0xb8b: 0x17fa,\n\t0xb8c: 0x17ff, 0xb8d: 0x068b, 0xb8e: 0x068f, 0xb8f: 0x1337, 0xb90: 0x134f, 0xb91: 0x136b,\n\t0xb92: 0x137b, 0xb93: 0x1804, 0xb94: 0x138f, 0xb95: 0x1393, 0xb96: 0x13ab, 0xb97: 0x13b7,\n\t0xb98: 0x180e, 0xb99: 0x1660, 0xb9a: 0x13c3, 0xb9b: 0x13bf, 0xb9c: 0x13cb, 0xb9d: 0x1665,\n\t0xb9e: 0x13d7, 0xb9f: 0x13e3, 0xba0: 0x1813, 0xba1: 0x1818, 0xba2: 0x1423, 0xba3: 0x142f,\n\t0xba4: 0x1437, 0xba5: 0x181d, 0xba6: 0x143b, 0xba7: 0x1467, 0xba8: 0x1473, 0xba9: 0x1477,\n\t0xbaa: 0x146f, 0xbab: 0x1483, 0xbac: 0x1487, 0xbad: 0x1822, 0xbae: 0x1493, 0xbaf: 0x0693,\n\t0xbb0: 0x149b, 0xbb1: 0x1827, 0xbb2: 0x0697, 0xbb3: 0x14d3, 0xbb4: 0x0ac3, 0xbb5: 0x14eb,\n\t0xbb6: 0x182c, 0xbb7: 0x1836, 0xbb8: 0x069b, 0xbb9: 0x069f, 0xbba: 0x1513, 0xbbb: 0x183b,\n\t0xbbc: 0x06a3, 0xbbd: 0x1840, 0xbbe: 0x152b, 0xbbf: 0x152b,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc0: 0x1533, 0xbc1: 0x1845, 0xbc2: 0x154b, 0xbc3: 0x06a7, 0xbc4: 0x155b, 0xbc5: 0x1567,\n\t0xbc6: 0x156f, 0xbc7: 0x1577, 0xbc8: 0x06ab, 0xbc9: 0x184a, 0xbca: 0x158b, 0xbcb: 0x15a7,\n\t0xbcc: 0x15b3, 0xbcd: 0x06af, 0xbce: 0x06b3, 0xbcf: 0x15b7, 0xbd0: 0x184f, 0xbd1: 0x06b7,\n\t0xbd2: 0x1854, 0xbd3: 0x1859, 0xbd4: 0x185e, 0xbd5: 0x15db, 0xbd6: 0x06bb, 0xbd7: 0x15ef,\n\t0xbd8: 0x15f7, 0xbd9: 0x15fb, 0xbda: 0x1603, 0xbdb: 0x160b, 0xbdc: 0x1613, 0xbdd: 0x1868,\n}\n\n// nfcIndex: 22 blocks, 1408 entries, 1408 bytes\n// Block 0 is the zero block.\nvar nfcIndex = [1408]uint8{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x2e, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x2f, 0xc7: 0x04,\n\t0xc8: 0x05, 0xca: 0x30, 0xcb: 0x31, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x32,\n\t0xd0: 0x09, 0xd1: 0x33, 0xd2: 0x34, 0xd3: 0x0a, 0xd6: 0x0b, 0xd7: 0x35,\n\t0xd8: 0x36, 0xd9: 0x0c, 0xdb: 0x37, 0xdc: 0x38, 0xdd: 0x39, 0xdf: 0x3a,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,\n\t0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a,\n\t0xf0: 0x13,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x3b, 0x121: 0x3c, 0x123: 0x0d, 0x124: 0x3d, 0x125: 0x3e, 0x126: 0x3f, 0x127: 0x40,\n\t0x128: 0x41, 0x129: 0x42, 0x12a: 0x43, 0x12b: 0x44, 0x12c: 0x3f, 0x12d: 0x45, 0x12e: 0x46, 0x12f: 0x47,\n\t0x131: 0x48, 0x132: 0x49, 0x133: 0x4a, 0x134: 0x4b, 0x135: 0x4c, 0x137: 0x4d,\n\t0x138: 0x4e, 0x139: 0x4f, 0x13a: 0x50, 0x13b: 0x51, 0x13c: 0x52, 0x13d: 0x53, 0x13e: 0x54, 0x13f: 0x55,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x56, 0x142: 0x57, 0x144: 0x58, 0x145: 0x59, 0x146: 0x5a, 0x147: 0x5b,\n\t0x14d: 0x5c,\n\t0x15c: 0x5d, 0x15f: 0x5e,\n\t0x162: 0x5f, 0x164: 0x60,\n\t0x168: 0x61, 0x169: 0x62, 0x16a: 0x63, 0x16c: 0x0e, 0x16d: 0x64, 0x16e: 0x65, 0x16f: 0x66,\n\t0x170: 0x67, 0x173: 0x68, 0x177: 0x0f,\n\t0x178: 0x10, 0x179: 0x11, 0x17a: 0x12, 0x17b: 0x13, 0x17c: 0x14, 0x17d: 0x15, 0x17e: 0x16, 0x17f: 0x17,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x69, 0x183: 0x6a, 0x184: 0x6b, 0x186: 0x6c, 0x187: 0x6d,\n\t0x188: 0x6e, 0x189: 0x18, 0x18a: 0x19, 0x18b: 0x6f, 0x18c: 0x70,\n\t0x1ab: 0x71,\n\t0x1b3: 0x72, 0x1b5: 0x73, 0x1b7: 0x74,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x75, 0x1c1: 0x1a, 0x1c2: 0x1b, 0x1c3: 0x1c, 0x1c4: 0x76, 0x1c5: 0x77,\n\t0x1c9: 0x78, 0x1cc: 0x79, 0x1cd: 0x7a,\n\t// Block 0x8, offset 0x200\n\t0x219: 0x7b, 0x21a: 0x7c, 0x21b: 0x7d,\n\t0x220: 0x7e, 0x223: 0x7f, 0x224: 0x80, 0x225: 0x81, 0x226: 0x82, 0x227: 0x83,\n\t0x22a: 0x84, 0x22b: 0x85, 0x22f: 0x86,\n\t0x230: 0x87, 0x231: 0x88, 0x232: 0x89, 0x233: 0x8a, 0x234: 0x8b, 0x235: 0x8c, 0x236: 0x8d, 0x237: 0x87,\n\t0x238: 0x88, 0x239: 0x89, 0x23a: 0x8a, 0x23b: 0x8b, 0x23c: 0x8c, 0x23d: 0x8d, 0x23e: 0x87, 0x23f: 0x88,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x89, 0x241: 0x8a, 0x242: 0x8b, 0x243: 0x8c, 0x244: 0x8d, 0x245: 0x87, 0x246: 0x88, 0x247: 0x89,\n\t0x248: 0x8a, 0x249: 0x8b, 0x24a: 0x8c, 0x24b: 0x8d, 0x24c: 0x87, 0x24d: 0x88, 0x24e: 0x89, 0x24f: 0x8a,\n\t0x250: 0x8b, 0x251: 0x8c, 0x252: 0x8d, 0x253: 0x87, 0x254: 0x88, 0x255: 0x89, 0x256: 0x8a, 0x257: 0x8b,\n\t0x258: 0x8c, 0x259: 0x8d, 0x25a: 0x87, 0x25b: 0x88, 0x25c: 0x89, 0x25d: 0x8a, 0x25e: 0x8b, 0x25f: 0x8c,\n\t0x260: 0x8d, 0x261: 0x87, 0x262: 0x88, 0x263: 0x89, 0x264: 0x8a, 0x265: 0x8b, 0x266: 0x8c, 0x267: 0x8d,\n\t0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26c: 0x8b, 0x26d: 0x8c, 0x26e: 0x8d, 0x26f: 0x87,\n\t0x270: 0x88, 0x271: 0x89, 0x272: 0x8a, 0x273: 0x8b, 0x274: 0x8c, 0x275: 0x8d, 0x276: 0x87, 0x277: 0x88,\n\t0x278: 0x89, 0x279: 0x8a, 0x27a: 0x8b, 0x27b: 0x8c, 0x27c: 0x8d, 0x27d: 0x87, 0x27e: 0x88, 0x27f: 0x89,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x8a, 0x281: 0x8b, 0x282: 0x8c, 0x283: 0x8d, 0x284: 0x87, 0x285: 0x88, 0x286: 0x89, 0x287: 0x8a,\n\t0x288: 0x8b, 0x289: 0x8c, 0x28a: 0x8d, 0x28b: 0x87, 0x28c: 0x88, 0x28d: 0x89, 0x28e: 0x8a, 0x28f: 0x8b,\n\t0x290: 0x8c, 0x291: 0x8d, 0x292: 0x87, 0x293: 0x88, 0x294: 0x89, 0x295: 0x8a, 0x296: 0x8b, 0x297: 0x8c,\n\t0x298: 0x8d, 0x299: 0x87, 0x29a: 0x88, 0x29b: 0x89, 0x29c: 0x8a, 0x29d: 0x8b, 0x29e: 0x8c, 0x29f: 0x8d,\n\t0x2a0: 0x87, 0x2a1: 0x88, 0x2a2: 0x89, 0x2a3: 0x8a, 0x2a4: 0x8b, 0x2a5: 0x8c, 0x2a6: 0x8d, 0x2a7: 0x87,\n\t0x2a8: 0x88, 0x2a9: 0x89, 0x2aa: 0x8a, 0x2ab: 0x8b, 0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x87, 0x2af: 0x88,\n\t0x2b0: 0x89, 0x2b1: 0x8a, 0x2b2: 0x8b, 0x2b3: 0x8c, 0x2b4: 0x8d, 0x2b5: 0x87, 0x2b6: 0x88, 0x2b7: 0x89,\n\t0x2b8: 0x8a, 0x2b9: 0x8b, 0x2ba: 0x8c, 0x2bb: 0x8d, 0x2bc: 0x87, 0x2bd: 0x88, 0x2be: 0x89, 0x2bf: 0x8a,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x8b, 0x2c1: 0x8c, 0x2c2: 0x8d, 0x2c3: 0x87, 0x2c4: 0x88, 0x2c5: 0x89, 0x2c6: 0x8a, 0x2c7: 0x8b,\n\t0x2c8: 0x8c, 0x2c9: 0x8d, 0x2ca: 0x87, 0x2cb: 0x88, 0x2cc: 0x89, 0x2cd: 0x8a, 0x2ce: 0x8b, 0x2cf: 0x8c,\n\t0x2d0: 0x8d, 0x2d1: 0x87, 0x2d2: 0x88, 0x2d3: 0x89, 0x2d4: 0x8a, 0x2d5: 0x8b, 0x2d6: 0x8c, 0x2d7: 0x8d,\n\t0x2d8: 0x87, 0x2d9: 0x88, 0x2da: 0x89, 0x2db: 0x8a, 0x2dc: 0x8b, 0x2dd: 0x8c, 0x2de: 0x8e,\n\t// Block 0xc, offset 0x300\n\t0x324: 0x1d, 0x325: 0x1e, 0x326: 0x1f, 0x327: 0x20,\n\t0x328: 0x21, 0x329: 0x22, 0x32a: 0x23, 0x32b: 0x24, 0x32c: 0x8f, 0x32d: 0x90, 0x32e: 0x91,\n\t0x331: 0x92, 0x332: 0x93, 0x333: 0x94, 0x334: 0x95,\n\t0x338: 0x96, 0x339: 0x97, 0x33a: 0x98, 0x33b: 0x99, 0x33e: 0x9a, 0x33f: 0x9b,\n\t// Block 0xd, offset 0x340\n\t0x347: 0x9c,\n\t0x34b: 0x9d, 0x34d: 0x9e,\n\t0x368: 0x9f, 0x36b: 0xa0,\n\t0x374: 0xa1,\n\t0x37d: 0xa2,\n\t// Block 0xe, offset 0x380\n\t0x381: 0xa3, 0x382: 0xa4, 0x384: 0xa5, 0x385: 0x82, 0x387: 0xa6,\n\t0x388: 0xa7, 0x38b: 0xa8, 0x38c: 0xa9, 0x38d: 0xaa,\n\t0x391: 0xab, 0x392: 0xac, 0x393: 0xad, 0x396: 0xae, 0x397: 0xaf,\n\t0x398: 0x73, 0x39a: 0xb0, 0x39c: 0xb1,\n\t0x3a0: 0xb2,\n\t0x3a8: 0xb3, 0x3a9: 0xb4, 0x3aa: 0xb5,\n\t0x3b0: 0x73, 0x3b5: 0xb6, 0x3b6: 0xb7,\n\t// Block 0xf, offset 0x3c0\n\t0x3eb: 0xb8, 0x3ec: 0xb9,\n\t// Block 0x10, offset 0x400\n\t0x432: 0xba,\n\t// Block 0x11, offset 0x440\n\t0x445: 0xbb, 0x446: 0xbc, 0x447: 0xbd,\n\t0x449: 0xbe,\n\t// Block 0x12, offset 0x480\n\t0x480: 0xbf,\n\t0x4a3: 0xc0, 0x4a5: 0xc1,\n\t// Block 0x13, offset 0x4c0\n\t0x4c8: 0xc2,\n\t// Block 0x14, offset 0x500\n\t0x520: 0x25, 0x521: 0x26, 0x522: 0x27, 0x523: 0x28, 0x524: 0x29, 0x525: 0x2a, 0x526: 0x2b, 0x527: 0x2c,\n\t0x528: 0x2d,\n\t// Block 0x15, offset 0x540\n\t0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,\n\t0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,\n\t0x56f: 0x12,\n}\n\n// nfcSparseOffset: 149 entries, 298 bytes\nvar nfcSparseOffset = []uint16{0x0, 0x5, 0x9, 0xb, 0xd, 0x18, 0x28, 0x2a, 0x2f, 0x3a, 0x49, 0x56, 0x5e, 0x63, 0x68, 0x6a, 0x72, 0x79, 0x7c, 0x84, 0x88, 0x8c, 0x8e, 0x90, 0x99, 0x9d, 0xa4, 0xa9, 0xac, 0xb6, 0xb9, 0xc0, 0xc8, 0xcb, 0xcd, 0xcf, 0xd1, 0xd6, 0xe7, 0xf3, 0xf5, 0xfb, 0xfd, 0xff, 0x101, 0x103, 0x105, 0x107, 0x10a, 0x10d, 0x10f, 0x112, 0x115, 0x119, 0x11e, 0x127, 0x129, 0x12c, 0x12e, 0x139, 0x13d, 0x14b, 0x14e, 0x154, 0x15a, 0x165, 0x169, 0x16b, 0x16d, 0x16f, 0x171, 0x173, 0x179, 0x17d, 0x17f, 0x181, 0x189, 0x18d, 0x190, 0x192, 0x194, 0x196, 0x199, 0x19b, 0x19d, 0x19f, 0x1a1, 0x1a7, 0x1aa, 0x1ac, 0x1b3, 0x1b9, 0x1bf, 0x1c7, 0x1cd, 0x1d3, 0x1d9, 0x1dd, 0x1eb, 0x1f4, 0x1f7, 0x1fa, 0x1fc, 0x1ff, 0x201, 0x205, 0x20a, 0x20c, 0x20e, 0x213, 0x219, 0x21b, 0x21d, 0x21f, 0x225, 0x228, 0x22a, 0x230, 0x233, 0x23b, 0x242, 0x245, 0x248, 0x24a, 0x24d, 0x255, 0x259, 0x260, 0x263, 0x269, 0x26b, 0x26e, 0x270, 0x273, 0x275, 0x277, 0x279, 0x27c, 0x27e, 0x280, 0x282, 0x284, 0x291, 0x29b, 0x29d, 0x29f, 0x2a5, 0x2a7, 0x2aa}\n\n// nfcSparseValues: 684 entries, 2736 bytes\nvar nfcSparseValues = [684]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0xa100, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8100, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8100, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8100, lo: 0xb8, hi: 0xb8},\n\t// Block 0x1, offset 0x5\n\t{value: 0x0091, lo: 0x03},\n\t{value: 0x46e2, lo: 0xa0, hi: 0xa1},\n\t{value: 0x4714, lo: 0xaf, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb7, hi: 0xb7},\n\t// Block 0x2, offset 0x9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t// Block 0x3, offset 0xb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x98, hi: 0x9d},\n\t// Block 0x4, offset 0xd\n\t{value: 0x0006, lo: 0x0a},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x85, hi: 0x85},\n\t{value: 0xa000, lo: 0x89, hi: 0x89},\n\t{value: 0x4840, lo: 0x8a, hi: 0x8a},\n\t{value: 0x485e, lo: 0x8b, hi: 0x8b},\n\t{value: 0x36c7, lo: 0x8c, hi: 0x8c},\n\t{value: 0x36df, lo: 0x8d, hi: 0x8d},\n\t{value: 0x4876, lo: 0x8e, hi: 0x8e},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x36fd, lo: 0x93, hi: 0x94},\n\t// Block 0x5, offset 0x18\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0xa000, lo: 0x8d, hi: 0x8d},\n\t{value: 0x37a5, lo: 0x90, hi: 0x90},\n\t{value: 0x37b1, lo: 0x91, hi: 0x91},\n\t{value: 0x379f, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x96, hi: 0x96},\n\t{value: 0x3817, lo: 0x97, hi: 0x97},\n\t{value: 0x37e1, lo: 0x9c, hi: 0x9c},\n\t{value: 0x37c9, lo: 0x9d, hi: 0x9d},\n\t{value: 0x37f3, lo: 0x9e, hi: 0x9e},\n\t{value: 0xa000, lo: 0xb4, hi: 0xb5},\n\t{value: 0x381d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3823, lo: 0xb7, hi: 0xb7},\n\t// Block 0x6, offset 0x28\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x83, hi: 0x87},\n\t// Block 0x7, offset 0x2a\n\t{value: 0x0001, lo: 0x04},\n\t{value: 0x8113, lo: 0x81, hi: 0x82},\n\t{value: 0x8132, lo: 0x84, hi: 0x84},\n\t{value: 0x812d, lo: 0x85, hi: 0x85},\n\t{value: 0x810d, lo: 0x87, hi: 0x87},\n\t// Block 0x8, offset 0x2f\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x97},\n\t{value: 0x8119, lo: 0x98, hi: 0x98},\n\t{value: 0x811a, lo: 0x99, hi: 0x99},\n\t{value: 0x811b, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3841, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3847, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3853, lo: 0xa4, hi: 0xa4},\n\t{value: 0x384d, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3859, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xa7, hi: 0xa7},\n\t// Block 0x9, offset 0x3a\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x386b, lo: 0x80, hi: 0x80},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0x385f, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x3865, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x95, hi: 0x95},\n\t{value: 0x8132, lo: 0x96, hi: 0x9c},\n\t{value: 0x8132, lo: 0x9f, hi: 0xa2},\n\t{value: 0x812d, lo: 0xa3, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa8},\n\t{value: 0x812d, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8132, lo: 0xab, hi: 0xac},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t// Block 0xa, offset 0x49\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x811f, lo: 0x91, hi: 0x91},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x812d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb5, hi: 0xb6},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb9},\n\t{value: 0x8132, lo: 0xba, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbc},\n\t{value: 0x8132, lo: 0xbd, hi: 0xbd},\n\t{value: 0x812d, lo: 0xbe, hi: 0xbe},\n\t{value: 0x8132, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb, offset 0x56\n\t{value: 0x0005, lo: 0x07},\n\t{value: 0x8132, lo: 0x80, hi: 0x80},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x812d, lo: 0x82, hi: 0x83},\n\t{value: 0x812d, lo: 0x84, hi: 0x85},\n\t{value: 0x812d, lo: 0x86, hi: 0x87},\n\t{value: 0x812d, lo: 0x88, hi: 0x89},\n\t{value: 0x8132, lo: 0x8a, hi: 0x8a},\n\t// Block 0xc, offset 0x5e\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0xab, hi: 0xb1},\n\t{value: 0x812d, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8132, lo: 0xb3, hi: 0xb3},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0xd, offset 0x63\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0x96, hi: 0x99},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa7},\n\t{value: 0x8132, lo: 0xa9, hi: 0xad},\n\t// Block 0xe, offset 0x68\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x99, hi: 0x9b},\n\t// Block 0xf, offset 0x6a\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3ed8, lo: 0xa9, hi: 0xa9},\n\t{value: 0xa000, lo: 0xb0, hi: 0xb0},\n\t{value: 0x3ee0, lo: 0xb1, hi: 0xb1},\n\t{value: 0xa000, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3ee8, lo: 0xb4, hi: 0xb4},\n\t{value: 0x9902, lo: 0xbc, hi: 0xbc},\n\t// Block 0x10, offset 0x72\n\t{value: 0x0008, lo: 0x06},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x91, hi: 0x91},\n\t{value: 0x812d, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x93, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x94},\n\t{value: 0x451c, lo: 0x98, hi: 0x9f},\n\t// Block 0x11, offset 0x79\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x12, offset 0x7c\n\t{value: 0x0008, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2c9e, lo: 0x8b, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x455c, lo: 0x9c, hi: 0x9d},\n\t{value: 0x456c, lo: 0x9f, hi: 0x9f},\n\t{value: 0x8132, lo: 0xbe, hi: 0xbe},\n\t// Block 0x13, offset 0x84\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x4594, lo: 0xb3, hi: 0xb3},\n\t{value: 0x459c, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x14, offset 0x88\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x4574, lo: 0x99, hi: 0x9b},\n\t{value: 0x458c, lo: 0x9e, hi: 0x9e},\n\t// Block 0x15, offset 0x8c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x16, offset 0x8e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t// Block 0x17, offset 0x90\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2cb6, lo: 0x88, hi: 0x88},\n\t{value: 0x2cae, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cbe, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x96, hi: 0x97},\n\t{value: 0x45a4, lo: 0x9c, hi: 0x9c},\n\t{value: 0x45ac, lo: 0x9d, hi: 0x9d},\n\t// Block 0x18, offset 0x99\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x2cc6, lo: 0x94, hi: 0x94},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x19, offset 0x9d\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cce, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2cde, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cd6, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1a, offset 0xa4\n\t{value: 0x1801, lo: 0x04},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x3ef0, lo: 0x88, hi: 0x88},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8120, lo: 0x95, hi: 0x96},\n\t// Block 0x1b, offset 0xa9\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0xa000, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1c, offset 0xac\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x2ce6, lo: 0x80, hi: 0x80},\n\t{value: 0x9900, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x2cee, lo: 0x87, hi: 0x87},\n\t{value: 0x2cf6, lo: 0x88, hi: 0x88},\n\t{value: 0x2f50, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2dd8, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x95, hi: 0x96},\n\t// Block 0x1d, offset 0xb6\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xbb, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1e, offset 0xb9\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cfe, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2d0e, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d06, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1f, offset 0xc0\n\t{value: 0x6bea, lo: 0x07},\n\t{value: 0x9904, lo: 0x8a, hi: 0x8a},\n\t{value: 0x9900, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x3ef8, lo: 0x9a, hi: 0x9a},\n\t{value: 0x2f58, lo: 0x9c, hi: 0x9c},\n\t{value: 0x2de3, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2d16, lo: 0x9e, hi: 0x9f},\n\t// Block 0x20, offset 0xc8\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8122, lo: 0xb8, hi: 0xb9},\n\t{value: 0x8104, lo: 0xba, hi: 0xba},\n\t// Block 0x21, offset 0xcb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8123, lo: 0x88, hi: 0x8b},\n\t// Block 0x22, offset 0xcd\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8124, lo: 0xb8, hi: 0xb9},\n\t// Block 0x23, offset 0xcf\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8125, lo: 0x88, hi: 0x8b},\n\t// Block 0x24, offset 0xd1\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x812d, lo: 0x98, hi: 0x99},\n\t{value: 0x812d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb7},\n\t{value: 0x812b, lo: 0xb9, hi: 0xb9},\n\t// Block 0x25, offset 0xd6\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x2644, lo: 0x83, hi: 0x83},\n\t{value: 0x264b, lo: 0x8d, hi: 0x8d},\n\t{value: 0x2652, lo: 0x92, hi: 0x92},\n\t{value: 0x2659, lo: 0x97, hi: 0x97},\n\t{value: 0x2660, lo: 0x9c, hi: 0x9c},\n\t{value: 0x263d, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8126, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8127, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4a84, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8128, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4a8d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x45b4, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8200, lo: 0xb7, hi: 0xb7},\n\t{value: 0x45bc, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8200, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8127, lo: 0xba, hi: 0xbd},\n\t// Block 0x26, offset 0xe7\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x8127, lo: 0x80, hi: 0x80},\n\t{value: 0x4a96, lo: 0x81, hi: 0x81},\n\t{value: 0x8132, lo: 0x82, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0x86, hi: 0x87},\n\t{value: 0x266e, lo: 0x93, hi: 0x93},\n\t{value: 0x2675, lo: 0x9d, hi: 0x9d},\n\t{value: 0x267c, lo: 0xa2, hi: 0xa2},\n\t{value: 0x2683, lo: 0xa7, hi: 0xa7},\n\t{value: 0x268a, lo: 0xac, hi: 0xac},\n\t{value: 0x2667, lo: 0xb9, hi: 0xb9},\n\t// Block 0x27, offset 0xf3\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x86, hi: 0x86},\n\t// Block 0x28, offset 0xf5\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x2d1e, lo: 0xa6, hi: 0xa6},\n\t{value: 0x9900, lo: 0xae, hi: 0xae},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x29, offset 0xfb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t// Block 0x2a, offset 0xfd\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x80, hi: 0x92},\n\t// Block 0x2b, offset 0xff\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xb900, lo: 0xa1, hi: 0xb5},\n\t// Block 0x2c, offset 0x101\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0xa8, hi: 0xbf},\n\t// Block 0x2d, offset 0x103\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0x80, hi: 0x82},\n\t// Block 0x2e, offset 0x105\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9f},\n\t// Block 0x2f, offset 0x107\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x94, hi: 0x94},\n\t{value: 0x8104, lo: 0xb4, hi: 0xb4},\n\t// Block 0x30, offset 0x10a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9d},\n\t// Block 0x31, offset 0x10d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8131, lo: 0xa9, hi: 0xa9},\n\t// Block 0x32, offset 0x10f\n\t{value: 0x0004, lo: 0x02},\n\t{value: 0x812e, lo: 0xb9, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbb},\n\t// Block 0x33, offset 0x112\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x97, hi: 0x97},\n\t{value: 0x812d, lo: 0x98, hi: 0x98},\n\t// Block 0x34, offset 0x115\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8104, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8132, lo: 0xb5, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbf, hi: 0xbf},\n\t// Block 0x35, offset 0x119\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t{value: 0x812d, lo: 0xb5, hi: 0xba},\n\t{value: 0x8132, lo: 0xbb, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x36, offset 0x11e\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x2d66, lo: 0x80, hi: 0x80},\n\t{value: 0x2d6e, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x82, hi: 0x82},\n\t{value: 0x2d76, lo: 0x83, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xab, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xac},\n\t{value: 0x8132, lo: 0xad, hi: 0xb3},\n\t// Block 0x37, offset 0x127\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xaa, hi: 0xab},\n\t// Block 0x38, offset 0x129\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xa6, hi: 0xa6},\n\t{value: 0x8104, lo: 0xb2, hi: 0xb3},\n\t// Block 0x39, offset 0x12c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x3a, offset 0x12e\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x92},\n\t{value: 0x8101, lo: 0x94, hi: 0x94},\n\t{value: 0x812d, lo: 0x95, hi: 0x99},\n\t{value: 0x8132, lo: 0x9a, hi: 0x9b},\n\t{value: 0x812d, lo: 0x9c, hi: 0x9f},\n\t{value: 0x8132, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8101, lo: 0xa2, hi: 0xa8},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t{value: 0x8132, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb9},\n\t// Block 0x3b, offset 0x139\n\t{value: 0x0004, lo: 0x03},\n\t{value: 0x0433, lo: 0x80, hi: 0x81},\n\t{value: 0x8100, lo: 0x97, hi: 0x97},\n\t{value: 0x8100, lo: 0xbe, hi: 0xbe},\n\t// Block 0x3c, offset 0x13d\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x8132, lo: 0x90, hi: 0x91},\n\t{value: 0x8101, lo: 0x92, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x97},\n\t{value: 0x8101, lo: 0x98, hi: 0x9a},\n\t{value: 0x8132, lo: 0x9b, hi: 0x9c},\n\t{value: 0x8132, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8101, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa7},\n\t{value: 0x812d, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8132, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8101, lo: 0xaa, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t// Block 0x3d, offset 0x14b\n\t{value: 0x427b, lo: 0x02},\n\t{value: 0x01b8, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0057, lo: 0xaa, hi: 0xab},\n\t// Block 0x3e, offset 0x14e\n\t{value: 0x0007, lo: 0x05},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t{value: 0x3bb9, lo: 0x9a, hi: 0x9b},\n\t{value: 0x3bc7, lo: 0xae, hi: 0xae},\n\t// Block 0x3f, offset 0x154\n\t{value: 0x000e, lo: 0x05},\n\t{value: 0x3bce, lo: 0x8d, hi: 0x8e},\n\t{value: 0x3bd5, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t// Block 0x40, offset 0x15a\n\t{value: 0x6408, lo: 0x0a},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0x3be3, lo: 0x84, hi: 0x84},\n\t{value: 0xa000, lo: 0x88, hi: 0x88},\n\t{value: 0x3bea, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0x3bf1, lo: 0x8c, hi: 0x8c},\n\t{value: 0xa000, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3bf8, lo: 0xa4, hi: 0xa5},\n\t{value: 0x3bff, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xbc, hi: 0xbc},\n\t// Block 0x41, offset 0x165\n\t{value: 0x0007, lo: 0x03},\n\t{value: 0x3c68, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3c92, lo: 0xa2, hi: 0xa3},\n\t{value: 0x3cbc, lo: 0xaa, hi: 0xad},\n\t// Block 0x42, offset 0x169\n\t{value: 0x0004, lo: 0x01},\n\t{value: 0x048b, lo: 0xa9, hi: 0xaa},\n\t// Block 0x43, offset 0x16b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x44dd, lo: 0x9c, hi: 0x9c},\n\t// Block 0x44, offset 0x16d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xaf, hi: 0xb1},\n\t// Block 0x45, offset 0x16f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x46, offset 0x171\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xa0, hi: 0xbf},\n\t// Block 0x47, offset 0x173\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x812c, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8131, lo: 0xab, hi: 0xab},\n\t{value: 0x8133, lo: 0xac, hi: 0xac},\n\t{value: 0x812e, lo: 0xad, hi: 0xad},\n\t{value: 0x812f, lo: 0xae, hi: 0xaf},\n\t// Block 0x48, offset 0x179\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x4a9f, lo: 0xb3, hi: 0xb3},\n\t{value: 0x4a9f, lo: 0xb5, hi: 0xb6},\n\t{value: 0x4a9f, lo: 0xba, hi: 0xbf},\n\t// Block 0x49, offset 0x17d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x4a9f, lo: 0x8f, hi: 0xa3},\n\t// Block 0x4a, offset 0x17f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xae, hi: 0xbe},\n\t// Block 0x4b, offset 0x181\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x8100, lo: 0x84, hi: 0x84},\n\t{value: 0x8100, lo: 0x87, hi: 0x87},\n\t{value: 0x8100, lo: 0x90, hi: 0x90},\n\t{value: 0x8100, lo: 0x9e, hi: 0x9e},\n\t{value: 0x8100, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8100, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8100, lo: 0xbb, hi: 0xbb},\n\t// Block 0x4c, offset 0x189\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8100, lo: 0x80, hi: 0x80},\n\t{value: 0x8100, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8100, lo: 0x8e, hi: 0x8e},\n\t// Block 0x4d, offset 0x18d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb4, hi: 0xbd},\n\t// Block 0x4e, offset 0x190\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x9e, hi: 0x9f},\n\t// Block 0x4f, offset 0x192\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb1},\n\t// Block 0x50, offset 0x194\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t// Block 0x51, offset 0x196\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xa0, hi: 0xb1},\n\t// Block 0x52, offset 0x199\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xab, hi: 0xad},\n\t// Block 0x53, offset 0x19b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x93, hi: 0x93},\n\t// Block 0x54, offset 0x19d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb3, hi: 0xb3},\n\t// Block 0x55, offset 0x19f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t// Block 0x56, offset 0x1a1\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb7, hi: 0xb8},\n\t{value: 0x8132, lo: 0xbe, hi: 0xbf},\n\t// Block 0x57, offset 0x1a7\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t// Block 0x58, offset 0x1aa\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xad, hi: 0xad},\n\t// Block 0x59, offset 0x1ac\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe500, lo: 0x80, hi: 0x80},\n\t{value: 0xc600, lo: 0x81, hi: 0x9b},\n\t{value: 0xe500, lo: 0x9c, hi: 0x9c},\n\t{value: 0xc600, lo: 0x9d, hi: 0xb7},\n\t{value: 0xe500, lo: 0xb8, hi: 0xb8},\n\t{value: 0xc600, lo: 0xb9, hi: 0xbf},\n\t// Block 0x5a, offset 0x1b3\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x93},\n\t{value: 0xe500, lo: 0x94, hi: 0x94},\n\t{value: 0xc600, lo: 0x95, hi: 0xaf},\n\t{value: 0xe500, lo: 0xb0, hi: 0xb0},\n\t{value: 0xc600, lo: 0xb1, hi: 0xbf},\n\t// Block 0x5b, offset 0x1b9\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8b},\n\t{value: 0xe500, lo: 0x8c, hi: 0x8c},\n\t{value: 0xc600, lo: 0x8d, hi: 0xa7},\n\t{value: 0xe500, lo: 0xa8, hi: 0xa8},\n\t{value: 0xc600, lo: 0xa9, hi: 0xbf},\n\t// Block 0x5c, offset 0x1bf\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xc600, lo: 0x80, hi: 0x83},\n\t{value: 0xe500, lo: 0x84, hi: 0x84},\n\t{value: 0xc600, lo: 0x85, hi: 0x9f},\n\t{value: 0xe500, lo: 0xa0, hi: 0xa0},\n\t{value: 0xc600, lo: 0xa1, hi: 0xbb},\n\t{value: 0xe500, lo: 0xbc, hi: 0xbc},\n\t{value: 0xc600, lo: 0xbd, hi: 0xbf},\n\t// Block 0x5d, offset 0x1c7\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x97},\n\t{value: 0xe500, lo: 0x98, hi: 0x98},\n\t{value: 0xc600, lo: 0x99, hi: 0xb3},\n\t{value: 0xe500, lo: 0xb4, hi: 0xb4},\n\t{value: 0xc600, lo: 0xb5, hi: 0xbf},\n\t// Block 0x5e, offset 0x1cd\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8f},\n\t{value: 0xe500, lo: 0x90, hi: 0x90},\n\t{value: 0xc600, lo: 0x91, hi: 0xab},\n\t{value: 0xe500, lo: 0xac, hi: 0xac},\n\t{value: 0xc600, lo: 0xad, hi: 0xbf},\n\t// Block 0x5f, offset 0x1d3\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t{value: 0xe500, lo: 0xa4, hi: 0xa4},\n\t{value: 0xc600, lo: 0xa5, hi: 0xbf},\n\t// Block 0x60, offset 0x1d9\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t// Block 0x61, offset 0x1dd\n\t{value: 0x0006, lo: 0x0d},\n\t{value: 0x4390, lo: 0x9d, hi: 0x9d},\n\t{value: 0x8115, lo: 0x9e, hi: 0x9e},\n\t{value: 0x4402, lo: 0x9f, hi: 0x9f},\n\t{value: 0x43f0, lo: 0xaa, hi: 0xab},\n\t{value: 0x44f4, lo: 0xac, hi: 0xac},\n\t{value: 0x44fc, lo: 0xad, hi: 0xad},\n\t{value: 0x4348, lo: 0xae, hi: 0xb1},\n\t{value: 0x4366, lo: 0xb2, hi: 0xb4},\n\t{value: 0x437e, lo: 0xb5, hi: 0xb6},\n\t{value: 0x438a, lo: 0xb8, hi: 0xb8},\n\t{value: 0x4396, lo: 0xb9, hi: 0xbb},\n\t{value: 0x43ae, lo: 0xbc, hi: 0xbc},\n\t{value: 0x43b4, lo: 0xbe, hi: 0xbe},\n\t// Block 0x62, offset 0x1eb\n\t{value: 0x0006, lo: 0x08},\n\t{value: 0x43ba, lo: 0x80, hi: 0x81},\n\t{value: 0x43c6, lo: 0x83, hi: 0x84},\n\t{value: 0x43d8, lo: 0x86, hi: 0x89},\n\t{value: 0x43fc, lo: 0x8a, hi: 0x8a},\n\t{value: 0x4378, lo: 0x8b, hi: 0x8b},\n\t{value: 0x4360, lo: 0x8c, hi: 0x8c},\n\t{value: 0x43a8, lo: 0x8d, hi: 0x8d},\n\t{value: 0x43d2, lo: 0x8e, hi: 0x8e},\n\t// Block 0x63, offset 0x1f4\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0xa4, hi: 0xa5},\n\t{value: 0x8100, lo: 0xb0, hi: 0xb1},\n\t// Block 0x64, offset 0x1f7\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0x9b, hi: 0x9d},\n\t{value: 0x8200, lo: 0x9e, hi: 0xa3},\n\t// Block 0x65, offset 0x1fa\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x90, hi: 0x90},\n\t// Block 0x66, offset 0x1fc\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0x99, hi: 0x99},\n\t{value: 0x8200, lo: 0xb2, hi: 0xb4},\n\t// Block 0x67, offset 0x1ff\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xbc, hi: 0xbd},\n\t// Block 0x68, offset 0x201\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8132, lo: 0xa0, hi: 0xa6},\n\t{value: 0x812d, lo: 0xa7, hi: 0xad},\n\t{value: 0x8132, lo: 0xae, hi: 0xaf},\n\t// Block 0x69, offset 0x205\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8100, lo: 0x89, hi: 0x8c},\n\t{value: 0x8100, lo: 0xb0, hi: 0xb2},\n\t{value: 0x8100, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8100, lo: 0xb6, hi: 0xbf},\n\t// Block 0x6a, offset 0x20a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x81, hi: 0x8c},\n\t// Block 0x6b, offset 0x20c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xb5, hi: 0xba},\n\t// Block 0x6c, offset 0x20e\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x4a9f, lo: 0x9e, hi: 0x9f},\n\t{value: 0x4a9f, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4a9f, lo: 0xa5, hi: 0xa6},\n\t{value: 0x4a9f, lo: 0xaa, hi: 0xaf},\n\t// Block 0x6d, offset 0x213\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x4a9f, lo: 0x82, hi: 0x87},\n\t{value: 0x4a9f, lo: 0x8a, hi: 0x8f},\n\t{value: 0x4a9f, lo: 0x92, hi: 0x97},\n\t{value: 0x4a9f, lo: 0x9a, hi: 0x9c},\n\t{value: 0x8100, lo: 0xa3, hi: 0xa3},\n\t// Block 0x6e, offset 0x219\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x6f, offset 0x21b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xa0, hi: 0xa0},\n\t// Block 0x70, offset 0x21d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb6, hi: 0xba},\n\t// Block 0x71, offset 0x21f\n\t{value: 0x002c, lo: 0x05},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x8f, hi: 0x8f},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8101, lo: 0xb9, hi: 0xba},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x72, offset 0x225\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa5},\n\t{value: 0x812d, lo: 0xa6, hi: 0xa6},\n\t// Block 0x73, offset 0x228\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa7},\n\t// Block 0x74, offset 0x22a\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x812d, lo: 0x86, hi: 0x87},\n\t{value: 0x8132, lo: 0x88, hi: 0x8a},\n\t{value: 0x812d, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8132, lo: 0x8c, hi: 0x8c},\n\t{value: 0x812d, lo: 0x8d, hi: 0x90},\n\t// Block 0x75, offset 0x230\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x76, offset 0x233\n\t{value: 0x17fe, lo: 0x07},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x4238, lo: 0x9a, hi: 0x9a},\n\t{value: 0xa000, lo: 0x9b, hi: 0x9b},\n\t{value: 0x4242, lo: 0x9c, hi: 0x9c},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x424c, lo: 0xab, hi: 0xab},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x77, offset 0x23b\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x8132, lo: 0x80, hi: 0x82},\n\t{value: 0x9900, lo: 0xa7, hi: 0xa7},\n\t{value: 0x2d7e, lo: 0xae, hi: 0xae},\n\t{value: 0x2d88, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb1, hi: 0xb2},\n\t{value: 0x8104, lo: 0xb3, hi: 0xb4},\n\t// Block 0x78, offset 0x242\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0x79, offset 0x245\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb5, hi: 0xb5},\n\t{value: 0x8102, lo: 0xb6, hi: 0xb6},\n\t// Block 0x7a, offset 0x248\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x8102, lo: 0xa9, hi: 0xaa},\n\t// Block 0x7b, offset 0x24a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbb, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x7c, offset 0x24d\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2d92, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d9c, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x8132, lo: 0xa6, hi: 0xac},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t// Block 0x7d, offset 0x255\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x86, hi: 0x86},\n\t{value: 0x8132, lo: 0x9e, hi: 0x9e},\n\t// Block 0x7e, offset 0x259\n\t{value: 0x6b5a, lo: 0x06},\n\t{value: 0x9900, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb9, hi: 0xb9},\n\t{value: 0x9900, lo: 0xba, hi: 0xba},\n\t{value: 0x2db0, lo: 0xbb, hi: 0xbb},\n\t{value: 0x2da6, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2dba, lo: 0xbe, hi: 0xbe},\n\t// Block 0x7f, offset 0x260\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x83, hi: 0x83},\n\t// Block 0x80, offset 0x263\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x9900, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2dc4, lo: 0xba, hi: 0xba},\n\t{value: 0x2dce, lo: 0xbb, hi: 0xbb},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x81, offset 0x269\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0x80, hi: 0x80},\n\t// Block 0x82, offset 0x26b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x83, offset 0x26e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xab, hi: 0xab},\n\t// Block 0x84, offset 0x270\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8102, lo: 0xba, hi: 0xba},\n\t// Block 0x85, offset 0x273\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xb4, hi: 0xb4},\n\t// Block 0x86, offset 0x275\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x87, hi: 0x87},\n\t// Block 0x87, offset 0x277\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x99, hi: 0x99},\n\t// Block 0x88, offset 0x279\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0x82, hi: 0x82},\n\t{value: 0x8104, lo: 0x84, hi: 0x85},\n\t// Block 0x89, offset 0x27c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x97, hi: 0x97},\n\t// Block 0x8a, offset 0x27e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0xb0, hi: 0xb4},\n\t// Block 0x8b, offset 0x280\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb6},\n\t// Block 0x8c, offset 0x282\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0x9e, hi: 0x9e},\n\t// Block 0x8d, offset 0x284\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x45cc, lo: 0x9e, hi: 0x9e},\n\t{value: 0x45d6, lo: 0x9f, hi: 0x9f},\n\t{value: 0x460a, lo: 0xa0, hi: 0xa0},\n\t{value: 0x4618, lo: 0xa1, hi: 0xa1},\n\t{value: 0x4626, lo: 0xa2, hi: 0xa2},\n\t{value: 0x4634, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4642, lo: 0xa4, hi: 0xa4},\n\t{value: 0x812b, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8101, lo: 0xa7, hi: 0xa9},\n\t{value: 0x8130, lo: 0xad, hi: 0xad},\n\t{value: 0x812b, lo: 0xae, hi: 0xb2},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbf},\n\t// Block 0x8e, offset 0x291\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x812d, lo: 0x80, hi: 0x82},\n\t{value: 0x8132, lo: 0x85, hi: 0x89},\n\t{value: 0x812d, lo: 0x8a, hi: 0x8b},\n\t{value: 0x8132, lo: 0xaa, hi: 0xad},\n\t{value: 0x45e0, lo: 0xbb, hi: 0xbb},\n\t{value: 0x45ea, lo: 0xbc, hi: 0xbc},\n\t{value: 0x4650, lo: 0xbd, hi: 0xbd},\n\t{value: 0x466c, lo: 0xbe, hi: 0xbe},\n\t{value: 0x465e, lo: 0xbf, hi: 0xbf},\n\t// Block 0x8f, offset 0x29b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x467a, lo: 0x80, hi: 0x80},\n\t// Block 0x90, offset 0x29d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x82, hi: 0x84},\n\t// Block 0x91, offset 0x29f\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0x80, hi: 0x86},\n\t{value: 0x8132, lo: 0x88, hi: 0x98},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa1},\n\t{value: 0x8132, lo: 0xa3, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa6, hi: 0xaa},\n\t// Block 0x92, offset 0x2a5\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x90, hi: 0x96},\n\t// Block 0x93, offset 0x2a7\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x84, hi: 0x89},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0x94, offset 0x2aa\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x93, hi: 0x93},\n}\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfkcTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfkcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfkcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfkcTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfkcValues[c0]\n\t}\n\ti := nfkcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfkcTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfkcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfkcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfkcTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfkcValues[c0]\n\t}\n\ti := nfkcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// nfkcTrie. Total size: 17248 bytes (16.84 KiB). Checksum: 4fb368372b6b1b27.\ntype nfkcTrie struct{}\n\nfunc newNfkcTrie(i int) *nfkcTrie {\n\treturn &nfkcTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *nfkcTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 92:\n\t\treturn uint16(nfkcValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 92\n\t\treturn uint16(nfkcSparse.lookup(n, b))\n\t}\n}\n\n// nfkcValues: 94 blocks, 6016 entries, 12032 bytes\n// The third block is the zero block.\nvar nfkcValues = [6016]uint16{\n\t// Block 0x0, offset 0x0\n\t0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000,\n\t// Block 0x1, offset 0x40\n\t0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000,\n\t0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000,\n\t0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000,\n\t0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000,\n\t0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000,\n\t0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000,\n\t0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000,\n\t0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000,\n\t0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000,\n\t0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c,\n\t0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb,\n\t0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104,\n\t0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd,\n\t0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235,\n\t0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285,\n\t0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3,\n\t0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750,\n\t0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f,\n\t0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3,\n\t0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569,\n\t// Block 0x4, offset 0x100\n\t0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8,\n\t0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6,\n\t0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5,\n\t0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302,\n\t0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339,\n\t0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352,\n\t0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e,\n\t0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6,\n\t0x130: 0x308c, 0x132: 0x195d, 0x133: 0x19e7, 0x134: 0x30b4, 0x135: 0x33c0,\n\t0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc,\n\t0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8, 0x13f: 0x1bac,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x1c34, 0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118,\n\t0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f, 0x149: 0x1c5c,\n\t0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c,\n\t0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483,\n\t0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d,\n\t0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba,\n\t0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796,\n\t0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2,\n\t0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528,\n\t0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267,\n\t0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0x00a7,\n\t// Block 0x6, offset 0x180\n\t0x184: 0x2dee, 0x185: 0x2df4,\n\t0x186: 0x2dfa, 0x187: 0x1972, 0x188: 0x1975, 0x189: 0x1a08, 0x18a: 0x1987, 0x18b: 0x198a,\n\t0x18c: 0x1a3e, 0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140,\n\t0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8,\n\t0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50,\n\t0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5,\n\t0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf,\n\t0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd,\n\t0x1b0: 0x33c5, 0x1b1: 0x1942, 0x1b2: 0x1945, 0x1b3: 0x19cf, 0x1b4: 0x3028, 0x1b5: 0x3334,\n\t0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46,\n\t0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316,\n\t0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac,\n\t0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479,\n\t0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6,\n\t0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5,\n\t0x1de: 0x305a, 0x1df: 0x3366,\n\t0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b,\n\t0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769,\n\t0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132,\n\t0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932,\n\t0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932,\n\t0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d,\n\t0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d,\n\t0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d,\n\t0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d,\n\t0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d,\n\t0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101,\n\t0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d,\n\t0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936,\n\t0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132,\n\t0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132,\n\t0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132,\n\t0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135,\n\t0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132,\n\t0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132,\n\t0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132,\n\t0x274: 0x0170,\n\t0x27a: 0x42a5,\n\t0x27e: 0x0037,\n\t// Block 0xa, offset 0x280\n\t0x284: 0x425a, 0x285: 0x447b,\n\t0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625,\n\t0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000,\n\t0x295: 0xa000, 0x297: 0xa000,\n\t0x299: 0xa000,\n\t0x29f: 0xa000, 0x2a1: 0xa000,\n\t0x2a5: 0xa000, 0x2a9: 0xa000,\n\t0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9,\n\t0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000,\n\t0x2b7: 0xa000, 0x2b9: 0xa000,\n\t0x2bf: 0xa000,\n\t// Block 0xb, offset 0x2c0\n\t0x2c1: 0xa000, 0x2c5: 0xa000,\n\t0x2c9: 0xa000, 0x2ca: 0x4840, 0x2cb: 0x485e,\n\t0x2cc: 0x36c7, 0x2cd: 0x36df, 0x2ce: 0x4876, 0x2d0: 0x01be, 0x2d1: 0x01d0,\n\t0x2d2: 0x01ac, 0x2d3: 0x430c, 0x2d4: 0x4312, 0x2d5: 0x01fa, 0x2d6: 0x01e8,\n\t0x2f0: 0x01d6, 0x2f1: 0x01eb, 0x2f2: 0x01ee, 0x2f4: 0x0188, 0x2f5: 0x01c7,\n\t0x2f9: 0x01a6,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x3721, 0x301: 0x372d, 0x303: 0x371b,\n\t0x306: 0xa000, 0x307: 0x3709,\n\t0x30c: 0x375d, 0x30d: 0x3745, 0x30e: 0x376f, 0x310: 0xa000,\n\t0x313: 0xa000, 0x315: 0xa000, 0x316: 0xa000, 0x317: 0xa000,\n\t0x318: 0xa000, 0x319: 0x3751, 0x31a: 0xa000,\n\t0x31e: 0xa000, 0x323: 0xa000,\n\t0x327: 0xa000,\n\t0x32b: 0xa000, 0x32d: 0xa000,\n\t0x330: 0xa000, 0x333: 0xa000, 0x335: 0xa000,\n\t0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x37d5, 0x33a: 0xa000,\n\t0x33e: 0xa000,\n\t// Block 0xd, offset 0x340\n\t0x341: 0x3733, 0x342: 0x37b7,\n\t0x350: 0x370f, 0x351: 0x3793,\n\t0x352: 0x3715, 0x353: 0x3799, 0x356: 0x3727, 0x357: 0x37ab,\n\t0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x3829, 0x35b: 0x382f, 0x35c: 0x3739, 0x35d: 0x37bd,\n\t0x35e: 0x373f, 0x35f: 0x37c3, 0x362: 0x374b, 0x363: 0x37cf,\n\t0x364: 0x3757, 0x365: 0x37db, 0x366: 0x3763, 0x367: 0x37e7, 0x368: 0xa000, 0x369: 0xa000,\n\t0x36a: 0x3835, 0x36b: 0x383b, 0x36c: 0x378d, 0x36d: 0x3811, 0x36e: 0x3769, 0x36f: 0x37ed,\n\t0x370: 0x3775, 0x371: 0x37f9, 0x372: 0x377b, 0x373: 0x37ff, 0x374: 0x3781, 0x375: 0x3805,\n\t0x378: 0x3787, 0x379: 0x380b,\n\t// Block 0xe, offset 0x380\n\t0x387: 0x1d61,\n\t0x391: 0x812d,\n\t0x392: 0x8132, 0x393: 0x8132, 0x394: 0x8132, 0x395: 0x8132, 0x396: 0x812d, 0x397: 0x8132,\n\t0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x812e, 0x39b: 0x812d, 0x39c: 0x8132, 0x39d: 0x8132,\n\t0x39e: 0x8132, 0x39f: 0x8132, 0x3a0: 0x8132, 0x3a1: 0x8132, 0x3a2: 0x812d, 0x3a3: 0x812d,\n\t0x3a4: 0x812d, 0x3a5: 0x812d, 0x3a6: 0x812d, 0x3a7: 0x812d, 0x3a8: 0x8132, 0x3a9: 0x8132,\n\t0x3aa: 0x812d, 0x3ab: 0x8132, 0x3ac: 0x8132, 0x3ad: 0x812e, 0x3ae: 0x8131, 0x3af: 0x8132,\n\t0x3b0: 0x8105, 0x3b1: 0x8106, 0x3b2: 0x8107, 0x3b3: 0x8108, 0x3b4: 0x8109, 0x3b5: 0x810a,\n\t0x3b6: 0x810b, 0x3b7: 0x810c, 0x3b8: 0x810d, 0x3b9: 0x810e, 0x3ba: 0x810e, 0x3bb: 0x810f,\n\t0x3bc: 0x8110, 0x3bd: 0x8111, 0x3bf: 0x8112,\n\t// Block 0xf, offset 0x3c0\n\t0x3c8: 0xa000, 0x3ca: 0xa000, 0x3cb: 0x8116,\n\t0x3cc: 0x8117, 0x3cd: 0x8118, 0x3ce: 0x8119, 0x3cf: 0x811a, 0x3d0: 0x811b, 0x3d1: 0x811c,\n\t0x3d2: 0x811d, 0x3d3: 0x9932, 0x3d4: 0x9932, 0x3d5: 0x992d, 0x3d6: 0x812d, 0x3d7: 0x8132,\n\t0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x812d, 0x3dd: 0x8132,\n\t0x3de: 0x8132, 0x3df: 0x812d,\n\t0x3f0: 0x811e, 0x3f5: 0x1d84,\n\t0x3f6: 0x2013, 0x3f7: 0x204f, 0x3f8: 0x204a,\n\t// Block 0x10, offset 0x400\n\t0x413: 0x812d, 0x414: 0x8132, 0x415: 0x8132, 0x416: 0x8132, 0x417: 0x8132,\n\t0x418: 0x8132, 0x419: 0x8132, 0x41a: 0x8132, 0x41b: 0x8132, 0x41c: 0x8132, 0x41d: 0x8132,\n\t0x41e: 0x8132, 0x41f: 0x8132, 0x420: 0x8132, 0x421: 0x8132, 0x423: 0x812d,\n\t0x424: 0x8132, 0x425: 0x8132, 0x426: 0x812d, 0x427: 0x8132, 0x428: 0x8132, 0x429: 0x812d,\n\t0x42a: 0x8132, 0x42b: 0x8132, 0x42c: 0x8132, 0x42d: 0x812d, 0x42e: 0x812d, 0x42f: 0x812d,\n\t0x430: 0x8116, 0x431: 0x8117, 0x432: 0x8118, 0x433: 0x8132, 0x434: 0x8132, 0x435: 0x8132,\n\t0x436: 0x812d, 0x437: 0x8132, 0x438: 0x8132, 0x439: 0x812d, 0x43a: 0x812d, 0x43b: 0x8132,\n\t0x43c: 0x8132, 0x43d: 0x8132, 0x43e: 0x8132, 0x43f: 0x8132,\n\t// Block 0x11, offset 0x440\n\t0x445: 0xa000,\n\t0x446: 0x2d26, 0x447: 0xa000, 0x448: 0x2d2e, 0x449: 0xa000, 0x44a: 0x2d36, 0x44b: 0xa000,\n\t0x44c: 0x2d3e, 0x44d: 0xa000, 0x44e: 0x2d46, 0x451: 0xa000,\n\t0x452: 0x2d4e,\n\t0x474: 0x8102, 0x475: 0x9900,\n\t0x47a: 0xa000, 0x47b: 0x2d56,\n\t0x47c: 0xa000, 0x47d: 0x2d5e, 0x47e: 0xa000, 0x47f: 0xa000,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x0069, 0x481: 0x006b, 0x482: 0x006f, 0x483: 0x0083, 0x484: 0x00f5, 0x485: 0x00f8,\n\t0x486: 0x0413, 0x487: 0x0085, 0x488: 0x0089, 0x489: 0x008b, 0x48a: 0x0104, 0x48b: 0x0107,\n\t0x48c: 0x010a, 0x48d: 0x008f, 0x48f: 0x0097, 0x490: 0x009b, 0x491: 0x00e0,\n\t0x492: 0x009f, 0x493: 0x00fe, 0x494: 0x0417, 0x495: 0x041b, 0x496: 0x00a1, 0x497: 0x00a9,\n\t0x498: 0x00ab, 0x499: 0x0423, 0x49a: 0x012b, 0x49b: 0x00ad, 0x49c: 0x0427, 0x49d: 0x01be,\n\t0x49e: 0x01c1, 0x49f: 0x01c4, 0x4a0: 0x01fa, 0x4a1: 0x01fd, 0x4a2: 0x0093, 0x4a3: 0x00a5,\n\t0x4a4: 0x00ab, 0x4a5: 0x00ad, 0x4a6: 0x01be, 0x4a7: 0x01c1, 0x4a8: 0x01eb, 0x4a9: 0x01fa,\n\t0x4aa: 0x01fd,\n\t0x4b8: 0x020c,\n\t// Block 0x13, offset 0x4c0\n\t0x4db: 0x00fb, 0x4dc: 0x0087, 0x4dd: 0x0101,\n\t0x4de: 0x00d4, 0x4df: 0x010a, 0x4e0: 0x008d, 0x4e1: 0x010d, 0x4e2: 0x0110, 0x4e3: 0x0116,\n\t0x4e4: 0x011c, 0x4e5: 0x011f, 0x4e6: 0x0122, 0x4e7: 0x042b, 0x4e8: 0x016a, 0x4e9: 0x0128,\n\t0x4ea: 0x042f, 0x4eb: 0x016d, 0x4ec: 0x0131, 0x4ed: 0x012e, 0x4ee: 0x0134, 0x4ef: 0x0137,\n\t0x4f0: 0x013a, 0x4f1: 0x013d, 0x4f2: 0x0140, 0x4f3: 0x014c, 0x4f4: 0x014f, 0x4f5: 0x00ec,\n\t0x4f6: 0x0152, 0x4f7: 0x0155, 0x4f8: 0x041f, 0x4f9: 0x0158, 0x4fa: 0x015b, 0x4fb: 0x00b5,\n\t0x4fc: 0x015e, 0x4fd: 0x0161, 0x4fe: 0x0164, 0x4ff: 0x01d0,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x8132, 0x501: 0x8132, 0x502: 0x812d, 0x503: 0x8132, 0x504: 0x8132, 0x505: 0x8132,\n\t0x506: 0x8132, 0x507: 0x8132, 0x508: 0x8132, 0x509: 0x8132, 0x50a: 0x812d, 0x50b: 0x8132,\n\t0x50c: 0x8132, 0x50d: 0x8135, 0x50e: 0x812a, 0x50f: 0x812d, 0x510: 0x8129, 0x511: 0x8132,\n\t0x512: 0x8132, 0x513: 0x8132, 0x514: 0x8132, 0x515: 0x8132, 0x516: 0x8132, 0x517: 0x8132,\n\t0x518: 0x8132, 0x519: 0x8132, 0x51a: 0x8132, 0x51b: 0x8132, 0x51c: 0x8132, 0x51d: 0x8132,\n\t0x51e: 0x8132, 0x51f: 0x8132, 0x520: 0x8132, 0x521: 0x8132, 0x522: 0x8132, 0x523: 0x8132,\n\t0x524: 0x8132, 0x525: 0x8132, 0x526: 0x8132, 0x527: 0x8132, 0x528: 0x8132, 0x529: 0x8132,\n\t0x52a: 0x8132, 0x52b: 0x8132, 0x52c: 0x8132, 0x52d: 0x8132, 0x52e: 0x8132, 0x52f: 0x8132,\n\t0x530: 0x8132, 0x531: 0x8132, 0x532: 0x8132, 0x533: 0x8132, 0x534: 0x8132, 0x535: 0x8132,\n\t0x536: 0x8133, 0x537: 0x8131, 0x538: 0x8131, 0x539: 0x812d, 0x53b: 0x8132,\n\t0x53c: 0x8134, 0x53d: 0x812d, 0x53e: 0x8132, 0x53f: 0x812d,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x2f97, 0x541: 0x32a3, 0x542: 0x2fa1, 0x543: 0x32ad, 0x544: 0x2fa6, 0x545: 0x32b2,\n\t0x546: 0x2fab, 0x547: 0x32b7, 0x548: 0x38cc, 0x549: 0x3a5b, 0x54a: 0x2fc4, 0x54b: 0x32d0,\n\t0x54c: 0x2fce, 0x54d: 0x32da, 0x54e: 0x2fdd, 0x54f: 0x32e9, 0x550: 0x2fd3, 0x551: 0x32df,\n\t0x552: 0x2fd8, 0x553: 0x32e4, 0x554: 0x38ef, 0x555: 0x3a7e, 0x556: 0x38f6, 0x557: 0x3a85,\n\t0x558: 0x3019, 0x559: 0x3325, 0x55a: 0x301e, 0x55b: 0x332a, 0x55c: 0x3904, 0x55d: 0x3a93,\n\t0x55e: 0x3023, 0x55f: 0x332f, 0x560: 0x3032, 0x561: 0x333e, 0x562: 0x3050, 0x563: 0x335c,\n\t0x564: 0x305f, 0x565: 0x336b, 0x566: 0x3055, 0x567: 0x3361, 0x568: 0x3064, 0x569: 0x3370,\n\t0x56a: 0x3069, 0x56b: 0x3375, 0x56c: 0x30af, 0x56d: 0x33bb, 0x56e: 0x390b, 0x56f: 0x3a9a,\n\t0x570: 0x30b9, 0x571: 0x33ca, 0x572: 0x30c3, 0x573: 0x33d4, 0x574: 0x30cd, 0x575: 0x33de,\n\t0x576: 0x46c4, 0x577: 0x4755, 0x578: 0x3912, 0x579: 0x3aa1, 0x57a: 0x30e6, 0x57b: 0x33f7,\n\t0x57c: 0x30e1, 0x57d: 0x33f2, 0x57e: 0x30eb, 0x57f: 0x33fc,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x30f0, 0x581: 0x3401, 0x582: 0x30f5, 0x583: 0x3406, 0x584: 0x3109, 0x585: 0x341a,\n\t0x586: 0x3113, 0x587: 0x3424, 0x588: 0x3122, 0x589: 0x3433, 0x58a: 0x311d, 0x58b: 0x342e,\n\t0x58c: 0x3935, 0x58d: 0x3ac4, 0x58e: 0x3943, 0x58f: 0x3ad2, 0x590: 0x394a, 0x591: 0x3ad9,\n\t0x592: 0x3951, 0x593: 0x3ae0, 0x594: 0x314f, 0x595: 0x3460, 0x596: 0x3154, 0x597: 0x3465,\n\t0x598: 0x315e, 0x599: 0x346f, 0x59a: 0x46f1, 0x59b: 0x4782, 0x59c: 0x3997, 0x59d: 0x3b26,\n\t0x59e: 0x3177, 0x59f: 0x3488, 0x5a0: 0x3181, 0x5a1: 0x3492, 0x5a2: 0x4700, 0x5a3: 0x4791,\n\t0x5a4: 0x399e, 0x5a5: 0x3b2d, 0x5a6: 0x39a5, 0x5a7: 0x3b34, 0x5a8: 0x39ac, 0x5a9: 0x3b3b,\n\t0x5aa: 0x3190, 0x5ab: 0x34a1, 0x5ac: 0x319a, 0x5ad: 0x34b0, 0x5ae: 0x31ae, 0x5af: 0x34c4,\n\t0x5b0: 0x31a9, 0x5b1: 0x34bf, 0x5b2: 0x31ea, 0x5b3: 0x3500, 0x5b4: 0x31f9, 0x5b5: 0x350f,\n\t0x5b6: 0x31f4, 0x5b7: 0x350a, 0x5b8: 0x39b3, 0x5b9: 0x3b42, 0x5ba: 0x39ba, 0x5bb: 0x3b49,\n\t0x5bc: 0x31fe, 0x5bd: 0x3514, 0x5be: 0x3203, 0x5bf: 0x3519,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x3208, 0x5c1: 0x351e, 0x5c2: 0x320d, 0x5c3: 0x3523, 0x5c4: 0x321c, 0x5c5: 0x3532,\n\t0x5c6: 0x3217, 0x5c7: 0x352d, 0x5c8: 0x3221, 0x5c9: 0x353c, 0x5ca: 0x3226, 0x5cb: 0x3541,\n\t0x5cc: 0x322b, 0x5cd: 0x3546, 0x5ce: 0x3249, 0x5cf: 0x3564, 0x5d0: 0x3262, 0x5d1: 0x3582,\n\t0x5d2: 0x3271, 0x5d3: 0x3591, 0x5d4: 0x3276, 0x5d5: 0x3596, 0x5d6: 0x337a, 0x5d7: 0x34a6,\n\t0x5d8: 0x3537, 0x5d9: 0x3573, 0x5da: 0x1be0, 0x5db: 0x42d7,\n\t0x5e0: 0x46a1, 0x5e1: 0x4732, 0x5e2: 0x2f83, 0x5e3: 0x328f,\n\t0x5e4: 0x3878, 0x5e5: 0x3a07, 0x5e6: 0x3871, 0x5e7: 0x3a00, 0x5e8: 0x3886, 0x5e9: 0x3a15,\n\t0x5ea: 0x387f, 0x5eb: 0x3a0e, 0x5ec: 0x38be, 0x5ed: 0x3a4d, 0x5ee: 0x3894, 0x5ef: 0x3a23,\n\t0x5f0: 0x388d, 0x5f1: 0x3a1c, 0x5f2: 0x38a2, 0x5f3: 0x3a31, 0x5f4: 0x389b, 0x5f5: 0x3a2a,\n\t0x5f6: 0x38c5, 0x5f7: 0x3a54, 0x5f8: 0x46b5, 0x5f9: 0x4746, 0x5fa: 0x3000, 0x5fb: 0x330c,\n\t0x5fc: 0x2fec, 0x5fd: 0x32f8, 0x5fe: 0x38da, 0x5ff: 0x3a69,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x38d3, 0x601: 0x3a62, 0x602: 0x38e8, 0x603: 0x3a77, 0x604: 0x38e1, 0x605: 0x3a70,\n\t0x606: 0x38fd, 0x607: 0x3a8c, 0x608: 0x3091, 0x609: 0x339d, 0x60a: 0x30a5, 0x60b: 0x33b1,\n\t0x60c: 0x46e7, 0x60d: 0x4778, 0x60e: 0x3136, 0x60f: 0x3447, 0x610: 0x3920, 0x611: 0x3aaf,\n\t0x612: 0x3919, 0x613: 0x3aa8, 0x614: 0x392e, 0x615: 0x3abd, 0x616: 0x3927, 0x617: 0x3ab6,\n\t0x618: 0x3989, 0x619: 0x3b18, 0x61a: 0x396d, 0x61b: 0x3afc, 0x61c: 0x3966, 0x61d: 0x3af5,\n\t0x61e: 0x397b, 0x61f: 0x3b0a, 0x620: 0x3974, 0x621: 0x3b03, 0x622: 0x3982, 0x623: 0x3b11,\n\t0x624: 0x31e5, 0x625: 0x34fb, 0x626: 0x31c7, 0x627: 0x34dd, 0x628: 0x39e4, 0x629: 0x3b73,\n\t0x62a: 0x39dd, 0x62b: 0x3b6c, 0x62c: 0x39f2, 0x62d: 0x3b81, 0x62e: 0x39eb, 0x62f: 0x3b7a,\n\t0x630: 0x39f9, 0x631: 0x3b88, 0x632: 0x3230, 0x633: 0x354b, 0x634: 0x3258, 0x635: 0x3578,\n\t0x636: 0x3253, 0x637: 0x356e, 0x638: 0x323f, 0x639: 0x355a,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x4804, 0x641: 0x480a, 0x642: 0x491e, 0x643: 0x4936, 0x644: 0x4926, 0x645: 0x493e,\n\t0x646: 0x492e, 0x647: 0x4946, 0x648: 0x47aa, 0x649: 0x47b0, 0x64a: 0x488e, 0x64b: 0x48a6,\n\t0x64c: 0x4896, 0x64d: 0x48ae, 0x64e: 0x489e, 0x64f: 0x48b6, 0x650: 0x4816, 0x651: 0x481c,\n\t0x652: 0x3db8, 0x653: 0x3dc8, 0x654: 0x3dc0, 0x655: 0x3dd0,\n\t0x658: 0x47b6, 0x659: 0x47bc, 0x65a: 0x3ce8, 0x65b: 0x3cf8, 0x65c: 0x3cf0, 0x65d: 0x3d00,\n\t0x660: 0x482e, 0x661: 0x4834, 0x662: 0x494e, 0x663: 0x4966,\n\t0x664: 0x4956, 0x665: 0x496e, 0x666: 0x495e, 0x667: 0x4976, 0x668: 0x47c2, 0x669: 0x47c8,\n\t0x66a: 0x48be, 0x66b: 0x48d6, 0x66c: 0x48c6, 0x66d: 0x48de, 0x66e: 0x48ce, 0x66f: 0x48e6,\n\t0x670: 0x4846, 0x671: 0x484c, 0x672: 0x3e18, 0x673: 0x3e30, 0x674: 0x3e20, 0x675: 0x3e38,\n\t0x676: 0x3e28, 0x677: 0x3e40, 0x678: 0x47ce, 0x679: 0x47d4, 0x67a: 0x3d18, 0x67b: 0x3d30,\n\t0x67c: 0x3d20, 0x67d: 0x3d38, 0x67e: 0x3d28, 0x67f: 0x3d40,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x4852, 0x681: 0x4858, 0x682: 0x3e48, 0x683: 0x3e58, 0x684: 0x3e50, 0x685: 0x3e60,\n\t0x688: 0x47da, 0x689: 0x47e0, 0x68a: 0x3d48, 0x68b: 0x3d58,\n\t0x68c: 0x3d50, 0x68d: 0x3d60, 0x690: 0x4864, 0x691: 0x486a,\n\t0x692: 0x3e80, 0x693: 0x3e98, 0x694: 0x3e88, 0x695: 0x3ea0, 0x696: 0x3e90, 0x697: 0x3ea8,\n\t0x699: 0x47e6, 0x69b: 0x3d68, 0x69d: 0x3d70,\n\t0x69f: 0x3d78, 0x6a0: 0x487c, 0x6a1: 0x4882, 0x6a2: 0x497e, 0x6a3: 0x4996,\n\t0x6a4: 0x4986, 0x6a5: 0x499e, 0x6a6: 0x498e, 0x6a7: 0x49a6, 0x6a8: 0x47ec, 0x6a9: 0x47f2,\n\t0x6aa: 0x48ee, 0x6ab: 0x4906, 0x6ac: 0x48f6, 0x6ad: 0x490e, 0x6ae: 0x48fe, 0x6af: 0x4916,\n\t0x6b0: 0x47f8, 0x6b1: 0x431e, 0x6b2: 0x3691, 0x6b3: 0x4324, 0x6b4: 0x4822, 0x6b5: 0x432a,\n\t0x6b6: 0x36a3, 0x6b7: 0x4330, 0x6b8: 0x36c1, 0x6b9: 0x4336, 0x6ba: 0x36d9, 0x6bb: 0x433c,\n\t0x6bc: 0x4870, 0x6bd: 0x4342,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x3da0, 0x6c1: 0x3da8, 0x6c2: 0x4184, 0x6c3: 0x41a2, 0x6c4: 0x418e, 0x6c5: 0x41ac,\n\t0x6c6: 0x4198, 0x6c7: 0x41b6, 0x6c8: 0x3cd8, 0x6c9: 0x3ce0, 0x6ca: 0x40d0, 0x6cb: 0x40ee,\n\t0x6cc: 0x40da, 0x6cd: 0x40f8, 0x6ce: 0x40e4, 0x6cf: 0x4102, 0x6d0: 0x3de8, 0x6d1: 0x3df0,\n\t0x6d2: 0x41c0, 0x6d3: 0x41de, 0x6d4: 0x41ca, 0x6d5: 0x41e8, 0x6d6: 0x41d4, 0x6d7: 0x41f2,\n\t0x6d8: 0x3d08, 0x6d9: 0x3d10, 0x6da: 0x410c, 0x6db: 0x412a, 0x6dc: 0x4116, 0x6dd: 0x4134,\n\t0x6de: 0x4120, 0x6df: 0x413e, 0x6e0: 0x3ec0, 0x6e1: 0x3ec8, 0x6e2: 0x41fc, 0x6e3: 0x421a,\n\t0x6e4: 0x4206, 0x6e5: 0x4224, 0x6e6: 0x4210, 0x6e7: 0x422e, 0x6e8: 0x3d80, 0x6e9: 0x3d88,\n\t0x6ea: 0x4148, 0x6eb: 0x4166, 0x6ec: 0x4152, 0x6ed: 0x4170, 0x6ee: 0x415c, 0x6ef: 0x417a,\n\t0x6f0: 0x3685, 0x6f1: 0x367f, 0x6f2: 0x3d90, 0x6f3: 0x368b, 0x6f4: 0x3d98,\n\t0x6f6: 0x4810, 0x6f7: 0x3db0, 0x6f8: 0x35f5, 0x6f9: 0x35ef, 0x6fa: 0x35e3, 0x6fb: 0x42ee,\n\t0x6fc: 0x35fb, 0x6fd: 0x4287, 0x6fe: 0x01d3, 0x6ff: 0x4287,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x42a0, 0x701: 0x4482, 0x702: 0x3dd8, 0x703: 0x369d, 0x704: 0x3de0,\n\t0x706: 0x483a, 0x707: 0x3df8, 0x708: 0x3601, 0x709: 0x42f4, 0x70a: 0x360d, 0x70b: 0x42fa,\n\t0x70c: 0x3619, 0x70d: 0x4489, 0x70e: 0x4490, 0x70f: 0x4497, 0x710: 0x36b5, 0x711: 0x36af,\n\t0x712: 0x3e00, 0x713: 0x44e4, 0x716: 0x36bb, 0x717: 0x3e10,\n\t0x718: 0x3631, 0x719: 0x362b, 0x71a: 0x361f, 0x71b: 0x4300, 0x71d: 0x449e,\n\t0x71e: 0x44a5, 0x71f: 0x44ac, 0x720: 0x36eb, 0x721: 0x36e5, 0x722: 0x3e68, 0x723: 0x44ec,\n\t0x724: 0x36cd, 0x725: 0x36d3, 0x726: 0x36f1, 0x727: 0x3e78, 0x728: 0x3661, 0x729: 0x365b,\n\t0x72a: 0x364f, 0x72b: 0x430c, 0x72c: 0x3649, 0x72d: 0x4474, 0x72e: 0x447b, 0x72f: 0x0081,\n\t0x732: 0x3eb0, 0x733: 0x36f7, 0x734: 0x3eb8,\n\t0x736: 0x4888, 0x737: 0x3ed0, 0x738: 0x363d, 0x739: 0x4306, 0x73a: 0x366d, 0x73b: 0x4318,\n\t0x73c: 0x3679, 0x73d: 0x425a, 0x73e: 0x428c,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0x1bd8, 0x741: 0x1bdc, 0x742: 0x0047, 0x743: 0x1c54, 0x745: 0x1be8,\n\t0x746: 0x1bec, 0x747: 0x00e9, 0x749: 0x1c58, 0x74a: 0x008f, 0x74b: 0x0051,\n\t0x74c: 0x0051, 0x74d: 0x0051, 0x74e: 0x0091, 0x74f: 0x00da, 0x750: 0x0053, 0x751: 0x0053,\n\t0x752: 0x0059, 0x753: 0x0099, 0x755: 0x005d, 0x756: 0x198d,\n\t0x759: 0x0061, 0x75a: 0x0063, 0x75b: 0x0065, 0x75c: 0x0065, 0x75d: 0x0065,\n\t0x760: 0x199f, 0x761: 0x1bc8, 0x762: 0x19a8,\n\t0x764: 0x0075, 0x766: 0x01b8, 0x768: 0x0075,\n\t0x76a: 0x0057, 0x76b: 0x42d2, 0x76c: 0x0045, 0x76d: 0x0047, 0x76f: 0x008b,\n\t0x770: 0x004b, 0x771: 0x004d, 0x773: 0x005b, 0x774: 0x009f, 0x775: 0x0215,\n\t0x776: 0x0218, 0x777: 0x021b, 0x778: 0x021e, 0x779: 0x0093, 0x77b: 0x1b98,\n\t0x77c: 0x01e8, 0x77d: 0x01c1, 0x77e: 0x0179, 0x77f: 0x01a0,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0x0463, 0x785: 0x0049,\n\t0x786: 0x0089, 0x787: 0x008b, 0x788: 0x0093, 0x789: 0x0095,\n\t0x790: 0x222e, 0x791: 0x223a,\n\t0x792: 0x22ee, 0x793: 0x2216, 0x794: 0x229a, 0x795: 0x2222, 0x796: 0x22a0, 0x797: 0x22b8,\n\t0x798: 0x22c4, 0x799: 0x2228, 0x79a: 0x22ca, 0x79b: 0x2234, 0x79c: 0x22be, 0x79d: 0x22d0,\n\t0x79e: 0x22d6, 0x79f: 0x1cbc, 0x7a0: 0x0053, 0x7a1: 0x195a, 0x7a2: 0x1ba4, 0x7a3: 0x1963,\n\t0x7a4: 0x006d, 0x7a5: 0x19ab, 0x7a6: 0x1bd0, 0x7a7: 0x1d48, 0x7a8: 0x1966, 0x7a9: 0x0071,\n\t0x7aa: 0x19b7, 0x7ab: 0x1bd4, 0x7ac: 0x0059, 0x7ad: 0x0047, 0x7ae: 0x0049, 0x7af: 0x005b,\n\t0x7b0: 0x0093, 0x7b1: 0x19e4, 0x7b2: 0x1c18, 0x7b3: 0x19ed, 0x7b4: 0x00ad, 0x7b5: 0x1a62,\n\t0x7b6: 0x1c4c, 0x7b7: 0x1d5c, 0x7b8: 0x19f0, 0x7b9: 0x00b1, 0x7ba: 0x1a65, 0x7bb: 0x1c50,\n\t0x7bc: 0x0099, 0x7bd: 0x0087, 0x7be: 0x0089, 0x7bf: 0x009b,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c1: 0x3c06, 0x7c3: 0xa000, 0x7c4: 0x3c0d, 0x7c5: 0xa000,\n\t0x7c7: 0x3c14, 0x7c8: 0xa000, 0x7c9: 0x3c1b,\n\t0x7cd: 0xa000,\n\t0x7e0: 0x2f65, 0x7e1: 0xa000, 0x7e2: 0x3c29,\n\t0x7e4: 0xa000, 0x7e5: 0xa000,\n\t0x7ed: 0x3c22, 0x7ee: 0x2f60, 0x7ef: 0x2f6a,\n\t0x7f0: 0x3c30, 0x7f1: 0x3c37, 0x7f2: 0xa000, 0x7f3: 0xa000, 0x7f4: 0x3c3e, 0x7f5: 0x3c45,\n\t0x7f6: 0xa000, 0x7f7: 0xa000, 0x7f8: 0x3c4c, 0x7f9: 0x3c53, 0x7fa: 0xa000, 0x7fb: 0xa000,\n\t0x7fc: 0xa000, 0x7fd: 0xa000,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x3c5a, 0x801: 0x3c61, 0x802: 0xa000, 0x803: 0xa000, 0x804: 0x3c76, 0x805: 0x3c7d,\n\t0x806: 0xa000, 0x807: 0xa000, 0x808: 0x3c84, 0x809: 0x3c8b,\n\t0x811: 0xa000,\n\t0x812: 0xa000,\n\t0x822: 0xa000,\n\t0x828: 0xa000, 0x829: 0xa000,\n\t0x82b: 0xa000, 0x82c: 0x3ca0, 0x82d: 0x3ca7, 0x82e: 0x3cae, 0x82f: 0x3cb5,\n\t0x832: 0xa000, 0x833: 0xa000, 0x834: 0xa000, 0x835: 0xa000,\n\t// Block 0x21, offset 0x840\n\t0x860: 0x0023, 0x861: 0x0025, 0x862: 0x0027, 0x863: 0x0029,\n\t0x864: 0x002b, 0x865: 0x002d, 0x866: 0x002f, 0x867: 0x0031, 0x868: 0x0033, 0x869: 0x1882,\n\t0x86a: 0x1885, 0x86b: 0x1888, 0x86c: 0x188b, 0x86d: 0x188e, 0x86e: 0x1891, 0x86f: 0x1894,\n\t0x870: 0x1897, 0x871: 0x189a, 0x872: 0x189d, 0x873: 0x18a6, 0x874: 0x1a68, 0x875: 0x1a6c,\n\t0x876: 0x1a70, 0x877: 0x1a74, 0x878: 0x1a78, 0x879: 0x1a7c, 0x87a: 0x1a80, 0x87b: 0x1a84,\n\t0x87c: 0x1a88, 0x87d: 0x1c80, 0x87e: 0x1c85, 0x87f: 0x1c8a,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x1c8f, 0x881: 0x1c94, 0x882: 0x1c99, 0x883: 0x1c9e, 0x884: 0x1ca3, 0x885: 0x1ca8,\n\t0x886: 0x1cad, 0x887: 0x1cb2, 0x888: 0x187f, 0x889: 0x18a3, 0x88a: 0x18c7, 0x88b: 0x18eb,\n\t0x88c: 0x190f, 0x88d: 0x1918, 0x88e: 0x191e, 0x88f: 0x1924, 0x890: 0x192a, 0x891: 0x1b60,\n\t0x892: 0x1b64, 0x893: 0x1b68, 0x894: 0x1b6c, 0x895: 0x1b70, 0x896: 0x1b74, 0x897: 0x1b78,\n\t0x898: 0x1b7c, 0x899: 0x1b80, 0x89a: 0x1b84, 0x89b: 0x1b88, 0x89c: 0x1af4, 0x89d: 0x1af8,\n\t0x89e: 0x1afc, 0x89f: 0x1b00, 0x8a0: 0x1b04, 0x8a1: 0x1b08, 0x8a2: 0x1b0c, 0x8a3: 0x1b10,\n\t0x8a4: 0x1b14, 0x8a5: 0x1b18, 0x8a6: 0x1b1c, 0x8a7: 0x1b20, 0x8a8: 0x1b24, 0x8a9: 0x1b28,\n\t0x8aa: 0x1b2c, 0x8ab: 0x1b30, 0x8ac: 0x1b34, 0x8ad: 0x1b38, 0x8ae: 0x1b3c, 0x8af: 0x1b40,\n\t0x8b0: 0x1b44, 0x8b1: 0x1b48, 0x8b2: 0x1b4c, 0x8b3: 0x1b50, 0x8b4: 0x1b54, 0x8b5: 0x1b58,\n\t0x8b6: 0x0043, 0x8b7: 0x0045, 0x8b8: 0x0047, 0x8b9: 0x0049, 0x8ba: 0x004b, 0x8bb: 0x004d,\n\t0x8bc: 0x004f, 0x8bd: 0x0051, 0x8be: 0x0053, 0x8bf: 0x0055,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x06bf, 0x8c1: 0x06e3, 0x8c2: 0x06ef, 0x8c3: 0x06ff, 0x8c4: 0x0707, 0x8c5: 0x0713,\n\t0x8c6: 0x071b, 0x8c7: 0x0723, 0x8c8: 0x072f, 0x8c9: 0x0783, 0x8ca: 0x079b, 0x8cb: 0x07ab,\n\t0x8cc: 0x07bb, 0x8cd: 0x07cb, 0x8ce: 0x07db, 0x8cf: 0x07fb, 0x8d0: 0x07ff, 0x8d1: 0x0803,\n\t0x8d2: 0x0837, 0x8d3: 0x085f, 0x8d4: 0x086f, 0x8d5: 0x0877, 0x8d6: 0x087b, 0x8d7: 0x0887,\n\t0x8d8: 0x08a3, 0x8d9: 0x08a7, 0x8da: 0x08bf, 0x8db: 0x08c3, 0x8dc: 0x08cb, 0x8dd: 0x08db,\n\t0x8de: 0x0977, 0x8df: 0x098b, 0x8e0: 0x09cb, 0x8e1: 0x09df, 0x8e2: 0x09e7, 0x8e3: 0x09eb,\n\t0x8e4: 0x09fb, 0x8e5: 0x0a17, 0x8e6: 0x0a43, 0x8e7: 0x0a4f, 0x8e8: 0x0a6f, 0x8e9: 0x0a7b,\n\t0x8ea: 0x0a7f, 0x8eb: 0x0a83, 0x8ec: 0x0a9b, 0x8ed: 0x0a9f, 0x8ee: 0x0acb, 0x8ef: 0x0ad7,\n\t0x8f0: 0x0adf, 0x8f1: 0x0ae7, 0x8f2: 0x0af7, 0x8f3: 0x0aff, 0x8f4: 0x0b07, 0x8f5: 0x0b33,\n\t0x8f6: 0x0b37, 0x8f7: 0x0b3f, 0x8f8: 0x0b43, 0x8f9: 0x0b4b, 0x8fa: 0x0b53, 0x8fb: 0x0b63,\n\t0x8fc: 0x0b7f, 0x8fd: 0x0bf7, 0x8fe: 0x0c0b, 0x8ff: 0x0c0f,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x0c8f, 0x901: 0x0c93, 0x902: 0x0ca7, 0x903: 0x0cab, 0x904: 0x0cb3, 0x905: 0x0cbb,\n\t0x906: 0x0cc3, 0x907: 0x0ccf, 0x908: 0x0cf7, 0x909: 0x0d07, 0x90a: 0x0d1b, 0x90b: 0x0d8b,\n\t0x90c: 0x0d97, 0x90d: 0x0da7, 0x90e: 0x0db3, 0x90f: 0x0dbf, 0x910: 0x0dc7, 0x911: 0x0dcb,\n\t0x912: 0x0dcf, 0x913: 0x0dd3, 0x914: 0x0dd7, 0x915: 0x0e8f, 0x916: 0x0ed7, 0x917: 0x0ee3,\n\t0x918: 0x0ee7, 0x919: 0x0eeb, 0x91a: 0x0eef, 0x91b: 0x0ef7, 0x91c: 0x0efb, 0x91d: 0x0f0f,\n\t0x91e: 0x0f2b, 0x91f: 0x0f33, 0x920: 0x0f73, 0x921: 0x0f77, 0x922: 0x0f7f, 0x923: 0x0f83,\n\t0x924: 0x0f8b, 0x925: 0x0f8f, 0x926: 0x0fb3, 0x927: 0x0fb7, 0x928: 0x0fd3, 0x929: 0x0fd7,\n\t0x92a: 0x0fdb, 0x92b: 0x0fdf, 0x92c: 0x0ff3, 0x92d: 0x1017, 0x92e: 0x101b, 0x92f: 0x101f,\n\t0x930: 0x1043, 0x931: 0x1083, 0x932: 0x1087, 0x933: 0x10a7, 0x934: 0x10b7, 0x935: 0x10bf,\n\t0x936: 0x10df, 0x937: 0x1103, 0x938: 0x1147, 0x939: 0x114f, 0x93a: 0x1163, 0x93b: 0x116f,\n\t0x93c: 0x1177, 0x93d: 0x117f, 0x93e: 0x1183, 0x93f: 0x1187,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x119f, 0x941: 0x11a3, 0x942: 0x11bf, 0x943: 0x11c7, 0x944: 0x11cf, 0x945: 0x11d3,\n\t0x946: 0x11df, 0x947: 0x11e7, 0x948: 0x11eb, 0x949: 0x11ef, 0x94a: 0x11f7, 0x94b: 0x11fb,\n\t0x94c: 0x129b, 0x94d: 0x12af, 0x94e: 0x12e3, 0x94f: 0x12e7, 0x950: 0x12ef, 0x951: 0x131b,\n\t0x952: 0x1323, 0x953: 0x132b, 0x954: 0x1333, 0x955: 0x136f, 0x956: 0x1373, 0x957: 0x137b,\n\t0x958: 0x137f, 0x959: 0x1383, 0x95a: 0x13af, 0x95b: 0x13b3, 0x95c: 0x13bb, 0x95d: 0x13cf,\n\t0x95e: 0x13d3, 0x95f: 0x13ef, 0x960: 0x13f7, 0x961: 0x13fb, 0x962: 0x141f, 0x963: 0x143f,\n\t0x964: 0x1453, 0x965: 0x1457, 0x966: 0x145f, 0x967: 0x148b, 0x968: 0x148f, 0x969: 0x149f,\n\t0x96a: 0x14c3, 0x96b: 0x14cf, 0x96c: 0x14df, 0x96d: 0x14f7, 0x96e: 0x14ff, 0x96f: 0x1503,\n\t0x970: 0x1507, 0x971: 0x150b, 0x972: 0x1517, 0x973: 0x151b, 0x974: 0x1523, 0x975: 0x153f,\n\t0x976: 0x1543, 0x977: 0x1547, 0x978: 0x155f, 0x979: 0x1563, 0x97a: 0x156b, 0x97b: 0x157f,\n\t0x97c: 0x1583, 0x97d: 0x1587, 0x97e: 0x158f, 0x97f: 0x1593,\n\t// Block 0x26, offset 0x980\n\t0x986: 0xa000, 0x98b: 0xa000,\n\t0x98c: 0x3f08, 0x98d: 0xa000, 0x98e: 0x3f10, 0x98f: 0xa000, 0x990: 0x3f18, 0x991: 0xa000,\n\t0x992: 0x3f20, 0x993: 0xa000, 0x994: 0x3f28, 0x995: 0xa000, 0x996: 0x3f30, 0x997: 0xa000,\n\t0x998: 0x3f38, 0x999: 0xa000, 0x99a: 0x3f40, 0x99b: 0xa000, 0x99c: 0x3f48, 0x99d: 0xa000,\n\t0x99e: 0x3f50, 0x99f: 0xa000, 0x9a0: 0x3f58, 0x9a1: 0xa000, 0x9a2: 0x3f60,\n\t0x9a4: 0xa000, 0x9a5: 0x3f68, 0x9a6: 0xa000, 0x9a7: 0x3f70, 0x9a8: 0xa000, 0x9a9: 0x3f78,\n\t0x9af: 0xa000,\n\t0x9b0: 0x3f80, 0x9b1: 0x3f88, 0x9b2: 0xa000, 0x9b3: 0x3f90, 0x9b4: 0x3f98, 0x9b5: 0xa000,\n\t0x9b6: 0x3fa0, 0x9b7: 0x3fa8, 0x9b8: 0xa000, 0x9b9: 0x3fb0, 0x9ba: 0x3fb8, 0x9bb: 0xa000,\n\t0x9bc: 0x3fc0, 0x9bd: 0x3fc8,\n\t// Block 0x27, offset 0x9c0\n\t0x9d4: 0x3f00,\n\t0x9d9: 0x9903, 0x9da: 0x9903, 0x9db: 0x42dc, 0x9dc: 0x42e2, 0x9dd: 0xa000,\n\t0x9de: 0x3fd0, 0x9df: 0x26b4,\n\t0x9e6: 0xa000,\n\t0x9eb: 0xa000, 0x9ec: 0x3fe0, 0x9ed: 0xa000, 0x9ee: 0x3fe8, 0x9ef: 0xa000,\n\t0x9f0: 0x3ff0, 0x9f1: 0xa000, 0x9f2: 0x3ff8, 0x9f3: 0xa000, 0x9f4: 0x4000, 0x9f5: 0xa000,\n\t0x9f6: 0x4008, 0x9f7: 0xa000, 0x9f8: 0x4010, 0x9f9: 0xa000, 0x9fa: 0x4018, 0x9fb: 0xa000,\n\t0x9fc: 0x4020, 0x9fd: 0xa000, 0x9fe: 0x4028, 0x9ff: 0xa000,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x4030, 0xa01: 0xa000, 0xa02: 0x4038, 0xa04: 0xa000, 0xa05: 0x4040,\n\t0xa06: 0xa000, 0xa07: 0x4048, 0xa08: 0xa000, 0xa09: 0x4050,\n\t0xa0f: 0xa000, 0xa10: 0x4058, 0xa11: 0x4060,\n\t0xa12: 0xa000, 0xa13: 0x4068, 0xa14: 0x4070, 0xa15: 0xa000, 0xa16: 0x4078, 0xa17: 0x4080,\n\t0xa18: 0xa000, 0xa19: 0x4088, 0xa1a: 0x4090, 0xa1b: 0xa000, 0xa1c: 0x4098, 0xa1d: 0x40a0,\n\t0xa2f: 0xa000,\n\t0xa30: 0xa000, 0xa31: 0xa000, 0xa32: 0xa000, 0xa34: 0x3fd8,\n\t0xa37: 0x40a8, 0xa38: 0x40b0, 0xa39: 0x40b8, 0xa3a: 0x40c0,\n\t0xa3d: 0xa000, 0xa3e: 0x40c8, 0xa3f: 0x26c9,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0x0367, 0xa41: 0x032b, 0xa42: 0x032f, 0xa43: 0x0333, 0xa44: 0x037b, 0xa45: 0x0337,\n\t0xa46: 0x033b, 0xa47: 0x033f, 0xa48: 0x0343, 0xa49: 0x0347, 0xa4a: 0x034b, 0xa4b: 0x034f,\n\t0xa4c: 0x0353, 0xa4d: 0x0357, 0xa4e: 0x035b, 0xa4f: 0x49bd, 0xa50: 0x49c3, 0xa51: 0x49c9,\n\t0xa52: 0x49cf, 0xa53: 0x49d5, 0xa54: 0x49db, 0xa55: 0x49e1, 0xa56: 0x49e7, 0xa57: 0x49ed,\n\t0xa58: 0x49f3, 0xa59: 0x49f9, 0xa5a: 0x49ff, 0xa5b: 0x4a05, 0xa5c: 0x4a0b, 0xa5d: 0x4a11,\n\t0xa5e: 0x4a17, 0xa5f: 0x4a1d, 0xa60: 0x4a23, 0xa61: 0x4a29, 0xa62: 0x4a2f, 0xa63: 0x4a35,\n\t0xa64: 0x03c3, 0xa65: 0x035f, 0xa66: 0x0363, 0xa67: 0x03e7, 0xa68: 0x03eb, 0xa69: 0x03ef,\n\t0xa6a: 0x03f3, 0xa6b: 0x03f7, 0xa6c: 0x03fb, 0xa6d: 0x03ff, 0xa6e: 0x036b, 0xa6f: 0x0403,\n\t0xa70: 0x0407, 0xa71: 0x036f, 0xa72: 0x0373, 0xa73: 0x0377, 0xa74: 0x037f, 0xa75: 0x0383,\n\t0xa76: 0x0387, 0xa77: 0x038b, 0xa78: 0x038f, 0xa79: 0x0393, 0xa7a: 0x0397, 0xa7b: 0x039b,\n\t0xa7c: 0x039f, 0xa7d: 0x03a3, 0xa7e: 0x03a7, 0xa7f: 0x03ab,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0x03af, 0xa81: 0x03b3, 0xa82: 0x040b, 0xa83: 0x040f, 0xa84: 0x03b7, 0xa85: 0x03bb,\n\t0xa86: 0x03bf, 0xa87: 0x03c7, 0xa88: 0x03cb, 0xa89: 0x03cf, 0xa8a: 0x03d3, 0xa8b: 0x03d7,\n\t0xa8c: 0x03db, 0xa8d: 0x03df, 0xa8e: 0x03e3,\n\t0xa92: 0x06bf, 0xa93: 0x071b, 0xa94: 0x06cb, 0xa95: 0x097b, 0xa96: 0x06cf, 0xa97: 0x06e7,\n\t0xa98: 0x06d3, 0xa99: 0x0f93, 0xa9a: 0x0707, 0xa9b: 0x06db, 0xa9c: 0x06c3, 0xa9d: 0x09ff,\n\t0xa9e: 0x098f, 0xa9f: 0x072f,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0x2054, 0xac1: 0x205a, 0xac2: 0x2060, 0xac3: 0x2066, 0xac4: 0x206c, 0xac5: 0x2072,\n\t0xac6: 0x2078, 0xac7: 0x207e, 0xac8: 0x2084, 0xac9: 0x208a, 0xaca: 0x2090, 0xacb: 0x2096,\n\t0xacc: 0x209c, 0xacd: 0x20a2, 0xace: 0x2726, 0xacf: 0x272f, 0xad0: 0x2738, 0xad1: 0x2741,\n\t0xad2: 0x274a, 0xad3: 0x2753, 0xad4: 0x275c, 0xad5: 0x2765, 0xad6: 0x276e, 0xad7: 0x2780,\n\t0xad8: 0x2789, 0xad9: 0x2792, 0xada: 0x279b, 0xadb: 0x27a4, 0xadc: 0x2777, 0xadd: 0x2bac,\n\t0xade: 0x2aed, 0xae0: 0x20a8, 0xae1: 0x20c0, 0xae2: 0x20b4, 0xae3: 0x2108,\n\t0xae4: 0x20c6, 0xae5: 0x20e4, 0xae6: 0x20ae, 0xae7: 0x20de, 0xae8: 0x20ba, 0xae9: 0x20f0,\n\t0xaea: 0x2120, 0xaeb: 0x213e, 0xaec: 0x2138, 0xaed: 0x212c, 0xaee: 0x217a, 0xaef: 0x210e,\n\t0xaf0: 0x211a, 0xaf1: 0x2132, 0xaf2: 0x2126, 0xaf3: 0x2150, 0xaf4: 0x20fc, 0xaf5: 0x2144,\n\t0xaf6: 0x216e, 0xaf7: 0x2156, 0xaf8: 0x20ea, 0xaf9: 0x20cc, 0xafa: 0x2102, 0xafb: 0x2114,\n\t0xafc: 0x214a, 0xafd: 0x20d2, 0xafe: 0x2174, 0xaff: 0x20f6,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0x215c, 0xb01: 0x20d8, 0xb02: 0x2162, 0xb03: 0x2168, 0xb04: 0x092f, 0xb05: 0x0b03,\n\t0xb06: 0x0ca7, 0xb07: 0x10c7,\n\t0xb10: 0x1bc4, 0xb11: 0x18a9,\n\t0xb12: 0x18ac, 0xb13: 0x18af, 0xb14: 0x18b2, 0xb15: 0x18b5, 0xb16: 0x18b8, 0xb17: 0x18bb,\n\t0xb18: 0x18be, 0xb19: 0x18c1, 0xb1a: 0x18ca, 0xb1b: 0x18cd, 0xb1c: 0x18d0, 0xb1d: 0x18d3,\n\t0xb1e: 0x18d6, 0xb1f: 0x18d9, 0xb20: 0x0313, 0xb21: 0x031b, 0xb22: 0x031f, 0xb23: 0x0327,\n\t0xb24: 0x032b, 0xb25: 0x032f, 0xb26: 0x0337, 0xb27: 0x033f, 0xb28: 0x0343, 0xb29: 0x034b,\n\t0xb2a: 0x034f, 0xb2b: 0x0353, 0xb2c: 0x0357, 0xb2d: 0x035b, 0xb2e: 0x2e18, 0xb2f: 0x2e20,\n\t0xb30: 0x2e28, 0xb31: 0x2e30, 0xb32: 0x2e38, 0xb33: 0x2e40, 0xb34: 0x2e48, 0xb35: 0x2e50,\n\t0xb36: 0x2e60, 0xb37: 0x2e68, 0xb38: 0x2e70, 0xb39: 0x2e78, 0xb3a: 0x2e80, 0xb3b: 0x2e88,\n\t0xb3c: 0x2ed3, 0xb3d: 0x2e9b, 0xb3e: 0x2e58,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x06bf, 0xb41: 0x071b, 0xb42: 0x06cb, 0xb43: 0x097b, 0xb44: 0x071f, 0xb45: 0x07af,\n\t0xb46: 0x06c7, 0xb47: 0x07ab, 0xb48: 0x070b, 0xb49: 0x0887, 0xb4a: 0x0d07, 0xb4b: 0x0e8f,\n\t0xb4c: 0x0dd7, 0xb4d: 0x0d1b, 0xb4e: 0x145f, 0xb4f: 0x098b, 0xb50: 0x0ccf, 0xb51: 0x0d4b,\n\t0xb52: 0x0d0b, 0xb53: 0x104b, 0xb54: 0x08fb, 0xb55: 0x0f03, 0xb56: 0x1387, 0xb57: 0x105f,\n\t0xb58: 0x0843, 0xb59: 0x108f, 0xb5a: 0x0f9b, 0xb5b: 0x0a17, 0xb5c: 0x140f, 0xb5d: 0x077f,\n\t0xb5e: 0x08ab, 0xb5f: 0x0df7, 0xb60: 0x1527, 0xb61: 0x0743, 0xb62: 0x07d3, 0xb63: 0x0d9b,\n\t0xb64: 0x06cf, 0xb65: 0x06e7, 0xb66: 0x06d3, 0xb67: 0x0adb, 0xb68: 0x08ef, 0xb69: 0x087f,\n\t0xb6a: 0x0a57, 0xb6b: 0x0a4b, 0xb6c: 0x0feb, 0xb6d: 0x073f, 0xb6e: 0x139b, 0xb6f: 0x089b,\n\t0xb70: 0x09f3, 0xb71: 0x18dc, 0xb72: 0x18df, 0xb73: 0x18e2, 0xb74: 0x18e5, 0xb75: 0x18ee,\n\t0xb76: 0x18f1, 0xb77: 0x18f4, 0xb78: 0x18f7, 0xb79: 0x18fa, 0xb7a: 0x18fd, 0xb7b: 0x1900,\n\t0xb7c: 0x1903, 0xb7d: 0x1906, 0xb7e: 0x1909, 0xb7f: 0x1912,\n\t// Block 0x2e, offset 0xb80\n\t0xb80: 0x1cc6, 0xb81: 0x1cd5, 0xb82: 0x1ce4, 0xb83: 0x1cf3, 0xb84: 0x1d02, 0xb85: 0x1d11,\n\t0xb86: 0x1d20, 0xb87: 0x1d2f, 0xb88: 0x1d3e, 0xb89: 0x218c, 0xb8a: 0x219e, 0xb8b: 0x21b0,\n\t0xb8c: 0x1954, 0xb8d: 0x1c04, 0xb8e: 0x19d2, 0xb8f: 0x1ba8, 0xb90: 0x04cb, 0xb91: 0x04d3,\n\t0xb92: 0x04db, 0xb93: 0x04e3, 0xb94: 0x04eb, 0xb95: 0x04ef, 0xb96: 0x04f3, 0xb97: 0x04f7,\n\t0xb98: 0x04fb, 0xb99: 0x04ff, 0xb9a: 0x0503, 0xb9b: 0x0507, 0xb9c: 0x050b, 0xb9d: 0x050f,\n\t0xb9e: 0x0513, 0xb9f: 0x0517, 0xba0: 0x051b, 0xba1: 0x0523, 0xba2: 0x0527, 0xba3: 0x052b,\n\t0xba4: 0x052f, 0xba5: 0x0533, 0xba6: 0x0537, 0xba7: 0x053b, 0xba8: 0x053f, 0xba9: 0x0543,\n\t0xbaa: 0x0547, 0xbab: 0x054b, 0xbac: 0x054f, 0xbad: 0x0553, 0xbae: 0x0557, 0xbaf: 0x055b,\n\t0xbb0: 0x055f, 0xbb1: 0x0563, 0xbb2: 0x0567, 0xbb3: 0x056f, 0xbb4: 0x0577, 0xbb5: 0x057f,\n\t0xbb6: 0x0583, 0xbb7: 0x0587, 0xbb8: 0x058b, 0xbb9: 0x058f, 0xbba: 0x0593, 0xbbb: 0x0597,\n\t0xbbc: 0x059b, 0xbbd: 0x059f, 0xbbe: 0x05a3,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc0: 0x2b0c, 0xbc1: 0x29a8, 0xbc2: 0x2b1c, 0xbc3: 0x2880, 0xbc4: 0x2ee4, 0xbc5: 0x288a,\n\t0xbc6: 0x2894, 0xbc7: 0x2f28, 0xbc8: 0x29b5, 0xbc9: 0x289e, 0xbca: 0x28a8, 0xbcb: 0x28b2,\n\t0xbcc: 0x29dc, 0xbcd: 0x29e9, 0xbce: 0x29c2, 0xbcf: 0x29cf, 0xbd0: 0x2ea9, 0xbd1: 0x29f6,\n\t0xbd2: 0x2a03, 0xbd3: 0x2bbe, 0xbd4: 0x26bb, 0xbd5: 0x2bd1, 0xbd6: 0x2be4, 0xbd7: 0x2b2c,\n\t0xbd8: 0x2a10, 0xbd9: 0x2bf7, 0xbda: 0x2c0a, 0xbdb: 0x2a1d, 0xbdc: 0x28bc, 0xbdd: 0x28c6,\n\t0xbde: 0x2eb7, 0xbdf: 0x2a2a, 0xbe0: 0x2b3c, 0xbe1: 0x2ef5, 0xbe2: 0x28d0, 0xbe3: 0x28da,\n\t0xbe4: 0x2a37, 0xbe5: 0x28e4, 0xbe6: 0x28ee, 0xbe7: 0x26d0, 0xbe8: 0x26d7, 0xbe9: 0x28f8,\n\t0xbea: 0x2902, 0xbeb: 0x2c1d, 0xbec: 0x2a44, 0xbed: 0x2b4c, 0xbee: 0x2c30, 0xbef: 0x2a51,\n\t0xbf0: 0x2916, 0xbf1: 0x290c, 0xbf2: 0x2f3c, 0xbf3: 0x2a5e, 0xbf4: 0x2c43, 0xbf5: 0x2920,\n\t0xbf6: 0x2b5c, 0xbf7: 0x292a, 0xbf8: 0x2a78, 0xbf9: 0x2934, 0xbfa: 0x2a85, 0xbfb: 0x2f06,\n\t0xbfc: 0x2a6b, 0xbfd: 0x2b6c, 0xbfe: 0x2a92, 0xbff: 0x26de,\n\t// Block 0x30, offset 0xc00\n\t0xc00: 0x2f17, 0xc01: 0x293e, 0xc02: 0x2948, 0xc03: 0x2a9f, 0xc04: 0x2952, 0xc05: 0x295c,\n\t0xc06: 0x2966, 0xc07: 0x2b7c, 0xc08: 0x2aac, 0xc09: 0x26e5, 0xc0a: 0x2c56, 0xc0b: 0x2e90,\n\t0xc0c: 0x2b8c, 0xc0d: 0x2ab9, 0xc0e: 0x2ec5, 0xc0f: 0x2970, 0xc10: 0x297a, 0xc11: 0x2ac6,\n\t0xc12: 0x26ec, 0xc13: 0x2ad3, 0xc14: 0x2b9c, 0xc15: 0x26f3, 0xc16: 0x2c69, 0xc17: 0x2984,\n\t0xc18: 0x1cb7, 0xc19: 0x1ccb, 0xc1a: 0x1cda, 0xc1b: 0x1ce9, 0xc1c: 0x1cf8, 0xc1d: 0x1d07,\n\t0xc1e: 0x1d16, 0xc1f: 0x1d25, 0xc20: 0x1d34, 0xc21: 0x1d43, 0xc22: 0x2192, 0xc23: 0x21a4,\n\t0xc24: 0x21b6, 0xc25: 0x21c2, 0xc26: 0x21ce, 0xc27: 0x21da, 0xc28: 0x21e6, 0xc29: 0x21f2,\n\t0xc2a: 0x21fe, 0xc2b: 0x220a, 0xc2c: 0x2246, 0xc2d: 0x2252, 0xc2e: 0x225e, 0xc2f: 0x226a,\n\t0xc30: 0x2276, 0xc31: 0x1c14, 0xc32: 0x19c6, 0xc33: 0x1936, 0xc34: 0x1be4, 0xc35: 0x1a47,\n\t0xc36: 0x1a56, 0xc37: 0x19cc, 0xc38: 0x1bfc, 0xc39: 0x1c00, 0xc3a: 0x1960, 0xc3b: 0x2701,\n\t0xc3c: 0x270f, 0xc3d: 0x26fa, 0xc3e: 0x2708, 0xc3f: 0x2ae0,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x1a4a, 0xc41: 0x1a32, 0xc42: 0x1c60, 0xc43: 0x1a1a, 0xc44: 0x19f3, 0xc45: 0x1969,\n\t0xc46: 0x1978, 0xc47: 0x1948, 0xc48: 0x1bf0, 0xc49: 0x1d52, 0xc4a: 0x1a4d, 0xc4b: 0x1a35,\n\t0xc4c: 0x1c64, 0xc4d: 0x1c70, 0xc4e: 0x1a26, 0xc4f: 0x19fc, 0xc50: 0x1957, 0xc51: 0x1c1c,\n\t0xc52: 0x1bb0, 0xc53: 0x1b9c, 0xc54: 0x1bcc, 0xc55: 0x1c74, 0xc56: 0x1a29, 0xc57: 0x19c9,\n\t0xc58: 0x19ff, 0xc59: 0x19de, 0xc5a: 0x1a41, 0xc5b: 0x1c78, 0xc5c: 0x1a2c, 0xc5d: 0x19c0,\n\t0xc5e: 0x1a02, 0xc5f: 0x1c3c, 0xc60: 0x1bf4, 0xc61: 0x1a14, 0xc62: 0x1c24, 0xc63: 0x1c40,\n\t0xc64: 0x1bf8, 0xc65: 0x1a17, 0xc66: 0x1c28, 0xc67: 0x22e8, 0xc68: 0x22fc, 0xc69: 0x1996,\n\t0xc6a: 0x1c20, 0xc6b: 0x1bb4, 0xc6c: 0x1ba0, 0xc6d: 0x1c48, 0xc6e: 0x2716, 0xc6f: 0x27ad,\n\t0xc70: 0x1a59, 0xc71: 0x1a44, 0xc72: 0x1c7c, 0xc73: 0x1a2f, 0xc74: 0x1a50, 0xc75: 0x1a38,\n\t0xc76: 0x1c68, 0xc77: 0x1a1d, 0xc78: 0x19f6, 0xc79: 0x1981, 0xc7a: 0x1a53, 0xc7b: 0x1a3b,\n\t0xc7c: 0x1c6c, 0xc7d: 0x1a20, 0xc7e: 0x19f9, 0xc7f: 0x1984,\n\t// Block 0x32, offset 0xc80\n\t0xc80: 0x1c2c, 0xc81: 0x1bb8, 0xc82: 0x1d4d, 0xc83: 0x1939, 0xc84: 0x19ba, 0xc85: 0x19bd,\n\t0xc86: 0x22f5, 0xc87: 0x1b94, 0xc88: 0x19c3, 0xc89: 0x194b, 0xc8a: 0x19e1, 0xc8b: 0x194e,\n\t0xc8c: 0x19ea, 0xc8d: 0x196c, 0xc8e: 0x196f, 0xc8f: 0x1a05, 0xc90: 0x1a0b, 0xc91: 0x1a0e,\n\t0xc92: 0x1c30, 0xc93: 0x1a11, 0xc94: 0x1a23, 0xc95: 0x1c38, 0xc96: 0x1c44, 0xc97: 0x1990,\n\t0xc98: 0x1d57, 0xc99: 0x1bbc, 0xc9a: 0x1993, 0xc9b: 0x1a5c, 0xc9c: 0x19a5, 0xc9d: 0x19b4,\n\t0xc9e: 0x22e2, 0xc9f: 0x22dc, 0xca0: 0x1cc1, 0xca1: 0x1cd0, 0xca2: 0x1cdf, 0xca3: 0x1cee,\n\t0xca4: 0x1cfd, 0xca5: 0x1d0c, 0xca6: 0x1d1b, 0xca7: 0x1d2a, 0xca8: 0x1d39, 0xca9: 0x2186,\n\t0xcaa: 0x2198, 0xcab: 0x21aa, 0xcac: 0x21bc, 0xcad: 0x21c8, 0xcae: 0x21d4, 0xcaf: 0x21e0,\n\t0xcb0: 0x21ec, 0xcb1: 0x21f8, 0xcb2: 0x2204, 0xcb3: 0x2240, 0xcb4: 0x224c, 0xcb5: 0x2258,\n\t0xcb6: 0x2264, 0xcb7: 0x2270, 0xcb8: 0x227c, 0xcb9: 0x2282, 0xcba: 0x2288, 0xcbb: 0x228e,\n\t0xcbc: 0x2294, 0xcbd: 0x22a6, 0xcbe: 0x22ac, 0xcbf: 0x1c10,\n\t// Block 0x33, offset 0xcc0\n\t0xcc0: 0x1377, 0xcc1: 0x0cfb, 0xcc2: 0x13d3, 0xcc3: 0x139f, 0xcc4: 0x0e57, 0xcc5: 0x06eb,\n\t0xcc6: 0x08df, 0xcc7: 0x162b, 0xcc8: 0x162b, 0xcc9: 0x0a0b, 0xcca: 0x145f, 0xccb: 0x0943,\n\t0xccc: 0x0a07, 0xccd: 0x0bef, 0xcce: 0x0fcf, 0xccf: 0x115f, 0xcd0: 0x1297, 0xcd1: 0x12d3,\n\t0xcd2: 0x1307, 0xcd3: 0x141b, 0xcd4: 0x0d73, 0xcd5: 0x0dff, 0xcd6: 0x0eab, 0xcd7: 0x0f43,\n\t0xcd8: 0x125f, 0xcd9: 0x1447, 0xcda: 0x1573, 0xcdb: 0x070f, 0xcdc: 0x08b3, 0xcdd: 0x0d87,\n\t0xcde: 0x0ecf, 0xcdf: 0x1293, 0xce0: 0x15c3, 0xce1: 0x0ab3, 0xce2: 0x0e77, 0xce3: 0x1283,\n\t0xce4: 0x1317, 0xce5: 0x0c23, 0xce6: 0x11bb, 0xce7: 0x12df, 0xce8: 0x0b1f, 0xce9: 0x0d0f,\n\t0xcea: 0x0e17, 0xceb: 0x0f1b, 0xcec: 0x1427, 0xced: 0x074f, 0xcee: 0x07e7, 0xcef: 0x0853,\n\t0xcf0: 0x0c8b, 0xcf1: 0x0d7f, 0xcf2: 0x0ecb, 0xcf3: 0x0fef, 0xcf4: 0x1177, 0xcf5: 0x128b,\n\t0xcf6: 0x12a3, 0xcf7: 0x13c7, 0xcf8: 0x14ef, 0xcf9: 0x15a3, 0xcfa: 0x15bf, 0xcfb: 0x102b,\n\t0xcfc: 0x106b, 0xcfd: 0x1123, 0xcfe: 0x1243, 0xcff: 0x147b,\n\t// Block 0x34, offset 0xd00\n\t0xd00: 0x15cb, 0xd01: 0x134b, 0xd02: 0x09c7, 0xd03: 0x0b3b, 0xd04: 0x10db, 0xd05: 0x119b,\n\t0xd06: 0x0eff, 0xd07: 0x1033, 0xd08: 0x1397, 0xd09: 0x14e7, 0xd0a: 0x09c3, 0xd0b: 0x0a8f,\n\t0xd0c: 0x0d77, 0xd0d: 0x0e2b, 0xd0e: 0x0e5f, 0xd0f: 0x1113, 0xd10: 0x113b, 0xd11: 0x14a7,\n\t0xd12: 0x084f, 0xd13: 0x11a7, 0xd14: 0x07f3, 0xd15: 0x07ef, 0xd16: 0x1097, 0xd17: 0x1127,\n\t0xd18: 0x125b, 0xd19: 0x14af, 0xd1a: 0x1367, 0xd1b: 0x0c27, 0xd1c: 0x0d73, 0xd1d: 0x1357,\n\t0xd1e: 0x06f7, 0xd1f: 0x0a63, 0xd20: 0x0b93, 0xd21: 0x0f2f, 0xd22: 0x0faf, 0xd23: 0x0873,\n\t0xd24: 0x103b, 0xd25: 0x075f, 0xd26: 0x0b77, 0xd27: 0x06d7, 0xd28: 0x0deb, 0xd29: 0x0ca3,\n\t0xd2a: 0x110f, 0xd2b: 0x08c7, 0xd2c: 0x09b3, 0xd2d: 0x0ffb, 0xd2e: 0x1263, 0xd2f: 0x133b,\n\t0xd30: 0x0db7, 0xd31: 0x13f7, 0xd32: 0x0de3, 0xd33: 0x0c37, 0xd34: 0x121b, 0xd35: 0x0c57,\n\t0xd36: 0x0fab, 0xd37: 0x072b, 0xd38: 0x07a7, 0xd39: 0x07eb, 0xd3a: 0x0d53, 0xd3b: 0x10fb,\n\t0xd3c: 0x11f3, 0xd3d: 0x1347, 0xd3e: 0x145b, 0xd3f: 0x085b,\n\t// Block 0x35, offset 0xd40\n\t0xd40: 0x090f, 0xd41: 0x0a17, 0xd42: 0x0b2f, 0xd43: 0x0cbf, 0xd44: 0x0e7b, 0xd45: 0x103f,\n\t0xd46: 0x1497, 0xd47: 0x157b, 0xd48: 0x15cf, 0xd49: 0x15e7, 0xd4a: 0x0837, 0xd4b: 0x0cf3,\n\t0xd4c: 0x0da3, 0xd4d: 0x13eb, 0xd4e: 0x0afb, 0xd4f: 0x0bd7, 0xd50: 0x0bf3, 0xd51: 0x0c83,\n\t0xd52: 0x0e6b, 0xd53: 0x0eb7, 0xd54: 0x0f67, 0xd55: 0x108b, 0xd56: 0x112f, 0xd57: 0x1193,\n\t0xd58: 0x13db, 0xd59: 0x126b, 0xd5a: 0x1403, 0xd5b: 0x147f, 0xd5c: 0x080f, 0xd5d: 0x083b,\n\t0xd5e: 0x0923, 0xd5f: 0x0ea7, 0xd60: 0x12f3, 0xd61: 0x133b, 0xd62: 0x0b1b, 0xd63: 0x0b8b,\n\t0xd64: 0x0c4f, 0xd65: 0x0daf, 0xd66: 0x10d7, 0xd67: 0x0f23, 0xd68: 0x073b, 0xd69: 0x097f,\n\t0xd6a: 0x0a63, 0xd6b: 0x0ac7, 0xd6c: 0x0b97, 0xd6d: 0x0f3f, 0xd6e: 0x0f5b, 0xd6f: 0x116b,\n\t0xd70: 0x118b, 0xd71: 0x1463, 0xd72: 0x14e3, 0xd73: 0x14f3, 0xd74: 0x152f, 0xd75: 0x0753,\n\t0xd76: 0x107f, 0xd77: 0x144f, 0xd78: 0x14cb, 0xd79: 0x0baf, 0xd7a: 0x0717, 0xd7b: 0x0777,\n\t0xd7c: 0x0a67, 0xd7d: 0x0a87, 0xd7e: 0x0caf, 0xd7f: 0x0d73,\n\t// Block 0x36, offset 0xd80\n\t0xd80: 0x0ec3, 0xd81: 0x0fcb, 0xd82: 0x1277, 0xd83: 0x1417, 0xd84: 0x1623, 0xd85: 0x0ce3,\n\t0xd86: 0x14a3, 0xd87: 0x0833, 0xd88: 0x0d2f, 0xd89: 0x0d3b, 0xd8a: 0x0e0f, 0xd8b: 0x0e47,\n\t0xd8c: 0x0f4b, 0xd8d: 0x0fa7, 0xd8e: 0x1027, 0xd8f: 0x110b, 0xd90: 0x153b, 0xd91: 0x07af,\n\t0xd92: 0x0c03, 0xd93: 0x14b3, 0xd94: 0x0767, 0xd95: 0x0aab, 0xd96: 0x0e2f, 0xd97: 0x13df,\n\t0xd98: 0x0b67, 0xd99: 0x0bb7, 0xd9a: 0x0d43, 0xd9b: 0x0f2f, 0xd9c: 0x14bb, 0xd9d: 0x0817,\n\t0xd9e: 0x08ff, 0xd9f: 0x0a97, 0xda0: 0x0cd3, 0xda1: 0x0d1f, 0xda2: 0x0d5f, 0xda3: 0x0df3,\n\t0xda4: 0x0f47, 0xda5: 0x0fbb, 0xda6: 0x1157, 0xda7: 0x12f7, 0xda8: 0x1303, 0xda9: 0x1457,\n\t0xdaa: 0x14d7, 0xdab: 0x0883, 0xdac: 0x0e4b, 0xdad: 0x0903, 0xdae: 0x0ec7, 0xdaf: 0x0f6b,\n\t0xdb0: 0x1287, 0xdb1: 0x14bf, 0xdb2: 0x15ab, 0xdb3: 0x15d3, 0xdb4: 0x0d37, 0xdb5: 0x0e27,\n\t0xdb6: 0x11c3, 0xdb7: 0x10b7, 0xdb8: 0x10c3, 0xdb9: 0x10e7, 0xdba: 0x0f17, 0xdbb: 0x0e9f,\n\t0xdbc: 0x1363, 0xdbd: 0x0733, 0xdbe: 0x122b, 0xdbf: 0x081b,\n\t// Block 0x37, offset 0xdc0\n\t0xdc0: 0x080b, 0xdc1: 0x0b0b, 0xdc2: 0x0c2b, 0xdc3: 0x10f3, 0xdc4: 0x0a53, 0xdc5: 0x0e03,\n\t0xdc6: 0x0cef, 0xdc7: 0x13e7, 0xdc8: 0x12e7, 0xdc9: 0x14ab, 0xdca: 0x1323, 0xdcb: 0x0b27,\n\t0xdcc: 0x0787, 0xdcd: 0x095b, 0xdd0: 0x09af,\n\t0xdd2: 0x0cdf, 0xdd5: 0x07f7, 0xdd6: 0x0f1f, 0xdd7: 0x0fe3,\n\t0xdd8: 0x1047, 0xdd9: 0x1063, 0xdda: 0x1067, 0xddb: 0x107b, 0xddc: 0x14fb, 0xddd: 0x10eb,\n\t0xdde: 0x116f, 0xde0: 0x128f, 0xde2: 0x1353,\n\t0xde5: 0x1407, 0xde6: 0x1433,\n\t0xdea: 0x154f, 0xdeb: 0x1553, 0xdec: 0x1557, 0xded: 0x15bb, 0xdee: 0x142b, 0xdef: 0x14c7,\n\t0xdf0: 0x0757, 0xdf1: 0x077b, 0xdf2: 0x078f, 0xdf3: 0x084b, 0xdf4: 0x0857, 0xdf5: 0x0897,\n\t0xdf6: 0x094b, 0xdf7: 0x0967, 0xdf8: 0x096f, 0xdf9: 0x09ab, 0xdfa: 0x09b7, 0xdfb: 0x0a93,\n\t0xdfc: 0x0a9b, 0xdfd: 0x0ba3, 0xdfe: 0x0bcb, 0xdff: 0x0bd3,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0x0beb, 0xe01: 0x0c97, 0xe02: 0x0cc7, 0xe03: 0x0ce7, 0xe04: 0x0d57, 0xe05: 0x0e1b,\n\t0xe06: 0x0e37, 0xe07: 0x0e67, 0xe08: 0x0ebb, 0xe09: 0x0edb, 0xe0a: 0x0f4f, 0xe0b: 0x102f,\n\t0xe0c: 0x104b, 0xe0d: 0x1053, 0xe0e: 0x104f, 0xe0f: 0x1057, 0xe10: 0x105b, 0xe11: 0x105f,\n\t0xe12: 0x1073, 0xe13: 0x1077, 0xe14: 0x109b, 0xe15: 0x10af, 0xe16: 0x10cb, 0xe17: 0x112f,\n\t0xe18: 0x1137, 0xe19: 0x113f, 0xe1a: 0x1153, 0xe1b: 0x117b, 0xe1c: 0x11cb, 0xe1d: 0x11ff,\n\t0xe1e: 0x11ff, 0xe1f: 0x1267, 0xe20: 0x130f, 0xe21: 0x1327, 0xe22: 0x135b, 0xe23: 0x135f,\n\t0xe24: 0x13a3, 0xe25: 0x13a7, 0xe26: 0x13ff, 0xe27: 0x1407, 0xe28: 0x14db, 0xe29: 0x151f,\n\t0xe2a: 0x1537, 0xe2b: 0x0b9b, 0xe2c: 0x171e, 0xe2d: 0x11e3,\n\t0xe30: 0x06df, 0xe31: 0x07e3, 0xe32: 0x07a3, 0xe33: 0x074b, 0xe34: 0x078b, 0xe35: 0x07b7,\n\t0xe36: 0x0847, 0xe37: 0x0863, 0xe38: 0x094b, 0xe39: 0x0937, 0xe3a: 0x0947, 0xe3b: 0x0963,\n\t0xe3c: 0x09af, 0xe3d: 0x09bf, 0xe3e: 0x0a03, 0xe3f: 0x0a0f,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x0a2b, 0xe41: 0x0a3b, 0xe42: 0x0b23, 0xe43: 0x0b2b, 0xe44: 0x0b5b, 0xe45: 0x0b7b,\n\t0xe46: 0x0bab, 0xe47: 0x0bc3, 0xe48: 0x0bb3, 0xe49: 0x0bd3, 0xe4a: 0x0bc7, 0xe4b: 0x0beb,\n\t0xe4c: 0x0c07, 0xe4d: 0x0c5f, 0xe4e: 0x0c6b, 0xe4f: 0x0c73, 0xe50: 0x0c9b, 0xe51: 0x0cdf,\n\t0xe52: 0x0d0f, 0xe53: 0x0d13, 0xe54: 0x0d27, 0xe55: 0x0da7, 0xe56: 0x0db7, 0xe57: 0x0e0f,\n\t0xe58: 0x0e5b, 0xe59: 0x0e53, 0xe5a: 0x0e67, 0xe5b: 0x0e83, 0xe5c: 0x0ebb, 0xe5d: 0x1013,\n\t0xe5e: 0x0edf, 0xe5f: 0x0f13, 0xe60: 0x0f1f, 0xe61: 0x0f5f, 0xe62: 0x0f7b, 0xe63: 0x0f9f,\n\t0xe64: 0x0fc3, 0xe65: 0x0fc7, 0xe66: 0x0fe3, 0xe67: 0x0fe7, 0xe68: 0x0ff7, 0xe69: 0x100b,\n\t0xe6a: 0x1007, 0xe6b: 0x1037, 0xe6c: 0x10b3, 0xe6d: 0x10cb, 0xe6e: 0x10e3, 0xe6f: 0x111b,\n\t0xe70: 0x112f, 0xe71: 0x114b, 0xe72: 0x117b, 0xe73: 0x122f, 0xe74: 0x1257, 0xe75: 0x12cb,\n\t0xe76: 0x1313, 0xe77: 0x131f, 0xe78: 0x1327, 0xe79: 0x133f, 0xe7a: 0x1353, 0xe7b: 0x1343,\n\t0xe7c: 0x135b, 0xe7d: 0x1357, 0xe7e: 0x134f, 0xe7f: 0x135f,\n\t// Block 0x3a, offset 0xe80\n\t0xe80: 0x136b, 0xe81: 0x13a7, 0xe82: 0x13e3, 0xe83: 0x1413, 0xe84: 0x144b, 0xe85: 0x146b,\n\t0xe86: 0x14b7, 0xe87: 0x14db, 0xe88: 0x14fb, 0xe89: 0x150f, 0xe8a: 0x151f, 0xe8b: 0x152b,\n\t0xe8c: 0x1537, 0xe8d: 0x158b, 0xe8e: 0x162b, 0xe8f: 0x16b5, 0xe90: 0x16b0, 0xe91: 0x16e2,\n\t0xe92: 0x0607, 0xe93: 0x062f, 0xe94: 0x0633, 0xe95: 0x1764, 0xe96: 0x1791, 0xe97: 0x1809,\n\t0xe98: 0x1617, 0xe99: 0x1627,\n\t// Block 0x3b, offset 0xec0\n\t0xec0: 0x19d5, 0xec1: 0x19d8, 0xec2: 0x19db, 0xec3: 0x1c08, 0xec4: 0x1c0c, 0xec5: 0x1a5f,\n\t0xec6: 0x1a5f,\n\t0xed3: 0x1d75, 0xed4: 0x1d66, 0xed5: 0x1d6b, 0xed6: 0x1d7a, 0xed7: 0x1d70,\n\t0xedd: 0x4390,\n\t0xede: 0x8115, 0xedf: 0x4402, 0xee0: 0x022d, 0xee1: 0x0215, 0xee2: 0x021e, 0xee3: 0x0221,\n\t0xee4: 0x0224, 0xee5: 0x0227, 0xee6: 0x022a, 0xee7: 0x0230, 0xee8: 0x0233, 0xee9: 0x0017,\n\t0xeea: 0x43f0, 0xeeb: 0x43f6, 0xeec: 0x44f4, 0xeed: 0x44fc, 0xeee: 0x4348, 0xeef: 0x434e,\n\t0xef0: 0x4354, 0xef1: 0x435a, 0xef2: 0x4366, 0xef3: 0x436c, 0xef4: 0x4372, 0xef5: 0x437e,\n\t0xef6: 0x4384, 0xef8: 0x438a, 0xef9: 0x4396, 0xefa: 0x439c, 0xefb: 0x43a2,\n\t0xefc: 0x43ae, 0xefe: 0x43b4,\n\t// Block 0x3c, offset 0xf00\n\t0xf00: 0x43ba, 0xf01: 0x43c0, 0xf03: 0x43c6, 0xf04: 0x43cc,\n\t0xf06: 0x43d8, 0xf07: 0x43de, 0xf08: 0x43e4, 0xf09: 0x43ea, 0xf0a: 0x43fc, 0xf0b: 0x4378,\n\t0xf0c: 0x4360, 0xf0d: 0x43a8, 0xf0e: 0x43d2, 0xf0f: 0x1d7f, 0xf10: 0x0299, 0xf11: 0x0299,\n\t0xf12: 0x02a2, 0xf13: 0x02a2, 0xf14: 0x02a2, 0xf15: 0x02a2, 0xf16: 0x02a5, 0xf17: 0x02a5,\n\t0xf18: 0x02a5, 0xf19: 0x02a5, 0xf1a: 0x02ab, 0xf1b: 0x02ab, 0xf1c: 0x02ab, 0xf1d: 0x02ab,\n\t0xf1e: 0x029f, 0xf1f: 0x029f, 0xf20: 0x029f, 0xf21: 0x029f, 0xf22: 0x02a8, 0xf23: 0x02a8,\n\t0xf24: 0x02a8, 0xf25: 0x02a8, 0xf26: 0x029c, 0xf27: 0x029c, 0xf28: 0x029c, 0xf29: 0x029c,\n\t0xf2a: 0x02cf, 0xf2b: 0x02cf, 0xf2c: 0x02cf, 0xf2d: 0x02cf, 0xf2e: 0x02d2, 0xf2f: 0x02d2,\n\t0xf30: 0x02d2, 0xf31: 0x02d2, 0xf32: 0x02b1, 0xf33: 0x02b1, 0xf34: 0x02b1, 0xf35: 0x02b1,\n\t0xf36: 0x02ae, 0xf37: 0x02ae, 0xf38: 0x02ae, 0xf39: 0x02ae, 0xf3a: 0x02b4, 0xf3b: 0x02b4,\n\t0xf3c: 0x02b4, 0xf3d: 0x02b4, 0xf3e: 0x02b7, 0xf3f: 0x02b7,\n\t// Block 0x3d, offset 0xf40\n\t0xf40: 0x02b7, 0xf41: 0x02b7, 0xf42: 0x02c0, 0xf43: 0x02c0, 0xf44: 0x02bd, 0xf45: 0x02bd,\n\t0xf46: 0x02c3, 0xf47: 0x02c3, 0xf48: 0x02ba, 0xf49: 0x02ba, 0xf4a: 0x02c9, 0xf4b: 0x02c9,\n\t0xf4c: 0x02c6, 0xf4d: 0x02c6, 0xf4e: 0x02d5, 0xf4f: 0x02d5, 0xf50: 0x02d5, 0xf51: 0x02d5,\n\t0xf52: 0x02db, 0xf53: 0x02db, 0xf54: 0x02db, 0xf55: 0x02db, 0xf56: 0x02e1, 0xf57: 0x02e1,\n\t0xf58: 0x02e1, 0xf59: 0x02e1, 0xf5a: 0x02de, 0xf5b: 0x02de, 0xf5c: 0x02de, 0xf5d: 0x02de,\n\t0xf5e: 0x02e4, 0xf5f: 0x02e4, 0xf60: 0x02e7, 0xf61: 0x02e7, 0xf62: 0x02e7, 0xf63: 0x02e7,\n\t0xf64: 0x446e, 0xf65: 0x446e, 0xf66: 0x02ed, 0xf67: 0x02ed, 0xf68: 0x02ed, 0xf69: 0x02ed,\n\t0xf6a: 0x02ea, 0xf6b: 0x02ea, 0xf6c: 0x02ea, 0xf6d: 0x02ea, 0xf6e: 0x0308, 0xf6f: 0x0308,\n\t0xf70: 0x4468, 0xf71: 0x4468,\n\t// Block 0x3e, offset 0xf80\n\t0xf93: 0x02d8, 0xf94: 0x02d8, 0xf95: 0x02d8, 0xf96: 0x02d8, 0xf97: 0x02f6,\n\t0xf98: 0x02f6, 0xf99: 0x02f3, 0xf9a: 0x02f3, 0xf9b: 0x02f9, 0xf9c: 0x02f9, 0xf9d: 0x204f,\n\t0xf9e: 0x02ff, 0xf9f: 0x02ff, 0xfa0: 0x02f0, 0xfa1: 0x02f0, 0xfa2: 0x02fc, 0xfa3: 0x02fc,\n\t0xfa4: 0x0305, 0xfa5: 0x0305, 0xfa6: 0x0305, 0xfa7: 0x0305, 0xfa8: 0x028d, 0xfa9: 0x028d,\n\t0xfaa: 0x25aa, 0xfab: 0x25aa, 0xfac: 0x261a, 0xfad: 0x261a, 0xfae: 0x25e9, 0xfaf: 0x25e9,\n\t0xfb0: 0x2605, 0xfb1: 0x2605, 0xfb2: 0x25fe, 0xfb3: 0x25fe, 0xfb4: 0x260c, 0xfb5: 0x260c,\n\t0xfb6: 0x2613, 0xfb7: 0x2613, 0xfb8: 0x2613, 0xfb9: 0x25f0, 0xfba: 0x25f0, 0xfbb: 0x25f0,\n\t0xfbc: 0x0302, 0xfbd: 0x0302, 0xfbe: 0x0302, 0xfbf: 0x0302,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc0: 0x25b1, 0xfc1: 0x25b8, 0xfc2: 0x25d4, 0xfc3: 0x25f0, 0xfc4: 0x25f7, 0xfc5: 0x1d89,\n\t0xfc6: 0x1d8e, 0xfc7: 0x1d93, 0xfc8: 0x1da2, 0xfc9: 0x1db1, 0xfca: 0x1db6, 0xfcb: 0x1dbb,\n\t0xfcc: 0x1dc0, 0xfcd: 0x1dc5, 0xfce: 0x1dd4, 0xfcf: 0x1de3, 0xfd0: 0x1de8, 0xfd1: 0x1ded,\n\t0xfd2: 0x1dfc, 0xfd3: 0x1e0b, 0xfd4: 0x1e10, 0xfd5: 0x1e15, 0xfd6: 0x1e1a, 0xfd7: 0x1e29,\n\t0xfd8: 0x1e2e, 0xfd9: 0x1e3d, 0xfda: 0x1e42, 0xfdb: 0x1e47, 0xfdc: 0x1e56, 0xfdd: 0x1e5b,\n\t0xfde: 0x1e60, 0xfdf: 0x1e6a, 0xfe0: 0x1ea6, 0xfe1: 0x1eb5, 0xfe2: 0x1ec4, 0xfe3: 0x1ec9,\n\t0xfe4: 0x1ece, 0xfe5: 0x1ed8, 0xfe6: 0x1ee7, 0xfe7: 0x1eec, 0xfe8: 0x1efb, 0xfe9: 0x1f00,\n\t0xfea: 0x1f05, 0xfeb: 0x1f14, 0xfec: 0x1f19, 0xfed: 0x1f28, 0xfee: 0x1f2d, 0xfef: 0x1f32,\n\t0xff0: 0x1f37, 0xff1: 0x1f3c, 0xff2: 0x1f41, 0xff3: 0x1f46, 0xff4: 0x1f4b, 0xff5: 0x1f50,\n\t0xff6: 0x1f55, 0xff7: 0x1f5a, 0xff8: 0x1f5f, 0xff9: 0x1f64, 0xffa: 0x1f69, 0xffb: 0x1f6e,\n\t0xffc: 0x1f73, 0xffd: 0x1f78, 0xffe: 0x1f7d, 0xfff: 0x1f87,\n\t// Block 0x40, offset 0x1000\n\t0x1000: 0x1f8c, 0x1001: 0x1f91, 0x1002: 0x1f96, 0x1003: 0x1fa0, 0x1004: 0x1fa5, 0x1005: 0x1faf,\n\t0x1006: 0x1fb4, 0x1007: 0x1fb9, 0x1008: 0x1fbe, 0x1009: 0x1fc3, 0x100a: 0x1fc8, 0x100b: 0x1fcd,\n\t0x100c: 0x1fd2, 0x100d: 0x1fd7, 0x100e: 0x1fe6, 0x100f: 0x1ff5, 0x1010: 0x1ffa, 0x1011: 0x1fff,\n\t0x1012: 0x2004, 0x1013: 0x2009, 0x1014: 0x200e, 0x1015: 0x2018, 0x1016: 0x201d, 0x1017: 0x2022,\n\t0x1018: 0x2031, 0x1019: 0x2040, 0x101a: 0x2045, 0x101b: 0x4420, 0x101c: 0x4426, 0x101d: 0x445c,\n\t0x101e: 0x44b3, 0x101f: 0x44ba, 0x1020: 0x44c1, 0x1021: 0x44c8, 0x1022: 0x44cf, 0x1023: 0x44d6,\n\t0x1024: 0x25c6, 0x1025: 0x25cd, 0x1026: 0x25d4, 0x1027: 0x25db, 0x1028: 0x25f0, 0x1029: 0x25f7,\n\t0x102a: 0x1d98, 0x102b: 0x1d9d, 0x102c: 0x1da2, 0x102d: 0x1da7, 0x102e: 0x1db1, 0x102f: 0x1db6,\n\t0x1030: 0x1dca, 0x1031: 0x1dcf, 0x1032: 0x1dd4, 0x1033: 0x1dd9, 0x1034: 0x1de3, 0x1035: 0x1de8,\n\t0x1036: 0x1df2, 0x1037: 0x1df7, 0x1038: 0x1dfc, 0x1039: 0x1e01, 0x103a: 0x1e0b, 0x103b: 0x1e10,\n\t0x103c: 0x1f3c, 0x103d: 0x1f41, 0x103e: 0x1f50, 0x103f: 0x1f55,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x1f5a, 0x1041: 0x1f6e, 0x1042: 0x1f73, 0x1043: 0x1f78, 0x1044: 0x1f7d, 0x1045: 0x1f96,\n\t0x1046: 0x1fa0, 0x1047: 0x1fa5, 0x1048: 0x1faa, 0x1049: 0x1fbe, 0x104a: 0x1fdc, 0x104b: 0x1fe1,\n\t0x104c: 0x1fe6, 0x104d: 0x1feb, 0x104e: 0x1ff5, 0x104f: 0x1ffa, 0x1050: 0x445c, 0x1051: 0x2027,\n\t0x1052: 0x202c, 0x1053: 0x2031, 0x1054: 0x2036, 0x1055: 0x2040, 0x1056: 0x2045, 0x1057: 0x25b1,\n\t0x1058: 0x25b8, 0x1059: 0x25bf, 0x105a: 0x25d4, 0x105b: 0x25e2, 0x105c: 0x1d89, 0x105d: 0x1d8e,\n\t0x105e: 0x1d93, 0x105f: 0x1da2, 0x1060: 0x1dac, 0x1061: 0x1dbb, 0x1062: 0x1dc0, 0x1063: 0x1dc5,\n\t0x1064: 0x1dd4, 0x1065: 0x1dde, 0x1066: 0x1dfc, 0x1067: 0x1e15, 0x1068: 0x1e1a, 0x1069: 0x1e29,\n\t0x106a: 0x1e2e, 0x106b: 0x1e3d, 0x106c: 0x1e47, 0x106d: 0x1e56, 0x106e: 0x1e5b, 0x106f: 0x1e60,\n\t0x1070: 0x1e6a, 0x1071: 0x1ea6, 0x1072: 0x1eab, 0x1073: 0x1eb5, 0x1074: 0x1ec4, 0x1075: 0x1ec9,\n\t0x1076: 0x1ece, 0x1077: 0x1ed8, 0x1078: 0x1ee7, 0x1079: 0x1efb, 0x107a: 0x1f00, 0x107b: 0x1f05,\n\t0x107c: 0x1f14, 0x107d: 0x1f19, 0x107e: 0x1f28, 0x107f: 0x1f2d,\n\t// Block 0x42, offset 0x1080\n\t0x1080: 0x1f32, 0x1081: 0x1f37, 0x1082: 0x1f46, 0x1083: 0x1f4b, 0x1084: 0x1f5f, 0x1085: 0x1f64,\n\t0x1086: 0x1f69, 0x1087: 0x1f6e, 0x1088: 0x1f73, 0x1089: 0x1f87, 0x108a: 0x1f8c, 0x108b: 0x1f91,\n\t0x108c: 0x1f96, 0x108d: 0x1f9b, 0x108e: 0x1faf, 0x108f: 0x1fb4, 0x1090: 0x1fb9, 0x1091: 0x1fbe,\n\t0x1092: 0x1fcd, 0x1093: 0x1fd2, 0x1094: 0x1fd7, 0x1095: 0x1fe6, 0x1096: 0x1ff0, 0x1097: 0x1fff,\n\t0x1098: 0x2004, 0x1099: 0x4450, 0x109a: 0x2018, 0x109b: 0x201d, 0x109c: 0x2022, 0x109d: 0x2031,\n\t0x109e: 0x203b, 0x109f: 0x25d4, 0x10a0: 0x25e2, 0x10a1: 0x1da2, 0x10a2: 0x1dac, 0x10a3: 0x1dd4,\n\t0x10a4: 0x1dde, 0x10a5: 0x1dfc, 0x10a6: 0x1e06, 0x10a7: 0x1e6a, 0x10a8: 0x1e6f, 0x10a9: 0x1e92,\n\t0x10aa: 0x1e97, 0x10ab: 0x1f6e, 0x10ac: 0x1f73, 0x10ad: 0x1f96, 0x10ae: 0x1fe6, 0x10af: 0x1ff0,\n\t0x10b0: 0x2031, 0x10b1: 0x203b, 0x10b2: 0x4504, 0x10b3: 0x450c, 0x10b4: 0x4514, 0x10b5: 0x1ef1,\n\t0x10b6: 0x1ef6, 0x10b7: 0x1f0a, 0x10b8: 0x1f0f, 0x10b9: 0x1f1e, 0x10ba: 0x1f23, 0x10bb: 0x1e74,\n\t0x10bc: 0x1e79, 0x10bd: 0x1e9c, 0x10be: 0x1ea1, 0x10bf: 0x1e33,\n\t// Block 0x43, offset 0x10c0\n\t0x10c0: 0x1e38, 0x10c1: 0x1e1f, 0x10c2: 0x1e24, 0x10c3: 0x1e4c, 0x10c4: 0x1e51, 0x10c5: 0x1eba,\n\t0x10c6: 0x1ebf, 0x10c7: 0x1edd, 0x10c8: 0x1ee2, 0x10c9: 0x1e7e, 0x10ca: 0x1e83, 0x10cb: 0x1e88,\n\t0x10cc: 0x1e92, 0x10cd: 0x1e8d, 0x10ce: 0x1e65, 0x10cf: 0x1eb0, 0x10d0: 0x1ed3, 0x10d1: 0x1ef1,\n\t0x10d2: 0x1ef6, 0x10d3: 0x1f0a, 0x10d4: 0x1f0f, 0x10d5: 0x1f1e, 0x10d6: 0x1f23, 0x10d7: 0x1e74,\n\t0x10d8: 0x1e79, 0x10d9: 0x1e9c, 0x10da: 0x1ea1, 0x10db: 0x1e33, 0x10dc: 0x1e38, 0x10dd: 0x1e1f,\n\t0x10de: 0x1e24, 0x10df: 0x1e4c, 0x10e0: 0x1e51, 0x10e1: 0x1eba, 0x10e2: 0x1ebf, 0x10e3: 0x1edd,\n\t0x10e4: 0x1ee2, 0x10e5: 0x1e7e, 0x10e6: 0x1e83, 0x10e7: 0x1e88, 0x10e8: 0x1e92, 0x10e9: 0x1e8d,\n\t0x10ea: 0x1e65, 0x10eb: 0x1eb0, 0x10ec: 0x1ed3, 0x10ed: 0x1e7e, 0x10ee: 0x1e83, 0x10ef: 0x1e88,\n\t0x10f0: 0x1e92, 0x10f1: 0x1e6f, 0x10f2: 0x1e97, 0x10f3: 0x1eec, 0x10f4: 0x1e56, 0x10f5: 0x1e5b,\n\t0x10f6: 0x1e60, 0x10f7: 0x1e7e, 0x10f8: 0x1e83, 0x10f9: 0x1e88, 0x10fa: 0x1eec, 0x10fb: 0x1efb,\n\t0x10fc: 0x4408, 0x10fd: 0x4408,\n\t// Block 0x44, offset 0x1100\n\t0x1110: 0x2311, 0x1111: 0x2326,\n\t0x1112: 0x2326, 0x1113: 0x232d, 0x1114: 0x2334, 0x1115: 0x2349, 0x1116: 0x2350, 0x1117: 0x2357,\n\t0x1118: 0x237a, 0x1119: 0x237a, 0x111a: 0x239d, 0x111b: 0x2396, 0x111c: 0x23b2, 0x111d: 0x23a4,\n\t0x111e: 0x23ab, 0x111f: 0x23ce, 0x1120: 0x23ce, 0x1121: 0x23c7, 0x1122: 0x23d5, 0x1123: 0x23d5,\n\t0x1124: 0x23ff, 0x1125: 0x23ff, 0x1126: 0x241b, 0x1127: 0x23e3, 0x1128: 0x23e3, 0x1129: 0x23dc,\n\t0x112a: 0x23f1, 0x112b: 0x23f1, 0x112c: 0x23f8, 0x112d: 0x23f8, 0x112e: 0x2422, 0x112f: 0x2430,\n\t0x1130: 0x2430, 0x1131: 0x2437, 0x1132: 0x2437, 0x1133: 0x243e, 0x1134: 0x2445, 0x1135: 0x244c,\n\t0x1136: 0x2453, 0x1137: 0x2453, 0x1138: 0x245a, 0x1139: 0x2468, 0x113a: 0x2476, 0x113b: 0x246f,\n\t0x113c: 0x247d, 0x113d: 0x247d, 0x113e: 0x2492, 0x113f: 0x2499,\n\t// Block 0x45, offset 0x1140\n\t0x1140: 0x24ca, 0x1141: 0x24d8, 0x1142: 0x24d1, 0x1143: 0x24b5, 0x1144: 0x24b5, 0x1145: 0x24df,\n\t0x1146: 0x24df, 0x1147: 0x24e6, 0x1148: 0x24e6, 0x1149: 0x2510, 0x114a: 0x2517, 0x114b: 0x251e,\n\t0x114c: 0x24f4, 0x114d: 0x2502, 0x114e: 0x2525, 0x114f: 0x252c,\n\t0x1152: 0x24fb, 0x1153: 0x2580, 0x1154: 0x2587, 0x1155: 0x255d, 0x1156: 0x2564, 0x1157: 0x2548,\n\t0x1158: 0x2548, 0x1159: 0x254f, 0x115a: 0x2579, 0x115b: 0x2572, 0x115c: 0x259c, 0x115d: 0x259c,\n\t0x115e: 0x230a, 0x115f: 0x231f, 0x1160: 0x2318, 0x1161: 0x2342, 0x1162: 0x233b, 0x1163: 0x2365,\n\t0x1164: 0x235e, 0x1165: 0x2388, 0x1166: 0x236c, 0x1167: 0x2381, 0x1168: 0x23b9, 0x1169: 0x2406,\n\t0x116a: 0x23ea, 0x116b: 0x2429, 0x116c: 0x24c3, 0x116d: 0x24ed, 0x116e: 0x2595, 0x116f: 0x258e,\n\t0x1170: 0x25a3, 0x1171: 0x253a, 0x1172: 0x24a0, 0x1173: 0x256b, 0x1174: 0x2492, 0x1175: 0x24ca,\n\t0x1176: 0x2461, 0x1177: 0x24ae, 0x1178: 0x2541, 0x1179: 0x2533, 0x117a: 0x24bc, 0x117b: 0x24a7,\n\t0x117c: 0x24bc, 0x117d: 0x2541, 0x117e: 0x2373, 0x117f: 0x238f,\n\t// Block 0x46, offset 0x1180\n\t0x1180: 0x2509, 0x1181: 0x2484, 0x1182: 0x2303, 0x1183: 0x24a7, 0x1184: 0x244c, 0x1185: 0x241b,\n\t0x1186: 0x23c0, 0x1187: 0x2556,\n\t0x11b0: 0x2414, 0x11b1: 0x248b, 0x11b2: 0x27bf, 0x11b3: 0x27b6, 0x11b4: 0x27ec, 0x11b5: 0x27da,\n\t0x11b6: 0x27c8, 0x11b7: 0x27e3, 0x11b8: 0x27f5, 0x11b9: 0x240d, 0x11ba: 0x2c7c, 0x11bb: 0x2afc,\n\t0x11bc: 0x27d1,\n\t// Block 0x47, offset 0x11c0\n\t0x11d0: 0x0019, 0x11d1: 0x0483,\n\t0x11d2: 0x0487, 0x11d3: 0x0035, 0x11d4: 0x0037, 0x11d5: 0x0003, 0x11d6: 0x003f, 0x11d7: 0x04bf,\n\t0x11d8: 0x04c3, 0x11d9: 0x1b5c,\n\t0x11e0: 0x8132, 0x11e1: 0x8132, 0x11e2: 0x8132, 0x11e3: 0x8132,\n\t0x11e4: 0x8132, 0x11e5: 0x8132, 0x11e6: 0x8132, 0x11e7: 0x812d, 0x11e8: 0x812d, 0x11e9: 0x812d,\n\t0x11ea: 0x812d, 0x11eb: 0x812d, 0x11ec: 0x812d, 0x11ed: 0x812d, 0x11ee: 0x8132, 0x11ef: 0x8132,\n\t0x11f0: 0x1873, 0x11f1: 0x0443, 0x11f2: 0x043f, 0x11f3: 0x007f, 0x11f4: 0x007f, 0x11f5: 0x0011,\n\t0x11f6: 0x0013, 0x11f7: 0x00b7, 0x11f8: 0x00bb, 0x11f9: 0x04b7, 0x11fa: 0x04bb, 0x11fb: 0x04ab,\n\t0x11fc: 0x04af, 0x11fd: 0x0493, 0x11fe: 0x0497, 0x11ff: 0x048b,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0x048f, 0x1201: 0x049b, 0x1202: 0x049f, 0x1203: 0x04a3, 0x1204: 0x04a7,\n\t0x1207: 0x0077, 0x1208: 0x007b, 0x1209: 0x4269, 0x120a: 0x4269, 0x120b: 0x4269,\n\t0x120c: 0x4269, 0x120d: 0x007f, 0x120e: 0x007f, 0x120f: 0x007f, 0x1210: 0x0019, 0x1211: 0x0483,\n\t0x1212: 0x001d, 0x1214: 0x0037, 0x1215: 0x0035, 0x1216: 0x003f, 0x1217: 0x0003,\n\t0x1218: 0x0443, 0x1219: 0x0011, 0x121a: 0x0013, 0x121b: 0x00b7, 0x121c: 0x00bb, 0x121d: 0x04b7,\n\t0x121e: 0x04bb, 0x121f: 0x0007, 0x1220: 0x000d, 0x1221: 0x0015, 0x1222: 0x0017, 0x1223: 0x001b,\n\t0x1224: 0x0039, 0x1225: 0x003d, 0x1226: 0x003b, 0x1228: 0x0079, 0x1229: 0x0009,\n\t0x122a: 0x000b, 0x122b: 0x0041,\n\t0x1230: 0x42aa, 0x1231: 0x442c, 0x1232: 0x42af, 0x1234: 0x42b4,\n\t0x1236: 0x42b9, 0x1237: 0x4432, 0x1238: 0x42be, 0x1239: 0x4438, 0x123a: 0x42c3, 0x123b: 0x443e,\n\t0x123c: 0x42c8, 0x123d: 0x4444, 0x123e: 0x42cd, 0x123f: 0x444a,\n\t// Block 0x49, offset 0x1240\n\t0x1240: 0x0236, 0x1241: 0x440e, 0x1242: 0x440e, 0x1243: 0x4414, 0x1244: 0x4414, 0x1245: 0x4456,\n\t0x1246: 0x4456, 0x1247: 0x441a, 0x1248: 0x441a, 0x1249: 0x4462, 0x124a: 0x4462, 0x124b: 0x4462,\n\t0x124c: 0x4462, 0x124d: 0x0239, 0x124e: 0x0239, 0x124f: 0x023c, 0x1250: 0x023c, 0x1251: 0x023c,\n\t0x1252: 0x023c, 0x1253: 0x023f, 0x1254: 0x023f, 0x1255: 0x0242, 0x1256: 0x0242, 0x1257: 0x0242,\n\t0x1258: 0x0242, 0x1259: 0x0245, 0x125a: 0x0245, 0x125b: 0x0245, 0x125c: 0x0245, 0x125d: 0x0248,\n\t0x125e: 0x0248, 0x125f: 0x0248, 0x1260: 0x0248, 0x1261: 0x024b, 0x1262: 0x024b, 0x1263: 0x024b,\n\t0x1264: 0x024b, 0x1265: 0x024e, 0x1266: 0x024e, 0x1267: 0x024e, 0x1268: 0x024e, 0x1269: 0x0251,\n\t0x126a: 0x0251, 0x126b: 0x0254, 0x126c: 0x0254, 0x126d: 0x0257, 0x126e: 0x0257, 0x126f: 0x025a,\n\t0x1270: 0x025a, 0x1271: 0x025d, 0x1272: 0x025d, 0x1273: 0x025d, 0x1274: 0x025d, 0x1275: 0x0260,\n\t0x1276: 0x0260, 0x1277: 0x0260, 0x1278: 0x0260, 0x1279: 0x0263, 0x127a: 0x0263, 0x127b: 0x0263,\n\t0x127c: 0x0263, 0x127d: 0x0266, 0x127e: 0x0266, 0x127f: 0x0266,\n\t// Block 0x4a, offset 0x1280\n\t0x1280: 0x0266, 0x1281: 0x0269, 0x1282: 0x0269, 0x1283: 0x0269, 0x1284: 0x0269, 0x1285: 0x026c,\n\t0x1286: 0x026c, 0x1287: 0x026c, 0x1288: 0x026c, 0x1289: 0x026f, 0x128a: 0x026f, 0x128b: 0x026f,\n\t0x128c: 0x026f, 0x128d: 0x0272, 0x128e: 0x0272, 0x128f: 0x0272, 0x1290: 0x0272, 0x1291: 0x0275,\n\t0x1292: 0x0275, 0x1293: 0x0275, 0x1294: 0x0275, 0x1295: 0x0278, 0x1296: 0x0278, 0x1297: 0x0278,\n\t0x1298: 0x0278, 0x1299: 0x027b, 0x129a: 0x027b, 0x129b: 0x027b, 0x129c: 0x027b, 0x129d: 0x027e,\n\t0x129e: 0x027e, 0x129f: 0x027e, 0x12a0: 0x027e, 0x12a1: 0x0281, 0x12a2: 0x0281, 0x12a3: 0x0281,\n\t0x12a4: 0x0281, 0x12a5: 0x0284, 0x12a6: 0x0284, 0x12a7: 0x0284, 0x12a8: 0x0284, 0x12a9: 0x0287,\n\t0x12aa: 0x0287, 0x12ab: 0x0287, 0x12ac: 0x0287, 0x12ad: 0x028a, 0x12ae: 0x028a, 0x12af: 0x028d,\n\t0x12b0: 0x028d, 0x12b1: 0x0290, 0x12b2: 0x0290, 0x12b3: 0x0290, 0x12b4: 0x0290, 0x12b5: 0x2e00,\n\t0x12b6: 0x2e00, 0x12b7: 0x2e08, 0x12b8: 0x2e08, 0x12b9: 0x2e10, 0x12ba: 0x2e10, 0x12bb: 0x1f82,\n\t0x12bc: 0x1f82,\n\t// Block 0x4b, offset 0x12c0\n\t0x12c0: 0x0081, 0x12c1: 0x0083, 0x12c2: 0x0085, 0x12c3: 0x0087, 0x12c4: 0x0089, 0x12c5: 0x008b,\n\t0x12c6: 0x008d, 0x12c7: 0x008f, 0x12c8: 0x0091, 0x12c9: 0x0093, 0x12ca: 0x0095, 0x12cb: 0x0097,\n\t0x12cc: 0x0099, 0x12cd: 0x009b, 0x12ce: 0x009d, 0x12cf: 0x009f, 0x12d0: 0x00a1, 0x12d1: 0x00a3,\n\t0x12d2: 0x00a5, 0x12d3: 0x00a7, 0x12d4: 0x00a9, 0x12d5: 0x00ab, 0x12d6: 0x00ad, 0x12d7: 0x00af,\n\t0x12d8: 0x00b1, 0x12d9: 0x00b3, 0x12da: 0x00b5, 0x12db: 0x00b7, 0x12dc: 0x00b9, 0x12dd: 0x00bb,\n\t0x12de: 0x00bd, 0x12df: 0x0477, 0x12e0: 0x047b, 0x12e1: 0x0487, 0x12e2: 0x049b, 0x12e3: 0x049f,\n\t0x12e4: 0x0483, 0x12e5: 0x05ab, 0x12e6: 0x05a3, 0x12e7: 0x04c7, 0x12e8: 0x04cf, 0x12e9: 0x04d7,\n\t0x12ea: 0x04df, 0x12eb: 0x04e7, 0x12ec: 0x056b, 0x12ed: 0x0573, 0x12ee: 0x057b, 0x12ef: 0x051f,\n\t0x12f0: 0x05af, 0x12f1: 0x04cb, 0x12f2: 0x04d3, 0x12f3: 0x04db, 0x12f4: 0x04e3, 0x12f5: 0x04eb,\n\t0x12f6: 0x04ef, 0x12f7: 0x04f3, 0x12f8: 0x04f7, 0x12f9: 0x04fb, 0x12fa: 0x04ff, 0x12fb: 0x0503,\n\t0x12fc: 0x0507, 0x12fd: 0x050b, 0x12fe: 0x050f, 0x12ff: 0x0513,\n\t// Block 0x4c, offset 0x1300\n\t0x1300: 0x0517, 0x1301: 0x051b, 0x1302: 0x0523, 0x1303: 0x0527, 0x1304: 0x052b, 0x1305: 0x052f,\n\t0x1306: 0x0533, 0x1307: 0x0537, 0x1308: 0x053b, 0x1309: 0x053f, 0x130a: 0x0543, 0x130b: 0x0547,\n\t0x130c: 0x054b, 0x130d: 0x054f, 0x130e: 0x0553, 0x130f: 0x0557, 0x1310: 0x055b, 0x1311: 0x055f,\n\t0x1312: 0x0563, 0x1313: 0x0567, 0x1314: 0x056f, 0x1315: 0x0577, 0x1316: 0x057f, 0x1317: 0x0583,\n\t0x1318: 0x0587, 0x1319: 0x058b, 0x131a: 0x058f, 0x131b: 0x0593, 0x131c: 0x0597, 0x131d: 0x05a7,\n\t0x131e: 0x4a78, 0x131f: 0x4a7e, 0x1320: 0x03c3, 0x1321: 0x0313, 0x1322: 0x0317, 0x1323: 0x4a3b,\n\t0x1324: 0x031b, 0x1325: 0x4a41, 0x1326: 0x4a47, 0x1327: 0x031f, 0x1328: 0x0323, 0x1329: 0x0327,\n\t0x132a: 0x4a4d, 0x132b: 0x4a53, 0x132c: 0x4a59, 0x132d: 0x4a5f, 0x132e: 0x4a65, 0x132f: 0x4a6b,\n\t0x1330: 0x0367, 0x1331: 0x032b, 0x1332: 0x032f, 0x1333: 0x0333, 0x1334: 0x037b, 0x1335: 0x0337,\n\t0x1336: 0x033b, 0x1337: 0x033f, 0x1338: 0x0343, 0x1339: 0x0347, 0x133a: 0x034b, 0x133b: 0x034f,\n\t0x133c: 0x0353, 0x133d: 0x0357, 0x133e: 0x035b,\n\t// Block 0x4d, offset 0x1340\n\t0x1342: 0x49bd, 0x1343: 0x49c3, 0x1344: 0x49c9, 0x1345: 0x49cf,\n\t0x1346: 0x49d5, 0x1347: 0x49db, 0x134a: 0x49e1, 0x134b: 0x49e7,\n\t0x134c: 0x49ed, 0x134d: 0x49f3, 0x134e: 0x49f9, 0x134f: 0x49ff,\n\t0x1352: 0x4a05, 0x1353: 0x4a0b, 0x1354: 0x4a11, 0x1355: 0x4a17, 0x1356: 0x4a1d, 0x1357: 0x4a23,\n\t0x135a: 0x4a29, 0x135b: 0x4a2f, 0x135c: 0x4a35,\n\t0x1360: 0x00bf, 0x1361: 0x00c2, 0x1362: 0x00cb, 0x1363: 0x4264,\n\t0x1364: 0x00c8, 0x1365: 0x00c5, 0x1366: 0x0447, 0x1368: 0x046b, 0x1369: 0x044b,\n\t0x136a: 0x044f, 0x136b: 0x0453, 0x136c: 0x0457, 0x136d: 0x046f, 0x136e: 0x0473,\n\t// Block 0x4e, offset 0x1380\n\t0x1380: 0x0063, 0x1381: 0x0065, 0x1382: 0x0067, 0x1383: 0x0069, 0x1384: 0x006b, 0x1385: 0x006d,\n\t0x1386: 0x006f, 0x1387: 0x0071, 0x1388: 0x0073, 0x1389: 0x0075, 0x138a: 0x0083, 0x138b: 0x0085,\n\t0x138c: 0x0087, 0x138d: 0x0089, 0x138e: 0x008b, 0x138f: 0x008d, 0x1390: 0x008f, 0x1391: 0x0091,\n\t0x1392: 0x0093, 0x1393: 0x0095, 0x1394: 0x0097, 0x1395: 0x0099, 0x1396: 0x009b, 0x1397: 0x009d,\n\t0x1398: 0x009f, 0x1399: 0x00a1, 0x139a: 0x00a3, 0x139b: 0x00a5, 0x139c: 0x00a7, 0x139d: 0x00a9,\n\t0x139e: 0x00ab, 0x139f: 0x00ad, 0x13a0: 0x00af, 0x13a1: 0x00b1, 0x13a2: 0x00b3, 0x13a3: 0x00b5,\n\t0x13a4: 0x00dd, 0x13a5: 0x00f2, 0x13a8: 0x0173, 0x13a9: 0x0176,\n\t0x13aa: 0x0179, 0x13ab: 0x017c, 0x13ac: 0x017f, 0x13ad: 0x0182, 0x13ae: 0x0185, 0x13af: 0x0188,\n\t0x13b0: 0x018b, 0x13b1: 0x018e, 0x13b2: 0x0191, 0x13b3: 0x0194, 0x13b4: 0x0197, 0x13b5: 0x019a,\n\t0x13b6: 0x019d, 0x13b7: 0x01a0, 0x13b8: 0x01a3, 0x13b9: 0x0188, 0x13ba: 0x01a6, 0x13bb: 0x01a9,\n\t0x13bc: 0x01ac, 0x13bd: 0x01af, 0x13be: 0x01b2, 0x13bf: 0x01b5,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c0: 0x01fd, 0x13c1: 0x0200, 0x13c2: 0x0203, 0x13c3: 0x045b, 0x13c4: 0x01c7, 0x13c5: 0x01d0,\n\t0x13c6: 0x01d6, 0x13c7: 0x01fa, 0x13c8: 0x01eb, 0x13c9: 0x01e8, 0x13ca: 0x0206, 0x13cb: 0x0209,\n\t0x13ce: 0x0021, 0x13cf: 0x0023, 0x13d0: 0x0025, 0x13d1: 0x0027,\n\t0x13d2: 0x0029, 0x13d3: 0x002b, 0x13d4: 0x002d, 0x13d5: 0x002f, 0x13d6: 0x0031, 0x13d7: 0x0033,\n\t0x13d8: 0x0021, 0x13d9: 0x0023, 0x13da: 0x0025, 0x13db: 0x0027, 0x13dc: 0x0029, 0x13dd: 0x002b,\n\t0x13de: 0x002d, 0x13df: 0x002f, 0x13e0: 0x0031, 0x13e1: 0x0033, 0x13e2: 0x0021, 0x13e3: 0x0023,\n\t0x13e4: 0x0025, 0x13e5: 0x0027, 0x13e6: 0x0029, 0x13e7: 0x002b, 0x13e8: 0x002d, 0x13e9: 0x002f,\n\t0x13ea: 0x0031, 0x13eb: 0x0033, 0x13ec: 0x0021, 0x13ed: 0x0023, 0x13ee: 0x0025, 0x13ef: 0x0027,\n\t0x13f0: 0x0029, 0x13f1: 0x002b, 0x13f2: 0x002d, 0x13f3: 0x002f, 0x13f4: 0x0031, 0x13f5: 0x0033,\n\t0x13f6: 0x0021, 0x13f7: 0x0023, 0x13f8: 0x0025, 0x13f9: 0x0027, 0x13fa: 0x0029, 0x13fb: 0x002b,\n\t0x13fc: 0x002d, 0x13fd: 0x002f, 0x13fe: 0x0031, 0x13ff: 0x0033,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x0239, 0x1401: 0x023c, 0x1402: 0x0248, 0x1403: 0x0251, 0x1405: 0x028a,\n\t0x1406: 0x025a, 0x1407: 0x024b, 0x1408: 0x0269, 0x1409: 0x0290, 0x140a: 0x027b, 0x140b: 0x027e,\n\t0x140c: 0x0281, 0x140d: 0x0284, 0x140e: 0x025d, 0x140f: 0x026f, 0x1410: 0x0275, 0x1411: 0x0263,\n\t0x1412: 0x0278, 0x1413: 0x0257, 0x1414: 0x0260, 0x1415: 0x0242, 0x1416: 0x0245, 0x1417: 0x024e,\n\t0x1418: 0x0254, 0x1419: 0x0266, 0x141a: 0x026c, 0x141b: 0x0272, 0x141c: 0x0293, 0x141d: 0x02e4,\n\t0x141e: 0x02cc, 0x141f: 0x0296, 0x1421: 0x023c, 0x1422: 0x0248,\n\t0x1424: 0x0287, 0x1427: 0x024b, 0x1429: 0x0290,\n\t0x142a: 0x027b, 0x142b: 0x027e, 0x142c: 0x0281, 0x142d: 0x0284, 0x142e: 0x025d, 0x142f: 0x026f,\n\t0x1430: 0x0275, 0x1431: 0x0263, 0x1432: 0x0278, 0x1434: 0x0260, 0x1435: 0x0242,\n\t0x1436: 0x0245, 0x1437: 0x024e, 0x1439: 0x0266, 0x143b: 0x0272,\n\t// Block 0x51, offset 0x1440\n\t0x1442: 0x0248,\n\t0x1447: 0x024b, 0x1449: 0x0290, 0x144b: 0x027e,\n\t0x144d: 0x0284, 0x144e: 0x025d, 0x144f: 0x026f, 0x1451: 0x0263,\n\t0x1452: 0x0278, 0x1454: 0x0260, 0x1457: 0x024e,\n\t0x1459: 0x0266, 0x145b: 0x0272, 0x145d: 0x02e4,\n\t0x145f: 0x0296, 0x1461: 0x023c, 0x1462: 0x0248,\n\t0x1464: 0x0287, 0x1467: 0x024b, 0x1468: 0x0269, 0x1469: 0x0290,\n\t0x146a: 0x027b, 0x146c: 0x0281, 0x146d: 0x0284, 0x146e: 0x025d, 0x146f: 0x026f,\n\t0x1470: 0x0275, 0x1471: 0x0263, 0x1472: 0x0278, 0x1474: 0x0260, 0x1475: 0x0242,\n\t0x1476: 0x0245, 0x1477: 0x024e, 0x1479: 0x0266, 0x147a: 0x026c, 0x147b: 0x0272,\n\t0x147c: 0x0293, 0x147e: 0x02cc,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x0239, 0x1481: 0x023c, 0x1482: 0x0248, 0x1483: 0x0251, 0x1484: 0x0287, 0x1485: 0x028a,\n\t0x1486: 0x025a, 0x1487: 0x024b, 0x1488: 0x0269, 0x1489: 0x0290, 0x148b: 0x027e,\n\t0x148c: 0x0281, 0x148d: 0x0284, 0x148e: 0x025d, 0x148f: 0x026f, 0x1490: 0x0275, 0x1491: 0x0263,\n\t0x1492: 0x0278, 0x1493: 0x0257, 0x1494: 0x0260, 0x1495: 0x0242, 0x1496: 0x0245, 0x1497: 0x024e,\n\t0x1498: 0x0254, 0x1499: 0x0266, 0x149a: 0x026c, 0x149b: 0x0272,\n\t0x14a1: 0x023c, 0x14a2: 0x0248, 0x14a3: 0x0251,\n\t0x14a5: 0x028a, 0x14a6: 0x025a, 0x14a7: 0x024b, 0x14a8: 0x0269, 0x14a9: 0x0290,\n\t0x14ab: 0x027e, 0x14ac: 0x0281, 0x14ad: 0x0284, 0x14ae: 0x025d, 0x14af: 0x026f,\n\t0x14b0: 0x0275, 0x14b1: 0x0263, 0x14b2: 0x0278, 0x14b3: 0x0257, 0x14b4: 0x0260, 0x14b5: 0x0242,\n\t0x14b6: 0x0245, 0x14b7: 0x024e, 0x14b8: 0x0254, 0x14b9: 0x0266, 0x14ba: 0x026c, 0x14bb: 0x0272,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x1879, 0x14c1: 0x1876, 0x14c2: 0x187c, 0x14c3: 0x18a0, 0x14c4: 0x18c4, 0x14c5: 0x18e8,\n\t0x14c6: 0x190c, 0x14c7: 0x1915, 0x14c8: 0x191b, 0x14c9: 0x1921, 0x14ca: 0x1927,\n\t0x14d0: 0x1a8c, 0x14d1: 0x1a90,\n\t0x14d2: 0x1a94, 0x14d3: 0x1a98, 0x14d4: 0x1a9c, 0x14d5: 0x1aa0, 0x14d6: 0x1aa4, 0x14d7: 0x1aa8,\n\t0x14d8: 0x1aac, 0x14d9: 0x1ab0, 0x14da: 0x1ab4, 0x14db: 0x1ab8, 0x14dc: 0x1abc, 0x14dd: 0x1ac0,\n\t0x14de: 0x1ac4, 0x14df: 0x1ac8, 0x14e0: 0x1acc, 0x14e1: 0x1ad0, 0x14e2: 0x1ad4, 0x14e3: 0x1ad8,\n\t0x14e4: 0x1adc, 0x14e5: 0x1ae0, 0x14e6: 0x1ae4, 0x14e7: 0x1ae8, 0x14e8: 0x1aec, 0x14e9: 0x1af0,\n\t0x14ea: 0x271e, 0x14eb: 0x0047, 0x14ec: 0x0065, 0x14ed: 0x193c, 0x14ee: 0x19b1,\n\t0x14f0: 0x0043, 0x14f1: 0x0045, 0x14f2: 0x0047, 0x14f3: 0x0049, 0x14f4: 0x004b, 0x14f5: 0x004d,\n\t0x14f6: 0x004f, 0x14f7: 0x0051, 0x14f8: 0x0053, 0x14f9: 0x0055, 0x14fa: 0x0057, 0x14fb: 0x0059,\n\t0x14fc: 0x005b, 0x14fd: 0x005d, 0x14fe: 0x005f, 0x14ff: 0x0061,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0x26ad, 0x1501: 0x26c2, 0x1502: 0x0503,\n\t0x1510: 0x0c0f, 0x1511: 0x0a47,\n\t0x1512: 0x08d3, 0x1513: 0x45c4, 0x1514: 0x071b, 0x1515: 0x09ef, 0x1516: 0x132f, 0x1517: 0x09ff,\n\t0x1518: 0x0727, 0x1519: 0x0cd7, 0x151a: 0x0eaf, 0x151b: 0x0caf, 0x151c: 0x0827, 0x151d: 0x0b6b,\n\t0x151e: 0x07bf, 0x151f: 0x0cb7, 0x1520: 0x0813, 0x1521: 0x1117, 0x1522: 0x0f83, 0x1523: 0x138b,\n\t0x1524: 0x09d3, 0x1525: 0x090b, 0x1526: 0x0e63, 0x1527: 0x0c1b, 0x1528: 0x0c47, 0x1529: 0x06bf,\n\t0x152a: 0x06cb, 0x152b: 0x140b, 0x152c: 0x0adb, 0x152d: 0x06e7, 0x152e: 0x08ef, 0x152f: 0x0c3b,\n\t0x1530: 0x13b3, 0x1531: 0x0c13, 0x1532: 0x106f, 0x1533: 0x10ab, 0x1534: 0x08f7, 0x1535: 0x0e43,\n\t0x1536: 0x0d0b, 0x1537: 0x0d07, 0x1538: 0x0f97, 0x1539: 0x082b, 0x153a: 0x0957, 0x153b: 0x1443,\n\t// Block 0x55, offset 0x1540\n\t0x1540: 0x06fb, 0x1541: 0x06f3, 0x1542: 0x0703, 0x1543: 0x1647, 0x1544: 0x0747, 0x1545: 0x0757,\n\t0x1546: 0x075b, 0x1547: 0x0763, 0x1548: 0x076b, 0x1549: 0x076f, 0x154a: 0x077b, 0x154b: 0x0773,\n\t0x154c: 0x05b3, 0x154d: 0x165b, 0x154e: 0x078f, 0x154f: 0x0793, 0x1550: 0x0797, 0x1551: 0x07b3,\n\t0x1552: 0x164c, 0x1553: 0x05b7, 0x1554: 0x079f, 0x1555: 0x07bf, 0x1556: 0x1656, 0x1557: 0x07cf,\n\t0x1558: 0x07d7, 0x1559: 0x0737, 0x155a: 0x07df, 0x155b: 0x07e3, 0x155c: 0x1831, 0x155d: 0x07ff,\n\t0x155e: 0x0807, 0x155f: 0x05bf, 0x1560: 0x081f, 0x1561: 0x0823, 0x1562: 0x082b, 0x1563: 0x082f,\n\t0x1564: 0x05c3, 0x1565: 0x0847, 0x1566: 0x084b, 0x1567: 0x0857, 0x1568: 0x0863, 0x1569: 0x0867,\n\t0x156a: 0x086b, 0x156b: 0x0873, 0x156c: 0x0893, 0x156d: 0x0897, 0x156e: 0x089f, 0x156f: 0x08af,\n\t0x1570: 0x08b7, 0x1571: 0x08bb, 0x1572: 0x08bb, 0x1573: 0x08bb, 0x1574: 0x166a, 0x1575: 0x0e93,\n\t0x1576: 0x08cf, 0x1577: 0x08d7, 0x1578: 0x166f, 0x1579: 0x08e3, 0x157a: 0x08eb, 0x157b: 0x08f3,\n\t0x157c: 0x091b, 0x157d: 0x0907, 0x157e: 0x0913, 0x157f: 0x0917,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x091f, 0x1581: 0x0927, 0x1582: 0x092b, 0x1583: 0x0933, 0x1584: 0x093b, 0x1585: 0x093f,\n\t0x1586: 0x093f, 0x1587: 0x0947, 0x1588: 0x094f, 0x1589: 0x0953, 0x158a: 0x095f, 0x158b: 0x0983,\n\t0x158c: 0x0967, 0x158d: 0x0987, 0x158e: 0x096b, 0x158f: 0x0973, 0x1590: 0x080b, 0x1591: 0x09cf,\n\t0x1592: 0x0997, 0x1593: 0x099b, 0x1594: 0x099f, 0x1595: 0x0993, 0x1596: 0x09a7, 0x1597: 0x09a3,\n\t0x1598: 0x09bb, 0x1599: 0x1674, 0x159a: 0x09d7, 0x159b: 0x09db, 0x159c: 0x09e3, 0x159d: 0x09ef,\n\t0x159e: 0x09f7, 0x159f: 0x0a13, 0x15a0: 0x1679, 0x15a1: 0x167e, 0x15a2: 0x0a1f, 0x15a3: 0x0a23,\n\t0x15a4: 0x0a27, 0x15a5: 0x0a1b, 0x15a6: 0x0a2f, 0x15a7: 0x05c7, 0x15a8: 0x05cb, 0x15a9: 0x0a37,\n\t0x15aa: 0x0a3f, 0x15ab: 0x0a3f, 0x15ac: 0x1683, 0x15ad: 0x0a5b, 0x15ae: 0x0a5f, 0x15af: 0x0a63,\n\t0x15b0: 0x0a6b, 0x15b1: 0x1688, 0x15b2: 0x0a73, 0x15b3: 0x0a77, 0x15b4: 0x0b4f, 0x15b5: 0x0a7f,\n\t0x15b6: 0x05cf, 0x15b7: 0x0a8b, 0x15b8: 0x0a9b, 0x15b9: 0x0aa7, 0x15ba: 0x0aa3, 0x15bb: 0x1692,\n\t0x15bc: 0x0aaf, 0x15bd: 0x1697, 0x15be: 0x0abb, 0x15bf: 0x0ab7,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0x0abf, 0x15c1: 0x0acf, 0x15c2: 0x0ad3, 0x15c3: 0x05d3, 0x15c4: 0x0ae3, 0x15c5: 0x0aeb,\n\t0x15c6: 0x0aef, 0x15c7: 0x0af3, 0x15c8: 0x05d7, 0x15c9: 0x169c, 0x15ca: 0x05db, 0x15cb: 0x0b0f,\n\t0x15cc: 0x0b13, 0x15cd: 0x0b17, 0x15ce: 0x0b1f, 0x15cf: 0x1863, 0x15d0: 0x0b37, 0x15d1: 0x16a6,\n\t0x15d2: 0x16a6, 0x15d3: 0x11d7, 0x15d4: 0x0b47, 0x15d5: 0x0b47, 0x15d6: 0x05df, 0x15d7: 0x16c9,\n\t0x15d8: 0x179b, 0x15d9: 0x0b57, 0x15da: 0x0b5f, 0x15db: 0x05e3, 0x15dc: 0x0b73, 0x15dd: 0x0b83,\n\t0x15de: 0x0b87, 0x15df: 0x0b8f, 0x15e0: 0x0b9f, 0x15e1: 0x05eb, 0x15e2: 0x05e7, 0x15e3: 0x0ba3,\n\t0x15e4: 0x16ab, 0x15e5: 0x0ba7, 0x15e6: 0x0bbb, 0x15e7: 0x0bbf, 0x15e8: 0x0bc3, 0x15e9: 0x0bbf,\n\t0x15ea: 0x0bcf, 0x15eb: 0x0bd3, 0x15ec: 0x0be3, 0x15ed: 0x0bdb, 0x15ee: 0x0bdf, 0x15ef: 0x0be7,\n\t0x15f0: 0x0beb, 0x15f1: 0x0bef, 0x15f2: 0x0bfb, 0x15f3: 0x0bff, 0x15f4: 0x0c17, 0x15f5: 0x0c1f,\n\t0x15f6: 0x0c2f, 0x15f7: 0x0c43, 0x15f8: 0x16ba, 0x15f9: 0x0c3f, 0x15fa: 0x0c33, 0x15fb: 0x0c4b,\n\t0x15fc: 0x0c53, 0x15fd: 0x0c67, 0x15fe: 0x16bf, 0x15ff: 0x0c6f,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0x0c63, 0x1601: 0x0c5b, 0x1602: 0x05ef, 0x1603: 0x0c77, 0x1604: 0x0c7f, 0x1605: 0x0c87,\n\t0x1606: 0x0c7b, 0x1607: 0x05f3, 0x1608: 0x0c97, 0x1609: 0x0c9f, 0x160a: 0x16c4, 0x160b: 0x0ccb,\n\t0x160c: 0x0cff, 0x160d: 0x0cdb, 0x160e: 0x05ff, 0x160f: 0x0ce7, 0x1610: 0x05fb, 0x1611: 0x05f7,\n\t0x1612: 0x07c3, 0x1613: 0x07c7, 0x1614: 0x0d03, 0x1615: 0x0ceb, 0x1616: 0x11ab, 0x1617: 0x0663,\n\t0x1618: 0x0d0f, 0x1619: 0x0d13, 0x161a: 0x0d17, 0x161b: 0x0d2b, 0x161c: 0x0d23, 0x161d: 0x16dd,\n\t0x161e: 0x0603, 0x161f: 0x0d3f, 0x1620: 0x0d33, 0x1621: 0x0d4f, 0x1622: 0x0d57, 0x1623: 0x16e7,\n\t0x1624: 0x0d5b, 0x1625: 0x0d47, 0x1626: 0x0d63, 0x1627: 0x0607, 0x1628: 0x0d67, 0x1629: 0x0d6b,\n\t0x162a: 0x0d6f, 0x162b: 0x0d7b, 0x162c: 0x16ec, 0x162d: 0x0d83, 0x162e: 0x060b, 0x162f: 0x0d8f,\n\t0x1630: 0x16f1, 0x1631: 0x0d93, 0x1632: 0x060f, 0x1633: 0x0d9f, 0x1634: 0x0dab, 0x1635: 0x0db7,\n\t0x1636: 0x0dbb, 0x1637: 0x16f6, 0x1638: 0x168d, 0x1639: 0x16fb, 0x163a: 0x0ddb, 0x163b: 0x1700,\n\t0x163c: 0x0de7, 0x163d: 0x0def, 0x163e: 0x0ddf, 0x163f: 0x0dfb,\n\t// Block 0x59, offset 0x1640\n\t0x1640: 0x0e0b, 0x1641: 0x0e1b, 0x1642: 0x0e0f, 0x1643: 0x0e13, 0x1644: 0x0e1f, 0x1645: 0x0e23,\n\t0x1646: 0x1705, 0x1647: 0x0e07, 0x1648: 0x0e3b, 0x1649: 0x0e3f, 0x164a: 0x0613, 0x164b: 0x0e53,\n\t0x164c: 0x0e4f, 0x164d: 0x170a, 0x164e: 0x0e33, 0x164f: 0x0e6f, 0x1650: 0x170f, 0x1651: 0x1714,\n\t0x1652: 0x0e73, 0x1653: 0x0e87, 0x1654: 0x0e83, 0x1655: 0x0e7f, 0x1656: 0x0617, 0x1657: 0x0e8b,\n\t0x1658: 0x0e9b, 0x1659: 0x0e97, 0x165a: 0x0ea3, 0x165b: 0x1651, 0x165c: 0x0eb3, 0x165d: 0x1719,\n\t0x165e: 0x0ebf, 0x165f: 0x1723, 0x1660: 0x0ed3, 0x1661: 0x0edf, 0x1662: 0x0ef3, 0x1663: 0x1728,\n\t0x1664: 0x0f07, 0x1665: 0x0f0b, 0x1666: 0x172d, 0x1667: 0x1732, 0x1668: 0x0f27, 0x1669: 0x0f37,\n\t0x166a: 0x061b, 0x166b: 0x0f3b, 0x166c: 0x061f, 0x166d: 0x061f, 0x166e: 0x0f53, 0x166f: 0x0f57,\n\t0x1670: 0x0f5f, 0x1671: 0x0f63, 0x1672: 0x0f6f, 0x1673: 0x0623, 0x1674: 0x0f87, 0x1675: 0x1737,\n\t0x1676: 0x0fa3, 0x1677: 0x173c, 0x1678: 0x0faf, 0x1679: 0x16a1, 0x167a: 0x0fbf, 0x167b: 0x1741,\n\t0x167c: 0x1746, 0x167d: 0x174b, 0x167e: 0x0627, 0x167f: 0x062b,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x0ff7, 0x1681: 0x1755, 0x1682: 0x1750, 0x1683: 0x175a, 0x1684: 0x175f, 0x1685: 0x0fff,\n\t0x1686: 0x1003, 0x1687: 0x1003, 0x1688: 0x100b, 0x1689: 0x0633, 0x168a: 0x100f, 0x168b: 0x0637,\n\t0x168c: 0x063b, 0x168d: 0x1769, 0x168e: 0x1023, 0x168f: 0x102b, 0x1690: 0x1037, 0x1691: 0x063f,\n\t0x1692: 0x176e, 0x1693: 0x105b, 0x1694: 0x1773, 0x1695: 0x1778, 0x1696: 0x107b, 0x1697: 0x1093,\n\t0x1698: 0x0643, 0x1699: 0x109b, 0x169a: 0x109f, 0x169b: 0x10a3, 0x169c: 0x177d, 0x169d: 0x1782,\n\t0x169e: 0x1782, 0x169f: 0x10bb, 0x16a0: 0x0647, 0x16a1: 0x1787, 0x16a2: 0x10cf, 0x16a3: 0x10d3,\n\t0x16a4: 0x064b, 0x16a5: 0x178c, 0x16a6: 0x10ef, 0x16a7: 0x064f, 0x16a8: 0x10ff, 0x16a9: 0x10f7,\n\t0x16aa: 0x1107, 0x16ab: 0x1796, 0x16ac: 0x111f, 0x16ad: 0x0653, 0x16ae: 0x112b, 0x16af: 0x1133,\n\t0x16b0: 0x1143, 0x16b1: 0x0657, 0x16b2: 0x17a0, 0x16b3: 0x17a5, 0x16b4: 0x065b, 0x16b5: 0x17aa,\n\t0x16b6: 0x115b, 0x16b7: 0x17af, 0x16b8: 0x1167, 0x16b9: 0x1173, 0x16ba: 0x117b, 0x16bb: 0x17b4,\n\t0x16bc: 0x17b9, 0x16bd: 0x118f, 0x16be: 0x17be, 0x16bf: 0x1197,\n\t// Block 0x5b, offset 0x16c0\n\t0x16c0: 0x16ce, 0x16c1: 0x065f, 0x16c2: 0x11af, 0x16c3: 0x11b3, 0x16c4: 0x0667, 0x16c5: 0x11b7,\n\t0x16c6: 0x0a33, 0x16c7: 0x17c3, 0x16c8: 0x17c8, 0x16c9: 0x16d3, 0x16ca: 0x16d8, 0x16cb: 0x11d7,\n\t0x16cc: 0x11db, 0x16cd: 0x13f3, 0x16ce: 0x066b, 0x16cf: 0x1207, 0x16d0: 0x1203, 0x16d1: 0x120b,\n\t0x16d2: 0x083f, 0x16d3: 0x120f, 0x16d4: 0x1213, 0x16d5: 0x1217, 0x16d6: 0x121f, 0x16d7: 0x17cd,\n\t0x16d8: 0x121b, 0x16d9: 0x1223, 0x16da: 0x1237, 0x16db: 0x123b, 0x16dc: 0x1227, 0x16dd: 0x123f,\n\t0x16de: 0x1253, 0x16df: 0x1267, 0x16e0: 0x1233, 0x16e1: 0x1247, 0x16e2: 0x124b, 0x16e3: 0x124f,\n\t0x16e4: 0x17d2, 0x16e5: 0x17dc, 0x16e6: 0x17d7, 0x16e7: 0x066f, 0x16e8: 0x126f, 0x16e9: 0x1273,\n\t0x16ea: 0x127b, 0x16eb: 0x17f0, 0x16ec: 0x127f, 0x16ed: 0x17e1, 0x16ee: 0x0673, 0x16ef: 0x0677,\n\t0x16f0: 0x17e6, 0x16f1: 0x17eb, 0x16f2: 0x067b, 0x16f3: 0x129f, 0x16f4: 0x12a3, 0x16f5: 0x12a7,\n\t0x16f6: 0x12ab, 0x16f7: 0x12b7, 0x16f8: 0x12b3, 0x16f9: 0x12bf, 0x16fa: 0x12bb, 0x16fb: 0x12cb,\n\t0x16fc: 0x12c3, 0x16fd: 0x12c7, 0x16fe: 0x12cf, 0x16ff: 0x067f,\n\t// Block 0x5c, offset 0x1700\n\t0x1700: 0x12d7, 0x1701: 0x12db, 0x1702: 0x0683, 0x1703: 0x12eb, 0x1704: 0x12ef, 0x1705: 0x17f5,\n\t0x1706: 0x12fb, 0x1707: 0x12ff, 0x1708: 0x0687, 0x1709: 0x130b, 0x170a: 0x05bb, 0x170b: 0x17fa,\n\t0x170c: 0x17ff, 0x170d: 0x068b, 0x170e: 0x068f, 0x170f: 0x1337, 0x1710: 0x134f, 0x1711: 0x136b,\n\t0x1712: 0x137b, 0x1713: 0x1804, 0x1714: 0x138f, 0x1715: 0x1393, 0x1716: 0x13ab, 0x1717: 0x13b7,\n\t0x1718: 0x180e, 0x1719: 0x1660, 0x171a: 0x13c3, 0x171b: 0x13bf, 0x171c: 0x13cb, 0x171d: 0x1665,\n\t0x171e: 0x13d7, 0x171f: 0x13e3, 0x1720: 0x1813, 0x1721: 0x1818, 0x1722: 0x1423, 0x1723: 0x142f,\n\t0x1724: 0x1437, 0x1725: 0x181d, 0x1726: 0x143b, 0x1727: 0x1467, 0x1728: 0x1473, 0x1729: 0x1477,\n\t0x172a: 0x146f, 0x172b: 0x1483, 0x172c: 0x1487, 0x172d: 0x1822, 0x172e: 0x1493, 0x172f: 0x0693,\n\t0x1730: 0x149b, 0x1731: 0x1827, 0x1732: 0x0697, 0x1733: 0x14d3, 0x1734: 0x0ac3, 0x1735: 0x14eb,\n\t0x1736: 0x182c, 0x1737: 0x1836, 0x1738: 0x069b, 0x1739: 0x069f, 0x173a: 0x1513, 0x173b: 0x183b,\n\t0x173c: 0x06a3, 0x173d: 0x1840, 0x173e: 0x152b, 0x173f: 0x152b,\n\t// Block 0x5d, offset 0x1740\n\t0x1740: 0x1533, 0x1741: 0x1845, 0x1742: 0x154b, 0x1743: 0x06a7, 0x1744: 0x155b, 0x1745: 0x1567,\n\t0x1746: 0x156f, 0x1747: 0x1577, 0x1748: 0x06ab, 0x1749: 0x184a, 0x174a: 0x158b, 0x174b: 0x15a7,\n\t0x174c: 0x15b3, 0x174d: 0x06af, 0x174e: 0x06b3, 0x174f: 0x15b7, 0x1750: 0x184f, 0x1751: 0x06b7,\n\t0x1752: 0x1854, 0x1753: 0x1859, 0x1754: 0x185e, 0x1755: 0x15db, 0x1756: 0x06bb, 0x1757: 0x15ef,\n\t0x1758: 0x15f7, 0x1759: 0x15fb, 0x175a: 0x1603, 0x175b: 0x160b, 0x175c: 0x1613, 0x175d: 0x1868,\n}\n\n// nfkcIndex: 22 blocks, 1408 entries, 1408 bytes\n// Block 0 is the zero block.\nvar nfkcIndex = [1408]uint8{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x5c, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x5d, 0xc7: 0x04,\n\t0xc8: 0x05, 0xca: 0x5e, 0xcb: 0x5f, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09,\n\t0xd0: 0x0a, 0xd1: 0x60, 0xd2: 0x61, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x62,\n\t0xd8: 0x63, 0xd9: 0x0d, 0xdb: 0x64, 0xdc: 0x65, 0xdd: 0x66, 0xdf: 0x67,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,\n\t0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a,\n\t0xf0: 0x13,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x68, 0x121: 0x69, 0x123: 0x0e, 0x124: 0x6a, 0x125: 0x6b, 0x126: 0x6c, 0x127: 0x6d,\n\t0x128: 0x6e, 0x129: 0x6f, 0x12a: 0x70, 0x12b: 0x71, 0x12c: 0x6c, 0x12d: 0x72, 0x12e: 0x73, 0x12f: 0x74,\n\t0x131: 0x75, 0x132: 0x76, 0x133: 0x77, 0x134: 0x78, 0x135: 0x79, 0x137: 0x7a,\n\t0x138: 0x7b, 0x139: 0x7c, 0x13a: 0x7d, 0x13b: 0x7e, 0x13c: 0x7f, 0x13d: 0x80, 0x13e: 0x81, 0x13f: 0x82,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x83, 0x142: 0x84, 0x143: 0x85, 0x144: 0x86, 0x145: 0x87, 0x146: 0x88, 0x147: 0x89,\n\t0x14d: 0x8a,\n\t0x15c: 0x8b, 0x15f: 0x8c,\n\t0x162: 0x8d, 0x164: 0x8e,\n\t0x168: 0x8f, 0x169: 0x90, 0x16a: 0x91, 0x16c: 0x0f, 0x16d: 0x92, 0x16e: 0x93, 0x16f: 0x94,\n\t0x170: 0x95, 0x173: 0x96, 0x174: 0x97, 0x175: 0x10, 0x176: 0x11, 0x177: 0x12,\n\t0x178: 0x13, 0x179: 0x14, 0x17a: 0x15, 0x17b: 0x16, 0x17c: 0x17, 0x17d: 0x18, 0x17e: 0x19, 0x17f: 0x1a,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x98, 0x181: 0x99, 0x182: 0x9a, 0x183: 0x9b, 0x184: 0x1b, 0x185: 0x1c, 0x186: 0x9c, 0x187: 0x9d,\n\t0x188: 0x9e, 0x189: 0x1d, 0x18a: 0x1e, 0x18b: 0x9f, 0x18c: 0xa0,\n\t0x191: 0x1f, 0x192: 0x20, 0x193: 0xa1,\n\t0x1a8: 0xa2, 0x1a9: 0xa3, 0x1ab: 0xa4,\n\t0x1b1: 0xa5, 0x1b3: 0xa6, 0x1b5: 0xa7, 0x1b7: 0xa8,\n\t0x1ba: 0xa9, 0x1bb: 0xaa, 0x1bc: 0x21, 0x1bd: 0x22, 0x1be: 0x23, 0x1bf: 0xab,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0xac, 0x1c1: 0x24, 0x1c2: 0x25, 0x1c3: 0x26, 0x1c4: 0xad, 0x1c5: 0x27, 0x1c6: 0x28,\n\t0x1c8: 0x29, 0x1c9: 0x2a, 0x1ca: 0x2b, 0x1cb: 0x2c, 0x1cc: 0x2d, 0x1cd: 0x2e, 0x1ce: 0x2f, 0x1cf: 0x30,\n\t// Block 0x8, offset 0x200\n\t0x219: 0xae, 0x21a: 0xaf, 0x21b: 0xb0, 0x21d: 0xb1, 0x21f: 0xb2,\n\t0x220: 0xb3, 0x223: 0xb4, 0x224: 0xb5, 0x225: 0xb6, 0x226: 0xb7, 0x227: 0xb8,\n\t0x22a: 0xb9, 0x22b: 0xba, 0x22d: 0xbb, 0x22f: 0xbc,\n\t0x230: 0xbd, 0x231: 0xbe, 0x232: 0xbf, 0x233: 0xc0, 0x234: 0xc1, 0x235: 0xc2, 0x236: 0xc3, 0x237: 0xbd,\n\t0x238: 0xbe, 0x239: 0xbf, 0x23a: 0xc0, 0x23b: 0xc1, 0x23c: 0xc2, 0x23d: 0xc3, 0x23e: 0xbd, 0x23f: 0xbe,\n\t// Block 0x9, offset 0x240\n\t0x240: 0xbf, 0x241: 0xc0, 0x242: 0xc1, 0x243: 0xc2, 0x244: 0xc3, 0x245: 0xbd, 0x246: 0xbe, 0x247: 0xbf,\n\t0x248: 0xc0, 0x249: 0xc1, 0x24a: 0xc2, 0x24b: 0xc3, 0x24c: 0xbd, 0x24d: 0xbe, 0x24e: 0xbf, 0x24f: 0xc0,\n\t0x250: 0xc1, 0x251: 0xc2, 0x252: 0xc3, 0x253: 0xbd, 0x254: 0xbe, 0x255: 0xbf, 0x256: 0xc0, 0x257: 0xc1,\n\t0x258: 0xc2, 0x259: 0xc3, 0x25a: 0xbd, 0x25b: 0xbe, 0x25c: 0xbf, 0x25d: 0xc0, 0x25e: 0xc1, 0x25f: 0xc2,\n\t0x260: 0xc3, 0x261: 0xbd, 0x262: 0xbe, 0x263: 0xbf, 0x264: 0xc0, 0x265: 0xc1, 0x266: 0xc2, 0x267: 0xc3,\n\t0x268: 0xbd, 0x269: 0xbe, 0x26a: 0xbf, 0x26b: 0xc0, 0x26c: 0xc1, 0x26d: 0xc2, 0x26e: 0xc3, 0x26f: 0xbd,\n\t0x270: 0xbe, 0x271: 0xbf, 0x272: 0xc0, 0x273: 0xc1, 0x274: 0xc2, 0x275: 0xc3, 0x276: 0xbd, 0x277: 0xbe,\n\t0x278: 0xbf, 0x279: 0xc0, 0x27a: 0xc1, 0x27b: 0xc2, 0x27c: 0xc3, 0x27d: 0xbd, 0x27e: 0xbe, 0x27f: 0xbf,\n\t// Block 0xa, offset 0x280\n\t0x280: 0xc0, 0x281: 0xc1, 0x282: 0xc2, 0x283: 0xc3, 0x284: 0xbd, 0x285: 0xbe, 0x286: 0xbf, 0x287: 0xc0,\n\t0x288: 0xc1, 0x289: 0xc2, 0x28a: 0xc3, 0x28b: 0xbd, 0x28c: 0xbe, 0x28d: 0xbf, 0x28e: 0xc0, 0x28f: 0xc1,\n\t0x290: 0xc2, 0x291: 0xc3, 0x292: 0xbd, 0x293: 0xbe, 0x294: 0xbf, 0x295: 0xc0, 0x296: 0xc1, 0x297: 0xc2,\n\t0x298: 0xc3, 0x299: 0xbd, 0x29a: 0xbe, 0x29b: 0xbf, 0x29c: 0xc0, 0x29d: 0xc1, 0x29e: 0xc2, 0x29f: 0xc3,\n\t0x2a0: 0xbd, 0x2a1: 0xbe, 0x2a2: 0xbf, 0x2a3: 0xc0, 0x2a4: 0xc1, 0x2a5: 0xc2, 0x2a6: 0xc3, 0x2a7: 0xbd,\n\t0x2a8: 0xbe, 0x2a9: 0xbf, 0x2aa: 0xc0, 0x2ab: 0xc1, 0x2ac: 0xc2, 0x2ad: 0xc3, 0x2ae: 0xbd, 0x2af: 0xbe,\n\t0x2b0: 0xbf, 0x2b1: 0xc0, 0x2b2: 0xc1, 0x2b3: 0xc2, 0x2b4: 0xc3, 0x2b5: 0xbd, 0x2b6: 0xbe, 0x2b7: 0xbf,\n\t0x2b8: 0xc0, 0x2b9: 0xc1, 0x2ba: 0xc2, 0x2bb: 0xc3, 0x2bc: 0xbd, 0x2bd: 0xbe, 0x2be: 0xbf, 0x2bf: 0xc0,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0xc1, 0x2c1: 0xc2, 0x2c2: 0xc3, 0x2c3: 0xbd, 0x2c4: 0xbe, 0x2c5: 0xbf, 0x2c6: 0xc0, 0x2c7: 0xc1,\n\t0x2c8: 0xc2, 0x2c9: 0xc3, 0x2ca: 0xbd, 0x2cb: 0xbe, 0x2cc: 0xbf, 0x2cd: 0xc0, 0x2ce: 0xc1, 0x2cf: 0xc2,\n\t0x2d0: 0xc3, 0x2d1: 0xbd, 0x2d2: 0xbe, 0x2d3: 0xbf, 0x2d4: 0xc0, 0x2d5: 0xc1, 0x2d6: 0xc2, 0x2d7: 0xc3,\n\t0x2d8: 0xbd, 0x2d9: 0xbe, 0x2da: 0xbf, 0x2db: 0xc0, 0x2dc: 0xc1, 0x2dd: 0xc2, 0x2de: 0xc4,\n\t// Block 0xc, offset 0x300\n\t0x324: 0x31, 0x325: 0x32, 0x326: 0x33, 0x327: 0x34,\n\t0x328: 0x35, 0x329: 0x36, 0x32a: 0x37, 0x32b: 0x38, 0x32c: 0x39, 0x32d: 0x3a, 0x32e: 0x3b, 0x32f: 0x3c,\n\t0x330: 0x3d, 0x331: 0x3e, 0x332: 0x3f, 0x333: 0x40, 0x334: 0x41, 0x335: 0x42, 0x336: 0x43, 0x337: 0x44,\n\t0x338: 0x45, 0x339: 0x46, 0x33a: 0x47, 0x33b: 0x48, 0x33c: 0xc5, 0x33d: 0x49, 0x33e: 0x4a, 0x33f: 0x4b,\n\t// Block 0xd, offset 0x340\n\t0x347: 0xc6,\n\t0x34b: 0xc7, 0x34d: 0xc8,\n\t0x368: 0xc9, 0x36b: 0xca,\n\t0x374: 0xcb,\n\t0x37d: 0xcc,\n\t// Block 0xe, offset 0x380\n\t0x381: 0xcd, 0x382: 0xce, 0x384: 0xcf, 0x385: 0xb7, 0x387: 0xd0,\n\t0x388: 0xd1, 0x38b: 0xd2, 0x38c: 0xd3, 0x38d: 0xd4,\n\t0x391: 0xd5, 0x392: 0xd6, 0x393: 0xd7, 0x396: 0xd8, 0x397: 0xd9,\n\t0x398: 0xda, 0x39a: 0xdb, 0x39c: 0xdc,\n\t0x3a0: 0xdd,\n\t0x3a8: 0xde, 0x3a9: 0xdf, 0x3aa: 0xe0,\n\t0x3b0: 0xda, 0x3b5: 0xe1, 0x3b6: 0xe2,\n\t// Block 0xf, offset 0x3c0\n\t0x3eb: 0xe3, 0x3ec: 0xe4,\n\t// Block 0x10, offset 0x400\n\t0x432: 0xe5,\n\t// Block 0x11, offset 0x440\n\t0x445: 0xe6, 0x446: 0xe7, 0x447: 0xe8,\n\t0x449: 0xe9,\n\t0x450: 0xea, 0x451: 0xeb, 0x452: 0xec, 0x453: 0xed, 0x454: 0xee, 0x455: 0xef, 0x456: 0xf0, 0x457: 0xf1,\n\t0x458: 0xf2, 0x459: 0xf3, 0x45a: 0x4c, 0x45b: 0xf4, 0x45c: 0xf5, 0x45d: 0xf6, 0x45e: 0xf7, 0x45f: 0x4d,\n\t// Block 0x12, offset 0x480\n\t0x480: 0xf8,\n\t0x4a3: 0xf9, 0x4a5: 0xfa,\n\t0x4b8: 0x4e, 0x4b9: 0x4f, 0x4ba: 0x50,\n\t// Block 0x13, offset 0x4c0\n\t0x4c4: 0x51, 0x4c5: 0xfb, 0x4c6: 0xfc,\n\t0x4c8: 0x52, 0x4c9: 0xfd,\n\t// Block 0x14, offset 0x500\n\t0x520: 0x53, 0x521: 0x54, 0x522: 0x55, 0x523: 0x56, 0x524: 0x57, 0x525: 0x58, 0x526: 0x59, 0x527: 0x5a,\n\t0x528: 0x5b,\n\t// Block 0x15, offset 0x540\n\t0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,\n\t0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,\n\t0x56f: 0x12,\n}\n\n// nfkcSparseOffset: 162 entries, 324 bytes\nvar nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1b, 0x25, 0x35, 0x37, 0x3c, 0x47, 0x56, 0x63, 0x6b, 0x70, 0x75, 0x77, 0x7f, 0x86, 0x89, 0x91, 0x95, 0x99, 0x9b, 0x9d, 0xa6, 0xaa, 0xb1, 0xb6, 0xb9, 0xc3, 0xc6, 0xcd, 0xd5, 0xd9, 0xdb, 0xde, 0xe2, 0xe8, 0xf9, 0x105, 0x107, 0x10d, 0x10f, 0x111, 0x113, 0x115, 0x117, 0x119, 0x11b, 0x11e, 0x121, 0x123, 0x126, 0x129, 0x12d, 0x132, 0x13b, 0x13d, 0x140, 0x142, 0x14d, 0x158, 0x166, 0x174, 0x184, 0x192, 0x199, 0x19f, 0x1ae, 0x1b2, 0x1b4, 0x1b8, 0x1ba, 0x1bd, 0x1bf, 0x1c2, 0x1c4, 0x1c7, 0x1c9, 0x1cb, 0x1cd, 0x1d9, 0x1e3, 0x1ed, 0x1f0, 0x1f4, 0x1f6, 0x1f8, 0x1fa, 0x1fc, 0x1ff, 0x201, 0x203, 0x205, 0x207, 0x20d, 0x210, 0x214, 0x216, 0x21d, 0x223, 0x229, 0x231, 0x237, 0x23d, 0x243, 0x247, 0x249, 0x24b, 0x24d, 0x24f, 0x255, 0x258, 0x25a, 0x260, 0x263, 0x26b, 0x272, 0x275, 0x278, 0x27a, 0x27d, 0x285, 0x289, 0x290, 0x293, 0x299, 0x29b, 0x29d, 0x2a0, 0x2a2, 0x2a5, 0x2a7, 0x2a9, 0x2ab, 0x2ae, 0x2b0, 0x2b2, 0x2b4, 0x2b6, 0x2c3, 0x2cd, 0x2cf, 0x2d1, 0x2d5, 0x2da, 0x2e6, 0x2eb, 0x2f4, 0x2fa, 0x2ff, 0x303, 0x308, 0x30c, 0x31c, 0x32a, 0x338, 0x346, 0x34c, 0x34e, 0x351, 0x35b, 0x35d}\n\n// nfkcSparseValues: 871 entries, 3484 bytes\nvar nfkcSparseValues = [871]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0002, lo: 0x0d},\n\t{value: 0x0001, lo: 0xa0, hi: 0xa0},\n\t{value: 0x4278, lo: 0xa8, hi: 0xa8},\n\t{value: 0x0083, lo: 0xaa, hi: 0xaa},\n\t{value: 0x4264, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0025, lo: 0xb2, hi: 0xb3},\n\t{value: 0x425a, lo: 0xb4, hi: 0xb4},\n\t{value: 0x01dc, lo: 0xb5, hi: 0xb5},\n\t{value: 0x4291, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0023, lo: 0xb9, hi: 0xb9},\n\t{value: 0x009f, lo: 0xba, hi: 0xba},\n\t{value: 0x221c, lo: 0xbc, hi: 0xbc},\n\t{value: 0x2210, lo: 0xbd, hi: 0xbd},\n\t{value: 0x22b2, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1, offset 0xe\n\t{value: 0x0091, lo: 0x03},\n\t{value: 0x46e2, lo: 0xa0, hi: 0xa1},\n\t{value: 0x4714, lo: 0xaf, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb7, hi: 0xb7},\n\t// Block 0x2, offset 0x12\n\t{value: 0x0003, lo: 0x08},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x0091, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0119, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0095, lo: 0xb2, hi: 0xb2},\n\t{value: 0x00a5, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0143, lo: 0xb4, hi: 0xb6},\n\t{value: 0x00af, lo: 0xb7, hi: 0xb7},\n\t{value: 0x00b3, lo: 0xb8, hi: 0xb8},\n\t// Block 0x3, offset 0x1b\n\t{value: 0x000a, lo: 0x09},\n\t{value: 0x426e, lo: 0x98, hi: 0x98},\n\t{value: 0x4273, lo: 0x99, hi: 0x9a},\n\t{value: 0x4296, lo: 0x9b, hi: 0x9b},\n\t{value: 0x425f, lo: 0x9c, hi: 0x9c},\n\t{value: 0x4282, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0113, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0099, lo: 0xa1, hi: 0xa1},\n\t{value: 0x00a7, lo: 0xa2, hi: 0xa3},\n\t{value: 0x0167, lo: 0xa4, hi: 0xa4},\n\t// Block 0x4, offset 0x25\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0xa000, lo: 0x8d, hi: 0x8d},\n\t{value: 0x37a5, lo: 0x90, hi: 0x90},\n\t{value: 0x37b1, lo: 0x91, hi: 0x91},\n\t{value: 0x379f, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x96, hi: 0x96},\n\t{value: 0x3817, lo: 0x97, hi: 0x97},\n\t{value: 0x37e1, lo: 0x9c, hi: 0x9c},\n\t{value: 0x37c9, lo: 0x9d, hi: 0x9d},\n\t{value: 0x37f3, lo: 0x9e, hi: 0x9e},\n\t{value: 0xa000, lo: 0xb4, hi: 0xb5},\n\t{value: 0x381d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3823, lo: 0xb7, hi: 0xb7},\n\t// Block 0x5, offset 0x35\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x83, hi: 0x87},\n\t// Block 0x6, offset 0x37\n\t{value: 0x0001, lo: 0x04},\n\t{value: 0x8113, lo: 0x81, hi: 0x82},\n\t{value: 0x8132, lo: 0x84, hi: 0x84},\n\t{value: 0x812d, lo: 0x85, hi: 0x85},\n\t{value: 0x810d, lo: 0x87, hi: 0x87},\n\t// Block 0x7, offset 0x3c\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x97},\n\t{value: 0x8119, lo: 0x98, hi: 0x98},\n\t{value: 0x811a, lo: 0x99, hi: 0x99},\n\t{value: 0x811b, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3841, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3847, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3853, lo: 0xa4, hi: 0xa4},\n\t{value: 0x384d, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3859, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xa7, hi: 0xa7},\n\t// Block 0x8, offset 0x47\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x386b, lo: 0x80, hi: 0x80},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0x385f, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x3865, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x95, hi: 0x95},\n\t{value: 0x8132, lo: 0x96, hi: 0x9c},\n\t{value: 0x8132, lo: 0x9f, hi: 0xa2},\n\t{value: 0x812d, lo: 0xa3, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa8},\n\t{value: 0x812d, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8132, lo: 0xab, hi: 0xac},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t// Block 0x9, offset 0x56\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x811f, lo: 0x91, hi: 0x91},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x812d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb5, hi: 0xb6},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb9},\n\t{value: 0x8132, lo: 0xba, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbc},\n\t{value: 0x8132, lo: 0xbd, hi: 0xbd},\n\t{value: 0x812d, lo: 0xbe, hi: 0xbe},\n\t{value: 0x8132, lo: 0xbf, hi: 0xbf},\n\t// Block 0xa, offset 0x63\n\t{value: 0x0005, lo: 0x07},\n\t{value: 0x8132, lo: 0x80, hi: 0x80},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x812d, lo: 0x82, hi: 0x83},\n\t{value: 0x812d, lo: 0x84, hi: 0x85},\n\t{value: 0x812d, lo: 0x86, hi: 0x87},\n\t{value: 0x812d, lo: 0x88, hi: 0x89},\n\t{value: 0x8132, lo: 0x8a, hi: 0x8a},\n\t// Block 0xb, offset 0x6b\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0xab, hi: 0xb1},\n\t{value: 0x812d, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8132, lo: 0xb3, hi: 0xb3},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0xc, offset 0x70\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0x96, hi: 0x99},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa7},\n\t{value: 0x8132, lo: 0xa9, hi: 0xad},\n\t// Block 0xd, offset 0x75\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x99, hi: 0x9b},\n\t// Block 0xe, offset 0x77\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3ed8, lo: 0xa9, hi: 0xa9},\n\t{value: 0xa000, lo: 0xb0, hi: 0xb0},\n\t{value: 0x3ee0, lo: 0xb1, hi: 0xb1},\n\t{value: 0xa000, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3ee8, lo: 0xb4, hi: 0xb4},\n\t{value: 0x9902, lo: 0xbc, hi: 0xbc},\n\t// Block 0xf, offset 0x7f\n\t{value: 0x0008, lo: 0x06},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x91, hi: 0x91},\n\t{value: 0x812d, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x93, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x94},\n\t{value: 0x451c, lo: 0x98, hi: 0x9f},\n\t// Block 0x10, offset 0x86\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x11, offset 0x89\n\t{value: 0x0008, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2c9e, lo: 0x8b, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x455c, lo: 0x9c, hi: 0x9d},\n\t{value: 0x456c, lo: 0x9f, hi: 0x9f},\n\t{value: 0x8132, lo: 0xbe, hi: 0xbe},\n\t// Block 0x12, offset 0x91\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x4594, lo: 0xb3, hi: 0xb3},\n\t{value: 0x459c, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x13, offset 0x95\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x4574, lo: 0x99, hi: 0x9b},\n\t{value: 0x458c, lo: 0x9e, hi: 0x9e},\n\t// Block 0x14, offset 0x99\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x15, offset 0x9b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t// Block 0x16, offset 0x9d\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2cb6, lo: 0x88, hi: 0x88},\n\t{value: 0x2cae, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cbe, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x96, hi: 0x97},\n\t{value: 0x45a4, lo: 0x9c, hi: 0x9c},\n\t{value: 0x45ac, lo: 0x9d, hi: 0x9d},\n\t// Block 0x17, offset 0xa6\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x2cc6, lo: 0x94, hi: 0x94},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x18, offset 0xaa\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cce, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2cde, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cd6, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x19, offset 0xb1\n\t{value: 0x1801, lo: 0x04},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x3ef0, lo: 0x88, hi: 0x88},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8120, lo: 0x95, hi: 0x96},\n\t// Block 0x1a, offset 0xb6\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0xa000, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1b, offset 0xb9\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x2ce6, lo: 0x80, hi: 0x80},\n\t{value: 0x9900, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x2cee, lo: 0x87, hi: 0x87},\n\t{value: 0x2cf6, lo: 0x88, hi: 0x88},\n\t{value: 0x2f50, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2dd8, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x95, hi: 0x96},\n\t// Block 0x1c, offset 0xc3\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xbb, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1d, offset 0xc6\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cfe, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2d0e, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d06, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1e, offset 0xcd\n\t{value: 0x6bea, lo: 0x07},\n\t{value: 0x9904, lo: 0x8a, hi: 0x8a},\n\t{value: 0x9900, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x3ef8, lo: 0x9a, hi: 0x9a},\n\t{value: 0x2f58, lo: 0x9c, hi: 0x9c},\n\t{value: 0x2de3, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2d16, lo: 0x9e, hi: 0x9f},\n\t// Block 0x1f, offset 0xd5\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x2621, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8122, lo: 0xb8, hi: 0xb9},\n\t{value: 0x8104, lo: 0xba, hi: 0xba},\n\t// Block 0x20, offset 0xd9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8123, lo: 0x88, hi: 0x8b},\n\t// Block 0x21, offset 0xdb\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x2636, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8124, lo: 0xb8, hi: 0xb9},\n\t// Block 0x22, offset 0xde\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8125, lo: 0x88, hi: 0x8b},\n\t{value: 0x2628, lo: 0x9c, hi: 0x9c},\n\t{value: 0x262f, lo: 0x9d, hi: 0x9d},\n\t// Block 0x23, offset 0xe2\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x030b, lo: 0x8c, hi: 0x8c},\n\t{value: 0x812d, lo: 0x98, hi: 0x99},\n\t{value: 0x812d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb7},\n\t{value: 0x812b, lo: 0xb9, hi: 0xb9},\n\t// Block 0x24, offset 0xe8\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x2644, lo: 0x83, hi: 0x83},\n\t{value: 0x264b, lo: 0x8d, hi: 0x8d},\n\t{value: 0x2652, lo: 0x92, hi: 0x92},\n\t{value: 0x2659, lo: 0x97, hi: 0x97},\n\t{value: 0x2660, lo: 0x9c, hi: 0x9c},\n\t{value: 0x263d, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8126, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8127, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4a84, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8128, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4a8d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x45b4, lo: 0xb6, hi: 0xb6},\n\t{value: 0x45f4, lo: 0xb7, hi: 0xb7},\n\t{value: 0x45bc, lo: 0xb8, hi: 0xb8},\n\t{value: 0x45ff, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8127, lo: 0xba, hi: 0xbd},\n\t// Block 0x25, offset 0xf9\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x8127, lo: 0x80, hi: 0x80},\n\t{value: 0x4a96, lo: 0x81, hi: 0x81},\n\t{value: 0x8132, lo: 0x82, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0x86, hi: 0x87},\n\t{value: 0x266e, lo: 0x93, hi: 0x93},\n\t{value: 0x2675, lo: 0x9d, hi: 0x9d},\n\t{value: 0x267c, lo: 0xa2, hi: 0xa2},\n\t{value: 0x2683, lo: 0xa7, hi: 0xa7},\n\t{value: 0x268a, lo: 0xac, hi: 0xac},\n\t{value: 0x2667, lo: 0xb9, hi: 0xb9},\n\t// Block 0x26, offset 0x105\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x86, hi: 0x86},\n\t// Block 0x27, offset 0x107\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x2d1e, lo: 0xa6, hi: 0xa6},\n\t{value: 0x9900, lo: 0xae, hi: 0xae},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x28, offset 0x10d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t// Block 0x29, offset 0x10f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x030f, lo: 0xbc, hi: 0xbc},\n\t// Block 0x2a, offset 0x111\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x80, hi: 0x92},\n\t// Block 0x2b, offset 0x113\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xb900, lo: 0xa1, hi: 0xb5},\n\t// Block 0x2c, offset 0x115\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0xa8, hi: 0xbf},\n\t// Block 0x2d, offset 0x117\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0x80, hi: 0x82},\n\t// Block 0x2e, offset 0x119\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9f},\n\t// Block 0x2f, offset 0x11b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x94, hi: 0x94},\n\t{value: 0x8104, lo: 0xb4, hi: 0xb4},\n\t// Block 0x30, offset 0x11e\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9d},\n\t// Block 0x31, offset 0x121\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8131, lo: 0xa9, hi: 0xa9},\n\t// Block 0x32, offset 0x123\n\t{value: 0x0004, lo: 0x02},\n\t{value: 0x812e, lo: 0xb9, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbb},\n\t// Block 0x33, offset 0x126\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x97, hi: 0x97},\n\t{value: 0x812d, lo: 0x98, hi: 0x98},\n\t// Block 0x34, offset 0x129\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8104, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8132, lo: 0xb5, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbf, hi: 0xbf},\n\t// Block 0x35, offset 0x12d\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t{value: 0x812d, lo: 0xb5, hi: 0xba},\n\t{value: 0x8132, lo: 0xbb, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x36, offset 0x132\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x2d66, lo: 0x80, hi: 0x80},\n\t{value: 0x2d6e, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x82, hi: 0x82},\n\t{value: 0x2d76, lo: 0x83, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xab, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xac},\n\t{value: 0x8132, lo: 0xad, hi: 0xb3},\n\t// Block 0x37, offset 0x13b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xaa, hi: 0xab},\n\t// Block 0x38, offset 0x13d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xa6, hi: 0xa6},\n\t{value: 0x8104, lo: 0xb2, hi: 0xb3},\n\t// Block 0x39, offset 0x140\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x3a, offset 0x142\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x92},\n\t{value: 0x8101, lo: 0x94, hi: 0x94},\n\t{value: 0x812d, lo: 0x95, hi: 0x99},\n\t{value: 0x8132, lo: 0x9a, hi: 0x9b},\n\t{value: 0x812d, lo: 0x9c, hi: 0x9f},\n\t{value: 0x8132, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8101, lo: 0xa2, hi: 0xa8},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t{value: 0x8132, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb9},\n\t// Block 0x3b, offset 0x14d\n\t{value: 0x0002, lo: 0x0a},\n\t{value: 0x0043, lo: 0xac, hi: 0xac},\n\t{value: 0x00d1, lo: 0xad, hi: 0xad},\n\t{value: 0x0045, lo: 0xae, hi: 0xae},\n\t{value: 0x0049, lo: 0xb0, hi: 0xb1},\n\t{value: 0x00e6, lo: 0xb2, hi: 0xb2},\n\t{value: 0x004f, lo: 0xb3, hi: 0xba},\n\t{value: 0x005f, lo: 0xbc, hi: 0xbc},\n\t{value: 0x00ef, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0061, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0065, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3c, offset 0x158\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0001, lo: 0x80, hi: 0x8a},\n\t{value: 0x043b, lo: 0x91, hi: 0x91},\n\t{value: 0x429b, lo: 0x97, hi: 0x97},\n\t{value: 0x001d, lo: 0xa4, hi: 0xa4},\n\t{value: 0x1873, lo: 0xa5, hi: 0xa5},\n\t{value: 0x1b5c, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0001, lo: 0xaf, hi: 0xaf},\n\t{value: 0x2691, lo: 0xb3, hi: 0xb3},\n\t{value: 0x27fe, lo: 0xb4, hi: 0xb4},\n\t{value: 0x2698, lo: 0xb6, hi: 0xb6},\n\t{value: 0x2808, lo: 0xb7, hi: 0xb7},\n\t{value: 0x186d, lo: 0xbc, hi: 0xbc},\n\t{value: 0x4269, lo: 0xbe, hi: 0xbe},\n\t// Block 0x3d, offset 0x166\n\t{value: 0x0002, lo: 0x0d},\n\t{value: 0x1933, lo: 0x87, hi: 0x87},\n\t{value: 0x1930, lo: 0x88, hi: 0x88},\n\t{value: 0x1870, lo: 0x89, hi: 0x89},\n\t{value: 0x298e, lo: 0x97, hi: 0x97},\n\t{value: 0x0001, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0021, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0093, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0029, lo: 0xb4, hi: 0xb9},\n\t{value: 0x0017, lo: 0xba, hi: 0xba},\n\t{value: 0x0467, lo: 0xbb, hi: 0xbb},\n\t{value: 0x003b, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0011, lo: 0xbd, hi: 0xbe},\n\t{value: 0x009d, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3e, offset 0x174\n\t{value: 0x0002, lo: 0x0f},\n\t{value: 0x0021, lo: 0x80, hi: 0x89},\n\t{value: 0x0017, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0467, lo: 0x8b, hi: 0x8b},\n\t{value: 0x003b, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0011, lo: 0x8d, hi: 0x8e},\n\t{value: 0x0083, lo: 0x90, hi: 0x90},\n\t{value: 0x008b, lo: 0x91, hi: 0x91},\n\t{value: 0x009f, lo: 0x92, hi: 0x92},\n\t{value: 0x00b1, lo: 0x93, hi: 0x93},\n\t{value: 0x0104, lo: 0x94, hi: 0x94},\n\t{value: 0x0091, lo: 0x95, hi: 0x95},\n\t{value: 0x0097, lo: 0x96, hi: 0x99},\n\t{value: 0x00a1, lo: 0x9a, hi: 0x9a},\n\t{value: 0x00a7, lo: 0x9b, hi: 0x9c},\n\t{value: 0x1999, lo: 0xa8, hi: 0xa8},\n\t// Block 0x3f, offset 0x184\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x8132, lo: 0x90, hi: 0x91},\n\t{value: 0x8101, lo: 0x92, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x97},\n\t{value: 0x8101, lo: 0x98, hi: 0x9a},\n\t{value: 0x8132, lo: 0x9b, hi: 0x9c},\n\t{value: 0x8132, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8101, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa7},\n\t{value: 0x812d, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8132, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8101, lo: 0xaa, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t// Block 0x40, offset 0x192\n\t{value: 0x0007, lo: 0x06},\n\t{value: 0x2180, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t{value: 0x3bb9, lo: 0x9a, hi: 0x9b},\n\t{value: 0x3bc7, lo: 0xae, hi: 0xae},\n\t// Block 0x41, offset 0x199\n\t{value: 0x000e, lo: 0x05},\n\t{value: 0x3bce, lo: 0x8d, hi: 0x8e},\n\t{value: 0x3bd5, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t// Block 0x42, offset 0x19f\n\t{value: 0x0173, lo: 0x0e},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0x3be3, lo: 0x84, hi: 0x84},\n\t{value: 0xa000, lo: 0x88, hi: 0x88},\n\t{value: 0x3bea, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0x3bf1, lo: 0x8c, hi: 0x8c},\n\t{value: 0xa000, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3bf8, lo: 0xa4, hi: 0xa4},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3bff, lo: 0xa6, hi: 0xa6},\n\t{value: 0x269f, lo: 0xac, hi: 0xad},\n\t{value: 0x26a6, lo: 0xaf, hi: 0xaf},\n\t{value: 0x281c, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xbc, hi: 0xbc},\n\t// Block 0x43, offset 0x1ae\n\t{value: 0x0007, lo: 0x03},\n\t{value: 0x3c68, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3c92, lo: 0xa2, hi: 0xa3},\n\t{value: 0x3cbc, lo: 0xaa, hi: 0xad},\n\t// Block 0x44, offset 0x1b2\n\t{value: 0x0004, lo: 0x01},\n\t{value: 0x048b, lo: 0xa9, hi: 0xaa},\n\t// Block 0x45, offset 0x1b4\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x0057, lo: 0x80, hi: 0x8f},\n\t{value: 0x0083, lo: 0x90, hi: 0xa9},\n\t{value: 0x0021, lo: 0xaa, hi: 0xaa},\n\t// Block 0x46, offset 0x1b8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x299b, lo: 0x8c, hi: 0x8c},\n\t// Block 0x47, offset 0x1ba\n\t{value: 0x0263, lo: 0x02},\n\t{value: 0x1b8c, lo: 0xb4, hi: 0xb4},\n\t{value: 0x192d, lo: 0xb5, hi: 0xb6},\n\t// Block 0x48, offset 0x1bd\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x44dd, lo: 0x9c, hi: 0x9c},\n\t// Block 0x49, offset 0x1bf\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0095, lo: 0xbc, hi: 0xbc},\n\t{value: 0x006d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x4a, offset 0x1c2\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xaf, hi: 0xb1},\n\t// Block 0x4b, offset 0x1c4\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x047f, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x4c, offset 0x1c7\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xa0, hi: 0xbf},\n\t// Block 0x4d, offset 0x1c9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0dc3, lo: 0x9f, hi: 0x9f},\n\t// Block 0x4e, offset 0x1cb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x162f, lo: 0xb3, hi: 0xb3},\n\t// Block 0x4f, offset 0x1cd\n\t{value: 0x0004, lo: 0x0b},\n\t{value: 0x1597, lo: 0x80, hi: 0x82},\n\t{value: 0x15af, lo: 0x83, hi: 0x83},\n\t{value: 0x15c7, lo: 0x84, hi: 0x85},\n\t{value: 0x15d7, lo: 0x86, hi: 0x89},\n\t{value: 0x15eb, lo: 0x8a, hi: 0x8c},\n\t{value: 0x15ff, lo: 0x8d, hi: 0x8d},\n\t{value: 0x1607, lo: 0x8e, hi: 0x8e},\n\t{value: 0x160f, lo: 0x8f, hi: 0x90},\n\t{value: 0x161b, lo: 0x91, hi: 0x93},\n\t{value: 0x162b, lo: 0x94, hi: 0x94},\n\t{value: 0x1633, lo: 0x95, hi: 0x95},\n\t// Block 0x50, offset 0x1d9\n\t{value: 0x0004, lo: 0x09},\n\t{value: 0x0001, lo: 0x80, hi: 0x80},\n\t{value: 0x812c, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8131, lo: 0xab, hi: 0xab},\n\t{value: 0x8133, lo: 0xac, hi: 0xac},\n\t{value: 0x812e, lo: 0xad, hi: 0xad},\n\t{value: 0x812f, lo: 0xae, hi: 0xae},\n\t{value: 0x812f, lo: 0xaf, hi: 0xaf},\n\t{value: 0x04b3, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0887, lo: 0xb8, hi: 0xba},\n\t// Block 0x51, offset 0x1e3\n\t{value: 0x0006, lo: 0x09},\n\t{value: 0x0313, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0317, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4a3b, lo: 0xb3, hi: 0xb3},\n\t{value: 0x031b, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4a41, lo: 0xb5, hi: 0xb6},\n\t{value: 0x031f, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0323, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0327, lo: 0xb9, hi: 0xb9},\n\t{value: 0x4a4d, lo: 0xba, hi: 0xbf},\n\t// Block 0x52, offset 0x1ed\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb4, hi: 0xbd},\n\t// Block 0x53, offset 0x1f0\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x020f, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0212, lo: 0x9d, hi: 0x9d},\n\t{value: 0x8132, lo: 0x9e, hi: 0x9f},\n\t// Block 0x54, offset 0x1f4\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb1},\n\t// Block 0x55, offset 0x1f6\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x163b, lo: 0xb0, hi: 0xb0},\n\t// Block 0x56, offset 0x1f8\n\t{value: 0x000c, lo: 0x01},\n\t{value: 0x00d7, lo: 0xb8, hi: 0xb9},\n\t// Block 0x57, offset 0x1fa\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t// Block 0x58, offset 0x1fc\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xa0, hi: 0xb1},\n\t// Block 0x59, offset 0x1ff\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xab, hi: 0xad},\n\t// Block 0x5a, offset 0x201\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x93, hi: 0x93},\n\t// Block 0x5b, offset 0x203\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb3, hi: 0xb3},\n\t// Block 0x5c, offset 0x205\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t// Block 0x5d, offset 0x207\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb7, hi: 0xb8},\n\t{value: 0x8132, lo: 0xbe, hi: 0xbf},\n\t// Block 0x5e, offset 0x20d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t// Block 0x5f, offset 0x210\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x1637, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0125, lo: 0x9e, hi: 0x9e},\n\t{value: 0x1643, lo: 0x9f, hi: 0x9f},\n\t// Block 0x60, offset 0x214\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xad, hi: 0xad},\n\t// Block 0x61, offset 0x216\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe500, lo: 0x80, hi: 0x80},\n\t{value: 0xc600, lo: 0x81, hi: 0x9b},\n\t{value: 0xe500, lo: 0x9c, hi: 0x9c},\n\t{value: 0xc600, lo: 0x9d, hi: 0xb7},\n\t{value: 0xe500, lo: 0xb8, hi: 0xb8},\n\t{value: 0xc600, lo: 0xb9, hi: 0xbf},\n\t// Block 0x62, offset 0x21d\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x93},\n\t{value: 0xe500, lo: 0x94, hi: 0x94},\n\t{value: 0xc600, lo: 0x95, hi: 0xaf},\n\t{value: 0xe500, lo: 0xb0, hi: 0xb0},\n\t{value: 0xc600, lo: 0xb1, hi: 0xbf},\n\t// Block 0x63, offset 0x223\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8b},\n\t{value: 0xe500, lo: 0x8c, hi: 0x8c},\n\t{value: 0xc600, lo: 0x8d, hi: 0xa7},\n\t{value: 0xe500, lo: 0xa8, hi: 0xa8},\n\t{value: 0xc600, lo: 0xa9, hi: 0xbf},\n\t// Block 0x64, offset 0x229\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xc600, lo: 0x80, hi: 0x83},\n\t{value: 0xe500, lo: 0x84, hi: 0x84},\n\t{value: 0xc600, lo: 0x85, hi: 0x9f},\n\t{value: 0xe500, lo: 0xa0, hi: 0xa0},\n\t{value: 0xc600, lo: 0xa1, hi: 0xbb},\n\t{value: 0xe500, lo: 0xbc, hi: 0xbc},\n\t{value: 0xc600, lo: 0xbd, hi: 0xbf},\n\t// Block 0x65, offset 0x231\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x97},\n\t{value: 0xe500, lo: 0x98, hi: 0x98},\n\t{value: 0xc600, lo: 0x99, hi: 0xb3},\n\t{value: 0xe500, lo: 0xb4, hi: 0xb4},\n\t{value: 0xc600, lo: 0xb5, hi: 0xbf},\n\t// Block 0x66, offset 0x237\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8f},\n\t{value: 0xe500, lo: 0x90, hi: 0x90},\n\t{value: 0xc600, lo: 0x91, hi: 0xab},\n\t{value: 0xe500, lo: 0xac, hi: 0xac},\n\t{value: 0xc600, lo: 0xad, hi: 0xbf},\n\t// Block 0x67, offset 0x23d\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t{value: 0xe500, lo: 0xa4, hi: 0xa4},\n\t{value: 0xc600, lo: 0xa5, hi: 0xbf},\n\t// Block 0x68, offset 0x243\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t// Block 0x69, offset 0x247\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x0003, lo: 0x81, hi: 0xbf},\n\t// Block 0x6a, offset 0x249\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x6b, offset 0x24b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xa0, hi: 0xa0},\n\t// Block 0x6c, offset 0x24d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb6, hi: 0xba},\n\t// Block 0x6d, offset 0x24f\n\t{value: 0x002c, lo: 0x05},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x8f, hi: 0x8f},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8101, lo: 0xb9, hi: 0xba},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x6e, offset 0x255\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa5},\n\t{value: 0x812d, lo: 0xa6, hi: 0xa6},\n\t// Block 0x6f, offset 0x258\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa7},\n\t// Block 0x70, offset 0x25a\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x812d, lo: 0x86, hi: 0x87},\n\t{value: 0x8132, lo: 0x88, hi: 0x8a},\n\t{value: 0x812d, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8132, lo: 0x8c, hi: 0x8c},\n\t{value: 0x812d, lo: 0x8d, hi: 0x90},\n\t// Block 0x71, offset 0x260\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x72, offset 0x263\n\t{value: 0x17fe, lo: 0x07},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x4238, lo: 0x9a, hi: 0x9a},\n\t{value: 0xa000, lo: 0x9b, hi: 0x9b},\n\t{value: 0x4242, lo: 0x9c, hi: 0x9c},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x424c, lo: 0xab, hi: 0xab},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x73, offset 0x26b\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x8132, lo: 0x80, hi: 0x82},\n\t{value: 0x9900, lo: 0xa7, hi: 0xa7},\n\t{value: 0x2d7e, lo: 0xae, hi: 0xae},\n\t{value: 0x2d88, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb1, hi: 0xb2},\n\t{value: 0x8104, lo: 0xb3, hi: 0xb4},\n\t// Block 0x74, offset 0x272\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0x75, offset 0x275\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb5, hi: 0xb5},\n\t{value: 0x8102, lo: 0xb6, hi: 0xb6},\n\t// Block 0x76, offset 0x278\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x8102, lo: 0xa9, hi: 0xaa},\n\t// Block 0x77, offset 0x27a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbb, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x78, offset 0x27d\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2d92, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d9c, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x8132, lo: 0xa6, hi: 0xac},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t// Block 0x79, offset 0x285\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x86, hi: 0x86},\n\t{value: 0x8132, lo: 0x9e, hi: 0x9e},\n\t// Block 0x7a, offset 0x289\n\t{value: 0x6b5a, lo: 0x06},\n\t{value: 0x9900, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb9, hi: 0xb9},\n\t{value: 0x9900, lo: 0xba, hi: 0xba},\n\t{value: 0x2db0, lo: 0xbb, hi: 0xbb},\n\t{value: 0x2da6, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2dba, lo: 0xbe, hi: 0xbe},\n\t// Block 0x7b, offset 0x290\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x83, hi: 0x83},\n\t// Block 0x7c, offset 0x293\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x9900, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2dc4, lo: 0xba, hi: 0xba},\n\t{value: 0x2dce, lo: 0xbb, hi: 0xbb},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7d, offset 0x299\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0x80, hi: 0x80},\n\t// Block 0x7e, offset 0x29b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7f, offset 0x29d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x80, offset 0x2a0\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xab, hi: 0xab},\n\t// Block 0x81, offset 0x2a2\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8102, lo: 0xba, hi: 0xba},\n\t// Block 0x82, offset 0x2a5\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xb4, hi: 0xb4},\n\t// Block 0x83, offset 0x2a7\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x87, hi: 0x87},\n\t// Block 0x84, offset 0x2a9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x99, hi: 0x99},\n\t// Block 0x85, offset 0x2ab\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0x82, hi: 0x82},\n\t{value: 0x8104, lo: 0x84, hi: 0x85},\n\t// Block 0x86, offset 0x2ae\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x97, hi: 0x97},\n\t// Block 0x87, offset 0x2b0\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0xb0, hi: 0xb4},\n\t// Block 0x88, offset 0x2b2\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb6},\n\t// Block 0x89, offset 0x2b4\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0x9e, hi: 0x9e},\n\t// Block 0x8a, offset 0x2b6\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x45cc, lo: 0x9e, hi: 0x9e},\n\t{value: 0x45d6, lo: 0x9f, hi: 0x9f},\n\t{value: 0x460a, lo: 0xa0, hi: 0xa0},\n\t{value: 0x4618, lo: 0xa1, hi: 0xa1},\n\t{value: 0x4626, lo: 0xa2, hi: 0xa2},\n\t{value: 0x4634, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4642, lo: 0xa4, hi: 0xa4},\n\t{value: 0x812b, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8101, lo: 0xa7, hi: 0xa9},\n\t{value: 0x8130, lo: 0xad, hi: 0xad},\n\t{value: 0x812b, lo: 0xae, hi: 0xb2},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbf},\n\t// Block 0x8b, offset 0x2c3\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x812d, lo: 0x80, hi: 0x82},\n\t{value: 0x8132, lo: 0x85, hi: 0x89},\n\t{value: 0x812d, lo: 0x8a, hi: 0x8b},\n\t{value: 0x8132, lo: 0xaa, hi: 0xad},\n\t{value: 0x45e0, lo: 0xbb, hi: 0xbb},\n\t{value: 0x45ea, lo: 0xbc, hi: 0xbc},\n\t{value: 0x4650, lo: 0xbd, hi: 0xbd},\n\t{value: 0x466c, lo: 0xbe, hi: 0xbe},\n\t{value: 0x465e, lo: 0xbf, hi: 0xbf},\n\t// Block 0x8c, offset 0x2cd\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x467a, lo: 0x80, hi: 0x80},\n\t// Block 0x8d, offset 0x2cf\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x82, hi: 0x84},\n\t// Block 0x8e, offset 0x2d1\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x0043, lo: 0x80, hi: 0x99},\n\t{value: 0x0083, lo: 0x9a, hi: 0xb3},\n\t{value: 0x0043, lo: 0xb4, hi: 0xbf},\n\t// Block 0x8f, offset 0x2d5\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x005b, lo: 0x80, hi: 0x8d},\n\t{value: 0x0083, lo: 0x8e, hi: 0x94},\n\t{value: 0x0093, lo: 0x96, hi: 0xa7},\n\t{value: 0x0043, lo: 0xa8, hi: 0xbf},\n\t// Block 0x90, offset 0x2da\n\t{value: 0x0002, lo: 0x0b},\n\t{value: 0x0073, lo: 0x80, hi: 0x81},\n\t{value: 0x0083, lo: 0x82, hi: 0x9b},\n\t{value: 0x0043, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0047, lo: 0x9e, hi: 0x9f},\n\t{value: 0x004f, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0055, lo: 0xa5, hi: 0xa6},\n\t{value: 0x005d, lo: 0xa9, hi: 0xac},\n\t{value: 0x0067, lo: 0xae, hi: 0xb5},\n\t{value: 0x0083, lo: 0xb6, hi: 0xb9},\n\t{value: 0x008d, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0091, lo: 0xbd, hi: 0xbf},\n\t// Block 0x91, offset 0x2e6\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x0097, lo: 0x80, hi: 0x83},\n\t{value: 0x00a1, lo: 0x85, hi: 0x8f},\n\t{value: 0x0043, lo: 0x90, hi: 0xa9},\n\t{value: 0x0083, lo: 0xaa, hi: 0xbf},\n\t// Block 0x92, offset 0x2eb\n\t{value: 0x0002, lo: 0x08},\n\t{value: 0x00af, lo: 0x80, hi: 0x83},\n\t{value: 0x0043, lo: 0x84, hi: 0x85},\n\t{value: 0x0049, lo: 0x87, hi: 0x8a},\n\t{value: 0x0055, lo: 0x8d, hi: 0x94},\n\t{value: 0x0067, lo: 0x96, hi: 0x9c},\n\t{value: 0x0083, lo: 0x9e, hi: 0xb7},\n\t{value: 0x0043, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0049, lo: 0xbb, hi: 0xbe},\n\t// Block 0x93, offset 0x2f4\n\t{value: 0x0002, lo: 0x05},\n\t{value: 0x0053, lo: 0x80, hi: 0x84},\n\t{value: 0x005f, lo: 0x86, hi: 0x86},\n\t{value: 0x0067, lo: 0x8a, hi: 0x90},\n\t{value: 0x0083, lo: 0x92, hi: 0xab},\n\t{value: 0x0043, lo: 0xac, hi: 0xbf},\n\t// Block 0x94, offset 0x2fa\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x006b, lo: 0x80, hi: 0x85},\n\t{value: 0x0083, lo: 0x86, hi: 0x9f},\n\t{value: 0x0043, lo: 0xa0, hi: 0xb9},\n\t{value: 0x0083, lo: 0xba, hi: 0xbf},\n\t// Block 0x95, offset 0x2ff\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x008f, lo: 0x80, hi: 0x93},\n\t{value: 0x0043, lo: 0x94, hi: 0xad},\n\t{value: 0x0083, lo: 0xae, hi: 0xbf},\n\t// Block 0x96, offset 0x303\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x00a7, lo: 0x80, hi: 0x87},\n\t{value: 0x0043, lo: 0x88, hi: 0xa1},\n\t{value: 0x0083, lo: 0xa2, hi: 0xbb},\n\t{value: 0x0043, lo: 0xbc, hi: 0xbf},\n\t// Block 0x97, offset 0x308\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x004b, lo: 0x80, hi: 0x95},\n\t{value: 0x0083, lo: 0x96, hi: 0xaf},\n\t{value: 0x0043, lo: 0xb0, hi: 0xbf},\n\t// Block 0x98, offset 0x30c\n\t{value: 0x0003, lo: 0x0f},\n\t{value: 0x01b8, lo: 0x80, hi: 0x80},\n\t{value: 0x045f, lo: 0x81, hi: 0x81},\n\t{value: 0x01bb, lo: 0x82, hi: 0x9a},\n\t{value: 0x045b, lo: 0x9b, hi: 0x9b},\n\t{value: 0x01c7, lo: 0x9c, hi: 0x9c},\n\t{value: 0x01d0, lo: 0x9d, hi: 0x9d},\n\t{value: 0x01d6, lo: 0x9e, hi: 0x9e},\n\t{value: 0x01fa, lo: 0x9f, hi: 0x9f},\n\t{value: 0x01eb, lo: 0xa0, hi: 0xa0},\n\t{value: 0x01e8, lo: 0xa1, hi: 0xa1},\n\t{value: 0x0173, lo: 0xa2, hi: 0xb2},\n\t{value: 0x0188, lo: 0xb3, hi: 0xb3},\n\t{value: 0x01a6, lo: 0xb4, hi: 0xba},\n\t{value: 0x045f, lo: 0xbb, hi: 0xbb},\n\t{value: 0x01bb, lo: 0xbc, hi: 0xbf},\n\t// Block 0x99, offset 0x31c\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x01c7, lo: 0x80, hi: 0x94},\n\t{value: 0x045b, lo: 0x95, hi: 0x95},\n\t{value: 0x01c7, lo: 0x96, hi: 0x96},\n\t{value: 0x01d0, lo: 0x97, hi: 0x97},\n\t{value: 0x01d6, lo: 0x98, hi: 0x98},\n\t{value: 0x01fa, lo: 0x99, hi: 0x99},\n\t{value: 0x01eb, lo: 0x9a, hi: 0x9a},\n\t{value: 0x01e8, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0173, lo: 0x9c, hi: 0xac},\n\t{value: 0x0188, lo: 0xad, hi: 0xad},\n\t{value: 0x01a6, lo: 0xae, hi: 0xb4},\n\t{value: 0x045f, lo: 0xb5, hi: 0xb5},\n\t{value: 0x01bb, lo: 0xb6, hi: 0xbf},\n\t// Block 0x9a, offset 0x32a\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x01d9, lo: 0x80, hi: 0x8e},\n\t{value: 0x045b, lo: 0x8f, hi: 0x8f},\n\t{value: 0x01c7, lo: 0x90, hi: 0x90},\n\t{value: 0x01d0, lo: 0x91, hi: 0x91},\n\t{value: 0x01d6, lo: 0x92, hi: 0x92},\n\t{value: 0x01fa, lo: 0x93, hi: 0x93},\n\t{value: 0x01eb, lo: 0x94, hi: 0x94},\n\t{value: 0x01e8, lo: 0x95, hi: 0x95},\n\t{value: 0x0173, lo: 0x96, hi: 0xa6},\n\t{value: 0x0188, lo: 0xa7, hi: 0xa7},\n\t{value: 0x01a6, lo: 0xa8, hi: 0xae},\n\t{value: 0x045f, lo: 0xaf, hi: 0xaf},\n\t{value: 0x01bb, lo: 0xb0, hi: 0xbf},\n\t// Block 0x9b, offset 0x338\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x01eb, lo: 0x80, hi: 0x88},\n\t{value: 0x045b, lo: 0x89, hi: 0x89},\n\t{value: 0x01c7, lo: 0x8a, hi: 0x8a},\n\t{value: 0x01d0, lo: 0x8b, hi: 0x8b},\n\t{value: 0x01d6, lo: 0x8c, hi: 0x8c},\n\t{value: 0x01fa, lo: 0x8d, hi: 0x8d},\n\t{value: 0x01eb, lo: 0x8e, hi: 0x8e},\n\t{value: 0x01e8, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0173, lo: 0x90, hi: 0xa0},\n\t{value: 0x0188, lo: 0xa1, hi: 0xa1},\n\t{value: 0x01a6, lo: 0xa2, hi: 0xa8},\n\t{value: 0x045f, lo: 0xa9, hi: 0xa9},\n\t{value: 0x01bb, lo: 0xaa, hi: 0xbf},\n\t// Block 0x9c, offset 0x346\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0x80, hi: 0x86},\n\t{value: 0x8132, lo: 0x88, hi: 0x98},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa1},\n\t{value: 0x8132, lo: 0xa3, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa6, hi: 0xaa},\n\t// Block 0x9d, offset 0x34c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x90, hi: 0x96},\n\t// Block 0x9e, offset 0x34e\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x84, hi: 0x89},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0x9f, offset 0x351\n\t{value: 0x0002, lo: 0x09},\n\t{value: 0x0063, lo: 0x80, hi: 0x89},\n\t{value: 0x1951, lo: 0x8a, hi: 0x8a},\n\t{value: 0x1981, lo: 0x8b, hi: 0x8b},\n\t{value: 0x199c, lo: 0x8c, hi: 0x8c},\n\t{value: 0x19a2, lo: 0x8d, hi: 0x8d},\n\t{value: 0x1bc0, lo: 0x8e, hi: 0x8e},\n\t{value: 0x19ae, lo: 0x8f, hi: 0x8f},\n\t{value: 0x197b, lo: 0xaa, hi: 0xaa},\n\t{value: 0x197e, lo: 0xab, hi: 0xab},\n\t// Block 0xa0, offset 0x35b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x193f, lo: 0x90, hi: 0x90},\n\t// Block 0xa1, offset 0x35d\n\t{value: 0x0028, lo: 0x09},\n\t{value: 0x2862, lo: 0x80, hi: 0x80},\n\t{value: 0x2826, lo: 0x81, hi: 0x81},\n\t{value: 0x2830, lo: 0x82, hi: 0x82},\n\t{value: 0x2844, lo: 0x83, hi: 0x84},\n\t{value: 0x284e, lo: 0x85, hi: 0x86},\n\t{value: 0x283a, lo: 0x87, hi: 0x87},\n\t{value: 0x2858, lo: 0x88, hi: 0x88},\n\t{value: 0x0b6f, lo: 0x90, hi: 0x90},\n\t{value: 0x08e7, lo: 0x91, hi: 0x91},\n}\n\n// recompMap: 7520 bytes (entries only)\nvar recompMap map[uint32]rune\nvar recompMapOnce sync.Once\n\nconst recompMapPacked = \"\" +\n\t\"\\x00A\\x03\\x00\\x00\\x00\\x00\\xc0\" + // 0x00410300: 0x000000C0\n\t\"\\x00A\\x03\\x01\\x00\\x00\\x00\\xc1\" + // 0x00410301: 0x000000C1\n\t\"\\x00A\\x03\\x02\\x00\\x00\\x00\\xc2\" + // 0x00410302: 0x000000C2\n\t\"\\x00A\\x03\\x03\\x00\\x00\\x00\\xc3\" + // 0x00410303: 0x000000C3\n\t\"\\x00A\\x03\\b\\x00\\x00\\x00\\xc4\" + // 0x00410308: 0x000000C4\n\t\"\\x00A\\x03\\n\\x00\\x00\\x00\\xc5\" + // 0x0041030A: 0x000000C5\n\t\"\\x00C\\x03'\\x00\\x00\\x00\\xc7\" + // 0x00430327: 0x000000C7\n\t\"\\x00E\\x03\\x00\\x00\\x00\\x00\\xc8\" + // 0x00450300: 0x000000C8\n\t\"\\x00E\\x03\\x01\\x00\\x00\\x00\\xc9\" + // 0x00450301: 0x000000C9\n\t\"\\x00E\\x03\\x02\\x00\\x00\\x00\\xca\" + // 0x00450302: 0x000000CA\n\t\"\\x00E\\x03\\b\\x00\\x00\\x00\\xcb\" + // 0x00450308: 0x000000CB\n\t\"\\x00I\\x03\\x00\\x00\\x00\\x00\\xcc\" + // 0x00490300: 0x000000CC\n\t\"\\x00I\\x03\\x01\\x00\\x00\\x00\\xcd\" + // 0x00490301: 0x000000CD\n\t\"\\x00I\\x03\\x02\\x00\\x00\\x00\\xce\" + // 0x00490302: 0x000000CE\n\t\"\\x00I\\x03\\b\\x00\\x00\\x00\\xcf\" + // 0x00490308: 0x000000CF\n\t\"\\x00N\\x03\\x03\\x00\\x00\\x00\\xd1\" + // 0x004E0303: 0x000000D1\n\t\"\\x00O\\x03\\x00\\x00\\x00\\x00\\xd2\" + // 0x004F0300: 0x000000D2\n\t\"\\x00O\\x03\\x01\\x00\\x00\\x00\\xd3\" + // 0x004F0301: 0x000000D3\n\t\"\\x00O\\x03\\x02\\x00\\x00\\x00\\xd4\" + // 0x004F0302: 0x000000D4\n\t\"\\x00O\\x03\\x03\\x00\\x00\\x00\\xd5\" + // 0x004F0303: 0x000000D5\n\t\"\\x00O\\x03\\b\\x00\\x00\\x00\\xd6\" + // 0x004F0308: 0x000000D6\n\t\"\\x00U\\x03\\x00\\x00\\x00\\x00\\xd9\" + // 0x00550300: 0x000000D9\n\t\"\\x00U\\x03\\x01\\x00\\x00\\x00\\xda\" + // 0x00550301: 0x000000DA\n\t\"\\x00U\\x03\\x02\\x00\\x00\\x00\\xdb\" + // 0x00550302: 0x000000DB\n\t\"\\x00U\\x03\\b\\x00\\x00\\x00\\xdc\" + // 0x00550308: 0x000000DC\n\t\"\\x00Y\\x03\\x01\\x00\\x00\\x00\\xdd\" + // 0x00590301: 0x000000DD\n\t\"\\x00a\\x03\\x00\\x00\\x00\\x00\\xe0\" + // 0x00610300: 0x000000E0\n\t\"\\x00a\\x03\\x01\\x00\\x00\\x00\\xe1\" + // 0x00610301: 0x000000E1\n\t\"\\x00a\\x03\\x02\\x00\\x00\\x00\\xe2\" + // 0x00610302: 0x000000E2\n\t\"\\x00a\\x03\\x03\\x00\\x00\\x00\\xe3\" + // 0x00610303: 0x000000E3\n\t\"\\x00a\\x03\\b\\x00\\x00\\x00\\xe4\" + // 0x00610308: 0x000000E4\n\t\"\\x00a\\x03\\n\\x00\\x00\\x00\\xe5\" + // 0x0061030A: 0x000000E5\n\t\"\\x00c\\x03'\\x00\\x00\\x00\\xe7\" + // 0x00630327: 0x000000E7\n\t\"\\x00e\\x03\\x00\\x00\\x00\\x00\\xe8\" + // 0x00650300: 0x000000E8\n\t\"\\x00e\\x03\\x01\\x00\\x00\\x00\\xe9\" + // 0x00650301: 0x000000E9\n\t\"\\x00e\\x03\\x02\\x00\\x00\\x00\\xea\" + // 0x00650302: 0x000000EA\n\t\"\\x00e\\x03\\b\\x00\\x00\\x00\\xeb\" + // 0x00650308: 0x000000EB\n\t\"\\x00i\\x03\\x00\\x00\\x00\\x00\\xec\" + // 0x00690300: 0x000000EC\n\t\"\\x00i\\x03\\x01\\x00\\x00\\x00\\xed\" + // 0x00690301: 0x000000ED\n\t\"\\x00i\\x03\\x02\\x00\\x00\\x00\\xee\" + // 0x00690302: 0x000000EE\n\t\"\\x00i\\x03\\b\\x00\\x00\\x00\\xef\" + // 0x00690308: 0x000000EF\n\t\"\\x00n\\x03\\x03\\x00\\x00\\x00\\xf1\" + // 0x006E0303: 0x000000F1\n\t\"\\x00o\\x03\\x00\\x00\\x00\\x00\\xf2\" + // 0x006F0300: 0x000000F2\n\t\"\\x00o\\x03\\x01\\x00\\x00\\x00\\xf3\" + // 0x006F0301: 0x000000F3\n\t\"\\x00o\\x03\\x02\\x00\\x00\\x00\\xf4\" + // 0x006F0302: 0x000000F4\n\t\"\\x00o\\x03\\x03\\x00\\x00\\x00\\xf5\" + // 0x006F0303: 0x000000F5\n\t\"\\x00o\\x03\\b\\x00\\x00\\x00\\xf6\" + // 0x006F0308: 0x000000F6\n\t\"\\x00u\\x03\\x00\\x00\\x00\\x00\\xf9\" + // 0x00750300: 0x000000F9\n\t\"\\x00u\\x03\\x01\\x00\\x00\\x00\\xfa\" + // 0x00750301: 0x000000FA\n\t\"\\x00u\\x03\\x02\\x00\\x00\\x00\\xfb\" + // 0x00750302: 0x000000FB\n\t\"\\x00u\\x03\\b\\x00\\x00\\x00\\xfc\" + // 0x00750308: 0x000000FC\n\t\"\\x00y\\x03\\x01\\x00\\x00\\x00\\xfd\" + // 0x00790301: 0x000000FD\n\t\"\\x00y\\x03\\b\\x00\\x00\\x00\\xff\" + // 0x00790308: 0x000000FF\n\t\"\\x00A\\x03\\x04\\x00\\x00\\x01\\x00\" + // 0x00410304: 0x00000100\n\t\"\\x00a\\x03\\x04\\x00\\x00\\x01\\x01\" + // 0x00610304: 0x00000101\n\t\"\\x00A\\x03\\x06\\x00\\x00\\x01\\x02\" + // 0x00410306: 0x00000102\n\t\"\\x00a\\x03\\x06\\x00\\x00\\x01\\x03\" + // 0x00610306: 0x00000103\n\t\"\\x00A\\x03(\\x00\\x00\\x01\\x04\" + // 0x00410328: 0x00000104\n\t\"\\x00a\\x03(\\x00\\x00\\x01\\x05\" + // 0x00610328: 0x00000105\n\t\"\\x00C\\x03\\x01\\x00\\x00\\x01\\x06\" + // 0x00430301: 0x00000106\n\t\"\\x00c\\x03\\x01\\x00\\x00\\x01\\a\" + // 0x00630301: 0x00000107\n\t\"\\x00C\\x03\\x02\\x00\\x00\\x01\\b\" + // 0x00430302: 0x00000108\n\t\"\\x00c\\x03\\x02\\x00\\x00\\x01\\t\" + // 0x00630302: 0x00000109\n\t\"\\x00C\\x03\\a\\x00\\x00\\x01\\n\" + // 0x00430307: 0x0000010A\n\t\"\\x00c\\x03\\a\\x00\\x00\\x01\\v\" + // 0x00630307: 0x0000010B\n\t\"\\x00C\\x03\\f\\x00\\x00\\x01\\f\" + // 0x0043030C: 0x0000010C\n\t\"\\x00c\\x03\\f\\x00\\x00\\x01\\r\" + // 0x0063030C: 0x0000010D\n\t\"\\x00D\\x03\\f\\x00\\x00\\x01\\x0e\" + // 0x0044030C: 0x0000010E\n\t\"\\x00d\\x03\\f\\x00\\x00\\x01\\x0f\" + // 0x0064030C: 0x0000010F\n\t\"\\x00E\\x03\\x04\\x00\\x00\\x01\\x12\" + // 0x00450304: 0x00000112\n\t\"\\x00e\\x03\\x04\\x00\\x00\\x01\\x13\" + // 0x00650304: 0x00000113\n\t\"\\x00E\\x03\\x06\\x00\\x00\\x01\\x14\" + // 0x00450306: 0x00000114\n\t\"\\x00e\\x03\\x06\\x00\\x00\\x01\\x15\" + // 0x00650306: 0x00000115\n\t\"\\x00E\\x03\\a\\x00\\x00\\x01\\x16\" + // 0x00450307: 0x00000116\n\t\"\\x00e\\x03\\a\\x00\\x00\\x01\\x17\" + // 0x00650307: 0x00000117\n\t\"\\x00E\\x03(\\x00\\x00\\x01\\x18\" + // 0x00450328: 0x00000118\n\t\"\\x00e\\x03(\\x00\\x00\\x01\\x19\" + // 0x00650328: 0x00000119\n\t\"\\x00E\\x03\\f\\x00\\x00\\x01\\x1a\" + // 0x0045030C: 0x0000011A\n\t\"\\x00e\\x03\\f\\x00\\x00\\x01\\x1b\" + // 0x0065030C: 0x0000011B\n\t\"\\x00G\\x03\\x02\\x00\\x00\\x01\\x1c\" + // 0x00470302: 0x0000011C\n\t\"\\x00g\\x03\\x02\\x00\\x00\\x01\\x1d\" + // 0x00670302: 0x0000011D\n\t\"\\x00G\\x03\\x06\\x00\\x00\\x01\\x1e\" + // 0x00470306: 0x0000011E\n\t\"\\x00g\\x03\\x06\\x00\\x00\\x01\\x1f\" + // 0x00670306: 0x0000011F\n\t\"\\x00G\\x03\\a\\x00\\x00\\x01 \" + // 0x00470307: 0x00000120\n\t\"\\x00g\\x03\\a\\x00\\x00\\x01!\" + // 0x00670307: 0x00000121\n\t\"\\x00G\\x03'\\x00\\x00\\x01\\\"\" + // 0x00470327: 0x00000122\n\t\"\\x00g\\x03'\\x00\\x00\\x01#\" + // 0x00670327: 0x00000123\n\t\"\\x00H\\x03\\x02\\x00\\x00\\x01$\" + // 0x00480302: 0x00000124\n\t\"\\x00h\\x03\\x02\\x00\\x00\\x01%\" + // 0x00680302: 0x00000125\n\t\"\\x00I\\x03\\x03\\x00\\x00\\x01(\" + // 0x00490303: 0x00000128\n\t\"\\x00i\\x03\\x03\\x00\\x00\\x01)\" + // 0x00690303: 0x00000129\n\t\"\\x00I\\x03\\x04\\x00\\x00\\x01*\" + // 0x00490304: 0x0000012A\n\t\"\\x00i\\x03\\x04\\x00\\x00\\x01+\" + // 0x00690304: 0x0000012B\n\t\"\\x00I\\x03\\x06\\x00\\x00\\x01,\" + // 0x00490306: 0x0000012C\n\t\"\\x00i\\x03\\x06\\x00\\x00\\x01-\" + // 0x00690306: 0x0000012D\n\t\"\\x00I\\x03(\\x00\\x00\\x01.\" + // 0x00490328: 0x0000012E\n\t\"\\x00i\\x03(\\x00\\x00\\x01/\" + // 0x00690328: 0x0000012F\n\t\"\\x00I\\x03\\a\\x00\\x00\\x010\" + // 0x00490307: 0x00000130\n\t\"\\x00J\\x03\\x02\\x00\\x00\\x014\" + // 0x004A0302: 0x00000134\n\t\"\\x00j\\x03\\x02\\x00\\x00\\x015\" + // 0x006A0302: 0x00000135\n\t\"\\x00K\\x03'\\x00\\x00\\x016\" + // 0x004B0327: 0x00000136\n\t\"\\x00k\\x03'\\x00\\x00\\x017\" + // 0x006B0327: 0x00000137\n\t\"\\x00L\\x03\\x01\\x00\\x00\\x019\" + // 0x004C0301: 0x00000139\n\t\"\\x00l\\x03\\x01\\x00\\x00\\x01:\" + // 0x006C0301: 0x0000013A\n\t\"\\x00L\\x03'\\x00\\x00\\x01;\" + // 0x004C0327: 0x0000013B\n\t\"\\x00l\\x03'\\x00\\x00\\x01<\" + // 0x006C0327: 0x0000013C\n\t\"\\x00L\\x03\\f\\x00\\x00\\x01=\" + // 0x004C030C: 0x0000013D\n\t\"\\x00l\\x03\\f\\x00\\x00\\x01>\" + // 0x006C030C: 0x0000013E\n\t\"\\x00N\\x03\\x01\\x00\\x00\\x01C\" + // 0x004E0301: 0x00000143\n\t\"\\x00n\\x03\\x01\\x00\\x00\\x01D\" + // 0x006E0301: 0x00000144\n\t\"\\x00N\\x03'\\x00\\x00\\x01E\" + // 0x004E0327: 0x00000145\n\t\"\\x00n\\x03'\\x00\\x00\\x01F\" + // 0x006E0327: 0x00000146\n\t\"\\x00N\\x03\\f\\x00\\x00\\x01G\" + // 0x004E030C: 0x00000147\n\t\"\\x00n\\x03\\f\\x00\\x00\\x01H\" + // 0x006E030C: 0x00000148\n\t\"\\x00O\\x03\\x04\\x00\\x00\\x01L\" + // 0x004F0304: 0x0000014C\n\t\"\\x00o\\x03\\x04\\x00\\x00\\x01M\" + // 0x006F0304: 0x0000014D\n\t\"\\x00O\\x03\\x06\\x00\\x00\\x01N\" + // 0x004F0306: 0x0000014E\n\t\"\\x00o\\x03\\x06\\x00\\x00\\x01O\" + // 0x006F0306: 0x0000014F\n\t\"\\x00O\\x03\\v\\x00\\x00\\x01P\" + // 0x004F030B: 0x00000150\n\t\"\\x00o\\x03\\v\\x00\\x00\\x01Q\" + // 0x006F030B: 0x00000151\n\t\"\\x00R\\x03\\x01\\x00\\x00\\x01T\" + // 0x00520301: 0x00000154\n\t\"\\x00r\\x03\\x01\\x00\\x00\\x01U\" + // 0x00720301: 0x00000155\n\t\"\\x00R\\x03'\\x00\\x00\\x01V\" + // 0x00520327: 0x00000156\n\t\"\\x00r\\x03'\\x00\\x00\\x01W\" + // 0x00720327: 0x00000157\n\t\"\\x00R\\x03\\f\\x00\\x00\\x01X\" + // 0x0052030C: 0x00000158\n\t\"\\x00r\\x03\\f\\x00\\x00\\x01Y\" + // 0x0072030C: 0x00000159\n\t\"\\x00S\\x03\\x01\\x00\\x00\\x01Z\" + // 0x00530301: 0x0000015A\n\t\"\\x00s\\x03\\x01\\x00\\x00\\x01[\" + // 0x00730301: 0x0000015B\n\t\"\\x00S\\x03\\x02\\x00\\x00\\x01\\\\\" + // 0x00530302: 0x0000015C\n\t\"\\x00s\\x03\\x02\\x00\\x00\\x01]\" + // 0x00730302: 0x0000015D\n\t\"\\x00S\\x03'\\x00\\x00\\x01^\" + // 0x00530327: 0x0000015E\n\t\"\\x00s\\x03'\\x00\\x00\\x01_\" + // 0x00730327: 0x0000015F\n\t\"\\x00S\\x03\\f\\x00\\x00\\x01`\" + // 0x0053030C: 0x00000160\n\t\"\\x00s\\x03\\f\\x00\\x00\\x01a\" + // 0x0073030C: 0x00000161\n\t\"\\x00T\\x03'\\x00\\x00\\x01b\" + // 0x00540327: 0x00000162\n\t\"\\x00t\\x03'\\x00\\x00\\x01c\" + // 0x00740327: 0x00000163\n\t\"\\x00T\\x03\\f\\x00\\x00\\x01d\" + // 0x0054030C: 0x00000164\n\t\"\\x00t\\x03\\f\\x00\\x00\\x01e\" + // 0x0074030C: 0x00000165\n\t\"\\x00U\\x03\\x03\\x00\\x00\\x01h\" + // 0x00550303: 0x00000168\n\t\"\\x00u\\x03\\x03\\x00\\x00\\x01i\" + // 0x00750303: 0x00000169\n\t\"\\x00U\\x03\\x04\\x00\\x00\\x01j\" + // 0x00550304: 0x0000016A\n\t\"\\x00u\\x03\\x04\\x00\\x00\\x01k\" + // 0x00750304: 0x0000016B\n\t\"\\x00U\\x03\\x06\\x00\\x00\\x01l\" + // 0x00550306: 0x0000016C\n\t\"\\x00u\\x03\\x06\\x00\\x00\\x01m\" + // 0x00750306: 0x0000016D\n\t\"\\x00U\\x03\\n\\x00\\x00\\x01n\" + // 0x0055030A: 0x0000016E\n\t\"\\x00u\\x03\\n\\x00\\x00\\x01o\" + // 0x0075030A: 0x0000016F\n\t\"\\x00U\\x03\\v\\x00\\x00\\x01p\" + // 0x0055030B: 0x00000170\n\t\"\\x00u\\x03\\v\\x00\\x00\\x01q\" + // 0x0075030B: 0x00000171\n\t\"\\x00U\\x03(\\x00\\x00\\x01r\" + // 0x00550328: 0x00000172\n\t\"\\x00u\\x03(\\x00\\x00\\x01s\" + // 0x00750328: 0x00000173\n\t\"\\x00W\\x03\\x02\\x00\\x00\\x01t\" + // 0x00570302: 0x00000174\n\t\"\\x00w\\x03\\x02\\x00\\x00\\x01u\" + // 0x00770302: 0x00000175\n\t\"\\x00Y\\x03\\x02\\x00\\x00\\x01v\" + // 0x00590302: 0x00000176\n\t\"\\x00y\\x03\\x02\\x00\\x00\\x01w\" + // 0x00790302: 0x00000177\n\t\"\\x00Y\\x03\\b\\x00\\x00\\x01x\" + // 0x00590308: 0x00000178\n\t\"\\x00Z\\x03\\x01\\x00\\x00\\x01y\" + // 0x005A0301: 0x00000179\n\t\"\\x00z\\x03\\x01\\x00\\x00\\x01z\" + // 0x007A0301: 0x0000017A\n\t\"\\x00Z\\x03\\a\\x00\\x00\\x01{\" + // 0x005A0307: 0x0000017B\n\t\"\\x00z\\x03\\a\\x00\\x00\\x01|\" + // 0x007A0307: 0x0000017C\n\t\"\\x00Z\\x03\\f\\x00\\x00\\x01}\" + // 0x005A030C: 0x0000017D\n\t\"\\x00z\\x03\\f\\x00\\x00\\x01~\" + // 0x007A030C: 0x0000017E\n\t\"\\x00O\\x03\\x1b\\x00\\x00\\x01\\xa0\" + // 0x004F031B: 0x000001A0\n\t\"\\x00o\\x03\\x1b\\x00\\x00\\x01\\xa1\" + // 0x006F031B: 0x000001A1\n\t\"\\x00U\\x03\\x1b\\x00\\x00\\x01\\xaf\" + // 0x0055031B: 0x000001AF\n\t\"\\x00u\\x03\\x1b\\x00\\x00\\x01\\xb0\" + // 0x0075031B: 0x000001B0\n\t\"\\x00A\\x03\\f\\x00\\x00\\x01\\xcd\" + // 0x0041030C: 0x000001CD\n\t\"\\x00a\\x03\\f\\x00\\x00\\x01\\xce\" + // 0x0061030C: 0x000001CE\n\t\"\\x00I\\x03\\f\\x00\\x00\\x01\\xcf\" + // 0x0049030C: 0x000001CF\n\t\"\\x00i\\x03\\f\\x00\\x00\\x01\\xd0\" + // 0x0069030C: 0x000001D0\n\t\"\\x00O\\x03\\f\\x00\\x00\\x01\\xd1\" + // 0x004F030C: 0x000001D1\n\t\"\\x00o\\x03\\f\\x00\\x00\\x01\\xd2\" + // 0x006F030C: 0x000001D2\n\t\"\\x00U\\x03\\f\\x00\\x00\\x01\\xd3\" + // 0x0055030C: 0x000001D3\n\t\"\\x00u\\x03\\f\\x00\\x00\\x01\\xd4\" + // 0x0075030C: 0x000001D4\n\t\"\\x00\\xdc\\x03\\x04\\x00\\x00\\x01\\xd5\" + // 0x00DC0304: 0x000001D5\n\t\"\\x00\\xfc\\x03\\x04\\x00\\x00\\x01\\xd6\" + // 0x00FC0304: 0x000001D6\n\t\"\\x00\\xdc\\x03\\x01\\x00\\x00\\x01\\xd7\" + // 0x00DC0301: 0x000001D7\n\t\"\\x00\\xfc\\x03\\x01\\x00\\x00\\x01\\xd8\" + // 0x00FC0301: 0x000001D8\n\t\"\\x00\\xdc\\x03\\f\\x00\\x00\\x01\\xd9\" + // 0x00DC030C: 0x000001D9\n\t\"\\x00\\xfc\\x03\\f\\x00\\x00\\x01\\xda\" + // 0x00FC030C: 0x000001DA\n\t\"\\x00\\xdc\\x03\\x00\\x00\\x00\\x01\\xdb\" + // 0x00DC0300: 0x000001DB\n\t\"\\x00\\xfc\\x03\\x00\\x00\\x00\\x01\\xdc\" + // 0x00FC0300: 0x000001DC\n\t\"\\x00\\xc4\\x03\\x04\\x00\\x00\\x01\\xde\" + // 0x00C40304: 0x000001DE\n\t\"\\x00\\xe4\\x03\\x04\\x00\\x00\\x01\\xdf\" + // 0x00E40304: 0x000001DF\n\t\"\\x02&\\x03\\x04\\x00\\x00\\x01\\xe0\" + // 0x02260304: 0x000001E0\n\t\"\\x02'\\x03\\x04\\x00\\x00\\x01\\xe1\" + // 0x02270304: 0x000001E1\n\t\"\\x00\\xc6\\x03\\x04\\x00\\x00\\x01\\xe2\" + // 0x00C60304: 0x000001E2\n\t\"\\x00\\xe6\\x03\\x04\\x00\\x00\\x01\\xe3\" + // 0x00E60304: 0x000001E3\n\t\"\\x00G\\x03\\f\\x00\\x00\\x01\\xe6\" + // 0x0047030C: 0x000001E6\n\t\"\\x00g\\x03\\f\\x00\\x00\\x01\\xe7\" + // 0x0067030C: 0x000001E7\n\t\"\\x00K\\x03\\f\\x00\\x00\\x01\\xe8\" + // 0x004B030C: 0x000001E8\n\t\"\\x00k\\x03\\f\\x00\\x00\\x01\\xe9\" + // 0x006B030C: 0x000001E9\n\t\"\\x00O\\x03(\\x00\\x00\\x01\\xea\" + // 0x004F0328: 0x000001EA\n\t\"\\x00o\\x03(\\x00\\x00\\x01\\xeb\" + // 0x006F0328: 0x000001EB\n\t\"\\x01\\xea\\x03\\x04\\x00\\x00\\x01\\xec\" + // 0x01EA0304: 0x000001EC\n\t\"\\x01\\xeb\\x03\\x04\\x00\\x00\\x01\\xed\" + // 0x01EB0304: 0x000001ED\n\t\"\\x01\\xb7\\x03\\f\\x00\\x00\\x01\\xee\" + // 0x01B7030C: 0x000001EE\n\t\"\\x02\\x92\\x03\\f\\x00\\x00\\x01\\xef\" + // 0x0292030C: 0x000001EF\n\t\"\\x00j\\x03\\f\\x00\\x00\\x01\\xf0\" + // 0x006A030C: 0x000001F0\n\t\"\\x00G\\x03\\x01\\x00\\x00\\x01\\xf4\" + // 0x00470301: 0x000001F4\n\t\"\\x00g\\x03\\x01\\x00\\x00\\x01\\xf5\" + // 0x00670301: 0x000001F5\n\t\"\\x00N\\x03\\x00\\x00\\x00\\x01\\xf8\" + // 0x004E0300: 0x000001F8\n\t\"\\x00n\\x03\\x00\\x00\\x00\\x01\\xf9\" + // 0x006E0300: 0x000001F9\n\t\"\\x00\\xc5\\x03\\x01\\x00\\x00\\x01\\xfa\" + // 0x00C50301: 0x000001FA\n\t\"\\x00\\xe5\\x03\\x01\\x00\\x00\\x01\\xfb\" + // 0x00E50301: 0x000001FB\n\t\"\\x00\\xc6\\x03\\x01\\x00\\x00\\x01\\xfc\" + // 0x00C60301: 0x000001FC\n\t\"\\x00\\xe6\\x03\\x01\\x00\\x00\\x01\\xfd\" + // 0x00E60301: 0x000001FD\n\t\"\\x00\\xd8\\x03\\x01\\x00\\x00\\x01\\xfe\" + // 0x00D80301: 0x000001FE\n\t\"\\x00\\xf8\\x03\\x01\\x00\\x00\\x01\\xff\" + // 0x00F80301: 0x000001FF\n\t\"\\x00A\\x03\\x0f\\x00\\x00\\x02\\x00\" + // 0x0041030F: 0x00000200\n\t\"\\x00a\\x03\\x0f\\x00\\x00\\x02\\x01\" + // 0x0061030F: 0x00000201\n\t\"\\x00A\\x03\\x11\\x00\\x00\\x02\\x02\" + // 0x00410311: 0x00000202\n\t\"\\x00a\\x03\\x11\\x00\\x00\\x02\\x03\" + // 0x00610311: 0x00000203\n\t\"\\x00E\\x03\\x0f\\x00\\x00\\x02\\x04\" + // 0x0045030F: 0x00000204\n\t\"\\x00e\\x03\\x0f\\x00\\x00\\x02\\x05\" + // 0x0065030F: 0x00000205\n\t\"\\x00E\\x03\\x11\\x00\\x00\\x02\\x06\" + // 0x00450311: 0x00000206\n\t\"\\x00e\\x03\\x11\\x00\\x00\\x02\\a\" + // 0x00650311: 0x00000207\n\t\"\\x00I\\x03\\x0f\\x00\\x00\\x02\\b\" + // 0x0049030F: 0x00000208\n\t\"\\x00i\\x03\\x0f\\x00\\x00\\x02\\t\" + // 0x0069030F: 0x00000209\n\t\"\\x00I\\x03\\x11\\x00\\x00\\x02\\n\" + // 0x00490311: 0x0000020A\n\t\"\\x00i\\x03\\x11\\x00\\x00\\x02\\v\" + // 0x00690311: 0x0000020B\n\t\"\\x00O\\x03\\x0f\\x00\\x00\\x02\\f\" + // 0x004F030F: 0x0000020C\n\t\"\\x00o\\x03\\x0f\\x00\\x00\\x02\\r\" + // 0x006F030F: 0x0000020D\n\t\"\\x00O\\x03\\x11\\x00\\x00\\x02\\x0e\" + // 0x004F0311: 0x0000020E\n\t\"\\x00o\\x03\\x11\\x00\\x00\\x02\\x0f\" + // 0x006F0311: 0x0000020F\n\t\"\\x00R\\x03\\x0f\\x00\\x00\\x02\\x10\" + // 0x0052030F: 0x00000210\n\t\"\\x00r\\x03\\x0f\\x00\\x00\\x02\\x11\" + // 0x0072030F: 0x00000211\n\t\"\\x00R\\x03\\x11\\x00\\x00\\x02\\x12\" + // 0x00520311: 0x00000212\n\t\"\\x00r\\x03\\x11\\x00\\x00\\x02\\x13\" + // 0x00720311: 0x00000213\n\t\"\\x00U\\x03\\x0f\\x00\\x00\\x02\\x14\" + // 0x0055030F: 0x00000214\n\t\"\\x00u\\x03\\x0f\\x00\\x00\\x02\\x15\" + // 0x0075030F: 0x00000215\n\t\"\\x00U\\x03\\x11\\x00\\x00\\x02\\x16\" + // 0x00550311: 0x00000216\n\t\"\\x00u\\x03\\x11\\x00\\x00\\x02\\x17\" + // 0x00750311: 0x00000217\n\t\"\\x00S\\x03&\\x00\\x00\\x02\\x18\" + // 0x00530326: 0x00000218\n\t\"\\x00s\\x03&\\x00\\x00\\x02\\x19\" + // 0x00730326: 0x00000219\n\t\"\\x00T\\x03&\\x00\\x00\\x02\\x1a\" + // 0x00540326: 0x0000021A\n\t\"\\x00t\\x03&\\x00\\x00\\x02\\x1b\" + // 0x00740326: 0x0000021B\n\t\"\\x00H\\x03\\f\\x00\\x00\\x02\\x1e\" + // 0x0048030C: 0x0000021E\n\t\"\\x00h\\x03\\f\\x00\\x00\\x02\\x1f\" + // 0x0068030C: 0x0000021F\n\t\"\\x00A\\x03\\a\\x00\\x00\\x02&\" + // 0x00410307: 0x00000226\n\t\"\\x00a\\x03\\a\\x00\\x00\\x02'\" + // 0x00610307: 0x00000227\n\t\"\\x00E\\x03'\\x00\\x00\\x02(\" + // 0x00450327: 0x00000228\n\t\"\\x00e\\x03'\\x00\\x00\\x02)\" + // 0x00650327: 0x00000229\n\t\"\\x00\\xd6\\x03\\x04\\x00\\x00\\x02*\" + // 0x00D60304: 0x0000022A\n\t\"\\x00\\xf6\\x03\\x04\\x00\\x00\\x02+\" + // 0x00F60304: 0x0000022B\n\t\"\\x00\\xd5\\x03\\x04\\x00\\x00\\x02,\" + // 0x00D50304: 0x0000022C\n\t\"\\x00\\xf5\\x03\\x04\\x00\\x00\\x02-\" + // 0x00F50304: 0x0000022D\n\t\"\\x00O\\x03\\a\\x00\\x00\\x02.\" + // 0x004F0307: 0x0000022E\n\t\"\\x00o\\x03\\a\\x00\\x00\\x02/\" + // 0x006F0307: 0x0000022F\n\t\"\\x02.\\x03\\x04\\x00\\x00\\x020\" + // 0x022E0304: 0x00000230\n\t\"\\x02/\\x03\\x04\\x00\\x00\\x021\" + // 0x022F0304: 0x00000231\n\t\"\\x00Y\\x03\\x04\\x00\\x00\\x022\" + // 0x00590304: 0x00000232\n\t\"\\x00y\\x03\\x04\\x00\\x00\\x023\" + // 0x00790304: 0x00000233\n\t\"\\x00\\xa8\\x03\\x01\\x00\\x00\\x03\\x85\" + // 0x00A80301: 0x00000385\n\t\"\\x03\\x91\\x03\\x01\\x00\\x00\\x03\\x86\" + // 0x03910301: 0x00000386\n\t\"\\x03\\x95\\x03\\x01\\x00\\x00\\x03\\x88\" + // 0x03950301: 0x00000388\n\t\"\\x03\\x97\\x03\\x01\\x00\\x00\\x03\\x89\" + // 0x03970301: 0x00000389\n\t\"\\x03\\x99\\x03\\x01\\x00\\x00\\x03\\x8a\" + // 0x03990301: 0x0000038A\n\t\"\\x03\\x9f\\x03\\x01\\x00\\x00\\x03\\x8c\" + // 0x039F0301: 0x0000038C\n\t\"\\x03\\xa5\\x03\\x01\\x00\\x00\\x03\\x8e\" + // 0x03A50301: 0x0000038E\n\t\"\\x03\\xa9\\x03\\x01\\x00\\x00\\x03\\x8f\" + // 0x03A90301: 0x0000038F\n\t\"\\x03\\xca\\x03\\x01\\x00\\x00\\x03\\x90\" + // 0x03CA0301: 0x00000390\n\t\"\\x03\\x99\\x03\\b\\x00\\x00\\x03\\xaa\" + // 0x03990308: 0x000003AA\n\t\"\\x03\\xa5\\x03\\b\\x00\\x00\\x03\\xab\" + // 0x03A50308: 0x000003AB\n\t\"\\x03\\xb1\\x03\\x01\\x00\\x00\\x03\\xac\" + // 0x03B10301: 0x000003AC\n\t\"\\x03\\xb5\\x03\\x01\\x00\\x00\\x03\\xad\" + // 0x03B50301: 0x000003AD\n\t\"\\x03\\xb7\\x03\\x01\\x00\\x00\\x03\\xae\" + // 0x03B70301: 0x000003AE\n\t\"\\x03\\xb9\\x03\\x01\\x00\\x00\\x03\\xaf\" + // 0x03B90301: 0x000003AF\n\t\"\\x03\\xcb\\x03\\x01\\x00\\x00\\x03\\xb0\" + // 0x03CB0301: 0x000003B0\n\t\"\\x03\\xb9\\x03\\b\\x00\\x00\\x03\\xca\" + // 0x03B90308: 0x000003CA\n\t\"\\x03\\xc5\\x03\\b\\x00\\x00\\x03\\xcb\" + // 0x03C50308: 0x000003CB\n\t\"\\x03\\xbf\\x03\\x01\\x00\\x00\\x03\\xcc\" + // 0x03BF0301: 0x000003CC\n\t\"\\x03\\xc5\\x03\\x01\\x00\\x00\\x03\\xcd\" + // 0x03C50301: 0x000003CD\n\t\"\\x03\\xc9\\x03\\x01\\x00\\x00\\x03\\xce\" + // 0x03C90301: 0x000003CE\n\t\"\\x03\\xd2\\x03\\x01\\x00\\x00\\x03\\xd3\" + // 0x03D20301: 0x000003D3\n\t\"\\x03\\xd2\\x03\\b\\x00\\x00\\x03\\xd4\" + // 0x03D20308: 0x000003D4\n\t\"\\x04\\x15\\x03\\x00\\x00\\x00\\x04\\x00\" + // 0x04150300: 0x00000400\n\t\"\\x04\\x15\\x03\\b\\x00\\x00\\x04\\x01\" + // 0x04150308: 0x00000401\n\t\"\\x04\\x13\\x03\\x01\\x00\\x00\\x04\\x03\" + // 0x04130301: 0x00000403\n\t\"\\x04\\x06\\x03\\b\\x00\\x00\\x04\\a\" + // 0x04060308: 0x00000407\n\t\"\\x04\\x1a\\x03\\x01\\x00\\x00\\x04\\f\" + // 0x041A0301: 0x0000040C\n\t\"\\x04\\x18\\x03\\x00\\x00\\x00\\x04\\r\" + // 0x04180300: 0x0000040D\n\t\"\\x04#\\x03\\x06\\x00\\x00\\x04\\x0e\" + // 0x04230306: 0x0000040E\n\t\"\\x04\\x18\\x03\\x06\\x00\\x00\\x04\\x19\" + // 0x04180306: 0x00000419\n\t\"\\x048\\x03\\x06\\x00\\x00\\x049\" + // 0x04380306: 0x00000439\n\t\"\\x045\\x03\\x00\\x00\\x00\\x04P\" + // 0x04350300: 0x00000450\n\t\"\\x045\\x03\\b\\x00\\x00\\x04Q\" + // 0x04350308: 0x00000451\n\t\"\\x043\\x03\\x01\\x00\\x00\\x04S\" + // 0x04330301: 0x00000453\n\t\"\\x04V\\x03\\b\\x00\\x00\\x04W\" + // 0x04560308: 0x00000457\n\t\"\\x04:\\x03\\x01\\x00\\x00\\x04\\\\\" + // 0x043A0301: 0x0000045C\n\t\"\\x048\\x03\\x00\\x00\\x00\\x04]\" + // 0x04380300: 0x0000045D\n\t\"\\x04C\\x03\\x06\\x00\\x00\\x04^\" + // 0x04430306: 0x0000045E\n\t\"\\x04t\\x03\\x0f\\x00\\x00\\x04v\" + // 0x0474030F: 0x00000476\n\t\"\\x04u\\x03\\x0f\\x00\\x00\\x04w\" + // 0x0475030F: 0x00000477\n\t\"\\x04\\x16\\x03\\x06\\x00\\x00\\x04\\xc1\" + // 0x04160306: 0x000004C1\n\t\"\\x046\\x03\\x06\\x00\\x00\\x04\\xc2\" + // 0x04360306: 0x000004C2\n\t\"\\x04\\x10\\x03\\x06\\x00\\x00\\x04\\xd0\" + // 0x04100306: 0x000004D0\n\t\"\\x040\\x03\\x06\\x00\\x00\\x04\\xd1\" + // 0x04300306: 0x000004D1\n\t\"\\x04\\x10\\x03\\b\\x00\\x00\\x04\\xd2\" + // 0x04100308: 0x000004D2\n\t\"\\x040\\x03\\b\\x00\\x00\\x04\\xd3\" + // 0x04300308: 0x000004D3\n\t\"\\x04\\x15\\x03\\x06\\x00\\x00\\x04\\xd6\" + // 0x04150306: 0x000004D6\n\t\"\\x045\\x03\\x06\\x00\\x00\\x04\\xd7\" + // 0x04350306: 0x000004D7\n\t\"\\x04\\xd8\\x03\\b\\x00\\x00\\x04\\xda\" + // 0x04D80308: 0x000004DA\n\t\"\\x04\\xd9\\x03\\b\\x00\\x00\\x04\\xdb\" + // 0x04D90308: 0x000004DB\n\t\"\\x04\\x16\\x03\\b\\x00\\x00\\x04\\xdc\" + // 0x04160308: 0x000004DC\n\t\"\\x046\\x03\\b\\x00\\x00\\x04\\xdd\" + // 0x04360308: 0x000004DD\n\t\"\\x04\\x17\\x03\\b\\x00\\x00\\x04\\xde\" + // 0x04170308: 0x000004DE\n\t\"\\x047\\x03\\b\\x00\\x00\\x04\\xdf\" + // 0x04370308: 0x000004DF\n\t\"\\x04\\x18\\x03\\x04\\x00\\x00\\x04\\xe2\" + // 0x04180304: 0x000004E2\n\t\"\\x048\\x03\\x04\\x00\\x00\\x04\\xe3\" + // 0x04380304: 0x000004E3\n\t\"\\x04\\x18\\x03\\b\\x00\\x00\\x04\\xe4\" + // 0x04180308: 0x000004E4\n\t\"\\x048\\x03\\b\\x00\\x00\\x04\\xe5\" + // 0x04380308: 0x000004E5\n\t\"\\x04\\x1e\\x03\\b\\x00\\x00\\x04\\xe6\" + // 0x041E0308: 0x000004E6\n\t\"\\x04>\\x03\\b\\x00\\x00\\x04\\xe7\" + // 0x043E0308: 0x000004E7\n\t\"\\x04\\xe8\\x03\\b\\x00\\x00\\x04\\xea\" + // 0x04E80308: 0x000004EA\n\t\"\\x04\\xe9\\x03\\b\\x00\\x00\\x04\\xeb\" + // 0x04E90308: 0x000004EB\n\t\"\\x04-\\x03\\b\\x00\\x00\\x04\\xec\" + // 0x042D0308: 0x000004EC\n\t\"\\x04M\\x03\\b\\x00\\x00\\x04\\xed\" + // 0x044D0308: 0x000004ED\n\t\"\\x04#\\x03\\x04\\x00\\x00\\x04\\xee\" + // 0x04230304: 0x000004EE\n\t\"\\x04C\\x03\\x04\\x00\\x00\\x04\\xef\" + // 0x04430304: 0x000004EF\n\t\"\\x04#\\x03\\b\\x00\\x00\\x04\\xf0\" + // 0x04230308: 0x000004F0\n\t\"\\x04C\\x03\\b\\x00\\x00\\x04\\xf1\" + // 0x04430308: 0x000004F1\n\t\"\\x04#\\x03\\v\\x00\\x00\\x04\\xf2\" + // 0x0423030B: 0x000004F2\n\t\"\\x04C\\x03\\v\\x00\\x00\\x04\\xf3\" + // 0x0443030B: 0x000004F3\n\t\"\\x04'\\x03\\b\\x00\\x00\\x04\\xf4\" + // 0x04270308: 0x000004F4\n\t\"\\x04G\\x03\\b\\x00\\x00\\x04\\xf5\" + // 0x04470308: 0x000004F5\n\t\"\\x04+\\x03\\b\\x00\\x00\\x04\\xf8\" + // 0x042B0308: 0x000004F8\n\t\"\\x04K\\x03\\b\\x00\\x00\\x04\\xf9\" + // 0x044B0308: 0x000004F9\n\t\"\\x06'\\x06S\\x00\\x00\\x06\\\"\" + // 0x06270653: 0x00000622\n\t\"\\x06'\\x06T\\x00\\x00\\x06#\" + // 0x06270654: 0x00000623\n\t\"\\x06H\\x06T\\x00\\x00\\x06$\" + // 0x06480654: 0x00000624\n\t\"\\x06'\\x06U\\x00\\x00\\x06%\" + // 0x06270655: 0x00000625\n\t\"\\x06J\\x06T\\x00\\x00\\x06&\" + // 0x064A0654: 0x00000626\n\t\"\\x06\\xd5\\x06T\\x00\\x00\\x06\\xc0\" + // 0x06D50654: 0x000006C0\n\t\"\\x06\\xc1\\x06T\\x00\\x00\\x06\\xc2\" + // 0x06C10654: 0x000006C2\n\t\"\\x06\\xd2\\x06T\\x00\\x00\\x06\\xd3\" + // 0x06D20654: 0x000006D3\n\t\"\\t(\\t<\\x00\\x00\\t)\" + // 0x0928093C: 0x00000929\n\t\"\\t0\\t<\\x00\\x00\\t1\" + // 0x0930093C: 0x00000931\n\t\"\\t3\\t<\\x00\\x00\\t4\" + // 0x0933093C: 0x00000934\n\t\"\\t\\xc7\\t\\xbe\\x00\\x00\\t\\xcb\" + // 0x09C709BE: 0x000009CB\n\t\"\\t\\xc7\\t\\xd7\\x00\\x00\\t\\xcc\" + // 0x09C709D7: 0x000009CC\n\t\"\\vG\\vV\\x00\\x00\\vH\" + // 0x0B470B56: 0x00000B48\n\t\"\\vG\\v>\\x00\\x00\\vK\" + // 0x0B470B3E: 0x00000B4B\n\t\"\\vG\\vW\\x00\\x00\\vL\" + // 0x0B470B57: 0x00000B4C\n\t\"\\v\\x92\\v\\xd7\\x00\\x00\\v\\x94\" + // 0x0B920BD7: 0x00000B94\n\t\"\\v\\xc6\\v\\xbe\\x00\\x00\\v\\xca\" + // 0x0BC60BBE: 0x00000BCA\n\t\"\\v\\xc7\\v\\xbe\\x00\\x00\\v\\xcb\" + // 0x0BC70BBE: 0x00000BCB\n\t\"\\v\\xc6\\v\\xd7\\x00\\x00\\v\\xcc\" + // 0x0BC60BD7: 0x00000BCC\n\t\"\\fF\\fV\\x00\\x00\\fH\" + // 0x0C460C56: 0x00000C48\n\t\"\\f\\xbf\\f\\xd5\\x00\\x00\\f\\xc0\" + // 0x0CBF0CD5: 0x00000CC0\n\t\"\\f\\xc6\\f\\xd5\\x00\\x00\\f\\xc7\" + // 0x0CC60CD5: 0x00000CC7\n\t\"\\f\\xc6\\f\\xd6\\x00\\x00\\f\\xc8\" + // 0x0CC60CD6: 0x00000CC8\n\t\"\\f\\xc6\\f\\xc2\\x00\\x00\\f\\xca\" + // 0x0CC60CC2: 0x00000CCA\n\t\"\\f\\xca\\f\\xd5\\x00\\x00\\f\\xcb\" + // 0x0CCA0CD5: 0x00000CCB\n\t\"\\rF\\r>\\x00\\x00\\rJ\" + // 0x0D460D3E: 0x00000D4A\n\t\"\\rG\\r>\\x00\\x00\\rK\" + // 0x0D470D3E: 0x00000D4B\n\t\"\\rF\\rW\\x00\\x00\\rL\" + // 0x0D460D57: 0x00000D4C\n\t\"\\r\\xd9\\r\\xca\\x00\\x00\\r\\xda\" + // 0x0DD90DCA: 0x00000DDA\n\t\"\\r\\xd9\\r\\xcf\\x00\\x00\\r\\xdc\" + // 0x0DD90DCF: 0x00000DDC\n\t\"\\r\\xdc\\r\\xca\\x00\\x00\\r\\xdd\" + // 0x0DDC0DCA: 0x00000DDD\n\t\"\\r\\xd9\\r\\xdf\\x00\\x00\\r\\xde\" + // 0x0DD90DDF: 0x00000DDE\n\t\"\\x10%\\x10.\\x00\\x00\\x10&\" + // 0x1025102E: 0x00001026\n\t\"\\x1b\\x05\\x1b5\\x00\\x00\\x1b\\x06\" + // 0x1B051B35: 0x00001B06\n\t\"\\x1b\\a\\x1b5\\x00\\x00\\x1b\\b\" + // 0x1B071B35: 0x00001B08\n\t\"\\x1b\\t\\x1b5\\x00\\x00\\x1b\\n\" + // 0x1B091B35: 0x00001B0A\n\t\"\\x1b\\v\\x1b5\\x00\\x00\\x1b\\f\" + // 0x1B0B1B35: 0x00001B0C\n\t\"\\x1b\\r\\x1b5\\x00\\x00\\x1b\\x0e\" + // 0x1B0D1B35: 0x00001B0E\n\t\"\\x1b\\x11\\x1b5\\x00\\x00\\x1b\\x12\" + // 0x1B111B35: 0x00001B12\n\t\"\\x1b:\\x1b5\\x00\\x00\\x1b;\" + // 0x1B3A1B35: 0x00001B3B\n\t\"\\x1b<\\x1b5\\x00\\x00\\x1b=\" + // 0x1B3C1B35: 0x00001B3D\n\t\"\\x1b>\\x1b5\\x00\\x00\\x1b@\" + // 0x1B3E1B35: 0x00001B40\n\t\"\\x1b?\\x1b5\\x00\\x00\\x1bA\" + // 0x1B3F1B35: 0x00001B41\n\t\"\\x1bB\\x1b5\\x00\\x00\\x1bC\" + // 0x1B421B35: 0x00001B43\n\t\"\\x00A\\x03%\\x00\\x00\\x1e\\x00\" + // 0x00410325: 0x00001E00\n\t\"\\x00a\\x03%\\x00\\x00\\x1e\\x01\" + // 0x00610325: 0x00001E01\n\t\"\\x00B\\x03\\a\\x00\\x00\\x1e\\x02\" + // 0x00420307: 0x00001E02\n\t\"\\x00b\\x03\\a\\x00\\x00\\x1e\\x03\" + // 0x00620307: 0x00001E03\n\t\"\\x00B\\x03#\\x00\\x00\\x1e\\x04\" + // 0x00420323: 0x00001E04\n\t\"\\x00b\\x03#\\x00\\x00\\x1e\\x05\" + // 0x00620323: 0x00001E05\n\t\"\\x00B\\x031\\x00\\x00\\x1e\\x06\" + // 0x00420331: 0x00001E06\n\t\"\\x00b\\x031\\x00\\x00\\x1e\\a\" + // 0x00620331: 0x00001E07\n\t\"\\x00\\xc7\\x03\\x01\\x00\\x00\\x1e\\b\" + // 0x00C70301: 0x00001E08\n\t\"\\x00\\xe7\\x03\\x01\\x00\\x00\\x1e\\t\" + // 0x00E70301: 0x00001E09\n\t\"\\x00D\\x03\\a\\x00\\x00\\x1e\\n\" + // 0x00440307: 0x00001E0A\n\t\"\\x00d\\x03\\a\\x00\\x00\\x1e\\v\" + // 0x00640307: 0x00001E0B\n\t\"\\x00D\\x03#\\x00\\x00\\x1e\\f\" + // 0x00440323: 0x00001E0C\n\t\"\\x00d\\x03#\\x00\\x00\\x1e\\r\" + // 0x00640323: 0x00001E0D\n\t\"\\x00D\\x031\\x00\\x00\\x1e\\x0e\" + // 0x00440331: 0x00001E0E\n\t\"\\x00d\\x031\\x00\\x00\\x1e\\x0f\" + // 0x00640331: 0x00001E0F\n\t\"\\x00D\\x03'\\x00\\x00\\x1e\\x10\" + // 0x00440327: 0x00001E10\n\t\"\\x00d\\x03'\\x00\\x00\\x1e\\x11\" + // 0x00640327: 0x00001E11\n\t\"\\x00D\\x03-\\x00\\x00\\x1e\\x12\" + // 0x0044032D: 0x00001E12\n\t\"\\x00d\\x03-\\x00\\x00\\x1e\\x13\" + // 0x0064032D: 0x00001E13\n\t\"\\x01\\x12\\x03\\x00\\x00\\x00\\x1e\\x14\" + // 0x01120300: 0x00001E14\n\t\"\\x01\\x13\\x03\\x00\\x00\\x00\\x1e\\x15\" + // 0x01130300: 0x00001E15\n\t\"\\x01\\x12\\x03\\x01\\x00\\x00\\x1e\\x16\" + // 0x01120301: 0x00001E16\n\t\"\\x01\\x13\\x03\\x01\\x00\\x00\\x1e\\x17\" + // 0x01130301: 0x00001E17\n\t\"\\x00E\\x03-\\x00\\x00\\x1e\\x18\" + // 0x0045032D: 0x00001E18\n\t\"\\x00e\\x03-\\x00\\x00\\x1e\\x19\" + // 0x0065032D: 0x00001E19\n\t\"\\x00E\\x030\\x00\\x00\\x1e\\x1a\" + // 0x00450330: 0x00001E1A\n\t\"\\x00e\\x030\\x00\\x00\\x1e\\x1b\" + // 0x00650330: 0x00001E1B\n\t\"\\x02(\\x03\\x06\\x00\\x00\\x1e\\x1c\" + // 0x02280306: 0x00001E1C\n\t\"\\x02)\\x03\\x06\\x00\\x00\\x1e\\x1d\" + // 0x02290306: 0x00001E1D\n\t\"\\x00F\\x03\\a\\x00\\x00\\x1e\\x1e\" + // 0x00460307: 0x00001E1E\n\t\"\\x00f\\x03\\a\\x00\\x00\\x1e\\x1f\" + // 0x00660307: 0x00001E1F\n\t\"\\x00G\\x03\\x04\\x00\\x00\\x1e \" + // 0x00470304: 0x00001E20\n\t\"\\x00g\\x03\\x04\\x00\\x00\\x1e!\" + // 0x00670304: 0x00001E21\n\t\"\\x00H\\x03\\a\\x00\\x00\\x1e\\\"\" + // 0x00480307: 0x00001E22\n\t\"\\x00h\\x03\\a\\x00\\x00\\x1e#\" + // 0x00680307: 0x00001E23\n\t\"\\x00H\\x03#\\x00\\x00\\x1e$\" + // 0x00480323: 0x00001E24\n\t\"\\x00h\\x03#\\x00\\x00\\x1e%\" + // 0x00680323: 0x00001E25\n\t\"\\x00H\\x03\\b\\x00\\x00\\x1e&\" + // 0x00480308: 0x00001E26\n\t\"\\x00h\\x03\\b\\x00\\x00\\x1e'\" + // 0x00680308: 0x00001E27\n\t\"\\x00H\\x03'\\x00\\x00\\x1e(\" + // 0x00480327: 0x00001E28\n\t\"\\x00h\\x03'\\x00\\x00\\x1e)\" + // 0x00680327: 0x00001E29\n\t\"\\x00H\\x03.\\x00\\x00\\x1e*\" + // 0x0048032E: 0x00001E2A\n\t\"\\x00h\\x03.\\x00\\x00\\x1e+\" + // 0x0068032E: 0x00001E2B\n\t\"\\x00I\\x030\\x00\\x00\\x1e,\" + // 0x00490330: 0x00001E2C\n\t\"\\x00i\\x030\\x00\\x00\\x1e-\" + // 0x00690330: 0x00001E2D\n\t\"\\x00\\xcf\\x03\\x01\\x00\\x00\\x1e.\" + // 0x00CF0301: 0x00001E2E\n\t\"\\x00\\xef\\x03\\x01\\x00\\x00\\x1e/\" + // 0x00EF0301: 0x00001E2F\n\t\"\\x00K\\x03\\x01\\x00\\x00\\x1e0\" + // 0x004B0301: 0x00001E30\n\t\"\\x00k\\x03\\x01\\x00\\x00\\x1e1\" + // 0x006B0301: 0x00001E31\n\t\"\\x00K\\x03#\\x00\\x00\\x1e2\" + // 0x004B0323: 0x00001E32\n\t\"\\x00k\\x03#\\x00\\x00\\x1e3\" + // 0x006B0323: 0x00001E33\n\t\"\\x00K\\x031\\x00\\x00\\x1e4\" + // 0x004B0331: 0x00001E34\n\t\"\\x00k\\x031\\x00\\x00\\x1e5\" + // 0x006B0331: 0x00001E35\n\t\"\\x00L\\x03#\\x00\\x00\\x1e6\" + // 0x004C0323: 0x00001E36\n\t\"\\x00l\\x03#\\x00\\x00\\x1e7\" + // 0x006C0323: 0x00001E37\n\t\"\\x1e6\\x03\\x04\\x00\\x00\\x1e8\" + // 0x1E360304: 0x00001E38\n\t\"\\x1e7\\x03\\x04\\x00\\x00\\x1e9\" + // 0x1E370304: 0x00001E39\n\t\"\\x00L\\x031\\x00\\x00\\x1e:\" + // 0x004C0331: 0x00001E3A\n\t\"\\x00l\\x031\\x00\\x00\\x1e;\" + // 0x006C0331: 0x00001E3B\n\t\"\\x00L\\x03-\\x00\\x00\\x1e<\" + // 0x004C032D: 0x00001E3C\n\t\"\\x00l\\x03-\\x00\\x00\\x1e=\" + // 0x006C032D: 0x00001E3D\n\t\"\\x00M\\x03\\x01\\x00\\x00\\x1e>\" + // 0x004D0301: 0x00001E3E\n\t\"\\x00m\\x03\\x01\\x00\\x00\\x1e?\" + // 0x006D0301: 0x00001E3F\n\t\"\\x00M\\x03\\a\\x00\\x00\\x1e@\" + // 0x004D0307: 0x00001E40\n\t\"\\x00m\\x03\\a\\x00\\x00\\x1eA\" + // 0x006D0307: 0x00001E41\n\t\"\\x00M\\x03#\\x00\\x00\\x1eB\" + // 0x004D0323: 0x00001E42\n\t\"\\x00m\\x03#\\x00\\x00\\x1eC\" + // 0x006D0323: 0x00001E43\n\t\"\\x00N\\x03\\a\\x00\\x00\\x1eD\" + // 0x004E0307: 0x00001E44\n\t\"\\x00n\\x03\\a\\x00\\x00\\x1eE\" + // 0x006E0307: 0x00001E45\n\t\"\\x00N\\x03#\\x00\\x00\\x1eF\" + // 0x004E0323: 0x00001E46\n\t\"\\x00n\\x03#\\x00\\x00\\x1eG\" + // 0x006E0323: 0x00001E47\n\t\"\\x00N\\x031\\x00\\x00\\x1eH\" + // 0x004E0331: 0x00001E48\n\t\"\\x00n\\x031\\x00\\x00\\x1eI\" + // 0x006E0331: 0x00001E49\n\t\"\\x00N\\x03-\\x00\\x00\\x1eJ\" + // 0x004E032D: 0x00001E4A\n\t\"\\x00n\\x03-\\x00\\x00\\x1eK\" + // 0x006E032D: 0x00001E4B\n\t\"\\x00\\xd5\\x03\\x01\\x00\\x00\\x1eL\" + // 0x00D50301: 0x00001E4C\n\t\"\\x00\\xf5\\x03\\x01\\x00\\x00\\x1eM\" + // 0x00F50301: 0x00001E4D\n\t\"\\x00\\xd5\\x03\\b\\x00\\x00\\x1eN\" + // 0x00D50308: 0x00001E4E\n\t\"\\x00\\xf5\\x03\\b\\x00\\x00\\x1eO\" + // 0x00F50308: 0x00001E4F\n\t\"\\x01L\\x03\\x00\\x00\\x00\\x1eP\" + // 0x014C0300: 0x00001E50\n\t\"\\x01M\\x03\\x00\\x00\\x00\\x1eQ\" + // 0x014D0300: 0x00001E51\n\t\"\\x01L\\x03\\x01\\x00\\x00\\x1eR\" + // 0x014C0301: 0x00001E52\n\t\"\\x01M\\x03\\x01\\x00\\x00\\x1eS\" + // 0x014D0301: 0x00001E53\n\t\"\\x00P\\x03\\x01\\x00\\x00\\x1eT\" + // 0x00500301: 0x00001E54\n\t\"\\x00p\\x03\\x01\\x00\\x00\\x1eU\" + // 0x00700301: 0x00001E55\n\t\"\\x00P\\x03\\a\\x00\\x00\\x1eV\" + // 0x00500307: 0x00001E56\n\t\"\\x00p\\x03\\a\\x00\\x00\\x1eW\" + // 0x00700307: 0x00001E57\n\t\"\\x00R\\x03\\a\\x00\\x00\\x1eX\" + // 0x00520307: 0x00001E58\n\t\"\\x00r\\x03\\a\\x00\\x00\\x1eY\" + // 0x00720307: 0x00001E59\n\t\"\\x00R\\x03#\\x00\\x00\\x1eZ\" + // 0x00520323: 0x00001E5A\n\t\"\\x00r\\x03#\\x00\\x00\\x1e[\" + // 0x00720323: 0x00001E5B\n\t\"\\x1eZ\\x03\\x04\\x00\\x00\\x1e\\\\\" + // 0x1E5A0304: 0x00001E5C\n\t\"\\x1e[\\x03\\x04\\x00\\x00\\x1e]\" + // 0x1E5B0304: 0x00001E5D\n\t\"\\x00R\\x031\\x00\\x00\\x1e^\" + // 0x00520331: 0x00001E5E\n\t\"\\x00r\\x031\\x00\\x00\\x1e_\" + // 0x00720331: 0x00001E5F\n\t\"\\x00S\\x03\\a\\x00\\x00\\x1e`\" + // 0x00530307: 0x00001E60\n\t\"\\x00s\\x03\\a\\x00\\x00\\x1ea\" + // 0x00730307: 0x00001E61\n\t\"\\x00S\\x03#\\x00\\x00\\x1eb\" + // 0x00530323: 0x00001E62\n\t\"\\x00s\\x03#\\x00\\x00\\x1ec\" + // 0x00730323: 0x00001E63\n\t\"\\x01Z\\x03\\a\\x00\\x00\\x1ed\" + // 0x015A0307: 0x00001E64\n\t\"\\x01[\\x03\\a\\x00\\x00\\x1ee\" + // 0x015B0307: 0x00001E65\n\t\"\\x01`\\x03\\a\\x00\\x00\\x1ef\" + // 0x01600307: 0x00001E66\n\t\"\\x01a\\x03\\a\\x00\\x00\\x1eg\" + // 0x01610307: 0x00001E67\n\t\"\\x1eb\\x03\\a\\x00\\x00\\x1eh\" + // 0x1E620307: 0x00001E68\n\t\"\\x1ec\\x03\\a\\x00\\x00\\x1ei\" + // 0x1E630307: 0x00001E69\n\t\"\\x00T\\x03\\a\\x00\\x00\\x1ej\" + // 0x00540307: 0x00001E6A\n\t\"\\x00t\\x03\\a\\x00\\x00\\x1ek\" + // 0x00740307: 0x00001E6B\n\t\"\\x00T\\x03#\\x00\\x00\\x1el\" + // 0x00540323: 0x00001E6C\n\t\"\\x00t\\x03#\\x00\\x00\\x1em\" + // 0x00740323: 0x00001E6D\n\t\"\\x00T\\x031\\x00\\x00\\x1en\" + // 0x00540331: 0x00001E6E\n\t\"\\x00t\\x031\\x00\\x00\\x1eo\" + // 0x00740331: 0x00001E6F\n\t\"\\x00T\\x03-\\x00\\x00\\x1ep\" + // 0x0054032D: 0x00001E70\n\t\"\\x00t\\x03-\\x00\\x00\\x1eq\" + // 0x0074032D: 0x00001E71\n\t\"\\x00U\\x03$\\x00\\x00\\x1er\" + // 0x00550324: 0x00001E72\n\t\"\\x00u\\x03$\\x00\\x00\\x1es\" + // 0x00750324: 0x00001E73\n\t\"\\x00U\\x030\\x00\\x00\\x1et\" + // 0x00550330: 0x00001E74\n\t\"\\x00u\\x030\\x00\\x00\\x1eu\" + // 0x00750330: 0x00001E75\n\t\"\\x00U\\x03-\\x00\\x00\\x1ev\" + // 0x0055032D: 0x00001E76\n\t\"\\x00u\\x03-\\x00\\x00\\x1ew\" + // 0x0075032D: 0x00001E77\n\t\"\\x01h\\x03\\x01\\x00\\x00\\x1ex\" + // 0x01680301: 0x00001E78\n\t\"\\x01i\\x03\\x01\\x00\\x00\\x1ey\" + // 0x01690301: 0x00001E79\n\t\"\\x01j\\x03\\b\\x00\\x00\\x1ez\" + // 0x016A0308: 0x00001E7A\n\t\"\\x01k\\x03\\b\\x00\\x00\\x1e{\" + // 0x016B0308: 0x00001E7B\n\t\"\\x00V\\x03\\x03\\x00\\x00\\x1e|\" + // 0x00560303: 0x00001E7C\n\t\"\\x00v\\x03\\x03\\x00\\x00\\x1e}\" + // 0x00760303: 0x00001E7D\n\t\"\\x00V\\x03#\\x00\\x00\\x1e~\" + // 0x00560323: 0x00001E7E\n\t\"\\x00v\\x03#\\x00\\x00\\x1e\\u007f\" + // 0x00760323: 0x00001E7F\n\t\"\\x00W\\x03\\x00\\x00\\x00\\x1e\\x80\" + // 0x00570300: 0x00001E80\n\t\"\\x00w\\x03\\x00\\x00\\x00\\x1e\\x81\" + // 0x00770300: 0x00001E81\n\t\"\\x00W\\x03\\x01\\x00\\x00\\x1e\\x82\" + // 0x00570301: 0x00001E82\n\t\"\\x00w\\x03\\x01\\x00\\x00\\x1e\\x83\" + // 0x00770301: 0x00001E83\n\t\"\\x00W\\x03\\b\\x00\\x00\\x1e\\x84\" + // 0x00570308: 0x00001E84\n\t\"\\x00w\\x03\\b\\x00\\x00\\x1e\\x85\" + // 0x00770308: 0x00001E85\n\t\"\\x00W\\x03\\a\\x00\\x00\\x1e\\x86\" + // 0x00570307: 0x00001E86\n\t\"\\x00w\\x03\\a\\x00\\x00\\x1e\\x87\" + // 0x00770307: 0x00001E87\n\t\"\\x00W\\x03#\\x00\\x00\\x1e\\x88\" + // 0x00570323: 0x00001E88\n\t\"\\x00w\\x03#\\x00\\x00\\x1e\\x89\" + // 0x00770323: 0x00001E89\n\t\"\\x00X\\x03\\a\\x00\\x00\\x1e\\x8a\" + // 0x00580307: 0x00001E8A\n\t\"\\x00x\\x03\\a\\x00\\x00\\x1e\\x8b\" + // 0x00780307: 0x00001E8B\n\t\"\\x00X\\x03\\b\\x00\\x00\\x1e\\x8c\" + // 0x00580308: 0x00001E8C\n\t\"\\x00x\\x03\\b\\x00\\x00\\x1e\\x8d\" + // 0x00780308: 0x00001E8D\n\t\"\\x00Y\\x03\\a\\x00\\x00\\x1e\\x8e\" + // 0x00590307: 0x00001E8E\n\t\"\\x00y\\x03\\a\\x00\\x00\\x1e\\x8f\" + // 0x00790307: 0x00001E8F\n\t\"\\x00Z\\x03\\x02\\x00\\x00\\x1e\\x90\" + // 0x005A0302: 0x00001E90\n\t\"\\x00z\\x03\\x02\\x00\\x00\\x1e\\x91\" + // 0x007A0302: 0x00001E91\n\t\"\\x00Z\\x03#\\x00\\x00\\x1e\\x92\" + // 0x005A0323: 0x00001E92\n\t\"\\x00z\\x03#\\x00\\x00\\x1e\\x93\" + // 0x007A0323: 0x00001E93\n\t\"\\x00Z\\x031\\x00\\x00\\x1e\\x94\" + // 0x005A0331: 0x00001E94\n\t\"\\x00z\\x031\\x00\\x00\\x1e\\x95\" + // 0x007A0331: 0x00001E95\n\t\"\\x00h\\x031\\x00\\x00\\x1e\\x96\" + // 0x00680331: 0x00001E96\n\t\"\\x00t\\x03\\b\\x00\\x00\\x1e\\x97\" + // 0x00740308: 0x00001E97\n\t\"\\x00w\\x03\\n\\x00\\x00\\x1e\\x98\" + // 0x0077030A: 0x00001E98\n\t\"\\x00y\\x03\\n\\x00\\x00\\x1e\\x99\" + // 0x0079030A: 0x00001E99\n\t\"\\x01\\u007f\\x03\\a\\x00\\x00\\x1e\\x9b\" + // 0x017F0307: 0x00001E9B\n\t\"\\x00A\\x03#\\x00\\x00\\x1e\\xa0\" + // 0x00410323: 0x00001EA0\n\t\"\\x00a\\x03#\\x00\\x00\\x1e\\xa1\" + // 0x00610323: 0x00001EA1\n\t\"\\x00A\\x03\\t\\x00\\x00\\x1e\\xa2\" + // 0x00410309: 0x00001EA2\n\t\"\\x00a\\x03\\t\\x00\\x00\\x1e\\xa3\" + // 0x00610309: 0x00001EA3\n\t\"\\x00\\xc2\\x03\\x01\\x00\\x00\\x1e\\xa4\" + // 0x00C20301: 0x00001EA4\n\t\"\\x00\\xe2\\x03\\x01\\x00\\x00\\x1e\\xa5\" + // 0x00E20301: 0x00001EA5\n\t\"\\x00\\xc2\\x03\\x00\\x00\\x00\\x1e\\xa6\" + // 0x00C20300: 0x00001EA6\n\t\"\\x00\\xe2\\x03\\x00\\x00\\x00\\x1e\\xa7\" + // 0x00E20300: 0x00001EA7\n\t\"\\x00\\xc2\\x03\\t\\x00\\x00\\x1e\\xa8\" + // 0x00C20309: 0x00001EA8\n\t\"\\x00\\xe2\\x03\\t\\x00\\x00\\x1e\\xa9\" + // 0x00E20309: 0x00001EA9\n\t\"\\x00\\xc2\\x03\\x03\\x00\\x00\\x1e\\xaa\" + // 0x00C20303: 0x00001EAA\n\t\"\\x00\\xe2\\x03\\x03\\x00\\x00\\x1e\\xab\" + // 0x00E20303: 0x00001EAB\n\t\"\\x1e\\xa0\\x03\\x02\\x00\\x00\\x1e\\xac\" + // 0x1EA00302: 0x00001EAC\n\t\"\\x1e\\xa1\\x03\\x02\\x00\\x00\\x1e\\xad\" + // 0x1EA10302: 0x00001EAD\n\t\"\\x01\\x02\\x03\\x01\\x00\\x00\\x1e\\xae\" + // 0x01020301: 0x00001EAE\n\t\"\\x01\\x03\\x03\\x01\\x00\\x00\\x1e\\xaf\" + // 0x01030301: 0x00001EAF\n\t\"\\x01\\x02\\x03\\x00\\x00\\x00\\x1e\\xb0\" + // 0x01020300: 0x00001EB0\n\t\"\\x01\\x03\\x03\\x00\\x00\\x00\\x1e\\xb1\" + // 0x01030300: 0x00001EB1\n\t\"\\x01\\x02\\x03\\t\\x00\\x00\\x1e\\xb2\" + // 0x01020309: 0x00001EB2\n\t\"\\x01\\x03\\x03\\t\\x00\\x00\\x1e\\xb3\" + // 0x01030309: 0x00001EB3\n\t\"\\x01\\x02\\x03\\x03\\x00\\x00\\x1e\\xb4\" + // 0x01020303: 0x00001EB4\n\t\"\\x01\\x03\\x03\\x03\\x00\\x00\\x1e\\xb5\" + // 0x01030303: 0x00001EB5\n\t\"\\x1e\\xa0\\x03\\x06\\x00\\x00\\x1e\\xb6\" + // 0x1EA00306: 0x00001EB6\n\t\"\\x1e\\xa1\\x03\\x06\\x00\\x00\\x1e\\xb7\" + // 0x1EA10306: 0x00001EB7\n\t\"\\x00E\\x03#\\x00\\x00\\x1e\\xb8\" + // 0x00450323: 0x00001EB8\n\t\"\\x00e\\x03#\\x00\\x00\\x1e\\xb9\" + // 0x00650323: 0x00001EB9\n\t\"\\x00E\\x03\\t\\x00\\x00\\x1e\\xba\" + // 0x00450309: 0x00001EBA\n\t\"\\x00e\\x03\\t\\x00\\x00\\x1e\\xbb\" + // 0x00650309: 0x00001EBB\n\t\"\\x00E\\x03\\x03\\x00\\x00\\x1e\\xbc\" + // 0x00450303: 0x00001EBC\n\t\"\\x00e\\x03\\x03\\x00\\x00\\x1e\\xbd\" + // 0x00650303: 0x00001EBD\n\t\"\\x00\\xca\\x03\\x01\\x00\\x00\\x1e\\xbe\" + // 0x00CA0301: 0x00001EBE\n\t\"\\x00\\xea\\x03\\x01\\x00\\x00\\x1e\\xbf\" + // 0x00EA0301: 0x00001EBF\n\t\"\\x00\\xca\\x03\\x00\\x00\\x00\\x1e\\xc0\" + // 0x00CA0300: 0x00001EC0\n\t\"\\x00\\xea\\x03\\x00\\x00\\x00\\x1e\\xc1\" + // 0x00EA0300: 0x00001EC1\n\t\"\\x00\\xca\\x03\\t\\x00\\x00\\x1e\\xc2\" + // 0x00CA0309: 0x00001EC2\n\t\"\\x00\\xea\\x03\\t\\x00\\x00\\x1e\\xc3\" + // 0x00EA0309: 0x00001EC3\n\t\"\\x00\\xca\\x03\\x03\\x00\\x00\\x1e\\xc4\" + // 0x00CA0303: 0x00001EC4\n\t\"\\x00\\xea\\x03\\x03\\x00\\x00\\x1e\\xc5\" + // 0x00EA0303: 0x00001EC5\n\t\"\\x1e\\xb8\\x03\\x02\\x00\\x00\\x1e\\xc6\" + // 0x1EB80302: 0x00001EC6\n\t\"\\x1e\\xb9\\x03\\x02\\x00\\x00\\x1e\\xc7\" + // 0x1EB90302: 0x00001EC7\n\t\"\\x00I\\x03\\t\\x00\\x00\\x1e\\xc8\" + // 0x00490309: 0x00001EC8\n\t\"\\x00i\\x03\\t\\x00\\x00\\x1e\\xc9\" + // 0x00690309: 0x00001EC9\n\t\"\\x00I\\x03#\\x00\\x00\\x1e\\xca\" + // 0x00490323: 0x00001ECA\n\t\"\\x00i\\x03#\\x00\\x00\\x1e\\xcb\" + // 0x00690323: 0x00001ECB\n\t\"\\x00O\\x03#\\x00\\x00\\x1e\\xcc\" + // 0x004F0323: 0x00001ECC\n\t\"\\x00o\\x03#\\x00\\x00\\x1e\\xcd\" + // 0x006F0323: 0x00001ECD\n\t\"\\x00O\\x03\\t\\x00\\x00\\x1e\\xce\" + // 0x004F0309: 0x00001ECE\n\t\"\\x00o\\x03\\t\\x00\\x00\\x1e\\xcf\" + // 0x006F0309: 0x00001ECF\n\t\"\\x00\\xd4\\x03\\x01\\x00\\x00\\x1e\\xd0\" + // 0x00D40301: 0x00001ED0\n\t\"\\x00\\xf4\\x03\\x01\\x00\\x00\\x1e\\xd1\" + // 0x00F40301: 0x00001ED1\n\t\"\\x00\\xd4\\x03\\x00\\x00\\x00\\x1e\\xd2\" + // 0x00D40300: 0x00001ED2\n\t\"\\x00\\xf4\\x03\\x00\\x00\\x00\\x1e\\xd3\" + // 0x00F40300: 0x00001ED3\n\t\"\\x00\\xd4\\x03\\t\\x00\\x00\\x1e\\xd4\" + // 0x00D40309: 0x00001ED4\n\t\"\\x00\\xf4\\x03\\t\\x00\\x00\\x1e\\xd5\" + // 0x00F40309: 0x00001ED5\n\t\"\\x00\\xd4\\x03\\x03\\x00\\x00\\x1e\\xd6\" + // 0x00D40303: 0x00001ED6\n\t\"\\x00\\xf4\\x03\\x03\\x00\\x00\\x1e\\xd7\" + // 0x00F40303: 0x00001ED7\n\t\"\\x1e\\xcc\\x03\\x02\\x00\\x00\\x1e\\xd8\" + // 0x1ECC0302: 0x00001ED8\n\t\"\\x1e\\xcd\\x03\\x02\\x00\\x00\\x1e\\xd9\" + // 0x1ECD0302: 0x00001ED9\n\t\"\\x01\\xa0\\x03\\x01\\x00\\x00\\x1e\\xda\" + // 0x01A00301: 0x00001EDA\n\t\"\\x01\\xa1\\x03\\x01\\x00\\x00\\x1e\\xdb\" + // 0x01A10301: 0x00001EDB\n\t\"\\x01\\xa0\\x03\\x00\\x00\\x00\\x1e\\xdc\" + // 0x01A00300: 0x00001EDC\n\t\"\\x01\\xa1\\x03\\x00\\x00\\x00\\x1e\\xdd\" + // 0x01A10300: 0x00001EDD\n\t\"\\x01\\xa0\\x03\\t\\x00\\x00\\x1e\\xde\" + // 0x01A00309: 0x00001EDE\n\t\"\\x01\\xa1\\x03\\t\\x00\\x00\\x1e\\xdf\" + // 0x01A10309: 0x00001EDF\n\t\"\\x01\\xa0\\x03\\x03\\x00\\x00\\x1e\\xe0\" + // 0x01A00303: 0x00001EE0\n\t\"\\x01\\xa1\\x03\\x03\\x00\\x00\\x1e\\xe1\" + // 0x01A10303: 0x00001EE1\n\t\"\\x01\\xa0\\x03#\\x00\\x00\\x1e\\xe2\" + // 0x01A00323: 0x00001EE2\n\t\"\\x01\\xa1\\x03#\\x00\\x00\\x1e\\xe3\" + // 0x01A10323: 0x00001EE3\n\t\"\\x00U\\x03#\\x00\\x00\\x1e\\xe4\" + // 0x00550323: 0x00001EE4\n\t\"\\x00u\\x03#\\x00\\x00\\x1e\\xe5\" + // 0x00750323: 0x00001EE5\n\t\"\\x00U\\x03\\t\\x00\\x00\\x1e\\xe6\" + // 0x00550309: 0x00001EE6\n\t\"\\x00u\\x03\\t\\x00\\x00\\x1e\\xe7\" + // 0x00750309: 0x00001EE7\n\t\"\\x01\\xaf\\x03\\x01\\x00\\x00\\x1e\\xe8\" + // 0x01AF0301: 0x00001EE8\n\t\"\\x01\\xb0\\x03\\x01\\x00\\x00\\x1e\\xe9\" + // 0x01B00301: 0x00001EE9\n\t\"\\x01\\xaf\\x03\\x00\\x00\\x00\\x1e\\xea\" + // 0x01AF0300: 0x00001EEA\n\t\"\\x01\\xb0\\x03\\x00\\x00\\x00\\x1e\\xeb\" + // 0x01B00300: 0x00001EEB\n\t\"\\x01\\xaf\\x03\\t\\x00\\x00\\x1e\\xec\" + // 0x01AF0309: 0x00001EEC\n\t\"\\x01\\xb0\\x03\\t\\x00\\x00\\x1e\\xed\" + // 0x01B00309: 0x00001EED\n\t\"\\x01\\xaf\\x03\\x03\\x00\\x00\\x1e\\xee\" + // 0x01AF0303: 0x00001EEE\n\t\"\\x01\\xb0\\x03\\x03\\x00\\x00\\x1e\\xef\" + // 0x01B00303: 0x00001EEF\n\t\"\\x01\\xaf\\x03#\\x00\\x00\\x1e\\xf0\" + // 0x01AF0323: 0x00001EF0\n\t\"\\x01\\xb0\\x03#\\x00\\x00\\x1e\\xf1\" + // 0x01B00323: 0x00001EF1\n\t\"\\x00Y\\x03\\x00\\x00\\x00\\x1e\\xf2\" + // 0x00590300: 0x00001EF2\n\t\"\\x00y\\x03\\x00\\x00\\x00\\x1e\\xf3\" + // 0x00790300: 0x00001EF3\n\t\"\\x00Y\\x03#\\x00\\x00\\x1e\\xf4\" + // 0x00590323: 0x00001EF4\n\t\"\\x00y\\x03#\\x00\\x00\\x1e\\xf5\" + // 0x00790323: 0x00001EF5\n\t\"\\x00Y\\x03\\t\\x00\\x00\\x1e\\xf6\" + // 0x00590309: 0x00001EF6\n\t\"\\x00y\\x03\\t\\x00\\x00\\x1e\\xf7\" + // 0x00790309: 0x00001EF7\n\t\"\\x00Y\\x03\\x03\\x00\\x00\\x1e\\xf8\" + // 0x00590303: 0x00001EF8\n\t\"\\x00y\\x03\\x03\\x00\\x00\\x1e\\xf9\" + // 0x00790303: 0x00001EF9\n\t\"\\x03\\xb1\\x03\\x13\\x00\\x00\\x1f\\x00\" + // 0x03B10313: 0x00001F00\n\t\"\\x03\\xb1\\x03\\x14\\x00\\x00\\x1f\\x01\" + // 0x03B10314: 0x00001F01\n\t\"\\x1f\\x00\\x03\\x00\\x00\\x00\\x1f\\x02\" + // 0x1F000300: 0x00001F02\n\t\"\\x1f\\x01\\x03\\x00\\x00\\x00\\x1f\\x03\" + // 0x1F010300: 0x00001F03\n\t\"\\x1f\\x00\\x03\\x01\\x00\\x00\\x1f\\x04\" + // 0x1F000301: 0x00001F04\n\t\"\\x1f\\x01\\x03\\x01\\x00\\x00\\x1f\\x05\" + // 0x1F010301: 0x00001F05\n\t\"\\x1f\\x00\\x03B\\x00\\x00\\x1f\\x06\" + // 0x1F000342: 0x00001F06\n\t\"\\x1f\\x01\\x03B\\x00\\x00\\x1f\\a\" + // 0x1F010342: 0x00001F07\n\t\"\\x03\\x91\\x03\\x13\\x00\\x00\\x1f\\b\" + // 0x03910313: 0x00001F08\n\t\"\\x03\\x91\\x03\\x14\\x00\\x00\\x1f\\t\" + // 0x03910314: 0x00001F09\n\t\"\\x1f\\b\\x03\\x00\\x00\\x00\\x1f\\n\" + // 0x1F080300: 0x00001F0A\n\t\"\\x1f\\t\\x03\\x00\\x00\\x00\\x1f\\v\" + // 0x1F090300: 0x00001F0B\n\t\"\\x1f\\b\\x03\\x01\\x00\\x00\\x1f\\f\" + // 0x1F080301: 0x00001F0C\n\t\"\\x1f\\t\\x03\\x01\\x00\\x00\\x1f\\r\" + // 0x1F090301: 0x00001F0D\n\t\"\\x1f\\b\\x03B\\x00\\x00\\x1f\\x0e\" + // 0x1F080342: 0x00001F0E\n\t\"\\x1f\\t\\x03B\\x00\\x00\\x1f\\x0f\" + // 0x1F090342: 0x00001F0F\n\t\"\\x03\\xb5\\x03\\x13\\x00\\x00\\x1f\\x10\" + // 0x03B50313: 0x00001F10\n\t\"\\x03\\xb5\\x03\\x14\\x00\\x00\\x1f\\x11\" + // 0x03B50314: 0x00001F11\n\t\"\\x1f\\x10\\x03\\x00\\x00\\x00\\x1f\\x12\" + // 0x1F100300: 0x00001F12\n\t\"\\x1f\\x11\\x03\\x00\\x00\\x00\\x1f\\x13\" + // 0x1F110300: 0x00001F13\n\t\"\\x1f\\x10\\x03\\x01\\x00\\x00\\x1f\\x14\" + // 0x1F100301: 0x00001F14\n\t\"\\x1f\\x11\\x03\\x01\\x00\\x00\\x1f\\x15\" + // 0x1F110301: 0x00001F15\n\t\"\\x03\\x95\\x03\\x13\\x00\\x00\\x1f\\x18\" + // 0x03950313: 0x00001F18\n\t\"\\x03\\x95\\x03\\x14\\x00\\x00\\x1f\\x19\" + // 0x03950314: 0x00001F19\n\t\"\\x1f\\x18\\x03\\x00\\x00\\x00\\x1f\\x1a\" + // 0x1F180300: 0x00001F1A\n\t\"\\x1f\\x19\\x03\\x00\\x00\\x00\\x1f\\x1b\" + // 0x1F190300: 0x00001F1B\n\t\"\\x1f\\x18\\x03\\x01\\x00\\x00\\x1f\\x1c\" + // 0x1F180301: 0x00001F1C\n\t\"\\x1f\\x19\\x03\\x01\\x00\\x00\\x1f\\x1d\" + // 0x1F190301: 0x00001F1D\n\t\"\\x03\\xb7\\x03\\x13\\x00\\x00\\x1f \" + // 0x03B70313: 0x00001F20\n\t\"\\x03\\xb7\\x03\\x14\\x00\\x00\\x1f!\" + // 0x03B70314: 0x00001F21\n\t\"\\x1f \\x03\\x00\\x00\\x00\\x1f\\\"\" + // 0x1F200300: 0x00001F22\n\t\"\\x1f!\\x03\\x00\\x00\\x00\\x1f#\" + // 0x1F210300: 0x00001F23\n\t\"\\x1f \\x03\\x01\\x00\\x00\\x1f$\" + // 0x1F200301: 0x00001F24\n\t\"\\x1f!\\x03\\x01\\x00\\x00\\x1f%\" + // 0x1F210301: 0x00001F25\n\t\"\\x1f \\x03B\\x00\\x00\\x1f&\" + // 0x1F200342: 0x00001F26\n\t\"\\x1f!\\x03B\\x00\\x00\\x1f'\" + // 0x1F210342: 0x00001F27\n\t\"\\x03\\x97\\x03\\x13\\x00\\x00\\x1f(\" + // 0x03970313: 0x00001F28\n\t\"\\x03\\x97\\x03\\x14\\x00\\x00\\x1f)\" + // 0x03970314: 0x00001F29\n\t\"\\x1f(\\x03\\x00\\x00\\x00\\x1f*\" + // 0x1F280300: 0x00001F2A\n\t\"\\x1f)\\x03\\x00\\x00\\x00\\x1f+\" + // 0x1F290300: 0x00001F2B\n\t\"\\x1f(\\x03\\x01\\x00\\x00\\x1f,\" + // 0x1F280301: 0x00001F2C\n\t\"\\x1f)\\x03\\x01\\x00\\x00\\x1f-\" + // 0x1F290301: 0x00001F2D\n\t\"\\x1f(\\x03B\\x00\\x00\\x1f.\" + // 0x1F280342: 0x00001F2E\n\t\"\\x1f)\\x03B\\x00\\x00\\x1f/\" + // 0x1F290342: 0x00001F2F\n\t\"\\x03\\xb9\\x03\\x13\\x00\\x00\\x1f0\" + // 0x03B90313: 0x00001F30\n\t\"\\x03\\xb9\\x03\\x14\\x00\\x00\\x1f1\" + // 0x03B90314: 0x00001F31\n\t\"\\x1f0\\x03\\x00\\x00\\x00\\x1f2\" + // 0x1F300300: 0x00001F32\n\t\"\\x1f1\\x03\\x00\\x00\\x00\\x1f3\" + // 0x1F310300: 0x00001F33\n\t\"\\x1f0\\x03\\x01\\x00\\x00\\x1f4\" + // 0x1F300301: 0x00001F34\n\t\"\\x1f1\\x03\\x01\\x00\\x00\\x1f5\" + // 0x1F310301: 0x00001F35\n\t\"\\x1f0\\x03B\\x00\\x00\\x1f6\" + // 0x1F300342: 0x00001F36\n\t\"\\x1f1\\x03B\\x00\\x00\\x1f7\" + // 0x1F310342: 0x00001F37\n\t\"\\x03\\x99\\x03\\x13\\x00\\x00\\x1f8\" + // 0x03990313: 0x00001F38\n\t\"\\x03\\x99\\x03\\x14\\x00\\x00\\x1f9\" + // 0x03990314: 0x00001F39\n\t\"\\x1f8\\x03\\x00\\x00\\x00\\x1f:\" + // 0x1F380300: 0x00001F3A\n\t\"\\x1f9\\x03\\x00\\x00\\x00\\x1f;\" + // 0x1F390300: 0x00001F3B\n\t\"\\x1f8\\x03\\x01\\x00\\x00\\x1f<\" + // 0x1F380301: 0x00001F3C\n\t\"\\x1f9\\x03\\x01\\x00\\x00\\x1f=\" + // 0x1F390301: 0x00001F3D\n\t\"\\x1f8\\x03B\\x00\\x00\\x1f>\" + // 0x1F380342: 0x00001F3E\n\t\"\\x1f9\\x03B\\x00\\x00\\x1f?\" + // 0x1F390342: 0x00001F3F\n\t\"\\x03\\xbf\\x03\\x13\\x00\\x00\\x1f@\" + // 0x03BF0313: 0x00001F40\n\t\"\\x03\\xbf\\x03\\x14\\x00\\x00\\x1fA\" + // 0x03BF0314: 0x00001F41\n\t\"\\x1f@\\x03\\x00\\x00\\x00\\x1fB\" + // 0x1F400300: 0x00001F42\n\t\"\\x1fA\\x03\\x00\\x00\\x00\\x1fC\" + // 0x1F410300: 0x00001F43\n\t\"\\x1f@\\x03\\x01\\x00\\x00\\x1fD\" + // 0x1F400301: 0x00001F44\n\t\"\\x1fA\\x03\\x01\\x00\\x00\\x1fE\" + // 0x1F410301: 0x00001F45\n\t\"\\x03\\x9f\\x03\\x13\\x00\\x00\\x1fH\" + // 0x039F0313: 0x00001F48\n\t\"\\x03\\x9f\\x03\\x14\\x00\\x00\\x1fI\" + // 0x039F0314: 0x00001F49\n\t\"\\x1fH\\x03\\x00\\x00\\x00\\x1fJ\" + // 0x1F480300: 0x00001F4A\n\t\"\\x1fI\\x03\\x00\\x00\\x00\\x1fK\" + // 0x1F490300: 0x00001F4B\n\t\"\\x1fH\\x03\\x01\\x00\\x00\\x1fL\" + // 0x1F480301: 0x00001F4C\n\t\"\\x1fI\\x03\\x01\\x00\\x00\\x1fM\" + // 0x1F490301: 0x00001F4D\n\t\"\\x03\\xc5\\x03\\x13\\x00\\x00\\x1fP\" + // 0x03C50313: 0x00001F50\n\t\"\\x03\\xc5\\x03\\x14\\x00\\x00\\x1fQ\" + // 0x03C50314: 0x00001F51\n\t\"\\x1fP\\x03\\x00\\x00\\x00\\x1fR\" + // 0x1F500300: 0x00001F52\n\t\"\\x1fQ\\x03\\x00\\x00\\x00\\x1fS\" + // 0x1F510300: 0x00001F53\n\t\"\\x1fP\\x03\\x01\\x00\\x00\\x1fT\" + // 0x1F500301: 0x00001F54\n\t\"\\x1fQ\\x03\\x01\\x00\\x00\\x1fU\" + // 0x1F510301: 0x00001F55\n\t\"\\x1fP\\x03B\\x00\\x00\\x1fV\" + // 0x1F500342: 0x00001F56\n\t\"\\x1fQ\\x03B\\x00\\x00\\x1fW\" + // 0x1F510342: 0x00001F57\n\t\"\\x03\\xa5\\x03\\x14\\x00\\x00\\x1fY\" + // 0x03A50314: 0x00001F59\n\t\"\\x1fY\\x03\\x00\\x00\\x00\\x1f[\" + // 0x1F590300: 0x00001F5B\n\t\"\\x1fY\\x03\\x01\\x00\\x00\\x1f]\" + // 0x1F590301: 0x00001F5D\n\t\"\\x1fY\\x03B\\x00\\x00\\x1f_\" + // 0x1F590342: 0x00001F5F\n\t\"\\x03\\xc9\\x03\\x13\\x00\\x00\\x1f`\" + // 0x03C90313: 0x00001F60\n\t\"\\x03\\xc9\\x03\\x14\\x00\\x00\\x1fa\" + // 0x03C90314: 0x00001F61\n\t\"\\x1f`\\x03\\x00\\x00\\x00\\x1fb\" + // 0x1F600300: 0x00001F62\n\t\"\\x1fa\\x03\\x00\\x00\\x00\\x1fc\" + // 0x1F610300: 0x00001F63\n\t\"\\x1f`\\x03\\x01\\x00\\x00\\x1fd\" + // 0x1F600301: 0x00001F64\n\t\"\\x1fa\\x03\\x01\\x00\\x00\\x1fe\" + // 0x1F610301: 0x00001F65\n\t\"\\x1f`\\x03B\\x00\\x00\\x1ff\" + // 0x1F600342: 0x00001F66\n\t\"\\x1fa\\x03B\\x00\\x00\\x1fg\" + // 0x1F610342: 0x00001F67\n\t\"\\x03\\xa9\\x03\\x13\\x00\\x00\\x1fh\" + // 0x03A90313: 0x00001F68\n\t\"\\x03\\xa9\\x03\\x14\\x00\\x00\\x1fi\" + // 0x03A90314: 0x00001F69\n\t\"\\x1fh\\x03\\x00\\x00\\x00\\x1fj\" + // 0x1F680300: 0x00001F6A\n\t\"\\x1fi\\x03\\x00\\x00\\x00\\x1fk\" + // 0x1F690300: 0x00001F6B\n\t\"\\x1fh\\x03\\x01\\x00\\x00\\x1fl\" + // 0x1F680301: 0x00001F6C\n\t\"\\x1fi\\x03\\x01\\x00\\x00\\x1fm\" + // 0x1F690301: 0x00001F6D\n\t\"\\x1fh\\x03B\\x00\\x00\\x1fn\" + // 0x1F680342: 0x00001F6E\n\t\"\\x1fi\\x03B\\x00\\x00\\x1fo\" + // 0x1F690342: 0x00001F6F\n\t\"\\x03\\xb1\\x03\\x00\\x00\\x00\\x1fp\" + // 0x03B10300: 0x00001F70\n\t\"\\x03\\xb5\\x03\\x00\\x00\\x00\\x1fr\" + // 0x03B50300: 0x00001F72\n\t\"\\x03\\xb7\\x03\\x00\\x00\\x00\\x1ft\" + // 0x03B70300: 0x00001F74\n\t\"\\x03\\xb9\\x03\\x00\\x00\\x00\\x1fv\" + // 0x03B90300: 0x00001F76\n\t\"\\x03\\xbf\\x03\\x00\\x00\\x00\\x1fx\" + // 0x03BF0300: 0x00001F78\n\t\"\\x03\\xc5\\x03\\x00\\x00\\x00\\x1fz\" + // 0x03C50300: 0x00001F7A\n\t\"\\x03\\xc9\\x03\\x00\\x00\\x00\\x1f|\" + // 0x03C90300: 0x00001F7C\n\t\"\\x1f\\x00\\x03E\\x00\\x00\\x1f\\x80\" + // 0x1F000345: 0x00001F80\n\t\"\\x1f\\x01\\x03E\\x00\\x00\\x1f\\x81\" + // 0x1F010345: 0x00001F81\n\t\"\\x1f\\x02\\x03E\\x00\\x00\\x1f\\x82\" + // 0x1F020345: 0x00001F82\n\t\"\\x1f\\x03\\x03E\\x00\\x00\\x1f\\x83\" + // 0x1F030345: 0x00001F83\n\t\"\\x1f\\x04\\x03E\\x00\\x00\\x1f\\x84\" + // 0x1F040345: 0x00001F84\n\t\"\\x1f\\x05\\x03E\\x00\\x00\\x1f\\x85\" + // 0x1F050345: 0x00001F85\n\t\"\\x1f\\x06\\x03E\\x00\\x00\\x1f\\x86\" + // 0x1F060345: 0x00001F86\n\t\"\\x1f\\a\\x03E\\x00\\x00\\x1f\\x87\" + // 0x1F070345: 0x00001F87\n\t\"\\x1f\\b\\x03E\\x00\\x00\\x1f\\x88\" + // 0x1F080345: 0x00001F88\n\t\"\\x1f\\t\\x03E\\x00\\x00\\x1f\\x89\" + // 0x1F090345: 0x00001F89\n\t\"\\x1f\\n\\x03E\\x00\\x00\\x1f\\x8a\" + // 0x1F0A0345: 0x00001F8A\n\t\"\\x1f\\v\\x03E\\x00\\x00\\x1f\\x8b\" + // 0x1F0B0345: 0x00001F8B\n\t\"\\x1f\\f\\x03E\\x00\\x00\\x1f\\x8c\" + // 0x1F0C0345: 0x00001F8C\n\t\"\\x1f\\r\\x03E\\x00\\x00\\x1f\\x8d\" + // 0x1F0D0345: 0x00001F8D\n\t\"\\x1f\\x0e\\x03E\\x00\\x00\\x1f\\x8e\" + // 0x1F0E0345: 0x00001F8E\n\t\"\\x1f\\x0f\\x03E\\x00\\x00\\x1f\\x8f\" + // 0x1F0F0345: 0x00001F8F\n\t\"\\x1f \\x03E\\x00\\x00\\x1f\\x90\" + // 0x1F200345: 0x00001F90\n\t\"\\x1f!\\x03E\\x00\\x00\\x1f\\x91\" + // 0x1F210345: 0x00001F91\n\t\"\\x1f\\\"\\x03E\\x00\\x00\\x1f\\x92\" + // 0x1F220345: 0x00001F92\n\t\"\\x1f#\\x03E\\x00\\x00\\x1f\\x93\" + // 0x1F230345: 0x00001F93\n\t\"\\x1f$\\x03E\\x00\\x00\\x1f\\x94\" + // 0x1F240345: 0x00001F94\n\t\"\\x1f%\\x03E\\x00\\x00\\x1f\\x95\" + // 0x1F250345: 0x00001F95\n\t\"\\x1f&\\x03E\\x00\\x00\\x1f\\x96\" + // 0x1F260345: 0x00001F96\n\t\"\\x1f'\\x03E\\x00\\x00\\x1f\\x97\" + // 0x1F270345: 0x00001F97\n\t\"\\x1f(\\x03E\\x00\\x00\\x1f\\x98\" + // 0x1F280345: 0x00001F98\n\t\"\\x1f)\\x03E\\x00\\x00\\x1f\\x99\" + // 0x1F290345: 0x00001F99\n\t\"\\x1f*\\x03E\\x00\\x00\\x1f\\x9a\" + // 0x1F2A0345: 0x00001F9A\n\t\"\\x1f+\\x03E\\x00\\x00\\x1f\\x9b\" + // 0x1F2B0345: 0x00001F9B\n\t\"\\x1f,\\x03E\\x00\\x00\\x1f\\x9c\" + // 0x1F2C0345: 0x00001F9C\n\t\"\\x1f-\\x03E\\x00\\x00\\x1f\\x9d\" + // 0x1F2D0345: 0x00001F9D\n\t\"\\x1f.\\x03E\\x00\\x00\\x1f\\x9e\" + // 0x1F2E0345: 0x00001F9E\n\t\"\\x1f/\\x03E\\x00\\x00\\x1f\\x9f\" + // 0x1F2F0345: 0x00001F9F\n\t\"\\x1f`\\x03E\\x00\\x00\\x1f\\xa0\" + // 0x1F600345: 0x00001FA0\n\t\"\\x1fa\\x03E\\x00\\x00\\x1f\\xa1\" + // 0x1F610345: 0x00001FA1\n\t\"\\x1fb\\x03E\\x00\\x00\\x1f\\xa2\" + // 0x1F620345: 0x00001FA2\n\t\"\\x1fc\\x03E\\x00\\x00\\x1f\\xa3\" + // 0x1F630345: 0x00001FA3\n\t\"\\x1fd\\x03E\\x00\\x00\\x1f\\xa4\" + // 0x1F640345: 0x00001FA4\n\t\"\\x1fe\\x03E\\x00\\x00\\x1f\\xa5\" + // 0x1F650345: 0x00001FA5\n\t\"\\x1ff\\x03E\\x00\\x00\\x1f\\xa6\" + // 0x1F660345: 0x00001FA6\n\t\"\\x1fg\\x03E\\x00\\x00\\x1f\\xa7\" + // 0x1F670345: 0x00001FA7\n\t\"\\x1fh\\x03E\\x00\\x00\\x1f\\xa8\" + // 0x1F680345: 0x00001FA8\n\t\"\\x1fi\\x03E\\x00\\x00\\x1f\\xa9\" + // 0x1F690345: 0x00001FA9\n\t\"\\x1fj\\x03E\\x00\\x00\\x1f\\xaa\" + // 0x1F6A0345: 0x00001FAA\n\t\"\\x1fk\\x03E\\x00\\x00\\x1f\\xab\" + // 0x1F6B0345: 0x00001FAB\n\t\"\\x1fl\\x03E\\x00\\x00\\x1f\\xac\" + // 0x1F6C0345: 0x00001FAC\n\t\"\\x1fm\\x03E\\x00\\x00\\x1f\\xad\" + // 0x1F6D0345: 0x00001FAD\n\t\"\\x1fn\\x03E\\x00\\x00\\x1f\\xae\" + // 0x1F6E0345: 0x00001FAE\n\t\"\\x1fo\\x03E\\x00\\x00\\x1f\\xaf\" + // 0x1F6F0345: 0x00001FAF\n\t\"\\x03\\xb1\\x03\\x06\\x00\\x00\\x1f\\xb0\" + // 0x03B10306: 0x00001FB0\n\t\"\\x03\\xb1\\x03\\x04\\x00\\x00\\x1f\\xb1\" + // 0x03B10304: 0x00001FB1\n\t\"\\x1fp\\x03E\\x00\\x00\\x1f\\xb2\" + // 0x1F700345: 0x00001FB2\n\t\"\\x03\\xb1\\x03E\\x00\\x00\\x1f\\xb3\" + // 0x03B10345: 0x00001FB3\n\t\"\\x03\\xac\\x03E\\x00\\x00\\x1f\\xb4\" + // 0x03AC0345: 0x00001FB4\n\t\"\\x03\\xb1\\x03B\\x00\\x00\\x1f\\xb6\" + // 0x03B10342: 0x00001FB6\n\t\"\\x1f\\xb6\\x03E\\x00\\x00\\x1f\\xb7\" + // 0x1FB60345: 0x00001FB7\n\t\"\\x03\\x91\\x03\\x06\\x00\\x00\\x1f\\xb8\" + // 0x03910306: 0x00001FB8\n\t\"\\x03\\x91\\x03\\x04\\x00\\x00\\x1f\\xb9\" + // 0x03910304: 0x00001FB9\n\t\"\\x03\\x91\\x03\\x00\\x00\\x00\\x1f\\xba\" + // 0x03910300: 0x00001FBA\n\t\"\\x03\\x91\\x03E\\x00\\x00\\x1f\\xbc\" + // 0x03910345: 0x00001FBC\n\t\"\\x00\\xa8\\x03B\\x00\\x00\\x1f\\xc1\" + // 0x00A80342: 0x00001FC1\n\t\"\\x1ft\\x03E\\x00\\x00\\x1f\\xc2\" + // 0x1F740345: 0x00001FC2\n\t\"\\x03\\xb7\\x03E\\x00\\x00\\x1f\\xc3\" + // 0x03B70345: 0x00001FC3\n\t\"\\x03\\xae\\x03E\\x00\\x00\\x1f\\xc4\" + // 0x03AE0345: 0x00001FC4\n\t\"\\x03\\xb7\\x03B\\x00\\x00\\x1f\\xc6\" + // 0x03B70342: 0x00001FC6\n\t\"\\x1f\\xc6\\x03E\\x00\\x00\\x1f\\xc7\" + // 0x1FC60345: 0x00001FC7\n\t\"\\x03\\x95\\x03\\x00\\x00\\x00\\x1f\\xc8\" + // 0x03950300: 0x00001FC8\n\t\"\\x03\\x97\\x03\\x00\\x00\\x00\\x1f\\xca\" + // 0x03970300: 0x00001FCA\n\t\"\\x03\\x97\\x03E\\x00\\x00\\x1f\\xcc\" + // 0x03970345: 0x00001FCC\n\t\"\\x1f\\xbf\\x03\\x00\\x00\\x00\\x1f\\xcd\" + // 0x1FBF0300: 0x00001FCD\n\t\"\\x1f\\xbf\\x03\\x01\\x00\\x00\\x1f\\xce\" + // 0x1FBF0301: 0x00001FCE\n\t\"\\x1f\\xbf\\x03B\\x00\\x00\\x1f\\xcf\" + // 0x1FBF0342: 0x00001FCF\n\t\"\\x03\\xb9\\x03\\x06\\x00\\x00\\x1f\\xd0\" + // 0x03B90306: 0x00001FD0\n\t\"\\x03\\xb9\\x03\\x04\\x00\\x00\\x1f\\xd1\" + // 0x03B90304: 0x00001FD1\n\t\"\\x03\\xca\\x03\\x00\\x00\\x00\\x1f\\xd2\" + // 0x03CA0300: 0x00001FD2\n\t\"\\x03\\xb9\\x03B\\x00\\x00\\x1f\\xd6\" + // 0x03B90342: 0x00001FD6\n\t\"\\x03\\xca\\x03B\\x00\\x00\\x1f\\xd7\" + // 0x03CA0342: 0x00001FD7\n\t\"\\x03\\x99\\x03\\x06\\x00\\x00\\x1f\\xd8\" + // 0x03990306: 0x00001FD8\n\t\"\\x03\\x99\\x03\\x04\\x00\\x00\\x1f\\xd9\" + // 0x03990304: 0x00001FD9\n\t\"\\x03\\x99\\x03\\x00\\x00\\x00\\x1f\\xda\" + // 0x03990300: 0x00001FDA\n\t\"\\x1f\\xfe\\x03\\x00\\x00\\x00\\x1f\\xdd\" + // 0x1FFE0300: 0x00001FDD\n\t\"\\x1f\\xfe\\x03\\x01\\x00\\x00\\x1f\\xde\" + // 0x1FFE0301: 0x00001FDE\n\t\"\\x1f\\xfe\\x03B\\x00\\x00\\x1f\\xdf\" + // 0x1FFE0342: 0x00001FDF\n\t\"\\x03\\xc5\\x03\\x06\\x00\\x00\\x1f\\xe0\" + // 0x03C50306: 0x00001FE0\n\t\"\\x03\\xc5\\x03\\x04\\x00\\x00\\x1f\\xe1\" + // 0x03C50304: 0x00001FE1\n\t\"\\x03\\xcb\\x03\\x00\\x00\\x00\\x1f\\xe2\" + // 0x03CB0300: 0x00001FE2\n\t\"\\x03\\xc1\\x03\\x13\\x00\\x00\\x1f\\xe4\" + // 0x03C10313: 0x00001FE4\n\t\"\\x03\\xc1\\x03\\x14\\x00\\x00\\x1f\\xe5\" + // 0x03C10314: 0x00001FE5\n\t\"\\x03\\xc5\\x03B\\x00\\x00\\x1f\\xe6\" + // 0x03C50342: 0x00001FE6\n\t\"\\x03\\xcb\\x03B\\x00\\x00\\x1f\\xe7\" + // 0x03CB0342: 0x00001FE7\n\t\"\\x03\\xa5\\x03\\x06\\x00\\x00\\x1f\\xe8\" + // 0x03A50306: 0x00001FE8\n\t\"\\x03\\xa5\\x03\\x04\\x00\\x00\\x1f\\xe9\" + // 0x03A50304: 0x00001FE9\n\t\"\\x03\\xa5\\x03\\x00\\x00\\x00\\x1f\\xea\" + // 0x03A50300: 0x00001FEA\n\t\"\\x03\\xa1\\x03\\x14\\x00\\x00\\x1f\\xec\" + // 0x03A10314: 0x00001FEC\n\t\"\\x00\\xa8\\x03\\x00\\x00\\x00\\x1f\\xed\" + // 0x00A80300: 0x00001FED\n\t\"\\x1f|\\x03E\\x00\\x00\\x1f\\xf2\" + // 0x1F7C0345: 0x00001FF2\n\t\"\\x03\\xc9\\x03E\\x00\\x00\\x1f\\xf3\" + // 0x03C90345: 0x00001FF3\n\t\"\\x03\\xce\\x03E\\x00\\x00\\x1f\\xf4\" + // 0x03CE0345: 0x00001FF4\n\t\"\\x03\\xc9\\x03B\\x00\\x00\\x1f\\xf6\" + // 0x03C90342: 0x00001FF6\n\t\"\\x1f\\xf6\\x03E\\x00\\x00\\x1f\\xf7\" + // 0x1FF60345: 0x00001FF7\n\t\"\\x03\\x9f\\x03\\x00\\x00\\x00\\x1f\\xf8\" + // 0x039F0300: 0x00001FF8\n\t\"\\x03\\xa9\\x03\\x00\\x00\\x00\\x1f\\xfa\" + // 0x03A90300: 0x00001FFA\n\t\"\\x03\\xa9\\x03E\\x00\\x00\\x1f\\xfc\" + // 0x03A90345: 0x00001FFC\n\t\"!\\x90\\x038\\x00\\x00!\\x9a\" + // 0x21900338: 0x0000219A\n\t\"!\\x92\\x038\\x00\\x00!\\x9b\" + // 0x21920338: 0x0000219B\n\t\"!\\x94\\x038\\x00\\x00!\\xae\" + // 0x21940338: 0x000021AE\n\t\"!\\xd0\\x038\\x00\\x00!\\xcd\" + // 0x21D00338: 0x000021CD\n\t\"!\\xd4\\x038\\x00\\x00!\\xce\" + // 0x21D40338: 0x000021CE\n\t\"!\\xd2\\x038\\x00\\x00!\\xcf\" + // 0x21D20338: 0x000021CF\n\t\"\\\"\\x03\\x038\\x00\\x00\\\"\\x04\" + // 0x22030338: 0x00002204\n\t\"\\\"\\b\\x038\\x00\\x00\\\"\\t\" + // 0x22080338: 0x00002209\n\t\"\\\"\\v\\x038\\x00\\x00\\\"\\f\" + // 0x220B0338: 0x0000220C\n\t\"\\\"#\\x038\\x00\\x00\\\"$\" + // 0x22230338: 0x00002224\n\t\"\\\"%\\x038\\x00\\x00\\\"&\" + // 0x22250338: 0x00002226\n\t\"\\\"<\\x038\\x00\\x00\\\"A\" + // 0x223C0338: 0x00002241\n\t\"\\\"C\\x038\\x00\\x00\\\"D\" + // 0x22430338: 0x00002244\n\t\"\\\"E\\x038\\x00\\x00\\\"G\" + // 0x22450338: 0x00002247\n\t\"\\\"H\\x038\\x00\\x00\\\"I\" + // 0x22480338: 0x00002249\n\t\"\\x00=\\x038\\x00\\x00\\\"`\" + // 0x003D0338: 0x00002260\n\t\"\\\"a\\x038\\x00\\x00\\\"b\" + // 0x22610338: 0x00002262\n\t\"\\\"M\\x038\\x00\\x00\\\"m\" + // 0x224D0338: 0x0000226D\n\t\"\\x00<\\x038\\x00\\x00\\\"n\" + // 0x003C0338: 0x0000226E\n\t\"\\x00>\\x038\\x00\\x00\\\"o\" + // 0x003E0338: 0x0000226F\n\t\"\\\"d\\x038\\x00\\x00\\\"p\" + // 0x22640338: 0x00002270\n\t\"\\\"e\\x038\\x00\\x00\\\"q\" + // 0x22650338: 0x00002271\n\t\"\\\"r\\x038\\x00\\x00\\\"t\" + // 0x22720338: 0x00002274\n\t\"\\\"s\\x038\\x00\\x00\\\"u\" + // 0x22730338: 0x00002275\n\t\"\\\"v\\x038\\x00\\x00\\\"x\" + // 0x22760338: 0x00002278\n\t\"\\\"w\\x038\\x00\\x00\\\"y\" + // 0x22770338: 0x00002279\n\t\"\\\"z\\x038\\x00\\x00\\\"\\x80\" + // 0x227A0338: 0x00002280\n\t\"\\\"{\\x038\\x00\\x00\\\"\\x81\" + // 0x227B0338: 0x00002281\n\t\"\\\"\\x82\\x038\\x00\\x00\\\"\\x84\" + // 0x22820338: 0x00002284\n\t\"\\\"\\x83\\x038\\x00\\x00\\\"\\x85\" + // 0x22830338: 0x00002285\n\t\"\\\"\\x86\\x038\\x00\\x00\\\"\\x88\" + // 0x22860338: 0x00002288\n\t\"\\\"\\x87\\x038\\x00\\x00\\\"\\x89\" + // 0x22870338: 0x00002289\n\t\"\\\"\\xa2\\x038\\x00\\x00\\\"\\xac\" + // 0x22A20338: 0x000022AC\n\t\"\\\"\\xa8\\x038\\x00\\x00\\\"\\xad\" + // 0x22A80338: 0x000022AD\n\t\"\\\"\\xa9\\x038\\x00\\x00\\\"\\xae\" + // 0x22A90338: 0x000022AE\n\t\"\\\"\\xab\\x038\\x00\\x00\\\"\\xaf\" + // 0x22AB0338: 0x000022AF\n\t\"\\\"|\\x038\\x00\\x00\\\"\\xe0\" + // 0x227C0338: 0x000022E0\n\t\"\\\"}\\x038\\x00\\x00\\\"\\xe1\" + // 0x227D0338: 0x000022E1\n\t\"\\\"\\x91\\x038\\x00\\x00\\\"\\xe2\" + // 0x22910338: 0x000022E2\n\t\"\\\"\\x92\\x038\\x00\\x00\\\"\\xe3\" + // 0x22920338: 0x000022E3\n\t\"\\\"\\xb2\\x038\\x00\\x00\\\"\\xea\" + // 0x22B20338: 0x000022EA\n\t\"\\\"\\xb3\\x038\\x00\\x00\\\"\\xeb\" + // 0x22B30338: 0x000022EB\n\t\"\\\"\\xb4\\x038\\x00\\x00\\\"\\xec\" + // 0x22B40338: 0x000022EC\n\t\"\\\"\\xb5\\x038\\x00\\x00\\\"\\xed\" + // 0x22B50338: 0x000022ED\n\t\"0K0\\x99\\x00\\x000L\" + // 0x304B3099: 0x0000304C\n\t\"0M0\\x99\\x00\\x000N\" + // 0x304D3099: 0x0000304E\n\t\"0O0\\x99\\x00\\x000P\" + // 0x304F3099: 0x00003050\n\t\"0Q0\\x99\\x00\\x000R\" + // 0x30513099: 0x00003052\n\t\"0S0\\x99\\x00\\x000T\" + // 0x30533099: 0x00003054\n\t\"0U0\\x99\\x00\\x000V\" + // 0x30553099: 0x00003056\n\t\"0W0\\x99\\x00\\x000X\" + // 0x30573099: 0x00003058\n\t\"0Y0\\x99\\x00\\x000Z\" + // 0x30593099: 0x0000305A\n\t\"0[0\\x99\\x00\\x000\\\\\" + // 0x305B3099: 0x0000305C\n\t\"0]0\\x99\\x00\\x000^\" + // 0x305D3099: 0x0000305E\n\t\"0_0\\x99\\x00\\x000`\" + // 0x305F3099: 0x00003060\n\t\"0a0\\x99\\x00\\x000b\" + // 0x30613099: 0x00003062\n\t\"0d0\\x99\\x00\\x000e\" + // 0x30643099: 0x00003065\n\t\"0f0\\x99\\x00\\x000g\" + // 0x30663099: 0x00003067\n\t\"0h0\\x99\\x00\\x000i\" + // 0x30683099: 0x00003069\n\t\"0o0\\x99\\x00\\x000p\" + // 0x306F3099: 0x00003070\n\t\"0o0\\x9a\\x00\\x000q\" + // 0x306F309A: 0x00003071\n\t\"0r0\\x99\\x00\\x000s\" + // 0x30723099: 0x00003073\n\t\"0r0\\x9a\\x00\\x000t\" + // 0x3072309A: 0x00003074\n\t\"0u0\\x99\\x00\\x000v\" + // 0x30753099: 0x00003076\n\t\"0u0\\x9a\\x00\\x000w\" + // 0x3075309A: 0x00003077\n\t\"0x0\\x99\\x00\\x000y\" + // 0x30783099: 0x00003079\n\t\"0x0\\x9a\\x00\\x000z\" + // 0x3078309A: 0x0000307A\n\t\"0{0\\x99\\x00\\x000|\" + // 0x307B3099: 0x0000307C\n\t\"0{0\\x9a\\x00\\x000}\" + // 0x307B309A: 0x0000307D\n\t\"0F0\\x99\\x00\\x000\\x94\" + // 0x30463099: 0x00003094\n\t\"0\\x9d0\\x99\\x00\\x000\\x9e\" + // 0x309D3099: 0x0000309E\n\t\"0\\xab0\\x99\\x00\\x000\\xac\" + // 0x30AB3099: 0x000030AC\n\t\"0\\xad0\\x99\\x00\\x000\\xae\" + // 0x30AD3099: 0x000030AE\n\t\"0\\xaf0\\x99\\x00\\x000\\xb0\" + // 0x30AF3099: 0x000030B0\n\t\"0\\xb10\\x99\\x00\\x000\\xb2\" + // 0x30B13099: 0x000030B2\n\t\"0\\xb30\\x99\\x00\\x000\\xb4\" + // 0x30B33099: 0x000030B4\n\t\"0\\xb50\\x99\\x00\\x000\\xb6\" + // 0x30B53099: 0x000030B6\n\t\"0\\xb70\\x99\\x00\\x000\\xb8\" + // 0x30B73099: 0x000030B8\n\t\"0\\xb90\\x99\\x00\\x000\\xba\" + // 0x30B93099: 0x000030BA\n\t\"0\\xbb0\\x99\\x00\\x000\\xbc\" + // 0x30BB3099: 0x000030BC\n\t\"0\\xbd0\\x99\\x00\\x000\\xbe\" + // 0x30BD3099: 0x000030BE\n\t\"0\\xbf0\\x99\\x00\\x000\\xc0\" + // 0x30BF3099: 0x000030C0\n\t\"0\\xc10\\x99\\x00\\x000\\xc2\" + // 0x30C13099: 0x000030C2\n\t\"0\\xc40\\x99\\x00\\x000\\xc5\" + // 0x30C43099: 0x000030C5\n\t\"0\\xc60\\x99\\x00\\x000\\xc7\" + // 0x30C63099: 0x000030C7\n\t\"0\\xc80\\x99\\x00\\x000\\xc9\" + // 0x30C83099: 0x000030C9\n\t\"0\\xcf0\\x99\\x00\\x000\\xd0\" + // 0x30CF3099: 0x000030D0\n\t\"0\\xcf0\\x9a\\x00\\x000\\xd1\" + // 0x30CF309A: 0x000030D1\n\t\"0\\xd20\\x99\\x00\\x000\\xd3\" + // 0x30D23099: 0x000030D3\n\t\"0\\xd20\\x9a\\x00\\x000\\xd4\" + // 0x30D2309A: 0x000030D4\n\t\"0\\xd50\\x99\\x00\\x000\\xd6\" + // 0x30D53099: 0x000030D6\n\t\"0\\xd50\\x9a\\x00\\x000\\xd7\" + // 0x30D5309A: 0x000030D7\n\t\"0\\xd80\\x99\\x00\\x000\\xd9\" + // 0x30D83099: 0x000030D9\n\t\"0\\xd80\\x9a\\x00\\x000\\xda\" + // 0x30D8309A: 0x000030DA\n\t\"0\\xdb0\\x99\\x00\\x000\\xdc\" + // 0x30DB3099: 0x000030DC\n\t\"0\\xdb0\\x9a\\x00\\x000\\xdd\" + // 0x30DB309A: 0x000030DD\n\t\"0\\xa60\\x99\\x00\\x000\\xf4\" + // 0x30A63099: 0x000030F4\n\t\"0\\xef0\\x99\\x00\\x000\\xf7\" + // 0x30EF3099: 0x000030F7\n\t\"0\\xf00\\x99\\x00\\x000\\xf8\" + // 0x30F03099: 0x000030F8\n\t\"0\\xf10\\x99\\x00\\x000\\xf9\" + // 0x30F13099: 0x000030F9\n\t\"0\\xf20\\x99\\x00\\x000\\xfa\" + // 0x30F23099: 0x000030FA\n\t\"0\\xfd0\\x99\\x00\\x000\\xfe\" + // 0x30FD3099: 0x000030FE\n\t\"\\x10\\x99\\x10\\xba\\x00\\x01\\x10\\x9a\" + // 0x109910BA: 0x0001109A\n\t\"\\x10\\x9b\\x10\\xba\\x00\\x01\\x10\\x9c\" + // 0x109B10BA: 0x0001109C\n\t\"\\x10\\xa5\\x10\\xba\\x00\\x01\\x10\\xab\" + // 0x10A510BA: 0x000110AB\n\t\"\\x111\\x11'\\x00\\x01\\x11.\" + // 0x11311127: 0x0001112E\n\t\"\\x112\\x11'\\x00\\x01\\x11/\" + // 0x11321127: 0x0001112F\n\t\"\\x13G\\x13>\\x00\\x01\\x13K\" + // 0x1347133E: 0x0001134B\n\t\"\\x13G\\x13W\\x00\\x01\\x13L\" + // 0x13471357: 0x0001134C\n\t\"\\x14\\xb9\\x14\\xba\\x00\\x01\\x14\\xbb\" + // 0x14B914BA: 0x000114BB\n\t\"\\x14\\xb9\\x14\\xb0\\x00\\x01\\x14\\xbc\" + // 0x14B914B0: 0x000114BC\n\t\"\\x14\\xb9\\x14\\xbd\\x00\\x01\\x14\\xbe\" + // 0x14B914BD: 0x000114BE\n\t\"\\x15\\xb8\\x15\\xaf\\x00\\x01\\x15\\xba\" + // 0x15B815AF: 0x000115BA\n\t\"\\x15\\xb9\\x15\\xaf\\x00\\x01\\x15\\xbb\" + // 0x15B915AF: 0x000115BB\n\t\"\"\n\t// Total size of tables: 53KB (54514 bytes)\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/norm/tables12.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n//go:build go1.14 && !go1.16\n\npackage norm\n\nimport \"sync\"\n\nconst (\n\t// Version is the Unicode edition from which the tables are derived.\n\tVersion = \"12.0.0\"\n\n\t// MaxTransformChunkSize indicates the maximum number of bytes that Transform\n\t// may need to write atomically for any Form. Making a destination buffer at\n\t// least this size ensures that Transform can always make progress and that\n\t// the user does not need to grow the buffer on an ErrShortDst.\n\tMaxTransformChunkSize = 35 + maxNonStarters*4\n)\n\nvar ccc = [55]uint8{\n\t0, 1, 7, 8, 9, 10, 11, 12,\n\t13, 14, 15, 16, 17, 18, 19, 20,\n\t21, 22, 23, 24, 25, 26, 27, 28,\n\t29, 30, 31, 32, 33, 34, 35, 36,\n\t84, 91, 103, 107, 118, 122, 129, 130,\n\t132, 202, 214, 216, 218, 220, 222, 224,\n\t226, 228, 230, 232, 233, 234, 240,\n}\n\nconst (\n\tfirstMulti            = 0x186D\n\tfirstCCC              = 0x2CA1\n\tendMulti              = 0x2F63\n\tfirstLeadingCCC       = 0x49B1\n\tfirstCCCZeroExcept    = 0x4A7B\n\tfirstStarterWithNLead = 0x4AA2\n\tlastDecomp            = 0x4AA4\n\tmaxDecomp             = 0x8000\n)\n\n// decomps: 19108 bytes\nvar decomps = [...]byte{\n\t// Bytes 0 - 3f\n\t0x00, 0x41, 0x20, 0x41, 0x21, 0x41, 0x22, 0x41,\n\t0x23, 0x41, 0x24, 0x41, 0x25, 0x41, 0x26, 0x41,\n\t0x27, 0x41, 0x28, 0x41, 0x29, 0x41, 0x2A, 0x41,\n\t0x2B, 0x41, 0x2C, 0x41, 0x2D, 0x41, 0x2E, 0x41,\n\t0x2F, 0x41, 0x30, 0x41, 0x31, 0x41, 0x32, 0x41,\n\t0x33, 0x41, 0x34, 0x41, 0x35, 0x41, 0x36, 0x41,\n\t0x37, 0x41, 0x38, 0x41, 0x39, 0x41, 0x3A, 0x41,\n\t0x3B, 0x41, 0x3C, 0x41, 0x3D, 0x41, 0x3E, 0x41,\n\t// Bytes 40 - 7f\n\t0x3F, 0x41, 0x40, 0x41, 0x41, 0x41, 0x42, 0x41,\n\t0x43, 0x41, 0x44, 0x41, 0x45, 0x41, 0x46, 0x41,\n\t0x47, 0x41, 0x48, 0x41, 0x49, 0x41, 0x4A, 0x41,\n\t0x4B, 0x41, 0x4C, 0x41, 0x4D, 0x41, 0x4E, 0x41,\n\t0x4F, 0x41, 0x50, 0x41, 0x51, 0x41, 0x52, 0x41,\n\t0x53, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41,\n\t0x57, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5A, 0x41,\n\t0x5B, 0x41, 0x5C, 0x41, 0x5D, 0x41, 0x5E, 0x41,\n\t// Bytes 80 - bf\n\t0x5F, 0x41, 0x60, 0x41, 0x61, 0x41, 0x62, 0x41,\n\t0x63, 0x41, 0x64, 0x41, 0x65, 0x41, 0x66, 0x41,\n\t0x67, 0x41, 0x68, 0x41, 0x69, 0x41, 0x6A, 0x41,\n\t0x6B, 0x41, 0x6C, 0x41, 0x6D, 0x41, 0x6E, 0x41,\n\t0x6F, 0x41, 0x70, 0x41, 0x71, 0x41, 0x72, 0x41,\n\t0x73, 0x41, 0x74, 0x41, 0x75, 0x41, 0x76, 0x41,\n\t0x77, 0x41, 0x78, 0x41, 0x79, 0x41, 0x7A, 0x41,\n\t0x7B, 0x41, 0x7C, 0x41, 0x7D, 0x41, 0x7E, 0x42,\n\t// Bytes c0 - ff\n\t0xC2, 0xA2, 0x42, 0xC2, 0xA3, 0x42, 0xC2, 0xA5,\n\t0x42, 0xC2, 0xA6, 0x42, 0xC2, 0xAC, 0x42, 0xC2,\n\t0xB7, 0x42, 0xC3, 0x86, 0x42, 0xC3, 0xB0, 0x42,\n\t0xC4, 0xA6, 0x42, 0xC4, 0xA7, 0x42, 0xC4, 0xB1,\n\t0x42, 0xC5, 0x8B, 0x42, 0xC5, 0x93, 0x42, 0xC6,\n\t0x8E, 0x42, 0xC6, 0x90, 0x42, 0xC6, 0xAB, 0x42,\n\t0xC8, 0xA2, 0x42, 0xC8, 0xB7, 0x42, 0xC9, 0x90,\n\t0x42, 0xC9, 0x91, 0x42, 0xC9, 0x92, 0x42, 0xC9,\n\t// Bytes 100 - 13f\n\t0x94, 0x42, 0xC9, 0x95, 0x42, 0xC9, 0x99, 0x42,\n\t0xC9, 0x9B, 0x42, 0xC9, 0x9C, 0x42, 0xC9, 0x9F,\n\t0x42, 0xC9, 0xA1, 0x42, 0xC9, 0xA3, 0x42, 0xC9,\n\t0xA5, 0x42, 0xC9, 0xA6, 0x42, 0xC9, 0xA8, 0x42,\n\t0xC9, 0xA9, 0x42, 0xC9, 0xAA, 0x42, 0xC9, 0xAB,\n\t0x42, 0xC9, 0xAD, 0x42, 0xC9, 0xAF, 0x42, 0xC9,\n\t0xB0, 0x42, 0xC9, 0xB1, 0x42, 0xC9, 0xB2, 0x42,\n\t0xC9, 0xB3, 0x42, 0xC9, 0xB4, 0x42, 0xC9, 0xB5,\n\t// Bytes 140 - 17f\n\t0x42, 0xC9, 0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9,\n\t0xBB, 0x42, 0xCA, 0x81, 0x42, 0xCA, 0x82, 0x42,\n\t0xCA, 0x83, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A,\n\t0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA,\n\t0x90, 0x42, 0xCA, 0x91, 0x42, 0xCA, 0x92, 0x42,\n\t0xCA, 0x95, 0x42, 0xCA, 0x9D, 0x42, 0xCA, 0x9F,\n\t0x42, 0xCA, 0xB9, 0x42, 0xCE, 0x91, 0x42, 0xCE,\n\t0x92, 0x42, 0xCE, 0x93, 0x42, 0xCE, 0x94, 0x42,\n\t// Bytes 180 - 1bf\n\t0xCE, 0x95, 0x42, 0xCE, 0x96, 0x42, 0xCE, 0x97,\n\t0x42, 0xCE, 0x98, 0x42, 0xCE, 0x99, 0x42, 0xCE,\n\t0x9A, 0x42, 0xCE, 0x9B, 0x42, 0xCE, 0x9C, 0x42,\n\t0xCE, 0x9D, 0x42, 0xCE, 0x9E, 0x42, 0xCE, 0x9F,\n\t0x42, 0xCE, 0xA0, 0x42, 0xCE, 0xA1, 0x42, 0xCE,\n\t0xA3, 0x42, 0xCE, 0xA4, 0x42, 0xCE, 0xA5, 0x42,\n\t0xCE, 0xA6, 0x42, 0xCE, 0xA7, 0x42, 0xCE, 0xA8,\n\t0x42, 0xCE, 0xA9, 0x42, 0xCE, 0xB1, 0x42, 0xCE,\n\t// Bytes 1c0 - 1ff\n\t0xB2, 0x42, 0xCE, 0xB3, 0x42, 0xCE, 0xB4, 0x42,\n\t0xCE, 0xB5, 0x42, 0xCE, 0xB6, 0x42, 0xCE, 0xB7,\n\t0x42, 0xCE, 0xB8, 0x42, 0xCE, 0xB9, 0x42, 0xCE,\n\t0xBA, 0x42, 0xCE, 0xBB, 0x42, 0xCE, 0xBC, 0x42,\n\t0xCE, 0xBD, 0x42, 0xCE, 0xBE, 0x42, 0xCE, 0xBF,\n\t0x42, 0xCF, 0x80, 0x42, 0xCF, 0x81, 0x42, 0xCF,\n\t0x82, 0x42, 0xCF, 0x83, 0x42, 0xCF, 0x84, 0x42,\n\t0xCF, 0x85, 0x42, 0xCF, 0x86, 0x42, 0xCF, 0x87,\n\t// Bytes 200 - 23f\n\t0x42, 0xCF, 0x88, 0x42, 0xCF, 0x89, 0x42, 0xCF,\n\t0x9C, 0x42, 0xCF, 0x9D, 0x42, 0xD0, 0xBD, 0x42,\n\t0xD1, 0x8A, 0x42, 0xD1, 0x8C, 0x42, 0xD7, 0x90,\n\t0x42, 0xD7, 0x91, 0x42, 0xD7, 0x92, 0x42, 0xD7,\n\t0x93, 0x42, 0xD7, 0x94, 0x42, 0xD7, 0x9B, 0x42,\n\t0xD7, 0x9C, 0x42, 0xD7, 0x9D, 0x42, 0xD7, 0xA2,\n\t0x42, 0xD7, 0xA8, 0x42, 0xD7, 0xAA, 0x42, 0xD8,\n\t0xA1, 0x42, 0xD8, 0xA7, 0x42, 0xD8, 0xA8, 0x42,\n\t// Bytes 240 - 27f\n\t0xD8, 0xA9, 0x42, 0xD8, 0xAA, 0x42, 0xD8, 0xAB,\n\t0x42, 0xD8, 0xAC, 0x42, 0xD8, 0xAD, 0x42, 0xD8,\n\t0xAE, 0x42, 0xD8, 0xAF, 0x42, 0xD8, 0xB0, 0x42,\n\t0xD8, 0xB1, 0x42, 0xD8, 0xB2, 0x42, 0xD8, 0xB3,\n\t0x42, 0xD8, 0xB4, 0x42, 0xD8, 0xB5, 0x42, 0xD8,\n\t0xB6, 0x42, 0xD8, 0xB7, 0x42, 0xD8, 0xB8, 0x42,\n\t0xD8, 0xB9, 0x42, 0xD8, 0xBA, 0x42, 0xD9, 0x81,\n\t0x42, 0xD9, 0x82, 0x42, 0xD9, 0x83, 0x42, 0xD9,\n\t// Bytes 280 - 2bf\n\t0x84, 0x42, 0xD9, 0x85, 0x42, 0xD9, 0x86, 0x42,\n\t0xD9, 0x87, 0x42, 0xD9, 0x88, 0x42, 0xD9, 0x89,\n\t0x42, 0xD9, 0x8A, 0x42, 0xD9, 0xAE, 0x42, 0xD9,\n\t0xAF, 0x42, 0xD9, 0xB1, 0x42, 0xD9, 0xB9, 0x42,\n\t0xD9, 0xBA, 0x42, 0xD9, 0xBB, 0x42, 0xD9, 0xBE,\n\t0x42, 0xD9, 0xBF, 0x42, 0xDA, 0x80, 0x42, 0xDA,\n\t0x83, 0x42, 0xDA, 0x84, 0x42, 0xDA, 0x86, 0x42,\n\t0xDA, 0x87, 0x42, 0xDA, 0x88, 0x42, 0xDA, 0x8C,\n\t// Bytes 2c0 - 2ff\n\t0x42, 0xDA, 0x8D, 0x42, 0xDA, 0x8E, 0x42, 0xDA,\n\t0x91, 0x42, 0xDA, 0x98, 0x42, 0xDA, 0xA1, 0x42,\n\t0xDA, 0xA4, 0x42, 0xDA, 0xA6, 0x42, 0xDA, 0xA9,\n\t0x42, 0xDA, 0xAD, 0x42, 0xDA, 0xAF, 0x42, 0xDA,\n\t0xB1, 0x42, 0xDA, 0xB3, 0x42, 0xDA, 0xBA, 0x42,\n\t0xDA, 0xBB, 0x42, 0xDA, 0xBE, 0x42, 0xDB, 0x81,\n\t0x42, 0xDB, 0x85, 0x42, 0xDB, 0x86, 0x42, 0xDB,\n\t0x87, 0x42, 0xDB, 0x88, 0x42, 0xDB, 0x89, 0x42,\n\t// Bytes 300 - 33f\n\t0xDB, 0x8B, 0x42, 0xDB, 0x8C, 0x42, 0xDB, 0x90,\n\t0x42, 0xDB, 0x92, 0x43, 0xE0, 0xBC, 0x8B, 0x43,\n\t0xE1, 0x83, 0x9C, 0x43, 0xE1, 0x84, 0x80, 0x43,\n\t0xE1, 0x84, 0x81, 0x43, 0xE1, 0x84, 0x82, 0x43,\n\t0xE1, 0x84, 0x83, 0x43, 0xE1, 0x84, 0x84, 0x43,\n\t0xE1, 0x84, 0x85, 0x43, 0xE1, 0x84, 0x86, 0x43,\n\t0xE1, 0x84, 0x87, 0x43, 0xE1, 0x84, 0x88, 0x43,\n\t0xE1, 0x84, 0x89, 0x43, 0xE1, 0x84, 0x8A, 0x43,\n\t// Bytes 340 - 37f\n\t0xE1, 0x84, 0x8B, 0x43, 0xE1, 0x84, 0x8C, 0x43,\n\t0xE1, 0x84, 0x8D, 0x43, 0xE1, 0x84, 0x8E, 0x43,\n\t0xE1, 0x84, 0x8F, 0x43, 0xE1, 0x84, 0x90, 0x43,\n\t0xE1, 0x84, 0x91, 0x43, 0xE1, 0x84, 0x92, 0x43,\n\t0xE1, 0x84, 0x94, 0x43, 0xE1, 0x84, 0x95, 0x43,\n\t0xE1, 0x84, 0x9A, 0x43, 0xE1, 0x84, 0x9C, 0x43,\n\t0xE1, 0x84, 0x9D, 0x43, 0xE1, 0x84, 0x9E, 0x43,\n\t0xE1, 0x84, 0xA0, 0x43, 0xE1, 0x84, 0xA1, 0x43,\n\t// Bytes 380 - 3bf\n\t0xE1, 0x84, 0xA2, 0x43, 0xE1, 0x84, 0xA3, 0x43,\n\t0xE1, 0x84, 0xA7, 0x43, 0xE1, 0x84, 0xA9, 0x43,\n\t0xE1, 0x84, 0xAB, 0x43, 0xE1, 0x84, 0xAC, 0x43,\n\t0xE1, 0x84, 0xAD, 0x43, 0xE1, 0x84, 0xAE, 0x43,\n\t0xE1, 0x84, 0xAF, 0x43, 0xE1, 0x84, 0xB2, 0x43,\n\t0xE1, 0x84, 0xB6, 0x43, 0xE1, 0x85, 0x80, 0x43,\n\t0xE1, 0x85, 0x87, 0x43, 0xE1, 0x85, 0x8C, 0x43,\n\t0xE1, 0x85, 0x97, 0x43, 0xE1, 0x85, 0x98, 0x43,\n\t// Bytes 3c0 - 3ff\n\t0xE1, 0x85, 0x99, 0x43, 0xE1, 0x85, 0xA0, 0x43,\n\t0xE1, 0x86, 0x84, 0x43, 0xE1, 0x86, 0x85, 0x43,\n\t0xE1, 0x86, 0x88, 0x43, 0xE1, 0x86, 0x91, 0x43,\n\t0xE1, 0x86, 0x92, 0x43, 0xE1, 0x86, 0x94, 0x43,\n\t0xE1, 0x86, 0x9E, 0x43, 0xE1, 0x86, 0xA1, 0x43,\n\t0xE1, 0x87, 0x87, 0x43, 0xE1, 0x87, 0x88, 0x43,\n\t0xE1, 0x87, 0x8C, 0x43, 0xE1, 0x87, 0x8E, 0x43,\n\t0xE1, 0x87, 0x93, 0x43, 0xE1, 0x87, 0x97, 0x43,\n\t// Bytes 400 - 43f\n\t0xE1, 0x87, 0x99, 0x43, 0xE1, 0x87, 0x9D, 0x43,\n\t0xE1, 0x87, 0x9F, 0x43, 0xE1, 0x87, 0xB1, 0x43,\n\t0xE1, 0x87, 0xB2, 0x43, 0xE1, 0xB4, 0x82, 0x43,\n\t0xE1, 0xB4, 0x96, 0x43, 0xE1, 0xB4, 0x97, 0x43,\n\t0xE1, 0xB4, 0x9C, 0x43, 0xE1, 0xB4, 0x9D, 0x43,\n\t0xE1, 0xB4, 0xA5, 0x43, 0xE1, 0xB5, 0xBB, 0x43,\n\t0xE1, 0xB6, 0x85, 0x43, 0xE2, 0x80, 0x82, 0x43,\n\t0xE2, 0x80, 0x83, 0x43, 0xE2, 0x80, 0x90, 0x43,\n\t// Bytes 440 - 47f\n\t0xE2, 0x80, 0x93, 0x43, 0xE2, 0x80, 0x94, 0x43,\n\t0xE2, 0x82, 0xA9, 0x43, 0xE2, 0x86, 0x90, 0x43,\n\t0xE2, 0x86, 0x91, 0x43, 0xE2, 0x86, 0x92, 0x43,\n\t0xE2, 0x86, 0x93, 0x43, 0xE2, 0x88, 0x82, 0x43,\n\t0xE2, 0x88, 0x87, 0x43, 0xE2, 0x88, 0x91, 0x43,\n\t0xE2, 0x88, 0x92, 0x43, 0xE2, 0x94, 0x82, 0x43,\n\t0xE2, 0x96, 0xA0, 0x43, 0xE2, 0x97, 0x8B, 0x43,\n\t0xE2, 0xA6, 0x85, 0x43, 0xE2, 0xA6, 0x86, 0x43,\n\t// Bytes 480 - 4bf\n\t0xE2, 0xB5, 0xA1, 0x43, 0xE3, 0x80, 0x81, 0x43,\n\t0xE3, 0x80, 0x82, 0x43, 0xE3, 0x80, 0x88, 0x43,\n\t0xE3, 0x80, 0x89, 0x43, 0xE3, 0x80, 0x8A, 0x43,\n\t0xE3, 0x80, 0x8B, 0x43, 0xE3, 0x80, 0x8C, 0x43,\n\t0xE3, 0x80, 0x8D, 0x43, 0xE3, 0x80, 0x8E, 0x43,\n\t0xE3, 0x80, 0x8F, 0x43, 0xE3, 0x80, 0x90, 0x43,\n\t0xE3, 0x80, 0x91, 0x43, 0xE3, 0x80, 0x92, 0x43,\n\t0xE3, 0x80, 0x94, 0x43, 0xE3, 0x80, 0x95, 0x43,\n\t// Bytes 4c0 - 4ff\n\t0xE3, 0x80, 0x96, 0x43, 0xE3, 0x80, 0x97, 0x43,\n\t0xE3, 0x82, 0xA1, 0x43, 0xE3, 0x82, 0xA2, 0x43,\n\t0xE3, 0x82, 0xA3, 0x43, 0xE3, 0x82, 0xA4, 0x43,\n\t0xE3, 0x82, 0xA5, 0x43, 0xE3, 0x82, 0xA6, 0x43,\n\t0xE3, 0x82, 0xA7, 0x43, 0xE3, 0x82, 0xA8, 0x43,\n\t0xE3, 0x82, 0xA9, 0x43, 0xE3, 0x82, 0xAA, 0x43,\n\t0xE3, 0x82, 0xAB, 0x43, 0xE3, 0x82, 0xAD, 0x43,\n\t0xE3, 0x82, 0xAF, 0x43, 0xE3, 0x82, 0xB1, 0x43,\n\t// Bytes 500 - 53f\n\t0xE3, 0x82, 0xB3, 0x43, 0xE3, 0x82, 0xB5, 0x43,\n\t0xE3, 0x82, 0xB7, 0x43, 0xE3, 0x82, 0xB9, 0x43,\n\t0xE3, 0x82, 0xBB, 0x43, 0xE3, 0x82, 0xBD, 0x43,\n\t0xE3, 0x82, 0xBF, 0x43, 0xE3, 0x83, 0x81, 0x43,\n\t0xE3, 0x83, 0x83, 0x43, 0xE3, 0x83, 0x84, 0x43,\n\t0xE3, 0x83, 0x86, 0x43, 0xE3, 0x83, 0x88, 0x43,\n\t0xE3, 0x83, 0x8A, 0x43, 0xE3, 0x83, 0x8B, 0x43,\n\t0xE3, 0x83, 0x8C, 0x43, 0xE3, 0x83, 0x8D, 0x43,\n\t// Bytes 540 - 57f\n\t0xE3, 0x83, 0x8E, 0x43, 0xE3, 0x83, 0x8F, 0x43,\n\t0xE3, 0x83, 0x92, 0x43, 0xE3, 0x83, 0x95, 0x43,\n\t0xE3, 0x83, 0x98, 0x43, 0xE3, 0x83, 0x9B, 0x43,\n\t0xE3, 0x83, 0x9E, 0x43, 0xE3, 0x83, 0x9F, 0x43,\n\t0xE3, 0x83, 0xA0, 0x43, 0xE3, 0x83, 0xA1, 0x43,\n\t0xE3, 0x83, 0xA2, 0x43, 0xE3, 0x83, 0xA3, 0x43,\n\t0xE3, 0x83, 0xA4, 0x43, 0xE3, 0x83, 0xA5, 0x43,\n\t0xE3, 0x83, 0xA6, 0x43, 0xE3, 0x83, 0xA7, 0x43,\n\t// Bytes 580 - 5bf\n\t0xE3, 0x83, 0xA8, 0x43, 0xE3, 0x83, 0xA9, 0x43,\n\t0xE3, 0x83, 0xAA, 0x43, 0xE3, 0x83, 0xAB, 0x43,\n\t0xE3, 0x83, 0xAC, 0x43, 0xE3, 0x83, 0xAD, 0x43,\n\t0xE3, 0x83, 0xAF, 0x43, 0xE3, 0x83, 0xB0, 0x43,\n\t0xE3, 0x83, 0xB1, 0x43, 0xE3, 0x83, 0xB2, 0x43,\n\t0xE3, 0x83, 0xB3, 0x43, 0xE3, 0x83, 0xBB, 0x43,\n\t0xE3, 0x83, 0xBC, 0x43, 0xE3, 0x92, 0x9E, 0x43,\n\t0xE3, 0x92, 0xB9, 0x43, 0xE3, 0x92, 0xBB, 0x43,\n\t// Bytes 5c0 - 5ff\n\t0xE3, 0x93, 0x9F, 0x43, 0xE3, 0x94, 0x95, 0x43,\n\t0xE3, 0x9B, 0xAE, 0x43, 0xE3, 0x9B, 0xBC, 0x43,\n\t0xE3, 0x9E, 0x81, 0x43, 0xE3, 0xA0, 0xAF, 0x43,\n\t0xE3, 0xA1, 0xA2, 0x43, 0xE3, 0xA1, 0xBC, 0x43,\n\t0xE3, 0xA3, 0x87, 0x43, 0xE3, 0xA3, 0xA3, 0x43,\n\t0xE3, 0xA4, 0x9C, 0x43, 0xE3, 0xA4, 0xBA, 0x43,\n\t0xE3, 0xA8, 0xAE, 0x43, 0xE3, 0xA9, 0xAC, 0x43,\n\t0xE3, 0xAB, 0xA4, 0x43, 0xE3, 0xAC, 0x88, 0x43,\n\t// Bytes 600 - 63f\n\t0xE3, 0xAC, 0x99, 0x43, 0xE3, 0xAD, 0x89, 0x43,\n\t0xE3, 0xAE, 0x9D, 0x43, 0xE3, 0xB0, 0x98, 0x43,\n\t0xE3, 0xB1, 0x8E, 0x43, 0xE3, 0xB4, 0xB3, 0x43,\n\t0xE3, 0xB6, 0x96, 0x43, 0xE3, 0xBA, 0xAC, 0x43,\n\t0xE3, 0xBA, 0xB8, 0x43, 0xE3, 0xBC, 0x9B, 0x43,\n\t0xE3, 0xBF, 0xBC, 0x43, 0xE4, 0x80, 0x88, 0x43,\n\t0xE4, 0x80, 0x98, 0x43, 0xE4, 0x80, 0xB9, 0x43,\n\t0xE4, 0x81, 0x86, 0x43, 0xE4, 0x82, 0x96, 0x43,\n\t// Bytes 640 - 67f\n\t0xE4, 0x83, 0xA3, 0x43, 0xE4, 0x84, 0xAF, 0x43,\n\t0xE4, 0x88, 0x82, 0x43, 0xE4, 0x88, 0xA7, 0x43,\n\t0xE4, 0x8A, 0xA0, 0x43, 0xE4, 0x8C, 0x81, 0x43,\n\t0xE4, 0x8C, 0xB4, 0x43, 0xE4, 0x8D, 0x99, 0x43,\n\t0xE4, 0x8F, 0x95, 0x43, 0xE4, 0x8F, 0x99, 0x43,\n\t0xE4, 0x90, 0x8B, 0x43, 0xE4, 0x91, 0xAB, 0x43,\n\t0xE4, 0x94, 0xAB, 0x43, 0xE4, 0x95, 0x9D, 0x43,\n\t0xE4, 0x95, 0xA1, 0x43, 0xE4, 0x95, 0xAB, 0x43,\n\t// Bytes 680 - 6bf\n\t0xE4, 0x97, 0x97, 0x43, 0xE4, 0x97, 0xB9, 0x43,\n\t0xE4, 0x98, 0xB5, 0x43, 0xE4, 0x9A, 0xBE, 0x43,\n\t0xE4, 0x9B, 0x87, 0x43, 0xE4, 0xA6, 0x95, 0x43,\n\t0xE4, 0xA7, 0xA6, 0x43, 0xE4, 0xA9, 0xAE, 0x43,\n\t0xE4, 0xA9, 0xB6, 0x43, 0xE4, 0xAA, 0xB2, 0x43,\n\t0xE4, 0xAC, 0xB3, 0x43, 0xE4, 0xAF, 0x8E, 0x43,\n\t0xE4, 0xB3, 0x8E, 0x43, 0xE4, 0xB3, 0xAD, 0x43,\n\t0xE4, 0xB3, 0xB8, 0x43, 0xE4, 0xB5, 0x96, 0x43,\n\t// Bytes 6c0 - 6ff\n\t0xE4, 0xB8, 0x80, 0x43, 0xE4, 0xB8, 0x81, 0x43,\n\t0xE4, 0xB8, 0x83, 0x43, 0xE4, 0xB8, 0x89, 0x43,\n\t0xE4, 0xB8, 0x8A, 0x43, 0xE4, 0xB8, 0x8B, 0x43,\n\t0xE4, 0xB8, 0x8D, 0x43, 0xE4, 0xB8, 0x99, 0x43,\n\t0xE4, 0xB8, 0xA6, 0x43, 0xE4, 0xB8, 0xA8, 0x43,\n\t0xE4, 0xB8, 0xAD, 0x43, 0xE4, 0xB8, 0xB2, 0x43,\n\t0xE4, 0xB8, 0xB6, 0x43, 0xE4, 0xB8, 0xB8, 0x43,\n\t0xE4, 0xB8, 0xB9, 0x43, 0xE4, 0xB8, 0xBD, 0x43,\n\t// Bytes 700 - 73f\n\t0xE4, 0xB8, 0xBF, 0x43, 0xE4, 0xB9, 0x81, 0x43,\n\t0xE4, 0xB9, 0x99, 0x43, 0xE4, 0xB9, 0x9D, 0x43,\n\t0xE4, 0xBA, 0x82, 0x43, 0xE4, 0xBA, 0x85, 0x43,\n\t0xE4, 0xBA, 0x86, 0x43, 0xE4, 0xBA, 0x8C, 0x43,\n\t0xE4, 0xBA, 0x94, 0x43, 0xE4, 0xBA, 0xA0, 0x43,\n\t0xE4, 0xBA, 0xA4, 0x43, 0xE4, 0xBA, 0xAE, 0x43,\n\t0xE4, 0xBA, 0xBA, 0x43, 0xE4, 0xBB, 0x80, 0x43,\n\t0xE4, 0xBB, 0x8C, 0x43, 0xE4, 0xBB, 0xA4, 0x43,\n\t// Bytes 740 - 77f\n\t0xE4, 0xBC, 0x81, 0x43, 0xE4, 0xBC, 0x91, 0x43,\n\t0xE4, 0xBD, 0xA0, 0x43, 0xE4, 0xBE, 0x80, 0x43,\n\t0xE4, 0xBE, 0x86, 0x43, 0xE4, 0xBE, 0x8B, 0x43,\n\t0xE4, 0xBE, 0xAE, 0x43, 0xE4, 0xBE, 0xBB, 0x43,\n\t0xE4, 0xBE, 0xBF, 0x43, 0xE5, 0x80, 0x82, 0x43,\n\t0xE5, 0x80, 0xAB, 0x43, 0xE5, 0x81, 0xBA, 0x43,\n\t0xE5, 0x82, 0x99, 0x43, 0xE5, 0x83, 0x8F, 0x43,\n\t0xE5, 0x83, 0x9A, 0x43, 0xE5, 0x83, 0xA7, 0x43,\n\t// Bytes 780 - 7bf\n\t0xE5, 0x84, 0xAA, 0x43, 0xE5, 0x84, 0xBF, 0x43,\n\t0xE5, 0x85, 0x80, 0x43, 0xE5, 0x85, 0x85, 0x43,\n\t0xE5, 0x85, 0x8D, 0x43, 0xE5, 0x85, 0x94, 0x43,\n\t0xE5, 0x85, 0xA4, 0x43, 0xE5, 0x85, 0xA5, 0x43,\n\t0xE5, 0x85, 0xA7, 0x43, 0xE5, 0x85, 0xA8, 0x43,\n\t0xE5, 0x85, 0xA9, 0x43, 0xE5, 0x85, 0xAB, 0x43,\n\t0xE5, 0x85, 0xAD, 0x43, 0xE5, 0x85, 0xB7, 0x43,\n\t0xE5, 0x86, 0x80, 0x43, 0xE5, 0x86, 0x82, 0x43,\n\t// Bytes 7c0 - 7ff\n\t0xE5, 0x86, 0x8D, 0x43, 0xE5, 0x86, 0x92, 0x43,\n\t0xE5, 0x86, 0x95, 0x43, 0xE5, 0x86, 0x96, 0x43,\n\t0xE5, 0x86, 0x97, 0x43, 0xE5, 0x86, 0x99, 0x43,\n\t0xE5, 0x86, 0xA4, 0x43, 0xE5, 0x86, 0xAB, 0x43,\n\t0xE5, 0x86, 0xAC, 0x43, 0xE5, 0x86, 0xB5, 0x43,\n\t0xE5, 0x86, 0xB7, 0x43, 0xE5, 0x87, 0x89, 0x43,\n\t0xE5, 0x87, 0x8C, 0x43, 0xE5, 0x87, 0x9C, 0x43,\n\t0xE5, 0x87, 0x9E, 0x43, 0xE5, 0x87, 0xA0, 0x43,\n\t// Bytes 800 - 83f\n\t0xE5, 0x87, 0xB5, 0x43, 0xE5, 0x88, 0x80, 0x43,\n\t0xE5, 0x88, 0x83, 0x43, 0xE5, 0x88, 0x87, 0x43,\n\t0xE5, 0x88, 0x97, 0x43, 0xE5, 0x88, 0x9D, 0x43,\n\t0xE5, 0x88, 0xA9, 0x43, 0xE5, 0x88, 0xBA, 0x43,\n\t0xE5, 0x88, 0xBB, 0x43, 0xE5, 0x89, 0x86, 0x43,\n\t0xE5, 0x89, 0x8D, 0x43, 0xE5, 0x89, 0xB2, 0x43,\n\t0xE5, 0x89, 0xB7, 0x43, 0xE5, 0x8A, 0x89, 0x43,\n\t0xE5, 0x8A, 0x9B, 0x43, 0xE5, 0x8A, 0xA3, 0x43,\n\t// Bytes 840 - 87f\n\t0xE5, 0x8A, 0xB3, 0x43, 0xE5, 0x8A, 0xB4, 0x43,\n\t0xE5, 0x8B, 0x87, 0x43, 0xE5, 0x8B, 0x89, 0x43,\n\t0xE5, 0x8B, 0x92, 0x43, 0xE5, 0x8B, 0x9E, 0x43,\n\t0xE5, 0x8B, 0xA4, 0x43, 0xE5, 0x8B, 0xB5, 0x43,\n\t0xE5, 0x8B, 0xB9, 0x43, 0xE5, 0x8B, 0xBA, 0x43,\n\t0xE5, 0x8C, 0x85, 0x43, 0xE5, 0x8C, 0x86, 0x43,\n\t0xE5, 0x8C, 0x95, 0x43, 0xE5, 0x8C, 0x97, 0x43,\n\t0xE5, 0x8C, 0x9A, 0x43, 0xE5, 0x8C, 0xB8, 0x43,\n\t// Bytes 880 - 8bf\n\t0xE5, 0x8C, 0xBB, 0x43, 0xE5, 0x8C, 0xBF, 0x43,\n\t0xE5, 0x8D, 0x81, 0x43, 0xE5, 0x8D, 0x84, 0x43,\n\t0xE5, 0x8D, 0x85, 0x43, 0xE5, 0x8D, 0x89, 0x43,\n\t0xE5, 0x8D, 0x91, 0x43, 0xE5, 0x8D, 0x94, 0x43,\n\t0xE5, 0x8D, 0x9A, 0x43, 0xE5, 0x8D, 0x9C, 0x43,\n\t0xE5, 0x8D, 0xA9, 0x43, 0xE5, 0x8D, 0xB0, 0x43,\n\t0xE5, 0x8D, 0xB3, 0x43, 0xE5, 0x8D, 0xB5, 0x43,\n\t0xE5, 0x8D, 0xBD, 0x43, 0xE5, 0x8D, 0xBF, 0x43,\n\t// Bytes 8c0 - 8ff\n\t0xE5, 0x8E, 0x82, 0x43, 0xE5, 0x8E, 0xB6, 0x43,\n\t0xE5, 0x8F, 0x83, 0x43, 0xE5, 0x8F, 0x88, 0x43,\n\t0xE5, 0x8F, 0x8A, 0x43, 0xE5, 0x8F, 0x8C, 0x43,\n\t0xE5, 0x8F, 0x9F, 0x43, 0xE5, 0x8F, 0xA3, 0x43,\n\t0xE5, 0x8F, 0xA5, 0x43, 0xE5, 0x8F, 0xAB, 0x43,\n\t0xE5, 0x8F, 0xAF, 0x43, 0xE5, 0x8F, 0xB1, 0x43,\n\t0xE5, 0x8F, 0xB3, 0x43, 0xE5, 0x90, 0x86, 0x43,\n\t0xE5, 0x90, 0x88, 0x43, 0xE5, 0x90, 0x8D, 0x43,\n\t// Bytes 900 - 93f\n\t0xE5, 0x90, 0x8F, 0x43, 0xE5, 0x90, 0x9D, 0x43,\n\t0xE5, 0x90, 0xB8, 0x43, 0xE5, 0x90, 0xB9, 0x43,\n\t0xE5, 0x91, 0x82, 0x43, 0xE5, 0x91, 0x88, 0x43,\n\t0xE5, 0x91, 0xA8, 0x43, 0xE5, 0x92, 0x9E, 0x43,\n\t0xE5, 0x92, 0xA2, 0x43, 0xE5, 0x92, 0xBD, 0x43,\n\t0xE5, 0x93, 0xB6, 0x43, 0xE5, 0x94, 0x90, 0x43,\n\t0xE5, 0x95, 0x8F, 0x43, 0xE5, 0x95, 0x93, 0x43,\n\t0xE5, 0x95, 0x95, 0x43, 0xE5, 0x95, 0xA3, 0x43,\n\t// Bytes 940 - 97f\n\t0xE5, 0x96, 0x84, 0x43, 0xE5, 0x96, 0x87, 0x43,\n\t0xE5, 0x96, 0x99, 0x43, 0xE5, 0x96, 0x9D, 0x43,\n\t0xE5, 0x96, 0xAB, 0x43, 0xE5, 0x96, 0xB3, 0x43,\n\t0xE5, 0x96, 0xB6, 0x43, 0xE5, 0x97, 0x80, 0x43,\n\t0xE5, 0x97, 0x82, 0x43, 0xE5, 0x97, 0xA2, 0x43,\n\t0xE5, 0x98, 0x86, 0x43, 0xE5, 0x99, 0x91, 0x43,\n\t0xE5, 0x99, 0xA8, 0x43, 0xE5, 0x99, 0xB4, 0x43,\n\t0xE5, 0x9B, 0x97, 0x43, 0xE5, 0x9B, 0x9B, 0x43,\n\t// Bytes 980 - 9bf\n\t0xE5, 0x9B, 0xB9, 0x43, 0xE5, 0x9C, 0x96, 0x43,\n\t0xE5, 0x9C, 0x97, 0x43, 0xE5, 0x9C, 0x9F, 0x43,\n\t0xE5, 0x9C, 0xB0, 0x43, 0xE5, 0x9E, 0x8B, 0x43,\n\t0xE5, 0x9F, 0x8E, 0x43, 0xE5, 0x9F, 0xB4, 0x43,\n\t0xE5, 0xA0, 0x8D, 0x43, 0xE5, 0xA0, 0xB1, 0x43,\n\t0xE5, 0xA0, 0xB2, 0x43, 0xE5, 0xA1, 0x80, 0x43,\n\t0xE5, 0xA1, 0x9A, 0x43, 0xE5, 0xA1, 0x9E, 0x43,\n\t0xE5, 0xA2, 0xA8, 0x43, 0xE5, 0xA2, 0xAC, 0x43,\n\t// Bytes 9c0 - 9ff\n\t0xE5, 0xA2, 0xB3, 0x43, 0xE5, 0xA3, 0x98, 0x43,\n\t0xE5, 0xA3, 0x9F, 0x43, 0xE5, 0xA3, 0xAB, 0x43,\n\t0xE5, 0xA3, 0xAE, 0x43, 0xE5, 0xA3, 0xB0, 0x43,\n\t0xE5, 0xA3, 0xB2, 0x43, 0xE5, 0xA3, 0xB7, 0x43,\n\t0xE5, 0xA4, 0x82, 0x43, 0xE5, 0xA4, 0x86, 0x43,\n\t0xE5, 0xA4, 0x8A, 0x43, 0xE5, 0xA4, 0x95, 0x43,\n\t0xE5, 0xA4, 0x9A, 0x43, 0xE5, 0xA4, 0x9C, 0x43,\n\t0xE5, 0xA4, 0xA2, 0x43, 0xE5, 0xA4, 0xA7, 0x43,\n\t// Bytes a00 - a3f\n\t0xE5, 0xA4, 0xA9, 0x43, 0xE5, 0xA5, 0x84, 0x43,\n\t0xE5, 0xA5, 0x88, 0x43, 0xE5, 0xA5, 0x91, 0x43,\n\t0xE5, 0xA5, 0x94, 0x43, 0xE5, 0xA5, 0xA2, 0x43,\n\t0xE5, 0xA5, 0xB3, 0x43, 0xE5, 0xA7, 0x98, 0x43,\n\t0xE5, 0xA7, 0xAC, 0x43, 0xE5, 0xA8, 0x9B, 0x43,\n\t0xE5, 0xA8, 0xA7, 0x43, 0xE5, 0xA9, 0xA2, 0x43,\n\t0xE5, 0xA9, 0xA6, 0x43, 0xE5, 0xAA, 0xB5, 0x43,\n\t0xE5, 0xAC, 0x88, 0x43, 0xE5, 0xAC, 0xA8, 0x43,\n\t// Bytes a40 - a7f\n\t0xE5, 0xAC, 0xBE, 0x43, 0xE5, 0xAD, 0x90, 0x43,\n\t0xE5, 0xAD, 0x97, 0x43, 0xE5, 0xAD, 0xA6, 0x43,\n\t0xE5, 0xAE, 0x80, 0x43, 0xE5, 0xAE, 0x85, 0x43,\n\t0xE5, 0xAE, 0x97, 0x43, 0xE5, 0xAF, 0x83, 0x43,\n\t0xE5, 0xAF, 0x98, 0x43, 0xE5, 0xAF, 0xA7, 0x43,\n\t0xE5, 0xAF, 0xAE, 0x43, 0xE5, 0xAF, 0xB3, 0x43,\n\t0xE5, 0xAF, 0xB8, 0x43, 0xE5, 0xAF, 0xBF, 0x43,\n\t0xE5, 0xB0, 0x86, 0x43, 0xE5, 0xB0, 0x8F, 0x43,\n\t// Bytes a80 - abf\n\t0xE5, 0xB0, 0xA2, 0x43, 0xE5, 0xB0, 0xB8, 0x43,\n\t0xE5, 0xB0, 0xBF, 0x43, 0xE5, 0xB1, 0xA0, 0x43,\n\t0xE5, 0xB1, 0xA2, 0x43, 0xE5, 0xB1, 0xA4, 0x43,\n\t0xE5, 0xB1, 0xA5, 0x43, 0xE5, 0xB1, 0xAE, 0x43,\n\t0xE5, 0xB1, 0xB1, 0x43, 0xE5, 0xB2, 0x8D, 0x43,\n\t0xE5, 0xB3, 0x80, 0x43, 0xE5, 0xB4, 0x99, 0x43,\n\t0xE5, 0xB5, 0x83, 0x43, 0xE5, 0xB5, 0x90, 0x43,\n\t0xE5, 0xB5, 0xAB, 0x43, 0xE5, 0xB5, 0xAE, 0x43,\n\t// Bytes ac0 - aff\n\t0xE5, 0xB5, 0xBC, 0x43, 0xE5, 0xB6, 0xB2, 0x43,\n\t0xE5, 0xB6, 0xBA, 0x43, 0xE5, 0xB7, 0x9B, 0x43,\n\t0xE5, 0xB7, 0xA1, 0x43, 0xE5, 0xB7, 0xA2, 0x43,\n\t0xE5, 0xB7, 0xA5, 0x43, 0xE5, 0xB7, 0xA6, 0x43,\n\t0xE5, 0xB7, 0xB1, 0x43, 0xE5, 0xB7, 0xBD, 0x43,\n\t0xE5, 0xB7, 0xBE, 0x43, 0xE5, 0xB8, 0xA8, 0x43,\n\t0xE5, 0xB8, 0xBD, 0x43, 0xE5, 0xB9, 0xA9, 0x43,\n\t0xE5, 0xB9, 0xB2, 0x43, 0xE5, 0xB9, 0xB4, 0x43,\n\t// Bytes b00 - b3f\n\t0xE5, 0xB9, 0xBA, 0x43, 0xE5, 0xB9, 0xBC, 0x43,\n\t0xE5, 0xB9, 0xBF, 0x43, 0xE5, 0xBA, 0xA6, 0x43,\n\t0xE5, 0xBA, 0xB0, 0x43, 0xE5, 0xBA, 0xB3, 0x43,\n\t0xE5, 0xBA, 0xB6, 0x43, 0xE5, 0xBB, 0x89, 0x43,\n\t0xE5, 0xBB, 0x8A, 0x43, 0xE5, 0xBB, 0x92, 0x43,\n\t0xE5, 0xBB, 0x93, 0x43, 0xE5, 0xBB, 0x99, 0x43,\n\t0xE5, 0xBB, 0xAC, 0x43, 0xE5, 0xBB, 0xB4, 0x43,\n\t0xE5, 0xBB, 0xBE, 0x43, 0xE5, 0xBC, 0x84, 0x43,\n\t// Bytes b40 - b7f\n\t0xE5, 0xBC, 0x8B, 0x43, 0xE5, 0xBC, 0x93, 0x43,\n\t0xE5, 0xBC, 0xA2, 0x43, 0xE5, 0xBD, 0x90, 0x43,\n\t0xE5, 0xBD, 0x93, 0x43, 0xE5, 0xBD, 0xA1, 0x43,\n\t0xE5, 0xBD, 0xA2, 0x43, 0xE5, 0xBD, 0xA9, 0x43,\n\t0xE5, 0xBD, 0xAB, 0x43, 0xE5, 0xBD, 0xB3, 0x43,\n\t0xE5, 0xBE, 0x8B, 0x43, 0xE5, 0xBE, 0x8C, 0x43,\n\t0xE5, 0xBE, 0x97, 0x43, 0xE5, 0xBE, 0x9A, 0x43,\n\t0xE5, 0xBE, 0xA9, 0x43, 0xE5, 0xBE, 0xAD, 0x43,\n\t// Bytes b80 - bbf\n\t0xE5, 0xBF, 0x83, 0x43, 0xE5, 0xBF, 0x8D, 0x43,\n\t0xE5, 0xBF, 0x97, 0x43, 0xE5, 0xBF, 0xB5, 0x43,\n\t0xE5, 0xBF, 0xB9, 0x43, 0xE6, 0x80, 0x92, 0x43,\n\t0xE6, 0x80, 0x9C, 0x43, 0xE6, 0x81, 0xB5, 0x43,\n\t0xE6, 0x82, 0x81, 0x43, 0xE6, 0x82, 0x94, 0x43,\n\t0xE6, 0x83, 0x87, 0x43, 0xE6, 0x83, 0x98, 0x43,\n\t0xE6, 0x83, 0xA1, 0x43, 0xE6, 0x84, 0x88, 0x43,\n\t0xE6, 0x85, 0x84, 0x43, 0xE6, 0x85, 0x88, 0x43,\n\t// Bytes bc0 - bff\n\t0xE6, 0x85, 0x8C, 0x43, 0xE6, 0x85, 0x8E, 0x43,\n\t0xE6, 0x85, 0xA0, 0x43, 0xE6, 0x85, 0xA8, 0x43,\n\t0xE6, 0x85, 0xBA, 0x43, 0xE6, 0x86, 0x8E, 0x43,\n\t0xE6, 0x86, 0x90, 0x43, 0xE6, 0x86, 0xA4, 0x43,\n\t0xE6, 0x86, 0xAF, 0x43, 0xE6, 0x86, 0xB2, 0x43,\n\t0xE6, 0x87, 0x9E, 0x43, 0xE6, 0x87, 0xB2, 0x43,\n\t0xE6, 0x87, 0xB6, 0x43, 0xE6, 0x88, 0x80, 0x43,\n\t0xE6, 0x88, 0x88, 0x43, 0xE6, 0x88, 0x90, 0x43,\n\t// Bytes c00 - c3f\n\t0xE6, 0x88, 0x9B, 0x43, 0xE6, 0x88, 0xAE, 0x43,\n\t0xE6, 0x88, 0xB4, 0x43, 0xE6, 0x88, 0xB6, 0x43,\n\t0xE6, 0x89, 0x8B, 0x43, 0xE6, 0x89, 0x93, 0x43,\n\t0xE6, 0x89, 0x9D, 0x43, 0xE6, 0x8A, 0x95, 0x43,\n\t0xE6, 0x8A, 0xB1, 0x43, 0xE6, 0x8B, 0x89, 0x43,\n\t0xE6, 0x8B, 0x8F, 0x43, 0xE6, 0x8B, 0x93, 0x43,\n\t0xE6, 0x8B, 0x94, 0x43, 0xE6, 0x8B, 0xBC, 0x43,\n\t0xE6, 0x8B, 0xBE, 0x43, 0xE6, 0x8C, 0x87, 0x43,\n\t// Bytes c40 - c7f\n\t0xE6, 0x8C, 0xBD, 0x43, 0xE6, 0x8D, 0x90, 0x43,\n\t0xE6, 0x8D, 0x95, 0x43, 0xE6, 0x8D, 0xA8, 0x43,\n\t0xE6, 0x8D, 0xBB, 0x43, 0xE6, 0x8E, 0x83, 0x43,\n\t0xE6, 0x8E, 0xA0, 0x43, 0xE6, 0x8E, 0xA9, 0x43,\n\t0xE6, 0x8F, 0x84, 0x43, 0xE6, 0x8F, 0x85, 0x43,\n\t0xE6, 0x8F, 0xA4, 0x43, 0xE6, 0x90, 0x9C, 0x43,\n\t0xE6, 0x90, 0xA2, 0x43, 0xE6, 0x91, 0x92, 0x43,\n\t0xE6, 0x91, 0xA9, 0x43, 0xE6, 0x91, 0xB7, 0x43,\n\t// Bytes c80 - cbf\n\t0xE6, 0x91, 0xBE, 0x43, 0xE6, 0x92, 0x9A, 0x43,\n\t0xE6, 0x92, 0x9D, 0x43, 0xE6, 0x93, 0x84, 0x43,\n\t0xE6, 0x94, 0xAF, 0x43, 0xE6, 0x94, 0xB4, 0x43,\n\t0xE6, 0x95, 0x8F, 0x43, 0xE6, 0x95, 0x96, 0x43,\n\t0xE6, 0x95, 0xAC, 0x43, 0xE6, 0x95, 0xB8, 0x43,\n\t0xE6, 0x96, 0x87, 0x43, 0xE6, 0x96, 0x97, 0x43,\n\t0xE6, 0x96, 0x99, 0x43, 0xE6, 0x96, 0xA4, 0x43,\n\t0xE6, 0x96, 0xB0, 0x43, 0xE6, 0x96, 0xB9, 0x43,\n\t// Bytes cc0 - cff\n\t0xE6, 0x97, 0x85, 0x43, 0xE6, 0x97, 0xA0, 0x43,\n\t0xE6, 0x97, 0xA2, 0x43, 0xE6, 0x97, 0xA3, 0x43,\n\t0xE6, 0x97, 0xA5, 0x43, 0xE6, 0x98, 0x93, 0x43,\n\t0xE6, 0x98, 0xA0, 0x43, 0xE6, 0x99, 0x89, 0x43,\n\t0xE6, 0x99, 0xB4, 0x43, 0xE6, 0x9A, 0x88, 0x43,\n\t0xE6, 0x9A, 0x91, 0x43, 0xE6, 0x9A, 0x9C, 0x43,\n\t0xE6, 0x9A, 0xB4, 0x43, 0xE6, 0x9B, 0x86, 0x43,\n\t0xE6, 0x9B, 0xB0, 0x43, 0xE6, 0x9B, 0xB4, 0x43,\n\t// Bytes d00 - d3f\n\t0xE6, 0x9B, 0xB8, 0x43, 0xE6, 0x9C, 0x80, 0x43,\n\t0xE6, 0x9C, 0x88, 0x43, 0xE6, 0x9C, 0x89, 0x43,\n\t0xE6, 0x9C, 0x97, 0x43, 0xE6, 0x9C, 0x9B, 0x43,\n\t0xE6, 0x9C, 0xA1, 0x43, 0xE6, 0x9C, 0xA8, 0x43,\n\t0xE6, 0x9D, 0x8E, 0x43, 0xE6, 0x9D, 0x93, 0x43,\n\t0xE6, 0x9D, 0x96, 0x43, 0xE6, 0x9D, 0x9E, 0x43,\n\t0xE6, 0x9D, 0xBB, 0x43, 0xE6, 0x9E, 0x85, 0x43,\n\t0xE6, 0x9E, 0x97, 0x43, 0xE6, 0x9F, 0xB3, 0x43,\n\t// Bytes d40 - d7f\n\t0xE6, 0x9F, 0xBA, 0x43, 0xE6, 0xA0, 0x97, 0x43,\n\t0xE6, 0xA0, 0x9F, 0x43, 0xE6, 0xA0, 0xAA, 0x43,\n\t0xE6, 0xA1, 0x92, 0x43, 0xE6, 0xA2, 0x81, 0x43,\n\t0xE6, 0xA2, 0x85, 0x43, 0xE6, 0xA2, 0x8E, 0x43,\n\t0xE6, 0xA2, 0xA8, 0x43, 0xE6, 0xA4, 0x94, 0x43,\n\t0xE6, 0xA5, 0x82, 0x43, 0xE6, 0xA6, 0xA3, 0x43,\n\t0xE6, 0xA7, 0xAA, 0x43, 0xE6, 0xA8, 0x82, 0x43,\n\t0xE6, 0xA8, 0x93, 0x43, 0xE6, 0xAA, 0xA8, 0x43,\n\t// Bytes d80 - dbf\n\t0xE6, 0xAB, 0x93, 0x43, 0xE6, 0xAB, 0x9B, 0x43,\n\t0xE6, 0xAC, 0x84, 0x43, 0xE6, 0xAC, 0xA0, 0x43,\n\t0xE6, 0xAC, 0xA1, 0x43, 0xE6, 0xAD, 0x94, 0x43,\n\t0xE6, 0xAD, 0xA2, 0x43, 0xE6, 0xAD, 0xA3, 0x43,\n\t0xE6, 0xAD, 0xB2, 0x43, 0xE6, 0xAD, 0xB7, 0x43,\n\t0xE6, 0xAD, 0xB9, 0x43, 0xE6, 0xAE, 0x9F, 0x43,\n\t0xE6, 0xAE, 0xAE, 0x43, 0xE6, 0xAE, 0xB3, 0x43,\n\t0xE6, 0xAE, 0xBA, 0x43, 0xE6, 0xAE, 0xBB, 0x43,\n\t// Bytes dc0 - dff\n\t0xE6, 0xAF, 0x8B, 0x43, 0xE6, 0xAF, 0x8D, 0x43,\n\t0xE6, 0xAF, 0x94, 0x43, 0xE6, 0xAF, 0x9B, 0x43,\n\t0xE6, 0xB0, 0x8F, 0x43, 0xE6, 0xB0, 0x94, 0x43,\n\t0xE6, 0xB0, 0xB4, 0x43, 0xE6, 0xB1, 0x8E, 0x43,\n\t0xE6, 0xB1, 0xA7, 0x43, 0xE6, 0xB2, 0x88, 0x43,\n\t0xE6, 0xB2, 0xBF, 0x43, 0xE6, 0xB3, 0x8C, 0x43,\n\t0xE6, 0xB3, 0x8D, 0x43, 0xE6, 0xB3, 0xA5, 0x43,\n\t0xE6, 0xB3, 0xA8, 0x43, 0xE6, 0xB4, 0x96, 0x43,\n\t// Bytes e00 - e3f\n\t0xE6, 0xB4, 0x9B, 0x43, 0xE6, 0xB4, 0x9E, 0x43,\n\t0xE6, 0xB4, 0xB4, 0x43, 0xE6, 0xB4, 0xBE, 0x43,\n\t0xE6, 0xB5, 0x81, 0x43, 0xE6, 0xB5, 0xA9, 0x43,\n\t0xE6, 0xB5, 0xAA, 0x43, 0xE6, 0xB5, 0xB7, 0x43,\n\t0xE6, 0xB5, 0xB8, 0x43, 0xE6, 0xB6, 0x85, 0x43,\n\t0xE6, 0xB7, 0x8B, 0x43, 0xE6, 0xB7, 0x9A, 0x43,\n\t0xE6, 0xB7, 0xAA, 0x43, 0xE6, 0xB7, 0xB9, 0x43,\n\t0xE6, 0xB8, 0x9A, 0x43, 0xE6, 0xB8, 0xAF, 0x43,\n\t// Bytes e40 - e7f\n\t0xE6, 0xB9, 0xAE, 0x43, 0xE6, 0xBA, 0x80, 0x43,\n\t0xE6, 0xBA, 0x9C, 0x43, 0xE6, 0xBA, 0xBA, 0x43,\n\t0xE6, 0xBB, 0x87, 0x43, 0xE6, 0xBB, 0x8B, 0x43,\n\t0xE6, 0xBB, 0x91, 0x43, 0xE6, 0xBB, 0x9B, 0x43,\n\t0xE6, 0xBC, 0x8F, 0x43, 0xE6, 0xBC, 0x94, 0x43,\n\t0xE6, 0xBC, 0xA2, 0x43, 0xE6, 0xBC, 0xA3, 0x43,\n\t0xE6, 0xBD, 0xAE, 0x43, 0xE6, 0xBF, 0x86, 0x43,\n\t0xE6, 0xBF, 0xAB, 0x43, 0xE6, 0xBF, 0xBE, 0x43,\n\t// Bytes e80 - ebf\n\t0xE7, 0x80, 0x9B, 0x43, 0xE7, 0x80, 0x9E, 0x43,\n\t0xE7, 0x80, 0xB9, 0x43, 0xE7, 0x81, 0x8A, 0x43,\n\t0xE7, 0x81, 0xAB, 0x43, 0xE7, 0x81, 0xB0, 0x43,\n\t0xE7, 0x81, 0xB7, 0x43, 0xE7, 0x81, 0xBD, 0x43,\n\t0xE7, 0x82, 0x99, 0x43, 0xE7, 0x82, 0xAD, 0x43,\n\t0xE7, 0x83, 0x88, 0x43, 0xE7, 0x83, 0x99, 0x43,\n\t0xE7, 0x84, 0xA1, 0x43, 0xE7, 0x85, 0x85, 0x43,\n\t0xE7, 0x85, 0x89, 0x43, 0xE7, 0x85, 0xAE, 0x43,\n\t// Bytes ec0 - eff\n\t0xE7, 0x86, 0x9C, 0x43, 0xE7, 0x87, 0x8E, 0x43,\n\t0xE7, 0x87, 0x90, 0x43, 0xE7, 0x88, 0x90, 0x43,\n\t0xE7, 0x88, 0x9B, 0x43, 0xE7, 0x88, 0xA8, 0x43,\n\t0xE7, 0x88, 0xAA, 0x43, 0xE7, 0x88, 0xAB, 0x43,\n\t0xE7, 0x88, 0xB5, 0x43, 0xE7, 0x88, 0xB6, 0x43,\n\t0xE7, 0x88, 0xBB, 0x43, 0xE7, 0x88, 0xBF, 0x43,\n\t0xE7, 0x89, 0x87, 0x43, 0xE7, 0x89, 0x90, 0x43,\n\t0xE7, 0x89, 0x99, 0x43, 0xE7, 0x89, 0x9B, 0x43,\n\t// Bytes f00 - f3f\n\t0xE7, 0x89, 0xA2, 0x43, 0xE7, 0x89, 0xB9, 0x43,\n\t0xE7, 0x8A, 0x80, 0x43, 0xE7, 0x8A, 0x95, 0x43,\n\t0xE7, 0x8A, 0xAC, 0x43, 0xE7, 0x8A, 0xAF, 0x43,\n\t0xE7, 0x8B, 0x80, 0x43, 0xE7, 0x8B, 0xBC, 0x43,\n\t0xE7, 0x8C, 0xAA, 0x43, 0xE7, 0x8D, 0xB5, 0x43,\n\t0xE7, 0x8D, 0xBA, 0x43, 0xE7, 0x8E, 0x84, 0x43,\n\t0xE7, 0x8E, 0x87, 0x43, 0xE7, 0x8E, 0x89, 0x43,\n\t0xE7, 0x8E, 0x8B, 0x43, 0xE7, 0x8E, 0xA5, 0x43,\n\t// Bytes f40 - f7f\n\t0xE7, 0x8E, 0xB2, 0x43, 0xE7, 0x8F, 0x9E, 0x43,\n\t0xE7, 0x90, 0x86, 0x43, 0xE7, 0x90, 0x89, 0x43,\n\t0xE7, 0x90, 0xA2, 0x43, 0xE7, 0x91, 0x87, 0x43,\n\t0xE7, 0x91, 0x9C, 0x43, 0xE7, 0x91, 0xA9, 0x43,\n\t0xE7, 0x91, 0xB1, 0x43, 0xE7, 0x92, 0x85, 0x43,\n\t0xE7, 0x92, 0x89, 0x43, 0xE7, 0x92, 0x98, 0x43,\n\t0xE7, 0x93, 0x8A, 0x43, 0xE7, 0x93, 0x9C, 0x43,\n\t0xE7, 0x93, 0xA6, 0x43, 0xE7, 0x94, 0x86, 0x43,\n\t// Bytes f80 - fbf\n\t0xE7, 0x94, 0x98, 0x43, 0xE7, 0x94, 0x9F, 0x43,\n\t0xE7, 0x94, 0xA4, 0x43, 0xE7, 0x94, 0xA8, 0x43,\n\t0xE7, 0x94, 0xB0, 0x43, 0xE7, 0x94, 0xB2, 0x43,\n\t0xE7, 0x94, 0xB3, 0x43, 0xE7, 0x94, 0xB7, 0x43,\n\t0xE7, 0x94, 0xBB, 0x43, 0xE7, 0x94, 0xBE, 0x43,\n\t0xE7, 0x95, 0x99, 0x43, 0xE7, 0x95, 0xA5, 0x43,\n\t0xE7, 0x95, 0xB0, 0x43, 0xE7, 0x96, 0x8B, 0x43,\n\t0xE7, 0x96, 0x92, 0x43, 0xE7, 0x97, 0xA2, 0x43,\n\t// Bytes fc0 - fff\n\t0xE7, 0x98, 0x90, 0x43, 0xE7, 0x98, 0x9D, 0x43,\n\t0xE7, 0x98, 0x9F, 0x43, 0xE7, 0x99, 0x82, 0x43,\n\t0xE7, 0x99, 0xA9, 0x43, 0xE7, 0x99, 0xB6, 0x43,\n\t0xE7, 0x99, 0xBD, 0x43, 0xE7, 0x9A, 0xAE, 0x43,\n\t0xE7, 0x9A, 0xBF, 0x43, 0xE7, 0x9B, 0x8A, 0x43,\n\t0xE7, 0x9B, 0x9B, 0x43, 0xE7, 0x9B, 0xA3, 0x43,\n\t0xE7, 0x9B, 0xA7, 0x43, 0xE7, 0x9B, 0xAE, 0x43,\n\t0xE7, 0x9B, 0xB4, 0x43, 0xE7, 0x9C, 0x81, 0x43,\n\t// Bytes 1000 - 103f\n\t0xE7, 0x9C, 0x9E, 0x43, 0xE7, 0x9C, 0x9F, 0x43,\n\t0xE7, 0x9D, 0x80, 0x43, 0xE7, 0x9D, 0x8A, 0x43,\n\t0xE7, 0x9E, 0x8B, 0x43, 0xE7, 0x9E, 0xA7, 0x43,\n\t0xE7, 0x9F, 0x9B, 0x43, 0xE7, 0x9F, 0xA2, 0x43,\n\t0xE7, 0x9F, 0xB3, 0x43, 0xE7, 0xA1, 0x8E, 0x43,\n\t0xE7, 0xA1, 0xAB, 0x43, 0xE7, 0xA2, 0x8C, 0x43,\n\t0xE7, 0xA2, 0x91, 0x43, 0xE7, 0xA3, 0x8A, 0x43,\n\t0xE7, 0xA3, 0x8C, 0x43, 0xE7, 0xA3, 0xBB, 0x43,\n\t// Bytes 1040 - 107f\n\t0xE7, 0xA4, 0xAA, 0x43, 0xE7, 0xA4, 0xBA, 0x43,\n\t0xE7, 0xA4, 0xBC, 0x43, 0xE7, 0xA4, 0xBE, 0x43,\n\t0xE7, 0xA5, 0x88, 0x43, 0xE7, 0xA5, 0x89, 0x43,\n\t0xE7, 0xA5, 0x90, 0x43, 0xE7, 0xA5, 0x96, 0x43,\n\t0xE7, 0xA5, 0x9D, 0x43, 0xE7, 0xA5, 0x9E, 0x43,\n\t0xE7, 0xA5, 0xA5, 0x43, 0xE7, 0xA5, 0xBF, 0x43,\n\t0xE7, 0xA6, 0x81, 0x43, 0xE7, 0xA6, 0x8D, 0x43,\n\t0xE7, 0xA6, 0x8E, 0x43, 0xE7, 0xA6, 0x8F, 0x43,\n\t// Bytes 1080 - 10bf\n\t0xE7, 0xA6, 0xAE, 0x43, 0xE7, 0xA6, 0xB8, 0x43,\n\t0xE7, 0xA6, 0xBE, 0x43, 0xE7, 0xA7, 0x8A, 0x43,\n\t0xE7, 0xA7, 0x98, 0x43, 0xE7, 0xA7, 0xAB, 0x43,\n\t0xE7, 0xA8, 0x9C, 0x43, 0xE7, 0xA9, 0x80, 0x43,\n\t0xE7, 0xA9, 0x8A, 0x43, 0xE7, 0xA9, 0x8F, 0x43,\n\t0xE7, 0xA9, 0xB4, 0x43, 0xE7, 0xA9, 0xBA, 0x43,\n\t0xE7, 0xAA, 0x81, 0x43, 0xE7, 0xAA, 0xB1, 0x43,\n\t0xE7, 0xAB, 0x8B, 0x43, 0xE7, 0xAB, 0xAE, 0x43,\n\t// Bytes 10c0 - 10ff\n\t0xE7, 0xAB, 0xB9, 0x43, 0xE7, 0xAC, 0xA0, 0x43,\n\t0xE7, 0xAE, 0x8F, 0x43, 0xE7, 0xAF, 0x80, 0x43,\n\t0xE7, 0xAF, 0x86, 0x43, 0xE7, 0xAF, 0x89, 0x43,\n\t0xE7, 0xB0, 0xBE, 0x43, 0xE7, 0xB1, 0xA0, 0x43,\n\t0xE7, 0xB1, 0xB3, 0x43, 0xE7, 0xB1, 0xBB, 0x43,\n\t0xE7, 0xB2, 0x92, 0x43, 0xE7, 0xB2, 0xBE, 0x43,\n\t0xE7, 0xB3, 0x92, 0x43, 0xE7, 0xB3, 0x96, 0x43,\n\t0xE7, 0xB3, 0xA3, 0x43, 0xE7, 0xB3, 0xA7, 0x43,\n\t// Bytes 1100 - 113f\n\t0xE7, 0xB3, 0xA8, 0x43, 0xE7, 0xB3, 0xB8, 0x43,\n\t0xE7, 0xB4, 0x80, 0x43, 0xE7, 0xB4, 0x90, 0x43,\n\t0xE7, 0xB4, 0xA2, 0x43, 0xE7, 0xB4, 0xAF, 0x43,\n\t0xE7, 0xB5, 0x82, 0x43, 0xE7, 0xB5, 0x9B, 0x43,\n\t0xE7, 0xB5, 0xA3, 0x43, 0xE7, 0xB6, 0xA0, 0x43,\n\t0xE7, 0xB6, 0xBE, 0x43, 0xE7, 0xB7, 0x87, 0x43,\n\t0xE7, 0xB7, 0xB4, 0x43, 0xE7, 0xB8, 0x82, 0x43,\n\t0xE7, 0xB8, 0x89, 0x43, 0xE7, 0xB8, 0xB7, 0x43,\n\t// Bytes 1140 - 117f\n\t0xE7, 0xB9, 0x81, 0x43, 0xE7, 0xB9, 0x85, 0x43,\n\t0xE7, 0xBC, 0xB6, 0x43, 0xE7, 0xBC, 0xBE, 0x43,\n\t0xE7, 0xBD, 0x91, 0x43, 0xE7, 0xBD, 0xB2, 0x43,\n\t0xE7, 0xBD, 0xB9, 0x43, 0xE7, 0xBD, 0xBA, 0x43,\n\t0xE7, 0xBE, 0x85, 0x43, 0xE7, 0xBE, 0x8A, 0x43,\n\t0xE7, 0xBE, 0x95, 0x43, 0xE7, 0xBE, 0x9A, 0x43,\n\t0xE7, 0xBE, 0xBD, 0x43, 0xE7, 0xBF, 0xBA, 0x43,\n\t0xE8, 0x80, 0x81, 0x43, 0xE8, 0x80, 0x85, 0x43,\n\t// Bytes 1180 - 11bf\n\t0xE8, 0x80, 0x8C, 0x43, 0xE8, 0x80, 0x92, 0x43,\n\t0xE8, 0x80, 0xB3, 0x43, 0xE8, 0x81, 0x86, 0x43,\n\t0xE8, 0x81, 0xA0, 0x43, 0xE8, 0x81, 0xAF, 0x43,\n\t0xE8, 0x81, 0xB0, 0x43, 0xE8, 0x81, 0xBE, 0x43,\n\t0xE8, 0x81, 0xBF, 0x43, 0xE8, 0x82, 0x89, 0x43,\n\t0xE8, 0x82, 0x8B, 0x43, 0xE8, 0x82, 0xAD, 0x43,\n\t0xE8, 0x82, 0xB2, 0x43, 0xE8, 0x84, 0x83, 0x43,\n\t0xE8, 0x84, 0xBE, 0x43, 0xE8, 0x87, 0x98, 0x43,\n\t// Bytes 11c0 - 11ff\n\t0xE8, 0x87, 0xA3, 0x43, 0xE8, 0x87, 0xA8, 0x43,\n\t0xE8, 0x87, 0xAA, 0x43, 0xE8, 0x87, 0xAD, 0x43,\n\t0xE8, 0x87, 0xB3, 0x43, 0xE8, 0x87, 0xBC, 0x43,\n\t0xE8, 0x88, 0x81, 0x43, 0xE8, 0x88, 0x84, 0x43,\n\t0xE8, 0x88, 0x8C, 0x43, 0xE8, 0x88, 0x98, 0x43,\n\t0xE8, 0x88, 0x9B, 0x43, 0xE8, 0x88, 0x9F, 0x43,\n\t0xE8, 0x89, 0xAE, 0x43, 0xE8, 0x89, 0xAF, 0x43,\n\t0xE8, 0x89, 0xB2, 0x43, 0xE8, 0x89, 0xB8, 0x43,\n\t// Bytes 1200 - 123f\n\t0xE8, 0x89, 0xB9, 0x43, 0xE8, 0x8A, 0x8B, 0x43,\n\t0xE8, 0x8A, 0x91, 0x43, 0xE8, 0x8A, 0x9D, 0x43,\n\t0xE8, 0x8A, 0xB1, 0x43, 0xE8, 0x8A, 0xB3, 0x43,\n\t0xE8, 0x8A, 0xBD, 0x43, 0xE8, 0x8B, 0xA5, 0x43,\n\t0xE8, 0x8B, 0xA6, 0x43, 0xE8, 0x8C, 0x9D, 0x43,\n\t0xE8, 0x8C, 0xA3, 0x43, 0xE8, 0x8C, 0xB6, 0x43,\n\t0xE8, 0x8D, 0x92, 0x43, 0xE8, 0x8D, 0x93, 0x43,\n\t0xE8, 0x8D, 0xA3, 0x43, 0xE8, 0x8E, 0xAD, 0x43,\n\t// Bytes 1240 - 127f\n\t0xE8, 0x8E, 0xBD, 0x43, 0xE8, 0x8F, 0x89, 0x43,\n\t0xE8, 0x8F, 0x8A, 0x43, 0xE8, 0x8F, 0x8C, 0x43,\n\t0xE8, 0x8F, 0x9C, 0x43, 0xE8, 0x8F, 0xA7, 0x43,\n\t0xE8, 0x8F, 0xAF, 0x43, 0xE8, 0x8F, 0xB1, 0x43,\n\t0xE8, 0x90, 0xBD, 0x43, 0xE8, 0x91, 0x89, 0x43,\n\t0xE8, 0x91, 0x97, 0x43, 0xE8, 0x93, 0xAE, 0x43,\n\t0xE8, 0x93, 0xB1, 0x43, 0xE8, 0x93, 0xB3, 0x43,\n\t0xE8, 0x93, 0xBC, 0x43, 0xE8, 0x94, 0x96, 0x43,\n\t// Bytes 1280 - 12bf\n\t0xE8, 0x95, 0xA4, 0x43, 0xE8, 0x97, 0x8D, 0x43,\n\t0xE8, 0x97, 0xBA, 0x43, 0xE8, 0x98, 0x86, 0x43,\n\t0xE8, 0x98, 0x92, 0x43, 0xE8, 0x98, 0xAD, 0x43,\n\t0xE8, 0x98, 0xBF, 0x43, 0xE8, 0x99, 0x8D, 0x43,\n\t0xE8, 0x99, 0x90, 0x43, 0xE8, 0x99, 0x9C, 0x43,\n\t0xE8, 0x99, 0xA7, 0x43, 0xE8, 0x99, 0xA9, 0x43,\n\t0xE8, 0x99, 0xAB, 0x43, 0xE8, 0x9A, 0x88, 0x43,\n\t0xE8, 0x9A, 0xA9, 0x43, 0xE8, 0x9B, 0xA2, 0x43,\n\t// Bytes 12c0 - 12ff\n\t0xE8, 0x9C, 0x8E, 0x43, 0xE8, 0x9C, 0xA8, 0x43,\n\t0xE8, 0x9D, 0xAB, 0x43, 0xE8, 0x9D, 0xB9, 0x43,\n\t0xE8, 0x9E, 0x86, 0x43, 0xE8, 0x9E, 0xBA, 0x43,\n\t0xE8, 0x9F, 0xA1, 0x43, 0xE8, 0xA0, 0x81, 0x43,\n\t0xE8, 0xA0, 0x9F, 0x43, 0xE8, 0xA1, 0x80, 0x43,\n\t0xE8, 0xA1, 0x8C, 0x43, 0xE8, 0xA1, 0xA0, 0x43,\n\t0xE8, 0xA1, 0xA3, 0x43, 0xE8, 0xA3, 0x82, 0x43,\n\t0xE8, 0xA3, 0x8F, 0x43, 0xE8, 0xA3, 0x97, 0x43,\n\t// Bytes 1300 - 133f\n\t0xE8, 0xA3, 0x9E, 0x43, 0xE8, 0xA3, 0xA1, 0x43,\n\t0xE8, 0xA3, 0xB8, 0x43, 0xE8, 0xA3, 0xBA, 0x43,\n\t0xE8, 0xA4, 0x90, 0x43, 0xE8, 0xA5, 0x81, 0x43,\n\t0xE8, 0xA5, 0xA4, 0x43, 0xE8, 0xA5, 0xBE, 0x43,\n\t0xE8, 0xA6, 0x86, 0x43, 0xE8, 0xA6, 0x8B, 0x43,\n\t0xE8, 0xA6, 0x96, 0x43, 0xE8, 0xA7, 0x92, 0x43,\n\t0xE8, 0xA7, 0xA3, 0x43, 0xE8, 0xA8, 0x80, 0x43,\n\t0xE8, 0xAA, 0xA0, 0x43, 0xE8, 0xAA, 0xAA, 0x43,\n\t// Bytes 1340 - 137f\n\t0xE8, 0xAA, 0xBF, 0x43, 0xE8, 0xAB, 0x8B, 0x43,\n\t0xE8, 0xAB, 0x92, 0x43, 0xE8, 0xAB, 0x96, 0x43,\n\t0xE8, 0xAB, 0xAD, 0x43, 0xE8, 0xAB, 0xB8, 0x43,\n\t0xE8, 0xAB, 0xBE, 0x43, 0xE8, 0xAC, 0x81, 0x43,\n\t0xE8, 0xAC, 0xB9, 0x43, 0xE8, 0xAD, 0x98, 0x43,\n\t0xE8, 0xAE, 0x80, 0x43, 0xE8, 0xAE, 0x8A, 0x43,\n\t0xE8, 0xB0, 0xB7, 0x43, 0xE8, 0xB1, 0x86, 0x43,\n\t0xE8, 0xB1, 0x88, 0x43, 0xE8, 0xB1, 0x95, 0x43,\n\t// Bytes 1380 - 13bf\n\t0xE8, 0xB1, 0xB8, 0x43, 0xE8, 0xB2, 0x9D, 0x43,\n\t0xE8, 0xB2, 0xA1, 0x43, 0xE8, 0xB2, 0xA9, 0x43,\n\t0xE8, 0xB2, 0xAB, 0x43, 0xE8, 0xB3, 0x81, 0x43,\n\t0xE8, 0xB3, 0x82, 0x43, 0xE8, 0xB3, 0x87, 0x43,\n\t0xE8, 0xB3, 0x88, 0x43, 0xE8, 0xB3, 0x93, 0x43,\n\t0xE8, 0xB4, 0x88, 0x43, 0xE8, 0xB4, 0x9B, 0x43,\n\t0xE8, 0xB5, 0xA4, 0x43, 0xE8, 0xB5, 0xB0, 0x43,\n\t0xE8, 0xB5, 0xB7, 0x43, 0xE8, 0xB6, 0xB3, 0x43,\n\t// Bytes 13c0 - 13ff\n\t0xE8, 0xB6, 0xBC, 0x43, 0xE8, 0xB7, 0x8B, 0x43,\n\t0xE8, 0xB7, 0xAF, 0x43, 0xE8, 0xB7, 0xB0, 0x43,\n\t0xE8, 0xBA, 0xAB, 0x43, 0xE8, 0xBB, 0x8A, 0x43,\n\t0xE8, 0xBB, 0x94, 0x43, 0xE8, 0xBC, 0xA6, 0x43,\n\t0xE8, 0xBC, 0xAA, 0x43, 0xE8, 0xBC, 0xB8, 0x43,\n\t0xE8, 0xBC, 0xBB, 0x43, 0xE8, 0xBD, 0xA2, 0x43,\n\t0xE8, 0xBE, 0x9B, 0x43, 0xE8, 0xBE, 0x9E, 0x43,\n\t0xE8, 0xBE, 0xB0, 0x43, 0xE8, 0xBE, 0xB5, 0x43,\n\t// Bytes 1400 - 143f\n\t0xE8, 0xBE, 0xB6, 0x43, 0xE9, 0x80, 0xA3, 0x43,\n\t0xE9, 0x80, 0xB8, 0x43, 0xE9, 0x81, 0x8A, 0x43,\n\t0xE9, 0x81, 0xA9, 0x43, 0xE9, 0x81, 0xB2, 0x43,\n\t0xE9, 0x81, 0xBC, 0x43, 0xE9, 0x82, 0x8F, 0x43,\n\t0xE9, 0x82, 0x91, 0x43, 0xE9, 0x82, 0x94, 0x43,\n\t0xE9, 0x83, 0x8E, 0x43, 0xE9, 0x83, 0x9E, 0x43,\n\t0xE9, 0x83, 0xB1, 0x43, 0xE9, 0x83, 0xBD, 0x43,\n\t0xE9, 0x84, 0x91, 0x43, 0xE9, 0x84, 0x9B, 0x43,\n\t// Bytes 1440 - 147f\n\t0xE9, 0x85, 0x89, 0x43, 0xE9, 0x85, 0x8D, 0x43,\n\t0xE9, 0x85, 0xAA, 0x43, 0xE9, 0x86, 0x99, 0x43,\n\t0xE9, 0x86, 0xB4, 0x43, 0xE9, 0x87, 0x86, 0x43,\n\t0xE9, 0x87, 0x8C, 0x43, 0xE9, 0x87, 0x8F, 0x43,\n\t0xE9, 0x87, 0x91, 0x43, 0xE9, 0x88, 0xB4, 0x43,\n\t0xE9, 0x88, 0xB8, 0x43, 0xE9, 0x89, 0xB6, 0x43,\n\t0xE9, 0x89, 0xBC, 0x43, 0xE9, 0x8B, 0x97, 0x43,\n\t0xE9, 0x8B, 0x98, 0x43, 0xE9, 0x8C, 0x84, 0x43,\n\t// Bytes 1480 - 14bf\n\t0xE9, 0x8D, 0x8A, 0x43, 0xE9, 0x8F, 0xB9, 0x43,\n\t0xE9, 0x90, 0x95, 0x43, 0xE9, 0x95, 0xB7, 0x43,\n\t0xE9, 0x96, 0x80, 0x43, 0xE9, 0x96, 0x8B, 0x43,\n\t0xE9, 0x96, 0xAD, 0x43, 0xE9, 0x96, 0xB7, 0x43,\n\t0xE9, 0x98, 0x9C, 0x43, 0xE9, 0x98, 0xAE, 0x43,\n\t0xE9, 0x99, 0x8B, 0x43, 0xE9, 0x99, 0x8D, 0x43,\n\t0xE9, 0x99, 0xB5, 0x43, 0xE9, 0x99, 0xB8, 0x43,\n\t0xE9, 0x99, 0xBC, 0x43, 0xE9, 0x9A, 0x86, 0x43,\n\t// Bytes 14c0 - 14ff\n\t0xE9, 0x9A, 0xA3, 0x43, 0xE9, 0x9A, 0xB6, 0x43,\n\t0xE9, 0x9A, 0xB7, 0x43, 0xE9, 0x9A, 0xB8, 0x43,\n\t0xE9, 0x9A, 0xB9, 0x43, 0xE9, 0x9B, 0x83, 0x43,\n\t0xE9, 0x9B, 0xA2, 0x43, 0xE9, 0x9B, 0xA3, 0x43,\n\t0xE9, 0x9B, 0xA8, 0x43, 0xE9, 0x9B, 0xB6, 0x43,\n\t0xE9, 0x9B, 0xB7, 0x43, 0xE9, 0x9C, 0xA3, 0x43,\n\t0xE9, 0x9C, 0xB2, 0x43, 0xE9, 0x9D, 0x88, 0x43,\n\t0xE9, 0x9D, 0x91, 0x43, 0xE9, 0x9D, 0x96, 0x43,\n\t// Bytes 1500 - 153f\n\t0xE9, 0x9D, 0x9E, 0x43, 0xE9, 0x9D, 0xA2, 0x43,\n\t0xE9, 0x9D, 0xA9, 0x43, 0xE9, 0x9F, 0x8B, 0x43,\n\t0xE9, 0x9F, 0x9B, 0x43, 0xE9, 0x9F, 0xA0, 0x43,\n\t0xE9, 0x9F, 0xAD, 0x43, 0xE9, 0x9F, 0xB3, 0x43,\n\t0xE9, 0x9F, 0xBF, 0x43, 0xE9, 0xA0, 0x81, 0x43,\n\t0xE9, 0xA0, 0x85, 0x43, 0xE9, 0xA0, 0x8B, 0x43,\n\t0xE9, 0xA0, 0x98, 0x43, 0xE9, 0xA0, 0xA9, 0x43,\n\t0xE9, 0xA0, 0xBB, 0x43, 0xE9, 0xA1, 0x9E, 0x43,\n\t// Bytes 1540 - 157f\n\t0xE9, 0xA2, 0xA8, 0x43, 0xE9, 0xA3, 0x9B, 0x43,\n\t0xE9, 0xA3, 0x9F, 0x43, 0xE9, 0xA3, 0xA2, 0x43,\n\t0xE9, 0xA3, 0xAF, 0x43, 0xE9, 0xA3, 0xBC, 0x43,\n\t0xE9, 0xA4, 0xA8, 0x43, 0xE9, 0xA4, 0xA9, 0x43,\n\t0xE9, 0xA6, 0x96, 0x43, 0xE9, 0xA6, 0x99, 0x43,\n\t0xE9, 0xA6, 0xA7, 0x43, 0xE9, 0xA6, 0xAC, 0x43,\n\t0xE9, 0xA7, 0x82, 0x43, 0xE9, 0xA7, 0xB1, 0x43,\n\t0xE9, 0xA7, 0xBE, 0x43, 0xE9, 0xA9, 0xAA, 0x43,\n\t// Bytes 1580 - 15bf\n\t0xE9, 0xAA, 0xA8, 0x43, 0xE9, 0xAB, 0x98, 0x43,\n\t0xE9, 0xAB, 0x9F, 0x43, 0xE9, 0xAC, 0x92, 0x43,\n\t0xE9, 0xAC, 0xA5, 0x43, 0xE9, 0xAC, 0xAF, 0x43,\n\t0xE9, 0xAC, 0xB2, 0x43, 0xE9, 0xAC, 0xBC, 0x43,\n\t0xE9, 0xAD, 0x9A, 0x43, 0xE9, 0xAD, 0xAF, 0x43,\n\t0xE9, 0xB1, 0x80, 0x43, 0xE9, 0xB1, 0x97, 0x43,\n\t0xE9, 0xB3, 0xA5, 0x43, 0xE9, 0xB3, 0xBD, 0x43,\n\t0xE9, 0xB5, 0xA7, 0x43, 0xE9, 0xB6, 0xB4, 0x43,\n\t// Bytes 15c0 - 15ff\n\t0xE9, 0xB7, 0xBA, 0x43, 0xE9, 0xB8, 0x9E, 0x43,\n\t0xE9, 0xB9, 0xB5, 0x43, 0xE9, 0xB9, 0xBF, 0x43,\n\t0xE9, 0xBA, 0x97, 0x43, 0xE9, 0xBA, 0x9F, 0x43,\n\t0xE9, 0xBA, 0xA5, 0x43, 0xE9, 0xBA, 0xBB, 0x43,\n\t0xE9, 0xBB, 0x83, 0x43, 0xE9, 0xBB, 0x8D, 0x43,\n\t0xE9, 0xBB, 0x8E, 0x43, 0xE9, 0xBB, 0x91, 0x43,\n\t0xE9, 0xBB, 0xB9, 0x43, 0xE9, 0xBB, 0xBD, 0x43,\n\t0xE9, 0xBB, 0xBE, 0x43, 0xE9, 0xBC, 0x85, 0x43,\n\t// Bytes 1600 - 163f\n\t0xE9, 0xBC, 0x8E, 0x43, 0xE9, 0xBC, 0x8F, 0x43,\n\t0xE9, 0xBC, 0x93, 0x43, 0xE9, 0xBC, 0x96, 0x43,\n\t0xE9, 0xBC, 0xA0, 0x43, 0xE9, 0xBC, 0xBB, 0x43,\n\t0xE9, 0xBD, 0x83, 0x43, 0xE9, 0xBD, 0x8A, 0x43,\n\t0xE9, 0xBD, 0x92, 0x43, 0xE9, 0xBE, 0x8D, 0x43,\n\t0xE9, 0xBE, 0x8E, 0x43, 0xE9, 0xBE, 0x9C, 0x43,\n\t0xE9, 0xBE, 0x9F, 0x43, 0xE9, 0xBE, 0xA0, 0x43,\n\t0xEA, 0x9C, 0xA7, 0x43, 0xEA, 0x9D, 0xAF, 0x43,\n\t// Bytes 1640 - 167f\n\t0xEA, 0xAC, 0xB7, 0x43, 0xEA, 0xAD, 0x92, 0x44,\n\t0xF0, 0xA0, 0x84, 0xA2, 0x44, 0xF0, 0xA0, 0x94,\n\t0x9C, 0x44, 0xF0, 0xA0, 0x94, 0xA5, 0x44, 0xF0,\n\t0xA0, 0x95, 0x8B, 0x44, 0xF0, 0xA0, 0x98, 0xBA,\n\t0x44, 0xF0, 0xA0, 0xA0, 0x84, 0x44, 0xF0, 0xA0,\n\t0xA3, 0x9E, 0x44, 0xF0, 0xA0, 0xA8, 0xAC, 0x44,\n\t0xF0, 0xA0, 0xAD, 0xA3, 0x44, 0xF0, 0xA1, 0x93,\n\t0xA4, 0x44, 0xF0, 0xA1, 0x9A, 0xA8, 0x44, 0xF0,\n\t// Bytes 1680 - 16bf\n\t0xA1, 0x9B, 0xAA, 0x44, 0xF0, 0xA1, 0xA7, 0x88,\n\t0x44, 0xF0, 0xA1, 0xAC, 0x98, 0x44, 0xF0, 0xA1,\n\t0xB4, 0x8B, 0x44, 0xF0, 0xA1, 0xB7, 0xA4, 0x44,\n\t0xF0, 0xA1, 0xB7, 0xA6, 0x44, 0xF0, 0xA2, 0x86,\n\t0x83, 0x44, 0xF0, 0xA2, 0x86, 0x9F, 0x44, 0xF0,\n\t0xA2, 0x8C, 0xB1, 0x44, 0xF0, 0xA2, 0x9B, 0x94,\n\t0x44, 0xF0, 0xA2, 0xA1, 0x84, 0x44, 0xF0, 0xA2,\n\t0xA1, 0x8A, 0x44, 0xF0, 0xA2, 0xAC, 0x8C, 0x44,\n\t// Bytes 16c0 - 16ff\n\t0xF0, 0xA2, 0xAF, 0xB1, 0x44, 0xF0, 0xA3, 0x80,\n\t0x8A, 0x44, 0xF0, 0xA3, 0x8A, 0xB8, 0x44, 0xF0,\n\t0xA3, 0x8D, 0x9F, 0x44, 0xF0, 0xA3, 0x8E, 0x93,\n\t0x44, 0xF0, 0xA3, 0x8E, 0x9C, 0x44, 0xF0, 0xA3,\n\t0x8F, 0x83, 0x44, 0xF0, 0xA3, 0x8F, 0x95, 0x44,\n\t0xF0, 0xA3, 0x91, 0xAD, 0x44, 0xF0, 0xA3, 0x9A,\n\t0xA3, 0x44, 0xF0, 0xA3, 0xA2, 0xA7, 0x44, 0xF0,\n\t0xA3, 0xAA, 0x8D, 0x44, 0xF0, 0xA3, 0xAB, 0xBA,\n\t// Bytes 1700 - 173f\n\t0x44, 0xF0, 0xA3, 0xB2, 0xBC, 0x44, 0xF0, 0xA3,\n\t0xB4, 0x9E, 0x44, 0xF0, 0xA3, 0xBB, 0x91, 0x44,\n\t0xF0, 0xA3, 0xBD, 0x9E, 0x44, 0xF0, 0xA3, 0xBE,\n\t0x8E, 0x44, 0xF0, 0xA4, 0x89, 0xA3, 0x44, 0xF0,\n\t0xA4, 0x8B, 0xAE, 0x44, 0xF0, 0xA4, 0x8E, 0xAB,\n\t0x44, 0xF0, 0xA4, 0x98, 0x88, 0x44, 0xF0, 0xA4,\n\t0x9C, 0xB5, 0x44, 0xF0, 0xA4, 0xA0, 0x94, 0x44,\n\t0xF0, 0xA4, 0xB0, 0xB6, 0x44, 0xF0, 0xA4, 0xB2,\n\t// Bytes 1740 - 177f\n\t0x92, 0x44, 0xF0, 0xA4, 0xBE, 0xA1, 0x44, 0xF0,\n\t0xA4, 0xBE, 0xB8, 0x44, 0xF0, 0xA5, 0x81, 0x84,\n\t0x44, 0xF0, 0xA5, 0x83, 0xB2, 0x44, 0xF0, 0xA5,\n\t0x83, 0xB3, 0x44, 0xF0, 0xA5, 0x84, 0x99, 0x44,\n\t0xF0, 0xA5, 0x84, 0xB3, 0x44, 0xF0, 0xA5, 0x89,\n\t0x89, 0x44, 0xF0, 0xA5, 0x90, 0x9D, 0x44, 0xF0,\n\t0xA5, 0x98, 0xA6, 0x44, 0xF0, 0xA5, 0x9A, 0x9A,\n\t0x44, 0xF0, 0xA5, 0x9B, 0x85, 0x44, 0xF0, 0xA5,\n\t// Bytes 1780 - 17bf\n\t0xA5, 0xBC, 0x44, 0xF0, 0xA5, 0xAA, 0xA7, 0x44,\n\t0xF0, 0xA5, 0xAE, 0xAB, 0x44, 0xF0, 0xA5, 0xB2,\n\t0x80, 0x44, 0xF0, 0xA5, 0xB3, 0x90, 0x44, 0xF0,\n\t0xA5, 0xBE, 0x86, 0x44, 0xF0, 0xA6, 0x87, 0x9A,\n\t0x44, 0xF0, 0xA6, 0x88, 0xA8, 0x44, 0xF0, 0xA6,\n\t0x89, 0x87, 0x44, 0xF0, 0xA6, 0x8B, 0x99, 0x44,\n\t0xF0, 0xA6, 0x8C, 0xBE, 0x44, 0xF0, 0xA6, 0x93,\n\t0x9A, 0x44, 0xF0, 0xA6, 0x94, 0xA3, 0x44, 0xF0,\n\t// Bytes 17c0 - 17ff\n\t0xA6, 0x96, 0xA8, 0x44, 0xF0, 0xA6, 0x9E, 0xA7,\n\t0x44, 0xF0, 0xA6, 0x9E, 0xB5, 0x44, 0xF0, 0xA6,\n\t0xAC, 0xBC, 0x44, 0xF0, 0xA6, 0xB0, 0xB6, 0x44,\n\t0xF0, 0xA6, 0xB3, 0x95, 0x44, 0xF0, 0xA6, 0xB5,\n\t0xAB, 0x44, 0xF0, 0xA6, 0xBC, 0xAC, 0x44, 0xF0,\n\t0xA6, 0xBE, 0xB1, 0x44, 0xF0, 0xA7, 0x83, 0x92,\n\t0x44, 0xF0, 0xA7, 0x8F, 0x8A, 0x44, 0xF0, 0xA7,\n\t0x99, 0xA7, 0x44, 0xF0, 0xA7, 0xA2, 0xAE, 0x44,\n\t// Bytes 1800 - 183f\n\t0xF0, 0xA7, 0xA5, 0xA6, 0x44, 0xF0, 0xA7, 0xB2,\n\t0xA8, 0x44, 0xF0, 0xA7, 0xBB, 0x93, 0x44, 0xF0,\n\t0xA7, 0xBC, 0xAF, 0x44, 0xF0, 0xA8, 0x97, 0x92,\n\t0x44, 0xF0, 0xA8, 0x97, 0xAD, 0x44, 0xF0, 0xA8,\n\t0x9C, 0xAE, 0x44, 0xF0, 0xA8, 0xAF, 0xBA, 0x44,\n\t0xF0, 0xA8, 0xB5, 0xB7, 0x44, 0xF0, 0xA9, 0x85,\n\t0x85, 0x44, 0xF0, 0xA9, 0x87, 0x9F, 0x44, 0xF0,\n\t0xA9, 0x88, 0x9A, 0x44, 0xF0, 0xA9, 0x90, 0x8A,\n\t// Bytes 1840 - 187f\n\t0x44, 0xF0, 0xA9, 0x92, 0x96, 0x44, 0xF0, 0xA9,\n\t0x96, 0xB6, 0x44, 0xF0, 0xA9, 0xAC, 0xB0, 0x44,\n\t0xF0, 0xAA, 0x83, 0x8E, 0x44, 0xF0, 0xAA, 0x84,\n\t0x85, 0x44, 0xF0, 0xAA, 0x88, 0x8E, 0x44, 0xF0,\n\t0xAA, 0x8A, 0x91, 0x44, 0xF0, 0xAA, 0x8E, 0x92,\n\t0x44, 0xF0, 0xAA, 0x98, 0x80, 0x42, 0x21, 0x21,\n\t0x42, 0x21, 0x3F, 0x42, 0x2E, 0x2E, 0x42, 0x30,\n\t0x2C, 0x42, 0x30, 0x2E, 0x42, 0x31, 0x2C, 0x42,\n\t// Bytes 1880 - 18bf\n\t0x31, 0x2E, 0x42, 0x31, 0x30, 0x42, 0x31, 0x31,\n\t0x42, 0x31, 0x32, 0x42, 0x31, 0x33, 0x42, 0x31,\n\t0x34, 0x42, 0x31, 0x35, 0x42, 0x31, 0x36, 0x42,\n\t0x31, 0x37, 0x42, 0x31, 0x38, 0x42, 0x31, 0x39,\n\t0x42, 0x32, 0x2C, 0x42, 0x32, 0x2E, 0x42, 0x32,\n\t0x30, 0x42, 0x32, 0x31, 0x42, 0x32, 0x32, 0x42,\n\t0x32, 0x33, 0x42, 0x32, 0x34, 0x42, 0x32, 0x35,\n\t0x42, 0x32, 0x36, 0x42, 0x32, 0x37, 0x42, 0x32,\n\t// Bytes 18c0 - 18ff\n\t0x38, 0x42, 0x32, 0x39, 0x42, 0x33, 0x2C, 0x42,\n\t0x33, 0x2E, 0x42, 0x33, 0x30, 0x42, 0x33, 0x31,\n\t0x42, 0x33, 0x32, 0x42, 0x33, 0x33, 0x42, 0x33,\n\t0x34, 0x42, 0x33, 0x35, 0x42, 0x33, 0x36, 0x42,\n\t0x33, 0x37, 0x42, 0x33, 0x38, 0x42, 0x33, 0x39,\n\t0x42, 0x34, 0x2C, 0x42, 0x34, 0x2E, 0x42, 0x34,\n\t0x30, 0x42, 0x34, 0x31, 0x42, 0x34, 0x32, 0x42,\n\t0x34, 0x33, 0x42, 0x34, 0x34, 0x42, 0x34, 0x35,\n\t// Bytes 1900 - 193f\n\t0x42, 0x34, 0x36, 0x42, 0x34, 0x37, 0x42, 0x34,\n\t0x38, 0x42, 0x34, 0x39, 0x42, 0x35, 0x2C, 0x42,\n\t0x35, 0x2E, 0x42, 0x35, 0x30, 0x42, 0x36, 0x2C,\n\t0x42, 0x36, 0x2E, 0x42, 0x37, 0x2C, 0x42, 0x37,\n\t0x2E, 0x42, 0x38, 0x2C, 0x42, 0x38, 0x2E, 0x42,\n\t0x39, 0x2C, 0x42, 0x39, 0x2E, 0x42, 0x3D, 0x3D,\n\t0x42, 0x3F, 0x21, 0x42, 0x3F, 0x3F, 0x42, 0x41,\n\t0x55, 0x42, 0x42, 0x71, 0x42, 0x43, 0x44, 0x42,\n\t// Bytes 1940 - 197f\n\t0x44, 0x4A, 0x42, 0x44, 0x5A, 0x42, 0x44, 0x7A,\n\t0x42, 0x47, 0x42, 0x42, 0x47, 0x79, 0x42, 0x48,\n\t0x50, 0x42, 0x48, 0x56, 0x42, 0x48, 0x67, 0x42,\n\t0x48, 0x7A, 0x42, 0x49, 0x49, 0x42, 0x49, 0x4A,\n\t0x42, 0x49, 0x55, 0x42, 0x49, 0x56, 0x42, 0x49,\n\t0x58, 0x42, 0x4B, 0x42, 0x42, 0x4B, 0x4B, 0x42,\n\t0x4B, 0x4D, 0x42, 0x4C, 0x4A, 0x42, 0x4C, 0x6A,\n\t0x42, 0x4D, 0x42, 0x42, 0x4D, 0x43, 0x42, 0x4D,\n\t// Bytes 1980 - 19bf\n\t0x44, 0x42, 0x4D, 0x52, 0x42, 0x4D, 0x56, 0x42,\n\t0x4D, 0x57, 0x42, 0x4E, 0x4A, 0x42, 0x4E, 0x6A,\n\t0x42, 0x4E, 0x6F, 0x42, 0x50, 0x48, 0x42, 0x50,\n\t0x52, 0x42, 0x50, 0x61, 0x42, 0x52, 0x73, 0x42,\n\t0x53, 0x44, 0x42, 0x53, 0x4D, 0x42, 0x53, 0x53,\n\t0x42, 0x53, 0x76, 0x42, 0x54, 0x4D, 0x42, 0x56,\n\t0x49, 0x42, 0x57, 0x43, 0x42, 0x57, 0x5A, 0x42,\n\t0x57, 0x62, 0x42, 0x58, 0x49, 0x42, 0x63, 0x63,\n\t// Bytes 19c0 - 19ff\n\t0x42, 0x63, 0x64, 0x42, 0x63, 0x6D, 0x42, 0x64,\n\t0x42, 0x42, 0x64, 0x61, 0x42, 0x64, 0x6C, 0x42,\n\t0x64, 0x6D, 0x42, 0x64, 0x7A, 0x42, 0x65, 0x56,\n\t0x42, 0x66, 0x66, 0x42, 0x66, 0x69, 0x42, 0x66,\n\t0x6C, 0x42, 0x66, 0x6D, 0x42, 0x68, 0x61, 0x42,\n\t0x69, 0x69, 0x42, 0x69, 0x6A, 0x42, 0x69, 0x6E,\n\t0x42, 0x69, 0x76, 0x42, 0x69, 0x78, 0x42, 0x6B,\n\t0x41, 0x42, 0x6B, 0x56, 0x42, 0x6B, 0x57, 0x42,\n\t// Bytes 1a00 - 1a3f\n\t0x6B, 0x67, 0x42, 0x6B, 0x6C, 0x42, 0x6B, 0x6D,\n\t0x42, 0x6B, 0x74, 0x42, 0x6C, 0x6A, 0x42, 0x6C,\n\t0x6D, 0x42, 0x6C, 0x6E, 0x42, 0x6C, 0x78, 0x42,\n\t0x6D, 0x32, 0x42, 0x6D, 0x33, 0x42, 0x6D, 0x41,\n\t0x42, 0x6D, 0x56, 0x42, 0x6D, 0x57, 0x42, 0x6D,\n\t0x62, 0x42, 0x6D, 0x67, 0x42, 0x6D, 0x6C, 0x42,\n\t0x6D, 0x6D, 0x42, 0x6D, 0x73, 0x42, 0x6E, 0x41,\n\t0x42, 0x6E, 0x46, 0x42, 0x6E, 0x56, 0x42, 0x6E,\n\t// Bytes 1a40 - 1a7f\n\t0x57, 0x42, 0x6E, 0x6A, 0x42, 0x6E, 0x6D, 0x42,\n\t0x6E, 0x73, 0x42, 0x6F, 0x56, 0x42, 0x70, 0x41,\n\t0x42, 0x70, 0x46, 0x42, 0x70, 0x56, 0x42, 0x70,\n\t0x57, 0x42, 0x70, 0x63, 0x42, 0x70, 0x73, 0x42,\n\t0x73, 0x72, 0x42, 0x73, 0x74, 0x42, 0x76, 0x69,\n\t0x42, 0x78, 0x69, 0x43, 0x28, 0x31, 0x29, 0x43,\n\t0x28, 0x32, 0x29, 0x43, 0x28, 0x33, 0x29, 0x43,\n\t0x28, 0x34, 0x29, 0x43, 0x28, 0x35, 0x29, 0x43,\n\t// Bytes 1a80 - 1abf\n\t0x28, 0x36, 0x29, 0x43, 0x28, 0x37, 0x29, 0x43,\n\t0x28, 0x38, 0x29, 0x43, 0x28, 0x39, 0x29, 0x43,\n\t0x28, 0x41, 0x29, 0x43, 0x28, 0x42, 0x29, 0x43,\n\t0x28, 0x43, 0x29, 0x43, 0x28, 0x44, 0x29, 0x43,\n\t0x28, 0x45, 0x29, 0x43, 0x28, 0x46, 0x29, 0x43,\n\t0x28, 0x47, 0x29, 0x43, 0x28, 0x48, 0x29, 0x43,\n\t0x28, 0x49, 0x29, 0x43, 0x28, 0x4A, 0x29, 0x43,\n\t0x28, 0x4B, 0x29, 0x43, 0x28, 0x4C, 0x29, 0x43,\n\t// Bytes 1ac0 - 1aff\n\t0x28, 0x4D, 0x29, 0x43, 0x28, 0x4E, 0x29, 0x43,\n\t0x28, 0x4F, 0x29, 0x43, 0x28, 0x50, 0x29, 0x43,\n\t0x28, 0x51, 0x29, 0x43, 0x28, 0x52, 0x29, 0x43,\n\t0x28, 0x53, 0x29, 0x43, 0x28, 0x54, 0x29, 0x43,\n\t0x28, 0x55, 0x29, 0x43, 0x28, 0x56, 0x29, 0x43,\n\t0x28, 0x57, 0x29, 0x43, 0x28, 0x58, 0x29, 0x43,\n\t0x28, 0x59, 0x29, 0x43, 0x28, 0x5A, 0x29, 0x43,\n\t0x28, 0x61, 0x29, 0x43, 0x28, 0x62, 0x29, 0x43,\n\t// Bytes 1b00 - 1b3f\n\t0x28, 0x63, 0x29, 0x43, 0x28, 0x64, 0x29, 0x43,\n\t0x28, 0x65, 0x29, 0x43, 0x28, 0x66, 0x29, 0x43,\n\t0x28, 0x67, 0x29, 0x43, 0x28, 0x68, 0x29, 0x43,\n\t0x28, 0x69, 0x29, 0x43, 0x28, 0x6A, 0x29, 0x43,\n\t0x28, 0x6B, 0x29, 0x43, 0x28, 0x6C, 0x29, 0x43,\n\t0x28, 0x6D, 0x29, 0x43, 0x28, 0x6E, 0x29, 0x43,\n\t0x28, 0x6F, 0x29, 0x43, 0x28, 0x70, 0x29, 0x43,\n\t0x28, 0x71, 0x29, 0x43, 0x28, 0x72, 0x29, 0x43,\n\t// Bytes 1b40 - 1b7f\n\t0x28, 0x73, 0x29, 0x43, 0x28, 0x74, 0x29, 0x43,\n\t0x28, 0x75, 0x29, 0x43, 0x28, 0x76, 0x29, 0x43,\n\t0x28, 0x77, 0x29, 0x43, 0x28, 0x78, 0x29, 0x43,\n\t0x28, 0x79, 0x29, 0x43, 0x28, 0x7A, 0x29, 0x43,\n\t0x2E, 0x2E, 0x2E, 0x43, 0x31, 0x30, 0x2E, 0x43,\n\t0x31, 0x31, 0x2E, 0x43, 0x31, 0x32, 0x2E, 0x43,\n\t0x31, 0x33, 0x2E, 0x43, 0x31, 0x34, 0x2E, 0x43,\n\t0x31, 0x35, 0x2E, 0x43, 0x31, 0x36, 0x2E, 0x43,\n\t// Bytes 1b80 - 1bbf\n\t0x31, 0x37, 0x2E, 0x43, 0x31, 0x38, 0x2E, 0x43,\n\t0x31, 0x39, 0x2E, 0x43, 0x32, 0x30, 0x2E, 0x43,\n\t0x3A, 0x3A, 0x3D, 0x43, 0x3D, 0x3D, 0x3D, 0x43,\n\t0x43, 0x6F, 0x2E, 0x43, 0x46, 0x41, 0x58, 0x43,\n\t0x47, 0x48, 0x7A, 0x43, 0x47, 0x50, 0x61, 0x43,\n\t0x49, 0x49, 0x49, 0x43, 0x4C, 0x54, 0x44, 0x43,\n\t0x4C, 0xC2, 0xB7, 0x43, 0x4D, 0x48, 0x7A, 0x43,\n\t0x4D, 0x50, 0x61, 0x43, 0x4D, 0xCE, 0xA9, 0x43,\n\t// Bytes 1bc0 - 1bff\n\t0x50, 0x50, 0x4D, 0x43, 0x50, 0x50, 0x56, 0x43,\n\t0x50, 0x54, 0x45, 0x43, 0x54, 0x45, 0x4C, 0x43,\n\t0x54, 0x48, 0x7A, 0x43, 0x56, 0x49, 0x49, 0x43,\n\t0x58, 0x49, 0x49, 0x43, 0x61, 0x2F, 0x63, 0x43,\n\t0x61, 0x2F, 0x73, 0x43, 0x61, 0xCA, 0xBE, 0x43,\n\t0x62, 0x61, 0x72, 0x43, 0x63, 0x2F, 0x6F, 0x43,\n\t0x63, 0x2F, 0x75, 0x43, 0x63, 0x61, 0x6C, 0x43,\n\t0x63, 0x6D, 0x32, 0x43, 0x63, 0x6D, 0x33, 0x43,\n\t// Bytes 1c00 - 1c3f\n\t0x64, 0x6D, 0x32, 0x43, 0x64, 0x6D, 0x33, 0x43,\n\t0x65, 0x72, 0x67, 0x43, 0x66, 0x66, 0x69, 0x43,\n\t0x66, 0x66, 0x6C, 0x43, 0x67, 0x61, 0x6C, 0x43,\n\t0x68, 0x50, 0x61, 0x43, 0x69, 0x69, 0x69, 0x43,\n\t0x6B, 0x48, 0x7A, 0x43, 0x6B, 0x50, 0x61, 0x43,\n\t0x6B, 0x6D, 0x32, 0x43, 0x6B, 0x6D, 0x33, 0x43,\n\t0x6B, 0xCE, 0xA9, 0x43, 0x6C, 0x6F, 0x67, 0x43,\n\t0x6C, 0xC2, 0xB7, 0x43, 0x6D, 0x69, 0x6C, 0x43,\n\t// Bytes 1c40 - 1c7f\n\t0x6D, 0x6D, 0x32, 0x43, 0x6D, 0x6D, 0x33, 0x43,\n\t0x6D, 0x6F, 0x6C, 0x43, 0x72, 0x61, 0x64, 0x43,\n\t0x76, 0x69, 0x69, 0x43, 0x78, 0x69, 0x69, 0x43,\n\t0xC2, 0xB0, 0x43, 0x43, 0xC2, 0xB0, 0x46, 0x43,\n\t0xCA, 0xBC, 0x6E, 0x43, 0xCE, 0xBC, 0x41, 0x43,\n\t0xCE, 0xBC, 0x46, 0x43, 0xCE, 0xBC, 0x56, 0x43,\n\t0xCE, 0xBC, 0x57, 0x43, 0xCE, 0xBC, 0x67, 0x43,\n\t0xCE, 0xBC, 0x6C, 0x43, 0xCE, 0xBC, 0x6D, 0x43,\n\t// Bytes 1c80 - 1cbf\n\t0xCE, 0xBC, 0x73, 0x44, 0x28, 0x31, 0x30, 0x29,\n\t0x44, 0x28, 0x31, 0x31, 0x29, 0x44, 0x28, 0x31,\n\t0x32, 0x29, 0x44, 0x28, 0x31, 0x33, 0x29, 0x44,\n\t0x28, 0x31, 0x34, 0x29, 0x44, 0x28, 0x31, 0x35,\n\t0x29, 0x44, 0x28, 0x31, 0x36, 0x29, 0x44, 0x28,\n\t0x31, 0x37, 0x29, 0x44, 0x28, 0x31, 0x38, 0x29,\n\t0x44, 0x28, 0x31, 0x39, 0x29, 0x44, 0x28, 0x32,\n\t0x30, 0x29, 0x44, 0x30, 0xE7, 0x82, 0xB9, 0x44,\n\t// Bytes 1cc0 - 1cff\n\t0x31, 0xE2, 0x81, 0x84, 0x44, 0x31, 0xE6, 0x97,\n\t0xA5, 0x44, 0x31, 0xE6, 0x9C, 0x88, 0x44, 0x31,\n\t0xE7, 0x82, 0xB9, 0x44, 0x32, 0xE6, 0x97, 0xA5,\n\t0x44, 0x32, 0xE6, 0x9C, 0x88, 0x44, 0x32, 0xE7,\n\t0x82, 0xB9, 0x44, 0x33, 0xE6, 0x97, 0xA5, 0x44,\n\t0x33, 0xE6, 0x9C, 0x88, 0x44, 0x33, 0xE7, 0x82,\n\t0xB9, 0x44, 0x34, 0xE6, 0x97, 0xA5, 0x44, 0x34,\n\t0xE6, 0x9C, 0x88, 0x44, 0x34, 0xE7, 0x82, 0xB9,\n\t// Bytes 1d00 - 1d3f\n\t0x44, 0x35, 0xE6, 0x97, 0xA5, 0x44, 0x35, 0xE6,\n\t0x9C, 0x88, 0x44, 0x35, 0xE7, 0x82, 0xB9, 0x44,\n\t0x36, 0xE6, 0x97, 0xA5, 0x44, 0x36, 0xE6, 0x9C,\n\t0x88, 0x44, 0x36, 0xE7, 0x82, 0xB9, 0x44, 0x37,\n\t0xE6, 0x97, 0xA5, 0x44, 0x37, 0xE6, 0x9C, 0x88,\n\t0x44, 0x37, 0xE7, 0x82, 0xB9, 0x44, 0x38, 0xE6,\n\t0x97, 0xA5, 0x44, 0x38, 0xE6, 0x9C, 0x88, 0x44,\n\t0x38, 0xE7, 0x82, 0xB9, 0x44, 0x39, 0xE6, 0x97,\n\t// Bytes 1d40 - 1d7f\n\t0xA5, 0x44, 0x39, 0xE6, 0x9C, 0x88, 0x44, 0x39,\n\t0xE7, 0x82, 0xB9, 0x44, 0x56, 0x49, 0x49, 0x49,\n\t0x44, 0x61, 0x2E, 0x6D, 0x2E, 0x44, 0x6B, 0x63,\n\t0x61, 0x6C, 0x44, 0x70, 0x2E, 0x6D, 0x2E, 0x44,\n\t0x76, 0x69, 0x69, 0x69, 0x44, 0xD5, 0xA5, 0xD6,\n\t0x82, 0x44, 0xD5, 0xB4, 0xD5, 0xA5, 0x44, 0xD5,\n\t0xB4, 0xD5, 0xAB, 0x44, 0xD5, 0xB4, 0xD5, 0xAD,\n\t0x44, 0xD5, 0xB4, 0xD5, 0xB6, 0x44, 0xD5, 0xBE,\n\t// Bytes 1d80 - 1dbf\n\t0xD5, 0xB6, 0x44, 0xD7, 0x90, 0xD7, 0x9C, 0x44,\n\t0xD8, 0xA7, 0xD9, 0xB4, 0x44, 0xD8, 0xA8, 0xD8,\n\t0xAC, 0x44, 0xD8, 0xA8, 0xD8, 0xAD, 0x44, 0xD8,\n\t0xA8, 0xD8, 0xAE, 0x44, 0xD8, 0xA8, 0xD8, 0xB1,\n\t0x44, 0xD8, 0xA8, 0xD8, 0xB2, 0x44, 0xD8, 0xA8,\n\t0xD9, 0x85, 0x44, 0xD8, 0xA8, 0xD9, 0x86, 0x44,\n\t0xD8, 0xA8, 0xD9, 0x87, 0x44, 0xD8, 0xA8, 0xD9,\n\t0x89, 0x44, 0xD8, 0xA8, 0xD9, 0x8A, 0x44, 0xD8,\n\t// Bytes 1dc0 - 1dff\n\t0xAA, 0xD8, 0xAC, 0x44, 0xD8, 0xAA, 0xD8, 0xAD,\n\t0x44, 0xD8, 0xAA, 0xD8, 0xAE, 0x44, 0xD8, 0xAA,\n\t0xD8, 0xB1, 0x44, 0xD8, 0xAA, 0xD8, 0xB2, 0x44,\n\t0xD8, 0xAA, 0xD9, 0x85, 0x44, 0xD8, 0xAA, 0xD9,\n\t0x86, 0x44, 0xD8, 0xAA, 0xD9, 0x87, 0x44, 0xD8,\n\t0xAA, 0xD9, 0x89, 0x44, 0xD8, 0xAA, 0xD9, 0x8A,\n\t0x44, 0xD8, 0xAB, 0xD8, 0xAC, 0x44, 0xD8, 0xAB,\n\t0xD8, 0xB1, 0x44, 0xD8, 0xAB, 0xD8, 0xB2, 0x44,\n\t// Bytes 1e00 - 1e3f\n\t0xD8, 0xAB, 0xD9, 0x85, 0x44, 0xD8, 0xAB, 0xD9,\n\t0x86, 0x44, 0xD8, 0xAB, 0xD9, 0x87, 0x44, 0xD8,\n\t0xAB, 0xD9, 0x89, 0x44, 0xD8, 0xAB, 0xD9, 0x8A,\n\t0x44, 0xD8, 0xAC, 0xD8, 0xAD, 0x44, 0xD8, 0xAC,\n\t0xD9, 0x85, 0x44, 0xD8, 0xAC, 0xD9, 0x89, 0x44,\n\t0xD8, 0xAC, 0xD9, 0x8A, 0x44, 0xD8, 0xAD, 0xD8,\n\t0xAC, 0x44, 0xD8, 0xAD, 0xD9, 0x85, 0x44, 0xD8,\n\t0xAD, 0xD9, 0x89, 0x44, 0xD8, 0xAD, 0xD9, 0x8A,\n\t// Bytes 1e40 - 1e7f\n\t0x44, 0xD8, 0xAE, 0xD8, 0xAC, 0x44, 0xD8, 0xAE,\n\t0xD8, 0xAD, 0x44, 0xD8, 0xAE, 0xD9, 0x85, 0x44,\n\t0xD8, 0xAE, 0xD9, 0x89, 0x44, 0xD8, 0xAE, 0xD9,\n\t0x8A, 0x44, 0xD8, 0xB3, 0xD8, 0xAC, 0x44, 0xD8,\n\t0xB3, 0xD8, 0xAD, 0x44, 0xD8, 0xB3, 0xD8, 0xAE,\n\t0x44, 0xD8, 0xB3, 0xD8, 0xB1, 0x44, 0xD8, 0xB3,\n\t0xD9, 0x85, 0x44, 0xD8, 0xB3, 0xD9, 0x87, 0x44,\n\t0xD8, 0xB3, 0xD9, 0x89, 0x44, 0xD8, 0xB3, 0xD9,\n\t// Bytes 1e80 - 1ebf\n\t0x8A, 0x44, 0xD8, 0xB4, 0xD8, 0xAC, 0x44, 0xD8,\n\t0xB4, 0xD8, 0xAD, 0x44, 0xD8, 0xB4, 0xD8, 0xAE,\n\t0x44, 0xD8, 0xB4, 0xD8, 0xB1, 0x44, 0xD8, 0xB4,\n\t0xD9, 0x85, 0x44, 0xD8, 0xB4, 0xD9, 0x87, 0x44,\n\t0xD8, 0xB4, 0xD9, 0x89, 0x44, 0xD8, 0xB4, 0xD9,\n\t0x8A, 0x44, 0xD8, 0xB5, 0xD8, 0xAD, 0x44, 0xD8,\n\t0xB5, 0xD8, 0xAE, 0x44, 0xD8, 0xB5, 0xD8, 0xB1,\n\t0x44, 0xD8, 0xB5, 0xD9, 0x85, 0x44, 0xD8, 0xB5,\n\t// Bytes 1ec0 - 1eff\n\t0xD9, 0x89, 0x44, 0xD8, 0xB5, 0xD9, 0x8A, 0x44,\n\t0xD8, 0xB6, 0xD8, 0xAC, 0x44, 0xD8, 0xB6, 0xD8,\n\t0xAD, 0x44, 0xD8, 0xB6, 0xD8, 0xAE, 0x44, 0xD8,\n\t0xB6, 0xD8, 0xB1, 0x44, 0xD8, 0xB6, 0xD9, 0x85,\n\t0x44, 0xD8, 0xB6, 0xD9, 0x89, 0x44, 0xD8, 0xB6,\n\t0xD9, 0x8A, 0x44, 0xD8, 0xB7, 0xD8, 0xAD, 0x44,\n\t0xD8, 0xB7, 0xD9, 0x85, 0x44, 0xD8, 0xB7, 0xD9,\n\t0x89, 0x44, 0xD8, 0xB7, 0xD9, 0x8A, 0x44, 0xD8,\n\t// Bytes 1f00 - 1f3f\n\t0xB8, 0xD9, 0x85, 0x44, 0xD8, 0xB9, 0xD8, 0xAC,\n\t0x44, 0xD8, 0xB9, 0xD9, 0x85, 0x44, 0xD8, 0xB9,\n\t0xD9, 0x89, 0x44, 0xD8, 0xB9, 0xD9, 0x8A, 0x44,\n\t0xD8, 0xBA, 0xD8, 0xAC, 0x44, 0xD8, 0xBA, 0xD9,\n\t0x85, 0x44, 0xD8, 0xBA, 0xD9, 0x89, 0x44, 0xD8,\n\t0xBA, 0xD9, 0x8A, 0x44, 0xD9, 0x81, 0xD8, 0xAC,\n\t0x44, 0xD9, 0x81, 0xD8, 0xAD, 0x44, 0xD9, 0x81,\n\t0xD8, 0xAE, 0x44, 0xD9, 0x81, 0xD9, 0x85, 0x44,\n\t// Bytes 1f40 - 1f7f\n\t0xD9, 0x81, 0xD9, 0x89, 0x44, 0xD9, 0x81, 0xD9,\n\t0x8A, 0x44, 0xD9, 0x82, 0xD8, 0xAD, 0x44, 0xD9,\n\t0x82, 0xD9, 0x85, 0x44, 0xD9, 0x82, 0xD9, 0x89,\n\t0x44, 0xD9, 0x82, 0xD9, 0x8A, 0x44, 0xD9, 0x83,\n\t0xD8, 0xA7, 0x44, 0xD9, 0x83, 0xD8, 0xAC, 0x44,\n\t0xD9, 0x83, 0xD8, 0xAD, 0x44, 0xD9, 0x83, 0xD8,\n\t0xAE, 0x44, 0xD9, 0x83, 0xD9, 0x84, 0x44, 0xD9,\n\t0x83, 0xD9, 0x85, 0x44, 0xD9, 0x83, 0xD9, 0x89,\n\t// Bytes 1f80 - 1fbf\n\t0x44, 0xD9, 0x83, 0xD9, 0x8A, 0x44, 0xD9, 0x84,\n\t0xD8, 0xA7, 0x44, 0xD9, 0x84, 0xD8, 0xAC, 0x44,\n\t0xD9, 0x84, 0xD8, 0xAD, 0x44, 0xD9, 0x84, 0xD8,\n\t0xAE, 0x44, 0xD9, 0x84, 0xD9, 0x85, 0x44, 0xD9,\n\t0x84, 0xD9, 0x87, 0x44, 0xD9, 0x84, 0xD9, 0x89,\n\t0x44, 0xD9, 0x84, 0xD9, 0x8A, 0x44, 0xD9, 0x85,\n\t0xD8, 0xA7, 0x44, 0xD9, 0x85, 0xD8, 0xAC, 0x44,\n\t0xD9, 0x85, 0xD8, 0xAD, 0x44, 0xD9, 0x85, 0xD8,\n\t// Bytes 1fc0 - 1fff\n\t0xAE, 0x44, 0xD9, 0x85, 0xD9, 0x85, 0x44, 0xD9,\n\t0x85, 0xD9, 0x89, 0x44, 0xD9, 0x85, 0xD9, 0x8A,\n\t0x44, 0xD9, 0x86, 0xD8, 0xAC, 0x44, 0xD9, 0x86,\n\t0xD8, 0xAD, 0x44, 0xD9, 0x86, 0xD8, 0xAE, 0x44,\n\t0xD9, 0x86, 0xD8, 0xB1, 0x44, 0xD9, 0x86, 0xD8,\n\t0xB2, 0x44, 0xD9, 0x86, 0xD9, 0x85, 0x44, 0xD9,\n\t0x86, 0xD9, 0x86, 0x44, 0xD9, 0x86, 0xD9, 0x87,\n\t0x44, 0xD9, 0x86, 0xD9, 0x89, 0x44, 0xD9, 0x86,\n\t// Bytes 2000 - 203f\n\t0xD9, 0x8A, 0x44, 0xD9, 0x87, 0xD8, 0xAC, 0x44,\n\t0xD9, 0x87, 0xD9, 0x85, 0x44, 0xD9, 0x87, 0xD9,\n\t0x89, 0x44, 0xD9, 0x87, 0xD9, 0x8A, 0x44, 0xD9,\n\t0x88, 0xD9, 0xB4, 0x44, 0xD9, 0x8A, 0xD8, 0xAC,\n\t0x44, 0xD9, 0x8A, 0xD8, 0xAD, 0x44, 0xD9, 0x8A,\n\t0xD8, 0xAE, 0x44, 0xD9, 0x8A, 0xD8, 0xB1, 0x44,\n\t0xD9, 0x8A, 0xD8, 0xB2, 0x44, 0xD9, 0x8A, 0xD9,\n\t0x85, 0x44, 0xD9, 0x8A, 0xD9, 0x86, 0x44, 0xD9,\n\t// Bytes 2040 - 207f\n\t0x8A, 0xD9, 0x87, 0x44, 0xD9, 0x8A, 0xD9, 0x89,\n\t0x44, 0xD9, 0x8A, 0xD9, 0x8A, 0x44, 0xD9, 0x8A,\n\t0xD9, 0xB4, 0x44, 0xDB, 0x87, 0xD9, 0xB4, 0x45,\n\t0x28, 0xE1, 0x84, 0x80, 0x29, 0x45, 0x28, 0xE1,\n\t0x84, 0x82, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x83,\n\t0x29, 0x45, 0x28, 0xE1, 0x84, 0x85, 0x29, 0x45,\n\t0x28, 0xE1, 0x84, 0x86, 0x29, 0x45, 0x28, 0xE1,\n\t0x84, 0x87, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x89,\n\t// Bytes 2080 - 20bf\n\t0x29, 0x45, 0x28, 0xE1, 0x84, 0x8B, 0x29, 0x45,\n\t0x28, 0xE1, 0x84, 0x8C, 0x29, 0x45, 0x28, 0xE1,\n\t0x84, 0x8E, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8F,\n\t0x29, 0x45, 0x28, 0xE1, 0x84, 0x90, 0x29, 0x45,\n\t0x28, 0xE1, 0x84, 0x91, 0x29, 0x45, 0x28, 0xE1,\n\t0x84, 0x92, 0x29, 0x45, 0x28, 0xE4, 0xB8, 0x80,\n\t0x29, 0x45, 0x28, 0xE4, 0xB8, 0x83, 0x29, 0x45,\n\t0x28, 0xE4, 0xB8, 0x89, 0x29, 0x45, 0x28, 0xE4,\n\t// Bytes 20c0 - 20ff\n\t0xB9, 0x9D, 0x29, 0x45, 0x28, 0xE4, 0xBA, 0x8C,\n\t0x29, 0x45, 0x28, 0xE4, 0xBA, 0x94, 0x29, 0x45,\n\t0x28, 0xE4, 0xBB, 0xA3, 0x29, 0x45, 0x28, 0xE4,\n\t0xBC, 0x81, 0x29, 0x45, 0x28, 0xE4, 0xBC, 0x91,\n\t0x29, 0x45, 0x28, 0xE5, 0x85, 0xAB, 0x29, 0x45,\n\t0x28, 0xE5, 0x85, 0xAD, 0x29, 0x45, 0x28, 0xE5,\n\t0x8A, 0xB4, 0x29, 0x45, 0x28, 0xE5, 0x8D, 0x81,\n\t0x29, 0x45, 0x28, 0xE5, 0x8D, 0x94, 0x29, 0x45,\n\t// Bytes 2100 - 213f\n\t0x28, 0xE5, 0x90, 0x8D, 0x29, 0x45, 0x28, 0xE5,\n\t0x91, 0xBC, 0x29, 0x45, 0x28, 0xE5, 0x9B, 0x9B,\n\t0x29, 0x45, 0x28, 0xE5, 0x9C, 0x9F, 0x29, 0x45,\n\t0x28, 0xE5, 0xAD, 0xA6, 0x29, 0x45, 0x28, 0xE6,\n\t0x97, 0xA5, 0x29, 0x45, 0x28, 0xE6, 0x9C, 0x88,\n\t0x29, 0x45, 0x28, 0xE6, 0x9C, 0x89, 0x29, 0x45,\n\t0x28, 0xE6, 0x9C, 0xA8, 0x29, 0x45, 0x28, 0xE6,\n\t0xA0, 0xAA, 0x29, 0x45, 0x28, 0xE6, 0xB0, 0xB4,\n\t// Bytes 2140 - 217f\n\t0x29, 0x45, 0x28, 0xE7, 0x81, 0xAB, 0x29, 0x45,\n\t0x28, 0xE7, 0x89, 0xB9, 0x29, 0x45, 0x28, 0xE7,\n\t0x9B, 0xA3, 0x29, 0x45, 0x28, 0xE7, 0xA4, 0xBE,\n\t0x29, 0x45, 0x28, 0xE7, 0xA5, 0x9D, 0x29, 0x45,\n\t0x28, 0xE7, 0xA5, 0xAD, 0x29, 0x45, 0x28, 0xE8,\n\t0x87, 0xAA, 0x29, 0x45, 0x28, 0xE8, 0x87, 0xB3,\n\t0x29, 0x45, 0x28, 0xE8, 0xB2, 0xA1, 0x29, 0x45,\n\t0x28, 0xE8, 0xB3, 0x87, 0x29, 0x45, 0x28, 0xE9,\n\t// Bytes 2180 - 21bf\n\t0x87, 0x91, 0x29, 0x45, 0x30, 0xE2, 0x81, 0x84,\n\t0x33, 0x45, 0x31, 0x30, 0xE6, 0x97, 0xA5, 0x45,\n\t0x31, 0x30, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x30,\n\t0xE7, 0x82, 0xB9, 0x45, 0x31, 0x31, 0xE6, 0x97,\n\t0xA5, 0x45, 0x31, 0x31, 0xE6, 0x9C, 0x88, 0x45,\n\t0x31, 0x31, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x32,\n\t0xE6, 0x97, 0xA5, 0x45, 0x31, 0x32, 0xE6, 0x9C,\n\t0x88, 0x45, 0x31, 0x32, 0xE7, 0x82, 0xB9, 0x45,\n\t// Bytes 21c0 - 21ff\n\t0x31, 0x33, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x33,\n\t0xE7, 0x82, 0xB9, 0x45, 0x31, 0x34, 0xE6, 0x97,\n\t0xA5, 0x45, 0x31, 0x34, 0xE7, 0x82, 0xB9, 0x45,\n\t0x31, 0x35, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x35,\n\t0xE7, 0x82, 0xB9, 0x45, 0x31, 0x36, 0xE6, 0x97,\n\t0xA5, 0x45, 0x31, 0x36, 0xE7, 0x82, 0xB9, 0x45,\n\t0x31, 0x37, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x37,\n\t0xE7, 0x82, 0xB9, 0x45, 0x31, 0x38, 0xE6, 0x97,\n\t// Bytes 2200 - 223f\n\t0xA5, 0x45, 0x31, 0x38, 0xE7, 0x82, 0xB9, 0x45,\n\t0x31, 0x39, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x39,\n\t0xE7, 0x82, 0xB9, 0x45, 0x31, 0xE2, 0x81, 0x84,\n\t0x32, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x33, 0x45,\n\t0x31, 0xE2, 0x81, 0x84, 0x34, 0x45, 0x31, 0xE2,\n\t0x81, 0x84, 0x35, 0x45, 0x31, 0xE2, 0x81, 0x84,\n\t0x36, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x37, 0x45,\n\t0x31, 0xE2, 0x81, 0x84, 0x38, 0x45, 0x31, 0xE2,\n\t// Bytes 2240 - 227f\n\t0x81, 0x84, 0x39, 0x45, 0x32, 0x30, 0xE6, 0x97,\n\t0xA5, 0x45, 0x32, 0x30, 0xE7, 0x82, 0xB9, 0x45,\n\t0x32, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x31,\n\t0xE7, 0x82, 0xB9, 0x45, 0x32, 0x32, 0xE6, 0x97,\n\t0xA5, 0x45, 0x32, 0x32, 0xE7, 0x82, 0xB9, 0x45,\n\t0x32, 0x33, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x33,\n\t0xE7, 0x82, 0xB9, 0x45, 0x32, 0x34, 0xE6, 0x97,\n\t0xA5, 0x45, 0x32, 0x34, 0xE7, 0x82, 0xB9, 0x45,\n\t// Bytes 2280 - 22bf\n\t0x32, 0x35, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x36,\n\t0xE6, 0x97, 0xA5, 0x45, 0x32, 0x37, 0xE6, 0x97,\n\t0xA5, 0x45, 0x32, 0x38, 0xE6, 0x97, 0xA5, 0x45,\n\t0x32, 0x39, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0xE2,\n\t0x81, 0x84, 0x33, 0x45, 0x32, 0xE2, 0x81, 0x84,\n\t0x35, 0x45, 0x33, 0x30, 0xE6, 0x97, 0xA5, 0x45,\n\t0x33, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x33, 0xE2,\n\t0x81, 0x84, 0x34, 0x45, 0x33, 0xE2, 0x81, 0x84,\n\t// Bytes 22c0 - 22ff\n\t0x35, 0x45, 0x33, 0xE2, 0x81, 0x84, 0x38, 0x45,\n\t0x34, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x35, 0xE2,\n\t0x81, 0x84, 0x36, 0x45, 0x35, 0xE2, 0x81, 0x84,\n\t0x38, 0x45, 0x37, 0xE2, 0x81, 0x84, 0x38, 0x45,\n\t0x41, 0xE2, 0x88, 0x95, 0x6D, 0x45, 0x56, 0xE2,\n\t0x88, 0x95, 0x6D, 0x45, 0x6D, 0xE2, 0x88, 0x95,\n\t0x73, 0x46, 0x31, 0xE2, 0x81, 0x84, 0x31, 0x30,\n\t0x46, 0x43, 0xE2, 0x88, 0x95, 0x6B, 0x67, 0x46,\n\t// Bytes 2300 - 233f\n\t0x6D, 0xE2, 0x88, 0x95, 0x73, 0x32, 0x46, 0xD8,\n\t0xA8, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xA8,\n\t0xD8, 0xAE, 0xD9, 0x8A, 0x46, 0xD8, 0xAA, 0xD8,\n\t0xAC, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAC,\n\t0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9,\n\t0x8A, 0x46, 0xD8, 0xAA, 0xD8, 0xAD, 0xD8, 0xAC,\n\t0x46, 0xD8, 0xAA, 0xD8, 0xAD, 0xD9, 0x85, 0x46,\n\t0xD8, 0xAA, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD8,\n\t// Bytes 2340 - 237f\n\t0xAA, 0xD8, 0xAE, 0xD9, 0x89, 0x46, 0xD8, 0xAA,\n\t0xD8, 0xAE, 0xD9, 0x8A, 0x46, 0xD8, 0xAA, 0xD9,\n\t0x85, 0xD8, 0xAC, 0x46, 0xD8, 0xAA, 0xD9, 0x85,\n\t0xD8, 0xAD, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8,\n\t0xAE, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD9, 0x89,\n\t0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD9, 0x8A, 0x46,\n\t0xD8, 0xAC, 0xD8, 0xAD, 0xD9, 0x89, 0x46, 0xD8,\n\t0xAC, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xAC,\n\t// Bytes 2380 - 23bf\n\t0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xAC, 0xD9,\n\t0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAC, 0xD9, 0x85,\n\t0xD9, 0x8A, 0x46, 0xD8, 0xAD, 0xD8, 0xAC, 0xD9,\n\t0x8A, 0x46, 0xD8, 0xAD, 0xD9, 0x85, 0xD9, 0x89,\n\t0x46, 0xD8, 0xAD, 0xD9, 0x85, 0xD9, 0x8A, 0x46,\n\t0xD8, 0xB3, 0xD8, 0xAC, 0xD8, 0xAD, 0x46, 0xD8,\n\t0xB3, 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD8, 0xB3,\n\t0xD8, 0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xB3, 0xD8,\n\t// Bytes 23c0 - 23ff\n\t0xAE, 0xD9, 0x89, 0x46, 0xD8, 0xB3, 0xD8, 0xAE,\n\t0xD9, 0x8A, 0x46, 0xD8, 0xB3, 0xD9, 0x85, 0xD8,\n\t0xAC, 0x46, 0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAD,\n\t0x46, 0xD8, 0xB3, 0xD9, 0x85, 0xD9, 0x85, 0x46,\n\t0xD8, 0xB4, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8,\n\t0xB4, 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD8, 0xB4,\n\t0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB4, 0xD9,\n\t0x85, 0xD8, 0xAE, 0x46, 0xD8, 0xB4, 0xD9, 0x85,\n\t// Bytes 2400 - 243f\n\t0xD9, 0x85, 0x46, 0xD8, 0xB5, 0xD8, 0xAD, 0xD8,\n\t0xAD, 0x46, 0xD8, 0xB5, 0xD8, 0xAD, 0xD9, 0x8A,\n\t0x46, 0xD8, 0xB5, 0xD9, 0x84, 0xD9, 0x89, 0x46,\n\t0xD8, 0xB5, 0xD9, 0x84, 0xDB, 0x92, 0x46, 0xD8,\n\t0xB5, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB6,\n\t0xD8, 0xAD, 0xD9, 0x89, 0x46, 0xD8, 0xB6, 0xD8,\n\t0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB6, 0xD8, 0xAE,\n\t0xD9, 0x85, 0x46, 0xD8, 0xB7, 0xD9, 0x85, 0xD8,\n\t// Bytes 2440 - 247f\n\t0xAD, 0x46, 0xD8, 0xB7, 0xD9, 0x85, 0xD9, 0x85,\n\t0x46, 0xD8, 0xB7, 0xD9, 0x85, 0xD9, 0x8A, 0x46,\n\t0xD8, 0xB9, 0xD8, 0xAC, 0xD9, 0x85, 0x46, 0xD8,\n\t0xB9, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB9,\n\t0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xB9, 0xD9,\n\t0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xBA, 0xD9, 0x85,\n\t0xD9, 0x85, 0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9,\n\t0x89, 0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x8A,\n\t// Bytes 2480 - 24bf\n\t0x46, 0xD9, 0x81, 0xD8, 0xAE, 0xD9, 0x85, 0x46,\n\t0xD9, 0x81, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9,\n\t0x82, 0xD9, 0x84, 0xDB, 0x92, 0x46, 0xD9, 0x82,\n\t0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x82, 0xD9,\n\t0x85, 0xD9, 0x85, 0x46, 0xD9, 0x82, 0xD9, 0x85,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x83, 0xD9, 0x85, 0xD9,\n\t0x85, 0x46, 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x8A,\n\t0x46, 0xD9, 0x84, 0xD8, 0xAC, 0xD8, 0xAC, 0x46,\n\t// Bytes 24c0 - 24ff\n\t0xD9, 0x84, 0xD8, 0xAC, 0xD9, 0x85, 0x46, 0xD9,\n\t0x84, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x84,\n\t0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD8,\n\t0xAD, 0xD9, 0x89, 0x46, 0xD9, 0x84, 0xD8, 0xAD,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAE, 0xD9,\n\t0x85, 0x46, 0xD9, 0x84, 0xD9, 0x85, 0xD8, 0xAD,\n\t0x46, 0xD9, 0x84, 0xD9, 0x85, 0xD9, 0x8A, 0x46,\n\t0xD9, 0x85, 0xD8, 0xAC, 0xD8, 0xAD, 0x46, 0xD9,\n\t// Bytes 2500 - 253f\n\t0x85, 0xD8, 0xAC, 0xD8, 0xAE, 0x46, 0xD9, 0x85,\n\t0xD8, 0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8,\n\t0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8, 0xAD,\n\t0xD8, 0xAC, 0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD9,\n\t0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x8A,\n\t0x46, 0xD9, 0x85, 0xD8, 0xAE, 0xD8, 0xAC, 0x46,\n\t0xD9, 0x85, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9,\n\t0x85, 0xD8, 0xAE, 0xD9, 0x8A, 0x46, 0xD9, 0x85,\n\t// Bytes 2540 - 257f\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD8,\n\t0xAC, 0xD8, 0xAD, 0x46, 0xD9, 0x86, 0xD8, 0xAC,\n\t0xD9, 0x85, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9,\n\t0x89, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x8A,\n\t0x46, 0xD9, 0x86, 0xD8, 0xAD, 0xD9, 0x85, 0x46,\n\t0xD9, 0x86, 0xD8, 0xAD, 0xD9, 0x89, 0x46, 0xD9,\n\t0x86, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x86,\n\t0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD9,\n\t// Bytes 2580 - 25bf\n\t0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x87, 0xD9, 0x85,\n\t0xD8, 0xAC, 0x46, 0xD9, 0x87, 0xD9, 0x85, 0xD9,\n\t0x85, 0x46, 0xD9, 0x8A, 0xD8, 0xAC, 0xD9, 0x8A,\n\t0x46, 0xD9, 0x8A, 0xD8, 0xAD, 0xD9, 0x8A, 0x46,\n\t0xD9, 0x8A, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9,\n\t0x8A, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x8A,\n\t0xD9, 0x94, 0xD8, 0xA7, 0x46, 0xD9, 0x8A, 0xD9,\n\t0x94, 0xD8, 0xAC, 0x46, 0xD9, 0x8A, 0xD9, 0x94,\n\t// Bytes 25c0 - 25ff\n\t0xD8, 0xAD, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8,\n\t0xAE, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xB1,\n\t0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xB2, 0x46,\n\t0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x85, 0x46, 0xD9,\n\t0x8A, 0xD9, 0x94, 0xD9, 0x86, 0x46, 0xD9, 0x8A,\n\t0xD9, 0x94, 0xD9, 0x87, 0x46, 0xD9, 0x8A, 0xD9,\n\t0x94, 0xD9, 0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94,\n\t0xD9, 0x89, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9,\n\t// Bytes 2600 - 263f\n\t0x8A, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x86,\n\t0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x87, 0x46,\n\t0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x88, 0x46, 0xD9,\n\t0x8A, 0xD9, 0x94, 0xDB, 0x90, 0x46, 0xD9, 0x8A,\n\t0xD9, 0x94, 0xDB, 0x95, 0x46, 0xE0, 0xB9, 0x8D,\n\t0xE0, 0xB8, 0xB2, 0x46, 0xE0, 0xBA, 0xAB, 0xE0,\n\t0xBA, 0x99, 0x46, 0xE0, 0xBA, 0xAB, 0xE0, 0xBA,\n\t0xA1, 0x46, 0xE0, 0xBB, 0x8D, 0xE0, 0xBA, 0xB2,\n\t// Bytes 2640 - 267f\n\t0x46, 0xE0, 0xBD, 0x80, 0xE0, 0xBE, 0xB5, 0x46,\n\t0xE0, 0xBD, 0x82, 0xE0, 0xBE, 0xB7, 0x46, 0xE0,\n\t0xBD, 0x8C, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD,\n\t0x91, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x96,\n\t0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x9B, 0xE0,\n\t0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0x90, 0xE0, 0xBE,\n\t0xB5, 0x46, 0xE0, 0xBE, 0x92, 0xE0, 0xBE, 0xB7,\n\t0x46, 0xE0, 0xBE, 0x9C, 0xE0, 0xBE, 0xB7, 0x46,\n\t// Bytes 2680 - 26bf\n\t0xE0, 0xBE, 0xA1, 0xE0, 0xBE, 0xB7, 0x46, 0xE0,\n\t0xBE, 0xA6, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE,\n\t0xAB, 0xE0, 0xBE, 0xB7, 0x46, 0xE2, 0x80, 0xB2,\n\t0xE2, 0x80, 0xB2, 0x46, 0xE2, 0x80, 0xB5, 0xE2,\n\t0x80, 0xB5, 0x46, 0xE2, 0x88, 0xAB, 0xE2, 0x88,\n\t0xAB, 0x46, 0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE,\n\t0x46, 0xE3, 0x81, 0xBB, 0xE3, 0x81, 0x8B, 0x46,\n\t0xE3, 0x82, 0x88, 0xE3, 0x82, 0x8A, 0x46, 0xE3,\n\t// Bytes 26c0 - 26ff\n\t0x82, 0xAD, 0xE3, 0x83, 0xAD, 0x46, 0xE3, 0x82,\n\t0xB3, 0xE3, 0x82, 0xB3, 0x46, 0xE3, 0x82, 0xB3,\n\t0xE3, 0x83, 0x88, 0x46, 0xE3, 0x83, 0x88, 0xE3,\n\t0x83, 0xB3, 0x46, 0xE3, 0x83, 0x8A, 0xE3, 0x83,\n\t0x8E, 0x46, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xB3,\n\t0x46, 0xE3, 0x83, 0x9F, 0xE3, 0x83, 0xAA, 0x46,\n\t0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xA9, 0x46, 0xE3,\n\t0x83, 0xAC, 0xE3, 0x83, 0xA0, 0x46, 0xE5, 0xA4,\n\t// Bytes 2700 - 273f\n\t0xA7, 0xE6, 0xAD, 0xA3, 0x46, 0xE5, 0xB9, 0xB3,\n\t0xE6, 0x88, 0x90, 0x46, 0xE6, 0x98, 0x8E, 0xE6,\n\t0xB2, 0xBB, 0x46, 0xE6, 0x98, 0xAD, 0xE5, 0x92,\n\t0x8C, 0x47, 0x72, 0x61, 0x64, 0xE2, 0x88, 0x95,\n\t0x73, 0x47, 0xE3, 0x80, 0x94, 0x53, 0xE3, 0x80,\n\t0x95, 0x48, 0x28, 0xE1, 0x84, 0x80, 0xE1, 0x85,\n\t0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x82, 0xE1,\n\t0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x83,\n\t// Bytes 2740 - 277f\n\t0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,\n\t0x85, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1,\n\t0x84, 0x86, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28,\n\t0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, 0x29, 0x48,\n\t0x28, 0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1, 0x29,\n\t0x48, 0x28, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1,\n\t0x29, 0x48, 0x28, 0xE1, 0x84, 0x8C, 0xE1, 0x85,\n\t0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8C, 0xE1,\n\t// Bytes 2780 - 27bf\n\t0x85, 0xAE, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8E,\n\t0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,\n\t0x8F, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1,\n\t0x84, 0x90, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28,\n\t0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, 0x29, 0x48,\n\t0x28, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0x29,\n\t0x48, 0x72, 0x61, 0x64, 0xE2, 0x88, 0x95, 0x73,\n\t0x32, 0x48, 0xD8, 0xA7, 0xD9, 0x83, 0xD8, 0xA8,\n\t// Bytes 27c0 - 27ff\n\t0xD8, 0xB1, 0x48, 0xD8, 0xA7, 0xD9, 0x84, 0xD9,\n\t0x84, 0xD9, 0x87, 0x48, 0xD8, 0xB1, 0xD8, 0xB3,\n\t0xD9, 0x88, 0xD9, 0x84, 0x48, 0xD8, 0xB1, 0xDB,\n\t0x8C, 0xD8, 0xA7, 0xD9, 0x84, 0x48, 0xD8, 0xB5,\n\t0xD9, 0x84, 0xD8, 0xB9, 0xD9, 0x85, 0x48, 0xD8,\n\t0xB9, 0xD9, 0x84, 0xD9, 0x8A, 0xD9, 0x87, 0x48,\n\t0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xAF,\n\t0x48, 0xD9, 0x88, 0xD8, 0xB3, 0xD9, 0x84, 0xD9,\n\t// Bytes 2800 - 283f\n\t0x85, 0x49, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,\n\t0xE2, 0x80, 0xB2, 0x49, 0xE2, 0x80, 0xB5, 0xE2,\n\t0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x49, 0xE2, 0x88,\n\t0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x49,\n\t0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0xE2, 0x88,\n\t0xAE, 0x49, 0xE3, 0x80, 0x94, 0xE4, 0xB8, 0x89,\n\t0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE4,\n\t0xBA, 0x8C, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80,\n\t// Bytes 2840 - 287f\n\t0x94, 0xE5, 0x8B, 0x9D, 0xE3, 0x80, 0x95, 0x49,\n\t0xE3, 0x80, 0x94, 0xE5, 0xAE, 0x89, 0xE3, 0x80,\n\t0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x89, 0x93,\n\t0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6,\n\t0x95, 0x97, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80,\n\t0x94, 0xE6, 0x9C, 0xAC, 0xE3, 0x80, 0x95, 0x49,\n\t0xE3, 0x80, 0x94, 0xE7, 0x82, 0xB9, 0xE3, 0x80,\n\t0x95, 0x49, 0xE3, 0x80, 0x94, 0xE7, 0x9B, 0x97,\n\t// Bytes 2880 - 28bf\n\t0xE3, 0x80, 0x95, 0x49, 0xE3, 0x82, 0xA2, 0xE3,\n\t0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0x49,\n\t0xE3, 0x82, 0xA6, 0xE3, 0x82, 0xA9, 0xE3, 0x83,\n\t0xB3, 0x49, 0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xB3,\n\t0xE3, 0x82, 0xB9, 0x49, 0xE3, 0x82, 0xAA, 0xE3,\n\t0x83, 0xBC, 0xE3, 0x83, 0xA0, 0x49, 0xE3, 0x82,\n\t0xAB, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xAA, 0x49,\n\t// Bytes 28c0 - 28ff\n\t0xE3, 0x82, 0xB1, 0xE3, 0x83, 0xBC, 0xE3, 0x82,\n\t0xB9, 0x49, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0xAB,\n\t0xE3, 0x83, 0x8A, 0x49, 0xE3, 0x82, 0xBB, 0xE3,\n\t0x83, 0xB3, 0xE3, 0x83, 0x81, 0x49, 0xE3, 0x82,\n\t0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, 0x49,\n\t0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0xE3, 0x82,\n\t0xB7, 0x49, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99,\n\t0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x8E, 0xE3,\n\t// Bytes 2900 - 293f\n\t0x83, 0x83, 0xE3, 0x83, 0x88, 0x49, 0xE3, 0x83,\n\t0x8F, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0x84, 0x49,\n\t0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0xAB, 0x49, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A,\n\t0xE3, 0x82, 0xB3, 0x49, 0xE3, 0x83, 0x95, 0xE3,\n\t0x83, 0xA9, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83,\n\t0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xBD, 0x49,\n\t0xE3, 0x83, 0x98, 0xE3, 0x83, 0xAB, 0xE3, 0x83,\n\t// Bytes 2940 - 297f\n\t0x84, 0x49, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xBC,\n\t0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x9B, 0xE3,\n\t0x83, 0xBC, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83,\n\t0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xAB, 0x49,\n\t0xE3, 0x83, 0x9E, 0xE3, 0x83, 0x83, 0xE3, 0x83,\n\t0x8F, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x83, 0xAB,\n\t0xE3, 0x82, 0xAF, 0x49, 0xE3, 0x83, 0xA4, 0xE3,\n\t0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83,\n\t// Bytes 2980 - 29bf\n\t0xA6, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xB3, 0x49,\n\t0xE3, 0x83, 0xAF, 0xE3, 0x83, 0x83, 0xE3, 0x83,\n\t0x88, 0x4C, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,\n\t0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0x4C, 0xE2,\n\t0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB,\n\t0xE2, 0x88, 0xAB, 0x4C, 0xE3, 0x82, 0xA2, 0xE3,\n\t0x83, 0xAB, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0xA1,\n\t0x4C, 0xE3, 0x82, 0xA8, 0xE3, 0x83, 0xBC, 0xE3,\n\t// Bytes 29c0 - 29ff\n\t0x82, 0xAB, 0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82,\n\t0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAD, 0xE3,\n\t0x83, 0xB3, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x9E, 0x4C,\n\t0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xA9, 0xE3, 0x83,\n\t0x83, 0xE3, 0x83, 0x88, 0x4C, 0xE3, 0x82, 0xAB,\n\t0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAA, 0xE3, 0x83,\n\t0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99,\n\t// Bytes 2a00 - 2a3f\n\t0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xBC, 0x4C, 0xE3,\n\t0x82, 0xAD, 0xE3, 0x83, 0xA5, 0xE3, 0x83, 0xAA,\n\t0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAF, 0xE3,\n\t0x82, 0x99, 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0xA0,\n\t0x4C, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0xE3,\n\t0x83, 0xBC, 0xE3, 0x83, 0x8D, 0x4C, 0xE3, 0x82,\n\t0xB5, 0xE3, 0x82, 0xA4, 0xE3, 0x82, 0xAF, 0xE3,\n\t0x83, 0xAB, 0x4C, 0xE3, 0x82, 0xBF, 0xE3, 0x82,\n\t// Bytes 2a40 - 2a7f\n\t0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB9, 0x4C,\n\t0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x83, 0x84, 0x4C, 0xE3, 0x83, 0x92,\n\t0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xAF, 0xE3, 0x83,\n\t0xAB, 0x4C, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0xA3,\n\t0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0x4C, 0xE3,\n\t0x83, 0x98, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC,\n\t0xE3, 0x82, 0xBF, 0x4C, 0xE3, 0x83, 0x98, 0xE3,\n\t// Bytes 2a80 - 2abf\n\t0x82, 0x9A, 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0x92,\n\t0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3,\n\t0x83, 0xB3, 0xE3, 0x82, 0xB9, 0x4C, 0xE3, 0x83,\n\t0x9B, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0xE3,\n\t0x83, 0x88, 0x4C, 0xE3, 0x83, 0x9E, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0x4C,\n\t0xE3, 0x83, 0x9F, 0xE3, 0x82, 0xAF, 0xE3, 0x83,\n\t0xAD, 0xE3, 0x83, 0xB3, 0x4C, 0xE3, 0x83, 0xA1,\n\t// Bytes 2ac0 - 2aff\n\t0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x83,\n\t0xAB, 0x4C, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x83,\n\t0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x4C, 0xE3,\n\t0x83, 0xAB, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A,\n\t0xE3, 0x83, 0xBC, 0x4C, 0xE6, 0xA0, 0xAA, 0xE5,\n\t0xBC, 0x8F, 0xE4, 0xBC, 0x9A, 0xE7, 0xA4, 0xBE,\n\t0x4E, 0x28, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA9,\n\t0xE1, 0x84, 0x92, 0xE1, 0x85, 0xAE, 0x29, 0x4F,\n\t// Bytes 2b00 - 2b3f\n\t0xD8, 0xAC, 0xD9, 0x84, 0x20, 0xD8, 0xAC, 0xD9,\n\t0x84, 0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x87, 0x4F,\n\t0xE3, 0x82, 0xA2, 0xE3, 0x83, 0x8F, 0xE3, 0x82,\n\t0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0x4F,\n\t0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xB3, 0xE3, 0x83,\n\t0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA2, 0x4F,\n\t0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD, 0xE3, 0x83,\n\t0xAF, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x4F,\n\t// Bytes 2b40 - 2b7f\n\t0xE3, 0x82, 0xB5, 0xE3, 0x83, 0xB3, 0xE3, 0x83,\n\t0x81, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xA0, 0x4F,\n\t0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xAB, 0x4F,\n\t0xE3, 0x83, 0x98, 0xE3, 0x82, 0xAF, 0xE3, 0x82,\n\t0xBF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x4F,\n\t0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, 0x4F,\n\t// Bytes 2b80 - 2bbf\n\t0xE3, 0x83, 0x9E, 0xE3, 0x83, 0xB3, 0xE3, 0x82,\n\t0xB7, 0xE3, 0x83, 0xA7, 0xE3, 0x83, 0xB3, 0x4F,\n\t0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x4F,\n\t0xE3, 0x83, 0xAB, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0x95, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0x51,\n\t0x28, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA9, 0xE1,\n\t0x84, 0x8C, 0xE1, 0x85, 0xA5, 0xE1, 0x86, 0xAB,\n\t// Bytes 2bc0 - 2bff\n\t0x29, 0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99,\n\t0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xBF, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xBC, 0x52, 0xE3, 0x82, 0xAD,\n\t0xE3, 0x83, 0xAD, 0xE3, 0x82, 0xAF, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0xA0, 0x52,\n\t0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD, 0xE3, 0x83,\n\t0xA1, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3,\n\t0x83, 0xAB, 0x52, 0xE3, 0x82, 0xAF, 0xE3, 0x82,\n\t// Bytes 2c00 - 2c3f\n\t0x99, 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0xA0, 0xE3,\n\t0x83, 0x88, 0xE3, 0x83, 0xB3, 0x52, 0xE3, 0x82,\n\t0xAF, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xBB, 0xE3,\n\t0x82, 0x99, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xAD,\n\t0x52, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3,\n\t0x83, 0xBC, 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3,\n\t0xE3, 0x83, 0x88, 0x52, 0xE3, 0x83, 0x92, 0xE3,\n\t0x82, 0x9A, 0xE3, 0x82, 0xA2, 0xE3, 0x82, 0xB9,\n\t// Bytes 2c40 - 2c7f\n\t0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x52, 0xE3,\n\t0x83, 0x95, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x83,\n\t0xE3, 0x82, 0xB7, 0xE3, 0x82, 0xA7, 0xE3, 0x83,\n\t0xAB, 0x52, 0xE3, 0x83, 0x9F, 0xE3, 0x83, 0xAA,\n\t0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83, 0xAC,\n\t0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82,\n\t0xB1, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xB3, 0x61,\n\t// Bytes 2c80 - 2cbf\n\t0xD8, 0xB5, 0xD9, 0x84, 0xD9, 0x89, 0x20, 0xD8,\n\t0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x87, 0x20,\n\t0xD8, 0xB9, 0xD9, 0x84, 0xD9, 0x8A, 0xD9, 0x87,\n\t0x20, 0xD9, 0x88, 0xD8, 0xB3, 0xD9, 0x84, 0xD9,\n\t0x85, 0x06, 0xE0, 0xA7, 0x87, 0xE0, 0xA6, 0xBE,\n\t0x01, 0x06, 0xE0, 0xA7, 0x87, 0xE0, 0xA7, 0x97,\n\t0x01, 0x06, 0xE0, 0xAD, 0x87, 0xE0, 0xAC, 0xBE,\n\t0x01, 0x06, 0xE0, 0xAD, 0x87, 0xE0, 0xAD, 0x96,\n\t// Bytes 2cc0 - 2cff\n\t0x01, 0x06, 0xE0, 0xAD, 0x87, 0xE0, 0xAD, 0x97,\n\t0x01, 0x06, 0xE0, 0xAE, 0x92, 0xE0, 0xAF, 0x97,\n\t0x01, 0x06, 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xBE,\n\t0x01, 0x06, 0xE0, 0xAF, 0x86, 0xE0, 0xAF, 0x97,\n\t0x01, 0x06, 0xE0, 0xAF, 0x87, 0xE0, 0xAE, 0xBE,\n\t0x01, 0x06, 0xE0, 0xB2, 0xBF, 0xE0, 0xB3, 0x95,\n\t0x01, 0x06, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x95,\n\t0x01, 0x06, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x96,\n\t// Bytes 2d00 - 2d3f\n\t0x01, 0x06, 0xE0, 0xB5, 0x86, 0xE0, 0xB4, 0xBE,\n\t0x01, 0x06, 0xE0, 0xB5, 0x86, 0xE0, 0xB5, 0x97,\n\t0x01, 0x06, 0xE0, 0xB5, 0x87, 0xE0, 0xB4, 0xBE,\n\t0x01, 0x06, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x9F,\n\t0x01, 0x06, 0xE1, 0x80, 0xA5, 0xE1, 0x80, 0xAE,\n\t0x01, 0x06, 0xE1, 0xAC, 0x85, 0xE1, 0xAC, 0xB5,\n\t0x01, 0x06, 0xE1, 0xAC, 0x87, 0xE1, 0xAC, 0xB5,\n\t0x01, 0x06, 0xE1, 0xAC, 0x89, 0xE1, 0xAC, 0xB5,\n\t// Bytes 2d40 - 2d7f\n\t0x01, 0x06, 0xE1, 0xAC, 0x8B, 0xE1, 0xAC, 0xB5,\n\t0x01, 0x06, 0xE1, 0xAC, 0x8D, 0xE1, 0xAC, 0xB5,\n\t0x01, 0x06, 0xE1, 0xAC, 0x91, 0xE1, 0xAC, 0xB5,\n\t0x01, 0x06, 0xE1, 0xAC, 0xBA, 0xE1, 0xAC, 0xB5,\n\t0x01, 0x06, 0xE1, 0xAC, 0xBC, 0xE1, 0xAC, 0xB5,\n\t0x01, 0x06, 0xE1, 0xAC, 0xBE, 0xE1, 0xAC, 0xB5,\n\t0x01, 0x06, 0xE1, 0xAC, 0xBF, 0xE1, 0xAC, 0xB5,\n\t0x01, 0x06, 0xE1, 0xAD, 0x82, 0xE1, 0xAC, 0xB5,\n\t// Bytes 2d80 - 2dbf\n\t0x01, 0x08, 0xF0, 0x91, 0x84, 0xB1, 0xF0, 0x91,\n\t0x84, 0xA7, 0x01, 0x08, 0xF0, 0x91, 0x84, 0xB2,\n\t0xF0, 0x91, 0x84, 0xA7, 0x01, 0x08, 0xF0, 0x91,\n\t0x8D, 0x87, 0xF0, 0x91, 0x8C, 0xBE, 0x01, 0x08,\n\t0xF0, 0x91, 0x8D, 0x87, 0xF0, 0x91, 0x8D, 0x97,\n\t0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91,\n\t0x92, 0xB0, 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9,\n\t0xF0, 0x91, 0x92, 0xBA, 0x01, 0x08, 0xF0, 0x91,\n\t// Bytes 2dc0 - 2dff\n\t0x92, 0xB9, 0xF0, 0x91, 0x92, 0xBD, 0x01, 0x08,\n\t0xF0, 0x91, 0x96, 0xB8, 0xF0, 0x91, 0x96, 0xAF,\n\t0x01, 0x08, 0xF0, 0x91, 0x96, 0xB9, 0xF0, 0x91,\n\t0x96, 0xAF, 0x01, 0x09, 0xE0, 0xB3, 0x86, 0xE0,\n\t0xB3, 0x82, 0xE0, 0xB3, 0x95, 0x02, 0x09, 0xE0,\n\t0xB7, 0x99, 0xE0, 0xB7, 0x8F, 0xE0, 0xB7, 0x8A,\n\t0x12, 0x44, 0x44, 0x5A, 0xCC, 0x8C, 0xC9, 0x44,\n\t0x44, 0x7A, 0xCC, 0x8C, 0xC9, 0x44, 0x64, 0x7A,\n\t// Bytes 2e00 - 2e3f\n\t0xCC, 0x8C, 0xC9, 0x46, 0xD9, 0x84, 0xD8, 0xA7,\n\t0xD9, 0x93, 0xC9, 0x46, 0xD9, 0x84, 0xD8, 0xA7,\n\t0xD9, 0x94, 0xC9, 0x46, 0xD9, 0x84, 0xD8, 0xA7,\n\t0xD9, 0x95, 0xB5, 0x46, 0xE1, 0x84, 0x80, 0xE1,\n\t0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x82, 0xE1,\n\t0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x83, 0xE1,\n\t0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x85, 0xE1,\n\t0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x86, 0xE1,\n\t// Bytes 2e40 - 2e7f\n\t0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x87, 0xE1,\n\t0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x89, 0xE1,\n\t0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x8B, 0xE1,\n\t0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x8B, 0xE1,\n\t0x85, 0xAE, 0x01, 0x46, 0xE1, 0x84, 0x8C, 0xE1,\n\t0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x8E, 0xE1,\n\t0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x8F, 0xE1,\n\t0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x90, 0xE1,\n\t// Bytes 2e80 - 2ebf\n\t0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x91, 0xE1,\n\t0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x92, 0xE1,\n\t0x85, 0xA1, 0x01, 0x49, 0xE3, 0x83, 0xA1, 0xE3,\n\t0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, 0x4C, 0xE1,\n\t0x84, 0x8C, 0xE1, 0x85, 0xAE, 0xE1, 0x84, 0x8B,\n\t0xE1, 0x85, 0xB4, 0x01, 0x4C, 0xE3, 0x82, 0xAD,\n\t0xE3, 0x82, 0x99, 0xE3, 0x82, 0xAB, 0xE3, 0x82,\n\t0x99, 0x0D, 0x4C, 0xE3, 0x82, 0xB3, 0xE3, 0x83,\n\t// Bytes 2ec0 - 2eff\n\t0xBC, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x4C, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE1,\n\t0x84, 0x8E, 0xE1, 0x85, 0xA1, 0xE1, 0x86, 0xB7,\n\t0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA9, 0x01, 0x4F,\n\t0xE3, 0x82, 0xA4, 0xE3, 0x83, 0x8B, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D,\n\t0x4F, 0xE3, 0x82, 0xB7, 0xE3, 0x83, 0xAA, 0xE3,\n\t// Bytes 2f00 - 2f3f\n\t0x83, 0xB3, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99,\n\t0x0D, 0x4F, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A,\n\t0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB7, 0xE3, 0x82,\n\t0x99, 0x0D, 0x4F, 0xE3, 0x83, 0x9B, 0xE3, 0x82,\n\t0x9A, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, 0xE3,\n\t0x82, 0x99, 0x0D, 0x52, 0xE3, 0x82, 0xA8, 0xE3,\n\t0x82, 0xB9, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xBC,\n\t0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, 0x52,\n\t// Bytes 2f40 - 2f7f\n\t0xE3, 0x83, 0x95, 0xE3, 0x82, 0xA1, 0xE3, 0x83,\n\t0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0xE3,\n\t0x82, 0x99, 0x0D, 0x86, 0xE0, 0xB3, 0x86, 0xE0,\n\t0xB3, 0x82, 0x01, 0x86, 0xE0, 0xB7, 0x99, 0xE0,\n\t0xB7, 0x8F, 0x01, 0x03, 0x3C, 0xCC, 0xB8, 0x05,\n\t0x03, 0x3D, 0xCC, 0xB8, 0x05, 0x03, 0x3E, 0xCC,\n\t0xB8, 0x05, 0x03, 0x41, 0xCC, 0x80, 0xC9, 0x03,\n\t0x41, 0xCC, 0x81, 0xC9, 0x03, 0x41, 0xCC, 0x83,\n\t// Bytes 2f80 - 2fbf\n\t0xC9, 0x03, 0x41, 0xCC, 0x84, 0xC9, 0x03, 0x41,\n\t0xCC, 0x89, 0xC9, 0x03, 0x41, 0xCC, 0x8C, 0xC9,\n\t0x03, 0x41, 0xCC, 0x8F, 0xC9, 0x03, 0x41, 0xCC,\n\t0x91, 0xC9, 0x03, 0x41, 0xCC, 0xA5, 0xB5, 0x03,\n\t0x41, 0xCC, 0xA8, 0xA5, 0x03, 0x42, 0xCC, 0x87,\n\t0xC9, 0x03, 0x42, 0xCC, 0xA3, 0xB5, 0x03, 0x42,\n\t0xCC, 0xB1, 0xB5, 0x03, 0x43, 0xCC, 0x81, 0xC9,\n\t0x03, 0x43, 0xCC, 0x82, 0xC9, 0x03, 0x43, 0xCC,\n\t// Bytes 2fc0 - 2fff\n\t0x87, 0xC9, 0x03, 0x43, 0xCC, 0x8C, 0xC9, 0x03,\n\t0x44, 0xCC, 0x87, 0xC9, 0x03, 0x44, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x44, 0xCC, 0xA3, 0xB5, 0x03, 0x44,\n\t0xCC, 0xA7, 0xA5, 0x03, 0x44, 0xCC, 0xAD, 0xB5,\n\t0x03, 0x44, 0xCC, 0xB1, 0xB5, 0x03, 0x45, 0xCC,\n\t0x80, 0xC9, 0x03, 0x45, 0xCC, 0x81, 0xC9, 0x03,\n\t0x45, 0xCC, 0x83, 0xC9, 0x03, 0x45, 0xCC, 0x86,\n\t0xC9, 0x03, 0x45, 0xCC, 0x87, 0xC9, 0x03, 0x45,\n\t// Bytes 3000 - 303f\n\t0xCC, 0x88, 0xC9, 0x03, 0x45, 0xCC, 0x89, 0xC9,\n\t0x03, 0x45, 0xCC, 0x8C, 0xC9, 0x03, 0x45, 0xCC,\n\t0x8F, 0xC9, 0x03, 0x45, 0xCC, 0x91, 0xC9, 0x03,\n\t0x45, 0xCC, 0xA8, 0xA5, 0x03, 0x45, 0xCC, 0xAD,\n\t0xB5, 0x03, 0x45, 0xCC, 0xB0, 0xB5, 0x03, 0x46,\n\t0xCC, 0x87, 0xC9, 0x03, 0x47, 0xCC, 0x81, 0xC9,\n\t0x03, 0x47, 0xCC, 0x82, 0xC9, 0x03, 0x47, 0xCC,\n\t0x84, 0xC9, 0x03, 0x47, 0xCC, 0x86, 0xC9, 0x03,\n\t// Bytes 3040 - 307f\n\t0x47, 0xCC, 0x87, 0xC9, 0x03, 0x47, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x47, 0xCC, 0xA7, 0xA5, 0x03, 0x48,\n\t0xCC, 0x82, 0xC9, 0x03, 0x48, 0xCC, 0x87, 0xC9,\n\t0x03, 0x48, 0xCC, 0x88, 0xC9, 0x03, 0x48, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x48, 0xCC, 0xA3, 0xB5, 0x03,\n\t0x48, 0xCC, 0xA7, 0xA5, 0x03, 0x48, 0xCC, 0xAE,\n\t0xB5, 0x03, 0x49, 0xCC, 0x80, 0xC9, 0x03, 0x49,\n\t0xCC, 0x81, 0xC9, 0x03, 0x49, 0xCC, 0x82, 0xC9,\n\t// Bytes 3080 - 30bf\n\t0x03, 0x49, 0xCC, 0x83, 0xC9, 0x03, 0x49, 0xCC,\n\t0x84, 0xC9, 0x03, 0x49, 0xCC, 0x86, 0xC9, 0x03,\n\t0x49, 0xCC, 0x87, 0xC9, 0x03, 0x49, 0xCC, 0x89,\n\t0xC9, 0x03, 0x49, 0xCC, 0x8C, 0xC9, 0x03, 0x49,\n\t0xCC, 0x8F, 0xC9, 0x03, 0x49, 0xCC, 0x91, 0xC9,\n\t0x03, 0x49, 0xCC, 0xA3, 0xB5, 0x03, 0x49, 0xCC,\n\t0xA8, 0xA5, 0x03, 0x49, 0xCC, 0xB0, 0xB5, 0x03,\n\t0x4A, 0xCC, 0x82, 0xC9, 0x03, 0x4B, 0xCC, 0x81,\n\t// Bytes 30c0 - 30ff\n\t0xC9, 0x03, 0x4B, 0xCC, 0x8C, 0xC9, 0x03, 0x4B,\n\t0xCC, 0xA3, 0xB5, 0x03, 0x4B, 0xCC, 0xA7, 0xA5,\n\t0x03, 0x4B, 0xCC, 0xB1, 0xB5, 0x03, 0x4C, 0xCC,\n\t0x81, 0xC9, 0x03, 0x4C, 0xCC, 0x8C, 0xC9, 0x03,\n\t0x4C, 0xCC, 0xA7, 0xA5, 0x03, 0x4C, 0xCC, 0xAD,\n\t0xB5, 0x03, 0x4C, 0xCC, 0xB1, 0xB5, 0x03, 0x4D,\n\t0xCC, 0x81, 0xC9, 0x03, 0x4D, 0xCC, 0x87, 0xC9,\n\t0x03, 0x4D, 0xCC, 0xA3, 0xB5, 0x03, 0x4E, 0xCC,\n\t// Bytes 3100 - 313f\n\t0x80, 0xC9, 0x03, 0x4E, 0xCC, 0x81, 0xC9, 0x03,\n\t0x4E, 0xCC, 0x83, 0xC9, 0x03, 0x4E, 0xCC, 0x87,\n\t0xC9, 0x03, 0x4E, 0xCC, 0x8C, 0xC9, 0x03, 0x4E,\n\t0xCC, 0xA3, 0xB5, 0x03, 0x4E, 0xCC, 0xA7, 0xA5,\n\t0x03, 0x4E, 0xCC, 0xAD, 0xB5, 0x03, 0x4E, 0xCC,\n\t0xB1, 0xB5, 0x03, 0x4F, 0xCC, 0x80, 0xC9, 0x03,\n\t0x4F, 0xCC, 0x81, 0xC9, 0x03, 0x4F, 0xCC, 0x86,\n\t0xC9, 0x03, 0x4F, 0xCC, 0x89, 0xC9, 0x03, 0x4F,\n\t// Bytes 3140 - 317f\n\t0xCC, 0x8B, 0xC9, 0x03, 0x4F, 0xCC, 0x8C, 0xC9,\n\t0x03, 0x4F, 0xCC, 0x8F, 0xC9, 0x03, 0x4F, 0xCC,\n\t0x91, 0xC9, 0x03, 0x50, 0xCC, 0x81, 0xC9, 0x03,\n\t0x50, 0xCC, 0x87, 0xC9, 0x03, 0x52, 0xCC, 0x81,\n\t0xC9, 0x03, 0x52, 0xCC, 0x87, 0xC9, 0x03, 0x52,\n\t0xCC, 0x8C, 0xC9, 0x03, 0x52, 0xCC, 0x8F, 0xC9,\n\t0x03, 0x52, 0xCC, 0x91, 0xC9, 0x03, 0x52, 0xCC,\n\t0xA7, 0xA5, 0x03, 0x52, 0xCC, 0xB1, 0xB5, 0x03,\n\t// Bytes 3180 - 31bf\n\t0x53, 0xCC, 0x82, 0xC9, 0x03, 0x53, 0xCC, 0x87,\n\t0xC9, 0x03, 0x53, 0xCC, 0xA6, 0xB5, 0x03, 0x53,\n\t0xCC, 0xA7, 0xA5, 0x03, 0x54, 0xCC, 0x87, 0xC9,\n\t0x03, 0x54, 0xCC, 0x8C, 0xC9, 0x03, 0x54, 0xCC,\n\t0xA3, 0xB5, 0x03, 0x54, 0xCC, 0xA6, 0xB5, 0x03,\n\t0x54, 0xCC, 0xA7, 0xA5, 0x03, 0x54, 0xCC, 0xAD,\n\t0xB5, 0x03, 0x54, 0xCC, 0xB1, 0xB5, 0x03, 0x55,\n\t0xCC, 0x80, 0xC9, 0x03, 0x55, 0xCC, 0x81, 0xC9,\n\t// Bytes 31c0 - 31ff\n\t0x03, 0x55, 0xCC, 0x82, 0xC9, 0x03, 0x55, 0xCC,\n\t0x86, 0xC9, 0x03, 0x55, 0xCC, 0x89, 0xC9, 0x03,\n\t0x55, 0xCC, 0x8A, 0xC9, 0x03, 0x55, 0xCC, 0x8B,\n\t0xC9, 0x03, 0x55, 0xCC, 0x8C, 0xC9, 0x03, 0x55,\n\t0xCC, 0x8F, 0xC9, 0x03, 0x55, 0xCC, 0x91, 0xC9,\n\t0x03, 0x55, 0xCC, 0xA3, 0xB5, 0x03, 0x55, 0xCC,\n\t0xA4, 0xB5, 0x03, 0x55, 0xCC, 0xA8, 0xA5, 0x03,\n\t0x55, 0xCC, 0xAD, 0xB5, 0x03, 0x55, 0xCC, 0xB0,\n\t// Bytes 3200 - 323f\n\t0xB5, 0x03, 0x56, 0xCC, 0x83, 0xC9, 0x03, 0x56,\n\t0xCC, 0xA3, 0xB5, 0x03, 0x57, 0xCC, 0x80, 0xC9,\n\t0x03, 0x57, 0xCC, 0x81, 0xC9, 0x03, 0x57, 0xCC,\n\t0x82, 0xC9, 0x03, 0x57, 0xCC, 0x87, 0xC9, 0x03,\n\t0x57, 0xCC, 0x88, 0xC9, 0x03, 0x57, 0xCC, 0xA3,\n\t0xB5, 0x03, 0x58, 0xCC, 0x87, 0xC9, 0x03, 0x58,\n\t0xCC, 0x88, 0xC9, 0x03, 0x59, 0xCC, 0x80, 0xC9,\n\t0x03, 0x59, 0xCC, 0x81, 0xC9, 0x03, 0x59, 0xCC,\n\t// Bytes 3240 - 327f\n\t0x82, 0xC9, 0x03, 0x59, 0xCC, 0x83, 0xC9, 0x03,\n\t0x59, 0xCC, 0x84, 0xC9, 0x03, 0x59, 0xCC, 0x87,\n\t0xC9, 0x03, 0x59, 0xCC, 0x88, 0xC9, 0x03, 0x59,\n\t0xCC, 0x89, 0xC9, 0x03, 0x59, 0xCC, 0xA3, 0xB5,\n\t0x03, 0x5A, 0xCC, 0x81, 0xC9, 0x03, 0x5A, 0xCC,\n\t0x82, 0xC9, 0x03, 0x5A, 0xCC, 0x87, 0xC9, 0x03,\n\t0x5A, 0xCC, 0x8C, 0xC9, 0x03, 0x5A, 0xCC, 0xA3,\n\t0xB5, 0x03, 0x5A, 0xCC, 0xB1, 0xB5, 0x03, 0x61,\n\t// Bytes 3280 - 32bf\n\t0xCC, 0x80, 0xC9, 0x03, 0x61, 0xCC, 0x81, 0xC9,\n\t0x03, 0x61, 0xCC, 0x83, 0xC9, 0x03, 0x61, 0xCC,\n\t0x84, 0xC9, 0x03, 0x61, 0xCC, 0x89, 0xC9, 0x03,\n\t0x61, 0xCC, 0x8C, 0xC9, 0x03, 0x61, 0xCC, 0x8F,\n\t0xC9, 0x03, 0x61, 0xCC, 0x91, 0xC9, 0x03, 0x61,\n\t0xCC, 0xA5, 0xB5, 0x03, 0x61, 0xCC, 0xA8, 0xA5,\n\t0x03, 0x62, 0xCC, 0x87, 0xC9, 0x03, 0x62, 0xCC,\n\t0xA3, 0xB5, 0x03, 0x62, 0xCC, 0xB1, 0xB5, 0x03,\n\t// Bytes 32c0 - 32ff\n\t0x63, 0xCC, 0x81, 0xC9, 0x03, 0x63, 0xCC, 0x82,\n\t0xC9, 0x03, 0x63, 0xCC, 0x87, 0xC9, 0x03, 0x63,\n\t0xCC, 0x8C, 0xC9, 0x03, 0x64, 0xCC, 0x87, 0xC9,\n\t0x03, 0x64, 0xCC, 0x8C, 0xC9, 0x03, 0x64, 0xCC,\n\t0xA3, 0xB5, 0x03, 0x64, 0xCC, 0xA7, 0xA5, 0x03,\n\t0x64, 0xCC, 0xAD, 0xB5, 0x03, 0x64, 0xCC, 0xB1,\n\t0xB5, 0x03, 0x65, 0xCC, 0x80, 0xC9, 0x03, 0x65,\n\t0xCC, 0x81, 0xC9, 0x03, 0x65, 0xCC, 0x83, 0xC9,\n\t// Bytes 3300 - 333f\n\t0x03, 0x65, 0xCC, 0x86, 0xC9, 0x03, 0x65, 0xCC,\n\t0x87, 0xC9, 0x03, 0x65, 0xCC, 0x88, 0xC9, 0x03,\n\t0x65, 0xCC, 0x89, 0xC9, 0x03, 0x65, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x65, 0xCC, 0x8F, 0xC9, 0x03, 0x65,\n\t0xCC, 0x91, 0xC9, 0x03, 0x65, 0xCC, 0xA8, 0xA5,\n\t0x03, 0x65, 0xCC, 0xAD, 0xB5, 0x03, 0x65, 0xCC,\n\t0xB0, 0xB5, 0x03, 0x66, 0xCC, 0x87, 0xC9, 0x03,\n\t0x67, 0xCC, 0x81, 0xC9, 0x03, 0x67, 0xCC, 0x82,\n\t// Bytes 3340 - 337f\n\t0xC9, 0x03, 0x67, 0xCC, 0x84, 0xC9, 0x03, 0x67,\n\t0xCC, 0x86, 0xC9, 0x03, 0x67, 0xCC, 0x87, 0xC9,\n\t0x03, 0x67, 0xCC, 0x8C, 0xC9, 0x03, 0x67, 0xCC,\n\t0xA7, 0xA5, 0x03, 0x68, 0xCC, 0x82, 0xC9, 0x03,\n\t0x68, 0xCC, 0x87, 0xC9, 0x03, 0x68, 0xCC, 0x88,\n\t0xC9, 0x03, 0x68, 0xCC, 0x8C, 0xC9, 0x03, 0x68,\n\t0xCC, 0xA3, 0xB5, 0x03, 0x68, 0xCC, 0xA7, 0xA5,\n\t0x03, 0x68, 0xCC, 0xAE, 0xB5, 0x03, 0x68, 0xCC,\n\t// Bytes 3380 - 33bf\n\t0xB1, 0xB5, 0x03, 0x69, 0xCC, 0x80, 0xC9, 0x03,\n\t0x69, 0xCC, 0x81, 0xC9, 0x03, 0x69, 0xCC, 0x82,\n\t0xC9, 0x03, 0x69, 0xCC, 0x83, 0xC9, 0x03, 0x69,\n\t0xCC, 0x84, 0xC9, 0x03, 0x69, 0xCC, 0x86, 0xC9,\n\t0x03, 0x69, 0xCC, 0x89, 0xC9, 0x03, 0x69, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x69, 0xCC, 0x8F, 0xC9, 0x03,\n\t0x69, 0xCC, 0x91, 0xC9, 0x03, 0x69, 0xCC, 0xA3,\n\t0xB5, 0x03, 0x69, 0xCC, 0xA8, 0xA5, 0x03, 0x69,\n\t// Bytes 33c0 - 33ff\n\t0xCC, 0xB0, 0xB5, 0x03, 0x6A, 0xCC, 0x82, 0xC9,\n\t0x03, 0x6A, 0xCC, 0x8C, 0xC9, 0x03, 0x6B, 0xCC,\n\t0x81, 0xC9, 0x03, 0x6B, 0xCC, 0x8C, 0xC9, 0x03,\n\t0x6B, 0xCC, 0xA3, 0xB5, 0x03, 0x6B, 0xCC, 0xA7,\n\t0xA5, 0x03, 0x6B, 0xCC, 0xB1, 0xB5, 0x03, 0x6C,\n\t0xCC, 0x81, 0xC9, 0x03, 0x6C, 0xCC, 0x8C, 0xC9,\n\t0x03, 0x6C, 0xCC, 0xA7, 0xA5, 0x03, 0x6C, 0xCC,\n\t0xAD, 0xB5, 0x03, 0x6C, 0xCC, 0xB1, 0xB5, 0x03,\n\t// Bytes 3400 - 343f\n\t0x6D, 0xCC, 0x81, 0xC9, 0x03, 0x6D, 0xCC, 0x87,\n\t0xC9, 0x03, 0x6D, 0xCC, 0xA3, 0xB5, 0x03, 0x6E,\n\t0xCC, 0x80, 0xC9, 0x03, 0x6E, 0xCC, 0x81, 0xC9,\n\t0x03, 0x6E, 0xCC, 0x83, 0xC9, 0x03, 0x6E, 0xCC,\n\t0x87, 0xC9, 0x03, 0x6E, 0xCC, 0x8C, 0xC9, 0x03,\n\t0x6E, 0xCC, 0xA3, 0xB5, 0x03, 0x6E, 0xCC, 0xA7,\n\t0xA5, 0x03, 0x6E, 0xCC, 0xAD, 0xB5, 0x03, 0x6E,\n\t0xCC, 0xB1, 0xB5, 0x03, 0x6F, 0xCC, 0x80, 0xC9,\n\t// Bytes 3440 - 347f\n\t0x03, 0x6F, 0xCC, 0x81, 0xC9, 0x03, 0x6F, 0xCC,\n\t0x86, 0xC9, 0x03, 0x6F, 0xCC, 0x89, 0xC9, 0x03,\n\t0x6F, 0xCC, 0x8B, 0xC9, 0x03, 0x6F, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x6F, 0xCC, 0x8F, 0xC9, 0x03, 0x6F,\n\t0xCC, 0x91, 0xC9, 0x03, 0x70, 0xCC, 0x81, 0xC9,\n\t0x03, 0x70, 0xCC, 0x87, 0xC9, 0x03, 0x72, 0xCC,\n\t0x81, 0xC9, 0x03, 0x72, 0xCC, 0x87, 0xC9, 0x03,\n\t0x72, 0xCC, 0x8C, 0xC9, 0x03, 0x72, 0xCC, 0x8F,\n\t// Bytes 3480 - 34bf\n\t0xC9, 0x03, 0x72, 0xCC, 0x91, 0xC9, 0x03, 0x72,\n\t0xCC, 0xA7, 0xA5, 0x03, 0x72, 0xCC, 0xB1, 0xB5,\n\t0x03, 0x73, 0xCC, 0x82, 0xC9, 0x03, 0x73, 0xCC,\n\t0x87, 0xC9, 0x03, 0x73, 0xCC, 0xA6, 0xB5, 0x03,\n\t0x73, 0xCC, 0xA7, 0xA5, 0x03, 0x74, 0xCC, 0x87,\n\t0xC9, 0x03, 0x74, 0xCC, 0x88, 0xC9, 0x03, 0x74,\n\t0xCC, 0x8C, 0xC9, 0x03, 0x74, 0xCC, 0xA3, 0xB5,\n\t0x03, 0x74, 0xCC, 0xA6, 0xB5, 0x03, 0x74, 0xCC,\n\t// Bytes 34c0 - 34ff\n\t0xA7, 0xA5, 0x03, 0x74, 0xCC, 0xAD, 0xB5, 0x03,\n\t0x74, 0xCC, 0xB1, 0xB5, 0x03, 0x75, 0xCC, 0x80,\n\t0xC9, 0x03, 0x75, 0xCC, 0x81, 0xC9, 0x03, 0x75,\n\t0xCC, 0x82, 0xC9, 0x03, 0x75, 0xCC, 0x86, 0xC9,\n\t0x03, 0x75, 0xCC, 0x89, 0xC9, 0x03, 0x75, 0xCC,\n\t0x8A, 0xC9, 0x03, 0x75, 0xCC, 0x8B, 0xC9, 0x03,\n\t0x75, 0xCC, 0x8C, 0xC9, 0x03, 0x75, 0xCC, 0x8F,\n\t0xC9, 0x03, 0x75, 0xCC, 0x91, 0xC9, 0x03, 0x75,\n\t// Bytes 3500 - 353f\n\t0xCC, 0xA3, 0xB5, 0x03, 0x75, 0xCC, 0xA4, 0xB5,\n\t0x03, 0x75, 0xCC, 0xA8, 0xA5, 0x03, 0x75, 0xCC,\n\t0xAD, 0xB5, 0x03, 0x75, 0xCC, 0xB0, 0xB5, 0x03,\n\t0x76, 0xCC, 0x83, 0xC9, 0x03, 0x76, 0xCC, 0xA3,\n\t0xB5, 0x03, 0x77, 0xCC, 0x80, 0xC9, 0x03, 0x77,\n\t0xCC, 0x81, 0xC9, 0x03, 0x77, 0xCC, 0x82, 0xC9,\n\t0x03, 0x77, 0xCC, 0x87, 0xC9, 0x03, 0x77, 0xCC,\n\t0x88, 0xC9, 0x03, 0x77, 0xCC, 0x8A, 0xC9, 0x03,\n\t// Bytes 3540 - 357f\n\t0x77, 0xCC, 0xA3, 0xB5, 0x03, 0x78, 0xCC, 0x87,\n\t0xC9, 0x03, 0x78, 0xCC, 0x88, 0xC9, 0x03, 0x79,\n\t0xCC, 0x80, 0xC9, 0x03, 0x79, 0xCC, 0x81, 0xC9,\n\t0x03, 0x79, 0xCC, 0x82, 0xC9, 0x03, 0x79, 0xCC,\n\t0x83, 0xC9, 0x03, 0x79, 0xCC, 0x84, 0xC9, 0x03,\n\t0x79, 0xCC, 0x87, 0xC9, 0x03, 0x79, 0xCC, 0x88,\n\t0xC9, 0x03, 0x79, 0xCC, 0x89, 0xC9, 0x03, 0x79,\n\t0xCC, 0x8A, 0xC9, 0x03, 0x79, 0xCC, 0xA3, 0xB5,\n\t// Bytes 3580 - 35bf\n\t0x03, 0x7A, 0xCC, 0x81, 0xC9, 0x03, 0x7A, 0xCC,\n\t0x82, 0xC9, 0x03, 0x7A, 0xCC, 0x87, 0xC9, 0x03,\n\t0x7A, 0xCC, 0x8C, 0xC9, 0x03, 0x7A, 0xCC, 0xA3,\n\t0xB5, 0x03, 0x7A, 0xCC, 0xB1, 0xB5, 0x04, 0xC2,\n\t0xA8, 0xCC, 0x80, 0xCA, 0x04, 0xC2, 0xA8, 0xCC,\n\t0x81, 0xCA, 0x04, 0xC2, 0xA8, 0xCD, 0x82, 0xCA,\n\t0x04, 0xC3, 0x86, 0xCC, 0x81, 0xC9, 0x04, 0xC3,\n\t0x86, 0xCC, 0x84, 0xC9, 0x04, 0xC3, 0x98, 0xCC,\n\t// Bytes 35c0 - 35ff\n\t0x81, 0xC9, 0x04, 0xC3, 0xA6, 0xCC, 0x81, 0xC9,\n\t0x04, 0xC3, 0xA6, 0xCC, 0x84, 0xC9, 0x04, 0xC3,\n\t0xB8, 0xCC, 0x81, 0xC9, 0x04, 0xC5, 0xBF, 0xCC,\n\t0x87, 0xC9, 0x04, 0xC6, 0xB7, 0xCC, 0x8C, 0xC9,\n\t0x04, 0xCA, 0x92, 0xCC, 0x8C, 0xC9, 0x04, 0xCE,\n\t0x91, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x91, 0xCC,\n\t0x81, 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x84, 0xC9,\n\t0x04, 0xCE, 0x91, 0xCC, 0x86, 0xC9, 0x04, 0xCE,\n\t// Bytes 3600 - 363f\n\t0x91, 0xCD, 0x85, 0xD9, 0x04, 0xCE, 0x95, 0xCC,\n\t0x80, 0xC9, 0x04, 0xCE, 0x95, 0xCC, 0x81, 0xC9,\n\t0x04, 0xCE, 0x97, 0xCC, 0x80, 0xC9, 0x04, 0xCE,\n\t0x97, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x97, 0xCD,\n\t0x85, 0xD9, 0x04, 0xCE, 0x99, 0xCC, 0x80, 0xC9,\n\t0x04, 0xCE, 0x99, 0xCC, 0x81, 0xC9, 0x04, 0xCE,\n\t0x99, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0x99, 0xCC,\n\t0x86, 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x88, 0xC9,\n\t// Bytes 3640 - 367f\n\t0x04, 0xCE, 0x9F, 0xCC, 0x80, 0xC9, 0x04, 0xCE,\n\t0x9F, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xA1, 0xCC,\n\t0x94, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x80, 0xC9,\n\t0x04, 0xCE, 0xA5, 0xCC, 0x81, 0xC9, 0x04, 0xCE,\n\t0xA5, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xA5, 0xCC,\n\t0x86, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x88, 0xC9,\n\t0x04, 0xCE, 0xA9, 0xCC, 0x80, 0xC9, 0x04, 0xCE,\n\t0xA9, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xA9, 0xCD,\n\t// Bytes 3680 - 36bf\n\t0x85, 0xD9, 0x04, 0xCE, 0xB1, 0xCC, 0x84, 0xC9,\n\t0x04, 0xCE, 0xB1, 0xCC, 0x86, 0xC9, 0x04, 0xCE,\n\t0xB1, 0xCD, 0x85, 0xD9, 0x04, 0xCE, 0xB5, 0xCC,\n\t0x80, 0xC9, 0x04, 0xCE, 0xB5, 0xCC, 0x81, 0xC9,\n\t0x04, 0xCE, 0xB7, 0xCD, 0x85, 0xD9, 0x04, 0xCE,\n\t0xB9, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xB9, 0xCC,\n\t0x81, 0xC9, 0x04, 0xCE, 0xB9, 0xCC, 0x84, 0xC9,\n\t0x04, 0xCE, 0xB9, 0xCC, 0x86, 0xC9, 0x04, 0xCE,\n\t// Bytes 36c0 - 36ff\n\t0xB9, 0xCD, 0x82, 0xC9, 0x04, 0xCE, 0xBF, 0xCC,\n\t0x80, 0xC9, 0x04, 0xCE, 0xBF, 0xCC, 0x81, 0xC9,\n\t0x04, 0xCF, 0x81, 0xCC, 0x93, 0xC9, 0x04, 0xCF,\n\t0x81, 0xCC, 0x94, 0xC9, 0x04, 0xCF, 0x85, 0xCC,\n\t0x80, 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x81, 0xC9,\n\t0x04, 0xCF, 0x85, 0xCC, 0x84, 0xC9, 0x04, 0xCF,\n\t0x85, 0xCC, 0x86, 0xC9, 0x04, 0xCF, 0x85, 0xCD,\n\t0x82, 0xC9, 0x04, 0xCF, 0x89, 0xCD, 0x85, 0xD9,\n\t// Bytes 3700 - 373f\n\t0x04, 0xCF, 0x92, 0xCC, 0x81, 0xC9, 0x04, 0xCF,\n\t0x92, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x86, 0xCC,\n\t0x88, 0xC9, 0x04, 0xD0, 0x90, 0xCC, 0x86, 0xC9,\n\t0x04, 0xD0, 0x90, 0xCC, 0x88, 0xC9, 0x04, 0xD0,\n\t0x93, 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0x95, 0xCC,\n\t0x80, 0xC9, 0x04, 0xD0, 0x95, 0xCC, 0x86, 0xC9,\n\t0x04, 0xD0, 0x95, 0xCC, 0x88, 0xC9, 0x04, 0xD0,\n\t0x96, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x96, 0xCC,\n\t// Bytes 3740 - 377f\n\t0x88, 0xC9, 0x04, 0xD0, 0x97, 0xCC, 0x88, 0xC9,\n\t0x04, 0xD0, 0x98, 0xCC, 0x80, 0xC9, 0x04, 0xD0,\n\t0x98, 0xCC, 0x84, 0xC9, 0x04, 0xD0, 0x98, 0xCC,\n\t0x86, 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x88, 0xC9,\n\t0x04, 0xD0, 0x9A, 0xCC, 0x81, 0xC9, 0x04, 0xD0,\n\t0x9E, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xA3, 0xCC,\n\t0x84, 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x86, 0xC9,\n\t0x04, 0xD0, 0xA3, 0xCC, 0x88, 0xC9, 0x04, 0xD0,\n\t// Bytes 3780 - 37bf\n\t0xA3, 0xCC, 0x8B, 0xC9, 0x04, 0xD0, 0xA7, 0xCC,\n\t0x88, 0xC9, 0x04, 0xD0, 0xAB, 0xCC, 0x88, 0xC9,\n\t0x04, 0xD0, 0xAD, 0xCC, 0x88, 0xC9, 0x04, 0xD0,\n\t0xB0, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB0, 0xCC,\n\t0x88, 0xC9, 0x04, 0xD0, 0xB3, 0xCC, 0x81, 0xC9,\n\t0x04, 0xD0, 0xB5, 0xCC, 0x80, 0xC9, 0x04, 0xD0,\n\t0xB5, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB5, 0xCC,\n\t0x88, 0xC9, 0x04, 0xD0, 0xB6, 0xCC, 0x86, 0xC9,\n\t// Bytes 37c0 - 37ff\n\t0x04, 0xD0, 0xB6, 0xCC, 0x88, 0xC9, 0x04, 0xD0,\n\t0xB7, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB8, 0xCC,\n\t0x80, 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x84, 0xC9,\n\t0x04, 0xD0, 0xB8, 0xCC, 0x86, 0xC9, 0x04, 0xD0,\n\t0xB8, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xBA, 0xCC,\n\t0x81, 0xC9, 0x04, 0xD0, 0xBE, 0xCC, 0x88, 0xC9,\n\t0x04, 0xD1, 0x83, 0xCC, 0x84, 0xC9, 0x04, 0xD1,\n\t0x83, 0xCC, 0x86, 0xC9, 0x04, 0xD1, 0x83, 0xCC,\n\t// Bytes 3800 - 383f\n\t0x88, 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x8B, 0xC9,\n\t0x04, 0xD1, 0x87, 0xCC, 0x88, 0xC9, 0x04, 0xD1,\n\t0x8B, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x8D, 0xCC,\n\t0x88, 0xC9, 0x04, 0xD1, 0x96, 0xCC, 0x88, 0xC9,\n\t0x04, 0xD1, 0xB4, 0xCC, 0x8F, 0xC9, 0x04, 0xD1,\n\t0xB5, 0xCC, 0x8F, 0xC9, 0x04, 0xD3, 0x98, 0xCC,\n\t0x88, 0xC9, 0x04, 0xD3, 0x99, 0xCC, 0x88, 0xC9,\n\t0x04, 0xD3, 0xA8, 0xCC, 0x88, 0xC9, 0x04, 0xD3,\n\t// Bytes 3840 - 387f\n\t0xA9, 0xCC, 0x88, 0xC9, 0x04, 0xD8, 0xA7, 0xD9,\n\t0x93, 0xC9, 0x04, 0xD8, 0xA7, 0xD9, 0x94, 0xC9,\n\t0x04, 0xD8, 0xA7, 0xD9, 0x95, 0xB5, 0x04, 0xD9,\n\t0x88, 0xD9, 0x94, 0xC9, 0x04, 0xD9, 0x8A, 0xD9,\n\t0x94, 0xC9, 0x04, 0xDB, 0x81, 0xD9, 0x94, 0xC9,\n\t0x04, 0xDB, 0x92, 0xD9, 0x94, 0xC9, 0x04, 0xDB,\n\t0x95, 0xD9, 0x94, 0xC9, 0x05, 0x41, 0xCC, 0x82,\n\t0xCC, 0x80, 0xCA, 0x05, 0x41, 0xCC, 0x82, 0xCC,\n\t// Bytes 3880 - 38bf\n\t0x81, 0xCA, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x83,\n\t0xCA, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x89, 0xCA,\n\t0x05, 0x41, 0xCC, 0x86, 0xCC, 0x80, 0xCA, 0x05,\n\t0x41, 0xCC, 0x86, 0xCC, 0x81, 0xCA, 0x05, 0x41,\n\t0xCC, 0x86, 0xCC, 0x83, 0xCA, 0x05, 0x41, 0xCC,\n\t0x86, 0xCC, 0x89, 0xCA, 0x05, 0x41, 0xCC, 0x87,\n\t0xCC, 0x84, 0xCA, 0x05, 0x41, 0xCC, 0x88, 0xCC,\n\t0x84, 0xCA, 0x05, 0x41, 0xCC, 0x8A, 0xCC, 0x81,\n\t// Bytes 38c0 - 38ff\n\t0xCA, 0x05, 0x41, 0xCC, 0xA3, 0xCC, 0x82, 0xCA,\n\t0x05, 0x41, 0xCC, 0xA3, 0xCC, 0x86, 0xCA, 0x05,\n\t0x43, 0xCC, 0xA7, 0xCC, 0x81, 0xCA, 0x05, 0x45,\n\t0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05, 0x45, 0xCC,\n\t0x82, 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, 0x82,\n\t0xCC, 0x83, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC,\n\t0x89, 0xCA, 0x05, 0x45, 0xCC, 0x84, 0xCC, 0x80,\n\t0xCA, 0x05, 0x45, 0xCC, 0x84, 0xCC, 0x81, 0xCA,\n\t// Bytes 3900 - 393f\n\t0x05, 0x45, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05,\n\t0x45, 0xCC, 0xA7, 0xCC, 0x86, 0xCA, 0x05, 0x49,\n\t0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, 0x4C, 0xCC,\n\t0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x4F, 0xCC, 0x82,\n\t0xCC, 0x80, 0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC,\n\t0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x83,\n\t0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x89, 0xCA,\n\t0x05, 0x4F, 0xCC, 0x83, 0xCC, 0x81, 0xCA, 0x05,\n\t// Bytes 3940 - 397f\n\t0x4F, 0xCC, 0x83, 0xCC, 0x84, 0xCA, 0x05, 0x4F,\n\t0xCC, 0x83, 0xCC, 0x88, 0xCA, 0x05, 0x4F, 0xCC,\n\t0x84, 0xCC, 0x80, 0xCA, 0x05, 0x4F, 0xCC, 0x84,\n\t0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x87, 0xCC,\n\t0x84, 0xCA, 0x05, 0x4F, 0xCC, 0x88, 0xCC, 0x84,\n\t0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0x80, 0xCA,\n\t0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0x81, 0xCA, 0x05,\n\t0x4F, 0xCC, 0x9B, 0xCC, 0x83, 0xCA, 0x05, 0x4F,\n\t// Bytes 3980 - 39bf\n\t0xCC, 0x9B, 0xCC, 0x89, 0xCA, 0x05, 0x4F, 0xCC,\n\t0x9B, 0xCC, 0xA3, 0xB6, 0x05, 0x4F, 0xCC, 0xA3,\n\t0xCC, 0x82, 0xCA, 0x05, 0x4F, 0xCC, 0xA8, 0xCC,\n\t0x84, 0xCA, 0x05, 0x52, 0xCC, 0xA3, 0xCC, 0x84,\n\t0xCA, 0x05, 0x53, 0xCC, 0x81, 0xCC, 0x87, 0xCA,\n\t0x05, 0x53, 0xCC, 0x8C, 0xCC, 0x87, 0xCA, 0x05,\n\t0x53, 0xCC, 0xA3, 0xCC, 0x87, 0xCA, 0x05, 0x55,\n\t0xCC, 0x83, 0xCC, 0x81, 0xCA, 0x05, 0x55, 0xCC,\n\t// Bytes 39c0 - 39ff\n\t0x84, 0xCC, 0x88, 0xCA, 0x05, 0x55, 0xCC, 0x88,\n\t0xCC, 0x80, 0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC,\n\t0x81, 0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x84,\n\t0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x8C, 0xCA,\n\t0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05,\n\t0x55, 0xCC, 0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x55,\n\t0xCC, 0x9B, 0xCC, 0x83, 0xCA, 0x05, 0x55, 0xCC,\n\t0x9B, 0xCC, 0x89, 0xCA, 0x05, 0x55, 0xCC, 0x9B,\n\t// Bytes 3a00 - 3a3f\n\t0xCC, 0xA3, 0xB6, 0x05, 0x61, 0xCC, 0x82, 0xCC,\n\t0x80, 0xCA, 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x81,\n\t0xCA, 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x83, 0xCA,\n\t0x05, 0x61, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05,\n\t0x61, 0xCC, 0x86, 0xCC, 0x80, 0xCA, 0x05, 0x61,\n\t0xCC, 0x86, 0xCC, 0x81, 0xCA, 0x05, 0x61, 0xCC,\n\t0x86, 0xCC, 0x83, 0xCA, 0x05, 0x61, 0xCC, 0x86,\n\t0xCC, 0x89, 0xCA, 0x05, 0x61, 0xCC, 0x87, 0xCC,\n\t// Bytes 3a40 - 3a7f\n\t0x84, 0xCA, 0x05, 0x61, 0xCC, 0x88, 0xCC, 0x84,\n\t0xCA, 0x05, 0x61, 0xCC, 0x8A, 0xCC, 0x81, 0xCA,\n\t0x05, 0x61, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05,\n\t0x61, 0xCC, 0xA3, 0xCC, 0x86, 0xCA, 0x05, 0x63,\n\t0xCC, 0xA7, 0xCC, 0x81, 0xCA, 0x05, 0x65, 0xCC,\n\t0x82, 0xCC, 0x80, 0xCA, 0x05, 0x65, 0xCC, 0x82,\n\t0xCC, 0x81, 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC,\n\t0x83, 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x89,\n\t// Bytes 3a80 - 3abf\n\t0xCA, 0x05, 0x65, 0xCC, 0x84, 0xCC, 0x80, 0xCA,\n\t0x05, 0x65, 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05,\n\t0x65, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x65,\n\t0xCC, 0xA7, 0xCC, 0x86, 0xCA, 0x05, 0x69, 0xCC,\n\t0x88, 0xCC, 0x81, 0xCA, 0x05, 0x6C, 0xCC, 0xA3,\n\t0xCC, 0x84, 0xCA, 0x05, 0x6F, 0xCC, 0x82, 0xCC,\n\t0x80, 0xCA, 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x81,\n\t0xCA, 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x83, 0xCA,\n\t// Bytes 3ac0 - 3aff\n\t0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05,\n\t0x6F, 0xCC, 0x83, 0xCC, 0x81, 0xCA, 0x05, 0x6F,\n\t0xCC, 0x83, 0xCC, 0x84, 0xCA, 0x05, 0x6F, 0xCC,\n\t0x83, 0xCC, 0x88, 0xCA, 0x05, 0x6F, 0xCC, 0x84,\n\t0xCC, 0x80, 0xCA, 0x05, 0x6F, 0xCC, 0x84, 0xCC,\n\t0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x87, 0xCC, 0x84,\n\t0xCA, 0x05, 0x6F, 0xCC, 0x88, 0xCC, 0x84, 0xCA,\n\t0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05,\n\t// Bytes 3b00 - 3b3f\n\t0x6F, 0xCC, 0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x6F,\n\t0xCC, 0x9B, 0xCC, 0x83, 0xCA, 0x05, 0x6F, 0xCC,\n\t0x9B, 0xCC, 0x89, 0xCA, 0x05, 0x6F, 0xCC, 0x9B,\n\t0xCC, 0xA3, 0xB6, 0x05, 0x6F, 0xCC, 0xA3, 0xCC,\n\t0x82, 0xCA, 0x05, 0x6F, 0xCC, 0xA8, 0xCC, 0x84,\n\t0xCA, 0x05, 0x72, 0xCC, 0xA3, 0xCC, 0x84, 0xCA,\n\t0x05, 0x73, 0xCC, 0x81, 0xCC, 0x87, 0xCA, 0x05,\n\t0x73, 0xCC, 0x8C, 0xCC, 0x87, 0xCA, 0x05, 0x73,\n\t// Bytes 3b40 - 3b7f\n\t0xCC, 0xA3, 0xCC, 0x87, 0xCA, 0x05, 0x75, 0xCC,\n\t0x83, 0xCC, 0x81, 0xCA, 0x05, 0x75, 0xCC, 0x84,\n\t0xCC, 0x88, 0xCA, 0x05, 0x75, 0xCC, 0x88, 0xCC,\n\t0x80, 0xCA, 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x81,\n\t0xCA, 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x84, 0xCA,\n\t0x05, 0x75, 0xCC, 0x88, 0xCC, 0x8C, 0xCA, 0x05,\n\t0x75, 0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x75,\n\t0xCC, 0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x75, 0xCC,\n\t// Bytes 3b80 - 3bbf\n\t0x9B, 0xCC, 0x83, 0xCA, 0x05, 0x75, 0xCC, 0x9B,\n\t0xCC, 0x89, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC,\n\t0xA3, 0xB6, 0x05, 0xE1, 0xBE, 0xBF, 0xCC, 0x80,\n\t0xCA, 0x05, 0xE1, 0xBE, 0xBF, 0xCC, 0x81, 0xCA,\n\t0x05, 0xE1, 0xBE, 0xBF, 0xCD, 0x82, 0xCA, 0x05,\n\t0xE1, 0xBF, 0xBE, 0xCC, 0x80, 0xCA, 0x05, 0xE1,\n\t0xBF, 0xBE, 0xCC, 0x81, 0xCA, 0x05, 0xE1, 0xBF,\n\t0xBE, 0xCD, 0x82, 0xCA, 0x05, 0xE2, 0x86, 0x90,\n\t// Bytes 3bc0 - 3bff\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x86, 0x92, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x86, 0x94, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x87, 0x90, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x87, 0x92, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x87, 0x94, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x88, 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88,\n\t0x88, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x8B,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0xA3, 0xCC,\n\t// Bytes 3c00 - 3c3f\n\t0xB8, 0x05, 0x05, 0xE2, 0x88, 0xA5, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x88, 0xBC, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x89, 0x83, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x89, 0x85, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x89, 0x88, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89,\n\t0x8D, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xA1,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xA4, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x89, 0xA5, 0xCC, 0xB8,\n\t// Bytes 3c40 - 3c7f\n\t0x05, 0x05, 0xE2, 0x89, 0xB2, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x89, 0xB3, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x89, 0xB6, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x89, 0xB7, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89,\n\t0xBA, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBB,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBC, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBD, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x8A, 0x82, 0xCC, 0xB8, 0x05,\n\t// Bytes 3c80 - 3cbf\n\t0x05, 0xE2, 0x8A, 0x83, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x8A, 0x86, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x8A, 0x87, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,\n\t0x91, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x92,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xA2, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xA8, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x8A, 0xA9, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x8A, 0xAB, 0xCC, 0xB8, 0x05, 0x05,\n\t// Bytes 3cc0 - 3cff\n\t0xE2, 0x8A, 0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x8A, 0xB3, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,\n\t0xB4, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB5,\n\t0xCC, 0xB8, 0x05, 0x06, 0xCE, 0x91, 0xCC, 0x93,\n\t0xCD, 0x85, 0xDA, 0x06, 0xCE, 0x91, 0xCC, 0x94,\n\t0xCD, 0x85, 0xDA, 0x06, 0xCE, 0x95, 0xCC, 0x93,\n\t0xCC, 0x80, 0xCA, 0x06, 0xCE, 0x95, 0xCC, 0x93,\n\t0xCC, 0x81, 0xCA, 0x06, 0xCE, 0x95, 0xCC, 0x94,\n\t// Bytes 3d00 - 3d3f\n\t0xCC, 0x80, 0xCA, 0x06, 0xCE, 0x95, 0xCC, 0x94,\n\t0xCC, 0x81, 0xCA, 0x06, 0xCE, 0x97, 0xCC, 0x93,\n\t0xCD, 0x85, 0xDA, 0x06, 0xCE, 0x97, 0xCC, 0x94,\n\t0xCD, 0x85, 0xDA, 0x06, 0xCE, 0x99, 0xCC, 0x93,\n\t0xCC, 0x80, 0xCA, 0x06, 0xCE, 0x99, 0xCC, 0x93,\n\t0xCC, 0x81, 0xCA, 0x06, 0xCE, 0x99, 0xCC, 0x93,\n\t0xCD, 0x82, 0xCA, 0x06, 0xCE, 0x99, 0xCC, 0x94,\n\t0xCC, 0x80, 0xCA, 0x06, 0xCE, 0x99, 0xCC, 0x94,\n\t// Bytes 3d40 - 3d7f\n\t0xCC, 0x81, 0xCA, 0x06, 0xCE, 0x99, 0xCC, 0x94,\n\t0xCD, 0x82, 0xCA, 0x06, 0xCE, 0x9F, 0xCC, 0x93,\n\t0xCC, 0x80, 0xCA, 0x06, 0xCE, 0x9F, 0xCC, 0x93,\n\t0xCC, 0x81, 0xCA, 0x06, 0xCE, 0x9F, 0xCC, 0x94,\n\t0xCC, 0x80, 0xCA, 0x06, 0xCE, 0x9F, 0xCC, 0x94,\n\t0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xA5, 0xCC, 0x94,\n\t0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xA5, 0xCC, 0x94,\n\t0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xA5, 0xCC, 0x94,\n\t// Bytes 3d80 - 3dbf\n\t0xCD, 0x82, 0xCA, 0x06, 0xCE, 0xA9, 0xCC, 0x93,\n\t0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xA9, 0xCC, 0x94,\n\t0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB1, 0xCC, 0x80,\n\t0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB1, 0xCC, 0x81,\n\t0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB1, 0xCC, 0x93,\n\t0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB1, 0xCC, 0x94,\n\t0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB1, 0xCD, 0x82,\n\t0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB5, 0xCC, 0x93,\n\t// Bytes 3dc0 - 3dff\n\t0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xB5, 0xCC, 0x93,\n\t0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xB5, 0xCC, 0x94,\n\t0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xB5, 0xCC, 0x94,\n\t0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xB7, 0xCC, 0x80,\n\t0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB7, 0xCC, 0x81,\n\t0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB7, 0xCC, 0x93,\n\t0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB7, 0xCC, 0x94,\n\t0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB7, 0xCD, 0x82,\n\t// Bytes 3e00 - 3e3f\n\t0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB9, 0xCC, 0x88,\n\t0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x88,\n\t0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x88,\n\t0xCD, 0x82, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x93,\n\t0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x93,\n\t0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x93,\n\t0xCD, 0x82, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x94,\n\t0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x94,\n\t// Bytes 3e40 - 3e7f\n\t0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x94,\n\t0xCD, 0x82, 0xCA, 0x06, 0xCE, 0xBF, 0xCC, 0x93,\n\t0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xBF, 0xCC, 0x93,\n\t0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xBF, 0xCC, 0x94,\n\t0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xBF, 0xCC, 0x94,\n\t0xCC, 0x81, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x88,\n\t0xCC, 0x80, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x88,\n\t0xCC, 0x81, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x88,\n\t// Bytes 3e80 - 3ebf\n\t0xCD, 0x82, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x93,\n\t0xCC, 0x80, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x93,\n\t0xCC, 0x81, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x93,\n\t0xCD, 0x82, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x94,\n\t0xCC, 0x80, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x94,\n\t0xCC, 0x81, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x94,\n\t0xCD, 0x82, 0xCA, 0x06, 0xCF, 0x89, 0xCC, 0x80,\n\t0xCD, 0x85, 0xDA, 0x06, 0xCF, 0x89, 0xCC, 0x81,\n\t// Bytes 3ec0 - 3eff\n\t0xCD, 0x85, 0xDA, 0x06, 0xCF, 0x89, 0xCC, 0x93,\n\t0xCD, 0x85, 0xDA, 0x06, 0xCF, 0x89, 0xCC, 0x94,\n\t0xCD, 0x85, 0xDA, 0x06, 0xCF, 0x89, 0xCD, 0x82,\n\t0xCD, 0x85, 0xDA, 0x06, 0xE0, 0xA4, 0xA8, 0xE0,\n\t0xA4, 0xBC, 0x09, 0x06, 0xE0, 0xA4, 0xB0, 0xE0,\n\t0xA4, 0xBC, 0x09, 0x06, 0xE0, 0xA4, 0xB3, 0xE0,\n\t0xA4, 0xBC, 0x09, 0x06, 0xE0, 0xB1, 0x86, 0xE0,\n\t0xB1, 0x96, 0x85, 0x06, 0xE0, 0xB7, 0x99, 0xE0,\n\t// Bytes 3f00 - 3f3f\n\t0xB7, 0x8A, 0x11, 0x06, 0xE3, 0x81, 0x86, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x8B, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x8D, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x8F, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x91, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x93, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x95, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x97, 0xE3,\n\t// Bytes 3f40 - 3f7f\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x99, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x9B, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x9D, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x9F, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xA1, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xA4, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xA6, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xA8, 0xE3,\n\t// Bytes 3f80 - 3fbf\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xAF, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xAF, 0xE3,\n\t0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x81, 0xB2, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xB2, 0xE3,\n\t0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x81, 0xB5, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xB5, 0xE3,\n\t0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x81, 0xB8, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xB8, 0xE3,\n\t// Bytes 3fc0 - 3fff\n\t0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x81, 0xBB, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xBB, 0xE3,\n\t0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x82, 0x9D, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xA6, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xAB, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xAD, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xAF, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xB1, 0xE3,\n\t// Bytes 4000 - 403f\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xB3, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xB5, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xB7, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xB9, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xBB, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xBD, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xBF, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x81, 0xE3,\n\t// Bytes 4040 - 407f\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x84, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x86, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x88, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x8F, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x8F, 0xE3,\n\t0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x83, 0x92, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x92, 0xE3,\n\t0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x83, 0x95, 0xE3,\n\t// Bytes 4080 - 40bf\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x95, 0xE3,\n\t0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x83, 0x98, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x98, 0xE3,\n\t0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x83, 0x9B, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x9B, 0xE3,\n\t0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x83, 0xAF, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0xB0, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0xB1, 0xE3,\n\t// Bytes 40c0 - 40ff\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0xB2, 0xE3,\n\t0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0xBD, 0xE3,\n\t0x82, 0x99, 0x0D, 0x08, 0xCE, 0x91, 0xCC, 0x93,\n\t0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91,\n\t0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08,\n\t0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85,\n\t0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x80,\n\t0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x94,\n\t// Bytes 4100 - 413f\n\t0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91,\n\t0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08,\n\t0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85,\n\t0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x81,\n\t0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x93,\n\t0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97,\n\t0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08,\n\t0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85,\n\t// Bytes 4140 - 417f\n\t0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x82,\n\t0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x93,\n\t0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9,\n\t0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08,\n\t0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85,\n\t0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x80,\n\t0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x94,\n\t0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9,\n\t// Bytes 4180 - 41bf\n\t0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08,\n\t0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85,\n\t0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x81,\n\t0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x93,\n\t0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1,\n\t0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08,\n\t0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85,\n\t0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x82,\n\t// Bytes 41c0 - 41ff\n\t0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x93,\n\t0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7,\n\t0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08,\n\t0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85,\n\t0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x80,\n\t0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x94,\n\t0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7,\n\t0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08,\n\t// Bytes 4200 - 423f\n\t0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85,\n\t0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x81,\n\t0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x93,\n\t0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89,\n\t0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08,\n\t0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85,\n\t0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x82,\n\t0xCD, 0x85, 0xDB, 0x08, 0xF0, 0x91, 0x82, 0x99,\n\t// Bytes 4240 - 427f\n\t0xF0, 0x91, 0x82, 0xBA, 0x09, 0x08, 0xF0, 0x91,\n\t0x82, 0x9B, 0xF0, 0x91, 0x82, 0xBA, 0x09, 0x08,\n\t0xF0, 0x91, 0x82, 0xA5, 0xF0, 0x91, 0x82, 0xBA,\n\t0x09, 0x42, 0xC2, 0xB4, 0x01, 0x43, 0x20, 0xCC,\n\t0x81, 0xC9, 0x43, 0x20, 0xCC, 0x83, 0xC9, 0x43,\n\t0x20, 0xCC, 0x84, 0xC9, 0x43, 0x20, 0xCC, 0x85,\n\t0xC9, 0x43, 0x20, 0xCC, 0x86, 0xC9, 0x43, 0x20,\n\t0xCC, 0x87, 0xC9, 0x43, 0x20, 0xCC, 0x88, 0xC9,\n\t// Bytes 4280 - 42bf\n\t0x43, 0x20, 0xCC, 0x8A, 0xC9, 0x43, 0x20, 0xCC,\n\t0x8B, 0xC9, 0x43, 0x20, 0xCC, 0x93, 0xC9, 0x43,\n\t0x20, 0xCC, 0x94, 0xC9, 0x43, 0x20, 0xCC, 0xA7,\n\t0xA5, 0x43, 0x20, 0xCC, 0xA8, 0xA5, 0x43, 0x20,\n\t0xCC, 0xB3, 0xB5, 0x43, 0x20, 0xCD, 0x82, 0xC9,\n\t0x43, 0x20, 0xCD, 0x85, 0xD9, 0x43, 0x20, 0xD9,\n\t0x8B, 0x59, 0x43, 0x20, 0xD9, 0x8C, 0x5D, 0x43,\n\t0x20, 0xD9, 0x8D, 0x61, 0x43, 0x20, 0xD9, 0x8E,\n\t// Bytes 42c0 - 42ff\n\t0x65, 0x43, 0x20, 0xD9, 0x8F, 0x69, 0x43, 0x20,\n\t0xD9, 0x90, 0x6D, 0x43, 0x20, 0xD9, 0x91, 0x71,\n\t0x43, 0x20, 0xD9, 0x92, 0x75, 0x43, 0x41, 0xCC,\n\t0x8A, 0xC9, 0x43, 0x73, 0xCC, 0x87, 0xC9, 0x44,\n\t0x20, 0xE3, 0x82, 0x99, 0x0D, 0x44, 0x20, 0xE3,\n\t0x82, 0x9A, 0x0D, 0x44, 0xC2, 0xA8, 0xCC, 0x81,\n\t0xCA, 0x44, 0xCE, 0x91, 0xCC, 0x81, 0xC9, 0x44,\n\t0xCE, 0x95, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x97,\n\t// Bytes 4300 - 433f\n\t0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x99, 0xCC, 0x81,\n\t0xC9, 0x44, 0xCE, 0x9F, 0xCC, 0x81, 0xC9, 0x44,\n\t0xCE, 0xA5, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xA5,\n\t0xCC, 0x88, 0xC9, 0x44, 0xCE, 0xA9, 0xCC, 0x81,\n\t0xC9, 0x44, 0xCE, 0xB1, 0xCC, 0x81, 0xC9, 0x44,\n\t0xCE, 0xB5, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xB7,\n\t0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xB9, 0xCC, 0x81,\n\t0xC9, 0x44, 0xCE, 0xBF, 0xCC, 0x81, 0xC9, 0x44,\n\t// Bytes 4340 - 437f\n\t0xCF, 0x85, 0xCC, 0x81, 0xC9, 0x44, 0xCF, 0x89,\n\t0xCC, 0x81, 0xC9, 0x44, 0xD7, 0x90, 0xD6, 0xB7,\n\t0x31, 0x44, 0xD7, 0x90, 0xD6, 0xB8, 0x35, 0x44,\n\t0xD7, 0x90, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x91,\n\t0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x91, 0xD6, 0xBF,\n\t0x49, 0x44, 0xD7, 0x92, 0xD6, 0xBC, 0x41, 0x44,\n\t0xD7, 0x93, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x94,\n\t0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x95, 0xD6, 0xB9,\n\t// Bytes 4380 - 43bf\n\t0x39, 0x44, 0xD7, 0x95, 0xD6, 0xBC, 0x41, 0x44,\n\t0xD7, 0x96, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x98,\n\t0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x99, 0xD6, 0xB4,\n\t0x25, 0x44, 0xD7, 0x99, 0xD6, 0xBC, 0x41, 0x44,\n\t0xD7, 0x9A, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9B,\n\t0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9B, 0xD6, 0xBF,\n\t0x49, 0x44, 0xD7, 0x9C, 0xD6, 0xBC, 0x41, 0x44,\n\t0xD7, 0x9E, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA0,\n\t// Bytes 43c0 - 43ff\n\t0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA1, 0xD6, 0xBC,\n\t0x41, 0x44, 0xD7, 0xA3, 0xD6, 0xBC, 0x41, 0x44,\n\t0xD7, 0xA4, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA4,\n\t0xD6, 0xBF, 0x49, 0x44, 0xD7, 0xA6, 0xD6, 0xBC,\n\t0x41, 0x44, 0xD7, 0xA7, 0xD6, 0xBC, 0x41, 0x44,\n\t0xD7, 0xA8, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA9,\n\t0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA9, 0xD7, 0x81,\n\t0x4D, 0x44, 0xD7, 0xA9, 0xD7, 0x82, 0x51, 0x44,\n\t// Bytes 4400 - 443f\n\t0xD7, 0xAA, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xB2,\n\t0xD6, 0xB7, 0x31, 0x44, 0xD8, 0xA7, 0xD9, 0x8B,\n\t0x59, 0x44, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, 0x44,\n\t0xD8, 0xA7, 0xD9, 0x94, 0xC9, 0x44, 0xD8, 0xA7,\n\t0xD9, 0x95, 0xB5, 0x44, 0xD8, 0xB0, 0xD9, 0xB0,\n\t0x79, 0x44, 0xD8, 0xB1, 0xD9, 0xB0, 0x79, 0x44,\n\t0xD9, 0x80, 0xD9, 0x8B, 0x59, 0x44, 0xD9, 0x80,\n\t0xD9, 0x8E, 0x65, 0x44, 0xD9, 0x80, 0xD9, 0x8F,\n\t// Bytes 4440 - 447f\n\t0x69, 0x44, 0xD9, 0x80, 0xD9, 0x90, 0x6D, 0x44,\n\t0xD9, 0x80, 0xD9, 0x91, 0x71, 0x44, 0xD9, 0x80,\n\t0xD9, 0x92, 0x75, 0x44, 0xD9, 0x87, 0xD9, 0xB0,\n\t0x79, 0x44, 0xD9, 0x88, 0xD9, 0x94, 0xC9, 0x44,\n\t0xD9, 0x89, 0xD9, 0xB0, 0x79, 0x44, 0xD9, 0x8A,\n\t0xD9, 0x94, 0xC9, 0x44, 0xDB, 0x92, 0xD9, 0x94,\n\t0xC9, 0x44, 0xDB, 0x95, 0xD9, 0x94, 0xC9, 0x45,\n\t0x20, 0xCC, 0x88, 0xCC, 0x80, 0xCA, 0x45, 0x20,\n\t// Bytes 4480 - 44bf\n\t0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x45, 0x20, 0xCC,\n\t0x88, 0xCD, 0x82, 0xCA, 0x45, 0x20, 0xCC, 0x93,\n\t0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, 0x93, 0xCC,\n\t0x81, 0xCA, 0x45, 0x20, 0xCC, 0x93, 0xCD, 0x82,\n\t0xCA, 0x45, 0x20, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x45, 0x20, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x45,\n\t0x20, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x45, 0x20,\n\t0xD9, 0x8C, 0xD9, 0x91, 0x72, 0x45, 0x20, 0xD9,\n\t// Bytes 44c0 - 44ff\n\t0x8D, 0xD9, 0x91, 0x72, 0x45, 0x20, 0xD9, 0x8E,\n\t0xD9, 0x91, 0x72, 0x45, 0x20, 0xD9, 0x8F, 0xD9,\n\t0x91, 0x72, 0x45, 0x20, 0xD9, 0x90, 0xD9, 0x91,\n\t0x72, 0x45, 0x20, 0xD9, 0x91, 0xD9, 0xB0, 0x7A,\n\t0x45, 0xE2, 0xAB, 0x9D, 0xCC, 0xB8, 0x05, 0x46,\n\t0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x46,\n\t0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x46,\n\t0xD7, 0xA9, 0xD6, 0xBC, 0xD7, 0x81, 0x4E, 0x46,\n\t// Bytes 4500 - 453f\n\t0xD7, 0xA9, 0xD6, 0xBC, 0xD7, 0x82, 0x52, 0x46,\n\t0xD9, 0x80, 0xD9, 0x8E, 0xD9, 0x91, 0x72, 0x46,\n\t0xD9, 0x80, 0xD9, 0x8F, 0xD9, 0x91, 0x72, 0x46,\n\t0xD9, 0x80, 0xD9, 0x90, 0xD9, 0x91, 0x72, 0x46,\n\t0xE0, 0xA4, 0x95, 0xE0, 0xA4, 0xBC, 0x09, 0x46,\n\t0xE0, 0xA4, 0x96, 0xE0, 0xA4, 0xBC, 0x09, 0x46,\n\t0xE0, 0xA4, 0x97, 0xE0, 0xA4, 0xBC, 0x09, 0x46,\n\t0xE0, 0xA4, 0x9C, 0xE0, 0xA4, 0xBC, 0x09, 0x46,\n\t// Bytes 4540 - 457f\n\t0xE0, 0xA4, 0xA1, 0xE0, 0xA4, 0xBC, 0x09, 0x46,\n\t0xE0, 0xA4, 0xA2, 0xE0, 0xA4, 0xBC, 0x09, 0x46,\n\t0xE0, 0xA4, 0xAB, 0xE0, 0xA4, 0xBC, 0x09, 0x46,\n\t0xE0, 0xA4, 0xAF, 0xE0, 0xA4, 0xBC, 0x09, 0x46,\n\t0xE0, 0xA6, 0xA1, 0xE0, 0xA6, 0xBC, 0x09, 0x46,\n\t0xE0, 0xA6, 0xA2, 0xE0, 0xA6, 0xBC, 0x09, 0x46,\n\t0xE0, 0xA6, 0xAF, 0xE0, 0xA6, 0xBC, 0x09, 0x46,\n\t0xE0, 0xA8, 0x96, 0xE0, 0xA8, 0xBC, 0x09, 0x46,\n\t// Bytes 4580 - 45bf\n\t0xE0, 0xA8, 0x97, 0xE0, 0xA8, 0xBC, 0x09, 0x46,\n\t0xE0, 0xA8, 0x9C, 0xE0, 0xA8, 0xBC, 0x09, 0x46,\n\t0xE0, 0xA8, 0xAB, 0xE0, 0xA8, 0xBC, 0x09, 0x46,\n\t0xE0, 0xA8, 0xB2, 0xE0, 0xA8, 0xBC, 0x09, 0x46,\n\t0xE0, 0xA8, 0xB8, 0xE0, 0xA8, 0xBC, 0x09, 0x46,\n\t0xE0, 0xAC, 0xA1, 0xE0, 0xAC, 0xBC, 0x09, 0x46,\n\t0xE0, 0xAC, 0xA2, 0xE0, 0xAC, 0xBC, 0x09, 0x46,\n\t0xE0, 0xBE, 0xB2, 0xE0, 0xBE, 0x80, 0x9D, 0x46,\n\t// Bytes 45c0 - 45ff\n\t0xE0, 0xBE, 0xB3, 0xE0, 0xBE, 0x80, 0x9D, 0x46,\n\t0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0x0D, 0x48,\n\t0xF0, 0x9D, 0x85, 0x97, 0xF0, 0x9D, 0x85, 0xA5,\n\t0xAD, 0x48, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D,\n\t0x85, 0xA5, 0xAD, 0x48, 0xF0, 0x9D, 0x86, 0xB9,\n\t0xF0, 0x9D, 0x85, 0xA5, 0xAD, 0x48, 0xF0, 0x9D,\n\t0x86, 0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, 0x49,\n\t0xE0, 0xBE, 0xB2, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE,\n\t// Bytes 4600 - 463f\n\t0x80, 0x9E, 0x49, 0xE0, 0xBE, 0xB3, 0xE0, 0xBD,\n\t0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x4C, 0xF0, 0x9D,\n\t0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D,\n\t0x85, 0xAE, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, 0x98,\n\t0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF,\n\t0xAE, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D,\n\t0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB0, 0xAE, 0x4C,\n\t0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5,\n\t// Bytes 4640 - 467f\n\t0xF0, 0x9D, 0x85, 0xB1, 0xAE, 0x4C, 0xF0, 0x9D,\n\t0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D,\n\t0x85, 0xB2, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xB9,\n\t0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE,\n\t0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D,\n\t0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, 0x4C,\n\t0xF0, 0x9D, 0x86, 0xBA, 0xF0, 0x9D, 0x85, 0xA5,\n\t0xF0, 0x9D, 0x85, 0xAE, 0xAE, 0x4C, 0xF0, 0x9D,\n\t// Bytes 4680 - 46bf\n\t0x86, 0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D,\n\t0x85, 0xAF, 0xAE, 0x83, 0x41, 0xCC, 0x82, 0xC9,\n\t0x83, 0x41, 0xCC, 0x86, 0xC9, 0x83, 0x41, 0xCC,\n\t0x87, 0xC9, 0x83, 0x41, 0xCC, 0x88, 0xC9, 0x83,\n\t0x41, 0xCC, 0x8A, 0xC9, 0x83, 0x41, 0xCC, 0xA3,\n\t0xB5, 0x83, 0x43, 0xCC, 0xA7, 0xA5, 0x83, 0x45,\n\t0xCC, 0x82, 0xC9, 0x83, 0x45, 0xCC, 0x84, 0xC9,\n\t0x83, 0x45, 0xCC, 0xA3, 0xB5, 0x83, 0x45, 0xCC,\n\t// Bytes 46c0 - 46ff\n\t0xA7, 0xA5, 0x83, 0x49, 0xCC, 0x88, 0xC9, 0x83,\n\t0x4C, 0xCC, 0xA3, 0xB5, 0x83, 0x4F, 0xCC, 0x82,\n\t0xC9, 0x83, 0x4F, 0xCC, 0x83, 0xC9, 0x83, 0x4F,\n\t0xCC, 0x84, 0xC9, 0x83, 0x4F, 0xCC, 0x87, 0xC9,\n\t0x83, 0x4F, 0xCC, 0x88, 0xC9, 0x83, 0x4F, 0xCC,\n\t0x9B, 0xAD, 0x83, 0x4F, 0xCC, 0xA3, 0xB5, 0x83,\n\t0x4F, 0xCC, 0xA8, 0xA5, 0x83, 0x52, 0xCC, 0xA3,\n\t0xB5, 0x83, 0x53, 0xCC, 0x81, 0xC9, 0x83, 0x53,\n\t// Bytes 4700 - 473f\n\t0xCC, 0x8C, 0xC9, 0x83, 0x53, 0xCC, 0xA3, 0xB5,\n\t0x83, 0x55, 0xCC, 0x83, 0xC9, 0x83, 0x55, 0xCC,\n\t0x84, 0xC9, 0x83, 0x55, 0xCC, 0x88, 0xC9, 0x83,\n\t0x55, 0xCC, 0x9B, 0xAD, 0x83, 0x61, 0xCC, 0x82,\n\t0xC9, 0x83, 0x61, 0xCC, 0x86, 0xC9, 0x83, 0x61,\n\t0xCC, 0x87, 0xC9, 0x83, 0x61, 0xCC, 0x88, 0xC9,\n\t0x83, 0x61, 0xCC, 0x8A, 0xC9, 0x83, 0x61, 0xCC,\n\t0xA3, 0xB5, 0x83, 0x63, 0xCC, 0xA7, 0xA5, 0x83,\n\t// Bytes 4740 - 477f\n\t0x65, 0xCC, 0x82, 0xC9, 0x83, 0x65, 0xCC, 0x84,\n\t0xC9, 0x83, 0x65, 0xCC, 0xA3, 0xB5, 0x83, 0x65,\n\t0xCC, 0xA7, 0xA5, 0x83, 0x69, 0xCC, 0x88, 0xC9,\n\t0x83, 0x6C, 0xCC, 0xA3, 0xB5, 0x83, 0x6F, 0xCC,\n\t0x82, 0xC9, 0x83, 0x6F, 0xCC, 0x83, 0xC9, 0x83,\n\t0x6F, 0xCC, 0x84, 0xC9, 0x83, 0x6F, 0xCC, 0x87,\n\t0xC9, 0x83, 0x6F, 0xCC, 0x88, 0xC9, 0x83, 0x6F,\n\t0xCC, 0x9B, 0xAD, 0x83, 0x6F, 0xCC, 0xA3, 0xB5,\n\t// Bytes 4780 - 47bf\n\t0x83, 0x6F, 0xCC, 0xA8, 0xA5, 0x83, 0x72, 0xCC,\n\t0xA3, 0xB5, 0x83, 0x73, 0xCC, 0x81, 0xC9, 0x83,\n\t0x73, 0xCC, 0x8C, 0xC9, 0x83, 0x73, 0xCC, 0xA3,\n\t0xB5, 0x83, 0x75, 0xCC, 0x83, 0xC9, 0x83, 0x75,\n\t0xCC, 0x84, 0xC9, 0x83, 0x75, 0xCC, 0x88, 0xC9,\n\t0x83, 0x75, 0xCC, 0x9B, 0xAD, 0x84, 0xCE, 0x91,\n\t0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x91, 0xCC, 0x94,\n\t0xC9, 0x84, 0xCE, 0x95, 0xCC, 0x93, 0xC9, 0x84,\n\t// Bytes 47c0 - 47ff\n\t0xCE, 0x95, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0x97,\n\t0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x97, 0xCC, 0x94,\n\t0xC9, 0x84, 0xCE, 0x99, 0xCC, 0x93, 0xC9, 0x84,\n\t0xCE, 0x99, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0x9F,\n\t0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x9F, 0xCC, 0x94,\n\t0xC9, 0x84, 0xCE, 0xA5, 0xCC, 0x94, 0xC9, 0x84,\n\t0xCE, 0xA9, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xA9,\n\t0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, 0x80,\n\t// Bytes 4800 - 483f\n\t0xC9, 0x84, 0xCE, 0xB1, 0xCC, 0x81, 0xC9, 0x84,\n\t0xCE, 0xB1, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB1,\n\t0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xB1, 0xCD, 0x82,\n\t0xC9, 0x84, 0xCE, 0xB5, 0xCC, 0x93, 0xC9, 0x84,\n\t0xCE, 0xB5, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xB7,\n\t0xCC, 0x80, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, 0x81,\n\t0xC9, 0x84, 0xCE, 0xB7, 0xCC, 0x93, 0xC9, 0x84,\n\t0xCE, 0xB7, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xB7,\n\t// Bytes 4840 - 487f\n\t0xCD, 0x82, 0xC9, 0x84, 0xCE, 0xB9, 0xCC, 0x88,\n\t0xC9, 0x84, 0xCE, 0xB9, 0xCC, 0x93, 0xC9, 0x84,\n\t0xCE, 0xB9, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xBF,\n\t0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xBF, 0xCC, 0x94,\n\t0xC9, 0x84, 0xCF, 0x85, 0xCC, 0x88, 0xC9, 0x84,\n\t0xCF, 0x85, 0xCC, 0x93, 0xC9, 0x84, 0xCF, 0x85,\n\t0xCC, 0x94, 0xC9, 0x84, 0xCF, 0x89, 0xCC, 0x80,\n\t0xC9, 0x84, 0xCF, 0x89, 0xCC, 0x81, 0xC9, 0x84,\n\t// Bytes 4880 - 48bf\n\t0xCF, 0x89, 0xCC, 0x93, 0xC9, 0x84, 0xCF, 0x89,\n\t0xCC, 0x94, 0xC9, 0x84, 0xCF, 0x89, 0xCD, 0x82,\n\t0xC9, 0x86, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80,\n\t0xCA, 0x86, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x81,\n\t0xCA, 0x86, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x82,\n\t0xCA, 0x86, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x80,\n\t0xCA, 0x86, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81,\n\t0xCA, 0x86, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x82,\n\t// Bytes 48c0 - 48ff\n\t0xCA, 0x86, 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x80,\n\t0xCA, 0x86, 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x81,\n\t0xCA, 0x86, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82,\n\t0xCA, 0x86, 0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x80,\n\t0xCA, 0x86, 0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x81,\n\t0xCA, 0x86, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x82,\n\t0xCA, 0x86, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80,\n\t0xCA, 0x86, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x81,\n\t// Bytes 4900 - 493f\n\t0xCA, 0x86, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x82,\n\t0xCA, 0x86, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x80,\n\t0xCA, 0x86, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81,\n\t0xCA, 0x86, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x82,\n\t0xCA, 0x86, 0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x80,\n\t0xCA, 0x86, 0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x81,\n\t0xCA, 0x86, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82,\n\t0xCA, 0x86, 0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x80,\n\t// Bytes 4940 - 497f\n\t0xCA, 0x86, 0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x81,\n\t0xCA, 0x86, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x82,\n\t0xCA, 0x86, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80,\n\t0xCA, 0x86, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x81,\n\t0xCA, 0x86, 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x82,\n\t0xCA, 0x86, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x80,\n\t0xCA, 0x86, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81,\n\t0xCA, 0x86, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x82,\n\t// Bytes 4980 - 49bf\n\t0xCA, 0x86, 0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x80,\n\t0xCA, 0x86, 0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x81,\n\t0xCA, 0x86, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82,\n\t0xCA, 0x86, 0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x80,\n\t0xCA, 0x86, 0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x81,\n\t0xCA, 0x86, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x82,\n\t0xCA, 0x42, 0xCC, 0x80, 0xC9, 0x32, 0x42, 0xCC,\n\t0x81, 0xC9, 0x32, 0x42, 0xCC, 0x93, 0xC9, 0x32,\n\t// Bytes 49c0 - 49ff\n\t0x43, 0xE1, 0x85, 0xA1, 0x01, 0x00, 0x43, 0xE1,\n\t0x85, 0xA2, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA3,\n\t0x01, 0x00, 0x43, 0xE1, 0x85, 0xA4, 0x01, 0x00,\n\t0x43, 0xE1, 0x85, 0xA5, 0x01, 0x00, 0x43, 0xE1,\n\t0x85, 0xA6, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA7,\n\t0x01, 0x00, 0x43, 0xE1, 0x85, 0xA8, 0x01, 0x00,\n\t0x43, 0xE1, 0x85, 0xA9, 0x01, 0x00, 0x43, 0xE1,\n\t0x85, 0xAA, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAB,\n\t// Bytes 4a00 - 4a3f\n\t0x01, 0x00, 0x43, 0xE1, 0x85, 0xAC, 0x01, 0x00,\n\t0x43, 0xE1, 0x85, 0xAD, 0x01, 0x00, 0x43, 0xE1,\n\t0x85, 0xAE, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAF,\n\t0x01, 0x00, 0x43, 0xE1, 0x85, 0xB0, 0x01, 0x00,\n\t0x43, 0xE1, 0x85, 0xB1, 0x01, 0x00, 0x43, 0xE1,\n\t0x85, 0xB2, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB3,\n\t0x01, 0x00, 0x43, 0xE1, 0x85, 0xB4, 0x01, 0x00,\n\t0x43, 0xE1, 0x85, 0xB5, 0x01, 0x00, 0x43, 0xE1,\n\t// Bytes 4a40 - 4a7f\n\t0x86, 0xAA, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAC,\n\t0x01, 0x00, 0x43, 0xE1, 0x86, 0xAD, 0x01, 0x00,\n\t0x43, 0xE1, 0x86, 0xB0, 0x01, 0x00, 0x43, 0xE1,\n\t0x86, 0xB1, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB2,\n\t0x01, 0x00, 0x43, 0xE1, 0x86, 0xB3, 0x01, 0x00,\n\t0x43, 0xE1, 0x86, 0xB4, 0x01, 0x00, 0x43, 0xE1,\n\t0x86, 0xB5, 0x01, 0x00, 0x44, 0xCC, 0x88, 0xCC,\n\t0x81, 0xCA, 0x32, 0x43, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 4a80 - 4abf\n\t0x03, 0x43, 0xE3, 0x82, 0x9A, 0x0D, 0x03, 0x46,\n\t0xE0, 0xBD, 0xB1, 0xE0, 0xBD, 0xB2, 0x9E, 0x26,\n\t0x46, 0xE0, 0xBD, 0xB1, 0xE0, 0xBD, 0xB4, 0xA2,\n\t0x26, 0x46, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80,\n\t0x9E, 0x26, 0x00, 0x01,\n}\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfcTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfcTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfcValues[c0]\n\t}\n\ti := nfcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfcTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfcTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfcValues[c0]\n\t}\n\ti := nfcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// nfcTrie. Total size: 10610 bytes (10.36 KiB). Checksum: 95e8869a9f81e5e6.\ntype nfcTrie struct{}\n\nfunc newNfcTrie(i int) *nfcTrie {\n\treturn &nfcTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *nfcTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 46:\n\t\treturn uint16(nfcValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 46\n\t\treturn uint16(nfcSparse.lookup(n, b))\n\t}\n}\n\n// nfcValues: 48 blocks, 3072 entries, 6144 bytes\n// The third block is the zero block.\nvar nfcValues = [3072]uint16{\n\t// Block 0x0, offset 0x0\n\t0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000,\n\t// Block 0x1, offset 0x40\n\t0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000,\n\t0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000,\n\t0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000,\n\t0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000,\n\t0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000,\n\t0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000,\n\t0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000,\n\t0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000,\n\t0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000,\n\t0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x2f72, 0xc1: 0x2f77, 0xc2: 0x468b, 0xc3: 0x2f7c, 0xc4: 0x469a, 0xc5: 0x469f,\n\t0xc6: 0xa000, 0xc7: 0x46a9, 0xc8: 0x2fe5, 0xc9: 0x2fea, 0xca: 0x46ae, 0xcb: 0x2ffe,\n\t0xcc: 0x3071, 0xcd: 0x3076, 0xce: 0x307b, 0xcf: 0x46c2, 0xd1: 0x3107,\n\t0xd2: 0x312a, 0xd3: 0x312f, 0xd4: 0x46cc, 0xd5: 0x46d1, 0xd6: 0x46e0,\n\t0xd8: 0xa000, 0xd9: 0x31b6, 0xda: 0x31bb, 0xdb: 0x31c0, 0xdc: 0x4712, 0xdd: 0x3238,\n\t0xe0: 0x327e, 0xe1: 0x3283, 0xe2: 0x471c, 0xe3: 0x3288,\n\t0xe4: 0x472b, 0xe5: 0x4730, 0xe6: 0xa000, 0xe7: 0x473a, 0xe8: 0x32f1, 0xe9: 0x32f6,\n\t0xea: 0x473f, 0xeb: 0x330a, 0xec: 0x3382, 0xed: 0x3387, 0xee: 0x338c, 0xef: 0x4753,\n\t0xf1: 0x3418, 0xf2: 0x343b, 0xf3: 0x3440, 0xf4: 0x475d, 0xf5: 0x4762,\n\t0xf6: 0x4771, 0xf8: 0xa000, 0xf9: 0x34cc, 0xfa: 0x34d1, 0xfb: 0x34d6,\n\t0xfc: 0x47a3, 0xfd: 0x3553, 0xff: 0x356c,\n\t// Block 0x4, offset 0x100\n\t0x100: 0x2f81, 0x101: 0x328d, 0x102: 0x4690, 0x103: 0x4721, 0x104: 0x2f9f, 0x105: 0x32ab,\n\t0x106: 0x2fb3, 0x107: 0x32bf, 0x108: 0x2fb8, 0x109: 0x32c4, 0x10a: 0x2fbd, 0x10b: 0x32c9,\n\t0x10c: 0x2fc2, 0x10d: 0x32ce, 0x10e: 0x2fcc, 0x10f: 0x32d8,\n\t0x112: 0x46b3, 0x113: 0x4744, 0x114: 0x2ff4, 0x115: 0x3300, 0x116: 0x2ff9, 0x117: 0x3305,\n\t0x118: 0x3017, 0x119: 0x3323, 0x11a: 0x3008, 0x11b: 0x3314, 0x11c: 0x3030, 0x11d: 0x333c,\n\t0x11e: 0x303a, 0x11f: 0x3346, 0x120: 0x303f, 0x121: 0x334b, 0x122: 0x3049, 0x123: 0x3355,\n\t0x124: 0x304e, 0x125: 0x335a, 0x128: 0x3080, 0x129: 0x3391,\n\t0x12a: 0x3085, 0x12b: 0x3396, 0x12c: 0x308a, 0x12d: 0x339b, 0x12e: 0x30ad, 0x12f: 0x33b9,\n\t0x130: 0x308f, 0x134: 0x30b7, 0x135: 0x33c3,\n\t0x136: 0x30cb, 0x137: 0x33dc, 0x139: 0x30d5, 0x13a: 0x33e6, 0x13b: 0x30df,\n\t0x13c: 0x33f0, 0x13d: 0x30da, 0x13e: 0x33eb,\n\t// Block 0x5, offset 0x140\n\t0x143: 0x3102, 0x144: 0x3413, 0x145: 0x311b,\n\t0x146: 0x342c, 0x147: 0x3111, 0x148: 0x3422,\n\t0x14c: 0x46d6, 0x14d: 0x4767, 0x14e: 0x3134, 0x14f: 0x3445, 0x150: 0x313e, 0x151: 0x344f,\n\t0x154: 0x315c, 0x155: 0x346d, 0x156: 0x3175, 0x157: 0x3486,\n\t0x158: 0x3166, 0x159: 0x3477, 0x15a: 0x46f9, 0x15b: 0x478a, 0x15c: 0x317f, 0x15d: 0x3490,\n\t0x15e: 0x318e, 0x15f: 0x349f, 0x160: 0x46fe, 0x161: 0x478f, 0x162: 0x31a7, 0x163: 0x34bd,\n\t0x164: 0x3198, 0x165: 0x34ae, 0x168: 0x4708, 0x169: 0x4799,\n\t0x16a: 0x470d, 0x16b: 0x479e, 0x16c: 0x31c5, 0x16d: 0x34db, 0x16e: 0x31cf, 0x16f: 0x34e5,\n\t0x170: 0x31d4, 0x171: 0x34ea, 0x172: 0x31f2, 0x173: 0x3508, 0x174: 0x3215, 0x175: 0x352b,\n\t0x176: 0x323d, 0x177: 0x3558, 0x178: 0x3251, 0x179: 0x3260, 0x17a: 0x3580, 0x17b: 0x326a,\n\t0x17c: 0x358a, 0x17d: 0x326f, 0x17e: 0x358f, 0x17f: 0xa000,\n\t// Block 0x6, offset 0x180\n\t0x184: 0x8100, 0x185: 0x8100,\n\t0x186: 0x8100,\n\t0x18d: 0x2f8b, 0x18e: 0x3297, 0x18f: 0x3099, 0x190: 0x33a5, 0x191: 0x3143,\n\t0x192: 0x3454, 0x193: 0x31d9, 0x194: 0x34ef, 0x195: 0x39d2, 0x196: 0x3b61, 0x197: 0x39cb,\n\t0x198: 0x3b5a, 0x199: 0x39d9, 0x19a: 0x3b68, 0x19b: 0x39c4, 0x19c: 0x3b53,\n\t0x19e: 0x38b3, 0x19f: 0x3a42, 0x1a0: 0x38ac, 0x1a1: 0x3a3b, 0x1a2: 0x35b6, 0x1a3: 0x35c8,\n\t0x1a6: 0x3044, 0x1a7: 0x3350, 0x1a8: 0x30c1, 0x1a9: 0x33d2,\n\t0x1aa: 0x46ef, 0x1ab: 0x4780, 0x1ac: 0x3993, 0x1ad: 0x3b22, 0x1ae: 0x35da, 0x1af: 0x35e0,\n\t0x1b0: 0x33c8, 0x1b4: 0x302b, 0x1b5: 0x3337,\n\t0x1b8: 0x30fd, 0x1b9: 0x340e, 0x1ba: 0x38ba, 0x1bb: 0x3a49,\n\t0x1bc: 0x35b0, 0x1bd: 0x35c2, 0x1be: 0x35bc, 0x1bf: 0x35ce,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x2f90, 0x1c1: 0x329c, 0x1c2: 0x2f95, 0x1c3: 0x32a1, 0x1c4: 0x300d, 0x1c5: 0x3319,\n\t0x1c6: 0x3012, 0x1c7: 0x331e, 0x1c8: 0x309e, 0x1c9: 0x33aa, 0x1ca: 0x30a3, 0x1cb: 0x33af,\n\t0x1cc: 0x3148, 0x1cd: 0x3459, 0x1ce: 0x314d, 0x1cf: 0x345e, 0x1d0: 0x316b, 0x1d1: 0x347c,\n\t0x1d2: 0x3170, 0x1d3: 0x3481, 0x1d4: 0x31de, 0x1d5: 0x34f4, 0x1d6: 0x31e3, 0x1d7: 0x34f9,\n\t0x1d8: 0x3189, 0x1d9: 0x349a, 0x1da: 0x31a2, 0x1db: 0x34b8,\n\t0x1de: 0x305d, 0x1df: 0x3369,\n\t0x1e6: 0x4695, 0x1e7: 0x4726, 0x1e8: 0x46bd, 0x1e9: 0x474e,\n\t0x1ea: 0x3962, 0x1eb: 0x3af1, 0x1ec: 0x393f, 0x1ed: 0x3ace, 0x1ee: 0x46db, 0x1ef: 0x476c,\n\t0x1f0: 0x395b, 0x1f1: 0x3aea, 0x1f2: 0x3247, 0x1f3: 0x3562,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132,\n\t0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932,\n\t0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932,\n\t0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d,\n\t0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d,\n\t0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d,\n\t0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d,\n\t0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d,\n\t0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101,\n\t0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d,\n\t0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x49b1, 0x241: 0x49b6, 0x242: 0x9932, 0x243: 0x49bb, 0x244: 0x4a74, 0x245: 0x9936,\n\t0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132,\n\t0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132,\n\t0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132,\n\t0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135,\n\t0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132,\n\t0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132,\n\t0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132,\n\t0x274: 0x0170,\n\t0x27a: 0x8100,\n\t0x27e: 0x0037,\n\t// Block 0xa, offset 0x280\n\t0x284: 0x8100, 0x285: 0x35a4,\n\t0x286: 0x35ec, 0x287: 0x00ce, 0x288: 0x360a, 0x289: 0x3616, 0x28a: 0x3628,\n\t0x28c: 0x3646, 0x28e: 0x3658, 0x28f: 0x3676, 0x290: 0x3e0b, 0x291: 0xa000,\n\t0x295: 0xa000, 0x297: 0xa000,\n\t0x299: 0xa000,\n\t0x29f: 0xa000, 0x2a1: 0xa000,\n\t0x2a5: 0xa000, 0x2a9: 0xa000,\n\t0x2aa: 0x363a, 0x2ab: 0x366a, 0x2ac: 0x4801, 0x2ad: 0x369a, 0x2ae: 0x482b, 0x2af: 0x36ac,\n\t0x2b0: 0x3e73, 0x2b1: 0xa000, 0x2b5: 0xa000,\n\t0x2b7: 0xa000, 0x2b9: 0xa000,\n\t0x2bf: 0xa000,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x3724, 0x2c1: 0x3730, 0x2c3: 0x371e,\n\t0x2c6: 0xa000, 0x2c7: 0x370c,\n\t0x2cc: 0x3760, 0x2cd: 0x3748, 0x2ce: 0x3772, 0x2d0: 0xa000,\n\t0x2d3: 0xa000, 0x2d5: 0xa000, 0x2d6: 0xa000, 0x2d7: 0xa000,\n\t0x2d8: 0xa000, 0x2d9: 0x3754, 0x2da: 0xa000,\n\t0x2de: 0xa000, 0x2e3: 0xa000,\n\t0x2e7: 0xa000,\n\t0x2eb: 0xa000, 0x2ed: 0xa000,\n\t0x2f0: 0xa000, 0x2f3: 0xa000, 0x2f5: 0xa000,\n\t0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x37d8, 0x2fa: 0xa000,\n\t0x2fe: 0xa000,\n\t// Block 0xc, offset 0x300\n\t0x301: 0x3736, 0x302: 0x37ba,\n\t0x310: 0x3712, 0x311: 0x3796,\n\t0x312: 0x3718, 0x313: 0x379c, 0x316: 0x372a, 0x317: 0x37ae,\n\t0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x382c, 0x31b: 0x3832, 0x31c: 0x373c, 0x31d: 0x37c0,\n\t0x31e: 0x3742, 0x31f: 0x37c6, 0x322: 0x374e, 0x323: 0x37d2,\n\t0x324: 0x375a, 0x325: 0x37de, 0x326: 0x3766, 0x327: 0x37ea, 0x328: 0xa000, 0x329: 0xa000,\n\t0x32a: 0x3838, 0x32b: 0x383e, 0x32c: 0x3790, 0x32d: 0x3814, 0x32e: 0x376c, 0x32f: 0x37f0,\n\t0x330: 0x3778, 0x331: 0x37fc, 0x332: 0x377e, 0x333: 0x3802, 0x334: 0x3784, 0x335: 0x3808,\n\t0x338: 0x378a, 0x339: 0x380e,\n\t// Block 0xd, offset 0x340\n\t0x351: 0x812d,\n\t0x352: 0x8132, 0x353: 0x8132, 0x354: 0x8132, 0x355: 0x8132, 0x356: 0x812d, 0x357: 0x8132,\n\t0x358: 0x8132, 0x359: 0x8132, 0x35a: 0x812e, 0x35b: 0x812d, 0x35c: 0x8132, 0x35d: 0x8132,\n\t0x35e: 0x8132, 0x35f: 0x8132, 0x360: 0x8132, 0x361: 0x8132, 0x362: 0x812d, 0x363: 0x812d,\n\t0x364: 0x812d, 0x365: 0x812d, 0x366: 0x812d, 0x367: 0x812d, 0x368: 0x8132, 0x369: 0x8132,\n\t0x36a: 0x812d, 0x36b: 0x8132, 0x36c: 0x8132, 0x36d: 0x812e, 0x36e: 0x8131, 0x36f: 0x8132,\n\t0x370: 0x8105, 0x371: 0x8106, 0x372: 0x8107, 0x373: 0x8108, 0x374: 0x8109, 0x375: 0x810a,\n\t0x376: 0x810b, 0x377: 0x810c, 0x378: 0x810d, 0x379: 0x810e, 0x37a: 0x810e, 0x37b: 0x810f,\n\t0x37c: 0x8110, 0x37d: 0x8111, 0x37f: 0x8112,\n\t// Block 0xe, offset 0x380\n\t0x388: 0xa000, 0x38a: 0xa000, 0x38b: 0x8116,\n\t0x38c: 0x8117, 0x38d: 0x8118, 0x38e: 0x8119, 0x38f: 0x811a, 0x390: 0x811b, 0x391: 0x811c,\n\t0x392: 0x811d, 0x393: 0x9932, 0x394: 0x9932, 0x395: 0x992d, 0x396: 0x812d, 0x397: 0x8132,\n\t0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x8132, 0x39b: 0x8132, 0x39c: 0x812d, 0x39d: 0x8132,\n\t0x39e: 0x8132, 0x39f: 0x812d,\n\t0x3b0: 0x811e,\n\t// Block 0xf, offset 0x3c0\n\t0x3d3: 0x812d, 0x3d4: 0x8132, 0x3d5: 0x8132, 0x3d6: 0x8132, 0x3d7: 0x8132,\n\t0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x8132, 0x3dd: 0x8132,\n\t0x3de: 0x8132, 0x3df: 0x8132, 0x3e0: 0x8132, 0x3e1: 0x8132, 0x3e3: 0x812d,\n\t0x3e4: 0x8132, 0x3e5: 0x8132, 0x3e6: 0x812d, 0x3e7: 0x8132, 0x3e8: 0x8132, 0x3e9: 0x812d,\n\t0x3ea: 0x8132, 0x3eb: 0x8132, 0x3ec: 0x8132, 0x3ed: 0x812d, 0x3ee: 0x812d, 0x3ef: 0x812d,\n\t0x3f0: 0x8116, 0x3f1: 0x8117, 0x3f2: 0x8118, 0x3f3: 0x8132, 0x3f4: 0x8132, 0x3f5: 0x8132,\n\t0x3f6: 0x812d, 0x3f7: 0x8132, 0x3f8: 0x8132, 0x3f9: 0x812d, 0x3fa: 0x812d, 0x3fb: 0x8132,\n\t0x3fc: 0x8132, 0x3fd: 0x8132, 0x3fe: 0x8132, 0x3ff: 0x8132,\n\t// Block 0x10, offset 0x400\n\t0x405: 0xa000,\n\t0x406: 0x2d29, 0x407: 0xa000, 0x408: 0x2d31, 0x409: 0xa000, 0x40a: 0x2d39, 0x40b: 0xa000,\n\t0x40c: 0x2d41, 0x40d: 0xa000, 0x40e: 0x2d49, 0x411: 0xa000,\n\t0x412: 0x2d51,\n\t0x434: 0x8102, 0x435: 0x9900,\n\t0x43a: 0xa000, 0x43b: 0x2d59,\n\t0x43c: 0xa000, 0x43d: 0x2d61, 0x43e: 0xa000, 0x43f: 0xa000,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x8132, 0x441: 0x8132, 0x442: 0x812d, 0x443: 0x8132, 0x444: 0x8132, 0x445: 0x8132,\n\t0x446: 0x8132, 0x447: 0x8132, 0x448: 0x8132, 0x449: 0x8132, 0x44a: 0x812d, 0x44b: 0x8132,\n\t0x44c: 0x8132, 0x44d: 0x8135, 0x44e: 0x812a, 0x44f: 0x812d, 0x450: 0x8129, 0x451: 0x8132,\n\t0x452: 0x8132, 0x453: 0x8132, 0x454: 0x8132, 0x455: 0x8132, 0x456: 0x8132, 0x457: 0x8132,\n\t0x458: 0x8132, 0x459: 0x8132, 0x45a: 0x8132, 0x45b: 0x8132, 0x45c: 0x8132, 0x45d: 0x8132,\n\t0x45e: 0x8132, 0x45f: 0x8132, 0x460: 0x8132, 0x461: 0x8132, 0x462: 0x8132, 0x463: 0x8132,\n\t0x464: 0x8132, 0x465: 0x8132, 0x466: 0x8132, 0x467: 0x8132, 0x468: 0x8132, 0x469: 0x8132,\n\t0x46a: 0x8132, 0x46b: 0x8132, 0x46c: 0x8132, 0x46d: 0x8132, 0x46e: 0x8132, 0x46f: 0x8132,\n\t0x470: 0x8132, 0x471: 0x8132, 0x472: 0x8132, 0x473: 0x8132, 0x474: 0x8132, 0x475: 0x8132,\n\t0x476: 0x8133, 0x477: 0x8131, 0x478: 0x8131, 0x479: 0x812d, 0x47b: 0x8132,\n\t0x47c: 0x8134, 0x47d: 0x812d, 0x47e: 0x8132, 0x47f: 0x812d,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x2f9a, 0x481: 0x32a6, 0x482: 0x2fa4, 0x483: 0x32b0, 0x484: 0x2fa9, 0x485: 0x32b5,\n\t0x486: 0x2fae, 0x487: 0x32ba, 0x488: 0x38cf, 0x489: 0x3a5e, 0x48a: 0x2fc7, 0x48b: 0x32d3,\n\t0x48c: 0x2fd1, 0x48d: 0x32dd, 0x48e: 0x2fe0, 0x48f: 0x32ec, 0x490: 0x2fd6, 0x491: 0x32e2,\n\t0x492: 0x2fdb, 0x493: 0x32e7, 0x494: 0x38f2, 0x495: 0x3a81, 0x496: 0x38f9, 0x497: 0x3a88,\n\t0x498: 0x301c, 0x499: 0x3328, 0x49a: 0x3021, 0x49b: 0x332d, 0x49c: 0x3907, 0x49d: 0x3a96,\n\t0x49e: 0x3026, 0x49f: 0x3332, 0x4a0: 0x3035, 0x4a1: 0x3341, 0x4a2: 0x3053, 0x4a3: 0x335f,\n\t0x4a4: 0x3062, 0x4a5: 0x336e, 0x4a6: 0x3058, 0x4a7: 0x3364, 0x4a8: 0x3067, 0x4a9: 0x3373,\n\t0x4aa: 0x306c, 0x4ab: 0x3378, 0x4ac: 0x30b2, 0x4ad: 0x33be, 0x4ae: 0x390e, 0x4af: 0x3a9d,\n\t0x4b0: 0x30bc, 0x4b1: 0x33cd, 0x4b2: 0x30c6, 0x4b3: 0x33d7, 0x4b4: 0x30d0, 0x4b5: 0x33e1,\n\t0x4b6: 0x46c7, 0x4b7: 0x4758, 0x4b8: 0x3915, 0x4b9: 0x3aa4, 0x4ba: 0x30e9, 0x4bb: 0x33fa,\n\t0x4bc: 0x30e4, 0x4bd: 0x33f5, 0x4be: 0x30ee, 0x4bf: 0x33ff,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x30f3, 0x4c1: 0x3404, 0x4c2: 0x30f8, 0x4c3: 0x3409, 0x4c4: 0x310c, 0x4c5: 0x341d,\n\t0x4c6: 0x3116, 0x4c7: 0x3427, 0x4c8: 0x3125, 0x4c9: 0x3436, 0x4ca: 0x3120, 0x4cb: 0x3431,\n\t0x4cc: 0x3938, 0x4cd: 0x3ac7, 0x4ce: 0x3946, 0x4cf: 0x3ad5, 0x4d0: 0x394d, 0x4d1: 0x3adc,\n\t0x4d2: 0x3954, 0x4d3: 0x3ae3, 0x4d4: 0x3152, 0x4d5: 0x3463, 0x4d6: 0x3157, 0x4d7: 0x3468,\n\t0x4d8: 0x3161, 0x4d9: 0x3472, 0x4da: 0x46f4, 0x4db: 0x4785, 0x4dc: 0x399a, 0x4dd: 0x3b29,\n\t0x4de: 0x317a, 0x4df: 0x348b, 0x4e0: 0x3184, 0x4e1: 0x3495, 0x4e2: 0x4703, 0x4e3: 0x4794,\n\t0x4e4: 0x39a1, 0x4e5: 0x3b30, 0x4e6: 0x39a8, 0x4e7: 0x3b37, 0x4e8: 0x39af, 0x4e9: 0x3b3e,\n\t0x4ea: 0x3193, 0x4eb: 0x34a4, 0x4ec: 0x319d, 0x4ed: 0x34b3, 0x4ee: 0x31b1, 0x4ef: 0x34c7,\n\t0x4f0: 0x31ac, 0x4f1: 0x34c2, 0x4f2: 0x31ed, 0x4f3: 0x3503, 0x4f4: 0x31fc, 0x4f5: 0x3512,\n\t0x4f6: 0x31f7, 0x4f7: 0x350d, 0x4f8: 0x39b6, 0x4f9: 0x3b45, 0x4fa: 0x39bd, 0x4fb: 0x3b4c,\n\t0x4fc: 0x3201, 0x4fd: 0x3517, 0x4fe: 0x3206, 0x4ff: 0x351c,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x320b, 0x501: 0x3521, 0x502: 0x3210, 0x503: 0x3526, 0x504: 0x321f, 0x505: 0x3535,\n\t0x506: 0x321a, 0x507: 0x3530, 0x508: 0x3224, 0x509: 0x353f, 0x50a: 0x3229, 0x50b: 0x3544,\n\t0x50c: 0x322e, 0x50d: 0x3549, 0x50e: 0x324c, 0x50f: 0x3567, 0x510: 0x3265, 0x511: 0x3585,\n\t0x512: 0x3274, 0x513: 0x3594, 0x514: 0x3279, 0x515: 0x3599, 0x516: 0x337d, 0x517: 0x34a9,\n\t0x518: 0x353a, 0x519: 0x3576, 0x51b: 0x35d4,\n\t0x520: 0x46a4, 0x521: 0x4735, 0x522: 0x2f86, 0x523: 0x3292,\n\t0x524: 0x387b, 0x525: 0x3a0a, 0x526: 0x3874, 0x527: 0x3a03, 0x528: 0x3889, 0x529: 0x3a18,\n\t0x52a: 0x3882, 0x52b: 0x3a11, 0x52c: 0x38c1, 0x52d: 0x3a50, 0x52e: 0x3897, 0x52f: 0x3a26,\n\t0x530: 0x3890, 0x531: 0x3a1f, 0x532: 0x38a5, 0x533: 0x3a34, 0x534: 0x389e, 0x535: 0x3a2d,\n\t0x536: 0x38c8, 0x537: 0x3a57, 0x538: 0x46b8, 0x539: 0x4749, 0x53a: 0x3003, 0x53b: 0x330f,\n\t0x53c: 0x2fef, 0x53d: 0x32fb, 0x53e: 0x38dd, 0x53f: 0x3a6c,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x38d6, 0x541: 0x3a65, 0x542: 0x38eb, 0x543: 0x3a7a, 0x544: 0x38e4, 0x545: 0x3a73,\n\t0x546: 0x3900, 0x547: 0x3a8f, 0x548: 0x3094, 0x549: 0x33a0, 0x54a: 0x30a8, 0x54b: 0x33b4,\n\t0x54c: 0x46ea, 0x54d: 0x477b, 0x54e: 0x3139, 0x54f: 0x344a, 0x550: 0x3923, 0x551: 0x3ab2,\n\t0x552: 0x391c, 0x553: 0x3aab, 0x554: 0x3931, 0x555: 0x3ac0, 0x556: 0x392a, 0x557: 0x3ab9,\n\t0x558: 0x398c, 0x559: 0x3b1b, 0x55a: 0x3970, 0x55b: 0x3aff, 0x55c: 0x3969, 0x55d: 0x3af8,\n\t0x55e: 0x397e, 0x55f: 0x3b0d, 0x560: 0x3977, 0x561: 0x3b06, 0x562: 0x3985, 0x563: 0x3b14,\n\t0x564: 0x31e8, 0x565: 0x34fe, 0x566: 0x31ca, 0x567: 0x34e0, 0x568: 0x39e7, 0x569: 0x3b76,\n\t0x56a: 0x39e0, 0x56b: 0x3b6f, 0x56c: 0x39f5, 0x56d: 0x3b84, 0x56e: 0x39ee, 0x56f: 0x3b7d,\n\t0x570: 0x39fc, 0x571: 0x3b8b, 0x572: 0x3233, 0x573: 0x354e, 0x574: 0x325b, 0x575: 0x357b,\n\t0x576: 0x3256, 0x577: 0x3571, 0x578: 0x3242, 0x579: 0x355d,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x4807, 0x581: 0x480d, 0x582: 0x4921, 0x583: 0x4939, 0x584: 0x4929, 0x585: 0x4941,\n\t0x586: 0x4931, 0x587: 0x4949, 0x588: 0x47ad, 0x589: 0x47b3, 0x58a: 0x4891, 0x58b: 0x48a9,\n\t0x58c: 0x4899, 0x58d: 0x48b1, 0x58e: 0x48a1, 0x58f: 0x48b9, 0x590: 0x4819, 0x591: 0x481f,\n\t0x592: 0x3dbb, 0x593: 0x3dcb, 0x594: 0x3dc3, 0x595: 0x3dd3,\n\t0x598: 0x47b9, 0x599: 0x47bf, 0x59a: 0x3ceb, 0x59b: 0x3cfb, 0x59c: 0x3cf3, 0x59d: 0x3d03,\n\t0x5a0: 0x4831, 0x5a1: 0x4837, 0x5a2: 0x4951, 0x5a3: 0x4969,\n\t0x5a4: 0x4959, 0x5a5: 0x4971, 0x5a6: 0x4961, 0x5a7: 0x4979, 0x5a8: 0x47c5, 0x5a9: 0x47cb,\n\t0x5aa: 0x48c1, 0x5ab: 0x48d9, 0x5ac: 0x48c9, 0x5ad: 0x48e1, 0x5ae: 0x48d1, 0x5af: 0x48e9,\n\t0x5b0: 0x4849, 0x5b1: 0x484f, 0x5b2: 0x3e1b, 0x5b3: 0x3e33, 0x5b4: 0x3e23, 0x5b5: 0x3e3b,\n\t0x5b6: 0x3e2b, 0x5b7: 0x3e43, 0x5b8: 0x47d1, 0x5b9: 0x47d7, 0x5ba: 0x3d1b, 0x5bb: 0x3d33,\n\t0x5bc: 0x3d23, 0x5bd: 0x3d3b, 0x5be: 0x3d2b, 0x5bf: 0x3d43,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x4855, 0x5c1: 0x485b, 0x5c2: 0x3e4b, 0x5c3: 0x3e5b, 0x5c4: 0x3e53, 0x5c5: 0x3e63,\n\t0x5c8: 0x47dd, 0x5c9: 0x47e3, 0x5ca: 0x3d4b, 0x5cb: 0x3d5b,\n\t0x5cc: 0x3d53, 0x5cd: 0x3d63, 0x5d0: 0x4867, 0x5d1: 0x486d,\n\t0x5d2: 0x3e83, 0x5d3: 0x3e9b, 0x5d4: 0x3e8b, 0x5d5: 0x3ea3, 0x5d6: 0x3e93, 0x5d7: 0x3eab,\n\t0x5d9: 0x47e9, 0x5db: 0x3d6b, 0x5dd: 0x3d73,\n\t0x5df: 0x3d7b, 0x5e0: 0x487f, 0x5e1: 0x4885, 0x5e2: 0x4981, 0x5e3: 0x4999,\n\t0x5e4: 0x4989, 0x5e5: 0x49a1, 0x5e6: 0x4991, 0x5e7: 0x49a9, 0x5e8: 0x47ef, 0x5e9: 0x47f5,\n\t0x5ea: 0x48f1, 0x5eb: 0x4909, 0x5ec: 0x48f9, 0x5ed: 0x4911, 0x5ee: 0x4901, 0x5ef: 0x4919,\n\t0x5f0: 0x47fb, 0x5f1: 0x4321, 0x5f2: 0x3694, 0x5f3: 0x4327, 0x5f4: 0x4825, 0x5f5: 0x432d,\n\t0x5f6: 0x36a6, 0x5f7: 0x4333, 0x5f8: 0x36c4, 0x5f9: 0x4339, 0x5fa: 0x36dc, 0x5fb: 0x433f,\n\t0x5fc: 0x4873, 0x5fd: 0x4345,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x3da3, 0x601: 0x3dab, 0x602: 0x4187, 0x603: 0x41a5, 0x604: 0x4191, 0x605: 0x41af,\n\t0x606: 0x419b, 0x607: 0x41b9, 0x608: 0x3cdb, 0x609: 0x3ce3, 0x60a: 0x40d3, 0x60b: 0x40f1,\n\t0x60c: 0x40dd, 0x60d: 0x40fb, 0x60e: 0x40e7, 0x60f: 0x4105, 0x610: 0x3deb, 0x611: 0x3df3,\n\t0x612: 0x41c3, 0x613: 0x41e1, 0x614: 0x41cd, 0x615: 0x41eb, 0x616: 0x41d7, 0x617: 0x41f5,\n\t0x618: 0x3d0b, 0x619: 0x3d13, 0x61a: 0x410f, 0x61b: 0x412d, 0x61c: 0x4119, 0x61d: 0x4137,\n\t0x61e: 0x4123, 0x61f: 0x4141, 0x620: 0x3ec3, 0x621: 0x3ecb, 0x622: 0x41ff, 0x623: 0x421d,\n\t0x624: 0x4209, 0x625: 0x4227, 0x626: 0x4213, 0x627: 0x4231, 0x628: 0x3d83, 0x629: 0x3d8b,\n\t0x62a: 0x414b, 0x62b: 0x4169, 0x62c: 0x4155, 0x62d: 0x4173, 0x62e: 0x415f, 0x62f: 0x417d,\n\t0x630: 0x3688, 0x631: 0x3682, 0x632: 0x3d93, 0x633: 0x368e, 0x634: 0x3d9b,\n\t0x636: 0x4813, 0x637: 0x3db3, 0x638: 0x35f8, 0x639: 0x35f2, 0x63a: 0x35e6, 0x63b: 0x42f1,\n\t0x63c: 0x35fe, 0x63d: 0x8100, 0x63e: 0x01d3, 0x63f: 0xa100,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x8100, 0x641: 0x35aa, 0x642: 0x3ddb, 0x643: 0x36a0, 0x644: 0x3de3,\n\t0x646: 0x483d, 0x647: 0x3dfb, 0x648: 0x3604, 0x649: 0x42f7, 0x64a: 0x3610, 0x64b: 0x42fd,\n\t0x64c: 0x361c, 0x64d: 0x3b92, 0x64e: 0x3b99, 0x64f: 0x3ba0, 0x650: 0x36b8, 0x651: 0x36b2,\n\t0x652: 0x3e03, 0x653: 0x44e7, 0x656: 0x36be, 0x657: 0x3e13,\n\t0x658: 0x3634, 0x659: 0x362e, 0x65a: 0x3622, 0x65b: 0x4303, 0x65d: 0x3ba7,\n\t0x65e: 0x3bae, 0x65f: 0x3bb5, 0x660: 0x36ee, 0x661: 0x36e8, 0x662: 0x3e6b, 0x663: 0x44ef,\n\t0x664: 0x36d0, 0x665: 0x36d6, 0x666: 0x36f4, 0x667: 0x3e7b, 0x668: 0x3664, 0x669: 0x365e,\n\t0x66a: 0x3652, 0x66b: 0x430f, 0x66c: 0x364c, 0x66d: 0x359e, 0x66e: 0x42eb, 0x66f: 0x0081,\n\t0x672: 0x3eb3, 0x673: 0x36fa, 0x674: 0x3ebb,\n\t0x676: 0x488b, 0x677: 0x3ed3, 0x678: 0x3640, 0x679: 0x4309, 0x67a: 0x3670, 0x67b: 0x431b,\n\t0x67c: 0x367c, 0x67d: 0x4259, 0x67e: 0xa100,\n\t// Block 0x1a, offset 0x680\n\t0x681: 0x3c09, 0x683: 0xa000, 0x684: 0x3c10, 0x685: 0xa000,\n\t0x687: 0x3c17, 0x688: 0xa000, 0x689: 0x3c1e,\n\t0x68d: 0xa000,\n\t0x6a0: 0x2f68, 0x6a1: 0xa000, 0x6a2: 0x3c2c,\n\t0x6a4: 0xa000, 0x6a5: 0xa000,\n\t0x6ad: 0x3c25, 0x6ae: 0x2f63, 0x6af: 0x2f6d,\n\t0x6b0: 0x3c33, 0x6b1: 0x3c3a, 0x6b2: 0xa000, 0x6b3: 0xa000, 0x6b4: 0x3c41, 0x6b5: 0x3c48,\n\t0x6b6: 0xa000, 0x6b7: 0xa000, 0x6b8: 0x3c4f, 0x6b9: 0x3c56, 0x6ba: 0xa000, 0x6bb: 0xa000,\n\t0x6bc: 0xa000, 0x6bd: 0xa000,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x3c5d, 0x6c1: 0x3c64, 0x6c2: 0xa000, 0x6c3: 0xa000, 0x6c4: 0x3c79, 0x6c5: 0x3c80,\n\t0x6c6: 0xa000, 0x6c7: 0xa000, 0x6c8: 0x3c87, 0x6c9: 0x3c8e,\n\t0x6d1: 0xa000,\n\t0x6d2: 0xa000,\n\t0x6e2: 0xa000,\n\t0x6e8: 0xa000, 0x6e9: 0xa000,\n\t0x6eb: 0xa000, 0x6ec: 0x3ca3, 0x6ed: 0x3caa, 0x6ee: 0x3cb1, 0x6ef: 0x3cb8,\n\t0x6f2: 0xa000, 0x6f3: 0xa000, 0x6f4: 0xa000, 0x6f5: 0xa000,\n\t// Block 0x1c, offset 0x700\n\t0x706: 0xa000, 0x70b: 0xa000,\n\t0x70c: 0x3f0b, 0x70d: 0xa000, 0x70e: 0x3f13, 0x70f: 0xa000, 0x710: 0x3f1b, 0x711: 0xa000,\n\t0x712: 0x3f23, 0x713: 0xa000, 0x714: 0x3f2b, 0x715: 0xa000, 0x716: 0x3f33, 0x717: 0xa000,\n\t0x718: 0x3f3b, 0x719: 0xa000, 0x71a: 0x3f43, 0x71b: 0xa000, 0x71c: 0x3f4b, 0x71d: 0xa000,\n\t0x71e: 0x3f53, 0x71f: 0xa000, 0x720: 0x3f5b, 0x721: 0xa000, 0x722: 0x3f63,\n\t0x724: 0xa000, 0x725: 0x3f6b, 0x726: 0xa000, 0x727: 0x3f73, 0x728: 0xa000, 0x729: 0x3f7b,\n\t0x72f: 0xa000,\n\t0x730: 0x3f83, 0x731: 0x3f8b, 0x732: 0xa000, 0x733: 0x3f93, 0x734: 0x3f9b, 0x735: 0xa000,\n\t0x736: 0x3fa3, 0x737: 0x3fab, 0x738: 0xa000, 0x739: 0x3fb3, 0x73a: 0x3fbb, 0x73b: 0xa000,\n\t0x73c: 0x3fc3, 0x73d: 0x3fcb,\n\t// Block 0x1d, offset 0x740\n\t0x754: 0x3f03,\n\t0x759: 0x9903, 0x75a: 0x9903, 0x75b: 0x8100, 0x75c: 0x8100, 0x75d: 0xa000,\n\t0x75e: 0x3fd3,\n\t0x766: 0xa000,\n\t0x76b: 0xa000, 0x76c: 0x3fe3, 0x76d: 0xa000, 0x76e: 0x3feb, 0x76f: 0xa000,\n\t0x770: 0x3ff3, 0x771: 0xa000, 0x772: 0x3ffb, 0x773: 0xa000, 0x774: 0x4003, 0x775: 0xa000,\n\t0x776: 0x400b, 0x777: 0xa000, 0x778: 0x4013, 0x779: 0xa000, 0x77a: 0x401b, 0x77b: 0xa000,\n\t0x77c: 0x4023, 0x77d: 0xa000, 0x77e: 0x402b, 0x77f: 0xa000,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0x4033, 0x781: 0xa000, 0x782: 0x403b, 0x784: 0xa000, 0x785: 0x4043,\n\t0x786: 0xa000, 0x787: 0x404b, 0x788: 0xa000, 0x789: 0x4053,\n\t0x78f: 0xa000, 0x790: 0x405b, 0x791: 0x4063,\n\t0x792: 0xa000, 0x793: 0x406b, 0x794: 0x4073, 0x795: 0xa000, 0x796: 0x407b, 0x797: 0x4083,\n\t0x798: 0xa000, 0x799: 0x408b, 0x79a: 0x4093, 0x79b: 0xa000, 0x79c: 0x409b, 0x79d: 0x40a3,\n\t0x7af: 0xa000,\n\t0x7b0: 0xa000, 0x7b1: 0xa000, 0x7b2: 0xa000, 0x7b4: 0x3fdb,\n\t0x7b7: 0x40ab, 0x7b8: 0x40b3, 0x7b9: 0x40bb, 0x7ba: 0x40c3,\n\t0x7bd: 0xa000, 0x7be: 0x40cb,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0x1377, 0x7c1: 0x0cfb, 0x7c2: 0x13d3, 0x7c3: 0x139f, 0x7c4: 0x0e57, 0x7c5: 0x06eb,\n\t0x7c6: 0x08df, 0x7c7: 0x162b, 0x7c8: 0x162b, 0x7c9: 0x0a0b, 0x7ca: 0x145f, 0x7cb: 0x0943,\n\t0x7cc: 0x0a07, 0x7cd: 0x0bef, 0x7ce: 0x0fcf, 0x7cf: 0x115f, 0x7d0: 0x1297, 0x7d1: 0x12d3,\n\t0x7d2: 0x1307, 0x7d3: 0x141b, 0x7d4: 0x0d73, 0x7d5: 0x0dff, 0x7d6: 0x0eab, 0x7d7: 0x0f43,\n\t0x7d8: 0x125f, 0x7d9: 0x1447, 0x7da: 0x1573, 0x7db: 0x070f, 0x7dc: 0x08b3, 0x7dd: 0x0d87,\n\t0x7de: 0x0ecf, 0x7df: 0x1293, 0x7e0: 0x15c3, 0x7e1: 0x0ab3, 0x7e2: 0x0e77, 0x7e3: 0x1283,\n\t0x7e4: 0x1317, 0x7e5: 0x0c23, 0x7e6: 0x11bb, 0x7e7: 0x12df, 0x7e8: 0x0b1f, 0x7e9: 0x0d0f,\n\t0x7ea: 0x0e17, 0x7eb: 0x0f1b, 0x7ec: 0x1427, 0x7ed: 0x074f, 0x7ee: 0x07e7, 0x7ef: 0x0853,\n\t0x7f0: 0x0c8b, 0x7f1: 0x0d7f, 0x7f2: 0x0ecb, 0x7f3: 0x0fef, 0x7f4: 0x1177, 0x7f5: 0x128b,\n\t0x7f6: 0x12a3, 0x7f7: 0x13c7, 0x7f8: 0x14ef, 0x7f9: 0x15a3, 0x7fa: 0x15bf, 0x7fb: 0x102b,\n\t0x7fc: 0x106b, 0x7fd: 0x1123, 0x7fe: 0x1243, 0x7ff: 0x147b,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x15cb, 0x801: 0x134b, 0x802: 0x09c7, 0x803: 0x0b3b, 0x804: 0x10db, 0x805: 0x119b,\n\t0x806: 0x0eff, 0x807: 0x1033, 0x808: 0x1397, 0x809: 0x14e7, 0x80a: 0x09c3, 0x80b: 0x0a8f,\n\t0x80c: 0x0d77, 0x80d: 0x0e2b, 0x80e: 0x0e5f, 0x80f: 0x1113, 0x810: 0x113b, 0x811: 0x14a7,\n\t0x812: 0x084f, 0x813: 0x11a7, 0x814: 0x07f3, 0x815: 0x07ef, 0x816: 0x1097, 0x817: 0x1127,\n\t0x818: 0x125b, 0x819: 0x14af, 0x81a: 0x1367, 0x81b: 0x0c27, 0x81c: 0x0d73, 0x81d: 0x1357,\n\t0x81e: 0x06f7, 0x81f: 0x0a63, 0x820: 0x0b93, 0x821: 0x0f2f, 0x822: 0x0faf, 0x823: 0x0873,\n\t0x824: 0x103b, 0x825: 0x075f, 0x826: 0x0b77, 0x827: 0x06d7, 0x828: 0x0deb, 0x829: 0x0ca3,\n\t0x82a: 0x110f, 0x82b: 0x08c7, 0x82c: 0x09b3, 0x82d: 0x0ffb, 0x82e: 0x1263, 0x82f: 0x133b,\n\t0x830: 0x0db7, 0x831: 0x13f7, 0x832: 0x0de3, 0x833: 0x0c37, 0x834: 0x121b, 0x835: 0x0c57,\n\t0x836: 0x0fab, 0x837: 0x072b, 0x838: 0x07a7, 0x839: 0x07eb, 0x83a: 0x0d53, 0x83b: 0x10fb,\n\t0x83c: 0x11f3, 0x83d: 0x1347, 0x83e: 0x145b, 0x83f: 0x085b,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x090f, 0x841: 0x0a17, 0x842: 0x0b2f, 0x843: 0x0cbf, 0x844: 0x0e7b, 0x845: 0x103f,\n\t0x846: 0x1497, 0x847: 0x157b, 0x848: 0x15cf, 0x849: 0x15e7, 0x84a: 0x0837, 0x84b: 0x0cf3,\n\t0x84c: 0x0da3, 0x84d: 0x13eb, 0x84e: 0x0afb, 0x84f: 0x0bd7, 0x850: 0x0bf3, 0x851: 0x0c83,\n\t0x852: 0x0e6b, 0x853: 0x0eb7, 0x854: 0x0f67, 0x855: 0x108b, 0x856: 0x112f, 0x857: 0x1193,\n\t0x858: 0x13db, 0x859: 0x126b, 0x85a: 0x1403, 0x85b: 0x147f, 0x85c: 0x080f, 0x85d: 0x083b,\n\t0x85e: 0x0923, 0x85f: 0x0ea7, 0x860: 0x12f3, 0x861: 0x133b, 0x862: 0x0b1b, 0x863: 0x0b8b,\n\t0x864: 0x0c4f, 0x865: 0x0daf, 0x866: 0x10d7, 0x867: 0x0f23, 0x868: 0x073b, 0x869: 0x097f,\n\t0x86a: 0x0a63, 0x86b: 0x0ac7, 0x86c: 0x0b97, 0x86d: 0x0f3f, 0x86e: 0x0f5b, 0x86f: 0x116b,\n\t0x870: 0x118b, 0x871: 0x1463, 0x872: 0x14e3, 0x873: 0x14f3, 0x874: 0x152f, 0x875: 0x0753,\n\t0x876: 0x107f, 0x877: 0x144f, 0x878: 0x14cb, 0x879: 0x0baf, 0x87a: 0x0717, 0x87b: 0x0777,\n\t0x87c: 0x0a67, 0x87d: 0x0a87, 0x87e: 0x0caf, 0x87f: 0x0d73,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x0ec3, 0x881: 0x0fcb, 0x882: 0x1277, 0x883: 0x1417, 0x884: 0x1623, 0x885: 0x0ce3,\n\t0x886: 0x14a3, 0x887: 0x0833, 0x888: 0x0d2f, 0x889: 0x0d3b, 0x88a: 0x0e0f, 0x88b: 0x0e47,\n\t0x88c: 0x0f4b, 0x88d: 0x0fa7, 0x88e: 0x1027, 0x88f: 0x110b, 0x890: 0x153b, 0x891: 0x07af,\n\t0x892: 0x0c03, 0x893: 0x14b3, 0x894: 0x0767, 0x895: 0x0aab, 0x896: 0x0e2f, 0x897: 0x13df,\n\t0x898: 0x0b67, 0x899: 0x0bb7, 0x89a: 0x0d43, 0x89b: 0x0f2f, 0x89c: 0x14bb, 0x89d: 0x0817,\n\t0x89e: 0x08ff, 0x89f: 0x0a97, 0x8a0: 0x0cd3, 0x8a1: 0x0d1f, 0x8a2: 0x0d5f, 0x8a3: 0x0df3,\n\t0x8a4: 0x0f47, 0x8a5: 0x0fbb, 0x8a6: 0x1157, 0x8a7: 0x12f7, 0x8a8: 0x1303, 0x8a9: 0x1457,\n\t0x8aa: 0x14d7, 0x8ab: 0x0883, 0x8ac: 0x0e4b, 0x8ad: 0x0903, 0x8ae: 0x0ec7, 0x8af: 0x0f6b,\n\t0x8b0: 0x1287, 0x8b1: 0x14bf, 0x8b2: 0x15ab, 0x8b3: 0x15d3, 0x8b4: 0x0d37, 0x8b5: 0x0e27,\n\t0x8b6: 0x11c3, 0x8b7: 0x10b7, 0x8b8: 0x10c3, 0x8b9: 0x10e7, 0x8ba: 0x0f17, 0x8bb: 0x0e9f,\n\t0x8bc: 0x1363, 0x8bd: 0x0733, 0x8be: 0x122b, 0x8bf: 0x081b,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x080b, 0x8c1: 0x0b0b, 0x8c2: 0x0c2b, 0x8c3: 0x10f3, 0x8c4: 0x0a53, 0x8c5: 0x0e03,\n\t0x8c6: 0x0cef, 0x8c7: 0x13e7, 0x8c8: 0x12e7, 0x8c9: 0x14ab, 0x8ca: 0x1323, 0x8cb: 0x0b27,\n\t0x8cc: 0x0787, 0x8cd: 0x095b, 0x8d0: 0x09af,\n\t0x8d2: 0x0cdf, 0x8d5: 0x07f7, 0x8d6: 0x0f1f, 0x8d7: 0x0fe3,\n\t0x8d8: 0x1047, 0x8d9: 0x1063, 0x8da: 0x1067, 0x8db: 0x107b, 0x8dc: 0x14fb, 0x8dd: 0x10eb,\n\t0x8de: 0x116f, 0x8e0: 0x128f, 0x8e2: 0x1353,\n\t0x8e5: 0x1407, 0x8e6: 0x1433,\n\t0x8ea: 0x154f, 0x8eb: 0x1553, 0x8ec: 0x1557, 0x8ed: 0x15bb, 0x8ee: 0x142b, 0x8ef: 0x14c7,\n\t0x8f0: 0x0757, 0x8f1: 0x077b, 0x8f2: 0x078f, 0x8f3: 0x084b, 0x8f4: 0x0857, 0x8f5: 0x0897,\n\t0x8f6: 0x094b, 0x8f7: 0x0967, 0x8f8: 0x096f, 0x8f9: 0x09ab, 0x8fa: 0x09b7, 0x8fb: 0x0a93,\n\t0x8fc: 0x0a9b, 0x8fd: 0x0ba3, 0x8fe: 0x0bcb, 0x8ff: 0x0bd3,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x0beb, 0x901: 0x0c97, 0x902: 0x0cc7, 0x903: 0x0ce7, 0x904: 0x0d57, 0x905: 0x0e1b,\n\t0x906: 0x0e37, 0x907: 0x0e67, 0x908: 0x0ebb, 0x909: 0x0edb, 0x90a: 0x0f4f, 0x90b: 0x102f,\n\t0x90c: 0x104b, 0x90d: 0x1053, 0x90e: 0x104f, 0x90f: 0x1057, 0x910: 0x105b, 0x911: 0x105f,\n\t0x912: 0x1073, 0x913: 0x1077, 0x914: 0x109b, 0x915: 0x10af, 0x916: 0x10cb, 0x917: 0x112f,\n\t0x918: 0x1137, 0x919: 0x113f, 0x91a: 0x1153, 0x91b: 0x117b, 0x91c: 0x11cb, 0x91d: 0x11ff,\n\t0x91e: 0x11ff, 0x91f: 0x1267, 0x920: 0x130f, 0x921: 0x1327, 0x922: 0x135b, 0x923: 0x135f,\n\t0x924: 0x13a3, 0x925: 0x13a7, 0x926: 0x13ff, 0x927: 0x1407, 0x928: 0x14db, 0x929: 0x151f,\n\t0x92a: 0x1537, 0x92b: 0x0b9b, 0x92c: 0x171e, 0x92d: 0x11e3,\n\t0x930: 0x06df, 0x931: 0x07e3, 0x932: 0x07a3, 0x933: 0x074b, 0x934: 0x078b, 0x935: 0x07b7,\n\t0x936: 0x0847, 0x937: 0x0863, 0x938: 0x094b, 0x939: 0x0937, 0x93a: 0x0947, 0x93b: 0x0963,\n\t0x93c: 0x09af, 0x93d: 0x09bf, 0x93e: 0x0a03, 0x93f: 0x0a0f,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x0a2b, 0x941: 0x0a3b, 0x942: 0x0b23, 0x943: 0x0b2b, 0x944: 0x0b5b, 0x945: 0x0b7b,\n\t0x946: 0x0bab, 0x947: 0x0bc3, 0x948: 0x0bb3, 0x949: 0x0bd3, 0x94a: 0x0bc7, 0x94b: 0x0beb,\n\t0x94c: 0x0c07, 0x94d: 0x0c5f, 0x94e: 0x0c6b, 0x94f: 0x0c73, 0x950: 0x0c9b, 0x951: 0x0cdf,\n\t0x952: 0x0d0f, 0x953: 0x0d13, 0x954: 0x0d27, 0x955: 0x0da7, 0x956: 0x0db7, 0x957: 0x0e0f,\n\t0x958: 0x0e5b, 0x959: 0x0e53, 0x95a: 0x0e67, 0x95b: 0x0e83, 0x95c: 0x0ebb, 0x95d: 0x1013,\n\t0x95e: 0x0edf, 0x95f: 0x0f13, 0x960: 0x0f1f, 0x961: 0x0f5f, 0x962: 0x0f7b, 0x963: 0x0f9f,\n\t0x964: 0x0fc3, 0x965: 0x0fc7, 0x966: 0x0fe3, 0x967: 0x0fe7, 0x968: 0x0ff7, 0x969: 0x100b,\n\t0x96a: 0x1007, 0x96b: 0x1037, 0x96c: 0x10b3, 0x96d: 0x10cb, 0x96e: 0x10e3, 0x96f: 0x111b,\n\t0x970: 0x112f, 0x971: 0x114b, 0x972: 0x117b, 0x973: 0x122f, 0x974: 0x1257, 0x975: 0x12cb,\n\t0x976: 0x1313, 0x977: 0x131f, 0x978: 0x1327, 0x979: 0x133f, 0x97a: 0x1353, 0x97b: 0x1343,\n\t0x97c: 0x135b, 0x97d: 0x1357, 0x97e: 0x134f, 0x97f: 0x135f,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x136b, 0x981: 0x13a7, 0x982: 0x13e3, 0x983: 0x1413, 0x984: 0x144b, 0x985: 0x146b,\n\t0x986: 0x14b7, 0x987: 0x14db, 0x988: 0x14fb, 0x989: 0x150f, 0x98a: 0x151f, 0x98b: 0x152b,\n\t0x98c: 0x1537, 0x98d: 0x158b, 0x98e: 0x162b, 0x98f: 0x16b5, 0x990: 0x16b0, 0x991: 0x16e2,\n\t0x992: 0x0607, 0x993: 0x062f, 0x994: 0x0633, 0x995: 0x1764, 0x996: 0x1791, 0x997: 0x1809,\n\t0x998: 0x1617, 0x999: 0x1627,\n\t// Block 0x27, offset 0x9c0\n\t0x9c0: 0x06fb, 0x9c1: 0x06f3, 0x9c2: 0x0703, 0x9c3: 0x1647, 0x9c4: 0x0747, 0x9c5: 0x0757,\n\t0x9c6: 0x075b, 0x9c7: 0x0763, 0x9c8: 0x076b, 0x9c9: 0x076f, 0x9ca: 0x077b, 0x9cb: 0x0773,\n\t0x9cc: 0x05b3, 0x9cd: 0x165b, 0x9ce: 0x078f, 0x9cf: 0x0793, 0x9d0: 0x0797, 0x9d1: 0x07b3,\n\t0x9d2: 0x164c, 0x9d3: 0x05b7, 0x9d4: 0x079f, 0x9d5: 0x07bf, 0x9d6: 0x1656, 0x9d7: 0x07cf,\n\t0x9d8: 0x07d7, 0x9d9: 0x0737, 0x9da: 0x07df, 0x9db: 0x07e3, 0x9dc: 0x1831, 0x9dd: 0x07ff,\n\t0x9de: 0x0807, 0x9df: 0x05bf, 0x9e0: 0x081f, 0x9e1: 0x0823, 0x9e2: 0x082b, 0x9e3: 0x082f,\n\t0x9e4: 0x05c3, 0x9e5: 0x0847, 0x9e6: 0x084b, 0x9e7: 0x0857, 0x9e8: 0x0863, 0x9e9: 0x0867,\n\t0x9ea: 0x086b, 0x9eb: 0x0873, 0x9ec: 0x0893, 0x9ed: 0x0897, 0x9ee: 0x089f, 0x9ef: 0x08af,\n\t0x9f0: 0x08b7, 0x9f1: 0x08bb, 0x9f2: 0x08bb, 0x9f3: 0x08bb, 0x9f4: 0x166a, 0x9f5: 0x0e93,\n\t0x9f6: 0x08cf, 0x9f7: 0x08d7, 0x9f8: 0x166f, 0x9f9: 0x08e3, 0x9fa: 0x08eb, 0x9fb: 0x08f3,\n\t0x9fc: 0x091b, 0x9fd: 0x0907, 0x9fe: 0x0913, 0x9ff: 0x0917,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x091f, 0xa01: 0x0927, 0xa02: 0x092b, 0xa03: 0x0933, 0xa04: 0x093b, 0xa05: 0x093f,\n\t0xa06: 0x093f, 0xa07: 0x0947, 0xa08: 0x094f, 0xa09: 0x0953, 0xa0a: 0x095f, 0xa0b: 0x0983,\n\t0xa0c: 0x0967, 0xa0d: 0x0987, 0xa0e: 0x096b, 0xa0f: 0x0973, 0xa10: 0x080b, 0xa11: 0x09cf,\n\t0xa12: 0x0997, 0xa13: 0x099b, 0xa14: 0x099f, 0xa15: 0x0993, 0xa16: 0x09a7, 0xa17: 0x09a3,\n\t0xa18: 0x09bb, 0xa19: 0x1674, 0xa1a: 0x09d7, 0xa1b: 0x09db, 0xa1c: 0x09e3, 0xa1d: 0x09ef,\n\t0xa1e: 0x09f7, 0xa1f: 0x0a13, 0xa20: 0x1679, 0xa21: 0x167e, 0xa22: 0x0a1f, 0xa23: 0x0a23,\n\t0xa24: 0x0a27, 0xa25: 0x0a1b, 0xa26: 0x0a2f, 0xa27: 0x05c7, 0xa28: 0x05cb, 0xa29: 0x0a37,\n\t0xa2a: 0x0a3f, 0xa2b: 0x0a3f, 0xa2c: 0x1683, 0xa2d: 0x0a5b, 0xa2e: 0x0a5f, 0xa2f: 0x0a63,\n\t0xa30: 0x0a6b, 0xa31: 0x1688, 0xa32: 0x0a73, 0xa33: 0x0a77, 0xa34: 0x0b4f, 0xa35: 0x0a7f,\n\t0xa36: 0x05cf, 0xa37: 0x0a8b, 0xa38: 0x0a9b, 0xa39: 0x0aa7, 0xa3a: 0x0aa3, 0xa3b: 0x1692,\n\t0xa3c: 0x0aaf, 0xa3d: 0x1697, 0xa3e: 0x0abb, 0xa3f: 0x0ab7,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0x0abf, 0xa41: 0x0acf, 0xa42: 0x0ad3, 0xa43: 0x05d3, 0xa44: 0x0ae3, 0xa45: 0x0aeb,\n\t0xa46: 0x0aef, 0xa47: 0x0af3, 0xa48: 0x05d7, 0xa49: 0x169c, 0xa4a: 0x05db, 0xa4b: 0x0b0f,\n\t0xa4c: 0x0b13, 0xa4d: 0x0b17, 0xa4e: 0x0b1f, 0xa4f: 0x1863, 0xa50: 0x0b37, 0xa51: 0x16a6,\n\t0xa52: 0x16a6, 0xa53: 0x11d7, 0xa54: 0x0b47, 0xa55: 0x0b47, 0xa56: 0x05df, 0xa57: 0x16c9,\n\t0xa58: 0x179b, 0xa59: 0x0b57, 0xa5a: 0x0b5f, 0xa5b: 0x05e3, 0xa5c: 0x0b73, 0xa5d: 0x0b83,\n\t0xa5e: 0x0b87, 0xa5f: 0x0b8f, 0xa60: 0x0b9f, 0xa61: 0x05eb, 0xa62: 0x05e7, 0xa63: 0x0ba3,\n\t0xa64: 0x16ab, 0xa65: 0x0ba7, 0xa66: 0x0bbb, 0xa67: 0x0bbf, 0xa68: 0x0bc3, 0xa69: 0x0bbf,\n\t0xa6a: 0x0bcf, 0xa6b: 0x0bd3, 0xa6c: 0x0be3, 0xa6d: 0x0bdb, 0xa6e: 0x0bdf, 0xa6f: 0x0be7,\n\t0xa70: 0x0beb, 0xa71: 0x0bef, 0xa72: 0x0bfb, 0xa73: 0x0bff, 0xa74: 0x0c17, 0xa75: 0x0c1f,\n\t0xa76: 0x0c2f, 0xa77: 0x0c43, 0xa78: 0x16ba, 0xa79: 0x0c3f, 0xa7a: 0x0c33, 0xa7b: 0x0c4b,\n\t0xa7c: 0x0c53, 0xa7d: 0x0c67, 0xa7e: 0x16bf, 0xa7f: 0x0c6f,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0x0c63, 0xa81: 0x0c5b, 0xa82: 0x05ef, 0xa83: 0x0c77, 0xa84: 0x0c7f, 0xa85: 0x0c87,\n\t0xa86: 0x0c7b, 0xa87: 0x05f3, 0xa88: 0x0c97, 0xa89: 0x0c9f, 0xa8a: 0x16c4, 0xa8b: 0x0ccb,\n\t0xa8c: 0x0cff, 0xa8d: 0x0cdb, 0xa8e: 0x05ff, 0xa8f: 0x0ce7, 0xa90: 0x05fb, 0xa91: 0x05f7,\n\t0xa92: 0x07c3, 0xa93: 0x07c7, 0xa94: 0x0d03, 0xa95: 0x0ceb, 0xa96: 0x11ab, 0xa97: 0x0663,\n\t0xa98: 0x0d0f, 0xa99: 0x0d13, 0xa9a: 0x0d17, 0xa9b: 0x0d2b, 0xa9c: 0x0d23, 0xa9d: 0x16dd,\n\t0xa9e: 0x0603, 0xa9f: 0x0d3f, 0xaa0: 0x0d33, 0xaa1: 0x0d4f, 0xaa2: 0x0d57, 0xaa3: 0x16e7,\n\t0xaa4: 0x0d5b, 0xaa5: 0x0d47, 0xaa6: 0x0d63, 0xaa7: 0x0607, 0xaa8: 0x0d67, 0xaa9: 0x0d6b,\n\t0xaaa: 0x0d6f, 0xaab: 0x0d7b, 0xaac: 0x16ec, 0xaad: 0x0d83, 0xaae: 0x060b, 0xaaf: 0x0d8f,\n\t0xab0: 0x16f1, 0xab1: 0x0d93, 0xab2: 0x060f, 0xab3: 0x0d9f, 0xab4: 0x0dab, 0xab5: 0x0db7,\n\t0xab6: 0x0dbb, 0xab7: 0x16f6, 0xab8: 0x168d, 0xab9: 0x16fb, 0xaba: 0x0ddb, 0xabb: 0x1700,\n\t0xabc: 0x0de7, 0xabd: 0x0def, 0xabe: 0x0ddf, 0xabf: 0x0dfb,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0x0e0b, 0xac1: 0x0e1b, 0xac2: 0x0e0f, 0xac3: 0x0e13, 0xac4: 0x0e1f, 0xac5: 0x0e23,\n\t0xac6: 0x1705, 0xac7: 0x0e07, 0xac8: 0x0e3b, 0xac9: 0x0e3f, 0xaca: 0x0613, 0xacb: 0x0e53,\n\t0xacc: 0x0e4f, 0xacd: 0x170a, 0xace: 0x0e33, 0xacf: 0x0e6f, 0xad0: 0x170f, 0xad1: 0x1714,\n\t0xad2: 0x0e73, 0xad3: 0x0e87, 0xad4: 0x0e83, 0xad5: 0x0e7f, 0xad6: 0x0617, 0xad7: 0x0e8b,\n\t0xad8: 0x0e9b, 0xad9: 0x0e97, 0xada: 0x0ea3, 0xadb: 0x1651, 0xadc: 0x0eb3, 0xadd: 0x1719,\n\t0xade: 0x0ebf, 0xadf: 0x1723, 0xae0: 0x0ed3, 0xae1: 0x0edf, 0xae2: 0x0ef3, 0xae3: 0x1728,\n\t0xae4: 0x0f07, 0xae5: 0x0f0b, 0xae6: 0x172d, 0xae7: 0x1732, 0xae8: 0x0f27, 0xae9: 0x0f37,\n\t0xaea: 0x061b, 0xaeb: 0x0f3b, 0xaec: 0x061f, 0xaed: 0x061f, 0xaee: 0x0f53, 0xaef: 0x0f57,\n\t0xaf0: 0x0f5f, 0xaf1: 0x0f63, 0xaf2: 0x0f6f, 0xaf3: 0x0623, 0xaf4: 0x0f87, 0xaf5: 0x1737,\n\t0xaf6: 0x0fa3, 0xaf7: 0x173c, 0xaf8: 0x0faf, 0xaf9: 0x16a1, 0xafa: 0x0fbf, 0xafb: 0x1741,\n\t0xafc: 0x1746, 0xafd: 0x174b, 0xafe: 0x0627, 0xaff: 0x062b,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0x0ff7, 0xb01: 0x1755, 0xb02: 0x1750, 0xb03: 0x175a, 0xb04: 0x175f, 0xb05: 0x0fff,\n\t0xb06: 0x1003, 0xb07: 0x1003, 0xb08: 0x100b, 0xb09: 0x0633, 0xb0a: 0x100f, 0xb0b: 0x0637,\n\t0xb0c: 0x063b, 0xb0d: 0x1769, 0xb0e: 0x1023, 0xb0f: 0x102b, 0xb10: 0x1037, 0xb11: 0x063f,\n\t0xb12: 0x176e, 0xb13: 0x105b, 0xb14: 0x1773, 0xb15: 0x1778, 0xb16: 0x107b, 0xb17: 0x1093,\n\t0xb18: 0x0643, 0xb19: 0x109b, 0xb1a: 0x109f, 0xb1b: 0x10a3, 0xb1c: 0x177d, 0xb1d: 0x1782,\n\t0xb1e: 0x1782, 0xb1f: 0x10bb, 0xb20: 0x0647, 0xb21: 0x1787, 0xb22: 0x10cf, 0xb23: 0x10d3,\n\t0xb24: 0x064b, 0xb25: 0x178c, 0xb26: 0x10ef, 0xb27: 0x064f, 0xb28: 0x10ff, 0xb29: 0x10f7,\n\t0xb2a: 0x1107, 0xb2b: 0x1796, 0xb2c: 0x111f, 0xb2d: 0x0653, 0xb2e: 0x112b, 0xb2f: 0x1133,\n\t0xb30: 0x1143, 0xb31: 0x0657, 0xb32: 0x17a0, 0xb33: 0x17a5, 0xb34: 0x065b, 0xb35: 0x17aa,\n\t0xb36: 0x115b, 0xb37: 0x17af, 0xb38: 0x1167, 0xb39: 0x1173, 0xb3a: 0x117b, 0xb3b: 0x17b4,\n\t0xb3c: 0x17b9, 0xb3d: 0x118f, 0xb3e: 0x17be, 0xb3f: 0x1197,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x16ce, 0xb41: 0x065f, 0xb42: 0x11af, 0xb43: 0x11b3, 0xb44: 0x0667, 0xb45: 0x11b7,\n\t0xb46: 0x0a33, 0xb47: 0x17c3, 0xb48: 0x17c8, 0xb49: 0x16d3, 0xb4a: 0x16d8, 0xb4b: 0x11d7,\n\t0xb4c: 0x11db, 0xb4d: 0x13f3, 0xb4e: 0x066b, 0xb4f: 0x1207, 0xb50: 0x1203, 0xb51: 0x120b,\n\t0xb52: 0x083f, 0xb53: 0x120f, 0xb54: 0x1213, 0xb55: 0x1217, 0xb56: 0x121f, 0xb57: 0x17cd,\n\t0xb58: 0x121b, 0xb59: 0x1223, 0xb5a: 0x1237, 0xb5b: 0x123b, 0xb5c: 0x1227, 0xb5d: 0x123f,\n\t0xb5e: 0x1253, 0xb5f: 0x1267, 0xb60: 0x1233, 0xb61: 0x1247, 0xb62: 0x124b, 0xb63: 0x124f,\n\t0xb64: 0x17d2, 0xb65: 0x17dc, 0xb66: 0x17d7, 0xb67: 0x066f, 0xb68: 0x126f, 0xb69: 0x1273,\n\t0xb6a: 0x127b, 0xb6b: 0x17f0, 0xb6c: 0x127f, 0xb6d: 0x17e1, 0xb6e: 0x0673, 0xb6f: 0x0677,\n\t0xb70: 0x17e6, 0xb71: 0x17eb, 0xb72: 0x067b, 0xb73: 0x129f, 0xb74: 0x12a3, 0xb75: 0x12a7,\n\t0xb76: 0x12ab, 0xb77: 0x12b7, 0xb78: 0x12b3, 0xb79: 0x12bf, 0xb7a: 0x12bb, 0xb7b: 0x12cb,\n\t0xb7c: 0x12c3, 0xb7d: 0x12c7, 0xb7e: 0x12cf, 0xb7f: 0x067f,\n\t// Block 0x2e, offset 0xb80\n\t0xb80: 0x12d7, 0xb81: 0x12db, 0xb82: 0x0683, 0xb83: 0x12eb, 0xb84: 0x12ef, 0xb85: 0x17f5,\n\t0xb86: 0x12fb, 0xb87: 0x12ff, 0xb88: 0x0687, 0xb89: 0x130b, 0xb8a: 0x05bb, 0xb8b: 0x17fa,\n\t0xb8c: 0x17ff, 0xb8d: 0x068b, 0xb8e: 0x068f, 0xb8f: 0x1337, 0xb90: 0x134f, 0xb91: 0x136b,\n\t0xb92: 0x137b, 0xb93: 0x1804, 0xb94: 0x138f, 0xb95: 0x1393, 0xb96: 0x13ab, 0xb97: 0x13b7,\n\t0xb98: 0x180e, 0xb99: 0x1660, 0xb9a: 0x13c3, 0xb9b: 0x13bf, 0xb9c: 0x13cb, 0xb9d: 0x1665,\n\t0xb9e: 0x13d7, 0xb9f: 0x13e3, 0xba0: 0x1813, 0xba1: 0x1818, 0xba2: 0x1423, 0xba3: 0x142f,\n\t0xba4: 0x1437, 0xba5: 0x181d, 0xba6: 0x143b, 0xba7: 0x1467, 0xba8: 0x1473, 0xba9: 0x1477,\n\t0xbaa: 0x146f, 0xbab: 0x1483, 0xbac: 0x1487, 0xbad: 0x1822, 0xbae: 0x1493, 0xbaf: 0x0693,\n\t0xbb0: 0x149b, 0xbb1: 0x1827, 0xbb2: 0x0697, 0xbb3: 0x14d3, 0xbb4: 0x0ac3, 0xbb5: 0x14eb,\n\t0xbb6: 0x182c, 0xbb7: 0x1836, 0xbb8: 0x069b, 0xbb9: 0x069f, 0xbba: 0x1513, 0xbbb: 0x183b,\n\t0xbbc: 0x06a3, 0xbbd: 0x1840, 0xbbe: 0x152b, 0xbbf: 0x152b,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc0: 0x1533, 0xbc1: 0x1845, 0xbc2: 0x154b, 0xbc3: 0x06a7, 0xbc4: 0x155b, 0xbc5: 0x1567,\n\t0xbc6: 0x156f, 0xbc7: 0x1577, 0xbc8: 0x06ab, 0xbc9: 0x184a, 0xbca: 0x158b, 0xbcb: 0x15a7,\n\t0xbcc: 0x15b3, 0xbcd: 0x06af, 0xbce: 0x06b3, 0xbcf: 0x15b7, 0xbd0: 0x184f, 0xbd1: 0x06b7,\n\t0xbd2: 0x1854, 0xbd3: 0x1859, 0xbd4: 0x185e, 0xbd5: 0x15db, 0xbd6: 0x06bb, 0xbd7: 0x15ef,\n\t0xbd8: 0x15f7, 0xbd9: 0x15fb, 0xbda: 0x1603, 0xbdb: 0x160b, 0xbdc: 0x1613, 0xbdd: 0x1868,\n}\n\n// nfcIndex: 22 blocks, 1408 entries, 1408 bytes\n// Block 0 is the zero block.\nvar nfcIndex = [1408]uint8{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x2e, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x2f, 0xc7: 0x04,\n\t0xc8: 0x05, 0xca: 0x30, 0xcb: 0x31, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x32,\n\t0xd0: 0x09, 0xd1: 0x33, 0xd2: 0x34, 0xd3: 0x0a, 0xd6: 0x0b, 0xd7: 0x35,\n\t0xd8: 0x36, 0xd9: 0x0c, 0xdb: 0x37, 0xdc: 0x38, 0xdd: 0x39, 0xdf: 0x3a,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,\n\t0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a,\n\t0xf0: 0x13,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x3b, 0x121: 0x3c, 0x123: 0x0d, 0x124: 0x3d, 0x125: 0x3e, 0x126: 0x3f, 0x127: 0x40,\n\t0x128: 0x41, 0x129: 0x42, 0x12a: 0x43, 0x12b: 0x44, 0x12c: 0x3f, 0x12d: 0x45, 0x12e: 0x46, 0x12f: 0x47,\n\t0x131: 0x48, 0x132: 0x49, 0x133: 0x4a, 0x134: 0x4b, 0x135: 0x4c, 0x137: 0x4d,\n\t0x138: 0x4e, 0x139: 0x4f, 0x13a: 0x50, 0x13b: 0x51, 0x13c: 0x52, 0x13d: 0x53, 0x13e: 0x54, 0x13f: 0x55,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x56, 0x142: 0x57, 0x144: 0x58, 0x145: 0x59, 0x146: 0x5a, 0x147: 0x5b,\n\t0x14d: 0x5c,\n\t0x15c: 0x5d, 0x15f: 0x5e,\n\t0x162: 0x5f, 0x164: 0x60,\n\t0x168: 0x61, 0x169: 0x62, 0x16a: 0x63, 0x16c: 0x0e, 0x16d: 0x64, 0x16e: 0x65, 0x16f: 0x66,\n\t0x170: 0x67, 0x173: 0x68, 0x177: 0x0f,\n\t0x178: 0x10, 0x179: 0x11, 0x17a: 0x12, 0x17b: 0x13, 0x17c: 0x14, 0x17d: 0x15, 0x17e: 0x16, 0x17f: 0x17,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x69, 0x183: 0x6a, 0x184: 0x6b, 0x186: 0x6c, 0x187: 0x6d,\n\t0x188: 0x6e, 0x189: 0x18, 0x18a: 0x19, 0x18b: 0x6f, 0x18c: 0x70,\n\t0x1ab: 0x71,\n\t0x1b3: 0x72, 0x1b5: 0x73, 0x1b7: 0x74,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x75, 0x1c1: 0x1a, 0x1c2: 0x1b, 0x1c3: 0x1c, 0x1c4: 0x76, 0x1c5: 0x77,\n\t0x1c9: 0x78, 0x1cc: 0x79, 0x1cd: 0x7a,\n\t// Block 0x8, offset 0x200\n\t0x219: 0x7b, 0x21a: 0x7c, 0x21b: 0x7d,\n\t0x220: 0x7e, 0x223: 0x7f, 0x224: 0x80, 0x225: 0x81, 0x226: 0x82, 0x227: 0x83,\n\t0x22a: 0x84, 0x22b: 0x85, 0x22f: 0x86,\n\t0x230: 0x87, 0x231: 0x88, 0x232: 0x89, 0x233: 0x8a, 0x234: 0x8b, 0x235: 0x8c, 0x236: 0x8d, 0x237: 0x87,\n\t0x238: 0x88, 0x239: 0x89, 0x23a: 0x8a, 0x23b: 0x8b, 0x23c: 0x8c, 0x23d: 0x8d, 0x23e: 0x87, 0x23f: 0x88,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x89, 0x241: 0x8a, 0x242: 0x8b, 0x243: 0x8c, 0x244: 0x8d, 0x245: 0x87, 0x246: 0x88, 0x247: 0x89,\n\t0x248: 0x8a, 0x249: 0x8b, 0x24a: 0x8c, 0x24b: 0x8d, 0x24c: 0x87, 0x24d: 0x88, 0x24e: 0x89, 0x24f: 0x8a,\n\t0x250: 0x8b, 0x251: 0x8c, 0x252: 0x8d, 0x253: 0x87, 0x254: 0x88, 0x255: 0x89, 0x256: 0x8a, 0x257: 0x8b,\n\t0x258: 0x8c, 0x259: 0x8d, 0x25a: 0x87, 0x25b: 0x88, 0x25c: 0x89, 0x25d: 0x8a, 0x25e: 0x8b, 0x25f: 0x8c,\n\t0x260: 0x8d, 0x261: 0x87, 0x262: 0x88, 0x263: 0x89, 0x264: 0x8a, 0x265: 0x8b, 0x266: 0x8c, 0x267: 0x8d,\n\t0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26c: 0x8b, 0x26d: 0x8c, 0x26e: 0x8d, 0x26f: 0x87,\n\t0x270: 0x88, 0x271: 0x89, 0x272: 0x8a, 0x273: 0x8b, 0x274: 0x8c, 0x275: 0x8d, 0x276: 0x87, 0x277: 0x88,\n\t0x278: 0x89, 0x279: 0x8a, 0x27a: 0x8b, 0x27b: 0x8c, 0x27c: 0x8d, 0x27d: 0x87, 0x27e: 0x88, 0x27f: 0x89,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x8a, 0x281: 0x8b, 0x282: 0x8c, 0x283: 0x8d, 0x284: 0x87, 0x285: 0x88, 0x286: 0x89, 0x287: 0x8a,\n\t0x288: 0x8b, 0x289: 0x8c, 0x28a: 0x8d, 0x28b: 0x87, 0x28c: 0x88, 0x28d: 0x89, 0x28e: 0x8a, 0x28f: 0x8b,\n\t0x290: 0x8c, 0x291: 0x8d, 0x292: 0x87, 0x293: 0x88, 0x294: 0x89, 0x295: 0x8a, 0x296: 0x8b, 0x297: 0x8c,\n\t0x298: 0x8d, 0x299: 0x87, 0x29a: 0x88, 0x29b: 0x89, 0x29c: 0x8a, 0x29d: 0x8b, 0x29e: 0x8c, 0x29f: 0x8d,\n\t0x2a0: 0x87, 0x2a1: 0x88, 0x2a2: 0x89, 0x2a3: 0x8a, 0x2a4: 0x8b, 0x2a5: 0x8c, 0x2a6: 0x8d, 0x2a7: 0x87,\n\t0x2a8: 0x88, 0x2a9: 0x89, 0x2aa: 0x8a, 0x2ab: 0x8b, 0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x87, 0x2af: 0x88,\n\t0x2b0: 0x89, 0x2b1: 0x8a, 0x2b2: 0x8b, 0x2b3: 0x8c, 0x2b4: 0x8d, 0x2b5: 0x87, 0x2b6: 0x88, 0x2b7: 0x89,\n\t0x2b8: 0x8a, 0x2b9: 0x8b, 0x2ba: 0x8c, 0x2bb: 0x8d, 0x2bc: 0x87, 0x2bd: 0x88, 0x2be: 0x89, 0x2bf: 0x8a,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x8b, 0x2c1: 0x8c, 0x2c2: 0x8d, 0x2c3: 0x87, 0x2c4: 0x88, 0x2c5: 0x89, 0x2c6: 0x8a, 0x2c7: 0x8b,\n\t0x2c8: 0x8c, 0x2c9: 0x8d, 0x2ca: 0x87, 0x2cb: 0x88, 0x2cc: 0x89, 0x2cd: 0x8a, 0x2ce: 0x8b, 0x2cf: 0x8c,\n\t0x2d0: 0x8d, 0x2d1: 0x87, 0x2d2: 0x88, 0x2d3: 0x89, 0x2d4: 0x8a, 0x2d5: 0x8b, 0x2d6: 0x8c, 0x2d7: 0x8d,\n\t0x2d8: 0x87, 0x2d9: 0x88, 0x2da: 0x89, 0x2db: 0x8a, 0x2dc: 0x8b, 0x2dd: 0x8c, 0x2de: 0x8e,\n\t// Block 0xc, offset 0x300\n\t0x324: 0x1d, 0x325: 0x1e, 0x326: 0x1f, 0x327: 0x20,\n\t0x328: 0x21, 0x329: 0x22, 0x32a: 0x23, 0x32b: 0x24, 0x32c: 0x8f, 0x32d: 0x90, 0x32e: 0x91,\n\t0x331: 0x92, 0x332: 0x93, 0x333: 0x94, 0x334: 0x95,\n\t0x338: 0x96, 0x339: 0x97, 0x33a: 0x98, 0x33b: 0x99, 0x33e: 0x9a, 0x33f: 0x9b,\n\t// Block 0xd, offset 0x340\n\t0x347: 0x9c,\n\t0x34b: 0x9d, 0x34d: 0x9e,\n\t0x368: 0x9f, 0x36b: 0xa0,\n\t0x374: 0xa1,\n\t0x37d: 0xa2,\n\t// Block 0xe, offset 0x380\n\t0x381: 0xa3, 0x382: 0xa4, 0x384: 0xa5, 0x385: 0x82, 0x387: 0xa6,\n\t0x388: 0xa7, 0x38b: 0xa8, 0x38c: 0xa9, 0x38d: 0xaa,\n\t0x391: 0xab, 0x392: 0xac, 0x393: 0xad, 0x396: 0xae, 0x397: 0xaf,\n\t0x398: 0x73, 0x39a: 0xb0, 0x39c: 0xb1,\n\t0x3a0: 0xb2, 0x3a7: 0xb3,\n\t0x3a8: 0xb4, 0x3a9: 0xb5, 0x3aa: 0xb6,\n\t0x3b0: 0x73, 0x3b5: 0xb7, 0x3b6: 0xb8,\n\t// Block 0xf, offset 0x3c0\n\t0x3eb: 0xb9, 0x3ec: 0xba,\n\t// Block 0x10, offset 0x400\n\t0x432: 0xbb,\n\t// Block 0x11, offset 0x440\n\t0x445: 0xbc, 0x446: 0xbd, 0x447: 0xbe,\n\t0x449: 0xbf,\n\t// Block 0x12, offset 0x480\n\t0x480: 0xc0, 0x484: 0xba,\n\t0x48b: 0xc1,\n\t0x4a3: 0xc2, 0x4a5: 0xc3,\n\t// Block 0x13, offset 0x4c0\n\t0x4c8: 0xc4,\n\t// Block 0x14, offset 0x500\n\t0x520: 0x25, 0x521: 0x26, 0x522: 0x27, 0x523: 0x28, 0x524: 0x29, 0x525: 0x2a, 0x526: 0x2b, 0x527: 0x2c,\n\t0x528: 0x2d,\n\t// Block 0x15, offset 0x540\n\t0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,\n\t0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,\n\t0x56f: 0x12,\n}\n\n// nfcSparseOffset: 151 entries, 302 bytes\nvar nfcSparseOffset = []uint16{0x0, 0x5, 0x9, 0xb, 0xd, 0x18, 0x28, 0x2a, 0x2f, 0x3a, 0x49, 0x56, 0x5e, 0x63, 0x68, 0x6a, 0x72, 0x79, 0x7c, 0x84, 0x88, 0x8c, 0x8e, 0x90, 0x99, 0x9d, 0xa4, 0xa9, 0xac, 0xb6, 0xb9, 0xc0, 0xc8, 0xcb, 0xcd, 0xd0, 0xd2, 0xd7, 0xe8, 0xf4, 0xf6, 0xfc, 0xfe, 0x100, 0x102, 0x104, 0x106, 0x108, 0x10b, 0x10e, 0x110, 0x113, 0x116, 0x11a, 0x11f, 0x128, 0x12a, 0x12d, 0x12f, 0x13a, 0x13e, 0x14c, 0x14f, 0x155, 0x15b, 0x166, 0x16a, 0x16c, 0x16e, 0x170, 0x172, 0x174, 0x17a, 0x17e, 0x180, 0x182, 0x18a, 0x18e, 0x191, 0x193, 0x195, 0x197, 0x19a, 0x19c, 0x19e, 0x1a0, 0x1a2, 0x1a8, 0x1ab, 0x1ad, 0x1b4, 0x1ba, 0x1c0, 0x1c8, 0x1ce, 0x1d4, 0x1da, 0x1de, 0x1ec, 0x1f5, 0x1f8, 0x1fb, 0x1fd, 0x200, 0x202, 0x206, 0x20b, 0x20d, 0x20f, 0x214, 0x21a, 0x21c, 0x21e, 0x220, 0x226, 0x229, 0x22b, 0x231, 0x234, 0x23c, 0x243, 0x246, 0x249, 0x24b, 0x24e, 0x256, 0x25a, 0x261, 0x264, 0x26a, 0x26c, 0x26f, 0x271, 0x274, 0x276, 0x278, 0x27a, 0x27c, 0x27f, 0x281, 0x283, 0x285, 0x287, 0x294, 0x29e, 0x2a0, 0x2a2, 0x2a8, 0x2aa, 0x2ac, 0x2af}\n\n// nfcSparseValues: 689 entries, 2756 bytes\nvar nfcSparseValues = [689]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0xa100, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8100, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8100, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8100, lo: 0xb8, hi: 0xb8},\n\t// Block 0x1, offset 0x5\n\t{value: 0x0091, lo: 0x03},\n\t{value: 0x46e5, lo: 0xa0, hi: 0xa1},\n\t{value: 0x4717, lo: 0xaf, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb7, hi: 0xb7},\n\t// Block 0x2, offset 0x9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t// Block 0x3, offset 0xb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x98, hi: 0x9d},\n\t// Block 0x4, offset 0xd\n\t{value: 0x0006, lo: 0x0a},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x85, hi: 0x85},\n\t{value: 0xa000, lo: 0x89, hi: 0x89},\n\t{value: 0x4843, lo: 0x8a, hi: 0x8a},\n\t{value: 0x4861, lo: 0x8b, hi: 0x8b},\n\t{value: 0x36ca, lo: 0x8c, hi: 0x8c},\n\t{value: 0x36e2, lo: 0x8d, hi: 0x8d},\n\t{value: 0x4879, lo: 0x8e, hi: 0x8e},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x3700, lo: 0x93, hi: 0x94},\n\t// Block 0x5, offset 0x18\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0xa000, lo: 0x8d, hi: 0x8d},\n\t{value: 0x37a8, lo: 0x90, hi: 0x90},\n\t{value: 0x37b4, lo: 0x91, hi: 0x91},\n\t{value: 0x37a2, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x96, hi: 0x96},\n\t{value: 0x381a, lo: 0x97, hi: 0x97},\n\t{value: 0x37e4, lo: 0x9c, hi: 0x9c},\n\t{value: 0x37cc, lo: 0x9d, hi: 0x9d},\n\t{value: 0x37f6, lo: 0x9e, hi: 0x9e},\n\t{value: 0xa000, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3820, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3826, lo: 0xb7, hi: 0xb7},\n\t// Block 0x6, offset 0x28\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x83, hi: 0x87},\n\t// Block 0x7, offset 0x2a\n\t{value: 0x0001, lo: 0x04},\n\t{value: 0x8113, lo: 0x81, hi: 0x82},\n\t{value: 0x8132, lo: 0x84, hi: 0x84},\n\t{value: 0x812d, lo: 0x85, hi: 0x85},\n\t{value: 0x810d, lo: 0x87, hi: 0x87},\n\t// Block 0x8, offset 0x2f\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x97},\n\t{value: 0x8119, lo: 0x98, hi: 0x98},\n\t{value: 0x811a, lo: 0x99, hi: 0x99},\n\t{value: 0x811b, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3844, lo: 0xa2, hi: 0xa2},\n\t{value: 0x384a, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3856, lo: 0xa4, hi: 0xa4},\n\t{value: 0x3850, lo: 0xa5, hi: 0xa5},\n\t{value: 0x385c, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xa7, hi: 0xa7},\n\t// Block 0x9, offset 0x3a\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x386e, lo: 0x80, hi: 0x80},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0x3862, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x3868, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x95, hi: 0x95},\n\t{value: 0x8132, lo: 0x96, hi: 0x9c},\n\t{value: 0x8132, lo: 0x9f, hi: 0xa2},\n\t{value: 0x812d, lo: 0xa3, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa8},\n\t{value: 0x812d, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8132, lo: 0xab, hi: 0xac},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t// Block 0xa, offset 0x49\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x811f, lo: 0x91, hi: 0x91},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x812d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb5, hi: 0xb6},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb9},\n\t{value: 0x8132, lo: 0xba, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbc},\n\t{value: 0x8132, lo: 0xbd, hi: 0xbd},\n\t{value: 0x812d, lo: 0xbe, hi: 0xbe},\n\t{value: 0x8132, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb, offset 0x56\n\t{value: 0x0005, lo: 0x07},\n\t{value: 0x8132, lo: 0x80, hi: 0x80},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x812d, lo: 0x82, hi: 0x83},\n\t{value: 0x812d, lo: 0x84, hi: 0x85},\n\t{value: 0x812d, lo: 0x86, hi: 0x87},\n\t{value: 0x812d, lo: 0x88, hi: 0x89},\n\t{value: 0x8132, lo: 0x8a, hi: 0x8a},\n\t// Block 0xc, offset 0x5e\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0xab, hi: 0xb1},\n\t{value: 0x812d, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8132, lo: 0xb3, hi: 0xb3},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0xd, offset 0x63\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0x96, hi: 0x99},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa7},\n\t{value: 0x8132, lo: 0xa9, hi: 0xad},\n\t// Block 0xe, offset 0x68\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x99, hi: 0x9b},\n\t// Block 0xf, offset 0x6a\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3edb, lo: 0xa9, hi: 0xa9},\n\t{value: 0xa000, lo: 0xb0, hi: 0xb0},\n\t{value: 0x3ee3, lo: 0xb1, hi: 0xb1},\n\t{value: 0xa000, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3eeb, lo: 0xb4, hi: 0xb4},\n\t{value: 0x9902, lo: 0xbc, hi: 0xbc},\n\t// Block 0x10, offset 0x72\n\t{value: 0x0008, lo: 0x06},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x91, hi: 0x91},\n\t{value: 0x812d, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x93, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x94},\n\t{value: 0x451f, lo: 0x98, hi: 0x9f},\n\t// Block 0x11, offset 0x79\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x12, offset 0x7c\n\t{value: 0x0008, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2ca1, lo: 0x8b, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x455f, lo: 0x9c, hi: 0x9d},\n\t{value: 0x456f, lo: 0x9f, hi: 0x9f},\n\t{value: 0x8132, lo: 0xbe, hi: 0xbe},\n\t// Block 0x13, offset 0x84\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x4597, lo: 0xb3, hi: 0xb3},\n\t{value: 0x459f, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x14, offset 0x88\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x4577, lo: 0x99, hi: 0x9b},\n\t{value: 0x458f, lo: 0x9e, hi: 0x9e},\n\t// Block 0x15, offset 0x8c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x16, offset 0x8e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t// Block 0x17, offset 0x90\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2cb9, lo: 0x88, hi: 0x88},\n\t{value: 0x2cb1, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cc1, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x96, hi: 0x97},\n\t{value: 0x45a7, lo: 0x9c, hi: 0x9c},\n\t{value: 0x45af, lo: 0x9d, hi: 0x9d},\n\t// Block 0x18, offset 0x99\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x2cc9, lo: 0x94, hi: 0x94},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x19, offset 0x9d\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cd1, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2ce1, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cd9, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1a, offset 0xa4\n\t{value: 0x1801, lo: 0x04},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x3ef3, lo: 0x88, hi: 0x88},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8120, lo: 0x95, hi: 0x96},\n\t// Block 0x1b, offset 0xa9\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0xa000, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1c, offset 0xac\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x2ce9, lo: 0x80, hi: 0x80},\n\t{value: 0x9900, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x2cf1, lo: 0x87, hi: 0x87},\n\t{value: 0x2cf9, lo: 0x88, hi: 0x88},\n\t{value: 0x2f53, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2ddb, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x95, hi: 0x96},\n\t// Block 0x1d, offset 0xb6\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xbb, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1e, offset 0xb9\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2d01, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2d11, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d09, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1f, offset 0xc0\n\t{value: 0x6be7, lo: 0x07},\n\t{value: 0x9904, lo: 0x8a, hi: 0x8a},\n\t{value: 0x9900, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x3efb, lo: 0x9a, hi: 0x9a},\n\t{value: 0x2f5b, lo: 0x9c, hi: 0x9c},\n\t{value: 0x2de6, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2d19, lo: 0x9e, hi: 0x9f},\n\t// Block 0x20, offset 0xc8\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8122, lo: 0xb8, hi: 0xb9},\n\t{value: 0x8104, lo: 0xba, hi: 0xba},\n\t// Block 0x21, offset 0xcb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8123, lo: 0x88, hi: 0x8b},\n\t// Block 0x22, offset 0xcd\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8124, lo: 0xb8, hi: 0xb9},\n\t{value: 0x8104, lo: 0xba, hi: 0xba},\n\t// Block 0x23, offset 0xd0\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8125, lo: 0x88, hi: 0x8b},\n\t// Block 0x24, offset 0xd2\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x812d, lo: 0x98, hi: 0x99},\n\t{value: 0x812d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb7},\n\t{value: 0x812b, lo: 0xb9, hi: 0xb9},\n\t// Block 0x25, offset 0xd7\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x2647, lo: 0x83, hi: 0x83},\n\t{value: 0x264e, lo: 0x8d, hi: 0x8d},\n\t{value: 0x2655, lo: 0x92, hi: 0x92},\n\t{value: 0x265c, lo: 0x97, hi: 0x97},\n\t{value: 0x2663, lo: 0x9c, hi: 0x9c},\n\t{value: 0x2640, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8126, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8127, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4a87, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8128, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4a90, lo: 0xb5, hi: 0xb5},\n\t{value: 0x45b7, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8200, lo: 0xb7, hi: 0xb7},\n\t{value: 0x45bf, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8200, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8127, lo: 0xba, hi: 0xbd},\n\t// Block 0x26, offset 0xe8\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x8127, lo: 0x80, hi: 0x80},\n\t{value: 0x4a99, lo: 0x81, hi: 0x81},\n\t{value: 0x8132, lo: 0x82, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0x86, hi: 0x87},\n\t{value: 0x2671, lo: 0x93, hi: 0x93},\n\t{value: 0x2678, lo: 0x9d, hi: 0x9d},\n\t{value: 0x267f, lo: 0xa2, hi: 0xa2},\n\t{value: 0x2686, lo: 0xa7, hi: 0xa7},\n\t{value: 0x268d, lo: 0xac, hi: 0xac},\n\t{value: 0x266a, lo: 0xb9, hi: 0xb9},\n\t// Block 0x27, offset 0xf4\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x86, hi: 0x86},\n\t// Block 0x28, offset 0xf6\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x2d21, lo: 0xa6, hi: 0xa6},\n\t{value: 0x9900, lo: 0xae, hi: 0xae},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x29, offset 0xfc\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t// Block 0x2a, offset 0xfe\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x80, hi: 0x92},\n\t// Block 0x2b, offset 0x100\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xb900, lo: 0xa1, hi: 0xb5},\n\t// Block 0x2c, offset 0x102\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0xa8, hi: 0xbf},\n\t// Block 0x2d, offset 0x104\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0x80, hi: 0x82},\n\t// Block 0x2e, offset 0x106\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9f},\n\t// Block 0x2f, offset 0x108\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x94, hi: 0x94},\n\t{value: 0x8104, lo: 0xb4, hi: 0xb4},\n\t// Block 0x30, offset 0x10b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9d},\n\t// Block 0x31, offset 0x10e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8131, lo: 0xa9, hi: 0xa9},\n\t// Block 0x32, offset 0x110\n\t{value: 0x0004, lo: 0x02},\n\t{value: 0x812e, lo: 0xb9, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbb},\n\t// Block 0x33, offset 0x113\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x97, hi: 0x97},\n\t{value: 0x812d, lo: 0x98, hi: 0x98},\n\t// Block 0x34, offset 0x116\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8104, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8132, lo: 0xb5, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbf, hi: 0xbf},\n\t// Block 0x35, offset 0x11a\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t{value: 0x812d, lo: 0xb5, hi: 0xba},\n\t{value: 0x8132, lo: 0xbb, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x36, offset 0x11f\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x2d69, lo: 0x80, hi: 0x80},\n\t{value: 0x2d71, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x82, hi: 0x82},\n\t{value: 0x2d79, lo: 0x83, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xab, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xac},\n\t{value: 0x8132, lo: 0xad, hi: 0xb3},\n\t// Block 0x37, offset 0x128\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xaa, hi: 0xab},\n\t// Block 0x38, offset 0x12a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xa6, hi: 0xa6},\n\t{value: 0x8104, lo: 0xb2, hi: 0xb3},\n\t// Block 0x39, offset 0x12d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x3a, offset 0x12f\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x92},\n\t{value: 0x8101, lo: 0x94, hi: 0x94},\n\t{value: 0x812d, lo: 0x95, hi: 0x99},\n\t{value: 0x8132, lo: 0x9a, hi: 0x9b},\n\t{value: 0x812d, lo: 0x9c, hi: 0x9f},\n\t{value: 0x8132, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8101, lo: 0xa2, hi: 0xa8},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t{value: 0x8132, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb9},\n\t// Block 0x3b, offset 0x13a\n\t{value: 0x0004, lo: 0x03},\n\t{value: 0x0433, lo: 0x80, hi: 0x81},\n\t{value: 0x8100, lo: 0x97, hi: 0x97},\n\t{value: 0x8100, lo: 0xbe, hi: 0xbe},\n\t// Block 0x3c, offset 0x13e\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x8132, lo: 0x90, hi: 0x91},\n\t{value: 0x8101, lo: 0x92, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x97},\n\t{value: 0x8101, lo: 0x98, hi: 0x9a},\n\t{value: 0x8132, lo: 0x9b, hi: 0x9c},\n\t{value: 0x8132, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8101, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa7},\n\t{value: 0x812d, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8132, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8101, lo: 0xaa, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t// Block 0x3d, offset 0x14c\n\t{value: 0x427e, lo: 0x02},\n\t{value: 0x01b8, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0057, lo: 0xaa, hi: 0xab},\n\t// Block 0x3e, offset 0x14f\n\t{value: 0x0007, lo: 0x05},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t{value: 0x3bbc, lo: 0x9a, hi: 0x9b},\n\t{value: 0x3bca, lo: 0xae, hi: 0xae},\n\t// Block 0x3f, offset 0x155\n\t{value: 0x000e, lo: 0x05},\n\t{value: 0x3bd1, lo: 0x8d, hi: 0x8e},\n\t{value: 0x3bd8, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t// Block 0x40, offset 0x15b\n\t{value: 0x6405, lo: 0x0a},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0x3be6, lo: 0x84, hi: 0x84},\n\t{value: 0xa000, lo: 0x88, hi: 0x88},\n\t{value: 0x3bed, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0x3bf4, lo: 0x8c, hi: 0x8c},\n\t{value: 0xa000, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3bfb, lo: 0xa4, hi: 0xa5},\n\t{value: 0x3c02, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xbc, hi: 0xbc},\n\t// Block 0x41, offset 0x166\n\t{value: 0x0007, lo: 0x03},\n\t{value: 0x3c6b, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3c95, lo: 0xa2, hi: 0xa3},\n\t{value: 0x3cbf, lo: 0xaa, hi: 0xad},\n\t// Block 0x42, offset 0x16a\n\t{value: 0x0004, lo: 0x01},\n\t{value: 0x048b, lo: 0xa9, hi: 0xaa},\n\t// Block 0x43, offset 0x16c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x44e0, lo: 0x9c, hi: 0x9c},\n\t// Block 0x44, offset 0x16e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xaf, hi: 0xb1},\n\t// Block 0x45, offset 0x170\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x46, offset 0x172\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xa0, hi: 0xbf},\n\t// Block 0x47, offset 0x174\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x812c, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8131, lo: 0xab, hi: 0xab},\n\t{value: 0x8133, lo: 0xac, hi: 0xac},\n\t{value: 0x812e, lo: 0xad, hi: 0xad},\n\t{value: 0x812f, lo: 0xae, hi: 0xaf},\n\t// Block 0x48, offset 0x17a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x4aa2, lo: 0xb3, hi: 0xb3},\n\t{value: 0x4aa2, lo: 0xb5, hi: 0xb6},\n\t{value: 0x4aa2, lo: 0xba, hi: 0xbf},\n\t// Block 0x49, offset 0x17e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x4aa2, lo: 0x8f, hi: 0xa3},\n\t// Block 0x4a, offset 0x180\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xae, hi: 0xbe},\n\t// Block 0x4b, offset 0x182\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x8100, lo: 0x84, hi: 0x84},\n\t{value: 0x8100, lo: 0x87, hi: 0x87},\n\t{value: 0x8100, lo: 0x90, hi: 0x90},\n\t{value: 0x8100, lo: 0x9e, hi: 0x9e},\n\t{value: 0x8100, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8100, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8100, lo: 0xbb, hi: 0xbb},\n\t// Block 0x4c, offset 0x18a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8100, lo: 0x80, hi: 0x80},\n\t{value: 0x8100, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8100, lo: 0x8e, hi: 0x8e},\n\t// Block 0x4d, offset 0x18e\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb4, hi: 0xbd},\n\t// Block 0x4e, offset 0x191\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x9e, hi: 0x9f},\n\t// Block 0x4f, offset 0x193\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb1},\n\t// Block 0x50, offset 0x195\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t// Block 0x51, offset 0x197\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xa0, hi: 0xb1},\n\t// Block 0x52, offset 0x19a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xab, hi: 0xad},\n\t// Block 0x53, offset 0x19c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x93, hi: 0x93},\n\t// Block 0x54, offset 0x19e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb3, hi: 0xb3},\n\t// Block 0x55, offset 0x1a0\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t// Block 0x56, offset 0x1a2\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb7, hi: 0xb8},\n\t{value: 0x8132, lo: 0xbe, hi: 0xbf},\n\t// Block 0x57, offset 0x1a8\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t// Block 0x58, offset 0x1ab\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xad, hi: 0xad},\n\t// Block 0x59, offset 0x1ad\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe500, lo: 0x80, hi: 0x80},\n\t{value: 0xc600, lo: 0x81, hi: 0x9b},\n\t{value: 0xe500, lo: 0x9c, hi: 0x9c},\n\t{value: 0xc600, lo: 0x9d, hi: 0xb7},\n\t{value: 0xe500, lo: 0xb8, hi: 0xb8},\n\t{value: 0xc600, lo: 0xb9, hi: 0xbf},\n\t// Block 0x5a, offset 0x1b4\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x93},\n\t{value: 0xe500, lo: 0x94, hi: 0x94},\n\t{value: 0xc600, lo: 0x95, hi: 0xaf},\n\t{value: 0xe500, lo: 0xb0, hi: 0xb0},\n\t{value: 0xc600, lo: 0xb1, hi: 0xbf},\n\t// Block 0x5b, offset 0x1ba\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8b},\n\t{value: 0xe500, lo: 0x8c, hi: 0x8c},\n\t{value: 0xc600, lo: 0x8d, hi: 0xa7},\n\t{value: 0xe500, lo: 0xa8, hi: 0xa8},\n\t{value: 0xc600, lo: 0xa9, hi: 0xbf},\n\t// Block 0x5c, offset 0x1c0\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xc600, lo: 0x80, hi: 0x83},\n\t{value: 0xe500, lo: 0x84, hi: 0x84},\n\t{value: 0xc600, lo: 0x85, hi: 0x9f},\n\t{value: 0xe500, lo: 0xa0, hi: 0xa0},\n\t{value: 0xc600, lo: 0xa1, hi: 0xbb},\n\t{value: 0xe500, lo: 0xbc, hi: 0xbc},\n\t{value: 0xc600, lo: 0xbd, hi: 0xbf},\n\t// Block 0x5d, offset 0x1c8\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x97},\n\t{value: 0xe500, lo: 0x98, hi: 0x98},\n\t{value: 0xc600, lo: 0x99, hi: 0xb3},\n\t{value: 0xe500, lo: 0xb4, hi: 0xb4},\n\t{value: 0xc600, lo: 0xb5, hi: 0xbf},\n\t// Block 0x5e, offset 0x1ce\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8f},\n\t{value: 0xe500, lo: 0x90, hi: 0x90},\n\t{value: 0xc600, lo: 0x91, hi: 0xab},\n\t{value: 0xe500, lo: 0xac, hi: 0xac},\n\t{value: 0xc600, lo: 0xad, hi: 0xbf},\n\t// Block 0x5f, offset 0x1d4\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t{value: 0xe500, lo: 0xa4, hi: 0xa4},\n\t{value: 0xc600, lo: 0xa5, hi: 0xbf},\n\t// Block 0x60, offset 0x1da\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t// Block 0x61, offset 0x1de\n\t{value: 0x0006, lo: 0x0d},\n\t{value: 0x4393, lo: 0x9d, hi: 0x9d},\n\t{value: 0x8115, lo: 0x9e, hi: 0x9e},\n\t{value: 0x4405, lo: 0x9f, hi: 0x9f},\n\t{value: 0x43f3, lo: 0xaa, hi: 0xab},\n\t{value: 0x44f7, lo: 0xac, hi: 0xac},\n\t{value: 0x44ff, lo: 0xad, hi: 0xad},\n\t{value: 0x434b, lo: 0xae, hi: 0xb1},\n\t{value: 0x4369, lo: 0xb2, hi: 0xb4},\n\t{value: 0x4381, lo: 0xb5, hi: 0xb6},\n\t{value: 0x438d, lo: 0xb8, hi: 0xb8},\n\t{value: 0x4399, lo: 0xb9, hi: 0xbb},\n\t{value: 0x43b1, lo: 0xbc, hi: 0xbc},\n\t{value: 0x43b7, lo: 0xbe, hi: 0xbe},\n\t// Block 0x62, offset 0x1ec\n\t{value: 0x0006, lo: 0x08},\n\t{value: 0x43bd, lo: 0x80, hi: 0x81},\n\t{value: 0x43c9, lo: 0x83, hi: 0x84},\n\t{value: 0x43db, lo: 0x86, hi: 0x89},\n\t{value: 0x43ff, lo: 0x8a, hi: 0x8a},\n\t{value: 0x437b, lo: 0x8b, hi: 0x8b},\n\t{value: 0x4363, lo: 0x8c, hi: 0x8c},\n\t{value: 0x43ab, lo: 0x8d, hi: 0x8d},\n\t{value: 0x43d5, lo: 0x8e, hi: 0x8e},\n\t// Block 0x63, offset 0x1f5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0xa4, hi: 0xa5},\n\t{value: 0x8100, lo: 0xb0, hi: 0xb1},\n\t// Block 0x64, offset 0x1f8\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0x9b, hi: 0x9d},\n\t{value: 0x8200, lo: 0x9e, hi: 0xa3},\n\t// Block 0x65, offset 0x1fb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x90, hi: 0x90},\n\t// Block 0x66, offset 0x1fd\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0x99, hi: 0x99},\n\t{value: 0x8200, lo: 0xb2, hi: 0xb4},\n\t// Block 0x67, offset 0x200\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xbc, hi: 0xbd},\n\t// Block 0x68, offset 0x202\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8132, lo: 0xa0, hi: 0xa6},\n\t{value: 0x812d, lo: 0xa7, hi: 0xad},\n\t{value: 0x8132, lo: 0xae, hi: 0xaf},\n\t// Block 0x69, offset 0x206\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8100, lo: 0x89, hi: 0x8c},\n\t{value: 0x8100, lo: 0xb0, hi: 0xb2},\n\t{value: 0x8100, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8100, lo: 0xb6, hi: 0xbf},\n\t// Block 0x6a, offset 0x20b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x81, hi: 0x8c},\n\t// Block 0x6b, offset 0x20d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xb5, hi: 0xba},\n\t// Block 0x6c, offset 0x20f\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x4aa2, lo: 0x9e, hi: 0x9f},\n\t{value: 0x4aa2, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4aa2, lo: 0xa5, hi: 0xa6},\n\t{value: 0x4aa2, lo: 0xaa, hi: 0xaf},\n\t// Block 0x6d, offset 0x214\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x4aa2, lo: 0x82, hi: 0x87},\n\t{value: 0x4aa2, lo: 0x8a, hi: 0x8f},\n\t{value: 0x4aa2, lo: 0x92, hi: 0x97},\n\t{value: 0x4aa2, lo: 0x9a, hi: 0x9c},\n\t{value: 0x8100, lo: 0xa3, hi: 0xa3},\n\t// Block 0x6e, offset 0x21a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x6f, offset 0x21c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xa0, hi: 0xa0},\n\t// Block 0x70, offset 0x21e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb6, hi: 0xba},\n\t// Block 0x71, offset 0x220\n\t{value: 0x002c, lo: 0x05},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x8f, hi: 0x8f},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8101, lo: 0xb9, hi: 0xba},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x72, offset 0x226\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa5},\n\t{value: 0x812d, lo: 0xa6, hi: 0xa6},\n\t// Block 0x73, offset 0x229\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa7},\n\t// Block 0x74, offset 0x22b\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x812d, lo: 0x86, hi: 0x87},\n\t{value: 0x8132, lo: 0x88, hi: 0x8a},\n\t{value: 0x812d, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8132, lo: 0x8c, hi: 0x8c},\n\t{value: 0x812d, lo: 0x8d, hi: 0x90},\n\t// Block 0x75, offset 0x231\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x76, offset 0x234\n\t{value: 0x17fe, lo: 0x07},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x423b, lo: 0x9a, hi: 0x9a},\n\t{value: 0xa000, lo: 0x9b, hi: 0x9b},\n\t{value: 0x4245, lo: 0x9c, hi: 0x9c},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x424f, lo: 0xab, hi: 0xab},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x77, offset 0x23c\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x8132, lo: 0x80, hi: 0x82},\n\t{value: 0x9900, lo: 0xa7, hi: 0xa7},\n\t{value: 0x2d81, lo: 0xae, hi: 0xae},\n\t{value: 0x2d8b, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb1, hi: 0xb2},\n\t{value: 0x8104, lo: 0xb3, hi: 0xb4},\n\t// Block 0x78, offset 0x243\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0x79, offset 0x246\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb5, hi: 0xb5},\n\t{value: 0x8102, lo: 0xb6, hi: 0xb6},\n\t// Block 0x7a, offset 0x249\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x8102, lo: 0xa9, hi: 0xaa},\n\t// Block 0x7b, offset 0x24b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbb, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x7c, offset 0x24e\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2d95, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d9f, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x8132, lo: 0xa6, hi: 0xac},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t// Block 0x7d, offset 0x256\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x86, hi: 0x86},\n\t{value: 0x8132, lo: 0x9e, hi: 0x9e},\n\t// Block 0x7e, offset 0x25a\n\t{value: 0x6b57, lo: 0x06},\n\t{value: 0x9900, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb9, hi: 0xb9},\n\t{value: 0x9900, lo: 0xba, hi: 0xba},\n\t{value: 0x2db3, lo: 0xbb, hi: 0xbb},\n\t{value: 0x2da9, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2dbd, lo: 0xbe, hi: 0xbe},\n\t// Block 0x7f, offset 0x261\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x83, hi: 0x83},\n\t// Block 0x80, offset 0x264\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x9900, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2dc7, lo: 0xba, hi: 0xba},\n\t{value: 0x2dd1, lo: 0xbb, hi: 0xbb},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x81, offset 0x26a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0x80, hi: 0x80},\n\t// Block 0x82, offset 0x26c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x83, offset 0x26f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xab, hi: 0xab},\n\t// Block 0x84, offset 0x271\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8102, lo: 0xba, hi: 0xba},\n\t// Block 0x85, offset 0x274\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xa0, hi: 0xa0},\n\t// Block 0x86, offset 0x276\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xb4, hi: 0xb4},\n\t// Block 0x87, offset 0x278\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x87, hi: 0x87},\n\t// Block 0x88, offset 0x27a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x99, hi: 0x99},\n\t// Block 0x89, offset 0x27c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0x82, hi: 0x82},\n\t{value: 0x8104, lo: 0x84, hi: 0x85},\n\t// Block 0x8a, offset 0x27f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x97, hi: 0x97},\n\t// Block 0x8b, offset 0x281\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0xb0, hi: 0xb4},\n\t// Block 0x8c, offset 0x283\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb6},\n\t// Block 0x8d, offset 0x285\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0x9e, hi: 0x9e},\n\t// Block 0x8e, offset 0x287\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x45cf, lo: 0x9e, hi: 0x9e},\n\t{value: 0x45d9, lo: 0x9f, hi: 0x9f},\n\t{value: 0x460d, lo: 0xa0, hi: 0xa0},\n\t{value: 0x461b, lo: 0xa1, hi: 0xa1},\n\t{value: 0x4629, lo: 0xa2, hi: 0xa2},\n\t{value: 0x4637, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4645, lo: 0xa4, hi: 0xa4},\n\t{value: 0x812b, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8101, lo: 0xa7, hi: 0xa9},\n\t{value: 0x8130, lo: 0xad, hi: 0xad},\n\t{value: 0x812b, lo: 0xae, hi: 0xb2},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbf},\n\t// Block 0x8f, offset 0x294\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x812d, lo: 0x80, hi: 0x82},\n\t{value: 0x8132, lo: 0x85, hi: 0x89},\n\t{value: 0x812d, lo: 0x8a, hi: 0x8b},\n\t{value: 0x8132, lo: 0xaa, hi: 0xad},\n\t{value: 0x45e3, lo: 0xbb, hi: 0xbb},\n\t{value: 0x45ed, lo: 0xbc, hi: 0xbc},\n\t{value: 0x4653, lo: 0xbd, hi: 0xbd},\n\t{value: 0x466f, lo: 0xbe, hi: 0xbe},\n\t{value: 0x4661, lo: 0xbf, hi: 0xbf},\n\t// Block 0x90, offset 0x29e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x467d, lo: 0x80, hi: 0x80},\n\t// Block 0x91, offset 0x2a0\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x82, hi: 0x84},\n\t// Block 0x92, offset 0x2a2\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0x80, hi: 0x86},\n\t{value: 0x8132, lo: 0x88, hi: 0x98},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa1},\n\t{value: 0x8132, lo: 0xa3, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa6, hi: 0xaa},\n\t// Block 0x93, offset 0x2a8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xac, hi: 0xaf},\n\t// Block 0x94, offset 0x2aa\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x90, hi: 0x96},\n\t// Block 0x95, offset 0x2ac\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x84, hi: 0x89},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0x96, offset 0x2af\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x93, hi: 0x93},\n}\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfkcTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfkcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfkcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfkcTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfkcValues[c0]\n\t}\n\ti := nfkcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfkcTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfkcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfkcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfkcTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfkcValues[c0]\n\t}\n\ti := nfkcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// nfkcTrie. Total size: 18684 bytes (18.25 KiB). Checksum: 113e23c477adfabd.\ntype nfkcTrie struct{}\n\nfunc newNfkcTrie(i int) *nfkcTrie {\n\treturn &nfkcTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *nfkcTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 92:\n\t\treturn uint16(nfkcValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 92\n\t\treturn uint16(nfkcSparse.lookup(n, b))\n\t}\n}\n\n// nfkcValues: 94 blocks, 6016 entries, 12032 bytes\n// The third block is the zero block.\nvar nfkcValues = [6016]uint16{\n\t// Block 0x0, offset 0x0\n\t0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000,\n\t// Block 0x1, offset 0x40\n\t0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000,\n\t0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000,\n\t0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000,\n\t0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000,\n\t0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000,\n\t0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000,\n\t0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000,\n\t0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000,\n\t0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000,\n\t0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x2f72, 0xc1: 0x2f77, 0xc2: 0x468b, 0xc3: 0x2f7c, 0xc4: 0x469a, 0xc5: 0x469f,\n\t0xc6: 0xa000, 0xc7: 0x46a9, 0xc8: 0x2fe5, 0xc9: 0x2fea, 0xca: 0x46ae, 0xcb: 0x2ffe,\n\t0xcc: 0x3071, 0xcd: 0x3076, 0xce: 0x307b, 0xcf: 0x46c2, 0xd1: 0x3107,\n\t0xd2: 0x312a, 0xd3: 0x312f, 0xd4: 0x46cc, 0xd5: 0x46d1, 0xd6: 0x46e0,\n\t0xd8: 0xa000, 0xd9: 0x31b6, 0xda: 0x31bb, 0xdb: 0x31c0, 0xdc: 0x4712, 0xdd: 0x3238,\n\t0xe0: 0x327e, 0xe1: 0x3283, 0xe2: 0x471c, 0xe3: 0x3288,\n\t0xe4: 0x472b, 0xe5: 0x4730, 0xe6: 0xa000, 0xe7: 0x473a, 0xe8: 0x32f1, 0xe9: 0x32f6,\n\t0xea: 0x473f, 0xeb: 0x330a, 0xec: 0x3382, 0xed: 0x3387, 0xee: 0x338c, 0xef: 0x4753,\n\t0xf1: 0x3418, 0xf2: 0x343b, 0xf3: 0x3440, 0xf4: 0x475d, 0xf5: 0x4762,\n\t0xf6: 0x4771, 0xf8: 0xa000, 0xf9: 0x34cc, 0xfa: 0x34d1, 0xfb: 0x34d6,\n\t0xfc: 0x47a3, 0xfd: 0x3553, 0xff: 0x356c,\n\t// Block 0x4, offset 0x100\n\t0x100: 0x2f81, 0x101: 0x328d, 0x102: 0x4690, 0x103: 0x4721, 0x104: 0x2f9f, 0x105: 0x32ab,\n\t0x106: 0x2fb3, 0x107: 0x32bf, 0x108: 0x2fb8, 0x109: 0x32c4, 0x10a: 0x2fbd, 0x10b: 0x32c9,\n\t0x10c: 0x2fc2, 0x10d: 0x32ce, 0x10e: 0x2fcc, 0x10f: 0x32d8,\n\t0x112: 0x46b3, 0x113: 0x4744, 0x114: 0x2ff4, 0x115: 0x3300, 0x116: 0x2ff9, 0x117: 0x3305,\n\t0x118: 0x3017, 0x119: 0x3323, 0x11a: 0x3008, 0x11b: 0x3314, 0x11c: 0x3030, 0x11d: 0x333c,\n\t0x11e: 0x303a, 0x11f: 0x3346, 0x120: 0x303f, 0x121: 0x334b, 0x122: 0x3049, 0x123: 0x3355,\n\t0x124: 0x304e, 0x125: 0x335a, 0x128: 0x3080, 0x129: 0x3391,\n\t0x12a: 0x3085, 0x12b: 0x3396, 0x12c: 0x308a, 0x12d: 0x339b, 0x12e: 0x30ad, 0x12f: 0x33b9,\n\t0x130: 0x308f, 0x132: 0x195d, 0x133: 0x19ea, 0x134: 0x30b7, 0x135: 0x33c3,\n\t0x136: 0x30cb, 0x137: 0x33dc, 0x139: 0x30d5, 0x13a: 0x33e6, 0x13b: 0x30df,\n\t0x13c: 0x33f0, 0x13d: 0x30da, 0x13e: 0x33eb, 0x13f: 0x1baf,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x1c37, 0x143: 0x3102, 0x144: 0x3413, 0x145: 0x311b,\n\t0x146: 0x342c, 0x147: 0x3111, 0x148: 0x3422, 0x149: 0x1c5f,\n\t0x14c: 0x46d6, 0x14d: 0x4767, 0x14e: 0x3134, 0x14f: 0x3445, 0x150: 0x313e, 0x151: 0x344f,\n\t0x154: 0x315c, 0x155: 0x346d, 0x156: 0x3175, 0x157: 0x3486,\n\t0x158: 0x3166, 0x159: 0x3477, 0x15a: 0x46f9, 0x15b: 0x478a, 0x15c: 0x317f, 0x15d: 0x3490,\n\t0x15e: 0x318e, 0x15f: 0x349f, 0x160: 0x46fe, 0x161: 0x478f, 0x162: 0x31a7, 0x163: 0x34bd,\n\t0x164: 0x3198, 0x165: 0x34ae, 0x168: 0x4708, 0x169: 0x4799,\n\t0x16a: 0x470d, 0x16b: 0x479e, 0x16c: 0x31c5, 0x16d: 0x34db, 0x16e: 0x31cf, 0x16f: 0x34e5,\n\t0x170: 0x31d4, 0x171: 0x34ea, 0x172: 0x31f2, 0x173: 0x3508, 0x174: 0x3215, 0x175: 0x352b,\n\t0x176: 0x323d, 0x177: 0x3558, 0x178: 0x3251, 0x179: 0x3260, 0x17a: 0x3580, 0x17b: 0x326a,\n\t0x17c: 0x358a, 0x17d: 0x326f, 0x17e: 0x358f, 0x17f: 0x00a7,\n\t// Block 0x6, offset 0x180\n\t0x184: 0x2df1, 0x185: 0x2df7,\n\t0x186: 0x2dfd, 0x187: 0x1972, 0x188: 0x1975, 0x189: 0x1a0b, 0x18a: 0x198a, 0x18b: 0x198d,\n\t0x18c: 0x1a41, 0x18d: 0x2f8b, 0x18e: 0x3297, 0x18f: 0x3099, 0x190: 0x33a5, 0x191: 0x3143,\n\t0x192: 0x3454, 0x193: 0x31d9, 0x194: 0x34ef, 0x195: 0x39d2, 0x196: 0x3b61, 0x197: 0x39cb,\n\t0x198: 0x3b5a, 0x199: 0x39d9, 0x19a: 0x3b68, 0x19b: 0x39c4, 0x19c: 0x3b53,\n\t0x19e: 0x38b3, 0x19f: 0x3a42, 0x1a0: 0x38ac, 0x1a1: 0x3a3b, 0x1a2: 0x35b6, 0x1a3: 0x35c8,\n\t0x1a6: 0x3044, 0x1a7: 0x3350, 0x1a8: 0x30c1, 0x1a9: 0x33d2,\n\t0x1aa: 0x46ef, 0x1ab: 0x4780, 0x1ac: 0x3993, 0x1ad: 0x3b22, 0x1ae: 0x35da, 0x1af: 0x35e0,\n\t0x1b0: 0x33c8, 0x1b1: 0x1942, 0x1b2: 0x1945, 0x1b3: 0x19d2, 0x1b4: 0x302b, 0x1b5: 0x3337,\n\t0x1b8: 0x30fd, 0x1b9: 0x340e, 0x1ba: 0x38ba, 0x1bb: 0x3a49,\n\t0x1bc: 0x35b0, 0x1bd: 0x35c2, 0x1be: 0x35bc, 0x1bf: 0x35ce,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x2f90, 0x1c1: 0x329c, 0x1c2: 0x2f95, 0x1c3: 0x32a1, 0x1c4: 0x300d, 0x1c5: 0x3319,\n\t0x1c6: 0x3012, 0x1c7: 0x331e, 0x1c8: 0x309e, 0x1c9: 0x33aa, 0x1ca: 0x30a3, 0x1cb: 0x33af,\n\t0x1cc: 0x3148, 0x1cd: 0x3459, 0x1ce: 0x314d, 0x1cf: 0x345e, 0x1d0: 0x316b, 0x1d1: 0x347c,\n\t0x1d2: 0x3170, 0x1d3: 0x3481, 0x1d4: 0x31de, 0x1d5: 0x34f4, 0x1d6: 0x31e3, 0x1d7: 0x34f9,\n\t0x1d8: 0x3189, 0x1d9: 0x349a, 0x1da: 0x31a2, 0x1db: 0x34b8,\n\t0x1de: 0x305d, 0x1df: 0x3369,\n\t0x1e6: 0x4695, 0x1e7: 0x4726, 0x1e8: 0x46bd, 0x1e9: 0x474e,\n\t0x1ea: 0x3962, 0x1eb: 0x3af1, 0x1ec: 0x393f, 0x1ed: 0x3ace, 0x1ee: 0x46db, 0x1ef: 0x476c,\n\t0x1f0: 0x395b, 0x1f1: 0x3aea, 0x1f2: 0x3247, 0x1f3: 0x3562,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132,\n\t0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932,\n\t0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932,\n\t0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d,\n\t0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d,\n\t0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d,\n\t0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d,\n\t0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d,\n\t0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101,\n\t0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d,\n\t0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x49b1, 0x241: 0x49b6, 0x242: 0x9932, 0x243: 0x49bb, 0x244: 0x4a74, 0x245: 0x9936,\n\t0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132,\n\t0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132,\n\t0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132,\n\t0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135,\n\t0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132,\n\t0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132,\n\t0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132,\n\t0x274: 0x0170,\n\t0x27a: 0x42a8,\n\t0x27e: 0x0037,\n\t// Block 0xa, offset 0x280\n\t0x284: 0x425d, 0x285: 0x447e,\n\t0x286: 0x35ec, 0x287: 0x00ce, 0x288: 0x360a, 0x289: 0x3616, 0x28a: 0x3628,\n\t0x28c: 0x3646, 0x28e: 0x3658, 0x28f: 0x3676, 0x290: 0x3e0b, 0x291: 0xa000,\n\t0x295: 0xa000, 0x297: 0xa000,\n\t0x299: 0xa000,\n\t0x29f: 0xa000, 0x2a1: 0xa000,\n\t0x2a5: 0xa000, 0x2a9: 0xa000,\n\t0x2aa: 0x363a, 0x2ab: 0x366a, 0x2ac: 0x4801, 0x2ad: 0x369a, 0x2ae: 0x482b, 0x2af: 0x36ac,\n\t0x2b0: 0x3e73, 0x2b1: 0xa000, 0x2b5: 0xa000,\n\t0x2b7: 0xa000, 0x2b9: 0xa000,\n\t0x2bf: 0xa000,\n\t// Block 0xb, offset 0x2c0\n\t0x2c1: 0xa000, 0x2c5: 0xa000,\n\t0x2c9: 0xa000, 0x2ca: 0x4843, 0x2cb: 0x4861,\n\t0x2cc: 0x36ca, 0x2cd: 0x36e2, 0x2ce: 0x4879, 0x2d0: 0x01be, 0x2d1: 0x01d0,\n\t0x2d2: 0x01ac, 0x2d3: 0x430f, 0x2d4: 0x4315, 0x2d5: 0x01fa, 0x2d6: 0x01e8,\n\t0x2f0: 0x01d6, 0x2f1: 0x01eb, 0x2f2: 0x01ee, 0x2f4: 0x0188, 0x2f5: 0x01c7,\n\t0x2f9: 0x01a6,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x3724, 0x301: 0x3730, 0x303: 0x371e,\n\t0x306: 0xa000, 0x307: 0x370c,\n\t0x30c: 0x3760, 0x30d: 0x3748, 0x30e: 0x3772, 0x310: 0xa000,\n\t0x313: 0xa000, 0x315: 0xa000, 0x316: 0xa000, 0x317: 0xa000,\n\t0x318: 0xa000, 0x319: 0x3754, 0x31a: 0xa000,\n\t0x31e: 0xa000, 0x323: 0xa000,\n\t0x327: 0xa000,\n\t0x32b: 0xa000, 0x32d: 0xa000,\n\t0x330: 0xa000, 0x333: 0xa000, 0x335: 0xa000,\n\t0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x37d8, 0x33a: 0xa000,\n\t0x33e: 0xa000,\n\t// Block 0xd, offset 0x340\n\t0x341: 0x3736, 0x342: 0x37ba,\n\t0x350: 0x3712, 0x351: 0x3796,\n\t0x352: 0x3718, 0x353: 0x379c, 0x356: 0x372a, 0x357: 0x37ae,\n\t0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x382c, 0x35b: 0x3832, 0x35c: 0x373c, 0x35d: 0x37c0,\n\t0x35e: 0x3742, 0x35f: 0x37c6, 0x362: 0x374e, 0x363: 0x37d2,\n\t0x364: 0x375a, 0x365: 0x37de, 0x366: 0x3766, 0x367: 0x37ea, 0x368: 0xa000, 0x369: 0xa000,\n\t0x36a: 0x3838, 0x36b: 0x383e, 0x36c: 0x3790, 0x36d: 0x3814, 0x36e: 0x376c, 0x36f: 0x37f0,\n\t0x370: 0x3778, 0x371: 0x37fc, 0x372: 0x377e, 0x373: 0x3802, 0x374: 0x3784, 0x375: 0x3808,\n\t0x378: 0x378a, 0x379: 0x380e,\n\t// Block 0xe, offset 0x380\n\t0x387: 0x1d64,\n\t0x391: 0x812d,\n\t0x392: 0x8132, 0x393: 0x8132, 0x394: 0x8132, 0x395: 0x8132, 0x396: 0x812d, 0x397: 0x8132,\n\t0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x812e, 0x39b: 0x812d, 0x39c: 0x8132, 0x39d: 0x8132,\n\t0x39e: 0x8132, 0x39f: 0x8132, 0x3a0: 0x8132, 0x3a1: 0x8132, 0x3a2: 0x812d, 0x3a3: 0x812d,\n\t0x3a4: 0x812d, 0x3a5: 0x812d, 0x3a6: 0x812d, 0x3a7: 0x812d, 0x3a8: 0x8132, 0x3a9: 0x8132,\n\t0x3aa: 0x812d, 0x3ab: 0x8132, 0x3ac: 0x8132, 0x3ad: 0x812e, 0x3ae: 0x8131, 0x3af: 0x8132,\n\t0x3b0: 0x8105, 0x3b1: 0x8106, 0x3b2: 0x8107, 0x3b3: 0x8108, 0x3b4: 0x8109, 0x3b5: 0x810a,\n\t0x3b6: 0x810b, 0x3b7: 0x810c, 0x3b8: 0x810d, 0x3b9: 0x810e, 0x3ba: 0x810e, 0x3bb: 0x810f,\n\t0x3bc: 0x8110, 0x3bd: 0x8111, 0x3bf: 0x8112,\n\t// Block 0xf, offset 0x3c0\n\t0x3c8: 0xa000, 0x3ca: 0xa000, 0x3cb: 0x8116,\n\t0x3cc: 0x8117, 0x3cd: 0x8118, 0x3ce: 0x8119, 0x3cf: 0x811a, 0x3d0: 0x811b, 0x3d1: 0x811c,\n\t0x3d2: 0x811d, 0x3d3: 0x9932, 0x3d4: 0x9932, 0x3d5: 0x992d, 0x3d6: 0x812d, 0x3d7: 0x8132,\n\t0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x812d, 0x3dd: 0x8132,\n\t0x3de: 0x8132, 0x3df: 0x812d,\n\t0x3f0: 0x811e, 0x3f5: 0x1d87,\n\t0x3f6: 0x2016, 0x3f7: 0x2052, 0x3f8: 0x204d,\n\t// Block 0x10, offset 0x400\n\t0x413: 0x812d, 0x414: 0x8132, 0x415: 0x8132, 0x416: 0x8132, 0x417: 0x8132,\n\t0x418: 0x8132, 0x419: 0x8132, 0x41a: 0x8132, 0x41b: 0x8132, 0x41c: 0x8132, 0x41d: 0x8132,\n\t0x41e: 0x8132, 0x41f: 0x8132, 0x420: 0x8132, 0x421: 0x8132, 0x423: 0x812d,\n\t0x424: 0x8132, 0x425: 0x8132, 0x426: 0x812d, 0x427: 0x8132, 0x428: 0x8132, 0x429: 0x812d,\n\t0x42a: 0x8132, 0x42b: 0x8132, 0x42c: 0x8132, 0x42d: 0x812d, 0x42e: 0x812d, 0x42f: 0x812d,\n\t0x430: 0x8116, 0x431: 0x8117, 0x432: 0x8118, 0x433: 0x8132, 0x434: 0x8132, 0x435: 0x8132,\n\t0x436: 0x812d, 0x437: 0x8132, 0x438: 0x8132, 0x439: 0x812d, 0x43a: 0x812d, 0x43b: 0x8132,\n\t0x43c: 0x8132, 0x43d: 0x8132, 0x43e: 0x8132, 0x43f: 0x8132,\n\t// Block 0x11, offset 0x440\n\t0x445: 0xa000,\n\t0x446: 0x2d29, 0x447: 0xa000, 0x448: 0x2d31, 0x449: 0xa000, 0x44a: 0x2d39, 0x44b: 0xa000,\n\t0x44c: 0x2d41, 0x44d: 0xa000, 0x44e: 0x2d49, 0x451: 0xa000,\n\t0x452: 0x2d51,\n\t0x474: 0x8102, 0x475: 0x9900,\n\t0x47a: 0xa000, 0x47b: 0x2d59,\n\t0x47c: 0xa000, 0x47d: 0x2d61, 0x47e: 0xa000, 0x47f: 0xa000,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x0069, 0x481: 0x006b, 0x482: 0x006f, 0x483: 0x0083, 0x484: 0x00f5, 0x485: 0x00f8,\n\t0x486: 0x0413, 0x487: 0x0085, 0x488: 0x0089, 0x489: 0x008b, 0x48a: 0x0104, 0x48b: 0x0107,\n\t0x48c: 0x010a, 0x48d: 0x008f, 0x48f: 0x0097, 0x490: 0x009b, 0x491: 0x00e0,\n\t0x492: 0x009f, 0x493: 0x00fe, 0x494: 0x0417, 0x495: 0x041b, 0x496: 0x00a1, 0x497: 0x00a9,\n\t0x498: 0x00ab, 0x499: 0x0423, 0x49a: 0x012b, 0x49b: 0x00ad, 0x49c: 0x0427, 0x49d: 0x01be,\n\t0x49e: 0x01c1, 0x49f: 0x01c4, 0x4a0: 0x01fa, 0x4a1: 0x01fd, 0x4a2: 0x0093, 0x4a3: 0x00a5,\n\t0x4a4: 0x00ab, 0x4a5: 0x00ad, 0x4a6: 0x01be, 0x4a7: 0x01c1, 0x4a8: 0x01eb, 0x4a9: 0x01fa,\n\t0x4aa: 0x01fd,\n\t0x4b8: 0x020c,\n\t// Block 0x13, offset 0x4c0\n\t0x4db: 0x00fb, 0x4dc: 0x0087, 0x4dd: 0x0101,\n\t0x4de: 0x00d4, 0x4df: 0x010a, 0x4e0: 0x008d, 0x4e1: 0x010d, 0x4e2: 0x0110, 0x4e3: 0x0116,\n\t0x4e4: 0x011c, 0x4e5: 0x011f, 0x4e6: 0x0122, 0x4e7: 0x042b, 0x4e8: 0x016a, 0x4e9: 0x0128,\n\t0x4ea: 0x042f, 0x4eb: 0x016d, 0x4ec: 0x0131, 0x4ed: 0x012e, 0x4ee: 0x0134, 0x4ef: 0x0137,\n\t0x4f0: 0x013a, 0x4f1: 0x013d, 0x4f2: 0x0140, 0x4f3: 0x014c, 0x4f4: 0x014f, 0x4f5: 0x00ec,\n\t0x4f6: 0x0152, 0x4f7: 0x0155, 0x4f8: 0x041f, 0x4f9: 0x0158, 0x4fa: 0x015b, 0x4fb: 0x00b5,\n\t0x4fc: 0x015e, 0x4fd: 0x0161, 0x4fe: 0x0164, 0x4ff: 0x01d0,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x8132, 0x501: 0x8132, 0x502: 0x812d, 0x503: 0x8132, 0x504: 0x8132, 0x505: 0x8132,\n\t0x506: 0x8132, 0x507: 0x8132, 0x508: 0x8132, 0x509: 0x8132, 0x50a: 0x812d, 0x50b: 0x8132,\n\t0x50c: 0x8132, 0x50d: 0x8135, 0x50e: 0x812a, 0x50f: 0x812d, 0x510: 0x8129, 0x511: 0x8132,\n\t0x512: 0x8132, 0x513: 0x8132, 0x514: 0x8132, 0x515: 0x8132, 0x516: 0x8132, 0x517: 0x8132,\n\t0x518: 0x8132, 0x519: 0x8132, 0x51a: 0x8132, 0x51b: 0x8132, 0x51c: 0x8132, 0x51d: 0x8132,\n\t0x51e: 0x8132, 0x51f: 0x8132, 0x520: 0x8132, 0x521: 0x8132, 0x522: 0x8132, 0x523: 0x8132,\n\t0x524: 0x8132, 0x525: 0x8132, 0x526: 0x8132, 0x527: 0x8132, 0x528: 0x8132, 0x529: 0x8132,\n\t0x52a: 0x8132, 0x52b: 0x8132, 0x52c: 0x8132, 0x52d: 0x8132, 0x52e: 0x8132, 0x52f: 0x8132,\n\t0x530: 0x8132, 0x531: 0x8132, 0x532: 0x8132, 0x533: 0x8132, 0x534: 0x8132, 0x535: 0x8132,\n\t0x536: 0x8133, 0x537: 0x8131, 0x538: 0x8131, 0x539: 0x812d, 0x53b: 0x8132,\n\t0x53c: 0x8134, 0x53d: 0x812d, 0x53e: 0x8132, 0x53f: 0x812d,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x2f9a, 0x541: 0x32a6, 0x542: 0x2fa4, 0x543: 0x32b0, 0x544: 0x2fa9, 0x545: 0x32b5,\n\t0x546: 0x2fae, 0x547: 0x32ba, 0x548: 0x38cf, 0x549: 0x3a5e, 0x54a: 0x2fc7, 0x54b: 0x32d3,\n\t0x54c: 0x2fd1, 0x54d: 0x32dd, 0x54e: 0x2fe0, 0x54f: 0x32ec, 0x550: 0x2fd6, 0x551: 0x32e2,\n\t0x552: 0x2fdb, 0x553: 0x32e7, 0x554: 0x38f2, 0x555: 0x3a81, 0x556: 0x38f9, 0x557: 0x3a88,\n\t0x558: 0x301c, 0x559: 0x3328, 0x55a: 0x3021, 0x55b: 0x332d, 0x55c: 0x3907, 0x55d: 0x3a96,\n\t0x55e: 0x3026, 0x55f: 0x3332, 0x560: 0x3035, 0x561: 0x3341, 0x562: 0x3053, 0x563: 0x335f,\n\t0x564: 0x3062, 0x565: 0x336e, 0x566: 0x3058, 0x567: 0x3364, 0x568: 0x3067, 0x569: 0x3373,\n\t0x56a: 0x306c, 0x56b: 0x3378, 0x56c: 0x30b2, 0x56d: 0x33be, 0x56e: 0x390e, 0x56f: 0x3a9d,\n\t0x570: 0x30bc, 0x571: 0x33cd, 0x572: 0x30c6, 0x573: 0x33d7, 0x574: 0x30d0, 0x575: 0x33e1,\n\t0x576: 0x46c7, 0x577: 0x4758, 0x578: 0x3915, 0x579: 0x3aa4, 0x57a: 0x30e9, 0x57b: 0x33fa,\n\t0x57c: 0x30e4, 0x57d: 0x33f5, 0x57e: 0x30ee, 0x57f: 0x33ff,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x30f3, 0x581: 0x3404, 0x582: 0x30f8, 0x583: 0x3409, 0x584: 0x310c, 0x585: 0x341d,\n\t0x586: 0x3116, 0x587: 0x3427, 0x588: 0x3125, 0x589: 0x3436, 0x58a: 0x3120, 0x58b: 0x3431,\n\t0x58c: 0x3938, 0x58d: 0x3ac7, 0x58e: 0x3946, 0x58f: 0x3ad5, 0x590: 0x394d, 0x591: 0x3adc,\n\t0x592: 0x3954, 0x593: 0x3ae3, 0x594: 0x3152, 0x595: 0x3463, 0x596: 0x3157, 0x597: 0x3468,\n\t0x598: 0x3161, 0x599: 0x3472, 0x59a: 0x46f4, 0x59b: 0x4785, 0x59c: 0x399a, 0x59d: 0x3b29,\n\t0x59e: 0x317a, 0x59f: 0x348b, 0x5a0: 0x3184, 0x5a1: 0x3495, 0x5a2: 0x4703, 0x5a3: 0x4794,\n\t0x5a4: 0x39a1, 0x5a5: 0x3b30, 0x5a6: 0x39a8, 0x5a7: 0x3b37, 0x5a8: 0x39af, 0x5a9: 0x3b3e,\n\t0x5aa: 0x3193, 0x5ab: 0x34a4, 0x5ac: 0x319d, 0x5ad: 0x34b3, 0x5ae: 0x31b1, 0x5af: 0x34c7,\n\t0x5b0: 0x31ac, 0x5b1: 0x34c2, 0x5b2: 0x31ed, 0x5b3: 0x3503, 0x5b4: 0x31fc, 0x5b5: 0x3512,\n\t0x5b6: 0x31f7, 0x5b7: 0x350d, 0x5b8: 0x39b6, 0x5b9: 0x3b45, 0x5ba: 0x39bd, 0x5bb: 0x3b4c,\n\t0x5bc: 0x3201, 0x5bd: 0x3517, 0x5be: 0x3206, 0x5bf: 0x351c,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x320b, 0x5c1: 0x3521, 0x5c2: 0x3210, 0x5c3: 0x3526, 0x5c4: 0x321f, 0x5c5: 0x3535,\n\t0x5c6: 0x321a, 0x5c7: 0x3530, 0x5c8: 0x3224, 0x5c9: 0x353f, 0x5ca: 0x3229, 0x5cb: 0x3544,\n\t0x5cc: 0x322e, 0x5cd: 0x3549, 0x5ce: 0x324c, 0x5cf: 0x3567, 0x5d0: 0x3265, 0x5d1: 0x3585,\n\t0x5d2: 0x3274, 0x5d3: 0x3594, 0x5d4: 0x3279, 0x5d5: 0x3599, 0x5d6: 0x337d, 0x5d7: 0x34a9,\n\t0x5d8: 0x353a, 0x5d9: 0x3576, 0x5da: 0x1be3, 0x5db: 0x42da,\n\t0x5e0: 0x46a4, 0x5e1: 0x4735, 0x5e2: 0x2f86, 0x5e3: 0x3292,\n\t0x5e4: 0x387b, 0x5e5: 0x3a0a, 0x5e6: 0x3874, 0x5e7: 0x3a03, 0x5e8: 0x3889, 0x5e9: 0x3a18,\n\t0x5ea: 0x3882, 0x5eb: 0x3a11, 0x5ec: 0x38c1, 0x5ed: 0x3a50, 0x5ee: 0x3897, 0x5ef: 0x3a26,\n\t0x5f0: 0x3890, 0x5f1: 0x3a1f, 0x5f2: 0x38a5, 0x5f3: 0x3a34, 0x5f4: 0x389e, 0x5f5: 0x3a2d,\n\t0x5f6: 0x38c8, 0x5f7: 0x3a57, 0x5f8: 0x46b8, 0x5f9: 0x4749, 0x5fa: 0x3003, 0x5fb: 0x330f,\n\t0x5fc: 0x2fef, 0x5fd: 0x32fb, 0x5fe: 0x38dd, 0x5ff: 0x3a6c,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x38d6, 0x601: 0x3a65, 0x602: 0x38eb, 0x603: 0x3a7a, 0x604: 0x38e4, 0x605: 0x3a73,\n\t0x606: 0x3900, 0x607: 0x3a8f, 0x608: 0x3094, 0x609: 0x33a0, 0x60a: 0x30a8, 0x60b: 0x33b4,\n\t0x60c: 0x46ea, 0x60d: 0x477b, 0x60e: 0x3139, 0x60f: 0x344a, 0x610: 0x3923, 0x611: 0x3ab2,\n\t0x612: 0x391c, 0x613: 0x3aab, 0x614: 0x3931, 0x615: 0x3ac0, 0x616: 0x392a, 0x617: 0x3ab9,\n\t0x618: 0x398c, 0x619: 0x3b1b, 0x61a: 0x3970, 0x61b: 0x3aff, 0x61c: 0x3969, 0x61d: 0x3af8,\n\t0x61e: 0x397e, 0x61f: 0x3b0d, 0x620: 0x3977, 0x621: 0x3b06, 0x622: 0x3985, 0x623: 0x3b14,\n\t0x624: 0x31e8, 0x625: 0x34fe, 0x626: 0x31ca, 0x627: 0x34e0, 0x628: 0x39e7, 0x629: 0x3b76,\n\t0x62a: 0x39e0, 0x62b: 0x3b6f, 0x62c: 0x39f5, 0x62d: 0x3b84, 0x62e: 0x39ee, 0x62f: 0x3b7d,\n\t0x630: 0x39fc, 0x631: 0x3b8b, 0x632: 0x3233, 0x633: 0x354e, 0x634: 0x325b, 0x635: 0x357b,\n\t0x636: 0x3256, 0x637: 0x3571, 0x638: 0x3242, 0x639: 0x355d,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x4807, 0x641: 0x480d, 0x642: 0x4921, 0x643: 0x4939, 0x644: 0x4929, 0x645: 0x4941,\n\t0x646: 0x4931, 0x647: 0x4949, 0x648: 0x47ad, 0x649: 0x47b3, 0x64a: 0x4891, 0x64b: 0x48a9,\n\t0x64c: 0x4899, 0x64d: 0x48b1, 0x64e: 0x48a1, 0x64f: 0x48b9, 0x650: 0x4819, 0x651: 0x481f,\n\t0x652: 0x3dbb, 0x653: 0x3dcb, 0x654: 0x3dc3, 0x655: 0x3dd3,\n\t0x658: 0x47b9, 0x659: 0x47bf, 0x65a: 0x3ceb, 0x65b: 0x3cfb, 0x65c: 0x3cf3, 0x65d: 0x3d03,\n\t0x660: 0x4831, 0x661: 0x4837, 0x662: 0x4951, 0x663: 0x4969,\n\t0x664: 0x4959, 0x665: 0x4971, 0x666: 0x4961, 0x667: 0x4979, 0x668: 0x47c5, 0x669: 0x47cb,\n\t0x66a: 0x48c1, 0x66b: 0x48d9, 0x66c: 0x48c9, 0x66d: 0x48e1, 0x66e: 0x48d1, 0x66f: 0x48e9,\n\t0x670: 0x4849, 0x671: 0x484f, 0x672: 0x3e1b, 0x673: 0x3e33, 0x674: 0x3e23, 0x675: 0x3e3b,\n\t0x676: 0x3e2b, 0x677: 0x3e43, 0x678: 0x47d1, 0x679: 0x47d7, 0x67a: 0x3d1b, 0x67b: 0x3d33,\n\t0x67c: 0x3d23, 0x67d: 0x3d3b, 0x67e: 0x3d2b, 0x67f: 0x3d43,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x4855, 0x681: 0x485b, 0x682: 0x3e4b, 0x683: 0x3e5b, 0x684: 0x3e53, 0x685: 0x3e63,\n\t0x688: 0x47dd, 0x689: 0x47e3, 0x68a: 0x3d4b, 0x68b: 0x3d5b,\n\t0x68c: 0x3d53, 0x68d: 0x3d63, 0x690: 0x4867, 0x691: 0x486d,\n\t0x692: 0x3e83, 0x693: 0x3e9b, 0x694: 0x3e8b, 0x695: 0x3ea3, 0x696: 0x3e93, 0x697: 0x3eab,\n\t0x699: 0x47e9, 0x69b: 0x3d6b, 0x69d: 0x3d73,\n\t0x69f: 0x3d7b, 0x6a0: 0x487f, 0x6a1: 0x4885, 0x6a2: 0x4981, 0x6a3: 0x4999,\n\t0x6a4: 0x4989, 0x6a5: 0x49a1, 0x6a6: 0x4991, 0x6a7: 0x49a9, 0x6a8: 0x47ef, 0x6a9: 0x47f5,\n\t0x6aa: 0x48f1, 0x6ab: 0x4909, 0x6ac: 0x48f9, 0x6ad: 0x4911, 0x6ae: 0x4901, 0x6af: 0x4919,\n\t0x6b0: 0x47fb, 0x6b1: 0x4321, 0x6b2: 0x3694, 0x6b3: 0x4327, 0x6b4: 0x4825, 0x6b5: 0x432d,\n\t0x6b6: 0x36a6, 0x6b7: 0x4333, 0x6b8: 0x36c4, 0x6b9: 0x4339, 0x6ba: 0x36dc, 0x6bb: 0x433f,\n\t0x6bc: 0x4873, 0x6bd: 0x4345,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x3da3, 0x6c1: 0x3dab, 0x6c2: 0x4187, 0x6c3: 0x41a5, 0x6c4: 0x4191, 0x6c5: 0x41af,\n\t0x6c6: 0x419b, 0x6c7: 0x41b9, 0x6c8: 0x3cdb, 0x6c9: 0x3ce3, 0x6ca: 0x40d3, 0x6cb: 0x40f1,\n\t0x6cc: 0x40dd, 0x6cd: 0x40fb, 0x6ce: 0x40e7, 0x6cf: 0x4105, 0x6d0: 0x3deb, 0x6d1: 0x3df3,\n\t0x6d2: 0x41c3, 0x6d3: 0x41e1, 0x6d4: 0x41cd, 0x6d5: 0x41eb, 0x6d6: 0x41d7, 0x6d7: 0x41f5,\n\t0x6d8: 0x3d0b, 0x6d9: 0x3d13, 0x6da: 0x410f, 0x6db: 0x412d, 0x6dc: 0x4119, 0x6dd: 0x4137,\n\t0x6de: 0x4123, 0x6df: 0x4141, 0x6e0: 0x3ec3, 0x6e1: 0x3ecb, 0x6e2: 0x41ff, 0x6e3: 0x421d,\n\t0x6e4: 0x4209, 0x6e5: 0x4227, 0x6e6: 0x4213, 0x6e7: 0x4231, 0x6e8: 0x3d83, 0x6e9: 0x3d8b,\n\t0x6ea: 0x414b, 0x6eb: 0x4169, 0x6ec: 0x4155, 0x6ed: 0x4173, 0x6ee: 0x415f, 0x6ef: 0x417d,\n\t0x6f0: 0x3688, 0x6f1: 0x3682, 0x6f2: 0x3d93, 0x6f3: 0x368e, 0x6f4: 0x3d9b,\n\t0x6f6: 0x4813, 0x6f7: 0x3db3, 0x6f8: 0x35f8, 0x6f9: 0x35f2, 0x6fa: 0x35e6, 0x6fb: 0x42f1,\n\t0x6fc: 0x35fe, 0x6fd: 0x428a, 0x6fe: 0x01d3, 0x6ff: 0x428a,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x42a3, 0x701: 0x4485, 0x702: 0x3ddb, 0x703: 0x36a0, 0x704: 0x3de3,\n\t0x706: 0x483d, 0x707: 0x3dfb, 0x708: 0x3604, 0x709: 0x42f7, 0x70a: 0x3610, 0x70b: 0x42fd,\n\t0x70c: 0x361c, 0x70d: 0x448c, 0x70e: 0x4493, 0x70f: 0x449a, 0x710: 0x36b8, 0x711: 0x36b2,\n\t0x712: 0x3e03, 0x713: 0x44e7, 0x716: 0x36be, 0x717: 0x3e13,\n\t0x718: 0x3634, 0x719: 0x362e, 0x71a: 0x3622, 0x71b: 0x4303, 0x71d: 0x44a1,\n\t0x71e: 0x44a8, 0x71f: 0x44af, 0x720: 0x36ee, 0x721: 0x36e8, 0x722: 0x3e6b, 0x723: 0x44ef,\n\t0x724: 0x36d0, 0x725: 0x36d6, 0x726: 0x36f4, 0x727: 0x3e7b, 0x728: 0x3664, 0x729: 0x365e,\n\t0x72a: 0x3652, 0x72b: 0x430f, 0x72c: 0x364c, 0x72d: 0x4477, 0x72e: 0x447e, 0x72f: 0x0081,\n\t0x732: 0x3eb3, 0x733: 0x36fa, 0x734: 0x3ebb,\n\t0x736: 0x488b, 0x737: 0x3ed3, 0x738: 0x3640, 0x739: 0x4309, 0x73a: 0x3670, 0x73b: 0x431b,\n\t0x73c: 0x367c, 0x73d: 0x425d, 0x73e: 0x428f,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0x1bdb, 0x741: 0x1bdf, 0x742: 0x0047, 0x743: 0x1c57, 0x745: 0x1beb,\n\t0x746: 0x1bef, 0x747: 0x00e9, 0x749: 0x1c5b, 0x74a: 0x008f, 0x74b: 0x0051,\n\t0x74c: 0x0051, 0x74d: 0x0051, 0x74e: 0x0091, 0x74f: 0x00da, 0x750: 0x0053, 0x751: 0x0053,\n\t0x752: 0x0059, 0x753: 0x0099, 0x755: 0x005d, 0x756: 0x1990,\n\t0x759: 0x0061, 0x75a: 0x0063, 0x75b: 0x0065, 0x75c: 0x0065, 0x75d: 0x0065,\n\t0x760: 0x19a2, 0x761: 0x1bcb, 0x762: 0x19ab,\n\t0x764: 0x0075, 0x766: 0x01b8, 0x768: 0x0075,\n\t0x76a: 0x0057, 0x76b: 0x42d5, 0x76c: 0x0045, 0x76d: 0x0047, 0x76f: 0x008b,\n\t0x770: 0x004b, 0x771: 0x004d, 0x773: 0x005b, 0x774: 0x009f, 0x775: 0x0215,\n\t0x776: 0x0218, 0x777: 0x021b, 0x778: 0x021e, 0x779: 0x0093, 0x77b: 0x1b9b,\n\t0x77c: 0x01e8, 0x77d: 0x01c1, 0x77e: 0x0179, 0x77f: 0x01a0,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0x0463, 0x785: 0x0049,\n\t0x786: 0x0089, 0x787: 0x008b, 0x788: 0x0093, 0x789: 0x0095,\n\t0x790: 0x2231, 0x791: 0x223d,\n\t0x792: 0x22f1, 0x793: 0x2219, 0x794: 0x229d, 0x795: 0x2225, 0x796: 0x22a3, 0x797: 0x22bb,\n\t0x798: 0x22c7, 0x799: 0x222b, 0x79a: 0x22cd, 0x79b: 0x2237, 0x79c: 0x22c1, 0x79d: 0x22d3,\n\t0x79e: 0x22d9, 0x79f: 0x1cbf, 0x7a0: 0x0053, 0x7a1: 0x195a, 0x7a2: 0x1ba7, 0x7a3: 0x1963,\n\t0x7a4: 0x006d, 0x7a5: 0x19ae, 0x7a6: 0x1bd3, 0x7a7: 0x1d4b, 0x7a8: 0x1966, 0x7a9: 0x0071,\n\t0x7aa: 0x19ba, 0x7ab: 0x1bd7, 0x7ac: 0x0059, 0x7ad: 0x0047, 0x7ae: 0x0049, 0x7af: 0x005b,\n\t0x7b0: 0x0093, 0x7b1: 0x19e7, 0x7b2: 0x1c1b, 0x7b3: 0x19f0, 0x7b4: 0x00ad, 0x7b5: 0x1a65,\n\t0x7b6: 0x1c4f, 0x7b7: 0x1d5f, 0x7b8: 0x19f3, 0x7b9: 0x00b1, 0x7ba: 0x1a68, 0x7bb: 0x1c53,\n\t0x7bc: 0x0099, 0x7bd: 0x0087, 0x7be: 0x0089, 0x7bf: 0x009b,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c1: 0x3c09, 0x7c3: 0xa000, 0x7c4: 0x3c10, 0x7c5: 0xa000,\n\t0x7c7: 0x3c17, 0x7c8: 0xa000, 0x7c9: 0x3c1e,\n\t0x7cd: 0xa000,\n\t0x7e0: 0x2f68, 0x7e1: 0xa000, 0x7e2: 0x3c2c,\n\t0x7e4: 0xa000, 0x7e5: 0xa000,\n\t0x7ed: 0x3c25, 0x7ee: 0x2f63, 0x7ef: 0x2f6d,\n\t0x7f0: 0x3c33, 0x7f1: 0x3c3a, 0x7f2: 0xa000, 0x7f3: 0xa000, 0x7f4: 0x3c41, 0x7f5: 0x3c48,\n\t0x7f6: 0xa000, 0x7f7: 0xa000, 0x7f8: 0x3c4f, 0x7f9: 0x3c56, 0x7fa: 0xa000, 0x7fb: 0xa000,\n\t0x7fc: 0xa000, 0x7fd: 0xa000,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x3c5d, 0x801: 0x3c64, 0x802: 0xa000, 0x803: 0xa000, 0x804: 0x3c79, 0x805: 0x3c80,\n\t0x806: 0xa000, 0x807: 0xa000, 0x808: 0x3c87, 0x809: 0x3c8e,\n\t0x811: 0xa000,\n\t0x812: 0xa000,\n\t0x822: 0xa000,\n\t0x828: 0xa000, 0x829: 0xa000,\n\t0x82b: 0xa000, 0x82c: 0x3ca3, 0x82d: 0x3caa, 0x82e: 0x3cb1, 0x82f: 0x3cb8,\n\t0x832: 0xa000, 0x833: 0xa000, 0x834: 0xa000, 0x835: 0xa000,\n\t// Block 0x21, offset 0x840\n\t0x860: 0x0023, 0x861: 0x0025, 0x862: 0x0027, 0x863: 0x0029,\n\t0x864: 0x002b, 0x865: 0x002d, 0x866: 0x002f, 0x867: 0x0031, 0x868: 0x0033, 0x869: 0x1882,\n\t0x86a: 0x1885, 0x86b: 0x1888, 0x86c: 0x188b, 0x86d: 0x188e, 0x86e: 0x1891, 0x86f: 0x1894,\n\t0x870: 0x1897, 0x871: 0x189a, 0x872: 0x189d, 0x873: 0x18a6, 0x874: 0x1a6b, 0x875: 0x1a6f,\n\t0x876: 0x1a73, 0x877: 0x1a77, 0x878: 0x1a7b, 0x879: 0x1a7f, 0x87a: 0x1a83, 0x87b: 0x1a87,\n\t0x87c: 0x1a8b, 0x87d: 0x1c83, 0x87e: 0x1c88, 0x87f: 0x1c8d,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x1c92, 0x881: 0x1c97, 0x882: 0x1c9c, 0x883: 0x1ca1, 0x884: 0x1ca6, 0x885: 0x1cab,\n\t0x886: 0x1cb0, 0x887: 0x1cb5, 0x888: 0x187f, 0x889: 0x18a3, 0x88a: 0x18c7, 0x88b: 0x18eb,\n\t0x88c: 0x190f, 0x88d: 0x1918, 0x88e: 0x191e, 0x88f: 0x1924, 0x890: 0x192a, 0x891: 0x1b63,\n\t0x892: 0x1b67, 0x893: 0x1b6b, 0x894: 0x1b6f, 0x895: 0x1b73, 0x896: 0x1b77, 0x897: 0x1b7b,\n\t0x898: 0x1b7f, 0x899: 0x1b83, 0x89a: 0x1b87, 0x89b: 0x1b8b, 0x89c: 0x1af7, 0x89d: 0x1afb,\n\t0x89e: 0x1aff, 0x89f: 0x1b03, 0x8a0: 0x1b07, 0x8a1: 0x1b0b, 0x8a2: 0x1b0f, 0x8a3: 0x1b13,\n\t0x8a4: 0x1b17, 0x8a5: 0x1b1b, 0x8a6: 0x1b1f, 0x8a7: 0x1b23, 0x8a8: 0x1b27, 0x8a9: 0x1b2b,\n\t0x8aa: 0x1b2f, 0x8ab: 0x1b33, 0x8ac: 0x1b37, 0x8ad: 0x1b3b, 0x8ae: 0x1b3f, 0x8af: 0x1b43,\n\t0x8b0: 0x1b47, 0x8b1: 0x1b4b, 0x8b2: 0x1b4f, 0x8b3: 0x1b53, 0x8b4: 0x1b57, 0x8b5: 0x1b5b,\n\t0x8b6: 0x0043, 0x8b7: 0x0045, 0x8b8: 0x0047, 0x8b9: 0x0049, 0x8ba: 0x004b, 0x8bb: 0x004d,\n\t0x8bc: 0x004f, 0x8bd: 0x0051, 0x8be: 0x0053, 0x8bf: 0x0055,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x06bf, 0x8c1: 0x06e3, 0x8c2: 0x06ef, 0x8c3: 0x06ff, 0x8c4: 0x0707, 0x8c5: 0x0713,\n\t0x8c6: 0x071b, 0x8c7: 0x0723, 0x8c8: 0x072f, 0x8c9: 0x0783, 0x8ca: 0x079b, 0x8cb: 0x07ab,\n\t0x8cc: 0x07bb, 0x8cd: 0x07cb, 0x8ce: 0x07db, 0x8cf: 0x07fb, 0x8d0: 0x07ff, 0x8d1: 0x0803,\n\t0x8d2: 0x0837, 0x8d3: 0x085f, 0x8d4: 0x086f, 0x8d5: 0x0877, 0x8d6: 0x087b, 0x8d7: 0x0887,\n\t0x8d8: 0x08a3, 0x8d9: 0x08a7, 0x8da: 0x08bf, 0x8db: 0x08c3, 0x8dc: 0x08cb, 0x8dd: 0x08db,\n\t0x8de: 0x0977, 0x8df: 0x098b, 0x8e0: 0x09cb, 0x8e1: 0x09df, 0x8e2: 0x09e7, 0x8e3: 0x09eb,\n\t0x8e4: 0x09fb, 0x8e5: 0x0a17, 0x8e6: 0x0a43, 0x8e7: 0x0a4f, 0x8e8: 0x0a6f, 0x8e9: 0x0a7b,\n\t0x8ea: 0x0a7f, 0x8eb: 0x0a83, 0x8ec: 0x0a9b, 0x8ed: 0x0a9f, 0x8ee: 0x0acb, 0x8ef: 0x0ad7,\n\t0x8f0: 0x0adf, 0x8f1: 0x0ae7, 0x8f2: 0x0af7, 0x8f3: 0x0aff, 0x8f4: 0x0b07, 0x8f5: 0x0b33,\n\t0x8f6: 0x0b37, 0x8f7: 0x0b3f, 0x8f8: 0x0b43, 0x8f9: 0x0b4b, 0x8fa: 0x0b53, 0x8fb: 0x0b63,\n\t0x8fc: 0x0b7f, 0x8fd: 0x0bf7, 0x8fe: 0x0c0b, 0x8ff: 0x0c0f,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x0c8f, 0x901: 0x0c93, 0x902: 0x0ca7, 0x903: 0x0cab, 0x904: 0x0cb3, 0x905: 0x0cbb,\n\t0x906: 0x0cc3, 0x907: 0x0ccf, 0x908: 0x0cf7, 0x909: 0x0d07, 0x90a: 0x0d1b, 0x90b: 0x0d8b,\n\t0x90c: 0x0d97, 0x90d: 0x0da7, 0x90e: 0x0db3, 0x90f: 0x0dbf, 0x910: 0x0dc7, 0x911: 0x0dcb,\n\t0x912: 0x0dcf, 0x913: 0x0dd3, 0x914: 0x0dd7, 0x915: 0x0e8f, 0x916: 0x0ed7, 0x917: 0x0ee3,\n\t0x918: 0x0ee7, 0x919: 0x0eeb, 0x91a: 0x0eef, 0x91b: 0x0ef7, 0x91c: 0x0efb, 0x91d: 0x0f0f,\n\t0x91e: 0x0f2b, 0x91f: 0x0f33, 0x920: 0x0f73, 0x921: 0x0f77, 0x922: 0x0f7f, 0x923: 0x0f83,\n\t0x924: 0x0f8b, 0x925: 0x0f8f, 0x926: 0x0fb3, 0x927: 0x0fb7, 0x928: 0x0fd3, 0x929: 0x0fd7,\n\t0x92a: 0x0fdb, 0x92b: 0x0fdf, 0x92c: 0x0ff3, 0x92d: 0x1017, 0x92e: 0x101b, 0x92f: 0x101f,\n\t0x930: 0x1043, 0x931: 0x1083, 0x932: 0x1087, 0x933: 0x10a7, 0x934: 0x10b7, 0x935: 0x10bf,\n\t0x936: 0x10df, 0x937: 0x1103, 0x938: 0x1147, 0x939: 0x114f, 0x93a: 0x1163, 0x93b: 0x116f,\n\t0x93c: 0x1177, 0x93d: 0x117f, 0x93e: 0x1183, 0x93f: 0x1187,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x119f, 0x941: 0x11a3, 0x942: 0x11bf, 0x943: 0x11c7, 0x944: 0x11cf, 0x945: 0x11d3,\n\t0x946: 0x11df, 0x947: 0x11e7, 0x948: 0x11eb, 0x949: 0x11ef, 0x94a: 0x11f7, 0x94b: 0x11fb,\n\t0x94c: 0x129b, 0x94d: 0x12af, 0x94e: 0x12e3, 0x94f: 0x12e7, 0x950: 0x12ef, 0x951: 0x131b,\n\t0x952: 0x1323, 0x953: 0x132b, 0x954: 0x1333, 0x955: 0x136f, 0x956: 0x1373, 0x957: 0x137b,\n\t0x958: 0x137f, 0x959: 0x1383, 0x95a: 0x13af, 0x95b: 0x13b3, 0x95c: 0x13bb, 0x95d: 0x13cf,\n\t0x95e: 0x13d3, 0x95f: 0x13ef, 0x960: 0x13f7, 0x961: 0x13fb, 0x962: 0x141f, 0x963: 0x143f,\n\t0x964: 0x1453, 0x965: 0x1457, 0x966: 0x145f, 0x967: 0x148b, 0x968: 0x148f, 0x969: 0x149f,\n\t0x96a: 0x14c3, 0x96b: 0x14cf, 0x96c: 0x14df, 0x96d: 0x14f7, 0x96e: 0x14ff, 0x96f: 0x1503,\n\t0x970: 0x1507, 0x971: 0x150b, 0x972: 0x1517, 0x973: 0x151b, 0x974: 0x1523, 0x975: 0x153f,\n\t0x976: 0x1543, 0x977: 0x1547, 0x978: 0x155f, 0x979: 0x1563, 0x97a: 0x156b, 0x97b: 0x157f,\n\t0x97c: 0x1583, 0x97d: 0x1587, 0x97e: 0x158f, 0x97f: 0x1593,\n\t// Block 0x26, offset 0x980\n\t0x986: 0xa000, 0x98b: 0xa000,\n\t0x98c: 0x3f0b, 0x98d: 0xa000, 0x98e: 0x3f13, 0x98f: 0xa000, 0x990: 0x3f1b, 0x991: 0xa000,\n\t0x992: 0x3f23, 0x993: 0xa000, 0x994: 0x3f2b, 0x995: 0xa000, 0x996: 0x3f33, 0x997: 0xa000,\n\t0x998: 0x3f3b, 0x999: 0xa000, 0x99a: 0x3f43, 0x99b: 0xa000, 0x99c: 0x3f4b, 0x99d: 0xa000,\n\t0x99e: 0x3f53, 0x99f: 0xa000, 0x9a0: 0x3f5b, 0x9a1: 0xa000, 0x9a2: 0x3f63,\n\t0x9a4: 0xa000, 0x9a5: 0x3f6b, 0x9a6: 0xa000, 0x9a7: 0x3f73, 0x9a8: 0xa000, 0x9a9: 0x3f7b,\n\t0x9af: 0xa000,\n\t0x9b0: 0x3f83, 0x9b1: 0x3f8b, 0x9b2: 0xa000, 0x9b3: 0x3f93, 0x9b4: 0x3f9b, 0x9b5: 0xa000,\n\t0x9b6: 0x3fa3, 0x9b7: 0x3fab, 0x9b8: 0xa000, 0x9b9: 0x3fb3, 0x9ba: 0x3fbb, 0x9bb: 0xa000,\n\t0x9bc: 0x3fc3, 0x9bd: 0x3fcb,\n\t// Block 0x27, offset 0x9c0\n\t0x9d4: 0x3f03,\n\t0x9d9: 0x9903, 0x9da: 0x9903, 0x9db: 0x42df, 0x9dc: 0x42e5, 0x9dd: 0xa000,\n\t0x9de: 0x3fd3, 0x9df: 0x26b7,\n\t0x9e6: 0xa000,\n\t0x9eb: 0xa000, 0x9ec: 0x3fe3, 0x9ed: 0xa000, 0x9ee: 0x3feb, 0x9ef: 0xa000,\n\t0x9f0: 0x3ff3, 0x9f1: 0xa000, 0x9f2: 0x3ffb, 0x9f3: 0xa000, 0x9f4: 0x4003, 0x9f5: 0xa000,\n\t0x9f6: 0x400b, 0x9f7: 0xa000, 0x9f8: 0x4013, 0x9f9: 0xa000, 0x9fa: 0x401b, 0x9fb: 0xa000,\n\t0x9fc: 0x4023, 0x9fd: 0xa000, 0x9fe: 0x402b, 0x9ff: 0xa000,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x4033, 0xa01: 0xa000, 0xa02: 0x403b, 0xa04: 0xa000, 0xa05: 0x4043,\n\t0xa06: 0xa000, 0xa07: 0x404b, 0xa08: 0xa000, 0xa09: 0x4053,\n\t0xa0f: 0xa000, 0xa10: 0x405b, 0xa11: 0x4063,\n\t0xa12: 0xa000, 0xa13: 0x406b, 0xa14: 0x4073, 0xa15: 0xa000, 0xa16: 0x407b, 0xa17: 0x4083,\n\t0xa18: 0xa000, 0xa19: 0x408b, 0xa1a: 0x4093, 0xa1b: 0xa000, 0xa1c: 0x409b, 0xa1d: 0x40a3,\n\t0xa2f: 0xa000,\n\t0xa30: 0xa000, 0xa31: 0xa000, 0xa32: 0xa000, 0xa34: 0x3fdb,\n\t0xa37: 0x40ab, 0xa38: 0x40b3, 0xa39: 0x40bb, 0xa3a: 0x40c3,\n\t0xa3d: 0xa000, 0xa3e: 0x40cb, 0xa3f: 0x26cc,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0x0367, 0xa41: 0x032b, 0xa42: 0x032f, 0xa43: 0x0333, 0xa44: 0x037b, 0xa45: 0x0337,\n\t0xa46: 0x033b, 0xa47: 0x033f, 0xa48: 0x0343, 0xa49: 0x0347, 0xa4a: 0x034b, 0xa4b: 0x034f,\n\t0xa4c: 0x0353, 0xa4d: 0x0357, 0xa4e: 0x035b, 0xa4f: 0x49c0, 0xa50: 0x49c6, 0xa51: 0x49cc,\n\t0xa52: 0x49d2, 0xa53: 0x49d8, 0xa54: 0x49de, 0xa55: 0x49e4, 0xa56: 0x49ea, 0xa57: 0x49f0,\n\t0xa58: 0x49f6, 0xa59: 0x49fc, 0xa5a: 0x4a02, 0xa5b: 0x4a08, 0xa5c: 0x4a0e, 0xa5d: 0x4a14,\n\t0xa5e: 0x4a1a, 0xa5f: 0x4a20, 0xa60: 0x4a26, 0xa61: 0x4a2c, 0xa62: 0x4a32, 0xa63: 0x4a38,\n\t0xa64: 0x03c3, 0xa65: 0x035f, 0xa66: 0x0363, 0xa67: 0x03e7, 0xa68: 0x03eb, 0xa69: 0x03ef,\n\t0xa6a: 0x03f3, 0xa6b: 0x03f7, 0xa6c: 0x03fb, 0xa6d: 0x03ff, 0xa6e: 0x036b, 0xa6f: 0x0403,\n\t0xa70: 0x0407, 0xa71: 0x036f, 0xa72: 0x0373, 0xa73: 0x0377, 0xa74: 0x037f, 0xa75: 0x0383,\n\t0xa76: 0x0387, 0xa77: 0x038b, 0xa78: 0x038f, 0xa79: 0x0393, 0xa7a: 0x0397, 0xa7b: 0x039b,\n\t0xa7c: 0x039f, 0xa7d: 0x03a3, 0xa7e: 0x03a7, 0xa7f: 0x03ab,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0x03af, 0xa81: 0x03b3, 0xa82: 0x040b, 0xa83: 0x040f, 0xa84: 0x03b7, 0xa85: 0x03bb,\n\t0xa86: 0x03bf, 0xa87: 0x03c7, 0xa88: 0x03cb, 0xa89: 0x03cf, 0xa8a: 0x03d3, 0xa8b: 0x03d7,\n\t0xa8c: 0x03db, 0xa8d: 0x03df, 0xa8e: 0x03e3,\n\t0xa92: 0x06bf, 0xa93: 0x071b, 0xa94: 0x06cb, 0xa95: 0x097b, 0xa96: 0x06cf, 0xa97: 0x06e7,\n\t0xa98: 0x06d3, 0xa99: 0x0f93, 0xa9a: 0x0707, 0xa9b: 0x06db, 0xa9c: 0x06c3, 0xa9d: 0x09ff,\n\t0xa9e: 0x098f, 0xa9f: 0x072f,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0x2057, 0xac1: 0x205d, 0xac2: 0x2063, 0xac3: 0x2069, 0xac4: 0x206f, 0xac5: 0x2075,\n\t0xac6: 0x207b, 0xac7: 0x2081, 0xac8: 0x2087, 0xac9: 0x208d, 0xaca: 0x2093, 0xacb: 0x2099,\n\t0xacc: 0x209f, 0xacd: 0x20a5, 0xace: 0x2729, 0xacf: 0x2732, 0xad0: 0x273b, 0xad1: 0x2744,\n\t0xad2: 0x274d, 0xad3: 0x2756, 0xad4: 0x275f, 0xad5: 0x2768, 0xad6: 0x2771, 0xad7: 0x2783,\n\t0xad8: 0x278c, 0xad9: 0x2795, 0xada: 0x279e, 0xadb: 0x27a7, 0xadc: 0x277a, 0xadd: 0x2baf,\n\t0xade: 0x2af0, 0xae0: 0x20ab, 0xae1: 0x20c3, 0xae2: 0x20b7, 0xae3: 0x210b,\n\t0xae4: 0x20c9, 0xae5: 0x20e7, 0xae6: 0x20b1, 0xae7: 0x20e1, 0xae8: 0x20bd, 0xae9: 0x20f3,\n\t0xaea: 0x2123, 0xaeb: 0x2141, 0xaec: 0x213b, 0xaed: 0x212f, 0xaee: 0x217d, 0xaef: 0x2111,\n\t0xaf0: 0x211d, 0xaf1: 0x2135, 0xaf2: 0x2129, 0xaf3: 0x2153, 0xaf4: 0x20ff, 0xaf5: 0x2147,\n\t0xaf6: 0x2171, 0xaf7: 0x2159, 0xaf8: 0x20ed, 0xaf9: 0x20cf, 0xafa: 0x2105, 0xafb: 0x2117,\n\t0xafc: 0x214d, 0xafd: 0x20d5, 0xafe: 0x2177, 0xaff: 0x20f9,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0x215f, 0xb01: 0x20db, 0xb02: 0x2165, 0xb03: 0x216b, 0xb04: 0x092f, 0xb05: 0x0b03,\n\t0xb06: 0x0ca7, 0xb07: 0x10c7,\n\t0xb10: 0x1bc7, 0xb11: 0x18a9,\n\t0xb12: 0x18ac, 0xb13: 0x18af, 0xb14: 0x18b2, 0xb15: 0x18b5, 0xb16: 0x18b8, 0xb17: 0x18bb,\n\t0xb18: 0x18be, 0xb19: 0x18c1, 0xb1a: 0x18ca, 0xb1b: 0x18cd, 0xb1c: 0x18d0, 0xb1d: 0x18d3,\n\t0xb1e: 0x18d6, 0xb1f: 0x18d9, 0xb20: 0x0313, 0xb21: 0x031b, 0xb22: 0x031f, 0xb23: 0x0327,\n\t0xb24: 0x032b, 0xb25: 0x032f, 0xb26: 0x0337, 0xb27: 0x033f, 0xb28: 0x0343, 0xb29: 0x034b,\n\t0xb2a: 0x034f, 0xb2b: 0x0353, 0xb2c: 0x0357, 0xb2d: 0x035b, 0xb2e: 0x2e1b, 0xb2f: 0x2e23,\n\t0xb30: 0x2e2b, 0xb31: 0x2e33, 0xb32: 0x2e3b, 0xb33: 0x2e43, 0xb34: 0x2e4b, 0xb35: 0x2e53,\n\t0xb36: 0x2e63, 0xb37: 0x2e6b, 0xb38: 0x2e73, 0xb39: 0x2e7b, 0xb3a: 0x2e83, 0xb3b: 0x2e8b,\n\t0xb3c: 0x2ed6, 0xb3d: 0x2e9e, 0xb3e: 0x2e5b,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x06bf, 0xb41: 0x071b, 0xb42: 0x06cb, 0xb43: 0x097b, 0xb44: 0x071f, 0xb45: 0x07af,\n\t0xb46: 0x06c7, 0xb47: 0x07ab, 0xb48: 0x070b, 0xb49: 0x0887, 0xb4a: 0x0d07, 0xb4b: 0x0e8f,\n\t0xb4c: 0x0dd7, 0xb4d: 0x0d1b, 0xb4e: 0x145f, 0xb4f: 0x098b, 0xb50: 0x0ccf, 0xb51: 0x0d4b,\n\t0xb52: 0x0d0b, 0xb53: 0x104b, 0xb54: 0x08fb, 0xb55: 0x0f03, 0xb56: 0x1387, 0xb57: 0x105f,\n\t0xb58: 0x0843, 0xb59: 0x108f, 0xb5a: 0x0f9b, 0xb5b: 0x0a17, 0xb5c: 0x140f, 0xb5d: 0x077f,\n\t0xb5e: 0x08ab, 0xb5f: 0x0df7, 0xb60: 0x1527, 0xb61: 0x0743, 0xb62: 0x07d3, 0xb63: 0x0d9b,\n\t0xb64: 0x06cf, 0xb65: 0x06e7, 0xb66: 0x06d3, 0xb67: 0x0adb, 0xb68: 0x08ef, 0xb69: 0x087f,\n\t0xb6a: 0x0a57, 0xb6b: 0x0a4b, 0xb6c: 0x0feb, 0xb6d: 0x073f, 0xb6e: 0x139b, 0xb6f: 0x089b,\n\t0xb70: 0x09f3, 0xb71: 0x18dc, 0xb72: 0x18df, 0xb73: 0x18e2, 0xb74: 0x18e5, 0xb75: 0x18ee,\n\t0xb76: 0x18f1, 0xb77: 0x18f4, 0xb78: 0x18f7, 0xb79: 0x18fa, 0xb7a: 0x18fd, 0xb7b: 0x1900,\n\t0xb7c: 0x1903, 0xb7d: 0x1906, 0xb7e: 0x1909, 0xb7f: 0x1912,\n\t// Block 0x2e, offset 0xb80\n\t0xb80: 0x1cc9, 0xb81: 0x1cd8, 0xb82: 0x1ce7, 0xb83: 0x1cf6, 0xb84: 0x1d05, 0xb85: 0x1d14,\n\t0xb86: 0x1d23, 0xb87: 0x1d32, 0xb88: 0x1d41, 0xb89: 0x218f, 0xb8a: 0x21a1, 0xb8b: 0x21b3,\n\t0xb8c: 0x1954, 0xb8d: 0x1c07, 0xb8e: 0x19d5, 0xb8f: 0x1bab, 0xb90: 0x04cb, 0xb91: 0x04d3,\n\t0xb92: 0x04db, 0xb93: 0x04e3, 0xb94: 0x04eb, 0xb95: 0x04ef, 0xb96: 0x04f3, 0xb97: 0x04f7,\n\t0xb98: 0x04fb, 0xb99: 0x04ff, 0xb9a: 0x0503, 0xb9b: 0x0507, 0xb9c: 0x050b, 0xb9d: 0x050f,\n\t0xb9e: 0x0513, 0xb9f: 0x0517, 0xba0: 0x051b, 0xba1: 0x0523, 0xba2: 0x0527, 0xba3: 0x052b,\n\t0xba4: 0x052f, 0xba5: 0x0533, 0xba6: 0x0537, 0xba7: 0x053b, 0xba8: 0x053f, 0xba9: 0x0543,\n\t0xbaa: 0x0547, 0xbab: 0x054b, 0xbac: 0x054f, 0xbad: 0x0553, 0xbae: 0x0557, 0xbaf: 0x055b,\n\t0xbb0: 0x055f, 0xbb1: 0x0563, 0xbb2: 0x0567, 0xbb3: 0x056f, 0xbb4: 0x0577, 0xbb5: 0x057f,\n\t0xbb6: 0x0583, 0xbb7: 0x0587, 0xbb8: 0x058b, 0xbb9: 0x058f, 0xbba: 0x0593, 0xbbb: 0x0597,\n\t0xbbc: 0x059b, 0xbbd: 0x059f, 0xbbe: 0x05a3,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc0: 0x2b0f, 0xbc1: 0x29ab, 0xbc2: 0x2b1f, 0xbc3: 0x2883, 0xbc4: 0x2ee7, 0xbc5: 0x288d,\n\t0xbc6: 0x2897, 0xbc7: 0x2f2b, 0xbc8: 0x29b8, 0xbc9: 0x28a1, 0xbca: 0x28ab, 0xbcb: 0x28b5,\n\t0xbcc: 0x29df, 0xbcd: 0x29ec, 0xbce: 0x29c5, 0xbcf: 0x29d2, 0xbd0: 0x2eac, 0xbd1: 0x29f9,\n\t0xbd2: 0x2a06, 0xbd3: 0x2bc1, 0xbd4: 0x26be, 0xbd5: 0x2bd4, 0xbd6: 0x2be7, 0xbd7: 0x2b2f,\n\t0xbd8: 0x2a13, 0xbd9: 0x2bfa, 0xbda: 0x2c0d, 0xbdb: 0x2a20, 0xbdc: 0x28bf, 0xbdd: 0x28c9,\n\t0xbde: 0x2eba, 0xbdf: 0x2a2d, 0xbe0: 0x2b3f, 0xbe1: 0x2ef8, 0xbe2: 0x28d3, 0xbe3: 0x28dd,\n\t0xbe4: 0x2a3a, 0xbe5: 0x28e7, 0xbe6: 0x28f1, 0xbe7: 0x26d3, 0xbe8: 0x26da, 0xbe9: 0x28fb,\n\t0xbea: 0x2905, 0xbeb: 0x2c20, 0xbec: 0x2a47, 0xbed: 0x2b4f, 0xbee: 0x2c33, 0xbef: 0x2a54,\n\t0xbf0: 0x2919, 0xbf1: 0x290f, 0xbf2: 0x2f3f, 0xbf3: 0x2a61, 0xbf4: 0x2c46, 0xbf5: 0x2923,\n\t0xbf6: 0x2b5f, 0xbf7: 0x292d, 0xbf8: 0x2a7b, 0xbf9: 0x2937, 0xbfa: 0x2a88, 0xbfb: 0x2f09,\n\t0xbfc: 0x2a6e, 0xbfd: 0x2b6f, 0xbfe: 0x2a95, 0xbff: 0x26e1,\n\t// Block 0x30, offset 0xc00\n\t0xc00: 0x2f1a, 0xc01: 0x2941, 0xc02: 0x294b, 0xc03: 0x2aa2, 0xc04: 0x2955, 0xc05: 0x295f,\n\t0xc06: 0x2969, 0xc07: 0x2b7f, 0xc08: 0x2aaf, 0xc09: 0x26e8, 0xc0a: 0x2c59, 0xc0b: 0x2e93,\n\t0xc0c: 0x2b8f, 0xc0d: 0x2abc, 0xc0e: 0x2ec8, 0xc0f: 0x2973, 0xc10: 0x297d, 0xc11: 0x2ac9,\n\t0xc12: 0x26ef, 0xc13: 0x2ad6, 0xc14: 0x2b9f, 0xc15: 0x26f6, 0xc16: 0x2c6c, 0xc17: 0x2987,\n\t0xc18: 0x1cba, 0xc19: 0x1cce, 0xc1a: 0x1cdd, 0xc1b: 0x1cec, 0xc1c: 0x1cfb, 0xc1d: 0x1d0a,\n\t0xc1e: 0x1d19, 0xc1f: 0x1d28, 0xc20: 0x1d37, 0xc21: 0x1d46, 0xc22: 0x2195, 0xc23: 0x21a7,\n\t0xc24: 0x21b9, 0xc25: 0x21c5, 0xc26: 0x21d1, 0xc27: 0x21dd, 0xc28: 0x21e9, 0xc29: 0x21f5,\n\t0xc2a: 0x2201, 0xc2b: 0x220d, 0xc2c: 0x2249, 0xc2d: 0x2255, 0xc2e: 0x2261, 0xc2f: 0x226d,\n\t0xc30: 0x2279, 0xc31: 0x1c17, 0xc32: 0x19c9, 0xc33: 0x1936, 0xc34: 0x1be7, 0xc35: 0x1a4a,\n\t0xc36: 0x1a59, 0xc37: 0x19cf, 0xc38: 0x1bff, 0xc39: 0x1c03, 0xc3a: 0x1960, 0xc3b: 0x2704,\n\t0xc3c: 0x2712, 0xc3d: 0x26fd, 0xc3e: 0x270b, 0xc3f: 0x2ae3,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x1a4d, 0xc41: 0x1a35, 0xc42: 0x1c63, 0xc43: 0x1a1d, 0xc44: 0x19f6, 0xc45: 0x1969,\n\t0xc46: 0x1978, 0xc47: 0x1948, 0xc48: 0x1bf3, 0xc49: 0x1d55, 0xc4a: 0x1a50, 0xc4b: 0x1a38,\n\t0xc4c: 0x1c67, 0xc4d: 0x1c73, 0xc4e: 0x1a29, 0xc4f: 0x19ff, 0xc50: 0x1957, 0xc51: 0x1c1f,\n\t0xc52: 0x1bb3, 0xc53: 0x1b9f, 0xc54: 0x1bcf, 0xc55: 0x1c77, 0xc56: 0x1a2c, 0xc57: 0x19cc,\n\t0xc58: 0x1a02, 0xc59: 0x19e1, 0xc5a: 0x1a44, 0xc5b: 0x1c7b, 0xc5c: 0x1a2f, 0xc5d: 0x19c3,\n\t0xc5e: 0x1a05, 0xc5f: 0x1c3f, 0xc60: 0x1bf7, 0xc61: 0x1a17, 0xc62: 0x1c27, 0xc63: 0x1c43,\n\t0xc64: 0x1bfb, 0xc65: 0x1a1a, 0xc66: 0x1c2b, 0xc67: 0x22eb, 0xc68: 0x22ff, 0xc69: 0x1999,\n\t0xc6a: 0x1c23, 0xc6b: 0x1bb7, 0xc6c: 0x1ba3, 0xc6d: 0x1c4b, 0xc6e: 0x2719, 0xc6f: 0x27b0,\n\t0xc70: 0x1a5c, 0xc71: 0x1a47, 0xc72: 0x1c7f, 0xc73: 0x1a32, 0xc74: 0x1a53, 0xc75: 0x1a3b,\n\t0xc76: 0x1c6b, 0xc77: 0x1a20, 0xc78: 0x19f9, 0xc79: 0x1984, 0xc7a: 0x1a56, 0xc7b: 0x1a3e,\n\t0xc7c: 0x1c6f, 0xc7d: 0x1a23, 0xc7e: 0x19fc, 0xc7f: 0x1987,\n\t// Block 0x32, offset 0xc80\n\t0xc80: 0x1c2f, 0xc81: 0x1bbb, 0xc82: 0x1d50, 0xc83: 0x1939, 0xc84: 0x19bd, 0xc85: 0x19c0,\n\t0xc86: 0x22f8, 0xc87: 0x1b97, 0xc88: 0x19c6, 0xc89: 0x194b, 0xc8a: 0x19e4, 0xc8b: 0x194e,\n\t0xc8c: 0x19ed, 0xc8d: 0x196c, 0xc8e: 0x196f, 0xc8f: 0x1a08, 0xc90: 0x1a0e, 0xc91: 0x1a11,\n\t0xc92: 0x1c33, 0xc93: 0x1a14, 0xc94: 0x1a26, 0xc95: 0x1c3b, 0xc96: 0x1c47, 0xc97: 0x1993,\n\t0xc98: 0x1d5a, 0xc99: 0x1bbf, 0xc9a: 0x1996, 0xc9b: 0x1a5f, 0xc9c: 0x19a8, 0xc9d: 0x19b7,\n\t0xc9e: 0x22e5, 0xc9f: 0x22df, 0xca0: 0x1cc4, 0xca1: 0x1cd3, 0xca2: 0x1ce2, 0xca3: 0x1cf1,\n\t0xca4: 0x1d00, 0xca5: 0x1d0f, 0xca6: 0x1d1e, 0xca7: 0x1d2d, 0xca8: 0x1d3c, 0xca9: 0x2189,\n\t0xcaa: 0x219b, 0xcab: 0x21ad, 0xcac: 0x21bf, 0xcad: 0x21cb, 0xcae: 0x21d7, 0xcaf: 0x21e3,\n\t0xcb0: 0x21ef, 0xcb1: 0x21fb, 0xcb2: 0x2207, 0xcb3: 0x2243, 0xcb4: 0x224f, 0xcb5: 0x225b,\n\t0xcb6: 0x2267, 0xcb7: 0x2273, 0xcb8: 0x227f, 0xcb9: 0x2285, 0xcba: 0x228b, 0xcbb: 0x2291,\n\t0xcbc: 0x2297, 0xcbd: 0x22a9, 0xcbe: 0x22af, 0xcbf: 0x1c13,\n\t// Block 0x33, offset 0xcc0\n\t0xcc0: 0x1377, 0xcc1: 0x0cfb, 0xcc2: 0x13d3, 0xcc3: 0x139f, 0xcc4: 0x0e57, 0xcc5: 0x06eb,\n\t0xcc6: 0x08df, 0xcc7: 0x162b, 0xcc8: 0x162b, 0xcc9: 0x0a0b, 0xcca: 0x145f, 0xccb: 0x0943,\n\t0xccc: 0x0a07, 0xccd: 0x0bef, 0xcce: 0x0fcf, 0xccf: 0x115f, 0xcd0: 0x1297, 0xcd1: 0x12d3,\n\t0xcd2: 0x1307, 0xcd3: 0x141b, 0xcd4: 0x0d73, 0xcd5: 0x0dff, 0xcd6: 0x0eab, 0xcd7: 0x0f43,\n\t0xcd8: 0x125f, 0xcd9: 0x1447, 0xcda: 0x1573, 0xcdb: 0x070f, 0xcdc: 0x08b3, 0xcdd: 0x0d87,\n\t0xcde: 0x0ecf, 0xcdf: 0x1293, 0xce0: 0x15c3, 0xce1: 0x0ab3, 0xce2: 0x0e77, 0xce3: 0x1283,\n\t0xce4: 0x1317, 0xce5: 0x0c23, 0xce6: 0x11bb, 0xce7: 0x12df, 0xce8: 0x0b1f, 0xce9: 0x0d0f,\n\t0xcea: 0x0e17, 0xceb: 0x0f1b, 0xcec: 0x1427, 0xced: 0x074f, 0xcee: 0x07e7, 0xcef: 0x0853,\n\t0xcf0: 0x0c8b, 0xcf1: 0x0d7f, 0xcf2: 0x0ecb, 0xcf3: 0x0fef, 0xcf4: 0x1177, 0xcf5: 0x128b,\n\t0xcf6: 0x12a3, 0xcf7: 0x13c7, 0xcf8: 0x14ef, 0xcf9: 0x15a3, 0xcfa: 0x15bf, 0xcfb: 0x102b,\n\t0xcfc: 0x106b, 0xcfd: 0x1123, 0xcfe: 0x1243, 0xcff: 0x147b,\n\t// Block 0x34, offset 0xd00\n\t0xd00: 0x15cb, 0xd01: 0x134b, 0xd02: 0x09c7, 0xd03: 0x0b3b, 0xd04: 0x10db, 0xd05: 0x119b,\n\t0xd06: 0x0eff, 0xd07: 0x1033, 0xd08: 0x1397, 0xd09: 0x14e7, 0xd0a: 0x09c3, 0xd0b: 0x0a8f,\n\t0xd0c: 0x0d77, 0xd0d: 0x0e2b, 0xd0e: 0x0e5f, 0xd0f: 0x1113, 0xd10: 0x113b, 0xd11: 0x14a7,\n\t0xd12: 0x084f, 0xd13: 0x11a7, 0xd14: 0x07f3, 0xd15: 0x07ef, 0xd16: 0x1097, 0xd17: 0x1127,\n\t0xd18: 0x125b, 0xd19: 0x14af, 0xd1a: 0x1367, 0xd1b: 0x0c27, 0xd1c: 0x0d73, 0xd1d: 0x1357,\n\t0xd1e: 0x06f7, 0xd1f: 0x0a63, 0xd20: 0x0b93, 0xd21: 0x0f2f, 0xd22: 0x0faf, 0xd23: 0x0873,\n\t0xd24: 0x103b, 0xd25: 0x075f, 0xd26: 0x0b77, 0xd27: 0x06d7, 0xd28: 0x0deb, 0xd29: 0x0ca3,\n\t0xd2a: 0x110f, 0xd2b: 0x08c7, 0xd2c: 0x09b3, 0xd2d: 0x0ffb, 0xd2e: 0x1263, 0xd2f: 0x133b,\n\t0xd30: 0x0db7, 0xd31: 0x13f7, 0xd32: 0x0de3, 0xd33: 0x0c37, 0xd34: 0x121b, 0xd35: 0x0c57,\n\t0xd36: 0x0fab, 0xd37: 0x072b, 0xd38: 0x07a7, 0xd39: 0x07eb, 0xd3a: 0x0d53, 0xd3b: 0x10fb,\n\t0xd3c: 0x11f3, 0xd3d: 0x1347, 0xd3e: 0x145b, 0xd3f: 0x085b,\n\t// Block 0x35, offset 0xd40\n\t0xd40: 0x090f, 0xd41: 0x0a17, 0xd42: 0x0b2f, 0xd43: 0x0cbf, 0xd44: 0x0e7b, 0xd45: 0x103f,\n\t0xd46: 0x1497, 0xd47: 0x157b, 0xd48: 0x15cf, 0xd49: 0x15e7, 0xd4a: 0x0837, 0xd4b: 0x0cf3,\n\t0xd4c: 0x0da3, 0xd4d: 0x13eb, 0xd4e: 0x0afb, 0xd4f: 0x0bd7, 0xd50: 0x0bf3, 0xd51: 0x0c83,\n\t0xd52: 0x0e6b, 0xd53: 0x0eb7, 0xd54: 0x0f67, 0xd55: 0x108b, 0xd56: 0x112f, 0xd57: 0x1193,\n\t0xd58: 0x13db, 0xd59: 0x126b, 0xd5a: 0x1403, 0xd5b: 0x147f, 0xd5c: 0x080f, 0xd5d: 0x083b,\n\t0xd5e: 0x0923, 0xd5f: 0x0ea7, 0xd60: 0x12f3, 0xd61: 0x133b, 0xd62: 0x0b1b, 0xd63: 0x0b8b,\n\t0xd64: 0x0c4f, 0xd65: 0x0daf, 0xd66: 0x10d7, 0xd67: 0x0f23, 0xd68: 0x073b, 0xd69: 0x097f,\n\t0xd6a: 0x0a63, 0xd6b: 0x0ac7, 0xd6c: 0x0b97, 0xd6d: 0x0f3f, 0xd6e: 0x0f5b, 0xd6f: 0x116b,\n\t0xd70: 0x118b, 0xd71: 0x1463, 0xd72: 0x14e3, 0xd73: 0x14f3, 0xd74: 0x152f, 0xd75: 0x0753,\n\t0xd76: 0x107f, 0xd77: 0x144f, 0xd78: 0x14cb, 0xd79: 0x0baf, 0xd7a: 0x0717, 0xd7b: 0x0777,\n\t0xd7c: 0x0a67, 0xd7d: 0x0a87, 0xd7e: 0x0caf, 0xd7f: 0x0d73,\n\t// Block 0x36, offset 0xd80\n\t0xd80: 0x0ec3, 0xd81: 0x0fcb, 0xd82: 0x1277, 0xd83: 0x1417, 0xd84: 0x1623, 0xd85: 0x0ce3,\n\t0xd86: 0x14a3, 0xd87: 0x0833, 0xd88: 0x0d2f, 0xd89: 0x0d3b, 0xd8a: 0x0e0f, 0xd8b: 0x0e47,\n\t0xd8c: 0x0f4b, 0xd8d: 0x0fa7, 0xd8e: 0x1027, 0xd8f: 0x110b, 0xd90: 0x153b, 0xd91: 0x07af,\n\t0xd92: 0x0c03, 0xd93: 0x14b3, 0xd94: 0x0767, 0xd95: 0x0aab, 0xd96: 0x0e2f, 0xd97: 0x13df,\n\t0xd98: 0x0b67, 0xd99: 0x0bb7, 0xd9a: 0x0d43, 0xd9b: 0x0f2f, 0xd9c: 0x14bb, 0xd9d: 0x0817,\n\t0xd9e: 0x08ff, 0xd9f: 0x0a97, 0xda0: 0x0cd3, 0xda1: 0x0d1f, 0xda2: 0x0d5f, 0xda3: 0x0df3,\n\t0xda4: 0x0f47, 0xda5: 0x0fbb, 0xda6: 0x1157, 0xda7: 0x12f7, 0xda8: 0x1303, 0xda9: 0x1457,\n\t0xdaa: 0x14d7, 0xdab: 0x0883, 0xdac: 0x0e4b, 0xdad: 0x0903, 0xdae: 0x0ec7, 0xdaf: 0x0f6b,\n\t0xdb0: 0x1287, 0xdb1: 0x14bf, 0xdb2: 0x15ab, 0xdb3: 0x15d3, 0xdb4: 0x0d37, 0xdb5: 0x0e27,\n\t0xdb6: 0x11c3, 0xdb7: 0x10b7, 0xdb8: 0x10c3, 0xdb9: 0x10e7, 0xdba: 0x0f17, 0xdbb: 0x0e9f,\n\t0xdbc: 0x1363, 0xdbd: 0x0733, 0xdbe: 0x122b, 0xdbf: 0x081b,\n\t// Block 0x37, offset 0xdc0\n\t0xdc0: 0x080b, 0xdc1: 0x0b0b, 0xdc2: 0x0c2b, 0xdc3: 0x10f3, 0xdc4: 0x0a53, 0xdc5: 0x0e03,\n\t0xdc6: 0x0cef, 0xdc7: 0x13e7, 0xdc8: 0x12e7, 0xdc9: 0x14ab, 0xdca: 0x1323, 0xdcb: 0x0b27,\n\t0xdcc: 0x0787, 0xdcd: 0x095b, 0xdd0: 0x09af,\n\t0xdd2: 0x0cdf, 0xdd5: 0x07f7, 0xdd6: 0x0f1f, 0xdd7: 0x0fe3,\n\t0xdd8: 0x1047, 0xdd9: 0x1063, 0xdda: 0x1067, 0xddb: 0x107b, 0xddc: 0x14fb, 0xddd: 0x10eb,\n\t0xdde: 0x116f, 0xde0: 0x128f, 0xde2: 0x1353,\n\t0xde5: 0x1407, 0xde6: 0x1433,\n\t0xdea: 0x154f, 0xdeb: 0x1553, 0xdec: 0x1557, 0xded: 0x15bb, 0xdee: 0x142b, 0xdef: 0x14c7,\n\t0xdf0: 0x0757, 0xdf1: 0x077b, 0xdf2: 0x078f, 0xdf3: 0x084b, 0xdf4: 0x0857, 0xdf5: 0x0897,\n\t0xdf6: 0x094b, 0xdf7: 0x0967, 0xdf8: 0x096f, 0xdf9: 0x09ab, 0xdfa: 0x09b7, 0xdfb: 0x0a93,\n\t0xdfc: 0x0a9b, 0xdfd: 0x0ba3, 0xdfe: 0x0bcb, 0xdff: 0x0bd3,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0x0beb, 0xe01: 0x0c97, 0xe02: 0x0cc7, 0xe03: 0x0ce7, 0xe04: 0x0d57, 0xe05: 0x0e1b,\n\t0xe06: 0x0e37, 0xe07: 0x0e67, 0xe08: 0x0ebb, 0xe09: 0x0edb, 0xe0a: 0x0f4f, 0xe0b: 0x102f,\n\t0xe0c: 0x104b, 0xe0d: 0x1053, 0xe0e: 0x104f, 0xe0f: 0x1057, 0xe10: 0x105b, 0xe11: 0x105f,\n\t0xe12: 0x1073, 0xe13: 0x1077, 0xe14: 0x109b, 0xe15: 0x10af, 0xe16: 0x10cb, 0xe17: 0x112f,\n\t0xe18: 0x1137, 0xe19: 0x113f, 0xe1a: 0x1153, 0xe1b: 0x117b, 0xe1c: 0x11cb, 0xe1d: 0x11ff,\n\t0xe1e: 0x11ff, 0xe1f: 0x1267, 0xe20: 0x130f, 0xe21: 0x1327, 0xe22: 0x135b, 0xe23: 0x135f,\n\t0xe24: 0x13a3, 0xe25: 0x13a7, 0xe26: 0x13ff, 0xe27: 0x1407, 0xe28: 0x14db, 0xe29: 0x151f,\n\t0xe2a: 0x1537, 0xe2b: 0x0b9b, 0xe2c: 0x171e, 0xe2d: 0x11e3,\n\t0xe30: 0x06df, 0xe31: 0x07e3, 0xe32: 0x07a3, 0xe33: 0x074b, 0xe34: 0x078b, 0xe35: 0x07b7,\n\t0xe36: 0x0847, 0xe37: 0x0863, 0xe38: 0x094b, 0xe39: 0x0937, 0xe3a: 0x0947, 0xe3b: 0x0963,\n\t0xe3c: 0x09af, 0xe3d: 0x09bf, 0xe3e: 0x0a03, 0xe3f: 0x0a0f,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x0a2b, 0xe41: 0x0a3b, 0xe42: 0x0b23, 0xe43: 0x0b2b, 0xe44: 0x0b5b, 0xe45: 0x0b7b,\n\t0xe46: 0x0bab, 0xe47: 0x0bc3, 0xe48: 0x0bb3, 0xe49: 0x0bd3, 0xe4a: 0x0bc7, 0xe4b: 0x0beb,\n\t0xe4c: 0x0c07, 0xe4d: 0x0c5f, 0xe4e: 0x0c6b, 0xe4f: 0x0c73, 0xe50: 0x0c9b, 0xe51: 0x0cdf,\n\t0xe52: 0x0d0f, 0xe53: 0x0d13, 0xe54: 0x0d27, 0xe55: 0x0da7, 0xe56: 0x0db7, 0xe57: 0x0e0f,\n\t0xe58: 0x0e5b, 0xe59: 0x0e53, 0xe5a: 0x0e67, 0xe5b: 0x0e83, 0xe5c: 0x0ebb, 0xe5d: 0x1013,\n\t0xe5e: 0x0edf, 0xe5f: 0x0f13, 0xe60: 0x0f1f, 0xe61: 0x0f5f, 0xe62: 0x0f7b, 0xe63: 0x0f9f,\n\t0xe64: 0x0fc3, 0xe65: 0x0fc7, 0xe66: 0x0fe3, 0xe67: 0x0fe7, 0xe68: 0x0ff7, 0xe69: 0x100b,\n\t0xe6a: 0x1007, 0xe6b: 0x1037, 0xe6c: 0x10b3, 0xe6d: 0x10cb, 0xe6e: 0x10e3, 0xe6f: 0x111b,\n\t0xe70: 0x112f, 0xe71: 0x114b, 0xe72: 0x117b, 0xe73: 0x122f, 0xe74: 0x1257, 0xe75: 0x12cb,\n\t0xe76: 0x1313, 0xe77: 0x131f, 0xe78: 0x1327, 0xe79: 0x133f, 0xe7a: 0x1353, 0xe7b: 0x1343,\n\t0xe7c: 0x135b, 0xe7d: 0x1357, 0xe7e: 0x134f, 0xe7f: 0x135f,\n\t// Block 0x3a, offset 0xe80\n\t0xe80: 0x136b, 0xe81: 0x13a7, 0xe82: 0x13e3, 0xe83: 0x1413, 0xe84: 0x144b, 0xe85: 0x146b,\n\t0xe86: 0x14b7, 0xe87: 0x14db, 0xe88: 0x14fb, 0xe89: 0x150f, 0xe8a: 0x151f, 0xe8b: 0x152b,\n\t0xe8c: 0x1537, 0xe8d: 0x158b, 0xe8e: 0x162b, 0xe8f: 0x16b5, 0xe90: 0x16b0, 0xe91: 0x16e2,\n\t0xe92: 0x0607, 0xe93: 0x062f, 0xe94: 0x0633, 0xe95: 0x1764, 0xe96: 0x1791, 0xe97: 0x1809,\n\t0xe98: 0x1617, 0xe99: 0x1627,\n\t// Block 0x3b, offset 0xec0\n\t0xec0: 0x19d8, 0xec1: 0x19db, 0xec2: 0x19de, 0xec3: 0x1c0b, 0xec4: 0x1c0f, 0xec5: 0x1a62,\n\t0xec6: 0x1a62,\n\t0xed3: 0x1d78, 0xed4: 0x1d69, 0xed5: 0x1d6e, 0xed6: 0x1d7d, 0xed7: 0x1d73,\n\t0xedd: 0x4393,\n\t0xede: 0x8115, 0xedf: 0x4405, 0xee0: 0x022d, 0xee1: 0x0215, 0xee2: 0x021e, 0xee3: 0x0221,\n\t0xee4: 0x0224, 0xee5: 0x0227, 0xee6: 0x022a, 0xee7: 0x0230, 0xee8: 0x0233, 0xee9: 0x0017,\n\t0xeea: 0x43f3, 0xeeb: 0x43f9, 0xeec: 0x44f7, 0xeed: 0x44ff, 0xeee: 0x434b, 0xeef: 0x4351,\n\t0xef0: 0x4357, 0xef1: 0x435d, 0xef2: 0x4369, 0xef3: 0x436f, 0xef4: 0x4375, 0xef5: 0x4381,\n\t0xef6: 0x4387, 0xef8: 0x438d, 0xef9: 0x4399, 0xefa: 0x439f, 0xefb: 0x43a5,\n\t0xefc: 0x43b1, 0xefe: 0x43b7,\n\t// Block 0x3c, offset 0xf00\n\t0xf00: 0x43bd, 0xf01: 0x43c3, 0xf03: 0x43c9, 0xf04: 0x43cf,\n\t0xf06: 0x43db, 0xf07: 0x43e1, 0xf08: 0x43e7, 0xf09: 0x43ed, 0xf0a: 0x43ff, 0xf0b: 0x437b,\n\t0xf0c: 0x4363, 0xf0d: 0x43ab, 0xf0e: 0x43d5, 0xf0f: 0x1d82, 0xf10: 0x0299, 0xf11: 0x0299,\n\t0xf12: 0x02a2, 0xf13: 0x02a2, 0xf14: 0x02a2, 0xf15: 0x02a2, 0xf16: 0x02a5, 0xf17: 0x02a5,\n\t0xf18: 0x02a5, 0xf19: 0x02a5, 0xf1a: 0x02ab, 0xf1b: 0x02ab, 0xf1c: 0x02ab, 0xf1d: 0x02ab,\n\t0xf1e: 0x029f, 0xf1f: 0x029f, 0xf20: 0x029f, 0xf21: 0x029f, 0xf22: 0x02a8, 0xf23: 0x02a8,\n\t0xf24: 0x02a8, 0xf25: 0x02a8, 0xf26: 0x029c, 0xf27: 0x029c, 0xf28: 0x029c, 0xf29: 0x029c,\n\t0xf2a: 0x02cf, 0xf2b: 0x02cf, 0xf2c: 0x02cf, 0xf2d: 0x02cf, 0xf2e: 0x02d2, 0xf2f: 0x02d2,\n\t0xf30: 0x02d2, 0xf31: 0x02d2, 0xf32: 0x02b1, 0xf33: 0x02b1, 0xf34: 0x02b1, 0xf35: 0x02b1,\n\t0xf36: 0x02ae, 0xf37: 0x02ae, 0xf38: 0x02ae, 0xf39: 0x02ae, 0xf3a: 0x02b4, 0xf3b: 0x02b4,\n\t0xf3c: 0x02b4, 0xf3d: 0x02b4, 0xf3e: 0x02b7, 0xf3f: 0x02b7,\n\t// Block 0x3d, offset 0xf40\n\t0xf40: 0x02b7, 0xf41: 0x02b7, 0xf42: 0x02c0, 0xf43: 0x02c0, 0xf44: 0x02bd, 0xf45: 0x02bd,\n\t0xf46: 0x02c3, 0xf47: 0x02c3, 0xf48: 0x02ba, 0xf49: 0x02ba, 0xf4a: 0x02c9, 0xf4b: 0x02c9,\n\t0xf4c: 0x02c6, 0xf4d: 0x02c6, 0xf4e: 0x02d5, 0xf4f: 0x02d5, 0xf50: 0x02d5, 0xf51: 0x02d5,\n\t0xf52: 0x02db, 0xf53: 0x02db, 0xf54: 0x02db, 0xf55: 0x02db, 0xf56: 0x02e1, 0xf57: 0x02e1,\n\t0xf58: 0x02e1, 0xf59: 0x02e1, 0xf5a: 0x02de, 0xf5b: 0x02de, 0xf5c: 0x02de, 0xf5d: 0x02de,\n\t0xf5e: 0x02e4, 0xf5f: 0x02e4, 0xf60: 0x02e7, 0xf61: 0x02e7, 0xf62: 0x02e7, 0xf63: 0x02e7,\n\t0xf64: 0x4471, 0xf65: 0x4471, 0xf66: 0x02ed, 0xf67: 0x02ed, 0xf68: 0x02ed, 0xf69: 0x02ed,\n\t0xf6a: 0x02ea, 0xf6b: 0x02ea, 0xf6c: 0x02ea, 0xf6d: 0x02ea, 0xf6e: 0x0308, 0xf6f: 0x0308,\n\t0xf70: 0x446b, 0xf71: 0x446b,\n\t// Block 0x3e, offset 0xf80\n\t0xf93: 0x02d8, 0xf94: 0x02d8, 0xf95: 0x02d8, 0xf96: 0x02d8, 0xf97: 0x02f6,\n\t0xf98: 0x02f6, 0xf99: 0x02f3, 0xf9a: 0x02f3, 0xf9b: 0x02f9, 0xf9c: 0x02f9, 0xf9d: 0x2052,\n\t0xf9e: 0x02ff, 0xf9f: 0x02ff, 0xfa0: 0x02f0, 0xfa1: 0x02f0, 0xfa2: 0x02fc, 0xfa3: 0x02fc,\n\t0xfa4: 0x0305, 0xfa5: 0x0305, 0xfa6: 0x0305, 0xfa7: 0x0305, 0xfa8: 0x028d, 0xfa9: 0x028d,\n\t0xfaa: 0x25ad, 0xfab: 0x25ad, 0xfac: 0x261d, 0xfad: 0x261d, 0xfae: 0x25ec, 0xfaf: 0x25ec,\n\t0xfb0: 0x2608, 0xfb1: 0x2608, 0xfb2: 0x2601, 0xfb3: 0x2601, 0xfb4: 0x260f, 0xfb5: 0x260f,\n\t0xfb6: 0x2616, 0xfb7: 0x2616, 0xfb8: 0x2616, 0xfb9: 0x25f3, 0xfba: 0x25f3, 0xfbb: 0x25f3,\n\t0xfbc: 0x0302, 0xfbd: 0x0302, 0xfbe: 0x0302, 0xfbf: 0x0302,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc0: 0x25b4, 0xfc1: 0x25bb, 0xfc2: 0x25d7, 0xfc3: 0x25f3, 0xfc4: 0x25fa, 0xfc5: 0x1d8c,\n\t0xfc6: 0x1d91, 0xfc7: 0x1d96, 0xfc8: 0x1da5, 0xfc9: 0x1db4, 0xfca: 0x1db9, 0xfcb: 0x1dbe,\n\t0xfcc: 0x1dc3, 0xfcd: 0x1dc8, 0xfce: 0x1dd7, 0xfcf: 0x1de6, 0xfd0: 0x1deb, 0xfd1: 0x1df0,\n\t0xfd2: 0x1dff, 0xfd3: 0x1e0e, 0xfd4: 0x1e13, 0xfd5: 0x1e18, 0xfd6: 0x1e1d, 0xfd7: 0x1e2c,\n\t0xfd8: 0x1e31, 0xfd9: 0x1e40, 0xfda: 0x1e45, 0xfdb: 0x1e4a, 0xfdc: 0x1e59, 0xfdd: 0x1e5e,\n\t0xfde: 0x1e63, 0xfdf: 0x1e6d, 0xfe0: 0x1ea9, 0xfe1: 0x1eb8, 0xfe2: 0x1ec7, 0xfe3: 0x1ecc,\n\t0xfe4: 0x1ed1, 0xfe5: 0x1edb, 0xfe6: 0x1eea, 0xfe7: 0x1eef, 0xfe8: 0x1efe, 0xfe9: 0x1f03,\n\t0xfea: 0x1f08, 0xfeb: 0x1f17, 0xfec: 0x1f1c, 0xfed: 0x1f2b, 0xfee: 0x1f30, 0xfef: 0x1f35,\n\t0xff0: 0x1f3a, 0xff1: 0x1f3f, 0xff2: 0x1f44, 0xff3: 0x1f49, 0xff4: 0x1f4e, 0xff5: 0x1f53,\n\t0xff6: 0x1f58, 0xff7: 0x1f5d, 0xff8: 0x1f62, 0xff9: 0x1f67, 0xffa: 0x1f6c, 0xffb: 0x1f71,\n\t0xffc: 0x1f76, 0xffd: 0x1f7b, 0xffe: 0x1f80, 0xfff: 0x1f8a,\n\t// Block 0x40, offset 0x1000\n\t0x1000: 0x1f8f, 0x1001: 0x1f94, 0x1002: 0x1f99, 0x1003: 0x1fa3, 0x1004: 0x1fa8, 0x1005: 0x1fb2,\n\t0x1006: 0x1fb7, 0x1007: 0x1fbc, 0x1008: 0x1fc1, 0x1009: 0x1fc6, 0x100a: 0x1fcb, 0x100b: 0x1fd0,\n\t0x100c: 0x1fd5, 0x100d: 0x1fda, 0x100e: 0x1fe9, 0x100f: 0x1ff8, 0x1010: 0x1ffd, 0x1011: 0x2002,\n\t0x1012: 0x2007, 0x1013: 0x200c, 0x1014: 0x2011, 0x1015: 0x201b, 0x1016: 0x2020, 0x1017: 0x2025,\n\t0x1018: 0x2034, 0x1019: 0x2043, 0x101a: 0x2048, 0x101b: 0x4423, 0x101c: 0x4429, 0x101d: 0x445f,\n\t0x101e: 0x44b6, 0x101f: 0x44bd, 0x1020: 0x44c4, 0x1021: 0x44cb, 0x1022: 0x44d2, 0x1023: 0x44d9,\n\t0x1024: 0x25c9, 0x1025: 0x25d0, 0x1026: 0x25d7, 0x1027: 0x25de, 0x1028: 0x25f3, 0x1029: 0x25fa,\n\t0x102a: 0x1d9b, 0x102b: 0x1da0, 0x102c: 0x1da5, 0x102d: 0x1daa, 0x102e: 0x1db4, 0x102f: 0x1db9,\n\t0x1030: 0x1dcd, 0x1031: 0x1dd2, 0x1032: 0x1dd7, 0x1033: 0x1ddc, 0x1034: 0x1de6, 0x1035: 0x1deb,\n\t0x1036: 0x1df5, 0x1037: 0x1dfa, 0x1038: 0x1dff, 0x1039: 0x1e04, 0x103a: 0x1e0e, 0x103b: 0x1e13,\n\t0x103c: 0x1f3f, 0x103d: 0x1f44, 0x103e: 0x1f53, 0x103f: 0x1f58,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x1f5d, 0x1041: 0x1f71, 0x1042: 0x1f76, 0x1043: 0x1f7b, 0x1044: 0x1f80, 0x1045: 0x1f99,\n\t0x1046: 0x1fa3, 0x1047: 0x1fa8, 0x1048: 0x1fad, 0x1049: 0x1fc1, 0x104a: 0x1fdf, 0x104b: 0x1fe4,\n\t0x104c: 0x1fe9, 0x104d: 0x1fee, 0x104e: 0x1ff8, 0x104f: 0x1ffd, 0x1050: 0x445f, 0x1051: 0x202a,\n\t0x1052: 0x202f, 0x1053: 0x2034, 0x1054: 0x2039, 0x1055: 0x2043, 0x1056: 0x2048, 0x1057: 0x25b4,\n\t0x1058: 0x25bb, 0x1059: 0x25c2, 0x105a: 0x25d7, 0x105b: 0x25e5, 0x105c: 0x1d8c, 0x105d: 0x1d91,\n\t0x105e: 0x1d96, 0x105f: 0x1da5, 0x1060: 0x1daf, 0x1061: 0x1dbe, 0x1062: 0x1dc3, 0x1063: 0x1dc8,\n\t0x1064: 0x1dd7, 0x1065: 0x1de1, 0x1066: 0x1dff, 0x1067: 0x1e18, 0x1068: 0x1e1d, 0x1069: 0x1e2c,\n\t0x106a: 0x1e31, 0x106b: 0x1e40, 0x106c: 0x1e4a, 0x106d: 0x1e59, 0x106e: 0x1e5e, 0x106f: 0x1e63,\n\t0x1070: 0x1e6d, 0x1071: 0x1ea9, 0x1072: 0x1eae, 0x1073: 0x1eb8, 0x1074: 0x1ec7, 0x1075: 0x1ecc,\n\t0x1076: 0x1ed1, 0x1077: 0x1edb, 0x1078: 0x1eea, 0x1079: 0x1efe, 0x107a: 0x1f03, 0x107b: 0x1f08,\n\t0x107c: 0x1f17, 0x107d: 0x1f1c, 0x107e: 0x1f2b, 0x107f: 0x1f30,\n\t// Block 0x42, offset 0x1080\n\t0x1080: 0x1f35, 0x1081: 0x1f3a, 0x1082: 0x1f49, 0x1083: 0x1f4e, 0x1084: 0x1f62, 0x1085: 0x1f67,\n\t0x1086: 0x1f6c, 0x1087: 0x1f71, 0x1088: 0x1f76, 0x1089: 0x1f8a, 0x108a: 0x1f8f, 0x108b: 0x1f94,\n\t0x108c: 0x1f99, 0x108d: 0x1f9e, 0x108e: 0x1fb2, 0x108f: 0x1fb7, 0x1090: 0x1fbc, 0x1091: 0x1fc1,\n\t0x1092: 0x1fd0, 0x1093: 0x1fd5, 0x1094: 0x1fda, 0x1095: 0x1fe9, 0x1096: 0x1ff3, 0x1097: 0x2002,\n\t0x1098: 0x2007, 0x1099: 0x4453, 0x109a: 0x201b, 0x109b: 0x2020, 0x109c: 0x2025, 0x109d: 0x2034,\n\t0x109e: 0x203e, 0x109f: 0x25d7, 0x10a0: 0x25e5, 0x10a1: 0x1da5, 0x10a2: 0x1daf, 0x10a3: 0x1dd7,\n\t0x10a4: 0x1de1, 0x10a5: 0x1dff, 0x10a6: 0x1e09, 0x10a7: 0x1e6d, 0x10a8: 0x1e72, 0x10a9: 0x1e95,\n\t0x10aa: 0x1e9a, 0x10ab: 0x1f71, 0x10ac: 0x1f76, 0x10ad: 0x1f99, 0x10ae: 0x1fe9, 0x10af: 0x1ff3,\n\t0x10b0: 0x2034, 0x10b1: 0x203e, 0x10b2: 0x4507, 0x10b3: 0x450f, 0x10b4: 0x4517, 0x10b5: 0x1ef4,\n\t0x10b6: 0x1ef9, 0x10b7: 0x1f0d, 0x10b8: 0x1f12, 0x10b9: 0x1f21, 0x10ba: 0x1f26, 0x10bb: 0x1e77,\n\t0x10bc: 0x1e7c, 0x10bd: 0x1e9f, 0x10be: 0x1ea4, 0x10bf: 0x1e36,\n\t// Block 0x43, offset 0x10c0\n\t0x10c0: 0x1e3b, 0x10c1: 0x1e22, 0x10c2: 0x1e27, 0x10c3: 0x1e4f, 0x10c4: 0x1e54, 0x10c5: 0x1ebd,\n\t0x10c6: 0x1ec2, 0x10c7: 0x1ee0, 0x10c8: 0x1ee5, 0x10c9: 0x1e81, 0x10ca: 0x1e86, 0x10cb: 0x1e8b,\n\t0x10cc: 0x1e95, 0x10cd: 0x1e90, 0x10ce: 0x1e68, 0x10cf: 0x1eb3, 0x10d0: 0x1ed6, 0x10d1: 0x1ef4,\n\t0x10d2: 0x1ef9, 0x10d3: 0x1f0d, 0x10d4: 0x1f12, 0x10d5: 0x1f21, 0x10d6: 0x1f26, 0x10d7: 0x1e77,\n\t0x10d8: 0x1e7c, 0x10d9: 0x1e9f, 0x10da: 0x1ea4, 0x10db: 0x1e36, 0x10dc: 0x1e3b, 0x10dd: 0x1e22,\n\t0x10de: 0x1e27, 0x10df: 0x1e4f, 0x10e0: 0x1e54, 0x10e1: 0x1ebd, 0x10e2: 0x1ec2, 0x10e3: 0x1ee0,\n\t0x10e4: 0x1ee5, 0x10e5: 0x1e81, 0x10e6: 0x1e86, 0x10e7: 0x1e8b, 0x10e8: 0x1e95, 0x10e9: 0x1e90,\n\t0x10ea: 0x1e68, 0x10eb: 0x1eb3, 0x10ec: 0x1ed6, 0x10ed: 0x1e81, 0x10ee: 0x1e86, 0x10ef: 0x1e8b,\n\t0x10f0: 0x1e95, 0x10f1: 0x1e72, 0x10f2: 0x1e9a, 0x10f3: 0x1eef, 0x10f4: 0x1e59, 0x10f5: 0x1e5e,\n\t0x10f6: 0x1e63, 0x10f7: 0x1e81, 0x10f8: 0x1e86, 0x10f9: 0x1e8b, 0x10fa: 0x1eef, 0x10fb: 0x1efe,\n\t0x10fc: 0x440b, 0x10fd: 0x440b,\n\t// Block 0x44, offset 0x1100\n\t0x1110: 0x2314, 0x1111: 0x2329,\n\t0x1112: 0x2329, 0x1113: 0x2330, 0x1114: 0x2337, 0x1115: 0x234c, 0x1116: 0x2353, 0x1117: 0x235a,\n\t0x1118: 0x237d, 0x1119: 0x237d, 0x111a: 0x23a0, 0x111b: 0x2399, 0x111c: 0x23b5, 0x111d: 0x23a7,\n\t0x111e: 0x23ae, 0x111f: 0x23d1, 0x1120: 0x23d1, 0x1121: 0x23ca, 0x1122: 0x23d8, 0x1123: 0x23d8,\n\t0x1124: 0x2402, 0x1125: 0x2402, 0x1126: 0x241e, 0x1127: 0x23e6, 0x1128: 0x23e6, 0x1129: 0x23df,\n\t0x112a: 0x23f4, 0x112b: 0x23f4, 0x112c: 0x23fb, 0x112d: 0x23fb, 0x112e: 0x2425, 0x112f: 0x2433,\n\t0x1130: 0x2433, 0x1131: 0x243a, 0x1132: 0x243a, 0x1133: 0x2441, 0x1134: 0x2448, 0x1135: 0x244f,\n\t0x1136: 0x2456, 0x1137: 0x2456, 0x1138: 0x245d, 0x1139: 0x246b, 0x113a: 0x2479, 0x113b: 0x2472,\n\t0x113c: 0x2480, 0x113d: 0x2480, 0x113e: 0x2495, 0x113f: 0x249c,\n\t// Block 0x45, offset 0x1140\n\t0x1140: 0x24cd, 0x1141: 0x24db, 0x1142: 0x24d4, 0x1143: 0x24b8, 0x1144: 0x24b8, 0x1145: 0x24e2,\n\t0x1146: 0x24e2, 0x1147: 0x24e9, 0x1148: 0x24e9, 0x1149: 0x2513, 0x114a: 0x251a, 0x114b: 0x2521,\n\t0x114c: 0x24f7, 0x114d: 0x2505, 0x114e: 0x2528, 0x114f: 0x252f,\n\t0x1152: 0x24fe, 0x1153: 0x2583, 0x1154: 0x258a, 0x1155: 0x2560, 0x1156: 0x2567, 0x1157: 0x254b,\n\t0x1158: 0x254b, 0x1159: 0x2552, 0x115a: 0x257c, 0x115b: 0x2575, 0x115c: 0x259f, 0x115d: 0x259f,\n\t0x115e: 0x230d, 0x115f: 0x2322, 0x1160: 0x231b, 0x1161: 0x2345, 0x1162: 0x233e, 0x1163: 0x2368,\n\t0x1164: 0x2361, 0x1165: 0x238b, 0x1166: 0x236f, 0x1167: 0x2384, 0x1168: 0x23bc, 0x1169: 0x2409,\n\t0x116a: 0x23ed, 0x116b: 0x242c, 0x116c: 0x24c6, 0x116d: 0x24f0, 0x116e: 0x2598, 0x116f: 0x2591,\n\t0x1170: 0x25a6, 0x1171: 0x253d, 0x1172: 0x24a3, 0x1173: 0x256e, 0x1174: 0x2495, 0x1175: 0x24cd,\n\t0x1176: 0x2464, 0x1177: 0x24b1, 0x1178: 0x2544, 0x1179: 0x2536, 0x117a: 0x24bf, 0x117b: 0x24aa,\n\t0x117c: 0x24bf, 0x117d: 0x2544, 0x117e: 0x2376, 0x117f: 0x2392,\n\t// Block 0x46, offset 0x1180\n\t0x1180: 0x250c, 0x1181: 0x2487, 0x1182: 0x2306, 0x1183: 0x24aa, 0x1184: 0x244f, 0x1185: 0x241e,\n\t0x1186: 0x23c3, 0x1187: 0x2559,\n\t0x11b0: 0x2417, 0x11b1: 0x248e, 0x11b2: 0x27c2, 0x11b3: 0x27b9, 0x11b4: 0x27ef, 0x11b5: 0x27dd,\n\t0x11b6: 0x27cb, 0x11b7: 0x27e6, 0x11b8: 0x27f8, 0x11b9: 0x2410, 0x11ba: 0x2c7f, 0x11bb: 0x2aff,\n\t0x11bc: 0x27d4,\n\t// Block 0x47, offset 0x11c0\n\t0x11d0: 0x0019, 0x11d1: 0x0483,\n\t0x11d2: 0x0487, 0x11d3: 0x0035, 0x11d4: 0x0037, 0x11d5: 0x0003, 0x11d6: 0x003f, 0x11d7: 0x04bf,\n\t0x11d8: 0x04c3, 0x11d9: 0x1b5f,\n\t0x11e0: 0x8132, 0x11e1: 0x8132, 0x11e2: 0x8132, 0x11e3: 0x8132,\n\t0x11e4: 0x8132, 0x11e5: 0x8132, 0x11e6: 0x8132, 0x11e7: 0x812d, 0x11e8: 0x812d, 0x11e9: 0x812d,\n\t0x11ea: 0x812d, 0x11eb: 0x812d, 0x11ec: 0x812d, 0x11ed: 0x812d, 0x11ee: 0x8132, 0x11ef: 0x8132,\n\t0x11f0: 0x1873, 0x11f1: 0x0443, 0x11f2: 0x043f, 0x11f3: 0x007f, 0x11f4: 0x007f, 0x11f5: 0x0011,\n\t0x11f6: 0x0013, 0x11f7: 0x00b7, 0x11f8: 0x00bb, 0x11f9: 0x04b7, 0x11fa: 0x04bb, 0x11fb: 0x04ab,\n\t0x11fc: 0x04af, 0x11fd: 0x0493, 0x11fe: 0x0497, 0x11ff: 0x048b,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0x048f, 0x1201: 0x049b, 0x1202: 0x049f, 0x1203: 0x04a3, 0x1204: 0x04a7,\n\t0x1207: 0x0077, 0x1208: 0x007b, 0x1209: 0x426c, 0x120a: 0x426c, 0x120b: 0x426c,\n\t0x120c: 0x426c, 0x120d: 0x007f, 0x120e: 0x007f, 0x120f: 0x007f, 0x1210: 0x0019, 0x1211: 0x0483,\n\t0x1212: 0x001d, 0x1214: 0x0037, 0x1215: 0x0035, 0x1216: 0x003f, 0x1217: 0x0003,\n\t0x1218: 0x0443, 0x1219: 0x0011, 0x121a: 0x0013, 0x121b: 0x00b7, 0x121c: 0x00bb, 0x121d: 0x04b7,\n\t0x121e: 0x04bb, 0x121f: 0x0007, 0x1220: 0x000d, 0x1221: 0x0015, 0x1222: 0x0017, 0x1223: 0x001b,\n\t0x1224: 0x0039, 0x1225: 0x003d, 0x1226: 0x003b, 0x1228: 0x0079, 0x1229: 0x0009,\n\t0x122a: 0x000b, 0x122b: 0x0041,\n\t0x1230: 0x42ad, 0x1231: 0x442f, 0x1232: 0x42b2, 0x1234: 0x42b7,\n\t0x1236: 0x42bc, 0x1237: 0x4435, 0x1238: 0x42c1, 0x1239: 0x443b, 0x123a: 0x42c6, 0x123b: 0x4441,\n\t0x123c: 0x42cb, 0x123d: 0x4447, 0x123e: 0x42d0, 0x123f: 0x444d,\n\t// Block 0x49, offset 0x1240\n\t0x1240: 0x0236, 0x1241: 0x4411, 0x1242: 0x4411, 0x1243: 0x4417, 0x1244: 0x4417, 0x1245: 0x4459,\n\t0x1246: 0x4459, 0x1247: 0x441d, 0x1248: 0x441d, 0x1249: 0x4465, 0x124a: 0x4465, 0x124b: 0x4465,\n\t0x124c: 0x4465, 0x124d: 0x0239, 0x124e: 0x0239, 0x124f: 0x023c, 0x1250: 0x023c, 0x1251: 0x023c,\n\t0x1252: 0x023c, 0x1253: 0x023f, 0x1254: 0x023f, 0x1255: 0x0242, 0x1256: 0x0242, 0x1257: 0x0242,\n\t0x1258: 0x0242, 0x1259: 0x0245, 0x125a: 0x0245, 0x125b: 0x0245, 0x125c: 0x0245, 0x125d: 0x0248,\n\t0x125e: 0x0248, 0x125f: 0x0248, 0x1260: 0x0248, 0x1261: 0x024b, 0x1262: 0x024b, 0x1263: 0x024b,\n\t0x1264: 0x024b, 0x1265: 0x024e, 0x1266: 0x024e, 0x1267: 0x024e, 0x1268: 0x024e, 0x1269: 0x0251,\n\t0x126a: 0x0251, 0x126b: 0x0254, 0x126c: 0x0254, 0x126d: 0x0257, 0x126e: 0x0257, 0x126f: 0x025a,\n\t0x1270: 0x025a, 0x1271: 0x025d, 0x1272: 0x025d, 0x1273: 0x025d, 0x1274: 0x025d, 0x1275: 0x0260,\n\t0x1276: 0x0260, 0x1277: 0x0260, 0x1278: 0x0260, 0x1279: 0x0263, 0x127a: 0x0263, 0x127b: 0x0263,\n\t0x127c: 0x0263, 0x127d: 0x0266, 0x127e: 0x0266, 0x127f: 0x0266,\n\t// Block 0x4a, offset 0x1280\n\t0x1280: 0x0266, 0x1281: 0x0269, 0x1282: 0x0269, 0x1283: 0x0269, 0x1284: 0x0269, 0x1285: 0x026c,\n\t0x1286: 0x026c, 0x1287: 0x026c, 0x1288: 0x026c, 0x1289: 0x026f, 0x128a: 0x026f, 0x128b: 0x026f,\n\t0x128c: 0x026f, 0x128d: 0x0272, 0x128e: 0x0272, 0x128f: 0x0272, 0x1290: 0x0272, 0x1291: 0x0275,\n\t0x1292: 0x0275, 0x1293: 0x0275, 0x1294: 0x0275, 0x1295: 0x0278, 0x1296: 0x0278, 0x1297: 0x0278,\n\t0x1298: 0x0278, 0x1299: 0x027b, 0x129a: 0x027b, 0x129b: 0x027b, 0x129c: 0x027b, 0x129d: 0x027e,\n\t0x129e: 0x027e, 0x129f: 0x027e, 0x12a0: 0x027e, 0x12a1: 0x0281, 0x12a2: 0x0281, 0x12a3: 0x0281,\n\t0x12a4: 0x0281, 0x12a5: 0x0284, 0x12a6: 0x0284, 0x12a7: 0x0284, 0x12a8: 0x0284, 0x12a9: 0x0287,\n\t0x12aa: 0x0287, 0x12ab: 0x0287, 0x12ac: 0x0287, 0x12ad: 0x028a, 0x12ae: 0x028a, 0x12af: 0x028d,\n\t0x12b0: 0x028d, 0x12b1: 0x0290, 0x12b2: 0x0290, 0x12b3: 0x0290, 0x12b4: 0x0290, 0x12b5: 0x2e03,\n\t0x12b6: 0x2e03, 0x12b7: 0x2e0b, 0x12b8: 0x2e0b, 0x12b9: 0x2e13, 0x12ba: 0x2e13, 0x12bb: 0x1f85,\n\t0x12bc: 0x1f85,\n\t// Block 0x4b, offset 0x12c0\n\t0x12c0: 0x0081, 0x12c1: 0x0083, 0x12c2: 0x0085, 0x12c3: 0x0087, 0x12c4: 0x0089, 0x12c5: 0x008b,\n\t0x12c6: 0x008d, 0x12c7: 0x008f, 0x12c8: 0x0091, 0x12c9: 0x0093, 0x12ca: 0x0095, 0x12cb: 0x0097,\n\t0x12cc: 0x0099, 0x12cd: 0x009b, 0x12ce: 0x009d, 0x12cf: 0x009f, 0x12d0: 0x00a1, 0x12d1: 0x00a3,\n\t0x12d2: 0x00a5, 0x12d3: 0x00a7, 0x12d4: 0x00a9, 0x12d5: 0x00ab, 0x12d6: 0x00ad, 0x12d7: 0x00af,\n\t0x12d8: 0x00b1, 0x12d9: 0x00b3, 0x12da: 0x00b5, 0x12db: 0x00b7, 0x12dc: 0x00b9, 0x12dd: 0x00bb,\n\t0x12de: 0x00bd, 0x12df: 0x0477, 0x12e0: 0x047b, 0x12e1: 0x0487, 0x12e2: 0x049b, 0x12e3: 0x049f,\n\t0x12e4: 0x0483, 0x12e5: 0x05ab, 0x12e6: 0x05a3, 0x12e7: 0x04c7, 0x12e8: 0x04cf, 0x12e9: 0x04d7,\n\t0x12ea: 0x04df, 0x12eb: 0x04e7, 0x12ec: 0x056b, 0x12ed: 0x0573, 0x12ee: 0x057b, 0x12ef: 0x051f,\n\t0x12f0: 0x05af, 0x12f1: 0x04cb, 0x12f2: 0x04d3, 0x12f3: 0x04db, 0x12f4: 0x04e3, 0x12f5: 0x04eb,\n\t0x12f6: 0x04ef, 0x12f7: 0x04f3, 0x12f8: 0x04f7, 0x12f9: 0x04fb, 0x12fa: 0x04ff, 0x12fb: 0x0503,\n\t0x12fc: 0x0507, 0x12fd: 0x050b, 0x12fe: 0x050f, 0x12ff: 0x0513,\n\t// Block 0x4c, offset 0x1300\n\t0x1300: 0x0517, 0x1301: 0x051b, 0x1302: 0x0523, 0x1303: 0x0527, 0x1304: 0x052b, 0x1305: 0x052f,\n\t0x1306: 0x0533, 0x1307: 0x0537, 0x1308: 0x053b, 0x1309: 0x053f, 0x130a: 0x0543, 0x130b: 0x0547,\n\t0x130c: 0x054b, 0x130d: 0x054f, 0x130e: 0x0553, 0x130f: 0x0557, 0x1310: 0x055b, 0x1311: 0x055f,\n\t0x1312: 0x0563, 0x1313: 0x0567, 0x1314: 0x056f, 0x1315: 0x0577, 0x1316: 0x057f, 0x1317: 0x0583,\n\t0x1318: 0x0587, 0x1319: 0x058b, 0x131a: 0x058f, 0x131b: 0x0593, 0x131c: 0x0597, 0x131d: 0x05a7,\n\t0x131e: 0x4a7b, 0x131f: 0x4a81, 0x1320: 0x03c3, 0x1321: 0x0313, 0x1322: 0x0317, 0x1323: 0x4a3e,\n\t0x1324: 0x031b, 0x1325: 0x4a44, 0x1326: 0x4a4a, 0x1327: 0x031f, 0x1328: 0x0323, 0x1329: 0x0327,\n\t0x132a: 0x4a50, 0x132b: 0x4a56, 0x132c: 0x4a5c, 0x132d: 0x4a62, 0x132e: 0x4a68, 0x132f: 0x4a6e,\n\t0x1330: 0x0367, 0x1331: 0x032b, 0x1332: 0x032f, 0x1333: 0x0333, 0x1334: 0x037b, 0x1335: 0x0337,\n\t0x1336: 0x033b, 0x1337: 0x033f, 0x1338: 0x0343, 0x1339: 0x0347, 0x133a: 0x034b, 0x133b: 0x034f,\n\t0x133c: 0x0353, 0x133d: 0x0357, 0x133e: 0x035b,\n\t// Block 0x4d, offset 0x1340\n\t0x1342: 0x49c0, 0x1343: 0x49c6, 0x1344: 0x49cc, 0x1345: 0x49d2,\n\t0x1346: 0x49d8, 0x1347: 0x49de, 0x134a: 0x49e4, 0x134b: 0x49ea,\n\t0x134c: 0x49f0, 0x134d: 0x49f6, 0x134e: 0x49fc, 0x134f: 0x4a02,\n\t0x1352: 0x4a08, 0x1353: 0x4a0e, 0x1354: 0x4a14, 0x1355: 0x4a1a, 0x1356: 0x4a20, 0x1357: 0x4a26,\n\t0x135a: 0x4a2c, 0x135b: 0x4a32, 0x135c: 0x4a38,\n\t0x1360: 0x00bf, 0x1361: 0x00c2, 0x1362: 0x00cb, 0x1363: 0x4267,\n\t0x1364: 0x00c8, 0x1365: 0x00c5, 0x1366: 0x0447, 0x1368: 0x046b, 0x1369: 0x044b,\n\t0x136a: 0x044f, 0x136b: 0x0453, 0x136c: 0x0457, 0x136d: 0x046f, 0x136e: 0x0473,\n\t// Block 0x4e, offset 0x1380\n\t0x1380: 0x0063, 0x1381: 0x0065, 0x1382: 0x0067, 0x1383: 0x0069, 0x1384: 0x006b, 0x1385: 0x006d,\n\t0x1386: 0x006f, 0x1387: 0x0071, 0x1388: 0x0073, 0x1389: 0x0075, 0x138a: 0x0083, 0x138b: 0x0085,\n\t0x138c: 0x0087, 0x138d: 0x0089, 0x138e: 0x008b, 0x138f: 0x008d, 0x1390: 0x008f, 0x1391: 0x0091,\n\t0x1392: 0x0093, 0x1393: 0x0095, 0x1394: 0x0097, 0x1395: 0x0099, 0x1396: 0x009b, 0x1397: 0x009d,\n\t0x1398: 0x009f, 0x1399: 0x00a1, 0x139a: 0x00a3, 0x139b: 0x00a5, 0x139c: 0x00a7, 0x139d: 0x00a9,\n\t0x139e: 0x00ab, 0x139f: 0x00ad, 0x13a0: 0x00af, 0x13a1: 0x00b1, 0x13a2: 0x00b3, 0x13a3: 0x00b5,\n\t0x13a4: 0x00dd, 0x13a5: 0x00f2, 0x13a8: 0x0173, 0x13a9: 0x0176,\n\t0x13aa: 0x0179, 0x13ab: 0x017c, 0x13ac: 0x017f, 0x13ad: 0x0182, 0x13ae: 0x0185, 0x13af: 0x0188,\n\t0x13b0: 0x018b, 0x13b1: 0x018e, 0x13b2: 0x0191, 0x13b3: 0x0194, 0x13b4: 0x0197, 0x13b5: 0x019a,\n\t0x13b6: 0x019d, 0x13b7: 0x01a0, 0x13b8: 0x01a3, 0x13b9: 0x0188, 0x13ba: 0x01a6, 0x13bb: 0x01a9,\n\t0x13bc: 0x01ac, 0x13bd: 0x01af, 0x13be: 0x01b2, 0x13bf: 0x01b5,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c0: 0x01fd, 0x13c1: 0x0200, 0x13c2: 0x0203, 0x13c3: 0x045b, 0x13c4: 0x01c7, 0x13c5: 0x01d0,\n\t0x13c6: 0x01d6, 0x13c7: 0x01fa, 0x13c8: 0x01eb, 0x13c9: 0x01e8, 0x13ca: 0x0206, 0x13cb: 0x0209,\n\t0x13ce: 0x0021, 0x13cf: 0x0023, 0x13d0: 0x0025, 0x13d1: 0x0027,\n\t0x13d2: 0x0029, 0x13d3: 0x002b, 0x13d4: 0x002d, 0x13d5: 0x002f, 0x13d6: 0x0031, 0x13d7: 0x0033,\n\t0x13d8: 0x0021, 0x13d9: 0x0023, 0x13da: 0x0025, 0x13db: 0x0027, 0x13dc: 0x0029, 0x13dd: 0x002b,\n\t0x13de: 0x002d, 0x13df: 0x002f, 0x13e0: 0x0031, 0x13e1: 0x0033, 0x13e2: 0x0021, 0x13e3: 0x0023,\n\t0x13e4: 0x0025, 0x13e5: 0x0027, 0x13e6: 0x0029, 0x13e7: 0x002b, 0x13e8: 0x002d, 0x13e9: 0x002f,\n\t0x13ea: 0x0031, 0x13eb: 0x0033, 0x13ec: 0x0021, 0x13ed: 0x0023, 0x13ee: 0x0025, 0x13ef: 0x0027,\n\t0x13f0: 0x0029, 0x13f1: 0x002b, 0x13f2: 0x002d, 0x13f3: 0x002f, 0x13f4: 0x0031, 0x13f5: 0x0033,\n\t0x13f6: 0x0021, 0x13f7: 0x0023, 0x13f8: 0x0025, 0x13f9: 0x0027, 0x13fa: 0x0029, 0x13fb: 0x002b,\n\t0x13fc: 0x002d, 0x13fd: 0x002f, 0x13fe: 0x0031, 0x13ff: 0x0033,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x0239, 0x1401: 0x023c, 0x1402: 0x0248, 0x1403: 0x0251, 0x1405: 0x028a,\n\t0x1406: 0x025a, 0x1407: 0x024b, 0x1408: 0x0269, 0x1409: 0x0290, 0x140a: 0x027b, 0x140b: 0x027e,\n\t0x140c: 0x0281, 0x140d: 0x0284, 0x140e: 0x025d, 0x140f: 0x026f, 0x1410: 0x0275, 0x1411: 0x0263,\n\t0x1412: 0x0278, 0x1413: 0x0257, 0x1414: 0x0260, 0x1415: 0x0242, 0x1416: 0x0245, 0x1417: 0x024e,\n\t0x1418: 0x0254, 0x1419: 0x0266, 0x141a: 0x026c, 0x141b: 0x0272, 0x141c: 0x0293, 0x141d: 0x02e4,\n\t0x141e: 0x02cc, 0x141f: 0x0296, 0x1421: 0x023c, 0x1422: 0x0248,\n\t0x1424: 0x0287, 0x1427: 0x024b, 0x1429: 0x0290,\n\t0x142a: 0x027b, 0x142b: 0x027e, 0x142c: 0x0281, 0x142d: 0x0284, 0x142e: 0x025d, 0x142f: 0x026f,\n\t0x1430: 0x0275, 0x1431: 0x0263, 0x1432: 0x0278, 0x1434: 0x0260, 0x1435: 0x0242,\n\t0x1436: 0x0245, 0x1437: 0x024e, 0x1439: 0x0266, 0x143b: 0x0272,\n\t// Block 0x51, offset 0x1440\n\t0x1442: 0x0248,\n\t0x1447: 0x024b, 0x1449: 0x0290, 0x144b: 0x027e,\n\t0x144d: 0x0284, 0x144e: 0x025d, 0x144f: 0x026f, 0x1451: 0x0263,\n\t0x1452: 0x0278, 0x1454: 0x0260, 0x1457: 0x024e,\n\t0x1459: 0x0266, 0x145b: 0x0272, 0x145d: 0x02e4,\n\t0x145f: 0x0296, 0x1461: 0x023c, 0x1462: 0x0248,\n\t0x1464: 0x0287, 0x1467: 0x024b, 0x1468: 0x0269, 0x1469: 0x0290,\n\t0x146a: 0x027b, 0x146c: 0x0281, 0x146d: 0x0284, 0x146e: 0x025d, 0x146f: 0x026f,\n\t0x1470: 0x0275, 0x1471: 0x0263, 0x1472: 0x0278, 0x1474: 0x0260, 0x1475: 0x0242,\n\t0x1476: 0x0245, 0x1477: 0x024e, 0x1479: 0x0266, 0x147a: 0x026c, 0x147b: 0x0272,\n\t0x147c: 0x0293, 0x147e: 0x02cc,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x0239, 0x1481: 0x023c, 0x1482: 0x0248, 0x1483: 0x0251, 0x1484: 0x0287, 0x1485: 0x028a,\n\t0x1486: 0x025a, 0x1487: 0x024b, 0x1488: 0x0269, 0x1489: 0x0290, 0x148b: 0x027e,\n\t0x148c: 0x0281, 0x148d: 0x0284, 0x148e: 0x025d, 0x148f: 0x026f, 0x1490: 0x0275, 0x1491: 0x0263,\n\t0x1492: 0x0278, 0x1493: 0x0257, 0x1494: 0x0260, 0x1495: 0x0242, 0x1496: 0x0245, 0x1497: 0x024e,\n\t0x1498: 0x0254, 0x1499: 0x0266, 0x149a: 0x026c, 0x149b: 0x0272,\n\t0x14a1: 0x023c, 0x14a2: 0x0248, 0x14a3: 0x0251,\n\t0x14a5: 0x028a, 0x14a6: 0x025a, 0x14a7: 0x024b, 0x14a8: 0x0269, 0x14a9: 0x0290,\n\t0x14ab: 0x027e, 0x14ac: 0x0281, 0x14ad: 0x0284, 0x14ae: 0x025d, 0x14af: 0x026f,\n\t0x14b0: 0x0275, 0x14b1: 0x0263, 0x14b2: 0x0278, 0x14b3: 0x0257, 0x14b4: 0x0260, 0x14b5: 0x0242,\n\t0x14b6: 0x0245, 0x14b7: 0x024e, 0x14b8: 0x0254, 0x14b9: 0x0266, 0x14ba: 0x026c, 0x14bb: 0x0272,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x1879, 0x14c1: 0x1876, 0x14c2: 0x187c, 0x14c3: 0x18a0, 0x14c4: 0x18c4, 0x14c5: 0x18e8,\n\t0x14c6: 0x190c, 0x14c7: 0x1915, 0x14c8: 0x191b, 0x14c9: 0x1921, 0x14ca: 0x1927,\n\t0x14d0: 0x1a8f, 0x14d1: 0x1a93,\n\t0x14d2: 0x1a97, 0x14d3: 0x1a9b, 0x14d4: 0x1a9f, 0x14d5: 0x1aa3, 0x14d6: 0x1aa7, 0x14d7: 0x1aab,\n\t0x14d8: 0x1aaf, 0x14d9: 0x1ab3, 0x14da: 0x1ab7, 0x14db: 0x1abb, 0x14dc: 0x1abf, 0x14dd: 0x1ac3,\n\t0x14de: 0x1ac7, 0x14df: 0x1acb, 0x14e0: 0x1acf, 0x14e1: 0x1ad3, 0x14e2: 0x1ad7, 0x14e3: 0x1adb,\n\t0x14e4: 0x1adf, 0x14e5: 0x1ae3, 0x14e6: 0x1ae7, 0x14e7: 0x1aeb, 0x14e8: 0x1aef, 0x14e9: 0x1af3,\n\t0x14ea: 0x2721, 0x14eb: 0x0047, 0x14ec: 0x0065, 0x14ed: 0x193c, 0x14ee: 0x19b4,\n\t0x14f0: 0x0043, 0x14f1: 0x0045, 0x14f2: 0x0047, 0x14f3: 0x0049, 0x14f4: 0x004b, 0x14f5: 0x004d,\n\t0x14f6: 0x004f, 0x14f7: 0x0051, 0x14f8: 0x0053, 0x14f9: 0x0055, 0x14fa: 0x0057, 0x14fb: 0x0059,\n\t0x14fc: 0x005b, 0x14fd: 0x005d, 0x14fe: 0x005f, 0x14ff: 0x0061,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0x26b0, 0x1501: 0x26c5, 0x1502: 0x0503,\n\t0x1510: 0x0c0f, 0x1511: 0x0a47,\n\t0x1512: 0x08d3, 0x1513: 0x45c7, 0x1514: 0x071b, 0x1515: 0x09ef, 0x1516: 0x132f, 0x1517: 0x09ff,\n\t0x1518: 0x0727, 0x1519: 0x0cd7, 0x151a: 0x0eaf, 0x151b: 0x0caf, 0x151c: 0x0827, 0x151d: 0x0b6b,\n\t0x151e: 0x07bf, 0x151f: 0x0cb7, 0x1520: 0x0813, 0x1521: 0x1117, 0x1522: 0x0f83, 0x1523: 0x138b,\n\t0x1524: 0x09d3, 0x1525: 0x090b, 0x1526: 0x0e63, 0x1527: 0x0c1b, 0x1528: 0x0c47, 0x1529: 0x06bf,\n\t0x152a: 0x06cb, 0x152b: 0x140b, 0x152c: 0x0adb, 0x152d: 0x06e7, 0x152e: 0x08ef, 0x152f: 0x0c3b,\n\t0x1530: 0x13b3, 0x1531: 0x0c13, 0x1532: 0x106f, 0x1533: 0x10ab, 0x1534: 0x08f7, 0x1535: 0x0e43,\n\t0x1536: 0x0d0b, 0x1537: 0x0d07, 0x1538: 0x0f97, 0x1539: 0x082b, 0x153a: 0x0957, 0x153b: 0x1443,\n\t// Block 0x55, offset 0x1540\n\t0x1540: 0x06fb, 0x1541: 0x06f3, 0x1542: 0x0703, 0x1543: 0x1647, 0x1544: 0x0747, 0x1545: 0x0757,\n\t0x1546: 0x075b, 0x1547: 0x0763, 0x1548: 0x076b, 0x1549: 0x076f, 0x154a: 0x077b, 0x154b: 0x0773,\n\t0x154c: 0x05b3, 0x154d: 0x165b, 0x154e: 0x078f, 0x154f: 0x0793, 0x1550: 0x0797, 0x1551: 0x07b3,\n\t0x1552: 0x164c, 0x1553: 0x05b7, 0x1554: 0x079f, 0x1555: 0x07bf, 0x1556: 0x1656, 0x1557: 0x07cf,\n\t0x1558: 0x07d7, 0x1559: 0x0737, 0x155a: 0x07df, 0x155b: 0x07e3, 0x155c: 0x1831, 0x155d: 0x07ff,\n\t0x155e: 0x0807, 0x155f: 0x05bf, 0x1560: 0x081f, 0x1561: 0x0823, 0x1562: 0x082b, 0x1563: 0x082f,\n\t0x1564: 0x05c3, 0x1565: 0x0847, 0x1566: 0x084b, 0x1567: 0x0857, 0x1568: 0x0863, 0x1569: 0x0867,\n\t0x156a: 0x086b, 0x156b: 0x0873, 0x156c: 0x0893, 0x156d: 0x0897, 0x156e: 0x089f, 0x156f: 0x08af,\n\t0x1570: 0x08b7, 0x1571: 0x08bb, 0x1572: 0x08bb, 0x1573: 0x08bb, 0x1574: 0x166a, 0x1575: 0x0e93,\n\t0x1576: 0x08cf, 0x1577: 0x08d7, 0x1578: 0x166f, 0x1579: 0x08e3, 0x157a: 0x08eb, 0x157b: 0x08f3,\n\t0x157c: 0x091b, 0x157d: 0x0907, 0x157e: 0x0913, 0x157f: 0x0917,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x091f, 0x1581: 0x0927, 0x1582: 0x092b, 0x1583: 0x0933, 0x1584: 0x093b, 0x1585: 0x093f,\n\t0x1586: 0x093f, 0x1587: 0x0947, 0x1588: 0x094f, 0x1589: 0x0953, 0x158a: 0x095f, 0x158b: 0x0983,\n\t0x158c: 0x0967, 0x158d: 0x0987, 0x158e: 0x096b, 0x158f: 0x0973, 0x1590: 0x080b, 0x1591: 0x09cf,\n\t0x1592: 0x0997, 0x1593: 0x099b, 0x1594: 0x099f, 0x1595: 0x0993, 0x1596: 0x09a7, 0x1597: 0x09a3,\n\t0x1598: 0x09bb, 0x1599: 0x1674, 0x159a: 0x09d7, 0x159b: 0x09db, 0x159c: 0x09e3, 0x159d: 0x09ef,\n\t0x159e: 0x09f7, 0x159f: 0x0a13, 0x15a0: 0x1679, 0x15a1: 0x167e, 0x15a2: 0x0a1f, 0x15a3: 0x0a23,\n\t0x15a4: 0x0a27, 0x15a5: 0x0a1b, 0x15a6: 0x0a2f, 0x15a7: 0x05c7, 0x15a8: 0x05cb, 0x15a9: 0x0a37,\n\t0x15aa: 0x0a3f, 0x15ab: 0x0a3f, 0x15ac: 0x1683, 0x15ad: 0x0a5b, 0x15ae: 0x0a5f, 0x15af: 0x0a63,\n\t0x15b0: 0x0a6b, 0x15b1: 0x1688, 0x15b2: 0x0a73, 0x15b3: 0x0a77, 0x15b4: 0x0b4f, 0x15b5: 0x0a7f,\n\t0x15b6: 0x05cf, 0x15b7: 0x0a8b, 0x15b8: 0x0a9b, 0x15b9: 0x0aa7, 0x15ba: 0x0aa3, 0x15bb: 0x1692,\n\t0x15bc: 0x0aaf, 0x15bd: 0x1697, 0x15be: 0x0abb, 0x15bf: 0x0ab7,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0x0abf, 0x15c1: 0x0acf, 0x15c2: 0x0ad3, 0x15c3: 0x05d3, 0x15c4: 0x0ae3, 0x15c5: 0x0aeb,\n\t0x15c6: 0x0aef, 0x15c7: 0x0af3, 0x15c8: 0x05d7, 0x15c9: 0x169c, 0x15ca: 0x05db, 0x15cb: 0x0b0f,\n\t0x15cc: 0x0b13, 0x15cd: 0x0b17, 0x15ce: 0x0b1f, 0x15cf: 0x1863, 0x15d0: 0x0b37, 0x15d1: 0x16a6,\n\t0x15d2: 0x16a6, 0x15d3: 0x11d7, 0x15d4: 0x0b47, 0x15d5: 0x0b47, 0x15d6: 0x05df, 0x15d7: 0x16c9,\n\t0x15d8: 0x179b, 0x15d9: 0x0b57, 0x15da: 0x0b5f, 0x15db: 0x05e3, 0x15dc: 0x0b73, 0x15dd: 0x0b83,\n\t0x15de: 0x0b87, 0x15df: 0x0b8f, 0x15e0: 0x0b9f, 0x15e1: 0x05eb, 0x15e2: 0x05e7, 0x15e3: 0x0ba3,\n\t0x15e4: 0x16ab, 0x15e5: 0x0ba7, 0x15e6: 0x0bbb, 0x15e7: 0x0bbf, 0x15e8: 0x0bc3, 0x15e9: 0x0bbf,\n\t0x15ea: 0x0bcf, 0x15eb: 0x0bd3, 0x15ec: 0x0be3, 0x15ed: 0x0bdb, 0x15ee: 0x0bdf, 0x15ef: 0x0be7,\n\t0x15f0: 0x0beb, 0x15f1: 0x0bef, 0x15f2: 0x0bfb, 0x15f3: 0x0bff, 0x15f4: 0x0c17, 0x15f5: 0x0c1f,\n\t0x15f6: 0x0c2f, 0x15f7: 0x0c43, 0x15f8: 0x16ba, 0x15f9: 0x0c3f, 0x15fa: 0x0c33, 0x15fb: 0x0c4b,\n\t0x15fc: 0x0c53, 0x15fd: 0x0c67, 0x15fe: 0x16bf, 0x15ff: 0x0c6f,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0x0c63, 0x1601: 0x0c5b, 0x1602: 0x05ef, 0x1603: 0x0c77, 0x1604: 0x0c7f, 0x1605: 0x0c87,\n\t0x1606: 0x0c7b, 0x1607: 0x05f3, 0x1608: 0x0c97, 0x1609: 0x0c9f, 0x160a: 0x16c4, 0x160b: 0x0ccb,\n\t0x160c: 0x0cff, 0x160d: 0x0cdb, 0x160e: 0x05ff, 0x160f: 0x0ce7, 0x1610: 0x05fb, 0x1611: 0x05f7,\n\t0x1612: 0x07c3, 0x1613: 0x07c7, 0x1614: 0x0d03, 0x1615: 0x0ceb, 0x1616: 0x11ab, 0x1617: 0x0663,\n\t0x1618: 0x0d0f, 0x1619: 0x0d13, 0x161a: 0x0d17, 0x161b: 0x0d2b, 0x161c: 0x0d23, 0x161d: 0x16dd,\n\t0x161e: 0x0603, 0x161f: 0x0d3f, 0x1620: 0x0d33, 0x1621: 0x0d4f, 0x1622: 0x0d57, 0x1623: 0x16e7,\n\t0x1624: 0x0d5b, 0x1625: 0x0d47, 0x1626: 0x0d63, 0x1627: 0x0607, 0x1628: 0x0d67, 0x1629: 0x0d6b,\n\t0x162a: 0x0d6f, 0x162b: 0x0d7b, 0x162c: 0x16ec, 0x162d: 0x0d83, 0x162e: 0x060b, 0x162f: 0x0d8f,\n\t0x1630: 0x16f1, 0x1631: 0x0d93, 0x1632: 0x060f, 0x1633: 0x0d9f, 0x1634: 0x0dab, 0x1635: 0x0db7,\n\t0x1636: 0x0dbb, 0x1637: 0x16f6, 0x1638: 0x168d, 0x1639: 0x16fb, 0x163a: 0x0ddb, 0x163b: 0x1700,\n\t0x163c: 0x0de7, 0x163d: 0x0def, 0x163e: 0x0ddf, 0x163f: 0x0dfb,\n\t// Block 0x59, offset 0x1640\n\t0x1640: 0x0e0b, 0x1641: 0x0e1b, 0x1642: 0x0e0f, 0x1643: 0x0e13, 0x1644: 0x0e1f, 0x1645: 0x0e23,\n\t0x1646: 0x1705, 0x1647: 0x0e07, 0x1648: 0x0e3b, 0x1649: 0x0e3f, 0x164a: 0x0613, 0x164b: 0x0e53,\n\t0x164c: 0x0e4f, 0x164d: 0x170a, 0x164e: 0x0e33, 0x164f: 0x0e6f, 0x1650: 0x170f, 0x1651: 0x1714,\n\t0x1652: 0x0e73, 0x1653: 0x0e87, 0x1654: 0x0e83, 0x1655: 0x0e7f, 0x1656: 0x0617, 0x1657: 0x0e8b,\n\t0x1658: 0x0e9b, 0x1659: 0x0e97, 0x165a: 0x0ea3, 0x165b: 0x1651, 0x165c: 0x0eb3, 0x165d: 0x1719,\n\t0x165e: 0x0ebf, 0x165f: 0x1723, 0x1660: 0x0ed3, 0x1661: 0x0edf, 0x1662: 0x0ef3, 0x1663: 0x1728,\n\t0x1664: 0x0f07, 0x1665: 0x0f0b, 0x1666: 0x172d, 0x1667: 0x1732, 0x1668: 0x0f27, 0x1669: 0x0f37,\n\t0x166a: 0x061b, 0x166b: 0x0f3b, 0x166c: 0x061f, 0x166d: 0x061f, 0x166e: 0x0f53, 0x166f: 0x0f57,\n\t0x1670: 0x0f5f, 0x1671: 0x0f63, 0x1672: 0x0f6f, 0x1673: 0x0623, 0x1674: 0x0f87, 0x1675: 0x1737,\n\t0x1676: 0x0fa3, 0x1677: 0x173c, 0x1678: 0x0faf, 0x1679: 0x16a1, 0x167a: 0x0fbf, 0x167b: 0x1741,\n\t0x167c: 0x1746, 0x167d: 0x174b, 0x167e: 0x0627, 0x167f: 0x062b,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x0ff7, 0x1681: 0x1755, 0x1682: 0x1750, 0x1683: 0x175a, 0x1684: 0x175f, 0x1685: 0x0fff,\n\t0x1686: 0x1003, 0x1687: 0x1003, 0x1688: 0x100b, 0x1689: 0x0633, 0x168a: 0x100f, 0x168b: 0x0637,\n\t0x168c: 0x063b, 0x168d: 0x1769, 0x168e: 0x1023, 0x168f: 0x102b, 0x1690: 0x1037, 0x1691: 0x063f,\n\t0x1692: 0x176e, 0x1693: 0x105b, 0x1694: 0x1773, 0x1695: 0x1778, 0x1696: 0x107b, 0x1697: 0x1093,\n\t0x1698: 0x0643, 0x1699: 0x109b, 0x169a: 0x109f, 0x169b: 0x10a3, 0x169c: 0x177d, 0x169d: 0x1782,\n\t0x169e: 0x1782, 0x169f: 0x10bb, 0x16a0: 0x0647, 0x16a1: 0x1787, 0x16a2: 0x10cf, 0x16a3: 0x10d3,\n\t0x16a4: 0x064b, 0x16a5: 0x178c, 0x16a6: 0x10ef, 0x16a7: 0x064f, 0x16a8: 0x10ff, 0x16a9: 0x10f7,\n\t0x16aa: 0x1107, 0x16ab: 0x1796, 0x16ac: 0x111f, 0x16ad: 0x0653, 0x16ae: 0x112b, 0x16af: 0x1133,\n\t0x16b0: 0x1143, 0x16b1: 0x0657, 0x16b2: 0x17a0, 0x16b3: 0x17a5, 0x16b4: 0x065b, 0x16b5: 0x17aa,\n\t0x16b6: 0x115b, 0x16b7: 0x17af, 0x16b8: 0x1167, 0x16b9: 0x1173, 0x16ba: 0x117b, 0x16bb: 0x17b4,\n\t0x16bc: 0x17b9, 0x16bd: 0x118f, 0x16be: 0x17be, 0x16bf: 0x1197,\n\t// Block 0x5b, offset 0x16c0\n\t0x16c0: 0x16ce, 0x16c1: 0x065f, 0x16c2: 0x11af, 0x16c3: 0x11b3, 0x16c4: 0x0667, 0x16c5: 0x11b7,\n\t0x16c6: 0x0a33, 0x16c7: 0x17c3, 0x16c8: 0x17c8, 0x16c9: 0x16d3, 0x16ca: 0x16d8, 0x16cb: 0x11d7,\n\t0x16cc: 0x11db, 0x16cd: 0x13f3, 0x16ce: 0x066b, 0x16cf: 0x1207, 0x16d0: 0x1203, 0x16d1: 0x120b,\n\t0x16d2: 0x083f, 0x16d3: 0x120f, 0x16d4: 0x1213, 0x16d5: 0x1217, 0x16d6: 0x121f, 0x16d7: 0x17cd,\n\t0x16d8: 0x121b, 0x16d9: 0x1223, 0x16da: 0x1237, 0x16db: 0x123b, 0x16dc: 0x1227, 0x16dd: 0x123f,\n\t0x16de: 0x1253, 0x16df: 0x1267, 0x16e0: 0x1233, 0x16e1: 0x1247, 0x16e2: 0x124b, 0x16e3: 0x124f,\n\t0x16e4: 0x17d2, 0x16e5: 0x17dc, 0x16e6: 0x17d7, 0x16e7: 0x066f, 0x16e8: 0x126f, 0x16e9: 0x1273,\n\t0x16ea: 0x127b, 0x16eb: 0x17f0, 0x16ec: 0x127f, 0x16ed: 0x17e1, 0x16ee: 0x0673, 0x16ef: 0x0677,\n\t0x16f0: 0x17e6, 0x16f1: 0x17eb, 0x16f2: 0x067b, 0x16f3: 0x129f, 0x16f4: 0x12a3, 0x16f5: 0x12a7,\n\t0x16f6: 0x12ab, 0x16f7: 0x12b7, 0x16f8: 0x12b3, 0x16f9: 0x12bf, 0x16fa: 0x12bb, 0x16fb: 0x12cb,\n\t0x16fc: 0x12c3, 0x16fd: 0x12c7, 0x16fe: 0x12cf, 0x16ff: 0x067f,\n\t// Block 0x5c, offset 0x1700\n\t0x1700: 0x12d7, 0x1701: 0x12db, 0x1702: 0x0683, 0x1703: 0x12eb, 0x1704: 0x12ef, 0x1705: 0x17f5,\n\t0x1706: 0x12fb, 0x1707: 0x12ff, 0x1708: 0x0687, 0x1709: 0x130b, 0x170a: 0x05bb, 0x170b: 0x17fa,\n\t0x170c: 0x17ff, 0x170d: 0x068b, 0x170e: 0x068f, 0x170f: 0x1337, 0x1710: 0x134f, 0x1711: 0x136b,\n\t0x1712: 0x137b, 0x1713: 0x1804, 0x1714: 0x138f, 0x1715: 0x1393, 0x1716: 0x13ab, 0x1717: 0x13b7,\n\t0x1718: 0x180e, 0x1719: 0x1660, 0x171a: 0x13c3, 0x171b: 0x13bf, 0x171c: 0x13cb, 0x171d: 0x1665,\n\t0x171e: 0x13d7, 0x171f: 0x13e3, 0x1720: 0x1813, 0x1721: 0x1818, 0x1722: 0x1423, 0x1723: 0x142f,\n\t0x1724: 0x1437, 0x1725: 0x181d, 0x1726: 0x143b, 0x1727: 0x1467, 0x1728: 0x1473, 0x1729: 0x1477,\n\t0x172a: 0x146f, 0x172b: 0x1483, 0x172c: 0x1487, 0x172d: 0x1822, 0x172e: 0x1493, 0x172f: 0x0693,\n\t0x1730: 0x149b, 0x1731: 0x1827, 0x1732: 0x0697, 0x1733: 0x14d3, 0x1734: 0x0ac3, 0x1735: 0x14eb,\n\t0x1736: 0x182c, 0x1737: 0x1836, 0x1738: 0x069b, 0x1739: 0x069f, 0x173a: 0x1513, 0x173b: 0x183b,\n\t0x173c: 0x06a3, 0x173d: 0x1840, 0x173e: 0x152b, 0x173f: 0x152b,\n\t// Block 0x5d, offset 0x1740\n\t0x1740: 0x1533, 0x1741: 0x1845, 0x1742: 0x154b, 0x1743: 0x06a7, 0x1744: 0x155b, 0x1745: 0x1567,\n\t0x1746: 0x156f, 0x1747: 0x1577, 0x1748: 0x06ab, 0x1749: 0x184a, 0x174a: 0x158b, 0x174b: 0x15a7,\n\t0x174c: 0x15b3, 0x174d: 0x06af, 0x174e: 0x06b3, 0x174f: 0x15b7, 0x1750: 0x184f, 0x1751: 0x06b7,\n\t0x1752: 0x1854, 0x1753: 0x1859, 0x1754: 0x185e, 0x1755: 0x15db, 0x1756: 0x06bb, 0x1757: 0x15ef,\n\t0x1758: 0x15f7, 0x1759: 0x15fb, 0x175a: 0x1603, 0x175b: 0x160b, 0x175c: 0x1613, 0x175d: 0x1868,\n}\n\n// nfkcIndex: 22 blocks, 1408 entries, 2816 bytes\n// Block 0 is the zero block.\nvar nfkcIndex = [1408]uint16{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x5c, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x5d, 0xc7: 0x04,\n\t0xc8: 0x05, 0xca: 0x5e, 0xcb: 0x5f, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09,\n\t0xd0: 0x0a, 0xd1: 0x60, 0xd2: 0x61, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x62,\n\t0xd8: 0x63, 0xd9: 0x0d, 0xdb: 0x64, 0xdc: 0x65, 0xdd: 0x66, 0xdf: 0x67,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,\n\t0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a,\n\t0xf0: 0x13,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x68, 0x121: 0x69, 0x123: 0x0e, 0x124: 0x6a, 0x125: 0x6b, 0x126: 0x6c, 0x127: 0x6d,\n\t0x128: 0x6e, 0x129: 0x6f, 0x12a: 0x70, 0x12b: 0x71, 0x12c: 0x6c, 0x12d: 0x72, 0x12e: 0x73, 0x12f: 0x74,\n\t0x131: 0x75, 0x132: 0x76, 0x133: 0x77, 0x134: 0x78, 0x135: 0x79, 0x137: 0x7a,\n\t0x138: 0x7b, 0x139: 0x7c, 0x13a: 0x7d, 0x13b: 0x7e, 0x13c: 0x7f, 0x13d: 0x80, 0x13e: 0x81, 0x13f: 0x82,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x83, 0x142: 0x84, 0x143: 0x85, 0x144: 0x86, 0x145: 0x87, 0x146: 0x88, 0x147: 0x89,\n\t0x14d: 0x8a,\n\t0x15c: 0x8b, 0x15f: 0x8c,\n\t0x162: 0x8d, 0x164: 0x8e,\n\t0x168: 0x8f, 0x169: 0x90, 0x16a: 0x91, 0x16c: 0x0f, 0x16d: 0x92, 0x16e: 0x93, 0x16f: 0x94,\n\t0x170: 0x95, 0x173: 0x96, 0x174: 0x97, 0x175: 0x10, 0x176: 0x11, 0x177: 0x12,\n\t0x178: 0x13, 0x179: 0x14, 0x17a: 0x15, 0x17b: 0x16, 0x17c: 0x17, 0x17d: 0x18, 0x17e: 0x19, 0x17f: 0x1a,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x98, 0x181: 0x99, 0x182: 0x9a, 0x183: 0x9b, 0x184: 0x1b, 0x185: 0x1c, 0x186: 0x9c, 0x187: 0x9d,\n\t0x188: 0x9e, 0x189: 0x1d, 0x18a: 0x1e, 0x18b: 0x9f, 0x18c: 0xa0,\n\t0x191: 0x1f, 0x192: 0x20, 0x193: 0xa1,\n\t0x1a8: 0xa2, 0x1a9: 0xa3, 0x1ab: 0xa4,\n\t0x1b1: 0xa5, 0x1b3: 0xa6, 0x1b5: 0xa7, 0x1b7: 0xa8,\n\t0x1ba: 0xa9, 0x1bb: 0xaa, 0x1bc: 0x21, 0x1bd: 0x22, 0x1be: 0x23, 0x1bf: 0xab,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0xac, 0x1c1: 0x24, 0x1c2: 0x25, 0x1c3: 0x26, 0x1c4: 0xad, 0x1c5: 0x27, 0x1c6: 0x28,\n\t0x1c8: 0x29, 0x1c9: 0x2a, 0x1ca: 0x2b, 0x1cb: 0x2c, 0x1cc: 0x2d, 0x1cd: 0x2e, 0x1ce: 0x2f, 0x1cf: 0x30,\n\t// Block 0x8, offset 0x200\n\t0x219: 0xae, 0x21a: 0xaf, 0x21b: 0xb0, 0x21d: 0xb1, 0x21f: 0xb2,\n\t0x220: 0xb3, 0x223: 0xb4, 0x224: 0xb5, 0x225: 0xb6, 0x226: 0xb7, 0x227: 0xb8,\n\t0x22a: 0xb9, 0x22b: 0xba, 0x22d: 0xbb, 0x22f: 0xbc,\n\t0x230: 0xbd, 0x231: 0xbe, 0x232: 0xbf, 0x233: 0xc0, 0x234: 0xc1, 0x235: 0xc2, 0x236: 0xc3, 0x237: 0xbd,\n\t0x238: 0xbe, 0x239: 0xbf, 0x23a: 0xc0, 0x23b: 0xc1, 0x23c: 0xc2, 0x23d: 0xc3, 0x23e: 0xbd, 0x23f: 0xbe,\n\t// Block 0x9, offset 0x240\n\t0x240: 0xbf, 0x241: 0xc0, 0x242: 0xc1, 0x243: 0xc2, 0x244: 0xc3, 0x245: 0xbd, 0x246: 0xbe, 0x247: 0xbf,\n\t0x248: 0xc0, 0x249: 0xc1, 0x24a: 0xc2, 0x24b: 0xc3, 0x24c: 0xbd, 0x24d: 0xbe, 0x24e: 0xbf, 0x24f: 0xc0,\n\t0x250: 0xc1, 0x251: 0xc2, 0x252: 0xc3, 0x253: 0xbd, 0x254: 0xbe, 0x255: 0xbf, 0x256: 0xc0, 0x257: 0xc1,\n\t0x258: 0xc2, 0x259: 0xc3, 0x25a: 0xbd, 0x25b: 0xbe, 0x25c: 0xbf, 0x25d: 0xc0, 0x25e: 0xc1, 0x25f: 0xc2,\n\t0x260: 0xc3, 0x261: 0xbd, 0x262: 0xbe, 0x263: 0xbf, 0x264: 0xc0, 0x265: 0xc1, 0x266: 0xc2, 0x267: 0xc3,\n\t0x268: 0xbd, 0x269: 0xbe, 0x26a: 0xbf, 0x26b: 0xc0, 0x26c: 0xc1, 0x26d: 0xc2, 0x26e: 0xc3, 0x26f: 0xbd,\n\t0x270: 0xbe, 0x271: 0xbf, 0x272: 0xc0, 0x273: 0xc1, 0x274: 0xc2, 0x275: 0xc3, 0x276: 0xbd, 0x277: 0xbe,\n\t0x278: 0xbf, 0x279: 0xc0, 0x27a: 0xc1, 0x27b: 0xc2, 0x27c: 0xc3, 0x27d: 0xbd, 0x27e: 0xbe, 0x27f: 0xbf,\n\t// Block 0xa, offset 0x280\n\t0x280: 0xc0, 0x281: 0xc1, 0x282: 0xc2, 0x283: 0xc3, 0x284: 0xbd, 0x285: 0xbe, 0x286: 0xbf, 0x287: 0xc0,\n\t0x288: 0xc1, 0x289: 0xc2, 0x28a: 0xc3, 0x28b: 0xbd, 0x28c: 0xbe, 0x28d: 0xbf, 0x28e: 0xc0, 0x28f: 0xc1,\n\t0x290: 0xc2, 0x291: 0xc3, 0x292: 0xbd, 0x293: 0xbe, 0x294: 0xbf, 0x295: 0xc0, 0x296: 0xc1, 0x297: 0xc2,\n\t0x298: 0xc3, 0x299: 0xbd, 0x29a: 0xbe, 0x29b: 0xbf, 0x29c: 0xc0, 0x29d: 0xc1, 0x29e: 0xc2, 0x29f: 0xc3,\n\t0x2a0: 0xbd, 0x2a1: 0xbe, 0x2a2: 0xbf, 0x2a3: 0xc0, 0x2a4: 0xc1, 0x2a5: 0xc2, 0x2a6: 0xc3, 0x2a7: 0xbd,\n\t0x2a8: 0xbe, 0x2a9: 0xbf, 0x2aa: 0xc0, 0x2ab: 0xc1, 0x2ac: 0xc2, 0x2ad: 0xc3, 0x2ae: 0xbd, 0x2af: 0xbe,\n\t0x2b0: 0xbf, 0x2b1: 0xc0, 0x2b2: 0xc1, 0x2b3: 0xc2, 0x2b4: 0xc3, 0x2b5: 0xbd, 0x2b6: 0xbe, 0x2b7: 0xbf,\n\t0x2b8: 0xc0, 0x2b9: 0xc1, 0x2ba: 0xc2, 0x2bb: 0xc3, 0x2bc: 0xbd, 0x2bd: 0xbe, 0x2be: 0xbf, 0x2bf: 0xc0,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0xc1, 0x2c1: 0xc2, 0x2c2: 0xc3, 0x2c3: 0xbd, 0x2c4: 0xbe, 0x2c5: 0xbf, 0x2c6: 0xc0, 0x2c7: 0xc1,\n\t0x2c8: 0xc2, 0x2c9: 0xc3, 0x2ca: 0xbd, 0x2cb: 0xbe, 0x2cc: 0xbf, 0x2cd: 0xc0, 0x2ce: 0xc1, 0x2cf: 0xc2,\n\t0x2d0: 0xc3, 0x2d1: 0xbd, 0x2d2: 0xbe, 0x2d3: 0xbf, 0x2d4: 0xc0, 0x2d5: 0xc1, 0x2d6: 0xc2, 0x2d7: 0xc3,\n\t0x2d8: 0xbd, 0x2d9: 0xbe, 0x2da: 0xbf, 0x2db: 0xc0, 0x2dc: 0xc1, 0x2dd: 0xc2, 0x2de: 0xc4,\n\t// Block 0xc, offset 0x300\n\t0x324: 0x31, 0x325: 0x32, 0x326: 0x33, 0x327: 0x34,\n\t0x328: 0x35, 0x329: 0x36, 0x32a: 0x37, 0x32b: 0x38, 0x32c: 0x39, 0x32d: 0x3a, 0x32e: 0x3b, 0x32f: 0x3c,\n\t0x330: 0x3d, 0x331: 0x3e, 0x332: 0x3f, 0x333: 0x40, 0x334: 0x41, 0x335: 0x42, 0x336: 0x43, 0x337: 0x44,\n\t0x338: 0x45, 0x339: 0x46, 0x33a: 0x47, 0x33b: 0x48, 0x33c: 0xc5, 0x33d: 0x49, 0x33e: 0x4a, 0x33f: 0x4b,\n\t// Block 0xd, offset 0x340\n\t0x347: 0xc6,\n\t0x34b: 0xc7, 0x34d: 0xc8,\n\t0x368: 0xc9, 0x36b: 0xca,\n\t0x374: 0xcb,\n\t0x37d: 0xcc,\n\t// Block 0xe, offset 0x380\n\t0x381: 0xcd, 0x382: 0xce, 0x384: 0xcf, 0x385: 0xb7, 0x387: 0xd0,\n\t0x388: 0xd1, 0x38b: 0xd2, 0x38c: 0xd3, 0x38d: 0xd4,\n\t0x391: 0xd5, 0x392: 0xd6, 0x393: 0xd7, 0x396: 0xd8, 0x397: 0xd9,\n\t0x398: 0xda, 0x39a: 0xdb, 0x39c: 0xdc,\n\t0x3a0: 0xdd, 0x3a7: 0xde,\n\t0x3a8: 0xdf, 0x3a9: 0xe0, 0x3aa: 0xe1,\n\t0x3b0: 0xda, 0x3b5: 0xe2, 0x3b6: 0xe3,\n\t// Block 0xf, offset 0x3c0\n\t0x3eb: 0xe4, 0x3ec: 0xe5,\n\t// Block 0x10, offset 0x400\n\t0x432: 0xe6,\n\t// Block 0x11, offset 0x440\n\t0x445: 0xe7, 0x446: 0xe8, 0x447: 0xe9,\n\t0x449: 0xea,\n\t0x450: 0xeb, 0x451: 0xec, 0x452: 0xed, 0x453: 0xee, 0x454: 0xef, 0x455: 0xf0, 0x456: 0xf1, 0x457: 0xf2,\n\t0x458: 0xf3, 0x459: 0xf4, 0x45a: 0x4c, 0x45b: 0xf5, 0x45c: 0xf6, 0x45d: 0xf7, 0x45e: 0xf8, 0x45f: 0x4d,\n\t// Block 0x12, offset 0x480\n\t0x480: 0xf9, 0x484: 0xe5,\n\t0x48b: 0xfa,\n\t0x4a3: 0xfb, 0x4a5: 0xfc,\n\t0x4b8: 0x4e, 0x4b9: 0x4f, 0x4ba: 0x50,\n\t// Block 0x13, offset 0x4c0\n\t0x4c4: 0x51, 0x4c5: 0xfd, 0x4c6: 0xfe,\n\t0x4c8: 0x52, 0x4c9: 0xff,\n\t// Block 0x14, offset 0x500\n\t0x520: 0x53, 0x521: 0x54, 0x522: 0x55, 0x523: 0x56, 0x524: 0x57, 0x525: 0x58, 0x526: 0x59, 0x527: 0x5a,\n\t0x528: 0x5b,\n\t// Block 0x15, offset 0x540\n\t0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,\n\t0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,\n\t0x56f: 0x12,\n}\n\n// nfkcSparseOffset: 164 entries, 328 bytes\nvar nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1b, 0x25, 0x35, 0x37, 0x3c, 0x47, 0x56, 0x63, 0x6b, 0x70, 0x75, 0x77, 0x7f, 0x86, 0x89, 0x91, 0x95, 0x99, 0x9b, 0x9d, 0xa6, 0xaa, 0xb1, 0xb6, 0xb9, 0xc3, 0xc6, 0xcd, 0xd5, 0xd9, 0xdb, 0xdf, 0xe3, 0xe9, 0xfa, 0x106, 0x108, 0x10e, 0x110, 0x112, 0x114, 0x116, 0x118, 0x11a, 0x11c, 0x11f, 0x122, 0x124, 0x127, 0x12a, 0x12e, 0x133, 0x13c, 0x13e, 0x141, 0x143, 0x14e, 0x159, 0x167, 0x175, 0x185, 0x193, 0x19a, 0x1a0, 0x1af, 0x1b3, 0x1b5, 0x1b9, 0x1bb, 0x1be, 0x1c0, 0x1c3, 0x1c5, 0x1c8, 0x1ca, 0x1cc, 0x1ce, 0x1da, 0x1e4, 0x1ee, 0x1f1, 0x1f5, 0x1f7, 0x1f9, 0x1fb, 0x1fd, 0x200, 0x202, 0x204, 0x206, 0x208, 0x20e, 0x211, 0x215, 0x217, 0x21e, 0x224, 0x22a, 0x232, 0x238, 0x23e, 0x244, 0x248, 0x24a, 0x24c, 0x24e, 0x250, 0x256, 0x259, 0x25b, 0x261, 0x264, 0x26c, 0x273, 0x276, 0x279, 0x27b, 0x27e, 0x286, 0x28a, 0x291, 0x294, 0x29a, 0x29c, 0x29e, 0x2a1, 0x2a3, 0x2a6, 0x2a8, 0x2aa, 0x2ac, 0x2ae, 0x2b1, 0x2b3, 0x2b5, 0x2b7, 0x2b9, 0x2c6, 0x2d0, 0x2d2, 0x2d4, 0x2d8, 0x2dd, 0x2e9, 0x2ee, 0x2f7, 0x2fd, 0x302, 0x306, 0x30b, 0x30f, 0x31f, 0x32d, 0x33b, 0x349, 0x34f, 0x351, 0x353, 0x356, 0x361, 0x363}\n\n// nfkcSparseValues: 877 entries, 3508 bytes\nvar nfkcSparseValues = [877]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0002, lo: 0x0d},\n\t{value: 0x0001, lo: 0xa0, hi: 0xa0},\n\t{value: 0x427b, lo: 0xa8, hi: 0xa8},\n\t{value: 0x0083, lo: 0xaa, hi: 0xaa},\n\t{value: 0x4267, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0025, lo: 0xb2, hi: 0xb3},\n\t{value: 0x425d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x01dc, lo: 0xb5, hi: 0xb5},\n\t{value: 0x4294, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0023, lo: 0xb9, hi: 0xb9},\n\t{value: 0x009f, lo: 0xba, hi: 0xba},\n\t{value: 0x221f, lo: 0xbc, hi: 0xbc},\n\t{value: 0x2213, lo: 0xbd, hi: 0xbd},\n\t{value: 0x22b5, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1, offset 0xe\n\t{value: 0x0091, lo: 0x03},\n\t{value: 0x46e5, lo: 0xa0, hi: 0xa1},\n\t{value: 0x4717, lo: 0xaf, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb7, hi: 0xb7},\n\t// Block 0x2, offset 0x12\n\t{value: 0x0003, lo: 0x08},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x0091, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0119, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0095, lo: 0xb2, hi: 0xb2},\n\t{value: 0x00a5, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0143, lo: 0xb4, hi: 0xb6},\n\t{value: 0x00af, lo: 0xb7, hi: 0xb7},\n\t{value: 0x00b3, lo: 0xb8, hi: 0xb8},\n\t// Block 0x3, offset 0x1b\n\t{value: 0x000a, lo: 0x09},\n\t{value: 0x4271, lo: 0x98, hi: 0x98},\n\t{value: 0x4276, lo: 0x99, hi: 0x9a},\n\t{value: 0x4299, lo: 0x9b, hi: 0x9b},\n\t{value: 0x4262, lo: 0x9c, hi: 0x9c},\n\t{value: 0x4285, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0113, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0099, lo: 0xa1, hi: 0xa1},\n\t{value: 0x00a7, lo: 0xa2, hi: 0xa3},\n\t{value: 0x0167, lo: 0xa4, hi: 0xa4},\n\t// Block 0x4, offset 0x25\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0xa000, lo: 0x8d, hi: 0x8d},\n\t{value: 0x37a8, lo: 0x90, hi: 0x90},\n\t{value: 0x37b4, lo: 0x91, hi: 0x91},\n\t{value: 0x37a2, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x96, hi: 0x96},\n\t{value: 0x381a, lo: 0x97, hi: 0x97},\n\t{value: 0x37e4, lo: 0x9c, hi: 0x9c},\n\t{value: 0x37cc, lo: 0x9d, hi: 0x9d},\n\t{value: 0x37f6, lo: 0x9e, hi: 0x9e},\n\t{value: 0xa000, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3820, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3826, lo: 0xb7, hi: 0xb7},\n\t// Block 0x5, offset 0x35\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x83, hi: 0x87},\n\t// Block 0x6, offset 0x37\n\t{value: 0x0001, lo: 0x04},\n\t{value: 0x8113, lo: 0x81, hi: 0x82},\n\t{value: 0x8132, lo: 0x84, hi: 0x84},\n\t{value: 0x812d, lo: 0x85, hi: 0x85},\n\t{value: 0x810d, lo: 0x87, hi: 0x87},\n\t// Block 0x7, offset 0x3c\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x97},\n\t{value: 0x8119, lo: 0x98, hi: 0x98},\n\t{value: 0x811a, lo: 0x99, hi: 0x99},\n\t{value: 0x811b, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3844, lo: 0xa2, hi: 0xa2},\n\t{value: 0x384a, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3856, lo: 0xa4, hi: 0xa4},\n\t{value: 0x3850, lo: 0xa5, hi: 0xa5},\n\t{value: 0x385c, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xa7, hi: 0xa7},\n\t// Block 0x8, offset 0x47\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x386e, lo: 0x80, hi: 0x80},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0x3862, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x3868, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x95, hi: 0x95},\n\t{value: 0x8132, lo: 0x96, hi: 0x9c},\n\t{value: 0x8132, lo: 0x9f, hi: 0xa2},\n\t{value: 0x812d, lo: 0xa3, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa8},\n\t{value: 0x812d, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8132, lo: 0xab, hi: 0xac},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t// Block 0x9, offset 0x56\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x811f, lo: 0x91, hi: 0x91},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x812d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb5, hi: 0xb6},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb9},\n\t{value: 0x8132, lo: 0xba, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbc},\n\t{value: 0x8132, lo: 0xbd, hi: 0xbd},\n\t{value: 0x812d, lo: 0xbe, hi: 0xbe},\n\t{value: 0x8132, lo: 0xbf, hi: 0xbf},\n\t// Block 0xa, offset 0x63\n\t{value: 0x0005, lo: 0x07},\n\t{value: 0x8132, lo: 0x80, hi: 0x80},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x812d, lo: 0x82, hi: 0x83},\n\t{value: 0x812d, lo: 0x84, hi: 0x85},\n\t{value: 0x812d, lo: 0x86, hi: 0x87},\n\t{value: 0x812d, lo: 0x88, hi: 0x89},\n\t{value: 0x8132, lo: 0x8a, hi: 0x8a},\n\t// Block 0xb, offset 0x6b\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0xab, hi: 0xb1},\n\t{value: 0x812d, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8132, lo: 0xb3, hi: 0xb3},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0xc, offset 0x70\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0x96, hi: 0x99},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa7},\n\t{value: 0x8132, lo: 0xa9, hi: 0xad},\n\t// Block 0xd, offset 0x75\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x99, hi: 0x9b},\n\t// Block 0xe, offset 0x77\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3edb, lo: 0xa9, hi: 0xa9},\n\t{value: 0xa000, lo: 0xb0, hi: 0xb0},\n\t{value: 0x3ee3, lo: 0xb1, hi: 0xb1},\n\t{value: 0xa000, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3eeb, lo: 0xb4, hi: 0xb4},\n\t{value: 0x9902, lo: 0xbc, hi: 0xbc},\n\t// Block 0xf, offset 0x7f\n\t{value: 0x0008, lo: 0x06},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x91, hi: 0x91},\n\t{value: 0x812d, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x93, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x94},\n\t{value: 0x451f, lo: 0x98, hi: 0x9f},\n\t// Block 0x10, offset 0x86\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x11, offset 0x89\n\t{value: 0x0008, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2ca1, lo: 0x8b, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x455f, lo: 0x9c, hi: 0x9d},\n\t{value: 0x456f, lo: 0x9f, hi: 0x9f},\n\t{value: 0x8132, lo: 0xbe, hi: 0xbe},\n\t// Block 0x12, offset 0x91\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x4597, lo: 0xb3, hi: 0xb3},\n\t{value: 0x459f, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x13, offset 0x95\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x4577, lo: 0x99, hi: 0x9b},\n\t{value: 0x458f, lo: 0x9e, hi: 0x9e},\n\t// Block 0x14, offset 0x99\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x15, offset 0x9b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t// Block 0x16, offset 0x9d\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2cb9, lo: 0x88, hi: 0x88},\n\t{value: 0x2cb1, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cc1, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x96, hi: 0x97},\n\t{value: 0x45a7, lo: 0x9c, hi: 0x9c},\n\t{value: 0x45af, lo: 0x9d, hi: 0x9d},\n\t// Block 0x17, offset 0xa6\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x2cc9, lo: 0x94, hi: 0x94},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x18, offset 0xaa\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cd1, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2ce1, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cd9, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x19, offset 0xb1\n\t{value: 0x1801, lo: 0x04},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x3ef3, lo: 0x88, hi: 0x88},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8120, lo: 0x95, hi: 0x96},\n\t// Block 0x1a, offset 0xb6\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0xa000, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1b, offset 0xb9\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x2ce9, lo: 0x80, hi: 0x80},\n\t{value: 0x9900, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x2cf1, lo: 0x87, hi: 0x87},\n\t{value: 0x2cf9, lo: 0x88, hi: 0x88},\n\t{value: 0x2f53, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2ddb, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x95, hi: 0x96},\n\t// Block 0x1c, offset 0xc3\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xbb, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1d, offset 0xc6\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2d01, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2d11, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d09, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1e, offset 0xcd\n\t{value: 0x6be7, lo: 0x07},\n\t{value: 0x9904, lo: 0x8a, hi: 0x8a},\n\t{value: 0x9900, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x3efb, lo: 0x9a, hi: 0x9a},\n\t{value: 0x2f5b, lo: 0x9c, hi: 0x9c},\n\t{value: 0x2de6, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2d19, lo: 0x9e, hi: 0x9f},\n\t// Block 0x1f, offset 0xd5\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x2624, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8122, lo: 0xb8, hi: 0xb9},\n\t{value: 0x8104, lo: 0xba, hi: 0xba},\n\t// Block 0x20, offset 0xd9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8123, lo: 0x88, hi: 0x8b},\n\t// Block 0x21, offset 0xdb\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x2639, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8124, lo: 0xb8, hi: 0xb9},\n\t{value: 0x8104, lo: 0xba, hi: 0xba},\n\t// Block 0x22, offset 0xdf\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8125, lo: 0x88, hi: 0x8b},\n\t{value: 0x262b, lo: 0x9c, hi: 0x9c},\n\t{value: 0x2632, lo: 0x9d, hi: 0x9d},\n\t// Block 0x23, offset 0xe3\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x030b, lo: 0x8c, hi: 0x8c},\n\t{value: 0x812d, lo: 0x98, hi: 0x99},\n\t{value: 0x812d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb7},\n\t{value: 0x812b, lo: 0xb9, hi: 0xb9},\n\t// Block 0x24, offset 0xe9\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x2647, lo: 0x83, hi: 0x83},\n\t{value: 0x264e, lo: 0x8d, hi: 0x8d},\n\t{value: 0x2655, lo: 0x92, hi: 0x92},\n\t{value: 0x265c, lo: 0x97, hi: 0x97},\n\t{value: 0x2663, lo: 0x9c, hi: 0x9c},\n\t{value: 0x2640, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8126, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8127, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4a87, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8128, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4a90, lo: 0xb5, hi: 0xb5},\n\t{value: 0x45b7, lo: 0xb6, hi: 0xb6},\n\t{value: 0x45f7, lo: 0xb7, hi: 0xb7},\n\t{value: 0x45bf, lo: 0xb8, hi: 0xb8},\n\t{value: 0x4602, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8127, lo: 0xba, hi: 0xbd},\n\t// Block 0x25, offset 0xfa\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x8127, lo: 0x80, hi: 0x80},\n\t{value: 0x4a99, lo: 0x81, hi: 0x81},\n\t{value: 0x8132, lo: 0x82, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0x86, hi: 0x87},\n\t{value: 0x2671, lo: 0x93, hi: 0x93},\n\t{value: 0x2678, lo: 0x9d, hi: 0x9d},\n\t{value: 0x267f, lo: 0xa2, hi: 0xa2},\n\t{value: 0x2686, lo: 0xa7, hi: 0xa7},\n\t{value: 0x268d, lo: 0xac, hi: 0xac},\n\t{value: 0x266a, lo: 0xb9, hi: 0xb9},\n\t// Block 0x26, offset 0x106\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x86, hi: 0x86},\n\t// Block 0x27, offset 0x108\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x2d21, lo: 0xa6, hi: 0xa6},\n\t{value: 0x9900, lo: 0xae, hi: 0xae},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x28, offset 0x10e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t// Block 0x29, offset 0x110\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x030f, lo: 0xbc, hi: 0xbc},\n\t// Block 0x2a, offset 0x112\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x80, hi: 0x92},\n\t// Block 0x2b, offset 0x114\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xb900, lo: 0xa1, hi: 0xb5},\n\t// Block 0x2c, offset 0x116\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0xa8, hi: 0xbf},\n\t// Block 0x2d, offset 0x118\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0x80, hi: 0x82},\n\t// Block 0x2e, offset 0x11a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9f},\n\t// Block 0x2f, offset 0x11c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x94, hi: 0x94},\n\t{value: 0x8104, lo: 0xb4, hi: 0xb4},\n\t// Block 0x30, offset 0x11f\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9d},\n\t// Block 0x31, offset 0x122\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8131, lo: 0xa9, hi: 0xa9},\n\t// Block 0x32, offset 0x124\n\t{value: 0x0004, lo: 0x02},\n\t{value: 0x812e, lo: 0xb9, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbb},\n\t// Block 0x33, offset 0x127\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x97, hi: 0x97},\n\t{value: 0x812d, lo: 0x98, hi: 0x98},\n\t// Block 0x34, offset 0x12a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8104, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8132, lo: 0xb5, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbf, hi: 0xbf},\n\t// Block 0x35, offset 0x12e\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t{value: 0x812d, lo: 0xb5, hi: 0xba},\n\t{value: 0x8132, lo: 0xbb, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x36, offset 0x133\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x2d69, lo: 0x80, hi: 0x80},\n\t{value: 0x2d71, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x82, hi: 0x82},\n\t{value: 0x2d79, lo: 0x83, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xab, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xac},\n\t{value: 0x8132, lo: 0xad, hi: 0xb3},\n\t// Block 0x37, offset 0x13c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xaa, hi: 0xab},\n\t// Block 0x38, offset 0x13e\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xa6, hi: 0xa6},\n\t{value: 0x8104, lo: 0xb2, hi: 0xb3},\n\t// Block 0x39, offset 0x141\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x3a, offset 0x143\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x92},\n\t{value: 0x8101, lo: 0x94, hi: 0x94},\n\t{value: 0x812d, lo: 0x95, hi: 0x99},\n\t{value: 0x8132, lo: 0x9a, hi: 0x9b},\n\t{value: 0x812d, lo: 0x9c, hi: 0x9f},\n\t{value: 0x8132, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8101, lo: 0xa2, hi: 0xa8},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t{value: 0x8132, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb9},\n\t// Block 0x3b, offset 0x14e\n\t{value: 0x0002, lo: 0x0a},\n\t{value: 0x0043, lo: 0xac, hi: 0xac},\n\t{value: 0x00d1, lo: 0xad, hi: 0xad},\n\t{value: 0x0045, lo: 0xae, hi: 0xae},\n\t{value: 0x0049, lo: 0xb0, hi: 0xb1},\n\t{value: 0x00e6, lo: 0xb2, hi: 0xb2},\n\t{value: 0x004f, lo: 0xb3, hi: 0xba},\n\t{value: 0x005f, lo: 0xbc, hi: 0xbc},\n\t{value: 0x00ef, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0061, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0065, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3c, offset 0x159\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0001, lo: 0x80, hi: 0x8a},\n\t{value: 0x043b, lo: 0x91, hi: 0x91},\n\t{value: 0x429e, lo: 0x97, hi: 0x97},\n\t{value: 0x001d, lo: 0xa4, hi: 0xa4},\n\t{value: 0x1873, lo: 0xa5, hi: 0xa5},\n\t{value: 0x1b5f, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0001, lo: 0xaf, hi: 0xaf},\n\t{value: 0x2694, lo: 0xb3, hi: 0xb3},\n\t{value: 0x2801, lo: 0xb4, hi: 0xb4},\n\t{value: 0x269b, lo: 0xb6, hi: 0xb6},\n\t{value: 0x280b, lo: 0xb7, hi: 0xb7},\n\t{value: 0x186d, lo: 0xbc, hi: 0xbc},\n\t{value: 0x426c, lo: 0xbe, hi: 0xbe},\n\t// Block 0x3d, offset 0x167\n\t{value: 0x0002, lo: 0x0d},\n\t{value: 0x1933, lo: 0x87, hi: 0x87},\n\t{value: 0x1930, lo: 0x88, hi: 0x88},\n\t{value: 0x1870, lo: 0x89, hi: 0x89},\n\t{value: 0x2991, lo: 0x97, hi: 0x97},\n\t{value: 0x0001, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0021, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0093, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0029, lo: 0xb4, hi: 0xb9},\n\t{value: 0x0017, lo: 0xba, hi: 0xba},\n\t{value: 0x0467, lo: 0xbb, hi: 0xbb},\n\t{value: 0x003b, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0011, lo: 0xbd, hi: 0xbe},\n\t{value: 0x009d, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3e, offset 0x175\n\t{value: 0x0002, lo: 0x0f},\n\t{value: 0x0021, lo: 0x80, hi: 0x89},\n\t{value: 0x0017, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0467, lo: 0x8b, hi: 0x8b},\n\t{value: 0x003b, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0011, lo: 0x8d, hi: 0x8e},\n\t{value: 0x0083, lo: 0x90, hi: 0x90},\n\t{value: 0x008b, lo: 0x91, hi: 0x91},\n\t{value: 0x009f, lo: 0x92, hi: 0x92},\n\t{value: 0x00b1, lo: 0x93, hi: 0x93},\n\t{value: 0x0104, lo: 0x94, hi: 0x94},\n\t{value: 0x0091, lo: 0x95, hi: 0x95},\n\t{value: 0x0097, lo: 0x96, hi: 0x99},\n\t{value: 0x00a1, lo: 0x9a, hi: 0x9a},\n\t{value: 0x00a7, lo: 0x9b, hi: 0x9c},\n\t{value: 0x199c, lo: 0xa8, hi: 0xa8},\n\t// Block 0x3f, offset 0x185\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x8132, lo: 0x90, hi: 0x91},\n\t{value: 0x8101, lo: 0x92, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x97},\n\t{value: 0x8101, lo: 0x98, hi: 0x9a},\n\t{value: 0x8132, lo: 0x9b, hi: 0x9c},\n\t{value: 0x8132, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8101, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa7},\n\t{value: 0x812d, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8132, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8101, lo: 0xaa, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t// Block 0x40, offset 0x193\n\t{value: 0x0007, lo: 0x06},\n\t{value: 0x2183, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t{value: 0x3bbc, lo: 0x9a, hi: 0x9b},\n\t{value: 0x3bca, lo: 0xae, hi: 0xae},\n\t// Block 0x41, offset 0x19a\n\t{value: 0x000e, lo: 0x05},\n\t{value: 0x3bd1, lo: 0x8d, hi: 0x8e},\n\t{value: 0x3bd8, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t// Block 0x42, offset 0x1a0\n\t{value: 0x0173, lo: 0x0e},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0x3be6, lo: 0x84, hi: 0x84},\n\t{value: 0xa000, lo: 0x88, hi: 0x88},\n\t{value: 0x3bed, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0x3bf4, lo: 0x8c, hi: 0x8c},\n\t{value: 0xa000, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3bfb, lo: 0xa4, hi: 0xa4},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3c02, lo: 0xa6, hi: 0xa6},\n\t{value: 0x26a2, lo: 0xac, hi: 0xad},\n\t{value: 0x26a9, lo: 0xaf, hi: 0xaf},\n\t{value: 0x281f, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xbc, hi: 0xbc},\n\t// Block 0x43, offset 0x1af\n\t{value: 0x0007, lo: 0x03},\n\t{value: 0x3c6b, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3c95, lo: 0xa2, hi: 0xa3},\n\t{value: 0x3cbf, lo: 0xaa, hi: 0xad},\n\t// Block 0x44, offset 0x1b3\n\t{value: 0x0004, lo: 0x01},\n\t{value: 0x048b, lo: 0xa9, hi: 0xaa},\n\t// Block 0x45, offset 0x1b5\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x0057, lo: 0x80, hi: 0x8f},\n\t{value: 0x0083, lo: 0x90, hi: 0xa9},\n\t{value: 0x0021, lo: 0xaa, hi: 0xaa},\n\t// Block 0x46, offset 0x1b9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x299e, lo: 0x8c, hi: 0x8c},\n\t// Block 0x47, offset 0x1bb\n\t{value: 0x0266, lo: 0x02},\n\t{value: 0x1b8f, lo: 0xb4, hi: 0xb4},\n\t{value: 0x192d, lo: 0xb5, hi: 0xb6},\n\t// Block 0x48, offset 0x1be\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x44e0, lo: 0x9c, hi: 0x9c},\n\t// Block 0x49, offset 0x1c0\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0095, lo: 0xbc, hi: 0xbc},\n\t{value: 0x006d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x4a, offset 0x1c3\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xaf, hi: 0xb1},\n\t// Block 0x4b, offset 0x1c5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x047f, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x4c, offset 0x1c8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xa0, hi: 0xbf},\n\t// Block 0x4d, offset 0x1ca\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0dc3, lo: 0x9f, hi: 0x9f},\n\t// Block 0x4e, offset 0x1cc\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x162f, lo: 0xb3, hi: 0xb3},\n\t// Block 0x4f, offset 0x1ce\n\t{value: 0x0004, lo: 0x0b},\n\t{value: 0x1597, lo: 0x80, hi: 0x82},\n\t{value: 0x15af, lo: 0x83, hi: 0x83},\n\t{value: 0x15c7, lo: 0x84, hi: 0x85},\n\t{value: 0x15d7, lo: 0x86, hi: 0x89},\n\t{value: 0x15eb, lo: 0x8a, hi: 0x8c},\n\t{value: 0x15ff, lo: 0x8d, hi: 0x8d},\n\t{value: 0x1607, lo: 0x8e, hi: 0x8e},\n\t{value: 0x160f, lo: 0x8f, hi: 0x90},\n\t{value: 0x161b, lo: 0x91, hi: 0x93},\n\t{value: 0x162b, lo: 0x94, hi: 0x94},\n\t{value: 0x1633, lo: 0x95, hi: 0x95},\n\t// Block 0x50, offset 0x1da\n\t{value: 0x0004, lo: 0x09},\n\t{value: 0x0001, lo: 0x80, hi: 0x80},\n\t{value: 0x812c, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8131, lo: 0xab, hi: 0xab},\n\t{value: 0x8133, lo: 0xac, hi: 0xac},\n\t{value: 0x812e, lo: 0xad, hi: 0xad},\n\t{value: 0x812f, lo: 0xae, hi: 0xae},\n\t{value: 0x812f, lo: 0xaf, hi: 0xaf},\n\t{value: 0x04b3, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0887, lo: 0xb8, hi: 0xba},\n\t// Block 0x51, offset 0x1e4\n\t{value: 0x0006, lo: 0x09},\n\t{value: 0x0313, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0317, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4a3e, lo: 0xb3, hi: 0xb3},\n\t{value: 0x031b, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4a44, lo: 0xb5, hi: 0xb6},\n\t{value: 0x031f, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0323, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0327, lo: 0xb9, hi: 0xb9},\n\t{value: 0x4a50, lo: 0xba, hi: 0xbf},\n\t// Block 0x52, offset 0x1ee\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb4, hi: 0xbd},\n\t// Block 0x53, offset 0x1f1\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x020f, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0212, lo: 0x9d, hi: 0x9d},\n\t{value: 0x8132, lo: 0x9e, hi: 0x9f},\n\t// Block 0x54, offset 0x1f5\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb1},\n\t// Block 0x55, offset 0x1f7\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x163b, lo: 0xb0, hi: 0xb0},\n\t// Block 0x56, offset 0x1f9\n\t{value: 0x000c, lo: 0x01},\n\t{value: 0x00d7, lo: 0xb8, hi: 0xb9},\n\t// Block 0x57, offset 0x1fb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t// Block 0x58, offset 0x1fd\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xa0, hi: 0xb1},\n\t// Block 0x59, offset 0x200\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xab, hi: 0xad},\n\t// Block 0x5a, offset 0x202\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x93, hi: 0x93},\n\t// Block 0x5b, offset 0x204\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb3, hi: 0xb3},\n\t// Block 0x5c, offset 0x206\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t// Block 0x5d, offset 0x208\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb7, hi: 0xb8},\n\t{value: 0x8132, lo: 0xbe, hi: 0xbf},\n\t// Block 0x5e, offset 0x20e\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t// Block 0x5f, offset 0x211\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x1637, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0125, lo: 0x9e, hi: 0x9e},\n\t{value: 0x1643, lo: 0x9f, hi: 0x9f},\n\t// Block 0x60, offset 0x215\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xad, hi: 0xad},\n\t// Block 0x61, offset 0x217\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe500, lo: 0x80, hi: 0x80},\n\t{value: 0xc600, lo: 0x81, hi: 0x9b},\n\t{value: 0xe500, lo: 0x9c, hi: 0x9c},\n\t{value: 0xc600, lo: 0x9d, hi: 0xb7},\n\t{value: 0xe500, lo: 0xb8, hi: 0xb8},\n\t{value: 0xc600, lo: 0xb9, hi: 0xbf},\n\t// Block 0x62, offset 0x21e\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x93},\n\t{value: 0xe500, lo: 0x94, hi: 0x94},\n\t{value: 0xc600, lo: 0x95, hi: 0xaf},\n\t{value: 0xe500, lo: 0xb0, hi: 0xb0},\n\t{value: 0xc600, lo: 0xb1, hi: 0xbf},\n\t// Block 0x63, offset 0x224\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8b},\n\t{value: 0xe500, lo: 0x8c, hi: 0x8c},\n\t{value: 0xc600, lo: 0x8d, hi: 0xa7},\n\t{value: 0xe500, lo: 0xa8, hi: 0xa8},\n\t{value: 0xc600, lo: 0xa9, hi: 0xbf},\n\t// Block 0x64, offset 0x22a\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xc600, lo: 0x80, hi: 0x83},\n\t{value: 0xe500, lo: 0x84, hi: 0x84},\n\t{value: 0xc600, lo: 0x85, hi: 0x9f},\n\t{value: 0xe500, lo: 0xa0, hi: 0xa0},\n\t{value: 0xc600, lo: 0xa1, hi: 0xbb},\n\t{value: 0xe500, lo: 0xbc, hi: 0xbc},\n\t{value: 0xc600, lo: 0xbd, hi: 0xbf},\n\t// Block 0x65, offset 0x232\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x97},\n\t{value: 0xe500, lo: 0x98, hi: 0x98},\n\t{value: 0xc600, lo: 0x99, hi: 0xb3},\n\t{value: 0xe500, lo: 0xb4, hi: 0xb4},\n\t{value: 0xc600, lo: 0xb5, hi: 0xbf},\n\t// Block 0x66, offset 0x238\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8f},\n\t{value: 0xe500, lo: 0x90, hi: 0x90},\n\t{value: 0xc600, lo: 0x91, hi: 0xab},\n\t{value: 0xe500, lo: 0xac, hi: 0xac},\n\t{value: 0xc600, lo: 0xad, hi: 0xbf},\n\t// Block 0x67, offset 0x23e\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t{value: 0xe500, lo: 0xa4, hi: 0xa4},\n\t{value: 0xc600, lo: 0xa5, hi: 0xbf},\n\t// Block 0x68, offset 0x244\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t// Block 0x69, offset 0x248\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x0003, lo: 0x81, hi: 0xbf},\n\t// Block 0x6a, offset 0x24a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x6b, offset 0x24c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xa0, hi: 0xa0},\n\t// Block 0x6c, offset 0x24e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb6, hi: 0xba},\n\t// Block 0x6d, offset 0x250\n\t{value: 0x002c, lo: 0x05},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x8f, hi: 0x8f},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8101, lo: 0xb9, hi: 0xba},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x6e, offset 0x256\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa5},\n\t{value: 0x812d, lo: 0xa6, hi: 0xa6},\n\t// Block 0x6f, offset 0x259\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa7},\n\t// Block 0x70, offset 0x25b\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x812d, lo: 0x86, hi: 0x87},\n\t{value: 0x8132, lo: 0x88, hi: 0x8a},\n\t{value: 0x812d, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8132, lo: 0x8c, hi: 0x8c},\n\t{value: 0x812d, lo: 0x8d, hi: 0x90},\n\t// Block 0x71, offset 0x261\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x72, offset 0x264\n\t{value: 0x17fe, lo: 0x07},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x423b, lo: 0x9a, hi: 0x9a},\n\t{value: 0xa000, lo: 0x9b, hi: 0x9b},\n\t{value: 0x4245, lo: 0x9c, hi: 0x9c},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x424f, lo: 0xab, hi: 0xab},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x73, offset 0x26c\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x8132, lo: 0x80, hi: 0x82},\n\t{value: 0x9900, lo: 0xa7, hi: 0xa7},\n\t{value: 0x2d81, lo: 0xae, hi: 0xae},\n\t{value: 0x2d8b, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb1, hi: 0xb2},\n\t{value: 0x8104, lo: 0xb3, hi: 0xb4},\n\t// Block 0x74, offset 0x273\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0x75, offset 0x276\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb5, hi: 0xb5},\n\t{value: 0x8102, lo: 0xb6, hi: 0xb6},\n\t// Block 0x76, offset 0x279\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x8102, lo: 0xa9, hi: 0xaa},\n\t// Block 0x77, offset 0x27b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbb, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x78, offset 0x27e\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2d95, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d9f, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x8132, lo: 0xa6, hi: 0xac},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t// Block 0x79, offset 0x286\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x86, hi: 0x86},\n\t{value: 0x8132, lo: 0x9e, hi: 0x9e},\n\t// Block 0x7a, offset 0x28a\n\t{value: 0x6b57, lo: 0x06},\n\t{value: 0x9900, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb9, hi: 0xb9},\n\t{value: 0x9900, lo: 0xba, hi: 0xba},\n\t{value: 0x2db3, lo: 0xbb, hi: 0xbb},\n\t{value: 0x2da9, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2dbd, lo: 0xbe, hi: 0xbe},\n\t// Block 0x7b, offset 0x291\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x83, hi: 0x83},\n\t// Block 0x7c, offset 0x294\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x9900, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2dc7, lo: 0xba, hi: 0xba},\n\t{value: 0x2dd1, lo: 0xbb, hi: 0xbb},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7d, offset 0x29a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0x80, hi: 0x80},\n\t// Block 0x7e, offset 0x29c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7f, offset 0x29e\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x80, offset 0x2a1\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xab, hi: 0xab},\n\t// Block 0x81, offset 0x2a3\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8102, lo: 0xba, hi: 0xba},\n\t// Block 0x82, offset 0x2a6\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xa0, hi: 0xa0},\n\t// Block 0x83, offset 0x2a8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xb4, hi: 0xb4},\n\t// Block 0x84, offset 0x2aa\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x87, hi: 0x87},\n\t// Block 0x85, offset 0x2ac\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x99, hi: 0x99},\n\t// Block 0x86, offset 0x2ae\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0x82, hi: 0x82},\n\t{value: 0x8104, lo: 0x84, hi: 0x85},\n\t// Block 0x87, offset 0x2b1\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x97, hi: 0x97},\n\t// Block 0x88, offset 0x2b3\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0xb0, hi: 0xb4},\n\t// Block 0x89, offset 0x2b5\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb6},\n\t// Block 0x8a, offset 0x2b7\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0x9e, hi: 0x9e},\n\t// Block 0x8b, offset 0x2b9\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x45cf, lo: 0x9e, hi: 0x9e},\n\t{value: 0x45d9, lo: 0x9f, hi: 0x9f},\n\t{value: 0x460d, lo: 0xa0, hi: 0xa0},\n\t{value: 0x461b, lo: 0xa1, hi: 0xa1},\n\t{value: 0x4629, lo: 0xa2, hi: 0xa2},\n\t{value: 0x4637, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4645, lo: 0xa4, hi: 0xa4},\n\t{value: 0x812b, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8101, lo: 0xa7, hi: 0xa9},\n\t{value: 0x8130, lo: 0xad, hi: 0xad},\n\t{value: 0x812b, lo: 0xae, hi: 0xb2},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbf},\n\t// Block 0x8c, offset 0x2c6\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x812d, lo: 0x80, hi: 0x82},\n\t{value: 0x8132, lo: 0x85, hi: 0x89},\n\t{value: 0x812d, lo: 0x8a, hi: 0x8b},\n\t{value: 0x8132, lo: 0xaa, hi: 0xad},\n\t{value: 0x45e3, lo: 0xbb, hi: 0xbb},\n\t{value: 0x45ed, lo: 0xbc, hi: 0xbc},\n\t{value: 0x4653, lo: 0xbd, hi: 0xbd},\n\t{value: 0x466f, lo: 0xbe, hi: 0xbe},\n\t{value: 0x4661, lo: 0xbf, hi: 0xbf},\n\t// Block 0x8d, offset 0x2d0\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x467d, lo: 0x80, hi: 0x80},\n\t// Block 0x8e, offset 0x2d2\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x82, hi: 0x84},\n\t// Block 0x8f, offset 0x2d4\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x0043, lo: 0x80, hi: 0x99},\n\t{value: 0x0083, lo: 0x9a, hi: 0xb3},\n\t{value: 0x0043, lo: 0xb4, hi: 0xbf},\n\t// Block 0x90, offset 0x2d8\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x005b, lo: 0x80, hi: 0x8d},\n\t{value: 0x0083, lo: 0x8e, hi: 0x94},\n\t{value: 0x0093, lo: 0x96, hi: 0xa7},\n\t{value: 0x0043, lo: 0xa8, hi: 0xbf},\n\t// Block 0x91, offset 0x2dd\n\t{value: 0x0002, lo: 0x0b},\n\t{value: 0x0073, lo: 0x80, hi: 0x81},\n\t{value: 0x0083, lo: 0x82, hi: 0x9b},\n\t{value: 0x0043, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0047, lo: 0x9e, hi: 0x9f},\n\t{value: 0x004f, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0055, lo: 0xa5, hi: 0xa6},\n\t{value: 0x005d, lo: 0xa9, hi: 0xac},\n\t{value: 0x0067, lo: 0xae, hi: 0xb5},\n\t{value: 0x0083, lo: 0xb6, hi: 0xb9},\n\t{value: 0x008d, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0091, lo: 0xbd, hi: 0xbf},\n\t// Block 0x92, offset 0x2e9\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x0097, lo: 0x80, hi: 0x83},\n\t{value: 0x00a1, lo: 0x85, hi: 0x8f},\n\t{value: 0x0043, lo: 0x90, hi: 0xa9},\n\t{value: 0x0083, lo: 0xaa, hi: 0xbf},\n\t// Block 0x93, offset 0x2ee\n\t{value: 0x0002, lo: 0x08},\n\t{value: 0x00af, lo: 0x80, hi: 0x83},\n\t{value: 0x0043, lo: 0x84, hi: 0x85},\n\t{value: 0x0049, lo: 0x87, hi: 0x8a},\n\t{value: 0x0055, lo: 0x8d, hi: 0x94},\n\t{value: 0x0067, lo: 0x96, hi: 0x9c},\n\t{value: 0x0083, lo: 0x9e, hi: 0xb7},\n\t{value: 0x0043, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0049, lo: 0xbb, hi: 0xbe},\n\t// Block 0x94, offset 0x2f7\n\t{value: 0x0002, lo: 0x05},\n\t{value: 0x0053, lo: 0x80, hi: 0x84},\n\t{value: 0x005f, lo: 0x86, hi: 0x86},\n\t{value: 0x0067, lo: 0x8a, hi: 0x90},\n\t{value: 0x0083, lo: 0x92, hi: 0xab},\n\t{value: 0x0043, lo: 0xac, hi: 0xbf},\n\t// Block 0x95, offset 0x2fd\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x006b, lo: 0x80, hi: 0x85},\n\t{value: 0x0083, lo: 0x86, hi: 0x9f},\n\t{value: 0x0043, lo: 0xa0, hi: 0xb9},\n\t{value: 0x0083, lo: 0xba, hi: 0xbf},\n\t// Block 0x96, offset 0x302\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x008f, lo: 0x80, hi: 0x93},\n\t{value: 0x0043, lo: 0x94, hi: 0xad},\n\t{value: 0x0083, lo: 0xae, hi: 0xbf},\n\t// Block 0x97, offset 0x306\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x00a7, lo: 0x80, hi: 0x87},\n\t{value: 0x0043, lo: 0x88, hi: 0xa1},\n\t{value: 0x0083, lo: 0xa2, hi: 0xbb},\n\t{value: 0x0043, lo: 0xbc, hi: 0xbf},\n\t// Block 0x98, offset 0x30b\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x004b, lo: 0x80, hi: 0x95},\n\t{value: 0x0083, lo: 0x96, hi: 0xaf},\n\t{value: 0x0043, lo: 0xb0, hi: 0xbf},\n\t// Block 0x99, offset 0x30f\n\t{value: 0x0003, lo: 0x0f},\n\t{value: 0x01b8, lo: 0x80, hi: 0x80},\n\t{value: 0x045f, lo: 0x81, hi: 0x81},\n\t{value: 0x01bb, lo: 0x82, hi: 0x9a},\n\t{value: 0x045b, lo: 0x9b, hi: 0x9b},\n\t{value: 0x01c7, lo: 0x9c, hi: 0x9c},\n\t{value: 0x01d0, lo: 0x9d, hi: 0x9d},\n\t{value: 0x01d6, lo: 0x9e, hi: 0x9e},\n\t{value: 0x01fa, lo: 0x9f, hi: 0x9f},\n\t{value: 0x01eb, lo: 0xa0, hi: 0xa0},\n\t{value: 0x01e8, lo: 0xa1, hi: 0xa1},\n\t{value: 0x0173, lo: 0xa2, hi: 0xb2},\n\t{value: 0x0188, lo: 0xb3, hi: 0xb3},\n\t{value: 0x01a6, lo: 0xb4, hi: 0xba},\n\t{value: 0x045f, lo: 0xbb, hi: 0xbb},\n\t{value: 0x01bb, lo: 0xbc, hi: 0xbf},\n\t// Block 0x9a, offset 0x31f\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x01c7, lo: 0x80, hi: 0x94},\n\t{value: 0x045b, lo: 0x95, hi: 0x95},\n\t{value: 0x01c7, lo: 0x96, hi: 0x96},\n\t{value: 0x01d0, lo: 0x97, hi: 0x97},\n\t{value: 0x01d6, lo: 0x98, hi: 0x98},\n\t{value: 0x01fa, lo: 0x99, hi: 0x99},\n\t{value: 0x01eb, lo: 0x9a, hi: 0x9a},\n\t{value: 0x01e8, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0173, lo: 0x9c, hi: 0xac},\n\t{value: 0x0188, lo: 0xad, hi: 0xad},\n\t{value: 0x01a6, lo: 0xae, hi: 0xb4},\n\t{value: 0x045f, lo: 0xb5, hi: 0xb5},\n\t{value: 0x01bb, lo: 0xb6, hi: 0xbf},\n\t// Block 0x9b, offset 0x32d\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x01d9, lo: 0x80, hi: 0x8e},\n\t{value: 0x045b, lo: 0x8f, hi: 0x8f},\n\t{value: 0x01c7, lo: 0x90, hi: 0x90},\n\t{value: 0x01d0, lo: 0x91, hi: 0x91},\n\t{value: 0x01d6, lo: 0x92, hi: 0x92},\n\t{value: 0x01fa, lo: 0x93, hi: 0x93},\n\t{value: 0x01eb, lo: 0x94, hi: 0x94},\n\t{value: 0x01e8, lo: 0x95, hi: 0x95},\n\t{value: 0x0173, lo: 0x96, hi: 0xa6},\n\t{value: 0x0188, lo: 0xa7, hi: 0xa7},\n\t{value: 0x01a6, lo: 0xa8, hi: 0xae},\n\t{value: 0x045f, lo: 0xaf, hi: 0xaf},\n\t{value: 0x01bb, lo: 0xb0, hi: 0xbf},\n\t// Block 0x9c, offset 0x33b\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x01eb, lo: 0x80, hi: 0x88},\n\t{value: 0x045b, lo: 0x89, hi: 0x89},\n\t{value: 0x01c7, lo: 0x8a, hi: 0x8a},\n\t{value: 0x01d0, lo: 0x8b, hi: 0x8b},\n\t{value: 0x01d6, lo: 0x8c, hi: 0x8c},\n\t{value: 0x01fa, lo: 0x8d, hi: 0x8d},\n\t{value: 0x01eb, lo: 0x8e, hi: 0x8e},\n\t{value: 0x01e8, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0173, lo: 0x90, hi: 0xa0},\n\t{value: 0x0188, lo: 0xa1, hi: 0xa1},\n\t{value: 0x01a6, lo: 0xa2, hi: 0xa8},\n\t{value: 0x045f, lo: 0xa9, hi: 0xa9},\n\t{value: 0x01bb, lo: 0xaa, hi: 0xbf},\n\t// Block 0x9d, offset 0x349\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0x80, hi: 0x86},\n\t{value: 0x8132, lo: 0x88, hi: 0x98},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa1},\n\t{value: 0x8132, lo: 0xa3, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa6, hi: 0xaa},\n\t// Block 0x9e, offset 0x34f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xac, hi: 0xaf},\n\t// Block 0x9f, offset 0x351\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x90, hi: 0x96},\n\t// Block 0xa0, offset 0x353\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x84, hi: 0x89},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0xa1, offset 0x356\n\t{value: 0x0002, lo: 0x0a},\n\t{value: 0x0063, lo: 0x80, hi: 0x89},\n\t{value: 0x1951, lo: 0x8a, hi: 0x8a},\n\t{value: 0x1984, lo: 0x8b, hi: 0x8b},\n\t{value: 0x199f, lo: 0x8c, hi: 0x8c},\n\t{value: 0x19a5, lo: 0x8d, hi: 0x8d},\n\t{value: 0x1bc3, lo: 0x8e, hi: 0x8e},\n\t{value: 0x19b1, lo: 0x8f, hi: 0x8f},\n\t{value: 0x197b, lo: 0xaa, hi: 0xaa},\n\t{value: 0x197e, lo: 0xab, hi: 0xab},\n\t{value: 0x1981, lo: 0xac, hi: 0xac},\n\t// Block 0xa2, offset 0x361\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x193f, lo: 0x90, hi: 0x90},\n\t// Block 0xa3, offset 0x363\n\t{value: 0x0028, lo: 0x09},\n\t{value: 0x2865, lo: 0x80, hi: 0x80},\n\t{value: 0x2829, lo: 0x81, hi: 0x81},\n\t{value: 0x2833, lo: 0x82, hi: 0x82},\n\t{value: 0x2847, lo: 0x83, hi: 0x84},\n\t{value: 0x2851, lo: 0x85, hi: 0x86},\n\t{value: 0x283d, lo: 0x87, hi: 0x87},\n\t{value: 0x285b, lo: 0x88, hi: 0x88},\n\t{value: 0x0b6f, lo: 0x90, hi: 0x90},\n\t{value: 0x08e7, lo: 0x91, hi: 0x91},\n}\n\n// recompMap: 7520 bytes (entries only)\nvar recompMap map[uint32]rune\nvar recompMapOnce sync.Once\n\nconst recompMapPacked = \"\" +\n\t\"\\x00A\\x03\\x00\\x00\\x00\\x00\\xc0\" + // 0x00410300: 0x000000C0\n\t\"\\x00A\\x03\\x01\\x00\\x00\\x00\\xc1\" + // 0x00410301: 0x000000C1\n\t\"\\x00A\\x03\\x02\\x00\\x00\\x00\\xc2\" + // 0x00410302: 0x000000C2\n\t\"\\x00A\\x03\\x03\\x00\\x00\\x00\\xc3\" + // 0x00410303: 0x000000C3\n\t\"\\x00A\\x03\\b\\x00\\x00\\x00\\xc4\" + // 0x00410308: 0x000000C4\n\t\"\\x00A\\x03\\n\\x00\\x00\\x00\\xc5\" + // 0x0041030A: 0x000000C5\n\t\"\\x00C\\x03'\\x00\\x00\\x00\\xc7\" + // 0x00430327: 0x000000C7\n\t\"\\x00E\\x03\\x00\\x00\\x00\\x00\\xc8\" + // 0x00450300: 0x000000C8\n\t\"\\x00E\\x03\\x01\\x00\\x00\\x00\\xc9\" + // 0x00450301: 0x000000C9\n\t\"\\x00E\\x03\\x02\\x00\\x00\\x00\\xca\" + // 0x00450302: 0x000000CA\n\t\"\\x00E\\x03\\b\\x00\\x00\\x00\\xcb\" + // 0x00450308: 0x000000CB\n\t\"\\x00I\\x03\\x00\\x00\\x00\\x00\\xcc\" + // 0x00490300: 0x000000CC\n\t\"\\x00I\\x03\\x01\\x00\\x00\\x00\\xcd\" + // 0x00490301: 0x000000CD\n\t\"\\x00I\\x03\\x02\\x00\\x00\\x00\\xce\" + // 0x00490302: 0x000000CE\n\t\"\\x00I\\x03\\b\\x00\\x00\\x00\\xcf\" + // 0x00490308: 0x000000CF\n\t\"\\x00N\\x03\\x03\\x00\\x00\\x00\\xd1\" + // 0x004E0303: 0x000000D1\n\t\"\\x00O\\x03\\x00\\x00\\x00\\x00\\xd2\" + // 0x004F0300: 0x000000D2\n\t\"\\x00O\\x03\\x01\\x00\\x00\\x00\\xd3\" + // 0x004F0301: 0x000000D3\n\t\"\\x00O\\x03\\x02\\x00\\x00\\x00\\xd4\" + // 0x004F0302: 0x000000D4\n\t\"\\x00O\\x03\\x03\\x00\\x00\\x00\\xd5\" + // 0x004F0303: 0x000000D5\n\t\"\\x00O\\x03\\b\\x00\\x00\\x00\\xd6\" + // 0x004F0308: 0x000000D6\n\t\"\\x00U\\x03\\x00\\x00\\x00\\x00\\xd9\" + // 0x00550300: 0x000000D9\n\t\"\\x00U\\x03\\x01\\x00\\x00\\x00\\xda\" + // 0x00550301: 0x000000DA\n\t\"\\x00U\\x03\\x02\\x00\\x00\\x00\\xdb\" + // 0x00550302: 0x000000DB\n\t\"\\x00U\\x03\\b\\x00\\x00\\x00\\xdc\" + // 0x00550308: 0x000000DC\n\t\"\\x00Y\\x03\\x01\\x00\\x00\\x00\\xdd\" + // 0x00590301: 0x000000DD\n\t\"\\x00a\\x03\\x00\\x00\\x00\\x00\\xe0\" + // 0x00610300: 0x000000E0\n\t\"\\x00a\\x03\\x01\\x00\\x00\\x00\\xe1\" + // 0x00610301: 0x000000E1\n\t\"\\x00a\\x03\\x02\\x00\\x00\\x00\\xe2\" + // 0x00610302: 0x000000E2\n\t\"\\x00a\\x03\\x03\\x00\\x00\\x00\\xe3\" + // 0x00610303: 0x000000E3\n\t\"\\x00a\\x03\\b\\x00\\x00\\x00\\xe4\" + // 0x00610308: 0x000000E4\n\t\"\\x00a\\x03\\n\\x00\\x00\\x00\\xe5\" + // 0x0061030A: 0x000000E5\n\t\"\\x00c\\x03'\\x00\\x00\\x00\\xe7\" + // 0x00630327: 0x000000E7\n\t\"\\x00e\\x03\\x00\\x00\\x00\\x00\\xe8\" + // 0x00650300: 0x000000E8\n\t\"\\x00e\\x03\\x01\\x00\\x00\\x00\\xe9\" + // 0x00650301: 0x000000E9\n\t\"\\x00e\\x03\\x02\\x00\\x00\\x00\\xea\" + // 0x00650302: 0x000000EA\n\t\"\\x00e\\x03\\b\\x00\\x00\\x00\\xeb\" + // 0x00650308: 0x000000EB\n\t\"\\x00i\\x03\\x00\\x00\\x00\\x00\\xec\" + // 0x00690300: 0x000000EC\n\t\"\\x00i\\x03\\x01\\x00\\x00\\x00\\xed\" + // 0x00690301: 0x000000ED\n\t\"\\x00i\\x03\\x02\\x00\\x00\\x00\\xee\" + // 0x00690302: 0x000000EE\n\t\"\\x00i\\x03\\b\\x00\\x00\\x00\\xef\" + // 0x00690308: 0x000000EF\n\t\"\\x00n\\x03\\x03\\x00\\x00\\x00\\xf1\" + // 0x006E0303: 0x000000F1\n\t\"\\x00o\\x03\\x00\\x00\\x00\\x00\\xf2\" + // 0x006F0300: 0x000000F2\n\t\"\\x00o\\x03\\x01\\x00\\x00\\x00\\xf3\" + // 0x006F0301: 0x000000F3\n\t\"\\x00o\\x03\\x02\\x00\\x00\\x00\\xf4\" + // 0x006F0302: 0x000000F4\n\t\"\\x00o\\x03\\x03\\x00\\x00\\x00\\xf5\" + // 0x006F0303: 0x000000F5\n\t\"\\x00o\\x03\\b\\x00\\x00\\x00\\xf6\" + // 0x006F0308: 0x000000F6\n\t\"\\x00u\\x03\\x00\\x00\\x00\\x00\\xf9\" + // 0x00750300: 0x000000F9\n\t\"\\x00u\\x03\\x01\\x00\\x00\\x00\\xfa\" + // 0x00750301: 0x000000FA\n\t\"\\x00u\\x03\\x02\\x00\\x00\\x00\\xfb\" + // 0x00750302: 0x000000FB\n\t\"\\x00u\\x03\\b\\x00\\x00\\x00\\xfc\" + // 0x00750308: 0x000000FC\n\t\"\\x00y\\x03\\x01\\x00\\x00\\x00\\xfd\" + // 0x00790301: 0x000000FD\n\t\"\\x00y\\x03\\b\\x00\\x00\\x00\\xff\" + // 0x00790308: 0x000000FF\n\t\"\\x00A\\x03\\x04\\x00\\x00\\x01\\x00\" + // 0x00410304: 0x00000100\n\t\"\\x00a\\x03\\x04\\x00\\x00\\x01\\x01\" + // 0x00610304: 0x00000101\n\t\"\\x00A\\x03\\x06\\x00\\x00\\x01\\x02\" + // 0x00410306: 0x00000102\n\t\"\\x00a\\x03\\x06\\x00\\x00\\x01\\x03\" + // 0x00610306: 0x00000103\n\t\"\\x00A\\x03(\\x00\\x00\\x01\\x04\" + // 0x00410328: 0x00000104\n\t\"\\x00a\\x03(\\x00\\x00\\x01\\x05\" + // 0x00610328: 0x00000105\n\t\"\\x00C\\x03\\x01\\x00\\x00\\x01\\x06\" + // 0x00430301: 0x00000106\n\t\"\\x00c\\x03\\x01\\x00\\x00\\x01\\a\" + // 0x00630301: 0x00000107\n\t\"\\x00C\\x03\\x02\\x00\\x00\\x01\\b\" + // 0x00430302: 0x00000108\n\t\"\\x00c\\x03\\x02\\x00\\x00\\x01\\t\" + // 0x00630302: 0x00000109\n\t\"\\x00C\\x03\\a\\x00\\x00\\x01\\n\" + // 0x00430307: 0x0000010A\n\t\"\\x00c\\x03\\a\\x00\\x00\\x01\\v\" + // 0x00630307: 0x0000010B\n\t\"\\x00C\\x03\\f\\x00\\x00\\x01\\f\" + // 0x0043030C: 0x0000010C\n\t\"\\x00c\\x03\\f\\x00\\x00\\x01\\r\" + // 0x0063030C: 0x0000010D\n\t\"\\x00D\\x03\\f\\x00\\x00\\x01\\x0e\" + // 0x0044030C: 0x0000010E\n\t\"\\x00d\\x03\\f\\x00\\x00\\x01\\x0f\" + // 0x0064030C: 0x0000010F\n\t\"\\x00E\\x03\\x04\\x00\\x00\\x01\\x12\" + // 0x00450304: 0x00000112\n\t\"\\x00e\\x03\\x04\\x00\\x00\\x01\\x13\" + // 0x00650304: 0x00000113\n\t\"\\x00E\\x03\\x06\\x00\\x00\\x01\\x14\" + // 0x00450306: 0x00000114\n\t\"\\x00e\\x03\\x06\\x00\\x00\\x01\\x15\" + // 0x00650306: 0x00000115\n\t\"\\x00E\\x03\\a\\x00\\x00\\x01\\x16\" + // 0x00450307: 0x00000116\n\t\"\\x00e\\x03\\a\\x00\\x00\\x01\\x17\" + // 0x00650307: 0x00000117\n\t\"\\x00E\\x03(\\x00\\x00\\x01\\x18\" + // 0x00450328: 0x00000118\n\t\"\\x00e\\x03(\\x00\\x00\\x01\\x19\" + // 0x00650328: 0x00000119\n\t\"\\x00E\\x03\\f\\x00\\x00\\x01\\x1a\" + // 0x0045030C: 0x0000011A\n\t\"\\x00e\\x03\\f\\x00\\x00\\x01\\x1b\" + // 0x0065030C: 0x0000011B\n\t\"\\x00G\\x03\\x02\\x00\\x00\\x01\\x1c\" + // 0x00470302: 0x0000011C\n\t\"\\x00g\\x03\\x02\\x00\\x00\\x01\\x1d\" + // 0x00670302: 0x0000011D\n\t\"\\x00G\\x03\\x06\\x00\\x00\\x01\\x1e\" + // 0x00470306: 0x0000011E\n\t\"\\x00g\\x03\\x06\\x00\\x00\\x01\\x1f\" + // 0x00670306: 0x0000011F\n\t\"\\x00G\\x03\\a\\x00\\x00\\x01 \" + // 0x00470307: 0x00000120\n\t\"\\x00g\\x03\\a\\x00\\x00\\x01!\" + // 0x00670307: 0x00000121\n\t\"\\x00G\\x03'\\x00\\x00\\x01\\\"\" + // 0x00470327: 0x00000122\n\t\"\\x00g\\x03'\\x00\\x00\\x01#\" + // 0x00670327: 0x00000123\n\t\"\\x00H\\x03\\x02\\x00\\x00\\x01$\" + // 0x00480302: 0x00000124\n\t\"\\x00h\\x03\\x02\\x00\\x00\\x01%\" + // 0x00680302: 0x00000125\n\t\"\\x00I\\x03\\x03\\x00\\x00\\x01(\" + // 0x00490303: 0x00000128\n\t\"\\x00i\\x03\\x03\\x00\\x00\\x01)\" + // 0x00690303: 0x00000129\n\t\"\\x00I\\x03\\x04\\x00\\x00\\x01*\" + // 0x00490304: 0x0000012A\n\t\"\\x00i\\x03\\x04\\x00\\x00\\x01+\" + // 0x00690304: 0x0000012B\n\t\"\\x00I\\x03\\x06\\x00\\x00\\x01,\" + // 0x00490306: 0x0000012C\n\t\"\\x00i\\x03\\x06\\x00\\x00\\x01-\" + // 0x00690306: 0x0000012D\n\t\"\\x00I\\x03(\\x00\\x00\\x01.\" + // 0x00490328: 0x0000012E\n\t\"\\x00i\\x03(\\x00\\x00\\x01/\" + // 0x00690328: 0x0000012F\n\t\"\\x00I\\x03\\a\\x00\\x00\\x010\" + // 0x00490307: 0x00000130\n\t\"\\x00J\\x03\\x02\\x00\\x00\\x014\" + // 0x004A0302: 0x00000134\n\t\"\\x00j\\x03\\x02\\x00\\x00\\x015\" + // 0x006A0302: 0x00000135\n\t\"\\x00K\\x03'\\x00\\x00\\x016\" + // 0x004B0327: 0x00000136\n\t\"\\x00k\\x03'\\x00\\x00\\x017\" + // 0x006B0327: 0x00000137\n\t\"\\x00L\\x03\\x01\\x00\\x00\\x019\" + // 0x004C0301: 0x00000139\n\t\"\\x00l\\x03\\x01\\x00\\x00\\x01:\" + // 0x006C0301: 0x0000013A\n\t\"\\x00L\\x03'\\x00\\x00\\x01;\" + // 0x004C0327: 0x0000013B\n\t\"\\x00l\\x03'\\x00\\x00\\x01<\" + // 0x006C0327: 0x0000013C\n\t\"\\x00L\\x03\\f\\x00\\x00\\x01=\" + // 0x004C030C: 0x0000013D\n\t\"\\x00l\\x03\\f\\x00\\x00\\x01>\" + // 0x006C030C: 0x0000013E\n\t\"\\x00N\\x03\\x01\\x00\\x00\\x01C\" + // 0x004E0301: 0x00000143\n\t\"\\x00n\\x03\\x01\\x00\\x00\\x01D\" + // 0x006E0301: 0x00000144\n\t\"\\x00N\\x03'\\x00\\x00\\x01E\" + // 0x004E0327: 0x00000145\n\t\"\\x00n\\x03'\\x00\\x00\\x01F\" + // 0x006E0327: 0x00000146\n\t\"\\x00N\\x03\\f\\x00\\x00\\x01G\" + // 0x004E030C: 0x00000147\n\t\"\\x00n\\x03\\f\\x00\\x00\\x01H\" + // 0x006E030C: 0x00000148\n\t\"\\x00O\\x03\\x04\\x00\\x00\\x01L\" + // 0x004F0304: 0x0000014C\n\t\"\\x00o\\x03\\x04\\x00\\x00\\x01M\" + // 0x006F0304: 0x0000014D\n\t\"\\x00O\\x03\\x06\\x00\\x00\\x01N\" + // 0x004F0306: 0x0000014E\n\t\"\\x00o\\x03\\x06\\x00\\x00\\x01O\" + // 0x006F0306: 0x0000014F\n\t\"\\x00O\\x03\\v\\x00\\x00\\x01P\" + // 0x004F030B: 0x00000150\n\t\"\\x00o\\x03\\v\\x00\\x00\\x01Q\" + // 0x006F030B: 0x00000151\n\t\"\\x00R\\x03\\x01\\x00\\x00\\x01T\" + // 0x00520301: 0x00000154\n\t\"\\x00r\\x03\\x01\\x00\\x00\\x01U\" + // 0x00720301: 0x00000155\n\t\"\\x00R\\x03'\\x00\\x00\\x01V\" + // 0x00520327: 0x00000156\n\t\"\\x00r\\x03'\\x00\\x00\\x01W\" + // 0x00720327: 0x00000157\n\t\"\\x00R\\x03\\f\\x00\\x00\\x01X\" + // 0x0052030C: 0x00000158\n\t\"\\x00r\\x03\\f\\x00\\x00\\x01Y\" + // 0x0072030C: 0x00000159\n\t\"\\x00S\\x03\\x01\\x00\\x00\\x01Z\" + // 0x00530301: 0x0000015A\n\t\"\\x00s\\x03\\x01\\x00\\x00\\x01[\" + // 0x00730301: 0x0000015B\n\t\"\\x00S\\x03\\x02\\x00\\x00\\x01\\\\\" + // 0x00530302: 0x0000015C\n\t\"\\x00s\\x03\\x02\\x00\\x00\\x01]\" + // 0x00730302: 0x0000015D\n\t\"\\x00S\\x03'\\x00\\x00\\x01^\" + // 0x00530327: 0x0000015E\n\t\"\\x00s\\x03'\\x00\\x00\\x01_\" + // 0x00730327: 0x0000015F\n\t\"\\x00S\\x03\\f\\x00\\x00\\x01`\" + // 0x0053030C: 0x00000160\n\t\"\\x00s\\x03\\f\\x00\\x00\\x01a\" + // 0x0073030C: 0x00000161\n\t\"\\x00T\\x03'\\x00\\x00\\x01b\" + // 0x00540327: 0x00000162\n\t\"\\x00t\\x03'\\x00\\x00\\x01c\" + // 0x00740327: 0x00000163\n\t\"\\x00T\\x03\\f\\x00\\x00\\x01d\" + // 0x0054030C: 0x00000164\n\t\"\\x00t\\x03\\f\\x00\\x00\\x01e\" + // 0x0074030C: 0x00000165\n\t\"\\x00U\\x03\\x03\\x00\\x00\\x01h\" + // 0x00550303: 0x00000168\n\t\"\\x00u\\x03\\x03\\x00\\x00\\x01i\" + // 0x00750303: 0x00000169\n\t\"\\x00U\\x03\\x04\\x00\\x00\\x01j\" + // 0x00550304: 0x0000016A\n\t\"\\x00u\\x03\\x04\\x00\\x00\\x01k\" + // 0x00750304: 0x0000016B\n\t\"\\x00U\\x03\\x06\\x00\\x00\\x01l\" + // 0x00550306: 0x0000016C\n\t\"\\x00u\\x03\\x06\\x00\\x00\\x01m\" + // 0x00750306: 0x0000016D\n\t\"\\x00U\\x03\\n\\x00\\x00\\x01n\" + // 0x0055030A: 0x0000016E\n\t\"\\x00u\\x03\\n\\x00\\x00\\x01o\" + // 0x0075030A: 0x0000016F\n\t\"\\x00U\\x03\\v\\x00\\x00\\x01p\" + // 0x0055030B: 0x00000170\n\t\"\\x00u\\x03\\v\\x00\\x00\\x01q\" + // 0x0075030B: 0x00000171\n\t\"\\x00U\\x03(\\x00\\x00\\x01r\" + // 0x00550328: 0x00000172\n\t\"\\x00u\\x03(\\x00\\x00\\x01s\" + // 0x00750328: 0x00000173\n\t\"\\x00W\\x03\\x02\\x00\\x00\\x01t\" + // 0x00570302: 0x00000174\n\t\"\\x00w\\x03\\x02\\x00\\x00\\x01u\" + // 0x00770302: 0x00000175\n\t\"\\x00Y\\x03\\x02\\x00\\x00\\x01v\" + // 0x00590302: 0x00000176\n\t\"\\x00y\\x03\\x02\\x00\\x00\\x01w\" + // 0x00790302: 0x00000177\n\t\"\\x00Y\\x03\\b\\x00\\x00\\x01x\" + // 0x00590308: 0x00000178\n\t\"\\x00Z\\x03\\x01\\x00\\x00\\x01y\" + // 0x005A0301: 0x00000179\n\t\"\\x00z\\x03\\x01\\x00\\x00\\x01z\" + // 0x007A0301: 0x0000017A\n\t\"\\x00Z\\x03\\a\\x00\\x00\\x01{\" + // 0x005A0307: 0x0000017B\n\t\"\\x00z\\x03\\a\\x00\\x00\\x01|\" + // 0x007A0307: 0x0000017C\n\t\"\\x00Z\\x03\\f\\x00\\x00\\x01}\" + // 0x005A030C: 0x0000017D\n\t\"\\x00z\\x03\\f\\x00\\x00\\x01~\" + // 0x007A030C: 0x0000017E\n\t\"\\x00O\\x03\\x1b\\x00\\x00\\x01\\xa0\" + // 0x004F031B: 0x000001A0\n\t\"\\x00o\\x03\\x1b\\x00\\x00\\x01\\xa1\" + // 0x006F031B: 0x000001A1\n\t\"\\x00U\\x03\\x1b\\x00\\x00\\x01\\xaf\" + // 0x0055031B: 0x000001AF\n\t\"\\x00u\\x03\\x1b\\x00\\x00\\x01\\xb0\" + // 0x0075031B: 0x000001B0\n\t\"\\x00A\\x03\\f\\x00\\x00\\x01\\xcd\" + // 0x0041030C: 0x000001CD\n\t\"\\x00a\\x03\\f\\x00\\x00\\x01\\xce\" + // 0x0061030C: 0x000001CE\n\t\"\\x00I\\x03\\f\\x00\\x00\\x01\\xcf\" + // 0x0049030C: 0x000001CF\n\t\"\\x00i\\x03\\f\\x00\\x00\\x01\\xd0\" + // 0x0069030C: 0x000001D0\n\t\"\\x00O\\x03\\f\\x00\\x00\\x01\\xd1\" + // 0x004F030C: 0x000001D1\n\t\"\\x00o\\x03\\f\\x00\\x00\\x01\\xd2\" + // 0x006F030C: 0x000001D2\n\t\"\\x00U\\x03\\f\\x00\\x00\\x01\\xd3\" + // 0x0055030C: 0x000001D3\n\t\"\\x00u\\x03\\f\\x00\\x00\\x01\\xd4\" + // 0x0075030C: 0x000001D4\n\t\"\\x00\\xdc\\x03\\x04\\x00\\x00\\x01\\xd5\" + // 0x00DC0304: 0x000001D5\n\t\"\\x00\\xfc\\x03\\x04\\x00\\x00\\x01\\xd6\" + // 0x00FC0304: 0x000001D6\n\t\"\\x00\\xdc\\x03\\x01\\x00\\x00\\x01\\xd7\" + // 0x00DC0301: 0x000001D7\n\t\"\\x00\\xfc\\x03\\x01\\x00\\x00\\x01\\xd8\" + // 0x00FC0301: 0x000001D8\n\t\"\\x00\\xdc\\x03\\f\\x00\\x00\\x01\\xd9\" + // 0x00DC030C: 0x000001D9\n\t\"\\x00\\xfc\\x03\\f\\x00\\x00\\x01\\xda\" + // 0x00FC030C: 0x000001DA\n\t\"\\x00\\xdc\\x03\\x00\\x00\\x00\\x01\\xdb\" + // 0x00DC0300: 0x000001DB\n\t\"\\x00\\xfc\\x03\\x00\\x00\\x00\\x01\\xdc\" + // 0x00FC0300: 0x000001DC\n\t\"\\x00\\xc4\\x03\\x04\\x00\\x00\\x01\\xde\" + // 0x00C40304: 0x000001DE\n\t\"\\x00\\xe4\\x03\\x04\\x00\\x00\\x01\\xdf\" + // 0x00E40304: 0x000001DF\n\t\"\\x02&\\x03\\x04\\x00\\x00\\x01\\xe0\" + // 0x02260304: 0x000001E0\n\t\"\\x02'\\x03\\x04\\x00\\x00\\x01\\xe1\" + // 0x02270304: 0x000001E1\n\t\"\\x00\\xc6\\x03\\x04\\x00\\x00\\x01\\xe2\" + // 0x00C60304: 0x000001E2\n\t\"\\x00\\xe6\\x03\\x04\\x00\\x00\\x01\\xe3\" + // 0x00E60304: 0x000001E3\n\t\"\\x00G\\x03\\f\\x00\\x00\\x01\\xe6\" + // 0x0047030C: 0x000001E6\n\t\"\\x00g\\x03\\f\\x00\\x00\\x01\\xe7\" + // 0x0067030C: 0x000001E7\n\t\"\\x00K\\x03\\f\\x00\\x00\\x01\\xe8\" + // 0x004B030C: 0x000001E8\n\t\"\\x00k\\x03\\f\\x00\\x00\\x01\\xe9\" + // 0x006B030C: 0x000001E9\n\t\"\\x00O\\x03(\\x00\\x00\\x01\\xea\" + // 0x004F0328: 0x000001EA\n\t\"\\x00o\\x03(\\x00\\x00\\x01\\xeb\" + // 0x006F0328: 0x000001EB\n\t\"\\x01\\xea\\x03\\x04\\x00\\x00\\x01\\xec\" + // 0x01EA0304: 0x000001EC\n\t\"\\x01\\xeb\\x03\\x04\\x00\\x00\\x01\\xed\" + // 0x01EB0304: 0x000001ED\n\t\"\\x01\\xb7\\x03\\f\\x00\\x00\\x01\\xee\" + // 0x01B7030C: 0x000001EE\n\t\"\\x02\\x92\\x03\\f\\x00\\x00\\x01\\xef\" + // 0x0292030C: 0x000001EF\n\t\"\\x00j\\x03\\f\\x00\\x00\\x01\\xf0\" + // 0x006A030C: 0x000001F0\n\t\"\\x00G\\x03\\x01\\x00\\x00\\x01\\xf4\" + // 0x00470301: 0x000001F4\n\t\"\\x00g\\x03\\x01\\x00\\x00\\x01\\xf5\" + // 0x00670301: 0x000001F5\n\t\"\\x00N\\x03\\x00\\x00\\x00\\x01\\xf8\" + // 0x004E0300: 0x000001F8\n\t\"\\x00n\\x03\\x00\\x00\\x00\\x01\\xf9\" + // 0x006E0300: 0x000001F9\n\t\"\\x00\\xc5\\x03\\x01\\x00\\x00\\x01\\xfa\" + // 0x00C50301: 0x000001FA\n\t\"\\x00\\xe5\\x03\\x01\\x00\\x00\\x01\\xfb\" + // 0x00E50301: 0x000001FB\n\t\"\\x00\\xc6\\x03\\x01\\x00\\x00\\x01\\xfc\" + // 0x00C60301: 0x000001FC\n\t\"\\x00\\xe6\\x03\\x01\\x00\\x00\\x01\\xfd\" + // 0x00E60301: 0x000001FD\n\t\"\\x00\\xd8\\x03\\x01\\x00\\x00\\x01\\xfe\" + // 0x00D80301: 0x000001FE\n\t\"\\x00\\xf8\\x03\\x01\\x00\\x00\\x01\\xff\" + // 0x00F80301: 0x000001FF\n\t\"\\x00A\\x03\\x0f\\x00\\x00\\x02\\x00\" + // 0x0041030F: 0x00000200\n\t\"\\x00a\\x03\\x0f\\x00\\x00\\x02\\x01\" + // 0x0061030F: 0x00000201\n\t\"\\x00A\\x03\\x11\\x00\\x00\\x02\\x02\" + // 0x00410311: 0x00000202\n\t\"\\x00a\\x03\\x11\\x00\\x00\\x02\\x03\" + // 0x00610311: 0x00000203\n\t\"\\x00E\\x03\\x0f\\x00\\x00\\x02\\x04\" + // 0x0045030F: 0x00000204\n\t\"\\x00e\\x03\\x0f\\x00\\x00\\x02\\x05\" + // 0x0065030F: 0x00000205\n\t\"\\x00E\\x03\\x11\\x00\\x00\\x02\\x06\" + // 0x00450311: 0x00000206\n\t\"\\x00e\\x03\\x11\\x00\\x00\\x02\\a\" + // 0x00650311: 0x00000207\n\t\"\\x00I\\x03\\x0f\\x00\\x00\\x02\\b\" + // 0x0049030F: 0x00000208\n\t\"\\x00i\\x03\\x0f\\x00\\x00\\x02\\t\" + // 0x0069030F: 0x00000209\n\t\"\\x00I\\x03\\x11\\x00\\x00\\x02\\n\" + // 0x00490311: 0x0000020A\n\t\"\\x00i\\x03\\x11\\x00\\x00\\x02\\v\" + // 0x00690311: 0x0000020B\n\t\"\\x00O\\x03\\x0f\\x00\\x00\\x02\\f\" + // 0x004F030F: 0x0000020C\n\t\"\\x00o\\x03\\x0f\\x00\\x00\\x02\\r\" + // 0x006F030F: 0x0000020D\n\t\"\\x00O\\x03\\x11\\x00\\x00\\x02\\x0e\" + // 0x004F0311: 0x0000020E\n\t\"\\x00o\\x03\\x11\\x00\\x00\\x02\\x0f\" + // 0x006F0311: 0x0000020F\n\t\"\\x00R\\x03\\x0f\\x00\\x00\\x02\\x10\" + // 0x0052030F: 0x00000210\n\t\"\\x00r\\x03\\x0f\\x00\\x00\\x02\\x11\" + // 0x0072030F: 0x00000211\n\t\"\\x00R\\x03\\x11\\x00\\x00\\x02\\x12\" + // 0x00520311: 0x00000212\n\t\"\\x00r\\x03\\x11\\x00\\x00\\x02\\x13\" + // 0x00720311: 0x00000213\n\t\"\\x00U\\x03\\x0f\\x00\\x00\\x02\\x14\" + // 0x0055030F: 0x00000214\n\t\"\\x00u\\x03\\x0f\\x00\\x00\\x02\\x15\" + // 0x0075030F: 0x00000215\n\t\"\\x00U\\x03\\x11\\x00\\x00\\x02\\x16\" + // 0x00550311: 0x00000216\n\t\"\\x00u\\x03\\x11\\x00\\x00\\x02\\x17\" + // 0x00750311: 0x00000217\n\t\"\\x00S\\x03&\\x00\\x00\\x02\\x18\" + // 0x00530326: 0x00000218\n\t\"\\x00s\\x03&\\x00\\x00\\x02\\x19\" + // 0x00730326: 0x00000219\n\t\"\\x00T\\x03&\\x00\\x00\\x02\\x1a\" + // 0x00540326: 0x0000021A\n\t\"\\x00t\\x03&\\x00\\x00\\x02\\x1b\" + // 0x00740326: 0x0000021B\n\t\"\\x00H\\x03\\f\\x00\\x00\\x02\\x1e\" + // 0x0048030C: 0x0000021E\n\t\"\\x00h\\x03\\f\\x00\\x00\\x02\\x1f\" + // 0x0068030C: 0x0000021F\n\t\"\\x00A\\x03\\a\\x00\\x00\\x02&\" + // 0x00410307: 0x00000226\n\t\"\\x00a\\x03\\a\\x00\\x00\\x02'\" + // 0x00610307: 0x00000227\n\t\"\\x00E\\x03'\\x00\\x00\\x02(\" + // 0x00450327: 0x00000228\n\t\"\\x00e\\x03'\\x00\\x00\\x02)\" + // 0x00650327: 0x00000229\n\t\"\\x00\\xd6\\x03\\x04\\x00\\x00\\x02*\" + // 0x00D60304: 0x0000022A\n\t\"\\x00\\xf6\\x03\\x04\\x00\\x00\\x02+\" + // 0x00F60304: 0x0000022B\n\t\"\\x00\\xd5\\x03\\x04\\x00\\x00\\x02,\" + // 0x00D50304: 0x0000022C\n\t\"\\x00\\xf5\\x03\\x04\\x00\\x00\\x02-\" + // 0x00F50304: 0x0000022D\n\t\"\\x00O\\x03\\a\\x00\\x00\\x02.\" + // 0x004F0307: 0x0000022E\n\t\"\\x00o\\x03\\a\\x00\\x00\\x02/\" + // 0x006F0307: 0x0000022F\n\t\"\\x02.\\x03\\x04\\x00\\x00\\x020\" + // 0x022E0304: 0x00000230\n\t\"\\x02/\\x03\\x04\\x00\\x00\\x021\" + // 0x022F0304: 0x00000231\n\t\"\\x00Y\\x03\\x04\\x00\\x00\\x022\" + // 0x00590304: 0x00000232\n\t\"\\x00y\\x03\\x04\\x00\\x00\\x023\" + // 0x00790304: 0x00000233\n\t\"\\x00\\xa8\\x03\\x01\\x00\\x00\\x03\\x85\" + // 0x00A80301: 0x00000385\n\t\"\\x03\\x91\\x03\\x01\\x00\\x00\\x03\\x86\" + // 0x03910301: 0x00000386\n\t\"\\x03\\x95\\x03\\x01\\x00\\x00\\x03\\x88\" + // 0x03950301: 0x00000388\n\t\"\\x03\\x97\\x03\\x01\\x00\\x00\\x03\\x89\" + // 0x03970301: 0x00000389\n\t\"\\x03\\x99\\x03\\x01\\x00\\x00\\x03\\x8a\" + // 0x03990301: 0x0000038A\n\t\"\\x03\\x9f\\x03\\x01\\x00\\x00\\x03\\x8c\" + // 0x039F0301: 0x0000038C\n\t\"\\x03\\xa5\\x03\\x01\\x00\\x00\\x03\\x8e\" + // 0x03A50301: 0x0000038E\n\t\"\\x03\\xa9\\x03\\x01\\x00\\x00\\x03\\x8f\" + // 0x03A90301: 0x0000038F\n\t\"\\x03\\xca\\x03\\x01\\x00\\x00\\x03\\x90\" + // 0x03CA0301: 0x00000390\n\t\"\\x03\\x99\\x03\\b\\x00\\x00\\x03\\xaa\" + // 0x03990308: 0x000003AA\n\t\"\\x03\\xa5\\x03\\b\\x00\\x00\\x03\\xab\" + // 0x03A50308: 0x000003AB\n\t\"\\x03\\xb1\\x03\\x01\\x00\\x00\\x03\\xac\" + // 0x03B10301: 0x000003AC\n\t\"\\x03\\xb5\\x03\\x01\\x00\\x00\\x03\\xad\" + // 0x03B50301: 0x000003AD\n\t\"\\x03\\xb7\\x03\\x01\\x00\\x00\\x03\\xae\" + // 0x03B70301: 0x000003AE\n\t\"\\x03\\xb9\\x03\\x01\\x00\\x00\\x03\\xaf\" + // 0x03B90301: 0x000003AF\n\t\"\\x03\\xcb\\x03\\x01\\x00\\x00\\x03\\xb0\" + // 0x03CB0301: 0x000003B0\n\t\"\\x03\\xb9\\x03\\b\\x00\\x00\\x03\\xca\" + // 0x03B90308: 0x000003CA\n\t\"\\x03\\xc5\\x03\\b\\x00\\x00\\x03\\xcb\" + // 0x03C50308: 0x000003CB\n\t\"\\x03\\xbf\\x03\\x01\\x00\\x00\\x03\\xcc\" + // 0x03BF0301: 0x000003CC\n\t\"\\x03\\xc5\\x03\\x01\\x00\\x00\\x03\\xcd\" + // 0x03C50301: 0x000003CD\n\t\"\\x03\\xc9\\x03\\x01\\x00\\x00\\x03\\xce\" + // 0x03C90301: 0x000003CE\n\t\"\\x03\\xd2\\x03\\x01\\x00\\x00\\x03\\xd3\" + // 0x03D20301: 0x000003D3\n\t\"\\x03\\xd2\\x03\\b\\x00\\x00\\x03\\xd4\" + // 0x03D20308: 0x000003D4\n\t\"\\x04\\x15\\x03\\x00\\x00\\x00\\x04\\x00\" + // 0x04150300: 0x00000400\n\t\"\\x04\\x15\\x03\\b\\x00\\x00\\x04\\x01\" + // 0x04150308: 0x00000401\n\t\"\\x04\\x13\\x03\\x01\\x00\\x00\\x04\\x03\" + // 0x04130301: 0x00000403\n\t\"\\x04\\x06\\x03\\b\\x00\\x00\\x04\\a\" + // 0x04060308: 0x00000407\n\t\"\\x04\\x1a\\x03\\x01\\x00\\x00\\x04\\f\" + // 0x041A0301: 0x0000040C\n\t\"\\x04\\x18\\x03\\x00\\x00\\x00\\x04\\r\" + // 0x04180300: 0x0000040D\n\t\"\\x04#\\x03\\x06\\x00\\x00\\x04\\x0e\" + // 0x04230306: 0x0000040E\n\t\"\\x04\\x18\\x03\\x06\\x00\\x00\\x04\\x19\" + // 0x04180306: 0x00000419\n\t\"\\x048\\x03\\x06\\x00\\x00\\x049\" + // 0x04380306: 0x00000439\n\t\"\\x045\\x03\\x00\\x00\\x00\\x04P\" + // 0x04350300: 0x00000450\n\t\"\\x045\\x03\\b\\x00\\x00\\x04Q\" + // 0x04350308: 0x00000451\n\t\"\\x043\\x03\\x01\\x00\\x00\\x04S\" + // 0x04330301: 0x00000453\n\t\"\\x04V\\x03\\b\\x00\\x00\\x04W\" + // 0x04560308: 0x00000457\n\t\"\\x04:\\x03\\x01\\x00\\x00\\x04\\\\\" + // 0x043A0301: 0x0000045C\n\t\"\\x048\\x03\\x00\\x00\\x00\\x04]\" + // 0x04380300: 0x0000045D\n\t\"\\x04C\\x03\\x06\\x00\\x00\\x04^\" + // 0x04430306: 0x0000045E\n\t\"\\x04t\\x03\\x0f\\x00\\x00\\x04v\" + // 0x0474030F: 0x00000476\n\t\"\\x04u\\x03\\x0f\\x00\\x00\\x04w\" + // 0x0475030F: 0x00000477\n\t\"\\x04\\x16\\x03\\x06\\x00\\x00\\x04\\xc1\" + // 0x04160306: 0x000004C1\n\t\"\\x046\\x03\\x06\\x00\\x00\\x04\\xc2\" + // 0x04360306: 0x000004C2\n\t\"\\x04\\x10\\x03\\x06\\x00\\x00\\x04\\xd0\" + // 0x04100306: 0x000004D0\n\t\"\\x040\\x03\\x06\\x00\\x00\\x04\\xd1\" + // 0x04300306: 0x000004D1\n\t\"\\x04\\x10\\x03\\b\\x00\\x00\\x04\\xd2\" + // 0x04100308: 0x000004D2\n\t\"\\x040\\x03\\b\\x00\\x00\\x04\\xd3\" + // 0x04300308: 0x000004D3\n\t\"\\x04\\x15\\x03\\x06\\x00\\x00\\x04\\xd6\" + // 0x04150306: 0x000004D6\n\t\"\\x045\\x03\\x06\\x00\\x00\\x04\\xd7\" + // 0x04350306: 0x000004D7\n\t\"\\x04\\xd8\\x03\\b\\x00\\x00\\x04\\xda\" + // 0x04D80308: 0x000004DA\n\t\"\\x04\\xd9\\x03\\b\\x00\\x00\\x04\\xdb\" + // 0x04D90308: 0x000004DB\n\t\"\\x04\\x16\\x03\\b\\x00\\x00\\x04\\xdc\" + // 0x04160308: 0x000004DC\n\t\"\\x046\\x03\\b\\x00\\x00\\x04\\xdd\" + // 0x04360308: 0x000004DD\n\t\"\\x04\\x17\\x03\\b\\x00\\x00\\x04\\xde\" + // 0x04170308: 0x000004DE\n\t\"\\x047\\x03\\b\\x00\\x00\\x04\\xdf\" + // 0x04370308: 0x000004DF\n\t\"\\x04\\x18\\x03\\x04\\x00\\x00\\x04\\xe2\" + // 0x04180304: 0x000004E2\n\t\"\\x048\\x03\\x04\\x00\\x00\\x04\\xe3\" + // 0x04380304: 0x000004E3\n\t\"\\x04\\x18\\x03\\b\\x00\\x00\\x04\\xe4\" + // 0x04180308: 0x000004E4\n\t\"\\x048\\x03\\b\\x00\\x00\\x04\\xe5\" + // 0x04380308: 0x000004E5\n\t\"\\x04\\x1e\\x03\\b\\x00\\x00\\x04\\xe6\" + // 0x041E0308: 0x000004E6\n\t\"\\x04>\\x03\\b\\x00\\x00\\x04\\xe7\" + // 0x043E0308: 0x000004E7\n\t\"\\x04\\xe8\\x03\\b\\x00\\x00\\x04\\xea\" + // 0x04E80308: 0x000004EA\n\t\"\\x04\\xe9\\x03\\b\\x00\\x00\\x04\\xeb\" + // 0x04E90308: 0x000004EB\n\t\"\\x04-\\x03\\b\\x00\\x00\\x04\\xec\" + // 0x042D0308: 0x000004EC\n\t\"\\x04M\\x03\\b\\x00\\x00\\x04\\xed\" + // 0x044D0308: 0x000004ED\n\t\"\\x04#\\x03\\x04\\x00\\x00\\x04\\xee\" + // 0x04230304: 0x000004EE\n\t\"\\x04C\\x03\\x04\\x00\\x00\\x04\\xef\" + // 0x04430304: 0x000004EF\n\t\"\\x04#\\x03\\b\\x00\\x00\\x04\\xf0\" + // 0x04230308: 0x000004F0\n\t\"\\x04C\\x03\\b\\x00\\x00\\x04\\xf1\" + // 0x04430308: 0x000004F1\n\t\"\\x04#\\x03\\v\\x00\\x00\\x04\\xf2\" + // 0x0423030B: 0x000004F2\n\t\"\\x04C\\x03\\v\\x00\\x00\\x04\\xf3\" + // 0x0443030B: 0x000004F3\n\t\"\\x04'\\x03\\b\\x00\\x00\\x04\\xf4\" + // 0x04270308: 0x000004F4\n\t\"\\x04G\\x03\\b\\x00\\x00\\x04\\xf5\" + // 0x04470308: 0x000004F5\n\t\"\\x04+\\x03\\b\\x00\\x00\\x04\\xf8\" + // 0x042B0308: 0x000004F8\n\t\"\\x04K\\x03\\b\\x00\\x00\\x04\\xf9\" + // 0x044B0308: 0x000004F9\n\t\"\\x06'\\x06S\\x00\\x00\\x06\\\"\" + // 0x06270653: 0x00000622\n\t\"\\x06'\\x06T\\x00\\x00\\x06#\" + // 0x06270654: 0x00000623\n\t\"\\x06H\\x06T\\x00\\x00\\x06$\" + // 0x06480654: 0x00000624\n\t\"\\x06'\\x06U\\x00\\x00\\x06%\" + // 0x06270655: 0x00000625\n\t\"\\x06J\\x06T\\x00\\x00\\x06&\" + // 0x064A0654: 0x00000626\n\t\"\\x06\\xd5\\x06T\\x00\\x00\\x06\\xc0\" + // 0x06D50654: 0x000006C0\n\t\"\\x06\\xc1\\x06T\\x00\\x00\\x06\\xc2\" + // 0x06C10654: 0x000006C2\n\t\"\\x06\\xd2\\x06T\\x00\\x00\\x06\\xd3\" + // 0x06D20654: 0x000006D3\n\t\"\\t(\\t<\\x00\\x00\\t)\" + // 0x0928093C: 0x00000929\n\t\"\\t0\\t<\\x00\\x00\\t1\" + // 0x0930093C: 0x00000931\n\t\"\\t3\\t<\\x00\\x00\\t4\" + // 0x0933093C: 0x00000934\n\t\"\\t\\xc7\\t\\xbe\\x00\\x00\\t\\xcb\" + // 0x09C709BE: 0x000009CB\n\t\"\\t\\xc7\\t\\xd7\\x00\\x00\\t\\xcc\" + // 0x09C709D7: 0x000009CC\n\t\"\\vG\\vV\\x00\\x00\\vH\" + // 0x0B470B56: 0x00000B48\n\t\"\\vG\\v>\\x00\\x00\\vK\" + // 0x0B470B3E: 0x00000B4B\n\t\"\\vG\\vW\\x00\\x00\\vL\" + // 0x0B470B57: 0x00000B4C\n\t\"\\v\\x92\\v\\xd7\\x00\\x00\\v\\x94\" + // 0x0B920BD7: 0x00000B94\n\t\"\\v\\xc6\\v\\xbe\\x00\\x00\\v\\xca\" + // 0x0BC60BBE: 0x00000BCA\n\t\"\\v\\xc7\\v\\xbe\\x00\\x00\\v\\xcb\" + // 0x0BC70BBE: 0x00000BCB\n\t\"\\v\\xc6\\v\\xd7\\x00\\x00\\v\\xcc\" + // 0x0BC60BD7: 0x00000BCC\n\t\"\\fF\\fV\\x00\\x00\\fH\" + // 0x0C460C56: 0x00000C48\n\t\"\\f\\xbf\\f\\xd5\\x00\\x00\\f\\xc0\" + // 0x0CBF0CD5: 0x00000CC0\n\t\"\\f\\xc6\\f\\xd5\\x00\\x00\\f\\xc7\" + // 0x0CC60CD5: 0x00000CC7\n\t\"\\f\\xc6\\f\\xd6\\x00\\x00\\f\\xc8\" + // 0x0CC60CD6: 0x00000CC8\n\t\"\\f\\xc6\\f\\xc2\\x00\\x00\\f\\xca\" + // 0x0CC60CC2: 0x00000CCA\n\t\"\\f\\xca\\f\\xd5\\x00\\x00\\f\\xcb\" + // 0x0CCA0CD5: 0x00000CCB\n\t\"\\rF\\r>\\x00\\x00\\rJ\" + // 0x0D460D3E: 0x00000D4A\n\t\"\\rG\\r>\\x00\\x00\\rK\" + // 0x0D470D3E: 0x00000D4B\n\t\"\\rF\\rW\\x00\\x00\\rL\" + // 0x0D460D57: 0x00000D4C\n\t\"\\r\\xd9\\r\\xca\\x00\\x00\\r\\xda\" + // 0x0DD90DCA: 0x00000DDA\n\t\"\\r\\xd9\\r\\xcf\\x00\\x00\\r\\xdc\" + // 0x0DD90DCF: 0x00000DDC\n\t\"\\r\\xdc\\r\\xca\\x00\\x00\\r\\xdd\" + // 0x0DDC0DCA: 0x00000DDD\n\t\"\\r\\xd9\\r\\xdf\\x00\\x00\\r\\xde\" + // 0x0DD90DDF: 0x00000DDE\n\t\"\\x10%\\x10.\\x00\\x00\\x10&\" + // 0x1025102E: 0x00001026\n\t\"\\x1b\\x05\\x1b5\\x00\\x00\\x1b\\x06\" + // 0x1B051B35: 0x00001B06\n\t\"\\x1b\\a\\x1b5\\x00\\x00\\x1b\\b\" + // 0x1B071B35: 0x00001B08\n\t\"\\x1b\\t\\x1b5\\x00\\x00\\x1b\\n\" + // 0x1B091B35: 0x00001B0A\n\t\"\\x1b\\v\\x1b5\\x00\\x00\\x1b\\f\" + // 0x1B0B1B35: 0x00001B0C\n\t\"\\x1b\\r\\x1b5\\x00\\x00\\x1b\\x0e\" + // 0x1B0D1B35: 0x00001B0E\n\t\"\\x1b\\x11\\x1b5\\x00\\x00\\x1b\\x12\" + // 0x1B111B35: 0x00001B12\n\t\"\\x1b:\\x1b5\\x00\\x00\\x1b;\" + // 0x1B3A1B35: 0x00001B3B\n\t\"\\x1b<\\x1b5\\x00\\x00\\x1b=\" + // 0x1B3C1B35: 0x00001B3D\n\t\"\\x1b>\\x1b5\\x00\\x00\\x1b@\" + // 0x1B3E1B35: 0x00001B40\n\t\"\\x1b?\\x1b5\\x00\\x00\\x1bA\" + // 0x1B3F1B35: 0x00001B41\n\t\"\\x1bB\\x1b5\\x00\\x00\\x1bC\" + // 0x1B421B35: 0x00001B43\n\t\"\\x00A\\x03%\\x00\\x00\\x1e\\x00\" + // 0x00410325: 0x00001E00\n\t\"\\x00a\\x03%\\x00\\x00\\x1e\\x01\" + // 0x00610325: 0x00001E01\n\t\"\\x00B\\x03\\a\\x00\\x00\\x1e\\x02\" + // 0x00420307: 0x00001E02\n\t\"\\x00b\\x03\\a\\x00\\x00\\x1e\\x03\" + // 0x00620307: 0x00001E03\n\t\"\\x00B\\x03#\\x00\\x00\\x1e\\x04\" + // 0x00420323: 0x00001E04\n\t\"\\x00b\\x03#\\x00\\x00\\x1e\\x05\" + // 0x00620323: 0x00001E05\n\t\"\\x00B\\x031\\x00\\x00\\x1e\\x06\" + // 0x00420331: 0x00001E06\n\t\"\\x00b\\x031\\x00\\x00\\x1e\\a\" + // 0x00620331: 0x00001E07\n\t\"\\x00\\xc7\\x03\\x01\\x00\\x00\\x1e\\b\" + // 0x00C70301: 0x00001E08\n\t\"\\x00\\xe7\\x03\\x01\\x00\\x00\\x1e\\t\" + // 0x00E70301: 0x00001E09\n\t\"\\x00D\\x03\\a\\x00\\x00\\x1e\\n\" + // 0x00440307: 0x00001E0A\n\t\"\\x00d\\x03\\a\\x00\\x00\\x1e\\v\" + // 0x00640307: 0x00001E0B\n\t\"\\x00D\\x03#\\x00\\x00\\x1e\\f\" + // 0x00440323: 0x00001E0C\n\t\"\\x00d\\x03#\\x00\\x00\\x1e\\r\" + // 0x00640323: 0x00001E0D\n\t\"\\x00D\\x031\\x00\\x00\\x1e\\x0e\" + // 0x00440331: 0x00001E0E\n\t\"\\x00d\\x031\\x00\\x00\\x1e\\x0f\" + // 0x00640331: 0x00001E0F\n\t\"\\x00D\\x03'\\x00\\x00\\x1e\\x10\" + // 0x00440327: 0x00001E10\n\t\"\\x00d\\x03'\\x00\\x00\\x1e\\x11\" + // 0x00640327: 0x00001E11\n\t\"\\x00D\\x03-\\x00\\x00\\x1e\\x12\" + // 0x0044032D: 0x00001E12\n\t\"\\x00d\\x03-\\x00\\x00\\x1e\\x13\" + // 0x0064032D: 0x00001E13\n\t\"\\x01\\x12\\x03\\x00\\x00\\x00\\x1e\\x14\" + // 0x01120300: 0x00001E14\n\t\"\\x01\\x13\\x03\\x00\\x00\\x00\\x1e\\x15\" + // 0x01130300: 0x00001E15\n\t\"\\x01\\x12\\x03\\x01\\x00\\x00\\x1e\\x16\" + // 0x01120301: 0x00001E16\n\t\"\\x01\\x13\\x03\\x01\\x00\\x00\\x1e\\x17\" + // 0x01130301: 0x00001E17\n\t\"\\x00E\\x03-\\x00\\x00\\x1e\\x18\" + // 0x0045032D: 0x00001E18\n\t\"\\x00e\\x03-\\x00\\x00\\x1e\\x19\" + // 0x0065032D: 0x00001E19\n\t\"\\x00E\\x030\\x00\\x00\\x1e\\x1a\" + // 0x00450330: 0x00001E1A\n\t\"\\x00e\\x030\\x00\\x00\\x1e\\x1b\" + // 0x00650330: 0x00001E1B\n\t\"\\x02(\\x03\\x06\\x00\\x00\\x1e\\x1c\" + // 0x02280306: 0x00001E1C\n\t\"\\x02)\\x03\\x06\\x00\\x00\\x1e\\x1d\" + // 0x02290306: 0x00001E1D\n\t\"\\x00F\\x03\\a\\x00\\x00\\x1e\\x1e\" + // 0x00460307: 0x00001E1E\n\t\"\\x00f\\x03\\a\\x00\\x00\\x1e\\x1f\" + // 0x00660307: 0x00001E1F\n\t\"\\x00G\\x03\\x04\\x00\\x00\\x1e \" + // 0x00470304: 0x00001E20\n\t\"\\x00g\\x03\\x04\\x00\\x00\\x1e!\" + // 0x00670304: 0x00001E21\n\t\"\\x00H\\x03\\a\\x00\\x00\\x1e\\\"\" + // 0x00480307: 0x00001E22\n\t\"\\x00h\\x03\\a\\x00\\x00\\x1e#\" + // 0x00680307: 0x00001E23\n\t\"\\x00H\\x03#\\x00\\x00\\x1e$\" + // 0x00480323: 0x00001E24\n\t\"\\x00h\\x03#\\x00\\x00\\x1e%\" + // 0x00680323: 0x00001E25\n\t\"\\x00H\\x03\\b\\x00\\x00\\x1e&\" + // 0x00480308: 0x00001E26\n\t\"\\x00h\\x03\\b\\x00\\x00\\x1e'\" + // 0x00680308: 0x00001E27\n\t\"\\x00H\\x03'\\x00\\x00\\x1e(\" + // 0x00480327: 0x00001E28\n\t\"\\x00h\\x03'\\x00\\x00\\x1e)\" + // 0x00680327: 0x00001E29\n\t\"\\x00H\\x03.\\x00\\x00\\x1e*\" + // 0x0048032E: 0x00001E2A\n\t\"\\x00h\\x03.\\x00\\x00\\x1e+\" + // 0x0068032E: 0x00001E2B\n\t\"\\x00I\\x030\\x00\\x00\\x1e,\" + // 0x00490330: 0x00001E2C\n\t\"\\x00i\\x030\\x00\\x00\\x1e-\" + // 0x00690330: 0x00001E2D\n\t\"\\x00\\xcf\\x03\\x01\\x00\\x00\\x1e.\" + // 0x00CF0301: 0x00001E2E\n\t\"\\x00\\xef\\x03\\x01\\x00\\x00\\x1e/\" + // 0x00EF0301: 0x00001E2F\n\t\"\\x00K\\x03\\x01\\x00\\x00\\x1e0\" + // 0x004B0301: 0x00001E30\n\t\"\\x00k\\x03\\x01\\x00\\x00\\x1e1\" + // 0x006B0301: 0x00001E31\n\t\"\\x00K\\x03#\\x00\\x00\\x1e2\" + // 0x004B0323: 0x00001E32\n\t\"\\x00k\\x03#\\x00\\x00\\x1e3\" + // 0x006B0323: 0x00001E33\n\t\"\\x00K\\x031\\x00\\x00\\x1e4\" + // 0x004B0331: 0x00001E34\n\t\"\\x00k\\x031\\x00\\x00\\x1e5\" + // 0x006B0331: 0x00001E35\n\t\"\\x00L\\x03#\\x00\\x00\\x1e6\" + // 0x004C0323: 0x00001E36\n\t\"\\x00l\\x03#\\x00\\x00\\x1e7\" + // 0x006C0323: 0x00001E37\n\t\"\\x1e6\\x03\\x04\\x00\\x00\\x1e8\" + // 0x1E360304: 0x00001E38\n\t\"\\x1e7\\x03\\x04\\x00\\x00\\x1e9\" + // 0x1E370304: 0x00001E39\n\t\"\\x00L\\x031\\x00\\x00\\x1e:\" + // 0x004C0331: 0x00001E3A\n\t\"\\x00l\\x031\\x00\\x00\\x1e;\" + // 0x006C0331: 0x00001E3B\n\t\"\\x00L\\x03-\\x00\\x00\\x1e<\" + // 0x004C032D: 0x00001E3C\n\t\"\\x00l\\x03-\\x00\\x00\\x1e=\" + // 0x006C032D: 0x00001E3D\n\t\"\\x00M\\x03\\x01\\x00\\x00\\x1e>\" + // 0x004D0301: 0x00001E3E\n\t\"\\x00m\\x03\\x01\\x00\\x00\\x1e?\" + // 0x006D0301: 0x00001E3F\n\t\"\\x00M\\x03\\a\\x00\\x00\\x1e@\" + // 0x004D0307: 0x00001E40\n\t\"\\x00m\\x03\\a\\x00\\x00\\x1eA\" + // 0x006D0307: 0x00001E41\n\t\"\\x00M\\x03#\\x00\\x00\\x1eB\" + // 0x004D0323: 0x00001E42\n\t\"\\x00m\\x03#\\x00\\x00\\x1eC\" + // 0x006D0323: 0x00001E43\n\t\"\\x00N\\x03\\a\\x00\\x00\\x1eD\" + // 0x004E0307: 0x00001E44\n\t\"\\x00n\\x03\\a\\x00\\x00\\x1eE\" + // 0x006E0307: 0x00001E45\n\t\"\\x00N\\x03#\\x00\\x00\\x1eF\" + // 0x004E0323: 0x00001E46\n\t\"\\x00n\\x03#\\x00\\x00\\x1eG\" + // 0x006E0323: 0x00001E47\n\t\"\\x00N\\x031\\x00\\x00\\x1eH\" + // 0x004E0331: 0x00001E48\n\t\"\\x00n\\x031\\x00\\x00\\x1eI\" + // 0x006E0331: 0x00001E49\n\t\"\\x00N\\x03-\\x00\\x00\\x1eJ\" + // 0x004E032D: 0x00001E4A\n\t\"\\x00n\\x03-\\x00\\x00\\x1eK\" + // 0x006E032D: 0x00001E4B\n\t\"\\x00\\xd5\\x03\\x01\\x00\\x00\\x1eL\" + // 0x00D50301: 0x00001E4C\n\t\"\\x00\\xf5\\x03\\x01\\x00\\x00\\x1eM\" + // 0x00F50301: 0x00001E4D\n\t\"\\x00\\xd5\\x03\\b\\x00\\x00\\x1eN\" + // 0x00D50308: 0x00001E4E\n\t\"\\x00\\xf5\\x03\\b\\x00\\x00\\x1eO\" + // 0x00F50308: 0x00001E4F\n\t\"\\x01L\\x03\\x00\\x00\\x00\\x1eP\" + // 0x014C0300: 0x00001E50\n\t\"\\x01M\\x03\\x00\\x00\\x00\\x1eQ\" + // 0x014D0300: 0x00001E51\n\t\"\\x01L\\x03\\x01\\x00\\x00\\x1eR\" + // 0x014C0301: 0x00001E52\n\t\"\\x01M\\x03\\x01\\x00\\x00\\x1eS\" + // 0x014D0301: 0x00001E53\n\t\"\\x00P\\x03\\x01\\x00\\x00\\x1eT\" + // 0x00500301: 0x00001E54\n\t\"\\x00p\\x03\\x01\\x00\\x00\\x1eU\" + // 0x00700301: 0x00001E55\n\t\"\\x00P\\x03\\a\\x00\\x00\\x1eV\" + // 0x00500307: 0x00001E56\n\t\"\\x00p\\x03\\a\\x00\\x00\\x1eW\" + // 0x00700307: 0x00001E57\n\t\"\\x00R\\x03\\a\\x00\\x00\\x1eX\" + // 0x00520307: 0x00001E58\n\t\"\\x00r\\x03\\a\\x00\\x00\\x1eY\" + // 0x00720307: 0x00001E59\n\t\"\\x00R\\x03#\\x00\\x00\\x1eZ\" + // 0x00520323: 0x00001E5A\n\t\"\\x00r\\x03#\\x00\\x00\\x1e[\" + // 0x00720323: 0x00001E5B\n\t\"\\x1eZ\\x03\\x04\\x00\\x00\\x1e\\\\\" + // 0x1E5A0304: 0x00001E5C\n\t\"\\x1e[\\x03\\x04\\x00\\x00\\x1e]\" + // 0x1E5B0304: 0x00001E5D\n\t\"\\x00R\\x031\\x00\\x00\\x1e^\" + // 0x00520331: 0x00001E5E\n\t\"\\x00r\\x031\\x00\\x00\\x1e_\" + // 0x00720331: 0x00001E5F\n\t\"\\x00S\\x03\\a\\x00\\x00\\x1e`\" + // 0x00530307: 0x00001E60\n\t\"\\x00s\\x03\\a\\x00\\x00\\x1ea\" + // 0x00730307: 0x00001E61\n\t\"\\x00S\\x03#\\x00\\x00\\x1eb\" + // 0x00530323: 0x00001E62\n\t\"\\x00s\\x03#\\x00\\x00\\x1ec\" + // 0x00730323: 0x00001E63\n\t\"\\x01Z\\x03\\a\\x00\\x00\\x1ed\" + // 0x015A0307: 0x00001E64\n\t\"\\x01[\\x03\\a\\x00\\x00\\x1ee\" + // 0x015B0307: 0x00001E65\n\t\"\\x01`\\x03\\a\\x00\\x00\\x1ef\" + // 0x01600307: 0x00001E66\n\t\"\\x01a\\x03\\a\\x00\\x00\\x1eg\" + // 0x01610307: 0x00001E67\n\t\"\\x1eb\\x03\\a\\x00\\x00\\x1eh\" + // 0x1E620307: 0x00001E68\n\t\"\\x1ec\\x03\\a\\x00\\x00\\x1ei\" + // 0x1E630307: 0x00001E69\n\t\"\\x00T\\x03\\a\\x00\\x00\\x1ej\" + // 0x00540307: 0x00001E6A\n\t\"\\x00t\\x03\\a\\x00\\x00\\x1ek\" + // 0x00740307: 0x00001E6B\n\t\"\\x00T\\x03#\\x00\\x00\\x1el\" + // 0x00540323: 0x00001E6C\n\t\"\\x00t\\x03#\\x00\\x00\\x1em\" + // 0x00740323: 0x00001E6D\n\t\"\\x00T\\x031\\x00\\x00\\x1en\" + // 0x00540331: 0x00001E6E\n\t\"\\x00t\\x031\\x00\\x00\\x1eo\" + // 0x00740331: 0x00001E6F\n\t\"\\x00T\\x03-\\x00\\x00\\x1ep\" + // 0x0054032D: 0x00001E70\n\t\"\\x00t\\x03-\\x00\\x00\\x1eq\" + // 0x0074032D: 0x00001E71\n\t\"\\x00U\\x03$\\x00\\x00\\x1er\" + // 0x00550324: 0x00001E72\n\t\"\\x00u\\x03$\\x00\\x00\\x1es\" + // 0x00750324: 0x00001E73\n\t\"\\x00U\\x030\\x00\\x00\\x1et\" + // 0x00550330: 0x00001E74\n\t\"\\x00u\\x030\\x00\\x00\\x1eu\" + // 0x00750330: 0x00001E75\n\t\"\\x00U\\x03-\\x00\\x00\\x1ev\" + // 0x0055032D: 0x00001E76\n\t\"\\x00u\\x03-\\x00\\x00\\x1ew\" + // 0x0075032D: 0x00001E77\n\t\"\\x01h\\x03\\x01\\x00\\x00\\x1ex\" + // 0x01680301: 0x00001E78\n\t\"\\x01i\\x03\\x01\\x00\\x00\\x1ey\" + // 0x01690301: 0x00001E79\n\t\"\\x01j\\x03\\b\\x00\\x00\\x1ez\" + // 0x016A0308: 0x00001E7A\n\t\"\\x01k\\x03\\b\\x00\\x00\\x1e{\" + // 0x016B0308: 0x00001E7B\n\t\"\\x00V\\x03\\x03\\x00\\x00\\x1e|\" + // 0x00560303: 0x00001E7C\n\t\"\\x00v\\x03\\x03\\x00\\x00\\x1e}\" + // 0x00760303: 0x00001E7D\n\t\"\\x00V\\x03#\\x00\\x00\\x1e~\" + // 0x00560323: 0x00001E7E\n\t\"\\x00v\\x03#\\x00\\x00\\x1e\\u007f\" + // 0x00760323: 0x00001E7F\n\t\"\\x00W\\x03\\x00\\x00\\x00\\x1e\\x80\" + // 0x00570300: 0x00001E80\n\t\"\\x00w\\x03\\x00\\x00\\x00\\x1e\\x81\" + // 0x00770300: 0x00001E81\n\t\"\\x00W\\x03\\x01\\x00\\x00\\x1e\\x82\" + // 0x00570301: 0x00001E82\n\t\"\\x00w\\x03\\x01\\x00\\x00\\x1e\\x83\" + // 0x00770301: 0x00001E83\n\t\"\\x00W\\x03\\b\\x00\\x00\\x1e\\x84\" + // 0x00570308: 0x00001E84\n\t\"\\x00w\\x03\\b\\x00\\x00\\x1e\\x85\" + // 0x00770308: 0x00001E85\n\t\"\\x00W\\x03\\a\\x00\\x00\\x1e\\x86\" + // 0x00570307: 0x00001E86\n\t\"\\x00w\\x03\\a\\x00\\x00\\x1e\\x87\" + // 0x00770307: 0x00001E87\n\t\"\\x00W\\x03#\\x00\\x00\\x1e\\x88\" + // 0x00570323: 0x00001E88\n\t\"\\x00w\\x03#\\x00\\x00\\x1e\\x89\" + // 0x00770323: 0x00001E89\n\t\"\\x00X\\x03\\a\\x00\\x00\\x1e\\x8a\" + // 0x00580307: 0x00001E8A\n\t\"\\x00x\\x03\\a\\x00\\x00\\x1e\\x8b\" + // 0x00780307: 0x00001E8B\n\t\"\\x00X\\x03\\b\\x00\\x00\\x1e\\x8c\" + // 0x00580308: 0x00001E8C\n\t\"\\x00x\\x03\\b\\x00\\x00\\x1e\\x8d\" + // 0x00780308: 0x00001E8D\n\t\"\\x00Y\\x03\\a\\x00\\x00\\x1e\\x8e\" + // 0x00590307: 0x00001E8E\n\t\"\\x00y\\x03\\a\\x00\\x00\\x1e\\x8f\" + // 0x00790307: 0x00001E8F\n\t\"\\x00Z\\x03\\x02\\x00\\x00\\x1e\\x90\" + // 0x005A0302: 0x00001E90\n\t\"\\x00z\\x03\\x02\\x00\\x00\\x1e\\x91\" + // 0x007A0302: 0x00001E91\n\t\"\\x00Z\\x03#\\x00\\x00\\x1e\\x92\" + // 0x005A0323: 0x00001E92\n\t\"\\x00z\\x03#\\x00\\x00\\x1e\\x93\" + // 0x007A0323: 0x00001E93\n\t\"\\x00Z\\x031\\x00\\x00\\x1e\\x94\" + // 0x005A0331: 0x00001E94\n\t\"\\x00z\\x031\\x00\\x00\\x1e\\x95\" + // 0x007A0331: 0x00001E95\n\t\"\\x00h\\x031\\x00\\x00\\x1e\\x96\" + // 0x00680331: 0x00001E96\n\t\"\\x00t\\x03\\b\\x00\\x00\\x1e\\x97\" + // 0x00740308: 0x00001E97\n\t\"\\x00w\\x03\\n\\x00\\x00\\x1e\\x98\" + // 0x0077030A: 0x00001E98\n\t\"\\x00y\\x03\\n\\x00\\x00\\x1e\\x99\" + // 0x0079030A: 0x00001E99\n\t\"\\x01\\u007f\\x03\\a\\x00\\x00\\x1e\\x9b\" + // 0x017F0307: 0x00001E9B\n\t\"\\x00A\\x03#\\x00\\x00\\x1e\\xa0\" + // 0x00410323: 0x00001EA0\n\t\"\\x00a\\x03#\\x00\\x00\\x1e\\xa1\" + // 0x00610323: 0x00001EA1\n\t\"\\x00A\\x03\\t\\x00\\x00\\x1e\\xa2\" + // 0x00410309: 0x00001EA2\n\t\"\\x00a\\x03\\t\\x00\\x00\\x1e\\xa3\" + // 0x00610309: 0x00001EA3\n\t\"\\x00\\xc2\\x03\\x01\\x00\\x00\\x1e\\xa4\" + // 0x00C20301: 0x00001EA4\n\t\"\\x00\\xe2\\x03\\x01\\x00\\x00\\x1e\\xa5\" + // 0x00E20301: 0x00001EA5\n\t\"\\x00\\xc2\\x03\\x00\\x00\\x00\\x1e\\xa6\" + // 0x00C20300: 0x00001EA6\n\t\"\\x00\\xe2\\x03\\x00\\x00\\x00\\x1e\\xa7\" + // 0x00E20300: 0x00001EA7\n\t\"\\x00\\xc2\\x03\\t\\x00\\x00\\x1e\\xa8\" + // 0x00C20309: 0x00001EA8\n\t\"\\x00\\xe2\\x03\\t\\x00\\x00\\x1e\\xa9\" + // 0x00E20309: 0x00001EA9\n\t\"\\x00\\xc2\\x03\\x03\\x00\\x00\\x1e\\xaa\" + // 0x00C20303: 0x00001EAA\n\t\"\\x00\\xe2\\x03\\x03\\x00\\x00\\x1e\\xab\" + // 0x00E20303: 0x00001EAB\n\t\"\\x1e\\xa0\\x03\\x02\\x00\\x00\\x1e\\xac\" + // 0x1EA00302: 0x00001EAC\n\t\"\\x1e\\xa1\\x03\\x02\\x00\\x00\\x1e\\xad\" + // 0x1EA10302: 0x00001EAD\n\t\"\\x01\\x02\\x03\\x01\\x00\\x00\\x1e\\xae\" + // 0x01020301: 0x00001EAE\n\t\"\\x01\\x03\\x03\\x01\\x00\\x00\\x1e\\xaf\" + // 0x01030301: 0x00001EAF\n\t\"\\x01\\x02\\x03\\x00\\x00\\x00\\x1e\\xb0\" + // 0x01020300: 0x00001EB0\n\t\"\\x01\\x03\\x03\\x00\\x00\\x00\\x1e\\xb1\" + // 0x01030300: 0x00001EB1\n\t\"\\x01\\x02\\x03\\t\\x00\\x00\\x1e\\xb2\" + // 0x01020309: 0x00001EB2\n\t\"\\x01\\x03\\x03\\t\\x00\\x00\\x1e\\xb3\" + // 0x01030309: 0x00001EB3\n\t\"\\x01\\x02\\x03\\x03\\x00\\x00\\x1e\\xb4\" + // 0x01020303: 0x00001EB4\n\t\"\\x01\\x03\\x03\\x03\\x00\\x00\\x1e\\xb5\" + // 0x01030303: 0x00001EB5\n\t\"\\x1e\\xa0\\x03\\x06\\x00\\x00\\x1e\\xb6\" + // 0x1EA00306: 0x00001EB6\n\t\"\\x1e\\xa1\\x03\\x06\\x00\\x00\\x1e\\xb7\" + // 0x1EA10306: 0x00001EB7\n\t\"\\x00E\\x03#\\x00\\x00\\x1e\\xb8\" + // 0x00450323: 0x00001EB8\n\t\"\\x00e\\x03#\\x00\\x00\\x1e\\xb9\" + // 0x00650323: 0x00001EB9\n\t\"\\x00E\\x03\\t\\x00\\x00\\x1e\\xba\" + // 0x00450309: 0x00001EBA\n\t\"\\x00e\\x03\\t\\x00\\x00\\x1e\\xbb\" + // 0x00650309: 0x00001EBB\n\t\"\\x00E\\x03\\x03\\x00\\x00\\x1e\\xbc\" + // 0x00450303: 0x00001EBC\n\t\"\\x00e\\x03\\x03\\x00\\x00\\x1e\\xbd\" + // 0x00650303: 0x00001EBD\n\t\"\\x00\\xca\\x03\\x01\\x00\\x00\\x1e\\xbe\" + // 0x00CA0301: 0x00001EBE\n\t\"\\x00\\xea\\x03\\x01\\x00\\x00\\x1e\\xbf\" + // 0x00EA0301: 0x00001EBF\n\t\"\\x00\\xca\\x03\\x00\\x00\\x00\\x1e\\xc0\" + // 0x00CA0300: 0x00001EC0\n\t\"\\x00\\xea\\x03\\x00\\x00\\x00\\x1e\\xc1\" + // 0x00EA0300: 0x00001EC1\n\t\"\\x00\\xca\\x03\\t\\x00\\x00\\x1e\\xc2\" + // 0x00CA0309: 0x00001EC2\n\t\"\\x00\\xea\\x03\\t\\x00\\x00\\x1e\\xc3\" + // 0x00EA0309: 0x00001EC3\n\t\"\\x00\\xca\\x03\\x03\\x00\\x00\\x1e\\xc4\" + // 0x00CA0303: 0x00001EC4\n\t\"\\x00\\xea\\x03\\x03\\x00\\x00\\x1e\\xc5\" + // 0x00EA0303: 0x00001EC5\n\t\"\\x1e\\xb8\\x03\\x02\\x00\\x00\\x1e\\xc6\" + // 0x1EB80302: 0x00001EC6\n\t\"\\x1e\\xb9\\x03\\x02\\x00\\x00\\x1e\\xc7\" + // 0x1EB90302: 0x00001EC7\n\t\"\\x00I\\x03\\t\\x00\\x00\\x1e\\xc8\" + // 0x00490309: 0x00001EC8\n\t\"\\x00i\\x03\\t\\x00\\x00\\x1e\\xc9\" + // 0x00690309: 0x00001EC9\n\t\"\\x00I\\x03#\\x00\\x00\\x1e\\xca\" + // 0x00490323: 0x00001ECA\n\t\"\\x00i\\x03#\\x00\\x00\\x1e\\xcb\" + // 0x00690323: 0x00001ECB\n\t\"\\x00O\\x03#\\x00\\x00\\x1e\\xcc\" + // 0x004F0323: 0x00001ECC\n\t\"\\x00o\\x03#\\x00\\x00\\x1e\\xcd\" + // 0x006F0323: 0x00001ECD\n\t\"\\x00O\\x03\\t\\x00\\x00\\x1e\\xce\" + // 0x004F0309: 0x00001ECE\n\t\"\\x00o\\x03\\t\\x00\\x00\\x1e\\xcf\" + // 0x006F0309: 0x00001ECF\n\t\"\\x00\\xd4\\x03\\x01\\x00\\x00\\x1e\\xd0\" + // 0x00D40301: 0x00001ED0\n\t\"\\x00\\xf4\\x03\\x01\\x00\\x00\\x1e\\xd1\" + // 0x00F40301: 0x00001ED1\n\t\"\\x00\\xd4\\x03\\x00\\x00\\x00\\x1e\\xd2\" + // 0x00D40300: 0x00001ED2\n\t\"\\x00\\xf4\\x03\\x00\\x00\\x00\\x1e\\xd3\" + // 0x00F40300: 0x00001ED3\n\t\"\\x00\\xd4\\x03\\t\\x00\\x00\\x1e\\xd4\" + // 0x00D40309: 0x00001ED4\n\t\"\\x00\\xf4\\x03\\t\\x00\\x00\\x1e\\xd5\" + // 0x00F40309: 0x00001ED5\n\t\"\\x00\\xd4\\x03\\x03\\x00\\x00\\x1e\\xd6\" + // 0x00D40303: 0x00001ED6\n\t\"\\x00\\xf4\\x03\\x03\\x00\\x00\\x1e\\xd7\" + // 0x00F40303: 0x00001ED7\n\t\"\\x1e\\xcc\\x03\\x02\\x00\\x00\\x1e\\xd8\" + // 0x1ECC0302: 0x00001ED8\n\t\"\\x1e\\xcd\\x03\\x02\\x00\\x00\\x1e\\xd9\" + // 0x1ECD0302: 0x00001ED9\n\t\"\\x01\\xa0\\x03\\x01\\x00\\x00\\x1e\\xda\" + // 0x01A00301: 0x00001EDA\n\t\"\\x01\\xa1\\x03\\x01\\x00\\x00\\x1e\\xdb\" + // 0x01A10301: 0x00001EDB\n\t\"\\x01\\xa0\\x03\\x00\\x00\\x00\\x1e\\xdc\" + // 0x01A00300: 0x00001EDC\n\t\"\\x01\\xa1\\x03\\x00\\x00\\x00\\x1e\\xdd\" + // 0x01A10300: 0x00001EDD\n\t\"\\x01\\xa0\\x03\\t\\x00\\x00\\x1e\\xde\" + // 0x01A00309: 0x00001EDE\n\t\"\\x01\\xa1\\x03\\t\\x00\\x00\\x1e\\xdf\" + // 0x01A10309: 0x00001EDF\n\t\"\\x01\\xa0\\x03\\x03\\x00\\x00\\x1e\\xe0\" + // 0x01A00303: 0x00001EE0\n\t\"\\x01\\xa1\\x03\\x03\\x00\\x00\\x1e\\xe1\" + // 0x01A10303: 0x00001EE1\n\t\"\\x01\\xa0\\x03#\\x00\\x00\\x1e\\xe2\" + // 0x01A00323: 0x00001EE2\n\t\"\\x01\\xa1\\x03#\\x00\\x00\\x1e\\xe3\" + // 0x01A10323: 0x00001EE3\n\t\"\\x00U\\x03#\\x00\\x00\\x1e\\xe4\" + // 0x00550323: 0x00001EE4\n\t\"\\x00u\\x03#\\x00\\x00\\x1e\\xe5\" + // 0x00750323: 0x00001EE5\n\t\"\\x00U\\x03\\t\\x00\\x00\\x1e\\xe6\" + // 0x00550309: 0x00001EE6\n\t\"\\x00u\\x03\\t\\x00\\x00\\x1e\\xe7\" + // 0x00750309: 0x00001EE7\n\t\"\\x01\\xaf\\x03\\x01\\x00\\x00\\x1e\\xe8\" + // 0x01AF0301: 0x00001EE8\n\t\"\\x01\\xb0\\x03\\x01\\x00\\x00\\x1e\\xe9\" + // 0x01B00301: 0x00001EE9\n\t\"\\x01\\xaf\\x03\\x00\\x00\\x00\\x1e\\xea\" + // 0x01AF0300: 0x00001EEA\n\t\"\\x01\\xb0\\x03\\x00\\x00\\x00\\x1e\\xeb\" + // 0x01B00300: 0x00001EEB\n\t\"\\x01\\xaf\\x03\\t\\x00\\x00\\x1e\\xec\" + // 0x01AF0309: 0x00001EEC\n\t\"\\x01\\xb0\\x03\\t\\x00\\x00\\x1e\\xed\" + // 0x01B00309: 0x00001EED\n\t\"\\x01\\xaf\\x03\\x03\\x00\\x00\\x1e\\xee\" + // 0x01AF0303: 0x00001EEE\n\t\"\\x01\\xb0\\x03\\x03\\x00\\x00\\x1e\\xef\" + // 0x01B00303: 0x00001EEF\n\t\"\\x01\\xaf\\x03#\\x00\\x00\\x1e\\xf0\" + // 0x01AF0323: 0x00001EF0\n\t\"\\x01\\xb0\\x03#\\x00\\x00\\x1e\\xf1\" + // 0x01B00323: 0x00001EF1\n\t\"\\x00Y\\x03\\x00\\x00\\x00\\x1e\\xf2\" + // 0x00590300: 0x00001EF2\n\t\"\\x00y\\x03\\x00\\x00\\x00\\x1e\\xf3\" + // 0x00790300: 0x00001EF3\n\t\"\\x00Y\\x03#\\x00\\x00\\x1e\\xf4\" + // 0x00590323: 0x00001EF4\n\t\"\\x00y\\x03#\\x00\\x00\\x1e\\xf5\" + // 0x00790323: 0x00001EF5\n\t\"\\x00Y\\x03\\t\\x00\\x00\\x1e\\xf6\" + // 0x00590309: 0x00001EF6\n\t\"\\x00y\\x03\\t\\x00\\x00\\x1e\\xf7\" + // 0x00790309: 0x00001EF7\n\t\"\\x00Y\\x03\\x03\\x00\\x00\\x1e\\xf8\" + // 0x00590303: 0x00001EF8\n\t\"\\x00y\\x03\\x03\\x00\\x00\\x1e\\xf9\" + // 0x00790303: 0x00001EF9\n\t\"\\x03\\xb1\\x03\\x13\\x00\\x00\\x1f\\x00\" + // 0x03B10313: 0x00001F00\n\t\"\\x03\\xb1\\x03\\x14\\x00\\x00\\x1f\\x01\" + // 0x03B10314: 0x00001F01\n\t\"\\x1f\\x00\\x03\\x00\\x00\\x00\\x1f\\x02\" + // 0x1F000300: 0x00001F02\n\t\"\\x1f\\x01\\x03\\x00\\x00\\x00\\x1f\\x03\" + // 0x1F010300: 0x00001F03\n\t\"\\x1f\\x00\\x03\\x01\\x00\\x00\\x1f\\x04\" + // 0x1F000301: 0x00001F04\n\t\"\\x1f\\x01\\x03\\x01\\x00\\x00\\x1f\\x05\" + // 0x1F010301: 0x00001F05\n\t\"\\x1f\\x00\\x03B\\x00\\x00\\x1f\\x06\" + // 0x1F000342: 0x00001F06\n\t\"\\x1f\\x01\\x03B\\x00\\x00\\x1f\\a\" + // 0x1F010342: 0x00001F07\n\t\"\\x03\\x91\\x03\\x13\\x00\\x00\\x1f\\b\" + // 0x03910313: 0x00001F08\n\t\"\\x03\\x91\\x03\\x14\\x00\\x00\\x1f\\t\" + // 0x03910314: 0x00001F09\n\t\"\\x1f\\b\\x03\\x00\\x00\\x00\\x1f\\n\" + // 0x1F080300: 0x00001F0A\n\t\"\\x1f\\t\\x03\\x00\\x00\\x00\\x1f\\v\" + // 0x1F090300: 0x00001F0B\n\t\"\\x1f\\b\\x03\\x01\\x00\\x00\\x1f\\f\" + // 0x1F080301: 0x00001F0C\n\t\"\\x1f\\t\\x03\\x01\\x00\\x00\\x1f\\r\" + // 0x1F090301: 0x00001F0D\n\t\"\\x1f\\b\\x03B\\x00\\x00\\x1f\\x0e\" + // 0x1F080342: 0x00001F0E\n\t\"\\x1f\\t\\x03B\\x00\\x00\\x1f\\x0f\" + // 0x1F090342: 0x00001F0F\n\t\"\\x03\\xb5\\x03\\x13\\x00\\x00\\x1f\\x10\" + // 0x03B50313: 0x00001F10\n\t\"\\x03\\xb5\\x03\\x14\\x00\\x00\\x1f\\x11\" + // 0x03B50314: 0x00001F11\n\t\"\\x1f\\x10\\x03\\x00\\x00\\x00\\x1f\\x12\" + // 0x1F100300: 0x00001F12\n\t\"\\x1f\\x11\\x03\\x00\\x00\\x00\\x1f\\x13\" + // 0x1F110300: 0x00001F13\n\t\"\\x1f\\x10\\x03\\x01\\x00\\x00\\x1f\\x14\" + // 0x1F100301: 0x00001F14\n\t\"\\x1f\\x11\\x03\\x01\\x00\\x00\\x1f\\x15\" + // 0x1F110301: 0x00001F15\n\t\"\\x03\\x95\\x03\\x13\\x00\\x00\\x1f\\x18\" + // 0x03950313: 0x00001F18\n\t\"\\x03\\x95\\x03\\x14\\x00\\x00\\x1f\\x19\" + // 0x03950314: 0x00001F19\n\t\"\\x1f\\x18\\x03\\x00\\x00\\x00\\x1f\\x1a\" + // 0x1F180300: 0x00001F1A\n\t\"\\x1f\\x19\\x03\\x00\\x00\\x00\\x1f\\x1b\" + // 0x1F190300: 0x00001F1B\n\t\"\\x1f\\x18\\x03\\x01\\x00\\x00\\x1f\\x1c\" + // 0x1F180301: 0x00001F1C\n\t\"\\x1f\\x19\\x03\\x01\\x00\\x00\\x1f\\x1d\" + // 0x1F190301: 0x00001F1D\n\t\"\\x03\\xb7\\x03\\x13\\x00\\x00\\x1f \" + // 0x03B70313: 0x00001F20\n\t\"\\x03\\xb7\\x03\\x14\\x00\\x00\\x1f!\" + // 0x03B70314: 0x00001F21\n\t\"\\x1f \\x03\\x00\\x00\\x00\\x1f\\\"\" + // 0x1F200300: 0x00001F22\n\t\"\\x1f!\\x03\\x00\\x00\\x00\\x1f#\" + // 0x1F210300: 0x00001F23\n\t\"\\x1f \\x03\\x01\\x00\\x00\\x1f$\" + // 0x1F200301: 0x00001F24\n\t\"\\x1f!\\x03\\x01\\x00\\x00\\x1f%\" + // 0x1F210301: 0x00001F25\n\t\"\\x1f \\x03B\\x00\\x00\\x1f&\" + // 0x1F200342: 0x00001F26\n\t\"\\x1f!\\x03B\\x00\\x00\\x1f'\" + // 0x1F210342: 0x00001F27\n\t\"\\x03\\x97\\x03\\x13\\x00\\x00\\x1f(\" + // 0x03970313: 0x00001F28\n\t\"\\x03\\x97\\x03\\x14\\x00\\x00\\x1f)\" + // 0x03970314: 0x00001F29\n\t\"\\x1f(\\x03\\x00\\x00\\x00\\x1f*\" + // 0x1F280300: 0x00001F2A\n\t\"\\x1f)\\x03\\x00\\x00\\x00\\x1f+\" + // 0x1F290300: 0x00001F2B\n\t\"\\x1f(\\x03\\x01\\x00\\x00\\x1f,\" + // 0x1F280301: 0x00001F2C\n\t\"\\x1f)\\x03\\x01\\x00\\x00\\x1f-\" + // 0x1F290301: 0x00001F2D\n\t\"\\x1f(\\x03B\\x00\\x00\\x1f.\" + // 0x1F280342: 0x00001F2E\n\t\"\\x1f)\\x03B\\x00\\x00\\x1f/\" + // 0x1F290342: 0x00001F2F\n\t\"\\x03\\xb9\\x03\\x13\\x00\\x00\\x1f0\" + // 0x03B90313: 0x00001F30\n\t\"\\x03\\xb9\\x03\\x14\\x00\\x00\\x1f1\" + // 0x03B90314: 0x00001F31\n\t\"\\x1f0\\x03\\x00\\x00\\x00\\x1f2\" + // 0x1F300300: 0x00001F32\n\t\"\\x1f1\\x03\\x00\\x00\\x00\\x1f3\" + // 0x1F310300: 0x00001F33\n\t\"\\x1f0\\x03\\x01\\x00\\x00\\x1f4\" + // 0x1F300301: 0x00001F34\n\t\"\\x1f1\\x03\\x01\\x00\\x00\\x1f5\" + // 0x1F310301: 0x00001F35\n\t\"\\x1f0\\x03B\\x00\\x00\\x1f6\" + // 0x1F300342: 0x00001F36\n\t\"\\x1f1\\x03B\\x00\\x00\\x1f7\" + // 0x1F310342: 0x00001F37\n\t\"\\x03\\x99\\x03\\x13\\x00\\x00\\x1f8\" + // 0x03990313: 0x00001F38\n\t\"\\x03\\x99\\x03\\x14\\x00\\x00\\x1f9\" + // 0x03990314: 0x00001F39\n\t\"\\x1f8\\x03\\x00\\x00\\x00\\x1f:\" + // 0x1F380300: 0x00001F3A\n\t\"\\x1f9\\x03\\x00\\x00\\x00\\x1f;\" + // 0x1F390300: 0x00001F3B\n\t\"\\x1f8\\x03\\x01\\x00\\x00\\x1f<\" + // 0x1F380301: 0x00001F3C\n\t\"\\x1f9\\x03\\x01\\x00\\x00\\x1f=\" + // 0x1F390301: 0x00001F3D\n\t\"\\x1f8\\x03B\\x00\\x00\\x1f>\" + // 0x1F380342: 0x00001F3E\n\t\"\\x1f9\\x03B\\x00\\x00\\x1f?\" + // 0x1F390342: 0x00001F3F\n\t\"\\x03\\xbf\\x03\\x13\\x00\\x00\\x1f@\" + // 0x03BF0313: 0x00001F40\n\t\"\\x03\\xbf\\x03\\x14\\x00\\x00\\x1fA\" + // 0x03BF0314: 0x00001F41\n\t\"\\x1f@\\x03\\x00\\x00\\x00\\x1fB\" + // 0x1F400300: 0x00001F42\n\t\"\\x1fA\\x03\\x00\\x00\\x00\\x1fC\" + // 0x1F410300: 0x00001F43\n\t\"\\x1f@\\x03\\x01\\x00\\x00\\x1fD\" + // 0x1F400301: 0x00001F44\n\t\"\\x1fA\\x03\\x01\\x00\\x00\\x1fE\" + // 0x1F410301: 0x00001F45\n\t\"\\x03\\x9f\\x03\\x13\\x00\\x00\\x1fH\" + // 0x039F0313: 0x00001F48\n\t\"\\x03\\x9f\\x03\\x14\\x00\\x00\\x1fI\" + // 0x039F0314: 0x00001F49\n\t\"\\x1fH\\x03\\x00\\x00\\x00\\x1fJ\" + // 0x1F480300: 0x00001F4A\n\t\"\\x1fI\\x03\\x00\\x00\\x00\\x1fK\" + // 0x1F490300: 0x00001F4B\n\t\"\\x1fH\\x03\\x01\\x00\\x00\\x1fL\" + // 0x1F480301: 0x00001F4C\n\t\"\\x1fI\\x03\\x01\\x00\\x00\\x1fM\" + // 0x1F490301: 0x00001F4D\n\t\"\\x03\\xc5\\x03\\x13\\x00\\x00\\x1fP\" + // 0x03C50313: 0x00001F50\n\t\"\\x03\\xc5\\x03\\x14\\x00\\x00\\x1fQ\" + // 0x03C50314: 0x00001F51\n\t\"\\x1fP\\x03\\x00\\x00\\x00\\x1fR\" + // 0x1F500300: 0x00001F52\n\t\"\\x1fQ\\x03\\x00\\x00\\x00\\x1fS\" + // 0x1F510300: 0x00001F53\n\t\"\\x1fP\\x03\\x01\\x00\\x00\\x1fT\" + // 0x1F500301: 0x00001F54\n\t\"\\x1fQ\\x03\\x01\\x00\\x00\\x1fU\" + // 0x1F510301: 0x00001F55\n\t\"\\x1fP\\x03B\\x00\\x00\\x1fV\" + // 0x1F500342: 0x00001F56\n\t\"\\x1fQ\\x03B\\x00\\x00\\x1fW\" + // 0x1F510342: 0x00001F57\n\t\"\\x03\\xa5\\x03\\x14\\x00\\x00\\x1fY\" + // 0x03A50314: 0x00001F59\n\t\"\\x1fY\\x03\\x00\\x00\\x00\\x1f[\" + // 0x1F590300: 0x00001F5B\n\t\"\\x1fY\\x03\\x01\\x00\\x00\\x1f]\" + // 0x1F590301: 0x00001F5D\n\t\"\\x1fY\\x03B\\x00\\x00\\x1f_\" + // 0x1F590342: 0x00001F5F\n\t\"\\x03\\xc9\\x03\\x13\\x00\\x00\\x1f`\" + // 0x03C90313: 0x00001F60\n\t\"\\x03\\xc9\\x03\\x14\\x00\\x00\\x1fa\" + // 0x03C90314: 0x00001F61\n\t\"\\x1f`\\x03\\x00\\x00\\x00\\x1fb\" + // 0x1F600300: 0x00001F62\n\t\"\\x1fa\\x03\\x00\\x00\\x00\\x1fc\" + // 0x1F610300: 0x00001F63\n\t\"\\x1f`\\x03\\x01\\x00\\x00\\x1fd\" + // 0x1F600301: 0x00001F64\n\t\"\\x1fa\\x03\\x01\\x00\\x00\\x1fe\" + // 0x1F610301: 0x00001F65\n\t\"\\x1f`\\x03B\\x00\\x00\\x1ff\" + // 0x1F600342: 0x00001F66\n\t\"\\x1fa\\x03B\\x00\\x00\\x1fg\" + // 0x1F610342: 0x00001F67\n\t\"\\x03\\xa9\\x03\\x13\\x00\\x00\\x1fh\" + // 0x03A90313: 0x00001F68\n\t\"\\x03\\xa9\\x03\\x14\\x00\\x00\\x1fi\" + // 0x03A90314: 0x00001F69\n\t\"\\x1fh\\x03\\x00\\x00\\x00\\x1fj\" + // 0x1F680300: 0x00001F6A\n\t\"\\x1fi\\x03\\x00\\x00\\x00\\x1fk\" + // 0x1F690300: 0x00001F6B\n\t\"\\x1fh\\x03\\x01\\x00\\x00\\x1fl\" + // 0x1F680301: 0x00001F6C\n\t\"\\x1fi\\x03\\x01\\x00\\x00\\x1fm\" + // 0x1F690301: 0x00001F6D\n\t\"\\x1fh\\x03B\\x00\\x00\\x1fn\" + // 0x1F680342: 0x00001F6E\n\t\"\\x1fi\\x03B\\x00\\x00\\x1fo\" + // 0x1F690342: 0x00001F6F\n\t\"\\x03\\xb1\\x03\\x00\\x00\\x00\\x1fp\" + // 0x03B10300: 0x00001F70\n\t\"\\x03\\xb5\\x03\\x00\\x00\\x00\\x1fr\" + // 0x03B50300: 0x00001F72\n\t\"\\x03\\xb7\\x03\\x00\\x00\\x00\\x1ft\" + // 0x03B70300: 0x00001F74\n\t\"\\x03\\xb9\\x03\\x00\\x00\\x00\\x1fv\" + // 0x03B90300: 0x00001F76\n\t\"\\x03\\xbf\\x03\\x00\\x00\\x00\\x1fx\" + // 0x03BF0300: 0x00001F78\n\t\"\\x03\\xc5\\x03\\x00\\x00\\x00\\x1fz\" + // 0x03C50300: 0x00001F7A\n\t\"\\x03\\xc9\\x03\\x00\\x00\\x00\\x1f|\" + // 0x03C90300: 0x00001F7C\n\t\"\\x1f\\x00\\x03E\\x00\\x00\\x1f\\x80\" + // 0x1F000345: 0x00001F80\n\t\"\\x1f\\x01\\x03E\\x00\\x00\\x1f\\x81\" + // 0x1F010345: 0x00001F81\n\t\"\\x1f\\x02\\x03E\\x00\\x00\\x1f\\x82\" + // 0x1F020345: 0x00001F82\n\t\"\\x1f\\x03\\x03E\\x00\\x00\\x1f\\x83\" + // 0x1F030345: 0x00001F83\n\t\"\\x1f\\x04\\x03E\\x00\\x00\\x1f\\x84\" + // 0x1F040345: 0x00001F84\n\t\"\\x1f\\x05\\x03E\\x00\\x00\\x1f\\x85\" + // 0x1F050345: 0x00001F85\n\t\"\\x1f\\x06\\x03E\\x00\\x00\\x1f\\x86\" + // 0x1F060345: 0x00001F86\n\t\"\\x1f\\a\\x03E\\x00\\x00\\x1f\\x87\" + // 0x1F070345: 0x00001F87\n\t\"\\x1f\\b\\x03E\\x00\\x00\\x1f\\x88\" + // 0x1F080345: 0x00001F88\n\t\"\\x1f\\t\\x03E\\x00\\x00\\x1f\\x89\" + // 0x1F090345: 0x00001F89\n\t\"\\x1f\\n\\x03E\\x00\\x00\\x1f\\x8a\" + // 0x1F0A0345: 0x00001F8A\n\t\"\\x1f\\v\\x03E\\x00\\x00\\x1f\\x8b\" + // 0x1F0B0345: 0x00001F8B\n\t\"\\x1f\\f\\x03E\\x00\\x00\\x1f\\x8c\" + // 0x1F0C0345: 0x00001F8C\n\t\"\\x1f\\r\\x03E\\x00\\x00\\x1f\\x8d\" + // 0x1F0D0345: 0x00001F8D\n\t\"\\x1f\\x0e\\x03E\\x00\\x00\\x1f\\x8e\" + // 0x1F0E0345: 0x00001F8E\n\t\"\\x1f\\x0f\\x03E\\x00\\x00\\x1f\\x8f\" + // 0x1F0F0345: 0x00001F8F\n\t\"\\x1f \\x03E\\x00\\x00\\x1f\\x90\" + // 0x1F200345: 0x00001F90\n\t\"\\x1f!\\x03E\\x00\\x00\\x1f\\x91\" + // 0x1F210345: 0x00001F91\n\t\"\\x1f\\\"\\x03E\\x00\\x00\\x1f\\x92\" + // 0x1F220345: 0x00001F92\n\t\"\\x1f#\\x03E\\x00\\x00\\x1f\\x93\" + // 0x1F230345: 0x00001F93\n\t\"\\x1f$\\x03E\\x00\\x00\\x1f\\x94\" + // 0x1F240345: 0x00001F94\n\t\"\\x1f%\\x03E\\x00\\x00\\x1f\\x95\" + // 0x1F250345: 0x00001F95\n\t\"\\x1f&\\x03E\\x00\\x00\\x1f\\x96\" + // 0x1F260345: 0x00001F96\n\t\"\\x1f'\\x03E\\x00\\x00\\x1f\\x97\" + // 0x1F270345: 0x00001F97\n\t\"\\x1f(\\x03E\\x00\\x00\\x1f\\x98\" + // 0x1F280345: 0x00001F98\n\t\"\\x1f)\\x03E\\x00\\x00\\x1f\\x99\" + // 0x1F290345: 0x00001F99\n\t\"\\x1f*\\x03E\\x00\\x00\\x1f\\x9a\" + // 0x1F2A0345: 0x00001F9A\n\t\"\\x1f+\\x03E\\x00\\x00\\x1f\\x9b\" + // 0x1F2B0345: 0x00001F9B\n\t\"\\x1f,\\x03E\\x00\\x00\\x1f\\x9c\" + // 0x1F2C0345: 0x00001F9C\n\t\"\\x1f-\\x03E\\x00\\x00\\x1f\\x9d\" + // 0x1F2D0345: 0x00001F9D\n\t\"\\x1f.\\x03E\\x00\\x00\\x1f\\x9e\" + // 0x1F2E0345: 0x00001F9E\n\t\"\\x1f/\\x03E\\x00\\x00\\x1f\\x9f\" + // 0x1F2F0345: 0x00001F9F\n\t\"\\x1f`\\x03E\\x00\\x00\\x1f\\xa0\" + // 0x1F600345: 0x00001FA0\n\t\"\\x1fa\\x03E\\x00\\x00\\x1f\\xa1\" + // 0x1F610345: 0x00001FA1\n\t\"\\x1fb\\x03E\\x00\\x00\\x1f\\xa2\" + // 0x1F620345: 0x00001FA2\n\t\"\\x1fc\\x03E\\x00\\x00\\x1f\\xa3\" + // 0x1F630345: 0x00001FA3\n\t\"\\x1fd\\x03E\\x00\\x00\\x1f\\xa4\" + // 0x1F640345: 0x00001FA4\n\t\"\\x1fe\\x03E\\x00\\x00\\x1f\\xa5\" + // 0x1F650345: 0x00001FA5\n\t\"\\x1ff\\x03E\\x00\\x00\\x1f\\xa6\" + // 0x1F660345: 0x00001FA6\n\t\"\\x1fg\\x03E\\x00\\x00\\x1f\\xa7\" + // 0x1F670345: 0x00001FA7\n\t\"\\x1fh\\x03E\\x00\\x00\\x1f\\xa8\" + // 0x1F680345: 0x00001FA8\n\t\"\\x1fi\\x03E\\x00\\x00\\x1f\\xa9\" + // 0x1F690345: 0x00001FA9\n\t\"\\x1fj\\x03E\\x00\\x00\\x1f\\xaa\" + // 0x1F6A0345: 0x00001FAA\n\t\"\\x1fk\\x03E\\x00\\x00\\x1f\\xab\" + // 0x1F6B0345: 0x00001FAB\n\t\"\\x1fl\\x03E\\x00\\x00\\x1f\\xac\" + // 0x1F6C0345: 0x00001FAC\n\t\"\\x1fm\\x03E\\x00\\x00\\x1f\\xad\" + // 0x1F6D0345: 0x00001FAD\n\t\"\\x1fn\\x03E\\x00\\x00\\x1f\\xae\" + // 0x1F6E0345: 0x00001FAE\n\t\"\\x1fo\\x03E\\x00\\x00\\x1f\\xaf\" + // 0x1F6F0345: 0x00001FAF\n\t\"\\x03\\xb1\\x03\\x06\\x00\\x00\\x1f\\xb0\" + // 0x03B10306: 0x00001FB0\n\t\"\\x03\\xb1\\x03\\x04\\x00\\x00\\x1f\\xb1\" + // 0x03B10304: 0x00001FB1\n\t\"\\x1fp\\x03E\\x00\\x00\\x1f\\xb2\" + // 0x1F700345: 0x00001FB2\n\t\"\\x03\\xb1\\x03E\\x00\\x00\\x1f\\xb3\" + // 0x03B10345: 0x00001FB3\n\t\"\\x03\\xac\\x03E\\x00\\x00\\x1f\\xb4\" + // 0x03AC0345: 0x00001FB4\n\t\"\\x03\\xb1\\x03B\\x00\\x00\\x1f\\xb6\" + // 0x03B10342: 0x00001FB6\n\t\"\\x1f\\xb6\\x03E\\x00\\x00\\x1f\\xb7\" + // 0x1FB60345: 0x00001FB7\n\t\"\\x03\\x91\\x03\\x06\\x00\\x00\\x1f\\xb8\" + // 0x03910306: 0x00001FB8\n\t\"\\x03\\x91\\x03\\x04\\x00\\x00\\x1f\\xb9\" + // 0x03910304: 0x00001FB9\n\t\"\\x03\\x91\\x03\\x00\\x00\\x00\\x1f\\xba\" + // 0x03910300: 0x00001FBA\n\t\"\\x03\\x91\\x03E\\x00\\x00\\x1f\\xbc\" + // 0x03910345: 0x00001FBC\n\t\"\\x00\\xa8\\x03B\\x00\\x00\\x1f\\xc1\" + // 0x00A80342: 0x00001FC1\n\t\"\\x1ft\\x03E\\x00\\x00\\x1f\\xc2\" + // 0x1F740345: 0x00001FC2\n\t\"\\x03\\xb7\\x03E\\x00\\x00\\x1f\\xc3\" + // 0x03B70345: 0x00001FC3\n\t\"\\x03\\xae\\x03E\\x00\\x00\\x1f\\xc4\" + // 0x03AE0345: 0x00001FC4\n\t\"\\x03\\xb7\\x03B\\x00\\x00\\x1f\\xc6\" + // 0x03B70342: 0x00001FC6\n\t\"\\x1f\\xc6\\x03E\\x00\\x00\\x1f\\xc7\" + // 0x1FC60345: 0x00001FC7\n\t\"\\x03\\x95\\x03\\x00\\x00\\x00\\x1f\\xc8\" + // 0x03950300: 0x00001FC8\n\t\"\\x03\\x97\\x03\\x00\\x00\\x00\\x1f\\xca\" + // 0x03970300: 0x00001FCA\n\t\"\\x03\\x97\\x03E\\x00\\x00\\x1f\\xcc\" + // 0x03970345: 0x00001FCC\n\t\"\\x1f\\xbf\\x03\\x00\\x00\\x00\\x1f\\xcd\" + // 0x1FBF0300: 0x00001FCD\n\t\"\\x1f\\xbf\\x03\\x01\\x00\\x00\\x1f\\xce\" + // 0x1FBF0301: 0x00001FCE\n\t\"\\x1f\\xbf\\x03B\\x00\\x00\\x1f\\xcf\" + // 0x1FBF0342: 0x00001FCF\n\t\"\\x03\\xb9\\x03\\x06\\x00\\x00\\x1f\\xd0\" + // 0x03B90306: 0x00001FD0\n\t\"\\x03\\xb9\\x03\\x04\\x00\\x00\\x1f\\xd1\" + // 0x03B90304: 0x00001FD1\n\t\"\\x03\\xca\\x03\\x00\\x00\\x00\\x1f\\xd2\" + // 0x03CA0300: 0x00001FD2\n\t\"\\x03\\xb9\\x03B\\x00\\x00\\x1f\\xd6\" + // 0x03B90342: 0x00001FD6\n\t\"\\x03\\xca\\x03B\\x00\\x00\\x1f\\xd7\" + // 0x03CA0342: 0x00001FD7\n\t\"\\x03\\x99\\x03\\x06\\x00\\x00\\x1f\\xd8\" + // 0x03990306: 0x00001FD8\n\t\"\\x03\\x99\\x03\\x04\\x00\\x00\\x1f\\xd9\" + // 0x03990304: 0x00001FD9\n\t\"\\x03\\x99\\x03\\x00\\x00\\x00\\x1f\\xda\" + // 0x03990300: 0x00001FDA\n\t\"\\x1f\\xfe\\x03\\x00\\x00\\x00\\x1f\\xdd\" + // 0x1FFE0300: 0x00001FDD\n\t\"\\x1f\\xfe\\x03\\x01\\x00\\x00\\x1f\\xde\" + // 0x1FFE0301: 0x00001FDE\n\t\"\\x1f\\xfe\\x03B\\x00\\x00\\x1f\\xdf\" + // 0x1FFE0342: 0x00001FDF\n\t\"\\x03\\xc5\\x03\\x06\\x00\\x00\\x1f\\xe0\" + // 0x03C50306: 0x00001FE0\n\t\"\\x03\\xc5\\x03\\x04\\x00\\x00\\x1f\\xe1\" + // 0x03C50304: 0x00001FE1\n\t\"\\x03\\xcb\\x03\\x00\\x00\\x00\\x1f\\xe2\" + // 0x03CB0300: 0x00001FE2\n\t\"\\x03\\xc1\\x03\\x13\\x00\\x00\\x1f\\xe4\" + // 0x03C10313: 0x00001FE4\n\t\"\\x03\\xc1\\x03\\x14\\x00\\x00\\x1f\\xe5\" + // 0x03C10314: 0x00001FE5\n\t\"\\x03\\xc5\\x03B\\x00\\x00\\x1f\\xe6\" + // 0x03C50342: 0x00001FE6\n\t\"\\x03\\xcb\\x03B\\x00\\x00\\x1f\\xe7\" + // 0x03CB0342: 0x00001FE7\n\t\"\\x03\\xa5\\x03\\x06\\x00\\x00\\x1f\\xe8\" + // 0x03A50306: 0x00001FE8\n\t\"\\x03\\xa5\\x03\\x04\\x00\\x00\\x1f\\xe9\" + // 0x03A50304: 0x00001FE9\n\t\"\\x03\\xa5\\x03\\x00\\x00\\x00\\x1f\\xea\" + // 0x03A50300: 0x00001FEA\n\t\"\\x03\\xa1\\x03\\x14\\x00\\x00\\x1f\\xec\" + // 0x03A10314: 0x00001FEC\n\t\"\\x00\\xa8\\x03\\x00\\x00\\x00\\x1f\\xed\" + // 0x00A80300: 0x00001FED\n\t\"\\x1f|\\x03E\\x00\\x00\\x1f\\xf2\" + // 0x1F7C0345: 0x00001FF2\n\t\"\\x03\\xc9\\x03E\\x00\\x00\\x1f\\xf3\" + // 0x03C90345: 0x00001FF3\n\t\"\\x03\\xce\\x03E\\x00\\x00\\x1f\\xf4\" + // 0x03CE0345: 0x00001FF4\n\t\"\\x03\\xc9\\x03B\\x00\\x00\\x1f\\xf6\" + // 0x03C90342: 0x00001FF6\n\t\"\\x1f\\xf6\\x03E\\x00\\x00\\x1f\\xf7\" + // 0x1FF60345: 0x00001FF7\n\t\"\\x03\\x9f\\x03\\x00\\x00\\x00\\x1f\\xf8\" + // 0x039F0300: 0x00001FF8\n\t\"\\x03\\xa9\\x03\\x00\\x00\\x00\\x1f\\xfa\" + // 0x03A90300: 0x00001FFA\n\t\"\\x03\\xa9\\x03E\\x00\\x00\\x1f\\xfc\" + // 0x03A90345: 0x00001FFC\n\t\"!\\x90\\x038\\x00\\x00!\\x9a\" + // 0x21900338: 0x0000219A\n\t\"!\\x92\\x038\\x00\\x00!\\x9b\" + // 0x21920338: 0x0000219B\n\t\"!\\x94\\x038\\x00\\x00!\\xae\" + // 0x21940338: 0x000021AE\n\t\"!\\xd0\\x038\\x00\\x00!\\xcd\" + // 0x21D00338: 0x000021CD\n\t\"!\\xd4\\x038\\x00\\x00!\\xce\" + // 0x21D40338: 0x000021CE\n\t\"!\\xd2\\x038\\x00\\x00!\\xcf\" + // 0x21D20338: 0x000021CF\n\t\"\\\"\\x03\\x038\\x00\\x00\\\"\\x04\" + // 0x22030338: 0x00002204\n\t\"\\\"\\b\\x038\\x00\\x00\\\"\\t\" + // 0x22080338: 0x00002209\n\t\"\\\"\\v\\x038\\x00\\x00\\\"\\f\" + // 0x220B0338: 0x0000220C\n\t\"\\\"#\\x038\\x00\\x00\\\"$\" + // 0x22230338: 0x00002224\n\t\"\\\"%\\x038\\x00\\x00\\\"&\" + // 0x22250338: 0x00002226\n\t\"\\\"<\\x038\\x00\\x00\\\"A\" + // 0x223C0338: 0x00002241\n\t\"\\\"C\\x038\\x00\\x00\\\"D\" + // 0x22430338: 0x00002244\n\t\"\\\"E\\x038\\x00\\x00\\\"G\" + // 0x22450338: 0x00002247\n\t\"\\\"H\\x038\\x00\\x00\\\"I\" + // 0x22480338: 0x00002249\n\t\"\\x00=\\x038\\x00\\x00\\\"`\" + // 0x003D0338: 0x00002260\n\t\"\\\"a\\x038\\x00\\x00\\\"b\" + // 0x22610338: 0x00002262\n\t\"\\\"M\\x038\\x00\\x00\\\"m\" + // 0x224D0338: 0x0000226D\n\t\"\\x00<\\x038\\x00\\x00\\\"n\" + // 0x003C0338: 0x0000226E\n\t\"\\x00>\\x038\\x00\\x00\\\"o\" + // 0x003E0338: 0x0000226F\n\t\"\\\"d\\x038\\x00\\x00\\\"p\" + // 0x22640338: 0x00002270\n\t\"\\\"e\\x038\\x00\\x00\\\"q\" + // 0x22650338: 0x00002271\n\t\"\\\"r\\x038\\x00\\x00\\\"t\" + // 0x22720338: 0x00002274\n\t\"\\\"s\\x038\\x00\\x00\\\"u\" + // 0x22730338: 0x00002275\n\t\"\\\"v\\x038\\x00\\x00\\\"x\" + // 0x22760338: 0x00002278\n\t\"\\\"w\\x038\\x00\\x00\\\"y\" + // 0x22770338: 0x00002279\n\t\"\\\"z\\x038\\x00\\x00\\\"\\x80\" + // 0x227A0338: 0x00002280\n\t\"\\\"{\\x038\\x00\\x00\\\"\\x81\" + // 0x227B0338: 0x00002281\n\t\"\\\"\\x82\\x038\\x00\\x00\\\"\\x84\" + // 0x22820338: 0x00002284\n\t\"\\\"\\x83\\x038\\x00\\x00\\\"\\x85\" + // 0x22830338: 0x00002285\n\t\"\\\"\\x86\\x038\\x00\\x00\\\"\\x88\" + // 0x22860338: 0x00002288\n\t\"\\\"\\x87\\x038\\x00\\x00\\\"\\x89\" + // 0x22870338: 0x00002289\n\t\"\\\"\\xa2\\x038\\x00\\x00\\\"\\xac\" + // 0x22A20338: 0x000022AC\n\t\"\\\"\\xa8\\x038\\x00\\x00\\\"\\xad\" + // 0x22A80338: 0x000022AD\n\t\"\\\"\\xa9\\x038\\x00\\x00\\\"\\xae\" + // 0x22A90338: 0x000022AE\n\t\"\\\"\\xab\\x038\\x00\\x00\\\"\\xaf\" + // 0x22AB0338: 0x000022AF\n\t\"\\\"|\\x038\\x00\\x00\\\"\\xe0\" + // 0x227C0338: 0x000022E0\n\t\"\\\"}\\x038\\x00\\x00\\\"\\xe1\" + // 0x227D0338: 0x000022E1\n\t\"\\\"\\x91\\x038\\x00\\x00\\\"\\xe2\" + // 0x22910338: 0x000022E2\n\t\"\\\"\\x92\\x038\\x00\\x00\\\"\\xe3\" + // 0x22920338: 0x000022E3\n\t\"\\\"\\xb2\\x038\\x00\\x00\\\"\\xea\" + // 0x22B20338: 0x000022EA\n\t\"\\\"\\xb3\\x038\\x00\\x00\\\"\\xeb\" + // 0x22B30338: 0x000022EB\n\t\"\\\"\\xb4\\x038\\x00\\x00\\\"\\xec\" + // 0x22B40338: 0x000022EC\n\t\"\\\"\\xb5\\x038\\x00\\x00\\\"\\xed\" + // 0x22B50338: 0x000022ED\n\t\"0K0\\x99\\x00\\x000L\" + // 0x304B3099: 0x0000304C\n\t\"0M0\\x99\\x00\\x000N\" + // 0x304D3099: 0x0000304E\n\t\"0O0\\x99\\x00\\x000P\" + // 0x304F3099: 0x00003050\n\t\"0Q0\\x99\\x00\\x000R\" + // 0x30513099: 0x00003052\n\t\"0S0\\x99\\x00\\x000T\" + // 0x30533099: 0x00003054\n\t\"0U0\\x99\\x00\\x000V\" + // 0x30553099: 0x00003056\n\t\"0W0\\x99\\x00\\x000X\" + // 0x30573099: 0x00003058\n\t\"0Y0\\x99\\x00\\x000Z\" + // 0x30593099: 0x0000305A\n\t\"0[0\\x99\\x00\\x000\\\\\" + // 0x305B3099: 0x0000305C\n\t\"0]0\\x99\\x00\\x000^\" + // 0x305D3099: 0x0000305E\n\t\"0_0\\x99\\x00\\x000`\" + // 0x305F3099: 0x00003060\n\t\"0a0\\x99\\x00\\x000b\" + // 0x30613099: 0x00003062\n\t\"0d0\\x99\\x00\\x000e\" + // 0x30643099: 0x00003065\n\t\"0f0\\x99\\x00\\x000g\" + // 0x30663099: 0x00003067\n\t\"0h0\\x99\\x00\\x000i\" + // 0x30683099: 0x00003069\n\t\"0o0\\x99\\x00\\x000p\" + // 0x306F3099: 0x00003070\n\t\"0o0\\x9a\\x00\\x000q\" + // 0x306F309A: 0x00003071\n\t\"0r0\\x99\\x00\\x000s\" + // 0x30723099: 0x00003073\n\t\"0r0\\x9a\\x00\\x000t\" + // 0x3072309A: 0x00003074\n\t\"0u0\\x99\\x00\\x000v\" + // 0x30753099: 0x00003076\n\t\"0u0\\x9a\\x00\\x000w\" + // 0x3075309A: 0x00003077\n\t\"0x0\\x99\\x00\\x000y\" + // 0x30783099: 0x00003079\n\t\"0x0\\x9a\\x00\\x000z\" + // 0x3078309A: 0x0000307A\n\t\"0{0\\x99\\x00\\x000|\" + // 0x307B3099: 0x0000307C\n\t\"0{0\\x9a\\x00\\x000}\" + // 0x307B309A: 0x0000307D\n\t\"0F0\\x99\\x00\\x000\\x94\" + // 0x30463099: 0x00003094\n\t\"0\\x9d0\\x99\\x00\\x000\\x9e\" + // 0x309D3099: 0x0000309E\n\t\"0\\xab0\\x99\\x00\\x000\\xac\" + // 0x30AB3099: 0x000030AC\n\t\"0\\xad0\\x99\\x00\\x000\\xae\" + // 0x30AD3099: 0x000030AE\n\t\"0\\xaf0\\x99\\x00\\x000\\xb0\" + // 0x30AF3099: 0x000030B0\n\t\"0\\xb10\\x99\\x00\\x000\\xb2\" + // 0x30B13099: 0x000030B2\n\t\"0\\xb30\\x99\\x00\\x000\\xb4\" + // 0x30B33099: 0x000030B4\n\t\"0\\xb50\\x99\\x00\\x000\\xb6\" + // 0x30B53099: 0x000030B6\n\t\"0\\xb70\\x99\\x00\\x000\\xb8\" + // 0x30B73099: 0x000030B8\n\t\"0\\xb90\\x99\\x00\\x000\\xba\" + // 0x30B93099: 0x000030BA\n\t\"0\\xbb0\\x99\\x00\\x000\\xbc\" + // 0x30BB3099: 0x000030BC\n\t\"0\\xbd0\\x99\\x00\\x000\\xbe\" + // 0x30BD3099: 0x000030BE\n\t\"0\\xbf0\\x99\\x00\\x000\\xc0\" + // 0x30BF3099: 0x000030C0\n\t\"0\\xc10\\x99\\x00\\x000\\xc2\" + // 0x30C13099: 0x000030C2\n\t\"0\\xc40\\x99\\x00\\x000\\xc5\" + // 0x30C43099: 0x000030C5\n\t\"0\\xc60\\x99\\x00\\x000\\xc7\" + // 0x30C63099: 0x000030C7\n\t\"0\\xc80\\x99\\x00\\x000\\xc9\" + // 0x30C83099: 0x000030C9\n\t\"0\\xcf0\\x99\\x00\\x000\\xd0\" + // 0x30CF3099: 0x000030D0\n\t\"0\\xcf0\\x9a\\x00\\x000\\xd1\" + // 0x30CF309A: 0x000030D1\n\t\"0\\xd20\\x99\\x00\\x000\\xd3\" + // 0x30D23099: 0x000030D3\n\t\"0\\xd20\\x9a\\x00\\x000\\xd4\" + // 0x30D2309A: 0x000030D4\n\t\"0\\xd50\\x99\\x00\\x000\\xd6\" + // 0x30D53099: 0x000030D6\n\t\"0\\xd50\\x9a\\x00\\x000\\xd7\" + // 0x30D5309A: 0x000030D7\n\t\"0\\xd80\\x99\\x00\\x000\\xd9\" + // 0x30D83099: 0x000030D9\n\t\"0\\xd80\\x9a\\x00\\x000\\xda\" + // 0x30D8309A: 0x000030DA\n\t\"0\\xdb0\\x99\\x00\\x000\\xdc\" + // 0x30DB3099: 0x000030DC\n\t\"0\\xdb0\\x9a\\x00\\x000\\xdd\" + // 0x30DB309A: 0x000030DD\n\t\"0\\xa60\\x99\\x00\\x000\\xf4\" + // 0x30A63099: 0x000030F4\n\t\"0\\xef0\\x99\\x00\\x000\\xf7\" + // 0x30EF3099: 0x000030F7\n\t\"0\\xf00\\x99\\x00\\x000\\xf8\" + // 0x30F03099: 0x000030F8\n\t\"0\\xf10\\x99\\x00\\x000\\xf9\" + // 0x30F13099: 0x000030F9\n\t\"0\\xf20\\x99\\x00\\x000\\xfa\" + // 0x30F23099: 0x000030FA\n\t\"0\\xfd0\\x99\\x00\\x000\\xfe\" + // 0x30FD3099: 0x000030FE\n\t\"\\x10\\x99\\x10\\xba\\x00\\x01\\x10\\x9a\" + // 0x109910BA: 0x0001109A\n\t\"\\x10\\x9b\\x10\\xba\\x00\\x01\\x10\\x9c\" + // 0x109B10BA: 0x0001109C\n\t\"\\x10\\xa5\\x10\\xba\\x00\\x01\\x10\\xab\" + // 0x10A510BA: 0x000110AB\n\t\"\\x111\\x11'\\x00\\x01\\x11.\" + // 0x11311127: 0x0001112E\n\t\"\\x112\\x11'\\x00\\x01\\x11/\" + // 0x11321127: 0x0001112F\n\t\"\\x13G\\x13>\\x00\\x01\\x13K\" + // 0x1347133E: 0x0001134B\n\t\"\\x13G\\x13W\\x00\\x01\\x13L\" + // 0x13471357: 0x0001134C\n\t\"\\x14\\xb9\\x14\\xba\\x00\\x01\\x14\\xbb\" + // 0x14B914BA: 0x000114BB\n\t\"\\x14\\xb9\\x14\\xb0\\x00\\x01\\x14\\xbc\" + // 0x14B914B0: 0x000114BC\n\t\"\\x14\\xb9\\x14\\xbd\\x00\\x01\\x14\\xbe\" + // 0x14B914BD: 0x000114BE\n\t\"\\x15\\xb8\\x15\\xaf\\x00\\x01\\x15\\xba\" + // 0x15B815AF: 0x000115BA\n\t\"\\x15\\xb9\\x15\\xaf\\x00\\x01\\x15\\xbb\" + // 0x15B915AF: 0x000115BB\n\t\"\"\n\t// Total size of tables: 55KB (55977 bytes)\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/norm/tables13.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n//go:build go1.16 && !go1.21\n\npackage norm\n\nimport \"sync\"\n\nconst (\n\t// Version is the Unicode edition from which the tables are derived.\n\tVersion = \"13.0.0\"\n\n\t// MaxTransformChunkSize indicates the maximum number of bytes that Transform\n\t// may need to write atomically for any Form. Making a destination buffer at\n\t// least this size ensures that Transform can always make progress and that\n\t// the user does not need to grow the buffer on an ErrShortDst.\n\tMaxTransformChunkSize = 35 + maxNonStarters*4\n)\n\nvar ccc = [56]uint8{\n\t0, 1, 6, 7, 8, 9, 10, 11,\n\t12, 13, 14, 15, 16, 17, 18, 19,\n\t20, 21, 22, 23, 24, 25, 26, 27,\n\t28, 29, 30, 31, 32, 33, 34, 35,\n\t36, 84, 91, 103, 107, 118, 122, 129,\n\t130, 132, 202, 214, 216, 218, 220, 222,\n\t224, 226, 228, 230, 232, 233, 234, 240,\n}\n\nconst (\n\tfirstMulti            = 0x1870\n\tfirstCCC              = 0x2CAB\n\tendMulti              = 0x2F77\n\tfirstLeadingCCC       = 0x49C5\n\tfirstCCCZeroExcept    = 0x4A8F\n\tfirstStarterWithNLead = 0x4AB6\n\tlastDecomp            = 0x4AB8\n\tmaxDecomp             = 0x8000\n)\n\n// decomps: 19128 bytes\nvar decomps = [...]byte{\n\t// Bytes 0 - 3f\n\t0x00, 0x41, 0x20, 0x41, 0x21, 0x41, 0x22, 0x41,\n\t0x23, 0x41, 0x24, 0x41, 0x25, 0x41, 0x26, 0x41,\n\t0x27, 0x41, 0x28, 0x41, 0x29, 0x41, 0x2A, 0x41,\n\t0x2B, 0x41, 0x2C, 0x41, 0x2D, 0x41, 0x2E, 0x41,\n\t0x2F, 0x41, 0x30, 0x41, 0x31, 0x41, 0x32, 0x41,\n\t0x33, 0x41, 0x34, 0x41, 0x35, 0x41, 0x36, 0x41,\n\t0x37, 0x41, 0x38, 0x41, 0x39, 0x41, 0x3A, 0x41,\n\t0x3B, 0x41, 0x3C, 0x41, 0x3D, 0x41, 0x3E, 0x41,\n\t// Bytes 40 - 7f\n\t0x3F, 0x41, 0x40, 0x41, 0x41, 0x41, 0x42, 0x41,\n\t0x43, 0x41, 0x44, 0x41, 0x45, 0x41, 0x46, 0x41,\n\t0x47, 0x41, 0x48, 0x41, 0x49, 0x41, 0x4A, 0x41,\n\t0x4B, 0x41, 0x4C, 0x41, 0x4D, 0x41, 0x4E, 0x41,\n\t0x4F, 0x41, 0x50, 0x41, 0x51, 0x41, 0x52, 0x41,\n\t0x53, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41,\n\t0x57, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5A, 0x41,\n\t0x5B, 0x41, 0x5C, 0x41, 0x5D, 0x41, 0x5E, 0x41,\n\t// Bytes 80 - bf\n\t0x5F, 0x41, 0x60, 0x41, 0x61, 0x41, 0x62, 0x41,\n\t0x63, 0x41, 0x64, 0x41, 0x65, 0x41, 0x66, 0x41,\n\t0x67, 0x41, 0x68, 0x41, 0x69, 0x41, 0x6A, 0x41,\n\t0x6B, 0x41, 0x6C, 0x41, 0x6D, 0x41, 0x6E, 0x41,\n\t0x6F, 0x41, 0x70, 0x41, 0x71, 0x41, 0x72, 0x41,\n\t0x73, 0x41, 0x74, 0x41, 0x75, 0x41, 0x76, 0x41,\n\t0x77, 0x41, 0x78, 0x41, 0x79, 0x41, 0x7A, 0x41,\n\t0x7B, 0x41, 0x7C, 0x41, 0x7D, 0x41, 0x7E, 0x42,\n\t// Bytes c0 - ff\n\t0xC2, 0xA2, 0x42, 0xC2, 0xA3, 0x42, 0xC2, 0xA5,\n\t0x42, 0xC2, 0xA6, 0x42, 0xC2, 0xAC, 0x42, 0xC2,\n\t0xB7, 0x42, 0xC3, 0x86, 0x42, 0xC3, 0xB0, 0x42,\n\t0xC4, 0xA6, 0x42, 0xC4, 0xA7, 0x42, 0xC4, 0xB1,\n\t0x42, 0xC5, 0x8B, 0x42, 0xC5, 0x93, 0x42, 0xC6,\n\t0x8E, 0x42, 0xC6, 0x90, 0x42, 0xC6, 0xAB, 0x42,\n\t0xC8, 0xA2, 0x42, 0xC8, 0xB7, 0x42, 0xC9, 0x90,\n\t0x42, 0xC9, 0x91, 0x42, 0xC9, 0x92, 0x42, 0xC9,\n\t// Bytes 100 - 13f\n\t0x94, 0x42, 0xC9, 0x95, 0x42, 0xC9, 0x99, 0x42,\n\t0xC9, 0x9B, 0x42, 0xC9, 0x9C, 0x42, 0xC9, 0x9F,\n\t0x42, 0xC9, 0xA1, 0x42, 0xC9, 0xA3, 0x42, 0xC9,\n\t0xA5, 0x42, 0xC9, 0xA6, 0x42, 0xC9, 0xA8, 0x42,\n\t0xC9, 0xA9, 0x42, 0xC9, 0xAA, 0x42, 0xC9, 0xAB,\n\t0x42, 0xC9, 0xAD, 0x42, 0xC9, 0xAF, 0x42, 0xC9,\n\t0xB0, 0x42, 0xC9, 0xB1, 0x42, 0xC9, 0xB2, 0x42,\n\t0xC9, 0xB3, 0x42, 0xC9, 0xB4, 0x42, 0xC9, 0xB5,\n\t// Bytes 140 - 17f\n\t0x42, 0xC9, 0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9,\n\t0xBB, 0x42, 0xCA, 0x81, 0x42, 0xCA, 0x82, 0x42,\n\t0xCA, 0x83, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A,\n\t0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA,\n\t0x8D, 0x42, 0xCA, 0x90, 0x42, 0xCA, 0x91, 0x42,\n\t0xCA, 0x92, 0x42, 0xCA, 0x95, 0x42, 0xCA, 0x9D,\n\t0x42, 0xCA, 0x9F, 0x42, 0xCA, 0xB9, 0x42, 0xCE,\n\t0x91, 0x42, 0xCE, 0x92, 0x42, 0xCE, 0x93, 0x42,\n\t// Bytes 180 - 1bf\n\t0xCE, 0x94, 0x42, 0xCE, 0x95, 0x42, 0xCE, 0x96,\n\t0x42, 0xCE, 0x97, 0x42, 0xCE, 0x98, 0x42, 0xCE,\n\t0x99, 0x42, 0xCE, 0x9A, 0x42, 0xCE, 0x9B, 0x42,\n\t0xCE, 0x9C, 0x42, 0xCE, 0x9D, 0x42, 0xCE, 0x9E,\n\t0x42, 0xCE, 0x9F, 0x42, 0xCE, 0xA0, 0x42, 0xCE,\n\t0xA1, 0x42, 0xCE, 0xA3, 0x42, 0xCE, 0xA4, 0x42,\n\t0xCE, 0xA5, 0x42, 0xCE, 0xA6, 0x42, 0xCE, 0xA7,\n\t0x42, 0xCE, 0xA8, 0x42, 0xCE, 0xA9, 0x42, 0xCE,\n\t// Bytes 1c0 - 1ff\n\t0xB1, 0x42, 0xCE, 0xB2, 0x42, 0xCE, 0xB3, 0x42,\n\t0xCE, 0xB4, 0x42, 0xCE, 0xB5, 0x42, 0xCE, 0xB6,\n\t0x42, 0xCE, 0xB7, 0x42, 0xCE, 0xB8, 0x42, 0xCE,\n\t0xB9, 0x42, 0xCE, 0xBA, 0x42, 0xCE, 0xBB, 0x42,\n\t0xCE, 0xBC, 0x42, 0xCE, 0xBD, 0x42, 0xCE, 0xBE,\n\t0x42, 0xCE, 0xBF, 0x42, 0xCF, 0x80, 0x42, 0xCF,\n\t0x81, 0x42, 0xCF, 0x82, 0x42, 0xCF, 0x83, 0x42,\n\t0xCF, 0x84, 0x42, 0xCF, 0x85, 0x42, 0xCF, 0x86,\n\t// Bytes 200 - 23f\n\t0x42, 0xCF, 0x87, 0x42, 0xCF, 0x88, 0x42, 0xCF,\n\t0x89, 0x42, 0xCF, 0x9C, 0x42, 0xCF, 0x9D, 0x42,\n\t0xD0, 0xBD, 0x42, 0xD1, 0x8A, 0x42, 0xD1, 0x8C,\n\t0x42, 0xD7, 0x90, 0x42, 0xD7, 0x91, 0x42, 0xD7,\n\t0x92, 0x42, 0xD7, 0x93, 0x42, 0xD7, 0x94, 0x42,\n\t0xD7, 0x9B, 0x42, 0xD7, 0x9C, 0x42, 0xD7, 0x9D,\n\t0x42, 0xD7, 0xA2, 0x42, 0xD7, 0xA8, 0x42, 0xD7,\n\t0xAA, 0x42, 0xD8, 0xA1, 0x42, 0xD8, 0xA7, 0x42,\n\t// Bytes 240 - 27f\n\t0xD8, 0xA8, 0x42, 0xD8, 0xA9, 0x42, 0xD8, 0xAA,\n\t0x42, 0xD8, 0xAB, 0x42, 0xD8, 0xAC, 0x42, 0xD8,\n\t0xAD, 0x42, 0xD8, 0xAE, 0x42, 0xD8, 0xAF, 0x42,\n\t0xD8, 0xB0, 0x42, 0xD8, 0xB1, 0x42, 0xD8, 0xB2,\n\t0x42, 0xD8, 0xB3, 0x42, 0xD8, 0xB4, 0x42, 0xD8,\n\t0xB5, 0x42, 0xD8, 0xB6, 0x42, 0xD8, 0xB7, 0x42,\n\t0xD8, 0xB8, 0x42, 0xD8, 0xB9, 0x42, 0xD8, 0xBA,\n\t0x42, 0xD9, 0x81, 0x42, 0xD9, 0x82, 0x42, 0xD9,\n\t// Bytes 280 - 2bf\n\t0x83, 0x42, 0xD9, 0x84, 0x42, 0xD9, 0x85, 0x42,\n\t0xD9, 0x86, 0x42, 0xD9, 0x87, 0x42, 0xD9, 0x88,\n\t0x42, 0xD9, 0x89, 0x42, 0xD9, 0x8A, 0x42, 0xD9,\n\t0xAE, 0x42, 0xD9, 0xAF, 0x42, 0xD9, 0xB1, 0x42,\n\t0xD9, 0xB9, 0x42, 0xD9, 0xBA, 0x42, 0xD9, 0xBB,\n\t0x42, 0xD9, 0xBE, 0x42, 0xD9, 0xBF, 0x42, 0xDA,\n\t0x80, 0x42, 0xDA, 0x83, 0x42, 0xDA, 0x84, 0x42,\n\t0xDA, 0x86, 0x42, 0xDA, 0x87, 0x42, 0xDA, 0x88,\n\t// Bytes 2c0 - 2ff\n\t0x42, 0xDA, 0x8C, 0x42, 0xDA, 0x8D, 0x42, 0xDA,\n\t0x8E, 0x42, 0xDA, 0x91, 0x42, 0xDA, 0x98, 0x42,\n\t0xDA, 0xA1, 0x42, 0xDA, 0xA4, 0x42, 0xDA, 0xA6,\n\t0x42, 0xDA, 0xA9, 0x42, 0xDA, 0xAD, 0x42, 0xDA,\n\t0xAF, 0x42, 0xDA, 0xB1, 0x42, 0xDA, 0xB3, 0x42,\n\t0xDA, 0xBA, 0x42, 0xDA, 0xBB, 0x42, 0xDA, 0xBE,\n\t0x42, 0xDB, 0x81, 0x42, 0xDB, 0x85, 0x42, 0xDB,\n\t0x86, 0x42, 0xDB, 0x87, 0x42, 0xDB, 0x88, 0x42,\n\t// Bytes 300 - 33f\n\t0xDB, 0x89, 0x42, 0xDB, 0x8B, 0x42, 0xDB, 0x8C,\n\t0x42, 0xDB, 0x90, 0x42, 0xDB, 0x92, 0x43, 0xE0,\n\t0xBC, 0x8B, 0x43, 0xE1, 0x83, 0x9C, 0x43, 0xE1,\n\t0x84, 0x80, 0x43, 0xE1, 0x84, 0x81, 0x43, 0xE1,\n\t0x84, 0x82, 0x43, 0xE1, 0x84, 0x83, 0x43, 0xE1,\n\t0x84, 0x84, 0x43, 0xE1, 0x84, 0x85, 0x43, 0xE1,\n\t0x84, 0x86, 0x43, 0xE1, 0x84, 0x87, 0x43, 0xE1,\n\t0x84, 0x88, 0x43, 0xE1, 0x84, 0x89, 0x43, 0xE1,\n\t// Bytes 340 - 37f\n\t0x84, 0x8A, 0x43, 0xE1, 0x84, 0x8B, 0x43, 0xE1,\n\t0x84, 0x8C, 0x43, 0xE1, 0x84, 0x8D, 0x43, 0xE1,\n\t0x84, 0x8E, 0x43, 0xE1, 0x84, 0x8F, 0x43, 0xE1,\n\t0x84, 0x90, 0x43, 0xE1, 0x84, 0x91, 0x43, 0xE1,\n\t0x84, 0x92, 0x43, 0xE1, 0x84, 0x94, 0x43, 0xE1,\n\t0x84, 0x95, 0x43, 0xE1, 0x84, 0x9A, 0x43, 0xE1,\n\t0x84, 0x9C, 0x43, 0xE1, 0x84, 0x9D, 0x43, 0xE1,\n\t0x84, 0x9E, 0x43, 0xE1, 0x84, 0xA0, 0x43, 0xE1,\n\t// Bytes 380 - 3bf\n\t0x84, 0xA1, 0x43, 0xE1, 0x84, 0xA2, 0x43, 0xE1,\n\t0x84, 0xA3, 0x43, 0xE1, 0x84, 0xA7, 0x43, 0xE1,\n\t0x84, 0xA9, 0x43, 0xE1, 0x84, 0xAB, 0x43, 0xE1,\n\t0x84, 0xAC, 0x43, 0xE1, 0x84, 0xAD, 0x43, 0xE1,\n\t0x84, 0xAE, 0x43, 0xE1, 0x84, 0xAF, 0x43, 0xE1,\n\t0x84, 0xB2, 0x43, 0xE1, 0x84, 0xB6, 0x43, 0xE1,\n\t0x85, 0x80, 0x43, 0xE1, 0x85, 0x87, 0x43, 0xE1,\n\t0x85, 0x8C, 0x43, 0xE1, 0x85, 0x97, 0x43, 0xE1,\n\t// Bytes 3c0 - 3ff\n\t0x85, 0x98, 0x43, 0xE1, 0x85, 0x99, 0x43, 0xE1,\n\t0x85, 0xA0, 0x43, 0xE1, 0x86, 0x84, 0x43, 0xE1,\n\t0x86, 0x85, 0x43, 0xE1, 0x86, 0x88, 0x43, 0xE1,\n\t0x86, 0x91, 0x43, 0xE1, 0x86, 0x92, 0x43, 0xE1,\n\t0x86, 0x94, 0x43, 0xE1, 0x86, 0x9E, 0x43, 0xE1,\n\t0x86, 0xA1, 0x43, 0xE1, 0x87, 0x87, 0x43, 0xE1,\n\t0x87, 0x88, 0x43, 0xE1, 0x87, 0x8C, 0x43, 0xE1,\n\t0x87, 0x8E, 0x43, 0xE1, 0x87, 0x93, 0x43, 0xE1,\n\t// Bytes 400 - 43f\n\t0x87, 0x97, 0x43, 0xE1, 0x87, 0x99, 0x43, 0xE1,\n\t0x87, 0x9D, 0x43, 0xE1, 0x87, 0x9F, 0x43, 0xE1,\n\t0x87, 0xB1, 0x43, 0xE1, 0x87, 0xB2, 0x43, 0xE1,\n\t0xB4, 0x82, 0x43, 0xE1, 0xB4, 0x96, 0x43, 0xE1,\n\t0xB4, 0x97, 0x43, 0xE1, 0xB4, 0x9C, 0x43, 0xE1,\n\t0xB4, 0x9D, 0x43, 0xE1, 0xB4, 0xA5, 0x43, 0xE1,\n\t0xB5, 0xBB, 0x43, 0xE1, 0xB6, 0x85, 0x43, 0xE2,\n\t0x80, 0x82, 0x43, 0xE2, 0x80, 0x83, 0x43, 0xE2,\n\t// Bytes 440 - 47f\n\t0x80, 0x90, 0x43, 0xE2, 0x80, 0x93, 0x43, 0xE2,\n\t0x80, 0x94, 0x43, 0xE2, 0x82, 0xA9, 0x43, 0xE2,\n\t0x86, 0x90, 0x43, 0xE2, 0x86, 0x91, 0x43, 0xE2,\n\t0x86, 0x92, 0x43, 0xE2, 0x86, 0x93, 0x43, 0xE2,\n\t0x88, 0x82, 0x43, 0xE2, 0x88, 0x87, 0x43, 0xE2,\n\t0x88, 0x91, 0x43, 0xE2, 0x88, 0x92, 0x43, 0xE2,\n\t0x94, 0x82, 0x43, 0xE2, 0x96, 0xA0, 0x43, 0xE2,\n\t0x97, 0x8B, 0x43, 0xE2, 0xA6, 0x85, 0x43, 0xE2,\n\t// Bytes 480 - 4bf\n\t0xA6, 0x86, 0x43, 0xE2, 0xB5, 0xA1, 0x43, 0xE3,\n\t0x80, 0x81, 0x43, 0xE3, 0x80, 0x82, 0x43, 0xE3,\n\t0x80, 0x88, 0x43, 0xE3, 0x80, 0x89, 0x43, 0xE3,\n\t0x80, 0x8A, 0x43, 0xE3, 0x80, 0x8B, 0x43, 0xE3,\n\t0x80, 0x8C, 0x43, 0xE3, 0x80, 0x8D, 0x43, 0xE3,\n\t0x80, 0x8E, 0x43, 0xE3, 0x80, 0x8F, 0x43, 0xE3,\n\t0x80, 0x90, 0x43, 0xE3, 0x80, 0x91, 0x43, 0xE3,\n\t0x80, 0x92, 0x43, 0xE3, 0x80, 0x94, 0x43, 0xE3,\n\t// Bytes 4c0 - 4ff\n\t0x80, 0x95, 0x43, 0xE3, 0x80, 0x96, 0x43, 0xE3,\n\t0x80, 0x97, 0x43, 0xE3, 0x82, 0xA1, 0x43, 0xE3,\n\t0x82, 0xA2, 0x43, 0xE3, 0x82, 0xA3, 0x43, 0xE3,\n\t0x82, 0xA4, 0x43, 0xE3, 0x82, 0xA5, 0x43, 0xE3,\n\t0x82, 0xA6, 0x43, 0xE3, 0x82, 0xA7, 0x43, 0xE3,\n\t0x82, 0xA8, 0x43, 0xE3, 0x82, 0xA9, 0x43, 0xE3,\n\t0x82, 0xAA, 0x43, 0xE3, 0x82, 0xAB, 0x43, 0xE3,\n\t0x82, 0xAD, 0x43, 0xE3, 0x82, 0xAF, 0x43, 0xE3,\n\t// Bytes 500 - 53f\n\t0x82, 0xB1, 0x43, 0xE3, 0x82, 0xB3, 0x43, 0xE3,\n\t0x82, 0xB5, 0x43, 0xE3, 0x82, 0xB7, 0x43, 0xE3,\n\t0x82, 0xB9, 0x43, 0xE3, 0x82, 0xBB, 0x43, 0xE3,\n\t0x82, 0xBD, 0x43, 0xE3, 0x82, 0xBF, 0x43, 0xE3,\n\t0x83, 0x81, 0x43, 0xE3, 0x83, 0x83, 0x43, 0xE3,\n\t0x83, 0x84, 0x43, 0xE3, 0x83, 0x86, 0x43, 0xE3,\n\t0x83, 0x88, 0x43, 0xE3, 0x83, 0x8A, 0x43, 0xE3,\n\t0x83, 0x8B, 0x43, 0xE3, 0x83, 0x8C, 0x43, 0xE3,\n\t// Bytes 540 - 57f\n\t0x83, 0x8D, 0x43, 0xE3, 0x83, 0x8E, 0x43, 0xE3,\n\t0x83, 0x8F, 0x43, 0xE3, 0x83, 0x92, 0x43, 0xE3,\n\t0x83, 0x95, 0x43, 0xE3, 0x83, 0x98, 0x43, 0xE3,\n\t0x83, 0x9B, 0x43, 0xE3, 0x83, 0x9E, 0x43, 0xE3,\n\t0x83, 0x9F, 0x43, 0xE3, 0x83, 0xA0, 0x43, 0xE3,\n\t0x83, 0xA1, 0x43, 0xE3, 0x83, 0xA2, 0x43, 0xE3,\n\t0x83, 0xA3, 0x43, 0xE3, 0x83, 0xA4, 0x43, 0xE3,\n\t0x83, 0xA5, 0x43, 0xE3, 0x83, 0xA6, 0x43, 0xE3,\n\t// Bytes 580 - 5bf\n\t0x83, 0xA7, 0x43, 0xE3, 0x83, 0xA8, 0x43, 0xE3,\n\t0x83, 0xA9, 0x43, 0xE3, 0x83, 0xAA, 0x43, 0xE3,\n\t0x83, 0xAB, 0x43, 0xE3, 0x83, 0xAC, 0x43, 0xE3,\n\t0x83, 0xAD, 0x43, 0xE3, 0x83, 0xAF, 0x43, 0xE3,\n\t0x83, 0xB0, 0x43, 0xE3, 0x83, 0xB1, 0x43, 0xE3,\n\t0x83, 0xB2, 0x43, 0xE3, 0x83, 0xB3, 0x43, 0xE3,\n\t0x83, 0xBB, 0x43, 0xE3, 0x83, 0xBC, 0x43, 0xE3,\n\t0x92, 0x9E, 0x43, 0xE3, 0x92, 0xB9, 0x43, 0xE3,\n\t// Bytes 5c0 - 5ff\n\t0x92, 0xBB, 0x43, 0xE3, 0x93, 0x9F, 0x43, 0xE3,\n\t0x94, 0x95, 0x43, 0xE3, 0x9B, 0xAE, 0x43, 0xE3,\n\t0x9B, 0xBC, 0x43, 0xE3, 0x9E, 0x81, 0x43, 0xE3,\n\t0xA0, 0xAF, 0x43, 0xE3, 0xA1, 0xA2, 0x43, 0xE3,\n\t0xA1, 0xBC, 0x43, 0xE3, 0xA3, 0x87, 0x43, 0xE3,\n\t0xA3, 0xA3, 0x43, 0xE3, 0xA4, 0x9C, 0x43, 0xE3,\n\t0xA4, 0xBA, 0x43, 0xE3, 0xA8, 0xAE, 0x43, 0xE3,\n\t0xA9, 0xAC, 0x43, 0xE3, 0xAB, 0xA4, 0x43, 0xE3,\n\t// Bytes 600 - 63f\n\t0xAC, 0x88, 0x43, 0xE3, 0xAC, 0x99, 0x43, 0xE3,\n\t0xAD, 0x89, 0x43, 0xE3, 0xAE, 0x9D, 0x43, 0xE3,\n\t0xB0, 0x98, 0x43, 0xE3, 0xB1, 0x8E, 0x43, 0xE3,\n\t0xB4, 0xB3, 0x43, 0xE3, 0xB6, 0x96, 0x43, 0xE3,\n\t0xBA, 0xAC, 0x43, 0xE3, 0xBA, 0xB8, 0x43, 0xE3,\n\t0xBC, 0x9B, 0x43, 0xE3, 0xBF, 0xBC, 0x43, 0xE4,\n\t0x80, 0x88, 0x43, 0xE4, 0x80, 0x98, 0x43, 0xE4,\n\t0x80, 0xB9, 0x43, 0xE4, 0x81, 0x86, 0x43, 0xE4,\n\t// Bytes 640 - 67f\n\t0x82, 0x96, 0x43, 0xE4, 0x83, 0xA3, 0x43, 0xE4,\n\t0x84, 0xAF, 0x43, 0xE4, 0x88, 0x82, 0x43, 0xE4,\n\t0x88, 0xA7, 0x43, 0xE4, 0x8A, 0xA0, 0x43, 0xE4,\n\t0x8C, 0x81, 0x43, 0xE4, 0x8C, 0xB4, 0x43, 0xE4,\n\t0x8D, 0x99, 0x43, 0xE4, 0x8F, 0x95, 0x43, 0xE4,\n\t0x8F, 0x99, 0x43, 0xE4, 0x90, 0x8B, 0x43, 0xE4,\n\t0x91, 0xAB, 0x43, 0xE4, 0x94, 0xAB, 0x43, 0xE4,\n\t0x95, 0x9D, 0x43, 0xE4, 0x95, 0xA1, 0x43, 0xE4,\n\t// Bytes 680 - 6bf\n\t0x95, 0xAB, 0x43, 0xE4, 0x97, 0x97, 0x43, 0xE4,\n\t0x97, 0xB9, 0x43, 0xE4, 0x98, 0xB5, 0x43, 0xE4,\n\t0x9A, 0xBE, 0x43, 0xE4, 0x9B, 0x87, 0x43, 0xE4,\n\t0xA6, 0x95, 0x43, 0xE4, 0xA7, 0xA6, 0x43, 0xE4,\n\t0xA9, 0xAE, 0x43, 0xE4, 0xA9, 0xB6, 0x43, 0xE4,\n\t0xAA, 0xB2, 0x43, 0xE4, 0xAC, 0xB3, 0x43, 0xE4,\n\t0xAF, 0x8E, 0x43, 0xE4, 0xB3, 0x8E, 0x43, 0xE4,\n\t0xB3, 0xAD, 0x43, 0xE4, 0xB3, 0xB8, 0x43, 0xE4,\n\t// Bytes 6c0 - 6ff\n\t0xB5, 0x96, 0x43, 0xE4, 0xB8, 0x80, 0x43, 0xE4,\n\t0xB8, 0x81, 0x43, 0xE4, 0xB8, 0x83, 0x43, 0xE4,\n\t0xB8, 0x89, 0x43, 0xE4, 0xB8, 0x8A, 0x43, 0xE4,\n\t0xB8, 0x8B, 0x43, 0xE4, 0xB8, 0x8D, 0x43, 0xE4,\n\t0xB8, 0x99, 0x43, 0xE4, 0xB8, 0xA6, 0x43, 0xE4,\n\t0xB8, 0xA8, 0x43, 0xE4, 0xB8, 0xAD, 0x43, 0xE4,\n\t0xB8, 0xB2, 0x43, 0xE4, 0xB8, 0xB6, 0x43, 0xE4,\n\t0xB8, 0xB8, 0x43, 0xE4, 0xB8, 0xB9, 0x43, 0xE4,\n\t// Bytes 700 - 73f\n\t0xB8, 0xBD, 0x43, 0xE4, 0xB8, 0xBF, 0x43, 0xE4,\n\t0xB9, 0x81, 0x43, 0xE4, 0xB9, 0x99, 0x43, 0xE4,\n\t0xB9, 0x9D, 0x43, 0xE4, 0xBA, 0x82, 0x43, 0xE4,\n\t0xBA, 0x85, 0x43, 0xE4, 0xBA, 0x86, 0x43, 0xE4,\n\t0xBA, 0x8C, 0x43, 0xE4, 0xBA, 0x94, 0x43, 0xE4,\n\t0xBA, 0xA0, 0x43, 0xE4, 0xBA, 0xA4, 0x43, 0xE4,\n\t0xBA, 0xAE, 0x43, 0xE4, 0xBA, 0xBA, 0x43, 0xE4,\n\t0xBB, 0x80, 0x43, 0xE4, 0xBB, 0x8C, 0x43, 0xE4,\n\t// Bytes 740 - 77f\n\t0xBB, 0xA4, 0x43, 0xE4, 0xBC, 0x81, 0x43, 0xE4,\n\t0xBC, 0x91, 0x43, 0xE4, 0xBD, 0xA0, 0x43, 0xE4,\n\t0xBE, 0x80, 0x43, 0xE4, 0xBE, 0x86, 0x43, 0xE4,\n\t0xBE, 0x8B, 0x43, 0xE4, 0xBE, 0xAE, 0x43, 0xE4,\n\t0xBE, 0xBB, 0x43, 0xE4, 0xBE, 0xBF, 0x43, 0xE5,\n\t0x80, 0x82, 0x43, 0xE5, 0x80, 0xAB, 0x43, 0xE5,\n\t0x81, 0xBA, 0x43, 0xE5, 0x82, 0x99, 0x43, 0xE5,\n\t0x83, 0x8F, 0x43, 0xE5, 0x83, 0x9A, 0x43, 0xE5,\n\t// Bytes 780 - 7bf\n\t0x83, 0xA7, 0x43, 0xE5, 0x84, 0xAA, 0x43, 0xE5,\n\t0x84, 0xBF, 0x43, 0xE5, 0x85, 0x80, 0x43, 0xE5,\n\t0x85, 0x85, 0x43, 0xE5, 0x85, 0x8D, 0x43, 0xE5,\n\t0x85, 0x94, 0x43, 0xE5, 0x85, 0xA4, 0x43, 0xE5,\n\t0x85, 0xA5, 0x43, 0xE5, 0x85, 0xA7, 0x43, 0xE5,\n\t0x85, 0xA8, 0x43, 0xE5, 0x85, 0xA9, 0x43, 0xE5,\n\t0x85, 0xAB, 0x43, 0xE5, 0x85, 0xAD, 0x43, 0xE5,\n\t0x85, 0xB7, 0x43, 0xE5, 0x86, 0x80, 0x43, 0xE5,\n\t// Bytes 7c0 - 7ff\n\t0x86, 0x82, 0x43, 0xE5, 0x86, 0x8D, 0x43, 0xE5,\n\t0x86, 0x92, 0x43, 0xE5, 0x86, 0x95, 0x43, 0xE5,\n\t0x86, 0x96, 0x43, 0xE5, 0x86, 0x97, 0x43, 0xE5,\n\t0x86, 0x99, 0x43, 0xE5, 0x86, 0xA4, 0x43, 0xE5,\n\t0x86, 0xAB, 0x43, 0xE5, 0x86, 0xAC, 0x43, 0xE5,\n\t0x86, 0xB5, 0x43, 0xE5, 0x86, 0xB7, 0x43, 0xE5,\n\t0x87, 0x89, 0x43, 0xE5, 0x87, 0x8C, 0x43, 0xE5,\n\t0x87, 0x9C, 0x43, 0xE5, 0x87, 0x9E, 0x43, 0xE5,\n\t// Bytes 800 - 83f\n\t0x87, 0xA0, 0x43, 0xE5, 0x87, 0xB5, 0x43, 0xE5,\n\t0x88, 0x80, 0x43, 0xE5, 0x88, 0x83, 0x43, 0xE5,\n\t0x88, 0x87, 0x43, 0xE5, 0x88, 0x97, 0x43, 0xE5,\n\t0x88, 0x9D, 0x43, 0xE5, 0x88, 0xA9, 0x43, 0xE5,\n\t0x88, 0xBA, 0x43, 0xE5, 0x88, 0xBB, 0x43, 0xE5,\n\t0x89, 0x86, 0x43, 0xE5, 0x89, 0x8D, 0x43, 0xE5,\n\t0x89, 0xB2, 0x43, 0xE5, 0x89, 0xB7, 0x43, 0xE5,\n\t0x8A, 0x89, 0x43, 0xE5, 0x8A, 0x9B, 0x43, 0xE5,\n\t// Bytes 840 - 87f\n\t0x8A, 0xA3, 0x43, 0xE5, 0x8A, 0xB3, 0x43, 0xE5,\n\t0x8A, 0xB4, 0x43, 0xE5, 0x8B, 0x87, 0x43, 0xE5,\n\t0x8B, 0x89, 0x43, 0xE5, 0x8B, 0x92, 0x43, 0xE5,\n\t0x8B, 0x9E, 0x43, 0xE5, 0x8B, 0xA4, 0x43, 0xE5,\n\t0x8B, 0xB5, 0x43, 0xE5, 0x8B, 0xB9, 0x43, 0xE5,\n\t0x8B, 0xBA, 0x43, 0xE5, 0x8C, 0x85, 0x43, 0xE5,\n\t0x8C, 0x86, 0x43, 0xE5, 0x8C, 0x95, 0x43, 0xE5,\n\t0x8C, 0x97, 0x43, 0xE5, 0x8C, 0x9A, 0x43, 0xE5,\n\t// Bytes 880 - 8bf\n\t0x8C, 0xB8, 0x43, 0xE5, 0x8C, 0xBB, 0x43, 0xE5,\n\t0x8C, 0xBF, 0x43, 0xE5, 0x8D, 0x81, 0x43, 0xE5,\n\t0x8D, 0x84, 0x43, 0xE5, 0x8D, 0x85, 0x43, 0xE5,\n\t0x8D, 0x89, 0x43, 0xE5, 0x8D, 0x91, 0x43, 0xE5,\n\t0x8D, 0x94, 0x43, 0xE5, 0x8D, 0x9A, 0x43, 0xE5,\n\t0x8D, 0x9C, 0x43, 0xE5, 0x8D, 0xA9, 0x43, 0xE5,\n\t0x8D, 0xB0, 0x43, 0xE5, 0x8D, 0xB3, 0x43, 0xE5,\n\t0x8D, 0xB5, 0x43, 0xE5, 0x8D, 0xBD, 0x43, 0xE5,\n\t// Bytes 8c0 - 8ff\n\t0x8D, 0xBF, 0x43, 0xE5, 0x8E, 0x82, 0x43, 0xE5,\n\t0x8E, 0xB6, 0x43, 0xE5, 0x8F, 0x83, 0x43, 0xE5,\n\t0x8F, 0x88, 0x43, 0xE5, 0x8F, 0x8A, 0x43, 0xE5,\n\t0x8F, 0x8C, 0x43, 0xE5, 0x8F, 0x9F, 0x43, 0xE5,\n\t0x8F, 0xA3, 0x43, 0xE5, 0x8F, 0xA5, 0x43, 0xE5,\n\t0x8F, 0xAB, 0x43, 0xE5, 0x8F, 0xAF, 0x43, 0xE5,\n\t0x8F, 0xB1, 0x43, 0xE5, 0x8F, 0xB3, 0x43, 0xE5,\n\t0x90, 0x86, 0x43, 0xE5, 0x90, 0x88, 0x43, 0xE5,\n\t// Bytes 900 - 93f\n\t0x90, 0x8D, 0x43, 0xE5, 0x90, 0x8F, 0x43, 0xE5,\n\t0x90, 0x9D, 0x43, 0xE5, 0x90, 0xB8, 0x43, 0xE5,\n\t0x90, 0xB9, 0x43, 0xE5, 0x91, 0x82, 0x43, 0xE5,\n\t0x91, 0x88, 0x43, 0xE5, 0x91, 0xA8, 0x43, 0xE5,\n\t0x92, 0x9E, 0x43, 0xE5, 0x92, 0xA2, 0x43, 0xE5,\n\t0x92, 0xBD, 0x43, 0xE5, 0x93, 0xB6, 0x43, 0xE5,\n\t0x94, 0x90, 0x43, 0xE5, 0x95, 0x8F, 0x43, 0xE5,\n\t0x95, 0x93, 0x43, 0xE5, 0x95, 0x95, 0x43, 0xE5,\n\t// Bytes 940 - 97f\n\t0x95, 0xA3, 0x43, 0xE5, 0x96, 0x84, 0x43, 0xE5,\n\t0x96, 0x87, 0x43, 0xE5, 0x96, 0x99, 0x43, 0xE5,\n\t0x96, 0x9D, 0x43, 0xE5, 0x96, 0xAB, 0x43, 0xE5,\n\t0x96, 0xB3, 0x43, 0xE5, 0x96, 0xB6, 0x43, 0xE5,\n\t0x97, 0x80, 0x43, 0xE5, 0x97, 0x82, 0x43, 0xE5,\n\t0x97, 0xA2, 0x43, 0xE5, 0x98, 0x86, 0x43, 0xE5,\n\t0x99, 0x91, 0x43, 0xE5, 0x99, 0xA8, 0x43, 0xE5,\n\t0x99, 0xB4, 0x43, 0xE5, 0x9B, 0x97, 0x43, 0xE5,\n\t// Bytes 980 - 9bf\n\t0x9B, 0x9B, 0x43, 0xE5, 0x9B, 0xB9, 0x43, 0xE5,\n\t0x9C, 0x96, 0x43, 0xE5, 0x9C, 0x97, 0x43, 0xE5,\n\t0x9C, 0x9F, 0x43, 0xE5, 0x9C, 0xB0, 0x43, 0xE5,\n\t0x9E, 0x8B, 0x43, 0xE5, 0x9F, 0x8E, 0x43, 0xE5,\n\t0x9F, 0xB4, 0x43, 0xE5, 0xA0, 0x8D, 0x43, 0xE5,\n\t0xA0, 0xB1, 0x43, 0xE5, 0xA0, 0xB2, 0x43, 0xE5,\n\t0xA1, 0x80, 0x43, 0xE5, 0xA1, 0x9A, 0x43, 0xE5,\n\t0xA1, 0x9E, 0x43, 0xE5, 0xA2, 0xA8, 0x43, 0xE5,\n\t// Bytes 9c0 - 9ff\n\t0xA2, 0xAC, 0x43, 0xE5, 0xA2, 0xB3, 0x43, 0xE5,\n\t0xA3, 0x98, 0x43, 0xE5, 0xA3, 0x9F, 0x43, 0xE5,\n\t0xA3, 0xAB, 0x43, 0xE5, 0xA3, 0xAE, 0x43, 0xE5,\n\t0xA3, 0xB0, 0x43, 0xE5, 0xA3, 0xB2, 0x43, 0xE5,\n\t0xA3, 0xB7, 0x43, 0xE5, 0xA4, 0x82, 0x43, 0xE5,\n\t0xA4, 0x86, 0x43, 0xE5, 0xA4, 0x8A, 0x43, 0xE5,\n\t0xA4, 0x95, 0x43, 0xE5, 0xA4, 0x9A, 0x43, 0xE5,\n\t0xA4, 0x9C, 0x43, 0xE5, 0xA4, 0xA2, 0x43, 0xE5,\n\t// Bytes a00 - a3f\n\t0xA4, 0xA7, 0x43, 0xE5, 0xA4, 0xA9, 0x43, 0xE5,\n\t0xA5, 0x84, 0x43, 0xE5, 0xA5, 0x88, 0x43, 0xE5,\n\t0xA5, 0x91, 0x43, 0xE5, 0xA5, 0x94, 0x43, 0xE5,\n\t0xA5, 0xA2, 0x43, 0xE5, 0xA5, 0xB3, 0x43, 0xE5,\n\t0xA7, 0x98, 0x43, 0xE5, 0xA7, 0xAC, 0x43, 0xE5,\n\t0xA8, 0x9B, 0x43, 0xE5, 0xA8, 0xA7, 0x43, 0xE5,\n\t0xA9, 0xA2, 0x43, 0xE5, 0xA9, 0xA6, 0x43, 0xE5,\n\t0xAA, 0xB5, 0x43, 0xE5, 0xAC, 0x88, 0x43, 0xE5,\n\t// Bytes a40 - a7f\n\t0xAC, 0xA8, 0x43, 0xE5, 0xAC, 0xBE, 0x43, 0xE5,\n\t0xAD, 0x90, 0x43, 0xE5, 0xAD, 0x97, 0x43, 0xE5,\n\t0xAD, 0xA6, 0x43, 0xE5, 0xAE, 0x80, 0x43, 0xE5,\n\t0xAE, 0x85, 0x43, 0xE5, 0xAE, 0x97, 0x43, 0xE5,\n\t0xAF, 0x83, 0x43, 0xE5, 0xAF, 0x98, 0x43, 0xE5,\n\t0xAF, 0xA7, 0x43, 0xE5, 0xAF, 0xAE, 0x43, 0xE5,\n\t0xAF, 0xB3, 0x43, 0xE5, 0xAF, 0xB8, 0x43, 0xE5,\n\t0xAF, 0xBF, 0x43, 0xE5, 0xB0, 0x86, 0x43, 0xE5,\n\t// Bytes a80 - abf\n\t0xB0, 0x8F, 0x43, 0xE5, 0xB0, 0xA2, 0x43, 0xE5,\n\t0xB0, 0xB8, 0x43, 0xE5, 0xB0, 0xBF, 0x43, 0xE5,\n\t0xB1, 0xA0, 0x43, 0xE5, 0xB1, 0xA2, 0x43, 0xE5,\n\t0xB1, 0xA4, 0x43, 0xE5, 0xB1, 0xA5, 0x43, 0xE5,\n\t0xB1, 0xAE, 0x43, 0xE5, 0xB1, 0xB1, 0x43, 0xE5,\n\t0xB2, 0x8D, 0x43, 0xE5, 0xB3, 0x80, 0x43, 0xE5,\n\t0xB4, 0x99, 0x43, 0xE5, 0xB5, 0x83, 0x43, 0xE5,\n\t0xB5, 0x90, 0x43, 0xE5, 0xB5, 0xAB, 0x43, 0xE5,\n\t// Bytes ac0 - aff\n\t0xB5, 0xAE, 0x43, 0xE5, 0xB5, 0xBC, 0x43, 0xE5,\n\t0xB6, 0xB2, 0x43, 0xE5, 0xB6, 0xBA, 0x43, 0xE5,\n\t0xB7, 0x9B, 0x43, 0xE5, 0xB7, 0xA1, 0x43, 0xE5,\n\t0xB7, 0xA2, 0x43, 0xE5, 0xB7, 0xA5, 0x43, 0xE5,\n\t0xB7, 0xA6, 0x43, 0xE5, 0xB7, 0xB1, 0x43, 0xE5,\n\t0xB7, 0xBD, 0x43, 0xE5, 0xB7, 0xBE, 0x43, 0xE5,\n\t0xB8, 0xA8, 0x43, 0xE5, 0xB8, 0xBD, 0x43, 0xE5,\n\t0xB9, 0xA9, 0x43, 0xE5, 0xB9, 0xB2, 0x43, 0xE5,\n\t// Bytes b00 - b3f\n\t0xB9, 0xB4, 0x43, 0xE5, 0xB9, 0xBA, 0x43, 0xE5,\n\t0xB9, 0xBC, 0x43, 0xE5, 0xB9, 0xBF, 0x43, 0xE5,\n\t0xBA, 0xA6, 0x43, 0xE5, 0xBA, 0xB0, 0x43, 0xE5,\n\t0xBA, 0xB3, 0x43, 0xE5, 0xBA, 0xB6, 0x43, 0xE5,\n\t0xBB, 0x89, 0x43, 0xE5, 0xBB, 0x8A, 0x43, 0xE5,\n\t0xBB, 0x92, 0x43, 0xE5, 0xBB, 0x93, 0x43, 0xE5,\n\t0xBB, 0x99, 0x43, 0xE5, 0xBB, 0xAC, 0x43, 0xE5,\n\t0xBB, 0xB4, 0x43, 0xE5, 0xBB, 0xBE, 0x43, 0xE5,\n\t// Bytes b40 - b7f\n\t0xBC, 0x84, 0x43, 0xE5, 0xBC, 0x8B, 0x43, 0xE5,\n\t0xBC, 0x93, 0x43, 0xE5, 0xBC, 0xA2, 0x43, 0xE5,\n\t0xBD, 0x90, 0x43, 0xE5, 0xBD, 0x93, 0x43, 0xE5,\n\t0xBD, 0xA1, 0x43, 0xE5, 0xBD, 0xA2, 0x43, 0xE5,\n\t0xBD, 0xA9, 0x43, 0xE5, 0xBD, 0xAB, 0x43, 0xE5,\n\t0xBD, 0xB3, 0x43, 0xE5, 0xBE, 0x8B, 0x43, 0xE5,\n\t0xBE, 0x8C, 0x43, 0xE5, 0xBE, 0x97, 0x43, 0xE5,\n\t0xBE, 0x9A, 0x43, 0xE5, 0xBE, 0xA9, 0x43, 0xE5,\n\t// Bytes b80 - bbf\n\t0xBE, 0xAD, 0x43, 0xE5, 0xBF, 0x83, 0x43, 0xE5,\n\t0xBF, 0x8D, 0x43, 0xE5, 0xBF, 0x97, 0x43, 0xE5,\n\t0xBF, 0xB5, 0x43, 0xE5, 0xBF, 0xB9, 0x43, 0xE6,\n\t0x80, 0x92, 0x43, 0xE6, 0x80, 0x9C, 0x43, 0xE6,\n\t0x81, 0xB5, 0x43, 0xE6, 0x82, 0x81, 0x43, 0xE6,\n\t0x82, 0x94, 0x43, 0xE6, 0x83, 0x87, 0x43, 0xE6,\n\t0x83, 0x98, 0x43, 0xE6, 0x83, 0xA1, 0x43, 0xE6,\n\t0x84, 0x88, 0x43, 0xE6, 0x85, 0x84, 0x43, 0xE6,\n\t// Bytes bc0 - bff\n\t0x85, 0x88, 0x43, 0xE6, 0x85, 0x8C, 0x43, 0xE6,\n\t0x85, 0x8E, 0x43, 0xE6, 0x85, 0xA0, 0x43, 0xE6,\n\t0x85, 0xA8, 0x43, 0xE6, 0x85, 0xBA, 0x43, 0xE6,\n\t0x86, 0x8E, 0x43, 0xE6, 0x86, 0x90, 0x43, 0xE6,\n\t0x86, 0xA4, 0x43, 0xE6, 0x86, 0xAF, 0x43, 0xE6,\n\t0x86, 0xB2, 0x43, 0xE6, 0x87, 0x9E, 0x43, 0xE6,\n\t0x87, 0xB2, 0x43, 0xE6, 0x87, 0xB6, 0x43, 0xE6,\n\t0x88, 0x80, 0x43, 0xE6, 0x88, 0x88, 0x43, 0xE6,\n\t// Bytes c00 - c3f\n\t0x88, 0x90, 0x43, 0xE6, 0x88, 0x9B, 0x43, 0xE6,\n\t0x88, 0xAE, 0x43, 0xE6, 0x88, 0xB4, 0x43, 0xE6,\n\t0x88, 0xB6, 0x43, 0xE6, 0x89, 0x8B, 0x43, 0xE6,\n\t0x89, 0x93, 0x43, 0xE6, 0x89, 0x9D, 0x43, 0xE6,\n\t0x8A, 0x95, 0x43, 0xE6, 0x8A, 0xB1, 0x43, 0xE6,\n\t0x8B, 0x89, 0x43, 0xE6, 0x8B, 0x8F, 0x43, 0xE6,\n\t0x8B, 0x93, 0x43, 0xE6, 0x8B, 0x94, 0x43, 0xE6,\n\t0x8B, 0xBC, 0x43, 0xE6, 0x8B, 0xBE, 0x43, 0xE6,\n\t// Bytes c40 - c7f\n\t0x8C, 0x87, 0x43, 0xE6, 0x8C, 0xBD, 0x43, 0xE6,\n\t0x8D, 0x90, 0x43, 0xE6, 0x8D, 0x95, 0x43, 0xE6,\n\t0x8D, 0xA8, 0x43, 0xE6, 0x8D, 0xBB, 0x43, 0xE6,\n\t0x8E, 0x83, 0x43, 0xE6, 0x8E, 0xA0, 0x43, 0xE6,\n\t0x8E, 0xA9, 0x43, 0xE6, 0x8F, 0x84, 0x43, 0xE6,\n\t0x8F, 0x85, 0x43, 0xE6, 0x8F, 0xA4, 0x43, 0xE6,\n\t0x90, 0x9C, 0x43, 0xE6, 0x90, 0xA2, 0x43, 0xE6,\n\t0x91, 0x92, 0x43, 0xE6, 0x91, 0xA9, 0x43, 0xE6,\n\t// Bytes c80 - cbf\n\t0x91, 0xB7, 0x43, 0xE6, 0x91, 0xBE, 0x43, 0xE6,\n\t0x92, 0x9A, 0x43, 0xE6, 0x92, 0x9D, 0x43, 0xE6,\n\t0x93, 0x84, 0x43, 0xE6, 0x94, 0xAF, 0x43, 0xE6,\n\t0x94, 0xB4, 0x43, 0xE6, 0x95, 0x8F, 0x43, 0xE6,\n\t0x95, 0x96, 0x43, 0xE6, 0x95, 0xAC, 0x43, 0xE6,\n\t0x95, 0xB8, 0x43, 0xE6, 0x96, 0x87, 0x43, 0xE6,\n\t0x96, 0x97, 0x43, 0xE6, 0x96, 0x99, 0x43, 0xE6,\n\t0x96, 0xA4, 0x43, 0xE6, 0x96, 0xB0, 0x43, 0xE6,\n\t// Bytes cc0 - cff\n\t0x96, 0xB9, 0x43, 0xE6, 0x97, 0x85, 0x43, 0xE6,\n\t0x97, 0xA0, 0x43, 0xE6, 0x97, 0xA2, 0x43, 0xE6,\n\t0x97, 0xA3, 0x43, 0xE6, 0x97, 0xA5, 0x43, 0xE6,\n\t0x98, 0x93, 0x43, 0xE6, 0x98, 0xA0, 0x43, 0xE6,\n\t0x99, 0x89, 0x43, 0xE6, 0x99, 0xB4, 0x43, 0xE6,\n\t0x9A, 0x88, 0x43, 0xE6, 0x9A, 0x91, 0x43, 0xE6,\n\t0x9A, 0x9C, 0x43, 0xE6, 0x9A, 0xB4, 0x43, 0xE6,\n\t0x9B, 0x86, 0x43, 0xE6, 0x9B, 0xB0, 0x43, 0xE6,\n\t// Bytes d00 - d3f\n\t0x9B, 0xB4, 0x43, 0xE6, 0x9B, 0xB8, 0x43, 0xE6,\n\t0x9C, 0x80, 0x43, 0xE6, 0x9C, 0x88, 0x43, 0xE6,\n\t0x9C, 0x89, 0x43, 0xE6, 0x9C, 0x97, 0x43, 0xE6,\n\t0x9C, 0x9B, 0x43, 0xE6, 0x9C, 0xA1, 0x43, 0xE6,\n\t0x9C, 0xA8, 0x43, 0xE6, 0x9D, 0x8E, 0x43, 0xE6,\n\t0x9D, 0x93, 0x43, 0xE6, 0x9D, 0x96, 0x43, 0xE6,\n\t0x9D, 0x9E, 0x43, 0xE6, 0x9D, 0xBB, 0x43, 0xE6,\n\t0x9E, 0x85, 0x43, 0xE6, 0x9E, 0x97, 0x43, 0xE6,\n\t// Bytes d40 - d7f\n\t0x9F, 0xB3, 0x43, 0xE6, 0x9F, 0xBA, 0x43, 0xE6,\n\t0xA0, 0x97, 0x43, 0xE6, 0xA0, 0x9F, 0x43, 0xE6,\n\t0xA0, 0xAA, 0x43, 0xE6, 0xA1, 0x92, 0x43, 0xE6,\n\t0xA2, 0x81, 0x43, 0xE6, 0xA2, 0x85, 0x43, 0xE6,\n\t0xA2, 0x8E, 0x43, 0xE6, 0xA2, 0xA8, 0x43, 0xE6,\n\t0xA4, 0x94, 0x43, 0xE6, 0xA5, 0x82, 0x43, 0xE6,\n\t0xA6, 0xA3, 0x43, 0xE6, 0xA7, 0xAA, 0x43, 0xE6,\n\t0xA8, 0x82, 0x43, 0xE6, 0xA8, 0x93, 0x43, 0xE6,\n\t// Bytes d80 - dbf\n\t0xAA, 0xA8, 0x43, 0xE6, 0xAB, 0x93, 0x43, 0xE6,\n\t0xAB, 0x9B, 0x43, 0xE6, 0xAC, 0x84, 0x43, 0xE6,\n\t0xAC, 0xA0, 0x43, 0xE6, 0xAC, 0xA1, 0x43, 0xE6,\n\t0xAD, 0x94, 0x43, 0xE6, 0xAD, 0xA2, 0x43, 0xE6,\n\t0xAD, 0xA3, 0x43, 0xE6, 0xAD, 0xB2, 0x43, 0xE6,\n\t0xAD, 0xB7, 0x43, 0xE6, 0xAD, 0xB9, 0x43, 0xE6,\n\t0xAE, 0x9F, 0x43, 0xE6, 0xAE, 0xAE, 0x43, 0xE6,\n\t0xAE, 0xB3, 0x43, 0xE6, 0xAE, 0xBA, 0x43, 0xE6,\n\t// Bytes dc0 - dff\n\t0xAE, 0xBB, 0x43, 0xE6, 0xAF, 0x8B, 0x43, 0xE6,\n\t0xAF, 0x8D, 0x43, 0xE6, 0xAF, 0x94, 0x43, 0xE6,\n\t0xAF, 0x9B, 0x43, 0xE6, 0xB0, 0x8F, 0x43, 0xE6,\n\t0xB0, 0x94, 0x43, 0xE6, 0xB0, 0xB4, 0x43, 0xE6,\n\t0xB1, 0x8E, 0x43, 0xE6, 0xB1, 0xA7, 0x43, 0xE6,\n\t0xB2, 0x88, 0x43, 0xE6, 0xB2, 0xBF, 0x43, 0xE6,\n\t0xB3, 0x8C, 0x43, 0xE6, 0xB3, 0x8D, 0x43, 0xE6,\n\t0xB3, 0xA5, 0x43, 0xE6, 0xB3, 0xA8, 0x43, 0xE6,\n\t// Bytes e00 - e3f\n\t0xB4, 0x96, 0x43, 0xE6, 0xB4, 0x9B, 0x43, 0xE6,\n\t0xB4, 0x9E, 0x43, 0xE6, 0xB4, 0xB4, 0x43, 0xE6,\n\t0xB4, 0xBE, 0x43, 0xE6, 0xB5, 0x81, 0x43, 0xE6,\n\t0xB5, 0xA9, 0x43, 0xE6, 0xB5, 0xAA, 0x43, 0xE6,\n\t0xB5, 0xB7, 0x43, 0xE6, 0xB5, 0xB8, 0x43, 0xE6,\n\t0xB6, 0x85, 0x43, 0xE6, 0xB7, 0x8B, 0x43, 0xE6,\n\t0xB7, 0x9A, 0x43, 0xE6, 0xB7, 0xAA, 0x43, 0xE6,\n\t0xB7, 0xB9, 0x43, 0xE6, 0xB8, 0x9A, 0x43, 0xE6,\n\t// Bytes e40 - e7f\n\t0xB8, 0xAF, 0x43, 0xE6, 0xB9, 0xAE, 0x43, 0xE6,\n\t0xBA, 0x80, 0x43, 0xE6, 0xBA, 0x9C, 0x43, 0xE6,\n\t0xBA, 0xBA, 0x43, 0xE6, 0xBB, 0x87, 0x43, 0xE6,\n\t0xBB, 0x8B, 0x43, 0xE6, 0xBB, 0x91, 0x43, 0xE6,\n\t0xBB, 0x9B, 0x43, 0xE6, 0xBC, 0x8F, 0x43, 0xE6,\n\t0xBC, 0x94, 0x43, 0xE6, 0xBC, 0xA2, 0x43, 0xE6,\n\t0xBC, 0xA3, 0x43, 0xE6, 0xBD, 0xAE, 0x43, 0xE6,\n\t0xBF, 0x86, 0x43, 0xE6, 0xBF, 0xAB, 0x43, 0xE6,\n\t// Bytes e80 - ebf\n\t0xBF, 0xBE, 0x43, 0xE7, 0x80, 0x9B, 0x43, 0xE7,\n\t0x80, 0x9E, 0x43, 0xE7, 0x80, 0xB9, 0x43, 0xE7,\n\t0x81, 0x8A, 0x43, 0xE7, 0x81, 0xAB, 0x43, 0xE7,\n\t0x81, 0xB0, 0x43, 0xE7, 0x81, 0xB7, 0x43, 0xE7,\n\t0x81, 0xBD, 0x43, 0xE7, 0x82, 0x99, 0x43, 0xE7,\n\t0x82, 0xAD, 0x43, 0xE7, 0x83, 0x88, 0x43, 0xE7,\n\t0x83, 0x99, 0x43, 0xE7, 0x84, 0xA1, 0x43, 0xE7,\n\t0x85, 0x85, 0x43, 0xE7, 0x85, 0x89, 0x43, 0xE7,\n\t// Bytes ec0 - eff\n\t0x85, 0xAE, 0x43, 0xE7, 0x86, 0x9C, 0x43, 0xE7,\n\t0x87, 0x8E, 0x43, 0xE7, 0x87, 0x90, 0x43, 0xE7,\n\t0x88, 0x90, 0x43, 0xE7, 0x88, 0x9B, 0x43, 0xE7,\n\t0x88, 0xA8, 0x43, 0xE7, 0x88, 0xAA, 0x43, 0xE7,\n\t0x88, 0xAB, 0x43, 0xE7, 0x88, 0xB5, 0x43, 0xE7,\n\t0x88, 0xB6, 0x43, 0xE7, 0x88, 0xBB, 0x43, 0xE7,\n\t0x88, 0xBF, 0x43, 0xE7, 0x89, 0x87, 0x43, 0xE7,\n\t0x89, 0x90, 0x43, 0xE7, 0x89, 0x99, 0x43, 0xE7,\n\t// Bytes f00 - f3f\n\t0x89, 0x9B, 0x43, 0xE7, 0x89, 0xA2, 0x43, 0xE7,\n\t0x89, 0xB9, 0x43, 0xE7, 0x8A, 0x80, 0x43, 0xE7,\n\t0x8A, 0x95, 0x43, 0xE7, 0x8A, 0xAC, 0x43, 0xE7,\n\t0x8A, 0xAF, 0x43, 0xE7, 0x8B, 0x80, 0x43, 0xE7,\n\t0x8B, 0xBC, 0x43, 0xE7, 0x8C, 0xAA, 0x43, 0xE7,\n\t0x8D, 0xB5, 0x43, 0xE7, 0x8D, 0xBA, 0x43, 0xE7,\n\t0x8E, 0x84, 0x43, 0xE7, 0x8E, 0x87, 0x43, 0xE7,\n\t0x8E, 0x89, 0x43, 0xE7, 0x8E, 0x8B, 0x43, 0xE7,\n\t// Bytes f40 - f7f\n\t0x8E, 0xA5, 0x43, 0xE7, 0x8E, 0xB2, 0x43, 0xE7,\n\t0x8F, 0x9E, 0x43, 0xE7, 0x90, 0x86, 0x43, 0xE7,\n\t0x90, 0x89, 0x43, 0xE7, 0x90, 0xA2, 0x43, 0xE7,\n\t0x91, 0x87, 0x43, 0xE7, 0x91, 0x9C, 0x43, 0xE7,\n\t0x91, 0xA9, 0x43, 0xE7, 0x91, 0xB1, 0x43, 0xE7,\n\t0x92, 0x85, 0x43, 0xE7, 0x92, 0x89, 0x43, 0xE7,\n\t0x92, 0x98, 0x43, 0xE7, 0x93, 0x8A, 0x43, 0xE7,\n\t0x93, 0x9C, 0x43, 0xE7, 0x93, 0xA6, 0x43, 0xE7,\n\t// Bytes f80 - fbf\n\t0x94, 0x86, 0x43, 0xE7, 0x94, 0x98, 0x43, 0xE7,\n\t0x94, 0x9F, 0x43, 0xE7, 0x94, 0xA4, 0x43, 0xE7,\n\t0x94, 0xA8, 0x43, 0xE7, 0x94, 0xB0, 0x43, 0xE7,\n\t0x94, 0xB2, 0x43, 0xE7, 0x94, 0xB3, 0x43, 0xE7,\n\t0x94, 0xB7, 0x43, 0xE7, 0x94, 0xBB, 0x43, 0xE7,\n\t0x94, 0xBE, 0x43, 0xE7, 0x95, 0x99, 0x43, 0xE7,\n\t0x95, 0xA5, 0x43, 0xE7, 0x95, 0xB0, 0x43, 0xE7,\n\t0x96, 0x8B, 0x43, 0xE7, 0x96, 0x92, 0x43, 0xE7,\n\t// Bytes fc0 - fff\n\t0x97, 0xA2, 0x43, 0xE7, 0x98, 0x90, 0x43, 0xE7,\n\t0x98, 0x9D, 0x43, 0xE7, 0x98, 0x9F, 0x43, 0xE7,\n\t0x99, 0x82, 0x43, 0xE7, 0x99, 0xA9, 0x43, 0xE7,\n\t0x99, 0xB6, 0x43, 0xE7, 0x99, 0xBD, 0x43, 0xE7,\n\t0x9A, 0xAE, 0x43, 0xE7, 0x9A, 0xBF, 0x43, 0xE7,\n\t0x9B, 0x8A, 0x43, 0xE7, 0x9B, 0x9B, 0x43, 0xE7,\n\t0x9B, 0xA3, 0x43, 0xE7, 0x9B, 0xA7, 0x43, 0xE7,\n\t0x9B, 0xAE, 0x43, 0xE7, 0x9B, 0xB4, 0x43, 0xE7,\n\t// Bytes 1000 - 103f\n\t0x9C, 0x81, 0x43, 0xE7, 0x9C, 0x9E, 0x43, 0xE7,\n\t0x9C, 0x9F, 0x43, 0xE7, 0x9D, 0x80, 0x43, 0xE7,\n\t0x9D, 0x8A, 0x43, 0xE7, 0x9E, 0x8B, 0x43, 0xE7,\n\t0x9E, 0xA7, 0x43, 0xE7, 0x9F, 0x9B, 0x43, 0xE7,\n\t0x9F, 0xA2, 0x43, 0xE7, 0x9F, 0xB3, 0x43, 0xE7,\n\t0xA1, 0x8E, 0x43, 0xE7, 0xA1, 0xAB, 0x43, 0xE7,\n\t0xA2, 0x8C, 0x43, 0xE7, 0xA2, 0x91, 0x43, 0xE7,\n\t0xA3, 0x8A, 0x43, 0xE7, 0xA3, 0x8C, 0x43, 0xE7,\n\t// Bytes 1040 - 107f\n\t0xA3, 0xBB, 0x43, 0xE7, 0xA4, 0xAA, 0x43, 0xE7,\n\t0xA4, 0xBA, 0x43, 0xE7, 0xA4, 0xBC, 0x43, 0xE7,\n\t0xA4, 0xBE, 0x43, 0xE7, 0xA5, 0x88, 0x43, 0xE7,\n\t0xA5, 0x89, 0x43, 0xE7, 0xA5, 0x90, 0x43, 0xE7,\n\t0xA5, 0x96, 0x43, 0xE7, 0xA5, 0x9D, 0x43, 0xE7,\n\t0xA5, 0x9E, 0x43, 0xE7, 0xA5, 0xA5, 0x43, 0xE7,\n\t0xA5, 0xBF, 0x43, 0xE7, 0xA6, 0x81, 0x43, 0xE7,\n\t0xA6, 0x8D, 0x43, 0xE7, 0xA6, 0x8E, 0x43, 0xE7,\n\t// Bytes 1080 - 10bf\n\t0xA6, 0x8F, 0x43, 0xE7, 0xA6, 0xAE, 0x43, 0xE7,\n\t0xA6, 0xB8, 0x43, 0xE7, 0xA6, 0xBE, 0x43, 0xE7,\n\t0xA7, 0x8A, 0x43, 0xE7, 0xA7, 0x98, 0x43, 0xE7,\n\t0xA7, 0xAB, 0x43, 0xE7, 0xA8, 0x9C, 0x43, 0xE7,\n\t0xA9, 0x80, 0x43, 0xE7, 0xA9, 0x8A, 0x43, 0xE7,\n\t0xA9, 0x8F, 0x43, 0xE7, 0xA9, 0xB4, 0x43, 0xE7,\n\t0xA9, 0xBA, 0x43, 0xE7, 0xAA, 0x81, 0x43, 0xE7,\n\t0xAA, 0xB1, 0x43, 0xE7, 0xAB, 0x8B, 0x43, 0xE7,\n\t// Bytes 10c0 - 10ff\n\t0xAB, 0xAE, 0x43, 0xE7, 0xAB, 0xB9, 0x43, 0xE7,\n\t0xAC, 0xA0, 0x43, 0xE7, 0xAE, 0x8F, 0x43, 0xE7,\n\t0xAF, 0x80, 0x43, 0xE7, 0xAF, 0x86, 0x43, 0xE7,\n\t0xAF, 0x89, 0x43, 0xE7, 0xB0, 0xBE, 0x43, 0xE7,\n\t0xB1, 0xA0, 0x43, 0xE7, 0xB1, 0xB3, 0x43, 0xE7,\n\t0xB1, 0xBB, 0x43, 0xE7, 0xB2, 0x92, 0x43, 0xE7,\n\t0xB2, 0xBE, 0x43, 0xE7, 0xB3, 0x92, 0x43, 0xE7,\n\t0xB3, 0x96, 0x43, 0xE7, 0xB3, 0xA3, 0x43, 0xE7,\n\t// Bytes 1100 - 113f\n\t0xB3, 0xA7, 0x43, 0xE7, 0xB3, 0xA8, 0x43, 0xE7,\n\t0xB3, 0xB8, 0x43, 0xE7, 0xB4, 0x80, 0x43, 0xE7,\n\t0xB4, 0x90, 0x43, 0xE7, 0xB4, 0xA2, 0x43, 0xE7,\n\t0xB4, 0xAF, 0x43, 0xE7, 0xB5, 0x82, 0x43, 0xE7,\n\t0xB5, 0x9B, 0x43, 0xE7, 0xB5, 0xA3, 0x43, 0xE7,\n\t0xB6, 0xA0, 0x43, 0xE7, 0xB6, 0xBE, 0x43, 0xE7,\n\t0xB7, 0x87, 0x43, 0xE7, 0xB7, 0xB4, 0x43, 0xE7,\n\t0xB8, 0x82, 0x43, 0xE7, 0xB8, 0x89, 0x43, 0xE7,\n\t// Bytes 1140 - 117f\n\t0xB8, 0xB7, 0x43, 0xE7, 0xB9, 0x81, 0x43, 0xE7,\n\t0xB9, 0x85, 0x43, 0xE7, 0xBC, 0xB6, 0x43, 0xE7,\n\t0xBC, 0xBE, 0x43, 0xE7, 0xBD, 0x91, 0x43, 0xE7,\n\t0xBD, 0xB2, 0x43, 0xE7, 0xBD, 0xB9, 0x43, 0xE7,\n\t0xBD, 0xBA, 0x43, 0xE7, 0xBE, 0x85, 0x43, 0xE7,\n\t0xBE, 0x8A, 0x43, 0xE7, 0xBE, 0x95, 0x43, 0xE7,\n\t0xBE, 0x9A, 0x43, 0xE7, 0xBE, 0xBD, 0x43, 0xE7,\n\t0xBF, 0xBA, 0x43, 0xE8, 0x80, 0x81, 0x43, 0xE8,\n\t// Bytes 1180 - 11bf\n\t0x80, 0x85, 0x43, 0xE8, 0x80, 0x8C, 0x43, 0xE8,\n\t0x80, 0x92, 0x43, 0xE8, 0x80, 0xB3, 0x43, 0xE8,\n\t0x81, 0x86, 0x43, 0xE8, 0x81, 0xA0, 0x43, 0xE8,\n\t0x81, 0xAF, 0x43, 0xE8, 0x81, 0xB0, 0x43, 0xE8,\n\t0x81, 0xBE, 0x43, 0xE8, 0x81, 0xBF, 0x43, 0xE8,\n\t0x82, 0x89, 0x43, 0xE8, 0x82, 0x8B, 0x43, 0xE8,\n\t0x82, 0xAD, 0x43, 0xE8, 0x82, 0xB2, 0x43, 0xE8,\n\t0x84, 0x83, 0x43, 0xE8, 0x84, 0xBE, 0x43, 0xE8,\n\t// Bytes 11c0 - 11ff\n\t0x87, 0x98, 0x43, 0xE8, 0x87, 0xA3, 0x43, 0xE8,\n\t0x87, 0xA8, 0x43, 0xE8, 0x87, 0xAA, 0x43, 0xE8,\n\t0x87, 0xAD, 0x43, 0xE8, 0x87, 0xB3, 0x43, 0xE8,\n\t0x87, 0xBC, 0x43, 0xE8, 0x88, 0x81, 0x43, 0xE8,\n\t0x88, 0x84, 0x43, 0xE8, 0x88, 0x8C, 0x43, 0xE8,\n\t0x88, 0x98, 0x43, 0xE8, 0x88, 0x9B, 0x43, 0xE8,\n\t0x88, 0x9F, 0x43, 0xE8, 0x89, 0xAE, 0x43, 0xE8,\n\t0x89, 0xAF, 0x43, 0xE8, 0x89, 0xB2, 0x43, 0xE8,\n\t// Bytes 1200 - 123f\n\t0x89, 0xB8, 0x43, 0xE8, 0x89, 0xB9, 0x43, 0xE8,\n\t0x8A, 0x8B, 0x43, 0xE8, 0x8A, 0x91, 0x43, 0xE8,\n\t0x8A, 0x9D, 0x43, 0xE8, 0x8A, 0xB1, 0x43, 0xE8,\n\t0x8A, 0xB3, 0x43, 0xE8, 0x8A, 0xBD, 0x43, 0xE8,\n\t0x8B, 0xA5, 0x43, 0xE8, 0x8B, 0xA6, 0x43, 0xE8,\n\t0x8C, 0x9D, 0x43, 0xE8, 0x8C, 0xA3, 0x43, 0xE8,\n\t0x8C, 0xB6, 0x43, 0xE8, 0x8D, 0x92, 0x43, 0xE8,\n\t0x8D, 0x93, 0x43, 0xE8, 0x8D, 0xA3, 0x43, 0xE8,\n\t// Bytes 1240 - 127f\n\t0x8E, 0xAD, 0x43, 0xE8, 0x8E, 0xBD, 0x43, 0xE8,\n\t0x8F, 0x89, 0x43, 0xE8, 0x8F, 0x8A, 0x43, 0xE8,\n\t0x8F, 0x8C, 0x43, 0xE8, 0x8F, 0x9C, 0x43, 0xE8,\n\t0x8F, 0xA7, 0x43, 0xE8, 0x8F, 0xAF, 0x43, 0xE8,\n\t0x8F, 0xB1, 0x43, 0xE8, 0x90, 0xBD, 0x43, 0xE8,\n\t0x91, 0x89, 0x43, 0xE8, 0x91, 0x97, 0x43, 0xE8,\n\t0x93, 0xAE, 0x43, 0xE8, 0x93, 0xB1, 0x43, 0xE8,\n\t0x93, 0xB3, 0x43, 0xE8, 0x93, 0xBC, 0x43, 0xE8,\n\t// Bytes 1280 - 12bf\n\t0x94, 0x96, 0x43, 0xE8, 0x95, 0xA4, 0x43, 0xE8,\n\t0x97, 0x8D, 0x43, 0xE8, 0x97, 0xBA, 0x43, 0xE8,\n\t0x98, 0x86, 0x43, 0xE8, 0x98, 0x92, 0x43, 0xE8,\n\t0x98, 0xAD, 0x43, 0xE8, 0x98, 0xBF, 0x43, 0xE8,\n\t0x99, 0x8D, 0x43, 0xE8, 0x99, 0x90, 0x43, 0xE8,\n\t0x99, 0x9C, 0x43, 0xE8, 0x99, 0xA7, 0x43, 0xE8,\n\t0x99, 0xA9, 0x43, 0xE8, 0x99, 0xAB, 0x43, 0xE8,\n\t0x9A, 0x88, 0x43, 0xE8, 0x9A, 0xA9, 0x43, 0xE8,\n\t// Bytes 12c0 - 12ff\n\t0x9B, 0xA2, 0x43, 0xE8, 0x9C, 0x8E, 0x43, 0xE8,\n\t0x9C, 0xA8, 0x43, 0xE8, 0x9D, 0xAB, 0x43, 0xE8,\n\t0x9D, 0xB9, 0x43, 0xE8, 0x9E, 0x86, 0x43, 0xE8,\n\t0x9E, 0xBA, 0x43, 0xE8, 0x9F, 0xA1, 0x43, 0xE8,\n\t0xA0, 0x81, 0x43, 0xE8, 0xA0, 0x9F, 0x43, 0xE8,\n\t0xA1, 0x80, 0x43, 0xE8, 0xA1, 0x8C, 0x43, 0xE8,\n\t0xA1, 0xA0, 0x43, 0xE8, 0xA1, 0xA3, 0x43, 0xE8,\n\t0xA3, 0x82, 0x43, 0xE8, 0xA3, 0x8F, 0x43, 0xE8,\n\t// Bytes 1300 - 133f\n\t0xA3, 0x97, 0x43, 0xE8, 0xA3, 0x9E, 0x43, 0xE8,\n\t0xA3, 0xA1, 0x43, 0xE8, 0xA3, 0xB8, 0x43, 0xE8,\n\t0xA3, 0xBA, 0x43, 0xE8, 0xA4, 0x90, 0x43, 0xE8,\n\t0xA5, 0x81, 0x43, 0xE8, 0xA5, 0xA4, 0x43, 0xE8,\n\t0xA5, 0xBE, 0x43, 0xE8, 0xA6, 0x86, 0x43, 0xE8,\n\t0xA6, 0x8B, 0x43, 0xE8, 0xA6, 0x96, 0x43, 0xE8,\n\t0xA7, 0x92, 0x43, 0xE8, 0xA7, 0xA3, 0x43, 0xE8,\n\t0xA8, 0x80, 0x43, 0xE8, 0xAA, 0xA0, 0x43, 0xE8,\n\t// Bytes 1340 - 137f\n\t0xAA, 0xAA, 0x43, 0xE8, 0xAA, 0xBF, 0x43, 0xE8,\n\t0xAB, 0x8B, 0x43, 0xE8, 0xAB, 0x92, 0x43, 0xE8,\n\t0xAB, 0x96, 0x43, 0xE8, 0xAB, 0xAD, 0x43, 0xE8,\n\t0xAB, 0xB8, 0x43, 0xE8, 0xAB, 0xBE, 0x43, 0xE8,\n\t0xAC, 0x81, 0x43, 0xE8, 0xAC, 0xB9, 0x43, 0xE8,\n\t0xAD, 0x98, 0x43, 0xE8, 0xAE, 0x80, 0x43, 0xE8,\n\t0xAE, 0x8A, 0x43, 0xE8, 0xB0, 0xB7, 0x43, 0xE8,\n\t0xB1, 0x86, 0x43, 0xE8, 0xB1, 0x88, 0x43, 0xE8,\n\t// Bytes 1380 - 13bf\n\t0xB1, 0x95, 0x43, 0xE8, 0xB1, 0xB8, 0x43, 0xE8,\n\t0xB2, 0x9D, 0x43, 0xE8, 0xB2, 0xA1, 0x43, 0xE8,\n\t0xB2, 0xA9, 0x43, 0xE8, 0xB2, 0xAB, 0x43, 0xE8,\n\t0xB3, 0x81, 0x43, 0xE8, 0xB3, 0x82, 0x43, 0xE8,\n\t0xB3, 0x87, 0x43, 0xE8, 0xB3, 0x88, 0x43, 0xE8,\n\t0xB3, 0x93, 0x43, 0xE8, 0xB4, 0x88, 0x43, 0xE8,\n\t0xB4, 0x9B, 0x43, 0xE8, 0xB5, 0xA4, 0x43, 0xE8,\n\t0xB5, 0xB0, 0x43, 0xE8, 0xB5, 0xB7, 0x43, 0xE8,\n\t// Bytes 13c0 - 13ff\n\t0xB6, 0xB3, 0x43, 0xE8, 0xB6, 0xBC, 0x43, 0xE8,\n\t0xB7, 0x8B, 0x43, 0xE8, 0xB7, 0xAF, 0x43, 0xE8,\n\t0xB7, 0xB0, 0x43, 0xE8, 0xBA, 0xAB, 0x43, 0xE8,\n\t0xBB, 0x8A, 0x43, 0xE8, 0xBB, 0x94, 0x43, 0xE8,\n\t0xBC, 0xA6, 0x43, 0xE8, 0xBC, 0xAA, 0x43, 0xE8,\n\t0xBC, 0xB8, 0x43, 0xE8, 0xBC, 0xBB, 0x43, 0xE8,\n\t0xBD, 0xA2, 0x43, 0xE8, 0xBE, 0x9B, 0x43, 0xE8,\n\t0xBE, 0x9E, 0x43, 0xE8, 0xBE, 0xB0, 0x43, 0xE8,\n\t// Bytes 1400 - 143f\n\t0xBE, 0xB5, 0x43, 0xE8, 0xBE, 0xB6, 0x43, 0xE9,\n\t0x80, 0xA3, 0x43, 0xE9, 0x80, 0xB8, 0x43, 0xE9,\n\t0x81, 0x8A, 0x43, 0xE9, 0x81, 0xA9, 0x43, 0xE9,\n\t0x81, 0xB2, 0x43, 0xE9, 0x81, 0xBC, 0x43, 0xE9,\n\t0x82, 0x8F, 0x43, 0xE9, 0x82, 0x91, 0x43, 0xE9,\n\t0x82, 0x94, 0x43, 0xE9, 0x83, 0x8E, 0x43, 0xE9,\n\t0x83, 0x9E, 0x43, 0xE9, 0x83, 0xB1, 0x43, 0xE9,\n\t0x83, 0xBD, 0x43, 0xE9, 0x84, 0x91, 0x43, 0xE9,\n\t// Bytes 1440 - 147f\n\t0x84, 0x9B, 0x43, 0xE9, 0x85, 0x89, 0x43, 0xE9,\n\t0x85, 0x8D, 0x43, 0xE9, 0x85, 0xAA, 0x43, 0xE9,\n\t0x86, 0x99, 0x43, 0xE9, 0x86, 0xB4, 0x43, 0xE9,\n\t0x87, 0x86, 0x43, 0xE9, 0x87, 0x8C, 0x43, 0xE9,\n\t0x87, 0x8F, 0x43, 0xE9, 0x87, 0x91, 0x43, 0xE9,\n\t0x88, 0xB4, 0x43, 0xE9, 0x88, 0xB8, 0x43, 0xE9,\n\t0x89, 0xB6, 0x43, 0xE9, 0x89, 0xBC, 0x43, 0xE9,\n\t0x8B, 0x97, 0x43, 0xE9, 0x8B, 0x98, 0x43, 0xE9,\n\t// Bytes 1480 - 14bf\n\t0x8C, 0x84, 0x43, 0xE9, 0x8D, 0x8A, 0x43, 0xE9,\n\t0x8F, 0xB9, 0x43, 0xE9, 0x90, 0x95, 0x43, 0xE9,\n\t0x95, 0xB7, 0x43, 0xE9, 0x96, 0x80, 0x43, 0xE9,\n\t0x96, 0x8B, 0x43, 0xE9, 0x96, 0xAD, 0x43, 0xE9,\n\t0x96, 0xB7, 0x43, 0xE9, 0x98, 0x9C, 0x43, 0xE9,\n\t0x98, 0xAE, 0x43, 0xE9, 0x99, 0x8B, 0x43, 0xE9,\n\t0x99, 0x8D, 0x43, 0xE9, 0x99, 0xB5, 0x43, 0xE9,\n\t0x99, 0xB8, 0x43, 0xE9, 0x99, 0xBC, 0x43, 0xE9,\n\t// Bytes 14c0 - 14ff\n\t0x9A, 0x86, 0x43, 0xE9, 0x9A, 0xA3, 0x43, 0xE9,\n\t0x9A, 0xB6, 0x43, 0xE9, 0x9A, 0xB7, 0x43, 0xE9,\n\t0x9A, 0xB8, 0x43, 0xE9, 0x9A, 0xB9, 0x43, 0xE9,\n\t0x9B, 0x83, 0x43, 0xE9, 0x9B, 0xA2, 0x43, 0xE9,\n\t0x9B, 0xA3, 0x43, 0xE9, 0x9B, 0xA8, 0x43, 0xE9,\n\t0x9B, 0xB6, 0x43, 0xE9, 0x9B, 0xB7, 0x43, 0xE9,\n\t0x9C, 0xA3, 0x43, 0xE9, 0x9C, 0xB2, 0x43, 0xE9,\n\t0x9D, 0x88, 0x43, 0xE9, 0x9D, 0x91, 0x43, 0xE9,\n\t// Bytes 1500 - 153f\n\t0x9D, 0x96, 0x43, 0xE9, 0x9D, 0x9E, 0x43, 0xE9,\n\t0x9D, 0xA2, 0x43, 0xE9, 0x9D, 0xA9, 0x43, 0xE9,\n\t0x9F, 0x8B, 0x43, 0xE9, 0x9F, 0x9B, 0x43, 0xE9,\n\t0x9F, 0xA0, 0x43, 0xE9, 0x9F, 0xAD, 0x43, 0xE9,\n\t0x9F, 0xB3, 0x43, 0xE9, 0x9F, 0xBF, 0x43, 0xE9,\n\t0xA0, 0x81, 0x43, 0xE9, 0xA0, 0x85, 0x43, 0xE9,\n\t0xA0, 0x8B, 0x43, 0xE9, 0xA0, 0x98, 0x43, 0xE9,\n\t0xA0, 0xA9, 0x43, 0xE9, 0xA0, 0xBB, 0x43, 0xE9,\n\t// Bytes 1540 - 157f\n\t0xA1, 0x9E, 0x43, 0xE9, 0xA2, 0xA8, 0x43, 0xE9,\n\t0xA3, 0x9B, 0x43, 0xE9, 0xA3, 0x9F, 0x43, 0xE9,\n\t0xA3, 0xA2, 0x43, 0xE9, 0xA3, 0xAF, 0x43, 0xE9,\n\t0xA3, 0xBC, 0x43, 0xE9, 0xA4, 0xA8, 0x43, 0xE9,\n\t0xA4, 0xA9, 0x43, 0xE9, 0xA6, 0x96, 0x43, 0xE9,\n\t0xA6, 0x99, 0x43, 0xE9, 0xA6, 0xA7, 0x43, 0xE9,\n\t0xA6, 0xAC, 0x43, 0xE9, 0xA7, 0x82, 0x43, 0xE9,\n\t0xA7, 0xB1, 0x43, 0xE9, 0xA7, 0xBE, 0x43, 0xE9,\n\t// Bytes 1580 - 15bf\n\t0xA9, 0xAA, 0x43, 0xE9, 0xAA, 0xA8, 0x43, 0xE9,\n\t0xAB, 0x98, 0x43, 0xE9, 0xAB, 0x9F, 0x43, 0xE9,\n\t0xAC, 0x92, 0x43, 0xE9, 0xAC, 0xA5, 0x43, 0xE9,\n\t0xAC, 0xAF, 0x43, 0xE9, 0xAC, 0xB2, 0x43, 0xE9,\n\t0xAC, 0xBC, 0x43, 0xE9, 0xAD, 0x9A, 0x43, 0xE9,\n\t0xAD, 0xAF, 0x43, 0xE9, 0xB1, 0x80, 0x43, 0xE9,\n\t0xB1, 0x97, 0x43, 0xE9, 0xB3, 0xA5, 0x43, 0xE9,\n\t0xB3, 0xBD, 0x43, 0xE9, 0xB5, 0xA7, 0x43, 0xE9,\n\t// Bytes 15c0 - 15ff\n\t0xB6, 0xB4, 0x43, 0xE9, 0xB7, 0xBA, 0x43, 0xE9,\n\t0xB8, 0x9E, 0x43, 0xE9, 0xB9, 0xB5, 0x43, 0xE9,\n\t0xB9, 0xBF, 0x43, 0xE9, 0xBA, 0x97, 0x43, 0xE9,\n\t0xBA, 0x9F, 0x43, 0xE9, 0xBA, 0xA5, 0x43, 0xE9,\n\t0xBA, 0xBB, 0x43, 0xE9, 0xBB, 0x83, 0x43, 0xE9,\n\t0xBB, 0x8D, 0x43, 0xE9, 0xBB, 0x8E, 0x43, 0xE9,\n\t0xBB, 0x91, 0x43, 0xE9, 0xBB, 0xB9, 0x43, 0xE9,\n\t0xBB, 0xBD, 0x43, 0xE9, 0xBB, 0xBE, 0x43, 0xE9,\n\t// Bytes 1600 - 163f\n\t0xBC, 0x85, 0x43, 0xE9, 0xBC, 0x8E, 0x43, 0xE9,\n\t0xBC, 0x8F, 0x43, 0xE9, 0xBC, 0x93, 0x43, 0xE9,\n\t0xBC, 0x96, 0x43, 0xE9, 0xBC, 0xA0, 0x43, 0xE9,\n\t0xBC, 0xBB, 0x43, 0xE9, 0xBD, 0x83, 0x43, 0xE9,\n\t0xBD, 0x8A, 0x43, 0xE9, 0xBD, 0x92, 0x43, 0xE9,\n\t0xBE, 0x8D, 0x43, 0xE9, 0xBE, 0x8E, 0x43, 0xE9,\n\t0xBE, 0x9C, 0x43, 0xE9, 0xBE, 0x9F, 0x43, 0xE9,\n\t0xBE, 0xA0, 0x43, 0xEA, 0x9C, 0xA7, 0x43, 0xEA,\n\t// Bytes 1640 - 167f\n\t0x9D, 0xAF, 0x43, 0xEA, 0xAC, 0xB7, 0x43, 0xEA,\n\t0xAD, 0x92, 0x44, 0xF0, 0xA0, 0x84, 0xA2, 0x44,\n\t0xF0, 0xA0, 0x94, 0x9C, 0x44, 0xF0, 0xA0, 0x94,\n\t0xA5, 0x44, 0xF0, 0xA0, 0x95, 0x8B, 0x44, 0xF0,\n\t0xA0, 0x98, 0xBA, 0x44, 0xF0, 0xA0, 0xA0, 0x84,\n\t0x44, 0xF0, 0xA0, 0xA3, 0x9E, 0x44, 0xF0, 0xA0,\n\t0xA8, 0xAC, 0x44, 0xF0, 0xA0, 0xAD, 0xA3, 0x44,\n\t0xF0, 0xA1, 0x93, 0xA4, 0x44, 0xF0, 0xA1, 0x9A,\n\t// Bytes 1680 - 16bf\n\t0xA8, 0x44, 0xF0, 0xA1, 0x9B, 0xAA, 0x44, 0xF0,\n\t0xA1, 0xA7, 0x88, 0x44, 0xF0, 0xA1, 0xAC, 0x98,\n\t0x44, 0xF0, 0xA1, 0xB4, 0x8B, 0x44, 0xF0, 0xA1,\n\t0xB7, 0xA4, 0x44, 0xF0, 0xA1, 0xB7, 0xA6, 0x44,\n\t0xF0, 0xA2, 0x86, 0x83, 0x44, 0xF0, 0xA2, 0x86,\n\t0x9F, 0x44, 0xF0, 0xA2, 0x8C, 0xB1, 0x44, 0xF0,\n\t0xA2, 0x9B, 0x94, 0x44, 0xF0, 0xA2, 0xA1, 0x84,\n\t0x44, 0xF0, 0xA2, 0xA1, 0x8A, 0x44, 0xF0, 0xA2,\n\t// Bytes 16c0 - 16ff\n\t0xAC, 0x8C, 0x44, 0xF0, 0xA2, 0xAF, 0xB1, 0x44,\n\t0xF0, 0xA3, 0x80, 0x8A, 0x44, 0xF0, 0xA3, 0x8A,\n\t0xB8, 0x44, 0xF0, 0xA3, 0x8D, 0x9F, 0x44, 0xF0,\n\t0xA3, 0x8E, 0x93, 0x44, 0xF0, 0xA3, 0x8E, 0x9C,\n\t0x44, 0xF0, 0xA3, 0x8F, 0x83, 0x44, 0xF0, 0xA3,\n\t0x8F, 0x95, 0x44, 0xF0, 0xA3, 0x91, 0xAD, 0x44,\n\t0xF0, 0xA3, 0x9A, 0xA3, 0x44, 0xF0, 0xA3, 0xA2,\n\t0xA7, 0x44, 0xF0, 0xA3, 0xAA, 0x8D, 0x44, 0xF0,\n\t// Bytes 1700 - 173f\n\t0xA3, 0xAB, 0xBA, 0x44, 0xF0, 0xA3, 0xB2, 0xBC,\n\t0x44, 0xF0, 0xA3, 0xB4, 0x9E, 0x44, 0xF0, 0xA3,\n\t0xBB, 0x91, 0x44, 0xF0, 0xA3, 0xBD, 0x9E, 0x44,\n\t0xF0, 0xA3, 0xBE, 0x8E, 0x44, 0xF0, 0xA4, 0x89,\n\t0xA3, 0x44, 0xF0, 0xA4, 0x8B, 0xAE, 0x44, 0xF0,\n\t0xA4, 0x8E, 0xAB, 0x44, 0xF0, 0xA4, 0x98, 0x88,\n\t0x44, 0xF0, 0xA4, 0x9C, 0xB5, 0x44, 0xF0, 0xA4,\n\t0xA0, 0x94, 0x44, 0xF0, 0xA4, 0xB0, 0xB6, 0x44,\n\t// Bytes 1740 - 177f\n\t0xF0, 0xA4, 0xB2, 0x92, 0x44, 0xF0, 0xA4, 0xBE,\n\t0xA1, 0x44, 0xF0, 0xA4, 0xBE, 0xB8, 0x44, 0xF0,\n\t0xA5, 0x81, 0x84, 0x44, 0xF0, 0xA5, 0x83, 0xB2,\n\t0x44, 0xF0, 0xA5, 0x83, 0xB3, 0x44, 0xF0, 0xA5,\n\t0x84, 0x99, 0x44, 0xF0, 0xA5, 0x84, 0xB3, 0x44,\n\t0xF0, 0xA5, 0x89, 0x89, 0x44, 0xF0, 0xA5, 0x90,\n\t0x9D, 0x44, 0xF0, 0xA5, 0x98, 0xA6, 0x44, 0xF0,\n\t0xA5, 0x9A, 0x9A, 0x44, 0xF0, 0xA5, 0x9B, 0x85,\n\t// Bytes 1780 - 17bf\n\t0x44, 0xF0, 0xA5, 0xA5, 0xBC, 0x44, 0xF0, 0xA5,\n\t0xAA, 0xA7, 0x44, 0xF0, 0xA5, 0xAE, 0xAB, 0x44,\n\t0xF0, 0xA5, 0xB2, 0x80, 0x44, 0xF0, 0xA5, 0xB3,\n\t0x90, 0x44, 0xF0, 0xA5, 0xBE, 0x86, 0x44, 0xF0,\n\t0xA6, 0x87, 0x9A, 0x44, 0xF0, 0xA6, 0x88, 0xA8,\n\t0x44, 0xF0, 0xA6, 0x89, 0x87, 0x44, 0xF0, 0xA6,\n\t0x8B, 0x99, 0x44, 0xF0, 0xA6, 0x8C, 0xBE, 0x44,\n\t0xF0, 0xA6, 0x93, 0x9A, 0x44, 0xF0, 0xA6, 0x94,\n\t// Bytes 17c0 - 17ff\n\t0xA3, 0x44, 0xF0, 0xA6, 0x96, 0xA8, 0x44, 0xF0,\n\t0xA6, 0x9E, 0xA7, 0x44, 0xF0, 0xA6, 0x9E, 0xB5,\n\t0x44, 0xF0, 0xA6, 0xAC, 0xBC, 0x44, 0xF0, 0xA6,\n\t0xB0, 0xB6, 0x44, 0xF0, 0xA6, 0xB3, 0x95, 0x44,\n\t0xF0, 0xA6, 0xB5, 0xAB, 0x44, 0xF0, 0xA6, 0xBC,\n\t0xAC, 0x44, 0xF0, 0xA6, 0xBE, 0xB1, 0x44, 0xF0,\n\t0xA7, 0x83, 0x92, 0x44, 0xF0, 0xA7, 0x8F, 0x8A,\n\t0x44, 0xF0, 0xA7, 0x99, 0xA7, 0x44, 0xF0, 0xA7,\n\t// Bytes 1800 - 183f\n\t0xA2, 0xAE, 0x44, 0xF0, 0xA7, 0xA5, 0xA6, 0x44,\n\t0xF0, 0xA7, 0xB2, 0xA8, 0x44, 0xF0, 0xA7, 0xBB,\n\t0x93, 0x44, 0xF0, 0xA7, 0xBC, 0xAF, 0x44, 0xF0,\n\t0xA8, 0x97, 0x92, 0x44, 0xF0, 0xA8, 0x97, 0xAD,\n\t0x44, 0xF0, 0xA8, 0x9C, 0xAE, 0x44, 0xF0, 0xA8,\n\t0xAF, 0xBA, 0x44, 0xF0, 0xA8, 0xB5, 0xB7, 0x44,\n\t0xF0, 0xA9, 0x85, 0x85, 0x44, 0xF0, 0xA9, 0x87,\n\t0x9F, 0x44, 0xF0, 0xA9, 0x88, 0x9A, 0x44, 0xF0,\n\t// Bytes 1840 - 187f\n\t0xA9, 0x90, 0x8A, 0x44, 0xF0, 0xA9, 0x92, 0x96,\n\t0x44, 0xF0, 0xA9, 0x96, 0xB6, 0x44, 0xF0, 0xA9,\n\t0xAC, 0xB0, 0x44, 0xF0, 0xAA, 0x83, 0x8E, 0x44,\n\t0xF0, 0xAA, 0x84, 0x85, 0x44, 0xF0, 0xAA, 0x88,\n\t0x8E, 0x44, 0xF0, 0xAA, 0x8A, 0x91, 0x44, 0xF0,\n\t0xAA, 0x8E, 0x92, 0x44, 0xF0, 0xAA, 0x98, 0x80,\n\t0x42, 0x21, 0x21, 0x42, 0x21, 0x3F, 0x42, 0x2E,\n\t0x2E, 0x42, 0x30, 0x2C, 0x42, 0x30, 0x2E, 0x42,\n\t// Bytes 1880 - 18bf\n\t0x31, 0x2C, 0x42, 0x31, 0x2E, 0x42, 0x31, 0x30,\n\t0x42, 0x31, 0x31, 0x42, 0x31, 0x32, 0x42, 0x31,\n\t0x33, 0x42, 0x31, 0x34, 0x42, 0x31, 0x35, 0x42,\n\t0x31, 0x36, 0x42, 0x31, 0x37, 0x42, 0x31, 0x38,\n\t0x42, 0x31, 0x39, 0x42, 0x32, 0x2C, 0x42, 0x32,\n\t0x2E, 0x42, 0x32, 0x30, 0x42, 0x32, 0x31, 0x42,\n\t0x32, 0x32, 0x42, 0x32, 0x33, 0x42, 0x32, 0x34,\n\t0x42, 0x32, 0x35, 0x42, 0x32, 0x36, 0x42, 0x32,\n\t// Bytes 18c0 - 18ff\n\t0x37, 0x42, 0x32, 0x38, 0x42, 0x32, 0x39, 0x42,\n\t0x33, 0x2C, 0x42, 0x33, 0x2E, 0x42, 0x33, 0x30,\n\t0x42, 0x33, 0x31, 0x42, 0x33, 0x32, 0x42, 0x33,\n\t0x33, 0x42, 0x33, 0x34, 0x42, 0x33, 0x35, 0x42,\n\t0x33, 0x36, 0x42, 0x33, 0x37, 0x42, 0x33, 0x38,\n\t0x42, 0x33, 0x39, 0x42, 0x34, 0x2C, 0x42, 0x34,\n\t0x2E, 0x42, 0x34, 0x30, 0x42, 0x34, 0x31, 0x42,\n\t0x34, 0x32, 0x42, 0x34, 0x33, 0x42, 0x34, 0x34,\n\t// Bytes 1900 - 193f\n\t0x42, 0x34, 0x35, 0x42, 0x34, 0x36, 0x42, 0x34,\n\t0x37, 0x42, 0x34, 0x38, 0x42, 0x34, 0x39, 0x42,\n\t0x35, 0x2C, 0x42, 0x35, 0x2E, 0x42, 0x35, 0x30,\n\t0x42, 0x36, 0x2C, 0x42, 0x36, 0x2E, 0x42, 0x37,\n\t0x2C, 0x42, 0x37, 0x2E, 0x42, 0x38, 0x2C, 0x42,\n\t0x38, 0x2E, 0x42, 0x39, 0x2C, 0x42, 0x39, 0x2E,\n\t0x42, 0x3D, 0x3D, 0x42, 0x3F, 0x21, 0x42, 0x3F,\n\t0x3F, 0x42, 0x41, 0x55, 0x42, 0x42, 0x71, 0x42,\n\t// Bytes 1940 - 197f\n\t0x43, 0x44, 0x42, 0x44, 0x4A, 0x42, 0x44, 0x5A,\n\t0x42, 0x44, 0x7A, 0x42, 0x47, 0x42, 0x42, 0x47,\n\t0x79, 0x42, 0x48, 0x50, 0x42, 0x48, 0x56, 0x42,\n\t0x48, 0x67, 0x42, 0x48, 0x7A, 0x42, 0x49, 0x49,\n\t0x42, 0x49, 0x4A, 0x42, 0x49, 0x55, 0x42, 0x49,\n\t0x56, 0x42, 0x49, 0x58, 0x42, 0x4B, 0x42, 0x42,\n\t0x4B, 0x4B, 0x42, 0x4B, 0x4D, 0x42, 0x4C, 0x4A,\n\t0x42, 0x4C, 0x6A, 0x42, 0x4D, 0x42, 0x42, 0x4D,\n\t// Bytes 1980 - 19bf\n\t0x43, 0x42, 0x4D, 0x44, 0x42, 0x4D, 0x52, 0x42,\n\t0x4D, 0x56, 0x42, 0x4D, 0x57, 0x42, 0x4E, 0x4A,\n\t0x42, 0x4E, 0x6A, 0x42, 0x4E, 0x6F, 0x42, 0x50,\n\t0x48, 0x42, 0x50, 0x52, 0x42, 0x50, 0x61, 0x42,\n\t0x52, 0x73, 0x42, 0x53, 0x44, 0x42, 0x53, 0x4D,\n\t0x42, 0x53, 0x53, 0x42, 0x53, 0x76, 0x42, 0x54,\n\t0x4D, 0x42, 0x56, 0x49, 0x42, 0x57, 0x43, 0x42,\n\t0x57, 0x5A, 0x42, 0x57, 0x62, 0x42, 0x58, 0x49,\n\t// Bytes 19c0 - 19ff\n\t0x42, 0x63, 0x63, 0x42, 0x63, 0x64, 0x42, 0x63,\n\t0x6D, 0x42, 0x64, 0x42, 0x42, 0x64, 0x61, 0x42,\n\t0x64, 0x6C, 0x42, 0x64, 0x6D, 0x42, 0x64, 0x7A,\n\t0x42, 0x65, 0x56, 0x42, 0x66, 0x66, 0x42, 0x66,\n\t0x69, 0x42, 0x66, 0x6C, 0x42, 0x66, 0x6D, 0x42,\n\t0x68, 0x61, 0x42, 0x69, 0x69, 0x42, 0x69, 0x6A,\n\t0x42, 0x69, 0x6E, 0x42, 0x69, 0x76, 0x42, 0x69,\n\t0x78, 0x42, 0x6B, 0x41, 0x42, 0x6B, 0x56, 0x42,\n\t// Bytes 1a00 - 1a3f\n\t0x6B, 0x57, 0x42, 0x6B, 0x67, 0x42, 0x6B, 0x6C,\n\t0x42, 0x6B, 0x6D, 0x42, 0x6B, 0x74, 0x42, 0x6C,\n\t0x6A, 0x42, 0x6C, 0x6D, 0x42, 0x6C, 0x6E, 0x42,\n\t0x6C, 0x78, 0x42, 0x6D, 0x32, 0x42, 0x6D, 0x33,\n\t0x42, 0x6D, 0x41, 0x42, 0x6D, 0x56, 0x42, 0x6D,\n\t0x57, 0x42, 0x6D, 0x62, 0x42, 0x6D, 0x67, 0x42,\n\t0x6D, 0x6C, 0x42, 0x6D, 0x6D, 0x42, 0x6D, 0x73,\n\t0x42, 0x6E, 0x41, 0x42, 0x6E, 0x46, 0x42, 0x6E,\n\t// Bytes 1a40 - 1a7f\n\t0x56, 0x42, 0x6E, 0x57, 0x42, 0x6E, 0x6A, 0x42,\n\t0x6E, 0x6D, 0x42, 0x6E, 0x73, 0x42, 0x6F, 0x56,\n\t0x42, 0x70, 0x41, 0x42, 0x70, 0x46, 0x42, 0x70,\n\t0x56, 0x42, 0x70, 0x57, 0x42, 0x70, 0x63, 0x42,\n\t0x70, 0x73, 0x42, 0x73, 0x72, 0x42, 0x73, 0x74,\n\t0x42, 0x76, 0x69, 0x42, 0x78, 0x69, 0x43, 0x28,\n\t0x31, 0x29, 0x43, 0x28, 0x32, 0x29, 0x43, 0x28,\n\t0x33, 0x29, 0x43, 0x28, 0x34, 0x29, 0x43, 0x28,\n\t// Bytes 1a80 - 1abf\n\t0x35, 0x29, 0x43, 0x28, 0x36, 0x29, 0x43, 0x28,\n\t0x37, 0x29, 0x43, 0x28, 0x38, 0x29, 0x43, 0x28,\n\t0x39, 0x29, 0x43, 0x28, 0x41, 0x29, 0x43, 0x28,\n\t0x42, 0x29, 0x43, 0x28, 0x43, 0x29, 0x43, 0x28,\n\t0x44, 0x29, 0x43, 0x28, 0x45, 0x29, 0x43, 0x28,\n\t0x46, 0x29, 0x43, 0x28, 0x47, 0x29, 0x43, 0x28,\n\t0x48, 0x29, 0x43, 0x28, 0x49, 0x29, 0x43, 0x28,\n\t0x4A, 0x29, 0x43, 0x28, 0x4B, 0x29, 0x43, 0x28,\n\t// Bytes 1ac0 - 1aff\n\t0x4C, 0x29, 0x43, 0x28, 0x4D, 0x29, 0x43, 0x28,\n\t0x4E, 0x29, 0x43, 0x28, 0x4F, 0x29, 0x43, 0x28,\n\t0x50, 0x29, 0x43, 0x28, 0x51, 0x29, 0x43, 0x28,\n\t0x52, 0x29, 0x43, 0x28, 0x53, 0x29, 0x43, 0x28,\n\t0x54, 0x29, 0x43, 0x28, 0x55, 0x29, 0x43, 0x28,\n\t0x56, 0x29, 0x43, 0x28, 0x57, 0x29, 0x43, 0x28,\n\t0x58, 0x29, 0x43, 0x28, 0x59, 0x29, 0x43, 0x28,\n\t0x5A, 0x29, 0x43, 0x28, 0x61, 0x29, 0x43, 0x28,\n\t// Bytes 1b00 - 1b3f\n\t0x62, 0x29, 0x43, 0x28, 0x63, 0x29, 0x43, 0x28,\n\t0x64, 0x29, 0x43, 0x28, 0x65, 0x29, 0x43, 0x28,\n\t0x66, 0x29, 0x43, 0x28, 0x67, 0x29, 0x43, 0x28,\n\t0x68, 0x29, 0x43, 0x28, 0x69, 0x29, 0x43, 0x28,\n\t0x6A, 0x29, 0x43, 0x28, 0x6B, 0x29, 0x43, 0x28,\n\t0x6C, 0x29, 0x43, 0x28, 0x6D, 0x29, 0x43, 0x28,\n\t0x6E, 0x29, 0x43, 0x28, 0x6F, 0x29, 0x43, 0x28,\n\t0x70, 0x29, 0x43, 0x28, 0x71, 0x29, 0x43, 0x28,\n\t// Bytes 1b40 - 1b7f\n\t0x72, 0x29, 0x43, 0x28, 0x73, 0x29, 0x43, 0x28,\n\t0x74, 0x29, 0x43, 0x28, 0x75, 0x29, 0x43, 0x28,\n\t0x76, 0x29, 0x43, 0x28, 0x77, 0x29, 0x43, 0x28,\n\t0x78, 0x29, 0x43, 0x28, 0x79, 0x29, 0x43, 0x28,\n\t0x7A, 0x29, 0x43, 0x2E, 0x2E, 0x2E, 0x43, 0x31,\n\t0x30, 0x2E, 0x43, 0x31, 0x31, 0x2E, 0x43, 0x31,\n\t0x32, 0x2E, 0x43, 0x31, 0x33, 0x2E, 0x43, 0x31,\n\t0x34, 0x2E, 0x43, 0x31, 0x35, 0x2E, 0x43, 0x31,\n\t// Bytes 1b80 - 1bbf\n\t0x36, 0x2E, 0x43, 0x31, 0x37, 0x2E, 0x43, 0x31,\n\t0x38, 0x2E, 0x43, 0x31, 0x39, 0x2E, 0x43, 0x32,\n\t0x30, 0x2E, 0x43, 0x3A, 0x3A, 0x3D, 0x43, 0x3D,\n\t0x3D, 0x3D, 0x43, 0x43, 0x6F, 0x2E, 0x43, 0x46,\n\t0x41, 0x58, 0x43, 0x47, 0x48, 0x7A, 0x43, 0x47,\n\t0x50, 0x61, 0x43, 0x49, 0x49, 0x49, 0x43, 0x4C,\n\t0x54, 0x44, 0x43, 0x4C, 0xC2, 0xB7, 0x43, 0x4D,\n\t0x48, 0x7A, 0x43, 0x4D, 0x50, 0x61, 0x43, 0x4D,\n\t// Bytes 1bc0 - 1bff\n\t0xCE, 0xA9, 0x43, 0x50, 0x50, 0x4D, 0x43, 0x50,\n\t0x50, 0x56, 0x43, 0x50, 0x54, 0x45, 0x43, 0x54,\n\t0x45, 0x4C, 0x43, 0x54, 0x48, 0x7A, 0x43, 0x56,\n\t0x49, 0x49, 0x43, 0x58, 0x49, 0x49, 0x43, 0x61,\n\t0x2F, 0x63, 0x43, 0x61, 0x2F, 0x73, 0x43, 0x61,\n\t0xCA, 0xBE, 0x43, 0x62, 0x61, 0x72, 0x43, 0x63,\n\t0x2F, 0x6F, 0x43, 0x63, 0x2F, 0x75, 0x43, 0x63,\n\t0x61, 0x6C, 0x43, 0x63, 0x6D, 0x32, 0x43, 0x63,\n\t// Bytes 1c00 - 1c3f\n\t0x6D, 0x33, 0x43, 0x64, 0x6D, 0x32, 0x43, 0x64,\n\t0x6D, 0x33, 0x43, 0x65, 0x72, 0x67, 0x43, 0x66,\n\t0x66, 0x69, 0x43, 0x66, 0x66, 0x6C, 0x43, 0x67,\n\t0x61, 0x6C, 0x43, 0x68, 0x50, 0x61, 0x43, 0x69,\n\t0x69, 0x69, 0x43, 0x6B, 0x48, 0x7A, 0x43, 0x6B,\n\t0x50, 0x61, 0x43, 0x6B, 0x6D, 0x32, 0x43, 0x6B,\n\t0x6D, 0x33, 0x43, 0x6B, 0xCE, 0xA9, 0x43, 0x6C,\n\t0x6F, 0x67, 0x43, 0x6C, 0xC2, 0xB7, 0x43, 0x6D,\n\t// Bytes 1c40 - 1c7f\n\t0x69, 0x6C, 0x43, 0x6D, 0x6D, 0x32, 0x43, 0x6D,\n\t0x6D, 0x33, 0x43, 0x6D, 0x6F, 0x6C, 0x43, 0x72,\n\t0x61, 0x64, 0x43, 0x76, 0x69, 0x69, 0x43, 0x78,\n\t0x69, 0x69, 0x43, 0xC2, 0xB0, 0x43, 0x43, 0xC2,\n\t0xB0, 0x46, 0x43, 0xCA, 0xBC, 0x6E, 0x43, 0xCE,\n\t0xBC, 0x41, 0x43, 0xCE, 0xBC, 0x46, 0x43, 0xCE,\n\t0xBC, 0x56, 0x43, 0xCE, 0xBC, 0x57, 0x43, 0xCE,\n\t0xBC, 0x67, 0x43, 0xCE, 0xBC, 0x6C, 0x43, 0xCE,\n\t// Bytes 1c80 - 1cbf\n\t0xBC, 0x6D, 0x43, 0xCE, 0xBC, 0x73, 0x44, 0x28,\n\t0x31, 0x30, 0x29, 0x44, 0x28, 0x31, 0x31, 0x29,\n\t0x44, 0x28, 0x31, 0x32, 0x29, 0x44, 0x28, 0x31,\n\t0x33, 0x29, 0x44, 0x28, 0x31, 0x34, 0x29, 0x44,\n\t0x28, 0x31, 0x35, 0x29, 0x44, 0x28, 0x31, 0x36,\n\t0x29, 0x44, 0x28, 0x31, 0x37, 0x29, 0x44, 0x28,\n\t0x31, 0x38, 0x29, 0x44, 0x28, 0x31, 0x39, 0x29,\n\t0x44, 0x28, 0x32, 0x30, 0x29, 0x44, 0x30, 0xE7,\n\t// Bytes 1cc0 - 1cff\n\t0x82, 0xB9, 0x44, 0x31, 0xE2, 0x81, 0x84, 0x44,\n\t0x31, 0xE6, 0x97, 0xA5, 0x44, 0x31, 0xE6, 0x9C,\n\t0x88, 0x44, 0x31, 0xE7, 0x82, 0xB9, 0x44, 0x32,\n\t0xE6, 0x97, 0xA5, 0x44, 0x32, 0xE6, 0x9C, 0x88,\n\t0x44, 0x32, 0xE7, 0x82, 0xB9, 0x44, 0x33, 0xE6,\n\t0x97, 0xA5, 0x44, 0x33, 0xE6, 0x9C, 0x88, 0x44,\n\t0x33, 0xE7, 0x82, 0xB9, 0x44, 0x34, 0xE6, 0x97,\n\t0xA5, 0x44, 0x34, 0xE6, 0x9C, 0x88, 0x44, 0x34,\n\t// Bytes 1d00 - 1d3f\n\t0xE7, 0x82, 0xB9, 0x44, 0x35, 0xE6, 0x97, 0xA5,\n\t0x44, 0x35, 0xE6, 0x9C, 0x88, 0x44, 0x35, 0xE7,\n\t0x82, 0xB9, 0x44, 0x36, 0xE6, 0x97, 0xA5, 0x44,\n\t0x36, 0xE6, 0x9C, 0x88, 0x44, 0x36, 0xE7, 0x82,\n\t0xB9, 0x44, 0x37, 0xE6, 0x97, 0xA5, 0x44, 0x37,\n\t0xE6, 0x9C, 0x88, 0x44, 0x37, 0xE7, 0x82, 0xB9,\n\t0x44, 0x38, 0xE6, 0x97, 0xA5, 0x44, 0x38, 0xE6,\n\t0x9C, 0x88, 0x44, 0x38, 0xE7, 0x82, 0xB9, 0x44,\n\t// Bytes 1d40 - 1d7f\n\t0x39, 0xE6, 0x97, 0xA5, 0x44, 0x39, 0xE6, 0x9C,\n\t0x88, 0x44, 0x39, 0xE7, 0x82, 0xB9, 0x44, 0x56,\n\t0x49, 0x49, 0x49, 0x44, 0x61, 0x2E, 0x6D, 0x2E,\n\t0x44, 0x6B, 0x63, 0x61, 0x6C, 0x44, 0x70, 0x2E,\n\t0x6D, 0x2E, 0x44, 0x76, 0x69, 0x69, 0x69, 0x44,\n\t0xD5, 0xA5, 0xD6, 0x82, 0x44, 0xD5, 0xB4, 0xD5,\n\t0xA5, 0x44, 0xD5, 0xB4, 0xD5, 0xAB, 0x44, 0xD5,\n\t0xB4, 0xD5, 0xAD, 0x44, 0xD5, 0xB4, 0xD5, 0xB6,\n\t// Bytes 1d80 - 1dbf\n\t0x44, 0xD5, 0xBE, 0xD5, 0xB6, 0x44, 0xD7, 0x90,\n\t0xD7, 0x9C, 0x44, 0xD8, 0xA7, 0xD9, 0xB4, 0x44,\n\t0xD8, 0xA8, 0xD8, 0xAC, 0x44, 0xD8, 0xA8, 0xD8,\n\t0xAD, 0x44, 0xD8, 0xA8, 0xD8, 0xAE, 0x44, 0xD8,\n\t0xA8, 0xD8, 0xB1, 0x44, 0xD8, 0xA8, 0xD8, 0xB2,\n\t0x44, 0xD8, 0xA8, 0xD9, 0x85, 0x44, 0xD8, 0xA8,\n\t0xD9, 0x86, 0x44, 0xD8, 0xA8, 0xD9, 0x87, 0x44,\n\t0xD8, 0xA8, 0xD9, 0x89, 0x44, 0xD8, 0xA8, 0xD9,\n\t// Bytes 1dc0 - 1dff\n\t0x8A, 0x44, 0xD8, 0xAA, 0xD8, 0xAC, 0x44, 0xD8,\n\t0xAA, 0xD8, 0xAD, 0x44, 0xD8, 0xAA, 0xD8, 0xAE,\n\t0x44, 0xD8, 0xAA, 0xD8, 0xB1, 0x44, 0xD8, 0xAA,\n\t0xD8, 0xB2, 0x44, 0xD8, 0xAA, 0xD9, 0x85, 0x44,\n\t0xD8, 0xAA, 0xD9, 0x86, 0x44, 0xD8, 0xAA, 0xD9,\n\t0x87, 0x44, 0xD8, 0xAA, 0xD9, 0x89, 0x44, 0xD8,\n\t0xAA, 0xD9, 0x8A, 0x44, 0xD8, 0xAB, 0xD8, 0xAC,\n\t0x44, 0xD8, 0xAB, 0xD8, 0xB1, 0x44, 0xD8, 0xAB,\n\t// Bytes 1e00 - 1e3f\n\t0xD8, 0xB2, 0x44, 0xD8, 0xAB, 0xD9, 0x85, 0x44,\n\t0xD8, 0xAB, 0xD9, 0x86, 0x44, 0xD8, 0xAB, 0xD9,\n\t0x87, 0x44, 0xD8, 0xAB, 0xD9, 0x89, 0x44, 0xD8,\n\t0xAB, 0xD9, 0x8A, 0x44, 0xD8, 0xAC, 0xD8, 0xAD,\n\t0x44, 0xD8, 0xAC, 0xD9, 0x85, 0x44, 0xD8, 0xAC,\n\t0xD9, 0x89, 0x44, 0xD8, 0xAC, 0xD9, 0x8A, 0x44,\n\t0xD8, 0xAD, 0xD8, 0xAC, 0x44, 0xD8, 0xAD, 0xD9,\n\t0x85, 0x44, 0xD8, 0xAD, 0xD9, 0x89, 0x44, 0xD8,\n\t// Bytes 1e40 - 1e7f\n\t0xAD, 0xD9, 0x8A, 0x44, 0xD8, 0xAE, 0xD8, 0xAC,\n\t0x44, 0xD8, 0xAE, 0xD8, 0xAD, 0x44, 0xD8, 0xAE,\n\t0xD9, 0x85, 0x44, 0xD8, 0xAE, 0xD9, 0x89, 0x44,\n\t0xD8, 0xAE, 0xD9, 0x8A, 0x44, 0xD8, 0xB3, 0xD8,\n\t0xAC, 0x44, 0xD8, 0xB3, 0xD8, 0xAD, 0x44, 0xD8,\n\t0xB3, 0xD8, 0xAE, 0x44, 0xD8, 0xB3, 0xD8, 0xB1,\n\t0x44, 0xD8, 0xB3, 0xD9, 0x85, 0x44, 0xD8, 0xB3,\n\t0xD9, 0x87, 0x44, 0xD8, 0xB3, 0xD9, 0x89, 0x44,\n\t// Bytes 1e80 - 1ebf\n\t0xD8, 0xB3, 0xD9, 0x8A, 0x44, 0xD8, 0xB4, 0xD8,\n\t0xAC, 0x44, 0xD8, 0xB4, 0xD8, 0xAD, 0x44, 0xD8,\n\t0xB4, 0xD8, 0xAE, 0x44, 0xD8, 0xB4, 0xD8, 0xB1,\n\t0x44, 0xD8, 0xB4, 0xD9, 0x85, 0x44, 0xD8, 0xB4,\n\t0xD9, 0x87, 0x44, 0xD8, 0xB4, 0xD9, 0x89, 0x44,\n\t0xD8, 0xB4, 0xD9, 0x8A, 0x44, 0xD8, 0xB5, 0xD8,\n\t0xAD, 0x44, 0xD8, 0xB5, 0xD8, 0xAE, 0x44, 0xD8,\n\t0xB5, 0xD8, 0xB1, 0x44, 0xD8, 0xB5, 0xD9, 0x85,\n\t// Bytes 1ec0 - 1eff\n\t0x44, 0xD8, 0xB5, 0xD9, 0x89, 0x44, 0xD8, 0xB5,\n\t0xD9, 0x8A, 0x44, 0xD8, 0xB6, 0xD8, 0xAC, 0x44,\n\t0xD8, 0xB6, 0xD8, 0xAD, 0x44, 0xD8, 0xB6, 0xD8,\n\t0xAE, 0x44, 0xD8, 0xB6, 0xD8, 0xB1, 0x44, 0xD8,\n\t0xB6, 0xD9, 0x85, 0x44, 0xD8, 0xB6, 0xD9, 0x89,\n\t0x44, 0xD8, 0xB6, 0xD9, 0x8A, 0x44, 0xD8, 0xB7,\n\t0xD8, 0xAD, 0x44, 0xD8, 0xB7, 0xD9, 0x85, 0x44,\n\t0xD8, 0xB7, 0xD9, 0x89, 0x44, 0xD8, 0xB7, 0xD9,\n\t// Bytes 1f00 - 1f3f\n\t0x8A, 0x44, 0xD8, 0xB8, 0xD9, 0x85, 0x44, 0xD8,\n\t0xB9, 0xD8, 0xAC, 0x44, 0xD8, 0xB9, 0xD9, 0x85,\n\t0x44, 0xD8, 0xB9, 0xD9, 0x89, 0x44, 0xD8, 0xB9,\n\t0xD9, 0x8A, 0x44, 0xD8, 0xBA, 0xD8, 0xAC, 0x44,\n\t0xD8, 0xBA, 0xD9, 0x85, 0x44, 0xD8, 0xBA, 0xD9,\n\t0x89, 0x44, 0xD8, 0xBA, 0xD9, 0x8A, 0x44, 0xD9,\n\t0x81, 0xD8, 0xAC, 0x44, 0xD9, 0x81, 0xD8, 0xAD,\n\t0x44, 0xD9, 0x81, 0xD8, 0xAE, 0x44, 0xD9, 0x81,\n\t// Bytes 1f40 - 1f7f\n\t0xD9, 0x85, 0x44, 0xD9, 0x81, 0xD9, 0x89, 0x44,\n\t0xD9, 0x81, 0xD9, 0x8A, 0x44, 0xD9, 0x82, 0xD8,\n\t0xAD, 0x44, 0xD9, 0x82, 0xD9, 0x85, 0x44, 0xD9,\n\t0x82, 0xD9, 0x89, 0x44, 0xD9, 0x82, 0xD9, 0x8A,\n\t0x44, 0xD9, 0x83, 0xD8, 0xA7, 0x44, 0xD9, 0x83,\n\t0xD8, 0xAC, 0x44, 0xD9, 0x83, 0xD8, 0xAD, 0x44,\n\t0xD9, 0x83, 0xD8, 0xAE, 0x44, 0xD9, 0x83, 0xD9,\n\t0x84, 0x44, 0xD9, 0x83, 0xD9, 0x85, 0x44, 0xD9,\n\t// Bytes 1f80 - 1fbf\n\t0x83, 0xD9, 0x89, 0x44, 0xD9, 0x83, 0xD9, 0x8A,\n\t0x44, 0xD9, 0x84, 0xD8, 0xA7, 0x44, 0xD9, 0x84,\n\t0xD8, 0xAC, 0x44, 0xD9, 0x84, 0xD8, 0xAD, 0x44,\n\t0xD9, 0x84, 0xD8, 0xAE, 0x44, 0xD9, 0x84, 0xD9,\n\t0x85, 0x44, 0xD9, 0x84, 0xD9, 0x87, 0x44, 0xD9,\n\t0x84, 0xD9, 0x89, 0x44, 0xD9, 0x84, 0xD9, 0x8A,\n\t0x44, 0xD9, 0x85, 0xD8, 0xA7, 0x44, 0xD9, 0x85,\n\t0xD8, 0xAC, 0x44, 0xD9, 0x85, 0xD8, 0xAD, 0x44,\n\t// Bytes 1fc0 - 1fff\n\t0xD9, 0x85, 0xD8, 0xAE, 0x44, 0xD9, 0x85, 0xD9,\n\t0x85, 0x44, 0xD9, 0x85, 0xD9, 0x89, 0x44, 0xD9,\n\t0x85, 0xD9, 0x8A, 0x44, 0xD9, 0x86, 0xD8, 0xAC,\n\t0x44, 0xD9, 0x86, 0xD8, 0xAD, 0x44, 0xD9, 0x86,\n\t0xD8, 0xAE, 0x44, 0xD9, 0x86, 0xD8, 0xB1, 0x44,\n\t0xD9, 0x86, 0xD8, 0xB2, 0x44, 0xD9, 0x86, 0xD9,\n\t0x85, 0x44, 0xD9, 0x86, 0xD9, 0x86, 0x44, 0xD9,\n\t0x86, 0xD9, 0x87, 0x44, 0xD9, 0x86, 0xD9, 0x89,\n\t// Bytes 2000 - 203f\n\t0x44, 0xD9, 0x86, 0xD9, 0x8A, 0x44, 0xD9, 0x87,\n\t0xD8, 0xAC, 0x44, 0xD9, 0x87, 0xD9, 0x85, 0x44,\n\t0xD9, 0x87, 0xD9, 0x89, 0x44, 0xD9, 0x87, 0xD9,\n\t0x8A, 0x44, 0xD9, 0x88, 0xD9, 0xB4, 0x44, 0xD9,\n\t0x8A, 0xD8, 0xAC, 0x44, 0xD9, 0x8A, 0xD8, 0xAD,\n\t0x44, 0xD9, 0x8A, 0xD8, 0xAE, 0x44, 0xD9, 0x8A,\n\t0xD8, 0xB1, 0x44, 0xD9, 0x8A, 0xD8, 0xB2, 0x44,\n\t0xD9, 0x8A, 0xD9, 0x85, 0x44, 0xD9, 0x8A, 0xD9,\n\t// Bytes 2040 - 207f\n\t0x86, 0x44, 0xD9, 0x8A, 0xD9, 0x87, 0x44, 0xD9,\n\t0x8A, 0xD9, 0x89, 0x44, 0xD9, 0x8A, 0xD9, 0x8A,\n\t0x44, 0xD9, 0x8A, 0xD9, 0xB4, 0x44, 0xDB, 0x87,\n\t0xD9, 0xB4, 0x45, 0x28, 0xE1, 0x84, 0x80, 0x29,\n\t0x45, 0x28, 0xE1, 0x84, 0x82, 0x29, 0x45, 0x28,\n\t0xE1, 0x84, 0x83, 0x29, 0x45, 0x28, 0xE1, 0x84,\n\t0x85, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x86, 0x29,\n\t0x45, 0x28, 0xE1, 0x84, 0x87, 0x29, 0x45, 0x28,\n\t// Bytes 2080 - 20bf\n\t0xE1, 0x84, 0x89, 0x29, 0x45, 0x28, 0xE1, 0x84,\n\t0x8B, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8C, 0x29,\n\t0x45, 0x28, 0xE1, 0x84, 0x8E, 0x29, 0x45, 0x28,\n\t0xE1, 0x84, 0x8F, 0x29, 0x45, 0x28, 0xE1, 0x84,\n\t0x90, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x91, 0x29,\n\t0x45, 0x28, 0xE1, 0x84, 0x92, 0x29, 0x45, 0x28,\n\t0xE4, 0xB8, 0x80, 0x29, 0x45, 0x28, 0xE4, 0xB8,\n\t0x83, 0x29, 0x45, 0x28, 0xE4, 0xB8, 0x89, 0x29,\n\t// Bytes 20c0 - 20ff\n\t0x45, 0x28, 0xE4, 0xB9, 0x9D, 0x29, 0x45, 0x28,\n\t0xE4, 0xBA, 0x8C, 0x29, 0x45, 0x28, 0xE4, 0xBA,\n\t0x94, 0x29, 0x45, 0x28, 0xE4, 0xBB, 0xA3, 0x29,\n\t0x45, 0x28, 0xE4, 0xBC, 0x81, 0x29, 0x45, 0x28,\n\t0xE4, 0xBC, 0x91, 0x29, 0x45, 0x28, 0xE5, 0x85,\n\t0xAB, 0x29, 0x45, 0x28, 0xE5, 0x85, 0xAD, 0x29,\n\t0x45, 0x28, 0xE5, 0x8A, 0xB4, 0x29, 0x45, 0x28,\n\t0xE5, 0x8D, 0x81, 0x29, 0x45, 0x28, 0xE5, 0x8D,\n\t// Bytes 2100 - 213f\n\t0x94, 0x29, 0x45, 0x28, 0xE5, 0x90, 0x8D, 0x29,\n\t0x45, 0x28, 0xE5, 0x91, 0xBC, 0x29, 0x45, 0x28,\n\t0xE5, 0x9B, 0x9B, 0x29, 0x45, 0x28, 0xE5, 0x9C,\n\t0x9F, 0x29, 0x45, 0x28, 0xE5, 0xAD, 0xA6, 0x29,\n\t0x45, 0x28, 0xE6, 0x97, 0xA5, 0x29, 0x45, 0x28,\n\t0xE6, 0x9C, 0x88, 0x29, 0x45, 0x28, 0xE6, 0x9C,\n\t0x89, 0x29, 0x45, 0x28, 0xE6, 0x9C, 0xA8, 0x29,\n\t0x45, 0x28, 0xE6, 0xA0, 0xAA, 0x29, 0x45, 0x28,\n\t// Bytes 2140 - 217f\n\t0xE6, 0xB0, 0xB4, 0x29, 0x45, 0x28, 0xE7, 0x81,\n\t0xAB, 0x29, 0x45, 0x28, 0xE7, 0x89, 0xB9, 0x29,\n\t0x45, 0x28, 0xE7, 0x9B, 0xA3, 0x29, 0x45, 0x28,\n\t0xE7, 0xA4, 0xBE, 0x29, 0x45, 0x28, 0xE7, 0xA5,\n\t0x9D, 0x29, 0x45, 0x28, 0xE7, 0xA5, 0xAD, 0x29,\n\t0x45, 0x28, 0xE8, 0x87, 0xAA, 0x29, 0x45, 0x28,\n\t0xE8, 0x87, 0xB3, 0x29, 0x45, 0x28, 0xE8, 0xB2,\n\t0xA1, 0x29, 0x45, 0x28, 0xE8, 0xB3, 0x87, 0x29,\n\t// Bytes 2180 - 21bf\n\t0x45, 0x28, 0xE9, 0x87, 0x91, 0x29, 0x45, 0x30,\n\t0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, 0x30, 0xE6,\n\t0x97, 0xA5, 0x45, 0x31, 0x30, 0xE6, 0x9C, 0x88,\n\t0x45, 0x31, 0x30, 0xE7, 0x82, 0xB9, 0x45, 0x31,\n\t0x31, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x31, 0xE6,\n\t0x9C, 0x88, 0x45, 0x31, 0x31, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x32, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t0x32, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x32, 0xE7,\n\t// Bytes 21c0 - 21ff\n\t0x82, 0xB9, 0x45, 0x31, 0x33, 0xE6, 0x97, 0xA5,\n\t0x45, 0x31, 0x33, 0xE7, 0x82, 0xB9, 0x45, 0x31,\n\t0x34, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x34, 0xE7,\n\t0x82, 0xB9, 0x45, 0x31, 0x35, 0xE6, 0x97, 0xA5,\n\t0x45, 0x31, 0x35, 0xE7, 0x82, 0xB9, 0x45, 0x31,\n\t0x36, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x36, 0xE7,\n\t0x82, 0xB9, 0x45, 0x31, 0x37, 0xE6, 0x97, 0xA5,\n\t0x45, 0x31, 0x37, 0xE7, 0x82, 0xB9, 0x45, 0x31,\n\t// Bytes 2200 - 223f\n\t0x38, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x38, 0xE7,\n\t0x82, 0xB9, 0x45, 0x31, 0x39, 0xE6, 0x97, 0xA5,\n\t0x45, 0x31, 0x39, 0xE7, 0x82, 0xB9, 0x45, 0x31,\n\t0xE2, 0x81, 0x84, 0x32, 0x45, 0x31, 0xE2, 0x81,\n\t0x84, 0x33, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x34,\n\t0x45, 0x31, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x31,\n\t0xE2, 0x81, 0x84, 0x36, 0x45, 0x31, 0xE2, 0x81,\n\t0x84, 0x37, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x38,\n\t// Bytes 2240 - 227f\n\t0x45, 0x31, 0xE2, 0x81, 0x84, 0x39, 0x45, 0x32,\n\t0x30, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x30, 0xE7,\n\t0x82, 0xB9, 0x45, 0x32, 0x31, 0xE6, 0x97, 0xA5,\n\t0x45, 0x32, 0x31, 0xE7, 0x82, 0xB9, 0x45, 0x32,\n\t0x32, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x32, 0xE7,\n\t0x82, 0xB9, 0x45, 0x32, 0x33, 0xE6, 0x97, 0xA5,\n\t0x45, 0x32, 0x33, 0xE7, 0x82, 0xB9, 0x45, 0x32,\n\t0x34, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x34, 0xE7,\n\t// Bytes 2280 - 22bf\n\t0x82, 0xB9, 0x45, 0x32, 0x35, 0xE6, 0x97, 0xA5,\n\t0x45, 0x32, 0x36, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x37, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x38, 0xE6,\n\t0x97, 0xA5, 0x45, 0x32, 0x39, 0xE6, 0x97, 0xA5,\n\t0x45, 0x32, 0xE2, 0x81, 0x84, 0x33, 0x45, 0x32,\n\t0xE2, 0x81, 0x84, 0x35, 0x45, 0x33, 0x30, 0xE6,\n\t0x97, 0xA5, 0x45, 0x33, 0x31, 0xE6, 0x97, 0xA5,\n\t0x45, 0x33, 0xE2, 0x81, 0x84, 0x34, 0x45, 0x33,\n\t// Bytes 22c0 - 22ff\n\t0xE2, 0x81, 0x84, 0x35, 0x45, 0x33, 0xE2, 0x81,\n\t0x84, 0x38, 0x45, 0x34, 0xE2, 0x81, 0x84, 0x35,\n\t0x45, 0x35, 0xE2, 0x81, 0x84, 0x36, 0x45, 0x35,\n\t0xE2, 0x81, 0x84, 0x38, 0x45, 0x37, 0xE2, 0x81,\n\t0x84, 0x38, 0x45, 0x41, 0xE2, 0x88, 0x95, 0x6D,\n\t0x45, 0x56, 0xE2, 0x88, 0x95, 0x6D, 0x45, 0x6D,\n\t0xE2, 0x88, 0x95, 0x73, 0x46, 0x31, 0xE2, 0x81,\n\t0x84, 0x31, 0x30, 0x46, 0x43, 0xE2, 0x88, 0x95,\n\t// Bytes 2300 - 233f\n\t0x6B, 0x67, 0x46, 0x6D, 0xE2, 0x88, 0x95, 0x73,\n\t0x32, 0x46, 0xD8, 0xA8, 0xD8, 0xAD, 0xD9, 0x8A,\n\t0x46, 0xD8, 0xA8, 0xD8, 0xAE, 0xD9, 0x8A, 0x46,\n\t0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x85, 0x46, 0xD8,\n\t0xAA, 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD8, 0xAA,\n\t0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, 0xAA, 0xD8,\n\t0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xAA, 0xD8, 0xAD,\n\t0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9,\n\t// Bytes 2340 - 237f\n\t0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9, 0x89,\n\t0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9, 0x8A, 0x46,\n\t0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD8,\n\t0xAA, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xAA,\n\t0xD9, 0x85, 0xD8, 0xAE, 0x46, 0xD8, 0xAA, 0xD9,\n\t0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD9, 0x85,\n\t0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD8, 0xAD, 0xD9,\n\t0x89, 0x46, 0xD8, 0xAC, 0xD8, 0xAD, 0xD9, 0x8A,\n\t// Bytes 2380 - 23bf\n\t0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD8, 0xAD, 0x46,\n\t0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8,\n\t0xAC, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xAD,\n\t0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, 0xAD, 0xD9,\n\t0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAD, 0xD9, 0x85,\n\t0xD9, 0x8A, 0x46, 0xD8, 0xB3, 0xD8, 0xAC, 0xD8,\n\t0xAD, 0x46, 0xD8, 0xB3, 0xD8, 0xAC, 0xD9, 0x89,\n\t0x46, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8, 0xAC, 0x46,\n\t// Bytes 23c0 - 23ff\n\t0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x89, 0x46, 0xD8,\n\t0xB3, 0xD8, 0xAE, 0xD9, 0x8A, 0x46, 0xD8, 0xB3,\n\t0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD8, 0xB3, 0xD9,\n\t0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, 0xD9, 0x85,\n\t0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, 0xAC, 0xD9,\n\t0x8A, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, 0xD9, 0x85,\n\t0x46, 0xD8, 0xB4, 0xD8, 0xAD, 0xD9, 0x8A, 0x46,\n\t0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xAE, 0x46, 0xD8,\n\t// Bytes 2400 - 243f\n\t0xB4, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB5,\n\t0xD8, 0xAD, 0xD8, 0xAD, 0x46, 0xD8, 0xB5, 0xD8,\n\t0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB5, 0xD9, 0x84,\n\t0xD9, 0x89, 0x46, 0xD8, 0xB5, 0xD9, 0x84, 0xDB,\n\t0x92, 0x46, 0xD8, 0xB5, 0xD9, 0x85, 0xD9, 0x85,\n\t0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x89, 0x46,\n\t0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8,\n\t0xB6, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD8, 0xB7,\n\t// Bytes 2440 - 247f\n\t0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xB7, 0xD9,\n\t0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB7, 0xD9, 0x85,\n\t0xD9, 0x8A, 0x46, 0xD8, 0xB9, 0xD8, 0xAC, 0xD9,\n\t0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x85,\n\t0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x89, 0x46,\n\t0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8,\n\t0xBA, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xBA,\n\t0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xBA, 0xD9,\n\t// Bytes 2480 - 24bf\n\t0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x81, 0xD8, 0xAE,\n\t0xD9, 0x85, 0x46, 0xD9, 0x81, 0xD9, 0x85, 0xD9,\n\t0x8A, 0x46, 0xD9, 0x82, 0xD9, 0x84, 0xDB, 0x92,\n\t0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD8, 0xAD, 0x46,\n\t0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9,\n\t0x82, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x83,\n\t0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, 0x83, 0xD9,\n\t0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAC,\n\t// Bytes 24c0 - 24ff\n\t0xD8, 0xAC, 0x46, 0xD9, 0x84, 0xD8, 0xAC, 0xD9,\n\t0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAC, 0xD9, 0x8A,\n\t0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x85, 0x46,\n\t0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x89, 0x46, 0xD9,\n\t0x84, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x84,\n\t0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD9,\n\t0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x84, 0xD9, 0x85,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD8,\n\t// Bytes 2500 - 253f\n\t0xAD, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD8, 0xAE,\n\t0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x85, 0x46,\n\t0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9,\n\t0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, 0xD9, 0x85,\n\t0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8,\n\t0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8, 0xAE,\n\t0xD8, 0xAC, 0x46, 0xD9, 0x85, 0xD8, 0xAE, 0xD9,\n\t0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAE, 0xD9, 0x8A,\n\t// Bytes 2540 - 257f\n\t0x46, 0xD9, 0x85, 0xD9, 0x85, 0xD9, 0x8A, 0x46,\n\t0xD9, 0x86, 0xD8, 0xAC, 0xD8, 0xAD, 0x46, 0xD9,\n\t0x86, 0xD8, 0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x86,\n\t0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD8,\n\t0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD8, 0xAD,\n\t0xD9, 0x85, 0x46, 0xD9, 0x86, 0xD8, 0xAD, 0xD9,\n\t0x89, 0x46, 0xD9, 0x86, 0xD8, 0xAD, 0xD9, 0x8A,\n\t0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x89, 0x46,\n\t// Bytes 2580 - 25bf\n\t0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9,\n\t0x87, 0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD9, 0x87,\n\t0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD8,\n\t0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD8, 0xAD,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, 0x85, 0xD9,\n\t0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x85, 0xD9, 0x8A,\n\t0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xA7, 0x46,\n\t0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAC, 0x46, 0xD9,\n\t// Bytes 25c0 - 25ff\n\t0x8A, 0xD9, 0x94, 0xD8, 0xAD, 0x46, 0xD9, 0x8A,\n\t0xD9, 0x94, 0xD8, 0xAE, 0x46, 0xD9, 0x8A, 0xD9,\n\t0x94, 0xD8, 0xB1, 0x46, 0xD9, 0x8A, 0xD9, 0x94,\n\t0xD8, 0xB2, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9,\n\t0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x86,\n\t0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x87, 0x46,\n\t0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x88, 0x46, 0xD9,\n\t0x8A, 0xD9, 0x94, 0xD9, 0x89, 0x46, 0xD9, 0x8A,\n\t// Bytes 2600 - 263f\n\t0xD9, 0x94, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9,\n\t0x94, 0xDB, 0x86, 0x46, 0xD9, 0x8A, 0xD9, 0x94,\n\t0xDB, 0x87, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB,\n\t0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x90,\n\t0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x95, 0x46,\n\t0xE0, 0xB9, 0x8D, 0xE0, 0xB8, 0xB2, 0x46, 0xE0,\n\t0xBA, 0xAB, 0xE0, 0xBA, 0x99, 0x46, 0xE0, 0xBA,\n\t0xAB, 0xE0, 0xBA, 0xA1, 0x46, 0xE0, 0xBB, 0x8D,\n\t// Bytes 2640 - 267f\n\t0xE0, 0xBA, 0xB2, 0x46, 0xE0, 0xBD, 0x80, 0xE0,\n\t0xBE, 0xB5, 0x46, 0xE0, 0xBD, 0x82, 0xE0, 0xBE,\n\t0xB7, 0x46, 0xE0, 0xBD, 0x8C, 0xE0, 0xBE, 0xB7,\n\t0x46, 0xE0, 0xBD, 0x91, 0xE0, 0xBE, 0xB7, 0x46,\n\t0xE0, 0xBD, 0x96, 0xE0, 0xBE, 0xB7, 0x46, 0xE0,\n\t0xBD, 0x9B, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE,\n\t0x90, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, 0xBE, 0x92,\n\t0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0x9C, 0xE0,\n\t// Bytes 2680 - 26bf\n\t0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA1, 0xE0, 0xBE,\n\t0xB7, 0x46, 0xE0, 0xBE, 0xA6, 0xE0, 0xBE, 0xB7,\n\t0x46, 0xE0, 0xBE, 0xAB, 0xE0, 0xBE, 0xB7, 0x46,\n\t0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0x46, 0xE2,\n\t0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x46, 0xE2, 0x88,\n\t0xAB, 0xE2, 0x88, 0xAB, 0x46, 0xE2, 0x88, 0xAE,\n\t0xE2, 0x88, 0xAE, 0x46, 0xE3, 0x81, 0xBB, 0xE3,\n\t0x81, 0x8B, 0x46, 0xE3, 0x82, 0x88, 0xE3, 0x82,\n\t// Bytes 26c0 - 26ff\n\t0x8A, 0x46, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD,\n\t0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0xB3, 0x46,\n\t0xE3, 0x82, 0xB3, 0xE3, 0x83, 0x88, 0x46, 0xE3,\n\t0x83, 0x88, 0xE3, 0x83, 0xB3, 0x46, 0xE3, 0x83,\n\t0x8A, 0xE3, 0x83, 0x8E, 0x46, 0xE3, 0x83, 0x9B,\n\t0xE3, 0x83, 0xB3, 0x46, 0xE3, 0x83, 0x9F, 0xE3,\n\t0x83, 0xAA, 0x46, 0xE3, 0x83, 0xAA, 0xE3, 0x83,\n\t0xA9, 0x46, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xA0,\n\t// Bytes 2700 - 273f\n\t0x46, 0xE4, 0xBB, 0xA4, 0xE5, 0x92, 0x8C, 0x46,\n\t0xE5, 0xA4, 0xA7, 0xE6, 0xAD, 0xA3, 0x46, 0xE5,\n\t0xB9, 0xB3, 0xE6, 0x88, 0x90, 0x46, 0xE6, 0x98,\n\t0x8E, 0xE6, 0xB2, 0xBB, 0x46, 0xE6, 0x98, 0xAD,\n\t0xE5, 0x92, 0x8C, 0x47, 0x72, 0x61, 0x64, 0xE2,\n\t0x88, 0x95, 0x73, 0x47, 0xE3, 0x80, 0x94, 0x53,\n\t0xE3, 0x80, 0x95, 0x48, 0x28, 0xE1, 0x84, 0x80,\n\t0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,\n\t// Bytes 2740 - 277f\n\t0x82, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1,\n\t0x84, 0x83, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28,\n\t0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1, 0x29, 0x48,\n\t0x28, 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1, 0x29,\n\t0x48, 0x28, 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1,\n\t0x29, 0x48, 0x28, 0xE1, 0x84, 0x89, 0xE1, 0x85,\n\t0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8B, 0xE1,\n\t0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8C,\n\t// Bytes 2780 - 27bf\n\t0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,\n\t0x8C, 0xE1, 0x85, 0xAE, 0x29, 0x48, 0x28, 0xE1,\n\t0x84, 0x8E, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28,\n\t0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1, 0x29, 0x48,\n\t0x28, 0xE1, 0x84, 0x90, 0xE1, 0x85, 0xA1, 0x29,\n\t0x48, 0x28, 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1,\n\t0x29, 0x48, 0x28, 0xE1, 0x84, 0x92, 0xE1, 0x85,\n\t0xA1, 0x29, 0x48, 0x72, 0x61, 0x64, 0xE2, 0x88,\n\t// Bytes 27c0 - 27ff\n\t0x95, 0x73, 0x32, 0x48, 0xD8, 0xA7, 0xD9, 0x83,\n\t0xD8, 0xA8, 0xD8, 0xB1, 0x48, 0xD8, 0xA7, 0xD9,\n\t0x84, 0xD9, 0x84, 0xD9, 0x87, 0x48, 0xD8, 0xB1,\n\t0xD8, 0xB3, 0xD9, 0x88, 0xD9, 0x84, 0x48, 0xD8,\n\t0xB1, 0xDB, 0x8C, 0xD8, 0xA7, 0xD9, 0x84, 0x48,\n\t0xD8, 0xB5, 0xD9, 0x84, 0xD8, 0xB9, 0xD9, 0x85,\n\t0x48, 0xD8, 0xB9, 0xD9, 0x84, 0xD9, 0x8A, 0xD9,\n\t0x87, 0x48, 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85,\n\t// Bytes 2800 - 283f\n\t0xD8, 0xAF, 0x48, 0xD9, 0x88, 0xD8, 0xB3, 0xD9,\n\t0x84, 0xD9, 0x85, 0x49, 0xE2, 0x80, 0xB2, 0xE2,\n\t0x80, 0xB2, 0xE2, 0x80, 0xB2, 0x49, 0xE2, 0x80,\n\t0xB5, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x49,\n\t0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88,\n\t0xAB, 0x49, 0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE,\n\t0xE2, 0x88, 0xAE, 0x49, 0xE3, 0x80, 0x94, 0xE4,\n\t0xB8, 0x89, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80,\n\t// Bytes 2840 - 287f\n\t0x94, 0xE4, 0xBA, 0x8C, 0xE3, 0x80, 0x95, 0x49,\n\t0xE3, 0x80, 0x94, 0xE5, 0x8B, 0x9D, 0xE3, 0x80,\n\t0x95, 0x49, 0xE3, 0x80, 0x94, 0xE5, 0xAE, 0x89,\n\t0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6,\n\t0x89, 0x93, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80,\n\t0x94, 0xE6, 0x95, 0x97, 0xE3, 0x80, 0x95, 0x49,\n\t0xE3, 0x80, 0x94, 0xE6, 0x9C, 0xAC, 0xE3, 0x80,\n\t0x95, 0x49, 0xE3, 0x80, 0x94, 0xE7, 0x82, 0xB9,\n\t// Bytes 2880 - 28bf\n\t0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE7,\n\t0x9B, 0x97, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x82,\n\t0xA2, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x49,\n\t0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xB3, 0xE3, 0x83,\n\t0x81, 0x49, 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0xA9,\n\t0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x82, 0xAA, 0xE3,\n\t0x83, 0xB3, 0xE3, 0x82, 0xB9, 0x49, 0xE3, 0x82,\n\t0xAA, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xA0, 0x49,\n\t// Bytes 28c0 - 28ff\n\t0xE3, 0x82, 0xAB, 0xE3, 0x82, 0xA4, 0xE3, 0x83,\n\t0xAA, 0x49, 0xE3, 0x82, 0xB1, 0xE3, 0x83, 0xBC,\n\t0xE3, 0x82, 0xB9, 0x49, 0xE3, 0x82, 0xB3, 0xE3,\n\t0x83, 0xAB, 0xE3, 0x83, 0x8A, 0x49, 0xE3, 0x82,\n\t0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0x49,\n\t0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83,\n\t0x88, 0x49, 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99,\n\t0xE3, 0x82, 0xB7, 0x49, 0xE3, 0x83, 0x88, 0xE3,\n\t// Bytes 2900 - 293f\n\t0x82, 0x99, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83,\n\t0x8E, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x49,\n\t0xE3, 0x83, 0x8F, 0xE3, 0x82, 0xA4, 0xE3, 0x83,\n\t0x84, 0x49, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99,\n\t0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x92, 0xE3,\n\t0x82, 0x9A, 0xE3, 0x82, 0xB3, 0x49, 0xE3, 0x83,\n\t0x95, 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0xB3, 0x49,\n\t0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x82,\n\t// Bytes 2940 - 297f\n\t0xBD, 0x49, 0xE3, 0x83, 0x98, 0xE3, 0x83, 0xAB,\n\t0xE3, 0x83, 0x84, 0x49, 0xE3, 0x83, 0x9B, 0xE3,\n\t0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83,\n\t0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xB3, 0x49,\n\t0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x83,\n\t0xAB, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x83, 0x83,\n\t0xE3, 0x83, 0x8F, 0x49, 0xE3, 0x83, 0x9E, 0xE3,\n\t0x83, 0xAB, 0xE3, 0x82, 0xAF, 0x49, 0xE3, 0x83,\n\t// Bytes 2980 - 29bf\n\t0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x49,\n\t0xE3, 0x83, 0xA6, 0xE3, 0x82, 0xA2, 0xE3, 0x83,\n\t0xB3, 0x49, 0xE3, 0x83, 0xAF, 0xE3, 0x83, 0x83,\n\t0xE3, 0x83, 0x88, 0x4C, 0xE2, 0x80, 0xB2, 0xE2,\n\t0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,\n\t0x4C, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2,\n\t0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x4C, 0xE3, 0x82,\n\t0xA2, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x95, 0xE3,\n\t// Bytes 29c0 - 29ff\n\t0x82, 0xA1, 0x4C, 0xE3, 0x82, 0xA8, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xBC, 0x4C,\n\t0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0xAD, 0xE3, 0x83, 0xB3, 0x4C, 0xE3, 0x82, 0xAB,\n\t0xE3, 0x82, 0x99, 0xE3, 0x83, 0xB3, 0xE3, 0x83,\n\t0x9E, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xA9,\n\t0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x4C, 0xE3,\n\t0x82, 0xAB, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAA,\n\t// Bytes 2a00 - 2a3f\n\t0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3,\n\t0x82, 0x99, 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xBC,\n\t0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xA5, 0xE3,\n\t0x83, 0xAA, 0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82,\n\t0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xA9, 0xE3,\n\t0x83, 0xA0, 0x4C, 0xE3, 0x82, 0xAF, 0xE3, 0x83,\n\t0xAD, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x8D, 0x4C,\n\t0xE3, 0x82, 0xB5, 0xE3, 0x82, 0xA4, 0xE3, 0x82,\n\t// Bytes 2a40 - 2a7f\n\t0xAF, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x82, 0xBF,\n\t0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82,\n\t0xB9, 0x4C, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A,\n\t0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x84, 0x4C, 0xE3,\n\t0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xAF,\n\t0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83, 0x95, 0xE3,\n\t0x82, 0xA3, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88,\n\t0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99, 0xE3,\n\t// Bytes 2a80 - 2abf\n\t0x83, 0xBC, 0xE3, 0x82, 0xBF, 0x4C, 0xE3, 0x83,\n\t0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0x8B, 0xE3,\n\t0x83, 0x92, 0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82,\n\t0x9A, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB9, 0x4C,\n\t0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0xAB, 0xE3, 0x83, 0x88, 0x4C, 0xE3, 0x83, 0x9E,\n\t0xE3, 0x82, 0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83,\n\t0xAD, 0x4C, 0xE3, 0x83, 0x9F, 0xE3, 0x82, 0xAF,\n\t// Bytes 2ac0 - 2aff\n\t0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, 0x4C, 0xE3,\n\t0x83, 0xA1, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88,\n\t0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83, 0xAA, 0xE3,\n\t0x83, 0x83, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB,\n\t0x4C, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x92, 0xE3,\n\t0x82, 0x9A, 0xE3, 0x83, 0xBC, 0x4C, 0xE6, 0xA0,\n\t0xAA, 0xE5, 0xBC, 0x8F, 0xE4, 0xBC, 0x9A, 0xE7,\n\t0xA4, 0xBE, 0x4E, 0x28, 0xE1, 0x84, 0x8B, 0xE1,\n\t// Bytes 2b00 - 2b3f\n\t0x85, 0xA9, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xAE,\n\t0x29, 0x4F, 0xD8, 0xAC, 0xD9, 0x84, 0x20, 0xD8,\n\t0xAC, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x84, 0xD9,\n\t0x87, 0x4F, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0x8F,\n\t0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0x88, 0x4F, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xB3,\n\t0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x82,\n\t0xA2, 0x4F, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD,\n\t// Bytes 2b40 - 2b7f\n\t0xE3, 0x83, 0xAF, 0xE3, 0x83, 0x83, 0xE3, 0x83,\n\t0x88, 0x4F, 0xE3, 0x82, 0xB5, 0xE3, 0x83, 0xB3,\n\t0xE3, 0x83, 0x81, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0xA0, 0x4F, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99,\n\t0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAC, 0xE3, 0x83,\n\t0xAB, 0x4F, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0xAF,\n\t0xE3, 0x82, 0xBF, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0xAB, 0x4F, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A,\n\t// Bytes 2b80 - 2bbf\n\t0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xB3, 0xE3, 0x83,\n\t0x88, 0x4F, 0xE3, 0x83, 0x9E, 0xE3, 0x83, 0xB3,\n\t0xE3, 0x82, 0xB7, 0xE3, 0x83, 0xA7, 0xE3, 0x83,\n\t0xB3, 0x4F, 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB,\n\t0xE3, 0x82, 0x99, 0xE3, 0x83, 0x88, 0xE3, 0x83,\n\t0xB3, 0x4F, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0xBC,\n\t0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0xAB, 0x51, 0x28, 0xE1, 0x84, 0x8B, 0xE1, 0x85,\n\t// Bytes 2bc0 - 2bff\n\t0xA9, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA5, 0xE1,\n\t0x86, 0xAB, 0x29, 0x52, 0xE3, 0x82, 0xAD, 0xE3,\n\t0x82, 0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xBF,\n\t0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0x52, 0xE3,\n\t0x82, 0xAD, 0xE3, 0x83, 0xAD, 0xE3, 0x82, 0xAF,\n\t0xE3, 0x82, 0x99, 0xE3, 0x83, 0xA9, 0xE3, 0x83,\n\t0xA0, 0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD,\n\t0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t// Bytes 2c00 - 2c3f\n\t0x88, 0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x82, 0xAF,\n\t0xE3, 0x82, 0x99, 0xE3, 0x83, 0xA9, 0xE3, 0x83,\n\t0xA0, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x52,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0xE3, 0x82,\n\t0xBB, 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xA4, 0xE3,\n\t0x83, 0xAD, 0x52, 0xE3, 0x83, 0x8F, 0xE3, 0x82,\n\t0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xBB, 0xE3,\n\t0x83, 0xB3, 0xE3, 0x83, 0x88, 0x52, 0xE3, 0x83,\n\t// Bytes 2c40 - 2c7f\n\t0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA2, 0xE3,\n\t0x82, 0xB9, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB,\n\t0x52, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0xE3,\n\t0x83, 0x83, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0xA7,\n\t0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83, 0x9F, 0xE3,\n\t0x83, 0xAA, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99,\n\t0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x52, 0xE3,\n\t0x83, 0xAC, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88,\n\t// Bytes 2c80 - 2cbf\n\t0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0xB3, 0x61, 0xD8, 0xB5, 0xD9, 0x84, 0xD9, 0x89,\n\t0x20, 0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9,\n\t0x87, 0x20, 0xD8, 0xB9, 0xD9, 0x84, 0xD9, 0x8A,\n\t0xD9, 0x87, 0x20, 0xD9, 0x88, 0xD8, 0xB3, 0xD9,\n\t0x84, 0xD9, 0x85, 0x06, 0xE0, 0xA7, 0x87, 0xE0,\n\t0xA6, 0xBE, 0x01, 0x06, 0xE0, 0xA7, 0x87, 0xE0,\n\t0xA7, 0x97, 0x01, 0x06, 0xE0, 0xAD, 0x87, 0xE0,\n\t// Bytes 2cc0 - 2cff\n\t0xAC, 0xBE, 0x01, 0x06, 0xE0, 0xAD, 0x87, 0xE0,\n\t0xAD, 0x96, 0x01, 0x06, 0xE0, 0xAD, 0x87, 0xE0,\n\t0xAD, 0x97, 0x01, 0x06, 0xE0, 0xAE, 0x92, 0xE0,\n\t0xAF, 0x97, 0x01, 0x06, 0xE0, 0xAF, 0x86, 0xE0,\n\t0xAE, 0xBE, 0x01, 0x06, 0xE0, 0xAF, 0x86, 0xE0,\n\t0xAF, 0x97, 0x01, 0x06, 0xE0, 0xAF, 0x87, 0xE0,\n\t0xAE, 0xBE, 0x01, 0x06, 0xE0, 0xB2, 0xBF, 0xE0,\n\t0xB3, 0x95, 0x01, 0x06, 0xE0, 0xB3, 0x86, 0xE0,\n\t// Bytes 2d00 - 2d3f\n\t0xB3, 0x95, 0x01, 0x06, 0xE0, 0xB3, 0x86, 0xE0,\n\t0xB3, 0x96, 0x01, 0x06, 0xE0, 0xB5, 0x86, 0xE0,\n\t0xB4, 0xBE, 0x01, 0x06, 0xE0, 0xB5, 0x86, 0xE0,\n\t0xB5, 0x97, 0x01, 0x06, 0xE0, 0xB5, 0x87, 0xE0,\n\t0xB4, 0xBE, 0x01, 0x06, 0xE0, 0xB7, 0x99, 0xE0,\n\t0xB7, 0x9F, 0x01, 0x06, 0xE1, 0x80, 0xA5, 0xE1,\n\t0x80, 0xAE, 0x01, 0x06, 0xE1, 0xAC, 0x85, 0xE1,\n\t0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0x87, 0xE1,\n\t// Bytes 2d40 - 2d7f\n\t0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0x89, 0xE1,\n\t0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0x8B, 0xE1,\n\t0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0x8D, 0xE1,\n\t0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0x91, 0xE1,\n\t0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0xBA, 0xE1,\n\t0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0xBC, 0xE1,\n\t0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0xBE, 0xE1,\n\t0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0xBF, 0xE1,\n\t// Bytes 2d80 - 2dbf\n\t0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAD, 0x82, 0xE1,\n\t0xAC, 0xB5, 0x01, 0x08, 0xF0, 0x91, 0x84, 0xB1,\n\t0xF0, 0x91, 0x84, 0xA7, 0x01, 0x08, 0xF0, 0x91,\n\t0x84, 0xB2, 0xF0, 0x91, 0x84, 0xA7, 0x01, 0x08,\n\t0xF0, 0x91, 0x8D, 0x87, 0xF0, 0x91, 0x8C, 0xBE,\n\t0x01, 0x08, 0xF0, 0x91, 0x8D, 0x87, 0xF0, 0x91,\n\t0x8D, 0x97, 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9,\n\t0xF0, 0x91, 0x92, 0xB0, 0x01, 0x08, 0xF0, 0x91,\n\t// Bytes 2dc0 - 2dff\n\t0x92, 0xB9, 0xF0, 0x91, 0x92, 0xBA, 0x01, 0x08,\n\t0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xBD,\n\t0x01, 0x08, 0xF0, 0x91, 0x96, 0xB8, 0xF0, 0x91,\n\t0x96, 0xAF, 0x01, 0x08, 0xF0, 0x91, 0x96, 0xB9,\n\t0xF0, 0x91, 0x96, 0xAF, 0x01, 0x08, 0xF0, 0x91,\n\t0xA4, 0xB5, 0xF0, 0x91, 0xA4, 0xB0, 0x01, 0x09,\n\t0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0xE0, 0xB3,\n\t0x95, 0x02, 0x09, 0xE0, 0xB7, 0x99, 0xE0, 0xB7,\n\t// Bytes 2e00 - 2e3f\n\t0x8F, 0xE0, 0xB7, 0x8A, 0x16, 0x44, 0x44, 0x5A,\n\t0xCC, 0x8C, 0xCD, 0x44, 0x44, 0x7A, 0xCC, 0x8C,\n\t0xCD, 0x44, 0x64, 0x7A, 0xCC, 0x8C, 0xCD, 0x46,\n\t0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x93, 0xCD, 0x46,\n\t0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94, 0xCD, 0x46,\n\t0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x95, 0xB9, 0x46,\n\t0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x01, 0x46,\n\t0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x01, 0x46,\n\t// Bytes 2e40 - 2e7f\n\t0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, 0x01, 0x46,\n\t0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1, 0x01, 0x46,\n\t0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1, 0x01, 0x46,\n\t0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, 0x01, 0x46,\n\t0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1, 0x01, 0x46,\n\t0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x01, 0x46,\n\t0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xAE, 0x01, 0x46,\n\t0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x01, 0x46,\n\t// Bytes 2e80 - 2ebf\n\t0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0x01, 0x46,\n\t0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1, 0x01, 0x46,\n\t0xE1, 0x84, 0x90, 0xE1, 0x85, 0xA1, 0x01, 0x46,\n\t0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, 0x01, 0x46,\n\t0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0x01, 0x49,\n\t0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB, 0xE3, 0x82,\n\t0x99, 0x11, 0x4C, 0xE1, 0x84, 0x8C, 0xE1, 0x85,\n\t0xAE, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xB4, 0x01,\n\t// Bytes 2ec0 - 2eff\n\t0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3,\n\t0x82, 0xAB, 0xE3, 0x82, 0x99, 0x11, 0x4C, 0xE3,\n\t0x82, 0xB3, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x9B,\n\t0xE3, 0x82, 0x9A, 0x11, 0x4C, 0xE3, 0x83, 0xA4,\n\t0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x82,\n\t0x99, 0x11, 0x4F, 0xE1, 0x84, 0x8E, 0xE1, 0x85,\n\t0xA1, 0xE1, 0x86, 0xB7, 0xE1, 0x84, 0x80, 0xE1,\n\t0x85, 0xA9, 0x01, 0x4F, 0xE3, 0x82, 0xA4, 0xE3,\n\t// Bytes 2f00 - 2f3f\n\t0x83, 0x8B, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xAF,\n\t0xE3, 0x82, 0x99, 0x11, 0x4F, 0xE3, 0x82, 0xB7,\n\t0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, 0x82,\n\t0xAF, 0xE3, 0x82, 0x99, 0x11, 0x4F, 0xE3, 0x83,\n\t0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x82, 0xB7, 0xE3, 0x82, 0x99, 0x11, 0x4F, 0xE3,\n\t0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3,\n\t0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x11, 0x52,\n\t// Bytes 2f40 - 2f7f\n\t0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xB9, 0xE3, 0x82,\n\t0xAF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3,\n\t0x82, 0x99, 0x11, 0x52, 0xE3, 0x83, 0x95, 0xE3,\n\t0x82, 0xA1, 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0x83,\n\t0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x11, 0x86,\n\t0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0x01, 0x86,\n\t0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8F, 0x01, 0x03,\n\t0x3C, 0xCC, 0xB8, 0x05, 0x03, 0x3D, 0xCC, 0xB8,\n\t// Bytes 2f80 - 2fbf\n\t0x05, 0x03, 0x3E, 0xCC, 0xB8, 0x05, 0x03, 0x41,\n\t0xCC, 0x80, 0xCD, 0x03, 0x41, 0xCC, 0x81, 0xCD,\n\t0x03, 0x41, 0xCC, 0x83, 0xCD, 0x03, 0x41, 0xCC,\n\t0x84, 0xCD, 0x03, 0x41, 0xCC, 0x89, 0xCD, 0x03,\n\t0x41, 0xCC, 0x8C, 0xCD, 0x03, 0x41, 0xCC, 0x8F,\n\t0xCD, 0x03, 0x41, 0xCC, 0x91, 0xCD, 0x03, 0x41,\n\t0xCC, 0xA5, 0xB9, 0x03, 0x41, 0xCC, 0xA8, 0xA9,\n\t0x03, 0x42, 0xCC, 0x87, 0xCD, 0x03, 0x42, 0xCC,\n\t// Bytes 2fc0 - 2fff\n\t0xA3, 0xB9, 0x03, 0x42, 0xCC, 0xB1, 0xB9, 0x03,\n\t0x43, 0xCC, 0x81, 0xCD, 0x03, 0x43, 0xCC, 0x82,\n\t0xCD, 0x03, 0x43, 0xCC, 0x87, 0xCD, 0x03, 0x43,\n\t0xCC, 0x8C, 0xCD, 0x03, 0x44, 0xCC, 0x87, 0xCD,\n\t0x03, 0x44, 0xCC, 0x8C, 0xCD, 0x03, 0x44, 0xCC,\n\t0xA3, 0xB9, 0x03, 0x44, 0xCC, 0xA7, 0xA9, 0x03,\n\t0x44, 0xCC, 0xAD, 0xB9, 0x03, 0x44, 0xCC, 0xB1,\n\t0xB9, 0x03, 0x45, 0xCC, 0x80, 0xCD, 0x03, 0x45,\n\t// Bytes 3000 - 303f\n\t0xCC, 0x81, 0xCD, 0x03, 0x45, 0xCC, 0x83, 0xCD,\n\t0x03, 0x45, 0xCC, 0x86, 0xCD, 0x03, 0x45, 0xCC,\n\t0x87, 0xCD, 0x03, 0x45, 0xCC, 0x88, 0xCD, 0x03,\n\t0x45, 0xCC, 0x89, 0xCD, 0x03, 0x45, 0xCC, 0x8C,\n\t0xCD, 0x03, 0x45, 0xCC, 0x8F, 0xCD, 0x03, 0x45,\n\t0xCC, 0x91, 0xCD, 0x03, 0x45, 0xCC, 0xA8, 0xA9,\n\t0x03, 0x45, 0xCC, 0xAD, 0xB9, 0x03, 0x45, 0xCC,\n\t0xB0, 0xB9, 0x03, 0x46, 0xCC, 0x87, 0xCD, 0x03,\n\t// Bytes 3040 - 307f\n\t0x47, 0xCC, 0x81, 0xCD, 0x03, 0x47, 0xCC, 0x82,\n\t0xCD, 0x03, 0x47, 0xCC, 0x84, 0xCD, 0x03, 0x47,\n\t0xCC, 0x86, 0xCD, 0x03, 0x47, 0xCC, 0x87, 0xCD,\n\t0x03, 0x47, 0xCC, 0x8C, 0xCD, 0x03, 0x47, 0xCC,\n\t0xA7, 0xA9, 0x03, 0x48, 0xCC, 0x82, 0xCD, 0x03,\n\t0x48, 0xCC, 0x87, 0xCD, 0x03, 0x48, 0xCC, 0x88,\n\t0xCD, 0x03, 0x48, 0xCC, 0x8C, 0xCD, 0x03, 0x48,\n\t0xCC, 0xA3, 0xB9, 0x03, 0x48, 0xCC, 0xA7, 0xA9,\n\t// Bytes 3080 - 30bf\n\t0x03, 0x48, 0xCC, 0xAE, 0xB9, 0x03, 0x49, 0xCC,\n\t0x80, 0xCD, 0x03, 0x49, 0xCC, 0x81, 0xCD, 0x03,\n\t0x49, 0xCC, 0x82, 0xCD, 0x03, 0x49, 0xCC, 0x83,\n\t0xCD, 0x03, 0x49, 0xCC, 0x84, 0xCD, 0x03, 0x49,\n\t0xCC, 0x86, 0xCD, 0x03, 0x49, 0xCC, 0x87, 0xCD,\n\t0x03, 0x49, 0xCC, 0x89, 0xCD, 0x03, 0x49, 0xCC,\n\t0x8C, 0xCD, 0x03, 0x49, 0xCC, 0x8F, 0xCD, 0x03,\n\t0x49, 0xCC, 0x91, 0xCD, 0x03, 0x49, 0xCC, 0xA3,\n\t// Bytes 30c0 - 30ff\n\t0xB9, 0x03, 0x49, 0xCC, 0xA8, 0xA9, 0x03, 0x49,\n\t0xCC, 0xB0, 0xB9, 0x03, 0x4A, 0xCC, 0x82, 0xCD,\n\t0x03, 0x4B, 0xCC, 0x81, 0xCD, 0x03, 0x4B, 0xCC,\n\t0x8C, 0xCD, 0x03, 0x4B, 0xCC, 0xA3, 0xB9, 0x03,\n\t0x4B, 0xCC, 0xA7, 0xA9, 0x03, 0x4B, 0xCC, 0xB1,\n\t0xB9, 0x03, 0x4C, 0xCC, 0x81, 0xCD, 0x03, 0x4C,\n\t0xCC, 0x8C, 0xCD, 0x03, 0x4C, 0xCC, 0xA7, 0xA9,\n\t0x03, 0x4C, 0xCC, 0xAD, 0xB9, 0x03, 0x4C, 0xCC,\n\t// Bytes 3100 - 313f\n\t0xB1, 0xB9, 0x03, 0x4D, 0xCC, 0x81, 0xCD, 0x03,\n\t0x4D, 0xCC, 0x87, 0xCD, 0x03, 0x4D, 0xCC, 0xA3,\n\t0xB9, 0x03, 0x4E, 0xCC, 0x80, 0xCD, 0x03, 0x4E,\n\t0xCC, 0x81, 0xCD, 0x03, 0x4E, 0xCC, 0x83, 0xCD,\n\t0x03, 0x4E, 0xCC, 0x87, 0xCD, 0x03, 0x4E, 0xCC,\n\t0x8C, 0xCD, 0x03, 0x4E, 0xCC, 0xA3, 0xB9, 0x03,\n\t0x4E, 0xCC, 0xA7, 0xA9, 0x03, 0x4E, 0xCC, 0xAD,\n\t0xB9, 0x03, 0x4E, 0xCC, 0xB1, 0xB9, 0x03, 0x4F,\n\t// Bytes 3140 - 317f\n\t0xCC, 0x80, 0xCD, 0x03, 0x4F, 0xCC, 0x81, 0xCD,\n\t0x03, 0x4F, 0xCC, 0x86, 0xCD, 0x03, 0x4F, 0xCC,\n\t0x89, 0xCD, 0x03, 0x4F, 0xCC, 0x8B, 0xCD, 0x03,\n\t0x4F, 0xCC, 0x8C, 0xCD, 0x03, 0x4F, 0xCC, 0x8F,\n\t0xCD, 0x03, 0x4F, 0xCC, 0x91, 0xCD, 0x03, 0x50,\n\t0xCC, 0x81, 0xCD, 0x03, 0x50, 0xCC, 0x87, 0xCD,\n\t0x03, 0x52, 0xCC, 0x81, 0xCD, 0x03, 0x52, 0xCC,\n\t0x87, 0xCD, 0x03, 0x52, 0xCC, 0x8C, 0xCD, 0x03,\n\t// Bytes 3180 - 31bf\n\t0x52, 0xCC, 0x8F, 0xCD, 0x03, 0x52, 0xCC, 0x91,\n\t0xCD, 0x03, 0x52, 0xCC, 0xA7, 0xA9, 0x03, 0x52,\n\t0xCC, 0xB1, 0xB9, 0x03, 0x53, 0xCC, 0x82, 0xCD,\n\t0x03, 0x53, 0xCC, 0x87, 0xCD, 0x03, 0x53, 0xCC,\n\t0xA6, 0xB9, 0x03, 0x53, 0xCC, 0xA7, 0xA9, 0x03,\n\t0x54, 0xCC, 0x87, 0xCD, 0x03, 0x54, 0xCC, 0x8C,\n\t0xCD, 0x03, 0x54, 0xCC, 0xA3, 0xB9, 0x03, 0x54,\n\t0xCC, 0xA6, 0xB9, 0x03, 0x54, 0xCC, 0xA7, 0xA9,\n\t// Bytes 31c0 - 31ff\n\t0x03, 0x54, 0xCC, 0xAD, 0xB9, 0x03, 0x54, 0xCC,\n\t0xB1, 0xB9, 0x03, 0x55, 0xCC, 0x80, 0xCD, 0x03,\n\t0x55, 0xCC, 0x81, 0xCD, 0x03, 0x55, 0xCC, 0x82,\n\t0xCD, 0x03, 0x55, 0xCC, 0x86, 0xCD, 0x03, 0x55,\n\t0xCC, 0x89, 0xCD, 0x03, 0x55, 0xCC, 0x8A, 0xCD,\n\t0x03, 0x55, 0xCC, 0x8B, 0xCD, 0x03, 0x55, 0xCC,\n\t0x8C, 0xCD, 0x03, 0x55, 0xCC, 0x8F, 0xCD, 0x03,\n\t0x55, 0xCC, 0x91, 0xCD, 0x03, 0x55, 0xCC, 0xA3,\n\t// Bytes 3200 - 323f\n\t0xB9, 0x03, 0x55, 0xCC, 0xA4, 0xB9, 0x03, 0x55,\n\t0xCC, 0xA8, 0xA9, 0x03, 0x55, 0xCC, 0xAD, 0xB9,\n\t0x03, 0x55, 0xCC, 0xB0, 0xB9, 0x03, 0x56, 0xCC,\n\t0x83, 0xCD, 0x03, 0x56, 0xCC, 0xA3, 0xB9, 0x03,\n\t0x57, 0xCC, 0x80, 0xCD, 0x03, 0x57, 0xCC, 0x81,\n\t0xCD, 0x03, 0x57, 0xCC, 0x82, 0xCD, 0x03, 0x57,\n\t0xCC, 0x87, 0xCD, 0x03, 0x57, 0xCC, 0x88, 0xCD,\n\t0x03, 0x57, 0xCC, 0xA3, 0xB9, 0x03, 0x58, 0xCC,\n\t// Bytes 3240 - 327f\n\t0x87, 0xCD, 0x03, 0x58, 0xCC, 0x88, 0xCD, 0x03,\n\t0x59, 0xCC, 0x80, 0xCD, 0x03, 0x59, 0xCC, 0x81,\n\t0xCD, 0x03, 0x59, 0xCC, 0x82, 0xCD, 0x03, 0x59,\n\t0xCC, 0x83, 0xCD, 0x03, 0x59, 0xCC, 0x84, 0xCD,\n\t0x03, 0x59, 0xCC, 0x87, 0xCD, 0x03, 0x59, 0xCC,\n\t0x88, 0xCD, 0x03, 0x59, 0xCC, 0x89, 0xCD, 0x03,\n\t0x59, 0xCC, 0xA3, 0xB9, 0x03, 0x5A, 0xCC, 0x81,\n\t0xCD, 0x03, 0x5A, 0xCC, 0x82, 0xCD, 0x03, 0x5A,\n\t// Bytes 3280 - 32bf\n\t0xCC, 0x87, 0xCD, 0x03, 0x5A, 0xCC, 0x8C, 0xCD,\n\t0x03, 0x5A, 0xCC, 0xA3, 0xB9, 0x03, 0x5A, 0xCC,\n\t0xB1, 0xB9, 0x03, 0x61, 0xCC, 0x80, 0xCD, 0x03,\n\t0x61, 0xCC, 0x81, 0xCD, 0x03, 0x61, 0xCC, 0x83,\n\t0xCD, 0x03, 0x61, 0xCC, 0x84, 0xCD, 0x03, 0x61,\n\t0xCC, 0x89, 0xCD, 0x03, 0x61, 0xCC, 0x8C, 0xCD,\n\t0x03, 0x61, 0xCC, 0x8F, 0xCD, 0x03, 0x61, 0xCC,\n\t0x91, 0xCD, 0x03, 0x61, 0xCC, 0xA5, 0xB9, 0x03,\n\t// Bytes 32c0 - 32ff\n\t0x61, 0xCC, 0xA8, 0xA9, 0x03, 0x62, 0xCC, 0x87,\n\t0xCD, 0x03, 0x62, 0xCC, 0xA3, 0xB9, 0x03, 0x62,\n\t0xCC, 0xB1, 0xB9, 0x03, 0x63, 0xCC, 0x81, 0xCD,\n\t0x03, 0x63, 0xCC, 0x82, 0xCD, 0x03, 0x63, 0xCC,\n\t0x87, 0xCD, 0x03, 0x63, 0xCC, 0x8C, 0xCD, 0x03,\n\t0x64, 0xCC, 0x87, 0xCD, 0x03, 0x64, 0xCC, 0x8C,\n\t0xCD, 0x03, 0x64, 0xCC, 0xA3, 0xB9, 0x03, 0x64,\n\t0xCC, 0xA7, 0xA9, 0x03, 0x64, 0xCC, 0xAD, 0xB9,\n\t// Bytes 3300 - 333f\n\t0x03, 0x64, 0xCC, 0xB1, 0xB9, 0x03, 0x65, 0xCC,\n\t0x80, 0xCD, 0x03, 0x65, 0xCC, 0x81, 0xCD, 0x03,\n\t0x65, 0xCC, 0x83, 0xCD, 0x03, 0x65, 0xCC, 0x86,\n\t0xCD, 0x03, 0x65, 0xCC, 0x87, 0xCD, 0x03, 0x65,\n\t0xCC, 0x88, 0xCD, 0x03, 0x65, 0xCC, 0x89, 0xCD,\n\t0x03, 0x65, 0xCC, 0x8C, 0xCD, 0x03, 0x65, 0xCC,\n\t0x8F, 0xCD, 0x03, 0x65, 0xCC, 0x91, 0xCD, 0x03,\n\t0x65, 0xCC, 0xA8, 0xA9, 0x03, 0x65, 0xCC, 0xAD,\n\t// Bytes 3340 - 337f\n\t0xB9, 0x03, 0x65, 0xCC, 0xB0, 0xB9, 0x03, 0x66,\n\t0xCC, 0x87, 0xCD, 0x03, 0x67, 0xCC, 0x81, 0xCD,\n\t0x03, 0x67, 0xCC, 0x82, 0xCD, 0x03, 0x67, 0xCC,\n\t0x84, 0xCD, 0x03, 0x67, 0xCC, 0x86, 0xCD, 0x03,\n\t0x67, 0xCC, 0x87, 0xCD, 0x03, 0x67, 0xCC, 0x8C,\n\t0xCD, 0x03, 0x67, 0xCC, 0xA7, 0xA9, 0x03, 0x68,\n\t0xCC, 0x82, 0xCD, 0x03, 0x68, 0xCC, 0x87, 0xCD,\n\t0x03, 0x68, 0xCC, 0x88, 0xCD, 0x03, 0x68, 0xCC,\n\t// Bytes 3380 - 33bf\n\t0x8C, 0xCD, 0x03, 0x68, 0xCC, 0xA3, 0xB9, 0x03,\n\t0x68, 0xCC, 0xA7, 0xA9, 0x03, 0x68, 0xCC, 0xAE,\n\t0xB9, 0x03, 0x68, 0xCC, 0xB1, 0xB9, 0x03, 0x69,\n\t0xCC, 0x80, 0xCD, 0x03, 0x69, 0xCC, 0x81, 0xCD,\n\t0x03, 0x69, 0xCC, 0x82, 0xCD, 0x03, 0x69, 0xCC,\n\t0x83, 0xCD, 0x03, 0x69, 0xCC, 0x84, 0xCD, 0x03,\n\t0x69, 0xCC, 0x86, 0xCD, 0x03, 0x69, 0xCC, 0x89,\n\t0xCD, 0x03, 0x69, 0xCC, 0x8C, 0xCD, 0x03, 0x69,\n\t// Bytes 33c0 - 33ff\n\t0xCC, 0x8F, 0xCD, 0x03, 0x69, 0xCC, 0x91, 0xCD,\n\t0x03, 0x69, 0xCC, 0xA3, 0xB9, 0x03, 0x69, 0xCC,\n\t0xA8, 0xA9, 0x03, 0x69, 0xCC, 0xB0, 0xB9, 0x03,\n\t0x6A, 0xCC, 0x82, 0xCD, 0x03, 0x6A, 0xCC, 0x8C,\n\t0xCD, 0x03, 0x6B, 0xCC, 0x81, 0xCD, 0x03, 0x6B,\n\t0xCC, 0x8C, 0xCD, 0x03, 0x6B, 0xCC, 0xA3, 0xB9,\n\t0x03, 0x6B, 0xCC, 0xA7, 0xA9, 0x03, 0x6B, 0xCC,\n\t0xB1, 0xB9, 0x03, 0x6C, 0xCC, 0x81, 0xCD, 0x03,\n\t// Bytes 3400 - 343f\n\t0x6C, 0xCC, 0x8C, 0xCD, 0x03, 0x6C, 0xCC, 0xA7,\n\t0xA9, 0x03, 0x6C, 0xCC, 0xAD, 0xB9, 0x03, 0x6C,\n\t0xCC, 0xB1, 0xB9, 0x03, 0x6D, 0xCC, 0x81, 0xCD,\n\t0x03, 0x6D, 0xCC, 0x87, 0xCD, 0x03, 0x6D, 0xCC,\n\t0xA3, 0xB9, 0x03, 0x6E, 0xCC, 0x80, 0xCD, 0x03,\n\t0x6E, 0xCC, 0x81, 0xCD, 0x03, 0x6E, 0xCC, 0x83,\n\t0xCD, 0x03, 0x6E, 0xCC, 0x87, 0xCD, 0x03, 0x6E,\n\t0xCC, 0x8C, 0xCD, 0x03, 0x6E, 0xCC, 0xA3, 0xB9,\n\t// Bytes 3440 - 347f\n\t0x03, 0x6E, 0xCC, 0xA7, 0xA9, 0x03, 0x6E, 0xCC,\n\t0xAD, 0xB9, 0x03, 0x6E, 0xCC, 0xB1, 0xB9, 0x03,\n\t0x6F, 0xCC, 0x80, 0xCD, 0x03, 0x6F, 0xCC, 0x81,\n\t0xCD, 0x03, 0x6F, 0xCC, 0x86, 0xCD, 0x03, 0x6F,\n\t0xCC, 0x89, 0xCD, 0x03, 0x6F, 0xCC, 0x8B, 0xCD,\n\t0x03, 0x6F, 0xCC, 0x8C, 0xCD, 0x03, 0x6F, 0xCC,\n\t0x8F, 0xCD, 0x03, 0x6F, 0xCC, 0x91, 0xCD, 0x03,\n\t0x70, 0xCC, 0x81, 0xCD, 0x03, 0x70, 0xCC, 0x87,\n\t// Bytes 3480 - 34bf\n\t0xCD, 0x03, 0x72, 0xCC, 0x81, 0xCD, 0x03, 0x72,\n\t0xCC, 0x87, 0xCD, 0x03, 0x72, 0xCC, 0x8C, 0xCD,\n\t0x03, 0x72, 0xCC, 0x8F, 0xCD, 0x03, 0x72, 0xCC,\n\t0x91, 0xCD, 0x03, 0x72, 0xCC, 0xA7, 0xA9, 0x03,\n\t0x72, 0xCC, 0xB1, 0xB9, 0x03, 0x73, 0xCC, 0x82,\n\t0xCD, 0x03, 0x73, 0xCC, 0x87, 0xCD, 0x03, 0x73,\n\t0xCC, 0xA6, 0xB9, 0x03, 0x73, 0xCC, 0xA7, 0xA9,\n\t0x03, 0x74, 0xCC, 0x87, 0xCD, 0x03, 0x74, 0xCC,\n\t// Bytes 34c0 - 34ff\n\t0x88, 0xCD, 0x03, 0x74, 0xCC, 0x8C, 0xCD, 0x03,\n\t0x74, 0xCC, 0xA3, 0xB9, 0x03, 0x74, 0xCC, 0xA6,\n\t0xB9, 0x03, 0x74, 0xCC, 0xA7, 0xA9, 0x03, 0x74,\n\t0xCC, 0xAD, 0xB9, 0x03, 0x74, 0xCC, 0xB1, 0xB9,\n\t0x03, 0x75, 0xCC, 0x80, 0xCD, 0x03, 0x75, 0xCC,\n\t0x81, 0xCD, 0x03, 0x75, 0xCC, 0x82, 0xCD, 0x03,\n\t0x75, 0xCC, 0x86, 0xCD, 0x03, 0x75, 0xCC, 0x89,\n\t0xCD, 0x03, 0x75, 0xCC, 0x8A, 0xCD, 0x03, 0x75,\n\t// Bytes 3500 - 353f\n\t0xCC, 0x8B, 0xCD, 0x03, 0x75, 0xCC, 0x8C, 0xCD,\n\t0x03, 0x75, 0xCC, 0x8F, 0xCD, 0x03, 0x75, 0xCC,\n\t0x91, 0xCD, 0x03, 0x75, 0xCC, 0xA3, 0xB9, 0x03,\n\t0x75, 0xCC, 0xA4, 0xB9, 0x03, 0x75, 0xCC, 0xA8,\n\t0xA9, 0x03, 0x75, 0xCC, 0xAD, 0xB9, 0x03, 0x75,\n\t0xCC, 0xB0, 0xB9, 0x03, 0x76, 0xCC, 0x83, 0xCD,\n\t0x03, 0x76, 0xCC, 0xA3, 0xB9, 0x03, 0x77, 0xCC,\n\t0x80, 0xCD, 0x03, 0x77, 0xCC, 0x81, 0xCD, 0x03,\n\t// Bytes 3540 - 357f\n\t0x77, 0xCC, 0x82, 0xCD, 0x03, 0x77, 0xCC, 0x87,\n\t0xCD, 0x03, 0x77, 0xCC, 0x88, 0xCD, 0x03, 0x77,\n\t0xCC, 0x8A, 0xCD, 0x03, 0x77, 0xCC, 0xA3, 0xB9,\n\t0x03, 0x78, 0xCC, 0x87, 0xCD, 0x03, 0x78, 0xCC,\n\t0x88, 0xCD, 0x03, 0x79, 0xCC, 0x80, 0xCD, 0x03,\n\t0x79, 0xCC, 0x81, 0xCD, 0x03, 0x79, 0xCC, 0x82,\n\t0xCD, 0x03, 0x79, 0xCC, 0x83, 0xCD, 0x03, 0x79,\n\t0xCC, 0x84, 0xCD, 0x03, 0x79, 0xCC, 0x87, 0xCD,\n\t// Bytes 3580 - 35bf\n\t0x03, 0x79, 0xCC, 0x88, 0xCD, 0x03, 0x79, 0xCC,\n\t0x89, 0xCD, 0x03, 0x79, 0xCC, 0x8A, 0xCD, 0x03,\n\t0x79, 0xCC, 0xA3, 0xB9, 0x03, 0x7A, 0xCC, 0x81,\n\t0xCD, 0x03, 0x7A, 0xCC, 0x82, 0xCD, 0x03, 0x7A,\n\t0xCC, 0x87, 0xCD, 0x03, 0x7A, 0xCC, 0x8C, 0xCD,\n\t0x03, 0x7A, 0xCC, 0xA3, 0xB9, 0x03, 0x7A, 0xCC,\n\t0xB1, 0xB9, 0x04, 0xC2, 0xA8, 0xCC, 0x80, 0xCE,\n\t0x04, 0xC2, 0xA8, 0xCC, 0x81, 0xCE, 0x04, 0xC2,\n\t// Bytes 35c0 - 35ff\n\t0xA8, 0xCD, 0x82, 0xCE, 0x04, 0xC3, 0x86, 0xCC,\n\t0x81, 0xCD, 0x04, 0xC3, 0x86, 0xCC, 0x84, 0xCD,\n\t0x04, 0xC3, 0x98, 0xCC, 0x81, 0xCD, 0x04, 0xC3,\n\t0xA6, 0xCC, 0x81, 0xCD, 0x04, 0xC3, 0xA6, 0xCC,\n\t0x84, 0xCD, 0x04, 0xC3, 0xB8, 0xCC, 0x81, 0xCD,\n\t0x04, 0xC5, 0xBF, 0xCC, 0x87, 0xCD, 0x04, 0xC6,\n\t0xB7, 0xCC, 0x8C, 0xCD, 0x04, 0xCA, 0x92, 0xCC,\n\t0x8C, 0xCD, 0x04, 0xCE, 0x91, 0xCC, 0x80, 0xCD,\n\t// Bytes 3600 - 363f\n\t0x04, 0xCE, 0x91, 0xCC, 0x81, 0xCD, 0x04, 0xCE,\n\t0x91, 0xCC, 0x84, 0xCD, 0x04, 0xCE, 0x91, 0xCC,\n\t0x86, 0xCD, 0x04, 0xCE, 0x91, 0xCD, 0x85, 0xDD,\n\t0x04, 0xCE, 0x95, 0xCC, 0x80, 0xCD, 0x04, 0xCE,\n\t0x95, 0xCC, 0x81, 0xCD, 0x04, 0xCE, 0x97, 0xCC,\n\t0x80, 0xCD, 0x04, 0xCE, 0x97, 0xCC, 0x81, 0xCD,\n\t0x04, 0xCE, 0x97, 0xCD, 0x85, 0xDD, 0x04, 0xCE,\n\t0x99, 0xCC, 0x80, 0xCD, 0x04, 0xCE, 0x99, 0xCC,\n\t// Bytes 3640 - 367f\n\t0x81, 0xCD, 0x04, 0xCE, 0x99, 0xCC, 0x84, 0xCD,\n\t0x04, 0xCE, 0x99, 0xCC, 0x86, 0xCD, 0x04, 0xCE,\n\t0x99, 0xCC, 0x88, 0xCD, 0x04, 0xCE, 0x9F, 0xCC,\n\t0x80, 0xCD, 0x04, 0xCE, 0x9F, 0xCC, 0x81, 0xCD,\n\t0x04, 0xCE, 0xA1, 0xCC, 0x94, 0xCD, 0x04, 0xCE,\n\t0xA5, 0xCC, 0x80, 0xCD, 0x04, 0xCE, 0xA5, 0xCC,\n\t0x81, 0xCD, 0x04, 0xCE, 0xA5, 0xCC, 0x84, 0xCD,\n\t0x04, 0xCE, 0xA5, 0xCC, 0x86, 0xCD, 0x04, 0xCE,\n\t// Bytes 3680 - 36bf\n\t0xA5, 0xCC, 0x88, 0xCD, 0x04, 0xCE, 0xA9, 0xCC,\n\t0x80, 0xCD, 0x04, 0xCE, 0xA9, 0xCC, 0x81, 0xCD,\n\t0x04, 0xCE, 0xA9, 0xCD, 0x85, 0xDD, 0x04, 0xCE,\n\t0xB1, 0xCC, 0x84, 0xCD, 0x04, 0xCE, 0xB1, 0xCC,\n\t0x86, 0xCD, 0x04, 0xCE, 0xB1, 0xCD, 0x85, 0xDD,\n\t0x04, 0xCE, 0xB5, 0xCC, 0x80, 0xCD, 0x04, 0xCE,\n\t0xB5, 0xCC, 0x81, 0xCD, 0x04, 0xCE, 0xB7, 0xCD,\n\t0x85, 0xDD, 0x04, 0xCE, 0xB9, 0xCC, 0x80, 0xCD,\n\t// Bytes 36c0 - 36ff\n\t0x04, 0xCE, 0xB9, 0xCC, 0x81, 0xCD, 0x04, 0xCE,\n\t0xB9, 0xCC, 0x84, 0xCD, 0x04, 0xCE, 0xB9, 0xCC,\n\t0x86, 0xCD, 0x04, 0xCE, 0xB9, 0xCD, 0x82, 0xCD,\n\t0x04, 0xCE, 0xBF, 0xCC, 0x80, 0xCD, 0x04, 0xCE,\n\t0xBF, 0xCC, 0x81, 0xCD, 0x04, 0xCF, 0x81, 0xCC,\n\t0x93, 0xCD, 0x04, 0xCF, 0x81, 0xCC, 0x94, 0xCD,\n\t0x04, 0xCF, 0x85, 0xCC, 0x80, 0xCD, 0x04, 0xCF,\n\t0x85, 0xCC, 0x81, 0xCD, 0x04, 0xCF, 0x85, 0xCC,\n\t// Bytes 3700 - 373f\n\t0x84, 0xCD, 0x04, 0xCF, 0x85, 0xCC, 0x86, 0xCD,\n\t0x04, 0xCF, 0x85, 0xCD, 0x82, 0xCD, 0x04, 0xCF,\n\t0x89, 0xCD, 0x85, 0xDD, 0x04, 0xCF, 0x92, 0xCC,\n\t0x81, 0xCD, 0x04, 0xCF, 0x92, 0xCC, 0x88, 0xCD,\n\t0x04, 0xD0, 0x86, 0xCC, 0x88, 0xCD, 0x04, 0xD0,\n\t0x90, 0xCC, 0x86, 0xCD, 0x04, 0xD0, 0x90, 0xCC,\n\t0x88, 0xCD, 0x04, 0xD0, 0x93, 0xCC, 0x81, 0xCD,\n\t0x04, 0xD0, 0x95, 0xCC, 0x80, 0xCD, 0x04, 0xD0,\n\t// Bytes 3740 - 377f\n\t0x95, 0xCC, 0x86, 0xCD, 0x04, 0xD0, 0x95, 0xCC,\n\t0x88, 0xCD, 0x04, 0xD0, 0x96, 0xCC, 0x86, 0xCD,\n\t0x04, 0xD0, 0x96, 0xCC, 0x88, 0xCD, 0x04, 0xD0,\n\t0x97, 0xCC, 0x88, 0xCD, 0x04, 0xD0, 0x98, 0xCC,\n\t0x80, 0xCD, 0x04, 0xD0, 0x98, 0xCC, 0x84, 0xCD,\n\t0x04, 0xD0, 0x98, 0xCC, 0x86, 0xCD, 0x04, 0xD0,\n\t0x98, 0xCC, 0x88, 0xCD, 0x04, 0xD0, 0x9A, 0xCC,\n\t0x81, 0xCD, 0x04, 0xD0, 0x9E, 0xCC, 0x88, 0xCD,\n\t// Bytes 3780 - 37bf\n\t0x04, 0xD0, 0xA3, 0xCC, 0x84, 0xCD, 0x04, 0xD0,\n\t0xA3, 0xCC, 0x86, 0xCD, 0x04, 0xD0, 0xA3, 0xCC,\n\t0x88, 0xCD, 0x04, 0xD0, 0xA3, 0xCC, 0x8B, 0xCD,\n\t0x04, 0xD0, 0xA7, 0xCC, 0x88, 0xCD, 0x04, 0xD0,\n\t0xAB, 0xCC, 0x88, 0xCD, 0x04, 0xD0, 0xAD, 0xCC,\n\t0x88, 0xCD, 0x04, 0xD0, 0xB0, 0xCC, 0x86, 0xCD,\n\t0x04, 0xD0, 0xB0, 0xCC, 0x88, 0xCD, 0x04, 0xD0,\n\t0xB3, 0xCC, 0x81, 0xCD, 0x04, 0xD0, 0xB5, 0xCC,\n\t// Bytes 37c0 - 37ff\n\t0x80, 0xCD, 0x04, 0xD0, 0xB5, 0xCC, 0x86, 0xCD,\n\t0x04, 0xD0, 0xB5, 0xCC, 0x88, 0xCD, 0x04, 0xD0,\n\t0xB6, 0xCC, 0x86, 0xCD, 0x04, 0xD0, 0xB6, 0xCC,\n\t0x88, 0xCD, 0x04, 0xD0, 0xB7, 0xCC, 0x88, 0xCD,\n\t0x04, 0xD0, 0xB8, 0xCC, 0x80, 0xCD, 0x04, 0xD0,\n\t0xB8, 0xCC, 0x84, 0xCD, 0x04, 0xD0, 0xB8, 0xCC,\n\t0x86, 0xCD, 0x04, 0xD0, 0xB8, 0xCC, 0x88, 0xCD,\n\t0x04, 0xD0, 0xBA, 0xCC, 0x81, 0xCD, 0x04, 0xD0,\n\t// Bytes 3800 - 383f\n\t0xBE, 0xCC, 0x88, 0xCD, 0x04, 0xD1, 0x83, 0xCC,\n\t0x84, 0xCD, 0x04, 0xD1, 0x83, 0xCC, 0x86, 0xCD,\n\t0x04, 0xD1, 0x83, 0xCC, 0x88, 0xCD, 0x04, 0xD1,\n\t0x83, 0xCC, 0x8B, 0xCD, 0x04, 0xD1, 0x87, 0xCC,\n\t0x88, 0xCD, 0x04, 0xD1, 0x8B, 0xCC, 0x88, 0xCD,\n\t0x04, 0xD1, 0x8D, 0xCC, 0x88, 0xCD, 0x04, 0xD1,\n\t0x96, 0xCC, 0x88, 0xCD, 0x04, 0xD1, 0xB4, 0xCC,\n\t0x8F, 0xCD, 0x04, 0xD1, 0xB5, 0xCC, 0x8F, 0xCD,\n\t// Bytes 3840 - 387f\n\t0x04, 0xD3, 0x98, 0xCC, 0x88, 0xCD, 0x04, 0xD3,\n\t0x99, 0xCC, 0x88, 0xCD, 0x04, 0xD3, 0xA8, 0xCC,\n\t0x88, 0xCD, 0x04, 0xD3, 0xA9, 0xCC, 0x88, 0xCD,\n\t0x04, 0xD8, 0xA7, 0xD9, 0x93, 0xCD, 0x04, 0xD8,\n\t0xA7, 0xD9, 0x94, 0xCD, 0x04, 0xD8, 0xA7, 0xD9,\n\t0x95, 0xB9, 0x04, 0xD9, 0x88, 0xD9, 0x94, 0xCD,\n\t0x04, 0xD9, 0x8A, 0xD9, 0x94, 0xCD, 0x04, 0xDB,\n\t0x81, 0xD9, 0x94, 0xCD, 0x04, 0xDB, 0x92, 0xD9,\n\t// Bytes 3880 - 38bf\n\t0x94, 0xCD, 0x04, 0xDB, 0x95, 0xD9, 0x94, 0xCD,\n\t0x05, 0x41, 0xCC, 0x82, 0xCC, 0x80, 0xCE, 0x05,\n\t0x41, 0xCC, 0x82, 0xCC, 0x81, 0xCE, 0x05, 0x41,\n\t0xCC, 0x82, 0xCC, 0x83, 0xCE, 0x05, 0x41, 0xCC,\n\t0x82, 0xCC, 0x89, 0xCE, 0x05, 0x41, 0xCC, 0x86,\n\t0xCC, 0x80, 0xCE, 0x05, 0x41, 0xCC, 0x86, 0xCC,\n\t0x81, 0xCE, 0x05, 0x41, 0xCC, 0x86, 0xCC, 0x83,\n\t0xCE, 0x05, 0x41, 0xCC, 0x86, 0xCC, 0x89, 0xCE,\n\t// Bytes 38c0 - 38ff\n\t0x05, 0x41, 0xCC, 0x87, 0xCC, 0x84, 0xCE, 0x05,\n\t0x41, 0xCC, 0x88, 0xCC, 0x84, 0xCE, 0x05, 0x41,\n\t0xCC, 0x8A, 0xCC, 0x81, 0xCE, 0x05, 0x41, 0xCC,\n\t0xA3, 0xCC, 0x82, 0xCE, 0x05, 0x41, 0xCC, 0xA3,\n\t0xCC, 0x86, 0xCE, 0x05, 0x43, 0xCC, 0xA7, 0xCC,\n\t0x81, 0xCE, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x80,\n\t0xCE, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x81, 0xCE,\n\t0x05, 0x45, 0xCC, 0x82, 0xCC, 0x83, 0xCE, 0x05,\n\t// Bytes 3900 - 393f\n\t0x45, 0xCC, 0x82, 0xCC, 0x89, 0xCE, 0x05, 0x45,\n\t0xCC, 0x84, 0xCC, 0x80, 0xCE, 0x05, 0x45, 0xCC,\n\t0x84, 0xCC, 0x81, 0xCE, 0x05, 0x45, 0xCC, 0xA3,\n\t0xCC, 0x82, 0xCE, 0x05, 0x45, 0xCC, 0xA7, 0xCC,\n\t0x86, 0xCE, 0x05, 0x49, 0xCC, 0x88, 0xCC, 0x81,\n\t0xCE, 0x05, 0x4C, 0xCC, 0xA3, 0xCC, 0x84, 0xCE,\n\t0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x80, 0xCE, 0x05,\n\t0x4F, 0xCC, 0x82, 0xCC, 0x81, 0xCE, 0x05, 0x4F,\n\t// Bytes 3940 - 397f\n\t0xCC, 0x82, 0xCC, 0x83, 0xCE, 0x05, 0x4F, 0xCC,\n\t0x82, 0xCC, 0x89, 0xCE, 0x05, 0x4F, 0xCC, 0x83,\n\t0xCC, 0x81, 0xCE, 0x05, 0x4F, 0xCC, 0x83, 0xCC,\n\t0x84, 0xCE, 0x05, 0x4F, 0xCC, 0x83, 0xCC, 0x88,\n\t0xCE, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x80, 0xCE,\n\t0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x81, 0xCE, 0x05,\n\t0x4F, 0xCC, 0x87, 0xCC, 0x84, 0xCE, 0x05, 0x4F,\n\t0xCC, 0x88, 0xCC, 0x84, 0xCE, 0x05, 0x4F, 0xCC,\n\t// Bytes 3980 - 39bf\n\t0x9B, 0xCC, 0x80, 0xCE, 0x05, 0x4F, 0xCC, 0x9B,\n\t0xCC, 0x81, 0xCE, 0x05, 0x4F, 0xCC, 0x9B, 0xCC,\n\t0x83, 0xCE, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0x89,\n\t0xCE, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0xA3, 0xBA,\n\t0x05, 0x4F, 0xCC, 0xA3, 0xCC, 0x82, 0xCE, 0x05,\n\t0x4F, 0xCC, 0xA8, 0xCC, 0x84, 0xCE, 0x05, 0x52,\n\t0xCC, 0xA3, 0xCC, 0x84, 0xCE, 0x05, 0x53, 0xCC,\n\t0x81, 0xCC, 0x87, 0xCE, 0x05, 0x53, 0xCC, 0x8C,\n\t// Bytes 39c0 - 39ff\n\t0xCC, 0x87, 0xCE, 0x05, 0x53, 0xCC, 0xA3, 0xCC,\n\t0x87, 0xCE, 0x05, 0x55, 0xCC, 0x83, 0xCC, 0x81,\n\t0xCE, 0x05, 0x55, 0xCC, 0x84, 0xCC, 0x88, 0xCE,\n\t0x05, 0x55, 0xCC, 0x88, 0xCC, 0x80, 0xCE, 0x05,\n\t0x55, 0xCC, 0x88, 0xCC, 0x81, 0xCE, 0x05, 0x55,\n\t0xCC, 0x88, 0xCC, 0x84, 0xCE, 0x05, 0x55, 0xCC,\n\t0x88, 0xCC, 0x8C, 0xCE, 0x05, 0x55, 0xCC, 0x9B,\n\t0xCC, 0x80, 0xCE, 0x05, 0x55, 0xCC, 0x9B, 0xCC,\n\t// Bytes 3a00 - 3a3f\n\t0x81, 0xCE, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x83,\n\t0xCE, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x89, 0xCE,\n\t0x05, 0x55, 0xCC, 0x9B, 0xCC, 0xA3, 0xBA, 0x05,\n\t0x61, 0xCC, 0x82, 0xCC, 0x80, 0xCE, 0x05, 0x61,\n\t0xCC, 0x82, 0xCC, 0x81, 0xCE, 0x05, 0x61, 0xCC,\n\t0x82, 0xCC, 0x83, 0xCE, 0x05, 0x61, 0xCC, 0x82,\n\t0xCC, 0x89, 0xCE, 0x05, 0x61, 0xCC, 0x86, 0xCC,\n\t0x80, 0xCE, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x81,\n\t// Bytes 3a40 - 3a7f\n\t0xCE, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x83, 0xCE,\n\t0x05, 0x61, 0xCC, 0x86, 0xCC, 0x89, 0xCE, 0x05,\n\t0x61, 0xCC, 0x87, 0xCC, 0x84, 0xCE, 0x05, 0x61,\n\t0xCC, 0x88, 0xCC, 0x84, 0xCE, 0x05, 0x61, 0xCC,\n\t0x8A, 0xCC, 0x81, 0xCE, 0x05, 0x61, 0xCC, 0xA3,\n\t0xCC, 0x82, 0xCE, 0x05, 0x61, 0xCC, 0xA3, 0xCC,\n\t0x86, 0xCE, 0x05, 0x63, 0xCC, 0xA7, 0xCC, 0x81,\n\t0xCE, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x80, 0xCE,\n\t// Bytes 3a80 - 3abf\n\t0x05, 0x65, 0xCC, 0x82, 0xCC, 0x81, 0xCE, 0x05,\n\t0x65, 0xCC, 0x82, 0xCC, 0x83, 0xCE, 0x05, 0x65,\n\t0xCC, 0x82, 0xCC, 0x89, 0xCE, 0x05, 0x65, 0xCC,\n\t0x84, 0xCC, 0x80, 0xCE, 0x05, 0x65, 0xCC, 0x84,\n\t0xCC, 0x81, 0xCE, 0x05, 0x65, 0xCC, 0xA3, 0xCC,\n\t0x82, 0xCE, 0x05, 0x65, 0xCC, 0xA7, 0xCC, 0x86,\n\t0xCE, 0x05, 0x69, 0xCC, 0x88, 0xCC, 0x81, 0xCE,\n\t0x05, 0x6C, 0xCC, 0xA3, 0xCC, 0x84, 0xCE, 0x05,\n\t// Bytes 3ac0 - 3aff\n\t0x6F, 0xCC, 0x82, 0xCC, 0x80, 0xCE, 0x05, 0x6F,\n\t0xCC, 0x82, 0xCC, 0x81, 0xCE, 0x05, 0x6F, 0xCC,\n\t0x82, 0xCC, 0x83, 0xCE, 0x05, 0x6F, 0xCC, 0x82,\n\t0xCC, 0x89, 0xCE, 0x05, 0x6F, 0xCC, 0x83, 0xCC,\n\t0x81, 0xCE, 0x05, 0x6F, 0xCC, 0x83, 0xCC, 0x84,\n\t0xCE, 0x05, 0x6F, 0xCC, 0x83, 0xCC, 0x88, 0xCE,\n\t0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x80, 0xCE, 0x05,\n\t0x6F, 0xCC, 0x84, 0xCC, 0x81, 0xCE, 0x05, 0x6F,\n\t// Bytes 3b00 - 3b3f\n\t0xCC, 0x87, 0xCC, 0x84, 0xCE, 0x05, 0x6F, 0xCC,\n\t0x88, 0xCC, 0x84, 0xCE, 0x05, 0x6F, 0xCC, 0x9B,\n\t0xCC, 0x80, 0xCE, 0x05, 0x6F, 0xCC, 0x9B, 0xCC,\n\t0x81, 0xCE, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x83,\n\t0xCE, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x89, 0xCE,\n\t0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0xA3, 0xBA, 0x05,\n\t0x6F, 0xCC, 0xA3, 0xCC, 0x82, 0xCE, 0x05, 0x6F,\n\t0xCC, 0xA8, 0xCC, 0x84, 0xCE, 0x05, 0x72, 0xCC,\n\t// Bytes 3b40 - 3b7f\n\t0xA3, 0xCC, 0x84, 0xCE, 0x05, 0x73, 0xCC, 0x81,\n\t0xCC, 0x87, 0xCE, 0x05, 0x73, 0xCC, 0x8C, 0xCC,\n\t0x87, 0xCE, 0x05, 0x73, 0xCC, 0xA3, 0xCC, 0x87,\n\t0xCE, 0x05, 0x75, 0xCC, 0x83, 0xCC, 0x81, 0xCE,\n\t0x05, 0x75, 0xCC, 0x84, 0xCC, 0x88, 0xCE, 0x05,\n\t0x75, 0xCC, 0x88, 0xCC, 0x80, 0xCE, 0x05, 0x75,\n\t0xCC, 0x88, 0xCC, 0x81, 0xCE, 0x05, 0x75, 0xCC,\n\t0x88, 0xCC, 0x84, 0xCE, 0x05, 0x75, 0xCC, 0x88,\n\t// Bytes 3b80 - 3bbf\n\t0xCC, 0x8C, 0xCE, 0x05, 0x75, 0xCC, 0x9B, 0xCC,\n\t0x80, 0xCE, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x81,\n\t0xCE, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x83, 0xCE,\n\t0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x89, 0xCE, 0x05,\n\t0x75, 0xCC, 0x9B, 0xCC, 0xA3, 0xBA, 0x05, 0xE1,\n\t0xBE, 0xBF, 0xCC, 0x80, 0xCE, 0x05, 0xE1, 0xBE,\n\t0xBF, 0xCC, 0x81, 0xCE, 0x05, 0xE1, 0xBE, 0xBF,\n\t0xCD, 0x82, 0xCE, 0x05, 0xE1, 0xBF, 0xBE, 0xCC,\n\t// Bytes 3bc0 - 3bff\n\t0x80, 0xCE, 0x05, 0xE1, 0xBF, 0xBE, 0xCC, 0x81,\n\t0xCE, 0x05, 0xE1, 0xBF, 0xBE, 0xCD, 0x82, 0xCE,\n\t0x05, 0xE2, 0x86, 0x90, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x86, 0x92, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x86, 0x94, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87,\n\t0x90, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, 0x92,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, 0x94, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x88, 0x83, 0xCC, 0xB8,\n\t// Bytes 3c00 - 3c3f\n\t0x05, 0x05, 0xE2, 0x88, 0x88, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x88, 0x8B, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x88, 0xA3, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x88, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88,\n\t0xBC, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x83,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x85, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x89, 0x88, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x89, 0x8D, 0xCC, 0xB8, 0x05,\n\t// Bytes 3c40 - 3c7f\n\t0x05, 0xE2, 0x89, 0xA1, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x89, 0xA4, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x89, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89,\n\t0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB3,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB6, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB7, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x89, 0xBA, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x89, 0xBB, 0xCC, 0xB8, 0x05, 0x05,\n\t// Bytes 3c80 - 3cbf\n\t0xE2, 0x89, 0xBC, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x89, 0xBD, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,\n\t0x82, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x83,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x86, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x87, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x8A, 0x91, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x8A, 0x92, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x8A, 0xA2, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t// Bytes 3cc0 - 3cff\n\t0x8A, 0xA8, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,\n\t0xA9, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xAB,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB2, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB3, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x8A, 0xB4, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x8A, 0xB5, 0xCC, 0xB8, 0x05, 0x06,\n\t0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x85, 0xDE, 0x06,\n\t0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x85, 0xDE, 0x06,\n\t// Bytes 3d00 - 3d3f\n\t0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x06,\n\t0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x06,\n\t0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06,\n\t0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06,\n\t0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x85, 0xDE, 0x06,\n\t0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x85, 0xDE, 0x06,\n\t0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x06,\n\t0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x06,\n\t// Bytes 3d40 - 3d7f\n\t0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x06,\n\t0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06,\n\t0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06,\n\t0xCE, 0x99, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x06,\n\t0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x06,\n\t0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x06,\n\t0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06,\n\t0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06,\n\t// Bytes 3d80 - 3dbf\n\t0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06,\n\t0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06,\n\t0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x06,\n\t0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x85, 0xDE, 0x06,\n\t0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x85, 0xDE, 0x06,\n\t0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x85, 0xDE, 0x06,\n\t0xCE, 0xB1, 0xCC, 0x81, 0xCD, 0x85, 0xDE, 0x06,\n\t0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x85, 0xDE, 0x06,\n\t// Bytes 3dc0 - 3dff\n\t0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x85, 0xDE, 0x06,\n\t0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x85, 0xDE, 0x06,\n\t0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x06,\n\t0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x06,\n\t0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06,\n\t0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06,\n\t0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x85, 0xDE, 0x06,\n\t0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x85, 0xDE, 0x06,\n\t// Bytes 3e00 - 3e3f\n\t0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x85, 0xDE, 0x06,\n\t0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x85, 0xDE, 0x06,\n\t0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x85, 0xDE, 0x06,\n\t0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x80, 0xCE, 0x06,\n\t0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81, 0xCE, 0x06,\n\t0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x82, 0xCE, 0x06,\n\t0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x06,\n\t0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x06,\n\t// Bytes 3e40 - 3e7f\n\t0xCE, 0xB9, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x06,\n\t0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06,\n\t0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06,\n\t0xCE, 0xB9, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x06,\n\t0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x06,\n\t0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x06,\n\t0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06,\n\t0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06,\n\t// Bytes 3e80 - 3ebf\n\t0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x80, 0xCE, 0x06,\n\t0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xCE, 0x06,\n\t0xCF, 0x85, 0xCC, 0x88, 0xCD, 0x82, 0xCE, 0x06,\n\t0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x06,\n\t0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x06,\n\t0xCF, 0x85, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x06,\n\t0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06,\n\t0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06,\n\t// Bytes 3ec0 - 3eff\n\t0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x06,\n\t0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x85, 0xDE, 0x06,\n\t0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x85, 0xDE, 0x06,\n\t0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x85, 0xDE, 0x06,\n\t0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x85, 0xDE, 0x06,\n\t0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x85, 0xDE, 0x06,\n\t0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBC, 0x0D, 0x06,\n\t0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBC, 0x0D, 0x06,\n\t// Bytes 3f00 - 3f3f\n\t0xE0, 0xA4, 0xB3, 0xE0, 0xA4, 0xBC, 0x0D, 0x06,\n\t0xE0, 0xB1, 0x86, 0xE0, 0xB1, 0x96, 0x89, 0x06,\n\t0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8A, 0x15, 0x06,\n\t0xE3, 0x81, 0x86, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x81, 0x8B, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x81, 0x8D, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x81, 0x8F, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x81, 0x91, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t// Bytes 3f40 - 3f7f\n\t0xE3, 0x81, 0x93, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x81, 0x95, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x81, 0x97, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x81, 0x99, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x81, 0x9B, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x81, 0x9D, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x81, 0x9F, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x81, 0xA1, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t// Bytes 3f80 - 3fbf\n\t0xE3, 0x81, 0xA4, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x81, 0xA6, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x81, 0xA8, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x9A, 0x11, 0x06,\n\t0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x9A, 0x11, 0x06,\n\t0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t// Bytes 3fc0 - 3fff\n\t0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x9A, 0x11, 0x06,\n\t0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x9A, 0x11, 0x06,\n\t0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x9A, 0x11, 0x06,\n\t0xE3, 0x82, 0x9D, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x82, 0xA6, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t// Bytes 4000 - 403f\n\t0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x82, 0xB3, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x82, 0xB5, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x82, 0xB9, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t// Bytes 4040 - 407f\n\t0xE3, 0x82, 0xBD, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x83, 0x81, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x83, 0x84, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0x11, 0x06,\n\t// Bytes 4080 - 40bf\n\t0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0x11, 0x06,\n\t0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x83, 0x95, 0xE3, 0x82, 0x9A, 0x11, 0x06,\n\t0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0x11, 0x06,\n\t0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x11, 0x06,\n\t// Bytes 40c0 - 40ff\n\t0xE3, 0x83, 0xAF, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x83, 0xB0, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x83, 0xB1, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x83, 0xB2, 0xE3, 0x82, 0x99, 0x11, 0x06,\n\t0xE3, 0x83, 0xBD, 0xE3, 0x82, 0x99, 0x11, 0x08,\n\t0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85,\n\t0xDF, 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x81,\n\t0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x91, 0xCC, 0x93,\n\t// Bytes 4100 - 413f\n\t0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x91,\n\t0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08,\n\t0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85,\n\t0xDF, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x82,\n\t0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x97, 0xCC, 0x93,\n\t0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x97,\n\t0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08,\n\t0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85,\n\t// Bytes 4140 - 417f\n\t0xDF, 0x08, 0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x80,\n\t0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x97, 0xCC, 0x94,\n\t0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x97,\n\t0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08,\n\t0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85,\n\t0xDF, 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x81,\n\t0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xA9, 0xCC, 0x93,\n\t0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xA9,\n\t// Bytes 4180 - 41bf\n\t0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08,\n\t0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85,\n\t0xDF, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x82,\n\t0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB1, 0xCC, 0x93,\n\t0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB1,\n\t0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08,\n\t0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85,\n\t0xDF, 0x08, 0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x80,\n\t// Bytes 41c0 - 41ff\n\t0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB1, 0xCC, 0x94,\n\t0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB1,\n\t0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08,\n\t0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85,\n\t0xDF, 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x81,\n\t0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB7, 0xCC, 0x93,\n\t0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB7,\n\t0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08,\n\t// Bytes 4200 - 423f\n\t0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85,\n\t0xDF, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x82,\n\t0xCD, 0x85, 0xDF, 0x08, 0xCF, 0x89, 0xCC, 0x93,\n\t0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08, 0xCF, 0x89,\n\t0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08,\n\t0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85,\n\t0xDF, 0x08, 0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x80,\n\t0xCD, 0x85, 0xDF, 0x08, 0xCF, 0x89, 0xCC, 0x94,\n\t// Bytes 4240 - 427f\n\t0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08, 0xCF, 0x89,\n\t0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08,\n\t0xF0, 0x91, 0x82, 0x99, 0xF0, 0x91, 0x82, 0xBA,\n\t0x0D, 0x08, 0xF0, 0x91, 0x82, 0x9B, 0xF0, 0x91,\n\t0x82, 0xBA, 0x0D, 0x08, 0xF0, 0x91, 0x82, 0xA5,\n\t0xF0, 0x91, 0x82, 0xBA, 0x0D, 0x42, 0xC2, 0xB4,\n\t0x01, 0x43, 0x20, 0xCC, 0x81, 0xCD, 0x43, 0x20,\n\t0xCC, 0x83, 0xCD, 0x43, 0x20, 0xCC, 0x84, 0xCD,\n\t// Bytes 4280 - 42bf\n\t0x43, 0x20, 0xCC, 0x85, 0xCD, 0x43, 0x20, 0xCC,\n\t0x86, 0xCD, 0x43, 0x20, 0xCC, 0x87, 0xCD, 0x43,\n\t0x20, 0xCC, 0x88, 0xCD, 0x43, 0x20, 0xCC, 0x8A,\n\t0xCD, 0x43, 0x20, 0xCC, 0x8B, 0xCD, 0x43, 0x20,\n\t0xCC, 0x93, 0xCD, 0x43, 0x20, 0xCC, 0x94, 0xCD,\n\t0x43, 0x20, 0xCC, 0xA7, 0xA9, 0x43, 0x20, 0xCC,\n\t0xA8, 0xA9, 0x43, 0x20, 0xCC, 0xB3, 0xB9, 0x43,\n\t0x20, 0xCD, 0x82, 0xCD, 0x43, 0x20, 0xCD, 0x85,\n\t// Bytes 42c0 - 42ff\n\t0xDD, 0x43, 0x20, 0xD9, 0x8B, 0x5D, 0x43, 0x20,\n\t0xD9, 0x8C, 0x61, 0x43, 0x20, 0xD9, 0x8D, 0x65,\n\t0x43, 0x20, 0xD9, 0x8E, 0x69, 0x43, 0x20, 0xD9,\n\t0x8F, 0x6D, 0x43, 0x20, 0xD9, 0x90, 0x71, 0x43,\n\t0x20, 0xD9, 0x91, 0x75, 0x43, 0x20, 0xD9, 0x92,\n\t0x79, 0x43, 0x41, 0xCC, 0x8A, 0xCD, 0x43, 0x73,\n\t0xCC, 0x87, 0xCD, 0x44, 0x20, 0xE3, 0x82, 0x99,\n\t0x11, 0x44, 0x20, 0xE3, 0x82, 0x9A, 0x11, 0x44,\n\t// Bytes 4300 - 433f\n\t0xC2, 0xA8, 0xCC, 0x81, 0xCE, 0x44, 0xCE, 0x91,\n\t0xCC, 0x81, 0xCD, 0x44, 0xCE, 0x95, 0xCC, 0x81,\n\t0xCD, 0x44, 0xCE, 0x97, 0xCC, 0x81, 0xCD, 0x44,\n\t0xCE, 0x99, 0xCC, 0x81, 0xCD, 0x44, 0xCE, 0x9F,\n\t0xCC, 0x81, 0xCD, 0x44, 0xCE, 0xA5, 0xCC, 0x81,\n\t0xCD, 0x44, 0xCE, 0xA5, 0xCC, 0x88, 0xCD, 0x44,\n\t0xCE, 0xA9, 0xCC, 0x81, 0xCD, 0x44, 0xCE, 0xB1,\n\t0xCC, 0x81, 0xCD, 0x44, 0xCE, 0xB5, 0xCC, 0x81,\n\t// Bytes 4340 - 437f\n\t0xCD, 0x44, 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x44,\n\t0xCE, 0xB9, 0xCC, 0x81, 0xCD, 0x44, 0xCE, 0xBF,\n\t0xCC, 0x81, 0xCD, 0x44, 0xCF, 0x85, 0xCC, 0x81,\n\t0xCD, 0x44, 0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x44,\n\t0xD7, 0x90, 0xD6, 0xB7, 0x35, 0x44, 0xD7, 0x90,\n\t0xD6, 0xB8, 0x39, 0x44, 0xD7, 0x90, 0xD6, 0xBC,\n\t0x45, 0x44, 0xD7, 0x91, 0xD6, 0xBC, 0x45, 0x44,\n\t0xD7, 0x91, 0xD6, 0xBF, 0x4D, 0x44, 0xD7, 0x92,\n\t// Bytes 4380 - 43bf\n\t0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x93, 0xD6, 0xBC,\n\t0x45, 0x44, 0xD7, 0x94, 0xD6, 0xBC, 0x45, 0x44,\n\t0xD7, 0x95, 0xD6, 0xB9, 0x3D, 0x44, 0xD7, 0x95,\n\t0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x96, 0xD6, 0xBC,\n\t0x45, 0x44, 0xD7, 0x98, 0xD6, 0xBC, 0x45, 0x44,\n\t0xD7, 0x99, 0xD6, 0xB4, 0x29, 0x44, 0xD7, 0x99,\n\t0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x9A, 0xD6, 0xBC,\n\t0x45, 0x44, 0xD7, 0x9B, 0xD6, 0xBC, 0x45, 0x44,\n\t// Bytes 43c0 - 43ff\n\t0xD7, 0x9B, 0xD6, 0xBF, 0x4D, 0x44, 0xD7, 0x9C,\n\t0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x9E, 0xD6, 0xBC,\n\t0x45, 0x44, 0xD7, 0xA0, 0xD6, 0xBC, 0x45, 0x44,\n\t0xD7, 0xA1, 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0xA3,\n\t0xD6, 0xBC, 0x45, 0x44, 0xD7, 0xA4, 0xD6, 0xBC,\n\t0x45, 0x44, 0xD7, 0xA4, 0xD6, 0xBF, 0x4D, 0x44,\n\t0xD7, 0xA6, 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0xA7,\n\t0xD6, 0xBC, 0x45, 0x44, 0xD7, 0xA8, 0xD6, 0xBC,\n\t// Bytes 4400 - 443f\n\t0x45, 0x44, 0xD7, 0xA9, 0xD6, 0xBC, 0x45, 0x44,\n\t0xD7, 0xA9, 0xD7, 0x81, 0x51, 0x44, 0xD7, 0xA9,\n\t0xD7, 0x82, 0x55, 0x44, 0xD7, 0xAA, 0xD6, 0xBC,\n\t0x45, 0x44, 0xD7, 0xB2, 0xD6, 0xB7, 0x35, 0x44,\n\t0xD8, 0xA7, 0xD9, 0x8B, 0x5D, 0x44, 0xD8, 0xA7,\n\t0xD9, 0x93, 0xCD, 0x44, 0xD8, 0xA7, 0xD9, 0x94,\n\t0xCD, 0x44, 0xD8, 0xA7, 0xD9, 0x95, 0xB9, 0x44,\n\t0xD8, 0xB0, 0xD9, 0xB0, 0x7D, 0x44, 0xD8, 0xB1,\n\t// Bytes 4440 - 447f\n\t0xD9, 0xB0, 0x7D, 0x44, 0xD9, 0x80, 0xD9, 0x8B,\n\t0x5D, 0x44, 0xD9, 0x80, 0xD9, 0x8E, 0x69, 0x44,\n\t0xD9, 0x80, 0xD9, 0x8F, 0x6D, 0x44, 0xD9, 0x80,\n\t0xD9, 0x90, 0x71, 0x44, 0xD9, 0x80, 0xD9, 0x91,\n\t0x75, 0x44, 0xD9, 0x80, 0xD9, 0x92, 0x79, 0x44,\n\t0xD9, 0x87, 0xD9, 0xB0, 0x7D, 0x44, 0xD9, 0x88,\n\t0xD9, 0x94, 0xCD, 0x44, 0xD9, 0x89, 0xD9, 0xB0,\n\t0x7D, 0x44, 0xD9, 0x8A, 0xD9, 0x94, 0xCD, 0x44,\n\t// Bytes 4480 - 44bf\n\t0xDB, 0x92, 0xD9, 0x94, 0xCD, 0x44, 0xDB, 0x95,\n\t0xD9, 0x94, 0xCD, 0x45, 0x20, 0xCC, 0x88, 0xCC,\n\t0x80, 0xCE, 0x45, 0x20, 0xCC, 0x88, 0xCC, 0x81,\n\t0xCE, 0x45, 0x20, 0xCC, 0x88, 0xCD, 0x82, 0xCE,\n\t0x45, 0x20, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x45,\n\t0x20, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x45, 0x20,\n\t0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x45, 0x20, 0xCC,\n\t0x94, 0xCC, 0x80, 0xCE, 0x45, 0x20, 0xCC, 0x94,\n\t// Bytes 44c0 - 44ff\n\t0xCC, 0x81, 0xCE, 0x45, 0x20, 0xCC, 0x94, 0xCD,\n\t0x82, 0xCE, 0x45, 0x20, 0xD9, 0x8C, 0xD9, 0x91,\n\t0x76, 0x45, 0x20, 0xD9, 0x8D, 0xD9, 0x91, 0x76,\n\t0x45, 0x20, 0xD9, 0x8E, 0xD9, 0x91, 0x76, 0x45,\n\t0x20, 0xD9, 0x8F, 0xD9, 0x91, 0x76, 0x45, 0x20,\n\t0xD9, 0x90, 0xD9, 0x91, 0x76, 0x45, 0x20, 0xD9,\n\t0x91, 0xD9, 0xB0, 0x7E, 0x45, 0xE2, 0xAB, 0x9D,\n\t0xCC, 0xB8, 0x05, 0x46, 0xCE, 0xB9, 0xCC, 0x88,\n\t// Bytes 4500 - 453f\n\t0xCC, 0x81, 0xCE, 0x46, 0xCF, 0x85, 0xCC, 0x88,\n\t0xCC, 0x81, 0xCE, 0x46, 0xD7, 0xA9, 0xD6, 0xBC,\n\t0xD7, 0x81, 0x52, 0x46, 0xD7, 0xA9, 0xD6, 0xBC,\n\t0xD7, 0x82, 0x56, 0x46, 0xD9, 0x80, 0xD9, 0x8E,\n\t0xD9, 0x91, 0x76, 0x46, 0xD9, 0x80, 0xD9, 0x8F,\n\t0xD9, 0x91, 0x76, 0x46, 0xD9, 0x80, 0xD9, 0x90,\n\t0xD9, 0x91, 0x76, 0x46, 0xE0, 0xA4, 0x95, 0xE0,\n\t0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4, 0x96, 0xE0,\n\t// Bytes 4540 - 457f\n\t0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4, 0x97, 0xE0,\n\t0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4, 0x9C, 0xE0,\n\t0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4, 0xA1, 0xE0,\n\t0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4, 0xA2, 0xE0,\n\t0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4, 0xAB, 0xE0,\n\t0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4, 0xAF, 0xE0,\n\t0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA6, 0xA1, 0xE0,\n\t0xA6, 0xBC, 0x0D, 0x46, 0xE0, 0xA6, 0xA2, 0xE0,\n\t// Bytes 4580 - 45bf\n\t0xA6, 0xBC, 0x0D, 0x46, 0xE0, 0xA6, 0xAF, 0xE0,\n\t0xA6, 0xBC, 0x0D, 0x46, 0xE0, 0xA8, 0x96, 0xE0,\n\t0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8, 0x97, 0xE0,\n\t0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8, 0x9C, 0xE0,\n\t0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8, 0xAB, 0xE0,\n\t0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8, 0xB2, 0xE0,\n\t0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8, 0xB8, 0xE0,\n\t0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xAC, 0xA1, 0xE0,\n\t// Bytes 45c0 - 45ff\n\t0xAC, 0xBC, 0x0D, 0x46, 0xE0, 0xAC, 0xA2, 0xE0,\n\t0xAC, 0xBC, 0x0D, 0x46, 0xE0, 0xBE, 0xB2, 0xE0,\n\t0xBE, 0x80, 0xA1, 0x46, 0xE0, 0xBE, 0xB3, 0xE0,\n\t0xBE, 0x80, 0xA1, 0x46, 0xE3, 0x83, 0x86, 0xE3,\n\t0x82, 0x99, 0x11, 0x48, 0xF0, 0x9D, 0x85, 0x97,\n\t0xF0, 0x9D, 0x85, 0xA5, 0xB1, 0x48, 0xF0, 0x9D,\n\t0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xB1, 0x48,\n\t0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5,\n\t// Bytes 4600 - 463f\n\t0xB1, 0x48, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, 0x9D,\n\t0x85, 0xA5, 0xB1, 0x49, 0xE0, 0xBE, 0xB2, 0xE0,\n\t0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0xA2, 0x49, 0xE0,\n\t0xBE, 0xB3, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80,\n\t0xA2, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D,\n\t0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xB2, 0x4C,\n\t0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5,\n\t0xF0, 0x9D, 0x85, 0xAF, 0xB2, 0x4C, 0xF0, 0x9D,\n\t// Bytes 4640 - 467f\n\t0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D,\n\t0x85, 0xB0, 0xB2, 0x4C, 0xF0, 0x9D, 0x85, 0x98,\n\t0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB1,\n\t0xB2, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D,\n\t0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB2, 0xB2, 0x4C,\n\t0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5,\n\t0xF0, 0x9D, 0x85, 0xAE, 0xB2, 0x4C, 0xF0, 0x9D,\n\t0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D,\n\t// Bytes 4680 - 46bf\n\t0x85, 0xAF, 0xB2, 0x4C, 0xF0, 0x9D, 0x86, 0xBA,\n\t0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE,\n\t0xB2, 0x4C, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, 0x9D,\n\t0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xB2, 0x83,\n\t0x41, 0xCC, 0x82, 0xCD, 0x83, 0x41, 0xCC, 0x86,\n\t0xCD, 0x83, 0x41, 0xCC, 0x87, 0xCD, 0x83, 0x41,\n\t0xCC, 0x88, 0xCD, 0x83, 0x41, 0xCC, 0x8A, 0xCD,\n\t0x83, 0x41, 0xCC, 0xA3, 0xB9, 0x83, 0x43, 0xCC,\n\t// Bytes 46c0 - 46ff\n\t0xA7, 0xA9, 0x83, 0x45, 0xCC, 0x82, 0xCD, 0x83,\n\t0x45, 0xCC, 0x84, 0xCD, 0x83, 0x45, 0xCC, 0xA3,\n\t0xB9, 0x83, 0x45, 0xCC, 0xA7, 0xA9, 0x83, 0x49,\n\t0xCC, 0x88, 0xCD, 0x83, 0x4C, 0xCC, 0xA3, 0xB9,\n\t0x83, 0x4F, 0xCC, 0x82, 0xCD, 0x83, 0x4F, 0xCC,\n\t0x83, 0xCD, 0x83, 0x4F, 0xCC, 0x84, 0xCD, 0x83,\n\t0x4F, 0xCC, 0x87, 0xCD, 0x83, 0x4F, 0xCC, 0x88,\n\t0xCD, 0x83, 0x4F, 0xCC, 0x9B, 0xB1, 0x83, 0x4F,\n\t// Bytes 4700 - 473f\n\t0xCC, 0xA3, 0xB9, 0x83, 0x4F, 0xCC, 0xA8, 0xA9,\n\t0x83, 0x52, 0xCC, 0xA3, 0xB9, 0x83, 0x53, 0xCC,\n\t0x81, 0xCD, 0x83, 0x53, 0xCC, 0x8C, 0xCD, 0x83,\n\t0x53, 0xCC, 0xA3, 0xB9, 0x83, 0x55, 0xCC, 0x83,\n\t0xCD, 0x83, 0x55, 0xCC, 0x84, 0xCD, 0x83, 0x55,\n\t0xCC, 0x88, 0xCD, 0x83, 0x55, 0xCC, 0x9B, 0xB1,\n\t0x83, 0x61, 0xCC, 0x82, 0xCD, 0x83, 0x61, 0xCC,\n\t0x86, 0xCD, 0x83, 0x61, 0xCC, 0x87, 0xCD, 0x83,\n\t// Bytes 4740 - 477f\n\t0x61, 0xCC, 0x88, 0xCD, 0x83, 0x61, 0xCC, 0x8A,\n\t0xCD, 0x83, 0x61, 0xCC, 0xA3, 0xB9, 0x83, 0x63,\n\t0xCC, 0xA7, 0xA9, 0x83, 0x65, 0xCC, 0x82, 0xCD,\n\t0x83, 0x65, 0xCC, 0x84, 0xCD, 0x83, 0x65, 0xCC,\n\t0xA3, 0xB9, 0x83, 0x65, 0xCC, 0xA7, 0xA9, 0x83,\n\t0x69, 0xCC, 0x88, 0xCD, 0x83, 0x6C, 0xCC, 0xA3,\n\t0xB9, 0x83, 0x6F, 0xCC, 0x82, 0xCD, 0x83, 0x6F,\n\t0xCC, 0x83, 0xCD, 0x83, 0x6F, 0xCC, 0x84, 0xCD,\n\t// Bytes 4780 - 47bf\n\t0x83, 0x6F, 0xCC, 0x87, 0xCD, 0x83, 0x6F, 0xCC,\n\t0x88, 0xCD, 0x83, 0x6F, 0xCC, 0x9B, 0xB1, 0x83,\n\t0x6F, 0xCC, 0xA3, 0xB9, 0x83, 0x6F, 0xCC, 0xA8,\n\t0xA9, 0x83, 0x72, 0xCC, 0xA3, 0xB9, 0x83, 0x73,\n\t0xCC, 0x81, 0xCD, 0x83, 0x73, 0xCC, 0x8C, 0xCD,\n\t0x83, 0x73, 0xCC, 0xA3, 0xB9, 0x83, 0x75, 0xCC,\n\t0x83, 0xCD, 0x83, 0x75, 0xCC, 0x84, 0xCD, 0x83,\n\t0x75, 0xCC, 0x88, 0xCD, 0x83, 0x75, 0xCC, 0x9B,\n\t// Bytes 47c0 - 47ff\n\t0xB1, 0x84, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x84,\n\t0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x84, 0xCE, 0x95,\n\t0xCC, 0x93, 0xCD, 0x84, 0xCE, 0x95, 0xCC, 0x94,\n\t0xCD, 0x84, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x84,\n\t0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x84, 0xCE, 0x99,\n\t0xCC, 0x93, 0xCD, 0x84, 0xCE, 0x99, 0xCC, 0x94,\n\t0xCD, 0x84, 0xCE, 0x9F, 0xCC, 0x93, 0xCD, 0x84,\n\t0xCE, 0x9F, 0xCC, 0x94, 0xCD, 0x84, 0xCE, 0xA5,\n\t// Bytes 4800 - 483f\n\t0xCC, 0x94, 0xCD, 0x84, 0xCE, 0xA9, 0xCC, 0x93,\n\t0xCD, 0x84, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x84,\n\t0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x84, 0xCE, 0xB1,\n\t0xCC, 0x81, 0xCD, 0x84, 0xCE, 0xB1, 0xCC, 0x93,\n\t0xCD, 0x84, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x84,\n\t0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x84, 0xCE, 0xB5,\n\t0xCC, 0x93, 0xCD, 0x84, 0xCE, 0xB5, 0xCC, 0x94,\n\t0xCD, 0x84, 0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x84,\n\t// Bytes 4840 - 487f\n\t0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x84, 0xCE, 0xB7,\n\t0xCC, 0x93, 0xCD, 0x84, 0xCE, 0xB7, 0xCC, 0x94,\n\t0xCD, 0x84, 0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x84,\n\t0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x84, 0xCE, 0xB9,\n\t0xCC, 0x93, 0xCD, 0x84, 0xCE, 0xB9, 0xCC, 0x94,\n\t0xCD, 0x84, 0xCE, 0xBF, 0xCC, 0x93, 0xCD, 0x84,\n\t0xCE, 0xBF, 0xCC, 0x94, 0xCD, 0x84, 0xCF, 0x85,\n\t0xCC, 0x88, 0xCD, 0x84, 0xCF, 0x85, 0xCC, 0x93,\n\t// Bytes 4880 - 48bf\n\t0xCD, 0x84, 0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x84,\n\t0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x84, 0xCF, 0x89,\n\t0xCC, 0x81, 0xCD, 0x84, 0xCF, 0x89, 0xCC, 0x93,\n\t0xCD, 0x84, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x84,\n\t0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x86, 0xCE, 0x91,\n\t0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0x91,\n\t0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0x91,\n\t0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0x91,\n\t// Bytes 48c0 - 48ff\n\t0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0x91,\n\t0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0x91,\n\t0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0x97,\n\t0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0x97,\n\t0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0x97,\n\t0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0x97,\n\t0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0x97,\n\t0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0x97,\n\t// Bytes 4900 - 493f\n\t0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0xA9,\n\t0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0xA9,\n\t0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0xA9,\n\t0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0xA9,\n\t0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0xA9,\n\t0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0xA9,\n\t0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0xB1,\n\t0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0xB1,\n\t// Bytes 4940 - 497f\n\t0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0xB1,\n\t0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0xB1,\n\t0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0xB1,\n\t0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0xB1,\n\t0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0xB7,\n\t0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0xB7,\n\t0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0xB7,\n\t0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0xB7,\n\t// Bytes 4980 - 49bf\n\t0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0xB7,\n\t0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0xB7,\n\t0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86, 0xCF, 0x89,\n\t0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86, 0xCF, 0x89,\n\t0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86, 0xCF, 0x89,\n\t0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86, 0xCF, 0x89,\n\t0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86, 0xCF, 0x89,\n\t0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86, 0xCF, 0x89,\n\t// Bytes 49c0 - 49ff\n\t0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x42, 0xCC, 0x80,\n\t0xCD, 0x33, 0x42, 0xCC, 0x81, 0xCD, 0x33, 0x42,\n\t0xCC, 0x93, 0xCD, 0x33, 0x43, 0xE1, 0x85, 0xA1,\n\t0x01, 0x00, 0x43, 0xE1, 0x85, 0xA2, 0x01, 0x00,\n\t0x43, 0xE1, 0x85, 0xA3, 0x01, 0x00, 0x43, 0xE1,\n\t0x85, 0xA4, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA5,\n\t0x01, 0x00, 0x43, 0xE1, 0x85, 0xA6, 0x01, 0x00,\n\t0x43, 0xE1, 0x85, 0xA7, 0x01, 0x00, 0x43, 0xE1,\n\t// Bytes 4a00 - 4a3f\n\t0x85, 0xA8, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA9,\n\t0x01, 0x00, 0x43, 0xE1, 0x85, 0xAA, 0x01, 0x00,\n\t0x43, 0xE1, 0x85, 0xAB, 0x01, 0x00, 0x43, 0xE1,\n\t0x85, 0xAC, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAD,\n\t0x01, 0x00, 0x43, 0xE1, 0x85, 0xAE, 0x01, 0x00,\n\t0x43, 0xE1, 0x85, 0xAF, 0x01, 0x00, 0x43, 0xE1,\n\t0x85, 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB1,\n\t0x01, 0x00, 0x43, 0xE1, 0x85, 0xB2, 0x01, 0x00,\n\t// Bytes 4a40 - 4a7f\n\t0x43, 0xE1, 0x85, 0xB3, 0x01, 0x00, 0x43, 0xE1,\n\t0x85, 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB5,\n\t0x01, 0x00, 0x43, 0xE1, 0x86, 0xAA, 0x01, 0x00,\n\t0x43, 0xE1, 0x86, 0xAC, 0x01, 0x00, 0x43, 0xE1,\n\t0x86, 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB0,\n\t0x01, 0x00, 0x43, 0xE1, 0x86, 0xB1, 0x01, 0x00,\n\t0x43, 0xE1, 0x86, 0xB2, 0x01, 0x00, 0x43, 0xE1,\n\t0x86, 0xB3, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB4,\n\t// Bytes 4a80 - 4abf\n\t0x01, 0x00, 0x43, 0xE1, 0x86, 0xB5, 0x01, 0x00,\n\t0x44, 0xCC, 0x88, 0xCC, 0x81, 0xCE, 0x33, 0x43,\n\t0xE3, 0x82, 0x99, 0x11, 0x04, 0x43, 0xE3, 0x82,\n\t0x9A, 0x11, 0x04, 0x46, 0xE0, 0xBD, 0xB1, 0xE0,\n\t0xBD, 0xB2, 0xA2, 0x27, 0x46, 0xE0, 0xBD, 0xB1,\n\t0xE0, 0xBD, 0xB4, 0xA6, 0x27, 0x46, 0xE0, 0xBD,\n\t0xB1, 0xE0, 0xBE, 0x80, 0xA2, 0x27, 0x00, 0x01,\n}\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfcTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfcTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfcValues[c0]\n\t}\n\ti := nfcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfcTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfcTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfcValues[c0]\n\t}\n\ti := nfcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// nfcTrie. Total size: 10680 bytes (10.43 KiB). Checksum: a555db76d4becdd2.\ntype nfcTrie struct{}\n\nfunc newNfcTrie(i int) *nfcTrie {\n\treturn &nfcTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *nfcTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 46:\n\t\treturn uint16(nfcValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 46\n\t\treturn uint16(nfcSparse.lookup(n, b))\n\t}\n}\n\n// nfcValues: 48 blocks, 3072 entries, 6144 bytes\n// The third block is the zero block.\nvar nfcValues = [3072]uint16{\n\t// Block 0x0, offset 0x0\n\t0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000,\n\t// Block 0x1, offset 0x40\n\t0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000,\n\t0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000,\n\t0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000,\n\t0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000,\n\t0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000,\n\t0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000,\n\t0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000,\n\t0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000,\n\t0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000,\n\t0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x2f86, 0xc1: 0x2f8b, 0xc2: 0x469f, 0xc3: 0x2f90, 0xc4: 0x46ae, 0xc5: 0x46b3,\n\t0xc6: 0xa000, 0xc7: 0x46bd, 0xc8: 0x2ff9, 0xc9: 0x2ffe, 0xca: 0x46c2, 0xcb: 0x3012,\n\t0xcc: 0x3085, 0xcd: 0x308a, 0xce: 0x308f, 0xcf: 0x46d6, 0xd1: 0x311b,\n\t0xd2: 0x313e, 0xd3: 0x3143, 0xd4: 0x46e0, 0xd5: 0x46e5, 0xd6: 0x46f4,\n\t0xd8: 0xa000, 0xd9: 0x31ca, 0xda: 0x31cf, 0xdb: 0x31d4, 0xdc: 0x4726, 0xdd: 0x324c,\n\t0xe0: 0x3292, 0xe1: 0x3297, 0xe2: 0x4730, 0xe3: 0x329c,\n\t0xe4: 0x473f, 0xe5: 0x4744, 0xe6: 0xa000, 0xe7: 0x474e, 0xe8: 0x3305, 0xe9: 0x330a,\n\t0xea: 0x4753, 0xeb: 0x331e, 0xec: 0x3396, 0xed: 0x339b, 0xee: 0x33a0, 0xef: 0x4767,\n\t0xf1: 0x342c, 0xf2: 0x344f, 0xf3: 0x3454, 0xf4: 0x4771, 0xf5: 0x4776,\n\t0xf6: 0x4785, 0xf8: 0xa000, 0xf9: 0x34e0, 0xfa: 0x34e5, 0xfb: 0x34ea,\n\t0xfc: 0x47b7, 0xfd: 0x3567, 0xff: 0x3580,\n\t// Block 0x4, offset 0x100\n\t0x100: 0x2f95, 0x101: 0x32a1, 0x102: 0x46a4, 0x103: 0x4735, 0x104: 0x2fb3, 0x105: 0x32bf,\n\t0x106: 0x2fc7, 0x107: 0x32d3, 0x108: 0x2fcc, 0x109: 0x32d8, 0x10a: 0x2fd1, 0x10b: 0x32dd,\n\t0x10c: 0x2fd6, 0x10d: 0x32e2, 0x10e: 0x2fe0, 0x10f: 0x32ec,\n\t0x112: 0x46c7, 0x113: 0x4758, 0x114: 0x3008, 0x115: 0x3314, 0x116: 0x300d, 0x117: 0x3319,\n\t0x118: 0x302b, 0x119: 0x3337, 0x11a: 0x301c, 0x11b: 0x3328, 0x11c: 0x3044, 0x11d: 0x3350,\n\t0x11e: 0x304e, 0x11f: 0x335a, 0x120: 0x3053, 0x121: 0x335f, 0x122: 0x305d, 0x123: 0x3369,\n\t0x124: 0x3062, 0x125: 0x336e, 0x128: 0x3094, 0x129: 0x33a5,\n\t0x12a: 0x3099, 0x12b: 0x33aa, 0x12c: 0x309e, 0x12d: 0x33af, 0x12e: 0x30c1, 0x12f: 0x33cd,\n\t0x130: 0x30a3, 0x134: 0x30cb, 0x135: 0x33d7,\n\t0x136: 0x30df, 0x137: 0x33f0, 0x139: 0x30e9, 0x13a: 0x33fa, 0x13b: 0x30f3,\n\t0x13c: 0x3404, 0x13d: 0x30ee, 0x13e: 0x33ff,\n\t// Block 0x5, offset 0x140\n\t0x143: 0x3116, 0x144: 0x3427, 0x145: 0x312f,\n\t0x146: 0x3440, 0x147: 0x3125, 0x148: 0x3436,\n\t0x14c: 0x46ea, 0x14d: 0x477b, 0x14e: 0x3148, 0x14f: 0x3459, 0x150: 0x3152, 0x151: 0x3463,\n\t0x154: 0x3170, 0x155: 0x3481, 0x156: 0x3189, 0x157: 0x349a,\n\t0x158: 0x317a, 0x159: 0x348b, 0x15a: 0x470d, 0x15b: 0x479e, 0x15c: 0x3193, 0x15d: 0x34a4,\n\t0x15e: 0x31a2, 0x15f: 0x34b3, 0x160: 0x4712, 0x161: 0x47a3, 0x162: 0x31bb, 0x163: 0x34d1,\n\t0x164: 0x31ac, 0x165: 0x34c2, 0x168: 0x471c, 0x169: 0x47ad,\n\t0x16a: 0x4721, 0x16b: 0x47b2, 0x16c: 0x31d9, 0x16d: 0x34ef, 0x16e: 0x31e3, 0x16f: 0x34f9,\n\t0x170: 0x31e8, 0x171: 0x34fe, 0x172: 0x3206, 0x173: 0x351c, 0x174: 0x3229, 0x175: 0x353f,\n\t0x176: 0x3251, 0x177: 0x356c, 0x178: 0x3265, 0x179: 0x3274, 0x17a: 0x3594, 0x17b: 0x327e,\n\t0x17c: 0x359e, 0x17d: 0x3283, 0x17e: 0x35a3, 0x17f: 0xa000,\n\t// Block 0x6, offset 0x180\n\t0x184: 0x8100, 0x185: 0x8100,\n\t0x186: 0x8100,\n\t0x18d: 0x2f9f, 0x18e: 0x32ab, 0x18f: 0x30ad, 0x190: 0x33b9, 0x191: 0x3157,\n\t0x192: 0x3468, 0x193: 0x31ed, 0x194: 0x3503, 0x195: 0x39e6, 0x196: 0x3b75, 0x197: 0x39df,\n\t0x198: 0x3b6e, 0x199: 0x39ed, 0x19a: 0x3b7c, 0x19b: 0x39d8, 0x19c: 0x3b67,\n\t0x19e: 0x38c7, 0x19f: 0x3a56, 0x1a0: 0x38c0, 0x1a1: 0x3a4f, 0x1a2: 0x35ca, 0x1a3: 0x35dc,\n\t0x1a6: 0x3058, 0x1a7: 0x3364, 0x1a8: 0x30d5, 0x1a9: 0x33e6,\n\t0x1aa: 0x4703, 0x1ab: 0x4794, 0x1ac: 0x39a7, 0x1ad: 0x3b36, 0x1ae: 0x35ee, 0x1af: 0x35f4,\n\t0x1b0: 0x33dc, 0x1b4: 0x303f, 0x1b5: 0x334b,\n\t0x1b8: 0x3111, 0x1b9: 0x3422, 0x1ba: 0x38ce, 0x1bb: 0x3a5d,\n\t0x1bc: 0x35c4, 0x1bd: 0x35d6, 0x1be: 0x35d0, 0x1bf: 0x35e2,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x2fa4, 0x1c1: 0x32b0, 0x1c2: 0x2fa9, 0x1c3: 0x32b5, 0x1c4: 0x3021, 0x1c5: 0x332d,\n\t0x1c6: 0x3026, 0x1c7: 0x3332, 0x1c8: 0x30b2, 0x1c9: 0x33be, 0x1ca: 0x30b7, 0x1cb: 0x33c3,\n\t0x1cc: 0x315c, 0x1cd: 0x346d, 0x1ce: 0x3161, 0x1cf: 0x3472, 0x1d0: 0x317f, 0x1d1: 0x3490,\n\t0x1d2: 0x3184, 0x1d3: 0x3495, 0x1d4: 0x31f2, 0x1d5: 0x3508, 0x1d6: 0x31f7, 0x1d7: 0x350d,\n\t0x1d8: 0x319d, 0x1d9: 0x34ae, 0x1da: 0x31b6, 0x1db: 0x34cc,\n\t0x1de: 0x3071, 0x1df: 0x337d,\n\t0x1e6: 0x46a9, 0x1e7: 0x473a, 0x1e8: 0x46d1, 0x1e9: 0x4762,\n\t0x1ea: 0x3976, 0x1eb: 0x3b05, 0x1ec: 0x3953, 0x1ed: 0x3ae2, 0x1ee: 0x46ef, 0x1ef: 0x4780,\n\t0x1f0: 0x396f, 0x1f1: 0x3afe, 0x1f2: 0x325b, 0x1f3: 0x3576,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x9933, 0x201: 0x9933, 0x202: 0x9933, 0x203: 0x9933, 0x204: 0x9933, 0x205: 0x8133,\n\t0x206: 0x9933, 0x207: 0x9933, 0x208: 0x9933, 0x209: 0x9933, 0x20a: 0x9933, 0x20b: 0x9933,\n\t0x20c: 0x9933, 0x20d: 0x8133, 0x20e: 0x8133, 0x20f: 0x9933, 0x210: 0x8133, 0x211: 0x9933,\n\t0x212: 0x8133, 0x213: 0x9933, 0x214: 0x9933, 0x215: 0x8134, 0x216: 0x812e, 0x217: 0x812e,\n\t0x218: 0x812e, 0x219: 0x812e, 0x21a: 0x8134, 0x21b: 0x992c, 0x21c: 0x812e, 0x21d: 0x812e,\n\t0x21e: 0x812e, 0x21f: 0x812e, 0x220: 0x812e, 0x221: 0x812a, 0x222: 0x812a, 0x223: 0x992e,\n\t0x224: 0x992e, 0x225: 0x992e, 0x226: 0x992e, 0x227: 0x992a, 0x228: 0x992a, 0x229: 0x812e,\n\t0x22a: 0x812e, 0x22b: 0x812e, 0x22c: 0x812e, 0x22d: 0x992e, 0x22e: 0x992e, 0x22f: 0x812e,\n\t0x230: 0x992e, 0x231: 0x992e, 0x232: 0x812e, 0x233: 0x812e, 0x234: 0x8101, 0x235: 0x8101,\n\t0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812e, 0x23a: 0x812e, 0x23b: 0x812e,\n\t0x23c: 0x812e, 0x23d: 0x8133, 0x23e: 0x8133, 0x23f: 0x8133,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x49c5, 0x241: 0x49ca, 0x242: 0x9933, 0x243: 0x49cf, 0x244: 0x4a88, 0x245: 0x9937,\n\t0x246: 0x8133, 0x247: 0x812e, 0x248: 0x812e, 0x249: 0x812e, 0x24a: 0x8133, 0x24b: 0x8133,\n\t0x24c: 0x8133, 0x24d: 0x812e, 0x24e: 0x812e, 0x250: 0x8133, 0x251: 0x8133,\n\t0x252: 0x8133, 0x253: 0x812e, 0x254: 0x812e, 0x255: 0x812e, 0x256: 0x812e, 0x257: 0x8133,\n\t0x258: 0x8134, 0x259: 0x812e, 0x25a: 0x812e, 0x25b: 0x8133, 0x25c: 0x8135, 0x25d: 0x8136,\n\t0x25e: 0x8136, 0x25f: 0x8135, 0x260: 0x8136, 0x261: 0x8136, 0x262: 0x8135, 0x263: 0x8133,\n\t0x264: 0x8133, 0x265: 0x8133, 0x266: 0x8133, 0x267: 0x8133, 0x268: 0x8133, 0x269: 0x8133,\n\t0x26a: 0x8133, 0x26b: 0x8133, 0x26c: 0x8133, 0x26d: 0x8133, 0x26e: 0x8133, 0x26f: 0x8133,\n\t0x274: 0x0173,\n\t0x27a: 0x8100,\n\t0x27e: 0x0037,\n\t// Block 0xa, offset 0x280\n\t0x284: 0x8100, 0x285: 0x35b8,\n\t0x286: 0x3600, 0x287: 0x00ce, 0x288: 0x361e, 0x289: 0x362a, 0x28a: 0x363c,\n\t0x28c: 0x365a, 0x28e: 0x366c, 0x28f: 0x368a, 0x290: 0x3e1f, 0x291: 0xa000,\n\t0x295: 0xa000, 0x297: 0xa000,\n\t0x299: 0xa000,\n\t0x29f: 0xa000, 0x2a1: 0xa000,\n\t0x2a5: 0xa000, 0x2a9: 0xa000,\n\t0x2aa: 0x364e, 0x2ab: 0x367e, 0x2ac: 0x4815, 0x2ad: 0x36ae, 0x2ae: 0x483f, 0x2af: 0x36c0,\n\t0x2b0: 0x3e87, 0x2b1: 0xa000, 0x2b5: 0xa000,\n\t0x2b7: 0xa000, 0x2b9: 0xa000,\n\t0x2bf: 0xa000,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x3738, 0x2c1: 0x3744, 0x2c3: 0x3732,\n\t0x2c6: 0xa000, 0x2c7: 0x3720,\n\t0x2cc: 0x3774, 0x2cd: 0x375c, 0x2ce: 0x3786, 0x2d0: 0xa000,\n\t0x2d3: 0xa000, 0x2d5: 0xa000, 0x2d6: 0xa000, 0x2d7: 0xa000,\n\t0x2d8: 0xa000, 0x2d9: 0x3768, 0x2da: 0xa000,\n\t0x2de: 0xa000, 0x2e3: 0xa000,\n\t0x2e7: 0xa000,\n\t0x2eb: 0xa000, 0x2ed: 0xa000,\n\t0x2f0: 0xa000, 0x2f3: 0xa000, 0x2f5: 0xa000,\n\t0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x37ec, 0x2fa: 0xa000,\n\t0x2fe: 0xa000,\n\t// Block 0xc, offset 0x300\n\t0x301: 0x374a, 0x302: 0x37ce,\n\t0x310: 0x3726, 0x311: 0x37aa,\n\t0x312: 0x372c, 0x313: 0x37b0, 0x316: 0x373e, 0x317: 0x37c2,\n\t0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x3840, 0x31b: 0x3846, 0x31c: 0x3750, 0x31d: 0x37d4,\n\t0x31e: 0x3756, 0x31f: 0x37da, 0x322: 0x3762, 0x323: 0x37e6,\n\t0x324: 0x376e, 0x325: 0x37f2, 0x326: 0x377a, 0x327: 0x37fe, 0x328: 0xa000, 0x329: 0xa000,\n\t0x32a: 0x384c, 0x32b: 0x3852, 0x32c: 0x37a4, 0x32d: 0x3828, 0x32e: 0x3780, 0x32f: 0x3804,\n\t0x330: 0x378c, 0x331: 0x3810, 0x332: 0x3792, 0x333: 0x3816, 0x334: 0x3798, 0x335: 0x381c,\n\t0x338: 0x379e, 0x339: 0x3822,\n\t// Block 0xd, offset 0x340\n\t0x351: 0x812e,\n\t0x352: 0x8133, 0x353: 0x8133, 0x354: 0x8133, 0x355: 0x8133, 0x356: 0x812e, 0x357: 0x8133,\n\t0x358: 0x8133, 0x359: 0x8133, 0x35a: 0x812f, 0x35b: 0x812e, 0x35c: 0x8133, 0x35d: 0x8133,\n\t0x35e: 0x8133, 0x35f: 0x8133, 0x360: 0x8133, 0x361: 0x8133, 0x362: 0x812e, 0x363: 0x812e,\n\t0x364: 0x812e, 0x365: 0x812e, 0x366: 0x812e, 0x367: 0x812e, 0x368: 0x8133, 0x369: 0x8133,\n\t0x36a: 0x812e, 0x36b: 0x8133, 0x36c: 0x8133, 0x36d: 0x812f, 0x36e: 0x8132, 0x36f: 0x8133,\n\t0x370: 0x8106, 0x371: 0x8107, 0x372: 0x8108, 0x373: 0x8109, 0x374: 0x810a, 0x375: 0x810b,\n\t0x376: 0x810c, 0x377: 0x810d, 0x378: 0x810e, 0x379: 0x810f, 0x37a: 0x810f, 0x37b: 0x8110,\n\t0x37c: 0x8111, 0x37d: 0x8112, 0x37f: 0x8113,\n\t// Block 0xe, offset 0x380\n\t0x388: 0xa000, 0x38a: 0xa000, 0x38b: 0x8117,\n\t0x38c: 0x8118, 0x38d: 0x8119, 0x38e: 0x811a, 0x38f: 0x811b, 0x390: 0x811c, 0x391: 0x811d,\n\t0x392: 0x811e, 0x393: 0x9933, 0x394: 0x9933, 0x395: 0x992e, 0x396: 0x812e, 0x397: 0x8133,\n\t0x398: 0x8133, 0x399: 0x8133, 0x39a: 0x8133, 0x39b: 0x8133, 0x39c: 0x812e, 0x39d: 0x8133,\n\t0x39e: 0x8133, 0x39f: 0x812e,\n\t0x3b0: 0x811f,\n\t// Block 0xf, offset 0x3c0\n\t0x3d3: 0x812e, 0x3d4: 0x8133, 0x3d5: 0x8133, 0x3d6: 0x8133, 0x3d7: 0x8133,\n\t0x3d8: 0x8133, 0x3d9: 0x8133, 0x3da: 0x8133, 0x3db: 0x8133, 0x3dc: 0x8133, 0x3dd: 0x8133,\n\t0x3de: 0x8133, 0x3df: 0x8133, 0x3e0: 0x8133, 0x3e1: 0x8133, 0x3e3: 0x812e,\n\t0x3e4: 0x8133, 0x3e5: 0x8133, 0x3e6: 0x812e, 0x3e7: 0x8133, 0x3e8: 0x8133, 0x3e9: 0x812e,\n\t0x3ea: 0x8133, 0x3eb: 0x8133, 0x3ec: 0x8133, 0x3ed: 0x812e, 0x3ee: 0x812e, 0x3ef: 0x812e,\n\t0x3f0: 0x8117, 0x3f1: 0x8118, 0x3f2: 0x8119, 0x3f3: 0x8133, 0x3f4: 0x8133, 0x3f5: 0x8133,\n\t0x3f6: 0x812e, 0x3f7: 0x8133, 0x3f8: 0x8133, 0x3f9: 0x812e, 0x3fa: 0x812e, 0x3fb: 0x8133,\n\t0x3fc: 0x8133, 0x3fd: 0x8133, 0x3fe: 0x8133, 0x3ff: 0x8133,\n\t// Block 0x10, offset 0x400\n\t0x405: 0xa000,\n\t0x406: 0x2d33, 0x407: 0xa000, 0x408: 0x2d3b, 0x409: 0xa000, 0x40a: 0x2d43, 0x40b: 0xa000,\n\t0x40c: 0x2d4b, 0x40d: 0xa000, 0x40e: 0x2d53, 0x411: 0xa000,\n\t0x412: 0x2d5b,\n\t0x434: 0x8103, 0x435: 0x9900,\n\t0x43a: 0xa000, 0x43b: 0x2d63,\n\t0x43c: 0xa000, 0x43d: 0x2d6b, 0x43e: 0xa000, 0x43f: 0xa000,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x8133, 0x441: 0x8133, 0x442: 0x812e, 0x443: 0x8133, 0x444: 0x8133, 0x445: 0x8133,\n\t0x446: 0x8133, 0x447: 0x8133, 0x448: 0x8133, 0x449: 0x8133, 0x44a: 0x812e, 0x44b: 0x8133,\n\t0x44c: 0x8133, 0x44d: 0x8136, 0x44e: 0x812b, 0x44f: 0x812e, 0x450: 0x812a, 0x451: 0x8133,\n\t0x452: 0x8133, 0x453: 0x8133, 0x454: 0x8133, 0x455: 0x8133, 0x456: 0x8133, 0x457: 0x8133,\n\t0x458: 0x8133, 0x459: 0x8133, 0x45a: 0x8133, 0x45b: 0x8133, 0x45c: 0x8133, 0x45d: 0x8133,\n\t0x45e: 0x8133, 0x45f: 0x8133, 0x460: 0x8133, 0x461: 0x8133, 0x462: 0x8133, 0x463: 0x8133,\n\t0x464: 0x8133, 0x465: 0x8133, 0x466: 0x8133, 0x467: 0x8133, 0x468: 0x8133, 0x469: 0x8133,\n\t0x46a: 0x8133, 0x46b: 0x8133, 0x46c: 0x8133, 0x46d: 0x8133, 0x46e: 0x8133, 0x46f: 0x8133,\n\t0x470: 0x8133, 0x471: 0x8133, 0x472: 0x8133, 0x473: 0x8133, 0x474: 0x8133, 0x475: 0x8133,\n\t0x476: 0x8134, 0x477: 0x8132, 0x478: 0x8132, 0x479: 0x812e, 0x47b: 0x8133,\n\t0x47c: 0x8135, 0x47d: 0x812e, 0x47e: 0x8133, 0x47f: 0x812e,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x2fae, 0x481: 0x32ba, 0x482: 0x2fb8, 0x483: 0x32c4, 0x484: 0x2fbd, 0x485: 0x32c9,\n\t0x486: 0x2fc2, 0x487: 0x32ce, 0x488: 0x38e3, 0x489: 0x3a72, 0x48a: 0x2fdb, 0x48b: 0x32e7,\n\t0x48c: 0x2fe5, 0x48d: 0x32f1, 0x48e: 0x2ff4, 0x48f: 0x3300, 0x490: 0x2fea, 0x491: 0x32f6,\n\t0x492: 0x2fef, 0x493: 0x32fb, 0x494: 0x3906, 0x495: 0x3a95, 0x496: 0x390d, 0x497: 0x3a9c,\n\t0x498: 0x3030, 0x499: 0x333c, 0x49a: 0x3035, 0x49b: 0x3341, 0x49c: 0x391b, 0x49d: 0x3aaa,\n\t0x49e: 0x303a, 0x49f: 0x3346, 0x4a0: 0x3049, 0x4a1: 0x3355, 0x4a2: 0x3067, 0x4a3: 0x3373,\n\t0x4a4: 0x3076, 0x4a5: 0x3382, 0x4a6: 0x306c, 0x4a7: 0x3378, 0x4a8: 0x307b, 0x4a9: 0x3387,\n\t0x4aa: 0x3080, 0x4ab: 0x338c, 0x4ac: 0x30c6, 0x4ad: 0x33d2, 0x4ae: 0x3922, 0x4af: 0x3ab1,\n\t0x4b0: 0x30d0, 0x4b1: 0x33e1, 0x4b2: 0x30da, 0x4b3: 0x33eb, 0x4b4: 0x30e4, 0x4b5: 0x33f5,\n\t0x4b6: 0x46db, 0x4b7: 0x476c, 0x4b8: 0x3929, 0x4b9: 0x3ab8, 0x4ba: 0x30fd, 0x4bb: 0x340e,\n\t0x4bc: 0x30f8, 0x4bd: 0x3409, 0x4be: 0x3102, 0x4bf: 0x3413,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x3107, 0x4c1: 0x3418, 0x4c2: 0x310c, 0x4c3: 0x341d, 0x4c4: 0x3120, 0x4c5: 0x3431,\n\t0x4c6: 0x312a, 0x4c7: 0x343b, 0x4c8: 0x3139, 0x4c9: 0x344a, 0x4ca: 0x3134, 0x4cb: 0x3445,\n\t0x4cc: 0x394c, 0x4cd: 0x3adb, 0x4ce: 0x395a, 0x4cf: 0x3ae9, 0x4d0: 0x3961, 0x4d1: 0x3af0,\n\t0x4d2: 0x3968, 0x4d3: 0x3af7, 0x4d4: 0x3166, 0x4d5: 0x3477, 0x4d6: 0x316b, 0x4d7: 0x347c,\n\t0x4d8: 0x3175, 0x4d9: 0x3486, 0x4da: 0x4708, 0x4db: 0x4799, 0x4dc: 0x39ae, 0x4dd: 0x3b3d,\n\t0x4de: 0x318e, 0x4df: 0x349f, 0x4e0: 0x3198, 0x4e1: 0x34a9, 0x4e2: 0x4717, 0x4e3: 0x47a8,\n\t0x4e4: 0x39b5, 0x4e5: 0x3b44, 0x4e6: 0x39bc, 0x4e7: 0x3b4b, 0x4e8: 0x39c3, 0x4e9: 0x3b52,\n\t0x4ea: 0x31a7, 0x4eb: 0x34b8, 0x4ec: 0x31b1, 0x4ed: 0x34c7, 0x4ee: 0x31c5, 0x4ef: 0x34db,\n\t0x4f0: 0x31c0, 0x4f1: 0x34d6, 0x4f2: 0x3201, 0x4f3: 0x3517, 0x4f4: 0x3210, 0x4f5: 0x3526,\n\t0x4f6: 0x320b, 0x4f7: 0x3521, 0x4f8: 0x39ca, 0x4f9: 0x3b59, 0x4fa: 0x39d1, 0x4fb: 0x3b60,\n\t0x4fc: 0x3215, 0x4fd: 0x352b, 0x4fe: 0x321a, 0x4ff: 0x3530,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x321f, 0x501: 0x3535, 0x502: 0x3224, 0x503: 0x353a, 0x504: 0x3233, 0x505: 0x3549,\n\t0x506: 0x322e, 0x507: 0x3544, 0x508: 0x3238, 0x509: 0x3553, 0x50a: 0x323d, 0x50b: 0x3558,\n\t0x50c: 0x3242, 0x50d: 0x355d, 0x50e: 0x3260, 0x50f: 0x357b, 0x510: 0x3279, 0x511: 0x3599,\n\t0x512: 0x3288, 0x513: 0x35a8, 0x514: 0x328d, 0x515: 0x35ad, 0x516: 0x3391, 0x517: 0x34bd,\n\t0x518: 0x354e, 0x519: 0x358a, 0x51b: 0x35e8,\n\t0x520: 0x46b8, 0x521: 0x4749, 0x522: 0x2f9a, 0x523: 0x32a6,\n\t0x524: 0x388f, 0x525: 0x3a1e, 0x526: 0x3888, 0x527: 0x3a17, 0x528: 0x389d, 0x529: 0x3a2c,\n\t0x52a: 0x3896, 0x52b: 0x3a25, 0x52c: 0x38d5, 0x52d: 0x3a64, 0x52e: 0x38ab, 0x52f: 0x3a3a,\n\t0x530: 0x38a4, 0x531: 0x3a33, 0x532: 0x38b9, 0x533: 0x3a48, 0x534: 0x38b2, 0x535: 0x3a41,\n\t0x536: 0x38dc, 0x537: 0x3a6b, 0x538: 0x46cc, 0x539: 0x475d, 0x53a: 0x3017, 0x53b: 0x3323,\n\t0x53c: 0x3003, 0x53d: 0x330f, 0x53e: 0x38f1, 0x53f: 0x3a80,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x38ea, 0x541: 0x3a79, 0x542: 0x38ff, 0x543: 0x3a8e, 0x544: 0x38f8, 0x545: 0x3a87,\n\t0x546: 0x3914, 0x547: 0x3aa3, 0x548: 0x30a8, 0x549: 0x33b4, 0x54a: 0x30bc, 0x54b: 0x33c8,\n\t0x54c: 0x46fe, 0x54d: 0x478f, 0x54e: 0x314d, 0x54f: 0x345e, 0x550: 0x3937, 0x551: 0x3ac6,\n\t0x552: 0x3930, 0x553: 0x3abf, 0x554: 0x3945, 0x555: 0x3ad4, 0x556: 0x393e, 0x557: 0x3acd,\n\t0x558: 0x39a0, 0x559: 0x3b2f, 0x55a: 0x3984, 0x55b: 0x3b13, 0x55c: 0x397d, 0x55d: 0x3b0c,\n\t0x55e: 0x3992, 0x55f: 0x3b21, 0x560: 0x398b, 0x561: 0x3b1a, 0x562: 0x3999, 0x563: 0x3b28,\n\t0x564: 0x31fc, 0x565: 0x3512, 0x566: 0x31de, 0x567: 0x34f4, 0x568: 0x39fb, 0x569: 0x3b8a,\n\t0x56a: 0x39f4, 0x56b: 0x3b83, 0x56c: 0x3a09, 0x56d: 0x3b98, 0x56e: 0x3a02, 0x56f: 0x3b91,\n\t0x570: 0x3a10, 0x571: 0x3b9f, 0x572: 0x3247, 0x573: 0x3562, 0x574: 0x326f, 0x575: 0x358f,\n\t0x576: 0x326a, 0x577: 0x3585, 0x578: 0x3256, 0x579: 0x3571,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x481b, 0x581: 0x4821, 0x582: 0x4935, 0x583: 0x494d, 0x584: 0x493d, 0x585: 0x4955,\n\t0x586: 0x4945, 0x587: 0x495d, 0x588: 0x47c1, 0x589: 0x47c7, 0x58a: 0x48a5, 0x58b: 0x48bd,\n\t0x58c: 0x48ad, 0x58d: 0x48c5, 0x58e: 0x48b5, 0x58f: 0x48cd, 0x590: 0x482d, 0x591: 0x4833,\n\t0x592: 0x3dcf, 0x593: 0x3ddf, 0x594: 0x3dd7, 0x595: 0x3de7,\n\t0x598: 0x47cd, 0x599: 0x47d3, 0x59a: 0x3cff, 0x59b: 0x3d0f, 0x59c: 0x3d07, 0x59d: 0x3d17,\n\t0x5a0: 0x4845, 0x5a1: 0x484b, 0x5a2: 0x4965, 0x5a3: 0x497d,\n\t0x5a4: 0x496d, 0x5a5: 0x4985, 0x5a6: 0x4975, 0x5a7: 0x498d, 0x5a8: 0x47d9, 0x5a9: 0x47df,\n\t0x5aa: 0x48d5, 0x5ab: 0x48ed, 0x5ac: 0x48dd, 0x5ad: 0x48f5, 0x5ae: 0x48e5, 0x5af: 0x48fd,\n\t0x5b0: 0x485d, 0x5b1: 0x4863, 0x5b2: 0x3e2f, 0x5b3: 0x3e47, 0x5b4: 0x3e37, 0x5b5: 0x3e4f,\n\t0x5b6: 0x3e3f, 0x5b7: 0x3e57, 0x5b8: 0x47e5, 0x5b9: 0x47eb, 0x5ba: 0x3d2f, 0x5bb: 0x3d47,\n\t0x5bc: 0x3d37, 0x5bd: 0x3d4f, 0x5be: 0x3d3f, 0x5bf: 0x3d57,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x4869, 0x5c1: 0x486f, 0x5c2: 0x3e5f, 0x5c3: 0x3e6f, 0x5c4: 0x3e67, 0x5c5: 0x3e77,\n\t0x5c8: 0x47f1, 0x5c9: 0x47f7, 0x5ca: 0x3d5f, 0x5cb: 0x3d6f,\n\t0x5cc: 0x3d67, 0x5cd: 0x3d77, 0x5d0: 0x487b, 0x5d1: 0x4881,\n\t0x5d2: 0x3e97, 0x5d3: 0x3eaf, 0x5d4: 0x3e9f, 0x5d5: 0x3eb7, 0x5d6: 0x3ea7, 0x5d7: 0x3ebf,\n\t0x5d9: 0x47fd, 0x5db: 0x3d7f, 0x5dd: 0x3d87,\n\t0x5df: 0x3d8f, 0x5e0: 0x4893, 0x5e1: 0x4899, 0x5e2: 0x4995, 0x5e3: 0x49ad,\n\t0x5e4: 0x499d, 0x5e5: 0x49b5, 0x5e6: 0x49a5, 0x5e7: 0x49bd, 0x5e8: 0x4803, 0x5e9: 0x4809,\n\t0x5ea: 0x4905, 0x5eb: 0x491d, 0x5ec: 0x490d, 0x5ed: 0x4925, 0x5ee: 0x4915, 0x5ef: 0x492d,\n\t0x5f0: 0x480f, 0x5f1: 0x4335, 0x5f2: 0x36a8, 0x5f3: 0x433b, 0x5f4: 0x4839, 0x5f5: 0x4341,\n\t0x5f6: 0x36ba, 0x5f7: 0x4347, 0x5f8: 0x36d8, 0x5f9: 0x434d, 0x5fa: 0x36f0, 0x5fb: 0x4353,\n\t0x5fc: 0x4887, 0x5fd: 0x4359,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x3db7, 0x601: 0x3dbf, 0x602: 0x419b, 0x603: 0x41b9, 0x604: 0x41a5, 0x605: 0x41c3,\n\t0x606: 0x41af, 0x607: 0x41cd, 0x608: 0x3cef, 0x609: 0x3cf7, 0x60a: 0x40e7, 0x60b: 0x4105,\n\t0x60c: 0x40f1, 0x60d: 0x410f, 0x60e: 0x40fb, 0x60f: 0x4119, 0x610: 0x3dff, 0x611: 0x3e07,\n\t0x612: 0x41d7, 0x613: 0x41f5, 0x614: 0x41e1, 0x615: 0x41ff, 0x616: 0x41eb, 0x617: 0x4209,\n\t0x618: 0x3d1f, 0x619: 0x3d27, 0x61a: 0x4123, 0x61b: 0x4141, 0x61c: 0x412d, 0x61d: 0x414b,\n\t0x61e: 0x4137, 0x61f: 0x4155, 0x620: 0x3ed7, 0x621: 0x3edf, 0x622: 0x4213, 0x623: 0x4231,\n\t0x624: 0x421d, 0x625: 0x423b, 0x626: 0x4227, 0x627: 0x4245, 0x628: 0x3d97, 0x629: 0x3d9f,\n\t0x62a: 0x415f, 0x62b: 0x417d, 0x62c: 0x4169, 0x62d: 0x4187, 0x62e: 0x4173, 0x62f: 0x4191,\n\t0x630: 0x369c, 0x631: 0x3696, 0x632: 0x3da7, 0x633: 0x36a2, 0x634: 0x3daf,\n\t0x636: 0x4827, 0x637: 0x3dc7, 0x638: 0x360c, 0x639: 0x3606, 0x63a: 0x35fa, 0x63b: 0x4305,\n\t0x63c: 0x3612, 0x63d: 0x8100, 0x63e: 0x01d6, 0x63f: 0xa100,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x8100, 0x641: 0x35be, 0x642: 0x3def, 0x643: 0x36b4, 0x644: 0x3df7,\n\t0x646: 0x4851, 0x647: 0x3e0f, 0x648: 0x3618, 0x649: 0x430b, 0x64a: 0x3624, 0x64b: 0x4311,\n\t0x64c: 0x3630, 0x64d: 0x3ba6, 0x64e: 0x3bad, 0x64f: 0x3bb4, 0x650: 0x36cc, 0x651: 0x36c6,\n\t0x652: 0x3e17, 0x653: 0x44fb, 0x656: 0x36d2, 0x657: 0x3e27,\n\t0x658: 0x3648, 0x659: 0x3642, 0x65a: 0x3636, 0x65b: 0x4317, 0x65d: 0x3bbb,\n\t0x65e: 0x3bc2, 0x65f: 0x3bc9, 0x660: 0x3702, 0x661: 0x36fc, 0x662: 0x3e7f, 0x663: 0x4503,\n\t0x664: 0x36e4, 0x665: 0x36ea, 0x666: 0x3708, 0x667: 0x3e8f, 0x668: 0x3678, 0x669: 0x3672,\n\t0x66a: 0x3666, 0x66b: 0x4323, 0x66c: 0x3660, 0x66d: 0x35b2, 0x66e: 0x42ff, 0x66f: 0x0081,\n\t0x672: 0x3ec7, 0x673: 0x370e, 0x674: 0x3ecf,\n\t0x676: 0x489f, 0x677: 0x3ee7, 0x678: 0x3654, 0x679: 0x431d, 0x67a: 0x3684, 0x67b: 0x432f,\n\t0x67c: 0x3690, 0x67d: 0x426d, 0x67e: 0xa100,\n\t// Block 0x1a, offset 0x680\n\t0x681: 0x3c1d, 0x683: 0xa000, 0x684: 0x3c24, 0x685: 0xa000,\n\t0x687: 0x3c2b, 0x688: 0xa000, 0x689: 0x3c32,\n\t0x68d: 0xa000,\n\t0x6a0: 0x2f7c, 0x6a1: 0xa000, 0x6a2: 0x3c40,\n\t0x6a4: 0xa000, 0x6a5: 0xa000,\n\t0x6ad: 0x3c39, 0x6ae: 0x2f77, 0x6af: 0x2f81,\n\t0x6b0: 0x3c47, 0x6b1: 0x3c4e, 0x6b2: 0xa000, 0x6b3: 0xa000, 0x6b4: 0x3c55, 0x6b5: 0x3c5c,\n\t0x6b6: 0xa000, 0x6b7: 0xa000, 0x6b8: 0x3c63, 0x6b9: 0x3c6a, 0x6ba: 0xa000, 0x6bb: 0xa000,\n\t0x6bc: 0xa000, 0x6bd: 0xa000,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x3c71, 0x6c1: 0x3c78, 0x6c2: 0xa000, 0x6c3: 0xa000, 0x6c4: 0x3c8d, 0x6c5: 0x3c94,\n\t0x6c6: 0xa000, 0x6c7: 0xa000, 0x6c8: 0x3c9b, 0x6c9: 0x3ca2,\n\t0x6d1: 0xa000,\n\t0x6d2: 0xa000,\n\t0x6e2: 0xa000,\n\t0x6e8: 0xa000, 0x6e9: 0xa000,\n\t0x6eb: 0xa000, 0x6ec: 0x3cb7, 0x6ed: 0x3cbe, 0x6ee: 0x3cc5, 0x6ef: 0x3ccc,\n\t0x6f2: 0xa000, 0x6f3: 0xa000, 0x6f4: 0xa000, 0x6f5: 0xa000,\n\t// Block 0x1c, offset 0x700\n\t0x706: 0xa000, 0x70b: 0xa000,\n\t0x70c: 0x3f1f, 0x70d: 0xa000, 0x70e: 0x3f27, 0x70f: 0xa000, 0x710: 0x3f2f, 0x711: 0xa000,\n\t0x712: 0x3f37, 0x713: 0xa000, 0x714: 0x3f3f, 0x715: 0xa000, 0x716: 0x3f47, 0x717: 0xa000,\n\t0x718: 0x3f4f, 0x719: 0xa000, 0x71a: 0x3f57, 0x71b: 0xa000, 0x71c: 0x3f5f, 0x71d: 0xa000,\n\t0x71e: 0x3f67, 0x71f: 0xa000, 0x720: 0x3f6f, 0x721: 0xa000, 0x722: 0x3f77,\n\t0x724: 0xa000, 0x725: 0x3f7f, 0x726: 0xa000, 0x727: 0x3f87, 0x728: 0xa000, 0x729: 0x3f8f,\n\t0x72f: 0xa000,\n\t0x730: 0x3f97, 0x731: 0x3f9f, 0x732: 0xa000, 0x733: 0x3fa7, 0x734: 0x3faf, 0x735: 0xa000,\n\t0x736: 0x3fb7, 0x737: 0x3fbf, 0x738: 0xa000, 0x739: 0x3fc7, 0x73a: 0x3fcf, 0x73b: 0xa000,\n\t0x73c: 0x3fd7, 0x73d: 0x3fdf,\n\t// Block 0x1d, offset 0x740\n\t0x754: 0x3f17,\n\t0x759: 0x9904, 0x75a: 0x9904, 0x75b: 0x8100, 0x75c: 0x8100, 0x75d: 0xa000,\n\t0x75e: 0x3fe7,\n\t0x766: 0xa000,\n\t0x76b: 0xa000, 0x76c: 0x3ff7, 0x76d: 0xa000, 0x76e: 0x3fff, 0x76f: 0xa000,\n\t0x770: 0x4007, 0x771: 0xa000, 0x772: 0x400f, 0x773: 0xa000, 0x774: 0x4017, 0x775: 0xa000,\n\t0x776: 0x401f, 0x777: 0xa000, 0x778: 0x4027, 0x779: 0xa000, 0x77a: 0x402f, 0x77b: 0xa000,\n\t0x77c: 0x4037, 0x77d: 0xa000, 0x77e: 0x403f, 0x77f: 0xa000,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0x4047, 0x781: 0xa000, 0x782: 0x404f, 0x784: 0xa000, 0x785: 0x4057,\n\t0x786: 0xa000, 0x787: 0x405f, 0x788: 0xa000, 0x789: 0x4067,\n\t0x78f: 0xa000, 0x790: 0x406f, 0x791: 0x4077,\n\t0x792: 0xa000, 0x793: 0x407f, 0x794: 0x4087, 0x795: 0xa000, 0x796: 0x408f, 0x797: 0x4097,\n\t0x798: 0xa000, 0x799: 0x409f, 0x79a: 0x40a7, 0x79b: 0xa000, 0x79c: 0x40af, 0x79d: 0x40b7,\n\t0x7af: 0xa000,\n\t0x7b0: 0xa000, 0x7b1: 0xa000, 0x7b2: 0xa000, 0x7b4: 0x3fef,\n\t0x7b7: 0x40bf, 0x7b8: 0x40c7, 0x7b9: 0x40cf, 0x7ba: 0x40d7,\n\t0x7bd: 0xa000, 0x7be: 0x40df,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0x137a, 0x7c1: 0x0cfe, 0x7c2: 0x13d6, 0x7c3: 0x13a2, 0x7c4: 0x0e5a, 0x7c5: 0x06ee,\n\t0x7c6: 0x08e2, 0x7c7: 0x162e, 0x7c8: 0x162e, 0x7c9: 0x0a0e, 0x7ca: 0x1462, 0x7cb: 0x0946,\n\t0x7cc: 0x0a0a, 0x7cd: 0x0bf2, 0x7ce: 0x0fd2, 0x7cf: 0x1162, 0x7d0: 0x129a, 0x7d1: 0x12d6,\n\t0x7d2: 0x130a, 0x7d3: 0x141e, 0x7d4: 0x0d76, 0x7d5: 0x0e02, 0x7d6: 0x0eae, 0x7d7: 0x0f46,\n\t0x7d8: 0x1262, 0x7d9: 0x144a, 0x7da: 0x1576, 0x7db: 0x0712, 0x7dc: 0x08b6, 0x7dd: 0x0d8a,\n\t0x7de: 0x0ed2, 0x7df: 0x1296, 0x7e0: 0x15c6, 0x7e1: 0x0ab6, 0x7e2: 0x0e7a, 0x7e3: 0x1286,\n\t0x7e4: 0x131a, 0x7e5: 0x0c26, 0x7e6: 0x11be, 0x7e7: 0x12e2, 0x7e8: 0x0b22, 0x7e9: 0x0d12,\n\t0x7ea: 0x0e1a, 0x7eb: 0x0f1e, 0x7ec: 0x142a, 0x7ed: 0x0752, 0x7ee: 0x07ea, 0x7ef: 0x0856,\n\t0x7f0: 0x0c8e, 0x7f1: 0x0d82, 0x7f2: 0x0ece, 0x7f3: 0x0ff2, 0x7f4: 0x117a, 0x7f5: 0x128e,\n\t0x7f6: 0x12a6, 0x7f7: 0x13ca, 0x7f8: 0x14f2, 0x7f9: 0x15a6, 0x7fa: 0x15c2, 0x7fb: 0x102e,\n\t0x7fc: 0x106e, 0x7fd: 0x1126, 0x7fe: 0x1246, 0x7ff: 0x147e,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x15ce, 0x801: 0x134e, 0x802: 0x09ca, 0x803: 0x0b3e, 0x804: 0x10de, 0x805: 0x119e,\n\t0x806: 0x0f02, 0x807: 0x1036, 0x808: 0x139a, 0x809: 0x14ea, 0x80a: 0x09c6, 0x80b: 0x0a92,\n\t0x80c: 0x0d7a, 0x80d: 0x0e2e, 0x80e: 0x0e62, 0x80f: 0x1116, 0x810: 0x113e, 0x811: 0x14aa,\n\t0x812: 0x0852, 0x813: 0x11aa, 0x814: 0x07f6, 0x815: 0x07f2, 0x816: 0x109a, 0x817: 0x112a,\n\t0x818: 0x125e, 0x819: 0x14b2, 0x81a: 0x136a, 0x81b: 0x0c2a, 0x81c: 0x0d76, 0x81d: 0x135a,\n\t0x81e: 0x06fa, 0x81f: 0x0a66, 0x820: 0x0b96, 0x821: 0x0f32, 0x822: 0x0fb2, 0x823: 0x0876,\n\t0x824: 0x103e, 0x825: 0x0762, 0x826: 0x0b7a, 0x827: 0x06da, 0x828: 0x0dee, 0x829: 0x0ca6,\n\t0x82a: 0x1112, 0x82b: 0x08ca, 0x82c: 0x09b6, 0x82d: 0x0ffe, 0x82e: 0x1266, 0x82f: 0x133e,\n\t0x830: 0x0dba, 0x831: 0x13fa, 0x832: 0x0de6, 0x833: 0x0c3a, 0x834: 0x121e, 0x835: 0x0c5a,\n\t0x836: 0x0fae, 0x837: 0x072e, 0x838: 0x07aa, 0x839: 0x07ee, 0x83a: 0x0d56, 0x83b: 0x10fe,\n\t0x83c: 0x11f6, 0x83d: 0x134a, 0x83e: 0x145e, 0x83f: 0x085e,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x0912, 0x841: 0x0a1a, 0x842: 0x0b32, 0x843: 0x0cc2, 0x844: 0x0e7e, 0x845: 0x1042,\n\t0x846: 0x149a, 0x847: 0x157e, 0x848: 0x15d2, 0x849: 0x15ea, 0x84a: 0x083a, 0x84b: 0x0cf6,\n\t0x84c: 0x0da6, 0x84d: 0x13ee, 0x84e: 0x0afe, 0x84f: 0x0bda, 0x850: 0x0bf6, 0x851: 0x0c86,\n\t0x852: 0x0e6e, 0x853: 0x0eba, 0x854: 0x0f6a, 0x855: 0x108e, 0x856: 0x1132, 0x857: 0x1196,\n\t0x858: 0x13de, 0x859: 0x126e, 0x85a: 0x1406, 0x85b: 0x1482, 0x85c: 0x0812, 0x85d: 0x083e,\n\t0x85e: 0x0926, 0x85f: 0x0eaa, 0x860: 0x12f6, 0x861: 0x133e, 0x862: 0x0b1e, 0x863: 0x0b8e,\n\t0x864: 0x0c52, 0x865: 0x0db2, 0x866: 0x10da, 0x867: 0x0f26, 0x868: 0x073e, 0x869: 0x0982,\n\t0x86a: 0x0a66, 0x86b: 0x0aca, 0x86c: 0x0b9a, 0x86d: 0x0f42, 0x86e: 0x0f5e, 0x86f: 0x116e,\n\t0x870: 0x118e, 0x871: 0x1466, 0x872: 0x14e6, 0x873: 0x14f6, 0x874: 0x1532, 0x875: 0x0756,\n\t0x876: 0x1082, 0x877: 0x1452, 0x878: 0x14ce, 0x879: 0x0bb2, 0x87a: 0x071a, 0x87b: 0x077a,\n\t0x87c: 0x0a6a, 0x87d: 0x0a8a, 0x87e: 0x0cb2, 0x87f: 0x0d76,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x0ec6, 0x881: 0x0fce, 0x882: 0x127a, 0x883: 0x141a, 0x884: 0x1626, 0x885: 0x0ce6,\n\t0x886: 0x14a6, 0x887: 0x0836, 0x888: 0x0d32, 0x889: 0x0d3e, 0x88a: 0x0e12, 0x88b: 0x0e4a,\n\t0x88c: 0x0f4e, 0x88d: 0x0faa, 0x88e: 0x102a, 0x88f: 0x110e, 0x890: 0x153e, 0x891: 0x07b2,\n\t0x892: 0x0c06, 0x893: 0x14b6, 0x894: 0x076a, 0x895: 0x0aae, 0x896: 0x0e32, 0x897: 0x13e2,\n\t0x898: 0x0b6a, 0x899: 0x0bba, 0x89a: 0x0d46, 0x89b: 0x0f32, 0x89c: 0x14be, 0x89d: 0x081a,\n\t0x89e: 0x0902, 0x89f: 0x0a9a, 0x8a0: 0x0cd6, 0x8a1: 0x0d22, 0x8a2: 0x0d62, 0x8a3: 0x0df6,\n\t0x8a4: 0x0f4a, 0x8a5: 0x0fbe, 0x8a6: 0x115a, 0x8a7: 0x12fa, 0x8a8: 0x1306, 0x8a9: 0x145a,\n\t0x8aa: 0x14da, 0x8ab: 0x0886, 0x8ac: 0x0e4e, 0x8ad: 0x0906, 0x8ae: 0x0eca, 0x8af: 0x0f6e,\n\t0x8b0: 0x128a, 0x8b1: 0x14c2, 0x8b2: 0x15ae, 0x8b3: 0x15d6, 0x8b4: 0x0d3a, 0x8b5: 0x0e2a,\n\t0x8b6: 0x11c6, 0x8b7: 0x10ba, 0x8b8: 0x10c6, 0x8b9: 0x10ea, 0x8ba: 0x0f1a, 0x8bb: 0x0ea2,\n\t0x8bc: 0x1366, 0x8bd: 0x0736, 0x8be: 0x122e, 0x8bf: 0x081e,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x080e, 0x8c1: 0x0b0e, 0x8c2: 0x0c2e, 0x8c3: 0x10f6, 0x8c4: 0x0a56, 0x8c5: 0x0e06,\n\t0x8c6: 0x0cf2, 0x8c7: 0x13ea, 0x8c8: 0x12ea, 0x8c9: 0x14ae, 0x8ca: 0x1326, 0x8cb: 0x0b2a,\n\t0x8cc: 0x078a, 0x8cd: 0x095e, 0x8d0: 0x09b2,\n\t0x8d2: 0x0ce2, 0x8d5: 0x07fa, 0x8d6: 0x0f22, 0x8d7: 0x0fe6,\n\t0x8d8: 0x104a, 0x8d9: 0x1066, 0x8da: 0x106a, 0x8db: 0x107e, 0x8dc: 0x14fe, 0x8dd: 0x10ee,\n\t0x8de: 0x1172, 0x8e0: 0x1292, 0x8e2: 0x1356,\n\t0x8e5: 0x140a, 0x8e6: 0x1436,\n\t0x8ea: 0x1552, 0x8eb: 0x1556, 0x8ec: 0x155a, 0x8ed: 0x15be, 0x8ee: 0x142e, 0x8ef: 0x14ca,\n\t0x8f0: 0x075a, 0x8f1: 0x077e, 0x8f2: 0x0792, 0x8f3: 0x084e, 0x8f4: 0x085a, 0x8f5: 0x089a,\n\t0x8f6: 0x094e, 0x8f7: 0x096a, 0x8f8: 0x0972, 0x8f9: 0x09ae, 0x8fa: 0x09ba, 0x8fb: 0x0a96,\n\t0x8fc: 0x0a9e, 0x8fd: 0x0ba6, 0x8fe: 0x0bce, 0x8ff: 0x0bd6,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x0bee, 0x901: 0x0c9a, 0x902: 0x0cca, 0x903: 0x0cea, 0x904: 0x0d5a, 0x905: 0x0e1e,\n\t0x906: 0x0e3a, 0x907: 0x0e6a, 0x908: 0x0ebe, 0x909: 0x0ede, 0x90a: 0x0f52, 0x90b: 0x1032,\n\t0x90c: 0x104e, 0x90d: 0x1056, 0x90e: 0x1052, 0x90f: 0x105a, 0x910: 0x105e, 0x911: 0x1062,\n\t0x912: 0x1076, 0x913: 0x107a, 0x914: 0x109e, 0x915: 0x10b2, 0x916: 0x10ce, 0x917: 0x1132,\n\t0x918: 0x113a, 0x919: 0x1142, 0x91a: 0x1156, 0x91b: 0x117e, 0x91c: 0x11ce, 0x91d: 0x1202,\n\t0x91e: 0x1202, 0x91f: 0x126a, 0x920: 0x1312, 0x921: 0x132a, 0x922: 0x135e, 0x923: 0x1362,\n\t0x924: 0x13a6, 0x925: 0x13aa, 0x926: 0x1402, 0x927: 0x140a, 0x928: 0x14de, 0x929: 0x1522,\n\t0x92a: 0x153a, 0x92b: 0x0b9e, 0x92c: 0x1721, 0x92d: 0x11e6,\n\t0x930: 0x06e2, 0x931: 0x07e6, 0x932: 0x07a6, 0x933: 0x074e, 0x934: 0x078e, 0x935: 0x07ba,\n\t0x936: 0x084a, 0x937: 0x0866, 0x938: 0x094e, 0x939: 0x093a, 0x93a: 0x094a, 0x93b: 0x0966,\n\t0x93c: 0x09b2, 0x93d: 0x09c2, 0x93e: 0x0a06, 0x93f: 0x0a12,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x0a2e, 0x941: 0x0a3e, 0x942: 0x0b26, 0x943: 0x0b2e, 0x944: 0x0b5e, 0x945: 0x0b7e,\n\t0x946: 0x0bae, 0x947: 0x0bc6, 0x948: 0x0bb6, 0x949: 0x0bd6, 0x94a: 0x0bca, 0x94b: 0x0bee,\n\t0x94c: 0x0c0a, 0x94d: 0x0c62, 0x94e: 0x0c6e, 0x94f: 0x0c76, 0x950: 0x0c9e, 0x951: 0x0ce2,\n\t0x952: 0x0d12, 0x953: 0x0d16, 0x954: 0x0d2a, 0x955: 0x0daa, 0x956: 0x0dba, 0x957: 0x0e12,\n\t0x958: 0x0e5e, 0x959: 0x0e56, 0x95a: 0x0e6a, 0x95b: 0x0e86, 0x95c: 0x0ebe, 0x95d: 0x1016,\n\t0x95e: 0x0ee2, 0x95f: 0x0f16, 0x960: 0x0f22, 0x961: 0x0f62, 0x962: 0x0f7e, 0x963: 0x0fa2,\n\t0x964: 0x0fc6, 0x965: 0x0fca, 0x966: 0x0fe6, 0x967: 0x0fea, 0x968: 0x0ffa, 0x969: 0x100e,\n\t0x96a: 0x100a, 0x96b: 0x103a, 0x96c: 0x10b6, 0x96d: 0x10ce, 0x96e: 0x10e6, 0x96f: 0x111e,\n\t0x970: 0x1132, 0x971: 0x114e, 0x972: 0x117e, 0x973: 0x1232, 0x974: 0x125a, 0x975: 0x12ce,\n\t0x976: 0x1316, 0x977: 0x1322, 0x978: 0x132a, 0x979: 0x1342, 0x97a: 0x1356, 0x97b: 0x1346,\n\t0x97c: 0x135e, 0x97d: 0x135a, 0x97e: 0x1352, 0x97f: 0x1362,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x136e, 0x981: 0x13aa, 0x982: 0x13e6, 0x983: 0x1416, 0x984: 0x144e, 0x985: 0x146e,\n\t0x986: 0x14ba, 0x987: 0x14de, 0x988: 0x14fe, 0x989: 0x1512, 0x98a: 0x1522, 0x98b: 0x152e,\n\t0x98c: 0x153a, 0x98d: 0x158e, 0x98e: 0x162e, 0x98f: 0x16b8, 0x990: 0x16b3, 0x991: 0x16e5,\n\t0x992: 0x060a, 0x993: 0x0632, 0x994: 0x0636, 0x995: 0x1767, 0x996: 0x1794, 0x997: 0x180c,\n\t0x998: 0x161a, 0x999: 0x162a,\n\t// Block 0x27, offset 0x9c0\n\t0x9c0: 0x06fe, 0x9c1: 0x06f6, 0x9c2: 0x0706, 0x9c3: 0x164a, 0x9c4: 0x074a, 0x9c5: 0x075a,\n\t0x9c6: 0x075e, 0x9c7: 0x0766, 0x9c8: 0x076e, 0x9c9: 0x0772, 0x9ca: 0x077e, 0x9cb: 0x0776,\n\t0x9cc: 0x05b6, 0x9cd: 0x165e, 0x9ce: 0x0792, 0x9cf: 0x0796, 0x9d0: 0x079a, 0x9d1: 0x07b6,\n\t0x9d2: 0x164f, 0x9d3: 0x05ba, 0x9d4: 0x07a2, 0x9d5: 0x07c2, 0x9d6: 0x1659, 0x9d7: 0x07d2,\n\t0x9d8: 0x07da, 0x9d9: 0x073a, 0x9da: 0x07e2, 0x9db: 0x07e6, 0x9dc: 0x1834, 0x9dd: 0x0802,\n\t0x9de: 0x080a, 0x9df: 0x05c2, 0x9e0: 0x0822, 0x9e1: 0x0826, 0x9e2: 0x082e, 0x9e3: 0x0832,\n\t0x9e4: 0x05c6, 0x9e5: 0x084a, 0x9e6: 0x084e, 0x9e7: 0x085a, 0x9e8: 0x0866, 0x9e9: 0x086a,\n\t0x9ea: 0x086e, 0x9eb: 0x0876, 0x9ec: 0x0896, 0x9ed: 0x089a, 0x9ee: 0x08a2, 0x9ef: 0x08b2,\n\t0x9f0: 0x08ba, 0x9f1: 0x08be, 0x9f2: 0x08be, 0x9f3: 0x08be, 0x9f4: 0x166d, 0x9f5: 0x0e96,\n\t0x9f6: 0x08d2, 0x9f7: 0x08da, 0x9f8: 0x1672, 0x9f9: 0x08e6, 0x9fa: 0x08ee, 0x9fb: 0x08f6,\n\t0x9fc: 0x091e, 0x9fd: 0x090a, 0x9fe: 0x0916, 0x9ff: 0x091a,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x0922, 0xa01: 0x092a, 0xa02: 0x092e, 0xa03: 0x0936, 0xa04: 0x093e, 0xa05: 0x0942,\n\t0xa06: 0x0942, 0xa07: 0x094a, 0xa08: 0x0952, 0xa09: 0x0956, 0xa0a: 0x0962, 0xa0b: 0x0986,\n\t0xa0c: 0x096a, 0xa0d: 0x098a, 0xa0e: 0x096e, 0xa0f: 0x0976, 0xa10: 0x080e, 0xa11: 0x09d2,\n\t0xa12: 0x099a, 0xa13: 0x099e, 0xa14: 0x09a2, 0xa15: 0x0996, 0xa16: 0x09aa, 0xa17: 0x09a6,\n\t0xa18: 0x09be, 0xa19: 0x1677, 0xa1a: 0x09da, 0xa1b: 0x09de, 0xa1c: 0x09e6, 0xa1d: 0x09f2,\n\t0xa1e: 0x09fa, 0xa1f: 0x0a16, 0xa20: 0x167c, 0xa21: 0x1681, 0xa22: 0x0a22, 0xa23: 0x0a26,\n\t0xa24: 0x0a2a, 0xa25: 0x0a1e, 0xa26: 0x0a32, 0xa27: 0x05ca, 0xa28: 0x05ce, 0xa29: 0x0a3a,\n\t0xa2a: 0x0a42, 0xa2b: 0x0a42, 0xa2c: 0x1686, 0xa2d: 0x0a5e, 0xa2e: 0x0a62, 0xa2f: 0x0a66,\n\t0xa30: 0x0a6e, 0xa31: 0x168b, 0xa32: 0x0a76, 0xa33: 0x0a7a, 0xa34: 0x0b52, 0xa35: 0x0a82,\n\t0xa36: 0x05d2, 0xa37: 0x0a8e, 0xa38: 0x0a9e, 0xa39: 0x0aaa, 0xa3a: 0x0aa6, 0xa3b: 0x1695,\n\t0xa3c: 0x0ab2, 0xa3d: 0x169a, 0xa3e: 0x0abe, 0xa3f: 0x0aba,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0x0ac2, 0xa41: 0x0ad2, 0xa42: 0x0ad6, 0xa43: 0x05d6, 0xa44: 0x0ae6, 0xa45: 0x0aee,\n\t0xa46: 0x0af2, 0xa47: 0x0af6, 0xa48: 0x05da, 0xa49: 0x169f, 0xa4a: 0x05de, 0xa4b: 0x0b12,\n\t0xa4c: 0x0b16, 0xa4d: 0x0b1a, 0xa4e: 0x0b22, 0xa4f: 0x1866, 0xa50: 0x0b3a, 0xa51: 0x16a9,\n\t0xa52: 0x16a9, 0xa53: 0x11da, 0xa54: 0x0b4a, 0xa55: 0x0b4a, 0xa56: 0x05e2, 0xa57: 0x16cc,\n\t0xa58: 0x179e, 0xa59: 0x0b5a, 0xa5a: 0x0b62, 0xa5b: 0x05e6, 0xa5c: 0x0b76, 0xa5d: 0x0b86,\n\t0xa5e: 0x0b8a, 0xa5f: 0x0b92, 0xa60: 0x0ba2, 0xa61: 0x05ee, 0xa62: 0x05ea, 0xa63: 0x0ba6,\n\t0xa64: 0x16ae, 0xa65: 0x0baa, 0xa66: 0x0bbe, 0xa67: 0x0bc2, 0xa68: 0x0bc6, 0xa69: 0x0bc2,\n\t0xa6a: 0x0bd2, 0xa6b: 0x0bd6, 0xa6c: 0x0be6, 0xa6d: 0x0bde, 0xa6e: 0x0be2, 0xa6f: 0x0bea,\n\t0xa70: 0x0bee, 0xa71: 0x0bf2, 0xa72: 0x0bfe, 0xa73: 0x0c02, 0xa74: 0x0c1a, 0xa75: 0x0c22,\n\t0xa76: 0x0c32, 0xa77: 0x0c46, 0xa78: 0x16bd, 0xa79: 0x0c42, 0xa7a: 0x0c36, 0xa7b: 0x0c4e,\n\t0xa7c: 0x0c56, 0xa7d: 0x0c6a, 0xa7e: 0x16c2, 0xa7f: 0x0c72,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0x0c66, 0xa81: 0x0c5e, 0xa82: 0x05f2, 0xa83: 0x0c7a, 0xa84: 0x0c82, 0xa85: 0x0c8a,\n\t0xa86: 0x0c7e, 0xa87: 0x05f6, 0xa88: 0x0c9a, 0xa89: 0x0ca2, 0xa8a: 0x16c7, 0xa8b: 0x0cce,\n\t0xa8c: 0x0d02, 0xa8d: 0x0cde, 0xa8e: 0x0602, 0xa8f: 0x0cea, 0xa90: 0x05fe, 0xa91: 0x05fa,\n\t0xa92: 0x07c6, 0xa93: 0x07ca, 0xa94: 0x0d06, 0xa95: 0x0cee, 0xa96: 0x11ae, 0xa97: 0x0666,\n\t0xa98: 0x0d12, 0xa99: 0x0d16, 0xa9a: 0x0d1a, 0xa9b: 0x0d2e, 0xa9c: 0x0d26, 0xa9d: 0x16e0,\n\t0xa9e: 0x0606, 0xa9f: 0x0d42, 0xaa0: 0x0d36, 0xaa1: 0x0d52, 0xaa2: 0x0d5a, 0xaa3: 0x16ea,\n\t0xaa4: 0x0d5e, 0xaa5: 0x0d4a, 0xaa6: 0x0d66, 0xaa7: 0x060a, 0xaa8: 0x0d6a, 0xaa9: 0x0d6e,\n\t0xaaa: 0x0d72, 0xaab: 0x0d7e, 0xaac: 0x16ef, 0xaad: 0x0d86, 0xaae: 0x060e, 0xaaf: 0x0d92,\n\t0xab0: 0x16f4, 0xab1: 0x0d96, 0xab2: 0x0612, 0xab3: 0x0da2, 0xab4: 0x0dae, 0xab5: 0x0dba,\n\t0xab6: 0x0dbe, 0xab7: 0x16f9, 0xab8: 0x1690, 0xab9: 0x16fe, 0xaba: 0x0dde, 0xabb: 0x1703,\n\t0xabc: 0x0dea, 0xabd: 0x0df2, 0xabe: 0x0de2, 0xabf: 0x0dfe,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0x0e0e, 0xac1: 0x0e1e, 0xac2: 0x0e12, 0xac3: 0x0e16, 0xac4: 0x0e22, 0xac5: 0x0e26,\n\t0xac6: 0x1708, 0xac7: 0x0e0a, 0xac8: 0x0e3e, 0xac9: 0x0e42, 0xaca: 0x0616, 0xacb: 0x0e56,\n\t0xacc: 0x0e52, 0xacd: 0x170d, 0xace: 0x0e36, 0xacf: 0x0e72, 0xad0: 0x1712, 0xad1: 0x1717,\n\t0xad2: 0x0e76, 0xad3: 0x0e8a, 0xad4: 0x0e86, 0xad5: 0x0e82, 0xad6: 0x061a, 0xad7: 0x0e8e,\n\t0xad8: 0x0e9e, 0xad9: 0x0e9a, 0xada: 0x0ea6, 0xadb: 0x1654, 0xadc: 0x0eb6, 0xadd: 0x171c,\n\t0xade: 0x0ec2, 0xadf: 0x1726, 0xae0: 0x0ed6, 0xae1: 0x0ee2, 0xae2: 0x0ef6, 0xae3: 0x172b,\n\t0xae4: 0x0f0a, 0xae5: 0x0f0e, 0xae6: 0x1730, 0xae7: 0x1735, 0xae8: 0x0f2a, 0xae9: 0x0f3a,\n\t0xaea: 0x061e, 0xaeb: 0x0f3e, 0xaec: 0x0622, 0xaed: 0x0622, 0xaee: 0x0f56, 0xaef: 0x0f5a,\n\t0xaf0: 0x0f62, 0xaf1: 0x0f66, 0xaf2: 0x0f72, 0xaf3: 0x0626, 0xaf4: 0x0f8a, 0xaf5: 0x173a,\n\t0xaf6: 0x0fa6, 0xaf7: 0x173f, 0xaf8: 0x0fb2, 0xaf9: 0x16a4, 0xafa: 0x0fc2, 0xafb: 0x1744,\n\t0xafc: 0x1749, 0xafd: 0x174e, 0xafe: 0x062a, 0xaff: 0x062e,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0x0ffa, 0xb01: 0x1758, 0xb02: 0x1753, 0xb03: 0x175d, 0xb04: 0x1762, 0xb05: 0x1002,\n\t0xb06: 0x1006, 0xb07: 0x1006, 0xb08: 0x100e, 0xb09: 0x0636, 0xb0a: 0x1012, 0xb0b: 0x063a,\n\t0xb0c: 0x063e, 0xb0d: 0x176c, 0xb0e: 0x1026, 0xb0f: 0x102e, 0xb10: 0x103a, 0xb11: 0x0642,\n\t0xb12: 0x1771, 0xb13: 0x105e, 0xb14: 0x1776, 0xb15: 0x177b, 0xb16: 0x107e, 0xb17: 0x1096,\n\t0xb18: 0x0646, 0xb19: 0x109e, 0xb1a: 0x10a2, 0xb1b: 0x10a6, 0xb1c: 0x1780, 0xb1d: 0x1785,\n\t0xb1e: 0x1785, 0xb1f: 0x10be, 0xb20: 0x064a, 0xb21: 0x178a, 0xb22: 0x10d2, 0xb23: 0x10d6,\n\t0xb24: 0x064e, 0xb25: 0x178f, 0xb26: 0x10f2, 0xb27: 0x0652, 0xb28: 0x1102, 0xb29: 0x10fa,\n\t0xb2a: 0x110a, 0xb2b: 0x1799, 0xb2c: 0x1122, 0xb2d: 0x0656, 0xb2e: 0x112e, 0xb2f: 0x1136,\n\t0xb30: 0x1146, 0xb31: 0x065a, 0xb32: 0x17a3, 0xb33: 0x17a8, 0xb34: 0x065e, 0xb35: 0x17ad,\n\t0xb36: 0x115e, 0xb37: 0x17b2, 0xb38: 0x116a, 0xb39: 0x1176, 0xb3a: 0x117e, 0xb3b: 0x17b7,\n\t0xb3c: 0x17bc, 0xb3d: 0x1192, 0xb3e: 0x17c1, 0xb3f: 0x119a,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x16d1, 0xb41: 0x0662, 0xb42: 0x11b2, 0xb43: 0x11b6, 0xb44: 0x066a, 0xb45: 0x11ba,\n\t0xb46: 0x0a36, 0xb47: 0x17c6, 0xb48: 0x17cb, 0xb49: 0x16d6, 0xb4a: 0x16db, 0xb4b: 0x11da,\n\t0xb4c: 0x11de, 0xb4d: 0x13f6, 0xb4e: 0x066e, 0xb4f: 0x120a, 0xb50: 0x1206, 0xb51: 0x120e,\n\t0xb52: 0x0842, 0xb53: 0x1212, 0xb54: 0x1216, 0xb55: 0x121a, 0xb56: 0x1222, 0xb57: 0x17d0,\n\t0xb58: 0x121e, 0xb59: 0x1226, 0xb5a: 0x123a, 0xb5b: 0x123e, 0xb5c: 0x122a, 0xb5d: 0x1242,\n\t0xb5e: 0x1256, 0xb5f: 0x126a, 0xb60: 0x1236, 0xb61: 0x124a, 0xb62: 0x124e, 0xb63: 0x1252,\n\t0xb64: 0x17d5, 0xb65: 0x17df, 0xb66: 0x17da, 0xb67: 0x0672, 0xb68: 0x1272, 0xb69: 0x1276,\n\t0xb6a: 0x127e, 0xb6b: 0x17f3, 0xb6c: 0x1282, 0xb6d: 0x17e4, 0xb6e: 0x0676, 0xb6f: 0x067a,\n\t0xb70: 0x17e9, 0xb71: 0x17ee, 0xb72: 0x067e, 0xb73: 0x12a2, 0xb74: 0x12a6, 0xb75: 0x12aa,\n\t0xb76: 0x12ae, 0xb77: 0x12ba, 0xb78: 0x12b6, 0xb79: 0x12c2, 0xb7a: 0x12be, 0xb7b: 0x12ce,\n\t0xb7c: 0x12c6, 0xb7d: 0x12ca, 0xb7e: 0x12d2, 0xb7f: 0x0682,\n\t// Block 0x2e, offset 0xb80\n\t0xb80: 0x12da, 0xb81: 0x12de, 0xb82: 0x0686, 0xb83: 0x12ee, 0xb84: 0x12f2, 0xb85: 0x17f8,\n\t0xb86: 0x12fe, 0xb87: 0x1302, 0xb88: 0x068a, 0xb89: 0x130e, 0xb8a: 0x05be, 0xb8b: 0x17fd,\n\t0xb8c: 0x1802, 0xb8d: 0x068e, 0xb8e: 0x0692, 0xb8f: 0x133a, 0xb90: 0x1352, 0xb91: 0x136e,\n\t0xb92: 0x137e, 0xb93: 0x1807, 0xb94: 0x1392, 0xb95: 0x1396, 0xb96: 0x13ae, 0xb97: 0x13ba,\n\t0xb98: 0x1811, 0xb99: 0x1663, 0xb9a: 0x13c6, 0xb9b: 0x13c2, 0xb9c: 0x13ce, 0xb9d: 0x1668,\n\t0xb9e: 0x13da, 0xb9f: 0x13e6, 0xba0: 0x1816, 0xba1: 0x181b, 0xba2: 0x1426, 0xba3: 0x1432,\n\t0xba4: 0x143a, 0xba5: 0x1820, 0xba6: 0x143e, 0xba7: 0x146a, 0xba8: 0x1476, 0xba9: 0x147a,\n\t0xbaa: 0x1472, 0xbab: 0x1486, 0xbac: 0x148a, 0xbad: 0x1825, 0xbae: 0x1496, 0xbaf: 0x0696,\n\t0xbb0: 0x149e, 0xbb1: 0x182a, 0xbb2: 0x069a, 0xbb3: 0x14d6, 0xbb4: 0x0ac6, 0xbb5: 0x14ee,\n\t0xbb6: 0x182f, 0xbb7: 0x1839, 0xbb8: 0x069e, 0xbb9: 0x06a2, 0xbba: 0x1516, 0xbbb: 0x183e,\n\t0xbbc: 0x06a6, 0xbbd: 0x1843, 0xbbe: 0x152e, 0xbbf: 0x152e,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc0: 0x1536, 0xbc1: 0x1848, 0xbc2: 0x154e, 0xbc3: 0x06aa, 0xbc4: 0x155e, 0xbc5: 0x156a,\n\t0xbc6: 0x1572, 0xbc7: 0x157a, 0xbc8: 0x06ae, 0xbc9: 0x184d, 0xbca: 0x158e, 0xbcb: 0x15aa,\n\t0xbcc: 0x15b6, 0xbcd: 0x06b2, 0xbce: 0x06b6, 0xbcf: 0x15ba, 0xbd0: 0x1852, 0xbd1: 0x06ba,\n\t0xbd2: 0x1857, 0xbd3: 0x185c, 0xbd4: 0x1861, 0xbd5: 0x15de, 0xbd6: 0x06be, 0xbd7: 0x15f2,\n\t0xbd8: 0x15fa, 0xbd9: 0x15fe, 0xbda: 0x1606, 0xbdb: 0x160e, 0xbdc: 0x1616, 0xbdd: 0x186b,\n}\n\n// nfcIndex: 22 blocks, 1408 entries, 1408 bytes\n// Block 0 is the zero block.\nvar nfcIndex = [1408]uint8{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x2e, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x2f, 0xc7: 0x04,\n\t0xc8: 0x05, 0xca: 0x30, 0xcb: 0x31, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x32,\n\t0xd0: 0x09, 0xd1: 0x33, 0xd2: 0x34, 0xd3: 0x0a, 0xd6: 0x0b, 0xd7: 0x35,\n\t0xd8: 0x36, 0xd9: 0x0c, 0xdb: 0x37, 0xdc: 0x38, 0xdd: 0x39, 0xdf: 0x3a,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,\n\t0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a,\n\t0xf0: 0x13,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x3b, 0x121: 0x3c, 0x123: 0x0d, 0x124: 0x3d, 0x125: 0x3e, 0x126: 0x3f, 0x127: 0x40,\n\t0x128: 0x41, 0x129: 0x42, 0x12a: 0x43, 0x12b: 0x44, 0x12c: 0x3f, 0x12d: 0x45, 0x12e: 0x46, 0x12f: 0x47,\n\t0x131: 0x48, 0x132: 0x49, 0x133: 0x4a, 0x134: 0x4b, 0x135: 0x4c, 0x137: 0x4d,\n\t0x138: 0x4e, 0x139: 0x4f, 0x13a: 0x50, 0x13b: 0x51, 0x13c: 0x52, 0x13d: 0x53, 0x13e: 0x54, 0x13f: 0x55,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x56, 0x142: 0x57, 0x144: 0x58, 0x145: 0x59, 0x146: 0x5a, 0x147: 0x5b,\n\t0x14d: 0x5c,\n\t0x15c: 0x5d, 0x15f: 0x5e,\n\t0x162: 0x5f, 0x164: 0x60,\n\t0x168: 0x61, 0x169: 0x62, 0x16a: 0x63, 0x16b: 0x64, 0x16c: 0x0e, 0x16d: 0x65, 0x16e: 0x66, 0x16f: 0x67,\n\t0x170: 0x68, 0x173: 0x69, 0x177: 0x0f,\n\t0x178: 0x10, 0x179: 0x11, 0x17a: 0x12, 0x17b: 0x13, 0x17c: 0x14, 0x17d: 0x15, 0x17e: 0x16, 0x17f: 0x17,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x6a, 0x183: 0x6b, 0x184: 0x6c, 0x186: 0x6d, 0x187: 0x6e,\n\t0x188: 0x6f, 0x189: 0x18, 0x18a: 0x19, 0x18b: 0x70, 0x18c: 0x71,\n\t0x1ab: 0x72,\n\t0x1b3: 0x73, 0x1b5: 0x74, 0x1b7: 0x75,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x76, 0x1c1: 0x1a, 0x1c2: 0x1b, 0x1c3: 0x1c, 0x1c4: 0x77, 0x1c5: 0x78,\n\t0x1c9: 0x79, 0x1cc: 0x7a, 0x1cd: 0x7b,\n\t// Block 0x8, offset 0x200\n\t0x219: 0x7c, 0x21a: 0x7d, 0x21b: 0x7e,\n\t0x220: 0x7f, 0x223: 0x80, 0x224: 0x81, 0x225: 0x82, 0x226: 0x83, 0x227: 0x84,\n\t0x22a: 0x85, 0x22b: 0x86, 0x22f: 0x87,\n\t0x230: 0x88, 0x231: 0x89, 0x232: 0x8a, 0x233: 0x8b, 0x234: 0x8c, 0x235: 0x8d, 0x236: 0x8e, 0x237: 0x88,\n\t0x238: 0x89, 0x239: 0x8a, 0x23a: 0x8b, 0x23b: 0x8c, 0x23c: 0x8d, 0x23d: 0x8e, 0x23e: 0x88, 0x23f: 0x89,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x8a, 0x241: 0x8b, 0x242: 0x8c, 0x243: 0x8d, 0x244: 0x8e, 0x245: 0x88, 0x246: 0x89, 0x247: 0x8a,\n\t0x248: 0x8b, 0x249: 0x8c, 0x24a: 0x8d, 0x24b: 0x8e, 0x24c: 0x88, 0x24d: 0x89, 0x24e: 0x8a, 0x24f: 0x8b,\n\t0x250: 0x8c, 0x251: 0x8d, 0x252: 0x8e, 0x253: 0x88, 0x254: 0x89, 0x255: 0x8a, 0x256: 0x8b, 0x257: 0x8c,\n\t0x258: 0x8d, 0x259: 0x8e, 0x25a: 0x88, 0x25b: 0x89, 0x25c: 0x8a, 0x25d: 0x8b, 0x25e: 0x8c, 0x25f: 0x8d,\n\t0x260: 0x8e, 0x261: 0x88, 0x262: 0x89, 0x263: 0x8a, 0x264: 0x8b, 0x265: 0x8c, 0x266: 0x8d, 0x267: 0x8e,\n\t0x268: 0x88, 0x269: 0x89, 0x26a: 0x8a, 0x26b: 0x8b, 0x26c: 0x8c, 0x26d: 0x8d, 0x26e: 0x8e, 0x26f: 0x88,\n\t0x270: 0x89, 0x271: 0x8a, 0x272: 0x8b, 0x273: 0x8c, 0x274: 0x8d, 0x275: 0x8e, 0x276: 0x88, 0x277: 0x89,\n\t0x278: 0x8a, 0x279: 0x8b, 0x27a: 0x8c, 0x27b: 0x8d, 0x27c: 0x8e, 0x27d: 0x88, 0x27e: 0x89, 0x27f: 0x8a,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x8b, 0x281: 0x8c, 0x282: 0x8d, 0x283: 0x8e, 0x284: 0x88, 0x285: 0x89, 0x286: 0x8a, 0x287: 0x8b,\n\t0x288: 0x8c, 0x289: 0x8d, 0x28a: 0x8e, 0x28b: 0x88, 0x28c: 0x89, 0x28d: 0x8a, 0x28e: 0x8b, 0x28f: 0x8c,\n\t0x290: 0x8d, 0x291: 0x8e, 0x292: 0x88, 0x293: 0x89, 0x294: 0x8a, 0x295: 0x8b, 0x296: 0x8c, 0x297: 0x8d,\n\t0x298: 0x8e, 0x299: 0x88, 0x29a: 0x89, 0x29b: 0x8a, 0x29c: 0x8b, 0x29d: 0x8c, 0x29e: 0x8d, 0x29f: 0x8e,\n\t0x2a0: 0x88, 0x2a1: 0x89, 0x2a2: 0x8a, 0x2a3: 0x8b, 0x2a4: 0x8c, 0x2a5: 0x8d, 0x2a6: 0x8e, 0x2a7: 0x88,\n\t0x2a8: 0x89, 0x2a9: 0x8a, 0x2aa: 0x8b, 0x2ab: 0x8c, 0x2ac: 0x8d, 0x2ad: 0x8e, 0x2ae: 0x88, 0x2af: 0x89,\n\t0x2b0: 0x8a, 0x2b1: 0x8b, 0x2b2: 0x8c, 0x2b3: 0x8d, 0x2b4: 0x8e, 0x2b5: 0x88, 0x2b6: 0x89, 0x2b7: 0x8a,\n\t0x2b8: 0x8b, 0x2b9: 0x8c, 0x2ba: 0x8d, 0x2bb: 0x8e, 0x2bc: 0x88, 0x2bd: 0x89, 0x2be: 0x8a, 0x2bf: 0x8b,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x8c, 0x2c1: 0x8d, 0x2c2: 0x8e, 0x2c3: 0x88, 0x2c4: 0x89, 0x2c5: 0x8a, 0x2c6: 0x8b, 0x2c7: 0x8c,\n\t0x2c8: 0x8d, 0x2c9: 0x8e, 0x2ca: 0x88, 0x2cb: 0x89, 0x2cc: 0x8a, 0x2cd: 0x8b, 0x2ce: 0x8c, 0x2cf: 0x8d,\n\t0x2d0: 0x8e, 0x2d1: 0x88, 0x2d2: 0x89, 0x2d3: 0x8a, 0x2d4: 0x8b, 0x2d5: 0x8c, 0x2d6: 0x8d, 0x2d7: 0x8e,\n\t0x2d8: 0x88, 0x2d9: 0x89, 0x2da: 0x8a, 0x2db: 0x8b, 0x2dc: 0x8c, 0x2dd: 0x8d, 0x2de: 0x8f,\n\t// Block 0xc, offset 0x300\n\t0x324: 0x1d, 0x325: 0x1e, 0x326: 0x1f, 0x327: 0x20,\n\t0x328: 0x21, 0x329: 0x22, 0x32a: 0x23, 0x32b: 0x24, 0x32c: 0x90, 0x32d: 0x91, 0x32e: 0x92,\n\t0x331: 0x93, 0x332: 0x94, 0x333: 0x95, 0x334: 0x96,\n\t0x338: 0x97, 0x339: 0x98, 0x33a: 0x99, 0x33b: 0x9a, 0x33e: 0x9b, 0x33f: 0x9c,\n\t// Block 0xd, offset 0x340\n\t0x347: 0x9d,\n\t0x34b: 0x9e, 0x34d: 0x9f,\n\t0x368: 0xa0, 0x36b: 0xa1,\n\t0x374: 0xa2,\n\t0x37a: 0xa3, 0x37d: 0xa4,\n\t// Block 0xe, offset 0x380\n\t0x381: 0xa5, 0x382: 0xa6, 0x384: 0xa7, 0x385: 0x83, 0x387: 0xa8,\n\t0x388: 0xa9, 0x38b: 0xaa, 0x38c: 0xab, 0x38d: 0xac,\n\t0x391: 0xad, 0x392: 0xae, 0x393: 0xaf, 0x396: 0xb0, 0x397: 0xb1,\n\t0x398: 0x74, 0x39a: 0xb2, 0x39c: 0xb3,\n\t0x3a0: 0xb4, 0x3a4: 0xb5, 0x3a5: 0xb6, 0x3a7: 0xb7,\n\t0x3a8: 0xb8, 0x3a9: 0xb9, 0x3aa: 0xba,\n\t0x3b0: 0x74, 0x3b5: 0xbb, 0x3b6: 0xbc,\n\t// Block 0xf, offset 0x3c0\n\t0x3eb: 0xbd, 0x3ec: 0xbe,\n\t0x3ff: 0xbf,\n\t// Block 0x10, offset 0x400\n\t0x432: 0xc0,\n\t// Block 0x11, offset 0x440\n\t0x445: 0xc1, 0x446: 0xc2, 0x447: 0xc3,\n\t0x449: 0xc4,\n\t// Block 0x12, offset 0x480\n\t0x480: 0xc5, 0x484: 0xbe,\n\t0x48b: 0xc6,\n\t0x4a3: 0xc7, 0x4a5: 0xc8,\n\t// Block 0x13, offset 0x4c0\n\t0x4c8: 0xc9,\n\t// Block 0x14, offset 0x500\n\t0x520: 0x25, 0x521: 0x26, 0x522: 0x27, 0x523: 0x28, 0x524: 0x29, 0x525: 0x2a, 0x526: 0x2b, 0x527: 0x2c,\n\t0x528: 0x2d,\n\t// Block 0x15, offset 0x540\n\t0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,\n\t0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,\n\t0x56f: 0x12,\n}\n\n// nfcSparseOffset: 156 entries, 312 bytes\nvar nfcSparseOffset = []uint16{0x0, 0x5, 0x9, 0xb, 0xd, 0x18, 0x28, 0x2a, 0x2f, 0x3a, 0x49, 0x56, 0x5e, 0x63, 0x68, 0x6a, 0x72, 0x79, 0x7c, 0x84, 0x88, 0x8c, 0x8e, 0x90, 0x99, 0x9d, 0xa4, 0xa9, 0xac, 0xb6, 0xb9, 0xc0, 0xc8, 0xcb, 0xcd, 0xd0, 0xd2, 0xd7, 0xe8, 0xf4, 0xf6, 0xfc, 0xfe, 0x100, 0x102, 0x104, 0x106, 0x108, 0x10b, 0x10e, 0x110, 0x113, 0x116, 0x11a, 0x120, 0x122, 0x12b, 0x12d, 0x130, 0x132, 0x13d, 0x141, 0x14f, 0x152, 0x158, 0x15e, 0x169, 0x16d, 0x16f, 0x171, 0x173, 0x175, 0x177, 0x17d, 0x181, 0x183, 0x185, 0x18d, 0x191, 0x194, 0x196, 0x198, 0x19b, 0x19e, 0x1a0, 0x1a2, 0x1a4, 0x1a6, 0x1ac, 0x1af, 0x1b1, 0x1b8, 0x1be, 0x1c4, 0x1cc, 0x1d2, 0x1d8, 0x1de, 0x1e2, 0x1f0, 0x1f9, 0x1fc, 0x1ff, 0x201, 0x204, 0x206, 0x20a, 0x20f, 0x211, 0x213, 0x218, 0x21e, 0x220, 0x222, 0x224, 0x22a, 0x22d, 0x22f, 0x231, 0x237, 0x23a, 0x242, 0x249, 0x24c, 0x24f, 0x251, 0x254, 0x25c, 0x260, 0x267, 0x26a, 0x270, 0x272, 0x275, 0x277, 0x27a, 0x27f, 0x281, 0x283, 0x285, 0x287, 0x289, 0x28c, 0x28e, 0x290, 0x292, 0x294, 0x296, 0x2a3, 0x2ad, 0x2af, 0x2b1, 0x2b7, 0x2b9, 0x2bb, 0x2be}\n\n// nfcSparseValues: 704 entries, 2816 bytes\nvar nfcSparseValues = [704]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0xa100, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8100, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8100, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8100, lo: 0xb8, hi: 0xb8},\n\t// Block 0x1, offset 0x5\n\t{value: 0x0091, lo: 0x03},\n\t{value: 0x46f9, lo: 0xa0, hi: 0xa1},\n\t{value: 0x472b, lo: 0xaf, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb7, hi: 0xb7},\n\t// Block 0x2, offset 0x9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t// Block 0x3, offset 0xb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x98, hi: 0x9d},\n\t// Block 0x4, offset 0xd\n\t{value: 0x0006, lo: 0x0a},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x85, hi: 0x85},\n\t{value: 0xa000, lo: 0x89, hi: 0x89},\n\t{value: 0x4857, lo: 0x8a, hi: 0x8a},\n\t{value: 0x4875, lo: 0x8b, hi: 0x8b},\n\t{value: 0x36de, lo: 0x8c, hi: 0x8c},\n\t{value: 0x36f6, lo: 0x8d, hi: 0x8d},\n\t{value: 0x488d, lo: 0x8e, hi: 0x8e},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x3714, lo: 0x93, hi: 0x94},\n\t// Block 0x5, offset 0x18\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0xa000, lo: 0x8d, hi: 0x8d},\n\t{value: 0x37bc, lo: 0x90, hi: 0x90},\n\t{value: 0x37c8, lo: 0x91, hi: 0x91},\n\t{value: 0x37b6, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x96, hi: 0x96},\n\t{value: 0x382e, lo: 0x97, hi: 0x97},\n\t{value: 0x37f8, lo: 0x9c, hi: 0x9c},\n\t{value: 0x37e0, lo: 0x9d, hi: 0x9d},\n\t{value: 0x380a, lo: 0x9e, hi: 0x9e},\n\t{value: 0xa000, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3834, lo: 0xb6, hi: 0xb6},\n\t{value: 0x383a, lo: 0xb7, hi: 0xb7},\n\t// Block 0x6, offset 0x28\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0x83, hi: 0x87},\n\t// Block 0x7, offset 0x2a\n\t{value: 0x0001, lo: 0x04},\n\t{value: 0x8114, lo: 0x81, hi: 0x82},\n\t{value: 0x8133, lo: 0x84, hi: 0x84},\n\t{value: 0x812e, lo: 0x85, hi: 0x85},\n\t{value: 0x810e, lo: 0x87, hi: 0x87},\n\t// Block 0x8, offset 0x2f\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8133, lo: 0x90, hi: 0x97},\n\t{value: 0x811a, lo: 0x98, hi: 0x98},\n\t{value: 0x811b, lo: 0x99, hi: 0x99},\n\t{value: 0x811c, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3858, lo: 0xa2, hi: 0xa2},\n\t{value: 0x385e, lo: 0xa3, hi: 0xa3},\n\t{value: 0x386a, lo: 0xa4, hi: 0xa4},\n\t{value: 0x3864, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3870, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xa7, hi: 0xa7},\n\t// Block 0x9, offset 0x3a\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3882, lo: 0x80, hi: 0x80},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0x3876, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x387c, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x95, hi: 0x95},\n\t{value: 0x8133, lo: 0x96, hi: 0x9c},\n\t{value: 0x8133, lo: 0x9f, hi: 0xa2},\n\t{value: 0x812e, lo: 0xa3, hi: 0xa3},\n\t{value: 0x8133, lo: 0xa4, hi: 0xa4},\n\t{value: 0x8133, lo: 0xa7, hi: 0xa8},\n\t{value: 0x812e, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8133, lo: 0xab, hi: 0xac},\n\t{value: 0x812e, lo: 0xad, hi: 0xad},\n\t// Block 0xa, offset 0x49\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x8120, lo: 0x91, hi: 0x91},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb0},\n\t{value: 0x812e, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8133, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812e, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8133, lo: 0xb5, hi: 0xb6},\n\t{value: 0x812e, lo: 0xb7, hi: 0xb9},\n\t{value: 0x8133, lo: 0xba, hi: 0xba},\n\t{value: 0x812e, lo: 0xbb, hi: 0xbc},\n\t{value: 0x8133, lo: 0xbd, hi: 0xbd},\n\t{value: 0x812e, lo: 0xbe, hi: 0xbe},\n\t{value: 0x8133, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb, offset 0x56\n\t{value: 0x0005, lo: 0x07},\n\t{value: 0x8133, lo: 0x80, hi: 0x80},\n\t{value: 0x8133, lo: 0x81, hi: 0x81},\n\t{value: 0x812e, lo: 0x82, hi: 0x83},\n\t{value: 0x812e, lo: 0x84, hi: 0x85},\n\t{value: 0x812e, lo: 0x86, hi: 0x87},\n\t{value: 0x812e, lo: 0x88, hi: 0x89},\n\t{value: 0x8133, lo: 0x8a, hi: 0x8a},\n\t// Block 0xc, offset 0x5e\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8133, lo: 0xab, hi: 0xb1},\n\t{value: 0x812e, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8133, lo: 0xb3, hi: 0xb3},\n\t{value: 0x812e, lo: 0xbd, hi: 0xbd},\n\t// Block 0xd, offset 0x63\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8133, lo: 0x96, hi: 0x99},\n\t{value: 0x8133, lo: 0x9b, hi: 0xa3},\n\t{value: 0x8133, lo: 0xa5, hi: 0xa7},\n\t{value: 0x8133, lo: 0xa9, hi: 0xad},\n\t// Block 0xe, offset 0x68\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0x99, hi: 0x9b},\n\t// Block 0xf, offset 0x6a\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3eef, lo: 0xa9, hi: 0xa9},\n\t{value: 0xa000, lo: 0xb0, hi: 0xb0},\n\t{value: 0x3ef7, lo: 0xb1, hi: 0xb1},\n\t{value: 0xa000, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3eff, lo: 0xb4, hi: 0xb4},\n\t{value: 0x9903, lo: 0xbc, hi: 0xbc},\n\t// Block 0x10, offset 0x72\n\t{value: 0x0008, lo: 0x06},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8133, lo: 0x91, hi: 0x91},\n\t{value: 0x812e, lo: 0x92, hi: 0x92},\n\t{value: 0x8133, lo: 0x93, hi: 0x93},\n\t{value: 0x8133, lo: 0x94, hi: 0x94},\n\t{value: 0x4533, lo: 0x98, hi: 0x9f},\n\t// Block 0x11, offset 0x79\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8103, lo: 0xbc, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x12, offset 0x7c\n\t{value: 0x0008, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2cab, lo: 0x8b, hi: 0x8c},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x4573, lo: 0x9c, hi: 0x9d},\n\t{value: 0x4583, lo: 0x9f, hi: 0x9f},\n\t{value: 0x8133, lo: 0xbe, hi: 0xbe},\n\t// Block 0x13, offset 0x84\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x45ab, lo: 0xb3, hi: 0xb3},\n\t{value: 0x45b3, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8103, lo: 0xbc, hi: 0xbc},\n\t// Block 0x14, offset 0x88\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x458b, lo: 0x99, hi: 0x9b},\n\t{value: 0x45a3, lo: 0x9e, hi: 0x9e},\n\t// Block 0x15, offset 0x8c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8103, lo: 0xbc, hi: 0xbc},\n\t// Block 0x16, offset 0x8e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t// Block 0x17, offset 0x90\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2cc3, lo: 0x88, hi: 0x88},\n\t{value: 0x2cbb, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2ccb, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x96, hi: 0x97},\n\t{value: 0x45bb, lo: 0x9c, hi: 0x9c},\n\t{value: 0x45c3, lo: 0x9d, hi: 0x9d},\n\t// Block 0x18, offset 0x99\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x2cd3, lo: 0x94, hi: 0x94},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x19, offset 0x9d\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cdb, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2ceb, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2ce3, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1a, offset 0xa4\n\t{value: 0x1801, lo: 0x04},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x3f07, lo: 0x88, hi: 0x88},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8121, lo: 0x95, hi: 0x96},\n\t// Block 0x1b, offset 0xa9\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8103, lo: 0xbc, hi: 0xbc},\n\t{value: 0xa000, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1c, offset 0xac\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x2cf3, lo: 0x80, hi: 0x80},\n\t{value: 0x9900, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x2cfb, lo: 0x87, hi: 0x87},\n\t{value: 0x2d03, lo: 0x88, hi: 0x88},\n\t{value: 0x2f67, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2def, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x95, hi: 0x96},\n\t// Block 0x1d, offset 0xb6\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0xbb, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1e, offset 0xb9\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2d0b, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2d1b, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d13, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1f, offset 0xc0\n\t{value: 0x6bdd, lo: 0x07},\n\t{value: 0x9905, lo: 0x8a, hi: 0x8a},\n\t{value: 0x9900, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x3f0f, lo: 0x9a, hi: 0x9a},\n\t{value: 0x2f6f, lo: 0x9c, hi: 0x9c},\n\t{value: 0x2dfa, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2d23, lo: 0x9e, hi: 0x9f},\n\t// Block 0x20, offset 0xc8\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8123, lo: 0xb8, hi: 0xb9},\n\t{value: 0x8105, lo: 0xba, hi: 0xba},\n\t// Block 0x21, offset 0xcb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8124, lo: 0x88, hi: 0x8b},\n\t// Block 0x22, offset 0xcd\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8125, lo: 0xb8, hi: 0xb9},\n\t{value: 0x8105, lo: 0xba, hi: 0xba},\n\t// Block 0x23, offset 0xd0\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8126, lo: 0x88, hi: 0x8b},\n\t// Block 0x24, offset 0xd2\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x812e, lo: 0x98, hi: 0x99},\n\t{value: 0x812e, lo: 0xb5, hi: 0xb5},\n\t{value: 0x812e, lo: 0xb7, hi: 0xb7},\n\t{value: 0x812c, lo: 0xb9, hi: 0xb9},\n\t// Block 0x25, offset 0xd7\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x264a, lo: 0x83, hi: 0x83},\n\t{value: 0x2651, lo: 0x8d, hi: 0x8d},\n\t{value: 0x2658, lo: 0x92, hi: 0x92},\n\t{value: 0x265f, lo: 0x97, hi: 0x97},\n\t{value: 0x2666, lo: 0x9c, hi: 0x9c},\n\t{value: 0x2643, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8127, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8128, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4a9b, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8129, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4aa4, lo: 0xb5, hi: 0xb5},\n\t{value: 0x45cb, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8200, lo: 0xb7, hi: 0xb7},\n\t{value: 0x45d3, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8200, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8128, lo: 0xba, hi: 0xbd},\n\t// Block 0x26, offset 0xe8\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x8128, lo: 0x80, hi: 0x80},\n\t{value: 0x4aad, lo: 0x81, hi: 0x81},\n\t{value: 0x8133, lo: 0x82, hi: 0x83},\n\t{value: 0x8105, lo: 0x84, hi: 0x84},\n\t{value: 0x8133, lo: 0x86, hi: 0x87},\n\t{value: 0x2674, lo: 0x93, hi: 0x93},\n\t{value: 0x267b, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2682, lo: 0xa2, hi: 0xa2},\n\t{value: 0x2689, lo: 0xa7, hi: 0xa7},\n\t{value: 0x2690, lo: 0xac, hi: 0xac},\n\t{value: 0x266d, lo: 0xb9, hi: 0xb9},\n\t// Block 0x27, offset 0xf4\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0x86, hi: 0x86},\n\t// Block 0x28, offset 0xf6\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x2d2b, lo: 0xa6, hi: 0xa6},\n\t{value: 0x9900, lo: 0xae, hi: 0xae},\n\t{value: 0x8103, lo: 0xb7, hi: 0xb7},\n\t{value: 0x8105, lo: 0xb9, hi: 0xba},\n\t// Block 0x29, offset 0xfc\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0x8d, hi: 0x8d},\n\t// Block 0x2a, offset 0xfe\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x80, hi: 0x92},\n\t// Block 0x2b, offset 0x100\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xb900, lo: 0xa1, hi: 0xb5},\n\t// Block 0x2c, offset 0x102\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0xa8, hi: 0xbf},\n\t// Block 0x2d, offset 0x104\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0x80, hi: 0x82},\n\t// Block 0x2e, offset 0x106\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0x9d, hi: 0x9f},\n\t// Block 0x2f, offset 0x108\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x94, hi: 0x94},\n\t{value: 0x8105, lo: 0xb4, hi: 0xb4},\n\t// Block 0x30, offset 0x10b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x92, hi: 0x92},\n\t{value: 0x8133, lo: 0x9d, hi: 0x9d},\n\t// Block 0x31, offset 0x10e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xa9, hi: 0xa9},\n\t// Block 0x32, offset 0x110\n\t{value: 0x0004, lo: 0x02},\n\t{value: 0x812f, lo: 0xb9, hi: 0xba},\n\t{value: 0x812e, lo: 0xbb, hi: 0xbb},\n\t// Block 0x33, offset 0x113\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8133, lo: 0x97, hi: 0x97},\n\t{value: 0x812e, lo: 0x98, hi: 0x98},\n\t// Block 0x34, offset 0x116\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8105, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8133, lo: 0xb5, hi: 0xbc},\n\t{value: 0x812e, lo: 0xbf, hi: 0xbf},\n\t// Block 0x35, offset 0x11a\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb4},\n\t{value: 0x812e, lo: 0xb5, hi: 0xba},\n\t{value: 0x8133, lo: 0xbb, hi: 0xbc},\n\t{value: 0x812e, lo: 0xbd, hi: 0xbd},\n\t{value: 0x812e, lo: 0xbf, hi: 0xbf},\n\t// Block 0x36, offset 0x120\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0x80, hi: 0x80},\n\t// Block 0x37, offset 0x122\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x2d73, lo: 0x80, hi: 0x80},\n\t{value: 0x2d7b, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x82, hi: 0x82},\n\t{value: 0x2d83, lo: 0x83, hi: 0x83},\n\t{value: 0x8105, lo: 0x84, hi: 0x84},\n\t{value: 0x8133, lo: 0xab, hi: 0xab},\n\t{value: 0x812e, lo: 0xac, hi: 0xac},\n\t{value: 0x8133, lo: 0xad, hi: 0xb3},\n\t// Block 0x38, offset 0x12b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xaa, hi: 0xab},\n\t// Block 0x39, offset 0x12d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8103, lo: 0xa6, hi: 0xa6},\n\t{value: 0x8105, lo: 0xb2, hi: 0xb3},\n\t// Block 0x3a, offset 0x130\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8103, lo: 0xb7, hi: 0xb7},\n\t// Block 0x3b, offset 0x132\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8133, lo: 0x90, hi: 0x92},\n\t{value: 0x8101, lo: 0x94, hi: 0x94},\n\t{value: 0x812e, lo: 0x95, hi: 0x99},\n\t{value: 0x8133, lo: 0x9a, hi: 0x9b},\n\t{value: 0x812e, lo: 0x9c, hi: 0x9f},\n\t{value: 0x8133, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8101, lo: 0xa2, hi: 0xa8},\n\t{value: 0x812e, lo: 0xad, hi: 0xad},\n\t{value: 0x8133, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8133, lo: 0xb8, hi: 0xb9},\n\t// Block 0x3c, offset 0x13d\n\t{value: 0x0004, lo: 0x03},\n\t{value: 0x0436, lo: 0x80, hi: 0x81},\n\t{value: 0x8100, lo: 0x97, hi: 0x97},\n\t{value: 0x8100, lo: 0xbe, hi: 0xbe},\n\t// Block 0x3d, offset 0x141\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x8133, lo: 0x90, hi: 0x91},\n\t{value: 0x8101, lo: 0x92, hi: 0x93},\n\t{value: 0x8133, lo: 0x94, hi: 0x97},\n\t{value: 0x8101, lo: 0x98, hi: 0x9a},\n\t{value: 0x8133, lo: 0x9b, hi: 0x9c},\n\t{value: 0x8133, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8101, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8133, lo: 0xa7, hi: 0xa7},\n\t{value: 0x812e, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8133, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8101, lo: 0xaa, hi: 0xab},\n\t{value: 0x812e, lo: 0xac, hi: 0xaf},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb0},\n\t// Block 0x3e, offset 0x14f\n\t{value: 0x4292, lo: 0x02},\n\t{value: 0x01bb, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0057, lo: 0xaa, hi: 0xab},\n\t// Block 0x3f, offset 0x152\n\t{value: 0x0007, lo: 0x05},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t{value: 0x3bd0, lo: 0x9a, hi: 0x9b},\n\t{value: 0x3bde, lo: 0xae, hi: 0xae},\n\t// Block 0x40, offset 0x158\n\t{value: 0x000e, lo: 0x05},\n\t{value: 0x3be5, lo: 0x8d, hi: 0x8e},\n\t{value: 0x3bec, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t// Block 0x41, offset 0x15e\n\t{value: 0x63f1, lo: 0x0a},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0x3bfa, lo: 0x84, hi: 0x84},\n\t{value: 0xa000, lo: 0x88, hi: 0x88},\n\t{value: 0x3c01, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0x3c08, lo: 0x8c, hi: 0x8c},\n\t{value: 0xa000, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3c0f, lo: 0xa4, hi: 0xa5},\n\t{value: 0x3c16, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xbc, hi: 0xbc},\n\t// Block 0x42, offset 0x169\n\t{value: 0x0007, lo: 0x03},\n\t{value: 0x3c7f, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3ca9, lo: 0xa2, hi: 0xa3},\n\t{value: 0x3cd3, lo: 0xaa, hi: 0xad},\n\t// Block 0x43, offset 0x16d\n\t{value: 0x0004, lo: 0x01},\n\t{value: 0x048e, lo: 0xa9, hi: 0xaa},\n\t// Block 0x44, offset 0x16f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x44f4, lo: 0x9c, hi: 0x9c},\n\t// Block 0x45, offset 0x171\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xaf, hi: 0xb1},\n\t// Block 0x46, offset 0x173\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xbf, hi: 0xbf},\n\t// Block 0x47, offset 0x175\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xa0, hi: 0xbf},\n\t// Block 0x48, offset 0x177\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x812d, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8132, lo: 0xab, hi: 0xab},\n\t{value: 0x8134, lo: 0xac, hi: 0xac},\n\t{value: 0x812f, lo: 0xad, hi: 0xad},\n\t{value: 0x8130, lo: 0xae, hi: 0xaf},\n\t// Block 0x49, offset 0x17d\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x4ab6, lo: 0xb3, hi: 0xb3},\n\t{value: 0x4ab6, lo: 0xb5, hi: 0xb6},\n\t{value: 0x4ab6, lo: 0xba, hi: 0xbf},\n\t// Block 0x4a, offset 0x181\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x4ab6, lo: 0x8f, hi: 0xa3},\n\t// Block 0x4b, offset 0x183\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xae, hi: 0xbe},\n\t// Block 0x4c, offset 0x185\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x8100, lo: 0x84, hi: 0x84},\n\t{value: 0x8100, lo: 0x87, hi: 0x87},\n\t{value: 0x8100, lo: 0x90, hi: 0x90},\n\t{value: 0x8100, lo: 0x9e, hi: 0x9e},\n\t{value: 0x8100, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8100, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8100, lo: 0xbb, hi: 0xbb},\n\t// Block 0x4d, offset 0x18d\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8100, lo: 0x80, hi: 0x80},\n\t{value: 0x8100, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8100, lo: 0x8e, hi: 0x8e},\n\t// Block 0x4e, offset 0x191\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8133, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8133, lo: 0xb4, hi: 0xbd},\n\t// Block 0x4f, offset 0x194\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0x9e, hi: 0x9f},\n\t// Block 0x50, offset 0x196\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb1},\n\t// Block 0x51, offset 0x198\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x86, hi: 0x86},\n\t{value: 0x8105, lo: 0xac, hi: 0xac},\n\t// Block 0x52, offset 0x19b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x84, hi: 0x84},\n\t{value: 0x8133, lo: 0xa0, hi: 0xb1},\n\t// Block 0x53, offset 0x19e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0xab, hi: 0xad},\n\t// Block 0x54, offset 0x1a0\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x93, hi: 0x93},\n\t// Block 0x55, offset 0x1a2\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8103, lo: 0xb3, hi: 0xb3},\n\t// Block 0x56, offset 0x1a4\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x80, hi: 0x80},\n\t// Block 0x57, offset 0x1a6\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8133, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812e, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8133, lo: 0xb7, hi: 0xb8},\n\t{value: 0x8133, lo: 0xbe, hi: 0xbf},\n\t// Block 0x58, offset 0x1ac\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8133, lo: 0x81, hi: 0x81},\n\t{value: 0x8105, lo: 0xb6, hi: 0xb6},\n\t// Block 0x59, offset 0x1af\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xad, hi: 0xad},\n\t// Block 0x5a, offset 0x1b1\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe500, lo: 0x80, hi: 0x80},\n\t{value: 0xc600, lo: 0x81, hi: 0x9b},\n\t{value: 0xe500, lo: 0x9c, hi: 0x9c},\n\t{value: 0xc600, lo: 0x9d, hi: 0xb7},\n\t{value: 0xe500, lo: 0xb8, hi: 0xb8},\n\t{value: 0xc600, lo: 0xb9, hi: 0xbf},\n\t// Block 0x5b, offset 0x1b8\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x93},\n\t{value: 0xe500, lo: 0x94, hi: 0x94},\n\t{value: 0xc600, lo: 0x95, hi: 0xaf},\n\t{value: 0xe500, lo: 0xb0, hi: 0xb0},\n\t{value: 0xc600, lo: 0xb1, hi: 0xbf},\n\t// Block 0x5c, offset 0x1be\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8b},\n\t{value: 0xe500, lo: 0x8c, hi: 0x8c},\n\t{value: 0xc600, lo: 0x8d, hi: 0xa7},\n\t{value: 0xe500, lo: 0xa8, hi: 0xa8},\n\t{value: 0xc600, lo: 0xa9, hi: 0xbf},\n\t// Block 0x5d, offset 0x1c4\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xc600, lo: 0x80, hi: 0x83},\n\t{value: 0xe500, lo: 0x84, hi: 0x84},\n\t{value: 0xc600, lo: 0x85, hi: 0x9f},\n\t{value: 0xe500, lo: 0xa0, hi: 0xa0},\n\t{value: 0xc600, lo: 0xa1, hi: 0xbb},\n\t{value: 0xe500, lo: 0xbc, hi: 0xbc},\n\t{value: 0xc600, lo: 0xbd, hi: 0xbf},\n\t// Block 0x5e, offset 0x1cc\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x97},\n\t{value: 0xe500, lo: 0x98, hi: 0x98},\n\t{value: 0xc600, lo: 0x99, hi: 0xb3},\n\t{value: 0xe500, lo: 0xb4, hi: 0xb4},\n\t{value: 0xc600, lo: 0xb5, hi: 0xbf},\n\t// Block 0x5f, offset 0x1d2\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8f},\n\t{value: 0xe500, lo: 0x90, hi: 0x90},\n\t{value: 0xc600, lo: 0x91, hi: 0xab},\n\t{value: 0xe500, lo: 0xac, hi: 0xac},\n\t{value: 0xc600, lo: 0xad, hi: 0xbf},\n\t// Block 0x60, offset 0x1d8\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t{value: 0xe500, lo: 0xa4, hi: 0xa4},\n\t{value: 0xc600, lo: 0xa5, hi: 0xbf},\n\t// Block 0x61, offset 0x1de\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t// Block 0x62, offset 0x1e2\n\t{value: 0x0006, lo: 0x0d},\n\t{value: 0x43a7, lo: 0x9d, hi: 0x9d},\n\t{value: 0x8116, lo: 0x9e, hi: 0x9e},\n\t{value: 0x4419, lo: 0x9f, hi: 0x9f},\n\t{value: 0x4407, lo: 0xaa, hi: 0xab},\n\t{value: 0x450b, lo: 0xac, hi: 0xac},\n\t{value: 0x4513, lo: 0xad, hi: 0xad},\n\t{value: 0x435f, lo: 0xae, hi: 0xb1},\n\t{value: 0x437d, lo: 0xb2, hi: 0xb4},\n\t{value: 0x4395, lo: 0xb5, hi: 0xb6},\n\t{value: 0x43a1, lo: 0xb8, hi: 0xb8},\n\t{value: 0x43ad, lo: 0xb9, hi: 0xbb},\n\t{value: 0x43c5, lo: 0xbc, hi: 0xbc},\n\t{value: 0x43cb, lo: 0xbe, hi: 0xbe},\n\t// Block 0x63, offset 0x1f0\n\t{value: 0x0006, lo: 0x08},\n\t{value: 0x43d1, lo: 0x80, hi: 0x81},\n\t{value: 0x43dd, lo: 0x83, hi: 0x84},\n\t{value: 0x43ef, lo: 0x86, hi: 0x89},\n\t{value: 0x4413, lo: 0x8a, hi: 0x8a},\n\t{value: 0x438f, lo: 0x8b, hi: 0x8b},\n\t{value: 0x4377, lo: 0x8c, hi: 0x8c},\n\t{value: 0x43bf, lo: 0x8d, hi: 0x8d},\n\t{value: 0x43e9, lo: 0x8e, hi: 0x8e},\n\t// Block 0x64, offset 0x1f9\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0xa4, hi: 0xa5},\n\t{value: 0x8100, lo: 0xb0, hi: 0xb1},\n\t// Block 0x65, offset 0x1fc\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0x9b, hi: 0x9d},\n\t{value: 0x8200, lo: 0x9e, hi: 0xa3},\n\t// Block 0x66, offset 0x1ff\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x90, hi: 0x90},\n\t// Block 0x67, offset 0x201\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0x99, hi: 0x99},\n\t{value: 0x8200, lo: 0xb2, hi: 0xb4},\n\t// Block 0x68, offset 0x204\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xbc, hi: 0xbd},\n\t// Block 0x69, offset 0x206\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8133, lo: 0xa0, hi: 0xa6},\n\t{value: 0x812e, lo: 0xa7, hi: 0xad},\n\t{value: 0x8133, lo: 0xae, hi: 0xaf},\n\t// Block 0x6a, offset 0x20a\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8100, lo: 0x89, hi: 0x8c},\n\t{value: 0x8100, lo: 0xb0, hi: 0xb2},\n\t{value: 0x8100, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8100, lo: 0xb6, hi: 0xbf},\n\t// Block 0x6b, offset 0x20f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x81, hi: 0x8c},\n\t// Block 0x6c, offset 0x211\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xb5, hi: 0xba},\n\t// Block 0x6d, offset 0x213\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x4ab6, lo: 0x9e, hi: 0x9f},\n\t{value: 0x4ab6, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4ab6, lo: 0xa5, hi: 0xa6},\n\t{value: 0x4ab6, lo: 0xaa, hi: 0xaf},\n\t// Block 0x6e, offset 0x218\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x4ab6, lo: 0x82, hi: 0x87},\n\t{value: 0x4ab6, lo: 0x8a, hi: 0x8f},\n\t{value: 0x4ab6, lo: 0x92, hi: 0x97},\n\t{value: 0x4ab6, lo: 0x9a, hi: 0x9c},\n\t{value: 0x8100, lo: 0xa3, hi: 0xa3},\n\t// Block 0x6f, offset 0x21e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0xbd, hi: 0xbd},\n\t// Block 0x70, offset 0x220\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0xa0, hi: 0xa0},\n\t// Block 0x71, offset 0x222\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xb6, hi: 0xba},\n\t// Block 0x72, offset 0x224\n\t{value: 0x002d, lo: 0x05},\n\t{value: 0x812e, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8133, lo: 0x8f, hi: 0x8f},\n\t{value: 0x8133, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8101, lo: 0xb9, hi: 0xba},\n\t{value: 0x8105, lo: 0xbf, hi: 0xbf},\n\t// Block 0x73, offset 0x22a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8133, lo: 0xa5, hi: 0xa5},\n\t{value: 0x812e, lo: 0xa6, hi: 0xa6},\n\t// Block 0x74, offset 0x22d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xa4, hi: 0xa7},\n\t// Block 0x75, offset 0x22f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xab, hi: 0xac},\n\t// Block 0x76, offset 0x231\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x812e, lo: 0x86, hi: 0x87},\n\t{value: 0x8133, lo: 0x88, hi: 0x8a},\n\t{value: 0x812e, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8133, lo: 0x8c, hi: 0x8c},\n\t{value: 0x812e, lo: 0x8d, hi: 0x90},\n\t// Block 0x77, offset 0x237\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x86, hi: 0x86},\n\t{value: 0x8105, lo: 0xbf, hi: 0xbf},\n\t// Block 0x78, offset 0x23a\n\t{value: 0x17fe, lo: 0x07},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x424f, lo: 0x9a, hi: 0x9a},\n\t{value: 0xa000, lo: 0x9b, hi: 0x9b},\n\t{value: 0x4259, lo: 0x9c, hi: 0x9c},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x4263, lo: 0xab, hi: 0xab},\n\t{value: 0x8105, lo: 0xb9, hi: 0xba},\n\t// Block 0x79, offset 0x242\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x8133, lo: 0x80, hi: 0x82},\n\t{value: 0x9900, lo: 0xa7, hi: 0xa7},\n\t{value: 0x2d8b, lo: 0xae, hi: 0xae},\n\t{value: 0x2d95, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb1, hi: 0xb2},\n\t{value: 0x8105, lo: 0xb3, hi: 0xb4},\n\t// Block 0x7a, offset 0x249\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x80, hi: 0x80},\n\t{value: 0x8103, lo: 0x8a, hi: 0x8a},\n\t// Block 0x7b, offset 0x24c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0xb5, hi: 0xb5},\n\t{value: 0x8103, lo: 0xb6, hi: 0xb6},\n\t// Block 0x7c, offset 0x24f\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x8103, lo: 0xa9, hi: 0xaa},\n\t// Block 0x7d, offset 0x251\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8103, lo: 0xbb, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x7e, offset 0x254\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2d9f, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2da9, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x8133, lo: 0xa6, hi: 0xac},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb4},\n\t// Block 0x7f, offset 0x25c\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8105, lo: 0x82, hi: 0x82},\n\t{value: 0x8103, lo: 0x86, hi: 0x86},\n\t{value: 0x8133, lo: 0x9e, hi: 0x9e},\n\t// Block 0x80, offset 0x260\n\t{value: 0x6b4d, lo: 0x06},\n\t{value: 0x9900, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb9, hi: 0xb9},\n\t{value: 0x9900, lo: 0xba, hi: 0xba},\n\t{value: 0x2dbd, lo: 0xbb, hi: 0xbb},\n\t{value: 0x2db3, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2dc7, lo: 0xbe, hi: 0xbe},\n\t// Block 0x81, offset 0x267\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x82, hi: 0x82},\n\t{value: 0x8103, lo: 0x83, hi: 0x83},\n\t// Block 0x82, offset 0x26a\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x9900, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2dd1, lo: 0xba, hi: 0xba},\n\t{value: 0x2ddb, lo: 0xbb, hi: 0xbb},\n\t{value: 0x8105, lo: 0xbf, hi: 0xbf},\n\t// Block 0x83, offset 0x270\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8103, lo: 0x80, hi: 0x80},\n\t// Block 0x84, offset 0x272\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8103, lo: 0xb7, hi: 0xb7},\n\t// Block 0x85, offset 0x275\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xab, hi: 0xab},\n\t// Block 0x86, offset 0x277\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8103, lo: 0xba, hi: 0xba},\n\t// Block 0x87, offset 0x27a\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x9900, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb5, hi: 0xb5},\n\t{value: 0x2de5, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8105, lo: 0xbd, hi: 0xbe},\n\t// Block 0x88, offset 0x27f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8103, lo: 0x83, hi: 0x83},\n\t// Block 0x89, offset 0x281\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xa0, hi: 0xa0},\n\t// Block 0x8a, offset 0x283\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xb4, hi: 0xb4},\n\t// Block 0x8b, offset 0x285\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x87, hi: 0x87},\n\t// Block 0x8c, offset 0x287\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x99, hi: 0x99},\n\t// Block 0x8d, offset 0x289\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8103, lo: 0x82, hi: 0x82},\n\t{value: 0x8105, lo: 0x84, hi: 0x85},\n\t// Block 0x8e, offset 0x28c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x97, hi: 0x97},\n\t// Block 0x8f, offset 0x28e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0xb0, hi: 0xb4},\n\t// Block 0x90, offset 0x290\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb6},\n\t// Block 0x91, offset 0x292\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb0, hi: 0xb1},\n\t// Block 0x92, offset 0x294\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0x9e, hi: 0x9e},\n\t// Block 0x93, offset 0x296\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x45e3, lo: 0x9e, hi: 0x9e},\n\t{value: 0x45ed, lo: 0x9f, hi: 0x9f},\n\t{value: 0x4621, lo: 0xa0, hi: 0xa0},\n\t{value: 0x462f, lo: 0xa1, hi: 0xa1},\n\t{value: 0x463d, lo: 0xa2, hi: 0xa2},\n\t{value: 0x464b, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4659, lo: 0xa4, hi: 0xa4},\n\t{value: 0x812c, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8101, lo: 0xa7, hi: 0xa9},\n\t{value: 0x8131, lo: 0xad, hi: 0xad},\n\t{value: 0x812c, lo: 0xae, hi: 0xb2},\n\t{value: 0x812e, lo: 0xbb, hi: 0xbf},\n\t// Block 0x94, offset 0x2a3\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x812e, lo: 0x80, hi: 0x82},\n\t{value: 0x8133, lo: 0x85, hi: 0x89},\n\t{value: 0x812e, lo: 0x8a, hi: 0x8b},\n\t{value: 0x8133, lo: 0xaa, hi: 0xad},\n\t{value: 0x45f7, lo: 0xbb, hi: 0xbb},\n\t{value: 0x4601, lo: 0xbc, hi: 0xbc},\n\t{value: 0x4667, lo: 0xbd, hi: 0xbd},\n\t{value: 0x4683, lo: 0xbe, hi: 0xbe},\n\t{value: 0x4675, lo: 0xbf, hi: 0xbf},\n\t// Block 0x95, offset 0x2ad\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x4691, lo: 0x80, hi: 0x80},\n\t// Block 0x96, offset 0x2af\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0x82, hi: 0x84},\n\t// Block 0x97, offset 0x2b1\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8133, lo: 0x80, hi: 0x86},\n\t{value: 0x8133, lo: 0x88, hi: 0x98},\n\t{value: 0x8133, lo: 0x9b, hi: 0xa1},\n\t{value: 0x8133, lo: 0xa3, hi: 0xa4},\n\t{value: 0x8133, lo: 0xa6, hi: 0xaa},\n\t// Block 0x98, offset 0x2b7\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xac, hi: 0xaf},\n\t// Block 0x99, offset 0x2b9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0x90, hi: 0x96},\n\t// Block 0x9a, offset 0x2bb\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8133, lo: 0x84, hi: 0x89},\n\t{value: 0x8103, lo: 0x8a, hi: 0x8a},\n\t// Block 0x9b, offset 0x2be\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x93, hi: 0x93},\n}\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfkcTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfkcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfkcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfkcTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfkcValues[c0]\n\t}\n\ti := nfkcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfkcTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfkcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfkcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfkcTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfkcValues[c0]\n\t}\n\ti := nfkcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// nfkcTrie. Total size: 18768 bytes (18.33 KiB). Checksum: c51186dd2412943d.\ntype nfkcTrie struct{}\n\nfunc newNfkcTrie(i int) *nfkcTrie {\n\treturn &nfkcTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *nfkcTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 92:\n\t\treturn uint16(nfkcValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 92\n\t\treturn uint16(nfkcSparse.lookup(n, b))\n\t}\n}\n\n// nfkcValues: 94 blocks, 6016 entries, 12032 bytes\n// The third block is the zero block.\nvar nfkcValues = [6016]uint16{\n\t// Block 0x0, offset 0x0\n\t0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000,\n\t// Block 0x1, offset 0x40\n\t0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000,\n\t0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000,\n\t0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000,\n\t0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000,\n\t0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000,\n\t0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000,\n\t0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000,\n\t0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000,\n\t0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000,\n\t0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x2f86, 0xc1: 0x2f8b, 0xc2: 0x469f, 0xc3: 0x2f90, 0xc4: 0x46ae, 0xc5: 0x46b3,\n\t0xc6: 0xa000, 0xc7: 0x46bd, 0xc8: 0x2ff9, 0xc9: 0x2ffe, 0xca: 0x46c2, 0xcb: 0x3012,\n\t0xcc: 0x3085, 0xcd: 0x308a, 0xce: 0x308f, 0xcf: 0x46d6, 0xd1: 0x311b,\n\t0xd2: 0x313e, 0xd3: 0x3143, 0xd4: 0x46e0, 0xd5: 0x46e5, 0xd6: 0x46f4,\n\t0xd8: 0xa000, 0xd9: 0x31ca, 0xda: 0x31cf, 0xdb: 0x31d4, 0xdc: 0x4726, 0xdd: 0x324c,\n\t0xe0: 0x3292, 0xe1: 0x3297, 0xe2: 0x4730, 0xe3: 0x329c,\n\t0xe4: 0x473f, 0xe5: 0x4744, 0xe6: 0xa000, 0xe7: 0x474e, 0xe8: 0x3305, 0xe9: 0x330a,\n\t0xea: 0x4753, 0xeb: 0x331e, 0xec: 0x3396, 0xed: 0x339b, 0xee: 0x33a0, 0xef: 0x4767,\n\t0xf1: 0x342c, 0xf2: 0x344f, 0xf3: 0x3454, 0xf4: 0x4771, 0xf5: 0x4776,\n\t0xf6: 0x4785, 0xf8: 0xa000, 0xf9: 0x34e0, 0xfa: 0x34e5, 0xfb: 0x34ea,\n\t0xfc: 0x47b7, 0xfd: 0x3567, 0xff: 0x3580,\n\t// Block 0x4, offset 0x100\n\t0x100: 0x2f95, 0x101: 0x32a1, 0x102: 0x46a4, 0x103: 0x4735, 0x104: 0x2fb3, 0x105: 0x32bf,\n\t0x106: 0x2fc7, 0x107: 0x32d3, 0x108: 0x2fcc, 0x109: 0x32d8, 0x10a: 0x2fd1, 0x10b: 0x32dd,\n\t0x10c: 0x2fd6, 0x10d: 0x32e2, 0x10e: 0x2fe0, 0x10f: 0x32ec,\n\t0x112: 0x46c7, 0x113: 0x4758, 0x114: 0x3008, 0x115: 0x3314, 0x116: 0x300d, 0x117: 0x3319,\n\t0x118: 0x302b, 0x119: 0x3337, 0x11a: 0x301c, 0x11b: 0x3328, 0x11c: 0x3044, 0x11d: 0x3350,\n\t0x11e: 0x304e, 0x11f: 0x335a, 0x120: 0x3053, 0x121: 0x335f, 0x122: 0x305d, 0x123: 0x3369,\n\t0x124: 0x3062, 0x125: 0x336e, 0x128: 0x3094, 0x129: 0x33a5,\n\t0x12a: 0x3099, 0x12b: 0x33aa, 0x12c: 0x309e, 0x12d: 0x33af, 0x12e: 0x30c1, 0x12f: 0x33cd,\n\t0x130: 0x30a3, 0x132: 0x1960, 0x133: 0x19ed, 0x134: 0x30cb, 0x135: 0x33d7,\n\t0x136: 0x30df, 0x137: 0x33f0, 0x139: 0x30e9, 0x13a: 0x33fa, 0x13b: 0x30f3,\n\t0x13c: 0x3404, 0x13d: 0x30ee, 0x13e: 0x33ff, 0x13f: 0x1bb2,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x1c3a, 0x143: 0x3116, 0x144: 0x3427, 0x145: 0x312f,\n\t0x146: 0x3440, 0x147: 0x3125, 0x148: 0x3436, 0x149: 0x1c62,\n\t0x14c: 0x46ea, 0x14d: 0x477b, 0x14e: 0x3148, 0x14f: 0x3459, 0x150: 0x3152, 0x151: 0x3463,\n\t0x154: 0x3170, 0x155: 0x3481, 0x156: 0x3189, 0x157: 0x349a,\n\t0x158: 0x317a, 0x159: 0x348b, 0x15a: 0x470d, 0x15b: 0x479e, 0x15c: 0x3193, 0x15d: 0x34a4,\n\t0x15e: 0x31a2, 0x15f: 0x34b3, 0x160: 0x4712, 0x161: 0x47a3, 0x162: 0x31bb, 0x163: 0x34d1,\n\t0x164: 0x31ac, 0x165: 0x34c2, 0x168: 0x471c, 0x169: 0x47ad,\n\t0x16a: 0x4721, 0x16b: 0x47b2, 0x16c: 0x31d9, 0x16d: 0x34ef, 0x16e: 0x31e3, 0x16f: 0x34f9,\n\t0x170: 0x31e8, 0x171: 0x34fe, 0x172: 0x3206, 0x173: 0x351c, 0x174: 0x3229, 0x175: 0x353f,\n\t0x176: 0x3251, 0x177: 0x356c, 0x178: 0x3265, 0x179: 0x3274, 0x17a: 0x3594, 0x17b: 0x327e,\n\t0x17c: 0x359e, 0x17d: 0x3283, 0x17e: 0x35a3, 0x17f: 0x00a7,\n\t// Block 0x6, offset 0x180\n\t0x184: 0x2e05, 0x185: 0x2e0b,\n\t0x186: 0x2e11, 0x187: 0x1975, 0x188: 0x1978, 0x189: 0x1a0e, 0x18a: 0x198d, 0x18b: 0x1990,\n\t0x18c: 0x1a44, 0x18d: 0x2f9f, 0x18e: 0x32ab, 0x18f: 0x30ad, 0x190: 0x33b9, 0x191: 0x3157,\n\t0x192: 0x3468, 0x193: 0x31ed, 0x194: 0x3503, 0x195: 0x39e6, 0x196: 0x3b75, 0x197: 0x39df,\n\t0x198: 0x3b6e, 0x199: 0x39ed, 0x19a: 0x3b7c, 0x19b: 0x39d8, 0x19c: 0x3b67,\n\t0x19e: 0x38c7, 0x19f: 0x3a56, 0x1a0: 0x38c0, 0x1a1: 0x3a4f, 0x1a2: 0x35ca, 0x1a3: 0x35dc,\n\t0x1a6: 0x3058, 0x1a7: 0x3364, 0x1a8: 0x30d5, 0x1a9: 0x33e6,\n\t0x1aa: 0x4703, 0x1ab: 0x4794, 0x1ac: 0x39a7, 0x1ad: 0x3b36, 0x1ae: 0x35ee, 0x1af: 0x35f4,\n\t0x1b0: 0x33dc, 0x1b1: 0x1945, 0x1b2: 0x1948, 0x1b3: 0x19d5, 0x1b4: 0x303f, 0x1b5: 0x334b,\n\t0x1b8: 0x3111, 0x1b9: 0x3422, 0x1ba: 0x38ce, 0x1bb: 0x3a5d,\n\t0x1bc: 0x35c4, 0x1bd: 0x35d6, 0x1be: 0x35d0, 0x1bf: 0x35e2,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x2fa4, 0x1c1: 0x32b0, 0x1c2: 0x2fa9, 0x1c3: 0x32b5, 0x1c4: 0x3021, 0x1c5: 0x332d,\n\t0x1c6: 0x3026, 0x1c7: 0x3332, 0x1c8: 0x30b2, 0x1c9: 0x33be, 0x1ca: 0x30b7, 0x1cb: 0x33c3,\n\t0x1cc: 0x315c, 0x1cd: 0x346d, 0x1ce: 0x3161, 0x1cf: 0x3472, 0x1d0: 0x317f, 0x1d1: 0x3490,\n\t0x1d2: 0x3184, 0x1d3: 0x3495, 0x1d4: 0x31f2, 0x1d5: 0x3508, 0x1d6: 0x31f7, 0x1d7: 0x350d,\n\t0x1d8: 0x319d, 0x1d9: 0x34ae, 0x1da: 0x31b6, 0x1db: 0x34cc,\n\t0x1de: 0x3071, 0x1df: 0x337d,\n\t0x1e6: 0x46a9, 0x1e7: 0x473a, 0x1e8: 0x46d1, 0x1e9: 0x4762,\n\t0x1ea: 0x3976, 0x1eb: 0x3b05, 0x1ec: 0x3953, 0x1ed: 0x3ae2, 0x1ee: 0x46ef, 0x1ef: 0x4780,\n\t0x1f0: 0x396f, 0x1f1: 0x3afe, 0x1f2: 0x325b, 0x1f3: 0x3576,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x9933, 0x201: 0x9933, 0x202: 0x9933, 0x203: 0x9933, 0x204: 0x9933, 0x205: 0x8133,\n\t0x206: 0x9933, 0x207: 0x9933, 0x208: 0x9933, 0x209: 0x9933, 0x20a: 0x9933, 0x20b: 0x9933,\n\t0x20c: 0x9933, 0x20d: 0x8133, 0x20e: 0x8133, 0x20f: 0x9933, 0x210: 0x8133, 0x211: 0x9933,\n\t0x212: 0x8133, 0x213: 0x9933, 0x214: 0x9933, 0x215: 0x8134, 0x216: 0x812e, 0x217: 0x812e,\n\t0x218: 0x812e, 0x219: 0x812e, 0x21a: 0x8134, 0x21b: 0x992c, 0x21c: 0x812e, 0x21d: 0x812e,\n\t0x21e: 0x812e, 0x21f: 0x812e, 0x220: 0x812e, 0x221: 0x812a, 0x222: 0x812a, 0x223: 0x992e,\n\t0x224: 0x992e, 0x225: 0x992e, 0x226: 0x992e, 0x227: 0x992a, 0x228: 0x992a, 0x229: 0x812e,\n\t0x22a: 0x812e, 0x22b: 0x812e, 0x22c: 0x812e, 0x22d: 0x992e, 0x22e: 0x992e, 0x22f: 0x812e,\n\t0x230: 0x992e, 0x231: 0x992e, 0x232: 0x812e, 0x233: 0x812e, 0x234: 0x8101, 0x235: 0x8101,\n\t0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812e, 0x23a: 0x812e, 0x23b: 0x812e,\n\t0x23c: 0x812e, 0x23d: 0x8133, 0x23e: 0x8133, 0x23f: 0x8133,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x49c5, 0x241: 0x49ca, 0x242: 0x9933, 0x243: 0x49cf, 0x244: 0x4a88, 0x245: 0x9937,\n\t0x246: 0x8133, 0x247: 0x812e, 0x248: 0x812e, 0x249: 0x812e, 0x24a: 0x8133, 0x24b: 0x8133,\n\t0x24c: 0x8133, 0x24d: 0x812e, 0x24e: 0x812e, 0x250: 0x8133, 0x251: 0x8133,\n\t0x252: 0x8133, 0x253: 0x812e, 0x254: 0x812e, 0x255: 0x812e, 0x256: 0x812e, 0x257: 0x8133,\n\t0x258: 0x8134, 0x259: 0x812e, 0x25a: 0x812e, 0x25b: 0x8133, 0x25c: 0x8135, 0x25d: 0x8136,\n\t0x25e: 0x8136, 0x25f: 0x8135, 0x260: 0x8136, 0x261: 0x8136, 0x262: 0x8135, 0x263: 0x8133,\n\t0x264: 0x8133, 0x265: 0x8133, 0x266: 0x8133, 0x267: 0x8133, 0x268: 0x8133, 0x269: 0x8133,\n\t0x26a: 0x8133, 0x26b: 0x8133, 0x26c: 0x8133, 0x26d: 0x8133, 0x26e: 0x8133, 0x26f: 0x8133,\n\t0x274: 0x0173,\n\t0x27a: 0x42bc,\n\t0x27e: 0x0037,\n\t// Block 0xa, offset 0x280\n\t0x284: 0x4271, 0x285: 0x4492,\n\t0x286: 0x3600, 0x287: 0x00ce, 0x288: 0x361e, 0x289: 0x362a, 0x28a: 0x363c,\n\t0x28c: 0x365a, 0x28e: 0x366c, 0x28f: 0x368a, 0x290: 0x3e1f, 0x291: 0xa000,\n\t0x295: 0xa000, 0x297: 0xa000,\n\t0x299: 0xa000,\n\t0x29f: 0xa000, 0x2a1: 0xa000,\n\t0x2a5: 0xa000, 0x2a9: 0xa000,\n\t0x2aa: 0x364e, 0x2ab: 0x367e, 0x2ac: 0x4815, 0x2ad: 0x36ae, 0x2ae: 0x483f, 0x2af: 0x36c0,\n\t0x2b0: 0x3e87, 0x2b1: 0xa000, 0x2b5: 0xa000,\n\t0x2b7: 0xa000, 0x2b9: 0xa000,\n\t0x2bf: 0xa000,\n\t// Block 0xb, offset 0x2c0\n\t0x2c1: 0xa000, 0x2c5: 0xa000,\n\t0x2c9: 0xa000, 0x2ca: 0x4857, 0x2cb: 0x4875,\n\t0x2cc: 0x36de, 0x2cd: 0x36f6, 0x2ce: 0x488d, 0x2d0: 0x01c1, 0x2d1: 0x01d3,\n\t0x2d2: 0x01af, 0x2d3: 0x4323, 0x2d4: 0x4329, 0x2d5: 0x01fd, 0x2d6: 0x01eb,\n\t0x2f0: 0x01d9, 0x2f1: 0x01ee, 0x2f2: 0x01f1, 0x2f4: 0x018b, 0x2f5: 0x01ca,\n\t0x2f9: 0x01a9,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x3738, 0x301: 0x3744, 0x303: 0x3732,\n\t0x306: 0xa000, 0x307: 0x3720,\n\t0x30c: 0x3774, 0x30d: 0x375c, 0x30e: 0x3786, 0x310: 0xa000,\n\t0x313: 0xa000, 0x315: 0xa000, 0x316: 0xa000, 0x317: 0xa000,\n\t0x318: 0xa000, 0x319: 0x3768, 0x31a: 0xa000,\n\t0x31e: 0xa000, 0x323: 0xa000,\n\t0x327: 0xa000,\n\t0x32b: 0xa000, 0x32d: 0xa000,\n\t0x330: 0xa000, 0x333: 0xa000, 0x335: 0xa000,\n\t0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x37ec, 0x33a: 0xa000,\n\t0x33e: 0xa000,\n\t// Block 0xd, offset 0x340\n\t0x341: 0x374a, 0x342: 0x37ce,\n\t0x350: 0x3726, 0x351: 0x37aa,\n\t0x352: 0x372c, 0x353: 0x37b0, 0x356: 0x373e, 0x357: 0x37c2,\n\t0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x3840, 0x35b: 0x3846, 0x35c: 0x3750, 0x35d: 0x37d4,\n\t0x35e: 0x3756, 0x35f: 0x37da, 0x362: 0x3762, 0x363: 0x37e6,\n\t0x364: 0x376e, 0x365: 0x37f2, 0x366: 0x377a, 0x367: 0x37fe, 0x368: 0xa000, 0x369: 0xa000,\n\t0x36a: 0x384c, 0x36b: 0x3852, 0x36c: 0x37a4, 0x36d: 0x3828, 0x36e: 0x3780, 0x36f: 0x3804,\n\t0x370: 0x378c, 0x371: 0x3810, 0x372: 0x3792, 0x373: 0x3816, 0x374: 0x3798, 0x375: 0x381c,\n\t0x378: 0x379e, 0x379: 0x3822,\n\t// Block 0xe, offset 0x380\n\t0x387: 0x1d67,\n\t0x391: 0x812e,\n\t0x392: 0x8133, 0x393: 0x8133, 0x394: 0x8133, 0x395: 0x8133, 0x396: 0x812e, 0x397: 0x8133,\n\t0x398: 0x8133, 0x399: 0x8133, 0x39a: 0x812f, 0x39b: 0x812e, 0x39c: 0x8133, 0x39d: 0x8133,\n\t0x39e: 0x8133, 0x39f: 0x8133, 0x3a0: 0x8133, 0x3a1: 0x8133, 0x3a2: 0x812e, 0x3a3: 0x812e,\n\t0x3a4: 0x812e, 0x3a5: 0x812e, 0x3a6: 0x812e, 0x3a7: 0x812e, 0x3a8: 0x8133, 0x3a9: 0x8133,\n\t0x3aa: 0x812e, 0x3ab: 0x8133, 0x3ac: 0x8133, 0x3ad: 0x812f, 0x3ae: 0x8132, 0x3af: 0x8133,\n\t0x3b0: 0x8106, 0x3b1: 0x8107, 0x3b2: 0x8108, 0x3b3: 0x8109, 0x3b4: 0x810a, 0x3b5: 0x810b,\n\t0x3b6: 0x810c, 0x3b7: 0x810d, 0x3b8: 0x810e, 0x3b9: 0x810f, 0x3ba: 0x810f, 0x3bb: 0x8110,\n\t0x3bc: 0x8111, 0x3bd: 0x8112, 0x3bf: 0x8113,\n\t// Block 0xf, offset 0x3c0\n\t0x3c8: 0xa000, 0x3ca: 0xa000, 0x3cb: 0x8117,\n\t0x3cc: 0x8118, 0x3cd: 0x8119, 0x3ce: 0x811a, 0x3cf: 0x811b, 0x3d0: 0x811c, 0x3d1: 0x811d,\n\t0x3d2: 0x811e, 0x3d3: 0x9933, 0x3d4: 0x9933, 0x3d5: 0x992e, 0x3d6: 0x812e, 0x3d7: 0x8133,\n\t0x3d8: 0x8133, 0x3d9: 0x8133, 0x3da: 0x8133, 0x3db: 0x8133, 0x3dc: 0x812e, 0x3dd: 0x8133,\n\t0x3de: 0x8133, 0x3df: 0x812e,\n\t0x3f0: 0x811f, 0x3f5: 0x1d8a,\n\t0x3f6: 0x2019, 0x3f7: 0x2055, 0x3f8: 0x2050,\n\t// Block 0x10, offset 0x400\n\t0x413: 0x812e, 0x414: 0x8133, 0x415: 0x8133, 0x416: 0x8133, 0x417: 0x8133,\n\t0x418: 0x8133, 0x419: 0x8133, 0x41a: 0x8133, 0x41b: 0x8133, 0x41c: 0x8133, 0x41d: 0x8133,\n\t0x41e: 0x8133, 0x41f: 0x8133, 0x420: 0x8133, 0x421: 0x8133, 0x423: 0x812e,\n\t0x424: 0x8133, 0x425: 0x8133, 0x426: 0x812e, 0x427: 0x8133, 0x428: 0x8133, 0x429: 0x812e,\n\t0x42a: 0x8133, 0x42b: 0x8133, 0x42c: 0x8133, 0x42d: 0x812e, 0x42e: 0x812e, 0x42f: 0x812e,\n\t0x430: 0x8117, 0x431: 0x8118, 0x432: 0x8119, 0x433: 0x8133, 0x434: 0x8133, 0x435: 0x8133,\n\t0x436: 0x812e, 0x437: 0x8133, 0x438: 0x8133, 0x439: 0x812e, 0x43a: 0x812e, 0x43b: 0x8133,\n\t0x43c: 0x8133, 0x43d: 0x8133, 0x43e: 0x8133, 0x43f: 0x8133,\n\t// Block 0x11, offset 0x440\n\t0x445: 0xa000,\n\t0x446: 0x2d33, 0x447: 0xa000, 0x448: 0x2d3b, 0x449: 0xa000, 0x44a: 0x2d43, 0x44b: 0xa000,\n\t0x44c: 0x2d4b, 0x44d: 0xa000, 0x44e: 0x2d53, 0x451: 0xa000,\n\t0x452: 0x2d5b,\n\t0x474: 0x8103, 0x475: 0x9900,\n\t0x47a: 0xa000, 0x47b: 0x2d63,\n\t0x47c: 0xa000, 0x47d: 0x2d6b, 0x47e: 0xa000, 0x47f: 0xa000,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x0069, 0x481: 0x006b, 0x482: 0x006f, 0x483: 0x0083, 0x484: 0x00f5, 0x485: 0x00f8,\n\t0x486: 0x0416, 0x487: 0x0085, 0x488: 0x0089, 0x489: 0x008b, 0x48a: 0x0104, 0x48b: 0x0107,\n\t0x48c: 0x010a, 0x48d: 0x008f, 0x48f: 0x0097, 0x490: 0x009b, 0x491: 0x00e0,\n\t0x492: 0x009f, 0x493: 0x00fe, 0x494: 0x041a, 0x495: 0x041e, 0x496: 0x00a1, 0x497: 0x00a9,\n\t0x498: 0x00ab, 0x499: 0x0426, 0x49a: 0x012b, 0x49b: 0x00ad, 0x49c: 0x042a, 0x49d: 0x01c1,\n\t0x49e: 0x01c4, 0x49f: 0x01c7, 0x4a0: 0x01fd, 0x4a1: 0x0200, 0x4a2: 0x0093, 0x4a3: 0x00a5,\n\t0x4a4: 0x00ab, 0x4a5: 0x00ad, 0x4a6: 0x01c1, 0x4a7: 0x01c4, 0x4a8: 0x01ee, 0x4a9: 0x01fd,\n\t0x4aa: 0x0200,\n\t0x4b8: 0x020f,\n\t// Block 0x13, offset 0x4c0\n\t0x4db: 0x00fb, 0x4dc: 0x0087, 0x4dd: 0x0101,\n\t0x4de: 0x00d4, 0x4df: 0x010a, 0x4e0: 0x008d, 0x4e1: 0x010d, 0x4e2: 0x0110, 0x4e3: 0x0116,\n\t0x4e4: 0x011c, 0x4e5: 0x011f, 0x4e6: 0x0122, 0x4e7: 0x042e, 0x4e8: 0x016d, 0x4e9: 0x0128,\n\t0x4ea: 0x0432, 0x4eb: 0x0170, 0x4ec: 0x0131, 0x4ed: 0x012e, 0x4ee: 0x0134, 0x4ef: 0x0137,\n\t0x4f0: 0x013a, 0x4f1: 0x013d, 0x4f2: 0x0140, 0x4f3: 0x014c, 0x4f4: 0x014f, 0x4f5: 0x00ec,\n\t0x4f6: 0x0152, 0x4f7: 0x0155, 0x4f8: 0x0422, 0x4f9: 0x0158, 0x4fa: 0x015b, 0x4fb: 0x00b5,\n\t0x4fc: 0x0161, 0x4fd: 0x0164, 0x4fe: 0x0167, 0x4ff: 0x01d3,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x8133, 0x501: 0x8133, 0x502: 0x812e, 0x503: 0x8133, 0x504: 0x8133, 0x505: 0x8133,\n\t0x506: 0x8133, 0x507: 0x8133, 0x508: 0x8133, 0x509: 0x8133, 0x50a: 0x812e, 0x50b: 0x8133,\n\t0x50c: 0x8133, 0x50d: 0x8136, 0x50e: 0x812b, 0x50f: 0x812e, 0x510: 0x812a, 0x511: 0x8133,\n\t0x512: 0x8133, 0x513: 0x8133, 0x514: 0x8133, 0x515: 0x8133, 0x516: 0x8133, 0x517: 0x8133,\n\t0x518: 0x8133, 0x519: 0x8133, 0x51a: 0x8133, 0x51b: 0x8133, 0x51c: 0x8133, 0x51d: 0x8133,\n\t0x51e: 0x8133, 0x51f: 0x8133, 0x520: 0x8133, 0x521: 0x8133, 0x522: 0x8133, 0x523: 0x8133,\n\t0x524: 0x8133, 0x525: 0x8133, 0x526: 0x8133, 0x527: 0x8133, 0x528: 0x8133, 0x529: 0x8133,\n\t0x52a: 0x8133, 0x52b: 0x8133, 0x52c: 0x8133, 0x52d: 0x8133, 0x52e: 0x8133, 0x52f: 0x8133,\n\t0x530: 0x8133, 0x531: 0x8133, 0x532: 0x8133, 0x533: 0x8133, 0x534: 0x8133, 0x535: 0x8133,\n\t0x536: 0x8134, 0x537: 0x8132, 0x538: 0x8132, 0x539: 0x812e, 0x53b: 0x8133,\n\t0x53c: 0x8135, 0x53d: 0x812e, 0x53e: 0x8133, 0x53f: 0x812e,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x2fae, 0x541: 0x32ba, 0x542: 0x2fb8, 0x543: 0x32c4, 0x544: 0x2fbd, 0x545: 0x32c9,\n\t0x546: 0x2fc2, 0x547: 0x32ce, 0x548: 0x38e3, 0x549: 0x3a72, 0x54a: 0x2fdb, 0x54b: 0x32e7,\n\t0x54c: 0x2fe5, 0x54d: 0x32f1, 0x54e: 0x2ff4, 0x54f: 0x3300, 0x550: 0x2fea, 0x551: 0x32f6,\n\t0x552: 0x2fef, 0x553: 0x32fb, 0x554: 0x3906, 0x555: 0x3a95, 0x556: 0x390d, 0x557: 0x3a9c,\n\t0x558: 0x3030, 0x559: 0x333c, 0x55a: 0x3035, 0x55b: 0x3341, 0x55c: 0x391b, 0x55d: 0x3aaa,\n\t0x55e: 0x303a, 0x55f: 0x3346, 0x560: 0x3049, 0x561: 0x3355, 0x562: 0x3067, 0x563: 0x3373,\n\t0x564: 0x3076, 0x565: 0x3382, 0x566: 0x306c, 0x567: 0x3378, 0x568: 0x307b, 0x569: 0x3387,\n\t0x56a: 0x3080, 0x56b: 0x338c, 0x56c: 0x30c6, 0x56d: 0x33d2, 0x56e: 0x3922, 0x56f: 0x3ab1,\n\t0x570: 0x30d0, 0x571: 0x33e1, 0x572: 0x30da, 0x573: 0x33eb, 0x574: 0x30e4, 0x575: 0x33f5,\n\t0x576: 0x46db, 0x577: 0x476c, 0x578: 0x3929, 0x579: 0x3ab8, 0x57a: 0x30fd, 0x57b: 0x340e,\n\t0x57c: 0x30f8, 0x57d: 0x3409, 0x57e: 0x3102, 0x57f: 0x3413,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x3107, 0x581: 0x3418, 0x582: 0x310c, 0x583: 0x341d, 0x584: 0x3120, 0x585: 0x3431,\n\t0x586: 0x312a, 0x587: 0x343b, 0x588: 0x3139, 0x589: 0x344a, 0x58a: 0x3134, 0x58b: 0x3445,\n\t0x58c: 0x394c, 0x58d: 0x3adb, 0x58e: 0x395a, 0x58f: 0x3ae9, 0x590: 0x3961, 0x591: 0x3af0,\n\t0x592: 0x3968, 0x593: 0x3af7, 0x594: 0x3166, 0x595: 0x3477, 0x596: 0x316b, 0x597: 0x347c,\n\t0x598: 0x3175, 0x599: 0x3486, 0x59a: 0x4708, 0x59b: 0x4799, 0x59c: 0x39ae, 0x59d: 0x3b3d,\n\t0x59e: 0x318e, 0x59f: 0x349f, 0x5a0: 0x3198, 0x5a1: 0x34a9, 0x5a2: 0x4717, 0x5a3: 0x47a8,\n\t0x5a4: 0x39b5, 0x5a5: 0x3b44, 0x5a6: 0x39bc, 0x5a7: 0x3b4b, 0x5a8: 0x39c3, 0x5a9: 0x3b52,\n\t0x5aa: 0x31a7, 0x5ab: 0x34b8, 0x5ac: 0x31b1, 0x5ad: 0x34c7, 0x5ae: 0x31c5, 0x5af: 0x34db,\n\t0x5b0: 0x31c0, 0x5b1: 0x34d6, 0x5b2: 0x3201, 0x5b3: 0x3517, 0x5b4: 0x3210, 0x5b5: 0x3526,\n\t0x5b6: 0x320b, 0x5b7: 0x3521, 0x5b8: 0x39ca, 0x5b9: 0x3b59, 0x5ba: 0x39d1, 0x5bb: 0x3b60,\n\t0x5bc: 0x3215, 0x5bd: 0x352b, 0x5be: 0x321a, 0x5bf: 0x3530,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x321f, 0x5c1: 0x3535, 0x5c2: 0x3224, 0x5c3: 0x353a, 0x5c4: 0x3233, 0x5c5: 0x3549,\n\t0x5c6: 0x322e, 0x5c7: 0x3544, 0x5c8: 0x3238, 0x5c9: 0x3553, 0x5ca: 0x323d, 0x5cb: 0x3558,\n\t0x5cc: 0x3242, 0x5cd: 0x355d, 0x5ce: 0x3260, 0x5cf: 0x357b, 0x5d0: 0x3279, 0x5d1: 0x3599,\n\t0x5d2: 0x3288, 0x5d3: 0x35a8, 0x5d4: 0x328d, 0x5d5: 0x35ad, 0x5d6: 0x3391, 0x5d7: 0x34bd,\n\t0x5d8: 0x354e, 0x5d9: 0x358a, 0x5da: 0x1be6, 0x5db: 0x42ee,\n\t0x5e0: 0x46b8, 0x5e1: 0x4749, 0x5e2: 0x2f9a, 0x5e3: 0x32a6,\n\t0x5e4: 0x388f, 0x5e5: 0x3a1e, 0x5e6: 0x3888, 0x5e7: 0x3a17, 0x5e8: 0x389d, 0x5e9: 0x3a2c,\n\t0x5ea: 0x3896, 0x5eb: 0x3a25, 0x5ec: 0x38d5, 0x5ed: 0x3a64, 0x5ee: 0x38ab, 0x5ef: 0x3a3a,\n\t0x5f0: 0x38a4, 0x5f1: 0x3a33, 0x5f2: 0x38b9, 0x5f3: 0x3a48, 0x5f4: 0x38b2, 0x5f5: 0x3a41,\n\t0x5f6: 0x38dc, 0x5f7: 0x3a6b, 0x5f8: 0x46cc, 0x5f9: 0x475d, 0x5fa: 0x3017, 0x5fb: 0x3323,\n\t0x5fc: 0x3003, 0x5fd: 0x330f, 0x5fe: 0x38f1, 0x5ff: 0x3a80,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x38ea, 0x601: 0x3a79, 0x602: 0x38ff, 0x603: 0x3a8e, 0x604: 0x38f8, 0x605: 0x3a87,\n\t0x606: 0x3914, 0x607: 0x3aa3, 0x608: 0x30a8, 0x609: 0x33b4, 0x60a: 0x30bc, 0x60b: 0x33c8,\n\t0x60c: 0x46fe, 0x60d: 0x478f, 0x60e: 0x314d, 0x60f: 0x345e, 0x610: 0x3937, 0x611: 0x3ac6,\n\t0x612: 0x3930, 0x613: 0x3abf, 0x614: 0x3945, 0x615: 0x3ad4, 0x616: 0x393e, 0x617: 0x3acd,\n\t0x618: 0x39a0, 0x619: 0x3b2f, 0x61a: 0x3984, 0x61b: 0x3b13, 0x61c: 0x397d, 0x61d: 0x3b0c,\n\t0x61e: 0x3992, 0x61f: 0x3b21, 0x620: 0x398b, 0x621: 0x3b1a, 0x622: 0x3999, 0x623: 0x3b28,\n\t0x624: 0x31fc, 0x625: 0x3512, 0x626: 0x31de, 0x627: 0x34f4, 0x628: 0x39fb, 0x629: 0x3b8a,\n\t0x62a: 0x39f4, 0x62b: 0x3b83, 0x62c: 0x3a09, 0x62d: 0x3b98, 0x62e: 0x3a02, 0x62f: 0x3b91,\n\t0x630: 0x3a10, 0x631: 0x3b9f, 0x632: 0x3247, 0x633: 0x3562, 0x634: 0x326f, 0x635: 0x358f,\n\t0x636: 0x326a, 0x637: 0x3585, 0x638: 0x3256, 0x639: 0x3571,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x481b, 0x641: 0x4821, 0x642: 0x4935, 0x643: 0x494d, 0x644: 0x493d, 0x645: 0x4955,\n\t0x646: 0x4945, 0x647: 0x495d, 0x648: 0x47c1, 0x649: 0x47c7, 0x64a: 0x48a5, 0x64b: 0x48bd,\n\t0x64c: 0x48ad, 0x64d: 0x48c5, 0x64e: 0x48b5, 0x64f: 0x48cd, 0x650: 0x482d, 0x651: 0x4833,\n\t0x652: 0x3dcf, 0x653: 0x3ddf, 0x654: 0x3dd7, 0x655: 0x3de7,\n\t0x658: 0x47cd, 0x659: 0x47d3, 0x65a: 0x3cff, 0x65b: 0x3d0f, 0x65c: 0x3d07, 0x65d: 0x3d17,\n\t0x660: 0x4845, 0x661: 0x484b, 0x662: 0x4965, 0x663: 0x497d,\n\t0x664: 0x496d, 0x665: 0x4985, 0x666: 0x4975, 0x667: 0x498d, 0x668: 0x47d9, 0x669: 0x47df,\n\t0x66a: 0x48d5, 0x66b: 0x48ed, 0x66c: 0x48dd, 0x66d: 0x48f5, 0x66e: 0x48e5, 0x66f: 0x48fd,\n\t0x670: 0x485d, 0x671: 0x4863, 0x672: 0x3e2f, 0x673: 0x3e47, 0x674: 0x3e37, 0x675: 0x3e4f,\n\t0x676: 0x3e3f, 0x677: 0x3e57, 0x678: 0x47e5, 0x679: 0x47eb, 0x67a: 0x3d2f, 0x67b: 0x3d47,\n\t0x67c: 0x3d37, 0x67d: 0x3d4f, 0x67e: 0x3d3f, 0x67f: 0x3d57,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x4869, 0x681: 0x486f, 0x682: 0x3e5f, 0x683: 0x3e6f, 0x684: 0x3e67, 0x685: 0x3e77,\n\t0x688: 0x47f1, 0x689: 0x47f7, 0x68a: 0x3d5f, 0x68b: 0x3d6f,\n\t0x68c: 0x3d67, 0x68d: 0x3d77, 0x690: 0x487b, 0x691: 0x4881,\n\t0x692: 0x3e97, 0x693: 0x3eaf, 0x694: 0x3e9f, 0x695: 0x3eb7, 0x696: 0x3ea7, 0x697: 0x3ebf,\n\t0x699: 0x47fd, 0x69b: 0x3d7f, 0x69d: 0x3d87,\n\t0x69f: 0x3d8f, 0x6a0: 0x4893, 0x6a1: 0x4899, 0x6a2: 0x4995, 0x6a3: 0x49ad,\n\t0x6a4: 0x499d, 0x6a5: 0x49b5, 0x6a6: 0x49a5, 0x6a7: 0x49bd, 0x6a8: 0x4803, 0x6a9: 0x4809,\n\t0x6aa: 0x4905, 0x6ab: 0x491d, 0x6ac: 0x490d, 0x6ad: 0x4925, 0x6ae: 0x4915, 0x6af: 0x492d,\n\t0x6b0: 0x480f, 0x6b1: 0x4335, 0x6b2: 0x36a8, 0x6b3: 0x433b, 0x6b4: 0x4839, 0x6b5: 0x4341,\n\t0x6b6: 0x36ba, 0x6b7: 0x4347, 0x6b8: 0x36d8, 0x6b9: 0x434d, 0x6ba: 0x36f0, 0x6bb: 0x4353,\n\t0x6bc: 0x4887, 0x6bd: 0x4359,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x3db7, 0x6c1: 0x3dbf, 0x6c2: 0x419b, 0x6c3: 0x41b9, 0x6c4: 0x41a5, 0x6c5: 0x41c3,\n\t0x6c6: 0x41af, 0x6c7: 0x41cd, 0x6c8: 0x3cef, 0x6c9: 0x3cf7, 0x6ca: 0x40e7, 0x6cb: 0x4105,\n\t0x6cc: 0x40f1, 0x6cd: 0x410f, 0x6ce: 0x40fb, 0x6cf: 0x4119, 0x6d0: 0x3dff, 0x6d1: 0x3e07,\n\t0x6d2: 0x41d7, 0x6d3: 0x41f5, 0x6d4: 0x41e1, 0x6d5: 0x41ff, 0x6d6: 0x41eb, 0x6d7: 0x4209,\n\t0x6d8: 0x3d1f, 0x6d9: 0x3d27, 0x6da: 0x4123, 0x6db: 0x4141, 0x6dc: 0x412d, 0x6dd: 0x414b,\n\t0x6de: 0x4137, 0x6df: 0x4155, 0x6e0: 0x3ed7, 0x6e1: 0x3edf, 0x6e2: 0x4213, 0x6e3: 0x4231,\n\t0x6e4: 0x421d, 0x6e5: 0x423b, 0x6e6: 0x4227, 0x6e7: 0x4245, 0x6e8: 0x3d97, 0x6e9: 0x3d9f,\n\t0x6ea: 0x415f, 0x6eb: 0x417d, 0x6ec: 0x4169, 0x6ed: 0x4187, 0x6ee: 0x4173, 0x6ef: 0x4191,\n\t0x6f0: 0x369c, 0x6f1: 0x3696, 0x6f2: 0x3da7, 0x6f3: 0x36a2, 0x6f4: 0x3daf,\n\t0x6f6: 0x4827, 0x6f7: 0x3dc7, 0x6f8: 0x360c, 0x6f9: 0x3606, 0x6fa: 0x35fa, 0x6fb: 0x4305,\n\t0x6fc: 0x3612, 0x6fd: 0x429e, 0x6fe: 0x01d6, 0x6ff: 0x429e,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x42b7, 0x701: 0x4499, 0x702: 0x3def, 0x703: 0x36b4, 0x704: 0x3df7,\n\t0x706: 0x4851, 0x707: 0x3e0f, 0x708: 0x3618, 0x709: 0x430b, 0x70a: 0x3624, 0x70b: 0x4311,\n\t0x70c: 0x3630, 0x70d: 0x44a0, 0x70e: 0x44a7, 0x70f: 0x44ae, 0x710: 0x36cc, 0x711: 0x36c6,\n\t0x712: 0x3e17, 0x713: 0x44fb, 0x716: 0x36d2, 0x717: 0x3e27,\n\t0x718: 0x3648, 0x719: 0x3642, 0x71a: 0x3636, 0x71b: 0x4317, 0x71d: 0x44b5,\n\t0x71e: 0x44bc, 0x71f: 0x44c3, 0x720: 0x3702, 0x721: 0x36fc, 0x722: 0x3e7f, 0x723: 0x4503,\n\t0x724: 0x36e4, 0x725: 0x36ea, 0x726: 0x3708, 0x727: 0x3e8f, 0x728: 0x3678, 0x729: 0x3672,\n\t0x72a: 0x3666, 0x72b: 0x4323, 0x72c: 0x3660, 0x72d: 0x448b, 0x72e: 0x4492, 0x72f: 0x0081,\n\t0x732: 0x3ec7, 0x733: 0x370e, 0x734: 0x3ecf,\n\t0x736: 0x489f, 0x737: 0x3ee7, 0x738: 0x3654, 0x739: 0x431d, 0x73a: 0x3684, 0x73b: 0x432f,\n\t0x73c: 0x3690, 0x73d: 0x4271, 0x73e: 0x42a3,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0x1bde, 0x741: 0x1be2, 0x742: 0x0047, 0x743: 0x1c5a, 0x745: 0x1bee,\n\t0x746: 0x1bf2, 0x747: 0x00e9, 0x749: 0x1c5e, 0x74a: 0x008f, 0x74b: 0x0051,\n\t0x74c: 0x0051, 0x74d: 0x0051, 0x74e: 0x0091, 0x74f: 0x00da, 0x750: 0x0053, 0x751: 0x0053,\n\t0x752: 0x0059, 0x753: 0x0099, 0x755: 0x005d, 0x756: 0x1993,\n\t0x759: 0x0061, 0x75a: 0x0063, 0x75b: 0x0065, 0x75c: 0x0065, 0x75d: 0x0065,\n\t0x760: 0x19a5, 0x761: 0x1bce, 0x762: 0x19ae,\n\t0x764: 0x0075, 0x766: 0x01bb, 0x768: 0x0075,\n\t0x76a: 0x0057, 0x76b: 0x42e9, 0x76c: 0x0045, 0x76d: 0x0047, 0x76f: 0x008b,\n\t0x770: 0x004b, 0x771: 0x004d, 0x773: 0x005b, 0x774: 0x009f, 0x775: 0x0218,\n\t0x776: 0x021b, 0x777: 0x021e, 0x778: 0x0221, 0x779: 0x0093, 0x77b: 0x1b9e,\n\t0x77c: 0x01eb, 0x77d: 0x01c4, 0x77e: 0x017c, 0x77f: 0x01a3,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0x0466, 0x785: 0x0049,\n\t0x786: 0x0089, 0x787: 0x008b, 0x788: 0x0093, 0x789: 0x0095,\n\t0x790: 0x2234, 0x791: 0x2240,\n\t0x792: 0x22f4, 0x793: 0x221c, 0x794: 0x22a0, 0x795: 0x2228, 0x796: 0x22a6, 0x797: 0x22be,\n\t0x798: 0x22ca, 0x799: 0x222e, 0x79a: 0x22d0, 0x79b: 0x223a, 0x79c: 0x22c4, 0x79d: 0x22d6,\n\t0x79e: 0x22dc, 0x79f: 0x1cc2, 0x7a0: 0x0053, 0x7a1: 0x195d, 0x7a2: 0x1baa, 0x7a3: 0x1966,\n\t0x7a4: 0x006d, 0x7a5: 0x19b1, 0x7a6: 0x1bd6, 0x7a7: 0x1d4e, 0x7a8: 0x1969, 0x7a9: 0x0071,\n\t0x7aa: 0x19bd, 0x7ab: 0x1bda, 0x7ac: 0x0059, 0x7ad: 0x0047, 0x7ae: 0x0049, 0x7af: 0x005b,\n\t0x7b0: 0x0093, 0x7b1: 0x19ea, 0x7b2: 0x1c1e, 0x7b3: 0x19f3, 0x7b4: 0x00ad, 0x7b5: 0x1a68,\n\t0x7b6: 0x1c52, 0x7b7: 0x1d62, 0x7b8: 0x19f6, 0x7b9: 0x00b1, 0x7ba: 0x1a6b, 0x7bb: 0x1c56,\n\t0x7bc: 0x0099, 0x7bd: 0x0087, 0x7be: 0x0089, 0x7bf: 0x009b,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c1: 0x3c1d, 0x7c3: 0xa000, 0x7c4: 0x3c24, 0x7c5: 0xa000,\n\t0x7c7: 0x3c2b, 0x7c8: 0xa000, 0x7c9: 0x3c32,\n\t0x7cd: 0xa000,\n\t0x7e0: 0x2f7c, 0x7e1: 0xa000, 0x7e2: 0x3c40,\n\t0x7e4: 0xa000, 0x7e5: 0xa000,\n\t0x7ed: 0x3c39, 0x7ee: 0x2f77, 0x7ef: 0x2f81,\n\t0x7f0: 0x3c47, 0x7f1: 0x3c4e, 0x7f2: 0xa000, 0x7f3: 0xa000, 0x7f4: 0x3c55, 0x7f5: 0x3c5c,\n\t0x7f6: 0xa000, 0x7f7: 0xa000, 0x7f8: 0x3c63, 0x7f9: 0x3c6a, 0x7fa: 0xa000, 0x7fb: 0xa000,\n\t0x7fc: 0xa000, 0x7fd: 0xa000,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x3c71, 0x801: 0x3c78, 0x802: 0xa000, 0x803: 0xa000, 0x804: 0x3c8d, 0x805: 0x3c94,\n\t0x806: 0xa000, 0x807: 0xa000, 0x808: 0x3c9b, 0x809: 0x3ca2,\n\t0x811: 0xa000,\n\t0x812: 0xa000,\n\t0x822: 0xa000,\n\t0x828: 0xa000, 0x829: 0xa000,\n\t0x82b: 0xa000, 0x82c: 0x3cb7, 0x82d: 0x3cbe, 0x82e: 0x3cc5, 0x82f: 0x3ccc,\n\t0x832: 0xa000, 0x833: 0xa000, 0x834: 0xa000, 0x835: 0xa000,\n\t// Block 0x21, offset 0x840\n\t0x860: 0x0023, 0x861: 0x0025, 0x862: 0x0027, 0x863: 0x0029,\n\t0x864: 0x002b, 0x865: 0x002d, 0x866: 0x002f, 0x867: 0x0031, 0x868: 0x0033, 0x869: 0x1885,\n\t0x86a: 0x1888, 0x86b: 0x188b, 0x86c: 0x188e, 0x86d: 0x1891, 0x86e: 0x1894, 0x86f: 0x1897,\n\t0x870: 0x189a, 0x871: 0x189d, 0x872: 0x18a0, 0x873: 0x18a9, 0x874: 0x1a6e, 0x875: 0x1a72,\n\t0x876: 0x1a76, 0x877: 0x1a7a, 0x878: 0x1a7e, 0x879: 0x1a82, 0x87a: 0x1a86, 0x87b: 0x1a8a,\n\t0x87c: 0x1a8e, 0x87d: 0x1c86, 0x87e: 0x1c8b, 0x87f: 0x1c90,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x1c95, 0x881: 0x1c9a, 0x882: 0x1c9f, 0x883: 0x1ca4, 0x884: 0x1ca9, 0x885: 0x1cae,\n\t0x886: 0x1cb3, 0x887: 0x1cb8, 0x888: 0x1882, 0x889: 0x18a6, 0x88a: 0x18ca, 0x88b: 0x18ee,\n\t0x88c: 0x1912, 0x88d: 0x191b, 0x88e: 0x1921, 0x88f: 0x1927, 0x890: 0x192d, 0x891: 0x1b66,\n\t0x892: 0x1b6a, 0x893: 0x1b6e, 0x894: 0x1b72, 0x895: 0x1b76, 0x896: 0x1b7a, 0x897: 0x1b7e,\n\t0x898: 0x1b82, 0x899: 0x1b86, 0x89a: 0x1b8a, 0x89b: 0x1b8e, 0x89c: 0x1afa, 0x89d: 0x1afe,\n\t0x89e: 0x1b02, 0x89f: 0x1b06, 0x8a0: 0x1b0a, 0x8a1: 0x1b0e, 0x8a2: 0x1b12, 0x8a3: 0x1b16,\n\t0x8a4: 0x1b1a, 0x8a5: 0x1b1e, 0x8a6: 0x1b22, 0x8a7: 0x1b26, 0x8a8: 0x1b2a, 0x8a9: 0x1b2e,\n\t0x8aa: 0x1b32, 0x8ab: 0x1b36, 0x8ac: 0x1b3a, 0x8ad: 0x1b3e, 0x8ae: 0x1b42, 0x8af: 0x1b46,\n\t0x8b0: 0x1b4a, 0x8b1: 0x1b4e, 0x8b2: 0x1b52, 0x8b3: 0x1b56, 0x8b4: 0x1b5a, 0x8b5: 0x1b5e,\n\t0x8b6: 0x0043, 0x8b7: 0x0045, 0x8b8: 0x0047, 0x8b9: 0x0049, 0x8ba: 0x004b, 0x8bb: 0x004d,\n\t0x8bc: 0x004f, 0x8bd: 0x0051, 0x8be: 0x0053, 0x8bf: 0x0055,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x06c2, 0x8c1: 0x06e6, 0x8c2: 0x06f2, 0x8c3: 0x0702, 0x8c4: 0x070a, 0x8c5: 0x0716,\n\t0x8c6: 0x071e, 0x8c7: 0x0726, 0x8c8: 0x0732, 0x8c9: 0x0786, 0x8ca: 0x079e, 0x8cb: 0x07ae,\n\t0x8cc: 0x07be, 0x8cd: 0x07ce, 0x8ce: 0x07de, 0x8cf: 0x07fe, 0x8d0: 0x0802, 0x8d1: 0x0806,\n\t0x8d2: 0x083a, 0x8d3: 0x0862, 0x8d4: 0x0872, 0x8d5: 0x087a, 0x8d6: 0x087e, 0x8d7: 0x088a,\n\t0x8d8: 0x08a6, 0x8d9: 0x08aa, 0x8da: 0x08c2, 0x8db: 0x08c6, 0x8dc: 0x08ce, 0x8dd: 0x08de,\n\t0x8de: 0x097a, 0x8df: 0x098e, 0x8e0: 0x09ce, 0x8e1: 0x09e2, 0x8e2: 0x09ea, 0x8e3: 0x09ee,\n\t0x8e4: 0x09fe, 0x8e5: 0x0a1a, 0x8e6: 0x0a46, 0x8e7: 0x0a52, 0x8e8: 0x0a72, 0x8e9: 0x0a7e,\n\t0x8ea: 0x0a82, 0x8eb: 0x0a86, 0x8ec: 0x0a9e, 0x8ed: 0x0aa2, 0x8ee: 0x0ace, 0x8ef: 0x0ada,\n\t0x8f0: 0x0ae2, 0x8f1: 0x0aea, 0x8f2: 0x0afa, 0x8f3: 0x0b02, 0x8f4: 0x0b0a, 0x8f5: 0x0b36,\n\t0x8f6: 0x0b3a, 0x8f7: 0x0b42, 0x8f8: 0x0b46, 0x8f9: 0x0b4e, 0x8fa: 0x0b56, 0x8fb: 0x0b66,\n\t0x8fc: 0x0b82, 0x8fd: 0x0bfa, 0x8fe: 0x0c0e, 0x8ff: 0x0c12,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x0c92, 0x901: 0x0c96, 0x902: 0x0caa, 0x903: 0x0cae, 0x904: 0x0cb6, 0x905: 0x0cbe,\n\t0x906: 0x0cc6, 0x907: 0x0cd2, 0x908: 0x0cfa, 0x909: 0x0d0a, 0x90a: 0x0d1e, 0x90b: 0x0d8e,\n\t0x90c: 0x0d9a, 0x90d: 0x0daa, 0x90e: 0x0db6, 0x90f: 0x0dc2, 0x910: 0x0dca, 0x911: 0x0dce,\n\t0x912: 0x0dd2, 0x913: 0x0dd6, 0x914: 0x0dda, 0x915: 0x0e92, 0x916: 0x0eda, 0x917: 0x0ee6,\n\t0x918: 0x0eea, 0x919: 0x0eee, 0x91a: 0x0ef2, 0x91b: 0x0efa, 0x91c: 0x0efe, 0x91d: 0x0f12,\n\t0x91e: 0x0f2e, 0x91f: 0x0f36, 0x920: 0x0f76, 0x921: 0x0f7a, 0x922: 0x0f82, 0x923: 0x0f86,\n\t0x924: 0x0f8e, 0x925: 0x0f92, 0x926: 0x0fb6, 0x927: 0x0fba, 0x928: 0x0fd6, 0x929: 0x0fda,\n\t0x92a: 0x0fde, 0x92b: 0x0fe2, 0x92c: 0x0ff6, 0x92d: 0x101a, 0x92e: 0x101e, 0x92f: 0x1022,\n\t0x930: 0x1046, 0x931: 0x1086, 0x932: 0x108a, 0x933: 0x10aa, 0x934: 0x10ba, 0x935: 0x10c2,\n\t0x936: 0x10e2, 0x937: 0x1106, 0x938: 0x114a, 0x939: 0x1152, 0x93a: 0x1166, 0x93b: 0x1172,\n\t0x93c: 0x117a, 0x93d: 0x1182, 0x93e: 0x1186, 0x93f: 0x118a,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x11a2, 0x941: 0x11a6, 0x942: 0x11c2, 0x943: 0x11ca, 0x944: 0x11d2, 0x945: 0x11d6,\n\t0x946: 0x11e2, 0x947: 0x11ea, 0x948: 0x11ee, 0x949: 0x11f2, 0x94a: 0x11fa, 0x94b: 0x11fe,\n\t0x94c: 0x129e, 0x94d: 0x12b2, 0x94e: 0x12e6, 0x94f: 0x12ea, 0x950: 0x12f2, 0x951: 0x131e,\n\t0x952: 0x1326, 0x953: 0x132e, 0x954: 0x1336, 0x955: 0x1372, 0x956: 0x1376, 0x957: 0x137e,\n\t0x958: 0x1382, 0x959: 0x1386, 0x95a: 0x13b2, 0x95b: 0x13b6, 0x95c: 0x13be, 0x95d: 0x13d2,\n\t0x95e: 0x13d6, 0x95f: 0x13f2, 0x960: 0x13fa, 0x961: 0x13fe, 0x962: 0x1422, 0x963: 0x1442,\n\t0x964: 0x1456, 0x965: 0x145a, 0x966: 0x1462, 0x967: 0x148e, 0x968: 0x1492, 0x969: 0x14a2,\n\t0x96a: 0x14c6, 0x96b: 0x14d2, 0x96c: 0x14e2, 0x96d: 0x14fa, 0x96e: 0x1502, 0x96f: 0x1506,\n\t0x970: 0x150a, 0x971: 0x150e, 0x972: 0x151a, 0x973: 0x151e, 0x974: 0x1526, 0x975: 0x1542,\n\t0x976: 0x1546, 0x977: 0x154a, 0x978: 0x1562, 0x979: 0x1566, 0x97a: 0x156e, 0x97b: 0x1582,\n\t0x97c: 0x1586, 0x97d: 0x158a, 0x97e: 0x1592, 0x97f: 0x1596,\n\t// Block 0x26, offset 0x980\n\t0x986: 0xa000, 0x98b: 0xa000,\n\t0x98c: 0x3f1f, 0x98d: 0xa000, 0x98e: 0x3f27, 0x98f: 0xa000, 0x990: 0x3f2f, 0x991: 0xa000,\n\t0x992: 0x3f37, 0x993: 0xa000, 0x994: 0x3f3f, 0x995: 0xa000, 0x996: 0x3f47, 0x997: 0xa000,\n\t0x998: 0x3f4f, 0x999: 0xa000, 0x99a: 0x3f57, 0x99b: 0xa000, 0x99c: 0x3f5f, 0x99d: 0xa000,\n\t0x99e: 0x3f67, 0x99f: 0xa000, 0x9a0: 0x3f6f, 0x9a1: 0xa000, 0x9a2: 0x3f77,\n\t0x9a4: 0xa000, 0x9a5: 0x3f7f, 0x9a6: 0xa000, 0x9a7: 0x3f87, 0x9a8: 0xa000, 0x9a9: 0x3f8f,\n\t0x9af: 0xa000,\n\t0x9b0: 0x3f97, 0x9b1: 0x3f9f, 0x9b2: 0xa000, 0x9b3: 0x3fa7, 0x9b4: 0x3faf, 0x9b5: 0xa000,\n\t0x9b6: 0x3fb7, 0x9b7: 0x3fbf, 0x9b8: 0xa000, 0x9b9: 0x3fc7, 0x9ba: 0x3fcf, 0x9bb: 0xa000,\n\t0x9bc: 0x3fd7, 0x9bd: 0x3fdf,\n\t// Block 0x27, offset 0x9c0\n\t0x9d4: 0x3f17,\n\t0x9d9: 0x9904, 0x9da: 0x9904, 0x9db: 0x42f3, 0x9dc: 0x42f9, 0x9dd: 0xa000,\n\t0x9de: 0x3fe7, 0x9df: 0x26ba,\n\t0x9e6: 0xa000,\n\t0x9eb: 0xa000, 0x9ec: 0x3ff7, 0x9ed: 0xa000, 0x9ee: 0x3fff, 0x9ef: 0xa000,\n\t0x9f0: 0x4007, 0x9f1: 0xa000, 0x9f2: 0x400f, 0x9f3: 0xa000, 0x9f4: 0x4017, 0x9f5: 0xa000,\n\t0x9f6: 0x401f, 0x9f7: 0xa000, 0x9f8: 0x4027, 0x9f9: 0xa000, 0x9fa: 0x402f, 0x9fb: 0xa000,\n\t0x9fc: 0x4037, 0x9fd: 0xa000, 0x9fe: 0x403f, 0x9ff: 0xa000,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x4047, 0xa01: 0xa000, 0xa02: 0x404f, 0xa04: 0xa000, 0xa05: 0x4057,\n\t0xa06: 0xa000, 0xa07: 0x405f, 0xa08: 0xa000, 0xa09: 0x4067,\n\t0xa0f: 0xa000, 0xa10: 0x406f, 0xa11: 0x4077,\n\t0xa12: 0xa000, 0xa13: 0x407f, 0xa14: 0x4087, 0xa15: 0xa000, 0xa16: 0x408f, 0xa17: 0x4097,\n\t0xa18: 0xa000, 0xa19: 0x409f, 0xa1a: 0x40a7, 0xa1b: 0xa000, 0xa1c: 0x40af, 0xa1d: 0x40b7,\n\t0xa2f: 0xa000,\n\t0xa30: 0xa000, 0xa31: 0xa000, 0xa32: 0xa000, 0xa34: 0x3fef,\n\t0xa37: 0x40bf, 0xa38: 0x40c7, 0xa39: 0x40cf, 0xa3a: 0x40d7,\n\t0xa3d: 0xa000, 0xa3e: 0x40df, 0xa3f: 0x26cf,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0x036a, 0xa41: 0x032e, 0xa42: 0x0332, 0xa43: 0x0336, 0xa44: 0x037e, 0xa45: 0x033a,\n\t0xa46: 0x033e, 0xa47: 0x0342, 0xa48: 0x0346, 0xa49: 0x034a, 0xa4a: 0x034e, 0xa4b: 0x0352,\n\t0xa4c: 0x0356, 0xa4d: 0x035a, 0xa4e: 0x035e, 0xa4f: 0x49d4, 0xa50: 0x49da, 0xa51: 0x49e0,\n\t0xa52: 0x49e6, 0xa53: 0x49ec, 0xa54: 0x49f2, 0xa55: 0x49f8, 0xa56: 0x49fe, 0xa57: 0x4a04,\n\t0xa58: 0x4a0a, 0xa59: 0x4a10, 0xa5a: 0x4a16, 0xa5b: 0x4a1c, 0xa5c: 0x4a22, 0xa5d: 0x4a28,\n\t0xa5e: 0x4a2e, 0xa5f: 0x4a34, 0xa60: 0x4a3a, 0xa61: 0x4a40, 0xa62: 0x4a46, 0xa63: 0x4a4c,\n\t0xa64: 0x03c6, 0xa65: 0x0362, 0xa66: 0x0366, 0xa67: 0x03ea, 0xa68: 0x03ee, 0xa69: 0x03f2,\n\t0xa6a: 0x03f6, 0xa6b: 0x03fa, 0xa6c: 0x03fe, 0xa6d: 0x0402, 0xa6e: 0x036e, 0xa6f: 0x0406,\n\t0xa70: 0x040a, 0xa71: 0x0372, 0xa72: 0x0376, 0xa73: 0x037a, 0xa74: 0x0382, 0xa75: 0x0386,\n\t0xa76: 0x038a, 0xa77: 0x038e, 0xa78: 0x0392, 0xa79: 0x0396, 0xa7a: 0x039a, 0xa7b: 0x039e,\n\t0xa7c: 0x03a2, 0xa7d: 0x03a6, 0xa7e: 0x03aa, 0xa7f: 0x03ae,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0x03b2, 0xa81: 0x03b6, 0xa82: 0x040e, 0xa83: 0x0412, 0xa84: 0x03ba, 0xa85: 0x03be,\n\t0xa86: 0x03c2, 0xa87: 0x03ca, 0xa88: 0x03ce, 0xa89: 0x03d2, 0xa8a: 0x03d6, 0xa8b: 0x03da,\n\t0xa8c: 0x03de, 0xa8d: 0x03e2, 0xa8e: 0x03e6,\n\t0xa92: 0x06c2, 0xa93: 0x071e, 0xa94: 0x06ce, 0xa95: 0x097e, 0xa96: 0x06d2, 0xa97: 0x06ea,\n\t0xa98: 0x06d6, 0xa99: 0x0f96, 0xa9a: 0x070a, 0xa9b: 0x06de, 0xa9c: 0x06c6, 0xa9d: 0x0a02,\n\t0xa9e: 0x0992, 0xa9f: 0x0732,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0x205a, 0xac1: 0x2060, 0xac2: 0x2066, 0xac3: 0x206c, 0xac4: 0x2072, 0xac5: 0x2078,\n\t0xac6: 0x207e, 0xac7: 0x2084, 0xac8: 0x208a, 0xac9: 0x2090, 0xaca: 0x2096, 0xacb: 0x209c,\n\t0xacc: 0x20a2, 0xacd: 0x20a8, 0xace: 0x2733, 0xacf: 0x273c, 0xad0: 0x2745, 0xad1: 0x274e,\n\t0xad2: 0x2757, 0xad3: 0x2760, 0xad4: 0x2769, 0xad5: 0x2772, 0xad6: 0x277b, 0xad7: 0x278d,\n\t0xad8: 0x2796, 0xad9: 0x279f, 0xada: 0x27a8, 0xadb: 0x27b1, 0xadc: 0x2784, 0xadd: 0x2bb9,\n\t0xade: 0x2afa, 0xae0: 0x20ae, 0xae1: 0x20c6, 0xae2: 0x20ba, 0xae3: 0x210e,\n\t0xae4: 0x20cc, 0xae5: 0x20ea, 0xae6: 0x20b4, 0xae7: 0x20e4, 0xae8: 0x20c0, 0xae9: 0x20f6,\n\t0xaea: 0x2126, 0xaeb: 0x2144, 0xaec: 0x213e, 0xaed: 0x2132, 0xaee: 0x2180, 0xaef: 0x2114,\n\t0xaf0: 0x2120, 0xaf1: 0x2138, 0xaf2: 0x212c, 0xaf3: 0x2156, 0xaf4: 0x2102, 0xaf5: 0x214a,\n\t0xaf6: 0x2174, 0xaf7: 0x215c, 0xaf8: 0x20f0, 0xaf9: 0x20d2, 0xafa: 0x2108, 0xafb: 0x211a,\n\t0xafc: 0x2150, 0xafd: 0x20d8, 0xafe: 0x217a, 0xaff: 0x20fc,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0x2162, 0xb01: 0x20de, 0xb02: 0x2168, 0xb03: 0x216e, 0xb04: 0x0932, 0xb05: 0x0b06,\n\t0xb06: 0x0caa, 0xb07: 0x10ca,\n\t0xb10: 0x1bca, 0xb11: 0x18ac,\n\t0xb12: 0x18af, 0xb13: 0x18b2, 0xb14: 0x18b5, 0xb15: 0x18b8, 0xb16: 0x18bb, 0xb17: 0x18be,\n\t0xb18: 0x18c1, 0xb19: 0x18c4, 0xb1a: 0x18cd, 0xb1b: 0x18d0, 0xb1c: 0x18d3, 0xb1d: 0x18d6,\n\t0xb1e: 0x18d9, 0xb1f: 0x18dc, 0xb20: 0x0316, 0xb21: 0x031e, 0xb22: 0x0322, 0xb23: 0x032a,\n\t0xb24: 0x032e, 0xb25: 0x0332, 0xb26: 0x033a, 0xb27: 0x0342, 0xb28: 0x0346, 0xb29: 0x034e,\n\t0xb2a: 0x0352, 0xb2b: 0x0356, 0xb2c: 0x035a, 0xb2d: 0x035e, 0xb2e: 0x2e2f, 0xb2f: 0x2e37,\n\t0xb30: 0x2e3f, 0xb31: 0x2e47, 0xb32: 0x2e4f, 0xb33: 0x2e57, 0xb34: 0x2e5f, 0xb35: 0x2e67,\n\t0xb36: 0x2e77, 0xb37: 0x2e7f, 0xb38: 0x2e87, 0xb39: 0x2e8f, 0xb3a: 0x2e97, 0xb3b: 0x2e9f,\n\t0xb3c: 0x2eea, 0xb3d: 0x2eb2, 0xb3e: 0x2e6f,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x06c2, 0xb41: 0x071e, 0xb42: 0x06ce, 0xb43: 0x097e, 0xb44: 0x0722, 0xb45: 0x07b2,\n\t0xb46: 0x06ca, 0xb47: 0x07ae, 0xb48: 0x070e, 0xb49: 0x088a, 0xb4a: 0x0d0a, 0xb4b: 0x0e92,\n\t0xb4c: 0x0dda, 0xb4d: 0x0d1e, 0xb4e: 0x1462, 0xb4f: 0x098e, 0xb50: 0x0cd2, 0xb51: 0x0d4e,\n\t0xb52: 0x0d0e, 0xb53: 0x104e, 0xb54: 0x08fe, 0xb55: 0x0f06, 0xb56: 0x138a, 0xb57: 0x1062,\n\t0xb58: 0x0846, 0xb59: 0x1092, 0xb5a: 0x0f9e, 0xb5b: 0x0a1a, 0xb5c: 0x1412, 0xb5d: 0x0782,\n\t0xb5e: 0x08ae, 0xb5f: 0x0dfa, 0xb60: 0x152a, 0xb61: 0x0746, 0xb62: 0x07d6, 0xb63: 0x0d9e,\n\t0xb64: 0x06d2, 0xb65: 0x06ea, 0xb66: 0x06d6, 0xb67: 0x0ade, 0xb68: 0x08f2, 0xb69: 0x0882,\n\t0xb6a: 0x0a5a, 0xb6b: 0x0a4e, 0xb6c: 0x0fee, 0xb6d: 0x0742, 0xb6e: 0x139e, 0xb6f: 0x089e,\n\t0xb70: 0x09f6, 0xb71: 0x18df, 0xb72: 0x18e2, 0xb73: 0x18e5, 0xb74: 0x18e8, 0xb75: 0x18f1,\n\t0xb76: 0x18f4, 0xb77: 0x18f7, 0xb78: 0x18fa, 0xb79: 0x18fd, 0xb7a: 0x1900, 0xb7b: 0x1903,\n\t0xb7c: 0x1906, 0xb7d: 0x1909, 0xb7e: 0x190c, 0xb7f: 0x1915,\n\t// Block 0x2e, offset 0xb80\n\t0xb80: 0x1ccc, 0xb81: 0x1cdb, 0xb82: 0x1cea, 0xb83: 0x1cf9, 0xb84: 0x1d08, 0xb85: 0x1d17,\n\t0xb86: 0x1d26, 0xb87: 0x1d35, 0xb88: 0x1d44, 0xb89: 0x2192, 0xb8a: 0x21a4, 0xb8b: 0x21b6,\n\t0xb8c: 0x1957, 0xb8d: 0x1c0a, 0xb8e: 0x19d8, 0xb8f: 0x1bae, 0xb90: 0x04ce, 0xb91: 0x04d6,\n\t0xb92: 0x04de, 0xb93: 0x04e6, 0xb94: 0x04ee, 0xb95: 0x04f2, 0xb96: 0x04f6, 0xb97: 0x04fa,\n\t0xb98: 0x04fe, 0xb99: 0x0502, 0xb9a: 0x0506, 0xb9b: 0x050a, 0xb9c: 0x050e, 0xb9d: 0x0512,\n\t0xb9e: 0x0516, 0xb9f: 0x051a, 0xba0: 0x051e, 0xba1: 0x0526, 0xba2: 0x052a, 0xba3: 0x052e,\n\t0xba4: 0x0532, 0xba5: 0x0536, 0xba6: 0x053a, 0xba7: 0x053e, 0xba8: 0x0542, 0xba9: 0x0546,\n\t0xbaa: 0x054a, 0xbab: 0x054e, 0xbac: 0x0552, 0xbad: 0x0556, 0xbae: 0x055a, 0xbaf: 0x055e,\n\t0xbb0: 0x0562, 0xbb1: 0x0566, 0xbb2: 0x056a, 0xbb3: 0x0572, 0xbb4: 0x057a, 0xbb5: 0x0582,\n\t0xbb6: 0x0586, 0xbb7: 0x058a, 0xbb8: 0x058e, 0xbb9: 0x0592, 0xbba: 0x0596, 0xbbb: 0x059a,\n\t0xbbc: 0x059e, 0xbbd: 0x05a2, 0xbbe: 0x05a6, 0xbbf: 0x2700,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc0: 0x2b19, 0xbc1: 0x29b5, 0xbc2: 0x2b29, 0xbc3: 0x288d, 0xbc4: 0x2efb, 0xbc5: 0x2897,\n\t0xbc6: 0x28a1, 0xbc7: 0x2f3f, 0xbc8: 0x29c2, 0xbc9: 0x28ab, 0xbca: 0x28b5, 0xbcb: 0x28bf,\n\t0xbcc: 0x29e9, 0xbcd: 0x29f6, 0xbce: 0x29cf, 0xbcf: 0x29dc, 0xbd0: 0x2ec0, 0xbd1: 0x2a03,\n\t0xbd2: 0x2a10, 0xbd3: 0x2bcb, 0xbd4: 0x26c1, 0xbd5: 0x2bde, 0xbd6: 0x2bf1, 0xbd7: 0x2b39,\n\t0xbd8: 0x2a1d, 0xbd9: 0x2c04, 0xbda: 0x2c17, 0xbdb: 0x2a2a, 0xbdc: 0x28c9, 0xbdd: 0x28d3,\n\t0xbde: 0x2ece, 0xbdf: 0x2a37, 0xbe0: 0x2b49, 0xbe1: 0x2f0c, 0xbe2: 0x28dd, 0xbe3: 0x28e7,\n\t0xbe4: 0x2a44, 0xbe5: 0x28f1, 0xbe6: 0x28fb, 0xbe7: 0x26d6, 0xbe8: 0x26dd, 0xbe9: 0x2905,\n\t0xbea: 0x290f, 0xbeb: 0x2c2a, 0xbec: 0x2a51, 0xbed: 0x2b59, 0xbee: 0x2c3d, 0xbef: 0x2a5e,\n\t0xbf0: 0x2923, 0xbf1: 0x2919, 0xbf2: 0x2f53, 0xbf3: 0x2a6b, 0xbf4: 0x2c50, 0xbf5: 0x292d,\n\t0xbf6: 0x2b69, 0xbf7: 0x2937, 0xbf8: 0x2a85, 0xbf9: 0x2941, 0xbfa: 0x2a92, 0xbfb: 0x2f1d,\n\t0xbfc: 0x2a78, 0xbfd: 0x2b79, 0xbfe: 0x2a9f, 0xbff: 0x26e4,\n\t// Block 0x30, offset 0xc00\n\t0xc00: 0x2f2e, 0xc01: 0x294b, 0xc02: 0x2955, 0xc03: 0x2aac, 0xc04: 0x295f, 0xc05: 0x2969,\n\t0xc06: 0x2973, 0xc07: 0x2b89, 0xc08: 0x2ab9, 0xc09: 0x26eb, 0xc0a: 0x2c63, 0xc0b: 0x2ea7,\n\t0xc0c: 0x2b99, 0xc0d: 0x2ac6, 0xc0e: 0x2edc, 0xc0f: 0x297d, 0xc10: 0x2987, 0xc11: 0x2ad3,\n\t0xc12: 0x26f2, 0xc13: 0x2ae0, 0xc14: 0x2ba9, 0xc15: 0x26f9, 0xc16: 0x2c76, 0xc17: 0x2991,\n\t0xc18: 0x1cbd, 0xc19: 0x1cd1, 0xc1a: 0x1ce0, 0xc1b: 0x1cef, 0xc1c: 0x1cfe, 0xc1d: 0x1d0d,\n\t0xc1e: 0x1d1c, 0xc1f: 0x1d2b, 0xc20: 0x1d3a, 0xc21: 0x1d49, 0xc22: 0x2198, 0xc23: 0x21aa,\n\t0xc24: 0x21bc, 0xc25: 0x21c8, 0xc26: 0x21d4, 0xc27: 0x21e0, 0xc28: 0x21ec, 0xc29: 0x21f8,\n\t0xc2a: 0x2204, 0xc2b: 0x2210, 0xc2c: 0x224c, 0xc2d: 0x2258, 0xc2e: 0x2264, 0xc2f: 0x2270,\n\t0xc30: 0x227c, 0xc31: 0x1c1a, 0xc32: 0x19cc, 0xc33: 0x1939, 0xc34: 0x1bea, 0xc35: 0x1a4d,\n\t0xc36: 0x1a5c, 0xc37: 0x19d2, 0xc38: 0x1c02, 0xc39: 0x1c06, 0xc3a: 0x1963, 0xc3b: 0x270e,\n\t0xc3c: 0x271c, 0xc3d: 0x2707, 0xc3e: 0x2715, 0xc3f: 0x2aed,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x1a50, 0xc41: 0x1a38, 0xc42: 0x1c66, 0xc43: 0x1a20, 0xc44: 0x19f9, 0xc45: 0x196c,\n\t0xc46: 0x197b, 0xc47: 0x194b, 0xc48: 0x1bf6, 0xc49: 0x1d58, 0xc4a: 0x1a53, 0xc4b: 0x1a3b,\n\t0xc4c: 0x1c6a, 0xc4d: 0x1c76, 0xc4e: 0x1a2c, 0xc4f: 0x1a02, 0xc50: 0x195a, 0xc51: 0x1c22,\n\t0xc52: 0x1bb6, 0xc53: 0x1ba2, 0xc54: 0x1bd2, 0xc55: 0x1c7a, 0xc56: 0x1a2f, 0xc57: 0x19cf,\n\t0xc58: 0x1a05, 0xc59: 0x19e4, 0xc5a: 0x1a47, 0xc5b: 0x1c7e, 0xc5c: 0x1a32, 0xc5d: 0x19c6,\n\t0xc5e: 0x1a08, 0xc5f: 0x1c42, 0xc60: 0x1bfa, 0xc61: 0x1a1a, 0xc62: 0x1c2a, 0xc63: 0x1c46,\n\t0xc64: 0x1bfe, 0xc65: 0x1a1d, 0xc66: 0x1c2e, 0xc67: 0x22ee, 0xc68: 0x2302, 0xc69: 0x199c,\n\t0xc6a: 0x1c26, 0xc6b: 0x1bba, 0xc6c: 0x1ba6, 0xc6d: 0x1c4e, 0xc6e: 0x2723, 0xc6f: 0x27ba,\n\t0xc70: 0x1a5f, 0xc71: 0x1a4a, 0xc72: 0x1c82, 0xc73: 0x1a35, 0xc74: 0x1a56, 0xc75: 0x1a3e,\n\t0xc76: 0x1c6e, 0xc77: 0x1a23, 0xc78: 0x19fc, 0xc79: 0x1987, 0xc7a: 0x1a59, 0xc7b: 0x1a41,\n\t0xc7c: 0x1c72, 0xc7d: 0x1a26, 0xc7e: 0x19ff, 0xc7f: 0x198a,\n\t// Block 0x32, offset 0xc80\n\t0xc80: 0x1c32, 0xc81: 0x1bbe, 0xc82: 0x1d53, 0xc83: 0x193c, 0xc84: 0x19c0, 0xc85: 0x19c3,\n\t0xc86: 0x22fb, 0xc87: 0x1b9a, 0xc88: 0x19c9, 0xc89: 0x194e, 0xc8a: 0x19e7, 0xc8b: 0x1951,\n\t0xc8c: 0x19f0, 0xc8d: 0x196f, 0xc8e: 0x1972, 0xc8f: 0x1a0b, 0xc90: 0x1a11, 0xc91: 0x1a14,\n\t0xc92: 0x1c36, 0xc93: 0x1a17, 0xc94: 0x1a29, 0xc95: 0x1c3e, 0xc96: 0x1c4a, 0xc97: 0x1996,\n\t0xc98: 0x1d5d, 0xc99: 0x1bc2, 0xc9a: 0x1999, 0xc9b: 0x1a62, 0xc9c: 0x19ab, 0xc9d: 0x19ba,\n\t0xc9e: 0x22e8, 0xc9f: 0x22e2, 0xca0: 0x1cc7, 0xca1: 0x1cd6, 0xca2: 0x1ce5, 0xca3: 0x1cf4,\n\t0xca4: 0x1d03, 0xca5: 0x1d12, 0xca6: 0x1d21, 0xca7: 0x1d30, 0xca8: 0x1d3f, 0xca9: 0x218c,\n\t0xcaa: 0x219e, 0xcab: 0x21b0, 0xcac: 0x21c2, 0xcad: 0x21ce, 0xcae: 0x21da, 0xcaf: 0x21e6,\n\t0xcb0: 0x21f2, 0xcb1: 0x21fe, 0xcb2: 0x220a, 0xcb3: 0x2246, 0xcb4: 0x2252, 0xcb5: 0x225e,\n\t0xcb6: 0x226a, 0xcb7: 0x2276, 0xcb8: 0x2282, 0xcb9: 0x2288, 0xcba: 0x228e, 0xcbb: 0x2294,\n\t0xcbc: 0x229a, 0xcbd: 0x22ac, 0xcbe: 0x22b2, 0xcbf: 0x1c16,\n\t// Block 0x33, offset 0xcc0\n\t0xcc0: 0x137a, 0xcc1: 0x0cfe, 0xcc2: 0x13d6, 0xcc3: 0x13a2, 0xcc4: 0x0e5a, 0xcc5: 0x06ee,\n\t0xcc6: 0x08e2, 0xcc7: 0x162e, 0xcc8: 0x162e, 0xcc9: 0x0a0e, 0xcca: 0x1462, 0xccb: 0x0946,\n\t0xccc: 0x0a0a, 0xccd: 0x0bf2, 0xcce: 0x0fd2, 0xccf: 0x1162, 0xcd0: 0x129a, 0xcd1: 0x12d6,\n\t0xcd2: 0x130a, 0xcd3: 0x141e, 0xcd4: 0x0d76, 0xcd5: 0x0e02, 0xcd6: 0x0eae, 0xcd7: 0x0f46,\n\t0xcd8: 0x1262, 0xcd9: 0x144a, 0xcda: 0x1576, 0xcdb: 0x0712, 0xcdc: 0x08b6, 0xcdd: 0x0d8a,\n\t0xcde: 0x0ed2, 0xcdf: 0x1296, 0xce0: 0x15c6, 0xce1: 0x0ab6, 0xce2: 0x0e7a, 0xce3: 0x1286,\n\t0xce4: 0x131a, 0xce5: 0x0c26, 0xce6: 0x11be, 0xce7: 0x12e2, 0xce8: 0x0b22, 0xce9: 0x0d12,\n\t0xcea: 0x0e1a, 0xceb: 0x0f1e, 0xcec: 0x142a, 0xced: 0x0752, 0xcee: 0x07ea, 0xcef: 0x0856,\n\t0xcf0: 0x0c8e, 0xcf1: 0x0d82, 0xcf2: 0x0ece, 0xcf3: 0x0ff2, 0xcf4: 0x117a, 0xcf5: 0x128e,\n\t0xcf6: 0x12a6, 0xcf7: 0x13ca, 0xcf8: 0x14f2, 0xcf9: 0x15a6, 0xcfa: 0x15c2, 0xcfb: 0x102e,\n\t0xcfc: 0x106e, 0xcfd: 0x1126, 0xcfe: 0x1246, 0xcff: 0x147e,\n\t// Block 0x34, offset 0xd00\n\t0xd00: 0x15ce, 0xd01: 0x134e, 0xd02: 0x09ca, 0xd03: 0x0b3e, 0xd04: 0x10de, 0xd05: 0x119e,\n\t0xd06: 0x0f02, 0xd07: 0x1036, 0xd08: 0x139a, 0xd09: 0x14ea, 0xd0a: 0x09c6, 0xd0b: 0x0a92,\n\t0xd0c: 0x0d7a, 0xd0d: 0x0e2e, 0xd0e: 0x0e62, 0xd0f: 0x1116, 0xd10: 0x113e, 0xd11: 0x14aa,\n\t0xd12: 0x0852, 0xd13: 0x11aa, 0xd14: 0x07f6, 0xd15: 0x07f2, 0xd16: 0x109a, 0xd17: 0x112a,\n\t0xd18: 0x125e, 0xd19: 0x14b2, 0xd1a: 0x136a, 0xd1b: 0x0c2a, 0xd1c: 0x0d76, 0xd1d: 0x135a,\n\t0xd1e: 0x06fa, 0xd1f: 0x0a66, 0xd20: 0x0b96, 0xd21: 0x0f32, 0xd22: 0x0fb2, 0xd23: 0x0876,\n\t0xd24: 0x103e, 0xd25: 0x0762, 0xd26: 0x0b7a, 0xd27: 0x06da, 0xd28: 0x0dee, 0xd29: 0x0ca6,\n\t0xd2a: 0x1112, 0xd2b: 0x08ca, 0xd2c: 0x09b6, 0xd2d: 0x0ffe, 0xd2e: 0x1266, 0xd2f: 0x133e,\n\t0xd30: 0x0dba, 0xd31: 0x13fa, 0xd32: 0x0de6, 0xd33: 0x0c3a, 0xd34: 0x121e, 0xd35: 0x0c5a,\n\t0xd36: 0x0fae, 0xd37: 0x072e, 0xd38: 0x07aa, 0xd39: 0x07ee, 0xd3a: 0x0d56, 0xd3b: 0x10fe,\n\t0xd3c: 0x11f6, 0xd3d: 0x134a, 0xd3e: 0x145e, 0xd3f: 0x085e,\n\t// Block 0x35, offset 0xd40\n\t0xd40: 0x0912, 0xd41: 0x0a1a, 0xd42: 0x0b32, 0xd43: 0x0cc2, 0xd44: 0x0e7e, 0xd45: 0x1042,\n\t0xd46: 0x149a, 0xd47: 0x157e, 0xd48: 0x15d2, 0xd49: 0x15ea, 0xd4a: 0x083a, 0xd4b: 0x0cf6,\n\t0xd4c: 0x0da6, 0xd4d: 0x13ee, 0xd4e: 0x0afe, 0xd4f: 0x0bda, 0xd50: 0x0bf6, 0xd51: 0x0c86,\n\t0xd52: 0x0e6e, 0xd53: 0x0eba, 0xd54: 0x0f6a, 0xd55: 0x108e, 0xd56: 0x1132, 0xd57: 0x1196,\n\t0xd58: 0x13de, 0xd59: 0x126e, 0xd5a: 0x1406, 0xd5b: 0x1482, 0xd5c: 0x0812, 0xd5d: 0x083e,\n\t0xd5e: 0x0926, 0xd5f: 0x0eaa, 0xd60: 0x12f6, 0xd61: 0x133e, 0xd62: 0x0b1e, 0xd63: 0x0b8e,\n\t0xd64: 0x0c52, 0xd65: 0x0db2, 0xd66: 0x10da, 0xd67: 0x0f26, 0xd68: 0x073e, 0xd69: 0x0982,\n\t0xd6a: 0x0a66, 0xd6b: 0x0aca, 0xd6c: 0x0b9a, 0xd6d: 0x0f42, 0xd6e: 0x0f5e, 0xd6f: 0x116e,\n\t0xd70: 0x118e, 0xd71: 0x1466, 0xd72: 0x14e6, 0xd73: 0x14f6, 0xd74: 0x1532, 0xd75: 0x0756,\n\t0xd76: 0x1082, 0xd77: 0x1452, 0xd78: 0x14ce, 0xd79: 0x0bb2, 0xd7a: 0x071a, 0xd7b: 0x077a,\n\t0xd7c: 0x0a6a, 0xd7d: 0x0a8a, 0xd7e: 0x0cb2, 0xd7f: 0x0d76,\n\t// Block 0x36, offset 0xd80\n\t0xd80: 0x0ec6, 0xd81: 0x0fce, 0xd82: 0x127a, 0xd83: 0x141a, 0xd84: 0x1626, 0xd85: 0x0ce6,\n\t0xd86: 0x14a6, 0xd87: 0x0836, 0xd88: 0x0d32, 0xd89: 0x0d3e, 0xd8a: 0x0e12, 0xd8b: 0x0e4a,\n\t0xd8c: 0x0f4e, 0xd8d: 0x0faa, 0xd8e: 0x102a, 0xd8f: 0x110e, 0xd90: 0x153e, 0xd91: 0x07b2,\n\t0xd92: 0x0c06, 0xd93: 0x14b6, 0xd94: 0x076a, 0xd95: 0x0aae, 0xd96: 0x0e32, 0xd97: 0x13e2,\n\t0xd98: 0x0b6a, 0xd99: 0x0bba, 0xd9a: 0x0d46, 0xd9b: 0x0f32, 0xd9c: 0x14be, 0xd9d: 0x081a,\n\t0xd9e: 0x0902, 0xd9f: 0x0a9a, 0xda0: 0x0cd6, 0xda1: 0x0d22, 0xda2: 0x0d62, 0xda3: 0x0df6,\n\t0xda4: 0x0f4a, 0xda5: 0x0fbe, 0xda6: 0x115a, 0xda7: 0x12fa, 0xda8: 0x1306, 0xda9: 0x145a,\n\t0xdaa: 0x14da, 0xdab: 0x0886, 0xdac: 0x0e4e, 0xdad: 0x0906, 0xdae: 0x0eca, 0xdaf: 0x0f6e,\n\t0xdb0: 0x128a, 0xdb1: 0x14c2, 0xdb2: 0x15ae, 0xdb3: 0x15d6, 0xdb4: 0x0d3a, 0xdb5: 0x0e2a,\n\t0xdb6: 0x11c6, 0xdb7: 0x10ba, 0xdb8: 0x10c6, 0xdb9: 0x10ea, 0xdba: 0x0f1a, 0xdbb: 0x0ea2,\n\t0xdbc: 0x1366, 0xdbd: 0x0736, 0xdbe: 0x122e, 0xdbf: 0x081e,\n\t// Block 0x37, offset 0xdc0\n\t0xdc0: 0x080e, 0xdc1: 0x0b0e, 0xdc2: 0x0c2e, 0xdc3: 0x10f6, 0xdc4: 0x0a56, 0xdc5: 0x0e06,\n\t0xdc6: 0x0cf2, 0xdc7: 0x13ea, 0xdc8: 0x12ea, 0xdc9: 0x14ae, 0xdca: 0x1326, 0xdcb: 0x0b2a,\n\t0xdcc: 0x078a, 0xdcd: 0x095e, 0xdd0: 0x09b2,\n\t0xdd2: 0x0ce2, 0xdd5: 0x07fa, 0xdd6: 0x0f22, 0xdd7: 0x0fe6,\n\t0xdd8: 0x104a, 0xdd9: 0x1066, 0xdda: 0x106a, 0xddb: 0x107e, 0xddc: 0x14fe, 0xddd: 0x10ee,\n\t0xdde: 0x1172, 0xde0: 0x1292, 0xde2: 0x1356,\n\t0xde5: 0x140a, 0xde6: 0x1436,\n\t0xdea: 0x1552, 0xdeb: 0x1556, 0xdec: 0x155a, 0xded: 0x15be, 0xdee: 0x142e, 0xdef: 0x14ca,\n\t0xdf0: 0x075a, 0xdf1: 0x077e, 0xdf2: 0x0792, 0xdf3: 0x084e, 0xdf4: 0x085a, 0xdf5: 0x089a,\n\t0xdf6: 0x094e, 0xdf7: 0x096a, 0xdf8: 0x0972, 0xdf9: 0x09ae, 0xdfa: 0x09ba, 0xdfb: 0x0a96,\n\t0xdfc: 0x0a9e, 0xdfd: 0x0ba6, 0xdfe: 0x0bce, 0xdff: 0x0bd6,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0x0bee, 0xe01: 0x0c9a, 0xe02: 0x0cca, 0xe03: 0x0cea, 0xe04: 0x0d5a, 0xe05: 0x0e1e,\n\t0xe06: 0x0e3a, 0xe07: 0x0e6a, 0xe08: 0x0ebe, 0xe09: 0x0ede, 0xe0a: 0x0f52, 0xe0b: 0x1032,\n\t0xe0c: 0x104e, 0xe0d: 0x1056, 0xe0e: 0x1052, 0xe0f: 0x105a, 0xe10: 0x105e, 0xe11: 0x1062,\n\t0xe12: 0x1076, 0xe13: 0x107a, 0xe14: 0x109e, 0xe15: 0x10b2, 0xe16: 0x10ce, 0xe17: 0x1132,\n\t0xe18: 0x113a, 0xe19: 0x1142, 0xe1a: 0x1156, 0xe1b: 0x117e, 0xe1c: 0x11ce, 0xe1d: 0x1202,\n\t0xe1e: 0x1202, 0xe1f: 0x126a, 0xe20: 0x1312, 0xe21: 0x132a, 0xe22: 0x135e, 0xe23: 0x1362,\n\t0xe24: 0x13a6, 0xe25: 0x13aa, 0xe26: 0x1402, 0xe27: 0x140a, 0xe28: 0x14de, 0xe29: 0x1522,\n\t0xe2a: 0x153a, 0xe2b: 0x0b9e, 0xe2c: 0x1721, 0xe2d: 0x11e6,\n\t0xe30: 0x06e2, 0xe31: 0x07e6, 0xe32: 0x07a6, 0xe33: 0x074e, 0xe34: 0x078e, 0xe35: 0x07ba,\n\t0xe36: 0x084a, 0xe37: 0x0866, 0xe38: 0x094e, 0xe39: 0x093a, 0xe3a: 0x094a, 0xe3b: 0x0966,\n\t0xe3c: 0x09b2, 0xe3d: 0x09c2, 0xe3e: 0x0a06, 0xe3f: 0x0a12,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x0a2e, 0xe41: 0x0a3e, 0xe42: 0x0b26, 0xe43: 0x0b2e, 0xe44: 0x0b5e, 0xe45: 0x0b7e,\n\t0xe46: 0x0bae, 0xe47: 0x0bc6, 0xe48: 0x0bb6, 0xe49: 0x0bd6, 0xe4a: 0x0bca, 0xe4b: 0x0bee,\n\t0xe4c: 0x0c0a, 0xe4d: 0x0c62, 0xe4e: 0x0c6e, 0xe4f: 0x0c76, 0xe50: 0x0c9e, 0xe51: 0x0ce2,\n\t0xe52: 0x0d12, 0xe53: 0x0d16, 0xe54: 0x0d2a, 0xe55: 0x0daa, 0xe56: 0x0dba, 0xe57: 0x0e12,\n\t0xe58: 0x0e5e, 0xe59: 0x0e56, 0xe5a: 0x0e6a, 0xe5b: 0x0e86, 0xe5c: 0x0ebe, 0xe5d: 0x1016,\n\t0xe5e: 0x0ee2, 0xe5f: 0x0f16, 0xe60: 0x0f22, 0xe61: 0x0f62, 0xe62: 0x0f7e, 0xe63: 0x0fa2,\n\t0xe64: 0x0fc6, 0xe65: 0x0fca, 0xe66: 0x0fe6, 0xe67: 0x0fea, 0xe68: 0x0ffa, 0xe69: 0x100e,\n\t0xe6a: 0x100a, 0xe6b: 0x103a, 0xe6c: 0x10b6, 0xe6d: 0x10ce, 0xe6e: 0x10e6, 0xe6f: 0x111e,\n\t0xe70: 0x1132, 0xe71: 0x114e, 0xe72: 0x117e, 0xe73: 0x1232, 0xe74: 0x125a, 0xe75: 0x12ce,\n\t0xe76: 0x1316, 0xe77: 0x1322, 0xe78: 0x132a, 0xe79: 0x1342, 0xe7a: 0x1356, 0xe7b: 0x1346,\n\t0xe7c: 0x135e, 0xe7d: 0x135a, 0xe7e: 0x1352, 0xe7f: 0x1362,\n\t// Block 0x3a, offset 0xe80\n\t0xe80: 0x136e, 0xe81: 0x13aa, 0xe82: 0x13e6, 0xe83: 0x1416, 0xe84: 0x144e, 0xe85: 0x146e,\n\t0xe86: 0x14ba, 0xe87: 0x14de, 0xe88: 0x14fe, 0xe89: 0x1512, 0xe8a: 0x1522, 0xe8b: 0x152e,\n\t0xe8c: 0x153a, 0xe8d: 0x158e, 0xe8e: 0x162e, 0xe8f: 0x16b8, 0xe90: 0x16b3, 0xe91: 0x16e5,\n\t0xe92: 0x060a, 0xe93: 0x0632, 0xe94: 0x0636, 0xe95: 0x1767, 0xe96: 0x1794, 0xe97: 0x180c,\n\t0xe98: 0x161a, 0xe99: 0x162a,\n\t// Block 0x3b, offset 0xec0\n\t0xec0: 0x19db, 0xec1: 0x19de, 0xec2: 0x19e1, 0xec3: 0x1c0e, 0xec4: 0x1c12, 0xec5: 0x1a65,\n\t0xec6: 0x1a65,\n\t0xed3: 0x1d7b, 0xed4: 0x1d6c, 0xed5: 0x1d71, 0xed6: 0x1d80, 0xed7: 0x1d76,\n\t0xedd: 0x43a7,\n\t0xede: 0x8116, 0xedf: 0x4419, 0xee0: 0x0230, 0xee1: 0x0218, 0xee2: 0x0221, 0xee3: 0x0224,\n\t0xee4: 0x0227, 0xee5: 0x022a, 0xee6: 0x022d, 0xee7: 0x0233, 0xee8: 0x0236, 0xee9: 0x0017,\n\t0xeea: 0x4407, 0xeeb: 0x440d, 0xeec: 0x450b, 0xeed: 0x4513, 0xeee: 0x435f, 0xeef: 0x4365,\n\t0xef0: 0x436b, 0xef1: 0x4371, 0xef2: 0x437d, 0xef3: 0x4383, 0xef4: 0x4389, 0xef5: 0x4395,\n\t0xef6: 0x439b, 0xef8: 0x43a1, 0xef9: 0x43ad, 0xefa: 0x43b3, 0xefb: 0x43b9,\n\t0xefc: 0x43c5, 0xefe: 0x43cb,\n\t// Block 0x3c, offset 0xf00\n\t0xf00: 0x43d1, 0xf01: 0x43d7, 0xf03: 0x43dd, 0xf04: 0x43e3,\n\t0xf06: 0x43ef, 0xf07: 0x43f5, 0xf08: 0x43fb, 0xf09: 0x4401, 0xf0a: 0x4413, 0xf0b: 0x438f,\n\t0xf0c: 0x4377, 0xf0d: 0x43bf, 0xf0e: 0x43e9, 0xf0f: 0x1d85, 0xf10: 0x029c, 0xf11: 0x029c,\n\t0xf12: 0x02a5, 0xf13: 0x02a5, 0xf14: 0x02a5, 0xf15: 0x02a5, 0xf16: 0x02a8, 0xf17: 0x02a8,\n\t0xf18: 0x02a8, 0xf19: 0x02a8, 0xf1a: 0x02ae, 0xf1b: 0x02ae, 0xf1c: 0x02ae, 0xf1d: 0x02ae,\n\t0xf1e: 0x02a2, 0xf1f: 0x02a2, 0xf20: 0x02a2, 0xf21: 0x02a2, 0xf22: 0x02ab, 0xf23: 0x02ab,\n\t0xf24: 0x02ab, 0xf25: 0x02ab, 0xf26: 0x029f, 0xf27: 0x029f, 0xf28: 0x029f, 0xf29: 0x029f,\n\t0xf2a: 0x02d2, 0xf2b: 0x02d2, 0xf2c: 0x02d2, 0xf2d: 0x02d2, 0xf2e: 0x02d5, 0xf2f: 0x02d5,\n\t0xf30: 0x02d5, 0xf31: 0x02d5, 0xf32: 0x02b4, 0xf33: 0x02b4, 0xf34: 0x02b4, 0xf35: 0x02b4,\n\t0xf36: 0x02b1, 0xf37: 0x02b1, 0xf38: 0x02b1, 0xf39: 0x02b1, 0xf3a: 0x02b7, 0xf3b: 0x02b7,\n\t0xf3c: 0x02b7, 0xf3d: 0x02b7, 0xf3e: 0x02ba, 0xf3f: 0x02ba,\n\t// Block 0x3d, offset 0xf40\n\t0xf40: 0x02ba, 0xf41: 0x02ba, 0xf42: 0x02c3, 0xf43: 0x02c3, 0xf44: 0x02c0, 0xf45: 0x02c0,\n\t0xf46: 0x02c6, 0xf47: 0x02c6, 0xf48: 0x02bd, 0xf49: 0x02bd, 0xf4a: 0x02cc, 0xf4b: 0x02cc,\n\t0xf4c: 0x02c9, 0xf4d: 0x02c9, 0xf4e: 0x02d8, 0xf4f: 0x02d8, 0xf50: 0x02d8, 0xf51: 0x02d8,\n\t0xf52: 0x02de, 0xf53: 0x02de, 0xf54: 0x02de, 0xf55: 0x02de, 0xf56: 0x02e4, 0xf57: 0x02e4,\n\t0xf58: 0x02e4, 0xf59: 0x02e4, 0xf5a: 0x02e1, 0xf5b: 0x02e1, 0xf5c: 0x02e1, 0xf5d: 0x02e1,\n\t0xf5e: 0x02e7, 0xf5f: 0x02e7, 0xf60: 0x02ea, 0xf61: 0x02ea, 0xf62: 0x02ea, 0xf63: 0x02ea,\n\t0xf64: 0x4485, 0xf65: 0x4485, 0xf66: 0x02f0, 0xf67: 0x02f0, 0xf68: 0x02f0, 0xf69: 0x02f0,\n\t0xf6a: 0x02ed, 0xf6b: 0x02ed, 0xf6c: 0x02ed, 0xf6d: 0x02ed, 0xf6e: 0x030b, 0xf6f: 0x030b,\n\t0xf70: 0x447f, 0xf71: 0x447f,\n\t// Block 0x3e, offset 0xf80\n\t0xf93: 0x02db, 0xf94: 0x02db, 0xf95: 0x02db, 0xf96: 0x02db, 0xf97: 0x02f9,\n\t0xf98: 0x02f9, 0xf99: 0x02f6, 0xf9a: 0x02f6, 0xf9b: 0x02fc, 0xf9c: 0x02fc, 0xf9d: 0x2055,\n\t0xf9e: 0x0302, 0xf9f: 0x0302, 0xfa0: 0x02f3, 0xfa1: 0x02f3, 0xfa2: 0x02ff, 0xfa3: 0x02ff,\n\t0xfa4: 0x0308, 0xfa5: 0x0308, 0xfa6: 0x0308, 0xfa7: 0x0308, 0xfa8: 0x0290, 0xfa9: 0x0290,\n\t0xfaa: 0x25b0, 0xfab: 0x25b0, 0xfac: 0x2620, 0xfad: 0x2620, 0xfae: 0x25ef, 0xfaf: 0x25ef,\n\t0xfb0: 0x260b, 0xfb1: 0x260b, 0xfb2: 0x2604, 0xfb3: 0x2604, 0xfb4: 0x2612, 0xfb5: 0x2612,\n\t0xfb6: 0x2619, 0xfb7: 0x2619, 0xfb8: 0x2619, 0xfb9: 0x25f6, 0xfba: 0x25f6, 0xfbb: 0x25f6,\n\t0xfbc: 0x0305, 0xfbd: 0x0305, 0xfbe: 0x0305, 0xfbf: 0x0305,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc0: 0x25b7, 0xfc1: 0x25be, 0xfc2: 0x25da, 0xfc3: 0x25f6, 0xfc4: 0x25fd, 0xfc5: 0x1d8f,\n\t0xfc6: 0x1d94, 0xfc7: 0x1d99, 0xfc8: 0x1da8, 0xfc9: 0x1db7, 0xfca: 0x1dbc, 0xfcb: 0x1dc1,\n\t0xfcc: 0x1dc6, 0xfcd: 0x1dcb, 0xfce: 0x1dda, 0xfcf: 0x1de9, 0xfd0: 0x1dee, 0xfd1: 0x1df3,\n\t0xfd2: 0x1e02, 0xfd3: 0x1e11, 0xfd4: 0x1e16, 0xfd5: 0x1e1b, 0xfd6: 0x1e20, 0xfd7: 0x1e2f,\n\t0xfd8: 0x1e34, 0xfd9: 0x1e43, 0xfda: 0x1e48, 0xfdb: 0x1e4d, 0xfdc: 0x1e5c, 0xfdd: 0x1e61,\n\t0xfde: 0x1e66, 0xfdf: 0x1e70, 0xfe0: 0x1eac, 0xfe1: 0x1ebb, 0xfe2: 0x1eca, 0xfe3: 0x1ecf,\n\t0xfe4: 0x1ed4, 0xfe5: 0x1ede, 0xfe6: 0x1eed, 0xfe7: 0x1ef2, 0xfe8: 0x1f01, 0xfe9: 0x1f06,\n\t0xfea: 0x1f0b, 0xfeb: 0x1f1a, 0xfec: 0x1f1f, 0xfed: 0x1f2e, 0xfee: 0x1f33, 0xfef: 0x1f38,\n\t0xff0: 0x1f3d, 0xff1: 0x1f42, 0xff2: 0x1f47, 0xff3: 0x1f4c, 0xff4: 0x1f51, 0xff5: 0x1f56,\n\t0xff6: 0x1f5b, 0xff7: 0x1f60, 0xff8: 0x1f65, 0xff9: 0x1f6a, 0xffa: 0x1f6f, 0xffb: 0x1f74,\n\t0xffc: 0x1f79, 0xffd: 0x1f7e, 0xffe: 0x1f83, 0xfff: 0x1f8d,\n\t// Block 0x40, offset 0x1000\n\t0x1000: 0x1f92, 0x1001: 0x1f97, 0x1002: 0x1f9c, 0x1003: 0x1fa6, 0x1004: 0x1fab, 0x1005: 0x1fb5,\n\t0x1006: 0x1fba, 0x1007: 0x1fbf, 0x1008: 0x1fc4, 0x1009: 0x1fc9, 0x100a: 0x1fce, 0x100b: 0x1fd3,\n\t0x100c: 0x1fd8, 0x100d: 0x1fdd, 0x100e: 0x1fec, 0x100f: 0x1ffb, 0x1010: 0x2000, 0x1011: 0x2005,\n\t0x1012: 0x200a, 0x1013: 0x200f, 0x1014: 0x2014, 0x1015: 0x201e, 0x1016: 0x2023, 0x1017: 0x2028,\n\t0x1018: 0x2037, 0x1019: 0x2046, 0x101a: 0x204b, 0x101b: 0x4437, 0x101c: 0x443d, 0x101d: 0x4473,\n\t0x101e: 0x44ca, 0x101f: 0x44d1, 0x1020: 0x44d8, 0x1021: 0x44df, 0x1022: 0x44e6, 0x1023: 0x44ed,\n\t0x1024: 0x25cc, 0x1025: 0x25d3, 0x1026: 0x25da, 0x1027: 0x25e1, 0x1028: 0x25f6, 0x1029: 0x25fd,\n\t0x102a: 0x1d9e, 0x102b: 0x1da3, 0x102c: 0x1da8, 0x102d: 0x1dad, 0x102e: 0x1db7, 0x102f: 0x1dbc,\n\t0x1030: 0x1dd0, 0x1031: 0x1dd5, 0x1032: 0x1dda, 0x1033: 0x1ddf, 0x1034: 0x1de9, 0x1035: 0x1dee,\n\t0x1036: 0x1df8, 0x1037: 0x1dfd, 0x1038: 0x1e02, 0x1039: 0x1e07, 0x103a: 0x1e11, 0x103b: 0x1e16,\n\t0x103c: 0x1f42, 0x103d: 0x1f47, 0x103e: 0x1f56, 0x103f: 0x1f5b,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x1f60, 0x1041: 0x1f74, 0x1042: 0x1f79, 0x1043: 0x1f7e, 0x1044: 0x1f83, 0x1045: 0x1f9c,\n\t0x1046: 0x1fa6, 0x1047: 0x1fab, 0x1048: 0x1fb0, 0x1049: 0x1fc4, 0x104a: 0x1fe2, 0x104b: 0x1fe7,\n\t0x104c: 0x1fec, 0x104d: 0x1ff1, 0x104e: 0x1ffb, 0x104f: 0x2000, 0x1050: 0x4473, 0x1051: 0x202d,\n\t0x1052: 0x2032, 0x1053: 0x2037, 0x1054: 0x203c, 0x1055: 0x2046, 0x1056: 0x204b, 0x1057: 0x25b7,\n\t0x1058: 0x25be, 0x1059: 0x25c5, 0x105a: 0x25da, 0x105b: 0x25e8, 0x105c: 0x1d8f, 0x105d: 0x1d94,\n\t0x105e: 0x1d99, 0x105f: 0x1da8, 0x1060: 0x1db2, 0x1061: 0x1dc1, 0x1062: 0x1dc6, 0x1063: 0x1dcb,\n\t0x1064: 0x1dda, 0x1065: 0x1de4, 0x1066: 0x1e02, 0x1067: 0x1e1b, 0x1068: 0x1e20, 0x1069: 0x1e2f,\n\t0x106a: 0x1e34, 0x106b: 0x1e43, 0x106c: 0x1e4d, 0x106d: 0x1e5c, 0x106e: 0x1e61, 0x106f: 0x1e66,\n\t0x1070: 0x1e70, 0x1071: 0x1eac, 0x1072: 0x1eb1, 0x1073: 0x1ebb, 0x1074: 0x1eca, 0x1075: 0x1ecf,\n\t0x1076: 0x1ed4, 0x1077: 0x1ede, 0x1078: 0x1eed, 0x1079: 0x1f01, 0x107a: 0x1f06, 0x107b: 0x1f0b,\n\t0x107c: 0x1f1a, 0x107d: 0x1f1f, 0x107e: 0x1f2e, 0x107f: 0x1f33,\n\t// Block 0x42, offset 0x1080\n\t0x1080: 0x1f38, 0x1081: 0x1f3d, 0x1082: 0x1f4c, 0x1083: 0x1f51, 0x1084: 0x1f65, 0x1085: 0x1f6a,\n\t0x1086: 0x1f6f, 0x1087: 0x1f74, 0x1088: 0x1f79, 0x1089: 0x1f8d, 0x108a: 0x1f92, 0x108b: 0x1f97,\n\t0x108c: 0x1f9c, 0x108d: 0x1fa1, 0x108e: 0x1fb5, 0x108f: 0x1fba, 0x1090: 0x1fbf, 0x1091: 0x1fc4,\n\t0x1092: 0x1fd3, 0x1093: 0x1fd8, 0x1094: 0x1fdd, 0x1095: 0x1fec, 0x1096: 0x1ff6, 0x1097: 0x2005,\n\t0x1098: 0x200a, 0x1099: 0x4467, 0x109a: 0x201e, 0x109b: 0x2023, 0x109c: 0x2028, 0x109d: 0x2037,\n\t0x109e: 0x2041, 0x109f: 0x25da, 0x10a0: 0x25e8, 0x10a1: 0x1da8, 0x10a2: 0x1db2, 0x10a3: 0x1dda,\n\t0x10a4: 0x1de4, 0x10a5: 0x1e02, 0x10a6: 0x1e0c, 0x10a7: 0x1e70, 0x10a8: 0x1e75, 0x10a9: 0x1e98,\n\t0x10aa: 0x1e9d, 0x10ab: 0x1f74, 0x10ac: 0x1f79, 0x10ad: 0x1f9c, 0x10ae: 0x1fec, 0x10af: 0x1ff6,\n\t0x10b0: 0x2037, 0x10b1: 0x2041, 0x10b2: 0x451b, 0x10b3: 0x4523, 0x10b4: 0x452b, 0x10b5: 0x1ef7,\n\t0x10b6: 0x1efc, 0x10b7: 0x1f10, 0x10b8: 0x1f15, 0x10b9: 0x1f24, 0x10ba: 0x1f29, 0x10bb: 0x1e7a,\n\t0x10bc: 0x1e7f, 0x10bd: 0x1ea2, 0x10be: 0x1ea7, 0x10bf: 0x1e39,\n\t// Block 0x43, offset 0x10c0\n\t0x10c0: 0x1e3e, 0x10c1: 0x1e25, 0x10c2: 0x1e2a, 0x10c3: 0x1e52, 0x10c4: 0x1e57, 0x10c5: 0x1ec0,\n\t0x10c6: 0x1ec5, 0x10c7: 0x1ee3, 0x10c8: 0x1ee8, 0x10c9: 0x1e84, 0x10ca: 0x1e89, 0x10cb: 0x1e8e,\n\t0x10cc: 0x1e98, 0x10cd: 0x1e93, 0x10ce: 0x1e6b, 0x10cf: 0x1eb6, 0x10d0: 0x1ed9, 0x10d1: 0x1ef7,\n\t0x10d2: 0x1efc, 0x10d3: 0x1f10, 0x10d4: 0x1f15, 0x10d5: 0x1f24, 0x10d6: 0x1f29, 0x10d7: 0x1e7a,\n\t0x10d8: 0x1e7f, 0x10d9: 0x1ea2, 0x10da: 0x1ea7, 0x10db: 0x1e39, 0x10dc: 0x1e3e, 0x10dd: 0x1e25,\n\t0x10de: 0x1e2a, 0x10df: 0x1e52, 0x10e0: 0x1e57, 0x10e1: 0x1ec0, 0x10e2: 0x1ec5, 0x10e3: 0x1ee3,\n\t0x10e4: 0x1ee8, 0x10e5: 0x1e84, 0x10e6: 0x1e89, 0x10e7: 0x1e8e, 0x10e8: 0x1e98, 0x10e9: 0x1e93,\n\t0x10ea: 0x1e6b, 0x10eb: 0x1eb6, 0x10ec: 0x1ed9, 0x10ed: 0x1e84, 0x10ee: 0x1e89, 0x10ef: 0x1e8e,\n\t0x10f0: 0x1e98, 0x10f1: 0x1e75, 0x10f2: 0x1e9d, 0x10f3: 0x1ef2, 0x10f4: 0x1e5c, 0x10f5: 0x1e61,\n\t0x10f6: 0x1e66, 0x10f7: 0x1e84, 0x10f8: 0x1e89, 0x10f9: 0x1e8e, 0x10fa: 0x1ef2, 0x10fb: 0x1f01,\n\t0x10fc: 0x441f, 0x10fd: 0x441f,\n\t// Block 0x44, offset 0x1100\n\t0x1110: 0x2317, 0x1111: 0x232c,\n\t0x1112: 0x232c, 0x1113: 0x2333, 0x1114: 0x233a, 0x1115: 0x234f, 0x1116: 0x2356, 0x1117: 0x235d,\n\t0x1118: 0x2380, 0x1119: 0x2380, 0x111a: 0x23a3, 0x111b: 0x239c, 0x111c: 0x23b8, 0x111d: 0x23aa,\n\t0x111e: 0x23b1, 0x111f: 0x23d4, 0x1120: 0x23d4, 0x1121: 0x23cd, 0x1122: 0x23db, 0x1123: 0x23db,\n\t0x1124: 0x2405, 0x1125: 0x2405, 0x1126: 0x2421, 0x1127: 0x23e9, 0x1128: 0x23e9, 0x1129: 0x23e2,\n\t0x112a: 0x23f7, 0x112b: 0x23f7, 0x112c: 0x23fe, 0x112d: 0x23fe, 0x112e: 0x2428, 0x112f: 0x2436,\n\t0x1130: 0x2436, 0x1131: 0x243d, 0x1132: 0x243d, 0x1133: 0x2444, 0x1134: 0x244b, 0x1135: 0x2452,\n\t0x1136: 0x2459, 0x1137: 0x2459, 0x1138: 0x2460, 0x1139: 0x246e, 0x113a: 0x247c, 0x113b: 0x2475,\n\t0x113c: 0x2483, 0x113d: 0x2483, 0x113e: 0x2498, 0x113f: 0x249f,\n\t// Block 0x45, offset 0x1140\n\t0x1140: 0x24d0, 0x1141: 0x24de, 0x1142: 0x24d7, 0x1143: 0x24bb, 0x1144: 0x24bb, 0x1145: 0x24e5,\n\t0x1146: 0x24e5, 0x1147: 0x24ec, 0x1148: 0x24ec, 0x1149: 0x2516, 0x114a: 0x251d, 0x114b: 0x2524,\n\t0x114c: 0x24fa, 0x114d: 0x2508, 0x114e: 0x252b, 0x114f: 0x2532,\n\t0x1152: 0x2501, 0x1153: 0x2586, 0x1154: 0x258d, 0x1155: 0x2563, 0x1156: 0x256a, 0x1157: 0x254e,\n\t0x1158: 0x254e, 0x1159: 0x2555, 0x115a: 0x257f, 0x115b: 0x2578, 0x115c: 0x25a2, 0x115d: 0x25a2,\n\t0x115e: 0x2310, 0x115f: 0x2325, 0x1160: 0x231e, 0x1161: 0x2348, 0x1162: 0x2341, 0x1163: 0x236b,\n\t0x1164: 0x2364, 0x1165: 0x238e, 0x1166: 0x2372, 0x1167: 0x2387, 0x1168: 0x23bf, 0x1169: 0x240c,\n\t0x116a: 0x23f0, 0x116b: 0x242f, 0x116c: 0x24c9, 0x116d: 0x24f3, 0x116e: 0x259b, 0x116f: 0x2594,\n\t0x1170: 0x25a9, 0x1171: 0x2540, 0x1172: 0x24a6, 0x1173: 0x2571, 0x1174: 0x2498, 0x1175: 0x24d0,\n\t0x1176: 0x2467, 0x1177: 0x24b4, 0x1178: 0x2547, 0x1179: 0x2539, 0x117a: 0x24c2, 0x117b: 0x24ad,\n\t0x117c: 0x24c2, 0x117d: 0x2547, 0x117e: 0x2379, 0x117f: 0x2395,\n\t// Block 0x46, offset 0x1180\n\t0x1180: 0x250f, 0x1181: 0x248a, 0x1182: 0x2309, 0x1183: 0x24ad, 0x1184: 0x2452, 0x1185: 0x2421,\n\t0x1186: 0x23c6, 0x1187: 0x255c,\n\t0x11b0: 0x241a, 0x11b1: 0x2491, 0x11b2: 0x27cc, 0x11b3: 0x27c3, 0x11b4: 0x27f9, 0x11b5: 0x27e7,\n\t0x11b6: 0x27d5, 0x11b7: 0x27f0, 0x11b8: 0x2802, 0x11b9: 0x2413, 0x11ba: 0x2c89, 0x11bb: 0x2b09,\n\t0x11bc: 0x27de,\n\t// Block 0x47, offset 0x11c0\n\t0x11d0: 0x0019, 0x11d1: 0x0486,\n\t0x11d2: 0x048a, 0x11d3: 0x0035, 0x11d4: 0x0037, 0x11d5: 0x0003, 0x11d6: 0x003f, 0x11d7: 0x04c2,\n\t0x11d8: 0x04c6, 0x11d9: 0x1b62,\n\t0x11e0: 0x8133, 0x11e1: 0x8133, 0x11e2: 0x8133, 0x11e3: 0x8133,\n\t0x11e4: 0x8133, 0x11e5: 0x8133, 0x11e6: 0x8133, 0x11e7: 0x812e, 0x11e8: 0x812e, 0x11e9: 0x812e,\n\t0x11ea: 0x812e, 0x11eb: 0x812e, 0x11ec: 0x812e, 0x11ed: 0x812e, 0x11ee: 0x8133, 0x11ef: 0x8133,\n\t0x11f0: 0x1876, 0x11f1: 0x0446, 0x11f2: 0x0442, 0x11f3: 0x007f, 0x11f4: 0x007f, 0x11f5: 0x0011,\n\t0x11f6: 0x0013, 0x11f7: 0x00b7, 0x11f8: 0x00bb, 0x11f9: 0x04ba, 0x11fa: 0x04be, 0x11fb: 0x04ae,\n\t0x11fc: 0x04b2, 0x11fd: 0x0496, 0x11fe: 0x049a, 0x11ff: 0x048e,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0x0492, 0x1201: 0x049e, 0x1202: 0x04a2, 0x1203: 0x04a6, 0x1204: 0x04aa,\n\t0x1207: 0x0077, 0x1208: 0x007b, 0x1209: 0x4280, 0x120a: 0x4280, 0x120b: 0x4280,\n\t0x120c: 0x4280, 0x120d: 0x007f, 0x120e: 0x007f, 0x120f: 0x007f, 0x1210: 0x0019, 0x1211: 0x0486,\n\t0x1212: 0x001d, 0x1214: 0x0037, 0x1215: 0x0035, 0x1216: 0x003f, 0x1217: 0x0003,\n\t0x1218: 0x0446, 0x1219: 0x0011, 0x121a: 0x0013, 0x121b: 0x00b7, 0x121c: 0x00bb, 0x121d: 0x04ba,\n\t0x121e: 0x04be, 0x121f: 0x0007, 0x1220: 0x000d, 0x1221: 0x0015, 0x1222: 0x0017, 0x1223: 0x001b,\n\t0x1224: 0x0039, 0x1225: 0x003d, 0x1226: 0x003b, 0x1228: 0x0079, 0x1229: 0x0009,\n\t0x122a: 0x000b, 0x122b: 0x0041,\n\t0x1230: 0x42c1, 0x1231: 0x4443, 0x1232: 0x42c6, 0x1234: 0x42cb,\n\t0x1236: 0x42d0, 0x1237: 0x4449, 0x1238: 0x42d5, 0x1239: 0x444f, 0x123a: 0x42da, 0x123b: 0x4455,\n\t0x123c: 0x42df, 0x123d: 0x445b, 0x123e: 0x42e4, 0x123f: 0x4461,\n\t// Block 0x49, offset 0x1240\n\t0x1240: 0x0239, 0x1241: 0x4425, 0x1242: 0x4425, 0x1243: 0x442b, 0x1244: 0x442b, 0x1245: 0x446d,\n\t0x1246: 0x446d, 0x1247: 0x4431, 0x1248: 0x4431, 0x1249: 0x4479, 0x124a: 0x4479, 0x124b: 0x4479,\n\t0x124c: 0x4479, 0x124d: 0x023c, 0x124e: 0x023c, 0x124f: 0x023f, 0x1250: 0x023f, 0x1251: 0x023f,\n\t0x1252: 0x023f, 0x1253: 0x0242, 0x1254: 0x0242, 0x1255: 0x0245, 0x1256: 0x0245, 0x1257: 0x0245,\n\t0x1258: 0x0245, 0x1259: 0x0248, 0x125a: 0x0248, 0x125b: 0x0248, 0x125c: 0x0248, 0x125d: 0x024b,\n\t0x125e: 0x024b, 0x125f: 0x024b, 0x1260: 0x024b, 0x1261: 0x024e, 0x1262: 0x024e, 0x1263: 0x024e,\n\t0x1264: 0x024e, 0x1265: 0x0251, 0x1266: 0x0251, 0x1267: 0x0251, 0x1268: 0x0251, 0x1269: 0x0254,\n\t0x126a: 0x0254, 0x126b: 0x0257, 0x126c: 0x0257, 0x126d: 0x025a, 0x126e: 0x025a, 0x126f: 0x025d,\n\t0x1270: 0x025d, 0x1271: 0x0260, 0x1272: 0x0260, 0x1273: 0x0260, 0x1274: 0x0260, 0x1275: 0x0263,\n\t0x1276: 0x0263, 0x1277: 0x0263, 0x1278: 0x0263, 0x1279: 0x0266, 0x127a: 0x0266, 0x127b: 0x0266,\n\t0x127c: 0x0266, 0x127d: 0x0269, 0x127e: 0x0269, 0x127f: 0x0269,\n\t// Block 0x4a, offset 0x1280\n\t0x1280: 0x0269, 0x1281: 0x026c, 0x1282: 0x026c, 0x1283: 0x026c, 0x1284: 0x026c, 0x1285: 0x026f,\n\t0x1286: 0x026f, 0x1287: 0x026f, 0x1288: 0x026f, 0x1289: 0x0272, 0x128a: 0x0272, 0x128b: 0x0272,\n\t0x128c: 0x0272, 0x128d: 0x0275, 0x128e: 0x0275, 0x128f: 0x0275, 0x1290: 0x0275, 0x1291: 0x0278,\n\t0x1292: 0x0278, 0x1293: 0x0278, 0x1294: 0x0278, 0x1295: 0x027b, 0x1296: 0x027b, 0x1297: 0x027b,\n\t0x1298: 0x027b, 0x1299: 0x027e, 0x129a: 0x027e, 0x129b: 0x027e, 0x129c: 0x027e, 0x129d: 0x0281,\n\t0x129e: 0x0281, 0x129f: 0x0281, 0x12a0: 0x0281, 0x12a1: 0x0284, 0x12a2: 0x0284, 0x12a3: 0x0284,\n\t0x12a4: 0x0284, 0x12a5: 0x0287, 0x12a6: 0x0287, 0x12a7: 0x0287, 0x12a8: 0x0287, 0x12a9: 0x028a,\n\t0x12aa: 0x028a, 0x12ab: 0x028a, 0x12ac: 0x028a, 0x12ad: 0x028d, 0x12ae: 0x028d, 0x12af: 0x0290,\n\t0x12b0: 0x0290, 0x12b1: 0x0293, 0x12b2: 0x0293, 0x12b3: 0x0293, 0x12b4: 0x0293, 0x12b5: 0x2e17,\n\t0x12b6: 0x2e17, 0x12b7: 0x2e1f, 0x12b8: 0x2e1f, 0x12b9: 0x2e27, 0x12ba: 0x2e27, 0x12bb: 0x1f88,\n\t0x12bc: 0x1f88,\n\t// Block 0x4b, offset 0x12c0\n\t0x12c0: 0x0081, 0x12c1: 0x0083, 0x12c2: 0x0085, 0x12c3: 0x0087, 0x12c4: 0x0089, 0x12c5: 0x008b,\n\t0x12c6: 0x008d, 0x12c7: 0x008f, 0x12c8: 0x0091, 0x12c9: 0x0093, 0x12ca: 0x0095, 0x12cb: 0x0097,\n\t0x12cc: 0x0099, 0x12cd: 0x009b, 0x12ce: 0x009d, 0x12cf: 0x009f, 0x12d0: 0x00a1, 0x12d1: 0x00a3,\n\t0x12d2: 0x00a5, 0x12d3: 0x00a7, 0x12d4: 0x00a9, 0x12d5: 0x00ab, 0x12d6: 0x00ad, 0x12d7: 0x00af,\n\t0x12d8: 0x00b1, 0x12d9: 0x00b3, 0x12da: 0x00b5, 0x12db: 0x00b7, 0x12dc: 0x00b9, 0x12dd: 0x00bb,\n\t0x12de: 0x00bd, 0x12df: 0x047a, 0x12e0: 0x047e, 0x12e1: 0x048a, 0x12e2: 0x049e, 0x12e3: 0x04a2,\n\t0x12e4: 0x0486, 0x12e5: 0x05ae, 0x12e6: 0x05a6, 0x12e7: 0x04ca, 0x12e8: 0x04d2, 0x12e9: 0x04da,\n\t0x12ea: 0x04e2, 0x12eb: 0x04ea, 0x12ec: 0x056e, 0x12ed: 0x0576, 0x12ee: 0x057e, 0x12ef: 0x0522,\n\t0x12f0: 0x05b2, 0x12f1: 0x04ce, 0x12f2: 0x04d6, 0x12f3: 0x04de, 0x12f4: 0x04e6, 0x12f5: 0x04ee,\n\t0x12f6: 0x04f2, 0x12f7: 0x04f6, 0x12f8: 0x04fa, 0x12f9: 0x04fe, 0x12fa: 0x0502, 0x12fb: 0x0506,\n\t0x12fc: 0x050a, 0x12fd: 0x050e, 0x12fe: 0x0512, 0x12ff: 0x0516,\n\t// Block 0x4c, offset 0x1300\n\t0x1300: 0x051a, 0x1301: 0x051e, 0x1302: 0x0526, 0x1303: 0x052a, 0x1304: 0x052e, 0x1305: 0x0532,\n\t0x1306: 0x0536, 0x1307: 0x053a, 0x1308: 0x053e, 0x1309: 0x0542, 0x130a: 0x0546, 0x130b: 0x054a,\n\t0x130c: 0x054e, 0x130d: 0x0552, 0x130e: 0x0556, 0x130f: 0x055a, 0x1310: 0x055e, 0x1311: 0x0562,\n\t0x1312: 0x0566, 0x1313: 0x056a, 0x1314: 0x0572, 0x1315: 0x057a, 0x1316: 0x0582, 0x1317: 0x0586,\n\t0x1318: 0x058a, 0x1319: 0x058e, 0x131a: 0x0592, 0x131b: 0x0596, 0x131c: 0x059a, 0x131d: 0x05aa,\n\t0x131e: 0x4a8f, 0x131f: 0x4a95, 0x1320: 0x03c6, 0x1321: 0x0316, 0x1322: 0x031a, 0x1323: 0x4a52,\n\t0x1324: 0x031e, 0x1325: 0x4a58, 0x1326: 0x4a5e, 0x1327: 0x0322, 0x1328: 0x0326, 0x1329: 0x032a,\n\t0x132a: 0x4a64, 0x132b: 0x4a6a, 0x132c: 0x4a70, 0x132d: 0x4a76, 0x132e: 0x4a7c, 0x132f: 0x4a82,\n\t0x1330: 0x036a, 0x1331: 0x032e, 0x1332: 0x0332, 0x1333: 0x0336, 0x1334: 0x037e, 0x1335: 0x033a,\n\t0x1336: 0x033e, 0x1337: 0x0342, 0x1338: 0x0346, 0x1339: 0x034a, 0x133a: 0x034e, 0x133b: 0x0352,\n\t0x133c: 0x0356, 0x133d: 0x035a, 0x133e: 0x035e,\n\t// Block 0x4d, offset 0x1340\n\t0x1342: 0x49d4, 0x1343: 0x49da, 0x1344: 0x49e0, 0x1345: 0x49e6,\n\t0x1346: 0x49ec, 0x1347: 0x49f2, 0x134a: 0x49f8, 0x134b: 0x49fe,\n\t0x134c: 0x4a04, 0x134d: 0x4a0a, 0x134e: 0x4a10, 0x134f: 0x4a16,\n\t0x1352: 0x4a1c, 0x1353: 0x4a22, 0x1354: 0x4a28, 0x1355: 0x4a2e, 0x1356: 0x4a34, 0x1357: 0x4a3a,\n\t0x135a: 0x4a40, 0x135b: 0x4a46, 0x135c: 0x4a4c,\n\t0x1360: 0x00bf, 0x1361: 0x00c2, 0x1362: 0x00cb, 0x1363: 0x427b,\n\t0x1364: 0x00c8, 0x1365: 0x00c5, 0x1366: 0x044a, 0x1368: 0x046e, 0x1369: 0x044e,\n\t0x136a: 0x0452, 0x136b: 0x0456, 0x136c: 0x045a, 0x136d: 0x0472, 0x136e: 0x0476,\n\t// Block 0x4e, offset 0x1380\n\t0x1380: 0x0063, 0x1381: 0x0065, 0x1382: 0x0067, 0x1383: 0x0069, 0x1384: 0x006b, 0x1385: 0x006d,\n\t0x1386: 0x006f, 0x1387: 0x0071, 0x1388: 0x0073, 0x1389: 0x0075, 0x138a: 0x0083, 0x138b: 0x0085,\n\t0x138c: 0x0087, 0x138d: 0x0089, 0x138e: 0x008b, 0x138f: 0x008d, 0x1390: 0x008f, 0x1391: 0x0091,\n\t0x1392: 0x0093, 0x1393: 0x0095, 0x1394: 0x0097, 0x1395: 0x0099, 0x1396: 0x009b, 0x1397: 0x009d,\n\t0x1398: 0x009f, 0x1399: 0x00a1, 0x139a: 0x00a3, 0x139b: 0x00a5, 0x139c: 0x00a7, 0x139d: 0x00a9,\n\t0x139e: 0x00ab, 0x139f: 0x00ad, 0x13a0: 0x00af, 0x13a1: 0x00b1, 0x13a2: 0x00b3, 0x13a3: 0x00b5,\n\t0x13a4: 0x00dd, 0x13a5: 0x00f2, 0x13a8: 0x0176, 0x13a9: 0x0179,\n\t0x13aa: 0x017c, 0x13ab: 0x017f, 0x13ac: 0x0182, 0x13ad: 0x0185, 0x13ae: 0x0188, 0x13af: 0x018b,\n\t0x13b0: 0x018e, 0x13b1: 0x0191, 0x13b2: 0x0194, 0x13b3: 0x0197, 0x13b4: 0x019a, 0x13b5: 0x019d,\n\t0x13b6: 0x01a0, 0x13b7: 0x01a3, 0x13b8: 0x01a6, 0x13b9: 0x018b, 0x13ba: 0x01a9, 0x13bb: 0x01ac,\n\t0x13bc: 0x01af, 0x13bd: 0x01b2, 0x13be: 0x01b5, 0x13bf: 0x01b8,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c0: 0x0200, 0x13c1: 0x0203, 0x13c2: 0x0206, 0x13c3: 0x045e, 0x13c4: 0x01ca, 0x13c5: 0x01d3,\n\t0x13c6: 0x01d9, 0x13c7: 0x01fd, 0x13c8: 0x01ee, 0x13c9: 0x01eb, 0x13ca: 0x0209, 0x13cb: 0x020c,\n\t0x13ce: 0x0021, 0x13cf: 0x0023, 0x13d0: 0x0025, 0x13d1: 0x0027,\n\t0x13d2: 0x0029, 0x13d3: 0x002b, 0x13d4: 0x002d, 0x13d5: 0x002f, 0x13d6: 0x0031, 0x13d7: 0x0033,\n\t0x13d8: 0x0021, 0x13d9: 0x0023, 0x13da: 0x0025, 0x13db: 0x0027, 0x13dc: 0x0029, 0x13dd: 0x002b,\n\t0x13de: 0x002d, 0x13df: 0x002f, 0x13e0: 0x0031, 0x13e1: 0x0033, 0x13e2: 0x0021, 0x13e3: 0x0023,\n\t0x13e4: 0x0025, 0x13e5: 0x0027, 0x13e6: 0x0029, 0x13e7: 0x002b, 0x13e8: 0x002d, 0x13e9: 0x002f,\n\t0x13ea: 0x0031, 0x13eb: 0x0033, 0x13ec: 0x0021, 0x13ed: 0x0023, 0x13ee: 0x0025, 0x13ef: 0x0027,\n\t0x13f0: 0x0029, 0x13f1: 0x002b, 0x13f2: 0x002d, 0x13f3: 0x002f, 0x13f4: 0x0031, 0x13f5: 0x0033,\n\t0x13f6: 0x0021, 0x13f7: 0x0023, 0x13f8: 0x0025, 0x13f9: 0x0027, 0x13fa: 0x0029, 0x13fb: 0x002b,\n\t0x13fc: 0x002d, 0x13fd: 0x002f, 0x13fe: 0x0031, 0x13ff: 0x0033,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x023c, 0x1401: 0x023f, 0x1402: 0x024b, 0x1403: 0x0254, 0x1405: 0x028d,\n\t0x1406: 0x025d, 0x1407: 0x024e, 0x1408: 0x026c, 0x1409: 0x0293, 0x140a: 0x027e, 0x140b: 0x0281,\n\t0x140c: 0x0284, 0x140d: 0x0287, 0x140e: 0x0260, 0x140f: 0x0272, 0x1410: 0x0278, 0x1411: 0x0266,\n\t0x1412: 0x027b, 0x1413: 0x025a, 0x1414: 0x0263, 0x1415: 0x0245, 0x1416: 0x0248, 0x1417: 0x0251,\n\t0x1418: 0x0257, 0x1419: 0x0269, 0x141a: 0x026f, 0x141b: 0x0275, 0x141c: 0x0296, 0x141d: 0x02e7,\n\t0x141e: 0x02cf, 0x141f: 0x0299, 0x1421: 0x023f, 0x1422: 0x024b,\n\t0x1424: 0x028a, 0x1427: 0x024e, 0x1429: 0x0293,\n\t0x142a: 0x027e, 0x142b: 0x0281, 0x142c: 0x0284, 0x142d: 0x0287, 0x142e: 0x0260, 0x142f: 0x0272,\n\t0x1430: 0x0278, 0x1431: 0x0266, 0x1432: 0x027b, 0x1434: 0x0263, 0x1435: 0x0245,\n\t0x1436: 0x0248, 0x1437: 0x0251, 0x1439: 0x0269, 0x143b: 0x0275,\n\t// Block 0x51, offset 0x1440\n\t0x1442: 0x024b,\n\t0x1447: 0x024e, 0x1449: 0x0293, 0x144b: 0x0281,\n\t0x144d: 0x0287, 0x144e: 0x0260, 0x144f: 0x0272, 0x1451: 0x0266,\n\t0x1452: 0x027b, 0x1454: 0x0263, 0x1457: 0x0251,\n\t0x1459: 0x0269, 0x145b: 0x0275, 0x145d: 0x02e7,\n\t0x145f: 0x0299, 0x1461: 0x023f, 0x1462: 0x024b,\n\t0x1464: 0x028a, 0x1467: 0x024e, 0x1468: 0x026c, 0x1469: 0x0293,\n\t0x146a: 0x027e, 0x146c: 0x0284, 0x146d: 0x0287, 0x146e: 0x0260, 0x146f: 0x0272,\n\t0x1470: 0x0278, 0x1471: 0x0266, 0x1472: 0x027b, 0x1474: 0x0263, 0x1475: 0x0245,\n\t0x1476: 0x0248, 0x1477: 0x0251, 0x1479: 0x0269, 0x147a: 0x026f, 0x147b: 0x0275,\n\t0x147c: 0x0296, 0x147e: 0x02cf,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x023c, 0x1481: 0x023f, 0x1482: 0x024b, 0x1483: 0x0254, 0x1484: 0x028a, 0x1485: 0x028d,\n\t0x1486: 0x025d, 0x1487: 0x024e, 0x1488: 0x026c, 0x1489: 0x0293, 0x148b: 0x0281,\n\t0x148c: 0x0284, 0x148d: 0x0287, 0x148e: 0x0260, 0x148f: 0x0272, 0x1490: 0x0278, 0x1491: 0x0266,\n\t0x1492: 0x027b, 0x1493: 0x025a, 0x1494: 0x0263, 0x1495: 0x0245, 0x1496: 0x0248, 0x1497: 0x0251,\n\t0x1498: 0x0257, 0x1499: 0x0269, 0x149a: 0x026f, 0x149b: 0x0275,\n\t0x14a1: 0x023f, 0x14a2: 0x024b, 0x14a3: 0x0254,\n\t0x14a5: 0x028d, 0x14a6: 0x025d, 0x14a7: 0x024e, 0x14a8: 0x026c, 0x14a9: 0x0293,\n\t0x14ab: 0x0281, 0x14ac: 0x0284, 0x14ad: 0x0287, 0x14ae: 0x0260, 0x14af: 0x0272,\n\t0x14b0: 0x0278, 0x14b1: 0x0266, 0x14b2: 0x027b, 0x14b3: 0x025a, 0x14b4: 0x0263, 0x14b5: 0x0245,\n\t0x14b6: 0x0248, 0x14b7: 0x0251, 0x14b8: 0x0257, 0x14b9: 0x0269, 0x14ba: 0x026f, 0x14bb: 0x0275,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x187c, 0x14c1: 0x1879, 0x14c2: 0x187f, 0x14c3: 0x18a3, 0x14c4: 0x18c7, 0x14c5: 0x18eb,\n\t0x14c6: 0x190f, 0x14c7: 0x1918, 0x14c8: 0x191e, 0x14c9: 0x1924, 0x14ca: 0x192a,\n\t0x14d0: 0x1a92, 0x14d1: 0x1a96,\n\t0x14d2: 0x1a9a, 0x14d3: 0x1a9e, 0x14d4: 0x1aa2, 0x14d5: 0x1aa6, 0x14d6: 0x1aaa, 0x14d7: 0x1aae,\n\t0x14d8: 0x1ab2, 0x14d9: 0x1ab6, 0x14da: 0x1aba, 0x14db: 0x1abe, 0x14dc: 0x1ac2, 0x14dd: 0x1ac6,\n\t0x14de: 0x1aca, 0x14df: 0x1ace, 0x14e0: 0x1ad2, 0x14e1: 0x1ad6, 0x14e2: 0x1ada, 0x14e3: 0x1ade,\n\t0x14e4: 0x1ae2, 0x14e5: 0x1ae6, 0x14e6: 0x1aea, 0x14e7: 0x1aee, 0x14e8: 0x1af2, 0x14e9: 0x1af6,\n\t0x14ea: 0x272b, 0x14eb: 0x0047, 0x14ec: 0x0065, 0x14ed: 0x193f, 0x14ee: 0x19b7,\n\t0x14f0: 0x0043, 0x14f1: 0x0045, 0x14f2: 0x0047, 0x14f3: 0x0049, 0x14f4: 0x004b, 0x14f5: 0x004d,\n\t0x14f6: 0x004f, 0x14f7: 0x0051, 0x14f8: 0x0053, 0x14f9: 0x0055, 0x14fa: 0x0057, 0x14fb: 0x0059,\n\t0x14fc: 0x005b, 0x14fd: 0x005d, 0x14fe: 0x005f, 0x14ff: 0x0061,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0x26b3, 0x1501: 0x26c8, 0x1502: 0x0506,\n\t0x1510: 0x0c12, 0x1511: 0x0a4a,\n\t0x1512: 0x08d6, 0x1513: 0x45db, 0x1514: 0x071e, 0x1515: 0x09f2, 0x1516: 0x1332, 0x1517: 0x0a02,\n\t0x1518: 0x072a, 0x1519: 0x0cda, 0x151a: 0x0eb2, 0x151b: 0x0cb2, 0x151c: 0x082a, 0x151d: 0x0b6e,\n\t0x151e: 0x07c2, 0x151f: 0x0cba, 0x1520: 0x0816, 0x1521: 0x111a, 0x1522: 0x0f86, 0x1523: 0x138e,\n\t0x1524: 0x09d6, 0x1525: 0x090e, 0x1526: 0x0e66, 0x1527: 0x0c1e, 0x1528: 0x0c4a, 0x1529: 0x06c2,\n\t0x152a: 0x06ce, 0x152b: 0x140e, 0x152c: 0x0ade, 0x152d: 0x06ea, 0x152e: 0x08f2, 0x152f: 0x0c3e,\n\t0x1530: 0x13b6, 0x1531: 0x0c16, 0x1532: 0x1072, 0x1533: 0x10ae, 0x1534: 0x08fa, 0x1535: 0x0e46,\n\t0x1536: 0x0d0e, 0x1537: 0x0d0a, 0x1538: 0x0f9a, 0x1539: 0x082e, 0x153a: 0x095a, 0x153b: 0x1446,\n\t// Block 0x55, offset 0x1540\n\t0x1540: 0x06fe, 0x1541: 0x06f6, 0x1542: 0x0706, 0x1543: 0x164a, 0x1544: 0x074a, 0x1545: 0x075a,\n\t0x1546: 0x075e, 0x1547: 0x0766, 0x1548: 0x076e, 0x1549: 0x0772, 0x154a: 0x077e, 0x154b: 0x0776,\n\t0x154c: 0x05b6, 0x154d: 0x165e, 0x154e: 0x0792, 0x154f: 0x0796, 0x1550: 0x079a, 0x1551: 0x07b6,\n\t0x1552: 0x164f, 0x1553: 0x05ba, 0x1554: 0x07a2, 0x1555: 0x07c2, 0x1556: 0x1659, 0x1557: 0x07d2,\n\t0x1558: 0x07da, 0x1559: 0x073a, 0x155a: 0x07e2, 0x155b: 0x07e6, 0x155c: 0x1834, 0x155d: 0x0802,\n\t0x155e: 0x080a, 0x155f: 0x05c2, 0x1560: 0x0822, 0x1561: 0x0826, 0x1562: 0x082e, 0x1563: 0x0832,\n\t0x1564: 0x05c6, 0x1565: 0x084a, 0x1566: 0x084e, 0x1567: 0x085a, 0x1568: 0x0866, 0x1569: 0x086a,\n\t0x156a: 0x086e, 0x156b: 0x0876, 0x156c: 0x0896, 0x156d: 0x089a, 0x156e: 0x08a2, 0x156f: 0x08b2,\n\t0x1570: 0x08ba, 0x1571: 0x08be, 0x1572: 0x08be, 0x1573: 0x08be, 0x1574: 0x166d, 0x1575: 0x0e96,\n\t0x1576: 0x08d2, 0x1577: 0x08da, 0x1578: 0x1672, 0x1579: 0x08e6, 0x157a: 0x08ee, 0x157b: 0x08f6,\n\t0x157c: 0x091e, 0x157d: 0x090a, 0x157e: 0x0916, 0x157f: 0x091a,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x0922, 0x1581: 0x092a, 0x1582: 0x092e, 0x1583: 0x0936, 0x1584: 0x093e, 0x1585: 0x0942,\n\t0x1586: 0x0942, 0x1587: 0x094a, 0x1588: 0x0952, 0x1589: 0x0956, 0x158a: 0x0962, 0x158b: 0x0986,\n\t0x158c: 0x096a, 0x158d: 0x098a, 0x158e: 0x096e, 0x158f: 0x0976, 0x1590: 0x080e, 0x1591: 0x09d2,\n\t0x1592: 0x099a, 0x1593: 0x099e, 0x1594: 0x09a2, 0x1595: 0x0996, 0x1596: 0x09aa, 0x1597: 0x09a6,\n\t0x1598: 0x09be, 0x1599: 0x1677, 0x159a: 0x09da, 0x159b: 0x09de, 0x159c: 0x09e6, 0x159d: 0x09f2,\n\t0x159e: 0x09fa, 0x159f: 0x0a16, 0x15a0: 0x167c, 0x15a1: 0x1681, 0x15a2: 0x0a22, 0x15a3: 0x0a26,\n\t0x15a4: 0x0a2a, 0x15a5: 0x0a1e, 0x15a6: 0x0a32, 0x15a7: 0x05ca, 0x15a8: 0x05ce, 0x15a9: 0x0a3a,\n\t0x15aa: 0x0a42, 0x15ab: 0x0a42, 0x15ac: 0x1686, 0x15ad: 0x0a5e, 0x15ae: 0x0a62, 0x15af: 0x0a66,\n\t0x15b0: 0x0a6e, 0x15b1: 0x168b, 0x15b2: 0x0a76, 0x15b3: 0x0a7a, 0x15b4: 0x0b52, 0x15b5: 0x0a82,\n\t0x15b6: 0x05d2, 0x15b7: 0x0a8e, 0x15b8: 0x0a9e, 0x15b9: 0x0aaa, 0x15ba: 0x0aa6, 0x15bb: 0x1695,\n\t0x15bc: 0x0ab2, 0x15bd: 0x169a, 0x15be: 0x0abe, 0x15bf: 0x0aba,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0x0ac2, 0x15c1: 0x0ad2, 0x15c2: 0x0ad6, 0x15c3: 0x05d6, 0x15c4: 0x0ae6, 0x15c5: 0x0aee,\n\t0x15c6: 0x0af2, 0x15c7: 0x0af6, 0x15c8: 0x05da, 0x15c9: 0x169f, 0x15ca: 0x05de, 0x15cb: 0x0b12,\n\t0x15cc: 0x0b16, 0x15cd: 0x0b1a, 0x15ce: 0x0b22, 0x15cf: 0x1866, 0x15d0: 0x0b3a, 0x15d1: 0x16a9,\n\t0x15d2: 0x16a9, 0x15d3: 0x11da, 0x15d4: 0x0b4a, 0x15d5: 0x0b4a, 0x15d6: 0x05e2, 0x15d7: 0x16cc,\n\t0x15d8: 0x179e, 0x15d9: 0x0b5a, 0x15da: 0x0b62, 0x15db: 0x05e6, 0x15dc: 0x0b76, 0x15dd: 0x0b86,\n\t0x15de: 0x0b8a, 0x15df: 0x0b92, 0x15e0: 0x0ba2, 0x15e1: 0x05ee, 0x15e2: 0x05ea, 0x15e3: 0x0ba6,\n\t0x15e4: 0x16ae, 0x15e5: 0x0baa, 0x15e6: 0x0bbe, 0x15e7: 0x0bc2, 0x15e8: 0x0bc6, 0x15e9: 0x0bc2,\n\t0x15ea: 0x0bd2, 0x15eb: 0x0bd6, 0x15ec: 0x0be6, 0x15ed: 0x0bde, 0x15ee: 0x0be2, 0x15ef: 0x0bea,\n\t0x15f0: 0x0bee, 0x15f1: 0x0bf2, 0x15f2: 0x0bfe, 0x15f3: 0x0c02, 0x15f4: 0x0c1a, 0x15f5: 0x0c22,\n\t0x15f6: 0x0c32, 0x15f7: 0x0c46, 0x15f8: 0x16bd, 0x15f9: 0x0c42, 0x15fa: 0x0c36, 0x15fb: 0x0c4e,\n\t0x15fc: 0x0c56, 0x15fd: 0x0c6a, 0x15fe: 0x16c2, 0x15ff: 0x0c72,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0x0c66, 0x1601: 0x0c5e, 0x1602: 0x05f2, 0x1603: 0x0c7a, 0x1604: 0x0c82, 0x1605: 0x0c8a,\n\t0x1606: 0x0c7e, 0x1607: 0x05f6, 0x1608: 0x0c9a, 0x1609: 0x0ca2, 0x160a: 0x16c7, 0x160b: 0x0cce,\n\t0x160c: 0x0d02, 0x160d: 0x0cde, 0x160e: 0x0602, 0x160f: 0x0cea, 0x1610: 0x05fe, 0x1611: 0x05fa,\n\t0x1612: 0x07c6, 0x1613: 0x07ca, 0x1614: 0x0d06, 0x1615: 0x0cee, 0x1616: 0x11ae, 0x1617: 0x0666,\n\t0x1618: 0x0d12, 0x1619: 0x0d16, 0x161a: 0x0d1a, 0x161b: 0x0d2e, 0x161c: 0x0d26, 0x161d: 0x16e0,\n\t0x161e: 0x0606, 0x161f: 0x0d42, 0x1620: 0x0d36, 0x1621: 0x0d52, 0x1622: 0x0d5a, 0x1623: 0x16ea,\n\t0x1624: 0x0d5e, 0x1625: 0x0d4a, 0x1626: 0x0d66, 0x1627: 0x060a, 0x1628: 0x0d6a, 0x1629: 0x0d6e,\n\t0x162a: 0x0d72, 0x162b: 0x0d7e, 0x162c: 0x16ef, 0x162d: 0x0d86, 0x162e: 0x060e, 0x162f: 0x0d92,\n\t0x1630: 0x16f4, 0x1631: 0x0d96, 0x1632: 0x0612, 0x1633: 0x0da2, 0x1634: 0x0dae, 0x1635: 0x0dba,\n\t0x1636: 0x0dbe, 0x1637: 0x16f9, 0x1638: 0x1690, 0x1639: 0x16fe, 0x163a: 0x0dde, 0x163b: 0x1703,\n\t0x163c: 0x0dea, 0x163d: 0x0df2, 0x163e: 0x0de2, 0x163f: 0x0dfe,\n\t// Block 0x59, offset 0x1640\n\t0x1640: 0x0e0e, 0x1641: 0x0e1e, 0x1642: 0x0e12, 0x1643: 0x0e16, 0x1644: 0x0e22, 0x1645: 0x0e26,\n\t0x1646: 0x1708, 0x1647: 0x0e0a, 0x1648: 0x0e3e, 0x1649: 0x0e42, 0x164a: 0x0616, 0x164b: 0x0e56,\n\t0x164c: 0x0e52, 0x164d: 0x170d, 0x164e: 0x0e36, 0x164f: 0x0e72, 0x1650: 0x1712, 0x1651: 0x1717,\n\t0x1652: 0x0e76, 0x1653: 0x0e8a, 0x1654: 0x0e86, 0x1655: 0x0e82, 0x1656: 0x061a, 0x1657: 0x0e8e,\n\t0x1658: 0x0e9e, 0x1659: 0x0e9a, 0x165a: 0x0ea6, 0x165b: 0x1654, 0x165c: 0x0eb6, 0x165d: 0x171c,\n\t0x165e: 0x0ec2, 0x165f: 0x1726, 0x1660: 0x0ed6, 0x1661: 0x0ee2, 0x1662: 0x0ef6, 0x1663: 0x172b,\n\t0x1664: 0x0f0a, 0x1665: 0x0f0e, 0x1666: 0x1730, 0x1667: 0x1735, 0x1668: 0x0f2a, 0x1669: 0x0f3a,\n\t0x166a: 0x061e, 0x166b: 0x0f3e, 0x166c: 0x0622, 0x166d: 0x0622, 0x166e: 0x0f56, 0x166f: 0x0f5a,\n\t0x1670: 0x0f62, 0x1671: 0x0f66, 0x1672: 0x0f72, 0x1673: 0x0626, 0x1674: 0x0f8a, 0x1675: 0x173a,\n\t0x1676: 0x0fa6, 0x1677: 0x173f, 0x1678: 0x0fb2, 0x1679: 0x16a4, 0x167a: 0x0fc2, 0x167b: 0x1744,\n\t0x167c: 0x1749, 0x167d: 0x174e, 0x167e: 0x062a, 0x167f: 0x062e,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x0ffa, 0x1681: 0x1758, 0x1682: 0x1753, 0x1683: 0x175d, 0x1684: 0x1762, 0x1685: 0x1002,\n\t0x1686: 0x1006, 0x1687: 0x1006, 0x1688: 0x100e, 0x1689: 0x0636, 0x168a: 0x1012, 0x168b: 0x063a,\n\t0x168c: 0x063e, 0x168d: 0x176c, 0x168e: 0x1026, 0x168f: 0x102e, 0x1690: 0x103a, 0x1691: 0x0642,\n\t0x1692: 0x1771, 0x1693: 0x105e, 0x1694: 0x1776, 0x1695: 0x177b, 0x1696: 0x107e, 0x1697: 0x1096,\n\t0x1698: 0x0646, 0x1699: 0x109e, 0x169a: 0x10a2, 0x169b: 0x10a6, 0x169c: 0x1780, 0x169d: 0x1785,\n\t0x169e: 0x1785, 0x169f: 0x10be, 0x16a0: 0x064a, 0x16a1: 0x178a, 0x16a2: 0x10d2, 0x16a3: 0x10d6,\n\t0x16a4: 0x064e, 0x16a5: 0x178f, 0x16a6: 0x10f2, 0x16a7: 0x0652, 0x16a8: 0x1102, 0x16a9: 0x10fa,\n\t0x16aa: 0x110a, 0x16ab: 0x1799, 0x16ac: 0x1122, 0x16ad: 0x0656, 0x16ae: 0x112e, 0x16af: 0x1136,\n\t0x16b0: 0x1146, 0x16b1: 0x065a, 0x16b2: 0x17a3, 0x16b3: 0x17a8, 0x16b4: 0x065e, 0x16b5: 0x17ad,\n\t0x16b6: 0x115e, 0x16b7: 0x17b2, 0x16b8: 0x116a, 0x16b9: 0x1176, 0x16ba: 0x117e, 0x16bb: 0x17b7,\n\t0x16bc: 0x17bc, 0x16bd: 0x1192, 0x16be: 0x17c1, 0x16bf: 0x119a,\n\t// Block 0x5b, offset 0x16c0\n\t0x16c0: 0x16d1, 0x16c1: 0x0662, 0x16c2: 0x11b2, 0x16c3: 0x11b6, 0x16c4: 0x066a, 0x16c5: 0x11ba,\n\t0x16c6: 0x0a36, 0x16c7: 0x17c6, 0x16c8: 0x17cb, 0x16c9: 0x16d6, 0x16ca: 0x16db, 0x16cb: 0x11da,\n\t0x16cc: 0x11de, 0x16cd: 0x13f6, 0x16ce: 0x066e, 0x16cf: 0x120a, 0x16d0: 0x1206, 0x16d1: 0x120e,\n\t0x16d2: 0x0842, 0x16d3: 0x1212, 0x16d4: 0x1216, 0x16d5: 0x121a, 0x16d6: 0x1222, 0x16d7: 0x17d0,\n\t0x16d8: 0x121e, 0x16d9: 0x1226, 0x16da: 0x123a, 0x16db: 0x123e, 0x16dc: 0x122a, 0x16dd: 0x1242,\n\t0x16de: 0x1256, 0x16df: 0x126a, 0x16e0: 0x1236, 0x16e1: 0x124a, 0x16e2: 0x124e, 0x16e3: 0x1252,\n\t0x16e4: 0x17d5, 0x16e5: 0x17df, 0x16e6: 0x17da, 0x16e7: 0x0672, 0x16e8: 0x1272, 0x16e9: 0x1276,\n\t0x16ea: 0x127e, 0x16eb: 0x17f3, 0x16ec: 0x1282, 0x16ed: 0x17e4, 0x16ee: 0x0676, 0x16ef: 0x067a,\n\t0x16f0: 0x17e9, 0x16f1: 0x17ee, 0x16f2: 0x067e, 0x16f3: 0x12a2, 0x16f4: 0x12a6, 0x16f5: 0x12aa,\n\t0x16f6: 0x12ae, 0x16f7: 0x12ba, 0x16f8: 0x12b6, 0x16f9: 0x12c2, 0x16fa: 0x12be, 0x16fb: 0x12ce,\n\t0x16fc: 0x12c6, 0x16fd: 0x12ca, 0x16fe: 0x12d2, 0x16ff: 0x0682,\n\t// Block 0x5c, offset 0x1700\n\t0x1700: 0x12da, 0x1701: 0x12de, 0x1702: 0x0686, 0x1703: 0x12ee, 0x1704: 0x12f2, 0x1705: 0x17f8,\n\t0x1706: 0x12fe, 0x1707: 0x1302, 0x1708: 0x068a, 0x1709: 0x130e, 0x170a: 0x05be, 0x170b: 0x17fd,\n\t0x170c: 0x1802, 0x170d: 0x068e, 0x170e: 0x0692, 0x170f: 0x133a, 0x1710: 0x1352, 0x1711: 0x136e,\n\t0x1712: 0x137e, 0x1713: 0x1807, 0x1714: 0x1392, 0x1715: 0x1396, 0x1716: 0x13ae, 0x1717: 0x13ba,\n\t0x1718: 0x1811, 0x1719: 0x1663, 0x171a: 0x13c6, 0x171b: 0x13c2, 0x171c: 0x13ce, 0x171d: 0x1668,\n\t0x171e: 0x13da, 0x171f: 0x13e6, 0x1720: 0x1816, 0x1721: 0x181b, 0x1722: 0x1426, 0x1723: 0x1432,\n\t0x1724: 0x143a, 0x1725: 0x1820, 0x1726: 0x143e, 0x1727: 0x146a, 0x1728: 0x1476, 0x1729: 0x147a,\n\t0x172a: 0x1472, 0x172b: 0x1486, 0x172c: 0x148a, 0x172d: 0x1825, 0x172e: 0x1496, 0x172f: 0x0696,\n\t0x1730: 0x149e, 0x1731: 0x182a, 0x1732: 0x069a, 0x1733: 0x14d6, 0x1734: 0x0ac6, 0x1735: 0x14ee,\n\t0x1736: 0x182f, 0x1737: 0x1839, 0x1738: 0x069e, 0x1739: 0x06a2, 0x173a: 0x1516, 0x173b: 0x183e,\n\t0x173c: 0x06a6, 0x173d: 0x1843, 0x173e: 0x152e, 0x173f: 0x152e,\n\t// Block 0x5d, offset 0x1740\n\t0x1740: 0x1536, 0x1741: 0x1848, 0x1742: 0x154e, 0x1743: 0x06aa, 0x1744: 0x155e, 0x1745: 0x156a,\n\t0x1746: 0x1572, 0x1747: 0x157a, 0x1748: 0x06ae, 0x1749: 0x184d, 0x174a: 0x158e, 0x174b: 0x15aa,\n\t0x174c: 0x15b6, 0x174d: 0x06b2, 0x174e: 0x06b6, 0x174f: 0x15ba, 0x1750: 0x1852, 0x1751: 0x06ba,\n\t0x1752: 0x1857, 0x1753: 0x185c, 0x1754: 0x1861, 0x1755: 0x15de, 0x1756: 0x06be, 0x1757: 0x15f2,\n\t0x1758: 0x15fa, 0x1759: 0x15fe, 0x175a: 0x1606, 0x175b: 0x160e, 0x175c: 0x1616, 0x175d: 0x186b,\n}\n\n// nfkcIndex: 22 blocks, 1408 entries, 2816 bytes\n// Block 0 is the zero block.\nvar nfkcIndex = [1408]uint16{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x5c, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x5d, 0xc7: 0x04,\n\t0xc8: 0x05, 0xca: 0x5e, 0xcb: 0x5f, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09,\n\t0xd0: 0x0a, 0xd1: 0x60, 0xd2: 0x61, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x62,\n\t0xd8: 0x63, 0xd9: 0x0d, 0xdb: 0x64, 0xdc: 0x65, 0xdd: 0x66, 0xdf: 0x67,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,\n\t0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a,\n\t0xf0: 0x13,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x68, 0x121: 0x69, 0x123: 0x0e, 0x124: 0x6a, 0x125: 0x6b, 0x126: 0x6c, 0x127: 0x6d,\n\t0x128: 0x6e, 0x129: 0x6f, 0x12a: 0x70, 0x12b: 0x71, 0x12c: 0x6c, 0x12d: 0x72, 0x12e: 0x73, 0x12f: 0x74,\n\t0x131: 0x75, 0x132: 0x76, 0x133: 0x77, 0x134: 0x78, 0x135: 0x79, 0x137: 0x7a,\n\t0x138: 0x7b, 0x139: 0x7c, 0x13a: 0x7d, 0x13b: 0x7e, 0x13c: 0x7f, 0x13d: 0x80, 0x13e: 0x81, 0x13f: 0x82,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x83, 0x142: 0x84, 0x143: 0x85, 0x144: 0x86, 0x145: 0x87, 0x146: 0x88, 0x147: 0x89,\n\t0x14d: 0x8a,\n\t0x15c: 0x8b, 0x15f: 0x8c,\n\t0x162: 0x8d, 0x164: 0x8e,\n\t0x168: 0x8f, 0x169: 0x90, 0x16a: 0x91, 0x16b: 0x92, 0x16c: 0x0f, 0x16d: 0x93, 0x16e: 0x94, 0x16f: 0x95,\n\t0x170: 0x96, 0x173: 0x97, 0x174: 0x98, 0x175: 0x10, 0x176: 0x11, 0x177: 0x12,\n\t0x178: 0x13, 0x179: 0x14, 0x17a: 0x15, 0x17b: 0x16, 0x17c: 0x17, 0x17d: 0x18, 0x17e: 0x19, 0x17f: 0x1a,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x99, 0x181: 0x9a, 0x182: 0x9b, 0x183: 0x9c, 0x184: 0x1b, 0x185: 0x1c, 0x186: 0x9d, 0x187: 0x9e,\n\t0x188: 0x9f, 0x189: 0x1d, 0x18a: 0x1e, 0x18b: 0xa0, 0x18c: 0xa1,\n\t0x191: 0x1f, 0x192: 0x20, 0x193: 0xa2,\n\t0x1a8: 0xa3, 0x1a9: 0xa4, 0x1ab: 0xa5,\n\t0x1b1: 0xa6, 0x1b3: 0xa7, 0x1b5: 0xa8, 0x1b7: 0xa9,\n\t0x1ba: 0xaa, 0x1bb: 0xab, 0x1bc: 0x21, 0x1bd: 0x22, 0x1be: 0x23, 0x1bf: 0xac,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0xad, 0x1c1: 0x24, 0x1c2: 0x25, 0x1c3: 0x26, 0x1c4: 0xae, 0x1c5: 0x27, 0x1c6: 0x28,\n\t0x1c8: 0x29, 0x1c9: 0x2a, 0x1ca: 0x2b, 0x1cb: 0x2c, 0x1cc: 0x2d, 0x1cd: 0x2e, 0x1ce: 0x2f, 0x1cf: 0x30,\n\t// Block 0x8, offset 0x200\n\t0x219: 0xaf, 0x21a: 0xb0, 0x21b: 0xb1, 0x21d: 0xb2, 0x21f: 0xb3,\n\t0x220: 0xb4, 0x223: 0xb5, 0x224: 0xb6, 0x225: 0xb7, 0x226: 0xb8, 0x227: 0xb9,\n\t0x22a: 0xba, 0x22b: 0xbb, 0x22d: 0xbc, 0x22f: 0xbd,\n\t0x230: 0xbe, 0x231: 0xbf, 0x232: 0xc0, 0x233: 0xc1, 0x234: 0xc2, 0x235: 0xc3, 0x236: 0xc4, 0x237: 0xbe,\n\t0x238: 0xbf, 0x239: 0xc0, 0x23a: 0xc1, 0x23b: 0xc2, 0x23c: 0xc3, 0x23d: 0xc4, 0x23e: 0xbe, 0x23f: 0xbf,\n\t// Block 0x9, offset 0x240\n\t0x240: 0xc0, 0x241: 0xc1, 0x242: 0xc2, 0x243: 0xc3, 0x244: 0xc4, 0x245: 0xbe, 0x246: 0xbf, 0x247: 0xc0,\n\t0x248: 0xc1, 0x249: 0xc2, 0x24a: 0xc3, 0x24b: 0xc4, 0x24c: 0xbe, 0x24d: 0xbf, 0x24e: 0xc0, 0x24f: 0xc1,\n\t0x250: 0xc2, 0x251: 0xc3, 0x252: 0xc4, 0x253: 0xbe, 0x254: 0xbf, 0x255: 0xc0, 0x256: 0xc1, 0x257: 0xc2,\n\t0x258: 0xc3, 0x259: 0xc4, 0x25a: 0xbe, 0x25b: 0xbf, 0x25c: 0xc0, 0x25d: 0xc1, 0x25e: 0xc2, 0x25f: 0xc3,\n\t0x260: 0xc4, 0x261: 0xbe, 0x262: 0xbf, 0x263: 0xc0, 0x264: 0xc1, 0x265: 0xc2, 0x266: 0xc3, 0x267: 0xc4,\n\t0x268: 0xbe, 0x269: 0xbf, 0x26a: 0xc0, 0x26b: 0xc1, 0x26c: 0xc2, 0x26d: 0xc3, 0x26e: 0xc4, 0x26f: 0xbe,\n\t0x270: 0xbf, 0x271: 0xc0, 0x272: 0xc1, 0x273: 0xc2, 0x274: 0xc3, 0x275: 0xc4, 0x276: 0xbe, 0x277: 0xbf,\n\t0x278: 0xc0, 0x279: 0xc1, 0x27a: 0xc2, 0x27b: 0xc3, 0x27c: 0xc4, 0x27d: 0xbe, 0x27e: 0xbf, 0x27f: 0xc0,\n\t// Block 0xa, offset 0x280\n\t0x280: 0xc1, 0x281: 0xc2, 0x282: 0xc3, 0x283: 0xc4, 0x284: 0xbe, 0x285: 0xbf, 0x286: 0xc0, 0x287: 0xc1,\n\t0x288: 0xc2, 0x289: 0xc3, 0x28a: 0xc4, 0x28b: 0xbe, 0x28c: 0xbf, 0x28d: 0xc0, 0x28e: 0xc1, 0x28f: 0xc2,\n\t0x290: 0xc3, 0x291: 0xc4, 0x292: 0xbe, 0x293: 0xbf, 0x294: 0xc0, 0x295: 0xc1, 0x296: 0xc2, 0x297: 0xc3,\n\t0x298: 0xc4, 0x299: 0xbe, 0x29a: 0xbf, 0x29b: 0xc0, 0x29c: 0xc1, 0x29d: 0xc2, 0x29e: 0xc3, 0x29f: 0xc4,\n\t0x2a0: 0xbe, 0x2a1: 0xbf, 0x2a2: 0xc0, 0x2a3: 0xc1, 0x2a4: 0xc2, 0x2a5: 0xc3, 0x2a6: 0xc4, 0x2a7: 0xbe,\n\t0x2a8: 0xbf, 0x2a9: 0xc0, 0x2aa: 0xc1, 0x2ab: 0xc2, 0x2ac: 0xc3, 0x2ad: 0xc4, 0x2ae: 0xbe, 0x2af: 0xbf,\n\t0x2b0: 0xc0, 0x2b1: 0xc1, 0x2b2: 0xc2, 0x2b3: 0xc3, 0x2b4: 0xc4, 0x2b5: 0xbe, 0x2b6: 0xbf, 0x2b7: 0xc0,\n\t0x2b8: 0xc1, 0x2b9: 0xc2, 0x2ba: 0xc3, 0x2bb: 0xc4, 0x2bc: 0xbe, 0x2bd: 0xbf, 0x2be: 0xc0, 0x2bf: 0xc1,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0xc2, 0x2c1: 0xc3, 0x2c2: 0xc4, 0x2c3: 0xbe, 0x2c4: 0xbf, 0x2c5: 0xc0, 0x2c6: 0xc1, 0x2c7: 0xc2,\n\t0x2c8: 0xc3, 0x2c9: 0xc4, 0x2ca: 0xbe, 0x2cb: 0xbf, 0x2cc: 0xc0, 0x2cd: 0xc1, 0x2ce: 0xc2, 0x2cf: 0xc3,\n\t0x2d0: 0xc4, 0x2d1: 0xbe, 0x2d2: 0xbf, 0x2d3: 0xc0, 0x2d4: 0xc1, 0x2d5: 0xc2, 0x2d6: 0xc3, 0x2d7: 0xc4,\n\t0x2d8: 0xbe, 0x2d9: 0xbf, 0x2da: 0xc0, 0x2db: 0xc1, 0x2dc: 0xc2, 0x2dd: 0xc3, 0x2de: 0xc5,\n\t// Block 0xc, offset 0x300\n\t0x324: 0x31, 0x325: 0x32, 0x326: 0x33, 0x327: 0x34,\n\t0x328: 0x35, 0x329: 0x36, 0x32a: 0x37, 0x32b: 0x38, 0x32c: 0x39, 0x32d: 0x3a, 0x32e: 0x3b, 0x32f: 0x3c,\n\t0x330: 0x3d, 0x331: 0x3e, 0x332: 0x3f, 0x333: 0x40, 0x334: 0x41, 0x335: 0x42, 0x336: 0x43, 0x337: 0x44,\n\t0x338: 0x45, 0x339: 0x46, 0x33a: 0x47, 0x33b: 0x48, 0x33c: 0xc6, 0x33d: 0x49, 0x33e: 0x4a, 0x33f: 0x4b,\n\t// Block 0xd, offset 0x340\n\t0x347: 0xc7,\n\t0x34b: 0xc8, 0x34d: 0xc9,\n\t0x368: 0xca, 0x36b: 0xcb,\n\t0x374: 0xcc,\n\t0x37a: 0xcd, 0x37d: 0xce,\n\t// Block 0xe, offset 0x380\n\t0x381: 0xcf, 0x382: 0xd0, 0x384: 0xd1, 0x385: 0xb8, 0x387: 0xd2,\n\t0x388: 0xd3, 0x38b: 0xd4, 0x38c: 0xd5, 0x38d: 0xd6,\n\t0x391: 0xd7, 0x392: 0xd8, 0x393: 0xd9, 0x396: 0xda, 0x397: 0xdb,\n\t0x398: 0xdc, 0x39a: 0xdd, 0x39c: 0xde,\n\t0x3a0: 0xdf, 0x3a4: 0xe0, 0x3a5: 0xe1, 0x3a7: 0xe2,\n\t0x3a8: 0xe3, 0x3a9: 0xe4, 0x3aa: 0xe5,\n\t0x3b0: 0xdc, 0x3b5: 0xe6, 0x3b6: 0xe7,\n\t// Block 0xf, offset 0x3c0\n\t0x3eb: 0xe8, 0x3ec: 0xe9,\n\t0x3ff: 0xea,\n\t// Block 0x10, offset 0x400\n\t0x432: 0xeb,\n\t// Block 0x11, offset 0x440\n\t0x445: 0xec, 0x446: 0xed, 0x447: 0xee,\n\t0x449: 0xef,\n\t0x450: 0xf0, 0x451: 0xf1, 0x452: 0xf2, 0x453: 0xf3, 0x454: 0xf4, 0x455: 0xf5, 0x456: 0xf6, 0x457: 0xf7,\n\t0x458: 0xf8, 0x459: 0xf9, 0x45a: 0x4c, 0x45b: 0xfa, 0x45c: 0xfb, 0x45d: 0xfc, 0x45e: 0xfd, 0x45f: 0x4d,\n\t// Block 0x12, offset 0x480\n\t0x480: 0xfe, 0x484: 0xe9,\n\t0x48b: 0xff,\n\t0x4a3: 0x100, 0x4a5: 0x101,\n\t0x4b8: 0x4e, 0x4b9: 0x4f, 0x4ba: 0x50,\n\t// Block 0x13, offset 0x4c0\n\t0x4c4: 0x51, 0x4c5: 0x102, 0x4c6: 0x103,\n\t0x4c8: 0x52, 0x4c9: 0x104,\n\t0x4ef: 0x105,\n\t// Block 0x14, offset 0x500\n\t0x520: 0x53, 0x521: 0x54, 0x522: 0x55, 0x523: 0x56, 0x524: 0x57, 0x525: 0x58, 0x526: 0x59, 0x527: 0x5a,\n\t0x528: 0x5b,\n\t// Block 0x15, offset 0x540\n\t0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,\n\t0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,\n\t0x56f: 0x12,\n}\n\n// nfkcSparseOffset: 170 entries, 340 bytes\nvar nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1b, 0x25, 0x35, 0x37, 0x3c, 0x47, 0x56, 0x63, 0x6b, 0x70, 0x75, 0x77, 0x7f, 0x86, 0x89, 0x91, 0x95, 0x99, 0x9b, 0x9d, 0xa6, 0xaa, 0xb1, 0xb6, 0xb9, 0xc3, 0xc6, 0xcd, 0xd5, 0xd9, 0xdb, 0xdf, 0xe3, 0xe9, 0xfa, 0x106, 0x108, 0x10e, 0x110, 0x112, 0x114, 0x116, 0x118, 0x11a, 0x11c, 0x11f, 0x122, 0x124, 0x127, 0x12a, 0x12e, 0x134, 0x136, 0x13f, 0x141, 0x144, 0x146, 0x151, 0x15c, 0x16a, 0x178, 0x188, 0x196, 0x19d, 0x1a3, 0x1b2, 0x1b6, 0x1b8, 0x1bc, 0x1be, 0x1c1, 0x1c3, 0x1c6, 0x1c8, 0x1cb, 0x1cd, 0x1cf, 0x1d1, 0x1dd, 0x1e7, 0x1f1, 0x1f4, 0x1f8, 0x1fa, 0x1fc, 0x1fe, 0x201, 0x204, 0x206, 0x208, 0x20a, 0x20c, 0x212, 0x215, 0x21a, 0x21c, 0x223, 0x229, 0x22f, 0x237, 0x23d, 0x243, 0x249, 0x24d, 0x24f, 0x251, 0x253, 0x255, 0x25b, 0x25e, 0x260, 0x262, 0x268, 0x26b, 0x273, 0x27a, 0x27d, 0x280, 0x282, 0x285, 0x28d, 0x291, 0x298, 0x29b, 0x2a1, 0x2a3, 0x2a5, 0x2a8, 0x2aa, 0x2ad, 0x2b2, 0x2b4, 0x2b6, 0x2b8, 0x2ba, 0x2bc, 0x2bf, 0x2c1, 0x2c3, 0x2c5, 0x2c7, 0x2c9, 0x2d6, 0x2e0, 0x2e2, 0x2e4, 0x2e8, 0x2ed, 0x2f9, 0x2fe, 0x307, 0x30d, 0x312, 0x316, 0x31b, 0x31f, 0x32f, 0x33d, 0x34b, 0x359, 0x35f, 0x361, 0x363, 0x366, 0x371, 0x373, 0x37d}\n\n// nfkcSparseValues: 895 entries, 3580 bytes\nvar nfkcSparseValues = [895]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0002, lo: 0x0d},\n\t{value: 0x0001, lo: 0xa0, hi: 0xa0},\n\t{value: 0x428f, lo: 0xa8, hi: 0xa8},\n\t{value: 0x0083, lo: 0xaa, hi: 0xaa},\n\t{value: 0x427b, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0025, lo: 0xb2, hi: 0xb3},\n\t{value: 0x4271, lo: 0xb4, hi: 0xb4},\n\t{value: 0x01df, lo: 0xb5, hi: 0xb5},\n\t{value: 0x42a8, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0023, lo: 0xb9, hi: 0xb9},\n\t{value: 0x009f, lo: 0xba, hi: 0xba},\n\t{value: 0x2222, lo: 0xbc, hi: 0xbc},\n\t{value: 0x2216, lo: 0xbd, hi: 0xbd},\n\t{value: 0x22b8, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1, offset 0xe\n\t{value: 0x0091, lo: 0x03},\n\t{value: 0x46f9, lo: 0xa0, hi: 0xa1},\n\t{value: 0x472b, lo: 0xaf, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb7, hi: 0xb7},\n\t// Block 0x2, offset 0x12\n\t{value: 0x0003, lo: 0x08},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x0091, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0119, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0095, lo: 0xb2, hi: 0xb2},\n\t{value: 0x00a5, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0143, lo: 0xb4, hi: 0xb6},\n\t{value: 0x00af, lo: 0xb7, hi: 0xb7},\n\t{value: 0x00b3, lo: 0xb8, hi: 0xb8},\n\t// Block 0x3, offset 0x1b\n\t{value: 0x000a, lo: 0x09},\n\t{value: 0x4285, lo: 0x98, hi: 0x98},\n\t{value: 0x428a, lo: 0x99, hi: 0x9a},\n\t{value: 0x42ad, lo: 0x9b, hi: 0x9b},\n\t{value: 0x4276, lo: 0x9c, hi: 0x9c},\n\t{value: 0x4299, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0113, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0099, lo: 0xa1, hi: 0xa1},\n\t{value: 0x00a7, lo: 0xa2, hi: 0xa3},\n\t{value: 0x016a, lo: 0xa4, hi: 0xa4},\n\t// Block 0x4, offset 0x25\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0xa000, lo: 0x8d, hi: 0x8d},\n\t{value: 0x37bc, lo: 0x90, hi: 0x90},\n\t{value: 0x37c8, lo: 0x91, hi: 0x91},\n\t{value: 0x37b6, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x96, hi: 0x96},\n\t{value: 0x382e, lo: 0x97, hi: 0x97},\n\t{value: 0x37f8, lo: 0x9c, hi: 0x9c},\n\t{value: 0x37e0, lo: 0x9d, hi: 0x9d},\n\t{value: 0x380a, lo: 0x9e, hi: 0x9e},\n\t{value: 0xa000, lo: 0xb4, hi: 0xb5},\n\t{value: 0x3834, lo: 0xb6, hi: 0xb6},\n\t{value: 0x383a, lo: 0xb7, hi: 0xb7},\n\t// Block 0x5, offset 0x35\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0x83, hi: 0x87},\n\t// Block 0x6, offset 0x37\n\t{value: 0x0001, lo: 0x04},\n\t{value: 0x8114, lo: 0x81, hi: 0x82},\n\t{value: 0x8133, lo: 0x84, hi: 0x84},\n\t{value: 0x812e, lo: 0x85, hi: 0x85},\n\t{value: 0x810e, lo: 0x87, hi: 0x87},\n\t// Block 0x7, offset 0x3c\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8133, lo: 0x90, hi: 0x97},\n\t{value: 0x811a, lo: 0x98, hi: 0x98},\n\t{value: 0x811b, lo: 0x99, hi: 0x99},\n\t{value: 0x811c, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3858, lo: 0xa2, hi: 0xa2},\n\t{value: 0x385e, lo: 0xa3, hi: 0xa3},\n\t{value: 0x386a, lo: 0xa4, hi: 0xa4},\n\t{value: 0x3864, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3870, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xa7, hi: 0xa7},\n\t// Block 0x8, offset 0x47\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x3882, lo: 0x80, hi: 0x80},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0x3876, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x387c, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x95, hi: 0x95},\n\t{value: 0x8133, lo: 0x96, hi: 0x9c},\n\t{value: 0x8133, lo: 0x9f, hi: 0xa2},\n\t{value: 0x812e, lo: 0xa3, hi: 0xa3},\n\t{value: 0x8133, lo: 0xa4, hi: 0xa4},\n\t{value: 0x8133, lo: 0xa7, hi: 0xa8},\n\t{value: 0x812e, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8133, lo: 0xab, hi: 0xac},\n\t{value: 0x812e, lo: 0xad, hi: 0xad},\n\t// Block 0x9, offset 0x56\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x8120, lo: 0x91, hi: 0x91},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb0},\n\t{value: 0x812e, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8133, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812e, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8133, lo: 0xb5, hi: 0xb6},\n\t{value: 0x812e, lo: 0xb7, hi: 0xb9},\n\t{value: 0x8133, lo: 0xba, hi: 0xba},\n\t{value: 0x812e, lo: 0xbb, hi: 0xbc},\n\t{value: 0x8133, lo: 0xbd, hi: 0xbd},\n\t{value: 0x812e, lo: 0xbe, hi: 0xbe},\n\t{value: 0x8133, lo: 0xbf, hi: 0xbf},\n\t// Block 0xa, offset 0x63\n\t{value: 0x0005, lo: 0x07},\n\t{value: 0x8133, lo: 0x80, hi: 0x80},\n\t{value: 0x8133, lo: 0x81, hi: 0x81},\n\t{value: 0x812e, lo: 0x82, hi: 0x83},\n\t{value: 0x812e, lo: 0x84, hi: 0x85},\n\t{value: 0x812e, lo: 0x86, hi: 0x87},\n\t{value: 0x812e, lo: 0x88, hi: 0x89},\n\t{value: 0x8133, lo: 0x8a, hi: 0x8a},\n\t// Block 0xb, offset 0x6b\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8133, lo: 0xab, hi: 0xb1},\n\t{value: 0x812e, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8133, lo: 0xb3, hi: 0xb3},\n\t{value: 0x812e, lo: 0xbd, hi: 0xbd},\n\t// Block 0xc, offset 0x70\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8133, lo: 0x96, hi: 0x99},\n\t{value: 0x8133, lo: 0x9b, hi: 0xa3},\n\t{value: 0x8133, lo: 0xa5, hi: 0xa7},\n\t{value: 0x8133, lo: 0xa9, hi: 0xad},\n\t// Block 0xd, offset 0x75\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0x99, hi: 0x9b},\n\t// Block 0xe, offset 0x77\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3eef, lo: 0xa9, hi: 0xa9},\n\t{value: 0xa000, lo: 0xb0, hi: 0xb0},\n\t{value: 0x3ef7, lo: 0xb1, hi: 0xb1},\n\t{value: 0xa000, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3eff, lo: 0xb4, hi: 0xb4},\n\t{value: 0x9903, lo: 0xbc, hi: 0xbc},\n\t// Block 0xf, offset 0x7f\n\t{value: 0x0008, lo: 0x06},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8133, lo: 0x91, hi: 0x91},\n\t{value: 0x812e, lo: 0x92, hi: 0x92},\n\t{value: 0x8133, lo: 0x93, hi: 0x93},\n\t{value: 0x8133, lo: 0x94, hi: 0x94},\n\t{value: 0x4533, lo: 0x98, hi: 0x9f},\n\t// Block 0x10, offset 0x86\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8103, lo: 0xbc, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x11, offset 0x89\n\t{value: 0x0008, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2cab, lo: 0x8b, hi: 0x8c},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x4573, lo: 0x9c, hi: 0x9d},\n\t{value: 0x4583, lo: 0x9f, hi: 0x9f},\n\t{value: 0x8133, lo: 0xbe, hi: 0xbe},\n\t// Block 0x12, offset 0x91\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x45ab, lo: 0xb3, hi: 0xb3},\n\t{value: 0x45b3, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8103, lo: 0xbc, hi: 0xbc},\n\t// Block 0x13, offset 0x95\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x458b, lo: 0x99, hi: 0x9b},\n\t{value: 0x45a3, lo: 0x9e, hi: 0x9e},\n\t// Block 0x14, offset 0x99\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8103, lo: 0xbc, hi: 0xbc},\n\t// Block 0x15, offset 0x9b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t// Block 0x16, offset 0x9d\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2cc3, lo: 0x88, hi: 0x88},\n\t{value: 0x2cbb, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2ccb, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x96, hi: 0x97},\n\t{value: 0x45bb, lo: 0x9c, hi: 0x9c},\n\t{value: 0x45c3, lo: 0x9d, hi: 0x9d},\n\t// Block 0x17, offset 0xa6\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x2cd3, lo: 0x94, hi: 0x94},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x18, offset 0xaa\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cdb, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2ceb, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2ce3, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x19, offset 0xb1\n\t{value: 0x1801, lo: 0x04},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x3f07, lo: 0x88, hi: 0x88},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8121, lo: 0x95, hi: 0x96},\n\t// Block 0x1a, offset 0xb6\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8103, lo: 0xbc, hi: 0xbc},\n\t{value: 0xa000, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1b, offset 0xb9\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x2cf3, lo: 0x80, hi: 0x80},\n\t{value: 0x9900, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x2cfb, lo: 0x87, hi: 0x87},\n\t{value: 0x2d03, lo: 0x88, hi: 0x88},\n\t{value: 0x2f67, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2def, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x95, hi: 0x96},\n\t// Block 0x1c, offset 0xc3\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0xbb, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1d, offset 0xc6\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2d0b, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2d1b, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d13, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1e, offset 0xcd\n\t{value: 0x6bdd, lo: 0x07},\n\t{value: 0x9905, lo: 0x8a, hi: 0x8a},\n\t{value: 0x9900, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x3f0f, lo: 0x9a, hi: 0x9a},\n\t{value: 0x2f6f, lo: 0x9c, hi: 0x9c},\n\t{value: 0x2dfa, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2d23, lo: 0x9e, hi: 0x9f},\n\t// Block 0x1f, offset 0xd5\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x2627, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8123, lo: 0xb8, hi: 0xb9},\n\t{value: 0x8105, lo: 0xba, hi: 0xba},\n\t// Block 0x20, offset 0xd9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8124, lo: 0x88, hi: 0x8b},\n\t// Block 0x21, offset 0xdb\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x263c, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8125, lo: 0xb8, hi: 0xb9},\n\t{value: 0x8105, lo: 0xba, hi: 0xba},\n\t// Block 0x22, offset 0xdf\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8126, lo: 0x88, hi: 0x8b},\n\t{value: 0x262e, lo: 0x9c, hi: 0x9c},\n\t{value: 0x2635, lo: 0x9d, hi: 0x9d},\n\t// Block 0x23, offset 0xe3\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x030e, lo: 0x8c, hi: 0x8c},\n\t{value: 0x812e, lo: 0x98, hi: 0x99},\n\t{value: 0x812e, lo: 0xb5, hi: 0xb5},\n\t{value: 0x812e, lo: 0xb7, hi: 0xb7},\n\t{value: 0x812c, lo: 0xb9, hi: 0xb9},\n\t// Block 0x24, offset 0xe9\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x264a, lo: 0x83, hi: 0x83},\n\t{value: 0x2651, lo: 0x8d, hi: 0x8d},\n\t{value: 0x2658, lo: 0x92, hi: 0x92},\n\t{value: 0x265f, lo: 0x97, hi: 0x97},\n\t{value: 0x2666, lo: 0x9c, hi: 0x9c},\n\t{value: 0x2643, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8127, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8128, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4a9b, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8129, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4aa4, lo: 0xb5, hi: 0xb5},\n\t{value: 0x45cb, lo: 0xb6, hi: 0xb6},\n\t{value: 0x460b, lo: 0xb7, hi: 0xb7},\n\t{value: 0x45d3, lo: 0xb8, hi: 0xb8},\n\t{value: 0x4616, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8128, lo: 0xba, hi: 0xbd},\n\t// Block 0x25, offset 0xfa\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x8128, lo: 0x80, hi: 0x80},\n\t{value: 0x4aad, lo: 0x81, hi: 0x81},\n\t{value: 0x8133, lo: 0x82, hi: 0x83},\n\t{value: 0x8105, lo: 0x84, hi: 0x84},\n\t{value: 0x8133, lo: 0x86, hi: 0x87},\n\t{value: 0x2674, lo: 0x93, hi: 0x93},\n\t{value: 0x267b, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2682, lo: 0xa2, hi: 0xa2},\n\t{value: 0x2689, lo: 0xa7, hi: 0xa7},\n\t{value: 0x2690, lo: 0xac, hi: 0xac},\n\t{value: 0x266d, lo: 0xb9, hi: 0xb9},\n\t// Block 0x26, offset 0x106\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0x86, hi: 0x86},\n\t// Block 0x27, offset 0x108\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x2d2b, lo: 0xa6, hi: 0xa6},\n\t{value: 0x9900, lo: 0xae, hi: 0xae},\n\t{value: 0x8103, lo: 0xb7, hi: 0xb7},\n\t{value: 0x8105, lo: 0xb9, hi: 0xba},\n\t// Block 0x28, offset 0x10e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0x8d, hi: 0x8d},\n\t// Block 0x29, offset 0x110\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0312, lo: 0xbc, hi: 0xbc},\n\t// Block 0x2a, offset 0x112\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x80, hi: 0x92},\n\t// Block 0x2b, offset 0x114\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xb900, lo: 0xa1, hi: 0xb5},\n\t// Block 0x2c, offset 0x116\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0xa8, hi: 0xbf},\n\t// Block 0x2d, offset 0x118\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0x80, hi: 0x82},\n\t// Block 0x2e, offset 0x11a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0x9d, hi: 0x9f},\n\t// Block 0x2f, offset 0x11c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x94, hi: 0x94},\n\t{value: 0x8105, lo: 0xb4, hi: 0xb4},\n\t// Block 0x30, offset 0x11f\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x92, hi: 0x92},\n\t{value: 0x8133, lo: 0x9d, hi: 0x9d},\n\t// Block 0x31, offset 0x122\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xa9, hi: 0xa9},\n\t// Block 0x32, offset 0x124\n\t{value: 0x0004, lo: 0x02},\n\t{value: 0x812f, lo: 0xb9, hi: 0xba},\n\t{value: 0x812e, lo: 0xbb, hi: 0xbb},\n\t// Block 0x33, offset 0x127\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8133, lo: 0x97, hi: 0x97},\n\t{value: 0x812e, lo: 0x98, hi: 0x98},\n\t// Block 0x34, offset 0x12a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8105, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8133, lo: 0xb5, hi: 0xbc},\n\t{value: 0x812e, lo: 0xbf, hi: 0xbf},\n\t// Block 0x35, offset 0x12e\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb4},\n\t{value: 0x812e, lo: 0xb5, hi: 0xba},\n\t{value: 0x8133, lo: 0xbb, hi: 0xbc},\n\t{value: 0x812e, lo: 0xbd, hi: 0xbd},\n\t{value: 0x812e, lo: 0xbf, hi: 0xbf},\n\t// Block 0x36, offset 0x134\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0x80, hi: 0x80},\n\t// Block 0x37, offset 0x136\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x2d73, lo: 0x80, hi: 0x80},\n\t{value: 0x2d7b, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x82, hi: 0x82},\n\t{value: 0x2d83, lo: 0x83, hi: 0x83},\n\t{value: 0x8105, lo: 0x84, hi: 0x84},\n\t{value: 0x8133, lo: 0xab, hi: 0xab},\n\t{value: 0x812e, lo: 0xac, hi: 0xac},\n\t{value: 0x8133, lo: 0xad, hi: 0xb3},\n\t// Block 0x38, offset 0x13f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xaa, hi: 0xab},\n\t// Block 0x39, offset 0x141\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8103, lo: 0xa6, hi: 0xa6},\n\t{value: 0x8105, lo: 0xb2, hi: 0xb3},\n\t// Block 0x3a, offset 0x144\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8103, lo: 0xb7, hi: 0xb7},\n\t// Block 0x3b, offset 0x146\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8133, lo: 0x90, hi: 0x92},\n\t{value: 0x8101, lo: 0x94, hi: 0x94},\n\t{value: 0x812e, lo: 0x95, hi: 0x99},\n\t{value: 0x8133, lo: 0x9a, hi: 0x9b},\n\t{value: 0x812e, lo: 0x9c, hi: 0x9f},\n\t{value: 0x8133, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8101, lo: 0xa2, hi: 0xa8},\n\t{value: 0x812e, lo: 0xad, hi: 0xad},\n\t{value: 0x8133, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8133, lo: 0xb8, hi: 0xb9},\n\t// Block 0x3c, offset 0x151\n\t{value: 0x0002, lo: 0x0a},\n\t{value: 0x0043, lo: 0xac, hi: 0xac},\n\t{value: 0x00d1, lo: 0xad, hi: 0xad},\n\t{value: 0x0045, lo: 0xae, hi: 0xae},\n\t{value: 0x0049, lo: 0xb0, hi: 0xb1},\n\t{value: 0x00e6, lo: 0xb2, hi: 0xb2},\n\t{value: 0x004f, lo: 0xb3, hi: 0xba},\n\t{value: 0x005f, lo: 0xbc, hi: 0xbc},\n\t{value: 0x00ef, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0061, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0065, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3d, offset 0x15c\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0001, lo: 0x80, hi: 0x8a},\n\t{value: 0x043e, lo: 0x91, hi: 0x91},\n\t{value: 0x42b2, lo: 0x97, hi: 0x97},\n\t{value: 0x001d, lo: 0xa4, hi: 0xa4},\n\t{value: 0x1876, lo: 0xa5, hi: 0xa5},\n\t{value: 0x1b62, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0001, lo: 0xaf, hi: 0xaf},\n\t{value: 0x2697, lo: 0xb3, hi: 0xb3},\n\t{value: 0x280b, lo: 0xb4, hi: 0xb4},\n\t{value: 0x269e, lo: 0xb6, hi: 0xb6},\n\t{value: 0x2815, lo: 0xb7, hi: 0xb7},\n\t{value: 0x1870, lo: 0xbc, hi: 0xbc},\n\t{value: 0x4280, lo: 0xbe, hi: 0xbe},\n\t// Block 0x3e, offset 0x16a\n\t{value: 0x0002, lo: 0x0d},\n\t{value: 0x1936, lo: 0x87, hi: 0x87},\n\t{value: 0x1933, lo: 0x88, hi: 0x88},\n\t{value: 0x1873, lo: 0x89, hi: 0x89},\n\t{value: 0x299b, lo: 0x97, hi: 0x97},\n\t{value: 0x0001, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0021, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0093, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0029, lo: 0xb4, hi: 0xb9},\n\t{value: 0x0017, lo: 0xba, hi: 0xba},\n\t{value: 0x046a, lo: 0xbb, hi: 0xbb},\n\t{value: 0x003b, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0011, lo: 0xbd, hi: 0xbe},\n\t{value: 0x009d, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3f, offset 0x178\n\t{value: 0x0002, lo: 0x0f},\n\t{value: 0x0021, lo: 0x80, hi: 0x89},\n\t{value: 0x0017, lo: 0x8a, hi: 0x8a},\n\t{value: 0x046a, lo: 0x8b, hi: 0x8b},\n\t{value: 0x003b, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0011, lo: 0x8d, hi: 0x8e},\n\t{value: 0x0083, lo: 0x90, hi: 0x90},\n\t{value: 0x008b, lo: 0x91, hi: 0x91},\n\t{value: 0x009f, lo: 0x92, hi: 0x92},\n\t{value: 0x00b1, lo: 0x93, hi: 0x93},\n\t{value: 0x0104, lo: 0x94, hi: 0x94},\n\t{value: 0x0091, lo: 0x95, hi: 0x95},\n\t{value: 0x0097, lo: 0x96, hi: 0x99},\n\t{value: 0x00a1, lo: 0x9a, hi: 0x9a},\n\t{value: 0x00a7, lo: 0x9b, hi: 0x9c},\n\t{value: 0x199f, lo: 0xa8, hi: 0xa8},\n\t// Block 0x40, offset 0x188\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x8133, lo: 0x90, hi: 0x91},\n\t{value: 0x8101, lo: 0x92, hi: 0x93},\n\t{value: 0x8133, lo: 0x94, hi: 0x97},\n\t{value: 0x8101, lo: 0x98, hi: 0x9a},\n\t{value: 0x8133, lo: 0x9b, hi: 0x9c},\n\t{value: 0x8133, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8101, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8133, lo: 0xa7, hi: 0xa7},\n\t{value: 0x812e, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8133, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8101, lo: 0xaa, hi: 0xab},\n\t{value: 0x812e, lo: 0xac, hi: 0xaf},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb0},\n\t// Block 0x41, offset 0x196\n\t{value: 0x0007, lo: 0x06},\n\t{value: 0x2186, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t{value: 0x3bd0, lo: 0x9a, hi: 0x9b},\n\t{value: 0x3bde, lo: 0xae, hi: 0xae},\n\t// Block 0x42, offset 0x19d\n\t{value: 0x000e, lo: 0x05},\n\t{value: 0x3be5, lo: 0x8d, hi: 0x8e},\n\t{value: 0x3bec, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t// Block 0x43, offset 0x1a3\n\t{value: 0x017a, lo: 0x0e},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0x3bfa, lo: 0x84, hi: 0x84},\n\t{value: 0xa000, lo: 0x88, hi: 0x88},\n\t{value: 0x3c01, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0x3c08, lo: 0x8c, hi: 0x8c},\n\t{value: 0xa000, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3c0f, lo: 0xa4, hi: 0xa4},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3c16, lo: 0xa6, hi: 0xa6},\n\t{value: 0x26a5, lo: 0xac, hi: 0xad},\n\t{value: 0x26ac, lo: 0xaf, hi: 0xaf},\n\t{value: 0x2829, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xbc, hi: 0xbc},\n\t// Block 0x44, offset 0x1b2\n\t{value: 0x0007, lo: 0x03},\n\t{value: 0x3c7f, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3ca9, lo: 0xa2, hi: 0xa3},\n\t{value: 0x3cd3, lo: 0xaa, hi: 0xad},\n\t// Block 0x45, offset 0x1b6\n\t{value: 0x0004, lo: 0x01},\n\t{value: 0x048e, lo: 0xa9, hi: 0xaa},\n\t// Block 0x46, offset 0x1b8\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x0057, lo: 0x80, hi: 0x8f},\n\t{value: 0x0083, lo: 0x90, hi: 0xa9},\n\t{value: 0x0021, lo: 0xaa, hi: 0xaa},\n\t// Block 0x47, offset 0x1bc\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x29a8, lo: 0x8c, hi: 0x8c},\n\t// Block 0x48, offset 0x1be\n\t{value: 0x0266, lo: 0x02},\n\t{value: 0x1b92, lo: 0xb4, hi: 0xb4},\n\t{value: 0x1930, lo: 0xb5, hi: 0xb6},\n\t// Block 0x49, offset 0x1c1\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x44f4, lo: 0x9c, hi: 0x9c},\n\t// Block 0x4a, offset 0x1c3\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0095, lo: 0xbc, hi: 0xbc},\n\t{value: 0x006d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x4b, offset 0x1c6\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xaf, hi: 0xb1},\n\t// Block 0x4c, offset 0x1c8\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0482, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8105, lo: 0xbf, hi: 0xbf},\n\t// Block 0x4d, offset 0x1cb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xa0, hi: 0xbf},\n\t// Block 0x4e, offset 0x1cd\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0dc6, lo: 0x9f, hi: 0x9f},\n\t// Block 0x4f, offset 0x1cf\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x1632, lo: 0xb3, hi: 0xb3},\n\t// Block 0x50, offset 0x1d1\n\t{value: 0x0004, lo: 0x0b},\n\t{value: 0x159a, lo: 0x80, hi: 0x82},\n\t{value: 0x15b2, lo: 0x83, hi: 0x83},\n\t{value: 0x15ca, lo: 0x84, hi: 0x85},\n\t{value: 0x15da, lo: 0x86, hi: 0x89},\n\t{value: 0x15ee, lo: 0x8a, hi: 0x8c},\n\t{value: 0x1602, lo: 0x8d, hi: 0x8d},\n\t{value: 0x160a, lo: 0x8e, hi: 0x8e},\n\t{value: 0x1612, lo: 0x8f, hi: 0x90},\n\t{value: 0x161e, lo: 0x91, hi: 0x93},\n\t{value: 0x162e, lo: 0x94, hi: 0x94},\n\t{value: 0x1636, lo: 0x95, hi: 0x95},\n\t// Block 0x51, offset 0x1dd\n\t{value: 0x0004, lo: 0x09},\n\t{value: 0x0001, lo: 0x80, hi: 0x80},\n\t{value: 0x812d, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8132, lo: 0xab, hi: 0xab},\n\t{value: 0x8134, lo: 0xac, hi: 0xac},\n\t{value: 0x812f, lo: 0xad, hi: 0xad},\n\t{value: 0x8130, lo: 0xae, hi: 0xae},\n\t{value: 0x8130, lo: 0xaf, hi: 0xaf},\n\t{value: 0x04b6, lo: 0xb6, hi: 0xb6},\n\t{value: 0x088a, lo: 0xb8, hi: 0xba},\n\t// Block 0x52, offset 0x1e7\n\t{value: 0x0006, lo: 0x09},\n\t{value: 0x0316, lo: 0xb1, hi: 0xb1},\n\t{value: 0x031a, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4a52, lo: 0xb3, hi: 0xb3},\n\t{value: 0x031e, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4a58, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0322, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0326, lo: 0xb8, hi: 0xb8},\n\t{value: 0x032a, lo: 0xb9, hi: 0xb9},\n\t{value: 0x4a64, lo: 0xba, hi: 0xbf},\n\t// Block 0x53, offset 0x1f1\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8133, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8133, lo: 0xb4, hi: 0xbd},\n\t// Block 0x54, offset 0x1f4\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x0212, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0215, lo: 0x9d, hi: 0x9d},\n\t{value: 0x8133, lo: 0x9e, hi: 0x9f},\n\t// Block 0x55, offset 0x1f8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb1},\n\t// Block 0x56, offset 0x1fa\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x163e, lo: 0xb0, hi: 0xb0},\n\t// Block 0x57, offset 0x1fc\n\t{value: 0x000c, lo: 0x01},\n\t{value: 0x00d7, lo: 0xb8, hi: 0xb9},\n\t// Block 0x58, offset 0x1fe\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x86, hi: 0x86},\n\t{value: 0x8105, lo: 0xac, hi: 0xac},\n\t// Block 0x59, offset 0x201\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x84, hi: 0x84},\n\t{value: 0x8133, lo: 0xa0, hi: 0xb1},\n\t// Block 0x5a, offset 0x204\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0xab, hi: 0xad},\n\t// Block 0x5b, offset 0x206\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x93, hi: 0x93},\n\t// Block 0x5c, offset 0x208\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8103, lo: 0xb3, hi: 0xb3},\n\t// Block 0x5d, offset 0x20a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x80, hi: 0x80},\n\t// Block 0x5e, offset 0x20c\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8133, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812e, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8133, lo: 0xb7, hi: 0xb8},\n\t{value: 0x8133, lo: 0xbe, hi: 0xbf},\n\t// Block 0x5f, offset 0x212\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8133, lo: 0x81, hi: 0x81},\n\t{value: 0x8105, lo: 0xb6, hi: 0xb6},\n\t// Block 0x60, offset 0x215\n\t{value: 0x0008, lo: 0x04},\n\t{value: 0x163a, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0125, lo: 0x9e, hi: 0x9e},\n\t{value: 0x1646, lo: 0x9f, hi: 0x9f},\n\t{value: 0x015e, lo: 0xa9, hi: 0xa9},\n\t// Block 0x61, offset 0x21a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xad, hi: 0xad},\n\t// Block 0x62, offset 0x21c\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe500, lo: 0x80, hi: 0x80},\n\t{value: 0xc600, lo: 0x81, hi: 0x9b},\n\t{value: 0xe500, lo: 0x9c, hi: 0x9c},\n\t{value: 0xc600, lo: 0x9d, hi: 0xb7},\n\t{value: 0xe500, lo: 0xb8, hi: 0xb8},\n\t{value: 0xc600, lo: 0xb9, hi: 0xbf},\n\t// Block 0x63, offset 0x223\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x93},\n\t{value: 0xe500, lo: 0x94, hi: 0x94},\n\t{value: 0xc600, lo: 0x95, hi: 0xaf},\n\t{value: 0xe500, lo: 0xb0, hi: 0xb0},\n\t{value: 0xc600, lo: 0xb1, hi: 0xbf},\n\t// Block 0x64, offset 0x229\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8b},\n\t{value: 0xe500, lo: 0x8c, hi: 0x8c},\n\t{value: 0xc600, lo: 0x8d, hi: 0xa7},\n\t{value: 0xe500, lo: 0xa8, hi: 0xa8},\n\t{value: 0xc600, lo: 0xa9, hi: 0xbf},\n\t// Block 0x65, offset 0x22f\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xc600, lo: 0x80, hi: 0x83},\n\t{value: 0xe500, lo: 0x84, hi: 0x84},\n\t{value: 0xc600, lo: 0x85, hi: 0x9f},\n\t{value: 0xe500, lo: 0xa0, hi: 0xa0},\n\t{value: 0xc600, lo: 0xa1, hi: 0xbb},\n\t{value: 0xe500, lo: 0xbc, hi: 0xbc},\n\t{value: 0xc600, lo: 0xbd, hi: 0xbf},\n\t// Block 0x66, offset 0x237\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x97},\n\t{value: 0xe500, lo: 0x98, hi: 0x98},\n\t{value: 0xc600, lo: 0x99, hi: 0xb3},\n\t{value: 0xe500, lo: 0xb4, hi: 0xb4},\n\t{value: 0xc600, lo: 0xb5, hi: 0xbf},\n\t// Block 0x67, offset 0x23d\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8f},\n\t{value: 0xe500, lo: 0x90, hi: 0x90},\n\t{value: 0xc600, lo: 0x91, hi: 0xab},\n\t{value: 0xe500, lo: 0xac, hi: 0xac},\n\t{value: 0xc600, lo: 0xad, hi: 0xbf},\n\t// Block 0x68, offset 0x243\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t{value: 0xe500, lo: 0xa4, hi: 0xa4},\n\t{value: 0xc600, lo: 0xa5, hi: 0xbf},\n\t// Block 0x69, offset 0x249\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t// Block 0x6a, offset 0x24d\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x0003, lo: 0x81, hi: 0xbf},\n\t// Block 0x6b, offset 0x24f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0xbd, hi: 0xbd},\n\t// Block 0x6c, offset 0x251\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0xa0, hi: 0xa0},\n\t// Block 0x6d, offset 0x253\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xb6, hi: 0xba},\n\t// Block 0x6e, offset 0x255\n\t{value: 0x002d, lo: 0x05},\n\t{value: 0x812e, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8133, lo: 0x8f, hi: 0x8f},\n\t{value: 0x8133, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8101, lo: 0xb9, hi: 0xba},\n\t{value: 0x8105, lo: 0xbf, hi: 0xbf},\n\t// Block 0x6f, offset 0x25b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8133, lo: 0xa5, hi: 0xa5},\n\t{value: 0x812e, lo: 0xa6, hi: 0xa6},\n\t// Block 0x70, offset 0x25e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xa4, hi: 0xa7},\n\t// Block 0x71, offset 0x260\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xab, hi: 0xac},\n\t// Block 0x72, offset 0x262\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x812e, lo: 0x86, hi: 0x87},\n\t{value: 0x8133, lo: 0x88, hi: 0x8a},\n\t{value: 0x812e, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8133, lo: 0x8c, hi: 0x8c},\n\t{value: 0x812e, lo: 0x8d, hi: 0x90},\n\t// Block 0x73, offset 0x268\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x86, hi: 0x86},\n\t{value: 0x8105, lo: 0xbf, hi: 0xbf},\n\t// Block 0x74, offset 0x26b\n\t{value: 0x17fe, lo: 0x07},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x424f, lo: 0x9a, hi: 0x9a},\n\t{value: 0xa000, lo: 0x9b, hi: 0x9b},\n\t{value: 0x4259, lo: 0x9c, hi: 0x9c},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x4263, lo: 0xab, hi: 0xab},\n\t{value: 0x8105, lo: 0xb9, hi: 0xba},\n\t// Block 0x75, offset 0x273\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x8133, lo: 0x80, hi: 0x82},\n\t{value: 0x9900, lo: 0xa7, hi: 0xa7},\n\t{value: 0x2d8b, lo: 0xae, hi: 0xae},\n\t{value: 0x2d95, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb1, hi: 0xb2},\n\t{value: 0x8105, lo: 0xb3, hi: 0xb4},\n\t// Block 0x76, offset 0x27a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x80, hi: 0x80},\n\t{value: 0x8103, lo: 0x8a, hi: 0x8a},\n\t// Block 0x77, offset 0x27d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0xb5, hi: 0xb5},\n\t{value: 0x8103, lo: 0xb6, hi: 0xb6},\n\t// Block 0x78, offset 0x280\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x8103, lo: 0xa9, hi: 0xaa},\n\t// Block 0x79, offset 0x282\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8103, lo: 0xbb, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x7a, offset 0x285\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2d9f, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2da9, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x8133, lo: 0xa6, hi: 0xac},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb4},\n\t// Block 0x7b, offset 0x28d\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8105, lo: 0x82, hi: 0x82},\n\t{value: 0x8103, lo: 0x86, hi: 0x86},\n\t{value: 0x8133, lo: 0x9e, hi: 0x9e},\n\t// Block 0x7c, offset 0x291\n\t{value: 0x6b4d, lo: 0x06},\n\t{value: 0x9900, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb9, hi: 0xb9},\n\t{value: 0x9900, lo: 0xba, hi: 0xba},\n\t{value: 0x2dbd, lo: 0xbb, hi: 0xbb},\n\t{value: 0x2db3, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2dc7, lo: 0xbe, hi: 0xbe},\n\t// Block 0x7d, offset 0x298\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x82, hi: 0x82},\n\t{value: 0x8103, lo: 0x83, hi: 0x83},\n\t// Block 0x7e, offset 0x29b\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x9900, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2dd1, lo: 0xba, hi: 0xba},\n\t{value: 0x2ddb, lo: 0xbb, hi: 0xbb},\n\t{value: 0x8105, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7f, offset 0x2a1\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8103, lo: 0x80, hi: 0x80},\n\t// Block 0x80, offset 0x2a3\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xbf, hi: 0xbf},\n\t// Block 0x81, offset 0x2a5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8103, lo: 0xb7, hi: 0xb7},\n\t// Block 0x82, offset 0x2a8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xab, hi: 0xab},\n\t// Block 0x83, offset 0x2aa\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8103, lo: 0xba, hi: 0xba},\n\t// Block 0x84, offset 0x2ad\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x9900, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb5, hi: 0xb5},\n\t{value: 0x2de5, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8105, lo: 0xbd, hi: 0xbe},\n\t// Block 0x85, offset 0x2b2\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8103, lo: 0x83, hi: 0x83},\n\t// Block 0x86, offset 0x2b4\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xa0, hi: 0xa0},\n\t// Block 0x87, offset 0x2b6\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xb4, hi: 0xb4},\n\t// Block 0x88, offset 0x2b8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x87, hi: 0x87},\n\t// Block 0x89, offset 0x2ba\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x99, hi: 0x99},\n\t// Block 0x8a, offset 0x2bc\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8103, lo: 0x82, hi: 0x82},\n\t{value: 0x8105, lo: 0x84, hi: 0x85},\n\t// Block 0x8b, offset 0x2bf\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x97, hi: 0x97},\n\t// Block 0x8c, offset 0x2c1\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0xb0, hi: 0xb4},\n\t// Block 0x8d, offset 0x2c3\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb6},\n\t// Block 0x8e, offset 0x2c5\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb0, hi: 0xb1},\n\t// Block 0x8f, offset 0x2c7\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0x9e, hi: 0x9e},\n\t// Block 0x90, offset 0x2c9\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x45e3, lo: 0x9e, hi: 0x9e},\n\t{value: 0x45ed, lo: 0x9f, hi: 0x9f},\n\t{value: 0x4621, lo: 0xa0, hi: 0xa0},\n\t{value: 0x462f, lo: 0xa1, hi: 0xa1},\n\t{value: 0x463d, lo: 0xa2, hi: 0xa2},\n\t{value: 0x464b, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4659, lo: 0xa4, hi: 0xa4},\n\t{value: 0x812c, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8101, lo: 0xa7, hi: 0xa9},\n\t{value: 0x8131, lo: 0xad, hi: 0xad},\n\t{value: 0x812c, lo: 0xae, hi: 0xb2},\n\t{value: 0x812e, lo: 0xbb, hi: 0xbf},\n\t// Block 0x91, offset 0x2d6\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x812e, lo: 0x80, hi: 0x82},\n\t{value: 0x8133, lo: 0x85, hi: 0x89},\n\t{value: 0x812e, lo: 0x8a, hi: 0x8b},\n\t{value: 0x8133, lo: 0xaa, hi: 0xad},\n\t{value: 0x45f7, lo: 0xbb, hi: 0xbb},\n\t{value: 0x4601, lo: 0xbc, hi: 0xbc},\n\t{value: 0x4667, lo: 0xbd, hi: 0xbd},\n\t{value: 0x4683, lo: 0xbe, hi: 0xbe},\n\t{value: 0x4675, lo: 0xbf, hi: 0xbf},\n\t// Block 0x92, offset 0x2e0\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x4691, lo: 0x80, hi: 0x80},\n\t// Block 0x93, offset 0x2e2\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0x82, hi: 0x84},\n\t// Block 0x94, offset 0x2e4\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x0043, lo: 0x80, hi: 0x99},\n\t{value: 0x0083, lo: 0x9a, hi: 0xb3},\n\t{value: 0x0043, lo: 0xb4, hi: 0xbf},\n\t// Block 0x95, offset 0x2e8\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x005b, lo: 0x80, hi: 0x8d},\n\t{value: 0x0083, lo: 0x8e, hi: 0x94},\n\t{value: 0x0093, lo: 0x96, hi: 0xa7},\n\t{value: 0x0043, lo: 0xa8, hi: 0xbf},\n\t// Block 0x96, offset 0x2ed\n\t{value: 0x0002, lo: 0x0b},\n\t{value: 0x0073, lo: 0x80, hi: 0x81},\n\t{value: 0x0083, lo: 0x82, hi: 0x9b},\n\t{value: 0x0043, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0047, lo: 0x9e, hi: 0x9f},\n\t{value: 0x004f, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0055, lo: 0xa5, hi: 0xa6},\n\t{value: 0x005d, lo: 0xa9, hi: 0xac},\n\t{value: 0x0067, lo: 0xae, hi: 0xb5},\n\t{value: 0x0083, lo: 0xb6, hi: 0xb9},\n\t{value: 0x008d, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0091, lo: 0xbd, hi: 0xbf},\n\t// Block 0x97, offset 0x2f9\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x0097, lo: 0x80, hi: 0x83},\n\t{value: 0x00a1, lo: 0x85, hi: 0x8f},\n\t{value: 0x0043, lo: 0x90, hi: 0xa9},\n\t{value: 0x0083, lo: 0xaa, hi: 0xbf},\n\t// Block 0x98, offset 0x2fe\n\t{value: 0x0002, lo: 0x08},\n\t{value: 0x00af, lo: 0x80, hi: 0x83},\n\t{value: 0x0043, lo: 0x84, hi: 0x85},\n\t{value: 0x0049, lo: 0x87, hi: 0x8a},\n\t{value: 0x0055, lo: 0x8d, hi: 0x94},\n\t{value: 0x0067, lo: 0x96, hi: 0x9c},\n\t{value: 0x0083, lo: 0x9e, hi: 0xb7},\n\t{value: 0x0043, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0049, lo: 0xbb, hi: 0xbe},\n\t// Block 0x99, offset 0x307\n\t{value: 0x0002, lo: 0x05},\n\t{value: 0x0053, lo: 0x80, hi: 0x84},\n\t{value: 0x005f, lo: 0x86, hi: 0x86},\n\t{value: 0x0067, lo: 0x8a, hi: 0x90},\n\t{value: 0x0083, lo: 0x92, hi: 0xab},\n\t{value: 0x0043, lo: 0xac, hi: 0xbf},\n\t// Block 0x9a, offset 0x30d\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x006b, lo: 0x80, hi: 0x85},\n\t{value: 0x0083, lo: 0x86, hi: 0x9f},\n\t{value: 0x0043, lo: 0xa0, hi: 0xb9},\n\t{value: 0x0083, lo: 0xba, hi: 0xbf},\n\t// Block 0x9b, offset 0x312\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x008f, lo: 0x80, hi: 0x93},\n\t{value: 0x0043, lo: 0x94, hi: 0xad},\n\t{value: 0x0083, lo: 0xae, hi: 0xbf},\n\t// Block 0x9c, offset 0x316\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x00a7, lo: 0x80, hi: 0x87},\n\t{value: 0x0043, lo: 0x88, hi: 0xa1},\n\t{value: 0x0083, lo: 0xa2, hi: 0xbb},\n\t{value: 0x0043, lo: 0xbc, hi: 0xbf},\n\t// Block 0x9d, offset 0x31b\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x004b, lo: 0x80, hi: 0x95},\n\t{value: 0x0083, lo: 0x96, hi: 0xaf},\n\t{value: 0x0043, lo: 0xb0, hi: 0xbf},\n\t// Block 0x9e, offset 0x31f\n\t{value: 0x0003, lo: 0x0f},\n\t{value: 0x01bb, lo: 0x80, hi: 0x80},\n\t{value: 0x0462, lo: 0x81, hi: 0x81},\n\t{value: 0x01be, lo: 0x82, hi: 0x9a},\n\t{value: 0x045e, lo: 0x9b, hi: 0x9b},\n\t{value: 0x01ca, lo: 0x9c, hi: 0x9c},\n\t{value: 0x01d3, lo: 0x9d, hi: 0x9d},\n\t{value: 0x01d9, lo: 0x9e, hi: 0x9e},\n\t{value: 0x01fd, lo: 0x9f, hi: 0x9f},\n\t{value: 0x01ee, lo: 0xa0, hi: 0xa0},\n\t{value: 0x01eb, lo: 0xa1, hi: 0xa1},\n\t{value: 0x0176, lo: 0xa2, hi: 0xb2},\n\t{value: 0x018b, lo: 0xb3, hi: 0xb3},\n\t{value: 0x01a9, lo: 0xb4, hi: 0xba},\n\t{value: 0x0462, lo: 0xbb, hi: 0xbb},\n\t{value: 0x01be, lo: 0xbc, hi: 0xbf},\n\t// Block 0x9f, offset 0x32f\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x01ca, lo: 0x80, hi: 0x94},\n\t{value: 0x045e, lo: 0x95, hi: 0x95},\n\t{value: 0x01ca, lo: 0x96, hi: 0x96},\n\t{value: 0x01d3, lo: 0x97, hi: 0x97},\n\t{value: 0x01d9, lo: 0x98, hi: 0x98},\n\t{value: 0x01fd, lo: 0x99, hi: 0x99},\n\t{value: 0x01ee, lo: 0x9a, hi: 0x9a},\n\t{value: 0x01eb, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0176, lo: 0x9c, hi: 0xac},\n\t{value: 0x018b, lo: 0xad, hi: 0xad},\n\t{value: 0x01a9, lo: 0xae, hi: 0xb4},\n\t{value: 0x0462, lo: 0xb5, hi: 0xb5},\n\t{value: 0x01be, lo: 0xb6, hi: 0xbf},\n\t// Block 0xa0, offset 0x33d\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x01dc, lo: 0x80, hi: 0x8e},\n\t{value: 0x045e, lo: 0x8f, hi: 0x8f},\n\t{value: 0x01ca, lo: 0x90, hi: 0x90},\n\t{value: 0x01d3, lo: 0x91, hi: 0x91},\n\t{value: 0x01d9, lo: 0x92, hi: 0x92},\n\t{value: 0x01fd, lo: 0x93, hi: 0x93},\n\t{value: 0x01ee, lo: 0x94, hi: 0x94},\n\t{value: 0x01eb, lo: 0x95, hi: 0x95},\n\t{value: 0x0176, lo: 0x96, hi: 0xa6},\n\t{value: 0x018b, lo: 0xa7, hi: 0xa7},\n\t{value: 0x01a9, lo: 0xa8, hi: 0xae},\n\t{value: 0x0462, lo: 0xaf, hi: 0xaf},\n\t{value: 0x01be, lo: 0xb0, hi: 0xbf},\n\t// Block 0xa1, offset 0x34b\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x01ee, lo: 0x80, hi: 0x88},\n\t{value: 0x045e, lo: 0x89, hi: 0x89},\n\t{value: 0x01ca, lo: 0x8a, hi: 0x8a},\n\t{value: 0x01d3, lo: 0x8b, hi: 0x8b},\n\t{value: 0x01d9, lo: 0x8c, hi: 0x8c},\n\t{value: 0x01fd, lo: 0x8d, hi: 0x8d},\n\t{value: 0x01ee, lo: 0x8e, hi: 0x8e},\n\t{value: 0x01eb, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0176, lo: 0x90, hi: 0xa0},\n\t{value: 0x018b, lo: 0xa1, hi: 0xa1},\n\t{value: 0x01a9, lo: 0xa2, hi: 0xa8},\n\t{value: 0x0462, lo: 0xa9, hi: 0xa9},\n\t{value: 0x01be, lo: 0xaa, hi: 0xbf},\n\t// Block 0xa2, offset 0x359\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8133, lo: 0x80, hi: 0x86},\n\t{value: 0x8133, lo: 0x88, hi: 0x98},\n\t{value: 0x8133, lo: 0x9b, hi: 0xa1},\n\t{value: 0x8133, lo: 0xa3, hi: 0xa4},\n\t{value: 0x8133, lo: 0xa6, hi: 0xaa},\n\t// Block 0xa3, offset 0x35f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xac, hi: 0xaf},\n\t// Block 0xa4, offset 0x361\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0x90, hi: 0x96},\n\t// Block 0xa5, offset 0x363\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8133, lo: 0x84, hi: 0x89},\n\t{value: 0x8103, lo: 0x8a, hi: 0x8a},\n\t// Block 0xa6, offset 0x366\n\t{value: 0x0002, lo: 0x0a},\n\t{value: 0x0063, lo: 0x80, hi: 0x89},\n\t{value: 0x1954, lo: 0x8a, hi: 0x8a},\n\t{value: 0x1987, lo: 0x8b, hi: 0x8b},\n\t{value: 0x19a2, lo: 0x8c, hi: 0x8c},\n\t{value: 0x19a8, lo: 0x8d, hi: 0x8d},\n\t{value: 0x1bc6, lo: 0x8e, hi: 0x8e},\n\t{value: 0x19b4, lo: 0x8f, hi: 0x8f},\n\t{value: 0x197e, lo: 0xaa, hi: 0xaa},\n\t{value: 0x1981, lo: 0xab, hi: 0xab},\n\t{value: 0x1984, lo: 0xac, hi: 0xac},\n\t// Block 0xa7, offset 0x371\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x1942, lo: 0x90, hi: 0x90},\n\t// Block 0xa8, offset 0x373\n\t{value: 0x0028, lo: 0x09},\n\t{value: 0x286f, lo: 0x80, hi: 0x80},\n\t{value: 0x2833, lo: 0x81, hi: 0x81},\n\t{value: 0x283d, lo: 0x82, hi: 0x82},\n\t{value: 0x2851, lo: 0x83, hi: 0x84},\n\t{value: 0x285b, lo: 0x85, hi: 0x86},\n\t{value: 0x2847, lo: 0x87, hi: 0x87},\n\t{value: 0x2865, lo: 0x88, hi: 0x88},\n\t{value: 0x0b72, lo: 0x90, hi: 0x90},\n\t{value: 0x08ea, lo: 0x91, hi: 0x91},\n\t// Block 0xa9, offset 0x37d\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x0021, lo: 0xb0, hi: 0xb9},\n}\n\n// recompMap: 7528 bytes (entries only)\nvar recompMap map[uint32]rune\nvar recompMapOnce sync.Once\n\nconst recompMapPacked = \"\" +\n\t\"\\x00A\\x03\\x00\\x00\\x00\\x00\\xc0\" + // 0x00410300: 0x000000C0\n\t\"\\x00A\\x03\\x01\\x00\\x00\\x00\\xc1\" + // 0x00410301: 0x000000C1\n\t\"\\x00A\\x03\\x02\\x00\\x00\\x00\\xc2\" + // 0x00410302: 0x000000C2\n\t\"\\x00A\\x03\\x03\\x00\\x00\\x00\\xc3\" + // 0x00410303: 0x000000C3\n\t\"\\x00A\\x03\\b\\x00\\x00\\x00\\xc4\" + // 0x00410308: 0x000000C4\n\t\"\\x00A\\x03\\n\\x00\\x00\\x00\\xc5\" + // 0x0041030A: 0x000000C5\n\t\"\\x00C\\x03'\\x00\\x00\\x00\\xc7\" + // 0x00430327: 0x000000C7\n\t\"\\x00E\\x03\\x00\\x00\\x00\\x00\\xc8\" + // 0x00450300: 0x000000C8\n\t\"\\x00E\\x03\\x01\\x00\\x00\\x00\\xc9\" + // 0x00450301: 0x000000C9\n\t\"\\x00E\\x03\\x02\\x00\\x00\\x00\\xca\" + // 0x00450302: 0x000000CA\n\t\"\\x00E\\x03\\b\\x00\\x00\\x00\\xcb\" + // 0x00450308: 0x000000CB\n\t\"\\x00I\\x03\\x00\\x00\\x00\\x00\\xcc\" + // 0x00490300: 0x000000CC\n\t\"\\x00I\\x03\\x01\\x00\\x00\\x00\\xcd\" + // 0x00490301: 0x000000CD\n\t\"\\x00I\\x03\\x02\\x00\\x00\\x00\\xce\" + // 0x00490302: 0x000000CE\n\t\"\\x00I\\x03\\b\\x00\\x00\\x00\\xcf\" + // 0x00490308: 0x000000CF\n\t\"\\x00N\\x03\\x03\\x00\\x00\\x00\\xd1\" + // 0x004E0303: 0x000000D1\n\t\"\\x00O\\x03\\x00\\x00\\x00\\x00\\xd2\" + // 0x004F0300: 0x000000D2\n\t\"\\x00O\\x03\\x01\\x00\\x00\\x00\\xd3\" + // 0x004F0301: 0x000000D3\n\t\"\\x00O\\x03\\x02\\x00\\x00\\x00\\xd4\" + // 0x004F0302: 0x000000D4\n\t\"\\x00O\\x03\\x03\\x00\\x00\\x00\\xd5\" + // 0x004F0303: 0x000000D5\n\t\"\\x00O\\x03\\b\\x00\\x00\\x00\\xd6\" + // 0x004F0308: 0x000000D6\n\t\"\\x00U\\x03\\x00\\x00\\x00\\x00\\xd9\" + // 0x00550300: 0x000000D9\n\t\"\\x00U\\x03\\x01\\x00\\x00\\x00\\xda\" + // 0x00550301: 0x000000DA\n\t\"\\x00U\\x03\\x02\\x00\\x00\\x00\\xdb\" + // 0x00550302: 0x000000DB\n\t\"\\x00U\\x03\\b\\x00\\x00\\x00\\xdc\" + // 0x00550308: 0x000000DC\n\t\"\\x00Y\\x03\\x01\\x00\\x00\\x00\\xdd\" + // 0x00590301: 0x000000DD\n\t\"\\x00a\\x03\\x00\\x00\\x00\\x00\\xe0\" + // 0x00610300: 0x000000E0\n\t\"\\x00a\\x03\\x01\\x00\\x00\\x00\\xe1\" + // 0x00610301: 0x000000E1\n\t\"\\x00a\\x03\\x02\\x00\\x00\\x00\\xe2\" + // 0x00610302: 0x000000E2\n\t\"\\x00a\\x03\\x03\\x00\\x00\\x00\\xe3\" + // 0x00610303: 0x000000E3\n\t\"\\x00a\\x03\\b\\x00\\x00\\x00\\xe4\" + // 0x00610308: 0x000000E4\n\t\"\\x00a\\x03\\n\\x00\\x00\\x00\\xe5\" + // 0x0061030A: 0x000000E5\n\t\"\\x00c\\x03'\\x00\\x00\\x00\\xe7\" + // 0x00630327: 0x000000E7\n\t\"\\x00e\\x03\\x00\\x00\\x00\\x00\\xe8\" + // 0x00650300: 0x000000E8\n\t\"\\x00e\\x03\\x01\\x00\\x00\\x00\\xe9\" + // 0x00650301: 0x000000E9\n\t\"\\x00e\\x03\\x02\\x00\\x00\\x00\\xea\" + // 0x00650302: 0x000000EA\n\t\"\\x00e\\x03\\b\\x00\\x00\\x00\\xeb\" + // 0x00650308: 0x000000EB\n\t\"\\x00i\\x03\\x00\\x00\\x00\\x00\\xec\" + // 0x00690300: 0x000000EC\n\t\"\\x00i\\x03\\x01\\x00\\x00\\x00\\xed\" + // 0x00690301: 0x000000ED\n\t\"\\x00i\\x03\\x02\\x00\\x00\\x00\\xee\" + // 0x00690302: 0x000000EE\n\t\"\\x00i\\x03\\b\\x00\\x00\\x00\\xef\" + // 0x00690308: 0x000000EF\n\t\"\\x00n\\x03\\x03\\x00\\x00\\x00\\xf1\" + // 0x006E0303: 0x000000F1\n\t\"\\x00o\\x03\\x00\\x00\\x00\\x00\\xf2\" + // 0x006F0300: 0x000000F2\n\t\"\\x00o\\x03\\x01\\x00\\x00\\x00\\xf3\" + // 0x006F0301: 0x000000F3\n\t\"\\x00o\\x03\\x02\\x00\\x00\\x00\\xf4\" + // 0x006F0302: 0x000000F4\n\t\"\\x00o\\x03\\x03\\x00\\x00\\x00\\xf5\" + // 0x006F0303: 0x000000F5\n\t\"\\x00o\\x03\\b\\x00\\x00\\x00\\xf6\" + // 0x006F0308: 0x000000F6\n\t\"\\x00u\\x03\\x00\\x00\\x00\\x00\\xf9\" + // 0x00750300: 0x000000F9\n\t\"\\x00u\\x03\\x01\\x00\\x00\\x00\\xfa\" + // 0x00750301: 0x000000FA\n\t\"\\x00u\\x03\\x02\\x00\\x00\\x00\\xfb\" + // 0x00750302: 0x000000FB\n\t\"\\x00u\\x03\\b\\x00\\x00\\x00\\xfc\" + // 0x00750308: 0x000000FC\n\t\"\\x00y\\x03\\x01\\x00\\x00\\x00\\xfd\" + // 0x00790301: 0x000000FD\n\t\"\\x00y\\x03\\b\\x00\\x00\\x00\\xff\" + // 0x00790308: 0x000000FF\n\t\"\\x00A\\x03\\x04\\x00\\x00\\x01\\x00\" + // 0x00410304: 0x00000100\n\t\"\\x00a\\x03\\x04\\x00\\x00\\x01\\x01\" + // 0x00610304: 0x00000101\n\t\"\\x00A\\x03\\x06\\x00\\x00\\x01\\x02\" + // 0x00410306: 0x00000102\n\t\"\\x00a\\x03\\x06\\x00\\x00\\x01\\x03\" + // 0x00610306: 0x00000103\n\t\"\\x00A\\x03(\\x00\\x00\\x01\\x04\" + // 0x00410328: 0x00000104\n\t\"\\x00a\\x03(\\x00\\x00\\x01\\x05\" + // 0x00610328: 0x00000105\n\t\"\\x00C\\x03\\x01\\x00\\x00\\x01\\x06\" + // 0x00430301: 0x00000106\n\t\"\\x00c\\x03\\x01\\x00\\x00\\x01\\a\" + // 0x00630301: 0x00000107\n\t\"\\x00C\\x03\\x02\\x00\\x00\\x01\\b\" + // 0x00430302: 0x00000108\n\t\"\\x00c\\x03\\x02\\x00\\x00\\x01\\t\" + // 0x00630302: 0x00000109\n\t\"\\x00C\\x03\\a\\x00\\x00\\x01\\n\" + // 0x00430307: 0x0000010A\n\t\"\\x00c\\x03\\a\\x00\\x00\\x01\\v\" + // 0x00630307: 0x0000010B\n\t\"\\x00C\\x03\\f\\x00\\x00\\x01\\f\" + // 0x0043030C: 0x0000010C\n\t\"\\x00c\\x03\\f\\x00\\x00\\x01\\r\" + // 0x0063030C: 0x0000010D\n\t\"\\x00D\\x03\\f\\x00\\x00\\x01\\x0e\" + // 0x0044030C: 0x0000010E\n\t\"\\x00d\\x03\\f\\x00\\x00\\x01\\x0f\" + // 0x0064030C: 0x0000010F\n\t\"\\x00E\\x03\\x04\\x00\\x00\\x01\\x12\" + // 0x00450304: 0x00000112\n\t\"\\x00e\\x03\\x04\\x00\\x00\\x01\\x13\" + // 0x00650304: 0x00000113\n\t\"\\x00E\\x03\\x06\\x00\\x00\\x01\\x14\" + // 0x00450306: 0x00000114\n\t\"\\x00e\\x03\\x06\\x00\\x00\\x01\\x15\" + // 0x00650306: 0x00000115\n\t\"\\x00E\\x03\\a\\x00\\x00\\x01\\x16\" + // 0x00450307: 0x00000116\n\t\"\\x00e\\x03\\a\\x00\\x00\\x01\\x17\" + // 0x00650307: 0x00000117\n\t\"\\x00E\\x03(\\x00\\x00\\x01\\x18\" + // 0x00450328: 0x00000118\n\t\"\\x00e\\x03(\\x00\\x00\\x01\\x19\" + // 0x00650328: 0x00000119\n\t\"\\x00E\\x03\\f\\x00\\x00\\x01\\x1a\" + // 0x0045030C: 0x0000011A\n\t\"\\x00e\\x03\\f\\x00\\x00\\x01\\x1b\" + // 0x0065030C: 0x0000011B\n\t\"\\x00G\\x03\\x02\\x00\\x00\\x01\\x1c\" + // 0x00470302: 0x0000011C\n\t\"\\x00g\\x03\\x02\\x00\\x00\\x01\\x1d\" + // 0x00670302: 0x0000011D\n\t\"\\x00G\\x03\\x06\\x00\\x00\\x01\\x1e\" + // 0x00470306: 0x0000011E\n\t\"\\x00g\\x03\\x06\\x00\\x00\\x01\\x1f\" + // 0x00670306: 0x0000011F\n\t\"\\x00G\\x03\\a\\x00\\x00\\x01 \" + // 0x00470307: 0x00000120\n\t\"\\x00g\\x03\\a\\x00\\x00\\x01!\" + // 0x00670307: 0x00000121\n\t\"\\x00G\\x03'\\x00\\x00\\x01\\\"\" + // 0x00470327: 0x00000122\n\t\"\\x00g\\x03'\\x00\\x00\\x01#\" + // 0x00670327: 0x00000123\n\t\"\\x00H\\x03\\x02\\x00\\x00\\x01$\" + // 0x00480302: 0x00000124\n\t\"\\x00h\\x03\\x02\\x00\\x00\\x01%\" + // 0x00680302: 0x00000125\n\t\"\\x00I\\x03\\x03\\x00\\x00\\x01(\" + // 0x00490303: 0x00000128\n\t\"\\x00i\\x03\\x03\\x00\\x00\\x01)\" + // 0x00690303: 0x00000129\n\t\"\\x00I\\x03\\x04\\x00\\x00\\x01*\" + // 0x00490304: 0x0000012A\n\t\"\\x00i\\x03\\x04\\x00\\x00\\x01+\" + // 0x00690304: 0x0000012B\n\t\"\\x00I\\x03\\x06\\x00\\x00\\x01,\" + // 0x00490306: 0x0000012C\n\t\"\\x00i\\x03\\x06\\x00\\x00\\x01-\" + // 0x00690306: 0x0000012D\n\t\"\\x00I\\x03(\\x00\\x00\\x01.\" + // 0x00490328: 0x0000012E\n\t\"\\x00i\\x03(\\x00\\x00\\x01/\" + // 0x00690328: 0x0000012F\n\t\"\\x00I\\x03\\a\\x00\\x00\\x010\" + // 0x00490307: 0x00000130\n\t\"\\x00J\\x03\\x02\\x00\\x00\\x014\" + // 0x004A0302: 0x00000134\n\t\"\\x00j\\x03\\x02\\x00\\x00\\x015\" + // 0x006A0302: 0x00000135\n\t\"\\x00K\\x03'\\x00\\x00\\x016\" + // 0x004B0327: 0x00000136\n\t\"\\x00k\\x03'\\x00\\x00\\x017\" + // 0x006B0327: 0x00000137\n\t\"\\x00L\\x03\\x01\\x00\\x00\\x019\" + // 0x004C0301: 0x00000139\n\t\"\\x00l\\x03\\x01\\x00\\x00\\x01:\" + // 0x006C0301: 0x0000013A\n\t\"\\x00L\\x03'\\x00\\x00\\x01;\" + // 0x004C0327: 0x0000013B\n\t\"\\x00l\\x03'\\x00\\x00\\x01<\" + // 0x006C0327: 0x0000013C\n\t\"\\x00L\\x03\\f\\x00\\x00\\x01=\" + // 0x004C030C: 0x0000013D\n\t\"\\x00l\\x03\\f\\x00\\x00\\x01>\" + // 0x006C030C: 0x0000013E\n\t\"\\x00N\\x03\\x01\\x00\\x00\\x01C\" + // 0x004E0301: 0x00000143\n\t\"\\x00n\\x03\\x01\\x00\\x00\\x01D\" + // 0x006E0301: 0x00000144\n\t\"\\x00N\\x03'\\x00\\x00\\x01E\" + // 0x004E0327: 0x00000145\n\t\"\\x00n\\x03'\\x00\\x00\\x01F\" + // 0x006E0327: 0x00000146\n\t\"\\x00N\\x03\\f\\x00\\x00\\x01G\" + // 0x004E030C: 0x00000147\n\t\"\\x00n\\x03\\f\\x00\\x00\\x01H\" + // 0x006E030C: 0x00000148\n\t\"\\x00O\\x03\\x04\\x00\\x00\\x01L\" + // 0x004F0304: 0x0000014C\n\t\"\\x00o\\x03\\x04\\x00\\x00\\x01M\" + // 0x006F0304: 0x0000014D\n\t\"\\x00O\\x03\\x06\\x00\\x00\\x01N\" + // 0x004F0306: 0x0000014E\n\t\"\\x00o\\x03\\x06\\x00\\x00\\x01O\" + // 0x006F0306: 0x0000014F\n\t\"\\x00O\\x03\\v\\x00\\x00\\x01P\" + // 0x004F030B: 0x00000150\n\t\"\\x00o\\x03\\v\\x00\\x00\\x01Q\" + // 0x006F030B: 0x00000151\n\t\"\\x00R\\x03\\x01\\x00\\x00\\x01T\" + // 0x00520301: 0x00000154\n\t\"\\x00r\\x03\\x01\\x00\\x00\\x01U\" + // 0x00720301: 0x00000155\n\t\"\\x00R\\x03'\\x00\\x00\\x01V\" + // 0x00520327: 0x00000156\n\t\"\\x00r\\x03'\\x00\\x00\\x01W\" + // 0x00720327: 0x00000157\n\t\"\\x00R\\x03\\f\\x00\\x00\\x01X\" + // 0x0052030C: 0x00000158\n\t\"\\x00r\\x03\\f\\x00\\x00\\x01Y\" + // 0x0072030C: 0x00000159\n\t\"\\x00S\\x03\\x01\\x00\\x00\\x01Z\" + // 0x00530301: 0x0000015A\n\t\"\\x00s\\x03\\x01\\x00\\x00\\x01[\" + // 0x00730301: 0x0000015B\n\t\"\\x00S\\x03\\x02\\x00\\x00\\x01\\\\\" + // 0x00530302: 0x0000015C\n\t\"\\x00s\\x03\\x02\\x00\\x00\\x01]\" + // 0x00730302: 0x0000015D\n\t\"\\x00S\\x03'\\x00\\x00\\x01^\" + // 0x00530327: 0x0000015E\n\t\"\\x00s\\x03'\\x00\\x00\\x01_\" + // 0x00730327: 0x0000015F\n\t\"\\x00S\\x03\\f\\x00\\x00\\x01`\" + // 0x0053030C: 0x00000160\n\t\"\\x00s\\x03\\f\\x00\\x00\\x01a\" + // 0x0073030C: 0x00000161\n\t\"\\x00T\\x03'\\x00\\x00\\x01b\" + // 0x00540327: 0x00000162\n\t\"\\x00t\\x03'\\x00\\x00\\x01c\" + // 0x00740327: 0x00000163\n\t\"\\x00T\\x03\\f\\x00\\x00\\x01d\" + // 0x0054030C: 0x00000164\n\t\"\\x00t\\x03\\f\\x00\\x00\\x01e\" + // 0x0074030C: 0x00000165\n\t\"\\x00U\\x03\\x03\\x00\\x00\\x01h\" + // 0x00550303: 0x00000168\n\t\"\\x00u\\x03\\x03\\x00\\x00\\x01i\" + // 0x00750303: 0x00000169\n\t\"\\x00U\\x03\\x04\\x00\\x00\\x01j\" + // 0x00550304: 0x0000016A\n\t\"\\x00u\\x03\\x04\\x00\\x00\\x01k\" + // 0x00750304: 0x0000016B\n\t\"\\x00U\\x03\\x06\\x00\\x00\\x01l\" + // 0x00550306: 0x0000016C\n\t\"\\x00u\\x03\\x06\\x00\\x00\\x01m\" + // 0x00750306: 0x0000016D\n\t\"\\x00U\\x03\\n\\x00\\x00\\x01n\" + // 0x0055030A: 0x0000016E\n\t\"\\x00u\\x03\\n\\x00\\x00\\x01o\" + // 0x0075030A: 0x0000016F\n\t\"\\x00U\\x03\\v\\x00\\x00\\x01p\" + // 0x0055030B: 0x00000170\n\t\"\\x00u\\x03\\v\\x00\\x00\\x01q\" + // 0x0075030B: 0x00000171\n\t\"\\x00U\\x03(\\x00\\x00\\x01r\" + // 0x00550328: 0x00000172\n\t\"\\x00u\\x03(\\x00\\x00\\x01s\" + // 0x00750328: 0x00000173\n\t\"\\x00W\\x03\\x02\\x00\\x00\\x01t\" + // 0x00570302: 0x00000174\n\t\"\\x00w\\x03\\x02\\x00\\x00\\x01u\" + // 0x00770302: 0x00000175\n\t\"\\x00Y\\x03\\x02\\x00\\x00\\x01v\" + // 0x00590302: 0x00000176\n\t\"\\x00y\\x03\\x02\\x00\\x00\\x01w\" + // 0x00790302: 0x00000177\n\t\"\\x00Y\\x03\\b\\x00\\x00\\x01x\" + // 0x00590308: 0x00000178\n\t\"\\x00Z\\x03\\x01\\x00\\x00\\x01y\" + // 0x005A0301: 0x00000179\n\t\"\\x00z\\x03\\x01\\x00\\x00\\x01z\" + // 0x007A0301: 0x0000017A\n\t\"\\x00Z\\x03\\a\\x00\\x00\\x01{\" + // 0x005A0307: 0x0000017B\n\t\"\\x00z\\x03\\a\\x00\\x00\\x01|\" + // 0x007A0307: 0x0000017C\n\t\"\\x00Z\\x03\\f\\x00\\x00\\x01}\" + // 0x005A030C: 0x0000017D\n\t\"\\x00z\\x03\\f\\x00\\x00\\x01~\" + // 0x007A030C: 0x0000017E\n\t\"\\x00O\\x03\\x1b\\x00\\x00\\x01\\xa0\" + // 0x004F031B: 0x000001A0\n\t\"\\x00o\\x03\\x1b\\x00\\x00\\x01\\xa1\" + // 0x006F031B: 0x000001A1\n\t\"\\x00U\\x03\\x1b\\x00\\x00\\x01\\xaf\" + // 0x0055031B: 0x000001AF\n\t\"\\x00u\\x03\\x1b\\x00\\x00\\x01\\xb0\" + // 0x0075031B: 0x000001B0\n\t\"\\x00A\\x03\\f\\x00\\x00\\x01\\xcd\" + // 0x0041030C: 0x000001CD\n\t\"\\x00a\\x03\\f\\x00\\x00\\x01\\xce\" + // 0x0061030C: 0x000001CE\n\t\"\\x00I\\x03\\f\\x00\\x00\\x01\\xcf\" + // 0x0049030C: 0x000001CF\n\t\"\\x00i\\x03\\f\\x00\\x00\\x01\\xd0\" + // 0x0069030C: 0x000001D0\n\t\"\\x00O\\x03\\f\\x00\\x00\\x01\\xd1\" + // 0x004F030C: 0x000001D1\n\t\"\\x00o\\x03\\f\\x00\\x00\\x01\\xd2\" + // 0x006F030C: 0x000001D2\n\t\"\\x00U\\x03\\f\\x00\\x00\\x01\\xd3\" + // 0x0055030C: 0x000001D3\n\t\"\\x00u\\x03\\f\\x00\\x00\\x01\\xd4\" + // 0x0075030C: 0x000001D4\n\t\"\\x00\\xdc\\x03\\x04\\x00\\x00\\x01\\xd5\" + // 0x00DC0304: 0x000001D5\n\t\"\\x00\\xfc\\x03\\x04\\x00\\x00\\x01\\xd6\" + // 0x00FC0304: 0x000001D6\n\t\"\\x00\\xdc\\x03\\x01\\x00\\x00\\x01\\xd7\" + // 0x00DC0301: 0x000001D7\n\t\"\\x00\\xfc\\x03\\x01\\x00\\x00\\x01\\xd8\" + // 0x00FC0301: 0x000001D8\n\t\"\\x00\\xdc\\x03\\f\\x00\\x00\\x01\\xd9\" + // 0x00DC030C: 0x000001D9\n\t\"\\x00\\xfc\\x03\\f\\x00\\x00\\x01\\xda\" + // 0x00FC030C: 0x000001DA\n\t\"\\x00\\xdc\\x03\\x00\\x00\\x00\\x01\\xdb\" + // 0x00DC0300: 0x000001DB\n\t\"\\x00\\xfc\\x03\\x00\\x00\\x00\\x01\\xdc\" + // 0x00FC0300: 0x000001DC\n\t\"\\x00\\xc4\\x03\\x04\\x00\\x00\\x01\\xde\" + // 0x00C40304: 0x000001DE\n\t\"\\x00\\xe4\\x03\\x04\\x00\\x00\\x01\\xdf\" + // 0x00E40304: 0x000001DF\n\t\"\\x02&\\x03\\x04\\x00\\x00\\x01\\xe0\" + // 0x02260304: 0x000001E0\n\t\"\\x02'\\x03\\x04\\x00\\x00\\x01\\xe1\" + // 0x02270304: 0x000001E1\n\t\"\\x00\\xc6\\x03\\x04\\x00\\x00\\x01\\xe2\" + // 0x00C60304: 0x000001E2\n\t\"\\x00\\xe6\\x03\\x04\\x00\\x00\\x01\\xe3\" + // 0x00E60304: 0x000001E3\n\t\"\\x00G\\x03\\f\\x00\\x00\\x01\\xe6\" + // 0x0047030C: 0x000001E6\n\t\"\\x00g\\x03\\f\\x00\\x00\\x01\\xe7\" + // 0x0067030C: 0x000001E7\n\t\"\\x00K\\x03\\f\\x00\\x00\\x01\\xe8\" + // 0x004B030C: 0x000001E8\n\t\"\\x00k\\x03\\f\\x00\\x00\\x01\\xe9\" + // 0x006B030C: 0x000001E9\n\t\"\\x00O\\x03(\\x00\\x00\\x01\\xea\" + // 0x004F0328: 0x000001EA\n\t\"\\x00o\\x03(\\x00\\x00\\x01\\xeb\" + // 0x006F0328: 0x000001EB\n\t\"\\x01\\xea\\x03\\x04\\x00\\x00\\x01\\xec\" + // 0x01EA0304: 0x000001EC\n\t\"\\x01\\xeb\\x03\\x04\\x00\\x00\\x01\\xed\" + // 0x01EB0304: 0x000001ED\n\t\"\\x01\\xb7\\x03\\f\\x00\\x00\\x01\\xee\" + // 0x01B7030C: 0x000001EE\n\t\"\\x02\\x92\\x03\\f\\x00\\x00\\x01\\xef\" + // 0x0292030C: 0x000001EF\n\t\"\\x00j\\x03\\f\\x00\\x00\\x01\\xf0\" + // 0x006A030C: 0x000001F0\n\t\"\\x00G\\x03\\x01\\x00\\x00\\x01\\xf4\" + // 0x00470301: 0x000001F4\n\t\"\\x00g\\x03\\x01\\x00\\x00\\x01\\xf5\" + // 0x00670301: 0x000001F5\n\t\"\\x00N\\x03\\x00\\x00\\x00\\x01\\xf8\" + // 0x004E0300: 0x000001F8\n\t\"\\x00n\\x03\\x00\\x00\\x00\\x01\\xf9\" + // 0x006E0300: 0x000001F9\n\t\"\\x00\\xc5\\x03\\x01\\x00\\x00\\x01\\xfa\" + // 0x00C50301: 0x000001FA\n\t\"\\x00\\xe5\\x03\\x01\\x00\\x00\\x01\\xfb\" + // 0x00E50301: 0x000001FB\n\t\"\\x00\\xc6\\x03\\x01\\x00\\x00\\x01\\xfc\" + // 0x00C60301: 0x000001FC\n\t\"\\x00\\xe6\\x03\\x01\\x00\\x00\\x01\\xfd\" + // 0x00E60301: 0x000001FD\n\t\"\\x00\\xd8\\x03\\x01\\x00\\x00\\x01\\xfe\" + // 0x00D80301: 0x000001FE\n\t\"\\x00\\xf8\\x03\\x01\\x00\\x00\\x01\\xff\" + // 0x00F80301: 0x000001FF\n\t\"\\x00A\\x03\\x0f\\x00\\x00\\x02\\x00\" + // 0x0041030F: 0x00000200\n\t\"\\x00a\\x03\\x0f\\x00\\x00\\x02\\x01\" + // 0x0061030F: 0x00000201\n\t\"\\x00A\\x03\\x11\\x00\\x00\\x02\\x02\" + // 0x00410311: 0x00000202\n\t\"\\x00a\\x03\\x11\\x00\\x00\\x02\\x03\" + // 0x00610311: 0x00000203\n\t\"\\x00E\\x03\\x0f\\x00\\x00\\x02\\x04\" + // 0x0045030F: 0x00000204\n\t\"\\x00e\\x03\\x0f\\x00\\x00\\x02\\x05\" + // 0x0065030F: 0x00000205\n\t\"\\x00E\\x03\\x11\\x00\\x00\\x02\\x06\" + // 0x00450311: 0x00000206\n\t\"\\x00e\\x03\\x11\\x00\\x00\\x02\\a\" + // 0x00650311: 0x00000207\n\t\"\\x00I\\x03\\x0f\\x00\\x00\\x02\\b\" + // 0x0049030F: 0x00000208\n\t\"\\x00i\\x03\\x0f\\x00\\x00\\x02\\t\" + // 0x0069030F: 0x00000209\n\t\"\\x00I\\x03\\x11\\x00\\x00\\x02\\n\" + // 0x00490311: 0x0000020A\n\t\"\\x00i\\x03\\x11\\x00\\x00\\x02\\v\" + // 0x00690311: 0x0000020B\n\t\"\\x00O\\x03\\x0f\\x00\\x00\\x02\\f\" + // 0x004F030F: 0x0000020C\n\t\"\\x00o\\x03\\x0f\\x00\\x00\\x02\\r\" + // 0x006F030F: 0x0000020D\n\t\"\\x00O\\x03\\x11\\x00\\x00\\x02\\x0e\" + // 0x004F0311: 0x0000020E\n\t\"\\x00o\\x03\\x11\\x00\\x00\\x02\\x0f\" + // 0x006F0311: 0x0000020F\n\t\"\\x00R\\x03\\x0f\\x00\\x00\\x02\\x10\" + // 0x0052030F: 0x00000210\n\t\"\\x00r\\x03\\x0f\\x00\\x00\\x02\\x11\" + // 0x0072030F: 0x00000211\n\t\"\\x00R\\x03\\x11\\x00\\x00\\x02\\x12\" + // 0x00520311: 0x00000212\n\t\"\\x00r\\x03\\x11\\x00\\x00\\x02\\x13\" + // 0x00720311: 0x00000213\n\t\"\\x00U\\x03\\x0f\\x00\\x00\\x02\\x14\" + // 0x0055030F: 0x00000214\n\t\"\\x00u\\x03\\x0f\\x00\\x00\\x02\\x15\" + // 0x0075030F: 0x00000215\n\t\"\\x00U\\x03\\x11\\x00\\x00\\x02\\x16\" + // 0x00550311: 0x00000216\n\t\"\\x00u\\x03\\x11\\x00\\x00\\x02\\x17\" + // 0x00750311: 0x00000217\n\t\"\\x00S\\x03&\\x00\\x00\\x02\\x18\" + // 0x00530326: 0x00000218\n\t\"\\x00s\\x03&\\x00\\x00\\x02\\x19\" + // 0x00730326: 0x00000219\n\t\"\\x00T\\x03&\\x00\\x00\\x02\\x1a\" + // 0x00540326: 0x0000021A\n\t\"\\x00t\\x03&\\x00\\x00\\x02\\x1b\" + // 0x00740326: 0x0000021B\n\t\"\\x00H\\x03\\f\\x00\\x00\\x02\\x1e\" + // 0x0048030C: 0x0000021E\n\t\"\\x00h\\x03\\f\\x00\\x00\\x02\\x1f\" + // 0x0068030C: 0x0000021F\n\t\"\\x00A\\x03\\a\\x00\\x00\\x02&\" + // 0x00410307: 0x00000226\n\t\"\\x00a\\x03\\a\\x00\\x00\\x02'\" + // 0x00610307: 0x00000227\n\t\"\\x00E\\x03'\\x00\\x00\\x02(\" + // 0x00450327: 0x00000228\n\t\"\\x00e\\x03'\\x00\\x00\\x02)\" + // 0x00650327: 0x00000229\n\t\"\\x00\\xd6\\x03\\x04\\x00\\x00\\x02*\" + // 0x00D60304: 0x0000022A\n\t\"\\x00\\xf6\\x03\\x04\\x00\\x00\\x02+\" + // 0x00F60304: 0x0000022B\n\t\"\\x00\\xd5\\x03\\x04\\x00\\x00\\x02,\" + // 0x00D50304: 0x0000022C\n\t\"\\x00\\xf5\\x03\\x04\\x00\\x00\\x02-\" + // 0x00F50304: 0x0000022D\n\t\"\\x00O\\x03\\a\\x00\\x00\\x02.\" + // 0x004F0307: 0x0000022E\n\t\"\\x00o\\x03\\a\\x00\\x00\\x02/\" + // 0x006F0307: 0x0000022F\n\t\"\\x02.\\x03\\x04\\x00\\x00\\x020\" + // 0x022E0304: 0x00000230\n\t\"\\x02/\\x03\\x04\\x00\\x00\\x021\" + // 0x022F0304: 0x00000231\n\t\"\\x00Y\\x03\\x04\\x00\\x00\\x022\" + // 0x00590304: 0x00000232\n\t\"\\x00y\\x03\\x04\\x00\\x00\\x023\" + // 0x00790304: 0x00000233\n\t\"\\x00\\xa8\\x03\\x01\\x00\\x00\\x03\\x85\" + // 0x00A80301: 0x00000385\n\t\"\\x03\\x91\\x03\\x01\\x00\\x00\\x03\\x86\" + // 0x03910301: 0x00000386\n\t\"\\x03\\x95\\x03\\x01\\x00\\x00\\x03\\x88\" + // 0x03950301: 0x00000388\n\t\"\\x03\\x97\\x03\\x01\\x00\\x00\\x03\\x89\" + // 0x03970301: 0x00000389\n\t\"\\x03\\x99\\x03\\x01\\x00\\x00\\x03\\x8a\" + // 0x03990301: 0x0000038A\n\t\"\\x03\\x9f\\x03\\x01\\x00\\x00\\x03\\x8c\" + // 0x039F0301: 0x0000038C\n\t\"\\x03\\xa5\\x03\\x01\\x00\\x00\\x03\\x8e\" + // 0x03A50301: 0x0000038E\n\t\"\\x03\\xa9\\x03\\x01\\x00\\x00\\x03\\x8f\" + // 0x03A90301: 0x0000038F\n\t\"\\x03\\xca\\x03\\x01\\x00\\x00\\x03\\x90\" + // 0x03CA0301: 0x00000390\n\t\"\\x03\\x99\\x03\\b\\x00\\x00\\x03\\xaa\" + // 0x03990308: 0x000003AA\n\t\"\\x03\\xa5\\x03\\b\\x00\\x00\\x03\\xab\" + // 0x03A50308: 0x000003AB\n\t\"\\x03\\xb1\\x03\\x01\\x00\\x00\\x03\\xac\" + // 0x03B10301: 0x000003AC\n\t\"\\x03\\xb5\\x03\\x01\\x00\\x00\\x03\\xad\" + // 0x03B50301: 0x000003AD\n\t\"\\x03\\xb7\\x03\\x01\\x00\\x00\\x03\\xae\" + // 0x03B70301: 0x000003AE\n\t\"\\x03\\xb9\\x03\\x01\\x00\\x00\\x03\\xaf\" + // 0x03B90301: 0x000003AF\n\t\"\\x03\\xcb\\x03\\x01\\x00\\x00\\x03\\xb0\" + // 0x03CB0301: 0x000003B0\n\t\"\\x03\\xb9\\x03\\b\\x00\\x00\\x03\\xca\" + // 0x03B90308: 0x000003CA\n\t\"\\x03\\xc5\\x03\\b\\x00\\x00\\x03\\xcb\" + // 0x03C50308: 0x000003CB\n\t\"\\x03\\xbf\\x03\\x01\\x00\\x00\\x03\\xcc\" + // 0x03BF0301: 0x000003CC\n\t\"\\x03\\xc5\\x03\\x01\\x00\\x00\\x03\\xcd\" + // 0x03C50301: 0x000003CD\n\t\"\\x03\\xc9\\x03\\x01\\x00\\x00\\x03\\xce\" + // 0x03C90301: 0x000003CE\n\t\"\\x03\\xd2\\x03\\x01\\x00\\x00\\x03\\xd3\" + // 0x03D20301: 0x000003D3\n\t\"\\x03\\xd2\\x03\\b\\x00\\x00\\x03\\xd4\" + // 0x03D20308: 0x000003D4\n\t\"\\x04\\x15\\x03\\x00\\x00\\x00\\x04\\x00\" + // 0x04150300: 0x00000400\n\t\"\\x04\\x15\\x03\\b\\x00\\x00\\x04\\x01\" + // 0x04150308: 0x00000401\n\t\"\\x04\\x13\\x03\\x01\\x00\\x00\\x04\\x03\" + // 0x04130301: 0x00000403\n\t\"\\x04\\x06\\x03\\b\\x00\\x00\\x04\\a\" + // 0x04060308: 0x00000407\n\t\"\\x04\\x1a\\x03\\x01\\x00\\x00\\x04\\f\" + // 0x041A0301: 0x0000040C\n\t\"\\x04\\x18\\x03\\x00\\x00\\x00\\x04\\r\" + // 0x04180300: 0x0000040D\n\t\"\\x04#\\x03\\x06\\x00\\x00\\x04\\x0e\" + // 0x04230306: 0x0000040E\n\t\"\\x04\\x18\\x03\\x06\\x00\\x00\\x04\\x19\" + // 0x04180306: 0x00000419\n\t\"\\x048\\x03\\x06\\x00\\x00\\x049\" + // 0x04380306: 0x00000439\n\t\"\\x045\\x03\\x00\\x00\\x00\\x04P\" + // 0x04350300: 0x00000450\n\t\"\\x045\\x03\\b\\x00\\x00\\x04Q\" + // 0x04350308: 0x00000451\n\t\"\\x043\\x03\\x01\\x00\\x00\\x04S\" + // 0x04330301: 0x00000453\n\t\"\\x04V\\x03\\b\\x00\\x00\\x04W\" + // 0x04560308: 0x00000457\n\t\"\\x04:\\x03\\x01\\x00\\x00\\x04\\\\\" + // 0x043A0301: 0x0000045C\n\t\"\\x048\\x03\\x00\\x00\\x00\\x04]\" + // 0x04380300: 0x0000045D\n\t\"\\x04C\\x03\\x06\\x00\\x00\\x04^\" + // 0x04430306: 0x0000045E\n\t\"\\x04t\\x03\\x0f\\x00\\x00\\x04v\" + // 0x0474030F: 0x00000476\n\t\"\\x04u\\x03\\x0f\\x00\\x00\\x04w\" + // 0x0475030F: 0x00000477\n\t\"\\x04\\x16\\x03\\x06\\x00\\x00\\x04\\xc1\" + // 0x04160306: 0x000004C1\n\t\"\\x046\\x03\\x06\\x00\\x00\\x04\\xc2\" + // 0x04360306: 0x000004C2\n\t\"\\x04\\x10\\x03\\x06\\x00\\x00\\x04\\xd0\" + // 0x04100306: 0x000004D0\n\t\"\\x040\\x03\\x06\\x00\\x00\\x04\\xd1\" + // 0x04300306: 0x000004D1\n\t\"\\x04\\x10\\x03\\b\\x00\\x00\\x04\\xd2\" + // 0x04100308: 0x000004D2\n\t\"\\x040\\x03\\b\\x00\\x00\\x04\\xd3\" + // 0x04300308: 0x000004D3\n\t\"\\x04\\x15\\x03\\x06\\x00\\x00\\x04\\xd6\" + // 0x04150306: 0x000004D6\n\t\"\\x045\\x03\\x06\\x00\\x00\\x04\\xd7\" + // 0x04350306: 0x000004D7\n\t\"\\x04\\xd8\\x03\\b\\x00\\x00\\x04\\xda\" + // 0x04D80308: 0x000004DA\n\t\"\\x04\\xd9\\x03\\b\\x00\\x00\\x04\\xdb\" + // 0x04D90308: 0x000004DB\n\t\"\\x04\\x16\\x03\\b\\x00\\x00\\x04\\xdc\" + // 0x04160308: 0x000004DC\n\t\"\\x046\\x03\\b\\x00\\x00\\x04\\xdd\" + // 0x04360308: 0x000004DD\n\t\"\\x04\\x17\\x03\\b\\x00\\x00\\x04\\xde\" + // 0x04170308: 0x000004DE\n\t\"\\x047\\x03\\b\\x00\\x00\\x04\\xdf\" + // 0x04370308: 0x000004DF\n\t\"\\x04\\x18\\x03\\x04\\x00\\x00\\x04\\xe2\" + // 0x04180304: 0x000004E2\n\t\"\\x048\\x03\\x04\\x00\\x00\\x04\\xe3\" + // 0x04380304: 0x000004E3\n\t\"\\x04\\x18\\x03\\b\\x00\\x00\\x04\\xe4\" + // 0x04180308: 0x000004E4\n\t\"\\x048\\x03\\b\\x00\\x00\\x04\\xe5\" + // 0x04380308: 0x000004E5\n\t\"\\x04\\x1e\\x03\\b\\x00\\x00\\x04\\xe6\" + // 0x041E0308: 0x000004E6\n\t\"\\x04>\\x03\\b\\x00\\x00\\x04\\xe7\" + // 0x043E0308: 0x000004E7\n\t\"\\x04\\xe8\\x03\\b\\x00\\x00\\x04\\xea\" + // 0x04E80308: 0x000004EA\n\t\"\\x04\\xe9\\x03\\b\\x00\\x00\\x04\\xeb\" + // 0x04E90308: 0x000004EB\n\t\"\\x04-\\x03\\b\\x00\\x00\\x04\\xec\" + // 0x042D0308: 0x000004EC\n\t\"\\x04M\\x03\\b\\x00\\x00\\x04\\xed\" + // 0x044D0308: 0x000004ED\n\t\"\\x04#\\x03\\x04\\x00\\x00\\x04\\xee\" + // 0x04230304: 0x000004EE\n\t\"\\x04C\\x03\\x04\\x00\\x00\\x04\\xef\" + // 0x04430304: 0x000004EF\n\t\"\\x04#\\x03\\b\\x00\\x00\\x04\\xf0\" + // 0x04230308: 0x000004F0\n\t\"\\x04C\\x03\\b\\x00\\x00\\x04\\xf1\" + // 0x04430308: 0x000004F1\n\t\"\\x04#\\x03\\v\\x00\\x00\\x04\\xf2\" + // 0x0423030B: 0x000004F2\n\t\"\\x04C\\x03\\v\\x00\\x00\\x04\\xf3\" + // 0x0443030B: 0x000004F3\n\t\"\\x04'\\x03\\b\\x00\\x00\\x04\\xf4\" + // 0x04270308: 0x000004F4\n\t\"\\x04G\\x03\\b\\x00\\x00\\x04\\xf5\" + // 0x04470308: 0x000004F5\n\t\"\\x04+\\x03\\b\\x00\\x00\\x04\\xf8\" + // 0x042B0308: 0x000004F8\n\t\"\\x04K\\x03\\b\\x00\\x00\\x04\\xf9\" + // 0x044B0308: 0x000004F9\n\t\"\\x06'\\x06S\\x00\\x00\\x06\\\"\" + // 0x06270653: 0x00000622\n\t\"\\x06'\\x06T\\x00\\x00\\x06#\" + // 0x06270654: 0x00000623\n\t\"\\x06H\\x06T\\x00\\x00\\x06$\" + // 0x06480654: 0x00000624\n\t\"\\x06'\\x06U\\x00\\x00\\x06%\" + // 0x06270655: 0x00000625\n\t\"\\x06J\\x06T\\x00\\x00\\x06&\" + // 0x064A0654: 0x00000626\n\t\"\\x06\\xd5\\x06T\\x00\\x00\\x06\\xc0\" + // 0x06D50654: 0x000006C0\n\t\"\\x06\\xc1\\x06T\\x00\\x00\\x06\\xc2\" + // 0x06C10654: 0x000006C2\n\t\"\\x06\\xd2\\x06T\\x00\\x00\\x06\\xd3\" + // 0x06D20654: 0x000006D3\n\t\"\\t(\\t<\\x00\\x00\\t)\" + // 0x0928093C: 0x00000929\n\t\"\\t0\\t<\\x00\\x00\\t1\" + // 0x0930093C: 0x00000931\n\t\"\\t3\\t<\\x00\\x00\\t4\" + // 0x0933093C: 0x00000934\n\t\"\\t\\xc7\\t\\xbe\\x00\\x00\\t\\xcb\" + // 0x09C709BE: 0x000009CB\n\t\"\\t\\xc7\\t\\xd7\\x00\\x00\\t\\xcc\" + // 0x09C709D7: 0x000009CC\n\t\"\\vG\\vV\\x00\\x00\\vH\" + // 0x0B470B56: 0x00000B48\n\t\"\\vG\\v>\\x00\\x00\\vK\" + // 0x0B470B3E: 0x00000B4B\n\t\"\\vG\\vW\\x00\\x00\\vL\" + // 0x0B470B57: 0x00000B4C\n\t\"\\v\\x92\\v\\xd7\\x00\\x00\\v\\x94\" + // 0x0B920BD7: 0x00000B94\n\t\"\\v\\xc6\\v\\xbe\\x00\\x00\\v\\xca\" + // 0x0BC60BBE: 0x00000BCA\n\t\"\\v\\xc7\\v\\xbe\\x00\\x00\\v\\xcb\" + // 0x0BC70BBE: 0x00000BCB\n\t\"\\v\\xc6\\v\\xd7\\x00\\x00\\v\\xcc\" + // 0x0BC60BD7: 0x00000BCC\n\t\"\\fF\\fV\\x00\\x00\\fH\" + // 0x0C460C56: 0x00000C48\n\t\"\\f\\xbf\\f\\xd5\\x00\\x00\\f\\xc0\" + // 0x0CBF0CD5: 0x00000CC0\n\t\"\\f\\xc6\\f\\xd5\\x00\\x00\\f\\xc7\" + // 0x0CC60CD5: 0x00000CC7\n\t\"\\f\\xc6\\f\\xd6\\x00\\x00\\f\\xc8\" + // 0x0CC60CD6: 0x00000CC8\n\t\"\\f\\xc6\\f\\xc2\\x00\\x00\\f\\xca\" + // 0x0CC60CC2: 0x00000CCA\n\t\"\\f\\xca\\f\\xd5\\x00\\x00\\f\\xcb\" + // 0x0CCA0CD5: 0x00000CCB\n\t\"\\rF\\r>\\x00\\x00\\rJ\" + // 0x0D460D3E: 0x00000D4A\n\t\"\\rG\\r>\\x00\\x00\\rK\" + // 0x0D470D3E: 0x00000D4B\n\t\"\\rF\\rW\\x00\\x00\\rL\" + // 0x0D460D57: 0x00000D4C\n\t\"\\r\\xd9\\r\\xca\\x00\\x00\\r\\xda\" + // 0x0DD90DCA: 0x00000DDA\n\t\"\\r\\xd9\\r\\xcf\\x00\\x00\\r\\xdc\" + // 0x0DD90DCF: 0x00000DDC\n\t\"\\r\\xdc\\r\\xca\\x00\\x00\\r\\xdd\" + // 0x0DDC0DCA: 0x00000DDD\n\t\"\\r\\xd9\\r\\xdf\\x00\\x00\\r\\xde\" + // 0x0DD90DDF: 0x00000DDE\n\t\"\\x10%\\x10.\\x00\\x00\\x10&\" + // 0x1025102E: 0x00001026\n\t\"\\x1b\\x05\\x1b5\\x00\\x00\\x1b\\x06\" + // 0x1B051B35: 0x00001B06\n\t\"\\x1b\\a\\x1b5\\x00\\x00\\x1b\\b\" + // 0x1B071B35: 0x00001B08\n\t\"\\x1b\\t\\x1b5\\x00\\x00\\x1b\\n\" + // 0x1B091B35: 0x00001B0A\n\t\"\\x1b\\v\\x1b5\\x00\\x00\\x1b\\f\" + // 0x1B0B1B35: 0x00001B0C\n\t\"\\x1b\\r\\x1b5\\x00\\x00\\x1b\\x0e\" + // 0x1B0D1B35: 0x00001B0E\n\t\"\\x1b\\x11\\x1b5\\x00\\x00\\x1b\\x12\" + // 0x1B111B35: 0x00001B12\n\t\"\\x1b:\\x1b5\\x00\\x00\\x1b;\" + // 0x1B3A1B35: 0x00001B3B\n\t\"\\x1b<\\x1b5\\x00\\x00\\x1b=\" + // 0x1B3C1B35: 0x00001B3D\n\t\"\\x1b>\\x1b5\\x00\\x00\\x1b@\" + // 0x1B3E1B35: 0x00001B40\n\t\"\\x1b?\\x1b5\\x00\\x00\\x1bA\" + // 0x1B3F1B35: 0x00001B41\n\t\"\\x1bB\\x1b5\\x00\\x00\\x1bC\" + // 0x1B421B35: 0x00001B43\n\t\"\\x00A\\x03%\\x00\\x00\\x1e\\x00\" + // 0x00410325: 0x00001E00\n\t\"\\x00a\\x03%\\x00\\x00\\x1e\\x01\" + // 0x00610325: 0x00001E01\n\t\"\\x00B\\x03\\a\\x00\\x00\\x1e\\x02\" + // 0x00420307: 0x00001E02\n\t\"\\x00b\\x03\\a\\x00\\x00\\x1e\\x03\" + // 0x00620307: 0x00001E03\n\t\"\\x00B\\x03#\\x00\\x00\\x1e\\x04\" + // 0x00420323: 0x00001E04\n\t\"\\x00b\\x03#\\x00\\x00\\x1e\\x05\" + // 0x00620323: 0x00001E05\n\t\"\\x00B\\x031\\x00\\x00\\x1e\\x06\" + // 0x00420331: 0x00001E06\n\t\"\\x00b\\x031\\x00\\x00\\x1e\\a\" + // 0x00620331: 0x00001E07\n\t\"\\x00\\xc7\\x03\\x01\\x00\\x00\\x1e\\b\" + // 0x00C70301: 0x00001E08\n\t\"\\x00\\xe7\\x03\\x01\\x00\\x00\\x1e\\t\" + // 0x00E70301: 0x00001E09\n\t\"\\x00D\\x03\\a\\x00\\x00\\x1e\\n\" + // 0x00440307: 0x00001E0A\n\t\"\\x00d\\x03\\a\\x00\\x00\\x1e\\v\" + // 0x00640307: 0x00001E0B\n\t\"\\x00D\\x03#\\x00\\x00\\x1e\\f\" + // 0x00440323: 0x00001E0C\n\t\"\\x00d\\x03#\\x00\\x00\\x1e\\r\" + // 0x00640323: 0x00001E0D\n\t\"\\x00D\\x031\\x00\\x00\\x1e\\x0e\" + // 0x00440331: 0x00001E0E\n\t\"\\x00d\\x031\\x00\\x00\\x1e\\x0f\" + // 0x00640331: 0x00001E0F\n\t\"\\x00D\\x03'\\x00\\x00\\x1e\\x10\" + // 0x00440327: 0x00001E10\n\t\"\\x00d\\x03'\\x00\\x00\\x1e\\x11\" + // 0x00640327: 0x00001E11\n\t\"\\x00D\\x03-\\x00\\x00\\x1e\\x12\" + // 0x0044032D: 0x00001E12\n\t\"\\x00d\\x03-\\x00\\x00\\x1e\\x13\" + // 0x0064032D: 0x00001E13\n\t\"\\x01\\x12\\x03\\x00\\x00\\x00\\x1e\\x14\" + // 0x01120300: 0x00001E14\n\t\"\\x01\\x13\\x03\\x00\\x00\\x00\\x1e\\x15\" + // 0x01130300: 0x00001E15\n\t\"\\x01\\x12\\x03\\x01\\x00\\x00\\x1e\\x16\" + // 0x01120301: 0x00001E16\n\t\"\\x01\\x13\\x03\\x01\\x00\\x00\\x1e\\x17\" + // 0x01130301: 0x00001E17\n\t\"\\x00E\\x03-\\x00\\x00\\x1e\\x18\" + // 0x0045032D: 0x00001E18\n\t\"\\x00e\\x03-\\x00\\x00\\x1e\\x19\" + // 0x0065032D: 0x00001E19\n\t\"\\x00E\\x030\\x00\\x00\\x1e\\x1a\" + // 0x00450330: 0x00001E1A\n\t\"\\x00e\\x030\\x00\\x00\\x1e\\x1b\" + // 0x00650330: 0x00001E1B\n\t\"\\x02(\\x03\\x06\\x00\\x00\\x1e\\x1c\" + // 0x02280306: 0x00001E1C\n\t\"\\x02)\\x03\\x06\\x00\\x00\\x1e\\x1d\" + // 0x02290306: 0x00001E1D\n\t\"\\x00F\\x03\\a\\x00\\x00\\x1e\\x1e\" + // 0x00460307: 0x00001E1E\n\t\"\\x00f\\x03\\a\\x00\\x00\\x1e\\x1f\" + // 0x00660307: 0x00001E1F\n\t\"\\x00G\\x03\\x04\\x00\\x00\\x1e \" + // 0x00470304: 0x00001E20\n\t\"\\x00g\\x03\\x04\\x00\\x00\\x1e!\" + // 0x00670304: 0x00001E21\n\t\"\\x00H\\x03\\a\\x00\\x00\\x1e\\\"\" + // 0x00480307: 0x00001E22\n\t\"\\x00h\\x03\\a\\x00\\x00\\x1e#\" + // 0x00680307: 0x00001E23\n\t\"\\x00H\\x03#\\x00\\x00\\x1e$\" + // 0x00480323: 0x00001E24\n\t\"\\x00h\\x03#\\x00\\x00\\x1e%\" + // 0x00680323: 0x00001E25\n\t\"\\x00H\\x03\\b\\x00\\x00\\x1e&\" + // 0x00480308: 0x00001E26\n\t\"\\x00h\\x03\\b\\x00\\x00\\x1e'\" + // 0x00680308: 0x00001E27\n\t\"\\x00H\\x03'\\x00\\x00\\x1e(\" + // 0x00480327: 0x00001E28\n\t\"\\x00h\\x03'\\x00\\x00\\x1e)\" + // 0x00680327: 0x00001E29\n\t\"\\x00H\\x03.\\x00\\x00\\x1e*\" + // 0x0048032E: 0x00001E2A\n\t\"\\x00h\\x03.\\x00\\x00\\x1e+\" + // 0x0068032E: 0x00001E2B\n\t\"\\x00I\\x030\\x00\\x00\\x1e,\" + // 0x00490330: 0x00001E2C\n\t\"\\x00i\\x030\\x00\\x00\\x1e-\" + // 0x00690330: 0x00001E2D\n\t\"\\x00\\xcf\\x03\\x01\\x00\\x00\\x1e.\" + // 0x00CF0301: 0x00001E2E\n\t\"\\x00\\xef\\x03\\x01\\x00\\x00\\x1e/\" + // 0x00EF0301: 0x00001E2F\n\t\"\\x00K\\x03\\x01\\x00\\x00\\x1e0\" + // 0x004B0301: 0x00001E30\n\t\"\\x00k\\x03\\x01\\x00\\x00\\x1e1\" + // 0x006B0301: 0x00001E31\n\t\"\\x00K\\x03#\\x00\\x00\\x1e2\" + // 0x004B0323: 0x00001E32\n\t\"\\x00k\\x03#\\x00\\x00\\x1e3\" + // 0x006B0323: 0x00001E33\n\t\"\\x00K\\x031\\x00\\x00\\x1e4\" + // 0x004B0331: 0x00001E34\n\t\"\\x00k\\x031\\x00\\x00\\x1e5\" + // 0x006B0331: 0x00001E35\n\t\"\\x00L\\x03#\\x00\\x00\\x1e6\" + // 0x004C0323: 0x00001E36\n\t\"\\x00l\\x03#\\x00\\x00\\x1e7\" + // 0x006C0323: 0x00001E37\n\t\"\\x1e6\\x03\\x04\\x00\\x00\\x1e8\" + // 0x1E360304: 0x00001E38\n\t\"\\x1e7\\x03\\x04\\x00\\x00\\x1e9\" + // 0x1E370304: 0x00001E39\n\t\"\\x00L\\x031\\x00\\x00\\x1e:\" + // 0x004C0331: 0x00001E3A\n\t\"\\x00l\\x031\\x00\\x00\\x1e;\" + // 0x006C0331: 0x00001E3B\n\t\"\\x00L\\x03-\\x00\\x00\\x1e<\" + // 0x004C032D: 0x00001E3C\n\t\"\\x00l\\x03-\\x00\\x00\\x1e=\" + // 0x006C032D: 0x00001E3D\n\t\"\\x00M\\x03\\x01\\x00\\x00\\x1e>\" + // 0x004D0301: 0x00001E3E\n\t\"\\x00m\\x03\\x01\\x00\\x00\\x1e?\" + // 0x006D0301: 0x00001E3F\n\t\"\\x00M\\x03\\a\\x00\\x00\\x1e@\" + // 0x004D0307: 0x00001E40\n\t\"\\x00m\\x03\\a\\x00\\x00\\x1eA\" + // 0x006D0307: 0x00001E41\n\t\"\\x00M\\x03#\\x00\\x00\\x1eB\" + // 0x004D0323: 0x00001E42\n\t\"\\x00m\\x03#\\x00\\x00\\x1eC\" + // 0x006D0323: 0x00001E43\n\t\"\\x00N\\x03\\a\\x00\\x00\\x1eD\" + // 0x004E0307: 0x00001E44\n\t\"\\x00n\\x03\\a\\x00\\x00\\x1eE\" + // 0x006E0307: 0x00001E45\n\t\"\\x00N\\x03#\\x00\\x00\\x1eF\" + // 0x004E0323: 0x00001E46\n\t\"\\x00n\\x03#\\x00\\x00\\x1eG\" + // 0x006E0323: 0x00001E47\n\t\"\\x00N\\x031\\x00\\x00\\x1eH\" + // 0x004E0331: 0x00001E48\n\t\"\\x00n\\x031\\x00\\x00\\x1eI\" + // 0x006E0331: 0x00001E49\n\t\"\\x00N\\x03-\\x00\\x00\\x1eJ\" + // 0x004E032D: 0x00001E4A\n\t\"\\x00n\\x03-\\x00\\x00\\x1eK\" + // 0x006E032D: 0x00001E4B\n\t\"\\x00\\xd5\\x03\\x01\\x00\\x00\\x1eL\" + // 0x00D50301: 0x00001E4C\n\t\"\\x00\\xf5\\x03\\x01\\x00\\x00\\x1eM\" + // 0x00F50301: 0x00001E4D\n\t\"\\x00\\xd5\\x03\\b\\x00\\x00\\x1eN\" + // 0x00D50308: 0x00001E4E\n\t\"\\x00\\xf5\\x03\\b\\x00\\x00\\x1eO\" + // 0x00F50308: 0x00001E4F\n\t\"\\x01L\\x03\\x00\\x00\\x00\\x1eP\" + // 0x014C0300: 0x00001E50\n\t\"\\x01M\\x03\\x00\\x00\\x00\\x1eQ\" + // 0x014D0300: 0x00001E51\n\t\"\\x01L\\x03\\x01\\x00\\x00\\x1eR\" + // 0x014C0301: 0x00001E52\n\t\"\\x01M\\x03\\x01\\x00\\x00\\x1eS\" + // 0x014D0301: 0x00001E53\n\t\"\\x00P\\x03\\x01\\x00\\x00\\x1eT\" + // 0x00500301: 0x00001E54\n\t\"\\x00p\\x03\\x01\\x00\\x00\\x1eU\" + // 0x00700301: 0x00001E55\n\t\"\\x00P\\x03\\a\\x00\\x00\\x1eV\" + // 0x00500307: 0x00001E56\n\t\"\\x00p\\x03\\a\\x00\\x00\\x1eW\" + // 0x00700307: 0x00001E57\n\t\"\\x00R\\x03\\a\\x00\\x00\\x1eX\" + // 0x00520307: 0x00001E58\n\t\"\\x00r\\x03\\a\\x00\\x00\\x1eY\" + // 0x00720307: 0x00001E59\n\t\"\\x00R\\x03#\\x00\\x00\\x1eZ\" + // 0x00520323: 0x00001E5A\n\t\"\\x00r\\x03#\\x00\\x00\\x1e[\" + // 0x00720323: 0x00001E5B\n\t\"\\x1eZ\\x03\\x04\\x00\\x00\\x1e\\\\\" + // 0x1E5A0304: 0x00001E5C\n\t\"\\x1e[\\x03\\x04\\x00\\x00\\x1e]\" + // 0x1E5B0304: 0x00001E5D\n\t\"\\x00R\\x031\\x00\\x00\\x1e^\" + // 0x00520331: 0x00001E5E\n\t\"\\x00r\\x031\\x00\\x00\\x1e_\" + // 0x00720331: 0x00001E5F\n\t\"\\x00S\\x03\\a\\x00\\x00\\x1e`\" + // 0x00530307: 0x00001E60\n\t\"\\x00s\\x03\\a\\x00\\x00\\x1ea\" + // 0x00730307: 0x00001E61\n\t\"\\x00S\\x03#\\x00\\x00\\x1eb\" + // 0x00530323: 0x00001E62\n\t\"\\x00s\\x03#\\x00\\x00\\x1ec\" + // 0x00730323: 0x00001E63\n\t\"\\x01Z\\x03\\a\\x00\\x00\\x1ed\" + // 0x015A0307: 0x00001E64\n\t\"\\x01[\\x03\\a\\x00\\x00\\x1ee\" + // 0x015B0307: 0x00001E65\n\t\"\\x01`\\x03\\a\\x00\\x00\\x1ef\" + // 0x01600307: 0x00001E66\n\t\"\\x01a\\x03\\a\\x00\\x00\\x1eg\" + // 0x01610307: 0x00001E67\n\t\"\\x1eb\\x03\\a\\x00\\x00\\x1eh\" + // 0x1E620307: 0x00001E68\n\t\"\\x1ec\\x03\\a\\x00\\x00\\x1ei\" + // 0x1E630307: 0x00001E69\n\t\"\\x00T\\x03\\a\\x00\\x00\\x1ej\" + // 0x00540307: 0x00001E6A\n\t\"\\x00t\\x03\\a\\x00\\x00\\x1ek\" + // 0x00740307: 0x00001E6B\n\t\"\\x00T\\x03#\\x00\\x00\\x1el\" + // 0x00540323: 0x00001E6C\n\t\"\\x00t\\x03#\\x00\\x00\\x1em\" + // 0x00740323: 0x00001E6D\n\t\"\\x00T\\x031\\x00\\x00\\x1en\" + // 0x00540331: 0x00001E6E\n\t\"\\x00t\\x031\\x00\\x00\\x1eo\" + // 0x00740331: 0x00001E6F\n\t\"\\x00T\\x03-\\x00\\x00\\x1ep\" + // 0x0054032D: 0x00001E70\n\t\"\\x00t\\x03-\\x00\\x00\\x1eq\" + // 0x0074032D: 0x00001E71\n\t\"\\x00U\\x03$\\x00\\x00\\x1er\" + // 0x00550324: 0x00001E72\n\t\"\\x00u\\x03$\\x00\\x00\\x1es\" + // 0x00750324: 0x00001E73\n\t\"\\x00U\\x030\\x00\\x00\\x1et\" + // 0x00550330: 0x00001E74\n\t\"\\x00u\\x030\\x00\\x00\\x1eu\" + // 0x00750330: 0x00001E75\n\t\"\\x00U\\x03-\\x00\\x00\\x1ev\" + // 0x0055032D: 0x00001E76\n\t\"\\x00u\\x03-\\x00\\x00\\x1ew\" + // 0x0075032D: 0x00001E77\n\t\"\\x01h\\x03\\x01\\x00\\x00\\x1ex\" + // 0x01680301: 0x00001E78\n\t\"\\x01i\\x03\\x01\\x00\\x00\\x1ey\" + // 0x01690301: 0x00001E79\n\t\"\\x01j\\x03\\b\\x00\\x00\\x1ez\" + // 0x016A0308: 0x00001E7A\n\t\"\\x01k\\x03\\b\\x00\\x00\\x1e{\" + // 0x016B0308: 0x00001E7B\n\t\"\\x00V\\x03\\x03\\x00\\x00\\x1e|\" + // 0x00560303: 0x00001E7C\n\t\"\\x00v\\x03\\x03\\x00\\x00\\x1e}\" + // 0x00760303: 0x00001E7D\n\t\"\\x00V\\x03#\\x00\\x00\\x1e~\" + // 0x00560323: 0x00001E7E\n\t\"\\x00v\\x03#\\x00\\x00\\x1e\\x7f\" + // 0x00760323: 0x00001E7F\n\t\"\\x00W\\x03\\x00\\x00\\x00\\x1e\\x80\" + // 0x00570300: 0x00001E80\n\t\"\\x00w\\x03\\x00\\x00\\x00\\x1e\\x81\" + // 0x00770300: 0x00001E81\n\t\"\\x00W\\x03\\x01\\x00\\x00\\x1e\\x82\" + // 0x00570301: 0x00001E82\n\t\"\\x00w\\x03\\x01\\x00\\x00\\x1e\\x83\" + // 0x00770301: 0x00001E83\n\t\"\\x00W\\x03\\b\\x00\\x00\\x1e\\x84\" + // 0x00570308: 0x00001E84\n\t\"\\x00w\\x03\\b\\x00\\x00\\x1e\\x85\" + // 0x00770308: 0x00001E85\n\t\"\\x00W\\x03\\a\\x00\\x00\\x1e\\x86\" + // 0x00570307: 0x00001E86\n\t\"\\x00w\\x03\\a\\x00\\x00\\x1e\\x87\" + // 0x00770307: 0x00001E87\n\t\"\\x00W\\x03#\\x00\\x00\\x1e\\x88\" + // 0x00570323: 0x00001E88\n\t\"\\x00w\\x03#\\x00\\x00\\x1e\\x89\" + // 0x00770323: 0x00001E89\n\t\"\\x00X\\x03\\a\\x00\\x00\\x1e\\x8a\" + // 0x00580307: 0x00001E8A\n\t\"\\x00x\\x03\\a\\x00\\x00\\x1e\\x8b\" + // 0x00780307: 0x00001E8B\n\t\"\\x00X\\x03\\b\\x00\\x00\\x1e\\x8c\" + // 0x00580308: 0x00001E8C\n\t\"\\x00x\\x03\\b\\x00\\x00\\x1e\\x8d\" + // 0x00780308: 0x00001E8D\n\t\"\\x00Y\\x03\\a\\x00\\x00\\x1e\\x8e\" + // 0x00590307: 0x00001E8E\n\t\"\\x00y\\x03\\a\\x00\\x00\\x1e\\x8f\" + // 0x00790307: 0x00001E8F\n\t\"\\x00Z\\x03\\x02\\x00\\x00\\x1e\\x90\" + // 0x005A0302: 0x00001E90\n\t\"\\x00z\\x03\\x02\\x00\\x00\\x1e\\x91\" + // 0x007A0302: 0x00001E91\n\t\"\\x00Z\\x03#\\x00\\x00\\x1e\\x92\" + // 0x005A0323: 0x00001E92\n\t\"\\x00z\\x03#\\x00\\x00\\x1e\\x93\" + // 0x007A0323: 0x00001E93\n\t\"\\x00Z\\x031\\x00\\x00\\x1e\\x94\" + // 0x005A0331: 0x00001E94\n\t\"\\x00z\\x031\\x00\\x00\\x1e\\x95\" + // 0x007A0331: 0x00001E95\n\t\"\\x00h\\x031\\x00\\x00\\x1e\\x96\" + // 0x00680331: 0x00001E96\n\t\"\\x00t\\x03\\b\\x00\\x00\\x1e\\x97\" + // 0x00740308: 0x00001E97\n\t\"\\x00w\\x03\\n\\x00\\x00\\x1e\\x98\" + // 0x0077030A: 0x00001E98\n\t\"\\x00y\\x03\\n\\x00\\x00\\x1e\\x99\" + // 0x0079030A: 0x00001E99\n\t\"\\x01\\x7f\\x03\\a\\x00\\x00\\x1e\\x9b\" + // 0x017F0307: 0x00001E9B\n\t\"\\x00A\\x03#\\x00\\x00\\x1e\\xa0\" + // 0x00410323: 0x00001EA0\n\t\"\\x00a\\x03#\\x00\\x00\\x1e\\xa1\" + // 0x00610323: 0x00001EA1\n\t\"\\x00A\\x03\\t\\x00\\x00\\x1e\\xa2\" + // 0x00410309: 0x00001EA2\n\t\"\\x00a\\x03\\t\\x00\\x00\\x1e\\xa3\" + // 0x00610309: 0x00001EA3\n\t\"\\x00\\xc2\\x03\\x01\\x00\\x00\\x1e\\xa4\" + // 0x00C20301: 0x00001EA4\n\t\"\\x00\\xe2\\x03\\x01\\x00\\x00\\x1e\\xa5\" + // 0x00E20301: 0x00001EA5\n\t\"\\x00\\xc2\\x03\\x00\\x00\\x00\\x1e\\xa6\" + // 0x00C20300: 0x00001EA6\n\t\"\\x00\\xe2\\x03\\x00\\x00\\x00\\x1e\\xa7\" + // 0x00E20300: 0x00001EA7\n\t\"\\x00\\xc2\\x03\\t\\x00\\x00\\x1e\\xa8\" + // 0x00C20309: 0x00001EA8\n\t\"\\x00\\xe2\\x03\\t\\x00\\x00\\x1e\\xa9\" + // 0x00E20309: 0x00001EA9\n\t\"\\x00\\xc2\\x03\\x03\\x00\\x00\\x1e\\xaa\" + // 0x00C20303: 0x00001EAA\n\t\"\\x00\\xe2\\x03\\x03\\x00\\x00\\x1e\\xab\" + // 0x00E20303: 0x00001EAB\n\t\"\\x1e\\xa0\\x03\\x02\\x00\\x00\\x1e\\xac\" + // 0x1EA00302: 0x00001EAC\n\t\"\\x1e\\xa1\\x03\\x02\\x00\\x00\\x1e\\xad\" + // 0x1EA10302: 0x00001EAD\n\t\"\\x01\\x02\\x03\\x01\\x00\\x00\\x1e\\xae\" + // 0x01020301: 0x00001EAE\n\t\"\\x01\\x03\\x03\\x01\\x00\\x00\\x1e\\xaf\" + // 0x01030301: 0x00001EAF\n\t\"\\x01\\x02\\x03\\x00\\x00\\x00\\x1e\\xb0\" + // 0x01020300: 0x00001EB0\n\t\"\\x01\\x03\\x03\\x00\\x00\\x00\\x1e\\xb1\" + // 0x01030300: 0x00001EB1\n\t\"\\x01\\x02\\x03\\t\\x00\\x00\\x1e\\xb2\" + // 0x01020309: 0x00001EB2\n\t\"\\x01\\x03\\x03\\t\\x00\\x00\\x1e\\xb3\" + // 0x01030309: 0x00001EB3\n\t\"\\x01\\x02\\x03\\x03\\x00\\x00\\x1e\\xb4\" + // 0x01020303: 0x00001EB4\n\t\"\\x01\\x03\\x03\\x03\\x00\\x00\\x1e\\xb5\" + // 0x01030303: 0x00001EB5\n\t\"\\x1e\\xa0\\x03\\x06\\x00\\x00\\x1e\\xb6\" + // 0x1EA00306: 0x00001EB6\n\t\"\\x1e\\xa1\\x03\\x06\\x00\\x00\\x1e\\xb7\" + // 0x1EA10306: 0x00001EB7\n\t\"\\x00E\\x03#\\x00\\x00\\x1e\\xb8\" + // 0x00450323: 0x00001EB8\n\t\"\\x00e\\x03#\\x00\\x00\\x1e\\xb9\" + // 0x00650323: 0x00001EB9\n\t\"\\x00E\\x03\\t\\x00\\x00\\x1e\\xba\" + // 0x00450309: 0x00001EBA\n\t\"\\x00e\\x03\\t\\x00\\x00\\x1e\\xbb\" + // 0x00650309: 0x00001EBB\n\t\"\\x00E\\x03\\x03\\x00\\x00\\x1e\\xbc\" + // 0x00450303: 0x00001EBC\n\t\"\\x00e\\x03\\x03\\x00\\x00\\x1e\\xbd\" + // 0x00650303: 0x00001EBD\n\t\"\\x00\\xca\\x03\\x01\\x00\\x00\\x1e\\xbe\" + // 0x00CA0301: 0x00001EBE\n\t\"\\x00\\xea\\x03\\x01\\x00\\x00\\x1e\\xbf\" + // 0x00EA0301: 0x00001EBF\n\t\"\\x00\\xca\\x03\\x00\\x00\\x00\\x1e\\xc0\" + // 0x00CA0300: 0x00001EC0\n\t\"\\x00\\xea\\x03\\x00\\x00\\x00\\x1e\\xc1\" + // 0x00EA0300: 0x00001EC1\n\t\"\\x00\\xca\\x03\\t\\x00\\x00\\x1e\\xc2\" + // 0x00CA0309: 0x00001EC2\n\t\"\\x00\\xea\\x03\\t\\x00\\x00\\x1e\\xc3\" + // 0x00EA0309: 0x00001EC3\n\t\"\\x00\\xca\\x03\\x03\\x00\\x00\\x1e\\xc4\" + // 0x00CA0303: 0x00001EC4\n\t\"\\x00\\xea\\x03\\x03\\x00\\x00\\x1e\\xc5\" + // 0x00EA0303: 0x00001EC5\n\t\"\\x1e\\xb8\\x03\\x02\\x00\\x00\\x1e\\xc6\" + // 0x1EB80302: 0x00001EC6\n\t\"\\x1e\\xb9\\x03\\x02\\x00\\x00\\x1e\\xc7\" + // 0x1EB90302: 0x00001EC7\n\t\"\\x00I\\x03\\t\\x00\\x00\\x1e\\xc8\" + // 0x00490309: 0x00001EC8\n\t\"\\x00i\\x03\\t\\x00\\x00\\x1e\\xc9\" + // 0x00690309: 0x00001EC9\n\t\"\\x00I\\x03#\\x00\\x00\\x1e\\xca\" + // 0x00490323: 0x00001ECA\n\t\"\\x00i\\x03#\\x00\\x00\\x1e\\xcb\" + // 0x00690323: 0x00001ECB\n\t\"\\x00O\\x03#\\x00\\x00\\x1e\\xcc\" + // 0x004F0323: 0x00001ECC\n\t\"\\x00o\\x03#\\x00\\x00\\x1e\\xcd\" + // 0x006F0323: 0x00001ECD\n\t\"\\x00O\\x03\\t\\x00\\x00\\x1e\\xce\" + // 0x004F0309: 0x00001ECE\n\t\"\\x00o\\x03\\t\\x00\\x00\\x1e\\xcf\" + // 0x006F0309: 0x00001ECF\n\t\"\\x00\\xd4\\x03\\x01\\x00\\x00\\x1e\\xd0\" + // 0x00D40301: 0x00001ED0\n\t\"\\x00\\xf4\\x03\\x01\\x00\\x00\\x1e\\xd1\" + // 0x00F40301: 0x00001ED1\n\t\"\\x00\\xd4\\x03\\x00\\x00\\x00\\x1e\\xd2\" + // 0x00D40300: 0x00001ED2\n\t\"\\x00\\xf4\\x03\\x00\\x00\\x00\\x1e\\xd3\" + // 0x00F40300: 0x00001ED3\n\t\"\\x00\\xd4\\x03\\t\\x00\\x00\\x1e\\xd4\" + // 0x00D40309: 0x00001ED4\n\t\"\\x00\\xf4\\x03\\t\\x00\\x00\\x1e\\xd5\" + // 0x00F40309: 0x00001ED5\n\t\"\\x00\\xd4\\x03\\x03\\x00\\x00\\x1e\\xd6\" + // 0x00D40303: 0x00001ED6\n\t\"\\x00\\xf4\\x03\\x03\\x00\\x00\\x1e\\xd7\" + // 0x00F40303: 0x00001ED7\n\t\"\\x1e\\xcc\\x03\\x02\\x00\\x00\\x1e\\xd8\" + // 0x1ECC0302: 0x00001ED8\n\t\"\\x1e\\xcd\\x03\\x02\\x00\\x00\\x1e\\xd9\" + // 0x1ECD0302: 0x00001ED9\n\t\"\\x01\\xa0\\x03\\x01\\x00\\x00\\x1e\\xda\" + // 0x01A00301: 0x00001EDA\n\t\"\\x01\\xa1\\x03\\x01\\x00\\x00\\x1e\\xdb\" + // 0x01A10301: 0x00001EDB\n\t\"\\x01\\xa0\\x03\\x00\\x00\\x00\\x1e\\xdc\" + // 0x01A00300: 0x00001EDC\n\t\"\\x01\\xa1\\x03\\x00\\x00\\x00\\x1e\\xdd\" + // 0x01A10300: 0x00001EDD\n\t\"\\x01\\xa0\\x03\\t\\x00\\x00\\x1e\\xde\" + // 0x01A00309: 0x00001EDE\n\t\"\\x01\\xa1\\x03\\t\\x00\\x00\\x1e\\xdf\" + // 0x01A10309: 0x00001EDF\n\t\"\\x01\\xa0\\x03\\x03\\x00\\x00\\x1e\\xe0\" + // 0x01A00303: 0x00001EE0\n\t\"\\x01\\xa1\\x03\\x03\\x00\\x00\\x1e\\xe1\" + // 0x01A10303: 0x00001EE1\n\t\"\\x01\\xa0\\x03#\\x00\\x00\\x1e\\xe2\" + // 0x01A00323: 0x00001EE2\n\t\"\\x01\\xa1\\x03#\\x00\\x00\\x1e\\xe3\" + // 0x01A10323: 0x00001EE3\n\t\"\\x00U\\x03#\\x00\\x00\\x1e\\xe4\" + // 0x00550323: 0x00001EE4\n\t\"\\x00u\\x03#\\x00\\x00\\x1e\\xe5\" + // 0x00750323: 0x00001EE5\n\t\"\\x00U\\x03\\t\\x00\\x00\\x1e\\xe6\" + // 0x00550309: 0x00001EE6\n\t\"\\x00u\\x03\\t\\x00\\x00\\x1e\\xe7\" + // 0x00750309: 0x00001EE7\n\t\"\\x01\\xaf\\x03\\x01\\x00\\x00\\x1e\\xe8\" + // 0x01AF0301: 0x00001EE8\n\t\"\\x01\\xb0\\x03\\x01\\x00\\x00\\x1e\\xe9\" + // 0x01B00301: 0x00001EE9\n\t\"\\x01\\xaf\\x03\\x00\\x00\\x00\\x1e\\xea\" + // 0x01AF0300: 0x00001EEA\n\t\"\\x01\\xb0\\x03\\x00\\x00\\x00\\x1e\\xeb\" + // 0x01B00300: 0x00001EEB\n\t\"\\x01\\xaf\\x03\\t\\x00\\x00\\x1e\\xec\" + // 0x01AF0309: 0x00001EEC\n\t\"\\x01\\xb0\\x03\\t\\x00\\x00\\x1e\\xed\" + // 0x01B00309: 0x00001EED\n\t\"\\x01\\xaf\\x03\\x03\\x00\\x00\\x1e\\xee\" + // 0x01AF0303: 0x00001EEE\n\t\"\\x01\\xb0\\x03\\x03\\x00\\x00\\x1e\\xef\" + // 0x01B00303: 0x00001EEF\n\t\"\\x01\\xaf\\x03#\\x00\\x00\\x1e\\xf0\" + // 0x01AF0323: 0x00001EF0\n\t\"\\x01\\xb0\\x03#\\x00\\x00\\x1e\\xf1\" + // 0x01B00323: 0x00001EF1\n\t\"\\x00Y\\x03\\x00\\x00\\x00\\x1e\\xf2\" + // 0x00590300: 0x00001EF2\n\t\"\\x00y\\x03\\x00\\x00\\x00\\x1e\\xf3\" + // 0x00790300: 0x00001EF3\n\t\"\\x00Y\\x03#\\x00\\x00\\x1e\\xf4\" + // 0x00590323: 0x00001EF4\n\t\"\\x00y\\x03#\\x00\\x00\\x1e\\xf5\" + // 0x00790323: 0x00001EF5\n\t\"\\x00Y\\x03\\t\\x00\\x00\\x1e\\xf6\" + // 0x00590309: 0x00001EF6\n\t\"\\x00y\\x03\\t\\x00\\x00\\x1e\\xf7\" + // 0x00790309: 0x00001EF7\n\t\"\\x00Y\\x03\\x03\\x00\\x00\\x1e\\xf8\" + // 0x00590303: 0x00001EF8\n\t\"\\x00y\\x03\\x03\\x00\\x00\\x1e\\xf9\" + // 0x00790303: 0x00001EF9\n\t\"\\x03\\xb1\\x03\\x13\\x00\\x00\\x1f\\x00\" + // 0x03B10313: 0x00001F00\n\t\"\\x03\\xb1\\x03\\x14\\x00\\x00\\x1f\\x01\" + // 0x03B10314: 0x00001F01\n\t\"\\x1f\\x00\\x03\\x00\\x00\\x00\\x1f\\x02\" + // 0x1F000300: 0x00001F02\n\t\"\\x1f\\x01\\x03\\x00\\x00\\x00\\x1f\\x03\" + // 0x1F010300: 0x00001F03\n\t\"\\x1f\\x00\\x03\\x01\\x00\\x00\\x1f\\x04\" + // 0x1F000301: 0x00001F04\n\t\"\\x1f\\x01\\x03\\x01\\x00\\x00\\x1f\\x05\" + // 0x1F010301: 0x00001F05\n\t\"\\x1f\\x00\\x03B\\x00\\x00\\x1f\\x06\" + // 0x1F000342: 0x00001F06\n\t\"\\x1f\\x01\\x03B\\x00\\x00\\x1f\\a\" + // 0x1F010342: 0x00001F07\n\t\"\\x03\\x91\\x03\\x13\\x00\\x00\\x1f\\b\" + // 0x03910313: 0x00001F08\n\t\"\\x03\\x91\\x03\\x14\\x00\\x00\\x1f\\t\" + // 0x03910314: 0x00001F09\n\t\"\\x1f\\b\\x03\\x00\\x00\\x00\\x1f\\n\" + // 0x1F080300: 0x00001F0A\n\t\"\\x1f\\t\\x03\\x00\\x00\\x00\\x1f\\v\" + // 0x1F090300: 0x00001F0B\n\t\"\\x1f\\b\\x03\\x01\\x00\\x00\\x1f\\f\" + // 0x1F080301: 0x00001F0C\n\t\"\\x1f\\t\\x03\\x01\\x00\\x00\\x1f\\r\" + // 0x1F090301: 0x00001F0D\n\t\"\\x1f\\b\\x03B\\x00\\x00\\x1f\\x0e\" + // 0x1F080342: 0x00001F0E\n\t\"\\x1f\\t\\x03B\\x00\\x00\\x1f\\x0f\" + // 0x1F090342: 0x00001F0F\n\t\"\\x03\\xb5\\x03\\x13\\x00\\x00\\x1f\\x10\" + // 0x03B50313: 0x00001F10\n\t\"\\x03\\xb5\\x03\\x14\\x00\\x00\\x1f\\x11\" + // 0x03B50314: 0x00001F11\n\t\"\\x1f\\x10\\x03\\x00\\x00\\x00\\x1f\\x12\" + // 0x1F100300: 0x00001F12\n\t\"\\x1f\\x11\\x03\\x00\\x00\\x00\\x1f\\x13\" + // 0x1F110300: 0x00001F13\n\t\"\\x1f\\x10\\x03\\x01\\x00\\x00\\x1f\\x14\" + // 0x1F100301: 0x00001F14\n\t\"\\x1f\\x11\\x03\\x01\\x00\\x00\\x1f\\x15\" + // 0x1F110301: 0x00001F15\n\t\"\\x03\\x95\\x03\\x13\\x00\\x00\\x1f\\x18\" + // 0x03950313: 0x00001F18\n\t\"\\x03\\x95\\x03\\x14\\x00\\x00\\x1f\\x19\" + // 0x03950314: 0x00001F19\n\t\"\\x1f\\x18\\x03\\x00\\x00\\x00\\x1f\\x1a\" + // 0x1F180300: 0x00001F1A\n\t\"\\x1f\\x19\\x03\\x00\\x00\\x00\\x1f\\x1b\" + // 0x1F190300: 0x00001F1B\n\t\"\\x1f\\x18\\x03\\x01\\x00\\x00\\x1f\\x1c\" + // 0x1F180301: 0x00001F1C\n\t\"\\x1f\\x19\\x03\\x01\\x00\\x00\\x1f\\x1d\" + // 0x1F190301: 0x00001F1D\n\t\"\\x03\\xb7\\x03\\x13\\x00\\x00\\x1f \" + // 0x03B70313: 0x00001F20\n\t\"\\x03\\xb7\\x03\\x14\\x00\\x00\\x1f!\" + // 0x03B70314: 0x00001F21\n\t\"\\x1f \\x03\\x00\\x00\\x00\\x1f\\\"\" + // 0x1F200300: 0x00001F22\n\t\"\\x1f!\\x03\\x00\\x00\\x00\\x1f#\" + // 0x1F210300: 0x00001F23\n\t\"\\x1f \\x03\\x01\\x00\\x00\\x1f$\" + // 0x1F200301: 0x00001F24\n\t\"\\x1f!\\x03\\x01\\x00\\x00\\x1f%\" + // 0x1F210301: 0x00001F25\n\t\"\\x1f \\x03B\\x00\\x00\\x1f&\" + // 0x1F200342: 0x00001F26\n\t\"\\x1f!\\x03B\\x00\\x00\\x1f'\" + // 0x1F210342: 0x00001F27\n\t\"\\x03\\x97\\x03\\x13\\x00\\x00\\x1f(\" + // 0x03970313: 0x00001F28\n\t\"\\x03\\x97\\x03\\x14\\x00\\x00\\x1f)\" + // 0x03970314: 0x00001F29\n\t\"\\x1f(\\x03\\x00\\x00\\x00\\x1f*\" + // 0x1F280300: 0x00001F2A\n\t\"\\x1f)\\x03\\x00\\x00\\x00\\x1f+\" + // 0x1F290300: 0x00001F2B\n\t\"\\x1f(\\x03\\x01\\x00\\x00\\x1f,\" + // 0x1F280301: 0x00001F2C\n\t\"\\x1f)\\x03\\x01\\x00\\x00\\x1f-\" + // 0x1F290301: 0x00001F2D\n\t\"\\x1f(\\x03B\\x00\\x00\\x1f.\" + // 0x1F280342: 0x00001F2E\n\t\"\\x1f)\\x03B\\x00\\x00\\x1f/\" + // 0x1F290342: 0x00001F2F\n\t\"\\x03\\xb9\\x03\\x13\\x00\\x00\\x1f0\" + // 0x03B90313: 0x00001F30\n\t\"\\x03\\xb9\\x03\\x14\\x00\\x00\\x1f1\" + // 0x03B90314: 0x00001F31\n\t\"\\x1f0\\x03\\x00\\x00\\x00\\x1f2\" + // 0x1F300300: 0x00001F32\n\t\"\\x1f1\\x03\\x00\\x00\\x00\\x1f3\" + // 0x1F310300: 0x00001F33\n\t\"\\x1f0\\x03\\x01\\x00\\x00\\x1f4\" + // 0x1F300301: 0x00001F34\n\t\"\\x1f1\\x03\\x01\\x00\\x00\\x1f5\" + // 0x1F310301: 0x00001F35\n\t\"\\x1f0\\x03B\\x00\\x00\\x1f6\" + // 0x1F300342: 0x00001F36\n\t\"\\x1f1\\x03B\\x00\\x00\\x1f7\" + // 0x1F310342: 0x00001F37\n\t\"\\x03\\x99\\x03\\x13\\x00\\x00\\x1f8\" + // 0x03990313: 0x00001F38\n\t\"\\x03\\x99\\x03\\x14\\x00\\x00\\x1f9\" + // 0x03990314: 0x00001F39\n\t\"\\x1f8\\x03\\x00\\x00\\x00\\x1f:\" + // 0x1F380300: 0x00001F3A\n\t\"\\x1f9\\x03\\x00\\x00\\x00\\x1f;\" + // 0x1F390300: 0x00001F3B\n\t\"\\x1f8\\x03\\x01\\x00\\x00\\x1f<\" + // 0x1F380301: 0x00001F3C\n\t\"\\x1f9\\x03\\x01\\x00\\x00\\x1f=\" + // 0x1F390301: 0x00001F3D\n\t\"\\x1f8\\x03B\\x00\\x00\\x1f>\" + // 0x1F380342: 0x00001F3E\n\t\"\\x1f9\\x03B\\x00\\x00\\x1f?\" + // 0x1F390342: 0x00001F3F\n\t\"\\x03\\xbf\\x03\\x13\\x00\\x00\\x1f@\" + // 0x03BF0313: 0x00001F40\n\t\"\\x03\\xbf\\x03\\x14\\x00\\x00\\x1fA\" + // 0x03BF0314: 0x00001F41\n\t\"\\x1f@\\x03\\x00\\x00\\x00\\x1fB\" + // 0x1F400300: 0x00001F42\n\t\"\\x1fA\\x03\\x00\\x00\\x00\\x1fC\" + // 0x1F410300: 0x00001F43\n\t\"\\x1f@\\x03\\x01\\x00\\x00\\x1fD\" + // 0x1F400301: 0x00001F44\n\t\"\\x1fA\\x03\\x01\\x00\\x00\\x1fE\" + // 0x1F410301: 0x00001F45\n\t\"\\x03\\x9f\\x03\\x13\\x00\\x00\\x1fH\" + // 0x039F0313: 0x00001F48\n\t\"\\x03\\x9f\\x03\\x14\\x00\\x00\\x1fI\" + // 0x039F0314: 0x00001F49\n\t\"\\x1fH\\x03\\x00\\x00\\x00\\x1fJ\" + // 0x1F480300: 0x00001F4A\n\t\"\\x1fI\\x03\\x00\\x00\\x00\\x1fK\" + // 0x1F490300: 0x00001F4B\n\t\"\\x1fH\\x03\\x01\\x00\\x00\\x1fL\" + // 0x1F480301: 0x00001F4C\n\t\"\\x1fI\\x03\\x01\\x00\\x00\\x1fM\" + // 0x1F490301: 0x00001F4D\n\t\"\\x03\\xc5\\x03\\x13\\x00\\x00\\x1fP\" + // 0x03C50313: 0x00001F50\n\t\"\\x03\\xc5\\x03\\x14\\x00\\x00\\x1fQ\" + // 0x03C50314: 0x00001F51\n\t\"\\x1fP\\x03\\x00\\x00\\x00\\x1fR\" + // 0x1F500300: 0x00001F52\n\t\"\\x1fQ\\x03\\x00\\x00\\x00\\x1fS\" + // 0x1F510300: 0x00001F53\n\t\"\\x1fP\\x03\\x01\\x00\\x00\\x1fT\" + // 0x1F500301: 0x00001F54\n\t\"\\x1fQ\\x03\\x01\\x00\\x00\\x1fU\" + // 0x1F510301: 0x00001F55\n\t\"\\x1fP\\x03B\\x00\\x00\\x1fV\" + // 0x1F500342: 0x00001F56\n\t\"\\x1fQ\\x03B\\x00\\x00\\x1fW\" + // 0x1F510342: 0x00001F57\n\t\"\\x03\\xa5\\x03\\x14\\x00\\x00\\x1fY\" + // 0x03A50314: 0x00001F59\n\t\"\\x1fY\\x03\\x00\\x00\\x00\\x1f[\" + // 0x1F590300: 0x00001F5B\n\t\"\\x1fY\\x03\\x01\\x00\\x00\\x1f]\" + // 0x1F590301: 0x00001F5D\n\t\"\\x1fY\\x03B\\x00\\x00\\x1f_\" + // 0x1F590342: 0x00001F5F\n\t\"\\x03\\xc9\\x03\\x13\\x00\\x00\\x1f`\" + // 0x03C90313: 0x00001F60\n\t\"\\x03\\xc9\\x03\\x14\\x00\\x00\\x1fa\" + // 0x03C90314: 0x00001F61\n\t\"\\x1f`\\x03\\x00\\x00\\x00\\x1fb\" + // 0x1F600300: 0x00001F62\n\t\"\\x1fa\\x03\\x00\\x00\\x00\\x1fc\" + // 0x1F610300: 0x00001F63\n\t\"\\x1f`\\x03\\x01\\x00\\x00\\x1fd\" + // 0x1F600301: 0x00001F64\n\t\"\\x1fa\\x03\\x01\\x00\\x00\\x1fe\" + // 0x1F610301: 0x00001F65\n\t\"\\x1f`\\x03B\\x00\\x00\\x1ff\" + // 0x1F600342: 0x00001F66\n\t\"\\x1fa\\x03B\\x00\\x00\\x1fg\" + // 0x1F610342: 0x00001F67\n\t\"\\x03\\xa9\\x03\\x13\\x00\\x00\\x1fh\" + // 0x03A90313: 0x00001F68\n\t\"\\x03\\xa9\\x03\\x14\\x00\\x00\\x1fi\" + // 0x03A90314: 0x00001F69\n\t\"\\x1fh\\x03\\x00\\x00\\x00\\x1fj\" + // 0x1F680300: 0x00001F6A\n\t\"\\x1fi\\x03\\x00\\x00\\x00\\x1fk\" + // 0x1F690300: 0x00001F6B\n\t\"\\x1fh\\x03\\x01\\x00\\x00\\x1fl\" + // 0x1F680301: 0x00001F6C\n\t\"\\x1fi\\x03\\x01\\x00\\x00\\x1fm\" + // 0x1F690301: 0x00001F6D\n\t\"\\x1fh\\x03B\\x00\\x00\\x1fn\" + // 0x1F680342: 0x00001F6E\n\t\"\\x1fi\\x03B\\x00\\x00\\x1fo\" + // 0x1F690342: 0x00001F6F\n\t\"\\x03\\xb1\\x03\\x00\\x00\\x00\\x1fp\" + // 0x03B10300: 0x00001F70\n\t\"\\x03\\xb5\\x03\\x00\\x00\\x00\\x1fr\" + // 0x03B50300: 0x00001F72\n\t\"\\x03\\xb7\\x03\\x00\\x00\\x00\\x1ft\" + // 0x03B70300: 0x00001F74\n\t\"\\x03\\xb9\\x03\\x00\\x00\\x00\\x1fv\" + // 0x03B90300: 0x00001F76\n\t\"\\x03\\xbf\\x03\\x00\\x00\\x00\\x1fx\" + // 0x03BF0300: 0x00001F78\n\t\"\\x03\\xc5\\x03\\x00\\x00\\x00\\x1fz\" + // 0x03C50300: 0x00001F7A\n\t\"\\x03\\xc9\\x03\\x00\\x00\\x00\\x1f|\" + // 0x03C90300: 0x00001F7C\n\t\"\\x1f\\x00\\x03E\\x00\\x00\\x1f\\x80\" + // 0x1F000345: 0x00001F80\n\t\"\\x1f\\x01\\x03E\\x00\\x00\\x1f\\x81\" + // 0x1F010345: 0x00001F81\n\t\"\\x1f\\x02\\x03E\\x00\\x00\\x1f\\x82\" + // 0x1F020345: 0x00001F82\n\t\"\\x1f\\x03\\x03E\\x00\\x00\\x1f\\x83\" + // 0x1F030345: 0x00001F83\n\t\"\\x1f\\x04\\x03E\\x00\\x00\\x1f\\x84\" + // 0x1F040345: 0x00001F84\n\t\"\\x1f\\x05\\x03E\\x00\\x00\\x1f\\x85\" + // 0x1F050345: 0x00001F85\n\t\"\\x1f\\x06\\x03E\\x00\\x00\\x1f\\x86\" + // 0x1F060345: 0x00001F86\n\t\"\\x1f\\a\\x03E\\x00\\x00\\x1f\\x87\" + // 0x1F070345: 0x00001F87\n\t\"\\x1f\\b\\x03E\\x00\\x00\\x1f\\x88\" + // 0x1F080345: 0x00001F88\n\t\"\\x1f\\t\\x03E\\x00\\x00\\x1f\\x89\" + // 0x1F090345: 0x00001F89\n\t\"\\x1f\\n\\x03E\\x00\\x00\\x1f\\x8a\" + // 0x1F0A0345: 0x00001F8A\n\t\"\\x1f\\v\\x03E\\x00\\x00\\x1f\\x8b\" + // 0x1F0B0345: 0x00001F8B\n\t\"\\x1f\\f\\x03E\\x00\\x00\\x1f\\x8c\" + // 0x1F0C0345: 0x00001F8C\n\t\"\\x1f\\r\\x03E\\x00\\x00\\x1f\\x8d\" + // 0x1F0D0345: 0x00001F8D\n\t\"\\x1f\\x0e\\x03E\\x00\\x00\\x1f\\x8e\" + // 0x1F0E0345: 0x00001F8E\n\t\"\\x1f\\x0f\\x03E\\x00\\x00\\x1f\\x8f\" + // 0x1F0F0345: 0x00001F8F\n\t\"\\x1f \\x03E\\x00\\x00\\x1f\\x90\" + // 0x1F200345: 0x00001F90\n\t\"\\x1f!\\x03E\\x00\\x00\\x1f\\x91\" + // 0x1F210345: 0x00001F91\n\t\"\\x1f\\\"\\x03E\\x00\\x00\\x1f\\x92\" + // 0x1F220345: 0x00001F92\n\t\"\\x1f#\\x03E\\x00\\x00\\x1f\\x93\" + // 0x1F230345: 0x00001F93\n\t\"\\x1f$\\x03E\\x00\\x00\\x1f\\x94\" + // 0x1F240345: 0x00001F94\n\t\"\\x1f%\\x03E\\x00\\x00\\x1f\\x95\" + // 0x1F250345: 0x00001F95\n\t\"\\x1f&\\x03E\\x00\\x00\\x1f\\x96\" + // 0x1F260345: 0x00001F96\n\t\"\\x1f'\\x03E\\x00\\x00\\x1f\\x97\" + // 0x1F270345: 0x00001F97\n\t\"\\x1f(\\x03E\\x00\\x00\\x1f\\x98\" + // 0x1F280345: 0x00001F98\n\t\"\\x1f)\\x03E\\x00\\x00\\x1f\\x99\" + // 0x1F290345: 0x00001F99\n\t\"\\x1f*\\x03E\\x00\\x00\\x1f\\x9a\" + // 0x1F2A0345: 0x00001F9A\n\t\"\\x1f+\\x03E\\x00\\x00\\x1f\\x9b\" + // 0x1F2B0345: 0x00001F9B\n\t\"\\x1f,\\x03E\\x00\\x00\\x1f\\x9c\" + // 0x1F2C0345: 0x00001F9C\n\t\"\\x1f-\\x03E\\x00\\x00\\x1f\\x9d\" + // 0x1F2D0345: 0x00001F9D\n\t\"\\x1f.\\x03E\\x00\\x00\\x1f\\x9e\" + // 0x1F2E0345: 0x00001F9E\n\t\"\\x1f/\\x03E\\x00\\x00\\x1f\\x9f\" + // 0x1F2F0345: 0x00001F9F\n\t\"\\x1f`\\x03E\\x00\\x00\\x1f\\xa0\" + // 0x1F600345: 0x00001FA0\n\t\"\\x1fa\\x03E\\x00\\x00\\x1f\\xa1\" + // 0x1F610345: 0x00001FA1\n\t\"\\x1fb\\x03E\\x00\\x00\\x1f\\xa2\" + // 0x1F620345: 0x00001FA2\n\t\"\\x1fc\\x03E\\x00\\x00\\x1f\\xa3\" + // 0x1F630345: 0x00001FA3\n\t\"\\x1fd\\x03E\\x00\\x00\\x1f\\xa4\" + // 0x1F640345: 0x00001FA4\n\t\"\\x1fe\\x03E\\x00\\x00\\x1f\\xa5\" + // 0x1F650345: 0x00001FA5\n\t\"\\x1ff\\x03E\\x00\\x00\\x1f\\xa6\" + // 0x1F660345: 0x00001FA6\n\t\"\\x1fg\\x03E\\x00\\x00\\x1f\\xa7\" + // 0x1F670345: 0x00001FA7\n\t\"\\x1fh\\x03E\\x00\\x00\\x1f\\xa8\" + // 0x1F680345: 0x00001FA8\n\t\"\\x1fi\\x03E\\x00\\x00\\x1f\\xa9\" + // 0x1F690345: 0x00001FA9\n\t\"\\x1fj\\x03E\\x00\\x00\\x1f\\xaa\" + // 0x1F6A0345: 0x00001FAA\n\t\"\\x1fk\\x03E\\x00\\x00\\x1f\\xab\" + // 0x1F6B0345: 0x00001FAB\n\t\"\\x1fl\\x03E\\x00\\x00\\x1f\\xac\" + // 0x1F6C0345: 0x00001FAC\n\t\"\\x1fm\\x03E\\x00\\x00\\x1f\\xad\" + // 0x1F6D0345: 0x00001FAD\n\t\"\\x1fn\\x03E\\x00\\x00\\x1f\\xae\" + // 0x1F6E0345: 0x00001FAE\n\t\"\\x1fo\\x03E\\x00\\x00\\x1f\\xaf\" + // 0x1F6F0345: 0x00001FAF\n\t\"\\x03\\xb1\\x03\\x06\\x00\\x00\\x1f\\xb0\" + // 0x03B10306: 0x00001FB0\n\t\"\\x03\\xb1\\x03\\x04\\x00\\x00\\x1f\\xb1\" + // 0x03B10304: 0x00001FB1\n\t\"\\x1fp\\x03E\\x00\\x00\\x1f\\xb2\" + // 0x1F700345: 0x00001FB2\n\t\"\\x03\\xb1\\x03E\\x00\\x00\\x1f\\xb3\" + // 0x03B10345: 0x00001FB3\n\t\"\\x03\\xac\\x03E\\x00\\x00\\x1f\\xb4\" + // 0x03AC0345: 0x00001FB4\n\t\"\\x03\\xb1\\x03B\\x00\\x00\\x1f\\xb6\" + // 0x03B10342: 0x00001FB6\n\t\"\\x1f\\xb6\\x03E\\x00\\x00\\x1f\\xb7\" + // 0x1FB60345: 0x00001FB7\n\t\"\\x03\\x91\\x03\\x06\\x00\\x00\\x1f\\xb8\" + // 0x03910306: 0x00001FB8\n\t\"\\x03\\x91\\x03\\x04\\x00\\x00\\x1f\\xb9\" + // 0x03910304: 0x00001FB9\n\t\"\\x03\\x91\\x03\\x00\\x00\\x00\\x1f\\xba\" + // 0x03910300: 0x00001FBA\n\t\"\\x03\\x91\\x03E\\x00\\x00\\x1f\\xbc\" + // 0x03910345: 0x00001FBC\n\t\"\\x00\\xa8\\x03B\\x00\\x00\\x1f\\xc1\" + // 0x00A80342: 0x00001FC1\n\t\"\\x1ft\\x03E\\x00\\x00\\x1f\\xc2\" + // 0x1F740345: 0x00001FC2\n\t\"\\x03\\xb7\\x03E\\x00\\x00\\x1f\\xc3\" + // 0x03B70345: 0x00001FC3\n\t\"\\x03\\xae\\x03E\\x00\\x00\\x1f\\xc4\" + // 0x03AE0345: 0x00001FC4\n\t\"\\x03\\xb7\\x03B\\x00\\x00\\x1f\\xc6\" + // 0x03B70342: 0x00001FC6\n\t\"\\x1f\\xc6\\x03E\\x00\\x00\\x1f\\xc7\" + // 0x1FC60345: 0x00001FC7\n\t\"\\x03\\x95\\x03\\x00\\x00\\x00\\x1f\\xc8\" + // 0x03950300: 0x00001FC8\n\t\"\\x03\\x97\\x03\\x00\\x00\\x00\\x1f\\xca\" + // 0x03970300: 0x00001FCA\n\t\"\\x03\\x97\\x03E\\x00\\x00\\x1f\\xcc\" + // 0x03970345: 0x00001FCC\n\t\"\\x1f\\xbf\\x03\\x00\\x00\\x00\\x1f\\xcd\" + // 0x1FBF0300: 0x00001FCD\n\t\"\\x1f\\xbf\\x03\\x01\\x00\\x00\\x1f\\xce\" + // 0x1FBF0301: 0x00001FCE\n\t\"\\x1f\\xbf\\x03B\\x00\\x00\\x1f\\xcf\" + // 0x1FBF0342: 0x00001FCF\n\t\"\\x03\\xb9\\x03\\x06\\x00\\x00\\x1f\\xd0\" + // 0x03B90306: 0x00001FD0\n\t\"\\x03\\xb9\\x03\\x04\\x00\\x00\\x1f\\xd1\" + // 0x03B90304: 0x00001FD1\n\t\"\\x03\\xca\\x03\\x00\\x00\\x00\\x1f\\xd2\" + // 0x03CA0300: 0x00001FD2\n\t\"\\x03\\xb9\\x03B\\x00\\x00\\x1f\\xd6\" + // 0x03B90342: 0x00001FD6\n\t\"\\x03\\xca\\x03B\\x00\\x00\\x1f\\xd7\" + // 0x03CA0342: 0x00001FD7\n\t\"\\x03\\x99\\x03\\x06\\x00\\x00\\x1f\\xd8\" + // 0x03990306: 0x00001FD8\n\t\"\\x03\\x99\\x03\\x04\\x00\\x00\\x1f\\xd9\" + // 0x03990304: 0x00001FD9\n\t\"\\x03\\x99\\x03\\x00\\x00\\x00\\x1f\\xda\" + // 0x03990300: 0x00001FDA\n\t\"\\x1f\\xfe\\x03\\x00\\x00\\x00\\x1f\\xdd\" + // 0x1FFE0300: 0x00001FDD\n\t\"\\x1f\\xfe\\x03\\x01\\x00\\x00\\x1f\\xde\" + // 0x1FFE0301: 0x00001FDE\n\t\"\\x1f\\xfe\\x03B\\x00\\x00\\x1f\\xdf\" + // 0x1FFE0342: 0x00001FDF\n\t\"\\x03\\xc5\\x03\\x06\\x00\\x00\\x1f\\xe0\" + // 0x03C50306: 0x00001FE0\n\t\"\\x03\\xc5\\x03\\x04\\x00\\x00\\x1f\\xe1\" + // 0x03C50304: 0x00001FE1\n\t\"\\x03\\xcb\\x03\\x00\\x00\\x00\\x1f\\xe2\" + // 0x03CB0300: 0x00001FE2\n\t\"\\x03\\xc1\\x03\\x13\\x00\\x00\\x1f\\xe4\" + // 0x03C10313: 0x00001FE4\n\t\"\\x03\\xc1\\x03\\x14\\x00\\x00\\x1f\\xe5\" + // 0x03C10314: 0x00001FE5\n\t\"\\x03\\xc5\\x03B\\x00\\x00\\x1f\\xe6\" + // 0x03C50342: 0x00001FE6\n\t\"\\x03\\xcb\\x03B\\x00\\x00\\x1f\\xe7\" + // 0x03CB0342: 0x00001FE7\n\t\"\\x03\\xa5\\x03\\x06\\x00\\x00\\x1f\\xe8\" + // 0x03A50306: 0x00001FE8\n\t\"\\x03\\xa5\\x03\\x04\\x00\\x00\\x1f\\xe9\" + // 0x03A50304: 0x00001FE9\n\t\"\\x03\\xa5\\x03\\x00\\x00\\x00\\x1f\\xea\" + // 0x03A50300: 0x00001FEA\n\t\"\\x03\\xa1\\x03\\x14\\x00\\x00\\x1f\\xec\" + // 0x03A10314: 0x00001FEC\n\t\"\\x00\\xa8\\x03\\x00\\x00\\x00\\x1f\\xed\" + // 0x00A80300: 0x00001FED\n\t\"\\x1f|\\x03E\\x00\\x00\\x1f\\xf2\" + // 0x1F7C0345: 0x00001FF2\n\t\"\\x03\\xc9\\x03E\\x00\\x00\\x1f\\xf3\" + // 0x03C90345: 0x00001FF3\n\t\"\\x03\\xce\\x03E\\x00\\x00\\x1f\\xf4\" + // 0x03CE0345: 0x00001FF4\n\t\"\\x03\\xc9\\x03B\\x00\\x00\\x1f\\xf6\" + // 0x03C90342: 0x00001FF6\n\t\"\\x1f\\xf6\\x03E\\x00\\x00\\x1f\\xf7\" + // 0x1FF60345: 0x00001FF7\n\t\"\\x03\\x9f\\x03\\x00\\x00\\x00\\x1f\\xf8\" + // 0x039F0300: 0x00001FF8\n\t\"\\x03\\xa9\\x03\\x00\\x00\\x00\\x1f\\xfa\" + // 0x03A90300: 0x00001FFA\n\t\"\\x03\\xa9\\x03E\\x00\\x00\\x1f\\xfc\" + // 0x03A90345: 0x00001FFC\n\t\"!\\x90\\x038\\x00\\x00!\\x9a\" + // 0x21900338: 0x0000219A\n\t\"!\\x92\\x038\\x00\\x00!\\x9b\" + // 0x21920338: 0x0000219B\n\t\"!\\x94\\x038\\x00\\x00!\\xae\" + // 0x21940338: 0x000021AE\n\t\"!\\xd0\\x038\\x00\\x00!\\xcd\" + // 0x21D00338: 0x000021CD\n\t\"!\\xd4\\x038\\x00\\x00!\\xce\" + // 0x21D40338: 0x000021CE\n\t\"!\\xd2\\x038\\x00\\x00!\\xcf\" + // 0x21D20338: 0x000021CF\n\t\"\\\"\\x03\\x038\\x00\\x00\\\"\\x04\" + // 0x22030338: 0x00002204\n\t\"\\\"\\b\\x038\\x00\\x00\\\"\\t\" + // 0x22080338: 0x00002209\n\t\"\\\"\\v\\x038\\x00\\x00\\\"\\f\" + // 0x220B0338: 0x0000220C\n\t\"\\\"#\\x038\\x00\\x00\\\"$\" + // 0x22230338: 0x00002224\n\t\"\\\"%\\x038\\x00\\x00\\\"&\" + // 0x22250338: 0x00002226\n\t\"\\\"<\\x038\\x00\\x00\\\"A\" + // 0x223C0338: 0x00002241\n\t\"\\\"C\\x038\\x00\\x00\\\"D\" + // 0x22430338: 0x00002244\n\t\"\\\"E\\x038\\x00\\x00\\\"G\" + // 0x22450338: 0x00002247\n\t\"\\\"H\\x038\\x00\\x00\\\"I\" + // 0x22480338: 0x00002249\n\t\"\\x00=\\x038\\x00\\x00\\\"`\" + // 0x003D0338: 0x00002260\n\t\"\\\"a\\x038\\x00\\x00\\\"b\" + // 0x22610338: 0x00002262\n\t\"\\\"M\\x038\\x00\\x00\\\"m\" + // 0x224D0338: 0x0000226D\n\t\"\\x00<\\x038\\x00\\x00\\\"n\" + // 0x003C0338: 0x0000226E\n\t\"\\x00>\\x038\\x00\\x00\\\"o\" + // 0x003E0338: 0x0000226F\n\t\"\\\"d\\x038\\x00\\x00\\\"p\" + // 0x22640338: 0x00002270\n\t\"\\\"e\\x038\\x00\\x00\\\"q\" + // 0x22650338: 0x00002271\n\t\"\\\"r\\x038\\x00\\x00\\\"t\" + // 0x22720338: 0x00002274\n\t\"\\\"s\\x038\\x00\\x00\\\"u\" + // 0x22730338: 0x00002275\n\t\"\\\"v\\x038\\x00\\x00\\\"x\" + // 0x22760338: 0x00002278\n\t\"\\\"w\\x038\\x00\\x00\\\"y\" + // 0x22770338: 0x00002279\n\t\"\\\"z\\x038\\x00\\x00\\\"\\x80\" + // 0x227A0338: 0x00002280\n\t\"\\\"{\\x038\\x00\\x00\\\"\\x81\" + // 0x227B0338: 0x00002281\n\t\"\\\"\\x82\\x038\\x00\\x00\\\"\\x84\" + // 0x22820338: 0x00002284\n\t\"\\\"\\x83\\x038\\x00\\x00\\\"\\x85\" + // 0x22830338: 0x00002285\n\t\"\\\"\\x86\\x038\\x00\\x00\\\"\\x88\" + // 0x22860338: 0x00002288\n\t\"\\\"\\x87\\x038\\x00\\x00\\\"\\x89\" + // 0x22870338: 0x00002289\n\t\"\\\"\\xa2\\x038\\x00\\x00\\\"\\xac\" + // 0x22A20338: 0x000022AC\n\t\"\\\"\\xa8\\x038\\x00\\x00\\\"\\xad\" + // 0x22A80338: 0x000022AD\n\t\"\\\"\\xa9\\x038\\x00\\x00\\\"\\xae\" + // 0x22A90338: 0x000022AE\n\t\"\\\"\\xab\\x038\\x00\\x00\\\"\\xaf\" + // 0x22AB0338: 0x000022AF\n\t\"\\\"|\\x038\\x00\\x00\\\"\\xe0\" + // 0x227C0338: 0x000022E0\n\t\"\\\"}\\x038\\x00\\x00\\\"\\xe1\" + // 0x227D0338: 0x000022E1\n\t\"\\\"\\x91\\x038\\x00\\x00\\\"\\xe2\" + // 0x22910338: 0x000022E2\n\t\"\\\"\\x92\\x038\\x00\\x00\\\"\\xe3\" + // 0x22920338: 0x000022E3\n\t\"\\\"\\xb2\\x038\\x00\\x00\\\"\\xea\" + // 0x22B20338: 0x000022EA\n\t\"\\\"\\xb3\\x038\\x00\\x00\\\"\\xeb\" + // 0x22B30338: 0x000022EB\n\t\"\\\"\\xb4\\x038\\x00\\x00\\\"\\xec\" + // 0x22B40338: 0x000022EC\n\t\"\\\"\\xb5\\x038\\x00\\x00\\\"\\xed\" + // 0x22B50338: 0x000022ED\n\t\"0K0\\x99\\x00\\x000L\" + // 0x304B3099: 0x0000304C\n\t\"0M0\\x99\\x00\\x000N\" + // 0x304D3099: 0x0000304E\n\t\"0O0\\x99\\x00\\x000P\" + // 0x304F3099: 0x00003050\n\t\"0Q0\\x99\\x00\\x000R\" + // 0x30513099: 0x00003052\n\t\"0S0\\x99\\x00\\x000T\" + // 0x30533099: 0x00003054\n\t\"0U0\\x99\\x00\\x000V\" + // 0x30553099: 0x00003056\n\t\"0W0\\x99\\x00\\x000X\" + // 0x30573099: 0x00003058\n\t\"0Y0\\x99\\x00\\x000Z\" + // 0x30593099: 0x0000305A\n\t\"0[0\\x99\\x00\\x000\\\\\" + // 0x305B3099: 0x0000305C\n\t\"0]0\\x99\\x00\\x000^\" + // 0x305D3099: 0x0000305E\n\t\"0_0\\x99\\x00\\x000`\" + // 0x305F3099: 0x00003060\n\t\"0a0\\x99\\x00\\x000b\" + // 0x30613099: 0x00003062\n\t\"0d0\\x99\\x00\\x000e\" + // 0x30643099: 0x00003065\n\t\"0f0\\x99\\x00\\x000g\" + // 0x30663099: 0x00003067\n\t\"0h0\\x99\\x00\\x000i\" + // 0x30683099: 0x00003069\n\t\"0o0\\x99\\x00\\x000p\" + // 0x306F3099: 0x00003070\n\t\"0o0\\x9a\\x00\\x000q\" + // 0x306F309A: 0x00003071\n\t\"0r0\\x99\\x00\\x000s\" + // 0x30723099: 0x00003073\n\t\"0r0\\x9a\\x00\\x000t\" + // 0x3072309A: 0x00003074\n\t\"0u0\\x99\\x00\\x000v\" + // 0x30753099: 0x00003076\n\t\"0u0\\x9a\\x00\\x000w\" + // 0x3075309A: 0x00003077\n\t\"0x0\\x99\\x00\\x000y\" + // 0x30783099: 0x00003079\n\t\"0x0\\x9a\\x00\\x000z\" + // 0x3078309A: 0x0000307A\n\t\"0{0\\x99\\x00\\x000|\" + // 0x307B3099: 0x0000307C\n\t\"0{0\\x9a\\x00\\x000}\" + // 0x307B309A: 0x0000307D\n\t\"0F0\\x99\\x00\\x000\\x94\" + // 0x30463099: 0x00003094\n\t\"0\\x9d0\\x99\\x00\\x000\\x9e\" + // 0x309D3099: 0x0000309E\n\t\"0\\xab0\\x99\\x00\\x000\\xac\" + // 0x30AB3099: 0x000030AC\n\t\"0\\xad0\\x99\\x00\\x000\\xae\" + // 0x30AD3099: 0x000030AE\n\t\"0\\xaf0\\x99\\x00\\x000\\xb0\" + // 0x30AF3099: 0x000030B0\n\t\"0\\xb10\\x99\\x00\\x000\\xb2\" + // 0x30B13099: 0x000030B2\n\t\"0\\xb30\\x99\\x00\\x000\\xb4\" + // 0x30B33099: 0x000030B4\n\t\"0\\xb50\\x99\\x00\\x000\\xb6\" + // 0x30B53099: 0x000030B6\n\t\"0\\xb70\\x99\\x00\\x000\\xb8\" + // 0x30B73099: 0x000030B8\n\t\"0\\xb90\\x99\\x00\\x000\\xba\" + // 0x30B93099: 0x000030BA\n\t\"0\\xbb0\\x99\\x00\\x000\\xbc\" + // 0x30BB3099: 0x000030BC\n\t\"0\\xbd0\\x99\\x00\\x000\\xbe\" + // 0x30BD3099: 0x000030BE\n\t\"0\\xbf0\\x99\\x00\\x000\\xc0\" + // 0x30BF3099: 0x000030C0\n\t\"0\\xc10\\x99\\x00\\x000\\xc2\" + // 0x30C13099: 0x000030C2\n\t\"0\\xc40\\x99\\x00\\x000\\xc5\" + // 0x30C43099: 0x000030C5\n\t\"0\\xc60\\x99\\x00\\x000\\xc7\" + // 0x30C63099: 0x000030C7\n\t\"0\\xc80\\x99\\x00\\x000\\xc9\" + // 0x30C83099: 0x000030C9\n\t\"0\\xcf0\\x99\\x00\\x000\\xd0\" + // 0x30CF3099: 0x000030D0\n\t\"0\\xcf0\\x9a\\x00\\x000\\xd1\" + // 0x30CF309A: 0x000030D1\n\t\"0\\xd20\\x99\\x00\\x000\\xd3\" + // 0x30D23099: 0x000030D3\n\t\"0\\xd20\\x9a\\x00\\x000\\xd4\" + // 0x30D2309A: 0x000030D4\n\t\"0\\xd50\\x99\\x00\\x000\\xd6\" + // 0x30D53099: 0x000030D6\n\t\"0\\xd50\\x9a\\x00\\x000\\xd7\" + // 0x30D5309A: 0x000030D7\n\t\"0\\xd80\\x99\\x00\\x000\\xd9\" + // 0x30D83099: 0x000030D9\n\t\"0\\xd80\\x9a\\x00\\x000\\xda\" + // 0x30D8309A: 0x000030DA\n\t\"0\\xdb0\\x99\\x00\\x000\\xdc\" + // 0x30DB3099: 0x000030DC\n\t\"0\\xdb0\\x9a\\x00\\x000\\xdd\" + // 0x30DB309A: 0x000030DD\n\t\"0\\xa60\\x99\\x00\\x000\\xf4\" + // 0x30A63099: 0x000030F4\n\t\"0\\xef0\\x99\\x00\\x000\\xf7\" + // 0x30EF3099: 0x000030F7\n\t\"0\\xf00\\x99\\x00\\x000\\xf8\" + // 0x30F03099: 0x000030F8\n\t\"0\\xf10\\x99\\x00\\x000\\xf9\" + // 0x30F13099: 0x000030F9\n\t\"0\\xf20\\x99\\x00\\x000\\xfa\" + // 0x30F23099: 0x000030FA\n\t\"0\\xfd0\\x99\\x00\\x000\\xfe\" + // 0x30FD3099: 0x000030FE\n\t\"\\x10\\x99\\x10\\xba\\x00\\x01\\x10\\x9a\" + // 0x109910BA: 0x0001109A\n\t\"\\x10\\x9b\\x10\\xba\\x00\\x01\\x10\\x9c\" + // 0x109B10BA: 0x0001109C\n\t\"\\x10\\xa5\\x10\\xba\\x00\\x01\\x10\\xab\" + // 0x10A510BA: 0x000110AB\n\t\"\\x111\\x11'\\x00\\x01\\x11.\" + // 0x11311127: 0x0001112E\n\t\"\\x112\\x11'\\x00\\x01\\x11/\" + // 0x11321127: 0x0001112F\n\t\"\\x13G\\x13>\\x00\\x01\\x13K\" + // 0x1347133E: 0x0001134B\n\t\"\\x13G\\x13W\\x00\\x01\\x13L\" + // 0x13471357: 0x0001134C\n\t\"\\x14\\xb9\\x14\\xba\\x00\\x01\\x14\\xbb\" + // 0x14B914BA: 0x000114BB\n\t\"\\x14\\xb9\\x14\\xb0\\x00\\x01\\x14\\xbc\" + // 0x14B914B0: 0x000114BC\n\t\"\\x14\\xb9\\x14\\xbd\\x00\\x01\\x14\\xbe\" + // 0x14B914BD: 0x000114BE\n\t\"\\x15\\xb8\\x15\\xaf\\x00\\x01\\x15\\xba\" + // 0x15B815AF: 0x000115BA\n\t\"\\x15\\xb9\\x15\\xaf\\x00\\x01\\x15\\xbb\" + // 0x15B915AF: 0x000115BB\n\t\"\\x195\\x190\\x00\\x01\\x198\" + // 0x19351930: 0x00011938\n\t\"\"\n\t// Total size of tables: 55KB (56160 bytes)\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/norm/tables15.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n//go:build go1.21\n\npackage norm\n\nimport \"sync\"\n\nconst (\n\t// Version is the Unicode edition from which the tables are derived.\n\tVersion = \"15.0.0\"\n\n\t// MaxTransformChunkSize indicates the maximum number of bytes that Transform\n\t// may need to write atomically for any Form. Making a destination buffer at\n\t// least this size ensures that Transform can always make progress and that\n\t// the user does not need to grow the buffer on an ErrShortDst.\n\tMaxTransformChunkSize = 35 + maxNonStarters*4\n)\n\nvar ccc = [56]uint8{\n\t0, 1, 6, 7, 8, 9, 10, 11,\n\t12, 13, 14, 15, 16, 17, 18, 19,\n\t20, 21, 22, 23, 24, 25, 26, 27,\n\t28, 29, 30, 31, 32, 33, 34, 35,\n\t36, 84, 91, 103, 107, 118, 122, 129,\n\t130, 132, 202, 214, 216, 218, 220, 222,\n\t224, 226, 228, 230, 232, 233, 234, 240,\n}\n\nconst (\n\tfirstMulti            = 0x199A\n\tfirstCCC              = 0x2DD5\n\tendMulti              = 0x30A1\n\tfirstLeadingCCC       = 0x4AEF\n\tfirstCCCZeroExcept    = 0x4BB9\n\tfirstStarterWithNLead = 0x4BE0\n\tlastDecomp            = 0x4BE2\n\tmaxDecomp             = 0x8000\n)\n\n// decomps: 19426 bytes\nvar decomps = [...]byte{\n\t// Bytes 0 - 3f\n\t0x00, 0x41, 0x20, 0x41, 0x21, 0x41, 0x22, 0x41,\n\t0x23, 0x41, 0x24, 0x41, 0x25, 0x41, 0x26, 0x41,\n\t0x27, 0x41, 0x28, 0x41, 0x29, 0x41, 0x2A, 0x41,\n\t0x2B, 0x41, 0x2C, 0x41, 0x2D, 0x41, 0x2E, 0x41,\n\t0x2F, 0x41, 0x30, 0x41, 0x31, 0x41, 0x32, 0x41,\n\t0x33, 0x41, 0x34, 0x41, 0x35, 0x41, 0x36, 0x41,\n\t0x37, 0x41, 0x38, 0x41, 0x39, 0x41, 0x3A, 0x41,\n\t0x3B, 0x41, 0x3C, 0x41, 0x3D, 0x41, 0x3E, 0x41,\n\t// Bytes 40 - 7f\n\t0x3F, 0x41, 0x40, 0x41, 0x41, 0x41, 0x42, 0x41,\n\t0x43, 0x41, 0x44, 0x41, 0x45, 0x41, 0x46, 0x41,\n\t0x47, 0x41, 0x48, 0x41, 0x49, 0x41, 0x4A, 0x41,\n\t0x4B, 0x41, 0x4C, 0x41, 0x4D, 0x41, 0x4E, 0x41,\n\t0x4F, 0x41, 0x50, 0x41, 0x51, 0x41, 0x52, 0x41,\n\t0x53, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41,\n\t0x57, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5A, 0x41,\n\t0x5B, 0x41, 0x5C, 0x41, 0x5D, 0x41, 0x5E, 0x41,\n\t// Bytes 80 - bf\n\t0x5F, 0x41, 0x60, 0x41, 0x61, 0x41, 0x62, 0x41,\n\t0x63, 0x41, 0x64, 0x41, 0x65, 0x41, 0x66, 0x41,\n\t0x67, 0x41, 0x68, 0x41, 0x69, 0x41, 0x6A, 0x41,\n\t0x6B, 0x41, 0x6C, 0x41, 0x6D, 0x41, 0x6E, 0x41,\n\t0x6F, 0x41, 0x70, 0x41, 0x71, 0x41, 0x72, 0x41,\n\t0x73, 0x41, 0x74, 0x41, 0x75, 0x41, 0x76, 0x41,\n\t0x77, 0x41, 0x78, 0x41, 0x79, 0x41, 0x7A, 0x41,\n\t0x7B, 0x41, 0x7C, 0x41, 0x7D, 0x41, 0x7E, 0x42,\n\t// Bytes c0 - ff\n\t0xC2, 0xA2, 0x42, 0xC2, 0xA3, 0x42, 0xC2, 0xA5,\n\t0x42, 0xC2, 0xA6, 0x42, 0xC2, 0xAC, 0x42, 0xC2,\n\t0xB7, 0x42, 0xC3, 0x86, 0x42, 0xC3, 0xA6, 0x42,\n\t0xC3, 0xB0, 0x42, 0xC3, 0xB8, 0x42, 0xC4, 0xA6,\n\t0x42, 0xC4, 0xA7, 0x42, 0xC4, 0xB1, 0x42, 0xC5,\n\t0x8B, 0x42, 0xC5, 0x93, 0x42, 0xC6, 0x8E, 0x42,\n\t0xC6, 0x90, 0x42, 0xC6, 0xAB, 0x42, 0xC7, 0x80,\n\t0x42, 0xC7, 0x81, 0x42, 0xC7, 0x82, 0x42, 0xC8,\n\t// Bytes 100 - 13f\n\t0xA2, 0x42, 0xC8, 0xB7, 0x42, 0xC9, 0x90, 0x42,\n\t0xC9, 0x91, 0x42, 0xC9, 0x92, 0x42, 0xC9, 0x93,\n\t0x42, 0xC9, 0x94, 0x42, 0xC9, 0x95, 0x42, 0xC9,\n\t0x96, 0x42, 0xC9, 0x97, 0x42, 0xC9, 0x98, 0x42,\n\t0xC9, 0x99, 0x42, 0xC9, 0x9B, 0x42, 0xC9, 0x9C,\n\t0x42, 0xC9, 0x9E, 0x42, 0xC9, 0x9F, 0x42, 0xC9,\n\t0xA0, 0x42, 0xC9, 0xA1, 0x42, 0xC9, 0xA2, 0x42,\n\t0xC9, 0xA3, 0x42, 0xC9, 0xA4, 0x42, 0xC9, 0xA5,\n\t// Bytes 140 - 17f\n\t0x42, 0xC9, 0xA6, 0x42, 0xC9, 0xA7, 0x42, 0xC9,\n\t0xA8, 0x42, 0xC9, 0xA9, 0x42, 0xC9, 0xAA, 0x42,\n\t0xC9, 0xAB, 0x42, 0xC9, 0xAC, 0x42, 0xC9, 0xAD,\n\t0x42, 0xC9, 0xAE, 0x42, 0xC9, 0xAF, 0x42, 0xC9,\n\t0xB0, 0x42, 0xC9, 0xB1, 0x42, 0xC9, 0xB2, 0x42,\n\t0xC9, 0xB3, 0x42, 0xC9, 0xB4, 0x42, 0xC9, 0xB5,\n\t0x42, 0xC9, 0xB6, 0x42, 0xC9, 0xB7, 0x42, 0xC9,\n\t0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9, 0xBA, 0x42,\n\t// Bytes 180 - 1bf\n\t0xC9, 0xBB, 0x42, 0xC9, 0xBD, 0x42, 0xC9, 0xBE,\n\t0x42, 0xCA, 0x80, 0x42, 0xCA, 0x81, 0x42, 0xCA,\n\t0x82, 0x42, 0xCA, 0x83, 0x42, 0xCA, 0x84, 0x42,\n\t0xCA, 0x88, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A,\n\t0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA,\n\t0x8D, 0x42, 0xCA, 0x8E, 0x42, 0xCA, 0x8F, 0x42,\n\t0xCA, 0x90, 0x42, 0xCA, 0x91, 0x42, 0xCA, 0x92,\n\t0x42, 0xCA, 0x95, 0x42, 0xCA, 0x98, 0x42, 0xCA,\n\t// Bytes 1c0 - 1ff\n\t0x99, 0x42, 0xCA, 0x9B, 0x42, 0xCA, 0x9C, 0x42,\n\t0xCA, 0x9D, 0x42, 0xCA, 0x9F, 0x42, 0xCA, 0xA1,\n\t0x42, 0xCA, 0xA2, 0x42, 0xCA, 0xA3, 0x42, 0xCA,\n\t0xA4, 0x42, 0xCA, 0xA5, 0x42, 0xCA, 0xA6, 0x42,\n\t0xCA, 0xA7, 0x42, 0xCA, 0xA8, 0x42, 0xCA, 0xA9,\n\t0x42, 0xCA, 0xAA, 0x42, 0xCA, 0xAB, 0x42, 0xCA,\n\t0xB9, 0x42, 0xCB, 0x90, 0x42, 0xCB, 0x91, 0x42,\n\t0xCE, 0x91, 0x42, 0xCE, 0x92, 0x42, 0xCE, 0x93,\n\t// Bytes 200 - 23f\n\t0x42, 0xCE, 0x94, 0x42, 0xCE, 0x95, 0x42, 0xCE,\n\t0x96, 0x42, 0xCE, 0x97, 0x42, 0xCE, 0x98, 0x42,\n\t0xCE, 0x99, 0x42, 0xCE, 0x9A, 0x42, 0xCE, 0x9B,\n\t0x42, 0xCE, 0x9C, 0x42, 0xCE, 0x9D, 0x42, 0xCE,\n\t0x9E, 0x42, 0xCE, 0x9F, 0x42, 0xCE, 0xA0, 0x42,\n\t0xCE, 0xA1, 0x42, 0xCE, 0xA3, 0x42, 0xCE, 0xA4,\n\t0x42, 0xCE, 0xA5, 0x42, 0xCE, 0xA6, 0x42, 0xCE,\n\t0xA7, 0x42, 0xCE, 0xA8, 0x42, 0xCE, 0xA9, 0x42,\n\t// Bytes 240 - 27f\n\t0xCE, 0xB1, 0x42, 0xCE, 0xB2, 0x42, 0xCE, 0xB3,\n\t0x42, 0xCE, 0xB4, 0x42, 0xCE, 0xB5, 0x42, 0xCE,\n\t0xB6, 0x42, 0xCE, 0xB7, 0x42, 0xCE, 0xB8, 0x42,\n\t0xCE, 0xB9, 0x42, 0xCE, 0xBA, 0x42, 0xCE, 0xBB,\n\t0x42, 0xCE, 0xBC, 0x42, 0xCE, 0xBD, 0x42, 0xCE,\n\t0xBE, 0x42, 0xCE, 0xBF, 0x42, 0xCF, 0x80, 0x42,\n\t0xCF, 0x81, 0x42, 0xCF, 0x82, 0x42, 0xCF, 0x83,\n\t0x42, 0xCF, 0x84, 0x42, 0xCF, 0x85, 0x42, 0xCF,\n\t// Bytes 280 - 2bf\n\t0x86, 0x42, 0xCF, 0x87, 0x42, 0xCF, 0x88, 0x42,\n\t0xCF, 0x89, 0x42, 0xCF, 0x9C, 0x42, 0xCF, 0x9D,\n\t0x42, 0xD0, 0xB0, 0x42, 0xD0, 0xB1, 0x42, 0xD0,\n\t0xB2, 0x42, 0xD0, 0xB3, 0x42, 0xD0, 0xB4, 0x42,\n\t0xD0, 0xB5, 0x42, 0xD0, 0xB6, 0x42, 0xD0, 0xB7,\n\t0x42, 0xD0, 0xB8, 0x42, 0xD0, 0xBA, 0x42, 0xD0,\n\t0xBB, 0x42, 0xD0, 0xBC, 0x42, 0xD0, 0xBD, 0x42,\n\t0xD0, 0xBE, 0x42, 0xD0, 0xBF, 0x42, 0xD1, 0x80,\n\t// Bytes 2c0 - 2ff\n\t0x42, 0xD1, 0x81, 0x42, 0xD1, 0x82, 0x42, 0xD1,\n\t0x83, 0x42, 0xD1, 0x84, 0x42, 0xD1, 0x85, 0x42,\n\t0xD1, 0x86, 0x42, 0xD1, 0x87, 0x42, 0xD1, 0x88,\n\t0x42, 0xD1, 0x8A, 0x42, 0xD1, 0x8B, 0x42, 0xD1,\n\t0x8C, 0x42, 0xD1, 0x8D, 0x42, 0xD1, 0x8E, 0x42,\n\t0xD1, 0x95, 0x42, 0xD1, 0x96, 0x42, 0xD1, 0x98,\n\t0x42, 0xD1, 0x9F, 0x42, 0xD2, 0x91, 0x42, 0xD2,\n\t0xAB, 0x42, 0xD2, 0xAF, 0x42, 0xD2, 0xB1, 0x42,\n\t// Bytes 300 - 33f\n\t0xD3, 0x8F, 0x42, 0xD3, 0x99, 0x42, 0xD3, 0xA9,\n\t0x42, 0xD7, 0x90, 0x42, 0xD7, 0x91, 0x42, 0xD7,\n\t0x92, 0x42, 0xD7, 0x93, 0x42, 0xD7, 0x94, 0x42,\n\t0xD7, 0x9B, 0x42, 0xD7, 0x9C, 0x42, 0xD7, 0x9D,\n\t0x42, 0xD7, 0xA2, 0x42, 0xD7, 0xA8, 0x42, 0xD7,\n\t0xAA, 0x42, 0xD8, 0xA1, 0x42, 0xD8, 0xA7, 0x42,\n\t0xD8, 0xA8, 0x42, 0xD8, 0xA9, 0x42, 0xD8, 0xAA,\n\t0x42, 0xD8, 0xAB, 0x42, 0xD8, 0xAC, 0x42, 0xD8,\n\t// Bytes 340 - 37f\n\t0xAD, 0x42, 0xD8, 0xAE, 0x42, 0xD8, 0xAF, 0x42,\n\t0xD8, 0xB0, 0x42, 0xD8, 0xB1, 0x42, 0xD8, 0xB2,\n\t0x42, 0xD8, 0xB3, 0x42, 0xD8, 0xB4, 0x42, 0xD8,\n\t0xB5, 0x42, 0xD8, 0xB6, 0x42, 0xD8, 0xB7, 0x42,\n\t0xD8, 0xB8, 0x42, 0xD8, 0xB9, 0x42, 0xD8, 0xBA,\n\t0x42, 0xD9, 0x81, 0x42, 0xD9, 0x82, 0x42, 0xD9,\n\t0x83, 0x42, 0xD9, 0x84, 0x42, 0xD9, 0x85, 0x42,\n\t0xD9, 0x86, 0x42, 0xD9, 0x87, 0x42, 0xD9, 0x88,\n\t// Bytes 380 - 3bf\n\t0x42, 0xD9, 0x89, 0x42, 0xD9, 0x8A, 0x42, 0xD9,\n\t0xAE, 0x42, 0xD9, 0xAF, 0x42, 0xD9, 0xB1, 0x42,\n\t0xD9, 0xB9, 0x42, 0xD9, 0xBA, 0x42, 0xD9, 0xBB,\n\t0x42, 0xD9, 0xBE, 0x42, 0xD9, 0xBF, 0x42, 0xDA,\n\t0x80, 0x42, 0xDA, 0x83, 0x42, 0xDA, 0x84, 0x42,\n\t0xDA, 0x86, 0x42, 0xDA, 0x87, 0x42, 0xDA, 0x88,\n\t0x42, 0xDA, 0x8C, 0x42, 0xDA, 0x8D, 0x42, 0xDA,\n\t0x8E, 0x42, 0xDA, 0x91, 0x42, 0xDA, 0x98, 0x42,\n\t// Bytes 3c0 - 3ff\n\t0xDA, 0xA1, 0x42, 0xDA, 0xA4, 0x42, 0xDA, 0xA6,\n\t0x42, 0xDA, 0xA9, 0x42, 0xDA, 0xAD, 0x42, 0xDA,\n\t0xAF, 0x42, 0xDA, 0xB1, 0x42, 0xDA, 0xB3, 0x42,\n\t0xDA, 0xBA, 0x42, 0xDA, 0xBB, 0x42, 0xDA, 0xBE,\n\t0x42, 0xDB, 0x81, 0x42, 0xDB, 0x85, 0x42, 0xDB,\n\t0x86, 0x42, 0xDB, 0x87, 0x42, 0xDB, 0x88, 0x42,\n\t0xDB, 0x89, 0x42, 0xDB, 0x8B, 0x42, 0xDB, 0x8C,\n\t0x42, 0xDB, 0x90, 0x42, 0xDB, 0x92, 0x43, 0xE0,\n\t// Bytes 400 - 43f\n\t0xBC, 0x8B, 0x43, 0xE1, 0x83, 0x9C, 0x43, 0xE1,\n\t0x84, 0x80, 0x43, 0xE1, 0x84, 0x81, 0x43, 0xE1,\n\t0x84, 0x82, 0x43, 0xE1, 0x84, 0x83, 0x43, 0xE1,\n\t0x84, 0x84, 0x43, 0xE1, 0x84, 0x85, 0x43, 0xE1,\n\t0x84, 0x86, 0x43, 0xE1, 0x84, 0x87, 0x43, 0xE1,\n\t0x84, 0x88, 0x43, 0xE1, 0x84, 0x89, 0x43, 0xE1,\n\t0x84, 0x8A, 0x43, 0xE1, 0x84, 0x8B, 0x43, 0xE1,\n\t0x84, 0x8C, 0x43, 0xE1, 0x84, 0x8D, 0x43, 0xE1,\n\t// Bytes 440 - 47f\n\t0x84, 0x8E, 0x43, 0xE1, 0x84, 0x8F, 0x43, 0xE1,\n\t0x84, 0x90, 0x43, 0xE1, 0x84, 0x91, 0x43, 0xE1,\n\t0x84, 0x92, 0x43, 0xE1, 0x84, 0x94, 0x43, 0xE1,\n\t0x84, 0x95, 0x43, 0xE1, 0x84, 0x9A, 0x43, 0xE1,\n\t0x84, 0x9C, 0x43, 0xE1, 0x84, 0x9D, 0x43, 0xE1,\n\t0x84, 0x9E, 0x43, 0xE1, 0x84, 0xA0, 0x43, 0xE1,\n\t0x84, 0xA1, 0x43, 0xE1, 0x84, 0xA2, 0x43, 0xE1,\n\t0x84, 0xA3, 0x43, 0xE1, 0x84, 0xA7, 0x43, 0xE1,\n\t// Bytes 480 - 4bf\n\t0x84, 0xA9, 0x43, 0xE1, 0x84, 0xAB, 0x43, 0xE1,\n\t0x84, 0xAC, 0x43, 0xE1, 0x84, 0xAD, 0x43, 0xE1,\n\t0x84, 0xAE, 0x43, 0xE1, 0x84, 0xAF, 0x43, 0xE1,\n\t0x84, 0xB2, 0x43, 0xE1, 0x84, 0xB6, 0x43, 0xE1,\n\t0x85, 0x80, 0x43, 0xE1, 0x85, 0x87, 0x43, 0xE1,\n\t0x85, 0x8C, 0x43, 0xE1, 0x85, 0x97, 0x43, 0xE1,\n\t0x85, 0x98, 0x43, 0xE1, 0x85, 0x99, 0x43, 0xE1,\n\t0x85, 0xA0, 0x43, 0xE1, 0x86, 0x84, 0x43, 0xE1,\n\t// Bytes 4c0 - 4ff\n\t0x86, 0x85, 0x43, 0xE1, 0x86, 0x88, 0x43, 0xE1,\n\t0x86, 0x91, 0x43, 0xE1, 0x86, 0x92, 0x43, 0xE1,\n\t0x86, 0x94, 0x43, 0xE1, 0x86, 0x9E, 0x43, 0xE1,\n\t0x86, 0xA1, 0x43, 0xE1, 0x87, 0x87, 0x43, 0xE1,\n\t0x87, 0x88, 0x43, 0xE1, 0x87, 0x8C, 0x43, 0xE1,\n\t0x87, 0x8E, 0x43, 0xE1, 0x87, 0x93, 0x43, 0xE1,\n\t0x87, 0x97, 0x43, 0xE1, 0x87, 0x99, 0x43, 0xE1,\n\t0x87, 0x9D, 0x43, 0xE1, 0x87, 0x9F, 0x43, 0xE1,\n\t// Bytes 500 - 53f\n\t0x87, 0xB1, 0x43, 0xE1, 0x87, 0xB2, 0x43, 0xE1,\n\t0xB4, 0x82, 0x43, 0xE1, 0xB4, 0x96, 0x43, 0xE1,\n\t0xB4, 0x97, 0x43, 0xE1, 0xB4, 0x9C, 0x43, 0xE1,\n\t0xB4, 0x9D, 0x43, 0xE1, 0xB4, 0xA5, 0x43, 0xE1,\n\t0xB5, 0xBB, 0x43, 0xE1, 0xB6, 0x85, 0x43, 0xE1,\n\t0xB6, 0x91, 0x43, 0xE2, 0x80, 0x82, 0x43, 0xE2,\n\t0x80, 0x83, 0x43, 0xE2, 0x80, 0x90, 0x43, 0xE2,\n\t0x80, 0x93, 0x43, 0xE2, 0x80, 0x94, 0x43, 0xE2,\n\t// Bytes 540 - 57f\n\t0x82, 0xA9, 0x43, 0xE2, 0x86, 0x90, 0x43, 0xE2,\n\t0x86, 0x91, 0x43, 0xE2, 0x86, 0x92, 0x43, 0xE2,\n\t0x86, 0x93, 0x43, 0xE2, 0x88, 0x82, 0x43, 0xE2,\n\t0x88, 0x87, 0x43, 0xE2, 0x88, 0x91, 0x43, 0xE2,\n\t0x88, 0x92, 0x43, 0xE2, 0x94, 0x82, 0x43, 0xE2,\n\t0x96, 0xA0, 0x43, 0xE2, 0x97, 0x8B, 0x43, 0xE2,\n\t0xA6, 0x85, 0x43, 0xE2, 0xA6, 0x86, 0x43, 0xE2,\n\t0xB1, 0xB1, 0x43, 0xE2, 0xB5, 0xA1, 0x43, 0xE3,\n\t// Bytes 580 - 5bf\n\t0x80, 0x81, 0x43, 0xE3, 0x80, 0x82, 0x43, 0xE3,\n\t0x80, 0x88, 0x43, 0xE3, 0x80, 0x89, 0x43, 0xE3,\n\t0x80, 0x8A, 0x43, 0xE3, 0x80, 0x8B, 0x43, 0xE3,\n\t0x80, 0x8C, 0x43, 0xE3, 0x80, 0x8D, 0x43, 0xE3,\n\t0x80, 0x8E, 0x43, 0xE3, 0x80, 0x8F, 0x43, 0xE3,\n\t0x80, 0x90, 0x43, 0xE3, 0x80, 0x91, 0x43, 0xE3,\n\t0x80, 0x92, 0x43, 0xE3, 0x80, 0x94, 0x43, 0xE3,\n\t0x80, 0x95, 0x43, 0xE3, 0x80, 0x96, 0x43, 0xE3,\n\t// Bytes 5c0 - 5ff\n\t0x80, 0x97, 0x43, 0xE3, 0x82, 0xA1, 0x43, 0xE3,\n\t0x82, 0xA2, 0x43, 0xE3, 0x82, 0xA3, 0x43, 0xE3,\n\t0x82, 0xA4, 0x43, 0xE3, 0x82, 0xA5, 0x43, 0xE3,\n\t0x82, 0xA6, 0x43, 0xE3, 0x82, 0xA7, 0x43, 0xE3,\n\t0x82, 0xA8, 0x43, 0xE3, 0x82, 0xA9, 0x43, 0xE3,\n\t0x82, 0xAA, 0x43, 0xE3, 0x82, 0xAB, 0x43, 0xE3,\n\t0x82, 0xAD, 0x43, 0xE3, 0x82, 0xAF, 0x43, 0xE3,\n\t0x82, 0xB1, 0x43, 0xE3, 0x82, 0xB3, 0x43, 0xE3,\n\t// Bytes 600 - 63f\n\t0x82, 0xB5, 0x43, 0xE3, 0x82, 0xB7, 0x43, 0xE3,\n\t0x82, 0xB9, 0x43, 0xE3, 0x82, 0xBB, 0x43, 0xE3,\n\t0x82, 0xBD, 0x43, 0xE3, 0x82, 0xBF, 0x43, 0xE3,\n\t0x83, 0x81, 0x43, 0xE3, 0x83, 0x83, 0x43, 0xE3,\n\t0x83, 0x84, 0x43, 0xE3, 0x83, 0x86, 0x43, 0xE3,\n\t0x83, 0x88, 0x43, 0xE3, 0x83, 0x8A, 0x43, 0xE3,\n\t0x83, 0x8B, 0x43, 0xE3, 0x83, 0x8C, 0x43, 0xE3,\n\t0x83, 0x8D, 0x43, 0xE3, 0x83, 0x8E, 0x43, 0xE3,\n\t// Bytes 640 - 67f\n\t0x83, 0x8F, 0x43, 0xE3, 0x83, 0x92, 0x43, 0xE3,\n\t0x83, 0x95, 0x43, 0xE3, 0x83, 0x98, 0x43, 0xE3,\n\t0x83, 0x9B, 0x43, 0xE3, 0x83, 0x9E, 0x43, 0xE3,\n\t0x83, 0x9F, 0x43, 0xE3, 0x83, 0xA0, 0x43, 0xE3,\n\t0x83, 0xA1, 0x43, 0xE3, 0x83, 0xA2, 0x43, 0xE3,\n\t0x83, 0xA3, 0x43, 0xE3, 0x83, 0xA4, 0x43, 0xE3,\n\t0x83, 0xA5, 0x43, 0xE3, 0x83, 0xA6, 0x43, 0xE3,\n\t0x83, 0xA7, 0x43, 0xE3, 0x83, 0xA8, 0x43, 0xE3,\n\t// Bytes 680 - 6bf\n\t0x83, 0xA9, 0x43, 0xE3, 0x83, 0xAA, 0x43, 0xE3,\n\t0x83, 0xAB, 0x43, 0xE3, 0x83, 0xAC, 0x43, 0xE3,\n\t0x83, 0xAD, 0x43, 0xE3, 0x83, 0xAF, 0x43, 0xE3,\n\t0x83, 0xB0, 0x43, 0xE3, 0x83, 0xB1, 0x43, 0xE3,\n\t0x83, 0xB2, 0x43, 0xE3, 0x83, 0xB3, 0x43, 0xE3,\n\t0x83, 0xBB, 0x43, 0xE3, 0x83, 0xBC, 0x43, 0xE3,\n\t0x92, 0x9E, 0x43, 0xE3, 0x92, 0xB9, 0x43, 0xE3,\n\t0x92, 0xBB, 0x43, 0xE3, 0x93, 0x9F, 0x43, 0xE3,\n\t// Bytes 6c0 - 6ff\n\t0x94, 0x95, 0x43, 0xE3, 0x9B, 0xAE, 0x43, 0xE3,\n\t0x9B, 0xBC, 0x43, 0xE3, 0x9E, 0x81, 0x43, 0xE3,\n\t0xA0, 0xAF, 0x43, 0xE3, 0xA1, 0xA2, 0x43, 0xE3,\n\t0xA1, 0xBC, 0x43, 0xE3, 0xA3, 0x87, 0x43, 0xE3,\n\t0xA3, 0xA3, 0x43, 0xE3, 0xA4, 0x9C, 0x43, 0xE3,\n\t0xA4, 0xBA, 0x43, 0xE3, 0xA8, 0xAE, 0x43, 0xE3,\n\t0xA9, 0xAC, 0x43, 0xE3, 0xAB, 0xA4, 0x43, 0xE3,\n\t0xAC, 0x88, 0x43, 0xE3, 0xAC, 0x99, 0x43, 0xE3,\n\t// Bytes 700 - 73f\n\t0xAD, 0x89, 0x43, 0xE3, 0xAE, 0x9D, 0x43, 0xE3,\n\t0xB0, 0x98, 0x43, 0xE3, 0xB1, 0x8E, 0x43, 0xE3,\n\t0xB4, 0xB3, 0x43, 0xE3, 0xB6, 0x96, 0x43, 0xE3,\n\t0xBA, 0xAC, 0x43, 0xE3, 0xBA, 0xB8, 0x43, 0xE3,\n\t0xBC, 0x9B, 0x43, 0xE3, 0xBF, 0xBC, 0x43, 0xE4,\n\t0x80, 0x88, 0x43, 0xE4, 0x80, 0x98, 0x43, 0xE4,\n\t0x80, 0xB9, 0x43, 0xE4, 0x81, 0x86, 0x43, 0xE4,\n\t0x82, 0x96, 0x43, 0xE4, 0x83, 0xA3, 0x43, 0xE4,\n\t// Bytes 740 - 77f\n\t0x84, 0xAF, 0x43, 0xE4, 0x88, 0x82, 0x43, 0xE4,\n\t0x88, 0xA7, 0x43, 0xE4, 0x8A, 0xA0, 0x43, 0xE4,\n\t0x8C, 0x81, 0x43, 0xE4, 0x8C, 0xB4, 0x43, 0xE4,\n\t0x8D, 0x99, 0x43, 0xE4, 0x8F, 0x95, 0x43, 0xE4,\n\t0x8F, 0x99, 0x43, 0xE4, 0x90, 0x8B, 0x43, 0xE4,\n\t0x91, 0xAB, 0x43, 0xE4, 0x94, 0xAB, 0x43, 0xE4,\n\t0x95, 0x9D, 0x43, 0xE4, 0x95, 0xA1, 0x43, 0xE4,\n\t0x95, 0xAB, 0x43, 0xE4, 0x97, 0x97, 0x43, 0xE4,\n\t// Bytes 780 - 7bf\n\t0x97, 0xB9, 0x43, 0xE4, 0x98, 0xB5, 0x43, 0xE4,\n\t0x9A, 0xBE, 0x43, 0xE4, 0x9B, 0x87, 0x43, 0xE4,\n\t0xA6, 0x95, 0x43, 0xE4, 0xA7, 0xA6, 0x43, 0xE4,\n\t0xA9, 0xAE, 0x43, 0xE4, 0xA9, 0xB6, 0x43, 0xE4,\n\t0xAA, 0xB2, 0x43, 0xE4, 0xAC, 0xB3, 0x43, 0xE4,\n\t0xAF, 0x8E, 0x43, 0xE4, 0xB3, 0x8E, 0x43, 0xE4,\n\t0xB3, 0xAD, 0x43, 0xE4, 0xB3, 0xB8, 0x43, 0xE4,\n\t0xB5, 0x96, 0x43, 0xE4, 0xB8, 0x80, 0x43, 0xE4,\n\t// Bytes 7c0 - 7ff\n\t0xB8, 0x81, 0x43, 0xE4, 0xB8, 0x83, 0x43, 0xE4,\n\t0xB8, 0x89, 0x43, 0xE4, 0xB8, 0x8A, 0x43, 0xE4,\n\t0xB8, 0x8B, 0x43, 0xE4, 0xB8, 0x8D, 0x43, 0xE4,\n\t0xB8, 0x99, 0x43, 0xE4, 0xB8, 0xA6, 0x43, 0xE4,\n\t0xB8, 0xA8, 0x43, 0xE4, 0xB8, 0xAD, 0x43, 0xE4,\n\t0xB8, 0xB2, 0x43, 0xE4, 0xB8, 0xB6, 0x43, 0xE4,\n\t0xB8, 0xB8, 0x43, 0xE4, 0xB8, 0xB9, 0x43, 0xE4,\n\t0xB8, 0xBD, 0x43, 0xE4, 0xB8, 0xBF, 0x43, 0xE4,\n\t// Bytes 800 - 83f\n\t0xB9, 0x81, 0x43, 0xE4, 0xB9, 0x99, 0x43, 0xE4,\n\t0xB9, 0x9D, 0x43, 0xE4, 0xBA, 0x82, 0x43, 0xE4,\n\t0xBA, 0x85, 0x43, 0xE4, 0xBA, 0x86, 0x43, 0xE4,\n\t0xBA, 0x8C, 0x43, 0xE4, 0xBA, 0x94, 0x43, 0xE4,\n\t0xBA, 0xA0, 0x43, 0xE4, 0xBA, 0xA4, 0x43, 0xE4,\n\t0xBA, 0xAE, 0x43, 0xE4, 0xBA, 0xBA, 0x43, 0xE4,\n\t0xBB, 0x80, 0x43, 0xE4, 0xBB, 0x8C, 0x43, 0xE4,\n\t0xBB, 0xA4, 0x43, 0xE4, 0xBC, 0x81, 0x43, 0xE4,\n\t// Bytes 840 - 87f\n\t0xBC, 0x91, 0x43, 0xE4, 0xBD, 0xA0, 0x43, 0xE4,\n\t0xBE, 0x80, 0x43, 0xE4, 0xBE, 0x86, 0x43, 0xE4,\n\t0xBE, 0x8B, 0x43, 0xE4, 0xBE, 0xAE, 0x43, 0xE4,\n\t0xBE, 0xBB, 0x43, 0xE4, 0xBE, 0xBF, 0x43, 0xE5,\n\t0x80, 0x82, 0x43, 0xE5, 0x80, 0xAB, 0x43, 0xE5,\n\t0x81, 0xBA, 0x43, 0xE5, 0x82, 0x99, 0x43, 0xE5,\n\t0x83, 0x8F, 0x43, 0xE5, 0x83, 0x9A, 0x43, 0xE5,\n\t0x83, 0xA7, 0x43, 0xE5, 0x84, 0xAA, 0x43, 0xE5,\n\t// Bytes 880 - 8bf\n\t0x84, 0xBF, 0x43, 0xE5, 0x85, 0x80, 0x43, 0xE5,\n\t0x85, 0x85, 0x43, 0xE5, 0x85, 0x8D, 0x43, 0xE5,\n\t0x85, 0x94, 0x43, 0xE5, 0x85, 0xA4, 0x43, 0xE5,\n\t0x85, 0xA5, 0x43, 0xE5, 0x85, 0xA7, 0x43, 0xE5,\n\t0x85, 0xA8, 0x43, 0xE5, 0x85, 0xA9, 0x43, 0xE5,\n\t0x85, 0xAB, 0x43, 0xE5, 0x85, 0xAD, 0x43, 0xE5,\n\t0x85, 0xB7, 0x43, 0xE5, 0x86, 0x80, 0x43, 0xE5,\n\t0x86, 0x82, 0x43, 0xE5, 0x86, 0x8D, 0x43, 0xE5,\n\t// Bytes 8c0 - 8ff\n\t0x86, 0x92, 0x43, 0xE5, 0x86, 0x95, 0x43, 0xE5,\n\t0x86, 0x96, 0x43, 0xE5, 0x86, 0x97, 0x43, 0xE5,\n\t0x86, 0x99, 0x43, 0xE5, 0x86, 0xA4, 0x43, 0xE5,\n\t0x86, 0xAB, 0x43, 0xE5, 0x86, 0xAC, 0x43, 0xE5,\n\t0x86, 0xB5, 0x43, 0xE5, 0x86, 0xB7, 0x43, 0xE5,\n\t0x87, 0x89, 0x43, 0xE5, 0x87, 0x8C, 0x43, 0xE5,\n\t0x87, 0x9C, 0x43, 0xE5, 0x87, 0x9E, 0x43, 0xE5,\n\t0x87, 0xA0, 0x43, 0xE5, 0x87, 0xB5, 0x43, 0xE5,\n\t// Bytes 900 - 93f\n\t0x88, 0x80, 0x43, 0xE5, 0x88, 0x83, 0x43, 0xE5,\n\t0x88, 0x87, 0x43, 0xE5, 0x88, 0x97, 0x43, 0xE5,\n\t0x88, 0x9D, 0x43, 0xE5, 0x88, 0xA9, 0x43, 0xE5,\n\t0x88, 0xBA, 0x43, 0xE5, 0x88, 0xBB, 0x43, 0xE5,\n\t0x89, 0x86, 0x43, 0xE5, 0x89, 0x8D, 0x43, 0xE5,\n\t0x89, 0xB2, 0x43, 0xE5, 0x89, 0xB7, 0x43, 0xE5,\n\t0x8A, 0x89, 0x43, 0xE5, 0x8A, 0x9B, 0x43, 0xE5,\n\t0x8A, 0xA3, 0x43, 0xE5, 0x8A, 0xB3, 0x43, 0xE5,\n\t// Bytes 940 - 97f\n\t0x8A, 0xB4, 0x43, 0xE5, 0x8B, 0x87, 0x43, 0xE5,\n\t0x8B, 0x89, 0x43, 0xE5, 0x8B, 0x92, 0x43, 0xE5,\n\t0x8B, 0x9E, 0x43, 0xE5, 0x8B, 0xA4, 0x43, 0xE5,\n\t0x8B, 0xB5, 0x43, 0xE5, 0x8B, 0xB9, 0x43, 0xE5,\n\t0x8B, 0xBA, 0x43, 0xE5, 0x8C, 0x85, 0x43, 0xE5,\n\t0x8C, 0x86, 0x43, 0xE5, 0x8C, 0x95, 0x43, 0xE5,\n\t0x8C, 0x97, 0x43, 0xE5, 0x8C, 0x9A, 0x43, 0xE5,\n\t0x8C, 0xB8, 0x43, 0xE5, 0x8C, 0xBB, 0x43, 0xE5,\n\t// Bytes 980 - 9bf\n\t0x8C, 0xBF, 0x43, 0xE5, 0x8D, 0x81, 0x43, 0xE5,\n\t0x8D, 0x84, 0x43, 0xE5, 0x8D, 0x85, 0x43, 0xE5,\n\t0x8D, 0x89, 0x43, 0xE5, 0x8D, 0x91, 0x43, 0xE5,\n\t0x8D, 0x94, 0x43, 0xE5, 0x8D, 0x9A, 0x43, 0xE5,\n\t0x8D, 0x9C, 0x43, 0xE5, 0x8D, 0xA9, 0x43, 0xE5,\n\t0x8D, 0xB0, 0x43, 0xE5, 0x8D, 0xB3, 0x43, 0xE5,\n\t0x8D, 0xB5, 0x43, 0xE5, 0x8D, 0xBD, 0x43, 0xE5,\n\t0x8D, 0xBF, 0x43, 0xE5, 0x8E, 0x82, 0x43, 0xE5,\n\t// Bytes 9c0 - 9ff\n\t0x8E, 0xB6, 0x43, 0xE5, 0x8F, 0x83, 0x43, 0xE5,\n\t0x8F, 0x88, 0x43, 0xE5, 0x8F, 0x8A, 0x43, 0xE5,\n\t0x8F, 0x8C, 0x43, 0xE5, 0x8F, 0x9F, 0x43, 0xE5,\n\t0x8F, 0xA3, 0x43, 0xE5, 0x8F, 0xA5, 0x43, 0xE5,\n\t0x8F, 0xAB, 0x43, 0xE5, 0x8F, 0xAF, 0x43, 0xE5,\n\t0x8F, 0xB1, 0x43, 0xE5, 0x8F, 0xB3, 0x43, 0xE5,\n\t0x90, 0x86, 0x43, 0xE5, 0x90, 0x88, 0x43, 0xE5,\n\t0x90, 0x8D, 0x43, 0xE5, 0x90, 0x8F, 0x43, 0xE5,\n\t// Bytes a00 - a3f\n\t0x90, 0x9D, 0x43, 0xE5, 0x90, 0xB8, 0x43, 0xE5,\n\t0x90, 0xB9, 0x43, 0xE5, 0x91, 0x82, 0x43, 0xE5,\n\t0x91, 0x88, 0x43, 0xE5, 0x91, 0xA8, 0x43, 0xE5,\n\t0x92, 0x9E, 0x43, 0xE5, 0x92, 0xA2, 0x43, 0xE5,\n\t0x92, 0xBD, 0x43, 0xE5, 0x93, 0xB6, 0x43, 0xE5,\n\t0x94, 0x90, 0x43, 0xE5, 0x95, 0x8F, 0x43, 0xE5,\n\t0x95, 0x93, 0x43, 0xE5, 0x95, 0x95, 0x43, 0xE5,\n\t0x95, 0xA3, 0x43, 0xE5, 0x96, 0x84, 0x43, 0xE5,\n\t// Bytes a40 - a7f\n\t0x96, 0x87, 0x43, 0xE5, 0x96, 0x99, 0x43, 0xE5,\n\t0x96, 0x9D, 0x43, 0xE5, 0x96, 0xAB, 0x43, 0xE5,\n\t0x96, 0xB3, 0x43, 0xE5, 0x96, 0xB6, 0x43, 0xE5,\n\t0x97, 0x80, 0x43, 0xE5, 0x97, 0x82, 0x43, 0xE5,\n\t0x97, 0xA2, 0x43, 0xE5, 0x98, 0x86, 0x43, 0xE5,\n\t0x99, 0x91, 0x43, 0xE5, 0x99, 0xA8, 0x43, 0xE5,\n\t0x99, 0xB4, 0x43, 0xE5, 0x9B, 0x97, 0x43, 0xE5,\n\t0x9B, 0x9B, 0x43, 0xE5, 0x9B, 0xB9, 0x43, 0xE5,\n\t// Bytes a80 - abf\n\t0x9C, 0x96, 0x43, 0xE5, 0x9C, 0x97, 0x43, 0xE5,\n\t0x9C, 0x9F, 0x43, 0xE5, 0x9C, 0xB0, 0x43, 0xE5,\n\t0x9E, 0x8B, 0x43, 0xE5, 0x9F, 0x8E, 0x43, 0xE5,\n\t0x9F, 0xB4, 0x43, 0xE5, 0xA0, 0x8D, 0x43, 0xE5,\n\t0xA0, 0xB1, 0x43, 0xE5, 0xA0, 0xB2, 0x43, 0xE5,\n\t0xA1, 0x80, 0x43, 0xE5, 0xA1, 0x9A, 0x43, 0xE5,\n\t0xA1, 0x9E, 0x43, 0xE5, 0xA2, 0xA8, 0x43, 0xE5,\n\t0xA2, 0xAC, 0x43, 0xE5, 0xA2, 0xB3, 0x43, 0xE5,\n\t// Bytes ac0 - aff\n\t0xA3, 0x98, 0x43, 0xE5, 0xA3, 0x9F, 0x43, 0xE5,\n\t0xA3, 0xAB, 0x43, 0xE5, 0xA3, 0xAE, 0x43, 0xE5,\n\t0xA3, 0xB0, 0x43, 0xE5, 0xA3, 0xB2, 0x43, 0xE5,\n\t0xA3, 0xB7, 0x43, 0xE5, 0xA4, 0x82, 0x43, 0xE5,\n\t0xA4, 0x86, 0x43, 0xE5, 0xA4, 0x8A, 0x43, 0xE5,\n\t0xA4, 0x95, 0x43, 0xE5, 0xA4, 0x9A, 0x43, 0xE5,\n\t0xA4, 0x9C, 0x43, 0xE5, 0xA4, 0xA2, 0x43, 0xE5,\n\t0xA4, 0xA7, 0x43, 0xE5, 0xA4, 0xA9, 0x43, 0xE5,\n\t// Bytes b00 - b3f\n\t0xA5, 0x84, 0x43, 0xE5, 0xA5, 0x88, 0x43, 0xE5,\n\t0xA5, 0x91, 0x43, 0xE5, 0xA5, 0x94, 0x43, 0xE5,\n\t0xA5, 0xA2, 0x43, 0xE5, 0xA5, 0xB3, 0x43, 0xE5,\n\t0xA7, 0x98, 0x43, 0xE5, 0xA7, 0xAC, 0x43, 0xE5,\n\t0xA8, 0x9B, 0x43, 0xE5, 0xA8, 0xA7, 0x43, 0xE5,\n\t0xA9, 0xA2, 0x43, 0xE5, 0xA9, 0xA6, 0x43, 0xE5,\n\t0xAA, 0xB5, 0x43, 0xE5, 0xAC, 0x88, 0x43, 0xE5,\n\t0xAC, 0xA8, 0x43, 0xE5, 0xAC, 0xBE, 0x43, 0xE5,\n\t// Bytes b40 - b7f\n\t0xAD, 0x90, 0x43, 0xE5, 0xAD, 0x97, 0x43, 0xE5,\n\t0xAD, 0xA6, 0x43, 0xE5, 0xAE, 0x80, 0x43, 0xE5,\n\t0xAE, 0x85, 0x43, 0xE5, 0xAE, 0x97, 0x43, 0xE5,\n\t0xAF, 0x83, 0x43, 0xE5, 0xAF, 0x98, 0x43, 0xE5,\n\t0xAF, 0xA7, 0x43, 0xE5, 0xAF, 0xAE, 0x43, 0xE5,\n\t0xAF, 0xB3, 0x43, 0xE5, 0xAF, 0xB8, 0x43, 0xE5,\n\t0xAF, 0xBF, 0x43, 0xE5, 0xB0, 0x86, 0x43, 0xE5,\n\t0xB0, 0x8F, 0x43, 0xE5, 0xB0, 0xA2, 0x43, 0xE5,\n\t// Bytes b80 - bbf\n\t0xB0, 0xB8, 0x43, 0xE5, 0xB0, 0xBF, 0x43, 0xE5,\n\t0xB1, 0xA0, 0x43, 0xE5, 0xB1, 0xA2, 0x43, 0xE5,\n\t0xB1, 0xA4, 0x43, 0xE5, 0xB1, 0xA5, 0x43, 0xE5,\n\t0xB1, 0xAE, 0x43, 0xE5, 0xB1, 0xB1, 0x43, 0xE5,\n\t0xB2, 0x8D, 0x43, 0xE5, 0xB3, 0x80, 0x43, 0xE5,\n\t0xB4, 0x99, 0x43, 0xE5, 0xB5, 0x83, 0x43, 0xE5,\n\t0xB5, 0x90, 0x43, 0xE5, 0xB5, 0xAB, 0x43, 0xE5,\n\t0xB5, 0xAE, 0x43, 0xE5, 0xB5, 0xBC, 0x43, 0xE5,\n\t// Bytes bc0 - bff\n\t0xB6, 0xB2, 0x43, 0xE5, 0xB6, 0xBA, 0x43, 0xE5,\n\t0xB7, 0x9B, 0x43, 0xE5, 0xB7, 0xA1, 0x43, 0xE5,\n\t0xB7, 0xA2, 0x43, 0xE5, 0xB7, 0xA5, 0x43, 0xE5,\n\t0xB7, 0xA6, 0x43, 0xE5, 0xB7, 0xB1, 0x43, 0xE5,\n\t0xB7, 0xBD, 0x43, 0xE5, 0xB7, 0xBE, 0x43, 0xE5,\n\t0xB8, 0xA8, 0x43, 0xE5, 0xB8, 0xBD, 0x43, 0xE5,\n\t0xB9, 0xA9, 0x43, 0xE5, 0xB9, 0xB2, 0x43, 0xE5,\n\t0xB9, 0xB4, 0x43, 0xE5, 0xB9, 0xBA, 0x43, 0xE5,\n\t// Bytes c00 - c3f\n\t0xB9, 0xBC, 0x43, 0xE5, 0xB9, 0xBF, 0x43, 0xE5,\n\t0xBA, 0xA6, 0x43, 0xE5, 0xBA, 0xB0, 0x43, 0xE5,\n\t0xBA, 0xB3, 0x43, 0xE5, 0xBA, 0xB6, 0x43, 0xE5,\n\t0xBB, 0x89, 0x43, 0xE5, 0xBB, 0x8A, 0x43, 0xE5,\n\t0xBB, 0x92, 0x43, 0xE5, 0xBB, 0x93, 0x43, 0xE5,\n\t0xBB, 0x99, 0x43, 0xE5, 0xBB, 0xAC, 0x43, 0xE5,\n\t0xBB, 0xB4, 0x43, 0xE5, 0xBB, 0xBE, 0x43, 0xE5,\n\t0xBC, 0x84, 0x43, 0xE5, 0xBC, 0x8B, 0x43, 0xE5,\n\t// Bytes c40 - c7f\n\t0xBC, 0x93, 0x43, 0xE5, 0xBC, 0xA2, 0x43, 0xE5,\n\t0xBD, 0x90, 0x43, 0xE5, 0xBD, 0x93, 0x43, 0xE5,\n\t0xBD, 0xA1, 0x43, 0xE5, 0xBD, 0xA2, 0x43, 0xE5,\n\t0xBD, 0xA9, 0x43, 0xE5, 0xBD, 0xAB, 0x43, 0xE5,\n\t0xBD, 0xB3, 0x43, 0xE5, 0xBE, 0x8B, 0x43, 0xE5,\n\t0xBE, 0x8C, 0x43, 0xE5, 0xBE, 0x97, 0x43, 0xE5,\n\t0xBE, 0x9A, 0x43, 0xE5, 0xBE, 0xA9, 0x43, 0xE5,\n\t0xBE, 0xAD, 0x43, 0xE5, 0xBF, 0x83, 0x43, 0xE5,\n\t// Bytes c80 - cbf\n\t0xBF, 0x8D, 0x43, 0xE5, 0xBF, 0x97, 0x43, 0xE5,\n\t0xBF, 0xB5, 0x43, 0xE5, 0xBF, 0xB9, 0x43, 0xE6,\n\t0x80, 0x92, 0x43, 0xE6, 0x80, 0x9C, 0x43, 0xE6,\n\t0x81, 0xB5, 0x43, 0xE6, 0x82, 0x81, 0x43, 0xE6,\n\t0x82, 0x94, 0x43, 0xE6, 0x83, 0x87, 0x43, 0xE6,\n\t0x83, 0x98, 0x43, 0xE6, 0x83, 0xA1, 0x43, 0xE6,\n\t0x84, 0x88, 0x43, 0xE6, 0x85, 0x84, 0x43, 0xE6,\n\t0x85, 0x88, 0x43, 0xE6, 0x85, 0x8C, 0x43, 0xE6,\n\t// Bytes cc0 - cff\n\t0x85, 0x8E, 0x43, 0xE6, 0x85, 0xA0, 0x43, 0xE6,\n\t0x85, 0xA8, 0x43, 0xE6, 0x85, 0xBA, 0x43, 0xE6,\n\t0x86, 0x8E, 0x43, 0xE6, 0x86, 0x90, 0x43, 0xE6,\n\t0x86, 0xA4, 0x43, 0xE6, 0x86, 0xAF, 0x43, 0xE6,\n\t0x86, 0xB2, 0x43, 0xE6, 0x87, 0x9E, 0x43, 0xE6,\n\t0x87, 0xB2, 0x43, 0xE6, 0x87, 0xB6, 0x43, 0xE6,\n\t0x88, 0x80, 0x43, 0xE6, 0x88, 0x88, 0x43, 0xE6,\n\t0x88, 0x90, 0x43, 0xE6, 0x88, 0x9B, 0x43, 0xE6,\n\t// Bytes d00 - d3f\n\t0x88, 0xAE, 0x43, 0xE6, 0x88, 0xB4, 0x43, 0xE6,\n\t0x88, 0xB6, 0x43, 0xE6, 0x89, 0x8B, 0x43, 0xE6,\n\t0x89, 0x93, 0x43, 0xE6, 0x89, 0x9D, 0x43, 0xE6,\n\t0x8A, 0x95, 0x43, 0xE6, 0x8A, 0xB1, 0x43, 0xE6,\n\t0x8B, 0x89, 0x43, 0xE6, 0x8B, 0x8F, 0x43, 0xE6,\n\t0x8B, 0x93, 0x43, 0xE6, 0x8B, 0x94, 0x43, 0xE6,\n\t0x8B, 0xBC, 0x43, 0xE6, 0x8B, 0xBE, 0x43, 0xE6,\n\t0x8C, 0x87, 0x43, 0xE6, 0x8C, 0xBD, 0x43, 0xE6,\n\t// Bytes d40 - d7f\n\t0x8D, 0x90, 0x43, 0xE6, 0x8D, 0x95, 0x43, 0xE6,\n\t0x8D, 0xA8, 0x43, 0xE6, 0x8D, 0xBB, 0x43, 0xE6,\n\t0x8E, 0x83, 0x43, 0xE6, 0x8E, 0xA0, 0x43, 0xE6,\n\t0x8E, 0xA9, 0x43, 0xE6, 0x8F, 0x84, 0x43, 0xE6,\n\t0x8F, 0x85, 0x43, 0xE6, 0x8F, 0xA4, 0x43, 0xE6,\n\t0x90, 0x9C, 0x43, 0xE6, 0x90, 0xA2, 0x43, 0xE6,\n\t0x91, 0x92, 0x43, 0xE6, 0x91, 0xA9, 0x43, 0xE6,\n\t0x91, 0xB7, 0x43, 0xE6, 0x91, 0xBE, 0x43, 0xE6,\n\t// Bytes d80 - dbf\n\t0x92, 0x9A, 0x43, 0xE6, 0x92, 0x9D, 0x43, 0xE6,\n\t0x93, 0x84, 0x43, 0xE6, 0x94, 0xAF, 0x43, 0xE6,\n\t0x94, 0xB4, 0x43, 0xE6, 0x95, 0x8F, 0x43, 0xE6,\n\t0x95, 0x96, 0x43, 0xE6, 0x95, 0xAC, 0x43, 0xE6,\n\t0x95, 0xB8, 0x43, 0xE6, 0x96, 0x87, 0x43, 0xE6,\n\t0x96, 0x97, 0x43, 0xE6, 0x96, 0x99, 0x43, 0xE6,\n\t0x96, 0xA4, 0x43, 0xE6, 0x96, 0xB0, 0x43, 0xE6,\n\t0x96, 0xB9, 0x43, 0xE6, 0x97, 0x85, 0x43, 0xE6,\n\t// Bytes dc0 - dff\n\t0x97, 0xA0, 0x43, 0xE6, 0x97, 0xA2, 0x43, 0xE6,\n\t0x97, 0xA3, 0x43, 0xE6, 0x97, 0xA5, 0x43, 0xE6,\n\t0x98, 0x93, 0x43, 0xE6, 0x98, 0xA0, 0x43, 0xE6,\n\t0x99, 0x89, 0x43, 0xE6, 0x99, 0xB4, 0x43, 0xE6,\n\t0x9A, 0x88, 0x43, 0xE6, 0x9A, 0x91, 0x43, 0xE6,\n\t0x9A, 0x9C, 0x43, 0xE6, 0x9A, 0xB4, 0x43, 0xE6,\n\t0x9B, 0x86, 0x43, 0xE6, 0x9B, 0xB0, 0x43, 0xE6,\n\t0x9B, 0xB4, 0x43, 0xE6, 0x9B, 0xB8, 0x43, 0xE6,\n\t// Bytes e00 - e3f\n\t0x9C, 0x80, 0x43, 0xE6, 0x9C, 0x88, 0x43, 0xE6,\n\t0x9C, 0x89, 0x43, 0xE6, 0x9C, 0x97, 0x43, 0xE6,\n\t0x9C, 0x9B, 0x43, 0xE6, 0x9C, 0xA1, 0x43, 0xE6,\n\t0x9C, 0xA8, 0x43, 0xE6, 0x9D, 0x8E, 0x43, 0xE6,\n\t0x9D, 0x93, 0x43, 0xE6, 0x9D, 0x96, 0x43, 0xE6,\n\t0x9D, 0x9E, 0x43, 0xE6, 0x9D, 0xBB, 0x43, 0xE6,\n\t0x9E, 0x85, 0x43, 0xE6, 0x9E, 0x97, 0x43, 0xE6,\n\t0x9F, 0xB3, 0x43, 0xE6, 0x9F, 0xBA, 0x43, 0xE6,\n\t// Bytes e40 - e7f\n\t0xA0, 0x97, 0x43, 0xE6, 0xA0, 0x9F, 0x43, 0xE6,\n\t0xA0, 0xAA, 0x43, 0xE6, 0xA1, 0x92, 0x43, 0xE6,\n\t0xA2, 0x81, 0x43, 0xE6, 0xA2, 0x85, 0x43, 0xE6,\n\t0xA2, 0x8E, 0x43, 0xE6, 0xA2, 0xA8, 0x43, 0xE6,\n\t0xA4, 0x94, 0x43, 0xE6, 0xA5, 0x82, 0x43, 0xE6,\n\t0xA6, 0xA3, 0x43, 0xE6, 0xA7, 0xAA, 0x43, 0xE6,\n\t0xA8, 0x82, 0x43, 0xE6, 0xA8, 0x93, 0x43, 0xE6,\n\t0xAA, 0xA8, 0x43, 0xE6, 0xAB, 0x93, 0x43, 0xE6,\n\t// Bytes e80 - ebf\n\t0xAB, 0x9B, 0x43, 0xE6, 0xAC, 0x84, 0x43, 0xE6,\n\t0xAC, 0xA0, 0x43, 0xE6, 0xAC, 0xA1, 0x43, 0xE6,\n\t0xAD, 0x94, 0x43, 0xE6, 0xAD, 0xA2, 0x43, 0xE6,\n\t0xAD, 0xA3, 0x43, 0xE6, 0xAD, 0xB2, 0x43, 0xE6,\n\t0xAD, 0xB7, 0x43, 0xE6, 0xAD, 0xB9, 0x43, 0xE6,\n\t0xAE, 0x9F, 0x43, 0xE6, 0xAE, 0xAE, 0x43, 0xE6,\n\t0xAE, 0xB3, 0x43, 0xE6, 0xAE, 0xBA, 0x43, 0xE6,\n\t0xAE, 0xBB, 0x43, 0xE6, 0xAF, 0x8B, 0x43, 0xE6,\n\t// Bytes ec0 - eff\n\t0xAF, 0x8D, 0x43, 0xE6, 0xAF, 0x94, 0x43, 0xE6,\n\t0xAF, 0x9B, 0x43, 0xE6, 0xB0, 0x8F, 0x43, 0xE6,\n\t0xB0, 0x94, 0x43, 0xE6, 0xB0, 0xB4, 0x43, 0xE6,\n\t0xB1, 0x8E, 0x43, 0xE6, 0xB1, 0xA7, 0x43, 0xE6,\n\t0xB2, 0x88, 0x43, 0xE6, 0xB2, 0xBF, 0x43, 0xE6,\n\t0xB3, 0x8C, 0x43, 0xE6, 0xB3, 0x8D, 0x43, 0xE6,\n\t0xB3, 0xA5, 0x43, 0xE6, 0xB3, 0xA8, 0x43, 0xE6,\n\t0xB4, 0x96, 0x43, 0xE6, 0xB4, 0x9B, 0x43, 0xE6,\n\t// Bytes f00 - f3f\n\t0xB4, 0x9E, 0x43, 0xE6, 0xB4, 0xB4, 0x43, 0xE6,\n\t0xB4, 0xBE, 0x43, 0xE6, 0xB5, 0x81, 0x43, 0xE6,\n\t0xB5, 0xA9, 0x43, 0xE6, 0xB5, 0xAA, 0x43, 0xE6,\n\t0xB5, 0xB7, 0x43, 0xE6, 0xB5, 0xB8, 0x43, 0xE6,\n\t0xB6, 0x85, 0x43, 0xE6, 0xB7, 0x8B, 0x43, 0xE6,\n\t0xB7, 0x9A, 0x43, 0xE6, 0xB7, 0xAA, 0x43, 0xE6,\n\t0xB7, 0xB9, 0x43, 0xE6, 0xB8, 0x9A, 0x43, 0xE6,\n\t0xB8, 0xAF, 0x43, 0xE6, 0xB9, 0xAE, 0x43, 0xE6,\n\t// Bytes f40 - f7f\n\t0xBA, 0x80, 0x43, 0xE6, 0xBA, 0x9C, 0x43, 0xE6,\n\t0xBA, 0xBA, 0x43, 0xE6, 0xBB, 0x87, 0x43, 0xE6,\n\t0xBB, 0x8B, 0x43, 0xE6, 0xBB, 0x91, 0x43, 0xE6,\n\t0xBB, 0x9B, 0x43, 0xE6, 0xBC, 0x8F, 0x43, 0xE6,\n\t0xBC, 0x94, 0x43, 0xE6, 0xBC, 0xA2, 0x43, 0xE6,\n\t0xBC, 0xA3, 0x43, 0xE6, 0xBD, 0xAE, 0x43, 0xE6,\n\t0xBF, 0x86, 0x43, 0xE6, 0xBF, 0xAB, 0x43, 0xE6,\n\t0xBF, 0xBE, 0x43, 0xE7, 0x80, 0x9B, 0x43, 0xE7,\n\t// Bytes f80 - fbf\n\t0x80, 0x9E, 0x43, 0xE7, 0x80, 0xB9, 0x43, 0xE7,\n\t0x81, 0x8A, 0x43, 0xE7, 0x81, 0xAB, 0x43, 0xE7,\n\t0x81, 0xB0, 0x43, 0xE7, 0x81, 0xB7, 0x43, 0xE7,\n\t0x81, 0xBD, 0x43, 0xE7, 0x82, 0x99, 0x43, 0xE7,\n\t0x82, 0xAD, 0x43, 0xE7, 0x83, 0x88, 0x43, 0xE7,\n\t0x83, 0x99, 0x43, 0xE7, 0x84, 0xA1, 0x43, 0xE7,\n\t0x85, 0x85, 0x43, 0xE7, 0x85, 0x89, 0x43, 0xE7,\n\t0x85, 0xAE, 0x43, 0xE7, 0x86, 0x9C, 0x43, 0xE7,\n\t// Bytes fc0 - fff\n\t0x87, 0x8E, 0x43, 0xE7, 0x87, 0x90, 0x43, 0xE7,\n\t0x88, 0x90, 0x43, 0xE7, 0x88, 0x9B, 0x43, 0xE7,\n\t0x88, 0xA8, 0x43, 0xE7, 0x88, 0xAA, 0x43, 0xE7,\n\t0x88, 0xAB, 0x43, 0xE7, 0x88, 0xB5, 0x43, 0xE7,\n\t0x88, 0xB6, 0x43, 0xE7, 0x88, 0xBB, 0x43, 0xE7,\n\t0x88, 0xBF, 0x43, 0xE7, 0x89, 0x87, 0x43, 0xE7,\n\t0x89, 0x90, 0x43, 0xE7, 0x89, 0x99, 0x43, 0xE7,\n\t0x89, 0x9B, 0x43, 0xE7, 0x89, 0xA2, 0x43, 0xE7,\n\t// Bytes 1000 - 103f\n\t0x89, 0xB9, 0x43, 0xE7, 0x8A, 0x80, 0x43, 0xE7,\n\t0x8A, 0x95, 0x43, 0xE7, 0x8A, 0xAC, 0x43, 0xE7,\n\t0x8A, 0xAF, 0x43, 0xE7, 0x8B, 0x80, 0x43, 0xE7,\n\t0x8B, 0xBC, 0x43, 0xE7, 0x8C, 0xAA, 0x43, 0xE7,\n\t0x8D, 0xB5, 0x43, 0xE7, 0x8D, 0xBA, 0x43, 0xE7,\n\t0x8E, 0x84, 0x43, 0xE7, 0x8E, 0x87, 0x43, 0xE7,\n\t0x8E, 0x89, 0x43, 0xE7, 0x8E, 0x8B, 0x43, 0xE7,\n\t0x8E, 0xA5, 0x43, 0xE7, 0x8E, 0xB2, 0x43, 0xE7,\n\t// Bytes 1040 - 107f\n\t0x8F, 0x9E, 0x43, 0xE7, 0x90, 0x86, 0x43, 0xE7,\n\t0x90, 0x89, 0x43, 0xE7, 0x90, 0xA2, 0x43, 0xE7,\n\t0x91, 0x87, 0x43, 0xE7, 0x91, 0x9C, 0x43, 0xE7,\n\t0x91, 0xA9, 0x43, 0xE7, 0x91, 0xB1, 0x43, 0xE7,\n\t0x92, 0x85, 0x43, 0xE7, 0x92, 0x89, 0x43, 0xE7,\n\t0x92, 0x98, 0x43, 0xE7, 0x93, 0x8A, 0x43, 0xE7,\n\t0x93, 0x9C, 0x43, 0xE7, 0x93, 0xA6, 0x43, 0xE7,\n\t0x94, 0x86, 0x43, 0xE7, 0x94, 0x98, 0x43, 0xE7,\n\t// Bytes 1080 - 10bf\n\t0x94, 0x9F, 0x43, 0xE7, 0x94, 0xA4, 0x43, 0xE7,\n\t0x94, 0xA8, 0x43, 0xE7, 0x94, 0xB0, 0x43, 0xE7,\n\t0x94, 0xB2, 0x43, 0xE7, 0x94, 0xB3, 0x43, 0xE7,\n\t0x94, 0xB7, 0x43, 0xE7, 0x94, 0xBB, 0x43, 0xE7,\n\t0x94, 0xBE, 0x43, 0xE7, 0x95, 0x99, 0x43, 0xE7,\n\t0x95, 0xA5, 0x43, 0xE7, 0x95, 0xB0, 0x43, 0xE7,\n\t0x96, 0x8B, 0x43, 0xE7, 0x96, 0x92, 0x43, 0xE7,\n\t0x97, 0xA2, 0x43, 0xE7, 0x98, 0x90, 0x43, 0xE7,\n\t// Bytes 10c0 - 10ff\n\t0x98, 0x9D, 0x43, 0xE7, 0x98, 0x9F, 0x43, 0xE7,\n\t0x99, 0x82, 0x43, 0xE7, 0x99, 0xA9, 0x43, 0xE7,\n\t0x99, 0xB6, 0x43, 0xE7, 0x99, 0xBD, 0x43, 0xE7,\n\t0x9A, 0xAE, 0x43, 0xE7, 0x9A, 0xBF, 0x43, 0xE7,\n\t0x9B, 0x8A, 0x43, 0xE7, 0x9B, 0x9B, 0x43, 0xE7,\n\t0x9B, 0xA3, 0x43, 0xE7, 0x9B, 0xA7, 0x43, 0xE7,\n\t0x9B, 0xAE, 0x43, 0xE7, 0x9B, 0xB4, 0x43, 0xE7,\n\t0x9C, 0x81, 0x43, 0xE7, 0x9C, 0x9E, 0x43, 0xE7,\n\t// Bytes 1100 - 113f\n\t0x9C, 0x9F, 0x43, 0xE7, 0x9D, 0x80, 0x43, 0xE7,\n\t0x9D, 0x8A, 0x43, 0xE7, 0x9E, 0x8B, 0x43, 0xE7,\n\t0x9E, 0xA7, 0x43, 0xE7, 0x9F, 0x9B, 0x43, 0xE7,\n\t0x9F, 0xA2, 0x43, 0xE7, 0x9F, 0xB3, 0x43, 0xE7,\n\t0xA1, 0x8E, 0x43, 0xE7, 0xA1, 0xAB, 0x43, 0xE7,\n\t0xA2, 0x8C, 0x43, 0xE7, 0xA2, 0x91, 0x43, 0xE7,\n\t0xA3, 0x8A, 0x43, 0xE7, 0xA3, 0x8C, 0x43, 0xE7,\n\t0xA3, 0xBB, 0x43, 0xE7, 0xA4, 0xAA, 0x43, 0xE7,\n\t// Bytes 1140 - 117f\n\t0xA4, 0xBA, 0x43, 0xE7, 0xA4, 0xBC, 0x43, 0xE7,\n\t0xA4, 0xBE, 0x43, 0xE7, 0xA5, 0x88, 0x43, 0xE7,\n\t0xA5, 0x89, 0x43, 0xE7, 0xA5, 0x90, 0x43, 0xE7,\n\t0xA5, 0x96, 0x43, 0xE7, 0xA5, 0x9D, 0x43, 0xE7,\n\t0xA5, 0x9E, 0x43, 0xE7, 0xA5, 0xA5, 0x43, 0xE7,\n\t0xA5, 0xBF, 0x43, 0xE7, 0xA6, 0x81, 0x43, 0xE7,\n\t0xA6, 0x8D, 0x43, 0xE7, 0xA6, 0x8E, 0x43, 0xE7,\n\t0xA6, 0x8F, 0x43, 0xE7, 0xA6, 0xAE, 0x43, 0xE7,\n\t// Bytes 1180 - 11bf\n\t0xA6, 0xB8, 0x43, 0xE7, 0xA6, 0xBE, 0x43, 0xE7,\n\t0xA7, 0x8A, 0x43, 0xE7, 0xA7, 0x98, 0x43, 0xE7,\n\t0xA7, 0xAB, 0x43, 0xE7, 0xA8, 0x9C, 0x43, 0xE7,\n\t0xA9, 0x80, 0x43, 0xE7, 0xA9, 0x8A, 0x43, 0xE7,\n\t0xA9, 0x8F, 0x43, 0xE7, 0xA9, 0xB4, 0x43, 0xE7,\n\t0xA9, 0xBA, 0x43, 0xE7, 0xAA, 0x81, 0x43, 0xE7,\n\t0xAA, 0xB1, 0x43, 0xE7, 0xAB, 0x8B, 0x43, 0xE7,\n\t0xAB, 0xAE, 0x43, 0xE7, 0xAB, 0xB9, 0x43, 0xE7,\n\t// Bytes 11c0 - 11ff\n\t0xAC, 0xA0, 0x43, 0xE7, 0xAE, 0x8F, 0x43, 0xE7,\n\t0xAF, 0x80, 0x43, 0xE7, 0xAF, 0x86, 0x43, 0xE7,\n\t0xAF, 0x89, 0x43, 0xE7, 0xB0, 0xBE, 0x43, 0xE7,\n\t0xB1, 0xA0, 0x43, 0xE7, 0xB1, 0xB3, 0x43, 0xE7,\n\t0xB1, 0xBB, 0x43, 0xE7, 0xB2, 0x92, 0x43, 0xE7,\n\t0xB2, 0xBE, 0x43, 0xE7, 0xB3, 0x92, 0x43, 0xE7,\n\t0xB3, 0x96, 0x43, 0xE7, 0xB3, 0xA3, 0x43, 0xE7,\n\t0xB3, 0xA7, 0x43, 0xE7, 0xB3, 0xA8, 0x43, 0xE7,\n\t// Bytes 1200 - 123f\n\t0xB3, 0xB8, 0x43, 0xE7, 0xB4, 0x80, 0x43, 0xE7,\n\t0xB4, 0x90, 0x43, 0xE7, 0xB4, 0xA2, 0x43, 0xE7,\n\t0xB4, 0xAF, 0x43, 0xE7, 0xB5, 0x82, 0x43, 0xE7,\n\t0xB5, 0x9B, 0x43, 0xE7, 0xB5, 0xA3, 0x43, 0xE7,\n\t0xB6, 0xA0, 0x43, 0xE7, 0xB6, 0xBE, 0x43, 0xE7,\n\t0xB7, 0x87, 0x43, 0xE7, 0xB7, 0xB4, 0x43, 0xE7,\n\t0xB8, 0x82, 0x43, 0xE7, 0xB8, 0x89, 0x43, 0xE7,\n\t0xB8, 0xB7, 0x43, 0xE7, 0xB9, 0x81, 0x43, 0xE7,\n\t// Bytes 1240 - 127f\n\t0xB9, 0x85, 0x43, 0xE7, 0xBC, 0xB6, 0x43, 0xE7,\n\t0xBC, 0xBE, 0x43, 0xE7, 0xBD, 0x91, 0x43, 0xE7,\n\t0xBD, 0xB2, 0x43, 0xE7, 0xBD, 0xB9, 0x43, 0xE7,\n\t0xBD, 0xBA, 0x43, 0xE7, 0xBE, 0x85, 0x43, 0xE7,\n\t0xBE, 0x8A, 0x43, 0xE7, 0xBE, 0x95, 0x43, 0xE7,\n\t0xBE, 0x9A, 0x43, 0xE7, 0xBE, 0xBD, 0x43, 0xE7,\n\t0xBF, 0xBA, 0x43, 0xE8, 0x80, 0x81, 0x43, 0xE8,\n\t0x80, 0x85, 0x43, 0xE8, 0x80, 0x8C, 0x43, 0xE8,\n\t// Bytes 1280 - 12bf\n\t0x80, 0x92, 0x43, 0xE8, 0x80, 0xB3, 0x43, 0xE8,\n\t0x81, 0x86, 0x43, 0xE8, 0x81, 0xA0, 0x43, 0xE8,\n\t0x81, 0xAF, 0x43, 0xE8, 0x81, 0xB0, 0x43, 0xE8,\n\t0x81, 0xBE, 0x43, 0xE8, 0x81, 0xBF, 0x43, 0xE8,\n\t0x82, 0x89, 0x43, 0xE8, 0x82, 0x8B, 0x43, 0xE8,\n\t0x82, 0xAD, 0x43, 0xE8, 0x82, 0xB2, 0x43, 0xE8,\n\t0x84, 0x83, 0x43, 0xE8, 0x84, 0xBE, 0x43, 0xE8,\n\t0x87, 0x98, 0x43, 0xE8, 0x87, 0xA3, 0x43, 0xE8,\n\t// Bytes 12c0 - 12ff\n\t0x87, 0xA8, 0x43, 0xE8, 0x87, 0xAA, 0x43, 0xE8,\n\t0x87, 0xAD, 0x43, 0xE8, 0x87, 0xB3, 0x43, 0xE8,\n\t0x87, 0xBC, 0x43, 0xE8, 0x88, 0x81, 0x43, 0xE8,\n\t0x88, 0x84, 0x43, 0xE8, 0x88, 0x8C, 0x43, 0xE8,\n\t0x88, 0x98, 0x43, 0xE8, 0x88, 0x9B, 0x43, 0xE8,\n\t0x88, 0x9F, 0x43, 0xE8, 0x89, 0xAE, 0x43, 0xE8,\n\t0x89, 0xAF, 0x43, 0xE8, 0x89, 0xB2, 0x43, 0xE8,\n\t0x89, 0xB8, 0x43, 0xE8, 0x89, 0xB9, 0x43, 0xE8,\n\t// Bytes 1300 - 133f\n\t0x8A, 0x8B, 0x43, 0xE8, 0x8A, 0x91, 0x43, 0xE8,\n\t0x8A, 0x9D, 0x43, 0xE8, 0x8A, 0xB1, 0x43, 0xE8,\n\t0x8A, 0xB3, 0x43, 0xE8, 0x8A, 0xBD, 0x43, 0xE8,\n\t0x8B, 0xA5, 0x43, 0xE8, 0x8B, 0xA6, 0x43, 0xE8,\n\t0x8C, 0x9D, 0x43, 0xE8, 0x8C, 0xA3, 0x43, 0xE8,\n\t0x8C, 0xB6, 0x43, 0xE8, 0x8D, 0x92, 0x43, 0xE8,\n\t0x8D, 0x93, 0x43, 0xE8, 0x8D, 0xA3, 0x43, 0xE8,\n\t0x8E, 0xAD, 0x43, 0xE8, 0x8E, 0xBD, 0x43, 0xE8,\n\t// Bytes 1340 - 137f\n\t0x8F, 0x89, 0x43, 0xE8, 0x8F, 0x8A, 0x43, 0xE8,\n\t0x8F, 0x8C, 0x43, 0xE8, 0x8F, 0x9C, 0x43, 0xE8,\n\t0x8F, 0xA7, 0x43, 0xE8, 0x8F, 0xAF, 0x43, 0xE8,\n\t0x8F, 0xB1, 0x43, 0xE8, 0x90, 0xBD, 0x43, 0xE8,\n\t0x91, 0x89, 0x43, 0xE8, 0x91, 0x97, 0x43, 0xE8,\n\t0x93, 0xAE, 0x43, 0xE8, 0x93, 0xB1, 0x43, 0xE8,\n\t0x93, 0xB3, 0x43, 0xE8, 0x93, 0xBC, 0x43, 0xE8,\n\t0x94, 0x96, 0x43, 0xE8, 0x95, 0xA4, 0x43, 0xE8,\n\t// Bytes 1380 - 13bf\n\t0x97, 0x8D, 0x43, 0xE8, 0x97, 0xBA, 0x43, 0xE8,\n\t0x98, 0x86, 0x43, 0xE8, 0x98, 0x92, 0x43, 0xE8,\n\t0x98, 0xAD, 0x43, 0xE8, 0x98, 0xBF, 0x43, 0xE8,\n\t0x99, 0x8D, 0x43, 0xE8, 0x99, 0x90, 0x43, 0xE8,\n\t0x99, 0x9C, 0x43, 0xE8, 0x99, 0xA7, 0x43, 0xE8,\n\t0x99, 0xA9, 0x43, 0xE8, 0x99, 0xAB, 0x43, 0xE8,\n\t0x9A, 0x88, 0x43, 0xE8, 0x9A, 0xA9, 0x43, 0xE8,\n\t0x9B, 0xA2, 0x43, 0xE8, 0x9C, 0x8E, 0x43, 0xE8,\n\t// Bytes 13c0 - 13ff\n\t0x9C, 0xA8, 0x43, 0xE8, 0x9D, 0xAB, 0x43, 0xE8,\n\t0x9D, 0xB9, 0x43, 0xE8, 0x9E, 0x86, 0x43, 0xE8,\n\t0x9E, 0xBA, 0x43, 0xE8, 0x9F, 0xA1, 0x43, 0xE8,\n\t0xA0, 0x81, 0x43, 0xE8, 0xA0, 0x9F, 0x43, 0xE8,\n\t0xA1, 0x80, 0x43, 0xE8, 0xA1, 0x8C, 0x43, 0xE8,\n\t0xA1, 0xA0, 0x43, 0xE8, 0xA1, 0xA3, 0x43, 0xE8,\n\t0xA3, 0x82, 0x43, 0xE8, 0xA3, 0x8F, 0x43, 0xE8,\n\t0xA3, 0x97, 0x43, 0xE8, 0xA3, 0x9E, 0x43, 0xE8,\n\t// Bytes 1400 - 143f\n\t0xA3, 0xA1, 0x43, 0xE8, 0xA3, 0xB8, 0x43, 0xE8,\n\t0xA3, 0xBA, 0x43, 0xE8, 0xA4, 0x90, 0x43, 0xE8,\n\t0xA5, 0x81, 0x43, 0xE8, 0xA5, 0xA4, 0x43, 0xE8,\n\t0xA5, 0xBE, 0x43, 0xE8, 0xA6, 0x86, 0x43, 0xE8,\n\t0xA6, 0x8B, 0x43, 0xE8, 0xA6, 0x96, 0x43, 0xE8,\n\t0xA7, 0x92, 0x43, 0xE8, 0xA7, 0xA3, 0x43, 0xE8,\n\t0xA8, 0x80, 0x43, 0xE8, 0xAA, 0xA0, 0x43, 0xE8,\n\t0xAA, 0xAA, 0x43, 0xE8, 0xAA, 0xBF, 0x43, 0xE8,\n\t// Bytes 1440 - 147f\n\t0xAB, 0x8B, 0x43, 0xE8, 0xAB, 0x92, 0x43, 0xE8,\n\t0xAB, 0x96, 0x43, 0xE8, 0xAB, 0xAD, 0x43, 0xE8,\n\t0xAB, 0xB8, 0x43, 0xE8, 0xAB, 0xBE, 0x43, 0xE8,\n\t0xAC, 0x81, 0x43, 0xE8, 0xAC, 0xB9, 0x43, 0xE8,\n\t0xAD, 0x98, 0x43, 0xE8, 0xAE, 0x80, 0x43, 0xE8,\n\t0xAE, 0x8A, 0x43, 0xE8, 0xB0, 0xB7, 0x43, 0xE8,\n\t0xB1, 0x86, 0x43, 0xE8, 0xB1, 0x88, 0x43, 0xE8,\n\t0xB1, 0x95, 0x43, 0xE8, 0xB1, 0xB8, 0x43, 0xE8,\n\t// Bytes 1480 - 14bf\n\t0xB2, 0x9D, 0x43, 0xE8, 0xB2, 0xA1, 0x43, 0xE8,\n\t0xB2, 0xA9, 0x43, 0xE8, 0xB2, 0xAB, 0x43, 0xE8,\n\t0xB3, 0x81, 0x43, 0xE8, 0xB3, 0x82, 0x43, 0xE8,\n\t0xB3, 0x87, 0x43, 0xE8, 0xB3, 0x88, 0x43, 0xE8,\n\t0xB3, 0x93, 0x43, 0xE8, 0xB4, 0x88, 0x43, 0xE8,\n\t0xB4, 0x9B, 0x43, 0xE8, 0xB5, 0xA4, 0x43, 0xE8,\n\t0xB5, 0xB0, 0x43, 0xE8, 0xB5, 0xB7, 0x43, 0xE8,\n\t0xB6, 0xB3, 0x43, 0xE8, 0xB6, 0xBC, 0x43, 0xE8,\n\t// Bytes 14c0 - 14ff\n\t0xB7, 0x8B, 0x43, 0xE8, 0xB7, 0xAF, 0x43, 0xE8,\n\t0xB7, 0xB0, 0x43, 0xE8, 0xBA, 0xAB, 0x43, 0xE8,\n\t0xBB, 0x8A, 0x43, 0xE8, 0xBB, 0x94, 0x43, 0xE8,\n\t0xBC, 0xA6, 0x43, 0xE8, 0xBC, 0xAA, 0x43, 0xE8,\n\t0xBC, 0xB8, 0x43, 0xE8, 0xBC, 0xBB, 0x43, 0xE8,\n\t0xBD, 0xA2, 0x43, 0xE8, 0xBE, 0x9B, 0x43, 0xE8,\n\t0xBE, 0x9E, 0x43, 0xE8, 0xBE, 0xB0, 0x43, 0xE8,\n\t0xBE, 0xB5, 0x43, 0xE8, 0xBE, 0xB6, 0x43, 0xE9,\n\t// Bytes 1500 - 153f\n\t0x80, 0xA3, 0x43, 0xE9, 0x80, 0xB8, 0x43, 0xE9,\n\t0x81, 0x8A, 0x43, 0xE9, 0x81, 0xA9, 0x43, 0xE9,\n\t0x81, 0xB2, 0x43, 0xE9, 0x81, 0xBC, 0x43, 0xE9,\n\t0x82, 0x8F, 0x43, 0xE9, 0x82, 0x91, 0x43, 0xE9,\n\t0x82, 0x94, 0x43, 0xE9, 0x83, 0x8E, 0x43, 0xE9,\n\t0x83, 0x9E, 0x43, 0xE9, 0x83, 0xB1, 0x43, 0xE9,\n\t0x83, 0xBD, 0x43, 0xE9, 0x84, 0x91, 0x43, 0xE9,\n\t0x84, 0x9B, 0x43, 0xE9, 0x85, 0x89, 0x43, 0xE9,\n\t// Bytes 1540 - 157f\n\t0x85, 0x8D, 0x43, 0xE9, 0x85, 0xAA, 0x43, 0xE9,\n\t0x86, 0x99, 0x43, 0xE9, 0x86, 0xB4, 0x43, 0xE9,\n\t0x87, 0x86, 0x43, 0xE9, 0x87, 0x8C, 0x43, 0xE9,\n\t0x87, 0x8F, 0x43, 0xE9, 0x87, 0x91, 0x43, 0xE9,\n\t0x88, 0xB4, 0x43, 0xE9, 0x88, 0xB8, 0x43, 0xE9,\n\t0x89, 0xB6, 0x43, 0xE9, 0x89, 0xBC, 0x43, 0xE9,\n\t0x8B, 0x97, 0x43, 0xE9, 0x8B, 0x98, 0x43, 0xE9,\n\t0x8C, 0x84, 0x43, 0xE9, 0x8D, 0x8A, 0x43, 0xE9,\n\t// Bytes 1580 - 15bf\n\t0x8F, 0xB9, 0x43, 0xE9, 0x90, 0x95, 0x43, 0xE9,\n\t0x95, 0xB7, 0x43, 0xE9, 0x96, 0x80, 0x43, 0xE9,\n\t0x96, 0x8B, 0x43, 0xE9, 0x96, 0xAD, 0x43, 0xE9,\n\t0x96, 0xB7, 0x43, 0xE9, 0x98, 0x9C, 0x43, 0xE9,\n\t0x98, 0xAE, 0x43, 0xE9, 0x99, 0x8B, 0x43, 0xE9,\n\t0x99, 0x8D, 0x43, 0xE9, 0x99, 0xB5, 0x43, 0xE9,\n\t0x99, 0xB8, 0x43, 0xE9, 0x99, 0xBC, 0x43, 0xE9,\n\t0x9A, 0x86, 0x43, 0xE9, 0x9A, 0xA3, 0x43, 0xE9,\n\t// Bytes 15c0 - 15ff\n\t0x9A, 0xB6, 0x43, 0xE9, 0x9A, 0xB7, 0x43, 0xE9,\n\t0x9A, 0xB8, 0x43, 0xE9, 0x9A, 0xB9, 0x43, 0xE9,\n\t0x9B, 0x83, 0x43, 0xE9, 0x9B, 0xA2, 0x43, 0xE9,\n\t0x9B, 0xA3, 0x43, 0xE9, 0x9B, 0xA8, 0x43, 0xE9,\n\t0x9B, 0xB6, 0x43, 0xE9, 0x9B, 0xB7, 0x43, 0xE9,\n\t0x9C, 0xA3, 0x43, 0xE9, 0x9C, 0xB2, 0x43, 0xE9,\n\t0x9D, 0x88, 0x43, 0xE9, 0x9D, 0x91, 0x43, 0xE9,\n\t0x9D, 0x96, 0x43, 0xE9, 0x9D, 0x9E, 0x43, 0xE9,\n\t// Bytes 1600 - 163f\n\t0x9D, 0xA2, 0x43, 0xE9, 0x9D, 0xA9, 0x43, 0xE9,\n\t0x9F, 0x8B, 0x43, 0xE9, 0x9F, 0x9B, 0x43, 0xE9,\n\t0x9F, 0xA0, 0x43, 0xE9, 0x9F, 0xAD, 0x43, 0xE9,\n\t0x9F, 0xB3, 0x43, 0xE9, 0x9F, 0xBF, 0x43, 0xE9,\n\t0xA0, 0x81, 0x43, 0xE9, 0xA0, 0x85, 0x43, 0xE9,\n\t0xA0, 0x8B, 0x43, 0xE9, 0xA0, 0x98, 0x43, 0xE9,\n\t0xA0, 0xA9, 0x43, 0xE9, 0xA0, 0xBB, 0x43, 0xE9,\n\t0xA1, 0x9E, 0x43, 0xE9, 0xA2, 0xA8, 0x43, 0xE9,\n\t// Bytes 1640 - 167f\n\t0xA3, 0x9B, 0x43, 0xE9, 0xA3, 0x9F, 0x43, 0xE9,\n\t0xA3, 0xA2, 0x43, 0xE9, 0xA3, 0xAF, 0x43, 0xE9,\n\t0xA3, 0xBC, 0x43, 0xE9, 0xA4, 0xA8, 0x43, 0xE9,\n\t0xA4, 0xA9, 0x43, 0xE9, 0xA6, 0x96, 0x43, 0xE9,\n\t0xA6, 0x99, 0x43, 0xE9, 0xA6, 0xA7, 0x43, 0xE9,\n\t0xA6, 0xAC, 0x43, 0xE9, 0xA7, 0x82, 0x43, 0xE9,\n\t0xA7, 0xB1, 0x43, 0xE9, 0xA7, 0xBE, 0x43, 0xE9,\n\t0xA9, 0xAA, 0x43, 0xE9, 0xAA, 0xA8, 0x43, 0xE9,\n\t// Bytes 1680 - 16bf\n\t0xAB, 0x98, 0x43, 0xE9, 0xAB, 0x9F, 0x43, 0xE9,\n\t0xAC, 0x92, 0x43, 0xE9, 0xAC, 0xA5, 0x43, 0xE9,\n\t0xAC, 0xAF, 0x43, 0xE9, 0xAC, 0xB2, 0x43, 0xE9,\n\t0xAC, 0xBC, 0x43, 0xE9, 0xAD, 0x9A, 0x43, 0xE9,\n\t0xAD, 0xAF, 0x43, 0xE9, 0xB1, 0x80, 0x43, 0xE9,\n\t0xB1, 0x97, 0x43, 0xE9, 0xB3, 0xA5, 0x43, 0xE9,\n\t0xB3, 0xBD, 0x43, 0xE9, 0xB5, 0xA7, 0x43, 0xE9,\n\t0xB6, 0xB4, 0x43, 0xE9, 0xB7, 0xBA, 0x43, 0xE9,\n\t// Bytes 16c0 - 16ff\n\t0xB8, 0x9E, 0x43, 0xE9, 0xB9, 0xB5, 0x43, 0xE9,\n\t0xB9, 0xBF, 0x43, 0xE9, 0xBA, 0x97, 0x43, 0xE9,\n\t0xBA, 0x9F, 0x43, 0xE9, 0xBA, 0xA5, 0x43, 0xE9,\n\t0xBA, 0xBB, 0x43, 0xE9, 0xBB, 0x83, 0x43, 0xE9,\n\t0xBB, 0x8D, 0x43, 0xE9, 0xBB, 0x8E, 0x43, 0xE9,\n\t0xBB, 0x91, 0x43, 0xE9, 0xBB, 0xB9, 0x43, 0xE9,\n\t0xBB, 0xBD, 0x43, 0xE9, 0xBB, 0xBE, 0x43, 0xE9,\n\t0xBC, 0x85, 0x43, 0xE9, 0xBC, 0x8E, 0x43, 0xE9,\n\t// Bytes 1700 - 173f\n\t0xBC, 0x8F, 0x43, 0xE9, 0xBC, 0x93, 0x43, 0xE9,\n\t0xBC, 0x96, 0x43, 0xE9, 0xBC, 0xA0, 0x43, 0xE9,\n\t0xBC, 0xBB, 0x43, 0xE9, 0xBD, 0x83, 0x43, 0xE9,\n\t0xBD, 0x8A, 0x43, 0xE9, 0xBD, 0x92, 0x43, 0xE9,\n\t0xBE, 0x8D, 0x43, 0xE9, 0xBE, 0x8E, 0x43, 0xE9,\n\t0xBE, 0x9C, 0x43, 0xE9, 0xBE, 0x9F, 0x43, 0xE9,\n\t0xBE, 0xA0, 0x43, 0xEA, 0x99, 0x91, 0x43, 0xEA,\n\t0x9A, 0x89, 0x43, 0xEA, 0x9C, 0xA7, 0x43, 0xEA,\n\t// Bytes 1740 - 177f\n\t0x9D, 0xAF, 0x43, 0xEA, 0x9E, 0x8E, 0x43, 0xEA,\n\t0xAC, 0xB7, 0x43, 0xEA, 0xAD, 0x92, 0x43, 0xEA,\n\t0xAD, 0xA6, 0x43, 0xEA, 0xAD, 0xA7, 0x44, 0xF0,\n\t0x9D, 0xBC, 0x84, 0x44, 0xF0, 0x9D, 0xBC, 0x85,\n\t0x44, 0xF0, 0x9D, 0xBC, 0x86, 0x44, 0xF0, 0x9D,\n\t0xBC, 0x88, 0x44, 0xF0, 0x9D, 0xBC, 0x8A, 0x44,\n\t0xF0, 0x9D, 0xBC, 0x9E, 0x44, 0xF0, 0xA0, 0x84,\n\t0xA2, 0x44, 0xF0, 0xA0, 0x94, 0x9C, 0x44, 0xF0,\n\t// Bytes 1780 - 17bf\n\t0xA0, 0x94, 0xA5, 0x44, 0xF0, 0xA0, 0x95, 0x8B,\n\t0x44, 0xF0, 0xA0, 0x98, 0xBA, 0x44, 0xF0, 0xA0,\n\t0xA0, 0x84, 0x44, 0xF0, 0xA0, 0xA3, 0x9E, 0x44,\n\t0xF0, 0xA0, 0xA8, 0xAC, 0x44, 0xF0, 0xA0, 0xAD,\n\t0xA3, 0x44, 0xF0, 0xA1, 0x93, 0xA4, 0x44, 0xF0,\n\t0xA1, 0x9A, 0xA8, 0x44, 0xF0, 0xA1, 0x9B, 0xAA,\n\t0x44, 0xF0, 0xA1, 0xA7, 0x88, 0x44, 0xF0, 0xA1,\n\t0xAC, 0x98, 0x44, 0xF0, 0xA1, 0xB4, 0x8B, 0x44,\n\t// Bytes 17c0 - 17ff\n\t0xF0, 0xA1, 0xB7, 0xA4, 0x44, 0xF0, 0xA1, 0xB7,\n\t0xA6, 0x44, 0xF0, 0xA2, 0x86, 0x83, 0x44, 0xF0,\n\t0xA2, 0x86, 0x9F, 0x44, 0xF0, 0xA2, 0x8C, 0xB1,\n\t0x44, 0xF0, 0xA2, 0x9B, 0x94, 0x44, 0xF0, 0xA2,\n\t0xA1, 0x84, 0x44, 0xF0, 0xA2, 0xA1, 0x8A, 0x44,\n\t0xF0, 0xA2, 0xAC, 0x8C, 0x44, 0xF0, 0xA2, 0xAF,\n\t0xB1, 0x44, 0xF0, 0xA3, 0x80, 0x8A, 0x44, 0xF0,\n\t0xA3, 0x8A, 0xB8, 0x44, 0xF0, 0xA3, 0x8D, 0x9F,\n\t// Bytes 1800 - 183f\n\t0x44, 0xF0, 0xA3, 0x8E, 0x93, 0x44, 0xF0, 0xA3,\n\t0x8E, 0x9C, 0x44, 0xF0, 0xA3, 0x8F, 0x83, 0x44,\n\t0xF0, 0xA3, 0x8F, 0x95, 0x44, 0xF0, 0xA3, 0x91,\n\t0xAD, 0x44, 0xF0, 0xA3, 0x9A, 0xA3, 0x44, 0xF0,\n\t0xA3, 0xA2, 0xA7, 0x44, 0xF0, 0xA3, 0xAA, 0x8D,\n\t0x44, 0xF0, 0xA3, 0xAB, 0xBA, 0x44, 0xF0, 0xA3,\n\t0xB2, 0xBC, 0x44, 0xF0, 0xA3, 0xB4, 0x9E, 0x44,\n\t0xF0, 0xA3, 0xBB, 0x91, 0x44, 0xF0, 0xA3, 0xBD,\n\t// Bytes 1840 - 187f\n\t0x9E, 0x44, 0xF0, 0xA3, 0xBE, 0x8E, 0x44, 0xF0,\n\t0xA4, 0x89, 0xA3, 0x44, 0xF0, 0xA4, 0x8B, 0xAE,\n\t0x44, 0xF0, 0xA4, 0x8E, 0xAB, 0x44, 0xF0, 0xA4,\n\t0x98, 0x88, 0x44, 0xF0, 0xA4, 0x9C, 0xB5, 0x44,\n\t0xF0, 0xA4, 0xA0, 0x94, 0x44, 0xF0, 0xA4, 0xB0,\n\t0xB6, 0x44, 0xF0, 0xA4, 0xB2, 0x92, 0x44, 0xF0,\n\t0xA4, 0xBE, 0xA1, 0x44, 0xF0, 0xA4, 0xBE, 0xB8,\n\t0x44, 0xF0, 0xA5, 0x81, 0x84, 0x44, 0xF0, 0xA5,\n\t// Bytes 1880 - 18bf\n\t0x83, 0xB2, 0x44, 0xF0, 0xA5, 0x83, 0xB3, 0x44,\n\t0xF0, 0xA5, 0x84, 0x99, 0x44, 0xF0, 0xA5, 0x84,\n\t0xB3, 0x44, 0xF0, 0xA5, 0x89, 0x89, 0x44, 0xF0,\n\t0xA5, 0x90, 0x9D, 0x44, 0xF0, 0xA5, 0x98, 0xA6,\n\t0x44, 0xF0, 0xA5, 0x9A, 0x9A, 0x44, 0xF0, 0xA5,\n\t0x9B, 0x85, 0x44, 0xF0, 0xA5, 0xA5, 0xBC, 0x44,\n\t0xF0, 0xA5, 0xAA, 0xA7, 0x44, 0xF0, 0xA5, 0xAE,\n\t0xAB, 0x44, 0xF0, 0xA5, 0xB2, 0x80, 0x44, 0xF0,\n\t// Bytes 18c0 - 18ff\n\t0xA5, 0xB3, 0x90, 0x44, 0xF0, 0xA5, 0xBE, 0x86,\n\t0x44, 0xF0, 0xA6, 0x87, 0x9A, 0x44, 0xF0, 0xA6,\n\t0x88, 0xA8, 0x44, 0xF0, 0xA6, 0x89, 0x87, 0x44,\n\t0xF0, 0xA6, 0x8B, 0x99, 0x44, 0xF0, 0xA6, 0x8C,\n\t0xBE, 0x44, 0xF0, 0xA6, 0x93, 0x9A, 0x44, 0xF0,\n\t0xA6, 0x94, 0xA3, 0x44, 0xF0, 0xA6, 0x96, 0xA8,\n\t0x44, 0xF0, 0xA6, 0x9E, 0xA7, 0x44, 0xF0, 0xA6,\n\t0x9E, 0xB5, 0x44, 0xF0, 0xA6, 0xAC, 0xBC, 0x44,\n\t// Bytes 1900 - 193f\n\t0xF0, 0xA6, 0xB0, 0xB6, 0x44, 0xF0, 0xA6, 0xB3,\n\t0x95, 0x44, 0xF0, 0xA6, 0xB5, 0xAB, 0x44, 0xF0,\n\t0xA6, 0xBC, 0xAC, 0x44, 0xF0, 0xA6, 0xBE, 0xB1,\n\t0x44, 0xF0, 0xA7, 0x83, 0x92, 0x44, 0xF0, 0xA7,\n\t0x8F, 0x8A, 0x44, 0xF0, 0xA7, 0x99, 0xA7, 0x44,\n\t0xF0, 0xA7, 0xA2, 0xAE, 0x44, 0xF0, 0xA7, 0xA5,\n\t0xA6, 0x44, 0xF0, 0xA7, 0xB2, 0xA8, 0x44, 0xF0,\n\t0xA7, 0xBB, 0x93, 0x44, 0xF0, 0xA7, 0xBC, 0xAF,\n\t// Bytes 1940 - 197f\n\t0x44, 0xF0, 0xA8, 0x97, 0x92, 0x44, 0xF0, 0xA8,\n\t0x97, 0xAD, 0x44, 0xF0, 0xA8, 0x9C, 0xAE, 0x44,\n\t0xF0, 0xA8, 0xAF, 0xBA, 0x44, 0xF0, 0xA8, 0xB5,\n\t0xB7, 0x44, 0xF0, 0xA9, 0x85, 0x85, 0x44, 0xF0,\n\t0xA9, 0x87, 0x9F, 0x44, 0xF0, 0xA9, 0x88, 0x9A,\n\t0x44, 0xF0, 0xA9, 0x90, 0x8A, 0x44, 0xF0, 0xA9,\n\t0x92, 0x96, 0x44, 0xF0, 0xA9, 0x96, 0xB6, 0x44,\n\t0xF0, 0xA9, 0xAC, 0xB0, 0x44, 0xF0, 0xAA, 0x83,\n\t// Bytes 1980 - 19bf\n\t0x8E, 0x44, 0xF0, 0xAA, 0x84, 0x85, 0x44, 0xF0,\n\t0xAA, 0x88, 0x8E, 0x44, 0xF0, 0xAA, 0x8A, 0x91,\n\t0x44, 0xF0, 0xAA, 0x8E, 0x92, 0x44, 0xF0, 0xAA,\n\t0x98, 0x80, 0x42, 0x21, 0x21, 0x42, 0x21, 0x3F,\n\t0x42, 0x2E, 0x2E, 0x42, 0x30, 0x2C, 0x42, 0x30,\n\t0x2E, 0x42, 0x31, 0x2C, 0x42, 0x31, 0x2E, 0x42,\n\t0x31, 0x30, 0x42, 0x31, 0x31, 0x42, 0x31, 0x32,\n\t0x42, 0x31, 0x33, 0x42, 0x31, 0x34, 0x42, 0x31,\n\t// Bytes 19c0 - 19ff\n\t0x35, 0x42, 0x31, 0x36, 0x42, 0x31, 0x37, 0x42,\n\t0x31, 0x38, 0x42, 0x31, 0x39, 0x42, 0x32, 0x2C,\n\t0x42, 0x32, 0x2E, 0x42, 0x32, 0x30, 0x42, 0x32,\n\t0x31, 0x42, 0x32, 0x32, 0x42, 0x32, 0x33, 0x42,\n\t0x32, 0x34, 0x42, 0x32, 0x35, 0x42, 0x32, 0x36,\n\t0x42, 0x32, 0x37, 0x42, 0x32, 0x38, 0x42, 0x32,\n\t0x39, 0x42, 0x33, 0x2C, 0x42, 0x33, 0x2E, 0x42,\n\t0x33, 0x30, 0x42, 0x33, 0x31, 0x42, 0x33, 0x32,\n\t// Bytes 1a00 - 1a3f\n\t0x42, 0x33, 0x33, 0x42, 0x33, 0x34, 0x42, 0x33,\n\t0x35, 0x42, 0x33, 0x36, 0x42, 0x33, 0x37, 0x42,\n\t0x33, 0x38, 0x42, 0x33, 0x39, 0x42, 0x34, 0x2C,\n\t0x42, 0x34, 0x2E, 0x42, 0x34, 0x30, 0x42, 0x34,\n\t0x31, 0x42, 0x34, 0x32, 0x42, 0x34, 0x33, 0x42,\n\t0x34, 0x34, 0x42, 0x34, 0x35, 0x42, 0x34, 0x36,\n\t0x42, 0x34, 0x37, 0x42, 0x34, 0x38, 0x42, 0x34,\n\t0x39, 0x42, 0x35, 0x2C, 0x42, 0x35, 0x2E, 0x42,\n\t// Bytes 1a40 - 1a7f\n\t0x35, 0x30, 0x42, 0x36, 0x2C, 0x42, 0x36, 0x2E,\n\t0x42, 0x37, 0x2C, 0x42, 0x37, 0x2E, 0x42, 0x38,\n\t0x2C, 0x42, 0x38, 0x2E, 0x42, 0x39, 0x2C, 0x42,\n\t0x39, 0x2E, 0x42, 0x3D, 0x3D, 0x42, 0x3F, 0x21,\n\t0x42, 0x3F, 0x3F, 0x42, 0x41, 0x55, 0x42, 0x42,\n\t0x71, 0x42, 0x43, 0x44, 0x42, 0x44, 0x4A, 0x42,\n\t0x44, 0x5A, 0x42, 0x44, 0x7A, 0x42, 0x47, 0x42,\n\t0x42, 0x47, 0x79, 0x42, 0x48, 0x50, 0x42, 0x48,\n\t// Bytes 1a80 - 1abf\n\t0x56, 0x42, 0x48, 0x67, 0x42, 0x48, 0x7A, 0x42,\n\t0x49, 0x49, 0x42, 0x49, 0x4A, 0x42, 0x49, 0x55,\n\t0x42, 0x49, 0x56, 0x42, 0x49, 0x58, 0x42, 0x4B,\n\t0x42, 0x42, 0x4B, 0x4B, 0x42, 0x4B, 0x4D, 0x42,\n\t0x4C, 0x4A, 0x42, 0x4C, 0x6A, 0x42, 0x4D, 0x42,\n\t0x42, 0x4D, 0x43, 0x42, 0x4D, 0x44, 0x42, 0x4D,\n\t0x52, 0x42, 0x4D, 0x56, 0x42, 0x4D, 0x57, 0x42,\n\t0x4E, 0x4A, 0x42, 0x4E, 0x6A, 0x42, 0x4E, 0x6F,\n\t// Bytes 1ac0 - 1aff\n\t0x42, 0x50, 0x48, 0x42, 0x50, 0x52, 0x42, 0x50,\n\t0x61, 0x42, 0x52, 0x73, 0x42, 0x53, 0x44, 0x42,\n\t0x53, 0x4D, 0x42, 0x53, 0x53, 0x42, 0x53, 0x76,\n\t0x42, 0x54, 0x4D, 0x42, 0x56, 0x49, 0x42, 0x57,\n\t0x43, 0x42, 0x57, 0x5A, 0x42, 0x57, 0x62, 0x42,\n\t0x58, 0x49, 0x42, 0x63, 0x63, 0x42, 0x63, 0x64,\n\t0x42, 0x63, 0x6D, 0x42, 0x64, 0x42, 0x42, 0x64,\n\t0x61, 0x42, 0x64, 0x6C, 0x42, 0x64, 0x6D, 0x42,\n\t// Bytes 1b00 - 1b3f\n\t0x64, 0x7A, 0x42, 0x65, 0x56, 0x42, 0x66, 0x66,\n\t0x42, 0x66, 0x69, 0x42, 0x66, 0x6C, 0x42, 0x66,\n\t0x6D, 0x42, 0x68, 0x61, 0x42, 0x69, 0x69, 0x42,\n\t0x69, 0x6A, 0x42, 0x69, 0x6E, 0x42, 0x69, 0x76,\n\t0x42, 0x69, 0x78, 0x42, 0x6B, 0x41, 0x42, 0x6B,\n\t0x56, 0x42, 0x6B, 0x57, 0x42, 0x6B, 0x67, 0x42,\n\t0x6B, 0x6C, 0x42, 0x6B, 0x6D, 0x42, 0x6B, 0x74,\n\t0x42, 0x6C, 0x6A, 0x42, 0x6C, 0x6D, 0x42, 0x6C,\n\t// Bytes 1b40 - 1b7f\n\t0x6E, 0x42, 0x6C, 0x78, 0x42, 0x6D, 0x32, 0x42,\n\t0x6D, 0x33, 0x42, 0x6D, 0x41, 0x42, 0x6D, 0x56,\n\t0x42, 0x6D, 0x57, 0x42, 0x6D, 0x62, 0x42, 0x6D,\n\t0x67, 0x42, 0x6D, 0x6C, 0x42, 0x6D, 0x6D, 0x42,\n\t0x6D, 0x73, 0x42, 0x6E, 0x41, 0x42, 0x6E, 0x46,\n\t0x42, 0x6E, 0x56, 0x42, 0x6E, 0x57, 0x42, 0x6E,\n\t0x6A, 0x42, 0x6E, 0x6D, 0x42, 0x6E, 0x73, 0x42,\n\t0x6F, 0x56, 0x42, 0x70, 0x41, 0x42, 0x70, 0x46,\n\t// Bytes 1b80 - 1bbf\n\t0x42, 0x70, 0x56, 0x42, 0x70, 0x57, 0x42, 0x70,\n\t0x63, 0x42, 0x70, 0x73, 0x42, 0x73, 0x72, 0x42,\n\t0x73, 0x74, 0x42, 0x76, 0x69, 0x42, 0x78, 0x69,\n\t0x43, 0x28, 0x31, 0x29, 0x43, 0x28, 0x32, 0x29,\n\t0x43, 0x28, 0x33, 0x29, 0x43, 0x28, 0x34, 0x29,\n\t0x43, 0x28, 0x35, 0x29, 0x43, 0x28, 0x36, 0x29,\n\t0x43, 0x28, 0x37, 0x29, 0x43, 0x28, 0x38, 0x29,\n\t0x43, 0x28, 0x39, 0x29, 0x43, 0x28, 0x41, 0x29,\n\t// Bytes 1bc0 - 1bff\n\t0x43, 0x28, 0x42, 0x29, 0x43, 0x28, 0x43, 0x29,\n\t0x43, 0x28, 0x44, 0x29, 0x43, 0x28, 0x45, 0x29,\n\t0x43, 0x28, 0x46, 0x29, 0x43, 0x28, 0x47, 0x29,\n\t0x43, 0x28, 0x48, 0x29, 0x43, 0x28, 0x49, 0x29,\n\t0x43, 0x28, 0x4A, 0x29, 0x43, 0x28, 0x4B, 0x29,\n\t0x43, 0x28, 0x4C, 0x29, 0x43, 0x28, 0x4D, 0x29,\n\t0x43, 0x28, 0x4E, 0x29, 0x43, 0x28, 0x4F, 0x29,\n\t0x43, 0x28, 0x50, 0x29, 0x43, 0x28, 0x51, 0x29,\n\t// Bytes 1c00 - 1c3f\n\t0x43, 0x28, 0x52, 0x29, 0x43, 0x28, 0x53, 0x29,\n\t0x43, 0x28, 0x54, 0x29, 0x43, 0x28, 0x55, 0x29,\n\t0x43, 0x28, 0x56, 0x29, 0x43, 0x28, 0x57, 0x29,\n\t0x43, 0x28, 0x58, 0x29, 0x43, 0x28, 0x59, 0x29,\n\t0x43, 0x28, 0x5A, 0x29, 0x43, 0x28, 0x61, 0x29,\n\t0x43, 0x28, 0x62, 0x29, 0x43, 0x28, 0x63, 0x29,\n\t0x43, 0x28, 0x64, 0x29, 0x43, 0x28, 0x65, 0x29,\n\t0x43, 0x28, 0x66, 0x29, 0x43, 0x28, 0x67, 0x29,\n\t// Bytes 1c40 - 1c7f\n\t0x43, 0x28, 0x68, 0x29, 0x43, 0x28, 0x69, 0x29,\n\t0x43, 0x28, 0x6A, 0x29, 0x43, 0x28, 0x6B, 0x29,\n\t0x43, 0x28, 0x6C, 0x29, 0x43, 0x28, 0x6D, 0x29,\n\t0x43, 0x28, 0x6E, 0x29, 0x43, 0x28, 0x6F, 0x29,\n\t0x43, 0x28, 0x70, 0x29, 0x43, 0x28, 0x71, 0x29,\n\t0x43, 0x28, 0x72, 0x29, 0x43, 0x28, 0x73, 0x29,\n\t0x43, 0x28, 0x74, 0x29, 0x43, 0x28, 0x75, 0x29,\n\t0x43, 0x28, 0x76, 0x29, 0x43, 0x28, 0x77, 0x29,\n\t// Bytes 1c80 - 1cbf\n\t0x43, 0x28, 0x78, 0x29, 0x43, 0x28, 0x79, 0x29,\n\t0x43, 0x28, 0x7A, 0x29, 0x43, 0x2E, 0x2E, 0x2E,\n\t0x43, 0x31, 0x30, 0x2E, 0x43, 0x31, 0x31, 0x2E,\n\t0x43, 0x31, 0x32, 0x2E, 0x43, 0x31, 0x33, 0x2E,\n\t0x43, 0x31, 0x34, 0x2E, 0x43, 0x31, 0x35, 0x2E,\n\t0x43, 0x31, 0x36, 0x2E, 0x43, 0x31, 0x37, 0x2E,\n\t0x43, 0x31, 0x38, 0x2E, 0x43, 0x31, 0x39, 0x2E,\n\t0x43, 0x32, 0x30, 0x2E, 0x43, 0x3A, 0x3A, 0x3D,\n\t// Bytes 1cc0 - 1cff\n\t0x43, 0x3D, 0x3D, 0x3D, 0x43, 0x43, 0x6F, 0x2E,\n\t0x43, 0x46, 0x41, 0x58, 0x43, 0x47, 0x48, 0x7A,\n\t0x43, 0x47, 0x50, 0x61, 0x43, 0x49, 0x49, 0x49,\n\t0x43, 0x4C, 0x54, 0x44, 0x43, 0x4C, 0xC2, 0xB7,\n\t0x43, 0x4D, 0x48, 0x7A, 0x43, 0x4D, 0x50, 0x61,\n\t0x43, 0x4D, 0xCE, 0xA9, 0x43, 0x50, 0x50, 0x4D,\n\t0x43, 0x50, 0x50, 0x56, 0x43, 0x50, 0x54, 0x45,\n\t0x43, 0x54, 0x45, 0x4C, 0x43, 0x54, 0x48, 0x7A,\n\t// Bytes 1d00 - 1d3f\n\t0x43, 0x56, 0x49, 0x49, 0x43, 0x58, 0x49, 0x49,\n\t0x43, 0x61, 0x2F, 0x63, 0x43, 0x61, 0x2F, 0x73,\n\t0x43, 0x61, 0xCA, 0xBE, 0x43, 0x62, 0x61, 0x72,\n\t0x43, 0x63, 0x2F, 0x6F, 0x43, 0x63, 0x2F, 0x75,\n\t0x43, 0x63, 0x61, 0x6C, 0x43, 0x63, 0x6D, 0x32,\n\t0x43, 0x63, 0x6D, 0x33, 0x43, 0x64, 0x6D, 0x32,\n\t0x43, 0x64, 0x6D, 0x33, 0x43, 0x65, 0x72, 0x67,\n\t0x43, 0x66, 0x66, 0x69, 0x43, 0x66, 0x66, 0x6C,\n\t// Bytes 1d40 - 1d7f\n\t0x43, 0x67, 0x61, 0x6C, 0x43, 0x68, 0x50, 0x61,\n\t0x43, 0x69, 0x69, 0x69, 0x43, 0x6B, 0x48, 0x7A,\n\t0x43, 0x6B, 0x50, 0x61, 0x43, 0x6B, 0x6D, 0x32,\n\t0x43, 0x6B, 0x6D, 0x33, 0x43, 0x6B, 0xCE, 0xA9,\n\t0x43, 0x6C, 0x6F, 0x67, 0x43, 0x6C, 0xC2, 0xB7,\n\t0x43, 0x6D, 0x69, 0x6C, 0x43, 0x6D, 0x6D, 0x32,\n\t0x43, 0x6D, 0x6D, 0x33, 0x43, 0x6D, 0x6F, 0x6C,\n\t0x43, 0x72, 0x61, 0x64, 0x43, 0x76, 0x69, 0x69,\n\t// Bytes 1d80 - 1dbf\n\t0x43, 0x78, 0x69, 0x69, 0x43, 0xC2, 0xB0, 0x43,\n\t0x43, 0xC2, 0xB0, 0x46, 0x43, 0xCA, 0xBC, 0x6E,\n\t0x43, 0xCE, 0xBC, 0x41, 0x43, 0xCE, 0xBC, 0x46,\n\t0x43, 0xCE, 0xBC, 0x56, 0x43, 0xCE, 0xBC, 0x57,\n\t0x43, 0xCE, 0xBC, 0x67, 0x43, 0xCE, 0xBC, 0x6C,\n\t0x43, 0xCE, 0xBC, 0x6D, 0x43, 0xCE, 0xBC, 0x73,\n\t0x44, 0x28, 0x31, 0x30, 0x29, 0x44, 0x28, 0x31,\n\t0x31, 0x29, 0x44, 0x28, 0x31, 0x32, 0x29, 0x44,\n\t// Bytes 1dc0 - 1dff\n\t0x28, 0x31, 0x33, 0x29, 0x44, 0x28, 0x31, 0x34,\n\t0x29, 0x44, 0x28, 0x31, 0x35, 0x29, 0x44, 0x28,\n\t0x31, 0x36, 0x29, 0x44, 0x28, 0x31, 0x37, 0x29,\n\t0x44, 0x28, 0x31, 0x38, 0x29, 0x44, 0x28, 0x31,\n\t0x39, 0x29, 0x44, 0x28, 0x32, 0x30, 0x29, 0x44,\n\t0x30, 0xE7, 0x82, 0xB9, 0x44, 0x31, 0xE2, 0x81,\n\t0x84, 0x44, 0x31, 0xE6, 0x97, 0xA5, 0x44, 0x31,\n\t0xE6, 0x9C, 0x88, 0x44, 0x31, 0xE7, 0x82, 0xB9,\n\t// Bytes 1e00 - 1e3f\n\t0x44, 0x32, 0xE6, 0x97, 0xA5, 0x44, 0x32, 0xE6,\n\t0x9C, 0x88, 0x44, 0x32, 0xE7, 0x82, 0xB9, 0x44,\n\t0x33, 0xE6, 0x97, 0xA5, 0x44, 0x33, 0xE6, 0x9C,\n\t0x88, 0x44, 0x33, 0xE7, 0x82, 0xB9, 0x44, 0x34,\n\t0xE6, 0x97, 0xA5, 0x44, 0x34, 0xE6, 0x9C, 0x88,\n\t0x44, 0x34, 0xE7, 0x82, 0xB9, 0x44, 0x35, 0xE6,\n\t0x97, 0xA5, 0x44, 0x35, 0xE6, 0x9C, 0x88, 0x44,\n\t0x35, 0xE7, 0x82, 0xB9, 0x44, 0x36, 0xE6, 0x97,\n\t// Bytes 1e40 - 1e7f\n\t0xA5, 0x44, 0x36, 0xE6, 0x9C, 0x88, 0x44, 0x36,\n\t0xE7, 0x82, 0xB9, 0x44, 0x37, 0xE6, 0x97, 0xA5,\n\t0x44, 0x37, 0xE6, 0x9C, 0x88, 0x44, 0x37, 0xE7,\n\t0x82, 0xB9, 0x44, 0x38, 0xE6, 0x97, 0xA5, 0x44,\n\t0x38, 0xE6, 0x9C, 0x88, 0x44, 0x38, 0xE7, 0x82,\n\t0xB9, 0x44, 0x39, 0xE6, 0x97, 0xA5, 0x44, 0x39,\n\t0xE6, 0x9C, 0x88, 0x44, 0x39, 0xE7, 0x82, 0xB9,\n\t0x44, 0x56, 0x49, 0x49, 0x49, 0x44, 0x61, 0x2E,\n\t// Bytes 1e80 - 1ebf\n\t0x6D, 0x2E, 0x44, 0x6B, 0x63, 0x61, 0x6C, 0x44,\n\t0x70, 0x2E, 0x6D, 0x2E, 0x44, 0x76, 0x69, 0x69,\n\t0x69, 0x44, 0xD5, 0xA5, 0xD6, 0x82, 0x44, 0xD5,\n\t0xB4, 0xD5, 0xA5, 0x44, 0xD5, 0xB4, 0xD5, 0xAB,\n\t0x44, 0xD5, 0xB4, 0xD5, 0xAD, 0x44, 0xD5, 0xB4,\n\t0xD5, 0xB6, 0x44, 0xD5, 0xBE, 0xD5, 0xB6, 0x44,\n\t0xD7, 0x90, 0xD7, 0x9C, 0x44, 0xD8, 0xA7, 0xD9,\n\t0xB4, 0x44, 0xD8, 0xA8, 0xD8, 0xAC, 0x44, 0xD8,\n\t// Bytes 1ec0 - 1eff\n\t0xA8, 0xD8, 0xAD, 0x44, 0xD8, 0xA8, 0xD8, 0xAE,\n\t0x44, 0xD8, 0xA8, 0xD8, 0xB1, 0x44, 0xD8, 0xA8,\n\t0xD8, 0xB2, 0x44, 0xD8, 0xA8, 0xD9, 0x85, 0x44,\n\t0xD8, 0xA8, 0xD9, 0x86, 0x44, 0xD8, 0xA8, 0xD9,\n\t0x87, 0x44, 0xD8, 0xA8, 0xD9, 0x89, 0x44, 0xD8,\n\t0xA8, 0xD9, 0x8A, 0x44, 0xD8, 0xAA, 0xD8, 0xAC,\n\t0x44, 0xD8, 0xAA, 0xD8, 0xAD, 0x44, 0xD8, 0xAA,\n\t0xD8, 0xAE, 0x44, 0xD8, 0xAA, 0xD8, 0xB1, 0x44,\n\t// Bytes 1f00 - 1f3f\n\t0xD8, 0xAA, 0xD8, 0xB2, 0x44, 0xD8, 0xAA, 0xD9,\n\t0x85, 0x44, 0xD8, 0xAA, 0xD9, 0x86, 0x44, 0xD8,\n\t0xAA, 0xD9, 0x87, 0x44, 0xD8, 0xAA, 0xD9, 0x89,\n\t0x44, 0xD8, 0xAA, 0xD9, 0x8A, 0x44, 0xD8, 0xAB,\n\t0xD8, 0xAC, 0x44, 0xD8, 0xAB, 0xD8, 0xB1, 0x44,\n\t0xD8, 0xAB, 0xD8, 0xB2, 0x44, 0xD8, 0xAB, 0xD9,\n\t0x85, 0x44, 0xD8, 0xAB, 0xD9, 0x86, 0x44, 0xD8,\n\t0xAB, 0xD9, 0x87, 0x44, 0xD8, 0xAB, 0xD9, 0x89,\n\t// Bytes 1f40 - 1f7f\n\t0x44, 0xD8, 0xAB, 0xD9, 0x8A, 0x44, 0xD8, 0xAC,\n\t0xD8, 0xAD, 0x44, 0xD8, 0xAC, 0xD9, 0x85, 0x44,\n\t0xD8, 0xAC, 0xD9, 0x89, 0x44, 0xD8, 0xAC, 0xD9,\n\t0x8A, 0x44, 0xD8, 0xAD, 0xD8, 0xAC, 0x44, 0xD8,\n\t0xAD, 0xD9, 0x85, 0x44, 0xD8, 0xAD, 0xD9, 0x89,\n\t0x44, 0xD8, 0xAD, 0xD9, 0x8A, 0x44, 0xD8, 0xAE,\n\t0xD8, 0xAC, 0x44, 0xD8, 0xAE, 0xD8, 0xAD, 0x44,\n\t0xD8, 0xAE, 0xD9, 0x85, 0x44, 0xD8, 0xAE, 0xD9,\n\t// Bytes 1f80 - 1fbf\n\t0x89, 0x44, 0xD8, 0xAE, 0xD9, 0x8A, 0x44, 0xD8,\n\t0xB3, 0xD8, 0xAC, 0x44, 0xD8, 0xB3, 0xD8, 0xAD,\n\t0x44, 0xD8, 0xB3, 0xD8, 0xAE, 0x44, 0xD8, 0xB3,\n\t0xD8, 0xB1, 0x44, 0xD8, 0xB3, 0xD9, 0x85, 0x44,\n\t0xD8, 0xB3, 0xD9, 0x87, 0x44, 0xD8, 0xB3, 0xD9,\n\t0x89, 0x44, 0xD8, 0xB3, 0xD9, 0x8A, 0x44, 0xD8,\n\t0xB4, 0xD8, 0xAC, 0x44, 0xD8, 0xB4, 0xD8, 0xAD,\n\t0x44, 0xD8, 0xB4, 0xD8, 0xAE, 0x44, 0xD8, 0xB4,\n\t// Bytes 1fc0 - 1fff\n\t0xD8, 0xB1, 0x44, 0xD8, 0xB4, 0xD9, 0x85, 0x44,\n\t0xD8, 0xB4, 0xD9, 0x87, 0x44, 0xD8, 0xB4, 0xD9,\n\t0x89, 0x44, 0xD8, 0xB4, 0xD9, 0x8A, 0x44, 0xD8,\n\t0xB5, 0xD8, 0xAD, 0x44, 0xD8, 0xB5, 0xD8, 0xAE,\n\t0x44, 0xD8, 0xB5, 0xD8, 0xB1, 0x44, 0xD8, 0xB5,\n\t0xD9, 0x85, 0x44, 0xD8, 0xB5, 0xD9, 0x89, 0x44,\n\t0xD8, 0xB5, 0xD9, 0x8A, 0x44, 0xD8, 0xB6, 0xD8,\n\t0xAC, 0x44, 0xD8, 0xB6, 0xD8, 0xAD, 0x44, 0xD8,\n\t// Bytes 2000 - 203f\n\t0xB6, 0xD8, 0xAE, 0x44, 0xD8, 0xB6, 0xD8, 0xB1,\n\t0x44, 0xD8, 0xB6, 0xD9, 0x85, 0x44, 0xD8, 0xB6,\n\t0xD9, 0x89, 0x44, 0xD8, 0xB6, 0xD9, 0x8A, 0x44,\n\t0xD8, 0xB7, 0xD8, 0xAD, 0x44, 0xD8, 0xB7, 0xD9,\n\t0x85, 0x44, 0xD8, 0xB7, 0xD9, 0x89, 0x44, 0xD8,\n\t0xB7, 0xD9, 0x8A, 0x44, 0xD8, 0xB8, 0xD9, 0x85,\n\t0x44, 0xD8, 0xB9, 0xD8, 0xAC, 0x44, 0xD8, 0xB9,\n\t0xD9, 0x85, 0x44, 0xD8, 0xB9, 0xD9, 0x89, 0x44,\n\t// Bytes 2040 - 207f\n\t0xD8, 0xB9, 0xD9, 0x8A, 0x44, 0xD8, 0xBA, 0xD8,\n\t0xAC, 0x44, 0xD8, 0xBA, 0xD9, 0x85, 0x44, 0xD8,\n\t0xBA, 0xD9, 0x89, 0x44, 0xD8, 0xBA, 0xD9, 0x8A,\n\t0x44, 0xD9, 0x81, 0xD8, 0xAC, 0x44, 0xD9, 0x81,\n\t0xD8, 0xAD, 0x44, 0xD9, 0x81, 0xD8, 0xAE, 0x44,\n\t0xD9, 0x81, 0xD9, 0x85, 0x44, 0xD9, 0x81, 0xD9,\n\t0x89, 0x44, 0xD9, 0x81, 0xD9, 0x8A, 0x44, 0xD9,\n\t0x82, 0xD8, 0xAD, 0x44, 0xD9, 0x82, 0xD9, 0x85,\n\t// Bytes 2080 - 20bf\n\t0x44, 0xD9, 0x82, 0xD9, 0x89, 0x44, 0xD9, 0x82,\n\t0xD9, 0x8A, 0x44, 0xD9, 0x83, 0xD8, 0xA7, 0x44,\n\t0xD9, 0x83, 0xD8, 0xAC, 0x44, 0xD9, 0x83, 0xD8,\n\t0xAD, 0x44, 0xD9, 0x83, 0xD8, 0xAE, 0x44, 0xD9,\n\t0x83, 0xD9, 0x84, 0x44, 0xD9, 0x83, 0xD9, 0x85,\n\t0x44, 0xD9, 0x83, 0xD9, 0x89, 0x44, 0xD9, 0x83,\n\t0xD9, 0x8A, 0x44, 0xD9, 0x84, 0xD8, 0xA7, 0x44,\n\t0xD9, 0x84, 0xD8, 0xAC, 0x44, 0xD9, 0x84, 0xD8,\n\t// Bytes 20c0 - 20ff\n\t0xAD, 0x44, 0xD9, 0x84, 0xD8, 0xAE, 0x44, 0xD9,\n\t0x84, 0xD9, 0x85, 0x44, 0xD9, 0x84, 0xD9, 0x87,\n\t0x44, 0xD9, 0x84, 0xD9, 0x89, 0x44, 0xD9, 0x84,\n\t0xD9, 0x8A, 0x44, 0xD9, 0x85, 0xD8, 0xA7, 0x44,\n\t0xD9, 0x85, 0xD8, 0xAC, 0x44, 0xD9, 0x85, 0xD8,\n\t0xAD, 0x44, 0xD9, 0x85, 0xD8, 0xAE, 0x44, 0xD9,\n\t0x85, 0xD9, 0x85, 0x44, 0xD9, 0x85, 0xD9, 0x89,\n\t0x44, 0xD9, 0x85, 0xD9, 0x8A, 0x44, 0xD9, 0x86,\n\t// Bytes 2100 - 213f\n\t0xD8, 0xAC, 0x44, 0xD9, 0x86, 0xD8, 0xAD, 0x44,\n\t0xD9, 0x86, 0xD8, 0xAE, 0x44, 0xD9, 0x86, 0xD8,\n\t0xB1, 0x44, 0xD9, 0x86, 0xD8, 0xB2, 0x44, 0xD9,\n\t0x86, 0xD9, 0x85, 0x44, 0xD9, 0x86, 0xD9, 0x86,\n\t0x44, 0xD9, 0x86, 0xD9, 0x87, 0x44, 0xD9, 0x86,\n\t0xD9, 0x89, 0x44, 0xD9, 0x86, 0xD9, 0x8A, 0x44,\n\t0xD9, 0x87, 0xD8, 0xAC, 0x44, 0xD9, 0x87, 0xD9,\n\t0x85, 0x44, 0xD9, 0x87, 0xD9, 0x89, 0x44, 0xD9,\n\t// Bytes 2140 - 217f\n\t0x87, 0xD9, 0x8A, 0x44, 0xD9, 0x88, 0xD9, 0xB4,\n\t0x44, 0xD9, 0x8A, 0xD8, 0xAC, 0x44, 0xD9, 0x8A,\n\t0xD8, 0xAD, 0x44, 0xD9, 0x8A, 0xD8, 0xAE, 0x44,\n\t0xD9, 0x8A, 0xD8, 0xB1, 0x44, 0xD9, 0x8A, 0xD8,\n\t0xB2, 0x44, 0xD9, 0x8A, 0xD9, 0x85, 0x44, 0xD9,\n\t0x8A, 0xD9, 0x86, 0x44, 0xD9, 0x8A, 0xD9, 0x87,\n\t0x44, 0xD9, 0x8A, 0xD9, 0x89, 0x44, 0xD9, 0x8A,\n\t0xD9, 0x8A, 0x44, 0xD9, 0x8A, 0xD9, 0xB4, 0x44,\n\t// Bytes 2180 - 21bf\n\t0xDB, 0x87, 0xD9, 0xB4, 0x45, 0x28, 0xE1, 0x84,\n\t0x80, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x82, 0x29,\n\t0x45, 0x28, 0xE1, 0x84, 0x83, 0x29, 0x45, 0x28,\n\t0xE1, 0x84, 0x85, 0x29, 0x45, 0x28, 0xE1, 0x84,\n\t0x86, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x87, 0x29,\n\t0x45, 0x28, 0xE1, 0x84, 0x89, 0x29, 0x45, 0x28,\n\t0xE1, 0x84, 0x8B, 0x29, 0x45, 0x28, 0xE1, 0x84,\n\t0x8C, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8E, 0x29,\n\t// Bytes 21c0 - 21ff\n\t0x45, 0x28, 0xE1, 0x84, 0x8F, 0x29, 0x45, 0x28,\n\t0xE1, 0x84, 0x90, 0x29, 0x45, 0x28, 0xE1, 0x84,\n\t0x91, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x92, 0x29,\n\t0x45, 0x28, 0xE4, 0xB8, 0x80, 0x29, 0x45, 0x28,\n\t0xE4, 0xB8, 0x83, 0x29, 0x45, 0x28, 0xE4, 0xB8,\n\t0x89, 0x29, 0x45, 0x28, 0xE4, 0xB9, 0x9D, 0x29,\n\t0x45, 0x28, 0xE4, 0xBA, 0x8C, 0x29, 0x45, 0x28,\n\t0xE4, 0xBA, 0x94, 0x29, 0x45, 0x28, 0xE4, 0xBB,\n\t// Bytes 2200 - 223f\n\t0xA3, 0x29, 0x45, 0x28, 0xE4, 0xBC, 0x81, 0x29,\n\t0x45, 0x28, 0xE4, 0xBC, 0x91, 0x29, 0x45, 0x28,\n\t0xE5, 0x85, 0xAB, 0x29, 0x45, 0x28, 0xE5, 0x85,\n\t0xAD, 0x29, 0x45, 0x28, 0xE5, 0x8A, 0xB4, 0x29,\n\t0x45, 0x28, 0xE5, 0x8D, 0x81, 0x29, 0x45, 0x28,\n\t0xE5, 0x8D, 0x94, 0x29, 0x45, 0x28, 0xE5, 0x90,\n\t0x8D, 0x29, 0x45, 0x28, 0xE5, 0x91, 0xBC, 0x29,\n\t0x45, 0x28, 0xE5, 0x9B, 0x9B, 0x29, 0x45, 0x28,\n\t// Bytes 2240 - 227f\n\t0xE5, 0x9C, 0x9F, 0x29, 0x45, 0x28, 0xE5, 0xAD,\n\t0xA6, 0x29, 0x45, 0x28, 0xE6, 0x97, 0xA5, 0x29,\n\t0x45, 0x28, 0xE6, 0x9C, 0x88, 0x29, 0x45, 0x28,\n\t0xE6, 0x9C, 0x89, 0x29, 0x45, 0x28, 0xE6, 0x9C,\n\t0xA8, 0x29, 0x45, 0x28, 0xE6, 0xA0, 0xAA, 0x29,\n\t0x45, 0x28, 0xE6, 0xB0, 0xB4, 0x29, 0x45, 0x28,\n\t0xE7, 0x81, 0xAB, 0x29, 0x45, 0x28, 0xE7, 0x89,\n\t0xB9, 0x29, 0x45, 0x28, 0xE7, 0x9B, 0xA3, 0x29,\n\t// Bytes 2280 - 22bf\n\t0x45, 0x28, 0xE7, 0xA4, 0xBE, 0x29, 0x45, 0x28,\n\t0xE7, 0xA5, 0x9D, 0x29, 0x45, 0x28, 0xE7, 0xA5,\n\t0xAD, 0x29, 0x45, 0x28, 0xE8, 0x87, 0xAA, 0x29,\n\t0x45, 0x28, 0xE8, 0x87, 0xB3, 0x29, 0x45, 0x28,\n\t0xE8, 0xB2, 0xA1, 0x29, 0x45, 0x28, 0xE8, 0xB3,\n\t0x87, 0x29, 0x45, 0x28, 0xE9, 0x87, 0x91, 0x29,\n\t0x45, 0x30, 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31,\n\t0x30, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x30, 0xE6,\n\t// Bytes 22c0 - 22ff\n\t0x9C, 0x88, 0x45, 0x31, 0x30, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t0x31, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x31, 0xE7,\n\t0x82, 0xB9, 0x45, 0x31, 0x32, 0xE6, 0x97, 0xA5,\n\t0x45, 0x31, 0x32, 0xE6, 0x9C, 0x88, 0x45, 0x31,\n\t0x32, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x33, 0xE6,\n\t0x97, 0xA5, 0x45, 0x31, 0x33, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t// Bytes 2300 - 233f\n\t0x34, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x35, 0xE6,\n\t0x97, 0xA5, 0x45, 0x31, 0x35, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x36, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t0x36, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x37, 0xE6,\n\t0x97, 0xA5, 0x45, 0x31, 0x37, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t0x38, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x39, 0xE6,\n\t0x97, 0xA5, 0x45, 0x31, 0x39, 0xE7, 0x82, 0xB9,\n\t// Bytes 2340 - 237f\n\t0x45, 0x31, 0xE2, 0x81, 0x84, 0x32, 0x45, 0x31,\n\t0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, 0xE2, 0x81,\n\t0x84, 0x34, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x35,\n\t0x45, 0x31, 0xE2, 0x81, 0x84, 0x36, 0x45, 0x31,\n\t0xE2, 0x81, 0x84, 0x37, 0x45, 0x31, 0xE2, 0x81,\n\t0x84, 0x38, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x39,\n\t0x45, 0x32, 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x30, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x31, 0xE6,\n\t// Bytes 2380 - 23bf\n\t0x97, 0xA5, 0x45, 0x32, 0x31, 0xE7, 0x82, 0xB9,\n\t0x45, 0x32, 0x32, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x32, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x33, 0xE6,\n\t0x97, 0xA5, 0x45, 0x32, 0x33, 0xE7, 0x82, 0xB9,\n\t0x45, 0x32, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x34, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x35, 0xE6,\n\t0x97, 0xA5, 0x45, 0x32, 0x36, 0xE6, 0x97, 0xA5,\n\t0x45, 0x32, 0x37, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t// Bytes 23c0 - 23ff\n\t0x38, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x39, 0xE6,\n\t0x97, 0xA5, 0x45, 0x32, 0xE2, 0x81, 0x84, 0x33,\n\t0x45, 0x32, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33,\n\t0x30, 0xE6, 0x97, 0xA5, 0x45, 0x33, 0x31, 0xE6,\n\t0x97, 0xA5, 0x45, 0x33, 0xE2, 0x81, 0x84, 0x34,\n\t0x45, 0x33, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33,\n\t0xE2, 0x81, 0x84, 0x38, 0x45, 0x34, 0xE2, 0x81,\n\t0x84, 0x35, 0x45, 0x35, 0xE2, 0x81, 0x84, 0x36,\n\t// Bytes 2400 - 243f\n\t0x45, 0x35, 0xE2, 0x81, 0x84, 0x38, 0x45, 0x37,\n\t0xE2, 0x81, 0x84, 0x38, 0x45, 0x41, 0xE2, 0x88,\n\t0x95, 0x6D, 0x45, 0x56, 0xE2, 0x88, 0x95, 0x6D,\n\t0x45, 0x6D, 0xE2, 0x88, 0x95, 0x73, 0x46, 0x31,\n\t0xE2, 0x81, 0x84, 0x31, 0x30, 0x46, 0x43, 0xE2,\n\t0x88, 0x95, 0x6B, 0x67, 0x46, 0x6D, 0xE2, 0x88,\n\t0x95, 0x73, 0x32, 0x46, 0xD8, 0xA8, 0xD8, 0xAD,\n\t0xD9, 0x8A, 0x46, 0xD8, 0xA8, 0xD8, 0xAE, 0xD9,\n\t// Bytes 2440 - 247f\n\t0x8A, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x85,\n\t0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x89, 0x46,\n\t0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8,\n\t0xAA, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xAA,\n\t0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8,\n\t0xAE, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAE,\n\t0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9,\n\t0x8A, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAC,\n\t// Bytes 2480 - 24bf\n\t0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAD, 0x46,\n\t0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAE, 0x46, 0xD8,\n\t0xAA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAA,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD8,\n\t0xAD, 0xD9, 0x89, 0x46, 0xD8, 0xAC, 0xD8, 0xAD,\n\t0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD8,\n\t0xAD, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x89,\n\t0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x8A, 0x46,\n\t// Bytes 24c0 - 24ff\n\t0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8,\n\t0xAD, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAD,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB3, 0xD8,\n\t0xAC, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, 0xD8, 0xAC,\n\t0xD9, 0x89, 0x46, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8,\n\t0xAC, 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x89,\n\t0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x8A, 0x46,\n\t0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD8,\n\t// Bytes 2500 - 253f\n\t0xB3, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xB3,\n\t0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8,\n\t0xAC, 0xD9, 0x8A, 0x46, 0xD8, 0xB4, 0xD8, 0xAD,\n\t0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, 0xD9,\n\t0x8A, 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xAE,\n\t0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD9, 0x85, 0x46,\n\t0xD8, 0xB5, 0xD8, 0xAD, 0xD8, 0xAD, 0x46, 0xD8,\n\t0xB5, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB5,\n\t// Bytes 2540 - 257f\n\t0xD9, 0x84, 0xD9, 0x89, 0x46, 0xD8, 0xB5, 0xD9,\n\t0x84, 0xDB, 0x92, 0x46, 0xD8, 0xB5, 0xD9, 0x85,\n\t0xD9, 0x85, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9,\n\t0x89, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x8A,\n\t0x46, 0xD8, 0xB6, 0xD8, 0xAE, 0xD9, 0x85, 0x46,\n\t0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8,\n\t0xB7, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB7,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB9, 0xD8,\n\t// Bytes 2580 - 25bf\n\t0xAC, 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85,\n\t0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9,\n\t0x89, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x8A,\n\t0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x85, 0x46,\n\t0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8,\n\t0xBA, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x81,\n\t0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x81, 0xD9,\n\t0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x82, 0xD9, 0x84,\n\t// Bytes 25c0 - 25ff\n\t0xDB, 0x92, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD8,\n\t0xAD, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x85,\n\t0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x8A, 0x46,\n\t0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9,\n\t0x83, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x84,\n\t0xD8, 0xAC, 0xD8, 0xAC, 0x46, 0xD9, 0x84, 0xD8,\n\t0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAC,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9,\n\t// Bytes 2600 - 263f\n\t0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x89,\n\t0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x8A, 0x46,\n\t0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9,\n\t0x84, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x84,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8,\n\t0xAC, 0xD8, 0xAD, 0x46, 0xD9, 0x85, 0xD8, 0xAC,\n\t0xD8, 0xAE, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9,\n\t0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x8A,\n\t// Bytes 2640 - 267f\n\t0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0x46,\n\t0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9,\n\t0x85, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x85,\n\t0xD8, 0xAE, 0xD8, 0xAC, 0x46, 0xD9, 0x85, 0xD8,\n\t0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAE,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD9, 0x85, 0xD9,\n\t0x8A, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD8, 0xAD,\n\t0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x85, 0x46,\n\t// Bytes 2680 - 26bf\n\t0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD9,\n\t0x86, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x86,\n\t0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x86, 0xD8,\n\t0xAD, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD8, 0xAD,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9,\n\t0x89, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x8A,\n\t0x46, 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xAC, 0x46,\n\t0xD9, 0x87, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9,\n\t// Bytes 26c0 - 26ff\n\t0x8A, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x8A,\n\t0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9,\n\t0x85, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x85,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8,\n\t0xA7, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAC,\n\t0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAD, 0x46,\n\t0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAE, 0x46, 0xD9,\n\t0x8A, 0xD9, 0x94, 0xD8, 0xB1, 0x46, 0xD9, 0x8A,\n\t// Bytes 2700 - 273f\n\t0xD9, 0x94, 0xD8, 0xB2, 0x46, 0xD9, 0x8A, 0xD9,\n\t0x94, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x94,\n\t0xD9, 0x86, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9,\n\t0x87, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x88,\n\t0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x89, 0x46,\n\t0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x8A, 0x46, 0xD9,\n\t0x8A, 0xD9, 0x94, 0xDB, 0x86, 0x46, 0xD9, 0x8A,\n\t0xD9, 0x94, 0xDB, 0x87, 0x46, 0xD9, 0x8A, 0xD9,\n\t// Bytes 2740 - 277f\n\t0x94, 0xDB, 0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94,\n\t0xDB, 0x90, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB,\n\t0x95, 0x46, 0xE0, 0xB9, 0x8D, 0xE0, 0xB8, 0xB2,\n\t0x46, 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0x99, 0x46,\n\t0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0xA1, 0x46, 0xE0,\n\t0xBB, 0x8D, 0xE0, 0xBA, 0xB2, 0x46, 0xE0, 0xBD,\n\t0x80, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, 0xBD, 0x82,\n\t0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x8C, 0xE0,\n\t// Bytes 2780 - 27bf\n\t0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x91, 0xE0, 0xBE,\n\t0xB7, 0x46, 0xE0, 0xBD, 0x96, 0xE0, 0xBE, 0xB7,\n\t0x46, 0xE0, 0xBD, 0x9B, 0xE0, 0xBE, 0xB7, 0x46,\n\t0xE0, 0xBE, 0x90, 0xE0, 0xBE, 0xB5, 0x46, 0xE0,\n\t0xBE, 0x92, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE,\n\t0x9C, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA1,\n\t0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA6, 0xE0,\n\t0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xAB, 0xE0, 0xBE,\n\t// Bytes 27c0 - 27ff\n\t0xB7, 0x46, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,\n\t0x46, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x46,\n\t0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x46, 0xE2,\n\t0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x46, 0xE3, 0x81,\n\t0xBB, 0xE3, 0x81, 0x8B, 0x46, 0xE3, 0x82, 0x88,\n\t0xE3, 0x82, 0x8A, 0x46, 0xE3, 0x82, 0xAD, 0xE3,\n\t0x83, 0xAD, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x82,\n\t0xB3, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0x88,\n\t// Bytes 2800 - 283f\n\t0x46, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x46,\n\t0xE3, 0x83, 0x8A, 0xE3, 0x83, 0x8E, 0x46, 0xE3,\n\t0x83, 0x9B, 0xE3, 0x83, 0xB3, 0x46, 0xE3, 0x83,\n\t0x9F, 0xE3, 0x83, 0xAA, 0x46, 0xE3, 0x83, 0xAA,\n\t0xE3, 0x83, 0xA9, 0x46, 0xE3, 0x83, 0xAC, 0xE3,\n\t0x83, 0xA0, 0x46, 0xE4, 0xBB, 0xA4, 0xE5, 0x92,\n\t0x8C, 0x46, 0xE5, 0xA4, 0xA7, 0xE6, 0xAD, 0xA3,\n\t0x46, 0xE5, 0xB9, 0xB3, 0xE6, 0x88, 0x90, 0x46,\n\t// Bytes 2840 - 287f\n\t0xE6, 0x98, 0x8E, 0xE6, 0xB2, 0xBB, 0x46, 0xE6,\n\t0x98, 0xAD, 0xE5, 0x92, 0x8C, 0x47, 0x72, 0x61,\n\t0x64, 0xE2, 0x88, 0x95, 0x73, 0x47, 0xE3, 0x80,\n\t0x94, 0x53, 0xE3, 0x80, 0x95, 0x48, 0x28, 0xE1,\n\t0x84, 0x80, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28,\n\t0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x29, 0x48,\n\t0x28, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, 0x29,\n\t0x48, 0x28, 0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1,\n\t// Bytes 2880 - 28bf\n\t0x29, 0x48, 0x28, 0xE1, 0x84, 0x86, 0xE1, 0x85,\n\t0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x87, 0xE1,\n\t0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x89,\n\t0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,\n\t0x8B, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1,\n\t0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28,\n\t0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xAE, 0x29, 0x48,\n\t0x28, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0x29,\n\t// Bytes 28c0 - 28ff\n\t0x48, 0x28, 0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1,\n\t0x29, 0x48, 0x28, 0xE1, 0x84, 0x90, 0xE1, 0x85,\n\t0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x91, 0xE1,\n\t0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x92,\n\t0xE1, 0x85, 0xA1, 0x29, 0x48, 0x72, 0x61, 0x64,\n\t0xE2, 0x88, 0x95, 0x73, 0x32, 0x48, 0xD8, 0xA7,\n\t0xD9, 0x83, 0xD8, 0xA8, 0xD8, 0xB1, 0x48, 0xD8,\n\t0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x87, 0x48,\n\t// Bytes 2900 - 293f\n\t0xD8, 0xB1, 0xD8, 0xB3, 0xD9, 0x88, 0xD9, 0x84,\n\t0x48, 0xD8, 0xB1, 0xDB, 0x8C, 0xD8, 0xA7, 0xD9,\n\t0x84, 0x48, 0xD8, 0xB5, 0xD9, 0x84, 0xD8, 0xB9,\n\t0xD9, 0x85, 0x48, 0xD8, 0xB9, 0xD9, 0x84, 0xD9,\n\t0x8A, 0xD9, 0x87, 0x48, 0xD9, 0x85, 0xD8, 0xAD,\n\t0xD9, 0x85, 0xD8, 0xAF, 0x48, 0xD9, 0x88, 0xD8,\n\t0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x49, 0xE2, 0x80,\n\t0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0x49,\n\t// Bytes 2940 - 297f\n\t0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0xE2, 0x80,\n\t0xB5, 0x49, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB,\n\t0xE2, 0x88, 0xAB, 0x49, 0xE2, 0x88, 0xAE, 0xE2,\n\t0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x49, 0xE3, 0x80,\n\t0x94, 0xE4, 0xB8, 0x89, 0xE3, 0x80, 0x95, 0x49,\n\t0xE3, 0x80, 0x94, 0xE4, 0xBA, 0x8C, 0xE3, 0x80,\n\t0x95, 0x49, 0xE3, 0x80, 0x94, 0xE5, 0x8B, 0x9D,\n\t0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE5,\n\t// Bytes 2980 - 29bf\n\t0xAE, 0x89, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80,\n\t0x94, 0xE6, 0x89, 0x93, 0xE3, 0x80, 0x95, 0x49,\n\t0xE3, 0x80, 0x94, 0xE6, 0x95, 0x97, 0xE3, 0x80,\n\t0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x9C, 0xAC,\n\t0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE7,\n\t0x82, 0xB9, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80,\n\t0x94, 0xE7, 0x9B, 0x97, 0xE3, 0x80, 0x95, 0x49,\n\t0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t// Bytes 29c0 - 29ff\n\t0xAB, 0x49, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xB3,\n\t0xE3, 0x83, 0x81, 0x49, 0xE3, 0x82, 0xA6, 0xE3,\n\t0x82, 0xA9, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x82,\n\t0xAA, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB9, 0x49,\n\t0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0xA0, 0x49, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0xA4,\n\t0xE3, 0x83, 0xAA, 0x49, 0xE3, 0x82, 0xB1, 0xE3,\n\t0x83, 0xBC, 0xE3, 0x82, 0xB9, 0x49, 0xE3, 0x82,\n\t// Bytes 2a00 - 2a3f\n\t0xB3, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x8A, 0x49,\n\t0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83,\n\t0x81, 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3,\n\t0xE3, 0x83, 0x88, 0x49, 0xE3, 0x83, 0x86, 0xE3,\n\t0x82, 0x99, 0xE3, 0x82, 0xB7, 0x49, 0xE3, 0x83,\n\t0x88, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0x49,\n\t0xE3, 0x83, 0x8E, 0xE3, 0x83, 0x83, 0xE3, 0x83,\n\t0x88, 0x49, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0xA4,\n\t// Bytes 2a40 - 2a7f\n\t0xE3, 0x83, 0x84, 0x49, 0xE3, 0x83, 0x92, 0xE3,\n\t0x82, 0x99, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83,\n\t0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xB3, 0x49,\n\t0xE3, 0x83, 0x95, 0xE3, 0x83, 0xA9, 0xE3, 0x83,\n\t0xB3, 0x49, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A,\n\t0xE3, 0x82, 0xBD, 0x49, 0xE3, 0x83, 0x98, 0xE3,\n\t0x83, 0xAB, 0xE3, 0x83, 0x84, 0x49, 0xE3, 0x83,\n\t0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x49,\n\t// Bytes 2a80 - 2abf\n\t0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0xB3, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xA4,\n\t0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x9E, 0xE3,\n\t0x83, 0x83, 0xE3, 0x83, 0x8F, 0x49, 0xE3, 0x83,\n\t0x9E, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xAF, 0x49,\n\t0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0xAB, 0x49, 0xE3, 0x83, 0xA6, 0xE3, 0x82, 0xA2,\n\t0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83, 0xAF, 0xE3,\n\t// Bytes 2ac0 - 2aff\n\t0x83, 0x83, 0xE3, 0x83, 0x88, 0x4C, 0xE2, 0x80,\n\t0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2,\n\t0x80, 0xB2, 0x4C, 0xE2, 0x88, 0xAB, 0xE2, 0x88,\n\t0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x4C,\n\t0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xAB, 0xE3, 0x83,\n\t0x95, 0xE3, 0x82, 0xA1, 0x4C, 0xE3, 0x82, 0xA8,\n\t0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAB, 0xE3, 0x83,\n\t0xBC, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99,\n\t// Bytes 2b00 - 2b3f\n\t0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, 0x4C, 0xE3,\n\t0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xB3,\n\t0xE3, 0x83, 0x9E, 0x4C, 0xE3, 0x82, 0xAB, 0xE3,\n\t0x83, 0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88,\n\t0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xAD, 0xE3,\n\t0x83, 0xAA, 0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82,\n\t0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x8B, 0xE3,\n\t0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x83,\n\t// Bytes 2b40 - 2b7f\n\t0xA5, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, 0x4C,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0xA9, 0xE3, 0x83, 0xA0, 0x4C, 0xE3, 0x82, 0xAF,\n\t0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0x8D, 0x4C, 0xE3, 0x82, 0xB5, 0xE3, 0x82, 0xA4,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, 0xE3,\n\t0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC,\n\t0xE3, 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x8F, 0xE3,\n\t// Bytes 2b80 - 2bbf\n\t0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x84,\n\t0x4C, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3,\n\t0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83,\n\t0x95, 0xE3, 0x82, 0xA3, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0x88, 0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xBF, 0x4C,\n\t0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83,\n\t0x8B, 0xE3, 0x83, 0x92, 0x4C, 0xE3, 0x83, 0x98,\n\t// Bytes 2bc0 - 2bff\n\t0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3, 0xE3, 0x82,\n\t0xB9, 0x4C, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99,\n\t0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x88, 0x4C, 0xE3,\n\t0x83, 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x82, 0xAF,\n\t0xE3, 0x83, 0xAD, 0x4C, 0xE3, 0x83, 0x9F, 0xE3,\n\t0x82, 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3,\n\t0x4C, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0x88, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83,\n\t// Bytes 2c00 - 2c3f\n\t0xAA, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0xE3,\n\t0x83, 0xAB, 0x4C, 0xE3, 0x83, 0xAB, 0xE3, 0x83,\n\t0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0x4C,\n\t0xE6, 0xA0, 0xAA, 0xE5, 0xBC, 0x8F, 0xE4, 0xBC,\n\t0x9A, 0xE7, 0xA4, 0xBE, 0x4E, 0x28, 0xE1, 0x84,\n\t0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x92, 0xE1,\n\t0x85, 0xAE, 0x29, 0x4F, 0xD8, 0xAC, 0xD9, 0x84,\n\t0x20, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xA7, 0xD9,\n\t// Bytes 2c40 - 2c7f\n\t0x84, 0xD9, 0x87, 0x4F, 0xE3, 0x82, 0xA2, 0xE3,\n\t0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC,\n\t0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xA2, 0xE3,\n\t0x83, 0xB3, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A,\n\t0xE3, 0x82, 0xA2, 0x4F, 0xE3, 0x82, 0xAD, 0xE3,\n\t0x83, 0xAD, 0xE3, 0x83, 0xAF, 0xE3, 0x83, 0x83,\n\t0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xB5, 0xE3,\n\t0x83, 0xB3, 0xE3, 0x83, 0x81, 0xE3, 0x83, 0xBC,\n\t// Bytes 2c80 - 2cbf\n\t0xE3, 0x83, 0xA0, 0x4F, 0xE3, 0x83, 0x8F, 0xE3,\n\t0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAC,\n\t0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x98, 0xE3,\n\t0x82, 0xAF, 0xE3, 0x82, 0xBF, 0xE3, 0x83, 0xBC,\n\t0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x9B, 0xE3,\n\t0x82, 0x9A, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xB3,\n\t0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x83, 0x9E, 0xE3,\n\t0x83, 0xB3, 0xE3, 0x82, 0xB7, 0xE3, 0x83, 0xA7,\n\t// Bytes 2cc0 - 2cff\n\t0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xA1, 0xE3,\n\t0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x88,\n\t0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xAB, 0xE3,\n\t0x83, 0xBC, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99,\n\t0xE3, 0x83, 0xAB, 0x51, 0x28, 0xE1, 0x84, 0x8B,\n\t0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x8C, 0xE1, 0x85,\n\t0xA5, 0xE1, 0x86, 0xAB, 0x29, 0x52, 0xE3, 0x82,\n\t0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0xE3,\n\t// Bytes 2d00 - 2d3f\n\t0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC,\n\t0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD, 0xE3,\n\t0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xA9,\n\t0xE3, 0x83, 0xA0, 0x52, 0xE3, 0x82, 0xAD, 0xE3,\n\t0x83, 0xAD, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC,\n\t0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x52, 0xE3,\n\t0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xA9,\n\t0xE3, 0x83, 0xA0, 0xE3, 0x83, 0x88, 0xE3, 0x83,\n\t// Bytes 2d40 - 2d7f\n\t0xB3, 0x52, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB,\n\t0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x83, 0xAD, 0x52, 0xE3, 0x83, 0x8F,\n\t0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x82,\n\t0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, 0x52,\n\t0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82,\n\t0xA2, 0xE3, 0x82, 0xB9, 0xE3, 0x83, 0x88, 0xE3,\n\t0x83, 0xAB, 0x52, 0xE3, 0x83, 0x95, 0xE3, 0x82,\n\t// Bytes 2d80 - 2dbf\n\t0x99, 0xE3, 0x83, 0x83, 0xE3, 0x82, 0xB7, 0xE3,\n\t0x82, 0xA7, 0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83,\n\t0x9F, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x8F, 0xE3,\n\t0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB,\n\t0x52, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xB3, 0xE3,\n\t0x83, 0x88, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99,\n\t0xE3, 0x83, 0xB3, 0x61, 0xD8, 0xB5, 0xD9, 0x84,\n\t0xD9, 0x89, 0x20, 0xD8, 0xA7, 0xD9, 0x84, 0xD9,\n\t// Bytes 2dc0 - 2dff\n\t0x84, 0xD9, 0x87, 0x20, 0xD8, 0xB9, 0xD9, 0x84,\n\t0xD9, 0x8A, 0xD9, 0x87, 0x20, 0xD9, 0x88, 0xD8,\n\t0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x06, 0xE0, 0xA7,\n\t0x87, 0xE0, 0xA6, 0xBE, 0x01, 0x06, 0xE0, 0xA7,\n\t0x87, 0xE0, 0xA7, 0x97, 0x01, 0x06, 0xE0, 0xAD,\n\t0x87, 0xE0, 0xAC, 0xBE, 0x01, 0x06, 0xE0, 0xAD,\n\t0x87, 0xE0, 0xAD, 0x96, 0x01, 0x06, 0xE0, 0xAD,\n\t0x87, 0xE0, 0xAD, 0x97, 0x01, 0x06, 0xE0, 0xAE,\n\t// Bytes 2e00 - 2e3f\n\t0x92, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0, 0xAF,\n\t0x86, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0, 0xAF,\n\t0x86, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0, 0xAF,\n\t0x87, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0, 0xB2,\n\t0xBF, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0, 0xB3,\n\t0x86, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0, 0xB3,\n\t0x86, 0xE0, 0xB3, 0x96, 0x01, 0x06, 0xE0, 0xB5,\n\t0x86, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0, 0xB5,\n\t// Bytes 2e40 - 2e7f\n\t0x86, 0xE0, 0xB5, 0x97, 0x01, 0x06, 0xE0, 0xB5,\n\t0x87, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0, 0xB7,\n\t0x99, 0xE0, 0xB7, 0x9F, 0x01, 0x06, 0xE1, 0x80,\n\t0xA5, 0xE1, 0x80, 0xAE, 0x01, 0x06, 0xE1, 0xAC,\n\t0x85, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC,\n\t0x87, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC,\n\t0x89, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC,\n\t0x8B, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC,\n\t// Bytes 2e80 - 2ebf\n\t0x8D, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC,\n\t0x91, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC,\n\t0xBA, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC,\n\t0xBC, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC,\n\t0xBE, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC,\n\t0xBF, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAD,\n\t0x82, 0xE1, 0xAC, 0xB5, 0x01, 0x08, 0xF0, 0x91,\n\t0x84, 0xB1, 0xF0, 0x91, 0x84, 0xA7, 0x01, 0x08,\n\t// Bytes 2ec0 - 2eff\n\t0xF0, 0x91, 0x84, 0xB2, 0xF0, 0x91, 0x84, 0xA7,\n\t0x01, 0x08, 0xF0, 0x91, 0x8D, 0x87, 0xF0, 0x91,\n\t0x8C, 0xBE, 0x01, 0x08, 0xF0, 0x91, 0x8D, 0x87,\n\t0xF0, 0x91, 0x8D, 0x97, 0x01, 0x08, 0xF0, 0x91,\n\t0x92, 0xB9, 0xF0, 0x91, 0x92, 0xB0, 0x01, 0x08,\n\t0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xBA,\n\t0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91,\n\t0x92, 0xBD, 0x01, 0x08, 0xF0, 0x91, 0x96, 0xB8,\n\t// Bytes 2f00 - 2f3f\n\t0xF0, 0x91, 0x96, 0xAF, 0x01, 0x08, 0xF0, 0x91,\n\t0x96, 0xB9, 0xF0, 0x91, 0x96, 0xAF, 0x01, 0x08,\n\t0xF0, 0x91, 0xA4, 0xB5, 0xF0, 0x91, 0xA4, 0xB0,\n\t0x01, 0x09, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82,\n\t0xE0, 0xB3, 0x95, 0x02, 0x09, 0xE0, 0xB7, 0x99,\n\t0xE0, 0xB7, 0x8F, 0xE0, 0xB7, 0x8A, 0x16, 0x44,\n\t0x44, 0x5A, 0xCC, 0x8C, 0xCD, 0x44, 0x44, 0x7A,\n\t0xCC, 0x8C, 0xCD, 0x44, 0x64, 0x7A, 0xCC, 0x8C,\n\t// Bytes 2f40 - 2f7f\n\t0xCD, 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x93,\n\t0xCD, 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94,\n\t0xCD, 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x95,\n\t0xB9, 0x46, 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1,\n\t0x01, 0x46, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1,\n\t0x01, 0x46, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1,\n\t0x01, 0x46, 0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1,\n\t0x01, 0x46, 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1,\n\t// Bytes 2f80 - 2fbf\n\t0x01, 0x46, 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1,\n\t0x01, 0x46, 0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1,\n\t0x01, 0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1,\n\t0x01, 0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xAE,\n\t0x01, 0x46, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1,\n\t0x01, 0x46, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1,\n\t0x01, 0x46, 0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1,\n\t0x01, 0x46, 0xE1, 0x84, 0x90, 0xE1, 0x85, 0xA1,\n\t// Bytes 2fc0 - 2fff\n\t0x01, 0x46, 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1,\n\t0x01, 0x46, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1,\n\t0x01, 0x49, 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB,\n\t0xE3, 0x82, 0x99, 0x11, 0x4C, 0xE1, 0x84, 0x8C,\n\t0xE1, 0x85, 0xAE, 0xE1, 0x84, 0x8B, 0xE1, 0x85,\n\t0xB4, 0x01, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x82,\n\t0x99, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x11,\n\t0x4C, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0xBC, 0xE3,\n\t// Bytes 3000 - 303f\n\t0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x11, 0x4C, 0xE3,\n\t0x83, 0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88,\n\t0xE3, 0x82, 0x99, 0x11, 0x4F, 0xE1, 0x84, 0x8E,\n\t0xE1, 0x85, 0xA1, 0xE1, 0x86, 0xB7, 0xE1, 0x84,\n\t0x80, 0xE1, 0x85, 0xA9, 0x01, 0x4F, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xB3, 0xE3,\n\t0x82, 0xAF, 0xE3, 0x82, 0x99, 0x11, 0x4F, 0xE3,\n\t0x82, 0xB7, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xB3,\n\t// Bytes 3040 - 307f\n\t0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x11, 0x4F,\n\t0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x11,\n\t0x4F, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3,\n\t0x83, 0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99,\n\t0x11, 0x52, 0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xB9,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0x88, 0xE3, 0x82, 0x99, 0x11, 0x52, 0xE3, 0x83,\n\t// Bytes 3080 - 30bf\n\t0x95, 0xE3, 0x82, 0xA1, 0xE3, 0x83, 0xA9, 0xE3,\n\t0x83, 0x83, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99,\n\t0x11, 0x86, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82,\n\t0x01, 0x86, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8F,\n\t0x01, 0x03, 0x3C, 0xCC, 0xB8, 0x05, 0x03, 0x3D,\n\t0xCC, 0xB8, 0x05, 0x03, 0x3E, 0xCC, 0xB8, 0x05,\n\t0x03, 0x41, 0xCC, 0x80, 0xCD, 0x03, 0x41, 0xCC,\n\t0x81, 0xCD, 0x03, 0x41, 0xCC, 0x83, 0xCD, 0x03,\n\t// Bytes 30c0 - 30ff\n\t0x41, 0xCC, 0x84, 0xCD, 0x03, 0x41, 0xCC, 0x89,\n\t0xCD, 0x03, 0x41, 0xCC, 0x8C, 0xCD, 0x03, 0x41,\n\t0xCC, 0x8F, 0xCD, 0x03, 0x41, 0xCC, 0x91, 0xCD,\n\t0x03, 0x41, 0xCC, 0xA5, 0xB9, 0x03, 0x41, 0xCC,\n\t0xA8, 0xA9, 0x03, 0x42, 0xCC, 0x87, 0xCD, 0x03,\n\t0x42, 0xCC, 0xA3, 0xB9, 0x03, 0x42, 0xCC, 0xB1,\n\t0xB9, 0x03, 0x43, 0xCC, 0x81, 0xCD, 0x03, 0x43,\n\t0xCC, 0x82, 0xCD, 0x03, 0x43, 0xCC, 0x87, 0xCD,\n\t// Bytes 3100 - 313f\n\t0x03, 0x43, 0xCC, 0x8C, 0xCD, 0x03, 0x44, 0xCC,\n\t0x87, 0xCD, 0x03, 0x44, 0xCC, 0x8C, 0xCD, 0x03,\n\t0x44, 0xCC, 0xA3, 0xB9, 0x03, 0x44, 0xCC, 0xA7,\n\t0xA9, 0x03, 0x44, 0xCC, 0xAD, 0xB9, 0x03, 0x44,\n\t0xCC, 0xB1, 0xB9, 0x03, 0x45, 0xCC, 0x80, 0xCD,\n\t0x03, 0x45, 0xCC, 0x81, 0xCD, 0x03, 0x45, 0xCC,\n\t0x83, 0xCD, 0x03, 0x45, 0xCC, 0x86, 0xCD, 0x03,\n\t0x45, 0xCC, 0x87, 0xCD, 0x03, 0x45, 0xCC, 0x88,\n\t// Bytes 3140 - 317f\n\t0xCD, 0x03, 0x45, 0xCC, 0x89, 0xCD, 0x03, 0x45,\n\t0xCC, 0x8C, 0xCD, 0x03, 0x45, 0xCC, 0x8F, 0xCD,\n\t0x03, 0x45, 0xCC, 0x91, 0xCD, 0x03, 0x45, 0xCC,\n\t0xA8, 0xA9, 0x03, 0x45, 0xCC, 0xAD, 0xB9, 0x03,\n\t0x45, 0xCC, 0xB0, 0xB9, 0x03, 0x46, 0xCC, 0x87,\n\t0xCD, 0x03, 0x47, 0xCC, 0x81, 0xCD, 0x03, 0x47,\n\t0xCC, 0x82, 0xCD, 0x03, 0x47, 0xCC, 0x84, 0xCD,\n\t0x03, 0x47, 0xCC, 0x86, 0xCD, 0x03, 0x47, 0xCC,\n\t// Bytes 3180 - 31bf\n\t0x87, 0xCD, 0x03, 0x47, 0xCC, 0x8C, 0xCD, 0x03,\n\t0x47, 0xCC, 0xA7, 0xA9, 0x03, 0x48, 0xCC, 0x82,\n\t0xCD, 0x03, 0x48, 0xCC, 0x87, 0xCD, 0x03, 0x48,\n\t0xCC, 0x88, 0xCD, 0x03, 0x48, 0xCC, 0x8C, 0xCD,\n\t0x03, 0x48, 0xCC, 0xA3, 0xB9, 0x03, 0x48, 0xCC,\n\t0xA7, 0xA9, 0x03, 0x48, 0xCC, 0xAE, 0xB9, 0x03,\n\t0x49, 0xCC, 0x80, 0xCD, 0x03, 0x49, 0xCC, 0x81,\n\t0xCD, 0x03, 0x49, 0xCC, 0x82, 0xCD, 0x03, 0x49,\n\t// Bytes 31c0 - 31ff\n\t0xCC, 0x83, 0xCD, 0x03, 0x49, 0xCC, 0x84, 0xCD,\n\t0x03, 0x49, 0xCC, 0x86, 0xCD, 0x03, 0x49, 0xCC,\n\t0x87, 0xCD, 0x03, 0x49, 0xCC, 0x89, 0xCD, 0x03,\n\t0x49, 0xCC, 0x8C, 0xCD, 0x03, 0x49, 0xCC, 0x8F,\n\t0xCD, 0x03, 0x49, 0xCC, 0x91, 0xCD, 0x03, 0x49,\n\t0xCC, 0xA3, 0xB9, 0x03, 0x49, 0xCC, 0xA8, 0xA9,\n\t0x03, 0x49, 0xCC, 0xB0, 0xB9, 0x03, 0x4A, 0xCC,\n\t0x82, 0xCD, 0x03, 0x4B, 0xCC, 0x81, 0xCD, 0x03,\n\t// Bytes 3200 - 323f\n\t0x4B, 0xCC, 0x8C, 0xCD, 0x03, 0x4B, 0xCC, 0xA3,\n\t0xB9, 0x03, 0x4B, 0xCC, 0xA7, 0xA9, 0x03, 0x4B,\n\t0xCC, 0xB1, 0xB9, 0x03, 0x4C, 0xCC, 0x81, 0xCD,\n\t0x03, 0x4C, 0xCC, 0x8C, 0xCD, 0x03, 0x4C, 0xCC,\n\t0xA7, 0xA9, 0x03, 0x4C, 0xCC, 0xAD, 0xB9, 0x03,\n\t0x4C, 0xCC, 0xB1, 0xB9, 0x03, 0x4D, 0xCC, 0x81,\n\t0xCD, 0x03, 0x4D, 0xCC, 0x87, 0xCD, 0x03, 0x4D,\n\t0xCC, 0xA3, 0xB9, 0x03, 0x4E, 0xCC, 0x80, 0xCD,\n\t// Bytes 3240 - 327f\n\t0x03, 0x4E, 0xCC, 0x81, 0xCD, 0x03, 0x4E, 0xCC,\n\t0x83, 0xCD, 0x03, 0x4E, 0xCC, 0x87, 0xCD, 0x03,\n\t0x4E, 0xCC, 0x8C, 0xCD, 0x03, 0x4E, 0xCC, 0xA3,\n\t0xB9, 0x03, 0x4E, 0xCC, 0xA7, 0xA9, 0x03, 0x4E,\n\t0xCC, 0xAD, 0xB9, 0x03, 0x4E, 0xCC, 0xB1, 0xB9,\n\t0x03, 0x4F, 0xCC, 0x80, 0xCD, 0x03, 0x4F, 0xCC,\n\t0x81, 0xCD, 0x03, 0x4F, 0xCC, 0x86, 0xCD, 0x03,\n\t0x4F, 0xCC, 0x89, 0xCD, 0x03, 0x4F, 0xCC, 0x8B,\n\t// Bytes 3280 - 32bf\n\t0xCD, 0x03, 0x4F, 0xCC, 0x8C, 0xCD, 0x03, 0x4F,\n\t0xCC, 0x8F, 0xCD, 0x03, 0x4F, 0xCC, 0x91, 0xCD,\n\t0x03, 0x50, 0xCC, 0x81, 0xCD, 0x03, 0x50, 0xCC,\n\t0x87, 0xCD, 0x03, 0x52, 0xCC, 0x81, 0xCD, 0x03,\n\t0x52, 0xCC, 0x87, 0xCD, 0x03, 0x52, 0xCC, 0x8C,\n\t0xCD, 0x03, 0x52, 0xCC, 0x8F, 0xCD, 0x03, 0x52,\n\t0xCC, 0x91, 0xCD, 0x03, 0x52, 0xCC, 0xA7, 0xA9,\n\t0x03, 0x52, 0xCC, 0xB1, 0xB9, 0x03, 0x53, 0xCC,\n\t// Bytes 32c0 - 32ff\n\t0x82, 0xCD, 0x03, 0x53, 0xCC, 0x87, 0xCD, 0x03,\n\t0x53, 0xCC, 0xA6, 0xB9, 0x03, 0x53, 0xCC, 0xA7,\n\t0xA9, 0x03, 0x54, 0xCC, 0x87, 0xCD, 0x03, 0x54,\n\t0xCC, 0x8C, 0xCD, 0x03, 0x54, 0xCC, 0xA3, 0xB9,\n\t0x03, 0x54, 0xCC, 0xA6, 0xB9, 0x03, 0x54, 0xCC,\n\t0xA7, 0xA9, 0x03, 0x54, 0xCC, 0xAD, 0xB9, 0x03,\n\t0x54, 0xCC, 0xB1, 0xB9, 0x03, 0x55, 0xCC, 0x80,\n\t0xCD, 0x03, 0x55, 0xCC, 0x81, 0xCD, 0x03, 0x55,\n\t// Bytes 3300 - 333f\n\t0xCC, 0x82, 0xCD, 0x03, 0x55, 0xCC, 0x86, 0xCD,\n\t0x03, 0x55, 0xCC, 0x89, 0xCD, 0x03, 0x55, 0xCC,\n\t0x8A, 0xCD, 0x03, 0x55, 0xCC, 0x8B, 0xCD, 0x03,\n\t0x55, 0xCC, 0x8C, 0xCD, 0x03, 0x55, 0xCC, 0x8F,\n\t0xCD, 0x03, 0x55, 0xCC, 0x91, 0xCD, 0x03, 0x55,\n\t0xCC, 0xA3, 0xB9, 0x03, 0x55, 0xCC, 0xA4, 0xB9,\n\t0x03, 0x55, 0xCC, 0xA8, 0xA9, 0x03, 0x55, 0xCC,\n\t0xAD, 0xB9, 0x03, 0x55, 0xCC, 0xB0, 0xB9, 0x03,\n\t// Bytes 3340 - 337f\n\t0x56, 0xCC, 0x83, 0xCD, 0x03, 0x56, 0xCC, 0xA3,\n\t0xB9, 0x03, 0x57, 0xCC, 0x80, 0xCD, 0x03, 0x57,\n\t0xCC, 0x81, 0xCD, 0x03, 0x57, 0xCC, 0x82, 0xCD,\n\t0x03, 0x57, 0xCC, 0x87, 0xCD, 0x03, 0x57, 0xCC,\n\t0x88, 0xCD, 0x03, 0x57, 0xCC, 0xA3, 0xB9, 0x03,\n\t0x58, 0xCC, 0x87, 0xCD, 0x03, 0x58, 0xCC, 0x88,\n\t0xCD, 0x03, 0x59, 0xCC, 0x80, 0xCD, 0x03, 0x59,\n\t0xCC, 0x81, 0xCD, 0x03, 0x59, 0xCC, 0x82, 0xCD,\n\t// Bytes 3380 - 33bf\n\t0x03, 0x59, 0xCC, 0x83, 0xCD, 0x03, 0x59, 0xCC,\n\t0x84, 0xCD, 0x03, 0x59, 0xCC, 0x87, 0xCD, 0x03,\n\t0x59, 0xCC, 0x88, 0xCD, 0x03, 0x59, 0xCC, 0x89,\n\t0xCD, 0x03, 0x59, 0xCC, 0xA3, 0xB9, 0x03, 0x5A,\n\t0xCC, 0x81, 0xCD, 0x03, 0x5A, 0xCC, 0x82, 0xCD,\n\t0x03, 0x5A, 0xCC, 0x87, 0xCD, 0x03, 0x5A, 0xCC,\n\t0x8C, 0xCD, 0x03, 0x5A, 0xCC, 0xA3, 0xB9, 0x03,\n\t0x5A, 0xCC, 0xB1, 0xB9, 0x03, 0x61, 0xCC, 0x80,\n\t// Bytes 33c0 - 33ff\n\t0xCD, 0x03, 0x61, 0xCC, 0x81, 0xCD, 0x03, 0x61,\n\t0xCC, 0x83, 0xCD, 0x03, 0x61, 0xCC, 0x84, 0xCD,\n\t0x03, 0x61, 0xCC, 0x89, 0xCD, 0x03, 0x61, 0xCC,\n\t0x8C, 0xCD, 0x03, 0x61, 0xCC, 0x8F, 0xCD, 0x03,\n\t0x61, 0xCC, 0x91, 0xCD, 0x03, 0x61, 0xCC, 0xA5,\n\t0xB9, 0x03, 0x61, 0xCC, 0xA8, 0xA9, 0x03, 0x62,\n\t0xCC, 0x87, 0xCD, 0x03, 0x62, 0xCC, 0xA3, 0xB9,\n\t0x03, 0x62, 0xCC, 0xB1, 0xB9, 0x03, 0x63, 0xCC,\n\t// Bytes 3400 - 343f\n\t0x81, 0xCD, 0x03, 0x63, 0xCC, 0x82, 0xCD, 0x03,\n\t0x63, 0xCC, 0x87, 0xCD, 0x03, 0x63, 0xCC, 0x8C,\n\t0xCD, 0x03, 0x64, 0xCC, 0x87, 0xCD, 0x03, 0x64,\n\t0xCC, 0x8C, 0xCD, 0x03, 0x64, 0xCC, 0xA3, 0xB9,\n\t0x03, 0x64, 0xCC, 0xA7, 0xA9, 0x03, 0x64, 0xCC,\n\t0xAD, 0xB9, 0x03, 0x64, 0xCC, 0xB1, 0xB9, 0x03,\n\t0x65, 0xCC, 0x80, 0xCD, 0x03, 0x65, 0xCC, 0x81,\n\t0xCD, 0x03, 0x65, 0xCC, 0x83, 0xCD, 0x03, 0x65,\n\t// Bytes 3440 - 347f\n\t0xCC, 0x86, 0xCD, 0x03, 0x65, 0xCC, 0x87, 0xCD,\n\t0x03, 0x65, 0xCC, 0x88, 0xCD, 0x03, 0x65, 0xCC,\n\t0x89, 0xCD, 0x03, 0x65, 0xCC, 0x8C, 0xCD, 0x03,\n\t0x65, 0xCC, 0x8F, 0xCD, 0x03, 0x65, 0xCC, 0x91,\n\t0xCD, 0x03, 0x65, 0xCC, 0xA8, 0xA9, 0x03, 0x65,\n\t0xCC, 0xAD, 0xB9, 0x03, 0x65, 0xCC, 0xB0, 0xB9,\n\t0x03, 0x66, 0xCC, 0x87, 0xCD, 0x03, 0x67, 0xCC,\n\t0x81, 0xCD, 0x03, 0x67, 0xCC, 0x82, 0xCD, 0x03,\n\t// Bytes 3480 - 34bf\n\t0x67, 0xCC, 0x84, 0xCD, 0x03, 0x67, 0xCC, 0x86,\n\t0xCD, 0x03, 0x67, 0xCC, 0x87, 0xCD, 0x03, 0x67,\n\t0xCC, 0x8C, 0xCD, 0x03, 0x67, 0xCC, 0xA7, 0xA9,\n\t0x03, 0x68, 0xCC, 0x82, 0xCD, 0x03, 0x68, 0xCC,\n\t0x87, 0xCD, 0x03, 0x68, 0xCC, 0x88, 0xCD, 0x03,\n\t0x68, 0xCC, 0x8C, 0xCD, 0x03, 0x68, 0xCC, 0xA3,\n\t0xB9, 0x03, 0x68, 0xCC, 0xA7, 0xA9, 0x03, 0x68,\n\t0xCC, 0xAE, 0xB9, 0x03, 0x68, 0xCC, 0xB1, 0xB9,\n\t// Bytes 34c0 - 34ff\n\t0x03, 0x69, 0xCC, 0x80, 0xCD, 0x03, 0x69, 0xCC,\n\t0x81, 0xCD, 0x03, 0x69, 0xCC, 0x82, 0xCD, 0x03,\n\t0x69, 0xCC, 0x83, 0xCD, 0x03, 0x69, 0xCC, 0x84,\n\t0xCD, 0x03, 0x69, 0xCC, 0x86, 0xCD, 0x03, 0x69,\n\t0xCC, 0x89, 0xCD, 0x03, 0x69, 0xCC, 0x8C, 0xCD,\n\t0x03, 0x69, 0xCC, 0x8F, 0xCD, 0x03, 0x69, 0xCC,\n\t0x91, 0xCD, 0x03, 0x69, 0xCC, 0xA3, 0xB9, 0x03,\n\t0x69, 0xCC, 0xA8, 0xA9, 0x03, 0x69, 0xCC, 0xB0,\n\t// Bytes 3500 - 353f\n\t0xB9, 0x03, 0x6A, 0xCC, 0x82, 0xCD, 0x03, 0x6A,\n\t0xCC, 0x8C, 0xCD, 0x03, 0x6B, 0xCC, 0x81, 0xCD,\n\t0x03, 0x6B, 0xCC, 0x8C, 0xCD, 0x03, 0x6B, 0xCC,\n\t0xA3, 0xB9, 0x03, 0x6B, 0xCC, 0xA7, 0xA9, 0x03,\n\t0x6B, 0xCC, 0xB1, 0xB9, 0x03, 0x6C, 0xCC, 0x81,\n\t0xCD, 0x03, 0x6C, 0xCC, 0x8C, 0xCD, 0x03, 0x6C,\n\t0xCC, 0xA7, 0xA9, 0x03, 0x6C, 0xCC, 0xAD, 0xB9,\n\t0x03, 0x6C, 0xCC, 0xB1, 0xB9, 0x03, 0x6D, 0xCC,\n\t// Bytes 3540 - 357f\n\t0x81, 0xCD, 0x03, 0x6D, 0xCC, 0x87, 0xCD, 0x03,\n\t0x6D, 0xCC, 0xA3, 0xB9, 0x03, 0x6E, 0xCC, 0x80,\n\t0xCD, 0x03, 0x6E, 0xCC, 0x81, 0xCD, 0x03, 0x6E,\n\t0xCC, 0x83, 0xCD, 0x03, 0x6E, 0xCC, 0x87, 0xCD,\n\t0x03, 0x6E, 0xCC, 0x8C, 0xCD, 0x03, 0x6E, 0xCC,\n\t0xA3, 0xB9, 0x03, 0x6E, 0xCC, 0xA7, 0xA9, 0x03,\n\t0x6E, 0xCC, 0xAD, 0xB9, 0x03, 0x6E, 0xCC, 0xB1,\n\t0xB9, 0x03, 0x6F, 0xCC, 0x80, 0xCD, 0x03, 0x6F,\n\t// Bytes 3580 - 35bf\n\t0xCC, 0x81, 0xCD, 0x03, 0x6F, 0xCC, 0x86, 0xCD,\n\t0x03, 0x6F, 0xCC, 0x89, 0xCD, 0x03, 0x6F, 0xCC,\n\t0x8B, 0xCD, 0x03, 0x6F, 0xCC, 0x8C, 0xCD, 0x03,\n\t0x6F, 0xCC, 0x8F, 0xCD, 0x03, 0x6F, 0xCC, 0x91,\n\t0xCD, 0x03, 0x70, 0xCC, 0x81, 0xCD, 0x03, 0x70,\n\t0xCC, 0x87, 0xCD, 0x03, 0x72, 0xCC, 0x81, 0xCD,\n\t0x03, 0x72, 0xCC, 0x87, 0xCD, 0x03, 0x72, 0xCC,\n\t0x8C, 0xCD, 0x03, 0x72, 0xCC, 0x8F, 0xCD, 0x03,\n\t// Bytes 35c0 - 35ff\n\t0x72, 0xCC, 0x91, 0xCD, 0x03, 0x72, 0xCC, 0xA7,\n\t0xA9, 0x03, 0x72, 0xCC, 0xB1, 0xB9, 0x03, 0x73,\n\t0xCC, 0x82, 0xCD, 0x03, 0x73, 0xCC, 0x87, 0xCD,\n\t0x03, 0x73, 0xCC, 0xA6, 0xB9, 0x03, 0x73, 0xCC,\n\t0xA7, 0xA9, 0x03, 0x74, 0xCC, 0x87, 0xCD, 0x03,\n\t0x74, 0xCC, 0x88, 0xCD, 0x03, 0x74, 0xCC, 0x8C,\n\t0xCD, 0x03, 0x74, 0xCC, 0xA3, 0xB9, 0x03, 0x74,\n\t0xCC, 0xA6, 0xB9, 0x03, 0x74, 0xCC, 0xA7, 0xA9,\n\t// Bytes 3600 - 363f\n\t0x03, 0x74, 0xCC, 0xAD, 0xB9, 0x03, 0x74, 0xCC,\n\t0xB1, 0xB9, 0x03, 0x75, 0xCC, 0x80, 0xCD, 0x03,\n\t0x75, 0xCC, 0x81, 0xCD, 0x03, 0x75, 0xCC, 0x82,\n\t0xCD, 0x03, 0x75, 0xCC, 0x86, 0xCD, 0x03, 0x75,\n\t0xCC, 0x89, 0xCD, 0x03, 0x75, 0xCC, 0x8A, 0xCD,\n\t0x03, 0x75, 0xCC, 0x8B, 0xCD, 0x03, 0x75, 0xCC,\n\t0x8C, 0xCD, 0x03, 0x75, 0xCC, 0x8F, 0xCD, 0x03,\n\t0x75, 0xCC, 0x91, 0xCD, 0x03, 0x75, 0xCC, 0xA3,\n\t// Bytes 3640 - 367f\n\t0xB9, 0x03, 0x75, 0xCC, 0xA4, 0xB9, 0x03, 0x75,\n\t0xCC, 0xA8, 0xA9, 0x03, 0x75, 0xCC, 0xAD, 0xB9,\n\t0x03, 0x75, 0xCC, 0xB0, 0xB9, 0x03, 0x76, 0xCC,\n\t0x83, 0xCD, 0x03, 0x76, 0xCC, 0xA3, 0xB9, 0x03,\n\t0x77, 0xCC, 0x80, 0xCD, 0x03, 0x77, 0xCC, 0x81,\n\t0xCD, 0x03, 0x77, 0xCC, 0x82, 0xCD, 0x03, 0x77,\n\t0xCC, 0x87, 0xCD, 0x03, 0x77, 0xCC, 0x88, 0xCD,\n\t0x03, 0x77, 0xCC, 0x8A, 0xCD, 0x03, 0x77, 0xCC,\n\t// Bytes 3680 - 36bf\n\t0xA3, 0xB9, 0x03, 0x78, 0xCC, 0x87, 0xCD, 0x03,\n\t0x78, 0xCC, 0x88, 0xCD, 0x03, 0x79, 0xCC, 0x80,\n\t0xCD, 0x03, 0x79, 0xCC, 0x81, 0xCD, 0x03, 0x79,\n\t0xCC, 0x82, 0xCD, 0x03, 0x79, 0xCC, 0x83, 0xCD,\n\t0x03, 0x79, 0xCC, 0x84, 0xCD, 0x03, 0x79, 0xCC,\n\t0x87, 0xCD, 0x03, 0x79, 0xCC, 0x88, 0xCD, 0x03,\n\t0x79, 0xCC, 0x89, 0xCD, 0x03, 0x79, 0xCC, 0x8A,\n\t0xCD, 0x03, 0x79, 0xCC, 0xA3, 0xB9, 0x03, 0x7A,\n\t// Bytes 36c0 - 36ff\n\t0xCC, 0x81, 0xCD, 0x03, 0x7A, 0xCC, 0x82, 0xCD,\n\t0x03, 0x7A, 0xCC, 0x87, 0xCD, 0x03, 0x7A, 0xCC,\n\t0x8C, 0xCD, 0x03, 0x7A, 0xCC, 0xA3, 0xB9, 0x03,\n\t0x7A, 0xCC, 0xB1, 0xB9, 0x04, 0xC2, 0xA8, 0xCC,\n\t0x80, 0xCE, 0x04, 0xC2, 0xA8, 0xCC, 0x81, 0xCE,\n\t0x04, 0xC2, 0xA8, 0xCD, 0x82, 0xCE, 0x04, 0xC3,\n\t0x86, 0xCC, 0x81, 0xCD, 0x04, 0xC3, 0x86, 0xCC,\n\t0x84, 0xCD, 0x04, 0xC3, 0x98, 0xCC, 0x81, 0xCD,\n\t// Bytes 3700 - 373f\n\t0x04, 0xC3, 0xA6, 0xCC, 0x81, 0xCD, 0x04, 0xC3,\n\t0xA6, 0xCC, 0x84, 0xCD, 0x04, 0xC3, 0xB8, 0xCC,\n\t0x81, 0xCD, 0x04, 0xC5, 0xBF, 0xCC, 0x87, 0xCD,\n\t0x04, 0xC6, 0xB7, 0xCC, 0x8C, 0xCD, 0x04, 0xCA,\n\t0x92, 0xCC, 0x8C, 0xCD, 0x04, 0xCE, 0x91, 0xCC,\n\t0x80, 0xCD, 0x04, 0xCE, 0x91, 0xCC, 0x81, 0xCD,\n\t0x04, 0xCE, 0x91, 0xCC, 0x84, 0xCD, 0x04, 0xCE,\n\t0x91, 0xCC, 0x86, 0xCD, 0x04, 0xCE, 0x91, 0xCD,\n\t// Bytes 3740 - 377f\n\t0x85, 0xDD, 0x04, 0xCE, 0x95, 0xCC, 0x80, 0xCD,\n\t0x04, 0xCE, 0x95, 0xCC, 0x81, 0xCD, 0x04, 0xCE,\n\t0x97, 0xCC, 0x80, 0xCD, 0x04, 0xCE, 0x97, 0xCC,\n\t0x81, 0xCD, 0x04, 0xCE, 0x97, 0xCD, 0x85, 0xDD,\n\t0x04, 0xCE, 0x99, 0xCC, 0x80, 0xCD, 0x04, 0xCE,\n\t0x99, 0xCC, 0x81, 0xCD, 0x04, 0xCE, 0x99, 0xCC,\n\t0x84, 0xCD, 0x04, 0xCE, 0x99, 0xCC, 0x86, 0xCD,\n\t0x04, 0xCE, 0x99, 0xCC, 0x88, 0xCD, 0x04, 0xCE,\n\t// Bytes 3780 - 37bf\n\t0x9F, 0xCC, 0x80, 0xCD, 0x04, 0xCE, 0x9F, 0xCC,\n\t0x81, 0xCD, 0x04, 0xCE, 0xA1, 0xCC, 0x94, 0xCD,\n\t0x04, 0xCE, 0xA5, 0xCC, 0x80, 0xCD, 0x04, 0xCE,\n\t0xA5, 0xCC, 0x81, 0xCD, 0x04, 0xCE, 0xA5, 0xCC,\n\t0x84, 0xCD, 0x04, 0xCE, 0xA5, 0xCC, 0x86, 0xCD,\n\t0x04, 0xCE, 0xA5, 0xCC, 0x88, 0xCD, 0x04, 0xCE,\n\t0xA9, 0xCC, 0x80, 0xCD, 0x04, 0xCE, 0xA9, 0xCC,\n\t0x81, 0xCD, 0x04, 0xCE, 0xA9, 0xCD, 0x85, 0xDD,\n\t// Bytes 37c0 - 37ff\n\t0x04, 0xCE, 0xB1, 0xCC, 0x84, 0xCD, 0x04, 0xCE,\n\t0xB1, 0xCC, 0x86, 0xCD, 0x04, 0xCE, 0xB1, 0xCD,\n\t0x85, 0xDD, 0x04, 0xCE, 0xB5, 0xCC, 0x80, 0xCD,\n\t0x04, 0xCE, 0xB5, 0xCC, 0x81, 0xCD, 0x04, 0xCE,\n\t0xB7, 0xCD, 0x85, 0xDD, 0x04, 0xCE, 0xB9, 0xCC,\n\t0x80, 0xCD, 0x04, 0xCE, 0xB9, 0xCC, 0x81, 0xCD,\n\t0x04, 0xCE, 0xB9, 0xCC, 0x84, 0xCD, 0x04, 0xCE,\n\t0xB9, 0xCC, 0x86, 0xCD, 0x04, 0xCE, 0xB9, 0xCD,\n\t// Bytes 3800 - 383f\n\t0x82, 0xCD, 0x04, 0xCE, 0xBF, 0xCC, 0x80, 0xCD,\n\t0x04, 0xCE, 0xBF, 0xCC, 0x81, 0xCD, 0x04, 0xCF,\n\t0x81, 0xCC, 0x93, 0xCD, 0x04, 0xCF, 0x81, 0xCC,\n\t0x94, 0xCD, 0x04, 0xCF, 0x85, 0xCC, 0x80, 0xCD,\n\t0x04, 0xCF, 0x85, 0xCC, 0x81, 0xCD, 0x04, 0xCF,\n\t0x85, 0xCC, 0x84, 0xCD, 0x04, 0xCF, 0x85, 0xCC,\n\t0x86, 0xCD, 0x04, 0xCF, 0x85, 0xCD, 0x82, 0xCD,\n\t0x04, 0xCF, 0x89, 0xCD, 0x85, 0xDD, 0x04, 0xCF,\n\t// Bytes 3840 - 387f\n\t0x92, 0xCC, 0x81, 0xCD, 0x04, 0xCF, 0x92, 0xCC,\n\t0x88, 0xCD, 0x04, 0xD0, 0x86, 0xCC, 0x88, 0xCD,\n\t0x04, 0xD0, 0x90, 0xCC, 0x86, 0xCD, 0x04, 0xD0,\n\t0x90, 0xCC, 0x88, 0xCD, 0x04, 0xD0, 0x93, 0xCC,\n\t0x81, 0xCD, 0x04, 0xD0, 0x95, 0xCC, 0x80, 0xCD,\n\t0x04, 0xD0, 0x95, 0xCC, 0x86, 0xCD, 0x04, 0xD0,\n\t0x95, 0xCC, 0x88, 0xCD, 0x04, 0xD0, 0x96, 0xCC,\n\t0x86, 0xCD, 0x04, 0xD0, 0x96, 0xCC, 0x88, 0xCD,\n\t// Bytes 3880 - 38bf\n\t0x04, 0xD0, 0x97, 0xCC, 0x88, 0xCD, 0x04, 0xD0,\n\t0x98, 0xCC, 0x80, 0xCD, 0x04, 0xD0, 0x98, 0xCC,\n\t0x84, 0xCD, 0x04, 0xD0, 0x98, 0xCC, 0x86, 0xCD,\n\t0x04, 0xD0, 0x98, 0xCC, 0x88, 0xCD, 0x04, 0xD0,\n\t0x9A, 0xCC, 0x81, 0xCD, 0x04, 0xD0, 0x9E, 0xCC,\n\t0x88, 0xCD, 0x04, 0xD0, 0xA3, 0xCC, 0x84, 0xCD,\n\t0x04, 0xD0, 0xA3, 0xCC, 0x86, 0xCD, 0x04, 0xD0,\n\t0xA3, 0xCC, 0x88, 0xCD, 0x04, 0xD0, 0xA3, 0xCC,\n\t// Bytes 38c0 - 38ff\n\t0x8B, 0xCD, 0x04, 0xD0, 0xA7, 0xCC, 0x88, 0xCD,\n\t0x04, 0xD0, 0xAB, 0xCC, 0x88, 0xCD, 0x04, 0xD0,\n\t0xAD, 0xCC, 0x88, 0xCD, 0x04, 0xD0, 0xB0, 0xCC,\n\t0x86, 0xCD, 0x04, 0xD0, 0xB0, 0xCC, 0x88, 0xCD,\n\t0x04, 0xD0, 0xB3, 0xCC, 0x81, 0xCD, 0x04, 0xD0,\n\t0xB5, 0xCC, 0x80, 0xCD, 0x04, 0xD0, 0xB5, 0xCC,\n\t0x86, 0xCD, 0x04, 0xD0, 0xB5, 0xCC, 0x88, 0xCD,\n\t0x04, 0xD0, 0xB6, 0xCC, 0x86, 0xCD, 0x04, 0xD0,\n\t// Bytes 3900 - 393f\n\t0xB6, 0xCC, 0x88, 0xCD, 0x04, 0xD0, 0xB7, 0xCC,\n\t0x88, 0xCD, 0x04, 0xD0, 0xB8, 0xCC, 0x80, 0xCD,\n\t0x04, 0xD0, 0xB8, 0xCC, 0x84, 0xCD, 0x04, 0xD0,\n\t0xB8, 0xCC, 0x86, 0xCD, 0x04, 0xD0, 0xB8, 0xCC,\n\t0x88, 0xCD, 0x04, 0xD0, 0xBA, 0xCC, 0x81, 0xCD,\n\t0x04, 0xD0, 0xBE, 0xCC, 0x88, 0xCD, 0x04, 0xD1,\n\t0x83, 0xCC, 0x84, 0xCD, 0x04, 0xD1, 0x83, 0xCC,\n\t0x86, 0xCD, 0x04, 0xD1, 0x83, 0xCC, 0x88, 0xCD,\n\t// Bytes 3940 - 397f\n\t0x04, 0xD1, 0x83, 0xCC, 0x8B, 0xCD, 0x04, 0xD1,\n\t0x87, 0xCC, 0x88, 0xCD, 0x04, 0xD1, 0x8B, 0xCC,\n\t0x88, 0xCD, 0x04, 0xD1, 0x8D, 0xCC, 0x88, 0xCD,\n\t0x04, 0xD1, 0x96, 0xCC, 0x88, 0xCD, 0x04, 0xD1,\n\t0xB4, 0xCC, 0x8F, 0xCD, 0x04, 0xD1, 0xB5, 0xCC,\n\t0x8F, 0xCD, 0x04, 0xD3, 0x98, 0xCC, 0x88, 0xCD,\n\t0x04, 0xD3, 0x99, 0xCC, 0x88, 0xCD, 0x04, 0xD3,\n\t0xA8, 0xCC, 0x88, 0xCD, 0x04, 0xD3, 0xA9, 0xCC,\n\t// Bytes 3980 - 39bf\n\t0x88, 0xCD, 0x04, 0xD8, 0xA7, 0xD9, 0x93, 0xCD,\n\t0x04, 0xD8, 0xA7, 0xD9, 0x94, 0xCD, 0x04, 0xD8,\n\t0xA7, 0xD9, 0x95, 0xB9, 0x04, 0xD9, 0x88, 0xD9,\n\t0x94, 0xCD, 0x04, 0xD9, 0x8A, 0xD9, 0x94, 0xCD,\n\t0x04, 0xDB, 0x81, 0xD9, 0x94, 0xCD, 0x04, 0xDB,\n\t0x92, 0xD9, 0x94, 0xCD, 0x04, 0xDB, 0x95, 0xD9,\n\t0x94, 0xCD, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x80,\n\t0xCE, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x81, 0xCE,\n\t// Bytes 39c0 - 39ff\n\t0x05, 0x41, 0xCC, 0x82, 0xCC, 0x83, 0xCE, 0x05,\n\t0x41, 0xCC, 0x82, 0xCC, 0x89, 0xCE, 0x05, 0x41,\n\t0xCC, 0x86, 0xCC, 0x80, 0xCE, 0x05, 0x41, 0xCC,\n\t0x86, 0xCC, 0x81, 0xCE, 0x05, 0x41, 0xCC, 0x86,\n\t0xCC, 0x83, 0xCE, 0x05, 0x41, 0xCC, 0x86, 0xCC,\n\t0x89, 0xCE, 0x05, 0x41, 0xCC, 0x87, 0xCC, 0x84,\n\t0xCE, 0x05, 0x41, 0xCC, 0x88, 0xCC, 0x84, 0xCE,\n\t0x05, 0x41, 0xCC, 0x8A, 0xCC, 0x81, 0xCE, 0x05,\n\t// Bytes 3a00 - 3a3f\n\t0x41, 0xCC, 0xA3, 0xCC, 0x82, 0xCE, 0x05, 0x41,\n\t0xCC, 0xA3, 0xCC, 0x86, 0xCE, 0x05, 0x43, 0xCC,\n\t0xA7, 0xCC, 0x81, 0xCE, 0x05, 0x45, 0xCC, 0x82,\n\t0xCC, 0x80, 0xCE, 0x05, 0x45, 0xCC, 0x82, 0xCC,\n\t0x81, 0xCE, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x83,\n\t0xCE, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x89, 0xCE,\n\t0x05, 0x45, 0xCC, 0x84, 0xCC, 0x80, 0xCE, 0x05,\n\t0x45, 0xCC, 0x84, 0xCC, 0x81, 0xCE, 0x05, 0x45,\n\t// Bytes 3a40 - 3a7f\n\t0xCC, 0xA3, 0xCC, 0x82, 0xCE, 0x05, 0x45, 0xCC,\n\t0xA7, 0xCC, 0x86, 0xCE, 0x05, 0x49, 0xCC, 0x88,\n\t0xCC, 0x81, 0xCE, 0x05, 0x4C, 0xCC, 0xA3, 0xCC,\n\t0x84, 0xCE, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x80,\n\t0xCE, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x81, 0xCE,\n\t0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x83, 0xCE, 0x05,\n\t0x4F, 0xCC, 0x82, 0xCC, 0x89, 0xCE, 0x05, 0x4F,\n\t0xCC, 0x83, 0xCC, 0x81, 0xCE, 0x05, 0x4F, 0xCC,\n\t// Bytes 3a80 - 3abf\n\t0x83, 0xCC, 0x84, 0xCE, 0x05, 0x4F, 0xCC, 0x83,\n\t0xCC, 0x88, 0xCE, 0x05, 0x4F, 0xCC, 0x84, 0xCC,\n\t0x80, 0xCE, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x81,\n\t0xCE, 0x05, 0x4F, 0xCC, 0x87, 0xCC, 0x84, 0xCE,\n\t0x05, 0x4F, 0xCC, 0x88, 0xCC, 0x84, 0xCE, 0x05,\n\t0x4F, 0xCC, 0x9B, 0xCC, 0x80, 0xCE, 0x05, 0x4F,\n\t0xCC, 0x9B, 0xCC, 0x81, 0xCE, 0x05, 0x4F, 0xCC,\n\t0x9B, 0xCC, 0x83, 0xCE, 0x05, 0x4F, 0xCC, 0x9B,\n\t// Bytes 3ac0 - 3aff\n\t0xCC, 0x89, 0xCE, 0x05, 0x4F, 0xCC, 0x9B, 0xCC,\n\t0xA3, 0xBA, 0x05, 0x4F, 0xCC, 0xA3, 0xCC, 0x82,\n\t0xCE, 0x05, 0x4F, 0xCC, 0xA8, 0xCC, 0x84, 0xCE,\n\t0x05, 0x52, 0xCC, 0xA3, 0xCC, 0x84, 0xCE, 0x05,\n\t0x53, 0xCC, 0x81, 0xCC, 0x87, 0xCE, 0x05, 0x53,\n\t0xCC, 0x8C, 0xCC, 0x87, 0xCE, 0x05, 0x53, 0xCC,\n\t0xA3, 0xCC, 0x87, 0xCE, 0x05, 0x55, 0xCC, 0x83,\n\t0xCC, 0x81, 0xCE, 0x05, 0x55, 0xCC, 0x84, 0xCC,\n\t// Bytes 3b00 - 3b3f\n\t0x88, 0xCE, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x80,\n\t0xCE, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x81, 0xCE,\n\t0x05, 0x55, 0xCC, 0x88, 0xCC, 0x84, 0xCE, 0x05,\n\t0x55, 0xCC, 0x88, 0xCC, 0x8C, 0xCE, 0x05, 0x55,\n\t0xCC, 0x9B, 0xCC, 0x80, 0xCE, 0x05, 0x55, 0xCC,\n\t0x9B, 0xCC, 0x81, 0xCE, 0x05, 0x55, 0xCC, 0x9B,\n\t0xCC, 0x83, 0xCE, 0x05, 0x55, 0xCC, 0x9B, 0xCC,\n\t0x89, 0xCE, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0xA3,\n\t// Bytes 3b40 - 3b7f\n\t0xBA, 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x80, 0xCE,\n\t0x05, 0x61, 0xCC, 0x82, 0xCC, 0x81, 0xCE, 0x05,\n\t0x61, 0xCC, 0x82, 0xCC, 0x83, 0xCE, 0x05, 0x61,\n\t0xCC, 0x82, 0xCC, 0x89, 0xCE, 0x05, 0x61, 0xCC,\n\t0x86, 0xCC, 0x80, 0xCE, 0x05, 0x61, 0xCC, 0x86,\n\t0xCC, 0x81, 0xCE, 0x05, 0x61, 0xCC, 0x86, 0xCC,\n\t0x83, 0xCE, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x89,\n\t0xCE, 0x05, 0x61, 0xCC, 0x87, 0xCC, 0x84, 0xCE,\n\t// Bytes 3b80 - 3bbf\n\t0x05, 0x61, 0xCC, 0x88, 0xCC, 0x84, 0xCE, 0x05,\n\t0x61, 0xCC, 0x8A, 0xCC, 0x81, 0xCE, 0x05, 0x61,\n\t0xCC, 0xA3, 0xCC, 0x82, 0xCE, 0x05, 0x61, 0xCC,\n\t0xA3, 0xCC, 0x86, 0xCE, 0x05, 0x63, 0xCC, 0xA7,\n\t0xCC, 0x81, 0xCE, 0x05, 0x65, 0xCC, 0x82, 0xCC,\n\t0x80, 0xCE, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x81,\n\t0xCE, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x83, 0xCE,\n\t0x05, 0x65, 0xCC, 0x82, 0xCC, 0x89, 0xCE, 0x05,\n\t// Bytes 3bc0 - 3bff\n\t0x65, 0xCC, 0x84, 0xCC, 0x80, 0xCE, 0x05, 0x65,\n\t0xCC, 0x84, 0xCC, 0x81, 0xCE, 0x05, 0x65, 0xCC,\n\t0xA3, 0xCC, 0x82, 0xCE, 0x05, 0x65, 0xCC, 0xA7,\n\t0xCC, 0x86, 0xCE, 0x05, 0x69, 0xCC, 0x88, 0xCC,\n\t0x81, 0xCE, 0x05, 0x6C, 0xCC, 0xA3, 0xCC, 0x84,\n\t0xCE, 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x80, 0xCE,\n\t0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x81, 0xCE, 0x05,\n\t0x6F, 0xCC, 0x82, 0xCC, 0x83, 0xCE, 0x05, 0x6F,\n\t// Bytes 3c00 - 3c3f\n\t0xCC, 0x82, 0xCC, 0x89, 0xCE, 0x05, 0x6F, 0xCC,\n\t0x83, 0xCC, 0x81, 0xCE, 0x05, 0x6F, 0xCC, 0x83,\n\t0xCC, 0x84, 0xCE, 0x05, 0x6F, 0xCC, 0x83, 0xCC,\n\t0x88, 0xCE, 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x80,\n\t0xCE, 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x81, 0xCE,\n\t0x05, 0x6F, 0xCC, 0x87, 0xCC, 0x84, 0xCE, 0x05,\n\t0x6F, 0xCC, 0x88, 0xCC, 0x84, 0xCE, 0x05, 0x6F,\n\t0xCC, 0x9B, 0xCC, 0x80, 0xCE, 0x05, 0x6F, 0xCC,\n\t// Bytes 3c40 - 3c7f\n\t0x9B, 0xCC, 0x81, 0xCE, 0x05, 0x6F, 0xCC, 0x9B,\n\t0xCC, 0x83, 0xCE, 0x05, 0x6F, 0xCC, 0x9B, 0xCC,\n\t0x89, 0xCE, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0xA3,\n\t0xBA, 0x05, 0x6F, 0xCC, 0xA3, 0xCC, 0x82, 0xCE,\n\t0x05, 0x6F, 0xCC, 0xA8, 0xCC, 0x84, 0xCE, 0x05,\n\t0x72, 0xCC, 0xA3, 0xCC, 0x84, 0xCE, 0x05, 0x73,\n\t0xCC, 0x81, 0xCC, 0x87, 0xCE, 0x05, 0x73, 0xCC,\n\t0x8C, 0xCC, 0x87, 0xCE, 0x05, 0x73, 0xCC, 0xA3,\n\t// Bytes 3c80 - 3cbf\n\t0xCC, 0x87, 0xCE, 0x05, 0x75, 0xCC, 0x83, 0xCC,\n\t0x81, 0xCE, 0x05, 0x75, 0xCC, 0x84, 0xCC, 0x88,\n\t0xCE, 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x80, 0xCE,\n\t0x05, 0x75, 0xCC, 0x88, 0xCC, 0x81, 0xCE, 0x05,\n\t0x75, 0xCC, 0x88, 0xCC, 0x84, 0xCE, 0x05, 0x75,\n\t0xCC, 0x88, 0xCC, 0x8C, 0xCE, 0x05, 0x75, 0xCC,\n\t0x9B, 0xCC, 0x80, 0xCE, 0x05, 0x75, 0xCC, 0x9B,\n\t0xCC, 0x81, 0xCE, 0x05, 0x75, 0xCC, 0x9B, 0xCC,\n\t// Bytes 3cc0 - 3cff\n\t0x83, 0xCE, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x89,\n\t0xCE, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0xA3, 0xBA,\n\t0x05, 0xE1, 0xBE, 0xBF, 0xCC, 0x80, 0xCE, 0x05,\n\t0xE1, 0xBE, 0xBF, 0xCC, 0x81, 0xCE, 0x05, 0xE1,\n\t0xBE, 0xBF, 0xCD, 0x82, 0xCE, 0x05, 0xE1, 0xBF,\n\t0xBE, 0xCC, 0x80, 0xCE, 0x05, 0xE1, 0xBF, 0xBE,\n\t0xCC, 0x81, 0xCE, 0x05, 0xE1, 0xBF, 0xBE, 0xCD,\n\t0x82, 0xCE, 0x05, 0xE2, 0x86, 0x90, 0xCC, 0xB8,\n\t// Bytes 3d00 - 3d3f\n\t0x05, 0x05, 0xE2, 0x86, 0x92, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x86, 0x94, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x87, 0x90, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x87, 0x92, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87,\n\t0x94, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x83,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x88, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x88, 0x8B, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x88, 0xA3, 0xCC, 0xB8, 0x05,\n\t// Bytes 3d40 - 3d7f\n\t0x05, 0xE2, 0x88, 0xA5, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x88, 0xBC, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x89, 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89,\n\t0x85, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x88,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x8D, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x89, 0xA1, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x89, 0xA4, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x89, 0xA5, 0xCC, 0xB8, 0x05, 0x05,\n\t// Bytes 3d80 - 3dbf\n\t0xE2, 0x89, 0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x89, 0xB3, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89,\n\t0xB6, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB7,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBA, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBB, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x89, 0xBC, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x89, 0xBD, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x8A, 0x82, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t// Bytes 3dc0 - 3dff\n\t0x8A, 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,\n\t0x86, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x87,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x91, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x92, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x8A, 0xA2, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x8A, 0xA8, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x8A, 0xA9, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x8A, 0xAB, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,\n\t// Bytes 3e00 - 3e3f\n\t0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB3,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB4, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB5, 0xCC, 0xB8,\n\t0x05, 0x06, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x85,\n\t0xDE, 0x06, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x85,\n\t0xDE, 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x80,\n\t0xCE, 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x81,\n\t0xCE, 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x80,\n\t// Bytes 3e40 - 3e7f\n\t0xCE, 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x81,\n\t0xCE, 0x06, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x85,\n\t0xDE, 0x06, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x85,\n\t0xDE, 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x80,\n\t0xCE, 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x81,\n\t0xCE, 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x82,\n\t0xCE, 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x80,\n\t0xCE, 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x81,\n\t// Bytes 3e80 - 3ebf\n\t0xCE, 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCD, 0x82,\n\t0xCE, 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x80,\n\t0xCE, 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x81,\n\t0xCE, 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x80,\n\t0xCE, 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x81,\n\t0xCE, 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x80,\n\t0xCE, 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x81,\n\t0xCE, 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x82,\n\t// Bytes 3ec0 - 3eff\n\t0xCE, 0x06, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x85,\n\t0xDE, 0x06, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x85,\n\t0xDE, 0x06, 0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x85,\n\t0xDE, 0x06, 0xCE, 0xB1, 0xCC, 0x81, 0xCD, 0x85,\n\t0xDE, 0x06, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x85,\n\t0xDE, 0x06, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x85,\n\t0xDE, 0x06, 0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x85,\n\t0xDE, 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x80,\n\t// Bytes 3f00 - 3f3f\n\t0xCE, 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x81,\n\t0xCE, 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x80,\n\t0xCE, 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x81,\n\t0xCE, 0x06, 0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x85,\n\t0xDE, 0x06, 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x85,\n\t0xDE, 0x06, 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x85,\n\t0xDE, 0x06, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x85,\n\t0xDE, 0x06, 0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x85,\n\t// Bytes 3f40 - 3f7f\n\t0xDE, 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x80,\n\t0xCE, 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81,\n\t0xCE, 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x82,\n\t0xCE, 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x80,\n\t0xCE, 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x81,\n\t0xCE, 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCD, 0x82,\n\t0xCE, 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x80,\n\t0xCE, 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x81,\n\t// Bytes 3f80 - 3fbf\n\t0xCE, 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCD, 0x82,\n\t0xCE, 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x80,\n\t0xCE, 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x81,\n\t0xCE, 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x80,\n\t0xCE, 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x81,\n\t0xCE, 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x80,\n\t0xCE, 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81,\n\t0xCE, 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCD, 0x82,\n\t// Bytes 3fc0 - 3fff\n\t0xCE, 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x80,\n\t0xCE, 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x81,\n\t0xCE, 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCD, 0x82,\n\t0xCE, 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x80,\n\t0xCE, 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x81,\n\t0xCE, 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x82,\n\t0xCE, 0x06, 0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x85,\n\t0xDE, 0x06, 0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x85,\n\t// Bytes 4000 - 403f\n\t0xDE, 0x06, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x85,\n\t0xDE, 0x06, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x85,\n\t0xDE, 0x06, 0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x85,\n\t0xDE, 0x06, 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBC,\n\t0x0D, 0x06, 0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBC,\n\t0x0D, 0x06, 0xE0, 0xA4, 0xB3, 0xE0, 0xA4, 0xBC,\n\t0x0D, 0x06, 0xE0, 0xB1, 0x86, 0xE0, 0xB1, 0x96,\n\t0x89, 0x06, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8A,\n\t// Bytes 4040 - 407f\n\t0x15, 0x06, 0xE3, 0x81, 0x86, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x81, 0x8B, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x81, 0x8D, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x81, 0x8F, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x81, 0x91, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x81, 0x93, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x81, 0x95, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x81, 0x97, 0xE3, 0x82, 0x99,\n\t// Bytes 4080 - 40bf\n\t0x11, 0x06, 0xE3, 0x81, 0x99, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x81, 0x9B, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x81, 0x9D, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x81, 0x9F, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x81, 0xA1, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x81, 0xA4, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x81, 0xA6, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x81, 0xA8, 0xE3, 0x82, 0x99,\n\t// Bytes 40c0 - 40ff\n\t0x11, 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x9A,\n\t0x11, 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x9A,\n\t0x11, 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x9A,\n\t0x11, 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x9A,\n\t// Bytes 4100 - 413f\n\t0x11, 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x9A,\n\t0x11, 0x06, 0xE3, 0x82, 0x9D, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99,\n\t// Bytes 4140 - 417f\n\t0x11, 0x06, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x82, 0xB5, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x82, 0xBD, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x83, 0x81, 0xE3, 0x82, 0x99,\n\t// Bytes 4180 - 41bf\n\t0x11, 0x06, 0xE3, 0x83, 0x84, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A,\n\t0x11, 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A,\n\t0x11, 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99,\n\t// Bytes 41c0 - 41ff\n\t0x11, 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x9A,\n\t0x11, 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A,\n\t0x11, 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A,\n\t0x11, 0x06, 0xE3, 0x83, 0xAF, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x83, 0xB0, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x83, 0xB1, 0xE3, 0x82, 0x99,\n\t// Bytes 4200 - 423f\n\t0x11, 0x06, 0xE3, 0x83, 0xB2, 0xE3, 0x82, 0x99,\n\t0x11, 0x06, 0xE3, 0x83, 0xBD, 0xE3, 0x82, 0x99,\n\t0x11, 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80,\n\t0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x91, 0xCC, 0x93,\n\t0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x91,\n\t0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08,\n\t0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85,\n\t0xDF, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81,\n\t// Bytes 4240 - 427f\n\t0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x91, 0xCC, 0x94,\n\t0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x97,\n\t0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08,\n\t0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85,\n\t0xDF, 0x08, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82,\n\t0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x97, 0xCC, 0x94,\n\t0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x97,\n\t0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08,\n\t// Bytes 4280 - 42bf\n\t0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85,\n\t0xDF, 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80,\n\t0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xA9, 0xCC, 0x93,\n\t0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xA9,\n\t0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08,\n\t0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85,\n\t0xDF, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81,\n\t0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xA9, 0xCC, 0x94,\n\t// Bytes 42c0 - 42ff\n\t0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB1,\n\t0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08,\n\t0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85,\n\t0xDF, 0x08, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82,\n\t0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB1, 0xCC, 0x94,\n\t0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB1,\n\t0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08,\n\t0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85,\n\t// Bytes 4300 - 433f\n\t0xDF, 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80,\n\t0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB7, 0xCC, 0x93,\n\t0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB7,\n\t0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08,\n\t0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85,\n\t0xDF, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81,\n\t0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB7, 0xCC, 0x94,\n\t0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08, 0xCF, 0x89,\n\t// Bytes 4340 - 437f\n\t0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08,\n\t0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85,\n\t0xDF, 0x08, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82,\n\t0xCD, 0x85, 0xDF, 0x08, 0xCF, 0x89, 0xCC, 0x94,\n\t0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08, 0xCF, 0x89,\n\t0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08,\n\t0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85,\n\t0xDF, 0x08, 0xF0, 0x91, 0x82, 0x99, 0xF0, 0x91,\n\t// Bytes 4380 - 43bf\n\t0x82, 0xBA, 0x0D, 0x08, 0xF0, 0x91, 0x82, 0x9B,\n\t0xF0, 0x91, 0x82, 0xBA, 0x0D, 0x08, 0xF0, 0x91,\n\t0x82, 0xA5, 0xF0, 0x91, 0x82, 0xBA, 0x0D, 0x42,\n\t0xC2, 0xB4, 0x01, 0x43, 0x20, 0xCC, 0x81, 0xCD,\n\t0x43, 0x20, 0xCC, 0x83, 0xCD, 0x43, 0x20, 0xCC,\n\t0x84, 0xCD, 0x43, 0x20, 0xCC, 0x85, 0xCD, 0x43,\n\t0x20, 0xCC, 0x86, 0xCD, 0x43, 0x20, 0xCC, 0x87,\n\t0xCD, 0x43, 0x20, 0xCC, 0x88, 0xCD, 0x43, 0x20,\n\t// Bytes 43c0 - 43ff\n\t0xCC, 0x8A, 0xCD, 0x43, 0x20, 0xCC, 0x8B, 0xCD,\n\t0x43, 0x20, 0xCC, 0x93, 0xCD, 0x43, 0x20, 0xCC,\n\t0x94, 0xCD, 0x43, 0x20, 0xCC, 0xA7, 0xA9, 0x43,\n\t0x20, 0xCC, 0xA8, 0xA9, 0x43, 0x20, 0xCC, 0xB3,\n\t0xB9, 0x43, 0x20, 0xCD, 0x82, 0xCD, 0x43, 0x20,\n\t0xCD, 0x85, 0xDD, 0x43, 0x20, 0xD9, 0x8B, 0x5D,\n\t0x43, 0x20, 0xD9, 0x8C, 0x61, 0x43, 0x20, 0xD9,\n\t0x8D, 0x65, 0x43, 0x20, 0xD9, 0x8E, 0x69, 0x43,\n\t// Bytes 4400 - 443f\n\t0x20, 0xD9, 0x8F, 0x6D, 0x43, 0x20, 0xD9, 0x90,\n\t0x71, 0x43, 0x20, 0xD9, 0x91, 0x75, 0x43, 0x20,\n\t0xD9, 0x92, 0x79, 0x43, 0x41, 0xCC, 0x8A, 0xCD,\n\t0x43, 0x73, 0xCC, 0x87, 0xCD, 0x44, 0x20, 0xE3,\n\t0x82, 0x99, 0x11, 0x44, 0x20, 0xE3, 0x82, 0x9A,\n\t0x11, 0x44, 0xC2, 0xA8, 0xCC, 0x81, 0xCE, 0x44,\n\t0xCE, 0x91, 0xCC, 0x81, 0xCD, 0x44, 0xCE, 0x95,\n\t0xCC, 0x81, 0xCD, 0x44, 0xCE, 0x97, 0xCC, 0x81,\n\t// Bytes 4440 - 447f\n\t0xCD, 0x44, 0xCE, 0x99, 0xCC, 0x81, 0xCD, 0x44,\n\t0xCE, 0x9F, 0xCC, 0x81, 0xCD, 0x44, 0xCE, 0xA5,\n\t0xCC, 0x81, 0xCD, 0x44, 0xCE, 0xA5, 0xCC, 0x88,\n\t0xCD, 0x44, 0xCE, 0xA9, 0xCC, 0x81, 0xCD, 0x44,\n\t0xCE, 0xB1, 0xCC, 0x81, 0xCD, 0x44, 0xCE, 0xB5,\n\t0xCC, 0x81, 0xCD, 0x44, 0xCE, 0xB7, 0xCC, 0x81,\n\t0xCD, 0x44, 0xCE, 0xB9, 0xCC, 0x81, 0xCD, 0x44,\n\t0xCE, 0xBF, 0xCC, 0x81, 0xCD, 0x44, 0xCF, 0x85,\n\t// Bytes 4480 - 44bf\n\t0xCC, 0x81, 0xCD, 0x44, 0xCF, 0x89, 0xCC, 0x81,\n\t0xCD, 0x44, 0xD7, 0x90, 0xD6, 0xB7, 0x35, 0x44,\n\t0xD7, 0x90, 0xD6, 0xB8, 0x39, 0x44, 0xD7, 0x90,\n\t0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x91, 0xD6, 0xBC,\n\t0x45, 0x44, 0xD7, 0x91, 0xD6, 0xBF, 0x4D, 0x44,\n\t0xD7, 0x92, 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x93,\n\t0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x94, 0xD6, 0xBC,\n\t0x45, 0x44, 0xD7, 0x95, 0xD6, 0xB9, 0x3D, 0x44,\n\t// Bytes 44c0 - 44ff\n\t0xD7, 0x95, 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x96,\n\t0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x98, 0xD6, 0xBC,\n\t0x45, 0x44, 0xD7, 0x99, 0xD6, 0xB4, 0x29, 0x44,\n\t0xD7, 0x99, 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x9A,\n\t0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x9B, 0xD6, 0xBC,\n\t0x45, 0x44, 0xD7, 0x9B, 0xD6, 0xBF, 0x4D, 0x44,\n\t0xD7, 0x9C, 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x9E,\n\t0xD6, 0xBC, 0x45, 0x44, 0xD7, 0xA0, 0xD6, 0xBC,\n\t// Bytes 4500 - 453f\n\t0x45, 0x44, 0xD7, 0xA1, 0xD6, 0xBC, 0x45, 0x44,\n\t0xD7, 0xA3, 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0xA4,\n\t0xD6, 0xBC, 0x45, 0x44, 0xD7, 0xA4, 0xD6, 0xBF,\n\t0x4D, 0x44, 0xD7, 0xA6, 0xD6, 0xBC, 0x45, 0x44,\n\t0xD7, 0xA7, 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0xA8,\n\t0xD6, 0xBC, 0x45, 0x44, 0xD7, 0xA9, 0xD6, 0xBC,\n\t0x45, 0x44, 0xD7, 0xA9, 0xD7, 0x81, 0x51, 0x44,\n\t0xD7, 0xA9, 0xD7, 0x82, 0x55, 0x44, 0xD7, 0xAA,\n\t// Bytes 4540 - 457f\n\t0xD6, 0xBC, 0x45, 0x44, 0xD7, 0xB2, 0xD6, 0xB7,\n\t0x35, 0x44, 0xD8, 0xA7, 0xD9, 0x8B, 0x5D, 0x44,\n\t0xD8, 0xA7, 0xD9, 0x93, 0xCD, 0x44, 0xD8, 0xA7,\n\t0xD9, 0x94, 0xCD, 0x44, 0xD8, 0xA7, 0xD9, 0x95,\n\t0xB9, 0x44, 0xD8, 0xB0, 0xD9, 0xB0, 0x7D, 0x44,\n\t0xD8, 0xB1, 0xD9, 0xB0, 0x7D, 0x44, 0xD9, 0x80,\n\t0xD9, 0x8B, 0x5D, 0x44, 0xD9, 0x80, 0xD9, 0x8E,\n\t0x69, 0x44, 0xD9, 0x80, 0xD9, 0x8F, 0x6D, 0x44,\n\t// Bytes 4580 - 45bf\n\t0xD9, 0x80, 0xD9, 0x90, 0x71, 0x44, 0xD9, 0x80,\n\t0xD9, 0x91, 0x75, 0x44, 0xD9, 0x80, 0xD9, 0x92,\n\t0x79, 0x44, 0xD9, 0x87, 0xD9, 0xB0, 0x7D, 0x44,\n\t0xD9, 0x88, 0xD9, 0x94, 0xCD, 0x44, 0xD9, 0x89,\n\t0xD9, 0xB0, 0x7D, 0x44, 0xD9, 0x8A, 0xD9, 0x94,\n\t0xCD, 0x44, 0xDB, 0x92, 0xD9, 0x94, 0xCD, 0x44,\n\t0xDB, 0x95, 0xD9, 0x94, 0xCD, 0x45, 0x20, 0xCC,\n\t0x88, 0xCC, 0x80, 0xCE, 0x45, 0x20, 0xCC, 0x88,\n\t// Bytes 45c0 - 45ff\n\t0xCC, 0x81, 0xCE, 0x45, 0x20, 0xCC, 0x88, 0xCD,\n\t0x82, 0xCE, 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x80,\n\t0xCE, 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x81, 0xCE,\n\t0x45, 0x20, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x45,\n\t0x20, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x45, 0x20,\n\t0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x45, 0x20, 0xCC,\n\t0x94, 0xCD, 0x82, 0xCE, 0x45, 0x20, 0xD9, 0x8C,\n\t0xD9, 0x91, 0x76, 0x45, 0x20, 0xD9, 0x8D, 0xD9,\n\t// Bytes 4600 - 463f\n\t0x91, 0x76, 0x45, 0x20, 0xD9, 0x8E, 0xD9, 0x91,\n\t0x76, 0x45, 0x20, 0xD9, 0x8F, 0xD9, 0x91, 0x76,\n\t0x45, 0x20, 0xD9, 0x90, 0xD9, 0x91, 0x76, 0x45,\n\t0x20, 0xD9, 0x91, 0xD9, 0xB0, 0x7E, 0x45, 0xE2,\n\t0xAB, 0x9D, 0xCC, 0xB8, 0x05, 0x46, 0xCE, 0xB9,\n\t0xCC, 0x88, 0xCC, 0x81, 0xCE, 0x46, 0xCF, 0x85,\n\t0xCC, 0x88, 0xCC, 0x81, 0xCE, 0x46, 0xD7, 0xA9,\n\t0xD6, 0xBC, 0xD7, 0x81, 0x52, 0x46, 0xD7, 0xA9,\n\t// Bytes 4640 - 467f\n\t0xD6, 0xBC, 0xD7, 0x82, 0x56, 0x46, 0xD9, 0x80,\n\t0xD9, 0x8E, 0xD9, 0x91, 0x76, 0x46, 0xD9, 0x80,\n\t0xD9, 0x8F, 0xD9, 0x91, 0x76, 0x46, 0xD9, 0x80,\n\t0xD9, 0x90, 0xD9, 0x91, 0x76, 0x46, 0xE0, 0xA4,\n\t0x95, 0xE0, 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4,\n\t0x96, 0xE0, 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4,\n\t0x97, 0xE0, 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4,\n\t0x9C, 0xE0, 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4,\n\t// Bytes 4680 - 46bf\n\t0xA1, 0xE0, 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4,\n\t0xA2, 0xE0, 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4,\n\t0xAB, 0xE0, 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4,\n\t0xAF, 0xE0, 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA6,\n\t0xA1, 0xE0, 0xA6, 0xBC, 0x0D, 0x46, 0xE0, 0xA6,\n\t0xA2, 0xE0, 0xA6, 0xBC, 0x0D, 0x46, 0xE0, 0xA6,\n\t0xAF, 0xE0, 0xA6, 0xBC, 0x0D, 0x46, 0xE0, 0xA8,\n\t0x96, 0xE0, 0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8,\n\t// Bytes 46c0 - 46ff\n\t0x97, 0xE0, 0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8,\n\t0x9C, 0xE0, 0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8,\n\t0xAB, 0xE0, 0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8,\n\t0xB2, 0xE0, 0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8,\n\t0xB8, 0xE0, 0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xAC,\n\t0xA1, 0xE0, 0xAC, 0xBC, 0x0D, 0x46, 0xE0, 0xAC,\n\t0xA2, 0xE0, 0xAC, 0xBC, 0x0D, 0x46, 0xE0, 0xBE,\n\t0xB2, 0xE0, 0xBE, 0x80, 0xA1, 0x46, 0xE0, 0xBE,\n\t// Bytes 4700 - 473f\n\t0xB3, 0xE0, 0xBE, 0x80, 0xA1, 0x46, 0xE3, 0x83,\n\t0x86, 0xE3, 0x82, 0x99, 0x11, 0x48, 0xF0, 0x9D,\n\t0x85, 0x97, 0xF0, 0x9D, 0x85, 0xA5, 0xB1, 0x48,\n\t0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5,\n\t0xB1, 0x48, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D,\n\t0x85, 0xA5, 0xB1, 0x48, 0xF0, 0x9D, 0x86, 0xBA,\n\t0xF0, 0x9D, 0x85, 0xA5, 0xB1, 0x49, 0xE0, 0xBE,\n\t0xB2, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0xA2,\n\t// Bytes 4740 - 477f\n\t0x49, 0xE0, 0xBE, 0xB3, 0xE0, 0xBD, 0xB1, 0xE0,\n\t0xBE, 0x80, 0xA2, 0x4C, 0xF0, 0x9D, 0x85, 0x98,\n\t0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE,\n\t0xB2, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D,\n\t0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xB2, 0x4C,\n\t0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5,\n\t0xF0, 0x9D, 0x85, 0xB0, 0xB2, 0x4C, 0xF0, 0x9D,\n\t0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D,\n\t// Bytes 4780 - 47bf\n\t0x85, 0xB1, 0xB2, 0x4C, 0xF0, 0x9D, 0x85, 0x98,\n\t0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB2,\n\t0xB2, 0x4C, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D,\n\t0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xB2, 0x4C,\n\t0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5,\n\t0xF0, 0x9D, 0x85, 0xAF, 0xB2, 0x4C, 0xF0, 0x9D,\n\t0x86, 0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D,\n\t0x85, 0xAE, 0xB2, 0x4C, 0xF0, 0x9D, 0x86, 0xBA,\n\t// Bytes 47c0 - 47ff\n\t0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF,\n\t0xB2, 0x83, 0x41, 0xCC, 0x82, 0xCD, 0x83, 0x41,\n\t0xCC, 0x86, 0xCD, 0x83, 0x41, 0xCC, 0x87, 0xCD,\n\t0x83, 0x41, 0xCC, 0x88, 0xCD, 0x83, 0x41, 0xCC,\n\t0x8A, 0xCD, 0x83, 0x41, 0xCC, 0xA3, 0xB9, 0x83,\n\t0x43, 0xCC, 0xA7, 0xA9, 0x83, 0x45, 0xCC, 0x82,\n\t0xCD, 0x83, 0x45, 0xCC, 0x84, 0xCD, 0x83, 0x45,\n\t0xCC, 0xA3, 0xB9, 0x83, 0x45, 0xCC, 0xA7, 0xA9,\n\t// Bytes 4800 - 483f\n\t0x83, 0x49, 0xCC, 0x88, 0xCD, 0x83, 0x4C, 0xCC,\n\t0xA3, 0xB9, 0x83, 0x4F, 0xCC, 0x82, 0xCD, 0x83,\n\t0x4F, 0xCC, 0x83, 0xCD, 0x83, 0x4F, 0xCC, 0x84,\n\t0xCD, 0x83, 0x4F, 0xCC, 0x87, 0xCD, 0x83, 0x4F,\n\t0xCC, 0x88, 0xCD, 0x83, 0x4F, 0xCC, 0x9B, 0xB1,\n\t0x83, 0x4F, 0xCC, 0xA3, 0xB9, 0x83, 0x4F, 0xCC,\n\t0xA8, 0xA9, 0x83, 0x52, 0xCC, 0xA3, 0xB9, 0x83,\n\t0x53, 0xCC, 0x81, 0xCD, 0x83, 0x53, 0xCC, 0x8C,\n\t// Bytes 4840 - 487f\n\t0xCD, 0x83, 0x53, 0xCC, 0xA3, 0xB9, 0x83, 0x55,\n\t0xCC, 0x83, 0xCD, 0x83, 0x55, 0xCC, 0x84, 0xCD,\n\t0x83, 0x55, 0xCC, 0x88, 0xCD, 0x83, 0x55, 0xCC,\n\t0x9B, 0xB1, 0x83, 0x61, 0xCC, 0x82, 0xCD, 0x83,\n\t0x61, 0xCC, 0x86, 0xCD, 0x83, 0x61, 0xCC, 0x87,\n\t0xCD, 0x83, 0x61, 0xCC, 0x88, 0xCD, 0x83, 0x61,\n\t0xCC, 0x8A, 0xCD, 0x83, 0x61, 0xCC, 0xA3, 0xB9,\n\t0x83, 0x63, 0xCC, 0xA7, 0xA9, 0x83, 0x65, 0xCC,\n\t// Bytes 4880 - 48bf\n\t0x82, 0xCD, 0x83, 0x65, 0xCC, 0x84, 0xCD, 0x83,\n\t0x65, 0xCC, 0xA3, 0xB9, 0x83, 0x65, 0xCC, 0xA7,\n\t0xA9, 0x83, 0x69, 0xCC, 0x88, 0xCD, 0x83, 0x6C,\n\t0xCC, 0xA3, 0xB9, 0x83, 0x6F, 0xCC, 0x82, 0xCD,\n\t0x83, 0x6F, 0xCC, 0x83, 0xCD, 0x83, 0x6F, 0xCC,\n\t0x84, 0xCD, 0x83, 0x6F, 0xCC, 0x87, 0xCD, 0x83,\n\t0x6F, 0xCC, 0x88, 0xCD, 0x83, 0x6F, 0xCC, 0x9B,\n\t0xB1, 0x83, 0x6F, 0xCC, 0xA3, 0xB9, 0x83, 0x6F,\n\t// Bytes 48c0 - 48ff\n\t0xCC, 0xA8, 0xA9, 0x83, 0x72, 0xCC, 0xA3, 0xB9,\n\t0x83, 0x73, 0xCC, 0x81, 0xCD, 0x83, 0x73, 0xCC,\n\t0x8C, 0xCD, 0x83, 0x73, 0xCC, 0xA3, 0xB9, 0x83,\n\t0x75, 0xCC, 0x83, 0xCD, 0x83, 0x75, 0xCC, 0x84,\n\t0xCD, 0x83, 0x75, 0xCC, 0x88, 0xCD, 0x83, 0x75,\n\t0xCC, 0x9B, 0xB1, 0x84, 0xCE, 0x91, 0xCC, 0x93,\n\t0xCD, 0x84, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x84,\n\t0xCE, 0x95, 0xCC, 0x93, 0xCD, 0x84, 0xCE, 0x95,\n\t// Bytes 4900 - 493f\n\t0xCC, 0x94, 0xCD, 0x84, 0xCE, 0x97, 0xCC, 0x93,\n\t0xCD, 0x84, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x84,\n\t0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x84, 0xCE, 0x99,\n\t0xCC, 0x94, 0xCD, 0x84, 0xCE, 0x9F, 0xCC, 0x93,\n\t0xCD, 0x84, 0xCE, 0x9F, 0xCC, 0x94, 0xCD, 0x84,\n\t0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x84, 0xCE, 0xA9,\n\t0xCC, 0x93, 0xCD, 0x84, 0xCE, 0xA9, 0xCC, 0x94,\n\t0xCD, 0x84, 0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x84,\n\t// Bytes 4940 - 497f\n\t0xCE, 0xB1, 0xCC, 0x81, 0xCD, 0x84, 0xCE, 0xB1,\n\t0xCC, 0x93, 0xCD, 0x84, 0xCE, 0xB1, 0xCC, 0x94,\n\t0xCD, 0x84, 0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x84,\n\t0xCE, 0xB5, 0xCC, 0x93, 0xCD, 0x84, 0xCE, 0xB5,\n\t0xCC, 0x94, 0xCD, 0x84, 0xCE, 0xB7, 0xCC, 0x80,\n\t0xCD, 0x84, 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x84,\n\t0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x84, 0xCE, 0xB7,\n\t0xCC, 0x94, 0xCD, 0x84, 0xCE, 0xB7, 0xCD, 0x82,\n\t// Bytes 4980 - 49bf\n\t0xCD, 0x84, 0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x84,\n\t0xCE, 0xB9, 0xCC, 0x93, 0xCD, 0x84, 0xCE, 0xB9,\n\t0xCC, 0x94, 0xCD, 0x84, 0xCE, 0xBF, 0xCC, 0x93,\n\t0xCD, 0x84, 0xCE, 0xBF, 0xCC, 0x94, 0xCD, 0x84,\n\t0xCF, 0x85, 0xCC, 0x88, 0xCD, 0x84, 0xCF, 0x85,\n\t0xCC, 0x93, 0xCD, 0x84, 0xCF, 0x85, 0xCC, 0x94,\n\t0xCD, 0x84, 0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x84,\n\t0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x84, 0xCF, 0x89,\n\t// Bytes 49c0 - 49ff\n\t0xCC, 0x93, 0xCD, 0x84, 0xCF, 0x89, 0xCC, 0x94,\n\t0xCD, 0x84, 0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x86,\n\t0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86,\n\t0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86,\n\t0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86,\n\t0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86,\n\t0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86,\n\t0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86,\n\t// Bytes 4a00 - 4a3f\n\t0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86,\n\t0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86,\n\t0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86,\n\t0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86,\n\t0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86,\n\t0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86,\n\t0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86,\n\t0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86,\n\t// Bytes 4a40 - 4a7f\n\t0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86,\n\t0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86,\n\t0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86,\n\t0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86,\n\t0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86,\n\t0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86,\n\t0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86,\n\t0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86,\n\t// Bytes 4a80 - 4abf\n\t0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86,\n\t0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86,\n\t0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86,\n\t0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86,\n\t0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86,\n\t0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86,\n\t0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86,\n\t0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86,\n\t// Bytes 4ac0 - 4aff\n\t0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86,\n\t0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86,\n\t0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86,\n\t0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86,\n\t0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86,\n\t0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x42,\n\t0xCC, 0x80, 0xCD, 0x33, 0x42, 0xCC, 0x81, 0xCD,\n\t0x33, 0x42, 0xCC, 0x93, 0xCD, 0x33, 0x43, 0xE1,\n\t// Bytes 4b00 - 4b3f\n\t0x85, 0xA1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA2,\n\t0x01, 0x00, 0x43, 0xE1, 0x85, 0xA3, 0x01, 0x00,\n\t0x43, 0xE1, 0x85, 0xA4, 0x01, 0x00, 0x43, 0xE1,\n\t0x85, 0xA5, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA6,\n\t0x01, 0x00, 0x43, 0xE1, 0x85, 0xA7, 0x01, 0x00,\n\t0x43, 0xE1, 0x85, 0xA8, 0x01, 0x00, 0x43, 0xE1,\n\t0x85, 0xA9, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAA,\n\t0x01, 0x00, 0x43, 0xE1, 0x85, 0xAB, 0x01, 0x00,\n\t// Bytes 4b40 - 4b7f\n\t0x43, 0xE1, 0x85, 0xAC, 0x01, 0x00, 0x43, 0xE1,\n\t0x85, 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAE,\n\t0x01, 0x00, 0x43, 0xE1, 0x85, 0xAF, 0x01, 0x00,\n\t0x43, 0xE1, 0x85, 0xB0, 0x01, 0x00, 0x43, 0xE1,\n\t0x85, 0xB1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB2,\n\t0x01, 0x00, 0x43, 0xE1, 0x85, 0xB3, 0x01, 0x00,\n\t0x43, 0xE1, 0x85, 0xB4, 0x01, 0x00, 0x43, 0xE1,\n\t0x85, 0xB5, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAA,\n\t// Bytes 4b80 - 4bbf\n\t0x01, 0x00, 0x43, 0xE1, 0x86, 0xAC, 0x01, 0x00,\n\t0x43, 0xE1, 0x86, 0xAD, 0x01, 0x00, 0x43, 0xE1,\n\t0x86, 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB1,\n\t0x01, 0x00, 0x43, 0xE1, 0x86, 0xB2, 0x01, 0x00,\n\t0x43, 0xE1, 0x86, 0xB3, 0x01, 0x00, 0x43, 0xE1,\n\t0x86, 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB5,\n\t0x01, 0x00, 0x44, 0xCC, 0x88, 0xCC, 0x81, 0xCE,\n\t0x33, 0x43, 0xE3, 0x82, 0x99, 0x11, 0x04, 0x43,\n\t// Bytes 4bc0 - 4bff\n\t0xE3, 0x82, 0x9A, 0x11, 0x04, 0x46, 0xE0, 0xBD,\n\t0xB1, 0xE0, 0xBD, 0xB2, 0xA2, 0x27, 0x46, 0xE0,\n\t0xBD, 0xB1, 0xE0, 0xBD, 0xB4, 0xA6, 0x27, 0x46,\n\t0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0xA2, 0x27,\n\t0x00, 0x01,\n}\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfcTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfcTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfcValues[c0]\n\t}\n\ti := nfcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfcTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfcTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfcValues[c0]\n\t}\n\ti := nfcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// nfcTrie. Total size: 10798 bytes (10.54 KiB). Checksum: b5981cc85e3bd14.\ntype nfcTrie struct{}\n\nfunc newNfcTrie(i int) *nfcTrie {\n\treturn &nfcTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *nfcTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 46:\n\t\treturn uint16(nfcValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 46\n\t\treturn uint16(nfcSparse.lookup(n, b))\n\t}\n}\n\n// nfcValues: 48 blocks, 3072 entries, 6144 bytes\n// The third block is the zero block.\nvar nfcValues = [3072]uint16{\n\t// Block 0x0, offset 0x0\n\t0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000,\n\t// Block 0x1, offset 0x40\n\t0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000,\n\t0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000,\n\t0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000,\n\t0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000,\n\t0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000,\n\t0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000,\n\t0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000,\n\t0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000,\n\t0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000,\n\t0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x30b0, 0xc1: 0x30b5, 0xc2: 0x47c9, 0xc3: 0x30ba, 0xc4: 0x47d8, 0xc5: 0x47dd,\n\t0xc6: 0xa000, 0xc7: 0x47e7, 0xc8: 0x3123, 0xc9: 0x3128, 0xca: 0x47ec, 0xcb: 0x313c,\n\t0xcc: 0x31af, 0xcd: 0x31b4, 0xce: 0x31b9, 0xcf: 0x4800, 0xd1: 0x3245,\n\t0xd2: 0x3268, 0xd3: 0x326d, 0xd4: 0x480a, 0xd5: 0x480f, 0xd6: 0x481e,\n\t0xd8: 0xa000, 0xd9: 0x32f4, 0xda: 0x32f9, 0xdb: 0x32fe, 0xdc: 0x4850, 0xdd: 0x3376,\n\t0xe0: 0x33bc, 0xe1: 0x33c1, 0xe2: 0x485a, 0xe3: 0x33c6,\n\t0xe4: 0x4869, 0xe5: 0x486e, 0xe6: 0xa000, 0xe7: 0x4878, 0xe8: 0x342f, 0xe9: 0x3434,\n\t0xea: 0x487d, 0xeb: 0x3448, 0xec: 0x34c0, 0xed: 0x34c5, 0xee: 0x34ca, 0xef: 0x4891,\n\t0xf1: 0x3556, 0xf2: 0x3579, 0xf3: 0x357e, 0xf4: 0x489b, 0xf5: 0x48a0,\n\t0xf6: 0x48af, 0xf8: 0xa000, 0xf9: 0x360a, 0xfa: 0x360f, 0xfb: 0x3614,\n\t0xfc: 0x48e1, 0xfd: 0x3691, 0xff: 0x36aa,\n\t// Block 0x4, offset 0x100\n\t0x100: 0x30bf, 0x101: 0x33cb, 0x102: 0x47ce, 0x103: 0x485f, 0x104: 0x30dd, 0x105: 0x33e9,\n\t0x106: 0x30f1, 0x107: 0x33fd, 0x108: 0x30f6, 0x109: 0x3402, 0x10a: 0x30fb, 0x10b: 0x3407,\n\t0x10c: 0x3100, 0x10d: 0x340c, 0x10e: 0x310a, 0x10f: 0x3416,\n\t0x112: 0x47f1, 0x113: 0x4882, 0x114: 0x3132, 0x115: 0x343e, 0x116: 0x3137, 0x117: 0x3443,\n\t0x118: 0x3155, 0x119: 0x3461, 0x11a: 0x3146, 0x11b: 0x3452, 0x11c: 0x316e, 0x11d: 0x347a,\n\t0x11e: 0x3178, 0x11f: 0x3484, 0x120: 0x317d, 0x121: 0x3489, 0x122: 0x3187, 0x123: 0x3493,\n\t0x124: 0x318c, 0x125: 0x3498, 0x128: 0x31be, 0x129: 0x34cf,\n\t0x12a: 0x31c3, 0x12b: 0x34d4, 0x12c: 0x31c8, 0x12d: 0x34d9, 0x12e: 0x31eb, 0x12f: 0x34f7,\n\t0x130: 0x31cd, 0x134: 0x31f5, 0x135: 0x3501,\n\t0x136: 0x3209, 0x137: 0x351a, 0x139: 0x3213, 0x13a: 0x3524, 0x13b: 0x321d,\n\t0x13c: 0x352e, 0x13d: 0x3218, 0x13e: 0x3529,\n\t// Block 0x5, offset 0x140\n\t0x143: 0x3240, 0x144: 0x3551, 0x145: 0x3259,\n\t0x146: 0x356a, 0x147: 0x324f, 0x148: 0x3560,\n\t0x14c: 0x4814, 0x14d: 0x48a5, 0x14e: 0x3272, 0x14f: 0x3583, 0x150: 0x327c, 0x151: 0x358d,\n\t0x154: 0x329a, 0x155: 0x35ab, 0x156: 0x32b3, 0x157: 0x35c4,\n\t0x158: 0x32a4, 0x159: 0x35b5, 0x15a: 0x4837, 0x15b: 0x48c8, 0x15c: 0x32bd, 0x15d: 0x35ce,\n\t0x15e: 0x32cc, 0x15f: 0x35dd, 0x160: 0x483c, 0x161: 0x48cd, 0x162: 0x32e5, 0x163: 0x35fb,\n\t0x164: 0x32d6, 0x165: 0x35ec, 0x168: 0x4846, 0x169: 0x48d7,\n\t0x16a: 0x484b, 0x16b: 0x48dc, 0x16c: 0x3303, 0x16d: 0x3619, 0x16e: 0x330d, 0x16f: 0x3623,\n\t0x170: 0x3312, 0x171: 0x3628, 0x172: 0x3330, 0x173: 0x3646, 0x174: 0x3353, 0x175: 0x3669,\n\t0x176: 0x337b, 0x177: 0x3696, 0x178: 0x338f, 0x179: 0x339e, 0x17a: 0x36be, 0x17b: 0x33a8,\n\t0x17c: 0x36c8, 0x17d: 0x33ad, 0x17e: 0x36cd, 0x17f: 0xa000,\n\t// Block 0x6, offset 0x180\n\t0x184: 0x8100, 0x185: 0x8100,\n\t0x186: 0x8100,\n\t0x18d: 0x30c9, 0x18e: 0x33d5, 0x18f: 0x31d7, 0x190: 0x34e3, 0x191: 0x3281,\n\t0x192: 0x3592, 0x193: 0x3317, 0x194: 0x362d, 0x195: 0x3b10, 0x196: 0x3c9f, 0x197: 0x3b09,\n\t0x198: 0x3c98, 0x199: 0x3b17, 0x19a: 0x3ca6, 0x19b: 0x3b02, 0x19c: 0x3c91,\n\t0x19e: 0x39f1, 0x19f: 0x3b80, 0x1a0: 0x39ea, 0x1a1: 0x3b79, 0x1a2: 0x36f4, 0x1a3: 0x3706,\n\t0x1a6: 0x3182, 0x1a7: 0x348e, 0x1a8: 0x31ff, 0x1a9: 0x3510,\n\t0x1aa: 0x482d, 0x1ab: 0x48be, 0x1ac: 0x3ad1, 0x1ad: 0x3c60, 0x1ae: 0x3718, 0x1af: 0x371e,\n\t0x1b0: 0x3506, 0x1b4: 0x3169, 0x1b5: 0x3475,\n\t0x1b8: 0x323b, 0x1b9: 0x354c, 0x1ba: 0x39f8, 0x1bb: 0x3b87,\n\t0x1bc: 0x36ee, 0x1bd: 0x3700, 0x1be: 0x36fa, 0x1bf: 0x370c,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x30ce, 0x1c1: 0x33da, 0x1c2: 0x30d3, 0x1c3: 0x33df, 0x1c4: 0x314b, 0x1c5: 0x3457,\n\t0x1c6: 0x3150, 0x1c7: 0x345c, 0x1c8: 0x31dc, 0x1c9: 0x34e8, 0x1ca: 0x31e1, 0x1cb: 0x34ed,\n\t0x1cc: 0x3286, 0x1cd: 0x3597, 0x1ce: 0x328b, 0x1cf: 0x359c, 0x1d0: 0x32a9, 0x1d1: 0x35ba,\n\t0x1d2: 0x32ae, 0x1d3: 0x35bf, 0x1d4: 0x331c, 0x1d5: 0x3632, 0x1d6: 0x3321, 0x1d7: 0x3637,\n\t0x1d8: 0x32c7, 0x1d9: 0x35d8, 0x1da: 0x32e0, 0x1db: 0x35f6,\n\t0x1de: 0x319b, 0x1df: 0x34a7,\n\t0x1e6: 0x47d3, 0x1e7: 0x4864, 0x1e8: 0x47fb, 0x1e9: 0x488c,\n\t0x1ea: 0x3aa0, 0x1eb: 0x3c2f, 0x1ec: 0x3a7d, 0x1ed: 0x3c0c, 0x1ee: 0x4819, 0x1ef: 0x48aa,\n\t0x1f0: 0x3a99, 0x1f1: 0x3c28, 0x1f2: 0x3385, 0x1f3: 0x36a0,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x9933, 0x201: 0x9933, 0x202: 0x9933, 0x203: 0x9933, 0x204: 0x9933, 0x205: 0x8133,\n\t0x206: 0x9933, 0x207: 0x9933, 0x208: 0x9933, 0x209: 0x9933, 0x20a: 0x9933, 0x20b: 0x9933,\n\t0x20c: 0x9933, 0x20d: 0x8133, 0x20e: 0x8133, 0x20f: 0x9933, 0x210: 0x8133, 0x211: 0x9933,\n\t0x212: 0x8133, 0x213: 0x9933, 0x214: 0x9933, 0x215: 0x8134, 0x216: 0x812e, 0x217: 0x812e,\n\t0x218: 0x812e, 0x219: 0x812e, 0x21a: 0x8134, 0x21b: 0x992c, 0x21c: 0x812e, 0x21d: 0x812e,\n\t0x21e: 0x812e, 0x21f: 0x812e, 0x220: 0x812e, 0x221: 0x812a, 0x222: 0x812a, 0x223: 0x992e,\n\t0x224: 0x992e, 0x225: 0x992e, 0x226: 0x992e, 0x227: 0x992a, 0x228: 0x992a, 0x229: 0x812e,\n\t0x22a: 0x812e, 0x22b: 0x812e, 0x22c: 0x812e, 0x22d: 0x992e, 0x22e: 0x992e, 0x22f: 0x812e,\n\t0x230: 0x992e, 0x231: 0x992e, 0x232: 0x812e, 0x233: 0x812e, 0x234: 0x8101, 0x235: 0x8101,\n\t0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812e, 0x23a: 0x812e, 0x23b: 0x812e,\n\t0x23c: 0x812e, 0x23d: 0x8133, 0x23e: 0x8133, 0x23f: 0x8133,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x4aef, 0x241: 0x4af4, 0x242: 0x9933, 0x243: 0x4af9, 0x244: 0x4bb2, 0x245: 0x9937,\n\t0x246: 0x8133, 0x247: 0x812e, 0x248: 0x812e, 0x249: 0x812e, 0x24a: 0x8133, 0x24b: 0x8133,\n\t0x24c: 0x8133, 0x24d: 0x812e, 0x24e: 0x812e, 0x250: 0x8133, 0x251: 0x8133,\n\t0x252: 0x8133, 0x253: 0x812e, 0x254: 0x812e, 0x255: 0x812e, 0x256: 0x812e, 0x257: 0x8133,\n\t0x258: 0x8134, 0x259: 0x812e, 0x25a: 0x812e, 0x25b: 0x8133, 0x25c: 0x8135, 0x25d: 0x8136,\n\t0x25e: 0x8136, 0x25f: 0x8135, 0x260: 0x8136, 0x261: 0x8136, 0x262: 0x8135, 0x263: 0x8133,\n\t0x264: 0x8133, 0x265: 0x8133, 0x266: 0x8133, 0x267: 0x8133, 0x268: 0x8133, 0x269: 0x8133,\n\t0x26a: 0x8133, 0x26b: 0x8133, 0x26c: 0x8133, 0x26d: 0x8133, 0x26e: 0x8133, 0x26f: 0x8133,\n\t0x274: 0x01ee,\n\t0x27a: 0x8100,\n\t0x27e: 0x0037,\n\t// Block 0xa, offset 0x280\n\t0x284: 0x8100, 0x285: 0x36e2,\n\t0x286: 0x372a, 0x287: 0x00ce, 0x288: 0x3748, 0x289: 0x3754, 0x28a: 0x3766,\n\t0x28c: 0x3784, 0x28e: 0x3796, 0x28f: 0x37b4, 0x290: 0x3f49, 0x291: 0xa000,\n\t0x295: 0xa000, 0x297: 0xa000,\n\t0x299: 0xa000,\n\t0x29f: 0xa000, 0x2a1: 0xa000,\n\t0x2a5: 0xa000, 0x2a9: 0xa000,\n\t0x2aa: 0x3778, 0x2ab: 0x37a8, 0x2ac: 0x493f, 0x2ad: 0x37d8, 0x2ae: 0x4969, 0x2af: 0x37ea,\n\t0x2b0: 0x3fb1, 0x2b1: 0xa000, 0x2b5: 0xa000,\n\t0x2b7: 0xa000, 0x2b9: 0xa000,\n\t0x2bf: 0xa000,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x3862, 0x2c1: 0x386e, 0x2c3: 0x385c,\n\t0x2c6: 0xa000, 0x2c7: 0x384a,\n\t0x2cc: 0x389e, 0x2cd: 0x3886, 0x2ce: 0x38b0, 0x2d0: 0xa000,\n\t0x2d3: 0xa000, 0x2d5: 0xa000, 0x2d6: 0xa000, 0x2d7: 0xa000,\n\t0x2d8: 0xa000, 0x2d9: 0x3892, 0x2da: 0xa000,\n\t0x2de: 0xa000, 0x2e3: 0xa000,\n\t0x2e7: 0xa000,\n\t0x2eb: 0xa000, 0x2ed: 0xa000,\n\t0x2f0: 0xa000, 0x2f3: 0xa000, 0x2f5: 0xa000,\n\t0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x3916, 0x2fa: 0xa000,\n\t0x2fe: 0xa000,\n\t// Block 0xc, offset 0x300\n\t0x301: 0x3874, 0x302: 0x38f8,\n\t0x310: 0x3850, 0x311: 0x38d4,\n\t0x312: 0x3856, 0x313: 0x38da, 0x316: 0x3868, 0x317: 0x38ec,\n\t0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x396a, 0x31b: 0x3970, 0x31c: 0x387a, 0x31d: 0x38fe,\n\t0x31e: 0x3880, 0x31f: 0x3904, 0x322: 0x388c, 0x323: 0x3910,\n\t0x324: 0x3898, 0x325: 0x391c, 0x326: 0x38a4, 0x327: 0x3928, 0x328: 0xa000, 0x329: 0xa000,\n\t0x32a: 0x3976, 0x32b: 0x397c, 0x32c: 0x38ce, 0x32d: 0x3952, 0x32e: 0x38aa, 0x32f: 0x392e,\n\t0x330: 0x38b6, 0x331: 0x393a, 0x332: 0x38bc, 0x333: 0x3940, 0x334: 0x38c2, 0x335: 0x3946,\n\t0x338: 0x38c8, 0x339: 0x394c,\n\t// Block 0xd, offset 0x340\n\t0x351: 0x812e,\n\t0x352: 0x8133, 0x353: 0x8133, 0x354: 0x8133, 0x355: 0x8133, 0x356: 0x812e, 0x357: 0x8133,\n\t0x358: 0x8133, 0x359: 0x8133, 0x35a: 0x812f, 0x35b: 0x812e, 0x35c: 0x8133, 0x35d: 0x8133,\n\t0x35e: 0x8133, 0x35f: 0x8133, 0x360: 0x8133, 0x361: 0x8133, 0x362: 0x812e, 0x363: 0x812e,\n\t0x364: 0x812e, 0x365: 0x812e, 0x366: 0x812e, 0x367: 0x812e, 0x368: 0x8133, 0x369: 0x8133,\n\t0x36a: 0x812e, 0x36b: 0x8133, 0x36c: 0x8133, 0x36d: 0x812f, 0x36e: 0x8132, 0x36f: 0x8133,\n\t0x370: 0x8106, 0x371: 0x8107, 0x372: 0x8108, 0x373: 0x8109, 0x374: 0x810a, 0x375: 0x810b,\n\t0x376: 0x810c, 0x377: 0x810d, 0x378: 0x810e, 0x379: 0x810f, 0x37a: 0x810f, 0x37b: 0x8110,\n\t0x37c: 0x8111, 0x37d: 0x8112, 0x37f: 0x8113,\n\t// Block 0xe, offset 0x380\n\t0x388: 0xa000, 0x38a: 0xa000, 0x38b: 0x8117,\n\t0x38c: 0x8118, 0x38d: 0x8119, 0x38e: 0x811a, 0x38f: 0x811b, 0x390: 0x811c, 0x391: 0x811d,\n\t0x392: 0x811e, 0x393: 0x9933, 0x394: 0x9933, 0x395: 0x992e, 0x396: 0x812e, 0x397: 0x8133,\n\t0x398: 0x8133, 0x399: 0x8133, 0x39a: 0x8133, 0x39b: 0x8133, 0x39c: 0x812e, 0x39d: 0x8133,\n\t0x39e: 0x8133, 0x39f: 0x812e,\n\t0x3b0: 0x811f,\n\t// Block 0xf, offset 0x3c0\n\t0x3ca: 0x8133, 0x3cb: 0x8133,\n\t0x3cc: 0x8133, 0x3cd: 0x8133, 0x3ce: 0x8133, 0x3cf: 0x812e, 0x3d0: 0x812e, 0x3d1: 0x812e,\n\t0x3d2: 0x812e, 0x3d3: 0x812e, 0x3d4: 0x8133, 0x3d5: 0x8133, 0x3d6: 0x8133, 0x3d7: 0x8133,\n\t0x3d8: 0x8133, 0x3d9: 0x8133, 0x3da: 0x8133, 0x3db: 0x8133, 0x3dc: 0x8133, 0x3dd: 0x8133,\n\t0x3de: 0x8133, 0x3df: 0x8133, 0x3e0: 0x8133, 0x3e1: 0x8133, 0x3e3: 0x812e,\n\t0x3e4: 0x8133, 0x3e5: 0x8133, 0x3e6: 0x812e, 0x3e7: 0x8133, 0x3e8: 0x8133, 0x3e9: 0x812e,\n\t0x3ea: 0x8133, 0x3eb: 0x8133, 0x3ec: 0x8133, 0x3ed: 0x812e, 0x3ee: 0x812e, 0x3ef: 0x812e,\n\t0x3f0: 0x8117, 0x3f1: 0x8118, 0x3f2: 0x8119, 0x3f3: 0x8133, 0x3f4: 0x8133, 0x3f5: 0x8133,\n\t0x3f6: 0x812e, 0x3f7: 0x8133, 0x3f8: 0x8133, 0x3f9: 0x812e, 0x3fa: 0x812e, 0x3fb: 0x8133,\n\t0x3fc: 0x8133, 0x3fd: 0x8133, 0x3fe: 0x8133, 0x3ff: 0x8133,\n\t// Block 0x10, offset 0x400\n\t0x405: 0xa000,\n\t0x406: 0x2e5d, 0x407: 0xa000, 0x408: 0x2e65, 0x409: 0xa000, 0x40a: 0x2e6d, 0x40b: 0xa000,\n\t0x40c: 0x2e75, 0x40d: 0xa000, 0x40e: 0x2e7d, 0x411: 0xa000,\n\t0x412: 0x2e85,\n\t0x434: 0x8103, 0x435: 0x9900,\n\t0x43a: 0xa000, 0x43b: 0x2e8d,\n\t0x43c: 0xa000, 0x43d: 0x2e95, 0x43e: 0xa000, 0x43f: 0xa000,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x8133, 0x441: 0x8133, 0x442: 0x812e, 0x443: 0x8133, 0x444: 0x8133, 0x445: 0x8133,\n\t0x446: 0x8133, 0x447: 0x8133, 0x448: 0x8133, 0x449: 0x8133, 0x44a: 0x812e, 0x44b: 0x8133,\n\t0x44c: 0x8133, 0x44d: 0x8136, 0x44e: 0x812b, 0x44f: 0x812e, 0x450: 0x812a, 0x451: 0x8133,\n\t0x452: 0x8133, 0x453: 0x8133, 0x454: 0x8133, 0x455: 0x8133, 0x456: 0x8133, 0x457: 0x8133,\n\t0x458: 0x8133, 0x459: 0x8133, 0x45a: 0x8133, 0x45b: 0x8133, 0x45c: 0x8133, 0x45d: 0x8133,\n\t0x45e: 0x8133, 0x45f: 0x8133, 0x460: 0x8133, 0x461: 0x8133, 0x462: 0x8133, 0x463: 0x8133,\n\t0x464: 0x8133, 0x465: 0x8133, 0x466: 0x8133, 0x467: 0x8133, 0x468: 0x8133, 0x469: 0x8133,\n\t0x46a: 0x8133, 0x46b: 0x8133, 0x46c: 0x8133, 0x46d: 0x8133, 0x46e: 0x8133, 0x46f: 0x8133,\n\t0x470: 0x8133, 0x471: 0x8133, 0x472: 0x8133, 0x473: 0x8133, 0x474: 0x8133, 0x475: 0x8133,\n\t0x476: 0x8134, 0x477: 0x8132, 0x478: 0x8132, 0x479: 0x812e, 0x47a: 0x812d, 0x47b: 0x8133,\n\t0x47c: 0x8135, 0x47d: 0x812e, 0x47e: 0x8133, 0x47f: 0x812e,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x30d8, 0x481: 0x33e4, 0x482: 0x30e2, 0x483: 0x33ee, 0x484: 0x30e7, 0x485: 0x33f3,\n\t0x486: 0x30ec, 0x487: 0x33f8, 0x488: 0x3a0d, 0x489: 0x3b9c, 0x48a: 0x3105, 0x48b: 0x3411,\n\t0x48c: 0x310f, 0x48d: 0x341b, 0x48e: 0x311e, 0x48f: 0x342a, 0x490: 0x3114, 0x491: 0x3420,\n\t0x492: 0x3119, 0x493: 0x3425, 0x494: 0x3a30, 0x495: 0x3bbf, 0x496: 0x3a37, 0x497: 0x3bc6,\n\t0x498: 0x315a, 0x499: 0x3466, 0x49a: 0x315f, 0x49b: 0x346b, 0x49c: 0x3a45, 0x49d: 0x3bd4,\n\t0x49e: 0x3164, 0x49f: 0x3470, 0x4a0: 0x3173, 0x4a1: 0x347f, 0x4a2: 0x3191, 0x4a3: 0x349d,\n\t0x4a4: 0x31a0, 0x4a5: 0x34ac, 0x4a6: 0x3196, 0x4a7: 0x34a2, 0x4a8: 0x31a5, 0x4a9: 0x34b1,\n\t0x4aa: 0x31aa, 0x4ab: 0x34b6, 0x4ac: 0x31f0, 0x4ad: 0x34fc, 0x4ae: 0x3a4c, 0x4af: 0x3bdb,\n\t0x4b0: 0x31fa, 0x4b1: 0x350b, 0x4b2: 0x3204, 0x4b3: 0x3515, 0x4b4: 0x320e, 0x4b5: 0x351f,\n\t0x4b6: 0x4805, 0x4b7: 0x4896, 0x4b8: 0x3a53, 0x4b9: 0x3be2, 0x4ba: 0x3227, 0x4bb: 0x3538,\n\t0x4bc: 0x3222, 0x4bd: 0x3533, 0x4be: 0x322c, 0x4bf: 0x353d,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x3231, 0x4c1: 0x3542, 0x4c2: 0x3236, 0x4c3: 0x3547, 0x4c4: 0x324a, 0x4c5: 0x355b,\n\t0x4c6: 0x3254, 0x4c7: 0x3565, 0x4c8: 0x3263, 0x4c9: 0x3574, 0x4ca: 0x325e, 0x4cb: 0x356f,\n\t0x4cc: 0x3a76, 0x4cd: 0x3c05, 0x4ce: 0x3a84, 0x4cf: 0x3c13, 0x4d0: 0x3a8b, 0x4d1: 0x3c1a,\n\t0x4d2: 0x3a92, 0x4d3: 0x3c21, 0x4d4: 0x3290, 0x4d5: 0x35a1, 0x4d6: 0x3295, 0x4d7: 0x35a6,\n\t0x4d8: 0x329f, 0x4d9: 0x35b0, 0x4da: 0x4832, 0x4db: 0x48c3, 0x4dc: 0x3ad8, 0x4dd: 0x3c67,\n\t0x4de: 0x32b8, 0x4df: 0x35c9, 0x4e0: 0x32c2, 0x4e1: 0x35d3, 0x4e2: 0x4841, 0x4e3: 0x48d2,\n\t0x4e4: 0x3adf, 0x4e5: 0x3c6e, 0x4e6: 0x3ae6, 0x4e7: 0x3c75, 0x4e8: 0x3aed, 0x4e9: 0x3c7c,\n\t0x4ea: 0x32d1, 0x4eb: 0x35e2, 0x4ec: 0x32db, 0x4ed: 0x35f1, 0x4ee: 0x32ef, 0x4ef: 0x3605,\n\t0x4f0: 0x32ea, 0x4f1: 0x3600, 0x4f2: 0x332b, 0x4f3: 0x3641, 0x4f4: 0x333a, 0x4f5: 0x3650,\n\t0x4f6: 0x3335, 0x4f7: 0x364b, 0x4f8: 0x3af4, 0x4f9: 0x3c83, 0x4fa: 0x3afb, 0x4fb: 0x3c8a,\n\t0x4fc: 0x333f, 0x4fd: 0x3655, 0x4fe: 0x3344, 0x4ff: 0x365a,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x3349, 0x501: 0x365f, 0x502: 0x334e, 0x503: 0x3664, 0x504: 0x335d, 0x505: 0x3673,\n\t0x506: 0x3358, 0x507: 0x366e, 0x508: 0x3362, 0x509: 0x367d, 0x50a: 0x3367, 0x50b: 0x3682,\n\t0x50c: 0x336c, 0x50d: 0x3687, 0x50e: 0x338a, 0x50f: 0x36a5, 0x510: 0x33a3, 0x511: 0x36c3,\n\t0x512: 0x33b2, 0x513: 0x36d2, 0x514: 0x33b7, 0x515: 0x36d7, 0x516: 0x34bb, 0x517: 0x35e7,\n\t0x518: 0x3678, 0x519: 0x36b4, 0x51b: 0x3712,\n\t0x520: 0x47e2, 0x521: 0x4873, 0x522: 0x30c4, 0x523: 0x33d0,\n\t0x524: 0x39b9, 0x525: 0x3b48, 0x526: 0x39b2, 0x527: 0x3b41, 0x528: 0x39c7, 0x529: 0x3b56,\n\t0x52a: 0x39c0, 0x52b: 0x3b4f, 0x52c: 0x39ff, 0x52d: 0x3b8e, 0x52e: 0x39d5, 0x52f: 0x3b64,\n\t0x530: 0x39ce, 0x531: 0x3b5d, 0x532: 0x39e3, 0x533: 0x3b72, 0x534: 0x39dc, 0x535: 0x3b6b,\n\t0x536: 0x3a06, 0x537: 0x3b95, 0x538: 0x47f6, 0x539: 0x4887, 0x53a: 0x3141, 0x53b: 0x344d,\n\t0x53c: 0x312d, 0x53d: 0x3439, 0x53e: 0x3a1b, 0x53f: 0x3baa,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x3a14, 0x541: 0x3ba3, 0x542: 0x3a29, 0x543: 0x3bb8, 0x544: 0x3a22, 0x545: 0x3bb1,\n\t0x546: 0x3a3e, 0x547: 0x3bcd, 0x548: 0x31d2, 0x549: 0x34de, 0x54a: 0x31e6, 0x54b: 0x34f2,\n\t0x54c: 0x4828, 0x54d: 0x48b9, 0x54e: 0x3277, 0x54f: 0x3588, 0x550: 0x3a61, 0x551: 0x3bf0,\n\t0x552: 0x3a5a, 0x553: 0x3be9, 0x554: 0x3a6f, 0x555: 0x3bfe, 0x556: 0x3a68, 0x557: 0x3bf7,\n\t0x558: 0x3aca, 0x559: 0x3c59, 0x55a: 0x3aae, 0x55b: 0x3c3d, 0x55c: 0x3aa7, 0x55d: 0x3c36,\n\t0x55e: 0x3abc, 0x55f: 0x3c4b, 0x560: 0x3ab5, 0x561: 0x3c44, 0x562: 0x3ac3, 0x563: 0x3c52,\n\t0x564: 0x3326, 0x565: 0x363c, 0x566: 0x3308, 0x567: 0x361e, 0x568: 0x3b25, 0x569: 0x3cb4,\n\t0x56a: 0x3b1e, 0x56b: 0x3cad, 0x56c: 0x3b33, 0x56d: 0x3cc2, 0x56e: 0x3b2c, 0x56f: 0x3cbb,\n\t0x570: 0x3b3a, 0x571: 0x3cc9, 0x572: 0x3371, 0x573: 0x368c, 0x574: 0x3399, 0x575: 0x36b9,\n\t0x576: 0x3394, 0x577: 0x36af, 0x578: 0x3380, 0x579: 0x369b,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x4945, 0x581: 0x494b, 0x582: 0x4a5f, 0x583: 0x4a77, 0x584: 0x4a67, 0x585: 0x4a7f,\n\t0x586: 0x4a6f, 0x587: 0x4a87, 0x588: 0x48eb, 0x589: 0x48f1, 0x58a: 0x49cf, 0x58b: 0x49e7,\n\t0x58c: 0x49d7, 0x58d: 0x49ef, 0x58e: 0x49df, 0x58f: 0x49f7, 0x590: 0x4957, 0x591: 0x495d,\n\t0x592: 0x3ef9, 0x593: 0x3f09, 0x594: 0x3f01, 0x595: 0x3f11,\n\t0x598: 0x48f7, 0x599: 0x48fd, 0x59a: 0x3e29, 0x59b: 0x3e39, 0x59c: 0x3e31, 0x59d: 0x3e41,\n\t0x5a0: 0x496f, 0x5a1: 0x4975, 0x5a2: 0x4a8f, 0x5a3: 0x4aa7,\n\t0x5a4: 0x4a97, 0x5a5: 0x4aaf, 0x5a6: 0x4a9f, 0x5a7: 0x4ab7, 0x5a8: 0x4903, 0x5a9: 0x4909,\n\t0x5aa: 0x49ff, 0x5ab: 0x4a17, 0x5ac: 0x4a07, 0x5ad: 0x4a1f, 0x5ae: 0x4a0f, 0x5af: 0x4a27,\n\t0x5b0: 0x4987, 0x5b1: 0x498d, 0x5b2: 0x3f59, 0x5b3: 0x3f71, 0x5b4: 0x3f61, 0x5b5: 0x3f79,\n\t0x5b6: 0x3f69, 0x5b7: 0x3f81, 0x5b8: 0x490f, 0x5b9: 0x4915, 0x5ba: 0x3e59, 0x5bb: 0x3e71,\n\t0x5bc: 0x3e61, 0x5bd: 0x3e79, 0x5be: 0x3e69, 0x5bf: 0x3e81,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x4993, 0x5c1: 0x4999, 0x5c2: 0x3f89, 0x5c3: 0x3f99, 0x5c4: 0x3f91, 0x5c5: 0x3fa1,\n\t0x5c8: 0x491b, 0x5c9: 0x4921, 0x5ca: 0x3e89, 0x5cb: 0x3e99,\n\t0x5cc: 0x3e91, 0x5cd: 0x3ea1, 0x5d0: 0x49a5, 0x5d1: 0x49ab,\n\t0x5d2: 0x3fc1, 0x5d3: 0x3fd9, 0x5d4: 0x3fc9, 0x5d5: 0x3fe1, 0x5d6: 0x3fd1, 0x5d7: 0x3fe9,\n\t0x5d9: 0x4927, 0x5db: 0x3ea9, 0x5dd: 0x3eb1,\n\t0x5df: 0x3eb9, 0x5e0: 0x49bd, 0x5e1: 0x49c3, 0x5e2: 0x4abf, 0x5e3: 0x4ad7,\n\t0x5e4: 0x4ac7, 0x5e5: 0x4adf, 0x5e6: 0x4acf, 0x5e7: 0x4ae7, 0x5e8: 0x492d, 0x5e9: 0x4933,\n\t0x5ea: 0x4a2f, 0x5eb: 0x4a47, 0x5ec: 0x4a37, 0x5ed: 0x4a4f, 0x5ee: 0x4a3f, 0x5ef: 0x4a57,\n\t0x5f0: 0x4939, 0x5f1: 0x445f, 0x5f2: 0x37d2, 0x5f3: 0x4465, 0x5f4: 0x4963, 0x5f5: 0x446b,\n\t0x5f6: 0x37e4, 0x5f7: 0x4471, 0x5f8: 0x3802, 0x5f9: 0x4477, 0x5fa: 0x381a, 0x5fb: 0x447d,\n\t0x5fc: 0x49b1, 0x5fd: 0x4483,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x3ee1, 0x601: 0x3ee9, 0x602: 0x42c5, 0x603: 0x42e3, 0x604: 0x42cf, 0x605: 0x42ed,\n\t0x606: 0x42d9, 0x607: 0x42f7, 0x608: 0x3e19, 0x609: 0x3e21, 0x60a: 0x4211, 0x60b: 0x422f,\n\t0x60c: 0x421b, 0x60d: 0x4239, 0x60e: 0x4225, 0x60f: 0x4243, 0x610: 0x3f29, 0x611: 0x3f31,\n\t0x612: 0x4301, 0x613: 0x431f, 0x614: 0x430b, 0x615: 0x4329, 0x616: 0x4315, 0x617: 0x4333,\n\t0x618: 0x3e49, 0x619: 0x3e51, 0x61a: 0x424d, 0x61b: 0x426b, 0x61c: 0x4257, 0x61d: 0x4275,\n\t0x61e: 0x4261, 0x61f: 0x427f, 0x620: 0x4001, 0x621: 0x4009, 0x622: 0x433d, 0x623: 0x435b,\n\t0x624: 0x4347, 0x625: 0x4365, 0x626: 0x4351, 0x627: 0x436f, 0x628: 0x3ec1, 0x629: 0x3ec9,\n\t0x62a: 0x4289, 0x62b: 0x42a7, 0x62c: 0x4293, 0x62d: 0x42b1, 0x62e: 0x429d, 0x62f: 0x42bb,\n\t0x630: 0x37c6, 0x631: 0x37c0, 0x632: 0x3ed1, 0x633: 0x37cc, 0x634: 0x3ed9,\n\t0x636: 0x4951, 0x637: 0x3ef1, 0x638: 0x3736, 0x639: 0x3730, 0x63a: 0x3724, 0x63b: 0x442f,\n\t0x63c: 0x373c, 0x63d: 0x8100, 0x63e: 0x0257, 0x63f: 0xa100,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x8100, 0x641: 0x36e8, 0x642: 0x3f19, 0x643: 0x37de, 0x644: 0x3f21,\n\t0x646: 0x497b, 0x647: 0x3f39, 0x648: 0x3742, 0x649: 0x4435, 0x64a: 0x374e, 0x64b: 0x443b,\n\t0x64c: 0x375a, 0x64d: 0x3cd0, 0x64e: 0x3cd7, 0x64f: 0x3cde, 0x650: 0x37f6, 0x651: 0x37f0,\n\t0x652: 0x3f41, 0x653: 0x4625, 0x656: 0x37fc, 0x657: 0x3f51,\n\t0x658: 0x3772, 0x659: 0x376c, 0x65a: 0x3760, 0x65b: 0x4441, 0x65d: 0x3ce5,\n\t0x65e: 0x3cec, 0x65f: 0x3cf3, 0x660: 0x382c, 0x661: 0x3826, 0x662: 0x3fa9, 0x663: 0x462d,\n\t0x664: 0x380e, 0x665: 0x3814, 0x666: 0x3832, 0x667: 0x3fb9, 0x668: 0x37a2, 0x669: 0x379c,\n\t0x66a: 0x3790, 0x66b: 0x444d, 0x66c: 0x378a, 0x66d: 0x36dc, 0x66e: 0x4429, 0x66f: 0x0081,\n\t0x672: 0x3ff1, 0x673: 0x3838, 0x674: 0x3ff9,\n\t0x676: 0x49c9, 0x677: 0x4011, 0x678: 0x377e, 0x679: 0x4447, 0x67a: 0x37ae, 0x67b: 0x4459,\n\t0x67c: 0x37ba, 0x67d: 0x4397, 0x67e: 0xa100,\n\t// Block 0x1a, offset 0x680\n\t0x681: 0x3d47, 0x683: 0xa000, 0x684: 0x3d4e, 0x685: 0xa000,\n\t0x687: 0x3d55, 0x688: 0xa000, 0x689: 0x3d5c,\n\t0x68d: 0xa000,\n\t0x6a0: 0x30a6, 0x6a1: 0xa000, 0x6a2: 0x3d6a,\n\t0x6a4: 0xa000, 0x6a5: 0xa000,\n\t0x6ad: 0x3d63, 0x6ae: 0x30a1, 0x6af: 0x30ab,\n\t0x6b0: 0x3d71, 0x6b1: 0x3d78, 0x6b2: 0xa000, 0x6b3: 0xa000, 0x6b4: 0x3d7f, 0x6b5: 0x3d86,\n\t0x6b6: 0xa000, 0x6b7: 0xa000, 0x6b8: 0x3d8d, 0x6b9: 0x3d94, 0x6ba: 0xa000, 0x6bb: 0xa000,\n\t0x6bc: 0xa000, 0x6bd: 0xa000,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x3d9b, 0x6c1: 0x3da2, 0x6c2: 0xa000, 0x6c3: 0xa000, 0x6c4: 0x3db7, 0x6c5: 0x3dbe,\n\t0x6c6: 0xa000, 0x6c7: 0xa000, 0x6c8: 0x3dc5, 0x6c9: 0x3dcc,\n\t0x6d1: 0xa000,\n\t0x6d2: 0xa000,\n\t0x6e2: 0xa000,\n\t0x6e8: 0xa000, 0x6e9: 0xa000,\n\t0x6eb: 0xa000, 0x6ec: 0x3de1, 0x6ed: 0x3de8, 0x6ee: 0x3def, 0x6ef: 0x3df6,\n\t0x6f2: 0xa000, 0x6f3: 0xa000, 0x6f4: 0xa000, 0x6f5: 0xa000,\n\t// Block 0x1c, offset 0x700\n\t0x706: 0xa000, 0x70b: 0xa000,\n\t0x70c: 0x4049, 0x70d: 0xa000, 0x70e: 0x4051, 0x70f: 0xa000, 0x710: 0x4059, 0x711: 0xa000,\n\t0x712: 0x4061, 0x713: 0xa000, 0x714: 0x4069, 0x715: 0xa000, 0x716: 0x4071, 0x717: 0xa000,\n\t0x718: 0x4079, 0x719: 0xa000, 0x71a: 0x4081, 0x71b: 0xa000, 0x71c: 0x4089, 0x71d: 0xa000,\n\t0x71e: 0x4091, 0x71f: 0xa000, 0x720: 0x4099, 0x721: 0xa000, 0x722: 0x40a1,\n\t0x724: 0xa000, 0x725: 0x40a9, 0x726: 0xa000, 0x727: 0x40b1, 0x728: 0xa000, 0x729: 0x40b9,\n\t0x72f: 0xa000,\n\t0x730: 0x40c1, 0x731: 0x40c9, 0x732: 0xa000, 0x733: 0x40d1, 0x734: 0x40d9, 0x735: 0xa000,\n\t0x736: 0x40e1, 0x737: 0x40e9, 0x738: 0xa000, 0x739: 0x40f1, 0x73a: 0x40f9, 0x73b: 0xa000,\n\t0x73c: 0x4101, 0x73d: 0x4109,\n\t// Block 0x1d, offset 0x740\n\t0x754: 0x4041,\n\t0x759: 0x9904, 0x75a: 0x9904, 0x75b: 0x8100, 0x75c: 0x8100, 0x75d: 0xa000,\n\t0x75e: 0x4111,\n\t0x766: 0xa000,\n\t0x76b: 0xa000, 0x76c: 0x4121, 0x76d: 0xa000, 0x76e: 0x4129, 0x76f: 0xa000,\n\t0x770: 0x4131, 0x771: 0xa000, 0x772: 0x4139, 0x773: 0xa000, 0x774: 0x4141, 0x775: 0xa000,\n\t0x776: 0x4149, 0x777: 0xa000, 0x778: 0x4151, 0x779: 0xa000, 0x77a: 0x4159, 0x77b: 0xa000,\n\t0x77c: 0x4161, 0x77d: 0xa000, 0x77e: 0x4169, 0x77f: 0xa000,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0x4171, 0x781: 0xa000, 0x782: 0x4179, 0x784: 0xa000, 0x785: 0x4181,\n\t0x786: 0xa000, 0x787: 0x4189, 0x788: 0xa000, 0x789: 0x4191,\n\t0x78f: 0xa000, 0x790: 0x4199, 0x791: 0x41a1,\n\t0x792: 0xa000, 0x793: 0x41a9, 0x794: 0x41b1, 0x795: 0xa000, 0x796: 0x41b9, 0x797: 0x41c1,\n\t0x798: 0xa000, 0x799: 0x41c9, 0x79a: 0x41d1, 0x79b: 0xa000, 0x79c: 0x41d9, 0x79d: 0x41e1,\n\t0x7af: 0xa000,\n\t0x7b0: 0xa000, 0x7b1: 0xa000, 0x7b2: 0xa000, 0x7b4: 0x4119,\n\t0x7b7: 0x41e9, 0x7b8: 0x41f1, 0x7b9: 0x41f9, 0x7ba: 0x4201,\n\t0x7bd: 0xa000, 0x7be: 0x4209,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0x1472, 0x7c1: 0x0df6, 0x7c2: 0x14ce, 0x7c3: 0x149a, 0x7c4: 0x0f52, 0x7c5: 0x07e6,\n\t0x7c6: 0x09da, 0x7c7: 0x1726, 0x7c8: 0x1726, 0x7c9: 0x0b06, 0x7ca: 0x155a, 0x7cb: 0x0a3e,\n\t0x7cc: 0x0b02, 0x7cd: 0x0cea, 0x7ce: 0x10ca, 0x7cf: 0x125a, 0x7d0: 0x1392, 0x7d1: 0x13ce,\n\t0x7d2: 0x1402, 0x7d3: 0x1516, 0x7d4: 0x0e6e, 0x7d5: 0x0efa, 0x7d6: 0x0fa6, 0x7d7: 0x103e,\n\t0x7d8: 0x135a, 0x7d9: 0x1542, 0x7da: 0x166e, 0x7db: 0x080a, 0x7dc: 0x09ae, 0x7dd: 0x0e82,\n\t0x7de: 0x0fca, 0x7df: 0x138e, 0x7e0: 0x16be, 0x7e1: 0x0bae, 0x7e2: 0x0f72, 0x7e3: 0x137e,\n\t0x7e4: 0x1412, 0x7e5: 0x0d1e, 0x7e6: 0x12b6, 0x7e7: 0x13da, 0x7e8: 0x0c1a, 0x7e9: 0x0e0a,\n\t0x7ea: 0x0f12, 0x7eb: 0x1016, 0x7ec: 0x1522, 0x7ed: 0x084a, 0x7ee: 0x08e2, 0x7ef: 0x094e,\n\t0x7f0: 0x0d86, 0x7f1: 0x0e7a, 0x7f2: 0x0fc6, 0x7f3: 0x10ea, 0x7f4: 0x1272, 0x7f5: 0x1386,\n\t0x7f6: 0x139e, 0x7f7: 0x14c2, 0x7f8: 0x15ea, 0x7f9: 0x169e, 0x7fa: 0x16ba, 0x7fb: 0x1126,\n\t0x7fc: 0x1166, 0x7fd: 0x121e, 0x7fe: 0x133e, 0x7ff: 0x1576,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x16c6, 0x801: 0x1446, 0x802: 0x0ac2, 0x803: 0x0c36, 0x804: 0x11d6, 0x805: 0x1296,\n\t0x806: 0x0ffa, 0x807: 0x112e, 0x808: 0x1492, 0x809: 0x15e2, 0x80a: 0x0abe, 0x80b: 0x0b8a,\n\t0x80c: 0x0e72, 0x80d: 0x0f26, 0x80e: 0x0f5a, 0x80f: 0x120e, 0x810: 0x1236, 0x811: 0x15a2,\n\t0x812: 0x094a, 0x813: 0x12a2, 0x814: 0x08ee, 0x815: 0x08ea, 0x816: 0x1192, 0x817: 0x1222,\n\t0x818: 0x1356, 0x819: 0x15aa, 0x81a: 0x1462, 0x81b: 0x0d22, 0x81c: 0x0e6e, 0x81d: 0x1452,\n\t0x81e: 0x07f2, 0x81f: 0x0b5e, 0x820: 0x0c8e, 0x821: 0x102a, 0x822: 0x10aa, 0x823: 0x096e,\n\t0x824: 0x1136, 0x825: 0x085a, 0x826: 0x0c72, 0x827: 0x07d2, 0x828: 0x0ee6, 0x829: 0x0d9e,\n\t0x82a: 0x120a, 0x82b: 0x09c2, 0x82c: 0x0aae, 0x82d: 0x10f6, 0x82e: 0x135e, 0x82f: 0x1436,\n\t0x830: 0x0eb2, 0x831: 0x14f2, 0x832: 0x0ede, 0x833: 0x0d32, 0x834: 0x1316, 0x835: 0x0d52,\n\t0x836: 0x10a6, 0x837: 0x0826, 0x838: 0x08a2, 0x839: 0x08e6, 0x83a: 0x0e4e, 0x83b: 0x11f6,\n\t0x83c: 0x12ee, 0x83d: 0x1442, 0x83e: 0x1556, 0x83f: 0x0956,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x0a0a, 0x841: 0x0b12, 0x842: 0x0c2a, 0x843: 0x0dba, 0x844: 0x0f76, 0x845: 0x113a,\n\t0x846: 0x1592, 0x847: 0x1676, 0x848: 0x16ca, 0x849: 0x16e2, 0x84a: 0x0932, 0x84b: 0x0dee,\n\t0x84c: 0x0e9e, 0x84d: 0x14e6, 0x84e: 0x0bf6, 0x84f: 0x0cd2, 0x850: 0x0cee, 0x851: 0x0d7e,\n\t0x852: 0x0f66, 0x853: 0x0fb2, 0x854: 0x1062, 0x855: 0x1186, 0x856: 0x122a, 0x857: 0x128e,\n\t0x858: 0x14d6, 0x859: 0x1366, 0x85a: 0x14fe, 0x85b: 0x157a, 0x85c: 0x090a, 0x85d: 0x0936,\n\t0x85e: 0x0a1e, 0x85f: 0x0fa2, 0x860: 0x13ee, 0x861: 0x1436, 0x862: 0x0c16, 0x863: 0x0c86,\n\t0x864: 0x0d4a, 0x865: 0x0eaa, 0x866: 0x11d2, 0x867: 0x101e, 0x868: 0x0836, 0x869: 0x0a7a,\n\t0x86a: 0x0b5e, 0x86b: 0x0bc2, 0x86c: 0x0c92, 0x86d: 0x103a, 0x86e: 0x1056, 0x86f: 0x1266,\n\t0x870: 0x1286, 0x871: 0x155e, 0x872: 0x15de, 0x873: 0x15ee, 0x874: 0x162a, 0x875: 0x084e,\n\t0x876: 0x117a, 0x877: 0x154a, 0x878: 0x15c6, 0x879: 0x0caa, 0x87a: 0x0812, 0x87b: 0x0872,\n\t0x87c: 0x0b62, 0x87d: 0x0b82, 0x87e: 0x0daa, 0x87f: 0x0e6e,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x0fbe, 0x881: 0x10c6, 0x882: 0x1372, 0x883: 0x1512, 0x884: 0x171e, 0x885: 0x0dde,\n\t0x886: 0x159e, 0x887: 0x092e, 0x888: 0x0e2a, 0x889: 0x0e36, 0x88a: 0x0f0a, 0x88b: 0x0f42,\n\t0x88c: 0x1046, 0x88d: 0x10a2, 0x88e: 0x1122, 0x88f: 0x1206, 0x890: 0x1636, 0x891: 0x08aa,\n\t0x892: 0x0cfe, 0x893: 0x15ae, 0x894: 0x0862, 0x895: 0x0ba6, 0x896: 0x0f2a, 0x897: 0x14da,\n\t0x898: 0x0c62, 0x899: 0x0cb2, 0x89a: 0x0e3e, 0x89b: 0x102a, 0x89c: 0x15b6, 0x89d: 0x0912,\n\t0x89e: 0x09fa, 0x89f: 0x0b92, 0x8a0: 0x0dce, 0x8a1: 0x0e1a, 0x8a2: 0x0e5a, 0x8a3: 0x0eee,\n\t0x8a4: 0x1042, 0x8a5: 0x10b6, 0x8a6: 0x1252, 0x8a7: 0x13f2, 0x8a8: 0x13fe, 0x8a9: 0x1552,\n\t0x8aa: 0x15d2, 0x8ab: 0x097e, 0x8ac: 0x0f46, 0x8ad: 0x09fe, 0x8ae: 0x0fc2, 0x8af: 0x1066,\n\t0x8b0: 0x1382, 0x8b1: 0x15ba, 0x8b2: 0x16a6, 0x8b3: 0x16ce, 0x8b4: 0x0e32, 0x8b5: 0x0f22,\n\t0x8b6: 0x12be, 0x8b7: 0x11b2, 0x8b8: 0x11be, 0x8b9: 0x11e2, 0x8ba: 0x1012, 0x8bb: 0x0f9a,\n\t0x8bc: 0x145e, 0x8bd: 0x082e, 0x8be: 0x1326, 0x8bf: 0x0916,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x0906, 0x8c1: 0x0c06, 0x8c2: 0x0d26, 0x8c3: 0x11ee, 0x8c4: 0x0b4e, 0x8c5: 0x0efe,\n\t0x8c6: 0x0dea, 0x8c7: 0x14e2, 0x8c8: 0x13e2, 0x8c9: 0x15a6, 0x8ca: 0x141e, 0x8cb: 0x0c22,\n\t0x8cc: 0x0882, 0x8cd: 0x0a56, 0x8d0: 0x0aaa,\n\t0x8d2: 0x0dda, 0x8d5: 0x08f2, 0x8d6: 0x101a, 0x8d7: 0x10de,\n\t0x8d8: 0x1142, 0x8d9: 0x115e, 0x8da: 0x1162, 0x8db: 0x1176, 0x8dc: 0x15f6, 0x8dd: 0x11e6,\n\t0x8de: 0x126a, 0x8e0: 0x138a, 0x8e2: 0x144e,\n\t0x8e5: 0x1502, 0x8e6: 0x152e,\n\t0x8ea: 0x164a, 0x8eb: 0x164e, 0x8ec: 0x1652, 0x8ed: 0x16b6, 0x8ee: 0x1526, 0x8ef: 0x15c2,\n\t0x8f0: 0x0852, 0x8f1: 0x0876, 0x8f2: 0x088a, 0x8f3: 0x0946, 0x8f4: 0x0952, 0x8f5: 0x0992,\n\t0x8f6: 0x0a46, 0x8f7: 0x0a62, 0x8f8: 0x0a6a, 0x8f9: 0x0aa6, 0x8fa: 0x0ab2, 0x8fb: 0x0b8e,\n\t0x8fc: 0x0b96, 0x8fd: 0x0c9e, 0x8fe: 0x0cc6, 0x8ff: 0x0cce,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x0ce6, 0x901: 0x0d92, 0x902: 0x0dc2, 0x903: 0x0de2, 0x904: 0x0e52, 0x905: 0x0f16,\n\t0x906: 0x0f32, 0x907: 0x0f62, 0x908: 0x0fb6, 0x909: 0x0fd6, 0x90a: 0x104a, 0x90b: 0x112a,\n\t0x90c: 0x1146, 0x90d: 0x114e, 0x90e: 0x114a, 0x90f: 0x1152, 0x910: 0x1156, 0x911: 0x115a,\n\t0x912: 0x116e, 0x913: 0x1172, 0x914: 0x1196, 0x915: 0x11aa, 0x916: 0x11c6, 0x917: 0x122a,\n\t0x918: 0x1232, 0x919: 0x123a, 0x91a: 0x124e, 0x91b: 0x1276, 0x91c: 0x12c6, 0x91d: 0x12fa,\n\t0x91e: 0x12fa, 0x91f: 0x1362, 0x920: 0x140a, 0x921: 0x1422, 0x922: 0x1456, 0x923: 0x145a,\n\t0x924: 0x149e, 0x925: 0x14a2, 0x926: 0x14fa, 0x927: 0x1502, 0x928: 0x15d6, 0x929: 0x161a,\n\t0x92a: 0x1632, 0x92b: 0x0c96, 0x92c: 0x184b, 0x92d: 0x12de,\n\t0x930: 0x07da, 0x931: 0x08de, 0x932: 0x089e, 0x933: 0x0846, 0x934: 0x0886, 0x935: 0x08b2,\n\t0x936: 0x0942, 0x937: 0x095e, 0x938: 0x0a46, 0x939: 0x0a32, 0x93a: 0x0a42, 0x93b: 0x0a5e,\n\t0x93c: 0x0aaa, 0x93d: 0x0aba, 0x93e: 0x0afe, 0x93f: 0x0b0a,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x0b26, 0x941: 0x0b36, 0x942: 0x0c1e, 0x943: 0x0c26, 0x944: 0x0c56, 0x945: 0x0c76,\n\t0x946: 0x0ca6, 0x947: 0x0cbe, 0x948: 0x0cae, 0x949: 0x0cce, 0x94a: 0x0cc2, 0x94b: 0x0ce6,\n\t0x94c: 0x0d02, 0x94d: 0x0d5a, 0x94e: 0x0d66, 0x94f: 0x0d6e, 0x950: 0x0d96, 0x951: 0x0dda,\n\t0x952: 0x0e0a, 0x953: 0x0e0e, 0x954: 0x0e22, 0x955: 0x0ea2, 0x956: 0x0eb2, 0x957: 0x0f0a,\n\t0x958: 0x0f56, 0x959: 0x0f4e, 0x95a: 0x0f62, 0x95b: 0x0f7e, 0x95c: 0x0fb6, 0x95d: 0x110e,\n\t0x95e: 0x0fda, 0x95f: 0x100e, 0x960: 0x101a, 0x961: 0x105a, 0x962: 0x1076, 0x963: 0x109a,\n\t0x964: 0x10be, 0x965: 0x10c2, 0x966: 0x10de, 0x967: 0x10e2, 0x968: 0x10f2, 0x969: 0x1106,\n\t0x96a: 0x1102, 0x96b: 0x1132, 0x96c: 0x11ae, 0x96d: 0x11c6, 0x96e: 0x11de, 0x96f: 0x1216,\n\t0x970: 0x122a, 0x971: 0x1246, 0x972: 0x1276, 0x973: 0x132a, 0x974: 0x1352, 0x975: 0x13c6,\n\t0x976: 0x140e, 0x977: 0x141a, 0x978: 0x1422, 0x979: 0x143a, 0x97a: 0x144e, 0x97b: 0x143e,\n\t0x97c: 0x1456, 0x97d: 0x1452, 0x97e: 0x144a, 0x97f: 0x145a,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x1466, 0x981: 0x14a2, 0x982: 0x14de, 0x983: 0x150e, 0x984: 0x1546, 0x985: 0x1566,\n\t0x986: 0x15b2, 0x987: 0x15d6, 0x988: 0x15f6, 0x989: 0x160a, 0x98a: 0x161a, 0x98b: 0x1626,\n\t0x98c: 0x1632, 0x98d: 0x1686, 0x98e: 0x1726, 0x98f: 0x17e2, 0x990: 0x17dd, 0x991: 0x180f,\n\t0x992: 0x0702, 0x993: 0x072a, 0x994: 0x072e, 0x995: 0x1891, 0x996: 0x18be, 0x997: 0x1936,\n\t0x998: 0x1712, 0x999: 0x1722,\n\t// Block 0x27, offset 0x9c0\n\t0x9c0: 0x07f6, 0x9c1: 0x07ee, 0x9c2: 0x07fe, 0x9c3: 0x1774, 0x9c4: 0x0842, 0x9c5: 0x0852,\n\t0x9c6: 0x0856, 0x9c7: 0x085e, 0x9c8: 0x0866, 0x9c9: 0x086a, 0x9ca: 0x0876, 0x9cb: 0x086e,\n\t0x9cc: 0x06ae, 0x9cd: 0x1788, 0x9ce: 0x088a, 0x9cf: 0x088e, 0x9d0: 0x0892, 0x9d1: 0x08ae,\n\t0x9d2: 0x1779, 0x9d3: 0x06b2, 0x9d4: 0x089a, 0x9d5: 0x08ba, 0x9d6: 0x1783, 0x9d7: 0x08ca,\n\t0x9d8: 0x08d2, 0x9d9: 0x0832, 0x9da: 0x08da, 0x9db: 0x08de, 0x9dc: 0x195e, 0x9dd: 0x08fa,\n\t0x9de: 0x0902, 0x9df: 0x06ba, 0x9e0: 0x091a, 0x9e1: 0x091e, 0x9e2: 0x0926, 0x9e3: 0x092a,\n\t0x9e4: 0x06be, 0x9e5: 0x0942, 0x9e6: 0x0946, 0x9e7: 0x0952, 0x9e8: 0x095e, 0x9e9: 0x0962,\n\t0x9ea: 0x0966, 0x9eb: 0x096e, 0x9ec: 0x098e, 0x9ed: 0x0992, 0x9ee: 0x099a, 0x9ef: 0x09aa,\n\t0x9f0: 0x09b2, 0x9f1: 0x09b6, 0x9f2: 0x09b6, 0x9f3: 0x09b6, 0x9f4: 0x1797, 0x9f5: 0x0f8e,\n\t0x9f6: 0x09ca, 0x9f7: 0x09d2, 0x9f8: 0x179c, 0x9f9: 0x09de, 0x9fa: 0x09e6, 0x9fb: 0x09ee,\n\t0x9fc: 0x0a16, 0x9fd: 0x0a02, 0x9fe: 0x0a0e, 0x9ff: 0x0a12,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x0a1a, 0xa01: 0x0a22, 0xa02: 0x0a26, 0xa03: 0x0a2e, 0xa04: 0x0a36, 0xa05: 0x0a3a,\n\t0xa06: 0x0a3a, 0xa07: 0x0a42, 0xa08: 0x0a4a, 0xa09: 0x0a4e, 0xa0a: 0x0a5a, 0xa0b: 0x0a7e,\n\t0xa0c: 0x0a62, 0xa0d: 0x0a82, 0xa0e: 0x0a66, 0xa0f: 0x0a6e, 0xa10: 0x0906, 0xa11: 0x0aca,\n\t0xa12: 0x0a92, 0xa13: 0x0a96, 0xa14: 0x0a9a, 0xa15: 0x0a8e, 0xa16: 0x0aa2, 0xa17: 0x0a9e,\n\t0xa18: 0x0ab6, 0xa19: 0x17a1, 0xa1a: 0x0ad2, 0xa1b: 0x0ad6, 0xa1c: 0x0ade, 0xa1d: 0x0aea,\n\t0xa1e: 0x0af2, 0xa1f: 0x0b0e, 0xa20: 0x17a6, 0xa21: 0x17ab, 0xa22: 0x0b1a, 0xa23: 0x0b1e,\n\t0xa24: 0x0b22, 0xa25: 0x0b16, 0xa26: 0x0b2a, 0xa27: 0x06c2, 0xa28: 0x06c6, 0xa29: 0x0b32,\n\t0xa2a: 0x0b3a, 0xa2b: 0x0b3a, 0xa2c: 0x17b0, 0xa2d: 0x0b56, 0xa2e: 0x0b5a, 0xa2f: 0x0b5e,\n\t0xa30: 0x0b66, 0xa31: 0x17b5, 0xa32: 0x0b6e, 0xa33: 0x0b72, 0xa34: 0x0c4a, 0xa35: 0x0b7a,\n\t0xa36: 0x06ca, 0xa37: 0x0b86, 0xa38: 0x0b96, 0xa39: 0x0ba2, 0xa3a: 0x0b9e, 0xa3b: 0x17bf,\n\t0xa3c: 0x0baa, 0xa3d: 0x17c4, 0xa3e: 0x0bb6, 0xa3f: 0x0bb2,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0x0bba, 0xa41: 0x0bca, 0xa42: 0x0bce, 0xa43: 0x06ce, 0xa44: 0x0bde, 0xa45: 0x0be6,\n\t0xa46: 0x0bea, 0xa47: 0x0bee, 0xa48: 0x06d2, 0xa49: 0x17c9, 0xa4a: 0x06d6, 0xa4b: 0x0c0a,\n\t0xa4c: 0x0c0e, 0xa4d: 0x0c12, 0xa4e: 0x0c1a, 0xa4f: 0x1990, 0xa50: 0x0c32, 0xa51: 0x17d3,\n\t0xa52: 0x17d3, 0xa53: 0x12d2, 0xa54: 0x0c42, 0xa55: 0x0c42, 0xa56: 0x06da, 0xa57: 0x17f6,\n\t0xa58: 0x18c8, 0xa59: 0x0c52, 0xa5a: 0x0c5a, 0xa5b: 0x06de, 0xa5c: 0x0c6e, 0xa5d: 0x0c7e,\n\t0xa5e: 0x0c82, 0xa5f: 0x0c8a, 0xa60: 0x0c9a, 0xa61: 0x06e6, 0xa62: 0x06e2, 0xa63: 0x0c9e,\n\t0xa64: 0x17d8, 0xa65: 0x0ca2, 0xa66: 0x0cb6, 0xa67: 0x0cba, 0xa68: 0x0cbe, 0xa69: 0x0cba,\n\t0xa6a: 0x0cca, 0xa6b: 0x0cce, 0xa6c: 0x0cde, 0xa6d: 0x0cd6, 0xa6e: 0x0cda, 0xa6f: 0x0ce2,\n\t0xa70: 0x0ce6, 0xa71: 0x0cea, 0xa72: 0x0cf6, 0xa73: 0x0cfa, 0xa74: 0x0d12, 0xa75: 0x0d1a,\n\t0xa76: 0x0d2a, 0xa77: 0x0d3e, 0xa78: 0x17e7, 0xa79: 0x0d3a, 0xa7a: 0x0d2e, 0xa7b: 0x0d46,\n\t0xa7c: 0x0d4e, 0xa7d: 0x0d62, 0xa7e: 0x17ec, 0xa7f: 0x0d6a,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0x0d5e, 0xa81: 0x0d56, 0xa82: 0x06ea, 0xa83: 0x0d72, 0xa84: 0x0d7a, 0xa85: 0x0d82,\n\t0xa86: 0x0d76, 0xa87: 0x06ee, 0xa88: 0x0d92, 0xa89: 0x0d9a, 0xa8a: 0x17f1, 0xa8b: 0x0dc6,\n\t0xa8c: 0x0dfa, 0xa8d: 0x0dd6, 0xa8e: 0x06fa, 0xa8f: 0x0de2, 0xa90: 0x06f6, 0xa91: 0x06f2,\n\t0xa92: 0x08be, 0xa93: 0x08c2, 0xa94: 0x0dfe, 0xa95: 0x0de6, 0xa96: 0x12a6, 0xa97: 0x075e,\n\t0xa98: 0x0e0a, 0xa99: 0x0e0e, 0xa9a: 0x0e12, 0xa9b: 0x0e26, 0xa9c: 0x0e1e, 0xa9d: 0x180a,\n\t0xa9e: 0x06fe, 0xa9f: 0x0e3a, 0xaa0: 0x0e2e, 0xaa1: 0x0e4a, 0xaa2: 0x0e52, 0xaa3: 0x1814,\n\t0xaa4: 0x0e56, 0xaa5: 0x0e42, 0xaa6: 0x0e5e, 0xaa7: 0x0702, 0xaa8: 0x0e62, 0xaa9: 0x0e66,\n\t0xaaa: 0x0e6a, 0xaab: 0x0e76, 0xaac: 0x1819, 0xaad: 0x0e7e, 0xaae: 0x0706, 0xaaf: 0x0e8a,\n\t0xab0: 0x181e, 0xab1: 0x0e8e, 0xab2: 0x070a, 0xab3: 0x0e9a, 0xab4: 0x0ea6, 0xab5: 0x0eb2,\n\t0xab6: 0x0eb6, 0xab7: 0x1823, 0xab8: 0x17ba, 0xab9: 0x1828, 0xaba: 0x0ed6, 0xabb: 0x182d,\n\t0xabc: 0x0ee2, 0xabd: 0x0eea, 0xabe: 0x0eda, 0xabf: 0x0ef6,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0x0f06, 0xac1: 0x0f16, 0xac2: 0x0f0a, 0xac3: 0x0f0e, 0xac4: 0x0f1a, 0xac5: 0x0f1e,\n\t0xac6: 0x1832, 0xac7: 0x0f02, 0xac8: 0x0f36, 0xac9: 0x0f3a, 0xaca: 0x070e, 0xacb: 0x0f4e,\n\t0xacc: 0x0f4a, 0xacd: 0x1837, 0xace: 0x0f2e, 0xacf: 0x0f6a, 0xad0: 0x183c, 0xad1: 0x1841,\n\t0xad2: 0x0f6e, 0xad3: 0x0f82, 0xad4: 0x0f7e, 0xad5: 0x0f7a, 0xad6: 0x0712, 0xad7: 0x0f86,\n\t0xad8: 0x0f96, 0xad9: 0x0f92, 0xada: 0x0f9e, 0xadb: 0x177e, 0xadc: 0x0fae, 0xadd: 0x1846,\n\t0xade: 0x0fba, 0xadf: 0x1850, 0xae0: 0x0fce, 0xae1: 0x0fda, 0xae2: 0x0fee, 0xae3: 0x1855,\n\t0xae4: 0x1002, 0xae5: 0x1006, 0xae6: 0x185a, 0xae7: 0x185f, 0xae8: 0x1022, 0xae9: 0x1032,\n\t0xaea: 0x0716, 0xaeb: 0x1036, 0xaec: 0x071a, 0xaed: 0x071a, 0xaee: 0x104e, 0xaef: 0x1052,\n\t0xaf0: 0x105a, 0xaf1: 0x105e, 0xaf2: 0x106a, 0xaf3: 0x071e, 0xaf4: 0x1082, 0xaf5: 0x1864,\n\t0xaf6: 0x109e, 0xaf7: 0x1869, 0xaf8: 0x10aa, 0xaf9: 0x17ce, 0xafa: 0x10ba, 0xafb: 0x186e,\n\t0xafc: 0x1873, 0xafd: 0x1878, 0xafe: 0x0722, 0xaff: 0x0726,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0x10f2, 0xb01: 0x1882, 0xb02: 0x187d, 0xb03: 0x1887, 0xb04: 0x188c, 0xb05: 0x10fa,\n\t0xb06: 0x10fe, 0xb07: 0x10fe, 0xb08: 0x1106, 0xb09: 0x072e, 0xb0a: 0x110a, 0xb0b: 0x0732,\n\t0xb0c: 0x0736, 0xb0d: 0x1896, 0xb0e: 0x111e, 0xb0f: 0x1126, 0xb10: 0x1132, 0xb11: 0x073a,\n\t0xb12: 0x189b, 0xb13: 0x1156, 0xb14: 0x18a0, 0xb15: 0x18a5, 0xb16: 0x1176, 0xb17: 0x118e,\n\t0xb18: 0x073e, 0xb19: 0x1196, 0xb1a: 0x119a, 0xb1b: 0x119e, 0xb1c: 0x18aa, 0xb1d: 0x18af,\n\t0xb1e: 0x18af, 0xb1f: 0x11b6, 0xb20: 0x0742, 0xb21: 0x18b4, 0xb22: 0x11ca, 0xb23: 0x11ce,\n\t0xb24: 0x0746, 0xb25: 0x18b9, 0xb26: 0x11ea, 0xb27: 0x074a, 0xb28: 0x11fa, 0xb29: 0x11f2,\n\t0xb2a: 0x1202, 0xb2b: 0x18c3, 0xb2c: 0x121a, 0xb2d: 0x074e, 0xb2e: 0x1226, 0xb2f: 0x122e,\n\t0xb30: 0x123e, 0xb31: 0x0752, 0xb32: 0x18cd, 0xb33: 0x18d2, 0xb34: 0x0756, 0xb35: 0x18d7,\n\t0xb36: 0x1256, 0xb37: 0x18dc, 0xb38: 0x1262, 0xb39: 0x126e, 0xb3a: 0x1276, 0xb3b: 0x18e1,\n\t0xb3c: 0x18e6, 0xb3d: 0x128a, 0xb3e: 0x18eb, 0xb3f: 0x1292,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x17fb, 0xb41: 0x075a, 0xb42: 0x12aa, 0xb43: 0x12ae, 0xb44: 0x0762, 0xb45: 0x12b2,\n\t0xb46: 0x0b2e, 0xb47: 0x18f0, 0xb48: 0x18f5, 0xb49: 0x1800, 0xb4a: 0x1805, 0xb4b: 0x12d2,\n\t0xb4c: 0x12d6, 0xb4d: 0x14ee, 0xb4e: 0x0766, 0xb4f: 0x1302, 0xb50: 0x12fe, 0xb51: 0x1306,\n\t0xb52: 0x093a, 0xb53: 0x130a, 0xb54: 0x130e, 0xb55: 0x1312, 0xb56: 0x131a, 0xb57: 0x18fa,\n\t0xb58: 0x1316, 0xb59: 0x131e, 0xb5a: 0x1332, 0xb5b: 0x1336, 0xb5c: 0x1322, 0xb5d: 0x133a,\n\t0xb5e: 0x134e, 0xb5f: 0x1362, 0xb60: 0x132e, 0xb61: 0x1342, 0xb62: 0x1346, 0xb63: 0x134a,\n\t0xb64: 0x18ff, 0xb65: 0x1909, 0xb66: 0x1904, 0xb67: 0x076a, 0xb68: 0x136a, 0xb69: 0x136e,\n\t0xb6a: 0x1376, 0xb6b: 0x191d, 0xb6c: 0x137a, 0xb6d: 0x190e, 0xb6e: 0x076e, 0xb6f: 0x0772,\n\t0xb70: 0x1913, 0xb71: 0x1918, 0xb72: 0x0776, 0xb73: 0x139a, 0xb74: 0x139e, 0xb75: 0x13a2,\n\t0xb76: 0x13a6, 0xb77: 0x13b2, 0xb78: 0x13ae, 0xb79: 0x13ba, 0xb7a: 0x13b6, 0xb7b: 0x13c6,\n\t0xb7c: 0x13be, 0xb7d: 0x13c2, 0xb7e: 0x13ca, 0xb7f: 0x077a,\n\t// Block 0x2e, offset 0xb80\n\t0xb80: 0x13d2, 0xb81: 0x13d6, 0xb82: 0x077e, 0xb83: 0x13e6, 0xb84: 0x13ea, 0xb85: 0x1922,\n\t0xb86: 0x13f6, 0xb87: 0x13fa, 0xb88: 0x0782, 0xb89: 0x1406, 0xb8a: 0x06b6, 0xb8b: 0x1927,\n\t0xb8c: 0x192c, 0xb8d: 0x0786, 0xb8e: 0x078a, 0xb8f: 0x1432, 0xb90: 0x144a, 0xb91: 0x1466,\n\t0xb92: 0x1476, 0xb93: 0x1931, 0xb94: 0x148a, 0xb95: 0x148e, 0xb96: 0x14a6, 0xb97: 0x14b2,\n\t0xb98: 0x193b, 0xb99: 0x178d, 0xb9a: 0x14be, 0xb9b: 0x14ba, 0xb9c: 0x14c6, 0xb9d: 0x1792,\n\t0xb9e: 0x14d2, 0xb9f: 0x14de, 0xba0: 0x1940, 0xba1: 0x1945, 0xba2: 0x151e, 0xba3: 0x152a,\n\t0xba4: 0x1532, 0xba5: 0x194a, 0xba6: 0x1536, 0xba7: 0x1562, 0xba8: 0x156e, 0xba9: 0x1572,\n\t0xbaa: 0x156a, 0xbab: 0x157e, 0xbac: 0x1582, 0xbad: 0x194f, 0xbae: 0x158e, 0xbaf: 0x078e,\n\t0xbb0: 0x1596, 0xbb1: 0x1954, 0xbb2: 0x0792, 0xbb3: 0x15ce, 0xbb4: 0x0bbe, 0xbb5: 0x15e6,\n\t0xbb6: 0x1959, 0xbb7: 0x1963, 0xbb8: 0x0796, 0xbb9: 0x079a, 0xbba: 0x160e, 0xbbb: 0x1968,\n\t0xbbc: 0x079e, 0xbbd: 0x196d, 0xbbe: 0x1626, 0xbbf: 0x1626,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc0: 0x162e, 0xbc1: 0x1972, 0xbc2: 0x1646, 0xbc3: 0x07a2, 0xbc4: 0x1656, 0xbc5: 0x1662,\n\t0xbc6: 0x166a, 0xbc7: 0x1672, 0xbc8: 0x07a6, 0xbc9: 0x1977, 0xbca: 0x1686, 0xbcb: 0x16a2,\n\t0xbcc: 0x16ae, 0xbcd: 0x07aa, 0xbce: 0x07ae, 0xbcf: 0x16b2, 0xbd0: 0x197c, 0xbd1: 0x07b2,\n\t0xbd2: 0x1981, 0xbd3: 0x1986, 0xbd4: 0x198b, 0xbd5: 0x16d6, 0xbd6: 0x07b6, 0xbd7: 0x16ea,\n\t0xbd8: 0x16f2, 0xbd9: 0x16f6, 0xbda: 0x16fe, 0xbdb: 0x1706, 0xbdc: 0x170e, 0xbdd: 0x1995,\n}\n\n// nfcIndex: 22 blocks, 1408 entries, 1408 bytes\n// Block 0 is the zero block.\nvar nfcIndex = [1408]uint8{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x2e, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x2f, 0xc7: 0x04,\n\t0xc8: 0x05, 0xca: 0x30, 0xcb: 0x31, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x32,\n\t0xd0: 0x09, 0xd1: 0x33, 0xd2: 0x34, 0xd3: 0x0a, 0xd6: 0x0b, 0xd7: 0x35,\n\t0xd8: 0x36, 0xd9: 0x0c, 0xdb: 0x37, 0xdc: 0x38, 0xdd: 0x39, 0xdf: 0x3a,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,\n\t0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a,\n\t0xf0: 0x13,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x3b, 0x121: 0x3c, 0x122: 0x3d, 0x123: 0x0d, 0x124: 0x3e, 0x125: 0x3f, 0x126: 0x40, 0x127: 0x41,\n\t0x128: 0x42, 0x129: 0x43, 0x12a: 0x44, 0x12b: 0x45, 0x12c: 0x40, 0x12d: 0x46, 0x12e: 0x47, 0x12f: 0x48,\n\t0x130: 0x44, 0x131: 0x49, 0x132: 0x4a, 0x133: 0x4b, 0x134: 0x4c, 0x135: 0x4d, 0x137: 0x4e,\n\t0x138: 0x4f, 0x139: 0x50, 0x13a: 0x51, 0x13b: 0x52, 0x13c: 0x53, 0x13d: 0x54, 0x13e: 0x55, 0x13f: 0x56,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x57, 0x142: 0x58, 0x144: 0x59, 0x145: 0x5a, 0x146: 0x5b, 0x147: 0x5c,\n\t0x14d: 0x5d,\n\t0x15c: 0x5e, 0x15f: 0x5f,\n\t0x162: 0x60, 0x164: 0x61,\n\t0x168: 0x62, 0x169: 0x63, 0x16a: 0x64, 0x16b: 0x65, 0x16c: 0x0e, 0x16d: 0x66, 0x16e: 0x67, 0x16f: 0x68,\n\t0x170: 0x69, 0x173: 0x6a, 0x177: 0x0f,\n\t0x178: 0x10, 0x179: 0x11, 0x17a: 0x12, 0x17b: 0x13, 0x17c: 0x14, 0x17d: 0x15, 0x17e: 0x16, 0x17f: 0x17,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x6b, 0x183: 0x6c, 0x184: 0x6d, 0x186: 0x6e, 0x187: 0x6f,\n\t0x188: 0x70, 0x189: 0x18, 0x18a: 0x19, 0x18b: 0x71, 0x18c: 0x72,\n\t0x1ab: 0x73,\n\t0x1b3: 0x74, 0x1b5: 0x75, 0x1b7: 0x76,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x77, 0x1c1: 0x1a, 0x1c2: 0x1b, 0x1c3: 0x1c, 0x1c4: 0x78, 0x1c5: 0x79,\n\t0x1c9: 0x7a, 0x1cc: 0x7b, 0x1cd: 0x7c,\n\t// Block 0x8, offset 0x200\n\t0x219: 0x7d, 0x21a: 0x7e, 0x21b: 0x7f,\n\t0x220: 0x80, 0x223: 0x81, 0x224: 0x82, 0x225: 0x83, 0x226: 0x84, 0x227: 0x85,\n\t0x22a: 0x86, 0x22b: 0x87, 0x22f: 0x88,\n\t0x230: 0x89, 0x231: 0x8a, 0x232: 0x8b, 0x233: 0x8c, 0x234: 0x8d, 0x235: 0x8e, 0x236: 0x8f, 0x237: 0x89,\n\t0x238: 0x8a, 0x239: 0x8b, 0x23a: 0x8c, 0x23b: 0x8d, 0x23c: 0x8e, 0x23d: 0x8f, 0x23e: 0x89, 0x23f: 0x8a,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x8b, 0x241: 0x8c, 0x242: 0x8d, 0x243: 0x8e, 0x244: 0x8f, 0x245: 0x89, 0x246: 0x8a, 0x247: 0x8b,\n\t0x248: 0x8c, 0x249: 0x8d, 0x24a: 0x8e, 0x24b: 0x8f, 0x24c: 0x89, 0x24d: 0x8a, 0x24e: 0x8b, 0x24f: 0x8c,\n\t0x250: 0x8d, 0x251: 0x8e, 0x252: 0x8f, 0x253: 0x89, 0x254: 0x8a, 0x255: 0x8b, 0x256: 0x8c, 0x257: 0x8d,\n\t0x258: 0x8e, 0x259: 0x8f, 0x25a: 0x89, 0x25b: 0x8a, 0x25c: 0x8b, 0x25d: 0x8c, 0x25e: 0x8d, 0x25f: 0x8e,\n\t0x260: 0x8f, 0x261: 0x89, 0x262: 0x8a, 0x263: 0x8b, 0x264: 0x8c, 0x265: 0x8d, 0x266: 0x8e, 0x267: 0x8f,\n\t0x268: 0x89, 0x269: 0x8a, 0x26a: 0x8b, 0x26b: 0x8c, 0x26c: 0x8d, 0x26d: 0x8e, 0x26e: 0x8f, 0x26f: 0x89,\n\t0x270: 0x8a, 0x271: 0x8b, 0x272: 0x8c, 0x273: 0x8d, 0x274: 0x8e, 0x275: 0x8f, 0x276: 0x89, 0x277: 0x8a,\n\t0x278: 0x8b, 0x279: 0x8c, 0x27a: 0x8d, 0x27b: 0x8e, 0x27c: 0x8f, 0x27d: 0x89, 0x27e: 0x8a, 0x27f: 0x8b,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x8c, 0x281: 0x8d, 0x282: 0x8e, 0x283: 0x8f, 0x284: 0x89, 0x285: 0x8a, 0x286: 0x8b, 0x287: 0x8c,\n\t0x288: 0x8d, 0x289: 0x8e, 0x28a: 0x8f, 0x28b: 0x89, 0x28c: 0x8a, 0x28d: 0x8b, 0x28e: 0x8c, 0x28f: 0x8d,\n\t0x290: 0x8e, 0x291: 0x8f, 0x292: 0x89, 0x293: 0x8a, 0x294: 0x8b, 0x295: 0x8c, 0x296: 0x8d, 0x297: 0x8e,\n\t0x298: 0x8f, 0x299: 0x89, 0x29a: 0x8a, 0x29b: 0x8b, 0x29c: 0x8c, 0x29d: 0x8d, 0x29e: 0x8e, 0x29f: 0x8f,\n\t0x2a0: 0x89, 0x2a1: 0x8a, 0x2a2: 0x8b, 0x2a3: 0x8c, 0x2a4: 0x8d, 0x2a5: 0x8e, 0x2a6: 0x8f, 0x2a7: 0x89,\n\t0x2a8: 0x8a, 0x2a9: 0x8b, 0x2aa: 0x8c, 0x2ab: 0x8d, 0x2ac: 0x8e, 0x2ad: 0x8f, 0x2ae: 0x89, 0x2af: 0x8a,\n\t0x2b0: 0x8b, 0x2b1: 0x8c, 0x2b2: 0x8d, 0x2b3: 0x8e, 0x2b4: 0x8f, 0x2b5: 0x89, 0x2b6: 0x8a, 0x2b7: 0x8b,\n\t0x2b8: 0x8c, 0x2b9: 0x8d, 0x2ba: 0x8e, 0x2bb: 0x8f, 0x2bc: 0x89, 0x2bd: 0x8a, 0x2be: 0x8b, 0x2bf: 0x8c,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x8d, 0x2c1: 0x8e, 0x2c2: 0x8f, 0x2c3: 0x89, 0x2c4: 0x8a, 0x2c5: 0x8b, 0x2c6: 0x8c, 0x2c7: 0x8d,\n\t0x2c8: 0x8e, 0x2c9: 0x8f, 0x2ca: 0x89, 0x2cb: 0x8a, 0x2cc: 0x8b, 0x2cd: 0x8c, 0x2ce: 0x8d, 0x2cf: 0x8e,\n\t0x2d0: 0x8f, 0x2d1: 0x89, 0x2d2: 0x8a, 0x2d3: 0x8b, 0x2d4: 0x8c, 0x2d5: 0x8d, 0x2d6: 0x8e, 0x2d7: 0x8f,\n\t0x2d8: 0x89, 0x2d9: 0x8a, 0x2da: 0x8b, 0x2db: 0x8c, 0x2dc: 0x8d, 0x2dd: 0x8e, 0x2de: 0x90,\n\t// Block 0xc, offset 0x300\n\t0x324: 0x1d, 0x325: 0x1e, 0x326: 0x1f, 0x327: 0x20,\n\t0x328: 0x21, 0x329: 0x22, 0x32a: 0x23, 0x32b: 0x24, 0x32c: 0x91, 0x32d: 0x92, 0x32e: 0x93,\n\t0x331: 0x94, 0x332: 0x95, 0x333: 0x96, 0x334: 0x97,\n\t0x338: 0x98, 0x339: 0x99, 0x33a: 0x9a, 0x33b: 0x9b, 0x33e: 0x9c, 0x33f: 0x9d,\n\t// Block 0xd, offset 0x340\n\t0x347: 0x9e,\n\t0x34b: 0x9f, 0x34d: 0xa0,\n\t0x368: 0xa1, 0x36b: 0xa2,\n\t0x374: 0xa3,\n\t0x37a: 0xa4, 0x37b: 0xa5, 0x37d: 0xa6, 0x37e: 0xa7,\n\t// Block 0xe, offset 0x380\n\t0x381: 0xa8, 0x382: 0xa9, 0x384: 0xaa, 0x385: 0x84, 0x387: 0xab,\n\t0x388: 0xac, 0x38b: 0xad, 0x38c: 0xae, 0x38d: 0xaf,\n\t0x391: 0xb0, 0x392: 0xb1, 0x393: 0xb2, 0x396: 0xb3, 0x397: 0xb4,\n\t0x398: 0x75, 0x39a: 0xb5, 0x39c: 0xb6,\n\t0x3a0: 0xb7, 0x3a4: 0xb8, 0x3a5: 0xb9, 0x3a7: 0xba,\n\t0x3a8: 0xbb, 0x3a9: 0xbc, 0x3aa: 0xbd,\n\t0x3b0: 0x75, 0x3b5: 0xbe, 0x3b6: 0xbf,\n\t0x3bd: 0xc0,\n\t// Block 0xf, offset 0x3c0\n\t0x3eb: 0xc1, 0x3ec: 0xc2,\n\t0x3ff: 0xc3,\n\t// Block 0x10, offset 0x400\n\t0x432: 0xc4,\n\t// Block 0x11, offset 0x440\n\t0x445: 0xc5, 0x446: 0xc6, 0x447: 0xc7,\n\t0x449: 0xc8,\n\t// Block 0x12, offset 0x480\n\t0x480: 0xc9, 0x482: 0xca, 0x484: 0xc2,\n\t0x48a: 0xcb, 0x48b: 0xcc,\n\t0x493: 0xcd,\n\t0x4a3: 0xce, 0x4a5: 0xcf,\n\t// Block 0x13, offset 0x4c0\n\t0x4c8: 0xd0,\n\t// Block 0x14, offset 0x500\n\t0x520: 0x25, 0x521: 0x26, 0x522: 0x27, 0x523: 0x28, 0x524: 0x29, 0x525: 0x2a, 0x526: 0x2b, 0x527: 0x2c,\n\t0x528: 0x2d,\n\t// Block 0x15, offset 0x540\n\t0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,\n\t0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,\n\t0x56f: 0x12,\n}\n\n// nfcSparseOffset: 163 entries, 326 bytes\nvar nfcSparseOffset = []uint16{0x0, 0x5, 0x9, 0xb, 0xd, 0x18, 0x28, 0x2a, 0x2f, 0x3a, 0x49, 0x56, 0x5e, 0x63, 0x68, 0x6a, 0x6e, 0x76, 0x7d, 0x80, 0x88, 0x8c, 0x90, 0x92, 0x94, 0x9d, 0xa1, 0xa8, 0xad, 0xb0, 0xba, 0xbd, 0xc4, 0xcc, 0xcf, 0xd1, 0xd4, 0xd6, 0xdb, 0xec, 0xf8, 0xfa, 0x100, 0x102, 0x104, 0x106, 0x108, 0x10a, 0x10c, 0x10f, 0x112, 0x114, 0x117, 0x11a, 0x11e, 0x124, 0x12b, 0x134, 0x136, 0x139, 0x13b, 0x146, 0x14a, 0x158, 0x15b, 0x161, 0x167, 0x172, 0x176, 0x178, 0x17a, 0x17c, 0x17e, 0x180, 0x186, 0x18a, 0x18c, 0x18e, 0x196, 0x19a, 0x19d, 0x19f, 0x1a1, 0x1a4, 0x1a7, 0x1a9, 0x1ab, 0x1ad, 0x1af, 0x1b5, 0x1b8, 0x1ba, 0x1c1, 0x1c7, 0x1cd, 0x1d5, 0x1db, 0x1e1, 0x1e7, 0x1eb, 0x1f9, 0x202, 0x205, 0x208, 0x20a, 0x20d, 0x20f, 0x213, 0x218, 0x21a, 0x21c, 0x221, 0x227, 0x229, 0x22b, 0x22d, 0x233, 0x236, 0x238, 0x23a, 0x23c, 0x242, 0x246, 0x24a, 0x252, 0x259, 0x25c, 0x25f, 0x261, 0x264, 0x26c, 0x270, 0x277, 0x27a, 0x280, 0x282, 0x285, 0x287, 0x28a, 0x28f, 0x291, 0x293, 0x295, 0x297, 0x299, 0x29c, 0x29e, 0x2a0, 0x2a2, 0x2a4, 0x2a6, 0x2a8, 0x2b5, 0x2bf, 0x2c1, 0x2c3, 0x2c9, 0x2cb, 0x2cd, 0x2cf, 0x2d3, 0x2d5, 0x2d8}\n\n// nfcSparseValues: 730 entries, 2920 bytes\nvar nfcSparseValues = [730]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0xa100, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8100, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8100, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8100, lo: 0xb8, hi: 0xb8},\n\t// Block 0x1, offset 0x5\n\t{value: 0x0091, lo: 0x03},\n\t{value: 0x4823, lo: 0xa0, hi: 0xa1},\n\t{value: 0x4855, lo: 0xaf, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb7, hi: 0xb7},\n\t// Block 0x2, offset 0x9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t// Block 0x3, offset 0xb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x98, hi: 0x9d},\n\t// Block 0x4, offset 0xd\n\t{value: 0x0006, lo: 0x0a},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x85, hi: 0x85},\n\t{value: 0xa000, lo: 0x89, hi: 0x89},\n\t{value: 0x4981, lo: 0x8a, hi: 0x8a},\n\t{value: 0x499f, lo: 0x8b, hi: 0x8b},\n\t{value: 0x3808, lo: 0x8c, hi: 0x8c},\n\t{value: 0x3820, lo: 0x8d, hi: 0x8d},\n\t{value: 0x49b7, lo: 0x8e, hi: 0x8e},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x383e, lo: 0x93, hi: 0x94},\n\t// Block 0x5, offset 0x18\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0xa000, lo: 0x8d, hi: 0x8d},\n\t{value: 0x38e6, lo: 0x90, hi: 0x90},\n\t{value: 0x38f2, lo: 0x91, hi: 0x91},\n\t{value: 0x38e0, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x96, hi: 0x96},\n\t{value: 0x3958, lo: 0x97, hi: 0x97},\n\t{value: 0x3922, lo: 0x9c, hi: 0x9c},\n\t{value: 0x390a, lo: 0x9d, hi: 0x9d},\n\t{value: 0x3934, lo: 0x9e, hi: 0x9e},\n\t{value: 0xa000, lo: 0xb4, hi: 0xb5},\n\t{value: 0x395e, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3964, lo: 0xb7, hi: 0xb7},\n\t// Block 0x6, offset 0x28\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0x83, hi: 0x87},\n\t// Block 0x7, offset 0x2a\n\t{value: 0x0001, lo: 0x04},\n\t{value: 0x8114, lo: 0x81, hi: 0x82},\n\t{value: 0x8133, lo: 0x84, hi: 0x84},\n\t{value: 0x812e, lo: 0x85, hi: 0x85},\n\t{value: 0x810e, lo: 0x87, hi: 0x87},\n\t// Block 0x8, offset 0x2f\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8133, lo: 0x90, hi: 0x97},\n\t{value: 0x811a, lo: 0x98, hi: 0x98},\n\t{value: 0x811b, lo: 0x99, hi: 0x99},\n\t{value: 0x811c, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3982, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3988, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3994, lo: 0xa4, hi: 0xa4},\n\t{value: 0x398e, lo: 0xa5, hi: 0xa5},\n\t{value: 0x399a, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xa7, hi: 0xa7},\n\t// Block 0x9, offset 0x3a\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x39ac, lo: 0x80, hi: 0x80},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0x39a0, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x39a6, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x95, hi: 0x95},\n\t{value: 0x8133, lo: 0x96, hi: 0x9c},\n\t{value: 0x8133, lo: 0x9f, hi: 0xa2},\n\t{value: 0x812e, lo: 0xa3, hi: 0xa3},\n\t{value: 0x8133, lo: 0xa4, hi: 0xa4},\n\t{value: 0x8133, lo: 0xa7, hi: 0xa8},\n\t{value: 0x812e, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8133, lo: 0xab, hi: 0xac},\n\t{value: 0x812e, lo: 0xad, hi: 0xad},\n\t// Block 0xa, offset 0x49\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x8120, lo: 0x91, hi: 0x91},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb0},\n\t{value: 0x812e, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8133, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812e, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8133, lo: 0xb5, hi: 0xb6},\n\t{value: 0x812e, lo: 0xb7, hi: 0xb9},\n\t{value: 0x8133, lo: 0xba, hi: 0xba},\n\t{value: 0x812e, lo: 0xbb, hi: 0xbc},\n\t{value: 0x8133, lo: 0xbd, hi: 0xbd},\n\t{value: 0x812e, lo: 0xbe, hi: 0xbe},\n\t{value: 0x8133, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb, offset 0x56\n\t{value: 0x0005, lo: 0x07},\n\t{value: 0x8133, lo: 0x80, hi: 0x80},\n\t{value: 0x8133, lo: 0x81, hi: 0x81},\n\t{value: 0x812e, lo: 0x82, hi: 0x83},\n\t{value: 0x812e, lo: 0x84, hi: 0x85},\n\t{value: 0x812e, lo: 0x86, hi: 0x87},\n\t{value: 0x812e, lo: 0x88, hi: 0x89},\n\t{value: 0x8133, lo: 0x8a, hi: 0x8a},\n\t// Block 0xc, offset 0x5e\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8133, lo: 0xab, hi: 0xb1},\n\t{value: 0x812e, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8133, lo: 0xb3, hi: 0xb3},\n\t{value: 0x812e, lo: 0xbd, hi: 0xbd},\n\t// Block 0xd, offset 0x63\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8133, lo: 0x96, hi: 0x99},\n\t{value: 0x8133, lo: 0x9b, hi: 0xa3},\n\t{value: 0x8133, lo: 0xa5, hi: 0xa7},\n\t{value: 0x8133, lo: 0xa9, hi: 0xad},\n\t// Block 0xe, offset 0x68\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0x99, hi: 0x9b},\n\t// Block 0xf, offset 0x6a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8133, lo: 0x98, hi: 0x98},\n\t{value: 0x812e, lo: 0x99, hi: 0x9b},\n\t{value: 0x8133, lo: 0x9c, hi: 0x9f},\n\t// Block 0x10, offset 0x6e\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0xa8, hi: 0xa8},\n\t{value: 0x4019, lo: 0xa9, hi: 0xa9},\n\t{value: 0xa000, lo: 0xb0, hi: 0xb0},\n\t{value: 0x4021, lo: 0xb1, hi: 0xb1},\n\t{value: 0xa000, lo: 0xb3, hi: 0xb3},\n\t{value: 0x4029, lo: 0xb4, hi: 0xb4},\n\t{value: 0x9903, lo: 0xbc, hi: 0xbc},\n\t// Block 0x11, offset 0x76\n\t{value: 0x0008, lo: 0x06},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8133, lo: 0x91, hi: 0x91},\n\t{value: 0x812e, lo: 0x92, hi: 0x92},\n\t{value: 0x8133, lo: 0x93, hi: 0x93},\n\t{value: 0x8133, lo: 0x94, hi: 0x94},\n\t{value: 0x465d, lo: 0x98, hi: 0x9f},\n\t// Block 0x12, offset 0x7d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8103, lo: 0xbc, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x13, offset 0x80\n\t{value: 0x0008, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2dd5, lo: 0x8b, hi: 0x8c},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x469d, lo: 0x9c, hi: 0x9d},\n\t{value: 0x46ad, lo: 0x9f, hi: 0x9f},\n\t{value: 0x8133, lo: 0xbe, hi: 0xbe},\n\t// Block 0x14, offset 0x88\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x46d5, lo: 0xb3, hi: 0xb3},\n\t{value: 0x46dd, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8103, lo: 0xbc, hi: 0xbc},\n\t// Block 0x15, offset 0x8c\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x46b5, lo: 0x99, hi: 0x9b},\n\t{value: 0x46cd, lo: 0x9e, hi: 0x9e},\n\t// Block 0x16, offset 0x90\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8103, lo: 0xbc, hi: 0xbc},\n\t// Block 0x17, offset 0x92\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t// Block 0x18, offset 0x94\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2ded, lo: 0x88, hi: 0x88},\n\t{value: 0x2de5, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2df5, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x96, hi: 0x97},\n\t{value: 0x46e5, lo: 0x9c, hi: 0x9c},\n\t{value: 0x46ed, lo: 0x9d, hi: 0x9d},\n\t// Block 0x19, offset 0x9d\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x2dfd, lo: 0x94, hi: 0x94},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1a, offset 0xa1\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2e05, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2e15, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2e0d, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1b, offset 0xa8\n\t{value: 0x1801, lo: 0x04},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x4031, lo: 0x88, hi: 0x88},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8121, lo: 0x95, hi: 0x96},\n\t// Block 0x1c, offset 0xad\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8103, lo: 0xbc, hi: 0xbc},\n\t{value: 0xa000, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1d, offset 0xb0\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x2e1d, lo: 0x80, hi: 0x80},\n\t{value: 0x9900, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x2e25, lo: 0x87, hi: 0x87},\n\t{value: 0x2e2d, lo: 0x88, hi: 0x88},\n\t{value: 0x3091, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2f19, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x95, hi: 0x96},\n\t// Block 0x1e, offset 0xba\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0xbb, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1f, offset 0xbd\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2e35, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2e45, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2e3d, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x20, offset 0xc4\n\t{value: 0x6ab3, lo: 0x07},\n\t{value: 0x9905, lo: 0x8a, hi: 0x8a},\n\t{value: 0x9900, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x4039, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3099, lo: 0x9c, hi: 0x9c},\n\t{value: 0x2f24, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2e4d, lo: 0x9e, hi: 0x9f},\n\t// Block 0x21, offset 0xcc\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8123, lo: 0xb8, hi: 0xb9},\n\t{value: 0x8105, lo: 0xba, hi: 0xba},\n\t// Block 0x22, offset 0xcf\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8124, lo: 0x88, hi: 0x8b},\n\t// Block 0x23, offset 0xd1\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8125, lo: 0xb8, hi: 0xb9},\n\t{value: 0x8105, lo: 0xba, hi: 0xba},\n\t// Block 0x24, offset 0xd4\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8126, lo: 0x88, hi: 0x8b},\n\t// Block 0x25, offset 0xd6\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x812e, lo: 0x98, hi: 0x99},\n\t{value: 0x812e, lo: 0xb5, hi: 0xb5},\n\t{value: 0x812e, lo: 0xb7, hi: 0xb7},\n\t{value: 0x812c, lo: 0xb9, hi: 0xb9},\n\t// Block 0x26, offset 0xdb\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x2774, lo: 0x83, hi: 0x83},\n\t{value: 0x277b, lo: 0x8d, hi: 0x8d},\n\t{value: 0x2782, lo: 0x92, hi: 0x92},\n\t{value: 0x2789, lo: 0x97, hi: 0x97},\n\t{value: 0x2790, lo: 0x9c, hi: 0x9c},\n\t{value: 0x276d, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8127, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8128, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4bc5, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8129, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4bce, lo: 0xb5, hi: 0xb5},\n\t{value: 0x46f5, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8200, lo: 0xb7, hi: 0xb7},\n\t{value: 0x46fd, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8200, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8128, lo: 0xba, hi: 0xbd},\n\t// Block 0x27, offset 0xec\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x8128, lo: 0x80, hi: 0x80},\n\t{value: 0x4bd7, lo: 0x81, hi: 0x81},\n\t{value: 0x8133, lo: 0x82, hi: 0x83},\n\t{value: 0x8105, lo: 0x84, hi: 0x84},\n\t{value: 0x8133, lo: 0x86, hi: 0x87},\n\t{value: 0x279e, lo: 0x93, hi: 0x93},\n\t{value: 0x27a5, lo: 0x9d, hi: 0x9d},\n\t{value: 0x27ac, lo: 0xa2, hi: 0xa2},\n\t{value: 0x27b3, lo: 0xa7, hi: 0xa7},\n\t{value: 0x27ba, lo: 0xac, hi: 0xac},\n\t{value: 0x2797, lo: 0xb9, hi: 0xb9},\n\t// Block 0x28, offset 0xf8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0x86, hi: 0x86},\n\t// Block 0x29, offset 0xfa\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x2e55, lo: 0xa6, hi: 0xa6},\n\t{value: 0x9900, lo: 0xae, hi: 0xae},\n\t{value: 0x8103, lo: 0xb7, hi: 0xb7},\n\t{value: 0x8105, lo: 0xb9, hi: 0xba},\n\t// Block 0x2a, offset 0x100\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0x8d, hi: 0x8d},\n\t// Block 0x2b, offset 0x102\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x80, hi: 0x92},\n\t// Block 0x2c, offset 0x104\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xb900, lo: 0xa1, hi: 0xb5},\n\t// Block 0x2d, offset 0x106\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0xa8, hi: 0xbf},\n\t// Block 0x2e, offset 0x108\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0x80, hi: 0x82},\n\t// Block 0x2f, offset 0x10a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0x9d, hi: 0x9f},\n\t// Block 0x30, offset 0x10c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x94, hi: 0x95},\n\t{value: 0x8105, lo: 0xb4, hi: 0xb4},\n\t// Block 0x31, offset 0x10f\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x92, hi: 0x92},\n\t{value: 0x8133, lo: 0x9d, hi: 0x9d},\n\t// Block 0x32, offset 0x112\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xa9, hi: 0xa9},\n\t// Block 0x33, offset 0x114\n\t{value: 0x0004, lo: 0x02},\n\t{value: 0x812f, lo: 0xb9, hi: 0xba},\n\t{value: 0x812e, lo: 0xbb, hi: 0xbb},\n\t// Block 0x34, offset 0x117\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8133, lo: 0x97, hi: 0x97},\n\t{value: 0x812e, lo: 0x98, hi: 0x98},\n\t// Block 0x35, offset 0x11a\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8105, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8133, lo: 0xb5, hi: 0xbc},\n\t{value: 0x812e, lo: 0xbf, hi: 0xbf},\n\t// Block 0x36, offset 0x11e\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb4},\n\t{value: 0x812e, lo: 0xb5, hi: 0xba},\n\t{value: 0x8133, lo: 0xbb, hi: 0xbc},\n\t{value: 0x812e, lo: 0xbd, hi: 0xbd},\n\t{value: 0x812e, lo: 0xbf, hi: 0xbf},\n\t// Block 0x37, offset 0x124\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x812e, lo: 0x80, hi: 0x80},\n\t{value: 0x8133, lo: 0x81, hi: 0x82},\n\t{value: 0x812e, lo: 0x83, hi: 0x84},\n\t{value: 0x8133, lo: 0x85, hi: 0x89},\n\t{value: 0x812e, lo: 0x8a, hi: 0x8a},\n\t{value: 0x8133, lo: 0x8b, hi: 0x8e},\n\t// Block 0x38, offset 0x12b\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x2e9d, lo: 0x80, hi: 0x80},\n\t{value: 0x2ea5, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x82, hi: 0x82},\n\t{value: 0x2ead, lo: 0x83, hi: 0x83},\n\t{value: 0x8105, lo: 0x84, hi: 0x84},\n\t{value: 0x8133, lo: 0xab, hi: 0xab},\n\t{value: 0x812e, lo: 0xac, hi: 0xac},\n\t{value: 0x8133, lo: 0xad, hi: 0xb3},\n\t// Block 0x39, offset 0x134\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xaa, hi: 0xab},\n\t// Block 0x3a, offset 0x136\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8103, lo: 0xa6, hi: 0xa6},\n\t{value: 0x8105, lo: 0xb2, hi: 0xb3},\n\t// Block 0x3b, offset 0x139\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8103, lo: 0xb7, hi: 0xb7},\n\t// Block 0x3c, offset 0x13b\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8133, lo: 0x90, hi: 0x92},\n\t{value: 0x8101, lo: 0x94, hi: 0x94},\n\t{value: 0x812e, lo: 0x95, hi: 0x99},\n\t{value: 0x8133, lo: 0x9a, hi: 0x9b},\n\t{value: 0x812e, lo: 0x9c, hi: 0x9f},\n\t{value: 0x8133, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8101, lo: 0xa2, hi: 0xa8},\n\t{value: 0x812e, lo: 0xad, hi: 0xad},\n\t{value: 0x8133, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8133, lo: 0xb8, hi: 0xb9},\n\t// Block 0x3d, offset 0x146\n\t{value: 0x0004, lo: 0x03},\n\t{value: 0x052a, lo: 0x80, hi: 0x81},\n\t{value: 0x8100, lo: 0x97, hi: 0x97},\n\t{value: 0x8100, lo: 0xbe, hi: 0xbe},\n\t// Block 0x3e, offset 0x14a\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x8133, lo: 0x90, hi: 0x91},\n\t{value: 0x8101, lo: 0x92, hi: 0x93},\n\t{value: 0x8133, lo: 0x94, hi: 0x97},\n\t{value: 0x8101, lo: 0x98, hi: 0x9a},\n\t{value: 0x8133, lo: 0x9b, hi: 0x9c},\n\t{value: 0x8133, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8101, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8133, lo: 0xa7, hi: 0xa7},\n\t{value: 0x812e, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8133, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8101, lo: 0xaa, hi: 0xab},\n\t{value: 0x812e, lo: 0xac, hi: 0xaf},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb0},\n\t// Block 0x3f, offset 0x158\n\t{value: 0x43bc, lo: 0x02},\n\t{value: 0x023c, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0057, lo: 0xaa, hi: 0xab},\n\t// Block 0x40, offset 0x15b\n\t{value: 0x0007, lo: 0x05},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t{value: 0x3cfa, lo: 0x9a, hi: 0x9b},\n\t{value: 0x3d08, lo: 0xae, hi: 0xae},\n\t// Block 0x41, offset 0x161\n\t{value: 0x000e, lo: 0x05},\n\t{value: 0x3d0f, lo: 0x8d, hi: 0x8e},\n\t{value: 0x3d16, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t// Block 0x42, offset 0x167\n\t{value: 0x62c7, lo: 0x0a},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0x3d24, lo: 0x84, hi: 0x84},\n\t{value: 0xa000, lo: 0x88, hi: 0x88},\n\t{value: 0x3d2b, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0x3d32, lo: 0x8c, hi: 0x8c},\n\t{value: 0xa000, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3d39, lo: 0xa4, hi: 0xa5},\n\t{value: 0x3d40, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xbc, hi: 0xbc},\n\t// Block 0x43, offset 0x172\n\t{value: 0x0007, lo: 0x03},\n\t{value: 0x3da9, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3dd3, lo: 0xa2, hi: 0xa3},\n\t{value: 0x3dfd, lo: 0xaa, hi: 0xad},\n\t// Block 0x44, offset 0x176\n\t{value: 0x0004, lo: 0x01},\n\t{value: 0x0586, lo: 0xa9, hi: 0xaa},\n\t// Block 0x45, offset 0x178\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x461e, lo: 0x9c, hi: 0x9c},\n\t// Block 0x46, offset 0x17a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xaf, hi: 0xb1},\n\t// Block 0x47, offset 0x17c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xbf, hi: 0xbf},\n\t// Block 0x48, offset 0x17e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xa0, hi: 0xbf},\n\t// Block 0x49, offset 0x180\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x812d, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8132, lo: 0xab, hi: 0xab},\n\t{value: 0x8134, lo: 0xac, hi: 0xac},\n\t{value: 0x812f, lo: 0xad, hi: 0xad},\n\t{value: 0x8130, lo: 0xae, hi: 0xaf},\n\t// Block 0x4a, offset 0x186\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x4be0, lo: 0xb3, hi: 0xb3},\n\t{value: 0x4be0, lo: 0xb5, hi: 0xb6},\n\t{value: 0x4be0, lo: 0xba, hi: 0xbf},\n\t// Block 0x4b, offset 0x18a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x4be0, lo: 0x8f, hi: 0xa3},\n\t// Block 0x4c, offset 0x18c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xae, hi: 0xbe},\n\t// Block 0x4d, offset 0x18e\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x8100, lo: 0x84, hi: 0x84},\n\t{value: 0x8100, lo: 0x87, hi: 0x87},\n\t{value: 0x8100, lo: 0x90, hi: 0x90},\n\t{value: 0x8100, lo: 0x9e, hi: 0x9e},\n\t{value: 0x8100, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8100, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8100, lo: 0xbb, hi: 0xbb},\n\t// Block 0x4e, offset 0x196\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8100, lo: 0x80, hi: 0x80},\n\t{value: 0x8100, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8100, lo: 0x8e, hi: 0x8e},\n\t// Block 0x4f, offset 0x19a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8133, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8133, lo: 0xb4, hi: 0xbd},\n\t// Block 0x50, offset 0x19d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0x9e, hi: 0x9f},\n\t// Block 0x51, offset 0x19f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb1},\n\t// Block 0x52, offset 0x1a1\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x86, hi: 0x86},\n\t{value: 0x8105, lo: 0xac, hi: 0xac},\n\t// Block 0x53, offset 0x1a4\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x84, hi: 0x84},\n\t{value: 0x8133, lo: 0xa0, hi: 0xb1},\n\t// Block 0x54, offset 0x1a7\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0xab, hi: 0xad},\n\t// Block 0x55, offset 0x1a9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x93, hi: 0x93},\n\t// Block 0x56, offset 0x1ab\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8103, lo: 0xb3, hi: 0xb3},\n\t// Block 0x57, offset 0x1ad\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x80, hi: 0x80},\n\t// Block 0x58, offset 0x1af\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8133, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812e, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8133, lo: 0xb7, hi: 0xb8},\n\t{value: 0x8133, lo: 0xbe, hi: 0xbf},\n\t// Block 0x59, offset 0x1b5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8133, lo: 0x81, hi: 0x81},\n\t{value: 0x8105, lo: 0xb6, hi: 0xb6},\n\t// Block 0x5a, offset 0x1b8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xad, hi: 0xad},\n\t// Block 0x5b, offset 0x1ba\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe500, lo: 0x80, hi: 0x80},\n\t{value: 0xc600, lo: 0x81, hi: 0x9b},\n\t{value: 0xe500, lo: 0x9c, hi: 0x9c},\n\t{value: 0xc600, lo: 0x9d, hi: 0xb7},\n\t{value: 0xe500, lo: 0xb8, hi: 0xb8},\n\t{value: 0xc600, lo: 0xb9, hi: 0xbf},\n\t// Block 0x5c, offset 0x1c1\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x93},\n\t{value: 0xe500, lo: 0x94, hi: 0x94},\n\t{value: 0xc600, lo: 0x95, hi: 0xaf},\n\t{value: 0xe500, lo: 0xb0, hi: 0xb0},\n\t{value: 0xc600, lo: 0xb1, hi: 0xbf},\n\t// Block 0x5d, offset 0x1c7\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8b},\n\t{value: 0xe500, lo: 0x8c, hi: 0x8c},\n\t{value: 0xc600, lo: 0x8d, hi: 0xa7},\n\t{value: 0xe500, lo: 0xa8, hi: 0xa8},\n\t{value: 0xc600, lo: 0xa9, hi: 0xbf},\n\t// Block 0x5e, offset 0x1cd\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xc600, lo: 0x80, hi: 0x83},\n\t{value: 0xe500, lo: 0x84, hi: 0x84},\n\t{value: 0xc600, lo: 0x85, hi: 0x9f},\n\t{value: 0xe500, lo: 0xa0, hi: 0xa0},\n\t{value: 0xc600, lo: 0xa1, hi: 0xbb},\n\t{value: 0xe500, lo: 0xbc, hi: 0xbc},\n\t{value: 0xc600, lo: 0xbd, hi: 0xbf},\n\t// Block 0x5f, offset 0x1d5\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x97},\n\t{value: 0xe500, lo: 0x98, hi: 0x98},\n\t{value: 0xc600, lo: 0x99, hi: 0xb3},\n\t{value: 0xe500, lo: 0xb4, hi: 0xb4},\n\t{value: 0xc600, lo: 0xb5, hi: 0xbf},\n\t// Block 0x60, offset 0x1db\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8f},\n\t{value: 0xe500, lo: 0x90, hi: 0x90},\n\t{value: 0xc600, lo: 0x91, hi: 0xab},\n\t{value: 0xe500, lo: 0xac, hi: 0xac},\n\t{value: 0xc600, lo: 0xad, hi: 0xbf},\n\t// Block 0x61, offset 0x1e1\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t{value: 0xe500, lo: 0xa4, hi: 0xa4},\n\t{value: 0xc600, lo: 0xa5, hi: 0xbf},\n\t// Block 0x62, offset 0x1e7\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t// Block 0x63, offset 0x1eb\n\t{value: 0x0006, lo: 0x0d},\n\t{value: 0x44d1, lo: 0x9d, hi: 0x9d},\n\t{value: 0x8116, lo: 0x9e, hi: 0x9e},\n\t{value: 0x4543, lo: 0x9f, hi: 0x9f},\n\t{value: 0x4531, lo: 0xaa, hi: 0xab},\n\t{value: 0x4635, lo: 0xac, hi: 0xac},\n\t{value: 0x463d, lo: 0xad, hi: 0xad},\n\t{value: 0x4489, lo: 0xae, hi: 0xb1},\n\t{value: 0x44a7, lo: 0xb2, hi: 0xb4},\n\t{value: 0x44bf, lo: 0xb5, hi: 0xb6},\n\t{value: 0x44cb, lo: 0xb8, hi: 0xb8},\n\t{value: 0x44d7, lo: 0xb9, hi: 0xbb},\n\t{value: 0x44ef, lo: 0xbc, hi: 0xbc},\n\t{value: 0x44f5, lo: 0xbe, hi: 0xbe},\n\t// Block 0x64, offset 0x1f9\n\t{value: 0x0006, lo: 0x08},\n\t{value: 0x44fb, lo: 0x80, hi: 0x81},\n\t{value: 0x4507, lo: 0x83, hi: 0x84},\n\t{value: 0x4519, lo: 0x86, hi: 0x89},\n\t{value: 0x453d, lo: 0x8a, hi: 0x8a},\n\t{value: 0x44b9, lo: 0x8b, hi: 0x8b},\n\t{value: 0x44a1, lo: 0x8c, hi: 0x8c},\n\t{value: 0x44e9, lo: 0x8d, hi: 0x8d},\n\t{value: 0x4513, lo: 0x8e, hi: 0x8e},\n\t// Block 0x65, offset 0x202\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0xa4, hi: 0xa5},\n\t{value: 0x8100, lo: 0xb0, hi: 0xb1},\n\t// Block 0x66, offset 0x205\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0x9b, hi: 0x9d},\n\t{value: 0x8200, lo: 0x9e, hi: 0xa3},\n\t// Block 0x67, offset 0x208\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x90, hi: 0x90},\n\t// Block 0x68, offset 0x20a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0x99, hi: 0x99},\n\t{value: 0x8200, lo: 0xb2, hi: 0xb4},\n\t// Block 0x69, offset 0x20d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xbc, hi: 0xbd},\n\t// Block 0x6a, offset 0x20f\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8133, lo: 0xa0, hi: 0xa6},\n\t{value: 0x812e, lo: 0xa7, hi: 0xad},\n\t{value: 0x8133, lo: 0xae, hi: 0xaf},\n\t// Block 0x6b, offset 0x213\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8100, lo: 0x89, hi: 0x8c},\n\t{value: 0x8100, lo: 0xb0, hi: 0xb2},\n\t{value: 0x8100, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8100, lo: 0xb6, hi: 0xbf},\n\t// Block 0x6c, offset 0x218\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x81, hi: 0x8c},\n\t// Block 0x6d, offset 0x21a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xb5, hi: 0xba},\n\t// Block 0x6e, offset 0x21c\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x4be0, lo: 0x9e, hi: 0x9f},\n\t{value: 0x4be0, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4be0, lo: 0xa5, hi: 0xa6},\n\t{value: 0x4be0, lo: 0xaa, hi: 0xaf},\n\t// Block 0x6f, offset 0x221\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x4be0, lo: 0x82, hi: 0x87},\n\t{value: 0x4be0, lo: 0x8a, hi: 0x8f},\n\t{value: 0x4be0, lo: 0x92, hi: 0x97},\n\t{value: 0x4be0, lo: 0x9a, hi: 0x9c},\n\t{value: 0x8100, lo: 0xa3, hi: 0xa3},\n\t// Block 0x70, offset 0x227\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0xbd, hi: 0xbd},\n\t// Block 0x71, offset 0x229\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0xa0, hi: 0xa0},\n\t// Block 0x72, offset 0x22b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xb6, hi: 0xba},\n\t// Block 0x73, offset 0x22d\n\t{value: 0x002d, lo: 0x05},\n\t{value: 0x812e, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8133, lo: 0x8f, hi: 0x8f},\n\t{value: 0x8133, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8101, lo: 0xb9, hi: 0xba},\n\t{value: 0x8105, lo: 0xbf, hi: 0xbf},\n\t// Block 0x74, offset 0x233\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8133, lo: 0xa5, hi: 0xa5},\n\t{value: 0x812e, lo: 0xa6, hi: 0xa6},\n\t// Block 0x75, offset 0x236\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xa4, hi: 0xa7},\n\t// Block 0x76, offset 0x238\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xab, hi: 0xac},\n\t// Block 0x77, offset 0x23a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0xbd, hi: 0xbf},\n\t// Block 0x78, offset 0x23c\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x812e, lo: 0x86, hi: 0x87},\n\t{value: 0x8133, lo: 0x88, hi: 0x8a},\n\t{value: 0x812e, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8133, lo: 0x8c, hi: 0x8c},\n\t{value: 0x812e, lo: 0x8d, hi: 0x90},\n\t// Block 0x79, offset 0x242\n\t{value: 0x0005, lo: 0x03},\n\t{value: 0x8133, lo: 0x82, hi: 0x82},\n\t{value: 0x812e, lo: 0x83, hi: 0x84},\n\t{value: 0x812e, lo: 0x85, hi: 0x85},\n\t// Block 0x7a, offset 0x246\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8105, lo: 0x86, hi: 0x86},\n\t{value: 0x8105, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8105, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7b, offset 0x24a\n\t{value: 0x17fe, lo: 0x07},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x4379, lo: 0x9a, hi: 0x9a},\n\t{value: 0xa000, lo: 0x9b, hi: 0x9b},\n\t{value: 0x4383, lo: 0x9c, hi: 0x9c},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x438d, lo: 0xab, hi: 0xab},\n\t{value: 0x8105, lo: 0xb9, hi: 0xba},\n\t// Block 0x7c, offset 0x252\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x8133, lo: 0x80, hi: 0x82},\n\t{value: 0x9900, lo: 0xa7, hi: 0xa7},\n\t{value: 0x2eb5, lo: 0xae, hi: 0xae},\n\t{value: 0x2ebf, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb1, hi: 0xb2},\n\t{value: 0x8105, lo: 0xb3, hi: 0xb4},\n\t// Block 0x7d, offset 0x259\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x80, hi: 0x80},\n\t{value: 0x8103, lo: 0x8a, hi: 0x8a},\n\t// Block 0x7e, offset 0x25c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0xb5, hi: 0xb5},\n\t{value: 0x8103, lo: 0xb6, hi: 0xb6},\n\t// Block 0x7f, offset 0x25f\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x8103, lo: 0xa9, hi: 0xaa},\n\t// Block 0x80, offset 0x261\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8103, lo: 0xbb, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x81, offset 0x264\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2ec9, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2ed3, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x8133, lo: 0xa6, hi: 0xac},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb4},\n\t// Block 0x82, offset 0x26c\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8105, lo: 0x82, hi: 0x82},\n\t{value: 0x8103, lo: 0x86, hi: 0x86},\n\t{value: 0x8133, lo: 0x9e, hi: 0x9e},\n\t// Block 0x83, offset 0x270\n\t{value: 0x6a23, lo: 0x06},\n\t{value: 0x9900, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb9, hi: 0xb9},\n\t{value: 0x9900, lo: 0xba, hi: 0xba},\n\t{value: 0x2ee7, lo: 0xbb, hi: 0xbb},\n\t{value: 0x2edd, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2ef1, lo: 0xbe, hi: 0xbe},\n\t// Block 0x84, offset 0x277\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x82, hi: 0x82},\n\t{value: 0x8103, lo: 0x83, hi: 0x83},\n\t// Block 0x85, offset 0x27a\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x9900, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2efb, lo: 0xba, hi: 0xba},\n\t{value: 0x2f05, lo: 0xbb, hi: 0xbb},\n\t{value: 0x8105, lo: 0xbf, hi: 0xbf},\n\t// Block 0x86, offset 0x280\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8103, lo: 0x80, hi: 0x80},\n\t// Block 0x87, offset 0x282\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8103, lo: 0xb7, hi: 0xb7},\n\t// Block 0x88, offset 0x285\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xab, hi: 0xab},\n\t// Block 0x89, offset 0x287\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8103, lo: 0xba, hi: 0xba},\n\t// Block 0x8a, offset 0x28a\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x9900, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb5, hi: 0xb5},\n\t{value: 0x2f0f, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8105, lo: 0xbd, hi: 0xbe},\n\t// Block 0x8b, offset 0x28f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8103, lo: 0x83, hi: 0x83},\n\t// Block 0x8c, offset 0x291\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xa0, hi: 0xa0},\n\t// Block 0x8d, offset 0x293\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xb4, hi: 0xb4},\n\t// Block 0x8e, offset 0x295\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x87, hi: 0x87},\n\t// Block 0x8f, offset 0x297\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x99, hi: 0x99},\n\t// Block 0x90, offset 0x299\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8103, lo: 0x82, hi: 0x82},\n\t{value: 0x8105, lo: 0x84, hi: 0x85},\n\t// Block 0x91, offset 0x29c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x97, hi: 0x97},\n\t// Block 0x92, offset 0x29e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x81, hi: 0x82},\n\t// Block 0x93, offset 0x2a0\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0xb0, hi: 0xb4},\n\t// Block 0x94, offset 0x2a2\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb6},\n\t// Block 0x95, offset 0x2a4\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb0, hi: 0xb1},\n\t// Block 0x96, offset 0x2a6\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0x9e, hi: 0x9e},\n\t// Block 0x97, offset 0x2a8\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x470d, lo: 0x9e, hi: 0x9e},\n\t{value: 0x4717, lo: 0x9f, hi: 0x9f},\n\t{value: 0x474b, lo: 0xa0, hi: 0xa0},\n\t{value: 0x4759, lo: 0xa1, hi: 0xa1},\n\t{value: 0x4767, lo: 0xa2, hi: 0xa2},\n\t{value: 0x4775, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4783, lo: 0xa4, hi: 0xa4},\n\t{value: 0x812c, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8101, lo: 0xa7, hi: 0xa9},\n\t{value: 0x8131, lo: 0xad, hi: 0xad},\n\t{value: 0x812c, lo: 0xae, hi: 0xb2},\n\t{value: 0x812e, lo: 0xbb, hi: 0xbf},\n\t// Block 0x98, offset 0x2b5\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x812e, lo: 0x80, hi: 0x82},\n\t{value: 0x8133, lo: 0x85, hi: 0x89},\n\t{value: 0x812e, lo: 0x8a, hi: 0x8b},\n\t{value: 0x8133, lo: 0xaa, hi: 0xad},\n\t{value: 0x4721, lo: 0xbb, hi: 0xbb},\n\t{value: 0x472b, lo: 0xbc, hi: 0xbc},\n\t{value: 0x4791, lo: 0xbd, hi: 0xbd},\n\t{value: 0x47ad, lo: 0xbe, hi: 0xbe},\n\t{value: 0x479f, lo: 0xbf, hi: 0xbf},\n\t// Block 0x99, offset 0x2bf\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x47bb, lo: 0x80, hi: 0x80},\n\t// Block 0x9a, offset 0x2c1\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0x82, hi: 0x84},\n\t// Block 0x9b, offset 0x2c3\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8133, lo: 0x80, hi: 0x86},\n\t{value: 0x8133, lo: 0x88, hi: 0x98},\n\t{value: 0x8133, lo: 0x9b, hi: 0xa1},\n\t{value: 0x8133, lo: 0xa3, hi: 0xa4},\n\t{value: 0x8133, lo: 0xa6, hi: 0xaa},\n\t// Block 0x9c, offset 0x2c9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0x8f, hi: 0x8f},\n\t// Block 0x9d, offset 0x2cb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xae, hi: 0xae},\n\t// Block 0x9e, offset 0x2cd\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xac, hi: 0xaf},\n\t// Block 0x9f, offset 0x2cf\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8134, lo: 0xac, hi: 0xad},\n\t{value: 0x812e, lo: 0xae, hi: 0xae},\n\t{value: 0x8133, lo: 0xaf, hi: 0xaf},\n\t// Block 0xa0, offset 0x2d3\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0x90, hi: 0x96},\n\t// Block 0xa1, offset 0x2d5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8133, lo: 0x84, hi: 0x89},\n\t{value: 0x8103, lo: 0x8a, hi: 0x8a},\n\t// Block 0xa2, offset 0x2d8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x93, hi: 0x93},\n}\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfkcTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfkcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfkcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfkcTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfkcValues[c0]\n\t}\n\ti := nfkcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfkcTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfkcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfkcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfkcTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfkcValues[c0]\n\t}\n\ti := nfkcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// nfkcTrie. Total size: 19260 bytes (18.81 KiB). Checksum: 1a0bbc4c8c24da49.\ntype nfkcTrie struct{}\n\nfunc newNfkcTrie(i int) *nfkcTrie {\n\treturn &nfkcTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *nfkcTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 95:\n\t\treturn uint16(nfkcValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 95\n\t\treturn uint16(nfkcSparse.lookup(n, b))\n\t}\n}\n\n// nfkcValues: 97 blocks, 6208 entries, 12416 bytes\n// The third block is the zero block.\nvar nfkcValues = [6208]uint16{\n\t// Block 0x0, offset 0x0\n\t0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000,\n\t// Block 0x1, offset 0x40\n\t0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000,\n\t0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000,\n\t0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000,\n\t0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000,\n\t0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000,\n\t0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000,\n\t0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000,\n\t0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000,\n\t0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000,\n\t0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x30b0, 0xc1: 0x30b5, 0xc2: 0x47c9, 0xc3: 0x30ba, 0xc4: 0x47d8, 0xc5: 0x47dd,\n\t0xc6: 0xa000, 0xc7: 0x47e7, 0xc8: 0x3123, 0xc9: 0x3128, 0xca: 0x47ec, 0xcb: 0x313c,\n\t0xcc: 0x31af, 0xcd: 0x31b4, 0xce: 0x31b9, 0xcf: 0x4800, 0xd1: 0x3245,\n\t0xd2: 0x3268, 0xd3: 0x326d, 0xd4: 0x480a, 0xd5: 0x480f, 0xd6: 0x481e,\n\t0xd8: 0xa000, 0xd9: 0x32f4, 0xda: 0x32f9, 0xdb: 0x32fe, 0xdc: 0x4850, 0xdd: 0x3376,\n\t0xe0: 0x33bc, 0xe1: 0x33c1, 0xe2: 0x485a, 0xe3: 0x33c6,\n\t0xe4: 0x4869, 0xe5: 0x486e, 0xe6: 0xa000, 0xe7: 0x4878, 0xe8: 0x342f, 0xe9: 0x3434,\n\t0xea: 0x487d, 0xeb: 0x3448, 0xec: 0x34c0, 0xed: 0x34c5, 0xee: 0x34ca, 0xef: 0x4891,\n\t0xf1: 0x3556, 0xf2: 0x3579, 0xf3: 0x357e, 0xf4: 0x489b, 0xf5: 0x48a0,\n\t0xf6: 0x48af, 0xf8: 0xa000, 0xf9: 0x360a, 0xfa: 0x360f, 0xfb: 0x3614,\n\t0xfc: 0x48e1, 0xfd: 0x3691, 0xff: 0x36aa,\n\t// Block 0x4, offset 0x100\n\t0x100: 0x30bf, 0x101: 0x33cb, 0x102: 0x47ce, 0x103: 0x485f, 0x104: 0x30dd, 0x105: 0x33e9,\n\t0x106: 0x30f1, 0x107: 0x33fd, 0x108: 0x30f6, 0x109: 0x3402, 0x10a: 0x30fb, 0x10b: 0x3407,\n\t0x10c: 0x3100, 0x10d: 0x340c, 0x10e: 0x310a, 0x10f: 0x3416,\n\t0x112: 0x47f1, 0x113: 0x4882, 0x114: 0x3132, 0x115: 0x343e, 0x116: 0x3137, 0x117: 0x3443,\n\t0x118: 0x3155, 0x119: 0x3461, 0x11a: 0x3146, 0x11b: 0x3452, 0x11c: 0x316e, 0x11d: 0x347a,\n\t0x11e: 0x3178, 0x11f: 0x3484, 0x120: 0x317d, 0x121: 0x3489, 0x122: 0x3187, 0x123: 0x3493,\n\t0x124: 0x318c, 0x125: 0x3498, 0x128: 0x31be, 0x129: 0x34cf,\n\t0x12a: 0x31c3, 0x12b: 0x34d4, 0x12c: 0x31c8, 0x12d: 0x34d9, 0x12e: 0x31eb, 0x12f: 0x34f7,\n\t0x130: 0x31cd, 0x132: 0x1a8a, 0x133: 0x1b17, 0x134: 0x31f5, 0x135: 0x3501,\n\t0x136: 0x3209, 0x137: 0x351a, 0x139: 0x3213, 0x13a: 0x3524, 0x13b: 0x321d,\n\t0x13c: 0x352e, 0x13d: 0x3218, 0x13e: 0x3529, 0x13f: 0x1cdc,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x1d64, 0x143: 0x3240, 0x144: 0x3551, 0x145: 0x3259,\n\t0x146: 0x356a, 0x147: 0x324f, 0x148: 0x3560, 0x149: 0x1d8c,\n\t0x14c: 0x4814, 0x14d: 0x48a5, 0x14e: 0x3272, 0x14f: 0x3583, 0x150: 0x327c, 0x151: 0x358d,\n\t0x154: 0x329a, 0x155: 0x35ab, 0x156: 0x32b3, 0x157: 0x35c4,\n\t0x158: 0x32a4, 0x159: 0x35b5, 0x15a: 0x4837, 0x15b: 0x48c8, 0x15c: 0x32bd, 0x15d: 0x35ce,\n\t0x15e: 0x32cc, 0x15f: 0x35dd, 0x160: 0x483c, 0x161: 0x48cd, 0x162: 0x32e5, 0x163: 0x35fb,\n\t0x164: 0x32d6, 0x165: 0x35ec, 0x168: 0x4846, 0x169: 0x48d7,\n\t0x16a: 0x484b, 0x16b: 0x48dc, 0x16c: 0x3303, 0x16d: 0x3619, 0x16e: 0x330d, 0x16f: 0x3623,\n\t0x170: 0x3312, 0x171: 0x3628, 0x172: 0x3330, 0x173: 0x3646, 0x174: 0x3353, 0x175: 0x3669,\n\t0x176: 0x337b, 0x177: 0x3696, 0x178: 0x338f, 0x179: 0x339e, 0x17a: 0x36be, 0x17b: 0x33a8,\n\t0x17c: 0x36c8, 0x17d: 0x33ad, 0x17e: 0x36cd, 0x17f: 0x00a7,\n\t// Block 0x6, offset 0x180\n\t0x184: 0x2f2f, 0x185: 0x2f35,\n\t0x186: 0x2f3b, 0x187: 0x1a9f, 0x188: 0x1aa2, 0x189: 0x1b38, 0x18a: 0x1ab7, 0x18b: 0x1aba,\n\t0x18c: 0x1b6e, 0x18d: 0x30c9, 0x18e: 0x33d5, 0x18f: 0x31d7, 0x190: 0x34e3, 0x191: 0x3281,\n\t0x192: 0x3592, 0x193: 0x3317, 0x194: 0x362d, 0x195: 0x3b10, 0x196: 0x3c9f, 0x197: 0x3b09,\n\t0x198: 0x3c98, 0x199: 0x3b17, 0x19a: 0x3ca6, 0x19b: 0x3b02, 0x19c: 0x3c91,\n\t0x19e: 0x39f1, 0x19f: 0x3b80, 0x1a0: 0x39ea, 0x1a1: 0x3b79, 0x1a2: 0x36f4, 0x1a3: 0x3706,\n\t0x1a6: 0x3182, 0x1a7: 0x348e, 0x1a8: 0x31ff, 0x1a9: 0x3510,\n\t0x1aa: 0x482d, 0x1ab: 0x48be, 0x1ac: 0x3ad1, 0x1ad: 0x3c60, 0x1ae: 0x3718, 0x1af: 0x371e,\n\t0x1b0: 0x3506, 0x1b1: 0x1a6f, 0x1b2: 0x1a72, 0x1b3: 0x1aff, 0x1b4: 0x3169, 0x1b5: 0x3475,\n\t0x1b8: 0x323b, 0x1b9: 0x354c, 0x1ba: 0x39f8, 0x1bb: 0x3b87,\n\t0x1bc: 0x36ee, 0x1bd: 0x3700, 0x1be: 0x36fa, 0x1bf: 0x370c,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x30ce, 0x1c1: 0x33da, 0x1c2: 0x30d3, 0x1c3: 0x33df, 0x1c4: 0x314b, 0x1c5: 0x3457,\n\t0x1c6: 0x3150, 0x1c7: 0x345c, 0x1c8: 0x31dc, 0x1c9: 0x34e8, 0x1ca: 0x31e1, 0x1cb: 0x34ed,\n\t0x1cc: 0x3286, 0x1cd: 0x3597, 0x1ce: 0x328b, 0x1cf: 0x359c, 0x1d0: 0x32a9, 0x1d1: 0x35ba,\n\t0x1d2: 0x32ae, 0x1d3: 0x35bf, 0x1d4: 0x331c, 0x1d5: 0x3632, 0x1d6: 0x3321, 0x1d7: 0x3637,\n\t0x1d8: 0x32c7, 0x1d9: 0x35d8, 0x1da: 0x32e0, 0x1db: 0x35f6,\n\t0x1de: 0x319b, 0x1df: 0x34a7,\n\t0x1e6: 0x47d3, 0x1e7: 0x4864, 0x1e8: 0x47fb, 0x1e9: 0x488c,\n\t0x1ea: 0x3aa0, 0x1eb: 0x3c2f, 0x1ec: 0x3a7d, 0x1ed: 0x3c0c, 0x1ee: 0x4819, 0x1ef: 0x48aa,\n\t0x1f0: 0x3a99, 0x1f1: 0x3c28, 0x1f2: 0x3385, 0x1f3: 0x36a0,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x9933, 0x201: 0x9933, 0x202: 0x9933, 0x203: 0x9933, 0x204: 0x9933, 0x205: 0x8133,\n\t0x206: 0x9933, 0x207: 0x9933, 0x208: 0x9933, 0x209: 0x9933, 0x20a: 0x9933, 0x20b: 0x9933,\n\t0x20c: 0x9933, 0x20d: 0x8133, 0x20e: 0x8133, 0x20f: 0x9933, 0x210: 0x8133, 0x211: 0x9933,\n\t0x212: 0x8133, 0x213: 0x9933, 0x214: 0x9933, 0x215: 0x8134, 0x216: 0x812e, 0x217: 0x812e,\n\t0x218: 0x812e, 0x219: 0x812e, 0x21a: 0x8134, 0x21b: 0x992c, 0x21c: 0x812e, 0x21d: 0x812e,\n\t0x21e: 0x812e, 0x21f: 0x812e, 0x220: 0x812e, 0x221: 0x812a, 0x222: 0x812a, 0x223: 0x992e,\n\t0x224: 0x992e, 0x225: 0x992e, 0x226: 0x992e, 0x227: 0x992a, 0x228: 0x992a, 0x229: 0x812e,\n\t0x22a: 0x812e, 0x22b: 0x812e, 0x22c: 0x812e, 0x22d: 0x992e, 0x22e: 0x992e, 0x22f: 0x812e,\n\t0x230: 0x992e, 0x231: 0x992e, 0x232: 0x812e, 0x233: 0x812e, 0x234: 0x8101, 0x235: 0x8101,\n\t0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812e, 0x23a: 0x812e, 0x23b: 0x812e,\n\t0x23c: 0x812e, 0x23d: 0x8133, 0x23e: 0x8133, 0x23f: 0x8133,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x4aef, 0x241: 0x4af4, 0x242: 0x9933, 0x243: 0x4af9, 0x244: 0x4bb2, 0x245: 0x9937,\n\t0x246: 0x8133, 0x247: 0x812e, 0x248: 0x812e, 0x249: 0x812e, 0x24a: 0x8133, 0x24b: 0x8133,\n\t0x24c: 0x8133, 0x24d: 0x812e, 0x24e: 0x812e, 0x250: 0x8133, 0x251: 0x8133,\n\t0x252: 0x8133, 0x253: 0x812e, 0x254: 0x812e, 0x255: 0x812e, 0x256: 0x812e, 0x257: 0x8133,\n\t0x258: 0x8134, 0x259: 0x812e, 0x25a: 0x812e, 0x25b: 0x8133, 0x25c: 0x8135, 0x25d: 0x8136,\n\t0x25e: 0x8136, 0x25f: 0x8135, 0x260: 0x8136, 0x261: 0x8136, 0x262: 0x8135, 0x263: 0x8133,\n\t0x264: 0x8133, 0x265: 0x8133, 0x266: 0x8133, 0x267: 0x8133, 0x268: 0x8133, 0x269: 0x8133,\n\t0x26a: 0x8133, 0x26b: 0x8133, 0x26c: 0x8133, 0x26d: 0x8133, 0x26e: 0x8133, 0x26f: 0x8133,\n\t0x274: 0x01ee,\n\t0x27a: 0x43e6,\n\t0x27e: 0x0037,\n\t// Block 0xa, offset 0x280\n\t0x284: 0x439b, 0x285: 0x45bc,\n\t0x286: 0x372a, 0x287: 0x00ce, 0x288: 0x3748, 0x289: 0x3754, 0x28a: 0x3766,\n\t0x28c: 0x3784, 0x28e: 0x3796, 0x28f: 0x37b4, 0x290: 0x3f49, 0x291: 0xa000,\n\t0x295: 0xa000, 0x297: 0xa000,\n\t0x299: 0xa000,\n\t0x29f: 0xa000, 0x2a1: 0xa000,\n\t0x2a5: 0xa000, 0x2a9: 0xa000,\n\t0x2aa: 0x3778, 0x2ab: 0x37a8, 0x2ac: 0x493f, 0x2ad: 0x37d8, 0x2ae: 0x4969, 0x2af: 0x37ea,\n\t0x2b0: 0x3fb1, 0x2b1: 0xa000, 0x2b5: 0xa000,\n\t0x2b7: 0xa000, 0x2b9: 0xa000,\n\t0x2bf: 0xa000,\n\t// Block 0xb, offset 0x2c0\n\t0x2c1: 0xa000, 0x2c5: 0xa000,\n\t0x2c9: 0xa000, 0x2ca: 0x4981, 0x2cb: 0x499f,\n\t0x2cc: 0x3808, 0x2cd: 0x3820, 0x2ce: 0x49b7, 0x2d0: 0x0242, 0x2d1: 0x0254,\n\t0x2d2: 0x0230, 0x2d3: 0x444d, 0x2d4: 0x4453, 0x2d5: 0x027e, 0x2d6: 0x026c,\n\t0x2f0: 0x025a, 0x2f1: 0x026f, 0x2f2: 0x0272, 0x2f4: 0x020c, 0x2f5: 0x024b,\n\t0x2f9: 0x022a,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x3862, 0x301: 0x386e, 0x303: 0x385c,\n\t0x306: 0xa000, 0x307: 0x384a,\n\t0x30c: 0x389e, 0x30d: 0x3886, 0x30e: 0x38b0, 0x310: 0xa000,\n\t0x313: 0xa000, 0x315: 0xa000, 0x316: 0xa000, 0x317: 0xa000,\n\t0x318: 0xa000, 0x319: 0x3892, 0x31a: 0xa000,\n\t0x31e: 0xa000, 0x323: 0xa000,\n\t0x327: 0xa000,\n\t0x32b: 0xa000, 0x32d: 0xa000,\n\t0x330: 0xa000, 0x333: 0xa000, 0x335: 0xa000,\n\t0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x3916, 0x33a: 0xa000,\n\t0x33e: 0xa000,\n\t// Block 0xd, offset 0x340\n\t0x341: 0x3874, 0x342: 0x38f8,\n\t0x350: 0x3850, 0x351: 0x38d4,\n\t0x352: 0x3856, 0x353: 0x38da, 0x356: 0x3868, 0x357: 0x38ec,\n\t0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x396a, 0x35b: 0x3970, 0x35c: 0x387a, 0x35d: 0x38fe,\n\t0x35e: 0x3880, 0x35f: 0x3904, 0x362: 0x388c, 0x363: 0x3910,\n\t0x364: 0x3898, 0x365: 0x391c, 0x366: 0x38a4, 0x367: 0x3928, 0x368: 0xa000, 0x369: 0xa000,\n\t0x36a: 0x3976, 0x36b: 0x397c, 0x36c: 0x38ce, 0x36d: 0x3952, 0x36e: 0x38aa, 0x36f: 0x392e,\n\t0x370: 0x38b6, 0x371: 0x393a, 0x372: 0x38bc, 0x373: 0x3940, 0x374: 0x38c2, 0x375: 0x3946,\n\t0x378: 0x38c8, 0x379: 0x394c,\n\t// Block 0xe, offset 0x380\n\t0x387: 0x1e91,\n\t0x391: 0x812e,\n\t0x392: 0x8133, 0x393: 0x8133, 0x394: 0x8133, 0x395: 0x8133, 0x396: 0x812e, 0x397: 0x8133,\n\t0x398: 0x8133, 0x399: 0x8133, 0x39a: 0x812f, 0x39b: 0x812e, 0x39c: 0x8133, 0x39d: 0x8133,\n\t0x39e: 0x8133, 0x39f: 0x8133, 0x3a0: 0x8133, 0x3a1: 0x8133, 0x3a2: 0x812e, 0x3a3: 0x812e,\n\t0x3a4: 0x812e, 0x3a5: 0x812e, 0x3a6: 0x812e, 0x3a7: 0x812e, 0x3a8: 0x8133, 0x3a9: 0x8133,\n\t0x3aa: 0x812e, 0x3ab: 0x8133, 0x3ac: 0x8133, 0x3ad: 0x812f, 0x3ae: 0x8132, 0x3af: 0x8133,\n\t0x3b0: 0x8106, 0x3b1: 0x8107, 0x3b2: 0x8108, 0x3b3: 0x8109, 0x3b4: 0x810a, 0x3b5: 0x810b,\n\t0x3b6: 0x810c, 0x3b7: 0x810d, 0x3b8: 0x810e, 0x3b9: 0x810f, 0x3ba: 0x810f, 0x3bb: 0x8110,\n\t0x3bc: 0x8111, 0x3bd: 0x8112, 0x3bf: 0x8113,\n\t// Block 0xf, offset 0x3c0\n\t0x3c8: 0xa000, 0x3ca: 0xa000, 0x3cb: 0x8117,\n\t0x3cc: 0x8118, 0x3cd: 0x8119, 0x3ce: 0x811a, 0x3cf: 0x811b, 0x3d0: 0x811c, 0x3d1: 0x811d,\n\t0x3d2: 0x811e, 0x3d3: 0x9933, 0x3d4: 0x9933, 0x3d5: 0x992e, 0x3d6: 0x812e, 0x3d7: 0x8133,\n\t0x3d8: 0x8133, 0x3d9: 0x8133, 0x3da: 0x8133, 0x3db: 0x8133, 0x3dc: 0x812e, 0x3dd: 0x8133,\n\t0x3de: 0x8133, 0x3df: 0x812e,\n\t0x3f0: 0x811f, 0x3f5: 0x1eb4,\n\t0x3f6: 0x2143, 0x3f7: 0x217f, 0x3f8: 0x217a,\n\t// Block 0x10, offset 0x400\n\t0x40a: 0x8133, 0x40b: 0x8133,\n\t0x40c: 0x8133, 0x40d: 0x8133, 0x40e: 0x8133, 0x40f: 0x812e, 0x410: 0x812e, 0x411: 0x812e,\n\t0x412: 0x812e, 0x413: 0x812e, 0x414: 0x8133, 0x415: 0x8133, 0x416: 0x8133, 0x417: 0x8133,\n\t0x418: 0x8133, 0x419: 0x8133, 0x41a: 0x8133, 0x41b: 0x8133, 0x41c: 0x8133, 0x41d: 0x8133,\n\t0x41e: 0x8133, 0x41f: 0x8133, 0x420: 0x8133, 0x421: 0x8133, 0x423: 0x812e,\n\t0x424: 0x8133, 0x425: 0x8133, 0x426: 0x812e, 0x427: 0x8133, 0x428: 0x8133, 0x429: 0x812e,\n\t0x42a: 0x8133, 0x42b: 0x8133, 0x42c: 0x8133, 0x42d: 0x812e, 0x42e: 0x812e, 0x42f: 0x812e,\n\t0x430: 0x8117, 0x431: 0x8118, 0x432: 0x8119, 0x433: 0x8133, 0x434: 0x8133, 0x435: 0x8133,\n\t0x436: 0x812e, 0x437: 0x8133, 0x438: 0x8133, 0x439: 0x812e, 0x43a: 0x812e, 0x43b: 0x8133,\n\t0x43c: 0x8133, 0x43d: 0x8133, 0x43e: 0x8133, 0x43f: 0x8133,\n\t// Block 0x11, offset 0x440\n\t0x445: 0xa000,\n\t0x446: 0x2e5d, 0x447: 0xa000, 0x448: 0x2e65, 0x449: 0xa000, 0x44a: 0x2e6d, 0x44b: 0xa000,\n\t0x44c: 0x2e75, 0x44d: 0xa000, 0x44e: 0x2e7d, 0x451: 0xa000,\n\t0x452: 0x2e85,\n\t0x474: 0x8103, 0x475: 0x9900,\n\t0x47a: 0xa000, 0x47b: 0x2e8d,\n\t0x47c: 0xa000, 0x47d: 0x2e95, 0x47e: 0xa000, 0x47f: 0xa000,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x0069, 0x481: 0x006b, 0x482: 0x006f, 0x483: 0x0083, 0x484: 0x0104, 0x485: 0x0107,\n\t0x486: 0x0506, 0x487: 0x0085, 0x488: 0x0089, 0x489: 0x008b, 0x48a: 0x011f, 0x48b: 0x0122,\n\t0x48c: 0x0125, 0x48d: 0x008f, 0x48f: 0x0097, 0x490: 0x009b, 0x491: 0x00e6,\n\t0x492: 0x009f, 0x493: 0x0110, 0x494: 0x050a, 0x495: 0x050e, 0x496: 0x00a1, 0x497: 0x00a9,\n\t0x498: 0x00ab, 0x499: 0x0516, 0x49a: 0x015b, 0x49b: 0x00ad, 0x49c: 0x051a, 0x49d: 0x0242,\n\t0x49e: 0x0245, 0x49f: 0x0248, 0x4a0: 0x027e, 0x4a1: 0x0281, 0x4a2: 0x0093, 0x4a3: 0x00a5,\n\t0x4a4: 0x00ab, 0x4a5: 0x00ad, 0x4a6: 0x0242, 0x4a7: 0x0245, 0x4a8: 0x026f, 0x4a9: 0x027e,\n\t0x4aa: 0x0281,\n\t0x4b8: 0x02b4,\n\t// Block 0x13, offset 0x4c0\n\t0x4db: 0x010a, 0x4dc: 0x0087, 0x4dd: 0x0113,\n\t0x4de: 0x00d7, 0x4df: 0x0125, 0x4e0: 0x008d, 0x4e1: 0x012b, 0x4e2: 0x0131, 0x4e3: 0x013d,\n\t0x4e4: 0x0146, 0x4e5: 0x0149, 0x4e6: 0x014c, 0x4e7: 0x051e, 0x4e8: 0x01c7, 0x4e9: 0x0155,\n\t0x4ea: 0x0522, 0x4eb: 0x01ca, 0x4ec: 0x0161, 0x4ed: 0x015e, 0x4ee: 0x0164, 0x4ef: 0x0167,\n\t0x4f0: 0x016a, 0x4f1: 0x016d, 0x4f2: 0x0176, 0x4f3: 0x018e, 0x4f4: 0x0191, 0x4f5: 0x00f2,\n\t0x4f6: 0x019a, 0x4f7: 0x019d, 0x4f8: 0x0512, 0x4f9: 0x01a0, 0x4fa: 0x01a3, 0x4fb: 0x00b5,\n\t0x4fc: 0x01af, 0x4fd: 0x01b2, 0x4fe: 0x01b5, 0x4ff: 0x0254,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x8133, 0x501: 0x8133, 0x502: 0x812e, 0x503: 0x8133, 0x504: 0x8133, 0x505: 0x8133,\n\t0x506: 0x8133, 0x507: 0x8133, 0x508: 0x8133, 0x509: 0x8133, 0x50a: 0x812e, 0x50b: 0x8133,\n\t0x50c: 0x8133, 0x50d: 0x8136, 0x50e: 0x812b, 0x50f: 0x812e, 0x510: 0x812a, 0x511: 0x8133,\n\t0x512: 0x8133, 0x513: 0x8133, 0x514: 0x8133, 0x515: 0x8133, 0x516: 0x8133, 0x517: 0x8133,\n\t0x518: 0x8133, 0x519: 0x8133, 0x51a: 0x8133, 0x51b: 0x8133, 0x51c: 0x8133, 0x51d: 0x8133,\n\t0x51e: 0x8133, 0x51f: 0x8133, 0x520: 0x8133, 0x521: 0x8133, 0x522: 0x8133, 0x523: 0x8133,\n\t0x524: 0x8133, 0x525: 0x8133, 0x526: 0x8133, 0x527: 0x8133, 0x528: 0x8133, 0x529: 0x8133,\n\t0x52a: 0x8133, 0x52b: 0x8133, 0x52c: 0x8133, 0x52d: 0x8133, 0x52e: 0x8133, 0x52f: 0x8133,\n\t0x530: 0x8133, 0x531: 0x8133, 0x532: 0x8133, 0x533: 0x8133, 0x534: 0x8133, 0x535: 0x8133,\n\t0x536: 0x8134, 0x537: 0x8132, 0x538: 0x8132, 0x539: 0x812e, 0x53a: 0x812d, 0x53b: 0x8133,\n\t0x53c: 0x8135, 0x53d: 0x812e, 0x53e: 0x8133, 0x53f: 0x812e,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x30d8, 0x541: 0x33e4, 0x542: 0x30e2, 0x543: 0x33ee, 0x544: 0x30e7, 0x545: 0x33f3,\n\t0x546: 0x30ec, 0x547: 0x33f8, 0x548: 0x3a0d, 0x549: 0x3b9c, 0x54a: 0x3105, 0x54b: 0x3411,\n\t0x54c: 0x310f, 0x54d: 0x341b, 0x54e: 0x311e, 0x54f: 0x342a, 0x550: 0x3114, 0x551: 0x3420,\n\t0x552: 0x3119, 0x553: 0x3425, 0x554: 0x3a30, 0x555: 0x3bbf, 0x556: 0x3a37, 0x557: 0x3bc6,\n\t0x558: 0x315a, 0x559: 0x3466, 0x55a: 0x315f, 0x55b: 0x346b, 0x55c: 0x3a45, 0x55d: 0x3bd4,\n\t0x55e: 0x3164, 0x55f: 0x3470, 0x560: 0x3173, 0x561: 0x347f, 0x562: 0x3191, 0x563: 0x349d,\n\t0x564: 0x31a0, 0x565: 0x34ac, 0x566: 0x3196, 0x567: 0x34a2, 0x568: 0x31a5, 0x569: 0x34b1,\n\t0x56a: 0x31aa, 0x56b: 0x34b6, 0x56c: 0x31f0, 0x56d: 0x34fc, 0x56e: 0x3a4c, 0x56f: 0x3bdb,\n\t0x570: 0x31fa, 0x571: 0x350b, 0x572: 0x3204, 0x573: 0x3515, 0x574: 0x320e, 0x575: 0x351f,\n\t0x576: 0x4805, 0x577: 0x4896, 0x578: 0x3a53, 0x579: 0x3be2, 0x57a: 0x3227, 0x57b: 0x3538,\n\t0x57c: 0x3222, 0x57d: 0x3533, 0x57e: 0x322c, 0x57f: 0x353d,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x3231, 0x581: 0x3542, 0x582: 0x3236, 0x583: 0x3547, 0x584: 0x324a, 0x585: 0x355b,\n\t0x586: 0x3254, 0x587: 0x3565, 0x588: 0x3263, 0x589: 0x3574, 0x58a: 0x325e, 0x58b: 0x356f,\n\t0x58c: 0x3a76, 0x58d: 0x3c05, 0x58e: 0x3a84, 0x58f: 0x3c13, 0x590: 0x3a8b, 0x591: 0x3c1a,\n\t0x592: 0x3a92, 0x593: 0x3c21, 0x594: 0x3290, 0x595: 0x35a1, 0x596: 0x3295, 0x597: 0x35a6,\n\t0x598: 0x329f, 0x599: 0x35b0, 0x59a: 0x4832, 0x59b: 0x48c3, 0x59c: 0x3ad8, 0x59d: 0x3c67,\n\t0x59e: 0x32b8, 0x59f: 0x35c9, 0x5a0: 0x32c2, 0x5a1: 0x35d3, 0x5a2: 0x4841, 0x5a3: 0x48d2,\n\t0x5a4: 0x3adf, 0x5a5: 0x3c6e, 0x5a6: 0x3ae6, 0x5a7: 0x3c75, 0x5a8: 0x3aed, 0x5a9: 0x3c7c,\n\t0x5aa: 0x32d1, 0x5ab: 0x35e2, 0x5ac: 0x32db, 0x5ad: 0x35f1, 0x5ae: 0x32ef, 0x5af: 0x3605,\n\t0x5b0: 0x32ea, 0x5b1: 0x3600, 0x5b2: 0x332b, 0x5b3: 0x3641, 0x5b4: 0x333a, 0x5b5: 0x3650,\n\t0x5b6: 0x3335, 0x5b7: 0x364b, 0x5b8: 0x3af4, 0x5b9: 0x3c83, 0x5ba: 0x3afb, 0x5bb: 0x3c8a,\n\t0x5bc: 0x333f, 0x5bd: 0x3655, 0x5be: 0x3344, 0x5bf: 0x365a,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x3349, 0x5c1: 0x365f, 0x5c2: 0x334e, 0x5c3: 0x3664, 0x5c4: 0x335d, 0x5c5: 0x3673,\n\t0x5c6: 0x3358, 0x5c7: 0x366e, 0x5c8: 0x3362, 0x5c9: 0x367d, 0x5ca: 0x3367, 0x5cb: 0x3682,\n\t0x5cc: 0x336c, 0x5cd: 0x3687, 0x5ce: 0x338a, 0x5cf: 0x36a5, 0x5d0: 0x33a3, 0x5d1: 0x36c3,\n\t0x5d2: 0x33b2, 0x5d3: 0x36d2, 0x5d4: 0x33b7, 0x5d5: 0x36d7, 0x5d6: 0x34bb, 0x5d7: 0x35e7,\n\t0x5d8: 0x3678, 0x5d9: 0x36b4, 0x5da: 0x1d10, 0x5db: 0x4418,\n\t0x5e0: 0x47e2, 0x5e1: 0x4873, 0x5e2: 0x30c4, 0x5e3: 0x33d0,\n\t0x5e4: 0x39b9, 0x5e5: 0x3b48, 0x5e6: 0x39b2, 0x5e7: 0x3b41, 0x5e8: 0x39c7, 0x5e9: 0x3b56,\n\t0x5ea: 0x39c0, 0x5eb: 0x3b4f, 0x5ec: 0x39ff, 0x5ed: 0x3b8e, 0x5ee: 0x39d5, 0x5ef: 0x3b64,\n\t0x5f0: 0x39ce, 0x5f1: 0x3b5d, 0x5f2: 0x39e3, 0x5f3: 0x3b72, 0x5f4: 0x39dc, 0x5f5: 0x3b6b,\n\t0x5f6: 0x3a06, 0x5f7: 0x3b95, 0x5f8: 0x47f6, 0x5f9: 0x4887, 0x5fa: 0x3141, 0x5fb: 0x344d,\n\t0x5fc: 0x312d, 0x5fd: 0x3439, 0x5fe: 0x3a1b, 0x5ff: 0x3baa,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x3a14, 0x601: 0x3ba3, 0x602: 0x3a29, 0x603: 0x3bb8, 0x604: 0x3a22, 0x605: 0x3bb1,\n\t0x606: 0x3a3e, 0x607: 0x3bcd, 0x608: 0x31d2, 0x609: 0x34de, 0x60a: 0x31e6, 0x60b: 0x34f2,\n\t0x60c: 0x4828, 0x60d: 0x48b9, 0x60e: 0x3277, 0x60f: 0x3588, 0x610: 0x3a61, 0x611: 0x3bf0,\n\t0x612: 0x3a5a, 0x613: 0x3be9, 0x614: 0x3a6f, 0x615: 0x3bfe, 0x616: 0x3a68, 0x617: 0x3bf7,\n\t0x618: 0x3aca, 0x619: 0x3c59, 0x61a: 0x3aae, 0x61b: 0x3c3d, 0x61c: 0x3aa7, 0x61d: 0x3c36,\n\t0x61e: 0x3abc, 0x61f: 0x3c4b, 0x620: 0x3ab5, 0x621: 0x3c44, 0x622: 0x3ac3, 0x623: 0x3c52,\n\t0x624: 0x3326, 0x625: 0x363c, 0x626: 0x3308, 0x627: 0x361e, 0x628: 0x3b25, 0x629: 0x3cb4,\n\t0x62a: 0x3b1e, 0x62b: 0x3cad, 0x62c: 0x3b33, 0x62d: 0x3cc2, 0x62e: 0x3b2c, 0x62f: 0x3cbb,\n\t0x630: 0x3b3a, 0x631: 0x3cc9, 0x632: 0x3371, 0x633: 0x368c, 0x634: 0x3399, 0x635: 0x36b9,\n\t0x636: 0x3394, 0x637: 0x36af, 0x638: 0x3380, 0x639: 0x369b,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x4945, 0x641: 0x494b, 0x642: 0x4a5f, 0x643: 0x4a77, 0x644: 0x4a67, 0x645: 0x4a7f,\n\t0x646: 0x4a6f, 0x647: 0x4a87, 0x648: 0x48eb, 0x649: 0x48f1, 0x64a: 0x49cf, 0x64b: 0x49e7,\n\t0x64c: 0x49d7, 0x64d: 0x49ef, 0x64e: 0x49df, 0x64f: 0x49f7, 0x650: 0x4957, 0x651: 0x495d,\n\t0x652: 0x3ef9, 0x653: 0x3f09, 0x654: 0x3f01, 0x655: 0x3f11,\n\t0x658: 0x48f7, 0x659: 0x48fd, 0x65a: 0x3e29, 0x65b: 0x3e39, 0x65c: 0x3e31, 0x65d: 0x3e41,\n\t0x660: 0x496f, 0x661: 0x4975, 0x662: 0x4a8f, 0x663: 0x4aa7,\n\t0x664: 0x4a97, 0x665: 0x4aaf, 0x666: 0x4a9f, 0x667: 0x4ab7, 0x668: 0x4903, 0x669: 0x4909,\n\t0x66a: 0x49ff, 0x66b: 0x4a17, 0x66c: 0x4a07, 0x66d: 0x4a1f, 0x66e: 0x4a0f, 0x66f: 0x4a27,\n\t0x670: 0x4987, 0x671: 0x498d, 0x672: 0x3f59, 0x673: 0x3f71, 0x674: 0x3f61, 0x675: 0x3f79,\n\t0x676: 0x3f69, 0x677: 0x3f81, 0x678: 0x490f, 0x679: 0x4915, 0x67a: 0x3e59, 0x67b: 0x3e71,\n\t0x67c: 0x3e61, 0x67d: 0x3e79, 0x67e: 0x3e69, 0x67f: 0x3e81,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x4993, 0x681: 0x4999, 0x682: 0x3f89, 0x683: 0x3f99, 0x684: 0x3f91, 0x685: 0x3fa1,\n\t0x688: 0x491b, 0x689: 0x4921, 0x68a: 0x3e89, 0x68b: 0x3e99,\n\t0x68c: 0x3e91, 0x68d: 0x3ea1, 0x690: 0x49a5, 0x691: 0x49ab,\n\t0x692: 0x3fc1, 0x693: 0x3fd9, 0x694: 0x3fc9, 0x695: 0x3fe1, 0x696: 0x3fd1, 0x697: 0x3fe9,\n\t0x699: 0x4927, 0x69b: 0x3ea9, 0x69d: 0x3eb1,\n\t0x69f: 0x3eb9, 0x6a0: 0x49bd, 0x6a1: 0x49c3, 0x6a2: 0x4abf, 0x6a3: 0x4ad7,\n\t0x6a4: 0x4ac7, 0x6a5: 0x4adf, 0x6a6: 0x4acf, 0x6a7: 0x4ae7, 0x6a8: 0x492d, 0x6a9: 0x4933,\n\t0x6aa: 0x4a2f, 0x6ab: 0x4a47, 0x6ac: 0x4a37, 0x6ad: 0x4a4f, 0x6ae: 0x4a3f, 0x6af: 0x4a57,\n\t0x6b0: 0x4939, 0x6b1: 0x445f, 0x6b2: 0x37d2, 0x6b3: 0x4465, 0x6b4: 0x4963, 0x6b5: 0x446b,\n\t0x6b6: 0x37e4, 0x6b7: 0x4471, 0x6b8: 0x3802, 0x6b9: 0x4477, 0x6ba: 0x381a, 0x6bb: 0x447d,\n\t0x6bc: 0x49b1, 0x6bd: 0x4483,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x3ee1, 0x6c1: 0x3ee9, 0x6c2: 0x42c5, 0x6c3: 0x42e3, 0x6c4: 0x42cf, 0x6c5: 0x42ed,\n\t0x6c6: 0x42d9, 0x6c7: 0x42f7, 0x6c8: 0x3e19, 0x6c9: 0x3e21, 0x6ca: 0x4211, 0x6cb: 0x422f,\n\t0x6cc: 0x421b, 0x6cd: 0x4239, 0x6ce: 0x4225, 0x6cf: 0x4243, 0x6d0: 0x3f29, 0x6d1: 0x3f31,\n\t0x6d2: 0x4301, 0x6d3: 0x431f, 0x6d4: 0x430b, 0x6d5: 0x4329, 0x6d6: 0x4315, 0x6d7: 0x4333,\n\t0x6d8: 0x3e49, 0x6d9: 0x3e51, 0x6da: 0x424d, 0x6db: 0x426b, 0x6dc: 0x4257, 0x6dd: 0x4275,\n\t0x6de: 0x4261, 0x6df: 0x427f, 0x6e0: 0x4001, 0x6e1: 0x4009, 0x6e2: 0x433d, 0x6e3: 0x435b,\n\t0x6e4: 0x4347, 0x6e5: 0x4365, 0x6e6: 0x4351, 0x6e7: 0x436f, 0x6e8: 0x3ec1, 0x6e9: 0x3ec9,\n\t0x6ea: 0x4289, 0x6eb: 0x42a7, 0x6ec: 0x4293, 0x6ed: 0x42b1, 0x6ee: 0x429d, 0x6ef: 0x42bb,\n\t0x6f0: 0x37c6, 0x6f1: 0x37c0, 0x6f2: 0x3ed1, 0x6f3: 0x37cc, 0x6f4: 0x3ed9,\n\t0x6f6: 0x4951, 0x6f7: 0x3ef1, 0x6f8: 0x3736, 0x6f9: 0x3730, 0x6fa: 0x3724, 0x6fb: 0x442f,\n\t0x6fc: 0x373c, 0x6fd: 0x43c8, 0x6fe: 0x0257, 0x6ff: 0x43c8,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x43e1, 0x701: 0x45c3, 0x702: 0x3f19, 0x703: 0x37de, 0x704: 0x3f21,\n\t0x706: 0x497b, 0x707: 0x3f39, 0x708: 0x3742, 0x709: 0x4435, 0x70a: 0x374e, 0x70b: 0x443b,\n\t0x70c: 0x375a, 0x70d: 0x45ca, 0x70e: 0x45d1, 0x70f: 0x45d8, 0x710: 0x37f6, 0x711: 0x37f0,\n\t0x712: 0x3f41, 0x713: 0x4625, 0x716: 0x37fc, 0x717: 0x3f51,\n\t0x718: 0x3772, 0x719: 0x376c, 0x71a: 0x3760, 0x71b: 0x4441, 0x71d: 0x45df,\n\t0x71e: 0x45e6, 0x71f: 0x45ed, 0x720: 0x382c, 0x721: 0x3826, 0x722: 0x3fa9, 0x723: 0x462d,\n\t0x724: 0x380e, 0x725: 0x3814, 0x726: 0x3832, 0x727: 0x3fb9, 0x728: 0x37a2, 0x729: 0x379c,\n\t0x72a: 0x3790, 0x72b: 0x444d, 0x72c: 0x378a, 0x72d: 0x45b5, 0x72e: 0x45bc, 0x72f: 0x0081,\n\t0x732: 0x3ff1, 0x733: 0x3838, 0x734: 0x3ff9,\n\t0x736: 0x49c9, 0x737: 0x4011, 0x738: 0x377e, 0x739: 0x4447, 0x73a: 0x37ae, 0x73b: 0x4459,\n\t0x73c: 0x37ba, 0x73d: 0x439b, 0x73e: 0x43cd,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0x1d08, 0x741: 0x1d0c, 0x742: 0x0047, 0x743: 0x1d84, 0x745: 0x1d18,\n\t0x746: 0x1d1c, 0x747: 0x00ef, 0x749: 0x1d88, 0x74a: 0x008f, 0x74b: 0x0051,\n\t0x74c: 0x0051, 0x74d: 0x0051, 0x74e: 0x0091, 0x74f: 0x00e0, 0x750: 0x0053, 0x751: 0x0053,\n\t0x752: 0x0059, 0x753: 0x0099, 0x755: 0x005d, 0x756: 0x1abd,\n\t0x759: 0x0061, 0x75a: 0x0063, 0x75b: 0x0065, 0x75c: 0x0065, 0x75d: 0x0065,\n\t0x760: 0x1acf, 0x761: 0x1cf8, 0x762: 0x1ad8,\n\t0x764: 0x0075, 0x766: 0x023c, 0x768: 0x0075,\n\t0x76a: 0x0057, 0x76b: 0x4413, 0x76c: 0x0045, 0x76d: 0x0047, 0x76f: 0x008b,\n\t0x770: 0x004b, 0x771: 0x004d, 0x773: 0x005b, 0x774: 0x009f, 0x775: 0x0308,\n\t0x776: 0x030b, 0x777: 0x030e, 0x778: 0x0311, 0x779: 0x0093, 0x77b: 0x1cc8,\n\t0x77c: 0x026c, 0x77d: 0x0245, 0x77e: 0x01fd, 0x77f: 0x0224,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0x055a, 0x785: 0x0049,\n\t0x786: 0x0089, 0x787: 0x008b, 0x788: 0x0093, 0x789: 0x0095,\n\t0x790: 0x235e, 0x791: 0x236a,\n\t0x792: 0x241e, 0x793: 0x2346, 0x794: 0x23ca, 0x795: 0x2352, 0x796: 0x23d0, 0x797: 0x23e8,\n\t0x798: 0x23f4, 0x799: 0x2358, 0x79a: 0x23fa, 0x79b: 0x2364, 0x79c: 0x23ee, 0x79d: 0x2400,\n\t0x79e: 0x2406, 0x79f: 0x1dec, 0x7a0: 0x0053, 0x7a1: 0x1a87, 0x7a2: 0x1cd4, 0x7a3: 0x1a90,\n\t0x7a4: 0x006d, 0x7a5: 0x1adb, 0x7a6: 0x1d00, 0x7a7: 0x1e78, 0x7a8: 0x1a93, 0x7a9: 0x0071,\n\t0x7aa: 0x1ae7, 0x7ab: 0x1d04, 0x7ac: 0x0059, 0x7ad: 0x0047, 0x7ae: 0x0049, 0x7af: 0x005b,\n\t0x7b0: 0x0093, 0x7b1: 0x1b14, 0x7b2: 0x1d48, 0x7b3: 0x1b1d, 0x7b4: 0x00ad, 0x7b5: 0x1b92,\n\t0x7b6: 0x1d7c, 0x7b7: 0x1e8c, 0x7b8: 0x1b20, 0x7b9: 0x00b1, 0x7ba: 0x1b95, 0x7bb: 0x1d80,\n\t0x7bc: 0x0099, 0x7bd: 0x0087, 0x7be: 0x0089, 0x7bf: 0x009b,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c1: 0x3d47, 0x7c3: 0xa000, 0x7c4: 0x3d4e, 0x7c5: 0xa000,\n\t0x7c7: 0x3d55, 0x7c8: 0xa000, 0x7c9: 0x3d5c,\n\t0x7cd: 0xa000,\n\t0x7e0: 0x30a6, 0x7e1: 0xa000, 0x7e2: 0x3d6a,\n\t0x7e4: 0xa000, 0x7e5: 0xa000,\n\t0x7ed: 0x3d63, 0x7ee: 0x30a1, 0x7ef: 0x30ab,\n\t0x7f0: 0x3d71, 0x7f1: 0x3d78, 0x7f2: 0xa000, 0x7f3: 0xa000, 0x7f4: 0x3d7f, 0x7f5: 0x3d86,\n\t0x7f6: 0xa000, 0x7f7: 0xa000, 0x7f8: 0x3d8d, 0x7f9: 0x3d94, 0x7fa: 0xa000, 0x7fb: 0xa000,\n\t0x7fc: 0xa000, 0x7fd: 0xa000,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x3d9b, 0x801: 0x3da2, 0x802: 0xa000, 0x803: 0xa000, 0x804: 0x3db7, 0x805: 0x3dbe,\n\t0x806: 0xa000, 0x807: 0xa000, 0x808: 0x3dc5, 0x809: 0x3dcc,\n\t0x811: 0xa000,\n\t0x812: 0xa000,\n\t0x822: 0xa000,\n\t0x828: 0xa000, 0x829: 0xa000,\n\t0x82b: 0xa000, 0x82c: 0x3de1, 0x82d: 0x3de8, 0x82e: 0x3def, 0x82f: 0x3df6,\n\t0x832: 0xa000, 0x833: 0xa000, 0x834: 0xa000, 0x835: 0xa000,\n\t// Block 0x21, offset 0x840\n\t0x860: 0x0023, 0x861: 0x0025, 0x862: 0x0027, 0x863: 0x0029,\n\t0x864: 0x002b, 0x865: 0x002d, 0x866: 0x002f, 0x867: 0x0031, 0x868: 0x0033, 0x869: 0x19af,\n\t0x86a: 0x19b2, 0x86b: 0x19b5, 0x86c: 0x19b8, 0x86d: 0x19bb, 0x86e: 0x19be, 0x86f: 0x19c1,\n\t0x870: 0x19c4, 0x871: 0x19c7, 0x872: 0x19ca, 0x873: 0x19d3, 0x874: 0x1b98, 0x875: 0x1b9c,\n\t0x876: 0x1ba0, 0x877: 0x1ba4, 0x878: 0x1ba8, 0x879: 0x1bac, 0x87a: 0x1bb0, 0x87b: 0x1bb4,\n\t0x87c: 0x1bb8, 0x87d: 0x1db0, 0x87e: 0x1db5, 0x87f: 0x1dba,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x1dbf, 0x881: 0x1dc4, 0x882: 0x1dc9, 0x883: 0x1dce, 0x884: 0x1dd3, 0x885: 0x1dd8,\n\t0x886: 0x1ddd, 0x887: 0x1de2, 0x888: 0x19ac, 0x889: 0x19d0, 0x88a: 0x19f4, 0x88b: 0x1a18,\n\t0x88c: 0x1a3c, 0x88d: 0x1a45, 0x88e: 0x1a4b, 0x88f: 0x1a51, 0x890: 0x1a57, 0x891: 0x1c90,\n\t0x892: 0x1c94, 0x893: 0x1c98, 0x894: 0x1c9c, 0x895: 0x1ca0, 0x896: 0x1ca4, 0x897: 0x1ca8,\n\t0x898: 0x1cac, 0x899: 0x1cb0, 0x89a: 0x1cb4, 0x89b: 0x1cb8, 0x89c: 0x1c24, 0x89d: 0x1c28,\n\t0x89e: 0x1c2c, 0x89f: 0x1c30, 0x8a0: 0x1c34, 0x8a1: 0x1c38, 0x8a2: 0x1c3c, 0x8a3: 0x1c40,\n\t0x8a4: 0x1c44, 0x8a5: 0x1c48, 0x8a6: 0x1c4c, 0x8a7: 0x1c50, 0x8a8: 0x1c54, 0x8a9: 0x1c58,\n\t0x8aa: 0x1c5c, 0x8ab: 0x1c60, 0x8ac: 0x1c64, 0x8ad: 0x1c68, 0x8ae: 0x1c6c, 0x8af: 0x1c70,\n\t0x8b0: 0x1c74, 0x8b1: 0x1c78, 0x8b2: 0x1c7c, 0x8b3: 0x1c80, 0x8b4: 0x1c84, 0x8b5: 0x1c88,\n\t0x8b6: 0x0043, 0x8b7: 0x0045, 0x8b8: 0x0047, 0x8b9: 0x0049, 0x8ba: 0x004b, 0x8bb: 0x004d,\n\t0x8bc: 0x004f, 0x8bd: 0x0051, 0x8be: 0x0053, 0x8bf: 0x0055,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x07ba, 0x8c1: 0x07de, 0x8c2: 0x07ea, 0x8c3: 0x07fa, 0x8c4: 0x0802, 0x8c5: 0x080e,\n\t0x8c6: 0x0816, 0x8c7: 0x081e, 0x8c8: 0x082a, 0x8c9: 0x087e, 0x8ca: 0x0896, 0x8cb: 0x08a6,\n\t0x8cc: 0x08b6, 0x8cd: 0x08c6, 0x8ce: 0x08d6, 0x8cf: 0x08f6, 0x8d0: 0x08fa, 0x8d1: 0x08fe,\n\t0x8d2: 0x0932, 0x8d3: 0x095a, 0x8d4: 0x096a, 0x8d5: 0x0972, 0x8d6: 0x0976, 0x8d7: 0x0982,\n\t0x8d8: 0x099e, 0x8d9: 0x09a2, 0x8da: 0x09ba, 0x8db: 0x09be, 0x8dc: 0x09c6, 0x8dd: 0x09d6,\n\t0x8de: 0x0a72, 0x8df: 0x0a86, 0x8e0: 0x0ac6, 0x8e1: 0x0ada, 0x8e2: 0x0ae2, 0x8e3: 0x0ae6,\n\t0x8e4: 0x0af6, 0x8e5: 0x0b12, 0x8e6: 0x0b3e, 0x8e7: 0x0b4a, 0x8e8: 0x0b6a, 0x8e9: 0x0b76,\n\t0x8ea: 0x0b7a, 0x8eb: 0x0b7e, 0x8ec: 0x0b96, 0x8ed: 0x0b9a, 0x8ee: 0x0bc6, 0x8ef: 0x0bd2,\n\t0x8f0: 0x0bda, 0x8f1: 0x0be2, 0x8f2: 0x0bf2, 0x8f3: 0x0bfa, 0x8f4: 0x0c02, 0x8f5: 0x0c2e,\n\t0x8f6: 0x0c32, 0x8f7: 0x0c3a, 0x8f8: 0x0c3e, 0x8f9: 0x0c46, 0x8fa: 0x0c4e, 0x8fb: 0x0c5e,\n\t0x8fc: 0x0c7a, 0x8fd: 0x0cf2, 0x8fe: 0x0d06, 0x8ff: 0x0d0a,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x0d8a, 0x901: 0x0d8e, 0x902: 0x0da2, 0x903: 0x0da6, 0x904: 0x0dae, 0x905: 0x0db6,\n\t0x906: 0x0dbe, 0x907: 0x0dca, 0x908: 0x0df2, 0x909: 0x0e02, 0x90a: 0x0e16, 0x90b: 0x0e86,\n\t0x90c: 0x0e92, 0x90d: 0x0ea2, 0x90e: 0x0eae, 0x90f: 0x0eba, 0x910: 0x0ec2, 0x911: 0x0ec6,\n\t0x912: 0x0eca, 0x913: 0x0ece, 0x914: 0x0ed2, 0x915: 0x0f8a, 0x916: 0x0fd2, 0x917: 0x0fde,\n\t0x918: 0x0fe2, 0x919: 0x0fe6, 0x91a: 0x0fea, 0x91b: 0x0ff2, 0x91c: 0x0ff6, 0x91d: 0x100a,\n\t0x91e: 0x1026, 0x91f: 0x102e, 0x920: 0x106e, 0x921: 0x1072, 0x922: 0x107a, 0x923: 0x107e,\n\t0x924: 0x1086, 0x925: 0x108a, 0x926: 0x10ae, 0x927: 0x10b2, 0x928: 0x10ce, 0x929: 0x10d2,\n\t0x92a: 0x10d6, 0x92b: 0x10da, 0x92c: 0x10ee, 0x92d: 0x1112, 0x92e: 0x1116, 0x92f: 0x111a,\n\t0x930: 0x113e, 0x931: 0x117e, 0x932: 0x1182, 0x933: 0x11a2, 0x934: 0x11b2, 0x935: 0x11ba,\n\t0x936: 0x11da, 0x937: 0x11fe, 0x938: 0x1242, 0x939: 0x124a, 0x93a: 0x125e, 0x93b: 0x126a,\n\t0x93c: 0x1272, 0x93d: 0x127a, 0x93e: 0x127e, 0x93f: 0x1282,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x129a, 0x941: 0x129e, 0x942: 0x12ba, 0x943: 0x12c2, 0x944: 0x12ca, 0x945: 0x12ce,\n\t0x946: 0x12da, 0x947: 0x12e2, 0x948: 0x12e6, 0x949: 0x12ea, 0x94a: 0x12f2, 0x94b: 0x12f6,\n\t0x94c: 0x1396, 0x94d: 0x13aa, 0x94e: 0x13de, 0x94f: 0x13e2, 0x950: 0x13ea, 0x951: 0x1416,\n\t0x952: 0x141e, 0x953: 0x1426, 0x954: 0x142e, 0x955: 0x146a, 0x956: 0x146e, 0x957: 0x1476,\n\t0x958: 0x147a, 0x959: 0x147e, 0x95a: 0x14aa, 0x95b: 0x14ae, 0x95c: 0x14b6, 0x95d: 0x14ca,\n\t0x95e: 0x14ce, 0x95f: 0x14ea, 0x960: 0x14f2, 0x961: 0x14f6, 0x962: 0x151a, 0x963: 0x153a,\n\t0x964: 0x154e, 0x965: 0x1552, 0x966: 0x155a, 0x967: 0x1586, 0x968: 0x158a, 0x969: 0x159a,\n\t0x96a: 0x15be, 0x96b: 0x15ca, 0x96c: 0x15da, 0x96d: 0x15f2, 0x96e: 0x15fa, 0x96f: 0x15fe,\n\t0x970: 0x1602, 0x971: 0x1606, 0x972: 0x1612, 0x973: 0x1616, 0x974: 0x161e, 0x975: 0x163a,\n\t0x976: 0x163e, 0x977: 0x1642, 0x978: 0x165a, 0x979: 0x165e, 0x97a: 0x1666, 0x97b: 0x167a,\n\t0x97c: 0x167e, 0x97d: 0x1682, 0x97e: 0x168a, 0x97f: 0x168e,\n\t// Block 0x26, offset 0x980\n\t0x986: 0xa000, 0x98b: 0xa000,\n\t0x98c: 0x4049, 0x98d: 0xa000, 0x98e: 0x4051, 0x98f: 0xa000, 0x990: 0x4059, 0x991: 0xa000,\n\t0x992: 0x4061, 0x993: 0xa000, 0x994: 0x4069, 0x995: 0xa000, 0x996: 0x4071, 0x997: 0xa000,\n\t0x998: 0x4079, 0x999: 0xa000, 0x99a: 0x4081, 0x99b: 0xa000, 0x99c: 0x4089, 0x99d: 0xa000,\n\t0x99e: 0x4091, 0x99f: 0xa000, 0x9a0: 0x4099, 0x9a1: 0xa000, 0x9a2: 0x40a1,\n\t0x9a4: 0xa000, 0x9a5: 0x40a9, 0x9a6: 0xa000, 0x9a7: 0x40b1, 0x9a8: 0xa000, 0x9a9: 0x40b9,\n\t0x9af: 0xa000,\n\t0x9b0: 0x40c1, 0x9b1: 0x40c9, 0x9b2: 0xa000, 0x9b3: 0x40d1, 0x9b4: 0x40d9, 0x9b5: 0xa000,\n\t0x9b6: 0x40e1, 0x9b7: 0x40e9, 0x9b8: 0xa000, 0x9b9: 0x40f1, 0x9ba: 0x40f9, 0x9bb: 0xa000,\n\t0x9bc: 0x4101, 0x9bd: 0x4109,\n\t// Block 0x27, offset 0x9c0\n\t0x9d4: 0x4041,\n\t0x9d9: 0x9904, 0x9da: 0x9904, 0x9db: 0x441d, 0x9dc: 0x4423, 0x9dd: 0xa000,\n\t0x9de: 0x4111, 0x9df: 0x27e4,\n\t0x9e6: 0xa000,\n\t0x9eb: 0xa000, 0x9ec: 0x4121, 0x9ed: 0xa000, 0x9ee: 0x4129, 0x9ef: 0xa000,\n\t0x9f0: 0x4131, 0x9f1: 0xa000, 0x9f2: 0x4139, 0x9f3: 0xa000, 0x9f4: 0x4141, 0x9f5: 0xa000,\n\t0x9f6: 0x4149, 0x9f7: 0xa000, 0x9f8: 0x4151, 0x9f9: 0xa000, 0x9fa: 0x4159, 0x9fb: 0xa000,\n\t0x9fc: 0x4161, 0x9fd: 0xa000, 0x9fe: 0x4169, 0x9ff: 0xa000,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x4171, 0xa01: 0xa000, 0xa02: 0x4179, 0xa04: 0xa000, 0xa05: 0x4181,\n\t0xa06: 0xa000, 0xa07: 0x4189, 0xa08: 0xa000, 0xa09: 0x4191,\n\t0xa0f: 0xa000, 0xa10: 0x4199, 0xa11: 0x41a1,\n\t0xa12: 0xa000, 0xa13: 0x41a9, 0xa14: 0x41b1, 0xa15: 0xa000, 0xa16: 0x41b9, 0xa17: 0x41c1,\n\t0xa18: 0xa000, 0xa19: 0x41c9, 0xa1a: 0x41d1, 0xa1b: 0xa000, 0xa1c: 0x41d9, 0xa1d: 0x41e1,\n\t0xa2f: 0xa000,\n\t0xa30: 0xa000, 0xa31: 0xa000, 0xa32: 0xa000, 0xa34: 0x4119,\n\t0xa37: 0x41e9, 0xa38: 0x41f1, 0xa39: 0x41f9, 0xa3a: 0x4201,\n\t0xa3d: 0xa000, 0xa3e: 0x4209, 0xa3f: 0x27f9,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0x045a, 0xa41: 0x041e, 0xa42: 0x0422, 0xa43: 0x0426, 0xa44: 0x046e, 0xa45: 0x042a,\n\t0xa46: 0x042e, 0xa47: 0x0432, 0xa48: 0x0436, 0xa49: 0x043a, 0xa4a: 0x043e, 0xa4b: 0x0442,\n\t0xa4c: 0x0446, 0xa4d: 0x044a, 0xa4e: 0x044e, 0xa4f: 0x4afe, 0xa50: 0x4b04, 0xa51: 0x4b0a,\n\t0xa52: 0x4b10, 0xa53: 0x4b16, 0xa54: 0x4b1c, 0xa55: 0x4b22, 0xa56: 0x4b28, 0xa57: 0x4b2e,\n\t0xa58: 0x4b34, 0xa59: 0x4b3a, 0xa5a: 0x4b40, 0xa5b: 0x4b46, 0xa5c: 0x4b4c, 0xa5d: 0x4b52,\n\t0xa5e: 0x4b58, 0xa5f: 0x4b5e, 0xa60: 0x4b64, 0xa61: 0x4b6a, 0xa62: 0x4b70, 0xa63: 0x4b76,\n\t0xa64: 0x04b6, 0xa65: 0x0452, 0xa66: 0x0456, 0xa67: 0x04da, 0xa68: 0x04de, 0xa69: 0x04e2,\n\t0xa6a: 0x04e6, 0xa6b: 0x04ea, 0xa6c: 0x04ee, 0xa6d: 0x04f2, 0xa6e: 0x045e, 0xa6f: 0x04f6,\n\t0xa70: 0x04fa, 0xa71: 0x0462, 0xa72: 0x0466, 0xa73: 0x046a, 0xa74: 0x0472, 0xa75: 0x0476,\n\t0xa76: 0x047a, 0xa77: 0x047e, 0xa78: 0x0482, 0xa79: 0x0486, 0xa7a: 0x048a, 0xa7b: 0x048e,\n\t0xa7c: 0x0492, 0xa7d: 0x0496, 0xa7e: 0x049a, 0xa7f: 0x049e,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0x04a2, 0xa81: 0x04a6, 0xa82: 0x04fe, 0xa83: 0x0502, 0xa84: 0x04aa, 0xa85: 0x04ae,\n\t0xa86: 0x04b2, 0xa87: 0x04ba, 0xa88: 0x04be, 0xa89: 0x04c2, 0xa8a: 0x04c6, 0xa8b: 0x04ca,\n\t0xa8c: 0x04ce, 0xa8d: 0x04d2, 0xa8e: 0x04d6,\n\t0xa92: 0x07ba, 0xa93: 0x0816, 0xa94: 0x07c6, 0xa95: 0x0a76, 0xa96: 0x07ca, 0xa97: 0x07e2,\n\t0xa98: 0x07ce, 0xa99: 0x108e, 0xa9a: 0x0802, 0xa9b: 0x07d6, 0xa9c: 0x07be, 0xa9d: 0x0afa,\n\t0xa9e: 0x0a8a, 0xa9f: 0x082a,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0x2184, 0xac1: 0x218a, 0xac2: 0x2190, 0xac3: 0x2196, 0xac4: 0x219c, 0xac5: 0x21a2,\n\t0xac6: 0x21a8, 0xac7: 0x21ae, 0xac8: 0x21b4, 0xac9: 0x21ba, 0xaca: 0x21c0, 0xacb: 0x21c6,\n\t0xacc: 0x21cc, 0xacd: 0x21d2, 0xace: 0x285d, 0xacf: 0x2866, 0xad0: 0x286f, 0xad1: 0x2878,\n\t0xad2: 0x2881, 0xad3: 0x288a, 0xad4: 0x2893, 0xad5: 0x289c, 0xad6: 0x28a5, 0xad7: 0x28b7,\n\t0xad8: 0x28c0, 0xad9: 0x28c9, 0xada: 0x28d2, 0xadb: 0x28db, 0xadc: 0x28ae, 0xadd: 0x2ce3,\n\t0xade: 0x2c24, 0xae0: 0x21d8, 0xae1: 0x21f0, 0xae2: 0x21e4, 0xae3: 0x2238,\n\t0xae4: 0x21f6, 0xae5: 0x2214, 0xae6: 0x21de, 0xae7: 0x220e, 0xae8: 0x21ea, 0xae9: 0x2220,\n\t0xaea: 0x2250, 0xaeb: 0x226e, 0xaec: 0x2268, 0xaed: 0x225c, 0xaee: 0x22aa, 0xaef: 0x223e,\n\t0xaf0: 0x224a, 0xaf1: 0x2262, 0xaf2: 0x2256, 0xaf3: 0x2280, 0xaf4: 0x222c, 0xaf5: 0x2274,\n\t0xaf6: 0x229e, 0xaf7: 0x2286, 0xaf8: 0x221a, 0xaf9: 0x21fc, 0xafa: 0x2232, 0xafb: 0x2244,\n\t0xafc: 0x227a, 0xafd: 0x2202, 0xafe: 0x22a4, 0xaff: 0x2226,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0x228c, 0xb01: 0x2208, 0xb02: 0x2292, 0xb03: 0x2298, 0xb04: 0x0a2a, 0xb05: 0x0bfe,\n\t0xb06: 0x0da2, 0xb07: 0x11c2,\n\t0xb10: 0x1cf4, 0xb11: 0x19d6,\n\t0xb12: 0x19d9, 0xb13: 0x19dc, 0xb14: 0x19df, 0xb15: 0x19e2, 0xb16: 0x19e5, 0xb17: 0x19e8,\n\t0xb18: 0x19eb, 0xb19: 0x19ee, 0xb1a: 0x19f7, 0xb1b: 0x19fa, 0xb1c: 0x19fd, 0xb1d: 0x1a00,\n\t0xb1e: 0x1a03, 0xb1f: 0x1a06, 0xb20: 0x0406, 0xb21: 0x040e, 0xb22: 0x0412, 0xb23: 0x041a,\n\t0xb24: 0x041e, 0xb25: 0x0422, 0xb26: 0x042a, 0xb27: 0x0432, 0xb28: 0x0436, 0xb29: 0x043e,\n\t0xb2a: 0x0442, 0xb2b: 0x0446, 0xb2c: 0x044a, 0xb2d: 0x044e, 0xb2e: 0x2f59, 0xb2f: 0x2f61,\n\t0xb30: 0x2f69, 0xb31: 0x2f71, 0xb32: 0x2f79, 0xb33: 0x2f81, 0xb34: 0x2f89, 0xb35: 0x2f91,\n\t0xb36: 0x2fa1, 0xb37: 0x2fa9, 0xb38: 0x2fb1, 0xb39: 0x2fb9, 0xb3a: 0x2fc1, 0xb3b: 0x2fc9,\n\t0xb3c: 0x3014, 0xb3d: 0x2fdc, 0xb3e: 0x2f99,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x07ba, 0xb41: 0x0816, 0xb42: 0x07c6, 0xb43: 0x0a76, 0xb44: 0x081a, 0xb45: 0x08aa,\n\t0xb46: 0x07c2, 0xb47: 0x08a6, 0xb48: 0x0806, 0xb49: 0x0982, 0xb4a: 0x0e02, 0xb4b: 0x0f8a,\n\t0xb4c: 0x0ed2, 0xb4d: 0x0e16, 0xb4e: 0x155a, 0xb4f: 0x0a86, 0xb50: 0x0dca, 0xb51: 0x0e46,\n\t0xb52: 0x0e06, 0xb53: 0x1146, 0xb54: 0x09f6, 0xb55: 0x0ffe, 0xb56: 0x1482, 0xb57: 0x115a,\n\t0xb58: 0x093e, 0xb59: 0x118a, 0xb5a: 0x1096, 0xb5b: 0x0b12, 0xb5c: 0x150a, 0xb5d: 0x087a,\n\t0xb5e: 0x09a6, 0xb5f: 0x0ef2, 0xb60: 0x1622, 0xb61: 0x083e, 0xb62: 0x08ce, 0xb63: 0x0e96,\n\t0xb64: 0x07ca, 0xb65: 0x07e2, 0xb66: 0x07ce, 0xb67: 0x0bd6, 0xb68: 0x09ea, 0xb69: 0x097a,\n\t0xb6a: 0x0b52, 0xb6b: 0x0b46, 0xb6c: 0x10e6, 0xb6d: 0x083a, 0xb6e: 0x1496, 0xb6f: 0x0996,\n\t0xb70: 0x0aee, 0xb71: 0x1a09, 0xb72: 0x1a0c, 0xb73: 0x1a0f, 0xb74: 0x1a12, 0xb75: 0x1a1b,\n\t0xb76: 0x1a1e, 0xb77: 0x1a21, 0xb78: 0x1a24, 0xb79: 0x1a27, 0xb7a: 0x1a2a, 0xb7b: 0x1a2d,\n\t0xb7c: 0x1a30, 0xb7d: 0x1a33, 0xb7e: 0x1a36, 0xb7f: 0x1a3f,\n\t// Block 0x2e, offset 0xb80\n\t0xb80: 0x1df6, 0xb81: 0x1e05, 0xb82: 0x1e14, 0xb83: 0x1e23, 0xb84: 0x1e32, 0xb85: 0x1e41,\n\t0xb86: 0x1e50, 0xb87: 0x1e5f, 0xb88: 0x1e6e, 0xb89: 0x22bc, 0xb8a: 0x22ce, 0xb8b: 0x22e0,\n\t0xb8c: 0x1a81, 0xb8d: 0x1d34, 0xb8e: 0x1b02, 0xb8f: 0x1cd8, 0xb90: 0x05c6, 0xb91: 0x05ce,\n\t0xb92: 0x05d6, 0xb93: 0x05de, 0xb94: 0x05e6, 0xb95: 0x05ea, 0xb96: 0x05ee, 0xb97: 0x05f2,\n\t0xb98: 0x05f6, 0xb99: 0x05fa, 0xb9a: 0x05fe, 0xb9b: 0x0602, 0xb9c: 0x0606, 0xb9d: 0x060a,\n\t0xb9e: 0x060e, 0xb9f: 0x0612, 0xba0: 0x0616, 0xba1: 0x061e, 0xba2: 0x0622, 0xba3: 0x0626,\n\t0xba4: 0x062a, 0xba5: 0x062e, 0xba6: 0x0632, 0xba7: 0x0636, 0xba8: 0x063a, 0xba9: 0x063e,\n\t0xbaa: 0x0642, 0xbab: 0x0646, 0xbac: 0x064a, 0xbad: 0x064e, 0xbae: 0x0652, 0xbaf: 0x0656,\n\t0xbb0: 0x065a, 0xbb1: 0x065e, 0xbb2: 0x0662, 0xbb3: 0x066a, 0xbb4: 0x0672, 0xbb5: 0x067a,\n\t0xbb6: 0x067e, 0xbb7: 0x0682, 0xbb8: 0x0686, 0xbb9: 0x068a, 0xbba: 0x068e, 0xbbb: 0x0692,\n\t0xbbc: 0x0696, 0xbbd: 0x069a, 0xbbe: 0x069e, 0xbbf: 0x282a,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc0: 0x2c43, 0xbc1: 0x2adf, 0xbc2: 0x2c53, 0xbc3: 0x29b7, 0xbc4: 0x3025, 0xbc5: 0x29c1,\n\t0xbc6: 0x29cb, 0xbc7: 0x3069, 0xbc8: 0x2aec, 0xbc9: 0x29d5, 0xbca: 0x29df, 0xbcb: 0x29e9,\n\t0xbcc: 0x2b13, 0xbcd: 0x2b20, 0xbce: 0x2af9, 0xbcf: 0x2b06, 0xbd0: 0x2fea, 0xbd1: 0x2b2d,\n\t0xbd2: 0x2b3a, 0xbd3: 0x2cf5, 0xbd4: 0x27eb, 0xbd5: 0x2d08, 0xbd6: 0x2d1b, 0xbd7: 0x2c63,\n\t0xbd8: 0x2b47, 0xbd9: 0x2d2e, 0xbda: 0x2d41, 0xbdb: 0x2b54, 0xbdc: 0x29f3, 0xbdd: 0x29fd,\n\t0xbde: 0x2ff8, 0xbdf: 0x2b61, 0xbe0: 0x2c73, 0xbe1: 0x3036, 0xbe2: 0x2a07, 0xbe3: 0x2a11,\n\t0xbe4: 0x2b6e, 0xbe5: 0x2a1b, 0xbe6: 0x2a25, 0xbe7: 0x2800, 0xbe8: 0x2807, 0xbe9: 0x2a2f,\n\t0xbea: 0x2a39, 0xbeb: 0x2d54, 0xbec: 0x2b7b, 0xbed: 0x2c83, 0xbee: 0x2d67, 0xbef: 0x2b88,\n\t0xbf0: 0x2a4d, 0xbf1: 0x2a43, 0xbf2: 0x307d, 0xbf3: 0x2b95, 0xbf4: 0x2d7a, 0xbf5: 0x2a57,\n\t0xbf6: 0x2c93, 0xbf7: 0x2a61, 0xbf8: 0x2baf, 0xbf9: 0x2a6b, 0xbfa: 0x2bbc, 0xbfb: 0x3047,\n\t0xbfc: 0x2ba2, 0xbfd: 0x2ca3, 0xbfe: 0x2bc9, 0xbff: 0x280e,\n\t// Block 0x30, offset 0xc00\n\t0xc00: 0x3058, 0xc01: 0x2a75, 0xc02: 0x2a7f, 0xc03: 0x2bd6, 0xc04: 0x2a89, 0xc05: 0x2a93,\n\t0xc06: 0x2a9d, 0xc07: 0x2cb3, 0xc08: 0x2be3, 0xc09: 0x2815, 0xc0a: 0x2d8d, 0xc0b: 0x2fd1,\n\t0xc0c: 0x2cc3, 0xc0d: 0x2bf0, 0xc0e: 0x3006, 0xc0f: 0x2aa7, 0xc10: 0x2ab1, 0xc11: 0x2bfd,\n\t0xc12: 0x281c, 0xc13: 0x2c0a, 0xc14: 0x2cd3, 0xc15: 0x2823, 0xc16: 0x2da0, 0xc17: 0x2abb,\n\t0xc18: 0x1de7, 0xc19: 0x1dfb, 0xc1a: 0x1e0a, 0xc1b: 0x1e19, 0xc1c: 0x1e28, 0xc1d: 0x1e37,\n\t0xc1e: 0x1e46, 0xc1f: 0x1e55, 0xc20: 0x1e64, 0xc21: 0x1e73, 0xc22: 0x22c2, 0xc23: 0x22d4,\n\t0xc24: 0x22e6, 0xc25: 0x22f2, 0xc26: 0x22fe, 0xc27: 0x230a, 0xc28: 0x2316, 0xc29: 0x2322,\n\t0xc2a: 0x232e, 0xc2b: 0x233a, 0xc2c: 0x2376, 0xc2d: 0x2382, 0xc2e: 0x238e, 0xc2f: 0x239a,\n\t0xc30: 0x23a6, 0xc31: 0x1d44, 0xc32: 0x1af6, 0xc33: 0x1a63, 0xc34: 0x1d14, 0xc35: 0x1b77,\n\t0xc36: 0x1b86, 0xc37: 0x1afc, 0xc38: 0x1d2c, 0xc39: 0x1d30, 0xc3a: 0x1a8d, 0xc3b: 0x2838,\n\t0xc3c: 0x2846, 0xc3d: 0x2831, 0xc3e: 0x283f, 0xc3f: 0x2c17,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x1b7a, 0xc41: 0x1b62, 0xc42: 0x1d90, 0xc43: 0x1b4a, 0xc44: 0x1b23, 0xc45: 0x1a96,\n\t0xc46: 0x1aa5, 0xc47: 0x1a75, 0xc48: 0x1d20, 0xc49: 0x1e82, 0xc4a: 0x1b7d, 0xc4b: 0x1b65,\n\t0xc4c: 0x1d94, 0xc4d: 0x1da0, 0xc4e: 0x1b56, 0xc4f: 0x1b2c, 0xc50: 0x1a84, 0xc51: 0x1d4c,\n\t0xc52: 0x1ce0, 0xc53: 0x1ccc, 0xc54: 0x1cfc, 0xc55: 0x1da4, 0xc56: 0x1b59, 0xc57: 0x1af9,\n\t0xc58: 0x1b2f, 0xc59: 0x1b0e, 0xc5a: 0x1b71, 0xc5b: 0x1da8, 0xc5c: 0x1b5c, 0xc5d: 0x1af0,\n\t0xc5e: 0x1b32, 0xc5f: 0x1d6c, 0xc60: 0x1d24, 0xc61: 0x1b44, 0xc62: 0x1d54, 0xc63: 0x1d70,\n\t0xc64: 0x1d28, 0xc65: 0x1b47, 0xc66: 0x1d58, 0xc67: 0x2418, 0xc68: 0x242c, 0xc69: 0x1ac6,\n\t0xc6a: 0x1d50, 0xc6b: 0x1ce4, 0xc6c: 0x1cd0, 0xc6d: 0x1d78, 0xc6e: 0x284d, 0xc6f: 0x28e4,\n\t0xc70: 0x1b89, 0xc71: 0x1b74, 0xc72: 0x1dac, 0xc73: 0x1b5f, 0xc74: 0x1b80, 0xc75: 0x1b68,\n\t0xc76: 0x1d98, 0xc77: 0x1b4d, 0xc78: 0x1b26, 0xc79: 0x1ab1, 0xc7a: 0x1b83, 0xc7b: 0x1b6b,\n\t0xc7c: 0x1d9c, 0xc7d: 0x1b50, 0xc7e: 0x1b29, 0xc7f: 0x1ab4,\n\t// Block 0x32, offset 0xc80\n\t0xc80: 0x1d5c, 0xc81: 0x1ce8, 0xc82: 0x1e7d, 0xc83: 0x1a66, 0xc84: 0x1aea, 0xc85: 0x1aed,\n\t0xc86: 0x2425, 0xc87: 0x1cc4, 0xc88: 0x1af3, 0xc89: 0x1a78, 0xc8a: 0x1b11, 0xc8b: 0x1a7b,\n\t0xc8c: 0x1b1a, 0xc8d: 0x1a99, 0xc8e: 0x1a9c, 0xc8f: 0x1b35, 0xc90: 0x1b3b, 0xc91: 0x1b3e,\n\t0xc92: 0x1d60, 0xc93: 0x1b41, 0xc94: 0x1b53, 0xc95: 0x1d68, 0xc96: 0x1d74, 0xc97: 0x1ac0,\n\t0xc98: 0x1e87, 0xc99: 0x1cec, 0xc9a: 0x1ac3, 0xc9b: 0x1b8c, 0xc9c: 0x1ad5, 0xc9d: 0x1ae4,\n\t0xc9e: 0x2412, 0xc9f: 0x240c, 0xca0: 0x1df1, 0xca1: 0x1e00, 0xca2: 0x1e0f, 0xca3: 0x1e1e,\n\t0xca4: 0x1e2d, 0xca5: 0x1e3c, 0xca6: 0x1e4b, 0xca7: 0x1e5a, 0xca8: 0x1e69, 0xca9: 0x22b6,\n\t0xcaa: 0x22c8, 0xcab: 0x22da, 0xcac: 0x22ec, 0xcad: 0x22f8, 0xcae: 0x2304, 0xcaf: 0x2310,\n\t0xcb0: 0x231c, 0xcb1: 0x2328, 0xcb2: 0x2334, 0xcb3: 0x2370, 0xcb4: 0x237c, 0xcb5: 0x2388,\n\t0xcb6: 0x2394, 0xcb7: 0x23a0, 0xcb8: 0x23ac, 0xcb9: 0x23b2, 0xcba: 0x23b8, 0xcbb: 0x23be,\n\t0xcbc: 0x23c4, 0xcbd: 0x23d6, 0xcbe: 0x23dc, 0xcbf: 0x1d40,\n\t// Block 0x33, offset 0xcc0\n\t0xcc0: 0x1472, 0xcc1: 0x0df6, 0xcc2: 0x14ce, 0xcc3: 0x149a, 0xcc4: 0x0f52, 0xcc5: 0x07e6,\n\t0xcc6: 0x09da, 0xcc7: 0x1726, 0xcc8: 0x1726, 0xcc9: 0x0b06, 0xcca: 0x155a, 0xccb: 0x0a3e,\n\t0xccc: 0x0b02, 0xccd: 0x0cea, 0xcce: 0x10ca, 0xccf: 0x125a, 0xcd0: 0x1392, 0xcd1: 0x13ce,\n\t0xcd2: 0x1402, 0xcd3: 0x1516, 0xcd4: 0x0e6e, 0xcd5: 0x0efa, 0xcd6: 0x0fa6, 0xcd7: 0x103e,\n\t0xcd8: 0x135a, 0xcd9: 0x1542, 0xcda: 0x166e, 0xcdb: 0x080a, 0xcdc: 0x09ae, 0xcdd: 0x0e82,\n\t0xcde: 0x0fca, 0xcdf: 0x138e, 0xce0: 0x16be, 0xce1: 0x0bae, 0xce2: 0x0f72, 0xce3: 0x137e,\n\t0xce4: 0x1412, 0xce5: 0x0d1e, 0xce6: 0x12b6, 0xce7: 0x13da, 0xce8: 0x0c1a, 0xce9: 0x0e0a,\n\t0xcea: 0x0f12, 0xceb: 0x1016, 0xcec: 0x1522, 0xced: 0x084a, 0xcee: 0x08e2, 0xcef: 0x094e,\n\t0xcf0: 0x0d86, 0xcf1: 0x0e7a, 0xcf2: 0x0fc6, 0xcf3: 0x10ea, 0xcf4: 0x1272, 0xcf5: 0x1386,\n\t0xcf6: 0x139e, 0xcf7: 0x14c2, 0xcf8: 0x15ea, 0xcf9: 0x169e, 0xcfa: 0x16ba, 0xcfb: 0x1126,\n\t0xcfc: 0x1166, 0xcfd: 0x121e, 0xcfe: 0x133e, 0xcff: 0x1576,\n\t// Block 0x34, offset 0xd00\n\t0xd00: 0x16c6, 0xd01: 0x1446, 0xd02: 0x0ac2, 0xd03: 0x0c36, 0xd04: 0x11d6, 0xd05: 0x1296,\n\t0xd06: 0x0ffa, 0xd07: 0x112e, 0xd08: 0x1492, 0xd09: 0x15e2, 0xd0a: 0x0abe, 0xd0b: 0x0b8a,\n\t0xd0c: 0x0e72, 0xd0d: 0x0f26, 0xd0e: 0x0f5a, 0xd0f: 0x120e, 0xd10: 0x1236, 0xd11: 0x15a2,\n\t0xd12: 0x094a, 0xd13: 0x12a2, 0xd14: 0x08ee, 0xd15: 0x08ea, 0xd16: 0x1192, 0xd17: 0x1222,\n\t0xd18: 0x1356, 0xd19: 0x15aa, 0xd1a: 0x1462, 0xd1b: 0x0d22, 0xd1c: 0x0e6e, 0xd1d: 0x1452,\n\t0xd1e: 0x07f2, 0xd1f: 0x0b5e, 0xd20: 0x0c8e, 0xd21: 0x102a, 0xd22: 0x10aa, 0xd23: 0x096e,\n\t0xd24: 0x1136, 0xd25: 0x085a, 0xd26: 0x0c72, 0xd27: 0x07d2, 0xd28: 0x0ee6, 0xd29: 0x0d9e,\n\t0xd2a: 0x120a, 0xd2b: 0x09c2, 0xd2c: 0x0aae, 0xd2d: 0x10f6, 0xd2e: 0x135e, 0xd2f: 0x1436,\n\t0xd30: 0x0eb2, 0xd31: 0x14f2, 0xd32: 0x0ede, 0xd33: 0x0d32, 0xd34: 0x1316, 0xd35: 0x0d52,\n\t0xd36: 0x10a6, 0xd37: 0x0826, 0xd38: 0x08a2, 0xd39: 0x08e6, 0xd3a: 0x0e4e, 0xd3b: 0x11f6,\n\t0xd3c: 0x12ee, 0xd3d: 0x1442, 0xd3e: 0x1556, 0xd3f: 0x0956,\n\t// Block 0x35, offset 0xd40\n\t0xd40: 0x0a0a, 0xd41: 0x0b12, 0xd42: 0x0c2a, 0xd43: 0x0dba, 0xd44: 0x0f76, 0xd45: 0x113a,\n\t0xd46: 0x1592, 0xd47: 0x1676, 0xd48: 0x16ca, 0xd49: 0x16e2, 0xd4a: 0x0932, 0xd4b: 0x0dee,\n\t0xd4c: 0x0e9e, 0xd4d: 0x14e6, 0xd4e: 0x0bf6, 0xd4f: 0x0cd2, 0xd50: 0x0cee, 0xd51: 0x0d7e,\n\t0xd52: 0x0f66, 0xd53: 0x0fb2, 0xd54: 0x1062, 0xd55: 0x1186, 0xd56: 0x122a, 0xd57: 0x128e,\n\t0xd58: 0x14d6, 0xd59: 0x1366, 0xd5a: 0x14fe, 0xd5b: 0x157a, 0xd5c: 0x090a, 0xd5d: 0x0936,\n\t0xd5e: 0x0a1e, 0xd5f: 0x0fa2, 0xd60: 0x13ee, 0xd61: 0x1436, 0xd62: 0x0c16, 0xd63: 0x0c86,\n\t0xd64: 0x0d4a, 0xd65: 0x0eaa, 0xd66: 0x11d2, 0xd67: 0x101e, 0xd68: 0x0836, 0xd69: 0x0a7a,\n\t0xd6a: 0x0b5e, 0xd6b: 0x0bc2, 0xd6c: 0x0c92, 0xd6d: 0x103a, 0xd6e: 0x1056, 0xd6f: 0x1266,\n\t0xd70: 0x1286, 0xd71: 0x155e, 0xd72: 0x15de, 0xd73: 0x15ee, 0xd74: 0x162a, 0xd75: 0x084e,\n\t0xd76: 0x117a, 0xd77: 0x154a, 0xd78: 0x15c6, 0xd79: 0x0caa, 0xd7a: 0x0812, 0xd7b: 0x0872,\n\t0xd7c: 0x0b62, 0xd7d: 0x0b82, 0xd7e: 0x0daa, 0xd7f: 0x0e6e,\n\t// Block 0x36, offset 0xd80\n\t0xd80: 0x0fbe, 0xd81: 0x10c6, 0xd82: 0x1372, 0xd83: 0x1512, 0xd84: 0x171e, 0xd85: 0x0dde,\n\t0xd86: 0x159e, 0xd87: 0x092e, 0xd88: 0x0e2a, 0xd89: 0x0e36, 0xd8a: 0x0f0a, 0xd8b: 0x0f42,\n\t0xd8c: 0x1046, 0xd8d: 0x10a2, 0xd8e: 0x1122, 0xd8f: 0x1206, 0xd90: 0x1636, 0xd91: 0x08aa,\n\t0xd92: 0x0cfe, 0xd93: 0x15ae, 0xd94: 0x0862, 0xd95: 0x0ba6, 0xd96: 0x0f2a, 0xd97: 0x14da,\n\t0xd98: 0x0c62, 0xd99: 0x0cb2, 0xd9a: 0x0e3e, 0xd9b: 0x102a, 0xd9c: 0x15b6, 0xd9d: 0x0912,\n\t0xd9e: 0x09fa, 0xd9f: 0x0b92, 0xda0: 0x0dce, 0xda1: 0x0e1a, 0xda2: 0x0e5a, 0xda3: 0x0eee,\n\t0xda4: 0x1042, 0xda5: 0x10b6, 0xda6: 0x1252, 0xda7: 0x13f2, 0xda8: 0x13fe, 0xda9: 0x1552,\n\t0xdaa: 0x15d2, 0xdab: 0x097e, 0xdac: 0x0f46, 0xdad: 0x09fe, 0xdae: 0x0fc2, 0xdaf: 0x1066,\n\t0xdb0: 0x1382, 0xdb1: 0x15ba, 0xdb2: 0x16a6, 0xdb3: 0x16ce, 0xdb4: 0x0e32, 0xdb5: 0x0f22,\n\t0xdb6: 0x12be, 0xdb7: 0x11b2, 0xdb8: 0x11be, 0xdb9: 0x11e2, 0xdba: 0x1012, 0xdbb: 0x0f9a,\n\t0xdbc: 0x145e, 0xdbd: 0x082e, 0xdbe: 0x1326, 0xdbf: 0x0916,\n\t// Block 0x37, offset 0xdc0\n\t0xdc0: 0x0906, 0xdc1: 0x0c06, 0xdc2: 0x0d26, 0xdc3: 0x11ee, 0xdc4: 0x0b4e, 0xdc5: 0x0efe,\n\t0xdc6: 0x0dea, 0xdc7: 0x14e2, 0xdc8: 0x13e2, 0xdc9: 0x15a6, 0xdca: 0x141e, 0xdcb: 0x0c22,\n\t0xdcc: 0x0882, 0xdcd: 0x0a56, 0xdd0: 0x0aaa,\n\t0xdd2: 0x0dda, 0xdd5: 0x08f2, 0xdd6: 0x101a, 0xdd7: 0x10de,\n\t0xdd8: 0x1142, 0xdd9: 0x115e, 0xdda: 0x1162, 0xddb: 0x1176, 0xddc: 0x15f6, 0xddd: 0x11e6,\n\t0xdde: 0x126a, 0xde0: 0x138a, 0xde2: 0x144e,\n\t0xde5: 0x1502, 0xde6: 0x152e,\n\t0xdea: 0x164a, 0xdeb: 0x164e, 0xdec: 0x1652, 0xded: 0x16b6, 0xdee: 0x1526, 0xdef: 0x15c2,\n\t0xdf0: 0x0852, 0xdf1: 0x0876, 0xdf2: 0x088a, 0xdf3: 0x0946, 0xdf4: 0x0952, 0xdf5: 0x0992,\n\t0xdf6: 0x0a46, 0xdf7: 0x0a62, 0xdf8: 0x0a6a, 0xdf9: 0x0aa6, 0xdfa: 0x0ab2, 0xdfb: 0x0b8e,\n\t0xdfc: 0x0b96, 0xdfd: 0x0c9e, 0xdfe: 0x0cc6, 0xdff: 0x0cce,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0x0ce6, 0xe01: 0x0d92, 0xe02: 0x0dc2, 0xe03: 0x0de2, 0xe04: 0x0e52, 0xe05: 0x0f16,\n\t0xe06: 0x0f32, 0xe07: 0x0f62, 0xe08: 0x0fb6, 0xe09: 0x0fd6, 0xe0a: 0x104a, 0xe0b: 0x112a,\n\t0xe0c: 0x1146, 0xe0d: 0x114e, 0xe0e: 0x114a, 0xe0f: 0x1152, 0xe10: 0x1156, 0xe11: 0x115a,\n\t0xe12: 0x116e, 0xe13: 0x1172, 0xe14: 0x1196, 0xe15: 0x11aa, 0xe16: 0x11c6, 0xe17: 0x122a,\n\t0xe18: 0x1232, 0xe19: 0x123a, 0xe1a: 0x124e, 0xe1b: 0x1276, 0xe1c: 0x12c6, 0xe1d: 0x12fa,\n\t0xe1e: 0x12fa, 0xe1f: 0x1362, 0xe20: 0x140a, 0xe21: 0x1422, 0xe22: 0x1456, 0xe23: 0x145a,\n\t0xe24: 0x149e, 0xe25: 0x14a2, 0xe26: 0x14fa, 0xe27: 0x1502, 0xe28: 0x15d6, 0xe29: 0x161a,\n\t0xe2a: 0x1632, 0xe2b: 0x0c96, 0xe2c: 0x184b, 0xe2d: 0x12de,\n\t0xe30: 0x07da, 0xe31: 0x08de, 0xe32: 0x089e, 0xe33: 0x0846, 0xe34: 0x0886, 0xe35: 0x08b2,\n\t0xe36: 0x0942, 0xe37: 0x095e, 0xe38: 0x0a46, 0xe39: 0x0a32, 0xe3a: 0x0a42, 0xe3b: 0x0a5e,\n\t0xe3c: 0x0aaa, 0xe3d: 0x0aba, 0xe3e: 0x0afe, 0xe3f: 0x0b0a,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x0b26, 0xe41: 0x0b36, 0xe42: 0x0c1e, 0xe43: 0x0c26, 0xe44: 0x0c56, 0xe45: 0x0c76,\n\t0xe46: 0x0ca6, 0xe47: 0x0cbe, 0xe48: 0x0cae, 0xe49: 0x0cce, 0xe4a: 0x0cc2, 0xe4b: 0x0ce6,\n\t0xe4c: 0x0d02, 0xe4d: 0x0d5a, 0xe4e: 0x0d66, 0xe4f: 0x0d6e, 0xe50: 0x0d96, 0xe51: 0x0dda,\n\t0xe52: 0x0e0a, 0xe53: 0x0e0e, 0xe54: 0x0e22, 0xe55: 0x0ea2, 0xe56: 0x0eb2, 0xe57: 0x0f0a,\n\t0xe58: 0x0f56, 0xe59: 0x0f4e, 0xe5a: 0x0f62, 0xe5b: 0x0f7e, 0xe5c: 0x0fb6, 0xe5d: 0x110e,\n\t0xe5e: 0x0fda, 0xe5f: 0x100e, 0xe60: 0x101a, 0xe61: 0x105a, 0xe62: 0x1076, 0xe63: 0x109a,\n\t0xe64: 0x10be, 0xe65: 0x10c2, 0xe66: 0x10de, 0xe67: 0x10e2, 0xe68: 0x10f2, 0xe69: 0x1106,\n\t0xe6a: 0x1102, 0xe6b: 0x1132, 0xe6c: 0x11ae, 0xe6d: 0x11c6, 0xe6e: 0x11de, 0xe6f: 0x1216,\n\t0xe70: 0x122a, 0xe71: 0x1246, 0xe72: 0x1276, 0xe73: 0x132a, 0xe74: 0x1352, 0xe75: 0x13c6,\n\t0xe76: 0x140e, 0xe77: 0x141a, 0xe78: 0x1422, 0xe79: 0x143a, 0xe7a: 0x144e, 0xe7b: 0x143e,\n\t0xe7c: 0x1456, 0xe7d: 0x1452, 0xe7e: 0x144a, 0xe7f: 0x145a,\n\t// Block 0x3a, offset 0xe80\n\t0xe80: 0x1466, 0xe81: 0x14a2, 0xe82: 0x14de, 0xe83: 0x150e, 0xe84: 0x1546, 0xe85: 0x1566,\n\t0xe86: 0x15b2, 0xe87: 0x15d6, 0xe88: 0x15f6, 0xe89: 0x160a, 0xe8a: 0x161a, 0xe8b: 0x1626,\n\t0xe8c: 0x1632, 0xe8d: 0x1686, 0xe8e: 0x1726, 0xe8f: 0x17e2, 0xe90: 0x17dd, 0xe91: 0x180f,\n\t0xe92: 0x0702, 0xe93: 0x072a, 0xe94: 0x072e, 0xe95: 0x1891, 0xe96: 0x18be, 0xe97: 0x1936,\n\t0xe98: 0x1712, 0xe99: 0x1722,\n\t// Block 0x3b, offset 0xec0\n\t0xec0: 0x1b05, 0xec1: 0x1b08, 0xec2: 0x1b0b, 0xec3: 0x1d38, 0xec4: 0x1d3c, 0xec5: 0x1b8f,\n\t0xec6: 0x1b8f,\n\t0xed3: 0x1ea5, 0xed4: 0x1e96, 0xed5: 0x1e9b, 0xed6: 0x1eaa, 0xed7: 0x1ea0,\n\t0xedd: 0x44d1,\n\t0xede: 0x8116, 0xedf: 0x4543, 0xee0: 0x0320, 0xee1: 0x0308, 0xee2: 0x0311, 0xee3: 0x0314,\n\t0xee4: 0x0317, 0xee5: 0x031a, 0xee6: 0x031d, 0xee7: 0x0323, 0xee8: 0x0326, 0xee9: 0x0017,\n\t0xeea: 0x4531, 0xeeb: 0x4537, 0xeec: 0x4635, 0xeed: 0x463d, 0xeee: 0x4489, 0xeef: 0x448f,\n\t0xef0: 0x4495, 0xef1: 0x449b, 0xef2: 0x44a7, 0xef3: 0x44ad, 0xef4: 0x44b3, 0xef5: 0x44bf,\n\t0xef6: 0x44c5, 0xef8: 0x44cb, 0xef9: 0x44d7, 0xefa: 0x44dd, 0xefb: 0x44e3,\n\t0xefc: 0x44ef, 0xefe: 0x44f5,\n\t// Block 0x3c, offset 0xf00\n\t0xf00: 0x44fb, 0xf01: 0x4501, 0xf03: 0x4507, 0xf04: 0x450d,\n\t0xf06: 0x4519, 0xf07: 0x451f, 0xf08: 0x4525, 0xf09: 0x452b, 0xf0a: 0x453d, 0xf0b: 0x44b9,\n\t0xf0c: 0x44a1, 0xf0d: 0x44e9, 0xf0e: 0x4513, 0xf0f: 0x1eaf, 0xf10: 0x038c, 0xf11: 0x038c,\n\t0xf12: 0x0395, 0xf13: 0x0395, 0xf14: 0x0395, 0xf15: 0x0395, 0xf16: 0x0398, 0xf17: 0x0398,\n\t0xf18: 0x0398, 0xf19: 0x0398, 0xf1a: 0x039e, 0xf1b: 0x039e, 0xf1c: 0x039e, 0xf1d: 0x039e,\n\t0xf1e: 0x0392, 0xf1f: 0x0392, 0xf20: 0x0392, 0xf21: 0x0392, 0xf22: 0x039b, 0xf23: 0x039b,\n\t0xf24: 0x039b, 0xf25: 0x039b, 0xf26: 0x038f, 0xf27: 0x038f, 0xf28: 0x038f, 0xf29: 0x038f,\n\t0xf2a: 0x03c2, 0xf2b: 0x03c2, 0xf2c: 0x03c2, 0xf2d: 0x03c2, 0xf2e: 0x03c5, 0xf2f: 0x03c5,\n\t0xf30: 0x03c5, 0xf31: 0x03c5, 0xf32: 0x03a4, 0xf33: 0x03a4, 0xf34: 0x03a4, 0xf35: 0x03a4,\n\t0xf36: 0x03a1, 0xf37: 0x03a1, 0xf38: 0x03a1, 0xf39: 0x03a1, 0xf3a: 0x03a7, 0xf3b: 0x03a7,\n\t0xf3c: 0x03a7, 0xf3d: 0x03a7, 0xf3e: 0x03aa, 0xf3f: 0x03aa,\n\t// Block 0x3d, offset 0xf40\n\t0xf40: 0x03aa, 0xf41: 0x03aa, 0xf42: 0x03b3, 0xf43: 0x03b3, 0xf44: 0x03b0, 0xf45: 0x03b0,\n\t0xf46: 0x03b6, 0xf47: 0x03b6, 0xf48: 0x03ad, 0xf49: 0x03ad, 0xf4a: 0x03bc, 0xf4b: 0x03bc,\n\t0xf4c: 0x03b9, 0xf4d: 0x03b9, 0xf4e: 0x03c8, 0xf4f: 0x03c8, 0xf50: 0x03c8, 0xf51: 0x03c8,\n\t0xf52: 0x03ce, 0xf53: 0x03ce, 0xf54: 0x03ce, 0xf55: 0x03ce, 0xf56: 0x03d4, 0xf57: 0x03d4,\n\t0xf58: 0x03d4, 0xf59: 0x03d4, 0xf5a: 0x03d1, 0xf5b: 0x03d1, 0xf5c: 0x03d1, 0xf5d: 0x03d1,\n\t0xf5e: 0x03d7, 0xf5f: 0x03d7, 0xf60: 0x03da, 0xf61: 0x03da, 0xf62: 0x03da, 0xf63: 0x03da,\n\t0xf64: 0x45af, 0xf65: 0x45af, 0xf66: 0x03e0, 0xf67: 0x03e0, 0xf68: 0x03e0, 0xf69: 0x03e0,\n\t0xf6a: 0x03dd, 0xf6b: 0x03dd, 0xf6c: 0x03dd, 0xf6d: 0x03dd, 0xf6e: 0x03fb, 0xf6f: 0x03fb,\n\t0xf70: 0x45a9, 0xf71: 0x45a9,\n\t// Block 0x3e, offset 0xf80\n\t0xf93: 0x03cb, 0xf94: 0x03cb, 0xf95: 0x03cb, 0xf96: 0x03cb, 0xf97: 0x03e9,\n\t0xf98: 0x03e9, 0xf99: 0x03e6, 0xf9a: 0x03e6, 0xf9b: 0x03ec, 0xf9c: 0x03ec, 0xf9d: 0x217f,\n\t0xf9e: 0x03f2, 0xf9f: 0x03f2, 0xfa0: 0x03e3, 0xfa1: 0x03e3, 0xfa2: 0x03ef, 0xfa3: 0x03ef,\n\t0xfa4: 0x03f8, 0xfa5: 0x03f8, 0xfa6: 0x03f8, 0xfa7: 0x03f8, 0xfa8: 0x0380, 0xfa9: 0x0380,\n\t0xfaa: 0x26da, 0xfab: 0x26da, 0xfac: 0x274a, 0xfad: 0x274a, 0xfae: 0x2719, 0xfaf: 0x2719,\n\t0xfb0: 0x2735, 0xfb1: 0x2735, 0xfb2: 0x272e, 0xfb3: 0x272e, 0xfb4: 0x273c, 0xfb5: 0x273c,\n\t0xfb6: 0x2743, 0xfb7: 0x2743, 0xfb8: 0x2743, 0xfb9: 0x2720, 0xfba: 0x2720, 0xfbb: 0x2720,\n\t0xfbc: 0x03f5, 0xfbd: 0x03f5, 0xfbe: 0x03f5, 0xfbf: 0x03f5,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc0: 0x26e1, 0xfc1: 0x26e8, 0xfc2: 0x2704, 0xfc3: 0x2720, 0xfc4: 0x2727, 0xfc5: 0x1eb9,\n\t0xfc6: 0x1ebe, 0xfc7: 0x1ec3, 0xfc8: 0x1ed2, 0xfc9: 0x1ee1, 0xfca: 0x1ee6, 0xfcb: 0x1eeb,\n\t0xfcc: 0x1ef0, 0xfcd: 0x1ef5, 0xfce: 0x1f04, 0xfcf: 0x1f13, 0xfd0: 0x1f18, 0xfd1: 0x1f1d,\n\t0xfd2: 0x1f2c, 0xfd3: 0x1f3b, 0xfd4: 0x1f40, 0xfd5: 0x1f45, 0xfd6: 0x1f4a, 0xfd7: 0x1f59,\n\t0xfd8: 0x1f5e, 0xfd9: 0x1f6d, 0xfda: 0x1f72, 0xfdb: 0x1f77, 0xfdc: 0x1f86, 0xfdd: 0x1f8b,\n\t0xfde: 0x1f90, 0xfdf: 0x1f9a, 0xfe0: 0x1fd6, 0xfe1: 0x1fe5, 0xfe2: 0x1ff4, 0xfe3: 0x1ff9,\n\t0xfe4: 0x1ffe, 0xfe5: 0x2008, 0xfe6: 0x2017, 0xfe7: 0x201c, 0xfe8: 0x202b, 0xfe9: 0x2030,\n\t0xfea: 0x2035, 0xfeb: 0x2044, 0xfec: 0x2049, 0xfed: 0x2058, 0xfee: 0x205d, 0xfef: 0x2062,\n\t0xff0: 0x2067, 0xff1: 0x206c, 0xff2: 0x2071, 0xff3: 0x2076, 0xff4: 0x207b, 0xff5: 0x2080,\n\t0xff6: 0x2085, 0xff7: 0x208a, 0xff8: 0x208f, 0xff9: 0x2094, 0xffa: 0x2099, 0xffb: 0x209e,\n\t0xffc: 0x20a3, 0xffd: 0x20a8, 0xffe: 0x20ad, 0xfff: 0x20b7,\n\t// Block 0x40, offset 0x1000\n\t0x1000: 0x20bc, 0x1001: 0x20c1, 0x1002: 0x20c6, 0x1003: 0x20d0, 0x1004: 0x20d5, 0x1005: 0x20df,\n\t0x1006: 0x20e4, 0x1007: 0x20e9, 0x1008: 0x20ee, 0x1009: 0x20f3, 0x100a: 0x20f8, 0x100b: 0x20fd,\n\t0x100c: 0x2102, 0x100d: 0x2107, 0x100e: 0x2116, 0x100f: 0x2125, 0x1010: 0x212a, 0x1011: 0x212f,\n\t0x1012: 0x2134, 0x1013: 0x2139, 0x1014: 0x213e, 0x1015: 0x2148, 0x1016: 0x214d, 0x1017: 0x2152,\n\t0x1018: 0x2161, 0x1019: 0x2170, 0x101a: 0x2175, 0x101b: 0x4561, 0x101c: 0x4567, 0x101d: 0x459d,\n\t0x101e: 0x45f4, 0x101f: 0x45fb, 0x1020: 0x4602, 0x1021: 0x4609, 0x1022: 0x4610, 0x1023: 0x4617,\n\t0x1024: 0x26f6, 0x1025: 0x26fd, 0x1026: 0x2704, 0x1027: 0x270b, 0x1028: 0x2720, 0x1029: 0x2727,\n\t0x102a: 0x1ec8, 0x102b: 0x1ecd, 0x102c: 0x1ed2, 0x102d: 0x1ed7, 0x102e: 0x1ee1, 0x102f: 0x1ee6,\n\t0x1030: 0x1efa, 0x1031: 0x1eff, 0x1032: 0x1f04, 0x1033: 0x1f09, 0x1034: 0x1f13, 0x1035: 0x1f18,\n\t0x1036: 0x1f22, 0x1037: 0x1f27, 0x1038: 0x1f2c, 0x1039: 0x1f31, 0x103a: 0x1f3b, 0x103b: 0x1f40,\n\t0x103c: 0x206c, 0x103d: 0x2071, 0x103e: 0x2080, 0x103f: 0x2085,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x208a, 0x1041: 0x209e, 0x1042: 0x20a3, 0x1043: 0x20a8, 0x1044: 0x20ad, 0x1045: 0x20c6,\n\t0x1046: 0x20d0, 0x1047: 0x20d5, 0x1048: 0x20da, 0x1049: 0x20ee, 0x104a: 0x210c, 0x104b: 0x2111,\n\t0x104c: 0x2116, 0x104d: 0x211b, 0x104e: 0x2125, 0x104f: 0x212a, 0x1050: 0x459d, 0x1051: 0x2157,\n\t0x1052: 0x215c, 0x1053: 0x2161, 0x1054: 0x2166, 0x1055: 0x2170, 0x1056: 0x2175, 0x1057: 0x26e1,\n\t0x1058: 0x26e8, 0x1059: 0x26ef, 0x105a: 0x2704, 0x105b: 0x2712, 0x105c: 0x1eb9, 0x105d: 0x1ebe,\n\t0x105e: 0x1ec3, 0x105f: 0x1ed2, 0x1060: 0x1edc, 0x1061: 0x1eeb, 0x1062: 0x1ef0, 0x1063: 0x1ef5,\n\t0x1064: 0x1f04, 0x1065: 0x1f0e, 0x1066: 0x1f2c, 0x1067: 0x1f45, 0x1068: 0x1f4a, 0x1069: 0x1f59,\n\t0x106a: 0x1f5e, 0x106b: 0x1f6d, 0x106c: 0x1f77, 0x106d: 0x1f86, 0x106e: 0x1f8b, 0x106f: 0x1f90,\n\t0x1070: 0x1f9a, 0x1071: 0x1fd6, 0x1072: 0x1fdb, 0x1073: 0x1fe5, 0x1074: 0x1ff4, 0x1075: 0x1ff9,\n\t0x1076: 0x1ffe, 0x1077: 0x2008, 0x1078: 0x2017, 0x1079: 0x202b, 0x107a: 0x2030, 0x107b: 0x2035,\n\t0x107c: 0x2044, 0x107d: 0x2049, 0x107e: 0x2058, 0x107f: 0x205d,\n\t// Block 0x42, offset 0x1080\n\t0x1080: 0x2062, 0x1081: 0x2067, 0x1082: 0x2076, 0x1083: 0x207b, 0x1084: 0x208f, 0x1085: 0x2094,\n\t0x1086: 0x2099, 0x1087: 0x209e, 0x1088: 0x20a3, 0x1089: 0x20b7, 0x108a: 0x20bc, 0x108b: 0x20c1,\n\t0x108c: 0x20c6, 0x108d: 0x20cb, 0x108e: 0x20df, 0x108f: 0x20e4, 0x1090: 0x20e9, 0x1091: 0x20ee,\n\t0x1092: 0x20fd, 0x1093: 0x2102, 0x1094: 0x2107, 0x1095: 0x2116, 0x1096: 0x2120, 0x1097: 0x212f,\n\t0x1098: 0x2134, 0x1099: 0x4591, 0x109a: 0x2148, 0x109b: 0x214d, 0x109c: 0x2152, 0x109d: 0x2161,\n\t0x109e: 0x216b, 0x109f: 0x2704, 0x10a0: 0x2712, 0x10a1: 0x1ed2, 0x10a2: 0x1edc, 0x10a3: 0x1f04,\n\t0x10a4: 0x1f0e, 0x10a5: 0x1f2c, 0x10a6: 0x1f36, 0x10a7: 0x1f9a, 0x10a8: 0x1f9f, 0x10a9: 0x1fc2,\n\t0x10aa: 0x1fc7, 0x10ab: 0x209e, 0x10ac: 0x20a3, 0x10ad: 0x20c6, 0x10ae: 0x2116, 0x10af: 0x2120,\n\t0x10b0: 0x2161, 0x10b1: 0x216b, 0x10b2: 0x4645, 0x10b3: 0x464d, 0x10b4: 0x4655, 0x10b5: 0x2021,\n\t0x10b6: 0x2026, 0x10b7: 0x203a, 0x10b8: 0x203f, 0x10b9: 0x204e, 0x10ba: 0x2053, 0x10bb: 0x1fa4,\n\t0x10bc: 0x1fa9, 0x10bd: 0x1fcc, 0x10be: 0x1fd1, 0x10bf: 0x1f63,\n\t// Block 0x43, offset 0x10c0\n\t0x10c0: 0x1f68, 0x10c1: 0x1f4f, 0x10c2: 0x1f54, 0x10c3: 0x1f7c, 0x10c4: 0x1f81, 0x10c5: 0x1fea,\n\t0x10c6: 0x1fef, 0x10c7: 0x200d, 0x10c8: 0x2012, 0x10c9: 0x1fae, 0x10ca: 0x1fb3, 0x10cb: 0x1fb8,\n\t0x10cc: 0x1fc2, 0x10cd: 0x1fbd, 0x10ce: 0x1f95, 0x10cf: 0x1fe0, 0x10d0: 0x2003, 0x10d1: 0x2021,\n\t0x10d2: 0x2026, 0x10d3: 0x203a, 0x10d4: 0x203f, 0x10d5: 0x204e, 0x10d6: 0x2053, 0x10d7: 0x1fa4,\n\t0x10d8: 0x1fa9, 0x10d9: 0x1fcc, 0x10da: 0x1fd1, 0x10db: 0x1f63, 0x10dc: 0x1f68, 0x10dd: 0x1f4f,\n\t0x10de: 0x1f54, 0x10df: 0x1f7c, 0x10e0: 0x1f81, 0x10e1: 0x1fea, 0x10e2: 0x1fef, 0x10e3: 0x200d,\n\t0x10e4: 0x2012, 0x10e5: 0x1fae, 0x10e6: 0x1fb3, 0x10e7: 0x1fb8, 0x10e8: 0x1fc2, 0x10e9: 0x1fbd,\n\t0x10ea: 0x1f95, 0x10eb: 0x1fe0, 0x10ec: 0x2003, 0x10ed: 0x1fae, 0x10ee: 0x1fb3, 0x10ef: 0x1fb8,\n\t0x10f0: 0x1fc2, 0x10f1: 0x1f9f, 0x10f2: 0x1fc7, 0x10f3: 0x201c, 0x10f4: 0x1f86, 0x10f5: 0x1f8b,\n\t0x10f6: 0x1f90, 0x10f7: 0x1fae, 0x10f8: 0x1fb3, 0x10f9: 0x1fb8, 0x10fa: 0x201c, 0x10fb: 0x202b,\n\t0x10fc: 0x4549, 0x10fd: 0x4549,\n\t// Block 0x44, offset 0x1100\n\t0x1110: 0x2441, 0x1111: 0x2456,\n\t0x1112: 0x2456, 0x1113: 0x245d, 0x1114: 0x2464, 0x1115: 0x2479, 0x1116: 0x2480, 0x1117: 0x2487,\n\t0x1118: 0x24aa, 0x1119: 0x24aa, 0x111a: 0x24cd, 0x111b: 0x24c6, 0x111c: 0x24e2, 0x111d: 0x24d4,\n\t0x111e: 0x24db, 0x111f: 0x24fe, 0x1120: 0x24fe, 0x1121: 0x24f7, 0x1122: 0x2505, 0x1123: 0x2505,\n\t0x1124: 0x252f, 0x1125: 0x252f, 0x1126: 0x254b, 0x1127: 0x2513, 0x1128: 0x2513, 0x1129: 0x250c,\n\t0x112a: 0x2521, 0x112b: 0x2521, 0x112c: 0x2528, 0x112d: 0x2528, 0x112e: 0x2552, 0x112f: 0x2560,\n\t0x1130: 0x2560, 0x1131: 0x2567, 0x1132: 0x2567, 0x1133: 0x256e, 0x1134: 0x2575, 0x1135: 0x257c,\n\t0x1136: 0x2583, 0x1137: 0x2583, 0x1138: 0x258a, 0x1139: 0x2598, 0x113a: 0x25a6, 0x113b: 0x259f,\n\t0x113c: 0x25ad, 0x113d: 0x25ad, 0x113e: 0x25c2, 0x113f: 0x25c9,\n\t// Block 0x45, offset 0x1140\n\t0x1140: 0x25fa, 0x1141: 0x2608, 0x1142: 0x2601, 0x1143: 0x25e5, 0x1144: 0x25e5, 0x1145: 0x260f,\n\t0x1146: 0x260f, 0x1147: 0x2616, 0x1148: 0x2616, 0x1149: 0x2640, 0x114a: 0x2647, 0x114b: 0x264e,\n\t0x114c: 0x2624, 0x114d: 0x2632, 0x114e: 0x2655, 0x114f: 0x265c,\n\t0x1152: 0x262b, 0x1153: 0x26b0, 0x1154: 0x26b7, 0x1155: 0x268d, 0x1156: 0x2694, 0x1157: 0x2678,\n\t0x1158: 0x2678, 0x1159: 0x267f, 0x115a: 0x26a9, 0x115b: 0x26a2, 0x115c: 0x26cc, 0x115d: 0x26cc,\n\t0x115e: 0x243a, 0x115f: 0x244f, 0x1160: 0x2448, 0x1161: 0x2472, 0x1162: 0x246b, 0x1163: 0x2495,\n\t0x1164: 0x248e, 0x1165: 0x24b8, 0x1166: 0x249c, 0x1167: 0x24b1, 0x1168: 0x24e9, 0x1169: 0x2536,\n\t0x116a: 0x251a, 0x116b: 0x2559, 0x116c: 0x25f3, 0x116d: 0x261d, 0x116e: 0x26c5, 0x116f: 0x26be,\n\t0x1170: 0x26d3, 0x1171: 0x266a, 0x1172: 0x25d0, 0x1173: 0x269b, 0x1174: 0x25c2, 0x1175: 0x25fa,\n\t0x1176: 0x2591, 0x1177: 0x25de, 0x1178: 0x2671, 0x1179: 0x2663, 0x117a: 0x25ec, 0x117b: 0x25d7,\n\t0x117c: 0x25ec, 0x117d: 0x2671, 0x117e: 0x24a3, 0x117f: 0x24bf,\n\t// Block 0x46, offset 0x1180\n\t0x1180: 0x2639, 0x1181: 0x25b4, 0x1182: 0x2433, 0x1183: 0x25d7, 0x1184: 0x257c, 0x1185: 0x254b,\n\t0x1186: 0x24f0, 0x1187: 0x2686,\n\t0x11b0: 0x2544, 0x11b1: 0x25bb, 0x11b2: 0x28f6, 0x11b3: 0x28ed, 0x11b4: 0x2923, 0x11b5: 0x2911,\n\t0x11b6: 0x28ff, 0x11b7: 0x291a, 0x11b8: 0x292c, 0x11b9: 0x253d, 0x11ba: 0x2db3, 0x11bb: 0x2c33,\n\t0x11bc: 0x2908,\n\t// Block 0x47, offset 0x11c0\n\t0x11d0: 0x0019, 0x11d1: 0x057e,\n\t0x11d2: 0x0582, 0x11d3: 0x0035, 0x11d4: 0x0037, 0x11d5: 0x0003, 0x11d6: 0x003f, 0x11d7: 0x05ba,\n\t0x11d8: 0x05be, 0x11d9: 0x1c8c,\n\t0x11e0: 0x8133, 0x11e1: 0x8133, 0x11e2: 0x8133, 0x11e3: 0x8133,\n\t0x11e4: 0x8133, 0x11e5: 0x8133, 0x11e6: 0x8133, 0x11e7: 0x812e, 0x11e8: 0x812e, 0x11e9: 0x812e,\n\t0x11ea: 0x812e, 0x11eb: 0x812e, 0x11ec: 0x812e, 0x11ed: 0x812e, 0x11ee: 0x8133, 0x11ef: 0x8133,\n\t0x11f0: 0x19a0, 0x11f1: 0x053a, 0x11f2: 0x0536, 0x11f3: 0x007f, 0x11f4: 0x007f, 0x11f5: 0x0011,\n\t0x11f6: 0x0013, 0x11f7: 0x00b7, 0x11f8: 0x00bb, 0x11f9: 0x05b2, 0x11fa: 0x05b6, 0x11fb: 0x05a6,\n\t0x11fc: 0x05aa, 0x11fd: 0x058e, 0x11fe: 0x0592, 0x11ff: 0x0586,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0x058a, 0x1201: 0x0596, 0x1202: 0x059a, 0x1203: 0x059e, 0x1204: 0x05a2,\n\t0x1207: 0x0077, 0x1208: 0x007b, 0x1209: 0x43aa, 0x120a: 0x43aa, 0x120b: 0x43aa,\n\t0x120c: 0x43aa, 0x120d: 0x007f, 0x120e: 0x007f, 0x120f: 0x007f, 0x1210: 0x0019, 0x1211: 0x057e,\n\t0x1212: 0x001d, 0x1214: 0x0037, 0x1215: 0x0035, 0x1216: 0x003f, 0x1217: 0x0003,\n\t0x1218: 0x053a, 0x1219: 0x0011, 0x121a: 0x0013, 0x121b: 0x00b7, 0x121c: 0x00bb, 0x121d: 0x05b2,\n\t0x121e: 0x05b6, 0x121f: 0x0007, 0x1220: 0x000d, 0x1221: 0x0015, 0x1222: 0x0017, 0x1223: 0x001b,\n\t0x1224: 0x0039, 0x1225: 0x003d, 0x1226: 0x003b, 0x1228: 0x0079, 0x1229: 0x0009,\n\t0x122a: 0x000b, 0x122b: 0x0041,\n\t0x1230: 0x43eb, 0x1231: 0x456d, 0x1232: 0x43f0, 0x1234: 0x43f5,\n\t0x1236: 0x43fa, 0x1237: 0x4573, 0x1238: 0x43ff, 0x1239: 0x4579, 0x123a: 0x4404, 0x123b: 0x457f,\n\t0x123c: 0x4409, 0x123d: 0x4585, 0x123e: 0x440e, 0x123f: 0x458b,\n\t// Block 0x49, offset 0x1240\n\t0x1240: 0x0329, 0x1241: 0x454f, 0x1242: 0x454f, 0x1243: 0x4555, 0x1244: 0x4555, 0x1245: 0x4597,\n\t0x1246: 0x4597, 0x1247: 0x455b, 0x1248: 0x455b, 0x1249: 0x45a3, 0x124a: 0x45a3, 0x124b: 0x45a3,\n\t0x124c: 0x45a3, 0x124d: 0x032c, 0x124e: 0x032c, 0x124f: 0x032f, 0x1250: 0x032f, 0x1251: 0x032f,\n\t0x1252: 0x032f, 0x1253: 0x0332, 0x1254: 0x0332, 0x1255: 0x0335, 0x1256: 0x0335, 0x1257: 0x0335,\n\t0x1258: 0x0335, 0x1259: 0x0338, 0x125a: 0x0338, 0x125b: 0x0338, 0x125c: 0x0338, 0x125d: 0x033b,\n\t0x125e: 0x033b, 0x125f: 0x033b, 0x1260: 0x033b, 0x1261: 0x033e, 0x1262: 0x033e, 0x1263: 0x033e,\n\t0x1264: 0x033e, 0x1265: 0x0341, 0x1266: 0x0341, 0x1267: 0x0341, 0x1268: 0x0341, 0x1269: 0x0344,\n\t0x126a: 0x0344, 0x126b: 0x0347, 0x126c: 0x0347, 0x126d: 0x034a, 0x126e: 0x034a, 0x126f: 0x034d,\n\t0x1270: 0x034d, 0x1271: 0x0350, 0x1272: 0x0350, 0x1273: 0x0350, 0x1274: 0x0350, 0x1275: 0x0353,\n\t0x1276: 0x0353, 0x1277: 0x0353, 0x1278: 0x0353, 0x1279: 0x0356, 0x127a: 0x0356, 0x127b: 0x0356,\n\t0x127c: 0x0356, 0x127d: 0x0359, 0x127e: 0x0359, 0x127f: 0x0359,\n\t// Block 0x4a, offset 0x1280\n\t0x1280: 0x0359, 0x1281: 0x035c, 0x1282: 0x035c, 0x1283: 0x035c, 0x1284: 0x035c, 0x1285: 0x035f,\n\t0x1286: 0x035f, 0x1287: 0x035f, 0x1288: 0x035f, 0x1289: 0x0362, 0x128a: 0x0362, 0x128b: 0x0362,\n\t0x128c: 0x0362, 0x128d: 0x0365, 0x128e: 0x0365, 0x128f: 0x0365, 0x1290: 0x0365, 0x1291: 0x0368,\n\t0x1292: 0x0368, 0x1293: 0x0368, 0x1294: 0x0368, 0x1295: 0x036b, 0x1296: 0x036b, 0x1297: 0x036b,\n\t0x1298: 0x036b, 0x1299: 0x036e, 0x129a: 0x036e, 0x129b: 0x036e, 0x129c: 0x036e, 0x129d: 0x0371,\n\t0x129e: 0x0371, 0x129f: 0x0371, 0x12a0: 0x0371, 0x12a1: 0x0374, 0x12a2: 0x0374, 0x12a3: 0x0374,\n\t0x12a4: 0x0374, 0x12a5: 0x0377, 0x12a6: 0x0377, 0x12a7: 0x0377, 0x12a8: 0x0377, 0x12a9: 0x037a,\n\t0x12aa: 0x037a, 0x12ab: 0x037a, 0x12ac: 0x037a, 0x12ad: 0x037d, 0x12ae: 0x037d, 0x12af: 0x0380,\n\t0x12b0: 0x0380, 0x12b1: 0x0383, 0x12b2: 0x0383, 0x12b3: 0x0383, 0x12b4: 0x0383, 0x12b5: 0x2f41,\n\t0x12b6: 0x2f41, 0x12b7: 0x2f49, 0x12b8: 0x2f49, 0x12b9: 0x2f51, 0x12ba: 0x2f51, 0x12bb: 0x20b2,\n\t0x12bc: 0x20b2,\n\t// Block 0x4b, offset 0x12c0\n\t0x12c0: 0x0081, 0x12c1: 0x0083, 0x12c2: 0x0085, 0x12c3: 0x0087, 0x12c4: 0x0089, 0x12c5: 0x008b,\n\t0x12c6: 0x008d, 0x12c7: 0x008f, 0x12c8: 0x0091, 0x12c9: 0x0093, 0x12ca: 0x0095, 0x12cb: 0x0097,\n\t0x12cc: 0x0099, 0x12cd: 0x009b, 0x12ce: 0x009d, 0x12cf: 0x009f, 0x12d0: 0x00a1, 0x12d1: 0x00a3,\n\t0x12d2: 0x00a5, 0x12d3: 0x00a7, 0x12d4: 0x00a9, 0x12d5: 0x00ab, 0x12d6: 0x00ad, 0x12d7: 0x00af,\n\t0x12d8: 0x00b1, 0x12d9: 0x00b3, 0x12da: 0x00b5, 0x12db: 0x00b7, 0x12dc: 0x00b9, 0x12dd: 0x00bb,\n\t0x12de: 0x00bd, 0x12df: 0x056e, 0x12e0: 0x0572, 0x12e1: 0x0582, 0x12e2: 0x0596, 0x12e3: 0x059a,\n\t0x12e4: 0x057e, 0x12e5: 0x06a6, 0x12e6: 0x069e, 0x12e7: 0x05c2, 0x12e8: 0x05ca, 0x12e9: 0x05d2,\n\t0x12ea: 0x05da, 0x12eb: 0x05e2, 0x12ec: 0x0666, 0x12ed: 0x066e, 0x12ee: 0x0676, 0x12ef: 0x061a,\n\t0x12f0: 0x06aa, 0x12f1: 0x05c6, 0x12f2: 0x05ce, 0x12f3: 0x05d6, 0x12f4: 0x05de, 0x12f5: 0x05e6,\n\t0x12f6: 0x05ea, 0x12f7: 0x05ee, 0x12f8: 0x05f2, 0x12f9: 0x05f6, 0x12fa: 0x05fa, 0x12fb: 0x05fe,\n\t0x12fc: 0x0602, 0x12fd: 0x0606, 0x12fe: 0x060a, 0x12ff: 0x060e,\n\t// Block 0x4c, offset 0x1300\n\t0x1300: 0x0612, 0x1301: 0x0616, 0x1302: 0x061e, 0x1303: 0x0622, 0x1304: 0x0626, 0x1305: 0x062a,\n\t0x1306: 0x062e, 0x1307: 0x0632, 0x1308: 0x0636, 0x1309: 0x063a, 0x130a: 0x063e, 0x130b: 0x0642,\n\t0x130c: 0x0646, 0x130d: 0x064a, 0x130e: 0x064e, 0x130f: 0x0652, 0x1310: 0x0656, 0x1311: 0x065a,\n\t0x1312: 0x065e, 0x1313: 0x0662, 0x1314: 0x066a, 0x1315: 0x0672, 0x1316: 0x067a, 0x1317: 0x067e,\n\t0x1318: 0x0682, 0x1319: 0x0686, 0x131a: 0x068a, 0x131b: 0x068e, 0x131c: 0x0692, 0x131d: 0x06a2,\n\t0x131e: 0x4bb9, 0x131f: 0x4bbf, 0x1320: 0x04b6, 0x1321: 0x0406, 0x1322: 0x040a, 0x1323: 0x4b7c,\n\t0x1324: 0x040e, 0x1325: 0x4b82, 0x1326: 0x4b88, 0x1327: 0x0412, 0x1328: 0x0416, 0x1329: 0x041a,\n\t0x132a: 0x4b8e, 0x132b: 0x4b94, 0x132c: 0x4b9a, 0x132d: 0x4ba0, 0x132e: 0x4ba6, 0x132f: 0x4bac,\n\t0x1330: 0x045a, 0x1331: 0x041e, 0x1332: 0x0422, 0x1333: 0x0426, 0x1334: 0x046e, 0x1335: 0x042a,\n\t0x1336: 0x042e, 0x1337: 0x0432, 0x1338: 0x0436, 0x1339: 0x043a, 0x133a: 0x043e, 0x133b: 0x0442,\n\t0x133c: 0x0446, 0x133d: 0x044a, 0x133e: 0x044e,\n\t// Block 0x4d, offset 0x1340\n\t0x1342: 0x4afe, 0x1343: 0x4b04, 0x1344: 0x4b0a, 0x1345: 0x4b10,\n\t0x1346: 0x4b16, 0x1347: 0x4b1c, 0x134a: 0x4b22, 0x134b: 0x4b28,\n\t0x134c: 0x4b2e, 0x134d: 0x4b34, 0x134e: 0x4b3a, 0x134f: 0x4b40,\n\t0x1352: 0x4b46, 0x1353: 0x4b4c, 0x1354: 0x4b52, 0x1355: 0x4b58, 0x1356: 0x4b5e, 0x1357: 0x4b64,\n\t0x135a: 0x4b6a, 0x135b: 0x4b70, 0x135c: 0x4b76,\n\t0x1360: 0x00bf, 0x1361: 0x00c2, 0x1362: 0x00cb, 0x1363: 0x43a5,\n\t0x1364: 0x00c8, 0x1365: 0x00c5, 0x1366: 0x053e, 0x1368: 0x0562, 0x1369: 0x0542,\n\t0x136a: 0x0546, 0x136b: 0x054a, 0x136c: 0x054e, 0x136d: 0x0566, 0x136e: 0x056a,\n\t// Block 0x4e, offset 0x1380\n\t0x1381: 0x01f1, 0x1382: 0x01f4, 0x1383: 0x00d4, 0x1384: 0x01be, 0x1385: 0x010d,\n\t0x1387: 0x01d3, 0x1388: 0x174e, 0x1389: 0x01d9, 0x138a: 0x01d6, 0x138b: 0x0116,\n\t0x138c: 0x0119, 0x138d: 0x0526, 0x138e: 0x011c, 0x138f: 0x0128, 0x1390: 0x01e5, 0x1391: 0x013a,\n\t0x1392: 0x0134, 0x1393: 0x012e, 0x1394: 0x01c1, 0x1395: 0x00e0, 0x1396: 0x01c4, 0x1397: 0x0143,\n\t0x1398: 0x0194, 0x1399: 0x01e8, 0x139a: 0x01eb, 0x139b: 0x0152, 0x139c: 0x1756, 0x139d: 0x1742,\n\t0x139e: 0x0158, 0x139f: 0x175b, 0x13a0: 0x01a9, 0x13a1: 0x1760, 0x13a2: 0x00da, 0x13a3: 0x0170,\n\t0x13a4: 0x0173, 0x13a5: 0x00a3, 0x13a6: 0x017c, 0x13a7: 0x1765, 0x13a8: 0x0182, 0x13a9: 0x0185,\n\t0x13aa: 0x0188, 0x13ab: 0x01e2, 0x13ac: 0x01dc, 0x13ad: 0x1752, 0x13ae: 0x01df, 0x13af: 0x0197,\n\t0x13b0: 0x0576, 0x13b2: 0x01ac, 0x13b3: 0x01cd, 0x13b4: 0x01d0, 0x13b5: 0x01bb,\n\t0x13b6: 0x00f5, 0x13b7: 0x00f8, 0x13b8: 0x00fb, 0x13b9: 0x176a, 0x13ba: 0x176f,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c0: 0x0063, 0x13c1: 0x0065, 0x13c2: 0x0067, 0x13c3: 0x0069, 0x13c4: 0x006b, 0x13c5: 0x006d,\n\t0x13c6: 0x006f, 0x13c7: 0x0071, 0x13c8: 0x0073, 0x13c9: 0x0075, 0x13ca: 0x0083, 0x13cb: 0x0085,\n\t0x13cc: 0x0087, 0x13cd: 0x0089, 0x13ce: 0x008b, 0x13cf: 0x008d, 0x13d0: 0x008f, 0x13d1: 0x0091,\n\t0x13d2: 0x0093, 0x13d3: 0x0095, 0x13d4: 0x0097, 0x13d5: 0x0099, 0x13d6: 0x009b, 0x13d7: 0x009d,\n\t0x13d8: 0x009f, 0x13d9: 0x00a1, 0x13da: 0x00a3, 0x13db: 0x00a5, 0x13dc: 0x00a7, 0x13dd: 0x00a9,\n\t0x13de: 0x00ab, 0x13df: 0x00ad, 0x13e0: 0x00af, 0x13e1: 0x00b1, 0x13e2: 0x00b3, 0x13e3: 0x00b5,\n\t0x13e4: 0x00e3, 0x13e5: 0x0101, 0x13e8: 0x01f7, 0x13e9: 0x01fa,\n\t0x13ea: 0x01fd, 0x13eb: 0x0200, 0x13ec: 0x0203, 0x13ed: 0x0206, 0x13ee: 0x0209, 0x13ef: 0x020c,\n\t0x13f0: 0x020f, 0x13f1: 0x0212, 0x13f2: 0x0215, 0x13f3: 0x0218, 0x13f4: 0x021b, 0x13f5: 0x021e,\n\t0x13f6: 0x0221, 0x13f7: 0x0224, 0x13f8: 0x0227, 0x13f9: 0x020c, 0x13fa: 0x022a, 0x13fb: 0x022d,\n\t0x13fc: 0x0230, 0x13fd: 0x0233, 0x13fe: 0x0236, 0x13ff: 0x0239,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x0281, 0x1401: 0x0284, 0x1402: 0x0287, 0x1403: 0x0552, 0x1404: 0x024b, 0x1405: 0x0254,\n\t0x1406: 0x025a, 0x1407: 0x027e, 0x1408: 0x026f, 0x1409: 0x026c, 0x140a: 0x028a, 0x140b: 0x028d,\n\t0x140e: 0x0021, 0x140f: 0x0023, 0x1410: 0x0025, 0x1411: 0x0027,\n\t0x1412: 0x0029, 0x1413: 0x002b, 0x1414: 0x002d, 0x1415: 0x002f, 0x1416: 0x0031, 0x1417: 0x0033,\n\t0x1418: 0x0021, 0x1419: 0x0023, 0x141a: 0x0025, 0x141b: 0x0027, 0x141c: 0x0029, 0x141d: 0x002b,\n\t0x141e: 0x002d, 0x141f: 0x002f, 0x1420: 0x0031, 0x1421: 0x0033, 0x1422: 0x0021, 0x1423: 0x0023,\n\t0x1424: 0x0025, 0x1425: 0x0027, 0x1426: 0x0029, 0x1427: 0x002b, 0x1428: 0x002d, 0x1429: 0x002f,\n\t0x142a: 0x0031, 0x142b: 0x0033, 0x142c: 0x0021, 0x142d: 0x0023, 0x142e: 0x0025, 0x142f: 0x0027,\n\t0x1430: 0x0029, 0x1431: 0x002b, 0x1432: 0x002d, 0x1433: 0x002f, 0x1434: 0x0031, 0x1435: 0x0033,\n\t0x1436: 0x0021, 0x1437: 0x0023, 0x1438: 0x0025, 0x1439: 0x0027, 0x143a: 0x0029, 0x143b: 0x002b,\n\t0x143c: 0x002d, 0x143d: 0x002f, 0x143e: 0x0031, 0x143f: 0x0033,\n\t// Block 0x51, offset 0x1440\n\t0x1440: 0x8133, 0x1441: 0x8133, 0x1442: 0x8133, 0x1443: 0x8133, 0x1444: 0x8133, 0x1445: 0x8133,\n\t0x1446: 0x8133, 0x1448: 0x8133, 0x1449: 0x8133, 0x144a: 0x8133, 0x144b: 0x8133,\n\t0x144c: 0x8133, 0x144d: 0x8133, 0x144e: 0x8133, 0x144f: 0x8133, 0x1450: 0x8133, 0x1451: 0x8133,\n\t0x1452: 0x8133, 0x1453: 0x8133, 0x1454: 0x8133, 0x1455: 0x8133, 0x1456: 0x8133, 0x1457: 0x8133,\n\t0x1458: 0x8133, 0x145b: 0x8133, 0x145c: 0x8133, 0x145d: 0x8133,\n\t0x145e: 0x8133, 0x145f: 0x8133, 0x1460: 0x8133, 0x1461: 0x8133, 0x1463: 0x8133,\n\t0x1464: 0x8133, 0x1466: 0x8133, 0x1467: 0x8133, 0x1468: 0x8133, 0x1469: 0x8133,\n\t0x146a: 0x8133,\n\t0x1470: 0x0290, 0x1471: 0x0293, 0x1472: 0x0296, 0x1473: 0x0299, 0x1474: 0x029c, 0x1475: 0x029f,\n\t0x1476: 0x02a2, 0x1477: 0x02a5, 0x1478: 0x02a8, 0x1479: 0x02ab, 0x147a: 0x02ae, 0x147b: 0x02b1,\n\t0x147c: 0x02b7, 0x147d: 0x02ba, 0x147e: 0x02bd, 0x147f: 0x02c0,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x02c3, 0x1481: 0x02c6, 0x1482: 0x02c9, 0x1483: 0x02cc, 0x1484: 0x02cf, 0x1485: 0x02d2,\n\t0x1486: 0x02d5, 0x1487: 0x02db, 0x1488: 0x02e1, 0x1489: 0x02e4, 0x148a: 0x1736, 0x148b: 0x0302,\n\t0x148c: 0x02ea, 0x148d: 0x02ed, 0x148e: 0x0305, 0x148f: 0x02f9, 0x1490: 0x02ff, 0x1491: 0x0290,\n\t0x1492: 0x0293, 0x1493: 0x0296, 0x1494: 0x0299, 0x1495: 0x029c, 0x1496: 0x029f, 0x1497: 0x02a2,\n\t0x1498: 0x02a5, 0x1499: 0x02a8, 0x149a: 0x02ab, 0x149b: 0x02ae, 0x149c: 0x02b7, 0x149d: 0x02ba,\n\t0x149e: 0x02c0, 0x149f: 0x02c6, 0x14a0: 0x02c9, 0x14a1: 0x02cc, 0x14a2: 0x02cf, 0x14a3: 0x02d2,\n\t0x14a4: 0x02d5, 0x14a5: 0x02d8, 0x14a6: 0x02db, 0x14a7: 0x02f3, 0x14a8: 0x02ea, 0x14a9: 0x02e7,\n\t0x14aa: 0x02f0, 0x14ab: 0x02f6, 0x14ac: 0x1732, 0x14ad: 0x02fc,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x032c, 0x14c1: 0x032f, 0x14c2: 0x033b, 0x14c3: 0x0344, 0x14c5: 0x037d,\n\t0x14c6: 0x034d, 0x14c7: 0x033e, 0x14c8: 0x035c, 0x14c9: 0x0383, 0x14ca: 0x036e, 0x14cb: 0x0371,\n\t0x14cc: 0x0374, 0x14cd: 0x0377, 0x14ce: 0x0350, 0x14cf: 0x0362, 0x14d0: 0x0368, 0x14d1: 0x0356,\n\t0x14d2: 0x036b, 0x14d3: 0x034a, 0x14d4: 0x0353, 0x14d5: 0x0335, 0x14d6: 0x0338, 0x14d7: 0x0341,\n\t0x14d8: 0x0347, 0x14d9: 0x0359, 0x14da: 0x035f, 0x14db: 0x0365, 0x14dc: 0x0386, 0x14dd: 0x03d7,\n\t0x14de: 0x03bf, 0x14df: 0x0389, 0x14e1: 0x032f, 0x14e2: 0x033b,\n\t0x14e4: 0x037a, 0x14e7: 0x033e, 0x14e9: 0x0383,\n\t0x14ea: 0x036e, 0x14eb: 0x0371, 0x14ec: 0x0374, 0x14ed: 0x0377, 0x14ee: 0x0350, 0x14ef: 0x0362,\n\t0x14f0: 0x0368, 0x14f1: 0x0356, 0x14f2: 0x036b, 0x14f4: 0x0353, 0x14f5: 0x0335,\n\t0x14f6: 0x0338, 0x14f7: 0x0341, 0x14f9: 0x0359, 0x14fb: 0x0365,\n\t// Block 0x54, offset 0x1500\n\t0x1502: 0x033b,\n\t0x1507: 0x033e, 0x1509: 0x0383, 0x150b: 0x0371,\n\t0x150d: 0x0377, 0x150e: 0x0350, 0x150f: 0x0362, 0x1511: 0x0356,\n\t0x1512: 0x036b, 0x1514: 0x0353, 0x1517: 0x0341,\n\t0x1519: 0x0359, 0x151b: 0x0365, 0x151d: 0x03d7,\n\t0x151f: 0x0389, 0x1521: 0x032f, 0x1522: 0x033b,\n\t0x1524: 0x037a, 0x1527: 0x033e, 0x1528: 0x035c, 0x1529: 0x0383,\n\t0x152a: 0x036e, 0x152c: 0x0374, 0x152d: 0x0377, 0x152e: 0x0350, 0x152f: 0x0362,\n\t0x1530: 0x0368, 0x1531: 0x0356, 0x1532: 0x036b, 0x1534: 0x0353, 0x1535: 0x0335,\n\t0x1536: 0x0338, 0x1537: 0x0341, 0x1539: 0x0359, 0x153a: 0x035f, 0x153b: 0x0365,\n\t0x153c: 0x0386, 0x153e: 0x03bf,\n\t// Block 0x55, offset 0x1540\n\t0x1540: 0x032c, 0x1541: 0x032f, 0x1542: 0x033b, 0x1543: 0x0344, 0x1544: 0x037a, 0x1545: 0x037d,\n\t0x1546: 0x034d, 0x1547: 0x033e, 0x1548: 0x035c, 0x1549: 0x0383, 0x154b: 0x0371,\n\t0x154c: 0x0374, 0x154d: 0x0377, 0x154e: 0x0350, 0x154f: 0x0362, 0x1550: 0x0368, 0x1551: 0x0356,\n\t0x1552: 0x036b, 0x1553: 0x034a, 0x1554: 0x0353, 0x1555: 0x0335, 0x1556: 0x0338, 0x1557: 0x0341,\n\t0x1558: 0x0347, 0x1559: 0x0359, 0x155a: 0x035f, 0x155b: 0x0365,\n\t0x1561: 0x032f, 0x1562: 0x033b, 0x1563: 0x0344,\n\t0x1565: 0x037d, 0x1566: 0x034d, 0x1567: 0x033e, 0x1568: 0x035c, 0x1569: 0x0383,\n\t0x156b: 0x0371, 0x156c: 0x0374, 0x156d: 0x0377, 0x156e: 0x0350, 0x156f: 0x0362,\n\t0x1570: 0x0368, 0x1571: 0x0356, 0x1572: 0x036b, 0x1573: 0x034a, 0x1574: 0x0353, 0x1575: 0x0335,\n\t0x1576: 0x0338, 0x1577: 0x0341, 0x1578: 0x0347, 0x1579: 0x0359, 0x157a: 0x035f, 0x157b: 0x0365,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x19a6, 0x1581: 0x19a3, 0x1582: 0x19a9, 0x1583: 0x19cd, 0x1584: 0x19f1, 0x1585: 0x1a15,\n\t0x1586: 0x1a39, 0x1587: 0x1a42, 0x1588: 0x1a48, 0x1589: 0x1a4e, 0x158a: 0x1a54,\n\t0x1590: 0x1bbc, 0x1591: 0x1bc0,\n\t0x1592: 0x1bc4, 0x1593: 0x1bc8, 0x1594: 0x1bcc, 0x1595: 0x1bd0, 0x1596: 0x1bd4, 0x1597: 0x1bd8,\n\t0x1598: 0x1bdc, 0x1599: 0x1be0, 0x159a: 0x1be4, 0x159b: 0x1be8, 0x159c: 0x1bec, 0x159d: 0x1bf0,\n\t0x159e: 0x1bf4, 0x159f: 0x1bf8, 0x15a0: 0x1bfc, 0x15a1: 0x1c00, 0x15a2: 0x1c04, 0x15a3: 0x1c08,\n\t0x15a4: 0x1c0c, 0x15a5: 0x1c10, 0x15a6: 0x1c14, 0x15a7: 0x1c18, 0x15a8: 0x1c1c, 0x15a9: 0x1c20,\n\t0x15aa: 0x2855, 0x15ab: 0x0047, 0x15ac: 0x0065, 0x15ad: 0x1a69, 0x15ae: 0x1ae1,\n\t0x15b0: 0x0043, 0x15b1: 0x0045, 0x15b2: 0x0047, 0x15b3: 0x0049, 0x15b4: 0x004b, 0x15b5: 0x004d,\n\t0x15b6: 0x004f, 0x15b7: 0x0051, 0x15b8: 0x0053, 0x15b9: 0x0055, 0x15ba: 0x0057, 0x15bb: 0x0059,\n\t0x15bc: 0x005b, 0x15bd: 0x005d, 0x15be: 0x005f, 0x15bf: 0x0061,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0x27dd, 0x15c1: 0x27f2, 0x15c2: 0x05fe,\n\t0x15d0: 0x0d0a, 0x15d1: 0x0b42,\n\t0x15d2: 0x09ce, 0x15d3: 0x4705, 0x15d4: 0x0816, 0x15d5: 0x0aea, 0x15d6: 0x142a, 0x15d7: 0x0afa,\n\t0x15d8: 0x0822, 0x15d9: 0x0dd2, 0x15da: 0x0faa, 0x15db: 0x0daa, 0x15dc: 0x0922, 0x15dd: 0x0c66,\n\t0x15de: 0x08ba, 0x15df: 0x0db2, 0x15e0: 0x090e, 0x15e1: 0x1212, 0x15e2: 0x107e, 0x15e3: 0x1486,\n\t0x15e4: 0x0ace, 0x15e5: 0x0a06, 0x15e6: 0x0f5e, 0x15e7: 0x0d16, 0x15e8: 0x0d42, 0x15e9: 0x07ba,\n\t0x15ea: 0x07c6, 0x15eb: 0x1506, 0x15ec: 0x0bd6, 0x15ed: 0x07e2, 0x15ee: 0x09ea, 0x15ef: 0x0d36,\n\t0x15f0: 0x14ae, 0x15f1: 0x0d0e, 0x15f2: 0x116a, 0x15f3: 0x11a6, 0x15f4: 0x09f2, 0x15f5: 0x0f3e,\n\t0x15f6: 0x0e06, 0x15f7: 0x0e02, 0x15f8: 0x1092, 0x15f9: 0x0926, 0x15fa: 0x0a52, 0x15fb: 0x153e,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0x07f6, 0x1601: 0x07ee, 0x1602: 0x07fe, 0x1603: 0x1774, 0x1604: 0x0842, 0x1605: 0x0852,\n\t0x1606: 0x0856, 0x1607: 0x085e, 0x1608: 0x0866, 0x1609: 0x086a, 0x160a: 0x0876, 0x160b: 0x086e,\n\t0x160c: 0x06ae, 0x160d: 0x1788, 0x160e: 0x088a, 0x160f: 0x088e, 0x1610: 0x0892, 0x1611: 0x08ae,\n\t0x1612: 0x1779, 0x1613: 0x06b2, 0x1614: 0x089a, 0x1615: 0x08ba, 0x1616: 0x1783, 0x1617: 0x08ca,\n\t0x1618: 0x08d2, 0x1619: 0x0832, 0x161a: 0x08da, 0x161b: 0x08de, 0x161c: 0x195e, 0x161d: 0x08fa,\n\t0x161e: 0x0902, 0x161f: 0x06ba, 0x1620: 0x091a, 0x1621: 0x091e, 0x1622: 0x0926, 0x1623: 0x092a,\n\t0x1624: 0x06be, 0x1625: 0x0942, 0x1626: 0x0946, 0x1627: 0x0952, 0x1628: 0x095e, 0x1629: 0x0962,\n\t0x162a: 0x0966, 0x162b: 0x096e, 0x162c: 0x098e, 0x162d: 0x0992, 0x162e: 0x099a, 0x162f: 0x09aa,\n\t0x1630: 0x09b2, 0x1631: 0x09b6, 0x1632: 0x09b6, 0x1633: 0x09b6, 0x1634: 0x1797, 0x1635: 0x0f8e,\n\t0x1636: 0x09ca, 0x1637: 0x09d2, 0x1638: 0x179c, 0x1639: 0x09de, 0x163a: 0x09e6, 0x163b: 0x09ee,\n\t0x163c: 0x0a16, 0x163d: 0x0a02, 0x163e: 0x0a0e, 0x163f: 0x0a12,\n\t// Block 0x59, offset 0x1640\n\t0x1640: 0x0a1a, 0x1641: 0x0a22, 0x1642: 0x0a26, 0x1643: 0x0a2e, 0x1644: 0x0a36, 0x1645: 0x0a3a,\n\t0x1646: 0x0a3a, 0x1647: 0x0a42, 0x1648: 0x0a4a, 0x1649: 0x0a4e, 0x164a: 0x0a5a, 0x164b: 0x0a7e,\n\t0x164c: 0x0a62, 0x164d: 0x0a82, 0x164e: 0x0a66, 0x164f: 0x0a6e, 0x1650: 0x0906, 0x1651: 0x0aca,\n\t0x1652: 0x0a92, 0x1653: 0x0a96, 0x1654: 0x0a9a, 0x1655: 0x0a8e, 0x1656: 0x0aa2, 0x1657: 0x0a9e,\n\t0x1658: 0x0ab6, 0x1659: 0x17a1, 0x165a: 0x0ad2, 0x165b: 0x0ad6, 0x165c: 0x0ade, 0x165d: 0x0aea,\n\t0x165e: 0x0af2, 0x165f: 0x0b0e, 0x1660: 0x17a6, 0x1661: 0x17ab, 0x1662: 0x0b1a, 0x1663: 0x0b1e,\n\t0x1664: 0x0b22, 0x1665: 0x0b16, 0x1666: 0x0b2a, 0x1667: 0x06c2, 0x1668: 0x06c6, 0x1669: 0x0b32,\n\t0x166a: 0x0b3a, 0x166b: 0x0b3a, 0x166c: 0x17b0, 0x166d: 0x0b56, 0x166e: 0x0b5a, 0x166f: 0x0b5e,\n\t0x1670: 0x0b66, 0x1671: 0x17b5, 0x1672: 0x0b6e, 0x1673: 0x0b72, 0x1674: 0x0c4a, 0x1675: 0x0b7a,\n\t0x1676: 0x06ca, 0x1677: 0x0b86, 0x1678: 0x0b96, 0x1679: 0x0ba2, 0x167a: 0x0b9e, 0x167b: 0x17bf,\n\t0x167c: 0x0baa, 0x167d: 0x17c4, 0x167e: 0x0bb6, 0x167f: 0x0bb2,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x0bba, 0x1681: 0x0bca, 0x1682: 0x0bce, 0x1683: 0x06ce, 0x1684: 0x0bde, 0x1685: 0x0be6,\n\t0x1686: 0x0bea, 0x1687: 0x0bee, 0x1688: 0x06d2, 0x1689: 0x17c9, 0x168a: 0x06d6, 0x168b: 0x0c0a,\n\t0x168c: 0x0c0e, 0x168d: 0x0c12, 0x168e: 0x0c1a, 0x168f: 0x1990, 0x1690: 0x0c32, 0x1691: 0x17d3,\n\t0x1692: 0x17d3, 0x1693: 0x12d2, 0x1694: 0x0c42, 0x1695: 0x0c42, 0x1696: 0x06da, 0x1697: 0x17f6,\n\t0x1698: 0x18c8, 0x1699: 0x0c52, 0x169a: 0x0c5a, 0x169b: 0x06de, 0x169c: 0x0c6e, 0x169d: 0x0c7e,\n\t0x169e: 0x0c82, 0x169f: 0x0c8a, 0x16a0: 0x0c9a, 0x16a1: 0x06e6, 0x16a2: 0x06e2, 0x16a3: 0x0c9e,\n\t0x16a4: 0x17d8, 0x16a5: 0x0ca2, 0x16a6: 0x0cb6, 0x16a7: 0x0cba, 0x16a8: 0x0cbe, 0x16a9: 0x0cba,\n\t0x16aa: 0x0cca, 0x16ab: 0x0cce, 0x16ac: 0x0cde, 0x16ad: 0x0cd6, 0x16ae: 0x0cda, 0x16af: 0x0ce2,\n\t0x16b0: 0x0ce6, 0x16b1: 0x0cea, 0x16b2: 0x0cf6, 0x16b3: 0x0cfa, 0x16b4: 0x0d12, 0x16b5: 0x0d1a,\n\t0x16b6: 0x0d2a, 0x16b7: 0x0d3e, 0x16b8: 0x17e7, 0x16b9: 0x0d3a, 0x16ba: 0x0d2e, 0x16bb: 0x0d46,\n\t0x16bc: 0x0d4e, 0x16bd: 0x0d62, 0x16be: 0x17ec, 0x16bf: 0x0d6a,\n\t// Block 0x5b, offset 0x16c0\n\t0x16c0: 0x0d5e, 0x16c1: 0x0d56, 0x16c2: 0x06ea, 0x16c3: 0x0d72, 0x16c4: 0x0d7a, 0x16c5: 0x0d82,\n\t0x16c6: 0x0d76, 0x16c7: 0x06ee, 0x16c8: 0x0d92, 0x16c9: 0x0d9a, 0x16ca: 0x17f1, 0x16cb: 0x0dc6,\n\t0x16cc: 0x0dfa, 0x16cd: 0x0dd6, 0x16ce: 0x06fa, 0x16cf: 0x0de2, 0x16d0: 0x06f6, 0x16d1: 0x06f2,\n\t0x16d2: 0x08be, 0x16d3: 0x08c2, 0x16d4: 0x0dfe, 0x16d5: 0x0de6, 0x16d6: 0x12a6, 0x16d7: 0x075e,\n\t0x16d8: 0x0e0a, 0x16d9: 0x0e0e, 0x16da: 0x0e12, 0x16db: 0x0e26, 0x16dc: 0x0e1e, 0x16dd: 0x180a,\n\t0x16de: 0x06fe, 0x16df: 0x0e3a, 0x16e0: 0x0e2e, 0x16e1: 0x0e4a, 0x16e2: 0x0e52, 0x16e3: 0x1814,\n\t0x16e4: 0x0e56, 0x16e5: 0x0e42, 0x16e6: 0x0e5e, 0x16e7: 0x0702, 0x16e8: 0x0e62, 0x16e9: 0x0e66,\n\t0x16ea: 0x0e6a, 0x16eb: 0x0e76, 0x16ec: 0x1819, 0x16ed: 0x0e7e, 0x16ee: 0x0706, 0x16ef: 0x0e8a,\n\t0x16f0: 0x181e, 0x16f1: 0x0e8e, 0x16f2: 0x070a, 0x16f3: 0x0e9a, 0x16f4: 0x0ea6, 0x16f5: 0x0eb2,\n\t0x16f6: 0x0eb6, 0x16f7: 0x1823, 0x16f8: 0x17ba, 0x16f9: 0x1828, 0x16fa: 0x0ed6, 0x16fb: 0x182d,\n\t0x16fc: 0x0ee2, 0x16fd: 0x0eea, 0x16fe: 0x0eda, 0x16ff: 0x0ef6,\n\t// Block 0x5c, offset 0x1700\n\t0x1700: 0x0f06, 0x1701: 0x0f16, 0x1702: 0x0f0a, 0x1703: 0x0f0e, 0x1704: 0x0f1a, 0x1705: 0x0f1e,\n\t0x1706: 0x1832, 0x1707: 0x0f02, 0x1708: 0x0f36, 0x1709: 0x0f3a, 0x170a: 0x070e, 0x170b: 0x0f4e,\n\t0x170c: 0x0f4a, 0x170d: 0x1837, 0x170e: 0x0f2e, 0x170f: 0x0f6a, 0x1710: 0x183c, 0x1711: 0x1841,\n\t0x1712: 0x0f6e, 0x1713: 0x0f82, 0x1714: 0x0f7e, 0x1715: 0x0f7a, 0x1716: 0x0712, 0x1717: 0x0f86,\n\t0x1718: 0x0f96, 0x1719: 0x0f92, 0x171a: 0x0f9e, 0x171b: 0x177e, 0x171c: 0x0fae, 0x171d: 0x1846,\n\t0x171e: 0x0fba, 0x171f: 0x1850, 0x1720: 0x0fce, 0x1721: 0x0fda, 0x1722: 0x0fee, 0x1723: 0x1855,\n\t0x1724: 0x1002, 0x1725: 0x1006, 0x1726: 0x185a, 0x1727: 0x185f, 0x1728: 0x1022, 0x1729: 0x1032,\n\t0x172a: 0x0716, 0x172b: 0x1036, 0x172c: 0x071a, 0x172d: 0x071a, 0x172e: 0x104e, 0x172f: 0x1052,\n\t0x1730: 0x105a, 0x1731: 0x105e, 0x1732: 0x106a, 0x1733: 0x071e, 0x1734: 0x1082, 0x1735: 0x1864,\n\t0x1736: 0x109e, 0x1737: 0x1869, 0x1738: 0x10aa, 0x1739: 0x17ce, 0x173a: 0x10ba, 0x173b: 0x186e,\n\t0x173c: 0x1873, 0x173d: 0x1878, 0x173e: 0x0722, 0x173f: 0x0726,\n\t// Block 0x5d, offset 0x1740\n\t0x1740: 0x10f2, 0x1741: 0x1882, 0x1742: 0x187d, 0x1743: 0x1887, 0x1744: 0x188c, 0x1745: 0x10fa,\n\t0x1746: 0x10fe, 0x1747: 0x10fe, 0x1748: 0x1106, 0x1749: 0x072e, 0x174a: 0x110a, 0x174b: 0x0732,\n\t0x174c: 0x0736, 0x174d: 0x1896, 0x174e: 0x111e, 0x174f: 0x1126, 0x1750: 0x1132, 0x1751: 0x073a,\n\t0x1752: 0x189b, 0x1753: 0x1156, 0x1754: 0x18a0, 0x1755: 0x18a5, 0x1756: 0x1176, 0x1757: 0x118e,\n\t0x1758: 0x073e, 0x1759: 0x1196, 0x175a: 0x119a, 0x175b: 0x119e, 0x175c: 0x18aa, 0x175d: 0x18af,\n\t0x175e: 0x18af, 0x175f: 0x11b6, 0x1760: 0x0742, 0x1761: 0x18b4, 0x1762: 0x11ca, 0x1763: 0x11ce,\n\t0x1764: 0x0746, 0x1765: 0x18b9, 0x1766: 0x11ea, 0x1767: 0x074a, 0x1768: 0x11fa, 0x1769: 0x11f2,\n\t0x176a: 0x1202, 0x176b: 0x18c3, 0x176c: 0x121a, 0x176d: 0x074e, 0x176e: 0x1226, 0x176f: 0x122e,\n\t0x1770: 0x123e, 0x1771: 0x0752, 0x1772: 0x18cd, 0x1773: 0x18d2, 0x1774: 0x0756, 0x1775: 0x18d7,\n\t0x1776: 0x1256, 0x1777: 0x18dc, 0x1778: 0x1262, 0x1779: 0x126e, 0x177a: 0x1276, 0x177b: 0x18e1,\n\t0x177c: 0x18e6, 0x177d: 0x128a, 0x177e: 0x18eb, 0x177f: 0x1292,\n\t// Block 0x5e, offset 0x1780\n\t0x1780: 0x17fb, 0x1781: 0x075a, 0x1782: 0x12aa, 0x1783: 0x12ae, 0x1784: 0x0762, 0x1785: 0x12b2,\n\t0x1786: 0x0b2e, 0x1787: 0x18f0, 0x1788: 0x18f5, 0x1789: 0x1800, 0x178a: 0x1805, 0x178b: 0x12d2,\n\t0x178c: 0x12d6, 0x178d: 0x14ee, 0x178e: 0x0766, 0x178f: 0x1302, 0x1790: 0x12fe, 0x1791: 0x1306,\n\t0x1792: 0x093a, 0x1793: 0x130a, 0x1794: 0x130e, 0x1795: 0x1312, 0x1796: 0x131a, 0x1797: 0x18fa,\n\t0x1798: 0x1316, 0x1799: 0x131e, 0x179a: 0x1332, 0x179b: 0x1336, 0x179c: 0x1322, 0x179d: 0x133a,\n\t0x179e: 0x134e, 0x179f: 0x1362, 0x17a0: 0x132e, 0x17a1: 0x1342, 0x17a2: 0x1346, 0x17a3: 0x134a,\n\t0x17a4: 0x18ff, 0x17a5: 0x1909, 0x17a6: 0x1904, 0x17a7: 0x076a, 0x17a8: 0x136a, 0x17a9: 0x136e,\n\t0x17aa: 0x1376, 0x17ab: 0x191d, 0x17ac: 0x137a, 0x17ad: 0x190e, 0x17ae: 0x076e, 0x17af: 0x0772,\n\t0x17b0: 0x1913, 0x17b1: 0x1918, 0x17b2: 0x0776, 0x17b3: 0x139a, 0x17b4: 0x139e, 0x17b5: 0x13a2,\n\t0x17b6: 0x13a6, 0x17b7: 0x13b2, 0x17b8: 0x13ae, 0x17b9: 0x13ba, 0x17ba: 0x13b6, 0x17bb: 0x13c6,\n\t0x17bc: 0x13be, 0x17bd: 0x13c2, 0x17be: 0x13ca, 0x17bf: 0x077a,\n\t// Block 0x5f, offset 0x17c0\n\t0x17c0: 0x13d2, 0x17c1: 0x13d6, 0x17c2: 0x077e, 0x17c3: 0x13e6, 0x17c4: 0x13ea, 0x17c5: 0x1922,\n\t0x17c6: 0x13f6, 0x17c7: 0x13fa, 0x17c8: 0x0782, 0x17c9: 0x1406, 0x17ca: 0x06b6, 0x17cb: 0x1927,\n\t0x17cc: 0x192c, 0x17cd: 0x0786, 0x17ce: 0x078a, 0x17cf: 0x1432, 0x17d0: 0x144a, 0x17d1: 0x1466,\n\t0x17d2: 0x1476, 0x17d3: 0x1931, 0x17d4: 0x148a, 0x17d5: 0x148e, 0x17d6: 0x14a6, 0x17d7: 0x14b2,\n\t0x17d8: 0x193b, 0x17d9: 0x178d, 0x17da: 0x14be, 0x17db: 0x14ba, 0x17dc: 0x14c6, 0x17dd: 0x1792,\n\t0x17de: 0x14d2, 0x17df: 0x14de, 0x17e0: 0x1940, 0x17e1: 0x1945, 0x17e2: 0x151e, 0x17e3: 0x152a,\n\t0x17e4: 0x1532, 0x17e5: 0x194a, 0x17e6: 0x1536, 0x17e7: 0x1562, 0x17e8: 0x156e, 0x17e9: 0x1572,\n\t0x17ea: 0x156a, 0x17eb: 0x157e, 0x17ec: 0x1582, 0x17ed: 0x194f, 0x17ee: 0x158e, 0x17ef: 0x078e,\n\t0x17f0: 0x1596, 0x17f1: 0x1954, 0x17f2: 0x0792, 0x17f3: 0x15ce, 0x17f4: 0x0bbe, 0x17f5: 0x15e6,\n\t0x17f6: 0x1959, 0x17f7: 0x1963, 0x17f8: 0x0796, 0x17f9: 0x079a, 0x17fa: 0x160e, 0x17fb: 0x1968,\n\t0x17fc: 0x079e, 0x17fd: 0x196d, 0x17fe: 0x1626, 0x17ff: 0x1626,\n\t// Block 0x60, offset 0x1800\n\t0x1800: 0x162e, 0x1801: 0x1972, 0x1802: 0x1646, 0x1803: 0x07a2, 0x1804: 0x1656, 0x1805: 0x1662,\n\t0x1806: 0x166a, 0x1807: 0x1672, 0x1808: 0x07a6, 0x1809: 0x1977, 0x180a: 0x1686, 0x180b: 0x16a2,\n\t0x180c: 0x16ae, 0x180d: 0x07aa, 0x180e: 0x07ae, 0x180f: 0x16b2, 0x1810: 0x197c, 0x1811: 0x07b2,\n\t0x1812: 0x1981, 0x1813: 0x1986, 0x1814: 0x198b, 0x1815: 0x16d6, 0x1816: 0x07b6, 0x1817: 0x16ea,\n\t0x1818: 0x16f2, 0x1819: 0x16f6, 0x181a: 0x16fe, 0x181b: 0x1706, 0x181c: 0x170e, 0x181d: 0x1995,\n}\n\n// nfkcIndex: 22 blocks, 1408 entries, 2816 bytes\n// Block 0 is the zero block.\nvar nfkcIndex = [1408]uint16{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x5f, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x60, 0xc7: 0x04,\n\t0xc8: 0x05, 0xca: 0x61, 0xcb: 0x62, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09,\n\t0xd0: 0x0a, 0xd1: 0x63, 0xd2: 0x64, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x65,\n\t0xd8: 0x66, 0xd9: 0x0d, 0xdb: 0x67, 0xdc: 0x68, 0xdd: 0x69, 0xdf: 0x6a,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,\n\t0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a,\n\t0xf0: 0x13,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x6b, 0x121: 0x6c, 0x122: 0x6d, 0x123: 0x0e, 0x124: 0x6e, 0x125: 0x6f, 0x126: 0x70, 0x127: 0x71,\n\t0x128: 0x72, 0x129: 0x73, 0x12a: 0x74, 0x12b: 0x75, 0x12c: 0x70, 0x12d: 0x76, 0x12e: 0x77, 0x12f: 0x78,\n\t0x130: 0x74, 0x131: 0x79, 0x132: 0x7a, 0x133: 0x7b, 0x134: 0x7c, 0x135: 0x7d, 0x137: 0x7e,\n\t0x138: 0x7f, 0x139: 0x80, 0x13a: 0x81, 0x13b: 0x82, 0x13c: 0x83, 0x13d: 0x84, 0x13e: 0x85, 0x13f: 0x86,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x87, 0x142: 0x88, 0x143: 0x89, 0x144: 0x8a, 0x145: 0x8b, 0x146: 0x8c, 0x147: 0x8d,\n\t0x14d: 0x8e,\n\t0x15c: 0x8f, 0x15f: 0x90,\n\t0x162: 0x91, 0x164: 0x92,\n\t0x168: 0x93, 0x169: 0x94, 0x16a: 0x95, 0x16b: 0x96, 0x16c: 0x0f, 0x16d: 0x97, 0x16e: 0x98, 0x16f: 0x99,\n\t0x170: 0x9a, 0x173: 0x9b, 0x174: 0x9c, 0x175: 0x10, 0x176: 0x11, 0x177: 0x12,\n\t0x178: 0x13, 0x179: 0x14, 0x17a: 0x15, 0x17b: 0x16, 0x17c: 0x17, 0x17d: 0x18, 0x17e: 0x19, 0x17f: 0x1a,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x9d, 0x181: 0x9e, 0x182: 0x9f, 0x183: 0xa0, 0x184: 0x1b, 0x185: 0x1c, 0x186: 0xa1, 0x187: 0xa2,\n\t0x188: 0xa3, 0x189: 0x1d, 0x18a: 0x1e, 0x18b: 0xa4, 0x18c: 0xa5,\n\t0x191: 0x1f, 0x192: 0x20, 0x193: 0xa6,\n\t0x1a8: 0xa7, 0x1a9: 0xa8, 0x1ab: 0xa9,\n\t0x1b1: 0xaa, 0x1b3: 0xab, 0x1b5: 0xac, 0x1b7: 0xad,\n\t0x1ba: 0xae, 0x1bb: 0xaf, 0x1bc: 0x21, 0x1bd: 0x22, 0x1be: 0x23, 0x1bf: 0xb0,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0xb1, 0x1c1: 0x24, 0x1c2: 0x25, 0x1c3: 0x26, 0x1c4: 0xb2, 0x1c5: 0x27, 0x1c6: 0x28,\n\t0x1c8: 0x29, 0x1c9: 0x2a, 0x1ca: 0x2b, 0x1cb: 0x2c, 0x1cc: 0x2d, 0x1cd: 0x2e, 0x1ce: 0x2f, 0x1cf: 0x30,\n\t// Block 0x8, offset 0x200\n\t0x219: 0xb3, 0x21a: 0xb4, 0x21b: 0xb5, 0x21d: 0xb6, 0x21f: 0xb7,\n\t0x220: 0xb8, 0x223: 0xb9, 0x224: 0xba, 0x225: 0xbb, 0x226: 0xbc, 0x227: 0xbd,\n\t0x22a: 0xbe, 0x22b: 0xbf, 0x22d: 0xc0, 0x22f: 0xc1,\n\t0x230: 0xc2, 0x231: 0xc3, 0x232: 0xc4, 0x233: 0xc5, 0x234: 0xc6, 0x235: 0xc7, 0x236: 0xc8, 0x237: 0xc2,\n\t0x238: 0xc3, 0x239: 0xc4, 0x23a: 0xc5, 0x23b: 0xc6, 0x23c: 0xc7, 0x23d: 0xc8, 0x23e: 0xc2, 0x23f: 0xc3,\n\t// Block 0x9, offset 0x240\n\t0x240: 0xc4, 0x241: 0xc5, 0x242: 0xc6, 0x243: 0xc7, 0x244: 0xc8, 0x245: 0xc2, 0x246: 0xc3, 0x247: 0xc4,\n\t0x248: 0xc5, 0x249: 0xc6, 0x24a: 0xc7, 0x24b: 0xc8, 0x24c: 0xc2, 0x24d: 0xc3, 0x24e: 0xc4, 0x24f: 0xc5,\n\t0x250: 0xc6, 0x251: 0xc7, 0x252: 0xc8, 0x253: 0xc2, 0x254: 0xc3, 0x255: 0xc4, 0x256: 0xc5, 0x257: 0xc6,\n\t0x258: 0xc7, 0x259: 0xc8, 0x25a: 0xc2, 0x25b: 0xc3, 0x25c: 0xc4, 0x25d: 0xc5, 0x25e: 0xc6, 0x25f: 0xc7,\n\t0x260: 0xc8, 0x261: 0xc2, 0x262: 0xc3, 0x263: 0xc4, 0x264: 0xc5, 0x265: 0xc6, 0x266: 0xc7, 0x267: 0xc8,\n\t0x268: 0xc2, 0x269: 0xc3, 0x26a: 0xc4, 0x26b: 0xc5, 0x26c: 0xc6, 0x26d: 0xc7, 0x26e: 0xc8, 0x26f: 0xc2,\n\t0x270: 0xc3, 0x271: 0xc4, 0x272: 0xc5, 0x273: 0xc6, 0x274: 0xc7, 0x275: 0xc8, 0x276: 0xc2, 0x277: 0xc3,\n\t0x278: 0xc4, 0x279: 0xc5, 0x27a: 0xc6, 0x27b: 0xc7, 0x27c: 0xc8, 0x27d: 0xc2, 0x27e: 0xc3, 0x27f: 0xc4,\n\t// Block 0xa, offset 0x280\n\t0x280: 0xc5, 0x281: 0xc6, 0x282: 0xc7, 0x283: 0xc8, 0x284: 0xc2, 0x285: 0xc3, 0x286: 0xc4, 0x287: 0xc5,\n\t0x288: 0xc6, 0x289: 0xc7, 0x28a: 0xc8, 0x28b: 0xc2, 0x28c: 0xc3, 0x28d: 0xc4, 0x28e: 0xc5, 0x28f: 0xc6,\n\t0x290: 0xc7, 0x291: 0xc8, 0x292: 0xc2, 0x293: 0xc3, 0x294: 0xc4, 0x295: 0xc5, 0x296: 0xc6, 0x297: 0xc7,\n\t0x298: 0xc8, 0x299: 0xc2, 0x29a: 0xc3, 0x29b: 0xc4, 0x29c: 0xc5, 0x29d: 0xc6, 0x29e: 0xc7, 0x29f: 0xc8,\n\t0x2a0: 0xc2, 0x2a1: 0xc3, 0x2a2: 0xc4, 0x2a3: 0xc5, 0x2a4: 0xc6, 0x2a5: 0xc7, 0x2a6: 0xc8, 0x2a7: 0xc2,\n\t0x2a8: 0xc3, 0x2a9: 0xc4, 0x2aa: 0xc5, 0x2ab: 0xc6, 0x2ac: 0xc7, 0x2ad: 0xc8, 0x2ae: 0xc2, 0x2af: 0xc3,\n\t0x2b0: 0xc4, 0x2b1: 0xc5, 0x2b2: 0xc6, 0x2b3: 0xc7, 0x2b4: 0xc8, 0x2b5: 0xc2, 0x2b6: 0xc3, 0x2b7: 0xc4,\n\t0x2b8: 0xc5, 0x2b9: 0xc6, 0x2ba: 0xc7, 0x2bb: 0xc8, 0x2bc: 0xc2, 0x2bd: 0xc3, 0x2be: 0xc4, 0x2bf: 0xc5,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0xc6, 0x2c1: 0xc7, 0x2c2: 0xc8, 0x2c3: 0xc2, 0x2c4: 0xc3, 0x2c5: 0xc4, 0x2c6: 0xc5, 0x2c7: 0xc6,\n\t0x2c8: 0xc7, 0x2c9: 0xc8, 0x2ca: 0xc2, 0x2cb: 0xc3, 0x2cc: 0xc4, 0x2cd: 0xc5, 0x2ce: 0xc6, 0x2cf: 0xc7,\n\t0x2d0: 0xc8, 0x2d1: 0xc2, 0x2d2: 0xc3, 0x2d3: 0xc4, 0x2d4: 0xc5, 0x2d5: 0xc6, 0x2d6: 0xc7, 0x2d7: 0xc8,\n\t0x2d8: 0xc2, 0x2d9: 0xc3, 0x2da: 0xc4, 0x2db: 0xc5, 0x2dc: 0xc6, 0x2dd: 0xc7, 0x2de: 0xc9,\n\t// Block 0xc, offset 0x300\n\t0x324: 0x31, 0x325: 0x32, 0x326: 0x33, 0x327: 0x34,\n\t0x328: 0x35, 0x329: 0x36, 0x32a: 0x37, 0x32b: 0x38, 0x32c: 0x39, 0x32d: 0x3a, 0x32e: 0x3b, 0x32f: 0x3c,\n\t0x330: 0x3d, 0x331: 0x3e, 0x332: 0x3f, 0x333: 0x40, 0x334: 0x41, 0x335: 0x42, 0x336: 0x43, 0x337: 0x44,\n\t0x338: 0x45, 0x339: 0x46, 0x33a: 0x47, 0x33b: 0x48, 0x33c: 0xca, 0x33d: 0x49, 0x33e: 0x4a, 0x33f: 0x4b,\n\t// Block 0xd, offset 0x340\n\t0x347: 0xcb,\n\t0x34b: 0xcc, 0x34d: 0xcd,\n\t0x35e: 0x4c,\n\t0x368: 0xce, 0x36b: 0xcf,\n\t0x374: 0xd0,\n\t0x37a: 0xd1, 0x37b: 0xd2, 0x37d: 0xd3, 0x37e: 0xd4,\n\t// Block 0xe, offset 0x380\n\t0x381: 0xd5, 0x382: 0xd6, 0x384: 0xd7, 0x385: 0xbc, 0x387: 0xd8,\n\t0x388: 0xd9, 0x38b: 0xda, 0x38c: 0xdb, 0x38d: 0xdc,\n\t0x391: 0xdd, 0x392: 0xde, 0x393: 0xdf, 0x396: 0xe0, 0x397: 0xe1,\n\t0x398: 0xe2, 0x39a: 0xe3, 0x39c: 0xe4,\n\t0x3a0: 0xe5, 0x3a4: 0xe6, 0x3a5: 0xe7, 0x3a7: 0xe8,\n\t0x3a8: 0xe9, 0x3a9: 0xea, 0x3aa: 0xeb,\n\t0x3b0: 0xe2, 0x3b5: 0xec, 0x3b6: 0xed,\n\t0x3bd: 0xee,\n\t// Block 0xf, offset 0x3c0\n\t0x3eb: 0xef, 0x3ec: 0xf0,\n\t0x3ff: 0xf1,\n\t// Block 0x10, offset 0x400\n\t0x432: 0xf2,\n\t// Block 0x11, offset 0x440\n\t0x445: 0xf3, 0x446: 0xf4, 0x447: 0xf5,\n\t0x449: 0xf6,\n\t0x450: 0xf7, 0x451: 0xf8, 0x452: 0xf9, 0x453: 0xfa, 0x454: 0xfb, 0x455: 0xfc, 0x456: 0xfd, 0x457: 0xfe,\n\t0x458: 0xff, 0x459: 0x100, 0x45a: 0x4d, 0x45b: 0x101, 0x45c: 0x102, 0x45d: 0x103, 0x45e: 0x104, 0x45f: 0x4e,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x4f, 0x481: 0x50, 0x482: 0x105, 0x484: 0xf0,\n\t0x48a: 0x106, 0x48b: 0x107,\n\t0x493: 0x108,\n\t0x4a3: 0x109, 0x4a5: 0x10a,\n\t0x4b8: 0x51, 0x4b9: 0x52, 0x4ba: 0x53,\n\t// Block 0x13, offset 0x4c0\n\t0x4c4: 0x54, 0x4c5: 0x10b, 0x4c6: 0x10c,\n\t0x4c8: 0x55, 0x4c9: 0x10d,\n\t0x4ef: 0x10e,\n\t// Block 0x14, offset 0x500\n\t0x520: 0x56, 0x521: 0x57, 0x522: 0x58, 0x523: 0x59, 0x524: 0x5a, 0x525: 0x5b, 0x526: 0x5c, 0x527: 0x5d,\n\t0x528: 0x5e,\n\t// Block 0x15, offset 0x540\n\t0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,\n\t0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,\n\t0x56f: 0x12,\n}\n\n// nfkcSparseOffset: 176 entries, 352 bytes\nvar nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1c, 0x26, 0x36, 0x38, 0x3d, 0x48, 0x57, 0x64, 0x6c, 0x71, 0x76, 0x78, 0x7c, 0x84, 0x8b, 0x8e, 0x96, 0x9a, 0x9e, 0xa0, 0xa2, 0xab, 0xaf, 0xb6, 0xbb, 0xbe, 0xc8, 0xcb, 0xd2, 0xda, 0xde, 0xe0, 0xe4, 0xe8, 0xee, 0xff, 0x10b, 0x10d, 0x113, 0x115, 0x117, 0x119, 0x11b, 0x11d, 0x11f, 0x121, 0x124, 0x127, 0x129, 0x12c, 0x12f, 0x133, 0x139, 0x140, 0x149, 0x14b, 0x14e, 0x150, 0x15b, 0x166, 0x174, 0x182, 0x192, 0x1a0, 0x1a7, 0x1ad, 0x1bc, 0x1c0, 0x1c2, 0x1c6, 0x1c8, 0x1cb, 0x1cd, 0x1d0, 0x1d2, 0x1d5, 0x1d7, 0x1d9, 0x1db, 0x1e7, 0x1f1, 0x1fb, 0x1fe, 0x202, 0x204, 0x206, 0x20b, 0x20e, 0x211, 0x213, 0x215, 0x217, 0x219, 0x21f, 0x222, 0x227, 0x229, 0x230, 0x236, 0x23c, 0x244, 0x24a, 0x250, 0x256, 0x25a, 0x25c, 0x25e, 0x260, 0x262, 0x268, 0x26b, 0x26d, 0x26f, 0x271, 0x277, 0x27b, 0x27f, 0x287, 0x28e, 0x291, 0x294, 0x296, 0x299, 0x2a1, 0x2a5, 0x2ac, 0x2af, 0x2b5, 0x2b7, 0x2b9, 0x2bc, 0x2be, 0x2c1, 0x2c6, 0x2c8, 0x2ca, 0x2cc, 0x2ce, 0x2d0, 0x2d3, 0x2d5, 0x2d7, 0x2d9, 0x2db, 0x2dd, 0x2df, 0x2ec, 0x2f6, 0x2f8, 0x2fa, 0x2fe, 0x303, 0x30f, 0x314, 0x31d, 0x323, 0x328, 0x32c, 0x331, 0x335, 0x345, 0x353, 0x361, 0x36f, 0x371, 0x373, 0x375, 0x379, 0x37b, 0x37e, 0x389, 0x38b, 0x395}\n\n// nfkcSparseValues: 919 entries, 3676 bytes\nvar nfkcSparseValues = [919]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0002, lo: 0x0d},\n\t{value: 0x0001, lo: 0xa0, hi: 0xa0},\n\t{value: 0x43b9, lo: 0xa8, hi: 0xa8},\n\t{value: 0x0083, lo: 0xaa, hi: 0xaa},\n\t{value: 0x43a5, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0025, lo: 0xb2, hi: 0xb3},\n\t{value: 0x439b, lo: 0xb4, hi: 0xb4},\n\t{value: 0x0260, lo: 0xb5, hi: 0xb5},\n\t{value: 0x43d2, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0023, lo: 0xb9, hi: 0xb9},\n\t{value: 0x009f, lo: 0xba, hi: 0xba},\n\t{value: 0x234c, lo: 0xbc, hi: 0xbc},\n\t{value: 0x2340, lo: 0xbd, hi: 0xbd},\n\t{value: 0x23e2, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1, offset 0xe\n\t{value: 0x0091, lo: 0x03},\n\t{value: 0x4823, lo: 0xa0, hi: 0xa1},\n\t{value: 0x4855, lo: 0xaf, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb7, hi: 0xb7},\n\t// Block 0x2, offset 0x12\n\t{value: 0x0004, lo: 0x09},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x0091, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0140, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0095, lo: 0xb2, hi: 0xb2},\n\t{value: 0x00a5, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0179, lo: 0xb4, hi: 0xb4},\n\t{value: 0x017f, lo: 0xb5, hi: 0xb5},\n\t{value: 0x018b, lo: 0xb6, hi: 0xb6},\n\t{value: 0x00af, lo: 0xb7, hi: 0xb8},\n\t// Block 0x3, offset 0x1c\n\t{value: 0x000a, lo: 0x09},\n\t{value: 0x43af, lo: 0x98, hi: 0x98},\n\t{value: 0x43b4, lo: 0x99, hi: 0x9a},\n\t{value: 0x43d7, lo: 0x9b, hi: 0x9b},\n\t{value: 0x43a0, lo: 0x9c, hi: 0x9c},\n\t{value: 0x43c3, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0137, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0099, lo: 0xa1, hi: 0xa1},\n\t{value: 0x00a7, lo: 0xa2, hi: 0xa3},\n\t{value: 0x01b8, lo: 0xa4, hi: 0xa4},\n\t// Block 0x4, offset 0x26\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0xa000, lo: 0x8d, hi: 0x8d},\n\t{value: 0x38e6, lo: 0x90, hi: 0x90},\n\t{value: 0x38f2, lo: 0x91, hi: 0x91},\n\t{value: 0x38e0, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x96, hi: 0x96},\n\t{value: 0x3958, lo: 0x97, hi: 0x97},\n\t{value: 0x3922, lo: 0x9c, hi: 0x9c},\n\t{value: 0x390a, lo: 0x9d, hi: 0x9d},\n\t{value: 0x3934, lo: 0x9e, hi: 0x9e},\n\t{value: 0xa000, lo: 0xb4, hi: 0xb5},\n\t{value: 0x395e, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3964, lo: 0xb7, hi: 0xb7},\n\t// Block 0x5, offset 0x36\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0x83, hi: 0x87},\n\t// Block 0x6, offset 0x38\n\t{value: 0x0001, lo: 0x04},\n\t{value: 0x8114, lo: 0x81, hi: 0x82},\n\t{value: 0x8133, lo: 0x84, hi: 0x84},\n\t{value: 0x812e, lo: 0x85, hi: 0x85},\n\t{value: 0x810e, lo: 0x87, hi: 0x87},\n\t// Block 0x7, offset 0x3d\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8133, lo: 0x90, hi: 0x97},\n\t{value: 0x811a, lo: 0x98, hi: 0x98},\n\t{value: 0x811b, lo: 0x99, hi: 0x99},\n\t{value: 0x811c, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3982, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3988, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3994, lo: 0xa4, hi: 0xa4},\n\t{value: 0x398e, lo: 0xa5, hi: 0xa5},\n\t{value: 0x399a, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xa7, hi: 0xa7},\n\t// Block 0x8, offset 0x48\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x39ac, lo: 0x80, hi: 0x80},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0x39a0, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x39a6, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x95, hi: 0x95},\n\t{value: 0x8133, lo: 0x96, hi: 0x9c},\n\t{value: 0x8133, lo: 0x9f, hi: 0xa2},\n\t{value: 0x812e, lo: 0xa3, hi: 0xa3},\n\t{value: 0x8133, lo: 0xa4, hi: 0xa4},\n\t{value: 0x8133, lo: 0xa7, hi: 0xa8},\n\t{value: 0x812e, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8133, lo: 0xab, hi: 0xac},\n\t{value: 0x812e, lo: 0xad, hi: 0xad},\n\t// Block 0x9, offset 0x57\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x8120, lo: 0x91, hi: 0x91},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb0},\n\t{value: 0x812e, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8133, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812e, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8133, lo: 0xb5, hi: 0xb6},\n\t{value: 0x812e, lo: 0xb7, hi: 0xb9},\n\t{value: 0x8133, lo: 0xba, hi: 0xba},\n\t{value: 0x812e, lo: 0xbb, hi: 0xbc},\n\t{value: 0x8133, lo: 0xbd, hi: 0xbd},\n\t{value: 0x812e, lo: 0xbe, hi: 0xbe},\n\t{value: 0x8133, lo: 0xbf, hi: 0xbf},\n\t// Block 0xa, offset 0x64\n\t{value: 0x0005, lo: 0x07},\n\t{value: 0x8133, lo: 0x80, hi: 0x80},\n\t{value: 0x8133, lo: 0x81, hi: 0x81},\n\t{value: 0x812e, lo: 0x82, hi: 0x83},\n\t{value: 0x812e, lo: 0x84, hi: 0x85},\n\t{value: 0x812e, lo: 0x86, hi: 0x87},\n\t{value: 0x812e, lo: 0x88, hi: 0x89},\n\t{value: 0x8133, lo: 0x8a, hi: 0x8a},\n\t// Block 0xb, offset 0x6c\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8133, lo: 0xab, hi: 0xb1},\n\t{value: 0x812e, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8133, lo: 0xb3, hi: 0xb3},\n\t{value: 0x812e, lo: 0xbd, hi: 0xbd},\n\t// Block 0xc, offset 0x71\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8133, lo: 0x96, hi: 0x99},\n\t{value: 0x8133, lo: 0x9b, hi: 0xa3},\n\t{value: 0x8133, lo: 0xa5, hi: 0xa7},\n\t{value: 0x8133, lo: 0xa9, hi: 0xad},\n\t// Block 0xd, offset 0x76\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0x99, hi: 0x9b},\n\t// Block 0xe, offset 0x78\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8133, lo: 0x98, hi: 0x98},\n\t{value: 0x812e, lo: 0x99, hi: 0x9b},\n\t{value: 0x8133, lo: 0x9c, hi: 0x9f},\n\t// Block 0xf, offset 0x7c\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0xa8, hi: 0xa8},\n\t{value: 0x4019, lo: 0xa9, hi: 0xa9},\n\t{value: 0xa000, lo: 0xb0, hi: 0xb0},\n\t{value: 0x4021, lo: 0xb1, hi: 0xb1},\n\t{value: 0xa000, lo: 0xb3, hi: 0xb3},\n\t{value: 0x4029, lo: 0xb4, hi: 0xb4},\n\t{value: 0x9903, lo: 0xbc, hi: 0xbc},\n\t// Block 0x10, offset 0x84\n\t{value: 0x0008, lo: 0x06},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8133, lo: 0x91, hi: 0x91},\n\t{value: 0x812e, lo: 0x92, hi: 0x92},\n\t{value: 0x8133, lo: 0x93, hi: 0x93},\n\t{value: 0x8133, lo: 0x94, hi: 0x94},\n\t{value: 0x465d, lo: 0x98, hi: 0x9f},\n\t// Block 0x11, offset 0x8b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8103, lo: 0xbc, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x12, offset 0x8e\n\t{value: 0x0008, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2dd5, lo: 0x8b, hi: 0x8c},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x469d, lo: 0x9c, hi: 0x9d},\n\t{value: 0x46ad, lo: 0x9f, hi: 0x9f},\n\t{value: 0x8133, lo: 0xbe, hi: 0xbe},\n\t// Block 0x13, offset 0x96\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x46d5, lo: 0xb3, hi: 0xb3},\n\t{value: 0x46dd, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8103, lo: 0xbc, hi: 0xbc},\n\t// Block 0x14, offset 0x9a\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x46b5, lo: 0x99, hi: 0x9b},\n\t{value: 0x46cd, lo: 0x9e, hi: 0x9e},\n\t// Block 0x15, offset 0x9e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8103, lo: 0xbc, hi: 0xbc},\n\t// Block 0x16, offset 0xa0\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t// Block 0x17, offset 0xa2\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2ded, lo: 0x88, hi: 0x88},\n\t{value: 0x2de5, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2df5, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x96, hi: 0x97},\n\t{value: 0x46e5, lo: 0x9c, hi: 0x9c},\n\t{value: 0x46ed, lo: 0x9d, hi: 0x9d},\n\t// Block 0x18, offset 0xab\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x2dfd, lo: 0x94, hi: 0x94},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x19, offset 0xaf\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2e05, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2e15, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2e0d, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1a, offset 0xb6\n\t{value: 0x1801, lo: 0x04},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x4031, lo: 0x88, hi: 0x88},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8121, lo: 0x95, hi: 0x96},\n\t// Block 0x1b, offset 0xbb\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8103, lo: 0xbc, hi: 0xbc},\n\t{value: 0xa000, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1c, offset 0xbe\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x2e1d, lo: 0x80, hi: 0x80},\n\t{value: 0x9900, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x2e25, lo: 0x87, hi: 0x87},\n\t{value: 0x2e2d, lo: 0x88, hi: 0x88},\n\t{value: 0x3091, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2f19, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x95, hi: 0x96},\n\t// Block 0x1d, offset 0xc8\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0xbb, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1e, offset 0xcb\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2e35, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2e45, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2e3d, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1f, offset 0xd2\n\t{value: 0x6ab3, lo: 0x07},\n\t{value: 0x9905, lo: 0x8a, hi: 0x8a},\n\t{value: 0x9900, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x4039, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3099, lo: 0x9c, hi: 0x9c},\n\t{value: 0x2f24, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2e4d, lo: 0x9e, hi: 0x9f},\n\t// Block 0x20, offset 0xda\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x2751, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8123, lo: 0xb8, hi: 0xb9},\n\t{value: 0x8105, lo: 0xba, hi: 0xba},\n\t// Block 0x21, offset 0xde\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8124, lo: 0x88, hi: 0x8b},\n\t// Block 0x22, offset 0xe0\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x2766, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8125, lo: 0xb8, hi: 0xb9},\n\t{value: 0x8105, lo: 0xba, hi: 0xba},\n\t// Block 0x23, offset 0xe4\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8126, lo: 0x88, hi: 0x8b},\n\t{value: 0x2758, lo: 0x9c, hi: 0x9c},\n\t{value: 0x275f, lo: 0x9d, hi: 0x9d},\n\t// Block 0x24, offset 0xe8\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x03fe, lo: 0x8c, hi: 0x8c},\n\t{value: 0x812e, lo: 0x98, hi: 0x99},\n\t{value: 0x812e, lo: 0xb5, hi: 0xb5},\n\t{value: 0x812e, lo: 0xb7, hi: 0xb7},\n\t{value: 0x812c, lo: 0xb9, hi: 0xb9},\n\t// Block 0x25, offset 0xee\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x2774, lo: 0x83, hi: 0x83},\n\t{value: 0x277b, lo: 0x8d, hi: 0x8d},\n\t{value: 0x2782, lo: 0x92, hi: 0x92},\n\t{value: 0x2789, lo: 0x97, hi: 0x97},\n\t{value: 0x2790, lo: 0x9c, hi: 0x9c},\n\t{value: 0x276d, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8127, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8128, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4bc5, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8129, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4bce, lo: 0xb5, hi: 0xb5},\n\t{value: 0x46f5, lo: 0xb6, hi: 0xb6},\n\t{value: 0x4735, lo: 0xb7, hi: 0xb7},\n\t{value: 0x46fd, lo: 0xb8, hi: 0xb8},\n\t{value: 0x4740, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8128, lo: 0xba, hi: 0xbd},\n\t// Block 0x26, offset 0xff\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x8128, lo: 0x80, hi: 0x80},\n\t{value: 0x4bd7, lo: 0x81, hi: 0x81},\n\t{value: 0x8133, lo: 0x82, hi: 0x83},\n\t{value: 0x8105, lo: 0x84, hi: 0x84},\n\t{value: 0x8133, lo: 0x86, hi: 0x87},\n\t{value: 0x279e, lo: 0x93, hi: 0x93},\n\t{value: 0x27a5, lo: 0x9d, hi: 0x9d},\n\t{value: 0x27ac, lo: 0xa2, hi: 0xa2},\n\t{value: 0x27b3, lo: 0xa7, hi: 0xa7},\n\t{value: 0x27ba, lo: 0xac, hi: 0xac},\n\t{value: 0x2797, lo: 0xb9, hi: 0xb9},\n\t// Block 0x27, offset 0x10b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0x86, hi: 0x86},\n\t// Block 0x28, offset 0x10d\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x2e55, lo: 0xa6, hi: 0xa6},\n\t{value: 0x9900, lo: 0xae, hi: 0xae},\n\t{value: 0x8103, lo: 0xb7, hi: 0xb7},\n\t{value: 0x8105, lo: 0xb9, hi: 0xba},\n\t// Block 0x29, offset 0x113\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0x8d, hi: 0x8d},\n\t// Block 0x2a, offset 0x115\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0402, lo: 0xbc, hi: 0xbc},\n\t// Block 0x2b, offset 0x117\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x80, hi: 0x92},\n\t// Block 0x2c, offset 0x119\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xb900, lo: 0xa1, hi: 0xb5},\n\t// Block 0x2d, offset 0x11b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0xa8, hi: 0xbf},\n\t// Block 0x2e, offset 0x11d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0x80, hi: 0x82},\n\t// Block 0x2f, offset 0x11f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0x9d, hi: 0x9f},\n\t// Block 0x30, offset 0x121\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x94, hi: 0x95},\n\t{value: 0x8105, lo: 0xb4, hi: 0xb4},\n\t// Block 0x31, offset 0x124\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x92, hi: 0x92},\n\t{value: 0x8133, lo: 0x9d, hi: 0x9d},\n\t// Block 0x32, offset 0x127\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xa9, hi: 0xa9},\n\t// Block 0x33, offset 0x129\n\t{value: 0x0004, lo: 0x02},\n\t{value: 0x812f, lo: 0xb9, hi: 0xba},\n\t{value: 0x812e, lo: 0xbb, hi: 0xbb},\n\t// Block 0x34, offset 0x12c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8133, lo: 0x97, hi: 0x97},\n\t{value: 0x812e, lo: 0x98, hi: 0x98},\n\t// Block 0x35, offset 0x12f\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8105, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8133, lo: 0xb5, hi: 0xbc},\n\t{value: 0x812e, lo: 0xbf, hi: 0xbf},\n\t// Block 0x36, offset 0x133\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb4},\n\t{value: 0x812e, lo: 0xb5, hi: 0xba},\n\t{value: 0x8133, lo: 0xbb, hi: 0xbc},\n\t{value: 0x812e, lo: 0xbd, hi: 0xbd},\n\t{value: 0x812e, lo: 0xbf, hi: 0xbf},\n\t// Block 0x37, offset 0x139\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x812e, lo: 0x80, hi: 0x80},\n\t{value: 0x8133, lo: 0x81, hi: 0x82},\n\t{value: 0x812e, lo: 0x83, hi: 0x84},\n\t{value: 0x8133, lo: 0x85, hi: 0x89},\n\t{value: 0x812e, lo: 0x8a, hi: 0x8a},\n\t{value: 0x8133, lo: 0x8b, hi: 0x8e},\n\t// Block 0x38, offset 0x140\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x2e9d, lo: 0x80, hi: 0x80},\n\t{value: 0x2ea5, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x82, hi: 0x82},\n\t{value: 0x2ead, lo: 0x83, hi: 0x83},\n\t{value: 0x8105, lo: 0x84, hi: 0x84},\n\t{value: 0x8133, lo: 0xab, hi: 0xab},\n\t{value: 0x812e, lo: 0xac, hi: 0xac},\n\t{value: 0x8133, lo: 0xad, hi: 0xb3},\n\t// Block 0x39, offset 0x149\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xaa, hi: 0xab},\n\t// Block 0x3a, offset 0x14b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8103, lo: 0xa6, hi: 0xa6},\n\t{value: 0x8105, lo: 0xb2, hi: 0xb3},\n\t// Block 0x3b, offset 0x14e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8103, lo: 0xb7, hi: 0xb7},\n\t// Block 0x3c, offset 0x150\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8133, lo: 0x90, hi: 0x92},\n\t{value: 0x8101, lo: 0x94, hi: 0x94},\n\t{value: 0x812e, lo: 0x95, hi: 0x99},\n\t{value: 0x8133, lo: 0x9a, hi: 0x9b},\n\t{value: 0x812e, lo: 0x9c, hi: 0x9f},\n\t{value: 0x8133, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8101, lo: 0xa2, hi: 0xa8},\n\t{value: 0x812e, lo: 0xad, hi: 0xad},\n\t{value: 0x8133, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8133, lo: 0xb8, hi: 0xb9},\n\t// Block 0x3d, offset 0x15b\n\t{value: 0x0002, lo: 0x0a},\n\t{value: 0x0043, lo: 0xac, hi: 0xac},\n\t{value: 0x00d1, lo: 0xad, hi: 0xad},\n\t{value: 0x0045, lo: 0xae, hi: 0xae},\n\t{value: 0x0049, lo: 0xb0, hi: 0xb1},\n\t{value: 0x00ec, lo: 0xb2, hi: 0xb2},\n\t{value: 0x004f, lo: 0xb3, hi: 0xba},\n\t{value: 0x005f, lo: 0xbc, hi: 0xbc},\n\t{value: 0x00fe, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0061, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0065, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3e, offset 0x166\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0001, lo: 0x80, hi: 0x8a},\n\t{value: 0x0532, lo: 0x91, hi: 0x91},\n\t{value: 0x43dc, lo: 0x97, hi: 0x97},\n\t{value: 0x001d, lo: 0xa4, hi: 0xa4},\n\t{value: 0x19a0, lo: 0xa5, hi: 0xa5},\n\t{value: 0x1c8c, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0001, lo: 0xaf, hi: 0xaf},\n\t{value: 0x27c1, lo: 0xb3, hi: 0xb3},\n\t{value: 0x2935, lo: 0xb4, hi: 0xb4},\n\t{value: 0x27c8, lo: 0xb6, hi: 0xb6},\n\t{value: 0x293f, lo: 0xb7, hi: 0xb7},\n\t{value: 0x199a, lo: 0xbc, hi: 0xbc},\n\t{value: 0x43aa, lo: 0xbe, hi: 0xbe},\n\t// Block 0x3f, offset 0x174\n\t{value: 0x0002, lo: 0x0d},\n\t{value: 0x1a60, lo: 0x87, hi: 0x87},\n\t{value: 0x1a5d, lo: 0x88, hi: 0x88},\n\t{value: 0x199d, lo: 0x89, hi: 0x89},\n\t{value: 0x2ac5, lo: 0x97, hi: 0x97},\n\t{value: 0x0001, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0021, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0093, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0029, lo: 0xb4, hi: 0xb9},\n\t{value: 0x0017, lo: 0xba, hi: 0xba},\n\t{value: 0x055e, lo: 0xbb, hi: 0xbb},\n\t{value: 0x003b, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0011, lo: 0xbd, hi: 0xbe},\n\t{value: 0x009d, lo: 0xbf, hi: 0xbf},\n\t// Block 0x40, offset 0x182\n\t{value: 0x0002, lo: 0x0f},\n\t{value: 0x0021, lo: 0x80, hi: 0x89},\n\t{value: 0x0017, lo: 0x8a, hi: 0x8a},\n\t{value: 0x055e, lo: 0x8b, hi: 0x8b},\n\t{value: 0x003b, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0011, lo: 0x8d, hi: 0x8e},\n\t{value: 0x0083, lo: 0x90, hi: 0x90},\n\t{value: 0x008b, lo: 0x91, hi: 0x91},\n\t{value: 0x009f, lo: 0x92, hi: 0x92},\n\t{value: 0x00b1, lo: 0x93, hi: 0x93},\n\t{value: 0x011f, lo: 0x94, hi: 0x94},\n\t{value: 0x0091, lo: 0x95, hi: 0x95},\n\t{value: 0x0097, lo: 0x96, hi: 0x99},\n\t{value: 0x00a1, lo: 0x9a, hi: 0x9a},\n\t{value: 0x00a7, lo: 0x9b, hi: 0x9c},\n\t{value: 0x1ac9, lo: 0xa8, hi: 0xa8},\n\t// Block 0x41, offset 0x192\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x8133, lo: 0x90, hi: 0x91},\n\t{value: 0x8101, lo: 0x92, hi: 0x93},\n\t{value: 0x8133, lo: 0x94, hi: 0x97},\n\t{value: 0x8101, lo: 0x98, hi: 0x9a},\n\t{value: 0x8133, lo: 0x9b, hi: 0x9c},\n\t{value: 0x8133, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8101, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8133, lo: 0xa7, hi: 0xa7},\n\t{value: 0x812e, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8133, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8101, lo: 0xaa, hi: 0xab},\n\t{value: 0x812e, lo: 0xac, hi: 0xaf},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb0},\n\t// Block 0x42, offset 0x1a0\n\t{value: 0x0007, lo: 0x06},\n\t{value: 0x22b0, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t{value: 0x3cfa, lo: 0x9a, hi: 0x9b},\n\t{value: 0x3d08, lo: 0xae, hi: 0xae},\n\t// Block 0x43, offset 0x1a7\n\t{value: 0x000e, lo: 0x05},\n\t{value: 0x3d0f, lo: 0x8d, hi: 0x8e},\n\t{value: 0x3d16, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t// Block 0x44, offset 0x1ad\n\t{value: 0x017a, lo: 0x0e},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0x3d24, lo: 0x84, hi: 0x84},\n\t{value: 0xa000, lo: 0x88, hi: 0x88},\n\t{value: 0x3d2b, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0x3d32, lo: 0x8c, hi: 0x8c},\n\t{value: 0xa000, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3d39, lo: 0xa4, hi: 0xa4},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3d40, lo: 0xa6, hi: 0xa6},\n\t{value: 0x27cf, lo: 0xac, hi: 0xad},\n\t{value: 0x27d6, lo: 0xaf, hi: 0xaf},\n\t{value: 0x2953, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xbc, hi: 0xbc},\n\t// Block 0x45, offset 0x1bc\n\t{value: 0x0007, lo: 0x03},\n\t{value: 0x3da9, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3dd3, lo: 0xa2, hi: 0xa3},\n\t{value: 0x3dfd, lo: 0xaa, hi: 0xad},\n\t// Block 0x46, offset 0x1c0\n\t{value: 0x0004, lo: 0x01},\n\t{value: 0x0586, lo: 0xa9, hi: 0xaa},\n\t// Block 0x47, offset 0x1c2\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x0057, lo: 0x80, hi: 0x8f},\n\t{value: 0x0083, lo: 0x90, hi: 0xa9},\n\t{value: 0x0021, lo: 0xaa, hi: 0xaa},\n\t// Block 0x48, offset 0x1c6\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x2ad2, lo: 0x8c, hi: 0x8c},\n\t// Block 0x49, offset 0x1c8\n\t{value: 0x0266, lo: 0x02},\n\t{value: 0x1cbc, lo: 0xb4, hi: 0xb4},\n\t{value: 0x1a5a, lo: 0xb5, hi: 0xb6},\n\t// Block 0x4a, offset 0x1cb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x461e, lo: 0x9c, hi: 0x9c},\n\t// Block 0x4b, offset 0x1cd\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0095, lo: 0xbc, hi: 0xbc},\n\t{value: 0x006d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x4c, offset 0x1d0\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xaf, hi: 0xb1},\n\t// Block 0x4d, offset 0x1d2\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x057a, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8105, lo: 0xbf, hi: 0xbf},\n\t// Block 0x4e, offset 0x1d5\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xa0, hi: 0xbf},\n\t// Block 0x4f, offset 0x1d7\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0ebe, lo: 0x9f, hi: 0x9f},\n\t// Block 0x50, offset 0x1d9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x172a, lo: 0xb3, hi: 0xb3},\n\t// Block 0x51, offset 0x1db\n\t{value: 0x0004, lo: 0x0b},\n\t{value: 0x1692, lo: 0x80, hi: 0x82},\n\t{value: 0x16aa, lo: 0x83, hi: 0x83},\n\t{value: 0x16c2, lo: 0x84, hi: 0x85},\n\t{value: 0x16d2, lo: 0x86, hi: 0x89},\n\t{value: 0x16e6, lo: 0x8a, hi: 0x8c},\n\t{value: 0x16fa, lo: 0x8d, hi: 0x8d},\n\t{value: 0x1702, lo: 0x8e, hi: 0x8e},\n\t{value: 0x170a, lo: 0x8f, hi: 0x90},\n\t{value: 0x1716, lo: 0x91, hi: 0x93},\n\t{value: 0x1726, lo: 0x94, hi: 0x94},\n\t{value: 0x172e, lo: 0x95, hi: 0x95},\n\t// Block 0x52, offset 0x1e7\n\t{value: 0x0004, lo: 0x09},\n\t{value: 0x0001, lo: 0x80, hi: 0x80},\n\t{value: 0x812d, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8132, lo: 0xab, hi: 0xab},\n\t{value: 0x8134, lo: 0xac, hi: 0xac},\n\t{value: 0x812f, lo: 0xad, hi: 0xad},\n\t{value: 0x8130, lo: 0xae, hi: 0xae},\n\t{value: 0x8130, lo: 0xaf, hi: 0xaf},\n\t{value: 0x05ae, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0982, lo: 0xb8, hi: 0xba},\n\t// Block 0x53, offset 0x1f1\n\t{value: 0x0006, lo: 0x09},\n\t{value: 0x0406, lo: 0xb1, hi: 0xb1},\n\t{value: 0x040a, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4b7c, lo: 0xb3, hi: 0xb3},\n\t{value: 0x040e, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4b82, lo: 0xb5, hi: 0xb6},\n\t{value: 0x0412, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0416, lo: 0xb8, hi: 0xb8},\n\t{value: 0x041a, lo: 0xb9, hi: 0xb9},\n\t{value: 0x4b8e, lo: 0xba, hi: 0xbf},\n\t// Block 0x54, offset 0x1fb\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8133, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8133, lo: 0xb4, hi: 0xbd},\n\t// Block 0x55, offset 0x1fe\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x02d8, lo: 0x9c, hi: 0x9c},\n\t{value: 0x02de, lo: 0x9d, hi: 0x9d},\n\t{value: 0x8133, lo: 0x9e, hi: 0x9f},\n\t// Block 0x56, offset 0x202\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb1},\n\t// Block 0x57, offset 0x204\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x173e, lo: 0xb0, hi: 0xb0},\n\t// Block 0x58, offset 0x206\n\t{value: 0x0006, lo: 0x04},\n\t{value: 0x0047, lo: 0xb2, hi: 0xb3},\n\t{value: 0x0063, lo: 0xb4, hi: 0xb4},\n\t{value: 0x00dd, lo: 0xb8, hi: 0xb8},\n\t{value: 0x00e9, lo: 0xb9, hi: 0xb9},\n\t// Block 0x59, offset 0x20b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x86, hi: 0x86},\n\t{value: 0x8105, lo: 0xac, hi: 0xac},\n\t// Block 0x5a, offset 0x20e\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x84, hi: 0x84},\n\t{value: 0x8133, lo: 0xa0, hi: 0xb1},\n\t// Block 0x5b, offset 0x211\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0xab, hi: 0xad},\n\t// Block 0x5c, offset 0x213\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x93, hi: 0x93},\n\t// Block 0x5d, offset 0x215\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8103, lo: 0xb3, hi: 0xb3},\n\t// Block 0x5e, offset 0x217\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x80, hi: 0x80},\n\t// Block 0x5f, offset 0x219\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8133, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812e, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8133, lo: 0xb7, hi: 0xb8},\n\t{value: 0x8133, lo: 0xbe, hi: 0xbf},\n\t// Block 0x60, offset 0x21f\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8133, lo: 0x81, hi: 0x81},\n\t{value: 0x8105, lo: 0xb6, hi: 0xb6},\n\t// Block 0x61, offset 0x222\n\t{value: 0x000c, lo: 0x04},\n\t{value: 0x173a, lo: 0x9c, hi: 0x9d},\n\t{value: 0x014f, lo: 0x9e, hi: 0x9e},\n\t{value: 0x174a, lo: 0x9f, hi: 0x9f},\n\t{value: 0x01a6, lo: 0xa9, hi: 0xa9},\n\t// Block 0x62, offset 0x227\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xad, hi: 0xad},\n\t// Block 0x63, offset 0x229\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe500, lo: 0x80, hi: 0x80},\n\t{value: 0xc600, lo: 0x81, hi: 0x9b},\n\t{value: 0xe500, lo: 0x9c, hi: 0x9c},\n\t{value: 0xc600, lo: 0x9d, hi: 0xb7},\n\t{value: 0xe500, lo: 0xb8, hi: 0xb8},\n\t{value: 0xc600, lo: 0xb9, hi: 0xbf},\n\t// Block 0x64, offset 0x230\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x93},\n\t{value: 0xe500, lo: 0x94, hi: 0x94},\n\t{value: 0xc600, lo: 0x95, hi: 0xaf},\n\t{value: 0xe500, lo: 0xb0, hi: 0xb0},\n\t{value: 0xc600, lo: 0xb1, hi: 0xbf},\n\t// Block 0x65, offset 0x236\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8b},\n\t{value: 0xe500, lo: 0x8c, hi: 0x8c},\n\t{value: 0xc600, lo: 0x8d, hi: 0xa7},\n\t{value: 0xe500, lo: 0xa8, hi: 0xa8},\n\t{value: 0xc600, lo: 0xa9, hi: 0xbf},\n\t// Block 0x66, offset 0x23c\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xc600, lo: 0x80, hi: 0x83},\n\t{value: 0xe500, lo: 0x84, hi: 0x84},\n\t{value: 0xc600, lo: 0x85, hi: 0x9f},\n\t{value: 0xe500, lo: 0xa0, hi: 0xa0},\n\t{value: 0xc600, lo: 0xa1, hi: 0xbb},\n\t{value: 0xe500, lo: 0xbc, hi: 0xbc},\n\t{value: 0xc600, lo: 0xbd, hi: 0xbf},\n\t// Block 0x67, offset 0x244\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x97},\n\t{value: 0xe500, lo: 0x98, hi: 0x98},\n\t{value: 0xc600, lo: 0x99, hi: 0xb3},\n\t{value: 0xe500, lo: 0xb4, hi: 0xb4},\n\t{value: 0xc600, lo: 0xb5, hi: 0xbf},\n\t// Block 0x68, offset 0x24a\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8f},\n\t{value: 0xe500, lo: 0x90, hi: 0x90},\n\t{value: 0xc600, lo: 0x91, hi: 0xab},\n\t{value: 0xe500, lo: 0xac, hi: 0xac},\n\t{value: 0xc600, lo: 0xad, hi: 0xbf},\n\t// Block 0x69, offset 0x250\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t{value: 0xe500, lo: 0xa4, hi: 0xa4},\n\t{value: 0xc600, lo: 0xa5, hi: 0xbf},\n\t// Block 0x6a, offset 0x256\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t// Block 0x6b, offset 0x25a\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x0003, lo: 0x81, hi: 0xbf},\n\t// Block 0x6c, offset 0x25c\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0xbd, hi: 0xbd},\n\t// Block 0x6d, offset 0x25e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0xa0, hi: 0xa0},\n\t// Block 0x6e, offset 0x260\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xb6, hi: 0xba},\n\t// Block 0x6f, offset 0x262\n\t{value: 0x002d, lo: 0x05},\n\t{value: 0x812e, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8133, lo: 0x8f, hi: 0x8f},\n\t{value: 0x8133, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8101, lo: 0xb9, hi: 0xba},\n\t{value: 0x8105, lo: 0xbf, hi: 0xbf},\n\t// Block 0x70, offset 0x268\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8133, lo: 0xa5, hi: 0xa5},\n\t{value: 0x812e, lo: 0xa6, hi: 0xa6},\n\t// Block 0x71, offset 0x26b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xa4, hi: 0xa7},\n\t// Block 0x72, offset 0x26d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xab, hi: 0xac},\n\t// Block 0x73, offset 0x26f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0xbd, hi: 0xbf},\n\t// Block 0x74, offset 0x271\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x812e, lo: 0x86, hi: 0x87},\n\t{value: 0x8133, lo: 0x88, hi: 0x8a},\n\t{value: 0x812e, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8133, lo: 0x8c, hi: 0x8c},\n\t{value: 0x812e, lo: 0x8d, hi: 0x90},\n\t// Block 0x75, offset 0x277\n\t{value: 0x0005, lo: 0x03},\n\t{value: 0x8133, lo: 0x82, hi: 0x82},\n\t{value: 0x812e, lo: 0x83, hi: 0x84},\n\t{value: 0x812e, lo: 0x85, hi: 0x85},\n\t// Block 0x76, offset 0x27b\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8105, lo: 0x86, hi: 0x86},\n\t{value: 0x8105, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8105, lo: 0xbf, hi: 0xbf},\n\t// Block 0x77, offset 0x27f\n\t{value: 0x17fe, lo: 0x07},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x4379, lo: 0x9a, hi: 0x9a},\n\t{value: 0xa000, lo: 0x9b, hi: 0x9b},\n\t{value: 0x4383, lo: 0x9c, hi: 0x9c},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x438d, lo: 0xab, hi: 0xab},\n\t{value: 0x8105, lo: 0xb9, hi: 0xba},\n\t// Block 0x78, offset 0x287\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x8133, lo: 0x80, hi: 0x82},\n\t{value: 0x9900, lo: 0xa7, hi: 0xa7},\n\t{value: 0x2eb5, lo: 0xae, hi: 0xae},\n\t{value: 0x2ebf, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb1, hi: 0xb2},\n\t{value: 0x8105, lo: 0xb3, hi: 0xb4},\n\t// Block 0x79, offset 0x28e\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x80, hi: 0x80},\n\t{value: 0x8103, lo: 0x8a, hi: 0x8a},\n\t// Block 0x7a, offset 0x291\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0xb5, hi: 0xb5},\n\t{value: 0x8103, lo: 0xb6, hi: 0xb6},\n\t// Block 0x7b, offset 0x294\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x8103, lo: 0xa9, hi: 0xaa},\n\t// Block 0x7c, offset 0x296\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8103, lo: 0xbb, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x7d, offset 0x299\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2ec9, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2ed3, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8105, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x8133, lo: 0xa6, hi: 0xac},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb4},\n\t// Block 0x7e, offset 0x2a1\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8105, lo: 0x82, hi: 0x82},\n\t{value: 0x8103, lo: 0x86, hi: 0x86},\n\t{value: 0x8133, lo: 0x9e, hi: 0x9e},\n\t// Block 0x7f, offset 0x2a5\n\t{value: 0x6a23, lo: 0x06},\n\t{value: 0x9900, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb9, hi: 0xb9},\n\t{value: 0x9900, lo: 0xba, hi: 0xba},\n\t{value: 0x2ee7, lo: 0xbb, hi: 0xbb},\n\t{value: 0x2edd, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2ef1, lo: 0xbe, hi: 0xbe},\n\t// Block 0x80, offset 0x2ac\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0x82, hi: 0x82},\n\t{value: 0x8103, lo: 0x83, hi: 0x83},\n\t// Block 0x81, offset 0x2af\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x9900, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2efb, lo: 0xba, hi: 0xba},\n\t{value: 0x2f05, lo: 0xbb, hi: 0xbb},\n\t{value: 0x8105, lo: 0xbf, hi: 0xbf},\n\t// Block 0x82, offset 0x2b5\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8103, lo: 0x80, hi: 0x80},\n\t// Block 0x83, offset 0x2b7\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xbf, hi: 0xbf},\n\t// Block 0x84, offset 0x2b9\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8103, lo: 0xb7, hi: 0xb7},\n\t// Block 0x85, offset 0x2bc\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xab, hi: 0xab},\n\t// Block 0x86, offset 0x2be\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8105, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8103, lo: 0xba, hi: 0xba},\n\t// Block 0x87, offset 0x2c1\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x9900, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb5, hi: 0xb5},\n\t{value: 0x2f0f, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8105, lo: 0xbd, hi: 0xbe},\n\t// Block 0x88, offset 0x2c6\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8103, lo: 0x83, hi: 0x83},\n\t// Block 0x89, offset 0x2c8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xa0, hi: 0xa0},\n\t// Block 0x8a, offset 0x2ca\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0xb4, hi: 0xb4},\n\t// Block 0x8b, offset 0x2cc\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x87, hi: 0x87},\n\t// Block 0x8c, offset 0x2ce\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x99, hi: 0x99},\n\t// Block 0x8d, offset 0x2d0\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8103, lo: 0x82, hi: 0x82},\n\t{value: 0x8105, lo: 0x84, hi: 0x85},\n\t// Block 0x8e, offset 0x2d3\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x97, hi: 0x97},\n\t// Block 0x8f, offset 0x2d5\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8105, lo: 0x81, hi: 0x82},\n\t// Block 0x90, offset 0x2d7\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0xb0, hi: 0xb4},\n\t// Block 0x91, offset 0x2d9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xb0, hi: 0xb6},\n\t// Block 0x92, offset 0x2db\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb0, hi: 0xb1},\n\t// Block 0x93, offset 0x2dd\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0x9e, hi: 0x9e},\n\t// Block 0x94, offset 0x2df\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x470d, lo: 0x9e, hi: 0x9e},\n\t{value: 0x4717, lo: 0x9f, hi: 0x9f},\n\t{value: 0x474b, lo: 0xa0, hi: 0xa0},\n\t{value: 0x4759, lo: 0xa1, hi: 0xa1},\n\t{value: 0x4767, lo: 0xa2, hi: 0xa2},\n\t{value: 0x4775, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4783, lo: 0xa4, hi: 0xa4},\n\t{value: 0x812c, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8101, lo: 0xa7, hi: 0xa9},\n\t{value: 0x8131, lo: 0xad, hi: 0xad},\n\t{value: 0x812c, lo: 0xae, hi: 0xb2},\n\t{value: 0x812e, lo: 0xbb, hi: 0xbf},\n\t// Block 0x95, offset 0x2ec\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x812e, lo: 0x80, hi: 0x82},\n\t{value: 0x8133, lo: 0x85, hi: 0x89},\n\t{value: 0x812e, lo: 0x8a, hi: 0x8b},\n\t{value: 0x8133, lo: 0xaa, hi: 0xad},\n\t{value: 0x4721, lo: 0xbb, hi: 0xbb},\n\t{value: 0x472b, lo: 0xbc, hi: 0xbc},\n\t{value: 0x4791, lo: 0xbd, hi: 0xbd},\n\t{value: 0x47ad, lo: 0xbe, hi: 0xbe},\n\t{value: 0x479f, lo: 0xbf, hi: 0xbf},\n\t// Block 0x96, offset 0x2f6\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x47bb, lo: 0x80, hi: 0x80},\n\t// Block 0x97, offset 0x2f8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0x82, hi: 0x84},\n\t// Block 0x98, offset 0x2fa\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x0043, lo: 0x80, hi: 0x99},\n\t{value: 0x0083, lo: 0x9a, hi: 0xb3},\n\t{value: 0x0043, lo: 0xb4, hi: 0xbf},\n\t// Block 0x99, offset 0x2fe\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x005b, lo: 0x80, hi: 0x8d},\n\t{value: 0x0083, lo: 0x8e, hi: 0x94},\n\t{value: 0x0093, lo: 0x96, hi: 0xa7},\n\t{value: 0x0043, lo: 0xa8, hi: 0xbf},\n\t// Block 0x9a, offset 0x303\n\t{value: 0x0002, lo: 0x0b},\n\t{value: 0x0073, lo: 0x80, hi: 0x81},\n\t{value: 0x0083, lo: 0x82, hi: 0x9b},\n\t{value: 0x0043, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0047, lo: 0x9e, hi: 0x9f},\n\t{value: 0x004f, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0055, lo: 0xa5, hi: 0xa6},\n\t{value: 0x005d, lo: 0xa9, hi: 0xac},\n\t{value: 0x0067, lo: 0xae, hi: 0xb5},\n\t{value: 0x0083, lo: 0xb6, hi: 0xb9},\n\t{value: 0x008d, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0091, lo: 0xbd, hi: 0xbf},\n\t// Block 0x9b, offset 0x30f\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x0097, lo: 0x80, hi: 0x83},\n\t{value: 0x00a1, lo: 0x85, hi: 0x8f},\n\t{value: 0x0043, lo: 0x90, hi: 0xa9},\n\t{value: 0x0083, lo: 0xaa, hi: 0xbf},\n\t// Block 0x9c, offset 0x314\n\t{value: 0x0002, lo: 0x08},\n\t{value: 0x00af, lo: 0x80, hi: 0x83},\n\t{value: 0x0043, lo: 0x84, hi: 0x85},\n\t{value: 0x0049, lo: 0x87, hi: 0x8a},\n\t{value: 0x0055, lo: 0x8d, hi: 0x94},\n\t{value: 0x0067, lo: 0x96, hi: 0x9c},\n\t{value: 0x0083, lo: 0x9e, hi: 0xb7},\n\t{value: 0x0043, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0049, lo: 0xbb, hi: 0xbe},\n\t// Block 0x9d, offset 0x31d\n\t{value: 0x0002, lo: 0x05},\n\t{value: 0x0053, lo: 0x80, hi: 0x84},\n\t{value: 0x005f, lo: 0x86, hi: 0x86},\n\t{value: 0x0067, lo: 0x8a, hi: 0x90},\n\t{value: 0x0083, lo: 0x92, hi: 0xab},\n\t{value: 0x0043, lo: 0xac, hi: 0xbf},\n\t// Block 0x9e, offset 0x323\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x006b, lo: 0x80, hi: 0x85},\n\t{value: 0x0083, lo: 0x86, hi: 0x9f},\n\t{value: 0x0043, lo: 0xa0, hi: 0xb9},\n\t{value: 0x0083, lo: 0xba, hi: 0xbf},\n\t// Block 0x9f, offset 0x328\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x008f, lo: 0x80, hi: 0x93},\n\t{value: 0x0043, lo: 0x94, hi: 0xad},\n\t{value: 0x0083, lo: 0xae, hi: 0xbf},\n\t// Block 0xa0, offset 0x32c\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x00a7, lo: 0x80, hi: 0x87},\n\t{value: 0x0043, lo: 0x88, hi: 0xa1},\n\t{value: 0x0083, lo: 0xa2, hi: 0xbb},\n\t{value: 0x0043, lo: 0xbc, hi: 0xbf},\n\t// Block 0xa1, offset 0x331\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x004b, lo: 0x80, hi: 0x95},\n\t{value: 0x0083, lo: 0x96, hi: 0xaf},\n\t{value: 0x0043, lo: 0xb0, hi: 0xbf},\n\t// Block 0xa2, offset 0x335\n\t{value: 0x0003, lo: 0x0f},\n\t{value: 0x023c, lo: 0x80, hi: 0x80},\n\t{value: 0x0556, lo: 0x81, hi: 0x81},\n\t{value: 0x023f, lo: 0x82, hi: 0x9a},\n\t{value: 0x0552, lo: 0x9b, hi: 0x9b},\n\t{value: 0x024b, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0254, lo: 0x9d, hi: 0x9d},\n\t{value: 0x025a, lo: 0x9e, hi: 0x9e},\n\t{value: 0x027e, lo: 0x9f, hi: 0x9f},\n\t{value: 0x026f, lo: 0xa0, hi: 0xa0},\n\t{value: 0x026c, lo: 0xa1, hi: 0xa1},\n\t{value: 0x01f7, lo: 0xa2, hi: 0xb2},\n\t{value: 0x020c, lo: 0xb3, hi: 0xb3},\n\t{value: 0x022a, lo: 0xb4, hi: 0xba},\n\t{value: 0x0556, lo: 0xbb, hi: 0xbb},\n\t{value: 0x023f, lo: 0xbc, hi: 0xbf},\n\t// Block 0xa3, offset 0x345\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x024b, lo: 0x80, hi: 0x94},\n\t{value: 0x0552, lo: 0x95, hi: 0x95},\n\t{value: 0x024b, lo: 0x96, hi: 0x96},\n\t{value: 0x0254, lo: 0x97, hi: 0x97},\n\t{value: 0x025a, lo: 0x98, hi: 0x98},\n\t{value: 0x027e, lo: 0x99, hi: 0x99},\n\t{value: 0x026f, lo: 0x9a, hi: 0x9a},\n\t{value: 0x026c, lo: 0x9b, hi: 0x9b},\n\t{value: 0x01f7, lo: 0x9c, hi: 0xac},\n\t{value: 0x020c, lo: 0xad, hi: 0xad},\n\t{value: 0x022a, lo: 0xae, hi: 0xb4},\n\t{value: 0x0556, lo: 0xb5, hi: 0xb5},\n\t{value: 0x023f, lo: 0xb6, hi: 0xbf},\n\t// Block 0xa4, offset 0x353\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x025d, lo: 0x80, hi: 0x8e},\n\t{value: 0x0552, lo: 0x8f, hi: 0x8f},\n\t{value: 0x024b, lo: 0x90, hi: 0x90},\n\t{value: 0x0254, lo: 0x91, hi: 0x91},\n\t{value: 0x025a, lo: 0x92, hi: 0x92},\n\t{value: 0x027e, lo: 0x93, hi: 0x93},\n\t{value: 0x026f, lo: 0x94, hi: 0x94},\n\t{value: 0x026c, lo: 0x95, hi: 0x95},\n\t{value: 0x01f7, lo: 0x96, hi: 0xa6},\n\t{value: 0x020c, lo: 0xa7, hi: 0xa7},\n\t{value: 0x022a, lo: 0xa8, hi: 0xae},\n\t{value: 0x0556, lo: 0xaf, hi: 0xaf},\n\t{value: 0x023f, lo: 0xb0, hi: 0xbf},\n\t// Block 0xa5, offset 0x361\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x026f, lo: 0x80, hi: 0x88},\n\t{value: 0x0552, lo: 0x89, hi: 0x89},\n\t{value: 0x024b, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0254, lo: 0x8b, hi: 0x8b},\n\t{value: 0x025a, lo: 0x8c, hi: 0x8c},\n\t{value: 0x027e, lo: 0x8d, hi: 0x8d},\n\t{value: 0x026f, lo: 0x8e, hi: 0x8e},\n\t{value: 0x026c, lo: 0x8f, hi: 0x8f},\n\t{value: 0x01f7, lo: 0x90, hi: 0xa0},\n\t{value: 0x020c, lo: 0xa1, hi: 0xa1},\n\t{value: 0x022a, lo: 0xa2, hi: 0xa8},\n\t{value: 0x0556, lo: 0xa9, hi: 0xa9},\n\t{value: 0x023f, lo: 0xaa, hi: 0xbf},\n\t// Block 0xa6, offset 0x36f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0x8f, hi: 0x8f},\n\t// Block 0xa7, offset 0x371\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xae, hi: 0xae},\n\t// Block 0xa8, offset 0x373\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8133, lo: 0xac, hi: 0xaf},\n\t// Block 0xa9, offset 0x375\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8134, lo: 0xac, hi: 0xad},\n\t{value: 0x812e, lo: 0xae, hi: 0xae},\n\t{value: 0x8133, lo: 0xaf, hi: 0xaf},\n\t// Block 0xaa, offset 0x379\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812e, lo: 0x90, hi: 0x96},\n\t// Block 0xab, offset 0x37b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8133, lo: 0x84, hi: 0x89},\n\t{value: 0x8103, lo: 0x8a, hi: 0x8a},\n\t// Block 0xac, offset 0x37e\n\t{value: 0x0002, lo: 0x0a},\n\t{value: 0x0063, lo: 0x80, hi: 0x89},\n\t{value: 0x1a7e, lo: 0x8a, hi: 0x8a},\n\t{value: 0x1ab1, lo: 0x8b, hi: 0x8b},\n\t{value: 0x1acc, lo: 0x8c, hi: 0x8c},\n\t{value: 0x1ad2, lo: 0x8d, hi: 0x8d},\n\t{value: 0x1cf0, lo: 0x8e, hi: 0x8e},\n\t{value: 0x1ade, lo: 0x8f, hi: 0x8f},\n\t{value: 0x1aa8, lo: 0xaa, hi: 0xaa},\n\t{value: 0x1aab, lo: 0xab, hi: 0xab},\n\t{value: 0x1aae, lo: 0xac, hi: 0xac},\n\t// Block 0xad, offset 0x389\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x1a6c, lo: 0x90, hi: 0x90},\n\t// Block 0xae, offset 0x38b\n\t{value: 0x0028, lo: 0x09},\n\t{value: 0x2999, lo: 0x80, hi: 0x80},\n\t{value: 0x295d, lo: 0x81, hi: 0x81},\n\t{value: 0x2967, lo: 0x82, hi: 0x82},\n\t{value: 0x297b, lo: 0x83, hi: 0x84},\n\t{value: 0x2985, lo: 0x85, hi: 0x86},\n\t{value: 0x2971, lo: 0x87, hi: 0x87},\n\t{value: 0x298f, lo: 0x88, hi: 0x88},\n\t{value: 0x0c6a, lo: 0x90, hi: 0x90},\n\t{value: 0x09e2, lo: 0x91, hi: 0x91},\n\t// Block 0xaf, offset 0x395\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x0021, lo: 0xb0, hi: 0xb9},\n}\n\n// recompMap: 7528 bytes (entries only)\nvar recompMap map[uint32]rune\nvar recompMapOnce sync.Once\n\nconst recompMapPacked = \"\" +\n\t\"\\x00A\\x03\\x00\\x00\\x00\\x00\\xc0\" + // 0x00410300: 0x000000C0\n\t\"\\x00A\\x03\\x01\\x00\\x00\\x00\\xc1\" + // 0x00410301: 0x000000C1\n\t\"\\x00A\\x03\\x02\\x00\\x00\\x00\\xc2\" + // 0x00410302: 0x000000C2\n\t\"\\x00A\\x03\\x03\\x00\\x00\\x00\\xc3\" + // 0x00410303: 0x000000C3\n\t\"\\x00A\\x03\\b\\x00\\x00\\x00\\xc4\" + // 0x00410308: 0x000000C4\n\t\"\\x00A\\x03\\n\\x00\\x00\\x00\\xc5\" + // 0x0041030A: 0x000000C5\n\t\"\\x00C\\x03'\\x00\\x00\\x00\\xc7\" + // 0x00430327: 0x000000C7\n\t\"\\x00E\\x03\\x00\\x00\\x00\\x00\\xc8\" + // 0x00450300: 0x000000C8\n\t\"\\x00E\\x03\\x01\\x00\\x00\\x00\\xc9\" + // 0x00450301: 0x000000C9\n\t\"\\x00E\\x03\\x02\\x00\\x00\\x00\\xca\" + // 0x00450302: 0x000000CA\n\t\"\\x00E\\x03\\b\\x00\\x00\\x00\\xcb\" + // 0x00450308: 0x000000CB\n\t\"\\x00I\\x03\\x00\\x00\\x00\\x00\\xcc\" + // 0x00490300: 0x000000CC\n\t\"\\x00I\\x03\\x01\\x00\\x00\\x00\\xcd\" + // 0x00490301: 0x000000CD\n\t\"\\x00I\\x03\\x02\\x00\\x00\\x00\\xce\" + // 0x00490302: 0x000000CE\n\t\"\\x00I\\x03\\b\\x00\\x00\\x00\\xcf\" + // 0x00490308: 0x000000CF\n\t\"\\x00N\\x03\\x03\\x00\\x00\\x00\\xd1\" + // 0x004E0303: 0x000000D1\n\t\"\\x00O\\x03\\x00\\x00\\x00\\x00\\xd2\" + // 0x004F0300: 0x000000D2\n\t\"\\x00O\\x03\\x01\\x00\\x00\\x00\\xd3\" + // 0x004F0301: 0x000000D3\n\t\"\\x00O\\x03\\x02\\x00\\x00\\x00\\xd4\" + // 0x004F0302: 0x000000D4\n\t\"\\x00O\\x03\\x03\\x00\\x00\\x00\\xd5\" + // 0x004F0303: 0x000000D5\n\t\"\\x00O\\x03\\b\\x00\\x00\\x00\\xd6\" + // 0x004F0308: 0x000000D6\n\t\"\\x00U\\x03\\x00\\x00\\x00\\x00\\xd9\" + // 0x00550300: 0x000000D9\n\t\"\\x00U\\x03\\x01\\x00\\x00\\x00\\xda\" + // 0x00550301: 0x000000DA\n\t\"\\x00U\\x03\\x02\\x00\\x00\\x00\\xdb\" + // 0x00550302: 0x000000DB\n\t\"\\x00U\\x03\\b\\x00\\x00\\x00\\xdc\" + // 0x00550308: 0x000000DC\n\t\"\\x00Y\\x03\\x01\\x00\\x00\\x00\\xdd\" + // 0x00590301: 0x000000DD\n\t\"\\x00a\\x03\\x00\\x00\\x00\\x00\\xe0\" + // 0x00610300: 0x000000E0\n\t\"\\x00a\\x03\\x01\\x00\\x00\\x00\\xe1\" + // 0x00610301: 0x000000E1\n\t\"\\x00a\\x03\\x02\\x00\\x00\\x00\\xe2\" + // 0x00610302: 0x000000E2\n\t\"\\x00a\\x03\\x03\\x00\\x00\\x00\\xe3\" + // 0x00610303: 0x000000E3\n\t\"\\x00a\\x03\\b\\x00\\x00\\x00\\xe4\" + // 0x00610308: 0x000000E4\n\t\"\\x00a\\x03\\n\\x00\\x00\\x00\\xe5\" + // 0x0061030A: 0x000000E5\n\t\"\\x00c\\x03'\\x00\\x00\\x00\\xe7\" + // 0x00630327: 0x000000E7\n\t\"\\x00e\\x03\\x00\\x00\\x00\\x00\\xe8\" + // 0x00650300: 0x000000E8\n\t\"\\x00e\\x03\\x01\\x00\\x00\\x00\\xe9\" + // 0x00650301: 0x000000E9\n\t\"\\x00e\\x03\\x02\\x00\\x00\\x00\\xea\" + // 0x00650302: 0x000000EA\n\t\"\\x00e\\x03\\b\\x00\\x00\\x00\\xeb\" + // 0x00650308: 0x000000EB\n\t\"\\x00i\\x03\\x00\\x00\\x00\\x00\\xec\" + // 0x00690300: 0x000000EC\n\t\"\\x00i\\x03\\x01\\x00\\x00\\x00\\xed\" + // 0x00690301: 0x000000ED\n\t\"\\x00i\\x03\\x02\\x00\\x00\\x00\\xee\" + // 0x00690302: 0x000000EE\n\t\"\\x00i\\x03\\b\\x00\\x00\\x00\\xef\" + // 0x00690308: 0x000000EF\n\t\"\\x00n\\x03\\x03\\x00\\x00\\x00\\xf1\" + // 0x006E0303: 0x000000F1\n\t\"\\x00o\\x03\\x00\\x00\\x00\\x00\\xf2\" + // 0x006F0300: 0x000000F2\n\t\"\\x00o\\x03\\x01\\x00\\x00\\x00\\xf3\" + // 0x006F0301: 0x000000F3\n\t\"\\x00o\\x03\\x02\\x00\\x00\\x00\\xf4\" + // 0x006F0302: 0x000000F4\n\t\"\\x00o\\x03\\x03\\x00\\x00\\x00\\xf5\" + // 0x006F0303: 0x000000F5\n\t\"\\x00o\\x03\\b\\x00\\x00\\x00\\xf6\" + // 0x006F0308: 0x000000F6\n\t\"\\x00u\\x03\\x00\\x00\\x00\\x00\\xf9\" + // 0x00750300: 0x000000F9\n\t\"\\x00u\\x03\\x01\\x00\\x00\\x00\\xfa\" + // 0x00750301: 0x000000FA\n\t\"\\x00u\\x03\\x02\\x00\\x00\\x00\\xfb\" + // 0x00750302: 0x000000FB\n\t\"\\x00u\\x03\\b\\x00\\x00\\x00\\xfc\" + // 0x00750308: 0x000000FC\n\t\"\\x00y\\x03\\x01\\x00\\x00\\x00\\xfd\" + // 0x00790301: 0x000000FD\n\t\"\\x00y\\x03\\b\\x00\\x00\\x00\\xff\" + // 0x00790308: 0x000000FF\n\t\"\\x00A\\x03\\x04\\x00\\x00\\x01\\x00\" + // 0x00410304: 0x00000100\n\t\"\\x00a\\x03\\x04\\x00\\x00\\x01\\x01\" + // 0x00610304: 0x00000101\n\t\"\\x00A\\x03\\x06\\x00\\x00\\x01\\x02\" + // 0x00410306: 0x00000102\n\t\"\\x00a\\x03\\x06\\x00\\x00\\x01\\x03\" + // 0x00610306: 0x00000103\n\t\"\\x00A\\x03(\\x00\\x00\\x01\\x04\" + // 0x00410328: 0x00000104\n\t\"\\x00a\\x03(\\x00\\x00\\x01\\x05\" + // 0x00610328: 0x00000105\n\t\"\\x00C\\x03\\x01\\x00\\x00\\x01\\x06\" + // 0x00430301: 0x00000106\n\t\"\\x00c\\x03\\x01\\x00\\x00\\x01\\a\" + // 0x00630301: 0x00000107\n\t\"\\x00C\\x03\\x02\\x00\\x00\\x01\\b\" + // 0x00430302: 0x00000108\n\t\"\\x00c\\x03\\x02\\x00\\x00\\x01\\t\" + // 0x00630302: 0x00000109\n\t\"\\x00C\\x03\\a\\x00\\x00\\x01\\n\" + // 0x00430307: 0x0000010A\n\t\"\\x00c\\x03\\a\\x00\\x00\\x01\\v\" + // 0x00630307: 0x0000010B\n\t\"\\x00C\\x03\\f\\x00\\x00\\x01\\f\" + // 0x0043030C: 0x0000010C\n\t\"\\x00c\\x03\\f\\x00\\x00\\x01\\r\" + // 0x0063030C: 0x0000010D\n\t\"\\x00D\\x03\\f\\x00\\x00\\x01\\x0e\" + // 0x0044030C: 0x0000010E\n\t\"\\x00d\\x03\\f\\x00\\x00\\x01\\x0f\" + // 0x0064030C: 0x0000010F\n\t\"\\x00E\\x03\\x04\\x00\\x00\\x01\\x12\" + // 0x00450304: 0x00000112\n\t\"\\x00e\\x03\\x04\\x00\\x00\\x01\\x13\" + // 0x00650304: 0x00000113\n\t\"\\x00E\\x03\\x06\\x00\\x00\\x01\\x14\" + // 0x00450306: 0x00000114\n\t\"\\x00e\\x03\\x06\\x00\\x00\\x01\\x15\" + // 0x00650306: 0x00000115\n\t\"\\x00E\\x03\\a\\x00\\x00\\x01\\x16\" + // 0x00450307: 0x00000116\n\t\"\\x00e\\x03\\a\\x00\\x00\\x01\\x17\" + // 0x00650307: 0x00000117\n\t\"\\x00E\\x03(\\x00\\x00\\x01\\x18\" + // 0x00450328: 0x00000118\n\t\"\\x00e\\x03(\\x00\\x00\\x01\\x19\" + // 0x00650328: 0x00000119\n\t\"\\x00E\\x03\\f\\x00\\x00\\x01\\x1a\" + // 0x0045030C: 0x0000011A\n\t\"\\x00e\\x03\\f\\x00\\x00\\x01\\x1b\" + // 0x0065030C: 0x0000011B\n\t\"\\x00G\\x03\\x02\\x00\\x00\\x01\\x1c\" + // 0x00470302: 0x0000011C\n\t\"\\x00g\\x03\\x02\\x00\\x00\\x01\\x1d\" + // 0x00670302: 0x0000011D\n\t\"\\x00G\\x03\\x06\\x00\\x00\\x01\\x1e\" + // 0x00470306: 0x0000011E\n\t\"\\x00g\\x03\\x06\\x00\\x00\\x01\\x1f\" + // 0x00670306: 0x0000011F\n\t\"\\x00G\\x03\\a\\x00\\x00\\x01 \" + // 0x00470307: 0x00000120\n\t\"\\x00g\\x03\\a\\x00\\x00\\x01!\" + // 0x00670307: 0x00000121\n\t\"\\x00G\\x03'\\x00\\x00\\x01\\\"\" + // 0x00470327: 0x00000122\n\t\"\\x00g\\x03'\\x00\\x00\\x01#\" + // 0x00670327: 0x00000123\n\t\"\\x00H\\x03\\x02\\x00\\x00\\x01$\" + // 0x00480302: 0x00000124\n\t\"\\x00h\\x03\\x02\\x00\\x00\\x01%\" + // 0x00680302: 0x00000125\n\t\"\\x00I\\x03\\x03\\x00\\x00\\x01(\" + // 0x00490303: 0x00000128\n\t\"\\x00i\\x03\\x03\\x00\\x00\\x01)\" + // 0x00690303: 0x00000129\n\t\"\\x00I\\x03\\x04\\x00\\x00\\x01*\" + // 0x00490304: 0x0000012A\n\t\"\\x00i\\x03\\x04\\x00\\x00\\x01+\" + // 0x00690304: 0x0000012B\n\t\"\\x00I\\x03\\x06\\x00\\x00\\x01,\" + // 0x00490306: 0x0000012C\n\t\"\\x00i\\x03\\x06\\x00\\x00\\x01-\" + // 0x00690306: 0x0000012D\n\t\"\\x00I\\x03(\\x00\\x00\\x01.\" + // 0x00490328: 0x0000012E\n\t\"\\x00i\\x03(\\x00\\x00\\x01/\" + // 0x00690328: 0x0000012F\n\t\"\\x00I\\x03\\a\\x00\\x00\\x010\" + // 0x00490307: 0x00000130\n\t\"\\x00J\\x03\\x02\\x00\\x00\\x014\" + // 0x004A0302: 0x00000134\n\t\"\\x00j\\x03\\x02\\x00\\x00\\x015\" + // 0x006A0302: 0x00000135\n\t\"\\x00K\\x03'\\x00\\x00\\x016\" + // 0x004B0327: 0x00000136\n\t\"\\x00k\\x03'\\x00\\x00\\x017\" + // 0x006B0327: 0x00000137\n\t\"\\x00L\\x03\\x01\\x00\\x00\\x019\" + // 0x004C0301: 0x00000139\n\t\"\\x00l\\x03\\x01\\x00\\x00\\x01:\" + // 0x006C0301: 0x0000013A\n\t\"\\x00L\\x03'\\x00\\x00\\x01;\" + // 0x004C0327: 0x0000013B\n\t\"\\x00l\\x03'\\x00\\x00\\x01<\" + // 0x006C0327: 0x0000013C\n\t\"\\x00L\\x03\\f\\x00\\x00\\x01=\" + // 0x004C030C: 0x0000013D\n\t\"\\x00l\\x03\\f\\x00\\x00\\x01>\" + // 0x006C030C: 0x0000013E\n\t\"\\x00N\\x03\\x01\\x00\\x00\\x01C\" + // 0x004E0301: 0x00000143\n\t\"\\x00n\\x03\\x01\\x00\\x00\\x01D\" + // 0x006E0301: 0x00000144\n\t\"\\x00N\\x03'\\x00\\x00\\x01E\" + // 0x004E0327: 0x00000145\n\t\"\\x00n\\x03'\\x00\\x00\\x01F\" + // 0x006E0327: 0x00000146\n\t\"\\x00N\\x03\\f\\x00\\x00\\x01G\" + // 0x004E030C: 0x00000147\n\t\"\\x00n\\x03\\f\\x00\\x00\\x01H\" + // 0x006E030C: 0x00000148\n\t\"\\x00O\\x03\\x04\\x00\\x00\\x01L\" + // 0x004F0304: 0x0000014C\n\t\"\\x00o\\x03\\x04\\x00\\x00\\x01M\" + // 0x006F0304: 0x0000014D\n\t\"\\x00O\\x03\\x06\\x00\\x00\\x01N\" + // 0x004F0306: 0x0000014E\n\t\"\\x00o\\x03\\x06\\x00\\x00\\x01O\" + // 0x006F0306: 0x0000014F\n\t\"\\x00O\\x03\\v\\x00\\x00\\x01P\" + // 0x004F030B: 0x00000150\n\t\"\\x00o\\x03\\v\\x00\\x00\\x01Q\" + // 0x006F030B: 0x00000151\n\t\"\\x00R\\x03\\x01\\x00\\x00\\x01T\" + // 0x00520301: 0x00000154\n\t\"\\x00r\\x03\\x01\\x00\\x00\\x01U\" + // 0x00720301: 0x00000155\n\t\"\\x00R\\x03'\\x00\\x00\\x01V\" + // 0x00520327: 0x00000156\n\t\"\\x00r\\x03'\\x00\\x00\\x01W\" + // 0x00720327: 0x00000157\n\t\"\\x00R\\x03\\f\\x00\\x00\\x01X\" + // 0x0052030C: 0x00000158\n\t\"\\x00r\\x03\\f\\x00\\x00\\x01Y\" + // 0x0072030C: 0x00000159\n\t\"\\x00S\\x03\\x01\\x00\\x00\\x01Z\" + // 0x00530301: 0x0000015A\n\t\"\\x00s\\x03\\x01\\x00\\x00\\x01[\" + // 0x00730301: 0x0000015B\n\t\"\\x00S\\x03\\x02\\x00\\x00\\x01\\\\\" + // 0x00530302: 0x0000015C\n\t\"\\x00s\\x03\\x02\\x00\\x00\\x01]\" + // 0x00730302: 0x0000015D\n\t\"\\x00S\\x03'\\x00\\x00\\x01^\" + // 0x00530327: 0x0000015E\n\t\"\\x00s\\x03'\\x00\\x00\\x01_\" + // 0x00730327: 0x0000015F\n\t\"\\x00S\\x03\\f\\x00\\x00\\x01`\" + // 0x0053030C: 0x00000160\n\t\"\\x00s\\x03\\f\\x00\\x00\\x01a\" + // 0x0073030C: 0x00000161\n\t\"\\x00T\\x03'\\x00\\x00\\x01b\" + // 0x00540327: 0x00000162\n\t\"\\x00t\\x03'\\x00\\x00\\x01c\" + // 0x00740327: 0x00000163\n\t\"\\x00T\\x03\\f\\x00\\x00\\x01d\" + // 0x0054030C: 0x00000164\n\t\"\\x00t\\x03\\f\\x00\\x00\\x01e\" + // 0x0074030C: 0x00000165\n\t\"\\x00U\\x03\\x03\\x00\\x00\\x01h\" + // 0x00550303: 0x00000168\n\t\"\\x00u\\x03\\x03\\x00\\x00\\x01i\" + // 0x00750303: 0x00000169\n\t\"\\x00U\\x03\\x04\\x00\\x00\\x01j\" + // 0x00550304: 0x0000016A\n\t\"\\x00u\\x03\\x04\\x00\\x00\\x01k\" + // 0x00750304: 0x0000016B\n\t\"\\x00U\\x03\\x06\\x00\\x00\\x01l\" + // 0x00550306: 0x0000016C\n\t\"\\x00u\\x03\\x06\\x00\\x00\\x01m\" + // 0x00750306: 0x0000016D\n\t\"\\x00U\\x03\\n\\x00\\x00\\x01n\" + // 0x0055030A: 0x0000016E\n\t\"\\x00u\\x03\\n\\x00\\x00\\x01o\" + // 0x0075030A: 0x0000016F\n\t\"\\x00U\\x03\\v\\x00\\x00\\x01p\" + // 0x0055030B: 0x00000170\n\t\"\\x00u\\x03\\v\\x00\\x00\\x01q\" + // 0x0075030B: 0x00000171\n\t\"\\x00U\\x03(\\x00\\x00\\x01r\" + // 0x00550328: 0x00000172\n\t\"\\x00u\\x03(\\x00\\x00\\x01s\" + // 0x00750328: 0x00000173\n\t\"\\x00W\\x03\\x02\\x00\\x00\\x01t\" + // 0x00570302: 0x00000174\n\t\"\\x00w\\x03\\x02\\x00\\x00\\x01u\" + // 0x00770302: 0x00000175\n\t\"\\x00Y\\x03\\x02\\x00\\x00\\x01v\" + // 0x00590302: 0x00000176\n\t\"\\x00y\\x03\\x02\\x00\\x00\\x01w\" + // 0x00790302: 0x00000177\n\t\"\\x00Y\\x03\\b\\x00\\x00\\x01x\" + // 0x00590308: 0x00000178\n\t\"\\x00Z\\x03\\x01\\x00\\x00\\x01y\" + // 0x005A0301: 0x00000179\n\t\"\\x00z\\x03\\x01\\x00\\x00\\x01z\" + // 0x007A0301: 0x0000017A\n\t\"\\x00Z\\x03\\a\\x00\\x00\\x01{\" + // 0x005A0307: 0x0000017B\n\t\"\\x00z\\x03\\a\\x00\\x00\\x01|\" + // 0x007A0307: 0x0000017C\n\t\"\\x00Z\\x03\\f\\x00\\x00\\x01}\" + // 0x005A030C: 0x0000017D\n\t\"\\x00z\\x03\\f\\x00\\x00\\x01~\" + // 0x007A030C: 0x0000017E\n\t\"\\x00O\\x03\\x1b\\x00\\x00\\x01\\xa0\" + // 0x004F031B: 0x000001A0\n\t\"\\x00o\\x03\\x1b\\x00\\x00\\x01\\xa1\" + // 0x006F031B: 0x000001A1\n\t\"\\x00U\\x03\\x1b\\x00\\x00\\x01\\xaf\" + // 0x0055031B: 0x000001AF\n\t\"\\x00u\\x03\\x1b\\x00\\x00\\x01\\xb0\" + // 0x0075031B: 0x000001B0\n\t\"\\x00A\\x03\\f\\x00\\x00\\x01\\xcd\" + // 0x0041030C: 0x000001CD\n\t\"\\x00a\\x03\\f\\x00\\x00\\x01\\xce\" + // 0x0061030C: 0x000001CE\n\t\"\\x00I\\x03\\f\\x00\\x00\\x01\\xcf\" + // 0x0049030C: 0x000001CF\n\t\"\\x00i\\x03\\f\\x00\\x00\\x01\\xd0\" + // 0x0069030C: 0x000001D0\n\t\"\\x00O\\x03\\f\\x00\\x00\\x01\\xd1\" + // 0x004F030C: 0x000001D1\n\t\"\\x00o\\x03\\f\\x00\\x00\\x01\\xd2\" + // 0x006F030C: 0x000001D2\n\t\"\\x00U\\x03\\f\\x00\\x00\\x01\\xd3\" + // 0x0055030C: 0x000001D3\n\t\"\\x00u\\x03\\f\\x00\\x00\\x01\\xd4\" + // 0x0075030C: 0x000001D4\n\t\"\\x00\\xdc\\x03\\x04\\x00\\x00\\x01\\xd5\" + // 0x00DC0304: 0x000001D5\n\t\"\\x00\\xfc\\x03\\x04\\x00\\x00\\x01\\xd6\" + // 0x00FC0304: 0x000001D6\n\t\"\\x00\\xdc\\x03\\x01\\x00\\x00\\x01\\xd7\" + // 0x00DC0301: 0x000001D7\n\t\"\\x00\\xfc\\x03\\x01\\x00\\x00\\x01\\xd8\" + // 0x00FC0301: 0x000001D8\n\t\"\\x00\\xdc\\x03\\f\\x00\\x00\\x01\\xd9\" + // 0x00DC030C: 0x000001D9\n\t\"\\x00\\xfc\\x03\\f\\x00\\x00\\x01\\xda\" + // 0x00FC030C: 0x000001DA\n\t\"\\x00\\xdc\\x03\\x00\\x00\\x00\\x01\\xdb\" + // 0x00DC0300: 0x000001DB\n\t\"\\x00\\xfc\\x03\\x00\\x00\\x00\\x01\\xdc\" + // 0x00FC0300: 0x000001DC\n\t\"\\x00\\xc4\\x03\\x04\\x00\\x00\\x01\\xde\" + // 0x00C40304: 0x000001DE\n\t\"\\x00\\xe4\\x03\\x04\\x00\\x00\\x01\\xdf\" + // 0x00E40304: 0x000001DF\n\t\"\\x02&\\x03\\x04\\x00\\x00\\x01\\xe0\" + // 0x02260304: 0x000001E0\n\t\"\\x02'\\x03\\x04\\x00\\x00\\x01\\xe1\" + // 0x02270304: 0x000001E1\n\t\"\\x00\\xc6\\x03\\x04\\x00\\x00\\x01\\xe2\" + // 0x00C60304: 0x000001E2\n\t\"\\x00\\xe6\\x03\\x04\\x00\\x00\\x01\\xe3\" + // 0x00E60304: 0x000001E3\n\t\"\\x00G\\x03\\f\\x00\\x00\\x01\\xe6\" + // 0x0047030C: 0x000001E6\n\t\"\\x00g\\x03\\f\\x00\\x00\\x01\\xe7\" + // 0x0067030C: 0x000001E7\n\t\"\\x00K\\x03\\f\\x00\\x00\\x01\\xe8\" + // 0x004B030C: 0x000001E8\n\t\"\\x00k\\x03\\f\\x00\\x00\\x01\\xe9\" + // 0x006B030C: 0x000001E9\n\t\"\\x00O\\x03(\\x00\\x00\\x01\\xea\" + // 0x004F0328: 0x000001EA\n\t\"\\x00o\\x03(\\x00\\x00\\x01\\xeb\" + // 0x006F0328: 0x000001EB\n\t\"\\x01\\xea\\x03\\x04\\x00\\x00\\x01\\xec\" + // 0x01EA0304: 0x000001EC\n\t\"\\x01\\xeb\\x03\\x04\\x00\\x00\\x01\\xed\" + // 0x01EB0304: 0x000001ED\n\t\"\\x01\\xb7\\x03\\f\\x00\\x00\\x01\\xee\" + // 0x01B7030C: 0x000001EE\n\t\"\\x02\\x92\\x03\\f\\x00\\x00\\x01\\xef\" + // 0x0292030C: 0x000001EF\n\t\"\\x00j\\x03\\f\\x00\\x00\\x01\\xf0\" + // 0x006A030C: 0x000001F0\n\t\"\\x00G\\x03\\x01\\x00\\x00\\x01\\xf4\" + // 0x00470301: 0x000001F4\n\t\"\\x00g\\x03\\x01\\x00\\x00\\x01\\xf5\" + // 0x00670301: 0x000001F5\n\t\"\\x00N\\x03\\x00\\x00\\x00\\x01\\xf8\" + // 0x004E0300: 0x000001F8\n\t\"\\x00n\\x03\\x00\\x00\\x00\\x01\\xf9\" + // 0x006E0300: 0x000001F9\n\t\"\\x00\\xc5\\x03\\x01\\x00\\x00\\x01\\xfa\" + // 0x00C50301: 0x000001FA\n\t\"\\x00\\xe5\\x03\\x01\\x00\\x00\\x01\\xfb\" + // 0x00E50301: 0x000001FB\n\t\"\\x00\\xc6\\x03\\x01\\x00\\x00\\x01\\xfc\" + // 0x00C60301: 0x000001FC\n\t\"\\x00\\xe6\\x03\\x01\\x00\\x00\\x01\\xfd\" + // 0x00E60301: 0x000001FD\n\t\"\\x00\\xd8\\x03\\x01\\x00\\x00\\x01\\xfe\" + // 0x00D80301: 0x000001FE\n\t\"\\x00\\xf8\\x03\\x01\\x00\\x00\\x01\\xff\" + // 0x00F80301: 0x000001FF\n\t\"\\x00A\\x03\\x0f\\x00\\x00\\x02\\x00\" + // 0x0041030F: 0x00000200\n\t\"\\x00a\\x03\\x0f\\x00\\x00\\x02\\x01\" + // 0x0061030F: 0x00000201\n\t\"\\x00A\\x03\\x11\\x00\\x00\\x02\\x02\" + // 0x00410311: 0x00000202\n\t\"\\x00a\\x03\\x11\\x00\\x00\\x02\\x03\" + // 0x00610311: 0x00000203\n\t\"\\x00E\\x03\\x0f\\x00\\x00\\x02\\x04\" + // 0x0045030F: 0x00000204\n\t\"\\x00e\\x03\\x0f\\x00\\x00\\x02\\x05\" + // 0x0065030F: 0x00000205\n\t\"\\x00E\\x03\\x11\\x00\\x00\\x02\\x06\" + // 0x00450311: 0x00000206\n\t\"\\x00e\\x03\\x11\\x00\\x00\\x02\\a\" + // 0x00650311: 0x00000207\n\t\"\\x00I\\x03\\x0f\\x00\\x00\\x02\\b\" + // 0x0049030F: 0x00000208\n\t\"\\x00i\\x03\\x0f\\x00\\x00\\x02\\t\" + // 0x0069030F: 0x00000209\n\t\"\\x00I\\x03\\x11\\x00\\x00\\x02\\n\" + // 0x00490311: 0x0000020A\n\t\"\\x00i\\x03\\x11\\x00\\x00\\x02\\v\" + // 0x00690311: 0x0000020B\n\t\"\\x00O\\x03\\x0f\\x00\\x00\\x02\\f\" + // 0x004F030F: 0x0000020C\n\t\"\\x00o\\x03\\x0f\\x00\\x00\\x02\\r\" + // 0x006F030F: 0x0000020D\n\t\"\\x00O\\x03\\x11\\x00\\x00\\x02\\x0e\" + // 0x004F0311: 0x0000020E\n\t\"\\x00o\\x03\\x11\\x00\\x00\\x02\\x0f\" + // 0x006F0311: 0x0000020F\n\t\"\\x00R\\x03\\x0f\\x00\\x00\\x02\\x10\" + // 0x0052030F: 0x00000210\n\t\"\\x00r\\x03\\x0f\\x00\\x00\\x02\\x11\" + // 0x0072030F: 0x00000211\n\t\"\\x00R\\x03\\x11\\x00\\x00\\x02\\x12\" + // 0x00520311: 0x00000212\n\t\"\\x00r\\x03\\x11\\x00\\x00\\x02\\x13\" + // 0x00720311: 0x00000213\n\t\"\\x00U\\x03\\x0f\\x00\\x00\\x02\\x14\" + // 0x0055030F: 0x00000214\n\t\"\\x00u\\x03\\x0f\\x00\\x00\\x02\\x15\" + // 0x0075030F: 0x00000215\n\t\"\\x00U\\x03\\x11\\x00\\x00\\x02\\x16\" + // 0x00550311: 0x00000216\n\t\"\\x00u\\x03\\x11\\x00\\x00\\x02\\x17\" + // 0x00750311: 0x00000217\n\t\"\\x00S\\x03&\\x00\\x00\\x02\\x18\" + // 0x00530326: 0x00000218\n\t\"\\x00s\\x03&\\x00\\x00\\x02\\x19\" + // 0x00730326: 0x00000219\n\t\"\\x00T\\x03&\\x00\\x00\\x02\\x1a\" + // 0x00540326: 0x0000021A\n\t\"\\x00t\\x03&\\x00\\x00\\x02\\x1b\" + // 0x00740326: 0x0000021B\n\t\"\\x00H\\x03\\f\\x00\\x00\\x02\\x1e\" + // 0x0048030C: 0x0000021E\n\t\"\\x00h\\x03\\f\\x00\\x00\\x02\\x1f\" + // 0x0068030C: 0x0000021F\n\t\"\\x00A\\x03\\a\\x00\\x00\\x02&\" + // 0x00410307: 0x00000226\n\t\"\\x00a\\x03\\a\\x00\\x00\\x02'\" + // 0x00610307: 0x00000227\n\t\"\\x00E\\x03'\\x00\\x00\\x02(\" + // 0x00450327: 0x00000228\n\t\"\\x00e\\x03'\\x00\\x00\\x02)\" + // 0x00650327: 0x00000229\n\t\"\\x00\\xd6\\x03\\x04\\x00\\x00\\x02*\" + // 0x00D60304: 0x0000022A\n\t\"\\x00\\xf6\\x03\\x04\\x00\\x00\\x02+\" + // 0x00F60304: 0x0000022B\n\t\"\\x00\\xd5\\x03\\x04\\x00\\x00\\x02,\" + // 0x00D50304: 0x0000022C\n\t\"\\x00\\xf5\\x03\\x04\\x00\\x00\\x02-\" + // 0x00F50304: 0x0000022D\n\t\"\\x00O\\x03\\a\\x00\\x00\\x02.\" + // 0x004F0307: 0x0000022E\n\t\"\\x00o\\x03\\a\\x00\\x00\\x02/\" + // 0x006F0307: 0x0000022F\n\t\"\\x02.\\x03\\x04\\x00\\x00\\x020\" + // 0x022E0304: 0x00000230\n\t\"\\x02/\\x03\\x04\\x00\\x00\\x021\" + // 0x022F0304: 0x00000231\n\t\"\\x00Y\\x03\\x04\\x00\\x00\\x022\" + // 0x00590304: 0x00000232\n\t\"\\x00y\\x03\\x04\\x00\\x00\\x023\" + // 0x00790304: 0x00000233\n\t\"\\x00\\xa8\\x03\\x01\\x00\\x00\\x03\\x85\" + // 0x00A80301: 0x00000385\n\t\"\\x03\\x91\\x03\\x01\\x00\\x00\\x03\\x86\" + // 0x03910301: 0x00000386\n\t\"\\x03\\x95\\x03\\x01\\x00\\x00\\x03\\x88\" + // 0x03950301: 0x00000388\n\t\"\\x03\\x97\\x03\\x01\\x00\\x00\\x03\\x89\" + // 0x03970301: 0x00000389\n\t\"\\x03\\x99\\x03\\x01\\x00\\x00\\x03\\x8a\" + // 0x03990301: 0x0000038A\n\t\"\\x03\\x9f\\x03\\x01\\x00\\x00\\x03\\x8c\" + // 0x039F0301: 0x0000038C\n\t\"\\x03\\xa5\\x03\\x01\\x00\\x00\\x03\\x8e\" + // 0x03A50301: 0x0000038E\n\t\"\\x03\\xa9\\x03\\x01\\x00\\x00\\x03\\x8f\" + // 0x03A90301: 0x0000038F\n\t\"\\x03\\xca\\x03\\x01\\x00\\x00\\x03\\x90\" + // 0x03CA0301: 0x00000390\n\t\"\\x03\\x99\\x03\\b\\x00\\x00\\x03\\xaa\" + // 0x03990308: 0x000003AA\n\t\"\\x03\\xa5\\x03\\b\\x00\\x00\\x03\\xab\" + // 0x03A50308: 0x000003AB\n\t\"\\x03\\xb1\\x03\\x01\\x00\\x00\\x03\\xac\" + // 0x03B10301: 0x000003AC\n\t\"\\x03\\xb5\\x03\\x01\\x00\\x00\\x03\\xad\" + // 0x03B50301: 0x000003AD\n\t\"\\x03\\xb7\\x03\\x01\\x00\\x00\\x03\\xae\" + // 0x03B70301: 0x000003AE\n\t\"\\x03\\xb9\\x03\\x01\\x00\\x00\\x03\\xaf\" + // 0x03B90301: 0x000003AF\n\t\"\\x03\\xcb\\x03\\x01\\x00\\x00\\x03\\xb0\" + // 0x03CB0301: 0x000003B0\n\t\"\\x03\\xb9\\x03\\b\\x00\\x00\\x03\\xca\" + // 0x03B90308: 0x000003CA\n\t\"\\x03\\xc5\\x03\\b\\x00\\x00\\x03\\xcb\" + // 0x03C50308: 0x000003CB\n\t\"\\x03\\xbf\\x03\\x01\\x00\\x00\\x03\\xcc\" + // 0x03BF0301: 0x000003CC\n\t\"\\x03\\xc5\\x03\\x01\\x00\\x00\\x03\\xcd\" + // 0x03C50301: 0x000003CD\n\t\"\\x03\\xc9\\x03\\x01\\x00\\x00\\x03\\xce\" + // 0x03C90301: 0x000003CE\n\t\"\\x03\\xd2\\x03\\x01\\x00\\x00\\x03\\xd3\" + // 0x03D20301: 0x000003D3\n\t\"\\x03\\xd2\\x03\\b\\x00\\x00\\x03\\xd4\" + // 0x03D20308: 0x000003D4\n\t\"\\x04\\x15\\x03\\x00\\x00\\x00\\x04\\x00\" + // 0x04150300: 0x00000400\n\t\"\\x04\\x15\\x03\\b\\x00\\x00\\x04\\x01\" + // 0x04150308: 0x00000401\n\t\"\\x04\\x13\\x03\\x01\\x00\\x00\\x04\\x03\" + // 0x04130301: 0x00000403\n\t\"\\x04\\x06\\x03\\b\\x00\\x00\\x04\\a\" + // 0x04060308: 0x00000407\n\t\"\\x04\\x1a\\x03\\x01\\x00\\x00\\x04\\f\" + // 0x041A0301: 0x0000040C\n\t\"\\x04\\x18\\x03\\x00\\x00\\x00\\x04\\r\" + // 0x04180300: 0x0000040D\n\t\"\\x04#\\x03\\x06\\x00\\x00\\x04\\x0e\" + // 0x04230306: 0x0000040E\n\t\"\\x04\\x18\\x03\\x06\\x00\\x00\\x04\\x19\" + // 0x04180306: 0x00000419\n\t\"\\x048\\x03\\x06\\x00\\x00\\x049\" + // 0x04380306: 0x00000439\n\t\"\\x045\\x03\\x00\\x00\\x00\\x04P\" + // 0x04350300: 0x00000450\n\t\"\\x045\\x03\\b\\x00\\x00\\x04Q\" + // 0x04350308: 0x00000451\n\t\"\\x043\\x03\\x01\\x00\\x00\\x04S\" + // 0x04330301: 0x00000453\n\t\"\\x04V\\x03\\b\\x00\\x00\\x04W\" + // 0x04560308: 0x00000457\n\t\"\\x04:\\x03\\x01\\x00\\x00\\x04\\\\\" + // 0x043A0301: 0x0000045C\n\t\"\\x048\\x03\\x00\\x00\\x00\\x04]\" + // 0x04380300: 0x0000045D\n\t\"\\x04C\\x03\\x06\\x00\\x00\\x04^\" + // 0x04430306: 0x0000045E\n\t\"\\x04t\\x03\\x0f\\x00\\x00\\x04v\" + // 0x0474030F: 0x00000476\n\t\"\\x04u\\x03\\x0f\\x00\\x00\\x04w\" + // 0x0475030F: 0x00000477\n\t\"\\x04\\x16\\x03\\x06\\x00\\x00\\x04\\xc1\" + // 0x04160306: 0x000004C1\n\t\"\\x046\\x03\\x06\\x00\\x00\\x04\\xc2\" + // 0x04360306: 0x000004C2\n\t\"\\x04\\x10\\x03\\x06\\x00\\x00\\x04\\xd0\" + // 0x04100306: 0x000004D0\n\t\"\\x040\\x03\\x06\\x00\\x00\\x04\\xd1\" + // 0x04300306: 0x000004D1\n\t\"\\x04\\x10\\x03\\b\\x00\\x00\\x04\\xd2\" + // 0x04100308: 0x000004D2\n\t\"\\x040\\x03\\b\\x00\\x00\\x04\\xd3\" + // 0x04300308: 0x000004D3\n\t\"\\x04\\x15\\x03\\x06\\x00\\x00\\x04\\xd6\" + // 0x04150306: 0x000004D6\n\t\"\\x045\\x03\\x06\\x00\\x00\\x04\\xd7\" + // 0x04350306: 0x000004D7\n\t\"\\x04\\xd8\\x03\\b\\x00\\x00\\x04\\xda\" + // 0x04D80308: 0x000004DA\n\t\"\\x04\\xd9\\x03\\b\\x00\\x00\\x04\\xdb\" + // 0x04D90308: 0x000004DB\n\t\"\\x04\\x16\\x03\\b\\x00\\x00\\x04\\xdc\" + // 0x04160308: 0x000004DC\n\t\"\\x046\\x03\\b\\x00\\x00\\x04\\xdd\" + // 0x04360308: 0x000004DD\n\t\"\\x04\\x17\\x03\\b\\x00\\x00\\x04\\xde\" + // 0x04170308: 0x000004DE\n\t\"\\x047\\x03\\b\\x00\\x00\\x04\\xdf\" + // 0x04370308: 0x000004DF\n\t\"\\x04\\x18\\x03\\x04\\x00\\x00\\x04\\xe2\" + // 0x04180304: 0x000004E2\n\t\"\\x048\\x03\\x04\\x00\\x00\\x04\\xe3\" + // 0x04380304: 0x000004E3\n\t\"\\x04\\x18\\x03\\b\\x00\\x00\\x04\\xe4\" + // 0x04180308: 0x000004E4\n\t\"\\x048\\x03\\b\\x00\\x00\\x04\\xe5\" + // 0x04380308: 0x000004E5\n\t\"\\x04\\x1e\\x03\\b\\x00\\x00\\x04\\xe6\" + // 0x041E0308: 0x000004E6\n\t\"\\x04>\\x03\\b\\x00\\x00\\x04\\xe7\" + // 0x043E0308: 0x000004E7\n\t\"\\x04\\xe8\\x03\\b\\x00\\x00\\x04\\xea\" + // 0x04E80308: 0x000004EA\n\t\"\\x04\\xe9\\x03\\b\\x00\\x00\\x04\\xeb\" + // 0x04E90308: 0x000004EB\n\t\"\\x04-\\x03\\b\\x00\\x00\\x04\\xec\" + // 0x042D0308: 0x000004EC\n\t\"\\x04M\\x03\\b\\x00\\x00\\x04\\xed\" + // 0x044D0308: 0x000004ED\n\t\"\\x04#\\x03\\x04\\x00\\x00\\x04\\xee\" + // 0x04230304: 0x000004EE\n\t\"\\x04C\\x03\\x04\\x00\\x00\\x04\\xef\" + // 0x04430304: 0x000004EF\n\t\"\\x04#\\x03\\b\\x00\\x00\\x04\\xf0\" + // 0x04230308: 0x000004F0\n\t\"\\x04C\\x03\\b\\x00\\x00\\x04\\xf1\" + // 0x04430308: 0x000004F1\n\t\"\\x04#\\x03\\v\\x00\\x00\\x04\\xf2\" + // 0x0423030B: 0x000004F2\n\t\"\\x04C\\x03\\v\\x00\\x00\\x04\\xf3\" + // 0x0443030B: 0x000004F3\n\t\"\\x04'\\x03\\b\\x00\\x00\\x04\\xf4\" + // 0x04270308: 0x000004F4\n\t\"\\x04G\\x03\\b\\x00\\x00\\x04\\xf5\" + // 0x04470308: 0x000004F5\n\t\"\\x04+\\x03\\b\\x00\\x00\\x04\\xf8\" + // 0x042B0308: 0x000004F8\n\t\"\\x04K\\x03\\b\\x00\\x00\\x04\\xf9\" + // 0x044B0308: 0x000004F9\n\t\"\\x06'\\x06S\\x00\\x00\\x06\\\"\" + // 0x06270653: 0x00000622\n\t\"\\x06'\\x06T\\x00\\x00\\x06#\" + // 0x06270654: 0x00000623\n\t\"\\x06H\\x06T\\x00\\x00\\x06$\" + // 0x06480654: 0x00000624\n\t\"\\x06'\\x06U\\x00\\x00\\x06%\" + // 0x06270655: 0x00000625\n\t\"\\x06J\\x06T\\x00\\x00\\x06&\" + // 0x064A0654: 0x00000626\n\t\"\\x06\\xd5\\x06T\\x00\\x00\\x06\\xc0\" + // 0x06D50654: 0x000006C0\n\t\"\\x06\\xc1\\x06T\\x00\\x00\\x06\\xc2\" + // 0x06C10654: 0x000006C2\n\t\"\\x06\\xd2\\x06T\\x00\\x00\\x06\\xd3\" + // 0x06D20654: 0x000006D3\n\t\"\\t(\\t<\\x00\\x00\\t)\" + // 0x0928093C: 0x00000929\n\t\"\\t0\\t<\\x00\\x00\\t1\" + // 0x0930093C: 0x00000931\n\t\"\\t3\\t<\\x00\\x00\\t4\" + // 0x0933093C: 0x00000934\n\t\"\\t\\xc7\\t\\xbe\\x00\\x00\\t\\xcb\" + // 0x09C709BE: 0x000009CB\n\t\"\\t\\xc7\\t\\xd7\\x00\\x00\\t\\xcc\" + // 0x09C709D7: 0x000009CC\n\t\"\\vG\\vV\\x00\\x00\\vH\" + // 0x0B470B56: 0x00000B48\n\t\"\\vG\\v>\\x00\\x00\\vK\" + // 0x0B470B3E: 0x00000B4B\n\t\"\\vG\\vW\\x00\\x00\\vL\" + // 0x0B470B57: 0x00000B4C\n\t\"\\v\\x92\\v\\xd7\\x00\\x00\\v\\x94\" + // 0x0B920BD7: 0x00000B94\n\t\"\\v\\xc6\\v\\xbe\\x00\\x00\\v\\xca\" + // 0x0BC60BBE: 0x00000BCA\n\t\"\\v\\xc7\\v\\xbe\\x00\\x00\\v\\xcb\" + // 0x0BC70BBE: 0x00000BCB\n\t\"\\v\\xc6\\v\\xd7\\x00\\x00\\v\\xcc\" + // 0x0BC60BD7: 0x00000BCC\n\t\"\\fF\\fV\\x00\\x00\\fH\" + // 0x0C460C56: 0x00000C48\n\t\"\\f\\xbf\\f\\xd5\\x00\\x00\\f\\xc0\" + // 0x0CBF0CD5: 0x00000CC0\n\t\"\\f\\xc6\\f\\xd5\\x00\\x00\\f\\xc7\" + // 0x0CC60CD5: 0x00000CC7\n\t\"\\f\\xc6\\f\\xd6\\x00\\x00\\f\\xc8\" + // 0x0CC60CD6: 0x00000CC8\n\t\"\\f\\xc6\\f\\xc2\\x00\\x00\\f\\xca\" + // 0x0CC60CC2: 0x00000CCA\n\t\"\\f\\xca\\f\\xd5\\x00\\x00\\f\\xcb\" + // 0x0CCA0CD5: 0x00000CCB\n\t\"\\rF\\r>\\x00\\x00\\rJ\" + // 0x0D460D3E: 0x00000D4A\n\t\"\\rG\\r>\\x00\\x00\\rK\" + // 0x0D470D3E: 0x00000D4B\n\t\"\\rF\\rW\\x00\\x00\\rL\" + // 0x0D460D57: 0x00000D4C\n\t\"\\r\\xd9\\r\\xca\\x00\\x00\\r\\xda\" + // 0x0DD90DCA: 0x00000DDA\n\t\"\\r\\xd9\\r\\xcf\\x00\\x00\\r\\xdc\" + // 0x0DD90DCF: 0x00000DDC\n\t\"\\r\\xdc\\r\\xca\\x00\\x00\\r\\xdd\" + // 0x0DDC0DCA: 0x00000DDD\n\t\"\\r\\xd9\\r\\xdf\\x00\\x00\\r\\xde\" + // 0x0DD90DDF: 0x00000DDE\n\t\"\\x10%\\x10.\\x00\\x00\\x10&\" + // 0x1025102E: 0x00001026\n\t\"\\x1b\\x05\\x1b5\\x00\\x00\\x1b\\x06\" + // 0x1B051B35: 0x00001B06\n\t\"\\x1b\\a\\x1b5\\x00\\x00\\x1b\\b\" + // 0x1B071B35: 0x00001B08\n\t\"\\x1b\\t\\x1b5\\x00\\x00\\x1b\\n\" + // 0x1B091B35: 0x00001B0A\n\t\"\\x1b\\v\\x1b5\\x00\\x00\\x1b\\f\" + // 0x1B0B1B35: 0x00001B0C\n\t\"\\x1b\\r\\x1b5\\x00\\x00\\x1b\\x0e\" + // 0x1B0D1B35: 0x00001B0E\n\t\"\\x1b\\x11\\x1b5\\x00\\x00\\x1b\\x12\" + // 0x1B111B35: 0x00001B12\n\t\"\\x1b:\\x1b5\\x00\\x00\\x1b;\" + // 0x1B3A1B35: 0x00001B3B\n\t\"\\x1b<\\x1b5\\x00\\x00\\x1b=\" + // 0x1B3C1B35: 0x00001B3D\n\t\"\\x1b>\\x1b5\\x00\\x00\\x1b@\" + // 0x1B3E1B35: 0x00001B40\n\t\"\\x1b?\\x1b5\\x00\\x00\\x1bA\" + // 0x1B3F1B35: 0x00001B41\n\t\"\\x1bB\\x1b5\\x00\\x00\\x1bC\" + // 0x1B421B35: 0x00001B43\n\t\"\\x00A\\x03%\\x00\\x00\\x1e\\x00\" + // 0x00410325: 0x00001E00\n\t\"\\x00a\\x03%\\x00\\x00\\x1e\\x01\" + // 0x00610325: 0x00001E01\n\t\"\\x00B\\x03\\a\\x00\\x00\\x1e\\x02\" + // 0x00420307: 0x00001E02\n\t\"\\x00b\\x03\\a\\x00\\x00\\x1e\\x03\" + // 0x00620307: 0x00001E03\n\t\"\\x00B\\x03#\\x00\\x00\\x1e\\x04\" + // 0x00420323: 0x00001E04\n\t\"\\x00b\\x03#\\x00\\x00\\x1e\\x05\" + // 0x00620323: 0x00001E05\n\t\"\\x00B\\x031\\x00\\x00\\x1e\\x06\" + // 0x00420331: 0x00001E06\n\t\"\\x00b\\x031\\x00\\x00\\x1e\\a\" + // 0x00620331: 0x00001E07\n\t\"\\x00\\xc7\\x03\\x01\\x00\\x00\\x1e\\b\" + // 0x00C70301: 0x00001E08\n\t\"\\x00\\xe7\\x03\\x01\\x00\\x00\\x1e\\t\" + // 0x00E70301: 0x00001E09\n\t\"\\x00D\\x03\\a\\x00\\x00\\x1e\\n\" + // 0x00440307: 0x00001E0A\n\t\"\\x00d\\x03\\a\\x00\\x00\\x1e\\v\" + // 0x00640307: 0x00001E0B\n\t\"\\x00D\\x03#\\x00\\x00\\x1e\\f\" + // 0x00440323: 0x00001E0C\n\t\"\\x00d\\x03#\\x00\\x00\\x1e\\r\" + // 0x00640323: 0x00001E0D\n\t\"\\x00D\\x031\\x00\\x00\\x1e\\x0e\" + // 0x00440331: 0x00001E0E\n\t\"\\x00d\\x031\\x00\\x00\\x1e\\x0f\" + // 0x00640331: 0x00001E0F\n\t\"\\x00D\\x03'\\x00\\x00\\x1e\\x10\" + // 0x00440327: 0x00001E10\n\t\"\\x00d\\x03'\\x00\\x00\\x1e\\x11\" + // 0x00640327: 0x00001E11\n\t\"\\x00D\\x03-\\x00\\x00\\x1e\\x12\" + // 0x0044032D: 0x00001E12\n\t\"\\x00d\\x03-\\x00\\x00\\x1e\\x13\" + // 0x0064032D: 0x00001E13\n\t\"\\x01\\x12\\x03\\x00\\x00\\x00\\x1e\\x14\" + // 0x01120300: 0x00001E14\n\t\"\\x01\\x13\\x03\\x00\\x00\\x00\\x1e\\x15\" + // 0x01130300: 0x00001E15\n\t\"\\x01\\x12\\x03\\x01\\x00\\x00\\x1e\\x16\" + // 0x01120301: 0x00001E16\n\t\"\\x01\\x13\\x03\\x01\\x00\\x00\\x1e\\x17\" + // 0x01130301: 0x00001E17\n\t\"\\x00E\\x03-\\x00\\x00\\x1e\\x18\" + // 0x0045032D: 0x00001E18\n\t\"\\x00e\\x03-\\x00\\x00\\x1e\\x19\" + // 0x0065032D: 0x00001E19\n\t\"\\x00E\\x030\\x00\\x00\\x1e\\x1a\" + // 0x00450330: 0x00001E1A\n\t\"\\x00e\\x030\\x00\\x00\\x1e\\x1b\" + // 0x00650330: 0x00001E1B\n\t\"\\x02(\\x03\\x06\\x00\\x00\\x1e\\x1c\" + // 0x02280306: 0x00001E1C\n\t\"\\x02)\\x03\\x06\\x00\\x00\\x1e\\x1d\" + // 0x02290306: 0x00001E1D\n\t\"\\x00F\\x03\\a\\x00\\x00\\x1e\\x1e\" + // 0x00460307: 0x00001E1E\n\t\"\\x00f\\x03\\a\\x00\\x00\\x1e\\x1f\" + // 0x00660307: 0x00001E1F\n\t\"\\x00G\\x03\\x04\\x00\\x00\\x1e \" + // 0x00470304: 0x00001E20\n\t\"\\x00g\\x03\\x04\\x00\\x00\\x1e!\" + // 0x00670304: 0x00001E21\n\t\"\\x00H\\x03\\a\\x00\\x00\\x1e\\\"\" + // 0x00480307: 0x00001E22\n\t\"\\x00h\\x03\\a\\x00\\x00\\x1e#\" + // 0x00680307: 0x00001E23\n\t\"\\x00H\\x03#\\x00\\x00\\x1e$\" + // 0x00480323: 0x00001E24\n\t\"\\x00h\\x03#\\x00\\x00\\x1e%\" + // 0x00680323: 0x00001E25\n\t\"\\x00H\\x03\\b\\x00\\x00\\x1e&\" + // 0x00480308: 0x00001E26\n\t\"\\x00h\\x03\\b\\x00\\x00\\x1e'\" + // 0x00680308: 0x00001E27\n\t\"\\x00H\\x03'\\x00\\x00\\x1e(\" + // 0x00480327: 0x00001E28\n\t\"\\x00h\\x03'\\x00\\x00\\x1e)\" + // 0x00680327: 0x00001E29\n\t\"\\x00H\\x03.\\x00\\x00\\x1e*\" + // 0x0048032E: 0x00001E2A\n\t\"\\x00h\\x03.\\x00\\x00\\x1e+\" + // 0x0068032E: 0x00001E2B\n\t\"\\x00I\\x030\\x00\\x00\\x1e,\" + // 0x00490330: 0x00001E2C\n\t\"\\x00i\\x030\\x00\\x00\\x1e-\" + // 0x00690330: 0x00001E2D\n\t\"\\x00\\xcf\\x03\\x01\\x00\\x00\\x1e.\" + // 0x00CF0301: 0x00001E2E\n\t\"\\x00\\xef\\x03\\x01\\x00\\x00\\x1e/\" + // 0x00EF0301: 0x00001E2F\n\t\"\\x00K\\x03\\x01\\x00\\x00\\x1e0\" + // 0x004B0301: 0x00001E30\n\t\"\\x00k\\x03\\x01\\x00\\x00\\x1e1\" + // 0x006B0301: 0x00001E31\n\t\"\\x00K\\x03#\\x00\\x00\\x1e2\" + // 0x004B0323: 0x00001E32\n\t\"\\x00k\\x03#\\x00\\x00\\x1e3\" + // 0x006B0323: 0x00001E33\n\t\"\\x00K\\x031\\x00\\x00\\x1e4\" + // 0x004B0331: 0x00001E34\n\t\"\\x00k\\x031\\x00\\x00\\x1e5\" + // 0x006B0331: 0x00001E35\n\t\"\\x00L\\x03#\\x00\\x00\\x1e6\" + // 0x004C0323: 0x00001E36\n\t\"\\x00l\\x03#\\x00\\x00\\x1e7\" + // 0x006C0323: 0x00001E37\n\t\"\\x1e6\\x03\\x04\\x00\\x00\\x1e8\" + // 0x1E360304: 0x00001E38\n\t\"\\x1e7\\x03\\x04\\x00\\x00\\x1e9\" + // 0x1E370304: 0x00001E39\n\t\"\\x00L\\x031\\x00\\x00\\x1e:\" + // 0x004C0331: 0x00001E3A\n\t\"\\x00l\\x031\\x00\\x00\\x1e;\" + // 0x006C0331: 0x00001E3B\n\t\"\\x00L\\x03-\\x00\\x00\\x1e<\" + // 0x004C032D: 0x00001E3C\n\t\"\\x00l\\x03-\\x00\\x00\\x1e=\" + // 0x006C032D: 0x00001E3D\n\t\"\\x00M\\x03\\x01\\x00\\x00\\x1e>\" + // 0x004D0301: 0x00001E3E\n\t\"\\x00m\\x03\\x01\\x00\\x00\\x1e?\" + // 0x006D0301: 0x00001E3F\n\t\"\\x00M\\x03\\a\\x00\\x00\\x1e@\" + // 0x004D0307: 0x00001E40\n\t\"\\x00m\\x03\\a\\x00\\x00\\x1eA\" + // 0x006D0307: 0x00001E41\n\t\"\\x00M\\x03#\\x00\\x00\\x1eB\" + // 0x004D0323: 0x00001E42\n\t\"\\x00m\\x03#\\x00\\x00\\x1eC\" + // 0x006D0323: 0x00001E43\n\t\"\\x00N\\x03\\a\\x00\\x00\\x1eD\" + // 0x004E0307: 0x00001E44\n\t\"\\x00n\\x03\\a\\x00\\x00\\x1eE\" + // 0x006E0307: 0x00001E45\n\t\"\\x00N\\x03#\\x00\\x00\\x1eF\" + // 0x004E0323: 0x00001E46\n\t\"\\x00n\\x03#\\x00\\x00\\x1eG\" + // 0x006E0323: 0x00001E47\n\t\"\\x00N\\x031\\x00\\x00\\x1eH\" + // 0x004E0331: 0x00001E48\n\t\"\\x00n\\x031\\x00\\x00\\x1eI\" + // 0x006E0331: 0x00001E49\n\t\"\\x00N\\x03-\\x00\\x00\\x1eJ\" + // 0x004E032D: 0x00001E4A\n\t\"\\x00n\\x03-\\x00\\x00\\x1eK\" + // 0x006E032D: 0x00001E4B\n\t\"\\x00\\xd5\\x03\\x01\\x00\\x00\\x1eL\" + // 0x00D50301: 0x00001E4C\n\t\"\\x00\\xf5\\x03\\x01\\x00\\x00\\x1eM\" + // 0x00F50301: 0x00001E4D\n\t\"\\x00\\xd5\\x03\\b\\x00\\x00\\x1eN\" + // 0x00D50308: 0x00001E4E\n\t\"\\x00\\xf5\\x03\\b\\x00\\x00\\x1eO\" + // 0x00F50308: 0x00001E4F\n\t\"\\x01L\\x03\\x00\\x00\\x00\\x1eP\" + // 0x014C0300: 0x00001E50\n\t\"\\x01M\\x03\\x00\\x00\\x00\\x1eQ\" + // 0x014D0300: 0x00001E51\n\t\"\\x01L\\x03\\x01\\x00\\x00\\x1eR\" + // 0x014C0301: 0x00001E52\n\t\"\\x01M\\x03\\x01\\x00\\x00\\x1eS\" + // 0x014D0301: 0x00001E53\n\t\"\\x00P\\x03\\x01\\x00\\x00\\x1eT\" + // 0x00500301: 0x00001E54\n\t\"\\x00p\\x03\\x01\\x00\\x00\\x1eU\" + // 0x00700301: 0x00001E55\n\t\"\\x00P\\x03\\a\\x00\\x00\\x1eV\" + // 0x00500307: 0x00001E56\n\t\"\\x00p\\x03\\a\\x00\\x00\\x1eW\" + // 0x00700307: 0x00001E57\n\t\"\\x00R\\x03\\a\\x00\\x00\\x1eX\" + // 0x00520307: 0x00001E58\n\t\"\\x00r\\x03\\a\\x00\\x00\\x1eY\" + // 0x00720307: 0x00001E59\n\t\"\\x00R\\x03#\\x00\\x00\\x1eZ\" + // 0x00520323: 0x00001E5A\n\t\"\\x00r\\x03#\\x00\\x00\\x1e[\" + // 0x00720323: 0x00001E5B\n\t\"\\x1eZ\\x03\\x04\\x00\\x00\\x1e\\\\\" + // 0x1E5A0304: 0x00001E5C\n\t\"\\x1e[\\x03\\x04\\x00\\x00\\x1e]\" + // 0x1E5B0304: 0x00001E5D\n\t\"\\x00R\\x031\\x00\\x00\\x1e^\" + // 0x00520331: 0x00001E5E\n\t\"\\x00r\\x031\\x00\\x00\\x1e_\" + // 0x00720331: 0x00001E5F\n\t\"\\x00S\\x03\\a\\x00\\x00\\x1e`\" + // 0x00530307: 0x00001E60\n\t\"\\x00s\\x03\\a\\x00\\x00\\x1ea\" + // 0x00730307: 0x00001E61\n\t\"\\x00S\\x03#\\x00\\x00\\x1eb\" + // 0x00530323: 0x00001E62\n\t\"\\x00s\\x03#\\x00\\x00\\x1ec\" + // 0x00730323: 0x00001E63\n\t\"\\x01Z\\x03\\a\\x00\\x00\\x1ed\" + // 0x015A0307: 0x00001E64\n\t\"\\x01[\\x03\\a\\x00\\x00\\x1ee\" + // 0x015B0307: 0x00001E65\n\t\"\\x01`\\x03\\a\\x00\\x00\\x1ef\" + // 0x01600307: 0x00001E66\n\t\"\\x01a\\x03\\a\\x00\\x00\\x1eg\" + // 0x01610307: 0x00001E67\n\t\"\\x1eb\\x03\\a\\x00\\x00\\x1eh\" + // 0x1E620307: 0x00001E68\n\t\"\\x1ec\\x03\\a\\x00\\x00\\x1ei\" + // 0x1E630307: 0x00001E69\n\t\"\\x00T\\x03\\a\\x00\\x00\\x1ej\" + // 0x00540307: 0x00001E6A\n\t\"\\x00t\\x03\\a\\x00\\x00\\x1ek\" + // 0x00740307: 0x00001E6B\n\t\"\\x00T\\x03#\\x00\\x00\\x1el\" + // 0x00540323: 0x00001E6C\n\t\"\\x00t\\x03#\\x00\\x00\\x1em\" + // 0x00740323: 0x00001E6D\n\t\"\\x00T\\x031\\x00\\x00\\x1en\" + // 0x00540331: 0x00001E6E\n\t\"\\x00t\\x031\\x00\\x00\\x1eo\" + // 0x00740331: 0x00001E6F\n\t\"\\x00T\\x03-\\x00\\x00\\x1ep\" + // 0x0054032D: 0x00001E70\n\t\"\\x00t\\x03-\\x00\\x00\\x1eq\" + // 0x0074032D: 0x00001E71\n\t\"\\x00U\\x03$\\x00\\x00\\x1er\" + // 0x00550324: 0x00001E72\n\t\"\\x00u\\x03$\\x00\\x00\\x1es\" + // 0x00750324: 0x00001E73\n\t\"\\x00U\\x030\\x00\\x00\\x1et\" + // 0x00550330: 0x00001E74\n\t\"\\x00u\\x030\\x00\\x00\\x1eu\" + // 0x00750330: 0x00001E75\n\t\"\\x00U\\x03-\\x00\\x00\\x1ev\" + // 0x0055032D: 0x00001E76\n\t\"\\x00u\\x03-\\x00\\x00\\x1ew\" + // 0x0075032D: 0x00001E77\n\t\"\\x01h\\x03\\x01\\x00\\x00\\x1ex\" + // 0x01680301: 0x00001E78\n\t\"\\x01i\\x03\\x01\\x00\\x00\\x1ey\" + // 0x01690301: 0x00001E79\n\t\"\\x01j\\x03\\b\\x00\\x00\\x1ez\" + // 0x016A0308: 0x00001E7A\n\t\"\\x01k\\x03\\b\\x00\\x00\\x1e{\" + // 0x016B0308: 0x00001E7B\n\t\"\\x00V\\x03\\x03\\x00\\x00\\x1e|\" + // 0x00560303: 0x00001E7C\n\t\"\\x00v\\x03\\x03\\x00\\x00\\x1e}\" + // 0x00760303: 0x00001E7D\n\t\"\\x00V\\x03#\\x00\\x00\\x1e~\" + // 0x00560323: 0x00001E7E\n\t\"\\x00v\\x03#\\x00\\x00\\x1e\\x7f\" + // 0x00760323: 0x00001E7F\n\t\"\\x00W\\x03\\x00\\x00\\x00\\x1e\\x80\" + // 0x00570300: 0x00001E80\n\t\"\\x00w\\x03\\x00\\x00\\x00\\x1e\\x81\" + // 0x00770300: 0x00001E81\n\t\"\\x00W\\x03\\x01\\x00\\x00\\x1e\\x82\" + // 0x00570301: 0x00001E82\n\t\"\\x00w\\x03\\x01\\x00\\x00\\x1e\\x83\" + // 0x00770301: 0x00001E83\n\t\"\\x00W\\x03\\b\\x00\\x00\\x1e\\x84\" + // 0x00570308: 0x00001E84\n\t\"\\x00w\\x03\\b\\x00\\x00\\x1e\\x85\" + // 0x00770308: 0x00001E85\n\t\"\\x00W\\x03\\a\\x00\\x00\\x1e\\x86\" + // 0x00570307: 0x00001E86\n\t\"\\x00w\\x03\\a\\x00\\x00\\x1e\\x87\" + // 0x00770307: 0x00001E87\n\t\"\\x00W\\x03#\\x00\\x00\\x1e\\x88\" + // 0x00570323: 0x00001E88\n\t\"\\x00w\\x03#\\x00\\x00\\x1e\\x89\" + // 0x00770323: 0x00001E89\n\t\"\\x00X\\x03\\a\\x00\\x00\\x1e\\x8a\" + // 0x00580307: 0x00001E8A\n\t\"\\x00x\\x03\\a\\x00\\x00\\x1e\\x8b\" + // 0x00780307: 0x00001E8B\n\t\"\\x00X\\x03\\b\\x00\\x00\\x1e\\x8c\" + // 0x00580308: 0x00001E8C\n\t\"\\x00x\\x03\\b\\x00\\x00\\x1e\\x8d\" + // 0x00780308: 0x00001E8D\n\t\"\\x00Y\\x03\\a\\x00\\x00\\x1e\\x8e\" + // 0x00590307: 0x00001E8E\n\t\"\\x00y\\x03\\a\\x00\\x00\\x1e\\x8f\" + // 0x00790307: 0x00001E8F\n\t\"\\x00Z\\x03\\x02\\x00\\x00\\x1e\\x90\" + // 0x005A0302: 0x00001E90\n\t\"\\x00z\\x03\\x02\\x00\\x00\\x1e\\x91\" + // 0x007A0302: 0x00001E91\n\t\"\\x00Z\\x03#\\x00\\x00\\x1e\\x92\" + // 0x005A0323: 0x00001E92\n\t\"\\x00z\\x03#\\x00\\x00\\x1e\\x93\" + // 0x007A0323: 0x00001E93\n\t\"\\x00Z\\x031\\x00\\x00\\x1e\\x94\" + // 0x005A0331: 0x00001E94\n\t\"\\x00z\\x031\\x00\\x00\\x1e\\x95\" + // 0x007A0331: 0x00001E95\n\t\"\\x00h\\x031\\x00\\x00\\x1e\\x96\" + // 0x00680331: 0x00001E96\n\t\"\\x00t\\x03\\b\\x00\\x00\\x1e\\x97\" + // 0x00740308: 0x00001E97\n\t\"\\x00w\\x03\\n\\x00\\x00\\x1e\\x98\" + // 0x0077030A: 0x00001E98\n\t\"\\x00y\\x03\\n\\x00\\x00\\x1e\\x99\" + // 0x0079030A: 0x00001E99\n\t\"\\x01\\x7f\\x03\\a\\x00\\x00\\x1e\\x9b\" + // 0x017F0307: 0x00001E9B\n\t\"\\x00A\\x03#\\x00\\x00\\x1e\\xa0\" + // 0x00410323: 0x00001EA0\n\t\"\\x00a\\x03#\\x00\\x00\\x1e\\xa1\" + // 0x00610323: 0x00001EA1\n\t\"\\x00A\\x03\\t\\x00\\x00\\x1e\\xa2\" + // 0x00410309: 0x00001EA2\n\t\"\\x00a\\x03\\t\\x00\\x00\\x1e\\xa3\" + // 0x00610309: 0x00001EA3\n\t\"\\x00\\xc2\\x03\\x01\\x00\\x00\\x1e\\xa4\" + // 0x00C20301: 0x00001EA4\n\t\"\\x00\\xe2\\x03\\x01\\x00\\x00\\x1e\\xa5\" + // 0x00E20301: 0x00001EA5\n\t\"\\x00\\xc2\\x03\\x00\\x00\\x00\\x1e\\xa6\" + // 0x00C20300: 0x00001EA6\n\t\"\\x00\\xe2\\x03\\x00\\x00\\x00\\x1e\\xa7\" + // 0x00E20300: 0x00001EA7\n\t\"\\x00\\xc2\\x03\\t\\x00\\x00\\x1e\\xa8\" + // 0x00C20309: 0x00001EA8\n\t\"\\x00\\xe2\\x03\\t\\x00\\x00\\x1e\\xa9\" + // 0x00E20309: 0x00001EA9\n\t\"\\x00\\xc2\\x03\\x03\\x00\\x00\\x1e\\xaa\" + // 0x00C20303: 0x00001EAA\n\t\"\\x00\\xe2\\x03\\x03\\x00\\x00\\x1e\\xab\" + // 0x00E20303: 0x00001EAB\n\t\"\\x1e\\xa0\\x03\\x02\\x00\\x00\\x1e\\xac\" + // 0x1EA00302: 0x00001EAC\n\t\"\\x1e\\xa1\\x03\\x02\\x00\\x00\\x1e\\xad\" + // 0x1EA10302: 0x00001EAD\n\t\"\\x01\\x02\\x03\\x01\\x00\\x00\\x1e\\xae\" + // 0x01020301: 0x00001EAE\n\t\"\\x01\\x03\\x03\\x01\\x00\\x00\\x1e\\xaf\" + // 0x01030301: 0x00001EAF\n\t\"\\x01\\x02\\x03\\x00\\x00\\x00\\x1e\\xb0\" + // 0x01020300: 0x00001EB0\n\t\"\\x01\\x03\\x03\\x00\\x00\\x00\\x1e\\xb1\" + // 0x01030300: 0x00001EB1\n\t\"\\x01\\x02\\x03\\t\\x00\\x00\\x1e\\xb2\" + // 0x01020309: 0x00001EB2\n\t\"\\x01\\x03\\x03\\t\\x00\\x00\\x1e\\xb3\" + // 0x01030309: 0x00001EB3\n\t\"\\x01\\x02\\x03\\x03\\x00\\x00\\x1e\\xb4\" + // 0x01020303: 0x00001EB4\n\t\"\\x01\\x03\\x03\\x03\\x00\\x00\\x1e\\xb5\" + // 0x01030303: 0x00001EB5\n\t\"\\x1e\\xa0\\x03\\x06\\x00\\x00\\x1e\\xb6\" + // 0x1EA00306: 0x00001EB6\n\t\"\\x1e\\xa1\\x03\\x06\\x00\\x00\\x1e\\xb7\" + // 0x1EA10306: 0x00001EB7\n\t\"\\x00E\\x03#\\x00\\x00\\x1e\\xb8\" + // 0x00450323: 0x00001EB8\n\t\"\\x00e\\x03#\\x00\\x00\\x1e\\xb9\" + // 0x00650323: 0x00001EB9\n\t\"\\x00E\\x03\\t\\x00\\x00\\x1e\\xba\" + // 0x00450309: 0x00001EBA\n\t\"\\x00e\\x03\\t\\x00\\x00\\x1e\\xbb\" + // 0x00650309: 0x00001EBB\n\t\"\\x00E\\x03\\x03\\x00\\x00\\x1e\\xbc\" + // 0x00450303: 0x00001EBC\n\t\"\\x00e\\x03\\x03\\x00\\x00\\x1e\\xbd\" + // 0x00650303: 0x00001EBD\n\t\"\\x00\\xca\\x03\\x01\\x00\\x00\\x1e\\xbe\" + // 0x00CA0301: 0x00001EBE\n\t\"\\x00\\xea\\x03\\x01\\x00\\x00\\x1e\\xbf\" + // 0x00EA0301: 0x00001EBF\n\t\"\\x00\\xca\\x03\\x00\\x00\\x00\\x1e\\xc0\" + // 0x00CA0300: 0x00001EC0\n\t\"\\x00\\xea\\x03\\x00\\x00\\x00\\x1e\\xc1\" + // 0x00EA0300: 0x00001EC1\n\t\"\\x00\\xca\\x03\\t\\x00\\x00\\x1e\\xc2\" + // 0x00CA0309: 0x00001EC2\n\t\"\\x00\\xea\\x03\\t\\x00\\x00\\x1e\\xc3\" + // 0x00EA0309: 0x00001EC3\n\t\"\\x00\\xca\\x03\\x03\\x00\\x00\\x1e\\xc4\" + // 0x00CA0303: 0x00001EC4\n\t\"\\x00\\xea\\x03\\x03\\x00\\x00\\x1e\\xc5\" + // 0x00EA0303: 0x00001EC5\n\t\"\\x1e\\xb8\\x03\\x02\\x00\\x00\\x1e\\xc6\" + // 0x1EB80302: 0x00001EC6\n\t\"\\x1e\\xb9\\x03\\x02\\x00\\x00\\x1e\\xc7\" + // 0x1EB90302: 0x00001EC7\n\t\"\\x00I\\x03\\t\\x00\\x00\\x1e\\xc8\" + // 0x00490309: 0x00001EC8\n\t\"\\x00i\\x03\\t\\x00\\x00\\x1e\\xc9\" + // 0x00690309: 0x00001EC9\n\t\"\\x00I\\x03#\\x00\\x00\\x1e\\xca\" + // 0x00490323: 0x00001ECA\n\t\"\\x00i\\x03#\\x00\\x00\\x1e\\xcb\" + // 0x00690323: 0x00001ECB\n\t\"\\x00O\\x03#\\x00\\x00\\x1e\\xcc\" + // 0x004F0323: 0x00001ECC\n\t\"\\x00o\\x03#\\x00\\x00\\x1e\\xcd\" + // 0x006F0323: 0x00001ECD\n\t\"\\x00O\\x03\\t\\x00\\x00\\x1e\\xce\" + // 0x004F0309: 0x00001ECE\n\t\"\\x00o\\x03\\t\\x00\\x00\\x1e\\xcf\" + // 0x006F0309: 0x00001ECF\n\t\"\\x00\\xd4\\x03\\x01\\x00\\x00\\x1e\\xd0\" + // 0x00D40301: 0x00001ED0\n\t\"\\x00\\xf4\\x03\\x01\\x00\\x00\\x1e\\xd1\" + // 0x00F40301: 0x00001ED1\n\t\"\\x00\\xd4\\x03\\x00\\x00\\x00\\x1e\\xd2\" + // 0x00D40300: 0x00001ED2\n\t\"\\x00\\xf4\\x03\\x00\\x00\\x00\\x1e\\xd3\" + // 0x00F40300: 0x00001ED3\n\t\"\\x00\\xd4\\x03\\t\\x00\\x00\\x1e\\xd4\" + // 0x00D40309: 0x00001ED4\n\t\"\\x00\\xf4\\x03\\t\\x00\\x00\\x1e\\xd5\" + // 0x00F40309: 0x00001ED5\n\t\"\\x00\\xd4\\x03\\x03\\x00\\x00\\x1e\\xd6\" + // 0x00D40303: 0x00001ED6\n\t\"\\x00\\xf4\\x03\\x03\\x00\\x00\\x1e\\xd7\" + // 0x00F40303: 0x00001ED7\n\t\"\\x1e\\xcc\\x03\\x02\\x00\\x00\\x1e\\xd8\" + // 0x1ECC0302: 0x00001ED8\n\t\"\\x1e\\xcd\\x03\\x02\\x00\\x00\\x1e\\xd9\" + // 0x1ECD0302: 0x00001ED9\n\t\"\\x01\\xa0\\x03\\x01\\x00\\x00\\x1e\\xda\" + // 0x01A00301: 0x00001EDA\n\t\"\\x01\\xa1\\x03\\x01\\x00\\x00\\x1e\\xdb\" + // 0x01A10301: 0x00001EDB\n\t\"\\x01\\xa0\\x03\\x00\\x00\\x00\\x1e\\xdc\" + // 0x01A00300: 0x00001EDC\n\t\"\\x01\\xa1\\x03\\x00\\x00\\x00\\x1e\\xdd\" + // 0x01A10300: 0x00001EDD\n\t\"\\x01\\xa0\\x03\\t\\x00\\x00\\x1e\\xde\" + // 0x01A00309: 0x00001EDE\n\t\"\\x01\\xa1\\x03\\t\\x00\\x00\\x1e\\xdf\" + // 0x01A10309: 0x00001EDF\n\t\"\\x01\\xa0\\x03\\x03\\x00\\x00\\x1e\\xe0\" + // 0x01A00303: 0x00001EE0\n\t\"\\x01\\xa1\\x03\\x03\\x00\\x00\\x1e\\xe1\" + // 0x01A10303: 0x00001EE1\n\t\"\\x01\\xa0\\x03#\\x00\\x00\\x1e\\xe2\" + // 0x01A00323: 0x00001EE2\n\t\"\\x01\\xa1\\x03#\\x00\\x00\\x1e\\xe3\" + // 0x01A10323: 0x00001EE3\n\t\"\\x00U\\x03#\\x00\\x00\\x1e\\xe4\" + // 0x00550323: 0x00001EE4\n\t\"\\x00u\\x03#\\x00\\x00\\x1e\\xe5\" + // 0x00750323: 0x00001EE5\n\t\"\\x00U\\x03\\t\\x00\\x00\\x1e\\xe6\" + // 0x00550309: 0x00001EE6\n\t\"\\x00u\\x03\\t\\x00\\x00\\x1e\\xe7\" + // 0x00750309: 0x00001EE7\n\t\"\\x01\\xaf\\x03\\x01\\x00\\x00\\x1e\\xe8\" + // 0x01AF0301: 0x00001EE8\n\t\"\\x01\\xb0\\x03\\x01\\x00\\x00\\x1e\\xe9\" + // 0x01B00301: 0x00001EE9\n\t\"\\x01\\xaf\\x03\\x00\\x00\\x00\\x1e\\xea\" + // 0x01AF0300: 0x00001EEA\n\t\"\\x01\\xb0\\x03\\x00\\x00\\x00\\x1e\\xeb\" + // 0x01B00300: 0x00001EEB\n\t\"\\x01\\xaf\\x03\\t\\x00\\x00\\x1e\\xec\" + // 0x01AF0309: 0x00001EEC\n\t\"\\x01\\xb0\\x03\\t\\x00\\x00\\x1e\\xed\" + // 0x01B00309: 0x00001EED\n\t\"\\x01\\xaf\\x03\\x03\\x00\\x00\\x1e\\xee\" + // 0x01AF0303: 0x00001EEE\n\t\"\\x01\\xb0\\x03\\x03\\x00\\x00\\x1e\\xef\" + // 0x01B00303: 0x00001EEF\n\t\"\\x01\\xaf\\x03#\\x00\\x00\\x1e\\xf0\" + // 0x01AF0323: 0x00001EF0\n\t\"\\x01\\xb0\\x03#\\x00\\x00\\x1e\\xf1\" + // 0x01B00323: 0x00001EF1\n\t\"\\x00Y\\x03\\x00\\x00\\x00\\x1e\\xf2\" + // 0x00590300: 0x00001EF2\n\t\"\\x00y\\x03\\x00\\x00\\x00\\x1e\\xf3\" + // 0x00790300: 0x00001EF3\n\t\"\\x00Y\\x03#\\x00\\x00\\x1e\\xf4\" + // 0x00590323: 0x00001EF4\n\t\"\\x00y\\x03#\\x00\\x00\\x1e\\xf5\" + // 0x00790323: 0x00001EF5\n\t\"\\x00Y\\x03\\t\\x00\\x00\\x1e\\xf6\" + // 0x00590309: 0x00001EF6\n\t\"\\x00y\\x03\\t\\x00\\x00\\x1e\\xf7\" + // 0x00790309: 0x00001EF7\n\t\"\\x00Y\\x03\\x03\\x00\\x00\\x1e\\xf8\" + // 0x00590303: 0x00001EF8\n\t\"\\x00y\\x03\\x03\\x00\\x00\\x1e\\xf9\" + // 0x00790303: 0x00001EF9\n\t\"\\x03\\xb1\\x03\\x13\\x00\\x00\\x1f\\x00\" + // 0x03B10313: 0x00001F00\n\t\"\\x03\\xb1\\x03\\x14\\x00\\x00\\x1f\\x01\" + // 0x03B10314: 0x00001F01\n\t\"\\x1f\\x00\\x03\\x00\\x00\\x00\\x1f\\x02\" + // 0x1F000300: 0x00001F02\n\t\"\\x1f\\x01\\x03\\x00\\x00\\x00\\x1f\\x03\" + // 0x1F010300: 0x00001F03\n\t\"\\x1f\\x00\\x03\\x01\\x00\\x00\\x1f\\x04\" + // 0x1F000301: 0x00001F04\n\t\"\\x1f\\x01\\x03\\x01\\x00\\x00\\x1f\\x05\" + // 0x1F010301: 0x00001F05\n\t\"\\x1f\\x00\\x03B\\x00\\x00\\x1f\\x06\" + // 0x1F000342: 0x00001F06\n\t\"\\x1f\\x01\\x03B\\x00\\x00\\x1f\\a\" + // 0x1F010342: 0x00001F07\n\t\"\\x03\\x91\\x03\\x13\\x00\\x00\\x1f\\b\" + // 0x03910313: 0x00001F08\n\t\"\\x03\\x91\\x03\\x14\\x00\\x00\\x1f\\t\" + // 0x03910314: 0x00001F09\n\t\"\\x1f\\b\\x03\\x00\\x00\\x00\\x1f\\n\" + // 0x1F080300: 0x00001F0A\n\t\"\\x1f\\t\\x03\\x00\\x00\\x00\\x1f\\v\" + // 0x1F090300: 0x00001F0B\n\t\"\\x1f\\b\\x03\\x01\\x00\\x00\\x1f\\f\" + // 0x1F080301: 0x00001F0C\n\t\"\\x1f\\t\\x03\\x01\\x00\\x00\\x1f\\r\" + // 0x1F090301: 0x00001F0D\n\t\"\\x1f\\b\\x03B\\x00\\x00\\x1f\\x0e\" + // 0x1F080342: 0x00001F0E\n\t\"\\x1f\\t\\x03B\\x00\\x00\\x1f\\x0f\" + // 0x1F090342: 0x00001F0F\n\t\"\\x03\\xb5\\x03\\x13\\x00\\x00\\x1f\\x10\" + // 0x03B50313: 0x00001F10\n\t\"\\x03\\xb5\\x03\\x14\\x00\\x00\\x1f\\x11\" + // 0x03B50314: 0x00001F11\n\t\"\\x1f\\x10\\x03\\x00\\x00\\x00\\x1f\\x12\" + // 0x1F100300: 0x00001F12\n\t\"\\x1f\\x11\\x03\\x00\\x00\\x00\\x1f\\x13\" + // 0x1F110300: 0x00001F13\n\t\"\\x1f\\x10\\x03\\x01\\x00\\x00\\x1f\\x14\" + // 0x1F100301: 0x00001F14\n\t\"\\x1f\\x11\\x03\\x01\\x00\\x00\\x1f\\x15\" + // 0x1F110301: 0x00001F15\n\t\"\\x03\\x95\\x03\\x13\\x00\\x00\\x1f\\x18\" + // 0x03950313: 0x00001F18\n\t\"\\x03\\x95\\x03\\x14\\x00\\x00\\x1f\\x19\" + // 0x03950314: 0x00001F19\n\t\"\\x1f\\x18\\x03\\x00\\x00\\x00\\x1f\\x1a\" + // 0x1F180300: 0x00001F1A\n\t\"\\x1f\\x19\\x03\\x00\\x00\\x00\\x1f\\x1b\" + // 0x1F190300: 0x00001F1B\n\t\"\\x1f\\x18\\x03\\x01\\x00\\x00\\x1f\\x1c\" + // 0x1F180301: 0x00001F1C\n\t\"\\x1f\\x19\\x03\\x01\\x00\\x00\\x1f\\x1d\" + // 0x1F190301: 0x00001F1D\n\t\"\\x03\\xb7\\x03\\x13\\x00\\x00\\x1f \" + // 0x03B70313: 0x00001F20\n\t\"\\x03\\xb7\\x03\\x14\\x00\\x00\\x1f!\" + // 0x03B70314: 0x00001F21\n\t\"\\x1f \\x03\\x00\\x00\\x00\\x1f\\\"\" + // 0x1F200300: 0x00001F22\n\t\"\\x1f!\\x03\\x00\\x00\\x00\\x1f#\" + // 0x1F210300: 0x00001F23\n\t\"\\x1f \\x03\\x01\\x00\\x00\\x1f$\" + // 0x1F200301: 0x00001F24\n\t\"\\x1f!\\x03\\x01\\x00\\x00\\x1f%\" + // 0x1F210301: 0x00001F25\n\t\"\\x1f \\x03B\\x00\\x00\\x1f&\" + // 0x1F200342: 0x00001F26\n\t\"\\x1f!\\x03B\\x00\\x00\\x1f'\" + // 0x1F210342: 0x00001F27\n\t\"\\x03\\x97\\x03\\x13\\x00\\x00\\x1f(\" + // 0x03970313: 0x00001F28\n\t\"\\x03\\x97\\x03\\x14\\x00\\x00\\x1f)\" + // 0x03970314: 0x00001F29\n\t\"\\x1f(\\x03\\x00\\x00\\x00\\x1f*\" + // 0x1F280300: 0x00001F2A\n\t\"\\x1f)\\x03\\x00\\x00\\x00\\x1f+\" + // 0x1F290300: 0x00001F2B\n\t\"\\x1f(\\x03\\x01\\x00\\x00\\x1f,\" + // 0x1F280301: 0x00001F2C\n\t\"\\x1f)\\x03\\x01\\x00\\x00\\x1f-\" + // 0x1F290301: 0x00001F2D\n\t\"\\x1f(\\x03B\\x00\\x00\\x1f.\" + // 0x1F280342: 0x00001F2E\n\t\"\\x1f)\\x03B\\x00\\x00\\x1f/\" + // 0x1F290342: 0x00001F2F\n\t\"\\x03\\xb9\\x03\\x13\\x00\\x00\\x1f0\" + // 0x03B90313: 0x00001F30\n\t\"\\x03\\xb9\\x03\\x14\\x00\\x00\\x1f1\" + // 0x03B90314: 0x00001F31\n\t\"\\x1f0\\x03\\x00\\x00\\x00\\x1f2\" + // 0x1F300300: 0x00001F32\n\t\"\\x1f1\\x03\\x00\\x00\\x00\\x1f3\" + // 0x1F310300: 0x00001F33\n\t\"\\x1f0\\x03\\x01\\x00\\x00\\x1f4\" + // 0x1F300301: 0x00001F34\n\t\"\\x1f1\\x03\\x01\\x00\\x00\\x1f5\" + // 0x1F310301: 0x00001F35\n\t\"\\x1f0\\x03B\\x00\\x00\\x1f6\" + // 0x1F300342: 0x00001F36\n\t\"\\x1f1\\x03B\\x00\\x00\\x1f7\" + // 0x1F310342: 0x00001F37\n\t\"\\x03\\x99\\x03\\x13\\x00\\x00\\x1f8\" + // 0x03990313: 0x00001F38\n\t\"\\x03\\x99\\x03\\x14\\x00\\x00\\x1f9\" + // 0x03990314: 0x00001F39\n\t\"\\x1f8\\x03\\x00\\x00\\x00\\x1f:\" + // 0x1F380300: 0x00001F3A\n\t\"\\x1f9\\x03\\x00\\x00\\x00\\x1f;\" + // 0x1F390300: 0x00001F3B\n\t\"\\x1f8\\x03\\x01\\x00\\x00\\x1f<\" + // 0x1F380301: 0x00001F3C\n\t\"\\x1f9\\x03\\x01\\x00\\x00\\x1f=\" + // 0x1F390301: 0x00001F3D\n\t\"\\x1f8\\x03B\\x00\\x00\\x1f>\" + // 0x1F380342: 0x00001F3E\n\t\"\\x1f9\\x03B\\x00\\x00\\x1f?\" + // 0x1F390342: 0x00001F3F\n\t\"\\x03\\xbf\\x03\\x13\\x00\\x00\\x1f@\" + // 0x03BF0313: 0x00001F40\n\t\"\\x03\\xbf\\x03\\x14\\x00\\x00\\x1fA\" + // 0x03BF0314: 0x00001F41\n\t\"\\x1f@\\x03\\x00\\x00\\x00\\x1fB\" + // 0x1F400300: 0x00001F42\n\t\"\\x1fA\\x03\\x00\\x00\\x00\\x1fC\" + // 0x1F410300: 0x00001F43\n\t\"\\x1f@\\x03\\x01\\x00\\x00\\x1fD\" + // 0x1F400301: 0x00001F44\n\t\"\\x1fA\\x03\\x01\\x00\\x00\\x1fE\" + // 0x1F410301: 0x00001F45\n\t\"\\x03\\x9f\\x03\\x13\\x00\\x00\\x1fH\" + // 0x039F0313: 0x00001F48\n\t\"\\x03\\x9f\\x03\\x14\\x00\\x00\\x1fI\" + // 0x039F0314: 0x00001F49\n\t\"\\x1fH\\x03\\x00\\x00\\x00\\x1fJ\" + // 0x1F480300: 0x00001F4A\n\t\"\\x1fI\\x03\\x00\\x00\\x00\\x1fK\" + // 0x1F490300: 0x00001F4B\n\t\"\\x1fH\\x03\\x01\\x00\\x00\\x1fL\" + // 0x1F480301: 0x00001F4C\n\t\"\\x1fI\\x03\\x01\\x00\\x00\\x1fM\" + // 0x1F490301: 0x00001F4D\n\t\"\\x03\\xc5\\x03\\x13\\x00\\x00\\x1fP\" + // 0x03C50313: 0x00001F50\n\t\"\\x03\\xc5\\x03\\x14\\x00\\x00\\x1fQ\" + // 0x03C50314: 0x00001F51\n\t\"\\x1fP\\x03\\x00\\x00\\x00\\x1fR\" + // 0x1F500300: 0x00001F52\n\t\"\\x1fQ\\x03\\x00\\x00\\x00\\x1fS\" + // 0x1F510300: 0x00001F53\n\t\"\\x1fP\\x03\\x01\\x00\\x00\\x1fT\" + // 0x1F500301: 0x00001F54\n\t\"\\x1fQ\\x03\\x01\\x00\\x00\\x1fU\" + // 0x1F510301: 0x00001F55\n\t\"\\x1fP\\x03B\\x00\\x00\\x1fV\" + // 0x1F500342: 0x00001F56\n\t\"\\x1fQ\\x03B\\x00\\x00\\x1fW\" + // 0x1F510342: 0x00001F57\n\t\"\\x03\\xa5\\x03\\x14\\x00\\x00\\x1fY\" + // 0x03A50314: 0x00001F59\n\t\"\\x1fY\\x03\\x00\\x00\\x00\\x1f[\" + // 0x1F590300: 0x00001F5B\n\t\"\\x1fY\\x03\\x01\\x00\\x00\\x1f]\" + // 0x1F590301: 0x00001F5D\n\t\"\\x1fY\\x03B\\x00\\x00\\x1f_\" + // 0x1F590342: 0x00001F5F\n\t\"\\x03\\xc9\\x03\\x13\\x00\\x00\\x1f`\" + // 0x03C90313: 0x00001F60\n\t\"\\x03\\xc9\\x03\\x14\\x00\\x00\\x1fa\" + // 0x03C90314: 0x00001F61\n\t\"\\x1f`\\x03\\x00\\x00\\x00\\x1fb\" + // 0x1F600300: 0x00001F62\n\t\"\\x1fa\\x03\\x00\\x00\\x00\\x1fc\" + // 0x1F610300: 0x00001F63\n\t\"\\x1f`\\x03\\x01\\x00\\x00\\x1fd\" + // 0x1F600301: 0x00001F64\n\t\"\\x1fa\\x03\\x01\\x00\\x00\\x1fe\" + // 0x1F610301: 0x00001F65\n\t\"\\x1f`\\x03B\\x00\\x00\\x1ff\" + // 0x1F600342: 0x00001F66\n\t\"\\x1fa\\x03B\\x00\\x00\\x1fg\" + // 0x1F610342: 0x00001F67\n\t\"\\x03\\xa9\\x03\\x13\\x00\\x00\\x1fh\" + // 0x03A90313: 0x00001F68\n\t\"\\x03\\xa9\\x03\\x14\\x00\\x00\\x1fi\" + // 0x03A90314: 0x00001F69\n\t\"\\x1fh\\x03\\x00\\x00\\x00\\x1fj\" + // 0x1F680300: 0x00001F6A\n\t\"\\x1fi\\x03\\x00\\x00\\x00\\x1fk\" + // 0x1F690300: 0x00001F6B\n\t\"\\x1fh\\x03\\x01\\x00\\x00\\x1fl\" + // 0x1F680301: 0x00001F6C\n\t\"\\x1fi\\x03\\x01\\x00\\x00\\x1fm\" + // 0x1F690301: 0x00001F6D\n\t\"\\x1fh\\x03B\\x00\\x00\\x1fn\" + // 0x1F680342: 0x00001F6E\n\t\"\\x1fi\\x03B\\x00\\x00\\x1fo\" + // 0x1F690342: 0x00001F6F\n\t\"\\x03\\xb1\\x03\\x00\\x00\\x00\\x1fp\" + // 0x03B10300: 0x00001F70\n\t\"\\x03\\xb5\\x03\\x00\\x00\\x00\\x1fr\" + // 0x03B50300: 0x00001F72\n\t\"\\x03\\xb7\\x03\\x00\\x00\\x00\\x1ft\" + // 0x03B70300: 0x00001F74\n\t\"\\x03\\xb9\\x03\\x00\\x00\\x00\\x1fv\" + // 0x03B90300: 0x00001F76\n\t\"\\x03\\xbf\\x03\\x00\\x00\\x00\\x1fx\" + // 0x03BF0300: 0x00001F78\n\t\"\\x03\\xc5\\x03\\x00\\x00\\x00\\x1fz\" + // 0x03C50300: 0x00001F7A\n\t\"\\x03\\xc9\\x03\\x00\\x00\\x00\\x1f|\" + // 0x03C90300: 0x00001F7C\n\t\"\\x1f\\x00\\x03E\\x00\\x00\\x1f\\x80\" + // 0x1F000345: 0x00001F80\n\t\"\\x1f\\x01\\x03E\\x00\\x00\\x1f\\x81\" + // 0x1F010345: 0x00001F81\n\t\"\\x1f\\x02\\x03E\\x00\\x00\\x1f\\x82\" + // 0x1F020345: 0x00001F82\n\t\"\\x1f\\x03\\x03E\\x00\\x00\\x1f\\x83\" + // 0x1F030345: 0x00001F83\n\t\"\\x1f\\x04\\x03E\\x00\\x00\\x1f\\x84\" + // 0x1F040345: 0x00001F84\n\t\"\\x1f\\x05\\x03E\\x00\\x00\\x1f\\x85\" + // 0x1F050345: 0x00001F85\n\t\"\\x1f\\x06\\x03E\\x00\\x00\\x1f\\x86\" + // 0x1F060345: 0x00001F86\n\t\"\\x1f\\a\\x03E\\x00\\x00\\x1f\\x87\" + // 0x1F070345: 0x00001F87\n\t\"\\x1f\\b\\x03E\\x00\\x00\\x1f\\x88\" + // 0x1F080345: 0x00001F88\n\t\"\\x1f\\t\\x03E\\x00\\x00\\x1f\\x89\" + // 0x1F090345: 0x00001F89\n\t\"\\x1f\\n\\x03E\\x00\\x00\\x1f\\x8a\" + // 0x1F0A0345: 0x00001F8A\n\t\"\\x1f\\v\\x03E\\x00\\x00\\x1f\\x8b\" + // 0x1F0B0345: 0x00001F8B\n\t\"\\x1f\\f\\x03E\\x00\\x00\\x1f\\x8c\" + // 0x1F0C0345: 0x00001F8C\n\t\"\\x1f\\r\\x03E\\x00\\x00\\x1f\\x8d\" + // 0x1F0D0345: 0x00001F8D\n\t\"\\x1f\\x0e\\x03E\\x00\\x00\\x1f\\x8e\" + // 0x1F0E0345: 0x00001F8E\n\t\"\\x1f\\x0f\\x03E\\x00\\x00\\x1f\\x8f\" + // 0x1F0F0345: 0x00001F8F\n\t\"\\x1f \\x03E\\x00\\x00\\x1f\\x90\" + // 0x1F200345: 0x00001F90\n\t\"\\x1f!\\x03E\\x00\\x00\\x1f\\x91\" + // 0x1F210345: 0x00001F91\n\t\"\\x1f\\\"\\x03E\\x00\\x00\\x1f\\x92\" + // 0x1F220345: 0x00001F92\n\t\"\\x1f#\\x03E\\x00\\x00\\x1f\\x93\" + // 0x1F230345: 0x00001F93\n\t\"\\x1f$\\x03E\\x00\\x00\\x1f\\x94\" + // 0x1F240345: 0x00001F94\n\t\"\\x1f%\\x03E\\x00\\x00\\x1f\\x95\" + // 0x1F250345: 0x00001F95\n\t\"\\x1f&\\x03E\\x00\\x00\\x1f\\x96\" + // 0x1F260345: 0x00001F96\n\t\"\\x1f'\\x03E\\x00\\x00\\x1f\\x97\" + // 0x1F270345: 0x00001F97\n\t\"\\x1f(\\x03E\\x00\\x00\\x1f\\x98\" + // 0x1F280345: 0x00001F98\n\t\"\\x1f)\\x03E\\x00\\x00\\x1f\\x99\" + // 0x1F290345: 0x00001F99\n\t\"\\x1f*\\x03E\\x00\\x00\\x1f\\x9a\" + // 0x1F2A0345: 0x00001F9A\n\t\"\\x1f+\\x03E\\x00\\x00\\x1f\\x9b\" + // 0x1F2B0345: 0x00001F9B\n\t\"\\x1f,\\x03E\\x00\\x00\\x1f\\x9c\" + // 0x1F2C0345: 0x00001F9C\n\t\"\\x1f-\\x03E\\x00\\x00\\x1f\\x9d\" + // 0x1F2D0345: 0x00001F9D\n\t\"\\x1f.\\x03E\\x00\\x00\\x1f\\x9e\" + // 0x1F2E0345: 0x00001F9E\n\t\"\\x1f/\\x03E\\x00\\x00\\x1f\\x9f\" + // 0x1F2F0345: 0x00001F9F\n\t\"\\x1f`\\x03E\\x00\\x00\\x1f\\xa0\" + // 0x1F600345: 0x00001FA0\n\t\"\\x1fa\\x03E\\x00\\x00\\x1f\\xa1\" + // 0x1F610345: 0x00001FA1\n\t\"\\x1fb\\x03E\\x00\\x00\\x1f\\xa2\" + // 0x1F620345: 0x00001FA2\n\t\"\\x1fc\\x03E\\x00\\x00\\x1f\\xa3\" + // 0x1F630345: 0x00001FA3\n\t\"\\x1fd\\x03E\\x00\\x00\\x1f\\xa4\" + // 0x1F640345: 0x00001FA4\n\t\"\\x1fe\\x03E\\x00\\x00\\x1f\\xa5\" + // 0x1F650345: 0x00001FA5\n\t\"\\x1ff\\x03E\\x00\\x00\\x1f\\xa6\" + // 0x1F660345: 0x00001FA6\n\t\"\\x1fg\\x03E\\x00\\x00\\x1f\\xa7\" + // 0x1F670345: 0x00001FA7\n\t\"\\x1fh\\x03E\\x00\\x00\\x1f\\xa8\" + // 0x1F680345: 0x00001FA8\n\t\"\\x1fi\\x03E\\x00\\x00\\x1f\\xa9\" + // 0x1F690345: 0x00001FA9\n\t\"\\x1fj\\x03E\\x00\\x00\\x1f\\xaa\" + // 0x1F6A0345: 0x00001FAA\n\t\"\\x1fk\\x03E\\x00\\x00\\x1f\\xab\" + // 0x1F6B0345: 0x00001FAB\n\t\"\\x1fl\\x03E\\x00\\x00\\x1f\\xac\" + // 0x1F6C0345: 0x00001FAC\n\t\"\\x1fm\\x03E\\x00\\x00\\x1f\\xad\" + // 0x1F6D0345: 0x00001FAD\n\t\"\\x1fn\\x03E\\x00\\x00\\x1f\\xae\" + // 0x1F6E0345: 0x00001FAE\n\t\"\\x1fo\\x03E\\x00\\x00\\x1f\\xaf\" + // 0x1F6F0345: 0x00001FAF\n\t\"\\x03\\xb1\\x03\\x06\\x00\\x00\\x1f\\xb0\" + // 0x03B10306: 0x00001FB0\n\t\"\\x03\\xb1\\x03\\x04\\x00\\x00\\x1f\\xb1\" + // 0x03B10304: 0x00001FB1\n\t\"\\x1fp\\x03E\\x00\\x00\\x1f\\xb2\" + // 0x1F700345: 0x00001FB2\n\t\"\\x03\\xb1\\x03E\\x00\\x00\\x1f\\xb3\" + // 0x03B10345: 0x00001FB3\n\t\"\\x03\\xac\\x03E\\x00\\x00\\x1f\\xb4\" + // 0x03AC0345: 0x00001FB4\n\t\"\\x03\\xb1\\x03B\\x00\\x00\\x1f\\xb6\" + // 0x03B10342: 0x00001FB6\n\t\"\\x1f\\xb6\\x03E\\x00\\x00\\x1f\\xb7\" + // 0x1FB60345: 0x00001FB7\n\t\"\\x03\\x91\\x03\\x06\\x00\\x00\\x1f\\xb8\" + // 0x03910306: 0x00001FB8\n\t\"\\x03\\x91\\x03\\x04\\x00\\x00\\x1f\\xb9\" + // 0x03910304: 0x00001FB9\n\t\"\\x03\\x91\\x03\\x00\\x00\\x00\\x1f\\xba\" + // 0x03910300: 0x00001FBA\n\t\"\\x03\\x91\\x03E\\x00\\x00\\x1f\\xbc\" + // 0x03910345: 0x00001FBC\n\t\"\\x00\\xa8\\x03B\\x00\\x00\\x1f\\xc1\" + // 0x00A80342: 0x00001FC1\n\t\"\\x1ft\\x03E\\x00\\x00\\x1f\\xc2\" + // 0x1F740345: 0x00001FC2\n\t\"\\x03\\xb7\\x03E\\x00\\x00\\x1f\\xc3\" + // 0x03B70345: 0x00001FC3\n\t\"\\x03\\xae\\x03E\\x00\\x00\\x1f\\xc4\" + // 0x03AE0345: 0x00001FC4\n\t\"\\x03\\xb7\\x03B\\x00\\x00\\x1f\\xc6\" + // 0x03B70342: 0x00001FC6\n\t\"\\x1f\\xc6\\x03E\\x00\\x00\\x1f\\xc7\" + // 0x1FC60345: 0x00001FC7\n\t\"\\x03\\x95\\x03\\x00\\x00\\x00\\x1f\\xc8\" + // 0x03950300: 0x00001FC8\n\t\"\\x03\\x97\\x03\\x00\\x00\\x00\\x1f\\xca\" + // 0x03970300: 0x00001FCA\n\t\"\\x03\\x97\\x03E\\x00\\x00\\x1f\\xcc\" + // 0x03970345: 0x00001FCC\n\t\"\\x1f\\xbf\\x03\\x00\\x00\\x00\\x1f\\xcd\" + // 0x1FBF0300: 0x00001FCD\n\t\"\\x1f\\xbf\\x03\\x01\\x00\\x00\\x1f\\xce\" + // 0x1FBF0301: 0x00001FCE\n\t\"\\x1f\\xbf\\x03B\\x00\\x00\\x1f\\xcf\" + // 0x1FBF0342: 0x00001FCF\n\t\"\\x03\\xb9\\x03\\x06\\x00\\x00\\x1f\\xd0\" + // 0x03B90306: 0x00001FD0\n\t\"\\x03\\xb9\\x03\\x04\\x00\\x00\\x1f\\xd1\" + // 0x03B90304: 0x00001FD1\n\t\"\\x03\\xca\\x03\\x00\\x00\\x00\\x1f\\xd2\" + // 0x03CA0300: 0x00001FD2\n\t\"\\x03\\xb9\\x03B\\x00\\x00\\x1f\\xd6\" + // 0x03B90342: 0x00001FD6\n\t\"\\x03\\xca\\x03B\\x00\\x00\\x1f\\xd7\" + // 0x03CA0342: 0x00001FD7\n\t\"\\x03\\x99\\x03\\x06\\x00\\x00\\x1f\\xd8\" + // 0x03990306: 0x00001FD8\n\t\"\\x03\\x99\\x03\\x04\\x00\\x00\\x1f\\xd9\" + // 0x03990304: 0x00001FD9\n\t\"\\x03\\x99\\x03\\x00\\x00\\x00\\x1f\\xda\" + // 0x03990300: 0x00001FDA\n\t\"\\x1f\\xfe\\x03\\x00\\x00\\x00\\x1f\\xdd\" + // 0x1FFE0300: 0x00001FDD\n\t\"\\x1f\\xfe\\x03\\x01\\x00\\x00\\x1f\\xde\" + // 0x1FFE0301: 0x00001FDE\n\t\"\\x1f\\xfe\\x03B\\x00\\x00\\x1f\\xdf\" + // 0x1FFE0342: 0x00001FDF\n\t\"\\x03\\xc5\\x03\\x06\\x00\\x00\\x1f\\xe0\" + // 0x03C50306: 0x00001FE0\n\t\"\\x03\\xc5\\x03\\x04\\x00\\x00\\x1f\\xe1\" + // 0x03C50304: 0x00001FE1\n\t\"\\x03\\xcb\\x03\\x00\\x00\\x00\\x1f\\xe2\" + // 0x03CB0300: 0x00001FE2\n\t\"\\x03\\xc1\\x03\\x13\\x00\\x00\\x1f\\xe4\" + // 0x03C10313: 0x00001FE4\n\t\"\\x03\\xc1\\x03\\x14\\x00\\x00\\x1f\\xe5\" + // 0x03C10314: 0x00001FE5\n\t\"\\x03\\xc5\\x03B\\x00\\x00\\x1f\\xe6\" + // 0x03C50342: 0x00001FE6\n\t\"\\x03\\xcb\\x03B\\x00\\x00\\x1f\\xe7\" + // 0x03CB0342: 0x00001FE7\n\t\"\\x03\\xa5\\x03\\x06\\x00\\x00\\x1f\\xe8\" + // 0x03A50306: 0x00001FE8\n\t\"\\x03\\xa5\\x03\\x04\\x00\\x00\\x1f\\xe9\" + // 0x03A50304: 0x00001FE9\n\t\"\\x03\\xa5\\x03\\x00\\x00\\x00\\x1f\\xea\" + // 0x03A50300: 0x00001FEA\n\t\"\\x03\\xa1\\x03\\x14\\x00\\x00\\x1f\\xec\" + // 0x03A10314: 0x00001FEC\n\t\"\\x00\\xa8\\x03\\x00\\x00\\x00\\x1f\\xed\" + // 0x00A80300: 0x00001FED\n\t\"\\x1f|\\x03E\\x00\\x00\\x1f\\xf2\" + // 0x1F7C0345: 0x00001FF2\n\t\"\\x03\\xc9\\x03E\\x00\\x00\\x1f\\xf3\" + // 0x03C90345: 0x00001FF3\n\t\"\\x03\\xce\\x03E\\x00\\x00\\x1f\\xf4\" + // 0x03CE0345: 0x00001FF4\n\t\"\\x03\\xc9\\x03B\\x00\\x00\\x1f\\xf6\" + // 0x03C90342: 0x00001FF6\n\t\"\\x1f\\xf6\\x03E\\x00\\x00\\x1f\\xf7\" + // 0x1FF60345: 0x00001FF7\n\t\"\\x03\\x9f\\x03\\x00\\x00\\x00\\x1f\\xf8\" + // 0x039F0300: 0x00001FF8\n\t\"\\x03\\xa9\\x03\\x00\\x00\\x00\\x1f\\xfa\" + // 0x03A90300: 0x00001FFA\n\t\"\\x03\\xa9\\x03E\\x00\\x00\\x1f\\xfc\" + // 0x03A90345: 0x00001FFC\n\t\"!\\x90\\x038\\x00\\x00!\\x9a\" + // 0x21900338: 0x0000219A\n\t\"!\\x92\\x038\\x00\\x00!\\x9b\" + // 0x21920338: 0x0000219B\n\t\"!\\x94\\x038\\x00\\x00!\\xae\" + // 0x21940338: 0x000021AE\n\t\"!\\xd0\\x038\\x00\\x00!\\xcd\" + // 0x21D00338: 0x000021CD\n\t\"!\\xd4\\x038\\x00\\x00!\\xce\" + // 0x21D40338: 0x000021CE\n\t\"!\\xd2\\x038\\x00\\x00!\\xcf\" + // 0x21D20338: 0x000021CF\n\t\"\\\"\\x03\\x038\\x00\\x00\\\"\\x04\" + // 0x22030338: 0x00002204\n\t\"\\\"\\b\\x038\\x00\\x00\\\"\\t\" + // 0x22080338: 0x00002209\n\t\"\\\"\\v\\x038\\x00\\x00\\\"\\f\" + // 0x220B0338: 0x0000220C\n\t\"\\\"#\\x038\\x00\\x00\\\"$\" + // 0x22230338: 0x00002224\n\t\"\\\"%\\x038\\x00\\x00\\\"&\" + // 0x22250338: 0x00002226\n\t\"\\\"<\\x038\\x00\\x00\\\"A\" + // 0x223C0338: 0x00002241\n\t\"\\\"C\\x038\\x00\\x00\\\"D\" + // 0x22430338: 0x00002244\n\t\"\\\"E\\x038\\x00\\x00\\\"G\" + // 0x22450338: 0x00002247\n\t\"\\\"H\\x038\\x00\\x00\\\"I\" + // 0x22480338: 0x00002249\n\t\"\\x00=\\x038\\x00\\x00\\\"`\" + // 0x003D0338: 0x00002260\n\t\"\\\"a\\x038\\x00\\x00\\\"b\" + // 0x22610338: 0x00002262\n\t\"\\\"M\\x038\\x00\\x00\\\"m\" + // 0x224D0338: 0x0000226D\n\t\"\\x00<\\x038\\x00\\x00\\\"n\" + // 0x003C0338: 0x0000226E\n\t\"\\x00>\\x038\\x00\\x00\\\"o\" + // 0x003E0338: 0x0000226F\n\t\"\\\"d\\x038\\x00\\x00\\\"p\" + // 0x22640338: 0x00002270\n\t\"\\\"e\\x038\\x00\\x00\\\"q\" + // 0x22650338: 0x00002271\n\t\"\\\"r\\x038\\x00\\x00\\\"t\" + // 0x22720338: 0x00002274\n\t\"\\\"s\\x038\\x00\\x00\\\"u\" + // 0x22730338: 0x00002275\n\t\"\\\"v\\x038\\x00\\x00\\\"x\" + // 0x22760338: 0x00002278\n\t\"\\\"w\\x038\\x00\\x00\\\"y\" + // 0x22770338: 0x00002279\n\t\"\\\"z\\x038\\x00\\x00\\\"\\x80\" + // 0x227A0338: 0x00002280\n\t\"\\\"{\\x038\\x00\\x00\\\"\\x81\" + // 0x227B0338: 0x00002281\n\t\"\\\"\\x82\\x038\\x00\\x00\\\"\\x84\" + // 0x22820338: 0x00002284\n\t\"\\\"\\x83\\x038\\x00\\x00\\\"\\x85\" + // 0x22830338: 0x00002285\n\t\"\\\"\\x86\\x038\\x00\\x00\\\"\\x88\" + // 0x22860338: 0x00002288\n\t\"\\\"\\x87\\x038\\x00\\x00\\\"\\x89\" + // 0x22870338: 0x00002289\n\t\"\\\"\\xa2\\x038\\x00\\x00\\\"\\xac\" + // 0x22A20338: 0x000022AC\n\t\"\\\"\\xa8\\x038\\x00\\x00\\\"\\xad\" + // 0x22A80338: 0x000022AD\n\t\"\\\"\\xa9\\x038\\x00\\x00\\\"\\xae\" + // 0x22A90338: 0x000022AE\n\t\"\\\"\\xab\\x038\\x00\\x00\\\"\\xaf\" + // 0x22AB0338: 0x000022AF\n\t\"\\\"|\\x038\\x00\\x00\\\"\\xe0\" + // 0x227C0338: 0x000022E0\n\t\"\\\"}\\x038\\x00\\x00\\\"\\xe1\" + // 0x227D0338: 0x000022E1\n\t\"\\\"\\x91\\x038\\x00\\x00\\\"\\xe2\" + // 0x22910338: 0x000022E2\n\t\"\\\"\\x92\\x038\\x00\\x00\\\"\\xe3\" + // 0x22920338: 0x000022E3\n\t\"\\\"\\xb2\\x038\\x00\\x00\\\"\\xea\" + // 0x22B20338: 0x000022EA\n\t\"\\\"\\xb3\\x038\\x00\\x00\\\"\\xeb\" + // 0x22B30338: 0x000022EB\n\t\"\\\"\\xb4\\x038\\x00\\x00\\\"\\xec\" + // 0x22B40338: 0x000022EC\n\t\"\\\"\\xb5\\x038\\x00\\x00\\\"\\xed\" + // 0x22B50338: 0x000022ED\n\t\"0K0\\x99\\x00\\x000L\" + // 0x304B3099: 0x0000304C\n\t\"0M0\\x99\\x00\\x000N\" + // 0x304D3099: 0x0000304E\n\t\"0O0\\x99\\x00\\x000P\" + // 0x304F3099: 0x00003050\n\t\"0Q0\\x99\\x00\\x000R\" + // 0x30513099: 0x00003052\n\t\"0S0\\x99\\x00\\x000T\" + // 0x30533099: 0x00003054\n\t\"0U0\\x99\\x00\\x000V\" + // 0x30553099: 0x00003056\n\t\"0W0\\x99\\x00\\x000X\" + // 0x30573099: 0x00003058\n\t\"0Y0\\x99\\x00\\x000Z\" + // 0x30593099: 0x0000305A\n\t\"0[0\\x99\\x00\\x000\\\\\" + // 0x305B3099: 0x0000305C\n\t\"0]0\\x99\\x00\\x000^\" + // 0x305D3099: 0x0000305E\n\t\"0_0\\x99\\x00\\x000`\" + // 0x305F3099: 0x00003060\n\t\"0a0\\x99\\x00\\x000b\" + // 0x30613099: 0x00003062\n\t\"0d0\\x99\\x00\\x000e\" + // 0x30643099: 0x00003065\n\t\"0f0\\x99\\x00\\x000g\" + // 0x30663099: 0x00003067\n\t\"0h0\\x99\\x00\\x000i\" + // 0x30683099: 0x00003069\n\t\"0o0\\x99\\x00\\x000p\" + // 0x306F3099: 0x00003070\n\t\"0o0\\x9a\\x00\\x000q\" + // 0x306F309A: 0x00003071\n\t\"0r0\\x99\\x00\\x000s\" + // 0x30723099: 0x00003073\n\t\"0r0\\x9a\\x00\\x000t\" + // 0x3072309A: 0x00003074\n\t\"0u0\\x99\\x00\\x000v\" + // 0x30753099: 0x00003076\n\t\"0u0\\x9a\\x00\\x000w\" + // 0x3075309A: 0x00003077\n\t\"0x0\\x99\\x00\\x000y\" + // 0x30783099: 0x00003079\n\t\"0x0\\x9a\\x00\\x000z\" + // 0x3078309A: 0x0000307A\n\t\"0{0\\x99\\x00\\x000|\" + // 0x307B3099: 0x0000307C\n\t\"0{0\\x9a\\x00\\x000}\" + // 0x307B309A: 0x0000307D\n\t\"0F0\\x99\\x00\\x000\\x94\" + // 0x30463099: 0x00003094\n\t\"0\\x9d0\\x99\\x00\\x000\\x9e\" + // 0x309D3099: 0x0000309E\n\t\"0\\xab0\\x99\\x00\\x000\\xac\" + // 0x30AB3099: 0x000030AC\n\t\"0\\xad0\\x99\\x00\\x000\\xae\" + // 0x30AD3099: 0x000030AE\n\t\"0\\xaf0\\x99\\x00\\x000\\xb0\" + // 0x30AF3099: 0x000030B0\n\t\"0\\xb10\\x99\\x00\\x000\\xb2\" + // 0x30B13099: 0x000030B2\n\t\"0\\xb30\\x99\\x00\\x000\\xb4\" + // 0x30B33099: 0x000030B4\n\t\"0\\xb50\\x99\\x00\\x000\\xb6\" + // 0x30B53099: 0x000030B6\n\t\"0\\xb70\\x99\\x00\\x000\\xb8\" + // 0x30B73099: 0x000030B8\n\t\"0\\xb90\\x99\\x00\\x000\\xba\" + // 0x30B93099: 0x000030BA\n\t\"0\\xbb0\\x99\\x00\\x000\\xbc\" + // 0x30BB3099: 0x000030BC\n\t\"0\\xbd0\\x99\\x00\\x000\\xbe\" + // 0x30BD3099: 0x000030BE\n\t\"0\\xbf0\\x99\\x00\\x000\\xc0\" + // 0x30BF3099: 0x000030C0\n\t\"0\\xc10\\x99\\x00\\x000\\xc2\" + // 0x30C13099: 0x000030C2\n\t\"0\\xc40\\x99\\x00\\x000\\xc5\" + // 0x30C43099: 0x000030C5\n\t\"0\\xc60\\x99\\x00\\x000\\xc7\" + // 0x30C63099: 0x000030C7\n\t\"0\\xc80\\x99\\x00\\x000\\xc9\" + // 0x30C83099: 0x000030C9\n\t\"0\\xcf0\\x99\\x00\\x000\\xd0\" + // 0x30CF3099: 0x000030D0\n\t\"0\\xcf0\\x9a\\x00\\x000\\xd1\" + // 0x30CF309A: 0x000030D1\n\t\"0\\xd20\\x99\\x00\\x000\\xd3\" + // 0x30D23099: 0x000030D3\n\t\"0\\xd20\\x9a\\x00\\x000\\xd4\" + // 0x30D2309A: 0x000030D4\n\t\"0\\xd50\\x99\\x00\\x000\\xd6\" + // 0x30D53099: 0x000030D6\n\t\"0\\xd50\\x9a\\x00\\x000\\xd7\" + // 0x30D5309A: 0x000030D7\n\t\"0\\xd80\\x99\\x00\\x000\\xd9\" + // 0x30D83099: 0x000030D9\n\t\"0\\xd80\\x9a\\x00\\x000\\xda\" + // 0x30D8309A: 0x000030DA\n\t\"0\\xdb0\\x99\\x00\\x000\\xdc\" + // 0x30DB3099: 0x000030DC\n\t\"0\\xdb0\\x9a\\x00\\x000\\xdd\" + // 0x30DB309A: 0x000030DD\n\t\"0\\xa60\\x99\\x00\\x000\\xf4\" + // 0x30A63099: 0x000030F4\n\t\"0\\xef0\\x99\\x00\\x000\\xf7\" + // 0x30EF3099: 0x000030F7\n\t\"0\\xf00\\x99\\x00\\x000\\xf8\" + // 0x30F03099: 0x000030F8\n\t\"0\\xf10\\x99\\x00\\x000\\xf9\" + // 0x30F13099: 0x000030F9\n\t\"0\\xf20\\x99\\x00\\x000\\xfa\" + // 0x30F23099: 0x000030FA\n\t\"0\\xfd0\\x99\\x00\\x000\\xfe\" + // 0x30FD3099: 0x000030FE\n\t\"\\x10\\x99\\x10\\xba\\x00\\x01\\x10\\x9a\" + // 0x109910BA: 0x0001109A\n\t\"\\x10\\x9b\\x10\\xba\\x00\\x01\\x10\\x9c\" + // 0x109B10BA: 0x0001109C\n\t\"\\x10\\xa5\\x10\\xba\\x00\\x01\\x10\\xab\" + // 0x10A510BA: 0x000110AB\n\t\"\\x111\\x11'\\x00\\x01\\x11.\" + // 0x11311127: 0x0001112E\n\t\"\\x112\\x11'\\x00\\x01\\x11/\" + // 0x11321127: 0x0001112F\n\t\"\\x13G\\x13>\\x00\\x01\\x13K\" + // 0x1347133E: 0x0001134B\n\t\"\\x13G\\x13W\\x00\\x01\\x13L\" + // 0x13471357: 0x0001134C\n\t\"\\x14\\xb9\\x14\\xba\\x00\\x01\\x14\\xbb\" + // 0x14B914BA: 0x000114BB\n\t\"\\x14\\xb9\\x14\\xb0\\x00\\x01\\x14\\xbc\" + // 0x14B914B0: 0x000114BC\n\t\"\\x14\\xb9\\x14\\xbd\\x00\\x01\\x14\\xbe\" + // 0x14B914BD: 0x000114BE\n\t\"\\x15\\xb8\\x15\\xaf\\x00\\x01\\x15\\xba\" + // 0x15B815AF: 0x000115BA\n\t\"\\x15\\xb9\\x15\\xaf\\x00\\x01\\x15\\xbb\" + // 0x15B915AF: 0x000115BB\n\t\"\\x195\\x190\\x00\\x01\\x198\" + // 0x19351930: 0x00011938\n\t\"\"\n\t// Total size of tables: 56KB (57068 bytes)\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/norm/tables9.0.0.go",
    "content": "// Code generated by running \"go generate\" in golang.org/x/text. DO NOT EDIT.\n\n//go:build !go1.10\n\npackage norm\n\nimport \"sync\"\n\nconst (\n\t// Version is the Unicode edition from which the tables are derived.\n\tVersion = \"9.0.0\"\n\n\t// MaxTransformChunkSize indicates the maximum number of bytes that Transform\n\t// may need to write atomically for any Form. Making a destination buffer at\n\t// least this size ensures that Transform can always make progress and that\n\t// the user does not need to grow the buffer on an ErrShortDst.\n\tMaxTransformChunkSize = 35 + maxNonStarters*4\n)\n\nvar ccc = [55]uint8{\n\t0, 1, 7, 8, 9, 10, 11, 12,\n\t13, 14, 15, 16, 17, 18, 19, 20,\n\t21, 22, 23, 24, 25, 26, 27, 28,\n\t29, 30, 31, 32, 33, 34, 35, 36,\n\t84, 91, 103, 107, 118, 122, 129, 130,\n\t132, 202, 214, 216, 218, 220, 222, 224,\n\t226, 228, 230, 232, 233, 234, 240,\n}\n\nconst (\n\tfirstMulti            = 0x186D\n\tfirstCCC              = 0x2C9E\n\tendMulti              = 0x2F60\n\tfirstLeadingCCC       = 0x49AE\n\tfirstCCCZeroExcept    = 0x4A78\n\tfirstStarterWithNLead = 0x4A9F\n\tlastDecomp            = 0x4AA1\n\tmaxDecomp             = 0x8000\n)\n\n// decomps: 19105 bytes\nvar decomps = [...]byte{\n\t// Bytes 0 - 3f\n\t0x00, 0x41, 0x20, 0x41, 0x21, 0x41, 0x22, 0x41,\n\t0x23, 0x41, 0x24, 0x41, 0x25, 0x41, 0x26, 0x41,\n\t0x27, 0x41, 0x28, 0x41, 0x29, 0x41, 0x2A, 0x41,\n\t0x2B, 0x41, 0x2C, 0x41, 0x2D, 0x41, 0x2E, 0x41,\n\t0x2F, 0x41, 0x30, 0x41, 0x31, 0x41, 0x32, 0x41,\n\t0x33, 0x41, 0x34, 0x41, 0x35, 0x41, 0x36, 0x41,\n\t0x37, 0x41, 0x38, 0x41, 0x39, 0x41, 0x3A, 0x41,\n\t0x3B, 0x41, 0x3C, 0x41, 0x3D, 0x41, 0x3E, 0x41,\n\t// Bytes 40 - 7f\n\t0x3F, 0x41, 0x40, 0x41, 0x41, 0x41, 0x42, 0x41,\n\t0x43, 0x41, 0x44, 0x41, 0x45, 0x41, 0x46, 0x41,\n\t0x47, 0x41, 0x48, 0x41, 0x49, 0x41, 0x4A, 0x41,\n\t0x4B, 0x41, 0x4C, 0x41, 0x4D, 0x41, 0x4E, 0x41,\n\t0x4F, 0x41, 0x50, 0x41, 0x51, 0x41, 0x52, 0x41,\n\t0x53, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41,\n\t0x57, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5A, 0x41,\n\t0x5B, 0x41, 0x5C, 0x41, 0x5D, 0x41, 0x5E, 0x41,\n\t// Bytes 80 - bf\n\t0x5F, 0x41, 0x60, 0x41, 0x61, 0x41, 0x62, 0x41,\n\t0x63, 0x41, 0x64, 0x41, 0x65, 0x41, 0x66, 0x41,\n\t0x67, 0x41, 0x68, 0x41, 0x69, 0x41, 0x6A, 0x41,\n\t0x6B, 0x41, 0x6C, 0x41, 0x6D, 0x41, 0x6E, 0x41,\n\t0x6F, 0x41, 0x70, 0x41, 0x71, 0x41, 0x72, 0x41,\n\t0x73, 0x41, 0x74, 0x41, 0x75, 0x41, 0x76, 0x41,\n\t0x77, 0x41, 0x78, 0x41, 0x79, 0x41, 0x7A, 0x41,\n\t0x7B, 0x41, 0x7C, 0x41, 0x7D, 0x41, 0x7E, 0x42,\n\t// Bytes c0 - ff\n\t0xC2, 0xA2, 0x42, 0xC2, 0xA3, 0x42, 0xC2, 0xA5,\n\t0x42, 0xC2, 0xA6, 0x42, 0xC2, 0xAC, 0x42, 0xC2,\n\t0xB7, 0x42, 0xC3, 0x86, 0x42, 0xC3, 0xB0, 0x42,\n\t0xC4, 0xA6, 0x42, 0xC4, 0xA7, 0x42, 0xC4, 0xB1,\n\t0x42, 0xC5, 0x8B, 0x42, 0xC5, 0x93, 0x42, 0xC6,\n\t0x8E, 0x42, 0xC6, 0x90, 0x42, 0xC6, 0xAB, 0x42,\n\t0xC8, 0xA2, 0x42, 0xC8, 0xB7, 0x42, 0xC9, 0x90,\n\t0x42, 0xC9, 0x91, 0x42, 0xC9, 0x92, 0x42, 0xC9,\n\t// Bytes 100 - 13f\n\t0x94, 0x42, 0xC9, 0x95, 0x42, 0xC9, 0x99, 0x42,\n\t0xC9, 0x9B, 0x42, 0xC9, 0x9C, 0x42, 0xC9, 0x9F,\n\t0x42, 0xC9, 0xA1, 0x42, 0xC9, 0xA3, 0x42, 0xC9,\n\t0xA5, 0x42, 0xC9, 0xA6, 0x42, 0xC9, 0xA8, 0x42,\n\t0xC9, 0xA9, 0x42, 0xC9, 0xAA, 0x42, 0xC9, 0xAB,\n\t0x42, 0xC9, 0xAD, 0x42, 0xC9, 0xAF, 0x42, 0xC9,\n\t0xB0, 0x42, 0xC9, 0xB1, 0x42, 0xC9, 0xB2, 0x42,\n\t0xC9, 0xB3, 0x42, 0xC9, 0xB4, 0x42, 0xC9, 0xB5,\n\t// Bytes 140 - 17f\n\t0x42, 0xC9, 0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9,\n\t0xBB, 0x42, 0xCA, 0x81, 0x42, 0xCA, 0x82, 0x42,\n\t0xCA, 0x83, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A,\n\t0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA,\n\t0x90, 0x42, 0xCA, 0x91, 0x42, 0xCA, 0x92, 0x42,\n\t0xCA, 0x95, 0x42, 0xCA, 0x9D, 0x42, 0xCA, 0x9F,\n\t0x42, 0xCA, 0xB9, 0x42, 0xCE, 0x91, 0x42, 0xCE,\n\t0x92, 0x42, 0xCE, 0x93, 0x42, 0xCE, 0x94, 0x42,\n\t// Bytes 180 - 1bf\n\t0xCE, 0x95, 0x42, 0xCE, 0x96, 0x42, 0xCE, 0x97,\n\t0x42, 0xCE, 0x98, 0x42, 0xCE, 0x99, 0x42, 0xCE,\n\t0x9A, 0x42, 0xCE, 0x9B, 0x42, 0xCE, 0x9C, 0x42,\n\t0xCE, 0x9D, 0x42, 0xCE, 0x9E, 0x42, 0xCE, 0x9F,\n\t0x42, 0xCE, 0xA0, 0x42, 0xCE, 0xA1, 0x42, 0xCE,\n\t0xA3, 0x42, 0xCE, 0xA4, 0x42, 0xCE, 0xA5, 0x42,\n\t0xCE, 0xA6, 0x42, 0xCE, 0xA7, 0x42, 0xCE, 0xA8,\n\t0x42, 0xCE, 0xA9, 0x42, 0xCE, 0xB1, 0x42, 0xCE,\n\t// Bytes 1c0 - 1ff\n\t0xB2, 0x42, 0xCE, 0xB3, 0x42, 0xCE, 0xB4, 0x42,\n\t0xCE, 0xB5, 0x42, 0xCE, 0xB6, 0x42, 0xCE, 0xB7,\n\t0x42, 0xCE, 0xB8, 0x42, 0xCE, 0xB9, 0x42, 0xCE,\n\t0xBA, 0x42, 0xCE, 0xBB, 0x42, 0xCE, 0xBC, 0x42,\n\t0xCE, 0xBD, 0x42, 0xCE, 0xBE, 0x42, 0xCE, 0xBF,\n\t0x42, 0xCF, 0x80, 0x42, 0xCF, 0x81, 0x42, 0xCF,\n\t0x82, 0x42, 0xCF, 0x83, 0x42, 0xCF, 0x84, 0x42,\n\t0xCF, 0x85, 0x42, 0xCF, 0x86, 0x42, 0xCF, 0x87,\n\t// Bytes 200 - 23f\n\t0x42, 0xCF, 0x88, 0x42, 0xCF, 0x89, 0x42, 0xCF,\n\t0x9C, 0x42, 0xCF, 0x9D, 0x42, 0xD0, 0xBD, 0x42,\n\t0xD1, 0x8A, 0x42, 0xD1, 0x8C, 0x42, 0xD7, 0x90,\n\t0x42, 0xD7, 0x91, 0x42, 0xD7, 0x92, 0x42, 0xD7,\n\t0x93, 0x42, 0xD7, 0x94, 0x42, 0xD7, 0x9B, 0x42,\n\t0xD7, 0x9C, 0x42, 0xD7, 0x9D, 0x42, 0xD7, 0xA2,\n\t0x42, 0xD7, 0xA8, 0x42, 0xD7, 0xAA, 0x42, 0xD8,\n\t0xA1, 0x42, 0xD8, 0xA7, 0x42, 0xD8, 0xA8, 0x42,\n\t// Bytes 240 - 27f\n\t0xD8, 0xA9, 0x42, 0xD8, 0xAA, 0x42, 0xD8, 0xAB,\n\t0x42, 0xD8, 0xAC, 0x42, 0xD8, 0xAD, 0x42, 0xD8,\n\t0xAE, 0x42, 0xD8, 0xAF, 0x42, 0xD8, 0xB0, 0x42,\n\t0xD8, 0xB1, 0x42, 0xD8, 0xB2, 0x42, 0xD8, 0xB3,\n\t0x42, 0xD8, 0xB4, 0x42, 0xD8, 0xB5, 0x42, 0xD8,\n\t0xB6, 0x42, 0xD8, 0xB7, 0x42, 0xD8, 0xB8, 0x42,\n\t0xD8, 0xB9, 0x42, 0xD8, 0xBA, 0x42, 0xD9, 0x81,\n\t0x42, 0xD9, 0x82, 0x42, 0xD9, 0x83, 0x42, 0xD9,\n\t// Bytes 280 - 2bf\n\t0x84, 0x42, 0xD9, 0x85, 0x42, 0xD9, 0x86, 0x42,\n\t0xD9, 0x87, 0x42, 0xD9, 0x88, 0x42, 0xD9, 0x89,\n\t0x42, 0xD9, 0x8A, 0x42, 0xD9, 0xAE, 0x42, 0xD9,\n\t0xAF, 0x42, 0xD9, 0xB1, 0x42, 0xD9, 0xB9, 0x42,\n\t0xD9, 0xBA, 0x42, 0xD9, 0xBB, 0x42, 0xD9, 0xBE,\n\t0x42, 0xD9, 0xBF, 0x42, 0xDA, 0x80, 0x42, 0xDA,\n\t0x83, 0x42, 0xDA, 0x84, 0x42, 0xDA, 0x86, 0x42,\n\t0xDA, 0x87, 0x42, 0xDA, 0x88, 0x42, 0xDA, 0x8C,\n\t// Bytes 2c0 - 2ff\n\t0x42, 0xDA, 0x8D, 0x42, 0xDA, 0x8E, 0x42, 0xDA,\n\t0x91, 0x42, 0xDA, 0x98, 0x42, 0xDA, 0xA1, 0x42,\n\t0xDA, 0xA4, 0x42, 0xDA, 0xA6, 0x42, 0xDA, 0xA9,\n\t0x42, 0xDA, 0xAD, 0x42, 0xDA, 0xAF, 0x42, 0xDA,\n\t0xB1, 0x42, 0xDA, 0xB3, 0x42, 0xDA, 0xBA, 0x42,\n\t0xDA, 0xBB, 0x42, 0xDA, 0xBE, 0x42, 0xDB, 0x81,\n\t0x42, 0xDB, 0x85, 0x42, 0xDB, 0x86, 0x42, 0xDB,\n\t0x87, 0x42, 0xDB, 0x88, 0x42, 0xDB, 0x89, 0x42,\n\t// Bytes 300 - 33f\n\t0xDB, 0x8B, 0x42, 0xDB, 0x8C, 0x42, 0xDB, 0x90,\n\t0x42, 0xDB, 0x92, 0x43, 0xE0, 0xBC, 0x8B, 0x43,\n\t0xE1, 0x83, 0x9C, 0x43, 0xE1, 0x84, 0x80, 0x43,\n\t0xE1, 0x84, 0x81, 0x43, 0xE1, 0x84, 0x82, 0x43,\n\t0xE1, 0x84, 0x83, 0x43, 0xE1, 0x84, 0x84, 0x43,\n\t0xE1, 0x84, 0x85, 0x43, 0xE1, 0x84, 0x86, 0x43,\n\t0xE1, 0x84, 0x87, 0x43, 0xE1, 0x84, 0x88, 0x43,\n\t0xE1, 0x84, 0x89, 0x43, 0xE1, 0x84, 0x8A, 0x43,\n\t// Bytes 340 - 37f\n\t0xE1, 0x84, 0x8B, 0x43, 0xE1, 0x84, 0x8C, 0x43,\n\t0xE1, 0x84, 0x8D, 0x43, 0xE1, 0x84, 0x8E, 0x43,\n\t0xE1, 0x84, 0x8F, 0x43, 0xE1, 0x84, 0x90, 0x43,\n\t0xE1, 0x84, 0x91, 0x43, 0xE1, 0x84, 0x92, 0x43,\n\t0xE1, 0x84, 0x94, 0x43, 0xE1, 0x84, 0x95, 0x43,\n\t0xE1, 0x84, 0x9A, 0x43, 0xE1, 0x84, 0x9C, 0x43,\n\t0xE1, 0x84, 0x9D, 0x43, 0xE1, 0x84, 0x9E, 0x43,\n\t0xE1, 0x84, 0xA0, 0x43, 0xE1, 0x84, 0xA1, 0x43,\n\t// Bytes 380 - 3bf\n\t0xE1, 0x84, 0xA2, 0x43, 0xE1, 0x84, 0xA3, 0x43,\n\t0xE1, 0x84, 0xA7, 0x43, 0xE1, 0x84, 0xA9, 0x43,\n\t0xE1, 0x84, 0xAB, 0x43, 0xE1, 0x84, 0xAC, 0x43,\n\t0xE1, 0x84, 0xAD, 0x43, 0xE1, 0x84, 0xAE, 0x43,\n\t0xE1, 0x84, 0xAF, 0x43, 0xE1, 0x84, 0xB2, 0x43,\n\t0xE1, 0x84, 0xB6, 0x43, 0xE1, 0x85, 0x80, 0x43,\n\t0xE1, 0x85, 0x87, 0x43, 0xE1, 0x85, 0x8C, 0x43,\n\t0xE1, 0x85, 0x97, 0x43, 0xE1, 0x85, 0x98, 0x43,\n\t// Bytes 3c0 - 3ff\n\t0xE1, 0x85, 0x99, 0x43, 0xE1, 0x85, 0xA0, 0x43,\n\t0xE1, 0x86, 0x84, 0x43, 0xE1, 0x86, 0x85, 0x43,\n\t0xE1, 0x86, 0x88, 0x43, 0xE1, 0x86, 0x91, 0x43,\n\t0xE1, 0x86, 0x92, 0x43, 0xE1, 0x86, 0x94, 0x43,\n\t0xE1, 0x86, 0x9E, 0x43, 0xE1, 0x86, 0xA1, 0x43,\n\t0xE1, 0x87, 0x87, 0x43, 0xE1, 0x87, 0x88, 0x43,\n\t0xE1, 0x87, 0x8C, 0x43, 0xE1, 0x87, 0x8E, 0x43,\n\t0xE1, 0x87, 0x93, 0x43, 0xE1, 0x87, 0x97, 0x43,\n\t// Bytes 400 - 43f\n\t0xE1, 0x87, 0x99, 0x43, 0xE1, 0x87, 0x9D, 0x43,\n\t0xE1, 0x87, 0x9F, 0x43, 0xE1, 0x87, 0xB1, 0x43,\n\t0xE1, 0x87, 0xB2, 0x43, 0xE1, 0xB4, 0x82, 0x43,\n\t0xE1, 0xB4, 0x96, 0x43, 0xE1, 0xB4, 0x97, 0x43,\n\t0xE1, 0xB4, 0x9C, 0x43, 0xE1, 0xB4, 0x9D, 0x43,\n\t0xE1, 0xB4, 0xA5, 0x43, 0xE1, 0xB5, 0xBB, 0x43,\n\t0xE1, 0xB6, 0x85, 0x43, 0xE2, 0x80, 0x82, 0x43,\n\t0xE2, 0x80, 0x83, 0x43, 0xE2, 0x80, 0x90, 0x43,\n\t// Bytes 440 - 47f\n\t0xE2, 0x80, 0x93, 0x43, 0xE2, 0x80, 0x94, 0x43,\n\t0xE2, 0x82, 0xA9, 0x43, 0xE2, 0x86, 0x90, 0x43,\n\t0xE2, 0x86, 0x91, 0x43, 0xE2, 0x86, 0x92, 0x43,\n\t0xE2, 0x86, 0x93, 0x43, 0xE2, 0x88, 0x82, 0x43,\n\t0xE2, 0x88, 0x87, 0x43, 0xE2, 0x88, 0x91, 0x43,\n\t0xE2, 0x88, 0x92, 0x43, 0xE2, 0x94, 0x82, 0x43,\n\t0xE2, 0x96, 0xA0, 0x43, 0xE2, 0x97, 0x8B, 0x43,\n\t0xE2, 0xA6, 0x85, 0x43, 0xE2, 0xA6, 0x86, 0x43,\n\t// Bytes 480 - 4bf\n\t0xE2, 0xB5, 0xA1, 0x43, 0xE3, 0x80, 0x81, 0x43,\n\t0xE3, 0x80, 0x82, 0x43, 0xE3, 0x80, 0x88, 0x43,\n\t0xE3, 0x80, 0x89, 0x43, 0xE3, 0x80, 0x8A, 0x43,\n\t0xE3, 0x80, 0x8B, 0x43, 0xE3, 0x80, 0x8C, 0x43,\n\t0xE3, 0x80, 0x8D, 0x43, 0xE3, 0x80, 0x8E, 0x43,\n\t0xE3, 0x80, 0x8F, 0x43, 0xE3, 0x80, 0x90, 0x43,\n\t0xE3, 0x80, 0x91, 0x43, 0xE3, 0x80, 0x92, 0x43,\n\t0xE3, 0x80, 0x94, 0x43, 0xE3, 0x80, 0x95, 0x43,\n\t// Bytes 4c0 - 4ff\n\t0xE3, 0x80, 0x96, 0x43, 0xE3, 0x80, 0x97, 0x43,\n\t0xE3, 0x82, 0xA1, 0x43, 0xE3, 0x82, 0xA2, 0x43,\n\t0xE3, 0x82, 0xA3, 0x43, 0xE3, 0x82, 0xA4, 0x43,\n\t0xE3, 0x82, 0xA5, 0x43, 0xE3, 0x82, 0xA6, 0x43,\n\t0xE3, 0x82, 0xA7, 0x43, 0xE3, 0x82, 0xA8, 0x43,\n\t0xE3, 0x82, 0xA9, 0x43, 0xE3, 0x82, 0xAA, 0x43,\n\t0xE3, 0x82, 0xAB, 0x43, 0xE3, 0x82, 0xAD, 0x43,\n\t0xE3, 0x82, 0xAF, 0x43, 0xE3, 0x82, 0xB1, 0x43,\n\t// Bytes 500 - 53f\n\t0xE3, 0x82, 0xB3, 0x43, 0xE3, 0x82, 0xB5, 0x43,\n\t0xE3, 0x82, 0xB7, 0x43, 0xE3, 0x82, 0xB9, 0x43,\n\t0xE3, 0x82, 0xBB, 0x43, 0xE3, 0x82, 0xBD, 0x43,\n\t0xE3, 0x82, 0xBF, 0x43, 0xE3, 0x83, 0x81, 0x43,\n\t0xE3, 0x83, 0x83, 0x43, 0xE3, 0x83, 0x84, 0x43,\n\t0xE3, 0x83, 0x86, 0x43, 0xE3, 0x83, 0x88, 0x43,\n\t0xE3, 0x83, 0x8A, 0x43, 0xE3, 0x83, 0x8B, 0x43,\n\t0xE3, 0x83, 0x8C, 0x43, 0xE3, 0x83, 0x8D, 0x43,\n\t// Bytes 540 - 57f\n\t0xE3, 0x83, 0x8E, 0x43, 0xE3, 0x83, 0x8F, 0x43,\n\t0xE3, 0x83, 0x92, 0x43, 0xE3, 0x83, 0x95, 0x43,\n\t0xE3, 0x83, 0x98, 0x43, 0xE3, 0x83, 0x9B, 0x43,\n\t0xE3, 0x83, 0x9E, 0x43, 0xE3, 0x83, 0x9F, 0x43,\n\t0xE3, 0x83, 0xA0, 0x43, 0xE3, 0x83, 0xA1, 0x43,\n\t0xE3, 0x83, 0xA2, 0x43, 0xE3, 0x83, 0xA3, 0x43,\n\t0xE3, 0x83, 0xA4, 0x43, 0xE3, 0x83, 0xA5, 0x43,\n\t0xE3, 0x83, 0xA6, 0x43, 0xE3, 0x83, 0xA7, 0x43,\n\t// Bytes 580 - 5bf\n\t0xE3, 0x83, 0xA8, 0x43, 0xE3, 0x83, 0xA9, 0x43,\n\t0xE3, 0x83, 0xAA, 0x43, 0xE3, 0x83, 0xAB, 0x43,\n\t0xE3, 0x83, 0xAC, 0x43, 0xE3, 0x83, 0xAD, 0x43,\n\t0xE3, 0x83, 0xAF, 0x43, 0xE3, 0x83, 0xB0, 0x43,\n\t0xE3, 0x83, 0xB1, 0x43, 0xE3, 0x83, 0xB2, 0x43,\n\t0xE3, 0x83, 0xB3, 0x43, 0xE3, 0x83, 0xBB, 0x43,\n\t0xE3, 0x83, 0xBC, 0x43, 0xE3, 0x92, 0x9E, 0x43,\n\t0xE3, 0x92, 0xB9, 0x43, 0xE3, 0x92, 0xBB, 0x43,\n\t// Bytes 5c0 - 5ff\n\t0xE3, 0x93, 0x9F, 0x43, 0xE3, 0x94, 0x95, 0x43,\n\t0xE3, 0x9B, 0xAE, 0x43, 0xE3, 0x9B, 0xBC, 0x43,\n\t0xE3, 0x9E, 0x81, 0x43, 0xE3, 0xA0, 0xAF, 0x43,\n\t0xE3, 0xA1, 0xA2, 0x43, 0xE3, 0xA1, 0xBC, 0x43,\n\t0xE3, 0xA3, 0x87, 0x43, 0xE3, 0xA3, 0xA3, 0x43,\n\t0xE3, 0xA4, 0x9C, 0x43, 0xE3, 0xA4, 0xBA, 0x43,\n\t0xE3, 0xA8, 0xAE, 0x43, 0xE3, 0xA9, 0xAC, 0x43,\n\t0xE3, 0xAB, 0xA4, 0x43, 0xE3, 0xAC, 0x88, 0x43,\n\t// Bytes 600 - 63f\n\t0xE3, 0xAC, 0x99, 0x43, 0xE3, 0xAD, 0x89, 0x43,\n\t0xE3, 0xAE, 0x9D, 0x43, 0xE3, 0xB0, 0x98, 0x43,\n\t0xE3, 0xB1, 0x8E, 0x43, 0xE3, 0xB4, 0xB3, 0x43,\n\t0xE3, 0xB6, 0x96, 0x43, 0xE3, 0xBA, 0xAC, 0x43,\n\t0xE3, 0xBA, 0xB8, 0x43, 0xE3, 0xBC, 0x9B, 0x43,\n\t0xE3, 0xBF, 0xBC, 0x43, 0xE4, 0x80, 0x88, 0x43,\n\t0xE4, 0x80, 0x98, 0x43, 0xE4, 0x80, 0xB9, 0x43,\n\t0xE4, 0x81, 0x86, 0x43, 0xE4, 0x82, 0x96, 0x43,\n\t// Bytes 640 - 67f\n\t0xE4, 0x83, 0xA3, 0x43, 0xE4, 0x84, 0xAF, 0x43,\n\t0xE4, 0x88, 0x82, 0x43, 0xE4, 0x88, 0xA7, 0x43,\n\t0xE4, 0x8A, 0xA0, 0x43, 0xE4, 0x8C, 0x81, 0x43,\n\t0xE4, 0x8C, 0xB4, 0x43, 0xE4, 0x8D, 0x99, 0x43,\n\t0xE4, 0x8F, 0x95, 0x43, 0xE4, 0x8F, 0x99, 0x43,\n\t0xE4, 0x90, 0x8B, 0x43, 0xE4, 0x91, 0xAB, 0x43,\n\t0xE4, 0x94, 0xAB, 0x43, 0xE4, 0x95, 0x9D, 0x43,\n\t0xE4, 0x95, 0xA1, 0x43, 0xE4, 0x95, 0xAB, 0x43,\n\t// Bytes 680 - 6bf\n\t0xE4, 0x97, 0x97, 0x43, 0xE4, 0x97, 0xB9, 0x43,\n\t0xE4, 0x98, 0xB5, 0x43, 0xE4, 0x9A, 0xBE, 0x43,\n\t0xE4, 0x9B, 0x87, 0x43, 0xE4, 0xA6, 0x95, 0x43,\n\t0xE4, 0xA7, 0xA6, 0x43, 0xE4, 0xA9, 0xAE, 0x43,\n\t0xE4, 0xA9, 0xB6, 0x43, 0xE4, 0xAA, 0xB2, 0x43,\n\t0xE4, 0xAC, 0xB3, 0x43, 0xE4, 0xAF, 0x8E, 0x43,\n\t0xE4, 0xB3, 0x8E, 0x43, 0xE4, 0xB3, 0xAD, 0x43,\n\t0xE4, 0xB3, 0xB8, 0x43, 0xE4, 0xB5, 0x96, 0x43,\n\t// Bytes 6c0 - 6ff\n\t0xE4, 0xB8, 0x80, 0x43, 0xE4, 0xB8, 0x81, 0x43,\n\t0xE4, 0xB8, 0x83, 0x43, 0xE4, 0xB8, 0x89, 0x43,\n\t0xE4, 0xB8, 0x8A, 0x43, 0xE4, 0xB8, 0x8B, 0x43,\n\t0xE4, 0xB8, 0x8D, 0x43, 0xE4, 0xB8, 0x99, 0x43,\n\t0xE4, 0xB8, 0xA6, 0x43, 0xE4, 0xB8, 0xA8, 0x43,\n\t0xE4, 0xB8, 0xAD, 0x43, 0xE4, 0xB8, 0xB2, 0x43,\n\t0xE4, 0xB8, 0xB6, 0x43, 0xE4, 0xB8, 0xB8, 0x43,\n\t0xE4, 0xB8, 0xB9, 0x43, 0xE4, 0xB8, 0xBD, 0x43,\n\t// Bytes 700 - 73f\n\t0xE4, 0xB8, 0xBF, 0x43, 0xE4, 0xB9, 0x81, 0x43,\n\t0xE4, 0xB9, 0x99, 0x43, 0xE4, 0xB9, 0x9D, 0x43,\n\t0xE4, 0xBA, 0x82, 0x43, 0xE4, 0xBA, 0x85, 0x43,\n\t0xE4, 0xBA, 0x86, 0x43, 0xE4, 0xBA, 0x8C, 0x43,\n\t0xE4, 0xBA, 0x94, 0x43, 0xE4, 0xBA, 0xA0, 0x43,\n\t0xE4, 0xBA, 0xA4, 0x43, 0xE4, 0xBA, 0xAE, 0x43,\n\t0xE4, 0xBA, 0xBA, 0x43, 0xE4, 0xBB, 0x80, 0x43,\n\t0xE4, 0xBB, 0x8C, 0x43, 0xE4, 0xBB, 0xA4, 0x43,\n\t// Bytes 740 - 77f\n\t0xE4, 0xBC, 0x81, 0x43, 0xE4, 0xBC, 0x91, 0x43,\n\t0xE4, 0xBD, 0xA0, 0x43, 0xE4, 0xBE, 0x80, 0x43,\n\t0xE4, 0xBE, 0x86, 0x43, 0xE4, 0xBE, 0x8B, 0x43,\n\t0xE4, 0xBE, 0xAE, 0x43, 0xE4, 0xBE, 0xBB, 0x43,\n\t0xE4, 0xBE, 0xBF, 0x43, 0xE5, 0x80, 0x82, 0x43,\n\t0xE5, 0x80, 0xAB, 0x43, 0xE5, 0x81, 0xBA, 0x43,\n\t0xE5, 0x82, 0x99, 0x43, 0xE5, 0x83, 0x8F, 0x43,\n\t0xE5, 0x83, 0x9A, 0x43, 0xE5, 0x83, 0xA7, 0x43,\n\t// Bytes 780 - 7bf\n\t0xE5, 0x84, 0xAA, 0x43, 0xE5, 0x84, 0xBF, 0x43,\n\t0xE5, 0x85, 0x80, 0x43, 0xE5, 0x85, 0x85, 0x43,\n\t0xE5, 0x85, 0x8D, 0x43, 0xE5, 0x85, 0x94, 0x43,\n\t0xE5, 0x85, 0xA4, 0x43, 0xE5, 0x85, 0xA5, 0x43,\n\t0xE5, 0x85, 0xA7, 0x43, 0xE5, 0x85, 0xA8, 0x43,\n\t0xE5, 0x85, 0xA9, 0x43, 0xE5, 0x85, 0xAB, 0x43,\n\t0xE5, 0x85, 0xAD, 0x43, 0xE5, 0x85, 0xB7, 0x43,\n\t0xE5, 0x86, 0x80, 0x43, 0xE5, 0x86, 0x82, 0x43,\n\t// Bytes 7c0 - 7ff\n\t0xE5, 0x86, 0x8D, 0x43, 0xE5, 0x86, 0x92, 0x43,\n\t0xE5, 0x86, 0x95, 0x43, 0xE5, 0x86, 0x96, 0x43,\n\t0xE5, 0x86, 0x97, 0x43, 0xE5, 0x86, 0x99, 0x43,\n\t0xE5, 0x86, 0xA4, 0x43, 0xE5, 0x86, 0xAB, 0x43,\n\t0xE5, 0x86, 0xAC, 0x43, 0xE5, 0x86, 0xB5, 0x43,\n\t0xE5, 0x86, 0xB7, 0x43, 0xE5, 0x87, 0x89, 0x43,\n\t0xE5, 0x87, 0x8C, 0x43, 0xE5, 0x87, 0x9C, 0x43,\n\t0xE5, 0x87, 0x9E, 0x43, 0xE5, 0x87, 0xA0, 0x43,\n\t// Bytes 800 - 83f\n\t0xE5, 0x87, 0xB5, 0x43, 0xE5, 0x88, 0x80, 0x43,\n\t0xE5, 0x88, 0x83, 0x43, 0xE5, 0x88, 0x87, 0x43,\n\t0xE5, 0x88, 0x97, 0x43, 0xE5, 0x88, 0x9D, 0x43,\n\t0xE5, 0x88, 0xA9, 0x43, 0xE5, 0x88, 0xBA, 0x43,\n\t0xE5, 0x88, 0xBB, 0x43, 0xE5, 0x89, 0x86, 0x43,\n\t0xE5, 0x89, 0x8D, 0x43, 0xE5, 0x89, 0xB2, 0x43,\n\t0xE5, 0x89, 0xB7, 0x43, 0xE5, 0x8A, 0x89, 0x43,\n\t0xE5, 0x8A, 0x9B, 0x43, 0xE5, 0x8A, 0xA3, 0x43,\n\t// Bytes 840 - 87f\n\t0xE5, 0x8A, 0xB3, 0x43, 0xE5, 0x8A, 0xB4, 0x43,\n\t0xE5, 0x8B, 0x87, 0x43, 0xE5, 0x8B, 0x89, 0x43,\n\t0xE5, 0x8B, 0x92, 0x43, 0xE5, 0x8B, 0x9E, 0x43,\n\t0xE5, 0x8B, 0xA4, 0x43, 0xE5, 0x8B, 0xB5, 0x43,\n\t0xE5, 0x8B, 0xB9, 0x43, 0xE5, 0x8B, 0xBA, 0x43,\n\t0xE5, 0x8C, 0x85, 0x43, 0xE5, 0x8C, 0x86, 0x43,\n\t0xE5, 0x8C, 0x95, 0x43, 0xE5, 0x8C, 0x97, 0x43,\n\t0xE5, 0x8C, 0x9A, 0x43, 0xE5, 0x8C, 0xB8, 0x43,\n\t// Bytes 880 - 8bf\n\t0xE5, 0x8C, 0xBB, 0x43, 0xE5, 0x8C, 0xBF, 0x43,\n\t0xE5, 0x8D, 0x81, 0x43, 0xE5, 0x8D, 0x84, 0x43,\n\t0xE5, 0x8D, 0x85, 0x43, 0xE5, 0x8D, 0x89, 0x43,\n\t0xE5, 0x8D, 0x91, 0x43, 0xE5, 0x8D, 0x94, 0x43,\n\t0xE5, 0x8D, 0x9A, 0x43, 0xE5, 0x8D, 0x9C, 0x43,\n\t0xE5, 0x8D, 0xA9, 0x43, 0xE5, 0x8D, 0xB0, 0x43,\n\t0xE5, 0x8D, 0xB3, 0x43, 0xE5, 0x8D, 0xB5, 0x43,\n\t0xE5, 0x8D, 0xBD, 0x43, 0xE5, 0x8D, 0xBF, 0x43,\n\t// Bytes 8c0 - 8ff\n\t0xE5, 0x8E, 0x82, 0x43, 0xE5, 0x8E, 0xB6, 0x43,\n\t0xE5, 0x8F, 0x83, 0x43, 0xE5, 0x8F, 0x88, 0x43,\n\t0xE5, 0x8F, 0x8A, 0x43, 0xE5, 0x8F, 0x8C, 0x43,\n\t0xE5, 0x8F, 0x9F, 0x43, 0xE5, 0x8F, 0xA3, 0x43,\n\t0xE5, 0x8F, 0xA5, 0x43, 0xE5, 0x8F, 0xAB, 0x43,\n\t0xE5, 0x8F, 0xAF, 0x43, 0xE5, 0x8F, 0xB1, 0x43,\n\t0xE5, 0x8F, 0xB3, 0x43, 0xE5, 0x90, 0x86, 0x43,\n\t0xE5, 0x90, 0x88, 0x43, 0xE5, 0x90, 0x8D, 0x43,\n\t// Bytes 900 - 93f\n\t0xE5, 0x90, 0x8F, 0x43, 0xE5, 0x90, 0x9D, 0x43,\n\t0xE5, 0x90, 0xB8, 0x43, 0xE5, 0x90, 0xB9, 0x43,\n\t0xE5, 0x91, 0x82, 0x43, 0xE5, 0x91, 0x88, 0x43,\n\t0xE5, 0x91, 0xA8, 0x43, 0xE5, 0x92, 0x9E, 0x43,\n\t0xE5, 0x92, 0xA2, 0x43, 0xE5, 0x92, 0xBD, 0x43,\n\t0xE5, 0x93, 0xB6, 0x43, 0xE5, 0x94, 0x90, 0x43,\n\t0xE5, 0x95, 0x8F, 0x43, 0xE5, 0x95, 0x93, 0x43,\n\t0xE5, 0x95, 0x95, 0x43, 0xE5, 0x95, 0xA3, 0x43,\n\t// Bytes 940 - 97f\n\t0xE5, 0x96, 0x84, 0x43, 0xE5, 0x96, 0x87, 0x43,\n\t0xE5, 0x96, 0x99, 0x43, 0xE5, 0x96, 0x9D, 0x43,\n\t0xE5, 0x96, 0xAB, 0x43, 0xE5, 0x96, 0xB3, 0x43,\n\t0xE5, 0x96, 0xB6, 0x43, 0xE5, 0x97, 0x80, 0x43,\n\t0xE5, 0x97, 0x82, 0x43, 0xE5, 0x97, 0xA2, 0x43,\n\t0xE5, 0x98, 0x86, 0x43, 0xE5, 0x99, 0x91, 0x43,\n\t0xE5, 0x99, 0xA8, 0x43, 0xE5, 0x99, 0xB4, 0x43,\n\t0xE5, 0x9B, 0x97, 0x43, 0xE5, 0x9B, 0x9B, 0x43,\n\t// Bytes 980 - 9bf\n\t0xE5, 0x9B, 0xB9, 0x43, 0xE5, 0x9C, 0x96, 0x43,\n\t0xE5, 0x9C, 0x97, 0x43, 0xE5, 0x9C, 0x9F, 0x43,\n\t0xE5, 0x9C, 0xB0, 0x43, 0xE5, 0x9E, 0x8B, 0x43,\n\t0xE5, 0x9F, 0x8E, 0x43, 0xE5, 0x9F, 0xB4, 0x43,\n\t0xE5, 0xA0, 0x8D, 0x43, 0xE5, 0xA0, 0xB1, 0x43,\n\t0xE5, 0xA0, 0xB2, 0x43, 0xE5, 0xA1, 0x80, 0x43,\n\t0xE5, 0xA1, 0x9A, 0x43, 0xE5, 0xA1, 0x9E, 0x43,\n\t0xE5, 0xA2, 0xA8, 0x43, 0xE5, 0xA2, 0xAC, 0x43,\n\t// Bytes 9c0 - 9ff\n\t0xE5, 0xA2, 0xB3, 0x43, 0xE5, 0xA3, 0x98, 0x43,\n\t0xE5, 0xA3, 0x9F, 0x43, 0xE5, 0xA3, 0xAB, 0x43,\n\t0xE5, 0xA3, 0xAE, 0x43, 0xE5, 0xA3, 0xB0, 0x43,\n\t0xE5, 0xA3, 0xB2, 0x43, 0xE5, 0xA3, 0xB7, 0x43,\n\t0xE5, 0xA4, 0x82, 0x43, 0xE5, 0xA4, 0x86, 0x43,\n\t0xE5, 0xA4, 0x8A, 0x43, 0xE5, 0xA4, 0x95, 0x43,\n\t0xE5, 0xA4, 0x9A, 0x43, 0xE5, 0xA4, 0x9C, 0x43,\n\t0xE5, 0xA4, 0xA2, 0x43, 0xE5, 0xA4, 0xA7, 0x43,\n\t// Bytes a00 - a3f\n\t0xE5, 0xA4, 0xA9, 0x43, 0xE5, 0xA5, 0x84, 0x43,\n\t0xE5, 0xA5, 0x88, 0x43, 0xE5, 0xA5, 0x91, 0x43,\n\t0xE5, 0xA5, 0x94, 0x43, 0xE5, 0xA5, 0xA2, 0x43,\n\t0xE5, 0xA5, 0xB3, 0x43, 0xE5, 0xA7, 0x98, 0x43,\n\t0xE5, 0xA7, 0xAC, 0x43, 0xE5, 0xA8, 0x9B, 0x43,\n\t0xE5, 0xA8, 0xA7, 0x43, 0xE5, 0xA9, 0xA2, 0x43,\n\t0xE5, 0xA9, 0xA6, 0x43, 0xE5, 0xAA, 0xB5, 0x43,\n\t0xE5, 0xAC, 0x88, 0x43, 0xE5, 0xAC, 0xA8, 0x43,\n\t// Bytes a40 - a7f\n\t0xE5, 0xAC, 0xBE, 0x43, 0xE5, 0xAD, 0x90, 0x43,\n\t0xE5, 0xAD, 0x97, 0x43, 0xE5, 0xAD, 0xA6, 0x43,\n\t0xE5, 0xAE, 0x80, 0x43, 0xE5, 0xAE, 0x85, 0x43,\n\t0xE5, 0xAE, 0x97, 0x43, 0xE5, 0xAF, 0x83, 0x43,\n\t0xE5, 0xAF, 0x98, 0x43, 0xE5, 0xAF, 0xA7, 0x43,\n\t0xE5, 0xAF, 0xAE, 0x43, 0xE5, 0xAF, 0xB3, 0x43,\n\t0xE5, 0xAF, 0xB8, 0x43, 0xE5, 0xAF, 0xBF, 0x43,\n\t0xE5, 0xB0, 0x86, 0x43, 0xE5, 0xB0, 0x8F, 0x43,\n\t// Bytes a80 - abf\n\t0xE5, 0xB0, 0xA2, 0x43, 0xE5, 0xB0, 0xB8, 0x43,\n\t0xE5, 0xB0, 0xBF, 0x43, 0xE5, 0xB1, 0xA0, 0x43,\n\t0xE5, 0xB1, 0xA2, 0x43, 0xE5, 0xB1, 0xA4, 0x43,\n\t0xE5, 0xB1, 0xA5, 0x43, 0xE5, 0xB1, 0xAE, 0x43,\n\t0xE5, 0xB1, 0xB1, 0x43, 0xE5, 0xB2, 0x8D, 0x43,\n\t0xE5, 0xB3, 0x80, 0x43, 0xE5, 0xB4, 0x99, 0x43,\n\t0xE5, 0xB5, 0x83, 0x43, 0xE5, 0xB5, 0x90, 0x43,\n\t0xE5, 0xB5, 0xAB, 0x43, 0xE5, 0xB5, 0xAE, 0x43,\n\t// Bytes ac0 - aff\n\t0xE5, 0xB5, 0xBC, 0x43, 0xE5, 0xB6, 0xB2, 0x43,\n\t0xE5, 0xB6, 0xBA, 0x43, 0xE5, 0xB7, 0x9B, 0x43,\n\t0xE5, 0xB7, 0xA1, 0x43, 0xE5, 0xB7, 0xA2, 0x43,\n\t0xE5, 0xB7, 0xA5, 0x43, 0xE5, 0xB7, 0xA6, 0x43,\n\t0xE5, 0xB7, 0xB1, 0x43, 0xE5, 0xB7, 0xBD, 0x43,\n\t0xE5, 0xB7, 0xBE, 0x43, 0xE5, 0xB8, 0xA8, 0x43,\n\t0xE5, 0xB8, 0xBD, 0x43, 0xE5, 0xB9, 0xA9, 0x43,\n\t0xE5, 0xB9, 0xB2, 0x43, 0xE5, 0xB9, 0xB4, 0x43,\n\t// Bytes b00 - b3f\n\t0xE5, 0xB9, 0xBA, 0x43, 0xE5, 0xB9, 0xBC, 0x43,\n\t0xE5, 0xB9, 0xBF, 0x43, 0xE5, 0xBA, 0xA6, 0x43,\n\t0xE5, 0xBA, 0xB0, 0x43, 0xE5, 0xBA, 0xB3, 0x43,\n\t0xE5, 0xBA, 0xB6, 0x43, 0xE5, 0xBB, 0x89, 0x43,\n\t0xE5, 0xBB, 0x8A, 0x43, 0xE5, 0xBB, 0x92, 0x43,\n\t0xE5, 0xBB, 0x93, 0x43, 0xE5, 0xBB, 0x99, 0x43,\n\t0xE5, 0xBB, 0xAC, 0x43, 0xE5, 0xBB, 0xB4, 0x43,\n\t0xE5, 0xBB, 0xBE, 0x43, 0xE5, 0xBC, 0x84, 0x43,\n\t// Bytes b40 - b7f\n\t0xE5, 0xBC, 0x8B, 0x43, 0xE5, 0xBC, 0x93, 0x43,\n\t0xE5, 0xBC, 0xA2, 0x43, 0xE5, 0xBD, 0x90, 0x43,\n\t0xE5, 0xBD, 0x93, 0x43, 0xE5, 0xBD, 0xA1, 0x43,\n\t0xE5, 0xBD, 0xA2, 0x43, 0xE5, 0xBD, 0xA9, 0x43,\n\t0xE5, 0xBD, 0xAB, 0x43, 0xE5, 0xBD, 0xB3, 0x43,\n\t0xE5, 0xBE, 0x8B, 0x43, 0xE5, 0xBE, 0x8C, 0x43,\n\t0xE5, 0xBE, 0x97, 0x43, 0xE5, 0xBE, 0x9A, 0x43,\n\t0xE5, 0xBE, 0xA9, 0x43, 0xE5, 0xBE, 0xAD, 0x43,\n\t// Bytes b80 - bbf\n\t0xE5, 0xBF, 0x83, 0x43, 0xE5, 0xBF, 0x8D, 0x43,\n\t0xE5, 0xBF, 0x97, 0x43, 0xE5, 0xBF, 0xB5, 0x43,\n\t0xE5, 0xBF, 0xB9, 0x43, 0xE6, 0x80, 0x92, 0x43,\n\t0xE6, 0x80, 0x9C, 0x43, 0xE6, 0x81, 0xB5, 0x43,\n\t0xE6, 0x82, 0x81, 0x43, 0xE6, 0x82, 0x94, 0x43,\n\t0xE6, 0x83, 0x87, 0x43, 0xE6, 0x83, 0x98, 0x43,\n\t0xE6, 0x83, 0xA1, 0x43, 0xE6, 0x84, 0x88, 0x43,\n\t0xE6, 0x85, 0x84, 0x43, 0xE6, 0x85, 0x88, 0x43,\n\t// Bytes bc0 - bff\n\t0xE6, 0x85, 0x8C, 0x43, 0xE6, 0x85, 0x8E, 0x43,\n\t0xE6, 0x85, 0xA0, 0x43, 0xE6, 0x85, 0xA8, 0x43,\n\t0xE6, 0x85, 0xBA, 0x43, 0xE6, 0x86, 0x8E, 0x43,\n\t0xE6, 0x86, 0x90, 0x43, 0xE6, 0x86, 0xA4, 0x43,\n\t0xE6, 0x86, 0xAF, 0x43, 0xE6, 0x86, 0xB2, 0x43,\n\t0xE6, 0x87, 0x9E, 0x43, 0xE6, 0x87, 0xB2, 0x43,\n\t0xE6, 0x87, 0xB6, 0x43, 0xE6, 0x88, 0x80, 0x43,\n\t0xE6, 0x88, 0x88, 0x43, 0xE6, 0x88, 0x90, 0x43,\n\t// Bytes c00 - c3f\n\t0xE6, 0x88, 0x9B, 0x43, 0xE6, 0x88, 0xAE, 0x43,\n\t0xE6, 0x88, 0xB4, 0x43, 0xE6, 0x88, 0xB6, 0x43,\n\t0xE6, 0x89, 0x8B, 0x43, 0xE6, 0x89, 0x93, 0x43,\n\t0xE6, 0x89, 0x9D, 0x43, 0xE6, 0x8A, 0x95, 0x43,\n\t0xE6, 0x8A, 0xB1, 0x43, 0xE6, 0x8B, 0x89, 0x43,\n\t0xE6, 0x8B, 0x8F, 0x43, 0xE6, 0x8B, 0x93, 0x43,\n\t0xE6, 0x8B, 0x94, 0x43, 0xE6, 0x8B, 0xBC, 0x43,\n\t0xE6, 0x8B, 0xBE, 0x43, 0xE6, 0x8C, 0x87, 0x43,\n\t// Bytes c40 - c7f\n\t0xE6, 0x8C, 0xBD, 0x43, 0xE6, 0x8D, 0x90, 0x43,\n\t0xE6, 0x8D, 0x95, 0x43, 0xE6, 0x8D, 0xA8, 0x43,\n\t0xE6, 0x8D, 0xBB, 0x43, 0xE6, 0x8E, 0x83, 0x43,\n\t0xE6, 0x8E, 0xA0, 0x43, 0xE6, 0x8E, 0xA9, 0x43,\n\t0xE6, 0x8F, 0x84, 0x43, 0xE6, 0x8F, 0x85, 0x43,\n\t0xE6, 0x8F, 0xA4, 0x43, 0xE6, 0x90, 0x9C, 0x43,\n\t0xE6, 0x90, 0xA2, 0x43, 0xE6, 0x91, 0x92, 0x43,\n\t0xE6, 0x91, 0xA9, 0x43, 0xE6, 0x91, 0xB7, 0x43,\n\t// Bytes c80 - cbf\n\t0xE6, 0x91, 0xBE, 0x43, 0xE6, 0x92, 0x9A, 0x43,\n\t0xE6, 0x92, 0x9D, 0x43, 0xE6, 0x93, 0x84, 0x43,\n\t0xE6, 0x94, 0xAF, 0x43, 0xE6, 0x94, 0xB4, 0x43,\n\t0xE6, 0x95, 0x8F, 0x43, 0xE6, 0x95, 0x96, 0x43,\n\t0xE6, 0x95, 0xAC, 0x43, 0xE6, 0x95, 0xB8, 0x43,\n\t0xE6, 0x96, 0x87, 0x43, 0xE6, 0x96, 0x97, 0x43,\n\t0xE6, 0x96, 0x99, 0x43, 0xE6, 0x96, 0xA4, 0x43,\n\t0xE6, 0x96, 0xB0, 0x43, 0xE6, 0x96, 0xB9, 0x43,\n\t// Bytes cc0 - cff\n\t0xE6, 0x97, 0x85, 0x43, 0xE6, 0x97, 0xA0, 0x43,\n\t0xE6, 0x97, 0xA2, 0x43, 0xE6, 0x97, 0xA3, 0x43,\n\t0xE6, 0x97, 0xA5, 0x43, 0xE6, 0x98, 0x93, 0x43,\n\t0xE6, 0x98, 0xA0, 0x43, 0xE6, 0x99, 0x89, 0x43,\n\t0xE6, 0x99, 0xB4, 0x43, 0xE6, 0x9A, 0x88, 0x43,\n\t0xE6, 0x9A, 0x91, 0x43, 0xE6, 0x9A, 0x9C, 0x43,\n\t0xE6, 0x9A, 0xB4, 0x43, 0xE6, 0x9B, 0x86, 0x43,\n\t0xE6, 0x9B, 0xB0, 0x43, 0xE6, 0x9B, 0xB4, 0x43,\n\t// Bytes d00 - d3f\n\t0xE6, 0x9B, 0xB8, 0x43, 0xE6, 0x9C, 0x80, 0x43,\n\t0xE6, 0x9C, 0x88, 0x43, 0xE6, 0x9C, 0x89, 0x43,\n\t0xE6, 0x9C, 0x97, 0x43, 0xE6, 0x9C, 0x9B, 0x43,\n\t0xE6, 0x9C, 0xA1, 0x43, 0xE6, 0x9C, 0xA8, 0x43,\n\t0xE6, 0x9D, 0x8E, 0x43, 0xE6, 0x9D, 0x93, 0x43,\n\t0xE6, 0x9D, 0x96, 0x43, 0xE6, 0x9D, 0x9E, 0x43,\n\t0xE6, 0x9D, 0xBB, 0x43, 0xE6, 0x9E, 0x85, 0x43,\n\t0xE6, 0x9E, 0x97, 0x43, 0xE6, 0x9F, 0xB3, 0x43,\n\t// Bytes d40 - d7f\n\t0xE6, 0x9F, 0xBA, 0x43, 0xE6, 0xA0, 0x97, 0x43,\n\t0xE6, 0xA0, 0x9F, 0x43, 0xE6, 0xA0, 0xAA, 0x43,\n\t0xE6, 0xA1, 0x92, 0x43, 0xE6, 0xA2, 0x81, 0x43,\n\t0xE6, 0xA2, 0x85, 0x43, 0xE6, 0xA2, 0x8E, 0x43,\n\t0xE6, 0xA2, 0xA8, 0x43, 0xE6, 0xA4, 0x94, 0x43,\n\t0xE6, 0xA5, 0x82, 0x43, 0xE6, 0xA6, 0xA3, 0x43,\n\t0xE6, 0xA7, 0xAA, 0x43, 0xE6, 0xA8, 0x82, 0x43,\n\t0xE6, 0xA8, 0x93, 0x43, 0xE6, 0xAA, 0xA8, 0x43,\n\t// Bytes d80 - dbf\n\t0xE6, 0xAB, 0x93, 0x43, 0xE6, 0xAB, 0x9B, 0x43,\n\t0xE6, 0xAC, 0x84, 0x43, 0xE6, 0xAC, 0xA0, 0x43,\n\t0xE6, 0xAC, 0xA1, 0x43, 0xE6, 0xAD, 0x94, 0x43,\n\t0xE6, 0xAD, 0xA2, 0x43, 0xE6, 0xAD, 0xA3, 0x43,\n\t0xE6, 0xAD, 0xB2, 0x43, 0xE6, 0xAD, 0xB7, 0x43,\n\t0xE6, 0xAD, 0xB9, 0x43, 0xE6, 0xAE, 0x9F, 0x43,\n\t0xE6, 0xAE, 0xAE, 0x43, 0xE6, 0xAE, 0xB3, 0x43,\n\t0xE6, 0xAE, 0xBA, 0x43, 0xE6, 0xAE, 0xBB, 0x43,\n\t// Bytes dc0 - dff\n\t0xE6, 0xAF, 0x8B, 0x43, 0xE6, 0xAF, 0x8D, 0x43,\n\t0xE6, 0xAF, 0x94, 0x43, 0xE6, 0xAF, 0x9B, 0x43,\n\t0xE6, 0xB0, 0x8F, 0x43, 0xE6, 0xB0, 0x94, 0x43,\n\t0xE6, 0xB0, 0xB4, 0x43, 0xE6, 0xB1, 0x8E, 0x43,\n\t0xE6, 0xB1, 0xA7, 0x43, 0xE6, 0xB2, 0x88, 0x43,\n\t0xE6, 0xB2, 0xBF, 0x43, 0xE6, 0xB3, 0x8C, 0x43,\n\t0xE6, 0xB3, 0x8D, 0x43, 0xE6, 0xB3, 0xA5, 0x43,\n\t0xE6, 0xB3, 0xA8, 0x43, 0xE6, 0xB4, 0x96, 0x43,\n\t// Bytes e00 - e3f\n\t0xE6, 0xB4, 0x9B, 0x43, 0xE6, 0xB4, 0x9E, 0x43,\n\t0xE6, 0xB4, 0xB4, 0x43, 0xE6, 0xB4, 0xBE, 0x43,\n\t0xE6, 0xB5, 0x81, 0x43, 0xE6, 0xB5, 0xA9, 0x43,\n\t0xE6, 0xB5, 0xAA, 0x43, 0xE6, 0xB5, 0xB7, 0x43,\n\t0xE6, 0xB5, 0xB8, 0x43, 0xE6, 0xB6, 0x85, 0x43,\n\t0xE6, 0xB7, 0x8B, 0x43, 0xE6, 0xB7, 0x9A, 0x43,\n\t0xE6, 0xB7, 0xAA, 0x43, 0xE6, 0xB7, 0xB9, 0x43,\n\t0xE6, 0xB8, 0x9A, 0x43, 0xE6, 0xB8, 0xAF, 0x43,\n\t// Bytes e40 - e7f\n\t0xE6, 0xB9, 0xAE, 0x43, 0xE6, 0xBA, 0x80, 0x43,\n\t0xE6, 0xBA, 0x9C, 0x43, 0xE6, 0xBA, 0xBA, 0x43,\n\t0xE6, 0xBB, 0x87, 0x43, 0xE6, 0xBB, 0x8B, 0x43,\n\t0xE6, 0xBB, 0x91, 0x43, 0xE6, 0xBB, 0x9B, 0x43,\n\t0xE6, 0xBC, 0x8F, 0x43, 0xE6, 0xBC, 0x94, 0x43,\n\t0xE6, 0xBC, 0xA2, 0x43, 0xE6, 0xBC, 0xA3, 0x43,\n\t0xE6, 0xBD, 0xAE, 0x43, 0xE6, 0xBF, 0x86, 0x43,\n\t0xE6, 0xBF, 0xAB, 0x43, 0xE6, 0xBF, 0xBE, 0x43,\n\t// Bytes e80 - ebf\n\t0xE7, 0x80, 0x9B, 0x43, 0xE7, 0x80, 0x9E, 0x43,\n\t0xE7, 0x80, 0xB9, 0x43, 0xE7, 0x81, 0x8A, 0x43,\n\t0xE7, 0x81, 0xAB, 0x43, 0xE7, 0x81, 0xB0, 0x43,\n\t0xE7, 0x81, 0xB7, 0x43, 0xE7, 0x81, 0xBD, 0x43,\n\t0xE7, 0x82, 0x99, 0x43, 0xE7, 0x82, 0xAD, 0x43,\n\t0xE7, 0x83, 0x88, 0x43, 0xE7, 0x83, 0x99, 0x43,\n\t0xE7, 0x84, 0xA1, 0x43, 0xE7, 0x85, 0x85, 0x43,\n\t0xE7, 0x85, 0x89, 0x43, 0xE7, 0x85, 0xAE, 0x43,\n\t// Bytes ec0 - eff\n\t0xE7, 0x86, 0x9C, 0x43, 0xE7, 0x87, 0x8E, 0x43,\n\t0xE7, 0x87, 0x90, 0x43, 0xE7, 0x88, 0x90, 0x43,\n\t0xE7, 0x88, 0x9B, 0x43, 0xE7, 0x88, 0xA8, 0x43,\n\t0xE7, 0x88, 0xAA, 0x43, 0xE7, 0x88, 0xAB, 0x43,\n\t0xE7, 0x88, 0xB5, 0x43, 0xE7, 0x88, 0xB6, 0x43,\n\t0xE7, 0x88, 0xBB, 0x43, 0xE7, 0x88, 0xBF, 0x43,\n\t0xE7, 0x89, 0x87, 0x43, 0xE7, 0x89, 0x90, 0x43,\n\t0xE7, 0x89, 0x99, 0x43, 0xE7, 0x89, 0x9B, 0x43,\n\t// Bytes f00 - f3f\n\t0xE7, 0x89, 0xA2, 0x43, 0xE7, 0x89, 0xB9, 0x43,\n\t0xE7, 0x8A, 0x80, 0x43, 0xE7, 0x8A, 0x95, 0x43,\n\t0xE7, 0x8A, 0xAC, 0x43, 0xE7, 0x8A, 0xAF, 0x43,\n\t0xE7, 0x8B, 0x80, 0x43, 0xE7, 0x8B, 0xBC, 0x43,\n\t0xE7, 0x8C, 0xAA, 0x43, 0xE7, 0x8D, 0xB5, 0x43,\n\t0xE7, 0x8D, 0xBA, 0x43, 0xE7, 0x8E, 0x84, 0x43,\n\t0xE7, 0x8E, 0x87, 0x43, 0xE7, 0x8E, 0x89, 0x43,\n\t0xE7, 0x8E, 0x8B, 0x43, 0xE7, 0x8E, 0xA5, 0x43,\n\t// Bytes f40 - f7f\n\t0xE7, 0x8E, 0xB2, 0x43, 0xE7, 0x8F, 0x9E, 0x43,\n\t0xE7, 0x90, 0x86, 0x43, 0xE7, 0x90, 0x89, 0x43,\n\t0xE7, 0x90, 0xA2, 0x43, 0xE7, 0x91, 0x87, 0x43,\n\t0xE7, 0x91, 0x9C, 0x43, 0xE7, 0x91, 0xA9, 0x43,\n\t0xE7, 0x91, 0xB1, 0x43, 0xE7, 0x92, 0x85, 0x43,\n\t0xE7, 0x92, 0x89, 0x43, 0xE7, 0x92, 0x98, 0x43,\n\t0xE7, 0x93, 0x8A, 0x43, 0xE7, 0x93, 0x9C, 0x43,\n\t0xE7, 0x93, 0xA6, 0x43, 0xE7, 0x94, 0x86, 0x43,\n\t// Bytes f80 - fbf\n\t0xE7, 0x94, 0x98, 0x43, 0xE7, 0x94, 0x9F, 0x43,\n\t0xE7, 0x94, 0xA4, 0x43, 0xE7, 0x94, 0xA8, 0x43,\n\t0xE7, 0x94, 0xB0, 0x43, 0xE7, 0x94, 0xB2, 0x43,\n\t0xE7, 0x94, 0xB3, 0x43, 0xE7, 0x94, 0xB7, 0x43,\n\t0xE7, 0x94, 0xBB, 0x43, 0xE7, 0x94, 0xBE, 0x43,\n\t0xE7, 0x95, 0x99, 0x43, 0xE7, 0x95, 0xA5, 0x43,\n\t0xE7, 0x95, 0xB0, 0x43, 0xE7, 0x96, 0x8B, 0x43,\n\t0xE7, 0x96, 0x92, 0x43, 0xE7, 0x97, 0xA2, 0x43,\n\t// Bytes fc0 - fff\n\t0xE7, 0x98, 0x90, 0x43, 0xE7, 0x98, 0x9D, 0x43,\n\t0xE7, 0x98, 0x9F, 0x43, 0xE7, 0x99, 0x82, 0x43,\n\t0xE7, 0x99, 0xA9, 0x43, 0xE7, 0x99, 0xB6, 0x43,\n\t0xE7, 0x99, 0xBD, 0x43, 0xE7, 0x9A, 0xAE, 0x43,\n\t0xE7, 0x9A, 0xBF, 0x43, 0xE7, 0x9B, 0x8A, 0x43,\n\t0xE7, 0x9B, 0x9B, 0x43, 0xE7, 0x9B, 0xA3, 0x43,\n\t0xE7, 0x9B, 0xA7, 0x43, 0xE7, 0x9B, 0xAE, 0x43,\n\t0xE7, 0x9B, 0xB4, 0x43, 0xE7, 0x9C, 0x81, 0x43,\n\t// Bytes 1000 - 103f\n\t0xE7, 0x9C, 0x9E, 0x43, 0xE7, 0x9C, 0x9F, 0x43,\n\t0xE7, 0x9D, 0x80, 0x43, 0xE7, 0x9D, 0x8A, 0x43,\n\t0xE7, 0x9E, 0x8B, 0x43, 0xE7, 0x9E, 0xA7, 0x43,\n\t0xE7, 0x9F, 0x9B, 0x43, 0xE7, 0x9F, 0xA2, 0x43,\n\t0xE7, 0x9F, 0xB3, 0x43, 0xE7, 0xA1, 0x8E, 0x43,\n\t0xE7, 0xA1, 0xAB, 0x43, 0xE7, 0xA2, 0x8C, 0x43,\n\t0xE7, 0xA2, 0x91, 0x43, 0xE7, 0xA3, 0x8A, 0x43,\n\t0xE7, 0xA3, 0x8C, 0x43, 0xE7, 0xA3, 0xBB, 0x43,\n\t// Bytes 1040 - 107f\n\t0xE7, 0xA4, 0xAA, 0x43, 0xE7, 0xA4, 0xBA, 0x43,\n\t0xE7, 0xA4, 0xBC, 0x43, 0xE7, 0xA4, 0xBE, 0x43,\n\t0xE7, 0xA5, 0x88, 0x43, 0xE7, 0xA5, 0x89, 0x43,\n\t0xE7, 0xA5, 0x90, 0x43, 0xE7, 0xA5, 0x96, 0x43,\n\t0xE7, 0xA5, 0x9D, 0x43, 0xE7, 0xA5, 0x9E, 0x43,\n\t0xE7, 0xA5, 0xA5, 0x43, 0xE7, 0xA5, 0xBF, 0x43,\n\t0xE7, 0xA6, 0x81, 0x43, 0xE7, 0xA6, 0x8D, 0x43,\n\t0xE7, 0xA6, 0x8E, 0x43, 0xE7, 0xA6, 0x8F, 0x43,\n\t// Bytes 1080 - 10bf\n\t0xE7, 0xA6, 0xAE, 0x43, 0xE7, 0xA6, 0xB8, 0x43,\n\t0xE7, 0xA6, 0xBE, 0x43, 0xE7, 0xA7, 0x8A, 0x43,\n\t0xE7, 0xA7, 0x98, 0x43, 0xE7, 0xA7, 0xAB, 0x43,\n\t0xE7, 0xA8, 0x9C, 0x43, 0xE7, 0xA9, 0x80, 0x43,\n\t0xE7, 0xA9, 0x8A, 0x43, 0xE7, 0xA9, 0x8F, 0x43,\n\t0xE7, 0xA9, 0xB4, 0x43, 0xE7, 0xA9, 0xBA, 0x43,\n\t0xE7, 0xAA, 0x81, 0x43, 0xE7, 0xAA, 0xB1, 0x43,\n\t0xE7, 0xAB, 0x8B, 0x43, 0xE7, 0xAB, 0xAE, 0x43,\n\t// Bytes 10c0 - 10ff\n\t0xE7, 0xAB, 0xB9, 0x43, 0xE7, 0xAC, 0xA0, 0x43,\n\t0xE7, 0xAE, 0x8F, 0x43, 0xE7, 0xAF, 0x80, 0x43,\n\t0xE7, 0xAF, 0x86, 0x43, 0xE7, 0xAF, 0x89, 0x43,\n\t0xE7, 0xB0, 0xBE, 0x43, 0xE7, 0xB1, 0xA0, 0x43,\n\t0xE7, 0xB1, 0xB3, 0x43, 0xE7, 0xB1, 0xBB, 0x43,\n\t0xE7, 0xB2, 0x92, 0x43, 0xE7, 0xB2, 0xBE, 0x43,\n\t0xE7, 0xB3, 0x92, 0x43, 0xE7, 0xB3, 0x96, 0x43,\n\t0xE7, 0xB3, 0xA3, 0x43, 0xE7, 0xB3, 0xA7, 0x43,\n\t// Bytes 1100 - 113f\n\t0xE7, 0xB3, 0xA8, 0x43, 0xE7, 0xB3, 0xB8, 0x43,\n\t0xE7, 0xB4, 0x80, 0x43, 0xE7, 0xB4, 0x90, 0x43,\n\t0xE7, 0xB4, 0xA2, 0x43, 0xE7, 0xB4, 0xAF, 0x43,\n\t0xE7, 0xB5, 0x82, 0x43, 0xE7, 0xB5, 0x9B, 0x43,\n\t0xE7, 0xB5, 0xA3, 0x43, 0xE7, 0xB6, 0xA0, 0x43,\n\t0xE7, 0xB6, 0xBE, 0x43, 0xE7, 0xB7, 0x87, 0x43,\n\t0xE7, 0xB7, 0xB4, 0x43, 0xE7, 0xB8, 0x82, 0x43,\n\t0xE7, 0xB8, 0x89, 0x43, 0xE7, 0xB8, 0xB7, 0x43,\n\t// Bytes 1140 - 117f\n\t0xE7, 0xB9, 0x81, 0x43, 0xE7, 0xB9, 0x85, 0x43,\n\t0xE7, 0xBC, 0xB6, 0x43, 0xE7, 0xBC, 0xBE, 0x43,\n\t0xE7, 0xBD, 0x91, 0x43, 0xE7, 0xBD, 0xB2, 0x43,\n\t0xE7, 0xBD, 0xB9, 0x43, 0xE7, 0xBD, 0xBA, 0x43,\n\t0xE7, 0xBE, 0x85, 0x43, 0xE7, 0xBE, 0x8A, 0x43,\n\t0xE7, 0xBE, 0x95, 0x43, 0xE7, 0xBE, 0x9A, 0x43,\n\t0xE7, 0xBE, 0xBD, 0x43, 0xE7, 0xBF, 0xBA, 0x43,\n\t0xE8, 0x80, 0x81, 0x43, 0xE8, 0x80, 0x85, 0x43,\n\t// Bytes 1180 - 11bf\n\t0xE8, 0x80, 0x8C, 0x43, 0xE8, 0x80, 0x92, 0x43,\n\t0xE8, 0x80, 0xB3, 0x43, 0xE8, 0x81, 0x86, 0x43,\n\t0xE8, 0x81, 0xA0, 0x43, 0xE8, 0x81, 0xAF, 0x43,\n\t0xE8, 0x81, 0xB0, 0x43, 0xE8, 0x81, 0xBE, 0x43,\n\t0xE8, 0x81, 0xBF, 0x43, 0xE8, 0x82, 0x89, 0x43,\n\t0xE8, 0x82, 0x8B, 0x43, 0xE8, 0x82, 0xAD, 0x43,\n\t0xE8, 0x82, 0xB2, 0x43, 0xE8, 0x84, 0x83, 0x43,\n\t0xE8, 0x84, 0xBE, 0x43, 0xE8, 0x87, 0x98, 0x43,\n\t// Bytes 11c0 - 11ff\n\t0xE8, 0x87, 0xA3, 0x43, 0xE8, 0x87, 0xA8, 0x43,\n\t0xE8, 0x87, 0xAA, 0x43, 0xE8, 0x87, 0xAD, 0x43,\n\t0xE8, 0x87, 0xB3, 0x43, 0xE8, 0x87, 0xBC, 0x43,\n\t0xE8, 0x88, 0x81, 0x43, 0xE8, 0x88, 0x84, 0x43,\n\t0xE8, 0x88, 0x8C, 0x43, 0xE8, 0x88, 0x98, 0x43,\n\t0xE8, 0x88, 0x9B, 0x43, 0xE8, 0x88, 0x9F, 0x43,\n\t0xE8, 0x89, 0xAE, 0x43, 0xE8, 0x89, 0xAF, 0x43,\n\t0xE8, 0x89, 0xB2, 0x43, 0xE8, 0x89, 0xB8, 0x43,\n\t// Bytes 1200 - 123f\n\t0xE8, 0x89, 0xB9, 0x43, 0xE8, 0x8A, 0x8B, 0x43,\n\t0xE8, 0x8A, 0x91, 0x43, 0xE8, 0x8A, 0x9D, 0x43,\n\t0xE8, 0x8A, 0xB1, 0x43, 0xE8, 0x8A, 0xB3, 0x43,\n\t0xE8, 0x8A, 0xBD, 0x43, 0xE8, 0x8B, 0xA5, 0x43,\n\t0xE8, 0x8B, 0xA6, 0x43, 0xE8, 0x8C, 0x9D, 0x43,\n\t0xE8, 0x8C, 0xA3, 0x43, 0xE8, 0x8C, 0xB6, 0x43,\n\t0xE8, 0x8D, 0x92, 0x43, 0xE8, 0x8D, 0x93, 0x43,\n\t0xE8, 0x8D, 0xA3, 0x43, 0xE8, 0x8E, 0xAD, 0x43,\n\t// Bytes 1240 - 127f\n\t0xE8, 0x8E, 0xBD, 0x43, 0xE8, 0x8F, 0x89, 0x43,\n\t0xE8, 0x8F, 0x8A, 0x43, 0xE8, 0x8F, 0x8C, 0x43,\n\t0xE8, 0x8F, 0x9C, 0x43, 0xE8, 0x8F, 0xA7, 0x43,\n\t0xE8, 0x8F, 0xAF, 0x43, 0xE8, 0x8F, 0xB1, 0x43,\n\t0xE8, 0x90, 0xBD, 0x43, 0xE8, 0x91, 0x89, 0x43,\n\t0xE8, 0x91, 0x97, 0x43, 0xE8, 0x93, 0xAE, 0x43,\n\t0xE8, 0x93, 0xB1, 0x43, 0xE8, 0x93, 0xB3, 0x43,\n\t0xE8, 0x93, 0xBC, 0x43, 0xE8, 0x94, 0x96, 0x43,\n\t// Bytes 1280 - 12bf\n\t0xE8, 0x95, 0xA4, 0x43, 0xE8, 0x97, 0x8D, 0x43,\n\t0xE8, 0x97, 0xBA, 0x43, 0xE8, 0x98, 0x86, 0x43,\n\t0xE8, 0x98, 0x92, 0x43, 0xE8, 0x98, 0xAD, 0x43,\n\t0xE8, 0x98, 0xBF, 0x43, 0xE8, 0x99, 0x8D, 0x43,\n\t0xE8, 0x99, 0x90, 0x43, 0xE8, 0x99, 0x9C, 0x43,\n\t0xE8, 0x99, 0xA7, 0x43, 0xE8, 0x99, 0xA9, 0x43,\n\t0xE8, 0x99, 0xAB, 0x43, 0xE8, 0x9A, 0x88, 0x43,\n\t0xE8, 0x9A, 0xA9, 0x43, 0xE8, 0x9B, 0xA2, 0x43,\n\t// Bytes 12c0 - 12ff\n\t0xE8, 0x9C, 0x8E, 0x43, 0xE8, 0x9C, 0xA8, 0x43,\n\t0xE8, 0x9D, 0xAB, 0x43, 0xE8, 0x9D, 0xB9, 0x43,\n\t0xE8, 0x9E, 0x86, 0x43, 0xE8, 0x9E, 0xBA, 0x43,\n\t0xE8, 0x9F, 0xA1, 0x43, 0xE8, 0xA0, 0x81, 0x43,\n\t0xE8, 0xA0, 0x9F, 0x43, 0xE8, 0xA1, 0x80, 0x43,\n\t0xE8, 0xA1, 0x8C, 0x43, 0xE8, 0xA1, 0xA0, 0x43,\n\t0xE8, 0xA1, 0xA3, 0x43, 0xE8, 0xA3, 0x82, 0x43,\n\t0xE8, 0xA3, 0x8F, 0x43, 0xE8, 0xA3, 0x97, 0x43,\n\t// Bytes 1300 - 133f\n\t0xE8, 0xA3, 0x9E, 0x43, 0xE8, 0xA3, 0xA1, 0x43,\n\t0xE8, 0xA3, 0xB8, 0x43, 0xE8, 0xA3, 0xBA, 0x43,\n\t0xE8, 0xA4, 0x90, 0x43, 0xE8, 0xA5, 0x81, 0x43,\n\t0xE8, 0xA5, 0xA4, 0x43, 0xE8, 0xA5, 0xBE, 0x43,\n\t0xE8, 0xA6, 0x86, 0x43, 0xE8, 0xA6, 0x8B, 0x43,\n\t0xE8, 0xA6, 0x96, 0x43, 0xE8, 0xA7, 0x92, 0x43,\n\t0xE8, 0xA7, 0xA3, 0x43, 0xE8, 0xA8, 0x80, 0x43,\n\t0xE8, 0xAA, 0xA0, 0x43, 0xE8, 0xAA, 0xAA, 0x43,\n\t// Bytes 1340 - 137f\n\t0xE8, 0xAA, 0xBF, 0x43, 0xE8, 0xAB, 0x8B, 0x43,\n\t0xE8, 0xAB, 0x92, 0x43, 0xE8, 0xAB, 0x96, 0x43,\n\t0xE8, 0xAB, 0xAD, 0x43, 0xE8, 0xAB, 0xB8, 0x43,\n\t0xE8, 0xAB, 0xBE, 0x43, 0xE8, 0xAC, 0x81, 0x43,\n\t0xE8, 0xAC, 0xB9, 0x43, 0xE8, 0xAD, 0x98, 0x43,\n\t0xE8, 0xAE, 0x80, 0x43, 0xE8, 0xAE, 0x8A, 0x43,\n\t0xE8, 0xB0, 0xB7, 0x43, 0xE8, 0xB1, 0x86, 0x43,\n\t0xE8, 0xB1, 0x88, 0x43, 0xE8, 0xB1, 0x95, 0x43,\n\t// Bytes 1380 - 13bf\n\t0xE8, 0xB1, 0xB8, 0x43, 0xE8, 0xB2, 0x9D, 0x43,\n\t0xE8, 0xB2, 0xA1, 0x43, 0xE8, 0xB2, 0xA9, 0x43,\n\t0xE8, 0xB2, 0xAB, 0x43, 0xE8, 0xB3, 0x81, 0x43,\n\t0xE8, 0xB3, 0x82, 0x43, 0xE8, 0xB3, 0x87, 0x43,\n\t0xE8, 0xB3, 0x88, 0x43, 0xE8, 0xB3, 0x93, 0x43,\n\t0xE8, 0xB4, 0x88, 0x43, 0xE8, 0xB4, 0x9B, 0x43,\n\t0xE8, 0xB5, 0xA4, 0x43, 0xE8, 0xB5, 0xB0, 0x43,\n\t0xE8, 0xB5, 0xB7, 0x43, 0xE8, 0xB6, 0xB3, 0x43,\n\t// Bytes 13c0 - 13ff\n\t0xE8, 0xB6, 0xBC, 0x43, 0xE8, 0xB7, 0x8B, 0x43,\n\t0xE8, 0xB7, 0xAF, 0x43, 0xE8, 0xB7, 0xB0, 0x43,\n\t0xE8, 0xBA, 0xAB, 0x43, 0xE8, 0xBB, 0x8A, 0x43,\n\t0xE8, 0xBB, 0x94, 0x43, 0xE8, 0xBC, 0xA6, 0x43,\n\t0xE8, 0xBC, 0xAA, 0x43, 0xE8, 0xBC, 0xB8, 0x43,\n\t0xE8, 0xBC, 0xBB, 0x43, 0xE8, 0xBD, 0xA2, 0x43,\n\t0xE8, 0xBE, 0x9B, 0x43, 0xE8, 0xBE, 0x9E, 0x43,\n\t0xE8, 0xBE, 0xB0, 0x43, 0xE8, 0xBE, 0xB5, 0x43,\n\t// Bytes 1400 - 143f\n\t0xE8, 0xBE, 0xB6, 0x43, 0xE9, 0x80, 0xA3, 0x43,\n\t0xE9, 0x80, 0xB8, 0x43, 0xE9, 0x81, 0x8A, 0x43,\n\t0xE9, 0x81, 0xA9, 0x43, 0xE9, 0x81, 0xB2, 0x43,\n\t0xE9, 0x81, 0xBC, 0x43, 0xE9, 0x82, 0x8F, 0x43,\n\t0xE9, 0x82, 0x91, 0x43, 0xE9, 0x82, 0x94, 0x43,\n\t0xE9, 0x83, 0x8E, 0x43, 0xE9, 0x83, 0x9E, 0x43,\n\t0xE9, 0x83, 0xB1, 0x43, 0xE9, 0x83, 0xBD, 0x43,\n\t0xE9, 0x84, 0x91, 0x43, 0xE9, 0x84, 0x9B, 0x43,\n\t// Bytes 1440 - 147f\n\t0xE9, 0x85, 0x89, 0x43, 0xE9, 0x85, 0x8D, 0x43,\n\t0xE9, 0x85, 0xAA, 0x43, 0xE9, 0x86, 0x99, 0x43,\n\t0xE9, 0x86, 0xB4, 0x43, 0xE9, 0x87, 0x86, 0x43,\n\t0xE9, 0x87, 0x8C, 0x43, 0xE9, 0x87, 0x8F, 0x43,\n\t0xE9, 0x87, 0x91, 0x43, 0xE9, 0x88, 0xB4, 0x43,\n\t0xE9, 0x88, 0xB8, 0x43, 0xE9, 0x89, 0xB6, 0x43,\n\t0xE9, 0x89, 0xBC, 0x43, 0xE9, 0x8B, 0x97, 0x43,\n\t0xE9, 0x8B, 0x98, 0x43, 0xE9, 0x8C, 0x84, 0x43,\n\t// Bytes 1480 - 14bf\n\t0xE9, 0x8D, 0x8A, 0x43, 0xE9, 0x8F, 0xB9, 0x43,\n\t0xE9, 0x90, 0x95, 0x43, 0xE9, 0x95, 0xB7, 0x43,\n\t0xE9, 0x96, 0x80, 0x43, 0xE9, 0x96, 0x8B, 0x43,\n\t0xE9, 0x96, 0xAD, 0x43, 0xE9, 0x96, 0xB7, 0x43,\n\t0xE9, 0x98, 0x9C, 0x43, 0xE9, 0x98, 0xAE, 0x43,\n\t0xE9, 0x99, 0x8B, 0x43, 0xE9, 0x99, 0x8D, 0x43,\n\t0xE9, 0x99, 0xB5, 0x43, 0xE9, 0x99, 0xB8, 0x43,\n\t0xE9, 0x99, 0xBC, 0x43, 0xE9, 0x9A, 0x86, 0x43,\n\t// Bytes 14c0 - 14ff\n\t0xE9, 0x9A, 0xA3, 0x43, 0xE9, 0x9A, 0xB6, 0x43,\n\t0xE9, 0x9A, 0xB7, 0x43, 0xE9, 0x9A, 0xB8, 0x43,\n\t0xE9, 0x9A, 0xB9, 0x43, 0xE9, 0x9B, 0x83, 0x43,\n\t0xE9, 0x9B, 0xA2, 0x43, 0xE9, 0x9B, 0xA3, 0x43,\n\t0xE9, 0x9B, 0xA8, 0x43, 0xE9, 0x9B, 0xB6, 0x43,\n\t0xE9, 0x9B, 0xB7, 0x43, 0xE9, 0x9C, 0xA3, 0x43,\n\t0xE9, 0x9C, 0xB2, 0x43, 0xE9, 0x9D, 0x88, 0x43,\n\t0xE9, 0x9D, 0x91, 0x43, 0xE9, 0x9D, 0x96, 0x43,\n\t// Bytes 1500 - 153f\n\t0xE9, 0x9D, 0x9E, 0x43, 0xE9, 0x9D, 0xA2, 0x43,\n\t0xE9, 0x9D, 0xA9, 0x43, 0xE9, 0x9F, 0x8B, 0x43,\n\t0xE9, 0x9F, 0x9B, 0x43, 0xE9, 0x9F, 0xA0, 0x43,\n\t0xE9, 0x9F, 0xAD, 0x43, 0xE9, 0x9F, 0xB3, 0x43,\n\t0xE9, 0x9F, 0xBF, 0x43, 0xE9, 0xA0, 0x81, 0x43,\n\t0xE9, 0xA0, 0x85, 0x43, 0xE9, 0xA0, 0x8B, 0x43,\n\t0xE9, 0xA0, 0x98, 0x43, 0xE9, 0xA0, 0xA9, 0x43,\n\t0xE9, 0xA0, 0xBB, 0x43, 0xE9, 0xA1, 0x9E, 0x43,\n\t// Bytes 1540 - 157f\n\t0xE9, 0xA2, 0xA8, 0x43, 0xE9, 0xA3, 0x9B, 0x43,\n\t0xE9, 0xA3, 0x9F, 0x43, 0xE9, 0xA3, 0xA2, 0x43,\n\t0xE9, 0xA3, 0xAF, 0x43, 0xE9, 0xA3, 0xBC, 0x43,\n\t0xE9, 0xA4, 0xA8, 0x43, 0xE9, 0xA4, 0xA9, 0x43,\n\t0xE9, 0xA6, 0x96, 0x43, 0xE9, 0xA6, 0x99, 0x43,\n\t0xE9, 0xA6, 0xA7, 0x43, 0xE9, 0xA6, 0xAC, 0x43,\n\t0xE9, 0xA7, 0x82, 0x43, 0xE9, 0xA7, 0xB1, 0x43,\n\t0xE9, 0xA7, 0xBE, 0x43, 0xE9, 0xA9, 0xAA, 0x43,\n\t// Bytes 1580 - 15bf\n\t0xE9, 0xAA, 0xA8, 0x43, 0xE9, 0xAB, 0x98, 0x43,\n\t0xE9, 0xAB, 0x9F, 0x43, 0xE9, 0xAC, 0x92, 0x43,\n\t0xE9, 0xAC, 0xA5, 0x43, 0xE9, 0xAC, 0xAF, 0x43,\n\t0xE9, 0xAC, 0xB2, 0x43, 0xE9, 0xAC, 0xBC, 0x43,\n\t0xE9, 0xAD, 0x9A, 0x43, 0xE9, 0xAD, 0xAF, 0x43,\n\t0xE9, 0xB1, 0x80, 0x43, 0xE9, 0xB1, 0x97, 0x43,\n\t0xE9, 0xB3, 0xA5, 0x43, 0xE9, 0xB3, 0xBD, 0x43,\n\t0xE9, 0xB5, 0xA7, 0x43, 0xE9, 0xB6, 0xB4, 0x43,\n\t// Bytes 15c0 - 15ff\n\t0xE9, 0xB7, 0xBA, 0x43, 0xE9, 0xB8, 0x9E, 0x43,\n\t0xE9, 0xB9, 0xB5, 0x43, 0xE9, 0xB9, 0xBF, 0x43,\n\t0xE9, 0xBA, 0x97, 0x43, 0xE9, 0xBA, 0x9F, 0x43,\n\t0xE9, 0xBA, 0xA5, 0x43, 0xE9, 0xBA, 0xBB, 0x43,\n\t0xE9, 0xBB, 0x83, 0x43, 0xE9, 0xBB, 0x8D, 0x43,\n\t0xE9, 0xBB, 0x8E, 0x43, 0xE9, 0xBB, 0x91, 0x43,\n\t0xE9, 0xBB, 0xB9, 0x43, 0xE9, 0xBB, 0xBD, 0x43,\n\t0xE9, 0xBB, 0xBE, 0x43, 0xE9, 0xBC, 0x85, 0x43,\n\t// Bytes 1600 - 163f\n\t0xE9, 0xBC, 0x8E, 0x43, 0xE9, 0xBC, 0x8F, 0x43,\n\t0xE9, 0xBC, 0x93, 0x43, 0xE9, 0xBC, 0x96, 0x43,\n\t0xE9, 0xBC, 0xA0, 0x43, 0xE9, 0xBC, 0xBB, 0x43,\n\t0xE9, 0xBD, 0x83, 0x43, 0xE9, 0xBD, 0x8A, 0x43,\n\t0xE9, 0xBD, 0x92, 0x43, 0xE9, 0xBE, 0x8D, 0x43,\n\t0xE9, 0xBE, 0x8E, 0x43, 0xE9, 0xBE, 0x9C, 0x43,\n\t0xE9, 0xBE, 0x9F, 0x43, 0xE9, 0xBE, 0xA0, 0x43,\n\t0xEA, 0x9C, 0xA7, 0x43, 0xEA, 0x9D, 0xAF, 0x43,\n\t// Bytes 1640 - 167f\n\t0xEA, 0xAC, 0xB7, 0x43, 0xEA, 0xAD, 0x92, 0x44,\n\t0xF0, 0xA0, 0x84, 0xA2, 0x44, 0xF0, 0xA0, 0x94,\n\t0x9C, 0x44, 0xF0, 0xA0, 0x94, 0xA5, 0x44, 0xF0,\n\t0xA0, 0x95, 0x8B, 0x44, 0xF0, 0xA0, 0x98, 0xBA,\n\t0x44, 0xF0, 0xA0, 0xA0, 0x84, 0x44, 0xF0, 0xA0,\n\t0xA3, 0x9E, 0x44, 0xF0, 0xA0, 0xA8, 0xAC, 0x44,\n\t0xF0, 0xA0, 0xAD, 0xA3, 0x44, 0xF0, 0xA1, 0x93,\n\t0xA4, 0x44, 0xF0, 0xA1, 0x9A, 0xA8, 0x44, 0xF0,\n\t// Bytes 1680 - 16bf\n\t0xA1, 0x9B, 0xAA, 0x44, 0xF0, 0xA1, 0xA7, 0x88,\n\t0x44, 0xF0, 0xA1, 0xAC, 0x98, 0x44, 0xF0, 0xA1,\n\t0xB4, 0x8B, 0x44, 0xF0, 0xA1, 0xB7, 0xA4, 0x44,\n\t0xF0, 0xA1, 0xB7, 0xA6, 0x44, 0xF0, 0xA2, 0x86,\n\t0x83, 0x44, 0xF0, 0xA2, 0x86, 0x9F, 0x44, 0xF0,\n\t0xA2, 0x8C, 0xB1, 0x44, 0xF0, 0xA2, 0x9B, 0x94,\n\t0x44, 0xF0, 0xA2, 0xA1, 0x84, 0x44, 0xF0, 0xA2,\n\t0xA1, 0x8A, 0x44, 0xF0, 0xA2, 0xAC, 0x8C, 0x44,\n\t// Bytes 16c0 - 16ff\n\t0xF0, 0xA2, 0xAF, 0xB1, 0x44, 0xF0, 0xA3, 0x80,\n\t0x8A, 0x44, 0xF0, 0xA3, 0x8A, 0xB8, 0x44, 0xF0,\n\t0xA3, 0x8D, 0x9F, 0x44, 0xF0, 0xA3, 0x8E, 0x93,\n\t0x44, 0xF0, 0xA3, 0x8E, 0x9C, 0x44, 0xF0, 0xA3,\n\t0x8F, 0x83, 0x44, 0xF0, 0xA3, 0x8F, 0x95, 0x44,\n\t0xF0, 0xA3, 0x91, 0xAD, 0x44, 0xF0, 0xA3, 0x9A,\n\t0xA3, 0x44, 0xF0, 0xA3, 0xA2, 0xA7, 0x44, 0xF0,\n\t0xA3, 0xAA, 0x8D, 0x44, 0xF0, 0xA3, 0xAB, 0xBA,\n\t// Bytes 1700 - 173f\n\t0x44, 0xF0, 0xA3, 0xB2, 0xBC, 0x44, 0xF0, 0xA3,\n\t0xB4, 0x9E, 0x44, 0xF0, 0xA3, 0xBB, 0x91, 0x44,\n\t0xF0, 0xA3, 0xBD, 0x9E, 0x44, 0xF0, 0xA3, 0xBE,\n\t0x8E, 0x44, 0xF0, 0xA4, 0x89, 0xA3, 0x44, 0xF0,\n\t0xA4, 0x8B, 0xAE, 0x44, 0xF0, 0xA4, 0x8E, 0xAB,\n\t0x44, 0xF0, 0xA4, 0x98, 0x88, 0x44, 0xF0, 0xA4,\n\t0x9C, 0xB5, 0x44, 0xF0, 0xA4, 0xA0, 0x94, 0x44,\n\t0xF0, 0xA4, 0xB0, 0xB6, 0x44, 0xF0, 0xA4, 0xB2,\n\t// Bytes 1740 - 177f\n\t0x92, 0x44, 0xF0, 0xA4, 0xBE, 0xA1, 0x44, 0xF0,\n\t0xA4, 0xBE, 0xB8, 0x44, 0xF0, 0xA5, 0x81, 0x84,\n\t0x44, 0xF0, 0xA5, 0x83, 0xB2, 0x44, 0xF0, 0xA5,\n\t0x83, 0xB3, 0x44, 0xF0, 0xA5, 0x84, 0x99, 0x44,\n\t0xF0, 0xA5, 0x84, 0xB3, 0x44, 0xF0, 0xA5, 0x89,\n\t0x89, 0x44, 0xF0, 0xA5, 0x90, 0x9D, 0x44, 0xF0,\n\t0xA5, 0x98, 0xA6, 0x44, 0xF0, 0xA5, 0x9A, 0x9A,\n\t0x44, 0xF0, 0xA5, 0x9B, 0x85, 0x44, 0xF0, 0xA5,\n\t// Bytes 1780 - 17bf\n\t0xA5, 0xBC, 0x44, 0xF0, 0xA5, 0xAA, 0xA7, 0x44,\n\t0xF0, 0xA5, 0xAE, 0xAB, 0x44, 0xF0, 0xA5, 0xB2,\n\t0x80, 0x44, 0xF0, 0xA5, 0xB3, 0x90, 0x44, 0xF0,\n\t0xA5, 0xBE, 0x86, 0x44, 0xF0, 0xA6, 0x87, 0x9A,\n\t0x44, 0xF0, 0xA6, 0x88, 0xA8, 0x44, 0xF0, 0xA6,\n\t0x89, 0x87, 0x44, 0xF0, 0xA6, 0x8B, 0x99, 0x44,\n\t0xF0, 0xA6, 0x8C, 0xBE, 0x44, 0xF0, 0xA6, 0x93,\n\t0x9A, 0x44, 0xF0, 0xA6, 0x94, 0xA3, 0x44, 0xF0,\n\t// Bytes 17c0 - 17ff\n\t0xA6, 0x96, 0xA8, 0x44, 0xF0, 0xA6, 0x9E, 0xA7,\n\t0x44, 0xF0, 0xA6, 0x9E, 0xB5, 0x44, 0xF0, 0xA6,\n\t0xAC, 0xBC, 0x44, 0xF0, 0xA6, 0xB0, 0xB6, 0x44,\n\t0xF0, 0xA6, 0xB3, 0x95, 0x44, 0xF0, 0xA6, 0xB5,\n\t0xAB, 0x44, 0xF0, 0xA6, 0xBC, 0xAC, 0x44, 0xF0,\n\t0xA6, 0xBE, 0xB1, 0x44, 0xF0, 0xA7, 0x83, 0x92,\n\t0x44, 0xF0, 0xA7, 0x8F, 0x8A, 0x44, 0xF0, 0xA7,\n\t0x99, 0xA7, 0x44, 0xF0, 0xA7, 0xA2, 0xAE, 0x44,\n\t// Bytes 1800 - 183f\n\t0xF0, 0xA7, 0xA5, 0xA6, 0x44, 0xF0, 0xA7, 0xB2,\n\t0xA8, 0x44, 0xF0, 0xA7, 0xBB, 0x93, 0x44, 0xF0,\n\t0xA7, 0xBC, 0xAF, 0x44, 0xF0, 0xA8, 0x97, 0x92,\n\t0x44, 0xF0, 0xA8, 0x97, 0xAD, 0x44, 0xF0, 0xA8,\n\t0x9C, 0xAE, 0x44, 0xF0, 0xA8, 0xAF, 0xBA, 0x44,\n\t0xF0, 0xA8, 0xB5, 0xB7, 0x44, 0xF0, 0xA9, 0x85,\n\t0x85, 0x44, 0xF0, 0xA9, 0x87, 0x9F, 0x44, 0xF0,\n\t0xA9, 0x88, 0x9A, 0x44, 0xF0, 0xA9, 0x90, 0x8A,\n\t// Bytes 1840 - 187f\n\t0x44, 0xF0, 0xA9, 0x92, 0x96, 0x44, 0xF0, 0xA9,\n\t0x96, 0xB6, 0x44, 0xF0, 0xA9, 0xAC, 0xB0, 0x44,\n\t0xF0, 0xAA, 0x83, 0x8E, 0x44, 0xF0, 0xAA, 0x84,\n\t0x85, 0x44, 0xF0, 0xAA, 0x88, 0x8E, 0x44, 0xF0,\n\t0xAA, 0x8A, 0x91, 0x44, 0xF0, 0xAA, 0x8E, 0x92,\n\t0x44, 0xF0, 0xAA, 0x98, 0x80, 0x42, 0x21, 0x21,\n\t0x42, 0x21, 0x3F, 0x42, 0x2E, 0x2E, 0x42, 0x30,\n\t0x2C, 0x42, 0x30, 0x2E, 0x42, 0x31, 0x2C, 0x42,\n\t// Bytes 1880 - 18bf\n\t0x31, 0x2E, 0x42, 0x31, 0x30, 0x42, 0x31, 0x31,\n\t0x42, 0x31, 0x32, 0x42, 0x31, 0x33, 0x42, 0x31,\n\t0x34, 0x42, 0x31, 0x35, 0x42, 0x31, 0x36, 0x42,\n\t0x31, 0x37, 0x42, 0x31, 0x38, 0x42, 0x31, 0x39,\n\t0x42, 0x32, 0x2C, 0x42, 0x32, 0x2E, 0x42, 0x32,\n\t0x30, 0x42, 0x32, 0x31, 0x42, 0x32, 0x32, 0x42,\n\t0x32, 0x33, 0x42, 0x32, 0x34, 0x42, 0x32, 0x35,\n\t0x42, 0x32, 0x36, 0x42, 0x32, 0x37, 0x42, 0x32,\n\t// Bytes 18c0 - 18ff\n\t0x38, 0x42, 0x32, 0x39, 0x42, 0x33, 0x2C, 0x42,\n\t0x33, 0x2E, 0x42, 0x33, 0x30, 0x42, 0x33, 0x31,\n\t0x42, 0x33, 0x32, 0x42, 0x33, 0x33, 0x42, 0x33,\n\t0x34, 0x42, 0x33, 0x35, 0x42, 0x33, 0x36, 0x42,\n\t0x33, 0x37, 0x42, 0x33, 0x38, 0x42, 0x33, 0x39,\n\t0x42, 0x34, 0x2C, 0x42, 0x34, 0x2E, 0x42, 0x34,\n\t0x30, 0x42, 0x34, 0x31, 0x42, 0x34, 0x32, 0x42,\n\t0x34, 0x33, 0x42, 0x34, 0x34, 0x42, 0x34, 0x35,\n\t// Bytes 1900 - 193f\n\t0x42, 0x34, 0x36, 0x42, 0x34, 0x37, 0x42, 0x34,\n\t0x38, 0x42, 0x34, 0x39, 0x42, 0x35, 0x2C, 0x42,\n\t0x35, 0x2E, 0x42, 0x35, 0x30, 0x42, 0x36, 0x2C,\n\t0x42, 0x36, 0x2E, 0x42, 0x37, 0x2C, 0x42, 0x37,\n\t0x2E, 0x42, 0x38, 0x2C, 0x42, 0x38, 0x2E, 0x42,\n\t0x39, 0x2C, 0x42, 0x39, 0x2E, 0x42, 0x3D, 0x3D,\n\t0x42, 0x3F, 0x21, 0x42, 0x3F, 0x3F, 0x42, 0x41,\n\t0x55, 0x42, 0x42, 0x71, 0x42, 0x43, 0x44, 0x42,\n\t// Bytes 1940 - 197f\n\t0x44, 0x4A, 0x42, 0x44, 0x5A, 0x42, 0x44, 0x7A,\n\t0x42, 0x47, 0x42, 0x42, 0x47, 0x79, 0x42, 0x48,\n\t0x50, 0x42, 0x48, 0x56, 0x42, 0x48, 0x67, 0x42,\n\t0x48, 0x7A, 0x42, 0x49, 0x49, 0x42, 0x49, 0x4A,\n\t0x42, 0x49, 0x55, 0x42, 0x49, 0x56, 0x42, 0x49,\n\t0x58, 0x42, 0x4B, 0x42, 0x42, 0x4B, 0x4B, 0x42,\n\t0x4B, 0x4D, 0x42, 0x4C, 0x4A, 0x42, 0x4C, 0x6A,\n\t0x42, 0x4D, 0x42, 0x42, 0x4D, 0x43, 0x42, 0x4D,\n\t// Bytes 1980 - 19bf\n\t0x44, 0x42, 0x4D, 0x56, 0x42, 0x4D, 0x57, 0x42,\n\t0x4E, 0x4A, 0x42, 0x4E, 0x6A, 0x42, 0x4E, 0x6F,\n\t0x42, 0x50, 0x48, 0x42, 0x50, 0x52, 0x42, 0x50,\n\t0x61, 0x42, 0x52, 0x73, 0x42, 0x53, 0x44, 0x42,\n\t0x53, 0x4D, 0x42, 0x53, 0x53, 0x42, 0x53, 0x76,\n\t0x42, 0x54, 0x4D, 0x42, 0x56, 0x49, 0x42, 0x57,\n\t0x43, 0x42, 0x57, 0x5A, 0x42, 0x57, 0x62, 0x42,\n\t0x58, 0x49, 0x42, 0x63, 0x63, 0x42, 0x63, 0x64,\n\t// Bytes 19c0 - 19ff\n\t0x42, 0x63, 0x6D, 0x42, 0x64, 0x42, 0x42, 0x64,\n\t0x61, 0x42, 0x64, 0x6C, 0x42, 0x64, 0x6D, 0x42,\n\t0x64, 0x7A, 0x42, 0x65, 0x56, 0x42, 0x66, 0x66,\n\t0x42, 0x66, 0x69, 0x42, 0x66, 0x6C, 0x42, 0x66,\n\t0x6D, 0x42, 0x68, 0x61, 0x42, 0x69, 0x69, 0x42,\n\t0x69, 0x6A, 0x42, 0x69, 0x6E, 0x42, 0x69, 0x76,\n\t0x42, 0x69, 0x78, 0x42, 0x6B, 0x41, 0x42, 0x6B,\n\t0x56, 0x42, 0x6B, 0x57, 0x42, 0x6B, 0x67, 0x42,\n\t// Bytes 1a00 - 1a3f\n\t0x6B, 0x6C, 0x42, 0x6B, 0x6D, 0x42, 0x6B, 0x74,\n\t0x42, 0x6C, 0x6A, 0x42, 0x6C, 0x6D, 0x42, 0x6C,\n\t0x6E, 0x42, 0x6C, 0x78, 0x42, 0x6D, 0x32, 0x42,\n\t0x6D, 0x33, 0x42, 0x6D, 0x41, 0x42, 0x6D, 0x56,\n\t0x42, 0x6D, 0x57, 0x42, 0x6D, 0x62, 0x42, 0x6D,\n\t0x67, 0x42, 0x6D, 0x6C, 0x42, 0x6D, 0x6D, 0x42,\n\t0x6D, 0x73, 0x42, 0x6E, 0x41, 0x42, 0x6E, 0x46,\n\t0x42, 0x6E, 0x56, 0x42, 0x6E, 0x57, 0x42, 0x6E,\n\t// Bytes 1a40 - 1a7f\n\t0x6A, 0x42, 0x6E, 0x6D, 0x42, 0x6E, 0x73, 0x42,\n\t0x6F, 0x56, 0x42, 0x70, 0x41, 0x42, 0x70, 0x46,\n\t0x42, 0x70, 0x56, 0x42, 0x70, 0x57, 0x42, 0x70,\n\t0x63, 0x42, 0x70, 0x73, 0x42, 0x73, 0x72, 0x42,\n\t0x73, 0x74, 0x42, 0x76, 0x69, 0x42, 0x78, 0x69,\n\t0x43, 0x28, 0x31, 0x29, 0x43, 0x28, 0x32, 0x29,\n\t0x43, 0x28, 0x33, 0x29, 0x43, 0x28, 0x34, 0x29,\n\t0x43, 0x28, 0x35, 0x29, 0x43, 0x28, 0x36, 0x29,\n\t// Bytes 1a80 - 1abf\n\t0x43, 0x28, 0x37, 0x29, 0x43, 0x28, 0x38, 0x29,\n\t0x43, 0x28, 0x39, 0x29, 0x43, 0x28, 0x41, 0x29,\n\t0x43, 0x28, 0x42, 0x29, 0x43, 0x28, 0x43, 0x29,\n\t0x43, 0x28, 0x44, 0x29, 0x43, 0x28, 0x45, 0x29,\n\t0x43, 0x28, 0x46, 0x29, 0x43, 0x28, 0x47, 0x29,\n\t0x43, 0x28, 0x48, 0x29, 0x43, 0x28, 0x49, 0x29,\n\t0x43, 0x28, 0x4A, 0x29, 0x43, 0x28, 0x4B, 0x29,\n\t0x43, 0x28, 0x4C, 0x29, 0x43, 0x28, 0x4D, 0x29,\n\t// Bytes 1ac0 - 1aff\n\t0x43, 0x28, 0x4E, 0x29, 0x43, 0x28, 0x4F, 0x29,\n\t0x43, 0x28, 0x50, 0x29, 0x43, 0x28, 0x51, 0x29,\n\t0x43, 0x28, 0x52, 0x29, 0x43, 0x28, 0x53, 0x29,\n\t0x43, 0x28, 0x54, 0x29, 0x43, 0x28, 0x55, 0x29,\n\t0x43, 0x28, 0x56, 0x29, 0x43, 0x28, 0x57, 0x29,\n\t0x43, 0x28, 0x58, 0x29, 0x43, 0x28, 0x59, 0x29,\n\t0x43, 0x28, 0x5A, 0x29, 0x43, 0x28, 0x61, 0x29,\n\t0x43, 0x28, 0x62, 0x29, 0x43, 0x28, 0x63, 0x29,\n\t// Bytes 1b00 - 1b3f\n\t0x43, 0x28, 0x64, 0x29, 0x43, 0x28, 0x65, 0x29,\n\t0x43, 0x28, 0x66, 0x29, 0x43, 0x28, 0x67, 0x29,\n\t0x43, 0x28, 0x68, 0x29, 0x43, 0x28, 0x69, 0x29,\n\t0x43, 0x28, 0x6A, 0x29, 0x43, 0x28, 0x6B, 0x29,\n\t0x43, 0x28, 0x6C, 0x29, 0x43, 0x28, 0x6D, 0x29,\n\t0x43, 0x28, 0x6E, 0x29, 0x43, 0x28, 0x6F, 0x29,\n\t0x43, 0x28, 0x70, 0x29, 0x43, 0x28, 0x71, 0x29,\n\t0x43, 0x28, 0x72, 0x29, 0x43, 0x28, 0x73, 0x29,\n\t// Bytes 1b40 - 1b7f\n\t0x43, 0x28, 0x74, 0x29, 0x43, 0x28, 0x75, 0x29,\n\t0x43, 0x28, 0x76, 0x29, 0x43, 0x28, 0x77, 0x29,\n\t0x43, 0x28, 0x78, 0x29, 0x43, 0x28, 0x79, 0x29,\n\t0x43, 0x28, 0x7A, 0x29, 0x43, 0x2E, 0x2E, 0x2E,\n\t0x43, 0x31, 0x30, 0x2E, 0x43, 0x31, 0x31, 0x2E,\n\t0x43, 0x31, 0x32, 0x2E, 0x43, 0x31, 0x33, 0x2E,\n\t0x43, 0x31, 0x34, 0x2E, 0x43, 0x31, 0x35, 0x2E,\n\t0x43, 0x31, 0x36, 0x2E, 0x43, 0x31, 0x37, 0x2E,\n\t// Bytes 1b80 - 1bbf\n\t0x43, 0x31, 0x38, 0x2E, 0x43, 0x31, 0x39, 0x2E,\n\t0x43, 0x32, 0x30, 0x2E, 0x43, 0x3A, 0x3A, 0x3D,\n\t0x43, 0x3D, 0x3D, 0x3D, 0x43, 0x43, 0x6F, 0x2E,\n\t0x43, 0x46, 0x41, 0x58, 0x43, 0x47, 0x48, 0x7A,\n\t0x43, 0x47, 0x50, 0x61, 0x43, 0x49, 0x49, 0x49,\n\t0x43, 0x4C, 0x54, 0x44, 0x43, 0x4C, 0xC2, 0xB7,\n\t0x43, 0x4D, 0x48, 0x7A, 0x43, 0x4D, 0x50, 0x61,\n\t0x43, 0x4D, 0xCE, 0xA9, 0x43, 0x50, 0x50, 0x4D,\n\t// Bytes 1bc0 - 1bff\n\t0x43, 0x50, 0x50, 0x56, 0x43, 0x50, 0x54, 0x45,\n\t0x43, 0x54, 0x45, 0x4C, 0x43, 0x54, 0x48, 0x7A,\n\t0x43, 0x56, 0x49, 0x49, 0x43, 0x58, 0x49, 0x49,\n\t0x43, 0x61, 0x2F, 0x63, 0x43, 0x61, 0x2F, 0x73,\n\t0x43, 0x61, 0xCA, 0xBE, 0x43, 0x62, 0x61, 0x72,\n\t0x43, 0x63, 0x2F, 0x6F, 0x43, 0x63, 0x2F, 0x75,\n\t0x43, 0x63, 0x61, 0x6C, 0x43, 0x63, 0x6D, 0x32,\n\t0x43, 0x63, 0x6D, 0x33, 0x43, 0x64, 0x6D, 0x32,\n\t// Bytes 1c00 - 1c3f\n\t0x43, 0x64, 0x6D, 0x33, 0x43, 0x65, 0x72, 0x67,\n\t0x43, 0x66, 0x66, 0x69, 0x43, 0x66, 0x66, 0x6C,\n\t0x43, 0x67, 0x61, 0x6C, 0x43, 0x68, 0x50, 0x61,\n\t0x43, 0x69, 0x69, 0x69, 0x43, 0x6B, 0x48, 0x7A,\n\t0x43, 0x6B, 0x50, 0x61, 0x43, 0x6B, 0x6D, 0x32,\n\t0x43, 0x6B, 0x6D, 0x33, 0x43, 0x6B, 0xCE, 0xA9,\n\t0x43, 0x6C, 0x6F, 0x67, 0x43, 0x6C, 0xC2, 0xB7,\n\t0x43, 0x6D, 0x69, 0x6C, 0x43, 0x6D, 0x6D, 0x32,\n\t// Bytes 1c40 - 1c7f\n\t0x43, 0x6D, 0x6D, 0x33, 0x43, 0x6D, 0x6F, 0x6C,\n\t0x43, 0x72, 0x61, 0x64, 0x43, 0x76, 0x69, 0x69,\n\t0x43, 0x78, 0x69, 0x69, 0x43, 0xC2, 0xB0, 0x43,\n\t0x43, 0xC2, 0xB0, 0x46, 0x43, 0xCA, 0xBC, 0x6E,\n\t0x43, 0xCE, 0xBC, 0x41, 0x43, 0xCE, 0xBC, 0x46,\n\t0x43, 0xCE, 0xBC, 0x56, 0x43, 0xCE, 0xBC, 0x57,\n\t0x43, 0xCE, 0xBC, 0x67, 0x43, 0xCE, 0xBC, 0x6C,\n\t0x43, 0xCE, 0xBC, 0x6D, 0x43, 0xCE, 0xBC, 0x73,\n\t// Bytes 1c80 - 1cbf\n\t0x44, 0x28, 0x31, 0x30, 0x29, 0x44, 0x28, 0x31,\n\t0x31, 0x29, 0x44, 0x28, 0x31, 0x32, 0x29, 0x44,\n\t0x28, 0x31, 0x33, 0x29, 0x44, 0x28, 0x31, 0x34,\n\t0x29, 0x44, 0x28, 0x31, 0x35, 0x29, 0x44, 0x28,\n\t0x31, 0x36, 0x29, 0x44, 0x28, 0x31, 0x37, 0x29,\n\t0x44, 0x28, 0x31, 0x38, 0x29, 0x44, 0x28, 0x31,\n\t0x39, 0x29, 0x44, 0x28, 0x32, 0x30, 0x29, 0x44,\n\t0x30, 0xE7, 0x82, 0xB9, 0x44, 0x31, 0xE2, 0x81,\n\t// Bytes 1cc0 - 1cff\n\t0x84, 0x44, 0x31, 0xE6, 0x97, 0xA5, 0x44, 0x31,\n\t0xE6, 0x9C, 0x88, 0x44, 0x31, 0xE7, 0x82, 0xB9,\n\t0x44, 0x32, 0xE6, 0x97, 0xA5, 0x44, 0x32, 0xE6,\n\t0x9C, 0x88, 0x44, 0x32, 0xE7, 0x82, 0xB9, 0x44,\n\t0x33, 0xE6, 0x97, 0xA5, 0x44, 0x33, 0xE6, 0x9C,\n\t0x88, 0x44, 0x33, 0xE7, 0x82, 0xB9, 0x44, 0x34,\n\t0xE6, 0x97, 0xA5, 0x44, 0x34, 0xE6, 0x9C, 0x88,\n\t0x44, 0x34, 0xE7, 0x82, 0xB9, 0x44, 0x35, 0xE6,\n\t// Bytes 1d00 - 1d3f\n\t0x97, 0xA5, 0x44, 0x35, 0xE6, 0x9C, 0x88, 0x44,\n\t0x35, 0xE7, 0x82, 0xB9, 0x44, 0x36, 0xE6, 0x97,\n\t0xA5, 0x44, 0x36, 0xE6, 0x9C, 0x88, 0x44, 0x36,\n\t0xE7, 0x82, 0xB9, 0x44, 0x37, 0xE6, 0x97, 0xA5,\n\t0x44, 0x37, 0xE6, 0x9C, 0x88, 0x44, 0x37, 0xE7,\n\t0x82, 0xB9, 0x44, 0x38, 0xE6, 0x97, 0xA5, 0x44,\n\t0x38, 0xE6, 0x9C, 0x88, 0x44, 0x38, 0xE7, 0x82,\n\t0xB9, 0x44, 0x39, 0xE6, 0x97, 0xA5, 0x44, 0x39,\n\t// Bytes 1d40 - 1d7f\n\t0xE6, 0x9C, 0x88, 0x44, 0x39, 0xE7, 0x82, 0xB9,\n\t0x44, 0x56, 0x49, 0x49, 0x49, 0x44, 0x61, 0x2E,\n\t0x6D, 0x2E, 0x44, 0x6B, 0x63, 0x61, 0x6C, 0x44,\n\t0x70, 0x2E, 0x6D, 0x2E, 0x44, 0x76, 0x69, 0x69,\n\t0x69, 0x44, 0xD5, 0xA5, 0xD6, 0x82, 0x44, 0xD5,\n\t0xB4, 0xD5, 0xA5, 0x44, 0xD5, 0xB4, 0xD5, 0xAB,\n\t0x44, 0xD5, 0xB4, 0xD5, 0xAD, 0x44, 0xD5, 0xB4,\n\t0xD5, 0xB6, 0x44, 0xD5, 0xBE, 0xD5, 0xB6, 0x44,\n\t// Bytes 1d80 - 1dbf\n\t0xD7, 0x90, 0xD7, 0x9C, 0x44, 0xD8, 0xA7, 0xD9,\n\t0xB4, 0x44, 0xD8, 0xA8, 0xD8, 0xAC, 0x44, 0xD8,\n\t0xA8, 0xD8, 0xAD, 0x44, 0xD8, 0xA8, 0xD8, 0xAE,\n\t0x44, 0xD8, 0xA8, 0xD8, 0xB1, 0x44, 0xD8, 0xA8,\n\t0xD8, 0xB2, 0x44, 0xD8, 0xA8, 0xD9, 0x85, 0x44,\n\t0xD8, 0xA8, 0xD9, 0x86, 0x44, 0xD8, 0xA8, 0xD9,\n\t0x87, 0x44, 0xD8, 0xA8, 0xD9, 0x89, 0x44, 0xD8,\n\t0xA8, 0xD9, 0x8A, 0x44, 0xD8, 0xAA, 0xD8, 0xAC,\n\t// Bytes 1dc0 - 1dff\n\t0x44, 0xD8, 0xAA, 0xD8, 0xAD, 0x44, 0xD8, 0xAA,\n\t0xD8, 0xAE, 0x44, 0xD8, 0xAA, 0xD8, 0xB1, 0x44,\n\t0xD8, 0xAA, 0xD8, 0xB2, 0x44, 0xD8, 0xAA, 0xD9,\n\t0x85, 0x44, 0xD8, 0xAA, 0xD9, 0x86, 0x44, 0xD8,\n\t0xAA, 0xD9, 0x87, 0x44, 0xD8, 0xAA, 0xD9, 0x89,\n\t0x44, 0xD8, 0xAA, 0xD9, 0x8A, 0x44, 0xD8, 0xAB,\n\t0xD8, 0xAC, 0x44, 0xD8, 0xAB, 0xD8, 0xB1, 0x44,\n\t0xD8, 0xAB, 0xD8, 0xB2, 0x44, 0xD8, 0xAB, 0xD9,\n\t// Bytes 1e00 - 1e3f\n\t0x85, 0x44, 0xD8, 0xAB, 0xD9, 0x86, 0x44, 0xD8,\n\t0xAB, 0xD9, 0x87, 0x44, 0xD8, 0xAB, 0xD9, 0x89,\n\t0x44, 0xD8, 0xAB, 0xD9, 0x8A, 0x44, 0xD8, 0xAC,\n\t0xD8, 0xAD, 0x44, 0xD8, 0xAC, 0xD9, 0x85, 0x44,\n\t0xD8, 0xAC, 0xD9, 0x89, 0x44, 0xD8, 0xAC, 0xD9,\n\t0x8A, 0x44, 0xD8, 0xAD, 0xD8, 0xAC, 0x44, 0xD8,\n\t0xAD, 0xD9, 0x85, 0x44, 0xD8, 0xAD, 0xD9, 0x89,\n\t0x44, 0xD8, 0xAD, 0xD9, 0x8A, 0x44, 0xD8, 0xAE,\n\t// Bytes 1e40 - 1e7f\n\t0xD8, 0xAC, 0x44, 0xD8, 0xAE, 0xD8, 0xAD, 0x44,\n\t0xD8, 0xAE, 0xD9, 0x85, 0x44, 0xD8, 0xAE, 0xD9,\n\t0x89, 0x44, 0xD8, 0xAE, 0xD9, 0x8A, 0x44, 0xD8,\n\t0xB3, 0xD8, 0xAC, 0x44, 0xD8, 0xB3, 0xD8, 0xAD,\n\t0x44, 0xD8, 0xB3, 0xD8, 0xAE, 0x44, 0xD8, 0xB3,\n\t0xD8, 0xB1, 0x44, 0xD8, 0xB3, 0xD9, 0x85, 0x44,\n\t0xD8, 0xB3, 0xD9, 0x87, 0x44, 0xD8, 0xB3, 0xD9,\n\t0x89, 0x44, 0xD8, 0xB3, 0xD9, 0x8A, 0x44, 0xD8,\n\t// Bytes 1e80 - 1ebf\n\t0xB4, 0xD8, 0xAC, 0x44, 0xD8, 0xB4, 0xD8, 0xAD,\n\t0x44, 0xD8, 0xB4, 0xD8, 0xAE, 0x44, 0xD8, 0xB4,\n\t0xD8, 0xB1, 0x44, 0xD8, 0xB4, 0xD9, 0x85, 0x44,\n\t0xD8, 0xB4, 0xD9, 0x87, 0x44, 0xD8, 0xB4, 0xD9,\n\t0x89, 0x44, 0xD8, 0xB4, 0xD9, 0x8A, 0x44, 0xD8,\n\t0xB5, 0xD8, 0xAD, 0x44, 0xD8, 0xB5, 0xD8, 0xAE,\n\t0x44, 0xD8, 0xB5, 0xD8, 0xB1, 0x44, 0xD8, 0xB5,\n\t0xD9, 0x85, 0x44, 0xD8, 0xB5, 0xD9, 0x89, 0x44,\n\t// Bytes 1ec0 - 1eff\n\t0xD8, 0xB5, 0xD9, 0x8A, 0x44, 0xD8, 0xB6, 0xD8,\n\t0xAC, 0x44, 0xD8, 0xB6, 0xD8, 0xAD, 0x44, 0xD8,\n\t0xB6, 0xD8, 0xAE, 0x44, 0xD8, 0xB6, 0xD8, 0xB1,\n\t0x44, 0xD8, 0xB6, 0xD9, 0x85, 0x44, 0xD8, 0xB6,\n\t0xD9, 0x89, 0x44, 0xD8, 0xB6, 0xD9, 0x8A, 0x44,\n\t0xD8, 0xB7, 0xD8, 0xAD, 0x44, 0xD8, 0xB7, 0xD9,\n\t0x85, 0x44, 0xD8, 0xB7, 0xD9, 0x89, 0x44, 0xD8,\n\t0xB7, 0xD9, 0x8A, 0x44, 0xD8, 0xB8, 0xD9, 0x85,\n\t// Bytes 1f00 - 1f3f\n\t0x44, 0xD8, 0xB9, 0xD8, 0xAC, 0x44, 0xD8, 0xB9,\n\t0xD9, 0x85, 0x44, 0xD8, 0xB9, 0xD9, 0x89, 0x44,\n\t0xD8, 0xB9, 0xD9, 0x8A, 0x44, 0xD8, 0xBA, 0xD8,\n\t0xAC, 0x44, 0xD8, 0xBA, 0xD9, 0x85, 0x44, 0xD8,\n\t0xBA, 0xD9, 0x89, 0x44, 0xD8, 0xBA, 0xD9, 0x8A,\n\t0x44, 0xD9, 0x81, 0xD8, 0xAC, 0x44, 0xD9, 0x81,\n\t0xD8, 0xAD, 0x44, 0xD9, 0x81, 0xD8, 0xAE, 0x44,\n\t0xD9, 0x81, 0xD9, 0x85, 0x44, 0xD9, 0x81, 0xD9,\n\t// Bytes 1f40 - 1f7f\n\t0x89, 0x44, 0xD9, 0x81, 0xD9, 0x8A, 0x44, 0xD9,\n\t0x82, 0xD8, 0xAD, 0x44, 0xD9, 0x82, 0xD9, 0x85,\n\t0x44, 0xD9, 0x82, 0xD9, 0x89, 0x44, 0xD9, 0x82,\n\t0xD9, 0x8A, 0x44, 0xD9, 0x83, 0xD8, 0xA7, 0x44,\n\t0xD9, 0x83, 0xD8, 0xAC, 0x44, 0xD9, 0x83, 0xD8,\n\t0xAD, 0x44, 0xD9, 0x83, 0xD8, 0xAE, 0x44, 0xD9,\n\t0x83, 0xD9, 0x84, 0x44, 0xD9, 0x83, 0xD9, 0x85,\n\t0x44, 0xD9, 0x83, 0xD9, 0x89, 0x44, 0xD9, 0x83,\n\t// Bytes 1f80 - 1fbf\n\t0xD9, 0x8A, 0x44, 0xD9, 0x84, 0xD8, 0xA7, 0x44,\n\t0xD9, 0x84, 0xD8, 0xAC, 0x44, 0xD9, 0x84, 0xD8,\n\t0xAD, 0x44, 0xD9, 0x84, 0xD8, 0xAE, 0x44, 0xD9,\n\t0x84, 0xD9, 0x85, 0x44, 0xD9, 0x84, 0xD9, 0x87,\n\t0x44, 0xD9, 0x84, 0xD9, 0x89, 0x44, 0xD9, 0x84,\n\t0xD9, 0x8A, 0x44, 0xD9, 0x85, 0xD8, 0xA7, 0x44,\n\t0xD9, 0x85, 0xD8, 0xAC, 0x44, 0xD9, 0x85, 0xD8,\n\t0xAD, 0x44, 0xD9, 0x85, 0xD8, 0xAE, 0x44, 0xD9,\n\t// Bytes 1fc0 - 1fff\n\t0x85, 0xD9, 0x85, 0x44, 0xD9, 0x85, 0xD9, 0x89,\n\t0x44, 0xD9, 0x85, 0xD9, 0x8A, 0x44, 0xD9, 0x86,\n\t0xD8, 0xAC, 0x44, 0xD9, 0x86, 0xD8, 0xAD, 0x44,\n\t0xD9, 0x86, 0xD8, 0xAE, 0x44, 0xD9, 0x86, 0xD8,\n\t0xB1, 0x44, 0xD9, 0x86, 0xD8, 0xB2, 0x44, 0xD9,\n\t0x86, 0xD9, 0x85, 0x44, 0xD9, 0x86, 0xD9, 0x86,\n\t0x44, 0xD9, 0x86, 0xD9, 0x87, 0x44, 0xD9, 0x86,\n\t0xD9, 0x89, 0x44, 0xD9, 0x86, 0xD9, 0x8A, 0x44,\n\t// Bytes 2000 - 203f\n\t0xD9, 0x87, 0xD8, 0xAC, 0x44, 0xD9, 0x87, 0xD9,\n\t0x85, 0x44, 0xD9, 0x87, 0xD9, 0x89, 0x44, 0xD9,\n\t0x87, 0xD9, 0x8A, 0x44, 0xD9, 0x88, 0xD9, 0xB4,\n\t0x44, 0xD9, 0x8A, 0xD8, 0xAC, 0x44, 0xD9, 0x8A,\n\t0xD8, 0xAD, 0x44, 0xD9, 0x8A, 0xD8, 0xAE, 0x44,\n\t0xD9, 0x8A, 0xD8, 0xB1, 0x44, 0xD9, 0x8A, 0xD8,\n\t0xB2, 0x44, 0xD9, 0x8A, 0xD9, 0x85, 0x44, 0xD9,\n\t0x8A, 0xD9, 0x86, 0x44, 0xD9, 0x8A, 0xD9, 0x87,\n\t// Bytes 2040 - 207f\n\t0x44, 0xD9, 0x8A, 0xD9, 0x89, 0x44, 0xD9, 0x8A,\n\t0xD9, 0x8A, 0x44, 0xD9, 0x8A, 0xD9, 0xB4, 0x44,\n\t0xDB, 0x87, 0xD9, 0xB4, 0x45, 0x28, 0xE1, 0x84,\n\t0x80, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x82, 0x29,\n\t0x45, 0x28, 0xE1, 0x84, 0x83, 0x29, 0x45, 0x28,\n\t0xE1, 0x84, 0x85, 0x29, 0x45, 0x28, 0xE1, 0x84,\n\t0x86, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x87, 0x29,\n\t0x45, 0x28, 0xE1, 0x84, 0x89, 0x29, 0x45, 0x28,\n\t// Bytes 2080 - 20bf\n\t0xE1, 0x84, 0x8B, 0x29, 0x45, 0x28, 0xE1, 0x84,\n\t0x8C, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8E, 0x29,\n\t0x45, 0x28, 0xE1, 0x84, 0x8F, 0x29, 0x45, 0x28,\n\t0xE1, 0x84, 0x90, 0x29, 0x45, 0x28, 0xE1, 0x84,\n\t0x91, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x92, 0x29,\n\t0x45, 0x28, 0xE4, 0xB8, 0x80, 0x29, 0x45, 0x28,\n\t0xE4, 0xB8, 0x83, 0x29, 0x45, 0x28, 0xE4, 0xB8,\n\t0x89, 0x29, 0x45, 0x28, 0xE4, 0xB9, 0x9D, 0x29,\n\t// Bytes 20c0 - 20ff\n\t0x45, 0x28, 0xE4, 0xBA, 0x8C, 0x29, 0x45, 0x28,\n\t0xE4, 0xBA, 0x94, 0x29, 0x45, 0x28, 0xE4, 0xBB,\n\t0xA3, 0x29, 0x45, 0x28, 0xE4, 0xBC, 0x81, 0x29,\n\t0x45, 0x28, 0xE4, 0xBC, 0x91, 0x29, 0x45, 0x28,\n\t0xE5, 0x85, 0xAB, 0x29, 0x45, 0x28, 0xE5, 0x85,\n\t0xAD, 0x29, 0x45, 0x28, 0xE5, 0x8A, 0xB4, 0x29,\n\t0x45, 0x28, 0xE5, 0x8D, 0x81, 0x29, 0x45, 0x28,\n\t0xE5, 0x8D, 0x94, 0x29, 0x45, 0x28, 0xE5, 0x90,\n\t// Bytes 2100 - 213f\n\t0x8D, 0x29, 0x45, 0x28, 0xE5, 0x91, 0xBC, 0x29,\n\t0x45, 0x28, 0xE5, 0x9B, 0x9B, 0x29, 0x45, 0x28,\n\t0xE5, 0x9C, 0x9F, 0x29, 0x45, 0x28, 0xE5, 0xAD,\n\t0xA6, 0x29, 0x45, 0x28, 0xE6, 0x97, 0xA5, 0x29,\n\t0x45, 0x28, 0xE6, 0x9C, 0x88, 0x29, 0x45, 0x28,\n\t0xE6, 0x9C, 0x89, 0x29, 0x45, 0x28, 0xE6, 0x9C,\n\t0xA8, 0x29, 0x45, 0x28, 0xE6, 0xA0, 0xAA, 0x29,\n\t0x45, 0x28, 0xE6, 0xB0, 0xB4, 0x29, 0x45, 0x28,\n\t// Bytes 2140 - 217f\n\t0xE7, 0x81, 0xAB, 0x29, 0x45, 0x28, 0xE7, 0x89,\n\t0xB9, 0x29, 0x45, 0x28, 0xE7, 0x9B, 0xA3, 0x29,\n\t0x45, 0x28, 0xE7, 0xA4, 0xBE, 0x29, 0x45, 0x28,\n\t0xE7, 0xA5, 0x9D, 0x29, 0x45, 0x28, 0xE7, 0xA5,\n\t0xAD, 0x29, 0x45, 0x28, 0xE8, 0x87, 0xAA, 0x29,\n\t0x45, 0x28, 0xE8, 0x87, 0xB3, 0x29, 0x45, 0x28,\n\t0xE8, 0xB2, 0xA1, 0x29, 0x45, 0x28, 0xE8, 0xB3,\n\t0x87, 0x29, 0x45, 0x28, 0xE9, 0x87, 0x91, 0x29,\n\t// Bytes 2180 - 21bf\n\t0x45, 0x30, 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31,\n\t0x30, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x30, 0xE6,\n\t0x9C, 0x88, 0x45, 0x31, 0x30, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t0x31, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x31, 0xE7,\n\t0x82, 0xB9, 0x45, 0x31, 0x32, 0xE6, 0x97, 0xA5,\n\t0x45, 0x31, 0x32, 0xE6, 0x9C, 0x88, 0x45, 0x31,\n\t0x32, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x33, 0xE6,\n\t// Bytes 21c0 - 21ff\n\t0x97, 0xA5, 0x45, 0x31, 0x33, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t0x34, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x35, 0xE6,\n\t0x97, 0xA5, 0x45, 0x31, 0x35, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x36, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t0x36, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x37, 0xE6,\n\t0x97, 0xA5, 0x45, 0x31, 0x37, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x31,\n\t// Bytes 2200 - 223f\n\t0x38, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x39, 0xE6,\n\t0x97, 0xA5, 0x45, 0x31, 0x39, 0xE7, 0x82, 0xB9,\n\t0x45, 0x31, 0xE2, 0x81, 0x84, 0x32, 0x45, 0x31,\n\t0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, 0xE2, 0x81,\n\t0x84, 0x34, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x35,\n\t0x45, 0x31, 0xE2, 0x81, 0x84, 0x36, 0x45, 0x31,\n\t0xE2, 0x81, 0x84, 0x37, 0x45, 0x31, 0xE2, 0x81,\n\t0x84, 0x38, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x39,\n\t// Bytes 2240 - 227f\n\t0x45, 0x32, 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x30, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x31, 0xE6,\n\t0x97, 0xA5, 0x45, 0x32, 0x31, 0xE7, 0x82, 0xB9,\n\t0x45, 0x32, 0x32, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x32, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x33, 0xE6,\n\t0x97, 0xA5, 0x45, 0x32, 0x33, 0xE7, 0x82, 0xB9,\n\t0x45, 0x32, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x34, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x35, 0xE6,\n\t// Bytes 2280 - 22bf\n\t0x97, 0xA5, 0x45, 0x32, 0x36, 0xE6, 0x97, 0xA5,\n\t0x45, 0x32, 0x37, 0xE6, 0x97, 0xA5, 0x45, 0x32,\n\t0x38, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x39, 0xE6,\n\t0x97, 0xA5, 0x45, 0x32, 0xE2, 0x81, 0x84, 0x33,\n\t0x45, 0x32, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33,\n\t0x30, 0xE6, 0x97, 0xA5, 0x45, 0x33, 0x31, 0xE6,\n\t0x97, 0xA5, 0x45, 0x33, 0xE2, 0x81, 0x84, 0x34,\n\t0x45, 0x33, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33,\n\t// Bytes 22c0 - 22ff\n\t0xE2, 0x81, 0x84, 0x38, 0x45, 0x34, 0xE2, 0x81,\n\t0x84, 0x35, 0x45, 0x35, 0xE2, 0x81, 0x84, 0x36,\n\t0x45, 0x35, 0xE2, 0x81, 0x84, 0x38, 0x45, 0x37,\n\t0xE2, 0x81, 0x84, 0x38, 0x45, 0x41, 0xE2, 0x88,\n\t0x95, 0x6D, 0x45, 0x56, 0xE2, 0x88, 0x95, 0x6D,\n\t0x45, 0x6D, 0xE2, 0x88, 0x95, 0x73, 0x46, 0x31,\n\t0xE2, 0x81, 0x84, 0x31, 0x30, 0x46, 0x43, 0xE2,\n\t0x88, 0x95, 0x6B, 0x67, 0x46, 0x6D, 0xE2, 0x88,\n\t// Bytes 2300 - 233f\n\t0x95, 0x73, 0x32, 0x46, 0xD8, 0xA8, 0xD8, 0xAD,\n\t0xD9, 0x8A, 0x46, 0xD8, 0xA8, 0xD8, 0xAE, 0xD9,\n\t0x8A, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x85,\n\t0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x89, 0x46,\n\t0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8,\n\t0xAA, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xAA,\n\t0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8,\n\t0xAE, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAE,\n\t// Bytes 2340 - 237f\n\t0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9,\n\t0x8A, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAC,\n\t0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAD, 0x46,\n\t0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAE, 0x46, 0xD8,\n\t0xAA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAA,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD8,\n\t0xAD, 0xD9, 0x89, 0x46, 0xD8, 0xAC, 0xD8, 0xAD,\n\t0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD8,\n\t// Bytes 2380 - 23bf\n\t0xAD, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x89,\n\t0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x8A, 0x46,\n\t0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8,\n\t0xAD, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAD,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB3, 0xD8,\n\t0xAC, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, 0xD8, 0xAC,\n\t0xD9, 0x89, 0x46, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8,\n\t0xAC, 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x89,\n\t// Bytes 23c0 - 23ff\n\t0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x8A, 0x46,\n\t0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD8,\n\t0xB3, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xB3,\n\t0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8,\n\t0xAC, 0xD9, 0x8A, 0x46, 0xD8, 0xB4, 0xD8, 0xAD,\n\t0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, 0xD9,\n\t0x8A, 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xAE,\n\t0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD9, 0x85, 0x46,\n\t// Bytes 2400 - 243f\n\t0xD8, 0xB5, 0xD8, 0xAD, 0xD8, 0xAD, 0x46, 0xD8,\n\t0xB5, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB5,\n\t0xD9, 0x84, 0xD9, 0x89, 0x46, 0xD8, 0xB5, 0xD9,\n\t0x84, 0xDB, 0x92, 0x46, 0xD8, 0xB5, 0xD9, 0x85,\n\t0xD9, 0x85, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9,\n\t0x89, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x8A,\n\t0x46, 0xD8, 0xB6, 0xD8, 0xAE, 0xD9, 0x85, 0x46,\n\t0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8,\n\t// Bytes 2440 - 247f\n\t0xB7, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB7,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB9, 0xD8,\n\t0xAC, 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85,\n\t0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9,\n\t0x89, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x8A,\n\t0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x85, 0x46,\n\t0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8,\n\t0xBA, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x81,\n\t// Bytes 2480 - 24bf\n\t0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x81, 0xD9,\n\t0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x82, 0xD9, 0x84,\n\t0xDB, 0x92, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD8,\n\t0xAD, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x85,\n\t0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x8A, 0x46,\n\t0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9,\n\t0x83, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x84,\n\t0xD8, 0xAC, 0xD8, 0xAC, 0x46, 0xD9, 0x84, 0xD8,\n\t// Bytes 24c0 - 24ff\n\t0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAC,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9,\n\t0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x89,\n\t0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x8A, 0x46,\n\t0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9,\n\t0x84, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x84,\n\t0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8,\n\t0xAC, 0xD8, 0xAD, 0x46, 0xD9, 0x85, 0xD8, 0xAC,\n\t// Bytes 2500 - 253f\n\t0xD8, 0xAE, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9,\n\t0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x8A,\n\t0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0x46,\n\t0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9,\n\t0x85, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x85,\n\t0xD8, 0xAE, 0xD8, 0xAC, 0x46, 0xD9, 0x85, 0xD8,\n\t0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAE,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD9, 0x85, 0xD9,\n\t// Bytes 2540 - 257f\n\t0x8A, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD8, 0xAD,\n\t0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x85, 0x46,\n\t0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD9,\n\t0x86, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x86,\n\t0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x86, 0xD8,\n\t0xAD, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD8, 0xAD,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9,\n\t0x89, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x8A,\n\t// Bytes 2580 - 25bf\n\t0x46, 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xAC, 0x46,\n\t0xD9, 0x87, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9,\n\t0x8A, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x8A,\n\t0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9,\n\t0x85, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x85,\n\t0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8,\n\t0xA7, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAC,\n\t0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAD, 0x46,\n\t// Bytes 25c0 - 25ff\n\t0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAE, 0x46, 0xD9,\n\t0x8A, 0xD9, 0x94, 0xD8, 0xB1, 0x46, 0xD9, 0x8A,\n\t0xD9, 0x94, 0xD8, 0xB2, 0x46, 0xD9, 0x8A, 0xD9,\n\t0x94, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x94,\n\t0xD9, 0x86, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9,\n\t0x87, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x88,\n\t0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x89, 0x46,\n\t0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x8A, 0x46, 0xD9,\n\t// Bytes 2600 - 263f\n\t0x8A, 0xD9, 0x94, 0xDB, 0x86, 0x46, 0xD9, 0x8A,\n\t0xD9, 0x94, 0xDB, 0x87, 0x46, 0xD9, 0x8A, 0xD9,\n\t0x94, 0xDB, 0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94,\n\t0xDB, 0x90, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB,\n\t0x95, 0x46, 0xE0, 0xB9, 0x8D, 0xE0, 0xB8, 0xB2,\n\t0x46, 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0x99, 0x46,\n\t0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0xA1, 0x46, 0xE0,\n\t0xBB, 0x8D, 0xE0, 0xBA, 0xB2, 0x46, 0xE0, 0xBD,\n\t// Bytes 2640 - 267f\n\t0x80, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, 0xBD, 0x82,\n\t0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x8C, 0xE0,\n\t0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x91, 0xE0, 0xBE,\n\t0xB7, 0x46, 0xE0, 0xBD, 0x96, 0xE0, 0xBE, 0xB7,\n\t0x46, 0xE0, 0xBD, 0x9B, 0xE0, 0xBE, 0xB7, 0x46,\n\t0xE0, 0xBE, 0x90, 0xE0, 0xBE, 0xB5, 0x46, 0xE0,\n\t0xBE, 0x92, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE,\n\t0x9C, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA1,\n\t// Bytes 2680 - 26bf\n\t0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA6, 0xE0,\n\t0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xAB, 0xE0, 0xBE,\n\t0xB7, 0x46, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,\n\t0x46, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x46,\n\t0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x46, 0xE2,\n\t0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x46, 0xE3, 0x81,\n\t0xBB, 0xE3, 0x81, 0x8B, 0x46, 0xE3, 0x82, 0x88,\n\t0xE3, 0x82, 0x8A, 0x46, 0xE3, 0x82, 0xAD, 0xE3,\n\t// Bytes 26c0 - 26ff\n\t0x83, 0xAD, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x82,\n\t0xB3, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0x88,\n\t0x46, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x46,\n\t0xE3, 0x83, 0x8A, 0xE3, 0x83, 0x8E, 0x46, 0xE3,\n\t0x83, 0x9B, 0xE3, 0x83, 0xB3, 0x46, 0xE3, 0x83,\n\t0x9F, 0xE3, 0x83, 0xAA, 0x46, 0xE3, 0x83, 0xAA,\n\t0xE3, 0x83, 0xA9, 0x46, 0xE3, 0x83, 0xAC, 0xE3,\n\t0x83, 0xA0, 0x46, 0xE5, 0xA4, 0xA7, 0xE6, 0xAD,\n\t// Bytes 2700 - 273f\n\t0xA3, 0x46, 0xE5, 0xB9, 0xB3, 0xE6, 0x88, 0x90,\n\t0x46, 0xE6, 0x98, 0x8E, 0xE6, 0xB2, 0xBB, 0x46,\n\t0xE6, 0x98, 0xAD, 0xE5, 0x92, 0x8C, 0x47, 0x72,\n\t0x61, 0x64, 0xE2, 0x88, 0x95, 0x73, 0x47, 0xE3,\n\t0x80, 0x94, 0x53, 0xE3, 0x80, 0x95, 0x48, 0x28,\n\t0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x29, 0x48,\n\t0x28, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x29,\n\t0x48, 0x28, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1,\n\t// Bytes 2740 - 277f\n\t0x29, 0x48, 0x28, 0xE1, 0x84, 0x85, 0xE1, 0x85,\n\t0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x86, 0xE1,\n\t0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x87,\n\t0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,\n\t0x89, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1,\n\t0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28,\n\t0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x29, 0x48,\n\t0x28, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xAE, 0x29,\n\t// Bytes 2780 - 27bf\n\t0x48, 0x28, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1,\n\t0x29, 0x48, 0x28, 0xE1, 0x84, 0x8F, 0xE1, 0x85,\n\t0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x90, 0xE1,\n\t0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x91,\n\t0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,\n\t0x92, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x72, 0x61,\n\t0x64, 0xE2, 0x88, 0x95, 0x73, 0x32, 0x48, 0xD8,\n\t0xA7, 0xD9, 0x83, 0xD8, 0xA8, 0xD8, 0xB1, 0x48,\n\t// Bytes 27c0 - 27ff\n\t0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x87,\n\t0x48, 0xD8, 0xB1, 0xD8, 0xB3, 0xD9, 0x88, 0xD9,\n\t0x84, 0x48, 0xD8, 0xB1, 0xDB, 0x8C, 0xD8, 0xA7,\n\t0xD9, 0x84, 0x48, 0xD8, 0xB5, 0xD9, 0x84, 0xD8,\n\t0xB9, 0xD9, 0x85, 0x48, 0xD8, 0xB9, 0xD9, 0x84,\n\t0xD9, 0x8A, 0xD9, 0x87, 0x48, 0xD9, 0x85, 0xD8,\n\t0xAD, 0xD9, 0x85, 0xD8, 0xAF, 0x48, 0xD9, 0x88,\n\t0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x49, 0xE2,\n\t// Bytes 2800 - 283f\n\t0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,\n\t0x49, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0xE2,\n\t0x80, 0xB5, 0x49, 0xE2, 0x88, 0xAB, 0xE2, 0x88,\n\t0xAB, 0xE2, 0x88, 0xAB, 0x49, 0xE2, 0x88, 0xAE,\n\t0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x49, 0xE3,\n\t0x80, 0x94, 0xE4, 0xB8, 0x89, 0xE3, 0x80, 0x95,\n\t0x49, 0xE3, 0x80, 0x94, 0xE4, 0xBA, 0x8C, 0xE3,\n\t0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE5, 0x8B,\n\t// Bytes 2840 - 287f\n\t0x9D, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94,\n\t0xE5, 0xAE, 0x89, 0xE3, 0x80, 0x95, 0x49, 0xE3,\n\t0x80, 0x94, 0xE6, 0x89, 0x93, 0xE3, 0x80, 0x95,\n\t0x49, 0xE3, 0x80, 0x94, 0xE6, 0x95, 0x97, 0xE3,\n\t0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x9C,\n\t0xAC, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94,\n\t0xE7, 0x82, 0xB9, 0xE3, 0x80, 0x95, 0x49, 0xE3,\n\t0x80, 0x94, 0xE7, 0x9B, 0x97, 0xE3, 0x80, 0x95,\n\t// Bytes 2880 - 28bf\n\t0x49, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0xAB, 0x49, 0xE3, 0x82, 0xA4, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x81, 0x49, 0xE3, 0x82, 0xA6,\n\t0xE3, 0x82, 0xA9, 0xE3, 0x83, 0xB3, 0x49, 0xE3,\n\t0x82, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB9,\n\t0x49, 0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0xA0, 0x49, 0xE3, 0x82, 0xAB, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x83, 0xAA, 0x49, 0xE3, 0x82, 0xB1,\n\t// Bytes 28c0 - 28ff\n\t0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB9, 0x49, 0xE3,\n\t0x82, 0xB3, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x8A,\n\t0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3,\n\t0x83, 0x81, 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x88, 0x49, 0xE3, 0x83, 0x86,\n\t0xE3, 0x82, 0x99, 0xE3, 0x82, 0xB7, 0x49, 0xE3,\n\t0x83, 0x88, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB,\n\t0x49, 0xE3, 0x83, 0x8E, 0xE3, 0x83, 0x83, 0xE3,\n\t// Bytes 2900 - 293f\n\t0x83, 0x88, 0x49, 0xE3, 0x83, 0x8F, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x83, 0x84, 0x49, 0xE3, 0x83, 0x92,\n\t0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0x49, 0xE3,\n\t0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xB3,\n\t0x49, 0xE3, 0x83, 0x95, 0xE3, 0x83, 0xA9, 0xE3,\n\t0x83, 0xB3, 0x49, 0xE3, 0x83, 0x98, 0xE3, 0x82,\n\t0x9A, 0xE3, 0x82, 0xBD, 0x49, 0xE3, 0x83, 0x98,\n\t0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x84, 0x49, 0xE3,\n\t// Bytes 2940 - 297f\n\t0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB,\n\t0x49, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0xB3, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x9E,\n\t0xE3, 0x83, 0x83, 0xE3, 0x83, 0x8F, 0x49, 0xE3,\n\t0x83, 0x9E, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xAF,\n\t0x49, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0xAB, 0x49, 0xE3, 0x83, 0xA6, 0xE3, 0x82,\n\t// Bytes 2980 - 29bf\n\t0xA2, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83, 0xAF,\n\t0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x4C, 0xE2,\n\t0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,\n\t0xE2, 0x80, 0xB2, 0x4C, 0xE2, 0x88, 0xAB, 0xE2,\n\t0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB,\n\t0x4C, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xAB, 0xE3,\n\t0x83, 0x95, 0xE3, 0x82, 0xA1, 0x4C, 0xE3, 0x82,\n\t0xA8, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAB, 0xE3,\n\t// Bytes 29c0 - 29ff\n\t0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, 0x4C,\n\t0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x9E, 0x4C, 0xE3, 0x82, 0xAB,\n\t0xE3, 0x83, 0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83,\n\t0x88, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xAD,\n\t0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, 0x4C, 0xE3,\n\t0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x8B,\n\t// Bytes 2a00 - 2a3f\n\t0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3,\n\t0x83, 0xA5, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC,\n\t0x4C, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3,\n\t0x83, 0xA9, 0xE3, 0x83, 0xA0, 0x4C, 0xE3, 0x82,\n\t0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x83, 0x8D, 0x4C, 0xE3, 0x82, 0xB5, 0xE3, 0x82,\n\t0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C,\n\t0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t// Bytes 2a40 - 2a7f\n\t0xBC, 0xE3, 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x8F,\n\t0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0x84, 0x4C, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, 0xE3,\n\t0x83, 0x95, 0xE3, 0x82, 0xA3, 0xE3, 0x83, 0xBC,\n\t0xE3, 0x83, 0x88, 0x4C, 0xE3, 0x83, 0x98, 0xE3,\n\t0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xBF,\n\t0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3,\n\t// Bytes 2a80 - 2abf\n\t0x83, 0x8B, 0xE3, 0x83, 0x92, 0x4C, 0xE3, 0x83,\n\t0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3, 0xE3,\n\t0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x9B, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x88, 0x4C,\n\t0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x82,\n\t0xAF, 0xE3, 0x83, 0xAD, 0x4C, 0xE3, 0x83, 0x9F,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83,\n\t0xB3, 0x4C, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC,\n\t// Bytes 2ac0 - 2aff\n\t0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x4C, 0xE3,\n\t0x83, 0xAA, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88,\n\t0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83, 0xAB, 0xE3,\n\t0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC,\n\t0x4C, 0xE6, 0xA0, 0xAA, 0xE5, 0xBC, 0x8F, 0xE4,\n\t0xBC, 0x9A, 0xE7, 0xA4, 0xBE, 0x4E, 0x28, 0xE1,\n\t0x84, 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x92,\n\t0xE1, 0x85, 0xAE, 0x29, 0x4F, 0xD8, 0xAC, 0xD9,\n\t// Bytes 2b00 - 2b3f\n\t0x84, 0x20, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xA7,\n\t0xD9, 0x84, 0xD9, 0x87, 0x4F, 0xE3, 0x82, 0xA2,\n\t0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xA2,\n\t0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x98, 0xE3, 0x82,\n\t0x9A, 0xE3, 0x82, 0xA2, 0x4F, 0xE3, 0x82, 0xAD,\n\t0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAF, 0xE3, 0x83,\n\t0x83, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xB5,\n\t// Bytes 2b40 - 2b7f\n\t0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x83, 0xA0, 0x4F, 0xE3, 0x83, 0x8F,\n\t0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0xAC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x98,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x82, 0xBF, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x9B,\n\t0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA4, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x83, 0x9E,\n\t// Bytes 2b80 - 2bbf\n\t0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB7, 0xE3, 0x83,\n\t0xA7, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xA1,\n\t0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0x88, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xAB,\n\t0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x95, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xAB, 0x51, 0x28, 0xE1, 0x84,\n\t0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x8C, 0xE1,\n\t0x85, 0xA5, 0xE1, 0x86, 0xAB, 0x29, 0x52, 0xE3,\n\t// Bytes 2bc0 - 2bff\n\t0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB,\n\t0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0xBC, 0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t0xA9, 0xE3, 0x83, 0xA0, 0x52, 0xE3, 0x82, 0xAD,\n\t0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xA1, 0xE3, 0x83,\n\t0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x52,\n\t0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83,\n\t// Bytes 2c00 - 2c3f\n\t0xA9, 0xE3, 0x83, 0xA0, 0xE3, 0x83, 0x88, 0xE3,\n\t0x83, 0xB3, 0x52, 0xE3, 0x82, 0xAF, 0xE3, 0x83,\n\t0xAB, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0xE3,\n\t0x82, 0xA4, 0xE3, 0x83, 0xAD, 0x52, 0xE3, 0x83,\n\t0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3,\n\t0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88,\n\t0x52, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3,\n\t0x82, 0xA2, 0xE3, 0x82, 0xB9, 0xE3, 0x83, 0x88,\n\t// Bytes 2c40 - 2c7f\n\t0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83, 0x95, 0xE3,\n\t0x82, 0x99, 0xE3, 0x83, 0x83, 0xE3, 0x82, 0xB7,\n\t0xE3, 0x82, 0xA7, 0xE3, 0x83, 0xAB, 0x52, 0xE3,\n\t0x83, 0x9F, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x8F,\n\t0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t0xAB, 0x52, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xB3,\n\t0xE3, 0x83, 0x88, 0xE3, 0x82, 0xB1, 0xE3, 0x82,\n\t0x99, 0xE3, 0x83, 0xB3, 0x61, 0xD8, 0xB5, 0xD9,\n\t// Bytes 2c80 - 2cbf\n\t0x84, 0xD9, 0x89, 0x20, 0xD8, 0xA7, 0xD9, 0x84,\n\t0xD9, 0x84, 0xD9, 0x87, 0x20, 0xD8, 0xB9, 0xD9,\n\t0x84, 0xD9, 0x8A, 0xD9, 0x87, 0x20, 0xD9, 0x88,\n\t0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x06, 0xE0,\n\t0xA7, 0x87, 0xE0, 0xA6, 0xBE, 0x01, 0x06, 0xE0,\n\t0xA7, 0x87, 0xE0, 0xA7, 0x97, 0x01, 0x06, 0xE0,\n\t0xAD, 0x87, 0xE0, 0xAC, 0xBE, 0x01, 0x06, 0xE0,\n\t0xAD, 0x87, 0xE0, 0xAD, 0x96, 0x01, 0x06, 0xE0,\n\t// Bytes 2cc0 - 2cff\n\t0xAD, 0x87, 0xE0, 0xAD, 0x97, 0x01, 0x06, 0xE0,\n\t0xAE, 0x92, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0,\n\t0xAF, 0x86, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0,\n\t0xAF, 0x86, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0,\n\t0xAF, 0x87, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0,\n\t0xB2, 0xBF, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0,\n\t0xB3, 0x86, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0,\n\t0xB3, 0x86, 0xE0, 0xB3, 0x96, 0x01, 0x06, 0xE0,\n\t// Bytes 2d00 - 2d3f\n\t0xB5, 0x86, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0,\n\t0xB5, 0x86, 0xE0, 0xB5, 0x97, 0x01, 0x06, 0xE0,\n\t0xB5, 0x87, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0,\n\t0xB7, 0x99, 0xE0, 0xB7, 0x9F, 0x01, 0x06, 0xE1,\n\t0x80, 0xA5, 0xE1, 0x80, 0xAE, 0x01, 0x06, 0xE1,\n\t0xAC, 0x85, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0x87, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0x89, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t// Bytes 2d40 - 2d7f\n\t0xAC, 0x8B, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0x8D, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0x91, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0xBA, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0xBC, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0xBE, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAC, 0xBF, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,\n\t0xAD, 0x82, 0xE1, 0xAC, 0xB5, 0x01, 0x08, 0xF0,\n\t// Bytes 2d80 - 2dbf\n\t0x91, 0x84, 0xB1, 0xF0, 0x91, 0x84, 0xA7, 0x01,\n\t0x08, 0xF0, 0x91, 0x84, 0xB2, 0xF0, 0x91, 0x84,\n\t0xA7, 0x01, 0x08, 0xF0, 0x91, 0x8D, 0x87, 0xF0,\n\t0x91, 0x8C, 0xBE, 0x01, 0x08, 0xF0, 0x91, 0x8D,\n\t0x87, 0xF0, 0x91, 0x8D, 0x97, 0x01, 0x08, 0xF0,\n\t0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xB0, 0x01,\n\t0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92,\n\t0xBA, 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0,\n\t// Bytes 2dc0 - 2dff\n\t0x91, 0x92, 0xBD, 0x01, 0x08, 0xF0, 0x91, 0x96,\n\t0xB8, 0xF0, 0x91, 0x96, 0xAF, 0x01, 0x08, 0xF0,\n\t0x91, 0x96, 0xB9, 0xF0, 0x91, 0x96, 0xAF, 0x01,\n\t0x09, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0xE0,\n\t0xB3, 0x95, 0x02, 0x09, 0xE0, 0xB7, 0x99, 0xE0,\n\t0xB7, 0x8F, 0xE0, 0xB7, 0x8A, 0x12, 0x44, 0x44,\n\t0x5A, 0xCC, 0x8C, 0xC9, 0x44, 0x44, 0x7A, 0xCC,\n\t0x8C, 0xC9, 0x44, 0x64, 0x7A, 0xCC, 0x8C, 0xC9,\n\t// Bytes 2e00 - 2e3f\n\t0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x93, 0xC9,\n\t0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94, 0xC9,\n\t0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x95, 0xB5,\n\t0x46, 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1, 0x01,\n\t// Bytes 2e40 - 2e7f\n\t0x46, 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xAE, 0x01,\n\t0x46, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x90, 0xE1, 0x85, 0xA1, 0x01,\n\t// Bytes 2e80 - 2ebf\n\t0x46, 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, 0x01,\n\t0x46, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0x01,\n\t0x49, 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB, 0xE3,\n\t0x82, 0x99, 0x0D, 0x4C, 0xE1, 0x84, 0x8C, 0xE1,\n\t0x85, 0xAE, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xB4,\n\t0x01, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99,\n\t0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, 0x4C,\n\t0xE3, 0x82, 0xB3, 0xE3, 0x83, 0xBC, 0xE3, 0x83,\n\t// Bytes 2ec0 - 2eff\n\t0x9B, 0xE3, 0x82, 0x9A, 0x0D, 0x4C, 0xE3, 0x83,\n\t0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3,\n\t0x82, 0x99, 0x0D, 0x4F, 0xE1, 0x84, 0x8E, 0xE1,\n\t0x85, 0xA1, 0xE1, 0x86, 0xB7, 0xE1, 0x84, 0x80,\n\t0xE1, 0x85, 0xA9, 0x01, 0x4F, 0xE3, 0x82, 0xA4,\n\t0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xB3, 0xE3, 0x82,\n\t0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3, 0x82,\n\t0xB7, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xB3, 0xE3,\n\t// Bytes 2f00 - 2f3f\n\t0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3,\n\t0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC,\n\t0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D, 0x4F,\n\t0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x83,\n\t0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D,\n\t0x52, 0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xB9, 0xE3,\n\t0x82, 0xAF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88,\n\t0xE3, 0x82, 0x99, 0x0D, 0x52, 0xE3, 0x83, 0x95,\n\t// Bytes 2f40 - 2f7f\n\t0xE3, 0x82, 0xA1, 0xE3, 0x83, 0xA9, 0xE3, 0x83,\n\t0x83, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D,\n\t0x86, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0x01,\n\t0x86, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8F, 0x01,\n\t0x03, 0x3C, 0xCC, 0xB8, 0x05, 0x03, 0x3D, 0xCC,\n\t0xB8, 0x05, 0x03, 0x3E, 0xCC, 0xB8, 0x05, 0x03,\n\t0x41, 0xCC, 0x80, 0xC9, 0x03, 0x41, 0xCC, 0x81,\n\t0xC9, 0x03, 0x41, 0xCC, 0x83, 0xC9, 0x03, 0x41,\n\t// Bytes 2f80 - 2fbf\n\t0xCC, 0x84, 0xC9, 0x03, 0x41, 0xCC, 0x89, 0xC9,\n\t0x03, 0x41, 0xCC, 0x8C, 0xC9, 0x03, 0x41, 0xCC,\n\t0x8F, 0xC9, 0x03, 0x41, 0xCC, 0x91, 0xC9, 0x03,\n\t0x41, 0xCC, 0xA5, 0xB5, 0x03, 0x41, 0xCC, 0xA8,\n\t0xA5, 0x03, 0x42, 0xCC, 0x87, 0xC9, 0x03, 0x42,\n\t0xCC, 0xA3, 0xB5, 0x03, 0x42, 0xCC, 0xB1, 0xB5,\n\t0x03, 0x43, 0xCC, 0x81, 0xC9, 0x03, 0x43, 0xCC,\n\t0x82, 0xC9, 0x03, 0x43, 0xCC, 0x87, 0xC9, 0x03,\n\t// Bytes 2fc0 - 2fff\n\t0x43, 0xCC, 0x8C, 0xC9, 0x03, 0x44, 0xCC, 0x87,\n\t0xC9, 0x03, 0x44, 0xCC, 0x8C, 0xC9, 0x03, 0x44,\n\t0xCC, 0xA3, 0xB5, 0x03, 0x44, 0xCC, 0xA7, 0xA5,\n\t0x03, 0x44, 0xCC, 0xAD, 0xB5, 0x03, 0x44, 0xCC,\n\t0xB1, 0xB5, 0x03, 0x45, 0xCC, 0x80, 0xC9, 0x03,\n\t0x45, 0xCC, 0x81, 0xC9, 0x03, 0x45, 0xCC, 0x83,\n\t0xC9, 0x03, 0x45, 0xCC, 0x86, 0xC9, 0x03, 0x45,\n\t0xCC, 0x87, 0xC9, 0x03, 0x45, 0xCC, 0x88, 0xC9,\n\t// Bytes 3000 - 303f\n\t0x03, 0x45, 0xCC, 0x89, 0xC9, 0x03, 0x45, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x45, 0xCC, 0x8F, 0xC9, 0x03,\n\t0x45, 0xCC, 0x91, 0xC9, 0x03, 0x45, 0xCC, 0xA8,\n\t0xA5, 0x03, 0x45, 0xCC, 0xAD, 0xB5, 0x03, 0x45,\n\t0xCC, 0xB0, 0xB5, 0x03, 0x46, 0xCC, 0x87, 0xC9,\n\t0x03, 0x47, 0xCC, 0x81, 0xC9, 0x03, 0x47, 0xCC,\n\t0x82, 0xC9, 0x03, 0x47, 0xCC, 0x84, 0xC9, 0x03,\n\t0x47, 0xCC, 0x86, 0xC9, 0x03, 0x47, 0xCC, 0x87,\n\t// Bytes 3040 - 307f\n\t0xC9, 0x03, 0x47, 0xCC, 0x8C, 0xC9, 0x03, 0x47,\n\t0xCC, 0xA7, 0xA5, 0x03, 0x48, 0xCC, 0x82, 0xC9,\n\t0x03, 0x48, 0xCC, 0x87, 0xC9, 0x03, 0x48, 0xCC,\n\t0x88, 0xC9, 0x03, 0x48, 0xCC, 0x8C, 0xC9, 0x03,\n\t0x48, 0xCC, 0xA3, 0xB5, 0x03, 0x48, 0xCC, 0xA7,\n\t0xA5, 0x03, 0x48, 0xCC, 0xAE, 0xB5, 0x03, 0x49,\n\t0xCC, 0x80, 0xC9, 0x03, 0x49, 0xCC, 0x81, 0xC9,\n\t0x03, 0x49, 0xCC, 0x82, 0xC9, 0x03, 0x49, 0xCC,\n\t// Bytes 3080 - 30bf\n\t0x83, 0xC9, 0x03, 0x49, 0xCC, 0x84, 0xC9, 0x03,\n\t0x49, 0xCC, 0x86, 0xC9, 0x03, 0x49, 0xCC, 0x87,\n\t0xC9, 0x03, 0x49, 0xCC, 0x89, 0xC9, 0x03, 0x49,\n\t0xCC, 0x8C, 0xC9, 0x03, 0x49, 0xCC, 0x8F, 0xC9,\n\t0x03, 0x49, 0xCC, 0x91, 0xC9, 0x03, 0x49, 0xCC,\n\t0xA3, 0xB5, 0x03, 0x49, 0xCC, 0xA8, 0xA5, 0x03,\n\t0x49, 0xCC, 0xB0, 0xB5, 0x03, 0x4A, 0xCC, 0x82,\n\t0xC9, 0x03, 0x4B, 0xCC, 0x81, 0xC9, 0x03, 0x4B,\n\t// Bytes 30c0 - 30ff\n\t0xCC, 0x8C, 0xC9, 0x03, 0x4B, 0xCC, 0xA3, 0xB5,\n\t0x03, 0x4B, 0xCC, 0xA7, 0xA5, 0x03, 0x4B, 0xCC,\n\t0xB1, 0xB5, 0x03, 0x4C, 0xCC, 0x81, 0xC9, 0x03,\n\t0x4C, 0xCC, 0x8C, 0xC9, 0x03, 0x4C, 0xCC, 0xA7,\n\t0xA5, 0x03, 0x4C, 0xCC, 0xAD, 0xB5, 0x03, 0x4C,\n\t0xCC, 0xB1, 0xB5, 0x03, 0x4D, 0xCC, 0x81, 0xC9,\n\t0x03, 0x4D, 0xCC, 0x87, 0xC9, 0x03, 0x4D, 0xCC,\n\t0xA3, 0xB5, 0x03, 0x4E, 0xCC, 0x80, 0xC9, 0x03,\n\t// Bytes 3100 - 313f\n\t0x4E, 0xCC, 0x81, 0xC9, 0x03, 0x4E, 0xCC, 0x83,\n\t0xC9, 0x03, 0x4E, 0xCC, 0x87, 0xC9, 0x03, 0x4E,\n\t0xCC, 0x8C, 0xC9, 0x03, 0x4E, 0xCC, 0xA3, 0xB5,\n\t0x03, 0x4E, 0xCC, 0xA7, 0xA5, 0x03, 0x4E, 0xCC,\n\t0xAD, 0xB5, 0x03, 0x4E, 0xCC, 0xB1, 0xB5, 0x03,\n\t0x4F, 0xCC, 0x80, 0xC9, 0x03, 0x4F, 0xCC, 0x81,\n\t0xC9, 0x03, 0x4F, 0xCC, 0x86, 0xC9, 0x03, 0x4F,\n\t0xCC, 0x89, 0xC9, 0x03, 0x4F, 0xCC, 0x8B, 0xC9,\n\t// Bytes 3140 - 317f\n\t0x03, 0x4F, 0xCC, 0x8C, 0xC9, 0x03, 0x4F, 0xCC,\n\t0x8F, 0xC9, 0x03, 0x4F, 0xCC, 0x91, 0xC9, 0x03,\n\t0x50, 0xCC, 0x81, 0xC9, 0x03, 0x50, 0xCC, 0x87,\n\t0xC9, 0x03, 0x52, 0xCC, 0x81, 0xC9, 0x03, 0x52,\n\t0xCC, 0x87, 0xC9, 0x03, 0x52, 0xCC, 0x8C, 0xC9,\n\t0x03, 0x52, 0xCC, 0x8F, 0xC9, 0x03, 0x52, 0xCC,\n\t0x91, 0xC9, 0x03, 0x52, 0xCC, 0xA7, 0xA5, 0x03,\n\t0x52, 0xCC, 0xB1, 0xB5, 0x03, 0x53, 0xCC, 0x82,\n\t// Bytes 3180 - 31bf\n\t0xC9, 0x03, 0x53, 0xCC, 0x87, 0xC9, 0x03, 0x53,\n\t0xCC, 0xA6, 0xB5, 0x03, 0x53, 0xCC, 0xA7, 0xA5,\n\t0x03, 0x54, 0xCC, 0x87, 0xC9, 0x03, 0x54, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x54, 0xCC, 0xA3, 0xB5, 0x03,\n\t0x54, 0xCC, 0xA6, 0xB5, 0x03, 0x54, 0xCC, 0xA7,\n\t0xA5, 0x03, 0x54, 0xCC, 0xAD, 0xB5, 0x03, 0x54,\n\t0xCC, 0xB1, 0xB5, 0x03, 0x55, 0xCC, 0x80, 0xC9,\n\t0x03, 0x55, 0xCC, 0x81, 0xC9, 0x03, 0x55, 0xCC,\n\t// Bytes 31c0 - 31ff\n\t0x82, 0xC9, 0x03, 0x55, 0xCC, 0x86, 0xC9, 0x03,\n\t0x55, 0xCC, 0x89, 0xC9, 0x03, 0x55, 0xCC, 0x8A,\n\t0xC9, 0x03, 0x55, 0xCC, 0x8B, 0xC9, 0x03, 0x55,\n\t0xCC, 0x8C, 0xC9, 0x03, 0x55, 0xCC, 0x8F, 0xC9,\n\t0x03, 0x55, 0xCC, 0x91, 0xC9, 0x03, 0x55, 0xCC,\n\t0xA3, 0xB5, 0x03, 0x55, 0xCC, 0xA4, 0xB5, 0x03,\n\t0x55, 0xCC, 0xA8, 0xA5, 0x03, 0x55, 0xCC, 0xAD,\n\t0xB5, 0x03, 0x55, 0xCC, 0xB0, 0xB5, 0x03, 0x56,\n\t// Bytes 3200 - 323f\n\t0xCC, 0x83, 0xC9, 0x03, 0x56, 0xCC, 0xA3, 0xB5,\n\t0x03, 0x57, 0xCC, 0x80, 0xC9, 0x03, 0x57, 0xCC,\n\t0x81, 0xC9, 0x03, 0x57, 0xCC, 0x82, 0xC9, 0x03,\n\t0x57, 0xCC, 0x87, 0xC9, 0x03, 0x57, 0xCC, 0x88,\n\t0xC9, 0x03, 0x57, 0xCC, 0xA3, 0xB5, 0x03, 0x58,\n\t0xCC, 0x87, 0xC9, 0x03, 0x58, 0xCC, 0x88, 0xC9,\n\t0x03, 0x59, 0xCC, 0x80, 0xC9, 0x03, 0x59, 0xCC,\n\t0x81, 0xC9, 0x03, 0x59, 0xCC, 0x82, 0xC9, 0x03,\n\t// Bytes 3240 - 327f\n\t0x59, 0xCC, 0x83, 0xC9, 0x03, 0x59, 0xCC, 0x84,\n\t0xC9, 0x03, 0x59, 0xCC, 0x87, 0xC9, 0x03, 0x59,\n\t0xCC, 0x88, 0xC9, 0x03, 0x59, 0xCC, 0x89, 0xC9,\n\t0x03, 0x59, 0xCC, 0xA3, 0xB5, 0x03, 0x5A, 0xCC,\n\t0x81, 0xC9, 0x03, 0x5A, 0xCC, 0x82, 0xC9, 0x03,\n\t0x5A, 0xCC, 0x87, 0xC9, 0x03, 0x5A, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x5A, 0xCC, 0xA3, 0xB5, 0x03, 0x5A,\n\t0xCC, 0xB1, 0xB5, 0x03, 0x61, 0xCC, 0x80, 0xC9,\n\t// Bytes 3280 - 32bf\n\t0x03, 0x61, 0xCC, 0x81, 0xC9, 0x03, 0x61, 0xCC,\n\t0x83, 0xC9, 0x03, 0x61, 0xCC, 0x84, 0xC9, 0x03,\n\t0x61, 0xCC, 0x89, 0xC9, 0x03, 0x61, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x61, 0xCC, 0x8F, 0xC9, 0x03, 0x61,\n\t0xCC, 0x91, 0xC9, 0x03, 0x61, 0xCC, 0xA5, 0xB5,\n\t0x03, 0x61, 0xCC, 0xA8, 0xA5, 0x03, 0x62, 0xCC,\n\t0x87, 0xC9, 0x03, 0x62, 0xCC, 0xA3, 0xB5, 0x03,\n\t0x62, 0xCC, 0xB1, 0xB5, 0x03, 0x63, 0xCC, 0x81,\n\t// Bytes 32c0 - 32ff\n\t0xC9, 0x03, 0x63, 0xCC, 0x82, 0xC9, 0x03, 0x63,\n\t0xCC, 0x87, 0xC9, 0x03, 0x63, 0xCC, 0x8C, 0xC9,\n\t0x03, 0x64, 0xCC, 0x87, 0xC9, 0x03, 0x64, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x64, 0xCC, 0xA3, 0xB5, 0x03,\n\t0x64, 0xCC, 0xA7, 0xA5, 0x03, 0x64, 0xCC, 0xAD,\n\t0xB5, 0x03, 0x64, 0xCC, 0xB1, 0xB5, 0x03, 0x65,\n\t0xCC, 0x80, 0xC9, 0x03, 0x65, 0xCC, 0x81, 0xC9,\n\t0x03, 0x65, 0xCC, 0x83, 0xC9, 0x03, 0x65, 0xCC,\n\t// Bytes 3300 - 333f\n\t0x86, 0xC9, 0x03, 0x65, 0xCC, 0x87, 0xC9, 0x03,\n\t0x65, 0xCC, 0x88, 0xC9, 0x03, 0x65, 0xCC, 0x89,\n\t0xC9, 0x03, 0x65, 0xCC, 0x8C, 0xC9, 0x03, 0x65,\n\t0xCC, 0x8F, 0xC9, 0x03, 0x65, 0xCC, 0x91, 0xC9,\n\t0x03, 0x65, 0xCC, 0xA8, 0xA5, 0x03, 0x65, 0xCC,\n\t0xAD, 0xB5, 0x03, 0x65, 0xCC, 0xB0, 0xB5, 0x03,\n\t0x66, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC, 0x81,\n\t0xC9, 0x03, 0x67, 0xCC, 0x82, 0xC9, 0x03, 0x67,\n\t// Bytes 3340 - 337f\n\t0xCC, 0x84, 0xC9, 0x03, 0x67, 0xCC, 0x86, 0xC9,\n\t0x03, 0x67, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x67, 0xCC, 0xA7, 0xA5, 0x03,\n\t0x68, 0xCC, 0x82, 0xC9, 0x03, 0x68, 0xCC, 0x87,\n\t0xC9, 0x03, 0x68, 0xCC, 0x88, 0xC9, 0x03, 0x68,\n\t0xCC, 0x8C, 0xC9, 0x03, 0x68, 0xCC, 0xA3, 0xB5,\n\t0x03, 0x68, 0xCC, 0xA7, 0xA5, 0x03, 0x68, 0xCC,\n\t0xAE, 0xB5, 0x03, 0x68, 0xCC, 0xB1, 0xB5, 0x03,\n\t// Bytes 3380 - 33bf\n\t0x69, 0xCC, 0x80, 0xC9, 0x03, 0x69, 0xCC, 0x81,\n\t0xC9, 0x03, 0x69, 0xCC, 0x82, 0xC9, 0x03, 0x69,\n\t0xCC, 0x83, 0xC9, 0x03, 0x69, 0xCC, 0x84, 0xC9,\n\t0x03, 0x69, 0xCC, 0x86, 0xC9, 0x03, 0x69, 0xCC,\n\t0x89, 0xC9, 0x03, 0x69, 0xCC, 0x8C, 0xC9, 0x03,\n\t0x69, 0xCC, 0x8F, 0xC9, 0x03, 0x69, 0xCC, 0x91,\n\t0xC9, 0x03, 0x69, 0xCC, 0xA3, 0xB5, 0x03, 0x69,\n\t0xCC, 0xA8, 0xA5, 0x03, 0x69, 0xCC, 0xB0, 0xB5,\n\t// Bytes 33c0 - 33ff\n\t0x03, 0x6A, 0xCC, 0x82, 0xC9, 0x03, 0x6A, 0xCC,\n\t0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0x81, 0xC9, 0x03,\n\t0x6B, 0xCC, 0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0xA3,\n\t0xB5, 0x03, 0x6B, 0xCC, 0xA7, 0xA5, 0x03, 0x6B,\n\t0xCC, 0xB1, 0xB5, 0x03, 0x6C, 0xCC, 0x81, 0xC9,\n\t0x03, 0x6C, 0xCC, 0x8C, 0xC9, 0x03, 0x6C, 0xCC,\n\t0xA7, 0xA5, 0x03, 0x6C, 0xCC, 0xAD, 0xB5, 0x03,\n\t0x6C, 0xCC, 0xB1, 0xB5, 0x03, 0x6D, 0xCC, 0x81,\n\t// Bytes 3400 - 343f\n\t0xC9, 0x03, 0x6D, 0xCC, 0x87, 0xC9, 0x03, 0x6D,\n\t0xCC, 0xA3, 0xB5, 0x03, 0x6E, 0xCC, 0x80, 0xC9,\n\t0x03, 0x6E, 0xCC, 0x81, 0xC9, 0x03, 0x6E, 0xCC,\n\t0x83, 0xC9, 0x03, 0x6E, 0xCC, 0x87, 0xC9, 0x03,\n\t0x6E, 0xCC, 0x8C, 0xC9, 0x03, 0x6E, 0xCC, 0xA3,\n\t0xB5, 0x03, 0x6E, 0xCC, 0xA7, 0xA5, 0x03, 0x6E,\n\t0xCC, 0xAD, 0xB5, 0x03, 0x6E, 0xCC, 0xB1, 0xB5,\n\t0x03, 0x6F, 0xCC, 0x80, 0xC9, 0x03, 0x6F, 0xCC,\n\t// Bytes 3440 - 347f\n\t0x81, 0xC9, 0x03, 0x6F, 0xCC, 0x86, 0xC9, 0x03,\n\t0x6F, 0xCC, 0x89, 0xC9, 0x03, 0x6F, 0xCC, 0x8B,\n\t0xC9, 0x03, 0x6F, 0xCC, 0x8C, 0xC9, 0x03, 0x6F,\n\t0xCC, 0x8F, 0xC9, 0x03, 0x6F, 0xCC, 0x91, 0xC9,\n\t0x03, 0x70, 0xCC, 0x81, 0xC9, 0x03, 0x70, 0xCC,\n\t0x87, 0xC9, 0x03, 0x72, 0xCC, 0x81, 0xC9, 0x03,\n\t0x72, 0xCC, 0x87, 0xC9, 0x03, 0x72, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x72, 0xCC, 0x8F, 0xC9, 0x03, 0x72,\n\t// Bytes 3480 - 34bf\n\t0xCC, 0x91, 0xC9, 0x03, 0x72, 0xCC, 0xA7, 0xA5,\n\t0x03, 0x72, 0xCC, 0xB1, 0xB5, 0x03, 0x73, 0xCC,\n\t0x82, 0xC9, 0x03, 0x73, 0xCC, 0x87, 0xC9, 0x03,\n\t0x73, 0xCC, 0xA6, 0xB5, 0x03, 0x73, 0xCC, 0xA7,\n\t0xA5, 0x03, 0x74, 0xCC, 0x87, 0xC9, 0x03, 0x74,\n\t0xCC, 0x88, 0xC9, 0x03, 0x74, 0xCC, 0x8C, 0xC9,\n\t0x03, 0x74, 0xCC, 0xA3, 0xB5, 0x03, 0x74, 0xCC,\n\t0xA6, 0xB5, 0x03, 0x74, 0xCC, 0xA7, 0xA5, 0x03,\n\t// Bytes 34c0 - 34ff\n\t0x74, 0xCC, 0xAD, 0xB5, 0x03, 0x74, 0xCC, 0xB1,\n\t0xB5, 0x03, 0x75, 0xCC, 0x80, 0xC9, 0x03, 0x75,\n\t0xCC, 0x81, 0xC9, 0x03, 0x75, 0xCC, 0x82, 0xC9,\n\t0x03, 0x75, 0xCC, 0x86, 0xC9, 0x03, 0x75, 0xCC,\n\t0x89, 0xC9, 0x03, 0x75, 0xCC, 0x8A, 0xC9, 0x03,\n\t0x75, 0xCC, 0x8B, 0xC9, 0x03, 0x75, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x75, 0xCC, 0x8F, 0xC9, 0x03, 0x75,\n\t0xCC, 0x91, 0xC9, 0x03, 0x75, 0xCC, 0xA3, 0xB5,\n\t// Bytes 3500 - 353f\n\t0x03, 0x75, 0xCC, 0xA4, 0xB5, 0x03, 0x75, 0xCC,\n\t0xA8, 0xA5, 0x03, 0x75, 0xCC, 0xAD, 0xB5, 0x03,\n\t0x75, 0xCC, 0xB0, 0xB5, 0x03, 0x76, 0xCC, 0x83,\n\t0xC9, 0x03, 0x76, 0xCC, 0xA3, 0xB5, 0x03, 0x77,\n\t0xCC, 0x80, 0xC9, 0x03, 0x77, 0xCC, 0x81, 0xC9,\n\t0x03, 0x77, 0xCC, 0x82, 0xC9, 0x03, 0x77, 0xCC,\n\t0x87, 0xC9, 0x03, 0x77, 0xCC, 0x88, 0xC9, 0x03,\n\t0x77, 0xCC, 0x8A, 0xC9, 0x03, 0x77, 0xCC, 0xA3,\n\t// Bytes 3540 - 357f\n\t0xB5, 0x03, 0x78, 0xCC, 0x87, 0xC9, 0x03, 0x78,\n\t0xCC, 0x88, 0xC9, 0x03, 0x79, 0xCC, 0x80, 0xC9,\n\t0x03, 0x79, 0xCC, 0x81, 0xC9, 0x03, 0x79, 0xCC,\n\t0x82, 0xC9, 0x03, 0x79, 0xCC, 0x83, 0xC9, 0x03,\n\t0x79, 0xCC, 0x84, 0xC9, 0x03, 0x79, 0xCC, 0x87,\n\t0xC9, 0x03, 0x79, 0xCC, 0x88, 0xC9, 0x03, 0x79,\n\t0xCC, 0x89, 0xC9, 0x03, 0x79, 0xCC, 0x8A, 0xC9,\n\t0x03, 0x79, 0xCC, 0xA3, 0xB5, 0x03, 0x7A, 0xCC,\n\t// Bytes 3580 - 35bf\n\t0x81, 0xC9, 0x03, 0x7A, 0xCC, 0x82, 0xC9, 0x03,\n\t0x7A, 0xCC, 0x87, 0xC9, 0x03, 0x7A, 0xCC, 0x8C,\n\t0xC9, 0x03, 0x7A, 0xCC, 0xA3, 0xB5, 0x03, 0x7A,\n\t0xCC, 0xB1, 0xB5, 0x04, 0xC2, 0xA8, 0xCC, 0x80,\n\t0xCA, 0x04, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x04,\n\t0xC2, 0xA8, 0xCD, 0x82, 0xCA, 0x04, 0xC3, 0x86,\n\t0xCC, 0x81, 0xC9, 0x04, 0xC3, 0x86, 0xCC, 0x84,\n\t0xC9, 0x04, 0xC3, 0x98, 0xCC, 0x81, 0xC9, 0x04,\n\t// Bytes 35c0 - 35ff\n\t0xC3, 0xA6, 0xCC, 0x81, 0xC9, 0x04, 0xC3, 0xA6,\n\t0xCC, 0x84, 0xC9, 0x04, 0xC3, 0xB8, 0xCC, 0x81,\n\t0xC9, 0x04, 0xC5, 0xBF, 0xCC, 0x87, 0xC9, 0x04,\n\t0xC6, 0xB7, 0xCC, 0x8C, 0xC9, 0x04, 0xCA, 0x92,\n\t0xCC, 0x8C, 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x80,\n\t0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x81, 0xC9, 0x04,\n\t0xCE, 0x91, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0x91,\n\t0xCC, 0x86, 0xC9, 0x04, 0xCE, 0x91, 0xCD, 0x85,\n\t// Bytes 3600 - 363f\n\t0xD9, 0x04, 0xCE, 0x95, 0xCC, 0x80, 0xC9, 0x04,\n\t0xCE, 0x95, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x97,\n\t0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x97, 0xCC, 0x81,\n\t0xC9, 0x04, 0xCE, 0x97, 0xCD, 0x85, 0xD9, 0x04,\n\t0xCE, 0x99, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x99,\n\t0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x84,\n\t0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x86, 0xC9, 0x04,\n\t0xCE, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0x9F,\n\t// Bytes 3640 - 367f\n\t0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x9F, 0xCC, 0x81,\n\t0xC9, 0x04, 0xCE, 0xA1, 0xCC, 0x94, 0xC9, 0x04,\n\t0xCE, 0xA5, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA5,\n\t0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x84,\n\t0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x86, 0xC9, 0x04,\n\t0xCE, 0xA5, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0xA9,\n\t0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA9, 0xCC, 0x81,\n\t0xC9, 0x04, 0xCE, 0xA9, 0xCD, 0x85, 0xD9, 0x04,\n\t// Bytes 3680 - 36bf\n\t0xCE, 0xB1, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB1,\n\t0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB1, 0xCD, 0x85,\n\t0xD9, 0x04, 0xCE, 0xB5, 0xCC, 0x80, 0xC9, 0x04,\n\t0xCE, 0xB5, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xB7,\n\t0xCD, 0x85, 0xD9, 0x04, 0xCE, 0xB9, 0xCC, 0x80,\n\t0xC9, 0x04, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x04,\n\t0xCE, 0xB9, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB9,\n\t0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB9, 0xCD, 0x82,\n\t// Bytes 36c0 - 36ff\n\t0xC9, 0x04, 0xCE, 0xBF, 0xCC, 0x80, 0xC9, 0x04,\n\t0xCE, 0xBF, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x81,\n\t0xCC, 0x93, 0xC9, 0x04, 0xCF, 0x81, 0xCC, 0x94,\n\t0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x80, 0xC9, 0x04,\n\t0xCF, 0x85, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x85,\n\t0xCC, 0x84, 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x86,\n\t0xC9, 0x04, 0xCF, 0x85, 0xCD, 0x82, 0xC9, 0x04,\n\t0xCF, 0x89, 0xCD, 0x85, 0xD9, 0x04, 0xCF, 0x92,\n\t// Bytes 3700 - 373f\n\t0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x92, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD0, 0x86, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD0, 0x90, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x90,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x93, 0xCC, 0x81,\n\t0xC9, 0x04, 0xD0, 0x95, 0xCC, 0x80, 0xC9, 0x04,\n\t0xD0, 0x95, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x95,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x86,\n\t0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x88, 0xC9, 0x04,\n\t// Bytes 3740 - 377f\n\t0xD0, 0x97, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x98,\n\t0xCC, 0x80, 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x84,\n\t0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x86, 0xC9, 0x04,\n\t0xD0, 0x98, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x9A,\n\t0xCC, 0x81, 0xC9, 0x04, 0xD0, 0x9E, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x84, 0xC9, 0x04,\n\t0xD0, 0xA3, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xA3,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x8B,\n\t// Bytes 3780 - 37bf\n\t0xC9, 0x04, 0xD0, 0xA7, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD0, 0xAB, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xAD,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x86,\n\t0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD0, 0xB3, 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0xB5,\n\t0xCC, 0x80, 0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x86,\n\t0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD0, 0xB6, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB6,\n\t// Bytes 37c0 - 37ff\n\t0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB7, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x80, 0xC9, 0x04,\n\t0xD0, 0xB8, 0xCC, 0x84, 0xC9, 0x04, 0xD0, 0xB8,\n\t0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD0, 0xBA, 0xCC, 0x81, 0xC9, 0x04,\n\t0xD0, 0xBE, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x83,\n\t0xCC, 0x84, 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x86,\n\t0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x88, 0xC9, 0x04,\n\t// Bytes 3800 - 383f\n\t0xD1, 0x83, 0xCC, 0x8B, 0xC9, 0x04, 0xD1, 0x87,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x8B, 0xCC, 0x88,\n\t0xC9, 0x04, 0xD1, 0x8D, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD1, 0x96, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0xB4,\n\t0xCC, 0x8F, 0xC9, 0x04, 0xD1, 0xB5, 0xCC, 0x8F,\n\t0xC9, 0x04, 0xD3, 0x98, 0xCC, 0x88, 0xC9, 0x04,\n\t0xD3, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA8,\n\t0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA9, 0xCC, 0x88,\n\t// Bytes 3840 - 387f\n\t0xC9, 0x04, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, 0x04,\n\t0xD8, 0xA7, 0xD9, 0x94, 0xC9, 0x04, 0xD8, 0xA7,\n\t0xD9, 0x95, 0xB5, 0x04, 0xD9, 0x88, 0xD9, 0x94,\n\t0xC9, 0x04, 0xD9, 0x8A, 0xD9, 0x94, 0xC9, 0x04,\n\t0xDB, 0x81, 0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x92,\n\t0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x95, 0xD9, 0x94,\n\t0xC9, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x80, 0xCA,\n\t0x05, 0x41, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05,\n\t// Bytes 3880 - 38bf\n\t0x41, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x41,\n\t0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x41, 0xCC,\n\t0x86, 0xCC, 0x80, 0xCA, 0x05, 0x41, 0xCC, 0x86,\n\t0xCC, 0x81, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC,\n\t0x83, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC, 0x89,\n\t0xCA, 0x05, 0x41, 0xCC, 0x87, 0xCC, 0x84, 0xCA,\n\t0x05, 0x41, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05,\n\t0x41, 0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x41,\n\t// Bytes 38c0 - 38ff\n\t0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x41, 0xCC,\n\t0xA3, 0xCC, 0x86, 0xCA, 0x05, 0x43, 0xCC, 0xA7,\n\t0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC,\n\t0x80, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x81,\n\t0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x83, 0xCA,\n\t0x05, 0x45, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05,\n\t0x45, 0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x45,\n\t0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC,\n\t// Bytes 3900 - 393f\n\t0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x45, 0xCC, 0xA7,\n\t0xCC, 0x86, 0xCA, 0x05, 0x49, 0xCC, 0x88, 0xCC,\n\t0x81, 0xCA, 0x05, 0x4C, 0xCC, 0xA3, 0xCC, 0x84,\n\t0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x80, 0xCA,\n\t0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05,\n\t0x4F, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x4F,\n\t0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x4F, 0xCC,\n\t0x83, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x83,\n\t// Bytes 3940 - 397f\n\t0xCC, 0x84, 0xCA, 0x05, 0x4F, 0xCC, 0x83, 0xCC,\n\t0x88, 0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x80,\n\t0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x81, 0xCA,\n\t0x05, 0x4F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05,\n\t0x4F, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x4F,\n\t0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x4F, 0xCC,\n\t0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x9B,\n\t0xCC, 0x83, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC,\n\t// Bytes 3980 - 39bf\n\t0x89, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0xA3,\n\t0xB6, 0x05, 0x4F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA,\n\t0x05, 0x4F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05,\n\t0x52, 0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x53,\n\t0xCC, 0x81, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC,\n\t0x8C, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC, 0xA3,\n\t0xCC, 0x87, 0xCA, 0x05, 0x55, 0xCC, 0x83, 0xCC,\n\t0x81, 0xCA, 0x05, 0x55, 0xCC, 0x84, 0xCC, 0x88,\n\t// Bytes 39c0 - 39ff\n\t0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x80, 0xCA,\n\t0x05, 0x55, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05,\n\t0x55, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x55,\n\t0xCC, 0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x55, 0xCC,\n\t0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x55, 0xCC, 0x9B,\n\t0xCC, 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC,\n\t0x83, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x89,\n\t0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6,\n\t// Bytes 3a00 - 3a3f\n\t0x05, 0x61, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05,\n\t0x61, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x61,\n\t0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x61, 0xCC,\n\t0x82, 0xCC, 0x89, 0xCA, 0x05, 0x61, 0xCC, 0x86,\n\t0xCC, 0x80, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC,\n\t0x81, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x83,\n\t0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x89, 0xCA,\n\t0x05, 0x61, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05,\n\t// Bytes 3a40 - 3a7f\n\t0x61, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x61,\n\t0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x61, 0xCC,\n\t0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x61, 0xCC, 0xA3,\n\t0xCC, 0x86, 0xCA, 0x05, 0x63, 0xCC, 0xA7, 0xCC,\n\t0x81, 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x80,\n\t0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x81, 0xCA,\n\t0x05, 0x65, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05,\n\t0x65, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x65,\n\t// Bytes 3a80 - 3abf\n\t0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x65, 0xCC,\n\t0x84, 0xCC, 0x81, 0xCA, 0x05, 0x65, 0xCC, 0xA3,\n\t0xCC, 0x82, 0xCA, 0x05, 0x65, 0xCC, 0xA7, 0xCC,\n\t0x86, 0xCA, 0x05, 0x69, 0xCC, 0x88, 0xCC, 0x81,\n\t0xCA, 0x05, 0x6C, 0xCC, 0xA3, 0xCC, 0x84, 0xCA,\n\t0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05,\n\t0x6F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x6F,\n\t0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x6F, 0xCC,\n\t// Bytes 3ac0 - 3aff\n\t0x82, 0xCC, 0x89, 0xCA, 0x05, 0x6F, 0xCC, 0x83,\n\t0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC,\n\t0x84, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC, 0x88,\n\t0xCA, 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x80, 0xCA,\n\t0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05,\n\t0x6F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, 0x6F,\n\t0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x6F, 0xCC,\n\t0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x6F, 0xCC, 0x9B,\n\t// Bytes 3b00 - 3b3f\n\t0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC,\n\t0x83, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x89,\n\t0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6,\n\t0x05, 0x6F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05,\n\t0x6F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05, 0x72,\n\t0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x73, 0xCC,\n\t0x81, 0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0x8C,\n\t0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0xA3, 0xCC,\n\t// Bytes 3b40 - 3b7f\n\t0x87, 0xCA, 0x05, 0x75, 0xCC, 0x83, 0xCC, 0x81,\n\t0xCA, 0x05, 0x75, 0xCC, 0x84, 0xCC, 0x88, 0xCA,\n\t0x05, 0x75, 0xCC, 0x88, 0xCC, 0x80, 0xCA, 0x05,\n\t0x75, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, 0x75,\n\t0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x75, 0xCC,\n\t0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x75, 0xCC, 0x9B,\n\t0xCC, 0x80, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC,\n\t0x81, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x83,\n\t// Bytes 3b80 - 3bbf\n\t0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x89, 0xCA,\n\t0x05, 0x75, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, 0x05,\n\t0xE1, 0xBE, 0xBF, 0xCC, 0x80, 0xCA, 0x05, 0xE1,\n\t0xBE, 0xBF, 0xCC, 0x81, 0xCA, 0x05, 0xE1, 0xBE,\n\t0xBF, 0xCD, 0x82, 0xCA, 0x05, 0xE1, 0xBF, 0xBE,\n\t0xCC, 0x80, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCC,\n\t0x81, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCD, 0x82,\n\t0xCA, 0x05, 0xE2, 0x86, 0x90, 0xCC, 0xB8, 0x05,\n\t// Bytes 3bc0 - 3bff\n\t0x05, 0xE2, 0x86, 0x92, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x86, 0x94, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x87, 0x90, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87,\n\t0x92, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, 0x94,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x83, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x88, 0x88, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x88, 0x8B, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x88, 0xA3, 0xCC, 0xB8, 0x05, 0x05,\n\t// Bytes 3c00 - 3c3f\n\t0xE2, 0x88, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x88, 0xBC, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89,\n\t0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x85,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x88, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x89, 0x8D, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x89, 0xA1, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x89, 0xA4, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x89, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t// Bytes 3c40 - 3c7f\n\t0x89, 0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89,\n\t0xB3, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB6,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB7, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBA, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x89, 0xBB, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x89, 0xBC, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x89, 0xBD, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x8A, 0x82, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,\n\t// Bytes 3c80 - 3cbf\n\t0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x86,\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x87, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x91, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x8A, 0x92, 0xCC, 0xB8, 0x05,\n\t0x05, 0xE2, 0x8A, 0xA2, 0xCC, 0xB8, 0x05, 0x05,\n\t0xE2, 0x8A, 0xA8, 0xCC, 0xB8, 0x05, 0x05, 0xE2,\n\t0x8A, 0xA9, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,\n\t0xAB, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB2,\n\t// Bytes 3cc0 - 3cff\n\t0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB3, 0xCC,\n\t0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB4, 0xCC, 0xB8,\n\t0x05, 0x05, 0xE2, 0x8A, 0xB5, 0xCC, 0xB8, 0x05,\n\t0x06, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t// Bytes 3d00 - 3d3f\n\t0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t// Bytes 3d40 - 3d7f\n\t0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x82, 0xCA,\n\t// Bytes 3d80 - 3dbf\n\t0x06, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCC, 0x81, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t// Bytes 3dc0 - 3dff\n\t0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x85, 0xDA,\n\t// Bytes 3e00 - 3e3f\n\t0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t// Bytes 3e40 - 3e7f\n\t0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCD, 0x82, 0xCA,\n\t// Bytes 3e80 - 3ebf\n\t0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x80, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x81, 0xCA,\n\t0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x82, 0xCA,\n\t0x06, 0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x85, 0xDA,\n\t// Bytes 3ec0 - 3eff\n\t0x06, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x85, 0xDA,\n\t0x06, 0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x85, 0xDA,\n\t0x06, 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBC, 0x09,\n\t0x06, 0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBC, 0x09,\n\t0x06, 0xE0, 0xA4, 0xB3, 0xE0, 0xA4, 0xBC, 0x09,\n\t0x06, 0xE0, 0xB1, 0x86, 0xE0, 0xB1, 0x96, 0x85,\n\t0x06, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8A, 0x11,\n\t// Bytes 3f00 - 3f3f\n\t0x06, 0xE3, 0x81, 0x86, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x8B, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x8D, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x8F, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x91, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x93, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x95, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x97, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 3f40 - 3f7f\n\t0x06, 0xE3, 0x81, 0x99, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x9B, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x9D, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0x9F, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xA1, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xA4, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xA6, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xA8, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 3f80 - 3fbf\n\t0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x9A, 0x0D,\n\t// Bytes 3fc0 - 3fff\n\t0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x82, 0x9D, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 4000 - 403f\n\t0x06, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xB5, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xBD, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x81, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 4040 - 407f\n\t0x06, 0xE3, 0x83, 0x84, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 4080 - 40bf\n\t0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x06, 0xE3, 0x83, 0xAF, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0xB0, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0xB1, 0xE3, 0x82, 0x99, 0x0D,\n\t// Bytes 40c0 - 40ff\n\t0x06, 0xE3, 0x83, 0xB2, 0xE3, 0x82, 0x99, 0x0D,\n\t0x06, 0xE3, 0x83, 0xBD, 0xE3, 0x82, 0x99, 0x0D,\n\t0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC,\n\t0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC,\n\t0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCD,\n\t// Bytes 4100 - 413f\n\t0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCD,\n\t0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC,\n\t0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x94, 0xCC,\n\t0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC,\n\t0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t// Bytes 4140 - 417f\n\t0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC,\n\t0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC,\n\t0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCD,\n\t// Bytes 4180 - 41bf\n\t0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC,\n\t0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x94, 0xCC,\n\t0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC,\n\t0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB,\n\t// Bytes 41c0 - 41ff\n\t0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC,\n\t0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC,\n\t0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE,\n\t0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCD,\n\t0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC,\n\t// Bytes 4200 - 423f\n\t0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF,\n\t0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB,\n\t0x08, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCD,\n\t0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x94, 0xCC,\n\t0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC,\n\t0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCF,\n\t0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB,\n\t0x08, 0xF0, 0x91, 0x82, 0x99, 0xF0, 0x91, 0x82,\n\t// Bytes 4240 - 427f\n\t0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82, 0x9B, 0xF0,\n\t0x91, 0x82, 0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82,\n\t0xA5, 0xF0, 0x91, 0x82, 0xBA, 0x09, 0x42, 0xC2,\n\t0xB4, 0x01, 0x43, 0x20, 0xCC, 0x81, 0xC9, 0x43,\n\t0x20, 0xCC, 0x83, 0xC9, 0x43, 0x20, 0xCC, 0x84,\n\t0xC9, 0x43, 0x20, 0xCC, 0x85, 0xC9, 0x43, 0x20,\n\t0xCC, 0x86, 0xC9, 0x43, 0x20, 0xCC, 0x87, 0xC9,\n\t0x43, 0x20, 0xCC, 0x88, 0xC9, 0x43, 0x20, 0xCC,\n\t// Bytes 4280 - 42bf\n\t0x8A, 0xC9, 0x43, 0x20, 0xCC, 0x8B, 0xC9, 0x43,\n\t0x20, 0xCC, 0x93, 0xC9, 0x43, 0x20, 0xCC, 0x94,\n\t0xC9, 0x43, 0x20, 0xCC, 0xA7, 0xA5, 0x43, 0x20,\n\t0xCC, 0xA8, 0xA5, 0x43, 0x20, 0xCC, 0xB3, 0xB5,\n\t0x43, 0x20, 0xCD, 0x82, 0xC9, 0x43, 0x20, 0xCD,\n\t0x85, 0xD9, 0x43, 0x20, 0xD9, 0x8B, 0x59, 0x43,\n\t0x20, 0xD9, 0x8C, 0x5D, 0x43, 0x20, 0xD9, 0x8D,\n\t0x61, 0x43, 0x20, 0xD9, 0x8E, 0x65, 0x43, 0x20,\n\t// Bytes 42c0 - 42ff\n\t0xD9, 0x8F, 0x69, 0x43, 0x20, 0xD9, 0x90, 0x6D,\n\t0x43, 0x20, 0xD9, 0x91, 0x71, 0x43, 0x20, 0xD9,\n\t0x92, 0x75, 0x43, 0x41, 0xCC, 0x8A, 0xC9, 0x43,\n\t0x73, 0xCC, 0x87, 0xC9, 0x44, 0x20, 0xE3, 0x82,\n\t0x99, 0x0D, 0x44, 0x20, 0xE3, 0x82, 0x9A, 0x0D,\n\t0x44, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x44, 0xCE,\n\t0x91, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x95, 0xCC,\n\t0x81, 0xC9, 0x44, 0xCE, 0x97, 0xCC, 0x81, 0xC9,\n\t// Bytes 4300 - 433f\n\t0x44, 0xCE, 0x99, 0xCC, 0x81, 0xC9, 0x44, 0xCE,\n\t0x9F, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC,\n\t0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC, 0x88, 0xC9,\n\t0x44, 0xCE, 0xA9, 0xCC, 0x81, 0xC9, 0x44, 0xCE,\n\t0xB1, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xB5, 0xCC,\n\t0x81, 0xC9, 0x44, 0xCE, 0xB7, 0xCC, 0x81, 0xC9,\n\t0x44, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x44, 0xCE,\n\t0xBF, 0xCC, 0x81, 0xC9, 0x44, 0xCF, 0x85, 0xCC,\n\t// Bytes 4340 - 437f\n\t0x81, 0xC9, 0x44, 0xCF, 0x89, 0xCC, 0x81, 0xC9,\n\t0x44, 0xD7, 0x90, 0xD6, 0xB7, 0x31, 0x44, 0xD7,\n\t0x90, 0xD6, 0xB8, 0x35, 0x44, 0xD7, 0x90, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0x91, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0x91, 0xD6, 0xBF, 0x49, 0x44, 0xD7,\n\t0x92, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x93, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0x94, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0x95, 0xD6, 0xB9, 0x39, 0x44, 0xD7,\n\t// Bytes 4380 - 43bf\n\t0x95, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x96, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0x98, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0x99, 0xD6, 0xB4, 0x25, 0x44, 0xD7,\n\t0x99, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9A, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0x9B, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0x9B, 0xD6, 0xBF, 0x49, 0x44, 0xD7,\n\t0x9C, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9E, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0xA0, 0xD6, 0xBC, 0x41,\n\t// Bytes 43c0 - 43ff\n\t0x44, 0xD7, 0xA1, 0xD6, 0xBC, 0x41, 0x44, 0xD7,\n\t0xA3, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6, 0xBF, 0x49,\n\t0x44, 0xD7, 0xA6, 0xD6, 0xBC, 0x41, 0x44, 0xD7,\n\t0xA7, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA8, 0xD6,\n\t0xBC, 0x41, 0x44, 0xD7, 0xA9, 0xD6, 0xBC, 0x41,\n\t0x44, 0xD7, 0xA9, 0xD7, 0x81, 0x4D, 0x44, 0xD7,\n\t0xA9, 0xD7, 0x82, 0x51, 0x44, 0xD7, 0xAA, 0xD6,\n\t// Bytes 4400 - 443f\n\t0xBC, 0x41, 0x44, 0xD7, 0xB2, 0xD6, 0xB7, 0x31,\n\t0x44, 0xD8, 0xA7, 0xD9, 0x8B, 0x59, 0x44, 0xD8,\n\t0xA7, 0xD9, 0x93, 0xC9, 0x44, 0xD8, 0xA7, 0xD9,\n\t0x94, 0xC9, 0x44, 0xD8, 0xA7, 0xD9, 0x95, 0xB5,\n\t0x44, 0xD8, 0xB0, 0xD9, 0xB0, 0x79, 0x44, 0xD8,\n\t0xB1, 0xD9, 0xB0, 0x79, 0x44, 0xD9, 0x80, 0xD9,\n\t0x8B, 0x59, 0x44, 0xD9, 0x80, 0xD9, 0x8E, 0x65,\n\t0x44, 0xD9, 0x80, 0xD9, 0x8F, 0x69, 0x44, 0xD9,\n\t// Bytes 4440 - 447f\n\t0x80, 0xD9, 0x90, 0x6D, 0x44, 0xD9, 0x80, 0xD9,\n\t0x91, 0x71, 0x44, 0xD9, 0x80, 0xD9, 0x92, 0x75,\n\t0x44, 0xD9, 0x87, 0xD9, 0xB0, 0x79, 0x44, 0xD9,\n\t0x88, 0xD9, 0x94, 0xC9, 0x44, 0xD9, 0x89, 0xD9,\n\t0xB0, 0x79, 0x44, 0xD9, 0x8A, 0xD9, 0x94, 0xC9,\n\t0x44, 0xDB, 0x92, 0xD9, 0x94, 0xC9, 0x44, 0xDB,\n\t0x95, 0xD9, 0x94, 0xC9, 0x45, 0x20, 0xCC, 0x88,\n\t0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCC,\n\t// Bytes 4480 - 44bf\n\t0x81, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCD, 0x82,\n\t0xCA, 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x80, 0xCA,\n\t0x45, 0x20, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x45,\n\t0x20, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x45, 0x20,\n\t0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC,\n\t0x94, 0xCC, 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x94,\n\t0xCD, 0x82, 0xCA, 0x45, 0x20, 0xD9, 0x8C, 0xD9,\n\t0x91, 0x72, 0x45, 0x20, 0xD9, 0x8D, 0xD9, 0x91,\n\t// Bytes 44c0 - 44ff\n\t0x72, 0x45, 0x20, 0xD9, 0x8E, 0xD9, 0x91, 0x72,\n\t0x45, 0x20, 0xD9, 0x8F, 0xD9, 0x91, 0x72, 0x45,\n\t0x20, 0xD9, 0x90, 0xD9, 0x91, 0x72, 0x45, 0x20,\n\t0xD9, 0x91, 0xD9, 0xB0, 0x7A, 0x45, 0xE2, 0xAB,\n\t0x9D, 0xCC, 0xB8, 0x05, 0x46, 0xCE, 0xB9, 0xCC,\n\t0x88, 0xCC, 0x81, 0xCA, 0x46, 0xCF, 0x85, 0xCC,\n\t0x88, 0xCC, 0x81, 0xCA, 0x46, 0xD7, 0xA9, 0xD6,\n\t0xBC, 0xD7, 0x81, 0x4E, 0x46, 0xD7, 0xA9, 0xD6,\n\t// Bytes 4500 - 453f\n\t0xBC, 0xD7, 0x82, 0x52, 0x46, 0xD9, 0x80, 0xD9,\n\t0x8E, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9,\n\t0x8F, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9,\n\t0x90, 0xD9, 0x91, 0x72, 0x46, 0xE0, 0xA4, 0x95,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x96,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x97,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x9C,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA1,\n\t// Bytes 4540 - 457f\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA2,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAB,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAF,\n\t0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA1,\n\t0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA2,\n\t0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xAF,\n\t0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x96,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x97,\n\t// Bytes 4580 - 45bf\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x9C,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xAB,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB2,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB8,\n\t0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA1,\n\t0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA2,\n\t0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xBE, 0xB2,\n\t0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE0, 0xBE, 0xB3,\n\t// Bytes 45c0 - 45ff\n\t0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE3, 0x83, 0x86,\n\t0xE3, 0x82, 0x99, 0x0D, 0x48, 0xF0, 0x9D, 0x85,\n\t0x97, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, 0x48, 0xF0,\n\t0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xAD,\n\t0x48, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85,\n\t0xA5, 0xAD, 0x48, 0xF0, 0x9D, 0x86, 0xBA, 0xF0,\n\t0x9D, 0x85, 0xA5, 0xAD, 0x49, 0xE0, 0xBE, 0xB2,\n\t0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x49,\n\t// Bytes 4600 - 463f\n\t0xE0, 0xBE, 0xB3, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE,\n\t0x80, 0x9E, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0,\n\t0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE,\n\t0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85,\n\t0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0,\n\t0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0,\n\t0x9D, 0x85, 0xB0, 0xAE, 0x4C, 0xF0, 0x9D, 0x85,\n\t0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85,\n\t// Bytes 4640 - 467f\n\t0xB1, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0,\n\t0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB2, 0xAE,\n\t0x4C, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85,\n\t0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE, 0x4C, 0xF0,\n\t0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xF0,\n\t0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0, 0x9D, 0x86,\n\t0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85,\n\t0xAE, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xBA, 0xF0,\n\t// Bytes 4680 - 46bf\n\t0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE,\n\t0x83, 0x41, 0xCC, 0x82, 0xC9, 0x83, 0x41, 0xCC,\n\t0x86, 0xC9, 0x83, 0x41, 0xCC, 0x87, 0xC9, 0x83,\n\t0x41, 0xCC, 0x88, 0xC9, 0x83, 0x41, 0xCC, 0x8A,\n\t0xC9, 0x83, 0x41, 0xCC, 0xA3, 0xB5, 0x83, 0x43,\n\t0xCC, 0xA7, 0xA5, 0x83, 0x45, 0xCC, 0x82, 0xC9,\n\t0x83, 0x45, 0xCC, 0x84, 0xC9, 0x83, 0x45, 0xCC,\n\t0xA3, 0xB5, 0x83, 0x45, 0xCC, 0xA7, 0xA5, 0x83,\n\t// Bytes 46c0 - 46ff\n\t0x49, 0xCC, 0x88, 0xC9, 0x83, 0x4C, 0xCC, 0xA3,\n\t0xB5, 0x83, 0x4F, 0xCC, 0x82, 0xC9, 0x83, 0x4F,\n\t0xCC, 0x83, 0xC9, 0x83, 0x4F, 0xCC, 0x84, 0xC9,\n\t0x83, 0x4F, 0xCC, 0x87, 0xC9, 0x83, 0x4F, 0xCC,\n\t0x88, 0xC9, 0x83, 0x4F, 0xCC, 0x9B, 0xAD, 0x83,\n\t0x4F, 0xCC, 0xA3, 0xB5, 0x83, 0x4F, 0xCC, 0xA8,\n\t0xA5, 0x83, 0x52, 0xCC, 0xA3, 0xB5, 0x83, 0x53,\n\t0xCC, 0x81, 0xC9, 0x83, 0x53, 0xCC, 0x8C, 0xC9,\n\t// Bytes 4700 - 473f\n\t0x83, 0x53, 0xCC, 0xA3, 0xB5, 0x83, 0x55, 0xCC,\n\t0x83, 0xC9, 0x83, 0x55, 0xCC, 0x84, 0xC9, 0x83,\n\t0x55, 0xCC, 0x88, 0xC9, 0x83, 0x55, 0xCC, 0x9B,\n\t0xAD, 0x83, 0x61, 0xCC, 0x82, 0xC9, 0x83, 0x61,\n\t0xCC, 0x86, 0xC9, 0x83, 0x61, 0xCC, 0x87, 0xC9,\n\t0x83, 0x61, 0xCC, 0x88, 0xC9, 0x83, 0x61, 0xCC,\n\t0x8A, 0xC9, 0x83, 0x61, 0xCC, 0xA3, 0xB5, 0x83,\n\t0x63, 0xCC, 0xA7, 0xA5, 0x83, 0x65, 0xCC, 0x82,\n\t// Bytes 4740 - 477f\n\t0xC9, 0x83, 0x65, 0xCC, 0x84, 0xC9, 0x83, 0x65,\n\t0xCC, 0xA3, 0xB5, 0x83, 0x65, 0xCC, 0xA7, 0xA5,\n\t0x83, 0x69, 0xCC, 0x88, 0xC9, 0x83, 0x6C, 0xCC,\n\t0xA3, 0xB5, 0x83, 0x6F, 0xCC, 0x82, 0xC9, 0x83,\n\t0x6F, 0xCC, 0x83, 0xC9, 0x83, 0x6F, 0xCC, 0x84,\n\t0xC9, 0x83, 0x6F, 0xCC, 0x87, 0xC9, 0x83, 0x6F,\n\t0xCC, 0x88, 0xC9, 0x83, 0x6F, 0xCC, 0x9B, 0xAD,\n\t0x83, 0x6F, 0xCC, 0xA3, 0xB5, 0x83, 0x6F, 0xCC,\n\t// Bytes 4780 - 47bf\n\t0xA8, 0xA5, 0x83, 0x72, 0xCC, 0xA3, 0xB5, 0x83,\n\t0x73, 0xCC, 0x81, 0xC9, 0x83, 0x73, 0xCC, 0x8C,\n\t0xC9, 0x83, 0x73, 0xCC, 0xA3, 0xB5, 0x83, 0x75,\n\t0xCC, 0x83, 0xC9, 0x83, 0x75, 0xCC, 0x84, 0xC9,\n\t0x83, 0x75, 0xCC, 0x88, 0xC9, 0x83, 0x75, 0xCC,\n\t0x9B, 0xAD, 0x84, 0xCE, 0x91, 0xCC, 0x93, 0xC9,\n\t0x84, 0xCE, 0x91, 0xCC, 0x94, 0xC9, 0x84, 0xCE,\n\t0x95, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x95, 0xCC,\n\t// Bytes 47c0 - 47ff\n\t0x94, 0xC9, 0x84, 0xCE, 0x97, 0xCC, 0x93, 0xC9,\n\t0x84, 0xCE, 0x97, 0xCC, 0x94, 0xC9, 0x84, 0xCE,\n\t0x99, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x99, 0xCC,\n\t0x94, 0xC9, 0x84, 0xCE, 0x9F, 0xCC, 0x93, 0xC9,\n\t0x84, 0xCE, 0x9F, 0xCC, 0x94, 0xC9, 0x84, 0xCE,\n\t0xA5, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xA9, 0xCC,\n\t0x93, 0xC9, 0x84, 0xCE, 0xA9, 0xCC, 0x94, 0xC9,\n\t0x84, 0xCE, 0xB1, 0xCC, 0x80, 0xC9, 0x84, 0xCE,\n\t// Bytes 4800 - 483f\n\t0xB1, 0xCC, 0x81, 0xC9, 0x84, 0xCE, 0xB1, 0xCC,\n\t0x93, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, 0x94, 0xC9,\n\t0x84, 0xCE, 0xB1, 0xCD, 0x82, 0xC9, 0x84, 0xCE,\n\t0xB5, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB5, 0xCC,\n\t0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, 0x80, 0xC9,\n\t0x84, 0xCE, 0xB7, 0xCC, 0x81, 0xC9, 0x84, 0xCE,\n\t0xB7, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB7, 0xCC,\n\t0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCD, 0x82, 0xC9,\n\t// Bytes 4840 - 487f\n\t0x84, 0xCE, 0xB9, 0xCC, 0x88, 0xC9, 0x84, 0xCE,\n\t0xB9, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB9, 0xCC,\n\t0x94, 0xC9, 0x84, 0xCE, 0xBF, 0xCC, 0x93, 0xC9,\n\t0x84, 0xCE, 0xBF, 0xCC, 0x94, 0xC9, 0x84, 0xCF,\n\t0x85, 0xCC, 0x88, 0xC9, 0x84, 0xCF, 0x85, 0xCC,\n\t0x93, 0xC9, 0x84, 0xCF, 0x85, 0xCC, 0x94, 0xC9,\n\t0x84, 0xCF, 0x89, 0xCC, 0x80, 0xC9, 0x84, 0xCF,\n\t0x89, 0xCC, 0x81, 0xC9, 0x84, 0xCF, 0x89, 0xCC,\n\t// Bytes 4880 - 48bf\n\t0x93, 0xC9, 0x84, 0xCF, 0x89, 0xCC, 0x94, 0xC9,\n\t0x84, 0xCF, 0x89, 0xCD, 0x82, 0xC9, 0x86, 0xCE,\n\t0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0x91, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t// Bytes 48c0 - 48ff\n\t0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t// Bytes 4900 - 493f\n\t0xA9, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xA9, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t// Bytes 4940 - 497f\n\t0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,\n\t0xB7, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCF,\n\t// Bytes 4980 - 49bf\n\t0x89, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCF,\n\t0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x42, 0xCC,\n\t0x80, 0xC9, 0x32, 0x42, 0xCC, 0x81, 0xC9, 0x32,\n\t0x42, 0xCC, 0x93, 0xC9, 0x32, 0x43, 0xE1, 0x85,\n\t// Bytes 49c0 - 49ff\n\t0xA1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA2, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xA3, 0x01, 0x00, 0x43,\n\t0xE1, 0x85, 0xA4, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xA5, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA6, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xA7, 0x01, 0x00, 0x43,\n\t0xE1, 0x85, 0xA8, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xA9, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAA, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xAB, 0x01, 0x00, 0x43,\n\t// Bytes 4a00 - 4a3f\n\t0xE1, 0x85, 0xAC, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xAD, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAE, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xAF, 0x01, 0x00, 0x43,\n\t0xE1, 0x85, 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xB1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB2, 0x01,\n\t0x00, 0x43, 0xE1, 0x85, 0xB3, 0x01, 0x00, 0x43,\n\t0xE1, 0x85, 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x85,\n\t0xB5, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAA, 0x01,\n\t// Bytes 4a40 - 4a7f\n\t0x00, 0x43, 0xE1, 0x86, 0xAC, 0x01, 0x00, 0x43,\n\t0xE1, 0x86, 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x86,\n\t0xB0, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB1, 0x01,\n\t0x00, 0x43, 0xE1, 0x86, 0xB2, 0x01, 0x00, 0x43,\n\t0xE1, 0x86, 0xB3, 0x01, 0x00, 0x43, 0xE1, 0x86,\n\t0xB4, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB5, 0x01,\n\t0x00, 0x44, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x32,\n\t0x43, 0xE3, 0x82, 0x99, 0x0D, 0x03, 0x43, 0xE3,\n\t// Bytes 4a80 - 4abf\n\t0x82, 0x9A, 0x0D, 0x03, 0x46, 0xE0, 0xBD, 0xB1,\n\t0xE0, 0xBD, 0xB2, 0x9E, 0x26, 0x46, 0xE0, 0xBD,\n\t0xB1, 0xE0, 0xBD, 0xB4, 0xA2, 0x26, 0x46, 0xE0,\n\t0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x26, 0x00,\n\t0x01,\n}\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfcTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfcTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfcValues[c0]\n\t}\n\ti := nfcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfcTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfcTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfcValues[c0]\n\t}\n\ti := nfcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// nfcTrie. Total size: 10332 bytes (10.09 KiB). Checksum: 51cc525b297fc970.\ntype nfcTrie struct{}\n\nfunc newNfcTrie(i int) *nfcTrie {\n\treturn &nfcTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *nfcTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 44:\n\t\treturn uint16(nfcValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 44\n\t\treturn uint16(nfcSparse.lookup(n, b))\n\t}\n}\n\n// nfcValues: 46 blocks, 2944 entries, 5888 bytes\n// The third block is the zero block.\nvar nfcValues = [2944]uint16{\n\t// Block 0x0, offset 0x0\n\t0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000,\n\t// Block 0x1, offset 0x40\n\t0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000,\n\t0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000,\n\t0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000,\n\t0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000,\n\t0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000,\n\t0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000,\n\t0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000,\n\t0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000,\n\t0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000,\n\t0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c,\n\t0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb,\n\t0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104,\n\t0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd,\n\t0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235,\n\t0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285,\n\t0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3,\n\t0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750,\n\t0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f,\n\t0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3,\n\t0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569,\n\t// Block 0x4, offset 0x100\n\t0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8,\n\t0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6,\n\t0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5,\n\t0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302,\n\t0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339,\n\t0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352,\n\t0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e,\n\t0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6,\n\t0x130: 0x308c, 0x134: 0x30b4, 0x135: 0x33c0,\n\t0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc,\n\t0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8,\n\t// Block 0x5, offset 0x140\n\t0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118,\n\t0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f,\n\t0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c,\n\t0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483,\n\t0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d,\n\t0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba,\n\t0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796,\n\t0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2,\n\t0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528,\n\t0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267,\n\t0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0xa000,\n\t// Block 0x6, offset 0x180\n\t0x184: 0x8100, 0x185: 0x8100,\n\t0x186: 0x8100,\n\t0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140,\n\t0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8,\n\t0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50,\n\t0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5,\n\t0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf,\n\t0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd,\n\t0x1b0: 0x33c5, 0x1b4: 0x3028, 0x1b5: 0x3334,\n\t0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46,\n\t0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316,\n\t0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac,\n\t0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479,\n\t0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6,\n\t0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5,\n\t0x1de: 0x305a, 0x1df: 0x3366,\n\t0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b,\n\t0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769,\n\t0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132,\n\t0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932,\n\t0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932,\n\t0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d,\n\t0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d,\n\t0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d,\n\t0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d,\n\t0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d,\n\t0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101,\n\t0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d,\n\t0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936,\n\t0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132,\n\t0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132,\n\t0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132,\n\t0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135,\n\t0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132,\n\t0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132,\n\t0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132,\n\t0x274: 0x0170,\n\t0x27a: 0x8100,\n\t0x27e: 0x0037,\n\t// Block 0xa, offset 0x280\n\t0x284: 0x8100, 0x285: 0x35a1,\n\t0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625,\n\t0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000,\n\t0x295: 0xa000, 0x297: 0xa000,\n\t0x299: 0xa000,\n\t0x29f: 0xa000, 0x2a1: 0xa000,\n\t0x2a5: 0xa000, 0x2a9: 0xa000,\n\t0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9,\n\t0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000,\n\t0x2b7: 0xa000, 0x2b9: 0xa000,\n\t0x2bf: 0xa000,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x3721, 0x2c1: 0x372d, 0x2c3: 0x371b,\n\t0x2c6: 0xa000, 0x2c7: 0x3709,\n\t0x2cc: 0x375d, 0x2cd: 0x3745, 0x2ce: 0x376f, 0x2d0: 0xa000,\n\t0x2d3: 0xa000, 0x2d5: 0xa000, 0x2d6: 0xa000, 0x2d7: 0xa000,\n\t0x2d8: 0xa000, 0x2d9: 0x3751, 0x2da: 0xa000,\n\t0x2de: 0xa000, 0x2e3: 0xa000,\n\t0x2e7: 0xa000,\n\t0x2eb: 0xa000, 0x2ed: 0xa000,\n\t0x2f0: 0xa000, 0x2f3: 0xa000, 0x2f5: 0xa000,\n\t0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x37d5, 0x2fa: 0xa000,\n\t0x2fe: 0xa000,\n\t// Block 0xc, offset 0x300\n\t0x301: 0x3733, 0x302: 0x37b7,\n\t0x310: 0x370f, 0x311: 0x3793,\n\t0x312: 0x3715, 0x313: 0x3799, 0x316: 0x3727, 0x317: 0x37ab,\n\t0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x3829, 0x31b: 0x382f, 0x31c: 0x3739, 0x31d: 0x37bd,\n\t0x31e: 0x373f, 0x31f: 0x37c3, 0x322: 0x374b, 0x323: 0x37cf,\n\t0x324: 0x3757, 0x325: 0x37db, 0x326: 0x3763, 0x327: 0x37e7, 0x328: 0xa000, 0x329: 0xa000,\n\t0x32a: 0x3835, 0x32b: 0x383b, 0x32c: 0x378d, 0x32d: 0x3811, 0x32e: 0x3769, 0x32f: 0x37ed,\n\t0x330: 0x3775, 0x331: 0x37f9, 0x332: 0x377b, 0x333: 0x37ff, 0x334: 0x3781, 0x335: 0x3805,\n\t0x338: 0x3787, 0x339: 0x380b,\n\t// Block 0xd, offset 0x340\n\t0x351: 0x812d,\n\t0x352: 0x8132, 0x353: 0x8132, 0x354: 0x8132, 0x355: 0x8132, 0x356: 0x812d, 0x357: 0x8132,\n\t0x358: 0x8132, 0x359: 0x8132, 0x35a: 0x812e, 0x35b: 0x812d, 0x35c: 0x8132, 0x35d: 0x8132,\n\t0x35e: 0x8132, 0x35f: 0x8132, 0x360: 0x8132, 0x361: 0x8132, 0x362: 0x812d, 0x363: 0x812d,\n\t0x364: 0x812d, 0x365: 0x812d, 0x366: 0x812d, 0x367: 0x812d, 0x368: 0x8132, 0x369: 0x8132,\n\t0x36a: 0x812d, 0x36b: 0x8132, 0x36c: 0x8132, 0x36d: 0x812e, 0x36e: 0x8131, 0x36f: 0x8132,\n\t0x370: 0x8105, 0x371: 0x8106, 0x372: 0x8107, 0x373: 0x8108, 0x374: 0x8109, 0x375: 0x810a,\n\t0x376: 0x810b, 0x377: 0x810c, 0x378: 0x810d, 0x379: 0x810e, 0x37a: 0x810e, 0x37b: 0x810f,\n\t0x37c: 0x8110, 0x37d: 0x8111, 0x37f: 0x8112,\n\t// Block 0xe, offset 0x380\n\t0x388: 0xa000, 0x38a: 0xa000, 0x38b: 0x8116,\n\t0x38c: 0x8117, 0x38d: 0x8118, 0x38e: 0x8119, 0x38f: 0x811a, 0x390: 0x811b, 0x391: 0x811c,\n\t0x392: 0x811d, 0x393: 0x9932, 0x394: 0x9932, 0x395: 0x992d, 0x396: 0x812d, 0x397: 0x8132,\n\t0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x8132, 0x39b: 0x8132, 0x39c: 0x812d, 0x39d: 0x8132,\n\t0x39e: 0x8132, 0x39f: 0x812d,\n\t0x3b0: 0x811e,\n\t// Block 0xf, offset 0x3c0\n\t0x3c5: 0xa000,\n\t0x3c6: 0x2d26, 0x3c7: 0xa000, 0x3c8: 0x2d2e, 0x3c9: 0xa000, 0x3ca: 0x2d36, 0x3cb: 0xa000,\n\t0x3cc: 0x2d3e, 0x3cd: 0xa000, 0x3ce: 0x2d46, 0x3d1: 0xa000,\n\t0x3d2: 0x2d4e,\n\t0x3f4: 0x8102, 0x3f5: 0x9900,\n\t0x3fa: 0xa000, 0x3fb: 0x2d56,\n\t0x3fc: 0xa000, 0x3fd: 0x2d5e, 0x3fe: 0xa000, 0x3ff: 0xa000,\n\t// Block 0x10, offset 0x400\n\t0x400: 0x2f97, 0x401: 0x32a3, 0x402: 0x2fa1, 0x403: 0x32ad, 0x404: 0x2fa6, 0x405: 0x32b2,\n\t0x406: 0x2fab, 0x407: 0x32b7, 0x408: 0x38cc, 0x409: 0x3a5b, 0x40a: 0x2fc4, 0x40b: 0x32d0,\n\t0x40c: 0x2fce, 0x40d: 0x32da, 0x40e: 0x2fdd, 0x40f: 0x32e9, 0x410: 0x2fd3, 0x411: 0x32df,\n\t0x412: 0x2fd8, 0x413: 0x32e4, 0x414: 0x38ef, 0x415: 0x3a7e, 0x416: 0x38f6, 0x417: 0x3a85,\n\t0x418: 0x3019, 0x419: 0x3325, 0x41a: 0x301e, 0x41b: 0x332a, 0x41c: 0x3904, 0x41d: 0x3a93,\n\t0x41e: 0x3023, 0x41f: 0x332f, 0x420: 0x3032, 0x421: 0x333e, 0x422: 0x3050, 0x423: 0x335c,\n\t0x424: 0x305f, 0x425: 0x336b, 0x426: 0x3055, 0x427: 0x3361, 0x428: 0x3064, 0x429: 0x3370,\n\t0x42a: 0x3069, 0x42b: 0x3375, 0x42c: 0x30af, 0x42d: 0x33bb, 0x42e: 0x390b, 0x42f: 0x3a9a,\n\t0x430: 0x30b9, 0x431: 0x33ca, 0x432: 0x30c3, 0x433: 0x33d4, 0x434: 0x30cd, 0x435: 0x33de,\n\t0x436: 0x46c4, 0x437: 0x4755, 0x438: 0x3912, 0x439: 0x3aa1, 0x43a: 0x30e6, 0x43b: 0x33f7,\n\t0x43c: 0x30e1, 0x43d: 0x33f2, 0x43e: 0x30eb, 0x43f: 0x33fc,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x30f0, 0x441: 0x3401, 0x442: 0x30f5, 0x443: 0x3406, 0x444: 0x3109, 0x445: 0x341a,\n\t0x446: 0x3113, 0x447: 0x3424, 0x448: 0x3122, 0x449: 0x3433, 0x44a: 0x311d, 0x44b: 0x342e,\n\t0x44c: 0x3935, 0x44d: 0x3ac4, 0x44e: 0x3943, 0x44f: 0x3ad2, 0x450: 0x394a, 0x451: 0x3ad9,\n\t0x452: 0x3951, 0x453: 0x3ae0, 0x454: 0x314f, 0x455: 0x3460, 0x456: 0x3154, 0x457: 0x3465,\n\t0x458: 0x315e, 0x459: 0x346f, 0x45a: 0x46f1, 0x45b: 0x4782, 0x45c: 0x3997, 0x45d: 0x3b26,\n\t0x45e: 0x3177, 0x45f: 0x3488, 0x460: 0x3181, 0x461: 0x3492, 0x462: 0x4700, 0x463: 0x4791,\n\t0x464: 0x399e, 0x465: 0x3b2d, 0x466: 0x39a5, 0x467: 0x3b34, 0x468: 0x39ac, 0x469: 0x3b3b,\n\t0x46a: 0x3190, 0x46b: 0x34a1, 0x46c: 0x319a, 0x46d: 0x34b0, 0x46e: 0x31ae, 0x46f: 0x34c4,\n\t0x470: 0x31a9, 0x471: 0x34bf, 0x472: 0x31ea, 0x473: 0x3500, 0x474: 0x31f9, 0x475: 0x350f,\n\t0x476: 0x31f4, 0x477: 0x350a, 0x478: 0x39b3, 0x479: 0x3b42, 0x47a: 0x39ba, 0x47b: 0x3b49,\n\t0x47c: 0x31fe, 0x47d: 0x3514, 0x47e: 0x3203, 0x47f: 0x3519,\n\t// Block 0x12, offset 0x480\n\t0x480: 0x3208, 0x481: 0x351e, 0x482: 0x320d, 0x483: 0x3523, 0x484: 0x321c, 0x485: 0x3532,\n\t0x486: 0x3217, 0x487: 0x352d, 0x488: 0x3221, 0x489: 0x353c, 0x48a: 0x3226, 0x48b: 0x3541,\n\t0x48c: 0x322b, 0x48d: 0x3546, 0x48e: 0x3249, 0x48f: 0x3564, 0x490: 0x3262, 0x491: 0x3582,\n\t0x492: 0x3271, 0x493: 0x3591, 0x494: 0x3276, 0x495: 0x3596, 0x496: 0x337a, 0x497: 0x34a6,\n\t0x498: 0x3537, 0x499: 0x3573, 0x49b: 0x35d1,\n\t0x4a0: 0x46a1, 0x4a1: 0x4732, 0x4a2: 0x2f83, 0x4a3: 0x328f,\n\t0x4a4: 0x3878, 0x4a5: 0x3a07, 0x4a6: 0x3871, 0x4a7: 0x3a00, 0x4a8: 0x3886, 0x4a9: 0x3a15,\n\t0x4aa: 0x387f, 0x4ab: 0x3a0e, 0x4ac: 0x38be, 0x4ad: 0x3a4d, 0x4ae: 0x3894, 0x4af: 0x3a23,\n\t0x4b0: 0x388d, 0x4b1: 0x3a1c, 0x4b2: 0x38a2, 0x4b3: 0x3a31, 0x4b4: 0x389b, 0x4b5: 0x3a2a,\n\t0x4b6: 0x38c5, 0x4b7: 0x3a54, 0x4b8: 0x46b5, 0x4b9: 0x4746, 0x4ba: 0x3000, 0x4bb: 0x330c,\n\t0x4bc: 0x2fec, 0x4bd: 0x32f8, 0x4be: 0x38da, 0x4bf: 0x3a69,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x38d3, 0x4c1: 0x3a62, 0x4c2: 0x38e8, 0x4c3: 0x3a77, 0x4c4: 0x38e1, 0x4c5: 0x3a70,\n\t0x4c6: 0x38fd, 0x4c7: 0x3a8c, 0x4c8: 0x3091, 0x4c9: 0x339d, 0x4ca: 0x30a5, 0x4cb: 0x33b1,\n\t0x4cc: 0x46e7, 0x4cd: 0x4778, 0x4ce: 0x3136, 0x4cf: 0x3447, 0x4d0: 0x3920, 0x4d1: 0x3aaf,\n\t0x4d2: 0x3919, 0x4d3: 0x3aa8, 0x4d4: 0x392e, 0x4d5: 0x3abd, 0x4d6: 0x3927, 0x4d7: 0x3ab6,\n\t0x4d8: 0x3989, 0x4d9: 0x3b18, 0x4da: 0x396d, 0x4db: 0x3afc, 0x4dc: 0x3966, 0x4dd: 0x3af5,\n\t0x4de: 0x397b, 0x4df: 0x3b0a, 0x4e0: 0x3974, 0x4e1: 0x3b03, 0x4e2: 0x3982, 0x4e3: 0x3b11,\n\t0x4e4: 0x31e5, 0x4e5: 0x34fb, 0x4e6: 0x31c7, 0x4e7: 0x34dd, 0x4e8: 0x39e4, 0x4e9: 0x3b73,\n\t0x4ea: 0x39dd, 0x4eb: 0x3b6c, 0x4ec: 0x39f2, 0x4ed: 0x3b81, 0x4ee: 0x39eb, 0x4ef: 0x3b7a,\n\t0x4f0: 0x39f9, 0x4f1: 0x3b88, 0x4f2: 0x3230, 0x4f3: 0x354b, 0x4f4: 0x3258, 0x4f5: 0x3578,\n\t0x4f6: 0x3253, 0x4f7: 0x356e, 0x4f8: 0x323f, 0x4f9: 0x355a,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x4804, 0x501: 0x480a, 0x502: 0x491e, 0x503: 0x4936, 0x504: 0x4926, 0x505: 0x493e,\n\t0x506: 0x492e, 0x507: 0x4946, 0x508: 0x47aa, 0x509: 0x47b0, 0x50a: 0x488e, 0x50b: 0x48a6,\n\t0x50c: 0x4896, 0x50d: 0x48ae, 0x50e: 0x489e, 0x50f: 0x48b6, 0x510: 0x4816, 0x511: 0x481c,\n\t0x512: 0x3db8, 0x513: 0x3dc8, 0x514: 0x3dc0, 0x515: 0x3dd0,\n\t0x518: 0x47b6, 0x519: 0x47bc, 0x51a: 0x3ce8, 0x51b: 0x3cf8, 0x51c: 0x3cf0, 0x51d: 0x3d00,\n\t0x520: 0x482e, 0x521: 0x4834, 0x522: 0x494e, 0x523: 0x4966,\n\t0x524: 0x4956, 0x525: 0x496e, 0x526: 0x495e, 0x527: 0x4976, 0x528: 0x47c2, 0x529: 0x47c8,\n\t0x52a: 0x48be, 0x52b: 0x48d6, 0x52c: 0x48c6, 0x52d: 0x48de, 0x52e: 0x48ce, 0x52f: 0x48e6,\n\t0x530: 0x4846, 0x531: 0x484c, 0x532: 0x3e18, 0x533: 0x3e30, 0x534: 0x3e20, 0x535: 0x3e38,\n\t0x536: 0x3e28, 0x537: 0x3e40, 0x538: 0x47ce, 0x539: 0x47d4, 0x53a: 0x3d18, 0x53b: 0x3d30,\n\t0x53c: 0x3d20, 0x53d: 0x3d38, 0x53e: 0x3d28, 0x53f: 0x3d40,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x4852, 0x541: 0x4858, 0x542: 0x3e48, 0x543: 0x3e58, 0x544: 0x3e50, 0x545: 0x3e60,\n\t0x548: 0x47da, 0x549: 0x47e0, 0x54a: 0x3d48, 0x54b: 0x3d58,\n\t0x54c: 0x3d50, 0x54d: 0x3d60, 0x550: 0x4864, 0x551: 0x486a,\n\t0x552: 0x3e80, 0x553: 0x3e98, 0x554: 0x3e88, 0x555: 0x3ea0, 0x556: 0x3e90, 0x557: 0x3ea8,\n\t0x559: 0x47e6, 0x55b: 0x3d68, 0x55d: 0x3d70,\n\t0x55f: 0x3d78, 0x560: 0x487c, 0x561: 0x4882, 0x562: 0x497e, 0x563: 0x4996,\n\t0x564: 0x4986, 0x565: 0x499e, 0x566: 0x498e, 0x567: 0x49a6, 0x568: 0x47ec, 0x569: 0x47f2,\n\t0x56a: 0x48ee, 0x56b: 0x4906, 0x56c: 0x48f6, 0x56d: 0x490e, 0x56e: 0x48fe, 0x56f: 0x4916,\n\t0x570: 0x47f8, 0x571: 0x431e, 0x572: 0x3691, 0x573: 0x4324, 0x574: 0x4822, 0x575: 0x432a,\n\t0x576: 0x36a3, 0x577: 0x4330, 0x578: 0x36c1, 0x579: 0x4336, 0x57a: 0x36d9, 0x57b: 0x433c,\n\t0x57c: 0x4870, 0x57d: 0x4342,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x3da0, 0x581: 0x3da8, 0x582: 0x4184, 0x583: 0x41a2, 0x584: 0x418e, 0x585: 0x41ac,\n\t0x586: 0x4198, 0x587: 0x41b6, 0x588: 0x3cd8, 0x589: 0x3ce0, 0x58a: 0x40d0, 0x58b: 0x40ee,\n\t0x58c: 0x40da, 0x58d: 0x40f8, 0x58e: 0x40e4, 0x58f: 0x4102, 0x590: 0x3de8, 0x591: 0x3df0,\n\t0x592: 0x41c0, 0x593: 0x41de, 0x594: 0x41ca, 0x595: 0x41e8, 0x596: 0x41d4, 0x597: 0x41f2,\n\t0x598: 0x3d08, 0x599: 0x3d10, 0x59a: 0x410c, 0x59b: 0x412a, 0x59c: 0x4116, 0x59d: 0x4134,\n\t0x59e: 0x4120, 0x59f: 0x413e, 0x5a0: 0x3ec0, 0x5a1: 0x3ec8, 0x5a2: 0x41fc, 0x5a3: 0x421a,\n\t0x5a4: 0x4206, 0x5a5: 0x4224, 0x5a6: 0x4210, 0x5a7: 0x422e, 0x5a8: 0x3d80, 0x5a9: 0x3d88,\n\t0x5aa: 0x4148, 0x5ab: 0x4166, 0x5ac: 0x4152, 0x5ad: 0x4170, 0x5ae: 0x415c, 0x5af: 0x417a,\n\t0x5b0: 0x3685, 0x5b1: 0x367f, 0x5b2: 0x3d90, 0x5b3: 0x368b, 0x5b4: 0x3d98,\n\t0x5b6: 0x4810, 0x5b7: 0x3db0, 0x5b8: 0x35f5, 0x5b9: 0x35ef, 0x5ba: 0x35e3, 0x5bb: 0x42ee,\n\t0x5bc: 0x35fb, 0x5bd: 0x8100, 0x5be: 0x01d3, 0x5bf: 0xa100,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x8100, 0x5c1: 0x35a7, 0x5c2: 0x3dd8, 0x5c3: 0x369d, 0x5c4: 0x3de0,\n\t0x5c6: 0x483a, 0x5c7: 0x3df8, 0x5c8: 0x3601, 0x5c9: 0x42f4, 0x5ca: 0x360d, 0x5cb: 0x42fa,\n\t0x5cc: 0x3619, 0x5cd: 0x3b8f, 0x5ce: 0x3b96, 0x5cf: 0x3b9d, 0x5d0: 0x36b5, 0x5d1: 0x36af,\n\t0x5d2: 0x3e00, 0x5d3: 0x44e4, 0x5d6: 0x36bb, 0x5d7: 0x3e10,\n\t0x5d8: 0x3631, 0x5d9: 0x362b, 0x5da: 0x361f, 0x5db: 0x4300, 0x5dd: 0x3ba4,\n\t0x5de: 0x3bab, 0x5df: 0x3bb2, 0x5e0: 0x36eb, 0x5e1: 0x36e5, 0x5e2: 0x3e68, 0x5e3: 0x44ec,\n\t0x5e4: 0x36cd, 0x5e5: 0x36d3, 0x5e6: 0x36f1, 0x5e7: 0x3e78, 0x5e8: 0x3661, 0x5e9: 0x365b,\n\t0x5ea: 0x364f, 0x5eb: 0x430c, 0x5ec: 0x3649, 0x5ed: 0x359b, 0x5ee: 0x42e8, 0x5ef: 0x0081,\n\t0x5f2: 0x3eb0, 0x5f3: 0x36f7, 0x5f4: 0x3eb8,\n\t0x5f6: 0x4888, 0x5f7: 0x3ed0, 0x5f8: 0x363d, 0x5f9: 0x4306, 0x5fa: 0x366d, 0x5fb: 0x4318,\n\t0x5fc: 0x3679, 0x5fd: 0x4256, 0x5fe: 0xa100,\n\t// Block 0x18, offset 0x600\n\t0x601: 0x3c06, 0x603: 0xa000, 0x604: 0x3c0d, 0x605: 0xa000,\n\t0x607: 0x3c14, 0x608: 0xa000, 0x609: 0x3c1b,\n\t0x60d: 0xa000,\n\t0x620: 0x2f65, 0x621: 0xa000, 0x622: 0x3c29,\n\t0x624: 0xa000, 0x625: 0xa000,\n\t0x62d: 0x3c22, 0x62e: 0x2f60, 0x62f: 0x2f6a,\n\t0x630: 0x3c30, 0x631: 0x3c37, 0x632: 0xa000, 0x633: 0xa000, 0x634: 0x3c3e, 0x635: 0x3c45,\n\t0x636: 0xa000, 0x637: 0xa000, 0x638: 0x3c4c, 0x639: 0x3c53, 0x63a: 0xa000, 0x63b: 0xa000,\n\t0x63c: 0xa000, 0x63d: 0xa000,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x3c5a, 0x641: 0x3c61, 0x642: 0xa000, 0x643: 0xa000, 0x644: 0x3c76, 0x645: 0x3c7d,\n\t0x646: 0xa000, 0x647: 0xa000, 0x648: 0x3c84, 0x649: 0x3c8b,\n\t0x651: 0xa000,\n\t0x652: 0xa000,\n\t0x662: 0xa000,\n\t0x668: 0xa000, 0x669: 0xa000,\n\t0x66b: 0xa000, 0x66c: 0x3ca0, 0x66d: 0x3ca7, 0x66e: 0x3cae, 0x66f: 0x3cb5,\n\t0x672: 0xa000, 0x673: 0xa000, 0x674: 0xa000, 0x675: 0xa000,\n\t// Block 0x1a, offset 0x680\n\t0x686: 0xa000, 0x68b: 0xa000,\n\t0x68c: 0x3f08, 0x68d: 0xa000, 0x68e: 0x3f10, 0x68f: 0xa000, 0x690: 0x3f18, 0x691: 0xa000,\n\t0x692: 0x3f20, 0x693: 0xa000, 0x694: 0x3f28, 0x695: 0xa000, 0x696: 0x3f30, 0x697: 0xa000,\n\t0x698: 0x3f38, 0x699: 0xa000, 0x69a: 0x3f40, 0x69b: 0xa000, 0x69c: 0x3f48, 0x69d: 0xa000,\n\t0x69e: 0x3f50, 0x69f: 0xa000, 0x6a0: 0x3f58, 0x6a1: 0xa000, 0x6a2: 0x3f60,\n\t0x6a4: 0xa000, 0x6a5: 0x3f68, 0x6a6: 0xa000, 0x6a7: 0x3f70, 0x6a8: 0xa000, 0x6a9: 0x3f78,\n\t0x6af: 0xa000,\n\t0x6b0: 0x3f80, 0x6b1: 0x3f88, 0x6b2: 0xa000, 0x6b3: 0x3f90, 0x6b4: 0x3f98, 0x6b5: 0xa000,\n\t0x6b6: 0x3fa0, 0x6b7: 0x3fa8, 0x6b8: 0xa000, 0x6b9: 0x3fb0, 0x6ba: 0x3fb8, 0x6bb: 0xa000,\n\t0x6bc: 0x3fc0, 0x6bd: 0x3fc8,\n\t// Block 0x1b, offset 0x6c0\n\t0x6d4: 0x3f00,\n\t0x6d9: 0x9903, 0x6da: 0x9903, 0x6db: 0x8100, 0x6dc: 0x8100, 0x6dd: 0xa000,\n\t0x6de: 0x3fd0,\n\t0x6e6: 0xa000,\n\t0x6eb: 0xa000, 0x6ec: 0x3fe0, 0x6ed: 0xa000, 0x6ee: 0x3fe8, 0x6ef: 0xa000,\n\t0x6f0: 0x3ff0, 0x6f1: 0xa000, 0x6f2: 0x3ff8, 0x6f3: 0xa000, 0x6f4: 0x4000, 0x6f5: 0xa000,\n\t0x6f6: 0x4008, 0x6f7: 0xa000, 0x6f8: 0x4010, 0x6f9: 0xa000, 0x6fa: 0x4018, 0x6fb: 0xa000,\n\t0x6fc: 0x4020, 0x6fd: 0xa000, 0x6fe: 0x4028, 0x6ff: 0xa000,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x4030, 0x701: 0xa000, 0x702: 0x4038, 0x704: 0xa000, 0x705: 0x4040,\n\t0x706: 0xa000, 0x707: 0x4048, 0x708: 0xa000, 0x709: 0x4050,\n\t0x70f: 0xa000, 0x710: 0x4058, 0x711: 0x4060,\n\t0x712: 0xa000, 0x713: 0x4068, 0x714: 0x4070, 0x715: 0xa000, 0x716: 0x4078, 0x717: 0x4080,\n\t0x718: 0xa000, 0x719: 0x4088, 0x71a: 0x4090, 0x71b: 0xa000, 0x71c: 0x4098, 0x71d: 0x40a0,\n\t0x72f: 0xa000,\n\t0x730: 0xa000, 0x731: 0xa000, 0x732: 0xa000, 0x734: 0x3fd8,\n\t0x737: 0x40a8, 0x738: 0x40b0, 0x739: 0x40b8, 0x73a: 0x40c0,\n\t0x73d: 0xa000, 0x73e: 0x40c8,\n\t// Block 0x1d, offset 0x740\n\t0x740: 0x1377, 0x741: 0x0cfb, 0x742: 0x13d3, 0x743: 0x139f, 0x744: 0x0e57, 0x745: 0x06eb,\n\t0x746: 0x08df, 0x747: 0x162b, 0x748: 0x162b, 0x749: 0x0a0b, 0x74a: 0x145f, 0x74b: 0x0943,\n\t0x74c: 0x0a07, 0x74d: 0x0bef, 0x74e: 0x0fcf, 0x74f: 0x115f, 0x750: 0x1297, 0x751: 0x12d3,\n\t0x752: 0x1307, 0x753: 0x141b, 0x754: 0x0d73, 0x755: 0x0dff, 0x756: 0x0eab, 0x757: 0x0f43,\n\t0x758: 0x125f, 0x759: 0x1447, 0x75a: 0x1573, 0x75b: 0x070f, 0x75c: 0x08b3, 0x75d: 0x0d87,\n\t0x75e: 0x0ecf, 0x75f: 0x1293, 0x760: 0x15c3, 0x761: 0x0ab3, 0x762: 0x0e77, 0x763: 0x1283,\n\t0x764: 0x1317, 0x765: 0x0c23, 0x766: 0x11bb, 0x767: 0x12df, 0x768: 0x0b1f, 0x769: 0x0d0f,\n\t0x76a: 0x0e17, 0x76b: 0x0f1b, 0x76c: 0x1427, 0x76d: 0x074f, 0x76e: 0x07e7, 0x76f: 0x0853,\n\t0x770: 0x0c8b, 0x771: 0x0d7f, 0x772: 0x0ecb, 0x773: 0x0fef, 0x774: 0x1177, 0x775: 0x128b,\n\t0x776: 0x12a3, 0x777: 0x13c7, 0x778: 0x14ef, 0x779: 0x15a3, 0x77a: 0x15bf, 0x77b: 0x102b,\n\t0x77c: 0x106b, 0x77d: 0x1123, 0x77e: 0x1243, 0x77f: 0x147b,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0x15cb, 0x781: 0x134b, 0x782: 0x09c7, 0x783: 0x0b3b, 0x784: 0x10db, 0x785: 0x119b,\n\t0x786: 0x0eff, 0x787: 0x1033, 0x788: 0x1397, 0x789: 0x14e7, 0x78a: 0x09c3, 0x78b: 0x0a8f,\n\t0x78c: 0x0d77, 0x78d: 0x0e2b, 0x78e: 0x0e5f, 0x78f: 0x1113, 0x790: 0x113b, 0x791: 0x14a7,\n\t0x792: 0x084f, 0x793: 0x11a7, 0x794: 0x07f3, 0x795: 0x07ef, 0x796: 0x1097, 0x797: 0x1127,\n\t0x798: 0x125b, 0x799: 0x14af, 0x79a: 0x1367, 0x79b: 0x0c27, 0x79c: 0x0d73, 0x79d: 0x1357,\n\t0x79e: 0x06f7, 0x79f: 0x0a63, 0x7a0: 0x0b93, 0x7a1: 0x0f2f, 0x7a2: 0x0faf, 0x7a3: 0x0873,\n\t0x7a4: 0x103b, 0x7a5: 0x075f, 0x7a6: 0x0b77, 0x7a7: 0x06d7, 0x7a8: 0x0deb, 0x7a9: 0x0ca3,\n\t0x7aa: 0x110f, 0x7ab: 0x08c7, 0x7ac: 0x09b3, 0x7ad: 0x0ffb, 0x7ae: 0x1263, 0x7af: 0x133b,\n\t0x7b0: 0x0db7, 0x7b1: 0x13f7, 0x7b2: 0x0de3, 0x7b3: 0x0c37, 0x7b4: 0x121b, 0x7b5: 0x0c57,\n\t0x7b6: 0x0fab, 0x7b7: 0x072b, 0x7b8: 0x07a7, 0x7b9: 0x07eb, 0x7ba: 0x0d53, 0x7bb: 0x10fb,\n\t0x7bc: 0x11f3, 0x7bd: 0x1347, 0x7be: 0x145b, 0x7bf: 0x085b,\n\t// Block 0x1f, offset 0x7c0\n\t0x7c0: 0x090f, 0x7c1: 0x0a17, 0x7c2: 0x0b2f, 0x7c3: 0x0cbf, 0x7c4: 0x0e7b, 0x7c5: 0x103f,\n\t0x7c6: 0x1497, 0x7c7: 0x157b, 0x7c8: 0x15cf, 0x7c9: 0x15e7, 0x7ca: 0x0837, 0x7cb: 0x0cf3,\n\t0x7cc: 0x0da3, 0x7cd: 0x13eb, 0x7ce: 0x0afb, 0x7cf: 0x0bd7, 0x7d0: 0x0bf3, 0x7d1: 0x0c83,\n\t0x7d2: 0x0e6b, 0x7d3: 0x0eb7, 0x7d4: 0x0f67, 0x7d5: 0x108b, 0x7d6: 0x112f, 0x7d7: 0x1193,\n\t0x7d8: 0x13db, 0x7d9: 0x126b, 0x7da: 0x1403, 0x7db: 0x147f, 0x7dc: 0x080f, 0x7dd: 0x083b,\n\t0x7de: 0x0923, 0x7df: 0x0ea7, 0x7e0: 0x12f3, 0x7e1: 0x133b, 0x7e2: 0x0b1b, 0x7e3: 0x0b8b,\n\t0x7e4: 0x0c4f, 0x7e5: 0x0daf, 0x7e6: 0x10d7, 0x7e7: 0x0f23, 0x7e8: 0x073b, 0x7e9: 0x097f,\n\t0x7ea: 0x0a63, 0x7eb: 0x0ac7, 0x7ec: 0x0b97, 0x7ed: 0x0f3f, 0x7ee: 0x0f5b, 0x7ef: 0x116b,\n\t0x7f0: 0x118b, 0x7f1: 0x1463, 0x7f2: 0x14e3, 0x7f3: 0x14f3, 0x7f4: 0x152f, 0x7f5: 0x0753,\n\t0x7f6: 0x107f, 0x7f7: 0x144f, 0x7f8: 0x14cb, 0x7f9: 0x0baf, 0x7fa: 0x0717, 0x7fb: 0x0777,\n\t0x7fc: 0x0a67, 0x7fd: 0x0a87, 0x7fe: 0x0caf, 0x7ff: 0x0d73,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x0ec3, 0x801: 0x0fcb, 0x802: 0x1277, 0x803: 0x1417, 0x804: 0x1623, 0x805: 0x0ce3,\n\t0x806: 0x14a3, 0x807: 0x0833, 0x808: 0x0d2f, 0x809: 0x0d3b, 0x80a: 0x0e0f, 0x80b: 0x0e47,\n\t0x80c: 0x0f4b, 0x80d: 0x0fa7, 0x80e: 0x1027, 0x80f: 0x110b, 0x810: 0x153b, 0x811: 0x07af,\n\t0x812: 0x0c03, 0x813: 0x14b3, 0x814: 0x0767, 0x815: 0x0aab, 0x816: 0x0e2f, 0x817: 0x13df,\n\t0x818: 0x0b67, 0x819: 0x0bb7, 0x81a: 0x0d43, 0x81b: 0x0f2f, 0x81c: 0x14bb, 0x81d: 0x0817,\n\t0x81e: 0x08ff, 0x81f: 0x0a97, 0x820: 0x0cd3, 0x821: 0x0d1f, 0x822: 0x0d5f, 0x823: 0x0df3,\n\t0x824: 0x0f47, 0x825: 0x0fbb, 0x826: 0x1157, 0x827: 0x12f7, 0x828: 0x1303, 0x829: 0x1457,\n\t0x82a: 0x14d7, 0x82b: 0x0883, 0x82c: 0x0e4b, 0x82d: 0x0903, 0x82e: 0x0ec7, 0x82f: 0x0f6b,\n\t0x830: 0x1287, 0x831: 0x14bf, 0x832: 0x15ab, 0x833: 0x15d3, 0x834: 0x0d37, 0x835: 0x0e27,\n\t0x836: 0x11c3, 0x837: 0x10b7, 0x838: 0x10c3, 0x839: 0x10e7, 0x83a: 0x0f17, 0x83b: 0x0e9f,\n\t0x83c: 0x1363, 0x83d: 0x0733, 0x83e: 0x122b, 0x83f: 0x081b,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x080b, 0x841: 0x0b0b, 0x842: 0x0c2b, 0x843: 0x10f3, 0x844: 0x0a53, 0x845: 0x0e03,\n\t0x846: 0x0cef, 0x847: 0x13e7, 0x848: 0x12e7, 0x849: 0x14ab, 0x84a: 0x1323, 0x84b: 0x0b27,\n\t0x84c: 0x0787, 0x84d: 0x095b, 0x850: 0x09af,\n\t0x852: 0x0cdf, 0x855: 0x07f7, 0x856: 0x0f1f, 0x857: 0x0fe3,\n\t0x858: 0x1047, 0x859: 0x1063, 0x85a: 0x1067, 0x85b: 0x107b, 0x85c: 0x14fb, 0x85d: 0x10eb,\n\t0x85e: 0x116f, 0x860: 0x128f, 0x862: 0x1353,\n\t0x865: 0x1407, 0x866: 0x1433,\n\t0x86a: 0x154f, 0x86b: 0x1553, 0x86c: 0x1557, 0x86d: 0x15bb, 0x86e: 0x142b, 0x86f: 0x14c7,\n\t0x870: 0x0757, 0x871: 0x077b, 0x872: 0x078f, 0x873: 0x084b, 0x874: 0x0857, 0x875: 0x0897,\n\t0x876: 0x094b, 0x877: 0x0967, 0x878: 0x096f, 0x879: 0x09ab, 0x87a: 0x09b7, 0x87b: 0x0a93,\n\t0x87c: 0x0a9b, 0x87d: 0x0ba3, 0x87e: 0x0bcb, 0x87f: 0x0bd3,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x0beb, 0x881: 0x0c97, 0x882: 0x0cc7, 0x883: 0x0ce7, 0x884: 0x0d57, 0x885: 0x0e1b,\n\t0x886: 0x0e37, 0x887: 0x0e67, 0x888: 0x0ebb, 0x889: 0x0edb, 0x88a: 0x0f4f, 0x88b: 0x102f,\n\t0x88c: 0x104b, 0x88d: 0x1053, 0x88e: 0x104f, 0x88f: 0x1057, 0x890: 0x105b, 0x891: 0x105f,\n\t0x892: 0x1073, 0x893: 0x1077, 0x894: 0x109b, 0x895: 0x10af, 0x896: 0x10cb, 0x897: 0x112f,\n\t0x898: 0x1137, 0x899: 0x113f, 0x89a: 0x1153, 0x89b: 0x117b, 0x89c: 0x11cb, 0x89d: 0x11ff,\n\t0x89e: 0x11ff, 0x89f: 0x1267, 0x8a0: 0x130f, 0x8a1: 0x1327, 0x8a2: 0x135b, 0x8a3: 0x135f,\n\t0x8a4: 0x13a3, 0x8a5: 0x13a7, 0x8a6: 0x13ff, 0x8a7: 0x1407, 0x8a8: 0x14db, 0x8a9: 0x151f,\n\t0x8aa: 0x1537, 0x8ab: 0x0b9b, 0x8ac: 0x171e, 0x8ad: 0x11e3,\n\t0x8b0: 0x06df, 0x8b1: 0x07e3, 0x8b2: 0x07a3, 0x8b3: 0x074b, 0x8b4: 0x078b, 0x8b5: 0x07b7,\n\t0x8b6: 0x0847, 0x8b7: 0x0863, 0x8b8: 0x094b, 0x8b9: 0x0937, 0x8ba: 0x0947, 0x8bb: 0x0963,\n\t0x8bc: 0x09af, 0x8bd: 0x09bf, 0x8be: 0x0a03, 0x8bf: 0x0a0f,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x0a2b, 0x8c1: 0x0a3b, 0x8c2: 0x0b23, 0x8c3: 0x0b2b, 0x8c4: 0x0b5b, 0x8c5: 0x0b7b,\n\t0x8c6: 0x0bab, 0x8c7: 0x0bc3, 0x8c8: 0x0bb3, 0x8c9: 0x0bd3, 0x8ca: 0x0bc7, 0x8cb: 0x0beb,\n\t0x8cc: 0x0c07, 0x8cd: 0x0c5f, 0x8ce: 0x0c6b, 0x8cf: 0x0c73, 0x8d0: 0x0c9b, 0x8d1: 0x0cdf,\n\t0x8d2: 0x0d0f, 0x8d3: 0x0d13, 0x8d4: 0x0d27, 0x8d5: 0x0da7, 0x8d6: 0x0db7, 0x8d7: 0x0e0f,\n\t0x8d8: 0x0e5b, 0x8d9: 0x0e53, 0x8da: 0x0e67, 0x8db: 0x0e83, 0x8dc: 0x0ebb, 0x8dd: 0x1013,\n\t0x8de: 0x0edf, 0x8df: 0x0f13, 0x8e0: 0x0f1f, 0x8e1: 0x0f5f, 0x8e2: 0x0f7b, 0x8e3: 0x0f9f,\n\t0x8e4: 0x0fc3, 0x8e5: 0x0fc7, 0x8e6: 0x0fe3, 0x8e7: 0x0fe7, 0x8e8: 0x0ff7, 0x8e9: 0x100b,\n\t0x8ea: 0x1007, 0x8eb: 0x1037, 0x8ec: 0x10b3, 0x8ed: 0x10cb, 0x8ee: 0x10e3, 0x8ef: 0x111b,\n\t0x8f0: 0x112f, 0x8f1: 0x114b, 0x8f2: 0x117b, 0x8f3: 0x122f, 0x8f4: 0x1257, 0x8f5: 0x12cb,\n\t0x8f6: 0x1313, 0x8f7: 0x131f, 0x8f8: 0x1327, 0x8f9: 0x133f, 0x8fa: 0x1353, 0x8fb: 0x1343,\n\t0x8fc: 0x135b, 0x8fd: 0x1357, 0x8fe: 0x134f, 0x8ff: 0x135f,\n\t// Block 0x24, offset 0x900\n\t0x900: 0x136b, 0x901: 0x13a7, 0x902: 0x13e3, 0x903: 0x1413, 0x904: 0x144b, 0x905: 0x146b,\n\t0x906: 0x14b7, 0x907: 0x14db, 0x908: 0x14fb, 0x909: 0x150f, 0x90a: 0x151f, 0x90b: 0x152b,\n\t0x90c: 0x1537, 0x90d: 0x158b, 0x90e: 0x162b, 0x90f: 0x16b5, 0x910: 0x16b0, 0x911: 0x16e2,\n\t0x912: 0x0607, 0x913: 0x062f, 0x914: 0x0633, 0x915: 0x1764, 0x916: 0x1791, 0x917: 0x1809,\n\t0x918: 0x1617, 0x919: 0x1627,\n\t// Block 0x25, offset 0x940\n\t0x940: 0x06fb, 0x941: 0x06f3, 0x942: 0x0703, 0x943: 0x1647, 0x944: 0x0747, 0x945: 0x0757,\n\t0x946: 0x075b, 0x947: 0x0763, 0x948: 0x076b, 0x949: 0x076f, 0x94a: 0x077b, 0x94b: 0x0773,\n\t0x94c: 0x05b3, 0x94d: 0x165b, 0x94e: 0x078f, 0x94f: 0x0793, 0x950: 0x0797, 0x951: 0x07b3,\n\t0x952: 0x164c, 0x953: 0x05b7, 0x954: 0x079f, 0x955: 0x07bf, 0x956: 0x1656, 0x957: 0x07cf,\n\t0x958: 0x07d7, 0x959: 0x0737, 0x95a: 0x07df, 0x95b: 0x07e3, 0x95c: 0x1831, 0x95d: 0x07ff,\n\t0x95e: 0x0807, 0x95f: 0x05bf, 0x960: 0x081f, 0x961: 0x0823, 0x962: 0x082b, 0x963: 0x082f,\n\t0x964: 0x05c3, 0x965: 0x0847, 0x966: 0x084b, 0x967: 0x0857, 0x968: 0x0863, 0x969: 0x0867,\n\t0x96a: 0x086b, 0x96b: 0x0873, 0x96c: 0x0893, 0x96d: 0x0897, 0x96e: 0x089f, 0x96f: 0x08af,\n\t0x970: 0x08b7, 0x971: 0x08bb, 0x972: 0x08bb, 0x973: 0x08bb, 0x974: 0x166a, 0x975: 0x0e93,\n\t0x976: 0x08cf, 0x977: 0x08d7, 0x978: 0x166f, 0x979: 0x08e3, 0x97a: 0x08eb, 0x97b: 0x08f3,\n\t0x97c: 0x091b, 0x97d: 0x0907, 0x97e: 0x0913, 0x97f: 0x0917,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x091f, 0x981: 0x0927, 0x982: 0x092b, 0x983: 0x0933, 0x984: 0x093b, 0x985: 0x093f,\n\t0x986: 0x093f, 0x987: 0x0947, 0x988: 0x094f, 0x989: 0x0953, 0x98a: 0x095f, 0x98b: 0x0983,\n\t0x98c: 0x0967, 0x98d: 0x0987, 0x98e: 0x096b, 0x98f: 0x0973, 0x990: 0x080b, 0x991: 0x09cf,\n\t0x992: 0x0997, 0x993: 0x099b, 0x994: 0x099f, 0x995: 0x0993, 0x996: 0x09a7, 0x997: 0x09a3,\n\t0x998: 0x09bb, 0x999: 0x1674, 0x99a: 0x09d7, 0x99b: 0x09db, 0x99c: 0x09e3, 0x99d: 0x09ef,\n\t0x99e: 0x09f7, 0x99f: 0x0a13, 0x9a0: 0x1679, 0x9a1: 0x167e, 0x9a2: 0x0a1f, 0x9a3: 0x0a23,\n\t0x9a4: 0x0a27, 0x9a5: 0x0a1b, 0x9a6: 0x0a2f, 0x9a7: 0x05c7, 0x9a8: 0x05cb, 0x9a9: 0x0a37,\n\t0x9aa: 0x0a3f, 0x9ab: 0x0a3f, 0x9ac: 0x1683, 0x9ad: 0x0a5b, 0x9ae: 0x0a5f, 0x9af: 0x0a63,\n\t0x9b0: 0x0a6b, 0x9b1: 0x1688, 0x9b2: 0x0a73, 0x9b3: 0x0a77, 0x9b4: 0x0b4f, 0x9b5: 0x0a7f,\n\t0x9b6: 0x05cf, 0x9b7: 0x0a8b, 0x9b8: 0x0a9b, 0x9b9: 0x0aa7, 0x9ba: 0x0aa3, 0x9bb: 0x1692,\n\t0x9bc: 0x0aaf, 0x9bd: 0x1697, 0x9be: 0x0abb, 0x9bf: 0x0ab7,\n\t// Block 0x27, offset 0x9c0\n\t0x9c0: 0x0abf, 0x9c1: 0x0acf, 0x9c2: 0x0ad3, 0x9c3: 0x05d3, 0x9c4: 0x0ae3, 0x9c5: 0x0aeb,\n\t0x9c6: 0x0aef, 0x9c7: 0x0af3, 0x9c8: 0x05d7, 0x9c9: 0x169c, 0x9ca: 0x05db, 0x9cb: 0x0b0f,\n\t0x9cc: 0x0b13, 0x9cd: 0x0b17, 0x9ce: 0x0b1f, 0x9cf: 0x1863, 0x9d0: 0x0b37, 0x9d1: 0x16a6,\n\t0x9d2: 0x16a6, 0x9d3: 0x11d7, 0x9d4: 0x0b47, 0x9d5: 0x0b47, 0x9d6: 0x05df, 0x9d7: 0x16c9,\n\t0x9d8: 0x179b, 0x9d9: 0x0b57, 0x9da: 0x0b5f, 0x9db: 0x05e3, 0x9dc: 0x0b73, 0x9dd: 0x0b83,\n\t0x9de: 0x0b87, 0x9df: 0x0b8f, 0x9e0: 0x0b9f, 0x9e1: 0x05eb, 0x9e2: 0x05e7, 0x9e3: 0x0ba3,\n\t0x9e4: 0x16ab, 0x9e5: 0x0ba7, 0x9e6: 0x0bbb, 0x9e7: 0x0bbf, 0x9e8: 0x0bc3, 0x9e9: 0x0bbf,\n\t0x9ea: 0x0bcf, 0x9eb: 0x0bd3, 0x9ec: 0x0be3, 0x9ed: 0x0bdb, 0x9ee: 0x0bdf, 0x9ef: 0x0be7,\n\t0x9f0: 0x0beb, 0x9f1: 0x0bef, 0x9f2: 0x0bfb, 0x9f3: 0x0bff, 0x9f4: 0x0c17, 0x9f5: 0x0c1f,\n\t0x9f6: 0x0c2f, 0x9f7: 0x0c43, 0x9f8: 0x16ba, 0x9f9: 0x0c3f, 0x9fa: 0x0c33, 0x9fb: 0x0c4b,\n\t0x9fc: 0x0c53, 0x9fd: 0x0c67, 0x9fe: 0x16bf, 0x9ff: 0x0c6f,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x0c63, 0xa01: 0x0c5b, 0xa02: 0x05ef, 0xa03: 0x0c77, 0xa04: 0x0c7f, 0xa05: 0x0c87,\n\t0xa06: 0x0c7b, 0xa07: 0x05f3, 0xa08: 0x0c97, 0xa09: 0x0c9f, 0xa0a: 0x16c4, 0xa0b: 0x0ccb,\n\t0xa0c: 0x0cff, 0xa0d: 0x0cdb, 0xa0e: 0x05ff, 0xa0f: 0x0ce7, 0xa10: 0x05fb, 0xa11: 0x05f7,\n\t0xa12: 0x07c3, 0xa13: 0x07c7, 0xa14: 0x0d03, 0xa15: 0x0ceb, 0xa16: 0x11ab, 0xa17: 0x0663,\n\t0xa18: 0x0d0f, 0xa19: 0x0d13, 0xa1a: 0x0d17, 0xa1b: 0x0d2b, 0xa1c: 0x0d23, 0xa1d: 0x16dd,\n\t0xa1e: 0x0603, 0xa1f: 0x0d3f, 0xa20: 0x0d33, 0xa21: 0x0d4f, 0xa22: 0x0d57, 0xa23: 0x16e7,\n\t0xa24: 0x0d5b, 0xa25: 0x0d47, 0xa26: 0x0d63, 0xa27: 0x0607, 0xa28: 0x0d67, 0xa29: 0x0d6b,\n\t0xa2a: 0x0d6f, 0xa2b: 0x0d7b, 0xa2c: 0x16ec, 0xa2d: 0x0d83, 0xa2e: 0x060b, 0xa2f: 0x0d8f,\n\t0xa30: 0x16f1, 0xa31: 0x0d93, 0xa32: 0x060f, 0xa33: 0x0d9f, 0xa34: 0x0dab, 0xa35: 0x0db7,\n\t0xa36: 0x0dbb, 0xa37: 0x16f6, 0xa38: 0x168d, 0xa39: 0x16fb, 0xa3a: 0x0ddb, 0xa3b: 0x1700,\n\t0xa3c: 0x0de7, 0xa3d: 0x0def, 0xa3e: 0x0ddf, 0xa3f: 0x0dfb,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0x0e0b, 0xa41: 0x0e1b, 0xa42: 0x0e0f, 0xa43: 0x0e13, 0xa44: 0x0e1f, 0xa45: 0x0e23,\n\t0xa46: 0x1705, 0xa47: 0x0e07, 0xa48: 0x0e3b, 0xa49: 0x0e3f, 0xa4a: 0x0613, 0xa4b: 0x0e53,\n\t0xa4c: 0x0e4f, 0xa4d: 0x170a, 0xa4e: 0x0e33, 0xa4f: 0x0e6f, 0xa50: 0x170f, 0xa51: 0x1714,\n\t0xa52: 0x0e73, 0xa53: 0x0e87, 0xa54: 0x0e83, 0xa55: 0x0e7f, 0xa56: 0x0617, 0xa57: 0x0e8b,\n\t0xa58: 0x0e9b, 0xa59: 0x0e97, 0xa5a: 0x0ea3, 0xa5b: 0x1651, 0xa5c: 0x0eb3, 0xa5d: 0x1719,\n\t0xa5e: 0x0ebf, 0xa5f: 0x1723, 0xa60: 0x0ed3, 0xa61: 0x0edf, 0xa62: 0x0ef3, 0xa63: 0x1728,\n\t0xa64: 0x0f07, 0xa65: 0x0f0b, 0xa66: 0x172d, 0xa67: 0x1732, 0xa68: 0x0f27, 0xa69: 0x0f37,\n\t0xa6a: 0x061b, 0xa6b: 0x0f3b, 0xa6c: 0x061f, 0xa6d: 0x061f, 0xa6e: 0x0f53, 0xa6f: 0x0f57,\n\t0xa70: 0x0f5f, 0xa71: 0x0f63, 0xa72: 0x0f6f, 0xa73: 0x0623, 0xa74: 0x0f87, 0xa75: 0x1737,\n\t0xa76: 0x0fa3, 0xa77: 0x173c, 0xa78: 0x0faf, 0xa79: 0x16a1, 0xa7a: 0x0fbf, 0xa7b: 0x1741,\n\t0xa7c: 0x1746, 0xa7d: 0x174b, 0xa7e: 0x0627, 0xa7f: 0x062b,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0x0ff7, 0xa81: 0x1755, 0xa82: 0x1750, 0xa83: 0x175a, 0xa84: 0x175f, 0xa85: 0x0fff,\n\t0xa86: 0x1003, 0xa87: 0x1003, 0xa88: 0x100b, 0xa89: 0x0633, 0xa8a: 0x100f, 0xa8b: 0x0637,\n\t0xa8c: 0x063b, 0xa8d: 0x1769, 0xa8e: 0x1023, 0xa8f: 0x102b, 0xa90: 0x1037, 0xa91: 0x063f,\n\t0xa92: 0x176e, 0xa93: 0x105b, 0xa94: 0x1773, 0xa95: 0x1778, 0xa96: 0x107b, 0xa97: 0x1093,\n\t0xa98: 0x0643, 0xa99: 0x109b, 0xa9a: 0x109f, 0xa9b: 0x10a3, 0xa9c: 0x177d, 0xa9d: 0x1782,\n\t0xa9e: 0x1782, 0xa9f: 0x10bb, 0xaa0: 0x0647, 0xaa1: 0x1787, 0xaa2: 0x10cf, 0xaa3: 0x10d3,\n\t0xaa4: 0x064b, 0xaa5: 0x178c, 0xaa6: 0x10ef, 0xaa7: 0x064f, 0xaa8: 0x10ff, 0xaa9: 0x10f7,\n\t0xaaa: 0x1107, 0xaab: 0x1796, 0xaac: 0x111f, 0xaad: 0x0653, 0xaae: 0x112b, 0xaaf: 0x1133,\n\t0xab0: 0x1143, 0xab1: 0x0657, 0xab2: 0x17a0, 0xab3: 0x17a5, 0xab4: 0x065b, 0xab5: 0x17aa,\n\t0xab6: 0x115b, 0xab7: 0x17af, 0xab8: 0x1167, 0xab9: 0x1173, 0xaba: 0x117b, 0xabb: 0x17b4,\n\t0xabc: 0x17b9, 0xabd: 0x118f, 0xabe: 0x17be, 0xabf: 0x1197,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0x16ce, 0xac1: 0x065f, 0xac2: 0x11af, 0xac3: 0x11b3, 0xac4: 0x0667, 0xac5: 0x11b7,\n\t0xac6: 0x0a33, 0xac7: 0x17c3, 0xac8: 0x17c8, 0xac9: 0x16d3, 0xaca: 0x16d8, 0xacb: 0x11d7,\n\t0xacc: 0x11db, 0xacd: 0x13f3, 0xace: 0x066b, 0xacf: 0x1207, 0xad0: 0x1203, 0xad1: 0x120b,\n\t0xad2: 0x083f, 0xad3: 0x120f, 0xad4: 0x1213, 0xad5: 0x1217, 0xad6: 0x121f, 0xad7: 0x17cd,\n\t0xad8: 0x121b, 0xad9: 0x1223, 0xada: 0x1237, 0xadb: 0x123b, 0xadc: 0x1227, 0xadd: 0x123f,\n\t0xade: 0x1253, 0xadf: 0x1267, 0xae0: 0x1233, 0xae1: 0x1247, 0xae2: 0x124b, 0xae3: 0x124f,\n\t0xae4: 0x17d2, 0xae5: 0x17dc, 0xae6: 0x17d7, 0xae7: 0x066f, 0xae8: 0x126f, 0xae9: 0x1273,\n\t0xaea: 0x127b, 0xaeb: 0x17f0, 0xaec: 0x127f, 0xaed: 0x17e1, 0xaee: 0x0673, 0xaef: 0x0677,\n\t0xaf0: 0x17e6, 0xaf1: 0x17eb, 0xaf2: 0x067b, 0xaf3: 0x129f, 0xaf4: 0x12a3, 0xaf5: 0x12a7,\n\t0xaf6: 0x12ab, 0xaf7: 0x12b7, 0xaf8: 0x12b3, 0xaf9: 0x12bf, 0xafa: 0x12bb, 0xafb: 0x12cb,\n\t0xafc: 0x12c3, 0xafd: 0x12c7, 0xafe: 0x12cf, 0xaff: 0x067f,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0x12d7, 0xb01: 0x12db, 0xb02: 0x0683, 0xb03: 0x12eb, 0xb04: 0x12ef, 0xb05: 0x17f5,\n\t0xb06: 0x12fb, 0xb07: 0x12ff, 0xb08: 0x0687, 0xb09: 0x130b, 0xb0a: 0x05bb, 0xb0b: 0x17fa,\n\t0xb0c: 0x17ff, 0xb0d: 0x068b, 0xb0e: 0x068f, 0xb0f: 0x1337, 0xb10: 0x134f, 0xb11: 0x136b,\n\t0xb12: 0x137b, 0xb13: 0x1804, 0xb14: 0x138f, 0xb15: 0x1393, 0xb16: 0x13ab, 0xb17: 0x13b7,\n\t0xb18: 0x180e, 0xb19: 0x1660, 0xb1a: 0x13c3, 0xb1b: 0x13bf, 0xb1c: 0x13cb, 0xb1d: 0x1665,\n\t0xb1e: 0x13d7, 0xb1f: 0x13e3, 0xb20: 0x1813, 0xb21: 0x1818, 0xb22: 0x1423, 0xb23: 0x142f,\n\t0xb24: 0x1437, 0xb25: 0x181d, 0xb26: 0x143b, 0xb27: 0x1467, 0xb28: 0x1473, 0xb29: 0x1477,\n\t0xb2a: 0x146f, 0xb2b: 0x1483, 0xb2c: 0x1487, 0xb2d: 0x1822, 0xb2e: 0x1493, 0xb2f: 0x0693,\n\t0xb30: 0x149b, 0xb31: 0x1827, 0xb32: 0x0697, 0xb33: 0x14d3, 0xb34: 0x0ac3, 0xb35: 0x14eb,\n\t0xb36: 0x182c, 0xb37: 0x1836, 0xb38: 0x069b, 0xb39: 0x069f, 0xb3a: 0x1513, 0xb3b: 0x183b,\n\t0xb3c: 0x06a3, 0xb3d: 0x1840, 0xb3e: 0x152b, 0xb3f: 0x152b,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x1533, 0xb41: 0x1845, 0xb42: 0x154b, 0xb43: 0x06a7, 0xb44: 0x155b, 0xb45: 0x1567,\n\t0xb46: 0x156f, 0xb47: 0x1577, 0xb48: 0x06ab, 0xb49: 0x184a, 0xb4a: 0x158b, 0xb4b: 0x15a7,\n\t0xb4c: 0x15b3, 0xb4d: 0x06af, 0xb4e: 0x06b3, 0xb4f: 0x15b7, 0xb50: 0x184f, 0xb51: 0x06b7,\n\t0xb52: 0x1854, 0xb53: 0x1859, 0xb54: 0x185e, 0xb55: 0x15db, 0xb56: 0x06bb, 0xb57: 0x15ef,\n\t0xb58: 0x15f7, 0xb59: 0x15fb, 0xb5a: 0x1603, 0xb5b: 0x160b, 0xb5c: 0x1613, 0xb5d: 0x1868,\n}\n\n// nfcIndex: 22 blocks, 1408 entries, 1408 bytes\n// Block 0 is the zero block.\nvar nfcIndex = [1408]uint8{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x2c, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x2d, 0xc7: 0x04,\n\t0xc8: 0x05, 0xca: 0x2e, 0xcb: 0x2f, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x30,\n\t0xd0: 0x09, 0xd1: 0x31, 0xd2: 0x32, 0xd3: 0x0a, 0xd6: 0x0b, 0xd7: 0x33,\n\t0xd8: 0x34, 0xd9: 0x0c, 0xdb: 0x35, 0xdc: 0x36, 0xdd: 0x37, 0xdf: 0x38,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,\n\t0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a,\n\t0xf0: 0x13,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x39, 0x121: 0x3a, 0x123: 0x3b, 0x124: 0x3c, 0x125: 0x3d, 0x126: 0x3e, 0x127: 0x3f,\n\t0x128: 0x40, 0x129: 0x41, 0x12a: 0x42, 0x12b: 0x43, 0x12c: 0x3e, 0x12d: 0x44, 0x12e: 0x45, 0x12f: 0x46,\n\t0x131: 0x47, 0x132: 0x48, 0x133: 0x49, 0x134: 0x4a, 0x135: 0x4b, 0x137: 0x4c,\n\t0x138: 0x4d, 0x139: 0x4e, 0x13a: 0x4f, 0x13b: 0x50, 0x13c: 0x51, 0x13d: 0x52, 0x13e: 0x53, 0x13f: 0x54,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x55, 0x142: 0x56, 0x144: 0x57, 0x145: 0x58, 0x146: 0x59, 0x147: 0x5a,\n\t0x14d: 0x5b,\n\t0x15c: 0x5c, 0x15f: 0x5d,\n\t0x162: 0x5e, 0x164: 0x5f,\n\t0x168: 0x60, 0x169: 0x61, 0x16a: 0x62, 0x16c: 0x0d, 0x16d: 0x63, 0x16e: 0x64, 0x16f: 0x65,\n\t0x170: 0x66, 0x173: 0x67, 0x177: 0x68,\n\t0x178: 0x0e, 0x179: 0x0f, 0x17a: 0x10, 0x17b: 0x11, 0x17c: 0x12, 0x17d: 0x13, 0x17e: 0x14, 0x17f: 0x15,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x69, 0x183: 0x6a, 0x184: 0x6b, 0x186: 0x6c, 0x187: 0x6d,\n\t0x188: 0x6e, 0x189: 0x16, 0x18a: 0x17, 0x18b: 0x6f, 0x18c: 0x70,\n\t0x1ab: 0x71,\n\t0x1b3: 0x72, 0x1b5: 0x73, 0x1b7: 0x74,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x75, 0x1c1: 0x18, 0x1c2: 0x19, 0x1c3: 0x1a, 0x1c4: 0x76, 0x1c5: 0x77,\n\t0x1c9: 0x78, 0x1cc: 0x79, 0x1cd: 0x7a,\n\t// Block 0x8, offset 0x200\n\t0x219: 0x7b, 0x21a: 0x7c, 0x21b: 0x7d,\n\t0x220: 0x7e, 0x223: 0x7f, 0x224: 0x80, 0x225: 0x81, 0x226: 0x82, 0x227: 0x83,\n\t0x22a: 0x84, 0x22b: 0x85, 0x22f: 0x86,\n\t0x230: 0x87, 0x231: 0x88, 0x232: 0x89, 0x233: 0x8a, 0x234: 0x8b, 0x235: 0x8c, 0x236: 0x8d, 0x237: 0x87,\n\t0x238: 0x88, 0x239: 0x89, 0x23a: 0x8a, 0x23b: 0x8b, 0x23c: 0x8c, 0x23d: 0x8d, 0x23e: 0x87, 0x23f: 0x88,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x89, 0x241: 0x8a, 0x242: 0x8b, 0x243: 0x8c, 0x244: 0x8d, 0x245: 0x87, 0x246: 0x88, 0x247: 0x89,\n\t0x248: 0x8a, 0x249: 0x8b, 0x24a: 0x8c, 0x24b: 0x8d, 0x24c: 0x87, 0x24d: 0x88, 0x24e: 0x89, 0x24f: 0x8a,\n\t0x250: 0x8b, 0x251: 0x8c, 0x252: 0x8d, 0x253: 0x87, 0x254: 0x88, 0x255: 0x89, 0x256: 0x8a, 0x257: 0x8b,\n\t0x258: 0x8c, 0x259: 0x8d, 0x25a: 0x87, 0x25b: 0x88, 0x25c: 0x89, 0x25d: 0x8a, 0x25e: 0x8b, 0x25f: 0x8c,\n\t0x260: 0x8d, 0x261: 0x87, 0x262: 0x88, 0x263: 0x89, 0x264: 0x8a, 0x265: 0x8b, 0x266: 0x8c, 0x267: 0x8d,\n\t0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26c: 0x8b, 0x26d: 0x8c, 0x26e: 0x8d, 0x26f: 0x87,\n\t0x270: 0x88, 0x271: 0x89, 0x272: 0x8a, 0x273: 0x8b, 0x274: 0x8c, 0x275: 0x8d, 0x276: 0x87, 0x277: 0x88,\n\t0x278: 0x89, 0x279: 0x8a, 0x27a: 0x8b, 0x27b: 0x8c, 0x27c: 0x8d, 0x27d: 0x87, 0x27e: 0x88, 0x27f: 0x89,\n\t// Block 0xa, offset 0x280\n\t0x280: 0x8a, 0x281: 0x8b, 0x282: 0x8c, 0x283: 0x8d, 0x284: 0x87, 0x285: 0x88, 0x286: 0x89, 0x287: 0x8a,\n\t0x288: 0x8b, 0x289: 0x8c, 0x28a: 0x8d, 0x28b: 0x87, 0x28c: 0x88, 0x28d: 0x89, 0x28e: 0x8a, 0x28f: 0x8b,\n\t0x290: 0x8c, 0x291: 0x8d, 0x292: 0x87, 0x293: 0x88, 0x294: 0x89, 0x295: 0x8a, 0x296: 0x8b, 0x297: 0x8c,\n\t0x298: 0x8d, 0x299: 0x87, 0x29a: 0x88, 0x29b: 0x89, 0x29c: 0x8a, 0x29d: 0x8b, 0x29e: 0x8c, 0x29f: 0x8d,\n\t0x2a0: 0x87, 0x2a1: 0x88, 0x2a2: 0x89, 0x2a3: 0x8a, 0x2a4: 0x8b, 0x2a5: 0x8c, 0x2a6: 0x8d, 0x2a7: 0x87,\n\t0x2a8: 0x88, 0x2a9: 0x89, 0x2aa: 0x8a, 0x2ab: 0x8b, 0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x87, 0x2af: 0x88,\n\t0x2b0: 0x89, 0x2b1: 0x8a, 0x2b2: 0x8b, 0x2b3: 0x8c, 0x2b4: 0x8d, 0x2b5: 0x87, 0x2b6: 0x88, 0x2b7: 0x89,\n\t0x2b8: 0x8a, 0x2b9: 0x8b, 0x2ba: 0x8c, 0x2bb: 0x8d, 0x2bc: 0x87, 0x2bd: 0x88, 0x2be: 0x89, 0x2bf: 0x8a,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0x8b, 0x2c1: 0x8c, 0x2c2: 0x8d, 0x2c3: 0x87, 0x2c4: 0x88, 0x2c5: 0x89, 0x2c6: 0x8a, 0x2c7: 0x8b,\n\t0x2c8: 0x8c, 0x2c9: 0x8d, 0x2ca: 0x87, 0x2cb: 0x88, 0x2cc: 0x89, 0x2cd: 0x8a, 0x2ce: 0x8b, 0x2cf: 0x8c,\n\t0x2d0: 0x8d, 0x2d1: 0x87, 0x2d2: 0x88, 0x2d3: 0x89, 0x2d4: 0x8a, 0x2d5: 0x8b, 0x2d6: 0x8c, 0x2d7: 0x8d,\n\t0x2d8: 0x87, 0x2d9: 0x88, 0x2da: 0x89, 0x2db: 0x8a, 0x2dc: 0x8b, 0x2dd: 0x8c, 0x2de: 0x8e,\n\t// Block 0xc, offset 0x300\n\t0x324: 0x1b, 0x325: 0x1c, 0x326: 0x1d, 0x327: 0x1e,\n\t0x328: 0x1f, 0x329: 0x20, 0x32a: 0x21, 0x32b: 0x22, 0x32c: 0x8f, 0x32d: 0x90, 0x32e: 0x91,\n\t0x331: 0x92, 0x332: 0x93, 0x333: 0x94, 0x334: 0x95,\n\t0x338: 0x96, 0x339: 0x97, 0x33a: 0x98, 0x33b: 0x99, 0x33e: 0x9a, 0x33f: 0x9b,\n\t// Block 0xd, offset 0x340\n\t0x347: 0x9c,\n\t0x34b: 0x9d, 0x34d: 0x9e,\n\t0x368: 0x9f, 0x36b: 0xa0,\n\t// Block 0xe, offset 0x380\n\t0x381: 0xa1, 0x382: 0xa2, 0x384: 0xa3, 0x385: 0x82, 0x387: 0xa4,\n\t0x388: 0xa5, 0x38b: 0xa6, 0x38c: 0x3e, 0x38d: 0xa7,\n\t0x391: 0xa8, 0x392: 0xa9, 0x393: 0xaa, 0x396: 0xab, 0x397: 0xac,\n\t0x398: 0x73, 0x39a: 0xad, 0x39c: 0xae,\n\t0x3b0: 0x73,\n\t// Block 0xf, offset 0x3c0\n\t0x3eb: 0xaf, 0x3ec: 0xb0,\n\t// Block 0x10, offset 0x400\n\t0x432: 0xb1,\n\t// Block 0x11, offset 0x440\n\t0x445: 0xb2, 0x446: 0xb3, 0x447: 0xb4,\n\t0x449: 0xb5,\n\t// Block 0x12, offset 0x480\n\t0x480: 0xb6,\n\t0x4a3: 0xb7, 0x4a5: 0xb8,\n\t// Block 0x13, offset 0x4c0\n\t0x4c8: 0xb9,\n\t// Block 0x14, offset 0x500\n\t0x520: 0x23, 0x521: 0x24, 0x522: 0x25, 0x523: 0x26, 0x524: 0x27, 0x525: 0x28, 0x526: 0x29, 0x527: 0x2a,\n\t0x528: 0x2b,\n\t// Block 0x15, offset 0x540\n\t0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,\n\t0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,\n\t0x56f: 0x12,\n}\n\n// nfcSparseOffset: 142 entries, 284 bytes\nvar nfcSparseOffset = []uint16{0x0, 0x5, 0x9, 0xb, 0xd, 0x18, 0x28, 0x2a, 0x2f, 0x3a, 0x49, 0x56, 0x5e, 0x62, 0x67, 0x69, 0x7a, 0x82, 0x89, 0x8c, 0x93, 0x97, 0x9b, 0x9d, 0x9f, 0xa8, 0xac, 0xb3, 0xb8, 0xbb, 0xc5, 0xc7, 0xce, 0xd6, 0xd9, 0xdb, 0xdd, 0xdf, 0xe4, 0xf5, 0x101, 0x103, 0x109, 0x10b, 0x10d, 0x10f, 0x111, 0x113, 0x115, 0x118, 0x11b, 0x11d, 0x120, 0x123, 0x127, 0x12c, 0x135, 0x137, 0x13a, 0x13c, 0x147, 0x157, 0x15b, 0x169, 0x16c, 0x172, 0x178, 0x183, 0x187, 0x189, 0x18b, 0x18d, 0x18f, 0x191, 0x197, 0x19b, 0x19d, 0x19f, 0x1a7, 0x1ab, 0x1ae, 0x1b0, 0x1b2, 0x1b4, 0x1b7, 0x1b9, 0x1bb, 0x1bd, 0x1bf, 0x1c5, 0x1c8, 0x1ca, 0x1d1, 0x1d7, 0x1dd, 0x1e5, 0x1eb, 0x1f1, 0x1f7, 0x1fb, 0x209, 0x212, 0x215, 0x218, 0x21a, 0x21d, 0x21f, 0x223, 0x228, 0x22a, 0x22c, 0x231, 0x237, 0x239, 0x23b, 0x23d, 0x243, 0x246, 0x249, 0x251, 0x258, 0x25b, 0x25e, 0x260, 0x268, 0x26b, 0x272, 0x275, 0x27b, 0x27d, 0x280, 0x282, 0x284, 0x286, 0x288, 0x295, 0x29f, 0x2a1, 0x2a3, 0x2a9, 0x2ab, 0x2ae}\n\n// nfcSparseValues: 688 entries, 2752 bytes\nvar nfcSparseValues = [688]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0xa100, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8100, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8100, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8100, lo: 0xb8, hi: 0xb8},\n\t// Block 0x1, offset 0x5\n\t{value: 0x0091, lo: 0x03},\n\t{value: 0x46e2, lo: 0xa0, hi: 0xa1},\n\t{value: 0x4714, lo: 0xaf, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb7, hi: 0xb7},\n\t// Block 0x2, offset 0x9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t// Block 0x3, offset 0xb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x98, hi: 0x9d},\n\t// Block 0x4, offset 0xd\n\t{value: 0x0006, lo: 0x0a},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x85, hi: 0x85},\n\t{value: 0xa000, lo: 0x89, hi: 0x89},\n\t{value: 0x4840, lo: 0x8a, hi: 0x8a},\n\t{value: 0x485e, lo: 0x8b, hi: 0x8b},\n\t{value: 0x36c7, lo: 0x8c, hi: 0x8c},\n\t{value: 0x36df, lo: 0x8d, hi: 0x8d},\n\t{value: 0x4876, lo: 0x8e, hi: 0x8e},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x36fd, lo: 0x93, hi: 0x94},\n\t// Block 0x5, offset 0x18\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0xa000, lo: 0x8d, hi: 0x8d},\n\t{value: 0x37a5, lo: 0x90, hi: 0x90},\n\t{value: 0x37b1, lo: 0x91, hi: 0x91},\n\t{value: 0x379f, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x96, hi: 0x96},\n\t{value: 0x3817, lo: 0x97, hi: 0x97},\n\t{value: 0x37e1, lo: 0x9c, hi: 0x9c},\n\t{value: 0x37c9, lo: 0x9d, hi: 0x9d},\n\t{value: 0x37f3, lo: 0x9e, hi: 0x9e},\n\t{value: 0xa000, lo: 0xb4, hi: 0xb5},\n\t{value: 0x381d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3823, lo: 0xb7, hi: 0xb7},\n\t// Block 0x6, offset 0x28\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x83, hi: 0x87},\n\t// Block 0x7, offset 0x2a\n\t{value: 0x0001, lo: 0x04},\n\t{value: 0x8113, lo: 0x81, hi: 0x82},\n\t{value: 0x8132, lo: 0x84, hi: 0x84},\n\t{value: 0x812d, lo: 0x85, hi: 0x85},\n\t{value: 0x810d, lo: 0x87, hi: 0x87},\n\t// Block 0x8, offset 0x2f\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x97},\n\t{value: 0x8119, lo: 0x98, hi: 0x98},\n\t{value: 0x811a, lo: 0x99, hi: 0x99},\n\t{value: 0x811b, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3841, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3847, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3853, lo: 0xa4, hi: 0xa4},\n\t{value: 0x384d, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3859, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xa7, hi: 0xa7},\n\t// Block 0x9, offset 0x3a\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x386b, lo: 0x80, hi: 0x80},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0x385f, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x3865, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x95, hi: 0x95},\n\t{value: 0x8132, lo: 0x96, hi: 0x9c},\n\t{value: 0x8132, lo: 0x9f, hi: 0xa2},\n\t{value: 0x812d, lo: 0xa3, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa8},\n\t{value: 0x812d, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8132, lo: 0xab, hi: 0xac},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t// Block 0xa, offset 0x49\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x811f, lo: 0x91, hi: 0x91},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x812d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb5, hi: 0xb6},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb9},\n\t{value: 0x8132, lo: 0xba, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbc},\n\t{value: 0x8132, lo: 0xbd, hi: 0xbd},\n\t{value: 0x812d, lo: 0xbe, hi: 0xbe},\n\t{value: 0x8132, lo: 0xbf, hi: 0xbf},\n\t// Block 0xb, offset 0x56\n\t{value: 0x0005, lo: 0x07},\n\t{value: 0x8132, lo: 0x80, hi: 0x80},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x812d, lo: 0x82, hi: 0x83},\n\t{value: 0x812d, lo: 0x84, hi: 0x85},\n\t{value: 0x812d, lo: 0x86, hi: 0x87},\n\t{value: 0x812d, lo: 0x88, hi: 0x89},\n\t{value: 0x8132, lo: 0x8a, hi: 0x8a},\n\t// Block 0xc, offset 0x5e\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8132, lo: 0xab, hi: 0xb1},\n\t{value: 0x812d, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8132, lo: 0xb3, hi: 0xb3},\n\t// Block 0xd, offset 0x62\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0x96, hi: 0x99},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa7},\n\t{value: 0x8132, lo: 0xa9, hi: 0xad},\n\t// Block 0xe, offset 0x67\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x99, hi: 0x9b},\n\t// Block 0xf, offset 0x69\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x8132, lo: 0x94, hi: 0xa1},\n\t{value: 0x812d, lo: 0xa3, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa5},\n\t{value: 0x812d, lo: 0xa6, hi: 0xa6},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa8},\n\t{value: 0x812d, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8132, lo: 0xaa, hi: 0xac},\n\t{value: 0x812d, lo: 0xad, hi: 0xaf},\n\t{value: 0x8116, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8117, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8118, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8132, lo: 0xb3, hi: 0xb5},\n\t{value: 0x812d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8132, lo: 0xb7, hi: 0xb8},\n\t{value: 0x812d, lo: 0xb9, hi: 0xba},\n\t{value: 0x8132, lo: 0xbb, hi: 0xbf},\n\t// Block 0x10, offset 0x7a\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3ed8, lo: 0xa9, hi: 0xa9},\n\t{value: 0xa000, lo: 0xb0, hi: 0xb0},\n\t{value: 0x3ee0, lo: 0xb1, hi: 0xb1},\n\t{value: 0xa000, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3ee8, lo: 0xb4, hi: 0xb4},\n\t{value: 0x9902, lo: 0xbc, hi: 0xbc},\n\t// Block 0x11, offset 0x82\n\t{value: 0x0008, lo: 0x06},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x91, hi: 0x91},\n\t{value: 0x812d, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x93, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x94},\n\t{value: 0x451c, lo: 0x98, hi: 0x9f},\n\t// Block 0x12, offset 0x89\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x13, offset 0x8c\n\t{value: 0x0008, lo: 0x06},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2c9e, lo: 0x8b, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x455c, lo: 0x9c, hi: 0x9d},\n\t{value: 0x456c, lo: 0x9f, hi: 0x9f},\n\t// Block 0x14, offset 0x93\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x4594, lo: 0xb3, hi: 0xb3},\n\t{value: 0x459c, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x15, offset 0x97\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x4574, lo: 0x99, hi: 0x9b},\n\t{value: 0x458c, lo: 0x9e, hi: 0x9e},\n\t// Block 0x16, offset 0x9b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x17, offset 0x9d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t// Block 0x18, offset 0x9f\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2cb6, lo: 0x88, hi: 0x88},\n\t{value: 0x2cae, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cbe, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x96, hi: 0x97},\n\t{value: 0x45a4, lo: 0x9c, hi: 0x9c},\n\t{value: 0x45ac, lo: 0x9d, hi: 0x9d},\n\t// Block 0x19, offset 0xa8\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x2cc6, lo: 0x94, hi: 0x94},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1a, offset 0xac\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cce, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2cde, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cd6, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1b, offset 0xb3\n\t{value: 0x1801, lo: 0x04},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x3ef0, lo: 0x88, hi: 0x88},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8120, lo: 0x95, hi: 0x96},\n\t// Block 0x1c, offset 0xb8\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0xa000, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1d, offset 0xbb\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x2ce6, lo: 0x80, hi: 0x80},\n\t{value: 0x9900, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x2cee, lo: 0x87, hi: 0x87},\n\t{value: 0x2cf6, lo: 0x88, hi: 0x88},\n\t{value: 0x2f50, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2dd8, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x95, hi: 0x96},\n\t// Block 0x1e, offset 0xc5\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1f, offset 0xc7\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cfe, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2d0e, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d06, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x20, offset 0xce\n\t{value: 0x6bea, lo: 0x07},\n\t{value: 0x9904, lo: 0x8a, hi: 0x8a},\n\t{value: 0x9900, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x3ef8, lo: 0x9a, hi: 0x9a},\n\t{value: 0x2f58, lo: 0x9c, hi: 0x9c},\n\t{value: 0x2de3, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2d16, lo: 0x9e, hi: 0x9f},\n\t// Block 0x21, offset 0xd6\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8122, lo: 0xb8, hi: 0xb9},\n\t{value: 0x8104, lo: 0xba, hi: 0xba},\n\t// Block 0x22, offset 0xd9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8123, lo: 0x88, hi: 0x8b},\n\t// Block 0x23, offset 0xdb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8124, lo: 0xb8, hi: 0xb9},\n\t// Block 0x24, offset 0xdd\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8125, lo: 0x88, hi: 0x8b},\n\t// Block 0x25, offset 0xdf\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x812d, lo: 0x98, hi: 0x99},\n\t{value: 0x812d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb7},\n\t{value: 0x812b, lo: 0xb9, hi: 0xb9},\n\t// Block 0x26, offset 0xe4\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x2644, lo: 0x83, hi: 0x83},\n\t{value: 0x264b, lo: 0x8d, hi: 0x8d},\n\t{value: 0x2652, lo: 0x92, hi: 0x92},\n\t{value: 0x2659, lo: 0x97, hi: 0x97},\n\t{value: 0x2660, lo: 0x9c, hi: 0x9c},\n\t{value: 0x263d, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8126, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8127, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4a84, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8128, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4a8d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x45b4, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8200, lo: 0xb7, hi: 0xb7},\n\t{value: 0x45bc, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8200, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8127, lo: 0xba, hi: 0xbd},\n\t// Block 0x27, offset 0xf5\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x8127, lo: 0x80, hi: 0x80},\n\t{value: 0x4a96, lo: 0x81, hi: 0x81},\n\t{value: 0x8132, lo: 0x82, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0x86, hi: 0x87},\n\t{value: 0x266e, lo: 0x93, hi: 0x93},\n\t{value: 0x2675, lo: 0x9d, hi: 0x9d},\n\t{value: 0x267c, lo: 0xa2, hi: 0xa2},\n\t{value: 0x2683, lo: 0xa7, hi: 0xa7},\n\t{value: 0x268a, lo: 0xac, hi: 0xac},\n\t{value: 0x2667, lo: 0xb9, hi: 0xb9},\n\t// Block 0x28, offset 0x101\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x86, hi: 0x86},\n\t// Block 0x29, offset 0x103\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x2d1e, lo: 0xa6, hi: 0xa6},\n\t{value: 0x9900, lo: 0xae, hi: 0xae},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x2a, offset 0x109\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t// Block 0x2b, offset 0x10b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x80, hi: 0x92},\n\t// Block 0x2c, offset 0x10d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xb900, lo: 0xa1, hi: 0xb5},\n\t// Block 0x2d, offset 0x10f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0xa8, hi: 0xbf},\n\t// Block 0x2e, offset 0x111\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0x80, hi: 0x82},\n\t// Block 0x2f, offset 0x113\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9f},\n\t// Block 0x30, offset 0x115\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x94, hi: 0x94},\n\t{value: 0x8104, lo: 0xb4, hi: 0xb4},\n\t// Block 0x31, offset 0x118\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9d},\n\t// Block 0x32, offset 0x11b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8131, lo: 0xa9, hi: 0xa9},\n\t// Block 0x33, offset 0x11d\n\t{value: 0x0004, lo: 0x02},\n\t{value: 0x812e, lo: 0xb9, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbb},\n\t// Block 0x34, offset 0x120\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x97, hi: 0x97},\n\t{value: 0x812d, lo: 0x98, hi: 0x98},\n\t// Block 0x35, offset 0x123\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8104, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8132, lo: 0xb5, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbf, hi: 0xbf},\n\t// Block 0x36, offset 0x127\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t{value: 0x812d, lo: 0xb5, hi: 0xba},\n\t{value: 0x8132, lo: 0xbb, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x37, offset 0x12c\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x2d66, lo: 0x80, hi: 0x80},\n\t{value: 0x2d6e, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x82, hi: 0x82},\n\t{value: 0x2d76, lo: 0x83, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xab, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xac},\n\t{value: 0x8132, lo: 0xad, hi: 0xb3},\n\t// Block 0x38, offset 0x135\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xaa, hi: 0xab},\n\t// Block 0x39, offset 0x137\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xa6, hi: 0xa6},\n\t{value: 0x8104, lo: 0xb2, hi: 0xb3},\n\t// Block 0x3a, offset 0x13a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x3b, offset 0x13c\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x92},\n\t{value: 0x8101, lo: 0x94, hi: 0x94},\n\t{value: 0x812d, lo: 0x95, hi: 0x99},\n\t{value: 0x8132, lo: 0x9a, hi: 0x9b},\n\t{value: 0x812d, lo: 0x9c, hi: 0x9f},\n\t{value: 0x8132, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8101, lo: 0xa2, hi: 0xa8},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t{value: 0x8132, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb9},\n\t// Block 0x3c, offset 0x147\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x8132, lo: 0x80, hi: 0x81},\n\t{value: 0x812d, lo: 0x82, hi: 0x82},\n\t{value: 0x8132, lo: 0x83, hi: 0x89},\n\t{value: 0x812d, lo: 0x8a, hi: 0x8a},\n\t{value: 0x8132, lo: 0x8b, hi: 0x8c},\n\t{value: 0x8135, lo: 0x8d, hi: 0x8d},\n\t{value: 0x812a, lo: 0x8e, hi: 0x8e},\n\t{value: 0x812d, lo: 0x8f, hi: 0x8f},\n\t{value: 0x8129, lo: 0x90, hi: 0x90},\n\t{value: 0x8132, lo: 0x91, hi: 0xb5},\n\t{value: 0x8132, lo: 0xbb, hi: 0xbb},\n\t{value: 0x8134, lo: 0xbc, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t{value: 0x8132, lo: 0xbe, hi: 0xbe},\n\t{value: 0x812d, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3d, offset 0x157\n\t{value: 0x0004, lo: 0x03},\n\t{value: 0x0433, lo: 0x80, hi: 0x81},\n\t{value: 0x8100, lo: 0x97, hi: 0x97},\n\t{value: 0x8100, lo: 0xbe, hi: 0xbe},\n\t// Block 0x3e, offset 0x15b\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x8132, lo: 0x90, hi: 0x91},\n\t{value: 0x8101, lo: 0x92, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x97},\n\t{value: 0x8101, lo: 0x98, hi: 0x9a},\n\t{value: 0x8132, lo: 0x9b, hi: 0x9c},\n\t{value: 0x8132, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8101, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa7},\n\t{value: 0x812d, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8132, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8101, lo: 0xaa, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t// Block 0x3f, offset 0x169\n\t{value: 0x427b, lo: 0x02},\n\t{value: 0x01b8, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0057, lo: 0xaa, hi: 0xab},\n\t// Block 0x40, offset 0x16c\n\t{value: 0x0007, lo: 0x05},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t{value: 0x3bb9, lo: 0x9a, hi: 0x9b},\n\t{value: 0x3bc7, lo: 0xae, hi: 0xae},\n\t// Block 0x41, offset 0x172\n\t{value: 0x000e, lo: 0x05},\n\t{value: 0x3bce, lo: 0x8d, hi: 0x8e},\n\t{value: 0x3bd5, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t// Block 0x42, offset 0x178\n\t{value: 0x6408, lo: 0x0a},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0x3be3, lo: 0x84, hi: 0x84},\n\t{value: 0xa000, lo: 0x88, hi: 0x88},\n\t{value: 0x3bea, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0x3bf1, lo: 0x8c, hi: 0x8c},\n\t{value: 0xa000, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3bf8, lo: 0xa4, hi: 0xa5},\n\t{value: 0x3bff, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xbc, hi: 0xbc},\n\t// Block 0x43, offset 0x183\n\t{value: 0x0007, lo: 0x03},\n\t{value: 0x3c68, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3c92, lo: 0xa2, hi: 0xa3},\n\t{value: 0x3cbc, lo: 0xaa, hi: 0xad},\n\t// Block 0x44, offset 0x187\n\t{value: 0x0004, lo: 0x01},\n\t{value: 0x048b, lo: 0xa9, hi: 0xaa},\n\t// Block 0x45, offset 0x189\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x44dd, lo: 0x9c, hi: 0x9c},\n\t// Block 0x46, offset 0x18b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xaf, hi: 0xb1},\n\t// Block 0x47, offset 0x18d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x48, offset 0x18f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xa0, hi: 0xbf},\n\t// Block 0x49, offset 0x191\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x812c, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8131, lo: 0xab, hi: 0xab},\n\t{value: 0x8133, lo: 0xac, hi: 0xac},\n\t{value: 0x812e, lo: 0xad, hi: 0xad},\n\t{value: 0x812f, lo: 0xae, hi: 0xaf},\n\t// Block 0x4a, offset 0x197\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x4a9f, lo: 0xb3, hi: 0xb3},\n\t{value: 0x4a9f, lo: 0xb5, hi: 0xb6},\n\t{value: 0x4a9f, lo: 0xba, hi: 0xbf},\n\t// Block 0x4b, offset 0x19b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x4a9f, lo: 0x8f, hi: 0xa3},\n\t// Block 0x4c, offset 0x19d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xae, hi: 0xbe},\n\t// Block 0x4d, offset 0x19f\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0x8100, lo: 0x84, hi: 0x84},\n\t{value: 0x8100, lo: 0x87, hi: 0x87},\n\t{value: 0x8100, lo: 0x90, hi: 0x90},\n\t{value: 0x8100, lo: 0x9e, hi: 0x9e},\n\t{value: 0x8100, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8100, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8100, lo: 0xbb, hi: 0xbb},\n\t// Block 0x4e, offset 0x1a7\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8100, lo: 0x80, hi: 0x80},\n\t{value: 0x8100, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8100, lo: 0x8e, hi: 0x8e},\n\t// Block 0x4f, offset 0x1ab\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb4, hi: 0xbd},\n\t// Block 0x50, offset 0x1ae\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x9e, hi: 0x9f},\n\t// Block 0x51, offset 0x1b0\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb1},\n\t// Block 0x52, offset 0x1b2\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t// Block 0x53, offset 0x1b4\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xa0, hi: 0xb1},\n\t// Block 0x54, offset 0x1b7\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xab, hi: 0xad},\n\t// Block 0x55, offset 0x1b9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x93, hi: 0x93},\n\t// Block 0x56, offset 0x1bb\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb3, hi: 0xb3},\n\t// Block 0x57, offset 0x1bd\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t// Block 0x58, offset 0x1bf\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb7, hi: 0xb8},\n\t{value: 0x8132, lo: 0xbe, hi: 0xbf},\n\t// Block 0x59, offset 0x1c5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t// Block 0x5a, offset 0x1c8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xad, hi: 0xad},\n\t// Block 0x5b, offset 0x1ca\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe500, lo: 0x80, hi: 0x80},\n\t{value: 0xc600, lo: 0x81, hi: 0x9b},\n\t{value: 0xe500, lo: 0x9c, hi: 0x9c},\n\t{value: 0xc600, lo: 0x9d, hi: 0xb7},\n\t{value: 0xe500, lo: 0xb8, hi: 0xb8},\n\t{value: 0xc600, lo: 0xb9, hi: 0xbf},\n\t// Block 0x5c, offset 0x1d1\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x93},\n\t{value: 0xe500, lo: 0x94, hi: 0x94},\n\t{value: 0xc600, lo: 0x95, hi: 0xaf},\n\t{value: 0xe500, lo: 0xb0, hi: 0xb0},\n\t{value: 0xc600, lo: 0xb1, hi: 0xbf},\n\t// Block 0x5d, offset 0x1d7\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8b},\n\t{value: 0xe500, lo: 0x8c, hi: 0x8c},\n\t{value: 0xc600, lo: 0x8d, hi: 0xa7},\n\t{value: 0xe500, lo: 0xa8, hi: 0xa8},\n\t{value: 0xc600, lo: 0xa9, hi: 0xbf},\n\t// Block 0x5e, offset 0x1dd\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xc600, lo: 0x80, hi: 0x83},\n\t{value: 0xe500, lo: 0x84, hi: 0x84},\n\t{value: 0xc600, lo: 0x85, hi: 0x9f},\n\t{value: 0xe500, lo: 0xa0, hi: 0xa0},\n\t{value: 0xc600, lo: 0xa1, hi: 0xbb},\n\t{value: 0xe500, lo: 0xbc, hi: 0xbc},\n\t{value: 0xc600, lo: 0xbd, hi: 0xbf},\n\t// Block 0x5f, offset 0x1e5\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x97},\n\t{value: 0xe500, lo: 0x98, hi: 0x98},\n\t{value: 0xc600, lo: 0x99, hi: 0xb3},\n\t{value: 0xe500, lo: 0xb4, hi: 0xb4},\n\t{value: 0xc600, lo: 0xb5, hi: 0xbf},\n\t// Block 0x60, offset 0x1eb\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8f},\n\t{value: 0xe500, lo: 0x90, hi: 0x90},\n\t{value: 0xc600, lo: 0x91, hi: 0xab},\n\t{value: 0xe500, lo: 0xac, hi: 0xac},\n\t{value: 0xc600, lo: 0xad, hi: 0xbf},\n\t// Block 0x61, offset 0x1f1\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t{value: 0xe500, lo: 0xa4, hi: 0xa4},\n\t{value: 0xc600, lo: 0xa5, hi: 0xbf},\n\t// Block 0x62, offset 0x1f7\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t// Block 0x63, offset 0x1fb\n\t{value: 0x0006, lo: 0x0d},\n\t{value: 0x4390, lo: 0x9d, hi: 0x9d},\n\t{value: 0x8115, lo: 0x9e, hi: 0x9e},\n\t{value: 0x4402, lo: 0x9f, hi: 0x9f},\n\t{value: 0x43f0, lo: 0xaa, hi: 0xab},\n\t{value: 0x44f4, lo: 0xac, hi: 0xac},\n\t{value: 0x44fc, lo: 0xad, hi: 0xad},\n\t{value: 0x4348, lo: 0xae, hi: 0xb1},\n\t{value: 0x4366, lo: 0xb2, hi: 0xb4},\n\t{value: 0x437e, lo: 0xb5, hi: 0xb6},\n\t{value: 0x438a, lo: 0xb8, hi: 0xb8},\n\t{value: 0x4396, lo: 0xb9, hi: 0xbb},\n\t{value: 0x43ae, lo: 0xbc, hi: 0xbc},\n\t{value: 0x43b4, lo: 0xbe, hi: 0xbe},\n\t// Block 0x64, offset 0x209\n\t{value: 0x0006, lo: 0x08},\n\t{value: 0x43ba, lo: 0x80, hi: 0x81},\n\t{value: 0x43c6, lo: 0x83, hi: 0x84},\n\t{value: 0x43d8, lo: 0x86, hi: 0x89},\n\t{value: 0x43fc, lo: 0x8a, hi: 0x8a},\n\t{value: 0x4378, lo: 0x8b, hi: 0x8b},\n\t{value: 0x4360, lo: 0x8c, hi: 0x8c},\n\t{value: 0x43a8, lo: 0x8d, hi: 0x8d},\n\t{value: 0x43d2, lo: 0x8e, hi: 0x8e},\n\t// Block 0x65, offset 0x212\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0xa4, hi: 0xa5},\n\t{value: 0x8100, lo: 0xb0, hi: 0xb1},\n\t// Block 0x66, offset 0x215\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0x9b, hi: 0x9d},\n\t{value: 0x8200, lo: 0x9e, hi: 0xa3},\n\t// Block 0x67, offset 0x218\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x90, hi: 0x90},\n\t// Block 0x68, offset 0x21a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8100, lo: 0x99, hi: 0x99},\n\t{value: 0x8200, lo: 0xb2, hi: 0xb4},\n\t// Block 0x69, offset 0x21d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xbc, hi: 0xbd},\n\t// Block 0x6a, offset 0x21f\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8132, lo: 0xa0, hi: 0xa6},\n\t{value: 0x812d, lo: 0xa7, hi: 0xad},\n\t{value: 0x8132, lo: 0xae, hi: 0xaf},\n\t// Block 0x6b, offset 0x223\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8100, lo: 0x89, hi: 0x8c},\n\t{value: 0x8100, lo: 0xb0, hi: 0xb2},\n\t{value: 0x8100, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8100, lo: 0xb6, hi: 0xbf},\n\t// Block 0x6c, offset 0x228\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x81, hi: 0x8c},\n\t// Block 0x6d, offset 0x22a\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0xb5, hi: 0xba},\n\t// Block 0x6e, offset 0x22c\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x4a9f, lo: 0x9e, hi: 0x9f},\n\t{value: 0x4a9f, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4a9f, lo: 0xa5, hi: 0xa6},\n\t{value: 0x4a9f, lo: 0xaa, hi: 0xaf},\n\t// Block 0x6f, offset 0x231\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x4a9f, lo: 0x82, hi: 0x87},\n\t{value: 0x4a9f, lo: 0x8a, hi: 0x8f},\n\t{value: 0x4a9f, lo: 0x92, hi: 0x97},\n\t{value: 0x4a9f, lo: 0x9a, hi: 0x9c},\n\t{value: 0x8100, lo: 0xa3, hi: 0xa3},\n\t// Block 0x70, offset 0x237\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x71, offset 0x239\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xa0, hi: 0xa0},\n\t// Block 0x72, offset 0x23b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb6, hi: 0xba},\n\t// Block 0x73, offset 0x23d\n\t{value: 0x002c, lo: 0x05},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x8f, hi: 0x8f},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8101, lo: 0xb9, hi: 0xba},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x74, offset 0x243\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa5},\n\t{value: 0x812d, lo: 0xa6, hi: 0xa6},\n\t// Block 0x75, offset 0x246\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x76, offset 0x249\n\t{value: 0x17fe, lo: 0x07},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x4238, lo: 0x9a, hi: 0x9a},\n\t{value: 0xa000, lo: 0x9b, hi: 0x9b},\n\t{value: 0x4242, lo: 0x9c, hi: 0x9c},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x424c, lo: 0xab, hi: 0xab},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x77, offset 0x251\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x8132, lo: 0x80, hi: 0x82},\n\t{value: 0x9900, lo: 0xa7, hi: 0xa7},\n\t{value: 0x2d7e, lo: 0xae, hi: 0xae},\n\t{value: 0x2d88, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb1, hi: 0xb2},\n\t{value: 0x8104, lo: 0xb3, hi: 0xb4},\n\t// Block 0x78, offset 0x258\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0x79, offset 0x25b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb5, hi: 0xb5},\n\t{value: 0x8102, lo: 0xb6, hi: 0xb6},\n\t// Block 0x7a, offset 0x25e\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x8102, lo: 0xa9, hi: 0xaa},\n\t// Block 0x7b, offset 0x260\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2d92, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d9c, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x8132, lo: 0xa6, hi: 0xac},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t// Block 0x7c, offset 0x268\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x86, hi: 0x86},\n\t// Block 0x7d, offset 0x26b\n\t{value: 0x6b5a, lo: 0x06},\n\t{value: 0x9900, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb9, hi: 0xb9},\n\t{value: 0x9900, lo: 0xba, hi: 0xba},\n\t{value: 0x2db0, lo: 0xbb, hi: 0xbb},\n\t{value: 0x2da6, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2dba, lo: 0xbe, hi: 0xbe},\n\t// Block 0x7e, offset 0x272\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x83, hi: 0x83},\n\t// Block 0x7f, offset 0x275\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x9900, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2dc4, lo: 0xba, hi: 0xba},\n\t{value: 0x2dce, lo: 0xbb, hi: 0xbb},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x80, offset 0x27b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0x80, hi: 0x80},\n\t// Block 0x81, offset 0x27d\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x82, offset 0x280\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xab, hi: 0xab},\n\t// Block 0x83, offset 0x282\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0xb0, hi: 0xb4},\n\t// Block 0x84, offset 0x284\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb6},\n\t// Block 0x85, offset 0x286\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0x9e, hi: 0x9e},\n\t// Block 0x86, offset 0x288\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x45cc, lo: 0x9e, hi: 0x9e},\n\t{value: 0x45d6, lo: 0x9f, hi: 0x9f},\n\t{value: 0x460a, lo: 0xa0, hi: 0xa0},\n\t{value: 0x4618, lo: 0xa1, hi: 0xa1},\n\t{value: 0x4626, lo: 0xa2, hi: 0xa2},\n\t{value: 0x4634, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4642, lo: 0xa4, hi: 0xa4},\n\t{value: 0x812b, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8101, lo: 0xa7, hi: 0xa9},\n\t{value: 0x8130, lo: 0xad, hi: 0xad},\n\t{value: 0x812b, lo: 0xae, hi: 0xb2},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbf},\n\t// Block 0x87, offset 0x295\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x812d, lo: 0x80, hi: 0x82},\n\t{value: 0x8132, lo: 0x85, hi: 0x89},\n\t{value: 0x812d, lo: 0x8a, hi: 0x8b},\n\t{value: 0x8132, lo: 0xaa, hi: 0xad},\n\t{value: 0x45e0, lo: 0xbb, hi: 0xbb},\n\t{value: 0x45ea, lo: 0xbc, hi: 0xbc},\n\t{value: 0x4650, lo: 0xbd, hi: 0xbd},\n\t{value: 0x466c, lo: 0xbe, hi: 0xbe},\n\t{value: 0x465e, lo: 0xbf, hi: 0xbf},\n\t// Block 0x88, offset 0x29f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x467a, lo: 0x80, hi: 0x80},\n\t// Block 0x89, offset 0x2a1\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x82, hi: 0x84},\n\t// Block 0x8a, offset 0x2a3\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0x80, hi: 0x86},\n\t{value: 0x8132, lo: 0x88, hi: 0x98},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa1},\n\t{value: 0x8132, lo: 0xa3, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa6, hi: 0xaa},\n\t// Block 0x8b, offset 0x2a9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x90, hi: 0x96},\n\t// Block 0x8c, offset 0x2ab\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x84, hi: 0x89},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0x8d, offset 0x2ae\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8100, lo: 0x93, hi: 0x93},\n}\n\n// lookup returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfkcTrie) lookup(s []byte) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfkcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfkcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfkcTrie) lookupUnsafe(s []byte) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfkcValues[c0]\n\t}\n\ti := nfkcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// lookupString returns the trie value for the first UTF-8 encoding in s and\n// the width in bytes of this encoding. The size will be 0 if s does not\n// hold enough bytes to complete the encoding. len(s) must be greater than 0.\nfunc (t *nfkcTrie) lookupString(s string) (v uint16, sz int) {\n\tc0 := s[0]\n\tswitch {\n\tcase c0 < 0x80: // is ASCII\n\t\treturn nfkcValues[c0], 1\n\tcase c0 < 0xC2:\n\t\treturn 0, 1 // Illegal UTF-8: not a starter, not ASCII.\n\tcase c0 < 0xE0: // 2-byte UTF-8\n\t\tif len(s) < 2 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c1), 2\n\tcase c0 < 0xF0: // 3-byte UTF-8\n\t\tif len(s) < 3 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c2), 3\n\tcase c0 < 0xF8: // 4-byte UTF-8\n\t\tif len(s) < 4 {\n\t\t\treturn 0, 0\n\t\t}\n\t\ti := nfkcIndex[c0]\n\t\tc1 := s[1]\n\t\tif c1 < 0x80 || 0xC0 <= c1 {\n\t\t\treturn 0, 1 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to := uint32(i)<<6 + uint32(c1)\n\t\ti = nfkcIndex[o]\n\t\tc2 := s[2]\n\t\tif c2 < 0x80 || 0xC0 <= c2 {\n\t\t\treturn 0, 2 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\to = uint32(i)<<6 + uint32(c2)\n\t\ti = nfkcIndex[o]\n\t\tc3 := s[3]\n\t\tif c3 < 0x80 || 0xC0 <= c3 {\n\t\t\treturn 0, 3 // Illegal UTF-8: not a continuation byte.\n\t\t}\n\t\treturn t.lookupValue(uint32(i), c3), 4\n\t}\n\t// Illegal rune\n\treturn 0, 1\n}\n\n// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.\n// s must start with a full and valid UTF-8 encoded rune.\nfunc (t *nfkcTrie) lookupStringUnsafe(s string) uint16 {\n\tc0 := s[0]\n\tif c0 < 0x80 { // is ASCII\n\t\treturn nfkcValues[c0]\n\t}\n\ti := nfkcIndex[c0]\n\tif c0 < 0xE0 { // 2-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[1])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[1])]\n\tif c0 < 0xF0 { // 3-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[2])\n\t}\n\ti = nfkcIndex[uint32(i)<<6+uint32(s[2])]\n\tif c0 < 0xF8 { // 4-byte UTF-8\n\t\treturn t.lookupValue(uint32(i), s[3])\n\t}\n\treturn 0\n}\n\n// nfkcTrie. Total size: 16994 bytes (16.60 KiB). Checksum: c3ed54ee046f3c46.\ntype nfkcTrie struct{}\n\nfunc newNfkcTrie(i int) *nfkcTrie {\n\treturn &nfkcTrie{}\n}\n\n// lookupValue determines the type of block n and looks up the value for b.\nfunc (t *nfkcTrie) lookupValue(n uint32, b byte) uint16 {\n\tswitch {\n\tcase n < 90:\n\t\treturn uint16(nfkcValues[n<<6+uint32(b)])\n\tdefault:\n\t\tn -= 90\n\t\treturn uint16(nfkcSparse.lookup(n, b))\n\t}\n}\n\n// nfkcValues: 92 blocks, 5888 entries, 11776 bytes\n// The third block is the zero block.\nvar nfkcValues = [5888]uint16{\n\t// Block 0x0, offset 0x0\n\t0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000,\n\t// Block 0x1, offset 0x40\n\t0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000,\n\t0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000,\n\t0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000,\n\t0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000,\n\t0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000,\n\t0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000,\n\t0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000,\n\t0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000,\n\t0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000,\n\t0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c,\n\t0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb,\n\t0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104,\n\t0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd,\n\t0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235,\n\t0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285,\n\t0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3,\n\t0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750,\n\t0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f,\n\t0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3,\n\t0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569,\n\t// Block 0x4, offset 0x100\n\t0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8,\n\t0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6,\n\t0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5,\n\t0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302,\n\t0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339,\n\t0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352,\n\t0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e,\n\t0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6,\n\t0x130: 0x308c, 0x132: 0x195d, 0x133: 0x19e7, 0x134: 0x30b4, 0x135: 0x33c0,\n\t0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc,\n\t0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8, 0x13f: 0x1bac,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x1c34, 0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118,\n\t0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f, 0x149: 0x1c5c,\n\t0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c,\n\t0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483,\n\t0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d,\n\t0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba,\n\t0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796,\n\t0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2,\n\t0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528,\n\t0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267,\n\t0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0x00a7,\n\t// Block 0x6, offset 0x180\n\t0x184: 0x2dee, 0x185: 0x2df4,\n\t0x186: 0x2dfa, 0x187: 0x1972, 0x188: 0x1975, 0x189: 0x1a08, 0x18a: 0x1987, 0x18b: 0x198a,\n\t0x18c: 0x1a3e, 0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140,\n\t0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8,\n\t0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50,\n\t0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5,\n\t0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf,\n\t0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd,\n\t0x1b0: 0x33c5, 0x1b1: 0x1942, 0x1b2: 0x1945, 0x1b3: 0x19cf, 0x1b4: 0x3028, 0x1b5: 0x3334,\n\t0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46,\n\t0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316,\n\t0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac,\n\t0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479,\n\t0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6,\n\t0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5,\n\t0x1de: 0x305a, 0x1df: 0x3366,\n\t0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b,\n\t0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769,\n\t0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f,\n\t// Block 0x8, offset 0x200\n\t0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132,\n\t0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932,\n\t0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932,\n\t0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d,\n\t0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d,\n\t0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d,\n\t0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d,\n\t0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d,\n\t0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101,\n\t0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d,\n\t0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132,\n\t// Block 0x9, offset 0x240\n\t0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936,\n\t0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132,\n\t0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132,\n\t0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132,\n\t0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135,\n\t0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132,\n\t0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132,\n\t0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132,\n\t0x274: 0x0170,\n\t0x27a: 0x42a5,\n\t0x27e: 0x0037,\n\t// Block 0xa, offset 0x280\n\t0x284: 0x425a, 0x285: 0x447b,\n\t0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625,\n\t0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000,\n\t0x295: 0xa000, 0x297: 0xa000,\n\t0x299: 0xa000,\n\t0x29f: 0xa000, 0x2a1: 0xa000,\n\t0x2a5: 0xa000, 0x2a9: 0xa000,\n\t0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9,\n\t0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000,\n\t0x2b7: 0xa000, 0x2b9: 0xa000,\n\t0x2bf: 0xa000,\n\t// Block 0xb, offset 0x2c0\n\t0x2c1: 0xa000, 0x2c5: 0xa000,\n\t0x2c9: 0xa000, 0x2ca: 0x4840, 0x2cb: 0x485e,\n\t0x2cc: 0x36c7, 0x2cd: 0x36df, 0x2ce: 0x4876, 0x2d0: 0x01be, 0x2d1: 0x01d0,\n\t0x2d2: 0x01ac, 0x2d3: 0x430c, 0x2d4: 0x4312, 0x2d5: 0x01fa, 0x2d6: 0x01e8,\n\t0x2f0: 0x01d6, 0x2f1: 0x01eb, 0x2f2: 0x01ee, 0x2f4: 0x0188, 0x2f5: 0x01c7,\n\t0x2f9: 0x01a6,\n\t// Block 0xc, offset 0x300\n\t0x300: 0x3721, 0x301: 0x372d, 0x303: 0x371b,\n\t0x306: 0xa000, 0x307: 0x3709,\n\t0x30c: 0x375d, 0x30d: 0x3745, 0x30e: 0x376f, 0x310: 0xa000,\n\t0x313: 0xa000, 0x315: 0xa000, 0x316: 0xa000, 0x317: 0xa000,\n\t0x318: 0xa000, 0x319: 0x3751, 0x31a: 0xa000,\n\t0x31e: 0xa000, 0x323: 0xa000,\n\t0x327: 0xa000,\n\t0x32b: 0xa000, 0x32d: 0xa000,\n\t0x330: 0xa000, 0x333: 0xa000, 0x335: 0xa000,\n\t0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x37d5, 0x33a: 0xa000,\n\t0x33e: 0xa000,\n\t// Block 0xd, offset 0x340\n\t0x341: 0x3733, 0x342: 0x37b7,\n\t0x350: 0x370f, 0x351: 0x3793,\n\t0x352: 0x3715, 0x353: 0x3799, 0x356: 0x3727, 0x357: 0x37ab,\n\t0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x3829, 0x35b: 0x382f, 0x35c: 0x3739, 0x35d: 0x37bd,\n\t0x35e: 0x373f, 0x35f: 0x37c3, 0x362: 0x374b, 0x363: 0x37cf,\n\t0x364: 0x3757, 0x365: 0x37db, 0x366: 0x3763, 0x367: 0x37e7, 0x368: 0xa000, 0x369: 0xa000,\n\t0x36a: 0x3835, 0x36b: 0x383b, 0x36c: 0x378d, 0x36d: 0x3811, 0x36e: 0x3769, 0x36f: 0x37ed,\n\t0x370: 0x3775, 0x371: 0x37f9, 0x372: 0x377b, 0x373: 0x37ff, 0x374: 0x3781, 0x375: 0x3805,\n\t0x378: 0x3787, 0x379: 0x380b,\n\t// Block 0xe, offset 0x380\n\t0x387: 0x1d61,\n\t0x391: 0x812d,\n\t0x392: 0x8132, 0x393: 0x8132, 0x394: 0x8132, 0x395: 0x8132, 0x396: 0x812d, 0x397: 0x8132,\n\t0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x812e, 0x39b: 0x812d, 0x39c: 0x8132, 0x39d: 0x8132,\n\t0x39e: 0x8132, 0x39f: 0x8132, 0x3a0: 0x8132, 0x3a1: 0x8132, 0x3a2: 0x812d, 0x3a3: 0x812d,\n\t0x3a4: 0x812d, 0x3a5: 0x812d, 0x3a6: 0x812d, 0x3a7: 0x812d, 0x3a8: 0x8132, 0x3a9: 0x8132,\n\t0x3aa: 0x812d, 0x3ab: 0x8132, 0x3ac: 0x8132, 0x3ad: 0x812e, 0x3ae: 0x8131, 0x3af: 0x8132,\n\t0x3b0: 0x8105, 0x3b1: 0x8106, 0x3b2: 0x8107, 0x3b3: 0x8108, 0x3b4: 0x8109, 0x3b5: 0x810a,\n\t0x3b6: 0x810b, 0x3b7: 0x810c, 0x3b8: 0x810d, 0x3b9: 0x810e, 0x3ba: 0x810e, 0x3bb: 0x810f,\n\t0x3bc: 0x8110, 0x3bd: 0x8111, 0x3bf: 0x8112,\n\t// Block 0xf, offset 0x3c0\n\t0x3c8: 0xa000, 0x3ca: 0xa000, 0x3cb: 0x8116,\n\t0x3cc: 0x8117, 0x3cd: 0x8118, 0x3ce: 0x8119, 0x3cf: 0x811a, 0x3d0: 0x811b, 0x3d1: 0x811c,\n\t0x3d2: 0x811d, 0x3d3: 0x9932, 0x3d4: 0x9932, 0x3d5: 0x992d, 0x3d6: 0x812d, 0x3d7: 0x8132,\n\t0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x812d, 0x3dd: 0x8132,\n\t0x3de: 0x8132, 0x3df: 0x812d,\n\t0x3f0: 0x811e, 0x3f5: 0x1d84,\n\t0x3f6: 0x2013, 0x3f7: 0x204f, 0x3f8: 0x204a,\n\t// Block 0x10, offset 0x400\n\t0x405: 0xa000,\n\t0x406: 0x2d26, 0x407: 0xa000, 0x408: 0x2d2e, 0x409: 0xa000, 0x40a: 0x2d36, 0x40b: 0xa000,\n\t0x40c: 0x2d3e, 0x40d: 0xa000, 0x40e: 0x2d46, 0x411: 0xa000,\n\t0x412: 0x2d4e,\n\t0x434: 0x8102, 0x435: 0x9900,\n\t0x43a: 0xa000, 0x43b: 0x2d56,\n\t0x43c: 0xa000, 0x43d: 0x2d5e, 0x43e: 0xa000, 0x43f: 0xa000,\n\t// Block 0x11, offset 0x440\n\t0x440: 0x0069, 0x441: 0x006b, 0x442: 0x006f, 0x443: 0x0083, 0x444: 0x00f5, 0x445: 0x00f8,\n\t0x446: 0x0413, 0x447: 0x0085, 0x448: 0x0089, 0x449: 0x008b, 0x44a: 0x0104, 0x44b: 0x0107,\n\t0x44c: 0x010a, 0x44d: 0x008f, 0x44f: 0x0097, 0x450: 0x009b, 0x451: 0x00e0,\n\t0x452: 0x009f, 0x453: 0x00fe, 0x454: 0x0417, 0x455: 0x041b, 0x456: 0x00a1, 0x457: 0x00a9,\n\t0x458: 0x00ab, 0x459: 0x0423, 0x45a: 0x012b, 0x45b: 0x00ad, 0x45c: 0x0427, 0x45d: 0x01be,\n\t0x45e: 0x01c1, 0x45f: 0x01c4, 0x460: 0x01fa, 0x461: 0x01fd, 0x462: 0x0093, 0x463: 0x00a5,\n\t0x464: 0x00ab, 0x465: 0x00ad, 0x466: 0x01be, 0x467: 0x01c1, 0x468: 0x01eb, 0x469: 0x01fa,\n\t0x46a: 0x01fd,\n\t0x478: 0x020c,\n\t// Block 0x12, offset 0x480\n\t0x49b: 0x00fb, 0x49c: 0x0087, 0x49d: 0x0101,\n\t0x49e: 0x00d4, 0x49f: 0x010a, 0x4a0: 0x008d, 0x4a1: 0x010d, 0x4a2: 0x0110, 0x4a3: 0x0116,\n\t0x4a4: 0x011c, 0x4a5: 0x011f, 0x4a6: 0x0122, 0x4a7: 0x042b, 0x4a8: 0x016a, 0x4a9: 0x0128,\n\t0x4aa: 0x042f, 0x4ab: 0x016d, 0x4ac: 0x0131, 0x4ad: 0x012e, 0x4ae: 0x0134, 0x4af: 0x0137,\n\t0x4b0: 0x013a, 0x4b1: 0x013d, 0x4b2: 0x0140, 0x4b3: 0x014c, 0x4b4: 0x014f, 0x4b5: 0x00ec,\n\t0x4b6: 0x0152, 0x4b7: 0x0155, 0x4b8: 0x041f, 0x4b9: 0x0158, 0x4ba: 0x015b, 0x4bb: 0x00b5,\n\t0x4bc: 0x015e, 0x4bd: 0x0161, 0x4be: 0x0164, 0x4bf: 0x01d0,\n\t// Block 0x13, offset 0x4c0\n\t0x4c0: 0x2f97, 0x4c1: 0x32a3, 0x4c2: 0x2fa1, 0x4c3: 0x32ad, 0x4c4: 0x2fa6, 0x4c5: 0x32b2,\n\t0x4c6: 0x2fab, 0x4c7: 0x32b7, 0x4c8: 0x38cc, 0x4c9: 0x3a5b, 0x4ca: 0x2fc4, 0x4cb: 0x32d0,\n\t0x4cc: 0x2fce, 0x4cd: 0x32da, 0x4ce: 0x2fdd, 0x4cf: 0x32e9, 0x4d0: 0x2fd3, 0x4d1: 0x32df,\n\t0x4d2: 0x2fd8, 0x4d3: 0x32e4, 0x4d4: 0x38ef, 0x4d5: 0x3a7e, 0x4d6: 0x38f6, 0x4d7: 0x3a85,\n\t0x4d8: 0x3019, 0x4d9: 0x3325, 0x4da: 0x301e, 0x4db: 0x332a, 0x4dc: 0x3904, 0x4dd: 0x3a93,\n\t0x4de: 0x3023, 0x4df: 0x332f, 0x4e0: 0x3032, 0x4e1: 0x333e, 0x4e2: 0x3050, 0x4e3: 0x335c,\n\t0x4e4: 0x305f, 0x4e5: 0x336b, 0x4e6: 0x3055, 0x4e7: 0x3361, 0x4e8: 0x3064, 0x4e9: 0x3370,\n\t0x4ea: 0x3069, 0x4eb: 0x3375, 0x4ec: 0x30af, 0x4ed: 0x33bb, 0x4ee: 0x390b, 0x4ef: 0x3a9a,\n\t0x4f0: 0x30b9, 0x4f1: 0x33ca, 0x4f2: 0x30c3, 0x4f3: 0x33d4, 0x4f4: 0x30cd, 0x4f5: 0x33de,\n\t0x4f6: 0x46c4, 0x4f7: 0x4755, 0x4f8: 0x3912, 0x4f9: 0x3aa1, 0x4fa: 0x30e6, 0x4fb: 0x33f7,\n\t0x4fc: 0x30e1, 0x4fd: 0x33f2, 0x4fe: 0x30eb, 0x4ff: 0x33fc,\n\t// Block 0x14, offset 0x500\n\t0x500: 0x30f0, 0x501: 0x3401, 0x502: 0x30f5, 0x503: 0x3406, 0x504: 0x3109, 0x505: 0x341a,\n\t0x506: 0x3113, 0x507: 0x3424, 0x508: 0x3122, 0x509: 0x3433, 0x50a: 0x311d, 0x50b: 0x342e,\n\t0x50c: 0x3935, 0x50d: 0x3ac4, 0x50e: 0x3943, 0x50f: 0x3ad2, 0x510: 0x394a, 0x511: 0x3ad9,\n\t0x512: 0x3951, 0x513: 0x3ae0, 0x514: 0x314f, 0x515: 0x3460, 0x516: 0x3154, 0x517: 0x3465,\n\t0x518: 0x315e, 0x519: 0x346f, 0x51a: 0x46f1, 0x51b: 0x4782, 0x51c: 0x3997, 0x51d: 0x3b26,\n\t0x51e: 0x3177, 0x51f: 0x3488, 0x520: 0x3181, 0x521: 0x3492, 0x522: 0x4700, 0x523: 0x4791,\n\t0x524: 0x399e, 0x525: 0x3b2d, 0x526: 0x39a5, 0x527: 0x3b34, 0x528: 0x39ac, 0x529: 0x3b3b,\n\t0x52a: 0x3190, 0x52b: 0x34a1, 0x52c: 0x319a, 0x52d: 0x34b0, 0x52e: 0x31ae, 0x52f: 0x34c4,\n\t0x530: 0x31a9, 0x531: 0x34bf, 0x532: 0x31ea, 0x533: 0x3500, 0x534: 0x31f9, 0x535: 0x350f,\n\t0x536: 0x31f4, 0x537: 0x350a, 0x538: 0x39b3, 0x539: 0x3b42, 0x53a: 0x39ba, 0x53b: 0x3b49,\n\t0x53c: 0x31fe, 0x53d: 0x3514, 0x53e: 0x3203, 0x53f: 0x3519,\n\t// Block 0x15, offset 0x540\n\t0x540: 0x3208, 0x541: 0x351e, 0x542: 0x320d, 0x543: 0x3523, 0x544: 0x321c, 0x545: 0x3532,\n\t0x546: 0x3217, 0x547: 0x352d, 0x548: 0x3221, 0x549: 0x353c, 0x54a: 0x3226, 0x54b: 0x3541,\n\t0x54c: 0x322b, 0x54d: 0x3546, 0x54e: 0x3249, 0x54f: 0x3564, 0x550: 0x3262, 0x551: 0x3582,\n\t0x552: 0x3271, 0x553: 0x3591, 0x554: 0x3276, 0x555: 0x3596, 0x556: 0x337a, 0x557: 0x34a6,\n\t0x558: 0x3537, 0x559: 0x3573, 0x55a: 0x1be0, 0x55b: 0x42d7,\n\t0x560: 0x46a1, 0x561: 0x4732, 0x562: 0x2f83, 0x563: 0x328f,\n\t0x564: 0x3878, 0x565: 0x3a07, 0x566: 0x3871, 0x567: 0x3a00, 0x568: 0x3886, 0x569: 0x3a15,\n\t0x56a: 0x387f, 0x56b: 0x3a0e, 0x56c: 0x38be, 0x56d: 0x3a4d, 0x56e: 0x3894, 0x56f: 0x3a23,\n\t0x570: 0x388d, 0x571: 0x3a1c, 0x572: 0x38a2, 0x573: 0x3a31, 0x574: 0x389b, 0x575: 0x3a2a,\n\t0x576: 0x38c5, 0x577: 0x3a54, 0x578: 0x46b5, 0x579: 0x4746, 0x57a: 0x3000, 0x57b: 0x330c,\n\t0x57c: 0x2fec, 0x57d: 0x32f8, 0x57e: 0x38da, 0x57f: 0x3a69,\n\t// Block 0x16, offset 0x580\n\t0x580: 0x38d3, 0x581: 0x3a62, 0x582: 0x38e8, 0x583: 0x3a77, 0x584: 0x38e1, 0x585: 0x3a70,\n\t0x586: 0x38fd, 0x587: 0x3a8c, 0x588: 0x3091, 0x589: 0x339d, 0x58a: 0x30a5, 0x58b: 0x33b1,\n\t0x58c: 0x46e7, 0x58d: 0x4778, 0x58e: 0x3136, 0x58f: 0x3447, 0x590: 0x3920, 0x591: 0x3aaf,\n\t0x592: 0x3919, 0x593: 0x3aa8, 0x594: 0x392e, 0x595: 0x3abd, 0x596: 0x3927, 0x597: 0x3ab6,\n\t0x598: 0x3989, 0x599: 0x3b18, 0x59a: 0x396d, 0x59b: 0x3afc, 0x59c: 0x3966, 0x59d: 0x3af5,\n\t0x59e: 0x397b, 0x59f: 0x3b0a, 0x5a0: 0x3974, 0x5a1: 0x3b03, 0x5a2: 0x3982, 0x5a3: 0x3b11,\n\t0x5a4: 0x31e5, 0x5a5: 0x34fb, 0x5a6: 0x31c7, 0x5a7: 0x34dd, 0x5a8: 0x39e4, 0x5a9: 0x3b73,\n\t0x5aa: 0x39dd, 0x5ab: 0x3b6c, 0x5ac: 0x39f2, 0x5ad: 0x3b81, 0x5ae: 0x39eb, 0x5af: 0x3b7a,\n\t0x5b0: 0x39f9, 0x5b1: 0x3b88, 0x5b2: 0x3230, 0x5b3: 0x354b, 0x5b4: 0x3258, 0x5b5: 0x3578,\n\t0x5b6: 0x3253, 0x5b7: 0x356e, 0x5b8: 0x323f, 0x5b9: 0x355a,\n\t// Block 0x17, offset 0x5c0\n\t0x5c0: 0x4804, 0x5c1: 0x480a, 0x5c2: 0x491e, 0x5c3: 0x4936, 0x5c4: 0x4926, 0x5c5: 0x493e,\n\t0x5c6: 0x492e, 0x5c7: 0x4946, 0x5c8: 0x47aa, 0x5c9: 0x47b0, 0x5ca: 0x488e, 0x5cb: 0x48a6,\n\t0x5cc: 0x4896, 0x5cd: 0x48ae, 0x5ce: 0x489e, 0x5cf: 0x48b6, 0x5d0: 0x4816, 0x5d1: 0x481c,\n\t0x5d2: 0x3db8, 0x5d3: 0x3dc8, 0x5d4: 0x3dc0, 0x5d5: 0x3dd0,\n\t0x5d8: 0x47b6, 0x5d9: 0x47bc, 0x5da: 0x3ce8, 0x5db: 0x3cf8, 0x5dc: 0x3cf0, 0x5dd: 0x3d00,\n\t0x5e0: 0x482e, 0x5e1: 0x4834, 0x5e2: 0x494e, 0x5e3: 0x4966,\n\t0x5e4: 0x4956, 0x5e5: 0x496e, 0x5e6: 0x495e, 0x5e7: 0x4976, 0x5e8: 0x47c2, 0x5e9: 0x47c8,\n\t0x5ea: 0x48be, 0x5eb: 0x48d6, 0x5ec: 0x48c6, 0x5ed: 0x48de, 0x5ee: 0x48ce, 0x5ef: 0x48e6,\n\t0x5f0: 0x4846, 0x5f1: 0x484c, 0x5f2: 0x3e18, 0x5f3: 0x3e30, 0x5f4: 0x3e20, 0x5f5: 0x3e38,\n\t0x5f6: 0x3e28, 0x5f7: 0x3e40, 0x5f8: 0x47ce, 0x5f9: 0x47d4, 0x5fa: 0x3d18, 0x5fb: 0x3d30,\n\t0x5fc: 0x3d20, 0x5fd: 0x3d38, 0x5fe: 0x3d28, 0x5ff: 0x3d40,\n\t// Block 0x18, offset 0x600\n\t0x600: 0x4852, 0x601: 0x4858, 0x602: 0x3e48, 0x603: 0x3e58, 0x604: 0x3e50, 0x605: 0x3e60,\n\t0x608: 0x47da, 0x609: 0x47e0, 0x60a: 0x3d48, 0x60b: 0x3d58,\n\t0x60c: 0x3d50, 0x60d: 0x3d60, 0x610: 0x4864, 0x611: 0x486a,\n\t0x612: 0x3e80, 0x613: 0x3e98, 0x614: 0x3e88, 0x615: 0x3ea0, 0x616: 0x3e90, 0x617: 0x3ea8,\n\t0x619: 0x47e6, 0x61b: 0x3d68, 0x61d: 0x3d70,\n\t0x61f: 0x3d78, 0x620: 0x487c, 0x621: 0x4882, 0x622: 0x497e, 0x623: 0x4996,\n\t0x624: 0x4986, 0x625: 0x499e, 0x626: 0x498e, 0x627: 0x49a6, 0x628: 0x47ec, 0x629: 0x47f2,\n\t0x62a: 0x48ee, 0x62b: 0x4906, 0x62c: 0x48f6, 0x62d: 0x490e, 0x62e: 0x48fe, 0x62f: 0x4916,\n\t0x630: 0x47f8, 0x631: 0x431e, 0x632: 0x3691, 0x633: 0x4324, 0x634: 0x4822, 0x635: 0x432a,\n\t0x636: 0x36a3, 0x637: 0x4330, 0x638: 0x36c1, 0x639: 0x4336, 0x63a: 0x36d9, 0x63b: 0x433c,\n\t0x63c: 0x4870, 0x63d: 0x4342,\n\t// Block 0x19, offset 0x640\n\t0x640: 0x3da0, 0x641: 0x3da8, 0x642: 0x4184, 0x643: 0x41a2, 0x644: 0x418e, 0x645: 0x41ac,\n\t0x646: 0x4198, 0x647: 0x41b6, 0x648: 0x3cd8, 0x649: 0x3ce0, 0x64a: 0x40d0, 0x64b: 0x40ee,\n\t0x64c: 0x40da, 0x64d: 0x40f8, 0x64e: 0x40e4, 0x64f: 0x4102, 0x650: 0x3de8, 0x651: 0x3df0,\n\t0x652: 0x41c0, 0x653: 0x41de, 0x654: 0x41ca, 0x655: 0x41e8, 0x656: 0x41d4, 0x657: 0x41f2,\n\t0x658: 0x3d08, 0x659: 0x3d10, 0x65a: 0x410c, 0x65b: 0x412a, 0x65c: 0x4116, 0x65d: 0x4134,\n\t0x65e: 0x4120, 0x65f: 0x413e, 0x660: 0x3ec0, 0x661: 0x3ec8, 0x662: 0x41fc, 0x663: 0x421a,\n\t0x664: 0x4206, 0x665: 0x4224, 0x666: 0x4210, 0x667: 0x422e, 0x668: 0x3d80, 0x669: 0x3d88,\n\t0x66a: 0x4148, 0x66b: 0x4166, 0x66c: 0x4152, 0x66d: 0x4170, 0x66e: 0x415c, 0x66f: 0x417a,\n\t0x670: 0x3685, 0x671: 0x367f, 0x672: 0x3d90, 0x673: 0x368b, 0x674: 0x3d98,\n\t0x676: 0x4810, 0x677: 0x3db0, 0x678: 0x35f5, 0x679: 0x35ef, 0x67a: 0x35e3, 0x67b: 0x42ee,\n\t0x67c: 0x35fb, 0x67d: 0x4287, 0x67e: 0x01d3, 0x67f: 0x4287,\n\t// Block 0x1a, offset 0x680\n\t0x680: 0x42a0, 0x681: 0x4482, 0x682: 0x3dd8, 0x683: 0x369d, 0x684: 0x3de0,\n\t0x686: 0x483a, 0x687: 0x3df8, 0x688: 0x3601, 0x689: 0x42f4, 0x68a: 0x360d, 0x68b: 0x42fa,\n\t0x68c: 0x3619, 0x68d: 0x4489, 0x68e: 0x4490, 0x68f: 0x4497, 0x690: 0x36b5, 0x691: 0x36af,\n\t0x692: 0x3e00, 0x693: 0x44e4, 0x696: 0x36bb, 0x697: 0x3e10,\n\t0x698: 0x3631, 0x699: 0x362b, 0x69a: 0x361f, 0x69b: 0x4300, 0x69d: 0x449e,\n\t0x69e: 0x44a5, 0x69f: 0x44ac, 0x6a0: 0x36eb, 0x6a1: 0x36e5, 0x6a2: 0x3e68, 0x6a3: 0x44ec,\n\t0x6a4: 0x36cd, 0x6a5: 0x36d3, 0x6a6: 0x36f1, 0x6a7: 0x3e78, 0x6a8: 0x3661, 0x6a9: 0x365b,\n\t0x6aa: 0x364f, 0x6ab: 0x430c, 0x6ac: 0x3649, 0x6ad: 0x4474, 0x6ae: 0x447b, 0x6af: 0x0081,\n\t0x6b2: 0x3eb0, 0x6b3: 0x36f7, 0x6b4: 0x3eb8,\n\t0x6b6: 0x4888, 0x6b7: 0x3ed0, 0x6b8: 0x363d, 0x6b9: 0x4306, 0x6ba: 0x366d, 0x6bb: 0x4318,\n\t0x6bc: 0x3679, 0x6bd: 0x425a, 0x6be: 0x428c,\n\t// Block 0x1b, offset 0x6c0\n\t0x6c0: 0x1bd8, 0x6c1: 0x1bdc, 0x6c2: 0x0047, 0x6c3: 0x1c54, 0x6c5: 0x1be8,\n\t0x6c6: 0x1bec, 0x6c7: 0x00e9, 0x6c9: 0x1c58, 0x6ca: 0x008f, 0x6cb: 0x0051,\n\t0x6cc: 0x0051, 0x6cd: 0x0051, 0x6ce: 0x0091, 0x6cf: 0x00da, 0x6d0: 0x0053, 0x6d1: 0x0053,\n\t0x6d2: 0x0059, 0x6d3: 0x0099, 0x6d5: 0x005d, 0x6d6: 0x198d,\n\t0x6d9: 0x0061, 0x6da: 0x0063, 0x6db: 0x0065, 0x6dc: 0x0065, 0x6dd: 0x0065,\n\t0x6e0: 0x199f, 0x6e1: 0x1bc8, 0x6e2: 0x19a8,\n\t0x6e4: 0x0075, 0x6e6: 0x01b8, 0x6e8: 0x0075,\n\t0x6ea: 0x0057, 0x6eb: 0x42d2, 0x6ec: 0x0045, 0x6ed: 0x0047, 0x6ef: 0x008b,\n\t0x6f0: 0x004b, 0x6f1: 0x004d, 0x6f3: 0x005b, 0x6f4: 0x009f, 0x6f5: 0x0215,\n\t0x6f6: 0x0218, 0x6f7: 0x021b, 0x6f8: 0x021e, 0x6f9: 0x0093, 0x6fb: 0x1b98,\n\t0x6fc: 0x01e8, 0x6fd: 0x01c1, 0x6fe: 0x0179, 0x6ff: 0x01a0,\n\t// Block 0x1c, offset 0x700\n\t0x700: 0x0463, 0x705: 0x0049,\n\t0x706: 0x0089, 0x707: 0x008b, 0x708: 0x0093, 0x709: 0x0095,\n\t0x710: 0x222e, 0x711: 0x223a,\n\t0x712: 0x22ee, 0x713: 0x2216, 0x714: 0x229a, 0x715: 0x2222, 0x716: 0x22a0, 0x717: 0x22b8,\n\t0x718: 0x22c4, 0x719: 0x2228, 0x71a: 0x22ca, 0x71b: 0x2234, 0x71c: 0x22be, 0x71d: 0x22d0,\n\t0x71e: 0x22d6, 0x71f: 0x1cbc, 0x720: 0x0053, 0x721: 0x195a, 0x722: 0x1ba4, 0x723: 0x1963,\n\t0x724: 0x006d, 0x725: 0x19ab, 0x726: 0x1bd0, 0x727: 0x1d48, 0x728: 0x1966, 0x729: 0x0071,\n\t0x72a: 0x19b7, 0x72b: 0x1bd4, 0x72c: 0x0059, 0x72d: 0x0047, 0x72e: 0x0049, 0x72f: 0x005b,\n\t0x730: 0x0093, 0x731: 0x19e4, 0x732: 0x1c18, 0x733: 0x19ed, 0x734: 0x00ad, 0x735: 0x1a62,\n\t0x736: 0x1c4c, 0x737: 0x1d5c, 0x738: 0x19f0, 0x739: 0x00b1, 0x73a: 0x1a65, 0x73b: 0x1c50,\n\t0x73c: 0x0099, 0x73d: 0x0087, 0x73e: 0x0089, 0x73f: 0x009b,\n\t// Block 0x1d, offset 0x740\n\t0x741: 0x3c06, 0x743: 0xa000, 0x744: 0x3c0d, 0x745: 0xa000,\n\t0x747: 0x3c14, 0x748: 0xa000, 0x749: 0x3c1b,\n\t0x74d: 0xa000,\n\t0x760: 0x2f65, 0x761: 0xa000, 0x762: 0x3c29,\n\t0x764: 0xa000, 0x765: 0xa000,\n\t0x76d: 0x3c22, 0x76e: 0x2f60, 0x76f: 0x2f6a,\n\t0x770: 0x3c30, 0x771: 0x3c37, 0x772: 0xa000, 0x773: 0xa000, 0x774: 0x3c3e, 0x775: 0x3c45,\n\t0x776: 0xa000, 0x777: 0xa000, 0x778: 0x3c4c, 0x779: 0x3c53, 0x77a: 0xa000, 0x77b: 0xa000,\n\t0x77c: 0xa000, 0x77d: 0xa000,\n\t// Block 0x1e, offset 0x780\n\t0x780: 0x3c5a, 0x781: 0x3c61, 0x782: 0xa000, 0x783: 0xa000, 0x784: 0x3c76, 0x785: 0x3c7d,\n\t0x786: 0xa000, 0x787: 0xa000, 0x788: 0x3c84, 0x789: 0x3c8b,\n\t0x791: 0xa000,\n\t0x792: 0xa000,\n\t0x7a2: 0xa000,\n\t0x7a8: 0xa000, 0x7a9: 0xa000,\n\t0x7ab: 0xa000, 0x7ac: 0x3ca0, 0x7ad: 0x3ca7, 0x7ae: 0x3cae, 0x7af: 0x3cb5,\n\t0x7b2: 0xa000, 0x7b3: 0xa000, 0x7b4: 0xa000, 0x7b5: 0xa000,\n\t// Block 0x1f, offset 0x7c0\n\t0x7e0: 0x0023, 0x7e1: 0x0025, 0x7e2: 0x0027, 0x7e3: 0x0029,\n\t0x7e4: 0x002b, 0x7e5: 0x002d, 0x7e6: 0x002f, 0x7e7: 0x0031, 0x7e8: 0x0033, 0x7e9: 0x1882,\n\t0x7ea: 0x1885, 0x7eb: 0x1888, 0x7ec: 0x188b, 0x7ed: 0x188e, 0x7ee: 0x1891, 0x7ef: 0x1894,\n\t0x7f0: 0x1897, 0x7f1: 0x189a, 0x7f2: 0x189d, 0x7f3: 0x18a6, 0x7f4: 0x1a68, 0x7f5: 0x1a6c,\n\t0x7f6: 0x1a70, 0x7f7: 0x1a74, 0x7f8: 0x1a78, 0x7f9: 0x1a7c, 0x7fa: 0x1a80, 0x7fb: 0x1a84,\n\t0x7fc: 0x1a88, 0x7fd: 0x1c80, 0x7fe: 0x1c85, 0x7ff: 0x1c8a,\n\t// Block 0x20, offset 0x800\n\t0x800: 0x1c8f, 0x801: 0x1c94, 0x802: 0x1c99, 0x803: 0x1c9e, 0x804: 0x1ca3, 0x805: 0x1ca8,\n\t0x806: 0x1cad, 0x807: 0x1cb2, 0x808: 0x187f, 0x809: 0x18a3, 0x80a: 0x18c7, 0x80b: 0x18eb,\n\t0x80c: 0x190f, 0x80d: 0x1918, 0x80e: 0x191e, 0x80f: 0x1924, 0x810: 0x192a, 0x811: 0x1b60,\n\t0x812: 0x1b64, 0x813: 0x1b68, 0x814: 0x1b6c, 0x815: 0x1b70, 0x816: 0x1b74, 0x817: 0x1b78,\n\t0x818: 0x1b7c, 0x819: 0x1b80, 0x81a: 0x1b84, 0x81b: 0x1b88, 0x81c: 0x1af4, 0x81d: 0x1af8,\n\t0x81e: 0x1afc, 0x81f: 0x1b00, 0x820: 0x1b04, 0x821: 0x1b08, 0x822: 0x1b0c, 0x823: 0x1b10,\n\t0x824: 0x1b14, 0x825: 0x1b18, 0x826: 0x1b1c, 0x827: 0x1b20, 0x828: 0x1b24, 0x829: 0x1b28,\n\t0x82a: 0x1b2c, 0x82b: 0x1b30, 0x82c: 0x1b34, 0x82d: 0x1b38, 0x82e: 0x1b3c, 0x82f: 0x1b40,\n\t0x830: 0x1b44, 0x831: 0x1b48, 0x832: 0x1b4c, 0x833: 0x1b50, 0x834: 0x1b54, 0x835: 0x1b58,\n\t0x836: 0x0043, 0x837: 0x0045, 0x838: 0x0047, 0x839: 0x0049, 0x83a: 0x004b, 0x83b: 0x004d,\n\t0x83c: 0x004f, 0x83d: 0x0051, 0x83e: 0x0053, 0x83f: 0x0055,\n\t// Block 0x21, offset 0x840\n\t0x840: 0x06bf, 0x841: 0x06e3, 0x842: 0x06ef, 0x843: 0x06ff, 0x844: 0x0707, 0x845: 0x0713,\n\t0x846: 0x071b, 0x847: 0x0723, 0x848: 0x072f, 0x849: 0x0783, 0x84a: 0x079b, 0x84b: 0x07ab,\n\t0x84c: 0x07bb, 0x84d: 0x07cb, 0x84e: 0x07db, 0x84f: 0x07fb, 0x850: 0x07ff, 0x851: 0x0803,\n\t0x852: 0x0837, 0x853: 0x085f, 0x854: 0x086f, 0x855: 0x0877, 0x856: 0x087b, 0x857: 0x0887,\n\t0x858: 0x08a3, 0x859: 0x08a7, 0x85a: 0x08bf, 0x85b: 0x08c3, 0x85c: 0x08cb, 0x85d: 0x08db,\n\t0x85e: 0x0977, 0x85f: 0x098b, 0x860: 0x09cb, 0x861: 0x09df, 0x862: 0x09e7, 0x863: 0x09eb,\n\t0x864: 0x09fb, 0x865: 0x0a17, 0x866: 0x0a43, 0x867: 0x0a4f, 0x868: 0x0a6f, 0x869: 0x0a7b,\n\t0x86a: 0x0a7f, 0x86b: 0x0a83, 0x86c: 0x0a9b, 0x86d: 0x0a9f, 0x86e: 0x0acb, 0x86f: 0x0ad7,\n\t0x870: 0x0adf, 0x871: 0x0ae7, 0x872: 0x0af7, 0x873: 0x0aff, 0x874: 0x0b07, 0x875: 0x0b33,\n\t0x876: 0x0b37, 0x877: 0x0b3f, 0x878: 0x0b43, 0x879: 0x0b4b, 0x87a: 0x0b53, 0x87b: 0x0b63,\n\t0x87c: 0x0b7f, 0x87d: 0x0bf7, 0x87e: 0x0c0b, 0x87f: 0x0c0f,\n\t// Block 0x22, offset 0x880\n\t0x880: 0x0c8f, 0x881: 0x0c93, 0x882: 0x0ca7, 0x883: 0x0cab, 0x884: 0x0cb3, 0x885: 0x0cbb,\n\t0x886: 0x0cc3, 0x887: 0x0ccf, 0x888: 0x0cf7, 0x889: 0x0d07, 0x88a: 0x0d1b, 0x88b: 0x0d8b,\n\t0x88c: 0x0d97, 0x88d: 0x0da7, 0x88e: 0x0db3, 0x88f: 0x0dbf, 0x890: 0x0dc7, 0x891: 0x0dcb,\n\t0x892: 0x0dcf, 0x893: 0x0dd3, 0x894: 0x0dd7, 0x895: 0x0e8f, 0x896: 0x0ed7, 0x897: 0x0ee3,\n\t0x898: 0x0ee7, 0x899: 0x0eeb, 0x89a: 0x0eef, 0x89b: 0x0ef7, 0x89c: 0x0efb, 0x89d: 0x0f0f,\n\t0x89e: 0x0f2b, 0x89f: 0x0f33, 0x8a0: 0x0f73, 0x8a1: 0x0f77, 0x8a2: 0x0f7f, 0x8a3: 0x0f83,\n\t0x8a4: 0x0f8b, 0x8a5: 0x0f8f, 0x8a6: 0x0fb3, 0x8a7: 0x0fb7, 0x8a8: 0x0fd3, 0x8a9: 0x0fd7,\n\t0x8aa: 0x0fdb, 0x8ab: 0x0fdf, 0x8ac: 0x0ff3, 0x8ad: 0x1017, 0x8ae: 0x101b, 0x8af: 0x101f,\n\t0x8b0: 0x1043, 0x8b1: 0x1083, 0x8b2: 0x1087, 0x8b3: 0x10a7, 0x8b4: 0x10b7, 0x8b5: 0x10bf,\n\t0x8b6: 0x10df, 0x8b7: 0x1103, 0x8b8: 0x1147, 0x8b9: 0x114f, 0x8ba: 0x1163, 0x8bb: 0x116f,\n\t0x8bc: 0x1177, 0x8bd: 0x117f, 0x8be: 0x1183, 0x8bf: 0x1187,\n\t// Block 0x23, offset 0x8c0\n\t0x8c0: 0x119f, 0x8c1: 0x11a3, 0x8c2: 0x11bf, 0x8c3: 0x11c7, 0x8c4: 0x11cf, 0x8c5: 0x11d3,\n\t0x8c6: 0x11df, 0x8c7: 0x11e7, 0x8c8: 0x11eb, 0x8c9: 0x11ef, 0x8ca: 0x11f7, 0x8cb: 0x11fb,\n\t0x8cc: 0x129b, 0x8cd: 0x12af, 0x8ce: 0x12e3, 0x8cf: 0x12e7, 0x8d0: 0x12ef, 0x8d1: 0x131b,\n\t0x8d2: 0x1323, 0x8d3: 0x132b, 0x8d4: 0x1333, 0x8d5: 0x136f, 0x8d6: 0x1373, 0x8d7: 0x137b,\n\t0x8d8: 0x137f, 0x8d9: 0x1383, 0x8da: 0x13af, 0x8db: 0x13b3, 0x8dc: 0x13bb, 0x8dd: 0x13cf,\n\t0x8de: 0x13d3, 0x8df: 0x13ef, 0x8e0: 0x13f7, 0x8e1: 0x13fb, 0x8e2: 0x141f, 0x8e3: 0x143f,\n\t0x8e4: 0x1453, 0x8e5: 0x1457, 0x8e6: 0x145f, 0x8e7: 0x148b, 0x8e8: 0x148f, 0x8e9: 0x149f,\n\t0x8ea: 0x14c3, 0x8eb: 0x14cf, 0x8ec: 0x14df, 0x8ed: 0x14f7, 0x8ee: 0x14ff, 0x8ef: 0x1503,\n\t0x8f0: 0x1507, 0x8f1: 0x150b, 0x8f2: 0x1517, 0x8f3: 0x151b, 0x8f4: 0x1523, 0x8f5: 0x153f,\n\t0x8f6: 0x1543, 0x8f7: 0x1547, 0x8f8: 0x155f, 0x8f9: 0x1563, 0x8fa: 0x156b, 0x8fb: 0x157f,\n\t0x8fc: 0x1583, 0x8fd: 0x1587, 0x8fe: 0x158f, 0x8ff: 0x1593,\n\t// Block 0x24, offset 0x900\n\t0x906: 0xa000, 0x90b: 0xa000,\n\t0x90c: 0x3f08, 0x90d: 0xa000, 0x90e: 0x3f10, 0x90f: 0xa000, 0x910: 0x3f18, 0x911: 0xa000,\n\t0x912: 0x3f20, 0x913: 0xa000, 0x914: 0x3f28, 0x915: 0xa000, 0x916: 0x3f30, 0x917: 0xa000,\n\t0x918: 0x3f38, 0x919: 0xa000, 0x91a: 0x3f40, 0x91b: 0xa000, 0x91c: 0x3f48, 0x91d: 0xa000,\n\t0x91e: 0x3f50, 0x91f: 0xa000, 0x920: 0x3f58, 0x921: 0xa000, 0x922: 0x3f60,\n\t0x924: 0xa000, 0x925: 0x3f68, 0x926: 0xa000, 0x927: 0x3f70, 0x928: 0xa000, 0x929: 0x3f78,\n\t0x92f: 0xa000,\n\t0x930: 0x3f80, 0x931: 0x3f88, 0x932: 0xa000, 0x933: 0x3f90, 0x934: 0x3f98, 0x935: 0xa000,\n\t0x936: 0x3fa0, 0x937: 0x3fa8, 0x938: 0xa000, 0x939: 0x3fb0, 0x93a: 0x3fb8, 0x93b: 0xa000,\n\t0x93c: 0x3fc0, 0x93d: 0x3fc8,\n\t// Block 0x25, offset 0x940\n\t0x954: 0x3f00,\n\t0x959: 0x9903, 0x95a: 0x9903, 0x95b: 0x42dc, 0x95c: 0x42e2, 0x95d: 0xa000,\n\t0x95e: 0x3fd0, 0x95f: 0x26b4,\n\t0x966: 0xa000,\n\t0x96b: 0xa000, 0x96c: 0x3fe0, 0x96d: 0xa000, 0x96e: 0x3fe8, 0x96f: 0xa000,\n\t0x970: 0x3ff0, 0x971: 0xa000, 0x972: 0x3ff8, 0x973: 0xa000, 0x974: 0x4000, 0x975: 0xa000,\n\t0x976: 0x4008, 0x977: 0xa000, 0x978: 0x4010, 0x979: 0xa000, 0x97a: 0x4018, 0x97b: 0xa000,\n\t0x97c: 0x4020, 0x97d: 0xa000, 0x97e: 0x4028, 0x97f: 0xa000,\n\t// Block 0x26, offset 0x980\n\t0x980: 0x4030, 0x981: 0xa000, 0x982: 0x4038, 0x984: 0xa000, 0x985: 0x4040,\n\t0x986: 0xa000, 0x987: 0x4048, 0x988: 0xa000, 0x989: 0x4050,\n\t0x98f: 0xa000, 0x990: 0x4058, 0x991: 0x4060,\n\t0x992: 0xa000, 0x993: 0x4068, 0x994: 0x4070, 0x995: 0xa000, 0x996: 0x4078, 0x997: 0x4080,\n\t0x998: 0xa000, 0x999: 0x4088, 0x99a: 0x4090, 0x99b: 0xa000, 0x99c: 0x4098, 0x99d: 0x40a0,\n\t0x9af: 0xa000,\n\t0x9b0: 0xa000, 0x9b1: 0xa000, 0x9b2: 0xa000, 0x9b4: 0x3fd8,\n\t0x9b7: 0x40a8, 0x9b8: 0x40b0, 0x9b9: 0x40b8, 0x9ba: 0x40c0,\n\t0x9bd: 0xa000, 0x9be: 0x40c8, 0x9bf: 0x26c9,\n\t// Block 0x27, offset 0x9c0\n\t0x9c0: 0x0367, 0x9c1: 0x032b, 0x9c2: 0x032f, 0x9c3: 0x0333, 0x9c4: 0x037b, 0x9c5: 0x0337,\n\t0x9c6: 0x033b, 0x9c7: 0x033f, 0x9c8: 0x0343, 0x9c9: 0x0347, 0x9ca: 0x034b, 0x9cb: 0x034f,\n\t0x9cc: 0x0353, 0x9cd: 0x0357, 0x9ce: 0x035b, 0x9cf: 0x49bd, 0x9d0: 0x49c3, 0x9d1: 0x49c9,\n\t0x9d2: 0x49cf, 0x9d3: 0x49d5, 0x9d4: 0x49db, 0x9d5: 0x49e1, 0x9d6: 0x49e7, 0x9d7: 0x49ed,\n\t0x9d8: 0x49f3, 0x9d9: 0x49f9, 0x9da: 0x49ff, 0x9db: 0x4a05, 0x9dc: 0x4a0b, 0x9dd: 0x4a11,\n\t0x9de: 0x4a17, 0x9df: 0x4a1d, 0x9e0: 0x4a23, 0x9e1: 0x4a29, 0x9e2: 0x4a2f, 0x9e3: 0x4a35,\n\t0x9e4: 0x03c3, 0x9e5: 0x035f, 0x9e6: 0x0363, 0x9e7: 0x03e7, 0x9e8: 0x03eb, 0x9e9: 0x03ef,\n\t0x9ea: 0x03f3, 0x9eb: 0x03f7, 0x9ec: 0x03fb, 0x9ed: 0x03ff, 0x9ee: 0x036b, 0x9ef: 0x0403,\n\t0x9f0: 0x0407, 0x9f1: 0x036f, 0x9f2: 0x0373, 0x9f3: 0x0377, 0x9f4: 0x037f, 0x9f5: 0x0383,\n\t0x9f6: 0x0387, 0x9f7: 0x038b, 0x9f8: 0x038f, 0x9f9: 0x0393, 0x9fa: 0x0397, 0x9fb: 0x039b,\n\t0x9fc: 0x039f, 0x9fd: 0x03a3, 0x9fe: 0x03a7, 0x9ff: 0x03ab,\n\t// Block 0x28, offset 0xa00\n\t0xa00: 0x03af, 0xa01: 0x03b3, 0xa02: 0x040b, 0xa03: 0x040f, 0xa04: 0x03b7, 0xa05: 0x03bb,\n\t0xa06: 0x03bf, 0xa07: 0x03c7, 0xa08: 0x03cb, 0xa09: 0x03cf, 0xa0a: 0x03d3, 0xa0b: 0x03d7,\n\t0xa0c: 0x03db, 0xa0d: 0x03df, 0xa0e: 0x03e3,\n\t0xa12: 0x06bf, 0xa13: 0x071b, 0xa14: 0x06cb, 0xa15: 0x097b, 0xa16: 0x06cf, 0xa17: 0x06e7,\n\t0xa18: 0x06d3, 0xa19: 0x0f93, 0xa1a: 0x0707, 0xa1b: 0x06db, 0xa1c: 0x06c3, 0xa1d: 0x09ff,\n\t0xa1e: 0x098f, 0xa1f: 0x072f,\n\t// Block 0x29, offset 0xa40\n\t0xa40: 0x2054, 0xa41: 0x205a, 0xa42: 0x2060, 0xa43: 0x2066, 0xa44: 0x206c, 0xa45: 0x2072,\n\t0xa46: 0x2078, 0xa47: 0x207e, 0xa48: 0x2084, 0xa49: 0x208a, 0xa4a: 0x2090, 0xa4b: 0x2096,\n\t0xa4c: 0x209c, 0xa4d: 0x20a2, 0xa4e: 0x2726, 0xa4f: 0x272f, 0xa50: 0x2738, 0xa51: 0x2741,\n\t0xa52: 0x274a, 0xa53: 0x2753, 0xa54: 0x275c, 0xa55: 0x2765, 0xa56: 0x276e, 0xa57: 0x2780,\n\t0xa58: 0x2789, 0xa59: 0x2792, 0xa5a: 0x279b, 0xa5b: 0x27a4, 0xa5c: 0x2777, 0xa5d: 0x2bac,\n\t0xa5e: 0x2aed, 0xa60: 0x20a8, 0xa61: 0x20c0, 0xa62: 0x20b4, 0xa63: 0x2108,\n\t0xa64: 0x20c6, 0xa65: 0x20e4, 0xa66: 0x20ae, 0xa67: 0x20de, 0xa68: 0x20ba, 0xa69: 0x20f0,\n\t0xa6a: 0x2120, 0xa6b: 0x213e, 0xa6c: 0x2138, 0xa6d: 0x212c, 0xa6e: 0x217a, 0xa6f: 0x210e,\n\t0xa70: 0x211a, 0xa71: 0x2132, 0xa72: 0x2126, 0xa73: 0x2150, 0xa74: 0x20fc, 0xa75: 0x2144,\n\t0xa76: 0x216e, 0xa77: 0x2156, 0xa78: 0x20ea, 0xa79: 0x20cc, 0xa7a: 0x2102, 0xa7b: 0x2114,\n\t0xa7c: 0x214a, 0xa7d: 0x20d2, 0xa7e: 0x2174, 0xa7f: 0x20f6,\n\t// Block 0x2a, offset 0xa80\n\t0xa80: 0x215c, 0xa81: 0x20d8, 0xa82: 0x2162, 0xa83: 0x2168, 0xa84: 0x092f, 0xa85: 0x0b03,\n\t0xa86: 0x0ca7, 0xa87: 0x10c7,\n\t0xa90: 0x1bc4, 0xa91: 0x18a9,\n\t0xa92: 0x18ac, 0xa93: 0x18af, 0xa94: 0x18b2, 0xa95: 0x18b5, 0xa96: 0x18b8, 0xa97: 0x18bb,\n\t0xa98: 0x18be, 0xa99: 0x18c1, 0xa9a: 0x18ca, 0xa9b: 0x18cd, 0xa9c: 0x18d0, 0xa9d: 0x18d3,\n\t0xa9e: 0x18d6, 0xa9f: 0x18d9, 0xaa0: 0x0313, 0xaa1: 0x031b, 0xaa2: 0x031f, 0xaa3: 0x0327,\n\t0xaa4: 0x032b, 0xaa5: 0x032f, 0xaa6: 0x0337, 0xaa7: 0x033f, 0xaa8: 0x0343, 0xaa9: 0x034b,\n\t0xaaa: 0x034f, 0xaab: 0x0353, 0xaac: 0x0357, 0xaad: 0x035b, 0xaae: 0x2e18, 0xaaf: 0x2e20,\n\t0xab0: 0x2e28, 0xab1: 0x2e30, 0xab2: 0x2e38, 0xab3: 0x2e40, 0xab4: 0x2e48, 0xab5: 0x2e50,\n\t0xab6: 0x2e60, 0xab7: 0x2e68, 0xab8: 0x2e70, 0xab9: 0x2e78, 0xaba: 0x2e80, 0xabb: 0x2e88,\n\t0xabc: 0x2ed3, 0xabd: 0x2e9b, 0xabe: 0x2e58,\n\t// Block 0x2b, offset 0xac0\n\t0xac0: 0x06bf, 0xac1: 0x071b, 0xac2: 0x06cb, 0xac3: 0x097b, 0xac4: 0x071f, 0xac5: 0x07af,\n\t0xac6: 0x06c7, 0xac7: 0x07ab, 0xac8: 0x070b, 0xac9: 0x0887, 0xaca: 0x0d07, 0xacb: 0x0e8f,\n\t0xacc: 0x0dd7, 0xacd: 0x0d1b, 0xace: 0x145f, 0xacf: 0x098b, 0xad0: 0x0ccf, 0xad1: 0x0d4b,\n\t0xad2: 0x0d0b, 0xad3: 0x104b, 0xad4: 0x08fb, 0xad5: 0x0f03, 0xad6: 0x1387, 0xad7: 0x105f,\n\t0xad8: 0x0843, 0xad9: 0x108f, 0xada: 0x0f9b, 0xadb: 0x0a17, 0xadc: 0x140f, 0xadd: 0x077f,\n\t0xade: 0x08ab, 0xadf: 0x0df7, 0xae0: 0x1527, 0xae1: 0x0743, 0xae2: 0x07d3, 0xae3: 0x0d9b,\n\t0xae4: 0x06cf, 0xae5: 0x06e7, 0xae6: 0x06d3, 0xae7: 0x0adb, 0xae8: 0x08ef, 0xae9: 0x087f,\n\t0xaea: 0x0a57, 0xaeb: 0x0a4b, 0xaec: 0x0feb, 0xaed: 0x073f, 0xaee: 0x139b, 0xaef: 0x089b,\n\t0xaf0: 0x09f3, 0xaf1: 0x18dc, 0xaf2: 0x18df, 0xaf3: 0x18e2, 0xaf4: 0x18e5, 0xaf5: 0x18ee,\n\t0xaf6: 0x18f1, 0xaf7: 0x18f4, 0xaf8: 0x18f7, 0xaf9: 0x18fa, 0xafa: 0x18fd, 0xafb: 0x1900,\n\t0xafc: 0x1903, 0xafd: 0x1906, 0xafe: 0x1909, 0xaff: 0x1912,\n\t// Block 0x2c, offset 0xb00\n\t0xb00: 0x1cc6, 0xb01: 0x1cd5, 0xb02: 0x1ce4, 0xb03: 0x1cf3, 0xb04: 0x1d02, 0xb05: 0x1d11,\n\t0xb06: 0x1d20, 0xb07: 0x1d2f, 0xb08: 0x1d3e, 0xb09: 0x218c, 0xb0a: 0x219e, 0xb0b: 0x21b0,\n\t0xb0c: 0x1954, 0xb0d: 0x1c04, 0xb0e: 0x19d2, 0xb0f: 0x1ba8, 0xb10: 0x04cb, 0xb11: 0x04d3,\n\t0xb12: 0x04db, 0xb13: 0x04e3, 0xb14: 0x04eb, 0xb15: 0x04ef, 0xb16: 0x04f3, 0xb17: 0x04f7,\n\t0xb18: 0x04fb, 0xb19: 0x04ff, 0xb1a: 0x0503, 0xb1b: 0x0507, 0xb1c: 0x050b, 0xb1d: 0x050f,\n\t0xb1e: 0x0513, 0xb1f: 0x0517, 0xb20: 0x051b, 0xb21: 0x0523, 0xb22: 0x0527, 0xb23: 0x052b,\n\t0xb24: 0x052f, 0xb25: 0x0533, 0xb26: 0x0537, 0xb27: 0x053b, 0xb28: 0x053f, 0xb29: 0x0543,\n\t0xb2a: 0x0547, 0xb2b: 0x054b, 0xb2c: 0x054f, 0xb2d: 0x0553, 0xb2e: 0x0557, 0xb2f: 0x055b,\n\t0xb30: 0x055f, 0xb31: 0x0563, 0xb32: 0x0567, 0xb33: 0x056f, 0xb34: 0x0577, 0xb35: 0x057f,\n\t0xb36: 0x0583, 0xb37: 0x0587, 0xb38: 0x058b, 0xb39: 0x058f, 0xb3a: 0x0593, 0xb3b: 0x0597,\n\t0xb3c: 0x059b, 0xb3d: 0x059f, 0xb3e: 0x05a3,\n\t// Block 0x2d, offset 0xb40\n\t0xb40: 0x2b0c, 0xb41: 0x29a8, 0xb42: 0x2b1c, 0xb43: 0x2880, 0xb44: 0x2ee4, 0xb45: 0x288a,\n\t0xb46: 0x2894, 0xb47: 0x2f28, 0xb48: 0x29b5, 0xb49: 0x289e, 0xb4a: 0x28a8, 0xb4b: 0x28b2,\n\t0xb4c: 0x29dc, 0xb4d: 0x29e9, 0xb4e: 0x29c2, 0xb4f: 0x29cf, 0xb50: 0x2ea9, 0xb51: 0x29f6,\n\t0xb52: 0x2a03, 0xb53: 0x2bbe, 0xb54: 0x26bb, 0xb55: 0x2bd1, 0xb56: 0x2be4, 0xb57: 0x2b2c,\n\t0xb58: 0x2a10, 0xb59: 0x2bf7, 0xb5a: 0x2c0a, 0xb5b: 0x2a1d, 0xb5c: 0x28bc, 0xb5d: 0x28c6,\n\t0xb5e: 0x2eb7, 0xb5f: 0x2a2a, 0xb60: 0x2b3c, 0xb61: 0x2ef5, 0xb62: 0x28d0, 0xb63: 0x28da,\n\t0xb64: 0x2a37, 0xb65: 0x28e4, 0xb66: 0x28ee, 0xb67: 0x26d0, 0xb68: 0x26d7, 0xb69: 0x28f8,\n\t0xb6a: 0x2902, 0xb6b: 0x2c1d, 0xb6c: 0x2a44, 0xb6d: 0x2b4c, 0xb6e: 0x2c30, 0xb6f: 0x2a51,\n\t0xb70: 0x2916, 0xb71: 0x290c, 0xb72: 0x2f3c, 0xb73: 0x2a5e, 0xb74: 0x2c43, 0xb75: 0x2920,\n\t0xb76: 0x2b5c, 0xb77: 0x292a, 0xb78: 0x2a78, 0xb79: 0x2934, 0xb7a: 0x2a85, 0xb7b: 0x2f06,\n\t0xb7c: 0x2a6b, 0xb7d: 0x2b6c, 0xb7e: 0x2a92, 0xb7f: 0x26de,\n\t// Block 0x2e, offset 0xb80\n\t0xb80: 0x2f17, 0xb81: 0x293e, 0xb82: 0x2948, 0xb83: 0x2a9f, 0xb84: 0x2952, 0xb85: 0x295c,\n\t0xb86: 0x2966, 0xb87: 0x2b7c, 0xb88: 0x2aac, 0xb89: 0x26e5, 0xb8a: 0x2c56, 0xb8b: 0x2e90,\n\t0xb8c: 0x2b8c, 0xb8d: 0x2ab9, 0xb8e: 0x2ec5, 0xb8f: 0x2970, 0xb90: 0x297a, 0xb91: 0x2ac6,\n\t0xb92: 0x26ec, 0xb93: 0x2ad3, 0xb94: 0x2b9c, 0xb95: 0x26f3, 0xb96: 0x2c69, 0xb97: 0x2984,\n\t0xb98: 0x1cb7, 0xb99: 0x1ccb, 0xb9a: 0x1cda, 0xb9b: 0x1ce9, 0xb9c: 0x1cf8, 0xb9d: 0x1d07,\n\t0xb9e: 0x1d16, 0xb9f: 0x1d25, 0xba0: 0x1d34, 0xba1: 0x1d43, 0xba2: 0x2192, 0xba3: 0x21a4,\n\t0xba4: 0x21b6, 0xba5: 0x21c2, 0xba6: 0x21ce, 0xba7: 0x21da, 0xba8: 0x21e6, 0xba9: 0x21f2,\n\t0xbaa: 0x21fe, 0xbab: 0x220a, 0xbac: 0x2246, 0xbad: 0x2252, 0xbae: 0x225e, 0xbaf: 0x226a,\n\t0xbb0: 0x2276, 0xbb1: 0x1c14, 0xbb2: 0x19c6, 0xbb3: 0x1936, 0xbb4: 0x1be4, 0xbb5: 0x1a47,\n\t0xbb6: 0x1a56, 0xbb7: 0x19cc, 0xbb8: 0x1bfc, 0xbb9: 0x1c00, 0xbba: 0x1960, 0xbbb: 0x2701,\n\t0xbbc: 0x270f, 0xbbd: 0x26fa, 0xbbe: 0x2708, 0xbbf: 0x2ae0,\n\t// Block 0x2f, offset 0xbc0\n\t0xbc0: 0x1a4a, 0xbc1: 0x1a32, 0xbc2: 0x1c60, 0xbc3: 0x1a1a, 0xbc4: 0x19f3, 0xbc5: 0x1969,\n\t0xbc6: 0x1978, 0xbc7: 0x1948, 0xbc8: 0x1bf0, 0xbc9: 0x1d52, 0xbca: 0x1a4d, 0xbcb: 0x1a35,\n\t0xbcc: 0x1c64, 0xbcd: 0x1c70, 0xbce: 0x1a26, 0xbcf: 0x19fc, 0xbd0: 0x1957, 0xbd1: 0x1c1c,\n\t0xbd2: 0x1bb0, 0xbd3: 0x1b9c, 0xbd4: 0x1bcc, 0xbd5: 0x1c74, 0xbd6: 0x1a29, 0xbd7: 0x19c9,\n\t0xbd8: 0x19ff, 0xbd9: 0x19de, 0xbda: 0x1a41, 0xbdb: 0x1c78, 0xbdc: 0x1a2c, 0xbdd: 0x19c0,\n\t0xbde: 0x1a02, 0xbdf: 0x1c3c, 0xbe0: 0x1bf4, 0xbe1: 0x1a14, 0xbe2: 0x1c24, 0xbe3: 0x1c40,\n\t0xbe4: 0x1bf8, 0xbe5: 0x1a17, 0xbe6: 0x1c28, 0xbe7: 0x22e8, 0xbe8: 0x22fc, 0xbe9: 0x1996,\n\t0xbea: 0x1c20, 0xbeb: 0x1bb4, 0xbec: 0x1ba0, 0xbed: 0x1c48, 0xbee: 0x2716, 0xbef: 0x27ad,\n\t0xbf0: 0x1a59, 0xbf1: 0x1a44, 0xbf2: 0x1c7c, 0xbf3: 0x1a2f, 0xbf4: 0x1a50, 0xbf5: 0x1a38,\n\t0xbf6: 0x1c68, 0xbf7: 0x1a1d, 0xbf8: 0x19f6, 0xbf9: 0x1981, 0xbfa: 0x1a53, 0xbfb: 0x1a3b,\n\t0xbfc: 0x1c6c, 0xbfd: 0x1a20, 0xbfe: 0x19f9, 0xbff: 0x1984,\n\t// Block 0x30, offset 0xc00\n\t0xc00: 0x1c2c, 0xc01: 0x1bb8, 0xc02: 0x1d4d, 0xc03: 0x1939, 0xc04: 0x19ba, 0xc05: 0x19bd,\n\t0xc06: 0x22f5, 0xc07: 0x1b94, 0xc08: 0x19c3, 0xc09: 0x194b, 0xc0a: 0x19e1, 0xc0b: 0x194e,\n\t0xc0c: 0x19ea, 0xc0d: 0x196c, 0xc0e: 0x196f, 0xc0f: 0x1a05, 0xc10: 0x1a0b, 0xc11: 0x1a0e,\n\t0xc12: 0x1c30, 0xc13: 0x1a11, 0xc14: 0x1a23, 0xc15: 0x1c38, 0xc16: 0x1c44, 0xc17: 0x1990,\n\t0xc18: 0x1d57, 0xc19: 0x1bbc, 0xc1a: 0x1993, 0xc1b: 0x1a5c, 0xc1c: 0x19a5, 0xc1d: 0x19b4,\n\t0xc1e: 0x22e2, 0xc1f: 0x22dc, 0xc20: 0x1cc1, 0xc21: 0x1cd0, 0xc22: 0x1cdf, 0xc23: 0x1cee,\n\t0xc24: 0x1cfd, 0xc25: 0x1d0c, 0xc26: 0x1d1b, 0xc27: 0x1d2a, 0xc28: 0x1d39, 0xc29: 0x2186,\n\t0xc2a: 0x2198, 0xc2b: 0x21aa, 0xc2c: 0x21bc, 0xc2d: 0x21c8, 0xc2e: 0x21d4, 0xc2f: 0x21e0,\n\t0xc30: 0x21ec, 0xc31: 0x21f8, 0xc32: 0x2204, 0xc33: 0x2240, 0xc34: 0x224c, 0xc35: 0x2258,\n\t0xc36: 0x2264, 0xc37: 0x2270, 0xc38: 0x227c, 0xc39: 0x2282, 0xc3a: 0x2288, 0xc3b: 0x228e,\n\t0xc3c: 0x2294, 0xc3d: 0x22a6, 0xc3e: 0x22ac, 0xc3f: 0x1c10,\n\t// Block 0x31, offset 0xc40\n\t0xc40: 0x1377, 0xc41: 0x0cfb, 0xc42: 0x13d3, 0xc43: 0x139f, 0xc44: 0x0e57, 0xc45: 0x06eb,\n\t0xc46: 0x08df, 0xc47: 0x162b, 0xc48: 0x162b, 0xc49: 0x0a0b, 0xc4a: 0x145f, 0xc4b: 0x0943,\n\t0xc4c: 0x0a07, 0xc4d: 0x0bef, 0xc4e: 0x0fcf, 0xc4f: 0x115f, 0xc50: 0x1297, 0xc51: 0x12d3,\n\t0xc52: 0x1307, 0xc53: 0x141b, 0xc54: 0x0d73, 0xc55: 0x0dff, 0xc56: 0x0eab, 0xc57: 0x0f43,\n\t0xc58: 0x125f, 0xc59: 0x1447, 0xc5a: 0x1573, 0xc5b: 0x070f, 0xc5c: 0x08b3, 0xc5d: 0x0d87,\n\t0xc5e: 0x0ecf, 0xc5f: 0x1293, 0xc60: 0x15c3, 0xc61: 0x0ab3, 0xc62: 0x0e77, 0xc63: 0x1283,\n\t0xc64: 0x1317, 0xc65: 0x0c23, 0xc66: 0x11bb, 0xc67: 0x12df, 0xc68: 0x0b1f, 0xc69: 0x0d0f,\n\t0xc6a: 0x0e17, 0xc6b: 0x0f1b, 0xc6c: 0x1427, 0xc6d: 0x074f, 0xc6e: 0x07e7, 0xc6f: 0x0853,\n\t0xc70: 0x0c8b, 0xc71: 0x0d7f, 0xc72: 0x0ecb, 0xc73: 0x0fef, 0xc74: 0x1177, 0xc75: 0x128b,\n\t0xc76: 0x12a3, 0xc77: 0x13c7, 0xc78: 0x14ef, 0xc79: 0x15a3, 0xc7a: 0x15bf, 0xc7b: 0x102b,\n\t0xc7c: 0x106b, 0xc7d: 0x1123, 0xc7e: 0x1243, 0xc7f: 0x147b,\n\t// Block 0x32, offset 0xc80\n\t0xc80: 0x15cb, 0xc81: 0x134b, 0xc82: 0x09c7, 0xc83: 0x0b3b, 0xc84: 0x10db, 0xc85: 0x119b,\n\t0xc86: 0x0eff, 0xc87: 0x1033, 0xc88: 0x1397, 0xc89: 0x14e7, 0xc8a: 0x09c3, 0xc8b: 0x0a8f,\n\t0xc8c: 0x0d77, 0xc8d: 0x0e2b, 0xc8e: 0x0e5f, 0xc8f: 0x1113, 0xc90: 0x113b, 0xc91: 0x14a7,\n\t0xc92: 0x084f, 0xc93: 0x11a7, 0xc94: 0x07f3, 0xc95: 0x07ef, 0xc96: 0x1097, 0xc97: 0x1127,\n\t0xc98: 0x125b, 0xc99: 0x14af, 0xc9a: 0x1367, 0xc9b: 0x0c27, 0xc9c: 0x0d73, 0xc9d: 0x1357,\n\t0xc9e: 0x06f7, 0xc9f: 0x0a63, 0xca0: 0x0b93, 0xca1: 0x0f2f, 0xca2: 0x0faf, 0xca3: 0x0873,\n\t0xca4: 0x103b, 0xca5: 0x075f, 0xca6: 0x0b77, 0xca7: 0x06d7, 0xca8: 0x0deb, 0xca9: 0x0ca3,\n\t0xcaa: 0x110f, 0xcab: 0x08c7, 0xcac: 0x09b3, 0xcad: 0x0ffb, 0xcae: 0x1263, 0xcaf: 0x133b,\n\t0xcb0: 0x0db7, 0xcb1: 0x13f7, 0xcb2: 0x0de3, 0xcb3: 0x0c37, 0xcb4: 0x121b, 0xcb5: 0x0c57,\n\t0xcb6: 0x0fab, 0xcb7: 0x072b, 0xcb8: 0x07a7, 0xcb9: 0x07eb, 0xcba: 0x0d53, 0xcbb: 0x10fb,\n\t0xcbc: 0x11f3, 0xcbd: 0x1347, 0xcbe: 0x145b, 0xcbf: 0x085b,\n\t// Block 0x33, offset 0xcc0\n\t0xcc0: 0x090f, 0xcc1: 0x0a17, 0xcc2: 0x0b2f, 0xcc3: 0x0cbf, 0xcc4: 0x0e7b, 0xcc5: 0x103f,\n\t0xcc6: 0x1497, 0xcc7: 0x157b, 0xcc8: 0x15cf, 0xcc9: 0x15e7, 0xcca: 0x0837, 0xccb: 0x0cf3,\n\t0xccc: 0x0da3, 0xccd: 0x13eb, 0xcce: 0x0afb, 0xccf: 0x0bd7, 0xcd0: 0x0bf3, 0xcd1: 0x0c83,\n\t0xcd2: 0x0e6b, 0xcd3: 0x0eb7, 0xcd4: 0x0f67, 0xcd5: 0x108b, 0xcd6: 0x112f, 0xcd7: 0x1193,\n\t0xcd8: 0x13db, 0xcd9: 0x126b, 0xcda: 0x1403, 0xcdb: 0x147f, 0xcdc: 0x080f, 0xcdd: 0x083b,\n\t0xcde: 0x0923, 0xcdf: 0x0ea7, 0xce0: 0x12f3, 0xce1: 0x133b, 0xce2: 0x0b1b, 0xce3: 0x0b8b,\n\t0xce4: 0x0c4f, 0xce5: 0x0daf, 0xce6: 0x10d7, 0xce7: 0x0f23, 0xce8: 0x073b, 0xce9: 0x097f,\n\t0xcea: 0x0a63, 0xceb: 0x0ac7, 0xcec: 0x0b97, 0xced: 0x0f3f, 0xcee: 0x0f5b, 0xcef: 0x116b,\n\t0xcf0: 0x118b, 0xcf1: 0x1463, 0xcf2: 0x14e3, 0xcf3: 0x14f3, 0xcf4: 0x152f, 0xcf5: 0x0753,\n\t0xcf6: 0x107f, 0xcf7: 0x144f, 0xcf8: 0x14cb, 0xcf9: 0x0baf, 0xcfa: 0x0717, 0xcfb: 0x0777,\n\t0xcfc: 0x0a67, 0xcfd: 0x0a87, 0xcfe: 0x0caf, 0xcff: 0x0d73,\n\t// Block 0x34, offset 0xd00\n\t0xd00: 0x0ec3, 0xd01: 0x0fcb, 0xd02: 0x1277, 0xd03: 0x1417, 0xd04: 0x1623, 0xd05: 0x0ce3,\n\t0xd06: 0x14a3, 0xd07: 0x0833, 0xd08: 0x0d2f, 0xd09: 0x0d3b, 0xd0a: 0x0e0f, 0xd0b: 0x0e47,\n\t0xd0c: 0x0f4b, 0xd0d: 0x0fa7, 0xd0e: 0x1027, 0xd0f: 0x110b, 0xd10: 0x153b, 0xd11: 0x07af,\n\t0xd12: 0x0c03, 0xd13: 0x14b3, 0xd14: 0x0767, 0xd15: 0x0aab, 0xd16: 0x0e2f, 0xd17: 0x13df,\n\t0xd18: 0x0b67, 0xd19: 0x0bb7, 0xd1a: 0x0d43, 0xd1b: 0x0f2f, 0xd1c: 0x14bb, 0xd1d: 0x0817,\n\t0xd1e: 0x08ff, 0xd1f: 0x0a97, 0xd20: 0x0cd3, 0xd21: 0x0d1f, 0xd22: 0x0d5f, 0xd23: 0x0df3,\n\t0xd24: 0x0f47, 0xd25: 0x0fbb, 0xd26: 0x1157, 0xd27: 0x12f7, 0xd28: 0x1303, 0xd29: 0x1457,\n\t0xd2a: 0x14d7, 0xd2b: 0x0883, 0xd2c: 0x0e4b, 0xd2d: 0x0903, 0xd2e: 0x0ec7, 0xd2f: 0x0f6b,\n\t0xd30: 0x1287, 0xd31: 0x14bf, 0xd32: 0x15ab, 0xd33: 0x15d3, 0xd34: 0x0d37, 0xd35: 0x0e27,\n\t0xd36: 0x11c3, 0xd37: 0x10b7, 0xd38: 0x10c3, 0xd39: 0x10e7, 0xd3a: 0x0f17, 0xd3b: 0x0e9f,\n\t0xd3c: 0x1363, 0xd3d: 0x0733, 0xd3e: 0x122b, 0xd3f: 0x081b,\n\t// Block 0x35, offset 0xd40\n\t0xd40: 0x080b, 0xd41: 0x0b0b, 0xd42: 0x0c2b, 0xd43: 0x10f3, 0xd44: 0x0a53, 0xd45: 0x0e03,\n\t0xd46: 0x0cef, 0xd47: 0x13e7, 0xd48: 0x12e7, 0xd49: 0x14ab, 0xd4a: 0x1323, 0xd4b: 0x0b27,\n\t0xd4c: 0x0787, 0xd4d: 0x095b, 0xd50: 0x09af,\n\t0xd52: 0x0cdf, 0xd55: 0x07f7, 0xd56: 0x0f1f, 0xd57: 0x0fe3,\n\t0xd58: 0x1047, 0xd59: 0x1063, 0xd5a: 0x1067, 0xd5b: 0x107b, 0xd5c: 0x14fb, 0xd5d: 0x10eb,\n\t0xd5e: 0x116f, 0xd60: 0x128f, 0xd62: 0x1353,\n\t0xd65: 0x1407, 0xd66: 0x1433,\n\t0xd6a: 0x154f, 0xd6b: 0x1553, 0xd6c: 0x1557, 0xd6d: 0x15bb, 0xd6e: 0x142b, 0xd6f: 0x14c7,\n\t0xd70: 0x0757, 0xd71: 0x077b, 0xd72: 0x078f, 0xd73: 0x084b, 0xd74: 0x0857, 0xd75: 0x0897,\n\t0xd76: 0x094b, 0xd77: 0x0967, 0xd78: 0x096f, 0xd79: 0x09ab, 0xd7a: 0x09b7, 0xd7b: 0x0a93,\n\t0xd7c: 0x0a9b, 0xd7d: 0x0ba3, 0xd7e: 0x0bcb, 0xd7f: 0x0bd3,\n\t// Block 0x36, offset 0xd80\n\t0xd80: 0x0beb, 0xd81: 0x0c97, 0xd82: 0x0cc7, 0xd83: 0x0ce7, 0xd84: 0x0d57, 0xd85: 0x0e1b,\n\t0xd86: 0x0e37, 0xd87: 0x0e67, 0xd88: 0x0ebb, 0xd89: 0x0edb, 0xd8a: 0x0f4f, 0xd8b: 0x102f,\n\t0xd8c: 0x104b, 0xd8d: 0x1053, 0xd8e: 0x104f, 0xd8f: 0x1057, 0xd90: 0x105b, 0xd91: 0x105f,\n\t0xd92: 0x1073, 0xd93: 0x1077, 0xd94: 0x109b, 0xd95: 0x10af, 0xd96: 0x10cb, 0xd97: 0x112f,\n\t0xd98: 0x1137, 0xd99: 0x113f, 0xd9a: 0x1153, 0xd9b: 0x117b, 0xd9c: 0x11cb, 0xd9d: 0x11ff,\n\t0xd9e: 0x11ff, 0xd9f: 0x1267, 0xda0: 0x130f, 0xda1: 0x1327, 0xda2: 0x135b, 0xda3: 0x135f,\n\t0xda4: 0x13a3, 0xda5: 0x13a7, 0xda6: 0x13ff, 0xda7: 0x1407, 0xda8: 0x14db, 0xda9: 0x151f,\n\t0xdaa: 0x1537, 0xdab: 0x0b9b, 0xdac: 0x171e, 0xdad: 0x11e3,\n\t0xdb0: 0x06df, 0xdb1: 0x07e3, 0xdb2: 0x07a3, 0xdb3: 0x074b, 0xdb4: 0x078b, 0xdb5: 0x07b7,\n\t0xdb6: 0x0847, 0xdb7: 0x0863, 0xdb8: 0x094b, 0xdb9: 0x0937, 0xdba: 0x0947, 0xdbb: 0x0963,\n\t0xdbc: 0x09af, 0xdbd: 0x09bf, 0xdbe: 0x0a03, 0xdbf: 0x0a0f,\n\t// Block 0x37, offset 0xdc0\n\t0xdc0: 0x0a2b, 0xdc1: 0x0a3b, 0xdc2: 0x0b23, 0xdc3: 0x0b2b, 0xdc4: 0x0b5b, 0xdc5: 0x0b7b,\n\t0xdc6: 0x0bab, 0xdc7: 0x0bc3, 0xdc8: 0x0bb3, 0xdc9: 0x0bd3, 0xdca: 0x0bc7, 0xdcb: 0x0beb,\n\t0xdcc: 0x0c07, 0xdcd: 0x0c5f, 0xdce: 0x0c6b, 0xdcf: 0x0c73, 0xdd0: 0x0c9b, 0xdd1: 0x0cdf,\n\t0xdd2: 0x0d0f, 0xdd3: 0x0d13, 0xdd4: 0x0d27, 0xdd5: 0x0da7, 0xdd6: 0x0db7, 0xdd7: 0x0e0f,\n\t0xdd8: 0x0e5b, 0xdd9: 0x0e53, 0xdda: 0x0e67, 0xddb: 0x0e83, 0xddc: 0x0ebb, 0xddd: 0x1013,\n\t0xdde: 0x0edf, 0xddf: 0x0f13, 0xde0: 0x0f1f, 0xde1: 0x0f5f, 0xde2: 0x0f7b, 0xde3: 0x0f9f,\n\t0xde4: 0x0fc3, 0xde5: 0x0fc7, 0xde6: 0x0fe3, 0xde7: 0x0fe7, 0xde8: 0x0ff7, 0xde9: 0x100b,\n\t0xdea: 0x1007, 0xdeb: 0x1037, 0xdec: 0x10b3, 0xded: 0x10cb, 0xdee: 0x10e3, 0xdef: 0x111b,\n\t0xdf0: 0x112f, 0xdf1: 0x114b, 0xdf2: 0x117b, 0xdf3: 0x122f, 0xdf4: 0x1257, 0xdf5: 0x12cb,\n\t0xdf6: 0x1313, 0xdf7: 0x131f, 0xdf8: 0x1327, 0xdf9: 0x133f, 0xdfa: 0x1353, 0xdfb: 0x1343,\n\t0xdfc: 0x135b, 0xdfd: 0x1357, 0xdfe: 0x134f, 0xdff: 0x135f,\n\t// Block 0x38, offset 0xe00\n\t0xe00: 0x136b, 0xe01: 0x13a7, 0xe02: 0x13e3, 0xe03: 0x1413, 0xe04: 0x144b, 0xe05: 0x146b,\n\t0xe06: 0x14b7, 0xe07: 0x14db, 0xe08: 0x14fb, 0xe09: 0x150f, 0xe0a: 0x151f, 0xe0b: 0x152b,\n\t0xe0c: 0x1537, 0xe0d: 0x158b, 0xe0e: 0x162b, 0xe0f: 0x16b5, 0xe10: 0x16b0, 0xe11: 0x16e2,\n\t0xe12: 0x0607, 0xe13: 0x062f, 0xe14: 0x0633, 0xe15: 0x1764, 0xe16: 0x1791, 0xe17: 0x1809,\n\t0xe18: 0x1617, 0xe19: 0x1627,\n\t// Block 0x39, offset 0xe40\n\t0xe40: 0x19d5, 0xe41: 0x19d8, 0xe42: 0x19db, 0xe43: 0x1c08, 0xe44: 0x1c0c, 0xe45: 0x1a5f,\n\t0xe46: 0x1a5f,\n\t0xe53: 0x1d75, 0xe54: 0x1d66, 0xe55: 0x1d6b, 0xe56: 0x1d7a, 0xe57: 0x1d70,\n\t0xe5d: 0x4390,\n\t0xe5e: 0x8115, 0xe5f: 0x4402, 0xe60: 0x022d, 0xe61: 0x0215, 0xe62: 0x021e, 0xe63: 0x0221,\n\t0xe64: 0x0224, 0xe65: 0x0227, 0xe66: 0x022a, 0xe67: 0x0230, 0xe68: 0x0233, 0xe69: 0x0017,\n\t0xe6a: 0x43f0, 0xe6b: 0x43f6, 0xe6c: 0x44f4, 0xe6d: 0x44fc, 0xe6e: 0x4348, 0xe6f: 0x434e,\n\t0xe70: 0x4354, 0xe71: 0x435a, 0xe72: 0x4366, 0xe73: 0x436c, 0xe74: 0x4372, 0xe75: 0x437e,\n\t0xe76: 0x4384, 0xe78: 0x438a, 0xe79: 0x4396, 0xe7a: 0x439c, 0xe7b: 0x43a2,\n\t0xe7c: 0x43ae, 0xe7e: 0x43b4,\n\t// Block 0x3a, offset 0xe80\n\t0xe80: 0x43ba, 0xe81: 0x43c0, 0xe83: 0x43c6, 0xe84: 0x43cc,\n\t0xe86: 0x43d8, 0xe87: 0x43de, 0xe88: 0x43e4, 0xe89: 0x43ea, 0xe8a: 0x43fc, 0xe8b: 0x4378,\n\t0xe8c: 0x4360, 0xe8d: 0x43a8, 0xe8e: 0x43d2, 0xe8f: 0x1d7f, 0xe90: 0x0299, 0xe91: 0x0299,\n\t0xe92: 0x02a2, 0xe93: 0x02a2, 0xe94: 0x02a2, 0xe95: 0x02a2, 0xe96: 0x02a5, 0xe97: 0x02a5,\n\t0xe98: 0x02a5, 0xe99: 0x02a5, 0xe9a: 0x02ab, 0xe9b: 0x02ab, 0xe9c: 0x02ab, 0xe9d: 0x02ab,\n\t0xe9e: 0x029f, 0xe9f: 0x029f, 0xea0: 0x029f, 0xea1: 0x029f, 0xea2: 0x02a8, 0xea3: 0x02a8,\n\t0xea4: 0x02a8, 0xea5: 0x02a8, 0xea6: 0x029c, 0xea7: 0x029c, 0xea8: 0x029c, 0xea9: 0x029c,\n\t0xeaa: 0x02cf, 0xeab: 0x02cf, 0xeac: 0x02cf, 0xead: 0x02cf, 0xeae: 0x02d2, 0xeaf: 0x02d2,\n\t0xeb0: 0x02d2, 0xeb1: 0x02d2, 0xeb2: 0x02b1, 0xeb3: 0x02b1, 0xeb4: 0x02b1, 0xeb5: 0x02b1,\n\t0xeb6: 0x02ae, 0xeb7: 0x02ae, 0xeb8: 0x02ae, 0xeb9: 0x02ae, 0xeba: 0x02b4, 0xebb: 0x02b4,\n\t0xebc: 0x02b4, 0xebd: 0x02b4, 0xebe: 0x02b7, 0xebf: 0x02b7,\n\t// Block 0x3b, offset 0xec0\n\t0xec0: 0x02b7, 0xec1: 0x02b7, 0xec2: 0x02c0, 0xec3: 0x02c0, 0xec4: 0x02bd, 0xec5: 0x02bd,\n\t0xec6: 0x02c3, 0xec7: 0x02c3, 0xec8: 0x02ba, 0xec9: 0x02ba, 0xeca: 0x02c9, 0xecb: 0x02c9,\n\t0xecc: 0x02c6, 0xecd: 0x02c6, 0xece: 0x02d5, 0xecf: 0x02d5, 0xed0: 0x02d5, 0xed1: 0x02d5,\n\t0xed2: 0x02db, 0xed3: 0x02db, 0xed4: 0x02db, 0xed5: 0x02db, 0xed6: 0x02e1, 0xed7: 0x02e1,\n\t0xed8: 0x02e1, 0xed9: 0x02e1, 0xeda: 0x02de, 0xedb: 0x02de, 0xedc: 0x02de, 0xedd: 0x02de,\n\t0xede: 0x02e4, 0xedf: 0x02e4, 0xee0: 0x02e7, 0xee1: 0x02e7, 0xee2: 0x02e7, 0xee3: 0x02e7,\n\t0xee4: 0x446e, 0xee5: 0x446e, 0xee6: 0x02ed, 0xee7: 0x02ed, 0xee8: 0x02ed, 0xee9: 0x02ed,\n\t0xeea: 0x02ea, 0xeeb: 0x02ea, 0xeec: 0x02ea, 0xeed: 0x02ea, 0xeee: 0x0308, 0xeef: 0x0308,\n\t0xef0: 0x4468, 0xef1: 0x4468,\n\t// Block 0x3c, offset 0xf00\n\t0xf13: 0x02d8, 0xf14: 0x02d8, 0xf15: 0x02d8, 0xf16: 0x02d8, 0xf17: 0x02f6,\n\t0xf18: 0x02f6, 0xf19: 0x02f3, 0xf1a: 0x02f3, 0xf1b: 0x02f9, 0xf1c: 0x02f9, 0xf1d: 0x204f,\n\t0xf1e: 0x02ff, 0xf1f: 0x02ff, 0xf20: 0x02f0, 0xf21: 0x02f0, 0xf22: 0x02fc, 0xf23: 0x02fc,\n\t0xf24: 0x0305, 0xf25: 0x0305, 0xf26: 0x0305, 0xf27: 0x0305, 0xf28: 0x028d, 0xf29: 0x028d,\n\t0xf2a: 0x25aa, 0xf2b: 0x25aa, 0xf2c: 0x261a, 0xf2d: 0x261a, 0xf2e: 0x25e9, 0xf2f: 0x25e9,\n\t0xf30: 0x2605, 0xf31: 0x2605, 0xf32: 0x25fe, 0xf33: 0x25fe, 0xf34: 0x260c, 0xf35: 0x260c,\n\t0xf36: 0x2613, 0xf37: 0x2613, 0xf38: 0x2613, 0xf39: 0x25f0, 0xf3a: 0x25f0, 0xf3b: 0x25f0,\n\t0xf3c: 0x0302, 0xf3d: 0x0302, 0xf3e: 0x0302, 0xf3f: 0x0302,\n\t// Block 0x3d, offset 0xf40\n\t0xf40: 0x25b1, 0xf41: 0x25b8, 0xf42: 0x25d4, 0xf43: 0x25f0, 0xf44: 0x25f7, 0xf45: 0x1d89,\n\t0xf46: 0x1d8e, 0xf47: 0x1d93, 0xf48: 0x1da2, 0xf49: 0x1db1, 0xf4a: 0x1db6, 0xf4b: 0x1dbb,\n\t0xf4c: 0x1dc0, 0xf4d: 0x1dc5, 0xf4e: 0x1dd4, 0xf4f: 0x1de3, 0xf50: 0x1de8, 0xf51: 0x1ded,\n\t0xf52: 0x1dfc, 0xf53: 0x1e0b, 0xf54: 0x1e10, 0xf55: 0x1e15, 0xf56: 0x1e1a, 0xf57: 0x1e29,\n\t0xf58: 0x1e2e, 0xf59: 0x1e3d, 0xf5a: 0x1e42, 0xf5b: 0x1e47, 0xf5c: 0x1e56, 0xf5d: 0x1e5b,\n\t0xf5e: 0x1e60, 0xf5f: 0x1e6a, 0xf60: 0x1ea6, 0xf61: 0x1eb5, 0xf62: 0x1ec4, 0xf63: 0x1ec9,\n\t0xf64: 0x1ece, 0xf65: 0x1ed8, 0xf66: 0x1ee7, 0xf67: 0x1eec, 0xf68: 0x1efb, 0xf69: 0x1f00,\n\t0xf6a: 0x1f05, 0xf6b: 0x1f14, 0xf6c: 0x1f19, 0xf6d: 0x1f28, 0xf6e: 0x1f2d, 0xf6f: 0x1f32,\n\t0xf70: 0x1f37, 0xf71: 0x1f3c, 0xf72: 0x1f41, 0xf73: 0x1f46, 0xf74: 0x1f4b, 0xf75: 0x1f50,\n\t0xf76: 0x1f55, 0xf77: 0x1f5a, 0xf78: 0x1f5f, 0xf79: 0x1f64, 0xf7a: 0x1f69, 0xf7b: 0x1f6e,\n\t0xf7c: 0x1f73, 0xf7d: 0x1f78, 0xf7e: 0x1f7d, 0xf7f: 0x1f87,\n\t// Block 0x3e, offset 0xf80\n\t0xf80: 0x1f8c, 0xf81: 0x1f91, 0xf82: 0x1f96, 0xf83: 0x1fa0, 0xf84: 0x1fa5, 0xf85: 0x1faf,\n\t0xf86: 0x1fb4, 0xf87: 0x1fb9, 0xf88: 0x1fbe, 0xf89: 0x1fc3, 0xf8a: 0x1fc8, 0xf8b: 0x1fcd,\n\t0xf8c: 0x1fd2, 0xf8d: 0x1fd7, 0xf8e: 0x1fe6, 0xf8f: 0x1ff5, 0xf90: 0x1ffa, 0xf91: 0x1fff,\n\t0xf92: 0x2004, 0xf93: 0x2009, 0xf94: 0x200e, 0xf95: 0x2018, 0xf96: 0x201d, 0xf97: 0x2022,\n\t0xf98: 0x2031, 0xf99: 0x2040, 0xf9a: 0x2045, 0xf9b: 0x4420, 0xf9c: 0x4426, 0xf9d: 0x445c,\n\t0xf9e: 0x44b3, 0xf9f: 0x44ba, 0xfa0: 0x44c1, 0xfa1: 0x44c8, 0xfa2: 0x44cf, 0xfa3: 0x44d6,\n\t0xfa4: 0x25c6, 0xfa5: 0x25cd, 0xfa6: 0x25d4, 0xfa7: 0x25db, 0xfa8: 0x25f0, 0xfa9: 0x25f7,\n\t0xfaa: 0x1d98, 0xfab: 0x1d9d, 0xfac: 0x1da2, 0xfad: 0x1da7, 0xfae: 0x1db1, 0xfaf: 0x1db6,\n\t0xfb0: 0x1dca, 0xfb1: 0x1dcf, 0xfb2: 0x1dd4, 0xfb3: 0x1dd9, 0xfb4: 0x1de3, 0xfb5: 0x1de8,\n\t0xfb6: 0x1df2, 0xfb7: 0x1df7, 0xfb8: 0x1dfc, 0xfb9: 0x1e01, 0xfba: 0x1e0b, 0xfbb: 0x1e10,\n\t0xfbc: 0x1f3c, 0xfbd: 0x1f41, 0xfbe: 0x1f50, 0xfbf: 0x1f55,\n\t// Block 0x3f, offset 0xfc0\n\t0xfc0: 0x1f5a, 0xfc1: 0x1f6e, 0xfc2: 0x1f73, 0xfc3: 0x1f78, 0xfc4: 0x1f7d, 0xfc5: 0x1f96,\n\t0xfc6: 0x1fa0, 0xfc7: 0x1fa5, 0xfc8: 0x1faa, 0xfc9: 0x1fbe, 0xfca: 0x1fdc, 0xfcb: 0x1fe1,\n\t0xfcc: 0x1fe6, 0xfcd: 0x1feb, 0xfce: 0x1ff5, 0xfcf: 0x1ffa, 0xfd0: 0x445c, 0xfd1: 0x2027,\n\t0xfd2: 0x202c, 0xfd3: 0x2031, 0xfd4: 0x2036, 0xfd5: 0x2040, 0xfd6: 0x2045, 0xfd7: 0x25b1,\n\t0xfd8: 0x25b8, 0xfd9: 0x25bf, 0xfda: 0x25d4, 0xfdb: 0x25e2, 0xfdc: 0x1d89, 0xfdd: 0x1d8e,\n\t0xfde: 0x1d93, 0xfdf: 0x1da2, 0xfe0: 0x1dac, 0xfe1: 0x1dbb, 0xfe2: 0x1dc0, 0xfe3: 0x1dc5,\n\t0xfe4: 0x1dd4, 0xfe5: 0x1dde, 0xfe6: 0x1dfc, 0xfe7: 0x1e15, 0xfe8: 0x1e1a, 0xfe9: 0x1e29,\n\t0xfea: 0x1e2e, 0xfeb: 0x1e3d, 0xfec: 0x1e47, 0xfed: 0x1e56, 0xfee: 0x1e5b, 0xfef: 0x1e60,\n\t0xff0: 0x1e6a, 0xff1: 0x1ea6, 0xff2: 0x1eab, 0xff3: 0x1eb5, 0xff4: 0x1ec4, 0xff5: 0x1ec9,\n\t0xff6: 0x1ece, 0xff7: 0x1ed8, 0xff8: 0x1ee7, 0xff9: 0x1efb, 0xffa: 0x1f00, 0xffb: 0x1f05,\n\t0xffc: 0x1f14, 0xffd: 0x1f19, 0xffe: 0x1f28, 0xfff: 0x1f2d,\n\t// Block 0x40, offset 0x1000\n\t0x1000: 0x1f32, 0x1001: 0x1f37, 0x1002: 0x1f46, 0x1003: 0x1f4b, 0x1004: 0x1f5f, 0x1005: 0x1f64,\n\t0x1006: 0x1f69, 0x1007: 0x1f6e, 0x1008: 0x1f73, 0x1009: 0x1f87, 0x100a: 0x1f8c, 0x100b: 0x1f91,\n\t0x100c: 0x1f96, 0x100d: 0x1f9b, 0x100e: 0x1faf, 0x100f: 0x1fb4, 0x1010: 0x1fb9, 0x1011: 0x1fbe,\n\t0x1012: 0x1fcd, 0x1013: 0x1fd2, 0x1014: 0x1fd7, 0x1015: 0x1fe6, 0x1016: 0x1ff0, 0x1017: 0x1fff,\n\t0x1018: 0x2004, 0x1019: 0x4450, 0x101a: 0x2018, 0x101b: 0x201d, 0x101c: 0x2022, 0x101d: 0x2031,\n\t0x101e: 0x203b, 0x101f: 0x25d4, 0x1020: 0x25e2, 0x1021: 0x1da2, 0x1022: 0x1dac, 0x1023: 0x1dd4,\n\t0x1024: 0x1dde, 0x1025: 0x1dfc, 0x1026: 0x1e06, 0x1027: 0x1e6a, 0x1028: 0x1e6f, 0x1029: 0x1e92,\n\t0x102a: 0x1e97, 0x102b: 0x1f6e, 0x102c: 0x1f73, 0x102d: 0x1f96, 0x102e: 0x1fe6, 0x102f: 0x1ff0,\n\t0x1030: 0x2031, 0x1031: 0x203b, 0x1032: 0x4504, 0x1033: 0x450c, 0x1034: 0x4514, 0x1035: 0x1ef1,\n\t0x1036: 0x1ef6, 0x1037: 0x1f0a, 0x1038: 0x1f0f, 0x1039: 0x1f1e, 0x103a: 0x1f23, 0x103b: 0x1e74,\n\t0x103c: 0x1e79, 0x103d: 0x1e9c, 0x103e: 0x1ea1, 0x103f: 0x1e33,\n\t// Block 0x41, offset 0x1040\n\t0x1040: 0x1e38, 0x1041: 0x1e1f, 0x1042: 0x1e24, 0x1043: 0x1e4c, 0x1044: 0x1e51, 0x1045: 0x1eba,\n\t0x1046: 0x1ebf, 0x1047: 0x1edd, 0x1048: 0x1ee2, 0x1049: 0x1e7e, 0x104a: 0x1e83, 0x104b: 0x1e88,\n\t0x104c: 0x1e92, 0x104d: 0x1e8d, 0x104e: 0x1e65, 0x104f: 0x1eb0, 0x1050: 0x1ed3, 0x1051: 0x1ef1,\n\t0x1052: 0x1ef6, 0x1053: 0x1f0a, 0x1054: 0x1f0f, 0x1055: 0x1f1e, 0x1056: 0x1f23, 0x1057: 0x1e74,\n\t0x1058: 0x1e79, 0x1059: 0x1e9c, 0x105a: 0x1ea1, 0x105b: 0x1e33, 0x105c: 0x1e38, 0x105d: 0x1e1f,\n\t0x105e: 0x1e24, 0x105f: 0x1e4c, 0x1060: 0x1e51, 0x1061: 0x1eba, 0x1062: 0x1ebf, 0x1063: 0x1edd,\n\t0x1064: 0x1ee2, 0x1065: 0x1e7e, 0x1066: 0x1e83, 0x1067: 0x1e88, 0x1068: 0x1e92, 0x1069: 0x1e8d,\n\t0x106a: 0x1e65, 0x106b: 0x1eb0, 0x106c: 0x1ed3, 0x106d: 0x1e7e, 0x106e: 0x1e83, 0x106f: 0x1e88,\n\t0x1070: 0x1e92, 0x1071: 0x1e6f, 0x1072: 0x1e97, 0x1073: 0x1eec, 0x1074: 0x1e56, 0x1075: 0x1e5b,\n\t0x1076: 0x1e60, 0x1077: 0x1e7e, 0x1078: 0x1e83, 0x1079: 0x1e88, 0x107a: 0x1eec, 0x107b: 0x1efb,\n\t0x107c: 0x4408, 0x107d: 0x4408,\n\t// Block 0x42, offset 0x1080\n\t0x1090: 0x2311, 0x1091: 0x2326,\n\t0x1092: 0x2326, 0x1093: 0x232d, 0x1094: 0x2334, 0x1095: 0x2349, 0x1096: 0x2350, 0x1097: 0x2357,\n\t0x1098: 0x237a, 0x1099: 0x237a, 0x109a: 0x239d, 0x109b: 0x2396, 0x109c: 0x23b2, 0x109d: 0x23a4,\n\t0x109e: 0x23ab, 0x109f: 0x23ce, 0x10a0: 0x23ce, 0x10a1: 0x23c7, 0x10a2: 0x23d5, 0x10a3: 0x23d5,\n\t0x10a4: 0x23ff, 0x10a5: 0x23ff, 0x10a6: 0x241b, 0x10a7: 0x23e3, 0x10a8: 0x23e3, 0x10a9: 0x23dc,\n\t0x10aa: 0x23f1, 0x10ab: 0x23f1, 0x10ac: 0x23f8, 0x10ad: 0x23f8, 0x10ae: 0x2422, 0x10af: 0x2430,\n\t0x10b0: 0x2430, 0x10b1: 0x2437, 0x10b2: 0x2437, 0x10b3: 0x243e, 0x10b4: 0x2445, 0x10b5: 0x244c,\n\t0x10b6: 0x2453, 0x10b7: 0x2453, 0x10b8: 0x245a, 0x10b9: 0x2468, 0x10ba: 0x2476, 0x10bb: 0x246f,\n\t0x10bc: 0x247d, 0x10bd: 0x247d, 0x10be: 0x2492, 0x10bf: 0x2499,\n\t// Block 0x43, offset 0x10c0\n\t0x10c0: 0x24ca, 0x10c1: 0x24d8, 0x10c2: 0x24d1, 0x10c3: 0x24b5, 0x10c4: 0x24b5, 0x10c5: 0x24df,\n\t0x10c6: 0x24df, 0x10c7: 0x24e6, 0x10c8: 0x24e6, 0x10c9: 0x2510, 0x10ca: 0x2517, 0x10cb: 0x251e,\n\t0x10cc: 0x24f4, 0x10cd: 0x2502, 0x10ce: 0x2525, 0x10cf: 0x252c,\n\t0x10d2: 0x24fb, 0x10d3: 0x2580, 0x10d4: 0x2587, 0x10d5: 0x255d, 0x10d6: 0x2564, 0x10d7: 0x2548,\n\t0x10d8: 0x2548, 0x10d9: 0x254f, 0x10da: 0x2579, 0x10db: 0x2572, 0x10dc: 0x259c, 0x10dd: 0x259c,\n\t0x10de: 0x230a, 0x10df: 0x231f, 0x10e0: 0x2318, 0x10e1: 0x2342, 0x10e2: 0x233b, 0x10e3: 0x2365,\n\t0x10e4: 0x235e, 0x10e5: 0x2388, 0x10e6: 0x236c, 0x10e7: 0x2381, 0x10e8: 0x23b9, 0x10e9: 0x2406,\n\t0x10ea: 0x23ea, 0x10eb: 0x2429, 0x10ec: 0x24c3, 0x10ed: 0x24ed, 0x10ee: 0x2595, 0x10ef: 0x258e,\n\t0x10f0: 0x25a3, 0x10f1: 0x253a, 0x10f2: 0x24a0, 0x10f3: 0x256b, 0x10f4: 0x2492, 0x10f5: 0x24ca,\n\t0x10f6: 0x2461, 0x10f7: 0x24ae, 0x10f8: 0x2541, 0x10f9: 0x2533, 0x10fa: 0x24bc, 0x10fb: 0x24a7,\n\t0x10fc: 0x24bc, 0x10fd: 0x2541, 0x10fe: 0x2373, 0x10ff: 0x238f,\n\t// Block 0x44, offset 0x1100\n\t0x1100: 0x2509, 0x1101: 0x2484, 0x1102: 0x2303, 0x1103: 0x24a7, 0x1104: 0x244c, 0x1105: 0x241b,\n\t0x1106: 0x23c0, 0x1107: 0x2556,\n\t0x1130: 0x2414, 0x1131: 0x248b, 0x1132: 0x27bf, 0x1133: 0x27b6, 0x1134: 0x27ec, 0x1135: 0x27da,\n\t0x1136: 0x27c8, 0x1137: 0x27e3, 0x1138: 0x27f5, 0x1139: 0x240d, 0x113a: 0x2c7c, 0x113b: 0x2afc,\n\t0x113c: 0x27d1,\n\t// Block 0x45, offset 0x1140\n\t0x1150: 0x0019, 0x1151: 0x0483,\n\t0x1152: 0x0487, 0x1153: 0x0035, 0x1154: 0x0037, 0x1155: 0x0003, 0x1156: 0x003f, 0x1157: 0x04bf,\n\t0x1158: 0x04c3, 0x1159: 0x1b5c,\n\t0x1160: 0x8132, 0x1161: 0x8132, 0x1162: 0x8132, 0x1163: 0x8132,\n\t0x1164: 0x8132, 0x1165: 0x8132, 0x1166: 0x8132, 0x1167: 0x812d, 0x1168: 0x812d, 0x1169: 0x812d,\n\t0x116a: 0x812d, 0x116b: 0x812d, 0x116c: 0x812d, 0x116d: 0x812d, 0x116e: 0x8132, 0x116f: 0x8132,\n\t0x1170: 0x1873, 0x1171: 0x0443, 0x1172: 0x043f, 0x1173: 0x007f, 0x1174: 0x007f, 0x1175: 0x0011,\n\t0x1176: 0x0013, 0x1177: 0x00b7, 0x1178: 0x00bb, 0x1179: 0x04b7, 0x117a: 0x04bb, 0x117b: 0x04ab,\n\t0x117c: 0x04af, 0x117d: 0x0493, 0x117e: 0x0497, 0x117f: 0x048b,\n\t// Block 0x46, offset 0x1180\n\t0x1180: 0x048f, 0x1181: 0x049b, 0x1182: 0x049f, 0x1183: 0x04a3, 0x1184: 0x04a7,\n\t0x1187: 0x0077, 0x1188: 0x007b, 0x1189: 0x4269, 0x118a: 0x4269, 0x118b: 0x4269,\n\t0x118c: 0x4269, 0x118d: 0x007f, 0x118e: 0x007f, 0x118f: 0x007f, 0x1190: 0x0019, 0x1191: 0x0483,\n\t0x1192: 0x001d, 0x1194: 0x0037, 0x1195: 0x0035, 0x1196: 0x003f, 0x1197: 0x0003,\n\t0x1198: 0x0443, 0x1199: 0x0011, 0x119a: 0x0013, 0x119b: 0x00b7, 0x119c: 0x00bb, 0x119d: 0x04b7,\n\t0x119e: 0x04bb, 0x119f: 0x0007, 0x11a0: 0x000d, 0x11a1: 0x0015, 0x11a2: 0x0017, 0x11a3: 0x001b,\n\t0x11a4: 0x0039, 0x11a5: 0x003d, 0x11a6: 0x003b, 0x11a8: 0x0079, 0x11a9: 0x0009,\n\t0x11aa: 0x000b, 0x11ab: 0x0041,\n\t0x11b0: 0x42aa, 0x11b1: 0x442c, 0x11b2: 0x42af, 0x11b4: 0x42b4,\n\t0x11b6: 0x42b9, 0x11b7: 0x4432, 0x11b8: 0x42be, 0x11b9: 0x4438, 0x11ba: 0x42c3, 0x11bb: 0x443e,\n\t0x11bc: 0x42c8, 0x11bd: 0x4444, 0x11be: 0x42cd, 0x11bf: 0x444a,\n\t// Block 0x47, offset 0x11c0\n\t0x11c0: 0x0236, 0x11c1: 0x440e, 0x11c2: 0x440e, 0x11c3: 0x4414, 0x11c4: 0x4414, 0x11c5: 0x4456,\n\t0x11c6: 0x4456, 0x11c7: 0x441a, 0x11c8: 0x441a, 0x11c9: 0x4462, 0x11ca: 0x4462, 0x11cb: 0x4462,\n\t0x11cc: 0x4462, 0x11cd: 0x0239, 0x11ce: 0x0239, 0x11cf: 0x023c, 0x11d0: 0x023c, 0x11d1: 0x023c,\n\t0x11d2: 0x023c, 0x11d3: 0x023f, 0x11d4: 0x023f, 0x11d5: 0x0242, 0x11d6: 0x0242, 0x11d7: 0x0242,\n\t0x11d8: 0x0242, 0x11d9: 0x0245, 0x11da: 0x0245, 0x11db: 0x0245, 0x11dc: 0x0245, 0x11dd: 0x0248,\n\t0x11de: 0x0248, 0x11df: 0x0248, 0x11e0: 0x0248, 0x11e1: 0x024b, 0x11e2: 0x024b, 0x11e3: 0x024b,\n\t0x11e4: 0x024b, 0x11e5: 0x024e, 0x11e6: 0x024e, 0x11e7: 0x024e, 0x11e8: 0x024e, 0x11e9: 0x0251,\n\t0x11ea: 0x0251, 0x11eb: 0x0254, 0x11ec: 0x0254, 0x11ed: 0x0257, 0x11ee: 0x0257, 0x11ef: 0x025a,\n\t0x11f0: 0x025a, 0x11f1: 0x025d, 0x11f2: 0x025d, 0x11f3: 0x025d, 0x11f4: 0x025d, 0x11f5: 0x0260,\n\t0x11f6: 0x0260, 0x11f7: 0x0260, 0x11f8: 0x0260, 0x11f9: 0x0263, 0x11fa: 0x0263, 0x11fb: 0x0263,\n\t0x11fc: 0x0263, 0x11fd: 0x0266, 0x11fe: 0x0266, 0x11ff: 0x0266,\n\t// Block 0x48, offset 0x1200\n\t0x1200: 0x0266, 0x1201: 0x0269, 0x1202: 0x0269, 0x1203: 0x0269, 0x1204: 0x0269, 0x1205: 0x026c,\n\t0x1206: 0x026c, 0x1207: 0x026c, 0x1208: 0x026c, 0x1209: 0x026f, 0x120a: 0x026f, 0x120b: 0x026f,\n\t0x120c: 0x026f, 0x120d: 0x0272, 0x120e: 0x0272, 0x120f: 0x0272, 0x1210: 0x0272, 0x1211: 0x0275,\n\t0x1212: 0x0275, 0x1213: 0x0275, 0x1214: 0x0275, 0x1215: 0x0278, 0x1216: 0x0278, 0x1217: 0x0278,\n\t0x1218: 0x0278, 0x1219: 0x027b, 0x121a: 0x027b, 0x121b: 0x027b, 0x121c: 0x027b, 0x121d: 0x027e,\n\t0x121e: 0x027e, 0x121f: 0x027e, 0x1220: 0x027e, 0x1221: 0x0281, 0x1222: 0x0281, 0x1223: 0x0281,\n\t0x1224: 0x0281, 0x1225: 0x0284, 0x1226: 0x0284, 0x1227: 0x0284, 0x1228: 0x0284, 0x1229: 0x0287,\n\t0x122a: 0x0287, 0x122b: 0x0287, 0x122c: 0x0287, 0x122d: 0x028a, 0x122e: 0x028a, 0x122f: 0x028d,\n\t0x1230: 0x028d, 0x1231: 0x0290, 0x1232: 0x0290, 0x1233: 0x0290, 0x1234: 0x0290, 0x1235: 0x2e00,\n\t0x1236: 0x2e00, 0x1237: 0x2e08, 0x1238: 0x2e08, 0x1239: 0x2e10, 0x123a: 0x2e10, 0x123b: 0x1f82,\n\t0x123c: 0x1f82,\n\t// Block 0x49, offset 0x1240\n\t0x1240: 0x0081, 0x1241: 0x0083, 0x1242: 0x0085, 0x1243: 0x0087, 0x1244: 0x0089, 0x1245: 0x008b,\n\t0x1246: 0x008d, 0x1247: 0x008f, 0x1248: 0x0091, 0x1249: 0x0093, 0x124a: 0x0095, 0x124b: 0x0097,\n\t0x124c: 0x0099, 0x124d: 0x009b, 0x124e: 0x009d, 0x124f: 0x009f, 0x1250: 0x00a1, 0x1251: 0x00a3,\n\t0x1252: 0x00a5, 0x1253: 0x00a7, 0x1254: 0x00a9, 0x1255: 0x00ab, 0x1256: 0x00ad, 0x1257: 0x00af,\n\t0x1258: 0x00b1, 0x1259: 0x00b3, 0x125a: 0x00b5, 0x125b: 0x00b7, 0x125c: 0x00b9, 0x125d: 0x00bb,\n\t0x125e: 0x00bd, 0x125f: 0x0477, 0x1260: 0x047b, 0x1261: 0x0487, 0x1262: 0x049b, 0x1263: 0x049f,\n\t0x1264: 0x0483, 0x1265: 0x05ab, 0x1266: 0x05a3, 0x1267: 0x04c7, 0x1268: 0x04cf, 0x1269: 0x04d7,\n\t0x126a: 0x04df, 0x126b: 0x04e7, 0x126c: 0x056b, 0x126d: 0x0573, 0x126e: 0x057b, 0x126f: 0x051f,\n\t0x1270: 0x05af, 0x1271: 0x04cb, 0x1272: 0x04d3, 0x1273: 0x04db, 0x1274: 0x04e3, 0x1275: 0x04eb,\n\t0x1276: 0x04ef, 0x1277: 0x04f3, 0x1278: 0x04f7, 0x1279: 0x04fb, 0x127a: 0x04ff, 0x127b: 0x0503,\n\t0x127c: 0x0507, 0x127d: 0x050b, 0x127e: 0x050f, 0x127f: 0x0513,\n\t// Block 0x4a, offset 0x1280\n\t0x1280: 0x0517, 0x1281: 0x051b, 0x1282: 0x0523, 0x1283: 0x0527, 0x1284: 0x052b, 0x1285: 0x052f,\n\t0x1286: 0x0533, 0x1287: 0x0537, 0x1288: 0x053b, 0x1289: 0x053f, 0x128a: 0x0543, 0x128b: 0x0547,\n\t0x128c: 0x054b, 0x128d: 0x054f, 0x128e: 0x0553, 0x128f: 0x0557, 0x1290: 0x055b, 0x1291: 0x055f,\n\t0x1292: 0x0563, 0x1293: 0x0567, 0x1294: 0x056f, 0x1295: 0x0577, 0x1296: 0x057f, 0x1297: 0x0583,\n\t0x1298: 0x0587, 0x1299: 0x058b, 0x129a: 0x058f, 0x129b: 0x0593, 0x129c: 0x0597, 0x129d: 0x05a7,\n\t0x129e: 0x4a78, 0x129f: 0x4a7e, 0x12a0: 0x03c3, 0x12a1: 0x0313, 0x12a2: 0x0317, 0x12a3: 0x4a3b,\n\t0x12a4: 0x031b, 0x12a5: 0x4a41, 0x12a6: 0x4a47, 0x12a7: 0x031f, 0x12a8: 0x0323, 0x12a9: 0x0327,\n\t0x12aa: 0x4a4d, 0x12ab: 0x4a53, 0x12ac: 0x4a59, 0x12ad: 0x4a5f, 0x12ae: 0x4a65, 0x12af: 0x4a6b,\n\t0x12b0: 0x0367, 0x12b1: 0x032b, 0x12b2: 0x032f, 0x12b3: 0x0333, 0x12b4: 0x037b, 0x12b5: 0x0337,\n\t0x12b6: 0x033b, 0x12b7: 0x033f, 0x12b8: 0x0343, 0x12b9: 0x0347, 0x12ba: 0x034b, 0x12bb: 0x034f,\n\t0x12bc: 0x0353, 0x12bd: 0x0357, 0x12be: 0x035b,\n\t// Block 0x4b, offset 0x12c0\n\t0x12c2: 0x49bd, 0x12c3: 0x49c3, 0x12c4: 0x49c9, 0x12c5: 0x49cf,\n\t0x12c6: 0x49d5, 0x12c7: 0x49db, 0x12ca: 0x49e1, 0x12cb: 0x49e7,\n\t0x12cc: 0x49ed, 0x12cd: 0x49f3, 0x12ce: 0x49f9, 0x12cf: 0x49ff,\n\t0x12d2: 0x4a05, 0x12d3: 0x4a0b, 0x12d4: 0x4a11, 0x12d5: 0x4a17, 0x12d6: 0x4a1d, 0x12d7: 0x4a23,\n\t0x12da: 0x4a29, 0x12db: 0x4a2f, 0x12dc: 0x4a35,\n\t0x12e0: 0x00bf, 0x12e1: 0x00c2, 0x12e2: 0x00cb, 0x12e3: 0x4264,\n\t0x12e4: 0x00c8, 0x12e5: 0x00c5, 0x12e6: 0x0447, 0x12e8: 0x046b, 0x12e9: 0x044b,\n\t0x12ea: 0x044f, 0x12eb: 0x0453, 0x12ec: 0x0457, 0x12ed: 0x046f, 0x12ee: 0x0473,\n\t// Block 0x4c, offset 0x1300\n\t0x1300: 0x0063, 0x1301: 0x0065, 0x1302: 0x0067, 0x1303: 0x0069, 0x1304: 0x006b, 0x1305: 0x006d,\n\t0x1306: 0x006f, 0x1307: 0x0071, 0x1308: 0x0073, 0x1309: 0x0075, 0x130a: 0x0083, 0x130b: 0x0085,\n\t0x130c: 0x0087, 0x130d: 0x0089, 0x130e: 0x008b, 0x130f: 0x008d, 0x1310: 0x008f, 0x1311: 0x0091,\n\t0x1312: 0x0093, 0x1313: 0x0095, 0x1314: 0x0097, 0x1315: 0x0099, 0x1316: 0x009b, 0x1317: 0x009d,\n\t0x1318: 0x009f, 0x1319: 0x00a1, 0x131a: 0x00a3, 0x131b: 0x00a5, 0x131c: 0x00a7, 0x131d: 0x00a9,\n\t0x131e: 0x00ab, 0x131f: 0x00ad, 0x1320: 0x00af, 0x1321: 0x00b1, 0x1322: 0x00b3, 0x1323: 0x00b5,\n\t0x1324: 0x00dd, 0x1325: 0x00f2, 0x1328: 0x0173, 0x1329: 0x0176,\n\t0x132a: 0x0179, 0x132b: 0x017c, 0x132c: 0x017f, 0x132d: 0x0182, 0x132e: 0x0185, 0x132f: 0x0188,\n\t0x1330: 0x018b, 0x1331: 0x018e, 0x1332: 0x0191, 0x1333: 0x0194, 0x1334: 0x0197, 0x1335: 0x019a,\n\t0x1336: 0x019d, 0x1337: 0x01a0, 0x1338: 0x01a3, 0x1339: 0x0188, 0x133a: 0x01a6, 0x133b: 0x01a9,\n\t0x133c: 0x01ac, 0x133d: 0x01af, 0x133e: 0x01b2, 0x133f: 0x01b5,\n\t// Block 0x4d, offset 0x1340\n\t0x1340: 0x01fd, 0x1341: 0x0200, 0x1342: 0x0203, 0x1343: 0x045b, 0x1344: 0x01c7, 0x1345: 0x01d0,\n\t0x1346: 0x01d6, 0x1347: 0x01fa, 0x1348: 0x01eb, 0x1349: 0x01e8, 0x134a: 0x0206, 0x134b: 0x0209,\n\t0x134e: 0x0021, 0x134f: 0x0023, 0x1350: 0x0025, 0x1351: 0x0027,\n\t0x1352: 0x0029, 0x1353: 0x002b, 0x1354: 0x002d, 0x1355: 0x002f, 0x1356: 0x0031, 0x1357: 0x0033,\n\t0x1358: 0x0021, 0x1359: 0x0023, 0x135a: 0x0025, 0x135b: 0x0027, 0x135c: 0x0029, 0x135d: 0x002b,\n\t0x135e: 0x002d, 0x135f: 0x002f, 0x1360: 0x0031, 0x1361: 0x0033, 0x1362: 0x0021, 0x1363: 0x0023,\n\t0x1364: 0x0025, 0x1365: 0x0027, 0x1366: 0x0029, 0x1367: 0x002b, 0x1368: 0x002d, 0x1369: 0x002f,\n\t0x136a: 0x0031, 0x136b: 0x0033, 0x136c: 0x0021, 0x136d: 0x0023, 0x136e: 0x0025, 0x136f: 0x0027,\n\t0x1370: 0x0029, 0x1371: 0x002b, 0x1372: 0x002d, 0x1373: 0x002f, 0x1374: 0x0031, 0x1375: 0x0033,\n\t0x1376: 0x0021, 0x1377: 0x0023, 0x1378: 0x0025, 0x1379: 0x0027, 0x137a: 0x0029, 0x137b: 0x002b,\n\t0x137c: 0x002d, 0x137d: 0x002f, 0x137e: 0x0031, 0x137f: 0x0033,\n\t// Block 0x4e, offset 0x1380\n\t0x1380: 0x0239, 0x1381: 0x023c, 0x1382: 0x0248, 0x1383: 0x0251, 0x1385: 0x028a,\n\t0x1386: 0x025a, 0x1387: 0x024b, 0x1388: 0x0269, 0x1389: 0x0290, 0x138a: 0x027b, 0x138b: 0x027e,\n\t0x138c: 0x0281, 0x138d: 0x0284, 0x138e: 0x025d, 0x138f: 0x026f, 0x1390: 0x0275, 0x1391: 0x0263,\n\t0x1392: 0x0278, 0x1393: 0x0257, 0x1394: 0x0260, 0x1395: 0x0242, 0x1396: 0x0245, 0x1397: 0x024e,\n\t0x1398: 0x0254, 0x1399: 0x0266, 0x139a: 0x026c, 0x139b: 0x0272, 0x139c: 0x0293, 0x139d: 0x02e4,\n\t0x139e: 0x02cc, 0x139f: 0x0296, 0x13a1: 0x023c, 0x13a2: 0x0248,\n\t0x13a4: 0x0287, 0x13a7: 0x024b, 0x13a9: 0x0290,\n\t0x13aa: 0x027b, 0x13ab: 0x027e, 0x13ac: 0x0281, 0x13ad: 0x0284, 0x13ae: 0x025d, 0x13af: 0x026f,\n\t0x13b0: 0x0275, 0x13b1: 0x0263, 0x13b2: 0x0278, 0x13b4: 0x0260, 0x13b5: 0x0242,\n\t0x13b6: 0x0245, 0x13b7: 0x024e, 0x13b9: 0x0266, 0x13bb: 0x0272,\n\t// Block 0x4f, offset 0x13c0\n\t0x13c2: 0x0248,\n\t0x13c7: 0x024b, 0x13c9: 0x0290, 0x13cb: 0x027e,\n\t0x13cd: 0x0284, 0x13ce: 0x025d, 0x13cf: 0x026f, 0x13d1: 0x0263,\n\t0x13d2: 0x0278, 0x13d4: 0x0260, 0x13d7: 0x024e,\n\t0x13d9: 0x0266, 0x13db: 0x0272, 0x13dd: 0x02e4,\n\t0x13df: 0x0296, 0x13e1: 0x023c, 0x13e2: 0x0248,\n\t0x13e4: 0x0287, 0x13e7: 0x024b, 0x13e8: 0x0269, 0x13e9: 0x0290,\n\t0x13ea: 0x027b, 0x13ec: 0x0281, 0x13ed: 0x0284, 0x13ee: 0x025d, 0x13ef: 0x026f,\n\t0x13f0: 0x0275, 0x13f1: 0x0263, 0x13f2: 0x0278, 0x13f4: 0x0260, 0x13f5: 0x0242,\n\t0x13f6: 0x0245, 0x13f7: 0x024e, 0x13f9: 0x0266, 0x13fa: 0x026c, 0x13fb: 0x0272,\n\t0x13fc: 0x0293, 0x13fe: 0x02cc,\n\t// Block 0x50, offset 0x1400\n\t0x1400: 0x0239, 0x1401: 0x023c, 0x1402: 0x0248, 0x1403: 0x0251, 0x1404: 0x0287, 0x1405: 0x028a,\n\t0x1406: 0x025a, 0x1407: 0x024b, 0x1408: 0x0269, 0x1409: 0x0290, 0x140b: 0x027e,\n\t0x140c: 0x0281, 0x140d: 0x0284, 0x140e: 0x025d, 0x140f: 0x026f, 0x1410: 0x0275, 0x1411: 0x0263,\n\t0x1412: 0x0278, 0x1413: 0x0257, 0x1414: 0x0260, 0x1415: 0x0242, 0x1416: 0x0245, 0x1417: 0x024e,\n\t0x1418: 0x0254, 0x1419: 0x0266, 0x141a: 0x026c, 0x141b: 0x0272,\n\t0x1421: 0x023c, 0x1422: 0x0248, 0x1423: 0x0251,\n\t0x1425: 0x028a, 0x1426: 0x025a, 0x1427: 0x024b, 0x1428: 0x0269, 0x1429: 0x0290,\n\t0x142b: 0x027e, 0x142c: 0x0281, 0x142d: 0x0284, 0x142e: 0x025d, 0x142f: 0x026f,\n\t0x1430: 0x0275, 0x1431: 0x0263, 0x1432: 0x0278, 0x1433: 0x0257, 0x1434: 0x0260, 0x1435: 0x0242,\n\t0x1436: 0x0245, 0x1437: 0x024e, 0x1438: 0x0254, 0x1439: 0x0266, 0x143a: 0x026c, 0x143b: 0x0272,\n\t// Block 0x51, offset 0x1440\n\t0x1440: 0x1879, 0x1441: 0x1876, 0x1442: 0x187c, 0x1443: 0x18a0, 0x1444: 0x18c4, 0x1445: 0x18e8,\n\t0x1446: 0x190c, 0x1447: 0x1915, 0x1448: 0x191b, 0x1449: 0x1921, 0x144a: 0x1927,\n\t0x1450: 0x1a8c, 0x1451: 0x1a90,\n\t0x1452: 0x1a94, 0x1453: 0x1a98, 0x1454: 0x1a9c, 0x1455: 0x1aa0, 0x1456: 0x1aa4, 0x1457: 0x1aa8,\n\t0x1458: 0x1aac, 0x1459: 0x1ab0, 0x145a: 0x1ab4, 0x145b: 0x1ab8, 0x145c: 0x1abc, 0x145d: 0x1ac0,\n\t0x145e: 0x1ac4, 0x145f: 0x1ac8, 0x1460: 0x1acc, 0x1461: 0x1ad0, 0x1462: 0x1ad4, 0x1463: 0x1ad8,\n\t0x1464: 0x1adc, 0x1465: 0x1ae0, 0x1466: 0x1ae4, 0x1467: 0x1ae8, 0x1468: 0x1aec, 0x1469: 0x1af0,\n\t0x146a: 0x271e, 0x146b: 0x0047, 0x146c: 0x0065, 0x146d: 0x193c, 0x146e: 0x19b1,\n\t0x1470: 0x0043, 0x1471: 0x0045, 0x1472: 0x0047, 0x1473: 0x0049, 0x1474: 0x004b, 0x1475: 0x004d,\n\t0x1476: 0x004f, 0x1477: 0x0051, 0x1478: 0x0053, 0x1479: 0x0055, 0x147a: 0x0057, 0x147b: 0x0059,\n\t0x147c: 0x005b, 0x147d: 0x005d, 0x147e: 0x005f, 0x147f: 0x0061,\n\t// Block 0x52, offset 0x1480\n\t0x1480: 0x26ad, 0x1481: 0x26c2, 0x1482: 0x0503,\n\t0x1490: 0x0c0f, 0x1491: 0x0a47,\n\t0x1492: 0x08d3, 0x1493: 0x45c4, 0x1494: 0x071b, 0x1495: 0x09ef, 0x1496: 0x132f, 0x1497: 0x09ff,\n\t0x1498: 0x0727, 0x1499: 0x0cd7, 0x149a: 0x0eaf, 0x149b: 0x0caf, 0x149c: 0x0827, 0x149d: 0x0b6b,\n\t0x149e: 0x07bf, 0x149f: 0x0cb7, 0x14a0: 0x0813, 0x14a1: 0x1117, 0x14a2: 0x0f83, 0x14a3: 0x138b,\n\t0x14a4: 0x09d3, 0x14a5: 0x090b, 0x14a6: 0x0e63, 0x14a7: 0x0c1b, 0x14a8: 0x0c47, 0x14a9: 0x06bf,\n\t0x14aa: 0x06cb, 0x14ab: 0x140b, 0x14ac: 0x0adb, 0x14ad: 0x06e7, 0x14ae: 0x08ef, 0x14af: 0x0c3b,\n\t0x14b0: 0x13b3, 0x14b1: 0x0c13, 0x14b2: 0x106f, 0x14b3: 0x10ab, 0x14b4: 0x08f7, 0x14b5: 0x0e43,\n\t0x14b6: 0x0d0b, 0x14b7: 0x0d07, 0x14b8: 0x0f97, 0x14b9: 0x082b, 0x14ba: 0x0957, 0x14bb: 0x1443,\n\t// Block 0x53, offset 0x14c0\n\t0x14c0: 0x06fb, 0x14c1: 0x06f3, 0x14c2: 0x0703, 0x14c3: 0x1647, 0x14c4: 0x0747, 0x14c5: 0x0757,\n\t0x14c6: 0x075b, 0x14c7: 0x0763, 0x14c8: 0x076b, 0x14c9: 0x076f, 0x14ca: 0x077b, 0x14cb: 0x0773,\n\t0x14cc: 0x05b3, 0x14cd: 0x165b, 0x14ce: 0x078f, 0x14cf: 0x0793, 0x14d0: 0x0797, 0x14d1: 0x07b3,\n\t0x14d2: 0x164c, 0x14d3: 0x05b7, 0x14d4: 0x079f, 0x14d5: 0x07bf, 0x14d6: 0x1656, 0x14d7: 0x07cf,\n\t0x14d8: 0x07d7, 0x14d9: 0x0737, 0x14da: 0x07df, 0x14db: 0x07e3, 0x14dc: 0x1831, 0x14dd: 0x07ff,\n\t0x14de: 0x0807, 0x14df: 0x05bf, 0x14e0: 0x081f, 0x14e1: 0x0823, 0x14e2: 0x082b, 0x14e3: 0x082f,\n\t0x14e4: 0x05c3, 0x14e5: 0x0847, 0x14e6: 0x084b, 0x14e7: 0x0857, 0x14e8: 0x0863, 0x14e9: 0x0867,\n\t0x14ea: 0x086b, 0x14eb: 0x0873, 0x14ec: 0x0893, 0x14ed: 0x0897, 0x14ee: 0x089f, 0x14ef: 0x08af,\n\t0x14f0: 0x08b7, 0x14f1: 0x08bb, 0x14f2: 0x08bb, 0x14f3: 0x08bb, 0x14f4: 0x166a, 0x14f5: 0x0e93,\n\t0x14f6: 0x08cf, 0x14f7: 0x08d7, 0x14f8: 0x166f, 0x14f9: 0x08e3, 0x14fa: 0x08eb, 0x14fb: 0x08f3,\n\t0x14fc: 0x091b, 0x14fd: 0x0907, 0x14fe: 0x0913, 0x14ff: 0x0917,\n\t// Block 0x54, offset 0x1500\n\t0x1500: 0x091f, 0x1501: 0x0927, 0x1502: 0x092b, 0x1503: 0x0933, 0x1504: 0x093b, 0x1505: 0x093f,\n\t0x1506: 0x093f, 0x1507: 0x0947, 0x1508: 0x094f, 0x1509: 0x0953, 0x150a: 0x095f, 0x150b: 0x0983,\n\t0x150c: 0x0967, 0x150d: 0x0987, 0x150e: 0x096b, 0x150f: 0x0973, 0x1510: 0x080b, 0x1511: 0x09cf,\n\t0x1512: 0x0997, 0x1513: 0x099b, 0x1514: 0x099f, 0x1515: 0x0993, 0x1516: 0x09a7, 0x1517: 0x09a3,\n\t0x1518: 0x09bb, 0x1519: 0x1674, 0x151a: 0x09d7, 0x151b: 0x09db, 0x151c: 0x09e3, 0x151d: 0x09ef,\n\t0x151e: 0x09f7, 0x151f: 0x0a13, 0x1520: 0x1679, 0x1521: 0x167e, 0x1522: 0x0a1f, 0x1523: 0x0a23,\n\t0x1524: 0x0a27, 0x1525: 0x0a1b, 0x1526: 0x0a2f, 0x1527: 0x05c7, 0x1528: 0x05cb, 0x1529: 0x0a37,\n\t0x152a: 0x0a3f, 0x152b: 0x0a3f, 0x152c: 0x1683, 0x152d: 0x0a5b, 0x152e: 0x0a5f, 0x152f: 0x0a63,\n\t0x1530: 0x0a6b, 0x1531: 0x1688, 0x1532: 0x0a73, 0x1533: 0x0a77, 0x1534: 0x0b4f, 0x1535: 0x0a7f,\n\t0x1536: 0x05cf, 0x1537: 0x0a8b, 0x1538: 0x0a9b, 0x1539: 0x0aa7, 0x153a: 0x0aa3, 0x153b: 0x1692,\n\t0x153c: 0x0aaf, 0x153d: 0x1697, 0x153e: 0x0abb, 0x153f: 0x0ab7,\n\t// Block 0x55, offset 0x1540\n\t0x1540: 0x0abf, 0x1541: 0x0acf, 0x1542: 0x0ad3, 0x1543: 0x05d3, 0x1544: 0x0ae3, 0x1545: 0x0aeb,\n\t0x1546: 0x0aef, 0x1547: 0x0af3, 0x1548: 0x05d7, 0x1549: 0x169c, 0x154a: 0x05db, 0x154b: 0x0b0f,\n\t0x154c: 0x0b13, 0x154d: 0x0b17, 0x154e: 0x0b1f, 0x154f: 0x1863, 0x1550: 0x0b37, 0x1551: 0x16a6,\n\t0x1552: 0x16a6, 0x1553: 0x11d7, 0x1554: 0x0b47, 0x1555: 0x0b47, 0x1556: 0x05df, 0x1557: 0x16c9,\n\t0x1558: 0x179b, 0x1559: 0x0b57, 0x155a: 0x0b5f, 0x155b: 0x05e3, 0x155c: 0x0b73, 0x155d: 0x0b83,\n\t0x155e: 0x0b87, 0x155f: 0x0b8f, 0x1560: 0x0b9f, 0x1561: 0x05eb, 0x1562: 0x05e7, 0x1563: 0x0ba3,\n\t0x1564: 0x16ab, 0x1565: 0x0ba7, 0x1566: 0x0bbb, 0x1567: 0x0bbf, 0x1568: 0x0bc3, 0x1569: 0x0bbf,\n\t0x156a: 0x0bcf, 0x156b: 0x0bd3, 0x156c: 0x0be3, 0x156d: 0x0bdb, 0x156e: 0x0bdf, 0x156f: 0x0be7,\n\t0x1570: 0x0beb, 0x1571: 0x0bef, 0x1572: 0x0bfb, 0x1573: 0x0bff, 0x1574: 0x0c17, 0x1575: 0x0c1f,\n\t0x1576: 0x0c2f, 0x1577: 0x0c43, 0x1578: 0x16ba, 0x1579: 0x0c3f, 0x157a: 0x0c33, 0x157b: 0x0c4b,\n\t0x157c: 0x0c53, 0x157d: 0x0c67, 0x157e: 0x16bf, 0x157f: 0x0c6f,\n\t// Block 0x56, offset 0x1580\n\t0x1580: 0x0c63, 0x1581: 0x0c5b, 0x1582: 0x05ef, 0x1583: 0x0c77, 0x1584: 0x0c7f, 0x1585: 0x0c87,\n\t0x1586: 0x0c7b, 0x1587: 0x05f3, 0x1588: 0x0c97, 0x1589: 0x0c9f, 0x158a: 0x16c4, 0x158b: 0x0ccb,\n\t0x158c: 0x0cff, 0x158d: 0x0cdb, 0x158e: 0x05ff, 0x158f: 0x0ce7, 0x1590: 0x05fb, 0x1591: 0x05f7,\n\t0x1592: 0x07c3, 0x1593: 0x07c7, 0x1594: 0x0d03, 0x1595: 0x0ceb, 0x1596: 0x11ab, 0x1597: 0x0663,\n\t0x1598: 0x0d0f, 0x1599: 0x0d13, 0x159a: 0x0d17, 0x159b: 0x0d2b, 0x159c: 0x0d23, 0x159d: 0x16dd,\n\t0x159e: 0x0603, 0x159f: 0x0d3f, 0x15a0: 0x0d33, 0x15a1: 0x0d4f, 0x15a2: 0x0d57, 0x15a3: 0x16e7,\n\t0x15a4: 0x0d5b, 0x15a5: 0x0d47, 0x15a6: 0x0d63, 0x15a7: 0x0607, 0x15a8: 0x0d67, 0x15a9: 0x0d6b,\n\t0x15aa: 0x0d6f, 0x15ab: 0x0d7b, 0x15ac: 0x16ec, 0x15ad: 0x0d83, 0x15ae: 0x060b, 0x15af: 0x0d8f,\n\t0x15b0: 0x16f1, 0x15b1: 0x0d93, 0x15b2: 0x060f, 0x15b3: 0x0d9f, 0x15b4: 0x0dab, 0x15b5: 0x0db7,\n\t0x15b6: 0x0dbb, 0x15b7: 0x16f6, 0x15b8: 0x168d, 0x15b9: 0x16fb, 0x15ba: 0x0ddb, 0x15bb: 0x1700,\n\t0x15bc: 0x0de7, 0x15bd: 0x0def, 0x15be: 0x0ddf, 0x15bf: 0x0dfb,\n\t// Block 0x57, offset 0x15c0\n\t0x15c0: 0x0e0b, 0x15c1: 0x0e1b, 0x15c2: 0x0e0f, 0x15c3: 0x0e13, 0x15c4: 0x0e1f, 0x15c5: 0x0e23,\n\t0x15c6: 0x1705, 0x15c7: 0x0e07, 0x15c8: 0x0e3b, 0x15c9: 0x0e3f, 0x15ca: 0x0613, 0x15cb: 0x0e53,\n\t0x15cc: 0x0e4f, 0x15cd: 0x170a, 0x15ce: 0x0e33, 0x15cf: 0x0e6f, 0x15d0: 0x170f, 0x15d1: 0x1714,\n\t0x15d2: 0x0e73, 0x15d3: 0x0e87, 0x15d4: 0x0e83, 0x15d5: 0x0e7f, 0x15d6: 0x0617, 0x15d7: 0x0e8b,\n\t0x15d8: 0x0e9b, 0x15d9: 0x0e97, 0x15da: 0x0ea3, 0x15db: 0x1651, 0x15dc: 0x0eb3, 0x15dd: 0x1719,\n\t0x15de: 0x0ebf, 0x15df: 0x1723, 0x15e0: 0x0ed3, 0x15e1: 0x0edf, 0x15e2: 0x0ef3, 0x15e3: 0x1728,\n\t0x15e4: 0x0f07, 0x15e5: 0x0f0b, 0x15e6: 0x172d, 0x15e7: 0x1732, 0x15e8: 0x0f27, 0x15e9: 0x0f37,\n\t0x15ea: 0x061b, 0x15eb: 0x0f3b, 0x15ec: 0x061f, 0x15ed: 0x061f, 0x15ee: 0x0f53, 0x15ef: 0x0f57,\n\t0x15f0: 0x0f5f, 0x15f1: 0x0f63, 0x15f2: 0x0f6f, 0x15f3: 0x0623, 0x15f4: 0x0f87, 0x15f5: 0x1737,\n\t0x15f6: 0x0fa3, 0x15f7: 0x173c, 0x15f8: 0x0faf, 0x15f9: 0x16a1, 0x15fa: 0x0fbf, 0x15fb: 0x1741,\n\t0x15fc: 0x1746, 0x15fd: 0x174b, 0x15fe: 0x0627, 0x15ff: 0x062b,\n\t// Block 0x58, offset 0x1600\n\t0x1600: 0x0ff7, 0x1601: 0x1755, 0x1602: 0x1750, 0x1603: 0x175a, 0x1604: 0x175f, 0x1605: 0x0fff,\n\t0x1606: 0x1003, 0x1607: 0x1003, 0x1608: 0x100b, 0x1609: 0x0633, 0x160a: 0x100f, 0x160b: 0x0637,\n\t0x160c: 0x063b, 0x160d: 0x1769, 0x160e: 0x1023, 0x160f: 0x102b, 0x1610: 0x1037, 0x1611: 0x063f,\n\t0x1612: 0x176e, 0x1613: 0x105b, 0x1614: 0x1773, 0x1615: 0x1778, 0x1616: 0x107b, 0x1617: 0x1093,\n\t0x1618: 0x0643, 0x1619: 0x109b, 0x161a: 0x109f, 0x161b: 0x10a3, 0x161c: 0x177d, 0x161d: 0x1782,\n\t0x161e: 0x1782, 0x161f: 0x10bb, 0x1620: 0x0647, 0x1621: 0x1787, 0x1622: 0x10cf, 0x1623: 0x10d3,\n\t0x1624: 0x064b, 0x1625: 0x178c, 0x1626: 0x10ef, 0x1627: 0x064f, 0x1628: 0x10ff, 0x1629: 0x10f7,\n\t0x162a: 0x1107, 0x162b: 0x1796, 0x162c: 0x111f, 0x162d: 0x0653, 0x162e: 0x112b, 0x162f: 0x1133,\n\t0x1630: 0x1143, 0x1631: 0x0657, 0x1632: 0x17a0, 0x1633: 0x17a5, 0x1634: 0x065b, 0x1635: 0x17aa,\n\t0x1636: 0x115b, 0x1637: 0x17af, 0x1638: 0x1167, 0x1639: 0x1173, 0x163a: 0x117b, 0x163b: 0x17b4,\n\t0x163c: 0x17b9, 0x163d: 0x118f, 0x163e: 0x17be, 0x163f: 0x1197,\n\t// Block 0x59, offset 0x1640\n\t0x1640: 0x16ce, 0x1641: 0x065f, 0x1642: 0x11af, 0x1643: 0x11b3, 0x1644: 0x0667, 0x1645: 0x11b7,\n\t0x1646: 0x0a33, 0x1647: 0x17c3, 0x1648: 0x17c8, 0x1649: 0x16d3, 0x164a: 0x16d8, 0x164b: 0x11d7,\n\t0x164c: 0x11db, 0x164d: 0x13f3, 0x164e: 0x066b, 0x164f: 0x1207, 0x1650: 0x1203, 0x1651: 0x120b,\n\t0x1652: 0x083f, 0x1653: 0x120f, 0x1654: 0x1213, 0x1655: 0x1217, 0x1656: 0x121f, 0x1657: 0x17cd,\n\t0x1658: 0x121b, 0x1659: 0x1223, 0x165a: 0x1237, 0x165b: 0x123b, 0x165c: 0x1227, 0x165d: 0x123f,\n\t0x165e: 0x1253, 0x165f: 0x1267, 0x1660: 0x1233, 0x1661: 0x1247, 0x1662: 0x124b, 0x1663: 0x124f,\n\t0x1664: 0x17d2, 0x1665: 0x17dc, 0x1666: 0x17d7, 0x1667: 0x066f, 0x1668: 0x126f, 0x1669: 0x1273,\n\t0x166a: 0x127b, 0x166b: 0x17f0, 0x166c: 0x127f, 0x166d: 0x17e1, 0x166e: 0x0673, 0x166f: 0x0677,\n\t0x1670: 0x17e6, 0x1671: 0x17eb, 0x1672: 0x067b, 0x1673: 0x129f, 0x1674: 0x12a3, 0x1675: 0x12a7,\n\t0x1676: 0x12ab, 0x1677: 0x12b7, 0x1678: 0x12b3, 0x1679: 0x12bf, 0x167a: 0x12bb, 0x167b: 0x12cb,\n\t0x167c: 0x12c3, 0x167d: 0x12c7, 0x167e: 0x12cf, 0x167f: 0x067f,\n\t// Block 0x5a, offset 0x1680\n\t0x1680: 0x12d7, 0x1681: 0x12db, 0x1682: 0x0683, 0x1683: 0x12eb, 0x1684: 0x12ef, 0x1685: 0x17f5,\n\t0x1686: 0x12fb, 0x1687: 0x12ff, 0x1688: 0x0687, 0x1689: 0x130b, 0x168a: 0x05bb, 0x168b: 0x17fa,\n\t0x168c: 0x17ff, 0x168d: 0x068b, 0x168e: 0x068f, 0x168f: 0x1337, 0x1690: 0x134f, 0x1691: 0x136b,\n\t0x1692: 0x137b, 0x1693: 0x1804, 0x1694: 0x138f, 0x1695: 0x1393, 0x1696: 0x13ab, 0x1697: 0x13b7,\n\t0x1698: 0x180e, 0x1699: 0x1660, 0x169a: 0x13c3, 0x169b: 0x13bf, 0x169c: 0x13cb, 0x169d: 0x1665,\n\t0x169e: 0x13d7, 0x169f: 0x13e3, 0x16a0: 0x1813, 0x16a1: 0x1818, 0x16a2: 0x1423, 0x16a3: 0x142f,\n\t0x16a4: 0x1437, 0x16a5: 0x181d, 0x16a6: 0x143b, 0x16a7: 0x1467, 0x16a8: 0x1473, 0x16a9: 0x1477,\n\t0x16aa: 0x146f, 0x16ab: 0x1483, 0x16ac: 0x1487, 0x16ad: 0x1822, 0x16ae: 0x1493, 0x16af: 0x0693,\n\t0x16b0: 0x149b, 0x16b1: 0x1827, 0x16b2: 0x0697, 0x16b3: 0x14d3, 0x16b4: 0x0ac3, 0x16b5: 0x14eb,\n\t0x16b6: 0x182c, 0x16b7: 0x1836, 0x16b8: 0x069b, 0x16b9: 0x069f, 0x16ba: 0x1513, 0x16bb: 0x183b,\n\t0x16bc: 0x06a3, 0x16bd: 0x1840, 0x16be: 0x152b, 0x16bf: 0x152b,\n\t// Block 0x5b, offset 0x16c0\n\t0x16c0: 0x1533, 0x16c1: 0x1845, 0x16c2: 0x154b, 0x16c3: 0x06a7, 0x16c4: 0x155b, 0x16c5: 0x1567,\n\t0x16c6: 0x156f, 0x16c7: 0x1577, 0x16c8: 0x06ab, 0x16c9: 0x184a, 0x16ca: 0x158b, 0x16cb: 0x15a7,\n\t0x16cc: 0x15b3, 0x16cd: 0x06af, 0x16ce: 0x06b3, 0x16cf: 0x15b7, 0x16d0: 0x184f, 0x16d1: 0x06b7,\n\t0x16d2: 0x1854, 0x16d3: 0x1859, 0x16d4: 0x185e, 0x16d5: 0x15db, 0x16d6: 0x06bb, 0x16d7: 0x15ef,\n\t0x16d8: 0x15f7, 0x16d9: 0x15fb, 0x16da: 0x1603, 0x16db: 0x160b, 0x16dc: 0x1613, 0x16dd: 0x1868,\n}\n\n// nfkcIndex: 22 blocks, 1408 entries, 1408 bytes\n// Block 0 is the zero block.\nvar nfkcIndex = [1408]uint8{\n\t// Block 0x0, offset 0x0\n\t// Block 0x1, offset 0x40\n\t// Block 0x2, offset 0x80\n\t// Block 0x3, offset 0xc0\n\t0xc2: 0x5a, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x5b, 0xc7: 0x04,\n\t0xc8: 0x05, 0xca: 0x5c, 0xcb: 0x5d, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09,\n\t0xd0: 0x0a, 0xd1: 0x5e, 0xd2: 0x5f, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x60,\n\t0xd8: 0x61, 0xd9: 0x0d, 0xdb: 0x62, 0xdc: 0x63, 0xdd: 0x64, 0xdf: 0x65,\n\t0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,\n\t0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a,\n\t0xf0: 0x13,\n\t// Block 0x4, offset 0x100\n\t0x120: 0x66, 0x121: 0x67, 0x123: 0x68, 0x124: 0x69, 0x125: 0x6a, 0x126: 0x6b, 0x127: 0x6c,\n\t0x128: 0x6d, 0x129: 0x6e, 0x12a: 0x6f, 0x12b: 0x70, 0x12c: 0x6b, 0x12d: 0x71, 0x12e: 0x72, 0x12f: 0x73,\n\t0x131: 0x74, 0x132: 0x75, 0x133: 0x76, 0x134: 0x77, 0x135: 0x78, 0x137: 0x79,\n\t0x138: 0x7a, 0x139: 0x7b, 0x13a: 0x7c, 0x13b: 0x7d, 0x13c: 0x7e, 0x13d: 0x7f, 0x13e: 0x80, 0x13f: 0x81,\n\t// Block 0x5, offset 0x140\n\t0x140: 0x82, 0x142: 0x83, 0x143: 0x84, 0x144: 0x85, 0x145: 0x86, 0x146: 0x87, 0x147: 0x88,\n\t0x14d: 0x89,\n\t0x15c: 0x8a, 0x15f: 0x8b,\n\t0x162: 0x8c, 0x164: 0x8d,\n\t0x168: 0x8e, 0x169: 0x8f, 0x16a: 0x90, 0x16c: 0x0e, 0x16d: 0x91, 0x16e: 0x92, 0x16f: 0x93,\n\t0x170: 0x94, 0x173: 0x95, 0x174: 0x96, 0x175: 0x0f, 0x176: 0x10, 0x177: 0x97,\n\t0x178: 0x11, 0x179: 0x12, 0x17a: 0x13, 0x17b: 0x14, 0x17c: 0x15, 0x17d: 0x16, 0x17e: 0x17, 0x17f: 0x18,\n\t// Block 0x6, offset 0x180\n\t0x180: 0x98, 0x181: 0x99, 0x182: 0x9a, 0x183: 0x9b, 0x184: 0x19, 0x185: 0x1a, 0x186: 0x9c, 0x187: 0x9d,\n\t0x188: 0x9e, 0x189: 0x1b, 0x18a: 0x1c, 0x18b: 0x9f, 0x18c: 0xa0,\n\t0x191: 0x1d, 0x192: 0x1e, 0x193: 0xa1,\n\t0x1a8: 0xa2, 0x1a9: 0xa3, 0x1ab: 0xa4,\n\t0x1b1: 0xa5, 0x1b3: 0xa6, 0x1b5: 0xa7, 0x1b7: 0xa8,\n\t0x1ba: 0xa9, 0x1bb: 0xaa, 0x1bc: 0x1f, 0x1bd: 0x20, 0x1be: 0x21, 0x1bf: 0xab,\n\t// Block 0x7, offset 0x1c0\n\t0x1c0: 0xac, 0x1c1: 0x22, 0x1c2: 0x23, 0x1c3: 0x24, 0x1c4: 0xad, 0x1c5: 0x25, 0x1c6: 0x26,\n\t0x1c8: 0x27, 0x1c9: 0x28, 0x1ca: 0x29, 0x1cb: 0x2a, 0x1cc: 0x2b, 0x1cd: 0x2c, 0x1ce: 0x2d, 0x1cf: 0x2e,\n\t// Block 0x8, offset 0x200\n\t0x219: 0xae, 0x21a: 0xaf, 0x21b: 0xb0, 0x21d: 0xb1, 0x21f: 0xb2,\n\t0x220: 0xb3, 0x223: 0xb4, 0x224: 0xb5, 0x225: 0xb6, 0x226: 0xb7, 0x227: 0xb8,\n\t0x22a: 0xb9, 0x22b: 0xba, 0x22d: 0xbb, 0x22f: 0xbc,\n\t0x230: 0xbd, 0x231: 0xbe, 0x232: 0xbf, 0x233: 0xc0, 0x234: 0xc1, 0x235: 0xc2, 0x236: 0xc3, 0x237: 0xbd,\n\t0x238: 0xbe, 0x239: 0xbf, 0x23a: 0xc0, 0x23b: 0xc1, 0x23c: 0xc2, 0x23d: 0xc3, 0x23e: 0xbd, 0x23f: 0xbe,\n\t// Block 0x9, offset 0x240\n\t0x240: 0xbf, 0x241: 0xc0, 0x242: 0xc1, 0x243: 0xc2, 0x244: 0xc3, 0x245: 0xbd, 0x246: 0xbe, 0x247: 0xbf,\n\t0x248: 0xc0, 0x249: 0xc1, 0x24a: 0xc2, 0x24b: 0xc3, 0x24c: 0xbd, 0x24d: 0xbe, 0x24e: 0xbf, 0x24f: 0xc0,\n\t0x250: 0xc1, 0x251: 0xc2, 0x252: 0xc3, 0x253: 0xbd, 0x254: 0xbe, 0x255: 0xbf, 0x256: 0xc0, 0x257: 0xc1,\n\t0x258: 0xc2, 0x259: 0xc3, 0x25a: 0xbd, 0x25b: 0xbe, 0x25c: 0xbf, 0x25d: 0xc0, 0x25e: 0xc1, 0x25f: 0xc2,\n\t0x260: 0xc3, 0x261: 0xbd, 0x262: 0xbe, 0x263: 0xbf, 0x264: 0xc0, 0x265: 0xc1, 0x266: 0xc2, 0x267: 0xc3,\n\t0x268: 0xbd, 0x269: 0xbe, 0x26a: 0xbf, 0x26b: 0xc0, 0x26c: 0xc1, 0x26d: 0xc2, 0x26e: 0xc3, 0x26f: 0xbd,\n\t0x270: 0xbe, 0x271: 0xbf, 0x272: 0xc0, 0x273: 0xc1, 0x274: 0xc2, 0x275: 0xc3, 0x276: 0xbd, 0x277: 0xbe,\n\t0x278: 0xbf, 0x279: 0xc0, 0x27a: 0xc1, 0x27b: 0xc2, 0x27c: 0xc3, 0x27d: 0xbd, 0x27e: 0xbe, 0x27f: 0xbf,\n\t// Block 0xa, offset 0x280\n\t0x280: 0xc0, 0x281: 0xc1, 0x282: 0xc2, 0x283: 0xc3, 0x284: 0xbd, 0x285: 0xbe, 0x286: 0xbf, 0x287: 0xc0,\n\t0x288: 0xc1, 0x289: 0xc2, 0x28a: 0xc3, 0x28b: 0xbd, 0x28c: 0xbe, 0x28d: 0xbf, 0x28e: 0xc0, 0x28f: 0xc1,\n\t0x290: 0xc2, 0x291: 0xc3, 0x292: 0xbd, 0x293: 0xbe, 0x294: 0xbf, 0x295: 0xc0, 0x296: 0xc1, 0x297: 0xc2,\n\t0x298: 0xc3, 0x299: 0xbd, 0x29a: 0xbe, 0x29b: 0xbf, 0x29c: 0xc0, 0x29d: 0xc1, 0x29e: 0xc2, 0x29f: 0xc3,\n\t0x2a0: 0xbd, 0x2a1: 0xbe, 0x2a2: 0xbf, 0x2a3: 0xc0, 0x2a4: 0xc1, 0x2a5: 0xc2, 0x2a6: 0xc3, 0x2a7: 0xbd,\n\t0x2a8: 0xbe, 0x2a9: 0xbf, 0x2aa: 0xc0, 0x2ab: 0xc1, 0x2ac: 0xc2, 0x2ad: 0xc3, 0x2ae: 0xbd, 0x2af: 0xbe,\n\t0x2b0: 0xbf, 0x2b1: 0xc0, 0x2b2: 0xc1, 0x2b3: 0xc2, 0x2b4: 0xc3, 0x2b5: 0xbd, 0x2b6: 0xbe, 0x2b7: 0xbf,\n\t0x2b8: 0xc0, 0x2b9: 0xc1, 0x2ba: 0xc2, 0x2bb: 0xc3, 0x2bc: 0xbd, 0x2bd: 0xbe, 0x2be: 0xbf, 0x2bf: 0xc0,\n\t// Block 0xb, offset 0x2c0\n\t0x2c0: 0xc1, 0x2c1: 0xc2, 0x2c2: 0xc3, 0x2c3: 0xbd, 0x2c4: 0xbe, 0x2c5: 0xbf, 0x2c6: 0xc0, 0x2c7: 0xc1,\n\t0x2c8: 0xc2, 0x2c9: 0xc3, 0x2ca: 0xbd, 0x2cb: 0xbe, 0x2cc: 0xbf, 0x2cd: 0xc0, 0x2ce: 0xc1, 0x2cf: 0xc2,\n\t0x2d0: 0xc3, 0x2d1: 0xbd, 0x2d2: 0xbe, 0x2d3: 0xbf, 0x2d4: 0xc0, 0x2d5: 0xc1, 0x2d6: 0xc2, 0x2d7: 0xc3,\n\t0x2d8: 0xbd, 0x2d9: 0xbe, 0x2da: 0xbf, 0x2db: 0xc0, 0x2dc: 0xc1, 0x2dd: 0xc2, 0x2de: 0xc4,\n\t// Block 0xc, offset 0x300\n\t0x324: 0x2f, 0x325: 0x30, 0x326: 0x31, 0x327: 0x32,\n\t0x328: 0x33, 0x329: 0x34, 0x32a: 0x35, 0x32b: 0x36, 0x32c: 0x37, 0x32d: 0x38, 0x32e: 0x39, 0x32f: 0x3a,\n\t0x330: 0x3b, 0x331: 0x3c, 0x332: 0x3d, 0x333: 0x3e, 0x334: 0x3f, 0x335: 0x40, 0x336: 0x41, 0x337: 0x42,\n\t0x338: 0x43, 0x339: 0x44, 0x33a: 0x45, 0x33b: 0x46, 0x33c: 0xc5, 0x33d: 0x47, 0x33e: 0x48, 0x33f: 0x49,\n\t// Block 0xd, offset 0x340\n\t0x347: 0xc6,\n\t0x34b: 0xc7, 0x34d: 0xc8,\n\t0x368: 0xc9, 0x36b: 0xca,\n\t// Block 0xe, offset 0x380\n\t0x381: 0xcb, 0x382: 0xcc, 0x384: 0xcd, 0x385: 0xb7, 0x387: 0xce,\n\t0x388: 0xcf, 0x38b: 0xd0, 0x38c: 0x6b, 0x38d: 0xd1,\n\t0x391: 0xd2, 0x392: 0xd3, 0x393: 0xd4, 0x396: 0xd5, 0x397: 0xd6,\n\t0x398: 0xd7, 0x39a: 0xd8, 0x39c: 0xd9,\n\t0x3b0: 0xd7,\n\t// Block 0xf, offset 0x3c0\n\t0x3eb: 0xda, 0x3ec: 0xdb,\n\t// Block 0x10, offset 0x400\n\t0x432: 0xdc,\n\t// Block 0x11, offset 0x440\n\t0x445: 0xdd, 0x446: 0xde, 0x447: 0xdf,\n\t0x449: 0xe0,\n\t0x450: 0xe1, 0x451: 0xe2, 0x452: 0xe3, 0x453: 0xe4, 0x454: 0xe5, 0x455: 0xe6, 0x456: 0xe7, 0x457: 0xe8,\n\t0x458: 0xe9, 0x459: 0xea, 0x45a: 0x4a, 0x45b: 0xeb, 0x45c: 0xec, 0x45d: 0xed, 0x45e: 0xee, 0x45f: 0x4b,\n\t// Block 0x12, offset 0x480\n\t0x480: 0xef,\n\t0x4a3: 0xf0, 0x4a5: 0xf1,\n\t0x4b8: 0x4c, 0x4b9: 0x4d, 0x4ba: 0x4e,\n\t// Block 0x13, offset 0x4c0\n\t0x4c4: 0x4f, 0x4c5: 0xf2, 0x4c6: 0xf3,\n\t0x4c8: 0x50, 0x4c9: 0xf4,\n\t// Block 0x14, offset 0x500\n\t0x520: 0x51, 0x521: 0x52, 0x522: 0x53, 0x523: 0x54, 0x524: 0x55, 0x525: 0x56, 0x526: 0x57, 0x527: 0x58,\n\t0x528: 0x59,\n\t// Block 0x15, offset 0x540\n\t0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,\n\t0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,\n\t0x56f: 0x12,\n}\n\n// nfkcSparseOffset: 155 entries, 310 bytes\nvar nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1b, 0x25, 0x35, 0x37, 0x3c, 0x47, 0x56, 0x63, 0x6b, 0x6f, 0x74, 0x76, 0x87, 0x8f, 0x96, 0x99, 0xa0, 0xa4, 0xa8, 0xaa, 0xac, 0xb5, 0xb9, 0xc0, 0xc5, 0xc8, 0xd2, 0xd4, 0xdb, 0xe3, 0xe7, 0xe9, 0xec, 0xf0, 0xf6, 0x107, 0x113, 0x115, 0x11b, 0x11d, 0x11f, 0x121, 0x123, 0x125, 0x127, 0x129, 0x12c, 0x12f, 0x131, 0x134, 0x137, 0x13b, 0x140, 0x149, 0x14b, 0x14e, 0x150, 0x15b, 0x166, 0x176, 0x184, 0x192, 0x1a2, 0x1b0, 0x1b7, 0x1bd, 0x1cc, 0x1d0, 0x1d2, 0x1d6, 0x1d8, 0x1db, 0x1dd, 0x1e0, 0x1e2, 0x1e5, 0x1e7, 0x1e9, 0x1eb, 0x1f7, 0x201, 0x20b, 0x20e, 0x212, 0x214, 0x216, 0x218, 0x21a, 0x21d, 0x21f, 0x221, 0x223, 0x225, 0x22b, 0x22e, 0x232, 0x234, 0x23b, 0x241, 0x247, 0x24f, 0x255, 0x25b, 0x261, 0x265, 0x267, 0x269, 0x26b, 0x26d, 0x273, 0x276, 0x279, 0x281, 0x288, 0x28b, 0x28e, 0x290, 0x298, 0x29b, 0x2a2, 0x2a5, 0x2ab, 0x2ad, 0x2af, 0x2b2, 0x2b4, 0x2b6, 0x2b8, 0x2ba, 0x2c7, 0x2d1, 0x2d3, 0x2d5, 0x2d9, 0x2de, 0x2ea, 0x2ef, 0x2f8, 0x2fe, 0x303, 0x307, 0x30c, 0x310, 0x320, 0x32e, 0x33c, 0x34a, 0x350, 0x352, 0x355, 0x35f, 0x361}\n\n// nfkcSparseValues: 875 entries, 3500 bytes\nvar nfkcSparseValues = [875]valueRange{\n\t// Block 0x0, offset 0x0\n\t{value: 0x0002, lo: 0x0d},\n\t{value: 0x0001, lo: 0xa0, hi: 0xa0},\n\t{value: 0x4278, lo: 0xa8, hi: 0xa8},\n\t{value: 0x0083, lo: 0xaa, hi: 0xaa},\n\t{value: 0x4264, lo: 0xaf, hi: 0xaf},\n\t{value: 0x0025, lo: 0xb2, hi: 0xb3},\n\t{value: 0x425a, lo: 0xb4, hi: 0xb4},\n\t{value: 0x01dc, lo: 0xb5, hi: 0xb5},\n\t{value: 0x4291, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0023, lo: 0xb9, hi: 0xb9},\n\t{value: 0x009f, lo: 0xba, hi: 0xba},\n\t{value: 0x221c, lo: 0xbc, hi: 0xbc},\n\t{value: 0x2210, lo: 0xbd, hi: 0xbd},\n\t{value: 0x22b2, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1, offset 0xe\n\t{value: 0x0091, lo: 0x03},\n\t{value: 0x46e2, lo: 0xa0, hi: 0xa1},\n\t{value: 0x4714, lo: 0xaf, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb7, hi: 0xb7},\n\t// Block 0x2, offset 0x12\n\t{value: 0x0003, lo: 0x08},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x0091, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0119, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0095, lo: 0xb2, hi: 0xb2},\n\t{value: 0x00a5, lo: 0xb3, hi: 0xb3},\n\t{value: 0x0143, lo: 0xb4, hi: 0xb6},\n\t{value: 0x00af, lo: 0xb7, hi: 0xb7},\n\t{value: 0x00b3, lo: 0xb8, hi: 0xb8},\n\t// Block 0x3, offset 0x1b\n\t{value: 0x000a, lo: 0x09},\n\t{value: 0x426e, lo: 0x98, hi: 0x98},\n\t{value: 0x4273, lo: 0x99, hi: 0x9a},\n\t{value: 0x4296, lo: 0x9b, hi: 0x9b},\n\t{value: 0x425f, lo: 0x9c, hi: 0x9c},\n\t{value: 0x4282, lo: 0x9d, hi: 0x9d},\n\t{value: 0x0113, lo: 0xa0, hi: 0xa0},\n\t{value: 0x0099, lo: 0xa1, hi: 0xa1},\n\t{value: 0x00a7, lo: 0xa2, hi: 0xa3},\n\t{value: 0x0167, lo: 0xa4, hi: 0xa4},\n\t// Block 0x4, offset 0x25\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0xa000, lo: 0x8d, hi: 0x8d},\n\t{value: 0x37a5, lo: 0x90, hi: 0x90},\n\t{value: 0x37b1, lo: 0x91, hi: 0x91},\n\t{value: 0x379f, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x96, hi: 0x96},\n\t{value: 0x3817, lo: 0x97, hi: 0x97},\n\t{value: 0x37e1, lo: 0x9c, hi: 0x9c},\n\t{value: 0x37c9, lo: 0x9d, hi: 0x9d},\n\t{value: 0x37f3, lo: 0x9e, hi: 0x9e},\n\t{value: 0xa000, lo: 0xb4, hi: 0xb5},\n\t{value: 0x381d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x3823, lo: 0xb7, hi: 0xb7},\n\t// Block 0x5, offset 0x35\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x83, hi: 0x87},\n\t// Block 0x6, offset 0x37\n\t{value: 0x0001, lo: 0x04},\n\t{value: 0x8113, lo: 0x81, hi: 0x82},\n\t{value: 0x8132, lo: 0x84, hi: 0x84},\n\t{value: 0x812d, lo: 0x85, hi: 0x85},\n\t{value: 0x810d, lo: 0x87, hi: 0x87},\n\t// Block 0x7, offset 0x3c\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x97},\n\t{value: 0x8119, lo: 0x98, hi: 0x98},\n\t{value: 0x811a, lo: 0x99, hi: 0x99},\n\t{value: 0x811b, lo: 0x9a, hi: 0x9a},\n\t{value: 0x3841, lo: 0xa2, hi: 0xa2},\n\t{value: 0x3847, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3853, lo: 0xa4, hi: 0xa4},\n\t{value: 0x384d, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3859, lo: 0xa6, hi: 0xa6},\n\t{value: 0xa000, lo: 0xa7, hi: 0xa7},\n\t// Block 0x8, offset 0x47\n\t{value: 0x0000, lo: 0x0e},\n\t{value: 0x386b, lo: 0x80, hi: 0x80},\n\t{value: 0xa000, lo: 0x81, hi: 0x81},\n\t{value: 0x385f, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x3865, lo: 0x93, hi: 0x93},\n\t{value: 0xa000, lo: 0x95, hi: 0x95},\n\t{value: 0x8132, lo: 0x96, hi: 0x9c},\n\t{value: 0x8132, lo: 0x9f, hi: 0xa2},\n\t{value: 0x812d, lo: 0xa3, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa8},\n\t{value: 0x812d, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8132, lo: 0xab, hi: 0xac},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t// Block 0x9, offset 0x56\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x811f, lo: 0x91, hi: 0x91},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x812d, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb5, hi: 0xb6},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb9},\n\t{value: 0x8132, lo: 0xba, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbc},\n\t{value: 0x8132, lo: 0xbd, hi: 0xbd},\n\t{value: 0x812d, lo: 0xbe, hi: 0xbe},\n\t{value: 0x8132, lo: 0xbf, hi: 0xbf},\n\t// Block 0xa, offset 0x63\n\t{value: 0x0005, lo: 0x07},\n\t{value: 0x8132, lo: 0x80, hi: 0x80},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x812d, lo: 0x82, hi: 0x83},\n\t{value: 0x812d, lo: 0x84, hi: 0x85},\n\t{value: 0x812d, lo: 0x86, hi: 0x87},\n\t{value: 0x812d, lo: 0x88, hi: 0x89},\n\t{value: 0x8132, lo: 0x8a, hi: 0x8a},\n\t// Block 0xb, offset 0x6b\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8132, lo: 0xab, hi: 0xb1},\n\t{value: 0x812d, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8132, lo: 0xb3, hi: 0xb3},\n\t// Block 0xc, offset 0x6f\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0x96, hi: 0x99},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa7},\n\t{value: 0x8132, lo: 0xa9, hi: 0xad},\n\t// Block 0xd, offset 0x74\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x99, hi: 0x9b},\n\t// Block 0xe, offset 0x76\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x8132, lo: 0x94, hi: 0xa1},\n\t{value: 0x812d, lo: 0xa3, hi: 0xa3},\n\t{value: 0x8132, lo: 0xa4, hi: 0xa5},\n\t{value: 0x812d, lo: 0xa6, hi: 0xa6},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa8},\n\t{value: 0x812d, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8132, lo: 0xaa, hi: 0xac},\n\t{value: 0x812d, lo: 0xad, hi: 0xaf},\n\t{value: 0x8116, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8117, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8118, lo: 0xb2, hi: 0xb2},\n\t{value: 0x8132, lo: 0xb3, hi: 0xb5},\n\t{value: 0x812d, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8132, lo: 0xb7, hi: 0xb8},\n\t{value: 0x812d, lo: 0xb9, hi: 0xba},\n\t{value: 0x8132, lo: 0xbb, hi: 0xbf},\n\t// Block 0xf, offset 0x87\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0xa8, hi: 0xa8},\n\t{value: 0x3ed8, lo: 0xa9, hi: 0xa9},\n\t{value: 0xa000, lo: 0xb0, hi: 0xb0},\n\t{value: 0x3ee0, lo: 0xb1, hi: 0xb1},\n\t{value: 0xa000, lo: 0xb3, hi: 0xb3},\n\t{value: 0x3ee8, lo: 0xb4, hi: 0xb4},\n\t{value: 0x9902, lo: 0xbc, hi: 0xbc},\n\t// Block 0x10, offset 0x8f\n\t{value: 0x0008, lo: 0x06},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x91, hi: 0x91},\n\t{value: 0x812d, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x93, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x94},\n\t{value: 0x451c, lo: 0x98, hi: 0x9f},\n\t// Block 0x11, offset 0x96\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x12, offset 0x99\n\t{value: 0x0008, lo: 0x06},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2c9e, lo: 0x8b, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x455c, lo: 0x9c, hi: 0x9d},\n\t{value: 0x456c, lo: 0x9f, hi: 0x9f},\n\t// Block 0x13, offset 0xa0\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x4594, lo: 0xb3, hi: 0xb3},\n\t{value: 0x459c, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x14, offset 0xa4\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x4574, lo: 0x99, hi: 0x9b},\n\t{value: 0x458c, lo: 0x9e, hi: 0x9e},\n\t// Block 0x15, offset 0xa8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t// Block 0x16, offset 0xaa\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t// Block 0x17, offset 0xac\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2cb6, lo: 0x88, hi: 0x88},\n\t{value: 0x2cae, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cbe, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x96, hi: 0x97},\n\t{value: 0x45a4, lo: 0x9c, hi: 0x9c},\n\t{value: 0x45ac, lo: 0x9d, hi: 0x9d},\n\t// Block 0x18, offset 0xb5\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0x2cc6, lo: 0x94, hi: 0x94},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x19, offset 0xb9\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cce, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2cde, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2cd6, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1a, offset 0xc0\n\t{value: 0x1801, lo: 0x04},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x3ef0, lo: 0x88, hi: 0x88},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8120, lo: 0x95, hi: 0x96},\n\t// Block 0x1b, offset 0xc5\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xbc, hi: 0xbc},\n\t{value: 0xa000, lo: 0xbf, hi: 0xbf},\n\t// Block 0x1c, offset 0xc8\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x2ce6, lo: 0x80, hi: 0x80},\n\t{value: 0x9900, lo: 0x82, hi: 0x82},\n\t{value: 0xa000, lo: 0x86, hi: 0x86},\n\t{value: 0x2cee, lo: 0x87, hi: 0x87},\n\t{value: 0x2cf6, lo: 0x88, hi: 0x88},\n\t{value: 0x2f50, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2dd8, lo: 0x8b, hi: 0x8b},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x95, hi: 0x96},\n\t// Block 0x1d, offset 0xd2\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0xbe, hi: 0xbe},\n\t// Block 0x1e, offset 0xd4\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xa000, lo: 0x86, hi: 0x87},\n\t{value: 0x2cfe, lo: 0x8a, hi: 0x8a},\n\t{value: 0x2d0e, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d06, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t// Block 0x1f, offset 0xdb\n\t{value: 0x6bea, lo: 0x07},\n\t{value: 0x9904, lo: 0x8a, hi: 0x8a},\n\t{value: 0x9900, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x3ef8, lo: 0x9a, hi: 0x9a},\n\t{value: 0x2f58, lo: 0x9c, hi: 0x9c},\n\t{value: 0x2de3, lo: 0x9d, hi: 0x9d},\n\t{value: 0x2d16, lo: 0x9e, hi: 0x9f},\n\t// Block 0x20, offset 0xe3\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x2621, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8122, lo: 0xb8, hi: 0xb9},\n\t{value: 0x8104, lo: 0xba, hi: 0xba},\n\t// Block 0x21, offset 0xe7\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8123, lo: 0x88, hi: 0x8b},\n\t// Block 0x22, offset 0xe9\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x2636, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8124, lo: 0xb8, hi: 0xb9},\n\t// Block 0x23, offset 0xec\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8125, lo: 0x88, hi: 0x8b},\n\t{value: 0x2628, lo: 0x9c, hi: 0x9c},\n\t{value: 0x262f, lo: 0x9d, hi: 0x9d},\n\t// Block 0x24, offset 0xf0\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x030b, lo: 0x8c, hi: 0x8c},\n\t{value: 0x812d, lo: 0x98, hi: 0x99},\n\t{value: 0x812d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x812d, lo: 0xb7, hi: 0xb7},\n\t{value: 0x812b, lo: 0xb9, hi: 0xb9},\n\t// Block 0x25, offset 0xf6\n\t{value: 0x0000, lo: 0x10},\n\t{value: 0x2644, lo: 0x83, hi: 0x83},\n\t{value: 0x264b, lo: 0x8d, hi: 0x8d},\n\t{value: 0x2652, lo: 0x92, hi: 0x92},\n\t{value: 0x2659, lo: 0x97, hi: 0x97},\n\t{value: 0x2660, lo: 0x9c, hi: 0x9c},\n\t{value: 0x263d, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8126, lo: 0xb1, hi: 0xb1},\n\t{value: 0x8127, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4a84, lo: 0xb3, hi: 0xb3},\n\t{value: 0x8128, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4a8d, lo: 0xb5, hi: 0xb5},\n\t{value: 0x45b4, lo: 0xb6, hi: 0xb6},\n\t{value: 0x45f4, lo: 0xb7, hi: 0xb7},\n\t{value: 0x45bc, lo: 0xb8, hi: 0xb8},\n\t{value: 0x45ff, lo: 0xb9, hi: 0xb9},\n\t{value: 0x8127, lo: 0xba, hi: 0xbd},\n\t// Block 0x26, offset 0x107\n\t{value: 0x0000, lo: 0x0b},\n\t{value: 0x8127, lo: 0x80, hi: 0x80},\n\t{value: 0x4a96, lo: 0x81, hi: 0x81},\n\t{value: 0x8132, lo: 0x82, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0x86, hi: 0x87},\n\t{value: 0x266e, lo: 0x93, hi: 0x93},\n\t{value: 0x2675, lo: 0x9d, hi: 0x9d},\n\t{value: 0x267c, lo: 0xa2, hi: 0xa2},\n\t{value: 0x2683, lo: 0xa7, hi: 0xa7},\n\t{value: 0x268a, lo: 0xac, hi: 0xac},\n\t{value: 0x2667, lo: 0xb9, hi: 0xb9},\n\t// Block 0x27, offset 0x113\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x86, hi: 0x86},\n\t// Block 0x28, offset 0x115\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x2d1e, lo: 0xa6, hi: 0xa6},\n\t{value: 0x9900, lo: 0xae, hi: 0xae},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x29, offset 0x11b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t// Block 0x2a, offset 0x11d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x030f, lo: 0xbc, hi: 0xbc},\n\t// Block 0x2b, offset 0x11f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xa000, lo: 0x80, hi: 0x92},\n\t// Block 0x2c, offset 0x121\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0xb900, lo: 0xa1, hi: 0xb5},\n\t// Block 0x2d, offset 0x123\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0xa8, hi: 0xbf},\n\t// Block 0x2e, offset 0x125\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x9900, lo: 0x80, hi: 0x82},\n\t// Block 0x2f, offset 0x127\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9f},\n\t// Block 0x30, offset 0x129\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x94, hi: 0x94},\n\t{value: 0x8104, lo: 0xb4, hi: 0xb4},\n\t// Block 0x31, offset 0x12c\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x92, hi: 0x92},\n\t{value: 0x8132, lo: 0x9d, hi: 0x9d},\n\t// Block 0x32, offset 0x12f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8131, lo: 0xa9, hi: 0xa9},\n\t// Block 0x33, offset 0x131\n\t{value: 0x0004, lo: 0x02},\n\t{value: 0x812e, lo: 0xb9, hi: 0xba},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbb},\n\t// Block 0x34, offset 0x134\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x97, hi: 0x97},\n\t{value: 0x812d, lo: 0x98, hi: 0x98},\n\t// Block 0x35, offset 0x137\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x8104, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8132, lo: 0xb5, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbf, hi: 0xbf},\n\t// Block 0x36, offset 0x13b\n\t{value: 0x0000, lo: 0x04},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t{value: 0x812d, lo: 0xb5, hi: 0xba},\n\t{value: 0x8132, lo: 0xbb, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x37, offset 0x140\n\t{value: 0x0000, lo: 0x08},\n\t{value: 0x2d66, lo: 0x80, hi: 0x80},\n\t{value: 0x2d6e, lo: 0x81, hi: 0x81},\n\t{value: 0xa000, lo: 0x82, hi: 0x82},\n\t{value: 0x2d76, lo: 0x83, hi: 0x83},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xab, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xac},\n\t{value: 0x8132, lo: 0xad, hi: 0xb3},\n\t// Block 0x38, offset 0x149\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xaa, hi: 0xab},\n\t// Block 0x39, offset 0x14b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8102, lo: 0xa6, hi: 0xa6},\n\t{value: 0x8104, lo: 0xb2, hi: 0xb3},\n\t// Block 0x3a, offset 0x14e\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x3b, offset 0x150\n\t{value: 0x0000, lo: 0x0a},\n\t{value: 0x8132, lo: 0x90, hi: 0x92},\n\t{value: 0x8101, lo: 0x94, hi: 0x94},\n\t{value: 0x812d, lo: 0x95, hi: 0x99},\n\t{value: 0x8132, lo: 0x9a, hi: 0x9b},\n\t{value: 0x812d, lo: 0x9c, hi: 0x9f},\n\t{value: 0x8132, lo: 0xa0, hi: 0xa0},\n\t{value: 0x8101, lo: 0xa2, hi: 0xa8},\n\t{value: 0x812d, lo: 0xad, hi: 0xad},\n\t{value: 0x8132, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb9},\n\t// Block 0x3c, offset 0x15b\n\t{value: 0x0002, lo: 0x0a},\n\t{value: 0x0043, lo: 0xac, hi: 0xac},\n\t{value: 0x00d1, lo: 0xad, hi: 0xad},\n\t{value: 0x0045, lo: 0xae, hi: 0xae},\n\t{value: 0x0049, lo: 0xb0, hi: 0xb1},\n\t{value: 0x00e6, lo: 0xb2, hi: 0xb2},\n\t{value: 0x004f, lo: 0xb3, hi: 0xba},\n\t{value: 0x005f, lo: 0xbc, hi: 0xbc},\n\t{value: 0x00ef, lo: 0xbd, hi: 0xbd},\n\t{value: 0x0061, lo: 0xbe, hi: 0xbe},\n\t{value: 0x0065, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3d, offset 0x166\n\t{value: 0x0000, lo: 0x0f},\n\t{value: 0x8132, lo: 0x80, hi: 0x81},\n\t{value: 0x812d, lo: 0x82, hi: 0x82},\n\t{value: 0x8132, lo: 0x83, hi: 0x89},\n\t{value: 0x812d, lo: 0x8a, hi: 0x8a},\n\t{value: 0x8132, lo: 0x8b, hi: 0x8c},\n\t{value: 0x8135, lo: 0x8d, hi: 0x8d},\n\t{value: 0x812a, lo: 0x8e, hi: 0x8e},\n\t{value: 0x812d, lo: 0x8f, hi: 0x8f},\n\t{value: 0x8129, lo: 0x90, hi: 0x90},\n\t{value: 0x8132, lo: 0x91, hi: 0xb5},\n\t{value: 0x8132, lo: 0xbb, hi: 0xbb},\n\t{value: 0x8134, lo: 0xbc, hi: 0xbc},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t{value: 0x8132, lo: 0xbe, hi: 0xbe},\n\t{value: 0x812d, lo: 0xbf, hi: 0xbf},\n\t// Block 0x3e, offset 0x176\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x0001, lo: 0x80, hi: 0x8a},\n\t{value: 0x043b, lo: 0x91, hi: 0x91},\n\t{value: 0x429b, lo: 0x97, hi: 0x97},\n\t{value: 0x001d, lo: 0xa4, hi: 0xa4},\n\t{value: 0x1873, lo: 0xa5, hi: 0xa5},\n\t{value: 0x1b5c, lo: 0xa6, hi: 0xa6},\n\t{value: 0x0001, lo: 0xaf, hi: 0xaf},\n\t{value: 0x2691, lo: 0xb3, hi: 0xb3},\n\t{value: 0x27fe, lo: 0xb4, hi: 0xb4},\n\t{value: 0x2698, lo: 0xb6, hi: 0xb6},\n\t{value: 0x2808, lo: 0xb7, hi: 0xb7},\n\t{value: 0x186d, lo: 0xbc, hi: 0xbc},\n\t{value: 0x4269, lo: 0xbe, hi: 0xbe},\n\t// Block 0x3f, offset 0x184\n\t{value: 0x0002, lo: 0x0d},\n\t{value: 0x1933, lo: 0x87, hi: 0x87},\n\t{value: 0x1930, lo: 0x88, hi: 0x88},\n\t{value: 0x1870, lo: 0x89, hi: 0x89},\n\t{value: 0x298e, lo: 0x97, hi: 0x97},\n\t{value: 0x0001, lo: 0x9f, hi: 0x9f},\n\t{value: 0x0021, lo: 0xb0, hi: 0xb0},\n\t{value: 0x0093, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0029, lo: 0xb4, hi: 0xb9},\n\t{value: 0x0017, lo: 0xba, hi: 0xba},\n\t{value: 0x0467, lo: 0xbb, hi: 0xbb},\n\t{value: 0x003b, lo: 0xbc, hi: 0xbc},\n\t{value: 0x0011, lo: 0xbd, hi: 0xbe},\n\t{value: 0x009d, lo: 0xbf, hi: 0xbf},\n\t// Block 0x40, offset 0x192\n\t{value: 0x0002, lo: 0x0f},\n\t{value: 0x0021, lo: 0x80, hi: 0x89},\n\t{value: 0x0017, lo: 0x8a, hi: 0x8a},\n\t{value: 0x0467, lo: 0x8b, hi: 0x8b},\n\t{value: 0x003b, lo: 0x8c, hi: 0x8c},\n\t{value: 0x0011, lo: 0x8d, hi: 0x8e},\n\t{value: 0x0083, lo: 0x90, hi: 0x90},\n\t{value: 0x008b, lo: 0x91, hi: 0x91},\n\t{value: 0x009f, lo: 0x92, hi: 0x92},\n\t{value: 0x00b1, lo: 0x93, hi: 0x93},\n\t{value: 0x0104, lo: 0x94, hi: 0x94},\n\t{value: 0x0091, lo: 0x95, hi: 0x95},\n\t{value: 0x0097, lo: 0x96, hi: 0x99},\n\t{value: 0x00a1, lo: 0x9a, hi: 0x9a},\n\t{value: 0x00a7, lo: 0x9b, hi: 0x9c},\n\t{value: 0x1999, lo: 0xa8, hi: 0xa8},\n\t// Block 0x41, offset 0x1a2\n\t{value: 0x0000, lo: 0x0d},\n\t{value: 0x8132, lo: 0x90, hi: 0x91},\n\t{value: 0x8101, lo: 0x92, hi: 0x93},\n\t{value: 0x8132, lo: 0x94, hi: 0x97},\n\t{value: 0x8101, lo: 0x98, hi: 0x9a},\n\t{value: 0x8132, lo: 0x9b, hi: 0x9c},\n\t{value: 0x8132, lo: 0xa1, hi: 0xa1},\n\t{value: 0x8101, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8132, lo: 0xa7, hi: 0xa7},\n\t{value: 0x812d, lo: 0xa8, hi: 0xa8},\n\t{value: 0x8132, lo: 0xa9, hi: 0xa9},\n\t{value: 0x8101, lo: 0xaa, hi: 0xab},\n\t{value: 0x812d, lo: 0xac, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t// Block 0x42, offset 0x1b0\n\t{value: 0x0007, lo: 0x06},\n\t{value: 0x2180, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t{value: 0x3bb9, lo: 0x9a, hi: 0x9b},\n\t{value: 0x3bc7, lo: 0xae, hi: 0xae},\n\t// Block 0x43, offset 0x1b7\n\t{value: 0x000e, lo: 0x05},\n\t{value: 0x3bce, lo: 0x8d, hi: 0x8e},\n\t{value: 0x3bd5, lo: 0x8f, hi: 0x8f},\n\t{value: 0xa000, lo: 0x90, hi: 0x90},\n\t{value: 0xa000, lo: 0x92, hi: 0x92},\n\t{value: 0xa000, lo: 0x94, hi: 0x94},\n\t// Block 0x44, offset 0x1bd\n\t{value: 0x0173, lo: 0x0e},\n\t{value: 0xa000, lo: 0x83, hi: 0x83},\n\t{value: 0x3be3, lo: 0x84, hi: 0x84},\n\t{value: 0xa000, lo: 0x88, hi: 0x88},\n\t{value: 0x3bea, lo: 0x89, hi: 0x89},\n\t{value: 0xa000, lo: 0x8b, hi: 0x8b},\n\t{value: 0x3bf1, lo: 0x8c, hi: 0x8c},\n\t{value: 0xa000, lo: 0xa3, hi: 0xa3},\n\t{value: 0x3bf8, lo: 0xa4, hi: 0xa4},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x3bff, lo: 0xa6, hi: 0xa6},\n\t{value: 0x269f, lo: 0xac, hi: 0xad},\n\t{value: 0x26a6, lo: 0xaf, hi: 0xaf},\n\t{value: 0x281c, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xbc, hi: 0xbc},\n\t// Block 0x45, offset 0x1cc\n\t{value: 0x0007, lo: 0x03},\n\t{value: 0x3c68, lo: 0xa0, hi: 0xa1},\n\t{value: 0x3c92, lo: 0xa2, hi: 0xa3},\n\t{value: 0x3cbc, lo: 0xaa, hi: 0xad},\n\t// Block 0x46, offset 0x1d0\n\t{value: 0x0004, lo: 0x01},\n\t{value: 0x048b, lo: 0xa9, hi: 0xaa},\n\t// Block 0x47, offset 0x1d2\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x0057, lo: 0x80, hi: 0x8f},\n\t{value: 0x0083, lo: 0x90, hi: 0xa9},\n\t{value: 0x0021, lo: 0xaa, hi: 0xaa},\n\t// Block 0x48, offset 0x1d6\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x299b, lo: 0x8c, hi: 0x8c},\n\t// Block 0x49, offset 0x1d8\n\t{value: 0x0263, lo: 0x02},\n\t{value: 0x1b8c, lo: 0xb4, hi: 0xb4},\n\t{value: 0x192d, lo: 0xb5, hi: 0xb6},\n\t// Block 0x4a, offset 0x1db\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x44dd, lo: 0x9c, hi: 0x9c},\n\t// Block 0x4b, offset 0x1dd\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x0095, lo: 0xbc, hi: 0xbc},\n\t{value: 0x006d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x4c, offset 0x1e0\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xaf, hi: 0xb1},\n\t// Block 0x4d, offset 0x1e2\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x047f, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x4e, offset 0x1e5\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xa0, hi: 0xbf},\n\t// Block 0x4f, offset 0x1e7\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x0dc3, lo: 0x9f, hi: 0x9f},\n\t// Block 0x50, offset 0x1e9\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x162f, lo: 0xb3, hi: 0xb3},\n\t// Block 0x51, offset 0x1eb\n\t{value: 0x0004, lo: 0x0b},\n\t{value: 0x1597, lo: 0x80, hi: 0x82},\n\t{value: 0x15af, lo: 0x83, hi: 0x83},\n\t{value: 0x15c7, lo: 0x84, hi: 0x85},\n\t{value: 0x15d7, lo: 0x86, hi: 0x89},\n\t{value: 0x15eb, lo: 0x8a, hi: 0x8c},\n\t{value: 0x15ff, lo: 0x8d, hi: 0x8d},\n\t{value: 0x1607, lo: 0x8e, hi: 0x8e},\n\t{value: 0x160f, lo: 0x8f, hi: 0x90},\n\t{value: 0x161b, lo: 0x91, hi: 0x93},\n\t{value: 0x162b, lo: 0x94, hi: 0x94},\n\t{value: 0x1633, lo: 0x95, hi: 0x95},\n\t// Block 0x52, offset 0x1f7\n\t{value: 0x0004, lo: 0x09},\n\t{value: 0x0001, lo: 0x80, hi: 0x80},\n\t{value: 0x812c, lo: 0xaa, hi: 0xaa},\n\t{value: 0x8131, lo: 0xab, hi: 0xab},\n\t{value: 0x8133, lo: 0xac, hi: 0xac},\n\t{value: 0x812e, lo: 0xad, hi: 0xad},\n\t{value: 0x812f, lo: 0xae, hi: 0xae},\n\t{value: 0x812f, lo: 0xaf, hi: 0xaf},\n\t{value: 0x04b3, lo: 0xb6, hi: 0xb6},\n\t{value: 0x0887, lo: 0xb8, hi: 0xba},\n\t// Block 0x53, offset 0x201\n\t{value: 0x0006, lo: 0x09},\n\t{value: 0x0313, lo: 0xb1, hi: 0xb1},\n\t{value: 0x0317, lo: 0xb2, hi: 0xb2},\n\t{value: 0x4a3b, lo: 0xb3, hi: 0xb3},\n\t{value: 0x031b, lo: 0xb4, hi: 0xb4},\n\t{value: 0x4a41, lo: 0xb5, hi: 0xb6},\n\t{value: 0x031f, lo: 0xb7, hi: 0xb7},\n\t{value: 0x0323, lo: 0xb8, hi: 0xb8},\n\t{value: 0x0327, lo: 0xb9, hi: 0xb9},\n\t{value: 0x4a4d, lo: 0xba, hi: 0xbf},\n\t// Block 0x54, offset 0x20b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xaf, hi: 0xaf},\n\t{value: 0x8132, lo: 0xb4, hi: 0xbd},\n\t// Block 0x55, offset 0x20e\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0x020f, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0212, lo: 0x9d, hi: 0x9d},\n\t{value: 0x8132, lo: 0x9e, hi: 0x9f},\n\t// Block 0x56, offset 0x212\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb1},\n\t// Block 0x57, offset 0x214\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x163b, lo: 0xb0, hi: 0xb0},\n\t// Block 0x58, offset 0x216\n\t{value: 0x000c, lo: 0x01},\n\t{value: 0x00d7, lo: 0xb8, hi: 0xb9},\n\t// Block 0x59, offset 0x218\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t// Block 0x5a, offset 0x21a\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x84, hi: 0x84},\n\t{value: 0x8132, lo: 0xa0, hi: 0xb1},\n\t// Block 0x5b, offset 0x21d\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xab, hi: 0xad},\n\t// Block 0x5c, offset 0x21f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x93, hi: 0x93},\n\t// Block 0x5d, offset 0x221\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0xb3, hi: 0xb3},\n\t// Block 0x5e, offset 0x223\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t// Block 0x5f, offset 0x225\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb0},\n\t{value: 0x8132, lo: 0xb2, hi: 0xb3},\n\t{value: 0x812d, lo: 0xb4, hi: 0xb4},\n\t{value: 0x8132, lo: 0xb7, hi: 0xb8},\n\t{value: 0x8132, lo: 0xbe, hi: 0xbf},\n\t// Block 0x60, offset 0x22b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x81, hi: 0x81},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t// Block 0x61, offset 0x22e\n\t{value: 0x0008, lo: 0x03},\n\t{value: 0x1637, lo: 0x9c, hi: 0x9d},\n\t{value: 0x0125, lo: 0x9e, hi: 0x9e},\n\t{value: 0x1643, lo: 0x9f, hi: 0x9f},\n\t// Block 0x62, offset 0x232\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xad, hi: 0xad},\n\t// Block 0x63, offset 0x234\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0xe500, lo: 0x80, hi: 0x80},\n\t{value: 0xc600, lo: 0x81, hi: 0x9b},\n\t{value: 0xe500, lo: 0x9c, hi: 0x9c},\n\t{value: 0xc600, lo: 0x9d, hi: 0xb7},\n\t{value: 0xe500, lo: 0xb8, hi: 0xb8},\n\t{value: 0xc600, lo: 0xb9, hi: 0xbf},\n\t// Block 0x64, offset 0x23b\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x93},\n\t{value: 0xe500, lo: 0x94, hi: 0x94},\n\t{value: 0xc600, lo: 0x95, hi: 0xaf},\n\t{value: 0xe500, lo: 0xb0, hi: 0xb0},\n\t{value: 0xc600, lo: 0xb1, hi: 0xbf},\n\t// Block 0x65, offset 0x241\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8b},\n\t{value: 0xe500, lo: 0x8c, hi: 0x8c},\n\t{value: 0xc600, lo: 0x8d, hi: 0xa7},\n\t{value: 0xe500, lo: 0xa8, hi: 0xa8},\n\t{value: 0xc600, lo: 0xa9, hi: 0xbf},\n\t// Block 0x66, offset 0x247\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xc600, lo: 0x80, hi: 0x83},\n\t{value: 0xe500, lo: 0x84, hi: 0x84},\n\t{value: 0xc600, lo: 0x85, hi: 0x9f},\n\t{value: 0xe500, lo: 0xa0, hi: 0xa0},\n\t{value: 0xc600, lo: 0xa1, hi: 0xbb},\n\t{value: 0xe500, lo: 0xbc, hi: 0xbc},\n\t{value: 0xc600, lo: 0xbd, hi: 0xbf},\n\t// Block 0x67, offset 0x24f\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x97},\n\t{value: 0xe500, lo: 0x98, hi: 0x98},\n\t{value: 0xc600, lo: 0x99, hi: 0xb3},\n\t{value: 0xe500, lo: 0xb4, hi: 0xb4},\n\t{value: 0xc600, lo: 0xb5, hi: 0xbf},\n\t// Block 0x68, offset 0x255\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x8f},\n\t{value: 0xe500, lo: 0x90, hi: 0x90},\n\t{value: 0xc600, lo: 0x91, hi: 0xab},\n\t{value: 0xe500, lo: 0xac, hi: 0xac},\n\t{value: 0xc600, lo: 0xad, hi: 0xbf},\n\t// Block 0x69, offset 0x25b\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t{value: 0xe500, lo: 0xa4, hi: 0xa4},\n\t{value: 0xc600, lo: 0xa5, hi: 0xbf},\n\t// Block 0x6a, offset 0x261\n\t{value: 0x0000, lo: 0x03},\n\t{value: 0xc600, lo: 0x80, hi: 0x87},\n\t{value: 0xe500, lo: 0x88, hi: 0x88},\n\t{value: 0xc600, lo: 0x89, hi: 0xa3},\n\t// Block 0x6b, offset 0x265\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x0003, lo: 0x81, hi: 0xbf},\n\t// Block 0x6c, offset 0x267\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xbd, hi: 0xbd},\n\t// Block 0x6d, offset 0x269\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0xa0, hi: 0xa0},\n\t// Block 0x6e, offset 0x26b\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb6, hi: 0xba},\n\t// Block 0x6f, offset 0x26d\n\t{value: 0x002c, lo: 0x05},\n\t{value: 0x812d, lo: 0x8d, hi: 0x8d},\n\t{value: 0x8132, lo: 0x8f, hi: 0x8f},\n\t{value: 0x8132, lo: 0xb8, hi: 0xb8},\n\t{value: 0x8101, lo: 0xb9, hi: 0xba},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x70, offset 0x273\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0xa5, hi: 0xa5},\n\t{value: 0x812d, lo: 0xa6, hi: 0xa6},\n\t// Block 0x71, offset 0x276\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x86, hi: 0x86},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x72, offset 0x279\n\t{value: 0x17fe, lo: 0x07},\n\t{value: 0xa000, lo: 0x99, hi: 0x99},\n\t{value: 0x4238, lo: 0x9a, hi: 0x9a},\n\t{value: 0xa000, lo: 0x9b, hi: 0x9b},\n\t{value: 0x4242, lo: 0x9c, hi: 0x9c},\n\t{value: 0xa000, lo: 0xa5, hi: 0xa5},\n\t{value: 0x424c, lo: 0xab, hi: 0xab},\n\t{value: 0x8104, lo: 0xb9, hi: 0xba},\n\t// Block 0x73, offset 0x281\n\t{value: 0x0000, lo: 0x06},\n\t{value: 0x8132, lo: 0x80, hi: 0x82},\n\t{value: 0x9900, lo: 0xa7, hi: 0xa7},\n\t{value: 0x2d7e, lo: 0xae, hi: 0xae},\n\t{value: 0x2d88, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb1, hi: 0xb2},\n\t{value: 0x8104, lo: 0xb3, hi: 0xb4},\n\t// Block 0x74, offset 0x288\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x80, hi: 0x80},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0x75, offset 0x28b\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb5, hi: 0xb5},\n\t{value: 0x8102, lo: 0xb6, hi: 0xb6},\n\t// Block 0x76, offset 0x28e\n\t{value: 0x0002, lo: 0x01},\n\t{value: 0x8102, lo: 0xa9, hi: 0xaa},\n\t// Block 0x77, offset 0x290\n\t{value: 0x0000, lo: 0x07},\n\t{value: 0xa000, lo: 0x87, hi: 0x87},\n\t{value: 0x2d92, lo: 0x8b, hi: 0x8b},\n\t{value: 0x2d9c, lo: 0x8c, hi: 0x8c},\n\t{value: 0x8104, lo: 0x8d, hi: 0x8d},\n\t{value: 0x9900, lo: 0x97, hi: 0x97},\n\t{value: 0x8132, lo: 0xa6, hi: 0xac},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb4},\n\t// Block 0x78, offset 0x298\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x86, hi: 0x86},\n\t// Block 0x79, offset 0x29b\n\t{value: 0x6b5a, lo: 0x06},\n\t{value: 0x9900, lo: 0xb0, hi: 0xb0},\n\t{value: 0xa000, lo: 0xb9, hi: 0xb9},\n\t{value: 0x9900, lo: 0xba, hi: 0xba},\n\t{value: 0x2db0, lo: 0xbb, hi: 0xbb},\n\t{value: 0x2da6, lo: 0xbc, hi: 0xbd},\n\t{value: 0x2dba, lo: 0xbe, hi: 0xbe},\n\t// Block 0x7a, offset 0x2a2\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0x82, hi: 0x82},\n\t{value: 0x8102, lo: 0x83, hi: 0x83},\n\t// Block 0x7b, offset 0x2a5\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x9900, lo: 0xaf, hi: 0xaf},\n\t{value: 0xa000, lo: 0xb8, hi: 0xb9},\n\t{value: 0x2dc4, lo: 0xba, hi: 0xba},\n\t{value: 0x2dce, lo: 0xbb, hi: 0xbb},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7c, offset 0x2ab\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8102, lo: 0x80, hi: 0x80},\n\t// Block 0x7d, offset 0x2ad\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xbf, hi: 0xbf},\n\t// Block 0x7e, offset 0x2af\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8104, lo: 0xb6, hi: 0xb6},\n\t{value: 0x8102, lo: 0xb7, hi: 0xb7},\n\t// Block 0x7f, offset 0x2b2\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8104, lo: 0xab, hi: 0xab},\n\t// Block 0x80, offset 0x2b4\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0xb0, hi: 0xb4},\n\t// Block 0x81, offset 0x2b6\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0xb0, hi: 0xb6},\n\t// Block 0x82, offset 0x2b8\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8101, lo: 0x9e, hi: 0x9e},\n\t// Block 0x83, offset 0x2ba\n\t{value: 0x0000, lo: 0x0c},\n\t{value: 0x45cc, lo: 0x9e, hi: 0x9e},\n\t{value: 0x45d6, lo: 0x9f, hi: 0x9f},\n\t{value: 0x460a, lo: 0xa0, hi: 0xa0},\n\t{value: 0x4618, lo: 0xa1, hi: 0xa1},\n\t{value: 0x4626, lo: 0xa2, hi: 0xa2},\n\t{value: 0x4634, lo: 0xa3, hi: 0xa3},\n\t{value: 0x4642, lo: 0xa4, hi: 0xa4},\n\t{value: 0x812b, lo: 0xa5, hi: 0xa6},\n\t{value: 0x8101, lo: 0xa7, hi: 0xa9},\n\t{value: 0x8130, lo: 0xad, hi: 0xad},\n\t{value: 0x812b, lo: 0xae, hi: 0xb2},\n\t{value: 0x812d, lo: 0xbb, hi: 0xbf},\n\t// Block 0x84, offset 0x2c7\n\t{value: 0x0000, lo: 0x09},\n\t{value: 0x812d, lo: 0x80, hi: 0x82},\n\t{value: 0x8132, lo: 0x85, hi: 0x89},\n\t{value: 0x812d, lo: 0x8a, hi: 0x8b},\n\t{value: 0x8132, lo: 0xaa, hi: 0xad},\n\t{value: 0x45e0, lo: 0xbb, hi: 0xbb},\n\t{value: 0x45ea, lo: 0xbc, hi: 0xbc},\n\t{value: 0x4650, lo: 0xbd, hi: 0xbd},\n\t{value: 0x466c, lo: 0xbe, hi: 0xbe},\n\t{value: 0x465e, lo: 0xbf, hi: 0xbf},\n\t// Block 0x85, offset 0x2d1\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x467a, lo: 0x80, hi: 0x80},\n\t// Block 0x86, offset 0x2d3\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x8132, lo: 0x82, hi: 0x84},\n\t// Block 0x87, offset 0x2d5\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x0043, lo: 0x80, hi: 0x99},\n\t{value: 0x0083, lo: 0x9a, hi: 0xb3},\n\t{value: 0x0043, lo: 0xb4, hi: 0xbf},\n\t// Block 0x88, offset 0x2d9\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x005b, lo: 0x80, hi: 0x8d},\n\t{value: 0x0083, lo: 0x8e, hi: 0x94},\n\t{value: 0x0093, lo: 0x96, hi: 0xa7},\n\t{value: 0x0043, lo: 0xa8, hi: 0xbf},\n\t// Block 0x89, offset 0x2de\n\t{value: 0x0002, lo: 0x0b},\n\t{value: 0x0073, lo: 0x80, hi: 0x81},\n\t{value: 0x0083, lo: 0x82, hi: 0x9b},\n\t{value: 0x0043, lo: 0x9c, hi: 0x9c},\n\t{value: 0x0047, lo: 0x9e, hi: 0x9f},\n\t{value: 0x004f, lo: 0xa2, hi: 0xa2},\n\t{value: 0x0055, lo: 0xa5, hi: 0xa6},\n\t{value: 0x005d, lo: 0xa9, hi: 0xac},\n\t{value: 0x0067, lo: 0xae, hi: 0xb5},\n\t{value: 0x0083, lo: 0xb6, hi: 0xb9},\n\t{value: 0x008d, lo: 0xbb, hi: 0xbb},\n\t{value: 0x0091, lo: 0xbd, hi: 0xbf},\n\t// Block 0x8a, offset 0x2ea\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x0097, lo: 0x80, hi: 0x83},\n\t{value: 0x00a1, lo: 0x85, hi: 0x8f},\n\t{value: 0x0043, lo: 0x90, hi: 0xa9},\n\t{value: 0x0083, lo: 0xaa, hi: 0xbf},\n\t// Block 0x8b, offset 0x2ef\n\t{value: 0x0002, lo: 0x08},\n\t{value: 0x00af, lo: 0x80, hi: 0x83},\n\t{value: 0x0043, lo: 0x84, hi: 0x85},\n\t{value: 0x0049, lo: 0x87, hi: 0x8a},\n\t{value: 0x0055, lo: 0x8d, hi: 0x94},\n\t{value: 0x0067, lo: 0x96, hi: 0x9c},\n\t{value: 0x0083, lo: 0x9e, hi: 0xb7},\n\t{value: 0x0043, lo: 0xb8, hi: 0xb9},\n\t{value: 0x0049, lo: 0xbb, hi: 0xbe},\n\t// Block 0x8c, offset 0x2f8\n\t{value: 0x0002, lo: 0x05},\n\t{value: 0x0053, lo: 0x80, hi: 0x84},\n\t{value: 0x005f, lo: 0x86, hi: 0x86},\n\t{value: 0x0067, lo: 0x8a, hi: 0x90},\n\t{value: 0x0083, lo: 0x92, hi: 0xab},\n\t{value: 0x0043, lo: 0xac, hi: 0xbf},\n\t// Block 0x8d, offset 0x2fe\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x006b, lo: 0x80, hi: 0x85},\n\t{value: 0x0083, lo: 0x86, hi: 0x9f},\n\t{value: 0x0043, lo: 0xa0, hi: 0xb9},\n\t{value: 0x0083, lo: 0xba, hi: 0xbf},\n\t// Block 0x8e, offset 0x303\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x008f, lo: 0x80, hi: 0x93},\n\t{value: 0x0043, lo: 0x94, hi: 0xad},\n\t{value: 0x0083, lo: 0xae, hi: 0xbf},\n\t// Block 0x8f, offset 0x307\n\t{value: 0x0002, lo: 0x04},\n\t{value: 0x00a7, lo: 0x80, hi: 0x87},\n\t{value: 0x0043, lo: 0x88, hi: 0xa1},\n\t{value: 0x0083, lo: 0xa2, hi: 0xbb},\n\t{value: 0x0043, lo: 0xbc, hi: 0xbf},\n\t// Block 0x90, offset 0x30c\n\t{value: 0x0002, lo: 0x03},\n\t{value: 0x004b, lo: 0x80, hi: 0x95},\n\t{value: 0x0083, lo: 0x96, hi: 0xaf},\n\t{value: 0x0043, lo: 0xb0, hi: 0xbf},\n\t// Block 0x91, offset 0x310\n\t{value: 0x0003, lo: 0x0f},\n\t{value: 0x01b8, lo: 0x80, hi: 0x80},\n\t{value: 0x045f, lo: 0x81, hi: 0x81},\n\t{value: 0x01bb, lo: 0x82, hi: 0x9a},\n\t{value: 0x045b, lo: 0x9b, hi: 0x9b},\n\t{value: 0x01c7, lo: 0x9c, hi: 0x9c},\n\t{value: 0x01d0, lo: 0x9d, hi: 0x9d},\n\t{value: 0x01d6, lo: 0x9e, hi: 0x9e},\n\t{value: 0x01fa, lo: 0x9f, hi: 0x9f},\n\t{value: 0x01eb, lo: 0xa0, hi: 0xa0},\n\t{value: 0x01e8, lo: 0xa1, hi: 0xa1},\n\t{value: 0x0173, lo: 0xa2, hi: 0xb2},\n\t{value: 0x0188, lo: 0xb3, hi: 0xb3},\n\t{value: 0x01a6, lo: 0xb4, hi: 0xba},\n\t{value: 0x045f, lo: 0xbb, hi: 0xbb},\n\t{value: 0x01bb, lo: 0xbc, hi: 0xbf},\n\t// Block 0x92, offset 0x320\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x01c7, lo: 0x80, hi: 0x94},\n\t{value: 0x045b, lo: 0x95, hi: 0x95},\n\t{value: 0x01c7, lo: 0x96, hi: 0x96},\n\t{value: 0x01d0, lo: 0x97, hi: 0x97},\n\t{value: 0x01d6, lo: 0x98, hi: 0x98},\n\t{value: 0x01fa, lo: 0x99, hi: 0x99},\n\t{value: 0x01eb, lo: 0x9a, hi: 0x9a},\n\t{value: 0x01e8, lo: 0x9b, hi: 0x9b},\n\t{value: 0x0173, lo: 0x9c, hi: 0xac},\n\t{value: 0x0188, lo: 0xad, hi: 0xad},\n\t{value: 0x01a6, lo: 0xae, hi: 0xb4},\n\t{value: 0x045f, lo: 0xb5, hi: 0xb5},\n\t{value: 0x01bb, lo: 0xb6, hi: 0xbf},\n\t// Block 0x93, offset 0x32e\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x01d9, lo: 0x80, hi: 0x8e},\n\t{value: 0x045b, lo: 0x8f, hi: 0x8f},\n\t{value: 0x01c7, lo: 0x90, hi: 0x90},\n\t{value: 0x01d0, lo: 0x91, hi: 0x91},\n\t{value: 0x01d6, lo: 0x92, hi: 0x92},\n\t{value: 0x01fa, lo: 0x93, hi: 0x93},\n\t{value: 0x01eb, lo: 0x94, hi: 0x94},\n\t{value: 0x01e8, lo: 0x95, hi: 0x95},\n\t{value: 0x0173, lo: 0x96, hi: 0xa6},\n\t{value: 0x0188, lo: 0xa7, hi: 0xa7},\n\t{value: 0x01a6, lo: 0xa8, hi: 0xae},\n\t{value: 0x045f, lo: 0xaf, hi: 0xaf},\n\t{value: 0x01bb, lo: 0xb0, hi: 0xbf},\n\t// Block 0x94, offset 0x33c\n\t{value: 0x0003, lo: 0x0d},\n\t{value: 0x01eb, lo: 0x80, hi: 0x88},\n\t{value: 0x045b, lo: 0x89, hi: 0x89},\n\t{value: 0x01c7, lo: 0x8a, hi: 0x8a},\n\t{value: 0x01d0, lo: 0x8b, hi: 0x8b},\n\t{value: 0x01d6, lo: 0x8c, hi: 0x8c},\n\t{value: 0x01fa, lo: 0x8d, hi: 0x8d},\n\t{value: 0x01eb, lo: 0x8e, hi: 0x8e},\n\t{value: 0x01e8, lo: 0x8f, hi: 0x8f},\n\t{value: 0x0173, lo: 0x90, hi: 0xa0},\n\t{value: 0x0188, lo: 0xa1, hi: 0xa1},\n\t{value: 0x01a6, lo: 0xa2, hi: 0xa8},\n\t{value: 0x045f, lo: 0xa9, hi: 0xa9},\n\t{value: 0x01bb, lo: 0xaa, hi: 0xbf},\n\t// Block 0x95, offset 0x34a\n\t{value: 0x0000, lo: 0x05},\n\t{value: 0x8132, lo: 0x80, hi: 0x86},\n\t{value: 0x8132, lo: 0x88, hi: 0x98},\n\t{value: 0x8132, lo: 0x9b, hi: 0xa1},\n\t{value: 0x8132, lo: 0xa3, hi: 0xa4},\n\t{value: 0x8132, lo: 0xa6, hi: 0xaa},\n\t// Block 0x96, offset 0x350\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x812d, lo: 0x90, hi: 0x96},\n\t// Block 0x97, offset 0x352\n\t{value: 0x0000, lo: 0x02},\n\t{value: 0x8132, lo: 0x84, hi: 0x89},\n\t{value: 0x8102, lo: 0x8a, hi: 0x8a},\n\t// Block 0x98, offset 0x355\n\t{value: 0x0002, lo: 0x09},\n\t{value: 0x0063, lo: 0x80, hi: 0x89},\n\t{value: 0x1951, lo: 0x8a, hi: 0x8a},\n\t{value: 0x1981, lo: 0x8b, hi: 0x8b},\n\t{value: 0x199c, lo: 0x8c, hi: 0x8c},\n\t{value: 0x19a2, lo: 0x8d, hi: 0x8d},\n\t{value: 0x1bc0, lo: 0x8e, hi: 0x8e},\n\t{value: 0x19ae, lo: 0x8f, hi: 0x8f},\n\t{value: 0x197b, lo: 0xaa, hi: 0xaa},\n\t{value: 0x197e, lo: 0xab, hi: 0xab},\n\t// Block 0x99, offset 0x35f\n\t{value: 0x0000, lo: 0x01},\n\t{value: 0x193f, lo: 0x90, hi: 0x90},\n\t// Block 0x9a, offset 0x361\n\t{value: 0x0028, lo: 0x09},\n\t{value: 0x2862, lo: 0x80, hi: 0x80},\n\t{value: 0x2826, lo: 0x81, hi: 0x81},\n\t{value: 0x2830, lo: 0x82, hi: 0x82},\n\t{value: 0x2844, lo: 0x83, hi: 0x84},\n\t{value: 0x284e, lo: 0x85, hi: 0x86},\n\t{value: 0x283a, lo: 0x87, hi: 0x87},\n\t{value: 0x2858, lo: 0x88, hi: 0x88},\n\t{value: 0x0b6f, lo: 0x90, hi: 0x90},\n\t{value: 0x08e7, lo: 0x91, hi: 0x91},\n}\n\n// recompMap: 7520 bytes (entries only)\nvar recompMap map[uint32]rune\nvar recompMapOnce sync.Once\n\nconst recompMapPacked = \"\" +\n\t\"\\x00A\\x03\\x00\\x00\\x00\\x00\\xc0\" + // 0x00410300: 0x000000C0\n\t\"\\x00A\\x03\\x01\\x00\\x00\\x00\\xc1\" + // 0x00410301: 0x000000C1\n\t\"\\x00A\\x03\\x02\\x00\\x00\\x00\\xc2\" + // 0x00410302: 0x000000C2\n\t\"\\x00A\\x03\\x03\\x00\\x00\\x00\\xc3\" + // 0x00410303: 0x000000C3\n\t\"\\x00A\\x03\\b\\x00\\x00\\x00\\xc4\" + // 0x00410308: 0x000000C4\n\t\"\\x00A\\x03\\n\\x00\\x00\\x00\\xc5\" + // 0x0041030A: 0x000000C5\n\t\"\\x00C\\x03'\\x00\\x00\\x00\\xc7\" + // 0x00430327: 0x000000C7\n\t\"\\x00E\\x03\\x00\\x00\\x00\\x00\\xc8\" + // 0x00450300: 0x000000C8\n\t\"\\x00E\\x03\\x01\\x00\\x00\\x00\\xc9\" + // 0x00450301: 0x000000C9\n\t\"\\x00E\\x03\\x02\\x00\\x00\\x00\\xca\" + // 0x00450302: 0x000000CA\n\t\"\\x00E\\x03\\b\\x00\\x00\\x00\\xcb\" + // 0x00450308: 0x000000CB\n\t\"\\x00I\\x03\\x00\\x00\\x00\\x00\\xcc\" + // 0x00490300: 0x000000CC\n\t\"\\x00I\\x03\\x01\\x00\\x00\\x00\\xcd\" + // 0x00490301: 0x000000CD\n\t\"\\x00I\\x03\\x02\\x00\\x00\\x00\\xce\" + // 0x00490302: 0x000000CE\n\t\"\\x00I\\x03\\b\\x00\\x00\\x00\\xcf\" + // 0x00490308: 0x000000CF\n\t\"\\x00N\\x03\\x03\\x00\\x00\\x00\\xd1\" + // 0x004E0303: 0x000000D1\n\t\"\\x00O\\x03\\x00\\x00\\x00\\x00\\xd2\" + // 0x004F0300: 0x000000D2\n\t\"\\x00O\\x03\\x01\\x00\\x00\\x00\\xd3\" + // 0x004F0301: 0x000000D3\n\t\"\\x00O\\x03\\x02\\x00\\x00\\x00\\xd4\" + // 0x004F0302: 0x000000D4\n\t\"\\x00O\\x03\\x03\\x00\\x00\\x00\\xd5\" + // 0x004F0303: 0x000000D5\n\t\"\\x00O\\x03\\b\\x00\\x00\\x00\\xd6\" + // 0x004F0308: 0x000000D6\n\t\"\\x00U\\x03\\x00\\x00\\x00\\x00\\xd9\" + // 0x00550300: 0x000000D9\n\t\"\\x00U\\x03\\x01\\x00\\x00\\x00\\xda\" + // 0x00550301: 0x000000DA\n\t\"\\x00U\\x03\\x02\\x00\\x00\\x00\\xdb\" + // 0x00550302: 0x000000DB\n\t\"\\x00U\\x03\\b\\x00\\x00\\x00\\xdc\" + // 0x00550308: 0x000000DC\n\t\"\\x00Y\\x03\\x01\\x00\\x00\\x00\\xdd\" + // 0x00590301: 0x000000DD\n\t\"\\x00a\\x03\\x00\\x00\\x00\\x00\\xe0\" + // 0x00610300: 0x000000E0\n\t\"\\x00a\\x03\\x01\\x00\\x00\\x00\\xe1\" + // 0x00610301: 0x000000E1\n\t\"\\x00a\\x03\\x02\\x00\\x00\\x00\\xe2\" + // 0x00610302: 0x000000E2\n\t\"\\x00a\\x03\\x03\\x00\\x00\\x00\\xe3\" + // 0x00610303: 0x000000E3\n\t\"\\x00a\\x03\\b\\x00\\x00\\x00\\xe4\" + // 0x00610308: 0x000000E4\n\t\"\\x00a\\x03\\n\\x00\\x00\\x00\\xe5\" + // 0x0061030A: 0x000000E5\n\t\"\\x00c\\x03'\\x00\\x00\\x00\\xe7\" + // 0x00630327: 0x000000E7\n\t\"\\x00e\\x03\\x00\\x00\\x00\\x00\\xe8\" + // 0x00650300: 0x000000E8\n\t\"\\x00e\\x03\\x01\\x00\\x00\\x00\\xe9\" + // 0x00650301: 0x000000E9\n\t\"\\x00e\\x03\\x02\\x00\\x00\\x00\\xea\" + // 0x00650302: 0x000000EA\n\t\"\\x00e\\x03\\b\\x00\\x00\\x00\\xeb\" + // 0x00650308: 0x000000EB\n\t\"\\x00i\\x03\\x00\\x00\\x00\\x00\\xec\" + // 0x00690300: 0x000000EC\n\t\"\\x00i\\x03\\x01\\x00\\x00\\x00\\xed\" + // 0x00690301: 0x000000ED\n\t\"\\x00i\\x03\\x02\\x00\\x00\\x00\\xee\" + // 0x00690302: 0x000000EE\n\t\"\\x00i\\x03\\b\\x00\\x00\\x00\\xef\" + // 0x00690308: 0x000000EF\n\t\"\\x00n\\x03\\x03\\x00\\x00\\x00\\xf1\" + // 0x006E0303: 0x000000F1\n\t\"\\x00o\\x03\\x00\\x00\\x00\\x00\\xf2\" + // 0x006F0300: 0x000000F2\n\t\"\\x00o\\x03\\x01\\x00\\x00\\x00\\xf3\" + // 0x006F0301: 0x000000F3\n\t\"\\x00o\\x03\\x02\\x00\\x00\\x00\\xf4\" + // 0x006F0302: 0x000000F4\n\t\"\\x00o\\x03\\x03\\x00\\x00\\x00\\xf5\" + // 0x006F0303: 0x000000F5\n\t\"\\x00o\\x03\\b\\x00\\x00\\x00\\xf6\" + // 0x006F0308: 0x000000F6\n\t\"\\x00u\\x03\\x00\\x00\\x00\\x00\\xf9\" + // 0x00750300: 0x000000F9\n\t\"\\x00u\\x03\\x01\\x00\\x00\\x00\\xfa\" + // 0x00750301: 0x000000FA\n\t\"\\x00u\\x03\\x02\\x00\\x00\\x00\\xfb\" + // 0x00750302: 0x000000FB\n\t\"\\x00u\\x03\\b\\x00\\x00\\x00\\xfc\" + // 0x00750308: 0x000000FC\n\t\"\\x00y\\x03\\x01\\x00\\x00\\x00\\xfd\" + // 0x00790301: 0x000000FD\n\t\"\\x00y\\x03\\b\\x00\\x00\\x00\\xff\" + // 0x00790308: 0x000000FF\n\t\"\\x00A\\x03\\x04\\x00\\x00\\x01\\x00\" + // 0x00410304: 0x00000100\n\t\"\\x00a\\x03\\x04\\x00\\x00\\x01\\x01\" + // 0x00610304: 0x00000101\n\t\"\\x00A\\x03\\x06\\x00\\x00\\x01\\x02\" + // 0x00410306: 0x00000102\n\t\"\\x00a\\x03\\x06\\x00\\x00\\x01\\x03\" + // 0x00610306: 0x00000103\n\t\"\\x00A\\x03(\\x00\\x00\\x01\\x04\" + // 0x00410328: 0x00000104\n\t\"\\x00a\\x03(\\x00\\x00\\x01\\x05\" + // 0x00610328: 0x00000105\n\t\"\\x00C\\x03\\x01\\x00\\x00\\x01\\x06\" + // 0x00430301: 0x00000106\n\t\"\\x00c\\x03\\x01\\x00\\x00\\x01\\a\" + // 0x00630301: 0x00000107\n\t\"\\x00C\\x03\\x02\\x00\\x00\\x01\\b\" + // 0x00430302: 0x00000108\n\t\"\\x00c\\x03\\x02\\x00\\x00\\x01\\t\" + // 0x00630302: 0x00000109\n\t\"\\x00C\\x03\\a\\x00\\x00\\x01\\n\" + // 0x00430307: 0x0000010A\n\t\"\\x00c\\x03\\a\\x00\\x00\\x01\\v\" + // 0x00630307: 0x0000010B\n\t\"\\x00C\\x03\\f\\x00\\x00\\x01\\f\" + // 0x0043030C: 0x0000010C\n\t\"\\x00c\\x03\\f\\x00\\x00\\x01\\r\" + // 0x0063030C: 0x0000010D\n\t\"\\x00D\\x03\\f\\x00\\x00\\x01\\x0e\" + // 0x0044030C: 0x0000010E\n\t\"\\x00d\\x03\\f\\x00\\x00\\x01\\x0f\" + // 0x0064030C: 0x0000010F\n\t\"\\x00E\\x03\\x04\\x00\\x00\\x01\\x12\" + // 0x00450304: 0x00000112\n\t\"\\x00e\\x03\\x04\\x00\\x00\\x01\\x13\" + // 0x00650304: 0x00000113\n\t\"\\x00E\\x03\\x06\\x00\\x00\\x01\\x14\" + // 0x00450306: 0x00000114\n\t\"\\x00e\\x03\\x06\\x00\\x00\\x01\\x15\" + // 0x00650306: 0x00000115\n\t\"\\x00E\\x03\\a\\x00\\x00\\x01\\x16\" + // 0x00450307: 0x00000116\n\t\"\\x00e\\x03\\a\\x00\\x00\\x01\\x17\" + // 0x00650307: 0x00000117\n\t\"\\x00E\\x03(\\x00\\x00\\x01\\x18\" + // 0x00450328: 0x00000118\n\t\"\\x00e\\x03(\\x00\\x00\\x01\\x19\" + // 0x00650328: 0x00000119\n\t\"\\x00E\\x03\\f\\x00\\x00\\x01\\x1a\" + // 0x0045030C: 0x0000011A\n\t\"\\x00e\\x03\\f\\x00\\x00\\x01\\x1b\" + // 0x0065030C: 0x0000011B\n\t\"\\x00G\\x03\\x02\\x00\\x00\\x01\\x1c\" + // 0x00470302: 0x0000011C\n\t\"\\x00g\\x03\\x02\\x00\\x00\\x01\\x1d\" + // 0x00670302: 0x0000011D\n\t\"\\x00G\\x03\\x06\\x00\\x00\\x01\\x1e\" + // 0x00470306: 0x0000011E\n\t\"\\x00g\\x03\\x06\\x00\\x00\\x01\\x1f\" + // 0x00670306: 0x0000011F\n\t\"\\x00G\\x03\\a\\x00\\x00\\x01 \" + // 0x00470307: 0x00000120\n\t\"\\x00g\\x03\\a\\x00\\x00\\x01!\" + // 0x00670307: 0x00000121\n\t\"\\x00G\\x03'\\x00\\x00\\x01\\\"\" + // 0x00470327: 0x00000122\n\t\"\\x00g\\x03'\\x00\\x00\\x01#\" + // 0x00670327: 0x00000123\n\t\"\\x00H\\x03\\x02\\x00\\x00\\x01$\" + // 0x00480302: 0x00000124\n\t\"\\x00h\\x03\\x02\\x00\\x00\\x01%\" + // 0x00680302: 0x00000125\n\t\"\\x00I\\x03\\x03\\x00\\x00\\x01(\" + // 0x00490303: 0x00000128\n\t\"\\x00i\\x03\\x03\\x00\\x00\\x01)\" + // 0x00690303: 0x00000129\n\t\"\\x00I\\x03\\x04\\x00\\x00\\x01*\" + // 0x00490304: 0x0000012A\n\t\"\\x00i\\x03\\x04\\x00\\x00\\x01+\" + // 0x00690304: 0x0000012B\n\t\"\\x00I\\x03\\x06\\x00\\x00\\x01,\" + // 0x00490306: 0x0000012C\n\t\"\\x00i\\x03\\x06\\x00\\x00\\x01-\" + // 0x00690306: 0x0000012D\n\t\"\\x00I\\x03(\\x00\\x00\\x01.\" + // 0x00490328: 0x0000012E\n\t\"\\x00i\\x03(\\x00\\x00\\x01/\" + // 0x00690328: 0x0000012F\n\t\"\\x00I\\x03\\a\\x00\\x00\\x010\" + // 0x00490307: 0x00000130\n\t\"\\x00J\\x03\\x02\\x00\\x00\\x014\" + // 0x004A0302: 0x00000134\n\t\"\\x00j\\x03\\x02\\x00\\x00\\x015\" + // 0x006A0302: 0x00000135\n\t\"\\x00K\\x03'\\x00\\x00\\x016\" + // 0x004B0327: 0x00000136\n\t\"\\x00k\\x03'\\x00\\x00\\x017\" + // 0x006B0327: 0x00000137\n\t\"\\x00L\\x03\\x01\\x00\\x00\\x019\" + // 0x004C0301: 0x00000139\n\t\"\\x00l\\x03\\x01\\x00\\x00\\x01:\" + // 0x006C0301: 0x0000013A\n\t\"\\x00L\\x03'\\x00\\x00\\x01;\" + // 0x004C0327: 0x0000013B\n\t\"\\x00l\\x03'\\x00\\x00\\x01<\" + // 0x006C0327: 0x0000013C\n\t\"\\x00L\\x03\\f\\x00\\x00\\x01=\" + // 0x004C030C: 0x0000013D\n\t\"\\x00l\\x03\\f\\x00\\x00\\x01>\" + // 0x006C030C: 0x0000013E\n\t\"\\x00N\\x03\\x01\\x00\\x00\\x01C\" + // 0x004E0301: 0x00000143\n\t\"\\x00n\\x03\\x01\\x00\\x00\\x01D\" + // 0x006E0301: 0x00000144\n\t\"\\x00N\\x03'\\x00\\x00\\x01E\" + // 0x004E0327: 0x00000145\n\t\"\\x00n\\x03'\\x00\\x00\\x01F\" + // 0x006E0327: 0x00000146\n\t\"\\x00N\\x03\\f\\x00\\x00\\x01G\" + // 0x004E030C: 0x00000147\n\t\"\\x00n\\x03\\f\\x00\\x00\\x01H\" + // 0x006E030C: 0x00000148\n\t\"\\x00O\\x03\\x04\\x00\\x00\\x01L\" + // 0x004F0304: 0x0000014C\n\t\"\\x00o\\x03\\x04\\x00\\x00\\x01M\" + // 0x006F0304: 0x0000014D\n\t\"\\x00O\\x03\\x06\\x00\\x00\\x01N\" + // 0x004F0306: 0x0000014E\n\t\"\\x00o\\x03\\x06\\x00\\x00\\x01O\" + // 0x006F0306: 0x0000014F\n\t\"\\x00O\\x03\\v\\x00\\x00\\x01P\" + // 0x004F030B: 0x00000150\n\t\"\\x00o\\x03\\v\\x00\\x00\\x01Q\" + // 0x006F030B: 0x00000151\n\t\"\\x00R\\x03\\x01\\x00\\x00\\x01T\" + // 0x00520301: 0x00000154\n\t\"\\x00r\\x03\\x01\\x00\\x00\\x01U\" + // 0x00720301: 0x00000155\n\t\"\\x00R\\x03'\\x00\\x00\\x01V\" + // 0x00520327: 0x00000156\n\t\"\\x00r\\x03'\\x00\\x00\\x01W\" + // 0x00720327: 0x00000157\n\t\"\\x00R\\x03\\f\\x00\\x00\\x01X\" + // 0x0052030C: 0x00000158\n\t\"\\x00r\\x03\\f\\x00\\x00\\x01Y\" + // 0x0072030C: 0x00000159\n\t\"\\x00S\\x03\\x01\\x00\\x00\\x01Z\" + // 0x00530301: 0x0000015A\n\t\"\\x00s\\x03\\x01\\x00\\x00\\x01[\" + // 0x00730301: 0x0000015B\n\t\"\\x00S\\x03\\x02\\x00\\x00\\x01\\\\\" + // 0x00530302: 0x0000015C\n\t\"\\x00s\\x03\\x02\\x00\\x00\\x01]\" + // 0x00730302: 0x0000015D\n\t\"\\x00S\\x03'\\x00\\x00\\x01^\" + // 0x00530327: 0x0000015E\n\t\"\\x00s\\x03'\\x00\\x00\\x01_\" + // 0x00730327: 0x0000015F\n\t\"\\x00S\\x03\\f\\x00\\x00\\x01`\" + // 0x0053030C: 0x00000160\n\t\"\\x00s\\x03\\f\\x00\\x00\\x01a\" + // 0x0073030C: 0x00000161\n\t\"\\x00T\\x03'\\x00\\x00\\x01b\" + // 0x00540327: 0x00000162\n\t\"\\x00t\\x03'\\x00\\x00\\x01c\" + // 0x00740327: 0x00000163\n\t\"\\x00T\\x03\\f\\x00\\x00\\x01d\" + // 0x0054030C: 0x00000164\n\t\"\\x00t\\x03\\f\\x00\\x00\\x01e\" + // 0x0074030C: 0x00000165\n\t\"\\x00U\\x03\\x03\\x00\\x00\\x01h\" + // 0x00550303: 0x00000168\n\t\"\\x00u\\x03\\x03\\x00\\x00\\x01i\" + // 0x00750303: 0x00000169\n\t\"\\x00U\\x03\\x04\\x00\\x00\\x01j\" + // 0x00550304: 0x0000016A\n\t\"\\x00u\\x03\\x04\\x00\\x00\\x01k\" + // 0x00750304: 0x0000016B\n\t\"\\x00U\\x03\\x06\\x00\\x00\\x01l\" + // 0x00550306: 0x0000016C\n\t\"\\x00u\\x03\\x06\\x00\\x00\\x01m\" + // 0x00750306: 0x0000016D\n\t\"\\x00U\\x03\\n\\x00\\x00\\x01n\" + // 0x0055030A: 0x0000016E\n\t\"\\x00u\\x03\\n\\x00\\x00\\x01o\" + // 0x0075030A: 0x0000016F\n\t\"\\x00U\\x03\\v\\x00\\x00\\x01p\" + // 0x0055030B: 0x00000170\n\t\"\\x00u\\x03\\v\\x00\\x00\\x01q\" + // 0x0075030B: 0x00000171\n\t\"\\x00U\\x03(\\x00\\x00\\x01r\" + // 0x00550328: 0x00000172\n\t\"\\x00u\\x03(\\x00\\x00\\x01s\" + // 0x00750328: 0x00000173\n\t\"\\x00W\\x03\\x02\\x00\\x00\\x01t\" + // 0x00570302: 0x00000174\n\t\"\\x00w\\x03\\x02\\x00\\x00\\x01u\" + // 0x00770302: 0x00000175\n\t\"\\x00Y\\x03\\x02\\x00\\x00\\x01v\" + // 0x00590302: 0x00000176\n\t\"\\x00y\\x03\\x02\\x00\\x00\\x01w\" + // 0x00790302: 0x00000177\n\t\"\\x00Y\\x03\\b\\x00\\x00\\x01x\" + // 0x00590308: 0x00000178\n\t\"\\x00Z\\x03\\x01\\x00\\x00\\x01y\" + // 0x005A0301: 0x00000179\n\t\"\\x00z\\x03\\x01\\x00\\x00\\x01z\" + // 0x007A0301: 0x0000017A\n\t\"\\x00Z\\x03\\a\\x00\\x00\\x01{\" + // 0x005A0307: 0x0000017B\n\t\"\\x00z\\x03\\a\\x00\\x00\\x01|\" + // 0x007A0307: 0x0000017C\n\t\"\\x00Z\\x03\\f\\x00\\x00\\x01}\" + // 0x005A030C: 0x0000017D\n\t\"\\x00z\\x03\\f\\x00\\x00\\x01~\" + // 0x007A030C: 0x0000017E\n\t\"\\x00O\\x03\\x1b\\x00\\x00\\x01\\xa0\" + // 0x004F031B: 0x000001A0\n\t\"\\x00o\\x03\\x1b\\x00\\x00\\x01\\xa1\" + // 0x006F031B: 0x000001A1\n\t\"\\x00U\\x03\\x1b\\x00\\x00\\x01\\xaf\" + // 0x0055031B: 0x000001AF\n\t\"\\x00u\\x03\\x1b\\x00\\x00\\x01\\xb0\" + // 0x0075031B: 0x000001B0\n\t\"\\x00A\\x03\\f\\x00\\x00\\x01\\xcd\" + // 0x0041030C: 0x000001CD\n\t\"\\x00a\\x03\\f\\x00\\x00\\x01\\xce\" + // 0x0061030C: 0x000001CE\n\t\"\\x00I\\x03\\f\\x00\\x00\\x01\\xcf\" + // 0x0049030C: 0x000001CF\n\t\"\\x00i\\x03\\f\\x00\\x00\\x01\\xd0\" + // 0x0069030C: 0x000001D0\n\t\"\\x00O\\x03\\f\\x00\\x00\\x01\\xd1\" + // 0x004F030C: 0x000001D1\n\t\"\\x00o\\x03\\f\\x00\\x00\\x01\\xd2\" + // 0x006F030C: 0x000001D2\n\t\"\\x00U\\x03\\f\\x00\\x00\\x01\\xd3\" + // 0x0055030C: 0x000001D3\n\t\"\\x00u\\x03\\f\\x00\\x00\\x01\\xd4\" + // 0x0075030C: 0x000001D4\n\t\"\\x00\\xdc\\x03\\x04\\x00\\x00\\x01\\xd5\" + // 0x00DC0304: 0x000001D5\n\t\"\\x00\\xfc\\x03\\x04\\x00\\x00\\x01\\xd6\" + // 0x00FC0304: 0x000001D6\n\t\"\\x00\\xdc\\x03\\x01\\x00\\x00\\x01\\xd7\" + // 0x00DC0301: 0x000001D7\n\t\"\\x00\\xfc\\x03\\x01\\x00\\x00\\x01\\xd8\" + // 0x00FC0301: 0x000001D8\n\t\"\\x00\\xdc\\x03\\f\\x00\\x00\\x01\\xd9\" + // 0x00DC030C: 0x000001D9\n\t\"\\x00\\xfc\\x03\\f\\x00\\x00\\x01\\xda\" + // 0x00FC030C: 0x000001DA\n\t\"\\x00\\xdc\\x03\\x00\\x00\\x00\\x01\\xdb\" + // 0x00DC0300: 0x000001DB\n\t\"\\x00\\xfc\\x03\\x00\\x00\\x00\\x01\\xdc\" + // 0x00FC0300: 0x000001DC\n\t\"\\x00\\xc4\\x03\\x04\\x00\\x00\\x01\\xde\" + // 0x00C40304: 0x000001DE\n\t\"\\x00\\xe4\\x03\\x04\\x00\\x00\\x01\\xdf\" + // 0x00E40304: 0x000001DF\n\t\"\\x02&\\x03\\x04\\x00\\x00\\x01\\xe0\" + // 0x02260304: 0x000001E0\n\t\"\\x02'\\x03\\x04\\x00\\x00\\x01\\xe1\" + // 0x02270304: 0x000001E1\n\t\"\\x00\\xc6\\x03\\x04\\x00\\x00\\x01\\xe2\" + // 0x00C60304: 0x000001E2\n\t\"\\x00\\xe6\\x03\\x04\\x00\\x00\\x01\\xe3\" + // 0x00E60304: 0x000001E3\n\t\"\\x00G\\x03\\f\\x00\\x00\\x01\\xe6\" + // 0x0047030C: 0x000001E6\n\t\"\\x00g\\x03\\f\\x00\\x00\\x01\\xe7\" + // 0x0067030C: 0x000001E7\n\t\"\\x00K\\x03\\f\\x00\\x00\\x01\\xe8\" + // 0x004B030C: 0x000001E8\n\t\"\\x00k\\x03\\f\\x00\\x00\\x01\\xe9\" + // 0x006B030C: 0x000001E9\n\t\"\\x00O\\x03(\\x00\\x00\\x01\\xea\" + // 0x004F0328: 0x000001EA\n\t\"\\x00o\\x03(\\x00\\x00\\x01\\xeb\" + // 0x006F0328: 0x000001EB\n\t\"\\x01\\xea\\x03\\x04\\x00\\x00\\x01\\xec\" + // 0x01EA0304: 0x000001EC\n\t\"\\x01\\xeb\\x03\\x04\\x00\\x00\\x01\\xed\" + // 0x01EB0304: 0x000001ED\n\t\"\\x01\\xb7\\x03\\f\\x00\\x00\\x01\\xee\" + // 0x01B7030C: 0x000001EE\n\t\"\\x02\\x92\\x03\\f\\x00\\x00\\x01\\xef\" + // 0x0292030C: 0x000001EF\n\t\"\\x00j\\x03\\f\\x00\\x00\\x01\\xf0\" + // 0x006A030C: 0x000001F0\n\t\"\\x00G\\x03\\x01\\x00\\x00\\x01\\xf4\" + // 0x00470301: 0x000001F4\n\t\"\\x00g\\x03\\x01\\x00\\x00\\x01\\xf5\" + // 0x00670301: 0x000001F5\n\t\"\\x00N\\x03\\x00\\x00\\x00\\x01\\xf8\" + // 0x004E0300: 0x000001F8\n\t\"\\x00n\\x03\\x00\\x00\\x00\\x01\\xf9\" + // 0x006E0300: 0x000001F9\n\t\"\\x00\\xc5\\x03\\x01\\x00\\x00\\x01\\xfa\" + // 0x00C50301: 0x000001FA\n\t\"\\x00\\xe5\\x03\\x01\\x00\\x00\\x01\\xfb\" + // 0x00E50301: 0x000001FB\n\t\"\\x00\\xc6\\x03\\x01\\x00\\x00\\x01\\xfc\" + // 0x00C60301: 0x000001FC\n\t\"\\x00\\xe6\\x03\\x01\\x00\\x00\\x01\\xfd\" + // 0x00E60301: 0x000001FD\n\t\"\\x00\\xd8\\x03\\x01\\x00\\x00\\x01\\xfe\" + // 0x00D80301: 0x000001FE\n\t\"\\x00\\xf8\\x03\\x01\\x00\\x00\\x01\\xff\" + // 0x00F80301: 0x000001FF\n\t\"\\x00A\\x03\\x0f\\x00\\x00\\x02\\x00\" + // 0x0041030F: 0x00000200\n\t\"\\x00a\\x03\\x0f\\x00\\x00\\x02\\x01\" + // 0x0061030F: 0x00000201\n\t\"\\x00A\\x03\\x11\\x00\\x00\\x02\\x02\" + // 0x00410311: 0x00000202\n\t\"\\x00a\\x03\\x11\\x00\\x00\\x02\\x03\" + // 0x00610311: 0x00000203\n\t\"\\x00E\\x03\\x0f\\x00\\x00\\x02\\x04\" + // 0x0045030F: 0x00000204\n\t\"\\x00e\\x03\\x0f\\x00\\x00\\x02\\x05\" + // 0x0065030F: 0x00000205\n\t\"\\x00E\\x03\\x11\\x00\\x00\\x02\\x06\" + // 0x00450311: 0x00000206\n\t\"\\x00e\\x03\\x11\\x00\\x00\\x02\\a\" + // 0x00650311: 0x00000207\n\t\"\\x00I\\x03\\x0f\\x00\\x00\\x02\\b\" + // 0x0049030F: 0x00000208\n\t\"\\x00i\\x03\\x0f\\x00\\x00\\x02\\t\" + // 0x0069030F: 0x00000209\n\t\"\\x00I\\x03\\x11\\x00\\x00\\x02\\n\" + // 0x00490311: 0x0000020A\n\t\"\\x00i\\x03\\x11\\x00\\x00\\x02\\v\" + // 0x00690311: 0x0000020B\n\t\"\\x00O\\x03\\x0f\\x00\\x00\\x02\\f\" + // 0x004F030F: 0x0000020C\n\t\"\\x00o\\x03\\x0f\\x00\\x00\\x02\\r\" + // 0x006F030F: 0x0000020D\n\t\"\\x00O\\x03\\x11\\x00\\x00\\x02\\x0e\" + // 0x004F0311: 0x0000020E\n\t\"\\x00o\\x03\\x11\\x00\\x00\\x02\\x0f\" + // 0x006F0311: 0x0000020F\n\t\"\\x00R\\x03\\x0f\\x00\\x00\\x02\\x10\" + // 0x0052030F: 0x00000210\n\t\"\\x00r\\x03\\x0f\\x00\\x00\\x02\\x11\" + // 0x0072030F: 0x00000211\n\t\"\\x00R\\x03\\x11\\x00\\x00\\x02\\x12\" + // 0x00520311: 0x00000212\n\t\"\\x00r\\x03\\x11\\x00\\x00\\x02\\x13\" + // 0x00720311: 0x00000213\n\t\"\\x00U\\x03\\x0f\\x00\\x00\\x02\\x14\" + // 0x0055030F: 0x00000214\n\t\"\\x00u\\x03\\x0f\\x00\\x00\\x02\\x15\" + // 0x0075030F: 0x00000215\n\t\"\\x00U\\x03\\x11\\x00\\x00\\x02\\x16\" + // 0x00550311: 0x00000216\n\t\"\\x00u\\x03\\x11\\x00\\x00\\x02\\x17\" + // 0x00750311: 0x00000217\n\t\"\\x00S\\x03&\\x00\\x00\\x02\\x18\" + // 0x00530326: 0x00000218\n\t\"\\x00s\\x03&\\x00\\x00\\x02\\x19\" + // 0x00730326: 0x00000219\n\t\"\\x00T\\x03&\\x00\\x00\\x02\\x1a\" + // 0x00540326: 0x0000021A\n\t\"\\x00t\\x03&\\x00\\x00\\x02\\x1b\" + // 0x00740326: 0x0000021B\n\t\"\\x00H\\x03\\f\\x00\\x00\\x02\\x1e\" + // 0x0048030C: 0x0000021E\n\t\"\\x00h\\x03\\f\\x00\\x00\\x02\\x1f\" + // 0x0068030C: 0x0000021F\n\t\"\\x00A\\x03\\a\\x00\\x00\\x02&\" + // 0x00410307: 0x00000226\n\t\"\\x00a\\x03\\a\\x00\\x00\\x02'\" + // 0x00610307: 0x00000227\n\t\"\\x00E\\x03'\\x00\\x00\\x02(\" + // 0x00450327: 0x00000228\n\t\"\\x00e\\x03'\\x00\\x00\\x02)\" + // 0x00650327: 0x00000229\n\t\"\\x00\\xd6\\x03\\x04\\x00\\x00\\x02*\" + // 0x00D60304: 0x0000022A\n\t\"\\x00\\xf6\\x03\\x04\\x00\\x00\\x02+\" + // 0x00F60304: 0x0000022B\n\t\"\\x00\\xd5\\x03\\x04\\x00\\x00\\x02,\" + // 0x00D50304: 0x0000022C\n\t\"\\x00\\xf5\\x03\\x04\\x00\\x00\\x02-\" + // 0x00F50304: 0x0000022D\n\t\"\\x00O\\x03\\a\\x00\\x00\\x02.\" + // 0x004F0307: 0x0000022E\n\t\"\\x00o\\x03\\a\\x00\\x00\\x02/\" + // 0x006F0307: 0x0000022F\n\t\"\\x02.\\x03\\x04\\x00\\x00\\x020\" + // 0x022E0304: 0x00000230\n\t\"\\x02/\\x03\\x04\\x00\\x00\\x021\" + // 0x022F0304: 0x00000231\n\t\"\\x00Y\\x03\\x04\\x00\\x00\\x022\" + // 0x00590304: 0x00000232\n\t\"\\x00y\\x03\\x04\\x00\\x00\\x023\" + // 0x00790304: 0x00000233\n\t\"\\x00\\xa8\\x03\\x01\\x00\\x00\\x03\\x85\" + // 0x00A80301: 0x00000385\n\t\"\\x03\\x91\\x03\\x01\\x00\\x00\\x03\\x86\" + // 0x03910301: 0x00000386\n\t\"\\x03\\x95\\x03\\x01\\x00\\x00\\x03\\x88\" + // 0x03950301: 0x00000388\n\t\"\\x03\\x97\\x03\\x01\\x00\\x00\\x03\\x89\" + // 0x03970301: 0x00000389\n\t\"\\x03\\x99\\x03\\x01\\x00\\x00\\x03\\x8a\" + // 0x03990301: 0x0000038A\n\t\"\\x03\\x9f\\x03\\x01\\x00\\x00\\x03\\x8c\" + // 0x039F0301: 0x0000038C\n\t\"\\x03\\xa5\\x03\\x01\\x00\\x00\\x03\\x8e\" + // 0x03A50301: 0x0000038E\n\t\"\\x03\\xa9\\x03\\x01\\x00\\x00\\x03\\x8f\" + // 0x03A90301: 0x0000038F\n\t\"\\x03\\xca\\x03\\x01\\x00\\x00\\x03\\x90\" + // 0x03CA0301: 0x00000390\n\t\"\\x03\\x99\\x03\\b\\x00\\x00\\x03\\xaa\" + // 0x03990308: 0x000003AA\n\t\"\\x03\\xa5\\x03\\b\\x00\\x00\\x03\\xab\" + // 0x03A50308: 0x000003AB\n\t\"\\x03\\xb1\\x03\\x01\\x00\\x00\\x03\\xac\" + // 0x03B10301: 0x000003AC\n\t\"\\x03\\xb5\\x03\\x01\\x00\\x00\\x03\\xad\" + // 0x03B50301: 0x000003AD\n\t\"\\x03\\xb7\\x03\\x01\\x00\\x00\\x03\\xae\" + // 0x03B70301: 0x000003AE\n\t\"\\x03\\xb9\\x03\\x01\\x00\\x00\\x03\\xaf\" + // 0x03B90301: 0x000003AF\n\t\"\\x03\\xcb\\x03\\x01\\x00\\x00\\x03\\xb0\" + // 0x03CB0301: 0x000003B0\n\t\"\\x03\\xb9\\x03\\b\\x00\\x00\\x03\\xca\" + // 0x03B90308: 0x000003CA\n\t\"\\x03\\xc5\\x03\\b\\x00\\x00\\x03\\xcb\" + // 0x03C50308: 0x000003CB\n\t\"\\x03\\xbf\\x03\\x01\\x00\\x00\\x03\\xcc\" + // 0x03BF0301: 0x000003CC\n\t\"\\x03\\xc5\\x03\\x01\\x00\\x00\\x03\\xcd\" + // 0x03C50301: 0x000003CD\n\t\"\\x03\\xc9\\x03\\x01\\x00\\x00\\x03\\xce\" + // 0x03C90301: 0x000003CE\n\t\"\\x03\\xd2\\x03\\x01\\x00\\x00\\x03\\xd3\" + // 0x03D20301: 0x000003D3\n\t\"\\x03\\xd2\\x03\\b\\x00\\x00\\x03\\xd4\" + // 0x03D20308: 0x000003D4\n\t\"\\x04\\x15\\x03\\x00\\x00\\x00\\x04\\x00\" + // 0x04150300: 0x00000400\n\t\"\\x04\\x15\\x03\\b\\x00\\x00\\x04\\x01\" + // 0x04150308: 0x00000401\n\t\"\\x04\\x13\\x03\\x01\\x00\\x00\\x04\\x03\" + // 0x04130301: 0x00000403\n\t\"\\x04\\x06\\x03\\b\\x00\\x00\\x04\\a\" + // 0x04060308: 0x00000407\n\t\"\\x04\\x1a\\x03\\x01\\x00\\x00\\x04\\f\" + // 0x041A0301: 0x0000040C\n\t\"\\x04\\x18\\x03\\x00\\x00\\x00\\x04\\r\" + // 0x04180300: 0x0000040D\n\t\"\\x04#\\x03\\x06\\x00\\x00\\x04\\x0e\" + // 0x04230306: 0x0000040E\n\t\"\\x04\\x18\\x03\\x06\\x00\\x00\\x04\\x19\" + // 0x04180306: 0x00000419\n\t\"\\x048\\x03\\x06\\x00\\x00\\x049\" + // 0x04380306: 0x00000439\n\t\"\\x045\\x03\\x00\\x00\\x00\\x04P\" + // 0x04350300: 0x00000450\n\t\"\\x045\\x03\\b\\x00\\x00\\x04Q\" + // 0x04350308: 0x00000451\n\t\"\\x043\\x03\\x01\\x00\\x00\\x04S\" + // 0x04330301: 0x00000453\n\t\"\\x04V\\x03\\b\\x00\\x00\\x04W\" + // 0x04560308: 0x00000457\n\t\"\\x04:\\x03\\x01\\x00\\x00\\x04\\\\\" + // 0x043A0301: 0x0000045C\n\t\"\\x048\\x03\\x00\\x00\\x00\\x04]\" + // 0x04380300: 0x0000045D\n\t\"\\x04C\\x03\\x06\\x00\\x00\\x04^\" + // 0x04430306: 0x0000045E\n\t\"\\x04t\\x03\\x0f\\x00\\x00\\x04v\" + // 0x0474030F: 0x00000476\n\t\"\\x04u\\x03\\x0f\\x00\\x00\\x04w\" + // 0x0475030F: 0x00000477\n\t\"\\x04\\x16\\x03\\x06\\x00\\x00\\x04\\xc1\" + // 0x04160306: 0x000004C1\n\t\"\\x046\\x03\\x06\\x00\\x00\\x04\\xc2\" + // 0x04360306: 0x000004C2\n\t\"\\x04\\x10\\x03\\x06\\x00\\x00\\x04\\xd0\" + // 0x04100306: 0x000004D0\n\t\"\\x040\\x03\\x06\\x00\\x00\\x04\\xd1\" + // 0x04300306: 0x000004D1\n\t\"\\x04\\x10\\x03\\b\\x00\\x00\\x04\\xd2\" + // 0x04100308: 0x000004D2\n\t\"\\x040\\x03\\b\\x00\\x00\\x04\\xd3\" + // 0x04300308: 0x000004D3\n\t\"\\x04\\x15\\x03\\x06\\x00\\x00\\x04\\xd6\" + // 0x04150306: 0x000004D6\n\t\"\\x045\\x03\\x06\\x00\\x00\\x04\\xd7\" + // 0x04350306: 0x000004D7\n\t\"\\x04\\xd8\\x03\\b\\x00\\x00\\x04\\xda\" + // 0x04D80308: 0x000004DA\n\t\"\\x04\\xd9\\x03\\b\\x00\\x00\\x04\\xdb\" + // 0x04D90308: 0x000004DB\n\t\"\\x04\\x16\\x03\\b\\x00\\x00\\x04\\xdc\" + // 0x04160308: 0x000004DC\n\t\"\\x046\\x03\\b\\x00\\x00\\x04\\xdd\" + // 0x04360308: 0x000004DD\n\t\"\\x04\\x17\\x03\\b\\x00\\x00\\x04\\xde\" + // 0x04170308: 0x000004DE\n\t\"\\x047\\x03\\b\\x00\\x00\\x04\\xdf\" + // 0x04370308: 0x000004DF\n\t\"\\x04\\x18\\x03\\x04\\x00\\x00\\x04\\xe2\" + // 0x04180304: 0x000004E2\n\t\"\\x048\\x03\\x04\\x00\\x00\\x04\\xe3\" + // 0x04380304: 0x000004E3\n\t\"\\x04\\x18\\x03\\b\\x00\\x00\\x04\\xe4\" + // 0x04180308: 0x000004E4\n\t\"\\x048\\x03\\b\\x00\\x00\\x04\\xe5\" + // 0x04380308: 0x000004E5\n\t\"\\x04\\x1e\\x03\\b\\x00\\x00\\x04\\xe6\" + // 0x041E0308: 0x000004E6\n\t\"\\x04>\\x03\\b\\x00\\x00\\x04\\xe7\" + // 0x043E0308: 0x000004E7\n\t\"\\x04\\xe8\\x03\\b\\x00\\x00\\x04\\xea\" + // 0x04E80308: 0x000004EA\n\t\"\\x04\\xe9\\x03\\b\\x00\\x00\\x04\\xeb\" + // 0x04E90308: 0x000004EB\n\t\"\\x04-\\x03\\b\\x00\\x00\\x04\\xec\" + // 0x042D0308: 0x000004EC\n\t\"\\x04M\\x03\\b\\x00\\x00\\x04\\xed\" + // 0x044D0308: 0x000004ED\n\t\"\\x04#\\x03\\x04\\x00\\x00\\x04\\xee\" + // 0x04230304: 0x000004EE\n\t\"\\x04C\\x03\\x04\\x00\\x00\\x04\\xef\" + // 0x04430304: 0x000004EF\n\t\"\\x04#\\x03\\b\\x00\\x00\\x04\\xf0\" + // 0x04230308: 0x000004F0\n\t\"\\x04C\\x03\\b\\x00\\x00\\x04\\xf1\" + // 0x04430308: 0x000004F1\n\t\"\\x04#\\x03\\v\\x00\\x00\\x04\\xf2\" + // 0x0423030B: 0x000004F2\n\t\"\\x04C\\x03\\v\\x00\\x00\\x04\\xf3\" + // 0x0443030B: 0x000004F3\n\t\"\\x04'\\x03\\b\\x00\\x00\\x04\\xf4\" + // 0x04270308: 0x000004F4\n\t\"\\x04G\\x03\\b\\x00\\x00\\x04\\xf5\" + // 0x04470308: 0x000004F5\n\t\"\\x04+\\x03\\b\\x00\\x00\\x04\\xf8\" + // 0x042B0308: 0x000004F8\n\t\"\\x04K\\x03\\b\\x00\\x00\\x04\\xf9\" + // 0x044B0308: 0x000004F9\n\t\"\\x06'\\x06S\\x00\\x00\\x06\\\"\" + // 0x06270653: 0x00000622\n\t\"\\x06'\\x06T\\x00\\x00\\x06#\" + // 0x06270654: 0x00000623\n\t\"\\x06H\\x06T\\x00\\x00\\x06$\" + // 0x06480654: 0x00000624\n\t\"\\x06'\\x06U\\x00\\x00\\x06%\" + // 0x06270655: 0x00000625\n\t\"\\x06J\\x06T\\x00\\x00\\x06&\" + // 0x064A0654: 0x00000626\n\t\"\\x06\\xd5\\x06T\\x00\\x00\\x06\\xc0\" + // 0x06D50654: 0x000006C0\n\t\"\\x06\\xc1\\x06T\\x00\\x00\\x06\\xc2\" + // 0x06C10654: 0x000006C2\n\t\"\\x06\\xd2\\x06T\\x00\\x00\\x06\\xd3\" + // 0x06D20654: 0x000006D3\n\t\"\\t(\\t<\\x00\\x00\\t)\" + // 0x0928093C: 0x00000929\n\t\"\\t0\\t<\\x00\\x00\\t1\" + // 0x0930093C: 0x00000931\n\t\"\\t3\\t<\\x00\\x00\\t4\" + // 0x0933093C: 0x00000934\n\t\"\\t\\xc7\\t\\xbe\\x00\\x00\\t\\xcb\" + // 0x09C709BE: 0x000009CB\n\t\"\\t\\xc7\\t\\xd7\\x00\\x00\\t\\xcc\" + // 0x09C709D7: 0x000009CC\n\t\"\\vG\\vV\\x00\\x00\\vH\" + // 0x0B470B56: 0x00000B48\n\t\"\\vG\\v>\\x00\\x00\\vK\" + // 0x0B470B3E: 0x00000B4B\n\t\"\\vG\\vW\\x00\\x00\\vL\" + // 0x0B470B57: 0x00000B4C\n\t\"\\v\\x92\\v\\xd7\\x00\\x00\\v\\x94\" + // 0x0B920BD7: 0x00000B94\n\t\"\\v\\xc6\\v\\xbe\\x00\\x00\\v\\xca\" + // 0x0BC60BBE: 0x00000BCA\n\t\"\\v\\xc7\\v\\xbe\\x00\\x00\\v\\xcb\" + // 0x0BC70BBE: 0x00000BCB\n\t\"\\v\\xc6\\v\\xd7\\x00\\x00\\v\\xcc\" + // 0x0BC60BD7: 0x00000BCC\n\t\"\\fF\\fV\\x00\\x00\\fH\" + // 0x0C460C56: 0x00000C48\n\t\"\\f\\xbf\\f\\xd5\\x00\\x00\\f\\xc0\" + // 0x0CBF0CD5: 0x00000CC0\n\t\"\\f\\xc6\\f\\xd5\\x00\\x00\\f\\xc7\" + // 0x0CC60CD5: 0x00000CC7\n\t\"\\f\\xc6\\f\\xd6\\x00\\x00\\f\\xc8\" + // 0x0CC60CD6: 0x00000CC8\n\t\"\\f\\xc6\\f\\xc2\\x00\\x00\\f\\xca\" + // 0x0CC60CC2: 0x00000CCA\n\t\"\\f\\xca\\f\\xd5\\x00\\x00\\f\\xcb\" + // 0x0CCA0CD5: 0x00000CCB\n\t\"\\rF\\r>\\x00\\x00\\rJ\" + // 0x0D460D3E: 0x00000D4A\n\t\"\\rG\\r>\\x00\\x00\\rK\" + // 0x0D470D3E: 0x00000D4B\n\t\"\\rF\\rW\\x00\\x00\\rL\" + // 0x0D460D57: 0x00000D4C\n\t\"\\r\\xd9\\r\\xca\\x00\\x00\\r\\xda\" + // 0x0DD90DCA: 0x00000DDA\n\t\"\\r\\xd9\\r\\xcf\\x00\\x00\\r\\xdc\" + // 0x0DD90DCF: 0x00000DDC\n\t\"\\r\\xdc\\r\\xca\\x00\\x00\\r\\xdd\" + // 0x0DDC0DCA: 0x00000DDD\n\t\"\\r\\xd9\\r\\xdf\\x00\\x00\\r\\xde\" + // 0x0DD90DDF: 0x00000DDE\n\t\"\\x10%\\x10.\\x00\\x00\\x10&\" + // 0x1025102E: 0x00001026\n\t\"\\x1b\\x05\\x1b5\\x00\\x00\\x1b\\x06\" + // 0x1B051B35: 0x00001B06\n\t\"\\x1b\\a\\x1b5\\x00\\x00\\x1b\\b\" + // 0x1B071B35: 0x00001B08\n\t\"\\x1b\\t\\x1b5\\x00\\x00\\x1b\\n\" + // 0x1B091B35: 0x00001B0A\n\t\"\\x1b\\v\\x1b5\\x00\\x00\\x1b\\f\" + // 0x1B0B1B35: 0x00001B0C\n\t\"\\x1b\\r\\x1b5\\x00\\x00\\x1b\\x0e\" + // 0x1B0D1B35: 0x00001B0E\n\t\"\\x1b\\x11\\x1b5\\x00\\x00\\x1b\\x12\" + // 0x1B111B35: 0x00001B12\n\t\"\\x1b:\\x1b5\\x00\\x00\\x1b;\" + // 0x1B3A1B35: 0x00001B3B\n\t\"\\x1b<\\x1b5\\x00\\x00\\x1b=\" + // 0x1B3C1B35: 0x00001B3D\n\t\"\\x1b>\\x1b5\\x00\\x00\\x1b@\" + // 0x1B3E1B35: 0x00001B40\n\t\"\\x1b?\\x1b5\\x00\\x00\\x1bA\" + // 0x1B3F1B35: 0x00001B41\n\t\"\\x1bB\\x1b5\\x00\\x00\\x1bC\" + // 0x1B421B35: 0x00001B43\n\t\"\\x00A\\x03%\\x00\\x00\\x1e\\x00\" + // 0x00410325: 0x00001E00\n\t\"\\x00a\\x03%\\x00\\x00\\x1e\\x01\" + // 0x00610325: 0x00001E01\n\t\"\\x00B\\x03\\a\\x00\\x00\\x1e\\x02\" + // 0x00420307: 0x00001E02\n\t\"\\x00b\\x03\\a\\x00\\x00\\x1e\\x03\" + // 0x00620307: 0x00001E03\n\t\"\\x00B\\x03#\\x00\\x00\\x1e\\x04\" + // 0x00420323: 0x00001E04\n\t\"\\x00b\\x03#\\x00\\x00\\x1e\\x05\" + // 0x00620323: 0x00001E05\n\t\"\\x00B\\x031\\x00\\x00\\x1e\\x06\" + // 0x00420331: 0x00001E06\n\t\"\\x00b\\x031\\x00\\x00\\x1e\\a\" + // 0x00620331: 0x00001E07\n\t\"\\x00\\xc7\\x03\\x01\\x00\\x00\\x1e\\b\" + // 0x00C70301: 0x00001E08\n\t\"\\x00\\xe7\\x03\\x01\\x00\\x00\\x1e\\t\" + // 0x00E70301: 0x00001E09\n\t\"\\x00D\\x03\\a\\x00\\x00\\x1e\\n\" + // 0x00440307: 0x00001E0A\n\t\"\\x00d\\x03\\a\\x00\\x00\\x1e\\v\" + // 0x00640307: 0x00001E0B\n\t\"\\x00D\\x03#\\x00\\x00\\x1e\\f\" + // 0x00440323: 0x00001E0C\n\t\"\\x00d\\x03#\\x00\\x00\\x1e\\r\" + // 0x00640323: 0x00001E0D\n\t\"\\x00D\\x031\\x00\\x00\\x1e\\x0e\" + // 0x00440331: 0x00001E0E\n\t\"\\x00d\\x031\\x00\\x00\\x1e\\x0f\" + // 0x00640331: 0x00001E0F\n\t\"\\x00D\\x03'\\x00\\x00\\x1e\\x10\" + // 0x00440327: 0x00001E10\n\t\"\\x00d\\x03'\\x00\\x00\\x1e\\x11\" + // 0x00640327: 0x00001E11\n\t\"\\x00D\\x03-\\x00\\x00\\x1e\\x12\" + // 0x0044032D: 0x00001E12\n\t\"\\x00d\\x03-\\x00\\x00\\x1e\\x13\" + // 0x0064032D: 0x00001E13\n\t\"\\x01\\x12\\x03\\x00\\x00\\x00\\x1e\\x14\" + // 0x01120300: 0x00001E14\n\t\"\\x01\\x13\\x03\\x00\\x00\\x00\\x1e\\x15\" + // 0x01130300: 0x00001E15\n\t\"\\x01\\x12\\x03\\x01\\x00\\x00\\x1e\\x16\" + // 0x01120301: 0x00001E16\n\t\"\\x01\\x13\\x03\\x01\\x00\\x00\\x1e\\x17\" + // 0x01130301: 0x00001E17\n\t\"\\x00E\\x03-\\x00\\x00\\x1e\\x18\" + // 0x0045032D: 0x00001E18\n\t\"\\x00e\\x03-\\x00\\x00\\x1e\\x19\" + // 0x0065032D: 0x00001E19\n\t\"\\x00E\\x030\\x00\\x00\\x1e\\x1a\" + // 0x00450330: 0x00001E1A\n\t\"\\x00e\\x030\\x00\\x00\\x1e\\x1b\" + // 0x00650330: 0x00001E1B\n\t\"\\x02(\\x03\\x06\\x00\\x00\\x1e\\x1c\" + // 0x02280306: 0x00001E1C\n\t\"\\x02)\\x03\\x06\\x00\\x00\\x1e\\x1d\" + // 0x02290306: 0x00001E1D\n\t\"\\x00F\\x03\\a\\x00\\x00\\x1e\\x1e\" + // 0x00460307: 0x00001E1E\n\t\"\\x00f\\x03\\a\\x00\\x00\\x1e\\x1f\" + // 0x00660307: 0x00001E1F\n\t\"\\x00G\\x03\\x04\\x00\\x00\\x1e \" + // 0x00470304: 0x00001E20\n\t\"\\x00g\\x03\\x04\\x00\\x00\\x1e!\" + // 0x00670304: 0x00001E21\n\t\"\\x00H\\x03\\a\\x00\\x00\\x1e\\\"\" + // 0x00480307: 0x00001E22\n\t\"\\x00h\\x03\\a\\x00\\x00\\x1e#\" + // 0x00680307: 0x00001E23\n\t\"\\x00H\\x03#\\x00\\x00\\x1e$\" + // 0x00480323: 0x00001E24\n\t\"\\x00h\\x03#\\x00\\x00\\x1e%\" + // 0x00680323: 0x00001E25\n\t\"\\x00H\\x03\\b\\x00\\x00\\x1e&\" + // 0x00480308: 0x00001E26\n\t\"\\x00h\\x03\\b\\x00\\x00\\x1e'\" + // 0x00680308: 0x00001E27\n\t\"\\x00H\\x03'\\x00\\x00\\x1e(\" + // 0x00480327: 0x00001E28\n\t\"\\x00h\\x03'\\x00\\x00\\x1e)\" + // 0x00680327: 0x00001E29\n\t\"\\x00H\\x03.\\x00\\x00\\x1e*\" + // 0x0048032E: 0x00001E2A\n\t\"\\x00h\\x03.\\x00\\x00\\x1e+\" + // 0x0068032E: 0x00001E2B\n\t\"\\x00I\\x030\\x00\\x00\\x1e,\" + // 0x00490330: 0x00001E2C\n\t\"\\x00i\\x030\\x00\\x00\\x1e-\" + // 0x00690330: 0x00001E2D\n\t\"\\x00\\xcf\\x03\\x01\\x00\\x00\\x1e.\" + // 0x00CF0301: 0x00001E2E\n\t\"\\x00\\xef\\x03\\x01\\x00\\x00\\x1e/\" + // 0x00EF0301: 0x00001E2F\n\t\"\\x00K\\x03\\x01\\x00\\x00\\x1e0\" + // 0x004B0301: 0x00001E30\n\t\"\\x00k\\x03\\x01\\x00\\x00\\x1e1\" + // 0x006B0301: 0x00001E31\n\t\"\\x00K\\x03#\\x00\\x00\\x1e2\" + // 0x004B0323: 0x00001E32\n\t\"\\x00k\\x03#\\x00\\x00\\x1e3\" + // 0x006B0323: 0x00001E33\n\t\"\\x00K\\x031\\x00\\x00\\x1e4\" + // 0x004B0331: 0x00001E34\n\t\"\\x00k\\x031\\x00\\x00\\x1e5\" + // 0x006B0331: 0x00001E35\n\t\"\\x00L\\x03#\\x00\\x00\\x1e6\" + // 0x004C0323: 0x00001E36\n\t\"\\x00l\\x03#\\x00\\x00\\x1e7\" + // 0x006C0323: 0x00001E37\n\t\"\\x1e6\\x03\\x04\\x00\\x00\\x1e8\" + // 0x1E360304: 0x00001E38\n\t\"\\x1e7\\x03\\x04\\x00\\x00\\x1e9\" + // 0x1E370304: 0x00001E39\n\t\"\\x00L\\x031\\x00\\x00\\x1e:\" + // 0x004C0331: 0x00001E3A\n\t\"\\x00l\\x031\\x00\\x00\\x1e;\" + // 0x006C0331: 0x00001E3B\n\t\"\\x00L\\x03-\\x00\\x00\\x1e<\" + // 0x004C032D: 0x00001E3C\n\t\"\\x00l\\x03-\\x00\\x00\\x1e=\" + // 0x006C032D: 0x00001E3D\n\t\"\\x00M\\x03\\x01\\x00\\x00\\x1e>\" + // 0x004D0301: 0x00001E3E\n\t\"\\x00m\\x03\\x01\\x00\\x00\\x1e?\" + // 0x006D0301: 0x00001E3F\n\t\"\\x00M\\x03\\a\\x00\\x00\\x1e@\" + // 0x004D0307: 0x00001E40\n\t\"\\x00m\\x03\\a\\x00\\x00\\x1eA\" + // 0x006D0307: 0x00001E41\n\t\"\\x00M\\x03#\\x00\\x00\\x1eB\" + // 0x004D0323: 0x00001E42\n\t\"\\x00m\\x03#\\x00\\x00\\x1eC\" + // 0x006D0323: 0x00001E43\n\t\"\\x00N\\x03\\a\\x00\\x00\\x1eD\" + // 0x004E0307: 0x00001E44\n\t\"\\x00n\\x03\\a\\x00\\x00\\x1eE\" + // 0x006E0307: 0x00001E45\n\t\"\\x00N\\x03#\\x00\\x00\\x1eF\" + // 0x004E0323: 0x00001E46\n\t\"\\x00n\\x03#\\x00\\x00\\x1eG\" + // 0x006E0323: 0x00001E47\n\t\"\\x00N\\x031\\x00\\x00\\x1eH\" + // 0x004E0331: 0x00001E48\n\t\"\\x00n\\x031\\x00\\x00\\x1eI\" + // 0x006E0331: 0x00001E49\n\t\"\\x00N\\x03-\\x00\\x00\\x1eJ\" + // 0x004E032D: 0x00001E4A\n\t\"\\x00n\\x03-\\x00\\x00\\x1eK\" + // 0x006E032D: 0x00001E4B\n\t\"\\x00\\xd5\\x03\\x01\\x00\\x00\\x1eL\" + // 0x00D50301: 0x00001E4C\n\t\"\\x00\\xf5\\x03\\x01\\x00\\x00\\x1eM\" + // 0x00F50301: 0x00001E4D\n\t\"\\x00\\xd5\\x03\\b\\x00\\x00\\x1eN\" + // 0x00D50308: 0x00001E4E\n\t\"\\x00\\xf5\\x03\\b\\x00\\x00\\x1eO\" + // 0x00F50308: 0x00001E4F\n\t\"\\x01L\\x03\\x00\\x00\\x00\\x1eP\" + // 0x014C0300: 0x00001E50\n\t\"\\x01M\\x03\\x00\\x00\\x00\\x1eQ\" + // 0x014D0300: 0x00001E51\n\t\"\\x01L\\x03\\x01\\x00\\x00\\x1eR\" + // 0x014C0301: 0x00001E52\n\t\"\\x01M\\x03\\x01\\x00\\x00\\x1eS\" + // 0x014D0301: 0x00001E53\n\t\"\\x00P\\x03\\x01\\x00\\x00\\x1eT\" + // 0x00500301: 0x00001E54\n\t\"\\x00p\\x03\\x01\\x00\\x00\\x1eU\" + // 0x00700301: 0x00001E55\n\t\"\\x00P\\x03\\a\\x00\\x00\\x1eV\" + // 0x00500307: 0x00001E56\n\t\"\\x00p\\x03\\a\\x00\\x00\\x1eW\" + // 0x00700307: 0x00001E57\n\t\"\\x00R\\x03\\a\\x00\\x00\\x1eX\" + // 0x00520307: 0x00001E58\n\t\"\\x00r\\x03\\a\\x00\\x00\\x1eY\" + // 0x00720307: 0x00001E59\n\t\"\\x00R\\x03#\\x00\\x00\\x1eZ\" + // 0x00520323: 0x00001E5A\n\t\"\\x00r\\x03#\\x00\\x00\\x1e[\" + // 0x00720323: 0x00001E5B\n\t\"\\x1eZ\\x03\\x04\\x00\\x00\\x1e\\\\\" + // 0x1E5A0304: 0x00001E5C\n\t\"\\x1e[\\x03\\x04\\x00\\x00\\x1e]\" + // 0x1E5B0304: 0x00001E5D\n\t\"\\x00R\\x031\\x00\\x00\\x1e^\" + // 0x00520331: 0x00001E5E\n\t\"\\x00r\\x031\\x00\\x00\\x1e_\" + // 0x00720331: 0x00001E5F\n\t\"\\x00S\\x03\\a\\x00\\x00\\x1e`\" + // 0x00530307: 0x00001E60\n\t\"\\x00s\\x03\\a\\x00\\x00\\x1ea\" + // 0x00730307: 0x00001E61\n\t\"\\x00S\\x03#\\x00\\x00\\x1eb\" + // 0x00530323: 0x00001E62\n\t\"\\x00s\\x03#\\x00\\x00\\x1ec\" + // 0x00730323: 0x00001E63\n\t\"\\x01Z\\x03\\a\\x00\\x00\\x1ed\" + // 0x015A0307: 0x00001E64\n\t\"\\x01[\\x03\\a\\x00\\x00\\x1ee\" + // 0x015B0307: 0x00001E65\n\t\"\\x01`\\x03\\a\\x00\\x00\\x1ef\" + // 0x01600307: 0x00001E66\n\t\"\\x01a\\x03\\a\\x00\\x00\\x1eg\" + // 0x01610307: 0x00001E67\n\t\"\\x1eb\\x03\\a\\x00\\x00\\x1eh\" + // 0x1E620307: 0x00001E68\n\t\"\\x1ec\\x03\\a\\x00\\x00\\x1ei\" + // 0x1E630307: 0x00001E69\n\t\"\\x00T\\x03\\a\\x00\\x00\\x1ej\" + // 0x00540307: 0x00001E6A\n\t\"\\x00t\\x03\\a\\x00\\x00\\x1ek\" + // 0x00740307: 0x00001E6B\n\t\"\\x00T\\x03#\\x00\\x00\\x1el\" + // 0x00540323: 0x00001E6C\n\t\"\\x00t\\x03#\\x00\\x00\\x1em\" + // 0x00740323: 0x00001E6D\n\t\"\\x00T\\x031\\x00\\x00\\x1en\" + // 0x00540331: 0x00001E6E\n\t\"\\x00t\\x031\\x00\\x00\\x1eo\" + // 0x00740331: 0x00001E6F\n\t\"\\x00T\\x03-\\x00\\x00\\x1ep\" + // 0x0054032D: 0x00001E70\n\t\"\\x00t\\x03-\\x00\\x00\\x1eq\" + // 0x0074032D: 0x00001E71\n\t\"\\x00U\\x03$\\x00\\x00\\x1er\" + // 0x00550324: 0x00001E72\n\t\"\\x00u\\x03$\\x00\\x00\\x1es\" + // 0x00750324: 0x00001E73\n\t\"\\x00U\\x030\\x00\\x00\\x1et\" + // 0x00550330: 0x00001E74\n\t\"\\x00u\\x030\\x00\\x00\\x1eu\" + // 0x00750330: 0x00001E75\n\t\"\\x00U\\x03-\\x00\\x00\\x1ev\" + // 0x0055032D: 0x00001E76\n\t\"\\x00u\\x03-\\x00\\x00\\x1ew\" + // 0x0075032D: 0x00001E77\n\t\"\\x01h\\x03\\x01\\x00\\x00\\x1ex\" + // 0x01680301: 0x00001E78\n\t\"\\x01i\\x03\\x01\\x00\\x00\\x1ey\" + // 0x01690301: 0x00001E79\n\t\"\\x01j\\x03\\b\\x00\\x00\\x1ez\" + // 0x016A0308: 0x00001E7A\n\t\"\\x01k\\x03\\b\\x00\\x00\\x1e{\" + // 0x016B0308: 0x00001E7B\n\t\"\\x00V\\x03\\x03\\x00\\x00\\x1e|\" + // 0x00560303: 0x00001E7C\n\t\"\\x00v\\x03\\x03\\x00\\x00\\x1e}\" + // 0x00760303: 0x00001E7D\n\t\"\\x00V\\x03#\\x00\\x00\\x1e~\" + // 0x00560323: 0x00001E7E\n\t\"\\x00v\\x03#\\x00\\x00\\x1e\\u007f\" + // 0x00760323: 0x00001E7F\n\t\"\\x00W\\x03\\x00\\x00\\x00\\x1e\\x80\" + // 0x00570300: 0x00001E80\n\t\"\\x00w\\x03\\x00\\x00\\x00\\x1e\\x81\" + // 0x00770300: 0x00001E81\n\t\"\\x00W\\x03\\x01\\x00\\x00\\x1e\\x82\" + // 0x00570301: 0x00001E82\n\t\"\\x00w\\x03\\x01\\x00\\x00\\x1e\\x83\" + // 0x00770301: 0x00001E83\n\t\"\\x00W\\x03\\b\\x00\\x00\\x1e\\x84\" + // 0x00570308: 0x00001E84\n\t\"\\x00w\\x03\\b\\x00\\x00\\x1e\\x85\" + // 0x00770308: 0x00001E85\n\t\"\\x00W\\x03\\a\\x00\\x00\\x1e\\x86\" + // 0x00570307: 0x00001E86\n\t\"\\x00w\\x03\\a\\x00\\x00\\x1e\\x87\" + // 0x00770307: 0x00001E87\n\t\"\\x00W\\x03#\\x00\\x00\\x1e\\x88\" + // 0x00570323: 0x00001E88\n\t\"\\x00w\\x03#\\x00\\x00\\x1e\\x89\" + // 0x00770323: 0x00001E89\n\t\"\\x00X\\x03\\a\\x00\\x00\\x1e\\x8a\" + // 0x00580307: 0x00001E8A\n\t\"\\x00x\\x03\\a\\x00\\x00\\x1e\\x8b\" + // 0x00780307: 0x00001E8B\n\t\"\\x00X\\x03\\b\\x00\\x00\\x1e\\x8c\" + // 0x00580308: 0x00001E8C\n\t\"\\x00x\\x03\\b\\x00\\x00\\x1e\\x8d\" + // 0x00780308: 0x00001E8D\n\t\"\\x00Y\\x03\\a\\x00\\x00\\x1e\\x8e\" + // 0x00590307: 0x00001E8E\n\t\"\\x00y\\x03\\a\\x00\\x00\\x1e\\x8f\" + // 0x00790307: 0x00001E8F\n\t\"\\x00Z\\x03\\x02\\x00\\x00\\x1e\\x90\" + // 0x005A0302: 0x00001E90\n\t\"\\x00z\\x03\\x02\\x00\\x00\\x1e\\x91\" + // 0x007A0302: 0x00001E91\n\t\"\\x00Z\\x03#\\x00\\x00\\x1e\\x92\" + // 0x005A0323: 0x00001E92\n\t\"\\x00z\\x03#\\x00\\x00\\x1e\\x93\" + // 0x007A0323: 0x00001E93\n\t\"\\x00Z\\x031\\x00\\x00\\x1e\\x94\" + // 0x005A0331: 0x00001E94\n\t\"\\x00z\\x031\\x00\\x00\\x1e\\x95\" + // 0x007A0331: 0x00001E95\n\t\"\\x00h\\x031\\x00\\x00\\x1e\\x96\" + // 0x00680331: 0x00001E96\n\t\"\\x00t\\x03\\b\\x00\\x00\\x1e\\x97\" + // 0x00740308: 0x00001E97\n\t\"\\x00w\\x03\\n\\x00\\x00\\x1e\\x98\" + // 0x0077030A: 0x00001E98\n\t\"\\x00y\\x03\\n\\x00\\x00\\x1e\\x99\" + // 0x0079030A: 0x00001E99\n\t\"\\x01\\u007f\\x03\\a\\x00\\x00\\x1e\\x9b\" + // 0x017F0307: 0x00001E9B\n\t\"\\x00A\\x03#\\x00\\x00\\x1e\\xa0\" + // 0x00410323: 0x00001EA0\n\t\"\\x00a\\x03#\\x00\\x00\\x1e\\xa1\" + // 0x00610323: 0x00001EA1\n\t\"\\x00A\\x03\\t\\x00\\x00\\x1e\\xa2\" + // 0x00410309: 0x00001EA2\n\t\"\\x00a\\x03\\t\\x00\\x00\\x1e\\xa3\" + // 0x00610309: 0x00001EA3\n\t\"\\x00\\xc2\\x03\\x01\\x00\\x00\\x1e\\xa4\" + // 0x00C20301: 0x00001EA4\n\t\"\\x00\\xe2\\x03\\x01\\x00\\x00\\x1e\\xa5\" + // 0x00E20301: 0x00001EA5\n\t\"\\x00\\xc2\\x03\\x00\\x00\\x00\\x1e\\xa6\" + // 0x00C20300: 0x00001EA6\n\t\"\\x00\\xe2\\x03\\x00\\x00\\x00\\x1e\\xa7\" + // 0x00E20300: 0x00001EA7\n\t\"\\x00\\xc2\\x03\\t\\x00\\x00\\x1e\\xa8\" + // 0x00C20309: 0x00001EA8\n\t\"\\x00\\xe2\\x03\\t\\x00\\x00\\x1e\\xa9\" + // 0x00E20309: 0x00001EA9\n\t\"\\x00\\xc2\\x03\\x03\\x00\\x00\\x1e\\xaa\" + // 0x00C20303: 0x00001EAA\n\t\"\\x00\\xe2\\x03\\x03\\x00\\x00\\x1e\\xab\" + // 0x00E20303: 0x00001EAB\n\t\"\\x1e\\xa0\\x03\\x02\\x00\\x00\\x1e\\xac\" + // 0x1EA00302: 0x00001EAC\n\t\"\\x1e\\xa1\\x03\\x02\\x00\\x00\\x1e\\xad\" + // 0x1EA10302: 0x00001EAD\n\t\"\\x01\\x02\\x03\\x01\\x00\\x00\\x1e\\xae\" + // 0x01020301: 0x00001EAE\n\t\"\\x01\\x03\\x03\\x01\\x00\\x00\\x1e\\xaf\" + // 0x01030301: 0x00001EAF\n\t\"\\x01\\x02\\x03\\x00\\x00\\x00\\x1e\\xb0\" + // 0x01020300: 0x00001EB0\n\t\"\\x01\\x03\\x03\\x00\\x00\\x00\\x1e\\xb1\" + // 0x01030300: 0x00001EB1\n\t\"\\x01\\x02\\x03\\t\\x00\\x00\\x1e\\xb2\" + // 0x01020309: 0x00001EB2\n\t\"\\x01\\x03\\x03\\t\\x00\\x00\\x1e\\xb3\" + // 0x01030309: 0x00001EB3\n\t\"\\x01\\x02\\x03\\x03\\x00\\x00\\x1e\\xb4\" + // 0x01020303: 0x00001EB4\n\t\"\\x01\\x03\\x03\\x03\\x00\\x00\\x1e\\xb5\" + // 0x01030303: 0x00001EB5\n\t\"\\x1e\\xa0\\x03\\x06\\x00\\x00\\x1e\\xb6\" + // 0x1EA00306: 0x00001EB6\n\t\"\\x1e\\xa1\\x03\\x06\\x00\\x00\\x1e\\xb7\" + // 0x1EA10306: 0x00001EB7\n\t\"\\x00E\\x03#\\x00\\x00\\x1e\\xb8\" + // 0x00450323: 0x00001EB8\n\t\"\\x00e\\x03#\\x00\\x00\\x1e\\xb9\" + // 0x00650323: 0x00001EB9\n\t\"\\x00E\\x03\\t\\x00\\x00\\x1e\\xba\" + // 0x00450309: 0x00001EBA\n\t\"\\x00e\\x03\\t\\x00\\x00\\x1e\\xbb\" + // 0x00650309: 0x00001EBB\n\t\"\\x00E\\x03\\x03\\x00\\x00\\x1e\\xbc\" + // 0x00450303: 0x00001EBC\n\t\"\\x00e\\x03\\x03\\x00\\x00\\x1e\\xbd\" + // 0x00650303: 0x00001EBD\n\t\"\\x00\\xca\\x03\\x01\\x00\\x00\\x1e\\xbe\" + // 0x00CA0301: 0x00001EBE\n\t\"\\x00\\xea\\x03\\x01\\x00\\x00\\x1e\\xbf\" + // 0x00EA0301: 0x00001EBF\n\t\"\\x00\\xca\\x03\\x00\\x00\\x00\\x1e\\xc0\" + // 0x00CA0300: 0x00001EC0\n\t\"\\x00\\xea\\x03\\x00\\x00\\x00\\x1e\\xc1\" + // 0x00EA0300: 0x00001EC1\n\t\"\\x00\\xca\\x03\\t\\x00\\x00\\x1e\\xc2\" + // 0x00CA0309: 0x00001EC2\n\t\"\\x00\\xea\\x03\\t\\x00\\x00\\x1e\\xc3\" + // 0x00EA0309: 0x00001EC3\n\t\"\\x00\\xca\\x03\\x03\\x00\\x00\\x1e\\xc4\" + // 0x00CA0303: 0x00001EC4\n\t\"\\x00\\xea\\x03\\x03\\x00\\x00\\x1e\\xc5\" + // 0x00EA0303: 0x00001EC5\n\t\"\\x1e\\xb8\\x03\\x02\\x00\\x00\\x1e\\xc6\" + // 0x1EB80302: 0x00001EC6\n\t\"\\x1e\\xb9\\x03\\x02\\x00\\x00\\x1e\\xc7\" + // 0x1EB90302: 0x00001EC7\n\t\"\\x00I\\x03\\t\\x00\\x00\\x1e\\xc8\" + // 0x00490309: 0x00001EC8\n\t\"\\x00i\\x03\\t\\x00\\x00\\x1e\\xc9\" + // 0x00690309: 0x00001EC9\n\t\"\\x00I\\x03#\\x00\\x00\\x1e\\xca\" + // 0x00490323: 0x00001ECA\n\t\"\\x00i\\x03#\\x00\\x00\\x1e\\xcb\" + // 0x00690323: 0x00001ECB\n\t\"\\x00O\\x03#\\x00\\x00\\x1e\\xcc\" + // 0x004F0323: 0x00001ECC\n\t\"\\x00o\\x03#\\x00\\x00\\x1e\\xcd\" + // 0x006F0323: 0x00001ECD\n\t\"\\x00O\\x03\\t\\x00\\x00\\x1e\\xce\" + // 0x004F0309: 0x00001ECE\n\t\"\\x00o\\x03\\t\\x00\\x00\\x1e\\xcf\" + // 0x006F0309: 0x00001ECF\n\t\"\\x00\\xd4\\x03\\x01\\x00\\x00\\x1e\\xd0\" + // 0x00D40301: 0x00001ED0\n\t\"\\x00\\xf4\\x03\\x01\\x00\\x00\\x1e\\xd1\" + // 0x00F40301: 0x00001ED1\n\t\"\\x00\\xd4\\x03\\x00\\x00\\x00\\x1e\\xd2\" + // 0x00D40300: 0x00001ED2\n\t\"\\x00\\xf4\\x03\\x00\\x00\\x00\\x1e\\xd3\" + // 0x00F40300: 0x00001ED3\n\t\"\\x00\\xd4\\x03\\t\\x00\\x00\\x1e\\xd4\" + // 0x00D40309: 0x00001ED4\n\t\"\\x00\\xf4\\x03\\t\\x00\\x00\\x1e\\xd5\" + // 0x00F40309: 0x00001ED5\n\t\"\\x00\\xd4\\x03\\x03\\x00\\x00\\x1e\\xd6\" + // 0x00D40303: 0x00001ED6\n\t\"\\x00\\xf4\\x03\\x03\\x00\\x00\\x1e\\xd7\" + // 0x00F40303: 0x00001ED7\n\t\"\\x1e\\xcc\\x03\\x02\\x00\\x00\\x1e\\xd8\" + // 0x1ECC0302: 0x00001ED8\n\t\"\\x1e\\xcd\\x03\\x02\\x00\\x00\\x1e\\xd9\" + // 0x1ECD0302: 0x00001ED9\n\t\"\\x01\\xa0\\x03\\x01\\x00\\x00\\x1e\\xda\" + // 0x01A00301: 0x00001EDA\n\t\"\\x01\\xa1\\x03\\x01\\x00\\x00\\x1e\\xdb\" + // 0x01A10301: 0x00001EDB\n\t\"\\x01\\xa0\\x03\\x00\\x00\\x00\\x1e\\xdc\" + // 0x01A00300: 0x00001EDC\n\t\"\\x01\\xa1\\x03\\x00\\x00\\x00\\x1e\\xdd\" + // 0x01A10300: 0x00001EDD\n\t\"\\x01\\xa0\\x03\\t\\x00\\x00\\x1e\\xde\" + // 0x01A00309: 0x00001EDE\n\t\"\\x01\\xa1\\x03\\t\\x00\\x00\\x1e\\xdf\" + // 0x01A10309: 0x00001EDF\n\t\"\\x01\\xa0\\x03\\x03\\x00\\x00\\x1e\\xe0\" + // 0x01A00303: 0x00001EE0\n\t\"\\x01\\xa1\\x03\\x03\\x00\\x00\\x1e\\xe1\" + // 0x01A10303: 0x00001EE1\n\t\"\\x01\\xa0\\x03#\\x00\\x00\\x1e\\xe2\" + // 0x01A00323: 0x00001EE2\n\t\"\\x01\\xa1\\x03#\\x00\\x00\\x1e\\xe3\" + // 0x01A10323: 0x00001EE3\n\t\"\\x00U\\x03#\\x00\\x00\\x1e\\xe4\" + // 0x00550323: 0x00001EE4\n\t\"\\x00u\\x03#\\x00\\x00\\x1e\\xe5\" + // 0x00750323: 0x00001EE5\n\t\"\\x00U\\x03\\t\\x00\\x00\\x1e\\xe6\" + // 0x00550309: 0x00001EE6\n\t\"\\x00u\\x03\\t\\x00\\x00\\x1e\\xe7\" + // 0x00750309: 0x00001EE7\n\t\"\\x01\\xaf\\x03\\x01\\x00\\x00\\x1e\\xe8\" + // 0x01AF0301: 0x00001EE8\n\t\"\\x01\\xb0\\x03\\x01\\x00\\x00\\x1e\\xe9\" + // 0x01B00301: 0x00001EE9\n\t\"\\x01\\xaf\\x03\\x00\\x00\\x00\\x1e\\xea\" + // 0x01AF0300: 0x00001EEA\n\t\"\\x01\\xb0\\x03\\x00\\x00\\x00\\x1e\\xeb\" + // 0x01B00300: 0x00001EEB\n\t\"\\x01\\xaf\\x03\\t\\x00\\x00\\x1e\\xec\" + // 0x01AF0309: 0x00001EEC\n\t\"\\x01\\xb0\\x03\\t\\x00\\x00\\x1e\\xed\" + // 0x01B00309: 0x00001EED\n\t\"\\x01\\xaf\\x03\\x03\\x00\\x00\\x1e\\xee\" + // 0x01AF0303: 0x00001EEE\n\t\"\\x01\\xb0\\x03\\x03\\x00\\x00\\x1e\\xef\" + // 0x01B00303: 0x00001EEF\n\t\"\\x01\\xaf\\x03#\\x00\\x00\\x1e\\xf0\" + // 0x01AF0323: 0x00001EF0\n\t\"\\x01\\xb0\\x03#\\x00\\x00\\x1e\\xf1\" + // 0x01B00323: 0x00001EF1\n\t\"\\x00Y\\x03\\x00\\x00\\x00\\x1e\\xf2\" + // 0x00590300: 0x00001EF2\n\t\"\\x00y\\x03\\x00\\x00\\x00\\x1e\\xf3\" + // 0x00790300: 0x00001EF3\n\t\"\\x00Y\\x03#\\x00\\x00\\x1e\\xf4\" + // 0x00590323: 0x00001EF4\n\t\"\\x00y\\x03#\\x00\\x00\\x1e\\xf5\" + // 0x00790323: 0x00001EF5\n\t\"\\x00Y\\x03\\t\\x00\\x00\\x1e\\xf6\" + // 0x00590309: 0x00001EF6\n\t\"\\x00y\\x03\\t\\x00\\x00\\x1e\\xf7\" + // 0x00790309: 0x00001EF7\n\t\"\\x00Y\\x03\\x03\\x00\\x00\\x1e\\xf8\" + // 0x00590303: 0x00001EF8\n\t\"\\x00y\\x03\\x03\\x00\\x00\\x1e\\xf9\" + // 0x00790303: 0x00001EF9\n\t\"\\x03\\xb1\\x03\\x13\\x00\\x00\\x1f\\x00\" + // 0x03B10313: 0x00001F00\n\t\"\\x03\\xb1\\x03\\x14\\x00\\x00\\x1f\\x01\" + // 0x03B10314: 0x00001F01\n\t\"\\x1f\\x00\\x03\\x00\\x00\\x00\\x1f\\x02\" + // 0x1F000300: 0x00001F02\n\t\"\\x1f\\x01\\x03\\x00\\x00\\x00\\x1f\\x03\" + // 0x1F010300: 0x00001F03\n\t\"\\x1f\\x00\\x03\\x01\\x00\\x00\\x1f\\x04\" + // 0x1F000301: 0x00001F04\n\t\"\\x1f\\x01\\x03\\x01\\x00\\x00\\x1f\\x05\" + // 0x1F010301: 0x00001F05\n\t\"\\x1f\\x00\\x03B\\x00\\x00\\x1f\\x06\" + // 0x1F000342: 0x00001F06\n\t\"\\x1f\\x01\\x03B\\x00\\x00\\x1f\\a\" + // 0x1F010342: 0x00001F07\n\t\"\\x03\\x91\\x03\\x13\\x00\\x00\\x1f\\b\" + // 0x03910313: 0x00001F08\n\t\"\\x03\\x91\\x03\\x14\\x00\\x00\\x1f\\t\" + // 0x03910314: 0x00001F09\n\t\"\\x1f\\b\\x03\\x00\\x00\\x00\\x1f\\n\" + // 0x1F080300: 0x00001F0A\n\t\"\\x1f\\t\\x03\\x00\\x00\\x00\\x1f\\v\" + // 0x1F090300: 0x00001F0B\n\t\"\\x1f\\b\\x03\\x01\\x00\\x00\\x1f\\f\" + // 0x1F080301: 0x00001F0C\n\t\"\\x1f\\t\\x03\\x01\\x00\\x00\\x1f\\r\" + // 0x1F090301: 0x00001F0D\n\t\"\\x1f\\b\\x03B\\x00\\x00\\x1f\\x0e\" + // 0x1F080342: 0x00001F0E\n\t\"\\x1f\\t\\x03B\\x00\\x00\\x1f\\x0f\" + // 0x1F090342: 0x00001F0F\n\t\"\\x03\\xb5\\x03\\x13\\x00\\x00\\x1f\\x10\" + // 0x03B50313: 0x00001F10\n\t\"\\x03\\xb5\\x03\\x14\\x00\\x00\\x1f\\x11\" + // 0x03B50314: 0x00001F11\n\t\"\\x1f\\x10\\x03\\x00\\x00\\x00\\x1f\\x12\" + // 0x1F100300: 0x00001F12\n\t\"\\x1f\\x11\\x03\\x00\\x00\\x00\\x1f\\x13\" + // 0x1F110300: 0x00001F13\n\t\"\\x1f\\x10\\x03\\x01\\x00\\x00\\x1f\\x14\" + // 0x1F100301: 0x00001F14\n\t\"\\x1f\\x11\\x03\\x01\\x00\\x00\\x1f\\x15\" + // 0x1F110301: 0x00001F15\n\t\"\\x03\\x95\\x03\\x13\\x00\\x00\\x1f\\x18\" + // 0x03950313: 0x00001F18\n\t\"\\x03\\x95\\x03\\x14\\x00\\x00\\x1f\\x19\" + // 0x03950314: 0x00001F19\n\t\"\\x1f\\x18\\x03\\x00\\x00\\x00\\x1f\\x1a\" + // 0x1F180300: 0x00001F1A\n\t\"\\x1f\\x19\\x03\\x00\\x00\\x00\\x1f\\x1b\" + // 0x1F190300: 0x00001F1B\n\t\"\\x1f\\x18\\x03\\x01\\x00\\x00\\x1f\\x1c\" + // 0x1F180301: 0x00001F1C\n\t\"\\x1f\\x19\\x03\\x01\\x00\\x00\\x1f\\x1d\" + // 0x1F190301: 0x00001F1D\n\t\"\\x03\\xb7\\x03\\x13\\x00\\x00\\x1f \" + // 0x03B70313: 0x00001F20\n\t\"\\x03\\xb7\\x03\\x14\\x00\\x00\\x1f!\" + // 0x03B70314: 0x00001F21\n\t\"\\x1f \\x03\\x00\\x00\\x00\\x1f\\\"\" + // 0x1F200300: 0x00001F22\n\t\"\\x1f!\\x03\\x00\\x00\\x00\\x1f#\" + // 0x1F210300: 0x00001F23\n\t\"\\x1f \\x03\\x01\\x00\\x00\\x1f$\" + // 0x1F200301: 0x00001F24\n\t\"\\x1f!\\x03\\x01\\x00\\x00\\x1f%\" + // 0x1F210301: 0x00001F25\n\t\"\\x1f \\x03B\\x00\\x00\\x1f&\" + // 0x1F200342: 0x00001F26\n\t\"\\x1f!\\x03B\\x00\\x00\\x1f'\" + // 0x1F210342: 0x00001F27\n\t\"\\x03\\x97\\x03\\x13\\x00\\x00\\x1f(\" + // 0x03970313: 0x00001F28\n\t\"\\x03\\x97\\x03\\x14\\x00\\x00\\x1f)\" + // 0x03970314: 0x00001F29\n\t\"\\x1f(\\x03\\x00\\x00\\x00\\x1f*\" + // 0x1F280300: 0x00001F2A\n\t\"\\x1f)\\x03\\x00\\x00\\x00\\x1f+\" + // 0x1F290300: 0x00001F2B\n\t\"\\x1f(\\x03\\x01\\x00\\x00\\x1f,\" + // 0x1F280301: 0x00001F2C\n\t\"\\x1f)\\x03\\x01\\x00\\x00\\x1f-\" + // 0x1F290301: 0x00001F2D\n\t\"\\x1f(\\x03B\\x00\\x00\\x1f.\" + // 0x1F280342: 0x00001F2E\n\t\"\\x1f)\\x03B\\x00\\x00\\x1f/\" + // 0x1F290342: 0x00001F2F\n\t\"\\x03\\xb9\\x03\\x13\\x00\\x00\\x1f0\" + // 0x03B90313: 0x00001F30\n\t\"\\x03\\xb9\\x03\\x14\\x00\\x00\\x1f1\" + // 0x03B90314: 0x00001F31\n\t\"\\x1f0\\x03\\x00\\x00\\x00\\x1f2\" + // 0x1F300300: 0x00001F32\n\t\"\\x1f1\\x03\\x00\\x00\\x00\\x1f3\" + // 0x1F310300: 0x00001F33\n\t\"\\x1f0\\x03\\x01\\x00\\x00\\x1f4\" + // 0x1F300301: 0x00001F34\n\t\"\\x1f1\\x03\\x01\\x00\\x00\\x1f5\" + // 0x1F310301: 0x00001F35\n\t\"\\x1f0\\x03B\\x00\\x00\\x1f6\" + // 0x1F300342: 0x00001F36\n\t\"\\x1f1\\x03B\\x00\\x00\\x1f7\" + // 0x1F310342: 0x00001F37\n\t\"\\x03\\x99\\x03\\x13\\x00\\x00\\x1f8\" + // 0x03990313: 0x00001F38\n\t\"\\x03\\x99\\x03\\x14\\x00\\x00\\x1f9\" + // 0x03990314: 0x00001F39\n\t\"\\x1f8\\x03\\x00\\x00\\x00\\x1f:\" + // 0x1F380300: 0x00001F3A\n\t\"\\x1f9\\x03\\x00\\x00\\x00\\x1f;\" + // 0x1F390300: 0x00001F3B\n\t\"\\x1f8\\x03\\x01\\x00\\x00\\x1f<\" + // 0x1F380301: 0x00001F3C\n\t\"\\x1f9\\x03\\x01\\x00\\x00\\x1f=\" + // 0x1F390301: 0x00001F3D\n\t\"\\x1f8\\x03B\\x00\\x00\\x1f>\" + // 0x1F380342: 0x00001F3E\n\t\"\\x1f9\\x03B\\x00\\x00\\x1f?\" + // 0x1F390342: 0x00001F3F\n\t\"\\x03\\xbf\\x03\\x13\\x00\\x00\\x1f@\" + // 0x03BF0313: 0x00001F40\n\t\"\\x03\\xbf\\x03\\x14\\x00\\x00\\x1fA\" + // 0x03BF0314: 0x00001F41\n\t\"\\x1f@\\x03\\x00\\x00\\x00\\x1fB\" + // 0x1F400300: 0x00001F42\n\t\"\\x1fA\\x03\\x00\\x00\\x00\\x1fC\" + // 0x1F410300: 0x00001F43\n\t\"\\x1f@\\x03\\x01\\x00\\x00\\x1fD\" + // 0x1F400301: 0x00001F44\n\t\"\\x1fA\\x03\\x01\\x00\\x00\\x1fE\" + // 0x1F410301: 0x00001F45\n\t\"\\x03\\x9f\\x03\\x13\\x00\\x00\\x1fH\" + // 0x039F0313: 0x00001F48\n\t\"\\x03\\x9f\\x03\\x14\\x00\\x00\\x1fI\" + // 0x039F0314: 0x00001F49\n\t\"\\x1fH\\x03\\x00\\x00\\x00\\x1fJ\" + // 0x1F480300: 0x00001F4A\n\t\"\\x1fI\\x03\\x00\\x00\\x00\\x1fK\" + // 0x1F490300: 0x00001F4B\n\t\"\\x1fH\\x03\\x01\\x00\\x00\\x1fL\" + // 0x1F480301: 0x00001F4C\n\t\"\\x1fI\\x03\\x01\\x00\\x00\\x1fM\" + // 0x1F490301: 0x00001F4D\n\t\"\\x03\\xc5\\x03\\x13\\x00\\x00\\x1fP\" + // 0x03C50313: 0x00001F50\n\t\"\\x03\\xc5\\x03\\x14\\x00\\x00\\x1fQ\" + // 0x03C50314: 0x00001F51\n\t\"\\x1fP\\x03\\x00\\x00\\x00\\x1fR\" + // 0x1F500300: 0x00001F52\n\t\"\\x1fQ\\x03\\x00\\x00\\x00\\x1fS\" + // 0x1F510300: 0x00001F53\n\t\"\\x1fP\\x03\\x01\\x00\\x00\\x1fT\" + // 0x1F500301: 0x00001F54\n\t\"\\x1fQ\\x03\\x01\\x00\\x00\\x1fU\" + // 0x1F510301: 0x00001F55\n\t\"\\x1fP\\x03B\\x00\\x00\\x1fV\" + // 0x1F500342: 0x00001F56\n\t\"\\x1fQ\\x03B\\x00\\x00\\x1fW\" + // 0x1F510342: 0x00001F57\n\t\"\\x03\\xa5\\x03\\x14\\x00\\x00\\x1fY\" + // 0x03A50314: 0x00001F59\n\t\"\\x1fY\\x03\\x00\\x00\\x00\\x1f[\" + // 0x1F590300: 0x00001F5B\n\t\"\\x1fY\\x03\\x01\\x00\\x00\\x1f]\" + // 0x1F590301: 0x00001F5D\n\t\"\\x1fY\\x03B\\x00\\x00\\x1f_\" + // 0x1F590342: 0x00001F5F\n\t\"\\x03\\xc9\\x03\\x13\\x00\\x00\\x1f`\" + // 0x03C90313: 0x00001F60\n\t\"\\x03\\xc9\\x03\\x14\\x00\\x00\\x1fa\" + // 0x03C90314: 0x00001F61\n\t\"\\x1f`\\x03\\x00\\x00\\x00\\x1fb\" + // 0x1F600300: 0x00001F62\n\t\"\\x1fa\\x03\\x00\\x00\\x00\\x1fc\" + // 0x1F610300: 0x00001F63\n\t\"\\x1f`\\x03\\x01\\x00\\x00\\x1fd\" + // 0x1F600301: 0x00001F64\n\t\"\\x1fa\\x03\\x01\\x00\\x00\\x1fe\" + // 0x1F610301: 0x00001F65\n\t\"\\x1f`\\x03B\\x00\\x00\\x1ff\" + // 0x1F600342: 0x00001F66\n\t\"\\x1fa\\x03B\\x00\\x00\\x1fg\" + // 0x1F610342: 0x00001F67\n\t\"\\x03\\xa9\\x03\\x13\\x00\\x00\\x1fh\" + // 0x03A90313: 0x00001F68\n\t\"\\x03\\xa9\\x03\\x14\\x00\\x00\\x1fi\" + // 0x03A90314: 0x00001F69\n\t\"\\x1fh\\x03\\x00\\x00\\x00\\x1fj\" + // 0x1F680300: 0x00001F6A\n\t\"\\x1fi\\x03\\x00\\x00\\x00\\x1fk\" + // 0x1F690300: 0x00001F6B\n\t\"\\x1fh\\x03\\x01\\x00\\x00\\x1fl\" + // 0x1F680301: 0x00001F6C\n\t\"\\x1fi\\x03\\x01\\x00\\x00\\x1fm\" + // 0x1F690301: 0x00001F6D\n\t\"\\x1fh\\x03B\\x00\\x00\\x1fn\" + // 0x1F680342: 0x00001F6E\n\t\"\\x1fi\\x03B\\x00\\x00\\x1fo\" + // 0x1F690342: 0x00001F6F\n\t\"\\x03\\xb1\\x03\\x00\\x00\\x00\\x1fp\" + // 0x03B10300: 0x00001F70\n\t\"\\x03\\xb5\\x03\\x00\\x00\\x00\\x1fr\" + // 0x03B50300: 0x00001F72\n\t\"\\x03\\xb7\\x03\\x00\\x00\\x00\\x1ft\" + // 0x03B70300: 0x00001F74\n\t\"\\x03\\xb9\\x03\\x00\\x00\\x00\\x1fv\" + // 0x03B90300: 0x00001F76\n\t\"\\x03\\xbf\\x03\\x00\\x00\\x00\\x1fx\" + // 0x03BF0300: 0x00001F78\n\t\"\\x03\\xc5\\x03\\x00\\x00\\x00\\x1fz\" + // 0x03C50300: 0x00001F7A\n\t\"\\x03\\xc9\\x03\\x00\\x00\\x00\\x1f|\" + // 0x03C90300: 0x00001F7C\n\t\"\\x1f\\x00\\x03E\\x00\\x00\\x1f\\x80\" + // 0x1F000345: 0x00001F80\n\t\"\\x1f\\x01\\x03E\\x00\\x00\\x1f\\x81\" + // 0x1F010345: 0x00001F81\n\t\"\\x1f\\x02\\x03E\\x00\\x00\\x1f\\x82\" + // 0x1F020345: 0x00001F82\n\t\"\\x1f\\x03\\x03E\\x00\\x00\\x1f\\x83\" + // 0x1F030345: 0x00001F83\n\t\"\\x1f\\x04\\x03E\\x00\\x00\\x1f\\x84\" + // 0x1F040345: 0x00001F84\n\t\"\\x1f\\x05\\x03E\\x00\\x00\\x1f\\x85\" + // 0x1F050345: 0x00001F85\n\t\"\\x1f\\x06\\x03E\\x00\\x00\\x1f\\x86\" + // 0x1F060345: 0x00001F86\n\t\"\\x1f\\a\\x03E\\x00\\x00\\x1f\\x87\" + // 0x1F070345: 0x00001F87\n\t\"\\x1f\\b\\x03E\\x00\\x00\\x1f\\x88\" + // 0x1F080345: 0x00001F88\n\t\"\\x1f\\t\\x03E\\x00\\x00\\x1f\\x89\" + // 0x1F090345: 0x00001F89\n\t\"\\x1f\\n\\x03E\\x00\\x00\\x1f\\x8a\" + // 0x1F0A0345: 0x00001F8A\n\t\"\\x1f\\v\\x03E\\x00\\x00\\x1f\\x8b\" + // 0x1F0B0345: 0x00001F8B\n\t\"\\x1f\\f\\x03E\\x00\\x00\\x1f\\x8c\" + // 0x1F0C0345: 0x00001F8C\n\t\"\\x1f\\r\\x03E\\x00\\x00\\x1f\\x8d\" + // 0x1F0D0345: 0x00001F8D\n\t\"\\x1f\\x0e\\x03E\\x00\\x00\\x1f\\x8e\" + // 0x1F0E0345: 0x00001F8E\n\t\"\\x1f\\x0f\\x03E\\x00\\x00\\x1f\\x8f\" + // 0x1F0F0345: 0x00001F8F\n\t\"\\x1f \\x03E\\x00\\x00\\x1f\\x90\" + // 0x1F200345: 0x00001F90\n\t\"\\x1f!\\x03E\\x00\\x00\\x1f\\x91\" + // 0x1F210345: 0x00001F91\n\t\"\\x1f\\\"\\x03E\\x00\\x00\\x1f\\x92\" + // 0x1F220345: 0x00001F92\n\t\"\\x1f#\\x03E\\x00\\x00\\x1f\\x93\" + // 0x1F230345: 0x00001F93\n\t\"\\x1f$\\x03E\\x00\\x00\\x1f\\x94\" + // 0x1F240345: 0x00001F94\n\t\"\\x1f%\\x03E\\x00\\x00\\x1f\\x95\" + // 0x1F250345: 0x00001F95\n\t\"\\x1f&\\x03E\\x00\\x00\\x1f\\x96\" + // 0x1F260345: 0x00001F96\n\t\"\\x1f'\\x03E\\x00\\x00\\x1f\\x97\" + // 0x1F270345: 0x00001F97\n\t\"\\x1f(\\x03E\\x00\\x00\\x1f\\x98\" + // 0x1F280345: 0x00001F98\n\t\"\\x1f)\\x03E\\x00\\x00\\x1f\\x99\" + // 0x1F290345: 0x00001F99\n\t\"\\x1f*\\x03E\\x00\\x00\\x1f\\x9a\" + // 0x1F2A0345: 0x00001F9A\n\t\"\\x1f+\\x03E\\x00\\x00\\x1f\\x9b\" + // 0x1F2B0345: 0x00001F9B\n\t\"\\x1f,\\x03E\\x00\\x00\\x1f\\x9c\" + // 0x1F2C0345: 0x00001F9C\n\t\"\\x1f-\\x03E\\x00\\x00\\x1f\\x9d\" + // 0x1F2D0345: 0x00001F9D\n\t\"\\x1f.\\x03E\\x00\\x00\\x1f\\x9e\" + // 0x1F2E0345: 0x00001F9E\n\t\"\\x1f/\\x03E\\x00\\x00\\x1f\\x9f\" + // 0x1F2F0345: 0x00001F9F\n\t\"\\x1f`\\x03E\\x00\\x00\\x1f\\xa0\" + // 0x1F600345: 0x00001FA0\n\t\"\\x1fa\\x03E\\x00\\x00\\x1f\\xa1\" + // 0x1F610345: 0x00001FA1\n\t\"\\x1fb\\x03E\\x00\\x00\\x1f\\xa2\" + // 0x1F620345: 0x00001FA2\n\t\"\\x1fc\\x03E\\x00\\x00\\x1f\\xa3\" + // 0x1F630345: 0x00001FA3\n\t\"\\x1fd\\x03E\\x00\\x00\\x1f\\xa4\" + // 0x1F640345: 0x00001FA4\n\t\"\\x1fe\\x03E\\x00\\x00\\x1f\\xa5\" + // 0x1F650345: 0x00001FA5\n\t\"\\x1ff\\x03E\\x00\\x00\\x1f\\xa6\" + // 0x1F660345: 0x00001FA6\n\t\"\\x1fg\\x03E\\x00\\x00\\x1f\\xa7\" + // 0x1F670345: 0x00001FA7\n\t\"\\x1fh\\x03E\\x00\\x00\\x1f\\xa8\" + // 0x1F680345: 0x00001FA8\n\t\"\\x1fi\\x03E\\x00\\x00\\x1f\\xa9\" + // 0x1F690345: 0x00001FA9\n\t\"\\x1fj\\x03E\\x00\\x00\\x1f\\xaa\" + // 0x1F6A0345: 0x00001FAA\n\t\"\\x1fk\\x03E\\x00\\x00\\x1f\\xab\" + // 0x1F6B0345: 0x00001FAB\n\t\"\\x1fl\\x03E\\x00\\x00\\x1f\\xac\" + // 0x1F6C0345: 0x00001FAC\n\t\"\\x1fm\\x03E\\x00\\x00\\x1f\\xad\" + // 0x1F6D0345: 0x00001FAD\n\t\"\\x1fn\\x03E\\x00\\x00\\x1f\\xae\" + // 0x1F6E0345: 0x00001FAE\n\t\"\\x1fo\\x03E\\x00\\x00\\x1f\\xaf\" + // 0x1F6F0345: 0x00001FAF\n\t\"\\x03\\xb1\\x03\\x06\\x00\\x00\\x1f\\xb0\" + // 0x03B10306: 0x00001FB0\n\t\"\\x03\\xb1\\x03\\x04\\x00\\x00\\x1f\\xb1\" + // 0x03B10304: 0x00001FB1\n\t\"\\x1fp\\x03E\\x00\\x00\\x1f\\xb2\" + // 0x1F700345: 0x00001FB2\n\t\"\\x03\\xb1\\x03E\\x00\\x00\\x1f\\xb3\" + // 0x03B10345: 0x00001FB3\n\t\"\\x03\\xac\\x03E\\x00\\x00\\x1f\\xb4\" + // 0x03AC0345: 0x00001FB4\n\t\"\\x03\\xb1\\x03B\\x00\\x00\\x1f\\xb6\" + // 0x03B10342: 0x00001FB6\n\t\"\\x1f\\xb6\\x03E\\x00\\x00\\x1f\\xb7\" + // 0x1FB60345: 0x00001FB7\n\t\"\\x03\\x91\\x03\\x06\\x00\\x00\\x1f\\xb8\" + // 0x03910306: 0x00001FB8\n\t\"\\x03\\x91\\x03\\x04\\x00\\x00\\x1f\\xb9\" + // 0x03910304: 0x00001FB9\n\t\"\\x03\\x91\\x03\\x00\\x00\\x00\\x1f\\xba\" + // 0x03910300: 0x00001FBA\n\t\"\\x03\\x91\\x03E\\x00\\x00\\x1f\\xbc\" + // 0x03910345: 0x00001FBC\n\t\"\\x00\\xa8\\x03B\\x00\\x00\\x1f\\xc1\" + // 0x00A80342: 0x00001FC1\n\t\"\\x1ft\\x03E\\x00\\x00\\x1f\\xc2\" + // 0x1F740345: 0x00001FC2\n\t\"\\x03\\xb7\\x03E\\x00\\x00\\x1f\\xc3\" + // 0x03B70345: 0x00001FC3\n\t\"\\x03\\xae\\x03E\\x00\\x00\\x1f\\xc4\" + // 0x03AE0345: 0x00001FC4\n\t\"\\x03\\xb7\\x03B\\x00\\x00\\x1f\\xc6\" + // 0x03B70342: 0x00001FC6\n\t\"\\x1f\\xc6\\x03E\\x00\\x00\\x1f\\xc7\" + // 0x1FC60345: 0x00001FC7\n\t\"\\x03\\x95\\x03\\x00\\x00\\x00\\x1f\\xc8\" + // 0x03950300: 0x00001FC8\n\t\"\\x03\\x97\\x03\\x00\\x00\\x00\\x1f\\xca\" + // 0x03970300: 0x00001FCA\n\t\"\\x03\\x97\\x03E\\x00\\x00\\x1f\\xcc\" + // 0x03970345: 0x00001FCC\n\t\"\\x1f\\xbf\\x03\\x00\\x00\\x00\\x1f\\xcd\" + // 0x1FBF0300: 0x00001FCD\n\t\"\\x1f\\xbf\\x03\\x01\\x00\\x00\\x1f\\xce\" + // 0x1FBF0301: 0x00001FCE\n\t\"\\x1f\\xbf\\x03B\\x00\\x00\\x1f\\xcf\" + // 0x1FBF0342: 0x00001FCF\n\t\"\\x03\\xb9\\x03\\x06\\x00\\x00\\x1f\\xd0\" + // 0x03B90306: 0x00001FD0\n\t\"\\x03\\xb9\\x03\\x04\\x00\\x00\\x1f\\xd1\" + // 0x03B90304: 0x00001FD1\n\t\"\\x03\\xca\\x03\\x00\\x00\\x00\\x1f\\xd2\" + // 0x03CA0300: 0x00001FD2\n\t\"\\x03\\xb9\\x03B\\x00\\x00\\x1f\\xd6\" + // 0x03B90342: 0x00001FD6\n\t\"\\x03\\xca\\x03B\\x00\\x00\\x1f\\xd7\" + // 0x03CA0342: 0x00001FD7\n\t\"\\x03\\x99\\x03\\x06\\x00\\x00\\x1f\\xd8\" + // 0x03990306: 0x00001FD8\n\t\"\\x03\\x99\\x03\\x04\\x00\\x00\\x1f\\xd9\" + // 0x03990304: 0x00001FD9\n\t\"\\x03\\x99\\x03\\x00\\x00\\x00\\x1f\\xda\" + // 0x03990300: 0x00001FDA\n\t\"\\x1f\\xfe\\x03\\x00\\x00\\x00\\x1f\\xdd\" + // 0x1FFE0300: 0x00001FDD\n\t\"\\x1f\\xfe\\x03\\x01\\x00\\x00\\x1f\\xde\" + // 0x1FFE0301: 0x00001FDE\n\t\"\\x1f\\xfe\\x03B\\x00\\x00\\x1f\\xdf\" + // 0x1FFE0342: 0x00001FDF\n\t\"\\x03\\xc5\\x03\\x06\\x00\\x00\\x1f\\xe0\" + // 0x03C50306: 0x00001FE0\n\t\"\\x03\\xc5\\x03\\x04\\x00\\x00\\x1f\\xe1\" + // 0x03C50304: 0x00001FE1\n\t\"\\x03\\xcb\\x03\\x00\\x00\\x00\\x1f\\xe2\" + // 0x03CB0300: 0x00001FE2\n\t\"\\x03\\xc1\\x03\\x13\\x00\\x00\\x1f\\xe4\" + // 0x03C10313: 0x00001FE4\n\t\"\\x03\\xc1\\x03\\x14\\x00\\x00\\x1f\\xe5\" + // 0x03C10314: 0x00001FE5\n\t\"\\x03\\xc5\\x03B\\x00\\x00\\x1f\\xe6\" + // 0x03C50342: 0x00001FE6\n\t\"\\x03\\xcb\\x03B\\x00\\x00\\x1f\\xe7\" + // 0x03CB0342: 0x00001FE7\n\t\"\\x03\\xa5\\x03\\x06\\x00\\x00\\x1f\\xe8\" + // 0x03A50306: 0x00001FE8\n\t\"\\x03\\xa5\\x03\\x04\\x00\\x00\\x1f\\xe9\" + // 0x03A50304: 0x00001FE9\n\t\"\\x03\\xa5\\x03\\x00\\x00\\x00\\x1f\\xea\" + // 0x03A50300: 0x00001FEA\n\t\"\\x03\\xa1\\x03\\x14\\x00\\x00\\x1f\\xec\" + // 0x03A10314: 0x00001FEC\n\t\"\\x00\\xa8\\x03\\x00\\x00\\x00\\x1f\\xed\" + // 0x00A80300: 0x00001FED\n\t\"\\x1f|\\x03E\\x00\\x00\\x1f\\xf2\" + // 0x1F7C0345: 0x00001FF2\n\t\"\\x03\\xc9\\x03E\\x00\\x00\\x1f\\xf3\" + // 0x03C90345: 0x00001FF3\n\t\"\\x03\\xce\\x03E\\x00\\x00\\x1f\\xf4\" + // 0x03CE0345: 0x00001FF4\n\t\"\\x03\\xc9\\x03B\\x00\\x00\\x1f\\xf6\" + // 0x03C90342: 0x00001FF6\n\t\"\\x1f\\xf6\\x03E\\x00\\x00\\x1f\\xf7\" + // 0x1FF60345: 0x00001FF7\n\t\"\\x03\\x9f\\x03\\x00\\x00\\x00\\x1f\\xf8\" + // 0x039F0300: 0x00001FF8\n\t\"\\x03\\xa9\\x03\\x00\\x00\\x00\\x1f\\xfa\" + // 0x03A90300: 0x00001FFA\n\t\"\\x03\\xa9\\x03E\\x00\\x00\\x1f\\xfc\" + // 0x03A90345: 0x00001FFC\n\t\"!\\x90\\x038\\x00\\x00!\\x9a\" + // 0x21900338: 0x0000219A\n\t\"!\\x92\\x038\\x00\\x00!\\x9b\" + // 0x21920338: 0x0000219B\n\t\"!\\x94\\x038\\x00\\x00!\\xae\" + // 0x21940338: 0x000021AE\n\t\"!\\xd0\\x038\\x00\\x00!\\xcd\" + // 0x21D00338: 0x000021CD\n\t\"!\\xd4\\x038\\x00\\x00!\\xce\" + // 0x21D40338: 0x000021CE\n\t\"!\\xd2\\x038\\x00\\x00!\\xcf\" + // 0x21D20338: 0x000021CF\n\t\"\\\"\\x03\\x038\\x00\\x00\\\"\\x04\" + // 0x22030338: 0x00002204\n\t\"\\\"\\b\\x038\\x00\\x00\\\"\\t\" + // 0x22080338: 0x00002209\n\t\"\\\"\\v\\x038\\x00\\x00\\\"\\f\" + // 0x220B0338: 0x0000220C\n\t\"\\\"#\\x038\\x00\\x00\\\"$\" + // 0x22230338: 0x00002224\n\t\"\\\"%\\x038\\x00\\x00\\\"&\" + // 0x22250338: 0x00002226\n\t\"\\\"<\\x038\\x00\\x00\\\"A\" + // 0x223C0338: 0x00002241\n\t\"\\\"C\\x038\\x00\\x00\\\"D\" + // 0x22430338: 0x00002244\n\t\"\\\"E\\x038\\x00\\x00\\\"G\" + // 0x22450338: 0x00002247\n\t\"\\\"H\\x038\\x00\\x00\\\"I\" + // 0x22480338: 0x00002249\n\t\"\\x00=\\x038\\x00\\x00\\\"`\" + // 0x003D0338: 0x00002260\n\t\"\\\"a\\x038\\x00\\x00\\\"b\" + // 0x22610338: 0x00002262\n\t\"\\\"M\\x038\\x00\\x00\\\"m\" + // 0x224D0338: 0x0000226D\n\t\"\\x00<\\x038\\x00\\x00\\\"n\" + // 0x003C0338: 0x0000226E\n\t\"\\x00>\\x038\\x00\\x00\\\"o\" + // 0x003E0338: 0x0000226F\n\t\"\\\"d\\x038\\x00\\x00\\\"p\" + // 0x22640338: 0x00002270\n\t\"\\\"e\\x038\\x00\\x00\\\"q\" + // 0x22650338: 0x00002271\n\t\"\\\"r\\x038\\x00\\x00\\\"t\" + // 0x22720338: 0x00002274\n\t\"\\\"s\\x038\\x00\\x00\\\"u\" + // 0x22730338: 0x00002275\n\t\"\\\"v\\x038\\x00\\x00\\\"x\" + // 0x22760338: 0x00002278\n\t\"\\\"w\\x038\\x00\\x00\\\"y\" + // 0x22770338: 0x00002279\n\t\"\\\"z\\x038\\x00\\x00\\\"\\x80\" + // 0x227A0338: 0x00002280\n\t\"\\\"{\\x038\\x00\\x00\\\"\\x81\" + // 0x227B0338: 0x00002281\n\t\"\\\"\\x82\\x038\\x00\\x00\\\"\\x84\" + // 0x22820338: 0x00002284\n\t\"\\\"\\x83\\x038\\x00\\x00\\\"\\x85\" + // 0x22830338: 0x00002285\n\t\"\\\"\\x86\\x038\\x00\\x00\\\"\\x88\" + // 0x22860338: 0x00002288\n\t\"\\\"\\x87\\x038\\x00\\x00\\\"\\x89\" + // 0x22870338: 0x00002289\n\t\"\\\"\\xa2\\x038\\x00\\x00\\\"\\xac\" + // 0x22A20338: 0x000022AC\n\t\"\\\"\\xa8\\x038\\x00\\x00\\\"\\xad\" + // 0x22A80338: 0x000022AD\n\t\"\\\"\\xa9\\x038\\x00\\x00\\\"\\xae\" + // 0x22A90338: 0x000022AE\n\t\"\\\"\\xab\\x038\\x00\\x00\\\"\\xaf\" + // 0x22AB0338: 0x000022AF\n\t\"\\\"|\\x038\\x00\\x00\\\"\\xe0\" + // 0x227C0338: 0x000022E0\n\t\"\\\"}\\x038\\x00\\x00\\\"\\xe1\" + // 0x227D0338: 0x000022E1\n\t\"\\\"\\x91\\x038\\x00\\x00\\\"\\xe2\" + // 0x22910338: 0x000022E2\n\t\"\\\"\\x92\\x038\\x00\\x00\\\"\\xe3\" + // 0x22920338: 0x000022E3\n\t\"\\\"\\xb2\\x038\\x00\\x00\\\"\\xea\" + // 0x22B20338: 0x000022EA\n\t\"\\\"\\xb3\\x038\\x00\\x00\\\"\\xeb\" + // 0x22B30338: 0x000022EB\n\t\"\\\"\\xb4\\x038\\x00\\x00\\\"\\xec\" + // 0x22B40338: 0x000022EC\n\t\"\\\"\\xb5\\x038\\x00\\x00\\\"\\xed\" + // 0x22B50338: 0x000022ED\n\t\"0K0\\x99\\x00\\x000L\" + // 0x304B3099: 0x0000304C\n\t\"0M0\\x99\\x00\\x000N\" + // 0x304D3099: 0x0000304E\n\t\"0O0\\x99\\x00\\x000P\" + // 0x304F3099: 0x00003050\n\t\"0Q0\\x99\\x00\\x000R\" + // 0x30513099: 0x00003052\n\t\"0S0\\x99\\x00\\x000T\" + // 0x30533099: 0x00003054\n\t\"0U0\\x99\\x00\\x000V\" + // 0x30553099: 0x00003056\n\t\"0W0\\x99\\x00\\x000X\" + // 0x30573099: 0x00003058\n\t\"0Y0\\x99\\x00\\x000Z\" + // 0x30593099: 0x0000305A\n\t\"0[0\\x99\\x00\\x000\\\\\" + // 0x305B3099: 0x0000305C\n\t\"0]0\\x99\\x00\\x000^\" + // 0x305D3099: 0x0000305E\n\t\"0_0\\x99\\x00\\x000`\" + // 0x305F3099: 0x00003060\n\t\"0a0\\x99\\x00\\x000b\" + // 0x30613099: 0x00003062\n\t\"0d0\\x99\\x00\\x000e\" + // 0x30643099: 0x00003065\n\t\"0f0\\x99\\x00\\x000g\" + // 0x30663099: 0x00003067\n\t\"0h0\\x99\\x00\\x000i\" + // 0x30683099: 0x00003069\n\t\"0o0\\x99\\x00\\x000p\" + // 0x306F3099: 0x00003070\n\t\"0o0\\x9a\\x00\\x000q\" + // 0x306F309A: 0x00003071\n\t\"0r0\\x99\\x00\\x000s\" + // 0x30723099: 0x00003073\n\t\"0r0\\x9a\\x00\\x000t\" + // 0x3072309A: 0x00003074\n\t\"0u0\\x99\\x00\\x000v\" + // 0x30753099: 0x00003076\n\t\"0u0\\x9a\\x00\\x000w\" + // 0x3075309A: 0x00003077\n\t\"0x0\\x99\\x00\\x000y\" + // 0x30783099: 0x00003079\n\t\"0x0\\x9a\\x00\\x000z\" + // 0x3078309A: 0x0000307A\n\t\"0{0\\x99\\x00\\x000|\" + // 0x307B3099: 0x0000307C\n\t\"0{0\\x9a\\x00\\x000}\" + // 0x307B309A: 0x0000307D\n\t\"0F0\\x99\\x00\\x000\\x94\" + // 0x30463099: 0x00003094\n\t\"0\\x9d0\\x99\\x00\\x000\\x9e\" + // 0x309D3099: 0x0000309E\n\t\"0\\xab0\\x99\\x00\\x000\\xac\" + // 0x30AB3099: 0x000030AC\n\t\"0\\xad0\\x99\\x00\\x000\\xae\" + // 0x30AD3099: 0x000030AE\n\t\"0\\xaf0\\x99\\x00\\x000\\xb0\" + // 0x30AF3099: 0x000030B0\n\t\"0\\xb10\\x99\\x00\\x000\\xb2\" + // 0x30B13099: 0x000030B2\n\t\"0\\xb30\\x99\\x00\\x000\\xb4\" + // 0x30B33099: 0x000030B4\n\t\"0\\xb50\\x99\\x00\\x000\\xb6\" + // 0x30B53099: 0x000030B6\n\t\"0\\xb70\\x99\\x00\\x000\\xb8\" + // 0x30B73099: 0x000030B8\n\t\"0\\xb90\\x99\\x00\\x000\\xba\" + // 0x30B93099: 0x000030BA\n\t\"0\\xbb0\\x99\\x00\\x000\\xbc\" + // 0x30BB3099: 0x000030BC\n\t\"0\\xbd0\\x99\\x00\\x000\\xbe\" + // 0x30BD3099: 0x000030BE\n\t\"0\\xbf0\\x99\\x00\\x000\\xc0\" + // 0x30BF3099: 0x000030C0\n\t\"0\\xc10\\x99\\x00\\x000\\xc2\" + // 0x30C13099: 0x000030C2\n\t\"0\\xc40\\x99\\x00\\x000\\xc5\" + // 0x30C43099: 0x000030C5\n\t\"0\\xc60\\x99\\x00\\x000\\xc7\" + // 0x30C63099: 0x000030C7\n\t\"0\\xc80\\x99\\x00\\x000\\xc9\" + // 0x30C83099: 0x000030C9\n\t\"0\\xcf0\\x99\\x00\\x000\\xd0\" + // 0x30CF3099: 0x000030D0\n\t\"0\\xcf0\\x9a\\x00\\x000\\xd1\" + // 0x30CF309A: 0x000030D1\n\t\"0\\xd20\\x99\\x00\\x000\\xd3\" + // 0x30D23099: 0x000030D3\n\t\"0\\xd20\\x9a\\x00\\x000\\xd4\" + // 0x30D2309A: 0x000030D4\n\t\"0\\xd50\\x99\\x00\\x000\\xd6\" + // 0x30D53099: 0x000030D6\n\t\"0\\xd50\\x9a\\x00\\x000\\xd7\" + // 0x30D5309A: 0x000030D7\n\t\"0\\xd80\\x99\\x00\\x000\\xd9\" + // 0x30D83099: 0x000030D9\n\t\"0\\xd80\\x9a\\x00\\x000\\xda\" + // 0x30D8309A: 0x000030DA\n\t\"0\\xdb0\\x99\\x00\\x000\\xdc\" + // 0x30DB3099: 0x000030DC\n\t\"0\\xdb0\\x9a\\x00\\x000\\xdd\" + // 0x30DB309A: 0x000030DD\n\t\"0\\xa60\\x99\\x00\\x000\\xf4\" + // 0x30A63099: 0x000030F4\n\t\"0\\xef0\\x99\\x00\\x000\\xf7\" + // 0x30EF3099: 0x000030F7\n\t\"0\\xf00\\x99\\x00\\x000\\xf8\" + // 0x30F03099: 0x000030F8\n\t\"0\\xf10\\x99\\x00\\x000\\xf9\" + // 0x30F13099: 0x000030F9\n\t\"0\\xf20\\x99\\x00\\x000\\xfa\" + // 0x30F23099: 0x000030FA\n\t\"0\\xfd0\\x99\\x00\\x000\\xfe\" + // 0x30FD3099: 0x000030FE\n\t\"\\x10\\x99\\x10\\xba\\x00\\x01\\x10\\x9a\" + // 0x109910BA: 0x0001109A\n\t\"\\x10\\x9b\\x10\\xba\\x00\\x01\\x10\\x9c\" + // 0x109B10BA: 0x0001109C\n\t\"\\x10\\xa5\\x10\\xba\\x00\\x01\\x10\\xab\" + // 0x10A510BA: 0x000110AB\n\t\"\\x111\\x11'\\x00\\x01\\x11.\" + // 0x11311127: 0x0001112E\n\t\"\\x112\\x11'\\x00\\x01\\x11/\" + // 0x11321127: 0x0001112F\n\t\"\\x13G\\x13>\\x00\\x01\\x13K\" + // 0x1347133E: 0x0001134B\n\t\"\\x13G\\x13W\\x00\\x01\\x13L\" + // 0x13471357: 0x0001134C\n\t\"\\x14\\xb9\\x14\\xba\\x00\\x01\\x14\\xbb\" + // 0x14B914BA: 0x000114BB\n\t\"\\x14\\xb9\\x14\\xb0\\x00\\x01\\x14\\xbc\" + // 0x14B914B0: 0x000114BC\n\t\"\\x14\\xb9\\x14\\xbd\\x00\\x01\\x14\\xbe\" + // 0x14B914BD: 0x000114BE\n\t\"\\x15\\xb8\\x15\\xaf\\x00\\x01\\x15\\xba\" + // 0x15B815AF: 0x000115BA\n\t\"\\x15\\xb9\\x15\\xaf\\x00\\x01\\x15\\xbb\" + // 0x15B915AF: 0x000115BB\n\t\"\"\n\t// Total size of tables: 53KB (54006 bytes)\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/norm/transform.go",
    "content": "// Copyright 2013 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage norm\n\nimport (\n\t\"unicode/utf8\"\n\n\t\"golang.org/x/text/transform\"\n)\n\n// Reset implements the Reset method of the transform.Transformer interface.\nfunc (Form) Reset() {}\n\n// Transform implements the Transform method of the transform.Transformer\n// interface. It may need to write segments of up to MaxSegmentSize at once.\n// Users should either catch ErrShortDst and allow dst to grow or have dst be at\n// least of size MaxTransformChunkSize to be guaranteed of progress.\nfunc (f Form) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {\n\t// Cap the maximum number of src bytes to check.\n\tb := src\n\teof := atEOF\n\tif ns := len(dst); ns < len(b) {\n\t\terr = transform.ErrShortDst\n\t\teof = false\n\t\tb = b[:ns]\n\t}\n\ti, ok := formTable[f].quickSpan(inputBytes(b), 0, len(b), eof)\n\tn := copy(dst, b[:i])\n\tif !ok {\n\t\tnDst, nSrc, err = f.transform(dst[n:], src[n:], atEOF)\n\t\treturn nDst + n, nSrc + n, err\n\t}\n\n\tif err == nil && n < len(src) && !atEOF {\n\t\terr = transform.ErrShortSrc\n\t}\n\treturn n, n, err\n}\n\nfunc flushTransform(rb *reorderBuffer) bool {\n\t// Write out (must fully fit in dst, or else it is an ErrShortDst).\n\tif len(rb.out) < rb.nrune*utf8.UTFMax {\n\t\treturn false\n\t}\n\trb.out = rb.out[rb.flushCopy(rb.out):]\n\treturn true\n}\n\nvar errs = []error{nil, transform.ErrShortDst, transform.ErrShortSrc}\n\n// transform implements the transform.Transformer interface. It is only called\n// when quickSpan does not pass for a given string.\nfunc (f Form) transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {\n\t// TODO: get rid of reorderBuffer. See CL 23460044.\n\trb := reorderBuffer{}\n\trb.init(f, src)\n\tfor {\n\t\t// Load segment into reorder buffer.\n\t\trb.setFlusher(dst[nDst:], flushTransform)\n\t\tend := decomposeSegment(&rb, nSrc, atEOF)\n\t\tif end < 0 {\n\t\t\treturn nDst, nSrc, errs[-end]\n\t\t}\n\t\tnDst = len(dst) - len(rb.out)\n\t\tnSrc = end\n\n\t\t// Next quickSpan.\n\t\tend = rb.nsrc\n\t\teof := atEOF\n\t\tif n := nSrc + len(dst) - nDst; n < end {\n\t\t\terr = transform.ErrShortDst\n\t\t\tend = n\n\t\t\teof = false\n\t\t}\n\t\tend, ok := rb.f.quickSpan(rb.src, nSrc, end, eof)\n\t\tn := copy(dst[nDst:], rb.src.bytes[nSrc:end])\n\t\tnSrc += n\n\t\tnDst += n\n\t\tif ok {\n\t\t\tif err == nil && n < rb.nsrc && !atEOF {\n\t\t\t\terr = transform.ErrShortSrc\n\t\t\t}\n\t\t\treturn nDst, nSrc, err\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/golang.org/x/text/unicode/norm/trie.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage norm\n\ntype valueRange struct {\n\tvalue  uint16 // header: value:stride\n\tlo, hi byte   // header: lo:n\n}\n\ntype sparseBlocks struct {\n\tvalues []valueRange\n\toffset []uint16\n}\n\nvar nfcSparse = sparseBlocks{\n\tvalues: nfcSparseValues[:],\n\toffset: nfcSparseOffset[:],\n}\n\nvar nfkcSparse = sparseBlocks{\n\tvalues: nfkcSparseValues[:],\n\toffset: nfkcSparseOffset[:],\n}\n\nvar (\n\tnfcData  = newNfcTrie(0)\n\tnfkcData = newNfkcTrie(0)\n)\n\n// lookup determines the type of block n and looks up the value for b.\n// For n < t.cutoff, the block is a simple lookup table. Otherwise, the block\n// is a list of ranges with an accompanying value. Given a matching range r,\n// the value for b is by r.value + (b - r.lo) * stride.\nfunc (t *sparseBlocks) lookup(n uint32, b byte) uint16 {\n\toffset := t.offset[n]\n\theader := t.values[offset]\n\tlo := offset + 1\n\thi := lo + uint16(header.lo)\n\tfor lo < hi {\n\t\tm := lo + (hi-lo)/2\n\t\tr := t.values[m]\n\t\tif r.lo <= b && b <= r.hi {\n\t\t\treturn r.value + uint16(b-r.lo)*header.value\n\t\t}\n\t\tif b < r.lo {\n\t\t\thi = m\n\t\t} else {\n\t\t\tlo = m + 1\n\t\t}\n\t}\n\treturn 0\n}\n"
  },
  {
    "path": "vendor/golang.org/x/time/LICENSE",
    "content": "Copyright 2009 The Go Authors.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google LLC nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/golang.org/x/time/PATENTS",
    "content": "Additional IP Rights Grant (Patents)\n\n\"This implementation\" means the copyrightable works distributed by\nGoogle as part of the Go project.\n\nGoogle hereby grants to You a perpetual, worldwide, non-exclusive,\nno-charge, royalty-free, irrevocable (except as stated in this section)\npatent license to make, have made, use, offer to sell, sell, import,\ntransfer and otherwise run, modify and propagate the contents of this\nimplementation of Go, where such license applies only to those patent\nclaims, both currently owned or controlled by Google and acquired in\nthe future, licensable by Google that are necessarily infringed by this\nimplementation of Go.  This grant does not include claims that would be\ninfringed only as a consequence of further modification of this\nimplementation.  If you or your agent or exclusive licensee institute or\norder or agree to the institution of patent litigation against any\nentity (including a cross-claim or counterclaim in a lawsuit) alleging\nthat this implementation of Go or any code incorporated within this\nimplementation of Go constitutes direct or contributory patent\ninfringement, or inducement of patent infringement, then any patent\nrights granted to you under this License for this implementation of Go\nshall terminate as of the date such litigation is filed.\n"
  },
  {
    "path": "vendor/golang.org/x/time/rate/rate.go",
    "content": "// Copyright 2015 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package rate provides a rate limiter.\npackage rate\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"math\"\n\t\"sync\"\n\t\"time\"\n)\n\n// Limit defines the maximum frequency of some events.\n// Limit is represented as number of events per second.\n// A zero Limit allows no events.\ntype Limit float64\n\n// Inf is the infinite rate limit; it allows all events (even if burst is zero).\nconst Inf = Limit(math.MaxFloat64)\n\n// Every converts a minimum time interval between events to a Limit.\nfunc Every(interval time.Duration) Limit {\n\tif interval <= 0 {\n\t\treturn Inf\n\t}\n\treturn 1 / Limit(interval.Seconds())\n}\n\n// A Limiter controls how frequently events are allowed to happen.\n// It implements a \"token bucket\" of size b, initially full and refilled\n// at rate r tokens per second.\n// Informally, in any large enough time interval, the Limiter limits the\n// rate to r tokens per second, with a maximum burst size of b events.\n// As a special case, if r == Inf (the infinite rate), b is ignored.\n// See https://en.wikipedia.org/wiki/Token_bucket for more about token buckets.\n//\n// The zero value is a valid Limiter, but it will reject all events.\n// Use NewLimiter to create non-zero Limiters.\n//\n// Limiter has three main methods, Allow, Reserve, and Wait.\n// Most callers should use Wait.\n//\n// Each of the three methods consumes a single token.\n// They differ in their behavior when no token is available.\n// If no token is available, Allow returns false.\n// If no token is available, Reserve returns a reservation for a future token\n// and the amount of time the caller must wait before using it.\n// If no token is available, Wait blocks until one can be obtained\n// or its associated context.Context is canceled.\n//\n// The methods AllowN, ReserveN, and WaitN consume n tokens.\n//\n// Limiter is safe for simultaneous use by multiple goroutines.\ntype Limiter struct {\n\tmu     sync.Mutex\n\tlimit  Limit\n\tburst  int\n\ttokens float64\n\t// last is the last time the limiter's tokens field was updated\n\tlast time.Time\n\t// lastEvent is the latest time of a rate-limited event (past or future)\n\tlastEvent time.Time\n}\n\n// Limit returns the maximum overall event rate.\nfunc (lim *Limiter) Limit() Limit {\n\tlim.mu.Lock()\n\tdefer lim.mu.Unlock()\n\treturn lim.limit\n}\n\n// Burst returns the maximum burst size. Burst is the maximum number of tokens\n// that can be consumed in a single call to Allow, Reserve, or Wait, so higher\n// Burst values allow more events to happen at once.\n// A zero Burst allows no events, unless limit == Inf.\nfunc (lim *Limiter) Burst() int {\n\tlim.mu.Lock()\n\tdefer lim.mu.Unlock()\n\treturn lim.burst\n}\n\n// TokensAt returns the number of tokens available at time t.\nfunc (lim *Limiter) TokensAt(t time.Time) float64 {\n\tlim.mu.Lock()\n\t_, tokens := lim.advance(t) // does not mutate lim\n\tlim.mu.Unlock()\n\treturn tokens\n}\n\n// Tokens returns the number of tokens available now.\nfunc (lim *Limiter) Tokens() float64 {\n\treturn lim.TokensAt(time.Now())\n}\n\n// NewLimiter returns a new Limiter that allows events up to rate r and permits\n// bursts of at most b tokens.\nfunc NewLimiter(r Limit, b int) *Limiter {\n\treturn &Limiter{\n\t\tlimit:  r,\n\t\tburst:  b,\n\t\ttokens: float64(b),\n\t}\n}\n\n// Allow reports whether an event may happen now.\nfunc (lim *Limiter) Allow() bool {\n\treturn lim.AllowN(time.Now(), 1)\n}\n\n// AllowN reports whether n events may happen at time t.\n// Use this method if you intend to drop / skip events that exceed the rate limit.\n// Otherwise use Reserve or Wait.\nfunc (lim *Limiter) AllowN(t time.Time, n int) bool {\n\treturn lim.reserveN(t, n, 0).ok\n}\n\n// A Reservation holds information about events that are permitted by a Limiter to happen after a delay.\n// A Reservation may be canceled, which may enable the Limiter to permit additional events.\ntype Reservation struct {\n\tok        bool\n\tlim       *Limiter\n\ttokens    int\n\ttimeToAct time.Time\n\t// This is the Limit at reservation time, it can change later.\n\tlimit Limit\n}\n\n// OK returns whether the limiter can provide the requested number of tokens\n// within the maximum wait time.  If OK is false, Delay returns InfDuration, and\n// Cancel does nothing.\nfunc (r *Reservation) OK() bool {\n\treturn r.ok\n}\n\n// Delay is shorthand for DelayFrom(time.Now()).\nfunc (r *Reservation) Delay() time.Duration {\n\treturn r.DelayFrom(time.Now())\n}\n\n// InfDuration is the duration returned by Delay when a Reservation is not OK.\nconst InfDuration = time.Duration(math.MaxInt64)\n\n// DelayFrom returns the duration for which the reservation holder must wait\n// before taking the reserved action.  Zero duration means act immediately.\n// InfDuration means the limiter cannot grant the tokens requested in this\n// Reservation within the maximum wait time.\nfunc (r *Reservation) DelayFrom(t time.Time) time.Duration {\n\tif !r.ok {\n\t\treturn InfDuration\n\t}\n\tdelay := r.timeToAct.Sub(t)\n\tif delay < 0 {\n\t\treturn 0\n\t}\n\treturn delay\n}\n\n// Cancel is shorthand for CancelAt(time.Now()).\nfunc (r *Reservation) Cancel() {\n\tr.CancelAt(time.Now())\n}\n\n// CancelAt indicates that the reservation holder will not perform the reserved action\n// and reverses the effects of this Reservation on the rate limit as much as possible,\n// considering that other reservations may have already been made.\nfunc (r *Reservation) CancelAt(t time.Time) {\n\tif !r.ok {\n\t\treturn\n\t}\n\n\tr.lim.mu.Lock()\n\tdefer r.lim.mu.Unlock()\n\n\tif r.lim.limit == Inf || r.tokens == 0 || r.timeToAct.Before(t) {\n\t\treturn\n\t}\n\n\t// calculate tokens to restore\n\t// The duration between lim.lastEvent and r.timeToAct tells us how many tokens were reserved\n\t// after r was obtained. These tokens should not be restored.\n\trestoreTokens := float64(r.tokens) - r.limit.tokensFromDuration(r.lim.lastEvent.Sub(r.timeToAct))\n\tif restoreTokens <= 0 {\n\t\treturn\n\t}\n\t// advance time to now\n\tt, tokens := r.lim.advance(t)\n\t// calculate new number of tokens\n\ttokens += restoreTokens\n\tif burst := float64(r.lim.burst); tokens > burst {\n\t\ttokens = burst\n\t}\n\t// update state\n\tr.lim.last = t\n\tr.lim.tokens = tokens\n\tif r.timeToAct == r.lim.lastEvent {\n\t\tprevEvent := r.timeToAct.Add(r.limit.durationFromTokens(float64(-r.tokens)))\n\t\tif !prevEvent.Before(t) {\n\t\t\tr.lim.lastEvent = prevEvent\n\t\t}\n\t}\n}\n\n// Reserve is shorthand for ReserveN(time.Now(), 1).\nfunc (lim *Limiter) Reserve() *Reservation {\n\treturn lim.ReserveN(time.Now(), 1)\n}\n\n// ReserveN returns a Reservation that indicates how long the caller must wait before n events happen.\n// The Limiter takes this Reservation into account when allowing future events.\n// The returned Reservation’s OK() method returns false if n exceeds the Limiter's burst size.\n// Usage example:\n//\n//\tr := lim.ReserveN(time.Now(), 1)\n//\tif !r.OK() {\n//\t  // Not allowed to act! Did you remember to set lim.burst to be > 0 ?\n//\t  return\n//\t}\n//\ttime.Sleep(r.Delay())\n//\tAct()\n//\n// Use this method if you wish to wait and slow down in accordance with the rate limit without dropping events.\n// If you need to respect a deadline or cancel the delay, use Wait instead.\n// To drop or skip events exceeding rate limit, use Allow instead.\nfunc (lim *Limiter) ReserveN(t time.Time, n int) *Reservation {\n\tr := lim.reserveN(t, n, InfDuration)\n\treturn &r\n}\n\n// Wait is shorthand for WaitN(ctx, 1).\nfunc (lim *Limiter) Wait(ctx context.Context) (err error) {\n\treturn lim.WaitN(ctx, 1)\n}\n\n// WaitN blocks until lim permits n events to happen.\n// It returns an error if n exceeds the Limiter's burst size, the Context is\n// canceled, or the expected wait time exceeds the Context's Deadline.\n// The burst limit is ignored if the rate limit is Inf.\nfunc (lim *Limiter) WaitN(ctx context.Context, n int) (err error) {\n\t// The test code calls lim.wait with a fake timer generator.\n\t// This is the real timer generator.\n\tnewTimer := func(d time.Duration) (<-chan time.Time, func() bool, func()) {\n\t\ttimer := time.NewTimer(d)\n\t\treturn timer.C, timer.Stop, func() {}\n\t}\n\n\treturn lim.wait(ctx, n, time.Now(), newTimer)\n}\n\n// wait is the internal implementation of WaitN.\nfunc (lim *Limiter) wait(ctx context.Context, n int, t time.Time, newTimer func(d time.Duration) (<-chan time.Time, func() bool, func())) error {\n\tlim.mu.Lock()\n\tburst := lim.burst\n\tlimit := lim.limit\n\tlim.mu.Unlock()\n\n\tif n > burst && limit != Inf {\n\t\treturn fmt.Errorf(\"rate: Wait(n=%d) exceeds limiter's burst %d\", n, burst)\n\t}\n\t// Check if ctx is already cancelled\n\tselect {\n\tcase <-ctx.Done():\n\t\treturn ctx.Err()\n\tdefault:\n\t}\n\t// Determine wait limit\n\twaitLimit := InfDuration\n\tif deadline, ok := ctx.Deadline(); ok {\n\t\twaitLimit = deadline.Sub(t)\n\t}\n\t// Reserve\n\tr := lim.reserveN(t, n, waitLimit)\n\tif !r.ok {\n\t\treturn fmt.Errorf(\"rate: Wait(n=%d) would exceed context deadline\", n)\n\t}\n\t// Wait if necessary\n\tdelay := r.DelayFrom(t)\n\tif delay == 0 {\n\t\treturn nil\n\t}\n\tch, stop, advance := newTimer(delay)\n\tdefer stop()\n\tadvance() // only has an effect when testing\n\tselect {\n\tcase <-ch:\n\t\t// We can proceed.\n\t\treturn nil\n\tcase <-ctx.Done():\n\t\t// Context was canceled before we could proceed.  Cancel the\n\t\t// reservation, which may permit other events to proceed sooner.\n\t\tr.Cancel()\n\t\treturn ctx.Err()\n\t}\n}\n\n// SetLimit is shorthand for SetLimitAt(time.Now(), newLimit).\nfunc (lim *Limiter) SetLimit(newLimit Limit) {\n\tlim.SetLimitAt(time.Now(), newLimit)\n}\n\n// SetLimitAt sets a new Limit for the limiter. The new Limit, and Burst, may be violated\n// or underutilized by those which reserved (using Reserve or Wait) but did not yet act\n// before SetLimitAt was called.\nfunc (lim *Limiter) SetLimitAt(t time.Time, newLimit Limit) {\n\tlim.mu.Lock()\n\tdefer lim.mu.Unlock()\n\n\tt, tokens := lim.advance(t)\n\n\tlim.last = t\n\tlim.tokens = tokens\n\tlim.limit = newLimit\n}\n\n// SetBurst is shorthand for SetBurstAt(time.Now(), newBurst).\nfunc (lim *Limiter) SetBurst(newBurst int) {\n\tlim.SetBurstAt(time.Now(), newBurst)\n}\n\n// SetBurstAt sets a new burst size for the limiter.\nfunc (lim *Limiter) SetBurstAt(t time.Time, newBurst int) {\n\tlim.mu.Lock()\n\tdefer lim.mu.Unlock()\n\n\tt, tokens := lim.advance(t)\n\n\tlim.last = t\n\tlim.tokens = tokens\n\tlim.burst = newBurst\n}\n\n// reserveN is a helper method for AllowN, ReserveN, and WaitN.\n// maxFutureReserve specifies the maximum reservation wait duration allowed.\n// reserveN returns Reservation, not *Reservation, to avoid allocation in AllowN and WaitN.\nfunc (lim *Limiter) reserveN(t time.Time, n int, maxFutureReserve time.Duration) Reservation {\n\tlim.mu.Lock()\n\tdefer lim.mu.Unlock()\n\n\tif lim.limit == Inf {\n\t\treturn Reservation{\n\t\t\tok:        true,\n\t\t\tlim:       lim,\n\t\t\ttokens:    n,\n\t\t\ttimeToAct: t,\n\t\t}\n\t}\n\n\tt, tokens := lim.advance(t)\n\n\t// Calculate the remaining number of tokens resulting from the request.\n\ttokens -= float64(n)\n\n\t// Calculate the wait duration\n\tvar waitDuration time.Duration\n\tif tokens < 0 {\n\t\twaitDuration = lim.limit.durationFromTokens(-tokens)\n\t}\n\n\t// Decide result\n\tok := n <= lim.burst && waitDuration <= maxFutureReserve\n\n\t// Prepare reservation\n\tr := Reservation{\n\t\tok:    ok,\n\t\tlim:   lim,\n\t\tlimit: lim.limit,\n\t}\n\tif ok {\n\t\tr.tokens = n\n\t\tr.timeToAct = t.Add(waitDuration)\n\n\t\t// Update state\n\t\tlim.last = t\n\t\tlim.tokens = tokens\n\t\tlim.lastEvent = r.timeToAct\n\t}\n\n\treturn r\n}\n\n// advance calculates and returns an updated state for lim resulting from the passage of time.\n// lim is not changed.\n// advance requires that lim.mu is held.\nfunc (lim *Limiter) advance(t time.Time) (newT time.Time, newTokens float64) {\n\tlast := lim.last\n\tif t.Before(last) {\n\t\tlast = t\n\t}\n\n\t// Calculate the new number of tokens, due to time that passed.\n\telapsed := t.Sub(last)\n\tdelta := lim.limit.tokensFromDuration(elapsed)\n\ttokens := lim.tokens + delta\n\tif burst := float64(lim.burst); tokens > burst {\n\t\ttokens = burst\n\t}\n\treturn t, tokens\n}\n\n// durationFromTokens is a unit conversion function from the number of tokens to the duration\n// of time it takes to accumulate them at a rate of limit tokens per second.\nfunc (limit Limit) durationFromTokens(tokens float64) time.Duration {\n\tif limit <= 0 {\n\t\treturn InfDuration\n\t}\n\tseconds := tokens / float64(limit)\n\treturn time.Duration(float64(time.Second) * seconds)\n}\n\n// tokensFromDuration is a unit conversion function from a time duration to the number of tokens\n// which could be accumulated during that duration at a rate of limit tokens per second.\nfunc (limit Limit) tokensFromDuration(d time.Duration) float64 {\n\tif limit <= 0 {\n\t\treturn 0\n\t}\n\treturn d.Seconds() * float64(limit)\n}\n"
  },
  {
    "path": "vendor/golang.org/x/time/rate/sometimes.go",
    "content": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage rate\n\nimport (\n\t\"sync\"\n\t\"time\"\n)\n\n// Sometimes will perform an action occasionally.  The First, Every, and\n// Interval fields govern the behavior of Do, which performs the action.\n// A zero Sometimes value will perform an action exactly once.\n//\n// # Example: logging with rate limiting\n//\n//\tvar sometimes = rate.Sometimes{First: 3, Interval: 10*time.Second}\n//\tfunc Spammy() {\n//\t        sometimes.Do(func() { log.Info(\"here I am!\") })\n//\t}\ntype Sometimes struct {\n\tFirst    int           // if non-zero, the first N calls to Do will run f.\n\tEvery    int           // if non-zero, every Nth call to Do will run f.\n\tInterval time.Duration // if non-zero and Interval has elapsed since f's last run, Do will run f.\n\n\tmu    sync.Mutex\n\tcount int       // number of Do calls\n\tlast  time.Time // last time f was run\n}\n\n// Do runs the function f as allowed by First, Every, and Interval.\n//\n// The model is a union (not intersection) of filters.  The first call to Do\n// always runs f.  Subsequent calls to Do run f if allowed by First or Every or\n// Interval.\n//\n// A non-zero First:N causes the first N Do(f) calls to run f.\n//\n// A non-zero Every:M causes every Mth Do(f) call, starting with the first, to\n// run f.\n//\n// A non-zero Interval causes Do(f) to run f if Interval has elapsed since\n// Do last ran f.\n//\n// Specifying multiple filters produces the union of these execution streams.\n// For example, specifying both First:N and Every:M causes the first N Do(f)\n// calls and every Mth Do(f) call, starting with the first, to run f.  See\n// Examples for more.\n//\n// If Do is called multiple times simultaneously, the calls will block and run\n// serially.  Therefore, Do is intended for lightweight operations.\n//\n// Because a call to Do may block until f returns, if f causes Do to be called,\n// it will deadlock.\nfunc (s *Sometimes) Do(f func()) {\n\ts.mu.Lock()\n\tdefer s.mu.Unlock()\n\tif s.count == 0 ||\n\t\t(s.First > 0 && s.count < s.First) ||\n\t\t(s.Every > 0 && s.count%s.Every == 0) ||\n\t\t(s.Interval > 0 && time.Since(s.last) >= s.Interval) {\n\t\tf()\n\t\ts.last = time.Now()\n\t}\n\ts.count++\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/LICENSE",
    "content": "Copyright (c) 2018 The Go Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/PATENTS",
    "content": "Additional IP Rights Grant (Patents)\n\n\"This implementation\" means the copyrightable works distributed by\nGoogle as part of the Go project.\n\nGoogle hereby grants to You a perpetual, worldwide, non-exclusive,\nno-charge, royalty-free, irrevocable (except as stated in this section)\npatent license to make, have made, use, offer to sell, sell, import,\ntransfer and otherwise run, modify and propagate the contents of this\nimplementation of Go, where such license applies only to those patent\nclaims, both currently owned or controlled by Google and acquired in\nthe future, licensable by Google that are necessarily infringed by this\nimplementation of Go.  This grant does not include claims that would be\ninfringed only as a consequence of further modification of this\nimplementation.  If you or your agent or exclusive licensee institute or\norder or agree to the institution of patent litigation against any\nentity (including a cross-claim or counterclaim in a lawsuit) alleging\nthat this implementation of Go or any code incorporated within this\nimplementation of Go constitutes direct or contributory patent\ninfringement, or inducement of patent infringement, then any patent\nrights granted to you under this License for this implementation of Go\nshall terminate as of the date such litigation is filed.\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/encoding/prototext/decode.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage prototext\n\nimport (\n\t\"fmt\"\n\t\"unicode/utf8\"\n\n\t\"google.golang.org/protobuf/internal/encoding/messageset\"\n\t\"google.golang.org/protobuf/internal/encoding/text\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/internal/flags\"\n\t\"google.golang.org/protobuf/internal/genid\"\n\t\"google.golang.org/protobuf/internal/pragma\"\n\t\"google.golang.org/protobuf/internal/set\"\n\t\"google.golang.org/protobuf/internal/strs\"\n\t\"google.golang.org/protobuf/proto\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/reflect/protoregistry\"\n)\n\n// Unmarshal reads the given []byte into the given [proto.Message].\n// The provided message must be mutable (e.g., a non-nil pointer to a message).\nfunc Unmarshal(b []byte, m proto.Message) error {\n\treturn UnmarshalOptions{}.Unmarshal(b, m)\n}\n\n// UnmarshalOptions is a configurable textproto format unmarshaler.\ntype UnmarshalOptions struct {\n\tpragma.NoUnkeyedLiterals\n\n\t// AllowPartial accepts input for messages that will result in missing\n\t// required fields. If AllowPartial is false (the default), Unmarshal will\n\t// return error if there are any missing required fields.\n\tAllowPartial bool\n\n\t// DiscardUnknown specifies whether to ignore unknown fields when parsing.\n\t// An unknown field is any field whose field name or field number does not\n\t// resolve to any known or extension field in the message.\n\t// By default, unmarshal rejects unknown fields as an error.\n\tDiscardUnknown bool\n\n\t// Resolver is used for looking up types when unmarshaling\n\t// google.protobuf.Any messages or extension fields.\n\t// If nil, this defaults to using protoregistry.GlobalTypes.\n\tResolver interface {\n\t\tprotoregistry.MessageTypeResolver\n\t\tprotoregistry.ExtensionTypeResolver\n\t}\n}\n\n// Unmarshal reads the given []byte and populates the given [proto.Message]\n// using options in the UnmarshalOptions object.\n// The provided message must be mutable (e.g., a non-nil pointer to a message).\nfunc (o UnmarshalOptions) Unmarshal(b []byte, m proto.Message) error {\n\treturn o.unmarshal(b, m)\n}\n\n// unmarshal is a centralized function that all unmarshal operations go through.\n// For profiling purposes, avoid changing the name of this function or\n// introducing other code paths for unmarshal that do not go through this.\nfunc (o UnmarshalOptions) unmarshal(b []byte, m proto.Message) error {\n\tproto.Reset(m)\n\n\tif o.Resolver == nil {\n\t\to.Resolver = protoregistry.GlobalTypes\n\t}\n\n\tdec := decoder{text.NewDecoder(b), o}\n\tif err := dec.unmarshalMessage(m.ProtoReflect(), false); err != nil {\n\t\treturn err\n\t}\n\tif o.AllowPartial {\n\t\treturn nil\n\t}\n\treturn proto.CheckInitialized(m)\n}\n\ntype decoder struct {\n\t*text.Decoder\n\topts UnmarshalOptions\n}\n\n// newError returns an error object with position info.\nfunc (d decoder) newError(pos int, f string, x ...any) error {\n\tline, column := d.Position(pos)\n\thead := fmt.Sprintf(\"(line %d:%d): \", line, column)\n\treturn errors.New(head+f, x...)\n}\n\n// unexpectedTokenError returns a syntax error for the given unexpected token.\nfunc (d decoder) unexpectedTokenError(tok text.Token) error {\n\treturn d.syntaxError(tok.Pos(), \"unexpected token: %s\", tok.RawString())\n}\n\n// syntaxError returns a syntax error for given position.\nfunc (d decoder) syntaxError(pos int, f string, x ...any) error {\n\tline, column := d.Position(pos)\n\thead := fmt.Sprintf(\"syntax error (line %d:%d): \", line, column)\n\treturn errors.New(head+f, x...)\n}\n\n// unmarshalMessage unmarshals into the given protoreflect.Message.\nfunc (d decoder) unmarshalMessage(m protoreflect.Message, checkDelims bool) error {\n\tmessageDesc := m.Descriptor()\n\tif !flags.ProtoLegacy && messageset.IsMessageSet(messageDesc) {\n\t\treturn errors.New(\"no support for proto1 MessageSets\")\n\t}\n\n\tif messageDesc.FullName() == genid.Any_message_fullname {\n\t\treturn d.unmarshalAny(m, checkDelims)\n\t}\n\n\tif checkDelims {\n\t\ttok, err := d.Read()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif tok.Kind() != text.MessageOpen {\n\t\t\treturn d.unexpectedTokenError(tok)\n\t\t}\n\t}\n\n\tvar seenNums set.Ints\n\tvar seenOneofs set.Ints\n\tfieldDescs := messageDesc.Fields()\n\n\tfor {\n\t\t// Read field name.\n\t\ttok, err := d.Read()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tswitch typ := tok.Kind(); typ {\n\t\tcase text.Name:\n\t\t\t// Continue below.\n\t\tcase text.EOF:\n\t\t\tif checkDelims {\n\t\t\t\treturn text.ErrUnexpectedEOF\n\t\t\t}\n\t\t\treturn nil\n\t\tdefault:\n\t\t\tif checkDelims && typ == text.MessageClose {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\treturn d.unexpectedTokenError(tok)\n\t\t}\n\n\t\t// Resolve the field descriptor.\n\t\tvar name protoreflect.Name\n\t\tvar fd protoreflect.FieldDescriptor\n\t\tvar xt protoreflect.ExtensionType\n\t\tvar xtErr error\n\t\tvar isFieldNumberName bool\n\n\t\tswitch tok.NameKind() {\n\t\tcase text.IdentName:\n\t\t\tname = protoreflect.Name(tok.IdentName())\n\t\t\tfd = fieldDescs.ByTextName(string(name))\n\n\t\tcase text.TypeName:\n\t\t\t// Handle extensions only. This code path is not for Any.\n\t\t\txt, xtErr = d.opts.Resolver.FindExtensionByName(protoreflect.FullName(tok.TypeName()))\n\n\t\tcase text.FieldNumber:\n\t\t\tisFieldNumberName = true\n\t\t\tnum := protoreflect.FieldNumber(tok.FieldNumber())\n\t\t\tif !num.IsValid() {\n\t\t\t\treturn d.newError(tok.Pos(), \"invalid field number: %d\", num)\n\t\t\t}\n\t\t\tfd = fieldDescs.ByNumber(num)\n\t\t\tif fd == nil {\n\t\t\t\txt, xtErr = d.opts.Resolver.FindExtensionByNumber(messageDesc.FullName(), num)\n\t\t\t}\n\t\t}\n\n\t\tif xt != nil {\n\t\t\tfd = xt.TypeDescriptor()\n\t\t\tif !messageDesc.ExtensionRanges().Has(fd.Number()) || fd.ContainingMessage().FullName() != messageDesc.FullName() {\n\t\t\t\treturn d.newError(tok.Pos(), \"message %v cannot be extended by %v\", messageDesc.FullName(), fd.FullName())\n\t\t\t}\n\t\t} else if xtErr != nil && xtErr != protoregistry.NotFound {\n\t\t\treturn d.newError(tok.Pos(), \"unable to resolve [%s]: %v\", tok.RawString(), xtErr)\n\t\t}\n\t\tif flags.ProtoLegacy {\n\t\t\tif fd != nil && fd.IsWeak() && fd.Message().IsPlaceholder() {\n\t\t\t\tfd = nil // reset since the weak reference is not linked in\n\t\t\t}\n\t\t}\n\n\t\t// Handle unknown fields.\n\t\tif fd == nil {\n\t\t\tif d.opts.DiscardUnknown || messageDesc.ReservedNames().Has(name) {\n\t\t\t\td.skipValue()\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn d.newError(tok.Pos(), \"unknown field: %v\", tok.RawString())\n\t\t}\n\n\t\t// Handle fields identified by field number.\n\t\tif isFieldNumberName {\n\t\t\t// TODO: Add an option to permit parsing field numbers.\n\t\t\t//\n\t\t\t// This requires careful thought as the MarshalOptions.EmitUnknown\n\t\t\t// option allows formatting unknown fields as the field number and the\n\t\t\t// best-effort textual representation of the field value.  In that case,\n\t\t\t// it may not be possible to unmarshal the value from a parser that does\n\t\t\t// have information about the unknown field.\n\t\t\treturn d.newError(tok.Pos(), \"cannot specify field by number: %v\", tok.RawString())\n\t\t}\n\n\t\tswitch {\n\t\tcase fd.IsList():\n\t\t\tkind := fd.Kind()\n\t\t\tif kind != protoreflect.MessageKind && kind != protoreflect.GroupKind && !tok.HasSeparator() {\n\t\t\t\treturn d.syntaxError(tok.Pos(), \"missing field separator :\")\n\t\t\t}\n\n\t\t\tlist := m.Mutable(fd).List()\n\t\t\tif err := d.unmarshalList(fd, list); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\tcase fd.IsMap():\n\t\t\tmmap := m.Mutable(fd).Map()\n\t\t\tif err := d.unmarshalMap(fd, mmap); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\tdefault:\n\t\t\tkind := fd.Kind()\n\t\t\tif kind != protoreflect.MessageKind && kind != protoreflect.GroupKind && !tok.HasSeparator() {\n\t\t\t\treturn d.syntaxError(tok.Pos(), \"missing field separator :\")\n\t\t\t}\n\n\t\t\t// If field is a oneof, check if it has already been set.\n\t\t\tif od := fd.ContainingOneof(); od != nil {\n\t\t\t\tidx := uint64(od.Index())\n\t\t\t\tif seenOneofs.Has(idx) {\n\t\t\t\t\treturn d.newError(tok.Pos(), \"error parsing %q, oneof %v is already set\", tok.RawString(), od.FullName())\n\t\t\t\t}\n\t\t\t\tseenOneofs.Set(idx)\n\t\t\t}\n\n\t\t\tnum := uint64(fd.Number())\n\t\t\tif seenNums.Has(num) {\n\t\t\t\treturn d.newError(tok.Pos(), \"non-repeated field %q is repeated\", tok.RawString())\n\t\t\t}\n\n\t\t\tif err := d.unmarshalSingular(fd, m); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tseenNums.Set(num)\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// unmarshalSingular unmarshals a non-repeated field value specified by the\n// given FieldDescriptor.\nfunc (d decoder) unmarshalSingular(fd protoreflect.FieldDescriptor, m protoreflect.Message) error {\n\tvar val protoreflect.Value\n\tvar err error\n\tswitch fd.Kind() {\n\tcase protoreflect.MessageKind, protoreflect.GroupKind:\n\t\tval = m.NewField(fd)\n\t\terr = d.unmarshalMessage(val.Message(), true)\n\tdefault:\n\t\tval, err = d.unmarshalScalar(fd)\n\t}\n\tif err == nil {\n\t\tm.Set(fd, val)\n\t}\n\treturn err\n}\n\n// unmarshalScalar unmarshals a scalar/enum protoreflect.Value specified by the\n// given FieldDescriptor.\nfunc (d decoder) unmarshalScalar(fd protoreflect.FieldDescriptor) (protoreflect.Value, error) {\n\ttok, err := d.Read()\n\tif err != nil {\n\t\treturn protoreflect.Value{}, err\n\t}\n\n\tif tok.Kind() != text.Scalar {\n\t\treturn protoreflect.Value{}, d.unexpectedTokenError(tok)\n\t}\n\n\tkind := fd.Kind()\n\tswitch kind {\n\tcase protoreflect.BoolKind:\n\t\tif b, ok := tok.Bool(); ok {\n\t\t\treturn protoreflect.ValueOfBool(b), nil\n\t\t}\n\n\tcase protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind:\n\t\tif n, ok := tok.Int32(); ok {\n\t\t\treturn protoreflect.ValueOfInt32(n), nil\n\t\t}\n\n\tcase protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind:\n\t\tif n, ok := tok.Int64(); ok {\n\t\t\treturn protoreflect.ValueOfInt64(n), nil\n\t\t}\n\n\tcase protoreflect.Uint32Kind, protoreflect.Fixed32Kind:\n\t\tif n, ok := tok.Uint32(); ok {\n\t\t\treturn protoreflect.ValueOfUint32(n), nil\n\t\t}\n\n\tcase protoreflect.Uint64Kind, protoreflect.Fixed64Kind:\n\t\tif n, ok := tok.Uint64(); ok {\n\t\t\treturn protoreflect.ValueOfUint64(n), nil\n\t\t}\n\n\tcase protoreflect.FloatKind:\n\t\tif n, ok := tok.Float32(); ok {\n\t\t\treturn protoreflect.ValueOfFloat32(n), nil\n\t\t}\n\n\tcase protoreflect.DoubleKind:\n\t\tif n, ok := tok.Float64(); ok {\n\t\t\treturn protoreflect.ValueOfFloat64(n), nil\n\t\t}\n\n\tcase protoreflect.StringKind:\n\t\tif s, ok := tok.String(); ok {\n\t\t\tif strs.EnforceUTF8(fd) && !utf8.ValidString(s) {\n\t\t\t\treturn protoreflect.Value{}, d.newError(tok.Pos(), \"contains invalid UTF-8\")\n\t\t\t}\n\t\t\treturn protoreflect.ValueOfString(s), nil\n\t\t}\n\n\tcase protoreflect.BytesKind:\n\t\tif b, ok := tok.String(); ok {\n\t\t\treturn protoreflect.ValueOfBytes([]byte(b)), nil\n\t\t}\n\n\tcase protoreflect.EnumKind:\n\t\tif lit, ok := tok.Enum(); ok {\n\t\t\t// Lookup EnumNumber based on name.\n\t\t\tif enumVal := fd.Enum().Values().ByName(protoreflect.Name(lit)); enumVal != nil {\n\t\t\t\treturn protoreflect.ValueOfEnum(enumVal.Number()), nil\n\t\t\t}\n\t\t}\n\t\tif num, ok := tok.Int32(); ok {\n\t\t\treturn protoreflect.ValueOfEnum(protoreflect.EnumNumber(num)), nil\n\t\t}\n\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"invalid scalar kind %v\", kind))\n\t}\n\n\treturn protoreflect.Value{}, d.newError(tok.Pos(), \"invalid value for %v type: %v\", kind, tok.RawString())\n}\n\n// unmarshalList unmarshals into given protoreflect.List. A list value can\n// either be in [] syntax or simply just a single scalar/message value.\nfunc (d decoder) unmarshalList(fd protoreflect.FieldDescriptor, list protoreflect.List) error {\n\ttok, err := d.Peek()\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tswitch fd.Kind() {\n\tcase protoreflect.MessageKind, protoreflect.GroupKind:\n\t\tswitch tok.Kind() {\n\t\tcase text.ListOpen:\n\t\t\td.Read()\n\t\t\tfor {\n\t\t\t\ttok, err := d.Peek()\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\tswitch tok.Kind() {\n\t\t\t\tcase text.ListClose:\n\t\t\t\t\td.Read()\n\t\t\t\t\treturn nil\n\t\t\t\tcase text.MessageOpen:\n\t\t\t\t\tpval := list.NewElement()\n\t\t\t\t\tif err := d.unmarshalMessage(pval.Message(), true); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tlist.Append(pval)\n\t\t\t\tdefault:\n\t\t\t\t\treturn d.unexpectedTokenError(tok)\n\t\t\t\t}\n\t\t\t}\n\n\t\tcase text.MessageOpen:\n\t\t\tpval := list.NewElement()\n\t\t\tif err := d.unmarshalMessage(pval.Message(), true); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tlist.Append(pval)\n\t\t\treturn nil\n\t\t}\n\n\tdefault:\n\t\tswitch tok.Kind() {\n\t\tcase text.ListOpen:\n\t\t\td.Read()\n\t\t\tfor {\n\t\t\t\ttok, err := d.Peek()\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\tswitch tok.Kind() {\n\t\t\t\tcase text.ListClose:\n\t\t\t\t\td.Read()\n\t\t\t\t\treturn nil\n\t\t\t\tcase text.Scalar:\n\t\t\t\t\tpval, err := d.unmarshalScalar(fd)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tlist.Append(pval)\n\t\t\t\tdefault:\n\t\t\t\t\treturn d.unexpectedTokenError(tok)\n\t\t\t\t}\n\t\t\t}\n\n\t\tcase text.Scalar:\n\t\t\tpval, err := d.unmarshalScalar(fd)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tlist.Append(pval)\n\t\t\treturn nil\n\t\t}\n\t}\n\n\treturn d.unexpectedTokenError(tok)\n}\n\n// unmarshalMap unmarshals into given protoreflect.Map. A map value is a\n// textproto message containing {key: <kvalue>, value: <mvalue>}.\nfunc (d decoder) unmarshalMap(fd protoreflect.FieldDescriptor, mmap protoreflect.Map) error {\n\t// Determine ahead whether map entry is a scalar type or a message type in\n\t// order to call the appropriate unmarshalMapValue func inside\n\t// unmarshalMapEntry.\n\tvar unmarshalMapValue func() (protoreflect.Value, error)\n\tswitch fd.MapValue().Kind() {\n\tcase protoreflect.MessageKind, protoreflect.GroupKind:\n\t\tunmarshalMapValue = func() (protoreflect.Value, error) {\n\t\t\tpval := mmap.NewValue()\n\t\t\tif err := d.unmarshalMessage(pval.Message(), true); err != nil {\n\t\t\t\treturn protoreflect.Value{}, err\n\t\t\t}\n\t\t\treturn pval, nil\n\t\t}\n\tdefault:\n\t\tunmarshalMapValue = func() (protoreflect.Value, error) {\n\t\t\treturn d.unmarshalScalar(fd.MapValue())\n\t\t}\n\t}\n\n\ttok, err := d.Read()\n\tif err != nil {\n\t\treturn err\n\t}\n\tswitch tok.Kind() {\n\tcase text.MessageOpen:\n\t\treturn d.unmarshalMapEntry(fd, mmap, unmarshalMapValue)\n\n\tcase text.ListOpen:\n\t\tfor {\n\t\t\ttok, err := d.Read()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tswitch tok.Kind() {\n\t\t\tcase text.ListClose:\n\t\t\t\treturn nil\n\t\t\tcase text.MessageOpen:\n\t\t\t\tif err := d.unmarshalMapEntry(fd, mmap, unmarshalMapValue); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\treturn d.unexpectedTokenError(tok)\n\t\t\t}\n\t\t}\n\n\tdefault:\n\t\treturn d.unexpectedTokenError(tok)\n\t}\n}\n\n// unmarshalMap unmarshals into given protoreflect.Map. A map value is a\n// textproto message containing {key: <kvalue>, value: <mvalue>}.\nfunc (d decoder) unmarshalMapEntry(fd protoreflect.FieldDescriptor, mmap protoreflect.Map, unmarshalMapValue func() (protoreflect.Value, error)) error {\n\tvar key protoreflect.MapKey\n\tvar pval protoreflect.Value\nLoop:\n\tfor {\n\t\t// Read field name.\n\t\ttok, err := d.Read()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tswitch tok.Kind() {\n\t\tcase text.Name:\n\t\t\tif tok.NameKind() != text.IdentName {\n\t\t\t\tif !d.opts.DiscardUnknown {\n\t\t\t\t\treturn d.newError(tok.Pos(), \"unknown map entry field %q\", tok.RawString())\n\t\t\t\t}\n\t\t\t\td.skipValue()\n\t\t\t\tcontinue Loop\n\t\t\t}\n\t\t\t// Continue below.\n\t\tcase text.MessageClose:\n\t\t\tbreak Loop\n\t\tdefault:\n\t\t\treturn d.unexpectedTokenError(tok)\n\t\t}\n\n\t\tswitch name := protoreflect.Name(tok.IdentName()); name {\n\t\tcase genid.MapEntry_Key_field_name:\n\t\t\tif !tok.HasSeparator() {\n\t\t\t\treturn d.syntaxError(tok.Pos(), \"missing field separator :\")\n\t\t\t}\n\t\t\tif key.IsValid() {\n\t\t\t\treturn d.newError(tok.Pos(), \"map entry %q cannot be repeated\", name)\n\t\t\t}\n\t\t\tval, err := d.unmarshalScalar(fd.MapKey())\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tkey = val.MapKey()\n\n\t\tcase genid.MapEntry_Value_field_name:\n\t\t\tif kind := fd.MapValue().Kind(); (kind != protoreflect.MessageKind) && (kind != protoreflect.GroupKind) {\n\t\t\t\tif !tok.HasSeparator() {\n\t\t\t\t\treturn d.syntaxError(tok.Pos(), \"missing field separator :\")\n\t\t\t\t}\n\t\t\t}\n\t\t\tif pval.IsValid() {\n\t\t\t\treturn d.newError(tok.Pos(), \"map entry %q cannot be repeated\", name)\n\t\t\t}\n\t\t\tpval, err = unmarshalMapValue()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\tdefault:\n\t\t\tif !d.opts.DiscardUnknown {\n\t\t\t\treturn d.newError(tok.Pos(), \"unknown map entry field %q\", name)\n\t\t\t}\n\t\t\td.skipValue()\n\t\t}\n\t}\n\n\tif !key.IsValid() {\n\t\tkey = fd.MapKey().Default().MapKey()\n\t}\n\tif !pval.IsValid() {\n\t\tswitch fd.MapValue().Kind() {\n\t\tcase protoreflect.MessageKind, protoreflect.GroupKind:\n\t\t\t// If value field is not set for message/group types, construct an\n\t\t\t// empty one as default.\n\t\t\tpval = mmap.NewValue()\n\t\tdefault:\n\t\t\tpval = fd.MapValue().Default()\n\t\t}\n\t}\n\tmmap.Set(key, pval)\n\treturn nil\n}\n\n// unmarshalAny unmarshals an Any textproto. It can either be in expanded form\n// or non-expanded form.\nfunc (d decoder) unmarshalAny(m protoreflect.Message, checkDelims bool) error {\n\tvar typeURL string\n\tvar bValue []byte\n\tvar seenTypeUrl bool\n\tvar seenValue bool\n\tvar isExpanded bool\n\n\tif checkDelims {\n\t\ttok, err := d.Read()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif tok.Kind() != text.MessageOpen {\n\t\t\treturn d.unexpectedTokenError(tok)\n\t\t}\n\t}\n\nLoop:\n\tfor {\n\t\t// Read field name. Can only have 3 possible field names, i.e. type_url,\n\t\t// value and type URL name inside [].\n\t\ttok, err := d.Read()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif typ := tok.Kind(); typ != text.Name {\n\t\t\tif checkDelims {\n\t\t\t\tif typ == text.MessageClose {\n\t\t\t\t\tbreak Loop\n\t\t\t\t}\n\t\t\t} else if typ == text.EOF {\n\t\t\t\tbreak Loop\n\t\t\t}\n\t\t\treturn d.unexpectedTokenError(tok)\n\t\t}\n\n\t\tswitch tok.NameKind() {\n\t\tcase text.IdentName:\n\t\t\t// Both type_url and value fields require field separator :.\n\t\t\tif !tok.HasSeparator() {\n\t\t\t\treturn d.syntaxError(tok.Pos(), \"missing field separator :\")\n\t\t\t}\n\n\t\t\tswitch name := protoreflect.Name(tok.IdentName()); name {\n\t\t\tcase genid.Any_TypeUrl_field_name:\n\t\t\t\tif seenTypeUrl {\n\t\t\t\t\treturn d.newError(tok.Pos(), \"duplicate %v field\", genid.Any_TypeUrl_field_fullname)\n\t\t\t\t}\n\t\t\t\tif isExpanded {\n\t\t\t\t\treturn d.newError(tok.Pos(), \"conflict with [%s] field\", typeURL)\n\t\t\t\t}\n\t\t\t\ttok, err := d.Read()\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tvar ok bool\n\t\t\t\ttypeURL, ok = tok.String()\n\t\t\t\tif !ok {\n\t\t\t\t\treturn d.newError(tok.Pos(), \"invalid %v field value: %v\", genid.Any_TypeUrl_field_fullname, tok.RawString())\n\t\t\t\t}\n\t\t\t\tseenTypeUrl = true\n\n\t\t\tcase genid.Any_Value_field_name:\n\t\t\t\tif seenValue {\n\t\t\t\t\treturn d.newError(tok.Pos(), \"duplicate %v field\", genid.Any_Value_field_fullname)\n\t\t\t\t}\n\t\t\t\tif isExpanded {\n\t\t\t\t\treturn d.newError(tok.Pos(), \"conflict with [%s] field\", typeURL)\n\t\t\t\t}\n\t\t\t\ttok, err := d.Read()\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\ts, ok := tok.String()\n\t\t\t\tif !ok {\n\t\t\t\t\treturn d.newError(tok.Pos(), \"invalid %v field value: %v\", genid.Any_Value_field_fullname, tok.RawString())\n\t\t\t\t}\n\t\t\t\tbValue = []byte(s)\n\t\t\t\tseenValue = true\n\n\t\t\tdefault:\n\t\t\t\tif !d.opts.DiscardUnknown {\n\t\t\t\t\treturn d.newError(tok.Pos(), \"invalid field name %q in %v message\", tok.RawString(), genid.Any_message_fullname)\n\t\t\t\t}\n\t\t\t}\n\n\t\tcase text.TypeName:\n\t\t\tif isExpanded {\n\t\t\t\treturn d.newError(tok.Pos(), \"cannot have more than one type\")\n\t\t\t}\n\t\t\tif seenTypeUrl {\n\t\t\t\treturn d.newError(tok.Pos(), \"conflict with type_url field\")\n\t\t\t}\n\t\t\ttypeURL = tok.TypeName()\n\t\t\tvar err error\n\t\t\tbValue, err = d.unmarshalExpandedAny(typeURL, tok.Pos())\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tisExpanded = true\n\n\t\tdefault:\n\t\t\tif !d.opts.DiscardUnknown {\n\t\t\t\treturn d.newError(tok.Pos(), \"invalid field name %q in %v message\", tok.RawString(), genid.Any_message_fullname)\n\t\t\t}\n\t\t}\n\t}\n\n\tfds := m.Descriptor().Fields()\n\tif len(typeURL) > 0 {\n\t\tm.Set(fds.ByNumber(genid.Any_TypeUrl_field_number), protoreflect.ValueOfString(typeURL))\n\t}\n\tif len(bValue) > 0 {\n\t\tm.Set(fds.ByNumber(genid.Any_Value_field_number), protoreflect.ValueOfBytes(bValue))\n\t}\n\treturn nil\n}\n\nfunc (d decoder) unmarshalExpandedAny(typeURL string, pos int) ([]byte, error) {\n\tmt, err := d.opts.Resolver.FindMessageByURL(typeURL)\n\tif err != nil {\n\t\treturn nil, d.newError(pos, \"unable to resolve message [%v]: %v\", typeURL, err)\n\t}\n\t// Create new message for the embedded message type and unmarshal the value\n\t// field into it.\n\tm := mt.New()\n\tif err := d.unmarshalMessage(m, true); err != nil {\n\t\treturn nil, err\n\t}\n\t// Serialize the embedded message and return the resulting bytes.\n\tb, err := proto.MarshalOptions{\n\t\tAllowPartial:  true, // Never check required fields inside an Any.\n\t\tDeterministic: true,\n\t}.Marshal(m.Interface())\n\tif err != nil {\n\t\treturn nil, d.newError(pos, \"error in marshaling message into Any.value: %v\", err)\n\t}\n\treturn b, nil\n}\n\n// skipValue makes the decoder parse a field value in order to advance the read\n// to the next field. It relies on Read returning an error if the types are not\n// in valid sequence.\nfunc (d decoder) skipValue() error {\n\ttok, err := d.Read()\n\tif err != nil {\n\t\treturn err\n\t}\n\t// Only need to continue reading for messages and lists.\n\tswitch tok.Kind() {\n\tcase text.MessageOpen:\n\t\treturn d.skipMessageValue()\n\n\tcase text.ListOpen:\n\t\tfor {\n\t\t\ttok, err := d.Read()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tswitch tok.Kind() {\n\t\t\tcase text.ListClose:\n\t\t\t\treturn nil\n\t\t\tcase text.MessageOpen:\n\t\t\t\tif err := d.skipMessageValue(); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\t// Skip items. This will not validate whether skipped values are\n\t\t\t\t// of the same type or not, same behavior as C++\n\t\t\t\t// TextFormat::Parser::AllowUnknownField(true) version 3.8.0.\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\n// skipMessageValue makes the decoder parse and skip over all fields in a\n// message. It assumes that the previous read type is MessageOpen.\nfunc (d decoder) skipMessageValue() error {\n\tfor {\n\t\ttok, err := d.Read()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tswitch tok.Kind() {\n\t\tcase text.MessageClose:\n\t\t\treturn nil\n\t\tcase text.Name:\n\t\t\tif err := d.skipValue(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/encoding/prototext/doc.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package prototext marshals and unmarshals protocol buffer messages as the\n// textproto format.\npackage prototext\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/encoding/prototext/encode.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage prototext\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n\t\"unicode/utf8\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/encoding/messageset\"\n\t\"google.golang.org/protobuf/internal/encoding/text\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/internal/flags\"\n\t\"google.golang.org/protobuf/internal/genid\"\n\t\"google.golang.org/protobuf/internal/order\"\n\t\"google.golang.org/protobuf/internal/pragma\"\n\t\"google.golang.org/protobuf/internal/strs\"\n\t\"google.golang.org/protobuf/proto\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/reflect/protoregistry\"\n)\n\nconst defaultIndent = \"  \"\n\n// Format formats the message as a multiline string.\n// This function is only intended for human consumption and ignores errors.\n// Do not depend on the output being stable. Its output will change across\n// different builds of your program, even when using the same version of the\n// protobuf module.\nfunc Format(m proto.Message) string {\n\treturn MarshalOptions{Multiline: true}.Format(m)\n}\n\n// Marshal writes the given [proto.Message] in textproto format using default\n// options. Do not depend on the output being stable. Its output will change\n// across different builds of your program, even when using the same version of\n// the protobuf module.\nfunc Marshal(m proto.Message) ([]byte, error) {\n\treturn MarshalOptions{}.Marshal(m)\n}\n\n// MarshalOptions is a configurable text format marshaler.\ntype MarshalOptions struct {\n\tpragma.NoUnkeyedLiterals\n\n\t// Multiline specifies whether the marshaler should format the output in\n\t// indented-form with every textual element on a new line.\n\t// If Indent is an empty string, then an arbitrary indent is chosen.\n\tMultiline bool\n\n\t// Indent specifies the set of indentation characters to use in a multiline\n\t// formatted output such that every entry is preceded by Indent and\n\t// terminated by a newline. If non-empty, then Multiline is treated as true.\n\t// Indent can only be composed of space or tab characters.\n\tIndent string\n\n\t// EmitASCII specifies whether to format strings and bytes as ASCII only\n\t// as opposed to using UTF-8 encoding when possible.\n\tEmitASCII bool\n\n\t// allowInvalidUTF8 specifies whether to permit the encoding of strings\n\t// with invalid UTF-8. This is unexported as it is intended to only\n\t// be specified by the Format method.\n\tallowInvalidUTF8 bool\n\n\t// AllowPartial allows messages that have missing required fields to marshal\n\t// without returning an error. If AllowPartial is false (the default),\n\t// Marshal will return error if there are any missing required fields.\n\tAllowPartial bool\n\n\t// EmitUnknown specifies whether to emit unknown fields in the output.\n\t// If specified, the unmarshaler may be unable to parse the output.\n\t// The default is to exclude unknown fields.\n\tEmitUnknown bool\n\n\t// Resolver is used for looking up types when expanding google.protobuf.Any\n\t// messages. If nil, this defaults to using protoregistry.GlobalTypes.\n\tResolver interface {\n\t\tprotoregistry.ExtensionTypeResolver\n\t\tprotoregistry.MessageTypeResolver\n\t}\n}\n\n// Format formats the message as a string.\n// This method is only intended for human consumption and ignores errors.\n// Do not depend on the output being stable. Its output will change across\n// different builds of your program, even when using the same version of the\n// protobuf module.\nfunc (o MarshalOptions) Format(m proto.Message) string {\n\tif m == nil || !m.ProtoReflect().IsValid() {\n\t\treturn \"<nil>\" // invalid syntax, but okay since this is for debugging\n\t}\n\to.allowInvalidUTF8 = true\n\to.AllowPartial = true\n\to.EmitUnknown = true\n\tb, _ := o.Marshal(m)\n\treturn string(b)\n}\n\n// Marshal writes the given [proto.Message] in textproto format using options in\n// MarshalOptions object. Do not depend on the output being stable. Its output\n// will change across different builds of your program, even when using the\n// same version of the protobuf module.\nfunc (o MarshalOptions) Marshal(m proto.Message) ([]byte, error) {\n\treturn o.marshal(nil, m)\n}\n\n// MarshalAppend appends the textproto format encoding of m to b,\n// returning the result.\nfunc (o MarshalOptions) MarshalAppend(b []byte, m proto.Message) ([]byte, error) {\n\treturn o.marshal(b, m)\n}\n\n// marshal is a centralized function that all marshal operations go through.\n// For profiling purposes, avoid changing the name of this function or\n// introducing other code paths for marshal that do not go through this.\nfunc (o MarshalOptions) marshal(b []byte, m proto.Message) ([]byte, error) {\n\tvar delims = [2]byte{'{', '}'}\n\n\tif o.Multiline && o.Indent == \"\" {\n\t\to.Indent = defaultIndent\n\t}\n\tif o.Resolver == nil {\n\t\to.Resolver = protoregistry.GlobalTypes\n\t}\n\n\tinternalEnc, err := text.NewEncoder(b, o.Indent, delims, o.EmitASCII)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Treat nil message interface as an empty message,\n\t// in which case there is nothing to output.\n\tif m == nil {\n\t\treturn b, nil\n\t}\n\n\tenc := encoder{internalEnc, o}\n\terr = enc.marshalMessage(m.ProtoReflect(), false)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tout := enc.Bytes()\n\tif len(o.Indent) > 0 && len(out) > 0 {\n\t\tout = append(out, '\\n')\n\t}\n\tif o.AllowPartial {\n\t\treturn out, nil\n\t}\n\treturn out, proto.CheckInitialized(m)\n}\n\ntype encoder struct {\n\t*text.Encoder\n\topts MarshalOptions\n}\n\n// marshalMessage marshals the given protoreflect.Message.\nfunc (e encoder) marshalMessage(m protoreflect.Message, inclDelims bool) error {\n\tmessageDesc := m.Descriptor()\n\tif !flags.ProtoLegacy && messageset.IsMessageSet(messageDesc) {\n\t\treturn errors.New(\"no support for proto1 MessageSets\")\n\t}\n\n\tif inclDelims {\n\t\te.StartMessage()\n\t\tdefer e.EndMessage()\n\t}\n\n\t// Handle Any expansion.\n\tif messageDesc.FullName() == genid.Any_message_fullname {\n\t\tif e.marshalAny(m) {\n\t\t\treturn nil\n\t\t}\n\t\t// If unable to expand, continue on to marshal Any as a regular message.\n\t}\n\n\t// Marshal fields.\n\tvar err error\n\torder.RangeFields(m, order.IndexNameFieldOrder, func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool {\n\t\tif err = e.marshalField(fd.TextName(), v, fd); err != nil {\n\t\t\treturn false\n\t\t}\n\t\treturn true\n\t})\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Marshal unknown fields.\n\tif e.opts.EmitUnknown {\n\t\te.marshalUnknown(m.GetUnknown())\n\t}\n\n\treturn nil\n}\n\n// marshalField marshals the given field with protoreflect.Value.\nfunc (e encoder) marshalField(name string, val protoreflect.Value, fd protoreflect.FieldDescriptor) error {\n\tswitch {\n\tcase fd.IsList():\n\t\treturn e.marshalList(name, val.List(), fd)\n\tcase fd.IsMap():\n\t\treturn e.marshalMap(name, val.Map(), fd)\n\tdefault:\n\t\te.WriteName(name)\n\t\treturn e.marshalSingular(val, fd)\n\t}\n}\n\n// marshalSingular marshals the given non-repeated field value. This includes\n// all scalar types, enums, messages, and groups.\nfunc (e encoder) marshalSingular(val protoreflect.Value, fd protoreflect.FieldDescriptor) error {\n\tkind := fd.Kind()\n\tswitch kind {\n\tcase protoreflect.BoolKind:\n\t\te.WriteBool(val.Bool())\n\n\tcase protoreflect.StringKind:\n\t\ts := val.String()\n\t\tif !e.opts.allowInvalidUTF8 && strs.EnforceUTF8(fd) && !utf8.ValidString(s) {\n\t\t\treturn errors.InvalidUTF8(string(fd.FullName()))\n\t\t}\n\t\te.WriteString(s)\n\n\tcase protoreflect.Int32Kind, protoreflect.Int64Kind,\n\t\tprotoreflect.Sint32Kind, protoreflect.Sint64Kind,\n\t\tprotoreflect.Sfixed32Kind, protoreflect.Sfixed64Kind:\n\t\te.WriteInt(val.Int())\n\n\tcase protoreflect.Uint32Kind, protoreflect.Uint64Kind,\n\t\tprotoreflect.Fixed32Kind, protoreflect.Fixed64Kind:\n\t\te.WriteUint(val.Uint())\n\n\tcase protoreflect.FloatKind:\n\t\t// Encoder.WriteFloat handles the special numbers NaN and infinites.\n\t\te.WriteFloat(val.Float(), 32)\n\n\tcase protoreflect.DoubleKind:\n\t\t// Encoder.WriteFloat handles the special numbers NaN and infinites.\n\t\te.WriteFloat(val.Float(), 64)\n\n\tcase protoreflect.BytesKind:\n\t\te.WriteString(string(val.Bytes()))\n\n\tcase protoreflect.EnumKind:\n\t\tnum := val.Enum()\n\t\tif desc := fd.Enum().Values().ByNumber(num); desc != nil {\n\t\t\te.WriteLiteral(string(desc.Name()))\n\t\t} else {\n\t\t\t// Use numeric value if there is no enum description.\n\t\t\te.WriteInt(int64(num))\n\t\t}\n\n\tcase protoreflect.MessageKind, protoreflect.GroupKind:\n\t\treturn e.marshalMessage(val.Message(), true)\n\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"%v has unknown kind: %v\", fd.FullName(), kind))\n\t}\n\treturn nil\n}\n\n// marshalList marshals the given protoreflect.List as multiple name-value fields.\nfunc (e encoder) marshalList(name string, list protoreflect.List, fd protoreflect.FieldDescriptor) error {\n\tsize := list.Len()\n\tfor i := 0; i < size; i++ {\n\t\te.WriteName(name)\n\t\tif err := e.marshalSingular(list.Get(i), fd); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// marshalMap marshals the given protoreflect.Map as multiple name-value fields.\nfunc (e encoder) marshalMap(name string, mmap protoreflect.Map, fd protoreflect.FieldDescriptor) error {\n\tvar err error\n\torder.RangeEntries(mmap, order.GenericKeyOrder, func(key protoreflect.MapKey, val protoreflect.Value) bool {\n\t\te.WriteName(name)\n\t\te.StartMessage()\n\t\tdefer e.EndMessage()\n\n\t\te.WriteName(string(genid.MapEntry_Key_field_name))\n\t\terr = e.marshalSingular(key.Value(), fd.MapKey())\n\t\tif err != nil {\n\t\t\treturn false\n\t\t}\n\n\t\te.WriteName(string(genid.MapEntry_Value_field_name))\n\t\terr = e.marshalSingular(val, fd.MapValue())\n\t\tif err != nil {\n\t\t\treturn false\n\t\t}\n\t\treturn true\n\t})\n\treturn err\n}\n\n// marshalUnknown parses the given []byte and marshals fields out.\n// This function assumes proper encoding in the given []byte.\nfunc (e encoder) marshalUnknown(b []byte) {\n\tconst dec = 10\n\tconst hex = 16\n\tfor len(b) > 0 {\n\t\tnum, wtype, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\te.WriteName(strconv.FormatInt(int64(num), dec))\n\n\t\tswitch wtype {\n\t\tcase protowire.VarintType:\n\t\t\tvar v uint64\n\t\t\tv, n = protowire.ConsumeVarint(b)\n\t\t\te.WriteUint(v)\n\t\tcase protowire.Fixed32Type:\n\t\t\tvar v uint32\n\t\t\tv, n = protowire.ConsumeFixed32(b)\n\t\t\te.WriteLiteral(\"0x\" + strconv.FormatUint(uint64(v), hex))\n\t\tcase protowire.Fixed64Type:\n\t\t\tvar v uint64\n\t\t\tv, n = protowire.ConsumeFixed64(b)\n\t\t\te.WriteLiteral(\"0x\" + strconv.FormatUint(v, hex))\n\t\tcase protowire.BytesType:\n\t\t\tvar v []byte\n\t\t\tv, n = protowire.ConsumeBytes(b)\n\t\t\te.WriteString(string(v))\n\t\tcase protowire.StartGroupType:\n\t\t\te.StartMessage()\n\t\t\tvar v []byte\n\t\t\tv, n = protowire.ConsumeGroup(num, b)\n\t\t\te.marshalUnknown(v)\n\t\t\te.EndMessage()\n\t\tdefault:\n\t\t\tpanic(fmt.Sprintf(\"prototext: error parsing unknown field wire type: %v\", wtype))\n\t\t}\n\n\t\tb = b[n:]\n\t}\n}\n\n// marshalAny marshals the given google.protobuf.Any message in expanded form.\n// It returns true if it was able to marshal, else false.\nfunc (e encoder) marshalAny(any protoreflect.Message) bool {\n\t// Construct the embedded message.\n\tfds := any.Descriptor().Fields()\n\tfdType := fds.ByNumber(genid.Any_TypeUrl_field_number)\n\ttypeURL := any.Get(fdType).String()\n\tmt, err := e.opts.Resolver.FindMessageByURL(typeURL)\n\tif err != nil {\n\t\treturn false\n\t}\n\tm := mt.New().Interface()\n\n\t// Unmarshal bytes into embedded message.\n\tfdValue := fds.ByNumber(genid.Any_Value_field_number)\n\tvalue := any.Get(fdValue)\n\terr = proto.UnmarshalOptions{\n\t\tAllowPartial: true,\n\t\tResolver:     e.opts.Resolver,\n\t}.Unmarshal(value.Bytes(), m)\n\tif err != nil {\n\t\treturn false\n\t}\n\n\t// Get current encoder position. If marshaling fails, reset encoder output\n\t// back to this position.\n\tpos := e.Snapshot()\n\n\t// Field name is the proto field name enclosed in [].\n\te.WriteName(\"[\" + typeURL + \"]\")\n\terr = e.marshalMessage(m.ProtoReflect(), true)\n\tif err != nil {\n\t\te.Reset(pos)\n\t\treturn false\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/encoding/protowire/wire.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package protowire parses and formats the raw wire encoding.\n// See https://protobuf.dev/programming-guides/encoding.\n//\n// For marshaling and unmarshaling entire protobuf messages,\n// use the [google.golang.org/protobuf/proto] package instead.\npackage protowire\n\nimport (\n\t\"io\"\n\t\"math\"\n\t\"math/bits\"\n\n\t\"google.golang.org/protobuf/internal/errors\"\n)\n\n// Number represents the field number.\ntype Number int32\n\nconst (\n\tMinValidNumber        Number = 1\n\tFirstReservedNumber   Number = 19000\n\tLastReservedNumber    Number = 19999\n\tMaxValidNumber        Number = 1<<29 - 1\n\tDefaultRecursionLimit        = 10000\n)\n\n// IsValid reports whether the field number is semantically valid.\nfunc (n Number) IsValid() bool {\n\treturn MinValidNumber <= n && n <= MaxValidNumber\n}\n\n// Type represents the wire type.\ntype Type int8\n\nconst (\n\tVarintType     Type = 0\n\tFixed32Type    Type = 5\n\tFixed64Type    Type = 1\n\tBytesType      Type = 2\n\tStartGroupType Type = 3\n\tEndGroupType   Type = 4\n)\n\nconst (\n\t_ = -iota\n\terrCodeTruncated\n\terrCodeFieldNumber\n\terrCodeOverflow\n\terrCodeReserved\n\terrCodeEndGroup\n\terrCodeRecursionDepth\n)\n\nvar (\n\terrFieldNumber = errors.New(\"invalid field number\")\n\terrOverflow    = errors.New(\"variable length integer overflow\")\n\terrReserved    = errors.New(\"cannot parse reserved wire type\")\n\terrEndGroup    = errors.New(\"mismatching end group marker\")\n\terrParse       = errors.New(\"parse error\")\n)\n\n// ParseError converts an error code into an error value.\n// This returns nil if n is a non-negative number.\nfunc ParseError(n int) error {\n\tif n >= 0 {\n\t\treturn nil\n\t}\n\tswitch n {\n\tcase errCodeTruncated:\n\t\treturn io.ErrUnexpectedEOF\n\tcase errCodeFieldNumber:\n\t\treturn errFieldNumber\n\tcase errCodeOverflow:\n\t\treturn errOverflow\n\tcase errCodeReserved:\n\t\treturn errReserved\n\tcase errCodeEndGroup:\n\t\treturn errEndGroup\n\tdefault:\n\t\treturn errParse\n\t}\n}\n\n// ConsumeField parses an entire field record (both tag and value) and returns\n// the field number, the wire type, and the total length.\n// This returns a negative length upon an error (see [ParseError]).\n//\n// The total length includes the tag header and the end group marker (if the\n// field is a group).\nfunc ConsumeField(b []byte) (Number, Type, int) {\n\tnum, typ, n := ConsumeTag(b)\n\tif n < 0 {\n\t\treturn 0, 0, n // forward error code\n\t}\n\tm := ConsumeFieldValue(num, typ, b[n:])\n\tif m < 0 {\n\t\treturn 0, 0, m // forward error code\n\t}\n\treturn num, typ, n + m\n}\n\n// ConsumeFieldValue parses a field value and returns its length.\n// This assumes that the field [Number] and wire [Type] have already been parsed.\n// This returns a negative length upon an error (see [ParseError]).\n//\n// When parsing a group, the length includes the end group marker and\n// the end group is verified to match the starting field number.\nfunc ConsumeFieldValue(num Number, typ Type, b []byte) (n int) {\n\treturn consumeFieldValueD(num, typ, b, DefaultRecursionLimit)\n}\n\nfunc consumeFieldValueD(num Number, typ Type, b []byte, depth int) (n int) {\n\tswitch typ {\n\tcase VarintType:\n\t\t_, n = ConsumeVarint(b)\n\t\treturn n\n\tcase Fixed32Type:\n\t\t_, n = ConsumeFixed32(b)\n\t\treturn n\n\tcase Fixed64Type:\n\t\t_, n = ConsumeFixed64(b)\n\t\treturn n\n\tcase BytesType:\n\t\t_, n = ConsumeBytes(b)\n\t\treturn n\n\tcase StartGroupType:\n\t\tif depth < 0 {\n\t\t\treturn errCodeRecursionDepth\n\t\t}\n\t\tn0 := len(b)\n\t\tfor {\n\t\t\tnum2, typ2, n := ConsumeTag(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn n // forward error code\n\t\t\t}\n\t\t\tb = b[n:]\n\t\t\tif typ2 == EndGroupType {\n\t\t\t\tif num != num2 {\n\t\t\t\t\treturn errCodeEndGroup\n\t\t\t\t}\n\t\t\t\treturn n0 - len(b)\n\t\t\t}\n\n\t\t\tn = consumeFieldValueD(num2, typ2, b, depth-1)\n\t\t\tif n < 0 {\n\t\t\t\treturn n // forward error code\n\t\t\t}\n\t\t\tb = b[n:]\n\t\t}\n\tcase EndGroupType:\n\t\treturn errCodeEndGroup\n\tdefault:\n\t\treturn errCodeReserved\n\t}\n}\n\n// AppendTag encodes num and typ as a varint-encoded tag and appends it to b.\nfunc AppendTag(b []byte, num Number, typ Type) []byte {\n\treturn AppendVarint(b, EncodeTag(num, typ))\n}\n\n// ConsumeTag parses b as a varint-encoded tag, reporting its length.\n// This returns a negative length upon an error (see [ParseError]).\nfunc ConsumeTag(b []byte) (Number, Type, int) {\n\tv, n := ConsumeVarint(b)\n\tif n < 0 {\n\t\treturn 0, 0, n // forward error code\n\t}\n\tnum, typ := DecodeTag(v)\n\tif num < MinValidNumber {\n\t\treturn 0, 0, errCodeFieldNumber\n\t}\n\treturn num, typ, n\n}\n\nfunc SizeTag(num Number) int {\n\treturn SizeVarint(EncodeTag(num, 0)) // wire type has no effect on size\n}\n\n// AppendVarint appends v to b as a varint-encoded uint64.\nfunc AppendVarint(b []byte, v uint64) []byte {\n\tswitch {\n\tcase v < 1<<7:\n\t\tb = append(b, byte(v))\n\tcase v < 1<<14:\n\t\tb = append(b,\n\t\t\tbyte((v>>0)&0x7f|0x80),\n\t\t\tbyte(v>>7))\n\tcase v < 1<<21:\n\t\tb = append(b,\n\t\t\tbyte((v>>0)&0x7f|0x80),\n\t\t\tbyte((v>>7)&0x7f|0x80),\n\t\t\tbyte(v>>14))\n\tcase v < 1<<28:\n\t\tb = append(b,\n\t\t\tbyte((v>>0)&0x7f|0x80),\n\t\t\tbyte((v>>7)&0x7f|0x80),\n\t\t\tbyte((v>>14)&0x7f|0x80),\n\t\t\tbyte(v>>21))\n\tcase v < 1<<35:\n\t\tb = append(b,\n\t\t\tbyte((v>>0)&0x7f|0x80),\n\t\t\tbyte((v>>7)&0x7f|0x80),\n\t\t\tbyte((v>>14)&0x7f|0x80),\n\t\t\tbyte((v>>21)&0x7f|0x80),\n\t\t\tbyte(v>>28))\n\tcase v < 1<<42:\n\t\tb = append(b,\n\t\t\tbyte((v>>0)&0x7f|0x80),\n\t\t\tbyte((v>>7)&0x7f|0x80),\n\t\t\tbyte((v>>14)&0x7f|0x80),\n\t\t\tbyte((v>>21)&0x7f|0x80),\n\t\t\tbyte((v>>28)&0x7f|0x80),\n\t\t\tbyte(v>>35))\n\tcase v < 1<<49:\n\t\tb = append(b,\n\t\t\tbyte((v>>0)&0x7f|0x80),\n\t\t\tbyte((v>>7)&0x7f|0x80),\n\t\t\tbyte((v>>14)&0x7f|0x80),\n\t\t\tbyte((v>>21)&0x7f|0x80),\n\t\t\tbyte((v>>28)&0x7f|0x80),\n\t\t\tbyte((v>>35)&0x7f|0x80),\n\t\t\tbyte(v>>42))\n\tcase v < 1<<56:\n\t\tb = append(b,\n\t\t\tbyte((v>>0)&0x7f|0x80),\n\t\t\tbyte((v>>7)&0x7f|0x80),\n\t\t\tbyte((v>>14)&0x7f|0x80),\n\t\t\tbyte((v>>21)&0x7f|0x80),\n\t\t\tbyte((v>>28)&0x7f|0x80),\n\t\t\tbyte((v>>35)&0x7f|0x80),\n\t\t\tbyte((v>>42)&0x7f|0x80),\n\t\t\tbyte(v>>49))\n\tcase v < 1<<63:\n\t\tb = append(b,\n\t\t\tbyte((v>>0)&0x7f|0x80),\n\t\t\tbyte((v>>7)&0x7f|0x80),\n\t\t\tbyte((v>>14)&0x7f|0x80),\n\t\t\tbyte((v>>21)&0x7f|0x80),\n\t\t\tbyte((v>>28)&0x7f|0x80),\n\t\t\tbyte((v>>35)&0x7f|0x80),\n\t\t\tbyte((v>>42)&0x7f|0x80),\n\t\t\tbyte((v>>49)&0x7f|0x80),\n\t\t\tbyte(v>>56))\n\tdefault:\n\t\tb = append(b,\n\t\t\tbyte((v>>0)&0x7f|0x80),\n\t\t\tbyte((v>>7)&0x7f|0x80),\n\t\t\tbyte((v>>14)&0x7f|0x80),\n\t\t\tbyte((v>>21)&0x7f|0x80),\n\t\t\tbyte((v>>28)&0x7f|0x80),\n\t\t\tbyte((v>>35)&0x7f|0x80),\n\t\t\tbyte((v>>42)&0x7f|0x80),\n\t\t\tbyte((v>>49)&0x7f|0x80),\n\t\t\tbyte((v>>56)&0x7f|0x80),\n\t\t\t1)\n\t}\n\treturn b\n}\n\n// ConsumeVarint parses b as a varint-encoded uint64, reporting its length.\n// This returns a negative length upon an error (see [ParseError]).\nfunc ConsumeVarint(b []byte) (v uint64, n int) {\n\tvar y uint64\n\tif len(b) <= 0 {\n\t\treturn 0, errCodeTruncated\n\t}\n\tv = uint64(b[0])\n\tif v < 0x80 {\n\t\treturn v, 1\n\t}\n\tv -= 0x80\n\n\tif len(b) <= 1 {\n\t\treturn 0, errCodeTruncated\n\t}\n\ty = uint64(b[1])\n\tv += y << 7\n\tif y < 0x80 {\n\t\treturn v, 2\n\t}\n\tv -= 0x80 << 7\n\n\tif len(b) <= 2 {\n\t\treturn 0, errCodeTruncated\n\t}\n\ty = uint64(b[2])\n\tv += y << 14\n\tif y < 0x80 {\n\t\treturn v, 3\n\t}\n\tv -= 0x80 << 14\n\n\tif len(b) <= 3 {\n\t\treturn 0, errCodeTruncated\n\t}\n\ty = uint64(b[3])\n\tv += y << 21\n\tif y < 0x80 {\n\t\treturn v, 4\n\t}\n\tv -= 0x80 << 21\n\n\tif len(b) <= 4 {\n\t\treturn 0, errCodeTruncated\n\t}\n\ty = uint64(b[4])\n\tv += y << 28\n\tif y < 0x80 {\n\t\treturn v, 5\n\t}\n\tv -= 0x80 << 28\n\n\tif len(b) <= 5 {\n\t\treturn 0, errCodeTruncated\n\t}\n\ty = uint64(b[5])\n\tv += y << 35\n\tif y < 0x80 {\n\t\treturn v, 6\n\t}\n\tv -= 0x80 << 35\n\n\tif len(b) <= 6 {\n\t\treturn 0, errCodeTruncated\n\t}\n\ty = uint64(b[6])\n\tv += y << 42\n\tif y < 0x80 {\n\t\treturn v, 7\n\t}\n\tv -= 0x80 << 42\n\n\tif len(b) <= 7 {\n\t\treturn 0, errCodeTruncated\n\t}\n\ty = uint64(b[7])\n\tv += y << 49\n\tif y < 0x80 {\n\t\treturn v, 8\n\t}\n\tv -= 0x80 << 49\n\n\tif len(b) <= 8 {\n\t\treturn 0, errCodeTruncated\n\t}\n\ty = uint64(b[8])\n\tv += y << 56\n\tif y < 0x80 {\n\t\treturn v, 9\n\t}\n\tv -= 0x80 << 56\n\n\tif len(b) <= 9 {\n\t\treturn 0, errCodeTruncated\n\t}\n\ty = uint64(b[9])\n\tv += y << 63\n\tif y < 2 {\n\t\treturn v, 10\n\t}\n\treturn 0, errCodeOverflow\n}\n\n// SizeVarint returns the encoded size of a varint.\n// The size is guaranteed to be within 1 and 10, inclusive.\nfunc SizeVarint(v uint64) int {\n\t// This computes 1 + (bits.Len64(v)-1)/7.\n\t// 9/64 is a good enough approximation of 1/7\n\treturn int(9*uint32(bits.Len64(v))+64) / 64\n}\n\n// AppendFixed32 appends v to b as a little-endian uint32.\nfunc AppendFixed32(b []byte, v uint32) []byte {\n\treturn append(b,\n\t\tbyte(v>>0),\n\t\tbyte(v>>8),\n\t\tbyte(v>>16),\n\t\tbyte(v>>24))\n}\n\n// ConsumeFixed32 parses b as a little-endian uint32, reporting its length.\n// This returns a negative length upon an error (see [ParseError]).\nfunc ConsumeFixed32(b []byte) (v uint32, n int) {\n\tif len(b) < 4 {\n\t\treturn 0, errCodeTruncated\n\t}\n\tv = uint32(b[0])<<0 | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24\n\treturn v, 4\n}\n\n// SizeFixed32 returns the encoded size of a fixed32; which is always 4.\nfunc SizeFixed32() int {\n\treturn 4\n}\n\n// AppendFixed64 appends v to b as a little-endian uint64.\nfunc AppendFixed64(b []byte, v uint64) []byte {\n\treturn append(b,\n\t\tbyte(v>>0),\n\t\tbyte(v>>8),\n\t\tbyte(v>>16),\n\t\tbyte(v>>24),\n\t\tbyte(v>>32),\n\t\tbyte(v>>40),\n\t\tbyte(v>>48),\n\t\tbyte(v>>56))\n}\n\n// ConsumeFixed64 parses b as a little-endian uint64, reporting its length.\n// This returns a negative length upon an error (see [ParseError]).\nfunc ConsumeFixed64(b []byte) (v uint64, n int) {\n\tif len(b) < 8 {\n\t\treturn 0, errCodeTruncated\n\t}\n\tv = uint64(b[0])<<0 | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56\n\treturn v, 8\n}\n\n// SizeFixed64 returns the encoded size of a fixed64; which is always 8.\nfunc SizeFixed64() int {\n\treturn 8\n}\n\n// AppendBytes appends v to b as a length-prefixed bytes value.\nfunc AppendBytes(b []byte, v []byte) []byte {\n\treturn append(AppendVarint(b, uint64(len(v))), v...)\n}\n\n// ConsumeBytes parses b as a length-prefixed bytes value, reporting its length.\n// This returns a negative length upon an error (see [ParseError]).\nfunc ConsumeBytes(b []byte) (v []byte, n int) {\n\tm, n := ConsumeVarint(b)\n\tif n < 0 {\n\t\treturn nil, n // forward error code\n\t}\n\tif m > uint64(len(b[n:])) {\n\t\treturn nil, errCodeTruncated\n\t}\n\treturn b[n:][:m], n + int(m)\n}\n\n// SizeBytes returns the encoded size of a length-prefixed bytes value,\n// given only the length.\nfunc SizeBytes(n int) int {\n\treturn SizeVarint(uint64(n)) + n\n}\n\n// AppendString appends v to b as a length-prefixed bytes value.\nfunc AppendString(b []byte, v string) []byte {\n\treturn append(AppendVarint(b, uint64(len(v))), v...)\n}\n\n// ConsumeString parses b as a length-prefixed bytes value, reporting its length.\n// This returns a negative length upon an error (see [ParseError]).\nfunc ConsumeString(b []byte) (v string, n int) {\n\tbb, n := ConsumeBytes(b)\n\treturn string(bb), n\n}\n\n// AppendGroup appends v to b as group value, with a trailing end group marker.\n// The value v must not contain the end marker.\nfunc AppendGroup(b []byte, num Number, v []byte) []byte {\n\treturn AppendVarint(append(b, v...), EncodeTag(num, EndGroupType))\n}\n\n// ConsumeGroup parses b as a group value until the trailing end group marker,\n// and verifies that the end marker matches the provided num. The value v\n// does not contain the end marker, while the length does contain the end marker.\n// This returns a negative length upon an error (see [ParseError]).\nfunc ConsumeGroup(num Number, b []byte) (v []byte, n int) {\n\tn = ConsumeFieldValue(num, StartGroupType, b)\n\tif n < 0 {\n\t\treturn nil, n // forward error code\n\t}\n\tb = b[:n]\n\n\t// Truncate off end group marker, but need to handle denormalized varints.\n\t// Assuming end marker is never 0 (which is always the case since\n\t// EndGroupType is non-zero), we can truncate all trailing bytes where the\n\t// lower 7 bits are all zero (implying that the varint is denormalized).\n\tfor len(b) > 0 && b[len(b)-1]&0x7f == 0 {\n\t\tb = b[:len(b)-1]\n\t}\n\tb = b[:len(b)-SizeTag(num)]\n\treturn b, n\n}\n\n// SizeGroup returns the encoded size of a group, given only the length.\nfunc SizeGroup(num Number, n int) int {\n\treturn n + SizeTag(num)\n}\n\n// DecodeTag decodes the field [Number] and wire [Type] from its unified form.\n// The [Number] is -1 if the decoded field number overflows int32.\n// Other than overflow, this does not check for field number validity.\nfunc DecodeTag(x uint64) (Number, Type) {\n\t// NOTE: MessageSet allows for larger field numbers than normal.\n\tif x>>3 > uint64(math.MaxInt32) {\n\t\treturn -1, 0\n\t}\n\treturn Number(x >> 3), Type(x & 7)\n}\n\n// EncodeTag encodes the field [Number] and wire [Type] into its unified form.\nfunc EncodeTag(num Number, typ Type) uint64 {\n\treturn uint64(num)<<3 | uint64(typ&7)\n}\n\n// DecodeZigZag decodes a zig-zag-encoded uint64 as an int64.\n//\n//\tInput:  {…,  5,  3,  1,  0,  2,  4,  6, …}\n//\tOutput: {…, -3, -2, -1,  0, +1, +2, +3, …}\nfunc DecodeZigZag(x uint64) int64 {\n\treturn int64(x>>1) ^ int64(x)<<63>>63\n}\n\n// EncodeZigZag encodes an int64 as a zig-zag-encoded uint64.\n//\n//\tInput:  {…, -3, -2, -1,  0, +1, +2, +3, …}\n//\tOutput: {…,  5,  3,  1,  0,  2,  4,  6, …}\nfunc EncodeZigZag(x int64) uint64 {\n\treturn uint64(x<<1) ^ uint64(x>>63)\n}\n\n// DecodeBool decodes a uint64 as a bool.\n//\n//\tInput:  {    0,    1,    2, …}\n//\tOutput: {false, true, true, …}\nfunc DecodeBool(x uint64) bool {\n\treturn x != 0\n}\n\n// EncodeBool encodes a bool as a uint64.\n//\n//\tInput:  {false, true}\n//\tOutput: {    0,    1}\nfunc EncodeBool(x bool) uint64 {\n\tif x {\n\t\treturn 1\n\t}\n\treturn 0\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/descfmt/stringer.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package descfmt provides functionality to format descriptors.\npackage descfmt\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"google.golang.org/protobuf/internal/detrand\"\n\t\"google.golang.org/protobuf/internal/pragma\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\ntype list interface {\n\tLen() int\n\tpragma.DoNotImplement\n}\n\nfunc FormatList(s fmt.State, r rune, vs list) {\n\tio.WriteString(s, formatListOpt(vs, true, r == 'v' && (s.Flag('+') || s.Flag('#'))))\n}\nfunc formatListOpt(vs list, isRoot, allowMulti bool) string {\n\tstart, end := \"[\", \"]\"\n\tif isRoot {\n\t\tvar name string\n\t\tswitch vs.(type) {\n\t\tcase protoreflect.Names:\n\t\t\tname = \"Names\"\n\t\tcase protoreflect.FieldNumbers:\n\t\t\tname = \"FieldNumbers\"\n\t\tcase protoreflect.FieldRanges:\n\t\t\tname = \"FieldRanges\"\n\t\tcase protoreflect.EnumRanges:\n\t\t\tname = \"EnumRanges\"\n\t\tcase protoreflect.FileImports:\n\t\t\tname = \"FileImports\"\n\t\tcase protoreflect.Descriptor:\n\t\t\tname = reflect.ValueOf(vs).MethodByName(\"Get\").Type().Out(0).Name() + \"s\"\n\t\tdefault:\n\t\t\tname = reflect.ValueOf(vs).Elem().Type().Name()\n\t\t}\n\t\tstart, end = name+\"{\", \"}\"\n\t}\n\n\tvar ss []string\n\tswitch vs := vs.(type) {\n\tcase protoreflect.Names:\n\t\tfor i := 0; i < vs.Len(); i++ {\n\t\t\tss = append(ss, fmt.Sprint(vs.Get(i)))\n\t\t}\n\t\treturn start + joinStrings(ss, false) + end\n\tcase protoreflect.FieldNumbers:\n\t\tfor i := 0; i < vs.Len(); i++ {\n\t\t\tss = append(ss, fmt.Sprint(vs.Get(i)))\n\t\t}\n\t\treturn start + joinStrings(ss, false) + end\n\tcase protoreflect.FieldRanges:\n\t\tfor i := 0; i < vs.Len(); i++ {\n\t\t\tr := vs.Get(i)\n\t\t\tif r[0]+1 == r[1] {\n\t\t\t\tss = append(ss, fmt.Sprintf(\"%d\", r[0]))\n\t\t\t} else {\n\t\t\t\tss = append(ss, fmt.Sprintf(\"%d:%d\", r[0], r[1])) // enum ranges are end exclusive\n\t\t\t}\n\t\t}\n\t\treturn start + joinStrings(ss, false) + end\n\tcase protoreflect.EnumRanges:\n\t\tfor i := 0; i < vs.Len(); i++ {\n\t\t\tr := vs.Get(i)\n\t\t\tif r[0] == r[1] {\n\t\t\t\tss = append(ss, fmt.Sprintf(\"%d\", r[0]))\n\t\t\t} else {\n\t\t\t\tss = append(ss, fmt.Sprintf(\"%d:%d\", r[0], int64(r[1])+1)) // enum ranges are end inclusive\n\t\t\t}\n\t\t}\n\t\treturn start + joinStrings(ss, false) + end\n\tcase protoreflect.FileImports:\n\t\tfor i := 0; i < vs.Len(); i++ {\n\t\t\tvar rs records\n\t\t\trv := reflect.ValueOf(vs.Get(i))\n\t\t\trs.Append(rv, []methodAndName{\n\t\t\t\t{rv.MethodByName(\"Path\"), \"Path\"},\n\t\t\t\t{rv.MethodByName(\"Package\"), \"Package\"},\n\t\t\t\t{rv.MethodByName(\"IsPublic\"), \"IsPublic\"},\n\t\t\t\t{rv.MethodByName(\"IsWeak\"), \"IsWeak\"},\n\t\t\t}...)\n\t\t\tss = append(ss, \"{\"+rs.Join()+\"}\")\n\t\t}\n\t\treturn start + joinStrings(ss, allowMulti) + end\n\tdefault:\n\t\t_, isEnumValue := vs.(protoreflect.EnumValueDescriptors)\n\t\tfor i := 0; i < vs.Len(); i++ {\n\t\t\tm := reflect.ValueOf(vs).MethodByName(\"Get\")\n\t\t\tv := m.Call([]reflect.Value{reflect.ValueOf(i)})[0].Interface()\n\t\t\tss = append(ss, formatDescOpt(v.(protoreflect.Descriptor), false, allowMulti && !isEnumValue, nil))\n\t\t}\n\t\treturn start + joinStrings(ss, allowMulti && isEnumValue) + end\n\t}\n}\n\ntype methodAndName struct {\n\tmethod reflect.Value\n\tname   string\n}\n\nfunc FormatDesc(s fmt.State, r rune, t protoreflect.Descriptor) {\n\tio.WriteString(s, formatDescOpt(t, true, r == 'v' && (s.Flag('+') || s.Flag('#')), nil))\n}\n\nfunc InternalFormatDescOptForTesting(t protoreflect.Descriptor, isRoot, allowMulti bool, record func(string)) string {\n\treturn formatDescOpt(t, isRoot, allowMulti, record)\n}\n\nfunc formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool, record func(string)) string {\n\trv := reflect.ValueOf(t)\n\trt := rv.MethodByName(\"ProtoType\").Type().In(0)\n\n\tstart, end := \"{\", \"}\"\n\tif isRoot {\n\t\tstart = rt.Name() + \"{\"\n\t}\n\n\t_, isFile := t.(protoreflect.FileDescriptor)\n\trs := records{\n\t\tallowMulti: allowMulti,\n\t\trecord:     record,\n\t}\n\tif t.IsPlaceholder() {\n\t\tif isFile {\n\t\t\trs.Append(rv, []methodAndName{\n\t\t\t\t{rv.MethodByName(\"Path\"), \"Path\"},\n\t\t\t\t{rv.MethodByName(\"Package\"), \"Package\"},\n\t\t\t\t{rv.MethodByName(\"IsPlaceholder\"), \"IsPlaceholder\"},\n\t\t\t}...)\n\t\t} else {\n\t\t\trs.Append(rv, []methodAndName{\n\t\t\t\t{rv.MethodByName(\"FullName\"), \"FullName\"},\n\t\t\t\t{rv.MethodByName(\"IsPlaceholder\"), \"IsPlaceholder\"},\n\t\t\t}...)\n\t\t}\n\t} else {\n\t\tswitch {\n\t\tcase isFile:\n\t\t\trs.Append(rv, methodAndName{rv.MethodByName(\"Syntax\"), \"Syntax\"})\n\t\tcase isRoot:\n\t\t\trs.Append(rv, []methodAndName{\n\t\t\t\t{rv.MethodByName(\"Syntax\"), \"Syntax\"},\n\t\t\t\t{rv.MethodByName(\"FullName\"), \"FullName\"},\n\t\t\t}...)\n\t\tdefault:\n\t\t\trs.Append(rv, methodAndName{rv.MethodByName(\"Name\"), \"Name\"})\n\t\t}\n\t\tswitch t := t.(type) {\n\t\tcase protoreflect.FieldDescriptor:\n\t\t\taccessors := []methodAndName{\n\t\t\t\t{rv.MethodByName(\"Number\"), \"Number\"},\n\t\t\t\t{rv.MethodByName(\"Cardinality\"), \"Cardinality\"},\n\t\t\t\t{rv.MethodByName(\"Kind\"), \"Kind\"},\n\t\t\t\t{rv.MethodByName(\"HasJSONName\"), \"HasJSONName\"},\n\t\t\t\t{rv.MethodByName(\"JSONName\"), \"JSONName\"},\n\t\t\t\t{rv.MethodByName(\"HasPresence\"), \"HasPresence\"},\n\t\t\t\t{rv.MethodByName(\"IsExtension\"), \"IsExtension\"},\n\t\t\t\t{rv.MethodByName(\"IsPacked\"), \"IsPacked\"},\n\t\t\t\t{rv.MethodByName(\"IsWeak\"), \"IsWeak\"},\n\t\t\t\t{rv.MethodByName(\"IsList\"), \"IsList\"},\n\t\t\t\t{rv.MethodByName(\"IsMap\"), \"IsMap\"},\n\t\t\t\t{rv.MethodByName(\"MapKey\"), \"MapKey\"},\n\t\t\t\t{rv.MethodByName(\"MapValue\"), \"MapValue\"},\n\t\t\t\t{rv.MethodByName(\"HasDefault\"), \"HasDefault\"},\n\t\t\t\t{rv.MethodByName(\"Default\"), \"Default\"},\n\t\t\t\t{rv.MethodByName(\"ContainingOneof\"), \"ContainingOneof\"},\n\t\t\t\t{rv.MethodByName(\"ContainingMessage\"), \"ContainingMessage\"},\n\t\t\t\t{rv.MethodByName(\"Message\"), \"Message\"},\n\t\t\t\t{rv.MethodByName(\"Enum\"), \"Enum\"},\n\t\t\t}\n\t\t\tfor _, s := range accessors {\n\t\t\t\tswitch s.name {\n\t\t\t\tcase \"MapKey\":\n\t\t\t\t\tif k := t.MapKey(); k != nil {\n\t\t\t\t\t\trs.recs = append(rs.recs, [2]string{\"MapKey\", k.Kind().String()})\n\t\t\t\t\t}\n\t\t\t\tcase \"MapValue\":\n\t\t\t\t\tif v := t.MapValue(); v != nil {\n\t\t\t\t\t\tswitch v.Kind() {\n\t\t\t\t\t\tcase protoreflect.EnumKind:\n\t\t\t\t\t\t\trs.AppendRecs(\"MapValue\", [2]string{\"MapValue\", string(v.Enum().FullName())})\n\t\t\t\t\t\tcase protoreflect.MessageKind, protoreflect.GroupKind:\n\t\t\t\t\t\t\trs.AppendRecs(\"MapValue\", [2]string{\"MapValue\", string(v.Message().FullName())})\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\trs.AppendRecs(\"MapValue\", [2]string{\"MapValue\", v.Kind().String()})\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\tcase \"ContainingOneof\":\n\t\t\t\t\tif od := t.ContainingOneof(); od != nil {\n\t\t\t\t\t\trs.AppendRecs(\"ContainingOneof\", [2]string{\"Oneof\", string(od.Name())})\n\t\t\t\t\t}\n\t\t\t\tcase \"ContainingMessage\":\n\t\t\t\t\tif t.IsExtension() {\n\t\t\t\t\t\trs.AppendRecs(\"ContainingMessage\", [2]string{\"Extendee\", string(t.ContainingMessage().FullName())})\n\t\t\t\t\t}\n\t\t\t\tcase \"Message\":\n\t\t\t\t\tif !t.IsMap() {\n\t\t\t\t\t\trs.Append(rv, s)\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\trs.Append(rv, s)\n\t\t\t\t}\n\t\t\t}\n\t\tcase protoreflect.OneofDescriptor:\n\t\t\tvar ss []string\n\t\t\tfs := t.Fields()\n\t\t\tfor i := 0; i < fs.Len(); i++ {\n\t\t\t\tss = append(ss, string(fs.Get(i).Name()))\n\t\t\t}\n\t\t\tif len(ss) > 0 {\n\t\t\t\trs.AppendRecs(\"Fields\", [2]string{\"Fields\", \"[\" + joinStrings(ss, false) + \"]\"})\n\t\t\t}\n\n\t\tcase protoreflect.FileDescriptor:\n\t\t\trs.Append(rv, []methodAndName{\n\t\t\t\t{rv.MethodByName(\"Path\"), \"Path\"},\n\t\t\t\t{rv.MethodByName(\"Package\"), \"Package\"},\n\t\t\t\t{rv.MethodByName(\"Imports\"), \"Imports\"},\n\t\t\t\t{rv.MethodByName(\"Messages\"), \"Messages\"},\n\t\t\t\t{rv.MethodByName(\"Enums\"), \"Enums\"},\n\t\t\t\t{rv.MethodByName(\"Extensions\"), \"Extensions\"},\n\t\t\t\t{rv.MethodByName(\"Services\"), \"Services\"},\n\t\t\t}...)\n\n\t\tcase protoreflect.MessageDescriptor:\n\t\t\trs.Append(rv, []methodAndName{\n\t\t\t\t{rv.MethodByName(\"IsMapEntry\"), \"IsMapEntry\"},\n\t\t\t\t{rv.MethodByName(\"Fields\"), \"Fields\"},\n\t\t\t\t{rv.MethodByName(\"Oneofs\"), \"Oneofs\"},\n\t\t\t\t{rv.MethodByName(\"ReservedNames\"), \"ReservedNames\"},\n\t\t\t\t{rv.MethodByName(\"ReservedRanges\"), \"ReservedRanges\"},\n\t\t\t\t{rv.MethodByName(\"RequiredNumbers\"), \"RequiredNumbers\"},\n\t\t\t\t{rv.MethodByName(\"ExtensionRanges\"), \"ExtensionRanges\"},\n\t\t\t\t{rv.MethodByName(\"Messages\"), \"Messages\"},\n\t\t\t\t{rv.MethodByName(\"Enums\"), \"Enums\"},\n\t\t\t\t{rv.MethodByName(\"Extensions\"), \"Extensions\"},\n\t\t\t}...)\n\n\t\tcase protoreflect.EnumDescriptor:\n\t\t\trs.Append(rv, []methodAndName{\n\t\t\t\t{rv.MethodByName(\"Values\"), \"Values\"},\n\t\t\t\t{rv.MethodByName(\"ReservedNames\"), \"ReservedNames\"},\n\t\t\t\t{rv.MethodByName(\"ReservedRanges\"), \"ReservedRanges\"},\n\t\t\t\t{rv.MethodByName(\"IsClosed\"), \"IsClosed\"},\n\t\t\t}...)\n\n\t\tcase protoreflect.EnumValueDescriptor:\n\t\t\trs.Append(rv, []methodAndName{\n\t\t\t\t{rv.MethodByName(\"Number\"), \"Number\"},\n\t\t\t}...)\n\n\t\tcase protoreflect.ServiceDescriptor:\n\t\t\trs.Append(rv, []methodAndName{\n\t\t\t\t{rv.MethodByName(\"Methods\"), \"Methods\"},\n\t\t\t}...)\n\n\t\tcase protoreflect.MethodDescriptor:\n\t\t\trs.Append(rv, []methodAndName{\n\t\t\t\t{rv.MethodByName(\"Input\"), \"Input\"},\n\t\t\t\t{rv.MethodByName(\"Output\"), \"Output\"},\n\t\t\t\t{rv.MethodByName(\"IsStreamingClient\"), \"IsStreamingClient\"},\n\t\t\t\t{rv.MethodByName(\"IsStreamingServer\"), \"IsStreamingServer\"},\n\t\t\t}...)\n\t\t}\n\t\tif m := rv.MethodByName(\"GoType\"); m.IsValid() {\n\t\t\trs.Append(rv, methodAndName{m, \"GoType\"})\n\t\t}\n\t}\n\treturn start + rs.Join() + end\n}\n\ntype records struct {\n\trecs       [][2]string\n\tallowMulti bool\n\n\t// record is a function that will be called for every Append() or\n\t// AppendRecs() call, to be used for testing with the\n\t// InternalFormatDescOptForTesting function.\n\trecord func(string)\n}\n\nfunc (rs *records) AppendRecs(fieldName string, newRecs [2]string) {\n\tif rs.record != nil {\n\t\trs.record(fieldName)\n\t}\n\trs.recs = append(rs.recs, newRecs)\n}\n\nfunc (rs *records) Append(v reflect.Value, accessors ...methodAndName) {\n\tfor _, a := range accessors {\n\t\tif rs.record != nil {\n\t\t\trs.record(a.name)\n\t\t}\n\t\tvar rv reflect.Value\n\t\tif a.method.IsValid() {\n\t\t\trv = a.method.Call(nil)[0]\n\t\t}\n\t\tif v.Kind() == reflect.Struct && !rv.IsValid() {\n\t\t\trv = v.FieldByName(a.name)\n\t\t}\n\t\tif !rv.IsValid() {\n\t\t\tpanic(fmt.Sprintf(\"unknown accessor: %v.%s\", v.Type(), a.name))\n\t\t}\n\t\tif _, ok := rv.Interface().(protoreflect.Value); ok {\n\t\t\trv = rv.MethodByName(\"Interface\").Call(nil)[0]\n\t\t\tif !rv.IsNil() {\n\t\t\t\trv = rv.Elem()\n\t\t\t}\n\t\t}\n\n\t\t// Ignore zero values.\n\t\tvar isZero bool\n\t\tswitch rv.Kind() {\n\t\tcase reflect.Interface, reflect.Slice:\n\t\t\tisZero = rv.IsNil()\n\t\tcase reflect.Bool:\n\t\t\tisZero = rv.Bool() == false\n\t\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\t\tisZero = rv.Int() == 0\n\t\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:\n\t\t\tisZero = rv.Uint() == 0\n\t\tcase reflect.String:\n\t\t\tisZero = rv.String() == \"\"\n\t\t}\n\t\tif n, ok := rv.Interface().(list); ok {\n\t\t\tisZero = n.Len() == 0\n\t\t}\n\t\tif isZero {\n\t\t\tcontinue\n\t\t}\n\n\t\t// Format the value.\n\t\tvar s string\n\t\tv := rv.Interface()\n\t\tswitch v := v.(type) {\n\t\tcase list:\n\t\t\ts = formatListOpt(v, false, rs.allowMulti)\n\t\tcase protoreflect.FieldDescriptor, protoreflect.OneofDescriptor, protoreflect.EnumValueDescriptor, protoreflect.MethodDescriptor:\n\t\t\ts = string(v.(protoreflect.Descriptor).Name())\n\t\tcase protoreflect.Descriptor:\n\t\t\ts = string(v.FullName())\n\t\tcase string:\n\t\t\ts = strconv.Quote(v)\n\t\tcase []byte:\n\t\t\ts = fmt.Sprintf(\"%q\", v)\n\t\tdefault:\n\t\t\ts = fmt.Sprint(v)\n\t\t}\n\t\trs.recs = append(rs.recs, [2]string{a.name, s})\n\t}\n}\n\nfunc (rs *records) Join() string {\n\tvar ss []string\n\n\t// In single line mode, simply join all records with commas.\n\tif !rs.allowMulti {\n\t\tfor _, r := range rs.recs {\n\t\t\tss = append(ss, r[0]+formatColon(0)+r[1])\n\t\t}\n\t\treturn joinStrings(ss, false)\n\t}\n\n\t// In allowMulti line mode, align single line records for more readable output.\n\tvar maxLen int\n\tflush := func(i int) {\n\t\tfor _, r := range rs.recs[len(ss):i] {\n\t\t\tss = append(ss, r[0]+formatColon(maxLen-len(r[0]))+r[1])\n\t\t}\n\t\tmaxLen = 0\n\t}\n\tfor i, r := range rs.recs {\n\t\tif isMulti := strings.Contains(r[1], \"\\n\"); isMulti {\n\t\t\tflush(i)\n\t\t\tss = append(ss, r[0]+formatColon(0)+strings.Join(strings.Split(r[1], \"\\n\"), \"\\n\\t\"))\n\t\t} else if maxLen < len(r[0]) {\n\t\t\tmaxLen = len(r[0])\n\t\t}\n\t}\n\tflush(len(rs.recs))\n\treturn joinStrings(ss, true)\n}\n\nfunc formatColon(padding int) string {\n\t// Deliberately introduce instability into the debug output to\n\t// discourage users from performing string comparisons.\n\t// This provides us flexibility to change the output in the future.\n\tif detrand.Bool() {\n\t\treturn \":\" + strings.Repeat(\" \", 1+padding) // use non-breaking spaces (U+00a0)\n\t} else {\n\t\treturn \":\" + strings.Repeat(\" \", 1+padding) // use regular spaces (U+0020)\n\t}\n}\n\nfunc joinStrings(ss []string, isMulti bool) string {\n\tif len(ss) == 0 {\n\t\treturn \"\"\n\t}\n\tif isMulti {\n\t\treturn \"\\n\\t\" + strings.Join(ss, \"\\n\\t\") + \"\\n\"\n\t}\n\treturn strings.Join(ss, \", \")\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/descopts/options.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package descopts contains the nil pointers to concrete descriptor options.\n//\n// This package exists as a form of reverse dependency injection so that certain\n// packages (e.g., internal/filedesc and internal/filetype can avoid a direct\n// dependency on the descriptor proto package).\npackage descopts\n\nimport \"google.golang.org/protobuf/reflect/protoreflect\"\n\n// These variables are set by the init function in descriptor.pb.go via logic\n// in internal/filetype. In other words, so long as the descriptor proto package\n// is linked in, these variables will be populated.\n//\n// Each variable is populated with a nil pointer to the options struct.\nvar (\n\tFile           protoreflect.ProtoMessage\n\tEnum           protoreflect.ProtoMessage\n\tEnumValue      protoreflect.ProtoMessage\n\tMessage        protoreflect.ProtoMessage\n\tField          protoreflect.ProtoMessage\n\tOneof          protoreflect.ProtoMessage\n\tExtensionRange protoreflect.ProtoMessage\n\tService        protoreflect.ProtoMessage\n\tMethod         protoreflect.ProtoMessage\n)\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/detrand/rand.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package detrand provides deterministically random functionality.\n//\n// The pseudo-randomness of these functions is seeded by the program binary\n// itself and guarantees that the output does not change within a program,\n// while ensuring that the output is unstable across different builds.\npackage detrand\n\nimport (\n\t\"encoding/binary\"\n\t\"hash/fnv\"\n\t\"os\"\n)\n\n// Disable disables detrand such that all functions returns the zero value.\n// This function is not concurrent-safe and must be called during program init.\nfunc Disable() {\n\trandSeed = 0\n}\n\n// Bool returns a deterministically random boolean.\nfunc Bool() bool {\n\treturn randSeed%2 == 1\n}\n\n// Intn returns a deterministically random integer between 0 and n-1, inclusive.\nfunc Intn(n int) int {\n\tif n <= 0 {\n\t\tpanic(\"must be positive\")\n\t}\n\treturn int(randSeed % uint64(n))\n}\n\n// randSeed is a best-effort at an approximate hash of the Go binary.\nvar randSeed = binaryHash()\n\nfunc binaryHash() uint64 {\n\t// Open the Go binary.\n\ts, err := os.Executable()\n\tif err != nil {\n\t\treturn 0\n\t}\n\tf, err := os.Open(s)\n\tif err != nil {\n\t\treturn 0\n\t}\n\tdefer f.Close()\n\n\t// Hash the size and several samples of the Go binary.\n\tconst numSamples = 8\n\tvar buf [64]byte\n\th := fnv.New64()\n\tfi, err := f.Stat()\n\tif err != nil {\n\t\treturn 0\n\t}\n\tbinary.LittleEndian.PutUint64(buf[:8], uint64(fi.Size()))\n\th.Write(buf[:8])\n\tfor i := int64(0); i < numSamples; i++ {\n\t\tif _, err := f.ReadAt(buf[:], i*fi.Size()/numSamples); err != nil {\n\t\t\treturn 0\n\t\t}\n\t\th.Write(buf[:])\n\t}\n\treturn h.Sum64()\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/editiondefaults/defaults.go",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package editiondefaults contains the binary representation of the editions\n// defaults.\npackage editiondefaults\n\nimport _ \"embed\"\n\n//go:embed editions_defaults.binpb\nvar Defaults []byte\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/editionssupport/editions.go",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package editionssupport defines constants for editions that are supported.\npackage editionssupport\n\nimport \"google.golang.org/protobuf/types/descriptorpb\"\n\nconst (\n\tMinimum = descriptorpb.Edition_EDITION_PROTO2\n\tMaximum = descriptorpb.Edition_EDITION_2023\n)\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/encoding/defval/default.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package defval marshals and unmarshals textual forms of default values.\n//\n// This package handles both the form historically used in Go struct field tags\n// and also the form used by google.protobuf.FieldDescriptorProto.default_value\n// since they differ in superficial ways.\npackage defval\n\nimport (\n\t\"fmt\"\n\t\"math\"\n\t\"strconv\"\n\n\tptext \"google.golang.org/protobuf/internal/encoding/text\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\n// Format is the serialization format used to represent the default value.\ntype Format int\n\nconst (\n\t_ Format = iota\n\n\t// Descriptor uses the serialization format that protoc uses with the\n\t// google.protobuf.FieldDescriptorProto.default_value field.\n\tDescriptor\n\n\t// GoTag uses the historical serialization format in Go struct field tags.\n\tGoTag\n)\n\n// Unmarshal deserializes the default string s according to the given kind k.\n// When k is an enum, a list of enum value descriptors must be provided.\nfunc Unmarshal(s string, k protoreflect.Kind, evs protoreflect.EnumValueDescriptors, f Format) (protoreflect.Value, protoreflect.EnumValueDescriptor, error) {\n\tswitch k {\n\tcase protoreflect.BoolKind:\n\t\tif f == GoTag {\n\t\t\tswitch s {\n\t\t\tcase \"1\":\n\t\t\t\treturn protoreflect.ValueOfBool(true), nil, nil\n\t\t\tcase \"0\":\n\t\t\t\treturn protoreflect.ValueOfBool(false), nil, nil\n\t\t\t}\n\t\t} else {\n\t\t\tswitch s {\n\t\t\tcase \"true\":\n\t\t\t\treturn protoreflect.ValueOfBool(true), nil, nil\n\t\t\tcase \"false\":\n\t\t\t\treturn protoreflect.ValueOfBool(false), nil, nil\n\t\t\t}\n\t\t}\n\tcase protoreflect.EnumKind:\n\t\tif f == GoTag {\n\t\t\t// Go tags use the numeric form of the enum value.\n\t\t\tif n, err := strconv.ParseInt(s, 10, 32); err == nil {\n\t\t\t\tif ev := evs.ByNumber(protoreflect.EnumNumber(n)); ev != nil {\n\t\t\t\t\treturn protoreflect.ValueOfEnum(ev.Number()), ev, nil\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\t// Descriptor default_value use the enum identifier.\n\t\t\tev := evs.ByName(protoreflect.Name(s))\n\t\t\tif ev != nil {\n\t\t\t\treturn protoreflect.ValueOfEnum(ev.Number()), ev, nil\n\t\t\t}\n\t\t}\n\tcase protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind:\n\t\tif v, err := strconv.ParseInt(s, 10, 32); err == nil {\n\t\t\treturn protoreflect.ValueOfInt32(int32(v)), nil, nil\n\t\t}\n\tcase protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind:\n\t\tif v, err := strconv.ParseInt(s, 10, 64); err == nil {\n\t\t\treturn protoreflect.ValueOfInt64(int64(v)), nil, nil\n\t\t}\n\tcase protoreflect.Uint32Kind, protoreflect.Fixed32Kind:\n\t\tif v, err := strconv.ParseUint(s, 10, 32); err == nil {\n\t\t\treturn protoreflect.ValueOfUint32(uint32(v)), nil, nil\n\t\t}\n\tcase protoreflect.Uint64Kind, protoreflect.Fixed64Kind:\n\t\tif v, err := strconv.ParseUint(s, 10, 64); err == nil {\n\t\t\treturn protoreflect.ValueOfUint64(uint64(v)), nil, nil\n\t\t}\n\tcase protoreflect.FloatKind, protoreflect.DoubleKind:\n\t\tvar v float64\n\t\tvar err error\n\t\tswitch s {\n\t\tcase \"-inf\":\n\t\t\tv = math.Inf(-1)\n\t\tcase \"inf\":\n\t\t\tv = math.Inf(+1)\n\t\tcase \"nan\":\n\t\t\tv = math.NaN()\n\t\tdefault:\n\t\t\tv, err = strconv.ParseFloat(s, 64)\n\t\t}\n\t\tif err == nil {\n\t\t\tif k == protoreflect.FloatKind {\n\t\t\t\treturn protoreflect.ValueOfFloat32(float32(v)), nil, nil\n\t\t\t} else {\n\t\t\t\treturn protoreflect.ValueOfFloat64(float64(v)), nil, nil\n\t\t\t}\n\t\t}\n\tcase protoreflect.StringKind:\n\t\t// String values are already unescaped and can be used as is.\n\t\treturn protoreflect.ValueOfString(s), nil, nil\n\tcase protoreflect.BytesKind:\n\t\tif b, ok := unmarshalBytes(s); ok {\n\t\t\treturn protoreflect.ValueOfBytes(b), nil, nil\n\t\t}\n\t}\n\treturn protoreflect.Value{}, nil, errors.New(\"could not parse value for %v: %q\", k, s)\n}\n\n// Marshal serializes v as the default string according to the given kind k.\n// When specifying the Descriptor format for an enum kind, the associated\n// enum value descriptor must be provided.\nfunc Marshal(v protoreflect.Value, ev protoreflect.EnumValueDescriptor, k protoreflect.Kind, f Format) (string, error) {\n\tswitch k {\n\tcase protoreflect.BoolKind:\n\t\tif f == GoTag {\n\t\t\tif v.Bool() {\n\t\t\t\treturn \"1\", nil\n\t\t\t} else {\n\t\t\t\treturn \"0\", nil\n\t\t\t}\n\t\t} else {\n\t\t\tif v.Bool() {\n\t\t\t\treturn \"true\", nil\n\t\t\t} else {\n\t\t\t\treturn \"false\", nil\n\t\t\t}\n\t\t}\n\tcase protoreflect.EnumKind:\n\t\tif f == GoTag {\n\t\t\treturn strconv.FormatInt(int64(v.Enum()), 10), nil\n\t\t} else {\n\t\t\treturn string(ev.Name()), nil\n\t\t}\n\tcase protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind, protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind:\n\t\treturn strconv.FormatInt(v.Int(), 10), nil\n\tcase protoreflect.Uint32Kind, protoreflect.Fixed32Kind, protoreflect.Uint64Kind, protoreflect.Fixed64Kind:\n\t\treturn strconv.FormatUint(v.Uint(), 10), nil\n\tcase protoreflect.FloatKind, protoreflect.DoubleKind:\n\t\tf := v.Float()\n\t\tswitch {\n\t\tcase math.IsInf(f, -1):\n\t\t\treturn \"-inf\", nil\n\t\tcase math.IsInf(f, +1):\n\t\t\treturn \"inf\", nil\n\t\tcase math.IsNaN(f):\n\t\t\treturn \"nan\", nil\n\t\tdefault:\n\t\t\tif k == protoreflect.FloatKind {\n\t\t\t\treturn strconv.FormatFloat(f, 'g', -1, 32), nil\n\t\t\t} else {\n\t\t\t\treturn strconv.FormatFloat(f, 'g', -1, 64), nil\n\t\t\t}\n\t\t}\n\tcase protoreflect.StringKind:\n\t\t// String values are serialized as is without any escaping.\n\t\treturn v.String(), nil\n\tcase protoreflect.BytesKind:\n\t\tif s, ok := marshalBytes(v.Bytes()); ok {\n\t\t\treturn s, nil\n\t\t}\n\t}\n\treturn \"\", errors.New(\"could not format value for %v: %v\", k, v)\n}\n\n// unmarshalBytes deserializes bytes by applying C unescaping.\nfunc unmarshalBytes(s string) ([]byte, bool) {\n\t// Bytes values use the same escaping as the text format,\n\t// however they lack the surrounding double quotes.\n\tv, err := ptext.UnmarshalString(`\"` + s + `\"`)\n\tif err != nil {\n\t\treturn nil, false\n\t}\n\treturn []byte(v), true\n}\n\n// marshalBytes serializes bytes by using C escaping.\n// To match the exact output of protoc, this is identical to the\n// CEscape function in strutil.cc of the protoc source code.\nfunc marshalBytes(b []byte) (string, bool) {\n\tvar s []byte\n\tfor _, c := range b {\n\t\tswitch c {\n\t\tcase '\\n':\n\t\t\ts = append(s, `\\n`...)\n\t\tcase '\\r':\n\t\t\ts = append(s, `\\r`...)\n\t\tcase '\\t':\n\t\t\ts = append(s, `\\t`...)\n\t\tcase '\"':\n\t\t\ts = append(s, `\\\"`...)\n\t\tcase '\\'':\n\t\t\ts = append(s, `\\'`...)\n\t\tcase '\\\\':\n\t\t\ts = append(s, `\\\\`...)\n\t\tdefault:\n\t\t\tif printableASCII := c >= 0x20 && c <= 0x7e; printableASCII {\n\t\t\t\ts = append(s, c)\n\t\t\t} else {\n\t\t\t\ts = append(s, fmt.Sprintf(`\\%03o`, c)...)\n\t\t\t}\n\t\t}\n\t}\n\treturn string(s), true\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/encoding/messageset/messageset.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package messageset encodes and decodes the obsolete MessageSet wire format.\npackage messageset\n\nimport (\n\t\"math\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\n// The MessageSet wire format is equivalent to a message defined as follows,\n// where each Item defines an extension field with a field number of 'type_id'\n// and content of 'message'. MessageSet extensions must be non-repeated message\n// fields.\n//\n//\tmessage MessageSet {\n//\t\trepeated group Item = 1 {\n//\t\t\trequired int32 type_id = 2;\n//\t\t\trequired string message = 3;\n//\t\t}\n//\t}\nconst (\n\tFieldItem    = protowire.Number(1)\n\tFieldTypeID  = protowire.Number(2)\n\tFieldMessage = protowire.Number(3)\n)\n\n// ExtensionName is the field name for extensions of MessageSet.\n//\n// A valid MessageSet extension must be of the form:\n//\n//\tmessage MyMessage {\n//\t\textend proto2.bridge.MessageSet {\n//\t\t\toptional MyMessage message_set_extension = 1234;\n//\t\t}\n//\t\t...\n//\t}\nconst ExtensionName = \"message_set_extension\"\n\n// IsMessageSet returns whether the message uses the MessageSet wire format.\nfunc IsMessageSet(md protoreflect.MessageDescriptor) bool {\n\txmd, ok := md.(interface{ IsMessageSet() bool })\n\treturn ok && xmd.IsMessageSet()\n}\n\n// IsMessageSetExtension reports this field properly extends a MessageSet.\nfunc IsMessageSetExtension(fd protoreflect.FieldDescriptor) bool {\n\tswitch {\n\tcase fd.Name() != ExtensionName:\n\t\treturn false\n\tcase !IsMessageSet(fd.ContainingMessage()):\n\t\treturn false\n\tcase fd.FullName().Parent() != fd.Message().FullName():\n\t\treturn false\n\t}\n\treturn true\n}\n\n// SizeField returns the size of a MessageSet item field containing an extension\n// with the given field number, not counting the contents of the message subfield.\nfunc SizeField(num protowire.Number) int {\n\treturn 2*protowire.SizeTag(FieldItem) + protowire.SizeTag(FieldTypeID) + protowire.SizeVarint(uint64(num))\n}\n\n// Unmarshal parses a MessageSet.\n//\n// It calls fn with the type ID and value of each item in the MessageSet.\n// Unknown fields are discarded.\n//\n// If wantLen is true, the item values include the varint length prefix.\n// This is ugly, but simplifies the fast-path decoder in internal/impl.\nfunc Unmarshal(b []byte, wantLen bool, fn func(typeID protowire.Number, value []byte) error) error {\n\tfor len(b) > 0 {\n\t\tnum, wtyp, n := protowire.ConsumeTag(b)\n\t\tif n < 0 {\n\t\t\treturn protowire.ParseError(n)\n\t\t}\n\t\tb = b[n:]\n\t\tif num != FieldItem || wtyp != protowire.StartGroupType {\n\t\t\tn := protowire.ConsumeFieldValue(num, wtyp, b)\n\t\t\tif n < 0 {\n\t\t\t\treturn protowire.ParseError(n)\n\t\t\t}\n\t\t\tb = b[n:]\n\t\t\tcontinue\n\t\t}\n\t\ttypeID, value, n, err := ConsumeFieldValue(b, wantLen)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tb = b[n:]\n\t\tif typeID == 0 {\n\t\t\tcontinue\n\t\t}\n\t\tif err := fn(typeID, value); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// ConsumeFieldValue parses b as a MessageSet item field value until and including\n// the trailing end group marker. It assumes the start group tag has already been parsed.\n// It returns the contents of the type_id and message subfields and the total\n// item length.\n//\n// If wantLen is true, the returned message value includes the length prefix.\nfunc ConsumeFieldValue(b []byte, wantLen bool) (typeid protowire.Number, message []byte, n int, err error) {\n\tilen := len(b)\n\tfor {\n\t\tnum, wtyp, n := protowire.ConsumeTag(b)\n\t\tif n < 0 {\n\t\t\treturn 0, nil, 0, protowire.ParseError(n)\n\t\t}\n\t\tb = b[n:]\n\t\tswitch {\n\t\tcase num == FieldItem && wtyp == protowire.EndGroupType:\n\t\t\tif wantLen && len(message) == 0 {\n\t\t\t\t// The message field was missing, which should never happen.\n\t\t\t\t// Be prepared for this case anyway.\n\t\t\t\tmessage = protowire.AppendVarint(message, 0)\n\t\t\t}\n\t\t\treturn typeid, message, ilen - len(b), nil\n\t\tcase num == FieldTypeID && wtyp == protowire.VarintType:\n\t\t\tv, n := protowire.ConsumeVarint(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn 0, nil, 0, protowire.ParseError(n)\n\t\t\t}\n\t\t\tb = b[n:]\n\t\t\tif v < 1 || v > math.MaxInt32 {\n\t\t\t\treturn 0, nil, 0, errors.New(\"invalid type_id in message set\")\n\t\t\t}\n\t\t\ttypeid = protowire.Number(v)\n\t\tcase num == FieldMessage && wtyp == protowire.BytesType:\n\t\t\tm, n := protowire.ConsumeBytes(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn 0, nil, 0, protowire.ParseError(n)\n\t\t\t}\n\t\t\tif message == nil {\n\t\t\t\tif wantLen {\n\t\t\t\t\tmessage = b[:n:n]\n\t\t\t\t} else {\n\t\t\t\t\tmessage = m[:len(m):len(m)]\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// This case should never happen in practice, but handle it for\n\t\t\t\t// correctness: The MessageSet item contains multiple message\n\t\t\t\t// fields, which need to be merged.\n\t\t\t\t//\n\t\t\t\t// In the case where we're returning the length, this becomes\n\t\t\t\t// quite inefficient since we need to strip the length off\n\t\t\t\t// the existing data and reconstruct it with the combined length.\n\t\t\t\tif wantLen {\n\t\t\t\t\t_, nn := protowire.ConsumeVarint(message)\n\t\t\t\t\tm0 := message[nn:]\n\t\t\t\t\tmessage = nil\n\t\t\t\t\tmessage = protowire.AppendVarint(message, uint64(len(m0)+len(m)))\n\t\t\t\t\tmessage = append(message, m0...)\n\t\t\t\t\tmessage = append(message, m...)\n\t\t\t\t} else {\n\t\t\t\t\tmessage = append(message, m...)\n\t\t\t\t}\n\t\t\t}\n\t\t\tb = b[n:]\n\t\tdefault:\n\t\t\t// We have no place to put it, so we just ignore unknown fields.\n\t\t\tn := protowire.ConsumeFieldValue(num, wtyp, b)\n\t\t\tif n < 0 {\n\t\t\t\treturn 0, nil, 0, protowire.ParseError(n)\n\t\t\t}\n\t\t\tb = b[n:]\n\t\t}\n\t}\n}\n\n// AppendFieldStart appends the start of a MessageSet item field containing\n// an extension with the given number. The caller must add the message\n// subfield (including the tag).\nfunc AppendFieldStart(b []byte, num protowire.Number) []byte {\n\tb = protowire.AppendTag(b, FieldItem, protowire.StartGroupType)\n\tb = protowire.AppendTag(b, FieldTypeID, protowire.VarintType)\n\tb = protowire.AppendVarint(b, uint64(num))\n\treturn b\n}\n\n// AppendFieldEnd appends the trailing end group marker for a MessageSet item field.\nfunc AppendFieldEnd(b []byte) []byte {\n\treturn protowire.AppendTag(b, FieldItem, protowire.EndGroupType)\n}\n\n// SizeUnknown returns the size of an unknown fields section in MessageSet format.\n//\n// See AppendUnknown.\nfunc SizeUnknown(unknown []byte) (size int) {\n\tfor len(unknown) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(unknown)\n\t\tif n < 0 || typ != protowire.BytesType {\n\t\t\treturn 0\n\t\t}\n\t\tunknown = unknown[n:]\n\t\t_, n = protowire.ConsumeBytes(unknown)\n\t\tif n < 0 {\n\t\t\treturn 0\n\t\t}\n\t\tunknown = unknown[n:]\n\t\tsize += SizeField(num) + protowire.SizeTag(FieldMessage) + n\n\t}\n\treturn size\n}\n\n// AppendUnknown appends unknown fields to b in MessageSet format.\n//\n// For historic reasons, unresolved items in a MessageSet are stored in a\n// message's unknown fields section in non-MessageSet format. That is, an\n// unknown item with typeID T and value V appears in the unknown fields as\n// a field with number T and value V.\n//\n// This function converts the unknown fields back into MessageSet form.\nfunc AppendUnknown(b, unknown []byte) ([]byte, error) {\n\tfor len(unknown) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(unknown)\n\t\tif n < 0 || typ != protowire.BytesType {\n\t\t\treturn nil, errors.New(\"invalid data in message set unknown fields\")\n\t\t}\n\t\tunknown = unknown[n:]\n\t\t_, n = protowire.ConsumeBytes(unknown)\n\t\tif n < 0 {\n\t\t\treturn nil, errors.New(\"invalid data in message set unknown fields\")\n\t\t}\n\t\tb = AppendFieldStart(b, num)\n\t\tb = protowire.AppendTag(b, FieldMessage, protowire.BytesType)\n\t\tb = append(b, unknown[:n]...)\n\t\tb = AppendFieldEnd(b)\n\t\tunknown = unknown[n:]\n\t}\n\treturn b, nil\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package tag marshals and unmarshals the legacy struct tags as generated\n// by historical versions of protoc-gen-go.\npackage tag\n\nimport (\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"google.golang.org/protobuf/internal/encoding/defval\"\n\t\"google.golang.org/protobuf/internal/filedesc\"\n\t\"google.golang.org/protobuf/internal/strs\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\nvar byteType = reflect.TypeOf(byte(0))\n\n// Unmarshal decodes the tag into a prototype.Field.\n//\n// The goType is needed to determine the original protoreflect.Kind since the\n// tag does not record sufficient information to determine that.\n// The type is the underlying field type (e.g., a repeated field may be\n// represented by []T, but the Go type passed in is just T).\n// A list of enum value descriptors must be provided for enum fields.\n// This does not populate the Enum or Message (except for weak message).\n//\n// This function is a best effort attempt; parsing errors are ignored.\nfunc Unmarshal(tag string, goType reflect.Type, evs protoreflect.EnumValueDescriptors) protoreflect.FieldDescriptor {\n\tf := new(filedesc.Field)\n\tf.L0.ParentFile = filedesc.SurrogateProto2\n\tf.L1.EditionFeatures = f.L0.ParentFile.L1.EditionFeatures\n\tfor len(tag) > 0 {\n\t\ti := strings.IndexByte(tag, ',')\n\t\tif i < 0 {\n\t\t\ti = len(tag)\n\t\t}\n\t\tswitch s := tag[:i]; {\n\t\tcase strings.HasPrefix(s, \"name=\"):\n\t\t\tf.L0.FullName = protoreflect.FullName(s[len(\"name=\"):])\n\t\tcase strings.Trim(s, \"0123456789\") == \"\":\n\t\t\tn, _ := strconv.ParseUint(s, 10, 32)\n\t\t\tf.L1.Number = protoreflect.FieldNumber(n)\n\t\tcase s == \"opt\":\n\t\t\tf.L1.Cardinality = protoreflect.Optional\n\t\tcase s == \"req\":\n\t\t\tf.L1.Cardinality = protoreflect.Required\n\t\tcase s == \"rep\":\n\t\t\tf.L1.Cardinality = protoreflect.Repeated\n\t\tcase s == \"varint\":\n\t\t\tswitch goType.Kind() {\n\t\t\tcase reflect.Bool:\n\t\t\t\tf.L1.Kind = protoreflect.BoolKind\n\t\t\tcase reflect.Int32:\n\t\t\t\tf.L1.Kind = protoreflect.Int32Kind\n\t\t\tcase reflect.Int64:\n\t\t\t\tf.L1.Kind = protoreflect.Int64Kind\n\t\t\tcase reflect.Uint32:\n\t\t\t\tf.L1.Kind = protoreflect.Uint32Kind\n\t\t\tcase reflect.Uint64:\n\t\t\t\tf.L1.Kind = protoreflect.Uint64Kind\n\t\t\t}\n\t\tcase s == \"zigzag32\":\n\t\t\tif goType.Kind() == reflect.Int32 {\n\t\t\t\tf.L1.Kind = protoreflect.Sint32Kind\n\t\t\t}\n\t\tcase s == \"zigzag64\":\n\t\t\tif goType.Kind() == reflect.Int64 {\n\t\t\t\tf.L1.Kind = protoreflect.Sint64Kind\n\t\t\t}\n\t\tcase s == \"fixed32\":\n\t\t\tswitch goType.Kind() {\n\t\t\tcase reflect.Int32:\n\t\t\t\tf.L1.Kind = protoreflect.Sfixed32Kind\n\t\t\tcase reflect.Uint32:\n\t\t\t\tf.L1.Kind = protoreflect.Fixed32Kind\n\t\t\tcase reflect.Float32:\n\t\t\t\tf.L1.Kind = protoreflect.FloatKind\n\t\t\t}\n\t\tcase s == \"fixed64\":\n\t\t\tswitch goType.Kind() {\n\t\t\tcase reflect.Int64:\n\t\t\t\tf.L1.Kind = protoreflect.Sfixed64Kind\n\t\t\tcase reflect.Uint64:\n\t\t\t\tf.L1.Kind = protoreflect.Fixed64Kind\n\t\t\tcase reflect.Float64:\n\t\t\t\tf.L1.Kind = protoreflect.DoubleKind\n\t\t\t}\n\t\tcase s == \"bytes\":\n\t\t\tswitch {\n\t\t\tcase goType.Kind() == reflect.String:\n\t\t\t\tf.L1.Kind = protoreflect.StringKind\n\t\t\tcase goType.Kind() == reflect.Slice && goType.Elem() == byteType:\n\t\t\t\tf.L1.Kind = protoreflect.BytesKind\n\t\t\tdefault:\n\t\t\t\tf.L1.Kind = protoreflect.MessageKind\n\t\t\t}\n\t\tcase s == \"group\":\n\t\t\tf.L1.Kind = protoreflect.GroupKind\n\t\tcase strings.HasPrefix(s, \"enum=\"):\n\t\t\tf.L1.Kind = protoreflect.EnumKind\n\t\tcase strings.HasPrefix(s, \"json=\"):\n\t\t\tjsonName := s[len(\"json=\"):]\n\t\t\tif jsonName != strs.JSONCamelCase(string(f.L0.FullName.Name())) {\n\t\t\t\tf.L1.StringName.InitJSON(jsonName)\n\t\t\t}\n\t\tcase s == \"packed\":\n\t\t\tf.L1.EditionFeatures.IsPacked = true\n\t\tcase strings.HasPrefix(s, \"weak=\"):\n\t\t\tf.L1.IsWeak = true\n\t\t\tf.L1.Message = filedesc.PlaceholderMessage(protoreflect.FullName(s[len(\"weak=\"):]))\n\t\tcase strings.HasPrefix(s, \"def=\"):\n\t\t\t// The default tag is special in that everything afterwards is the\n\t\t\t// default regardless of the presence of commas.\n\t\t\ts, i = tag[len(\"def=\"):], len(tag)\n\t\t\tv, ev, _ := defval.Unmarshal(s, f.L1.Kind, evs, defval.GoTag)\n\t\t\tf.L1.Default = filedesc.DefaultValue(v, ev)\n\t\tcase s == \"proto3\":\n\t\t\tf.L0.ParentFile = filedesc.SurrogateProto3\n\t\t}\n\t\ttag = strings.TrimPrefix(tag[i:], \",\")\n\t}\n\n\t// The generator uses the group message name instead of the field name.\n\t// We obtain the real field name by lowercasing the group name.\n\tif f.L1.Kind == protoreflect.GroupKind {\n\t\tf.L0.FullName = protoreflect.FullName(strings.ToLower(string(f.L0.FullName)))\n\t}\n\treturn f\n}\n\n// Marshal encodes the protoreflect.FieldDescriptor as a tag.\n//\n// The enumName must be provided if the kind is an enum.\n// Historically, the formulation of the enum \"name\" was the proto package\n// dot-concatenated with the generated Go identifier for the enum type.\n// Depending on the context on how Marshal is called, there are different ways\n// through which that information is determined. As such it is the caller's\n// responsibility to provide a function to obtain that information.\nfunc Marshal(fd protoreflect.FieldDescriptor, enumName string) string {\n\tvar tag []string\n\tswitch fd.Kind() {\n\tcase protoreflect.BoolKind, protoreflect.EnumKind, protoreflect.Int32Kind, protoreflect.Uint32Kind, protoreflect.Int64Kind, protoreflect.Uint64Kind:\n\t\ttag = append(tag, \"varint\")\n\tcase protoreflect.Sint32Kind:\n\t\ttag = append(tag, \"zigzag32\")\n\tcase protoreflect.Sint64Kind:\n\t\ttag = append(tag, \"zigzag64\")\n\tcase protoreflect.Sfixed32Kind, protoreflect.Fixed32Kind, protoreflect.FloatKind:\n\t\ttag = append(tag, \"fixed32\")\n\tcase protoreflect.Sfixed64Kind, protoreflect.Fixed64Kind, protoreflect.DoubleKind:\n\t\ttag = append(tag, \"fixed64\")\n\tcase protoreflect.StringKind, protoreflect.BytesKind, protoreflect.MessageKind:\n\t\ttag = append(tag, \"bytes\")\n\tcase protoreflect.GroupKind:\n\t\ttag = append(tag, \"group\")\n\t}\n\ttag = append(tag, strconv.Itoa(int(fd.Number())))\n\tswitch fd.Cardinality() {\n\tcase protoreflect.Optional:\n\t\ttag = append(tag, \"opt\")\n\tcase protoreflect.Required:\n\t\ttag = append(tag, \"req\")\n\tcase protoreflect.Repeated:\n\t\ttag = append(tag, \"rep\")\n\t}\n\tif fd.IsPacked() {\n\t\ttag = append(tag, \"packed\")\n\t}\n\tname := string(fd.Name())\n\tif fd.Kind() == protoreflect.GroupKind {\n\t\t// The name of the FieldDescriptor for a group field is\n\t\t// lowercased. To find the original capitalization, we\n\t\t// look in the field's MessageType.\n\t\tname = string(fd.Message().Name())\n\t}\n\ttag = append(tag, \"name=\"+name)\n\tif jsonName := fd.JSONName(); jsonName != \"\" && jsonName != name && !fd.IsExtension() {\n\t\t// NOTE: The jsonName != name condition is suspect, but it preserve\n\t\t// the exact same semantics from the previous generator.\n\t\ttag = append(tag, \"json=\"+jsonName)\n\t}\n\tif fd.IsWeak() {\n\t\ttag = append(tag, \"weak=\"+string(fd.Message().FullName()))\n\t}\n\t// The previous implementation does not tag extension fields as proto3,\n\t// even when the field is defined in a proto3 file. Match that behavior\n\t// for consistency.\n\tif fd.Syntax() == protoreflect.Proto3 && !fd.IsExtension() {\n\t\ttag = append(tag, \"proto3\")\n\t}\n\tif fd.Kind() == protoreflect.EnumKind && enumName != \"\" {\n\t\ttag = append(tag, \"enum=\"+enumName)\n\t}\n\tif fd.ContainingOneof() != nil {\n\t\ttag = append(tag, \"oneof\")\n\t}\n\t// This must appear last in the tag, since commas in strings aren't escaped.\n\tif fd.HasDefault() {\n\t\tdef, _ := defval.Marshal(fd.Default(), fd.DefaultEnumValue(), fd.Kind(), defval.GoTag)\n\t\ttag = append(tag, \"def=\"+def)\n\t}\n\treturn strings.Join(tag, \",\")\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/encoding/text/decode.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage text\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\t\"unicode/utf8\"\n\n\t\"google.golang.org/protobuf/internal/errors\"\n)\n\n// Decoder is a token-based textproto decoder.\ntype Decoder struct {\n\t// lastCall is last method called, either readCall or peekCall.\n\t// Initial value is readCall.\n\tlastCall call\n\n\t// lastToken contains the last read token.\n\tlastToken Token\n\n\t// lastErr contains the last read error.\n\tlastErr error\n\n\t// openStack is a stack containing the byte characters for MessageOpen and\n\t// ListOpen kinds. The top of stack represents the message or the list that\n\t// the current token is nested in. An empty stack means the current token is\n\t// at the top level message. The characters '{' and '<' both represent the\n\t// MessageOpen kind.\n\topenStack []byte\n\n\t// orig is used in reporting line and column.\n\torig []byte\n\t// in contains the unconsumed input.\n\tin []byte\n}\n\n// NewDecoder returns a Decoder to read the given []byte.\nfunc NewDecoder(b []byte) *Decoder {\n\treturn &Decoder{orig: b, in: b}\n}\n\n// ErrUnexpectedEOF means that EOF was encountered in the middle of the input.\nvar ErrUnexpectedEOF = errors.New(\"%v\", io.ErrUnexpectedEOF)\n\n// call specifies which Decoder method was invoked.\ntype call uint8\n\nconst (\n\treadCall call = iota\n\tpeekCall\n)\n\n// Peek looks ahead and returns the next token and error without advancing a read.\nfunc (d *Decoder) Peek() (Token, error) {\n\tdefer func() { d.lastCall = peekCall }()\n\tif d.lastCall == readCall {\n\t\td.lastToken, d.lastErr = d.Read()\n\t}\n\treturn d.lastToken, d.lastErr\n}\n\n// Read returns the next token.\n// It will return an error if there is no valid token.\nfunc (d *Decoder) Read() (Token, error) {\n\tdefer func() { d.lastCall = readCall }()\n\tif d.lastCall == peekCall {\n\t\treturn d.lastToken, d.lastErr\n\t}\n\n\ttok, err := d.parseNext(d.lastToken.kind)\n\tif err != nil {\n\t\treturn Token{}, err\n\t}\n\n\tswitch tok.kind {\n\tcase comma, semicolon:\n\t\ttok, err = d.parseNext(tok.kind)\n\t\tif err != nil {\n\t\t\treturn Token{}, err\n\t\t}\n\t}\n\td.lastToken = tok\n\treturn tok, nil\n}\n\nconst (\n\tmismatchedFmt = \"mismatched close character %q\"\n\tunexpectedFmt = \"unexpected character %q\"\n)\n\n// parseNext parses the next Token based on given last kind.\nfunc (d *Decoder) parseNext(lastKind Kind) (Token, error) {\n\t// Trim leading spaces.\n\td.consume(0)\n\tisEOF := false\n\tif len(d.in) == 0 {\n\t\tisEOF = true\n\t}\n\n\tswitch lastKind {\n\tcase EOF:\n\t\treturn d.consumeToken(EOF, 0, 0), nil\n\n\tcase bof:\n\t\t// Start of top level message. Next token can be EOF or Name.\n\t\tif isEOF {\n\t\t\treturn d.consumeToken(EOF, 0, 0), nil\n\t\t}\n\t\treturn d.parseFieldName()\n\n\tcase Name:\n\t\t// Next token can be MessageOpen, ListOpen or Scalar.\n\t\tif isEOF {\n\t\t\treturn Token{}, ErrUnexpectedEOF\n\t\t}\n\t\tswitch ch := d.in[0]; ch {\n\t\tcase '{', '<':\n\t\t\td.pushOpenStack(ch)\n\t\t\treturn d.consumeToken(MessageOpen, 1, 0), nil\n\t\tcase '[':\n\t\t\td.pushOpenStack(ch)\n\t\t\treturn d.consumeToken(ListOpen, 1, 0), nil\n\t\tdefault:\n\t\t\treturn d.parseScalar()\n\t\t}\n\n\tcase Scalar:\n\t\topenKind, closeCh := d.currentOpenKind()\n\t\tswitch openKind {\n\t\tcase bof:\n\t\t\t// Top level message.\n\t\t\t// \tNext token can be EOF, comma, semicolon or Name.\n\t\t\tif isEOF {\n\t\t\t\treturn d.consumeToken(EOF, 0, 0), nil\n\t\t\t}\n\t\t\tswitch d.in[0] {\n\t\t\tcase ',':\n\t\t\t\treturn d.consumeToken(comma, 1, 0), nil\n\t\t\tcase ';':\n\t\t\t\treturn d.consumeToken(semicolon, 1, 0), nil\n\t\t\tdefault:\n\t\t\t\treturn d.parseFieldName()\n\t\t\t}\n\n\t\tcase MessageOpen:\n\t\t\t// Next token can be MessageClose, comma, semicolon or Name.\n\t\t\tif isEOF {\n\t\t\t\treturn Token{}, ErrUnexpectedEOF\n\t\t\t}\n\t\t\tswitch ch := d.in[0]; ch {\n\t\t\tcase closeCh:\n\t\t\t\td.popOpenStack()\n\t\t\t\treturn d.consumeToken(MessageClose, 1, 0), nil\n\t\t\tcase otherCloseChar[closeCh]:\n\t\t\t\treturn Token{}, d.newSyntaxError(mismatchedFmt, ch)\n\t\t\tcase ',':\n\t\t\t\treturn d.consumeToken(comma, 1, 0), nil\n\t\t\tcase ';':\n\t\t\t\treturn d.consumeToken(semicolon, 1, 0), nil\n\t\t\tdefault:\n\t\t\t\treturn d.parseFieldName()\n\t\t\t}\n\n\t\tcase ListOpen:\n\t\t\t// Next token can be ListClose or comma.\n\t\t\tif isEOF {\n\t\t\t\treturn Token{}, ErrUnexpectedEOF\n\t\t\t}\n\t\t\tswitch ch := d.in[0]; ch {\n\t\t\tcase ']':\n\t\t\t\td.popOpenStack()\n\t\t\t\treturn d.consumeToken(ListClose, 1, 0), nil\n\t\t\tcase ',':\n\t\t\t\treturn d.consumeToken(comma, 1, 0), nil\n\t\t\tdefault:\n\t\t\t\treturn Token{}, d.newSyntaxError(unexpectedFmt, ch)\n\t\t\t}\n\t\t}\n\n\tcase MessageOpen:\n\t\t// Next token can be MessageClose or Name.\n\t\tif isEOF {\n\t\t\treturn Token{}, ErrUnexpectedEOF\n\t\t}\n\t\t_, closeCh := d.currentOpenKind()\n\t\tswitch ch := d.in[0]; ch {\n\t\tcase closeCh:\n\t\t\td.popOpenStack()\n\t\t\treturn d.consumeToken(MessageClose, 1, 0), nil\n\t\tcase otherCloseChar[closeCh]:\n\t\t\treturn Token{}, d.newSyntaxError(mismatchedFmt, ch)\n\t\tdefault:\n\t\t\treturn d.parseFieldName()\n\t\t}\n\n\tcase MessageClose:\n\t\topenKind, closeCh := d.currentOpenKind()\n\t\tswitch openKind {\n\t\tcase bof:\n\t\t\t// Top level message.\n\t\t\t// Next token can be EOF, comma, semicolon or Name.\n\t\t\tif isEOF {\n\t\t\t\treturn d.consumeToken(EOF, 0, 0), nil\n\t\t\t}\n\t\t\tswitch ch := d.in[0]; ch {\n\t\t\tcase ',':\n\t\t\t\treturn d.consumeToken(comma, 1, 0), nil\n\t\t\tcase ';':\n\t\t\t\treturn d.consumeToken(semicolon, 1, 0), nil\n\t\t\tdefault:\n\t\t\t\treturn d.parseFieldName()\n\t\t\t}\n\n\t\tcase MessageOpen:\n\t\t\t// Next token can be MessageClose, comma, semicolon or Name.\n\t\t\tif isEOF {\n\t\t\t\treturn Token{}, ErrUnexpectedEOF\n\t\t\t}\n\t\t\tswitch ch := d.in[0]; ch {\n\t\t\tcase closeCh:\n\t\t\t\td.popOpenStack()\n\t\t\t\treturn d.consumeToken(MessageClose, 1, 0), nil\n\t\t\tcase otherCloseChar[closeCh]:\n\t\t\t\treturn Token{}, d.newSyntaxError(mismatchedFmt, ch)\n\t\t\tcase ',':\n\t\t\t\treturn d.consumeToken(comma, 1, 0), nil\n\t\t\tcase ';':\n\t\t\t\treturn d.consumeToken(semicolon, 1, 0), nil\n\t\t\tdefault:\n\t\t\t\treturn d.parseFieldName()\n\t\t\t}\n\n\t\tcase ListOpen:\n\t\t\t// Next token can be ListClose or comma\n\t\t\tif isEOF {\n\t\t\t\treturn Token{}, ErrUnexpectedEOF\n\t\t\t}\n\t\t\tswitch ch := d.in[0]; ch {\n\t\t\tcase closeCh:\n\t\t\t\td.popOpenStack()\n\t\t\t\treturn d.consumeToken(ListClose, 1, 0), nil\n\t\t\tcase ',':\n\t\t\t\treturn d.consumeToken(comma, 1, 0), nil\n\t\t\tdefault:\n\t\t\t\treturn Token{}, d.newSyntaxError(unexpectedFmt, ch)\n\t\t\t}\n\t\t}\n\n\tcase ListOpen:\n\t\t// Next token can be ListClose, MessageStart or Scalar.\n\t\tif isEOF {\n\t\t\treturn Token{}, ErrUnexpectedEOF\n\t\t}\n\t\tswitch ch := d.in[0]; ch {\n\t\tcase ']':\n\t\t\td.popOpenStack()\n\t\t\treturn d.consumeToken(ListClose, 1, 0), nil\n\t\tcase '{', '<':\n\t\t\td.pushOpenStack(ch)\n\t\t\treturn d.consumeToken(MessageOpen, 1, 0), nil\n\t\tdefault:\n\t\t\treturn d.parseScalar()\n\t\t}\n\n\tcase ListClose:\n\t\topenKind, closeCh := d.currentOpenKind()\n\t\tswitch openKind {\n\t\tcase bof:\n\t\t\t// Top level message.\n\t\t\t// Next token can be EOF, comma, semicolon or Name.\n\t\t\tif isEOF {\n\t\t\t\treturn d.consumeToken(EOF, 0, 0), nil\n\t\t\t}\n\t\t\tswitch ch := d.in[0]; ch {\n\t\t\tcase ',':\n\t\t\t\treturn d.consumeToken(comma, 1, 0), nil\n\t\t\tcase ';':\n\t\t\t\treturn d.consumeToken(semicolon, 1, 0), nil\n\t\t\tdefault:\n\t\t\t\treturn d.parseFieldName()\n\t\t\t}\n\n\t\tcase MessageOpen:\n\t\t\t// Next token can be MessageClose, comma, semicolon or Name.\n\t\t\tif isEOF {\n\t\t\t\treturn Token{}, ErrUnexpectedEOF\n\t\t\t}\n\t\t\tswitch ch := d.in[0]; ch {\n\t\t\tcase closeCh:\n\t\t\t\td.popOpenStack()\n\t\t\t\treturn d.consumeToken(MessageClose, 1, 0), nil\n\t\t\tcase otherCloseChar[closeCh]:\n\t\t\t\treturn Token{}, d.newSyntaxError(mismatchedFmt, ch)\n\t\t\tcase ',':\n\t\t\t\treturn d.consumeToken(comma, 1, 0), nil\n\t\t\tcase ';':\n\t\t\t\treturn d.consumeToken(semicolon, 1, 0), nil\n\t\t\tdefault:\n\t\t\t\treturn d.parseFieldName()\n\t\t\t}\n\n\t\tdefault:\n\t\t\t// It is not possible to have this case. Let it panic below.\n\t\t}\n\n\tcase comma, semicolon:\n\t\topenKind, closeCh := d.currentOpenKind()\n\t\tswitch openKind {\n\t\tcase bof:\n\t\t\t// Top level message. Next token can be EOF or Name.\n\t\t\tif isEOF {\n\t\t\t\treturn d.consumeToken(EOF, 0, 0), nil\n\t\t\t}\n\t\t\treturn d.parseFieldName()\n\n\t\tcase MessageOpen:\n\t\t\t// Next token can be MessageClose or Name.\n\t\t\tif isEOF {\n\t\t\t\treturn Token{}, ErrUnexpectedEOF\n\t\t\t}\n\t\t\tswitch ch := d.in[0]; ch {\n\t\t\tcase closeCh:\n\t\t\t\td.popOpenStack()\n\t\t\t\treturn d.consumeToken(MessageClose, 1, 0), nil\n\t\t\tcase otherCloseChar[closeCh]:\n\t\t\t\treturn Token{}, d.newSyntaxError(mismatchedFmt, ch)\n\t\t\tdefault:\n\t\t\t\treturn d.parseFieldName()\n\t\t\t}\n\n\t\tcase ListOpen:\n\t\t\tif lastKind == semicolon {\n\t\t\t\t// It is not be possible to have this case as logic here\n\t\t\t\t// should not have produced a semicolon Token when inside a\n\t\t\t\t// list. Let it panic below.\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// Next token can be MessageOpen or Scalar.\n\t\t\tif isEOF {\n\t\t\t\treturn Token{}, ErrUnexpectedEOF\n\t\t\t}\n\t\t\tswitch ch := d.in[0]; ch {\n\t\t\tcase '{', '<':\n\t\t\t\td.pushOpenStack(ch)\n\t\t\t\treturn d.consumeToken(MessageOpen, 1, 0), nil\n\t\t\tdefault:\n\t\t\t\treturn d.parseScalar()\n\t\t\t}\n\t\t}\n\t}\n\n\tline, column := d.Position(len(d.orig) - len(d.in))\n\tpanic(fmt.Sprintf(\"Decoder.parseNext: bug at handling line %d:%d with lastKind=%v\", line, column, lastKind))\n}\n\nvar otherCloseChar = map[byte]byte{\n\t'}': '>',\n\t'>': '}',\n}\n\n// currentOpenKind indicates whether current position is inside a message, list\n// or top-level message by returning MessageOpen, ListOpen or bof respectively.\n// If the returned kind is either a MessageOpen or ListOpen, it also returns the\n// corresponding closing character.\nfunc (d *Decoder) currentOpenKind() (Kind, byte) {\n\tif len(d.openStack) == 0 {\n\t\treturn bof, 0\n\t}\n\topenCh := d.openStack[len(d.openStack)-1]\n\tswitch openCh {\n\tcase '{':\n\t\treturn MessageOpen, '}'\n\tcase '<':\n\t\treturn MessageOpen, '>'\n\tcase '[':\n\t\treturn ListOpen, ']'\n\t}\n\tpanic(fmt.Sprintf(\"Decoder: openStack contains invalid byte %c\", openCh))\n}\n\nfunc (d *Decoder) pushOpenStack(ch byte) {\n\td.openStack = append(d.openStack, ch)\n}\n\nfunc (d *Decoder) popOpenStack() {\n\td.openStack = d.openStack[:len(d.openStack)-1]\n}\n\n// parseFieldName parses field name and separator.\nfunc (d *Decoder) parseFieldName() (tok Token, err error) {\n\tdefer func() {\n\t\tif err == nil && d.tryConsumeChar(':') {\n\t\t\ttok.attrs |= hasSeparator\n\t\t}\n\t}()\n\n\t// Extension or Any type URL.\n\tif d.in[0] == '[' {\n\t\treturn d.parseTypeName()\n\t}\n\n\t// Identifier.\n\tif size := parseIdent(d.in, false); size > 0 {\n\t\treturn d.consumeToken(Name, size, uint8(IdentName)), nil\n\t}\n\n\t// Field number. Identify if input is a valid number that is not negative\n\t// and is decimal integer within 32-bit range.\n\tif num := parseNumber(d.in); num.size > 0 {\n\t\tstr := num.string(d.in)\n\t\tif !num.neg && num.kind == numDec {\n\t\t\tif _, err := strconv.ParseInt(str, 10, 32); err == nil {\n\t\t\t\treturn d.consumeToken(Name, num.size, uint8(FieldNumber)), nil\n\t\t\t}\n\t\t}\n\t\treturn Token{}, d.newSyntaxError(\"invalid field number: %s\", str)\n\t}\n\n\treturn Token{}, d.newSyntaxError(\"invalid field name: %s\", errId(d.in))\n}\n\n// parseTypeName parses Any type URL or extension field name. The name is\n// enclosed in [ and ] characters. The C++ parser does not handle many legal URL\n// strings. This implementation is more liberal and allows for the pattern\n// ^[-_a-zA-Z0-9]+([./][-_a-zA-Z0-9]+)*`). Whitespaces and comments are allowed\n// in between [ ], '.', '/' and the sub names.\nfunc (d *Decoder) parseTypeName() (Token, error) {\n\tstartPos := len(d.orig) - len(d.in)\n\t// Use alias s to advance first in order to use d.in for error handling.\n\t// Caller already checks for [ as first character.\n\ts := consume(d.in[1:], 0)\n\tif len(s) == 0 {\n\t\treturn Token{}, ErrUnexpectedEOF\n\t}\n\n\tvar name []byte\n\tfor len(s) > 0 && isTypeNameChar(s[0]) {\n\t\tname = append(name, s[0])\n\t\ts = s[1:]\n\t}\n\ts = consume(s, 0)\n\n\tvar closed bool\n\tfor len(s) > 0 && !closed {\n\t\tswitch {\n\t\tcase s[0] == ']':\n\t\t\ts = s[1:]\n\t\t\tclosed = true\n\n\t\tcase s[0] == '/', s[0] == '.':\n\t\t\tif len(name) > 0 && (name[len(name)-1] == '/' || name[len(name)-1] == '.') {\n\t\t\t\treturn Token{}, d.newSyntaxError(\"invalid type URL/extension field name: %s\",\n\t\t\t\t\td.orig[startPos:len(d.orig)-len(s)+1])\n\t\t\t}\n\t\t\tname = append(name, s[0])\n\t\t\ts = s[1:]\n\t\t\ts = consume(s, 0)\n\t\t\tfor len(s) > 0 && isTypeNameChar(s[0]) {\n\t\t\t\tname = append(name, s[0])\n\t\t\t\ts = s[1:]\n\t\t\t}\n\t\t\ts = consume(s, 0)\n\n\t\tdefault:\n\t\t\treturn Token{}, d.newSyntaxError(\n\t\t\t\t\"invalid type URL/extension field name: %s\", d.orig[startPos:len(d.orig)-len(s)+1])\n\t\t}\n\t}\n\n\tif !closed {\n\t\treturn Token{}, ErrUnexpectedEOF\n\t}\n\n\t// First character cannot be '.'. Last character cannot be '.' or '/'.\n\tsize := len(name)\n\tif size == 0 || name[0] == '.' || name[size-1] == '.' || name[size-1] == '/' {\n\t\treturn Token{}, d.newSyntaxError(\"invalid type URL/extension field name: %s\",\n\t\t\td.orig[startPos:len(d.orig)-len(s)])\n\t}\n\n\td.in = s\n\tendPos := len(d.orig) - len(d.in)\n\td.consume(0)\n\n\treturn Token{\n\t\tkind:  Name,\n\t\tattrs: uint8(TypeName),\n\t\tpos:   startPos,\n\t\traw:   d.orig[startPos:endPos],\n\t\tstr:   string(name),\n\t}, nil\n}\n\nfunc isTypeNameChar(b byte) bool {\n\treturn (b == '-' || b == '_' ||\n\t\t('0' <= b && b <= '9') ||\n\t\t('a' <= b && b <= 'z') ||\n\t\t('A' <= b && b <= 'Z'))\n}\n\nfunc isWhiteSpace(b byte) bool {\n\tswitch b {\n\tcase ' ', '\\n', '\\r', '\\t':\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\n// parseIdent parses an unquoted proto identifier and returns size.\n// If allowNeg is true, it allows '-' to be the first character in the\n// identifier. This is used when parsing literal values like -infinity, etc.\n// Regular expression matches an identifier: `^[_a-zA-Z][_a-zA-Z0-9]*`\nfunc parseIdent(input []byte, allowNeg bool) int {\n\tvar size int\n\n\ts := input\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\n\tif allowNeg && s[0] == '-' {\n\t\ts = s[1:]\n\t\tsize++\n\t\tif len(s) == 0 {\n\t\t\treturn 0\n\t\t}\n\t}\n\n\tswitch {\n\tcase s[0] == '_',\n\t\t'a' <= s[0] && s[0] <= 'z',\n\t\t'A' <= s[0] && s[0] <= 'Z':\n\t\ts = s[1:]\n\t\tsize++\n\tdefault:\n\t\treturn 0\n\t}\n\n\tfor len(s) > 0 && (s[0] == '_' ||\n\t\t'a' <= s[0] && s[0] <= 'z' ||\n\t\t'A' <= s[0] && s[0] <= 'Z' ||\n\t\t'0' <= s[0] && s[0] <= '9') {\n\t\ts = s[1:]\n\t\tsize++\n\t}\n\n\tif len(s) > 0 && !isDelim(s[0]) {\n\t\treturn 0\n\t}\n\n\treturn size\n}\n\n// parseScalar parses for a string, literal or number value.\nfunc (d *Decoder) parseScalar() (Token, error) {\n\tif d.in[0] == '\"' || d.in[0] == '\\'' {\n\t\treturn d.parseStringValue()\n\t}\n\n\tif tok, ok := d.parseLiteralValue(); ok {\n\t\treturn tok, nil\n\t}\n\n\tif tok, ok := d.parseNumberValue(); ok {\n\t\treturn tok, nil\n\t}\n\n\treturn Token{}, d.newSyntaxError(\"invalid scalar value: %s\", errId(d.in))\n}\n\n// parseLiteralValue parses a literal value. A literal value is used for\n// bools, special floats and enums. This function simply identifies that the\n// field value is a literal.\nfunc (d *Decoder) parseLiteralValue() (Token, bool) {\n\tsize := parseIdent(d.in, true)\n\tif size == 0 {\n\t\treturn Token{}, false\n\t}\n\treturn d.consumeToken(Scalar, size, literalValue), true\n}\n\n// consumeToken constructs a Token for given Kind from d.in and consumes given\n// size-length from it.\nfunc (d *Decoder) consumeToken(kind Kind, size int, attrs uint8) Token {\n\t// Important to compute raw and pos before consuming.\n\ttok := Token{\n\t\tkind:  kind,\n\t\tattrs: attrs,\n\t\tpos:   len(d.orig) - len(d.in),\n\t\traw:   d.in[:size],\n\t}\n\td.consume(size)\n\treturn tok\n}\n\n// newSyntaxError returns a syntax error with line and column information for\n// current position.\nfunc (d *Decoder) newSyntaxError(f string, x ...any) error {\n\te := errors.New(f, x...)\n\tline, column := d.Position(len(d.orig) - len(d.in))\n\treturn errors.New(\"syntax error (line %d:%d): %v\", line, column, e)\n}\n\n// Position returns line and column number of given index of the original input.\n// It will panic if index is out of range.\nfunc (d *Decoder) Position(idx int) (line int, column int) {\n\tb := d.orig[:idx]\n\tline = bytes.Count(b, []byte(\"\\n\")) + 1\n\tif i := bytes.LastIndexByte(b, '\\n'); i >= 0 {\n\t\tb = b[i+1:]\n\t}\n\tcolumn = utf8.RuneCount(b) + 1 // ignore multi-rune characters\n\treturn line, column\n}\n\nfunc (d *Decoder) tryConsumeChar(c byte) bool {\n\tif len(d.in) > 0 && d.in[0] == c {\n\t\td.consume(1)\n\t\treturn true\n\t}\n\treturn false\n}\n\n// consume consumes n bytes of input and any subsequent whitespace or comments.\nfunc (d *Decoder) consume(n int) {\n\td.in = consume(d.in, n)\n\treturn\n}\n\n// consume consumes n bytes of input and any subsequent whitespace or comments.\nfunc consume(b []byte, n int) []byte {\n\tb = b[n:]\n\tfor len(b) > 0 {\n\t\tswitch b[0] {\n\t\tcase ' ', '\\n', '\\r', '\\t':\n\t\t\tb = b[1:]\n\t\tcase '#':\n\t\t\tif i := bytes.IndexByte(b, '\\n'); i >= 0 {\n\t\t\t\tb = b[i+len(\"\\n\"):]\n\t\t\t} else {\n\t\t\t\tb = nil\n\t\t\t}\n\t\tdefault:\n\t\t\treturn b\n\t\t}\n\t}\n\treturn b\n}\n\n// errId extracts a byte sequence that looks like an invalid ID\n// (for the purposes of error reporting).\nfunc errId(seq []byte) []byte {\n\tconst maxLen = 32\n\tfor i := 0; i < len(seq); {\n\t\tif i > maxLen {\n\t\t\treturn append(seq[:i:i], \"…\"...)\n\t\t}\n\t\tr, size := utf8.DecodeRune(seq[i:])\n\t\tif r > utf8.RuneSelf || (r != '/' && isDelim(byte(r))) {\n\t\t\tif i == 0 {\n\t\t\t\t// Either the first byte is invalid UTF-8 or a\n\t\t\t\t// delimiter, or the first rune is non-ASCII.\n\t\t\t\t// Return it as-is.\n\t\t\t\ti = size\n\t\t\t}\n\t\t\treturn seq[:i:i]\n\t\t}\n\t\ti += size\n\t}\n\t// No delimiter found.\n\treturn seq\n}\n\n// isDelim returns true if given byte is a delimiter character.\nfunc isDelim(c byte) bool {\n\treturn !(c == '-' || c == '+' || c == '.' || c == '_' ||\n\t\t('a' <= c && c <= 'z') ||\n\t\t('A' <= c && c <= 'Z') ||\n\t\t('0' <= c && c <= '9'))\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/encoding/text/decode_number.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage text\n\n// parseNumberValue parses a number from the input and returns a Token object.\nfunc (d *Decoder) parseNumberValue() (Token, bool) {\n\tin := d.in\n\tnum := parseNumber(in)\n\tif num.size == 0 {\n\t\treturn Token{}, false\n\t}\n\tnumAttrs := num.kind\n\tif num.neg {\n\t\tnumAttrs |= isNegative\n\t}\n\ttok := Token{\n\t\tkind:     Scalar,\n\t\tattrs:    numberValue,\n\t\tpos:      len(d.orig) - len(d.in),\n\t\traw:      d.in[:num.size],\n\t\tstr:      num.string(d.in),\n\t\tnumAttrs: numAttrs,\n\t}\n\td.consume(num.size)\n\treturn tok, true\n}\n\nconst (\n\tnumDec uint8 = (1 << iota) / 2\n\tnumHex\n\tnumOct\n\tnumFloat\n)\n\n// number is the result of parsing out a valid number from parseNumber. It\n// contains data for doing float or integer conversion via the strconv package\n// in conjunction with the input bytes.\ntype number struct {\n\tkind uint8\n\tneg  bool\n\tsize int\n\t// if neg, this is the length of whitespace and comments between\n\t// the minus sign and the rest fo the number literal\n\tsep int\n}\n\nfunc (num number) string(data []byte) string {\n\tstrSize := num.size\n\tlast := num.size - 1\n\tif num.kind == numFloat && (data[last] == 'f' || data[last] == 'F') {\n\t\tstrSize = last\n\t}\n\tif num.neg && num.sep > 0 {\n\t\t// strip whitespace/comments between negative sign and the rest\n\t\tstrLen := strSize - num.sep\n\t\tstr := make([]byte, strLen)\n\t\tstr[0] = data[0]\n\t\tcopy(str[1:], data[num.sep+1:strSize])\n\t\treturn string(str)\n\t}\n\treturn string(data[:strSize])\n\n}\n\n// parseNumber constructs a number object from given input. It allows for the\n// following patterns:\n//\n//\tinteger: ^-?([1-9][0-9]*|0[xX][0-9a-fA-F]+|0[0-7]*)\n//\tfloat: ^-?((0|[1-9][0-9]*)?([.][0-9]*)?([eE][+-]?[0-9]+)?[fF]?)\n//\n// It also returns the number of parsed bytes for the given number, 0 if it is\n// not a number.\nfunc parseNumber(input []byte) number {\n\tkind := numDec\n\tvar size int\n\tvar neg bool\n\n\ts := input\n\tif len(s) == 0 {\n\t\treturn number{}\n\t}\n\n\t// Optional -\n\tvar sep int\n\tif s[0] == '-' {\n\t\tneg = true\n\t\ts = s[1:]\n\t\tsize++\n\t\t// Consume any whitespace or comments between the\n\t\t// negative sign and the rest of the number\n\t\tlenBefore := len(s)\n\t\ts = consume(s, 0)\n\t\tsep = lenBefore - len(s)\n\t\tsize += sep\n\t\tif len(s) == 0 {\n\t\t\treturn number{}\n\t\t}\n\t}\n\n\tswitch {\n\tcase s[0] == '0':\n\t\tif len(s) > 1 {\n\t\t\tswitch {\n\t\t\tcase s[1] == 'x' || s[1] == 'X':\n\t\t\t\t// Parse as hex number.\n\t\t\t\tkind = numHex\n\t\t\t\tn := 2\n\t\t\t\ts = s[2:]\n\t\t\t\tfor len(s) > 0 && (('0' <= s[0] && s[0] <= '9') ||\n\t\t\t\t\t('a' <= s[0] && s[0] <= 'f') ||\n\t\t\t\t\t('A' <= s[0] && s[0] <= 'F')) {\n\t\t\t\t\ts = s[1:]\n\t\t\t\t\tn++\n\t\t\t\t}\n\t\t\t\tif n == 2 {\n\t\t\t\t\treturn number{}\n\t\t\t\t}\n\t\t\t\tsize += n\n\n\t\t\tcase '0' <= s[1] && s[1] <= '7':\n\t\t\t\t// Parse as octal number.\n\t\t\t\tkind = numOct\n\t\t\t\tn := 2\n\t\t\t\ts = s[2:]\n\t\t\t\tfor len(s) > 0 && '0' <= s[0] && s[0] <= '7' {\n\t\t\t\t\ts = s[1:]\n\t\t\t\t\tn++\n\t\t\t\t}\n\t\t\t\tsize += n\n\t\t\t}\n\n\t\t\tif kind&(numHex|numOct) > 0 {\n\t\t\t\tif len(s) > 0 && !isDelim(s[0]) {\n\t\t\t\t\treturn number{}\n\t\t\t\t}\n\t\t\t\treturn number{kind: kind, neg: neg, size: size, sep: sep}\n\t\t\t}\n\t\t}\n\t\ts = s[1:]\n\t\tsize++\n\n\tcase '1' <= s[0] && s[0] <= '9':\n\t\tn := 1\n\t\ts = s[1:]\n\t\tfor len(s) > 0 && '0' <= s[0] && s[0] <= '9' {\n\t\t\ts = s[1:]\n\t\t\tn++\n\t\t}\n\t\tsize += n\n\n\tcase s[0] == '.':\n\t\t// Set kind to numFloat to signify the intent to parse as float. And\n\t\t// that it needs to have other digits after '.'.\n\t\tkind = numFloat\n\n\tdefault:\n\t\treturn number{}\n\t}\n\n\t// . followed by 0 or more digits.\n\tif len(s) > 0 && s[0] == '.' {\n\t\tn := 1\n\t\ts = s[1:]\n\t\t// If decimal point was before any digits, it should be followed by\n\t\t// other digits.\n\t\tif len(s) == 0 && kind == numFloat {\n\t\t\treturn number{}\n\t\t}\n\t\tfor len(s) > 0 && '0' <= s[0] && s[0] <= '9' {\n\t\t\ts = s[1:]\n\t\t\tn++\n\t\t}\n\t\tsize += n\n\t\tkind = numFloat\n\t}\n\n\t// e or E followed by an optional - or + and 1 or more digits.\n\tif len(s) >= 2 && (s[0] == 'e' || s[0] == 'E') {\n\t\tkind = numFloat\n\t\ts = s[1:]\n\t\tn := 1\n\t\tif s[0] == '+' || s[0] == '-' {\n\t\t\ts = s[1:]\n\t\t\tn++\n\t\t\tif len(s) == 0 {\n\t\t\t\treturn number{}\n\t\t\t}\n\t\t}\n\t\tfor len(s) > 0 && '0' <= s[0] && s[0] <= '9' {\n\t\t\ts = s[1:]\n\t\t\tn++\n\t\t}\n\t\tsize += n\n\t}\n\n\t// Optional suffix f or F for floats.\n\tif len(s) > 0 && (s[0] == 'f' || s[0] == 'F') {\n\t\tkind = numFloat\n\t\ts = s[1:]\n\t\tsize++\n\t}\n\n\t// Check that next byte is a delimiter or it is at the end.\n\tif len(s) > 0 && !isDelim(s[0]) {\n\t\treturn number{}\n\t}\n\n\treturn number{kind: kind, neg: neg, size: size, sep: sep}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/encoding/text/decode_string.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage text\n\nimport (\n\t\"bytes\"\n\t\"strconv\"\n\t\"strings\"\n\t\"unicode\"\n\t\"unicode/utf16\"\n\t\"unicode/utf8\"\n\n\t\"google.golang.org/protobuf/internal/strs\"\n)\n\n// parseStringValue parses string field token.\n// This differs from parseString since the text format allows\n// multiple back-to-back string literals where they are semantically treated\n// as a single large string with all values concatenated.\n//\n// E.g., `\"foo\" \"bar\" \"baz\"` => \"foobarbaz\"\nfunc (d *Decoder) parseStringValue() (Token, error) {\n\t// Note that the ending quote is sufficient to unambiguously mark the end\n\t// of a string. Thus, the text grammar does not require intervening\n\t// whitespace or control characters in-between strings.\n\t// Thus, the following is valid:\n\t//\t`\"foo\"'bar'\"baz\"` => \"foobarbaz\"\n\tin0 := d.in\n\tvar ss []string\n\tfor len(d.in) > 0 && (d.in[0] == '\"' || d.in[0] == '\\'') {\n\t\ts, err := d.parseString()\n\t\tif err != nil {\n\t\t\treturn Token{}, err\n\t\t}\n\t\tss = append(ss, s)\n\t}\n\t// d.in already points to the end of the value at this point.\n\treturn Token{\n\t\tkind:  Scalar,\n\t\tattrs: stringValue,\n\t\tpos:   len(d.orig) - len(in0),\n\t\traw:   in0[:len(in0)-len(d.in)],\n\t\tstr:   strings.Join(ss, \"\"),\n\t}, nil\n}\n\n// parseString parses a string value enclosed in \" or '.\nfunc (d *Decoder) parseString() (string, error) {\n\tin := d.in\n\tif len(in) == 0 {\n\t\treturn \"\", ErrUnexpectedEOF\n\t}\n\tquote := in[0]\n\tin = in[1:]\n\ti := indexNeedEscapeInBytes(in)\n\tin, out := in[i:], in[:i:i] // set cap to prevent mutations\n\tfor len(in) > 0 {\n\t\tswitch r, n := utf8.DecodeRune(in); {\n\t\tcase r == utf8.RuneError && n == 1:\n\t\t\treturn \"\", d.newSyntaxError(\"invalid UTF-8 detected\")\n\t\tcase r == 0 || r == '\\n':\n\t\t\treturn \"\", d.newSyntaxError(\"invalid character %q in string\", r)\n\t\tcase r == rune(quote):\n\t\t\tin = in[1:]\n\t\t\td.consume(len(d.in) - len(in))\n\t\t\treturn string(out), nil\n\t\tcase r == '\\\\':\n\t\t\tif len(in) < 2 {\n\t\t\t\treturn \"\", ErrUnexpectedEOF\n\t\t\t}\n\t\t\tswitch r := in[1]; r {\n\t\t\tcase '\"', '\\'', '\\\\', '?':\n\t\t\t\tin, out = in[2:], append(out, r)\n\t\t\tcase 'a':\n\t\t\t\tin, out = in[2:], append(out, '\\a')\n\t\t\tcase 'b':\n\t\t\t\tin, out = in[2:], append(out, '\\b')\n\t\t\tcase 'n':\n\t\t\t\tin, out = in[2:], append(out, '\\n')\n\t\t\tcase 'r':\n\t\t\t\tin, out = in[2:], append(out, '\\r')\n\t\t\tcase 't':\n\t\t\t\tin, out = in[2:], append(out, '\\t')\n\t\t\tcase 'v':\n\t\t\t\tin, out = in[2:], append(out, '\\v')\n\t\t\tcase 'f':\n\t\t\t\tin, out = in[2:], append(out, '\\f')\n\t\t\tcase '0', '1', '2', '3', '4', '5', '6', '7':\n\t\t\t\t// One, two, or three octal characters.\n\t\t\t\tn := len(in[1:]) - len(bytes.TrimLeft(in[1:], \"01234567\"))\n\t\t\t\tif n > 3 {\n\t\t\t\t\tn = 3\n\t\t\t\t}\n\t\t\t\tv, err := strconv.ParseUint(string(in[1:1+n]), 8, 8)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn \"\", d.newSyntaxError(\"invalid octal escape code %q in string\", in[:1+n])\n\t\t\t\t}\n\t\t\t\tin, out = in[1+n:], append(out, byte(v))\n\t\t\tcase 'x':\n\t\t\t\t// One or two hexadecimal characters.\n\t\t\t\tn := len(in[2:]) - len(bytes.TrimLeft(in[2:], \"0123456789abcdefABCDEF\"))\n\t\t\t\tif n > 2 {\n\t\t\t\t\tn = 2\n\t\t\t\t}\n\t\t\t\tv, err := strconv.ParseUint(string(in[2:2+n]), 16, 8)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn \"\", d.newSyntaxError(\"invalid hex escape code %q in string\", in[:2+n])\n\t\t\t\t}\n\t\t\t\tin, out = in[2+n:], append(out, byte(v))\n\t\t\tcase 'u', 'U':\n\t\t\t\t// Four or eight hexadecimal characters\n\t\t\t\tn := 6\n\t\t\t\tif r == 'U' {\n\t\t\t\t\tn = 10\n\t\t\t\t}\n\t\t\t\tif len(in) < n {\n\t\t\t\t\treturn \"\", ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tv, err := strconv.ParseUint(string(in[2:n]), 16, 32)\n\t\t\t\tif utf8.MaxRune < v || err != nil {\n\t\t\t\t\treturn \"\", d.newSyntaxError(\"invalid Unicode escape code %q in string\", in[:n])\n\t\t\t\t}\n\t\t\t\tin = in[n:]\n\n\t\t\t\tr := rune(v)\n\t\t\t\tif utf16.IsSurrogate(r) {\n\t\t\t\t\tif len(in) < 6 {\n\t\t\t\t\t\treturn \"\", ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tv, err := strconv.ParseUint(string(in[2:6]), 16, 16)\n\t\t\t\t\tr = utf16.DecodeRune(r, rune(v))\n\t\t\t\t\tif in[0] != '\\\\' || in[1] != 'u' || r == unicode.ReplacementChar || err != nil {\n\t\t\t\t\t\treturn \"\", d.newSyntaxError(\"invalid Unicode escape code %q in string\", in[:6])\n\t\t\t\t\t}\n\t\t\t\t\tin = in[6:]\n\t\t\t\t}\n\t\t\t\tout = append(out, string(r)...)\n\t\t\tdefault:\n\t\t\t\treturn \"\", d.newSyntaxError(\"invalid escape code %q in string\", in[:2])\n\t\t\t}\n\t\tdefault:\n\t\t\ti := indexNeedEscapeInBytes(in[n:])\n\t\t\tin, out = in[n+i:], append(out, in[:n+i]...)\n\t\t}\n\t}\n\treturn \"\", ErrUnexpectedEOF\n}\n\n// indexNeedEscapeInString returns the index of the character that needs\n// escaping. If no characters need escaping, this returns the input length.\nfunc indexNeedEscapeInBytes(b []byte) int { return indexNeedEscapeInString(strs.UnsafeString(b)) }\n\n// UnmarshalString returns an unescaped string given a textproto string value.\n// String value needs to contain single or double quotes. This is only used by\n// internal/encoding/defval package for unmarshaling bytes.\nfunc UnmarshalString(s string) (string, error) {\n\td := NewDecoder([]byte(s))\n\treturn d.parseString()\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/encoding/text/decode_token.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage text\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"math\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"google.golang.org/protobuf/internal/flags\"\n)\n\n// Kind represents a token kind expressible in the textproto format.\ntype Kind uint8\n\n// Kind values.\nconst (\n\tInvalid Kind = iota\n\tEOF\n\tName   // Name indicates the field name.\n\tScalar // Scalar are scalar values, e.g. \"string\", 47, ENUM_LITERAL, true.\n\tMessageOpen\n\tMessageClose\n\tListOpen\n\tListClose\n\n\t// comma and semi-colon are only for parsing in between values and should not be exposed.\n\tcomma\n\tsemicolon\n\n\t// bof indicates beginning of file, which is the default token\n\t// kind at the beginning of parsing.\n\tbof = Invalid\n)\n\nfunc (t Kind) String() string {\n\tswitch t {\n\tcase Invalid:\n\t\treturn \"<invalid>\"\n\tcase EOF:\n\t\treturn \"eof\"\n\tcase Scalar:\n\t\treturn \"scalar\"\n\tcase Name:\n\t\treturn \"name\"\n\tcase MessageOpen:\n\t\treturn \"{\"\n\tcase MessageClose:\n\t\treturn \"}\"\n\tcase ListOpen:\n\t\treturn \"[\"\n\tcase ListClose:\n\t\treturn \"]\"\n\tcase comma:\n\t\treturn \",\"\n\tcase semicolon:\n\t\treturn \";\"\n\tdefault:\n\t\treturn fmt.Sprintf(\"<invalid:%v>\", uint8(t))\n\t}\n}\n\n// NameKind represents different types of field names.\ntype NameKind uint8\n\n// NameKind values.\nconst (\n\tIdentName NameKind = iota + 1\n\tTypeName\n\tFieldNumber\n)\n\nfunc (t NameKind) String() string {\n\tswitch t {\n\tcase IdentName:\n\t\treturn \"IdentName\"\n\tcase TypeName:\n\t\treturn \"TypeName\"\n\tcase FieldNumber:\n\t\treturn \"FieldNumber\"\n\tdefault:\n\t\treturn fmt.Sprintf(\"<invalid:%v>\", uint8(t))\n\t}\n}\n\n// Bit mask in Token.attrs to indicate if a Name token is followed by the\n// separator char ':'. The field name separator char is optional for message\n// field or repeated message field, but required for all other types. Decoder\n// simply indicates whether a Name token is followed by separator or not.  It is\n// up to the prototext package to validate.\nconst hasSeparator = 1 << 7\n\n// Scalar value types.\nconst (\n\tnumberValue = iota + 1\n\tstringValue\n\tliteralValue\n)\n\n// Bit mask in Token.numAttrs to indicate that the number is a negative.\nconst isNegative = 1 << 7\n\n// Token provides a parsed token kind and value. Values are provided by the\n// different accessor methods.\ntype Token struct {\n\t// Kind of the Token object.\n\tkind Kind\n\t// attrs contains metadata for the following Kinds:\n\t// Name: hasSeparator bit and one of NameKind.\n\t// Scalar: one of numberValue, stringValue, literalValue.\n\tattrs uint8\n\t// numAttrs contains metadata for numberValue:\n\t// - highest bit is whether negative or positive.\n\t// - lower bits indicate one of numDec, numHex, numOct, numFloat.\n\tnumAttrs uint8\n\t// pos provides the position of the token in the original input.\n\tpos int\n\t// raw bytes of the serialized token.\n\t// This is a subslice into the original input.\n\traw []byte\n\t// str contains parsed string for the following:\n\t// - stringValue of Scalar kind\n\t// - numberValue of Scalar kind\n\t// - TypeName of Name kind\n\tstr string\n}\n\n// Kind returns the token kind.\nfunc (t Token) Kind() Kind {\n\treturn t.kind\n}\n\n// RawString returns the read value in string.\nfunc (t Token) RawString() string {\n\treturn string(t.raw)\n}\n\n// Pos returns the token position from the input.\nfunc (t Token) Pos() int {\n\treturn t.pos\n}\n\n// NameKind returns IdentName, TypeName or FieldNumber.\n// It panics if type is not Name.\nfunc (t Token) NameKind() NameKind {\n\tif t.kind == Name {\n\t\treturn NameKind(t.attrs &^ hasSeparator)\n\t}\n\tpanic(fmt.Sprintf(\"Token is not a Name type: %s\", t.kind))\n}\n\n// HasSeparator returns true if the field name is followed by the separator char\n// ':', else false. It panics if type is not Name.\nfunc (t Token) HasSeparator() bool {\n\tif t.kind == Name {\n\t\treturn t.attrs&hasSeparator != 0\n\t}\n\tpanic(fmt.Sprintf(\"Token is not a Name type: %s\", t.kind))\n}\n\n// IdentName returns the value for IdentName type.\nfunc (t Token) IdentName() string {\n\tif t.kind == Name && t.attrs&uint8(IdentName) != 0 {\n\t\treturn string(t.raw)\n\t}\n\tpanic(fmt.Sprintf(\"Token is not an IdentName: %s:%s\", t.kind, NameKind(t.attrs&^hasSeparator)))\n}\n\n// TypeName returns the value for TypeName type.\nfunc (t Token) TypeName() string {\n\tif t.kind == Name && t.attrs&uint8(TypeName) != 0 {\n\t\treturn t.str\n\t}\n\tpanic(fmt.Sprintf(\"Token is not a TypeName: %s:%s\", t.kind, NameKind(t.attrs&^hasSeparator)))\n}\n\n// FieldNumber returns the value for FieldNumber type. It returns a\n// non-negative int32 value. Caller will still need to validate for the correct\n// field number range.\nfunc (t Token) FieldNumber() int32 {\n\tif t.kind != Name || t.attrs&uint8(FieldNumber) == 0 {\n\t\tpanic(fmt.Sprintf(\"Token is not a FieldNumber: %s:%s\", t.kind, NameKind(t.attrs&^hasSeparator)))\n\t}\n\t// Following should not return an error as it had already been called right\n\t// before this Token was constructed.\n\tnum, _ := strconv.ParseInt(string(t.raw), 10, 32)\n\treturn int32(num)\n}\n\n// String returns the string value for a Scalar type.\nfunc (t Token) String() (string, bool) {\n\tif t.kind != Scalar || t.attrs != stringValue {\n\t\treturn \"\", false\n\t}\n\treturn t.str, true\n}\n\n// Enum returns the literal value for a Scalar type for use as enum literals.\nfunc (t Token) Enum() (string, bool) {\n\tif t.kind != Scalar || t.attrs != literalValue || (len(t.raw) > 0 && t.raw[0] == '-') {\n\t\treturn \"\", false\n\t}\n\treturn string(t.raw), true\n}\n\n// Bool returns the bool value for a Scalar type.\nfunc (t Token) Bool() (bool, bool) {\n\tif t.kind != Scalar {\n\t\treturn false, false\n\t}\n\tswitch t.attrs {\n\tcase literalValue:\n\t\tif b, ok := boolLits[string(t.raw)]; ok {\n\t\t\treturn b, true\n\t\t}\n\tcase numberValue:\n\t\t// Unsigned integer representation of 0 or 1 is permitted: 00, 0x0, 01,\n\t\t// 0x1, etc.\n\t\tn, err := strconv.ParseUint(t.str, 0, 64)\n\t\tif err == nil {\n\t\t\tswitch n {\n\t\t\tcase 0:\n\t\t\t\treturn false, true\n\t\t\tcase 1:\n\t\t\t\treturn true, true\n\t\t\t}\n\t\t}\n\t}\n\treturn false, false\n}\n\n// These exact boolean literals are the ones supported in C++.\nvar boolLits = map[string]bool{\n\t\"t\":     true,\n\t\"true\":  true,\n\t\"True\":  true,\n\t\"f\":     false,\n\t\"false\": false,\n\t\"False\": false,\n}\n\n// Uint64 returns the uint64 value for a Scalar type.\nfunc (t Token) Uint64() (uint64, bool) {\n\tif t.kind != Scalar || t.attrs != numberValue ||\n\t\tt.numAttrs&isNegative > 0 || t.numAttrs&numFloat > 0 {\n\t\treturn 0, false\n\t}\n\tn, err := strconv.ParseUint(t.str, 0, 64)\n\tif err != nil {\n\t\treturn 0, false\n\t}\n\treturn n, true\n}\n\n// Uint32 returns the uint32 value for a Scalar type.\nfunc (t Token) Uint32() (uint32, bool) {\n\tif t.kind != Scalar || t.attrs != numberValue ||\n\t\tt.numAttrs&isNegative > 0 || t.numAttrs&numFloat > 0 {\n\t\treturn 0, false\n\t}\n\tn, err := strconv.ParseUint(t.str, 0, 32)\n\tif err != nil {\n\t\treturn 0, false\n\t}\n\treturn uint32(n), true\n}\n\n// Int64 returns the int64 value for a Scalar type.\nfunc (t Token) Int64() (int64, bool) {\n\tif t.kind != Scalar || t.attrs != numberValue || t.numAttrs&numFloat > 0 {\n\t\treturn 0, false\n\t}\n\tif n, err := strconv.ParseInt(t.str, 0, 64); err == nil {\n\t\treturn n, true\n\t}\n\t// C++ accepts large positive hex numbers as negative values.\n\t// This feature is here for proto1 backwards compatibility purposes.\n\tif flags.ProtoLegacy && (t.numAttrs == numHex) {\n\t\tif n, err := strconv.ParseUint(t.str, 0, 64); err == nil {\n\t\t\treturn int64(n), true\n\t\t}\n\t}\n\treturn 0, false\n}\n\n// Int32 returns the int32 value for a Scalar type.\nfunc (t Token) Int32() (int32, bool) {\n\tif t.kind != Scalar || t.attrs != numberValue || t.numAttrs&numFloat > 0 {\n\t\treturn 0, false\n\t}\n\tif n, err := strconv.ParseInt(t.str, 0, 32); err == nil {\n\t\treturn int32(n), true\n\t}\n\t// C++ accepts large positive hex numbers as negative values.\n\t// This feature is here for proto1 backwards compatibility purposes.\n\tif flags.ProtoLegacy && (t.numAttrs == numHex) {\n\t\tif n, err := strconv.ParseUint(t.str, 0, 32); err == nil {\n\t\t\treturn int32(n), true\n\t\t}\n\t}\n\treturn 0, false\n}\n\n// Float64 returns the float64 value for a Scalar type.\nfunc (t Token) Float64() (float64, bool) {\n\tif t.kind != Scalar {\n\t\treturn 0, false\n\t}\n\tswitch t.attrs {\n\tcase literalValue:\n\t\tif f, ok := floatLits[strings.ToLower(string(t.raw))]; ok {\n\t\t\treturn f, true\n\t\t}\n\tcase numberValue:\n\t\tn, err := strconv.ParseFloat(t.str, 64)\n\t\tif err == nil {\n\t\t\treturn n, true\n\t\t}\n\t\tnerr := err.(*strconv.NumError)\n\t\tif nerr.Err == strconv.ErrRange {\n\t\t\treturn n, true\n\t\t}\n\t}\n\treturn 0, false\n}\n\n// Float32 returns the float32 value for a Scalar type.\nfunc (t Token) Float32() (float32, bool) {\n\tif t.kind != Scalar {\n\t\treturn 0, false\n\t}\n\tswitch t.attrs {\n\tcase literalValue:\n\t\tif f, ok := floatLits[strings.ToLower(string(t.raw))]; ok {\n\t\t\treturn float32(f), true\n\t\t}\n\tcase numberValue:\n\t\tn, err := strconv.ParseFloat(t.str, 64)\n\t\tif err == nil {\n\t\t\t// Overflows are treated as (-)infinity.\n\t\t\treturn float32(n), true\n\t\t}\n\t\tnerr := err.(*strconv.NumError)\n\t\tif nerr.Err == strconv.ErrRange {\n\t\t\treturn float32(n), true\n\t\t}\n\t}\n\treturn 0, false\n}\n\n// These are the supported float literals which C++ permits case-insensitive\n// variants of these.\nvar floatLits = map[string]float64{\n\t\"nan\":       math.NaN(),\n\t\"inf\":       math.Inf(1),\n\t\"infinity\":  math.Inf(1),\n\t\"-inf\":      math.Inf(-1),\n\t\"-infinity\": math.Inf(-1),\n}\n\n// TokenEquals returns true if given Tokens are equal, else false.\nfunc TokenEquals(x, y Token) bool {\n\treturn x.kind == y.kind &&\n\t\tx.attrs == y.attrs &&\n\t\tx.numAttrs == y.numAttrs &&\n\t\tx.pos == y.pos &&\n\t\tbytes.Equal(x.raw, y.raw) &&\n\t\tx.str == y.str\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/encoding/text/doc.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package text implements the text format for protocol buffers.\n// This package has no semantic understanding for protocol buffers and is only\n// a parser and composer for the format.\n//\n// There is no formal specification for the protobuf text format, as such the\n// C++ implementation (see google::protobuf::TextFormat) is the reference\n// implementation of the text format.\n//\n// This package is neither a superset nor a subset of the C++ implementation.\n// This implementation permits a more liberal grammar in some cases to be\n// backwards compatible with the historical Go implementation.\n// Future parsings unique to Go should not be added.\n// Some grammars allowed by the C++ implementation are deliberately\n// not implemented here because they are considered a bug by the protobuf team\n// and should not be replicated.\n//\n// The Go implementation should implement a sufficient amount of the C++\n// grammar such that the default text serialization by C++ can be parsed by Go.\n// However, just because the C++ parser accepts some input does not mean that\n// the Go implementation should as well.\n//\n// The text format is almost a superset of JSON except:\n//   - message keys are not quoted strings, but identifiers\n//   - the top-level value must be a message without the delimiters\npackage text\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/encoding/text/encode.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage text\n\nimport (\n\t\"math\"\n\t\"math/bits\"\n\t\"strconv\"\n\t\"strings\"\n\t\"unicode/utf8\"\n\n\t\"google.golang.org/protobuf/internal/detrand\"\n\t\"google.golang.org/protobuf/internal/errors\"\n)\n\n// encType represents an encoding type.\ntype encType uint8\n\nconst (\n\t_ encType = (1 << iota) / 2\n\tname\n\tscalar\n\tmessageOpen\n\tmessageClose\n)\n\n// Encoder provides methods to write out textproto constructs and values. The user is\n// responsible for producing valid sequences of constructs and values.\ntype Encoder struct {\n\tencoderState\n\n\tindent      string\n\tdelims      [2]byte\n\toutputASCII bool\n}\n\ntype encoderState struct {\n\tlastType encType\n\tindents  []byte\n\tout      []byte\n}\n\n// NewEncoder returns an Encoder.\n//\n// If indent is a non-empty string, it causes every entry in a List or Message\n// to be preceded by the indent and trailed by a newline.\n//\n// If delims is not the zero value, it controls the delimiter characters used\n// for messages (e.g., \"{}\" vs \"<>\").\n//\n// If outputASCII is true, strings will be serialized in such a way that\n// multi-byte UTF-8 sequences are escaped. This property ensures that the\n// overall output is ASCII (as opposed to UTF-8).\nfunc NewEncoder(buf []byte, indent string, delims [2]byte, outputASCII bool) (*Encoder, error) {\n\te := &Encoder{\n\t\tencoderState: encoderState{out: buf},\n\t}\n\tif len(indent) > 0 {\n\t\tif strings.Trim(indent, \" \\t\") != \"\" {\n\t\t\treturn nil, errors.New(\"indent may only be composed of space and tab characters\")\n\t\t}\n\t\te.indent = indent\n\t}\n\tswitch delims {\n\tcase [2]byte{0, 0}:\n\t\te.delims = [2]byte{'{', '}'}\n\tcase [2]byte{'{', '}'}, [2]byte{'<', '>'}:\n\t\te.delims = delims\n\tdefault:\n\t\treturn nil, errors.New(\"delimiters may only be \\\"{}\\\" or \\\"<>\\\"\")\n\t}\n\te.outputASCII = outputASCII\n\n\treturn e, nil\n}\n\n// Bytes returns the content of the written bytes.\nfunc (e *Encoder) Bytes() []byte {\n\treturn e.out\n}\n\n// StartMessage writes out the '{' or '<' symbol.\nfunc (e *Encoder) StartMessage() {\n\te.prepareNext(messageOpen)\n\te.out = append(e.out, e.delims[0])\n}\n\n// EndMessage writes out the '}' or '>' symbol.\nfunc (e *Encoder) EndMessage() {\n\te.prepareNext(messageClose)\n\te.out = append(e.out, e.delims[1])\n}\n\n// WriteName writes out the field name and the separator ':'.\nfunc (e *Encoder) WriteName(s string) {\n\te.prepareNext(name)\n\te.out = append(e.out, s...)\n\te.out = append(e.out, ':')\n}\n\n// WriteBool writes out the given boolean value.\nfunc (e *Encoder) WriteBool(b bool) {\n\tif b {\n\t\te.WriteLiteral(\"true\")\n\t} else {\n\t\te.WriteLiteral(\"false\")\n\t}\n}\n\n// WriteString writes out the given string value.\nfunc (e *Encoder) WriteString(s string) {\n\te.prepareNext(scalar)\n\te.out = appendString(e.out, s, e.outputASCII)\n}\n\nfunc appendString(out []byte, in string, outputASCII bool) []byte {\n\tout = append(out, '\"')\n\ti := indexNeedEscapeInString(in)\n\tin, out = in[i:], append(out, in[:i]...)\n\tfor len(in) > 0 {\n\t\tswitch r, n := utf8.DecodeRuneInString(in); {\n\t\tcase r == utf8.RuneError && n == 1:\n\t\t\t// We do not report invalid UTF-8 because strings in the text format\n\t\t\t// are used to represent both the proto string and bytes type.\n\t\t\tr = rune(in[0])\n\t\t\tfallthrough\n\t\tcase r < ' ' || r == '\"' || r == '\\\\' || r == 0x7f:\n\t\t\tout = append(out, '\\\\')\n\t\t\tswitch r {\n\t\t\tcase '\"', '\\\\':\n\t\t\t\tout = append(out, byte(r))\n\t\t\tcase '\\n':\n\t\t\t\tout = append(out, 'n')\n\t\t\tcase '\\r':\n\t\t\t\tout = append(out, 'r')\n\t\t\tcase '\\t':\n\t\t\t\tout = append(out, 't')\n\t\t\tdefault:\n\t\t\t\tout = append(out, 'x')\n\t\t\t\tout = append(out, \"00\"[1+(bits.Len32(uint32(r))-1)/4:]...)\n\t\t\t\tout = strconv.AppendUint(out, uint64(r), 16)\n\t\t\t}\n\t\t\tin = in[n:]\n\t\tcase r >= utf8.RuneSelf && (outputASCII || r <= 0x009f):\n\t\t\tout = append(out, '\\\\')\n\t\t\tif r <= math.MaxUint16 {\n\t\t\t\tout = append(out, 'u')\n\t\t\t\tout = append(out, \"0000\"[1+(bits.Len32(uint32(r))-1)/4:]...)\n\t\t\t\tout = strconv.AppendUint(out, uint64(r), 16)\n\t\t\t} else {\n\t\t\t\tout = append(out, 'U')\n\t\t\t\tout = append(out, \"00000000\"[1+(bits.Len32(uint32(r))-1)/4:]...)\n\t\t\t\tout = strconv.AppendUint(out, uint64(r), 16)\n\t\t\t}\n\t\t\tin = in[n:]\n\t\tdefault:\n\t\t\ti := indexNeedEscapeInString(in[n:])\n\t\t\tin, out = in[n+i:], append(out, in[:n+i]...)\n\t\t}\n\t}\n\tout = append(out, '\"')\n\treturn out\n}\n\n// indexNeedEscapeInString returns the index of the character that needs\n// escaping. If no characters need escaping, this returns the input length.\nfunc indexNeedEscapeInString(s string) int {\n\tfor i := 0; i < len(s); i++ {\n\t\tif c := s[i]; c < ' ' || c == '\"' || c == '\\'' || c == '\\\\' || c >= 0x7f {\n\t\t\treturn i\n\t\t}\n\t}\n\treturn len(s)\n}\n\n// WriteFloat writes out the given float value for given bitSize.\nfunc (e *Encoder) WriteFloat(n float64, bitSize int) {\n\te.prepareNext(scalar)\n\te.out = appendFloat(e.out, n, bitSize)\n}\n\nfunc appendFloat(out []byte, n float64, bitSize int) []byte {\n\tswitch {\n\tcase math.IsNaN(n):\n\t\treturn append(out, \"nan\"...)\n\tcase math.IsInf(n, +1):\n\t\treturn append(out, \"inf\"...)\n\tcase math.IsInf(n, -1):\n\t\treturn append(out, \"-inf\"...)\n\tdefault:\n\t\treturn strconv.AppendFloat(out, n, 'g', -1, bitSize)\n\t}\n}\n\n// WriteInt writes out the given signed integer value.\nfunc (e *Encoder) WriteInt(n int64) {\n\te.prepareNext(scalar)\n\te.out = strconv.AppendInt(e.out, n, 10)\n}\n\n// WriteUint writes out the given unsigned integer value.\nfunc (e *Encoder) WriteUint(n uint64) {\n\te.prepareNext(scalar)\n\te.out = strconv.AppendUint(e.out, n, 10)\n}\n\n// WriteLiteral writes out the given string as a literal value without quotes.\n// This is used for writing enum literal strings.\nfunc (e *Encoder) WriteLiteral(s string) {\n\te.prepareNext(scalar)\n\te.out = append(e.out, s...)\n}\n\n// prepareNext adds possible space and indentation for the next value based\n// on last encType and indent option. It also updates e.lastType to next.\nfunc (e *Encoder) prepareNext(next encType) {\n\tdefer func() {\n\t\te.lastType = next\n\t}()\n\n\t// Single line.\n\tif len(e.indent) == 0 {\n\t\t// Add space after each field before the next one.\n\t\tif e.lastType&(scalar|messageClose) != 0 && next == name {\n\t\t\te.out = append(e.out, ' ')\n\t\t\t// Add a random extra space to make output unstable.\n\t\t\tif detrand.Bool() {\n\t\t\t\te.out = append(e.out, ' ')\n\t\t\t}\n\t\t}\n\t\treturn\n\t}\n\n\t// Multi-line.\n\tswitch {\n\tcase e.lastType == name:\n\t\te.out = append(e.out, ' ')\n\t\t// Add a random extra space after name: to make output unstable.\n\t\tif detrand.Bool() {\n\t\t\te.out = append(e.out, ' ')\n\t\t}\n\n\tcase e.lastType == messageOpen && next != messageClose:\n\t\te.indents = append(e.indents, e.indent...)\n\t\te.out = append(e.out, '\\n')\n\t\te.out = append(e.out, e.indents...)\n\n\tcase e.lastType&(scalar|messageClose) != 0:\n\t\tif next == messageClose {\n\t\t\te.indents = e.indents[:len(e.indents)-len(e.indent)]\n\t\t}\n\t\te.out = append(e.out, '\\n')\n\t\te.out = append(e.out, e.indents...)\n\t}\n}\n\n// Snapshot returns the current snapshot for use in Reset.\nfunc (e *Encoder) Snapshot() encoderState {\n\treturn e.encoderState\n}\n\n// Reset resets the Encoder to the given encoderState from a Snapshot.\nfunc (e *Encoder) Reset(es encoderState) {\n\te.encoderState = es\n}\n\n// AppendString appends the escaped form of the input string to b.\nfunc AppendString(b []byte, s string) []byte {\n\treturn appendString(b, s, false)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/errors/errors.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package errors implements functions to manipulate errors.\npackage errors\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\n\t\"google.golang.org/protobuf/internal/detrand\"\n)\n\n// Error is a sentinel matching all errors produced by this package.\nvar Error = errors.New(\"protobuf error\")\n\n// New formats a string according to the format specifier and arguments and\n// returns an error that has a \"proto\" prefix.\nfunc New(f string, x ...any) error {\n\treturn &prefixError{s: format(f, x...)}\n}\n\ntype prefixError struct{ s string }\n\nvar prefix = func() string {\n\t// Deliberately introduce instability into the error message string to\n\t// discourage users from performing error string comparisons.\n\tif detrand.Bool() {\n\t\treturn \"proto: \" // use non-breaking spaces (U+00a0)\n\t} else {\n\t\treturn \"proto: \" // use regular spaces (U+0020)\n\t}\n}()\n\nfunc (e *prefixError) Error() string {\n\treturn prefix + e.s\n}\n\nfunc (e *prefixError) Unwrap() error {\n\treturn Error\n}\n\n// Wrap returns an error that has a \"proto\" prefix, the formatted string described\n// by the format specifier and arguments, and a suffix of err. The error wraps err.\nfunc Wrap(err error, f string, x ...any) error {\n\treturn &wrapError{\n\t\ts:   format(f, x...),\n\t\terr: err,\n\t}\n}\n\ntype wrapError struct {\n\ts   string\n\terr error\n}\n\nfunc (e *wrapError) Error() string {\n\treturn format(\"%v%v: %v\", prefix, e.s, e.err)\n}\n\nfunc (e *wrapError) Unwrap() error {\n\treturn e.err\n}\n\nfunc (e *wrapError) Is(target error) bool {\n\treturn target == Error\n}\n\nfunc format(f string, x ...any) string {\n\t// avoid \"proto: \" prefix when chaining\n\tfor i := 0; i < len(x); i++ {\n\t\tswitch e := x[i].(type) {\n\t\tcase *prefixError:\n\t\t\tx[i] = e.s\n\t\tcase *wrapError:\n\t\t\tx[i] = format(\"%v: %v\", e.s, e.err)\n\t\t}\n\t}\n\treturn fmt.Sprintf(f, x...)\n}\n\nfunc InvalidUTF8(name string) error {\n\treturn New(\"field %v contains invalid UTF-8\", name)\n}\n\nfunc RequiredNotSet(name string) error {\n\treturn New(\"required field %v not set\", name)\n}\n\ntype SizeMismatchError struct {\n\tCalculated, Measured int\n}\n\nfunc (e *SizeMismatchError) Error() string {\n\treturn fmt.Sprintf(\"size mismatch (see https://github.com/golang/protobuf/issues/1609): calculated=%d, measured=%d\", e.Calculated, e.Measured)\n}\n\nfunc MismatchedSizeCalculation(calculated, measured int) error {\n\treturn &SizeMismatchError{\n\t\tCalculated: calculated,\n\t\tMeasured:   measured,\n\t}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/errors/is_go112.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build !go1.13\n// +build !go1.13\n\npackage errors\n\nimport \"reflect\"\n\n// Is is a copy of Go 1.13's errors.Is for use with older Go versions.\nfunc Is(err, target error) bool {\n\tif target == nil {\n\t\treturn err == target\n\t}\n\n\tisComparable := reflect.TypeOf(target).Comparable()\n\tfor {\n\t\tif isComparable && err == target {\n\t\t\treturn true\n\t\t}\n\t\tif x, ok := err.(interface{ Is(error) bool }); ok && x.Is(target) {\n\t\t\treturn true\n\t\t}\n\t\tif err = unwrap(err); err == nil {\n\t\t\treturn false\n\t\t}\n\t}\n}\n\nfunc unwrap(err error) error {\n\tu, ok := err.(interface {\n\t\tUnwrap() error\n\t})\n\tif !ok {\n\t\treturn nil\n\t}\n\treturn u.Unwrap()\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/errors/is_go113.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build go1.13\n// +build go1.13\n\npackage errors\n\nimport \"errors\"\n\n// Is is errors.Is.\nfunc Is(err, target error) bool { return errors.Is(err, target) }\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/filedesc/build.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package filedesc provides functionality for constructing descriptors.\n//\n// The types in this package implement interfaces in the protoreflect package\n// related to protobuf descripriptors.\npackage filedesc\n\nimport (\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/genid\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/reflect/protoregistry\"\n)\n\n// Builder construct a protoreflect.FileDescriptor from the raw descriptor.\ntype Builder struct {\n\t// GoPackagePath is the Go package path that is invoking this builder.\n\tGoPackagePath string\n\n\t// RawDescriptor is the wire-encoded bytes of FileDescriptorProto\n\t// and must be populated.\n\tRawDescriptor []byte\n\n\t// NumEnums is the total number of enums declared in the file.\n\tNumEnums int32\n\t// NumMessages is the total number of messages declared in the file.\n\t// It includes the implicit message declarations for map entries.\n\tNumMessages int32\n\t// NumExtensions is the total number of extensions declared in the file.\n\tNumExtensions int32\n\t// NumServices is the total number of services declared in the file.\n\tNumServices int32\n\n\t// TypeResolver resolves extension field types for descriptor options.\n\t// If nil, it uses protoregistry.GlobalTypes.\n\tTypeResolver interface {\n\t\tprotoregistry.ExtensionTypeResolver\n\t}\n\n\t// FileRegistry is use to lookup file, enum, and message dependencies.\n\t// Once constructed, the file descriptor is registered here.\n\t// If nil, it uses protoregistry.GlobalFiles.\n\tFileRegistry interface {\n\t\tFindFileByPath(string) (protoreflect.FileDescriptor, error)\n\t\tFindDescriptorByName(protoreflect.FullName) (protoreflect.Descriptor, error)\n\t\tRegisterFile(protoreflect.FileDescriptor) error\n\t}\n}\n\n// resolverByIndex is an interface Builder.FileRegistry may implement.\n// If so, it permits looking up an enum or message dependency based on the\n// sub-list and element index into filetype.Builder.DependencyIndexes.\ntype resolverByIndex interface {\n\tFindEnumByIndex(int32, int32, []Enum, []Message) protoreflect.EnumDescriptor\n\tFindMessageByIndex(int32, int32, []Enum, []Message) protoreflect.MessageDescriptor\n}\n\n// Indexes of each sub-list in filetype.Builder.DependencyIndexes.\nconst (\n\tlistFieldDeps int32 = iota\n\tlistExtTargets\n\tlistExtDeps\n\tlistMethInDeps\n\tlistMethOutDeps\n)\n\n// Out is the output of the Builder.\ntype Out struct {\n\tFile protoreflect.FileDescriptor\n\n\t// Enums is all enum descriptors in \"flattened ordering\".\n\tEnums []Enum\n\t// Messages is all message descriptors in \"flattened ordering\".\n\t// It includes the implicit message declarations for map entries.\n\tMessages []Message\n\t// Extensions is all extension descriptors in \"flattened ordering\".\n\tExtensions []Extension\n\t// Service is all service descriptors in \"flattened ordering\".\n\tServices []Service\n}\n\n// Build constructs a FileDescriptor given the parameters set in Builder.\n// It assumes that the inputs are well-formed and panics if any inconsistencies\n// are encountered.\n//\n// If NumEnums+NumMessages+NumExtensions+NumServices is zero,\n// then Build automatically derives them from the raw descriptor.\nfunc (db Builder) Build() (out Out) {\n\t// Populate the counts if uninitialized.\n\tif db.NumEnums+db.NumMessages+db.NumExtensions+db.NumServices == 0 {\n\t\tdb.unmarshalCounts(db.RawDescriptor, true)\n\t}\n\n\t// Initialize resolvers and registries if unpopulated.\n\tif db.TypeResolver == nil {\n\t\tdb.TypeResolver = protoregistry.GlobalTypes\n\t}\n\tif db.FileRegistry == nil {\n\t\tdb.FileRegistry = protoregistry.GlobalFiles\n\t}\n\n\tfd := newRawFile(db)\n\tout.File = fd\n\tout.Enums = fd.allEnums\n\tout.Messages = fd.allMessages\n\tout.Extensions = fd.allExtensions\n\tout.Services = fd.allServices\n\n\tif err := db.FileRegistry.RegisterFile(fd); err != nil {\n\t\tpanic(err)\n\t}\n\treturn out\n}\n\n// unmarshalCounts counts the number of enum, message, extension, and service\n// declarations in the raw message, which is either a FileDescriptorProto\n// or a MessageDescriptorProto depending on whether isFile is set.\nfunc (db *Builder) unmarshalCounts(b []byte, isFile bool) {\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tif isFile {\n\t\t\t\tswitch num {\n\t\t\t\tcase genid.FileDescriptorProto_EnumType_field_number:\n\t\t\t\t\tdb.NumEnums++\n\t\t\t\tcase genid.FileDescriptorProto_MessageType_field_number:\n\t\t\t\t\tdb.unmarshalCounts(v, false)\n\t\t\t\t\tdb.NumMessages++\n\t\t\t\tcase genid.FileDescriptorProto_Extension_field_number:\n\t\t\t\t\tdb.NumExtensions++\n\t\t\t\tcase genid.FileDescriptorProto_Service_field_number:\n\t\t\t\t\tdb.NumServices++\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tswitch num {\n\t\t\t\tcase genid.DescriptorProto_EnumType_field_number:\n\t\t\t\t\tdb.NumEnums++\n\t\t\t\tcase genid.DescriptorProto_NestedType_field_number:\n\t\t\t\t\tdb.unmarshalCounts(v, false)\n\t\t\t\t\tdb.NumMessages++\n\t\t\t\tcase genid.DescriptorProto_Extension_field_number:\n\t\t\t\t\tdb.NumExtensions++\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/filedesc/desc.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage filedesc\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n\n\t\"google.golang.org/protobuf/internal/descfmt\"\n\t\"google.golang.org/protobuf/internal/descopts\"\n\t\"google.golang.org/protobuf/internal/encoding/defval\"\n\t\"google.golang.org/protobuf/internal/encoding/messageset\"\n\t\"google.golang.org/protobuf/internal/genid\"\n\t\"google.golang.org/protobuf/internal/pragma\"\n\t\"google.golang.org/protobuf/internal/strs\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/reflect/protoregistry\"\n)\n\n// Edition is an Enum for proto2.Edition\ntype Edition int32\n\n// These values align with the value of Enum in descriptor.proto which allows\n// direct conversion between the proto enum and this enum.\nconst (\n\tEditionUnknown     Edition = 0\n\tEditionProto2      Edition = 998\n\tEditionProto3      Edition = 999\n\tEdition2023        Edition = 1000\n\tEditionUnsupported Edition = 100000\n)\n\n// The types in this file may have a suffix:\n//\t• L0: Contains fields common to all descriptors (except File) and\n//\tmust be initialized up front.\n//\t• L1: Contains fields specific to a descriptor and\n//\tmust be initialized up front. If the associated proto uses Editions, the\n//  Editions features must always be resolved. If not explicitly set, the\n//  appropriate default must be resolved and set.\n//\t• L2: Contains fields that are lazily initialized when constructing\n//\tfrom the raw file descriptor. When constructing as a literal, the L2\n//\tfields must be initialized up front.\n//\n// The types are exported so that packages like reflect/protodesc can\n// directly construct descriptors.\n\ntype (\n\tFile struct {\n\t\tfileRaw\n\t\tL1 FileL1\n\n\t\tonce uint32     // atomically set if L2 is valid\n\t\tmu   sync.Mutex // protects L2\n\t\tL2   *FileL2\n\t}\n\tFileL1 struct {\n\t\tSyntax  protoreflect.Syntax\n\t\tEdition Edition // Only used if Syntax == Editions\n\t\tPath    string\n\t\tPackage protoreflect.FullName\n\n\t\tEnums      Enums\n\t\tMessages   Messages\n\t\tExtensions Extensions\n\t\tServices   Services\n\n\t\tEditionFeatures EditionFeatures\n\t}\n\tFileL2 struct {\n\t\tOptions   func() protoreflect.ProtoMessage\n\t\tImports   FileImports\n\t\tLocations SourceLocations\n\t}\n\n\tEditionFeatures struct {\n\t\t// IsFieldPresence is true if field_presence is EXPLICIT\n\t\t// https://protobuf.dev/editions/features/#field_presence\n\t\tIsFieldPresence bool\n\t\t// IsFieldPresence is true if field_presence is LEGACY_REQUIRED\n\t\t// https://protobuf.dev/editions/features/#field_presence\n\t\tIsLegacyRequired bool\n\t\t// IsOpenEnum is true if enum_type is OPEN\n\t\t// https://protobuf.dev/editions/features/#enum_type\n\t\tIsOpenEnum bool\n\t\t// IsPacked is true if repeated_field_encoding is PACKED\n\t\t// https://protobuf.dev/editions/features/#repeated_field_encoding\n\t\tIsPacked bool\n\t\t// IsUTF8Validated is true if utf_validation is VERIFY\n\t\t// https://protobuf.dev/editions/features/#utf8_validation\n\t\tIsUTF8Validated bool\n\t\t// IsDelimitedEncoded is true if message_encoding is DELIMITED\n\t\t// https://protobuf.dev/editions/features/#message_encoding\n\t\tIsDelimitedEncoded bool\n\t\t// IsJSONCompliant is true if json_format is ALLOW\n\t\t// https://protobuf.dev/editions/features/#json_format\n\t\tIsJSONCompliant bool\n\t\t// GenerateLegacyUnmarshalJSON determines if the plugin generates the\n\t\t// UnmarshalJSON([]byte) error method for enums.\n\t\tGenerateLegacyUnmarshalJSON bool\n\t}\n)\n\nfunc (fd *File) ParentFile() protoreflect.FileDescriptor { return fd }\nfunc (fd *File) Parent() protoreflect.Descriptor         { return nil }\nfunc (fd *File) Index() int                              { return 0 }\nfunc (fd *File) Syntax() protoreflect.Syntax             { return fd.L1.Syntax }\n\n// Not exported and just used to reconstruct the original FileDescriptor proto\nfunc (fd *File) Edition() int32                  { return int32(fd.L1.Edition) }\nfunc (fd *File) Name() protoreflect.Name         { return fd.L1.Package.Name() }\nfunc (fd *File) FullName() protoreflect.FullName { return fd.L1.Package }\nfunc (fd *File) IsPlaceholder() bool             { return false }\nfunc (fd *File) Options() protoreflect.ProtoMessage {\n\tif f := fd.lazyInit().Options; f != nil {\n\t\treturn f()\n\t}\n\treturn descopts.File\n}\nfunc (fd *File) Path() string                                  { return fd.L1.Path }\nfunc (fd *File) Package() protoreflect.FullName                { return fd.L1.Package }\nfunc (fd *File) Imports() protoreflect.FileImports             { return &fd.lazyInit().Imports }\nfunc (fd *File) Enums() protoreflect.EnumDescriptors           { return &fd.L1.Enums }\nfunc (fd *File) Messages() protoreflect.MessageDescriptors     { return &fd.L1.Messages }\nfunc (fd *File) Extensions() protoreflect.ExtensionDescriptors { return &fd.L1.Extensions }\nfunc (fd *File) Services() protoreflect.ServiceDescriptors     { return &fd.L1.Services }\nfunc (fd *File) SourceLocations() protoreflect.SourceLocations { return &fd.lazyInit().Locations }\nfunc (fd *File) Format(s fmt.State, r rune)                    { descfmt.FormatDesc(s, r, fd) }\nfunc (fd *File) ProtoType(protoreflect.FileDescriptor)         {}\nfunc (fd *File) ProtoInternal(pragma.DoNotImplement)           {}\n\nfunc (fd *File) lazyInit() *FileL2 {\n\tif atomic.LoadUint32(&fd.once) == 0 {\n\t\tfd.lazyInitOnce()\n\t}\n\treturn fd.L2\n}\n\nfunc (fd *File) lazyInitOnce() {\n\tfd.mu.Lock()\n\tif fd.L2 == nil {\n\t\tfd.lazyRawInit() // recursively initializes all L2 structures\n\t}\n\tatomic.StoreUint32(&fd.once, 1)\n\tfd.mu.Unlock()\n}\n\n// GoPackagePath is a pseudo-internal API for determining the Go package path\n// that this file descriptor is declared in.\n//\n// WARNING: This method is exempt from the compatibility promise and may be\n// removed in the future without warning.\nfunc (fd *File) GoPackagePath() string {\n\treturn fd.builder.GoPackagePath\n}\n\ntype (\n\tEnum struct {\n\t\tBase\n\t\tL1 EnumL1\n\t\tL2 *EnumL2 // protected by fileDesc.once\n\t}\n\tEnumL1 struct {\n\t\teagerValues bool // controls whether EnumL2.Values is already populated\n\n\t\tEditionFeatures EditionFeatures\n\t}\n\tEnumL2 struct {\n\t\tOptions        func() protoreflect.ProtoMessage\n\t\tValues         EnumValues\n\t\tReservedNames  Names\n\t\tReservedRanges EnumRanges\n\t}\n\n\tEnumValue struct {\n\t\tBase\n\t\tL1 EnumValueL1\n\t}\n\tEnumValueL1 struct {\n\t\tOptions func() protoreflect.ProtoMessage\n\t\tNumber  protoreflect.EnumNumber\n\t}\n)\n\nfunc (ed *Enum) Options() protoreflect.ProtoMessage {\n\tif f := ed.lazyInit().Options; f != nil {\n\t\treturn f()\n\t}\n\treturn descopts.Enum\n}\nfunc (ed *Enum) Values() protoreflect.EnumValueDescriptors {\n\tif ed.L1.eagerValues {\n\t\treturn &ed.L2.Values\n\t}\n\treturn &ed.lazyInit().Values\n}\nfunc (ed *Enum) ReservedNames() protoreflect.Names       { return &ed.lazyInit().ReservedNames }\nfunc (ed *Enum) ReservedRanges() protoreflect.EnumRanges { return &ed.lazyInit().ReservedRanges }\nfunc (ed *Enum) Format(s fmt.State, r rune)              { descfmt.FormatDesc(s, r, ed) }\nfunc (ed *Enum) ProtoType(protoreflect.EnumDescriptor)   {}\nfunc (ed *Enum) lazyInit() *EnumL2 {\n\ted.L0.ParentFile.lazyInit() // implicitly initializes L2\n\treturn ed.L2\n}\nfunc (ed *Enum) IsClosed() bool {\n\treturn !ed.L1.EditionFeatures.IsOpenEnum\n}\n\nfunc (ed *EnumValue) Options() protoreflect.ProtoMessage {\n\tif f := ed.L1.Options; f != nil {\n\t\treturn f()\n\t}\n\treturn descopts.EnumValue\n}\nfunc (ed *EnumValue) Number() protoreflect.EnumNumber            { return ed.L1.Number }\nfunc (ed *EnumValue) Format(s fmt.State, r rune)                 { descfmt.FormatDesc(s, r, ed) }\nfunc (ed *EnumValue) ProtoType(protoreflect.EnumValueDescriptor) {}\n\ntype (\n\tMessage struct {\n\t\tBase\n\t\tL1 MessageL1\n\t\tL2 *MessageL2 // protected by fileDesc.once\n\t}\n\tMessageL1 struct {\n\t\tEnums        Enums\n\t\tMessages     Messages\n\t\tExtensions   Extensions\n\t\tIsMapEntry   bool // promoted from google.protobuf.MessageOptions\n\t\tIsMessageSet bool // promoted from google.protobuf.MessageOptions\n\n\t\tEditionFeatures EditionFeatures\n\t}\n\tMessageL2 struct {\n\t\tOptions               func() protoreflect.ProtoMessage\n\t\tFields                Fields\n\t\tOneofs                Oneofs\n\t\tReservedNames         Names\n\t\tReservedRanges        FieldRanges\n\t\tRequiredNumbers       FieldNumbers // must be consistent with Fields.Cardinality\n\t\tExtensionRanges       FieldRanges\n\t\tExtensionRangeOptions []func() protoreflect.ProtoMessage // must be same length as ExtensionRanges\n\t}\n\n\tField struct {\n\t\tBase\n\t\tL1 FieldL1\n\t}\n\tFieldL1 struct {\n\t\tOptions          func() protoreflect.ProtoMessage\n\t\tNumber           protoreflect.FieldNumber\n\t\tCardinality      protoreflect.Cardinality // must be consistent with Message.RequiredNumbers\n\t\tKind             protoreflect.Kind\n\t\tStringName       stringName\n\t\tIsProto3Optional bool // promoted from google.protobuf.FieldDescriptorProto\n\t\tIsWeak           bool // promoted from google.protobuf.FieldOptions\n\t\tIsLazy           bool // promoted from google.protobuf.FieldOptions\n\t\tDefault          defaultValue\n\t\tContainingOneof  protoreflect.OneofDescriptor // must be consistent with Message.Oneofs.Fields\n\t\tEnum             protoreflect.EnumDescriptor\n\t\tMessage          protoreflect.MessageDescriptor\n\n\t\tEditionFeatures EditionFeatures\n\t}\n\n\tOneof struct {\n\t\tBase\n\t\tL1 OneofL1\n\t}\n\tOneofL1 struct {\n\t\tOptions func() protoreflect.ProtoMessage\n\t\tFields  OneofFields // must be consistent with Message.Fields.ContainingOneof\n\n\t\tEditionFeatures EditionFeatures\n\t}\n)\n\nfunc (md *Message) Options() protoreflect.ProtoMessage {\n\tif f := md.lazyInit().Options; f != nil {\n\t\treturn f()\n\t}\n\treturn descopts.Message\n}\nfunc (md *Message) IsMapEntry() bool                           { return md.L1.IsMapEntry }\nfunc (md *Message) Fields() protoreflect.FieldDescriptors      { return &md.lazyInit().Fields }\nfunc (md *Message) Oneofs() protoreflect.OneofDescriptors      { return &md.lazyInit().Oneofs }\nfunc (md *Message) ReservedNames() protoreflect.Names          { return &md.lazyInit().ReservedNames }\nfunc (md *Message) ReservedRanges() protoreflect.FieldRanges   { return &md.lazyInit().ReservedRanges }\nfunc (md *Message) RequiredNumbers() protoreflect.FieldNumbers { return &md.lazyInit().RequiredNumbers }\nfunc (md *Message) ExtensionRanges() protoreflect.FieldRanges  { return &md.lazyInit().ExtensionRanges }\nfunc (md *Message) ExtensionRangeOptions(i int) protoreflect.ProtoMessage {\n\tif f := md.lazyInit().ExtensionRangeOptions[i]; f != nil {\n\t\treturn f()\n\t}\n\treturn descopts.ExtensionRange\n}\nfunc (md *Message) Enums() protoreflect.EnumDescriptors           { return &md.L1.Enums }\nfunc (md *Message) Messages() protoreflect.MessageDescriptors     { return &md.L1.Messages }\nfunc (md *Message) Extensions() protoreflect.ExtensionDescriptors { return &md.L1.Extensions }\nfunc (md *Message) ProtoType(protoreflect.MessageDescriptor)      {}\nfunc (md *Message) Format(s fmt.State, r rune)                    { descfmt.FormatDesc(s, r, md) }\nfunc (md *Message) lazyInit() *MessageL2 {\n\tmd.L0.ParentFile.lazyInit() // implicitly initializes L2\n\treturn md.L2\n}\n\n// IsMessageSet is a pseudo-internal API for checking whether a message\n// should serialize in the proto1 message format.\n//\n// WARNING: This method is exempt from the compatibility promise and may be\n// removed in the future without warning.\nfunc (md *Message) IsMessageSet() bool {\n\treturn md.L1.IsMessageSet\n}\n\nfunc (fd *Field) Options() protoreflect.ProtoMessage {\n\tif f := fd.L1.Options; f != nil {\n\t\treturn f()\n\t}\n\treturn descopts.Field\n}\nfunc (fd *Field) Number() protoreflect.FieldNumber      { return fd.L1.Number }\nfunc (fd *Field) Cardinality() protoreflect.Cardinality { return fd.L1.Cardinality }\nfunc (fd *Field) Kind() protoreflect.Kind {\n\treturn fd.L1.Kind\n}\nfunc (fd *Field) HasJSONName() bool { return fd.L1.StringName.hasJSON }\nfunc (fd *Field) JSONName() string  { return fd.L1.StringName.getJSON(fd) }\nfunc (fd *Field) TextName() string  { return fd.L1.StringName.getText(fd) }\nfunc (fd *Field) HasPresence() bool {\n\tif fd.L1.Cardinality == protoreflect.Repeated {\n\t\treturn false\n\t}\n\treturn fd.IsExtension() || fd.L1.EditionFeatures.IsFieldPresence || fd.L1.Message != nil || fd.L1.ContainingOneof != nil\n}\nfunc (fd *Field) HasOptionalKeyword() bool {\n\treturn (fd.L0.ParentFile.L1.Syntax == protoreflect.Proto2 && fd.L1.Cardinality == protoreflect.Optional && fd.L1.ContainingOneof == nil) || fd.L1.IsProto3Optional\n}\nfunc (fd *Field) IsPacked() bool {\n\tif fd.L1.Cardinality != protoreflect.Repeated {\n\t\treturn false\n\t}\n\tswitch fd.L1.Kind {\n\tcase protoreflect.StringKind, protoreflect.BytesKind, protoreflect.MessageKind, protoreflect.GroupKind:\n\t\treturn false\n\t}\n\treturn fd.L1.EditionFeatures.IsPacked\n}\nfunc (fd *Field) IsExtension() bool { return false }\nfunc (fd *Field) IsWeak() bool      { return fd.L1.IsWeak }\nfunc (fd *Field) IsLazy() bool      { return fd.L1.IsLazy }\nfunc (fd *Field) IsList() bool      { return fd.Cardinality() == protoreflect.Repeated && !fd.IsMap() }\nfunc (fd *Field) IsMap() bool       { return fd.Message() != nil && fd.Message().IsMapEntry() }\nfunc (fd *Field) MapKey() protoreflect.FieldDescriptor {\n\tif !fd.IsMap() {\n\t\treturn nil\n\t}\n\treturn fd.Message().Fields().ByNumber(genid.MapEntry_Key_field_number)\n}\nfunc (fd *Field) MapValue() protoreflect.FieldDescriptor {\n\tif !fd.IsMap() {\n\t\treturn nil\n\t}\n\treturn fd.Message().Fields().ByNumber(genid.MapEntry_Value_field_number)\n}\nfunc (fd *Field) HasDefault() bool                                   { return fd.L1.Default.has }\nfunc (fd *Field) Default() protoreflect.Value                        { return fd.L1.Default.get(fd) }\nfunc (fd *Field) DefaultEnumValue() protoreflect.EnumValueDescriptor { return fd.L1.Default.enum }\nfunc (fd *Field) ContainingOneof() protoreflect.OneofDescriptor      { return fd.L1.ContainingOneof }\nfunc (fd *Field) ContainingMessage() protoreflect.MessageDescriptor {\n\treturn fd.L0.Parent.(protoreflect.MessageDescriptor)\n}\nfunc (fd *Field) Enum() protoreflect.EnumDescriptor {\n\treturn fd.L1.Enum\n}\nfunc (fd *Field) Message() protoreflect.MessageDescriptor {\n\tif fd.L1.IsWeak {\n\t\tif d, _ := protoregistry.GlobalFiles.FindDescriptorByName(fd.L1.Message.FullName()); d != nil {\n\t\t\treturn d.(protoreflect.MessageDescriptor)\n\t\t}\n\t}\n\treturn fd.L1.Message\n}\nfunc (fd *Field) IsMapEntry() bool {\n\tparent, ok := fd.L0.Parent.(protoreflect.MessageDescriptor)\n\treturn ok && parent.IsMapEntry()\n}\nfunc (fd *Field) Format(s fmt.State, r rune)             { descfmt.FormatDesc(s, r, fd) }\nfunc (fd *Field) ProtoType(protoreflect.FieldDescriptor) {}\n\n// EnforceUTF8 is a pseudo-internal API to determine whether to enforce UTF-8\n// validation for the string field. This exists for Google-internal use only\n// since proto3 did not enforce UTF-8 validity prior to the open-source release.\n// If this method does not exist, the default is to enforce valid UTF-8.\n//\n// WARNING: This method is exempt from the compatibility promise and may be\n// removed in the future without warning.\nfunc (fd *Field) EnforceUTF8() bool {\n\treturn fd.L1.EditionFeatures.IsUTF8Validated\n}\n\nfunc (od *Oneof) IsSynthetic() bool {\n\treturn od.L0.ParentFile.L1.Syntax == protoreflect.Proto3 && len(od.L1.Fields.List) == 1 && od.L1.Fields.List[0].HasOptionalKeyword()\n}\nfunc (od *Oneof) Options() protoreflect.ProtoMessage {\n\tif f := od.L1.Options; f != nil {\n\t\treturn f()\n\t}\n\treturn descopts.Oneof\n}\nfunc (od *Oneof) Fields() protoreflect.FieldDescriptors  { return &od.L1.Fields }\nfunc (od *Oneof) Format(s fmt.State, r rune)             { descfmt.FormatDesc(s, r, od) }\nfunc (od *Oneof) ProtoType(protoreflect.OneofDescriptor) {}\n\ntype (\n\tExtension struct {\n\t\tBase\n\t\tL1 ExtensionL1\n\t\tL2 *ExtensionL2 // protected by fileDesc.once\n\t}\n\tExtensionL1 struct {\n\t\tNumber          protoreflect.FieldNumber\n\t\tExtendee        protoreflect.MessageDescriptor\n\t\tCardinality     protoreflect.Cardinality\n\t\tKind            protoreflect.Kind\n\t\tIsLazy          bool\n\t\tEditionFeatures EditionFeatures\n\t}\n\tExtensionL2 struct {\n\t\tOptions          func() protoreflect.ProtoMessage\n\t\tStringName       stringName\n\t\tIsProto3Optional bool // promoted from google.protobuf.FieldDescriptorProto\n\t\tDefault          defaultValue\n\t\tEnum             protoreflect.EnumDescriptor\n\t\tMessage          protoreflect.MessageDescriptor\n\t}\n)\n\nfunc (xd *Extension) Options() protoreflect.ProtoMessage {\n\tif f := xd.lazyInit().Options; f != nil {\n\t\treturn f()\n\t}\n\treturn descopts.Field\n}\nfunc (xd *Extension) Number() protoreflect.FieldNumber      { return xd.L1.Number }\nfunc (xd *Extension) Cardinality() protoreflect.Cardinality { return xd.L1.Cardinality }\nfunc (xd *Extension) Kind() protoreflect.Kind               { return xd.L1.Kind }\nfunc (xd *Extension) HasJSONName() bool                     { return xd.lazyInit().StringName.hasJSON }\nfunc (xd *Extension) JSONName() string                      { return xd.lazyInit().StringName.getJSON(xd) }\nfunc (xd *Extension) TextName() string                      { return xd.lazyInit().StringName.getText(xd) }\nfunc (xd *Extension) HasPresence() bool                     { return xd.L1.Cardinality != protoreflect.Repeated }\nfunc (xd *Extension) HasOptionalKeyword() bool {\n\treturn (xd.L0.ParentFile.L1.Syntax == protoreflect.Proto2 && xd.L1.Cardinality == protoreflect.Optional) || xd.lazyInit().IsProto3Optional\n}\nfunc (xd *Extension) IsPacked() bool {\n\tif xd.L1.Cardinality != protoreflect.Repeated {\n\t\treturn false\n\t}\n\tswitch xd.L1.Kind {\n\tcase protoreflect.StringKind, protoreflect.BytesKind, protoreflect.MessageKind, protoreflect.GroupKind:\n\t\treturn false\n\t}\n\treturn xd.L1.EditionFeatures.IsPacked\n}\nfunc (xd *Extension) IsExtension() bool                      { return true }\nfunc (xd *Extension) IsWeak() bool                           { return false }\nfunc (xd *Extension) IsLazy() bool                           { return xd.L1.IsLazy }\nfunc (xd *Extension) IsList() bool                           { return xd.Cardinality() == protoreflect.Repeated }\nfunc (xd *Extension) IsMap() bool                            { return false }\nfunc (xd *Extension) MapKey() protoreflect.FieldDescriptor   { return nil }\nfunc (xd *Extension) MapValue() protoreflect.FieldDescriptor { return nil }\nfunc (xd *Extension) HasDefault() bool                       { return xd.lazyInit().Default.has }\nfunc (xd *Extension) Default() protoreflect.Value            { return xd.lazyInit().Default.get(xd) }\nfunc (xd *Extension) DefaultEnumValue() protoreflect.EnumValueDescriptor {\n\treturn xd.lazyInit().Default.enum\n}\nfunc (xd *Extension) ContainingOneof() protoreflect.OneofDescriptor     { return nil }\nfunc (xd *Extension) ContainingMessage() protoreflect.MessageDescriptor { return xd.L1.Extendee }\nfunc (xd *Extension) Enum() protoreflect.EnumDescriptor                 { return xd.lazyInit().Enum }\nfunc (xd *Extension) Message() protoreflect.MessageDescriptor           { return xd.lazyInit().Message }\nfunc (xd *Extension) Format(s fmt.State, r rune)                        { descfmt.FormatDesc(s, r, xd) }\nfunc (xd *Extension) ProtoType(protoreflect.FieldDescriptor)            {}\nfunc (xd *Extension) ProtoInternal(pragma.DoNotImplement)               {}\nfunc (xd *Extension) lazyInit() *ExtensionL2 {\n\txd.L0.ParentFile.lazyInit() // implicitly initializes L2\n\treturn xd.L2\n}\n\ntype (\n\tService struct {\n\t\tBase\n\t\tL1 ServiceL1\n\t\tL2 *ServiceL2 // protected by fileDesc.once\n\t}\n\tServiceL1 struct{}\n\tServiceL2 struct {\n\t\tOptions func() protoreflect.ProtoMessage\n\t\tMethods Methods\n\t}\n\n\tMethod struct {\n\t\tBase\n\t\tL1 MethodL1\n\t}\n\tMethodL1 struct {\n\t\tOptions           func() protoreflect.ProtoMessage\n\t\tInput             protoreflect.MessageDescriptor\n\t\tOutput            protoreflect.MessageDescriptor\n\t\tIsStreamingClient bool\n\t\tIsStreamingServer bool\n\t}\n)\n\nfunc (sd *Service) Options() protoreflect.ProtoMessage {\n\tif f := sd.lazyInit().Options; f != nil {\n\t\treturn f()\n\t}\n\treturn descopts.Service\n}\nfunc (sd *Service) Methods() protoreflect.MethodDescriptors  { return &sd.lazyInit().Methods }\nfunc (sd *Service) Format(s fmt.State, r rune)               { descfmt.FormatDesc(s, r, sd) }\nfunc (sd *Service) ProtoType(protoreflect.ServiceDescriptor) {}\nfunc (sd *Service) ProtoInternal(pragma.DoNotImplement)      {}\nfunc (sd *Service) lazyInit() *ServiceL2 {\n\tsd.L0.ParentFile.lazyInit() // implicitly initializes L2\n\treturn sd.L2\n}\n\nfunc (md *Method) Options() protoreflect.ProtoMessage {\n\tif f := md.L1.Options; f != nil {\n\t\treturn f()\n\t}\n\treturn descopts.Method\n}\nfunc (md *Method) Input() protoreflect.MessageDescriptor   { return md.L1.Input }\nfunc (md *Method) Output() protoreflect.MessageDescriptor  { return md.L1.Output }\nfunc (md *Method) IsStreamingClient() bool                 { return md.L1.IsStreamingClient }\nfunc (md *Method) IsStreamingServer() bool                 { return md.L1.IsStreamingServer }\nfunc (md *Method) Format(s fmt.State, r rune)              { descfmt.FormatDesc(s, r, md) }\nfunc (md *Method) ProtoType(protoreflect.MethodDescriptor) {}\nfunc (md *Method) ProtoInternal(pragma.DoNotImplement)     {}\n\n// Surrogate files are can be used to create standalone descriptors\n// where the syntax is only information derived from the parent file.\nvar (\n\tSurrogateProto2      = &File{L1: FileL1{Syntax: protoreflect.Proto2}, L2: &FileL2{}}\n\tSurrogateProto3      = &File{L1: FileL1{Syntax: protoreflect.Proto3}, L2: &FileL2{}}\n\tSurrogateEdition2023 = &File{L1: FileL1{Syntax: protoreflect.Editions, Edition: Edition2023}, L2: &FileL2{}}\n)\n\ntype (\n\tBase struct {\n\t\tL0 BaseL0\n\t}\n\tBaseL0 struct {\n\t\tFullName   protoreflect.FullName // must be populated\n\t\tParentFile *File                 // must be populated\n\t\tParent     protoreflect.Descriptor\n\t\tIndex      int\n\t}\n)\n\nfunc (d *Base) Name() protoreflect.Name         { return d.L0.FullName.Name() }\nfunc (d *Base) FullName() protoreflect.FullName { return d.L0.FullName }\nfunc (d *Base) ParentFile() protoreflect.FileDescriptor {\n\tif d.L0.ParentFile == SurrogateProto2 || d.L0.ParentFile == SurrogateProto3 {\n\t\treturn nil // surrogate files are not real parents\n\t}\n\treturn d.L0.ParentFile\n}\nfunc (d *Base) Parent() protoreflect.Descriptor     { return d.L0.Parent }\nfunc (d *Base) Index() int                          { return d.L0.Index }\nfunc (d *Base) Syntax() protoreflect.Syntax         { return d.L0.ParentFile.Syntax() }\nfunc (d *Base) IsPlaceholder() bool                 { return false }\nfunc (d *Base) ProtoInternal(pragma.DoNotImplement) {}\n\ntype stringName struct {\n\thasJSON  bool\n\tonce     sync.Once\n\tnameJSON string\n\tnameText string\n}\n\n// InitJSON initializes the name. It is exported for use by other internal packages.\nfunc (s *stringName) InitJSON(name string) {\n\ts.hasJSON = true\n\ts.nameJSON = name\n}\n\n// Returns true if this field is structured like the synthetic field of a proto2\n// group. This allows us to expand our treatment of delimited fields without\n// breaking proto2 files that have been upgraded to editions.\nfunc isGroupLike(fd protoreflect.FieldDescriptor) bool {\n\t// Groups are always group types.\n\tif fd.Kind() != protoreflect.GroupKind {\n\t\treturn false\n\t}\n\n\t// Group fields are always the lowercase type name.\n\tif strings.ToLower(string(fd.Message().Name())) != string(fd.Name()) {\n\t\treturn false\n\t}\n\n\t// Groups could only be defined in the same file they're used.\n\tif fd.Message().ParentFile() != fd.ParentFile() {\n\t\treturn false\n\t}\n\n\t// Group messages are always defined in the same scope as the field.  File\n\t// level extensions will compare NULL == NULL here, which is why the file\n\t// comparison above is necessary to ensure both come from the same file.\n\tif fd.IsExtension() {\n\t\treturn fd.Parent() == fd.Message().Parent()\n\t}\n\treturn fd.ContainingMessage() == fd.Message().Parent()\n}\n\nfunc (s *stringName) lazyInit(fd protoreflect.FieldDescriptor) *stringName {\n\ts.once.Do(func() {\n\t\tif fd.IsExtension() {\n\t\t\t// For extensions, JSON and text are formatted the same way.\n\t\t\tvar name string\n\t\t\tif messageset.IsMessageSetExtension(fd) {\n\t\t\t\tname = string(\"[\" + fd.FullName().Parent() + \"]\")\n\t\t\t} else {\n\t\t\t\tname = string(\"[\" + fd.FullName() + \"]\")\n\t\t\t}\n\t\t\ts.nameJSON = name\n\t\t\ts.nameText = name\n\t\t} else {\n\t\t\t// Format the JSON name.\n\t\t\tif !s.hasJSON {\n\t\t\t\ts.nameJSON = strs.JSONCamelCase(string(fd.Name()))\n\t\t\t}\n\n\t\t\t// Format the text name.\n\t\t\ts.nameText = string(fd.Name())\n\t\t\tif isGroupLike(fd) {\n\t\t\t\ts.nameText = string(fd.Message().Name())\n\t\t\t}\n\t\t}\n\t})\n\treturn s\n}\n\nfunc (s *stringName) getJSON(fd protoreflect.FieldDescriptor) string { return s.lazyInit(fd).nameJSON }\nfunc (s *stringName) getText(fd protoreflect.FieldDescriptor) string { return s.lazyInit(fd).nameText }\n\nfunc DefaultValue(v protoreflect.Value, ev protoreflect.EnumValueDescriptor) defaultValue {\n\tdv := defaultValue{has: v.IsValid(), val: v, enum: ev}\n\tif b, ok := v.Interface().([]byte); ok {\n\t\t// Store a copy of the default bytes, so that we can detect\n\t\t// accidental mutations of the original value.\n\t\tdv.bytes = append([]byte(nil), b...)\n\t}\n\treturn dv\n}\n\nfunc unmarshalDefault(b []byte, k protoreflect.Kind, pf *File, ed protoreflect.EnumDescriptor) defaultValue {\n\tvar evs protoreflect.EnumValueDescriptors\n\tif k == protoreflect.EnumKind {\n\t\t// If the enum is declared within the same file, be careful not to\n\t\t// blindly call the Values method, lest we bind ourselves in a deadlock.\n\t\tif e, ok := ed.(*Enum); ok && e.L0.ParentFile == pf {\n\t\t\tevs = &e.L2.Values\n\t\t} else {\n\t\t\tevs = ed.Values()\n\t\t}\n\n\t\t// If we are unable to resolve the enum dependency, use a placeholder\n\t\t// enum value since we will not be able to parse the default value.\n\t\tif ed.IsPlaceholder() && protoreflect.Name(b).IsValid() {\n\t\t\tv := protoreflect.ValueOfEnum(0)\n\t\t\tev := PlaceholderEnumValue(ed.FullName().Parent().Append(protoreflect.Name(b)))\n\t\t\treturn DefaultValue(v, ev)\n\t\t}\n\t}\n\n\tv, ev, err := defval.Unmarshal(string(b), k, evs, defval.Descriptor)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn DefaultValue(v, ev)\n}\n\ntype defaultValue struct {\n\thas   bool\n\tval   protoreflect.Value\n\tenum  protoreflect.EnumValueDescriptor\n\tbytes []byte\n}\n\nfunc (dv *defaultValue) get(fd protoreflect.FieldDescriptor) protoreflect.Value {\n\t// Return the zero value as the default if unpopulated.\n\tif !dv.has {\n\t\tif fd.Cardinality() == protoreflect.Repeated {\n\t\t\treturn protoreflect.Value{}\n\t\t}\n\t\tswitch fd.Kind() {\n\t\tcase protoreflect.BoolKind:\n\t\t\treturn protoreflect.ValueOfBool(false)\n\t\tcase protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind:\n\t\t\treturn protoreflect.ValueOfInt32(0)\n\t\tcase protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind:\n\t\t\treturn protoreflect.ValueOfInt64(0)\n\t\tcase protoreflect.Uint32Kind, protoreflect.Fixed32Kind:\n\t\t\treturn protoreflect.ValueOfUint32(0)\n\t\tcase protoreflect.Uint64Kind, protoreflect.Fixed64Kind:\n\t\t\treturn protoreflect.ValueOfUint64(0)\n\t\tcase protoreflect.FloatKind:\n\t\t\treturn protoreflect.ValueOfFloat32(0)\n\t\tcase protoreflect.DoubleKind:\n\t\t\treturn protoreflect.ValueOfFloat64(0)\n\t\tcase protoreflect.StringKind:\n\t\t\treturn protoreflect.ValueOfString(\"\")\n\t\tcase protoreflect.BytesKind:\n\t\t\treturn protoreflect.ValueOfBytes(nil)\n\t\tcase protoreflect.EnumKind:\n\t\t\tif evs := fd.Enum().Values(); evs.Len() > 0 {\n\t\t\t\treturn protoreflect.ValueOfEnum(evs.Get(0).Number())\n\t\t\t}\n\t\t\treturn protoreflect.ValueOfEnum(0)\n\t\t}\n\t}\n\n\tif len(dv.bytes) > 0 && !bytes.Equal(dv.bytes, dv.val.Bytes()) {\n\t\t// TODO: Avoid panic if we're running with the race detector\n\t\t// and instead spawn a goroutine that periodically resets\n\t\t// this value back to the original to induce a race.\n\t\tpanic(fmt.Sprintf(\"detected mutation on the default bytes for %v\", fd.FullName()))\n\t}\n\treturn dv.val\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage filedesc\n\nimport (\n\t\"fmt\"\n\t\"sync\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/genid\"\n\t\"google.golang.org/protobuf/internal/strs\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\n// fileRaw is a data struct used when initializing a file descriptor from\n// a raw FileDescriptorProto.\ntype fileRaw struct {\n\tbuilder       Builder\n\tallEnums      []Enum\n\tallMessages   []Message\n\tallExtensions []Extension\n\tallServices   []Service\n}\n\nfunc newRawFile(db Builder) *File {\n\tfd := &File{fileRaw: fileRaw{builder: db}}\n\tfd.initDecls(db.NumEnums, db.NumMessages, db.NumExtensions, db.NumServices)\n\tfd.unmarshalSeed(db.RawDescriptor)\n\n\t// Extended message targets are eagerly resolved since registration\n\t// needs this information at program init time.\n\tfor i := range fd.allExtensions {\n\t\txd := &fd.allExtensions[i]\n\t\txd.L1.Extendee = fd.resolveMessageDependency(xd.L1.Extendee, listExtTargets, int32(i))\n\t}\n\n\tfd.checkDecls()\n\treturn fd\n}\n\n// initDecls pre-allocates slices for the exact number of enums, messages\n// (including map entries), extensions, and services declared in the proto file.\n// This is done to avoid regrowing the slice, which would change the address\n// for any previously seen declaration.\n//\n// The alloc methods \"allocates\" slices by pulling from the capacity.\nfunc (fd *File) initDecls(numEnums, numMessages, numExtensions, numServices int32) {\n\tfd.allEnums = make([]Enum, 0, numEnums)\n\tfd.allMessages = make([]Message, 0, numMessages)\n\tfd.allExtensions = make([]Extension, 0, numExtensions)\n\tfd.allServices = make([]Service, 0, numServices)\n}\n\nfunc (fd *File) allocEnums(n int) []Enum {\n\ttotal := len(fd.allEnums)\n\tes := fd.allEnums[total : total+n]\n\tfd.allEnums = fd.allEnums[:total+n]\n\treturn es\n}\nfunc (fd *File) allocMessages(n int) []Message {\n\ttotal := len(fd.allMessages)\n\tms := fd.allMessages[total : total+n]\n\tfd.allMessages = fd.allMessages[:total+n]\n\treturn ms\n}\nfunc (fd *File) allocExtensions(n int) []Extension {\n\ttotal := len(fd.allExtensions)\n\txs := fd.allExtensions[total : total+n]\n\tfd.allExtensions = fd.allExtensions[:total+n]\n\treturn xs\n}\nfunc (fd *File) allocServices(n int) []Service {\n\ttotal := len(fd.allServices)\n\txs := fd.allServices[total : total+n]\n\tfd.allServices = fd.allServices[:total+n]\n\treturn xs\n}\n\n// checkDecls performs a sanity check that the expected number of expected\n// declarations matches the number that were found in the descriptor proto.\nfunc (fd *File) checkDecls() {\n\tswitch {\n\tcase len(fd.allEnums) != cap(fd.allEnums):\n\tcase len(fd.allMessages) != cap(fd.allMessages):\n\tcase len(fd.allExtensions) != cap(fd.allExtensions):\n\tcase len(fd.allServices) != cap(fd.allServices):\n\tdefault:\n\t\treturn\n\t}\n\tpanic(\"mismatching cardinality\")\n}\n\nfunc (fd *File) unmarshalSeed(b []byte) {\n\tsb := getBuilder()\n\tdefer putBuilder(sb)\n\n\tvar prevField protoreflect.FieldNumber\n\tvar numEnums, numMessages, numExtensions, numServices int\n\tvar posEnums, posMessages, posExtensions, posServices int\n\tvar options []byte\n\tb0 := b\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.FileDescriptorProto_Syntax_field_number:\n\t\t\t\tswitch string(v) {\n\t\t\t\tcase \"proto2\":\n\t\t\t\t\tfd.L1.Syntax = protoreflect.Proto2\n\t\t\t\t\tfd.L1.Edition = EditionProto2\n\t\t\t\tcase \"proto3\":\n\t\t\t\t\tfd.L1.Syntax = protoreflect.Proto3\n\t\t\t\t\tfd.L1.Edition = EditionProto3\n\t\t\t\tcase \"editions\":\n\t\t\t\t\tfd.L1.Syntax = protoreflect.Editions\n\t\t\t\tdefault:\n\t\t\t\t\tpanic(\"invalid syntax\")\n\t\t\t\t}\n\t\t\tcase genid.FileDescriptorProto_Name_field_number:\n\t\t\t\tfd.L1.Path = sb.MakeString(v)\n\t\t\tcase genid.FileDescriptorProto_Package_field_number:\n\t\t\t\tfd.L1.Package = protoreflect.FullName(sb.MakeString(v))\n\t\t\tcase genid.FileDescriptorProto_Options_field_number:\n\t\t\t\toptions = v\n\t\t\tcase genid.FileDescriptorProto_EnumType_field_number:\n\t\t\t\tif prevField != genid.FileDescriptorProto_EnumType_field_number {\n\t\t\t\t\tif numEnums > 0 {\n\t\t\t\t\t\tpanic(\"non-contiguous repeated field\")\n\t\t\t\t\t}\n\t\t\t\t\tposEnums = len(b0) - len(b) - n - m\n\t\t\t\t}\n\t\t\t\tnumEnums++\n\t\t\tcase genid.FileDescriptorProto_MessageType_field_number:\n\t\t\t\tif prevField != genid.FileDescriptorProto_MessageType_field_number {\n\t\t\t\t\tif numMessages > 0 {\n\t\t\t\t\t\tpanic(\"non-contiguous repeated field\")\n\t\t\t\t\t}\n\t\t\t\t\tposMessages = len(b0) - len(b) - n - m\n\t\t\t\t}\n\t\t\t\tnumMessages++\n\t\t\tcase genid.FileDescriptorProto_Extension_field_number:\n\t\t\t\tif prevField != genid.FileDescriptorProto_Extension_field_number {\n\t\t\t\t\tif numExtensions > 0 {\n\t\t\t\t\t\tpanic(\"non-contiguous repeated field\")\n\t\t\t\t\t}\n\t\t\t\t\tposExtensions = len(b0) - len(b) - n - m\n\t\t\t\t}\n\t\t\t\tnumExtensions++\n\t\t\tcase genid.FileDescriptorProto_Service_field_number:\n\t\t\t\tif prevField != genid.FileDescriptorProto_Service_field_number {\n\t\t\t\t\tif numServices > 0 {\n\t\t\t\t\t\tpanic(\"non-contiguous repeated field\")\n\t\t\t\t\t}\n\t\t\t\t\tposServices = len(b0) - len(b) - n - m\n\t\t\t\t}\n\t\t\t\tnumServices++\n\t\t\t}\n\t\t\tprevField = num\n\t\tcase protowire.VarintType:\n\t\t\tv, m := protowire.ConsumeVarint(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.FileDescriptorProto_Edition_field_number:\n\t\t\t\tfd.L1.Edition = Edition(v)\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t\tprevField = -1 // ignore known field numbers of unknown wire type\n\t\t}\n\t}\n\n\t// If syntax is missing, it is assumed to be proto2.\n\tif fd.L1.Syntax == 0 {\n\t\tfd.L1.Syntax = protoreflect.Proto2\n\t\tfd.L1.Edition = EditionProto2\n\t}\n\n\tfd.L1.EditionFeatures = getFeaturesFor(fd.L1.Edition)\n\n\t// Parse editions features from options if any\n\tif options != nil {\n\t\tfd.unmarshalSeedOptions(options)\n\t}\n\n\t// Must allocate all declarations before parsing each descriptor type\n\t// to ensure we handled all descriptors in \"flattened ordering\".\n\tif numEnums > 0 {\n\t\tfd.L1.Enums.List = fd.allocEnums(numEnums)\n\t}\n\tif numMessages > 0 {\n\t\tfd.L1.Messages.List = fd.allocMessages(numMessages)\n\t}\n\tif numExtensions > 0 {\n\t\tfd.L1.Extensions.List = fd.allocExtensions(numExtensions)\n\t}\n\tif numServices > 0 {\n\t\tfd.L1.Services.List = fd.allocServices(numServices)\n\t}\n\n\tif numEnums > 0 {\n\t\tb := b0[posEnums:]\n\t\tfor i := range fd.L1.Enums.List {\n\t\t\t_, n := protowire.ConsumeVarint(b)\n\t\t\tv, m := protowire.ConsumeBytes(b[n:])\n\t\t\tfd.L1.Enums.List[i].unmarshalSeed(v, sb, fd, fd, i)\n\t\t\tb = b[n+m:]\n\t\t}\n\t}\n\tif numMessages > 0 {\n\t\tb := b0[posMessages:]\n\t\tfor i := range fd.L1.Messages.List {\n\t\t\t_, n := protowire.ConsumeVarint(b)\n\t\t\tv, m := protowire.ConsumeBytes(b[n:])\n\t\t\tfd.L1.Messages.List[i].unmarshalSeed(v, sb, fd, fd, i)\n\t\t\tb = b[n+m:]\n\t\t}\n\t}\n\tif numExtensions > 0 {\n\t\tb := b0[posExtensions:]\n\t\tfor i := range fd.L1.Extensions.List {\n\t\t\t_, n := protowire.ConsumeVarint(b)\n\t\t\tv, m := protowire.ConsumeBytes(b[n:])\n\t\t\tfd.L1.Extensions.List[i].unmarshalSeed(v, sb, fd, fd, i)\n\t\t\tb = b[n+m:]\n\t\t}\n\t}\n\tif numServices > 0 {\n\t\tb := b0[posServices:]\n\t\tfor i := range fd.L1.Services.List {\n\t\t\t_, n := protowire.ConsumeVarint(b)\n\t\t\tv, m := protowire.ConsumeBytes(b[n:])\n\t\t\tfd.L1.Services.List[i].unmarshalSeed(v, sb, fd, fd, i)\n\t\t\tb = b[n+m:]\n\t\t}\n\t}\n}\n\nfunc (fd *File) unmarshalSeedOptions(b []byte) {\n\tfor b := b; len(b) > 0; {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.FileOptions_Features_field_number:\n\t\t\t\tif fd.Syntax() != protoreflect.Editions {\n\t\t\t\t\tpanic(fmt.Sprintf(\"invalid descriptor: using edition features in a proto with syntax %s\", fd.Syntax()))\n\t\t\t\t}\n\t\t\t\tfd.L1.EditionFeatures = unmarshalFeatureSet(v, fd.L1.EditionFeatures)\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n}\n\nfunc (ed *Enum) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) {\n\ted.L0.ParentFile = pf\n\ted.L0.Parent = pd\n\ted.L0.Index = i\n\ted.L1.EditionFeatures = featuresFromParentDesc(ed.Parent())\n\n\tvar numValues int\n\tfor b := b; len(b) > 0; {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.EnumDescriptorProto_Name_field_number:\n\t\t\t\ted.L0.FullName = appendFullName(sb, pd.FullName(), v)\n\t\t\tcase genid.EnumDescriptorProto_Value_field_number:\n\t\t\t\tnumValues++\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n\n\t// Only construct enum value descriptors for top-level enums since\n\t// they are needed for registration.\n\tif pd != pf {\n\t\treturn\n\t}\n\ted.L1.eagerValues = true\n\ted.L2 = new(EnumL2)\n\ted.L2.Values.List = make([]EnumValue, numValues)\n\tfor i := 0; len(b) > 0; {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.EnumDescriptorProto_Value_field_number:\n\t\t\t\ted.L2.Values.List[i].unmarshalFull(v, sb, pf, ed, i)\n\t\t\t\ti++\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n}\n\nfunc (md *Message) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) {\n\tmd.L0.ParentFile = pf\n\tmd.L0.Parent = pd\n\tmd.L0.Index = i\n\tmd.L1.EditionFeatures = featuresFromParentDesc(md.Parent())\n\n\tvar prevField protoreflect.FieldNumber\n\tvar numEnums, numMessages, numExtensions int\n\tvar posEnums, posMessages, posExtensions int\n\tb0 := b\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.DescriptorProto_Name_field_number:\n\t\t\t\tmd.L0.FullName = appendFullName(sb, pd.FullName(), v)\n\t\t\tcase genid.DescriptorProto_EnumType_field_number:\n\t\t\t\tif prevField != genid.DescriptorProto_EnumType_field_number {\n\t\t\t\t\tif numEnums > 0 {\n\t\t\t\t\t\tpanic(\"non-contiguous repeated field\")\n\t\t\t\t\t}\n\t\t\t\t\tposEnums = len(b0) - len(b) - n - m\n\t\t\t\t}\n\t\t\t\tnumEnums++\n\t\t\tcase genid.DescriptorProto_NestedType_field_number:\n\t\t\t\tif prevField != genid.DescriptorProto_NestedType_field_number {\n\t\t\t\t\tif numMessages > 0 {\n\t\t\t\t\t\tpanic(\"non-contiguous repeated field\")\n\t\t\t\t\t}\n\t\t\t\t\tposMessages = len(b0) - len(b) - n - m\n\t\t\t\t}\n\t\t\t\tnumMessages++\n\t\t\tcase genid.DescriptorProto_Extension_field_number:\n\t\t\t\tif prevField != genid.DescriptorProto_Extension_field_number {\n\t\t\t\t\tif numExtensions > 0 {\n\t\t\t\t\t\tpanic(\"non-contiguous repeated field\")\n\t\t\t\t\t}\n\t\t\t\t\tposExtensions = len(b0) - len(b) - n - m\n\t\t\t\t}\n\t\t\t\tnumExtensions++\n\t\t\tcase genid.DescriptorProto_Options_field_number:\n\t\t\t\tmd.unmarshalSeedOptions(v)\n\t\t\t}\n\t\t\tprevField = num\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t\tprevField = -1 // ignore known field numbers of unknown wire type\n\t\t}\n\t}\n\n\t// Must allocate all declarations before parsing each descriptor type\n\t// to ensure we handled all descriptors in \"flattened ordering\".\n\tif numEnums > 0 {\n\t\tmd.L1.Enums.List = pf.allocEnums(numEnums)\n\t}\n\tif numMessages > 0 {\n\t\tmd.L1.Messages.List = pf.allocMessages(numMessages)\n\t}\n\tif numExtensions > 0 {\n\t\tmd.L1.Extensions.List = pf.allocExtensions(numExtensions)\n\t}\n\n\tif numEnums > 0 {\n\t\tb := b0[posEnums:]\n\t\tfor i := range md.L1.Enums.List {\n\t\t\t_, n := protowire.ConsumeVarint(b)\n\t\t\tv, m := protowire.ConsumeBytes(b[n:])\n\t\t\tmd.L1.Enums.List[i].unmarshalSeed(v, sb, pf, md, i)\n\t\t\tb = b[n+m:]\n\t\t}\n\t}\n\tif numMessages > 0 {\n\t\tb := b0[posMessages:]\n\t\tfor i := range md.L1.Messages.List {\n\t\t\t_, n := protowire.ConsumeVarint(b)\n\t\t\tv, m := protowire.ConsumeBytes(b[n:])\n\t\t\tmd.L1.Messages.List[i].unmarshalSeed(v, sb, pf, md, i)\n\t\t\tb = b[n+m:]\n\t\t}\n\t}\n\tif numExtensions > 0 {\n\t\tb := b0[posExtensions:]\n\t\tfor i := range md.L1.Extensions.List {\n\t\t\t_, n := protowire.ConsumeVarint(b)\n\t\t\tv, m := protowire.ConsumeBytes(b[n:])\n\t\t\tmd.L1.Extensions.List[i].unmarshalSeed(v, sb, pf, md, i)\n\t\t\tb = b[n+m:]\n\t\t}\n\t}\n}\n\nfunc (md *Message) unmarshalSeedOptions(b []byte) {\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.VarintType:\n\t\t\tv, m := protowire.ConsumeVarint(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.MessageOptions_MapEntry_field_number:\n\t\t\t\tmd.L1.IsMapEntry = protowire.DecodeBool(v)\n\t\t\tcase genid.MessageOptions_MessageSetWireFormat_field_number:\n\t\t\t\tmd.L1.IsMessageSet = protowire.DecodeBool(v)\n\t\t\t}\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.MessageOptions_Features_field_number:\n\t\t\t\tmd.L1.EditionFeatures = unmarshalFeatureSet(v, md.L1.EditionFeatures)\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n}\n\nfunc (xd *Extension) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) {\n\txd.L0.ParentFile = pf\n\txd.L0.Parent = pd\n\txd.L0.Index = i\n\txd.L1.EditionFeatures = featuresFromParentDesc(pd)\n\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.VarintType:\n\t\t\tv, m := protowire.ConsumeVarint(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.FieldDescriptorProto_Number_field_number:\n\t\t\t\txd.L1.Number = protoreflect.FieldNumber(v)\n\t\t\tcase genid.FieldDescriptorProto_Label_field_number:\n\t\t\t\txd.L1.Cardinality = protoreflect.Cardinality(v)\n\t\t\tcase genid.FieldDescriptorProto_Type_field_number:\n\t\t\t\txd.L1.Kind = protoreflect.Kind(v)\n\t\t\t}\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.FieldDescriptorProto_Name_field_number:\n\t\t\t\txd.L0.FullName = appendFullName(sb, pd.FullName(), v)\n\t\t\tcase genid.FieldDescriptorProto_Extendee_field_number:\n\t\t\t\txd.L1.Extendee = PlaceholderMessage(makeFullName(sb, v))\n\t\t\tcase genid.FieldDescriptorProto_Options_field_number:\n\t\t\t\txd.unmarshalOptions(v)\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n\n\tif xd.L1.Kind == protoreflect.MessageKind && xd.L1.EditionFeatures.IsDelimitedEncoded {\n\t\txd.L1.Kind = protoreflect.GroupKind\n\t}\n}\n\nfunc (xd *Extension) unmarshalOptions(b []byte) {\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.VarintType:\n\t\t\tv, m := protowire.ConsumeVarint(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.FieldOptions_Packed_field_number:\n\t\t\t\txd.L1.EditionFeatures.IsPacked = protowire.DecodeBool(v)\n\t\t\tcase genid.FieldOptions_Lazy_field_number:\n\t\t\t\txd.L1.IsLazy = protowire.DecodeBool(v)\n\t\t\t}\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.FieldOptions_Features_field_number:\n\t\t\t\txd.L1.EditionFeatures = unmarshalFeatureSet(v, xd.L1.EditionFeatures)\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n}\n\nfunc (sd *Service) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) {\n\tsd.L0.ParentFile = pf\n\tsd.L0.Parent = pd\n\tsd.L0.Index = i\n\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.ServiceDescriptorProto_Name_field_number:\n\t\t\t\tsd.L0.FullName = appendFullName(sb, pd.FullName(), v)\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n}\n\nvar nameBuilderPool = sync.Pool{\n\tNew: func() any { return new(strs.Builder) },\n}\n\nfunc getBuilder() *strs.Builder {\n\treturn nameBuilderPool.Get().(*strs.Builder)\n}\nfunc putBuilder(b *strs.Builder) {\n\tnameBuilderPool.Put(b)\n}\n\n// makeFullName converts b to a protoreflect.FullName,\n// where b must start with a leading dot.\nfunc makeFullName(sb *strs.Builder, b []byte) protoreflect.FullName {\n\tif len(b) == 0 || b[0] != '.' {\n\t\tpanic(\"name reference must be fully qualified\")\n\t}\n\treturn protoreflect.FullName(sb.MakeString(b[1:]))\n}\n\nfunc appendFullName(sb *strs.Builder, prefix protoreflect.FullName, suffix []byte) protoreflect.FullName {\n\treturn sb.AppendFullName(prefix, protoreflect.Name(strs.UnsafeString(suffix)))\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage filedesc\n\nimport (\n\t\"reflect\"\n\t\"sync\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/descopts\"\n\t\"google.golang.org/protobuf/internal/genid\"\n\t\"google.golang.org/protobuf/internal/strs\"\n\t\"google.golang.org/protobuf/proto\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\nfunc (fd *File) lazyRawInit() {\n\tfd.unmarshalFull(fd.builder.RawDescriptor)\n\tfd.resolveMessages()\n\tfd.resolveExtensions()\n\tfd.resolveServices()\n}\n\nfunc (file *File) resolveMessages() {\n\tvar depIdx int32\n\tfor i := range file.allMessages {\n\t\tmd := &file.allMessages[i]\n\n\t\t// Resolve message field dependencies.\n\t\tfor j := range md.L2.Fields.List {\n\t\t\tfd := &md.L2.Fields.List[j]\n\n\t\t\t// Weak fields are resolved upon actual use.\n\t\t\tif fd.L1.IsWeak {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// Resolve message field dependency.\n\t\t\tswitch fd.L1.Kind {\n\t\t\tcase protoreflect.EnumKind:\n\t\t\t\tfd.L1.Enum = file.resolveEnumDependency(fd.L1.Enum, listFieldDeps, depIdx)\n\t\t\t\tdepIdx++\n\t\t\tcase protoreflect.MessageKind, protoreflect.GroupKind:\n\t\t\t\tfd.L1.Message = file.resolveMessageDependency(fd.L1.Message, listFieldDeps, depIdx)\n\t\t\t\tdepIdx++\n\t\t\t\tif fd.L1.Kind == protoreflect.GroupKind && (fd.IsMap() || fd.IsMapEntry()) {\n\t\t\t\t\t// A map field might inherit delimited encoding from a file-wide default feature.\n\t\t\t\t\t// But maps never actually use delimited encoding. (At least for now...)\n\t\t\t\t\tfd.L1.Kind = protoreflect.MessageKind\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Default is resolved here since it depends on Enum being resolved.\n\t\t\tif v := fd.L1.Default.val; v.IsValid() {\n\t\t\t\tfd.L1.Default = unmarshalDefault(v.Bytes(), fd.L1.Kind, file, fd.L1.Enum)\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc (file *File) resolveExtensions() {\n\tvar depIdx int32\n\tfor i := range file.allExtensions {\n\t\txd := &file.allExtensions[i]\n\n\t\t// Resolve extension field dependency.\n\t\tswitch xd.L1.Kind {\n\t\tcase protoreflect.EnumKind:\n\t\t\txd.L2.Enum = file.resolveEnumDependency(xd.L2.Enum, listExtDeps, depIdx)\n\t\t\tdepIdx++\n\t\tcase protoreflect.MessageKind, protoreflect.GroupKind:\n\t\t\txd.L2.Message = file.resolveMessageDependency(xd.L2.Message, listExtDeps, depIdx)\n\t\t\tdepIdx++\n\t\t}\n\n\t\t// Default is resolved here since it depends on Enum being resolved.\n\t\tif v := xd.L2.Default.val; v.IsValid() {\n\t\t\txd.L2.Default = unmarshalDefault(v.Bytes(), xd.L1.Kind, file, xd.L2.Enum)\n\t\t}\n\t}\n}\n\nfunc (file *File) resolveServices() {\n\tvar depIdx int32\n\tfor i := range file.allServices {\n\t\tsd := &file.allServices[i]\n\n\t\t// Resolve method dependencies.\n\t\tfor j := range sd.L2.Methods.List {\n\t\t\tmd := &sd.L2.Methods.List[j]\n\t\t\tmd.L1.Input = file.resolveMessageDependency(md.L1.Input, listMethInDeps, depIdx)\n\t\t\tmd.L1.Output = file.resolveMessageDependency(md.L1.Output, listMethOutDeps, depIdx)\n\t\t\tdepIdx++\n\t\t}\n\t}\n}\n\nfunc (file *File) resolveEnumDependency(ed protoreflect.EnumDescriptor, i, j int32) protoreflect.EnumDescriptor {\n\tr := file.builder.FileRegistry\n\tif r, ok := r.(resolverByIndex); ok {\n\t\tif ed2 := r.FindEnumByIndex(i, j, file.allEnums, file.allMessages); ed2 != nil {\n\t\t\treturn ed2\n\t\t}\n\t}\n\tfor i := range file.allEnums {\n\t\tif ed2 := &file.allEnums[i]; ed2.L0.FullName == ed.FullName() {\n\t\t\treturn ed2\n\t\t}\n\t}\n\tif d, _ := r.FindDescriptorByName(ed.FullName()); d != nil {\n\t\treturn d.(protoreflect.EnumDescriptor)\n\t}\n\treturn ed\n}\n\nfunc (file *File) resolveMessageDependency(md protoreflect.MessageDescriptor, i, j int32) protoreflect.MessageDescriptor {\n\tr := file.builder.FileRegistry\n\tif r, ok := r.(resolverByIndex); ok {\n\t\tif md2 := r.FindMessageByIndex(i, j, file.allEnums, file.allMessages); md2 != nil {\n\t\t\treturn md2\n\t\t}\n\t}\n\tfor i := range file.allMessages {\n\t\tif md2 := &file.allMessages[i]; md2.L0.FullName == md.FullName() {\n\t\t\treturn md2\n\t\t}\n\t}\n\tif d, _ := r.FindDescriptorByName(md.FullName()); d != nil {\n\t\treturn d.(protoreflect.MessageDescriptor)\n\t}\n\treturn md\n}\n\nfunc (fd *File) unmarshalFull(b []byte) {\n\tsb := getBuilder()\n\tdefer putBuilder(sb)\n\n\tvar enumIdx, messageIdx, extensionIdx, serviceIdx int\n\tvar rawOptions []byte\n\tfd.L2 = new(FileL2)\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.VarintType:\n\t\t\tv, m := protowire.ConsumeVarint(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.FileDescriptorProto_PublicDependency_field_number:\n\t\t\t\tfd.L2.Imports[v].IsPublic = true\n\t\t\tcase genid.FileDescriptorProto_WeakDependency_field_number:\n\t\t\t\tfd.L2.Imports[v].IsWeak = true\n\t\t\t}\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.FileDescriptorProto_Dependency_field_number:\n\t\t\t\tpath := sb.MakeString(v)\n\t\t\t\timp, _ := fd.builder.FileRegistry.FindFileByPath(path)\n\t\t\t\tif imp == nil {\n\t\t\t\t\timp = PlaceholderFile(path)\n\t\t\t\t}\n\t\t\t\tfd.L2.Imports = append(fd.L2.Imports, protoreflect.FileImport{FileDescriptor: imp})\n\t\t\tcase genid.FileDescriptorProto_EnumType_field_number:\n\t\t\t\tfd.L1.Enums.List[enumIdx].unmarshalFull(v, sb)\n\t\t\t\tenumIdx++\n\t\t\tcase genid.FileDescriptorProto_MessageType_field_number:\n\t\t\t\tfd.L1.Messages.List[messageIdx].unmarshalFull(v, sb)\n\t\t\t\tmessageIdx++\n\t\t\tcase genid.FileDescriptorProto_Extension_field_number:\n\t\t\t\tfd.L1.Extensions.List[extensionIdx].unmarshalFull(v, sb)\n\t\t\t\textensionIdx++\n\t\t\tcase genid.FileDescriptorProto_Service_field_number:\n\t\t\t\tfd.L1.Services.List[serviceIdx].unmarshalFull(v, sb)\n\t\t\t\tserviceIdx++\n\t\t\tcase genid.FileDescriptorProto_Options_field_number:\n\t\t\t\trawOptions = appendOptions(rawOptions, v)\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n\tfd.L2.Options = fd.builder.optionsUnmarshaler(&descopts.File, rawOptions)\n}\n\nfunc (ed *Enum) unmarshalFull(b []byte, sb *strs.Builder) {\n\tvar rawValues [][]byte\n\tvar rawOptions []byte\n\tif !ed.L1.eagerValues {\n\t\ted.L2 = new(EnumL2)\n\t}\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.EnumDescriptorProto_Value_field_number:\n\t\t\t\trawValues = append(rawValues, v)\n\t\t\tcase genid.EnumDescriptorProto_ReservedName_field_number:\n\t\t\t\ted.L2.ReservedNames.List = append(ed.L2.ReservedNames.List, protoreflect.Name(sb.MakeString(v)))\n\t\t\tcase genid.EnumDescriptorProto_ReservedRange_field_number:\n\t\t\t\ted.L2.ReservedRanges.List = append(ed.L2.ReservedRanges.List, unmarshalEnumReservedRange(v))\n\t\t\tcase genid.EnumDescriptorProto_Options_field_number:\n\t\t\t\trawOptions = appendOptions(rawOptions, v)\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n\tif !ed.L1.eagerValues && len(rawValues) > 0 {\n\t\ted.L2.Values.List = make([]EnumValue, len(rawValues))\n\t\tfor i, b := range rawValues {\n\t\t\ted.L2.Values.List[i].unmarshalFull(b, sb, ed.L0.ParentFile, ed, i)\n\t\t}\n\t}\n\ted.L2.Options = ed.L0.ParentFile.builder.optionsUnmarshaler(&descopts.Enum, rawOptions)\n}\n\nfunc unmarshalEnumReservedRange(b []byte) (r [2]protoreflect.EnumNumber) {\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.VarintType:\n\t\t\tv, m := protowire.ConsumeVarint(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.EnumDescriptorProto_EnumReservedRange_Start_field_number:\n\t\t\t\tr[0] = protoreflect.EnumNumber(v)\n\t\t\tcase genid.EnumDescriptorProto_EnumReservedRange_End_field_number:\n\t\t\t\tr[1] = protoreflect.EnumNumber(v)\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n\treturn r\n}\n\nfunc (vd *EnumValue) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) {\n\tvd.L0.ParentFile = pf\n\tvd.L0.Parent = pd\n\tvd.L0.Index = i\n\n\tvar rawOptions []byte\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.VarintType:\n\t\t\tv, m := protowire.ConsumeVarint(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.EnumValueDescriptorProto_Number_field_number:\n\t\t\t\tvd.L1.Number = protoreflect.EnumNumber(v)\n\t\t\t}\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.EnumValueDescriptorProto_Name_field_number:\n\t\t\t\t// NOTE: Enum values are in the same scope as the enum parent.\n\t\t\t\tvd.L0.FullName = appendFullName(sb, pd.Parent().FullName(), v)\n\t\t\tcase genid.EnumValueDescriptorProto_Options_field_number:\n\t\t\t\trawOptions = appendOptions(rawOptions, v)\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n\tvd.L1.Options = pf.builder.optionsUnmarshaler(&descopts.EnumValue, rawOptions)\n}\n\nfunc (md *Message) unmarshalFull(b []byte, sb *strs.Builder) {\n\tvar rawFields, rawOneofs [][]byte\n\tvar enumIdx, messageIdx, extensionIdx int\n\tvar rawOptions []byte\n\tmd.L2 = new(MessageL2)\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.DescriptorProto_Field_field_number:\n\t\t\t\trawFields = append(rawFields, v)\n\t\t\tcase genid.DescriptorProto_OneofDecl_field_number:\n\t\t\t\trawOneofs = append(rawOneofs, v)\n\t\t\tcase genid.DescriptorProto_ReservedName_field_number:\n\t\t\t\tmd.L2.ReservedNames.List = append(md.L2.ReservedNames.List, protoreflect.Name(sb.MakeString(v)))\n\t\t\tcase genid.DescriptorProto_ReservedRange_field_number:\n\t\t\t\tmd.L2.ReservedRanges.List = append(md.L2.ReservedRanges.List, unmarshalMessageReservedRange(v))\n\t\t\tcase genid.DescriptorProto_ExtensionRange_field_number:\n\t\t\t\tr, rawOptions := unmarshalMessageExtensionRange(v)\n\t\t\t\topts := md.L0.ParentFile.builder.optionsUnmarshaler(&descopts.ExtensionRange, rawOptions)\n\t\t\t\tmd.L2.ExtensionRanges.List = append(md.L2.ExtensionRanges.List, r)\n\t\t\t\tmd.L2.ExtensionRangeOptions = append(md.L2.ExtensionRangeOptions, opts)\n\t\t\tcase genid.DescriptorProto_EnumType_field_number:\n\t\t\t\tmd.L1.Enums.List[enumIdx].unmarshalFull(v, sb)\n\t\t\t\tenumIdx++\n\t\t\tcase genid.DescriptorProto_NestedType_field_number:\n\t\t\t\tmd.L1.Messages.List[messageIdx].unmarshalFull(v, sb)\n\t\t\t\tmessageIdx++\n\t\t\tcase genid.DescriptorProto_Extension_field_number:\n\t\t\t\tmd.L1.Extensions.List[extensionIdx].unmarshalFull(v, sb)\n\t\t\t\textensionIdx++\n\t\t\tcase genid.DescriptorProto_Options_field_number:\n\t\t\t\tmd.unmarshalOptions(v)\n\t\t\t\trawOptions = appendOptions(rawOptions, v)\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n\tif len(rawFields) > 0 || len(rawOneofs) > 0 {\n\t\tmd.L2.Fields.List = make([]Field, len(rawFields))\n\t\tmd.L2.Oneofs.List = make([]Oneof, len(rawOneofs))\n\t\tfor i, b := range rawFields {\n\t\t\tfd := &md.L2.Fields.List[i]\n\t\t\tfd.unmarshalFull(b, sb, md.L0.ParentFile, md, i)\n\t\t\tif fd.L1.Cardinality == protoreflect.Required {\n\t\t\t\tmd.L2.RequiredNumbers.List = append(md.L2.RequiredNumbers.List, fd.L1.Number)\n\t\t\t}\n\t\t}\n\t\tfor i, b := range rawOneofs {\n\t\t\tod := &md.L2.Oneofs.List[i]\n\t\t\tod.unmarshalFull(b, sb, md.L0.ParentFile, md, i)\n\t\t}\n\t}\n\tmd.L2.Options = md.L0.ParentFile.builder.optionsUnmarshaler(&descopts.Message, rawOptions)\n}\n\nfunc (md *Message) unmarshalOptions(b []byte) {\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.VarintType:\n\t\t\tv, m := protowire.ConsumeVarint(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.MessageOptions_MapEntry_field_number:\n\t\t\t\tmd.L1.IsMapEntry = protowire.DecodeBool(v)\n\t\t\tcase genid.MessageOptions_MessageSetWireFormat_field_number:\n\t\t\t\tmd.L1.IsMessageSet = protowire.DecodeBool(v)\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n}\n\nfunc unmarshalMessageReservedRange(b []byte) (r [2]protoreflect.FieldNumber) {\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.VarintType:\n\t\t\tv, m := protowire.ConsumeVarint(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.DescriptorProto_ReservedRange_Start_field_number:\n\t\t\t\tr[0] = protoreflect.FieldNumber(v)\n\t\t\tcase genid.DescriptorProto_ReservedRange_End_field_number:\n\t\t\t\tr[1] = protoreflect.FieldNumber(v)\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n\treturn r\n}\n\nfunc unmarshalMessageExtensionRange(b []byte) (r [2]protoreflect.FieldNumber, rawOptions []byte) {\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.VarintType:\n\t\t\tv, m := protowire.ConsumeVarint(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.DescriptorProto_ExtensionRange_Start_field_number:\n\t\t\t\tr[0] = protoreflect.FieldNumber(v)\n\t\t\tcase genid.DescriptorProto_ExtensionRange_End_field_number:\n\t\t\t\tr[1] = protoreflect.FieldNumber(v)\n\t\t\t}\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.DescriptorProto_ExtensionRange_Options_field_number:\n\t\t\t\trawOptions = appendOptions(rawOptions, v)\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n\treturn r, rawOptions\n}\n\nfunc (fd *Field) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) {\n\tfd.L0.ParentFile = pf\n\tfd.L0.Parent = pd\n\tfd.L0.Index = i\n\tfd.L1.EditionFeatures = featuresFromParentDesc(fd.Parent())\n\n\tvar rawTypeName []byte\n\tvar rawOptions []byte\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.VarintType:\n\t\t\tv, m := protowire.ConsumeVarint(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.FieldDescriptorProto_Number_field_number:\n\t\t\t\tfd.L1.Number = protoreflect.FieldNumber(v)\n\t\t\tcase genid.FieldDescriptorProto_Label_field_number:\n\t\t\t\tfd.L1.Cardinality = protoreflect.Cardinality(v)\n\t\t\tcase genid.FieldDescriptorProto_Type_field_number:\n\t\t\t\tfd.L1.Kind = protoreflect.Kind(v)\n\t\t\tcase genid.FieldDescriptorProto_OneofIndex_field_number:\n\t\t\t\t// In Message.unmarshalFull, we allocate slices for both\n\t\t\t\t// the field and oneof descriptors before unmarshaling either\n\t\t\t\t// of them. This ensures pointers to slice elements are stable.\n\t\t\t\tod := &pd.(*Message).L2.Oneofs.List[v]\n\t\t\t\tod.L1.Fields.List = append(od.L1.Fields.List, fd)\n\t\t\t\tif fd.L1.ContainingOneof != nil {\n\t\t\t\t\tpanic(\"oneof type already set\")\n\t\t\t\t}\n\t\t\t\tfd.L1.ContainingOneof = od\n\t\t\tcase genid.FieldDescriptorProto_Proto3Optional_field_number:\n\t\t\t\tfd.L1.IsProto3Optional = protowire.DecodeBool(v)\n\t\t\t}\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.FieldDescriptorProto_Name_field_number:\n\t\t\t\tfd.L0.FullName = appendFullName(sb, pd.FullName(), v)\n\t\t\tcase genid.FieldDescriptorProto_JsonName_field_number:\n\t\t\t\tfd.L1.StringName.InitJSON(sb.MakeString(v))\n\t\t\tcase genid.FieldDescriptorProto_DefaultValue_field_number:\n\t\t\t\tfd.L1.Default.val = protoreflect.ValueOfBytes(v) // temporarily store as bytes; later resolved in resolveMessages\n\t\t\tcase genid.FieldDescriptorProto_TypeName_field_number:\n\t\t\t\trawTypeName = v\n\t\t\tcase genid.FieldDescriptorProto_Options_field_number:\n\t\t\t\tfd.unmarshalOptions(v)\n\t\t\t\trawOptions = appendOptions(rawOptions, v)\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n\tif fd.L1.Kind == protoreflect.MessageKind && fd.L1.EditionFeatures.IsDelimitedEncoded {\n\t\tfd.L1.Kind = protoreflect.GroupKind\n\t}\n\tif fd.L1.EditionFeatures.IsLegacyRequired {\n\t\tfd.L1.Cardinality = protoreflect.Required\n\t}\n\tif rawTypeName != nil {\n\t\tname := makeFullName(sb, rawTypeName)\n\t\tswitch fd.L1.Kind {\n\t\tcase protoreflect.EnumKind:\n\t\t\tfd.L1.Enum = PlaceholderEnum(name)\n\t\tcase protoreflect.MessageKind, protoreflect.GroupKind:\n\t\t\tfd.L1.Message = PlaceholderMessage(name)\n\t\t}\n\t}\n\tfd.L1.Options = pf.builder.optionsUnmarshaler(&descopts.Field, rawOptions)\n}\n\nfunc (fd *Field) unmarshalOptions(b []byte) {\n\tconst FieldOptions_EnforceUTF8 = 13\n\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.VarintType:\n\t\t\tv, m := protowire.ConsumeVarint(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.FieldOptions_Packed_field_number:\n\t\t\t\tfd.L1.EditionFeatures.IsPacked = protowire.DecodeBool(v)\n\t\t\tcase genid.FieldOptions_Weak_field_number:\n\t\t\t\tfd.L1.IsWeak = protowire.DecodeBool(v)\n\t\t\tcase genid.FieldOptions_Lazy_field_number:\n\t\t\t\tfd.L1.IsLazy = protowire.DecodeBool(v)\n\t\t\tcase FieldOptions_EnforceUTF8:\n\t\t\t\tfd.L1.EditionFeatures.IsUTF8Validated = protowire.DecodeBool(v)\n\t\t\t}\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.FieldOptions_Features_field_number:\n\t\t\t\tfd.L1.EditionFeatures = unmarshalFeatureSet(v, fd.L1.EditionFeatures)\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n}\n\nfunc (od *Oneof) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) {\n\tod.L0.ParentFile = pf\n\tod.L0.Parent = pd\n\tod.L0.Index = i\n\n\tvar rawOptions []byte\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.OneofDescriptorProto_Name_field_number:\n\t\t\t\tod.L0.FullName = appendFullName(sb, pd.FullName(), v)\n\t\t\tcase genid.OneofDescriptorProto_Options_field_number:\n\t\t\t\trawOptions = appendOptions(rawOptions, v)\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n\tod.L1.Options = pf.builder.optionsUnmarshaler(&descopts.Oneof, rawOptions)\n}\n\nfunc (xd *Extension) unmarshalFull(b []byte, sb *strs.Builder) {\n\tvar rawTypeName []byte\n\tvar rawOptions []byte\n\txd.L2 = new(ExtensionL2)\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.VarintType:\n\t\t\tv, m := protowire.ConsumeVarint(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.FieldDescriptorProto_Proto3Optional_field_number:\n\t\t\t\txd.L2.IsProto3Optional = protowire.DecodeBool(v)\n\t\t\t}\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.FieldDescriptorProto_JsonName_field_number:\n\t\t\t\txd.L2.StringName.InitJSON(sb.MakeString(v))\n\t\t\tcase genid.FieldDescriptorProto_DefaultValue_field_number:\n\t\t\t\txd.L2.Default.val = protoreflect.ValueOfBytes(v) // temporarily store as bytes; later resolved in resolveExtensions\n\t\t\tcase genid.FieldDescriptorProto_TypeName_field_number:\n\t\t\t\trawTypeName = v\n\t\t\tcase genid.FieldDescriptorProto_Options_field_number:\n\t\t\t\trawOptions = appendOptions(rawOptions, v)\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n\tif rawTypeName != nil {\n\t\tname := makeFullName(sb, rawTypeName)\n\t\tswitch xd.L1.Kind {\n\t\tcase protoreflect.EnumKind:\n\t\t\txd.L2.Enum = PlaceholderEnum(name)\n\t\tcase protoreflect.MessageKind, protoreflect.GroupKind:\n\t\t\txd.L2.Message = PlaceholderMessage(name)\n\t\t}\n\t}\n\txd.L2.Options = xd.L0.ParentFile.builder.optionsUnmarshaler(&descopts.Field, rawOptions)\n}\n\nfunc (sd *Service) unmarshalFull(b []byte, sb *strs.Builder) {\n\tvar rawMethods [][]byte\n\tvar rawOptions []byte\n\tsd.L2 = new(ServiceL2)\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.ServiceDescriptorProto_Method_field_number:\n\t\t\t\trawMethods = append(rawMethods, v)\n\t\t\tcase genid.ServiceDescriptorProto_Options_field_number:\n\t\t\t\trawOptions = appendOptions(rawOptions, v)\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n\tif len(rawMethods) > 0 {\n\t\tsd.L2.Methods.List = make([]Method, len(rawMethods))\n\t\tfor i, b := range rawMethods {\n\t\t\tsd.L2.Methods.List[i].unmarshalFull(b, sb, sd.L0.ParentFile, sd, i)\n\t\t}\n\t}\n\tsd.L2.Options = sd.L0.ParentFile.builder.optionsUnmarshaler(&descopts.Service, rawOptions)\n}\n\nfunc (md *Method) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) {\n\tmd.L0.ParentFile = pf\n\tmd.L0.Parent = pd\n\tmd.L0.Index = i\n\n\tvar rawOptions []byte\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.VarintType:\n\t\t\tv, m := protowire.ConsumeVarint(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.MethodDescriptorProto_ClientStreaming_field_number:\n\t\t\t\tmd.L1.IsStreamingClient = protowire.DecodeBool(v)\n\t\t\tcase genid.MethodDescriptorProto_ServerStreaming_field_number:\n\t\t\t\tmd.L1.IsStreamingServer = protowire.DecodeBool(v)\n\t\t\t}\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.MethodDescriptorProto_Name_field_number:\n\t\t\t\tmd.L0.FullName = appendFullName(sb, pd.FullName(), v)\n\t\t\tcase genid.MethodDescriptorProto_InputType_field_number:\n\t\t\t\tmd.L1.Input = PlaceholderMessage(makeFullName(sb, v))\n\t\t\tcase genid.MethodDescriptorProto_OutputType_field_number:\n\t\t\t\tmd.L1.Output = PlaceholderMessage(makeFullName(sb, v))\n\t\t\tcase genid.MethodDescriptorProto_Options_field_number:\n\t\t\t\trawOptions = appendOptions(rawOptions, v)\n\t\t\t}\n\t\tdefault:\n\t\t\tm := protowire.ConsumeFieldValue(num, typ, b)\n\t\t\tb = b[m:]\n\t\t}\n\t}\n\tmd.L1.Options = pf.builder.optionsUnmarshaler(&descopts.Method, rawOptions)\n}\n\n// appendOptions appends src to dst, where the returned slice is never nil.\n// This is necessary to distinguish between empty and unpopulated options.\nfunc appendOptions(dst, src []byte) []byte {\n\tif dst == nil {\n\t\tdst = []byte{}\n\t}\n\treturn append(dst, src...)\n}\n\n// optionsUnmarshaler constructs a lazy unmarshal function for an options message.\n//\n// The type of message to unmarshal to is passed as a pointer since the\n// vars in descopts may not yet be populated at the time this function is called.\nfunc (db *Builder) optionsUnmarshaler(p *protoreflect.ProtoMessage, b []byte) func() protoreflect.ProtoMessage {\n\tif b == nil {\n\t\treturn nil\n\t}\n\tvar opts protoreflect.ProtoMessage\n\tvar once sync.Once\n\treturn func() protoreflect.ProtoMessage {\n\t\tonce.Do(func() {\n\t\t\tif *p == nil {\n\t\t\t\tpanic(\"Descriptor.Options called without importing the descriptor package\")\n\t\t\t}\n\t\t\topts = reflect.New(reflect.TypeOf(*p).Elem()).Interface().(protoreflect.ProtoMessage)\n\t\t\tif err := (proto.UnmarshalOptions{\n\t\t\t\tAllowPartial: true,\n\t\t\t\tResolver:     db.TypeResolver,\n\t\t\t}).Unmarshal(b, opts); err != nil {\n\t\t\t\tpanic(err)\n\t\t\t}\n\t\t})\n\t\treturn opts\n\t}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/filedesc/desc_list.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage filedesc\n\nimport (\n\t\"fmt\"\n\t\"math\"\n\t\"sort\"\n\t\"sync\"\n\n\t\"google.golang.org/protobuf/internal/genid\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/descfmt\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/internal/pragma\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\ntype FileImports []protoreflect.FileImport\n\nfunc (p *FileImports) Len() int                            { return len(*p) }\nfunc (p *FileImports) Get(i int) protoreflect.FileImport   { return (*p)[i] }\nfunc (p *FileImports) Format(s fmt.State, r rune)          { descfmt.FormatList(s, r, p) }\nfunc (p *FileImports) ProtoInternal(pragma.DoNotImplement) {}\n\ntype Names struct {\n\tList []protoreflect.Name\n\tonce sync.Once\n\thas  map[protoreflect.Name]int // protected by once\n}\n\nfunc (p *Names) Len() int                            { return len(p.List) }\nfunc (p *Names) Get(i int) protoreflect.Name         { return p.List[i] }\nfunc (p *Names) Has(s protoreflect.Name) bool        { return p.lazyInit().has[s] > 0 }\nfunc (p *Names) Format(s fmt.State, r rune)          { descfmt.FormatList(s, r, p) }\nfunc (p *Names) ProtoInternal(pragma.DoNotImplement) {}\nfunc (p *Names) lazyInit() *Names {\n\tp.once.Do(func() {\n\t\tif len(p.List) > 0 {\n\t\t\tp.has = make(map[protoreflect.Name]int, len(p.List))\n\t\t\tfor _, s := range p.List {\n\t\t\t\tp.has[s] = p.has[s] + 1\n\t\t\t}\n\t\t}\n\t})\n\treturn p\n}\n\n// CheckValid reports any errors with the set of names with an error message\n// that completes the sentence: \"ranges is invalid because it has ...\"\nfunc (p *Names) CheckValid() error {\n\tfor s, n := range p.lazyInit().has {\n\t\tswitch {\n\t\tcase n > 1:\n\t\t\treturn errors.New(\"duplicate name: %q\", s)\n\t\tcase false && !s.IsValid():\n\t\t\t// NOTE: The C++ implementation does not validate the identifier.\n\t\t\t// See https://github.com/protocolbuffers/protobuf/issues/6335.\n\t\t\treturn errors.New(\"invalid name: %q\", s)\n\t\t}\n\t}\n\treturn nil\n}\n\ntype EnumRanges struct {\n\tList   [][2]protoreflect.EnumNumber // start inclusive; end inclusive\n\tonce   sync.Once\n\tsorted [][2]protoreflect.EnumNumber // protected by once\n}\n\nfunc (p *EnumRanges) Len() int                             { return len(p.List) }\nfunc (p *EnumRanges) Get(i int) [2]protoreflect.EnumNumber { return p.List[i] }\nfunc (p *EnumRanges) Has(n protoreflect.EnumNumber) bool {\n\tfor ls := p.lazyInit().sorted; len(ls) > 0; {\n\t\ti := len(ls) / 2\n\t\tswitch r := enumRange(ls[i]); {\n\t\tcase n < r.Start():\n\t\t\tls = ls[:i] // search lower\n\t\tcase n > r.End():\n\t\t\tls = ls[i+1:] // search upper\n\t\tdefault:\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\nfunc (p *EnumRanges) Format(s fmt.State, r rune)          { descfmt.FormatList(s, r, p) }\nfunc (p *EnumRanges) ProtoInternal(pragma.DoNotImplement) {}\nfunc (p *EnumRanges) lazyInit() *EnumRanges {\n\tp.once.Do(func() {\n\t\tp.sorted = append(p.sorted, p.List...)\n\t\tsort.Slice(p.sorted, func(i, j int) bool {\n\t\t\treturn p.sorted[i][0] < p.sorted[j][0]\n\t\t})\n\t})\n\treturn p\n}\n\n// CheckValid reports any errors with the set of names with an error message\n// that completes the sentence: \"ranges is invalid because it has ...\"\nfunc (p *EnumRanges) CheckValid() error {\n\tvar rp enumRange\n\tfor i, r := range p.lazyInit().sorted {\n\t\tr := enumRange(r)\n\t\tswitch {\n\t\tcase !(r.Start() <= r.End()):\n\t\t\treturn errors.New(\"invalid range: %v\", r)\n\t\tcase !(rp.End() < r.Start()) && i > 0:\n\t\t\treturn errors.New(\"overlapping ranges: %v with %v\", rp, r)\n\t\t}\n\t\trp = r\n\t}\n\treturn nil\n}\n\ntype enumRange [2]protoreflect.EnumNumber\n\nfunc (r enumRange) Start() protoreflect.EnumNumber { return r[0] } // inclusive\nfunc (r enumRange) End() protoreflect.EnumNumber   { return r[1] } // inclusive\nfunc (r enumRange) String() string {\n\tif r.Start() == r.End() {\n\t\treturn fmt.Sprintf(\"%d\", r.Start())\n\t}\n\treturn fmt.Sprintf(\"%d to %d\", r.Start(), r.End())\n}\n\ntype FieldRanges struct {\n\tList   [][2]protoreflect.FieldNumber // start inclusive; end exclusive\n\tonce   sync.Once\n\tsorted [][2]protoreflect.FieldNumber // protected by once\n}\n\nfunc (p *FieldRanges) Len() int                              { return len(p.List) }\nfunc (p *FieldRanges) Get(i int) [2]protoreflect.FieldNumber { return p.List[i] }\nfunc (p *FieldRanges) Has(n protoreflect.FieldNumber) bool {\n\tfor ls := p.lazyInit().sorted; len(ls) > 0; {\n\t\ti := len(ls) / 2\n\t\tswitch r := fieldRange(ls[i]); {\n\t\tcase n < r.Start():\n\t\t\tls = ls[:i] // search lower\n\t\tcase n > r.End():\n\t\t\tls = ls[i+1:] // search upper\n\t\tdefault:\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\nfunc (p *FieldRanges) Format(s fmt.State, r rune)          { descfmt.FormatList(s, r, p) }\nfunc (p *FieldRanges) ProtoInternal(pragma.DoNotImplement) {}\nfunc (p *FieldRanges) lazyInit() *FieldRanges {\n\tp.once.Do(func() {\n\t\tp.sorted = append(p.sorted, p.List...)\n\t\tsort.Slice(p.sorted, func(i, j int) bool {\n\t\t\treturn p.sorted[i][0] < p.sorted[j][0]\n\t\t})\n\t})\n\treturn p\n}\n\n// CheckValid reports any errors with the set of ranges with an error message\n// that completes the sentence: \"ranges is invalid because it has ...\"\nfunc (p *FieldRanges) CheckValid(isMessageSet bool) error {\n\tvar rp fieldRange\n\tfor i, r := range p.lazyInit().sorted {\n\t\tr := fieldRange(r)\n\t\tswitch {\n\t\tcase !isValidFieldNumber(r.Start(), isMessageSet):\n\t\t\treturn errors.New(\"invalid field number: %d\", r.Start())\n\t\tcase !isValidFieldNumber(r.End(), isMessageSet):\n\t\t\treturn errors.New(\"invalid field number: %d\", r.End())\n\t\tcase !(r.Start() <= r.End()):\n\t\t\treturn errors.New(\"invalid range: %v\", r)\n\t\tcase !(rp.End() < r.Start()) && i > 0:\n\t\t\treturn errors.New(\"overlapping ranges: %v with %v\", rp, r)\n\t\t}\n\t\trp = r\n\t}\n\treturn nil\n}\n\n// isValidFieldNumber reports whether the field number is valid.\n// Unlike the FieldNumber.IsValid method, it allows ranges that cover the\n// reserved number range.\nfunc isValidFieldNumber(n protoreflect.FieldNumber, isMessageSet bool) bool {\n\treturn protowire.MinValidNumber <= n && (n <= protowire.MaxValidNumber || isMessageSet)\n}\n\n// CheckOverlap reports an error if p and q overlap.\nfunc (p *FieldRanges) CheckOverlap(q *FieldRanges) error {\n\trps := p.lazyInit().sorted\n\trqs := q.lazyInit().sorted\n\tfor pi, qi := 0, 0; pi < len(rps) && qi < len(rqs); {\n\t\trp := fieldRange(rps[pi])\n\t\trq := fieldRange(rqs[qi])\n\t\tif !(rp.End() < rq.Start() || rq.End() < rp.Start()) {\n\t\t\treturn errors.New(\"overlapping ranges: %v with %v\", rp, rq)\n\t\t}\n\t\tif rp.Start() < rq.Start() {\n\t\t\tpi++\n\t\t} else {\n\t\t\tqi++\n\t\t}\n\t}\n\treturn nil\n}\n\ntype fieldRange [2]protoreflect.FieldNumber\n\nfunc (r fieldRange) Start() protoreflect.FieldNumber { return r[0] }     // inclusive\nfunc (r fieldRange) End() protoreflect.FieldNumber   { return r[1] - 1 } // inclusive\nfunc (r fieldRange) String() string {\n\tif r.Start() == r.End() {\n\t\treturn fmt.Sprintf(\"%d\", r.Start())\n\t}\n\treturn fmt.Sprintf(\"%d to %d\", r.Start(), r.End())\n}\n\ntype FieldNumbers struct {\n\tList []protoreflect.FieldNumber\n\tonce sync.Once\n\thas  map[protoreflect.FieldNumber]struct{} // protected by once\n}\n\nfunc (p *FieldNumbers) Len() int                           { return len(p.List) }\nfunc (p *FieldNumbers) Get(i int) protoreflect.FieldNumber { return p.List[i] }\nfunc (p *FieldNumbers) Has(n protoreflect.FieldNumber) bool {\n\tp.once.Do(func() {\n\t\tif len(p.List) > 0 {\n\t\t\tp.has = make(map[protoreflect.FieldNumber]struct{}, len(p.List))\n\t\t\tfor _, n := range p.List {\n\t\t\t\tp.has[n] = struct{}{}\n\t\t\t}\n\t\t}\n\t})\n\t_, ok := p.has[n]\n\treturn ok\n}\nfunc (p *FieldNumbers) Format(s fmt.State, r rune)          { descfmt.FormatList(s, r, p) }\nfunc (p *FieldNumbers) ProtoInternal(pragma.DoNotImplement) {}\n\ntype OneofFields struct {\n\tList   []protoreflect.FieldDescriptor\n\tonce   sync.Once\n\tbyName map[protoreflect.Name]protoreflect.FieldDescriptor        // protected by once\n\tbyJSON map[string]protoreflect.FieldDescriptor                   // protected by once\n\tbyText map[string]protoreflect.FieldDescriptor                   // protected by once\n\tbyNum  map[protoreflect.FieldNumber]protoreflect.FieldDescriptor // protected by once\n}\n\nfunc (p *OneofFields) Len() int                               { return len(p.List) }\nfunc (p *OneofFields) Get(i int) protoreflect.FieldDescriptor { return p.List[i] }\nfunc (p *OneofFields) ByName(s protoreflect.Name) protoreflect.FieldDescriptor {\n\treturn p.lazyInit().byName[s]\n}\nfunc (p *OneofFields) ByJSONName(s string) protoreflect.FieldDescriptor {\n\treturn p.lazyInit().byJSON[s]\n}\nfunc (p *OneofFields) ByTextName(s string) protoreflect.FieldDescriptor {\n\treturn p.lazyInit().byText[s]\n}\nfunc (p *OneofFields) ByNumber(n protoreflect.FieldNumber) protoreflect.FieldDescriptor {\n\treturn p.lazyInit().byNum[n]\n}\nfunc (p *OneofFields) Format(s fmt.State, r rune)          { descfmt.FormatList(s, r, p) }\nfunc (p *OneofFields) ProtoInternal(pragma.DoNotImplement) {}\n\nfunc (p *OneofFields) lazyInit() *OneofFields {\n\tp.once.Do(func() {\n\t\tif len(p.List) > 0 {\n\t\t\tp.byName = make(map[protoreflect.Name]protoreflect.FieldDescriptor, len(p.List))\n\t\t\tp.byJSON = make(map[string]protoreflect.FieldDescriptor, len(p.List))\n\t\t\tp.byText = make(map[string]protoreflect.FieldDescriptor, len(p.List))\n\t\t\tp.byNum = make(map[protoreflect.FieldNumber]protoreflect.FieldDescriptor, len(p.List))\n\t\t\tfor _, f := range p.List {\n\t\t\t\t// Field names and numbers are guaranteed to be unique.\n\t\t\t\tp.byName[f.Name()] = f\n\t\t\t\tp.byJSON[f.JSONName()] = f\n\t\t\t\tp.byText[f.TextName()] = f\n\t\t\t\tp.byNum[f.Number()] = f\n\t\t\t}\n\t\t}\n\t})\n\treturn p\n}\n\ntype SourceLocations struct {\n\t// List is a list of SourceLocations.\n\t// The SourceLocation.Next field does not need to be populated\n\t// as it will be lazily populated upon first need.\n\tList []protoreflect.SourceLocation\n\n\t// File is the parent file descriptor that these locations are relative to.\n\t// If non-nil, ByDescriptor verifies that the provided descriptor\n\t// is a child of this file descriptor.\n\tFile protoreflect.FileDescriptor\n\n\tonce   sync.Once\n\tbyPath map[pathKey]int\n}\n\nfunc (p *SourceLocations) Len() int                              { return len(p.List) }\nfunc (p *SourceLocations) Get(i int) protoreflect.SourceLocation { return p.lazyInit().List[i] }\nfunc (p *SourceLocations) byKey(k pathKey) protoreflect.SourceLocation {\n\tif i, ok := p.lazyInit().byPath[k]; ok {\n\t\treturn p.List[i]\n\t}\n\treturn protoreflect.SourceLocation{}\n}\nfunc (p *SourceLocations) ByPath(path protoreflect.SourcePath) protoreflect.SourceLocation {\n\treturn p.byKey(newPathKey(path))\n}\nfunc (p *SourceLocations) ByDescriptor(desc protoreflect.Descriptor) protoreflect.SourceLocation {\n\tif p.File != nil && desc != nil && p.File != desc.ParentFile() {\n\t\treturn protoreflect.SourceLocation{} // mismatching parent files\n\t}\n\tvar pathArr [16]int32\n\tpath := pathArr[:0]\n\tfor {\n\t\tswitch desc.(type) {\n\t\tcase protoreflect.FileDescriptor:\n\t\t\t// Reverse the path since it was constructed in reverse.\n\t\t\tfor i, j := 0, len(path)-1; i < j; i, j = i+1, j-1 {\n\t\t\t\tpath[i], path[j] = path[j], path[i]\n\t\t\t}\n\t\t\treturn p.byKey(newPathKey(path))\n\t\tcase protoreflect.MessageDescriptor:\n\t\t\tpath = append(path, int32(desc.Index()))\n\t\t\tdesc = desc.Parent()\n\t\t\tswitch desc.(type) {\n\t\t\tcase protoreflect.FileDescriptor:\n\t\t\t\tpath = append(path, int32(genid.FileDescriptorProto_MessageType_field_number))\n\t\t\tcase protoreflect.MessageDescriptor:\n\t\t\t\tpath = append(path, int32(genid.DescriptorProto_NestedType_field_number))\n\t\t\tdefault:\n\t\t\t\treturn protoreflect.SourceLocation{}\n\t\t\t}\n\t\tcase protoreflect.FieldDescriptor:\n\t\t\tisExtension := desc.(protoreflect.FieldDescriptor).IsExtension()\n\t\t\tpath = append(path, int32(desc.Index()))\n\t\t\tdesc = desc.Parent()\n\t\t\tif isExtension {\n\t\t\t\tswitch desc.(type) {\n\t\t\t\tcase protoreflect.FileDescriptor:\n\t\t\t\t\tpath = append(path, int32(genid.FileDescriptorProto_Extension_field_number))\n\t\t\t\tcase protoreflect.MessageDescriptor:\n\t\t\t\t\tpath = append(path, int32(genid.DescriptorProto_Extension_field_number))\n\t\t\t\tdefault:\n\t\t\t\t\treturn protoreflect.SourceLocation{}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tswitch desc.(type) {\n\t\t\t\tcase protoreflect.MessageDescriptor:\n\t\t\t\t\tpath = append(path, int32(genid.DescriptorProto_Field_field_number))\n\t\t\t\tdefault:\n\t\t\t\t\treturn protoreflect.SourceLocation{}\n\t\t\t\t}\n\t\t\t}\n\t\tcase protoreflect.OneofDescriptor:\n\t\t\tpath = append(path, int32(desc.Index()))\n\t\t\tdesc = desc.Parent()\n\t\t\tswitch desc.(type) {\n\t\t\tcase protoreflect.MessageDescriptor:\n\t\t\t\tpath = append(path, int32(genid.DescriptorProto_OneofDecl_field_number))\n\t\t\tdefault:\n\t\t\t\treturn protoreflect.SourceLocation{}\n\t\t\t}\n\t\tcase protoreflect.EnumDescriptor:\n\t\t\tpath = append(path, int32(desc.Index()))\n\t\t\tdesc = desc.Parent()\n\t\t\tswitch desc.(type) {\n\t\t\tcase protoreflect.FileDescriptor:\n\t\t\t\tpath = append(path, int32(genid.FileDescriptorProto_EnumType_field_number))\n\t\t\tcase protoreflect.MessageDescriptor:\n\t\t\t\tpath = append(path, int32(genid.DescriptorProto_EnumType_field_number))\n\t\t\tdefault:\n\t\t\t\treturn protoreflect.SourceLocation{}\n\t\t\t}\n\t\tcase protoreflect.EnumValueDescriptor:\n\t\t\tpath = append(path, int32(desc.Index()))\n\t\t\tdesc = desc.Parent()\n\t\t\tswitch desc.(type) {\n\t\t\tcase protoreflect.EnumDescriptor:\n\t\t\t\tpath = append(path, int32(genid.EnumDescriptorProto_Value_field_number))\n\t\t\tdefault:\n\t\t\t\treturn protoreflect.SourceLocation{}\n\t\t\t}\n\t\tcase protoreflect.ServiceDescriptor:\n\t\t\tpath = append(path, int32(desc.Index()))\n\t\t\tdesc = desc.Parent()\n\t\t\tswitch desc.(type) {\n\t\t\tcase protoreflect.FileDescriptor:\n\t\t\t\tpath = append(path, int32(genid.FileDescriptorProto_Service_field_number))\n\t\t\tdefault:\n\t\t\t\treturn protoreflect.SourceLocation{}\n\t\t\t}\n\t\tcase protoreflect.MethodDescriptor:\n\t\t\tpath = append(path, int32(desc.Index()))\n\t\t\tdesc = desc.Parent()\n\t\t\tswitch desc.(type) {\n\t\t\tcase protoreflect.ServiceDescriptor:\n\t\t\t\tpath = append(path, int32(genid.ServiceDescriptorProto_Method_field_number))\n\t\t\tdefault:\n\t\t\t\treturn protoreflect.SourceLocation{}\n\t\t\t}\n\t\tdefault:\n\t\t\treturn protoreflect.SourceLocation{}\n\t\t}\n\t}\n}\nfunc (p *SourceLocations) lazyInit() *SourceLocations {\n\tp.once.Do(func() {\n\t\tif len(p.List) > 0 {\n\t\t\t// Collect all the indexes for a given path.\n\t\t\tpathIdxs := make(map[pathKey][]int, len(p.List))\n\t\t\tfor i, l := range p.List {\n\t\t\t\tk := newPathKey(l.Path)\n\t\t\t\tpathIdxs[k] = append(pathIdxs[k], i)\n\t\t\t}\n\n\t\t\t// Update the next index for all locations.\n\t\t\tp.byPath = make(map[pathKey]int, len(p.List))\n\t\t\tfor k, idxs := range pathIdxs {\n\t\t\t\tfor i := 0; i < len(idxs)-1; i++ {\n\t\t\t\t\tp.List[idxs[i]].Next = idxs[i+1]\n\t\t\t\t}\n\t\t\t\tp.List[idxs[len(idxs)-1]].Next = 0\n\t\t\t\tp.byPath[k] = idxs[0] // record the first location for this path\n\t\t\t}\n\t\t}\n\t})\n\treturn p\n}\nfunc (p *SourceLocations) ProtoInternal(pragma.DoNotImplement) {}\n\n// pathKey is a comparable representation of protoreflect.SourcePath.\ntype pathKey struct {\n\tarr [16]uint8 // first n-1 path segments; last element is the length\n\tstr string    // used if the path does not fit in arr\n}\n\nfunc newPathKey(p protoreflect.SourcePath) (k pathKey) {\n\tif len(p) < len(k.arr) {\n\t\tfor i, ps := range p {\n\t\t\tif ps < 0 || math.MaxUint8 <= ps {\n\t\t\t\treturn pathKey{str: p.String()}\n\t\t\t}\n\t\t\tk.arr[i] = uint8(ps)\n\t\t}\n\t\tk.arr[len(k.arr)-1] = uint8(len(p))\n\t\treturn k\n\t}\n\treturn pathKey{str: p.String()}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/filedesc/desc_list_gen.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by generate-types. DO NOT EDIT.\n\npackage filedesc\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"google.golang.org/protobuf/internal/descfmt\"\n\t\"google.golang.org/protobuf/internal/pragma\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\ntype Enums struct {\n\tList   []Enum\n\tonce   sync.Once\n\tbyName map[protoreflect.Name]*Enum // protected by once\n}\n\nfunc (p *Enums) Len() int {\n\treturn len(p.List)\n}\nfunc (p *Enums) Get(i int) protoreflect.EnumDescriptor {\n\treturn &p.List[i]\n}\nfunc (p *Enums) ByName(s protoreflect.Name) protoreflect.EnumDescriptor {\n\tif d := p.lazyInit().byName[s]; d != nil {\n\t\treturn d\n\t}\n\treturn nil\n}\nfunc (p *Enums) Format(s fmt.State, r rune) {\n\tdescfmt.FormatList(s, r, p)\n}\nfunc (p *Enums) ProtoInternal(pragma.DoNotImplement) {}\nfunc (p *Enums) lazyInit() *Enums {\n\tp.once.Do(func() {\n\t\tif len(p.List) > 0 {\n\t\t\tp.byName = make(map[protoreflect.Name]*Enum, len(p.List))\n\t\t\tfor i := range p.List {\n\t\t\t\td := &p.List[i]\n\t\t\t\tif _, ok := p.byName[d.Name()]; !ok {\n\t\t\t\t\tp.byName[d.Name()] = d\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t})\n\treturn p\n}\n\ntype EnumValues struct {\n\tList   []EnumValue\n\tonce   sync.Once\n\tbyName map[protoreflect.Name]*EnumValue       // protected by once\n\tbyNum  map[protoreflect.EnumNumber]*EnumValue // protected by once\n}\n\nfunc (p *EnumValues) Len() int {\n\treturn len(p.List)\n}\nfunc (p *EnumValues) Get(i int) protoreflect.EnumValueDescriptor {\n\treturn &p.List[i]\n}\nfunc (p *EnumValues) ByName(s protoreflect.Name) protoreflect.EnumValueDescriptor {\n\tif d := p.lazyInit().byName[s]; d != nil {\n\t\treturn d\n\t}\n\treturn nil\n}\nfunc (p *EnumValues) ByNumber(n protoreflect.EnumNumber) protoreflect.EnumValueDescriptor {\n\tif d := p.lazyInit().byNum[n]; d != nil {\n\t\treturn d\n\t}\n\treturn nil\n}\nfunc (p *EnumValues) Format(s fmt.State, r rune) {\n\tdescfmt.FormatList(s, r, p)\n}\nfunc (p *EnumValues) ProtoInternal(pragma.DoNotImplement) {}\nfunc (p *EnumValues) lazyInit() *EnumValues {\n\tp.once.Do(func() {\n\t\tif len(p.List) > 0 {\n\t\t\tp.byName = make(map[protoreflect.Name]*EnumValue, len(p.List))\n\t\t\tp.byNum = make(map[protoreflect.EnumNumber]*EnumValue, len(p.List))\n\t\t\tfor i := range p.List {\n\t\t\t\td := &p.List[i]\n\t\t\t\tif _, ok := p.byName[d.Name()]; !ok {\n\t\t\t\t\tp.byName[d.Name()] = d\n\t\t\t\t}\n\t\t\t\tif _, ok := p.byNum[d.Number()]; !ok {\n\t\t\t\t\tp.byNum[d.Number()] = d\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t})\n\treturn p\n}\n\ntype Messages struct {\n\tList   []Message\n\tonce   sync.Once\n\tbyName map[protoreflect.Name]*Message // protected by once\n}\n\nfunc (p *Messages) Len() int {\n\treturn len(p.List)\n}\nfunc (p *Messages) Get(i int) protoreflect.MessageDescriptor {\n\treturn &p.List[i]\n}\nfunc (p *Messages) ByName(s protoreflect.Name) protoreflect.MessageDescriptor {\n\tif d := p.lazyInit().byName[s]; d != nil {\n\t\treturn d\n\t}\n\treturn nil\n}\nfunc (p *Messages) Format(s fmt.State, r rune) {\n\tdescfmt.FormatList(s, r, p)\n}\nfunc (p *Messages) ProtoInternal(pragma.DoNotImplement) {}\nfunc (p *Messages) lazyInit() *Messages {\n\tp.once.Do(func() {\n\t\tif len(p.List) > 0 {\n\t\t\tp.byName = make(map[protoreflect.Name]*Message, len(p.List))\n\t\t\tfor i := range p.List {\n\t\t\t\td := &p.List[i]\n\t\t\t\tif _, ok := p.byName[d.Name()]; !ok {\n\t\t\t\t\tp.byName[d.Name()] = d\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t})\n\treturn p\n}\n\ntype Fields struct {\n\tList   []Field\n\tonce   sync.Once\n\tbyName map[protoreflect.Name]*Field        // protected by once\n\tbyJSON map[string]*Field                   // protected by once\n\tbyText map[string]*Field                   // protected by once\n\tbyNum  map[protoreflect.FieldNumber]*Field // protected by once\n}\n\nfunc (p *Fields) Len() int {\n\treturn len(p.List)\n}\nfunc (p *Fields) Get(i int) protoreflect.FieldDescriptor {\n\treturn &p.List[i]\n}\nfunc (p *Fields) ByName(s protoreflect.Name) protoreflect.FieldDescriptor {\n\tif d := p.lazyInit().byName[s]; d != nil {\n\t\treturn d\n\t}\n\treturn nil\n}\nfunc (p *Fields) ByJSONName(s string) protoreflect.FieldDescriptor {\n\tif d := p.lazyInit().byJSON[s]; d != nil {\n\t\treturn d\n\t}\n\treturn nil\n}\nfunc (p *Fields) ByTextName(s string) protoreflect.FieldDescriptor {\n\tif d := p.lazyInit().byText[s]; d != nil {\n\t\treturn d\n\t}\n\treturn nil\n}\nfunc (p *Fields) ByNumber(n protoreflect.FieldNumber) protoreflect.FieldDescriptor {\n\tif d := p.lazyInit().byNum[n]; d != nil {\n\t\treturn d\n\t}\n\treturn nil\n}\nfunc (p *Fields) Format(s fmt.State, r rune) {\n\tdescfmt.FormatList(s, r, p)\n}\nfunc (p *Fields) ProtoInternal(pragma.DoNotImplement) {}\nfunc (p *Fields) lazyInit() *Fields {\n\tp.once.Do(func() {\n\t\tif len(p.List) > 0 {\n\t\t\tp.byName = make(map[protoreflect.Name]*Field, len(p.List))\n\t\t\tp.byJSON = make(map[string]*Field, len(p.List))\n\t\t\tp.byText = make(map[string]*Field, len(p.List))\n\t\t\tp.byNum = make(map[protoreflect.FieldNumber]*Field, len(p.List))\n\t\t\tfor i := range p.List {\n\t\t\t\td := &p.List[i]\n\t\t\t\tif _, ok := p.byName[d.Name()]; !ok {\n\t\t\t\t\tp.byName[d.Name()] = d\n\t\t\t\t}\n\t\t\t\tif _, ok := p.byJSON[d.JSONName()]; !ok {\n\t\t\t\t\tp.byJSON[d.JSONName()] = d\n\t\t\t\t}\n\t\t\t\tif _, ok := p.byText[d.TextName()]; !ok {\n\t\t\t\t\tp.byText[d.TextName()] = d\n\t\t\t\t}\n\t\t\t\tif isGroupLike(d) {\n\t\t\t\t\tlowerJSONName := strings.ToLower(d.JSONName())\n\t\t\t\t\tif _, ok := p.byJSON[lowerJSONName]; !ok {\n\t\t\t\t\t\tp.byJSON[lowerJSONName] = d\n\t\t\t\t\t}\n\t\t\t\t\tlowerTextName := strings.ToLower(d.TextName())\n\t\t\t\t\tif _, ok := p.byText[lowerTextName]; !ok {\n\t\t\t\t\t\tp.byText[lowerTextName] = d\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif _, ok := p.byNum[d.Number()]; !ok {\n\t\t\t\t\tp.byNum[d.Number()] = d\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t})\n\treturn p\n}\n\ntype Oneofs struct {\n\tList   []Oneof\n\tonce   sync.Once\n\tbyName map[protoreflect.Name]*Oneof // protected by once\n}\n\nfunc (p *Oneofs) Len() int {\n\treturn len(p.List)\n}\nfunc (p *Oneofs) Get(i int) protoreflect.OneofDescriptor {\n\treturn &p.List[i]\n}\nfunc (p *Oneofs) ByName(s protoreflect.Name) protoreflect.OneofDescriptor {\n\tif d := p.lazyInit().byName[s]; d != nil {\n\t\treturn d\n\t}\n\treturn nil\n}\nfunc (p *Oneofs) Format(s fmt.State, r rune) {\n\tdescfmt.FormatList(s, r, p)\n}\nfunc (p *Oneofs) ProtoInternal(pragma.DoNotImplement) {}\nfunc (p *Oneofs) lazyInit() *Oneofs {\n\tp.once.Do(func() {\n\t\tif len(p.List) > 0 {\n\t\t\tp.byName = make(map[protoreflect.Name]*Oneof, len(p.List))\n\t\t\tfor i := range p.List {\n\t\t\t\td := &p.List[i]\n\t\t\t\tif _, ok := p.byName[d.Name()]; !ok {\n\t\t\t\t\tp.byName[d.Name()] = d\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t})\n\treturn p\n}\n\ntype Extensions struct {\n\tList   []Extension\n\tonce   sync.Once\n\tbyName map[protoreflect.Name]*Extension // protected by once\n}\n\nfunc (p *Extensions) Len() int {\n\treturn len(p.List)\n}\nfunc (p *Extensions) Get(i int) protoreflect.ExtensionDescriptor {\n\treturn &p.List[i]\n}\nfunc (p *Extensions) ByName(s protoreflect.Name) protoreflect.ExtensionDescriptor {\n\tif d := p.lazyInit().byName[s]; d != nil {\n\t\treturn d\n\t}\n\treturn nil\n}\nfunc (p *Extensions) Format(s fmt.State, r rune) {\n\tdescfmt.FormatList(s, r, p)\n}\nfunc (p *Extensions) ProtoInternal(pragma.DoNotImplement) {}\nfunc (p *Extensions) lazyInit() *Extensions {\n\tp.once.Do(func() {\n\t\tif len(p.List) > 0 {\n\t\t\tp.byName = make(map[protoreflect.Name]*Extension, len(p.List))\n\t\t\tfor i := range p.List {\n\t\t\t\td := &p.List[i]\n\t\t\t\tif _, ok := p.byName[d.Name()]; !ok {\n\t\t\t\t\tp.byName[d.Name()] = d\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t})\n\treturn p\n}\n\ntype Services struct {\n\tList   []Service\n\tonce   sync.Once\n\tbyName map[protoreflect.Name]*Service // protected by once\n}\n\nfunc (p *Services) Len() int {\n\treturn len(p.List)\n}\nfunc (p *Services) Get(i int) protoreflect.ServiceDescriptor {\n\treturn &p.List[i]\n}\nfunc (p *Services) ByName(s protoreflect.Name) protoreflect.ServiceDescriptor {\n\tif d := p.lazyInit().byName[s]; d != nil {\n\t\treturn d\n\t}\n\treturn nil\n}\nfunc (p *Services) Format(s fmt.State, r rune) {\n\tdescfmt.FormatList(s, r, p)\n}\nfunc (p *Services) ProtoInternal(pragma.DoNotImplement) {}\nfunc (p *Services) lazyInit() *Services {\n\tp.once.Do(func() {\n\t\tif len(p.List) > 0 {\n\t\t\tp.byName = make(map[protoreflect.Name]*Service, len(p.List))\n\t\t\tfor i := range p.List {\n\t\t\t\td := &p.List[i]\n\t\t\t\tif _, ok := p.byName[d.Name()]; !ok {\n\t\t\t\t\tp.byName[d.Name()] = d\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t})\n\treturn p\n}\n\ntype Methods struct {\n\tList   []Method\n\tonce   sync.Once\n\tbyName map[protoreflect.Name]*Method // protected by once\n}\n\nfunc (p *Methods) Len() int {\n\treturn len(p.List)\n}\nfunc (p *Methods) Get(i int) protoreflect.MethodDescriptor {\n\treturn &p.List[i]\n}\nfunc (p *Methods) ByName(s protoreflect.Name) protoreflect.MethodDescriptor {\n\tif d := p.lazyInit().byName[s]; d != nil {\n\t\treturn d\n\t}\n\treturn nil\n}\nfunc (p *Methods) Format(s fmt.State, r rune) {\n\tdescfmt.FormatList(s, r, p)\n}\nfunc (p *Methods) ProtoInternal(pragma.DoNotImplement) {}\nfunc (p *Methods) lazyInit() *Methods {\n\tp.once.Do(func() {\n\t\tif len(p.List) > 0 {\n\t\t\tp.byName = make(map[protoreflect.Name]*Method, len(p.List))\n\t\t\tfor i := range p.List {\n\t\t\t\td := &p.List[i]\n\t\t\t\tif _, ok := p.byName[d.Name()]; !ok {\n\t\t\t\t\tp.byName[d.Name()] = d\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t})\n\treturn p\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/filedesc/editions.go",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage filedesc\n\nimport (\n\t\"fmt\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/editiondefaults\"\n\t\"google.golang.org/protobuf/internal/genid\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\nvar defaultsCache = make(map[Edition]EditionFeatures)\nvar defaultsKeys = []Edition{}\n\nfunc init() {\n\tunmarshalEditionDefaults(editiondefaults.Defaults)\n\tSurrogateProto2.L1.EditionFeatures = getFeaturesFor(EditionProto2)\n\tSurrogateProto3.L1.EditionFeatures = getFeaturesFor(EditionProto3)\n\tSurrogateEdition2023.L1.EditionFeatures = getFeaturesFor(Edition2023)\n}\n\nfunc unmarshalGoFeature(b []byte, parent EditionFeatures) EditionFeatures {\n\tfor len(b) > 0 {\n\t\tnum, _, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch num {\n\t\tcase genid.GoFeatures_LegacyUnmarshalJsonEnum_field_number:\n\t\t\tv, m := protowire.ConsumeVarint(b)\n\t\t\tb = b[m:]\n\t\t\tparent.GenerateLegacyUnmarshalJSON = protowire.DecodeBool(v)\n\t\tdefault:\n\t\t\tpanic(fmt.Sprintf(\"unkown field number %d while unmarshalling GoFeatures\", num))\n\t\t}\n\t}\n\treturn parent\n}\n\nfunc unmarshalFeatureSet(b []byte, parent EditionFeatures) EditionFeatures {\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.VarintType:\n\t\t\tv, m := protowire.ConsumeVarint(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.FeatureSet_FieldPresence_field_number:\n\t\t\t\tparent.IsFieldPresence = v == genid.FeatureSet_EXPLICIT_enum_value || v == genid.FeatureSet_LEGACY_REQUIRED_enum_value\n\t\t\t\tparent.IsLegacyRequired = v == genid.FeatureSet_LEGACY_REQUIRED_enum_value\n\t\t\tcase genid.FeatureSet_EnumType_field_number:\n\t\t\t\tparent.IsOpenEnum = v == genid.FeatureSet_OPEN_enum_value\n\t\t\tcase genid.FeatureSet_RepeatedFieldEncoding_field_number:\n\t\t\t\tparent.IsPacked = v == genid.FeatureSet_PACKED_enum_value\n\t\t\tcase genid.FeatureSet_Utf8Validation_field_number:\n\t\t\t\tparent.IsUTF8Validated = v == genid.FeatureSet_VERIFY_enum_value\n\t\t\tcase genid.FeatureSet_MessageEncoding_field_number:\n\t\t\t\tparent.IsDelimitedEncoded = v == genid.FeatureSet_DELIMITED_enum_value\n\t\t\tcase genid.FeatureSet_JsonFormat_field_number:\n\t\t\t\tparent.IsJSONCompliant = v == genid.FeatureSet_ALLOW_enum_value\n\t\t\tdefault:\n\t\t\t\tpanic(fmt.Sprintf(\"unkown field number %d while unmarshalling FeatureSet\", num))\n\t\t\t}\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.FeatureSet_Go_ext_number:\n\t\t\t\tparent = unmarshalGoFeature(v, parent)\n\t\t\t}\n\t\t}\n\t}\n\n\treturn parent\n}\n\nfunc featuresFromParentDesc(parentDesc protoreflect.Descriptor) EditionFeatures {\n\tvar parentFS EditionFeatures\n\tswitch p := parentDesc.(type) {\n\tcase *File:\n\t\tparentFS = p.L1.EditionFeatures\n\tcase *Message:\n\t\tparentFS = p.L1.EditionFeatures\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"unknown parent type %T\", parentDesc))\n\t}\n\treturn parentFS\n}\n\nfunc unmarshalEditionDefault(b []byte) {\n\tvar ed Edition\n\tvar fs EditionFeatures\n\tfor len(b) > 0 {\n\t\tnum, typ, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch typ {\n\t\tcase protowire.VarintType:\n\t\t\tv, m := protowire.ConsumeVarint(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.FeatureSetDefaults_FeatureSetEditionDefault_Edition_field_number:\n\t\t\t\ted = Edition(v)\n\t\t\t}\n\t\tcase protowire.BytesType:\n\t\t\tv, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tswitch num {\n\t\t\tcase genid.FeatureSetDefaults_FeatureSetEditionDefault_FixedFeatures_field_number:\n\t\t\t\tfs = unmarshalFeatureSet(v, fs)\n\t\t\tcase genid.FeatureSetDefaults_FeatureSetEditionDefault_OverridableFeatures_field_number:\n\t\t\t\tfs = unmarshalFeatureSet(v, fs)\n\t\t\t}\n\t\t}\n\t}\n\tdefaultsCache[ed] = fs\n\tdefaultsKeys = append(defaultsKeys, ed)\n}\n\nfunc unmarshalEditionDefaults(b []byte) {\n\tfor len(b) > 0 {\n\t\tnum, _, n := protowire.ConsumeTag(b)\n\t\tb = b[n:]\n\t\tswitch num {\n\t\tcase genid.FeatureSetDefaults_Defaults_field_number:\n\t\t\tdef, m := protowire.ConsumeBytes(b)\n\t\t\tb = b[m:]\n\t\t\tunmarshalEditionDefault(def)\n\t\tcase genid.FeatureSetDefaults_MinimumEdition_field_number,\n\t\t\tgenid.FeatureSetDefaults_MaximumEdition_field_number:\n\t\t\t// We don't care about the minimum and maximum editions. If the\n\t\t\t// edition we are looking for later on is not in the cache we know\n\t\t\t// it is outside of the range between minimum and maximum edition.\n\t\t\t_, m := protowire.ConsumeVarint(b)\n\t\t\tb = b[m:]\n\t\tdefault:\n\t\t\tpanic(fmt.Sprintf(\"unkown field number %d while unmarshalling EditionDefault\", num))\n\t\t}\n\t}\n}\n\nfunc getFeaturesFor(ed Edition) EditionFeatures {\n\tmatch := EditionUnknown\n\tfor _, key := range defaultsKeys {\n\t\tif key > ed {\n\t\t\tbreak\n\t\t}\n\t\tmatch = key\n\t}\n\tif match == EditionUnknown {\n\t\tpanic(fmt.Sprintf(\"unsupported edition: %v\", ed))\n\t}\n\treturn defaultsCache[match]\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage filedesc\n\nimport (\n\t\"google.golang.org/protobuf/internal/descopts\"\n\t\"google.golang.org/protobuf/internal/pragma\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\nvar (\n\temptyNames           = new(Names)\n\temptyEnumRanges      = new(EnumRanges)\n\temptyFieldRanges     = new(FieldRanges)\n\temptyFieldNumbers    = new(FieldNumbers)\n\temptySourceLocations = new(SourceLocations)\n\n\temptyFiles      = new(FileImports)\n\temptyMessages   = new(Messages)\n\temptyFields     = new(Fields)\n\temptyOneofs     = new(Oneofs)\n\temptyEnums      = new(Enums)\n\temptyEnumValues = new(EnumValues)\n\temptyExtensions = new(Extensions)\n\temptyServices   = new(Services)\n)\n\n// PlaceholderFile is a placeholder, representing only the file path.\ntype PlaceholderFile string\n\nfunc (f PlaceholderFile) ParentFile() protoreflect.FileDescriptor       { return f }\nfunc (f PlaceholderFile) Parent() protoreflect.Descriptor               { return nil }\nfunc (f PlaceholderFile) Index() int                                    { return 0 }\nfunc (f PlaceholderFile) Syntax() protoreflect.Syntax                   { return 0 }\nfunc (f PlaceholderFile) Name() protoreflect.Name                       { return \"\" }\nfunc (f PlaceholderFile) FullName() protoreflect.FullName               { return \"\" }\nfunc (f PlaceholderFile) IsPlaceholder() bool                           { return true }\nfunc (f PlaceholderFile) Options() protoreflect.ProtoMessage            { return descopts.File }\nfunc (f PlaceholderFile) Path() string                                  { return string(f) }\nfunc (f PlaceholderFile) Package() protoreflect.FullName                { return \"\" }\nfunc (f PlaceholderFile) Imports() protoreflect.FileImports             { return emptyFiles }\nfunc (f PlaceholderFile) Messages() protoreflect.MessageDescriptors     { return emptyMessages }\nfunc (f PlaceholderFile) Enums() protoreflect.EnumDescriptors           { return emptyEnums }\nfunc (f PlaceholderFile) Extensions() protoreflect.ExtensionDescriptors { return emptyExtensions }\nfunc (f PlaceholderFile) Services() protoreflect.ServiceDescriptors     { return emptyServices }\nfunc (f PlaceholderFile) SourceLocations() protoreflect.SourceLocations { return emptySourceLocations }\nfunc (f PlaceholderFile) ProtoType(protoreflect.FileDescriptor)         { return }\nfunc (f PlaceholderFile) ProtoInternal(pragma.DoNotImplement)           { return }\n\n// PlaceholderEnum is a placeholder, representing only the full name.\ntype PlaceholderEnum protoreflect.FullName\n\nfunc (e PlaceholderEnum) ParentFile() protoreflect.FileDescriptor   { return nil }\nfunc (e PlaceholderEnum) Parent() protoreflect.Descriptor           { return nil }\nfunc (e PlaceholderEnum) Index() int                                { return 0 }\nfunc (e PlaceholderEnum) Syntax() protoreflect.Syntax               { return 0 }\nfunc (e PlaceholderEnum) Name() protoreflect.Name                   { return protoreflect.FullName(e).Name() }\nfunc (e PlaceholderEnum) FullName() protoreflect.FullName           { return protoreflect.FullName(e) }\nfunc (e PlaceholderEnum) IsPlaceholder() bool                       { return true }\nfunc (e PlaceholderEnum) Options() protoreflect.ProtoMessage        { return descopts.Enum }\nfunc (e PlaceholderEnum) Values() protoreflect.EnumValueDescriptors { return emptyEnumValues }\nfunc (e PlaceholderEnum) ReservedNames() protoreflect.Names         { return emptyNames }\nfunc (e PlaceholderEnum) ReservedRanges() protoreflect.EnumRanges   { return emptyEnumRanges }\nfunc (e PlaceholderEnum) IsClosed() bool                            { return false }\nfunc (e PlaceholderEnum) ProtoType(protoreflect.EnumDescriptor)     { return }\nfunc (e PlaceholderEnum) ProtoInternal(pragma.DoNotImplement)       { return }\n\n// PlaceholderEnumValue is a placeholder, representing only the full name.\ntype PlaceholderEnumValue protoreflect.FullName\n\nfunc (e PlaceholderEnumValue) ParentFile() protoreflect.FileDescriptor    { return nil }\nfunc (e PlaceholderEnumValue) Parent() protoreflect.Descriptor            { return nil }\nfunc (e PlaceholderEnumValue) Index() int                                 { return 0 }\nfunc (e PlaceholderEnumValue) Syntax() protoreflect.Syntax                { return 0 }\nfunc (e PlaceholderEnumValue) Name() protoreflect.Name                    { return protoreflect.FullName(e).Name() }\nfunc (e PlaceholderEnumValue) FullName() protoreflect.FullName            { return protoreflect.FullName(e) }\nfunc (e PlaceholderEnumValue) IsPlaceholder() bool                        { return true }\nfunc (e PlaceholderEnumValue) Options() protoreflect.ProtoMessage         { return descopts.EnumValue }\nfunc (e PlaceholderEnumValue) Number() protoreflect.EnumNumber            { return 0 }\nfunc (e PlaceholderEnumValue) ProtoType(protoreflect.EnumValueDescriptor) { return }\nfunc (e PlaceholderEnumValue) ProtoInternal(pragma.DoNotImplement)        { return }\n\n// PlaceholderMessage is a placeholder, representing only the full name.\ntype PlaceholderMessage protoreflect.FullName\n\nfunc (m PlaceholderMessage) ParentFile() protoreflect.FileDescriptor    { return nil }\nfunc (m PlaceholderMessage) Parent() protoreflect.Descriptor            { return nil }\nfunc (m PlaceholderMessage) Index() int                                 { return 0 }\nfunc (m PlaceholderMessage) Syntax() protoreflect.Syntax                { return 0 }\nfunc (m PlaceholderMessage) Name() protoreflect.Name                    { return protoreflect.FullName(m).Name() }\nfunc (m PlaceholderMessage) FullName() protoreflect.FullName            { return protoreflect.FullName(m) }\nfunc (m PlaceholderMessage) IsPlaceholder() bool                        { return true }\nfunc (m PlaceholderMessage) Options() protoreflect.ProtoMessage         { return descopts.Message }\nfunc (m PlaceholderMessage) IsMapEntry() bool                           { return false }\nfunc (m PlaceholderMessage) Fields() protoreflect.FieldDescriptors      { return emptyFields }\nfunc (m PlaceholderMessage) Oneofs() protoreflect.OneofDescriptors      { return emptyOneofs }\nfunc (m PlaceholderMessage) ReservedNames() protoreflect.Names          { return emptyNames }\nfunc (m PlaceholderMessage) ReservedRanges() protoreflect.FieldRanges   { return emptyFieldRanges }\nfunc (m PlaceholderMessage) RequiredNumbers() protoreflect.FieldNumbers { return emptyFieldNumbers }\nfunc (m PlaceholderMessage) ExtensionRanges() protoreflect.FieldRanges  { return emptyFieldRanges }\nfunc (m PlaceholderMessage) ExtensionRangeOptions(int) protoreflect.ProtoMessage {\n\tpanic(\"index out of range\")\n}\nfunc (m PlaceholderMessage) Messages() protoreflect.MessageDescriptors     { return emptyMessages }\nfunc (m PlaceholderMessage) Enums() protoreflect.EnumDescriptors           { return emptyEnums }\nfunc (m PlaceholderMessage) Extensions() protoreflect.ExtensionDescriptors { return emptyExtensions }\nfunc (m PlaceholderMessage) ProtoType(protoreflect.MessageDescriptor)      { return }\nfunc (m PlaceholderMessage) ProtoInternal(pragma.DoNotImplement)           { return }\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/filetype/build.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package filetype provides functionality for wrapping descriptors\n// with Go type information.\npackage filetype\n\nimport (\n\t\"reflect\"\n\n\t\"google.golang.org/protobuf/internal/descopts\"\n\t\"google.golang.org/protobuf/internal/filedesc\"\n\tpimpl \"google.golang.org/protobuf/internal/impl\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/reflect/protoregistry\"\n)\n\n// Builder constructs type descriptors from a raw file descriptor\n// and associated Go types for each enum and message declaration.\n//\n// # Flattened Ordering\n//\n// The protobuf type system represents declarations as a tree. Certain nodes in\n// the tree require us to either associate it with a concrete Go type or to\n// resolve a dependency, which is information that must be provided separately\n// since it cannot be derived from the file descriptor alone.\n//\n// However, representing a tree as Go literals is difficult to simply do in a\n// space and time efficient way. Thus, we store them as a flattened list of\n// objects where the serialization order from the tree-based form is important.\n//\n// The \"flattened ordering\" is defined as a tree traversal of all enum, message,\n// extension, and service declarations using the following algorithm:\n//\n//\tdef VisitFileDecls(fd):\n//\t\tfor e in fd.Enums:      yield e\n//\t\tfor m in fd.Messages:   yield m\n//\t\tfor x in fd.Extensions: yield x\n//\t\tfor s in fd.Services:   yield s\n//\t\tfor m in fd.Messages:   yield from VisitMessageDecls(m)\n//\n//\tdef VisitMessageDecls(md):\n//\t\tfor e in md.Enums:      yield e\n//\t\tfor m in md.Messages:   yield m\n//\t\tfor x in md.Extensions: yield x\n//\t\tfor m in md.Messages:   yield from VisitMessageDecls(m)\n//\n// The traversal starts at the root file descriptor and yields each direct\n// declaration within each node before traversing into sub-declarations\n// that children themselves may have.\ntype Builder struct {\n\t// File is the underlying file descriptor builder.\n\tFile filedesc.Builder\n\n\t// GoTypes is a unique set of the Go types for all declarations and\n\t// dependencies. Each type is represented as a zero value of the Go type.\n\t//\n\t// Declarations are Go types generated for enums and messages directly\n\t// declared (not publicly imported) in the proto source file.\n\t// Messages for map entries are accounted for, but represented by nil.\n\t// Enum declarations in \"flattened ordering\" come first, followed by\n\t// message declarations in \"flattened ordering\".\n\t//\n\t// Dependencies are Go types for enums or messages referenced by\n\t// message fields (excluding weak fields), for parent extended messages of\n\t// extension fields, for enums or messages referenced by extension fields,\n\t// and for input and output messages referenced by service methods.\n\t// Dependencies must come after declarations, but the ordering of\n\t// dependencies themselves is unspecified.\n\tGoTypes []any\n\n\t// DependencyIndexes is an ordered list of indexes into GoTypes for the\n\t// dependencies of messages, extensions, or services.\n\t//\n\t// There are 5 sub-lists in \"flattened ordering\" concatenated back-to-back:\n\t//\t0. Message field dependencies: list of the enum or message type\n\t//\treferred to by every message field.\n\t//\t1. Extension field targets: list of the extended parent message of\n\t//\tevery extension.\n\t//\t2. Extension field dependencies: list of the enum or message type\n\t//\treferred to by every extension field.\n\t//\t3. Service method inputs: list of the input message type\n\t//\treferred to by every service method.\n\t//\t4. Service method outputs: list of the output message type\n\t//\treferred to by every service method.\n\t//\n\t// The offset into DependencyIndexes for the start of each sub-list\n\t// is appended to the end in reverse order.\n\tDependencyIndexes []int32\n\n\t// EnumInfos is a list of enum infos in \"flattened ordering\".\n\tEnumInfos []pimpl.EnumInfo\n\n\t// MessageInfos is a list of message infos in \"flattened ordering\".\n\t// If provided, the GoType and PBType for each element is populated.\n\t//\n\t// Requirement: len(MessageInfos) == len(Build.Messages)\n\tMessageInfos []pimpl.MessageInfo\n\n\t// ExtensionInfos is a list of extension infos in \"flattened ordering\".\n\t// Each element is initialized and registered with the protoregistry package.\n\t//\n\t// Requirement: len(LegacyExtensions) == len(Build.Extensions)\n\tExtensionInfos []pimpl.ExtensionInfo\n\n\t// TypeRegistry is the registry to register each type descriptor.\n\t// If nil, it uses protoregistry.GlobalTypes.\n\tTypeRegistry interface {\n\t\tRegisterMessage(protoreflect.MessageType) error\n\t\tRegisterEnum(protoreflect.EnumType) error\n\t\tRegisterExtension(protoreflect.ExtensionType) error\n\t}\n}\n\n// Out is the output of the builder.\ntype Out struct {\n\tFile protoreflect.FileDescriptor\n}\n\nfunc (tb Builder) Build() (out Out) {\n\t// Replace the resolver with one that resolves dependencies by index,\n\t// which is faster and more reliable than relying on the global registry.\n\tif tb.File.FileRegistry == nil {\n\t\ttb.File.FileRegistry = protoregistry.GlobalFiles\n\t}\n\ttb.File.FileRegistry = &resolverByIndex{\n\t\tgoTypes:      tb.GoTypes,\n\t\tdepIdxs:      tb.DependencyIndexes,\n\t\tfileRegistry: tb.File.FileRegistry,\n\t}\n\n\t// Initialize registry if unpopulated.\n\tif tb.TypeRegistry == nil {\n\t\ttb.TypeRegistry = protoregistry.GlobalTypes\n\t}\n\n\tfbOut := tb.File.Build()\n\tout.File = fbOut.File\n\n\t// Process enums.\n\tenumGoTypes := tb.GoTypes[:len(fbOut.Enums)]\n\tif len(tb.EnumInfos) != len(fbOut.Enums) {\n\t\tpanic(\"mismatching enum lengths\")\n\t}\n\tif len(fbOut.Enums) > 0 {\n\t\tfor i := range fbOut.Enums {\n\t\t\ttb.EnumInfos[i] = pimpl.EnumInfo{\n\t\t\t\tGoReflectType: reflect.TypeOf(enumGoTypes[i]),\n\t\t\t\tDesc:          &fbOut.Enums[i],\n\t\t\t}\n\t\t\t// Register enum types.\n\t\t\tif err := tb.TypeRegistry.RegisterEnum(&tb.EnumInfos[i]); err != nil {\n\t\t\t\tpanic(err)\n\t\t\t}\n\t\t}\n\t}\n\n\t// Process messages.\n\tmessageGoTypes := tb.GoTypes[len(fbOut.Enums):][:len(fbOut.Messages)]\n\tif len(tb.MessageInfos) != len(fbOut.Messages) {\n\t\tpanic(\"mismatching message lengths\")\n\t}\n\tif len(fbOut.Messages) > 0 {\n\t\tfor i := range fbOut.Messages {\n\t\t\tif messageGoTypes[i] == nil {\n\t\t\t\tcontinue // skip map entry\n\t\t\t}\n\n\t\t\ttb.MessageInfos[i].GoReflectType = reflect.TypeOf(messageGoTypes[i])\n\t\t\ttb.MessageInfos[i].Desc = &fbOut.Messages[i]\n\n\t\t\t// Register message types.\n\t\t\tif err := tb.TypeRegistry.RegisterMessage(&tb.MessageInfos[i]); err != nil {\n\t\t\t\tpanic(err)\n\t\t\t}\n\t\t}\n\n\t\t// As a special-case for descriptor.proto,\n\t\t// locally register concrete message type for the options.\n\t\tif out.File.Path() == \"google/protobuf/descriptor.proto\" && out.File.Package() == \"google.protobuf\" {\n\t\t\tfor i := range fbOut.Messages {\n\t\t\t\tswitch fbOut.Messages[i].Name() {\n\t\t\t\tcase \"FileOptions\":\n\t\t\t\t\tdescopts.File = messageGoTypes[i].(protoreflect.ProtoMessage)\n\t\t\t\tcase \"EnumOptions\":\n\t\t\t\t\tdescopts.Enum = messageGoTypes[i].(protoreflect.ProtoMessage)\n\t\t\t\tcase \"EnumValueOptions\":\n\t\t\t\t\tdescopts.EnumValue = messageGoTypes[i].(protoreflect.ProtoMessage)\n\t\t\t\tcase \"MessageOptions\":\n\t\t\t\t\tdescopts.Message = messageGoTypes[i].(protoreflect.ProtoMessage)\n\t\t\t\tcase \"FieldOptions\":\n\t\t\t\t\tdescopts.Field = messageGoTypes[i].(protoreflect.ProtoMessage)\n\t\t\t\tcase \"OneofOptions\":\n\t\t\t\t\tdescopts.Oneof = messageGoTypes[i].(protoreflect.ProtoMessage)\n\t\t\t\tcase \"ExtensionRangeOptions\":\n\t\t\t\t\tdescopts.ExtensionRange = messageGoTypes[i].(protoreflect.ProtoMessage)\n\t\t\t\tcase \"ServiceOptions\":\n\t\t\t\t\tdescopts.Service = messageGoTypes[i].(protoreflect.ProtoMessage)\n\t\t\t\tcase \"MethodOptions\":\n\t\t\t\t\tdescopts.Method = messageGoTypes[i].(protoreflect.ProtoMessage)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Process extensions.\n\tif len(tb.ExtensionInfos) != len(fbOut.Extensions) {\n\t\tpanic(\"mismatching extension lengths\")\n\t}\n\tvar depIdx int32\n\tfor i := range fbOut.Extensions {\n\t\t// For enum and message kinds, determine the referent Go type so\n\t\t// that we can construct their constructors.\n\t\tconst listExtDeps = 2\n\t\tvar goType reflect.Type\n\t\tswitch fbOut.Extensions[i].L1.Kind {\n\t\tcase protoreflect.EnumKind:\n\t\t\tj := depIdxs.Get(tb.DependencyIndexes, listExtDeps, depIdx)\n\t\t\tgoType = reflect.TypeOf(tb.GoTypes[j])\n\t\t\tdepIdx++\n\t\tcase protoreflect.MessageKind, protoreflect.GroupKind:\n\t\t\tj := depIdxs.Get(tb.DependencyIndexes, listExtDeps, depIdx)\n\t\t\tgoType = reflect.TypeOf(tb.GoTypes[j])\n\t\t\tdepIdx++\n\t\tdefault:\n\t\t\tgoType = goTypeForPBKind[fbOut.Extensions[i].L1.Kind]\n\t\t}\n\t\tif fbOut.Extensions[i].IsList() {\n\t\t\tgoType = reflect.SliceOf(goType)\n\t\t}\n\n\t\tpimpl.InitExtensionInfo(&tb.ExtensionInfos[i], &fbOut.Extensions[i], goType)\n\n\t\t// Register extension types.\n\t\tif err := tb.TypeRegistry.RegisterExtension(&tb.ExtensionInfos[i]); err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n\n\treturn out\n}\n\nvar goTypeForPBKind = map[protoreflect.Kind]reflect.Type{\n\tprotoreflect.BoolKind:     reflect.TypeOf(bool(false)),\n\tprotoreflect.Int32Kind:    reflect.TypeOf(int32(0)),\n\tprotoreflect.Sint32Kind:   reflect.TypeOf(int32(0)),\n\tprotoreflect.Sfixed32Kind: reflect.TypeOf(int32(0)),\n\tprotoreflect.Int64Kind:    reflect.TypeOf(int64(0)),\n\tprotoreflect.Sint64Kind:   reflect.TypeOf(int64(0)),\n\tprotoreflect.Sfixed64Kind: reflect.TypeOf(int64(0)),\n\tprotoreflect.Uint32Kind:   reflect.TypeOf(uint32(0)),\n\tprotoreflect.Fixed32Kind:  reflect.TypeOf(uint32(0)),\n\tprotoreflect.Uint64Kind:   reflect.TypeOf(uint64(0)),\n\tprotoreflect.Fixed64Kind:  reflect.TypeOf(uint64(0)),\n\tprotoreflect.FloatKind:    reflect.TypeOf(float32(0)),\n\tprotoreflect.DoubleKind:   reflect.TypeOf(float64(0)),\n\tprotoreflect.StringKind:   reflect.TypeOf(string(\"\")),\n\tprotoreflect.BytesKind:    reflect.TypeOf([]byte(nil)),\n}\n\ntype depIdxs []int32\n\n// Get retrieves the jth element of the ith sub-list.\nfunc (x depIdxs) Get(i, j int32) int32 {\n\treturn x[x[int32(len(x))-i-1]+j]\n}\n\ntype (\n\tresolverByIndex struct {\n\t\tgoTypes []any\n\t\tdepIdxs depIdxs\n\t\tfileRegistry\n\t}\n\tfileRegistry interface {\n\t\tFindFileByPath(string) (protoreflect.FileDescriptor, error)\n\t\tFindDescriptorByName(protoreflect.FullName) (protoreflect.Descriptor, error)\n\t\tRegisterFile(protoreflect.FileDescriptor) error\n\t}\n)\n\nfunc (r *resolverByIndex) FindEnumByIndex(i, j int32, es []filedesc.Enum, ms []filedesc.Message) protoreflect.EnumDescriptor {\n\tif depIdx := int(r.depIdxs.Get(i, j)); int(depIdx) < len(es)+len(ms) {\n\t\treturn &es[depIdx]\n\t} else {\n\t\treturn pimpl.Export{}.EnumDescriptorOf(r.goTypes[depIdx])\n\t}\n}\n\nfunc (r *resolverByIndex) FindMessageByIndex(i, j int32, es []filedesc.Enum, ms []filedesc.Message) protoreflect.MessageDescriptor {\n\tif depIdx := int(r.depIdxs.Get(i, j)); depIdx < len(es)+len(ms) {\n\t\treturn &ms[depIdx-len(es)]\n\t} else {\n\t\treturn pimpl.Export{}.MessageDescriptorOf(r.goTypes[depIdx])\n\t}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/flags/flags.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package flags provides a set of flags controlled by build tags.\npackage flags\n\n// ProtoLegacy specifies whether to enable support for legacy functionality\n// such as MessageSets, weak fields, and various other obscure behavior\n// that is necessary to maintain backwards compatibility with proto1 or\n// the pre-release variants of proto2 and proto3.\n//\n// This is disabled by default unless built with the \"protolegacy\" tag.\n//\n// WARNING: The compatibility agreement covers nothing provided by this flag.\n// As such, functionality may suddenly be removed or changed at our discretion.\nconst ProtoLegacy = protoLegacy\n\n// LazyUnmarshalExtensions specifies whether to lazily unmarshal extensions.\n//\n// Lazy extension unmarshaling validates the contents of message-valued\n// extension fields at unmarshal time, but defers creating the message\n// structure until the extension is first accessed.\nconst LazyUnmarshalExtensions = ProtoLegacy\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/flags/proto_legacy_disable.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build !protolegacy\n// +build !protolegacy\n\npackage flags\n\nconst protoLegacy = false\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/flags/proto_legacy_enable.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build protolegacy\n// +build protolegacy\n\npackage flags\n\nconst protoLegacy = true\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/genid/any_gen.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by generate-protos. DO NOT EDIT.\n\npackage genid\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\nconst File_google_protobuf_any_proto = \"google/protobuf/any.proto\"\n\n// Names for google.protobuf.Any.\nconst (\n\tAny_message_name     protoreflect.Name     = \"Any\"\n\tAny_message_fullname protoreflect.FullName = \"google.protobuf.Any\"\n)\n\n// Field names for google.protobuf.Any.\nconst (\n\tAny_TypeUrl_field_name protoreflect.Name = \"type_url\"\n\tAny_Value_field_name   protoreflect.Name = \"value\"\n\n\tAny_TypeUrl_field_fullname protoreflect.FullName = \"google.protobuf.Any.type_url\"\n\tAny_Value_field_fullname   protoreflect.FullName = \"google.protobuf.Any.value\"\n)\n\n// Field numbers for google.protobuf.Any.\nconst (\n\tAny_TypeUrl_field_number protoreflect.FieldNumber = 1\n\tAny_Value_field_number   protoreflect.FieldNumber = 2\n)\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/genid/api_gen.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by generate-protos. DO NOT EDIT.\n\npackage genid\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\nconst File_google_protobuf_api_proto = \"google/protobuf/api.proto\"\n\n// Names for google.protobuf.Api.\nconst (\n\tApi_message_name     protoreflect.Name     = \"Api\"\n\tApi_message_fullname protoreflect.FullName = \"google.protobuf.Api\"\n)\n\n// Field names for google.protobuf.Api.\nconst (\n\tApi_Name_field_name          protoreflect.Name = \"name\"\n\tApi_Methods_field_name       protoreflect.Name = \"methods\"\n\tApi_Options_field_name       protoreflect.Name = \"options\"\n\tApi_Version_field_name       protoreflect.Name = \"version\"\n\tApi_SourceContext_field_name protoreflect.Name = \"source_context\"\n\tApi_Mixins_field_name        protoreflect.Name = \"mixins\"\n\tApi_Syntax_field_name        protoreflect.Name = \"syntax\"\n\n\tApi_Name_field_fullname          protoreflect.FullName = \"google.protobuf.Api.name\"\n\tApi_Methods_field_fullname       protoreflect.FullName = \"google.protobuf.Api.methods\"\n\tApi_Options_field_fullname       protoreflect.FullName = \"google.protobuf.Api.options\"\n\tApi_Version_field_fullname       protoreflect.FullName = \"google.protobuf.Api.version\"\n\tApi_SourceContext_field_fullname protoreflect.FullName = \"google.protobuf.Api.source_context\"\n\tApi_Mixins_field_fullname        protoreflect.FullName = \"google.protobuf.Api.mixins\"\n\tApi_Syntax_field_fullname        protoreflect.FullName = \"google.protobuf.Api.syntax\"\n)\n\n// Field numbers for google.protobuf.Api.\nconst (\n\tApi_Name_field_number          protoreflect.FieldNumber = 1\n\tApi_Methods_field_number       protoreflect.FieldNumber = 2\n\tApi_Options_field_number       protoreflect.FieldNumber = 3\n\tApi_Version_field_number       protoreflect.FieldNumber = 4\n\tApi_SourceContext_field_number protoreflect.FieldNumber = 5\n\tApi_Mixins_field_number        protoreflect.FieldNumber = 6\n\tApi_Syntax_field_number        protoreflect.FieldNumber = 7\n)\n\n// Names for google.protobuf.Method.\nconst (\n\tMethod_message_name     protoreflect.Name     = \"Method\"\n\tMethod_message_fullname protoreflect.FullName = \"google.protobuf.Method\"\n)\n\n// Field names for google.protobuf.Method.\nconst (\n\tMethod_Name_field_name              protoreflect.Name = \"name\"\n\tMethod_RequestTypeUrl_field_name    protoreflect.Name = \"request_type_url\"\n\tMethod_RequestStreaming_field_name  protoreflect.Name = \"request_streaming\"\n\tMethod_ResponseTypeUrl_field_name   protoreflect.Name = \"response_type_url\"\n\tMethod_ResponseStreaming_field_name protoreflect.Name = \"response_streaming\"\n\tMethod_Options_field_name           protoreflect.Name = \"options\"\n\tMethod_Syntax_field_name            protoreflect.Name = \"syntax\"\n\n\tMethod_Name_field_fullname              protoreflect.FullName = \"google.protobuf.Method.name\"\n\tMethod_RequestTypeUrl_field_fullname    protoreflect.FullName = \"google.protobuf.Method.request_type_url\"\n\tMethod_RequestStreaming_field_fullname  protoreflect.FullName = \"google.protobuf.Method.request_streaming\"\n\tMethod_ResponseTypeUrl_field_fullname   protoreflect.FullName = \"google.protobuf.Method.response_type_url\"\n\tMethod_ResponseStreaming_field_fullname protoreflect.FullName = \"google.protobuf.Method.response_streaming\"\n\tMethod_Options_field_fullname           protoreflect.FullName = \"google.protobuf.Method.options\"\n\tMethod_Syntax_field_fullname            protoreflect.FullName = \"google.protobuf.Method.syntax\"\n)\n\n// Field numbers for google.protobuf.Method.\nconst (\n\tMethod_Name_field_number              protoreflect.FieldNumber = 1\n\tMethod_RequestTypeUrl_field_number    protoreflect.FieldNumber = 2\n\tMethod_RequestStreaming_field_number  protoreflect.FieldNumber = 3\n\tMethod_ResponseTypeUrl_field_number   protoreflect.FieldNumber = 4\n\tMethod_ResponseStreaming_field_number protoreflect.FieldNumber = 5\n\tMethod_Options_field_number           protoreflect.FieldNumber = 6\n\tMethod_Syntax_field_number            protoreflect.FieldNumber = 7\n)\n\n// Names for google.protobuf.Mixin.\nconst (\n\tMixin_message_name     protoreflect.Name     = \"Mixin\"\n\tMixin_message_fullname protoreflect.FullName = \"google.protobuf.Mixin\"\n)\n\n// Field names for google.protobuf.Mixin.\nconst (\n\tMixin_Name_field_name protoreflect.Name = \"name\"\n\tMixin_Root_field_name protoreflect.Name = \"root\"\n\n\tMixin_Name_field_fullname protoreflect.FullName = \"google.protobuf.Mixin.name\"\n\tMixin_Root_field_fullname protoreflect.FullName = \"google.protobuf.Mixin.root\"\n)\n\n// Field numbers for google.protobuf.Mixin.\nconst (\n\tMixin_Name_field_number protoreflect.FieldNumber = 1\n\tMixin_Root_field_number protoreflect.FieldNumber = 2\n)\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by generate-protos. DO NOT EDIT.\n\npackage genid\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\nconst File_google_protobuf_descriptor_proto = \"google/protobuf/descriptor.proto\"\n\n// Full and short names for google.protobuf.Edition.\nconst (\n\tEdition_enum_fullname = \"google.protobuf.Edition\"\n\tEdition_enum_name     = \"Edition\"\n)\n\n// Enum values for google.protobuf.Edition.\nconst (\n\tEdition_EDITION_UNKNOWN_enum_value         = 0\n\tEdition_EDITION_LEGACY_enum_value          = 900\n\tEdition_EDITION_PROTO2_enum_value          = 998\n\tEdition_EDITION_PROTO3_enum_value          = 999\n\tEdition_EDITION_2023_enum_value            = 1000\n\tEdition_EDITION_2024_enum_value            = 1001\n\tEdition_EDITION_1_TEST_ONLY_enum_value     = 1\n\tEdition_EDITION_2_TEST_ONLY_enum_value     = 2\n\tEdition_EDITION_99997_TEST_ONLY_enum_value = 99997\n\tEdition_EDITION_99998_TEST_ONLY_enum_value = 99998\n\tEdition_EDITION_99999_TEST_ONLY_enum_value = 99999\n\tEdition_EDITION_MAX_enum_value             = 2147483647\n)\n\n// Names for google.protobuf.FileDescriptorSet.\nconst (\n\tFileDescriptorSet_message_name     protoreflect.Name     = \"FileDescriptorSet\"\n\tFileDescriptorSet_message_fullname protoreflect.FullName = \"google.protobuf.FileDescriptorSet\"\n)\n\n// Field names for google.protobuf.FileDescriptorSet.\nconst (\n\tFileDescriptorSet_File_field_name protoreflect.Name = \"file\"\n\n\tFileDescriptorSet_File_field_fullname protoreflect.FullName = \"google.protobuf.FileDescriptorSet.file\"\n)\n\n// Field numbers for google.protobuf.FileDescriptorSet.\nconst (\n\tFileDescriptorSet_File_field_number protoreflect.FieldNumber = 1\n)\n\n// Names for google.protobuf.FileDescriptorProto.\nconst (\n\tFileDescriptorProto_message_name     protoreflect.Name     = \"FileDescriptorProto\"\n\tFileDescriptorProto_message_fullname protoreflect.FullName = \"google.protobuf.FileDescriptorProto\"\n)\n\n// Field names for google.protobuf.FileDescriptorProto.\nconst (\n\tFileDescriptorProto_Name_field_name             protoreflect.Name = \"name\"\n\tFileDescriptorProto_Package_field_name          protoreflect.Name = \"package\"\n\tFileDescriptorProto_Dependency_field_name       protoreflect.Name = \"dependency\"\n\tFileDescriptorProto_PublicDependency_field_name protoreflect.Name = \"public_dependency\"\n\tFileDescriptorProto_WeakDependency_field_name   protoreflect.Name = \"weak_dependency\"\n\tFileDescriptorProto_MessageType_field_name      protoreflect.Name = \"message_type\"\n\tFileDescriptorProto_EnumType_field_name         protoreflect.Name = \"enum_type\"\n\tFileDescriptorProto_Service_field_name          protoreflect.Name = \"service\"\n\tFileDescriptorProto_Extension_field_name        protoreflect.Name = \"extension\"\n\tFileDescriptorProto_Options_field_name          protoreflect.Name = \"options\"\n\tFileDescriptorProto_SourceCodeInfo_field_name   protoreflect.Name = \"source_code_info\"\n\tFileDescriptorProto_Syntax_field_name           protoreflect.Name = \"syntax\"\n\tFileDescriptorProto_Edition_field_name          protoreflect.Name = \"edition\"\n\n\tFileDescriptorProto_Name_field_fullname             protoreflect.FullName = \"google.protobuf.FileDescriptorProto.name\"\n\tFileDescriptorProto_Package_field_fullname          protoreflect.FullName = \"google.protobuf.FileDescriptorProto.package\"\n\tFileDescriptorProto_Dependency_field_fullname       protoreflect.FullName = \"google.protobuf.FileDescriptorProto.dependency\"\n\tFileDescriptorProto_PublicDependency_field_fullname protoreflect.FullName = \"google.protobuf.FileDescriptorProto.public_dependency\"\n\tFileDescriptorProto_WeakDependency_field_fullname   protoreflect.FullName = \"google.protobuf.FileDescriptorProto.weak_dependency\"\n\tFileDescriptorProto_MessageType_field_fullname      protoreflect.FullName = \"google.protobuf.FileDescriptorProto.message_type\"\n\tFileDescriptorProto_EnumType_field_fullname         protoreflect.FullName = \"google.protobuf.FileDescriptorProto.enum_type\"\n\tFileDescriptorProto_Service_field_fullname          protoreflect.FullName = \"google.protobuf.FileDescriptorProto.service\"\n\tFileDescriptorProto_Extension_field_fullname        protoreflect.FullName = \"google.protobuf.FileDescriptorProto.extension\"\n\tFileDescriptorProto_Options_field_fullname          protoreflect.FullName = \"google.protobuf.FileDescriptorProto.options\"\n\tFileDescriptorProto_SourceCodeInfo_field_fullname   protoreflect.FullName = \"google.protobuf.FileDescriptorProto.source_code_info\"\n\tFileDescriptorProto_Syntax_field_fullname           protoreflect.FullName = \"google.protobuf.FileDescriptorProto.syntax\"\n\tFileDescriptorProto_Edition_field_fullname          protoreflect.FullName = \"google.protobuf.FileDescriptorProto.edition\"\n)\n\n// Field numbers for google.protobuf.FileDescriptorProto.\nconst (\n\tFileDescriptorProto_Name_field_number             protoreflect.FieldNumber = 1\n\tFileDescriptorProto_Package_field_number          protoreflect.FieldNumber = 2\n\tFileDescriptorProto_Dependency_field_number       protoreflect.FieldNumber = 3\n\tFileDescriptorProto_PublicDependency_field_number protoreflect.FieldNumber = 10\n\tFileDescriptorProto_WeakDependency_field_number   protoreflect.FieldNumber = 11\n\tFileDescriptorProto_MessageType_field_number      protoreflect.FieldNumber = 4\n\tFileDescriptorProto_EnumType_field_number         protoreflect.FieldNumber = 5\n\tFileDescriptorProto_Service_field_number          protoreflect.FieldNumber = 6\n\tFileDescriptorProto_Extension_field_number        protoreflect.FieldNumber = 7\n\tFileDescriptorProto_Options_field_number          protoreflect.FieldNumber = 8\n\tFileDescriptorProto_SourceCodeInfo_field_number   protoreflect.FieldNumber = 9\n\tFileDescriptorProto_Syntax_field_number           protoreflect.FieldNumber = 12\n\tFileDescriptorProto_Edition_field_number          protoreflect.FieldNumber = 14\n)\n\n// Names for google.protobuf.DescriptorProto.\nconst (\n\tDescriptorProto_message_name     protoreflect.Name     = \"DescriptorProto\"\n\tDescriptorProto_message_fullname protoreflect.FullName = \"google.protobuf.DescriptorProto\"\n)\n\n// Field names for google.protobuf.DescriptorProto.\nconst (\n\tDescriptorProto_Name_field_name           protoreflect.Name = \"name\"\n\tDescriptorProto_Field_field_name          protoreflect.Name = \"field\"\n\tDescriptorProto_Extension_field_name      protoreflect.Name = \"extension\"\n\tDescriptorProto_NestedType_field_name     protoreflect.Name = \"nested_type\"\n\tDescriptorProto_EnumType_field_name       protoreflect.Name = \"enum_type\"\n\tDescriptorProto_ExtensionRange_field_name protoreflect.Name = \"extension_range\"\n\tDescriptorProto_OneofDecl_field_name      protoreflect.Name = \"oneof_decl\"\n\tDescriptorProto_Options_field_name        protoreflect.Name = \"options\"\n\tDescriptorProto_ReservedRange_field_name  protoreflect.Name = \"reserved_range\"\n\tDescriptorProto_ReservedName_field_name   protoreflect.Name = \"reserved_name\"\n\n\tDescriptorProto_Name_field_fullname           protoreflect.FullName = \"google.protobuf.DescriptorProto.name\"\n\tDescriptorProto_Field_field_fullname          protoreflect.FullName = \"google.protobuf.DescriptorProto.field\"\n\tDescriptorProto_Extension_field_fullname      protoreflect.FullName = \"google.protobuf.DescriptorProto.extension\"\n\tDescriptorProto_NestedType_field_fullname     protoreflect.FullName = \"google.protobuf.DescriptorProto.nested_type\"\n\tDescriptorProto_EnumType_field_fullname       protoreflect.FullName = \"google.protobuf.DescriptorProto.enum_type\"\n\tDescriptorProto_ExtensionRange_field_fullname protoreflect.FullName = \"google.protobuf.DescriptorProto.extension_range\"\n\tDescriptorProto_OneofDecl_field_fullname      protoreflect.FullName = \"google.protobuf.DescriptorProto.oneof_decl\"\n\tDescriptorProto_Options_field_fullname        protoreflect.FullName = \"google.protobuf.DescriptorProto.options\"\n\tDescriptorProto_ReservedRange_field_fullname  protoreflect.FullName = \"google.protobuf.DescriptorProto.reserved_range\"\n\tDescriptorProto_ReservedName_field_fullname   protoreflect.FullName = \"google.protobuf.DescriptorProto.reserved_name\"\n)\n\n// Field numbers for google.protobuf.DescriptorProto.\nconst (\n\tDescriptorProto_Name_field_number           protoreflect.FieldNumber = 1\n\tDescriptorProto_Field_field_number          protoreflect.FieldNumber = 2\n\tDescriptorProto_Extension_field_number      protoreflect.FieldNumber = 6\n\tDescriptorProto_NestedType_field_number     protoreflect.FieldNumber = 3\n\tDescriptorProto_EnumType_field_number       protoreflect.FieldNumber = 4\n\tDescriptorProto_ExtensionRange_field_number protoreflect.FieldNumber = 5\n\tDescriptorProto_OneofDecl_field_number      protoreflect.FieldNumber = 8\n\tDescriptorProto_Options_field_number        protoreflect.FieldNumber = 7\n\tDescriptorProto_ReservedRange_field_number  protoreflect.FieldNumber = 9\n\tDescriptorProto_ReservedName_field_number   protoreflect.FieldNumber = 10\n)\n\n// Names for google.protobuf.DescriptorProto.ExtensionRange.\nconst (\n\tDescriptorProto_ExtensionRange_message_name     protoreflect.Name     = \"ExtensionRange\"\n\tDescriptorProto_ExtensionRange_message_fullname protoreflect.FullName = \"google.protobuf.DescriptorProto.ExtensionRange\"\n)\n\n// Field names for google.protobuf.DescriptorProto.ExtensionRange.\nconst (\n\tDescriptorProto_ExtensionRange_Start_field_name   protoreflect.Name = \"start\"\n\tDescriptorProto_ExtensionRange_End_field_name     protoreflect.Name = \"end\"\n\tDescriptorProto_ExtensionRange_Options_field_name protoreflect.Name = \"options\"\n\n\tDescriptorProto_ExtensionRange_Start_field_fullname   protoreflect.FullName = \"google.protobuf.DescriptorProto.ExtensionRange.start\"\n\tDescriptorProto_ExtensionRange_End_field_fullname     protoreflect.FullName = \"google.protobuf.DescriptorProto.ExtensionRange.end\"\n\tDescriptorProto_ExtensionRange_Options_field_fullname protoreflect.FullName = \"google.protobuf.DescriptorProto.ExtensionRange.options\"\n)\n\n// Field numbers for google.protobuf.DescriptorProto.ExtensionRange.\nconst (\n\tDescriptorProto_ExtensionRange_Start_field_number   protoreflect.FieldNumber = 1\n\tDescriptorProto_ExtensionRange_End_field_number     protoreflect.FieldNumber = 2\n\tDescriptorProto_ExtensionRange_Options_field_number protoreflect.FieldNumber = 3\n)\n\n// Names for google.protobuf.DescriptorProto.ReservedRange.\nconst (\n\tDescriptorProto_ReservedRange_message_name     protoreflect.Name     = \"ReservedRange\"\n\tDescriptorProto_ReservedRange_message_fullname protoreflect.FullName = \"google.protobuf.DescriptorProto.ReservedRange\"\n)\n\n// Field names for google.protobuf.DescriptorProto.ReservedRange.\nconst (\n\tDescriptorProto_ReservedRange_Start_field_name protoreflect.Name = \"start\"\n\tDescriptorProto_ReservedRange_End_field_name   protoreflect.Name = \"end\"\n\n\tDescriptorProto_ReservedRange_Start_field_fullname protoreflect.FullName = \"google.protobuf.DescriptorProto.ReservedRange.start\"\n\tDescriptorProto_ReservedRange_End_field_fullname   protoreflect.FullName = \"google.protobuf.DescriptorProto.ReservedRange.end\"\n)\n\n// Field numbers for google.protobuf.DescriptorProto.ReservedRange.\nconst (\n\tDescriptorProto_ReservedRange_Start_field_number protoreflect.FieldNumber = 1\n\tDescriptorProto_ReservedRange_End_field_number   protoreflect.FieldNumber = 2\n)\n\n// Names for google.protobuf.ExtensionRangeOptions.\nconst (\n\tExtensionRangeOptions_message_name     protoreflect.Name     = \"ExtensionRangeOptions\"\n\tExtensionRangeOptions_message_fullname protoreflect.FullName = \"google.protobuf.ExtensionRangeOptions\"\n)\n\n// Field names for google.protobuf.ExtensionRangeOptions.\nconst (\n\tExtensionRangeOptions_UninterpretedOption_field_name protoreflect.Name = \"uninterpreted_option\"\n\tExtensionRangeOptions_Declaration_field_name         protoreflect.Name = \"declaration\"\n\tExtensionRangeOptions_Features_field_name            protoreflect.Name = \"features\"\n\tExtensionRangeOptions_Verification_field_name        protoreflect.Name = \"verification\"\n\n\tExtensionRangeOptions_UninterpretedOption_field_fullname protoreflect.FullName = \"google.protobuf.ExtensionRangeOptions.uninterpreted_option\"\n\tExtensionRangeOptions_Declaration_field_fullname         protoreflect.FullName = \"google.protobuf.ExtensionRangeOptions.declaration\"\n\tExtensionRangeOptions_Features_field_fullname            protoreflect.FullName = \"google.protobuf.ExtensionRangeOptions.features\"\n\tExtensionRangeOptions_Verification_field_fullname        protoreflect.FullName = \"google.protobuf.ExtensionRangeOptions.verification\"\n)\n\n// Field numbers for google.protobuf.ExtensionRangeOptions.\nconst (\n\tExtensionRangeOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999\n\tExtensionRangeOptions_Declaration_field_number         protoreflect.FieldNumber = 2\n\tExtensionRangeOptions_Features_field_number            protoreflect.FieldNumber = 50\n\tExtensionRangeOptions_Verification_field_number        protoreflect.FieldNumber = 3\n)\n\n// Full and short names for google.protobuf.ExtensionRangeOptions.VerificationState.\nconst (\n\tExtensionRangeOptions_VerificationState_enum_fullname = \"google.protobuf.ExtensionRangeOptions.VerificationState\"\n\tExtensionRangeOptions_VerificationState_enum_name     = \"VerificationState\"\n)\n\n// Enum values for google.protobuf.ExtensionRangeOptions.VerificationState.\nconst (\n\tExtensionRangeOptions_DECLARATION_enum_value = 0\n\tExtensionRangeOptions_UNVERIFIED_enum_value  = 1\n)\n\n// Names for google.protobuf.ExtensionRangeOptions.Declaration.\nconst (\n\tExtensionRangeOptions_Declaration_message_name     protoreflect.Name     = \"Declaration\"\n\tExtensionRangeOptions_Declaration_message_fullname protoreflect.FullName = \"google.protobuf.ExtensionRangeOptions.Declaration\"\n)\n\n// Field names for google.protobuf.ExtensionRangeOptions.Declaration.\nconst (\n\tExtensionRangeOptions_Declaration_Number_field_name   protoreflect.Name = \"number\"\n\tExtensionRangeOptions_Declaration_FullName_field_name protoreflect.Name = \"full_name\"\n\tExtensionRangeOptions_Declaration_Type_field_name     protoreflect.Name = \"type\"\n\tExtensionRangeOptions_Declaration_Reserved_field_name protoreflect.Name = \"reserved\"\n\tExtensionRangeOptions_Declaration_Repeated_field_name protoreflect.Name = \"repeated\"\n\n\tExtensionRangeOptions_Declaration_Number_field_fullname   protoreflect.FullName = \"google.protobuf.ExtensionRangeOptions.Declaration.number\"\n\tExtensionRangeOptions_Declaration_FullName_field_fullname protoreflect.FullName = \"google.protobuf.ExtensionRangeOptions.Declaration.full_name\"\n\tExtensionRangeOptions_Declaration_Type_field_fullname     protoreflect.FullName = \"google.protobuf.ExtensionRangeOptions.Declaration.type\"\n\tExtensionRangeOptions_Declaration_Reserved_field_fullname protoreflect.FullName = \"google.protobuf.ExtensionRangeOptions.Declaration.reserved\"\n\tExtensionRangeOptions_Declaration_Repeated_field_fullname protoreflect.FullName = \"google.protobuf.ExtensionRangeOptions.Declaration.repeated\"\n)\n\n// Field numbers for google.protobuf.ExtensionRangeOptions.Declaration.\nconst (\n\tExtensionRangeOptions_Declaration_Number_field_number   protoreflect.FieldNumber = 1\n\tExtensionRangeOptions_Declaration_FullName_field_number protoreflect.FieldNumber = 2\n\tExtensionRangeOptions_Declaration_Type_field_number     protoreflect.FieldNumber = 3\n\tExtensionRangeOptions_Declaration_Reserved_field_number protoreflect.FieldNumber = 5\n\tExtensionRangeOptions_Declaration_Repeated_field_number protoreflect.FieldNumber = 6\n)\n\n// Names for google.protobuf.FieldDescriptorProto.\nconst (\n\tFieldDescriptorProto_message_name     protoreflect.Name     = \"FieldDescriptorProto\"\n\tFieldDescriptorProto_message_fullname protoreflect.FullName = \"google.protobuf.FieldDescriptorProto\"\n)\n\n// Field names for google.protobuf.FieldDescriptorProto.\nconst (\n\tFieldDescriptorProto_Name_field_name           protoreflect.Name = \"name\"\n\tFieldDescriptorProto_Number_field_name         protoreflect.Name = \"number\"\n\tFieldDescriptorProto_Label_field_name          protoreflect.Name = \"label\"\n\tFieldDescriptorProto_Type_field_name           protoreflect.Name = \"type\"\n\tFieldDescriptorProto_TypeName_field_name       protoreflect.Name = \"type_name\"\n\tFieldDescriptorProto_Extendee_field_name       protoreflect.Name = \"extendee\"\n\tFieldDescriptorProto_DefaultValue_field_name   protoreflect.Name = \"default_value\"\n\tFieldDescriptorProto_OneofIndex_field_name     protoreflect.Name = \"oneof_index\"\n\tFieldDescriptorProto_JsonName_field_name       protoreflect.Name = \"json_name\"\n\tFieldDescriptorProto_Options_field_name        protoreflect.Name = \"options\"\n\tFieldDescriptorProto_Proto3Optional_field_name protoreflect.Name = \"proto3_optional\"\n\n\tFieldDescriptorProto_Name_field_fullname           protoreflect.FullName = \"google.protobuf.FieldDescriptorProto.name\"\n\tFieldDescriptorProto_Number_field_fullname         protoreflect.FullName = \"google.protobuf.FieldDescriptorProto.number\"\n\tFieldDescriptorProto_Label_field_fullname          protoreflect.FullName = \"google.protobuf.FieldDescriptorProto.label\"\n\tFieldDescriptorProto_Type_field_fullname           protoreflect.FullName = \"google.protobuf.FieldDescriptorProto.type\"\n\tFieldDescriptorProto_TypeName_field_fullname       protoreflect.FullName = \"google.protobuf.FieldDescriptorProto.type_name\"\n\tFieldDescriptorProto_Extendee_field_fullname       protoreflect.FullName = \"google.protobuf.FieldDescriptorProto.extendee\"\n\tFieldDescriptorProto_DefaultValue_field_fullname   protoreflect.FullName = \"google.protobuf.FieldDescriptorProto.default_value\"\n\tFieldDescriptorProto_OneofIndex_field_fullname     protoreflect.FullName = \"google.protobuf.FieldDescriptorProto.oneof_index\"\n\tFieldDescriptorProto_JsonName_field_fullname       protoreflect.FullName = \"google.protobuf.FieldDescriptorProto.json_name\"\n\tFieldDescriptorProto_Options_field_fullname        protoreflect.FullName = \"google.protobuf.FieldDescriptorProto.options\"\n\tFieldDescriptorProto_Proto3Optional_field_fullname protoreflect.FullName = \"google.protobuf.FieldDescriptorProto.proto3_optional\"\n)\n\n// Field numbers for google.protobuf.FieldDescriptorProto.\nconst (\n\tFieldDescriptorProto_Name_field_number           protoreflect.FieldNumber = 1\n\tFieldDescriptorProto_Number_field_number         protoreflect.FieldNumber = 3\n\tFieldDescriptorProto_Label_field_number          protoreflect.FieldNumber = 4\n\tFieldDescriptorProto_Type_field_number           protoreflect.FieldNumber = 5\n\tFieldDescriptorProto_TypeName_field_number       protoreflect.FieldNumber = 6\n\tFieldDescriptorProto_Extendee_field_number       protoreflect.FieldNumber = 2\n\tFieldDescriptorProto_DefaultValue_field_number   protoreflect.FieldNumber = 7\n\tFieldDescriptorProto_OneofIndex_field_number     protoreflect.FieldNumber = 9\n\tFieldDescriptorProto_JsonName_field_number       protoreflect.FieldNumber = 10\n\tFieldDescriptorProto_Options_field_number        protoreflect.FieldNumber = 8\n\tFieldDescriptorProto_Proto3Optional_field_number protoreflect.FieldNumber = 17\n)\n\n// Full and short names for google.protobuf.FieldDescriptorProto.Type.\nconst (\n\tFieldDescriptorProto_Type_enum_fullname = \"google.protobuf.FieldDescriptorProto.Type\"\n\tFieldDescriptorProto_Type_enum_name     = \"Type\"\n)\n\n// Enum values for google.protobuf.FieldDescriptorProto.Type.\nconst (\n\tFieldDescriptorProto_TYPE_DOUBLE_enum_value   = 1\n\tFieldDescriptorProto_TYPE_FLOAT_enum_value    = 2\n\tFieldDescriptorProto_TYPE_INT64_enum_value    = 3\n\tFieldDescriptorProto_TYPE_UINT64_enum_value   = 4\n\tFieldDescriptorProto_TYPE_INT32_enum_value    = 5\n\tFieldDescriptorProto_TYPE_FIXED64_enum_value  = 6\n\tFieldDescriptorProto_TYPE_FIXED32_enum_value  = 7\n\tFieldDescriptorProto_TYPE_BOOL_enum_value     = 8\n\tFieldDescriptorProto_TYPE_STRING_enum_value   = 9\n\tFieldDescriptorProto_TYPE_GROUP_enum_value    = 10\n\tFieldDescriptorProto_TYPE_MESSAGE_enum_value  = 11\n\tFieldDescriptorProto_TYPE_BYTES_enum_value    = 12\n\tFieldDescriptorProto_TYPE_UINT32_enum_value   = 13\n\tFieldDescriptorProto_TYPE_ENUM_enum_value     = 14\n\tFieldDescriptorProto_TYPE_SFIXED32_enum_value = 15\n\tFieldDescriptorProto_TYPE_SFIXED64_enum_value = 16\n\tFieldDescriptorProto_TYPE_SINT32_enum_value   = 17\n\tFieldDescriptorProto_TYPE_SINT64_enum_value   = 18\n)\n\n// Full and short names for google.protobuf.FieldDescriptorProto.Label.\nconst (\n\tFieldDescriptorProto_Label_enum_fullname = \"google.protobuf.FieldDescriptorProto.Label\"\n\tFieldDescriptorProto_Label_enum_name     = \"Label\"\n)\n\n// Enum values for google.protobuf.FieldDescriptorProto.Label.\nconst (\n\tFieldDescriptorProto_LABEL_OPTIONAL_enum_value = 1\n\tFieldDescriptorProto_LABEL_REPEATED_enum_value = 3\n\tFieldDescriptorProto_LABEL_REQUIRED_enum_value = 2\n)\n\n// Names for google.protobuf.OneofDescriptorProto.\nconst (\n\tOneofDescriptorProto_message_name     protoreflect.Name     = \"OneofDescriptorProto\"\n\tOneofDescriptorProto_message_fullname protoreflect.FullName = \"google.protobuf.OneofDescriptorProto\"\n)\n\n// Field names for google.protobuf.OneofDescriptorProto.\nconst (\n\tOneofDescriptorProto_Name_field_name    protoreflect.Name = \"name\"\n\tOneofDescriptorProto_Options_field_name protoreflect.Name = \"options\"\n\n\tOneofDescriptorProto_Name_field_fullname    protoreflect.FullName = \"google.protobuf.OneofDescriptorProto.name\"\n\tOneofDescriptorProto_Options_field_fullname protoreflect.FullName = \"google.protobuf.OneofDescriptorProto.options\"\n)\n\n// Field numbers for google.protobuf.OneofDescriptorProto.\nconst (\n\tOneofDescriptorProto_Name_field_number    protoreflect.FieldNumber = 1\n\tOneofDescriptorProto_Options_field_number protoreflect.FieldNumber = 2\n)\n\n// Names for google.protobuf.EnumDescriptorProto.\nconst (\n\tEnumDescriptorProto_message_name     protoreflect.Name     = \"EnumDescriptorProto\"\n\tEnumDescriptorProto_message_fullname protoreflect.FullName = \"google.protobuf.EnumDescriptorProto\"\n)\n\n// Field names for google.protobuf.EnumDescriptorProto.\nconst (\n\tEnumDescriptorProto_Name_field_name          protoreflect.Name = \"name\"\n\tEnumDescriptorProto_Value_field_name         protoreflect.Name = \"value\"\n\tEnumDescriptorProto_Options_field_name       protoreflect.Name = \"options\"\n\tEnumDescriptorProto_ReservedRange_field_name protoreflect.Name = \"reserved_range\"\n\tEnumDescriptorProto_ReservedName_field_name  protoreflect.Name = \"reserved_name\"\n\n\tEnumDescriptorProto_Name_field_fullname          protoreflect.FullName = \"google.protobuf.EnumDescriptorProto.name\"\n\tEnumDescriptorProto_Value_field_fullname         protoreflect.FullName = \"google.protobuf.EnumDescriptorProto.value\"\n\tEnumDescriptorProto_Options_field_fullname       protoreflect.FullName = \"google.protobuf.EnumDescriptorProto.options\"\n\tEnumDescriptorProto_ReservedRange_field_fullname protoreflect.FullName = \"google.protobuf.EnumDescriptorProto.reserved_range\"\n\tEnumDescriptorProto_ReservedName_field_fullname  protoreflect.FullName = \"google.protobuf.EnumDescriptorProto.reserved_name\"\n)\n\n// Field numbers for google.protobuf.EnumDescriptorProto.\nconst (\n\tEnumDescriptorProto_Name_field_number          protoreflect.FieldNumber = 1\n\tEnumDescriptorProto_Value_field_number         protoreflect.FieldNumber = 2\n\tEnumDescriptorProto_Options_field_number       protoreflect.FieldNumber = 3\n\tEnumDescriptorProto_ReservedRange_field_number protoreflect.FieldNumber = 4\n\tEnumDescriptorProto_ReservedName_field_number  protoreflect.FieldNumber = 5\n)\n\n// Names for google.protobuf.EnumDescriptorProto.EnumReservedRange.\nconst (\n\tEnumDescriptorProto_EnumReservedRange_message_name     protoreflect.Name     = \"EnumReservedRange\"\n\tEnumDescriptorProto_EnumReservedRange_message_fullname protoreflect.FullName = \"google.protobuf.EnumDescriptorProto.EnumReservedRange\"\n)\n\n// Field names for google.protobuf.EnumDescriptorProto.EnumReservedRange.\nconst (\n\tEnumDescriptorProto_EnumReservedRange_Start_field_name protoreflect.Name = \"start\"\n\tEnumDescriptorProto_EnumReservedRange_End_field_name   protoreflect.Name = \"end\"\n\n\tEnumDescriptorProto_EnumReservedRange_Start_field_fullname protoreflect.FullName = \"google.protobuf.EnumDescriptorProto.EnumReservedRange.start\"\n\tEnumDescriptorProto_EnumReservedRange_End_field_fullname   protoreflect.FullName = \"google.protobuf.EnumDescriptorProto.EnumReservedRange.end\"\n)\n\n// Field numbers for google.protobuf.EnumDescriptorProto.EnumReservedRange.\nconst (\n\tEnumDescriptorProto_EnumReservedRange_Start_field_number protoreflect.FieldNumber = 1\n\tEnumDescriptorProto_EnumReservedRange_End_field_number   protoreflect.FieldNumber = 2\n)\n\n// Names for google.protobuf.EnumValueDescriptorProto.\nconst (\n\tEnumValueDescriptorProto_message_name     protoreflect.Name     = \"EnumValueDescriptorProto\"\n\tEnumValueDescriptorProto_message_fullname protoreflect.FullName = \"google.protobuf.EnumValueDescriptorProto\"\n)\n\n// Field names for google.protobuf.EnumValueDescriptorProto.\nconst (\n\tEnumValueDescriptorProto_Name_field_name    protoreflect.Name = \"name\"\n\tEnumValueDescriptorProto_Number_field_name  protoreflect.Name = \"number\"\n\tEnumValueDescriptorProto_Options_field_name protoreflect.Name = \"options\"\n\n\tEnumValueDescriptorProto_Name_field_fullname    protoreflect.FullName = \"google.protobuf.EnumValueDescriptorProto.name\"\n\tEnumValueDescriptorProto_Number_field_fullname  protoreflect.FullName = \"google.protobuf.EnumValueDescriptorProto.number\"\n\tEnumValueDescriptorProto_Options_field_fullname protoreflect.FullName = \"google.protobuf.EnumValueDescriptorProto.options\"\n)\n\n// Field numbers for google.protobuf.EnumValueDescriptorProto.\nconst (\n\tEnumValueDescriptorProto_Name_field_number    protoreflect.FieldNumber = 1\n\tEnumValueDescriptorProto_Number_field_number  protoreflect.FieldNumber = 2\n\tEnumValueDescriptorProto_Options_field_number protoreflect.FieldNumber = 3\n)\n\n// Names for google.protobuf.ServiceDescriptorProto.\nconst (\n\tServiceDescriptorProto_message_name     protoreflect.Name     = \"ServiceDescriptorProto\"\n\tServiceDescriptorProto_message_fullname protoreflect.FullName = \"google.protobuf.ServiceDescriptorProto\"\n)\n\n// Field names for google.protobuf.ServiceDescriptorProto.\nconst (\n\tServiceDescriptorProto_Name_field_name    protoreflect.Name = \"name\"\n\tServiceDescriptorProto_Method_field_name  protoreflect.Name = \"method\"\n\tServiceDescriptorProto_Options_field_name protoreflect.Name = \"options\"\n\n\tServiceDescriptorProto_Name_field_fullname    protoreflect.FullName = \"google.protobuf.ServiceDescriptorProto.name\"\n\tServiceDescriptorProto_Method_field_fullname  protoreflect.FullName = \"google.protobuf.ServiceDescriptorProto.method\"\n\tServiceDescriptorProto_Options_field_fullname protoreflect.FullName = \"google.protobuf.ServiceDescriptorProto.options\"\n)\n\n// Field numbers for google.protobuf.ServiceDescriptorProto.\nconst (\n\tServiceDescriptorProto_Name_field_number    protoreflect.FieldNumber = 1\n\tServiceDescriptorProto_Method_field_number  protoreflect.FieldNumber = 2\n\tServiceDescriptorProto_Options_field_number protoreflect.FieldNumber = 3\n)\n\n// Names for google.protobuf.MethodDescriptorProto.\nconst (\n\tMethodDescriptorProto_message_name     protoreflect.Name     = \"MethodDescriptorProto\"\n\tMethodDescriptorProto_message_fullname protoreflect.FullName = \"google.protobuf.MethodDescriptorProto\"\n)\n\n// Field names for google.protobuf.MethodDescriptorProto.\nconst (\n\tMethodDescriptorProto_Name_field_name            protoreflect.Name = \"name\"\n\tMethodDescriptorProto_InputType_field_name       protoreflect.Name = \"input_type\"\n\tMethodDescriptorProto_OutputType_field_name      protoreflect.Name = \"output_type\"\n\tMethodDescriptorProto_Options_field_name         protoreflect.Name = \"options\"\n\tMethodDescriptorProto_ClientStreaming_field_name protoreflect.Name = \"client_streaming\"\n\tMethodDescriptorProto_ServerStreaming_field_name protoreflect.Name = \"server_streaming\"\n\n\tMethodDescriptorProto_Name_field_fullname            protoreflect.FullName = \"google.protobuf.MethodDescriptorProto.name\"\n\tMethodDescriptorProto_InputType_field_fullname       protoreflect.FullName = \"google.protobuf.MethodDescriptorProto.input_type\"\n\tMethodDescriptorProto_OutputType_field_fullname      protoreflect.FullName = \"google.protobuf.MethodDescriptorProto.output_type\"\n\tMethodDescriptorProto_Options_field_fullname         protoreflect.FullName = \"google.protobuf.MethodDescriptorProto.options\"\n\tMethodDescriptorProto_ClientStreaming_field_fullname protoreflect.FullName = \"google.protobuf.MethodDescriptorProto.client_streaming\"\n\tMethodDescriptorProto_ServerStreaming_field_fullname protoreflect.FullName = \"google.protobuf.MethodDescriptorProto.server_streaming\"\n)\n\n// Field numbers for google.protobuf.MethodDescriptorProto.\nconst (\n\tMethodDescriptorProto_Name_field_number            protoreflect.FieldNumber = 1\n\tMethodDescriptorProto_InputType_field_number       protoreflect.FieldNumber = 2\n\tMethodDescriptorProto_OutputType_field_number      protoreflect.FieldNumber = 3\n\tMethodDescriptorProto_Options_field_number         protoreflect.FieldNumber = 4\n\tMethodDescriptorProto_ClientStreaming_field_number protoreflect.FieldNumber = 5\n\tMethodDescriptorProto_ServerStreaming_field_number protoreflect.FieldNumber = 6\n)\n\n// Names for google.protobuf.FileOptions.\nconst (\n\tFileOptions_message_name     protoreflect.Name     = \"FileOptions\"\n\tFileOptions_message_fullname protoreflect.FullName = \"google.protobuf.FileOptions\"\n)\n\n// Field names for google.protobuf.FileOptions.\nconst (\n\tFileOptions_JavaPackage_field_name               protoreflect.Name = \"java_package\"\n\tFileOptions_JavaOuterClassname_field_name        protoreflect.Name = \"java_outer_classname\"\n\tFileOptions_JavaMultipleFiles_field_name         protoreflect.Name = \"java_multiple_files\"\n\tFileOptions_JavaGenerateEqualsAndHash_field_name protoreflect.Name = \"java_generate_equals_and_hash\"\n\tFileOptions_JavaStringCheckUtf8_field_name       protoreflect.Name = \"java_string_check_utf8\"\n\tFileOptions_OptimizeFor_field_name               protoreflect.Name = \"optimize_for\"\n\tFileOptions_GoPackage_field_name                 protoreflect.Name = \"go_package\"\n\tFileOptions_CcGenericServices_field_name         protoreflect.Name = \"cc_generic_services\"\n\tFileOptions_JavaGenericServices_field_name       protoreflect.Name = \"java_generic_services\"\n\tFileOptions_PyGenericServices_field_name         protoreflect.Name = \"py_generic_services\"\n\tFileOptions_Deprecated_field_name                protoreflect.Name = \"deprecated\"\n\tFileOptions_CcEnableArenas_field_name            protoreflect.Name = \"cc_enable_arenas\"\n\tFileOptions_ObjcClassPrefix_field_name           protoreflect.Name = \"objc_class_prefix\"\n\tFileOptions_CsharpNamespace_field_name           protoreflect.Name = \"csharp_namespace\"\n\tFileOptions_SwiftPrefix_field_name               protoreflect.Name = \"swift_prefix\"\n\tFileOptions_PhpClassPrefix_field_name            protoreflect.Name = \"php_class_prefix\"\n\tFileOptions_PhpNamespace_field_name              protoreflect.Name = \"php_namespace\"\n\tFileOptions_PhpMetadataNamespace_field_name      protoreflect.Name = \"php_metadata_namespace\"\n\tFileOptions_RubyPackage_field_name               protoreflect.Name = \"ruby_package\"\n\tFileOptions_Features_field_name                  protoreflect.Name = \"features\"\n\tFileOptions_UninterpretedOption_field_name       protoreflect.Name = \"uninterpreted_option\"\n\n\tFileOptions_JavaPackage_field_fullname               protoreflect.FullName = \"google.protobuf.FileOptions.java_package\"\n\tFileOptions_JavaOuterClassname_field_fullname        protoreflect.FullName = \"google.protobuf.FileOptions.java_outer_classname\"\n\tFileOptions_JavaMultipleFiles_field_fullname         protoreflect.FullName = \"google.protobuf.FileOptions.java_multiple_files\"\n\tFileOptions_JavaGenerateEqualsAndHash_field_fullname protoreflect.FullName = \"google.protobuf.FileOptions.java_generate_equals_and_hash\"\n\tFileOptions_JavaStringCheckUtf8_field_fullname       protoreflect.FullName = \"google.protobuf.FileOptions.java_string_check_utf8\"\n\tFileOptions_OptimizeFor_field_fullname               protoreflect.FullName = \"google.protobuf.FileOptions.optimize_for\"\n\tFileOptions_GoPackage_field_fullname                 protoreflect.FullName = \"google.protobuf.FileOptions.go_package\"\n\tFileOptions_CcGenericServices_field_fullname         protoreflect.FullName = \"google.protobuf.FileOptions.cc_generic_services\"\n\tFileOptions_JavaGenericServices_field_fullname       protoreflect.FullName = \"google.protobuf.FileOptions.java_generic_services\"\n\tFileOptions_PyGenericServices_field_fullname         protoreflect.FullName = \"google.protobuf.FileOptions.py_generic_services\"\n\tFileOptions_Deprecated_field_fullname                protoreflect.FullName = \"google.protobuf.FileOptions.deprecated\"\n\tFileOptions_CcEnableArenas_field_fullname            protoreflect.FullName = \"google.protobuf.FileOptions.cc_enable_arenas\"\n\tFileOptions_ObjcClassPrefix_field_fullname           protoreflect.FullName = \"google.protobuf.FileOptions.objc_class_prefix\"\n\tFileOptions_CsharpNamespace_field_fullname           protoreflect.FullName = \"google.protobuf.FileOptions.csharp_namespace\"\n\tFileOptions_SwiftPrefix_field_fullname               protoreflect.FullName = \"google.protobuf.FileOptions.swift_prefix\"\n\tFileOptions_PhpClassPrefix_field_fullname            protoreflect.FullName = \"google.protobuf.FileOptions.php_class_prefix\"\n\tFileOptions_PhpNamespace_field_fullname              protoreflect.FullName = \"google.protobuf.FileOptions.php_namespace\"\n\tFileOptions_PhpMetadataNamespace_field_fullname      protoreflect.FullName = \"google.protobuf.FileOptions.php_metadata_namespace\"\n\tFileOptions_RubyPackage_field_fullname               protoreflect.FullName = \"google.protobuf.FileOptions.ruby_package\"\n\tFileOptions_Features_field_fullname                  protoreflect.FullName = \"google.protobuf.FileOptions.features\"\n\tFileOptions_UninterpretedOption_field_fullname       protoreflect.FullName = \"google.protobuf.FileOptions.uninterpreted_option\"\n)\n\n// Field numbers for google.protobuf.FileOptions.\nconst (\n\tFileOptions_JavaPackage_field_number               protoreflect.FieldNumber = 1\n\tFileOptions_JavaOuterClassname_field_number        protoreflect.FieldNumber = 8\n\tFileOptions_JavaMultipleFiles_field_number         protoreflect.FieldNumber = 10\n\tFileOptions_JavaGenerateEqualsAndHash_field_number protoreflect.FieldNumber = 20\n\tFileOptions_JavaStringCheckUtf8_field_number       protoreflect.FieldNumber = 27\n\tFileOptions_OptimizeFor_field_number               protoreflect.FieldNumber = 9\n\tFileOptions_GoPackage_field_number                 protoreflect.FieldNumber = 11\n\tFileOptions_CcGenericServices_field_number         protoreflect.FieldNumber = 16\n\tFileOptions_JavaGenericServices_field_number       protoreflect.FieldNumber = 17\n\tFileOptions_PyGenericServices_field_number         protoreflect.FieldNumber = 18\n\tFileOptions_Deprecated_field_number                protoreflect.FieldNumber = 23\n\tFileOptions_CcEnableArenas_field_number            protoreflect.FieldNumber = 31\n\tFileOptions_ObjcClassPrefix_field_number           protoreflect.FieldNumber = 36\n\tFileOptions_CsharpNamespace_field_number           protoreflect.FieldNumber = 37\n\tFileOptions_SwiftPrefix_field_number               protoreflect.FieldNumber = 39\n\tFileOptions_PhpClassPrefix_field_number            protoreflect.FieldNumber = 40\n\tFileOptions_PhpNamespace_field_number              protoreflect.FieldNumber = 41\n\tFileOptions_PhpMetadataNamespace_field_number      protoreflect.FieldNumber = 44\n\tFileOptions_RubyPackage_field_number               protoreflect.FieldNumber = 45\n\tFileOptions_Features_field_number                  protoreflect.FieldNumber = 50\n\tFileOptions_UninterpretedOption_field_number       protoreflect.FieldNumber = 999\n)\n\n// Full and short names for google.protobuf.FileOptions.OptimizeMode.\nconst (\n\tFileOptions_OptimizeMode_enum_fullname = \"google.protobuf.FileOptions.OptimizeMode\"\n\tFileOptions_OptimizeMode_enum_name     = \"OptimizeMode\"\n)\n\n// Enum values for google.protobuf.FileOptions.OptimizeMode.\nconst (\n\tFileOptions_SPEED_enum_value        = 1\n\tFileOptions_CODE_SIZE_enum_value    = 2\n\tFileOptions_LITE_RUNTIME_enum_value = 3\n)\n\n// Names for google.protobuf.MessageOptions.\nconst (\n\tMessageOptions_message_name     protoreflect.Name     = \"MessageOptions\"\n\tMessageOptions_message_fullname protoreflect.FullName = \"google.protobuf.MessageOptions\"\n)\n\n// Field names for google.protobuf.MessageOptions.\nconst (\n\tMessageOptions_MessageSetWireFormat_field_name               protoreflect.Name = \"message_set_wire_format\"\n\tMessageOptions_NoStandardDescriptorAccessor_field_name       protoreflect.Name = \"no_standard_descriptor_accessor\"\n\tMessageOptions_Deprecated_field_name                         protoreflect.Name = \"deprecated\"\n\tMessageOptions_MapEntry_field_name                           protoreflect.Name = \"map_entry\"\n\tMessageOptions_DeprecatedLegacyJsonFieldConflicts_field_name protoreflect.Name = \"deprecated_legacy_json_field_conflicts\"\n\tMessageOptions_Features_field_name                           protoreflect.Name = \"features\"\n\tMessageOptions_UninterpretedOption_field_name                protoreflect.Name = \"uninterpreted_option\"\n\n\tMessageOptions_MessageSetWireFormat_field_fullname               protoreflect.FullName = \"google.protobuf.MessageOptions.message_set_wire_format\"\n\tMessageOptions_NoStandardDescriptorAccessor_field_fullname       protoreflect.FullName = \"google.protobuf.MessageOptions.no_standard_descriptor_accessor\"\n\tMessageOptions_Deprecated_field_fullname                         protoreflect.FullName = \"google.protobuf.MessageOptions.deprecated\"\n\tMessageOptions_MapEntry_field_fullname                           protoreflect.FullName = \"google.protobuf.MessageOptions.map_entry\"\n\tMessageOptions_DeprecatedLegacyJsonFieldConflicts_field_fullname protoreflect.FullName = \"google.protobuf.MessageOptions.deprecated_legacy_json_field_conflicts\"\n\tMessageOptions_Features_field_fullname                           protoreflect.FullName = \"google.protobuf.MessageOptions.features\"\n\tMessageOptions_UninterpretedOption_field_fullname                protoreflect.FullName = \"google.protobuf.MessageOptions.uninterpreted_option\"\n)\n\n// Field numbers for google.protobuf.MessageOptions.\nconst (\n\tMessageOptions_MessageSetWireFormat_field_number               protoreflect.FieldNumber = 1\n\tMessageOptions_NoStandardDescriptorAccessor_field_number       protoreflect.FieldNumber = 2\n\tMessageOptions_Deprecated_field_number                         protoreflect.FieldNumber = 3\n\tMessageOptions_MapEntry_field_number                           protoreflect.FieldNumber = 7\n\tMessageOptions_DeprecatedLegacyJsonFieldConflicts_field_number protoreflect.FieldNumber = 11\n\tMessageOptions_Features_field_number                           protoreflect.FieldNumber = 12\n\tMessageOptions_UninterpretedOption_field_number                protoreflect.FieldNumber = 999\n)\n\n// Names for google.protobuf.FieldOptions.\nconst (\n\tFieldOptions_message_name     protoreflect.Name     = \"FieldOptions\"\n\tFieldOptions_message_fullname protoreflect.FullName = \"google.protobuf.FieldOptions\"\n)\n\n// Field names for google.protobuf.FieldOptions.\nconst (\n\tFieldOptions_Ctype_field_name               protoreflect.Name = \"ctype\"\n\tFieldOptions_Packed_field_name              protoreflect.Name = \"packed\"\n\tFieldOptions_Jstype_field_name              protoreflect.Name = \"jstype\"\n\tFieldOptions_Lazy_field_name                protoreflect.Name = \"lazy\"\n\tFieldOptions_UnverifiedLazy_field_name      protoreflect.Name = \"unverified_lazy\"\n\tFieldOptions_Deprecated_field_name          protoreflect.Name = \"deprecated\"\n\tFieldOptions_Weak_field_name                protoreflect.Name = \"weak\"\n\tFieldOptions_DebugRedact_field_name         protoreflect.Name = \"debug_redact\"\n\tFieldOptions_Retention_field_name           protoreflect.Name = \"retention\"\n\tFieldOptions_Targets_field_name             protoreflect.Name = \"targets\"\n\tFieldOptions_EditionDefaults_field_name     protoreflect.Name = \"edition_defaults\"\n\tFieldOptions_Features_field_name            protoreflect.Name = \"features\"\n\tFieldOptions_FeatureSupport_field_name      protoreflect.Name = \"feature_support\"\n\tFieldOptions_UninterpretedOption_field_name protoreflect.Name = \"uninterpreted_option\"\n\n\tFieldOptions_Ctype_field_fullname               protoreflect.FullName = \"google.protobuf.FieldOptions.ctype\"\n\tFieldOptions_Packed_field_fullname              protoreflect.FullName = \"google.protobuf.FieldOptions.packed\"\n\tFieldOptions_Jstype_field_fullname              protoreflect.FullName = \"google.protobuf.FieldOptions.jstype\"\n\tFieldOptions_Lazy_field_fullname                protoreflect.FullName = \"google.protobuf.FieldOptions.lazy\"\n\tFieldOptions_UnverifiedLazy_field_fullname      protoreflect.FullName = \"google.protobuf.FieldOptions.unverified_lazy\"\n\tFieldOptions_Deprecated_field_fullname          protoreflect.FullName = \"google.protobuf.FieldOptions.deprecated\"\n\tFieldOptions_Weak_field_fullname                protoreflect.FullName = \"google.protobuf.FieldOptions.weak\"\n\tFieldOptions_DebugRedact_field_fullname         protoreflect.FullName = \"google.protobuf.FieldOptions.debug_redact\"\n\tFieldOptions_Retention_field_fullname           protoreflect.FullName = \"google.protobuf.FieldOptions.retention\"\n\tFieldOptions_Targets_field_fullname             protoreflect.FullName = \"google.protobuf.FieldOptions.targets\"\n\tFieldOptions_EditionDefaults_field_fullname     protoreflect.FullName = \"google.protobuf.FieldOptions.edition_defaults\"\n\tFieldOptions_Features_field_fullname            protoreflect.FullName = \"google.protobuf.FieldOptions.features\"\n\tFieldOptions_FeatureSupport_field_fullname      protoreflect.FullName = \"google.protobuf.FieldOptions.feature_support\"\n\tFieldOptions_UninterpretedOption_field_fullname protoreflect.FullName = \"google.protobuf.FieldOptions.uninterpreted_option\"\n)\n\n// Field numbers for google.protobuf.FieldOptions.\nconst (\n\tFieldOptions_Ctype_field_number               protoreflect.FieldNumber = 1\n\tFieldOptions_Packed_field_number              protoreflect.FieldNumber = 2\n\tFieldOptions_Jstype_field_number              protoreflect.FieldNumber = 6\n\tFieldOptions_Lazy_field_number                protoreflect.FieldNumber = 5\n\tFieldOptions_UnverifiedLazy_field_number      protoreflect.FieldNumber = 15\n\tFieldOptions_Deprecated_field_number          protoreflect.FieldNumber = 3\n\tFieldOptions_Weak_field_number                protoreflect.FieldNumber = 10\n\tFieldOptions_DebugRedact_field_number         protoreflect.FieldNumber = 16\n\tFieldOptions_Retention_field_number           protoreflect.FieldNumber = 17\n\tFieldOptions_Targets_field_number             protoreflect.FieldNumber = 19\n\tFieldOptions_EditionDefaults_field_number     protoreflect.FieldNumber = 20\n\tFieldOptions_Features_field_number            protoreflect.FieldNumber = 21\n\tFieldOptions_FeatureSupport_field_number      protoreflect.FieldNumber = 22\n\tFieldOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999\n)\n\n// Full and short names for google.protobuf.FieldOptions.CType.\nconst (\n\tFieldOptions_CType_enum_fullname = \"google.protobuf.FieldOptions.CType\"\n\tFieldOptions_CType_enum_name     = \"CType\"\n)\n\n// Enum values for google.protobuf.FieldOptions.CType.\nconst (\n\tFieldOptions_STRING_enum_value       = 0\n\tFieldOptions_CORD_enum_value         = 1\n\tFieldOptions_STRING_PIECE_enum_value = 2\n)\n\n// Full and short names for google.protobuf.FieldOptions.JSType.\nconst (\n\tFieldOptions_JSType_enum_fullname = \"google.protobuf.FieldOptions.JSType\"\n\tFieldOptions_JSType_enum_name     = \"JSType\"\n)\n\n// Enum values for google.protobuf.FieldOptions.JSType.\nconst (\n\tFieldOptions_JS_NORMAL_enum_value = 0\n\tFieldOptions_JS_STRING_enum_value = 1\n\tFieldOptions_JS_NUMBER_enum_value = 2\n)\n\n// Full and short names for google.protobuf.FieldOptions.OptionRetention.\nconst (\n\tFieldOptions_OptionRetention_enum_fullname = \"google.protobuf.FieldOptions.OptionRetention\"\n\tFieldOptions_OptionRetention_enum_name     = \"OptionRetention\"\n)\n\n// Enum values for google.protobuf.FieldOptions.OptionRetention.\nconst (\n\tFieldOptions_RETENTION_UNKNOWN_enum_value = 0\n\tFieldOptions_RETENTION_RUNTIME_enum_value = 1\n\tFieldOptions_RETENTION_SOURCE_enum_value  = 2\n)\n\n// Full and short names for google.protobuf.FieldOptions.OptionTargetType.\nconst (\n\tFieldOptions_OptionTargetType_enum_fullname = \"google.protobuf.FieldOptions.OptionTargetType\"\n\tFieldOptions_OptionTargetType_enum_name     = \"OptionTargetType\"\n)\n\n// Enum values for google.protobuf.FieldOptions.OptionTargetType.\nconst (\n\tFieldOptions_TARGET_TYPE_UNKNOWN_enum_value         = 0\n\tFieldOptions_TARGET_TYPE_FILE_enum_value            = 1\n\tFieldOptions_TARGET_TYPE_EXTENSION_RANGE_enum_value = 2\n\tFieldOptions_TARGET_TYPE_MESSAGE_enum_value         = 3\n\tFieldOptions_TARGET_TYPE_FIELD_enum_value           = 4\n\tFieldOptions_TARGET_TYPE_ONEOF_enum_value           = 5\n\tFieldOptions_TARGET_TYPE_ENUM_enum_value            = 6\n\tFieldOptions_TARGET_TYPE_ENUM_ENTRY_enum_value      = 7\n\tFieldOptions_TARGET_TYPE_SERVICE_enum_value         = 8\n\tFieldOptions_TARGET_TYPE_METHOD_enum_value          = 9\n)\n\n// Names for google.protobuf.FieldOptions.EditionDefault.\nconst (\n\tFieldOptions_EditionDefault_message_name     protoreflect.Name     = \"EditionDefault\"\n\tFieldOptions_EditionDefault_message_fullname protoreflect.FullName = \"google.protobuf.FieldOptions.EditionDefault\"\n)\n\n// Field names for google.protobuf.FieldOptions.EditionDefault.\nconst (\n\tFieldOptions_EditionDefault_Edition_field_name protoreflect.Name = \"edition\"\n\tFieldOptions_EditionDefault_Value_field_name   protoreflect.Name = \"value\"\n\n\tFieldOptions_EditionDefault_Edition_field_fullname protoreflect.FullName = \"google.protobuf.FieldOptions.EditionDefault.edition\"\n\tFieldOptions_EditionDefault_Value_field_fullname   protoreflect.FullName = \"google.protobuf.FieldOptions.EditionDefault.value\"\n)\n\n// Field numbers for google.protobuf.FieldOptions.EditionDefault.\nconst (\n\tFieldOptions_EditionDefault_Edition_field_number protoreflect.FieldNumber = 3\n\tFieldOptions_EditionDefault_Value_field_number   protoreflect.FieldNumber = 2\n)\n\n// Names for google.protobuf.FieldOptions.FeatureSupport.\nconst (\n\tFieldOptions_FeatureSupport_message_name     protoreflect.Name     = \"FeatureSupport\"\n\tFieldOptions_FeatureSupport_message_fullname protoreflect.FullName = \"google.protobuf.FieldOptions.FeatureSupport\"\n)\n\n// Field names for google.protobuf.FieldOptions.FeatureSupport.\nconst (\n\tFieldOptions_FeatureSupport_EditionIntroduced_field_name  protoreflect.Name = \"edition_introduced\"\n\tFieldOptions_FeatureSupport_EditionDeprecated_field_name  protoreflect.Name = \"edition_deprecated\"\n\tFieldOptions_FeatureSupport_DeprecationWarning_field_name protoreflect.Name = \"deprecation_warning\"\n\tFieldOptions_FeatureSupport_EditionRemoved_field_name     protoreflect.Name = \"edition_removed\"\n\n\tFieldOptions_FeatureSupport_EditionIntroduced_field_fullname  protoreflect.FullName = \"google.protobuf.FieldOptions.FeatureSupport.edition_introduced\"\n\tFieldOptions_FeatureSupport_EditionDeprecated_field_fullname  protoreflect.FullName = \"google.protobuf.FieldOptions.FeatureSupport.edition_deprecated\"\n\tFieldOptions_FeatureSupport_DeprecationWarning_field_fullname protoreflect.FullName = \"google.protobuf.FieldOptions.FeatureSupport.deprecation_warning\"\n\tFieldOptions_FeatureSupport_EditionRemoved_field_fullname     protoreflect.FullName = \"google.protobuf.FieldOptions.FeatureSupport.edition_removed\"\n)\n\n// Field numbers for google.protobuf.FieldOptions.FeatureSupport.\nconst (\n\tFieldOptions_FeatureSupport_EditionIntroduced_field_number  protoreflect.FieldNumber = 1\n\tFieldOptions_FeatureSupport_EditionDeprecated_field_number  protoreflect.FieldNumber = 2\n\tFieldOptions_FeatureSupport_DeprecationWarning_field_number protoreflect.FieldNumber = 3\n\tFieldOptions_FeatureSupport_EditionRemoved_field_number     protoreflect.FieldNumber = 4\n)\n\n// Names for google.protobuf.OneofOptions.\nconst (\n\tOneofOptions_message_name     protoreflect.Name     = \"OneofOptions\"\n\tOneofOptions_message_fullname protoreflect.FullName = \"google.protobuf.OneofOptions\"\n)\n\n// Field names for google.protobuf.OneofOptions.\nconst (\n\tOneofOptions_Features_field_name            protoreflect.Name = \"features\"\n\tOneofOptions_UninterpretedOption_field_name protoreflect.Name = \"uninterpreted_option\"\n\n\tOneofOptions_Features_field_fullname            protoreflect.FullName = \"google.protobuf.OneofOptions.features\"\n\tOneofOptions_UninterpretedOption_field_fullname protoreflect.FullName = \"google.protobuf.OneofOptions.uninterpreted_option\"\n)\n\n// Field numbers for google.protobuf.OneofOptions.\nconst (\n\tOneofOptions_Features_field_number            protoreflect.FieldNumber = 1\n\tOneofOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999\n)\n\n// Names for google.protobuf.EnumOptions.\nconst (\n\tEnumOptions_message_name     protoreflect.Name     = \"EnumOptions\"\n\tEnumOptions_message_fullname protoreflect.FullName = \"google.protobuf.EnumOptions\"\n)\n\n// Field names for google.protobuf.EnumOptions.\nconst (\n\tEnumOptions_AllowAlias_field_name                         protoreflect.Name = \"allow_alias\"\n\tEnumOptions_Deprecated_field_name                         protoreflect.Name = \"deprecated\"\n\tEnumOptions_DeprecatedLegacyJsonFieldConflicts_field_name protoreflect.Name = \"deprecated_legacy_json_field_conflicts\"\n\tEnumOptions_Features_field_name                           protoreflect.Name = \"features\"\n\tEnumOptions_UninterpretedOption_field_name                protoreflect.Name = \"uninterpreted_option\"\n\n\tEnumOptions_AllowAlias_field_fullname                         protoreflect.FullName = \"google.protobuf.EnumOptions.allow_alias\"\n\tEnumOptions_Deprecated_field_fullname                         protoreflect.FullName = \"google.protobuf.EnumOptions.deprecated\"\n\tEnumOptions_DeprecatedLegacyJsonFieldConflicts_field_fullname protoreflect.FullName = \"google.protobuf.EnumOptions.deprecated_legacy_json_field_conflicts\"\n\tEnumOptions_Features_field_fullname                           protoreflect.FullName = \"google.protobuf.EnumOptions.features\"\n\tEnumOptions_UninterpretedOption_field_fullname                protoreflect.FullName = \"google.protobuf.EnumOptions.uninterpreted_option\"\n)\n\n// Field numbers for google.protobuf.EnumOptions.\nconst (\n\tEnumOptions_AllowAlias_field_number                         protoreflect.FieldNumber = 2\n\tEnumOptions_Deprecated_field_number                         protoreflect.FieldNumber = 3\n\tEnumOptions_DeprecatedLegacyJsonFieldConflicts_field_number protoreflect.FieldNumber = 6\n\tEnumOptions_Features_field_number                           protoreflect.FieldNumber = 7\n\tEnumOptions_UninterpretedOption_field_number                protoreflect.FieldNumber = 999\n)\n\n// Names for google.protobuf.EnumValueOptions.\nconst (\n\tEnumValueOptions_message_name     protoreflect.Name     = \"EnumValueOptions\"\n\tEnumValueOptions_message_fullname protoreflect.FullName = \"google.protobuf.EnumValueOptions\"\n)\n\n// Field names for google.protobuf.EnumValueOptions.\nconst (\n\tEnumValueOptions_Deprecated_field_name          protoreflect.Name = \"deprecated\"\n\tEnumValueOptions_Features_field_name            protoreflect.Name = \"features\"\n\tEnumValueOptions_DebugRedact_field_name         protoreflect.Name = \"debug_redact\"\n\tEnumValueOptions_FeatureSupport_field_name      protoreflect.Name = \"feature_support\"\n\tEnumValueOptions_UninterpretedOption_field_name protoreflect.Name = \"uninterpreted_option\"\n\n\tEnumValueOptions_Deprecated_field_fullname          protoreflect.FullName = \"google.protobuf.EnumValueOptions.deprecated\"\n\tEnumValueOptions_Features_field_fullname            protoreflect.FullName = \"google.protobuf.EnumValueOptions.features\"\n\tEnumValueOptions_DebugRedact_field_fullname         protoreflect.FullName = \"google.protobuf.EnumValueOptions.debug_redact\"\n\tEnumValueOptions_FeatureSupport_field_fullname      protoreflect.FullName = \"google.protobuf.EnumValueOptions.feature_support\"\n\tEnumValueOptions_UninterpretedOption_field_fullname protoreflect.FullName = \"google.protobuf.EnumValueOptions.uninterpreted_option\"\n)\n\n// Field numbers for google.protobuf.EnumValueOptions.\nconst (\n\tEnumValueOptions_Deprecated_field_number          protoreflect.FieldNumber = 1\n\tEnumValueOptions_Features_field_number            protoreflect.FieldNumber = 2\n\tEnumValueOptions_DebugRedact_field_number         protoreflect.FieldNumber = 3\n\tEnumValueOptions_FeatureSupport_field_number      protoreflect.FieldNumber = 4\n\tEnumValueOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999\n)\n\n// Names for google.protobuf.ServiceOptions.\nconst (\n\tServiceOptions_message_name     protoreflect.Name     = \"ServiceOptions\"\n\tServiceOptions_message_fullname protoreflect.FullName = \"google.protobuf.ServiceOptions\"\n)\n\n// Field names for google.protobuf.ServiceOptions.\nconst (\n\tServiceOptions_Features_field_name            protoreflect.Name = \"features\"\n\tServiceOptions_Deprecated_field_name          protoreflect.Name = \"deprecated\"\n\tServiceOptions_UninterpretedOption_field_name protoreflect.Name = \"uninterpreted_option\"\n\n\tServiceOptions_Features_field_fullname            protoreflect.FullName = \"google.protobuf.ServiceOptions.features\"\n\tServiceOptions_Deprecated_field_fullname          protoreflect.FullName = \"google.protobuf.ServiceOptions.deprecated\"\n\tServiceOptions_UninterpretedOption_field_fullname protoreflect.FullName = \"google.protobuf.ServiceOptions.uninterpreted_option\"\n)\n\n// Field numbers for google.protobuf.ServiceOptions.\nconst (\n\tServiceOptions_Features_field_number            protoreflect.FieldNumber = 34\n\tServiceOptions_Deprecated_field_number          protoreflect.FieldNumber = 33\n\tServiceOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999\n)\n\n// Names for google.protobuf.MethodOptions.\nconst (\n\tMethodOptions_message_name     protoreflect.Name     = \"MethodOptions\"\n\tMethodOptions_message_fullname protoreflect.FullName = \"google.protobuf.MethodOptions\"\n)\n\n// Field names for google.protobuf.MethodOptions.\nconst (\n\tMethodOptions_Deprecated_field_name          protoreflect.Name = \"deprecated\"\n\tMethodOptions_IdempotencyLevel_field_name    protoreflect.Name = \"idempotency_level\"\n\tMethodOptions_Features_field_name            protoreflect.Name = \"features\"\n\tMethodOptions_UninterpretedOption_field_name protoreflect.Name = \"uninterpreted_option\"\n\n\tMethodOptions_Deprecated_field_fullname          protoreflect.FullName = \"google.protobuf.MethodOptions.deprecated\"\n\tMethodOptions_IdempotencyLevel_field_fullname    protoreflect.FullName = \"google.protobuf.MethodOptions.idempotency_level\"\n\tMethodOptions_Features_field_fullname            protoreflect.FullName = \"google.protobuf.MethodOptions.features\"\n\tMethodOptions_UninterpretedOption_field_fullname protoreflect.FullName = \"google.protobuf.MethodOptions.uninterpreted_option\"\n)\n\n// Field numbers for google.protobuf.MethodOptions.\nconst (\n\tMethodOptions_Deprecated_field_number          protoreflect.FieldNumber = 33\n\tMethodOptions_IdempotencyLevel_field_number    protoreflect.FieldNumber = 34\n\tMethodOptions_Features_field_number            protoreflect.FieldNumber = 35\n\tMethodOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999\n)\n\n// Full and short names for google.protobuf.MethodOptions.IdempotencyLevel.\nconst (\n\tMethodOptions_IdempotencyLevel_enum_fullname = \"google.protobuf.MethodOptions.IdempotencyLevel\"\n\tMethodOptions_IdempotencyLevel_enum_name     = \"IdempotencyLevel\"\n)\n\n// Enum values for google.protobuf.MethodOptions.IdempotencyLevel.\nconst (\n\tMethodOptions_IDEMPOTENCY_UNKNOWN_enum_value = 0\n\tMethodOptions_NO_SIDE_EFFECTS_enum_value     = 1\n\tMethodOptions_IDEMPOTENT_enum_value          = 2\n)\n\n// Names for google.protobuf.UninterpretedOption.\nconst (\n\tUninterpretedOption_message_name     protoreflect.Name     = \"UninterpretedOption\"\n\tUninterpretedOption_message_fullname protoreflect.FullName = \"google.protobuf.UninterpretedOption\"\n)\n\n// Field names for google.protobuf.UninterpretedOption.\nconst (\n\tUninterpretedOption_Name_field_name             protoreflect.Name = \"name\"\n\tUninterpretedOption_IdentifierValue_field_name  protoreflect.Name = \"identifier_value\"\n\tUninterpretedOption_PositiveIntValue_field_name protoreflect.Name = \"positive_int_value\"\n\tUninterpretedOption_NegativeIntValue_field_name protoreflect.Name = \"negative_int_value\"\n\tUninterpretedOption_DoubleValue_field_name      protoreflect.Name = \"double_value\"\n\tUninterpretedOption_StringValue_field_name      protoreflect.Name = \"string_value\"\n\tUninterpretedOption_AggregateValue_field_name   protoreflect.Name = \"aggregate_value\"\n\n\tUninterpretedOption_Name_field_fullname             protoreflect.FullName = \"google.protobuf.UninterpretedOption.name\"\n\tUninterpretedOption_IdentifierValue_field_fullname  protoreflect.FullName = \"google.protobuf.UninterpretedOption.identifier_value\"\n\tUninterpretedOption_PositiveIntValue_field_fullname protoreflect.FullName = \"google.protobuf.UninterpretedOption.positive_int_value\"\n\tUninterpretedOption_NegativeIntValue_field_fullname protoreflect.FullName = \"google.protobuf.UninterpretedOption.negative_int_value\"\n\tUninterpretedOption_DoubleValue_field_fullname      protoreflect.FullName = \"google.protobuf.UninterpretedOption.double_value\"\n\tUninterpretedOption_StringValue_field_fullname      protoreflect.FullName = \"google.protobuf.UninterpretedOption.string_value\"\n\tUninterpretedOption_AggregateValue_field_fullname   protoreflect.FullName = \"google.protobuf.UninterpretedOption.aggregate_value\"\n)\n\n// Field numbers for google.protobuf.UninterpretedOption.\nconst (\n\tUninterpretedOption_Name_field_number             protoreflect.FieldNumber = 2\n\tUninterpretedOption_IdentifierValue_field_number  protoreflect.FieldNumber = 3\n\tUninterpretedOption_PositiveIntValue_field_number protoreflect.FieldNumber = 4\n\tUninterpretedOption_NegativeIntValue_field_number protoreflect.FieldNumber = 5\n\tUninterpretedOption_DoubleValue_field_number      protoreflect.FieldNumber = 6\n\tUninterpretedOption_StringValue_field_number      protoreflect.FieldNumber = 7\n\tUninterpretedOption_AggregateValue_field_number   protoreflect.FieldNumber = 8\n)\n\n// Names for google.protobuf.UninterpretedOption.NamePart.\nconst (\n\tUninterpretedOption_NamePart_message_name     protoreflect.Name     = \"NamePart\"\n\tUninterpretedOption_NamePart_message_fullname protoreflect.FullName = \"google.protobuf.UninterpretedOption.NamePart\"\n)\n\n// Field names for google.protobuf.UninterpretedOption.NamePart.\nconst (\n\tUninterpretedOption_NamePart_NamePart_field_name    protoreflect.Name = \"name_part\"\n\tUninterpretedOption_NamePart_IsExtension_field_name protoreflect.Name = \"is_extension\"\n\n\tUninterpretedOption_NamePart_NamePart_field_fullname    protoreflect.FullName = \"google.protobuf.UninterpretedOption.NamePart.name_part\"\n\tUninterpretedOption_NamePart_IsExtension_field_fullname protoreflect.FullName = \"google.protobuf.UninterpretedOption.NamePart.is_extension\"\n)\n\n// Field numbers for google.protobuf.UninterpretedOption.NamePart.\nconst (\n\tUninterpretedOption_NamePart_NamePart_field_number    protoreflect.FieldNumber = 1\n\tUninterpretedOption_NamePart_IsExtension_field_number protoreflect.FieldNumber = 2\n)\n\n// Names for google.protobuf.FeatureSet.\nconst (\n\tFeatureSet_message_name     protoreflect.Name     = \"FeatureSet\"\n\tFeatureSet_message_fullname protoreflect.FullName = \"google.protobuf.FeatureSet\"\n)\n\n// Field names for google.protobuf.FeatureSet.\nconst (\n\tFeatureSet_FieldPresence_field_name         protoreflect.Name = \"field_presence\"\n\tFeatureSet_EnumType_field_name              protoreflect.Name = \"enum_type\"\n\tFeatureSet_RepeatedFieldEncoding_field_name protoreflect.Name = \"repeated_field_encoding\"\n\tFeatureSet_Utf8Validation_field_name        protoreflect.Name = \"utf8_validation\"\n\tFeatureSet_MessageEncoding_field_name       protoreflect.Name = \"message_encoding\"\n\tFeatureSet_JsonFormat_field_name            protoreflect.Name = \"json_format\"\n\n\tFeatureSet_FieldPresence_field_fullname         protoreflect.FullName = \"google.protobuf.FeatureSet.field_presence\"\n\tFeatureSet_EnumType_field_fullname              protoreflect.FullName = \"google.protobuf.FeatureSet.enum_type\"\n\tFeatureSet_RepeatedFieldEncoding_field_fullname protoreflect.FullName = \"google.protobuf.FeatureSet.repeated_field_encoding\"\n\tFeatureSet_Utf8Validation_field_fullname        protoreflect.FullName = \"google.protobuf.FeatureSet.utf8_validation\"\n\tFeatureSet_MessageEncoding_field_fullname       protoreflect.FullName = \"google.protobuf.FeatureSet.message_encoding\"\n\tFeatureSet_JsonFormat_field_fullname            protoreflect.FullName = \"google.protobuf.FeatureSet.json_format\"\n)\n\n// Field numbers for google.protobuf.FeatureSet.\nconst (\n\tFeatureSet_FieldPresence_field_number         protoreflect.FieldNumber = 1\n\tFeatureSet_EnumType_field_number              protoreflect.FieldNumber = 2\n\tFeatureSet_RepeatedFieldEncoding_field_number protoreflect.FieldNumber = 3\n\tFeatureSet_Utf8Validation_field_number        protoreflect.FieldNumber = 4\n\tFeatureSet_MessageEncoding_field_number       protoreflect.FieldNumber = 5\n\tFeatureSet_JsonFormat_field_number            protoreflect.FieldNumber = 6\n)\n\n// Full and short names for google.protobuf.FeatureSet.FieldPresence.\nconst (\n\tFeatureSet_FieldPresence_enum_fullname = \"google.protobuf.FeatureSet.FieldPresence\"\n\tFeatureSet_FieldPresence_enum_name     = \"FieldPresence\"\n)\n\n// Enum values for google.protobuf.FeatureSet.FieldPresence.\nconst (\n\tFeatureSet_FIELD_PRESENCE_UNKNOWN_enum_value = 0\n\tFeatureSet_EXPLICIT_enum_value               = 1\n\tFeatureSet_IMPLICIT_enum_value               = 2\n\tFeatureSet_LEGACY_REQUIRED_enum_value        = 3\n)\n\n// Full and short names for google.protobuf.FeatureSet.EnumType.\nconst (\n\tFeatureSet_EnumType_enum_fullname = \"google.protobuf.FeatureSet.EnumType\"\n\tFeatureSet_EnumType_enum_name     = \"EnumType\"\n)\n\n// Enum values for google.protobuf.FeatureSet.EnumType.\nconst (\n\tFeatureSet_ENUM_TYPE_UNKNOWN_enum_value = 0\n\tFeatureSet_OPEN_enum_value              = 1\n\tFeatureSet_CLOSED_enum_value            = 2\n)\n\n// Full and short names for google.protobuf.FeatureSet.RepeatedFieldEncoding.\nconst (\n\tFeatureSet_RepeatedFieldEncoding_enum_fullname = \"google.protobuf.FeatureSet.RepeatedFieldEncoding\"\n\tFeatureSet_RepeatedFieldEncoding_enum_name     = \"RepeatedFieldEncoding\"\n)\n\n// Enum values for google.protobuf.FeatureSet.RepeatedFieldEncoding.\nconst (\n\tFeatureSet_REPEATED_FIELD_ENCODING_UNKNOWN_enum_value = 0\n\tFeatureSet_PACKED_enum_value                          = 1\n\tFeatureSet_EXPANDED_enum_value                        = 2\n)\n\n// Full and short names for google.protobuf.FeatureSet.Utf8Validation.\nconst (\n\tFeatureSet_Utf8Validation_enum_fullname = \"google.protobuf.FeatureSet.Utf8Validation\"\n\tFeatureSet_Utf8Validation_enum_name     = \"Utf8Validation\"\n)\n\n// Enum values for google.protobuf.FeatureSet.Utf8Validation.\nconst (\n\tFeatureSet_UTF8_VALIDATION_UNKNOWN_enum_value = 0\n\tFeatureSet_VERIFY_enum_value                  = 2\n\tFeatureSet_NONE_enum_value                    = 3\n)\n\n// Full and short names for google.protobuf.FeatureSet.MessageEncoding.\nconst (\n\tFeatureSet_MessageEncoding_enum_fullname = \"google.protobuf.FeatureSet.MessageEncoding\"\n\tFeatureSet_MessageEncoding_enum_name     = \"MessageEncoding\"\n)\n\n// Enum values for google.protobuf.FeatureSet.MessageEncoding.\nconst (\n\tFeatureSet_MESSAGE_ENCODING_UNKNOWN_enum_value = 0\n\tFeatureSet_LENGTH_PREFIXED_enum_value          = 1\n\tFeatureSet_DELIMITED_enum_value                = 2\n)\n\n// Full and short names for google.protobuf.FeatureSet.JsonFormat.\nconst (\n\tFeatureSet_JsonFormat_enum_fullname = \"google.protobuf.FeatureSet.JsonFormat\"\n\tFeatureSet_JsonFormat_enum_name     = \"JsonFormat\"\n)\n\n// Enum values for google.protobuf.FeatureSet.JsonFormat.\nconst (\n\tFeatureSet_JSON_FORMAT_UNKNOWN_enum_value = 0\n\tFeatureSet_ALLOW_enum_value               = 1\n\tFeatureSet_LEGACY_BEST_EFFORT_enum_value  = 2\n)\n\n// Names for google.protobuf.FeatureSetDefaults.\nconst (\n\tFeatureSetDefaults_message_name     protoreflect.Name     = \"FeatureSetDefaults\"\n\tFeatureSetDefaults_message_fullname protoreflect.FullName = \"google.protobuf.FeatureSetDefaults\"\n)\n\n// Field names for google.protobuf.FeatureSetDefaults.\nconst (\n\tFeatureSetDefaults_Defaults_field_name       protoreflect.Name = \"defaults\"\n\tFeatureSetDefaults_MinimumEdition_field_name protoreflect.Name = \"minimum_edition\"\n\tFeatureSetDefaults_MaximumEdition_field_name protoreflect.Name = \"maximum_edition\"\n\n\tFeatureSetDefaults_Defaults_field_fullname       protoreflect.FullName = \"google.protobuf.FeatureSetDefaults.defaults\"\n\tFeatureSetDefaults_MinimumEdition_field_fullname protoreflect.FullName = \"google.protobuf.FeatureSetDefaults.minimum_edition\"\n\tFeatureSetDefaults_MaximumEdition_field_fullname protoreflect.FullName = \"google.protobuf.FeatureSetDefaults.maximum_edition\"\n)\n\n// Field numbers for google.protobuf.FeatureSetDefaults.\nconst (\n\tFeatureSetDefaults_Defaults_field_number       protoreflect.FieldNumber = 1\n\tFeatureSetDefaults_MinimumEdition_field_number protoreflect.FieldNumber = 4\n\tFeatureSetDefaults_MaximumEdition_field_number protoreflect.FieldNumber = 5\n)\n\n// Names for google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.\nconst (\n\tFeatureSetDefaults_FeatureSetEditionDefault_message_name     protoreflect.Name     = \"FeatureSetEditionDefault\"\n\tFeatureSetDefaults_FeatureSetEditionDefault_message_fullname protoreflect.FullName = \"google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault\"\n)\n\n// Field names for google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.\nconst (\n\tFeatureSetDefaults_FeatureSetEditionDefault_Edition_field_name             protoreflect.Name = \"edition\"\n\tFeatureSetDefaults_FeatureSetEditionDefault_OverridableFeatures_field_name protoreflect.Name = \"overridable_features\"\n\tFeatureSetDefaults_FeatureSetEditionDefault_FixedFeatures_field_name       protoreflect.Name = \"fixed_features\"\n\n\tFeatureSetDefaults_FeatureSetEditionDefault_Edition_field_fullname             protoreflect.FullName = \"google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.edition\"\n\tFeatureSetDefaults_FeatureSetEditionDefault_OverridableFeatures_field_fullname protoreflect.FullName = \"google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.overridable_features\"\n\tFeatureSetDefaults_FeatureSetEditionDefault_FixedFeatures_field_fullname       protoreflect.FullName = \"google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.fixed_features\"\n)\n\n// Field numbers for google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.\nconst (\n\tFeatureSetDefaults_FeatureSetEditionDefault_Edition_field_number             protoreflect.FieldNumber = 3\n\tFeatureSetDefaults_FeatureSetEditionDefault_OverridableFeatures_field_number protoreflect.FieldNumber = 4\n\tFeatureSetDefaults_FeatureSetEditionDefault_FixedFeatures_field_number       protoreflect.FieldNumber = 5\n)\n\n// Names for google.protobuf.SourceCodeInfo.\nconst (\n\tSourceCodeInfo_message_name     protoreflect.Name     = \"SourceCodeInfo\"\n\tSourceCodeInfo_message_fullname protoreflect.FullName = \"google.protobuf.SourceCodeInfo\"\n)\n\n// Field names for google.protobuf.SourceCodeInfo.\nconst (\n\tSourceCodeInfo_Location_field_name protoreflect.Name = \"location\"\n\n\tSourceCodeInfo_Location_field_fullname protoreflect.FullName = \"google.protobuf.SourceCodeInfo.location\"\n)\n\n// Field numbers for google.protobuf.SourceCodeInfo.\nconst (\n\tSourceCodeInfo_Location_field_number protoreflect.FieldNumber = 1\n)\n\n// Names for google.protobuf.SourceCodeInfo.Location.\nconst (\n\tSourceCodeInfo_Location_message_name     protoreflect.Name     = \"Location\"\n\tSourceCodeInfo_Location_message_fullname protoreflect.FullName = \"google.protobuf.SourceCodeInfo.Location\"\n)\n\n// Field names for google.protobuf.SourceCodeInfo.Location.\nconst (\n\tSourceCodeInfo_Location_Path_field_name                    protoreflect.Name = \"path\"\n\tSourceCodeInfo_Location_Span_field_name                    protoreflect.Name = \"span\"\n\tSourceCodeInfo_Location_LeadingComments_field_name         protoreflect.Name = \"leading_comments\"\n\tSourceCodeInfo_Location_TrailingComments_field_name        protoreflect.Name = \"trailing_comments\"\n\tSourceCodeInfo_Location_LeadingDetachedComments_field_name protoreflect.Name = \"leading_detached_comments\"\n\n\tSourceCodeInfo_Location_Path_field_fullname                    protoreflect.FullName = \"google.protobuf.SourceCodeInfo.Location.path\"\n\tSourceCodeInfo_Location_Span_field_fullname                    protoreflect.FullName = \"google.protobuf.SourceCodeInfo.Location.span\"\n\tSourceCodeInfo_Location_LeadingComments_field_fullname         protoreflect.FullName = \"google.protobuf.SourceCodeInfo.Location.leading_comments\"\n\tSourceCodeInfo_Location_TrailingComments_field_fullname        protoreflect.FullName = \"google.protobuf.SourceCodeInfo.Location.trailing_comments\"\n\tSourceCodeInfo_Location_LeadingDetachedComments_field_fullname protoreflect.FullName = \"google.protobuf.SourceCodeInfo.Location.leading_detached_comments\"\n)\n\n// Field numbers for google.protobuf.SourceCodeInfo.Location.\nconst (\n\tSourceCodeInfo_Location_Path_field_number                    protoreflect.FieldNumber = 1\n\tSourceCodeInfo_Location_Span_field_number                    protoreflect.FieldNumber = 2\n\tSourceCodeInfo_Location_LeadingComments_field_number         protoreflect.FieldNumber = 3\n\tSourceCodeInfo_Location_TrailingComments_field_number        protoreflect.FieldNumber = 4\n\tSourceCodeInfo_Location_LeadingDetachedComments_field_number protoreflect.FieldNumber = 6\n)\n\n// Names for google.protobuf.GeneratedCodeInfo.\nconst (\n\tGeneratedCodeInfo_message_name     protoreflect.Name     = \"GeneratedCodeInfo\"\n\tGeneratedCodeInfo_message_fullname protoreflect.FullName = \"google.protobuf.GeneratedCodeInfo\"\n)\n\n// Field names for google.protobuf.GeneratedCodeInfo.\nconst (\n\tGeneratedCodeInfo_Annotation_field_name protoreflect.Name = \"annotation\"\n\n\tGeneratedCodeInfo_Annotation_field_fullname protoreflect.FullName = \"google.protobuf.GeneratedCodeInfo.annotation\"\n)\n\n// Field numbers for google.protobuf.GeneratedCodeInfo.\nconst (\n\tGeneratedCodeInfo_Annotation_field_number protoreflect.FieldNumber = 1\n)\n\n// Names for google.protobuf.GeneratedCodeInfo.Annotation.\nconst (\n\tGeneratedCodeInfo_Annotation_message_name     protoreflect.Name     = \"Annotation\"\n\tGeneratedCodeInfo_Annotation_message_fullname protoreflect.FullName = \"google.protobuf.GeneratedCodeInfo.Annotation\"\n)\n\n// Field names for google.protobuf.GeneratedCodeInfo.Annotation.\nconst (\n\tGeneratedCodeInfo_Annotation_Path_field_name       protoreflect.Name = \"path\"\n\tGeneratedCodeInfo_Annotation_SourceFile_field_name protoreflect.Name = \"source_file\"\n\tGeneratedCodeInfo_Annotation_Begin_field_name      protoreflect.Name = \"begin\"\n\tGeneratedCodeInfo_Annotation_End_field_name        protoreflect.Name = \"end\"\n\tGeneratedCodeInfo_Annotation_Semantic_field_name   protoreflect.Name = \"semantic\"\n\n\tGeneratedCodeInfo_Annotation_Path_field_fullname       protoreflect.FullName = \"google.protobuf.GeneratedCodeInfo.Annotation.path\"\n\tGeneratedCodeInfo_Annotation_SourceFile_field_fullname protoreflect.FullName = \"google.protobuf.GeneratedCodeInfo.Annotation.source_file\"\n\tGeneratedCodeInfo_Annotation_Begin_field_fullname      protoreflect.FullName = \"google.protobuf.GeneratedCodeInfo.Annotation.begin\"\n\tGeneratedCodeInfo_Annotation_End_field_fullname        protoreflect.FullName = \"google.protobuf.GeneratedCodeInfo.Annotation.end\"\n\tGeneratedCodeInfo_Annotation_Semantic_field_fullname   protoreflect.FullName = \"google.protobuf.GeneratedCodeInfo.Annotation.semantic\"\n)\n\n// Field numbers for google.protobuf.GeneratedCodeInfo.Annotation.\nconst (\n\tGeneratedCodeInfo_Annotation_Path_field_number       protoreflect.FieldNumber = 1\n\tGeneratedCodeInfo_Annotation_SourceFile_field_number protoreflect.FieldNumber = 2\n\tGeneratedCodeInfo_Annotation_Begin_field_number      protoreflect.FieldNumber = 3\n\tGeneratedCodeInfo_Annotation_End_field_number        protoreflect.FieldNumber = 4\n\tGeneratedCodeInfo_Annotation_Semantic_field_number   protoreflect.FieldNumber = 5\n)\n\n// Full and short names for google.protobuf.GeneratedCodeInfo.Annotation.Semantic.\nconst (\n\tGeneratedCodeInfo_Annotation_Semantic_enum_fullname = \"google.protobuf.GeneratedCodeInfo.Annotation.Semantic\"\n\tGeneratedCodeInfo_Annotation_Semantic_enum_name     = \"Semantic\"\n)\n\n// Enum values for google.protobuf.GeneratedCodeInfo.Annotation.Semantic.\nconst (\n\tGeneratedCodeInfo_Annotation_NONE_enum_value  = 0\n\tGeneratedCodeInfo_Annotation_SET_enum_value   = 1\n\tGeneratedCodeInfo_Annotation_ALIAS_enum_value = 2\n)\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/genid/doc.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package genid contains constants for declarations in descriptor.proto\n// and the well-known types.\npackage genid\n\nimport \"google.golang.org/protobuf/reflect/protoreflect\"\n\nconst GoogleProtobuf_package protoreflect.FullName = \"google.protobuf\"\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/genid/duration_gen.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by generate-protos. DO NOT EDIT.\n\npackage genid\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\nconst File_google_protobuf_duration_proto = \"google/protobuf/duration.proto\"\n\n// Names for google.protobuf.Duration.\nconst (\n\tDuration_message_name     protoreflect.Name     = \"Duration\"\n\tDuration_message_fullname protoreflect.FullName = \"google.protobuf.Duration\"\n)\n\n// Field names for google.protobuf.Duration.\nconst (\n\tDuration_Seconds_field_name protoreflect.Name = \"seconds\"\n\tDuration_Nanos_field_name   protoreflect.Name = \"nanos\"\n\n\tDuration_Seconds_field_fullname protoreflect.FullName = \"google.protobuf.Duration.seconds\"\n\tDuration_Nanos_field_fullname   protoreflect.FullName = \"google.protobuf.Duration.nanos\"\n)\n\n// Field numbers for google.protobuf.Duration.\nconst (\n\tDuration_Seconds_field_number protoreflect.FieldNumber = 1\n\tDuration_Nanos_field_number   protoreflect.FieldNumber = 2\n)\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/genid/empty_gen.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by generate-protos. DO NOT EDIT.\n\npackage genid\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\nconst File_google_protobuf_empty_proto = \"google/protobuf/empty.proto\"\n\n// Names for google.protobuf.Empty.\nconst (\n\tEmpty_message_name     protoreflect.Name     = \"Empty\"\n\tEmpty_message_fullname protoreflect.FullName = \"google.protobuf.Empty\"\n)\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/genid/field_mask_gen.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by generate-protos. DO NOT EDIT.\n\npackage genid\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\nconst File_google_protobuf_field_mask_proto = \"google/protobuf/field_mask.proto\"\n\n// Names for google.protobuf.FieldMask.\nconst (\n\tFieldMask_message_name     protoreflect.Name     = \"FieldMask\"\n\tFieldMask_message_fullname protoreflect.FullName = \"google.protobuf.FieldMask\"\n)\n\n// Field names for google.protobuf.FieldMask.\nconst (\n\tFieldMask_Paths_field_name protoreflect.Name = \"paths\"\n\n\tFieldMask_Paths_field_fullname protoreflect.FullName = \"google.protobuf.FieldMask.paths\"\n)\n\n// Field numbers for google.protobuf.FieldMask.\nconst (\n\tFieldMask_Paths_field_number protoreflect.FieldNumber = 1\n)\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/genid/go_features_gen.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by generate-protos. DO NOT EDIT.\n\npackage genid\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\nconst File_google_protobuf_go_features_proto = \"google/protobuf/go_features.proto\"\n\n// Names for pb.GoFeatures.\nconst (\n\tGoFeatures_message_name     protoreflect.Name     = \"GoFeatures\"\n\tGoFeatures_message_fullname protoreflect.FullName = \"pb.GoFeatures\"\n)\n\n// Field names for pb.GoFeatures.\nconst (\n\tGoFeatures_LegacyUnmarshalJsonEnum_field_name protoreflect.Name = \"legacy_unmarshal_json_enum\"\n\n\tGoFeatures_LegacyUnmarshalJsonEnum_field_fullname protoreflect.FullName = \"pb.GoFeatures.legacy_unmarshal_json_enum\"\n)\n\n// Field numbers for pb.GoFeatures.\nconst (\n\tGoFeatures_LegacyUnmarshalJsonEnum_field_number protoreflect.FieldNumber = 1\n)\n\n// Extension numbers\nconst (\n\tFeatureSet_Go_ext_number protoreflect.FieldNumber = 1002\n)\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/genid/goname.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage genid\n\n// Go names of implementation-specific struct fields in generated messages.\nconst (\n\tState_goname = \"state\"\n\n\tSizeCache_goname  = \"sizeCache\"\n\tSizeCacheA_goname = \"XXX_sizecache\"\n\n\tWeakFields_goname  = \"weakFields\"\n\tWeakFieldsA_goname = \"XXX_weak\"\n\n\tUnknownFields_goname  = \"unknownFields\"\n\tUnknownFieldsA_goname = \"XXX_unrecognized\"\n\n\tExtensionFields_goname  = \"extensionFields\"\n\tExtensionFieldsA_goname = \"XXX_InternalExtensions\"\n\tExtensionFieldsB_goname = \"XXX_extensions\"\n\n\tWeakFieldPrefix_goname = \"XXX_weak_\"\n)\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/genid/map_entry.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage genid\n\nimport \"google.golang.org/protobuf/reflect/protoreflect\"\n\n// Generic field names and numbers for synthetic map entry messages.\nconst (\n\tMapEntry_Key_field_name   protoreflect.Name = \"key\"\n\tMapEntry_Value_field_name protoreflect.Name = \"value\"\n\n\tMapEntry_Key_field_number   protoreflect.FieldNumber = 1\n\tMapEntry_Value_field_number protoreflect.FieldNumber = 2\n)\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/genid/source_context_gen.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by generate-protos. DO NOT EDIT.\n\npackage genid\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\nconst File_google_protobuf_source_context_proto = \"google/protobuf/source_context.proto\"\n\n// Names for google.protobuf.SourceContext.\nconst (\n\tSourceContext_message_name     protoreflect.Name     = \"SourceContext\"\n\tSourceContext_message_fullname protoreflect.FullName = \"google.protobuf.SourceContext\"\n)\n\n// Field names for google.protobuf.SourceContext.\nconst (\n\tSourceContext_FileName_field_name protoreflect.Name = \"file_name\"\n\n\tSourceContext_FileName_field_fullname protoreflect.FullName = \"google.protobuf.SourceContext.file_name\"\n)\n\n// Field numbers for google.protobuf.SourceContext.\nconst (\n\tSourceContext_FileName_field_number protoreflect.FieldNumber = 1\n)\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/genid/struct_gen.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by generate-protos. DO NOT EDIT.\n\npackage genid\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\nconst File_google_protobuf_struct_proto = \"google/protobuf/struct.proto\"\n\n// Full and short names for google.protobuf.NullValue.\nconst (\n\tNullValue_enum_fullname = \"google.protobuf.NullValue\"\n\tNullValue_enum_name     = \"NullValue\"\n)\n\n// Enum values for google.protobuf.NullValue.\nconst (\n\tNullValue_NULL_VALUE_enum_value = 0\n)\n\n// Names for google.protobuf.Struct.\nconst (\n\tStruct_message_name     protoreflect.Name     = \"Struct\"\n\tStruct_message_fullname protoreflect.FullName = \"google.protobuf.Struct\"\n)\n\n// Field names for google.protobuf.Struct.\nconst (\n\tStruct_Fields_field_name protoreflect.Name = \"fields\"\n\n\tStruct_Fields_field_fullname protoreflect.FullName = \"google.protobuf.Struct.fields\"\n)\n\n// Field numbers for google.protobuf.Struct.\nconst (\n\tStruct_Fields_field_number protoreflect.FieldNumber = 1\n)\n\n// Names for google.protobuf.Struct.FieldsEntry.\nconst (\n\tStruct_FieldsEntry_message_name     protoreflect.Name     = \"FieldsEntry\"\n\tStruct_FieldsEntry_message_fullname protoreflect.FullName = \"google.protobuf.Struct.FieldsEntry\"\n)\n\n// Field names for google.protobuf.Struct.FieldsEntry.\nconst (\n\tStruct_FieldsEntry_Key_field_name   protoreflect.Name = \"key\"\n\tStruct_FieldsEntry_Value_field_name protoreflect.Name = \"value\"\n\n\tStruct_FieldsEntry_Key_field_fullname   protoreflect.FullName = \"google.protobuf.Struct.FieldsEntry.key\"\n\tStruct_FieldsEntry_Value_field_fullname protoreflect.FullName = \"google.protobuf.Struct.FieldsEntry.value\"\n)\n\n// Field numbers for google.protobuf.Struct.FieldsEntry.\nconst (\n\tStruct_FieldsEntry_Key_field_number   protoreflect.FieldNumber = 1\n\tStruct_FieldsEntry_Value_field_number protoreflect.FieldNumber = 2\n)\n\n// Names for google.protobuf.Value.\nconst (\n\tValue_message_name     protoreflect.Name     = \"Value\"\n\tValue_message_fullname protoreflect.FullName = \"google.protobuf.Value\"\n)\n\n// Field names for google.protobuf.Value.\nconst (\n\tValue_NullValue_field_name   protoreflect.Name = \"null_value\"\n\tValue_NumberValue_field_name protoreflect.Name = \"number_value\"\n\tValue_StringValue_field_name protoreflect.Name = \"string_value\"\n\tValue_BoolValue_field_name   protoreflect.Name = \"bool_value\"\n\tValue_StructValue_field_name protoreflect.Name = \"struct_value\"\n\tValue_ListValue_field_name   protoreflect.Name = \"list_value\"\n\n\tValue_NullValue_field_fullname   protoreflect.FullName = \"google.protobuf.Value.null_value\"\n\tValue_NumberValue_field_fullname protoreflect.FullName = \"google.protobuf.Value.number_value\"\n\tValue_StringValue_field_fullname protoreflect.FullName = \"google.protobuf.Value.string_value\"\n\tValue_BoolValue_field_fullname   protoreflect.FullName = \"google.protobuf.Value.bool_value\"\n\tValue_StructValue_field_fullname protoreflect.FullName = \"google.protobuf.Value.struct_value\"\n\tValue_ListValue_field_fullname   protoreflect.FullName = \"google.protobuf.Value.list_value\"\n)\n\n// Field numbers for google.protobuf.Value.\nconst (\n\tValue_NullValue_field_number   protoreflect.FieldNumber = 1\n\tValue_NumberValue_field_number protoreflect.FieldNumber = 2\n\tValue_StringValue_field_number protoreflect.FieldNumber = 3\n\tValue_BoolValue_field_number   protoreflect.FieldNumber = 4\n\tValue_StructValue_field_number protoreflect.FieldNumber = 5\n\tValue_ListValue_field_number   protoreflect.FieldNumber = 6\n)\n\n// Oneof names for google.protobuf.Value.\nconst (\n\tValue_Kind_oneof_name protoreflect.Name = \"kind\"\n\n\tValue_Kind_oneof_fullname protoreflect.FullName = \"google.protobuf.Value.kind\"\n)\n\n// Names for google.protobuf.ListValue.\nconst (\n\tListValue_message_name     protoreflect.Name     = \"ListValue\"\n\tListValue_message_fullname protoreflect.FullName = \"google.protobuf.ListValue\"\n)\n\n// Field names for google.protobuf.ListValue.\nconst (\n\tListValue_Values_field_name protoreflect.Name = \"values\"\n\n\tListValue_Values_field_fullname protoreflect.FullName = \"google.protobuf.ListValue.values\"\n)\n\n// Field numbers for google.protobuf.ListValue.\nconst (\n\tListValue_Values_field_number protoreflect.FieldNumber = 1\n)\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/genid/timestamp_gen.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by generate-protos. DO NOT EDIT.\n\npackage genid\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\nconst File_google_protobuf_timestamp_proto = \"google/protobuf/timestamp.proto\"\n\n// Names for google.protobuf.Timestamp.\nconst (\n\tTimestamp_message_name     protoreflect.Name     = \"Timestamp\"\n\tTimestamp_message_fullname protoreflect.FullName = \"google.protobuf.Timestamp\"\n)\n\n// Field names for google.protobuf.Timestamp.\nconst (\n\tTimestamp_Seconds_field_name protoreflect.Name = \"seconds\"\n\tTimestamp_Nanos_field_name   protoreflect.Name = \"nanos\"\n\n\tTimestamp_Seconds_field_fullname protoreflect.FullName = \"google.protobuf.Timestamp.seconds\"\n\tTimestamp_Nanos_field_fullname   protoreflect.FullName = \"google.protobuf.Timestamp.nanos\"\n)\n\n// Field numbers for google.protobuf.Timestamp.\nconst (\n\tTimestamp_Seconds_field_number protoreflect.FieldNumber = 1\n\tTimestamp_Nanos_field_number   protoreflect.FieldNumber = 2\n)\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/genid/type_gen.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by generate-protos. DO NOT EDIT.\n\npackage genid\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\nconst File_google_protobuf_type_proto = \"google/protobuf/type.proto\"\n\n// Full and short names for google.protobuf.Syntax.\nconst (\n\tSyntax_enum_fullname = \"google.protobuf.Syntax\"\n\tSyntax_enum_name     = \"Syntax\"\n)\n\n// Enum values for google.protobuf.Syntax.\nconst (\n\tSyntax_SYNTAX_PROTO2_enum_value   = 0\n\tSyntax_SYNTAX_PROTO3_enum_value   = 1\n\tSyntax_SYNTAX_EDITIONS_enum_value = 2\n)\n\n// Names for google.protobuf.Type.\nconst (\n\tType_message_name     protoreflect.Name     = \"Type\"\n\tType_message_fullname protoreflect.FullName = \"google.protobuf.Type\"\n)\n\n// Field names for google.protobuf.Type.\nconst (\n\tType_Name_field_name          protoreflect.Name = \"name\"\n\tType_Fields_field_name        protoreflect.Name = \"fields\"\n\tType_Oneofs_field_name        protoreflect.Name = \"oneofs\"\n\tType_Options_field_name       protoreflect.Name = \"options\"\n\tType_SourceContext_field_name protoreflect.Name = \"source_context\"\n\tType_Syntax_field_name        protoreflect.Name = \"syntax\"\n\tType_Edition_field_name       protoreflect.Name = \"edition\"\n\n\tType_Name_field_fullname          protoreflect.FullName = \"google.protobuf.Type.name\"\n\tType_Fields_field_fullname        protoreflect.FullName = \"google.protobuf.Type.fields\"\n\tType_Oneofs_field_fullname        protoreflect.FullName = \"google.protobuf.Type.oneofs\"\n\tType_Options_field_fullname       protoreflect.FullName = \"google.protobuf.Type.options\"\n\tType_SourceContext_field_fullname protoreflect.FullName = \"google.protobuf.Type.source_context\"\n\tType_Syntax_field_fullname        protoreflect.FullName = \"google.protobuf.Type.syntax\"\n\tType_Edition_field_fullname       protoreflect.FullName = \"google.protobuf.Type.edition\"\n)\n\n// Field numbers for google.protobuf.Type.\nconst (\n\tType_Name_field_number          protoreflect.FieldNumber = 1\n\tType_Fields_field_number        protoreflect.FieldNumber = 2\n\tType_Oneofs_field_number        protoreflect.FieldNumber = 3\n\tType_Options_field_number       protoreflect.FieldNumber = 4\n\tType_SourceContext_field_number protoreflect.FieldNumber = 5\n\tType_Syntax_field_number        protoreflect.FieldNumber = 6\n\tType_Edition_field_number       protoreflect.FieldNumber = 7\n)\n\n// Names for google.protobuf.Field.\nconst (\n\tField_message_name     protoreflect.Name     = \"Field\"\n\tField_message_fullname protoreflect.FullName = \"google.protobuf.Field\"\n)\n\n// Field names for google.protobuf.Field.\nconst (\n\tField_Kind_field_name         protoreflect.Name = \"kind\"\n\tField_Cardinality_field_name  protoreflect.Name = \"cardinality\"\n\tField_Number_field_name       protoreflect.Name = \"number\"\n\tField_Name_field_name         protoreflect.Name = \"name\"\n\tField_TypeUrl_field_name      protoreflect.Name = \"type_url\"\n\tField_OneofIndex_field_name   protoreflect.Name = \"oneof_index\"\n\tField_Packed_field_name       protoreflect.Name = \"packed\"\n\tField_Options_field_name      protoreflect.Name = \"options\"\n\tField_JsonName_field_name     protoreflect.Name = \"json_name\"\n\tField_DefaultValue_field_name protoreflect.Name = \"default_value\"\n\n\tField_Kind_field_fullname         protoreflect.FullName = \"google.protobuf.Field.kind\"\n\tField_Cardinality_field_fullname  protoreflect.FullName = \"google.protobuf.Field.cardinality\"\n\tField_Number_field_fullname       protoreflect.FullName = \"google.protobuf.Field.number\"\n\tField_Name_field_fullname         protoreflect.FullName = \"google.protobuf.Field.name\"\n\tField_TypeUrl_field_fullname      protoreflect.FullName = \"google.protobuf.Field.type_url\"\n\tField_OneofIndex_field_fullname   protoreflect.FullName = \"google.protobuf.Field.oneof_index\"\n\tField_Packed_field_fullname       protoreflect.FullName = \"google.protobuf.Field.packed\"\n\tField_Options_field_fullname      protoreflect.FullName = \"google.protobuf.Field.options\"\n\tField_JsonName_field_fullname     protoreflect.FullName = \"google.protobuf.Field.json_name\"\n\tField_DefaultValue_field_fullname protoreflect.FullName = \"google.protobuf.Field.default_value\"\n)\n\n// Field numbers for google.protobuf.Field.\nconst (\n\tField_Kind_field_number         protoreflect.FieldNumber = 1\n\tField_Cardinality_field_number  protoreflect.FieldNumber = 2\n\tField_Number_field_number       protoreflect.FieldNumber = 3\n\tField_Name_field_number         protoreflect.FieldNumber = 4\n\tField_TypeUrl_field_number      protoreflect.FieldNumber = 6\n\tField_OneofIndex_field_number   protoreflect.FieldNumber = 7\n\tField_Packed_field_number       protoreflect.FieldNumber = 8\n\tField_Options_field_number      protoreflect.FieldNumber = 9\n\tField_JsonName_field_number     protoreflect.FieldNumber = 10\n\tField_DefaultValue_field_number protoreflect.FieldNumber = 11\n)\n\n// Full and short names for google.protobuf.Field.Kind.\nconst (\n\tField_Kind_enum_fullname = \"google.protobuf.Field.Kind\"\n\tField_Kind_enum_name     = \"Kind\"\n)\n\n// Enum values for google.protobuf.Field.Kind.\nconst (\n\tField_TYPE_UNKNOWN_enum_value  = 0\n\tField_TYPE_DOUBLE_enum_value   = 1\n\tField_TYPE_FLOAT_enum_value    = 2\n\tField_TYPE_INT64_enum_value    = 3\n\tField_TYPE_UINT64_enum_value   = 4\n\tField_TYPE_INT32_enum_value    = 5\n\tField_TYPE_FIXED64_enum_value  = 6\n\tField_TYPE_FIXED32_enum_value  = 7\n\tField_TYPE_BOOL_enum_value     = 8\n\tField_TYPE_STRING_enum_value   = 9\n\tField_TYPE_GROUP_enum_value    = 10\n\tField_TYPE_MESSAGE_enum_value  = 11\n\tField_TYPE_BYTES_enum_value    = 12\n\tField_TYPE_UINT32_enum_value   = 13\n\tField_TYPE_ENUM_enum_value     = 14\n\tField_TYPE_SFIXED32_enum_value = 15\n\tField_TYPE_SFIXED64_enum_value = 16\n\tField_TYPE_SINT32_enum_value   = 17\n\tField_TYPE_SINT64_enum_value   = 18\n)\n\n// Full and short names for google.protobuf.Field.Cardinality.\nconst (\n\tField_Cardinality_enum_fullname = \"google.protobuf.Field.Cardinality\"\n\tField_Cardinality_enum_name     = \"Cardinality\"\n)\n\n// Enum values for google.protobuf.Field.Cardinality.\nconst (\n\tField_CARDINALITY_UNKNOWN_enum_value  = 0\n\tField_CARDINALITY_OPTIONAL_enum_value = 1\n\tField_CARDINALITY_REQUIRED_enum_value = 2\n\tField_CARDINALITY_REPEATED_enum_value = 3\n)\n\n// Names for google.protobuf.Enum.\nconst (\n\tEnum_message_name     protoreflect.Name     = \"Enum\"\n\tEnum_message_fullname protoreflect.FullName = \"google.protobuf.Enum\"\n)\n\n// Field names for google.protobuf.Enum.\nconst (\n\tEnum_Name_field_name          protoreflect.Name = \"name\"\n\tEnum_Enumvalue_field_name     protoreflect.Name = \"enumvalue\"\n\tEnum_Options_field_name       protoreflect.Name = \"options\"\n\tEnum_SourceContext_field_name protoreflect.Name = \"source_context\"\n\tEnum_Syntax_field_name        protoreflect.Name = \"syntax\"\n\tEnum_Edition_field_name       protoreflect.Name = \"edition\"\n\n\tEnum_Name_field_fullname          protoreflect.FullName = \"google.protobuf.Enum.name\"\n\tEnum_Enumvalue_field_fullname     protoreflect.FullName = \"google.protobuf.Enum.enumvalue\"\n\tEnum_Options_field_fullname       protoreflect.FullName = \"google.protobuf.Enum.options\"\n\tEnum_SourceContext_field_fullname protoreflect.FullName = \"google.protobuf.Enum.source_context\"\n\tEnum_Syntax_field_fullname        protoreflect.FullName = \"google.protobuf.Enum.syntax\"\n\tEnum_Edition_field_fullname       protoreflect.FullName = \"google.protobuf.Enum.edition\"\n)\n\n// Field numbers for google.protobuf.Enum.\nconst (\n\tEnum_Name_field_number          protoreflect.FieldNumber = 1\n\tEnum_Enumvalue_field_number     protoreflect.FieldNumber = 2\n\tEnum_Options_field_number       protoreflect.FieldNumber = 3\n\tEnum_SourceContext_field_number protoreflect.FieldNumber = 4\n\tEnum_Syntax_field_number        protoreflect.FieldNumber = 5\n\tEnum_Edition_field_number       protoreflect.FieldNumber = 6\n)\n\n// Names for google.protobuf.EnumValue.\nconst (\n\tEnumValue_message_name     protoreflect.Name     = \"EnumValue\"\n\tEnumValue_message_fullname protoreflect.FullName = \"google.protobuf.EnumValue\"\n)\n\n// Field names for google.protobuf.EnumValue.\nconst (\n\tEnumValue_Name_field_name    protoreflect.Name = \"name\"\n\tEnumValue_Number_field_name  protoreflect.Name = \"number\"\n\tEnumValue_Options_field_name protoreflect.Name = \"options\"\n\n\tEnumValue_Name_field_fullname    protoreflect.FullName = \"google.protobuf.EnumValue.name\"\n\tEnumValue_Number_field_fullname  protoreflect.FullName = \"google.protobuf.EnumValue.number\"\n\tEnumValue_Options_field_fullname protoreflect.FullName = \"google.protobuf.EnumValue.options\"\n)\n\n// Field numbers for google.protobuf.EnumValue.\nconst (\n\tEnumValue_Name_field_number    protoreflect.FieldNumber = 1\n\tEnumValue_Number_field_number  protoreflect.FieldNumber = 2\n\tEnumValue_Options_field_number protoreflect.FieldNumber = 3\n)\n\n// Names for google.protobuf.Option.\nconst (\n\tOption_message_name     protoreflect.Name     = \"Option\"\n\tOption_message_fullname protoreflect.FullName = \"google.protobuf.Option\"\n)\n\n// Field names for google.protobuf.Option.\nconst (\n\tOption_Name_field_name  protoreflect.Name = \"name\"\n\tOption_Value_field_name protoreflect.Name = \"value\"\n\n\tOption_Name_field_fullname  protoreflect.FullName = \"google.protobuf.Option.name\"\n\tOption_Value_field_fullname protoreflect.FullName = \"google.protobuf.Option.value\"\n)\n\n// Field numbers for google.protobuf.Option.\nconst (\n\tOption_Name_field_number  protoreflect.FieldNumber = 1\n\tOption_Value_field_number protoreflect.FieldNumber = 2\n)\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/genid/wrappers.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage genid\n\nimport \"google.golang.org/protobuf/reflect/protoreflect\"\n\n// Generic field name and number for messages in wrappers.proto.\nconst (\n\tWrapperValue_Value_field_name   protoreflect.Name        = \"value\"\n\tWrapperValue_Value_field_number protoreflect.FieldNumber = 1\n)\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/genid/wrappers_gen.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by generate-protos. DO NOT EDIT.\n\npackage genid\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\nconst File_google_protobuf_wrappers_proto = \"google/protobuf/wrappers.proto\"\n\n// Names for google.protobuf.DoubleValue.\nconst (\n\tDoubleValue_message_name     protoreflect.Name     = \"DoubleValue\"\n\tDoubleValue_message_fullname protoreflect.FullName = \"google.protobuf.DoubleValue\"\n)\n\n// Field names for google.protobuf.DoubleValue.\nconst (\n\tDoubleValue_Value_field_name protoreflect.Name = \"value\"\n\n\tDoubleValue_Value_field_fullname protoreflect.FullName = \"google.protobuf.DoubleValue.value\"\n)\n\n// Field numbers for google.protobuf.DoubleValue.\nconst (\n\tDoubleValue_Value_field_number protoreflect.FieldNumber = 1\n)\n\n// Names for google.protobuf.FloatValue.\nconst (\n\tFloatValue_message_name     protoreflect.Name     = \"FloatValue\"\n\tFloatValue_message_fullname protoreflect.FullName = \"google.protobuf.FloatValue\"\n)\n\n// Field names for google.protobuf.FloatValue.\nconst (\n\tFloatValue_Value_field_name protoreflect.Name = \"value\"\n\n\tFloatValue_Value_field_fullname protoreflect.FullName = \"google.protobuf.FloatValue.value\"\n)\n\n// Field numbers for google.protobuf.FloatValue.\nconst (\n\tFloatValue_Value_field_number protoreflect.FieldNumber = 1\n)\n\n// Names for google.protobuf.Int64Value.\nconst (\n\tInt64Value_message_name     protoreflect.Name     = \"Int64Value\"\n\tInt64Value_message_fullname protoreflect.FullName = \"google.protobuf.Int64Value\"\n)\n\n// Field names for google.protobuf.Int64Value.\nconst (\n\tInt64Value_Value_field_name protoreflect.Name = \"value\"\n\n\tInt64Value_Value_field_fullname protoreflect.FullName = \"google.protobuf.Int64Value.value\"\n)\n\n// Field numbers for google.protobuf.Int64Value.\nconst (\n\tInt64Value_Value_field_number protoreflect.FieldNumber = 1\n)\n\n// Names for google.protobuf.UInt64Value.\nconst (\n\tUInt64Value_message_name     protoreflect.Name     = \"UInt64Value\"\n\tUInt64Value_message_fullname protoreflect.FullName = \"google.protobuf.UInt64Value\"\n)\n\n// Field names for google.protobuf.UInt64Value.\nconst (\n\tUInt64Value_Value_field_name protoreflect.Name = \"value\"\n\n\tUInt64Value_Value_field_fullname protoreflect.FullName = \"google.protobuf.UInt64Value.value\"\n)\n\n// Field numbers for google.protobuf.UInt64Value.\nconst (\n\tUInt64Value_Value_field_number protoreflect.FieldNumber = 1\n)\n\n// Names for google.protobuf.Int32Value.\nconst (\n\tInt32Value_message_name     protoreflect.Name     = \"Int32Value\"\n\tInt32Value_message_fullname protoreflect.FullName = \"google.protobuf.Int32Value\"\n)\n\n// Field names for google.protobuf.Int32Value.\nconst (\n\tInt32Value_Value_field_name protoreflect.Name = \"value\"\n\n\tInt32Value_Value_field_fullname protoreflect.FullName = \"google.protobuf.Int32Value.value\"\n)\n\n// Field numbers for google.protobuf.Int32Value.\nconst (\n\tInt32Value_Value_field_number protoreflect.FieldNumber = 1\n)\n\n// Names for google.protobuf.UInt32Value.\nconst (\n\tUInt32Value_message_name     protoreflect.Name     = \"UInt32Value\"\n\tUInt32Value_message_fullname protoreflect.FullName = \"google.protobuf.UInt32Value\"\n)\n\n// Field names for google.protobuf.UInt32Value.\nconst (\n\tUInt32Value_Value_field_name protoreflect.Name = \"value\"\n\n\tUInt32Value_Value_field_fullname protoreflect.FullName = \"google.protobuf.UInt32Value.value\"\n)\n\n// Field numbers for google.protobuf.UInt32Value.\nconst (\n\tUInt32Value_Value_field_number protoreflect.FieldNumber = 1\n)\n\n// Names for google.protobuf.BoolValue.\nconst (\n\tBoolValue_message_name     protoreflect.Name     = \"BoolValue\"\n\tBoolValue_message_fullname protoreflect.FullName = \"google.protobuf.BoolValue\"\n)\n\n// Field names for google.protobuf.BoolValue.\nconst (\n\tBoolValue_Value_field_name protoreflect.Name = \"value\"\n\n\tBoolValue_Value_field_fullname protoreflect.FullName = \"google.protobuf.BoolValue.value\"\n)\n\n// Field numbers for google.protobuf.BoolValue.\nconst (\n\tBoolValue_Value_field_number protoreflect.FieldNumber = 1\n)\n\n// Names for google.protobuf.StringValue.\nconst (\n\tStringValue_message_name     protoreflect.Name     = \"StringValue\"\n\tStringValue_message_fullname protoreflect.FullName = \"google.protobuf.StringValue\"\n)\n\n// Field names for google.protobuf.StringValue.\nconst (\n\tStringValue_Value_field_name protoreflect.Name = \"value\"\n\n\tStringValue_Value_field_fullname protoreflect.FullName = \"google.protobuf.StringValue.value\"\n)\n\n// Field numbers for google.protobuf.StringValue.\nconst (\n\tStringValue_Value_field_number protoreflect.FieldNumber = 1\n)\n\n// Names for google.protobuf.BytesValue.\nconst (\n\tBytesValue_message_name     protoreflect.Name     = \"BytesValue\"\n\tBytesValue_message_fullname protoreflect.FullName = \"google.protobuf.BytesValue\"\n)\n\n// Field names for google.protobuf.BytesValue.\nconst (\n\tBytesValue_Value_field_name protoreflect.Name = \"value\"\n\n\tBytesValue_Value_field_fullname protoreflect.FullName = \"google.protobuf.BytesValue.value\"\n)\n\n// Field numbers for google.protobuf.BytesValue.\nconst (\n\tBytesValue_Value_field_number protoreflect.FieldNumber = 1\n)\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/api_export.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"strconv\"\n\n\t\"google.golang.org/protobuf/encoding/prototext\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/proto\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n)\n\n// Export is a zero-length named type that exists only to export a set of\n// functions that we do not want to appear in godoc.\ntype Export struct{}\n\n// NewError formats a string according to the format specifier and arguments and\n// returns an error that has a \"proto\" prefix.\nfunc (Export) NewError(f string, x ...any) error {\n\treturn errors.New(f, x...)\n}\n\n// enum is any enum type generated by protoc-gen-go\n// and must be a named int32 type.\ntype enum = any\n\n// EnumOf returns the protoreflect.Enum interface over e.\n// It returns nil if e is nil.\nfunc (Export) EnumOf(e enum) protoreflect.Enum {\n\tswitch e := e.(type) {\n\tcase nil:\n\t\treturn nil\n\tcase protoreflect.Enum:\n\t\treturn e\n\tdefault:\n\t\treturn legacyWrapEnum(reflect.ValueOf(e))\n\t}\n}\n\n// EnumDescriptorOf returns the protoreflect.EnumDescriptor for e.\n// It returns nil if e is nil.\nfunc (Export) EnumDescriptorOf(e enum) protoreflect.EnumDescriptor {\n\tswitch e := e.(type) {\n\tcase nil:\n\t\treturn nil\n\tcase protoreflect.Enum:\n\t\treturn e.Descriptor()\n\tdefault:\n\t\treturn LegacyLoadEnumDesc(reflect.TypeOf(e))\n\t}\n}\n\n// EnumTypeOf returns the protoreflect.EnumType for e.\n// It returns nil if e is nil.\nfunc (Export) EnumTypeOf(e enum) protoreflect.EnumType {\n\tswitch e := e.(type) {\n\tcase nil:\n\t\treturn nil\n\tcase protoreflect.Enum:\n\t\treturn e.Type()\n\tdefault:\n\t\treturn legacyLoadEnumType(reflect.TypeOf(e))\n\t}\n}\n\n// EnumStringOf returns the enum value as a string, either as the name if\n// the number is resolvable, or the number formatted as a string.\nfunc (Export) EnumStringOf(ed protoreflect.EnumDescriptor, n protoreflect.EnumNumber) string {\n\tev := ed.Values().ByNumber(n)\n\tif ev != nil {\n\t\treturn string(ev.Name())\n\t}\n\treturn strconv.Itoa(int(n))\n}\n\n// message is any message type generated by protoc-gen-go\n// and must be a pointer to a named struct type.\ntype message = any\n\n// legacyMessageWrapper wraps a v2 message as a v1 message.\ntype legacyMessageWrapper struct{ m protoreflect.ProtoMessage }\n\nfunc (m legacyMessageWrapper) Reset()         { proto.Reset(m.m) }\nfunc (m legacyMessageWrapper) String() string { return Export{}.MessageStringOf(m.m) }\nfunc (m legacyMessageWrapper) ProtoMessage()  {}\n\n// ProtoMessageV1Of converts either a v1 or v2 message to a v1 message.\n// It returns nil if m is nil.\nfunc (Export) ProtoMessageV1Of(m message) protoiface.MessageV1 {\n\tswitch mv := m.(type) {\n\tcase nil:\n\t\treturn nil\n\tcase protoiface.MessageV1:\n\t\treturn mv\n\tcase unwrapper:\n\t\treturn Export{}.ProtoMessageV1Of(mv.protoUnwrap())\n\tcase protoreflect.ProtoMessage:\n\t\treturn legacyMessageWrapper{mv}\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"message %T is neither a v1 or v2 Message\", m))\n\t}\n}\n\nfunc (Export) protoMessageV2Of(m message) protoreflect.ProtoMessage {\n\tswitch mv := m.(type) {\n\tcase nil:\n\t\treturn nil\n\tcase protoreflect.ProtoMessage:\n\t\treturn mv\n\tcase legacyMessageWrapper:\n\t\treturn mv.m\n\tcase protoiface.MessageV1:\n\t\treturn nil\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"message %T is neither a v1 or v2 Message\", m))\n\t}\n}\n\n// ProtoMessageV2Of converts either a v1 or v2 message to a v2 message.\n// It returns nil if m is nil.\nfunc (Export) ProtoMessageV2Of(m message) protoreflect.ProtoMessage {\n\tif m == nil {\n\t\treturn nil\n\t}\n\tif mv := (Export{}).protoMessageV2Of(m); mv != nil {\n\t\treturn mv\n\t}\n\treturn legacyWrapMessage(reflect.ValueOf(m)).Interface()\n}\n\n// MessageOf returns the protoreflect.Message interface over m.\n// It returns nil if m is nil.\nfunc (Export) MessageOf(m message) protoreflect.Message {\n\tif m == nil {\n\t\treturn nil\n\t}\n\tif mv := (Export{}).protoMessageV2Of(m); mv != nil {\n\t\treturn mv.ProtoReflect()\n\t}\n\treturn legacyWrapMessage(reflect.ValueOf(m))\n}\n\n// MessageDescriptorOf returns the protoreflect.MessageDescriptor for m.\n// It returns nil if m is nil.\nfunc (Export) MessageDescriptorOf(m message) protoreflect.MessageDescriptor {\n\tif m == nil {\n\t\treturn nil\n\t}\n\tif mv := (Export{}).protoMessageV2Of(m); mv != nil {\n\t\treturn mv.ProtoReflect().Descriptor()\n\t}\n\treturn LegacyLoadMessageDesc(reflect.TypeOf(m))\n}\n\n// MessageTypeOf returns the protoreflect.MessageType for m.\n// It returns nil if m is nil.\nfunc (Export) MessageTypeOf(m message) protoreflect.MessageType {\n\tif m == nil {\n\t\treturn nil\n\t}\n\tif mv := (Export{}).protoMessageV2Of(m); mv != nil {\n\t\treturn mv.ProtoReflect().Type()\n\t}\n\treturn legacyLoadMessageType(reflect.TypeOf(m), \"\")\n}\n\n// MessageStringOf returns the message value as a string,\n// which is the message serialized in the protobuf text format.\nfunc (Export) MessageStringOf(m protoreflect.ProtoMessage) string {\n\treturn prototext.MarshalOptions{Multiline: false}.Format(m)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/checkinit.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"sync\"\n\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n)\n\nfunc (mi *MessageInfo) checkInitialized(in protoiface.CheckInitializedInput) (protoiface.CheckInitializedOutput, error) {\n\tvar p pointer\n\tif ms, ok := in.Message.(*messageState); ok {\n\t\tp = ms.pointer()\n\t} else {\n\t\tp = in.Message.(*messageReflectWrapper).pointer()\n\t}\n\treturn protoiface.CheckInitializedOutput{}, mi.checkInitializedPointer(p)\n}\n\nfunc (mi *MessageInfo) checkInitializedPointer(p pointer) error {\n\tmi.init()\n\tif !mi.needsInitCheck {\n\t\treturn nil\n\t}\n\tif p.IsNil() {\n\t\tfor _, f := range mi.orderedCoderFields {\n\t\t\tif f.isRequired {\n\t\t\t\treturn errors.RequiredNotSet(string(mi.Desc.Fields().ByNumber(f.num).FullName()))\n\t\t\t}\n\t\t}\n\t\treturn nil\n\t}\n\tif mi.extensionOffset.IsValid() {\n\t\te := p.Apply(mi.extensionOffset).Extensions()\n\t\tif err := mi.isInitExtensions(e); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tfor _, f := range mi.orderedCoderFields {\n\t\tif !f.isRequired && f.funcs.isInit == nil {\n\t\t\tcontinue\n\t\t}\n\t\tfptr := p.Apply(f.offset)\n\t\tif f.isPointer && fptr.Elem().IsNil() {\n\t\t\tif f.isRequired {\n\t\t\t\treturn errors.RequiredNotSet(string(mi.Desc.Fields().ByNumber(f.num).FullName()))\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif f.funcs.isInit == nil {\n\t\t\tcontinue\n\t\t}\n\t\tif err := f.funcs.isInit(fptr, f); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (mi *MessageInfo) isInitExtensions(ext *map[int32]ExtensionField) error {\n\tif ext == nil {\n\t\treturn nil\n\t}\n\tfor _, x := range *ext {\n\t\tei := getExtensionFieldInfo(x.Type())\n\t\tif ei.funcs.isInit == nil || x.isUnexpandedLazy() {\n\t\t\tcontinue\n\t\t}\n\t\tv := x.Value()\n\t\tif !v.IsValid() {\n\t\t\tcontinue\n\t\t}\n\t\tif err := ei.funcs.isInit(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nvar (\n\tneedsInitCheckMu  sync.Mutex\n\tneedsInitCheckMap sync.Map\n)\n\n// needsInitCheck reports whether a message needs to be checked for partial initialization.\n//\n// It returns true if the message transitively includes any required or extension fields.\nfunc needsInitCheck(md protoreflect.MessageDescriptor) bool {\n\tif v, ok := needsInitCheckMap.Load(md); ok {\n\t\tif has, ok := v.(bool); ok {\n\t\t\treturn has\n\t\t}\n\t}\n\tneedsInitCheckMu.Lock()\n\tdefer needsInitCheckMu.Unlock()\n\treturn needsInitCheckLocked(md)\n}\n\nfunc needsInitCheckLocked(md protoreflect.MessageDescriptor) (has bool) {\n\tif v, ok := needsInitCheckMap.Load(md); ok {\n\t\t// If has is true, we've previously determined that this message\n\t\t// needs init checks.\n\t\t//\n\t\t// If has is false, we've previously determined that it can never\n\t\t// be uninitialized.\n\t\t//\n\t\t// If has is not a bool, we've just encountered a cycle in the\n\t\t// message graph. In this case, it is safe to return false: If\n\t\t// the message does have required fields, we'll detect them later\n\t\t// in the graph traversal.\n\t\thas, ok := v.(bool)\n\t\treturn ok && has\n\t}\n\tneedsInitCheckMap.Store(md, struct{}{}) // avoid cycles while descending into this message\n\tdefer func() {\n\t\tneedsInitCheckMap.Store(md, has)\n\t}()\n\tif md.RequiredNumbers().Len() > 0 {\n\t\treturn true\n\t}\n\tif md.ExtensionRanges().Len() > 0 {\n\t\treturn true\n\t}\n\tfor i := 0; i < md.Fields().Len(); i++ {\n\t\tfd := md.Fields().Get(i)\n\t\t// Map keys are never messages, so just consider the map value.\n\t\tif fd.IsMap() {\n\t\t\tfd = fd.MapValue()\n\t\t}\n\t\tfmd := fd.Message()\n\t\tif fmd != nil && needsInitCheckLocked(fmd) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/codec_extension.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"sync\"\n\t\"sync/atomic\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\ntype extensionFieldInfo struct {\n\twiretag             uint64\n\ttagsize             int\n\tunmarshalNeedsValue bool\n\tfuncs               valueCoderFuncs\n\tvalidation          validationInfo\n}\n\nfunc getExtensionFieldInfo(xt protoreflect.ExtensionType) *extensionFieldInfo {\n\tif xi, ok := xt.(*ExtensionInfo); ok {\n\t\txi.lazyInit()\n\t\treturn xi.info\n\t}\n\t// Ideally we'd cache the resulting *extensionFieldInfo so we don't have to\n\t// recompute this metadata repeatedly. But without support for something like\n\t// weak references, such a cache would pin temporary values (like dynamic\n\t// extension types, constructed for the duration of a user request) to the\n\t// heap forever, causing memory usage of the cache to grow unbounded.\n\t// See discussion in https://github.com/golang/protobuf/issues/1521.\n\treturn makeExtensionFieldInfo(xt.TypeDescriptor())\n}\n\nfunc makeExtensionFieldInfo(xd protoreflect.ExtensionDescriptor) *extensionFieldInfo {\n\tvar wiretag uint64\n\tif !xd.IsPacked() {\n\t\twiretag = protowire.EncodeTag(xd.Number(), wireTypes[xd.Kind()])\n\t} else {\n\t\twiretag = protowire.EncodeTag(xd.Number(), protowire.BytesType)\n\t}\n\te := &extensionFieldInfo{\n\t\twiretag: wiretag,\n\t\ttagsize: protowire.SizeVarint(wiretag),\n\t\tfuncs:   encoderFuncsForValue(xd),\n\t}\n\t// Does the unmarshal function need a value passed to it?\n\t// This is true for composite types, where we pass in a message, list, or map to fill in,\n\t// and for enums, where we pass in a prototype value to specify the concrete enum type.\n\tswitch xd.Kind() {\n\tcase protoreflect.MessageKind, protoreflect.GroupKind, protoreflect.EnumKind:\n\t\te.unmarshalNeedsValue = true\n\tdefault:\n\t\tif xd.Cardinality() == protoreflect.Repeated {\n\t\t\te.unmarshalNeedsValue = true\n\t\t}\n\t}\n\treturn e\n}\n\ntype lazyExtensionValue struct {\n\tatomicOnce uint32 // atomically set if value is valid\n\tmu         sync.Mutex\n\txi         *extensionFieldInfo\n\tvalue      protoreflect.Value\n\tb          []byte\n}\n\ntype ExtensionField struct {\n\ttyp protoreflect.ExtensionType\n\n\t// value is either the value of GetValue,\n\t// or a *lazyExtensionValue that then returns the value of GetValue.\n\tvalue protoreflect.Value\n\tlazy  *lazyExtensionValue\n}\n\nfunc (f *ExtensionField) appendLazyBytes(xt protoreflect.ExtensionType, xi *extensionFieldInfo, num protowire.Number, wtyp protowire.Type, b []byte) {\n\tif f.lazy == nil {\n\t\tf.lazy = &lazyExtensionValue{xi: xi}\n\t}\n\tf.typ = xt\n\tf.lazy.xi = xi\n\tf.lazy.b = protowire.AppendTag(f.lazy.b, num, wtyp)\n\tf.lazy.b = append(f.lazy.b, b...)\n}\n\nfunc (f *ExtensionField) canLazy(xt protoreflect.ExtensionType) bool {\n\tif f.typ == nil {\n\t\treturn true\n\t}\n\tif f.typ == xt && f.lazy != nil && atomic.LoadUint32(&f.lazy.atomicOnce) == 0 {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// isUnexpandedLazy returns true if the ExensionField is lazy and not\n// yet expanded, which means it's present and already checked for\n// initialized required fields.\nfunc (f *ExtensionField) isUnexpandedLazy() bool {\n\treturn f.lazy != nil && atomic.LoadUint32(&f.lazy.atomicOnce) == 0\n}\n\n// lazyBuffer retrieves the buffer for a lazy extension if it's not yet expanded.\n//\n// The returned buffer has to be kept over whatever operation we're planning,\n// as re-retrieving it will fail after the message is lazily decoded.\nfunc (f *ExtensionField) lazyBuffer() []byte {\n\t// This function might be in the critical path, so check the atomic without\n\t// taking a look first, then only take the lock if needed.\n\tif !f.isUnexpandedLazy() {\n\t\treturn nil\n\t}\n\tf.lazy.mu.Lock()\n\tdefer f.lazy.mu.Unlock()\n\treturn f.lazy.b\n}\n\nfunc (f *ExtensionField) lazyInit() {\n\tf.lazy.mu.Lock()\n\tdefer f.lazy.mu.Unlock()\n\tif atomic.LoadUint32(&f.lazy.atomicOnce) == 1 {\n\t\treturn\n\t}\n\tif f.lazy.xi != nil {\n\t\tb := f.lazy.b\n\t\tval := f.typ.New()\n\t\tfor len(b) > 0 {\n\t\t\tvar tag uint64\n\t\t\tif b[0] < 0x80 {\n\t\t\t\ttag = uint64(b[0])\n\t\t\t\tb = b[1:]\n\t\t\t} else if len(b) >= 2 && b[1] < 128 {\n\t\t\t\ttag = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\t\t\tb = b[2:]\n\t\t\t} else {\n\t\t\t\tvar n int\n\t\t\t\ttag, n = protowire.ConsumeVarint(b)\n\t\t\t\tif n < 0 {\n\t\t\t\t\tpanic(errors.New(\"bad tag in lazy extension decoding\"))\n\t\t\t\t}\n\t\t\t\tb = b[n:]\n\t\t\t}\n\t\t\tnum := protowire.Number(tag >> 3)\n\t\t\twtyp := protowire.Type(tag & 7)\n\t\t\tvar out unmarshalOutput\n\t\t\tvar err error\n\t\t\tval, out, err = f.lazy.xi.funcs.unmarshal(b, val, num, wtyp, lazyUnmarshalOptions)\n\t\t\tif err != nil {\n\t\t\t\tpanic(errors.New(\"decode failure in lazy extension decoding: %v\", err))\n\t\t\t}\n\t\t\tb = b[out.n:]\n\t\t}\n\t\tf.lazy.value = val\n\t} else {\n\t\tpanic(\"No support for lazy fns for ExtensionField\")\n\t}\n\tf.lazy.xi = nil\n\tf.lazy.b = nil\n\tatomic.StoreUint32(&f.lazy.atomicOnce, 1)\n}\n\n// Set sets the type and value of the extension field.\n// This must not be called concurrently.\nfunc (f *ExtensionField) Set(t protoreflect.ExtensionType, v protoreflect.Value) {\n\tf.typ = t\n\tf.value = v\n\tf.lazy = nil\n}\n\n// Value returns the value of the extension field.\n// This may be called concurrently.\nfunc (f *ExtensionField) Value() protoreflect.Value {\n\tif f.lazy != nil {\n\t\tif atomic.LoadUint32(&f.lazy.atomicOnce) == 0 {\n\t\t\tf.lazyInit()\n\t\t}\n\t\treturn f.lazy.value\n\t}\n\treturn f.value\n}\n\n// Type returns the type of the extension field.\n// This may be called concurrently.\nfunc (f ExtensionField) Type() protoreflect.ExtensionType {\n\treturn f.typ\n}\n\n// IsSet returns whether the extension field is set.\n// This may be called concurrently.\nfunc (f ExtensionField) IsSet() bool {\n\treturn f.typ != nil\n}\n\n// IsLazy reports whether a field is lazily encoded.\n// It is exported for testing.\nfunc IsLazy(m protoreflect.Message, fd protoreflect.FieldDescriptor) bool {\n\tvar mi *MessageInfo\n\tvar p pointer\n\tswitch m := m.(type) {\n\tcase *messageState:\n\t\tmi = m.messageInfo()\n\t\tp = m.pointer()\n\tcase *messageReflectWrapper:\n\t\tmi = m.messageInfo()\n\t\tp = m.pointer()\n\tdefault:\n\t\treturn false\n\t}\n\txd, ok := fd.(protoreflect.ExtensionTypeDescriptor)\n\tif !ok {\n\t\treturn false\n\t}\n\txt := xd.Type()\n\text := mi.extensionMap(p)\n\tif ext == nil {\n\t\treturn false\n\t}\n\tf, ok := (*ext)[int32(fd.Number())]\n\tif !ok {\n\t\treturn false\n\t}\n\treturn f.typ == xt && f.lazy != nil && atomic.LoadUint32(&f.lazy.atomicOnce) == 0\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/codec_field.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"sync\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/proto\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/reflect/protoregistry\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n)\n\ntype errInvalidUTF8 struct{}\n\nfunc (errInvalidUTF8) Error() string     { return \"string field contains invalid UTF-8\" }\nfunc (errInvalidUTF8) InvalidUTF8() bool { return true }\nfunc (errInvalidUTF8) Unwrap() error     { return errors.Error }\n\n// initOneofFieldCoders initializes the fast-path functions for the fields in a oneof.\n//\n// For size, marshal, and isInit operations, functions are set only on the first field\n// in the oneof. The functions are called when the oneof is non-nil, and will dispatch\n// to the appropriate field-specific function as necessary.\n//\n// The unmarshal function is set on each field individually as usual.\nfunc (mi *MessageInfo) initOneofFieldCoders(od protoreflect.OneofDescriptor, si structInfo) {\n\tfs := si.oneofsByName[od.Name()]\n\tft := fs.Type\n\toneofFields := make(map[reflect.Type]*coderFieldInfo)\n\tneedIsInit := false\n\tfields := od.Fields()\n\tfor i, lim := 0, fields.Len(); i < lim; i++ {\n\t\tfd := od.Fields().Get(i)\n\t\tnum := fd.Number()\n\t\t// Make a copy of the original coderFieldInfo for use in unmarshaling.\n\t\t//\n\t\t// oneofFields[oneofType].funcs.marshal is the field-specific marshal function.\n\t\t//\n\t\t// mi.coderFields[num].marshal is set on only the first field in the oneof,\n\t\t// and dispatches to the field-specific marshaler in oneofFields.\n\t\tcf := *mi.coderFields[num]\n\t\tot := si.oneofWrappersByNumber[num]\n\t\tcf.ft = ot.Field(0).Type\n\t\tcf.mi, cf.funcs = fieldCoder(fd, cf.ft)\n\t\toneofFields[ot] = &cf\n\t\tif cf.funcs.isInit != nil {\n\t\t\tneedIsInit = true\n\t\t}\n\t\tmi.coderFields[num].funcs.unmarshal = func(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (unmarshalOutput, error) {\n\t\t\tvar vw reflect.Value         // pointer to wrapper type\n\t\t\tvi := p.AsValueOf(ft).Elem() // oneof field value of interface kind\n\t\t\tif !vi.IsNil() && !vi.Elem().IsNil() && vi.Elem().Elem().Type() == ot {\n\t\t\t\tvw = vi.Elem()\n\t\t\t} else {\n\t\t\t\tvw = reflect.New(ot)\n\t\t\t}\n\t\t\tout, err := cf.funcs.unmarshal(b, pointerOfValue(vw).Apply(zeroOffset), wtyp, &cf, opts)\n\t\t\tif err != nil {\n\t\t\t\treturn out, err\n\t\t\t}\n\t\t\tif cf.funcs.isInit == nil {\n\t\t\t\tout.initialized = true\n\t\t\t}\n\t\t\tvi.Set(vw)\n\t\t\treturn out, nil\n\t\t}\n\t}\n\tgetInfo := func(p pointer) (pointer, *coderFieldInfo) {\n\t\tv := p.AsValueOf(ft).Elem()\n\t\tif v.IsNil() {\n\t\t\treturn pointer{}, nil\n\t\t}\n\t\tv = v.Elem() // interface -> *struct\n\t\tif v.IsNil() {\n\t\t\treturn pointer{}, nil\n\t\t}\n\t\treturn pointerOfValue(v).Apply(zeroOffset), oneofFields[v.Elem().Type()]\n\t}\n\tfirst := mi.coderFields[od.Fields().Get(0).Number()]\n\tfirst.funcs.size = func(p pointer, _ *coderFieldInfo, opts marshalOptions) int {\n\t\tp, info := getInfo(p)\n\t\tif info == nil || info.funcs.size == nil {\n\t\t\treturn 0\n\t\t}\n\t\treturn info.funcs.size(p, info, opts)\n\t}\n\tfirst.funcs.marshal = func(b []byte, p pointer, _ *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\t\tp, info := getInfo(p)\n\t\tif info == nil || info.funcs.marshal == nil {\n\t\t\treturn b, nil\n\t\t}\n\t\treturn info.funcs.marshal(b, p, info, opts)\n\t}\n\tfirst.funcs.merge = func(dst, src pointer, _ *coderFieldInfo, opts mergeOptions) {\n\t\tsrcp, srcinfo := getInfo(src)\n\t\tif srcinfo == nil || srcinfo.funcs.merge == nil {\n\t\t\treturn\n\t\t}\n\t\tdstp, dstinfo := getInfo(dst)\n\t\tif dstinfo != srcinfo {\n\t\t\tdst.AsValueOf(ft).Elem().Set(reflect.New(src.AsValueOf(ft).Elem().Elem().Elem().Type()))\n\t\t\tdstp = pointerOfValue(dst.AsValueOf(ft).Elem().Elem()).Apply(zeroOffset)\n\t\t}\n\t\tsrcinfo.funcs.merge(dstp, srcp, srcinfo, opts)\n\t}\n\tif needIsInit {\n\t\tfirst.funcs.isInit = func(p pointer, _ *coderFieldInfo) error {\n\t\t\tp, info := getInfo(p)\n\t\t\tif info == nil || info.funcs.isInit == nil {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\treturn info.funcs.isInit(p, info)\n\t\t}\n\t}\n}\n\nfunc makeWeakMessageFieldCoder(fd protoreflect.FieldDescriptor) pointerCoderFuncs {\n\tvar once sync.Once\n\tvar messageType protoreflect.MessageType\n\tlazyInit := func() {\n\t\tonce.Do(func() {\n\t\t\tmessageName := fd.Message().FullName()\n\t\t\tmessageType, _ = protoregistry.GlobalTypes.FindMessageByName(messageName)\n\t\t})\n\t}\n\n\treturn pointerCoderFuncs{\n\t\tsize: func(p pointer, f *coderFieldInfo, opts marshalOptions) int {\n\t\t\tm, ok := p.WeakFields().get(f.num)\n\t\t\tif !ok {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\tlazyInit()\n\t\t\tif messageType == nil {\n\t\t\t\tpanic(fmt.Sprintf(\"weak message %v is not linked in\", fd.Message().FullName()))\n\t\t\t}\n\t\t\treturn sizeMessage(m, f.tagsize, opts)\n\t\t},\n\t\tmarshal: func(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\t\t\tm, ok := p.WeakFields().get(f.num)\n\t\t\tif !ok {\n\t\t\t\treturn b, nil\n\t\t\t}\n\t\t\tlazyInit()\n\t\t\tif messageType == nil {\n\t\t\t\tpanic(fmt.Sprintf(\"weak message %v is not linked in\", fd.Message().FullName()))\n\t\t\t}\n\t\t\treturn appendMessage(b, m, f.wiretag, opts)\n\t\t},\n\t\tunmarshal: func(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (unmarshalOutput, error) {\n\t\t\tfs := p.WeakFields()\n\t\t\tm, ok := fs.get(f.num)\n\t\t\tif !ok {\n\t\t\t\tlazyInit()\n\t\t\t\tif messageType == nil {\n\t\t\t\t\treturn unmarshalOutput{}, errUnknown\n\t\t\t\t}\n\t\t\t\tm = messageType.New().Interface()\n\t\t\t\tfs.set(f.num, m)\n\t\t\t}\n\t\t\treturn consumeMessage(b, m, wtyp, opts)\n\t\t},\n\t\tisInit: func(p pointer, f *coderFieldInfo) error {\n\t\t\tm, ok := p.WeakFields().get(f.num)\n\t\t\tif !ok {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\treturn proto.CheckInitialized(m)\n\t\t},\n\t\tmerge: func(dst, src pointer, f *coderFieldInfo, opts mergeOptions) {\n\t\t\tsm, ok := src.WeakFields().get(f.num)\n\t\t\tif !ok {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tdm, ok := dst.WeakFields().get(f.num)\n\t\t\tif !ok {\n\t\t\t\tlazyInit()\n\t\t\t\tif messageType == nil {\n\t\t\t\t\tpanic(fmt.Sprintf(\"weak message %v is not linked in\", fd.Message().FullName()))\n\t\t\t\t}\n\t\t\t\tdm = messageType.New().Interface()\n\t\t\t\tdst.WeakFields().set(f.num, dm)\n\t\t\t}\n\t\t\topts.Merge(dm, sm)\n\t\t},\n\t}\n}\n\nfunc makeMessageFieldCoder(fd protoreflect.FieldDescriptor, ft reflect.Type) pointerCoderFuncs {\n\tif mi := getMessageInfo(ft); mi != nil {\n\t\tfuncs := pointerCoderFuncs{\n\t\t\tsize:      sizeMessageInfo,\n\t\t\tmarshal:   appendMessageInfo,\n\t\t\tunmarshal: consumeMessageInfo,\n\t\t\tmerge:     mergeMessage,\n\t\t}\n\t\tif needsInitCheck(mi.Desc) {\n\t\t\tfuncs.isInit = isInitMessageInfo\n\t\t}\n\t\treturn funcs\n\t} else {\n\t\treturn pointerCoderFuncs{\n\t\t\tsize: func(p pointer, f *coderFieldInfo, opts marshalOptions) int {\n\t\t\t\tm := asMessage(p.AsValueOf(ft).Elem())\n\t\t\t\treturn sizeMessage(m, f.tagsize, opts)\n\t\t\t},\n\t\t\tmarshal: func(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\t\t\t\tm := asMessage(p.AsValueOf(ft).Elem())\n\t\t\t\treturn appendMessage(b, m, f.wiretag, opts)\n\t\t\t},\n\t\t\tunmarshal: func(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (unmarshalOutput, error) {\n\t\t\t\tmp := p.AsValueOf(ft).Elem()\n\t\t\t\tif mp.IsNil() {\n\t\t\t\t\tmp.Set(reflect.New(ft.Elem()))\n\t\t\t\t}\n\t\t\t\treturn consumeMessage(b, asMessage(mp), wtyp, opts)\n\t\t\t},\n\t\t\tisInit: func(p pointer, f *coderFieldInfo) error {\n\t\t\t\tm := asMessage(p.AsValueOf(ft).Elem())\n\t\t\t\treturn proto.CheckInitialized(m)\n\t\t\t},\n\t\t\tmerge: mergeMessage,\n\t\t}\n\t}\n}\n\nfunc sizeMessageInfo(p pointer, f *coderFieldInfo, opts marshalOptions) int {\n\treturn protowire.SizeBytes(f.mi.sizePointer(p.Elem(), opts)) + f.tagsize\n}\n\nfunc appendMessageInfo(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tcalculatedSize := f.mi.sizePointer(p.Elem(), opts)\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, uint64(calculatedSize))\n\tbefore := len(b)\n\tb, err := f.mi.marshalAppendPointer(b, p.Elem(), opts)\n\tif measuredSize := len(b) - before; calculatedSize != measuredSize && err == nil {\n\t\treturn nil, errors.MismatchedSizeCalculation(calculatedSize, measuredSize)\n\t}\n\treturn b, err\n}\n\nfunc consumeMessageInfo(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.BytesType {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tif p.Elem().IsNil() {\n\t\tp.SetPointer(pointerOfValue(reflect.New(f.mi.GoReflectType.Elem())))\n\t}\n\to, err := f.mi.unmarshalPointer(v, p.Elem(), 0, opts)\n\tif err != nil {\n\t\treturn out, err\n\t}\n\tout.n = n\n\tout.initialized = o.initialized\n\treturn out, nil\n}\n\nfunc isInitMessageInfo(p pointer, f *coderFieldInfo) error {\n\treturn f.mi.checkInitializedPointer(p.Elem())\n}\n\nfunc sizeMessage(m proto.Message, tagsize int, opts marshalOptions) int {\n\treturn protowire.SizeBytes(opts.Options().Size(m)) + tagsize\n}\n\nfunc appendMessage(b []byte, m proto.Message, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tmopts := opts.Options()\n\tcalculatedSize := mopts.Size(m)\n\tb = protowire.AppendVarint(b, wiretag)\n\tb = protowire.AppendVarint(b, uint64(calculatedSize))\n\tbefore := len(b)\n\tb, err := mopts.MarshalAppend(b, m)\n\tif measuredSize := len(b) - before; calculatedSize != measuredSize && err == nil {\n\t\treturn nil, errors.MismatchedSizeCalculation(calculatedSize, measuredSize)\n\t}\n\treturn b, err\n}\n\nfunc consumeMessage(b []byte, m proto.Message, wtyp protowire.Type, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.BytesType {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\to, err := opts.Options().UnmarshalState(protoiface.UnmarshalInput{\n\t\tBuf:     v,\n\t\tMessage: m.ProtoReflect(),\n\t})\n\tif err != nil {\n\t\treturn out, err\n\t}\n\tout.n = n\n\tout.initialized = o.Flags&protoiface.UnmarshalInitialized != 0\n\treturn out, nil\n}\n\nfunc sizeMessageValue(v protoreflect.Value, tagsize int, opts marshalOptions) int {\n\tm := v.Message().Interface()\n\treturn sizeMessage(m, tagsize, opts)\n}\n\nfunc appendMessageValue(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tm := v.Message().Interface()\n\treturn appendMessage(b, m, wiretag, opts)\n}\n\nfunc consumeMessageValue(b []byte, v protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (protoreflect.Value, unmarshalOutput, error) {\n\tm := v.Message().Interface()\n\tout, err := consumeMessage(b, m, wtyp, opts)\n\treturn v, out, err\n}\n\nfunc isInitMessageValue(v protoreflect.Value) error {\n\tm := v.Message().Interface()\n\treturn proto.CheckInitialized(m)\n}\n\nvar coderMessageValue = valueCoderFuncs{\n\tsize:      sizeMessageValue,\n\tmarshal:   appendMessageValue,\n\tunmarshal: consumeMessageValue,\n\tisInit:    isInitMessageValue,\n\tmerge:     mergeMessageValue,\n}\n\nfunc sizeGroupValue(v protoreflect.Value, tagsize int, opts marshalOptions) int {\n\tm := v.Message().Interface()\n\treturn sizeGroup(m, tagsize, opts)\n}\n\nfunc appendGroupValue(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tm := v.Message().Interface()\n\treturn appendGroup(b, m, wiretag, opts)\n}\n\nfunc consumeGroupValue(b []byte, v protoreflect.Value, num protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (protoreflect.Value, unmarshalOutput, error) {\n\tm := v.Message().Interface()\n\tout, err := consumeGroup(b, m, num, wtyp, opts)\n\treturn v, out, err\n}\n\nvar coderGroupValue = valueCoderFuncs{\n\tsize:      sizeGroupValue,\n\tmarshal:   appendGroupValue,\n\tunmarshal: consumeGroupValue,\n\tisInit:    isInitMessageValue,\n\tmerge:     mergeMessageValue,\n}\n\nfunc makeGroupFieldCoder(fd protoreflect.FieldDescriptor, ft reflect.Type) pointerCoderFuncs {\n\tnum := fd.Number()\n\tif mi := getMessageInfo(ft); mi != nil {\n\t\tfuncs := pointerCoderFuncs{\n\t\t\tsize:      sizeGroupType,\n\t\t\tmarshal:   appendGroupType,\n\t\t\tunmarshal: consumeGroupType,\n\t\t\tmerge:     mergeMessage,\n\t\t}\n\t\tif needsInitCheck(mi.Desc) {\n\t\t\tfuncs.isInit = isInitMessageInfo\n\t\t}\n\t\treturn funcs\n\t} else {\n\t\treturn pointerCoderFuncs{\n\t\t\tsize: func(p pointer, f *coderFieldInfo, opts marshalOptions) int {\n\t\t\t\tm := asMessage(p.AsValueOf(ft).Elem())\n\t\t\t\treturn sizeGroup(m, f.tagsize, opts)\n\t\t\t},\n\t\t\tmarshal: func(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\t\t\t\tm := asMessage(p.AsValueOf(ft).Elem())\n\t\t\t\treturn appendGroup(b, m, f.wiretag, opts)\n\t\t\t},\n\t\t\tunmarshal: func(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (unmarshalOutput, error) {\n\t\t\t\tmp := p.AsValueOf(ft).Elem()\n\t\t\t\tif mp.IsNil() {\n\t\t\t\t\tmp.Set(reflect.New(ft.Elem()))\n\t\t\t\t}\n\t\t\t\treturn consumeGroup(b, asMessage(mp), num, wtyp, opts)\n\t\t\t},\n\t\t\tisInit: func(p pointer, f *coderFieldInfo) error {\n\t\t\t\tm := asMessage(p.AsValueOf(ft).Elem())\n\t\t\t\treturn proto.CheckInitialized(m)\n\t\t\t},\n\t\t\tmerge: mergeMessage,\n\t\t}\n\t}\n}\n\nfunc sizeGroupType(p pointer, f *coderFieldInfo, opts marshalOptions) int {\n\treturn 2*f.tagsize + f.mi.sizePointer(p.Elem(), opts)\n}\n\nfunc appendGroupType(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tb = protowire.AppendVarint(b, f.wiretag) // start group\n\tb, err := f.mi.marshalAppendPointer(b, p.Elem(), opts)\n\tb = protowire.AppendVarint(b, f.wiretag+1) // end group\n\treturn b, err\n}\n\nfunc consumeGroupType(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.StartGroupType {\n\t\treturn out, errUnknown\n\t}\n\tif p.Elem().IsNil() {\n\t\tp.SetPointer(pointerOfValue(reflect.New(f.mi.GoReflectType.Elem())))\n\t}\n\treturn f.mi.unmarshalPointer(b, p.Elem(), f.num, opts)\n}\n\nfunc sizeGroup(m proto.Message, tagsize int, opts marshalOptions) int {\n\treturn 2*tagsize + opts.Options().Size(m)\n}\n\nfunc appendGroup(b []byte, m proto.Message, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tb = protowire.AppendVarint(b, wiretag) // start group\n\tb, err := opts.Options().MarshalAppend(b, m)\n\tb = protowire.AppendVarint(b, wiretag+1) // end group\n\treturn b, err\n}\n\nfunc consumeGroup(b []byte, m proto.Message, num protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.StartGroupType {\n\t\treturn out, errUnknown\n\t}\n\tb, n := protowire.ConsumeGroup(num, b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\to, err := opts.Options().UnmarshalState(protoiface.UnmarshalInput{\n\t\tBuf:     b,\n\t\tMessage: m.ProtoReflect(),\n\t})\n\tif err != nil {\n\t\treturn out, err\n\t}\n\tout.n = n\n\tout.initialized = o.Flags&protoiface.UnmarshalInitialized != 0\n\treturn out, nil\n}\n\nfunc makeMessageSliceFieldCoder(fd protoreflect.FieldDescriptor, ft reflect.Type) pointerCoderFuncs {\n\tif mi := getMessageInfo(ft); mi != nil {\n\t\tfuncs := pointerCoderFuncs{\n\t\t\tsize:      sizeMessageSliceInfo,\n\t\t\tmarshal:   appendMessageSliceInfo,\n\t\t\tunmarshal: consumeMessageSliceInfo,\n\t\t\tmerge:     mergeMessageSlice,\n\t\t}\n\t\tif needsInitCheck(mi.Desc) {\n\t\t\tfuncs.isInit = isInitMessageSliceInfo\n\t\t}\n\t\treturn funcs\n\t}\n\treturn pointerCoderFuncs{\n\t\tsize: func(p pointer, f *coderFieldInfo, opts marshalOptions) int {\n\t\t\treturn sizeMessageSlice(p, ft, f.tagsize, opts)\n\t\t},\n\t\tmarshal: func(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\t\t\treturn appendMessageSlice(b, p, f.wiretag, ft, opts)\n\t\t},\n\t\tunmarshal: func(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (unmarshalOutput, error) {\n\t\t\treturn consumeMessageSlice(b, p, ft, wtyp, opts)\n\t\t},\n\t\tisInit: func(p pointer, f *coderFieldInfo) error {\n\t\t\treturn isInitMessageSlice(p, ft)\n\t\t},\n\t\tmerge: mergeMessageSlice,\n\t}\n}\n\nfunc sizeMessageSliceInfo(p pointer, f *coderFieldInfo, opts marshalOptions) int {\n\ts := p.PointerSlice()\n\tn := 0\n\tfor _, v := range s {\n\t\tn += protowire.SizeBytes(f.mi.sizePointer(v, opts)) + f.tagsize\n\t}\n\treturn n\n}\n\nfunc appendMessageSliceInfo(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := p.PointerSlice()\n\tvar err error\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, f.wiretag)\n\t\tsiz := f.mi.sizePointer(v, opts)\n\t\tb = protowire.AppendVarint(b, uint64(siz))\n\t\tbefore := len(b)\n\t\tb, err = f.mi.marshalAppendPointer(b, v, opts)\n\t\tif err != nil {\n\t\t\treturn b, err\n\t\t}\n\t\tif measuredSize := len(b) - before; siz != measuredSize {\n\t\t\treturn nil, errors.MismatchedSizeCalculation(siz, measuredSize)\n\t\t}\n\t}\n\treturn b, nil\n}\n\nfunc consumeMessageSliceInfo(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.BytesType {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tm := reflect.New(f.mi.GoReflectType.Elem()).Interface()\n\tmp := pointerOfIface(m)\n\to, err := f.mi.unmarshalPointer(v, mp, 0, opts)\n\tif err != nil {\n\t\treturn out, err\n\t}\n\tp.AppendPointerSlice(mp)\n\tout.n = n\n\tout.initialized = o.initialized\n\treturn out, nil\n}\n\nfunc isInitMessageSliceInfo(p pointer, f *coderFieldInfo) error {\n\ts := p.PointerSlice()\n\tfor _, v := range s {\n\t\tif err := f.mi.checkInitializedPointer(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc sizeMessageSlice(p pointer, goType reflect.Type, tagsize int, opts marshalOptions) int {\n\tmopts := opts.Options()\n\ts := p.PointerSlice()\n\tn := 0\n\tfor _, v := range s {\n\t\tm := asMessage(v.AsValueOf(goType.Elem()))\n\t\tn += protowire.SizeBytes(mopts.Size(m)) + tagsize\n\t}\n\treturn n\n}\n\nfunc appendMessageSlice(b []byte, p pointer, wiretag uint64, goType reflect.Type, opts marshalOptions) ([]byte, error) {\n\tmopts := opts.Options()\n\ts := p.PointerSlice()\n\tvar err error\n\tfor _, v := range s {\n\t\tm := asMessage(v.AsValueOf(goType.Elem()))\n\t\tb = protowire.AppendVarint(b, wiretag)\n\t\tsiz := mopts.Size(m)\n\t\tb = protowire.AppendVarint(b, uint64(siz))\n\t\tbefore := len(b)\n\t\tb, err = mopts.MarshalAppend(b, m)\n\t\tif err != nil {\n\t\t\treturn b, err\n\t\t}\n\t\tif measuredSize := len(b) - before; siz != measuredSize {\n\t\t\treturn nil, errors.MismatchedSizeCalculation(siz, measuredSize)\n\t\t}\n\t}\n\treturn b, nil\n}\n\nfunc consumeMessageSlice(b []byte, p pointer, goType reflect.Type, wtyp protowire.Type, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.BytesType {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tmp := reflect.New(goType.Elem())\n\to, err := opts.Options().UnmarshalState(protoiface.UnmarshalInput{\n\t\tBuf:     v,\n\t\tMessage: asMessage(mp).ProtoReflect(),\n\t})\n\tif err != nil {\n\t\treturn out, err\n\t}\n\tp.AppendPointerSlice(pointerOfValue(mp))\n\tout.n = n\n\tout.initialized = o.Flags&protoiface.UnmarshalInitialized != 0\n\treturn out, nil\n}\n\nfunc isInitMessageSlice(p pointer, goType reflect.Type) error {\n\ts := p.PointerSlice()\n\tfor _, v := range s {\n\t\tm := asMessage(v.AsValueOf(goType.Elem()))\n\t\tif err := proto.CheckInitialized(m); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// Slices of messages\n\nfunc sizeMessageSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) int {\n\tmopts := opts.Options()\n\tlist := listv.List()\n\tn := 0\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tm := list.Get(i).Message().Interface()\n\t\tn += protowire.SizeBytes(mopts.Size(m)) + tagsize\n\t}\n\treturn n\n}\n\nfunc appendMessageSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tmopts := opts.Options()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tm := list.Get(i).Message().Interface()\n\t\tb = protowire.AppendVarint(b, wiretag)\n\t\tsiz := mopts.Size(m)\n\t\tb = protowire.AppendVarint(b, uint64(siz))\n\t\tbefore := len(b)\n\t\tvar err error\n\t\tb, err = mopts.MarshalAppend(b, m)\n\t\tif err != nil {\n\t\t\treturn b, err\n\t\t}\n\t\tif measuredSize := len(b) - before; siz != measuredSize {\n\t\t\treturn nil, errors.MismatchedSizeCalculation(siz, measuredSize)\n\t\t}\n\t}\n\treturn b, nil\n}\n\nfunc consumeMessageSliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tlist := listv.List()\n\tif wtyp != protowire.BytesType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tm := list.NewElement()\n\to, err := opts.Options().UnmarshalState(protoiface.UnmarshalInput{\n\t\tBuf:     v,\n\t\tMessage: m.Message(),\n\t})\n\tif err != nil {\n\t\treturn protoreflect.Value{}, out, err\n\t}\n\tlist.Append(m)\n\tout.n = n\n\tout.initialized = o.Flags&protoiface.UnmarshalInitialized != 0\n\treturn listv, out, nil\n}\n\nfunc isInitMessageSliceValue(listv protoreflect.Value) error {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tm := list.Get(i).Message().Interface()\n\t\tif err := proto.CheckInitialized(m); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nvar coderMessageSliceValue = valueCoderFuncs{\n\tsize:      sizeMessageSliceValue,\n\tmarshal:   appendMessageSliceValue,\n\tunmarshal: consumeMessageSliceValue,\n\tisInit:    isInitMessageSliceValue,\n\tmerge:     mergeMessageListValue,\n}\n\nfunc sizeGroupSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) int {\n\tmopts := opts.Options()\n\tlist := listv.List()\n\tn := 0\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tm := list.Get(i).Message().Interface()\n\t\tn += 2*tagsize + mopts.Size(m)\n\t}\n\treturn n\n}\n\nfunc appendGroupSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tmopts := opts.Options()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tm := list.Get(i).Message().Interface()\n\t\tb = protowire.AppendVarint(b, wiretag) // start group\n\t\tvar err error\n\t\tb, err = mopts.MarshalAppend(b, m)\n\t\tif err != nil {\n\t\t\treturn b, err\n\t\t}\n\t\tb = protowire.AppendVarint(b, wiretag+1) // end group\n\t}\n\treturn b, nil\n}\n\nfunc consumeGroupSliceValue(b []byte, listv protoreflect.Value, num protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tlist := listv.List()\n\tif wtyp != protowire.StartGroupType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tb, n := protowire.ConsumeGroup(num, b)\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tm := list.NewElement()\n\to, err := opts.Options().UnmarshalState(protoiface.UnmarshalInput{\n\t\tBuf:     b,\n\t\tMessage: m.Message(),\n\t})\n\tif err != nil {\n\t\treturn protoreflect.Value{}, out, err\n\t}\n\tlist.Append(m)\n\tout.n = n\n\tout.initialized = o.Flags&protoiface.UnmarshalInitialized != 0\n\treturn listv, out, nil\n}\n\nvar coderGroupSliceValue = valueCoderFuncs{\n\tsize:      sizeGroupSliceValue,\n\tmarshal:   appendGroupSliceValue,\n\tunmarshal: consumeGroupSliceValue,\n\tisInit:    isInitMessageSliceValue,\n\tmerge:     mergeMessageListValue,\n}\n\nfunc makeGroupSliceFieldCoder(fd protoreflect.FieldDescriptor, ft reflect.Type) pointerCoderFuncs {\n\tnum := fd.Number()\n\tif mi := getMessageInfo(ft); mi != nil {\n\t\tfuncs := pointerCoderFuncs{\n\t\t\tsize:      sizeGroupSliceInfo,\n\t\t\tmarshal:   appendGroupSliceInfo,\n\t\t\tunmarshal: consumeGroupSliceInfo,\n\t\t\tmerge:     mergeMessageSlice,\n\t\t}\n\t\tif needsInitCheck(mi.Desc) {\n\t\t\tfuncs.isInit = isInitMessageSliceInfo\n\t\t}\n\t\treturn funcs\n\t}\n\treturn pointerCoderFuncs{\n\t\tsize: func(p pointer, f *coderFieldInfo, opts marshalOptions) int {\n\t\t\treturn sizeGroupSlice(p, ft, f.tagsize, opts)\n\t\t},\n\t\tmarshal: func(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\t\t\treturn appendGroupSlice(b, p, f.wiretag, ft, opts)\n\t\t},\n\t\tunmarshal: func(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (unmarshalOutput, error) {\n\t\t\treturn consumeGroupSlice(b, p, num, wtyp, ft, opts)\n\t\t},\n\t\tisInit: func(p pointer, f *coderFieldInfo) error {\n\t\t\treturn isInitMessageSlice(p, ft)\n\t\t},\n\t\tmerge: mergeMessageSlice,\n\t}\n}\n\nfunc sizeGroupSlice(p pointer, messageType reflect.Type, tagsize int, opts marshalOptions) int {\n\tmopts := opts.Options()\n\ts := p.PointerSlice()\n\tn := 0\n\tfor _, v := range s {\n\t\tm := asMessage(v.AsValueOf(messageType.Elem()))\n\t\tn += 2*tagsize + mopts.Size(m)\n\t}\n\treturn n\n}\n\nfunc appendGroupSlice(b []byte, p pointer, wiretag uint64, messageType reflect.Type, opts marshalOptions) ([]byte, error) {\n\ts := p.PointerSlice()\n\tvar err error\n\tfor _, v := range s {\n\t\tm := asMessage(v.AsValueOf(messageType.Elem()))\n\t\tb = protowire.AppendVarint(b, wiretag) // start group\n\t\tb, err = opts.Options().MarshalAppend(b, m)\n\t\tif err != nil {\n\t\t\treturn b, err\n\t\t}\n\t\tb = protowire.AppendVarint(b, wiretag+1) // end group\n\t}\n\treturn b, nil\n}\n\nfunc consumeGroupSlice(b []byte, p pointer, num protowire.Number, wtyp protowire.Type, goType reflect.Type, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.StartGroupType {\n\t\treturn out, errUnknown\n\t}\n\tb, n := protowire.ConsumeGroup(num, b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tmp := reflect.New(goType.Elem())\n\to, err := opts.Options().UnmarshalState(protoiface.UnmarshalInput{\n\t\tBuf:     b,\n\t\tMessage: asMessage(mp).ProtoReflect(),\n\t})\n\tif err != nil {\n\t\treturn out, err\n\t}\n\tp.AppendPointerSlice(pointerOfValue(mp))\n\tout.n = n\n\tout.initialized = o.Flags&protoiface.UnmarshalInitialized != 0\n\treturn out, nil\n}\n\nfunc sizeGroupSliceInfo(p pointer, f *coderFieldInfo, opts marshalOptions) int {\n\ts := p.PointerSlice()\n\tn := 0\n\tfor _, v := range s {\n\t\tn += 2*f.tagsize + f.mi.sizePointer(v, opts)\n\t}\n\treturn n\n}\n\nfunc appendGroupSliceInfo(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := p.PointerSlice()\n\tvar err error\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, f.wiretag) // start group\n\t\tb, err = f.mi.marshalAppendPointer(b, v, opts)\n\t\tif err != nil {\n\t\t\treturn b, err\n\t\t}\n\t\tb = protowire.AppendVarint(b, f.wiretag+1) // end group\n\t}\n\treturn b, nil\n}\n\nfunc consumeGroupSliceInfo(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (unmarshalOutput, error) {\n\tif wtyp != protowire.StartGroupType {\n\t\treturn unmarshalOutput{}, errUnknown\n\t}\n\tm := reflect.New(f.mi.GoReflectType.Elem()).Interface()\n\tmp := pointerOfIface(m)\n\tout, err := f.mi.unmarshalPointer(b, mp, f.num, opts)\n\tif err != nil {\n\t\treturn out, err\n\t}\n\tp.AppendPointerSlice(mp)\n\treturn out, nil\n}\n\nfunc asMessage(v reflect.Value) protoreflect.ProtoMessage {\n\tif m, ok := v.Interface().(protoreflect.ProtoMessage); ok {\n\t\treturn m\n\t}\n\treturn legacyWrapMessage(v).Interface()\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/codec_gen.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by generate-types. DO NOT EDIT.\n\npackage impl\n\nimport (\n\t\"math\"\n\t\"unicode/utf8\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\n// sizeBool returns the size of wire encoding a bool pointer as a Bool.\nfunc sizeBool(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Bool()\n\treturn f.tagsize + protowire.SizeVarint(protowire.EncodeBool(v))\n}\n\n// appendBool wire encodes a bool pointer as a Bool.\nfunc appendBool(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Bool()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, protowire.EncodeBool(v))\n\treturn b, nil\n}\n\n// consumeBool wire decodes a bool pointer as a Bool.\nfunc consumeBool(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*p.Bool() = protowire.DecodeBool(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderBool = pointerCoderFuncs{\n\tsize:      sizeBool,\n\tmarshal:   appendBool,\n\tunmarshal: consumeBool,\n\tmerge:     mergeBool,\n}\n\n// sizeBoolNoZero returns the size of wire encoding a bool pointer as a Bool.\n// The zero value is not encoded.\nfunc sizeBoolNoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Bool()\n\tif v == false {\n\t\treturn 0\n\t}\n\treturn f.tagsize + protowire.SizeVarint(protowire.EncodeBool(v))\n}\n\n// appendBoolNoZero wire encodes a bool pointer as a Bool.\n// The zero value is not encoded.\nfunc appendBoolNoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Bool()\n\tif v == false {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, protowire.EncodeBool(v))\n\treturn b, nil\n}\n\nvar coderBoolNoZero = pointerCoderFuncs{\n\tsize:      sizeBoolNoZero,\n\tmarshal:   appendBoolNoZero,\n\tunmarshal: consumeBool,\n\tmerge:     mergeBoolNoZero,\n}\n\n// sizeBoolPtr returns the size of wire encoding a *bool pointer as a Bool.\n// It panics if the pointer is nil.\nfunc sizeBoolPtr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := **p.BoolPtr()\n\treturn f.tagsize + protowire.SizeVarint(protowire.EncodeBool(v))\n}\n\n// appendBoolPtr wire encodes a *bool pointer as a Bool.\n// It panics if the pointer is nil.\nfunc appendBoolPtr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := **p.BoolPtr()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, protowire.EncodeBool(v))\n\treturn b, nil\n}\n\n// consumeBoolPtr wire decodes a *bool pointer as a Bool.\nfunc consumeBoolPtr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tvp := p.BoolPtr()\n\tif *vp == nil {\n\t\t*vp = new(bool)\n\t}\n\t**vp = protowire.DecodeBool(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderBoolPtr = pointerCoderFuncs{\n\tsize:      sizeBoolPtr,\n\tmarshal:   appendBoolPtr,\n\tunmarshal: consumeBoolPtr,\n\tmerge:     mergeBoolPtr,\n}\n\n// sizeBoolSlice returns the size of wire encoding a []bool pointer as a repeated Bool.\nfunc sizeBoolSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.BoolSlice()\n\tfor _, v := range s {\n\t\tsize += f.tagsize + protowire.SizeVarint(protowire.EncodeBool(v))\n\t}\n\treturn size\n}\n\n// appendBoolSlice encodes a []bool pointer as a repeated Bool.\nfunc appendBoolSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.BoolSlice()\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, f.wiretag)\n\t\tb = protowire.AppendVarint(b, protowire.EncodeBool(v))\n\t}\n\treturn b, nil\n}\n\n// consumeBoolSlice wire decodes a []bool pointer as a repeated Bool.\nfunc consumeBoolSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tsp := p.BoolSlice()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn out, errDecode\n\t\t}\n\t\tcount := 0\n\t\tfor _, v := range b {\n\t\t\tif v < 0x80 {\n\t\t\t\tcount++\n\t\t\t}\n\t\t}\n\t\tif count > 0 {\n\t\t\tp.growBoolSlice(count)\n\t\t}\n\t\ts := *sp\n\t\tfor len(b) > 0 {\n\t\t\tvar v uint64\n\t\t\tvar n int\n\t\t\tif len(b) >= 1 && b[0] < 0x80 {\n\t\t\t\tv = uint64(b[0])\n\t\t\t\tn = 1\n\t\t\t} else if len(b) >= 2 && b[1] < 128 {\n\t\t\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\t\t\tn = 2\n\t\t\t} else {\n\t\t\t\tv, n = protowire.ConsumeVarint(b)\n\t\t\t}\n\t\t\tif n < 0 {\n\t\t\t\treturn out, errDecode\n\t\t\t}\n\t\t\ts = append(s, protowire.DecodeBool(v))\n\t\t\tb = b[n:]\n\t\t}\n\t\t*sp = s\n\t\tout.n = n\n\t\treturn out, nil\n\t}\n\tif wtyp != protowire.VarintType {\n\t\treturn out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*sp = append(*sp, protowire.DecodeBool(v))\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderBoolSlice = pointerCoderFuncs{\n\tsize:      sizeBoolSlice,\n\tmarshal:   appendBoolSlice,\n\tunmarshal: consumeBoolSlice,\n\tmerge:     mergeBoolSlice,\n}\n\n// sizeBoolPackedSlice returns the size of wire encoding a []bool pointer as a packed repeated Bool.\nfunc sizeBoolPackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.BoolSlice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor _, v := range s {\n\t\tn += protowire.SizeVarint(protowire.EncodeBool(v))\n\t}\n\treturn f.tagsize + protowire.SizeBytes(n)\n}\n\n// appendBoolPackedSlice encodes a []bool pointer as a packed repeated Bool.\nfunc appendBoolPackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.BoolSlice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tn := 0\n\tfor _, v := range s {\n\t\tn += protowire.SizeVarint(protowire.EncodeBool(v))\n\t}\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, protowire.EncodeBool(v))\n\t}\n\treturn b, nil\n}\n\nvar coderBoolPackedSlice = pointerCoderFuncs{\n\tsize:      sizeBoolPackedSlice,\n\tmarshal:   appendBoolPackedSlice,\n\tunmarshal: consumeBoolSlice,\n\tmerge:     mergeBoolSlice,\n}\n\n// sizeBoolValue returns the size of wire encoding a bool value as a Bool.\nfunc sizeBoolValue(v protoreflect.Value, tagsize int, opts marshalOptions) int {\n\treturn tagsize + protowire.SizeVarint(protowire.EncodeBool(v.Bool()))\n}\n\n// appendBoolValue encodes a bool value as a Bool.\nfunc appendBoolValue(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tb = protowire.AppendVarint(b, wiretag)\n\tb = protowire.AppendVarint(b, protowire.EncodeBool(v.Bool()))\n\treturn b, nil\n}\n\n// consumeBoolValue decodes a bool value as a Bool.\nfunc consumeBoolValue(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tout.n = n\n\treturn protoreflect.ValueOfBool(protowire.DecodeBool(v)), out, nil\n}\n\nvar coderBoolValue = valueCoderFuncs{\n\tsize:      sizeBoolValue,\n\tmarshal:   appendBoolValue,\n\tunmarshal: consumeBoolValue,\n\tmerge:     mergeScalarValue,\n}\n\n// sizeBoolSliceValue returns the size of wire encoding a []bool value as a repeated Bool.\nfunc sizeBoolSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tsize += tagsize + protowire.SizeVarint(protowire.EncodeBool(v.Bool()))\n\t}\n\treturn size\n}\n\n// appendBoolSliceValue encodes a []bool value as a repeated Bool.\nfunc appendBoolSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, wiretag)\n\t\tb = protowire.AppendVarint(b, protowire.EncodeBool(v.Bool()))\n\t}\n\treturn b, nil\n}\n\n// consumeBoolSliceValue wire decodes a []bool value as a repeated Bool.\nfunc consumeBoolSliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tlist := listv.List()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t}\n\t\tfor len(b) > 0 {\n\t\t\tvar v uint64\n\t\t\tvar n int\n\t\t\tif len(b) >= 1 && b[0] < 0x80 {\n\t\t\t\tv = uint64(b[0])\n\t\t\t\tn = 1\n\t\t\t} else if len(b) >= 2 && b[1] < 128 {\n\t\t\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\t\t\tn = 2\n\t\t\t} else {\n\t\t\t\tv, n = protowire.ConsumeVarint(b)\n\t\t\t}\n\t\t\tif n < 0 {\n\t\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t\t}\n\t\t\tlist.Append(protoreflect.ValueOfBool(protowire.DecodeBool(v)))\n\t\t\tb = b[n:]\n\t\t}\n\t\tout.n = n\n\t\treturn listv, out, nil\n\t}\n\tif wtyp != protowire.VarintType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tlist.Append(protoreflect.ValueOfBool(protowire.DecodeBool(v)))\n\tout.n = n\n\treturn listv, out, nil\n}\n\nvar coderBoolSliceValue = valueCoderFuncs{\n\tsize:      sizeBoolSliceValue,\n\tmarshal:   appendBoolSliceValue,\n\tunmarshal: consumeBoolSliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeBoolPackedSliceValue returns the size of wire encoding a []bool value as a packed repeated Bool.\nfunc sizeBoolPackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor i, llen := 0, llen; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tn += protowire.SizeVarint(protowire.EncodeBool(v.Bool()))\n\t}\n\treturn tagsize + protowire.SizeBytes(n)\n}\n\n// appendBoolPackedSliceValue encodes a []bool value as a packed repeated Bool.\nfunc appendBoolPackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, wiretag)\n\tn := 0\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tn += protowire.SizeVarint(protowire.EncodeBool(v.Bool()))\n\t}\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, protowire.EncodeBool(v.Bool()))\n\t}\n\treturn b, nil\n}\n\nvar coderBoolPackedSliceValue = valueCoderFuncs{\n\tsize:      sizeBoolPackedSliceValue,\n\tmarshal:   appendBoolPackedSliceValue,\n\tunmarshal: consumeBoolSliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeEnumValue returns the size of wire encoding a  value as a Enum.\nfunc sizeEnumValue(v protoreflect.Value, tagsize int, opts marshalOptions) int {\n\treturn tagsize + protowire.SizeVarint(uint64(v.Enum()))\n}\n\n// appendEnumValue encodes a  value as a Enum.\nfunc appendEnumValue(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tb = protowire.AppendVarint(b, wiretag)\n\tb = protowire.AppendVarint(b, uint64(v.Enum()))\n\treturn b, nil\n}\n\n// consumeEnumValue decodes a  value as a Enum.\nfunc consumeEnumValue(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tout.n = n\n\treturn protoreflect.ValueOfEnum(protoreflect.EnumNumber(v)), out, nil\n}\n\nvar coderEnumValue = valueCoderFuncs{\n\tsize:      sizeEnumValue,\n\tmarshal:   appendEnumValue,\n\tunmarshal: consumeEnumValue,\n\tmerge:     mergeScalarValue,\n}\n\n// sizeEnumSliceValue returns the size of wire encoding a [] value as a repeated Enum.\nfunc sizeEnumSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tsize += tagsize + protowire.SizeVarint(uint64(v.Enum()))\n\t}\n\treturn size\n}\n\n// appendEnumSliceValue encodes a [] value as a repeated Enum.\nfunc appendEnumSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, wiretag)\n\t\tb = protowire.AppendVarint(b, uint64(v.Enum()))\n\t}\n\treturn b, nil\n}\n\n// consumeEnumSliceValue wire decodes a [] value as a repeated Enum.\nfunc consumeEnumSliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tlist := listv.List()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t}\n\t\tfor len(b) > 0 {\n\t\t\tvar v uint64\n\t\t\tvar n int\n\t\t\tif len(b) >= 1 && b[0] < 0x80 {\n\t\t\t\tv = uint64(b[0])\n\t\t\t\tn = 1\n\t\t\t} else if len(b) >= 2 && b[1] < 128 {\n\t\t\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\t\t\tn = 2\n\t\t\t} else {\n\t\t\t\tv, n = protowire.ConsumeVarint(b)\n\t\t\t}\n\t\t\tif n < 0 {\n\t\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t\t}\n\t\t\tlist.Append(protoreflect.ValueOfEnum(protoreflect.EnumNumber(v)))\n\t\t\tb = b[n:]\n\t\t}\n\t\tout.n = n\n\t\treturn listv, out, nil\n\t}\n\tif wtyp != protowire.VarintType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tlist.Append(protoreflect.ValueOfEnum(protoreflect.EnumNumber(v)))\n\tout.n = n\n\treturn listv, out, nil\n}\n\nvar coderEnumSliceValue = valueCoderFuncs{\n\tsize:      sizeEnumSliceValue,\n\tmarshal:   appendEnumSliceValue,\n\tunmarshal: consumeEnumSliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeEnumPackedSliceValue returns the size of wire encoding a [] value as a packed repeated Enum.\nfunc sizeEnumPackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor i, llen := 0, llen; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tn += protowire.SizeVarint(uint64(v.Enum()))\n\t}\n\treturn tagsize + protowire.SizeBytes(n)\n}\n\n// appendEnumPackedSliceValue encodes a [] value as a packed repeated Enum.\nfunc appendEnumPackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, wiretag)\n\tn := 0\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tn += protowire.SizeVarint(uint64(v.Enum()))\n\t}\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, uint64(v.Enum()))\n\t}\n\treturn b, nil\n}\n\nvar coderEnumPackedSliceValue = valueCoderFuncs{\n\tsize:      sizeEnumPackedSliceValue,\n\tmarshal:   appendEnumPackedSliceValue,\n\tunmarshal: consumeEnumSliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeInt32 returns the size of wire encoding a int32 pointer as a Int32.\nfunc sizeInt32(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Int32()\n\treturn f.tagsize + protowire.SizeVarint(uint64(v))\n}\n\n// appendInt32 wire encodes a int32 pointer as a Int32.\nfunc appendInt32(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Int32()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, uint64(v))\n\treturn b, nil\n}\n\n// consumeInt32 wire decodes a int32 pointer as a Int32.\nfunc consumeInt32(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*p.Int32() = int32(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderInt32 = pointerCoderFuncs{\n\tsize:      sizeInt32,\n\tmarshal:   appendInt32,\n\tunmarshal: consumeInt32,\n\tmerge:     mergeInt32,\n}\n\n// sizeInt32NoZero returns the size of wire encoding a int32 pointer as a Int32.\n// The zero value is not encoded.\nfunc sizeInt32NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Int32()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn f.tagsize + protowire.SizeVarint(uint64(v))\n}\n\n// appendInt32NoZero wire encodes a int32 pointer as a Int32.\n// The zero value is not encoded.\nfunc appendInt32NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Int32()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, uint64(v))\n\treturn b, nil\n}\n\nvar coderInt32NoZero = pointerCoderFuncs{\n\tsize:      sizeInt32NoZero,\n\tmarshal:   appendInt32NoZero,\n\tunmarshal: consumeInt32,\n\tmerge:     mergeInt32NoZero,\n}\n\n// sizeInt32Ptr returns the size of wire encoding a *int32 pointer as a Int32.\n// It panics if the pointer is nil.\nfunc sizeInt32Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := **p.Int32Ptr()\n\treturn f.tagsize + protowire.SizeVarint(uint64(v))\n}\n\n// appendInt32Ptr wire encodes a *int32 pointer as a Int32.\n// It panics if the pointer is nil.\nfunc appendInt32Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := **p.Int32Ptr()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, uint64(v))\n\treturn b, nil\n}\n\n// consumeInt32Ptr wire decodes a *int32 pointer as a Int32.\nfunc consumeInt32Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tvp := p.Int32Ptr()\n\tif *vp == nil {\n\t\t*vp = new(int32)\n\t}\n\t**vp = int32(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderInt32Ptr = pointerCoderFuncs{\n\tsize:      sizeInt32Ptr,\n\tmarshal:   appendInt32Ptr,\n\tunmarshal: consumeInt32Ptr,\n\tmerge:     mergeInt32Ptr,\n}\n\n// sizeInt32Slice returns the size of wire encoding a []int32 pointer as a repeated Int32.\nfunc sizeInt32Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Int32Slice()\n\tfor _, v := range s {\n\t\tsize += f.tagsize + protowire.SizeVarint(uint64(v))\n\t}\n\treturn size\n}\n\n// appendInt32Slice encodes a []int32 pointer as a repeated Int32.\nfunc appendInt32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Int32Slice()\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, f.wiretag)\n\t\tb = protowire.AppendVarint(b, uint64(v))\n\t}\n\treturn b, nil\n}\n\n// consumeInt32Slice wire decodes a []int32 pointer as a repeated Int32.\nfunc consumeInt32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tsp := p.Int32Slice()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn out, errDecode\n\t\t}\n\t\tcount := 0\n\t\tfor _, v := range b {\n\t\t\tif v < 0x80 {\n\t\t\t\tcount++\n\t\t\t}\n\t\t}\n\t\tif count > 0 {\n\t\t\tp.growInt32Slice(count)\n\t\t}\n\t\ts := *sp\n\t\tfor len(b) > 0 {\n\t\t\tvar v uint64\n\t\t\tvar n int\n\t\t\tif len(b) >= 1 && b[0] < 0x80 {\n\t\t\t\tv = uint64(b[0])\n\t\t\t\tn = 1\n\t\t\t} else if len(b) >= 2 && b[1] < 128 {\n\t\t\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\t\t\tn = 2\n\t\t\t} else {\n\t\t\t\tv, n = protowire.ConsumeVarint(b)\n\t\t\t}\n\t\t\tif n < 0 {\n\t\t\t\treturn out, errDecode\n\t\t\t}\n\t\t\ts = append(s, int32(v))\n\t\t\tb = b[n:]\n\t\t}\n\t\t*sp = s\n\t\tout.n = n\n\t\treturn out, nil\n\t}\n\tif wtyp != protowire.VarintType {\n\t\treturn out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*sp = append(*sp, int32(v))\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderInt32Slice = pointerCoderFuncs{\n\tsize:      sizeInt32Slice,\n\tmarshal:   appendInt32Slice,\n\tunmarshal: consumeInt32Slice,\n\tmerge:     mergeInt32Slice,\n}\n\n// sizeInt32PackedSlice returns the size of wire encoding a []int32 pointer as a packed repeated Int32.\nfunc sizeInt32PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Int32Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor _, v := range s {\n\t\tn += protowire.SizeVarint(uint64(v))\n\t}\n\treturn f.tagsize + protowire.SizeBytes(n)\n}\n\n// appendInt32PackedSlice encodes a []int32 pointer as a packed repeated Int32.\nfunc appendInt32PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Int32Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tn := 0\n\tfor _, v := range s {\n\t\tn += protowire.SizeVarint(uint64(v))\n\t}\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, uint64(v))\n\t}\n\treturn b, nil\n}\n\nvar coderInt32PackedSlice = pointerCoderFuncs{\n\tsize:      sizeInt32PackedSlice,\n\tmarshal:   appendInt32PackedSlice,\n\tunmarshal: consumeInt32Slice,\n\tmerge:     mergeInt32Slice,\n}\n\n// sizeInt32Value returns the size of wire encoding a int32 value as a Int32.\nfunc sizeInt32Value(v protoreflect.Value, tagsize int, opts marshalOptions) int {\n\treturn tagsize + protowire.SizeVarint(uint64(int32(v.Int())))\n}\n\n// appendInt32Value encodes a int32 value as a Int32.\nfunc appendInt32Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tb = protowire.AppendVarint(b, wiretag)\n\tb = protowire.AppendVarint(b, uint64(int32(v.Int())))\n\treturn b, nil\n}\n\n// consumeInt32Value decodes a int32 value as a Int32.\nfunc consumeInt32Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tout.n = n\n\treturn protoreflect.ValueOfInt32(int32(v)), out, nil\n}\n\nvar coderInt32Value = valueCoderFuncs{\n\tsize:      sizeInt32Value,\n\tmarshal:   appendInt32Value,\n\tunmarshal: consumeInt32Value,\n\tmerge:     mergeScalarValue,\n}\n\n// sizeInt32SliceValue returns the size of wire encoding a []int32 value as a repeated Int32.\nfunc sizeInt32SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tsize += tagsize + protowire.SizeVarint(uint64(int32(v.Int())))\n\t}\n\treturn size\n}\n\n// appendInt32SliceValue encodes a []int32 value as a repeated Int32.\nfunc appendInt32SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, wiretag)\n\t\tb = protowire.AppendVarint(b, uint64(int32(v.Int())))\n\t}\n\treturn b, nil\n}\n\n// consumeInt32SliceValue wire decodes a []int32 value as a repeated Int32.\nfunc consumeInt32SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tlist := listv.List()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t}\n\t\tfor len(b) > 0 {\n\t\t\tvar v uint64\n\t\t\tvar n int\n\t\t\tif len(b) >= 1 && b[0] < 0x80 {\n\t\t\t\tv = uint64(b[0])\n\t\t\t\tn = 1\n\t\t\t} else if len(b) >= 2 && b[1] < 128 {\n\t\t\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\t\t\tn = 2\n\t\t\t} else {\n\t\t\t\tv, n = protowire.ConsumeVarint(b)\n\t\t\t}\n\t\t\tif n < 0 {\n\t\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t\t}\n\t\t\tlist.Append(protoreflect.ValueOfInt32(int32(v)))\n\t\t\tb = b[n:]\n\t\t}\n\t\tout.n = n\n\t\treturn listv, out, nil\n\t}\n\tif wtyp != protowire.VarintType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tlist.Append(protoreflect.ValueOfInt32(int32(v)))\n\tout.n = n\n\treturn listv, out, nil\n}\n\nvar coderInt32SliceValue = valueCoderFuncs{\n\tsize:      sizeInt32SliceValue,\n\tmarshal:   appendInt32SliceValue,\n\tunmarshal: consumeInt32SliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeInt32PackedSliceValue returns the size of wire encoding a []int32 value as a packed repeated Int32.\nfunc sizeInt32PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor i, llen := 0, llen; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tn += protowire.SizeVarint(uint64(int32(v.Int())))\n\t}\n\treturn tagsize + protowire.SizeBytes(n)\n}\n\n// appendInt32PackedSliceValue encodes a []int32 value as a packed repeated Int32.\nfunc appendInt32PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, wiretag)\n\tn := 0\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tn += protowire.SizeVarint(uint64(int32(v.Int())))\n\t}\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, uint64(int32(v.Int())))\n\t}\n\treturn b, nil\n}\n\nvar coderInt32PackedSliceValue = valueCoderFuncs{\n\tsize:      sizeInt32PackedSliceValue,\n\tmarshal:   appendInt32PackedSliceValue,\n\tunmarshal: consumeInt32SliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeSint32 returns the size of wire encoding a int32 pointer as a Sint32.\nfunc sizeSint32(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Int32()\n\treturn f.tagsize + protowire.SizeVarint(protowire.EncodeZigZag(int64(v)))\n}\n\n// appendSint32 wire encodes a int32 pointer as a Sint32.\nfunc appendSint32(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Int32()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, protowire.EncodeZigZag(int64(v)))\n\treturn b, nil\n}\n\n// consumeSint32 wire decodes a int32 pointer as a Sint32.\nfunc consumeSint32(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*p.Int32() = int32(protowire.DecodeZigZag(v & math.MaxUint32))\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderSint32 = pointerCoderFuncs{\n\tsize:      sizeSint32,\n\tmarshal:   appendSint32,\n\tunmarshal: consumeSint32,\n\tmerge:     mergeInt32,\n}\n\n// sizeSint32NoZero returns the size of wire encoding a int32 pointer as a Sint32.\n// The zero value is not encoded.\nfunc sizeSint32NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Int32()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn f.tagsize + protowire.SizeVarint(protowire.EncodeZigZag(int64(v)))\n}\n\n// appendSint32NoZero wire encodes a int32 pointer as a Sint32.\n// The zero value is not encoded.\nfunc appendSint32NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Int32()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, protowire.EncodeZigZag(int64(v)))\n\treturn b, nil\n}\n\nvar coderSint32NoZero = pointerCoderFuncs{\n\tsize:      sizeSint32NoZero,\n\tmarshal:   appendSint32NoZero,\n\tunmarshal: consumeSint32,\n\tmerge:     mergeInt32NoZero,\n}\n\n// sizeSint32Ptr returns the size of wire encoding a *int32 pointer as a Sint32.\n// It panics if the pointer is nil.\nfunc sizeSint32Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := **p.Int32Ptr()\n\treturn f.tagsize + protowire.SizeVarint(protowire.EncodeZigZag(int64(v)))\n}\n\n// appendSint32Ptr wire encodes a *int32 pointer as a Sint32.\n// It panics if the pointer is nil.\nfunc appendSint32Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := **p.Int32Ptr()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, protowire.EncodeZigZag(int64(v)))\n\treturn b, nil\n}\n\n// consumeSint32Ptr wire decodes a *int32 pointer as a Sint32.\nfunc consumeSint32Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tvp := p.Int32Ptr()\n\tif *vp == nil {\n\t\t*vp = new(int32)\n\t}\n\t**vp = int32(protowire.DecodeZigZag(v & math.MaxUint32))\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderSint32Ptr = pointerCoderFuncs{\n\tsize:      sizeSint32Ptr,\n\tmarshal:   appendSint32Ptr,\n\tunmarshal: consumeSint32Ptr,\n\tmerge:     mergeInt32Ptr,\n}\n\n// sizeSint32Slice returns the size of wire encoding a []int32 pointer as a repeated Sint32.\nfunc sizeSint32Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Int32Slice()\n\tfor _, v := range s {\n\t\tsize += f.tagsize + protowire.SizeVarint(protowire.EncodeZigZag(int64(v)))\n\t}\n\treturn size\n}\n\n// appendSint32Slice encodes a []int32 pointer as a repeated Sint32.\nfunc appendSint32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Int32Slice()\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, f.wiretag)\n\t\tb = protowire.AppendVarint(b, protowire.EncodeZigZag(int64(v)))\n\t}\n\treturn b, nil\n}\n\n// consumeSint32Slice wire decodes a []int32 pointer as a repeated Sint32.\nfunc consumeSint32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tsp := p.Int32Slice()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn out, errDecode\n\t\t}\n\t\tcount := 0\n\t\tfor _, v := range b {\n\t\t\tif v < 0x80 {\n\t\t\t\tcount++\n\t\t\t}\n\t\t}\n\t\tif count > 0 {\n\t\t\tp.growInt32Slice(count)\n\t\t}\n\t\ts := *sp\n\t\tfor len(b) > 0 {\n\t\t\tvar v uint64\n\t\t\tvar n int\n\t\t\tif len(b) >= 1 && b[0] < 0x80 {\n\t\t\t\tv = uint64(b[0])\n\t\t\t\tn = 1\n\t\t\t} else if len(b) >= 2 && b[1] < 128 {\n\t\t\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\t\t\tn = 2\n\t\t\t} else {\n\t\t\t\tv, n = protowire.ConsumeVarint(b)\n\t\t\t}\n\t\t\tif n < 0 {\n\t\t\t\treturn out, errDecode\n\t\t\t}\n\t\t\ts = append(s, int32(protowire.DecodeZigZag(v&math.MaxUint32)))\n\t\t\tb = b[n:]\n\t\t}\n\t\t*sp = s\n\t\tout.n = n\n\t\treturn out, nil\n\t}\n\tif wtyp != protowire.VarintType {\n\t\treturn out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*sp = append(*sp, int32(protowire.DecodeZigZag(v&math.MaxUint32)))\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderSint32Slice = pointerCoderFuncs{\n\tsize:      sizeSint32Slice,\n\tmarshal:   appendSint32Slice,\n\tunmarshal: consumeSint32Slice,\n\tmerge:     mergeInt32Slice,\n}\n\n// sizeSint32PackedSlice returns the size of wire encoding a []int32 pointer as a packed repeated Sint32.\nfunc sizeSint32PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Int32Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor _, v := range s {\n\t\tn += protowire.SizeVarint(protowire.EncodeZigZag(int64(v)))\n\t}\n\treturn f.tagsize + protowire.SizeBytes(n)\n}\n\n// appendSint32PackedSlice encodes a []int32 pointer as a packed repeated Sint32.\nfunc appendSint32PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Int32Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tn := 0\n\tfor _, v := range s {\n\t\tn += protowire.SizeVarint(protowire.EncodeZigZag(int64(v)))\n\t}\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, protowire.EncodeZigZag(int64(v)))\n\t}\n\treturn b, nil\n}\n\nvar coderSint32PackedSlice = pointerCoderFuncs{\n\tsize:      sizeSint32PackedSlice,\n\tmarshal:   appendSint32PackedSlice,\n\tunmarshal: consumeSint32Slice,\n\tmerge:     mergeInt32Slice,\n}\n\n// sizeSint32Value returns the size of wire encoding a int32 value as a Sint32.\nfunc sizeSint32Value(v protoreflect.Value, tagsize int, opts marshalOptions) int {\n\treturn tagsize + protowire.SizeVarint(protowire.EncodeZigZag(int64(int32(v.Int()))))\n}\n\n// appendSint32Value encodes a int32 value as a Sint32.\nfunc appendSint32Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tb = protowire.AppendVarint(b, wiretag)\n\tb = protowire.AppendVarint(b, protowire.EncodeZigZag(int64(int32(v.Int()))))\n\treturn b, nil\n}\n\n// consumeSint32Value decodes a int32 value as a Sint32.\nfunc consumeSint32Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tout.n = n\n\treturn protoreflect.ValueOfInt32(int32(protowire.DecodeZigZag(v & math.MaxUint32))), out, nil\n}\n\nvar coderSint32Value = valueCoderFuncs{\n\tsize:      sizeSint32Value,\n\tmarshal:   appendSint32Value,\n\tunmarshal: consumeSint32Value,\n\tmerge:     mergeScalarValue,\n}\n\n// sizeSint32SliceValue returns the size of wire encoding a []int32 value as a repeated Sint32.\nfunc sizeSint32SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tsize += tagsize + protowire.SizeVarint(protowire.EncodeZigZag(int64(int32(v.Int()))))\n\t}\n\treturn size\n}\n\n// appendSint32SliceValue encodes a []int32 value as a repeated Sint32.\nfunc appendSint32SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, wiretag)\n\t\tb = protowire.AppendVarint(b, protowire.EncodeZigZag(int64(int32(v.Int()))))\n\t}\n\treturn b, nil\n}\n\n// consumeSint32SliceValue wire decodes a []int32 value as a repeated Sint32.\nfunc consumeSint32SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tlist := listv.List()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t}\n\t\tfor len(b) > 0 {\n\t\t\tvar v uint64\n\t\t\tvar n int\n\t\t\tif len(b) >= 1 && b[0] < 0x80 {\n\t\t\t\tv = uint64(b[0])\n\t\t\t\tn = 1\n\t\t\t} else if len(b) >= 2 && b[1] < 128 {\n\t\t\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\t\t\tn = 2\n\t\t\t} else {\n\t\t\t\tv, n = protowire.ConsumeVarint(b)\n\t\t\t}\n\t\t\tif n < 0 {\n\t\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t\t}\n\t\t\tlist.Append(protoreflect.ValueOfInt32(int32(protowire.DecodeZigZag(v & math.MaxUint32))))\n\t\t\tb = b[n:]\n\t\t}\n\t\tout.n = n\n\t\treturn listv, out, nil\n\t}\n\tif wtyp != protowire.VarintType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tlist.Append(protoreflect.ValueOfInt32(int32(protowire.DecodeZigZag(v & math.MaxUint32))))\n\tout.n = n\n\treturn listv, out, nil\n}\n\nvar coderSint32SliceValue = valueCoderFuncs{\n\tsize:      sizeSint32SliceValue,\n\tmarshal:   appendSint32SliceValue,\n\tunmarshal: consumeSint32SliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeSint32PackedSliceValue returns the size of wire encoding a []int32 value as a packed repeated Sint32.\nfunc sizeSint32PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor i, llen := 0, llen; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tn += protowire.SizeVarint(protowire.EncodeZigZag(int64(int32(v.Int()))))\n\t}\n\treturn tagsize + protowire.SizeBytes(n)\n}\n\n// appendSint32PackedSliceValue encodes a []int32 value as a packed repeated Sint32.\nfunc appendSint32PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, wiretag)\n\tn := 0\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tn += protowire.SizeVarint(protowire.EncodeZigZag(int64(int32(v.Int()))))\n\t}\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, protowire.EncodeZigZag(int64(int32(v.Int()))))\n\t}\n\treturn b, nil\n}\n\nvar coderSint32PackedSliceValue = valueCoderFuncs{\n\tsize:      sizeSint32PackedSliceValue,\n\tmarshal:   appendSint32PackedSliceValue,\n\tunmarshal: consumeSint32SliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeUint32 returns the size of wire encoding a uint32 pointer as a Uint32.\nfunc sizeUint32(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Uint32()\n\treturn f.tagsize + protowire.SizeVarint(uint64(v))\n}\n\n// appendUint32 wire encodes a uint32 pointer as a Uint32.\nfunc appendUint32(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Uint32()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, uint64(v))\n\treturn b, nil\n}\n\n// consumeUint32 wire decodes a uint32 pointer as a Uint32.\nfunc consumeUint32(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*p.Uint32() = uint32(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderUint32 = pointerCoderFuncs{\n\tsize:      sizeUint32,\n\tmarshal:   appendUint32,\n\tunmarshal: consumeUint32,\n\tmerge:     mergeUint32,\n}\n\n// sizeUint32NoZero returns the size of wire encoding a uint32 pointer as a Uint32.\n// The zero value is not encoded.\nfunc sizeUint32NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Uint32()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn f.tagsize + protowire.SizeVarint(uint64(v))\n}\n\n// appendUint32NoZero wire encodes a uint32 pointer as a Uint32.\n// The zero value is not encoded.\nfunc appendUint32NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Uint32()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, uint64(v))\n\treturn b, nil\n}\n\nvar coderUint32NoZero = pointerCoderFuncs{\n\tsize:      sizeUint32NoZero,\n\tmarshal:   appendUint32NoZero,\n\tunmarshal: consumeUint32,\n\tmerge:     mergeUint32NoZero,\n}\n\n// sizeUint32Ptr returns the size of wire encoding a *uint32 pointer as a Uint32.\n// It panics if the pointer is nil.\nfunc sizeUint32Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := **p.Uint32Ptr()\n\treturn f.tagsize + protowire.SizeVarint(uint64(v))\n}\n\n// appendUint32Ptr wire encodes a *uint32 pointer as a Uint32.\n// It panics if the pointer is nil.\nfunc appendUint32Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := **p.Uint32Ptr()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, uint64(v))\n\treturn b, nil\n}\n\n// consumeUint32Ptr wire decodes a *uint32 pointer as a Uint32.\nfunc consumeUint32Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tvp := p.Uint32Ptr()\n\tif *vp == nil {\n\t\t*vp = new(uint32)\n\t}\n\t**vp = uint32(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderUint32Ptr = pointerCoderFuncs{\n\tsize:      sizeUint32Ptr,\n\tmarshal:   appendUint32Ptr,\n\tunmarshal: consumeUint32Ptr,\n\tmerge:     mergeUint32Ptr,\n}\n\n// sizeUint32Slice returns the size of wire encoding a []uint32 pointer as a repeated Uint32.\nfunc sizeUint32Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Uint32Slice()\n\tfor _, v := range s {\n\t\tsize += f.tagsize + protowire.SizeVarint(uint64(v))\n\t}\n\treturn size\n}\n\n// appendUint32Slice encodes a []uint32 pointer as a repeated Uint32.\nfunc appendUint32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Uint32Slice()\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, f.wiretag)\n\t\tb = protowire.AppendVarint(b, uint64(v))\n\t}\n\treturn b, nil\n}\n\n// consumeUint32Slice wire decodes a []uint32 pointer as a repeated Uint32.\nfunc consumeUint32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tsp := p.Uint32Slice()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn out, errDecode\n\t\t}\n\t\tcount := 0\n\t\tfor _, v := range b {\n\t\t\tif v < 0x80 {\n\t\t\t\tcount++\n\t\t\t}\n\t\t}\n\t\tif count > 0 {\n\t\t\tp.growUint32Slice(count)\n\t\t}\n\t\ts := *sp\n\t\tfor len(b) > 0 {\n\t\t\tvar v uint64\n\t\t\tvar n int\n\t\t\tif len(b) >= 1 && b[0] < 0x80 {\n\t\t\t\tv = uint64(b[0])\n\t\t\t\tn = 1\n\t\t\t} else if len(b) >= 2 && b[1] < 128 {\n\t\t\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\t\t\tn = 2\n\t\t\t} else {\n\t\t\t\tv, n = protowire.ConsumeVarint(b)\n\t\t\t}\n\t\t\tif n < 0 {\n\t\t\t\treturn out, errDecode\n\t\t\t}\n\t\t\ts = append(s, uint32(v))\n\t\t\tb = b[n:]\n\t\t}\n\t\t*sp = s\n\t\tout.n = n\n\t\treturn out, nil\n\t}\n\tif wtyp != protowire.VarintType {\n\t\treturn out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*sp = append(*sp, uint32(v))\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderUint32Slice = pointerCoderFuncs{\n\tsize:      sizeUint32Slice,\n\tmarshal:   appendUint32Slice,\n\tunmarshal: consumeUint32Slice,\n\tmerge:     mergeUint32Slice,\n}\n\n// sizeUint32PackedSlice returns the size of wire encoding a []uint32 pointer as a packed repeated Uint32.\nfunc sizeUint32PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Uint32Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor _, v := range s {\n\t\tn += protowire.SizeVarint(uint64(v))\n\t}\n\treturn f.tagsize + protowire.SizeBytes(n)\n}\n\n// appendUint32PackedSlice encodes a []uint32 pointer as a packed repeated Uint32.\nfunc appendUint32PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Uint32Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tn := 0\n\tfor _, v := range s {\n\t\tn += protowire.SizeVarint(uint64(v))\n\t}\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, uint64(v))\n\t}\n\treturn b, nil\n}\n\nvar coderUint32PackedSlice = pointerCoderFuncs{\n\tsize:      sizeUint32PackedSlice,\n\tmarshal:   appendUint32PackedSlice,\n\tunmarshal: consumeUint32Slice,\n\tmerge:     mergeUint32Slice,\n}\n\n// sizeUint32Value returns the size of wire encoding a uint32 value as a Uint32.\nfunc sizeUint32Value(v protoreflect.Value, tagsize int, opts marshalOptions) int {\n\treturn tagsize + protowire.SizeVarint(uint64(uint32(v.Uint())))\n}\n\n// appendUint32Value encodes a uint32 value as a Uint32.\nfunc appendUint32Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tb = protowire.AppendVarint(b, wiretag)\n\tb = protowire.AppendVarint(b, uint64(uint32(v.Uint())))\n\treturn b, nil\n}\n\n// consumeUint32Value decodes a uint32 value as a Uint32.\nfunc consumeUint32Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tout.n = n\n\treturn protoreflect.ValueOfUint32(uint32(v)), out, nil\n}\n\nvar coderUint32Value = valueCoderFuncs{\n\tsize:      sizeUint32Value,\n\tmarshal:   appendUint32Value,\n\tunmarshal: consumeUint32Value,\n\tmerge:     mergeScalarValue,\n}\n\n// sizeUint32SliceValue returns the size of wire encoding a []uint32 value as a repeated Uint32.\nfunc sizeUint32SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tsize += tagsize + protowire.SizeVarint(uint64(uint32(v.Uint())))\n\t}\n\treturn size\n}\n\n// appendUint32SliceValue encodes a []uint32 value as a repeated Uint32.\nfunc appendUint32SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, wiretag)\n\t\tb = protowire.AppendVarint(b, uint64(uint32(v.Uint())))\n\t}\n\treturn b, nil\n}\n\n// consumeUint32SliceValue wire decodes a []uint32 value as a repeated Uint32.\nfunc consumeUint32SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tlist := listv.List()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t}\n\t\tfor len(b) > 0 {\n\t\t\tvar v uint64\n\t\t\tvar n int\n\t\t\tif len(b) >= 1 && b[0] < 0x80 {\n\t\t\t\tv = uint64(b[0])\n\t\t\t\tn = 1\n\t\t\t} else if len(b) >= 2 && b[1] < 128 {\n\t\t\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\t\t\tn = 2\n\t\t\t} else {\n\t\t\t\tv, n = protowire.ConsumeVarint(b)\n\t\t\t}\n\t\t\tif n < 0 {\n\t\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t\t}\n\t\t\tlist.Append(protoreflect.ValueOfUint32(uint32(v)))\n\t\t\tb = b[n:]\n\t\t}\n\t\tout.n = n\n\t\treturn listv, out, nil\n\t}\n\tif wtyp != protowire.VarintType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tlist.Append(protoreflect.ValueOfUint32(uint32(v)))\n\tout.n = n\n\treturn listv, out, nil\n}\n\nvar coderUint32SliceValue = valueCoderFuncs{\n\tsize:      sizeUint32SliceValue,\n\tmarshal:   appendUint32SliceValue,\n\tunmarshal: consumeUint32SliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeUint32PackedSliceValue returns the size of wire encoding a []uint32 value as a packed repeated Uint32.\nfunc sizeUint32PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor i, llen := 0, llen; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tn += protowire.SizeVarint(uint64(uint32(v.Uint())))\n\t}\n\treturn tagsize + protowire.SizeBytes(n)\n}\n\n// appendUint32PackedSliceValue encodes a []uint32 value as a packed repeated Uint32.\nfunc appendUint32PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, wiretag)\n\tn := 0\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tn += protowire.SizeVarint(uint64(uint32(v.Uint())))\n\t}\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, uint64(uint32(v.Uint())))\n\t}\n\treturn b, nil\n}\n\nvar coderUint32PackedSliceValue = valueCoderFuncs{\n\tsize:      sizeUint32PackedSliceValue,\n\tmarshal:   appendUint32PackedSliceValue,\n\tunmarshal: consumeUint32SliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeInt64 returns the size of wire encoding a int64 pointer as a Int64.\nfunc sizeInt64(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Int64()\n\treturn f.tagsize + protowire.SizeVarint(uint64(v))\n}\n\n// appendInt64 wire encodes a int64 pointer as a Int64.\nfunc appendInt64(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Int64()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, uint64(v))\n\treturn b, nil\n}\n\n// consumeInt64 wire decodes a int64 pointer as a Int64.\nfunc consumeInt64(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*p.Int64() = int64(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderInt64 = pointerCoderFuncs{\n\tsize:      sizeInt64,\n\tmarshal:   appendInt64,\n\tunmarshal: consumeInt64,\n\tmerge:     mergeInt64,\n}\n\n// sizeInt64NoZero returns the size of wire encoding a int64 pointer as a Int64.\n// The zero value is not encoded.\nfunc sizeInt64NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Int64()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn f.tagsize + protowire.SizeVarint(uint64(v))\n}\n\n// appendInt64NoZero wire encodes a int64 pointer as a Int64.\n// The zero value is not encoded.\nfunc appendInt64NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Int64()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, uint64(v))\n\treturn b, nil\n}\n\nvar coderInt64NoZero = pointerCoderFuncs{\n\tsize:      sizeInt64NoZero,\n\tmarshal:   appendInt64NoZero,\n\tunmarshal: consumeInt64,\n\tmerge:     mergeInt64NoZero,\n}\n\n// sizeInt64Ptr returns the size of wire encoding a *int64 pointer as a Int64.\n// It panics if the pointer is nil.\nfunc sizeInt64Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := **p.Int64Ptr()\n\treturn f.tagsize + protowire.SizeVarint(uint64(v))\n}\n\n// appendInt64Ptr wire encodes a *int64 pointer as a Int64.\n// It panics if the pointer is nil.\nfunc appendInt64Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := **p.Int64Ptr()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, uint64(v))\n\treturn b, nil\n}\n\n// consumeInt64Ptr wire decodes a *int64 pointer as a Int64.\nfunc consumeInt64Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tvp := p.Int64Ptr()\n\tif *vp == nil {\n\t\t*vp = new(int64)\n\t}\n\t**vp = int64(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderInt64Ptr = pointerCoderFuncs{\n\tsize:      sizeInt64Ptr,\n\tmarshal:   appendInt64Ptr,\n\tunmarshal: consumeInt64Ptr,\n\tmerge:     mergeInt64Ptr,\n}\n\n// sizeInt64Slice returns the size of wire encoding a []int64 pointer as a repeated Int64.\nfunc sizeInt64Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Int64Slice()\n\tfor _, v := range s {\n\t\tsize += f.tagsize + protowire.SizeVarint(uint64(v))\n\t}\n\treturn size\n}\n\n// appendInt64Slice encodes a []int64 pointer as a repeated Int64.\nfunc appendInt64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Int64Slice()\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, f.wiretag)\n\t\tb = protowire.AppendVarint(b, uint64(v))\n\t}\n\treturn b, nil\n}\n\n// consumeInt64Slice wire decodes a []int64 pointer as a repeated Int64.\nfunc consumeInt64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tsp := p.Int64Slice()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn out, errDecode\n\t\t}\n\t\tcount := 0\n\t\tfor _, v := range b {\n\t\t\tif v < 0x80 {\n\t\t\t\tcount++\n\t\t\t}\n\t\t}\n\t\tif count > 0 {\n\t\t\tp.growInt64Slice(count)\n\t\t}\n\t\ts := *sp\n\t\tfor len(b) > 0 {\n\t\t\tvar v uint64\n\t\t\tvar n int\n\t\t\tif len(b) >= 1 && b[0] < 0x80 {\n\t\t\t\tv = uint64(b[0])\n\t\t\t\tn = 1\n\t\t\t} else if len(b) >= 2 && b[1] < 128 {\n\t\t\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\t\t\tn = 2\n\t\t\t} else {\n\t\t\t\tv, n = protowire.ConsumeVarint(b)\n\t\t\t}\n\t\t\tif n < 0 {\n\t\t\t\treturn out, errDecode\n\t\t\t}\n\t\t\ts = append(s, int64(v))\n\t\t\tb = b[n:]\n\t\t}\n\t\t*sp = s\n\t\tout.n = n\n\t\treturn out, nil\n\t}\n\tif wtyp != protowire.VarintType {\n\t\treturn out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*sp = append(*sp, int64(v))\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderInt64Slice = pointerCoderFuncs{\n\tsize:      sizeInt64Slice,\n\tmarshal:   appendInt64Slice,\n\tunmarshal: consumeInt64Slice,\n\tmerge:     mergeInt64Slice,\n}\n\n// sizeInt64PackedSlice returns the size of wire encoding a []int64 pointer as a packed repeated Int64.\nfunc sizeInt64PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Int64Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor _, v := range s {\n\t\tn += protowire.SizeVarint(uint64(v))\n\t}\n\treturn f.tagsize + protowire.SizeBytes(n)\n}\n\n// appendInt64PackedSlice encodes a []int64 pointer as a packed repeated Int64.\nfunc appendInt64PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Int64Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tn := 0\n\tfor _, v := range s {\n\t\tn += protowire.SizeVarint(uint64(v))\n\t}\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, uint64(v))\n\t}\n\treturn b, nil\n}\n\nvar coderInt64PackedSlice = pointerCoderFuncs{\n\tsize:      sizeInt64PackedSlice,\n\tmarshal:   appendInt64PackedSlice,\n\tunmarshal: consumeInt64Slice,\n\tmerge:     mergeInt64Slice,\n}\n\n// sizeInt64Value returns the size of wire encoding a int64 value as a Int64.\nfunc sizeInt64Value(v protoreflect.Value, tagsize int, opts marshalOptions) int {\n\treturn tagsize + protowire.SizeVarint(uint64(v.Int()))\n}\n\n// appendInt64Value encodes a int64 value as a Int64.\nfunc appendInt64Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tb = protowire.AppendVarint(b, wiretag)\n\tb = protowire.AppendVarint(b, uint64(v.Int()))\n\treturn b, nil\n}\n\n// consumeInt64Value decodes a int64 value as a Int64.\nfunc consumeInt64Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tout.n = n\n\treturn protoreflect.ValueOfInt64(int64(v)), out, nil\n}\n\nvar coderInt64Value = valueCoderFuncs{\n\tsize:      sizeInt64Value,\n\tmarshal:   appendInt64Value,\n\tunmarshal: consumeInt64Value,\n\tmerge:     mergeScalarValue,\n}\n\n// sizeInt64SliceValue returns the size of wire encoding a []int64 value as a repeated Int64.\nfunc sizeInt64SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tsize += tagsize + protowire.SizeVarint(uint64(v.Int()))\n\t}\n\treturn size\n}\n\n// appendInt64SliceValue encodes a []int64 value as a repeated Int64.\nfunc appendInt64SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, wiretag)\n\t\tb = protowire.AppendVarint(b, uint64(v.Int()))\n\t}\n\treturn b, nil\n}\n\n// consumeInt64SliceValue wire decodes a []int64 value as a repeated Int64.\nfunc consumeInt64SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tlist := listv.List()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t}\n\t\tfor len(b) > 0 {\n\t\t\tvar v uint64\n\t\t\tvar n int\n\t\t\tif len(b) >= 1 && b[0] < 0x80 {\n\t\t\t\tv = uint64(b[0])\n\t\t\t\tn = 1\n\t\t\t} else if len(b) >= 2 && b[1] < 128 {\n\t\t\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\t\t\tn = 2\n\t\t\t} else {\n\t\t\t\tv, n = protowire.ConsumeVarint(b)\n\t\t\t}\n\t\t\tif n < 0 {\n\t\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t\t}\n\t\t\tlist.Append(protoreflect.ValueOfInt64(int64(v)))\n\t\t\tb = b[n:]\n\t\t}\n\t\tout.n = n\n\t\treturn listv, out, nil\n\t}\n\tif wtyp != protowire.VarintType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tlist.Append(protoreflect.ValueOfInt64(int64(v)))\n\tout.n = n\n\treturn listv, out, nil\n}\n\nvar coderInt64SliceValue = valueCoderFuncs{\n\tsize:      sizeInt64SliceValue,\n\tmarshal:   appendInt64SliceValue,\n\tunmarshal: consumeInt64SliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeInt64PackedSliceValue returns the size of wire encoding a []int64 value as a packed repeated Int64.\nfunc sizeInt64PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor i, llen := 0, llen; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tn += protowire.SizeVarint(uint64(v.Int()))\n\t}\n\treturn tagsize + protowire.SizeBytes(n)\n}\n\n// appendInt64PackedSliceValue encodes a []int64 value as a packed repeated Int64.\nfunc appendInt64PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, wiretag)\n\tn := 0\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tn += protowire.SizeVarint(uint64(v.Int()))\n\t}\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, uint64(v.Int()))\n\t}\n\treturn b, nil\n}\n\nvar coderInt64PackedSliceValue = valueCoderFuncs{\n\tsize:      sizeInt64PackedSliceValue,\n\tmarshal:   appendInt64PackedSliceValue,\n\tunmarshal: consumeInt64SliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeSint64 returns the size of wire encoding a int64 pointer as a Sint64.\nfunc sizeSint64(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Int64()\n\treturn f.tagsize + protowire.SizeVarint(protowire.EncodeZigZag(v))\n}\n\n// appendSint64 wire encodes a int64 pointer as a Sint64.\nfunc appendSint64(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Int64()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, protowire.EncodeZigZag(v))\n\treturn b, nil\n}\n\n// consumeSint64 wire decodes a int64 pointer as a Sint64.\nfunc consumeSint64(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*p.Int64() = protowire.DecodeZigZag(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderSint64 = pointerCoderFuncs{\n\tsize:      sizeSint64,\n\tmarshal:   appendSint64,\n\tunmarshal: consumeSint64,\n\tmerge:     mergeInt64,\n}\n\n// sizeSint64NoZero returns the size of wire encoding a int64 pointer as a Sint64.\n// The zero value is not encoded.\nfunc sizeSint64NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Int64()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn f.tagsize + protowire.SizeVarint(protowire.EncodeZigZag(v))\n}\n\n// appendSint64NoZero wire encodes a int64 pointer as a Sint64.\n// The zero value is not encoded.\nfunc appendSint64NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Int64()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, protowire.EncodeZigZag(v))\n\treturn b, nil\n}\n\nvar coderSint64NoZero = pointerCoderFuncs{\n\tsize:      sizeSint64NoZero,\n\tmarshal:   appendSint64NoZero,\n\tunmarshal: consumeSint64,\n\tmerge:     mergeInt64NoZero,\n}\n\n// sizeSint64Ptr returns the size of wire encoding a *int64 pointer as a Sint64.\n// It panics if the pointer is nil.\nfunc sizeSint64Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := **p.Int64Ptr()\n\treturn f.tagsize + protowire.SizeVarint(protowire.EncodeZigZag(v))\n}\n\n// appendSint64Ptr wire encodes a *int64 pointer as a Sint64.\n// It panics if the pointer is nil.\nfunc appendSint64Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := **p.Int64Ptr()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, protowire.EncodeZigZag(v))\n\treturn b, nil\n}\n\n// consumeSint64Ptr wire decodes a *int64 pointer as a Sint64.\nfunc consumeSint64Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tvp := p.Int64Ptr()\n\tif *vp == nil {\n\t\t*vp = new(int64)\n\t}\n\t**vp = protowire.DecodeZigZag(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderSint64Ptr = pointerCoderFuncs{\n\tsize:      sizeSint64Ptr,\n\tmarshal:   appendSint64Ptr,\n\tunmarshal: consumeSint64Ptr,\n\tmerge:     mergeInt64Ptr,\n}\n\n// sizeSint64Slice returns the size of wire encoding a []int64 pointer as a repeated Sint64.\nfunc sizeSint64Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Int64Slice()\n\tfor _, v := range s {\n\t\tsize += f.tagsize + protowire.SizeVarint(protowire.EncodeZigZag(v))\n\t}\n\treturn size\n}\n\n// appendSint64Slice encodes a []int64 pointer as a repeated Sint64.\nfunc appendSint64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Int64Slice()\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, f.wiretag)\n\t\tb = protowire.AppendVarint(b, protowire.EncodeZigZag(v))\n\t}\n\treturn b, nil\n}\n\n// consumeSint64Slice wire decodes a []int64 pointer as a repeated Sint64.\nfunc consumeSint64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tsp := p.Int64Slice()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn out, errDecode\n\t\t}\n\t\tcount := 0\n\t\tfor _, v := range b {\n\t\t\tif v < 0x80 {\n\t\t\t\tcount++\n\t\t\t}\n\t\t}\n\t\tif count > 0 {\n\t\t\tp.growInt64Slice(count)\n\t\t}\n\t\ts := *sp\n\t\tfor len(b) > 0 {\n\t\t\tvar v uint64\n\t\t\tvar n int\n\t\t\tif len(b) >= 1 && b[0] < 0x80 {\n\t\t\t\tv = uint64(b[0])\n\t\t\t\tn = 1\n\t\t\t} else if len(b) >= 2 && b[1] < 128 {\n\t\t\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\t\t\tn = 2\n\t\t\t} else {\n\t\t\t\tv, n = protowire.ConsumeVarint(b)\n\t\t\t}\n\t\t\tif n < 0 {\n\t\t\t\treturn out, errDecode\n\t\t\t}\n\t\t\ts = append(s, protowire.DecodeZigZag(v))\n\t\t\tb = b[n:]\n\t\t}\n\t\t*sp = s\n\t\tout.n = n\n\t\treturn out, nil\n\t}\n\tif wtyp != protowire.VarintType {\n\t\treturn out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*sp = append(*sp, protowire.DecodeZigZag(v))\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderSint64Slice = pointerCoderFuncs{\n\tsize:      sizeSint64Slice,\n\tmarshal:   appendSint64Slice,\n\tunmarshal: consumeSint64Slice,\n\tmerge:     mergeInt64Slice,\n}\n\n// sizeSint64PackedSlice returns the size of wire encoding a []int64 pointer as a packed repeated Sint64.\nfunc sizeSint64PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Int64Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor _, v := range s {\n\t\tn += protowire.SizeVarint(protowire.EncodeZigZag(v))\n\t}\n\treturn f.tagsize + protowire.SizeBytes(n)\n}\n\n// appendSint64PackedSlice encodes a []int64 pointer as a packed repeated Sint64.\nfunc appendSint64PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Int64Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tn := 0\n\tfor _, v := range s {\n\t\tn += protowire.SizeVarint(protowire.EncodeZigZag(v))\n\t}\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, protowire.EncodeZigZag(v))\n\t}\n\treturn b, nil\n}\n\nvar coderSint64PackedSlice = pointerCoderFuncs{\n\tsize:      sizeSint64PackedSlice,\n\tmarshal:   appendSint64PackedSlice,\n\tunmarshal: consumeSint64Slice,\n\tmerge:     mergeInt64Slice,\n}\n\n// sizeSint64Value returns the size of wire encoding a int64 value as a Sint64.\nfunc sizeSint64Value(v protoreflect.Value, tagsize int, opts marshalOptions) int {\n\treturn tagsize + protowire.SizeVarint(protowire.EncodeZigZag(v.Int()))\n}\n\n// appendSint64Value encodes a int64 value as a Sint64.\nfunc appendSint64Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tb = protowire.AppendVarint(b, wiretag)\n\tb = protowire.AppendVarint(b, protowire.EncodeZigZag(v.Int()))\n\treturn b, nil\n}\n\n// consumeSint64Value decodes a int64 value as a Sint64.\nfunc consumeSint64Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tout.n = n\n\treturn protoreflect.ValueOfInt64(protowire.DecodeZigZag(v)), out, nil\n}\n\nvar coderSint64Value = valueCoderFuncs{\n\tsize:      sizeSint64Value,\n\tmarshal:   appendSint64Value,\n\tunmarshal: consumeSint64Value,\n\tmerge:     mergeScalarValue,\n}\n\n// sizeSint64SliceValue returns the size of wire encoding a []int64 value as a repeated Sint64.\nfunc sizeSint64SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tsize += tagsize + protowire.SizeVarint(protowire.EncodeZigZag(v.Int()))\n\t}\n\treturn size\n}\n\n// appendSint64SliceValue encodes a []int64 value as a repeated Sint64.\nfunc appendSint64SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, wiretag)\n\t\tb = protowire.AppendVarint(b, protowire.EncodeZigZag(v.Int()))\n\t}\n\treturn b, nil\n}\n\n// consumeSint64SliceValue wire decodes a []int64 value as a repeated Sint64.\nfunc consumeSint64SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tlist := listv.List()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t}\n\t\tfor len(b) > 0 {\n\t\t\tvar v uint64\n\t\t\tvar n int\n\t\t\tif len(b) >= 1 && b[0] < 0x80 {\n\t\t\t\tv = uint64(b[0])\n\t\t\t\tn = 1\n\t\t\t} else if len(b) >= 2 && b[1] < 128 {\n\t\t\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\t\t\tn = 2\n\t\t\t} else {\n\t\t\t\tv, n = protowire.ConsumeVarint(b)\n\t\t\t}\n\t\t\tif n < 0 {\n\t\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t\t}\n\t\t\tlist.Append(protoreflect.ValueOfInt64(protowire.DecodeZigZag(v)))\n\t\t\tb = b[n:]\n\t\t}\n\t\tout.n = n\n\t\treturn listv, out, nil\n\t}\n\tif wtyp != protowire.VarintType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tlist.Append(protoreflect.ValueOfInt64(protowire.DecodeZigZag(v)))\n\tout.n = n\n\treturn listv, out, nil\n}\n\nvar coderSint64SliceValue = valueCoderFuncs{\n\tsize:      sizeSint64SliceValue,\n\tmarshal:   appendSint64SliceValue,\n\tunmarshal: consumeSint64SliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeSint64PackedSliceValue returns the size of wire encoding a []int64 value as a packed repeated Sint64.\nfunc sizeSint64PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor i, llen := 0, llen; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tn += protowire.SizeVarint(protowire.EncodeZigZag(v.Int()))\n\t}\n\treturn tagsize + protowire.SizeBytes(n)\n}\n\n// appendSint64PackedSliceValue encodes a []int64 value as a packed repeated Sint64.\nfunc appendSint64PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, wiretag)\n\tn := 0\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tn += protowire.SizeVarint(protowire.EncodeZigZag(v.Int()))\n\t}\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, protowire.EncodeZigZag(v.Int()))\n\t}\n\treturn b, nil\n}\n\nvar coderSint64PackedSliceValue = valueCoderFuncs{\n\tsize:      sizeSint64PackedSliceValue,\n\tmarshal:   appendSint64PackedSliceValue,\n\tunmarshal: consumeSint64SliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeUint64 returns the size of wire encoding a uint64 pointer as a Uint64.\nfunc sizeUint64(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Uint64()\n\treturn f.tagsize + protowire.SizeVarint(v)\n}\n\n// appendUint64 wire encodes a uint64 pointer as a Uint64.\nfunc appendUint64(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Uint64()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, v)\n\treturn b, nil\n}\n\n// consumeUint64 wire decodes a uint64 pointer as a Uint64.\nfunc consumeUint64(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*p.Uint64() = v\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderUint64 = pointerCoderFuncs{\n\tsize:      sizeUint64,\n\tmarshal:   appendUint64,\n\tunmarshal: consumeUint64,\n\tmerge:     mergeUint64,\n}\n\n// sizeUint64NoZero returns the size of wire encoding a uint64 pointer as a Uint64.\n// The zero value is not encoded.\nfunc sizeUint64NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Uint64()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn f.tagsize + protowire.SizeVarint(v)\n}\n\n// appendUint64NoZero wire encodes a uint64 pointer as a Uint64.\n// The zero value is not encoded.\nfunc appendUint64NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Uint64()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, v)\n\treturn b, nil\n}\n\nvar coderUint64NoZero = pointerCoderFuncs{\n\tsize:      sizeUint64NoZero,\n\tmarshal:   appendUint64NoZero,\n\tunmarshal: consumeUint64,\n\tmerge:     mergeUint64NoZero,\n}\n\n// sizeUint64Ptr returns the size of wire encoding a *uint64 pointer as a Uint64.\n// It panics if the pointer is nil.\nfunc sizeUint64Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := **p.Uint64Ptr()\n\treturn f.tagsize + protowire.SizeVarint(v)\n}\n\n// appendUint64Ptr wire encodes a *uint64 pointer as a Uint64.\n// It panics if the pointer is nil.\nfunc appendUint64Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := **p.Uint64Ptr()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendVarint(b, v)\n\treturn b, nil\n}\n\n// consumeUint64Ptr wire decodes a *uint64 pointer as a Uint64.\nfunc consumeUint64Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tvp := p.Uint64Ptr()\n\tif *vp == nil {\n\t\t*vp = new(uint64)\n\t}\n\t**vp = v\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderUint64Ptr = pointerCoderFuncs{\n\tsize:      sizeUint64Ptr,\n\tmarshal:   appendUint64Ptr,\n\tunmarshal: consumeUint64Ptr,\n\tmerge:     mergeUint64Ptr,\n}\n\n// sizeUint64Slice returns the size of wire encoding a []uint64 pointer as a repeated Uint64.\nfunc sizeUint64Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Uint64Slice()\n\tfor _, v := range s {\n\t\tsize += f.tagsize + protowire.SizeVarint(v)\n\t}\n\treturn size\n}\n\n// appendUint64Slice encodes a []uint64 pointer as a repeated Uint64.\nfunc appendUint64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Uint64Slice()\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, f.wiretag)\n\t\tb = protowire.AppendVarint(b, v)\n\t}\n\treturn b, nil\n}\n\n// consumeUint64Slice wire decodes a []uint64 pointer as a repeated Uint64.\nfunc consumeUint64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tsp := p.Uint64Slice()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn out, errDecode\n\t\t}\n\t\tcount := 0\n\t\tfor _, v := range b {\n\t\t\tif v < 0x80 {\n\t\t\t\tcount++\n\t\t\t}\n\t\t}\n\t\tif count > 0 {\n\t\t\tp.growUint64Slice(count)\n\t\t}\n\t\ts := *sp\n\t\tfor len(b) > 0 {\n\t\t\tvar v uint64\n\t\t\tvar n int\n\t\t\tif len(b) >= 1 && b[0] < 0x80 {\n\t\t\t\tv = uint64(b[0])\n\t\t\t\tn = 1\n\t\t\t} else if len(b) >= 2 && b[1] < 128 {\n\t\t\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\t\t\tn = 2\n\t\t\t} else {\n\t\t\t\tv, n = protowire.ConsumeVarint(b)\n\t\t\t}\n\t\t\tif n < 0 {\n\t\t\t\treturn out, errDecode\n\t\t\t}\n\t\t\ts = append(s, v)\n\t\t\tb = b[n:]\n\t\t}\n\t\t*sp = s\n\t\tout.n = n\n\t\treturn out, nil\n\t}\n\tif wtyp != protowire.VarintType {\n\t\treturn out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*sp = append(*sp, v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderUint64Slice = pointerCoderFuncs{\n\tsize:      sizeUint64Slice,\n\tmarshal:   appendUint64Slice,\n\tunmarshal: consumeUint64Slice,\n\tmerge:     mergeUint64Slice,\n}\n\n// sizeUint64PackedSlice returns the size of wire encoding a []uint64 pointer as a packed repeated Uint64.\nfunc sizeUint64PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Uint64Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor _, v := range s {\n\t\tn += protowire.SizeVarint(v)\n\t}\n\treturn f.tagsize + protowire.SizeBytes(n)\n}\n\n// appendUint64PackedSlice encodes a []uint64 pointer as a packed repeated Uint64.\nfunc appendUint64PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Uint64Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tn := 0\n\tfor _, v := range s {\n\t\tn += protowire.SizeVarint(v)\n\t}\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, v)\n\t}\n\treturn b, nil\n}\n\nvar coderUint64PackedSlice = pointerCoderFuncs{\n\tsize:      sizeUint64PackedSlice,\n\tmarshal:   appendUint64PackedSlice,\n\tunmarshal: consumeUint64Slice,\n\tmerge:     mergeUint64Slice,\n}\n\n// sizeUint64Value returns the size of wire encoding a uint64 value as a Uint64.\nfunc sizeUint64Value(v protoreflect.Value, tagsize int, opts marshalOptions) int {\n\treturn tagsize + protowire.SizeVarint(v.Uint())\n}\n\n// appendUint64Value encodes a uint64 value as a Uint64.\nfunc appendUint64Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tb = protowire.AppendVarint(b, wiretag)\n\tb = protowire.AppendVarint(b, v.Uint())\n\treturn b, nil\n}\n\n// consumeUint64Value decodes a uint64 value as a Uint64.\nfunc consumeUint64Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tif wtyp != protowire.VarintType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tout.n = n\n\treturn protoreflect.ValueOfUint64(v), out, nil\n}\n\nvar coderUint64Value = valueCoderFuncs{\n\tsize:      sizeUint64Value,\n\tmarshal:   appendUint64Value,\n\tunmarshal: consumeUint64Value,\n\tmerge:     mergeScalarValue,\n}\n\n// sizeUint64SliceValue returns the size of wire encoding a []uint64 value as a repeated Uint64.\nfunc sizeUint64SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tsize += tagsize + protowire.SizeVarint(v.Uint())\n\t}\n\treturn size\n}\n\n// appendUint64SliceValue encodes a []uint64 value as a repeated Uint64.\nfunc appendUint64SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, wiretag)\n\t\tb = protowire.AppendVarint(b, v.Uint())\n\t}\n\treturn b, nil\n}\n\n// consumeUint64SliceValue wire decodes a []uint64 value as a repeated Uint64.\nfunc consumeUint64SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tlist := listv.List()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t}\n\t\tfor len(b) > 0 {\n\t\t\tvar v uint64\n\t\t\tvar n int\n\t\t\tif len(b) >= 1 && b[0] < 0x80 {\n\t\t\t\tv = uint64(b[0])\n\t\t\t\tn = 1\n\t\t\t} else if len(b) >= 2 && b[1] < 128 {\n\t\t\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\t\t\tn = 2\n\t\t\t} else {\n\t\t\t\tv, n = protowire.ConsumeVarint(b)\n\t\t\t}\n\t\t\tif n < 0 {\n\t\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t\t}\n\t\t\tlist.Append(protoreflect.ValueOfUint64(v))\n\t\t\tb = b[n:]\n\t\t}\n\t\tout.n = n\n\t\treturn listv, out, nil\n\t}\n\tif wtyp != protowire.VarintType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tvar v uint64\n\tvar n int\n\tif len(b) >= 1 && b[0] < 0x80 {\n\t\tv = uint64(b[0])\n\t\tn = 1\n\t} else if len(b) >= 2 && b[1] < 128 {\n\t\tv = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\tn = 2\n\t} else {\n\t\tv, n = protowire.ConsumeVarint(b)\n\t}\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tlist.Append(protoreflect.ValueOfUint64(v))\n\tout.n = n\n\treturn listv, out, nil\n}\n\nvar coderUint64SliceValue = valueCoderFuncs{\n\tsize:      sizeUint64SliceValue,\n\tmarshal:   appendUint64SliceValue,\n\tunmarshal: consumeUint64SliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeUint64PackedSliceValue returns the size of wire encoding a []uint64 value as a packed repeated Uint64.\nfunc sizeUint64PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\tfor i, llen := 0, llen; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tn += protowire.SizeVarint(v.Uint())\n\t}\n\treturn tagsize + protowire.SizeBytes(n)\n}\n\n// appendUint64PackedSliceValue encodes a []uint64 value as a packed repeated Uint64.\nfunc appendUint64PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, wiretag)\n\tn := 0\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tn += protowire.SizeVarint(v.Uint())\n\t}\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, v.Uint())\n\t}\n\treturn b, nil\n}\n\nvar coderUint64PackedSliceValue = valueCoderFuncs{\n\tsize:      sizeUint64PackedSliceValue,\n\tmarshal:   appendUint64PackedSliceValue,\n\tunmarshal: consumeUint64SliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeSfixed32 returns the size of wire encoding a int32 pointer as a Sfixed32.\nfunc sizeSfixed32(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\n\treturn f.tagsize + protowire.SizeFixed32()\n}\n\n// appendSfixed32 wire encodes a int32 pointer as a Sfixed32.\nfunc appendSfixed32(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Int32()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendFixed32(b, uint32(v))\n\treturn b, nil\n}\n\n// consumeSfixed32 wire decodes a int32 pointer as a Sfixed32.\nfunc consumeSfixed32(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.Fixed32Type {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed32(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*p.Int32() = int32(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderSfixed32 = pointerCoderFuncs{\n\tsize:      sizeSfixed32,\n\tmarshal:   appendSfixed32,\n\tunmarshal: consumeSfixed32,\n\tmerge:     mergeInt32,\n}\n\n// sizeSfixed32NoZero returns the size of wire encoding a int32 pointer as a Sfixed32.\n// The zero value is not encoded.\nfunc sizeSfixed32NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Int32()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn f.tagsize + protowire.SizeFixed32()\n}\n\n// appendSfixed32NoZero wire encodes a int32 pointer as a Sfixed32.\n// The zero value is not encoded.\nfunc appendSfixed32NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Int32()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendFixed32(b, uint32(v))\n\treturn b, nil\n}\n\nvar coderSfixed32NoZero = pointerCoderFuncs{\n\tsize:      sizeSfixed32NoZero,\n\tmarshal:   appendSfixed32NoZero,\n\tunmarshal: consumeSfixed32,\n\tmerge:     mergeInt32NoZero,\n}\n\n// sizeSfixed32Ptr returns the size of wire encoding a *int32 pointer as a Sfixed32.\n// It panics if the pointer is nil.\nfunc sizeSfixed32Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\treturn f.tagsize + protowire.SizeFixed32()\n}\n\n// appendSfixed32Ptr wire encodes a *int32 pointer as a Sfixed32.\n// It panics if the pointer is nil.\nfunc appendSfixed32Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := **p.Int32Ptr()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendFixed32(b, uint32(v))\n\treturn b, nil\n}\n\n// consumeSfixed32Ptr wire decodes a *int32 pointer as a Sfixed32.\nfunc consumeSfixed32Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.Fixed32Type {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed32(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tvp := p.Int32Ptr()\n\tif *vp == nil {\n\t\t*vp = new(int32)\n\t}\n\t**vp = int32(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderSfixed32Ptr = pointerCoderFuncs{\n\tsize:      sizeSfixed32Ptr,\n\tmarshal:   appendSfixed32Ptr,\n\tunmarshal: consumeSfixed32Ptr,\n\tmerge:     mergeInt32Ptr,\n}\n\n// sizeSfixed32Slice returns the size of wire encoding a []int32 pointer as a repeated Sfixed32.\nfunc sizeSfixed32Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Int32Slice()\n\tsize = len(s) * (f.tagsize + protowire.SizeFixed32())\n\treturn size\n}\n\n// appendSfixed32Slice encodes a []int32 pointer as a repeated Sfixed32.\nfunc appendSfixed32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Int32Slice()\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, f.wiretag)\n\t\tb = protowire.AppendFixed32(b, uint32(v))\n\t}\n\treturn b, nil\n}\n\n// consumeSfixed32Slice wire decodes a []int32 pointer as a repeated Sfixed32.\nfunc consumeSfixed32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tsp := p.Int32Slice()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn out, errDecode\n\t\t}\n\t\tcount := len(b) / protowire.SizeFixed32()\n\t\tif count > 0 {\n\t\t\tp.growInt32Slice(count)\n\t\t}\n\t\ts := *sp\n\t\tfor len(b) > 0 {\n\t\t\tv, n := protowire.ConsumeFixed32(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn out, errDecode\n\t\t\t}\n\t\t\ts = append(s, int32(v))\n\t\t\tb = b[n:]\n\t\t}\n\t\t*sp = s\n\t\tout.n = n\n\t\treturn out, nil\n\t}\n\tif wtyp != protowire.Fixed32Type {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed32(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*sp = append(*sp, int32(v))\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderSfixed32Slice = pointerCoderFuncs{\n\tsize:      sizeSfixed32Slice,\n\tmarshal:   appendSfixed32Slice,\n\tunmarshal: consumeSfixed32Slice,\n\tmerge:     mergeInt32Slice,\n}\n\n// sizeSfixed32PackedSlice returns the size of wire encoding a []int32 pointer as a packed repeated Sfixed32.\nfunc sizeSfixed32PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Int32Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := len(s) * protowire.SizeFixed32()\n\treturn f.tagsize + protowire.SizeBytes(n)\n}\n\n// appendSfixed32PackedSlice encodes a []int32 pointer as a packed repeated Sfixed32.\nfunc appendSfixed32PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Int32Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tn := len(s) * protowire.SizeFixed32()\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = protowire.AppendFixed32(b, uint32(v))\n\t}\n\treturn b, nil\n}\n\nvar coderSfixed32PackedSlice = pointerCoderFuncs{\n\tsize:      sizeSfixed32PackedSlice,\n\tmarshal:   appendSfixed32PackedSlice,\n\tunmarshal: consumeSfixed32Slice,\n\tmerge:     mergeInt32Slice,\n}\n\n// sizeSfixed32Value returns the size of wire encoding a int32 value as a Sfixed32.\nfunc sizeSfixed32Value(v protoreflect.Value, tagsize int, opts marshalOptions) int {\n\treturn tagsize + protowire.SizeFixed32()\n}\n\n// appendSfixed32Value encodes a int32 value as a Sfixed32.\nfunc appendSfixed32Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tb = protowire.AppendVarint(b, wiretag)\n\tb = protowire.AppendFixed32(b, uint32(v.Int()))\n\treturn b, nil\n}\n\n// consumeSfixed32Value decodes a int32 value as a Sfixed32.\nfunc consumeSfixed32Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tif wtyp != protowire.Fixed32Type {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed32(b)\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tout.n = n\n\treturn protoreflect.ValueOfInt32(int32(v)), out, nil\n}\n\nvar coderSfixed32Value = valueCoderFuncs{\n\tsize:      sizeSfixed32Value,\n\tmarshal:   appendSfixed32Value,\n\tunmarshal: consumeSfixed32Value,\n\tmerge:     mergeScalarValue,\n}\n\n// sizeSfixed32SliceValue returns the size of wire encoding a []int32 value as a repeated Sfixed32.\nfunc sizeSfixed32SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tsize = list.Len() * (tagsize + protowire.SizeFixed32())\n\treturn size\n}\n\n// appendSfixed32SliceValue encodes a []int32 value as a repeated Sfixed32.\nfunc appendSfixed32SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, wiretag)\n\t\tb = protowire.AppendFixed32(b, uint32(v.Int()))\n\t}\n\treturn b, nil\n}\n\n// consumeSfixed32SliceValue wire decodes a []int32 value as a repeated Sfixed32.\nfunc consumeSfixed32SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tlist := listv.List()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t}\n\t\tfor len(b) > 0 {\n\t\t\tv, n := protowire.ConsumeFixed32(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t\t}\n\t\t\tlist.Append(protoreflect.ValueOfInt32(int32(v)))\n\t\t\tb = b[n:]\n\t\t}\n\t\tout.n = n\n\t\treturn listv, out, nil\n\t}\n\tif wtyp != protowire.Fixed32Type {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed32(b)\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tlist.Append(protoreflect.ValueOfInt32(int32(v)))\n\tout.n = n\n\treturn listv, out, nil\n}\n\nvar coderSfixed32SliceValue = valueCoderFuncs{\n\tsize:      sizeSfixed32SliceValue,\n\tmarshal:   appendSfixed32SliceValue,\n\tunmarshal: consumeSfixed32SliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeSfixed32PackedSliceValue returns the size of wire encoding a []int32 value as a packed repeated Sfixed32.\nfunc sizeSfixed32PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn 0\n\t}\n\tn := llen * protowire.SizeFixed32()\n\treturn tagsize + protowire.SizeBytes(n)\n}\n\n// appendSfixed32PackedSliceValue encodes a []int32 value as a packed repeated Sfixed32.\nfunc appendSfixed32PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, wiretag)\n\tn := llen * protowire.SizeFixed32()\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendFixed32(b, uint32(v.Int()))\n\t}\n\treturn b, nil\n}\n\nvar coderSfixed32PackedSliceValue = valueCoderFuncs{\n\tsize:      sizeSfixed32PackedSliceValue,\n\tmarshal:   appendSfixed32PackedSliceValue,\n\tunmarshal: consumeSfixed32SliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeFixed32 returns the size of wire encoding a uint32 pointer as a Fixed32.\nfunc sizeFixed32(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\n\treturn f.tagsize + protowire.SizeFixed32()\n}\n\n// appendFixed32 wire encodes a uint32 pointer as a Fixed32.\nfunc appendFixed32(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Uint32()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendFixed32(b, v)\n\treturn b, nil\n}\n\n// consumeFixed32 wire decodes a uint32 pointer as a Fixed32.\nfunc consumeFixed32(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.Fixed32Type {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed32(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*p.Uint32() = v\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderFixed32 = pointerCoderFuncs{\n\tsize:      sizeFixed32,\n\tmarshal:   appendFixed32,\n\tunmarshal: consumeFixed32,\n\tmerge:     mergeUint32,\n}\n\n// sizeFixed32NoZero returns the size of wire encoding a uint32 pointer as a Fixed32.\n// The zero value is not encoded.\nfunc sizeFixed32NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Uint32()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn f.tagsize + protowire.SizeFixed32()\n}\n\n// appendFixed32NoZero wire encodes a uint32 pointer as a Fixed32.\n// The zero value is not encoded.\nfunc appendFixed32NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Uint32()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendFixed32(b, v)\n\treturn b, nil\n}\n\nvar coderFixed32NoZero = pointerCoderFuncs{\n\tsize:      sizeFixed32NoZero,\n\tmarshal:   appendFixed32NoZero,\n\tunmarshal: consumeFixed32,\n\tmerge:     mergeUint32NoZero,\n}\n\n// sizeFixed32Ptr returns the size of wire encoding a *uint32 pointer as a Fixed32.\n// It panics if the pointer is nil.\nfunc sizeFixed32Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\treturn f.tagsize + protowire.SizeFixed32()\n}\n\n// appendFixed32Ptr wire encodes a *uint32 pointer as a Fixed32.\n// It panics if the pointer is nil.\nfunc appendFixed32Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := **p.Uint32Ptr()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendFixed32(b, v)\n\treturn b, nil\n}\n\n// consumeFixed32Ptr wire decodes a *uint32 pointer as a Fixed32.\nfunc consumeFixed32Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.Fixed32Type {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed32(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tvp := p.Uint32Ptr()\n\tif *vp == nil {\n\t\t*vp = new(uint32)\n\t}\n\t**vp = v\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderFixed32Ptr = pointerCoderFuncs{\n\tsize:      sizeFixed32Ptr,\n\tmarshal:   appendFixed32Ptr,\n\tunmarshal: consumeFixed32Ptr,\n\tmerge:     mergeUint32Ptr,\n}\n\n// sizeFixed32Slice returns the size of wire encoding a []uint32 pointer as a repeated Fixed32.\nfunc sizeFixed32Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Uint32Slice()\n\tsize = len(s) * (f.tagsize + protowire.SizeFixed32())\n\treturn size\n}\n\n// appendFixed32Slice encodes a []uint32 pointer as a repeated Fixed32.\nfunc appendFixed32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Uint32Slice()\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, f.wiretag)\n\t\tb = protowire.AppendFixed32(b, v)\n\t}\n\treturn b, nil\n}\n\n// consumeFixed32Slice wire decodes a []uint32 pointer as a repeated Fixed32.\nfunc consumeFixed32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tsp := p.Uint32Slice()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn out, errDecode\n\t\t}\n\t\tcount := len(b) / protowire.SizeFixed32()\n\t\tif count > 0 {\n\t\t\tp.growUint32Slice(count)\n\t\t}\n\t\ts := *sp\n\t\tfor len(b) > 0 {\n\t\t\tv, n := protowire.ConsumeFixed32(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn out, errDecode\n\t\t\t}\n\t\t\ts = append(s, v)\n\t\t\tb = b[n:]\n\t\t}\n\t\t*sp = s\n\t\tout.n = n\n\t\treturn out, nil\n\t}\n\tif wtyp != protowire.Fixed32Type {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed32(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*sp = append(*sp, v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderFixed32Slice = pointerCoderFuncs{\n\tsize:      sizeFixed32Slice,\n\tmarshal:   appendFixed32Slice,\n\tunmarshal: consumeFixed32Slice,\n\tmerge:     mergeUint32Slice,\n}\n\n// sizeFixed32PackedSlice returns the size of wire encoding a []uint32 pointer as a packed repeated Fixed32.\nfunc sizeFixed32PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Uint32Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := len(s) * protowire.SizeFixed32()\n\treturn f.tagsize + protowire.SizeBytes(n)\n}\n\n// appendFixed32PackedSlice encodes a []uint32 pointer as a packed repeated Fixed32.\nfunc appendFixed32PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Uint32Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tn := len(s) * protowire.SizeFixed32()\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = protowire.AppendFixed32(b, v)\n\t}\n\treturn b, nil\n}\n\nvar coderFixed32PackedSlice = pointerCoderFuncs{\n\tsize:      sizeFixed32PackedSlice,\n\tmarshal:   appendFixed32PackedSlice,\n\tunmarshal: consumeFixed32Slice,\n\tmerge:     mergeUint32Slice,\n}\n\n// sizeFixed32Value returns the size of wire encoding a uint32 value as a Fixed32.\nfunc sizeFixed32Value(v protoreflect.Value, tagsize int, opts marshalOptions) int {\n\treturn tagsize + protowire.SizeFixed32()\n}\n\n// appendFixed32Value encodes a uint32 value as a Fixed32.\nfunc appendFixed32Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tb = protowire.AppendVarint(b, wiretag)\n\tb = protowire.AppendFixed32(b, uint32(v.Uint()))\n\treturn b, nil\n}\n\n// consumeFixed32Value decodes a uint32 value as a Fixed32.\nfunc consumeFixed32Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tif wtyp != protowire.Fixed32Type {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed32(b)\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tout.n = n\n\treturn protoreflect.ValueOfUint32(uint32(v)), out, nil\n}\n\nvar coderFixed32Value = valueCoderFuncs{\n\tsize:      sizeFixed32Value,\n\tmarshal:   appendFixed32Value,\n\tunmarshal: consumeFixed32Value,\n\tmerge:     mergeScalarValue,\n}\n\n// sizeFixed32SliceValue returns the size of wire encoding a []uint32 value as a repeated Fixed32.\nfunc sizeFixed32SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tsize = list.Len() * (tagsize + protowire.SizeFixed32())\n\treturn size\n}\n\n// appendFixed32SliceValue encodes a []uint32 value as a repeated Fixed32.\nfunc appendFixed32SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, wiretag)\n\t\tb = protowire.AppendFixed32(b, uint32(v.Uint()))\n\t}\n\treturn b, nil\n}\n\n// consumeFixed32SliceValue wire decodes a []uint32 value as a repeated Fixed32.\nfunc consumeFixed32SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tlist := listv.List()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t}\n\t\tfor len(b) > 0 {\n\t\t\tv, n := protowire.ConsumeFixed32(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t\t}\n\t\t\tlist.Append(protoreflect.ValueOfUint32(uint32(v)))\n\t\t\tb = b[n:]\n\t\t}\n\t\tout.n = n\n\t\treturn listv, out, nil\n\t}\n\tif wtyp != protowire.Fixed32Type {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed32(b)\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tlist.Append(protoreflect.ValueOfUint32(uint32(v)))\n\tout.n = n\n\treturn listv, out, nil\n}\n\nvar coderFixed32SliceValue = valueCoderFuncs{\n\tsize:      sizeFixed32SliceValue,\n\tmarshal:   appendFixed32SliceValue,\n\tunmarshal: consumeFixed32SliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeFixed32PackedSliceValue returns the size of wire encoding a []uint32 value as a packed repeated Fixed32.\nfunc sizeFixed32PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn 0\n\t}\n\tn := llen * protowire.SizeFixed32()\n\treturn tagsize + protowire.SizeBytes(n)\n}\n\n// appendFixed32PackedSliceValue encodes a []uint32 value as a packed repeated Fixed32.\nfunc appendFixed32PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, wiretag)\n\tn := llen * protowire.SizeFixed32()\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendFixed32(b, uint32(v.Uint()))\n\t}\n\treturn b, nil\n}\n\nvar coderFixed32PackedSliceValue = valueCoderFuncs{\n\tsize:      sizeFixed32PackedSliceValue,\n\tmarshal:   appendFixed32PackedSliceValue,\n\tunmarshal: consumeFixed32SliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeFloat returns the size of wire encoding a float32 pointer as a Float.\nfunc sizeFloat(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\n\treturn f.tagsize + protowire.SizeFixed32()\n}\n\n// appendFloat wire encodes a float32 pointer as a Float.\nfunc appendFloat(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Float32()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendFixed32(b, math.Float32bits(v))\n\treturn b, nil\n}\n\n// consumeFloat wire decodes a float32 pointer as a Float.\nfunc consumeFloat(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.Fixed32Type {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed32(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*p.Float32() = math.Float32frombits(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderFloat = pointerCoderFuncs{\n\tsize:      sizeFloat,\n\tmarshal:   appendFloat,\n\tunmarshal: consumeFloat,\n\tmerge:     mergeFloat32,\n}\n\n// sizeFloatNoZero returns the size of wire encoding a float32 pointer as a Float.\n// The zero value is not encoded.\nfunc sizeFloatNoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Float32()\n\tif v == 0 && !math.Signbit(float64(v)) {\n\t\treturn 0\n\t}\n\treturn f.tagsize + protowire.SizeFixed32()\n}\n\n// appendFloatNoZero wire encodes a float32 pointer as a Float.\n// The zero value is not encoded.\nfunc appendFloatNoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Float32()\n\tif v == 0 && !math.Signbit(float64(v)) {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendFixed32(b, math.Float32bits(v))\n\treturn b, nil\n}\n\nvar coderFloatNoZero = pointerCoderFuncs{\n\tsize:      sizeFloatNoZero,\n\tmarshal:   appendFloatNoZero,\n\tunmarshal: consumeFloat,\n\tmerge:     mergeFloat32NoZero,\n}\n\n// sizeFloatPtr returns the size of wire encoding a *float32 pointer as a Float.\n// It panics if the pointer is nil.\nfunc sizeFloatPtr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\treturn f.tagsize + protowire.SizeFixed32()\n}\n\n// appendFloatPtr wire encodes a *float32 pointer as a Float.\n// It panics if the pointer is nil.\nfunc appendFloatPtr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := **p.Float32Ptr()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendFixed32(b, math.Float32bits(v))\n\treturn b, nil\n}\n\n// consumeFloatPtr wire decodes a *float32 pointer as a Float.\nfunc consumeFloatPtr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.Fixed32Type {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed32(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tvp := p.Float32Ptr()\n\tif *vp == nil {\n\t\t*vp = new(float32)\n\t}\n\t**vp = math.Float32frombits(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderFloatPtr = pointerCoderFuncs{\n\tsize:      sizeFloatPtr,\n\tmarshal:   appendFloatPtr,\n\tunmarshal: consumeFloatPtr,\n\tmerge:     mergeFloat32Ptr,\n}\n\n// sizeFloatSlice returns the size of wire encoding a []float32 pointer as a repeated Float.\nfunc sizeFloatSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Float32Slice()\n\tsize = len(s) * (f.tagsize + protowire.SizeFixed32())\n\treturn size\n}\n\n// appendFloatSlice encodes a []float32 pointer as a repeated Float.\nfunc appendFloatSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Float32Slice()\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, f.wiretag)\n\t\tb = protowire.AppendFixed32(b, math.Float32bits(v))\n\t}\n\treturn b, nil\n}\n\n// consumeFloatSlice wire decodes a []float32 pointer as a repeated Float.\nfunc consumeFloatSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tsp := p.Float32Slice()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn out, errDecode\n\t\t}\n\t\tcount := len(b) / protowire.SizeFixed32()\n\t\tif count > 0 {\n\t\t\tp.growFloat32Slice(count)\n\t\t}\n\t\ts := *sp\n\t\tfor len(b) > 0 {\n\t\t\tv, n := protowire.ConsumeFixed32(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn out, errDecode\n\t\t\t}\n\t\t\ts = append(s, math.Float32frombits(v))\n\t\t\tb = b[n:]\n\t\t}\n\t\t*sp = s\n\t\tout.n = n\n\t\treturn out, nil\n\t}\n\tif wtyp != protowire.Fixed32Type {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed32(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*sp = append(*sp, math.Float32frombits(v))\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderFloatSlice = pointerCoderFuncs{\n\tsize:      sizeFloatSlice,\n\tmarshal:   appendFloatSlice,\n\tunmarshal: consumeFloatSlice,\n\tmerge:     mergeFloat32Slice,\n}\n\n// sizeFloatPackedSlice returns the size of wire encoding a []float32 pointer as a packed repeated Float.\nfunc sizeFloatPackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Float32Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := len(s) * protowire.SizeFixed32()\n\treturn f.tagsize + protowire.SizeBytes(n)\n}\n\n// appendFloatPackedSlice encodes a []float32 pointer as a packed repeated Float.\nfunc appendFloatPackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Float32Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tn := len(s) * protowire.SizeFixed32()\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = protowire.AppendFixed32(b, math.Float32bits(v))\n\t}\n\treturn b, nil\n}\n\nvar coderFloatPackedSlice = pointerCoderFuncs{\n\tsize:      sizeFloatPackedSlice,\n\tmarshal:   appendFloatPackedSlice,\n\tunmarshal: consumeFloatSlice,\n\tmerge:     mergeFloat32Slice,\n}\n\n// sizeFloatValue returns the size of wire encoding a float32 value as a Float.\nfunc sizeFloatValue(v protoreflect.Value, tagsize int, opts marshalOptions) int {\n\treturn tagsize + protowire.SizeFixed32()\n}\n\n// appendFloatValue encodes a float32 value as a Float.\nfunc appendFloatValue(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tb = protowire.AppendVarint(b, wiretag)\n\tb = protowire.AppendFixed32(b, math.Float32bits(float32(v.Float())))\n\treturn b, nil\n}\n\n// consumeFloatValue decodes a float32 value as a Float.\nfunc consumeFloatValue(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tif wtyp != protowire.Fixed32Type {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed32(b)\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tout.n = n\n\treturn protoreflect.ValueOfFloat32(math.Float32frombits(uint32(v))), out, nil\n}\n\nvar coderFloatValue = valueCoderFuncs{\n\tsize:      sizeFloatValue,\n\tmarshal:   appendFloatValue,\n\tunmarshal: consumeFloatValue,\n\tmerge:     mergeScalarValue,\n}\n\n// sizeFloatSliceValue returns the size of wire encoding a []float32 value as a repeated Float.\nfunc sizeFloatSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tsize = list.Len() * (tagsize + protowire.SizeFixed32())\n\treturn size\n}\n\n// appendFloatSliceValue encodes a []float32 value as a repeated Float.\nfunc appendFloatSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, wiretag)\n\t\tb = protowire.AppendFixed32(b, math.Float32bits(float32(v.Float())))\n\t}\n\treturn b, nil\n}\n\n// consumeFloatSliceValue wire decodes a []float32 value as a repeated Float.\nfunc consumeFloatSliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tlist := listv.List()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t}\n\t\tfor len(b) > 0 {\n\t\t\tv, n := protowire.ConsumeFixed32(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t\t}\n\t\t\tlist.Append(protoreflect.ValueOfFloat32(math.Float32frombits(uint32(v))))\n\t\t\tb = b[n:]\n\t\t}\n\t\tout.n = n\n\t\treturn listv, out, nil\n\t}\n\tif wtyp != protowire.Fixed32Type {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed32(b)\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tlist.Append(protoreflect.ValueOfFloat32(math.Float32frombits(uint32(v))))\n\tout.n = n\n\treturn listv, out, nil\n}\n\nvar coderFloatSliceValue = valueCoderFuncs{\n\tsize:      sizeFloatSliceValue,\n\tmarshal:   appendFloatSliceValue,\n\tunmarshal: consumeFloatSliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeFloatPackedSliceValue returns the size of wire encoding a []float32 value as a packed repeated Float.\nfunc sizeFloatPackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn 0\n\t}\n\tn := llen * protowire.SizeFixed32()\n\treturn tagsize + protowire.SizeBytes(n)\n}\n\n// appendFloatPackedSliceValue encodes a []float32 value as a packed repeated Float.\nfunc appendFloatPackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, wiretag)\n\tn := llen * protowire.SizeFixed32()\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendFixed32(b, math.Float32bits(float32(v.Float())))\n\t}\n\treturn b, nil\n}\n\nvar coderFloatPackedSliceValue = valueCoderFuncs{\n\tsize:      sizeFloatPackedSliceValue,\n\tmarshal:   appendFloatPackedSliceValue,\n\tunmarshal: consumeFloatSliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeSfixed64 returns the size of wire encoding a int64 pointer as a Sfixed64.\nfunc sizeSfixed64(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\n\treturn f.tagsize + protowire.SizeFixed64()\n}\n\n// appendSfixed64 wire encodes a int64 pointer as a Sfixed64.\nfunc appendSfixed64(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Int64()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendFixed64(b, uint64(v))\n\treturn b, nil\n}\n\n// consumeSfixed64 wire decodes a int64 pointer as a Sfixed64.\nfunc consumeSfixed64(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.Fixed64Type {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed64(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*p.Int64() = int64(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderSfixed64 = pointerCoderFuncs{\n\tsize:      sizeSfixed64,\n\tmarshal:   appendSfixed64,\n\tunmarshal: consumeSfixed64,\n\tmerge:     mergeInt64,\n}\n\n// sizeSfixed64NoZero returns the size of wire encoding a int64 pointer as a Sfixed64.\n// The zero value is not encoded.\nfunc sizeSfixed64NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Int64()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn f.tagsize + protowire.SizeFixed64()\n}\n\n// appendSfixed64NoZero wire encodes a int64 pointer as a Sfixed64.\n// The zero value is not encoded.\nfunc appendSfixed64NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Int64()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendFixed64(b, uint64(v))\n\treturn b, nil\n}\n\nvar coderSfixed64NoZero = pointerCoderFuncs{\n\tsize:      sizeSfixed64NoZero,\n\tmarshal:   appendSfixed64NoZero,\n\tunmarshal: consumeSfixed64,\n\tmerge:     mergeInt64NoZero,\n}\n\n// sizeSfixed64Ptr returns the size of wire encoding a *int64 pointer as a Sfixed64.\n// It panics if the pointer is nil.\nfunc sizeSfixed64Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\treturn f.tagsize + protowire.SizeFixed64()\n}\n\n// appendSfixed64Ptr wire encodes a *int64 pointer as a Sfixed64.\n// It panics if the pointer is nil.\nfunc appendSfixed64Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := **p.Int64Ptr()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendFixed64(b, uint64(v))\n\treturn b, nil\n}\n\n// consumeSfixed64Ptr wire decodes a *int64 pointer as a Sfixed64.\nfunc consumeSfixed64Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.Fixed64Type {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed64(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tvp := p.Int64Ptr()\n\tif *vp == nil {\n\t\t*vp = new(int64)\n\t}\n\t**vp = int64(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderSfixed64Ptr = pointerCoderFuncs{\n\tsize:      sizeSfixed64Ptr,\n\tmarshal:   appendSfixed64Ptr,\n\tunmarshal: consumeSfixed64Ptr,\n\tmerge:     mergeInt64Ptr,\n}\n\n// sizeSfixed64Slice returns the size of wire encoding a []int64 pointer as a repeated Sfixed64.\nfunc sizeSfixed64Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Int64Slice()\n\tsize = len(s) * (f.tagsize + protowire.SizeFixed64())\n\treturn size\n}\n\n// appendSfixed64Slice encodes a []int64 pointer as a repeated Sfixed64.\nfunc appendSfixed64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Int64Slice()\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, f.wiretag)\n\t\tb = protowire.AppendFixed64(b, uint64(v))\n\t}\n\treturn b, nil\n}\n\n// consumeSfixed64Slice wire decodes a []int64 pointer as a repeated Sfixed64.\nfunc consumeSfixed64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tsp := p.Int64Slice()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn out, errDecode\n\t\t}\n\t\tcount := len(b) / protowire.SizeFixed64()\n\t\tif count > 0 {\n\t\t\tp.growInt64Slice(count)\n\t\t}\n\t\ts := *sp\n\t\tfor len(b) > 0 {\n\t\t\tv, n := protowire.ConsumeFixed64(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn out, errDecode\n\t\t\t}\n\t\t\ts = append(s, int64(v))\n\t\t\tb = b[n:]\n\t\t}\n\t\t*sp = s\n\t\tout.n = n\n\t\treturn out, nil\n\t}\n\tif wtyp != protowire.Fixed64Type {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed64(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*sp = append(*sp, int64(v))\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderSfixed64Slice = pointerCoderFuncs{\n\tsize:      sizeSfixed64Slice,\n\tmarshal:   appendSfixed64Slice,\n\tunmarshal: consumeSfixed64Slice,\n\tmerge:     mergeInt64Slice,\n}\n\n// sizeSfixed64PackedSlice returns the size of wire encoding a []int64 pointer as a packed repeated Sfixed64.\nfunc sizeSfixed64PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Int64Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := len(s) * protowire.SizeFixed64()\n\treturn f.tagsize + protowire.SizeBytes(n)\n}\n\n// appendSfixed64PackedSlice encodes a []int64 pointer as a packed repeated Sfixed64.\nfunc appendSfixed64PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Int64Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tn := len(s) * protowire.SizeFixed64()\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = protowire.AppendFixed64(b, uint64(v))\n\t}\n\treturn b, nil\n}\n\nvar coderSfixed64PackedSlice = pointerCoderFuncs{\n\tsize:      sizeSfixed64PackedSlice,\n\tmarshal:   appendSfixed64PackedSlice,\n\tunmarshal: consumeSfixed64Slice,\n\tmerge:     mergeInt64Slice,\n}\n\n// sizeSfixed64Value returns the size of wire encoding a int64 value as a Sfixed64.\nfunc sizeSfixed64Value(v protoreflect.Value, tagsize int, opts marshalOptions) int {\n\treturn tagsize + protowire.SizeFixed64()\n}\n\n// appendSfixed64Value encodes a int64 value as a Sfixed64.\nfunc appendSfixed64Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tb = protowire.AppendVarint(b, wiretag)\n\tb = protowire.AppendFixed64(b, uint64(v.Int()))\n\treturn b, nil\n}\n\n// consumeSfixed64Value decodes a int64 value as a Sfixed64.\nfunc consumeSfixed64Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tif wtyp != protowire.Fixed64Type {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed64(b)\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tout.n = n\n\treturn protoreflect.ValueOfInt64(int64(v)), out, nil\n}\n\nvar coderSfixed64Value = valueCoderFuncs{\n\tsize:      sizeSfixed64Value,\n\tmarshal:   appendSfixed64Value,\n\tunmarshal: consumeSfixed64Value,\n\tmerge:     mergeScalarValue,\n}\n\n// sizeSfixed64SliceValue returns the size of wire encoding a []int64 value as a repeated Sfixed64.\nfunc sizeSfixed64SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tsize = list.Len() * (tagsize + protowire.SizeFixed64())\n\treturn size\n}\n\n// appendSfixed64SliceValue encodes a []int64 value as a repeated Sfixed64.\nfunc appendSfixed64SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, wiretag)\n\t\tb = protowire.AppendFixed64(b, uint64(v.Int()))\n\t}\n\treturn b, nil\n}\n\n// consumeSfixed64SliceValue wire decodes a []int64 value as a repeated Sfixed64.\nfunc consumeSfixed64SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tlist := listv.List()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t}\n\t\tfor len(b) > 0 {\n\t\t\tv, n := protowire.ConsumeFixed64(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t\t}\n\t\t\tlist.Append(protoreflect.ValueOfInt64(int64(v)))\n\t\t\tb = b[n:]\n\t\t}\n\t\tout.n = n\n\t\treturn listv, out, nil\n\t}\n\tif wtyp != protowire.Fixed64Type {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed64(b)\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tlist.Append(protoreflect.ValueOfInt64(int64(v)))\n\tout.n = n\n\treturn listv, out, nil\n}\n\nvar coderSfixed64SliceValue = valueCoderFuncs{\n\tsize:      sizeSfixed64SliceValue,\n\tmarshal:   appendSfixed64SliceValue,\n\tunmarshal: consumeSfixed64SliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeSfixed64PackedSliceValue returns the size of wire encoding a []int64 value as a packed repeated Sfixed64.\nfunc sizeSfixed64PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn 0\n\t}\n\tn := llen * protowire.SizeFixed64()\n\treturn tagsize + protowire.SizeBytes(n)\n}\n\n// appendSfixed64PackedSliceValue encodes a []int64 value as a packed repeated Sfixed64.\nfunc appendSfixed64PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, wiretag)\n\tn := llen * protowire.SizeFixed64()\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendFixed64(b, uint64(v.Int()))\n\t}\n\treturn b, nil\n}\n\nvar coderSfixed64PackedSliceValue = valueCoderFuncs{\n\tsize:      sizeSfixed64PackedSliceValue,\n\tmarshal:   appendSfixed64PackedSliceValue,\n\tunmarshal: consumeSfixed64SliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeFixed64 returns the size of wire encoding a uint64 pointer as a Fixed64.\nfunc sizeFixed64(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\n\treturn f.tagsize + protowire.SizeFixed64()\n}\n\n// appendFixed64 wire encodes a uint64 pointer as a Fixed64.\nfunc appendFixed64(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Uint64()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendFixed64(b, v)\n\treturn b, nil\n}\n\n// consumeFixed64 wire decodes a uint64 pointer as a Fixed64.\nfunc consumeFixed64(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.Fixed64Type {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed64(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*p.Uint64() = v\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderFixed64 = pointerCoderFuncs{\n\tsize:      sizeFixed64,\n\tmarshal:   appendFixed64,\n\tunmarshal: consumeFixed64,\n\tmerge:     mergeUint64,\n}\n\n// sizeFixed64NoZero returns the size of wire encoding a uint64 pointer as a Fixed64.\n// The zero value is not encoded.\nfunc sizeFixed64NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Uint64()\n\tif v == 0 {\n\t\treturn 0\n\t}\n\treturn f.tagsize + protowire.SizeFixed64()\n}\n\n// appendFixed64NoZero wire encodes a uint64 pointer as a Fixed64.\n// The zero value is not encoded.\nfunc appendFixed64NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Uint64()\n\tif v == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendFixed64(b, v)\n\treturn b, nil\n}\n\nvar coderFixed64NoZero = pointerCoderFuncs{\n\tsize:      sizeFixed64NoZero,\n\tmarshal:   appendFixed64NoZero,\n\tunmarshal: consumeFixed64,\n\tmerge:     mergeUint64NoZero,\n}\n\n// sizeFixed64Ptr returns the size of wire encoding a *uint64 pointer as a Fixed64.\n// It panics if the pointer is nil.\nfunc sizeFixed64Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\treturn f.tagsize + protowire.SizeFixed64()\n}\n\n// appendFixed64Ptr wire encodes a *uint64 pointer as a Fixed64.\n// It panics if the pointer is nil.\nfunc appendFixed64Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := **p.Uint64Ptr()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendFixed64(b, v)\n\treturn b, nil\n}\n\n// consumeFixed64Ptr wire decodes a *uint64 pointer as a Fixed64.\nfunc consumeFixed64Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.Fixed64Type {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed64(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tvp := p.Uint64Ptr()\n\tif *vp == nil {\n\t\t*vp = new(uint64)\n\t}\n\t**vp = v\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderFixed64Ptr = pointerCoderFuncs{\n\tsize:      sizeFixed64Ptr,\n\tmarshal:   appendFixed64Ptr,\n\tunmarshal: consumeFixed64Ptr,\n\tmerge:     mergeUint64Ptr,\n}\n\n// sizeFixed64Slice returns the size of wire encoding a []uint64 pointer as a repeated Fixed64.\nfunc sizeFixed64Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Uint64Slice()\n\tsize = len(s) * (f.tagsize + protowire.SizeFixed64())\n\treturn size\n}\n\n// appendFixed64Slice encodes a []uint64 pointer as a repeated Fixed64.\nfunc appendFixed64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Uint64Slice()\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, f.wiretag)\n\t\tb = protowire.AppendFixed64(b, v)\n\t}\n\treturn b, nil\n}\n\n// consumeFixed64Slice wire decodes a []uint64 pointer as a repeated Fixed64.\nfunc consumeFixed64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tsp := p.Uint64Slice()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn out, errDecode\n\t\t}\n\t\tcount := len(b) / protowire.SizeFixed64()\n\t\tif count > 0 {\n\t\t\tp.growUint64Slice(count)\n\t\t}\n\t\ts := *sp\n\t\tfor len(b) > 0 {\n\t\t\tv, n := protowire.ConsumeFixed64(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn out, errDecode\n\t\t\t}\n\t\t\ts = append(s, v)\n\t\t\tb = b[n:]\n\t\t}\n\t\t*sp = s\n\t\tout.n = n\n\t\treturn out, nil\n\t}\n\tif wtyp != protowire.Fixed64Type {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed64(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*sp = append(*sp, v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderFixed64Slice = pointerCoderFuncs{\n\tsize:      sizeFixed64Slice,\n\tmarshal:   appendFixed64Slice,\n\tunmarshal: consumeFixed64Slice,\n\tmerge:     mergeUint64Slice,\n}\n\n// sizeFixed64PackedSlice returns the size of wire encoding a []uint64 pointer as a packed repeated Fixed64.\nfunc sizeFixed64PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Uint64Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := len(s) * protowire.SizeFixed64()\n\treturn f.tagsize + protowire.SizeBytes(n)\n}\n\n// appendFixed64PackedSlice encodes a []uint64 pointer as a packed repeated Fixed64.\nfunc appendFixed64PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Uint64Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tn := len(s) * protowire.SizeFixed64()\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = protowire.AppendFixed64(b, v)\n\t}\n\treturn b, nil\n}\n\nvar coderFixed64PackedSlice = pointerCoderFuncs{\n\tsize:      sizeFixed64PackedSlice,\n\tmarshal:   appendFixed64PackedSlice,\n\tunmarshal: consumeFixed64Slice,\n\tmerge:     mergeUint64Slice,\n}\n\n// sizeFixed64Value returns the size of wire encoding a uint64 value as a Fixed64.\nfunc sizeFixed64Value(v protoreflect.Value, tagsize int, opts marshalOptions) int {\n\treturn tagsize + protowire.SizeFixed64()\n}\n\n// appendFixed64Value encodes a uint64 value as a Fixed64.\nfunc appendFixed64Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tb = protowire.AppendVarint(b, wiretag)\n\tb = protowire.AppendFixed64(b, v.Uint())\n\treturn b, nil\n}\n\n// consumeFixed64Value decodes a uint64 value as a Fixed64.\nfunc consumeFixed64Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tif wtyp != protowire.Fixed64Type {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed64(b)\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tout.n = n\n\treturn protoreflect.ValueOfUint64(v), out, nil\n}\n\nvar coderFixed64Value = valueCoderFuncs{\n\tsize:      sizeFixed64Value,\n\tmarshal:   appendFixed64Value,\n\tunmarshal: consumeFixed64Value,\n\tmerge:     mergeScalarValue,\n}\n\n// sizeFixed64SliceValue returns the size of wire encoding a []uint64 value as a repeated Fixed64.\nfunc sizeFixed64SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tsize = list.Len() * (tagsize + protowire.SizeFixed64())\n\treturn size\n}\n\n// appendFixed64SliceValue encodes a []uint64 value as a repeated Fixed64.\nfunc appendFixed64SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, wiretag)\n\t\tb = protowire.AppendFixed64(b, v.Uint())\n\t}\n\treturn b, nil\n}\n\n// consumeFixed64SliceValue wire decodes a []uint64 value as a repeated Fixed64.\nfunc consumeFixed64SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tlist := listv.List()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t}\n\t\tfor len(b) > 0 {\n\t\t\tv, n := protowire.ConsumeFixed64(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t\t}\n\t\t\tlist.Append(protoreflect.ValueOfUint64(v))\n\t\t\tb = b[n:]\n\t\t}\n\t\tout.n = n\n\t\treturn listv, out, nil\n\t}\n\tif wtyp != protowire.Fixed64Type {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed64(b)\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tlist.Append(protoreflect.ValueOfUint64(v))\n\tout.n = n\n\treturn listv, out, nil\n}\n\nvar coderFixed64SliceValue = valueCoderFuncs{\n\tsize:      sizeFixed64SliceValue,\n\tmarshal:   appendFixed64SliceValue,\n\tunmarshal: consumeFixed64SliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeFixed64PackedSliceValue returns the size of wire encoding a []uint64 value as a packed repeated Fixed64.\nfunc sizeFixed64PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn 0\n\t}\n\tn := llen * protowire.SizeFixed64()\n\treturn tagsize + protowire.SizeBytes(n)\n}\n\n// appendFixed64PackedSliceValue encodes a []uint64 value as a packed repeated Fixed64.\nfunc appendFixed64PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, wiretag)\n\tn := llen * protowire.SizeFixed64()\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendFixed64(b, v.Uint())\n\t}\n\treturn b, nil\n}\n\nvar coderFixed64PackedSliceValue = valueCoderFuncs{\n\tsize:      sizeFixed64PackedSliceValue,\n\tmarshal:   appendFixed64PackedSliceValue,\n\tunmarshal: consumeFixed64SliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeDouble returns the size of wire encoding a float64 pointer as a Double.\nfunc sizeDouble(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\n\treturn f.tagsize + protowire.SizeFixed64()\n}\n\n// appendDouble wire encodes a float64 pointer as a Double.\nfunc appendDouble(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Float64()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendFixed64(b, math.Float64bits(v))\n\treturn b, nil\n}\n\n// consumeDouble wire decodes a float64 pointer as a Double.\nfunc consumeDouble(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.Fixed64Type {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed64(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*p.Float64() = math.Float64frombits(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderDouble = pointerCoderFuncs{\n\tsize:      sizeDouble,\n\tmarshal:   appendDouble,\n\tunmarshal: consumeDouble,\n\tmerge:     mergeFloat64,\n}\n\n// sizeDoubleNoZero returns the size of wire encoding a float64 pointer as a Double.\n// The zero value is not encoded.\nfunc sizeDoubleNoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Float64()\n\tif v == 0 && !math.Signbit(float64(v)) {\n\t\treturn 0\n\t}\n\treturn f.tagsize + protowire.SizeFixed64()\n}\n\n// appendDoubleNoZero wire encodes a float64 pointer as a Double.\n// The zero value is not encoded.\nfunc appendDoubleNoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Float64()\n\tif v == 0 && !math.Signbit(float64(v)) {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendFixed64(b, math.Float64bits(v))\n\treturn b, nil\n}\n\nvar coderDoubleNoZero = pointerCoderFuncs{\n\tsize:      sizeDoubleNoZero,\n\tmarshal:   appendDoubleNoZero,\n\tunmarshal: consumeDouble,\n\tmerge:     mergeFloat64NoZero,\n}\n\n// sizeDoublePtr returns the size of wire encoding a *float64 pointer as a Double.\n// It panics if the pointer is nil.\nfunc sizeDoublePtr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\treturn f.tagsize + protowire.SizeFixed64()\n}\n\n// appendDoublePtr wire encodes a *float64 pointer as a Double.\n// It panics if the pointer is nil.\nfunc appendDoublePtr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := **p.Float64Ptr()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendFixed64(b, math.Float64bits(v))\n\treturn b, nil\n}\n\n// consumeDoublePtr wire decodes a *float64 pointer as a Double.\nfunc consumeDoublePtr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.Fixed64Type {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed64(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tvp := p.Float64Ptr()\n\tif *vp == nil {\n\t\t*vp = new(float64)\n\t}\n\t**vp = math.Float64frombits(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderDoublePtr = pointerCoderFuncs{\n\tsize:      sizeDoublePtr,\n\tmarshal:   appendDoublePtr,\n\tunmarshal: consumeDoublePtr,\n\tmerge:     mergeFloat64Ptr,\n}\n\n// sizeDoubleSlice returns the size of wire encoding a []float64 pointer as a repeated Double.\nfunc sizeDoubleSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Float64Slice()\n\tsize = len(s) * (f.tagsize + protowire.SizeFixed64())\n\treturn size\n}\n\n// appendDoubleSlice encodes a []float64 pointer as a repeated Double.\nfunc appendDoubleSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Float64Slice()\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, f.wiretag)\n\t\tb = protowire.AppendFixed64(b, math.Float64bits(v))\n\t}\n\treturn b, nil\n}\n\n// consumeDoubleSlice wire decodes a []float64 pointer as a repeated Double.\nfunc consumeDoubleSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tsp := p.Float64Slice()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn out, errDecode\n\t\t}\n\t\tcount := len(b) / protowire.SizeFixed64()\n\t\tif count > 0 {\n\t\t\tp.growFloat64Slice(count)\n\t\t}\n\t\ts := *sp\n\t\tfor len(b) > 0 {\n\t\t\tv, n := protowire.ConsumeFixed64(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn out, errDecode\n\t\t\t}\n\t\t\ts = append(s, math.Float64frombits(v))\n\t\t\tb = b[n:]\n\t\t}\n\t\t*sp = s\n\t\tout.n = n\n\t\treturn out, nil\n\t}\n\tif wtyp != protowire.Fixed64Type {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed64(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*sp = append(*sp, math.Float64frombits(v))\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderDoubleSlice = pointerCoderFuncs{\n\tsize:      sizeDoubleSlice,\n\tmarshal:   appendDoubleSlice,\n\tunmarshal: consumeDoubleSlice,\n\tmerge:     mergeFloat64Slice,\n}\n\n// sizeDoublePackedSlice returns the size of wire encoding a []float64 pointer as a packed repeated Double.\nfunc sizeDoublePackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.Float64Slice()\n\tif len(s) == 0 {\n\t\treturn 0\n\t}\n\tn := len(s) * protowire.SizeFixed64()\n\treturn f.tagsize + protowire.SizeBytes(n)\n}\n\n// appendDoublePackedSlice encodes a []float64 pointer as a packed repeated Double.\nfunc appendDoublePackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.Float64Slice()\n\tif len(s) == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tn := len(s) * protowire.SizeFixed64()\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor _, v := range s {\n\t\tb = protowire.AppendFixed64(b, math.Float64bits(v))\n\t}\n\treturn b, nil\n}\n\nvar coderDoublePackedSlice = pointerCoderFuncs{\n\tsize:      sizeDoublePackedSlice,\n\tmarshal:   appendDoublePackedSlice,\n\tunmarshal: consumeDoubleSlice,\n\tmerge:     mergeFloat64Slice,\n}\n\n// sizeDoubleValue returns the size of wire encoding a float64 value as a Double.\nfunc sizeDoubleValue(v protoreflect.Value, tagsize int, opts marshalOptions) int {\n\treturn tagsize + protowire.SizeFixed64()\n}\n\n// appendDoubleValue encodes a float64 value as a Double.\nfunc appendDoubleValue(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tb = protowire.AppendVarint(b, wiretag)\n\tb = protowire.AppendFixed64(b, math.Float64bits(v.Float()))\n\treturn b, nil\n}\n\n// consumeDoubleValue decodes a float64 value as a Double.\nfunc consumeDoubleValue(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tif wtyp != protowire.Fixed64Type {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed64(b)\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tout.n = n\n\treturn protoreflect.ValueOfFloat64(math.Float64frombits(v)), out, nil\n}\n\nvar coderDoubleValue = valueCoderFuncs{\n\tsize:      sizeDoubleValue,\n\tmarshal:   appendDoubleValue,\n\tunmarshal: consumeDoubleValue,\n\tmerge:     mergeScalarValue,\n}\n\n// sizeDoubleSliceValue returns the size of wire encoding a []float64 value as a repeated Double.\nfunc sizeDoubleSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tsize = list.Len() * (tagsize + protowire.SizeFixed64())\n\treturn size\n}\n\n// appendDoubleSliceValue encodes a []float64 value as a repeated Double.\nfunc appendDoubleSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, wiretag)\n\t\tb = protowire.AppendFixed64(b, math.Float64bits(v.Float()))\n\t}\n\treturn b, nil\n}\n\n// consumeDoubleSliceValue wire decodes a []float64 value as a repeated Double.\nfunc consumeDoubleSliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tlist := listv.List()\n\tif wtyp == protowire.BytesType {\n\t\tb, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t}\n\t\tfor len(b) > 0 {\n\t\t\tv, n := protowire.ConsumeFixed64(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn protoreflect.Value{}, out, errDecode\n\t\t\t}\n\t\t\tlist.Append(protoreflect.ValueOfFloat64(math.Float64frombits(v)))\n\t\t\tb = b[n:]\n\t\t}\n\t\tout.n = n\n\t\treturn listv, out, nil\n\t}\n\tif wtyp != protowire.Fixed64Type {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tv, n := protowire.ConsumeFixed64(b)\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tlist.Append(protoreflect.ValueOfFloat64(math.Float64frombits(v)))\n\tout.n = n\n\treturn listv, out, nil\n}\n\nvar coderDoubleSliceValue = valueCoderFuncs{\n\tsize:      sizeDoubleSliceValue,\n\tmarshal:   appendDoubleSliceValue,\n\tunmarshal: consumeDoubleSliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeDoublePackedSliceValue returns the size of wire encoding a []float64 value as a packed repeated Double.\nfunc sizeDoublePackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn 0\n\t}\n\tn := llen * protowire.SizeFixed64()\n\treturn tagsize + protowire.SizeBytes(n)\n}\n\n// appendDoublePackedSliceValue encodes a []float64 value as a packed repeated Double.\nfunc appendDoublePackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tllen := list.Len()\n\tif llen == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, wiretag)\n\tn := llen * protowire.SizeFixed64()\n\tb = protowire.AppendVarint(b, uint64(n))\n\tfor i := 0; i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendFixed64(b, math.Float64bits(v.Float()))\n\t}\n\treturn b, nil\n}\n\nvar coderDoublePackedSliceValue = valueCoderFuncs{\n\tsize:      sizeDoublePackedSliceValue,\n\tmarshal:   appendDoublePackedSliceValue,\n\tunmarshal: consumeDoubleSliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeString returns the size of wire encoding a string pointer as a String.\nfunc sizeString(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.String()\n\treturn f.tagsize + protowire.SizeBytes(len(v))\n}\n\n// appendString wire encodes a string pointer as a String.\nfunc appendString(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.String()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendString(b, v)\n\treturn b, nil\n}\n\n// consumeString wire decodes a string pointer as a String.\nfunc consumeString(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.BytesType {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*p.String() = string(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderString = pointerCoderFuncs{\n\tsize:      sizeString,\n\tmarshal:   appendString,\n\tunmarshal: consumeString,\n\tmerge:     mergeString,\n}\n\n// appendStringValidateUTF8 wire encodes a string pointer as a String.\nfunc appendStringValidateUTF8(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.String()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendString(b, v)\n\tif !utf8.ValidString(v) {\n\t\treturn b, errInvalidUTF8{}\n\t}\n\treturn b, nil\n}\n\n// consumeStringValidateUTF8 wire decodes a string pointer as a String.\nfunc consumeStringValidateUTF8(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.BytesType {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tif !utf8.Valid(v) {\n\t\treturn out, errInvalidUTF8{}\n\t}\n\t*p.String() = string(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderStringValidateUTF8 = pointerCoderFuncs{\n\tsize:      sizeString,\n\tmarshal:   appendStringValidateUTF8,\n\tunmarshal: consumeStringValidateUTF8,\n\tmerge:     mergeString,\n}\n\n// sizeStringNoZero returns the size of wire encoding a string pointer as a String.\n// The zero value is not encoded.\nfunc sizeStringNoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.String()\n\tif len(v) == 0 {\n\t\treturn 0\n\t}\n\treturn f.tagsize + protowire.SizeBytes(len(v))\n}\n\n// appendStringNoZero wire encodes a string pointer as a String.\n// The zero value is not encoded.\nfunc appendStringNoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.String()\n\tif len(v) == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendString(b, v)\n\treturn b, nil\n}\n\nvar coderStringNoZero = pointerCoderFuncs{\n\tsize:      sizeStringNoZero,\n\tmarshal:   appendStringNoZero,\n\tunmarshal: consumeString,\n\tmerge:     mergeStringNoZero,\n}\n\n// appendStringNoZeroValidateUTF8 wire encodes a string pointer as a String.\n// The zero value is not encoded.\nfunc appendStringNoZeroValidateUTF8(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.String()\n\tif len(v) == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendString(b, v)\n\tif !utf8.ValidString(v) {\n\t\treturn b, errInvalidUTF8{}\n\t}\n\treturn b, nil\n}\n\nvar coderStringNoZeroValidateUTF8 = pointerCoderFuncs{\n\tsize:      sizeStringNoZero,\n\tmarshal:   appendStringNoZeroValidateUTF8,\n\tunmarshal: consumeStringValidateUTF8,\n\tmerge:     mergeStringNoZero,\n}\n\n// sizeStringPtr returns the size of wire encoding a *string pointer as a String.\n// It panics if the pointer is nil.\nfunc sizeStringPtr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := **p.StringPtr()\n\treturn f.tagsize + protowire.SizeBytes(len(v))\n}\n\n// appendStringPtr wire encodes a *string pointer as a String.\n// It panics if the pointer is nil.\nfunc appendStringPtr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := **p.StringPtr()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendString(b, v)\n\treturn b, nil\n}\n\n// consumeStringPtr wire decodes a *string pointer as a String.\nfunc consumeStringPtr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.BytesType {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tvp := p.StringPtr()\n\tif *vp == nil {\n\t\t*vp = new(string)\n\t}\n\t**vp = string(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderStringPtr = pointerCoderFuncs{\n\tsize:      sizeStringPtr,\n\tmarshal:   appendStringPtr,\n\tunmarshal: consumeStringPtr,\n\tmerge:     mergeStringPtr,\n}\n\n// appendStringPtrValidateUTF8 wire encodes a *string pointer as a String.\n// It panics if the pointer is nil.\nfunc appendStringPtrValidateUTF8(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := **p.StringPtr()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendString(b, v)\n\tif !utf8.ValidString(v) {\n\t\treturn b, errInvalidUTF8{}\n\t}\n\treturn b, nil\n}\n\n// consumeStringPtrValidateUTF8 wire decodes a *string pointer as a String.\nfunc consumeStringPtrValidateUTF8(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.BytesType {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tif !utf8.Valid(v) {\n\t\treturn out, errInvalidUTF8{}\n\t}\n\tvp := p.StringPtr()\n\tif *vp == nil {\n\t\t*vp = new(string)\n\t}\n\t**vp = string(v)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderStringPtrValidateUTF8 = pointerCoderFuncs{\n\tsize:      sizeStringPtr,\n\tmarshal:   appendStringPtrValidateUTF8,\n\tunmarshal: consumeStringPtrValidateUTF8,\n\tmerge:     mergeStringPtr,\n}\n\n// sizeStringSlice returns the size of wire encoding a []string pointer as a repeated String.\nfunc sizeStringSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.StringSlice()\n\tfor _, v := range s {\n\t\tsize += f.tagsize + protowire.SizeBytes(len(v))\n\t}\n\treturn size\n}\n\n// appendStringSlice encodes a []string pointer as a repeated String.\nfunc appendStringSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.StringSlice()\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, f.wiretag)\n\t\tb = protowire.AppendString(b, v)\n\t}\n\treturn b, nil\n}\n\n// consumeStringSlice wire decodes a []string pointer as a repeated String.\nfunc consumeStringSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tsp := p.StringSlice()\n\tif wtyp != protowire.BytesType {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*sp = append(*sp, string(v))\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderStringSlice = pointerCoderFuncs{\n\tsize:      sizeStringSlice,\n\tmarshal:   appendStringSlice,\n\tunmarshal: consumeStringSlice,\n\tmerge:     mergeStringSlice,\n}\n\n// appendStringSliceValidateUTF8 encodes a []string pointer as a repeated String.\nfunc appendStringSliceValidateUTF8(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.StringSlice()\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, f.wiretag)\n\t\tb = protowire.AppendString(b, v)\n\t\tif !utf8.ValidString(v) {\n\t\t\treturn b, errInvalidUTF8{}\n\t\t}\n\t}\n\treturn b, nil\n}\n\n// consumeStringSliceValidateUTF8 wire decodes a []string pointer as a repeated String.\nfunc consumeStringSliceValidateUTF8(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.BytesType {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tif !utf8.Valid(v) {\n\t\treturn out, errInvalidUTF8{}\n\t}\n\tsp := p.StringSlice()\n\t*sp = append(*sp, string(v))\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderStringSliceValidateUTF8 = pointerCoderFuncs{\n\tsize:      sizeStringSlice,\n\tmarshal:   appendStringSliceValidateUTF8,\n\tunmarshal: consumeStringSliceValidateUTF8,\n\tmerge:     mergeStringSlice,\n}\n\n// sizeStringValue returns the size of wire encoding a string value as a String.\nfunc sizeStringValue(v protoreflect.Value, tagsize int, opts marshalOptions) int {\n\treturn tagsize + protowire.SizeBytes(len(v.String()))\n}\n\n// appendStringValue encodes a string value as a String.\nfunc appendStringValue(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tb = protowire.AppendVarint(b, wiretag)\n\tb = protowire.AppendString(b, v.String())\n\treturn b, nil\n}\n\n// consumeStringValue decodes a string value as a String.\nfunc consumeStringValue(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tif wtyp != protowire.BytesType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tout.n = n\n\treturn protoreflect.ValueOfString(string(v)), out, nil\n}\n\nvar coderStringValue = valueCoderFuncs{\n\tsize:      sizeStringValue,\n\tmarshal:   appendStringValue,\n\tunmarshal: consumeStringValue,\n\tmerge:     mergeScalarValue,\n}\n\n// appendStringValueValidateUTF8 encodes a string value as a String.\nfunc appendStringValueValidateUTF8(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tb = protowire.AppendVarint(b, wiretag)\n\tb = protowire.AppendString(b, v.String())\n\tif !utf8.ValidString(v.String()) {\n\t\treturn b, errInvalidUTF8{}\n\t}\n\treturn b, nil\n}\n\n// consumeStringValueValidateUTF8 decodes a string value as a String.\nfunc consumeStringValueValidateUTF8(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tif wtyp != protowire.BytesType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tif !utf8.Valid(v) {\n\t\treturn protoreflect.Value{}, out, errInvalidUTF8{}\n\t}\n\tout.n = n\n\treturn protoreflect.ValueOfString(string(v)), out, nil\n}\n\nvar coderStringValueValidateUTF8 = valueCoderFuncs{\n\tsize:      sizeStringValue,\n\tmarshal:   appendStringValueValidateUTF8,\n\tunmarshal: consumeStringValueValidateUTF8,\n\tmerge:     mergeScalarValue,\n}\n\n// sizeStringSliceValue returns the size of wire encoding a []string value as a repeated String.\nfunc sizeStringSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tsize += tagsize + protowire.SizeBytes(len(v.String()))\n\t}\n\treturn size\n}\n\n// appendStringSliceValue encodes a []string value as a repeated String.\nfunc appendStringSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, wiretag)\n\t\tb = protowire.AppendString(b, v.String())\n\t}\n\treturn b, nil\n}\n\n// consumeStringSliceValue wire decodes a []string value as a repeated String.\nfunc consumeStringSliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tlist := listv.List()\n\tif wtyp != protowire.BytesType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tlist.Append(protoreflect.ValueOfString(string(v)))\n\tout.n = n\n\treturn listv, out, nil\n}\n\nvar coderStringSliceValue = valueCoderFuncs{\n\tsize:      sizeStringSliceValue,\n\tmarshal:   appendStringSliceValue,\n\tunmarshal: consumeStringSliceValue,\n\tmerge:     mergeListValue,\n}\n\n// sizeBytes returns the size of wire encoding a []byte pointer as a Bytes.\nfunc sizeBytes(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Bytes()\n\treturn f.tagsize + protowire.SizeBytes(len(v))\n}\n\n// appendBytes wire encodes a []byte pointer as a Bytes.\nfunc appendBytes(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Bytes()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendBytes(b, v)\n\treturn b, nil\n}\n\n// consumeBytes wire decodes a []byte pointer as a Bytes.\nfunc consumeBytes(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.BytesType {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*p.Bytes() = append(emptyBuf[:], v...)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderBytes = pointerCoderFuncs{\n\tsize:      sizeBytes,\n\tmarshal:   appendBytes,\n\tunmarshal: consumeBytes,\n\tmerge:     mergeBytes,\n}\n\n// appendBytesValidateUTF8 wire encodes a []byte pointer as a Bytes.\nfunc appendBytesValidateUTF8(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Bytes()\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendBytes(b, v)\n\tif !utf8.Valid(v) {\n\t\treturn b, errInvalidUTF8{}\n\t}\n\treturn b, nil\n}\n\n// consumeBytesValidateUTF8 wire decodes a []byte pointer as a Bytes.\nfunc consumeBytesValidateUTF8(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.BytesType {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tif !utf8.Valid(v) {\n\t\treturn out, errInvalidUTF8{}\n\t}\n\t*p.Bytes() = append(emptyBuf[:], v...)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderBytesValidateUTF8 = pointerCoderFuncs{\n\tsize:      sizeBytes,\n\tmarshal:   appendBytesValidateUTF8,\n\tunmarshal: consumeBytesValidateUTF8,\n\tmerge:     mergeBytes,\n}\n\n// sizeBytesNoZero returns the size of wire encoding a []byte pointer as a Bytes.\n// The zero value is not encoded.\nfunc sizeBytesNoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\tv := *p.Bytes()\n\tif len(v) == 0 {\n\t\treturn 0\n\t}\n\treturn f.tagsize + protowire.SizeBytes(len(v))\n}\n\n// appendBytesNoZero wire encodes a []byte pointer as a Bytes.\n// The zero value is not encoded.\nfunc appendBytesNoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Bytes()\n\tif len(v) == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendBytes(b, v)\n\treturn b, nil\n}\n\n// consumeBytesNoZero wire decodes a []byte pointer as a Bytes.\n// The zero value is not decoded.\nfunc consumeBytesNoZero(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.BytesType {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*p.Bytes() = append(([]byte)(nil), v...)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderBytesNoZero = pointerCoderFuncs{\n\tsize:      sizeBytesNoZero,\n\tmarshal:   appendBytesNoZero,\n\tunmarshal: consumeBytesNoZero,\n\tmerge:     mergeBytesNoZero,\n}\n\n// appendBytesNoZeroValidateUTF8 wire encodes a []byte pointer as a Bytes.\n// The zero value is not encoded.\nfunc appendBytesNoZeroValidateUTF8(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tv := *p.Bytes()\n\tif len(v) == 0 {\n\t\treturn b, nil\n\t}\n\tb = protowire.AppendVarint(b, f.wiretag)\n\tb = protowire.AppendBytes(b, v)\n\tif !utf8.Valid(v) {\n\t\treturn b, errInvalidUTF8{}\n\t}\n\treturn b, nil\n}\n\n// consumeBytesNoZeroValidateUTF8 wire decodes a []byte pointer as a Bytes.\nfunc consumeBytesNoZeroValidateUTF8(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.BytesType {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tif !utf8.Valid(v) {\n\t\treturn out, errInvalidUTF8{}\n\t}\n\t*p.Bytes() = append(([]byte)(nil), v...)\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderBytesNoZeroValidateUTF8 = pointerCoderFuncs{\n\tsize:      sizeBytesNoZero,\n\tmarshal:   appendBytesNoZeroValidateUTF8,\n\tunmarshal: consumeBytesNoZeroValidateUTF8,\n\tmerge:     mergeBytesNoZero,\n}\n\n// sizeBytesSlice returns the size of wire encoding a [][]byte pointer as a repeated Bytes.\nfunc sizeBytesSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) {\n\ts := *p.BytesSlice()\n\tfor _, v := range s {\n\t\tsize += f.tagsize + protowire.SizeBytes(len(v))\n\t}\n\treturn size\n}\n\n// appendBytesSlice encodes a [][]byte pointer as a repeated Bytes.\nfunc appendBytesSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.BytesSlice()\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, f.wiretag)\n\t\tb = protowire.AppendBytes(b, v)\n\t}\n\treturn b, nil\n}\n\n// consumeBytesSlice wire decodes a [][]byte pointer as a repeated Bytes.\nfunc consumeBytesSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tsp := p.BytesSlice()\n\tif wtyp != protowire.BytesType {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\t*sp = append(*sp, append(emptyBuf[:], v...))\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderBytesSlice = pointerCoderFuncs{\n\tsize:      sizeBytesSlice,\n\tmarshal:   appendBytesSlice,\n\tunmarshal: consumeBytesSlice,\n\tmerge:     mergeBytesSlice,\n}\n\n// appendBytesSliceValidateUTF8 encodes a [][]byte pointer as a repeated Bytes.\nfunc appendBytesSliceValidateUTF8(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\ts := *p.BytesSlice()\n\tfor _, v := range s {\n\t\tb = protowire.AppendVarint(b, f.wiretag)\n\t\tb = protowire.AppendBytes(b, v)\n\t\tif !utf8.Valid(v) {\n\t\t\treturn b, errInvalidUTF8{}\n\t\t}\n\t}\n\treturn b, nil\n}\n\n// consumeBytesSliceValidateUTF8 wire decodes a [][]byte pointer as a repeated Bytes.\nfunc consumeBytesSliceValidateUTF8(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.BytesType {\n\t\treturn out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tif !utf8.Valid(v) {\n\t\treturn out, errInvalidUTF8{}\n\t}\n\tsp := p.BytesSlice()\n\t*sp = append(*sp, append(emptyBuf[:], v...))\n\tout.n = n\n\treturn out, nil\n}\n\nvar coderBytesSliceValidateUTF8 = pointerCoderFuncs{\n\tsize:      sizeBytesSlice,\n\tmarshal:   appendBytesSliceValidateUTF8,\n\tunmarshal: consumeBytesSliceValidateUTF8,\n\tmerge:     mergeBytesSlice,\n}\n\n// sizeBytesValue returns the size of wire encoding a []byte value as a Bytes.\nfunc sizeBytesValue(v protoreflect.Value, tagsize int, opts marshalOptions) int {\n\treturn tagsize + protowire.SizeBytes(len(v.Bytes()))\n}\n\n// appendBytesValue encodes a []byte value as a Bytes.\nfunc appendBytesValue(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tb = protowire.AppendVarint(b, wiretag)\n\tb = protowire.AppendBytes(b, v.Bytes())\n\treturn b, nil\n}\n\n// consumeBytesValue decodes a []byte value as a Bytes.\nfunc consumeBytesValue(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tif wtyp != protowire.BytesType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tout.n = n\n\treturn protoreflect.ValueOfBytes(append(emptyBuf[:], v...)), out, nil\n}\n\nvar coderBytesValue = valueCoderFuncs{\n\tsize:      sizeBytesValue,\n\tmarshal:   appendBytesValue,\n\tunmarshal: consumeBytesValue,\n\tmerge:     mergeBytesValue,\n}\n\n// sizeBytesSliceValue returns the size of wire encoding a [][]byte value as a repeated Bytes.\nfunc sizeBytesSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tsize += tagsize + protowire.SizeBytes(len(v.Bytes()))\n\t}\n\treturn size\n}\n\n// appendBytesSliceValue encodes a [][]byte value as a repeated Bytes.\nfunc appendBytesSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) {\n\tlist := listv.List()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tv := list.Get(i)\n\t\tb = protowire.AppendVarint(b, wiretag)\n\t\tb = protowire.AppendBytes(b, v.Bytes())\n\t}\n\treturn b, nil\n}\n\n// consumeBytesSliceValue wire decodes a [][]byte value as a repeated Bytes.\nfunc consumeBytesSliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) {\n\tlist := listv.List()\n\tif wtyp != protowire.BytesType {\n\t\treturn protoreflect.Value{}, out, errUnknown\n\t}\n\tv, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn protoreflect.Value{}, out, errDecode\n\t}\n\tlist.Append(protoreflect.ValueOfBytes(append(emptyBuf[:], v...)))\n\tout.n = n\n\treturn listv, out, nil\n}\n\nvar coderBytesSliceValue = valueCoderFuncs{\n\tsize:      sizeBytesSliceValue,\n\tmarshal:   appendBytesSliceValue,\n\tunmarshal: consumeBytesSliceValue,\n\tmerge:     mergeBytesListValue,\n}\n\n// We append to an empty array rather than a nil []byte to get non-nil zero-length byte slices.\nvar emptyBuf [0]byte\n\nvar wireTypes = map[protoreflect.Kind]protowire.Type{\n\tprotoreflect.BoolKind:     protowire.VarintType,\n\tprotoreflect.EnumKind:     protowire.VarintType,\n\tprotoreflect.Int32Kind:    protowire.VarintType,\n\tprotoreflect.Sint32Kind:   protowire.VarintType,\n\tprotoreflect.Uint32Kind:   protowire.VarintType,\n\tprotoreflect.Int64Kind:    protowire.VarintType,\n\tprotoreflect.Sint64Kind:   protowire.VarintType,\n\tprotoreflect.Uint64Kind:   protowire.VarintType,\n\tprotoreflect.Sfixed32Kind: protowire.Fixed32Type,\n\tprotoreflect.Fixed32Kind:  protowire.Fixed32Type,\n\tprotoreflect.FloatKind:    protowire.Fixed32Type,\n\tprotoreflect.Sfixed64Kind: protowire.Fixed64Type,\n\tprotoreflect.Fixed64Kind:  protowire.Fixed64Type,\n\tprotoreflect.DoubleKind:   protowire.Fixed64Type,\n\tprotoreflect.StringKind:   protowire.BytesType,\n\tprotoreflect.BytesKind:    protowire.BytesType,\n\tprotoreflect.MessageKind:  protowire.BytesType,\n\tprotoreflect.GroupKind:    protowire.StartGroupType,\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/codec_map.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"reflect\"\n\t\"sort\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/internal/genid\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\ntype mapInfo struct {\n\tgoType     reflect.Type\n\tkeyWiretag uint64\n\tvalWiretag uint64\n\tkeyFuncs   valueCoderFuncs\n\tvalFuncs   valueCoderFuncs\n\tkeyZero    protoreflect.Value\n\tkeyKind    protoreflect.Kind\n\tconv       *mapConverter\n}\n\nfunc encoderFuncsForMap(fd protoreflect.FieldDescriptor, ft reflect.Type) (valueMessage *MessageInfo, funcs pointerCoderFuncs) {\n\t// TODO: Consider generating specialized map coders.\n\tkeyField := fd.MapKey()\n\tvalField := fd.MapValue()\n\tkeyWiretag := protowire.EncodeTag(1, wireTypes[keyField.Kind()])\n\tvalWiretag := protowire.EncodeTag(2, wireTypes[valField.Kind()])\n\tkeyFuncs := encoderFuncsForValue(keyField)\n\tvalFuncs := encoderFuncsForValue(valField)\n\tconv := newMapConverter(ft, fd)\n\n\tmapi := &mapInfo{\n\t\tgoType:     ft,\n\t\tkeyWiretag: keyWiretag,\n\t\tvalWiretag: valWiretag,\n\t\tkeyFuncs:   keyFuncs,\n\t\tvalFuncs:   valFuncs,\n\t\tkeyZero:    keyField.Default(),\n\t\tkeyKind:    keyField.Kind(),\n\t\tconv:       conv,\n\t}\n\tif valField.Kind() == protoreflect.MessageKind {\n\t\tvalueMessage = getMessageInfo(ft.Elem())\n\t}\n\n\tfuncs = pointerCoderFuncs{\n\t\tsize: func(p pointer, f *coderFieldInfo, opts marshalOptions) int {\n\t\t\treturn sizeMap(p.AsValueOf(ft).Elem(), mapi, f, opts)\n\t\t},\n\t\tmarshal: func(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\t\t\treturn appendMap(b, p.AsValueOf(ft).Elem(), mapi, f, opts)\n\t\t},\n\t\tunmarshal: func(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (unmarshalOutput, error) {\n\t\t\tmp := p.AsValueOf(ft)\n\t\t\tif mp.Elem().IsNil() {\n\t\t\t\tmp.Elem().Set(reflect.MakeMap(mapi.goType))\n\t\t\t}\n\t\t\tif f.mi == nil {\n\t\t\t\treturn consumeMap(b, mp.Elem(), wtyp, mapi, f, opts)\n\t\t\t} else {\n\t\t\t\treturn consumeMapOfMessage(b, mp.Elem(), wtyp, mapi, f, opts)\n\t\t\t}\n\t\t},\n\t}\n\tswitch valField.Kind() {\n\tcase protoreflect.MessageKind:\n\t\tfuncs.merge = mergeMapOfMessage\n\tcase protoreflect.BytesKind:\n\t\tfuncs.merge = mergeMapOfBytes\n\tdefault:\n\t\tfuncs.merge = mergeMap\n\t}\n\tif valFuncs.isInit != nil {\n\t\tfuncs.isInit = func(p pointer, f *coderFieldInfo) error {\n\t\t\treturn isInitMap(p.AsValueOf(ft).Elem(), mapi, f)\n\t\t}\n\t}\n\treturn valueMessage, funcs\n}\n\nconst (\n\tmapKeyTagSize = 1 // field 1, tag size 1.\n\tmapValTagSize = 1 // field 2, tag size 2.\n)\n\nfunc sizeMap(mapv reflect.Value, mapi *mapInfo, f *coderFieldInfo, opts marshalOptions) int {\n\tif mapv.Len() == 0 {\n\t\treturn 0\n\t}\n\tn := 0\n\titer := mapRange(mapv)\n\tfor iter.Next() {\n\t\tkey := mapi.conv.keyConv.PBValueOf(iter.Key()).MapKey()\n\t\tkeySize := mapi.keyFuncs.size(key.Value(), mapKeyTagSize, opts)\n\t\tvar valSize int\n\t\tvalue := mapi.conv.valConv.PBValueOf(iter.Value())\n\t\tif f.mi == nil {\n\t\t\tvalSize = mapi.valFuncs.size(value, mapValTagSize, opts)\n\t\t} else {\n\t\t\tp := pointerOfValue(iter.Value())\n\t\t\tvalSize += mapValTagSize\n\t\t\tvalSize += protowire.SizeBytes(f.mi.sizePointer(p, opts))\n\t\t}\n\t\tn += f.tagsize + protowire.SizeBytes(keySize+valSize)\n\t}\n\treturn n\n}\n\nfunc consumeMap(b []byte, mapv reflect.Value, wtyp protowire.Type, mapi *mapInfo, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.BytesType {\n\t\treturn out, errUnknown\n\t}\n\tb, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tvar (\n\t\tkey = mapi.keyZero\n\t\tval = mapi.conv.valConv.New()\n\t)\n\tfor len(b) > 0 {\n\t\tnum, wtyp, n := protowire.ConsumeTag(b)\n\t\tif n < 0 {\n\t\t\treturn out, errDecode\n\t\t}\n\t\tif num > protowire.MaxValidNumber {\n\t\t\treturn out, errDecode\n\t\t}\n\t\tb = b[n:]\n\t\terr := errUnknown\n\t\tswitch num {\n\t\tcase genid.MapEntry_Key_field_number:\n\t\t\tvar v protoreflect.Value\n\t\t\tvar o unmarshalOutput\n\t\t\tv, o, err = mapi.keyFuncs.unmarshal(b, key, num, wtyp, opts)\n\t\t\tif err != nil {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tkey = v\n\t\t\tn = o.n\n\t\tcase genid.MapEntry_Value_field_number:\n\t\t\tvar v protoreflect.Value\n\t\t\tvar o unmarshalOutput\n\t\t\tv, o, err = mapi.valFuncs.unmarshal(b, val, num, wtyp, opts)\n\t\t\tif err != nil {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tval = v\n\t\t\tn = o.n\n\t\t}\n\t\tif err == errUnknown {\n\t\t\tn = protowire.ConsumeFieldValue(num, wtyp, b)\n\t\t\tif n < 0 {\n\t\t\t\treturn out, errDecode\n\t\t\t}\n\t\t} else if err != nil {\n\t\t\treturn out, err\n\t\t}\n\t\tb = b[n:]\n\t}\n\tmapv.SetMapIndex(mapi.conv.keyConv.GoValueOf(key), mapi.conv.valConv.GoValueOf(val))\n\tout.n = n\n\treturn out, nil\n}\n\nfunc consumeMapOfMessage(b []byte, mapv reflect.Value, wtyp protowire.Type, mapi *mapInfo, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif wtyp != protowire.BytesType {\n\t\treturn out, errUnknown\n\t}\n\tb, n := protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn out, errDecode\n\t}\n\tvar (\n\t\tkey = mapi.keyZero\n\t\tval = reflect.New(f.mi.GoReflectType.Elem())\n\t)\n\tfor len(b) > 0 {\n\t\tnum, wtyp, n := protowire.ConsumeTag(b)\n\t\tif n < 0 {\n\t\t\treturn out, errDecode\n\t\t}\n\t\tif num > protowire.MaxValidNumber {\n\t\t\treturn out, errDecode\n\t\t}\n\t\tb = b[n:]\n\t\terr := errUnknown\n\t\tswitch num {\n\t\tcase 1:\n\t\t\tvar v protoreflect.Value\n\t\t\tvar o unmarshalOutput\n\t\t\tv, o, err = mapi.keyFuncs.unmarshal(b, key, num, wtyp, opts)\n\t\t\tif err != nil {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tkey = v\n\t\t\tn = o.n\n\t\tcase 2:\n\t\t\tif wtyp != protowire.BytesType {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tvar v []byte\n\t\t\tv, n = protowire.ConsumeBytes(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn out, errDecode\n\t\t\t}\n\t\t\tvar o unmarshalOutput\n\t\t\to, err = f.mi.unmarshalPointer(v, pointerOfValue(val), 0, opts)\n\t\t\tif o.initialized {\n\t\t\t\t// Consider this map item initialized so long as we see\n\t\t\t\t// an initialized value.\n\t\t\t\tout.initialized = true\n\t\t\t}\n\t\t}\n\t\tif err == errUnknown {\n\t\t\tn = protowire.ConsumeFieldValue(num, wtyp, b)\n\t\t\tif n < 0 {\n\t\t\t\treturn out, errDecode\n\t\t\t}\n\t\t} else if err != nil {\n\t\t\treturn out, err\n\t\t}\n\t\tb = b[n:]\n\t}\n\tmapv.SetMapIndex(mapi.conv.keyConv.GoValueOf(key), val)\n\tout.n = n\n\treturn out, nil\n}\n\nfunc appendMapItem(b []byte, keyrv, valrv reflect.Value, mapi *mapInfo, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tif f.mi == nil {\n\t\tkey := mapi.conv.keyConv.PBValueOf(keyrv).MapKey()\n\t\tval := mapi.conv.valConv.PBValueOf(valrv)\n\t\tsize := 0\n\t\tsize += mapi.keyFuncs.size(key.Value(), mapKeyTagSize, opts)\n\t\tsize += mapi.valFuncs.size(val, mapValTagSize, opts)\n\t\tb = protowire.AppendVarint(b, uint64(size))\n\t\tbefore := len(b)\n\t\tb, err := mapi.keyFuncs.marshal(b, key.Value(), mapi.keyWiretag, opts)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tb, err = mapi.valFuncs.marshal(b, val, mapi.valWiretag, opts)\n\t\tif measuredSize := len(b) - before; size != measuredSize && err == nil {\n\t\t\treturn nil, errors.MismatchedSizeCalculation(size, measuredSize)\n\t\t}\n\t\treturn b, err\n\t} else {\n\t\tkey := mapi.conv.keyConv.PBValueOf(keyrv).MapKey()\n\t\tval := pointerOfValue(valrv)\n\t\tvalSize := f.mi.sizePointer(val, opts)\n\t\tsize := 0\n\t\tsize += mapi.keyFuncs.size(key.Value(), mapKeyTagSize, opts)\n\t\tsize += mapValTagSize + protowire.SizeBytes(valSize)\n\t\tb = protowire.AppendVarint(b, uint64(size))\n\t\tb, err := mapi.keyFuncs.marshal(b, key.Value(), mapi.keyWiretag, opts)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tb = protowire.AppendVarint(b, mapi.valWiretag)\n\t\tb = protowire.AppendVarint(b, uint64(valSize))\n\t\tbefore := len(b)\n\t\tb, err = f.mi.marshalAppendPointer(b, val, opts)\n\t\tif measuredSize := len(b) - before; valSize != measuredSize && err == nil {\n\t\t\treturn nil, errors.MismatchedSizeCalculation(valSize, measuredSize)\n\t\t}\n\t\treturn b, err\n\t}\n}\n\nfunc appendMap(b []byte, mapv reflect.Value, mapi *mapInfo, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tif mapv.Len() == 0 {\n\t\treturn b, nil\n\t}\n\tif opts.Deterministic() {\n\t\treturn appendMapDeterministic(b, mapv, mapi, f, opts)\n\t}\n\titer := mapRange(mapv)\n\tfor iter.Next() {\n\t\tvar err error\n\t\tb = protowire.AppendVarint(b, f.wiretag)\n\t\tb, err = appendMapItem(b, iter.Key(), iter.Value(), mapi, f, opts)\n\t\tif err != nil {\n\t\t\treturn b, err\n\t\t}\n\t}\n\treturn b, nil\n}\n\nfunc appendMapDeterministic(b []byte, mapv reflect.Value, mapi *mapInfo, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\tkeys := mapv.MapKeys()\n\tsort.Slice(keys, func(i, j int) bool {\n\t\tswitch keys[i].Kind() {\n\t\tcase reflect.Bool:\n\t\t\treturn !keys[i].Bool() && keys[j].Bool()\n\t\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\t\treturn keys[i].Int() < keys[j].Int()\n\t\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\t\treturn keys[i].Uint() < keys[j].Uint()\n\t\tcase reflect.Float32, reflect.Float64:\n\t\t\treturn keys[i].Float() < keys[j].Float()\n\t\tcase reflect.String:\n\t\t\treturn keys[i].String() < keys[j].String()\n\t\tdefault:\n\t\t\tpanic(\"invalid kind: \" + keys[i].Kind().String())\n\t\t}\n\t})\n\tfor _, key := range keys {\n\t\tvar err error\n\t\tb = protowire.AppendVarint(b, f.wiretag)\n\t\tb, err = appendMapItem(b, key, mapv.MapIndex(key), mapi, f, opts)\n\t\tif err != nil {\n\t\t\treturn b, err\n\t\t}\n\t}\n\treturn b, nil\n}\n\nfunc isInitMap(mapv reflect.Value, mapi *mapInfo, f *coderFieldInfo) error {\n\tif mi := f.mi; mi != nil {\n\t\tmi.init()\n\t\tif !mi.needsInitCheck {\n\t\t\treturn nil\n\t\t}\n\t\titer := mapRange(mapv)\n\t\tfor iter.Next() {\n\t\t\tval := pointerOfValue(iter.Value())\n\t\t\tif err := mi.checkInitializedPointer(val); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t} else {\n\t\titer := mapRange(mapv)\n\t\tfor iter.Next() {\n\t\t\tval := mapi.conv.valConv.PBValueOf(iter.Value())\n\t\t\tif err := mapi.valFuncs.isInit(val); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc mergeMap(dst, src pointer, f *coderFieldInfo, opts mergeOptions) {\n\tdstm := dst.AsValueOf(f.ft).Elem()\n\tsrcm := src.AsValueOf(f.ft).Elem()\n\tif srcm.Len() == 0 {\n\t\treturn\n\t}\n\tif dstm.IsNil() {\n\t\tdstm.Set(reflect.MakeMap(f.ft))\n\t}\n\titer := mapRange(srcm)\n\tfor iter.Next() {\n\t\tdstm.SetMapIndex(iter.Key(), iter.Value())\n\t}\n}\n\nfunc mergeMapOfBytes(dst, src pointer, f *coderFieldInfo, opts mergeOptions) {\n\tdstm := dst.AsValueOf(f.ft).Elem()\n\tsrcm := src.AsValueOf(f.ft).Elem()\n\tif srcm.Len() == 0 {\n\t\treturn\n\t}\n\tif dstm.IsNil() {\n\t\tdstm.Set(reflect.MakeMap(f.ft))\n\t}\n\titer := mapRange(srcm)\n\tfor iter.Next() {\n\t\tdstm.SetMapIndex(iter.Key(), reflect.ValueOf(append(emptyBuf[:], iter.Value().Bytes()...)))\n\t}\n}\n\nfunc mergeMapOfMessage(dst, src pointer, f *coderFieldInfo, opts mergeOptions) {\n\tdstm := dst.AsValueOf(f.ft).Elem()\n\tsrcm := src.AsValueOf(f.ft).Elem()\n\tif srcm.Len() == 0 {\n\t\treturn\n\t}\n\tif dstm.IsNil() {\n\t\tdstm.Set(reflect.MakeMap(f.ft))\n\t}\n\titer := mapRange(srcm)\n\tfor iter.Next() {\n\t\tval := reflect.New(f.ft.Elem().Elem())\n\t\tif f.mi != nil {\n\t\t\tf.mi.mergePointer(pointerOfValue(val), pointerOfValue(iter.Value()), opts)\n\t\t} else {\n\t\t\topts.Merge(asMessage(val), asMessage(iter.Value()))\n\t\t}\n\t\tdstm.SetMapIndex(iter.Key(), val)\n\t}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/codec_map_go111.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build !go1.12\n// +build !go1.12\n\npackage impl\n\nimport \"reflect\"\n\ntype mapIter struct {\n\tv    reflect.Value\n\tkeys []reflect.Value\n}\n\n// mapRange provides a less-efficient equivalent to\n// the Go 1.12 reflect.Value.MapRange method.\nfunc mapRange(v reflect.Value) *mapIter {\n\treturn &mapIter{v: v}\n}\n\nfunc (i *mapIter) Next() bool {\n\tif i.keys == nil {\n\t\ti.keys = i.v.MapKeys()\n\t} else {\n\t\ti.keys = i.keys[1:]\n\t}\n\treturn len(i.keys) > 0\n}\n\nfunc (i *mapIter) Key() reflect.Value {\n\treturn i.keys[0]\n}\n\nfunc (i *mapIter) Value() reflect.Value {\n\treturn i.v.MapIndex(i.keys[0])\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/codec_map_go112.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build go1.12\n// +build go1.12\n\npackage impl\n\nimport \"reflect\"\n\nfunc mapRange(v reflect.Value) *reflect.MapIter { return v.MapRange() }\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/codec_message.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"sort\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/encoding/messageset\"\n\t\"google.golang.org/protobuf/internal/order\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n)\n\n// coderMessageInfo contains per-message information used by the fast-path functions.\n// This is a different type from MessageInfo to keep MessageInfo as general-purpose as\n// possible.\ntype coderMessageInfo struct {\n\tmethods protoiface.Methods\n\n\torderedCoderFields []*coderFieldInfo\n\tdenseCoderFields   []*coderFieldInfo\n\tcoderFields        map[protowire.Number]*coderFieldInfo\n\tsizecacheOffset    offset\n\tunknownOffset      offset\n\tunknownPtrKind     bool\n\textensionOffset    offset\n\tneedsInitCheck     bool\n\tisMessageSet       bool\n\tnumRequiredFields  uint8\n}\n\ntype coderFieldInfo struct {\n\tfuncs      pointerCoderFuncs // fast-path per-field functions\n\tmi         *MessageInfo      // field's message\n\tft         reflect.Type\n\tvalidation validationInfo           // information used by message validation\n\tnum        protoreflect.FieldNumber // field number\n\toffset     offset                   // struct field offset\n\twiretag    uint64                   // field tag (number + wire type)\n\ttagsize    int                      // size of the varint-encoded tag\n\tisPointer  bool                     // true if IsNil may be called on the struct field\n\tisRequired bool                     // true if field is required\n}\n\nfunc (mi *MessageInfo) makeCoderMethods(t reflect.Type, si structInfo) {\n\tmi.sizecacheOffset = invalidOffset\n\tmi.unknownOffset = invalidOffset\n\tmi.extensionOffset = invalidOffset\n\n\tif si.sizecacheOffset.IsValid() && si.sizecacheType == sizecacheType {\n\t\tmi.sizecacheOffset = si.sizecacheOffset\n\t}\n\tif si.unknownOffset.IsValid() && (si.unknownType == unknownFieldsAType || si.unknownType == unknownFieldsBType) {\n\t\tmi.unknownOffset = si.unknownOffset\n\t\tmi.unknownPtrKind = si.unknownType.Kind() == reflect.Ptr\n\t}\n\tif si.extensionOffset.IsValid() && si.extensionType == extensionFieldsType {\n\t\tmi.extensionOffset = si.extensionOffset\n\t}\n\n\tmi.coderFields = make(map[protowire.Number]*coderFieldInfo)\n\tfields := mi.Desc.Fields()\n\tpreallocFields := make([]coderFieldInfo, fields.Len())\n\tfor i := 0; i < fields.Len(); i++ {\n\t\tfd := fields.Get(i)\n\n\t\tfs := si.fieldsByNumber[fd.Number()]\n\t\tisOneof := fd.ContainingOneof() != nil && !fd.ContainingOneof().IsSynthetic()\n\t\tif isOneof {\n\t\t\tfs = si.oneofsByName[fd.ContainingOneof().Name()]\n\t\t}\n\t\tft := fs.Type\n\t\tvar wiretag uint64\n\t\tif !fd.IsPacked() {\n\t\t\twiretag = protowire.EncodeTag(fd.Number(), wireTypes[fd.Kind()])\n\t\t} else {\n\t\t\twiretag = protowire.EncodeTag(fd.Number(), protowire.BytesType)\n\t\t}\n\t\tvar fieldOffset offset\n\t\tvar funcs pointerCoderFuncs\n\t\tvar childMessage *MessageInfo\n\t\tswitch {\n\t\tcase ft == nil:\n\t\t\t// This never occurs for generated message types.\n\t\t\t// It implies that a hand-crafted type has missing Go fields\n\t\t\t// for specific protobuf message fields.\n\t\t\tfuncs = pointerCoderFuncs{\n\t\t\t\tsize: func(p pointer, f *coderFieldInfo, opts marshalOptions) int {\n\t\t\t\t\treturn 0\n\t\t\t\t},\n\t\t\t\tmarshal: func(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) {\n\t\t\t\t\treturn nil, nil\n\t\t\t\t},\n\t\t\t\tunmarshal: func(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (unmarshalOutput, error) {\n\t\t\t\t\tpanic(\"missing Go struct field for \" + string(fd.FullName()))\n\t\t\t\t},\n\t\t\t\tisInit: func(p pointer, f *coderFieldInfo) error {\n\t\t\t\t\tpanic(\"missing Go struct field for \" + string(fd.FullName()))\n\t\t\t\t},\n\t\t\t\tmerge: func(dst, src pointer, f *coderFieldInfo, opts mergeOptions) {\n\t\t\t\t\tpanic(\"missing Go struct field for \" + string(fd.FullName()))\n\t\t\t\t},\n\t\t\t}\n\t\tcase isOneof:\n\t\t\tfieldOffset = offsetOf(fs, mi.Exporter)\n\t\tcase fd.IsWeak():\n\t\t\tfieldOffset = si.weakOffset\n\t\t\tfuncs = makeWeakMessageFieldCoder(fd)\n\t\tdefault:\n\t\t\tfieldOffset = offsetOf(fs, mi.Exporter)\n\t\t\tchildMessage, funcs = fieldCoder(fd, ft)\n\t\t}\n\t\tcf := &preallocFields[i]\n\t\t*cf = coderFieldInfo{\n\t\t\tnum:        fd.Number(),\n\t\t\toffset:     fieldOffset,\n\t\t\twiretag:    wiretag,\n\t\t\tft:         ft,\n\t\t\ttagsize:    protowire.SizeVarint(wiretag),\n\t\t\tfuncs:      funcs,\n\t\t\tmi:         childMessage,\n\t\t\tvalidation: newFieldValidationInfo(mi, si, fd, ft),\n\t\t\tisPointer:  fd.Cardinality() == protoreflect.Repeated || fd.HasPresence(),\n\t\t\tisRequired: fd.Cardinality() == protoreflect.Required,\n\t\t}\n\t\tmi.orderedCoderFields = append(mi.orderedCoderFields, cf)\n\t\tmi.coderFields[cf.num] = cf\n\t}\n\tfor i, oneofs := 0, mi.Desc.Oneofs(); i < oneofs.Len(); i++ {\n\t\tif od := oneofs.Get(i); !od.IsSynthetic() {\n\t\t\tmi.initOneofFieldCoders(od, si)\n\t\t}\n\t}\n\tif messageset.IsMessageSet(mi.Desc) {\n\t\tif !mi.extensionOffset.IsValid() {\n\t\t\tpanic(fmt.Sprintf(\"%v: MessageSet with no extensions field\", mi.Desc.FullName()))\n\t\t}\n\t\tif !mi.unknownOffset.IsValid() {\n\t\t\tpanic(fmt.Sprintf(\"%v: MessageSet with no unknown field\", mi.Desc.FullName()))\n\t\t}\n\t\tmi.isMessageSet = true\n\t}\n\tsort.Slice(mi.orderedCoderFields, func(i, j int) bool {\n\t\treturn mi.orderedCoderFields[i].num < mi.orderedCoderFields[j].num\n\t})\n\n\tvar maxDense protoreflect.FieldNumber\n\tfor _, cf := range mi.orderedCoderFields {\n\t\tif cf.num >= 16 && cf.num >= 2*maxDense {\n\t\t\tbreak\n\t\t}\n\t\tmaxDense = cf.num\n\t}\n\tmi.denseCoderFields = make([]*coderFieldInfo, maxDense+1)\n\tfor _, cf := range mi.orderedCoderFields {\n\t\tif int(cf.num) >= len(mi.denseCoderFields) {\n\t\t\tbreak\n\t\t}\n\t\tmi.denseCoderFields[cf.num] = cf\n\t}\n\n\t// To preserve compatibility with historic wire output, marshal oneofs last.\n\tif mi.Desc.Oneofs().Len() > 0 {\n\t\tsort.Slice(mi.orderedCoderFields, func(i, j int) bool {\n\t\t\tfi := fields.ByNumber(mi.orderedCoderFields[i].num)\n\t\t\tfj := fields.ByNumber(mi.orderedCoderFields[j].num)\n\t\t\treturn order.LegacyFieldOrder(fi, fj)\n\t\t})\n\t}\n\n\tmi.needsInitCheck = needsInitCheck(mi.Desc)\n\tif mi.methods.Marshal == nil && mi.methods.Size == nil {\n\t\tmi.methods.Flags |= protoiface.SupportMarshalDeterministic\n\t\tmi.methods.Marshal = mi.marshal\n\t\tmi.methods.Size = mi.size\n\t}\n\tif mi.methods.Unmarshal == nil {\n\t\tmi.methods.Flags |= protoiface.SupportUnmarshalDiscardUnknown\n\t\tmi.methods.Unmarshal = mi.unmarshal\n\t}\n\tif mi.methods.CheckInitialized == nil {\n\t\tmi.methods.CheckInitialized = mi.checkInitialized\n\t}\n\tif mi.methods.Merge == nil {\n\t\tmi.methods.Merge = mi.merge\n\t}\n\tif mi.methods.Equal == nil {\n\t\tmi.methods.Equal = equal\n\t}\n}\n\n// getUnknownBytes returns a *[]byte for the unknown fields.\n// It is the caller's responsibility to check whether the pointer is nil.\n// This function is specially designed to be inlineable.\nfunc (mi *MessageInfo) getUnknownBytes(p pointer) *[]byte {\n\tif mi.unknownPtrKind {\n\t\treturn *p.Apply(mi.unknownOffset).BytesPtr()\n\t} else {\n\t\treturn p.Apply(mi.unknownOffset).Bytes()\n\t}\n}\n\n// mutableUnknownBytes returns a *[]byte for the unknown fields.\n// The returned pointer is guaranteed to not be nil.\nfunc (mi *MessageInfo) mutableUnknownBytes(p pointer) *[]byte {\n\tif mi.unknownPtrKind {\n\t\tbp := p.Apply(mi.unknownOffset).BytesPtr()\n\t\tif *bp == nil {\n\t\t\t*bp = new([]byte)\n\t\t}\n\t\treturn *bp\n\t} else {\n\t\treturn p.Apply(mi.unknownOffset).Bytes()\n\t}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/codec_messageset.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"sort\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/encoding/messageset\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/internal/flags\"\n)\n\nfunc sizeMessageSet(mi *MessageInfo, p pointer, opts marshalOptions) (size int) {\n\tif !flags.ProtoLegacy {\n\t\treturn 0\n\t}\n\n\text := *p.Apply(mi.extensionOffset).Extensions()\n\tfor _, x := range ext {\n\t\txi := getExtensionFieldInfo(x.Type())\n\t\tif xi.funcs.size == nil {\n\t\t\tcontinue\n\t\t}\n\t\tnum, _ := protowire.DecodeTag(xi.wiretag)\n\t\tsize += messageset.SizeField(num)\n\t\tif fullyLazyExtensions(opts) {\n\t\t\t// Don't expand the extension, instead use the buffer to calculate size\n\t\t\tif lb := x.lazyBuffer(); lb != nil {\n\t\t\t\t// We got hold of the buffer, so it's still lazy.\n\t\t\t\t// Don't count the tag size in the extension buffer, it's already added.\n\t\t\t\tsize += protowire.SizeTag(messageset.FieldMessage) + len(lb) - xi.tagsize\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\t\tsize += xi.funcs.size(x.Value(), protowire.SizeTag(messageset.FieldMessage), opts)\n\t}\n\n\tif u := mi.getUnknownBytes(p); u != nil {\n\t\tsize += messageset.SizeUnknown(*u)\n\t}\n\n\treturn size\n}\n\nfunc marshalMessageSet(mi *MessageInfo, b []byte, p pointer, opts marshalOptions) ([]byte, error) {\n\tif !flags.ProtoLegacy {\n\t\treturn b, errors.New(\"no support for message_set_wire_format\")\n\t}\n\n\text := *p.Apply(mi.extensionOffset).Extensions()\n\tswitch len(ext) {\n\tcase 0:\n\tcase 1:\n\t\t// Fast-path for one extension: Don't bother sorting the keys.\n\t\tfor _, x := range ext {\n\t\t\tvar err error\n\t\t\tb, err = marshalMessageSetField(mi, b, x, opts)\n\t\t\tif err != nil {\n\t\t\t\treturn b, err\n\t\t\t}\n\t\t}\n\tdefault:\n\t\t// Sort the keys to provide a deterministic encoding.\n\t\t// Not sure this is required, but the old code does it.\n\t\tkeys := make([]int, 0, len(ext))\n\t\tfor k := range ext {\n\t\t\tkeys = append(keys, int(k))\n\t\t}\n\t\tsort.Ints(keys)\n\t\tfor _, k := range keys {\n\t\t\tvar err error\n\t\t\tb, err = marshalMessageSetField(mi, b, ext[int32(k)], opts)\n\t\t\tif err != nil {\n\t\t\t\treturn b, err\n\t\t\t}\n\t\t}\n\t}\n\n\tif u := mi.getUnknownBytes(p); u != nil {\n\t\tvar err error\n\t\tb, err = messageset.AppendUnknown(b, *u)\n\t\tif err != nil {\n\t\t\treturn b, err\n\t\t}\n\t}\n\n\treturn b, nil\n}\n\nfunc marshalMessageSetField(mi *MessageInfo, b []byte, x ExtensionField, opts marshalOptions) ([]byte, error) {\n\txi := getExtensionFieldInfo(x.Type())\n\tnum, _ := protowire.DecodeTag(xi.wiretag)\n\tb = messageset.AppendFieldStart(b, num)\n\n\tif fullyLazyExtensions(opts) {\n\t\t// Don't expand the extension if it's still in wire format, instead use the buffer content.\n\t\tif lb := x.lazyBuffer(); lb != nil {\n\t\t\t// The tag inside the lazy buffer is a different tag (the extension\n\t\t\t// number), but what we need here is the tag for FieldMessage:\n\t\t\tb = protowire.AppendVarint(b, protowire.EncodeTag(messageset.FieldMessage, protowire.BytesType))\n\t\t\tb = append(b, lb[xi.tagsize:]...)\n\t\t\tb = messageset.AppendFieldEnd(b)\n\t\t\treturn b, nil\n\t\t}\n\t}\n\n\tb, err := xi.funcs.marshal(b, x.Value(), protowire.EncodeTag(messageset.FieldMessage, protowire.BytesType), opts)\n\tif err != nil {\n\t\treturn b, err\n\t}\n\tb = messageset.AppendFieldEnd(b)\n\treturn b, nil\n}\n\nfunc unmarshalMessageSet(mi *MessageInfo, b []byte, p pointer, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tif !flags.ProtoLegacy {\n\t\treturn out, errors.New(\"no support for message_set_wire_format\")\n\t}\n\n\tep := p.Apply(mi.extensionOffset).Extensions()\n\tif *ep == nil {\n\t\t*ep = make(map[int32]ExtensionField)\n\t}\n\text := *ep\n\tinitialized := true\n\terr = messageset.Unmarshal(b, true, func(num protowire.Number, v []byte) error {\n\t\to, err := mi.unmarshalExtension(v, num, protowire.BytesType, ext, opts)\n\t\tif err == errUnknown {\n\t\t\tu := mi.mutableUnknownBytes(p)\n\t\t\t*u = protowire.AppendTag(*u, num, protowire.BytesType)\n\t\t\t*u = append(*u, v...)\n\t\t\treturn nil\n\t\t}\n\t\tif !o.initialized {\n\t\t\tinitialized = false\n\t\t}\n\t\treturn err\n\t})\n\tout.n = len(b)\n\tout.initialized = initialized\n\treturn out, err\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/codec_tables.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/strs\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\n// pointerCoderFuncs is a set of pointer encoding functions.\ntype pointerCoderFuncs struct {\n\tmi        *MessageInfo\n\tsize      func(p pointer, f *coderFieldInfo, opts marshalOptions) int\n\tmarshal   func(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error)\n\tunmarshal func(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (unmarshalOutput, error)\n\tisInit    func(p pointer, f *coderFieldInfo) error\n\tmerge     func(dst, src pointer, f *coderFieldInfo, opts mergeOptions)\n}\n\n// valueCoderFuncs is a set of protoreflect.Value encoding functions.\ntype valueCoderFuncs struct {\n\tsize      func(v protoreflect.Value, tagsize int, opts marshalOptions) int\n\tmarshal   func(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error)\n\tunmarshal func(b []byte, v protoreflect.Value, num protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (protoreflect.Value, unmarshalOutput, error)\n\tisInit    func(v protoreflect.Value) error\n\tmerge     func(dst, src protoreflect.Value, opts mergeOptions) protoreflect.Value\n}\n\n// fieldCoder returns pointer functions for a field, used for operating on\n// struct fields.\nfunc fieldCoder(fd protoreflect.FieldDescriptor, ft reflect.Type) (*MessageInfo, pointerCoderFuncs) {\n\tswitch {\n\tcase fd.IsMap():\n\t\treturn encoderFuncsForMap(fd, ft)\n\tcase fd.Cardinality() == protoreflect.Repeated && !fd.IsPacked():\n\t\t// Repeated fields (not packed).\n\t\tif ft.Kind() != reflect.Slice {\n\t\t\tbreak\n\t\t}\n\t\tft := ft.Elem()\n\t\tswitch fd.Kind() {\n\t\tcase protoreflect.BoolKind:\n\t\t\tif ft.Kind() == reflect.Bool {\n\t\t\t\treturn nil, coderBoolSlice\n\t\t\t}\n\t\tcase protoreflect.EnumKind:\n\t\t\tif ft.Kind() == reflect.Int32 {\n\t\t\t\treturn nil, coderEnumSlice\n\t\t\t}\n\t\tcase protoreflect.Int32Kind:\n\t\t\tif ft.Kind() == reflect.Int32 {\n\t\t\t\treturn nil, coderInt32Slice\n\t\t\t}\n\t\tcase protoreflect.Sint32Kind:\n\t\t\tif ft.Kind() == reflect.Int32 {\n\t\t\t\treturn nil, coderSint32Slice\n\t\t\t}\n\t\tcase protoreflect.Uint32Kind:\n\t\t\tif ft.Kind() == reflect.Uint32 {\n\t\t\t\treturn nil, coderUint32Slice\n\t\t\t}\n\t\tcase protoreflect.Int64Kind:\n\t\t\tif ft.Kind() == reflect.Int64 {\n\t\t\t\treturn nil, coderInt64Slice\n\t\t\t}\n\t\tcase protoreflect.Sint64Kind:\n\t\t\tif ft.Kind() == reflect.Int64 {\n\t\t\t\treturn nil, coderSint64Slice\n\t\t\t}\n\t\tcase protoreflect.Uint64Kind:\n\t\t\tif ft.Kind() == reflect.Uint64 {\n\t\t\t\treturn nil, coderUint64Slice\n\t\t\t}\n\t\tcase protoreflect.Sfixed32Kind:\n\t\t\tif ft.Kind() == reflect.Int32 {\n\t\t\t\treturn nil, coderSfixed32Slice\n\t\t\t}\n\t\tcase protoreflect.Fixed32Kind:\n\t\t\tif ft.Kind() == reflect.Uint32 {\n\t\t\t\treturn nil, coderFixed32Slice\n\t\t\t}\n\t\tcase protoreflect.FloatKind:\n\t\t\tif ft.Kind() == reflect.Float32 {\n\t\t\t\treturn nil, coderFloatSlice\n\t\t\t}\n\t\tcase protoreflect.Sfixed64Kind:\n\t\t\tif ft.Kind() == reflect.Int64 {\n\t\t\t\treturn nil, coderSfixed64Slice\n\t\t\t}\n\t\tcase protoreflect.Fixed64Kind:\n\t\t\tif ft.Kind() == reflect.Uint64 {\n\t\t\t\treturn nil, coderFixed64Slice\n\t\t\t}\n\t\tcase protoreflect.DoubleKind:\n\t\t\tif ft.Kind() == reflect.Float64 {\n\t\t\t\treturn nil, coderDoubleSlice\n\t\t\t}\n\t\tcase protoreflect.StringKind:\n\t\t\tif ft.Kind() == reflect.String && strs.EnforceUTF8(fd) {\n\t\t\t\treturn nil, coderStringSliceValidateUTF8\n\t\t\t}\n\t\t\tif ft.Kind() == reflect.String {\n\t\t\t\treturn nil, coderStringSlice\n\t\t\t}\n\t\t\tif ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 && strs.EnforceUTF8(fd) {\n\t\t\t\treturn nil, coderBytesSliceValidateUTF8\n\t\t\t}\n\t\t\tif ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 {\n\t\t\t\treturn nil, coderBytesSlice\n\t\t\t}\n\t\tcase protoreflect.BytesKind:\n\t\t\tif ft.Kind() == reflect.String {\n\t\t\t\treturn nil, coderStringSlice\n\t\t\t}\n\t\t\tif ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 {\n\t\t\t\treturn nil, coderBytesSlice\n\t\t\t}\n\t\tcase protoreflect.MessageKind:\n\t\t\treturn getMessageInfo(ft), makeMessageSliceFieldCoder(fd, ft)\n\t\tcase protoreflect.GroupKind:\n\t\t\treturn getMessageInfo(ft), makeGroupSliceFieldCoder(fd, ft)\n\t\t}\n\tcase fd.Cardinality() == protoreflect.Repeated && fd.IsPacked():\n\t\t// Packed repeated fields.\n\t\t//\n\t\t// Only repeated fields of primitive numeric types\n\t\t// (Varint, Fixed32, or Fixed64 wire type) can be packed.\n\t\tif ft.Kind() != reflect.Slice {\n\t\t\tbreak\n\t\t}\n\t\tft := ft.Elem()\n\t\tswitch fd.Kind() {\n\t\tcase protoreflect.BoolKind:\n\t\t\tif ft.Kind() == reflect.Bool {\n\t\t\t\treturn nil, coderBoolPackedSlice\n\t\t\t}\n\t\tcase protoreflect.EnumKind:\n\t\t\tif ft.Kind() == reflect.Int32 {\n\t\t\t\treturn nil, coderEnumPackedSlice\n\t\t\t}\n\t\tcase protoreflect.Int32Kind:\n\t\t\tif ft.Kind() == reflect.Int32 {\n\t\t\t\treturn nil, coderInt32PackedSlice\n\t\t\t}\n\t\tcase protoreflect.Sint32Kind:\n\t\t\tif ft.Kind() == reflect.Int32 {\n\t\t\t\treturn nil, coderSint32PackedSlice\n\t\t\t}\n\t\tcase protoreflect.Uint32Kind:\n\t\t\tif ft.Kind() == reflect.Uint32 {\n\t\t\t\treturn nil, coderUint32PackedSlice\n\t\t\t}\n\t\tcase protoreflect.Int64Kind:\n\t\t\tif ft.Kind() == reflect.Int64 {\n\t\t\t\treturn nil, coderInt64PackedSlice\n\t\t\t}\n\t\tcase protoreflect.Sint64Kind:\n\t\t\tif ft.Kind() == reflect.Int64 {\n\t\t\t\treturn nil, coderSint64PackedSlice\n\t\t\t}\n\t\tcase protoreflect.Uint64Kind:\n\t\t\tif ft.Kind() == reflect.Uint64 {\n\t\t\t\treturn nil, coderUint64PackedSlice\n\t\t\t}\n\t\tcase protoreflect.Sfixed32Kind:\n\t\t\tif ft.Kind() == reflect.Int32 {\n\t\t\t\treturn nil, coderSfixed32PackedSlice\n\t\t\t}\n\t\tcase protoreflect.Fixed32Kind:\n\t\t\tif ft.Kind() == reflect.Uint32 {\n\t\t\t\treturn nil, coderFixed32PackedSlice\n\t\t\t}\n\t\tcase protoreflect.FloatKind:\n\t\t\tif ft.Kind() == reflect.Float32 {\n\t\t\t\treturn nil, coderFloatPackedSlice\n\t\t\t}\n\t\tcase protoreflect.Sfixed64Kind:\n\t\t\tif ft.Kind() == reflect.Int64 {\n\t\t\t\treturn nil, coderSfixed64PackedSlice\n\t\t\t}\n\t\tcase protoreflect.Fixed64Kind:\n\t\t\tif ft.Kind() == reflect.Uint64 {\n\t\t\t\treturn nil, coderFixed64PackedSlice\n\t\t\t}\n\t\tcase protoreflect.DoubleKind:\n\t\t\tif ft.Kind() == reflect.Float64 {\n\t\t\t\treturn nil, coderDoublePackedSlice\n\t\t\t}\n\t\t}\n\tcase fd.Kind() == protoreflect.MessageKind:\n\t\treturn getMessageInfo(ft), makeMessageFieldCoder(fd, ft)\n\tcase fd.Kind() == protoreflect.GroupKind:\n\t\treturn getMessageInfo(ft), makeGroupFieldCoder(fd, ft)\n\tcase !fd.HasPresence() && fd.ContainingOneof() == nil:\n\t\t// Populated oneof fields always encode even if set to the zero value,\n\t\t// which normally are not encoded in proto3.\n\t\tswitch fd.Kind() {\n\t\tcase protoreflect.BoolKind:\n\t\t\tif ft.Kind() == reflect.Bool {\n\t\t\t\treturn nil, coderBoolNoZero\n\t\t\t}\n\t\tcase protoreflect.EnumKind:\n\t\t\tif ft.Kind() == reflect.Int32 {\n\t\t\t\treturn nil, coderEnumNoZero\n\t\t\t}\n\t\tcase protoreflect.Int32Kind:\n\t\t\tif ft.Kind() == reflect.Int32 {\n\t\t\t\treturn nil, coderInt32NoZero\n\t\t\t}\n\t\tcase protoreflect.Sint32Kind:\n\t\t\tif ft.Kind() == reflect.Int32 {\n\t\t\t\treturn nil, coderSint32NoZero\n\t\t\t}\n\t\tcase protoreflect.Uint32Kind:\n\t\t\tif ft.Kind() == reflect.Uint32 {\n\t\t\t\treturn nil, coderUint32NoZero\n\t\t\t}\n\t\tcase protoreflect.Int64Kind:\n\t\t\tif ft.Kind() == reflect.Int64 {\n\t\t\t\treturn nil, coderInt64NoZero\n\t\t\t}\n\t\tcase protoreflect.Sint64Kind:\n\t\t\tif ft.Kind() == reflect.Int64 {\n\t\t\t\treturn nil, coderSint64NoZero\n\t\t\t}\n\t\tcase protoreflect.Uint64Kind:\n\t\t\tif ft.Kind() == reflect.Uint64 {\n\t\t\t\treturn nil, coderUint64NoZero\n\t\t\t}\n\t\tcase protoreflect.Sfixed32Kind:\n\t\t\tif ft.Kind() == reflect.Int32 {\n\t\t\t\treturn nil, coderSfixed32NoZero\n\t\t\t}\n\t\tcase protoreflect.Fixed32Kind:\n\t\t\tif ft.Kind() == reflect.Uint32 {\n\t\t\t\treturn nil, coderFixed32NoZero\n\t\t\t}\n\t\tcase protoreflect.FloatKind:\n\t\t\tif ft.Kind() == reflect.Float32 {\n\t\t\t\treturn nil, coderFloatNoZero\n\t\t\t}\n\t\tcase protoreflect.Sfixed64Kind:\n\t\t\tif ft.Kind() == reflect.Int64 {\n\t\t\t\treturn nil, coderSfixed64NoZero\n\t\t\t}\n\t\tcase protoreflect.Fixed64Kind:\n\t\t\tif ft.Kind() == reflect.Uint64 {\n\t\t\t\treturn nil, coderFixed64NoZero\n\t\t\t}\n\t\tcase protoreflect.DoubleKind:\n\t\t\tif ft.Kind() == reflect.Float64 {\n\t\t\t\treturn nil, coderDoubleNoZero\n\t\t\t}\n\t\tcase protoreflect.StringKind:\n\t\t\tif ft.Kind() == reflect.String && strs.EnforceUTF8(fd) {\n\t\t\t\treturn nil, coderStringNoZeroValidateUTF8\n\t\t\t}\n\t\t\tif ft.Kind() == reflect.String {\n\t\t\t\treturn nil, coderStringNoZero\n\t\t\t}\n\t\t\tif ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 && strs.EnforceUTF8(fd) {\n\t\t\t\treturn nil, coderBytesNoZeroValidateUTF8\n\t\t\t}\n\t\t\tif ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 {\n\t\t\t\treturn nil, coderBytesNoZero\n\t\t\t}\n\t\tcase protoreflect.BytesKind:\n\t\t\tif ft.Kind() == reflect.String {\n\t\t\t\treturn nil, coderStringNoZero\n\t\t\t}\n\t\t\tif ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 {\n\t\t\t\treturn nil, coderBytesNoZero\n\t\t\t}\n\t\t}\n\tcase ft.Kind() == reflect.Ptr:\n\t\tft := ft.Elem()\n\t\tswitch fd.Kind() {\n\t\tcase protoreflect.BoolKind:\n\t\t\tif ft.Kind() == reflect.Bool {\n\t\t\t\treturn nil, coderBoolPtr\n\t\t\t}\n\t\tcase protoreflect.EnumKind:\n\t\t\tif ft.Kind() == reflect.Int32 {\n\t\t\t\treturn nil, coderEnumPtr\n\t\t\t}\n\t\tcase protoreflect.Int32Kind:\n\t\t\tif ft.Kind() == reflect.Int32 {\n\t\t\t\treturn nil, coderInt32Ptr\n\t\t\t}\n\t\tcase protoreflect.Sint32Kind:\n\t\t\tif ft.Kind() == reflect.Int32 {\n\t\t\t\treturn nil, coderSint32Ptr\n\t\t\t}\n\t\tcase protoreflect.Uint32Kind:\n\t\t\tif ft.Kind() == reflect.Uint32 {\n\t\t\t\treturn nil, coderUint32Ptr\n\t\t\t}\n\t\tcase protoreflect.Int64Kind:\n\t\t\tif ft.Kind() == reflect.Int64 {\n\t\t\t\treturn nil, coderInt64Ptr\n\t\t\t}\n\t\tcase protoreflect.Sint64Kind:\n\t\t\tif ft.Kind() == reflect.Int64 {\n\t\t\t\treturn nil, coderSint64Ptr\n\t\t\t}\n\t\tcase protoreflect.Uint64Kind:\n\t\t\tif ft.Kind() == reflect.Uint64 {\n\t\t\t\treturn nil, coderUint64Ptr\n\t\t\t}\n\t\tcase protoreflect.Sfixed32Kind:\n\t\t\tif ft.Kind() == reflect.Int32 {\n\t\t\t\treturn nil, coderSfixed32Ptr\n\t\t\t}\n\t\tcase protoreflect.Fixed32Kind:\n\t\t\tif ft.Kind() == reflect.Uint32 {\n\t\t\t\treturn nil, coderFixed32Ptr\n\t\t\t}\n\t\tcase protoreflect.FloatKind:\n\t\t\tif ft.Kind() == reflect.Float32 {\n\t\t\t\treturn nil, coderFloatPtr\n\t\t\t}\n\t\tcase protoreflect.Sfixed64Kind:\n\t\t\tif ft.Kind() == reflect.Int64 {\n\t\t\t\treturn nil, coderSfixed64Ptr\n\t\t\t}\n\t\tcase protoreflect.Fixed64Kind:\n\t\t\tif ft.Kind() == reflect.Uint64 {\n\t\t\t\treturn nil, coderFixed64Ptr\n\t\t\t}\n\t\tcase protoreflect.DoubleKind:\n\t\t\tif ft.Kind() == reflect.Float64 {\n\t\t\t\treturn nil, coderDoublePtr\n\t\t\t}\n\t\tcase protoreflect.StringKind:\n\t\t\tif ft.Kind() == reflect.String && strs.EnforceUTF8(fd) {\n\t\t\t\treturn nil, coderStringPtrValidateUTF8\n\t\t\t}\n\t\t\tif ft.Kind() == reflect.String {\n\t\t\t\treturn nil, coderStringPtr\n\t\t\t}\n\t\tcase protoreflect.BytesKind:\n\t\t\tif ft.Kind() == reflect.String {\n\t\t\t\treturn nil, coderStringPtr\n\t\t\t}\n\t\t}\n\tdefault:\n\t\tswitch fd.Kind() {\n\t\tcase protoreflect.BoolKind:\n\t\t\tif ft.Kind() == reflect.Bool {\n\t\t\t\treturn nil, coderBool\n\t\t\t}\n\t\tcase protoreflect.EnumKind:\n\t\t\tif ft.Kind() == reflect.Int32 {\n\t\t\t\treturn nil, coderEnum\n\t\t\t}\n\t\tcase protoreflect.Int32Kind:\n\t\t\tif ft.Kind() == reflect.Int32 {\n\t\t\t\treturn nil, coderInt32\n\t\t\t}\n\t\tcase protoreflect.Sint32Kind:\n\t\t\tif ft.Kind() == reflect.Int32 {\n\t\t\t\treturn nil, coderSint32\n\t\t\t}\n\t\tcase protoreflect.Uint32Kind:\n\t\t\tif ft.Kind() == reflect.Uint32 {\n\t\t\t\treturn nil, coderUint32\n\t\t\t}\n\t\tcase protoreflect.Int64Kind:\n\t\t\tif ft.Kind() == reflect.Int64 {\n\t\t\t\treturn nil, coderInt64\n\t\t\t}\n\t\tcase protoreflect.Sint64Kind:\n\t\t\tif ft.Kind() == reflect.Int64 {\n\t\t\t\treturn nil, coderSint64\n\t\t\t}\n\t\tcase protoreflect.Uint64Kind:\n\t\t\tif ft.Kind() == reflect.Uint64 {\n\t\t\t\treturn nil, coderUint64\n\t\t\t}\n\t\tcase protoreflect.Sfixed32Kind:\n\t\t\tif ft.Kind() == reflect.Int32 {\n\t\t\t\treturn nil, coderSfixed32\n\t\t\t}\n\t\tcase protoreflect.Fixed32Kind:\n\t\t\tif ft.Kind() == reflect.Uint32 {\n\t\t\t\treturn nil, coderFixed32\n\t\t\t}\n\t\tcase protoreflect.FloatKind:\n\t\t\tif ft.Kind() == reflect.Float32 {\n\t\t\t\treturn nil, coderFloat\n\t\t\t}\n\t\tcase protoreflect.Sfixed64Kind:\n\t\t\tif ft.Kind() == reflect.Int64 {\n\t\t\t\treturn nil, coderSfixed64\n\t\t\t}\n\t\tcase protoreflect.Fixed64Kind:\n\t\t\tif ft.Kind() == reflect.Uint64 {\n\t\t\t\treturn nil, coderFixed64\n\t\t\t}\n\t\tcase protoreflect.DoubleKind:\n\t\t\tif ft.Kind() == reflect.Float64 {\n\t\t\t\treturn nil, coderDouble\n\t\t\t}\n\t\tcase protoreflect.StringKind:\n\t\t\tif ft.Kind() == reflect.String && strs.EnforceUTF8(fd) {\n\t\t\t\treturn nil, coderStringValidateUTF8\n\t\t\t}\n\t\t\tif ft.Kind() == reflect.String {\n\t\t\t\treturn nil, coderString\n\t\t\t}\n\t\t\tif ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 && strs.EnforceUTF8(fd) {\n\t\t\t\treturn nil, coderBytesValidateUTF8\n\t\t\t}\n\t\t\tif ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 {\n\t\t\t\treturn nil, coderBytes\n\t\t\t}\n\t\tcase protoreflect.BytesKind:\n\t\t\tif ft.Kind() == reflect.String {\n\t\t\t\treturn nil, coderString\n\t\t\t}\n\t\t\tif ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 {\n\t\t\t\treturn nil, coderBytes\n\t\t\t}\n\t\t}\n\t}\n\tpanic(fmt.Sprintf(\"invalid type: no encoder for %v %v %v/%v\", fd.FullName(), fd.Cardinality(), fd.Kind(), ft))\n}\n\n// encoderFuncsForValue returns value functions for a field, used for\n// extension values and map encoding.\nfunc encoderFuncsForValue(fd protoreflect.FieldDescriptor) valueCoderFuncs {\n\tswitch {\n\tcase fd.Cardinality() == protoreflect.Repeated && !fd.IsPacked():\n\t\tswitch fd.Kind() {\n\t\tcase protoreflect.BoolKind:\n\t\t\treturn coderBoolSliceValue\n\t\tcase protoreflect.EnumKind:\n\t\t\treturn coderEnumSliceValue\n\t\tcase protoreflect.Int32Kind:\n\t\t\treturn coderInt32SliceValue\n\t\tcase protoreflect.Sint32Kind:\n\t\t\treturn coderSint32SliceValue\n\t\tcase protoreflect.Uint32Kind:\n\t\t\treturn coderUint32SliceValue\n\t\tcase protoreflect.Int64Kind:\n\t\t\treturn coderInt64SliceValue\n\t\tcase protoreflect.Sint64Kind:\n\t\t\treturn coderSint64SliceValue\n\t\tcase protoreflect.Uint64Kind:\n\t\t\treturn coderUint64SliceValue\n\t\tcase protoreflect.Sfixed32Kind:\n\t\t\treturn coderSfixed32SliceValue\n\t\tcase protoreflect.Fixed32Kind:\n\t\t\treturn coderFixed32SliceValue\n\t\tcase protoreflect.FloatKind:\n\t\t\treturn coderFloatSliceValue\n\t\tcase protoreflect.Sfixed64Kind:\n\t\t\treturn coderSfixed64SliceValue\n\t\tcase protoreflect.Fixed64Kind:\n\t\t\treturn coderFixed64SliceValue\n\t\tcase protoreflect.DoubleKind:\n\t\t\treturn coderDoubleSliceValue\n\t\tcase protoreflect.StringKind:\n\t\t\t// We don't have a UTF-8 validating coder for repeated string fields.\n\t\t\t// Value coders are used for extensions and maps.\n\t\t\t// Extensions are never proto3, and maps never contain lists.\n\t\t\treturn coderStringSliceValue\n\t\tcase protoreflect.BytesKind:\n\t\t\treturn coderBytesSliceValue\n\t\tcase protoreflect.MessageKind:\n\t\t\treturn coderMessageSliceValue\n\t\tcase protoreflect.GroupKind:\n\t\t\treturn coderGroupSliceValue\n\t\t}\n\tcase fd.Cardinality() == protoreflect.Repeated && fd.IsPacked():\n\t\tswitch fd.Kind() {\n\t\tcase protoreflect.BoolKind:\n\t\t\treturn coderBoolPackedSliceValue\n\t\tcase protoreflect.EnumKind:\n\t\t\treturn coderEnumPackedSliceValue\n\t\tcase protoreflect.Int32Kind:\n\t\t\treturn coderInt32PackedSliceValue\n\t\tcase protoreflect.Sint32Kind:\n\t\t\treturn coderSint32PackedSliceValue\n\t\tcase protoreflect.Uint32Kind:\n\t\t\treturn coderUint32PackedSliceValue\n\t\tcase protoreflect.Int64Kind:\n\t\t\treturn coderInt64PackedSliceValue\n\t\tcase protoreflect.Sint64Kind:\n\t\t\treturn coderSint64PackedSliceValue\n\t\tcase protoreflect.Uint64Kind:\n\t\t\treturn coderUint64PackedSliceValue\n\t\tcase protoreflect.Sfixed32Kind:\n\t\t\treturn coderSfixed32PackedSliceValue\n\t\tcase protoreflect.Fixed32Kind:\n\t\t\treturn coderFixed32PackedSliceValue\n\t\tcase protoreflect.FloatKind:\n\t\t\treturn coderFloatPackedSliceValue\n\t\tcase protoreflect.Sfixed64Kind:\n\t\t\treturn coderSfixed64PackedSliceValue\n\t\tcase protoreflect.Fixed64Kind:\n\t\t\treturn coderFixed64PackedSliceValue\n\t\tcase protoreflect.DoubleKind:\n\t\t\treturn coderDoublePackedSliceValue\n\t\t}\n\tdefault:\n\t\tswitch fd.Kind() {\n\t\tdefault:\n\t\tcase protoreflect.BoolKind:\n\t\t\treturn coderBoolValue\n\t\tcase protoreflect.EnumKind:\n\t\t\treturn coderEnumValue\n\t\tcase protoreflect.Int32Kind:\n\t\t\treturn coderInt32Value\n\t\tcase protoreflect.Sint32Kind:\n\t\t\treturn coderSint32Value\n\t\tcase protoreflect.Uint32Kind:\n\t\t\treturn coderUint32Value\n\t\tcase protoreflect.Int64Kind:\n\t\t\treturn coderInt64Value\n\t\tcase protoreflect.Sint64Kind:\n\t\t\treturn coderSint64Value\n\t\tcase protoreflect.Uint64Kind:\n\t\t\treturn coderUint64Value\n\t\tcase protoreflect.Sfixed32Kind:\n\t\t\treturn coderSfixed32Value\n\t\tcase protoreflect.Fixed32Kind:\n\t\t\treturn coderFixed32Value\n\t\tcase protoreflect.FloatKind:\n\t\t\treturn coderFloatValue\n\t\tcase protoreflect.Sfixed64Kind:\n\t\t\treturn coderSfixed64Value\n\t\tcase protoreflect.Fixed64Kind:\n\t\t\treturn coderFixed64Value\n\t\tcase protoreflect.DoubleKind:\n\t\t\treturn coderDoubleValue\n\t\tcase protoreflect.StringKind:\n\t\t\tif strs.EnforceUTF8(fd) {\n\t\t\t\treturn coderStringValueValidateUTF8\n\t\t\t}\n\t\t\treturn coderStringValue\n\t\tcase protoreflect.BytesKind:\n\t\t\treturn coderBytesValue\n\t\tcase protoreflect.MessageKind:\n\t\t\treturn coderMessageValue\n\t\tcase protoreflect.GroupKind:\n\t\t\treturn coderGroupValue\n\t\t}\n\t}\n\tpanic(fmt.Sprintf(\"invalid field: no encoder for %v %v %v\", fd.FullName(), fd.Cardinality(), fd.Kind()))\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/codec_unsafe.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\n// When using unsafe pointers, we can just treat enum values as int32s.\n\nvar (\n\tcoderEnumNoZero      = coderInt32NoZero\n\tcoderEnum            = coderInt32\n\tcoderEnumPtr         = coderInt32Ptr\n\tcoderEnumSlice       = coderInt32Slice\n\tcoderEnumPackedSlice = coderInt32PackedSlice\n)\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/convert.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\n// unwrapper unwraps the value to the underlying value.\n// This is implemented by List and Map.\ntype unwrapper interface {\n\tprotoUnwrap() any\n}\n\n// A Converter coverts to/from Go reflect.Value types and protobuf protoreflect.Value types.\ntype Converter interface {\n\t// PBValueOf converts a reflect.Value to a protoreflect.Value.\n\tPBValueOf(reflect.Value) protoreflect.Value\n\n\t// GoValueOf converts a protoreflect.Value to a reflect.Value.\n\tGoValueOf(protoreflect.Value) reflect.Value\n\n\t// IsValidPB returns whether a protoreflect.Value is compatible with this type.\n\tIsValidPB(protoreflect.Value) bool\n\n\t// IsValidGo returns whether a reflect.Value is compatible with this type.\n\tIsValidGo(reflect.Value) bool\n\n\t// New returns a new field value.\n\t// For scalars, it returns the default value of the field.\n\t// For composite types, it returns a new mutable value.\n\tNew() protoreflect.Value\n\n\t// Zero returns a new field value.\n\t// For scalars, it returns the default value of the field.\n\t// For composite types, it returns an immutable, empty value.\n\tZero() protoreflect.Value\n}\n\n// NewConverter matches a Go type with a protobuf field and returns a Converter\n// that converts between the two. Enums must be a named int32 kind that\n// implements protoreflect.Enum, and messages must be pointer to a named\n// struct type that implements protoreflect.ProtoMessage.\n//\n// This matcher deliberately supports a wider range of Go types than what\n// protoc-gen-go historically generated to be able to automatically wrap some\n// v1 messages generated by other forks of protoc-gen-go.\nfunc NewConverter(t reflect.Type, fd protoreflect.FieldDescriptor) Converter {\n\tswitch {\n\tcase fd.IsList():\n\t\treturn newListConverter(t, fd)\n\tcase fd.IsMap():\n\t\treturn newMapConverter(t, fd)\n\tdefault:\n\t\treturn newSingularConverter(t, fd)\n\t}\n}\n\nvar (\n\tboolType    = reflect.TypeOf(bool(false))\n\tint32Type   = reflect.TypeOf(int32(0))\n\tint64Type   = reflect.TypeOf(int64(0))\n\tuint32Type  = reflect.TypeOf(uint32(0))\n\tuint64Type  = reflect.TypeOf(uint64(0))\n\tfloat32Type = reflect.TypeOf(float32(0))\n\tfloat64Type = reflect.TypeOf(float64(0))\n\tstringType  = reflect.TypeOf(string(\"\"))\n\tbytesType   = reflect.TypeOf([]byte(nil))\n\tbyteType    = reflect.TypeOf(byte(0))\n)\n\nvar (\n\tboolZero    = protoreflect.ValueOfBool(false)\n\tint32Zero   = protoreflect.ValueOfInt32(0)\n\tint64Zero   = protoreflect.ValueOfInt64(0)\n\tuint32Zero  = protoreflect.ValueOfUint32(0)\n\tuint64Zero  = protoreflect.ValueOfUint64(0)\n\tfloat32Zero = protoreflect.ValueOfFloat32(0)\n\tfloat64Zero = protoreflect.ValueOfFloat64(0)\n\tstringZero  = protoreflect.ValueOfString(\"\")\n\tbytesZero   = protoreflect.ValueOfBytes(nil)\n)\n\nfunc newSingularConverter(t reflect.Type, fd protoreflect.FieldDescriptor) Converter {\n\tdefVal := func(fd protoreflect.FieldDescriptor, zero protoreflect.Value) protoreflect.Value {\n\t\tif fd.Cardinality() == protoreflect.Repeated {\n\t\t\t// Default isn't defined for repeated fields.\n\t\t\treturn zero\n\t\t}\n\t\treturn fd.Default()\n\t}\n\tswitch fd.Kind() {\n\tcase protoreflect.BoolKind:\n\t\tif t.Kind() == reflect.Bool {\n\t\t\treturn &boolConverter{t, defVal(fd, boolZero)}\n\t\t}\n\tcase protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind:\n\t\tif t.Kind() == reflect.Int32 {\n\t\t\treturn &int32Converter{t, defVal(fd, int32Zero)}\n\t\t}\n\tcase protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind:\n\t\tif t.Kind() == reflect.Int64 {\n\t\t\treturn &int64Converter{t, defVal(fd, int64Zero)}\n\t\t}\n\tcase protoreflect.Uint32Kind, protoreflect.Fixed32Kind:\n\t\tif t.Kind() == reflect.Uint32 {\n\t\t\treturn &uint32Converter{t, defVal(fd, uint32Zero)}\n\t\t}\n\tcase protoreflect.Uint64Kind, protoreflect.Fixed64Kind:\n\t\tif t.Kind() == reflect.Uint64 {\n\t\t\treturn &uint64Converter{t, defVal(fd, uint64Zero)}\n\t\t}\n\tcase protoreflect.FloatKind:\n\t\tif t.Kind() == reflect.Float32 {\n\t\t\treturn &float32Converter{t, defVal(fd, float32Zero)}\n\t\t}\n\tcase protoreflect.DoubleKind:\n\t\tif t.Kind() == reflect.Float64 {\n\t\t\treturn &float64Converter{t, defVal(fd, float64Zero)}\n\t\t}\n\tcase protoreflect.StringKind:\n\t\tif t.Kind() == reflect.String || (t.Kind() == reflect.Slice && t.Elem() == byteType) {\n\t\t\treturn &stringConverter{t, defVal(fd, stringZero)}\n\t\t}\n\tcase protoreflect.BytesKind:\n\t\tif t.Kind() == reflect.String || (t.Kind() == reflect.Slice && t.Elem() == byteType) {\n\t\t\treturn &bytesConverter{t, defVal(fd, bytesZero)}\n\t\t}\n\tcase protoreflect.EnumKind:\n\t\t// Handle enums, which must be a named int32 type.\n\t\tif t.Kind() == reflect.Int32 {\n\t\t\treturn newEnumConverter(t, fd)\n\t\t}\n\tcase protoreflect.MessageKind, protoreflect.GroupKind:\n\t\treturn newMessageConverter(t)\n\t}\n\tpanic(fmt.Sprintf(\"invalid Go type %v for field %v\", t, fd.FullName()))\n}\n\ntype boolConverter struct {\n\tgoType reflect.Type\n\tdef    protoreflect.Value\n}\n\nfunc (c *boolConverter) PBValueOf(v reflect.Value) protoreflect.Value {\n\tif v.Type() != c.goType {\n\t\tpanic(fmt.Sprintf(\"invalid type: got %v, want %v\", v.Type(), c.goType))\n\t}\n\treturn protoreflect.ValueOfBool(v.Bool())\n}\nfunc (c *boolConverter) GoValueOf(v protoreflect.Value) reflect.Value {\n\treturn reflect.ValueOf(v.Bool()).Convert(c.goType)\n}\nfunc (c *boolConverter) IsValidPB(v protoreflect.Value) bool {\n\t_, ok := v.Interface().(bool)\n\treturn ok\n}\nfunc (c *boolConverter) IsValidGo(v reflect.Value) bool {\n\treturn v.IsValid() && v.Type() == c.goType\n}\nfunc (c *boolConverter) New() protoreflect.Value  { return c.def }\nfunc (c *boolConverter) Zero() protoreflect.Value { return c.def }\n\ntype int32Converter struct {\n\tgoType reflect.Type\n\tdef    protoreflect.Value\n}\n\nfunc (c *int32Converter) PBValueOf(v reflect.Value) protoreflect.Value {\n\tif v.Type() != c.goType {\n\t\tpanic(fmt.Sprintf(\"invalid type: got %v, want %v\", v.Type(), c.goType))\n\t}\n\treturn protoreflect.ValueOfInt32(int32(v.Int()))\n}\nfunc (c *int32Converter) GoValueOf(v protoreflect.Value) reflect.Value {\n\treturn reflect.ValueOf(int32(v.Int())).Convert(c.goType)\n}\nfunc (c *int32Converter) IsValidPB(v protoreflect.Value) bool {\n\t_, ok := v.Interface().(int32)\n\treturn ok\n}\nfunc (c *int32Converter) IsValidGo(v reflect.Value) bool {\n\treturn v.IsValid() && v.Type() == c.goType\n}\nfunc (c *int32Converter) New() protoreflect.Value  { return c.def }\nfunc (c *int32Converter) Zero() protoreflect.Value { return c.def }\n\ntype int64Converter struct {\n\tgoType reflect.Type\n\tdef    protoreflect.Value\n}\n\nfunc (c *int64Converter) PBValueOf(v reflect.Value) protoreflect.Value {\n\tif v.Type() != c.goType {\n\t\tpanic(fmt.Sprintf(\"invalid type: got %v, want %v\", v.Type(), c.goType))\n\t}\n\treturn protoreflect.ValueOfInt64(int64(v.Int()))\n}\nfunc (c *int64Converter) GoValueOf(v protoreflect.Value) reflect.Value {\n\treturn reflect.ValueOf(int64(v.Int())).Convert(c.goType)\n}\nfunc (c *int64Converter) IsValidPB(v protoreflect.Value) bool {\n\t_, ok := v.Interface().(int64)\n\treturn ok\n}\nfunc (c *int64Converter) IsValidGo(v reflect.Value) bool {\n\treturn v.IsValid() && v.Type() == c.goType\n}\nfunc (c *int64Converter) New() protoreflect.Value  { return c.def }\nfunc (c *int64Converter) Zero() protoreflect.Value { return c.def }\n\ntype uint32Converter struct {\n\tgoType reflect.Type\n\tdef    protoreflect.Value\n}\n\nfunc (c *uint32Converter) PBValueOf(v reflect.Value) protoreflect.Value {\n\tif v.Type() != c.goType {\n\t\tpanic(fmt.Sprintf(\"invalid type: got %v, want %v\", v.Type(), c.goType))\n\t}\n\treturn protoreflect.ValueOfUint32(uint32(v.Uint()))\n}\nfunc (c *uint32Converter) GoValueOf(v protoreflect.Value) reflect.Value {\n\treturn reflect.ValueOf(uint32(v.Uint())).Convert(c.goType)\n}\nfunc (c *uint32Converter) IsValidPB(v protoreflect.Value) bool {\n\t_, ok := v.Interface().(uint32)\n\treturn ok\n}\nfunc (c *uint32Converter) IsValidGo(v reflect.Value) bool {\n\treturn v.IsValid() && v.Type() == c.goType\n}\nfunc (c *uint32Converter) New() protoreflect.Value  { return c.def }\nfunc (c *uint32Converter) Zero() protoreflect.Value { return c.def }\n\ntype uint64Converter struct {\n\tgoType reflect.Type\n\tdef    protoreflect.Value\n}\n\nfunc (c *uint64Converter) PBValueOf(v reflect.Value) protoreflect.Value {\n\tif v.Type() != c.goType {\n\t\tpanic(fmt.Sprintf(\"invalid type: got %v, want %v\", v.Type(), c.goType))\n\t}\n\treturn protoreflect.ValueOfUint64(uint64(v.Uint()))\n}\nfunc (c *uint64Converter) GoValueOf(v protoreflect.Value) reflect.Value {\n\treturn reflect.ValueOf(uint64(v.Uint())).Convert(c.goType)\n}\nfunc (c *uint64Converter) IsValidPB(v protoreflect.Value) bool {\n\t_, ok := v.Interface().(uint64)\n\treturn ok\n}\nfunc (c *uint64Converter) IsValidGo(v reflect.Value) bool {\n\treturn v.IsValid() && v.Type() == c.goType\n}\nfunc (c *uint64Converter) New() protoreflect.Value  { return c.def }\nfunc (c *uint64Converter) Zero() protoreflect.Value { return c.def }\n\ntype float32Converter struct {\n\tgoType reflect.Type\n\tdef    protoreflect.Value\n}\n\nfunc (c *float32Converter) PBValueOf(v reflect.Value) protoreflect.Value {\n\tif v.Type() != c.goType {\n\t\tpanic(fmt.Sprintf(\"invalid type: got %v, want %v\", v.Type(), c.goType))\n\t}\n\treturn protoreflect.ValueOfFloat32(float32(v.Float()))\n}\nfunc (c *float32Converter) GoValueOf(v protoreflect.Value) reflect.Value {\n\treturn reflect.ValueOf(float32(v.Float())).Convert(c.goType)\n}\nfunc (c *float32Converter) IsValidPB(v protoreflect.Value) bool {\n\t_, ok := v.Interface().(float32)\n\treturn ok\n}\nfunc (c *float32Converter) IsValidGo(v reflect.Value) bool {\n\treturn v.IsValid() && v.Type() == c.goType\n}\nfunc (c *float32Converter) New() protoreflect.Value  { return c.def }\nfunc (c *float32Converter) Zero() protoreflect.Value { return c.def }\n\ntype float64Converter struct {\n\tgoType reflect.Type\n\tdef    protoreflect.Value\n}\n\nfunc (c *float64Converter) PBValueOf(v reflect.Value) protoreflect.Value {\n\tif v.Type() != c.goType {\n\t\tpanic(fmt.Sprintf(\"invalid type: got %v, want %v\", v.Type(), c.goType))\n\t}\n\treturn protoreflect.ValueOfFloat64(float64(v.Float()))\n}\nfunc (c *float64Converter) GoValueOf(v protoreflect.Value) reflect.Value {\n\treturn reflect.ValueOf(float64(v.Float())).Convert(c.goType)\n}\nfunc (c *float64Converter) IsValidPB(v protoreflect.Value) bool {\n\t_, ok := v.Interface().(float64)\n\treturn ok\n}\nfunc (c *float64Converter) IsValidGo(v reflect.Value) bool {\n\treturn v.IsValid() && v.Type() == c.goType\n}\nfunc (c *float64Converter) New() protoreflect.Value  { return c.def }\nfunc (c *float64Converter) Zero() protoreflect.Value { return c.def }\n\ntype stringConverter struct {\n\tgoType reflect.Type\n\tdef    protoreflect.Value\n}\n\nfunc (c *stringConverter) PBValueOf(v reflect.Value) protoreflect.Value {\n\tif v.Type() != c.goType {\n\t\tpanic(fmt.Sprintf(\"invalid type: got %v, want %v\", v.Type(), c.goType))\n\t}\n\treturn protoreflect.ValueOfString(v.Convert(stringType).String())\n}\nfunc (c *stringConverter) GoValueOf(v protoreflect.Value) reflect.Value {\n\t// protoreflect.Value.String never panics, so we go through an interface\n\t// conversion here to check the type.\n\ts := v.Interface().(string)\n\tif c.goType.Kind() == reflect.Slice && s == \"\" {\n\t\treturn reflect.Zero(c.goType) // ensure empty string is []byte(nil)\n\t}\n\treturn reflect.ValueOf(s).Convert(c.goType)\n}\nfunc (c *stringConverter) IsValidPB(v protoreflect.Value) bool {\n\t_, ok := v.Interface().(string)\n\treturn ok\n}\nfunc (c *stringConverter) IsValidGo(v reflect.Value) bool {\n\treturn v.IsValid() && v.Type() == c.goType\n}\nfunc (c *stringConverter) New() protoreflect.Value  { return c.def }\nfunc (c *stringConverter) Zero() protoreflect.Value { return c.def }\n\ntype bytesConverter struct {\n\tgoType reflect.Type\n\tdef    protoreflect.Value\n}\n\nfunc (c *bytesConverter) PBValueOf(v reflect.Value) protoreflect.Value {\n\tif v.Type() != c.goType {\n\t\tpanic(fmt.Sprintf(\"invalid type: got %v, want %v\", v.Type(), c.goType))\n\t}\n\tif c.goType.Kind() == reflect.String && v.Len() == 0 {\n\t\treturn protoreflect.ValueOfBytes(nil) // ensure empty string is []byte(nil)\n\t}\n\treturn protoreflect.ValueOfBytes(v.Convert(bytesType).Bytes())\n}\nfunc (c *bytesConverter) GoValueOf(v protoreflect.Value) reflect.Value {\n\treturn reflect.ValueOf(v.Bytes()).Convert(c.goType)\n}\nfunc (c *bytesConverter) IsValidPB(v protoreflect.Value) bool {\n\t_, ok := v.Interface().([]byte)\n\treturn ok\n}\nfunc (c *bytesConverter) IsValidGo(v reflect.Value) bool {\n\treturn v.IsValid() && v.Type() == c.goType\n}\nfunc (c *bytesConverter) New() protoreflect.Value  { return c.def }\nfunc (c *bytesConverter) Zero() protoreflect.Value { return c.def }\n\ntype enumConverter struct {\n\tgoType reflect.Type\n\tdef    protoreflect.Value\n}\n\nfunc newEnumConverter(goType reflect.Type, fd protoreflect.FieldDescriptor) Converter {\n\tvar def protoreflect.Value\n\tif fd.Cardinality() == protoreflect.Repeated {\n\t\tdef = protoreflect.ValueOfEnum(fd.Enum().Values().Get(0).Number())\n\t} else {\n\t\tdef = fd.Default()\n\t}\n\treturn &enumConverter{goType, def}\n}\n\nfunc (c *enumConverter) PBValueOf(v reflect.Value) protoreflect.Value {\n\tif v.Type() != c.goType {\n\t\tpanic(fmt.Sprintf(\"invalid type: got %v, want %v\", v.Type(), c.goType))\n\t}\n\treturn protoreflect.ValueOfEnum(protoreflect.EnumNumber(v.Int()))\n}\n\nfunc (c *enumConverter) GoValueOf(v protoreflect.Value) reflect.Value {\n\treturn reflect.ValueOf(v.Enum()).Convert(c.goType)\n}\n\nfunc (c *enumConverter) IsValidPB(v protoreflect.Value) bool {\n\t_, ok := v.Interface().(protoreflect.EnumNumber)\n\treturn ok\n}\n\nfunc (c *enumConverter) IsValidGo(v reflect.Value) bool {\n\treturn v.IsValid() && v.Type() == c.goType\n}\n\nfunc (c *enumConverter) New() protoreflect.Value {\n\treturn c.def\n}\n\nfunc (c *enumConverter) Zero() protoreflect.Value {\n\treturn c.def\n}\n\ntype messageConverter struct {\n\tgoType reflect.Type\n}\n\nfunc newMessageConverter(goType reflect.Type) Converter {\n\treturn &messageConverter{goType}\n}\n\nfunc (c *messageConverter) PBValueOf(v reflect.Value) protoreflect.Value {\n\tif v.Type() != c.goType {\n\t\tpanic(fmt.Sprintf(\"invalid type: got %v, want %v\", v.Type(), c.goType))\n\t}\n\tif c.isNonPointer() {\n\t\tif v.CanAddr() {\n\t\t\tv = v.Addr() // T => *T\n\t\t} else {\n\t\t\tv = reflect.Zero(reflect.PtrTo(v.Type()))\n\t\t}\n\t}\n\tif m, ok := v.Interface().(protoreflect.ProtoMessage); ok {\n\t\treturn protoreflect.ValueOfMessage(m.ProtoReflect())\n\t}\n\treturn protoreflect.ValueOfMessage(legacyWrapMessage(v))\n}\n\nfunc (c *messageConverter) GoValueOf(v protoreflect.Value) reflect.Value {\n\tm := v.Message()\n\tvar rv reflect.Value\n\tif u, ok := m.(unwrapper); ok {\n\t\trv = reflect.ValueOf(u.protoUnwrap())\n\t} else {\n\t\trv = reflect.ValueOf(m.Interface())\n\t}\n\tif c.isNonPointer() {\n\t\tif rv.Type() != reflect.PtrTo(c.goType) {\n\t\t\tpanic(fmt.Sprintf(\"invalid type: got %v, want %v\", rv.Type(), reflect.PtrTo(c.goType)))\n\t\t}\n\t\tif !rv.IsNil() {\n\t\t\trv = rv.Elem() // *T => T\n\t\t} else {\n\t\t\trv = reflect.Zero(rv.Type().Elem())\n\t\t}\n\t}\n\tif rv.Type() != c.goType {\n\t\tpanic(fmt.Sprintf(\"invalid type: got %v, want %v\", rv.Type(), c.goType))\n\t}\n\treturn rv\n}\n\nfunc (c *messageConverter) IsValidPB(v protoreflect.Value) bool {\n\tm := v.Message()\n\tvar rv reflect.Value\n\tif u, ok := m.(unwrapper); ok {\n\t\trv = reflect.ValueOf(u.protoUnwrap())\n\t} else {\n\t\trv = reflect.ValueOf(m.Interface())\n\t}\n\tif c.isNonPointer() {\n\t\treturn rv.Type() == reflect.PtrTo(c.goType)\n\t}\n\treturn rv.Type() == c.goType\n}\n\nfunc (c *messageConverter) IsValidGo(v reflect.Value) bool {\n\treturn v.IsValid() && v.Type() == c.goType\n}\n\nfunc (c *messageConverter) New() protoreflect.Value {\n\tif c.isNonPointer() {\n\t\treturn c.PBValueOf(reflect.New(c.goType).Elem())\n\t}\n\treturn c.PBValueOf(reflect.New(c.goType.Elem()))\n}\n\nfunc (c *messageConverter) Zero() protoreflect.Value {\n\treturn c.PBValueOf(reflect.Zero(c.goType))\n}\n\n// isNonPointer reports whether the type is a non-pointer type.\n// This never occurs for generated message types.\nfunc (c *messageConverter) isNonPointer() bool {\n\treturn c.goType.Kind() != reflect.Ptr\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/convert_list.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\nfunc newListConverter(t reflect.Type, fd protoreflect.FieldDescriptor) Converter {\n\tswitch {\n\tcase t.Kind() == reflect.Ptr && t.Elem().Kind() == reflect.Slice:\n\t\treturn &listPtrConverter{t, newSingularConverter(t.Elem().Elem(), fd)}\n\tcase t.Kind() == reflect.Slice:\n\t\treturn &listConverter{t, newSingularConverter(t.Elem(), fd)}\n\t}\n\tpanic(fmt.Sprintf(\"invalid Go type %v for field %v\", t, fd.FullName()))\n}\n\ntype listConverter struct {\n\tgoType reflect.Type // []T\n\tc      Converter\n}\n\nfunc (c *listConverter) PBValueOf(v reflect.Value) protoreflect.Value {\n\tif v.Type() != c.goType {\n\t\tpanic(fmt.Sprintf(\"invalid type: got %v, want %v\", v.Type(), c.goType))\n\t}\n\tpv := reflect.New(c.goType)\n\tpv.Elem().Set(v)\n\treturn protoreflect.ValueOfList(&listReflect{pv, c.c})\n}\n\nfunc (c *listConverter) GoValueOf(v protoreflect.Value) reflect.Value {\n\trv := v.List().(*listReflect).v\n\tif rv.IsNil() {\n\t\treturn reflect.Zero(c.goType)\n\t}\n\treturn rv.Elem()\n}\n\nfunc (c *listConverter) IsValidPB(v protoreflect.Value) bool {\n\tlist, ok := v.Interface().(*listReflect)\n\tif !ok {\n\t\treturn false\n\t}\n\treturn list.v.Type().Elem() == c.goType\n}\n\nfunc (c *listConverter) IsValidGo(v reflect.Value) bool {\n\treturn v.IsValid() && v.Type() == c.goType\n}\n\nfunc (c *listConverter) New() protoreflect.Value {\n\treturn protoreflect.ValueOfList(&listReflect{reflect.New(c.goType), c.c})\n}\n\nfunc (c *listConverter) Zero() protoreflect.Value {\n\treturn protoreflect.ValueOfList(&listReflect{reflect.Zero(reflect.PtrTo(c.goType)), c.c})\n}\n\ntype listPtrConverter struct {\n\tgoType reflect.Type // *[]T\n\tc      Converter\n}\n\nfunc (c *listPtrConverter) PBValueOf(v reflect.Value) protoreflect.Value {\n\tif v.Type() != c.goType {\n\t\tpanic(fmt.Sprintf(\"invalid type: got %v, want %v\", v.Type(), c.goType))\n\t}\n\treturn protoreflect.ValueOfList(&listReflect{v, c.c})\n}\n\nfunc (c *listPtrConverter) GoValueOf(v protoreflect.Value) reflect.Value {\n\treturn v.List().(*listReflect).v\n}\n\nfunc (c *listPtrConverter) IsValidPB(v protoreflect.Value) bool {\n\tlist, ok := v.Interface().(*listReflect)\n\tif !ok {\n\t\treturn false\n\t}\n\treturn list.v.Type() == c.goType\n}\n\nfunc (c *listPtrConverter) IsValidGo(v reflect.Value) bool {\n\treturn v.IsValid() && v.Type() == c.goType\n}\n\nfunc (c *listPtrConverter) New() protoreflect.Value {\n\treturn c.PBValueOf(reflect.New(c.goType.Elem()))\n}\n\nfunc (c *listPtrConverter) Zero() protoreflect.Value {\n\treturn c.PBValueOf(reflect.Zero(c.goType))\n}\n\ntype listReflect struct {\n\tv    reflect.Value // *[]T\n\tconv Converter\n}\n\nfunc (ls *listReflect) Len() int {\n\tif ls.v.IsNil() {\n\t\treturn 0\n\t}\n\treturn ls.v.Elem().Len()\n}\nfunc (ls *listReflect) Get(i int) protoreflect.Value {\n\treturn ls.conv.PBValueOf(ls.v.Elem().Index(i))\n}\nfunc (ls *listReflect) Set(i int, v protoreflect.Value) {\n\tls.v.Elem().Index(i).Set(ls.conv.GoValueOf(v))\n}\nfunc (ls *listReflect) Append(v protoreflect.Value) {\n\tls.v.Elem().Set(reflect.Append(ls.v.Elem(), ls.conv.GoValueOf(v)))\n}\nfunc (ls *listReflect) AppendMutable() protoreflect.Value {\n\tif _, ok := ls.conv.(*messageConverter); !ok {\n\t\tpanic(\"invalid AppendMutable on list with non-message type\")\n\t}\n\tv := ls.NewElement()\n\tls.Append(v)\n\treturn v\n}\nfunc (ls *listReflect) Truncate(i int) {\n\tls.v.Elem().Set(ls.v.Elem().Slice(0, i))\n}\nfunc (ls *listReflect) NewElement() protoreflect.Value {\n\treturn ls.conv.New()\n}\nfunc (ls *listReflect) IsValid() bool {\n\treturn !ls.v.IsNil()\n}\nfunc (ls *listReflect) protoUnwrap() any {\n\treturn ls.v.Interface()\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/convert_map.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\ntype mapConverter struct {\n\tgoType           reflect.Type // map[K]V\n\tkeyConv, valConv Converter\n}\n\nfunc newMapConverter(t reflect.Type, fd protoreflect.FieldDescriptor) *mapConverter {\n\tif t.Kind() != reflect.Map {\n\t\tpanic(fmt.Sprintf(\"invalid Go type %v for field %v\", t, fd.FullName()))\n\t}\n\treturn &mapConverter{\n\t\tgoType:  t,\n\t\tkeyConv: newSingularConverter(t.Key(), fd.MapKey()),\n\t\tvalConv: newSingularConverter(t.Elem(), fd.MapValue()),\n\t}\n}\n\nfunc (c *mapConverter) PBValueOf(v reflect.Value) protoreflect.Value {\n\tif v.Type() != c.goType {\n\t\tpanic(fmt.Sprintf(\"invalid type: got %v, want %v\", v.Type(), c.goType))\n\t}\n\treturn protoreflect.ValueOfMap(&mapReflect{v, c.keyConv, c.valConv})\n}\n\nfunc (c *mapConverter) GoValueOf(v protoreflect.Value) reflect.Value {\n\treturn v.Map().(*mapReflect).v\n}\n\nfunc (c *mapConverter) IsValidPB(v protoreflect.Value) bool {\n\tmapv, ok := v.Interface().(*mapReflect)\n\tif !ok {\n\t\treturn false\n\t}\n\treturn mapv.v.Type() == c.goType\n}\n\nfunc (c *mapConverter) IsValidGo(v reflect.Value) bool {\n\treturn v.IsValid() && v.Type() == c.goType\n}\n\nfunc (c *mapConverter) New() protoreflect.Value {\n\treturn c.PBValueOf(reflect.MakeMap(c.goType))\n}\n\nfunc (c *mapConverter) Zero() protoreflect.Value {\n\treturn c.PBValueOf(reflect.Zero(c.goType))\n}\n\ntype mapReflect struct {\n\tv       reflect.Value // map[K]V\n\tkeyConv Converter\n\tvalConv Converter\n}\n\nfunc (ms *mapReflect) Len() int {\n\treturn ms.v.Len()\n}\nfunc (ms *mapReflect) Has(k protoreflect.MapKey) bool {\n\trk := ms.keyConv.GoValueOf(k.Value())\n\trv := ms.v.MapIndex(rk)\n\treturn rv.IsValid()\n}\nfunc (ms *mapReflect) Get(k protoreflect.MapKey) protoreflect.Value {\n\trk := ms.keyConv.GoValueOf(k.Value())\n\trv := ms.v.MapIndex(rk)\n\tif !rv.IsValid() {\n\t\treturn protoreflect.Value{}\n\t}\n\treturn ms.valConv.PBValueOf(rv)\n}\nfunc (ms *mapReflect) Set(k protoreflect.MapKey, v protoreflect.Value) {\n\trk := ms.keyConv.GoValueOf(k.Value())\n\trv := ms.valConv.GoValueOf(v)\n\tms.v.SetMapIndex(rk, rv)\n}\nfunc (ms *mapReflect) Clear(k protoreflect.MapKey) {\n\trk := ms.keyConv.GoValueOf(k.Value())\n\tms.v.SetMapIndex(rk, reflect.Value{})\n}\nfunc (ms *mapReflect) Mutable(k protoreflect.MapKey) protoreflect.Value {\n\tif _, ok := ms.valConv.(*messageConverter); !ok {\n\t\tpanic(\"invalid Mutable on map with non-message value type\")\n\t}\n\tv := ms.Get(k)\n\tif !v.IsValid() {\n\t\tv = ms.NewValue()\n\t\tms.Set(k, v)\n\t}\n\treturn v\n}\nfunc (ms *mapReflect) Range(f func(protoreflect.MapKey, protoreflect.Value) bool) {\n\titer := mapRange(ms.v)\n\tfor iter.Next() {\n\t\tk := ms.keyConv.PBValueOf(iter.Key()).MapKey()\n\t\tv := ms.valConv.PBValueOf(iter.Value())\n\t\tif !f(k, v) {\n\t\t\treturn\n\t\t}\n\t}\n}\nfunc (ms *mapReflect) NewValue() protoreflect.Value {\n\treturn ms.valConv.New()\n}\nfunc (ms *mapReflect) IsValid() bool {\n\treturn !ms.v.IsNil()\n}\nfunc (ms *mapReflect) protoUnwrap() any {\n\treturn ms.v.Interface()\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/decode.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"math/bits\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/internal/flags\"\n\t\"google.golang.org/protobuf/proto\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/reflect/protoregistry\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n)\n\nvar errDecode = errors.New(\"cannot parse invalid wire-format data\")\nvar errRecursionDepth = errors.New(\"exceeded maximum recursion depth\")\n\ntype unmarshalOptions struct {\n\tflags    protoiface.UnmarshalInputFlags\n\tresolver interface {\n\t\tFindExtensionByName(field protoreflect.FullName) (protoreflect.ExtensionType, error)\n\t\tFindExtensionByNumber(message protoreflect.FullName, field protoreflect.FieldNumber) (protoreflect.ExtensionType, error)\n\t}\n\tdepth int\n}\n\nfunc (o unmarshalOptions) Options() proto.UnmarshalOptions {\n\treturn proto.UnmarshalOptions{\n\t\tMerge:          true,\n\t\tAllowPartial:   true,\n\t\tDiscardUnknown: o.DiscardUnknown(),\n\t\tResolver:       o.resolver,\n\t}\n}\n\nfunc (o unmarshalOptions) DiscardUnknown() bool {\n\treturn o.flags&protoiface.UnmarshalDiscardUnknown != 0\n}\n\nfunc (o unmarshalOptions) IsDefault() bool {\n\treturn o.flags == 0 && o.resolver == protoregistry.GlobalTypes\n}\n\nvar lazyUnmarshalOptions = unmarshalOptions{\n\tresolver: protoregistry.GlobalTypes,\n\tdepth:    protowire.DefaultRecursionLimit,\n}\n\ntype unmarshalOutput struct {\n\tn           int // number of bytes consumed\n\tinitialized bool\n}\n\n// unmarshal is protoreflect.Methods.Unmarshal.\nfunc (mi *MessageInfo) unmarshal(in protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) {\n\tvar p pointer\n\tif ms, ok := in.Message.(*messageState); ok {\n\t\tp = ms.pointer()\n\t} else {\n\t\tp = in.Message.(*messageReflectWrapper).pointer()\n\t}\n\tout, err := mi.unmarshalPointer(in.Buf, p, 0, unmarshalOptions{\n\t\tflags:    in.Flags,\n\t\tresolver: in.Resolver,\n\t\tdepth:    in.Depth,\n\t})\n\tvar flags protoiface.UnmarshalOutputFlags\n\tif out.initialized {\n\t\tflags |= protoiface.UnmarshalInitialized\n\t}\n\treturn protoiface.UnmarshalOutput{\n\t\tFlags: flags,\n\t}, err\n}\n\n// errUnknown is returned during unmarshaling to indicate a parse error that\n// should result in a field being placed in the unknown fields section (for example,\n// when the wire type doesn't match) as opposed to the entire unmarshal operation\n// failing (for example, when a field extends past the available input).\n//\n// This is a sentinel error which should never be visible to the user.\nvar errUnknown = errors.New(\"unknown\")\n\nfunc (mi *MessageInfo) unmarshalPointer(b []byte, p pointer, groupTag protowire.Number, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tmi.init()\n\topts.depth--\n\tif opts.depth < 0 {\n\t\treturn out, errRecursionDepth\n\t}\n\tif flags.ProtoLegacy && mi.isMessageSet {\n\t\treturn unmarshalMessageSet(mi, b, p, opts)\n\t}\n\tinitialized := true\n\tvar requiredMask uint64\n\tvar exts *map[int32]ExtensionField\n\tstart := len(b)\n\tfor len(b) > 0 {\n\t\t// Parse the tag (field number and wire type).\n\t\tvar tag uint64\n\t\tif b[0] < 0x80 {\n\t\t\ttag = uint64(b[0])\n\t\t\tb = b[1:]\n\t\t} else if len(b) >= 2 && b[1] < 128 {\n\t\t\ttag = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\t\tb = b[2:]\n\t\t} else {\n\t\t\tvar n int\n\t\t\ttag, n = protowire.ConsumeVarint(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn out, errDecode\n\t\t\t}\n\t\t\tb = b[n:]\n\t\t}\n\t\tvar num protowire.Number\n\t\tif n := tag >> 3; n < uint64(protowire.MinValidNumber) || n > uint64(protowire.MaxValidNumber) {\n\t\t\treturn out, errDecode\n\t\t} else {\n\t\t\tnum = protowire.Number(n)\n\t\t}\n\t\twtyp := protowire.Type(tag & 7)\n\n\t\tif wtyp == protowire.EndGroupType {\n\t\t\tif num != groupTag {\n\t\t\t\treturn out, errDecode\n\t\t\t}\n\t\t\tgroupTag = 0\n\t\t\tbreak\n\t\t}\n\n\t\tvar f *coderFieldInfo\n\t\tif int(num) < len(mi.denseCoderFields) {\n\t\t\tf = mi.denseCoderFields[num]\n\t\t} else {\n\t\t\tf = mi.coderFields[num]\n\t\t}\n\t\tvar n int\n\t\terr := errUnknown\n\t\tswitch {\n\t\tcase f != nil:\n\t\t\tif f.funcs.unmarshal == nil {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tvar o unmarshalOutput\n\t\t\to, err = f.funcs.unmarshal(b, p.Apply(f.offset), wtyp, f, opts)\n\t\t\tn = o.n\n\t\t\tif err != nil {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\trequiredMask |= f.validation.requiredBit\n\t\t\tif f.funcs.isInit != nil && !o.initialized {\n\t\t\t\tinitialized = false\n\t\t\t}\n\t\tdefault:\n\t\t\t// Possible extension.\n\t\t\tif exts == nil && mi.extensionOffset.IsValid() {\n\t\t\t\texts = p.Apply(mi.extensionOffset).Extensions()\n\t\t\t\tif *exts == nil {\n\t\t\t\t\t*exts = make(map[int32]ExtensionField)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif exts == nil {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tvar o unmarshalOutput\n\t\t\to, err = mi.unmarshalExtension(b, num, wtyp, *exts, opts)\n\t\t\tif err != nil {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tn = o.n\n\t\t\tif !o.initialized {\n\t\t\t\tinitialized = false\n\t\t\t}\n\t\t}\n\t\tif err != nil {\n\t\t\tif err != errUnknown {\n\t\t\t\treturn out, err\n\t\t\t}\n\t\t\tn = protowire.ConsumeFieldValue(num, wtyp, b)\n\t\t\tif n < 0 {\n\t\t\t\treturn out, errDecode\n\t\t\t}\n\t\t\tif !opts.DiscardUnknown() && mi.unknownOffset.IsValid() {\n\t\t\t\tu := mi.mutableUnknownBytes(p)\n\t\t\t\t*u = protowire.AppendTag(*u, num, wtyp)\n\t\t\t\t*u = append(*u, b[:n]...)\n\t\t\t}\n\t\t}\n\t\tb = b[n:]\n\t}\n\tif groupTag != 0 {\n\t\treturn out, errDecode\n\t}\n\tif mi.numRequiredFields > 0 && bits.OnesCount64(requiredMask) != int(mi.numRequiredFields) {\n\t\tinitialized = false\n\t}\n\tif initialized {\n\t\tout.initialized = true\n\t}\n\tout.n = start - len(b)\n\treturn out, nil\n}\n\nfunc (mi *MessageInfo) unmarshalExtension(b []byte, num protowire.Number, wtyp protowire.Type, exts map[int32]ExtensionField, opts unmarshalOptions) (out unmarshalOutput, err error) {\n\tx := exts[int32(num)]\n\txt := x.Type()\n\tif xt == nil {\n\t\tvar err error\n\t\txt, err = opts.resolver.FindExtensionByNumber(mi.Desc.FullName(), num)\n\t\tif err != nil {\n\t\t\tif err == protoregistry.NotFound {\n\t\t\t\treturn out, errUnknown\n\t\t\t}\n\t\t\treturn out, errors.New(\"%v: unable to resolve extension %v: %v\", mi.Desc.FullName(), num, err)\n\t\t}\n\t}\n\txi := getExtensionFieldInfo(xt)\n\tif xi.funcs.unmarshal == nil {\n\t\treturn out, errUnknown\n\t}\n\tif flags.LazyUnmarshalExtensions {\n\t\tif opts.IsDefault() && x.canLazy(xt) {\n\t\t\tout, valid := skipExtension(b, xi, num, wtyp, opts)\n\t\t\tswitch valid {\n\t\t\tcase ValidationValid:\n\t\t\t\tif out.initialized {\n\t\t\t\t\tx.appendLazyBytes(xt, xi, num, wtyp, b[:out.n])\n\t\t\t\t\texts[int32(num)] = x\n\t\t\t\t\treturn out, nil\n\t\t\t\t}\n\t\t\tcase ValidationInvalid:\n\t\t\t\treturn out, errDecode\n\t\t\tcase ValidationUnknown:\n\t\t\t}\n\t\t}\n\t}\n\tival := x.Value()\n\tif !ival.IsValid() && xi.unmarshalNeedsValue {\n\t\t// Create a new message, list, or map value to fill in.\n\t\t// For enums, create a prototype value to let the unmarshal func know the\n\t\t// concrete type.\n\t\tival = xt.New()\n\t}\n\tv, out, err := xi.funcs.unmarshal(b, ival, num, wtyp, opts)\n\tif err != nil {\n\t\treturn out, err\n\t}\n\tif xi.funcs.isInit == nil {\n\t\tout.initialized = true\n\t}\n\tx.Set(xt, v)\n\texts[int32(num)] = x\n\treturn out, nil\n}\n\nfunc skipExtension(b []byte, xi *extensionFieldInfo, num protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (out unmarshalOutput, _ ValidationStatus) {\n\tif xi.validation.mi == nil {\n\t\treturn out, ValidationUnknown\n\t}\n\txi.validation.mi.init()\n\tswitch xi.validation.typ {\n\tcase validationTypeMessage:\n\t\tif wtyp != protowire.BytesType {\n\t\t\treturn out, ValidationUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn out, ValidationUnknown\n\t\t}\n\t\tout, st := xi.validation.mi.validate(v, 0, opts)\n\t\tout.n = n\n\t\treturn out, st\n\tcase validationTypeGroup:\n\t\tif wtyp != protowire.StartGroupType {\n\t\t\treturn out, ValidationUnknown\n\t\t}\n\t\tout, st := xi.validation.mi.validate(b, num, opts)\n\t\treturn out, st\n\tdefault:\n\t\treturn out, ValidationUnknown\n\t}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/encode.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"math\"\n\t\"sort\"\n\t\"sync/atomic\"\n\n\t\"google.golang.org/protobuf/internal/flags\"\n\t\"google.golang.org/protobuf/proto\"\n\tpiface \"google.golang.org/protobuf/runtime/protoiface\"\n)\n\ntype marshalOptions struct {\n\tflags piface.MarshalInputFlags\n}\n\nfunc (o marshalOptions) Options() proto.MarshalOptions {\n\treturn proto.MarshalOptions{\n\t\tAllowPartial:  true,\n\t\tDeterministic: o.Deterministic(),\n\t\tUseCachedSize: o.UseCachedSize(),\n\t}\n}\n\nfunc (o marshalOptions) Deterministic() bool { return o.flags&piface.MarshalDeterministic != 0 }\nfunc (o marshalOptions) UseCachedSize() bool { return o.flags&piface.MarshalUseCachedSize != 0 }\n\n// size is protoreflect.Methods.Size.\nfunc (mi *MessageInfo) size(in piface.SizeInput) piface.SizeOutput {\n\tvar p pointer\n\tif ms, ok := in.Message.(*messageState); ok {\n\t\tp = ms.pointer()\n\t} else {\n\t\tp = in.Message.(*messageReflectWrapper).pointer()\n\t}\n\tsize := mi.sizePointer(p, marshalOptions{\n\t\tflags: in.Flags,\n\t})\n\treturn piface.SizeOutput{Size: size}\n}\n\nfunc (mi *MessageInfo) sizePointer(p pointer, opts marshalOptions) (size int) {\n\tmi.init()\n\tif p.IsNil() {\n\t\treturn 0\n\t}\n\tif opts.UseCachedSize() && mi.sizecacheOffset.IsValid() {\n\t\t// The size cache contains the size + 1, to allow the\n\t\t// zero value to be invalid, while also allowing for a\n\t\t// 0 size to be cached.\n\t\tif size := atomic.LoadInt32(p.Apply(mi.sizecacheOffset).Int32()); size > 0 {\n\t\t\treturn int(size - 1)\n\t\t}\n\t}\n\treturn mi.sizePointerSlow(p, opts)\n}\n\nfunc (mi *MessageInfo) sizePointerSlow(p pointer, opts marshalOptions) (size int) {\n\tif flags.ProtoLegacy && mi.isMessageSet {\n\t\tsize = sizeMessageSet(mi, p, opts)\n\t\tif mi.sizecacheOffset.IsValid() {\n\t\t\tatomic.StoreInt32(p.Apply(mi.sizecacheOffset).Int32(), int32(size+1))\n\t\t}\n\t\treturn size\n\t}\n\tif mi.extensionOffset.IsValid() {\n\t\te := p.Apply(mi.extensionOffset).Extensions()\n\t\tsize += mi.sizeExtensions(e, opts)\n\t}\n\tfor _, f := range mi.orderedCoderFields {\n\t\tif f.funcs.size == nil {\n\t\t\tcontinue\n\t\t}\n\t\tfptr := p.Apply(f.offset)\n\t\tif f.isPointer && fptr.Elem().IsNil() {\n\t\t\tcontinue\n\t\t}\n\t\tsize += f.funcs.size(fptr, f, opts)\n\t}\n\tif mi.unknownOffset.IsValid() {\n\t\tif u := mi.getUnknownBytes(p); u != nil {\n\t\t\tsize += len(*u)\n\t\t}\n\t}\n\tif mi.sizecacheOffset.IsValid() {\n\t\tif size > (math.MaxInt32 - 1) {\n\t\t\t// The size is too large for the int32 sizecache field.\n\t\t\t// We will need to recompute the size when encoding;\n\t\t\t// unfortunately expensive, but better than invalid output.\n\t\t\tatomic.StoreInt32(p.Apply(mi.sizecacheOffset).Int32(), 0)\n\t\t} else {\n\t\t\t// The size cache contains the size + 1, to allow the\n\t\t\t// zero value to be invalid, while also allowing for a\n\t\t\t// 0 size to be cached.\n\t\t\tatomic.StoreInt32(p.Apply(mi.sizecacheOffset).Int32(), int32(size+1))\n\t\t}\n\t}\n\treturn size\n}\n\n// marshal is protoreflect.Methods.Marshal.\nfunc (mi *MessageInfo) marshal(in piface.MarshalInput) (out piface.MarshalOutput, err error) {\n\tvar p pointer\n\tif ms, ok := in.Message.(*messageState); ok {\n\t\tp = ms.pointer()\n\t} else {\n\t\tp = in.Message.(*messageReflectWrapper).pointer()\n\t}\n\tb, err := mi.marshalAppendPointer(in.Buf, p, marshalOptions{\n\t\tflags: in.Flags,\n\t})\n\treturn piface.MarshalOutput{Buf: b}, err\n}\n\nfunc (mi *MessageInfo) marshalAppendPointer(b []byte, p pointer, opts marshalOptions) ([]byte, error) {\n\tmi.init()\n\tif p.IsNil() {\n\t\treturn b, nil\n\t}\n\tif flags.ProtoLegacy && mi.isMessageSet {\n\t\treturn marshalMessageSet(mi, b, p, opts)\n\t}\n\tvar err error\n\t// The old marshaler encodes extensions at beginning.\n\tif mi.extensionOffset.IsValid() {\n\t\te := p.Apply(mi.extensionOffset).Extensions()\n\t\t// TODO: Special handling for MessageSet?\n\t\tb, err = mi.appendExtensions(b, e, opts)\n\t\tif err != nil {\n\t\t\treturn b, err\n\t\t}\n\t}\n\tfor _, f := range mi.orderedCoderFields {\n\t\tif f.funcs.marshal == nil {\n\t\t\tcontinue\n\t\t}\n\t\tfptr := p.Apply(f.offset)\n\t\tif f.isPointer && fptr.Elem().IsNil() {\n\t\t\tcontinue\n\t\t}\n\t\tb, err = f.funcs.marshal(b, fptr, f, opts)\n\t\tif err != nil {\n\t\t\treturn b, err\n\t\t}\n\t}\n\tif mi.unknownOffset.IsValid() && !mi.isMessageSet {\n\t\tif u := mi.getUnknownBytes(p); u != nil {\n\t\t\tb = append(b, (*u)...)\n\t\t}\n\t}\n\treturn b, nil\n}\n\n// fullyLazyExtensions returns true if we should attempt to keep extensions lazy over size and marshal.\nfunc fullyLazyExtensions(opts marshalOptions) bool {\n\t// When deterministic marshaling is requested, force an unmarshal for lazy\n\t// extensions to produce a deterministic result, instead of passing through\n\t// bytes lazily that may or may not match what Go Protobuf would produce.\n\treturn opts.flags&piface.MarshalDeterministic == 0\n}\n\nfunc (mi *MessageInfo) sizeExtensions(ext *map[int32]ExtensionField, opts marshalOptions) (n int) {\n\tif ext == nil {\n\t\treturn 0\n\t}\n\tfor _, x := range *ext {\n\t\txi := getExtensionFieldInfo(x.Type())\n\t\tif xi.funcs.size == nil {\n\t\t\tcontinue\n\t\t}\n\t\tif fullyLazyExtensions(opts) {\n\t\t\t// Don't expand the extension, instead use the buffer to calculate size\n\t\t\tif lb := x.lazyBuffer(); lb != nil {\n\t\t\t\t// We got hold of the buffer, so it's still lazy.\n\t\t\t\tn += len(lb)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\t\tn += xi.funcs.size(x.Value(), xi.tagsize, opts)\n\t}\n\treturn n\n}\n\nfunc (mi *MessageInfo) appendExtensions(b []byte, ext *map[int32]ExtensionField, opts marshalOptions) ([]byte, error) {\n\tif ext == nil {\n\t\treturn b, nil\n\t}\n\n\tswitch len(*ext) {\n\tcase 0:\n\t\treturn b, nil\n\tcase 1:\n\t\t// Fast-path for one extension: Don't bother sorting the keys.\n\t\tvar err error\n\t\tfor _, x := range *ext {\n\t\t\txi := getExtensionFieldInfo(x.Type())\n\t\t\tif fullyLazyExtensions(opts) {\n\t\t\t\t// Don't expand the extension if it's still in wire format, instead use the buffer content.\n\t\t\t\tif lb := x.lazyBuffer(); lb != nil {\n\t\t\t\t\tb = append(b, lb...)\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t\tb, err = xi.funcs.marshal(b, x.Value(), xi.wiretag, opts)\n\t\t}\n\t\treturn b, err\n\tdefault:\n\t\t// Sort the keys to provide a deterministic encoding.\n\t\t// Not sure this is required, but the old code does it.\n\t\tkeys := make([]int, 0, len(*ext))\n\t\tfor k := range *ext {\n\t\t\tkeys = append(keys, int(k))\n\t\t}\n\t\tsort.Ints(keys)\n\t\tvar err error\n\t\tfor _, k := range keys {\n\t\t\tx := (*ext)[int32(k)]\n\t\t\txi := getExtensionFieldInfo(x.Type())\n\t\t\tif fullyLazyExtensions(opts) {\n\t\t\t\t// Don't expand the extension if it's still in wire format, instead use the buffer content.\n\t\t\t\tif lb := x.lazyBuffer(); lb != nil {\n\t\t\t\t\tb = append(b, lb...)\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t\tb, err = xi.funcs.marshal(b, x.Value(), xi.wiretag, opts)\n\t\t\tif err != nil {\n\t\t\t\treturn b, err\n\t\t\t}\n\t\t}\n\t\treturn b, nil\n\t}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/enum.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"reflect\"\n\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\ntype EnumInfo struct {\n\tGoReflectType reflect.Type // int32 kind\n\tDesc          protoreflect.EnumDescriptor\n}\n\nfunc (t *EnumInfo) New(n protoreflect.EnumNumber) protoreflect.Enum {\n\treturn reflect.ValueOf(n).Convert(t.GoReflectType).Interface().(protoreflect.Enum)\n}\nfunc (t *EnumInfo) Descriptor() protoreflect.EnumDescriptor { return t.Desc }\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/equal.go",
    "content": "// Copyright 2024 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"bytes\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n)\n\nfunc equal(in protoiface.EqualInput) protoiface.EqualOutput {\n\treturn protoiface.EqualOutput{Equal: equalMessage(in.MessageA, in.MessageB)}\n}\n\n// equalMessage is a fast-path variant of protoreflect.equalMessage.\n// It takes advantage of the internal messageState type to avoid\n// unnecessary allocations, type assertions.\nfunc equalMessage(mx, my protoreflect.Message) bool {\n\tif mx == nil || my == nil {\n\t\treturn mx == my\n\t}\n\tif mx.Descriptor() != my.Descriptor() {\n\t\treturn false\n\t}\n\n\tmsx, ok := mx.(*messageState)\n\tif !ok {\n\t\treturn protoreflect.ValueOfMessage(mx).Equal(protoreflect.ValueOfMessage(my))\n\t}\n\tmsy, ok := my.(*messageState)\n\tif !ok {\n\t\treturn protoreflect.ValueOfMessage(mx).Equal(protoreflect.ValueOfMessage(my))\n\t}\n\n\tmi := msx.messageInfo()\n\tmiy := msy.messageInfo()\n\tif mi != miy {\n\t\treturn protoreflect.ValueOfMessage(mx).Equal(protoreflect.ValueOfMessage(my))\n\t}\n\tmi.init()\n\t// Compares regular fields\n\t// Modified Message.Range code that compares two messages of the same type\n\t// while going over the fields.\n\tfor _, ri := range mi.rangeInfos {\n\t\tvar fd protoreflect.FieldDescriptor\n\t\tvar vx, vy protoreflect.Value\n\n\t\tswitch ri := ri.(type) {\n\t\tcase *fieldInfo:\n\t\t\thx := ri.has(msx.pointer())\n\t\t\thy := ri.has(msy.pointer())\n\t\t\tif hx != hy {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !hx {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tfd = ri.fieldDesc\n\t\t\tvx = ri.get(msx.pointer())\n\t\t\tvy = ri.get(msy.pointer())\n\t\tcase *oneofInfo:\n\t\t\tfnx := ri.which(msx.pointer())\n\t\t\tfny := ri.which(msy.pointer())\n\t\t\tif fnx != fny {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif fnx <= 0 {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tfi := mi.fields[fnx]\n\t\t\tfd = fi.fieldDesc\n\t\t\tvx = fi.get(msx.pointer())\n\t\t\tvy = fi.get(msy.pointer())\n\t\t}\n\n\t\tif !equalValue(fd, vx, vy) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Compare extensions.\n\t// This is more complicated because mx or my could have empty/nil extension maps,\n\t// however some populated extension map values are equal to nil extension maps.\n\temx := mi.extensionMap(msx.pointer())\n\temy := mi.extensionMap(msy.pointer())\n\tif emx != nil {\n\t\tfor k, x := range *emx {\n\t\t\txd := x.Type().TypeDescriptor()\n\t\t\txv := x.Value()\n\t\t\tvar y ExtensionField\n\t\t\tok := false\n\t\t\tif emy != nil {\n\t\t\t\ty, ok = (*emy)[k]\n\t\t\t}\n\t\t\t// We need to treat empty lists as equal to nil values\n\t\t\tif emy == nil || !ok {\n\t\t\t\tif xd.IsList() && xv.List().Len() == 0 {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tif !equalValue(xd, xv, y.Value()) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\tif emy != nil {\n\t\t// emy may have extensions emx does not have, need to check them as well\n\t\tfor k, y := range *emy {\n\t\t\tif emx != nil {\n\t\t\t\t// emx has the field, so we already checked it\n\t\t\t\tif _, ok := (*emx)[k]; ok {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Empty lists are equal to nil\n\t\t\tif y.Type().TypeDescriptor().IsList() && y.Value().List().Len() == 0 {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// Cant be equal if the extension is populated\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn equalUnknown(mx.GetUnknown(), my.GetUnknown())\n}\n\nfunc equalValue(fd protoreflect.FieldDescriptor, vx, vy protoreflect.Value) bool {\n\t// slow path\n\tif fd.Kind() != protoreflect.MessageKind {\n\t\treturn vx.Equal(vy)\n\t}\n\n\t// fast path special cases\n\tif fd.IsMap() {\n\t\tif fd.MapValue().Kind() == protoreflect.MessageKind {\n\t\t\treturn equalMessageMap(vx.Map(), vy.Map())\n\t\t}\n\t\treturn vx.Equal(vy)\n\t}\n\n\tif fd.IsList() {\n\t\treturn equalMessageList(vx.List(), vy.List())\n\t}\n\n\treturn equalMessage(vx.Message(), vy.Message())\n}\n\n// Mostly copied from protoreflect.equalMap.\n// This variant only works for messages as map types.\n// All other map types should be handled via Value.Equal.\nfunc equalMessageMap(mx, my protoreflect.Map) bool {\n\tif mx.Len() != my.Len() {\n\t\treturn false\n\t}\n\tequal := true\n\tmx.Range(func(k protoreflect.MapKey, vx protoreflect.Value) bool {\n\t\tif !my.Has(k) {\n\t\t\tequal = false\n\t\t\treturn false\n\t\t}\n\t\tvy := my.Get(k)\n\t\tequal = equalMessage(vx.Message(), vy.Message())\n\t\treturn equal\n\t})\n\treturn equal\n}\n\n// Mostly copied from protoreflect.equalList.\n// The only change is the usage of equalImpl instead of protoreflect.equalValue.\nfunc equalMessageList(lx, ly protoreflect.List) bool {\n\tif lx.Len() != ly.Len() {\n\t\treturn false\n\t}\n\tfor i := 0; i < lx.Len(); i++ {\n\t\t// We only operate on messages here since equalImpl will not call us in any other case.\n\t\tif !equalMessage(lx.Get(i).Message(), ly.Get(i).Message()) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// equalUnknown compares unknown fields by direct comparison on the raw bytes\n// of each individual field number.\n// Copied from protoreflect.equalUnknown.\nfunc equalUnknown(x, y protoreflect.RawFields) bool {\n\tif len(x) != len(y) {\n\t\treturn false\n\t}\n\tif bytes.Equal([]byte(x), []byte(y)) {\n\t\treturn true\n\t}\n\n\tmx := make(map[protoreflect.FieldNumber]protoreflect.RawFields)\n\tmy := make(map[protoreflect.FieldNumber]protoreflect.RawFields)\n\tfor len(x) > 0 {\n\t\tfnum, _, n := protowire.ConsumeField(x)\n\t\tmx[fnum] = append(mx[fnum], x[:n]...)\n\t\tx = x[n:]\n\t}\n\tfor len(y) > 0 {\n\t\tfnum, _, n := protowire.ConsumeField(y)\n\t\tmy[fnum] = append(my[fnum], y[:n]...)\n\t\ty = y[n:]\n\t}\n\tif len(mx) != len(my) {\n\t\treturn false\n\t}\n\n\tfor k, v1 := range mx {\n\t\tif v2, ok := my[k]; !ok || !bytes.Equal([]byte(v1), []byte(v2)) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/extension.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"reflect\"\n\t\"sync\"\n\t\"sync/atomic\"\n\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n)\n\n// ExtensionInfo implements ExtensionType.\n//\n// This type contains a number of exported fields for legacy compatibility.\n// The only non-deprecated use of this type is through the methods of the\n// ExtensionType interface.\ntype ExtensionInfo struct {\n\t// An ExtensionInfo may exist in several stages of initialization.\n\t//\n\t// extensionInfoUninitialized: Some or all of the legacy exported\n\t// fields may be set, but none of the unexported fields have been\n\t// initialized. This is the starting state for an ExtensionInfo\n\t// in legacy generated code.\n\t//\n\t// extensionInfoDescInit: The desc field is set, but other unexported fields\n\t// may not be initialized. Legacy exported fields may or may not be set.\n\t// This is the starting state for an ExtensionInfo in newly generated code.\n\t//\n\t// extensionInfoFullInit: The ExtensionInfo is fully initialized.\n\t// This state is only entered after lazy initialization is complete.\n\tinit uint32\n\tmu   sync.Mutex\n\n\tgoType reflect.Type\n\tdesc   extensionTypeDescriptor\n\tconv   Converter\n\tinfo   *extensionFieldInfo // for fast-path method implementations\n\n\t// ExtendedType is a typed nil-pointer to the parent message type that\n\t// is being extended. It is possible for this to be unpopulated in v2\n\t// since the message may no longer implement the MessageV1 interface.\n\t//\n\t// Deprecated: Use the ExtendedType method instead.\n\tExtendedType protoiface.MessageV1\n\n\t// ExtensionType is the zero value of the extension type.\n\t//\n\t// For historical reasons, reflect.TypeOf(ExtensionType) and the\n\t// type returned by InterfaceOf may not be identical.\n\t//\n\t// Deprecated: Use InterfaceOf(xt.Zero()) instead.\n\tExtensionType any\n\n\t// Field is the field number of the extension.\n\t//\n\t// Deprecated: Use the Descriptor().Number method instead.\n\tField int32\n\n\t// Name is the fully qualified name of extension.\n\t//\n\t// Deprecated: Use the Descriptor().FullName method instead.\n\tName string\n\n\t// Tag is the protobuf struct tag used in the v1 API.\n\t//\n\t// Deprecated: Do not use.\n\tTag string\n\n\t// Filename is the proto filename in which the extension is defined.\n\t//\n\t// Deprecated: Use Descriptor().ParentFile().Path() instead.\n\tFilename string\n}\n\n// Stages of initialization: See the ExtensionInfo.init field.\nconst (\n\textensionInfoUninitialized = 0\n\textensionInfoDescInit      = 1\n\textensionInfoFullInit      = 2\n)\n\nfunc InitExtensionInfo(xi *ExtensionInfo, xd protoreflect.ExtensionDescriptor, goType reflect.Type) {\n\txi.goType = goType\n\txi.desc = extensionTypeDescriptor{xd, xi}\n\txi.init = extensionInfoDescInit\n}\n\nfunc (xi *ExtensionInfo) New() protoreflect.Value {\n\treturn xi.lazyInit().New()\n}\nfunc (xi *ExtensionInfo) Zero() protoreflect.Value {\n\treturn xi.lazyInit().Zero()\n}\nfunc (xi *ExtensionInfo) ValueOf(v any) protoreflect.Value {\n\treturn xi.lazyInit().PBValueOf(reflect.ValueOf(v))\n}\nfunc (xi *ExtensionInfo) InterfaceOf(v protoreflect.Value) any {\n\treturn xi.lazyInit().GoValueOf(v).Interface()\n}\nfunc (xi *ExtensionInfo) IsValidValue(v protoreflect.Value) bool {\n\treturn xi.lazyInit().IsValidPB(v)\n}\nfunc (xi *ExtensionInfo) IsValidInterface(v any) bool {\n\treturn xi.lazyInit().IsValidGo(reflect.ValueOf(v))\n}\nfunc (xi *ExtensionInfo) TypeDescriptor() protoreflect.ExtensionTypeDescriptor {\n\tif atomic.LoadUint32(&xi.init) < extensionInfoDescInit {\n\t\txi.lazyInitSlow()\n\t}\n\treturn &xi.desc\n}\n\nfunc (xi *ExtensionInfo) lazyInit() Converter {\n\tif atomic.LoadUint32(&xi.init) < extensionInfoFullInit {\n\t\txi.lazyInitSlow()\n\t}\n\treturn xi.conv\n}\n\nfunc (xi *ExtensionInfo) lazyInitSlow() {\n\txi.mu.Lock()\n\tdefer xi.mu.Unlock()\n\n\tif xi.init == extensionInfoFullInit {\n\t\treturn\n\t}\n\tdefer atomic.StoreUint32(&xi.init, extensionInfoFullInit)\n\n\tif xi.desc.ExtensionDescriptor == nil {\n\t\txi.initFromLegacy()\n\t}\n\tif !xi.desc.ExtensionDescriptor.IsPlaceholder() {\n\t\tif xi.ExtensionType == nil {\n\t\t\txi.initToLegacy()\n\t\t}\n\t\txi.conv = NewConverter(xi.goType, xi.desc.ExtensionDescriptor)\n\t\txi.info = makeExtensionFieldInfo(xi.desc.ExtensionDescriptor)\n\t\txi.info.validation = newValidationInfo(xi.desc.ExtensionDescriptor, xi.goType)\n\t}\n}\n\ntype extensionTypeDescriptor struct {\n\tprotoreflect.ExtensionDescriptor\n\txi *ExtensionInfo\n}\n\nfunc (xtd *extensionTypeDescriptor) Type() protoreflect.ExtensionType {\n\treturn xtd.xi\n}\nfunc (xtd *extensionTypeDescriptor) Descriptor() protoreflect.ExtensionDescriptor {\n\treturn xtd.ExtensionDescriptor\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/legacy_enum.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"google.golang.org/protobuf/internal/filedesc\"\n\t\"google.golang.org/protobuf/internal/strs\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\n// legacyEnumName returns the name of enums used in legacy code.\n// It is neither the protobuf full name nor the qualified Go name,\n// but rather an odd hybrid of both.\nfunc legacyEnumName(ed protoreflect.EnumDescriptor) string {\n\tvar protoPkg string\n\tenumName := string(ed.FullName())\n\tif fd := ed.ParentFile(); fd != nil {\n\t\tprotoPkg = string(fd.Package())\n\t\tenumName = strings.TrimPrefix(enumName, protoPkg+\".\")\n\t}\n\tif protoPkg == \"\" {\n\t\treturn strs.GoCamelCase(enumName)\n\t}\n\treturn protoPkg + \".\" + strs.GoCamelCase(enumName)\n}\n\n// legacyWrapEnum wraps v as a protoreflect.Enum,\n// where v must be a int32 kind and not implement the v2 API already.\nfunc legacyWrapEnum(v reflect.Value) protoreflect.Enum {\n\tet := legacyLoadEnumType(v.Type())\n\treturn et.New(protoreflect.EnumNumber(v.Int()))\n}\n\nvar legacyEnumTypeCache sync.Map // map[reflect.Type]protoreflect.EnumType\n\n// legacyLoadEnumType dynamically loads a protoreflect.EnumType for t,\n// where t must be an int32 kind and not implement the v2 API already.\nfunc legacyLoadEnumType(t reflect.Type) protoreflect.EnumType {\n\t// Fast-path: check if a EnumType is cached for this concrete type.\n\tif et, ok := legacyEnumTypeCache.Load(t); ok {\n\t\treturn et.(protoreflect.EnumType)\n\t}\n\n\t// Slow-path: derive enum descriptor and initialize EnumType.\n\tvar et protoreflect.EnumType\n\ted := LegacyLoadEnumDesc(t)\n\tet = &legacyEnumType{\n\t\tdesc:   ed,\n\t\tgoType: t,\n\t}\n\tif et, ok := legacyEnumTypeCache.LoadOrStore(t, et); ok {\n\t\treturn et.(protoreflect.EnumType)\n\t}\n\treturn et\n}\n\ntype legacyEnumType struct {\n\tdesc   protoreflect.EnumDescriptor\n\tgoType reflect.Type\n\tm      sync.Map // map[protoreflect.EnumNumber]proto.Enum\n}\n\nfunc (t *legacyEnumType) New(n protoreflect.EnumNumber) protoreflect.Enum {\n\tif e, ok := t.m.Load(n); ok {\n\t\treturn e.(protoreflect.Enum)\n\t}\n\te := &legacyEnumWrapper{num: n, pbTyp: t, goTyp: t.goType}\n\tt.m.Store(n, e)\n\treturn e\n}\nfunc (t *legacyEnumType) Descriptor() protoreflect.EnumDescriptor {\n\treturn t.desc\n}\n\ntype legacyEnumWrapper struct {\n\tnum   protoreflect.EnumNumber\n\tpbTyp protoreflect.EnumType\n\tgoTyp reflect.Type\n}\n\nfunc (e *legacyEnumWrapper) Descriptor() protoreflect.EnumDescriptor {\n\treturn e.pbTyp.Descriptor()\n}\nfunc (e *legacyEnumWrapper) Type() protoreflect.EnumType {\n\treturn e.pbTyp\n}\nfunc (e *legacyEnumWrapper) Number() protoreflect.EnumNumber {\n\treturn e.num\n}\nfunc (e *legacyEnumWrapper) ProtoReflect() protoreflect.Enum {\n\treturn e\n}\nfunc (e *legacyEnumWrapper) protoUnwrap() any {\n\tv := reflect.New(e.goTyp).Elem()\n\tv.SetInt(int64(e.num))\n\treturn v.Interface()\n}\n\nvar (\n\t_ protoreflect.Enum = (*legacyEnumWrapper)(nil)\n\t_ unwrapper         = (*legacyEnumWrapper)(nil)\n)\n\nvar legacyEnumDescCache sync.Map // map[reflect.Type]protoreflect.EnumDescriptor\n\n// LegacyLoadEnumDesc returns an EnumDescriptor derived from the Go type,\n// which must be an int32 kind and not implement the v2 API already.\n//\n// This is exported for testing purposes.\nfunc LegacyLoadEnumDesc(t reflect.Type) protoreflect.EnumDescriptor {\n\t// Fast-path: check if an EnumDescriptor is cached for this concrete type.\n\tif ed, ok := legacyEnumDescCache.Load(t); ok {\n\t\treturn ed.(protoreflect.EnumDescriptor)\n\t}\n\n\t// Slow-path: initialize EnumDescriptor from the raw descriptor.\n\tev := reflect.Zero(t).Interface()\n\tif _, ok := ev.(protoreflect.Enum); ok {\n\t\tpanic(fmt.Sprintf(\"%v already implements proto.Enum\", t))\n\t}\n\tedV1, ok := ev.(enumV1)\n\tif !ok {\n\t\treturn aberrantLoadEnumDesc(t)\n\t}\n\tb, idxs := edV1.EnumDescriptor()\n\n\tvar ed protoreflect.EnumDescriptor\n\tif len(idxs) == 1 {\n\t\ted = legacyLoadFileDesc(b).Enums().Get(idxs[0])\n\t} else {\n\t\tmd := legacyLoadFileDesc(b).Messages().Get(idxs[0])\n\t\tfor _, i := range idxs[1 : len(idxs)-1] {\n\t\t\tmd = md.Messages().Get(i)\n\t\t}\n\t\ted = md.Enums().Get(idxs[len(idxs)-1])\n\t}\n\tif ed, ok := legacyEnumDescCache.LoadOrStore(t, ed); ok {\n\t\treturn ed.(protoreflect.EnumDescriptor)\n\t}\n\treturn ed\n}\n\nvar aberrantEnumDescCache sync.Map // map[reflect.Type]protoreflect.EnumDescriptor\n\n// aberrantLoadEnumDesc returns an EnumDescriptor derived from the Go type,\n// which must not implement protoreflect.Enum or enumV1.\n//\n// If the type does not implement enumV1, then there is no reliable\n// way to derive the original protobuf type information.\n// We are unable to use the global enum registry since it is\n// unfortunately keyed by the protobuf full name, which we also do not know.\n// Thus, this produces some bogus enum descriptor based on the Go type name.\nfunc aberrantLoadEnumDesc(t reflect.Type) protoreflect.EnumDescriptor {\n\t// Fast-path: check if an EnumDescriptor is cached for this concrete type.\n\tif ed, ok := aberrantEnumDescCache.Load(t); ok {\n\t\treturn ed.(protoreflect.EnumDescriptor)\n\t}\n\n\t// Slow-path: construct a bogus, but unique EnumDescriptor.\n\ted := &filedesc.Enum{L2: new(filedesc.EnumL2)}\n\ted.L0.FullName = AberrantDeriveFullName(t) // e.g., github_com.user.repo.MyEnum\n\ted.L0.ParentFile = filedesc.SurrogateProto3\n\ted.L1.EditionFeatures = ed.L0.ParentFile.L1.EditionFeatures\n\ted.L2.Values.List = append(ed.L2.Values.List, filedesc.EnumValue{})\n\n\t// TODO: Use the presence of a UnmarshalJSON method to determine proto2?\n\n\tvd := &ed.L2.Values.List[0]\n\tvd.L0.FullName = ed.L0.FullName + \"_UNKNOWN\" // e.g., github_com.user.repo.MyEnum_UNKNOWN\n\tvd.L0.ParentFile = ed.L0.ParentFile\n\tvd.L0.Parent = ed\n\n\t// TODO: We could use the String method to obtain some enum value names by\n\t// starting at 0 and print the enum until it produces invalid identifiers.\n\t// An exhaustive query is clearly impractical, but can be best-effort.\n\n\tif ed, ok := aberrantEnumDescCache.LoadOrStore(t, ed); ok {\n\t\treturn ed.(protoreflect.EnumDescriptor)\n\t}\n\treturn ed\n}\n\n// AberrantDeriveFullName derives a fully qualified protobuf name for the given Go type\n// The provided name is not guaranteed to be stable nor universally unique.\n// It should be sufficiently unique within a program.\n//\n// This is exported for testing purposes.\nfunc AberrantDeriveFullName(t reflect.Type) protoreflect.FullName {\n\tsanitize := func(r rune) rune {\n\t\tswitch {\n\t\tcase r == '/':\n\t\t\treturn '.'\n\t\tcase 'a' <= r && r <= 'z', 'A' <= r && r <= 'Z', '0' <= r && r <= '9':\n\t\t\treturn r\n\t\tdefault:\n\t\t\treturn '_'\n\t\t}\n\t}\n\tprefix := strings.Map(sanitize, t.PkgPath())\n\tsuffix := strings.Map(sanitize, t.Name())\n\tif suffix == \"\" {\n\t\tsuffix = fmt.Sprintf(\"UnknownX%X\", reflect.ValueOf(t).Pointer())\n\t}\n\n\tss := append(strings.Split(prefix, \".\"), suffix)\n\tfor i, s := range ss {\n\t\tif s == \"\" || ('0' <= s[0] && s[0] <= '9') {\n\t\t\tss[i] = \"x\" + s\n\t\t}\n\t}\n\treturn protoreflect.FullName(strings.Join(ss, \".\"))\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/legacy_export.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"encoding/binary\"\n\t\"encoding/json\"\n\t\"hash/crc32\"\n\t\"math\"\n\t\"reflect\"\n\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n)\n\n// These functions exist to support exported APIs in generated protobufs.\n// While these are deprecated, they cannot be removed for compatibility reasons.\n\n// LegacyEnumName returns the name of enums used in legacy code.\nfunc (Export) LegacyEnumName(ed protoreflect.EnumDescriptor) string {\n\treturn legacyEnumName(ed)\n}\n\n// LegacyMessageTypeOf returns the protoreflect.MessageType for m,\n// with name used as the message name if necessary.\nfunc (Export) LegacyMessageTypeOf(m protoiface.MessageV1, name protoreflect.FullName) protoreflect.MessageType {\n\tif mv := (Export{}).protoMessageV2Of(m); mv != nil {\n\t\treturn mv.ProtoReflect().Type()\n\t}\n\treturn legacyLoadMessageType(reflect.TypeOf(m), name)\n}\n\n// UnmarshalJSONEnum unmarshals an enum from a JSON-encoded input.\n// The input can either be a string representing the enum value by name,\n// or a number representing the enum number itself.\nfunc (Export) UnmarshalJSONEnum(ed protoreflect.EnumDescriptor, b []byte) (protoreflect.EnumNumber, error) {\n\tif b[0] == '\"' {\n\t\tvar name protoreflect.Name\n\t\tif err := json.Unmarshal(b, &name); err != nil {\n\t\t\treturn 0, errors.New(\"invalid input for enum %v: %s\", ed.FullName(), b)\n\t\t}\n\t\tev := ed.Values().ByName(name)\n\t\tif ev == nil {\n\t\t\treturn 0, errors.New(\"invalid value for enum %v: %s\", ed.FullName(), name)\n\t\t}\n\t\treturn ev.Number(), nil\n\t} else {\n\t\tvar num protoreflect.EnumNumber\n\t\tif err := json.Unmarshal(b, &num); err != nil {\n\t\t\treturn 0, errors.New(\"invalid input for enum %v: %s\", ed.FullName(), b)\n\t\t}\n\t\treturn num, nil\n\t}\n}\n\n// CompressGZIP compresses the input as a GZIP-encoded file.\n// The current implementation does no compression.\nfunc (Export) CompressGZIP(in []byte) (out []byte) {\n\t// RFC 1952, section 2.3.1.\n\tvar gzipHeader = [10]byte{0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff}\n\n\t// RFC 1951, section 3.2.4.\n\tvar blockHeader [5]byte\n\tconst maxBlockSize = math.MaxUint16\n\tnumBlocks := 1 + len(in)/maxBlockSize\n\n\t// RFC 1952, section 2.3.1.\n\tvar gzipFooter [8]byte\n\tbinary.LittleEndian.PutUint32(gzipFooter[0:4], crc32.ChecksumIEEE(in))\n\tbinary.LittleEndian.PutUint32(gzipFooter[4:8], uint32(len(in)))\n\n\t// Encode the input without compression using raw DEFLATE blocks.\n\tout = make([]byte, 0, len(gzipHeader)+len(blockHeader)*numBlocks+len(in)+len(gzipFooter))\n\tout = append(out, gzipHeader[:]...)\n\tfor blockHeader[0] == 0 {\n\t\tblockSize := maxBlockSize\n\t\tif blockSize > len(in) {\n\t\t\tblockHeader[0] = 0x01 // final bit per RFC 1951, section 3.2.3.\n\t\t\tblockSize = len(in)\n\t\t}\n\t\tbinary.LittleEndian.PutUint16(blockHeader[1:3], uint16(blockSize))\n\t\tbinary.LittleEndian.PutUint16(blockHeader[3:5], ^uint16(blockSize))\n\t\tout = append(out, blockHeader[:]...)\n\t\tout = append(out, in[:blockSize]...)\n\t\tin = in[blockSize:]\n\t}\n\tout = append(out, gzipFooter[:]...)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/legacy_extension.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"reflect\"\n\n\t\"google.golang.org/protobuf/internal/descopts\"\n\t\"google.golang.org/protobuf/internal/encoding/messageset\"\n\tptag \"google.golang.org/protobuf/internal/encoding/tag\"\n\t\"google.golang.org/protobuf/internal/filedesc\"\n\t\"google.golang.org/protobuf/internal/pragma\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/reflect/protoregistry\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n)\n\nfunc (xi *ExtensionInfo) initToLegacy() {\n\txd := xi.desc\n\tvar parent protoiface.MessageV1\n\tmessageName := xd.ContainingMessage().FullName()\n\tif mt, _ := protoregistry.GlobalTypes.FindMessageByName(messageName); mt != nil {\n\t\t// Create a new parent message and unwrap it if possible.\n\t\tmv := mt.New().Interface()\n\t\tt := reflect.TypeOf(mv)\n\t\tif mv, ok := mv.(unwrapper); ok {\n\t\t\tt = reflect.TypeOf(mv.protoUnwrap())\n\t\t}\n\n\t\t// Check whether the message implements the legacy v1 Message interface.\n\t\tmz := reflect.Zero(t).Interface()\n\t\tif mz, ok := mz.(protoiface.MessageV1); ok {\n\t\t\tparent = mz\n\t\t}\n\t}\n\n\t// Determine the v1 extension type, which is unfortunately not the same as\n\t// the v2 ExtensionType.GoType.\n\textType := xi.goType\n\tswitch extType.Kind() {\n\tcase reflect.Bool, reflect.Int32, reflect.Int64, reflect.Uint32, reflect.Uint64, reflect.Float32, reflect.Float64, reflect.String:\n\t\textType = reflect.PtrTo(extType) // T -> *T for singular scalar fields\n\t}\n\n\t// Reconstruct the legacy enum full name.\n\tvar enumName string\n\tif xd.Kind() == protoreflect.EnumKind {\n\t\tenumName = legacyEnumName(xd.Enum())\n\t}\n\n\t// Derive the proto file that the extension was declared within.\n\tvar filename string\n\tif fd := xd.ParentFile(); fd != nil {\n\t\tfilename = fd.Path()\n\t}\n\n\t// For MessageSet extensions, the name used is the parent message.\n\tname := xd.FullName()\n\tif messageset.IsMessageSetExtension(xd) {\n\t\tname = name.Parent()\n\t}\n\n\txi.ExtendedType = parent\n\txi.ExtensionType = reflect.Zero(extType).Interface()\n\txi.Field = int32(xd.Number())\n\txi.Name = string(name)\n\txi.Tag = ptag.Marshal(xd, enumName)\n\txi.Filename = filename\n}\n\n// initFromLegacy initializes an ExtensionInfo from\n// the contents of the deprecated exported fields of the type.\nfunc (xi *ExtensionInfo) initFromLegacy() {\n\t// The v1 API returns \"type incomplete\" descriptors where only the\n\t// field number is specified. In such a case, use a placeholder.\n\tif xi.ExtendedType == nil || xi.ExtensionType == nil {\n\t\txd := placeholderExtension{\n\t\t\tname:   protoreflect.FullName(xi.Name),\n\t\t\tnumber: protoreflect.FieldNumber(xi.Field),\n\t\t}\n\t\txi.desc = extensionTypeDescriptor{xd, xi}\n\t\treturn\n\t}\n\n\t// Resolve enum or message dependencies.\n\tvar ed protoreflect.EnumDescriptor\n\tvar md protoreflect.MessageDescriptor\n\tt := reflect.TypeOf(xi.ExtensionType)\n\tisOptional := t.Kind() == reflect.Ptr && t.Elem().Kind() != reflect.Struct\n\tisRepeated := t.Kind() == reflect.Slice && t.Elem().Kind() != reflect.Uint8\n\tif isOptional || isRepeated {\n\t\tt = t.Elem()\n\t}\n\tswitch v := reflect.Zero(t).Interface().(type) {\n\tcase protoreflect.Enum:\n\t\ted = v.Descriptor()\n\tcase enumV1:\n\t\ted = LegacyLoadEnumDesc(t)\n\tcase protoreflect.ProtoMessage:\n\t\tmd = v.ProtoReflect().Descriptor()\n\tcase messageV1:\n\t\tmd = LegacyLoadMessageDesc(t)\n\t}\n\n\t// Derive basic field information from the struct tag.\n\tvar evs protoreflect.EnumValueDescriptors\n\tif ed != nil {\n\t\tevs = ed.Values()\n\t}\n\tfd := ptag.Unmarshal(xi.Tag, t, evs).(*filedesc.Field)\n\n\t// Construct a v2 ExtensionType.\n\txd := &filedesc.Extension{L2: new(filedesc.ExtensionL2)}\n\txd.L0.ParentFile = filedesc.SurrogateProto2\n\txd.L0.FullName = protoreflect.FullName(xi.Name)\n\txd.L1.Number = protoreflect.FieldNumber(xi.Field)\n\txd.L1.Cardinality = fd.L1.Cardinality\n\txd.L1.Kind = fd.L1.Kind\n\txd.L1.EditionFeatures = fd.L1.EditionFeatures\n\txd.L2.Default = fd.L1.Default\n\txd.L1.Extendee = Export{}.MessageDescriptorOf(xi.ExtendedType)\n\txd.L2.Enum = ed\n\txd.L2.Message = md\n\n\t// Derive real extension field name for MessageSets.\n\tif messageset.IsMessageSet(xd.L1.Extendee) && md.FullName() == xd.L0.FullName {\n\t\txd.L0.FullName = xd.L0.FullName.Append(messageset.ExtensionName)\n\t}\n\n\ttt := reflect.TypeOf(xi.ExtensionType)\n\tif isOptional {\n\t\ttt = tt.Elem()\n\t}\n\txi.goType = tt\n\txi.desc = extensionTypeDescriptor{xd, xi}\n}\n\ntype placeholderExtension struct {\n\tname   protoreflect.FullName\n\tnumber protoreflect.FieldNumber\n}\n\nfunc (x placeholderExtension) ParentFile() protoreflect.FileDescriptor            { return nil }\nfunc (x placeholderExtension) Parent() protoreflect.Descriptor                    { return nil }\nfunc (x placeholderExtension) Index() int                                         { return 0 }\nfunc (x placeholderExtension) Syntax() protoreflect.Syntax                        { return 0 }\nfunc (x placeholderExtension) Name() protoreflect.Name                            { return x.name.Name() }\nfunc (x placeholderExtension) FullName() protoreflect.FullName                    { return x.name }\nfunc (x placeholderExtension) IsPlaceholder() bool                                { return true }\nfunc (x placeholderExtension) Options() protoreflect.ProtoMessage                 { return descopts.Field }\nfunc (x placeholderExtension) Number() protoreflect.FieldNumber                   { return x.number }\nfunc (x placeholderExtension) Cardinality() protoreflect.Cardinality              { return 0 }\nfunc (x placeholderExtension) Kind() protoreflect.Kind                            { return 0 }\nfunc (x placeholderExtension) HasJSONName() bool                                  { return false }\nfunc (x placeholderExtension) JSONName() string                                   { return \"[\" + string(x.name) + \"]\" }\nfunc (x placeholderExtension) TextName() string                                   { return \"[\" + string(x.name) + \"]\" }\nfunc (x placeholderExtension) HasPresence() bool                                  { return false }\nfunc (x placeholderExtension) HasOptionalKeyword() bool                           { return false }\nfunc (x placeholderExtension) IsExtension() bool                                  { return true }\nfunc (x placeholderExtension) IsWeak() bool                                       { return false }\nfunc (x placeholderExtension) IsLazy() bool                                       { return false }\nfunc (x placeholderExtension) IsPacked() bool                                     { return false }\nfunc (x placeholderExtension) IsList() bool                                       { return false }\nfunc (x placeholderExtension) IsMap() bool                                        { return false }\nfunc (x placeholderExtension) MapKey() protoreflect.FieldDescriptor               { return nil }\nfunc (x placeholderExtension) MapValue() protoreflect.FieldDescriptor             { return nil }\nfunc (x placeholderExtension) HasDefault() bool                                   { return false }\nfunc (x placeholderExtension) Default() protoreflect.Value                        { return protoreflect.Value{} }\nfunc (x placeholderExtension) DefaultEnumValue() protoreflect.EnumValueDescriptor { return nil }\nfunc (x placeholderExtension) ContainingOneof() protoreflect.OneofDescriptor      { return nil }\nfunc (x placeholderExtension) ContainingMessage() protoreflect.MessageDescriptor  { return nil }\nfunc (x placeholderExtension) Enum() protoreflect.EnumDescriptor                  { return nil }\nfunc (x placeholderExtension) Message() protoreflect.MessageDescriptor            { return nil }\nfunc (x placeholderExtension) ProtoType(protoreflect.FieldDescriptor)             { return }\nfunc (x placeholderExtension) ProtoInternal(pragma.DoNotImplement)                { return }\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/legacy_file.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"bytes\"\n\t\"compress/gzip\"\n\t\"io\"\n\t\"sync\"\n\n\t\"google.golang.org/protobuf/internal/filedesc\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/reflect/protoregistry\"\n)\n\n// Every enum and message type generated by protoc-gen-go since commit 2fc053c5\n// on February 25th, 2016 has had a method to get the raw descriptor.\n// Types that were not generated by protoc-gen-go or were generated prior\n// to that version are not supported.\n//\n// The []byte returned is the encoded form of a FileDescriptorProto message\n// compressed using GZIP. The []int is the path from the top-level file\n// to the specific message or enum declaration.\ntype (\n\tenumV1 interface {\n\t\tEnumDescriptor() ([]byte, []int)\n\t}\n\tmessageV1 interface {\n\t\tDescriptor() ([]byte, []int)\n\t}\n)\n\nvar legacyFileDescCache sync.Map // map[*byte]protoreflect.FileDescriptor\n\n// legacyLoadFileDesc unmarshals b as a compressed FileDescriptorProto message.\n//\n// This assumes that b is immutable and that b does not refer to part of a\n// concatenated series of GZIP files (which would require shenanigans that\n// rely on the concatenation properties of both protobufs and GZIP).\n// File descriptors generated by protoc-gen-go do not rely on that property.\nfunc legacyLoadFileDesc(b []byte) protoreflect.FileDescriptor {\n\t// Fast-path: check whether we already have a cached file descriptor.\n\tif fd, ok := legacyFileDescCache.Load(&b[0]); ok {\n\t\treturn fd.(protoreflect.FileDescriptor)\n\t}\n\n\t// Slow-path: decompress and unmarshal the file descriptor proto.\n\tzr, err := gzip.NewReader(bytes.NewReader(b))\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tb2, err := io.ReadAll(zr)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfd := filedesc.Builder{\n\t\tRawDescriptor: b2,\n\t\tFileRegistry:  resolverOnly{protoregistry.GlobalFiles}, // do not register back to global registry\n\t}.Build().File\n\tif fd, ok := legacyFileDescCache.LoadOrStore(&b[0], fd); ok {\n\t\treturn fd.(protoreflect.FileDescriptor)\n\t}\n\treturn fd\n}\n\ntype resolverOnly struct {\n\treg *protoregistry.Files\n}\n\nfunc (r resolverOnly) FindFileByPath(path string) (protoreflect.FileDescriptor, error) {\n\treturn r.reg.FindFileByPath(path)\n}\nfunc (r resolverOnly) FindDescriptorByName(name protoreflect.FullName) (protoreflect.Descriptor, error) {\n\treturn r.reg.FindDescriptorByName(name)\n}\nfunc (resolverOnly) RegisterFile(protoreflect.FileDescriptor) error {\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/legacy_message.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"google.golang.org/protobuf/internal/descopts\"\n\tptag \"google.golang.org/protobuf/internal/encoding/tag\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/internal/filedesc\"\n\t\"google.golang.org/protobuf/internal/strs\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n)\n\n// legacyWrapMessage wraps v as a protoreflect.Message,\n// where v must be a *struct kind and not implement the v2 API already.\nfunc legacyWrapMessage(v reflect.Value) protoreflect.Message {\n\tt := v.Type()\n\tif t.Kind() != reflect.Ptr || t.Elem().Kind() != reflect.Struct {\n\t\treturn aberrantMessage{v: v}\n\t}\n\tmt := legacyLoadMessageInfo(t, \"\")\n\treturn mt.MessageOf(v.Interface())\n}\n\n// legacyLoadMessageType dynamically loads a protoreflect.Type for t,\n// where t must be not implement the v2 API already.\n// The provided name is used if it cannot be determined from the message.\nfunc legacyLoadMessageType(t reflect.Type, name protoreflect.FullName) protoreflect.MessageType {\n\tif t.Kind() != reflect.Ptr || t.Elem().Kind() != reflect.Struct {\n\t\treturn aberrantMessageType{t}\n\t}\n\treturn legacyLoadMessageInfo(t, name)\n}\n\nvar legacyMessageTypeCache sync.Map // map[reflect.Type]*MessageInfo\n\n// legacyLoadMessageInfo dynamically loads a *MessageInfo for t,\n// where t must be a *struct kind and not implement the v2 API already.\n// The provided name is used if it cannot be determined from the message.\nfunc legacyLoadMessageInfo(t reflect.Type, name protoreflect.FullName) *MessageInfo {\n\t// Fast-path: check if a MessageInfo is cached for this concrete type.\n\tif mt, ok := legacyMessageTypeCache.Load(t); ok {\n\t\treturn mt.(*MessageInfo)\n\t}\n\n\t// Slow-path: derive message descriptor and initialize MessageInfo.\n\tmi := &MessageInfo{\n\t\tDesc:          legacyLoadMessageDesc(t, name),\n\t\tGoReflectType: t,\n\t}\n\n\tvar hasMarshal, hasUnmarshal bool\n\tv := reflect.Zero(t).Interface()\n\tif _, hasMarshal = v.(legacyMarshaler); hasMarshal {\n\t\tmi.methods.Marshal = legacyMarshal\n\n\t\t// We have no way to tell whether the type's Marshal method\n\t\t// supports deterministic serialization or not, but this\n\t\t// preserves the v1 implementation's behavior of always\n\t\t// calling Marshal methods when present.\n\t\tmi.methods.Flags |= protoiface.SupportMarshalDeterministic\n\t}\n\tif _, hasUnmarshal = v.(legacyUnmarshaler); hasUnmarshal {\n\t\tmi.methods.Unmarshal = legacyUnmarshal\n\t}\n\tif _, hasMerge := v.(legacyMerger); hasMerge || (hasMarshal && hasUnmarshal) {\n\t\tmi.methods.Merge = legacyMerge\n\t}\n\n\tif mi, ok := legacyMessageTypeCache.LoadOrStore(t, mi); ok {\n\t\treturn mi.(*MessageInfo)\n\t}\n\treturn mi\n}\n\nvar legacyMessageDescCache sync.Map // map[reflect.Type]protoreflect.MessageDescriptor\n\n// LegacyLoadMessageDesc returns an MessageDescriptor derived from the Go type,\n// which should be a *struct kind and must not implement the v2 API already.\n//\n// This is exported for testing purposes.\nfunc LegacyLoadMessageDesc(t reflect.Type) protoreflect.MessageDescriptor {\n\treturn legacyLoadMessageDesc(t, \"\")\n}\nfunc legacyLoadMessageDesc(t reflect.Type, name protoreflect.FullName) protoreflect.MessageDescriptor {\n\t// Fast-path: check if a MessageDescriptor is cached for this concrete type.\n\tif mi, ok := legacyMessageDescCache.Load(t); ok {\n\t\treturn mi.(protoreflect.MessageDescriptor)\n\t}\n\n\t// Slow-path: initialize MessageDescriptor from the raw descriptor.\n\tmv := reflect.Zero(t).Interface()\n\tif _, ok := mv.(protoreflect.ProtoMessage); ok {\n\t\tpanic(fmt.Sprintf(\"%v already implements proto.Message\", t))\n\t}\n\tmdV1, ok := mv.(messageV1)\n\tif !ok {\n\t\treturn aberrantLoadMessageDesc(t, name)\n\t}\n\n\t// If this is a dynamic message type where there isn't a 1-1 mapping between\n\t// Go and protobuf types, calling the Descriptor method on the zero value of\n\t// the message type isn't likely to work. If it panics, swallow the panic and\n\t// continue as if the Descriptor method wasn't present.\n\tb, idxs := func() ([]byte, []int) {\n\t\tdefer func() {\n\t\t\trecover()\n\t\t}()\n\t\treturn mdV1.Descriptor()\n\t}()\n\tif b == nil {\n\t\treturn aberrantLoadMessageDesc(t, name)\n\t}\n\n\t// If the Go type has no fields, then this might be a proto3 empty message\n\t// from before the size cache was added. If there are any fields, check to\n\t// see that at least one of them looks like something we generated.\n\tif t.Elem().Kind() == reflect.Struct {\n\t\tif nfield := t.Elem().NumField(); nfield > 0 {\n\t\t\thasProtoField := false\n\t\t\tfor i := 0; i < nfield; i++ {\n\t\t\t\tf := t.Elem().Field(i)\n\t\t\t\tif f.Tag.Get(\"protobuf\") != \"\" || f.Tag.Get(\"protobuf_oneof\") != \"\" || strings.HasPrefix(f.Name, \"XXX_\") {\n\t\t\t\t\thasProtoField = true\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !hasProtoField {\n\t\t\t\treturn aberrantLoadMessageDesc(t, name)\n\t\t\t}\n\t\t}\n\t}\n\n\tmd := legacyLoadFileDesc(b).Messages().Get(idxs[0])\n\tfor _, i := range idxs[1:] {\n\t\tmd = md.Messages().Get(i)\n\t}\n\tif name != \"\" && md.FullName() != name {\n\t\tpanic(fmt.Sprintf(\"mismatching message name: got %v, want %v\", md.FullName(), name))\n\t}\n\tif md, ok := legacyMessageDescCache.LoadOrStore(t, md); ok {\n\t\treturn md.(protoreflect.MessageDescriptor)\n\t}\n\treturn md\n}\n\nvar (\n\taberrantMessageDescLock  sync.Mutex\n\taberrantMessageDescCache map[reflect.Type]protoreflect.MessageDescriptor\n)\n\n// aberrantLoadMessageDesc returns an MessageDescriptor derived from the Go type,\n// which must not implement protoreflect.ProtoMessage or messageV1.\n//\n// This is a best-effort derivation of the message descriptor using the protobuf\n// tags on the struct fields.\nfunc aberrantLoadMessageDesc(t reflect.Type, name protoreflect.FullName) protoreflect.MessageDescriptor {\n\taberrantMessageDescLock.Lock()\n\tdefer aberrantMessageDescLock.Unlock()\n\tif aberrantMessageDescCache == nil {\n\t\taberrantMessageDescCache = make(map[reflect.Type]protoreflect.MessageDescriptor)\n\t}\n\treturn aberrantLoadMessageDescReentrant(t, name)\n}\nfunc aberrantLoadMessageDescReentrant(t reflect.Type, name protoreflect.FullName) protoreflect.MessageDescriptor {\n\t// Fast-path: check if an MessageDescriptor is cached for this concrete type.\n\tif md, ok := aberrantMessageDescCache[t]; ok {\n\t\treturn md\n\t}\n\n\t// Slow-path: construct a descriptor from the Go struct type (best-effort).\n\t// Cache the MessageDescriptor early on so that we can resolve internal\n\t// cyclic references.\n\tmd := &filedesc.Message{L2: new(filedesc.MessageL2)}\n\tmd.L0.FullName = aberrantDeriveMessageName(t, name)\n\tmd.L0.ParentFile = filedesc.SurrogateProto2\n\taberrantMessageDescCache[t] = md\n\n\tif t.Kind() != reflect.Ptr || t.Elem().Kind() != reflect.Struct {\n\t\treturn md\n\t}\n\n\t// Try to determine if the message is using proto3 by checking scalars.\n\tfor i := 0; i < t.Elem().NumField(); i++ {\n\t\tf := t.Elem().Field(i)\n\t\tif tag := f.Tag.Get(\"protobuf\"); tag != \"\" {\n\t\t\tswitch f.Type.Kind() {\n\t\t\tcase reflect.Bool, reflect.Int32, reflect.Int64, reflect.Uint32, reflect.Uint64, reflect.Float32, reflect.Float64, reflect.String:\n\t\t\t\tmd.L0.ParentFile = filedesc.SurrogateProto3\n\t\t\t}\n\t\t\tfor _, s := range strings.Split(tag, \",\") {\n\t\t\t\tif s == \"proto3\" {\n\t\t\t\t\tmd.L0.ParentFile = filedesc.SurrogateProto3\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tmd.L1.EditionFeatures = md.L0.ParentFile.L1.EditionFeatures\n\t// Obtain a list of oneof wrapper types.\n\tvar oneofWrappers []reflect.Type\n\tmethods := make([]reflect.Method, 0, 2)\n\tif m, ok := t.MethodByName(\"XXX_OneofFuncs\"); ok {\n\t\tmethods = append(methods, m)\n\t}\n\tif m, ok := t.MethodByName(\"XXX_OneofWrappers\"); ok {\n\t\tmethods = append(methods, m)\n\t}\n\tfor _, fn := range methods {\n\t\tfor _, v := range fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))}) {\n\t\t\tif vs, ok := v.Interface().([]any); ok {\n\t\t\t\tfor _, v := range vs {\n\t\t\t\t\toneofWrappers = append(oneofWrappers, reflect.TypeOf(v))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Obtain a list of the extension ranges.\n\tif fn, ok := t.MethodByName(\"ExtensionRangeArray\"); ok {\n\t\tvs := fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))})[0]\n\t\tfor i := 0; i < vs.Len(); i++ {\n\t\t\tv := vs.Index(i)\n\t\t\tmd.L2.ExtensionRanges.List = append(md.L2.ExtensionRanges.List, [2]protoreflect.FieldNumber{\n\t\t\t\tprotoreflect.FieldNumber(v.FieldByName(\"Start\").Int()),\n\t\t\t\tprotoreflect.FieldNumber(v.FieldByName(\"End\").Int() + 1),\n\t\t\t})\n\t\t\tmd.L2.ExtensionRangeOptions = append(md.L2.ExtensionRangeOptions, nil)\n\t\t}\n\t}\n\n\t// Derive the message fields by inspecting the struct fields.\n\tfor i := 0; i < t.Elem().NumField(); i++ {\n\t\tf := t.Elem().Field(i)\n\t\tif tag := f.Tag.Get(\"protobuf\"); tag != \"\" {\n\t\t\ttagKey := f.Tag.Get(\"protobuf_key\")\n\t\t\ttagVal := f.Tag.Get(\"protobuf_val\")\n\t\t\taberrantAppendField(md, f.Type, tag, tagKey, tagVal)\n\t\t}\n\t\tif tag := f.Tag.Get(\"protobuf_oneof\"); tag != \"\" {\n\t\t\tn := len(md.L2.Oneofs.List)\n\t\t\tmd.L2.Oneofs.List = append(md.L2.Oneofs.List, filedesc.Oneof{})\n\t\t\tod := &md.L2.Oneofs.List[n]\n\t\t\tod.L0.FullName = md.FullName().Append(protoreflect.Name(tag))\n\t\t\tod.L0.ParentFile = md.L0.ParentFile\n\t\t\tod.L1.EditionFeatures = md.L1.EditionFeatures\n\t\t\tod.L0.Parent = md\n\t\t\tod.L0.Index = n\n\n\t\t\tfor _, t := range oneofWrappers {\n\t\t\t\tif t.Implements(f.Type) {\n\t\t\t\t\tf := t.Elem().Field(0)\n\t\t\t\t\tif tag := f.Tag.Get(\"protobuf\"); tag != \"\" {\n\t\t\t\t\t\taberrantAppendField(md, f.Type, tag, \"\", \"\")\n\t\t\t\t\t\tfd := &md.L2.Fields.List[len(md.L2.Fields.List)-1]\n\t\t\t\t\t\tfd.L1.ContainingOneof = od\n\t\t\t\t\t\tfd.L1.EditionFeatures = od.L1.EditionFeatures\n\t\t\t\t\t\tod.L1.Fields.List = append(od.L1.Fields.List, fd)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn md\n}\n\nfunc aberrantDeriveMessageName(t reflect.Type, name protoreflect.FullName) protoreflect.FullName {\n\tif name.IsValid() {\n\t\treturn name\n\t}\n\tfunc() {\n\t\tdefer func() { recover() }() // swallow possible nil panics\n\t\tif m, ok := reflect.Zero(t).Interface().(interface{ XXX_MessageName() string }); ok {\n\t\t\tname = protoreflect.FullName(m.XXX_MessageName())\n\t\t}\n\t}()\n\tif name.IsValid() {\n\t\treturn name\n\t}\n\tif t.Kind() == reflect.Ptr {\n\t\tt = t.Elem()\n\t}\n\treturn AberrantDeriveFullName(t)\n}\n\nfunc aberrantAppendField(md *filedesc.Message, goType reflect.Type, tag, tagKey, tagVal string) {\n\tt := goType\n\tisOptional := t.Kind() == reflect.Ptr && t.Elem().Kind() != reflect.Struct\n\tisRepeated := t.Kind() == reflect.Slice && t.Elem().Kind() != reflect.Uint8\n\tif isOptional || isRepeated {\n\t\tt = t.Elem()\n\t}\n\tfd := ptag.Unmarshal(tag, t, placeholderEnumValues{}).(*filedesc.Field)\n\n\t// Append field descriptor to the message.\n\tn := len(md.L2.Fields.List)\n\tmd.L2.Fields.List = append(md.L2.Fields.List, *fd)\n\tfd = &md.L2.Fields.List[n]\n\tfd.L0.FullName = md.FullName().Append(fd.Name())\n\tfd.L0.ParentFile = md.L0.ParentFile\n\tfd.L0.Parent = md\n\tfd.L0.Index = n\n\n\tif fd.L1.IsWeak || fd.L1.EditionFeatures.IsPacked {\n\t\tfd.L1.Options = func() protoreflect.ProtoMessage {\n\t\t\topts := descopts.Field.ProtoReflect().New()\n\t\t\tif fd.L1.IsWeak {\n\t\t\t\topts.Set(opts.Descriptor().Fields().ByName(\"weak\"), protoreflect.ValueOfBool(true))\n\t\t\t}\n\t\t\tif fd.L1.EditionFeatures.IsPacked {\n\t\t\t\topts.Set(opts.Descriptor().Fields().ByName(\"packed\"), protoreflect.ValueOfBool(fd.L1.EditionFeatures.IsPacked))\n\t\t\t}\n\t\t\treturn opts.Interface()\n\t\t}\n\t}\n\n\t// Populate Enum and Message.\n\tif fd.Enum() == nil && fd.Kind() == protoreflect.EnumKind {\n\t\tswitch v := reflect.Zero(t).Interface().(type) {\n\t\tcase protoreflect.Enum:\n\t\t\tfd.L1.Enum = v.Descriptor()\n\t\tdefault:\n\t\t\tfd.L1.Enum = LegacyLoadEnumDesc(t)\n\t\t}\n\t}\n\tif fd.Message() == nil && (fd.Kind() == protoreflect.MessageKind || fd.Kind() == protoreflect.GroupKind) {\n\t\tswitch v := reflect.Zero(t).Interface().(type) {\n\t\tcase protoreflect.ProtoMessage:\n\t\t\tfd.L1.Message = v.ProtoReflect().Descriptor()\n\t\tcase messageV1:\n\t\t\tfd.L1.Message = LegacyLoadMessageDesc(t)\n\t\tdefault:\n\t\t\tif t.Kind() == reflect.Map {\n\t\t\t\tn := len(md.L1.Messages.List)\n\t\t\t\tmd.L1.Messages.List = append(md.L1.Messages.List, filedesc.Message{L2: new(filedesc.MessageL2)})\n\t\t\t\tmd2 := &md.L1.Messages.List[n]\n\t\t\t\tmd2.L0.FullName = md.FullName().Append(protoreflect.Name(strs.MapEntryName(string(fd.Name()))))\n\t\t\t\tmd2.L0.ParentFile = md.L0.ParentFile\n\t\t\t\tmd2.L0.Parent = md\n\t\t\t\tmd2.L0.Index = n\n\t\t\t\tmd2.L1.EditionFeatures = md.L1.EditionFeatures\n\n\t\t\t\tmd2.L1.IsMapEntry = true\n\t\t\t\tmd2.L2.Options = func() protoreflect.ProtoMessage {\n\t\t\t\t\topts := descopts.Message.ProtoReflect().New()\n\t\t\t\t\topts.Set(opts.Descriptor().Fields().ByName(\"map_entry\"), protoreflect.ValueOfBool(true))\n\t\t\t\t\treturn opts.Interface()\n\t\t\t\t}\n\n\t\t\t\taberrantAppendField(md2, t.Key(), tagKey, \"\", \"\")\n\t\t\t\taberrantAppendField(md2, t.Elem(), tagVal, \"\", \"\")\n\n\t\t\t\tfd.L1.Message = md2\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tfd.L1.Message = aberrantLoadMessageDescReentrant(t, \"\")\n\t\t}\n\t}\n}\n\ntype placeholderEnumValues struct {\n\tprotoreflect.EnumValueDescriptors\n}\n\nfunc (placeholderEnumValues) ByNumber(n protoreflect.EnumNumber) protoreflect.EnumValueDescriptor {\n\treturn filedesc.PlaceholderEnumValue(protoreflect.FullName(fmt.Sprintf(\"UNKNOWN_%d\", n)))\n}\n\n// legacyMarshaler is the proto.Marshaler interface superseded by protoiface.Methoder.\ntype legacyMarshaler interface {\n\tMarshal() ([]byte, error)\n}\n\n// legacyUnmarshaler is the proto.Unmarshaler interface superseded by protoiface.Methoder.\ntype legacyUnmarshaler interface {\n\tUnmarshal([]byte) error\n}\n\n// legacyMerger is the proto.Merger interface superseded by protoiface.Methoder.\ntype legacyMerger interface {\n\tMerge(protoiface.MessageV1)\n}\n\nvar aberrantProtoMethods = &protoiface.Methods{\n\tMarshal:   legacyMarshal,\n\tUnmarshal: legacyUnmarshal,\n\tMerge:     legacyMerge,\n\n\t// We have no way to tell whether the type's Marshal method\n\t// supports deterministic serialization or not, but this\n\t// preserves the v1 implementation's behavior of always\n\t// calling Marshal methods when present.\n\tFlags: protoiface.SupportMarshalDeterministic,\n}\n\nfunc legacyMarshal(in protoiface.MarshalInput) (protoiface.MarshalOutput, error) {\n\tv := in.Message.(unwrapper).protoUnwrap()\n\tmarshaler, ok := v.(legacyMarshaler)\n\tif !ok {\n\t\treturn protoiface.MarshalOutput{}, errors.New(\"%T does not implement Marshal\", v)\n\t}\n\tout, err := marshaler.Marshal()\n\tif in.Buf != nil {\n\t\tout = append(in.Buf, out...)\n\t}\n\treturn protoiface.MarshalOutput{\n\t\tBuf: out,\n\t}, err\n}\n\nfunc legacyUnmarshal(in protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) {\n\tv := in.Message.(unwrapper).protoUnwrap()\n\tunmarshaler, ok := v.(legacyUnmarshaler)\n\tif !ok {\n\t\treturn protoiface.UnmarshalOutput{}, errors.New(\"%T does not implement Unmarshal\", v)\n\t}\n\treturn protoiface.UnmarshalOutput{}, unmarshaler.Unmarshal(in.Buf)\n}\n\nfunc legacyMerge(in protoiface.MergeInput) protoiface.MergeOutput {\n\t// Check whether this supports the legacy merger.\n\tdstv := in.Destination.(unwrapper).protoUnwrap()\n\tmerger, ok := dstv.(legacyMerger)\n\tif ok {\n\t\tmerger.Merge(Export{}.ProtoMessageV1Of(in.Source))\n\t\treturn protoiface.MergeOutput{Flags: protoiface.MergeComplete}\n\t}\n\n\t// If legacy merger is unavailable, implement merge in terms of\n\t// a marshal and unmarshal operation.\n\tsrcv := in.Source.(unwrapper).protoUnwrap()\n\tmarshaler, ok := srcv.(legacyMarshaler)\n\tif !ok {\n\t\treturn protoiface.MergeOutput{}\n\t}\n\tdstv = in.Destination.(unwrapper).protoUnwrap()\n\tunmarshaler, ok := dstv.(legacyUnmarshaler)\n\tif !ok {\n\t\treturn protoiface.MergeOutput{}\n\t}\n\tif !in.Source.IsValid() {\n\t\t// Legacy Marshal methods may not function on nil messages.\n\t\t// Check for a typed nil source only after we confirm that\n\t\t// legacy Marshal/Unmarshal methods are present, for\n\t\t// consistency.\n\t\treturn protoiface.MergeOutput{Flags: protoiface.MergeComplete}\n\t}\n\tb, err := marshaler.Marshal()\n\tif err != nil {\n\t\treturn protoiface.MergeOutput{}\n\t}\n\terr = unmarshaler.Unmarshal(b)\n\tif err != nil {\n\t\treturn protoiface.MergeOutput{}\n\t}\n\treturn protoiface.MergeOutput{Flags: protoiface.MergeComplete}\n}\n\n// aberrantMessageType implements MessageType for all types other than pointer-to-struct.\ntype aberrantMessageType struct {\n\tt reflect.Type\n}\n\nfunc (mt aberrantMessageType) New() protoreflect.Message {\n\tif mt.t.Kind() == reflect.Ptr {\n\t\treturn aberrantMessage{reflect.New(mt.t.Elem())}\n\t}\n\treturn aberrantMessage{reflect.Zero(mt.t)}\n}\nfunc (mt aberrantMessageType) Zero() protoreflect.Message {\n\treturn aberrantMessage{reflect.Zero(mt.t)}\n}\nfunc (mt aberrantMessageType) GoType() reflect.Type {\n\treturn mt.t\n}\nfunc (mt aberrantMessageType) Descriptor() protoreflect.MessageDescriptor {\n\treturn LegacyLoadMessageDesc(mt.t)\n}\n\n// aberrantMessage implements Message for all types other than pointer-to-struct.\n//\n// When the underlying type implements legacyMarshaler or legacyUnmarshaler,\n// the aberrant Message can be marshaled or unmarshaled. Otherwise, there is\n// not much that can be done with values of this type.\ntype aberrantMessage struct {\n\tv reflect.Value\n}\n\n// Reset implements the v1 proto.Message.Reset method.\nfunc (m aberrantMessage) Reset() {\n\tif mr, ok := m.v.Interface().(interface{ Reset() }); ok {\n\t\tmr.Reset()\n\t\treturn\n\t}\n\tif m.v.Kind() == reflect.Ptr && !m.v.IsNil() {\n\t\tm.v.Elem().Set(reflect.Zero(m.v.Type().Elem()))\n\t}\n}\n\nfunc (m aberrantMessage) ProtoReflect() protoreflect.Message {\n\treturn m\n}\n\nfunc (m aberrantMessage) Descriptor() protoreflect.MessageDescriptor {\n\treturn LegacyLoadMessageDesc(m.v.Type())\n}\nfunc (m aberrantMessage) Type() protoreflect.MessageType {\n\treturn aberrantMessageType{m.v.Type()}\n}\nfunc (m aberrantMessage) New() protoreflect.Message {\n\tif m.v.Type().Kind() == reflect.Ptr {\n\t\treturn aberrantMessage{reflect.New(m.v.Type().Elem())}\n\t}\n\treturn aberrantMessage{reflect.Zero(m.v.Type())}\n}\nfunc (m aberrantMessage) Interface() protoreflect.ProtoMessage {\n\treturn m\n}\nfunc (m aberrantMessage) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {\n\treturn\n}\nfunc (m aberrantMessage) Has(protoreflect.FieldDescriptor) bool {\n\treturn false\n}\nfunc (m aberrantMessage) Clear(protoreflect.FieldDescriptor) {\n\tpanic(\"invalid Message.Clear on \" + string(m.Descriptor().FullName()))\n}\nfunc (m aberrantMessage) Get(fd protoreflect.FieldDescriptor) protoreflect.Value {\n\tif fd.Default().IsValid() {\n\t\treturn fd.Default()\n\t}\n\tpanic(\"invalid Message.Get on \" + string(m.Descriptor().FullName()))\n}\nfunc (m aberrantMessage) Set(protoreflect.FieldDescriptor, protoreflect.Value) {\n\tpanic(\"invalid Message.Set on \" + string(m.Descriptor().FullName()))\n}\nfunc (m aberrantMessage) Mutable(protoreflect.FieldDescriptor) protoreflect.Value {\n\tpanic(\"invalid Message.Mutable on \" + string(m.Descriptor().FullName()))\n}\nfunc (m aberrantMessage) NewField(protoreflect.FieldDescriptor) protoreflect.Value {\n\tpanic(\"invalid Message.NewField on \" + string(m.Descriptor().FullName()))\n}\nfunc (m aberrantMessage) WhichOneof(protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {\n\tpanic(\"invalid Message.WhichOneof descriptor on \" + string(m.Descriptor().FullName()))\n}\nfunc (m aberrantMessage) GetUnknown() protoreflect.RawFields {\n\treturn nil\n}\nfunc (m aberrantMessage) SetUnknown(protoreflect.RawFields) {\n\t// SetUnknown discards its input on messages which don't support unknown field storage.\n}\nfunc (m aberrantMessage) IsValid() bool {\n\tif m.v.Kind() == reflect.Ptr {\n\t\treturn !m.v.IsNil()\n\t}\n\treturn false\n}\nfunc (m aberrantMessage) ProtoMethods() *protoiface.Methods {\n\treturn aberrantProtoMethods\n}\nfunc (m aberrantMessage) protoUnwrap() any {\n\treturn m.v.Interface()\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/merge.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\n\t\"google.golang.org/protobuf/proto\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n)\n\ntype mergeOptions struct{}\n\nfunc (o mergeOptions) Merge(dst, src proto.Message) {\n\tproto.Merge(dst, src)\n}\n\n// merge is protoreflect.Methods.Merge.\nfunc (mi *MessageInfo) merge(in protoiface.MergeInput) protoiface.MergeOutput {\n\tdp, ok := mi.getPointer(in.Destination)\n\tif !ok {\n\t\treturn protoiface.MergeOutput{}\n\t}\n\tsp, ok := mi.getPointer(in.Source)\n\tif !ok {\n\t\treturn protoiface.MergeOutput{}\n\t}\n\tmi.mergePointer(dp, sp, mergeOptions{})\n\treturn protoiface.MergeOutput{Flags: protoiface.MergeComplete}\n}\n\nfunc (mi *MessageInfo) mergePointer(dst, src pointer, opts mergeOptions) {\n\tmi.init()\n\tif dst.IsNil() {\n\t\tpanic(fmt.Sprintf(\"invalid value: merging into nil message\"))\n\t}\n\tif src.IsNil() {\n\t\treturn\n\t}\n\tfor _, f := range mi.orderedCoderFields {\n\t\tif f.funcs.merge == nil {\n\t\t\tcontinue\n\t\t}\n\t\tsfptr := src.Apply(f.offset)\n\t\tif f.isPointer && sfptr.Elem().IsNil() {\n\t\t\tcontinue\n\t\t}\n\t\tf.funcs.merge(dst.Apply(f.offset), sfptr, f, opts)\n\t}\n\tif mi.extensionOffset.IsValid() {\n\t\tsext := src.Apply(mi.extensionOffset).Extensions()\n\t\tdext := dst.Apply(mi.extensionOffset).Extensions()\n\t\tif *dext == nil {\n\t\t\t*dext = make(map[int32]ExtensionField)\n\t\t}\n\t\tfor num, sx := range *sext {\n\t\t\txt := sx.Type()\n\t\t\txi := getExtensionFieldInfo(xt)\n\t\t\tif xi.funcs.merge == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tdx := (*dext)[num]\n\t\t\tvar dv protoreflect.Value\n\t\t\tif dx.Type() == sx.Type() {\n\t\t\t\tdv = dx.Value()\n\t\t\t}\n\t\t\tif !dv.IsValid() && xi.unmarshalNeedsValue {\n\t\t\t\tdv = xt.New()\n\t\t\t}\n\t\t\tdv = xi.funcs.merge(dv, sx.Value(), opts)\n\t\t\tdx.Set(sx.Type(), dv)\n\t\t\t(*dext)[num] = dx\n\t\t}\n\t}\n\tif mi.unknownOffset.IsValid() {\n\t\tsu := mi.getUnknownBytes(src)\n\t\tif su != nil && len(*su) > 0 {\n\t\t\tdu := mi.mutableUnknownBytes(dst)\n\t\t\t*du = append(*du, *su...)\n\t\t}\n\t}\n}\n\nfunc mergeScalarValue(dst, src protoreflect.Value, opts mergeOptions) protoreflect.Value {\n\treturn src\n}\n\nfunc mergeBytesValue(dst, src protoreflect.Value, opts mergeOptions) protoreflect.Value {\n\treturn protoreflect.ValueOfBytes(append(emptyBuf[:], src.Bytes()...))\n}\n\nfunc mergeListValue(dst, src protoreflect.Value, opts mergeOptions) protoreflect.Value {\n\tdstl := dst.List()\n\tsrcl := src.List()\n\tfor i, llen := 0, srcl.Len(); i < llen; i++ {\n\t\tdstl.Append(srcl.Get(i))\n\t}\n\treturn dst\n}\n\nfunc mergeBytesListValue(dst, src protoreflect.Value, opts mergeOptions) protoreflect.Value {\n\tdstl := dst.List()\n\tsrcl := src.List()\n\tfor i, llen := 0, srcl.Len(); i < llen; i++ {\n\t\tsb := srcl.Get(i).Bytes()\n\t\tdb := append(emptyBuf[:], sb...)\n\t\tdstl.Append(protoreflect.ValueOfBytes(db))\n\t}\n\treturn dst\n}\n\nfunc mergeMessageListValue(dst, src protoreflect.Value, opts mergeOptions) protoreflect.Value {\n\tdstl := dst.List()\n\tsrcl := src.List()\n\tfor i, llen := 0, srcl.Len(); i < llen; i++ {\n\t\tsm := srcl.Get(i).Message()\n\t\tdm := proto.Clone(sm.Interface()).ProtoReflect()\n\t\tdstl.Append(protoreflect.ValueOfMessage(dm))\n\t}\n\treturn dst\n}\n\nfunc mergeMessageValue(dst, src protoreflect.Value, opts mergeOptions) protoreflect.Value {\n\topts.Merge(dst.Message().Interface(), src.Message().Interface())\n\treturn dst\n}\n\nfunc mergeMessage(dst, src pointer, f *coderFieldInfo, opts mergeOptions) {\n\tif f.mi != nil {\n\t\tif dst.Elem().IsNil() {\n\t\t\tdst.SetPointer(pointerOfValue(reflect.New(f.mi.GoReflectType.Elem())))\n\t\t}\n\t\tf.mi.mergePointer(dst.Elem(), src.Elem(), opts)\n\t} else {\n\t\tdm := dst.AsValueOf(f.ft).Elem()\n\t\tsm := src.AsValueOf(f.ft).Elem()\n\t\tif dm.IsNil() {\n\t\t\tdm.Set(reflect.New(f.ft.Elem()))\n\t\t}\n\t\topts.Merge(asMessage(dm), asMessage(sm))\n\t}\n}\n\nfunc mergeMessageSlice(dst, src pointer, f *coderFieldInfo, opts mergeOptions) {\n\tfor _, sp := range src.PointerSlice() {\n\t\tdm := reflect.New(f.ft.Elem().Elem())\n\t\tif f.mi != nil {\n\t\t\tf.mi.mergePointer(pointerOfValue(dm), sp, opts)\n\t\t} else {\n\t\t\topts.Merge(asMessage(dm), asMessage(sp.AsValueOf(f.ft.Elem().Elem())))\n\t\t}\n\t\tdst.AppendPointerSlice(pointerOfValue(dm))\n\t}\n}\n\nfunc mergeBytes(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\t*dst.Bytes() = append(emptyBuf[:], *src.Bytes()...)\n}\n\nfunc mergeBytesNoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tv := *src.Bytes()\n\tif len(v) > 0 {\n\t\t*dst.Bytes() = append(emptyBuf[:], v...)\n\t}\n}\n\nfunc mergeBytesSlice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tds := dst.BytesSlice()\n\tfor _, v := range *src.BytesSlice() {\n\t\t*ds = append(*ds, append(emptyBuf[:], v...))\n\t}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/merge_gen.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by generate-types. DO NOT EDIT.\n\npackage impl\n\nimport ()\n\nfunc mergeBool(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\t*dst.Bool() = *src.Bool()\n}\n\nfunc mergeBoolNoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tv := *src.Bool()\n\tif v != false {\n\t\t*dst.Bool() = v\n\t}\n}\n\nfunc mergeBoolPtr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tp := *src.BoolPtr()\n\tif p != nil {\n\t\tv := *p\n\t\t*dst.BoolPtr() = &v\n\t}\n}\n\nfunc mergeBoolSlice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tds := dst.BoolSlice()\n\tss := src.BoolSlice()\n\t*ds = append(*ds, *ss...)\n}\n\nfunc mergeInt32(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\t*dst.Int32() = *src.Int32()\n}\n\nfunc mergeInt32NoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tv := *src.Int32()\n\tif v != 0 {\n\t\t*dst.Int32() = v\n\t}\n}\n\nfunc mergeInt32Ptr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tp := *src.Int32Ptr()\n\tif p != nil {\n\t\tv := *p\n\t\t*dst.Int32Ptr() = &v\n\t}\n}\n\nfunc mergeInt32Slice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tds := dst.Int32Slice()\n\tss := src.Int32Slice()\n\t*ds = append(*ds, *ss...)\n}\n\nfunc mergeUint32(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\t*dst.Uint32() = *src.Uint32()\n}\n\nfunc mergeUint32NoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tv := *src.Uint32()\n\tif v != 0 {\n\t\t*dst.Uint32() = v\n\t}\n}\n\nfunc mergeUint32Ptr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tp := *src.Uint32Ptr()\n\tif p != nil {\n\t\tv := *p\n\t\t*dst.Uint32Ptr() = &v\n\t}\n}\n\nfunc mergeUint32Slice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tds := dst.Uint32Slice()\n\tss := src.Uint32Slice()\n\t*ds = append(*ds, *ss...)\n}\n\nfunc mergeInt64(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\t*dst.Int64() = *src.Int64()\n}\n\nfunc mergeInt64NoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tv := *src.Int64()\n\tif v != 0 {\n\t\t*dst.Int64() = v\n\t}\n}\n\nfunc mergeInt64Ptr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tp := *src.Int64Ptr()\n\tif p != nil {\n\t\tv := *p\n\t\t*dst.Int64Ptr() = &v\n\t}\n}\n\nfunc mergeInt64Slice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tds := dst.Int64Slice()\n\tss := src.Int64Slice()\n\t*ds = append(*ds, *ss...)\n}\n\nfunc mergeUint64(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\t*dst.Uint64() = *src.Uint64()\n}\n\nfunc mergeUint64NoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tv := *src.Uint64()\n\tif v != 0 {\n\t\t*dst.Uint64() = v\n\t}\n}\n\nfunc mergeUint64Ptr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tp := *src.Uint64Ptr()\n\tif p != nil {\n\t\tv := *p\n\t\t*dst.Uint64Ptr() = &v\n\t}\n}\n\nfunc mergeUint64Slice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tds := dst.Uint64Slice()\n\tss := src.Uint64Slice()\n\t*ds = append(*ds, *ss...)\n}\n\nfunc mergeFloat32(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\t*dst.Float32() = *src.Float32()\n}\n\nfunc mergeFloat32NoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tv := *src.Float32()\n\tif v != 0 {\n\t\t*dst.Float32() = v\n\t}\n}\n\nfunc mergeFloat32Ptr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tp := *src.Float32Ptr()\n\tif p != nil {\n\t\tv := *p\n\t\t*dst.Float32Ptr() = &v\n\t}\n}\n\nfunc mergeFloat32Slice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tds := dst.Float32Slice()\n\tss := src.Float32Slice()\n\t*ds = append(*ds, *ss...)\n}\n\nfunc mergeFloat64(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\t*dst.Float64() = *src.Float64()\n}\n\nfunc mergeFloat64NoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tv := *src.Float64()\n\tif v != 0 {\n\t\t*dst.Float64() = v\n\t}\n}\n\nfunc mergeFloat64Ptr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tp := *src.Float64Ptr()\n\tif p != nil {\n\t\tv := *p\n\t\t*dst.Float64Ptr() = &v\n\t}\n}\n\nfunc mergeFloat64Slice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tds := dst.Float64Slice()\n\tss := src.Float64Slice()\n\t*ds = append(*ds, *ss...)\n}\n\nfunc mergeString(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\t*dst.String() = *src.String()\n}\n\nfunc mergeStringNoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tv := *src.String()\n\tif v != \"\" {\n\t\t*dst.String() = v\n\t}\n}\n\nfunc mergeStringPtr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tp := *src.StringPtr()\n\tif p != nil {\n\t\tv := *p\n\t\t*dst.StringPtr() = &v\n\t}\n}\n\nfunc mergeStringSlice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) {\n\tds := dst.StringSlice()\n\tss := src.StringSlice()\n\t*ds = append(*ds, *ss...)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/message.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n\n\t\"google.golang.org/protobuf/internal/genid\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/reflect/protoregistry\"\n)\n\n// MessageInfo provides protobuf related functionality for a given Go type\n// that represents a message. A given instance of MessageInfo is tied to\n// exactly one Go type, which must be a pointer to a struct type.\n//\n// The exported fields must be populated before any methods are called\n// and cannot be mutated after set.\ntype MessageInfo struct {\n\t// GoReflectType is the underlying message Go type and must be populated.\n\tGoReflectType reflect.Type // pointer to struct\n\n\t// Desc is the underlying message descriptor type and must be populated.\n\tDesc protoreflect.MessageDescriptor\n\n\t// Deprecated: Exporter will be removed the next time we bump\n\t// protoimpl.GenVersion. See https://github.com/golang/protobuf/issues/1640\n\tExporter exporter\n\n\t// OneofWrappers is list of pointers to oneof wrapper struct types.\n\tOneofWrappers []any\n\n\tinitMu   sync.Mutex // protects all unexported fields\n\tinitDone uint32\n\n\treflectMessageInfo // for reflection implementation\n\tcoderMessageInfo   // for fast-path method implementations\n}\n\n// exporter is a function that returns a reference to the ith field of v,\n// where v is a pointer to a struct. It returns nil if it does not support\n// exporting the requested field (e.g., already exported).\ntype exporter func(v any, i int) any\n\n// getMessageInfo returns the MessageInfo for any message type that\n// is generated by our implementation of protoc-gen-go (for v2 and on).\n// If it is unable to obtain a MessageInfo, it returns nil.\nfunc getMessageInfo(mt reflect.Type) *MessageInfo {\n\tm, ok := reflect.Zero(mt).Interface().(protoreflect.ProtoMessage)\n\tif !ok {\n\t\treturn nil\n\t}\n\tmr, ok := m.ProtoReflect().(interface{ ProtoMessageInfo() *MessageInfo })\n\tif !ok {\n\t\treturn nil\n\t}\n\treturn mr.ProtoMessageInfo()\n}\n\nfunc (mi *MessageInfo) init() {\n\t// This function is called in the hot path. Inline the sync.Once logic,\n\t// since allocating a closure for Once.Do is expensive.\n\t// Keep init small to ensure that it can be inlined.\n\tif atomic.LoadUint32(&mi.initDone) == 0 {\n\t\tmi.initOnce()\n\t}\n}\n\nfunc (mi *MessageInfo) initOnce() {\n\tmi.initMu.Lock()\n\tdefer mi.initMu.Unlock()\n\tif mi.initDone == 1 {\n\t\treturn\n\t}\n\n\tt := mi.GoReflectType\n\tif t.Kind() != reflect.Ptr && t.Elem().Kind() != reflect.Struct {\n\t\tpanic(fmt.Sprintf(\"got %v, want *struct kind\", t))\n\t}\n\tt = t.Elem()\n\n\tsi := mi.makeStructInfo(t)\n\tmi.makeReflectFuncs(t, si)\n\tmi.makeCoderMethods(t, si)\n\n\tatomic.StoreUint32(&mi.initDone, 1)\n}\n\n// getPointer returns the pointer for a message, which should be of\n// the type of the MessageInfo. If the message is of a different type,\n// it returns ok==false.\nfunc (mi *MessageInfo) getPointer(m protoreflect.Message) (p pointer, ok bool) {\n\tswitch m := m.(type) {\n\tcase *messageState:\n\t\treturn m.pointer(), m.messageInfo() == mi\n\tcase *messageReflectWrapper:\n\t\treturn m.pointer(), m.messageInfo() == mi\n\t}\n\treturn pointer{}, false\n}\n\ntype (\n\tSizeCache       = int32\n\tWeakFields      = map[int32]protoreflect.ProtoMessage\n\tUnknownFields   = unknownFieldsA // TODO: switch to unknownFieldsB\n\tunknownFieldsA  = []byte\n\tunknownFieldsB  = *[]byte\n\tExtensionFields = map[int32]ExtensionField\n)\n\nvar (\n\tsizecacheType       = reflect.TypeOf(SizeCache(0))\n\tweakFieldsType      = reflect.TypeOf(WeakFields(nil))\n\tunknownFieldsAType  = reflect.TypeOf(unknownFieldsA(nil))\n\tunknownFieldsBType  = reflect.TypeOf(unknownFieldsB(nil))\n\textensionFieldsType = reflect.TypeOf(ExtensionFields(nil))\n)\n\ntype structInfo struct {\n\tsizecacheOffset offset\n\tsizecacheType   reflect.Type\n\tweakOffset      offset\n\tweakType        reflect.Type\n\tunknownOffset   offset\n\tunknownType     reflect.Type\n\textensionOffset offset\n\textensionType   reflect.Type\n\n\tfieldsByNumber        map[protoreflect.FieldNumber]reflect.StructField\n\toneofsByName          map[protoreflect.Name]reflect.StructField\n\toneofWrappersByType   map[reflect.Type]protoreflect.FieldNumber\n\toneofWrappersByNumber map[protoreflect.FieldNumber]reflect.Type\n}\n\nfunc (mi *MessageInfo) makeStructInfo(t reflect.Type) structInfo {\n\tsi := structInfo{\n\t\tsizecacheOffset: invalidOffset,\n\t\tweakOffset:      invalidOffset,\n\t\tunknownOffset:   invalidOffset,\n\t\textensionOffset: invalidOffset,\n\n\t\tfieldsByNumber:        map[protoreflect.FieldNumber]reflect.StructField{},\n\t\toneofsByName:          map[protoreflect.Name]reflect.StructField{},\n\t\toneofWrappersByType:   map[reflect.Type]protoreflect.FieldNumber{},\n\t\toneofWrappersByNumber: map[protoreflect.FieldNumber]reflect.Type{},\n\t}\n\nfieldLoop:\n\tfor i := 0; i < t.NumField(); i++ {\n\t\tswitch f := t.Field(i); f.Name {\n\t\tcase genid.SizeCache_goname, genid.SizeCacheA_goname:\n\t\t\tif f.Type == sizecacheType {\n\t\t\t\tsi.sizecacheOffset = offsetOf(f, mi.Exporter)\n\t\t\t\tsi.sizecacheType = f.Type\n\t\t\t}\n\t\tcase genid.WeakFields_goname, genid.WeakFieldsA_goname:\n\t\t\tif f.Type == weakFieldsType {\n\t\t\t\tsi.weakOffset = offsetOf(f, mi.Exporter)\n\t\t\t\tsi.weakType = f.Type\n\t\t\t}\n\t\tcase genid.UnknownFields_goname, genid.UnknownFieldsA_goname:\n\t\t\tif f.Type == unknownFieldsAType || f.Type == unknownFieldsBType {\n\t\t\t\tsi.unknownOffset = offsetOf(f, mi.Exporter)\n\t\t\t\tsi.unknownType = f.Type\n\t\t\t}\n\t\tcase genid.ExtensionFields_goname, genid.ExtensionFieldsA_goname, genid.ExtensionFieldsB_goname:\n\t\t\tif f.Type == extensionFieldsType {\n\t\t\t\tsi.extensionOffset = offsetOf(f, mi.Exporter)\n\t\t\t\tsi.extensionType = f.Type\n\t\t\t}\n\t\tdefault:\n\t\t\tfor _, s := range strings.Split(f.Tag.Get(\"protobuf\"), \",\") {\n\t\t\t\tif len(s) > 0 && strings.Trim(s, \"0123456789\") == \"\" {\n\t\t\t\t\tn, _ := strconv.ParseUint(s, 10, 64)\n\t\t\t\t\tsi.fieldsByNumber[protoreflect.FieldNumber(n)] = f\n\t\t\t\t\tcontinue fieldLoop\n\t\t\t\t}\n\t\t\t}\n\t\t\tif s := f.Tag.Get(\"protobuf_oneof\"); len(s) > 0 {\n\t\t\t\tsi.oneofsByName[protoreflect.Name(s)] = f\n\t\t\t\tcontinue fieldLoop\n\t\t\t}\n\t\t}\n\t}\n\n\t// Derive a mapping of oneof wrappers to fields.\n\toneofWrappers := mi.OneofWrappers\n\tmethods := make([]reflect.Method, 0, 2)\n\tif m, ok := reflect.PtrTo(t).MethodByName(\"XXX_OneofFuncs\"); ok {\n\t\tmethods = append(methods, m)\n\t}\n\tif m, ok := reflect.PtrTo(t).MethodByName(\"XXX_OneofWrappers\"); ok {\n\t\tmethods = append(methods, m)\n\t}\n\tfor _, fn := range methods {\n\t\tfor _, v := range fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))}) {\n\t\t\tif vs, ok := v.Interface().([]any); ok {\n\t\t\t\toneofWrappers = vs\n\t\t\t}\n\t\t}\n\t}\n\tfor _, v := range oneofWrappers {\n\t\ttf := reflect.TypeOf(v).Elem()\n\t\tf := tf.Field(0)\n\t\tfor _, s := range strings.Split(f.Tag.Get(\"protobuf\"), \",\") {\n\t\t\tif len(s) > 0 && strings.Trim(s, \"0123456789\") == \"\" {\n\t\t\t\tn, _ := strconv.ParseUint(s, 10, 64)\n\t\t\t\tsi.oneofWrappersByType[tf] = protoreflect.FieldNumber(n)\n\t\t\t\tsi.oneofWrappersByNumber[protoreflect.FieldNumber(n)] = tf\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\treturn si\n}\n\nfunc (mi *MessageInfo) New() protoreflect.Message {\n\tm := reflect.New(mi.GoReflectType.Elem()).Interface()\n\tif r, ok := m.(protoreflect.ProtoMessage); ok {\n\t\treturn r.ProtoReflect()\n\t}\n\treturn mi.MessageOf(m)\n}\nfunc (mi *MessageInfo) Zero() protoreflect.Message {\n\treturn mi.MessageOf(reflect.Zero(mi.GoReflectType).Interface())\n}\nfunc (mi *MessageInfo) Descriptor() protoreflect.MessageDescriptor {\n\treturn mi.Desc\n}\nfunc (mi *MessageInfo) Enum(i int) protoreflect.EnumType {\n\tmi.init()\n\tfd := mi.Desc.Fields().Get(i)\n\treturn Export{}.EnumTypeOf(mi.fieldTypes[fd.Number()])\n}\nfunc (mi *MessageInfo) Message(i int) protoreflect.MessageType {\n\tmi.init()\n\tfd := mi.Desc.Fields().Get(i)\n\tswitch {\n\tcase fd.IsWeak():\n\t\tmt, _ := protoregistry.GlobalTypes.FindMessageByName(fd.Message().FullName())\n\t\treturn mt\n\tcase fd.IsMap():\n\t\treturn mapEntryType{fd.Message(), mi.fieldTypes[fd.Number()]}\n\tdefault:\n\t\treturn Export{}.MessageTypeOf(mi.fieldTypes[fd.Number()])\n\t}\n}\n\ntype mapEntryType struct {\n\tdesc    protoreflect.MessageDescriptor\n\tvalType any // zero value of enum or message type\n}\n\nfunc (mt mapEntryType) New() protoreflect.Message {\n\treturn nil\n}\nfunc (mt mapEntryType) Zero() protoreflect.Message {\n\treturn nil\n}\nfunc (mt mapEntryType) Descriptor() protoreflect.MessageDescriptor {\n\treturn mt.desc\n}\nfunc (mt mapEntryType) Enum(i int) protoreflect.EnumType {\n\tfd := mt.desc.Fields().Get(i)\n\tif fd.Enum() == nil {\n\t\treturn nil\n\t}\n\treturn Export{}.EnumTypeOf(mt.valType)\n}\nfunc (mt mapEntryType) Message(i int) protoreflect.MessageType {\n\tfd := mt.desc.Fields().Get(i)\n\tif fd.Message() == nil {\n\t\treturn nil\n\t}\n\treturn Export{}.MessageTypeOf(mt.valType)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/message_reflect.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\n\t\"google.golang.org/protobuf/internal/detrand\"\n\t\"google.golang.org/protobuf/internal/pragma\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\ntype reflectMessageInfo struct {\n\tfields map[protoreflect.FieldNumber]*fieldInfo\n\toneofs map[protoreflect.Name]*oneofInfo\n\n\t// fieldTypes contains the zero value of an enum or message field.\n\t// For lists, it contains the element type.\n\t// For maps, it contains the entry value type.\n\tfieldTypes map[protoreflect.FieldNumber]any\n\n\t// denseFields is a subset of fields where:\n\t//\t0 < fieldDesc.Number() < len(denseFields)\n\t// It provides faster access to the fieldInfo, but may be incomplete.\n\tdenseFields []*fieldInfo\n\n\t// rangeInfos is a list of all fields (not belonging to a oneof) and oneofs.\n\trangeInfos []any // either *fieldInfo or *oneofInfo\n\n\tgetUnknown   func(pointer) protoreflect.RawFields\n\tsetUnknown   func(pointer, protoreflect.RawFields)\n\textensionMap func(pointer) *extensionMap\n\n\tnilMessage atomicNilMessage\n}\n\n// makeReflectFuncs generates the set of functions to support reflection.\nfunc (mi *MessageInfo) makeReflectFuncs(t reflect.Type, si structInfo) {\n\tmi.makeKnownFieldsFunc(si)\n\tmi.makeUnknownFieldsFunc(t, si)\n\tmi.makeExtensionFieldsFunc(t, si)\n\tmi.makeFieldTypes(si)\n}\n\n// makeKnownFieldsFunc generates functions for operations that can be performed\n// on each protobuf message field. It takes in a reflect.Type representing the\n// Go struct and matches message fields with struct fields.\n//\n// This code assumes that the struct is well-formed and panics if there are\n// any discrepancies.\nfunc (mi *MessageInfo) makeKnownFieldsFunc(si structInfo) {\n\tmi.fields = map[protoreflect.FieldNumber]*fieldInfo{}\n\tmd := mi.Desc\n\tfds := md.Fields()\n\tfor i := 0; i < fds.Len(); i++ {\n\t\tfd := fds.Get(i)\n\t\tfs := si.fieldsByNumber[fd.Number()]\n\t\tisOneof := fd.ContainingOneof() != nil && !fd.ContainingOneof().IsSynthetic()\n\t\tif isOneof {\n\t\t\tfs = si.oneofsByName[fd.ContainingOneof().Name()]\n\t\t}\n\t\tvar fi fieldInfo\n\t\tswitch {\n\t\tcase fs.Type == nil:\n\t\t\tfi = fieldInfoForMissing(fd) // never occurs for officially generated message types\n\t\tcase isOneof:\n\t\t\tfi = fieldInfoForOneof(fd, fs, mi.Exporter, si.oneofWrappersByNumber[fd.Number()])\n\t\tcase fd.IsMap():\n\t\t\tfi = fieldInfoForMap(fd, fs, mi.Exporter)\n\t\tcase fd.IsList():\n\t\t\tfi = fieldInfoForList(fd, fs, mi.Exporter)\n\t\tcase fd.IsWeak():\n\t\t\tfi = fieldInfoForWeakMessage(fd, si.weakOffset)\n\t\tcase fd.Message() != nil:\n\t\t\tfi = fieldInfoForMessage(fd, fs, mi.Exporter)\n\t\tdefault:\n\t\t\tfi = fieldInfoForScalar(fd, fs, mi.Exporter)\n\t\t}\n\t\tmi.fields[fd.Number()] = &fi\n\t}\n\n\tmi.oneofs = map[protoreflect.Name]*oneofInfo{}\n\tfor i := 0; i < md.Oneofs().Len(); i++ {\n\t\tod := md.Oneofs().Get(i)\n\t\tmi.oneofs[od.Name()] = makeOneofInfo(od, si, mi.Exporter)\n\t}\n\n\tmi.denseFields = make([]*fieldInfo, fds.Len()*2)\n\tfor i := 0; i < fds.Len(); i++ {\n\t\tif fd := fds.Get(i); int(fd.Number()) < len(mi.denseFields) {\n\t\t\tmi.denseFields[fd.Number()] = mi.fields[fd.Number()]\n\t\t}\n\t}\n\n\tfor i := 0; i < fds.Len(); {\n\t\tfd := fds.Get(i)\n\t\tif od := fd.ContainingOneof(); od != nil && !od.IsSynthetic() {\n\t\t\tmi.rangeInfos = append(mi.rangeInfos, mi.oneofs[od.Name()])\n\t\t\ti += od.Fields().Len()\n\t\t} else {\n\t\t\tmi.rangeInfos = append(mi.rangeInfos, mi.fields[fd.Number()])\n\t\t\ti++\n\t\t}\n\t}\n\n\t// Introduce instability to iteration order, but keep it deterministic.\n\tif len(mi.rangeInfos) > 1 && detrand.Bool() {\n\t\ti := detrand.Intn(len(mi.rangeInfos) - 1)\n\t\tmi.rangeInfos[i], mi.rangeInfos[i+1] = mi.rangeInfos[i+1], mi.rangeInfos[i]\n\t}\n}\n\nfunc (mi *MessageInfo) makeUnknownFieldsFunc(t reflect.Type, si structInfo) {\n\tswitch {\n\tcase si.unknownOffset.IsValid() && si.unknownType == unknownFieldsAType:\n\t\t// Handle as []byte.\n\t\tmi.getUnknown = func(p pointer) protoreflect.RawFields {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\treturn *p.Apply(mi.unknownOffset).Bytes()\n\t\t}\n\t\tmi.setUnknown = func(p pointer, b protoreflect.RawFields) {\n\t\t\tif p.IsNil() {\n\t\t\t\tpanic(\"invalid SetUnknown on nil Message\")\n\t\t\t}\n\t\t\t*p.Apply(mi.unknownOffset).Bytes() = b\n\t\t}\n\tcase si.unknownOffset.IsValid() && si.unknownType == unknownFieldsBType:\n\t\t// Handle as *[]byte.\n\t\tmi.getUnknown = func(p pointer) protoreflect.RawFields {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tbp := p.Apply(mi.unknownOffset).BytesPtr()\n\t\t\tif *bp == nil {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\treturn **bp\n\t\t}\n\t\tmi.setUnknown = func(p pointer, b protoreflect.RawFields) {\n\t\t\tif p.IsNil() {\n\t\t\t\tpanic(\"invalid SetUnknown on nil Message\")\n\t\t\t}\n\t\t\tbp := p.Apply(mi.unknownOffset).BytesPtr()\n\t\t\tif *bp == nil {\n\t\t\t\t*bp = new([]byte)\n\t\t\t}\n\t\t\t**bp = b\n\t\t}\n\tdefault:\n\t\tmi.getUnknown = func(pointer) protoreflect.RawFields {\n\t\t\treturn nil\n\t\t}\n\t\tmi.setUnknown = func(p pointer, _ protoreflect.RawFields) {\n\t\t\tif p.IsNil() {\n\t\t\t\tpanic(\"invalid SetUnknown on nil Message\")\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc (mi *MessageInfo) makeExtensionFieldsFunc(t reflect.Type, si structInfo) {\n\tif si.extensionOffset.IsValid() {\n\t\tmi.extensionMap = func(p pointer) *extensionMap {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn (*extensionMap)(nil)\n\t\t\t}\n\t\t\tv := p.Apply(si.extensionOffset).AsValueOf(extensionFieldsType)\n\t\t\treturn (*extensionMap)(v.Interface().(*map[int32]ExtensionField))\n\t\t}\n\t} else {\n\t\tmi.extensionMap = func(pointer) *extensionMap {\n\t\t\treturn (*extensionMap)(nil)\n\t\t}\n\t}\n}\nfunc (mi *MessageInfo) makeFieldTypes(si structInfo) {\n\tmd := mi.Desc\n\tfds := md.Fields()\n\tfor i := 0; i < fds.Len(); i++ {\n\t\tvar ft reflect.Type\n\t\tfd := fds.Get(i)\n\t\tfs := si.fieldsByNumber[fd.Number()]\n\t\tisOneof := fd.ContainingOneof() != nil && !fd.ContainingOneof().IsSynthetic()\n\t\tif isOneof {\n\t\t\tfs = si.oneofsByName[fd.ContainingOneof().Name()]\n\t\t}\n\t\tvar isMessage bool\n\t\tswitch {\n\t\tcase fs.Type == nil:\n\t\t\tcontinue // never occurs for officially generated message types\n\t\tcase isOneof:\n\t\t\tif fd.Enum() != nil || fd.Message() != nil {\n\t\t\t\tft = si.oneofWrappersByNumber[fd.Number()].Field(0).Type\n\t\t\t}\n\t\tcase fd.IsMap():\n\t\t\tif fd.MapValue().Enum() != nil || fd.MapValue().Message() != nil {\n\t\t\t\tft = fs.Type.Elem()\n\t\t\t}\n\t\t\tisMessage = fd.MapValue().Message() != nil\n\t\tcase fd.IsList():\n\t\t\tif fd.Enum() != nil || fd.Message() != nil {\n\t\t\t\tft = fs.Type.Elem()\n\t\t\t}\n\t\t\tisMessage = fd.Message() != nil\n\t\tcase fd.Enum() != nil:\n\t\t\tft = fs.Type\n\t\t\tif fd.HasPresence() && ft.Kind() == reflect.Ptr {\n\t\t\t\tft = ft.Elem()\n\t\t\t}\n\t\tcase fd.Message() != nil:\n\t\t\tft = fs.Type\n\t\t\tif fd.IsWeak() {\n\t\t\t\tft = nil\n\t\t\t}\n\t\t\tisMessage = true\n\t\t}\n\t\tif isMessage && ft != nil && ft.Kind() != reflect.Ptr {\n\t\t\tft = reflect.PtrTo(ft) // never occurs for officially generated message types\n\t\t}\n\t\tif ft != nil {\n\t\t\tif mi.fieldTypes == nil {\n\t\t\t\tmi.fieldTypes = make(map[protoreflect.FieldNumber]any)\n\t\t\t}\n\t\t\tmi.fieldTypes[fd.Number()] = reflect.Zero(ft).Interface()\n\t\t}\n\t}\n}\n\ntype extensionMap map[int32]ExtensionField\n\nfunc (m *extensionMap) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {\n\tif m != nil {\n\t\tfor _, x := range *m {\n\t\t\txd := x.Type().TypeDescriptor()\n\t\t\tv := x.Value()\n\t\t\tif xd.IsList() && v.List().Len() == 0 {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif !f(xd, v) {\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}\n}\nfunc (m *extensionMap) Has(xd protoreflect.ExtensionTypeDescriptor) (ok bool) {\n\tif m == nil {\n\t\treturn false\n\t}\n\tx, ok := (*m)[int32(xd.Number())]\n\tif !ok {\n\t\treturn false\n\t}\n\tif x.isUnexpandedLazy() {\n\t\t// Avoid calling x.Value(), which triggers a lazy unmarshal.\n\t\treturn true\n\t}\n\tswitch {\n\tcase xd.IsList():\n\t\treturn x.Value().List().Len() > 0\n\tcase xd.IsMap():\n\t\treturn x.Value().Map().Len() > 0\n\t}\n\treturn true\n}\nfunc (m *extensionMap) Clear(xd protoreflect.ExtensionTypeDescriptor) {\n\tdelete(*m, int32(xd.Number()))\n}\nfunc (m *extensionMap) Get(xd protoreflect.ExtensionTypeDescriptor) protoreflect.Value {\n\tif m != nil {\n\t\tif x, ok := (*m)[int32(xd.Number())]; ok {\n\t\t\treturn x.Value()\n\t\t}\n\t}\n\treturn xd.Type().Zero()\n}\nfunc (m *extensionMap) Set(xd protoreflect.ExtensionTypeDescriptor, v protoreflect.Value) {\n\txt := xd.Type()\n\tisValid := true\n\tswitch {\n\tcase !xt.IsValidValue(v):\n\t\tisValid = false\n\tcase xd.IsList():\n\t\tisValid = v.List().IsValid()\n\tcase xd.IsMap():\n\t\tisValid = v.Map().IsValid()\n\tcase xd.Message() != nil:\n\t\tisValid = v.Message().IsValid()\n\t}\n\tif !isValid {\n\t\tpanic(fmt.Sprintf(\"%v: assigning invalid value\", xd.FullName()))\n\t}\n\n\tif *m == nil {\n\t\t*m = make(map[int32]ExtensionField)\n\t}\n\tvar x ExtensionField\n\tx.Set(xt, v)\n\t(*m)[int32(xd.Number())] = x\n}\nfunc (m *extensionMap) Mutable(xd protoreflect.ExtensionTypeDescriptor) protoreflect.Value {\n\tif xd.Kind() != protoreflect.MessageKind && xd.Kind() != protoreflect.GroupKind && !xd.IsList() && !xd.IsMap() {\n\t\tpanic(\"invalid Mutable on field with non-composite type\")\n\t}\n\tif x, ok := (*m)[int32(xd.Number())]; ok {\n\t\treturn x.Value()\n\t}\n\tv := xd.Type().New()\n\tm.Set(xd, v)\n\treturn v\n}\n\n// MessageState is a data structure that is nested as the first field in a\n// concrete message. It provides a way to implement the ProtoReflect method\n// in an allocation-free way without needing to have a shadow Go type generated\n// for every message type. This technique only works using unsafe.\n//\n// Example generated code:\n//\n//\ttype M struct {\n//\t\tstate protoimpl.MessageState\n//\n//\t\tField1 int32\n//\t\tField2 string\n//\t\tField3 *BarMessage\n//\t\t...\n//\t}\n//\n//\tfunc (m *M) ProtoReflect() protoreflect.Message {\n//\t\tmi := &file_fizz_buzz_proto_msgInfos[5]\n//\t\tif protoimpl.UnsafeEnabled && m != nil {\n//\t\t\tms := protoimpl.X.MessageStateOf(Pointer(m))\n//\t\t\tif ms.LoadMessageInfo() == nil {\n//\t\t\t\tms.StoreMessageInfo(mi)\n//\t\t\t}\n//\t\t\treturn ms\n//\t\t}\n//\t\treturn mi.MessageOf(m)\n//\t}\n//\n// The MessageState type holds a *MessageInfo, which must be atomically set to\n// the message info associated with a given message instance.\n// By unsafely converting a *M into a *MessageState, the MessageState object\n// has access to all the information needed to implement protobuf reflection.\n// It has access to the message info as its first field, and a pointer to the\n// MessageState is identical to a pointer to the concrete message value.\n//\n// Requirements:\n//   - The type M must implement protoreflect.ProtoMessage.\n//   - The address of m must not be nil.\n//   - The address of m and the address of m.state must be equal,\n//     even though they are different Go types.\ntype MessageState struct {\n\tpragma.NoUnkeyedLiterals\n\tpragma.DoNotCompare\n\tpragma.DoNotCopy\n\n\tatomicMessageInfo *MessageInfo\n}\n\ntype messageState MessageState\n\nvar (\n\t_ protoreflect.Message = (*messageState)(nil)\n\t_ unwrapper            = (*messageState)(nil)\n)\n\n// messageDataType is a tuple of a pointer to the message data and\n// a pointer to the message type. It is a generalized way of providing a\n// reflective view over a message instance. The disadvantage of this approach\n// is the need to allocate this tuple of 16B.\ntype messageDataType struct {\n\tp  pointer\n\tmi *MessageInfo\n}\n\ntype (\n\tmessageReflectWrapper messageDataType\n\tmessageIfaceWrapper   messageDataType\n)\n\nvar (\n\t_ protoreflect.Message      = (*messageReflectWrapper)(nil)\n\t_ unwrapper                 = (*messageReflectWrapper)(nil)\n\t_ protoreflect.ProtoMessage = (*messageIfaceWrapper)(nil)\n\t_ unwrapper                 = (*messageIfaceWrapper)(nil)\n)\n\n// MessageOf returns a reflective view over a message. The input must be a\n// pointer to a named Go struct. If the provided type has a ProtoReflect method,\n// it must be implemented by calling this method.\nfunc (mi *MessageInfo) MessageOf(m any) protoreflect.Message {\n\tif reflect.TypeOf(m) != mi.GoReflectType {\n\t\tpanic(fmt.Sprintf(\"type mismatch: got %T, want %v\", m, mi.GoReflectType))\n\t}\n\tp := pointerOfIface(m)\n\tif p.IsNil() {\n\t\treturn mi.nilMessage.Init(mi)\n\t}\n\treturn &messageReflectWrapper{p, mi}\n}\n\nfunc (m *messageReflectWrapper) pointer() pointer          { return m.p }\nfunc (m *messageReflectWrapper) messageInfo() *MessageInfo { return m.mi }\n\n// Reset implements the v1 proto.Message.Reset method.\nfunc (m *messageIfaceWrapper) Reset() {\n\tif mr, ok := m.protoUnwrap().(interface{ Reset() }); ok {\n\t\tmr.Reset()\n\t\treturn\n\t}\n\trv := reflect.ValueOf(m.protoUnwrap())\n\tif rv.Kind() == reflect.Ptr && !rv.IsNil() {\n\t\trv.Elem().Set(reflect.Zero(rv.Type().Elem()))\n\t}\n}\nfunc (m *messageIfaceWrapper) ProtoReflect() protoreflect.Message {\n\treturn (*messageReflectWrapper)(m)\n}\nfunc (m *messageIfaceWrapper) protoUnwrap() any {\n\treturn m.p.AsIfaceOf(m.mi.GoReflectType.Elem())\n}\n\n// checkField verifies that the provided field descriptor is valid.\n// Exactly one of the returned values is populated.\nfunc (mi *MessageInfo) checkField(fd protoreflect.FieldDescriptor) (*fieldInfo, protoreflect.ExtensionTypeDescriptor) {\n\tvar fi *fieldInfo\n\tif n := fd.Number(); 0 < n && int(n) < len(mi.denseFields) {\n\t\tfi = mi.denseFields[n]\n\t} else {\n\t\tfi = mi.fields[n]\n\t}\n\tif fi != nil {\n\t\tif fi.fieldDesc != fd {\n\t\t\tif got, want := fd.FullName(), fi.fieldDesc.FullName(); got != want {\n\t\t\t\tpanic(fmt.Sprintf(\"mismatching field: got %v, want %v\", got, want))\n\t\t\t}\n\t\t\tpanic(fmt.Sprintf(\"mismatching field: %v\", fd.FullName()))\n\t\t}\n\t\treturn fi, nil\n\t}\n\n\tif fd.IsExtension() {\n\t\tif got, want := fd.ContainingMessage().FullName(), mi.Desc.FullName(); got != want {\n\t\t\t// TODO: Should this be exact containing message descriptor match?\n\t\t\tpanic(fmt.Sprintf(\"extension %v has mismatching containing message: got %v, want %v\", fd.FullName(), got, want))\n\t\t}\n\t\tif !mi.Desc.ExtensionRanges().Has(fd.Number()) {\n\t\t\tpanic(fmt.Sprintf(\"extension %v extends %v outside the extension range\", fd.FullName(), mi.Desc.FullName()))\n\t\t}\n\t\txtd, ok := fd.(protoreflect.ExtensionTypeDescriptor)\n\t\tif !ok {\n\t\t\tpanic(fmt.Sprintf(\"extension %v does not implement protoreflect.ExtensionTypeDescriptor\", fd.FullName()))\n\t\t}\n\t\treturn nil, xtd\n\t}\n\tpanic(fmt.Sprintf(\"field %v is invalid\", fd.FullName()))\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"fmt\"\n\t\"math\"\n\t\"reflect\"\n\t\"sync\"\n\n\t\"google.golang.org/protobuf/internal/flags\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/reflect/protoregistry\"\n)\n\ntype fieldInfo struct {\n\tfieldDesc protoreflect.FieldDescriptor\n\n\t// These fields are used for protobuf reflection support.\n\thas        func(pointer) bool\n\tclear      func(pointer)\n\tget        func(pointer) protoreflect.Value\n\tset        func(pointer, protoreflect.Value)\n\tmutable    func(pointer) protoreflect.Value\n\tnewMessage func() protoreflect.Message\n\tnewField   func() protoreflect.Value\n}\n\nfunc fieldInfoForMissing(fd protoreflect.FieldDescriptor) fieldInfo {\n\t// This never occurs for generated message types.\n\t// It implies that a hand-crafted type has missing Go fields\n\t// for specific protobuf message fields.\n\treturn fieldInfo{\n\t\tfieldDesc: fd,\n\t\thas: func(p pointer) bool {\n\t\t\treturn false\n\t\t},\n\t\tclear: func(p pointer) {\n\t\t\tpanic(\"missing Go struct field for \" + string(fd.FullName()))\n\t\t},\n\t\tget: func(p pointer) protoreflect.Value {\n\t\t\treturn fd.Default()\n\t\t},\n\t\tset: func(p pointer, v protoreflect.Value) {\n\t\t\tpanic(\"missing Go struct field for \" + string(fd.FullName()))\n\t\t},\n\t\tmutable: func(p pointer) protoreflect.Value {\n\t\t\tpanic(\"missing Go struct field for \" + string(fd.FullName()))\n\t\t},\n\t\tnewMessage: func() protoreflect.Message {\n\t\t\tpanic(\"missing Go struct field for \" + string(fd.FullName()))\n\t\t},\n\t\tnewField: func() protoreflect.Value {\n\t\t\tif v := fd.Default(); v.IsValid() {\n\t\t\t\treturn v\n\t\t\t}\n\t\t\tpanic(\"missing Go struct field for \" + string(fd.FullName()))\n\t\t},\n\t}\n}\n\nfunc fieldInfoForOneof(fd protoreflect.FieldDescriptor, fs reflect.StructField, x exporter, ot reflect.Type) fieldInfo {\n\tft := fs.Type\n\tif ft.Kind() != reflect.Interface {\n\t\tpanic(fmt.Sprintf(\"field %v has invalid type: got %v, want interface kind\", fd.FullName(), ft))\n\t}\n\tif ot.Kind() != reflect.Struct {\n\t\tpanic(fmt.Sprintf(\"field %v has invalid type: got %v, want struct kind\", fd.FullName(), ot))\n\t}\n\tif !reflect.PtrTo(ot).Implements(ft) {\n\t\tpanic(fmt.Sprintf(\"field %v has invalid type: %v does not implement %v\", fd.FullName(), ot, ft))\n\t}\n\tconv := NewConverter(ot.Field(0).Type, fd)\n\tisMessage := fd.Message() != nil\n\n\t// TODO: Implement unsafe fast path?\n\tfieldOffset := offsetOf(fs, x)\n\treturn fieldInfo{\n\t\t// NOTE: The logic below intentionally assumes that oneof fields are\n\t\t// well-formatted. That is, the oneof interface never contains a\n\t\t// typed nil pointer to one of the wrapper structs.\n\n\t\tfieldDesc: fd,\n\t\thas: func(p pointer) bool {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\tif rv.IsNil() || rv.Elem().Type().Elem() != ot || rv.Elem().IsNil() {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn true\n\t\t},\n\t\tclear: func(p pointer) {\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\tif rv.IsNil() || rv.Elem().Type().Elem() != ot {\n\t\t\t\t// NOTE: We intentionally don't check for rv.Elem().IsNil()\n\t\t\t\t// so that (*OneofWrapperType)(nil) gets cleared to nil.\n\t\t\t\treturn\n\t\t\t}\n\t\t\trv.Set(reflect.Zero(rv.Type()))\n\t\t},\n\t\tget: func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\tif rv.IsNil() || rv.Elem().Type().Elem() != ot || rv.Elem().IsNil() {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\trv = rv.Elem().Elem().Field(0)\n\t\t\treturn conv.PBValueOf(rv)\n\t\t},\n\t\tset: func(p pointer, v protoreflect.Value) {\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\tif rv.IsNil() || rv.Elem().Type().Elem() != ot || rv.Elem().IsNil() {\n\t\t\t\trv.Set(reflect.New(ot))\n\t\t\t}\n\t\t\trv = rv.Elem().Elem().Field(0)\n\t\t\trv.Set(conv.GoValueOf(v))\n\t\t},\n\t\tmutable: func(p pointer) protoreflect.Value {\n\t\t\tif !isMessage {\n\t\t\t\tpanic(fmt.Sprintf(\"field %v with invalid Mutable call on field with non-composite type\", fd.FullName()))\n\t\t\t}\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\tif rv.IsNil() || rv.Elem().Type().Elem() != ot || rv.Elem().IsNil() {\n\t\t\t\trv.Set(reflect.New(ot))\n\t\t\t}\n\t\t\trv = rv.Elem().Elem().Field(0)\n\t\t\tif rv.Kind() == reflect.Ptr && rv.IsNil() {\n\t\t\t\trv.Set(conv.GoValueOf(protoreflect.ValueOfMessage(conv.New().Message())))\n\t\t\t}\n\t\t\treturn conv.PBValueOf(rv)\n\t\t},\n\t\tnewMessage: func() protoreflect.Message {\n\t\t\treturn conv.New().Message()\n\t\t},\n\t\tnewField: func() protoreflect.Value {\n\t\t\treturn conv.New()\n\t\t},\n\t}\n}\n\nfunc fieldInfoForMap(fd protoreflect.FieldDescriptor, fs reflect.StructField, x exporter) fieldInfo {\n\tft := fs.Type\n\tif ft.Kind() != reflect.Map {\n\t\tpanic(fmt.Sprintf(\"field %v has invalid type: got %v, want map kind\", fd.FullName(), ft))\n\t}\n\tconv := NewConverter(ft, fd)\n\n\t// TODO: Implement unsafe fast path?\n\tfieldOffset := offsetOf(fs, x)\n\treturn fieldInfo{\n\t\tfieldDesc: fd,\n\t\thas: func(p pointer) bool {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\treturn rv.Len() > 0\n\t\t},\n\t\tclear: func(p pointer) {\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\trv.Set(reflect.Zero(rv.Type()))\n\t\t},\n\t\tget: func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\tif rv.Len() == 0 {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\treturn conv.PBValueOf(rv)\n\t\t},\n\t\tset: func(p pointer, v protoreflect.Value) {\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\tpv := conv.GoValueOf(v)\n\t\t\tif pv.IsNil() {\n\t\t\t\tpanic(fmt.Sprintf(\"map field %v cannot be set with read-only value\", fd.FullName()))\n\t\t\t}\n\t\t\trv.Set(pv)\n\t\t},\n\t\tmutable: func(p pointer) protoreflect.Value {\n\t\t\tv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\tif v.IsNil() {\n\t\t\t\tv.Set(reflect.MakeMap(fs.Type))\n\t\t\t}\n\t\t\treturn conv.PBValueOf(v)\n\t\t},\n\t\tnewField: func() protoreflect.Value {\n\t\t\treturn conv.New()\n\t\t},\n\t}\n}\n\nfunc fieldInfoForList(fd protoreflect.FieldDescriptor, fs reflect.StructField, x exporter) fieldInfo {\n\tft := fs.Type\n\tif ft.Kind() != reflect.Slice {\n\t\tpanic(fmt.Sprintf(\"field %v has invalid type: got %v, want slice kind\", fd.FullName(), ft))\n\t}\n\tconv := NewConverter(reflect.PtrTo(ft), fd)\n\n\t// TODO: Implement unsafe fast path?\n\tfieldOffset := offsetOf(fs, x)\n\treturn fieldInfo{\n\t\tfieldDesc: fd,\n\t\thas: func(p pointer) bool {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\treturn rv.Len() > 0\n\t\t},\n\t\tclear: func(p pointer) {\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\trv.Set(reflect.Zero(rv.Type()))\n\t\t},\n\t\tget: func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type)\n\t\t\tif rv.Elem().Len() == 0 {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\treturn conv.PBValueOf(rv)\n\t\t},\n\t\tset: func(p pointer, v protoreflect.Value) {\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\tpv := conv.GoValueOf(v)\n\t\t\tif pv.IsNil() {\n\t\t\t\tpanic(fmt.Sprintf(\"list field %v cannot be set with read-only value\", fd.FullName()))\n\t\t\t}\n\t\t\trv.Set(pv.Elem())\n\t\t},\n\t\tmutable: func(p pointer) protoreflect.Value {\n\t\t\tv := p.Apply(fieldOffset).AsValueOf(fs.Type)\n\t\t\treturn conv.PBValueOf(v)\n\t\t},\n\t\tnewField: func() protoreflect.Value {\n\t\t\treturn conv.New()\n\t\t},\n\t}\n}\n\nvar (\n\tnilBytes   = reflect.ValueOf([]byte(nil))\n\temptyBytes = reflect.ValueOf([]byte{})\n)\n\nfunc fieldInfoForScalar(fd protoreflect.FieldDescriptor, fs reflect.StructField, x exporter) fieldInfo {\n\tft := fs.Type\n\tnullable := fd.HasPresence()\n\tisBytes := ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8\n\tif nullable {\n\t\tif ft.Kind() != reflect.Ptr && ft.Kind() != reflect.Slice {\n\t\t\t// This never occurs for generated message types.\n\t\t\t// Despite the protobuf type system specifying presence,\n\t\t\t// the Go field type cannot represent it.\n\t\t\tnullable = false\n\t\t}\n\t\tif ft.Kind() == reflect.Ptr {\n\t\t\tft = ft.Elem()\n\t\t}\n\t}\n\tconv := NewConverter(ft, fd)\n\n\t// TODO: Implement unsafe fast path?\n\tfieldOffset := offsetOf(fs, x)\n\treturn fieldInfo{\n\t\tfieldDesc: fd,\n\t\thas: func(p pointer) bool {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\tif nullable {\n\t\t\t\treturn !rv.IsNil()\n\t\t\t}\n\t\t\tswitch rv.Kind() {\n\t\t\tcase reflect.Bool:\n\t\t\t\treturn rv.Bool()\n\t\t\tcase reflect.Int32, reflect.Int64:\n\t\t\t\treturn rv.Int() != 0\n\t\t\tcase reflect.Uint32, reflect.Uint64:\n\t\t\t\treturn rv.Uint() != 0\n\t\t\tcase reflect.Float32, reflect.Float64:\n\t\t\t\treturn rv.Float() != 0 || math.Signbit(rv.Float())\n\t\t\tcase reflect.String, reflect.Slice:\n\t\t\t\treturn rv.Len() > 0\n\t\t\tdefault:\n\t\t\t\tpanic(fmt.Sprintf(\"field %v has invalid type: %v\", fd.FullName(), rv.Type())) // should never happen\n\t\t\t}\n\t\t},\n\t\tclear: func(p pointer) {\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\trv.Set(reflect.Zero(rv.Type()))\n\t\t},\n\t\tget: func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\tif nullable {\n\t\t\t\tif rv.IsNil() {\n\t\t\t\t\treturn conv.Zero()\n\t\t\t\t}\n\t\t\t\tif rv.Kind() == reflect.Ptr {\n\t\t\t\t\trv = rv.Elem()\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn conv.PBValueOf(rv)\n\t\t},\n\t\tset: func(p pointer, v protoreflect.Value) {\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\tif nullable && rv.Kind() == reflect.Ptr {\n\t\t\t\tif rv.IsNil() {\n\t\t\t\t\trv.Set(reflect.New(ft))\n\t\t\t\t}\n\t\t\t\trv = rv.Elem()\n\t\t\t}\n\t\t\trv.Set(conv.GoValueOf(v))\n\t\t\tif isBytes && rv.Len() == 0 {\n\t\t\t\tif nullable {\n\t\t\t\t\trv.Set(emptyBytes) // preserve presence\n\t\t\t\t} else {\n\t\t\t\t\trv.Set(nilBytes) // do not preserve presence\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tnewField: func() protoreflect.Value {\n\t\t\treturn conv.New()\n\t\t},\n\t}\n}\n\nfunc fieldInfoForWeakMessage(fd protoreflect.FieldDescriptor, weakOffset offset) fieldInfo {\n\tif !flags.ProtoLegacy {\n\t\tpanic(\"no support for proto1 weak fields\")\n\t}\n\n\tvar once sync.Once\n\tvar messageType protoreflect.MessageType\n\tlazyInit := func() {\n\t\tonce.Do(func() {\n\t\t\tmessageName := fd.Message().FullName()\n\t\t\tmessageType, _ = protoregistry.GlobalTypes.FindMessageByName(messageName)\n\t\t\tif messageType == nil {\n\t\t\t\tpanic(fmt.Sprintf(\"weak message %v for field %v is not linked in\", messageName, fd.FullName()))\n\t\t\t}\n\t\t})\n\t}\n\n\tnum := fd.Number()\n\treturn fieldInfo{\n\t\tfieldDesc: fd,\n\t\thas: func(p pointer) bool {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\t_, ok := p.Apply(weakOffset).WeakFields().get(num)\n\t\t\treturn ok\n\t\t},\n\t\tclear: func(p pointer) {\n\t\t\tp.Apply(weakOffset).WeakFields().clear(num)\n\t\t},\n\t\tget: func(p pointer) protoreflect.Value {\n\t\t\tlazyInit()\n\t\t\tif p.IsNil() {\n\t\t\t\treturn protoreflect.ValueOfMessage(messageType.Zero())\n\t\t\t}\n\t\t\tm, ok := p.Apply(weakOffset).WeakFields().get(num)\n\t\t\tif !ok {\n\t\t\t\treturn protoreflect.ValueOfMessage(messageType.Zero())\n\t\t\t}\n\t\t\treturn protoreflect.ValueOfMessage(m.ProtoReflect())\n\t\t},\n\t\tset: func(p pointer, v protoreflect.Value) {\n\t\t\tlazyInit()\n\t\t\tm := v.Message()\n\t\t\tif m.Descriptor() != messageType.Descriptor() {\n\t\t\t\tif got, want := m.Descriptor().FullName(), messageType.Descriptor().FullName(); got != want {\n\t\t\t\t\tpanic(fmt.Sprintf(\"field %v has mismatching message descriptor: got %v, want %v\", fd.FullName(), got, want))\n\t\t\t\t}\n\t\t\t\tpanic(fmt.Sprintf(\"field %v has mismatching message descriptor: %v\", fd.FullName(), m.Descriptor().FullName()))\n\t\t\t}\n\t\t\tp.Apply(weakOffset).WeakFields().set(num, m.Interface())\n\t\t},\n\t\tmutable: func(p pointer) protoreflect.Value {\n\t\t\tlazyInit()\n\t\t\tfs := p.Apply(weakOffset).WeakFields()\n\t\t\tm, ok := fs.get(num)\n\t\t\tif !ok {\n\t\t\t\tm = messageType.New().Interface()\n\t\t\t\tfs.set(num, m)\n\t\t\t}\n\t\t\treturn protoreflect.ValueOfMessage(m.ProtoReflect())\n\t\t},\n\t\tnewMessage: func() protoreflect.Message {\n\t\t\tlazyInit()\n\t\t\treturn messageType.New()\n\t\t},\n\t\tnewField: func() protoreflect.Value {\n\t\t\tlazyInit()\n\t\t\treturn protoreflect.ValueOfMessage(messageType.New())\n\t\t},\n\t}\n}\n\nfunc fieldInfoForMessage(fd protoreflect.FieldDescriptor, fs reflect.StructField, x exporter) fieldInfo {\n\tft := fs.Type\n\tconv := NewConverter(ft, fd)\n\n\t// TODO: Implement unsafe fast path?\n\tfieldOffset := offsetOf(fs, x)\n\treturn fieldInfo{\n\t\tfieldDesc: fd,\n\t\thas: func(p pointer) bool {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\tif fs.Type.Kind() != reflect.Ptr {\n\t\t\t\treturn !isZero(rv)\n\t\t\t}\n\t\t\treturn !rv.IsNil()\n\t\t},\n\t\tclear: func(p pointer) {\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\trv.Set(reflect.Zero(rv.Type()))\n\t\t},\n\t\tget: func(p pointer) protoreflect.Value {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn conv.Zero()\n\t\t\t}\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\treturn conv.PBValueOf(rv)\n\t\t},\n\t\tset: func(p pointer, v protoreflect.Value) {\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\trv.Set(conv.GoValueOf(v))\n\t\t\tif fs.Type.Kind() == reflect.Ptr && rv.IsNil() {\n\t\t\t\tpanic(fmt.Sprintf(\"field %v has invalid nil pointer\", fd.FullName()))\n\t\t\t}\n\t\t},\n\t\tmutable: func(p pointer) protoreflect.Value {\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\tif fs.Type.Kind() == reflect.Ptr && rv.IsNil() {\n\t\t\t\trv.Set(conv.GoValueOf(conv.New()))\n\t\t\t}\n\t\t\treturn conv.PBValueOf(rv)\n\t\t},\n\t\tnewMessage: func() protoreflect.Message {\n\t\t\treturn conv.New().Message()\n\t\t},\n\t\tnewField: func() protoreflect.Value {\n\t\t\treturn conv.New()\n\t\t},\n\t}\n}\n\ntype oneofInfo struct {\n\toneofDesc protoreflect.OneofDescriptor\n\twhich     func(pointer) protoreflect.FieldNumber\n}\n\nfunc makeOneofInfo(od protoreflect.OneofDescriptor, si structInfo, x exporter) *oneofInfo {\n\toi := &oneofInfo{oneofDesc: od}\n\tif od.IsSynthetic() {\n\t\tfs := si.fieldsByNumber[od.Fields().Get(0).Number()]\n\t\tfieldOffset := offsetOf(fs, x)\n\t\toi.which = func(p pointer) protoreflect.FieldNumber {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\tif rv.IsNil() { // valid on either *T or []byte\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\treturn od.Fields().Get(0).Number()\n\t\t}\n\t} else {\n\t\tfs := si.oneofsByName[od.Name()]\n\t\tfieldOffset := offsetOf(fs, x)\n\t\toi.which = func(p pointer) protoreflect.FieldNumber {\n\t\t\tif p.IsNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\trv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()\n\t\t\tif rv.IsNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\trv = rv.Elem()\n\t\t\tif rv.IsNil() {\n\t\t\t\treturn 0\n\t\t\t}\n\t\t\treturn si.oneofWrappersByType[rv.Type().Elem()]\n\t\t}\n\t}\n\treturn oi\n}\n\n// isZero is identical to reflect.Value.IsZero.\n// TODO: Remove this when Go1.13 is the minimally supported Go version.\nfunc isZero(v reflect.Value) bool {\n\tswitch v.Kind() {\n\tcase reflect.Bool:\n\t\treturn !v.Bool()\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn v.Int() == 0\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn v.Uint() == 0\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn math.Float64bits(v.Float()) == 0\n\tcase reflect.Complex64, reflect.Complex128:\n\t\tc := v.Complex()\n\t\treturn math.Float64bits(real(c)) == 0 && math.Float64bits(imag(c)) == 0\n\tcase reflect.Array:\n\t\tfor i := 0; i < v.Len(); i++ {\n\t\t\tif !isZero(v.Index(i)) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\tcase reflect.Chan, reflect.Func, reflect.Interface, reflect.Map, reflect.Ptr, reflect.Slice, reflect.UnsafePointer:\n\t\treturn v.IsNil()\n\tcase reflect.String:\n\t\treturn v.Len() == 0\n\tcase reflect.Struct:\n\t\tfor i := 0; i < v.NumField(); i++ {\n\t\t\tif !isZero(v.Field(i)) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\tdefault:\n\t\tpanic(&reflect.ValueError{Method: \"reflect.Value.IsZero\", Kind: v.Kind()})\n\t}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/message_reflect_gen.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by generate-types. DO NOT EDIT.\n\npackage impl\n\nimport (\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n)\n\nfunc (m *messageState) Descriptor() protoreflect.MessageDescriptor {\n\treturn m.messageInfo().Desc\n}\nfunc (m *messageState) Type() protoreflect.MessageType {\n\treturn m.messageInfo()\n}\nfunc (m *messageState) New() protoreflect.Message {\n\treturn m.messageInfo().New()\n}\nfunc (m *messageState) Interface() protoreflect.ProtoMessage {\n\treturn m.protoUnwrap().(protoreflect.ProtoMessage)\n}\nfunc (m *messageState) protoUnwrap() any {\n\treturn m.pointer().AsIfaceOf(m.messageInfo().GoReflectType.Elem())\n}\nfunc (m *messageState) ProtoMethods() *protoiface.Methods {\n\tmi := m.messageInfo()\n\tmi.init()\n\treturn &mi.methods\n}\n\n// ProtoMessageInfo is a pseudo-internal API for allowing the v1 code\n// to be able to retrieve a v2 MessageInfo struct.\n//\n// WARNING: This method is exempt from the compatibility promise and\n// may be removed in the future without warning.\nfunc (m *messageState) ProtoMessageInfo() *MessageInfo {\n\treturn m.messageInfo()\n}\n\nfunc (m *messageState) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {\n\tmi := m.messageInfo()\n\tmi.init()\n\tfor _, ri := range mi.rangeInfos {\n\t\tswitch ri := ri.(type) {\n\t\tcase *fieldInfo:\n\t\t\tif ri.has(m.pointer()) {\n\t\t\t\tif !f(ri.fieldDesc, ri.get(m.pointer())) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\tcase *oneofInfo:\n\t\t\tif n := ri.which(m.pointer()); n > 0 {\n\t\t\t\tfi := mi.fields[n]\n\t\t\t\tif !f(fi.fieldDesc, fi.get(m.pointer())) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tmi.extensionMap(m.pointer()).Range(f)\n}\nfunc (m *messageState) Has(fd protoreflect.FieldDescriptor) bool {\n\tmi := m.messageInfo()\n\tmi.init()\n\tif fi, xd := mi.checkField(fd); fi != nil {\n\t\treturn fi.has(m.pointer())\n\t} else {\n\t\treturn mi.extensionMap(m.pointer()).Has(xd)\n\t}\n}\nfunc (m *messageState) Clear(fd protoreflect.FieldDescriptor) {\n\tmi := m.messageInfo()\n\tmi.init()\n\tif fi, xd := mi.checkField(fd); fi != nil {\n\t\tfi.clear(m.pointer())\n\t} else {\n\t\tmi.extensionMap(m.pointer()).Clear(xd)\n\t}\n}\nfunc (m *messageState) Get(fd protoreflect.FieldDescriptor) protoreflect.Value {\n\tmi := m.messageInfo()\n\tmi.init()\n\tif fi, xd := mi.checkField(fd); fi != nil {\n\t\treturn fi.get(m.pointer())\n\t} else {\n\t\treturn mi.extensionMap(m.pointer()).Get(xd)\n\t}\n}\nfunc (m *messageState) Set(fd protoreflect.FieldDescriptor, v protoreflect.Value) {\n\tmi := m.messageInfo()\n\tmi.init()\n\tif fi, xd := mi.checkField(fd); fi != nil {\n\t\tfi.set(m.pointer(), v)\n\t} else {\n\t\tmi.extensionMap(m.pointer()).Set(xd, v)\n\t}\n}\nfunc (m *messageState) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {\n\tmi := m.messageInfo()\n\tmi.init()\n\tif fi, xd := mi.checkField(fd); fi != nil {\n\t\treturn fi.mutable(m.pointer())\n\t} else {\n\t\treturn mi.extensionMap(m.pointer()).Mutable(xd)\n\t}\n}\nfunc (m *messageState) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {\n\tmi := m.messageInfo()\n\tmi.init()\n\tif fi, xd := mi.checkField(fd); fi != nil {\n\t\treturn fi.newField()\n\t} else {\n\t\treturn xd.Type().New()\n\t}\n}\nfunc (m *messageState) WhichOneof(od protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {\n\tmi := m.messageInfo()\n\tmi.init()\n\tif oi := mi.oneofs[od.Name()]; oi != nil && oi.oneofDesc == od {\n\t\treturn od.Fields().ByNumber(oi.which(m.pointer()))\n\t}\n\tpanic(\"invalid oneof descriptor \" + string(od.FullName()) + \" for message \" + string(m.Descriptor().FullName()))\n}\nfunc (m *messageState) GetUnknown() protoreflect.RawFields {\n\tmi := m.messageInfo()\n\tmi.init()\n\treturn mi.getUnknown(m.pointer())\n}\nfunc (m *messageState) SetUnknown(b protoreflect.RawFields) {\n\tmi := m.messageInfo()\n\tmi.init()\n\tmi.setUnknown(m.pointer(), b)\n}\nfunc (m *messageState) IsValid() bool {\n\treturn !m.pointer().IsNil()\n}\n\nfunc (m *messageReflectWrapper) Descriptor() protoreflect.MessageDescriptor {\n\treturn m.messageInfo().Desc\n}\nfunc (m *messageReflectWrapper) Type() protoreflect.MessageType {\n\treturn m.messageInfo()\n}\nfunc (m *messageReflectWrapper) New() protoreflect.Message {\n\treturn m.messageInfo().New()\n}\nfunc (m *messageReflectWrapper) Interface() protoreflect.ProtoMessage {\n\tif m, ok := m.protoUnwrap().(protoreflect.ProtoMessage); ok {\n\t\treturn m\n\t}\n\treturn (*messageIfaceWrapper)(m)\n}\nfunc (m *messageReflectWrapper) protoUnwrap() any {\n\treturn m.pointer().AsIfaceOf(m.messageInfo().GoReflectType.Elem())\n}\nfunc (m *messageReflectWrapper) ProtoMethods() *protoiface.Methods {\n\tmi := m.messageInfo()\n\tmi.init()\n\treturn &mi.methods\n}\n\n// ProtoMessageInfo is a pseudo-internal API for allowing the v1 code\n// to be able to retrieve a v2 MessageInfo struct.\n//\n// WARNING: This method is exempt from the compatibility promise and\n// may be removed in the future without warning.\nfunc (m *messageReflectWrapper) ProtoMessageInfo() *MessageInfo {\n\treturn m.messageInfo()\n}\n\nfunc (m *messageReflectWrapper) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) {\n\tmi := m.messageInfo()\n\tmi.init()\n\tfor _, ri := range mi.rangeInfos {\n\t\tswitch ri := ri.(type) {\n\t\tcase *fieldInfo:\n\t\t\tif ri.has(m.pointer()) {\n\t\t\t\tif !f(ri.fieldDesc, ri.get(m.pointer())) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\tcase *oneofInfo:\n\t\t\tif n := ri.which(m.pointer()); n > 0 {\n\t\t\t\tfi := mi.fields[n]\n\t\t\t\tif !f(fi.fieldDesc, fi.get(m.pointer())) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tmi.extensionMap(m.pointer()).Range(f)\n}\nfunc (m *messageReflectWrapper) Has(fd protoreflect.FieldDescriptor) bool {\n\tmi := m.messageInfo()\n\tmi.init()\n\tif fi, xd := mi.checkField(fd); fi != nil {\n\t\treturn fi.has(m.pointer())\n\t} else {\n\t\treturn mi.extensionMap(m.pointer()).Has(xd)\n\t}\n}\nfunc (m *messageReflectWrapper) Clear(fd protoreflect.FieldDescriptor) {\n\tmi := m.messageInfo()\n\tmi.init()\n\tif fi, xd := mi.checkField(fd); fi != nil {\n\t\tfi.clear(m.pointer())\n\t} else {\n\t\tmi.extensionMap(m.pointer()).Clear(xd)\n\t}\n}\nfunc (m *messageReflectWrapper) Get(fd protoreflect.FieldDescriptor) protoreflect.Value {\n\tmi := m.messageInfo()\n\tmi.init()\n\tif fi, xd := mi.checkField(fd); fi != nil {\n\t\treturn fi.get(m.pointer())\n\t} else {\n\t\treturn mi.extensionMap(m.pointer()).Get(xd)\n\t}\n}\nfunc (m *messageReflectWrapper) Set(fd protoreflect.FieldDescriptor, v protoreflect.Value) {\n\tmi := m.messageInfo()\n\tmi.init()\n\tif fi, xd := mi.checkField(fd); fi != nil {\n\t\tfi.set(m.pointer(), v)\n\t} else {\n\t\tmi.extensionMap(m.pointer()).Set(xd, v)\n\t}\n}\nfunc (m *messageReflectWrapper) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value {\n\tmi := m.messageInfo()\n\tmi.init()\n\tif fi, xd := mi.checkField(fd); fi != nil {\n\t\treturn fi.mutable(m.pointer())\n\t} else {\n\t\treturn mi.extensionMap(m.pointer()).Mutable(xd)\n\t}\n}\nfunc (m *messageReflectWrapper) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value {\n\tmi := m.messageInfo()\n\tmi.init()\n\tif fi, xd := mi.checkField(fd); fi != nil {\n\t\treturn fi.newField()\n\t} else {\n\t\treturn xd.Type().New()\n\t}\n}\nfunc (m *messageReflectWrapper) WhichOneof(od protoreflect.OneofDescriptor) protoreflect.FieldDescriptor {\n\tmi := m.messageInfo()\n\tmi.init()\n\tif oi := mi.oneofs[od.Name()]; oi != nil && oi.oneofDesc == od {\n\t\treturn od.Fields().ByNumber(oi.which(m.pointer()))\n\t}\n\tpanic(\"invalid oneof descriptor \" + string(od.FullName()) + \" for message \" + string(m.Descriptor().FullName()))\n}\nfunc (m *messageReflectWrapper) GetUnknown() protoreflect.RawFields {\n\tmi := m.messageInfo()\n\tmi.init()\n\treturn mi.getUnknown(m.pointer())\n}\nfunc (m *messageReflectWrapper) SetUnknown(b protoreflect.RawFields) {\n\tmi := m.messageInfo()\n\tmi.init()\n\tmi.setUnknown(m.pointer(), b)\n}\nfunc (m *messageReflectWrapper) IsValid() bool {\n\treturn !m.pointer().IsNil()\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"reflect\"\n\t\"sync/atomic\"\n\t\"unsafe\"\n)\n\nconst UnsafeEnabled = true\n\n// Pointer is an opaque pointer type.\ntype Pointer unsafe.Pointer\n\n// offset represents the offset to a struct field, accessible from a pointer.\n// The offset is the byte offset to the field from the start of the struct.\ntype offset uintptr\n\n// offsetOf returns a field offset for the struct field.\nfunc offsetOf(f reflect.StructField, x exporter) offset {\n\treturn offset(f.Offset)\n}\n\n// IsValid reports whether the offset is valid.\nfunc (f offset) IsValid() bool { return f != invalidOffset }\n\n// invalidOffset is an invalid field offset.\nvar invalidOffset = ^offset(0)\n\n// zeroOffset is a noop when calling pointer.Apply.\nvar zeroOffset = offset(0)\n\n// pointer is a pointer to a message struct or field.\ntype pointer struct{ p unsafe.Pointer }\n\n// pointerOf returns p as a pointer.\nfunc pointerOf(p Pointer) pointer {\n\treturn pointer{p: unsafe.Pointer(p)}\n}\n\n// pointerOfValue returns v as a pointer.\nfunc pointerOfValue(v reflect.Value) pointer {\n\treturn pointer{p: unsafe.Pointer(v.Pointer())}\n}\n\n// pointerOfIface returns the pointer portion of an interface.\nfunc pointerOfIface(v any) pointer {\n\ttype ifaceHeader struct {\n\t\tType unsafe.Pointer\n\t\tData unsafe.Pointer\n\t}\n\treturn pointer{p: (*ifaceHeader)(unsafe.Pointer(&v)).Data}\n}\n\n// IsNil reports whether the pointer is nil.\nfunc (p pointer) IsNil() bool {\n\treturn p.p == nil\n}\n\n// Apply adds an offset to the pointer to derive a new pointer\n// to a specified field. The pointer must be valid and pointing at a struct.\nfunc (p pointer) Apply(f offset) pointer {\n\tif p.IsNil() {\n\t\tpanic(\"invalid nil pointer\")\n\t}\n\treturn pointer{p: unsafe.Pointer(uintptr(p.p) + uintptr(f))}\n}\n\n// AsValueOf treats p as a pointer to an object of type t and returns the value.\n// It is equivalent to reflect.ValueOf(p.AsIfaceOf(t))\nfunc (p pointer) AsValueOf(t reflect.Type) reflect.Value {\n\treturn reflect.NewAt(t, p.p)\n}\n\n// AsIfaceOf treats p as a pointer to an object of type t and returns the value.\n// It is equivalent to p.AsValueOf(t).Interface()\nfunc (p pointer) AsIfaceOf(t reflect.Type) any {\n\t// TODO: Use tricky unsafe magic to directly create ifaceHeader.\n\treturn p.AsValueOf(t).Interface()\n}\n\nfunc (p pointer) Bool() *bool                           { return (*bool)(p.p) }\nfunc (p pointer) BoolPtr() **bool                       { return (**bool)(p.p) }\nfunc (p pointer) BoolSlice() *[]bool                    { return (*[]bool)(p.p) }\nfunc (p pointer) Int32() *int32                         { return (*int32)(p.p) }\nfunc (p pointer) Int32Ptr() **int32                     { return (**int32)(p.p) }\nfunc (p pointer) Int32Slice() *[]int32                  { return (*[]int32)(p.p) }\nfunc (p pointer) Int64() *int64                         { return (*int64)(p.p) }\nfunc (p pointer) Int64Ptr() **int64                     { return (**int64)(p.p) }\nfunc (p pointer) Int64Slice() *[]int64                  { return (*[]int64)(p.p) }\nfunc (p pointer) Uint32() *uint32                       { return (*uint32)(p.p) }\nfunc (p pointer) Uint32Ptr() **uint32                   { return (**uint32)(p.p) }\nfunc (p pointer) Uint32Slice() *[]uint32                { return (*[]uint32)(p.p) }\nfunc (p pointer) Uint64() *uint64                       { return (*uint64)(p.p) }\nfunc (p pointer) Uint64Ptr() **uint64                   { return (**uint64)(p.p) }\nfunc (p pointer) Uint64Slice() *[]uint64                { return (*[]uint64)(p.p) }\nfunc (p pointer) Float32() *float32                     { return (*float32)(p.p) }\nfunc (p pointer) Float32Ptr() **float32                 { return (**float32)(p.p) }\nfunc (p pointer) Float32Slice() *[]float32              { return (*[]float32)(p.p) }\nfunc (p pointer) Float64() *float64                     { return (*float64)(p.p) }\nfunc (p pointer) Float64Ptr() **float64                 { return (**float64)(p.p) }\nfunc (p pointer) Float64Slice() *[]float64              { return (*[]float64)(p.p) }\nfunc (p pointer) String() *string                       { return (*string)(p.p) }\nfunc (p pointer) StringPtr() **string                   { return (**string)(p.p) }\nfunc (p pointer) StringSlice() *[]string                { return (*[]string)(p.p) }\nfunc (p pointer) Bytes() *[]byte                        { return (*[]byte)(p.p) }\nfunc (p pointer) BytesPtr() **[]byte                    { return (**[]byte)(p.p) }\nfunc (p pointer) BytesSlice() *[][]byte                 { return (*[][]byte)(p.p) }\nfunc (p pointer) WeakFields() *weakFields               { return (*weakFields)(p.p) }\nfunc (p pointer) Extensions() *map[int32]ExtensionField { return (*map[int32]ExtensionField)(p.p) }\n\nfunc (p pointer) Elem() pointer {\n\treturn pointer{p: *(*unsafe.Pointer)(p.p)}\n}\n\n// PointerSlice loads []*T from p as a []pointer.\n// The value returned is aliased with the original slice.\n// This behavior differs from the implementation in pointer_reflect.go.\nfunc (p pointer) PointerSlice() []pointer {\n\t// Super-tricky - p should point to a []*T where T is a\n\t// message type. We load it as []pointer.\n\treturn *(*[]pointer)(p.p)\n}\n\n// AppendPointerSlice appends v to p, which must be a []*T.\nfunc (p pointer) AppendPointerSlice(v pointer) {\n\t*(*[]pointer)(p.p) = append(*(*[]pointer)(p.p), v)\n}\n\n// SetPointer sets *p to v.\nfunc (p pointer) SetPointer(v pointer) {\n\t*(*unsafe.Pointer)(p.p) = (unsafe.Pointer)(v.p)\n}\n\nfunc (p pointer) growBoolSlice(addCap int) {\n\tsp := p.BoolSlice()\n\ts := make([]bool, 0, addCap+len(*sp))\n\ts = s[:len(*sp)]\n\tcopy(s, *sp)\n\t*sp = s\n}\n\nfunc (p pointer) growInt32Slice(addCap int) {\n\tsp := p.Int32Slice()\n\ts := make([]int32, 0, addCap+len(*sp))\n\ts = s[:len(*sp)]\n\tcopy(s, *sp)\n\t*sp = s\n}\n\nfunc (p pointer) growUint32Slice(addCap int) {\n\tp.growInt32Slice(addCap)\n}\n\nfunc (p pointer) growFloat32Slice(addCap int) {\n\tp.growInt32Slice(addCap)\n}\n\nfunc (p pointer) growInt64Slice(addCap int) {\n\tsp := p.Int64Slice()\n\ts := make([]int64, 0, addCap+len(*sp))\n\ts = s[:len(*sp)]\n\tcopy(s, *sp)\n\t*sp = s\n}\n\nfunc (p pointer) growUint64Slice(addCap int) {\n\tp.growInt64Slice(addCap)\n}\n\nfunc (p pointer) growFloat64Slice(addCap int) {\n\tp.growInt64Slice(addCap)\n}\n\n// Static check that MessageState does not exceed the size of a pointer.\nconst _ = uint(unsafe.Sizeof(unsafe.Pointer(nil)) - unsafe.Sizeof(MessageState{}))\n\nfunc (Export) MessageStateOf(p Pointer) *messageState {\n\t// Super-tricky - see documentation on MessageState.\n\treturn (*messageState)(unsafe.Pointer(p))\n}\nfunc (ms *messageState) pointer() pointer {\n\t// Super-tricky - see documentation on MessageState.\n\treturn pointer{p: unsafe.Pointer(ms)}\n}\nfunc (ms *messageState) messageInfo() *MessageInfo {\n\tmi := ms.LoadMessageInfo()\n\tif mi == nil {\n\t\tpanic(\"invalid nil message info; this suggests memory corruption due to a race or shallow copy on the message struct\")\n\t}\n\treturn mi\n}\nfunc (ms *messageState) LoadMessageInfo() *MessageInfo {\n\treturn (*MessageInfo)(atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(&ms.atomicMessageInfo))))\n}\nfunc (ms *messageState) StoreMessageInfo(mi *MessageInfo) {\n\tatomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(&ms.atomicMessageInfo)), unsafe.Pointer(mi))\n}\n\ntype atomicNilMessage struct{ p unsafe.Pointer } // p is a *messageReflectWrapper\n\nfunc (m *atomicNilMessage) Init(mi *MessageInfo) *messageReflectWrapper {\n\tif p := atomic.LoadPointer(&m.p); p != nil {\n\t\treturn (*messageReflectWrapper)(p)\n\t}\n\tw := &messageReflectWrapper{mi: mi}\n\tatomic.CompareAndSwapPointer(&m.p, nil, (unsafe.Pointer)(w))\n\treturn (*messageReflectWrapper)(atomic.LoadPointer(&m.p))\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/validate.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"fmt\"\n\t\"math\"\n\t\"math/bits\"\n\t\"reflect\"\n\t\"unicode/utf8\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/encoding/messageset\"\n\t\"google.golang.org/protobuf/internal/flags\"\n\t\"google.golang.org/protobuf/internal/genid\"\n\t\"google.golang.org/protobuf/internal/strs\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/reflect/protoregistry\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n)\n\n// ValidationStatus is the result of validating the wire-format encoding of a message.\ntype ValidationStatus int\n\nconst (\n\t// ValidationUnknown indicates that unmarshaling the message might succeed or fail.\n\t// The validator was unable to render a judgement.\n\t//\n\t// The only causes of this status are an aberrant message type appearing somewhere\n\t// in the message or a failure in the extension resolver.\n\tValidationUnknown ValidationStatus = iota + 1\n\n\t// ValidationInvalid indicates that unmarshaling the message will fail.\n\tValidationInvalid\n\n\t// ValidationValid indicates that unmarshaling the message will succeed.\n\tValidationValid\n)\n\nfunc (v ValidationStatus) String() string {\n\tswitch v {\n\tcase ValidationUnknown:\n\t\treturn \"ValidationUnknown\"\n\tcase ValidationInvalid:\n\t\treturn \"ValidationInvalid\"\n\tcase ValidationValid:\n\t\treturn \"ValidationValid\"\n\tdefault:\n\t\treturn fmt.Sprintf(\"ValidationStatus(%d)\", int(v))\n\t}\n}\n\n// Validate determines whether the contents of the buffer are a valid wire encoding\n// of the message type.\n//\n// This function is exposed for testing.\nfunc Validate(mt protoreflect.MessageType, in protoiface.UnmarshalInput) (out protoiface.UnmarshalOutput, _ ValidationStatus) {\n\tmi, ok := mt.(*MessageInfo)\n\tif !ok {\n\t\treturn out, ValidationUnknown\n\t}\n\tif in.Resolver == nil {\n\t\tin.Resolver = protoregistry.GlobalTypes\n\t}\n\to, st := mi.validate(in.Buf, 0, unmarshalOptions{\n\t\tflags:    in.Flags,\n\t\tresolver: in.Resolver,\n\t})\n\tif o.initialized {\n\t\tout.Flags |= protoiface.UnmarshalInitialized\n\t}\n\treturn out, st\n}\n\ntype validationInfo struct {\n\tmi               *MessageInfo\n\ttyp              validationType\n\tkeyType, valType validationType\n\n\t// For non-required fields, requiredBit is 0.\n\t//\n\t// For required fields, requiredBit's nth bit is set, where n is a\n\t// unique index in the range [0, MessageInfo.numRequiredFields).\n\t//\n\t// If there are more than 64 required fields, requiredBit is 0.\n\trequiredBit uint64\n}\n\ntype validationType uint8\n\nconst (\n\tvalidationTypeOther validationType = iota\n\tvalidationTypeMessage\n\tvalidationTypeGroup\n\tvalidationTypeMap\n\tvalidationTypeRepeatedVarint\n\tvalidationTypeRepeatedFixed32\n\tvalidationTypeRepeatedFixed64\n\tvalidationTypeVarint\n\tvalidationTypeFixed32\n\tvalidationTypeFixed64\n\tvalidationTypeBytes\n\tvalidationTypeUTF8String\n\tvalidationTypeMessageSetItem\n)\n\nfunc newFieldValidationInfo(mi *MessageInfo, si structInfo, fd protoreflect.FieldDescriptor, ft reflect.Type) validationInfo {\n\tvar vi validationInfo\n\tswitch {\n\tcase fd.ContainingOneof() != nil && !fd.ContainingOneof().IsSynthetic():\n\t\tswitch fd.Kind() {\n\t\tcase protoreflect.MessageKind:\n\t\t\tvi.typ = validationTypeMessage\n\t\t\tif ot, ok := si.oneofWrappersByNumber[fd.Number()]; ok {\n\t\t\t\tvi.mi = getMessageInfo(ot.Field(0).Type)\n\t\t\t}\n\t\tcase protoreflect.GroupKind:\n\t\t\tvi.typ = validationTypeGroup\n\t\t\tif ot, ok := si.oneofWrappersByNumber[fd.Number()]; ok {\n\t\t\t\tvi.mi = getMessageInfo(ot.Field(0).Type)\n\t\t\t}\n\t\tcase protoreflect.StringKind:\n\t\t\tif strs.EnforceUTF8(fd) {\n\t\t\t\tvi.typ = validationTypeUTF8String\n\t\t\t}\n\t\t}\n\tdefault:\n\t\tvi = newValidationInfo(fd, ft)\n\t}\n\tif fd.Cardinality() == protoreflect.Required {\n\t\t// Avoid overflow. The required field check is done with a 64-bit mask, with\n\t\t// any message containing more than 64 required fields always reported as\n\t\t// potentially uninitialized, so it is not important to get a precise count\n\t\t// of the required fields past 64.\n\t\tif mi.numRequiredFields < math.MaxUint8 {\n\t\t\tmi.numRequiredFields++\n\t\t\tvi.requiredBit = 1 << (mi.numRequiredFields - 1)\n\t\t}\n\t}\n\treturn vi\n}\n\nfunc newValidationInfo(fd protoreflect.FieldDescriptor, ft reflect.Type) validationInfo {\n\tvar vi validationInfo\n\tswitch {\n\tcase fd.IsList():\n\t\tswitch fd.Kind() {\n\t\tcase protoreflect.MessageKind:\n\t\t\tvi.typ = validationTypeMessage\n\t\t\tif ft.Kind() == reflect.Slice {\n\t\t\t\tvi.mi = getMessageInfo(ft.Elem())\n\t\t\t}\n\t\tcase protoreflect.GroupKind:\n\t\t\tvi.typ = validationTypeGroup\n\t\t\tif ft.Kind() == reflect.Slice {\n\t\t\t\tvi.mi = getMessageInfo(ft.Elem())\n\t\t\t}\n\t\tcase protoreflect.StringKind:\n\t\t\tvi.typ = validationTypeBytes\n\t\t\tif strs.EnforceUTF8(fd) {\n\t\t\t\tvi.typ = validationTypeUTF8String\n\t\t\t}\n\t\tdefault:\n\t\t\tswitch wireTypes[fd.Kind()] {\n\t\t\tcase protowire.VarintType:\n\t\t\t\tvi.typ = validationTypeRepeatedVarint\n\t\t\tcase protowire.Fixed32Type:\n\t\t\t\tvi.typ = validationTypeRepeatedFixed32\n\t\t\tcase protowire.Fixed64Type:\n\t\t\t\tvi.typ = validationTypeRepeatedFixed64\n\t\t\t}\n\t\t}\n\tcase fd.IsMap():\n\t\tvi.typ = validationTypeMap\n\t\tswitch fd.MapKey().Kind() {\n\t\tcase protoreflect.StringKind:\n\t\t\tif strs.EnforceUTF8(fd) {\n\t\t\t\tvi.keyType = validationTypeUTF8String\n\t\t\t}\n\t\t}\n\t\tswitch fd.MapValue().Kind() {\n\t\tcase protoreflect.MessageKind:\n\t\t\tvi.valType = validationTypeMessage\n\t\t\tif ft.Kind() == reflect.Map {\n\t\t\t\tvi.mi = getMessageInfo(ft.Elem())\n\t\t\t}\n\t\tcase protoreflect.StringKind:\n\t\t\tif strs.EnforceUTF8(fd) {\n\t\t\t\tvi.valType = validationTypeUTF8String\n\t\t\t}\n\t\t}\n\tdefault:\n\t\tswitch fd.Kind() {\n\t\tcase protoreflect.MessageKind:\n\t\t\tvi.typ = validationTypeMessage\n\t\t\tif !fd.IsWeak() {\n\t\t\t\tvi.mi = getMessageInfo(ft)\n\t\t\t}\n\t\tcase protoreflect.GroupKind:\n\t\t\tvi.typ = validationTypeGroup\n\t\t\tvi.mi = getMessageInfo(ft)\n\t\tcase protoreflect.StringKind:\n\t\t\tvi.typ = validationTypeBytes\n\t\t\tif strs.EnforceUTF8(fd) {\n\t\t\t\tvi.typ = validationTypeUTF8String\n\t\t\t}\n\t\tdefault:\n\t\t\tswitch wireTypes[fd.Kind()] {\n\t\t\tcase protowire.VarintType:\n\t\t\t\tvi.typ = validationTypeVarint\n\t\t\tcase protowire.Fixed32Type:\n\t\t\t\tvi.typ = validationTypeFixed32\n\t\t\tcase protowire.Fixed64Type:\n\t\t\t\tvi.typ = validationTypeFixed64\n\t\t\tcase protowire.BytesType:\n\t\t\t\tvi.typ = validationTypeBytes\n\t\t\t}\n\t\t}\n\t}\n\treturn vi\n}\n\nfunc (mi *MessageInfo) validate(b []byte, groupTag protowire.Number, opts unmarshalOptions) (out unmarshalOutput, result ValidationStatus) {\n\tmi.init()\n\ttype validationState struct {\n\t\ttyp              validationType\n\t\tkeyType, valType validationType\n\t\tendGroup         protowire.Number\n\t\tmi               *MessageInfo\n\t\ttail             []byte\n\t\trequiredMask     uint64\n\t}\n\n\t// Pre-allocate some slots to avoid repeated slice reallocation.\n\tstates := make([]validationState, 0, 16)\n\tstates = append(states, validationState{\n\t\ttyp: validationTypeMessage,\n\t\tmi:  mi,\n\t})\n\tif groupTag > 0 {\n\t\tstates[0].typ = validationTypeGroup\n\t\tstates[0].endGroup = groupTag\n\t}\n\tinitialized := true\n\tstart := len(b)\nState:\n\tfor len(states) > 0 {\n\t\tst := &states[len(states)-1]\n\t\tfor len(b) > 0 {\n\t\t\t// Parse the tag (field number and wire type).\n\t\t\tvar tag uint64\n\t\t\tif b[0] < 0x80 {\n\t\t\t\ttag = uint64(b[0])\n\t\t\t\tb = b[1:]\n\t\t\t} else if len(b) >= 2 && b[1] < 128 {\n\t\t\t\ttag = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\t\t\tb = b[2:]\n\t\t\t} else {\n\t\t\t\tvar n int\n\t\t\t\ttag, n = protowire.ConsumeVarint(b)\n\t\t\t\tif n < 0 {\n\t\t\t\t\treturn out, ValidationInvalid\n\t\t\t\t}\n\t\t\t\tb = b[n:]\n\t\t\t}\n\t\t\tvar num protowire.Number\n\t\t\tif n := tag >> 3; n < uint64(protowire.MinValidNumber) || n > uint64(protowire.MaxValidNumber) {\n\t\t\t\treturn out, ValidationInvalid\n\t\t\t} else {\n\t\t\t\tnum = protowire.Number(n)\n\t\t\t}\n\t\t\twtyp := protowire.Type(tag & 7)\n\n\t\t\tif wtyp == protowire.EndGroupType {\n\t\t\t\tif st.endGroup == num {\n\t\t\t\t\tgoto PopState\n\t\t\t\t}\n\t\t\t\treturn out, ValidationInvalid\n\t\t\t}\n\t\t\tvar vi validationInfo\n\t\t\tswitch {\n\t\t\tcase st.typ == validationTypeMap:\n\t\t\t\tswitch num {\n\t\t\t\tcase genid.MapEntry_Key_field_number:\n\t\t\t\t\tvi.typ = st.keyType\n\t\t\t\tcase genid.MapEntry_Value_field_number:\n\t\t\t\t\tvi.typ = st.valType\n\t\t\t\t\tvi.mi = st.mi\n\t\t\t\t\tvi.requiredBit = 1\n\t\t\t\t}\n\t\t\tcase flags.ProtoLegacy && st.mi.isMessageSet:\n\t\t\t\tswitch num {\n\t\t\t\tcase messageset.FieldItem:\n\t\t\t\t\tvi.typ = validationTypeMessageSetItem\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\tvar f *coderFieldInfo\n\t\t\t\tif int(num) < len(st.mi.denseCoderFields) {\n\t\t\t\t\tf = st.mi.denseCoderFields[num]\n\t\t\t\t} else {\n\t\t\t\t\tf = st.mi.coderFields[num]\n\t\t\t\t}\n\t\t\t\tif f != nil {\n\t\t\t\t\tvi = f.validation\n\t\t\t\t\tif vi.typ == validationTypeMessage && vi.mi == nil {\n\t\t\t\t\t\t// Probable weak field.\n\t\t\t\t\t\t//\n\t\t\t\t\t\t// TODO: Consider storing the results of this lookup somewhere\n\t\t\t\t\t\t// rather than recomputing it on every validation.\n\t\t\t\t\t\tfd := st.mi.Desc.Fields().ByNumber(num)\n\t\t\t\t\t\tif fd == nil || !fd.IsWeak() {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmessageName := fd.Message().FullName()\n\t\t\t\t\t\tmessageType, err := protoregistry.GlobalTypes.FindMessageByName(messageName)\n\t\t\t\t\t\tswitch err {\n\t\t\t\t\t\tcase nil:\n\t\t\t\t\t\t\tvi.mi, _ = messageType.(*MessageInfo)\n\t\t\t\t\t\tcase protoregistry.NotFound:\n\t\t\t\t\t\t\tvi.typ = validationTypeBytes\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn out, ValidationUnknown\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\t// Possible extension field.\n\t\t\t\t//\n\t\t\t\t// TODO: We should return ValidationUnknown when:\n\t\t\t\t//   1. The resolver is not frozen. (More extensions may be added to it.)\n\t\t\t\t//   2. The resolver returns preg.NotFound.\n\t\t\t\t// In this case, a type added to the resolver in the future could cause\n\t\t\t\t// unmarshaling to begin failing. Supporting this requires some way to\n\t\t\t\t// determine if the resolver is frozen.\n\t\t\t\txt, err := opts.resolver.FindExtensionByNumber(st.mi.Desc.FullName(), num)\n\t\t\t\tif err != nil && err != protoregistry.NotFound {\n\t\t\t\t\treturn out, ValidationUnknown\n\t\t\t\t}\n\t\t\t\tif err == nil {\n\t\t\t\t\tvi = getExtensionFieldInfo(xt).validation\n\t\t\t\t}\n\t\t\t}\n\t\t\tif vi.requiredBit != 0 {\n\t\t\t\t// Check that the field has a compatible wire type.\n\t\t\t\t// We only need to consider non-repeated field types,\n\t\t\t\t// since repeated fields (and maps) can never be required.\n\t\t\t\tok := false\n\t\t\t\tswitch vi.typ {\n\t\t\t\tcase validationTypeVarint:\n\t\t\t\t\tok = wtyp == protowire.VarintType\n\t\t\t\tcase validationTypeFixed32:\n\t\t\t\t\tok = wtyp == protowire.Fixed32Type\n\t\t\t\tcase validationTypeFixed64:\n\t\t\t\t\tok = wtyp == protowire.Fixed64Type\n\t\t\t\tcase validationTypeBytes, validationTypeUTF8String, validationTypeMessage:\n\t\t\t\t\tok = wtyp == protowire.BytesType\n\t\t\t\tcase validationTypeGroup:\n\t\t\t\t\tok = wtyp == protowire.StartGroupType\n\t\t\t\t}\n\t\t\t\tif ok {\n\t\t\t\t\tst.requiredMask |= vi.requiredBit\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tswitch wtyp {\n\t\t\tcase protowire.VarintType:\n\t\t\t\tif len(b) >= 10 {\n\t\t\t\t\tswitch {\n\t\t\t\t\tcase b[0] < 0x80:\n\t\t\t\t\t\tb = b[1:]\n\t\t\t\t\tcase b[1] < 0x80:\n\t\t\t\t\t\tb = b[2:]\n\t\t\t\t\tcase b[2] < 0x80:\n\t\t\t\t\t\tb = b[3:]\n\t\t\t\t\tcase b[3] < 0x80:\n\t\t\t\t\t\tb = b[4:]\n\t\t\t\t\tcase b[4] < 0x80:\n\t\t\t\t\t\tb = b[5:]\n\t\t\t\t\tcase b[5] < 0x80:\n\t\t\t\t\t\tb = b[6:]\n\t\t\t\t\tcase b[6] < 0x80:\n\t\t\t\t\t\tb = b[7:]\n\t\t\t\t\tcase b[7] < 0x80:\n\t\t\t\t\t\tb = b[8:]\n\t\t\t\t\tcase b[8] < 0x80:\n\t\t\t\t\t\tb = b[9:]\n\t\t\t\t\tcase b[9] < 0x80 && b[9] < 2:\n\t\t\t\t\t\tb = b[10:]\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn out, ValidationInvalid\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tswitch {\n\t\t\t\t\tcase len(b) > 0 && b[0] < 0x80:\n\t\t\t\t\t\tb = b[1:]\n\t\t\t\t\tcase len(b) > 1 && b[1] < 0x80:\n\t\t\t\t\t\tb = b[2:]\n\t\t\t\t\tcase len(b) > 2 && b[2] < 0x80:\n\t\t\t\t\t\tb = b[3:]\n\t\t\t\t\tcase len(b) > 3 && b[3] < 0x80:\n\t\t\t\t\t\tb = b[4:]\n\t\t\t\t\tcase len(b) > 4 && b[4] < 0x80:\n\t\t\t\t\t\tb = b[5:]\n\t\t\t\t\tcase len(b) > 5 && b[5] < 0x80:\n\t\t\t\t\t\tb = b[6:]\n\t\t\t\t\tcase len(b) > 6 && b[6] < 0x80:\n\t\t\t\t\t\tb = b[7:]\n\t\t\t\t\tcase len(b) > 7 && b[7] < 0x80:\n\t\t\t\t\t\tb = b[8:]\n\t\t\t\t\tcase len(b) > 8 && b[8] < 0x80:\n\t\t\t\t\t\tb = b[9:]\n\t\t\t\t\tcase len(b) > 9 && b[9] < 2:\n\t\t\t\t\t\tb = b[10:]\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn out, ValidationInvalid\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcontinue State\n\t\t\tcase protowire.BytesType:\n\t\t\t\tvar size uint64\n\t\t\t\tif len(b) >= 1 && b[0] < 0x80 {\n\t\t\t\t\tsize = uint64(b[0])\n\t\t\t\t\tb = b[1:]\n\t\t\t\t} else if len(b) >= 2 && b[1] < 128 {\n\t\t\t\t\tsize = uint64(b[0]&0x7f) + uint64(b[1])<<7\n\t\t\t\t\tb = b[2:]\n\t\t\t\t} else {\n\t\t\t\t\tvar n int\n\t\t\t\t\tsize, n = protowire.ConsumeVarint(b)\n\t\t\t\t\tif n < 0 {\n\t\t\t\t\t\treturn out, ValidationInvalid\n\t\t\t\t\t}\n\t\t\t\t\tb = b[n:]\n\t\t\t\t}\n\t\t\t\tif size > uint64(len(b)) {\n\t\t\t\t\treturn out, ValidationInvalid\n\t\t\t\t}\n\t\t\t\tv := b[:size]\n\t\t\t\tb = b[size:]\n\t\t\t\tswitch vi.typ {\n\t\t\t\tcase validationTypeMessage:\n\t\t\t\t\tif vi.mi == nil {\n\t\t\t\t\t\treturn out, ValidationUnknown\n\t\t\t\t\t}\n\t\t\t\t\tvi.mi.init()\n\t\t\t\t\tfallthrough\n\t\t\t\tcase validationTypeMap:\n\t\t\t\t\tif vi.mi != nil {\n\t\t\t\t\t\tvi.mi.init()\n\t\t\t\t\t}\n\t\t\t\t\tstates = append(states, validationState{\n\t\t\t\t\t\ttyp:     vi.typ,\n\t\t\t\t\t\tkeyType: vi.keyType,\n\t\t\t\t\t\tvalType: vi.valType,\n\t\t\t\t\t\tmi:      vi.mi,\n\t\t\t\t\t\ttail:    b,\n\t\t\t\t\t})\n\t\t\t\t\tb = v\n\t\t\t\t\tcontinue State\n\t\t\t\tcase validationTypeRepeatedVarint:\n\t\t\t\t\t// Packed field.\n\t\t\t\t\tfor len(v) > 0 {\n\t\t\t\t\t\t_, n := protowire.ConsumeVarint(v)\n\t\t\t\t\t\tif n < 0 {\n\t\t\t\t\t\t\treturn out, ValidationInvalid\n\t\t\t\t\t\t}\n\t\t\t\t\t\tv = v[n:]\n\t\t\t\t\t}\n\t\t\t\tcase validationTypeRepeatedFixed32:\n\t\t\t\t\t// Packed field.\n\t\t\t\t\tif len(v)%4 != 0 {\n\t\t\t\t\t\treturn out, ValidationInvalid\n\t\t\t\t\t}\n\t\t\t\tcase validationTypeRepeatedFixed64:\n\t\t\t\t\t// Packed field.\n\t\t\t\t\tif len(v)%8 != 0 {\n\t\t\t\t\t\treturn out, ValidationInvalid\n\t\t\t\t\t}\n\t\t\t\tcase validationTypeUTF8String:\n\t\t\t\t\tif !utf8.Valid(v) {\n\t\t\t\t\t\treturn out, ValidationInvalid\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tcase protowire.Fixed32Type:\n\t\t\t\tif len(b) < 4 {\n\t\t\t\t\treturn out, ValidationInvalid\n\t\t\t\t}\n\t\t\t\tb = b[4:]\n\t\t\tcase protowire.Fixed64Type:\n\t\t\t\tif len(b) < 8 {\n\t\t\t\t\treturn out, ValidationInvalid\n\t\t\t\t}\n\t\t\t\tb = b[8:]\n\t\t\tcase protowire.StartGroupType:\n\t\t\t\tswitch {\n\t\t\t\tcase vi.typ == validationTypeGroup:\n\t\t\t\t\tif vi.mi == nil {\n\t\t\t\t\t\treturn out, ValidationUnknown\n\t\t\t\t\t}\n\t\t\t\t\tvi.mi.init()\n\t\t\t\t\tstates = append(states, validationState{\n\t\t\t\t\t\ttyp:      validationTypeGroup,\n\t\t\t\t\t\tmi:       vi.mi,\n\t\t\t\t\t\tendGroup: num,\n\t\t\t\t\t})\n\t\t\t\t\tcontinue State\n\t\t\t\tcase flags.ProtoLegacy && vi.typ == validationTypeMessageSetItem:\n\t\t\t\t\ttypeid, v, n, err := messageset.ConsumeFieldValue(b, false)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn out, ValidationInvalid\n\t\t\t\t\t}\n\t\t\t\t\txt, err := opts.resolver.FindExtensionByNumber(st.mi.Desc.FullName(), typeid)\n\t\t\t\t\tswitch {\n\t\t\t\t\tcase err == protoregistry.NotFound:\n\t\t\t\t\t\tb = b[n:]\n\t\t\t\t\tcase err != nil:\n\t\t\t\t\t\treturn out, ValidationUnknown\n\t\t\t\t\tdefault:\n\t\t\t\t\t\txvi := getExtensionFieldInfo(xt).validation\n\t\t\t\t\t\tif xvi.mi != nil {\n\t\t\t\t\t\t\txvi.mi.init()\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstates = append(states, validationState{\n\t\t\t\t\t\t\ttyp:  xvi.typ,\n\t\t\t\t\t\t\tmi:   xvi.mi,\n\t\t\t\t\t\t\ttail: b[n:],\n\t\t\t\t\t\t})\n\t\t\t\t\t\tb = v\n\t\t\t\t\t\tcontinue State\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tn := protowire.ConsumeFieldValue(num, wtyp, b)\n\t\t\t\t\tif n < 0 {\n\t\t\t\t\t\treturn out, ValidationInvalid\n\t\t\t\t\t}\n\t\t\t\t\tb = b[n:]\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\treturn out, ValidationInvalid\n\t\t\t}\n\t\t}\n\t\tif st.endGroup != 0 {\n\t\t\treturn out, ValidationInvalid\n\t\t}\n\t\tif len(b) != 0 {\n\t\t\treturn out, ValidationInvalid\n\t\t}\n\t\tb = st.tail\n\tPopState:\n\t\tnumRequiredFields := 0\n\t\tswitch st.typ {\n\t\tcase validationTypeMessage, validationTypeGroup:\n\t\t\tnumRequiredFields = int(st.mi.numRequiredFields)\n\t\tcase validationTypeMap:\n\t\t\t// If this is a map field with a message value that contains\n\t\t\t// required fields, require that the value be present.\n\t\t\tif st.mi != nil && st.mi.numRequiredFields > 0 {\n\t\t\t\tnumRequiredFields = 1\n\t\t\t}\n\t\t}\n\t\t// If there are more than 64 required fields, this check will\n\t\t// always fail and we will report that the message is potentially\n\t\t// uninitialized.\n\t\tif numRequiredFields > 0 && bits.OnesCount64(st.requiredMask) != numRequiredFields {\n\t\t\tinitialized = false\n\t\t}\n\t\tstates = states[:len(states)-1]\n\t}\n\tout.n = start - len(b)\n\tif initialized {\n\t\tout.initialized = true\n\t}\n\treturn out, ValidationValid\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/impl/weak.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage impl\n\nimport (\n\t\"fmt\"\n\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/reflect/protoregistry\"\n)\n\n// weakFields adds methods to the exported WeakFields type for internal use.\n//\n// The exported type is an alias to an unnamed type, so methods can't be\n// defined directly on it.\ntype weakFields WeakFields\n\nfunc (w weakFields) get(num protoreflect.FieldNumber) (protoreflect.ProtoMessage, bool) {\n\tm, ok := w[int32(num)]\n\treturn m, ok\n}\n\nfunc (w *weakFields) set(num protoreflect.FieldNumber, m protoreflect.ProtoMessage) {\n\tif *w == nil {\n\t\t*w = make(weakFields)\n\t}\n\t(*w)[int32(num)] = m\n}\n\nfunc (w *weakFields) clear(num protoreflect.FieldNumber) {\n\tdelete(*w, int32(num))\n}\n\nfunc (Export) HasWeak(w WeakFields, num protoreflect.FieldNumber) bool {\n\t_, ok := w[int32(num)]\n\treturn ok\n}\n\nfunc (Export) ClearWeak(w *WeakFields, num protoreflect.FieldNumber) {\n\tdelete(*w, int32(num))\n}\n\nfunc (Export) GetWeak(w WeakFields, num protoreflect.FieldNumber, name protoreflect.FullName) protoreflect.ProtoMessage {\n\tif m, ok := w[int32(num)]; ok {\n\t\treturn m\n\t}\n\tmt, _ := protoregistry.GlobalTypes.FindMessageByName(name)\n\tif mt == nil {\n\t\tpanic(fmt.Sprintf(\"message %v for weak field is not linked in\", name))\n\t}\n\treturn mt.Zero().Interface()\n}\n\nfunc (Export) SetWeak(w *WeakFields, num protoreflect.FieldNumber, name protoreflect.FullName, m protoreflect.ProtoMessage) {\n\tif m != nil {\n\t\tmt, _ := protoregistry.GlobalTypes.FindMessageByName(name)\n\t\tif mt == nil {\n\t\t\tpanic(fmt.Sprintf(\"message %v for weak field is not linked in\", name))\n\t\t}\n\t\tif mt != m.ProtoReflect().Type() {\n\t\t\tpanic(fmt.Sprintf(\"invalid message type for weak field: got %T, want %T\", m, mt.Zero().Interface()))\n\t\t}\n\t}\n\tif m == nil || !m.ProtoReflect().IsValid() {\n\t\tdelete(*w, int32(num))\n\t\treturn\n\t}\n\tif *w == nil {\n\t\t*w = make(weakFields)\n\t}\n\t(*w)[int32(num)] = m\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/order/order.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage order\n\nimport (\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\n// FieldOrder specifies the ordering to visit message fields.\n// It is a function that reports whether x is ordered before y.\ntype FieldOrder func(x, y protoreflect.FieldDescriptor) bool\n\nvar (\n\t// AnyFieldOrder specifies no specific field ordering.\n\tAnyFieldOrder FieldOrder = nil\n\n\t// LegacyFieldOrder sorts fields in the same ordering as emitted by\n\t// wire serialization in the github.com/golang/protobuf implementation.\n\tLegacyFieldOrder FieldOrder = func(x, y protoreflect.FieldDescriptor) bool {\n\t\tox, oy := x.ContainingOneof(), y.ContainingOneof()\n\t\tinOneof := func(od protoreflect.OneofDescriptor) bool {\n\t\t\treturn od != nil && !od.IsSynthetic()\n\t\t}\n\n\t\t// Extension fields sort before non-extension fields.\n\t\tif x.IsExtension() != y.IsExtension() {\n\t\t\treturn x.IsExtension() && !y.IsExtension()\n\t\t}\n\t\t// Fields not within a oneof sort before those within a oneof.\n\t\tif inOneof(ox) != inOneof(oy) {\n\t\t\treturn !inOneof(ox) && inOneof(oy)\n\t\t}\n\t\t// Fields in disjoint oneof sets are sorted by declaration index.\n\t\tif inOneof(ox) && inOneof(oy) && ox != oy {\n\t\t\treturn ox.Index() < oy.Index()\n\t\t}\n\t\t// Fields sorted by field number.\n\t\treturn x.Number() < y.Number()\n\t}\n\n\t// NumberFieldOrder sorts fields by their field number.\n\tNumberFieldOrder FieldOrder = func(x, y protoreflect.FieldDescriptor) bool {\n\t\treturn x.Number() < y.Number()\n\t}\n\n\t// IndexNameFieldOrder sorts non-extension fields before extension fields.\n\t// Non-extensions are sorted according to their declaration index.\n\t// Extensions are sorted according to their full name.\n\tIndexNameFieldOrder FieldOrder = func(x, y protoreflect.FieldDescriptor) bool {\n\t\t// Non-extension fields sort before extension fields.\n\t\tif x.IsExtension() != y.IsExtension() {\n\t\t\treturn !x.IsExtension() && y.IsExtension()\n\t\t}\n\t\t// Extensions sorted by fullname.\n\t\tif x.IsExtension() && y.IsExtension() {\n\t\t\treturn x.FullName() < y.FullName()\n\t\t}\n\t\t// Non-extensions sorted by declaration index.\n\t\treturn x.Index() < y.Index()\n\t}\n)\n\n// KeyOrder specifies the ordering to visit map entries.\n// It is a function that reports whether x is ordered before y.\ntype KeyOrder func(x, y protoreflect.MapKey) bool\n\nvar (\n\t// AnyKeyOrder specifies no specific key ordering.\n\tAnyKeyOrder KeyOrder = nil\n\n\t// GenericKeyOrder sorts false before true, numeric keys in ascending order,\n\t// and strings in lexicographical ordering according to UTF-8 codepoints.\n\tGenericKeyOrder KeyOrder = func(x, y protoreflect.MapKey) bool {\n\t\tswitch x.Interface().(type) {\n\t\tcase bool:\n\t\t\treturn !x.Bool() && y.Bool()\n\t\tcase int32, int64:\n\t\t\treturn x.Int() < y.Int()\n\t\tcase uint32, uint64:\n\t\t\treturn x.Uint() < y.Uint()\n\t\tcase string:\n\t\t\treturn x.String() < y.String()\n\t\tdefault:\n\t\t\tpanic(\"invalid map key type\")\n\t\t}\n\t}\n)\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/order/range.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package order provides ordered access to messages and maps.\npackage order\n\nimport (\n\t\"sort\"\n\t\"sync\"\n\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\ntype messageField struct {\n\tfd protoreflect.FieldDescriptor\n\tv  protoreflect.Value\n}\n\nvar messageFieldPool = sync.Pool{\n\tNew: func() any { return new([]messageField) },\n}\n\ntype (\n\t// FieldRnger is an interface for visiting all fields in a message.\n\t// The protoreflect.Message type implements this interface.\n\tFieldRanger interface{ Range(VisitField) }\n\t// VisitField is called every time a message field is visited.\n\tVisitField = func(protoreflect.FieldDescriptor, protoreflect.Value) bool\n)\n\n// RangeFields iterates over the fields of fs according to the specified order.\nfunc RangeFields(fs FieldRanger, less FieldOrder, fn VisitField) {\n\tif less == nil {\n\t\tfs.Range(fn)\n\t\treturn\n\t}\n\n\t// Obtain a pre-allocated scratch buffer.\n\tp := messageFieldPool.Get().(*[]messageField)\n\tfields := (*p)[:0]\n\tdefer func() {\n\t\tif cap(fields) < 1024 {\n\t\t\t*p = fields\n\t\t\tmessageFieldPool.Put(p)\n\t\t}\n\t}()\n\n\t// Collect all fields in the message and sort them.\n\tfs.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool {\n\t\tfields = append(fields, messageField{fd, v})\n\t\treturn true\n\t})\n\tsort.Slice(fields, func(i, j int) bool {\n\t\treturn less(fields[i].fd, fields[j].fd)\n\t})\n\n\t// Visit the fields in the specified ordering.\n\tfor _, f := range fields {\n\t\tif !fn(f.fd, f.v) {\n\t\t\treturn\n\t\t}\n\t}\n}\n\ntype mapEntry struct {\n\tk protoreflect.MapKey\n\tv protoreflect.Value\n}\n\nvar mapEntryPool = sync.Pool{\n\tNew: func() any { return new([]mapEntry) },\n}\n\ntype (\n\t// EntryRanger is an interface for visiting all fields in a message.\n\t// The protoreflect.Map type implements this interface.\n\tEntryRanger interface{ Range(VisitEntry) }\n\t// VisitEntry is called every time a map entry is visited.\n\tVisitEntry = func(protoreflect.MapKey, protoreflect.Value) bool\n)\n\n// RangeEntries iterates over the entries of es according to the specified order.\nfunc RangeEntries(es EntryRanger, less KeyOrder, fn VisitEntry) {\n\tif less == nil {\n\t\tes.Range(fn)\n\t\treturn\n\t}\n\n\t// Obtain a pre-allocated scratch buffer.\n\tp := mapEntryPool.Get().(*[]mapEntry)\n\tentries := (*p)[:0]\n\tdefer func() {\n\t\tif cap(entries) < 1024 {\n\t\t\t*p = entries\n\t\t\tmapEntryPool.Put(p)\n\t\t}\n\t}()\n\n\t// Collect all entries in the map and sort them.\n\tes.Range(func(k protoreflect.MapKey, v protoreflect.Value) bool {\n\t\tentries = append(entries, mapEntry{k, v})\n\t\treturn true\n\t})\n\tsort.Slice(entries, func(i, j int) bool {\n\t\treturn less(entries[i].k, entries[j].k)\n\t})\n\n\t// Visit the entries in the specified ordering.\n\tfor _, e := range entries {\n\t\tif !fn(e.k, e.v) {\n\t\t\treturn\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/pragma/pragma.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package pragma provides types that can be embedded into a struct to\n// statically enforce or prevent certain language properties.\npackage pragma\n\nimport \"sync\"\n\n// NoUnkeyedLiterals can be embedded in a struct to prevent unkeyed literals.\ntype NoUnkeyedLiterals struct{}\n\n// DoNotImplement can be embedded in an interface to prevent trivial\n// implementations of the interface.\n//\n// This is useful to prevent unauthorized implementations of an interface\n// so that it can be extended in the future for any protobuf language changes.\ntype DoNotImplement interface{ ProtoInternal(DoNotImplement) }\n\n// DoNotCompare can be embedded in a struct to prevent comparability.\ntype DoNotCompare [0]func()\n\n// DoNotCopy can be embedded in a struct to help prevent shallow copies.\n// This does not rely on a Go language feature, but rather a special case\n// within the vet checker.\n//\n// See https://golang.org/issues/8005.\ntype DoNotCopy [0]sync.Mutex\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/set/ints.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package set provides simple set data structures for uint64s.\npackage set\n\nimport \"math/bits\"\n\n// int64s represents a set of integers within the range of 0..63.\ntype int64s uint64\n\nfunc (bs *int64s) Len() int {\n\treturn bits.OnesCount64(uint64(*bs))\n}\nfunc (bs *int64s) Has(n uint64) bool {\n\treturn uint64(*bs)&(uint64(1)<<n) > 0\n}\nfunc (bs *int64s) Set(n uint64) {\n\t*(*uint64)(bs) |= uint64(1) << n\n}\nfunc (bs *int64s) Clear(n uint64) {\n\t*(*uint64)(bs) &^= uint64(1) << n\n}\n\n// Ints represents a set of integers within the range of 0..math.MaxUint64.\ntype Ints struct {\n\tlo int64s\n\thi map[uint64]struct{}\n}\n\nfunc (bs *Ints) Len() int {\n\treturn bs.lo.Len() + len(bs.hi)\n}\nfunc (bs *Ints) Has(n uint64) bool {\n\tif n < 64 {\n\t\treturn bs.lo.Has(n)\n\t}\n\t_, ok := bs.hi[n]\n\treturn ok\n}\nfunc (bs *Ints) Set(n uint64) {\n\tif n < 64 {\n\t\tbs.lo.Set(n)\n\t\treturn\n\t}\n\tif bs.hi == nil {\n\t\tbs.hi = make(map[uint64]struct{})\n\t}\n\tbs.hi[n] = struct{}{}\n}\nfunc (bs *Ints) Clear(n uint64) {\n\tif n < 64 {\n\t\tbs.lo.Clear(n)\n\t\treturn\n\t}\n\tdelete(bs.hi, n)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/strs/strings.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package strs provides string manipulation functionality specific to protobuf.\npackage strs\n\nimport (\n\t\"go/token\"\n\t\"strings\"\n\t\"unicode\"\n\t\"unicode/utf8\"\n\n\t\"google.golang.org/protobuf/internal/flags\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\n// EnforceUTF8 reports whether to enforce strict UTF-8 validation.\nfunc EnforceUTF8(fd protoreflect.FieldDescriptor) bool {\n\tif flags.ProtoLegacy || fd.Syntax() == protoreflect.Editions {\n\t\tif fd, ok := fd.(interface{ EnforceUTF8() bool }); ok {\n\t\t\treturn fd.EnforceUTF8()\n\t\t}\n\t}\n\treturn fd.Syntax() == protoreflect.Proto3\n}\n\n// GoCamelCase camel-cases a protobuf name for use as a Go identifier.\n//\n// If there is an interior underscore followed by a lower case letter,\n// drop the underscore and convert the letter to upper case.\nfunc GoCamelCase(s string) string {\n\t// Invariant: if the next letter is lower case, it must be converted\n\t// to upper case.\n\t// That is, we process a word at a time, where words are marked by _ or\n\t// upper case letter. Digits are treated as words.\n\tvar b []byte\n\tfor i := 0; i < len(s); i++ {\n\t\tc := s[i]\n\t\tswitch {\n\t\tcase c == '.' && i+1 < len(s) && isASCIILower(s[i+1]):\n\t\t\t// Skip over '.' in \".{{lowercase}}\".\n\t\tcase c == '.':\n\t\t\tb = append(b, '_') // convert '.' to '_'\n\t\tcase c == '_' && (i == 0 || s[i-1] == '.'):\n\t\t\t// Convert initial '_' to ensure we start with a capital letter.\n\t\t\t// Do the same for '_' after '.' to match historic behavior.\n\t\t\tb = append(b, 'X') // convert '_' to 'X'\n\t\tcase c == '_' && i+1 < len(s) && isASCIILower(s[i+1]):\n\t\t\t// Skip over '_' in \"_{{lowercase}}\".\n\t\tcase isASCIIDigit(c):\n\t\t\tb = append(b, c)\n\t\tdefault:\n\t\t\t// Assume we have a letter now - if not, it's a bogus identifier.\n\t\t\t// The next word is a sequence of characters that must start upper case.\n\t\t\tif isASCIILower(c) {\n\t\t\t\tc -= 'a' - 'A' // convert lowercase to uppercase\n\t\t\t}\n\t\t\tb = append(b, c)\n\n\t\t\t// Accept lower case sequence that follows.\n\t\t\tfor ; i+1 < len(s) && isASCIILower(s[i+1]); i++ {\n\t\t\t\tb = append(b, s[i+1])\n\t\t\t}\n\t\t}\n\t}\n\treturn string(b)\n}\n\n// GoSanitized converts a string to a valid Go identifier.\nfunc GoSanitized(s string) string {\n\t// Sanitize the input to the set of valid characters,\n\t// which must be '_' or be in the Unicode L or N categories.\n\ts = strings.Map(func(r rune) rune {\n\t\tif unicode.IsLetter(r) || unicode.IsDigit(r) {\n\t\t\treturn r\n\t\t}\n\t\treturn '_'\n\t}, s)\n\n\t// Prepend '_' in the event of a Go keyword conflict or if\n\t// the identifier is invalid (does not start in the Unicode L category).\n\tr, _ := utf8.DecodeRuneInString(s)\n\tif token.Lookup(s).IsKeyword() || !unicode.IsLetter(r) {\n\t\treturn \"_\" + s\n\t}\n\treturn s\n}\n\n// JSONCamelCase converts a snake_case identifier to a camelCase identifier,\n// according to the protobuf JSON specification.\nfunc JSONCamelCase(s string) string {\n\tvar b []byte\n\tvar wasUnderscore bool\n\tfor i := 0; i < len(s); i++ { // proto identifiers are always ASCII\n\t\tc := s[i]\n\t\tif c != '_' {\n\t\t\tif wasUnderscore && isASCIILower(c) {\n\t\t\t\tc -= 'a' - 'A' // convert to uppercase\n\t\t\t}\n\t\t\tb = append(b, c)\n\t\t}\n\t\twasUnderscore = c == '_'\n\t}\n\treturn string(b)\n}\n\n// JSONSnakeCase converts a camelCase identifier to a snake_case identifier,\n// according to the protobuf JSON specification.\nfunc JSONSnakeCase(s string) string {\n\tvar b []byte\n\tfor i := 0; i < len(s); i++ { // proto identifiers are always ASCII\n\t\tc := s[i]\n\t\tif isASCIIUpper(c) {\n\t\t\tb = append(b, '_')\n\t\t\tc += 'a' - 'A' // convert to lowercase\n\t\t}\n\t\tb = append(b, c)\n\t}\n\treturn string(b)\n}\n\n// MapEntryName derives the name of the map entry message given the field name.\n// See protoc v3.8.0: src/google/protobuf/descriptor.cc:254-276,6057\nfunc MapEntryName(s string) string {\n\tvar b []byte\n\tupperNext := true\n\tfor _, c := range s {\n\t\tswitch {\n\t\tcase c == '_':\n\t\t\tupperNext = true\n\t\tcase upperNext:\n\t\t\tb = append(b, byte(unicode.ToUpper(c)))\n\t\t\tupperNext = false\n\t\tdefault:\n\t\t\tb = append(b, byte(c))\n\t\t}\n\t}\n\tb = append(b, \"Entry\"...)\n\treturn string(b)\n}\n\n// EnumValueName derives the camel-cased enum value name.\n// See protoc v3.8.0: src/google/protobuf/descriptor.cc:297-313\nfunc EnumValueName(s string) string {\n\tvar b []byte\n\tupperNext := true\n\tfor _, c := range s {\n\t\tswitch {\n\t\tcase c == '_':\n\t\t\tupperNext = true\n\t\tcase upperNext:\n\t\t\tb = append(b, byte(unicode.ToUpper(c)))\n\t\t\tupperNext = false\n\t\tdefault:\n\t\t\tb = append(b, byte(unicode.ToLower(c)))\n\t\t\tupperNext = false\n\t\t}\n\t}\n\treturn string(b)\n}\n\n// TrimEnumPrefix trims the enum name prefix from an enum value name,\n// where the prefix is all lowercase without underscores.\n// See protoc v3.8.0: src/google/protobuf/descriptor.cc:330-375\nfunc TrimEnumPrefix(s, prefix string) string {\n\ts0 := s // original input\n\tfor len(s) > 0 && len(prefix) > 0 {\n\t\tif s[0] == '_' {\n\t\t\ts = s[1:]\n\t\t\tcontinue\n\t\t}\n\t\tif unicode.ToLower(rune(s[0])) != rune(prefix[0]) {\n\t\t\treturn s0 // no prefix match\n\t\t}\n\t\ts, prefix = s[1:], prefix[1:]\n\t}\n\tif len(prefix) > 0 {\n\t\treturn s0 // no prefix match\n\t}\n\ts = strings.TrimLeft(s, \"_\")\n\tif len(s) == 0 {\n\t\treturn s0 // avoid returning empty string\n\t}\n\treturn s\n}\n\nfunc isASCIILower(c byte) bool {\n\treturn 'a' <= c && c <= 'z'\n}\nfunc isASCIIUpper(c byte) bool {\n\treturn 'A' <= c && c <= 'Z'\n}\nfunc isASCIIDigit(c byte) bool {\n\treturn '0' <= c && c <= '9'\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go120.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build !go1.21\n\npackage strs\n\nimport (\n\t\"unsafe\"\n\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\ntype (\n\tstringHeader struct {\n\t\tData unsafe.Pointer\n\t\tLen  int\n\t}\n\tsliceHeader struct {\n\t\tData unsafe.Pointer\n\t\tLen  int\n\t\tCap  int\n\t}\n)\n\n// UnsafeString returns an unsafe string reference of b.\n// The caller must treat the input slice as immutable.\n//\n// WARNING: Use carefully. The returned result must not leak to the end user\n// unless the input slice is provably immutable.\nfunc UnsafeString(b []byte) (s string) {\n\tsrc := (*sliceHeader)(unsafe.Pointer(&b))\n\tdst := (*stringHeader)(unsafe.Pointer(&s))\n\tdst.Data = src.Data\n\tdst.Len = src.Len\n\treturn s\n}\n\n// UnsafeBytes returns an unsafe bytes slice reference of s.\n// The caller must treat returned slice as immutable.\n//\n// WARNING: Use carefully. The returned result must not leak to the end user.\nfunc UnsafeBytes(s string) (b []byte) {\n\tsrc := (*stringHeader)(unsafe.Pointer(&s))\n\tdst := (*sliceHeader)(unsafe.Pointer(&b))\n\tdst.Data = src.Data\n\tdst.Len = src.Len\n\tdst.Cap = src.Len\n\treturn b\n}\n\n// Builder builds a set of strings with shared lifetime.\n// This differs from strings.Builder, which is for building a single string.\ntype Builder struct {\n\tbuf []byte\n}\n\n// AppendFullName is equivalent to protoreflect.FullName.Append,\n// but optimized for large batches where each name has a shared lifetime.\nfunc (sb *Builder) AppendFullName(prefix protoreflect.FullName, name protoreflect.Name) protoreflect.FullName {\n\tn := len(prefix) + len(\".\") + len(name)\n\tif len(prefix) == 0 {\n\t\tn -= len(\".\")\n\t}\n\tsb.grow(n)\n\tsb.buf = append(sb.buf, prefix...)\n\tsb.buf = append(sb.buf, '.')\n\tsb.buf = append(sb.buf, name...)\n\treturn protoreflect.FullName(sb.last(n))\n}\n\n// MakeString is equivalent to string(b), but optimized for large batches\n// with a shared lifetime.\nfunc (sb *Builder) MakeString(b []byte) string {\n\tsb.grow(len(b))\n\tsb.buf = append(sb.buf, b...)\n\treturn sb.last(len(b))\n}\n\nfunc (sb *Builder) grow(n int) {\n\tif cap(sb.buf)-len(sb.buf) >= n {\n\t\treturn\n\t}\n\n\t// Unlike strings.Builder, we do not need to copy over the contents\n\t// of the old buffer since our builder provides no API for\n\t// retrieving previously created strings.\n\tsb.buf = make([]byte, 0, 2*(cap(sb.buf)+n))\n}\n\nfunc (sb *Builder) last(n int) string {\n\treturn UnsafeString(sb.buf[len(sb.buf)-n:])\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go121.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build go1.21\n\npackage strs\n\nimport (\n\t\"unsafe\"\n\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\n// UnsafeString returns an unsafe string reference of b.\n// The caller must treat the input slice as immutable.\n//\n// WARNING: Use carefully. The returned result must not leak to the end user\n// unless the input slice is provably immutable.\nfunc UnsafeString(b []byte) string {\n\treturn unsafe.String(unsafe.SliceData(b), len(b))\n}\n\n// UnsafeBytes returns an unsafe bytes slice reference of s.\n// The caller must treat returned slice as immutable.\n//\n// WARNING: Use carefully. The returned result must not leak to the end user.\nfunc UnsafeBytes(s string) []byte {\n\treturn unsafe.Slice(unsafe.StringData(s), len(s))\n}\n\n// Builder builds a set of strings with shared lifetime.\n// This differs from strings.Builder, which is for building a single string.\ntype Builder struct {\n\tbuf []byte\n}\n\n// AppendFullName is equivalent to protoreflect.FullName.Append,\n// but optimized for large batches where each name has a shared lifetime.\nfunc (sb *Builder) AppendFullName(prefix protoreflect.FullName, name protoreflect.Name) protoreflect.FullName {\n\tn := len(prefix) + len(\".\") + len(name)\n\tif len(prefix) == 0 {\n\t\tn -= len(\".\")\n\t}\n\tsb.grow(n)\n\tsb.buf = append(sb.buf, prefix...)\n\tsb.buf = append(sb.buf, '.')\n\tsb.buf = append(sb.buf, name...)\n\treturn protoreflect.FullName(sb.last(n))\n}\n\n// MakeString is equivalent to string(b), but optimized for large batches\n// with a shared lifetime.\nfunc (sb *Builder) MakeString(b []byte) string {\n\tsb.grow(len(b))\n\tsb.buf = append(sb.buf, b...)\n\treturn sb.last(len(b))\n}\n\nfunc (sb *Builder) grow(n int) {\n\tif cap(sb.buf)-len(sb.buf) >= n {\n\t\treturn\n\t}\n\n\t// Unlike strings.Builder, we do not need to copy over the contents\n\t// of the old buffer since our builder provides no API for\n\t// retrieving previously created strings.\n\tsb.buf = make([]byte, 0, 2*(cap(sb.buf)+n))\n}\n\nfunc (sb *Builder) last(n int) string {\n\treturn UnsafeString(sb.buf[len(sb.buf)-n:])\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/internal/version/version.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package version records versioning information about this module.\npackage version\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n)\n\n// These constants determine the current version of this module.\n//\n// For our release process, we enforce the following rules:\n//   - Tagged releases use a tag that is identical to String.\n//   - Tagged releases never reference a commit where the String\n//     contains \"devel\".\n//   - The set of all commits in this repository where String\n//     does not contain \"devel\" must have a unique String.\n//\n// Steps for tagging a new release:\n//\n//  1. Create a new CL.\n//\n//  2. Update Minor, Patch, and/or PreRelease as necessary.\n//     PreRelease must not contain the string \"devel\".\n//\n//  3. Since the last released minor version, have there been any changes to\n//     generator that relies on new functionality in the runtime?\n//     If yes, then increment RequiredGenerated.\n//\n//  4. Since the last released minor version, have there been any changes to\n//     the runtime that removes support for old .pb.go source code?\n//     If yes, then increment SupportMinimum.\n//\n//  5. Send out the CL for review and submit it.\n//     Note that the next CL in step 8 must be submitted after this CL\n//     without any other CLs in-between.\n//\n//  6. Tag a new version, where the tag is is the current String.\n//\n//  7. Write release notes for all notable changes\n//     between this release and the last release.\n//\n//  8. Create a new CL.\n//\n//  9. Update PreRelease to include the string \"devel\".\n//     For example: \"\" -> \"devel\" or \"rc.1\" -> \"rc.1.devel\"\n//\n//  10. Send out the CL for review and submit it.\nconst (\n\tMajor      = 1\n\tMinor      = 35\n\tPatch      = 1\n\tPreRelease = \"\"\n)\n\n// String formats the version string for this module in semver format.\n//\n// Examples:\n//\n//\tv1.20.1\n//\tv1.21.0-rc.1\nfunc String() string {\n\tv := fmt.Sprintf(\"v%d.%d.%d\", Major, Minor, Patch)\n\tif PreRelease != \"\" {\n\t\tv += \"-\" + PreRelease\n\n\t\t// TODO: Add metadata about the commit or build hash.\n\t\t// See https://golang.org/issue/29814\n\t\t// See https://golang.org/issue/33533\n\t\tvar metadata string\n\t\tif strings.Contains(PreRelease, \"devel\") && metadata != \"\" {\n\t\t\tv += \"+\" + metadata\n\t\t}\n\t}\n\treturn v\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/proto/checkinit.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\nimport (\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n)\n\n// CheckInitialized returns an error if any required fields in m are not set.\nfunc CheckInitialized(m Message) error {\n\t// Treat a nil message interface as an \"untyped\" empty message,\n\t// which we assume to have no required fields.\n\tif m == nil {\n\t\treturn nil\n\t}\n\n\treturn checkInitialized(m.ProtoReflect())\n}\n\n// CheckInitialized returns an error if any required fields in m are not set.\nfunc checkInitialized(m protoreflect.Message) error {\n\tif methods := protoMethods(m); methods != nil && methods.CheckInitialized != nil {\n\t\t_, err := methods.CheckInitialized(protoiface.CheckInitializedInput{\n\t\t\tMessage: m,\n\t\t})\n\t\treturn err\n\t}\n\treturn checkInitializedSlow(m)\n}\n\nfunc checkInitializedSlow(m protoreflect.Message) error {\n\tmd := m.Descriptor()\n\tfds := md.Fields()\n\tfor i, nums := 0, md.RequiredNumbers(); i < nums.Len(); i++ {\n\t\tfd := fds.ByNumber(nums.Get(i))\n\t\tif !m.Has(fd) {\n\t\t\treturn errors.RequiredNotSet(string(fd.FullName()))\n\t\t}\n\t}\n\tvar err error\n\tm.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool {\n\t\tswitch {\n\t\tcase fd.IsList():\n\t\t\tif fd.Message() == nil {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tfor i, list := 0, v.List(); i < list.Len() && err == nil; i++ {\n\t\t\t\terr = checkInitialized(list.Get(i).Message())\n\t\t\t}\n\t\tcase fd.IsMap():\n\t\t\tif fd.MapValue().Message() == nil {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tv.Map().Range(func(key protoreflect.MapKey, v protoreflect.Value) bool {\n\t\t\t\terr = checkInitialized(v.Message())\n\t\t\t\treturn err == nil\n\t\t\t})\n\t\tdefault:\n\t\t\tif fd.Message() == nil {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\terr = checkInitialized(v.Message())\n\t\t}\n\t\treturn err == nil\n\t})\n\treturn err\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/proto/decode.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\nimport (\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/encoding/messageset\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/internal/flags\"\n\t\"google.golang.org/protobuf/internal/genid\"\n\t\"google.golang.org/protobuf/internal/pragma\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/reflect/protoregistry\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n)\n\n// UnmarshalOptions configures the unmarshaler.\n//\n// Example usage:\n//\n//\terr := UnmarshalOptions{DiscardUnknown: true}.Unmarshal(b, m)\ntype UnmarshalOptions struct {\n\tpragma.NoUnkeyedLiterals\n\n\t// Merge merges the input into the destination message.\n\t// The default behavior is to always reset the message before unmarshaling,\n\t// unless Merge is specified.\n\tMerge bool\n\n\t// AllowPartial accepts input for messages that will result in missing\n\t// required fields. If AllowPartial is false (the default), Unmarshal will\n\t// return an error if there are any missing required fields.\n\tAllowPartial bool\n\n\t// If DiscardUnknown is set, unknown fields are ignored.\n\tDiscardUnknown bool\n\n\t// Resolver is used for looking up types when unmarshaling extension fields.\n\t// If nil, this defaults to using protoregistry.GlobalTypes.\n\tResolver interface {\n\t\tFindExtensionByName(field protoreflect.FullName) (protoreflect.ExtensionType, error)\n\t\tFindExtensionByNumber(message protoreflect.FullName, field protoreflect.FieldNumber) (protoreflect.ExtensionType, error)\n\t}\n\n\t// RecursionLimit limits how deeply messages may be nested.\n\t// If zero, a default limit is applied.\n\tRecursionLimit int\n}\n\n// Unmarshal parses the wire-format message in b and places the result in m.\n// The provided message must be mutable (e.g., a non-nil pointer to a message).\n//\n// See the [UnmarshalOptions] type if you need more control.\nfunc Unmarshal(b []byte, m Message) error {\n\t_, err := UnmarshalOptions{RecursionLimit: protowire.DefaultRecursionLimit}.unmarshal(b, m.ProtoReflect())\n\treturn err\n}\n\n// Unmarshal parses the wire-format message in b and places the result in m.\n// The provided message must be mutable (e.g., a non-nil pointer to a message).\nfunc (o UnmarshalOptions) Unmarshal(b []byte, m Message) error {\n\tif o.RecursionLimit == 0 {\n\t\to.RecursionLimit = protowire.DefaultRecursionLimit\n\t}\n\t_, err := o.unmarshal(b, m.ProtoReflect())\n\treturn err\n}\n\n// UnmarshalState parses a wire-format message and places the result in m.\n//\n// This method permits fine-grained control over the unmarshaler.\n// Most users should use [Unmarshal] instead.\nfunc (o UnmarshalOptions) UnmarshalState(in protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) {\n\tif o.RecursionLimit == 0 {\n\t\to.RecursionLimit = protowire.DefaultRecursionLimit\n\t}\n\treturn o.unmarshal(in.Buf, in.Message)\n}\n\n// unmarshal is a centralized function that all unmarshal operations go through.\n// For profiling purposes, avoid changing the name of this function or\n// introducing other code paths for unmarshal that do not go through this.\nfunc (o UnmarshalOptions) unmarshal(b []byte, m protoreflect.Message) (out protoiface.UnmarshalOutput, err error) {\n\tif o.Resolver == nil {\n\t\to.Resolver = protoregistry.GlobalTypes\n\t}\n\tif !o.Merge {\n\t\tReset(m.Interface())\n\t}\n\tallowPartial := o.AllowPartial\n\to.Merge = true\n\to.AllowPartial = true\n\tmethods := protoMethods(m)\n\tif methods != nil && methods.Unmarshal != nil &&\n\t\t!(o.DiscardUnknown && methods.Flags&protoiface.SupportUnmarshalDiscardUnknown == 0) {\n\t\tin := protoiface.UnmarshalInput{\n\t\t\tMessage:  m,\n\t\t\tBuf:      b,\n\t\t\tResolver: o.Resolver,\n\t\t\tDepth:    o.RecursionLimit,\n\t\t}\n\t\tif o.DiscardUnknown {\n\t\t\tin.Flags |= protoiface.UnmarshalDiscardUnknown\n\t\t}\n\t\tout, err = methods.Unmarshal(in)\n\t} else {\n\t\to.RecursionLimit--\n\t\tif o.RecursionLimit < 0 {\n\t\t\treturn out, errors.New(\"exceeded max recursion depth\")\n\t\t}\n\t\terr = o.unmarshalMessageSlow(b, m)\n\t}\n\tif err != nil {\n\t\treturn out, err\n\t}\n\tif allowPartial || (out.Flags&protoiface.UnmarshalInitialized != 0) {\n\t\treturn out, nil\n\t}\n\treturn out, checkInitialized(m)\n}\n\nfunc (o UnmarshalOptions) unmarshalMessage(b []byte, m protoreflect.Message) error {\n\t_, err := o.unmarshal(b, m)\n\treturn err\n}\n\nfunc (o UnmarshalOptions) unmarshalMessageSlow(b []byte, m protoreflect.Message) error {\n\tmd := m.Descriptor()\n\tif messageset.IsMessageSet(md) {\n\t\treturn o.unmarshalMessageSet(b, m)\n\t}\n\tfields := md.Fields()\n\tfor len(b) > 0 {\n\t\t// Parse the tag (field number and wire type).\n\t\tnum, wtyp, tagLen := protowire.ConsumeTag(b)\n\t\tif tagLen < 0 {\n\t\t\treturn errDecode\n\t\t}\n\t\tif num > protowire.MaxValidNumber {\n\t\t\treturn errDecode\n\t\t}\n\n\t\t// Find the field descriptor for this field number.\n\t\tfd := fields.ByNumber(num)\n\t\tif fd == nil && md.ExtensionRanges().Has(num) {\n\t\t\textType, err := o.Resolver.FindExtensionByNumber(md.FullName(), num)\n\t\t\tif err != nil && err != protoregistry.NotFound {\n\t\t\t\treturn errors.New(\"%v: unable to resolve extension %v: %v\", md.FullName(), num, err)\n\t\t\t}\n\t\t\tif extType != nil {\n\t\t\t\tfd = extType.TypeDescriptor()\n\t\t\t}\n\t\t}\n\t\tvar err error\n\t\tif fd == nil {\n\t\t\terr = errUnknown\n\t\t} else if flags.ProtoLegacy {\n\t\t\tif fd.IsWeak() && fd.Message().IsPlaceholder() {\n\t\t\t\terr = errUnknown // weak referent is not linked in\n\t\t\t}\n\t\t}\n\n\t\t// Parse the field value.\n\t\tvar valLen int\n\t\tswitch {\n\t\tcase err != nil:\n\t\tcase fd.IsList():\n\t\t\tvalLen, err = o.unmarshalList(b[tagLen:], wtyp, m.Mutable(fd).List(), fd)\n\t\tcase fd.IsMap():\n\t\t\tvalLen, err = o.unmarshalMap(b[tagLen:], wtyp, m.Mutable(fd).Map(), fd)\n\t\tdefault:\n\t\t\tvalLen, err = o.unmarshalSingular(b[tagLen:], wtyp, m, fd)\n\t\t}\n\t\tif err != nil {\n\t\t\tif err != errUnknown {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tvalLen = protowire.ConsumeFieldValue(num, wtyp, b[tagLen:])\n\t\t\tif valLen < 0 {\n\t\t\t\treturn errDecode\n\t\t\t}\n\t\t\tif !o.DiscardUnknown {\n\t\t\t\tm.SetUnknown(append(m.GetUnknown(), b[:tagLen+valLen]...))\n\t\t\t}\n\t\t}\n\t\tb = b[tagLen+valLen:]\n\t}\n\treturn nil\n}\n\nfunc (o UnmarshalOptions) unmarshalSingular(b []byte, wtyp protowire.Type, m protoreflect.Message, fd protoreflect.FieldDescriptor) (n int, err error) {\n\tv, n, err := o.unmarshalScalar(b, wtyp, fd)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tswitch fd.Kind() {\n\tcase protoreflect.GroupKind, protoreflect.MessageKind:\n\t\tm2 := m.Mutable(fd).Message()\n\t\tif err := o.unmarshalMessage(v.Bytes(), m2); err != nil {\n\t\t\treturn n, err\n\t\t}\n\tdefault:\n\t\t// Non-message scalars replace the previous value.\n\t\tm.Set(fd, v)\n\t}\n\treturn n, nil\n}\n\nfunc (o UnmarshalOptions) unmarshalMap(b []byte, wtyp protowire.Type, mapv protoreflect.Map, fd protoreflect.FieldDescriptor) (n int, err error) {\n\tif wtyp != protowire.BytesType {\n\t\treturn 0, errUnknown\n\t}\n\tb, n = protowire.ConsumeBytes(b)\n\tif n < 0 {\n\t\treturn 0, errDecode\n\t}\n\tvar (\n\t\tkeyField = fd.MapKey()\n\t\tvalField = fd.MapValue()\n\t\tkey      protoreflect.Value\n\t\tval      protoreflect.Value\n\t\thaveKey  bool\n\t\thaveVal  bool\n\t)\n\tswitch valField.Kind() {\n\tcase protoreflect.GroupKind, protoreflect.MessageKind:\n\t\tval = mapv.NewValue()\n\t}\n\t// Map entries are represented as a two-element message with fields\n\t// containing the key and value.\n\tfor len(b) > 0 {\n\t\tnum, wtyp, n := protowire.ConsumeTag(b)\n\t\tif n < 0 {\n\t\t\treturn 0, errDecode\n\t\t}\n\t\tif num > protowire.MaxValidNumber {\n\t\t\treturn 0, errDecode\n\t\t}\n\t\tb = b[n:]\n\t\terr = errUnknown\n\t\tswitch num {\n\t\tcase genid.MapEntry_Key_field_number:\n\t\t\tkey, n, err = o.unmarshalScalar(b, wtyp, keyField)\n\t\t\tif err != nil {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\thaveKey = true\n\t\tcase genid.MapEntry_Value_field_number:\n\t\t\tvar v protoreflect.Value\n\t\t\tv, n, err = o.unmarshalScalar(b, wtyp, valField)\n\t\t\tif err != nil {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tswitch valField.Kind() {\n\t\t\tcase protoreflect.GroupKind, protoreflect.MessageKind:\n\t\t\t\tif err := o.unmarshalMessage(v.Bytes(), val.Message()); err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\tval = v\n\t\t\t}\n\t\t\thaveVal = true\n\t\t}\n\t\tif err == errUnknown {\n\t\t\tn = protowire.ConsumeFieldValue(num, wtyp, b)\n\t\t\tif n < 0 {\n\t\t\t\treturn 0, errDecode\n\t\t\t}\n\t\t} else if err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\tb = b[n:]\n\t}\n\t// Every map entry should have entries for key and value, but this is not strictly required.\n\tif !haveKey {\n\t\tkey = keyField.Default()\n\t}\n\tif !haveVal {\n\t\tswitch valField.Kind() {\n\t\tcase protoreflect.GroupKind, protoreflect.MessageKind:\n\t\tdefault:\n\t\t\tval = valField.Default()\n\t\t}\n\t}\n\tmapv.Set(key.MapKey(), val)\n\treturn n, nil\n}\n\n// errUnknown is used internally to indicate fields which should be added\n// to the unknown field set of a message. It is never returned from an exported\n// function.\nvar errUnknown = errors.New(\"BUG: internal error (unknown)\")\n\nvar errDecode = errors.New(\"cannot parse invalid wire-format data\")\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/proto/decode_gen.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by generate-types. DO NOT EDIT.\n\npackage proto\n\nimport (\n\t\"math\"\n\t\"unicode/utf8\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/internal/strs\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\n// unmarshalScalar decodes a value of the given kind.\n//\n// Message values are decoded into a []byte which aliases the input data.\nfunc (o UnmarshalOptions) unmarshalScalar(b []byte, wtyp protowire.Type, fd protoreflect.FieldDescriptor) (val protoreflect.Value, n int, err error) {\n\tswitch fd.Kind() {\n\tcase protoreflect.BoolKind:\n\t\tif wtyp != protowire.VarintType {\n\t\t\treturn val, 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeVarint(b)\n\t\tif n < 0 {\n\t\t\treturn val, 0, errDecode\n\t\t}\n\t\treturn protoreflect.ValueOfBool(protowire.DecodeBool(v)), n, nil\n\tcase protoreflect.EnumKind:\n\t\tif wtyp != protowire.VarintType {\n\t\t\treturn val, 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeVarint(b)\n\t\tif n < 0 {\n\t\t\treturn val, 0, errDecode\n\t\t}\n\t\treturn protoreflect.ValueOfEnum(protoreflect.EnumNumber(v)), n, nil\n\tcase protoreflect.Int32Kind:\n\t\tif wtyp != protowire.VarintType {\n\t\t\treturn val, 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeVarint(b)\n\t\tif n < 0 {\n\t\t\treturn val, 0, errDecode\n\t\t}\n\t\treturn protoreflect.ValueOfInt32(int32(v)), n, nil\n\tcase protoreflect.Sint32Kind:\n\t\tif wtyp != protowire.VarintType {\n\t\t\treturn val, 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeVarint(b)\n\t\tif n < 0 {\n\t\t\treturn val, 0, errDecode\n\t\t}\n\t\treturn protoreflect.ValueOfInt32(int32(protowire.DecodeZigZag(v & math.MaxUint32))), n, nil\n\tcase protoreflect.Uint32Kind:\n\t\tif wtyp != protowire.VarintType {\n\t\t\treturn val, 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeVarint(b)\n\t\tif n < 0 {\n\t\t\treturn val, 0, errDecode\n\t\t}\n\t\treturn protoreflect.ValueOfUint32(uint32(v)), n, nil\n\tcase protoreflect.Int64Kind:\n\t\tif wtyp != protowire.VarintType {\n\t\t\treturn val, 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeVarint(b)\n\t\tif n < 0 {\n\t\t\treturn val, 0, errDecode\n\t\t}\n\t\treturn protoreflect.ValueOfInt64(int64(v)), n, nil\n\tcase protoreflect.Sint64Kind:\n\t\tif wtyp != protowire.VarintType {\n\t\t\treturn val, 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeVarint(b)\n\t\tif n < 0 {\n\t\t\treturn val, 0, errDecode\n\t\t}\n\t\treturn protoreflect.ValueOfInt64(protowire.DecodeZigZag(v)), n, nil\n\tcase protoreflect.Uint64Kind:\n\t\tif wtyp != protowire.VarintType {\n\t\t\treturn val, 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeVarint(b)\n\t\tif n < 0 {\n\t\t\treturn val, 0, errDecode\n\t\t}\n\t\treturn protoreflect.ValueOfUint64(v), n, nil\n\tcase protoreflect.Sfixed32Kind:\n\t\tif wtyp != protowire.Fixed32Type {\n\t\t\treturn val, 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeFixed32(b)\n\t\tif n < 0 {\n\t\t\treturn val, 0, errDecode\n\t\t}\n\t\treturn protoreflect.ValueOfInt32(int32(v)), n, nil\n\tcase protoreflect.Fixed32Kind:\n\t\tif wtyp != protowire.Fixed32Type {\n\t\t\treturn val, 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeFixed32(b)\n\t\tif n < 0 {\n\t\t\treturn val, 0, errDecode\n\t\t}\n\t\treturn protoreflect.ValueOfUint32(uint32(v)), n, nil\n\tcase protoreflect.FloatKind:\n\t\tif wtyp != protowire.Fixed32Type {\n\t\t\treturn val, 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeFixed32(b)\n\t\tif n < 0 {\n\t\t\treturn val, 0, errDecode\n\t\t}\n\t\treturn protoreflect.ValueOfFloat32(math.Float32frombits(uint32(v))), n, nil\n\tcase protoreflect.Sfixed64Kind:\n\t\tif wtyp != protowire.Fixed64Type {\n\t\t\treturn val, 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeFixed64(b)\n\t\tif n < 0 {\n\t\t\treturn val, 0, errDecode\n\t\t}\n\t\treturn protoreflect.ValueOfInt64(int64(v)), n, nil\n\tcase protoreflect.Fixed64Kind:\n\t\tif wtyp != protowire.Fixed64Type {\n\t\t\treturn val, 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeFixed64(b)\n\t\tif n < 0 {\n\t\t\treturn val, 0, errDecode\n\t\t}\n\t\treturn protoreflect.ValueOfUint64(v), n, nil\n\tcase protoreflect.DoubleKind:\n\t\tif wtyp != protowire.Fixed64Type {\n\t\t\treturn val, 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeFixed64(b)\n\t\tif n < 0 {\n\t\t\treturn val, 0, errDecode\n\t\t}\n\t\treturn protoreflect.ValueOfFloat64(math.Float64frombits(v)), n, nil\n\tcase protoreflect.StringKind:\n\t\tif wtyp != protowire.BytesType {\n\t\t\treturn val, 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn val, 0, errDecode\n\t\t}\n\t\tif strs.EnforceUTF8(fd) && !utf8.Valid(v) {\n\t\t\treturn protoreflect.Value{}, 0, errors.InvalidUTF8(string(fd.FullName()))\n\t\t}\n\t\treturn protoreflect.ValueOfString(string(v)), n, nil\n\tcase protoreflect.BytesKind:\n\t\tif wtyp != protowire.BytesType {\n\t\t\treturn val, 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn val, 0, errDecode\n\t\t}\n\t\treturn protoreflect.ValueOfBytes(append(emptyBuf[:], v...)), n, nil\n\tcase protoreflect.MessageKind:\n\t\tif wtyp != protowire.BytesType {\n\t\t\treturn val, 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn val, 0, errDecode\n\t\t}\n\t\treturn protoreflect.ValueOfBytes(v), n, nil\n\tcase protoreflect.GroupKind:\n\t\tif wtyp != protowire.StartGroupType {\n\t\t\treturn val, 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeGroup(fd.Number(), b)\n\t\tif n < 0 {\n\t\t\treturn val, 0, errDecode\n\t\t}\n\t\treturn protoreflect.ValueOfBytes(v), n, nil\n\tdefault:\n\t\treturn val, 0, errUnknown\n\t}\n}\n\nfunc (o UnmarshalOptions) unmarshalList(b []byte, wtyp protowire.Type, list protoreflect.List, fd protoreflect.FieldDescriptor) (n int, err error) {\n\tswitch fd.Kind() {\n\tcase protoreflect.BoolKind:\n\t\tif wtyp == protowire.BytesType {\n\t\t\tbuf, n := protowire.ConsumeBytes(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn 0, errDecode\n\t\t\t}\n\t\t\tfor len(buf) > 0 {\n\t\t\t\tv, n := protowire.ConsumeVarint(buf)\n\t\t\t\tif n < 0 {\n\t\t\t\t\treturn 0, errDecode\n\t\t\t\t}\n\t\t\t\tbuf = buf[n:]\n\t\t\t\tlist.Append(protoreflect.ValueOfBool(protowire.DecodeBool(v)))\n\t\t\t}\n\t\t\treturn n, nil\n\t\t}\n\t\tif wtyp != protowire.VarintType {\n\t\t\treturn 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeVarint(b)\n\t\tif n < 0 {\n\t\t\treturn 0, errDecode\n\t\t}\n\t\tlist.Append(protoreflect.ValueOfBool(protowire.DecodeBool(v)))\n\t\treturn n, nil\n\tcase protoreflect.EnumKind:\n\t\tif wtyp == protowire.BytesType {\n\t\t\tbuf, n := protowire.ConsumeBytes(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn 0, errDecode\n\t\t\t}\n\t\t\tfor len(buf) > 0 {\n\t\t\t\tv, n := protowire.ConsumeVarint(buf)\n\t\t\t\tif n < 0 {\n\t\t\t\t\treturn 0, errDecode\n\t\t\t\t}\n\t\t\t\tbuf = buf[n:]\n\t\t\t\tlist.Append(protoreflect.ValueOfEnum(protoreflect.EnumNumber(v)))\n\t\t\t}\n\t\t\treturn n, nil\n\t\t}\n\t\tif wtyp != protowire.VarintType {\n\t\t\treturn 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeVarint(b)\n\t\tif n < 0 {\n\t\t\treturn 0, errDecode\n\t\t}\n\t\tlist.Append(protoreflect.ValueOfEnum(protoreflect.EnumNumber(v)))\n\t\treturn n, nil\n\tcase protoreflect.Int32Kind:\n\t\tif wtyp == protowire.BytesType {\n\t\t\tbuf, n := protowire.ConsumeBytes(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn 0, errDecode\n\t\t\t}\n\t\t\tfor len(buf) > 0 {\n\t\t\t\tv, n := protowire.ConsumeVarint(buf)\n\t\t\t\tif n < 0 {\n\t\t\t\t\treturn 0, errDecode\n\t\t\t\t}\n\t\t\t\tbuf = buf[n:]\n\t\t\t\tlist.Append(protoreflect.ValueOfInt32(int32(v)))\n\t\t\t}\n\t\t\treturn n, nil\n\t\t}\n\t\tif wtyp != protowire.VarintType {\n\t\t\treturn 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeVarint(b)\n\t\tif n < 0 {\n\t\t\treturn 0, errDecode\n\t\t}\n\t\tlist.Append(protoreflect.ValueOfInt32(int32(v)))\n\t\treturn n, nil\n\tcase protoreflect.Sint32Kind:\n\t\tif wtyp == protowire.BytesType {\n\t\t\tbuf, n := protowire.ConsumeBytes(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn 0, errDecode\n\t\t\t}\n\t\t\tfor len(buf) > 0 {\n\t\t\t\tv, n := protowire.ConsumeVarint(buf)\n\t\t\t\tif n < 0 {\n\t\t\t\t\treturn 0, errDecode\n\t\t\t\t}\n\t\t\t\tbuf = buf[n:]\n\t\t\t\tlist.Append(protoreflect.ValueOfInt32(int32(protowire.DecodeZigZag(v & math.MaxUint32))))\n\t\t\t}\n\t\t\treturn n, nil\n\t\t}\n\t\tif wtyp != protowire.VarintType {\n\t\t\treturn 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeVarint(b)\n\t\tif n < 0 {\n\t\t\treturn 0, errDecode\n\t\t}\n\t\tlist.Append(protoreflect.ValueOfInt32(int32(protowire.DecodeZigZag(v & math.MaxUint32))))\n\t\treturn n, nil\n\tcase protoreflect.Uint32Kind:\n\t\tif wtyp == protowire.BytesType {\n\t\t\tbuf, n := protowire.ConsumeBytes(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn 0, errDecode\n\t\t\t}\n\t\t\tfor len(buf) > 0 {\n\t\t\t\tv, n := protowire.ConsumeVarint(buf)\n\t\t\t\tif n < 0 {\n\t\t\t\t\treturn 0, errDecode\n\t\t\t\t}\n\t\t\t\tbuf = buf[n:]\n\t\t\t\tlist.Append(protoreflect.ValueOfUint32(uint32(v)))\n\t\t\t}\n\t\t\treturn n, nil\n\t\t}\n\t\tif wtyp != protowire.VarintType {\n\t\t\treturn 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeVarint(b)\n\t\tif n < 0 {\n\t\t\treturn 0, errDecode\n\t\t}\n\t\tlist.Append(protoreflect.ValueOfUint32(uint32(v)))\n\t\treturn n, nil\n\tcase protoreflect.Int64Kind:\n\t\tif wtyp == protowire.BytesType {\n\t\t\tbuf, n := protowire.ConsumeBytes(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn 0, errDecode\n\t\t\t}\n\t\t\tfor len(buf) > 0 {\n\t\t\t\tv, n := protowire.ConsumeVarint(buf)\n\t\t\t\tif n < 0 {\n\t\t\t\t\treturn 0, errDecode\n\t\t\t\t}\n\t\t\t\tbuf = buf[n:]\n\t\t\t\tlist.Append(protoreflect.ValueOfInt64(int64(v)))\n\t\t\t}\n\t\t\treturn n, nil\n\t\t}\n\t\tif wtyp != protowire.VarintType {\n\t\t\treturn 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeVarint(b)\n\t\tif n < 0 {\n\t\t\treturn 0, errDecode\n\t\t}\n\t\tlist.Append(protoreflect.ValueOfInt64(int64(v)))\n\t\treturn n, nil\n\tcase protoreflect.Sint64Kind:\n\t\tif wtyp == protowire.BytesType {\n\t\t\tbuf, n := protowire.ConsumeBytes(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn 0, errDecode\n\t\t\t}\n\t\t\tfor len(buf) > 0 {\n\t\t\t\tv, n := protowire.ConsumeVarint(buf)\n\t\t\t\tif n < 0 {\n\t\t\t\t\treturn 0, errDecode\n\t\t\t\t}\n\t\t\t\tbuf = buf[n:]\n\t\t\t\tlist.Append(protoreflect.ValueOfInt64(protowire.DecodeZigZag(v)))\n\t\t\t}\n\t\t\treturn n, nil\n\t\t}\n\t\tif wtyp != protowire.VarintType {\n\t\t\treturn 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeVarint(b)\n\t\tif n < 0 {\n\t\t\treturn 0, errDecode\n\t\t}\n\t\tlist.Append(protoreflect.ValueOfInt64(protowire.DecodeZigZag(v)))\n\t\treturn n, nil\n\tcase protoreflect.Uint64Kind:\n\t\tif wtyp == protowire.BytesType {\n\t\t\tbuf, n := protowire.ConsumeBytes(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn 0, errDecode\n\t\t\t}\n\t\t\tfor len(buf) > 0 {\n\t\t\t\tv, n := protowire.ConsumeVarint(buf)\n\t\t\t\tif n < 0 {\n\t\t\t\t\treturn 0, errDecode\n\t\t\t\t}\n\t\t\t\tbuf = buf[n:]\n\t\t\t\tlist.Append(protoreflect.ValueOfUint64(v))\n\t\t\t}\n\t\t\treturn n, nil\n\t\t}\n\t\tif wtyp != protowire.VarintType {\n\t\t\treturn 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeVarint(b)\n\t\tif n < 0 {\n\t\t\treturn 0, errDecode\n\t\t}\n\t\tlist.Append(protoreflect.ValueOfUint64(v))\n\t\treturn n, nil\n\tcase protoreflect.Sfixed32Kind:\n\t\tif wtyp == protowire.BytesType {\n\t\t\tbuf, n := protowire.ConsumeBytes(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn 0, errDecode\n\t\t\t}\n\t\t\tfor len(buf) > 0 {\n\t\t\t\tv, n := protowire.ConsumeFixed32(buf)\n\t\t\t\tif n < 0 {\n\t\t\t\t\treturn 0, errDecode\n\t\t\t\t}\n\t\t\t\tbuf = buf[n:]\n\t\t\t\tlist.Append(protoreflect.ValueOfInt32(int32(v)))\n\t\t\t}\n\t\t\treturn n, nil\n\t\t}\n\t\tif wtyp != protowire.Fixed32Type {\n\t\t\treturn 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeFixed32(b)\n\t\tif n < 0 {\n\t\t\treturn 0, errDecode\n\t\t}\n\t\tlist.Append(protoreflect.ValueOfInt32(int32(v)))\n\t\treturn n, nil\n\tcase protoreflect.Fixed32Kind:\n\t\tif wtyp == protowire.BytesType {\n\t\t\tbuf, n := protowire.ConsumeBytes(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn 0, errDecode\n\t\t\t}\n\t\t\tfor len(buf) > 0 {\n\t\t\t\tv, n := protowire.ConsumeFixed32(buf)\n\t\t\t\tif n < 0 {\n\t\t\t\t\treturn 0, errDecode\n\t\t\t\t}\n\t\t\t\tbuf = buf[n:]\n\t\t\t\tlist.Append(protoreflect.ValueOfUint32(uint32(v)))\n\t\t\t}\n\t\t\treturn n, nil\n\t\t}\n\t\tif wtyp != protowire.Fixed32Type {\n\t\t\treturn 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeFixed32(b)\n\t\tif n < 0 {\n\t\t\treturn 0, errDecode\n\t\t}\n\t\tlist.Append(protoreflect.ValueOfUint32(uint32(v)))\n\t\treturn n, nil\n\tcase protoreflect.FloatKind:\n\t\tif wtyp == protowire.BytesType {\n\t\t\tbuf, n := protowire.ConsumeBytes(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn 0, errDecode\n\t\t\t}\n\t\t\tfor len(buf) > 0 {\n\t\t\t\tv, n := protowire.ConsumeFixed32(buf)\n\t\t\t\tif n < 0 {\n\t\t\t\t\treturn 0, errDecode\n\t\t\t\t}\n\t\t\t\tbuf = buf[n:]\n\t\t\t\tlist.Append(protoreflect.ValueOfFloat32(math.Float32frombits(uint32(v))))\n\t\t\t}\n\t\t\treturn n, nil\n\t\t}\n\t\tif wtyp != protowire.Fixed32Type {\n\t\t\treturn 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeFixed32(b)\n\t\tif n < 0 {\n\t\t\treturn 0, errDecode\n\t\t}\n\t\tlist.Append(protoreflect.ValueOfFloat32(math.Float32frombits(uint32(v))))\n\t\treturn n, nil\n\tcase protoreflect.Sfixed64Kind:\n\t\tif wtyp == protowire.BytesType {\n\t\t\tbuf, n := protowire.ConsumeBytes(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn 0, errDecode\n\t\t\t}\n\t\t\tfor len(buf) > 0 {\n\t\t\t\tv, n := protowire.ConsumeFixed64(buf)\n\t\t\t\tif n < 0 {\n\t\t\t\t\treturn 0, errDecode\n\t\t\t\t}\n\t\t\t\tbuf = buf[n:]\n\t\t\t\tlist.Append(protoreflect.ValueOfInt64(int64(v)))\n\t\t\t}\n\t\t\treturn n, nil\n\t\t}\n\t\tif wtyp != protowire.Fixed64Type {\n\t\t\treturn 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeFixed64(b)\n\t\tif n < 0 {\n\t\t\treturn 0, errDecode\n\t\t}\n\t\tlist.Append(protoreflect.ValueOfInt64(int64(v)))\n\t\treturn n, nil\n\tcase protoreflect.Fixed64Kind:\n\t\tif wtyp == protowire.BytesType {\n\t\t\tbuf, n := protowire.ConsumeBytes(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn 0, errDecode\n\t\t\t}\n\t\t\tfor len(buf) > 0 {\n\t\t\t\tv, n := protowire.ConsumeFixed64(buf)\n\t\t\t\tif n < 0 {\n\t\t\t\t\treturn 0, errDecode\n\t\t\t\t}\n\t\t\t\tbuf = buf[n:]\n\t\t\t\tlist.Append(protoreflect.ValueOfUint64(v))\n\t\t\t}\n\t\t\treturn n, nil\n\t\t}\n\t\tif wtyp != protowire.Fixed64Type {\n\t\t\treturn 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeFixed64(b)\n\t\tif n < 0 {\n\t\t\treturn 0, errDecode\n\t\t}\n\t\tlist.Append(protoreflect.ValueOfUint64(v))\n\t\treturn n, nil\n\tcase protoreflect.DoubleKind:\n\t\tif wtyp == protowire.BytesType {\n\t\t\tbuf, n := protowire.ConsumeBytes(b)\n\t\t\tif n < 0 {\n\t\t\t\treturn 0, errDecode\n\t\t\t}\n\t\t\tfor len(buf) > 0 {\n\t\t\t\tv, n := protowire.ConsumeFixed64(buf)\n\t\t\t\tif n < 0 {\n\t\t\t\t\treturn 0, errDecode\n\t\t\t\t}\n\t\t\t\tbuf = buf[n:]\n\t\t\t\tlist.Append(protoreflect.ValueOfFloat64(math.Float64frombits(v)))\n\t\t\t}\n\t\t\treturn n, nil\n\t\t}\n\t\tif wtyp != protowire.Fixed64Type {\n\t\t\treturn 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeFixed64(b)\n\t\tif n < 0 {\n\t\t\treturn 0, errDecode\n\t\t}\n\t\tlist.Append(protoreflect.ValueOfFloat64(math.Float64frombits(v)))\n\t\treturn n, nil\n\tcase protoreflect.StringKind:\n\t\tif wtyp != protowire.BytesType {\n\t\t\treturn 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn 0, errDecode\n\t\t}\n\t\tif strs.EnforceUTF8(fd) && !utf8.Valid(v) {\n\t\t\treturn 0, errors.InvalidUTF8(string(fd.FullName()))\n\t\t}\n\t\tlist.Append(protoreflect.ValueOfString(string(v)))\n\t\treturn n, nil\n\tcase protoreflect.BytesKind:\n\t\tif wtyp != protowire.BytesType {\n\t\t\treturn 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn 0, errDecode\n\t\t}\n\t\tlist.Append(protoreflect.ValueOfBytes(append(emptyBuf[:], v...)))\n\t\treturn n, nil\n\tcase protoreflect.MessageKind:\n\t\tif wtyp != protowire.BytesType {\n\t\t\treturn 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeBytes(b)\n\t\tif n < 0 {\n\t\t\treturn 0, errDecode\n\t\t}\n\t\tm := list.NewElement()\n\t\tif err := o.unmarshalMessage(v, m.Message()); err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\tlist.Append(m)\n\t\treturn n, nil\n\tcase protoreflect.GroupKind:\n\t\tif wtyp != protowire.StartGroupType {\n\t\t\treturn 0, errUnknown\n\t\t}\n\t\tv, n := protowire.ConsumeGroup(fd.Number(), b)\n\t\tif n < 0 {\n\t\t\treturn 0, errDecode\n\t\t}\n\t\tm := list.NewElement()\n\t\tif err := o.unmarshalMessage(v, m.Message()); err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\tlist.Append(m)\n\t\treturn n, nil\n\tdefault:\n\t\treturn 0, errUnknown\n\t}\n}\n\n// We append to an empty array rather than a nil []byte to get non-nil zero-length byte slices.\nvar emptyBuf [0]byte\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/proto/doc.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package proto provides functions operating on protocol buffer messages.\n//\n// For documentation on protocol buffers in general, see:\n// https://protobuf.dev.\n//\n// For a tutorial on using protocol buffers with Go, see:\n// https://protobuf.dev/getting-started/gotutorial.\n//\n// For a guide to generated Go protocol buffer code, see:\n// https://protobuf.dev/reference/go/go-generated.\n//\n// # Binary serialization\n//\n// This package contains functions to convert to and from the wire format,\n// an efficient binary serialization of protocol buffers.\n//\n//   - [Size] reports the size of a message in the wire format.\n//\n//   - [Marshal] converts a message to the wire format.\n//     The [MarshalOptions] type provides more control over wire marshaling.\n//\n//   - [Unmarshal] converts a message from the wire format.\n//     The [UnmarshalOptions] type provides more control over wire unmarshaling.\n//\n// # Basic message operations\n//\n//   - [Clone] makes a deep copy of a message.\n//\n//   - [Merge] merges the content of a message into another.\n//\n//   - [Equal] compares two messages. For more control over comparisons\n//     and detailed reporting of differences, see package\n//     [google.golang.org/protobuf/testing/protocmp].\n//\n//   - [Reset] clears the content of a message.\n//\n//   - [CheckInitialized] reports whether all required fields in a message are set.\n//\n// # Optional scalar constructors\n//\n// The API for some generated messages represents optional scalar fields\n// as pointers to a value. For example, an optional string field has the\n// Go type *string.\n//\n//   - [Bool], [Int32], [Int64], [Uint32], [Uint64], [Float32], [Float64], and [String]\n//     take a value and return a pointer to a new instance of it,\n//     to simplify construction of optional field values.\n//\n// Generated enum types usually have an Enum method which performs the\n// same operation.\n//\n// Optional scalar fields are only supported in proto2.\n//\n// # Extension accessors\n//\n//   - [HasExtension], [GetExtension], [SetExtension], and [ClearExtension]\n//     access extension field values in a protocol buffer message.\n//\n// Extension fields are only supported in proto2.\n//\n// # Related packages\n//\n//   - Package [google.golang.org/protobuf/encoding/protojson] converts messages to\n//     and from JSON.\n//\n//   - Package [google.golang.org/protobuf/encoding/prototext] converts messages to\n//     and from the text format.\n//\n//   - Package [google.golang.org/protobuf/reflect/protoreflect] provides a\n//     reflection interface for protocol buffer data types.\n//\n//   - Package [google.golang.org/protobuf/testing/protocmp] provides features\n//     to compare protocol buffer messages with the [github.com/google/go-cmp/cmp]\n//     package.\n//\n//   - Package [google.golang.org/protobuf/types/dynamicpb] provides a dynamic\n//     message type, suitable for working with messages where the protocol buffer\n//     type is only known at runtime.\n//\n// This module contains additional packages for more specialized use cases.\n// Consult the individual package documentation for details.\npackage proto\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/proto/encode.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/encoding/messageset\"\n\t\"google.golang.org/protobuf/internal/order\"\n\t\"google.golang.org/protobuf/internal/pragma\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n\n\tprotoerrors \"google.golang.org/protobuf/internal/errors\"\n)\n\n// MarshalOptions configures the marshaler.\n//\n// Example usage:\n//\n//\tb, err := MarshalOptions{Deterministic: true}.Marshal(m)\ntype MarshalOptions struct {\n\tpragma.NoUnkeyedLiterals\n\n\t// AllowPartial allows messages that have missing required fields to marshal\n\t// without returning an error. If AllowPartial is false (the default),\n\t// Marshal will return an error if there are any missing required fields.\n\tAllowPartial bool\n\n\t// Deterministic controls whether the same message will always be\n\t// serialized to the same bytes within the same binary.\n\t//\n\t// Setting this option guarantees that repeated serialization of\n\t// the same message will return the same bytes, and that different\n\t// processes of the same binary (which may be executing on different\n\t// machines) will serialize equal messages to the same bytes.\n\t// It has no effect on the resulting size of the encoded message compared\n\t// to a non-deterministic marshal.\n\t//\n\t// Note that the deterministic serialization is NOT canonical across\n\t// languages. It is not guaranteed to remain stable over time. It is\n\t// unstable across different builds with schema changes due to unknown\n\t// fields. Users who need canonical serialization (e.g., persistent\n\t// storage in a canonical form, fingerprinting, etc.) must define\n\t// their own canonicalization specification and implement their own\n\t// serializer rather than relying on this API.\n\t//\n\t// If deterministic serialization is requested, map entries will be\n\t// sorted by keys in lexographical order. This is an implementation\n\t// detail and subject to change.\n\tDeterministic bool\n\n\t// UseCachedSize indicates that the result of a previous Size call\n\t// may be reused.\n\t//\n\t// Setting this option asserts that:\n\t//\n\t// 1. Size has previously been called on this message with identical\n\t// options (except for UseCachedSize itself).\n\t//\n\t// 2. The message and all its submessages have not changed in any\n\t// way since the Size call.\n\t//\n\t// If either of these invariants is violated,\n\t// the results are undefined and may include panics or corrupted output.\n\t//\n\t// Implementations MAY take this option into account to provide\n\t// better performance, but there is no guarantee that they will do so.\n\t// There is absolutely no guarantee that Size followed by Marshal with\n\t// UseCachedSize set will perform equivalently to Marshal alone.\n\tUseCachedSize bool\n}\n\n// flags turns the specified MarshalOptions (user-facing) into\n// protoiface.MarshalInputFlags (used internally by the marshaler).\n//\n// See impl.marshalOptions.Options for the inverse operation.\nfunc (o MarshalOptions) flags() protoiface.MarshalInputFlags {\n\tvar flags protoiface.MarshalInputFlags\n\n\t// Note: o.AllowPartial is always forced to true by MarshalOptions.marshal,\n\t// which is why it is not a part of MarshalInputFlags.\n\n\tif o.Deterministic {\n\t\tflags |= protoiface.MarshalDeterministic\n\t}\n\n\tif o.UseCachedSize {\n\t\tflags |= protoiface.MarshalUseCachedSize\n\t}\n\n\treturn flags\n}\n\n// Marshal returns the wire-format encoding of m.\n//\n// This is the most common entry point for encoding a Protobuf message.\n//\n// See the [MarshalOptions] type if you need more control.\nfunc Marshal(m Message) ([]byte, error) {\n\t// Treat nil message interface as an empty message; nothing to output.\n\tif m == nil {\n\t\treturn nil, nil\n\t}\n\n\tout, err := MarshalOptions{}.marshal(nil, m.ProtoReflect())\n\tif len(out.Buf) == 0 && err == nil {\n\t\tout.Buf = emptyBytesForMessage(m)\n\t}\n\treturn out.Buf, err\n}\n\n// Marshal returns the wire-format encoding of m.\nfunc (o MarshalOptions) Marshal(m Message) ([]byte, error) {\n\t// Treat nil message interface as an empty message; nothing to output.\n\tif m == nil {\n\t\treturn nil, nil\n\t}\n\n\tout, err := o.marshal(nil, m.ProtoReflect())\n\tif len(out.Buf) == 0 && err == nil {\n\t\tout.Buf = emptyBytesForMessage(m)\n\t}\n\treturn out.Buf, err\n}\n\n// emptyBytesForMessage returns a nil buffer if and only if m is invalid,\n// otherwise it returns a non-nil empty buffer.\n//\n// This is to assist the edge-case where user-code does the following:\n//\n//\tm1.OptionalBytes, _ = proto.Marshal(m2)\n//\n// where they expect the proto2 \"optional_bytes\" field to be populated\n// if any only if m2 is a valid message.\nfunc emptyBytesForMessage(m Message) []byte {\n\tif m == nil || !m.ProtoReflect().IsValid() {\n\t\treturn nil\n\t}\n\treturn emptyBuf[:]\n}\n\n// MarshalAppend appends the wire-format encoding of m to b,\n// returning the result.\n//\n// This is a less common entry point than [Marshal], which is only needed if you\n// need to supply your own buffers for performance reasons.\nfunc (o MarshalOptions) MarshalAppend(b []byte, m Message) ([]byte, error) {\n\t// Treat nil message interface as an empty message; nothing to append.\n\tif m == nil {\n\t\treturn b, nil\n\t}\n\n\tout, err := o.marshal(b, m.ProtoReflect())\n\treturn out.Buf, err\n}\n\n// MarshalState returns the wire-format encoding of a message.\n//\n// This method permits fine-grained control over the marshaler.\n// Most users should use [Marshal] instead.\nfunc (o MarshalOptions) MarshalState(in protoiface.MarshalInput) (protoiface.MarshalOutput, error) {\n\treturn o.marshal(in.Buf, in.Message)\n}\n\n// marshal is a centralized function that all marshal operations go through.\n// For profiling purposes, avoid changing the name of this function or\n// introducing other code paths for marshal that do not go through this.\nfunc (o MarshalOptions) marshal(b []byte, m protoreflect.Message) (out protoiface.MarshalOutput, err error) {\n\tallowPartial := o.AllowPartial\n\to.AllowPartial = true\n\tif methods := protoMethods(m); methods != nil && methods.Marshal != nil &&\n\t\t!(o.Deterministic && methods.Flags&protoiface.SupportMarshalDeterministic == 0) {\n\t\tin := protoiface.MarshalInput{\n\t\t\tMessage: m,\n\t\t\tBuf:     b,\n\t\t\tFlags:   o.flags(),\n\t\t}\n\t\tif methods.Size != nil {\n\t\t\tsout := methods.Size(protoiface.SizeInput{\n\t\t\t\tMessage: m,\n\t\t\t\tFlags:   in.Flags,\n\t\t\t})\n\t\t\tif cap(b) < len(b)+sout.Size {\n\t\t\t\tin.Buf = make([]byte, len(b), growcap(cap(b), len(b)+sout.Size))\n\t\t\t\tcopy(in.Buf, b)\n\t\t\t}\n\t\t\tin.Flags |= protoiface.MarshalUseCachedSize\n\t\t}\n\t\tout, err = methods.Marshal(in)\n\t} else {\n\t\tout.Buf, err = o.marshalMessageSlow(b, m)\n\t}\n\tif err != nil {\n\t\tvar mismatch *protoerrors.SizeMismatchError\n\t\tif errors.As(err, &mismatch) {\n\t\t\treturn out, fmt.Errorf(\"marshaling %s: %v\", string(m.Descriptor().FullName()), err)\n\t\t}\n\t\treturn out, err\n\t}\n\tif allowPartial {\n\t\treturn out, nil\n\t}\n\treturn out, checkInitialized(m)\n}\n\nfunc (o MarshalOptions) marshalMessage(b []byte, m protoreflect.Message) ([]byte, error) {\n\tout, err := o.marshal(b, m)\n\treturn out.Buf, err\n}\n\n// growcap scales up the capacity of a slice.\n//\n// Given a slice with a current capacity of oldcap and a desired\n// capacity of wantcap, growcap returns a new capacity >= wantcap.\n//\n// The algorithm is mostly identical to the one used by append as of Go 1.14.\nfunc growcap(oldcap, wantcap int) (newcap int) {\n\tif wantcap > oldcap*2 {\n\t\tnewcap = wantcap\n\t} else if oldcap < 1024 {\n\t\t// The Go 1.14 runtime takes this case when len(s) < 1024,\n\t\t// not when cap(s) < 1024. The difference doesn't seem\n\t\t// significant here.\n\t\tnewcap = oldcap * 2\n\t} else {\n\t\tnewcap = oldcap\n\t\tfor 0 < newcap && newcap < wantcap {\n\t\t\tnewcap += newcap / 4\n\t\t}\n\t\tif newcap <= 0 {\n\t\t\tnewcap = wantcap\n\t\t}\n\t}\n\treturn newcap\n}\n\nfunc (o MarshalOptions) marshalMessageSlow(b []byte, m protoreflect.Message) ([]byte, error) {\n\tif messageset.IsMessageSet(m.Descriptor()) {\n\t\treturn o.marshalMessageSet(b, m)\n\t}\n\tfieldOrder := order.AnyFieldOrder\n\tif o.Deterministic {\n\t\t// TODO: This should use a more natural ordering like NumberFieldOrder,\n\t\t// but doing so breaks golden tests that make invalid assumption about\n\t\t// output stability of this implementation.\n\t\tfieldOrder = order.LegacyFieldOrder\n\t}\n\tvar err error\n\torder.RangeFields(m, fieldOrder, func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool {\n\t\tb, err = o.marshalField(b, fd, v)\n\t\treturn err == nil\n\t})\n\tif err != nil {\n\t\treturn b, err\n\t}\n\tb = append(b, m.GetUnknown()...)\n\treturn b, nil\n}\n\nfunc (o MarshalOptions) marshalField(b []byte, fd protoreflect.FieldDescriptor, value protoreflect.Value) ([]byte, error) {\n\tswitch {\n\tcase fd.IsList():\n\t\treturn o.marshalList(b, fd, value.List())\n\tcase fd.IsMap():\n\t\treturn o.marshalMap(b, fd, value.Map())\n\tdefault:\n\t\tb = protowire.AppendTag(b, fd.Number(), wireTypes[fd.Kind()])\n\t\treturn o.marshalSingular(b, fd, value)\n\t}\n}\n\nfunc (o MarshalOptions) marshalList(b []byte, fd protoreflect.FieldDescriptor, list protoreflect.List) ([]byte, error) {\n\tif fd.IsPacked() && list.Len() > 0 {\n\t\tb = protowire.AppendTag(b, fd.Number(), protowire.BytesType)\n\t\tb, pos := appendSpeculativeLength(b)\n\t\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\t\tvar err error\n\t\t\tb, err = o.marshalSingular(b, fd, list.Get(i))\n\t\t\tif err != nil {\n\t\t\t\treturn b, err\n\t\t\t}\n\t\t}\n\t\tb = finishSpeculativeLength(b, pos)\n\t\treturn b, nil\n\t}\n\n\tkind := fd.Kind()\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tvar err error\n\t\tb = protowire.AppendTag(b, fd.Number(), wireTypes[kind])\n\t\tb, err = o.marshalSingular(b, fd, list.Get(i))\n\t\tif err != nil {\n\t\t\treturn b, err\n\t\t}\n\t}\n\treturn b, nil\n}\n\nfunc (o MarshalOptions) marshalMap(b []byte, fd protoreflect.FieldDescriptor, mapv protoreflect.Map) ([]byte, error) {\n\tkeyf := fd.MapKey()\n\tvalf := fd.MapValue()\n\tkeyOrder := order.AnyKeyOrder\n\tif o.Deterministic {\n\t\tkeyOrder = order.GenericKeyOrder\n\t}\n\tvar err error\n\torder.RangeEntries(mapv, keyOrder, func(key protoreflect.MapKey, value protoreflect.Value) bool {\n\t\tb = protowire.AppendTag(b, fd.Number(), protowire.BytesType)\n\t\tvar pos int\n\t\tb, pos = appendSpeculativeLength(b)\n\n\t\tb, err = o.marshalField(b, keyf, key.Value())\n\t\tif err != nil {\n\t\t\treturn false\n\t\t}\n\t\tb, err = o.marshalField(b, valf, value)\n\t\tif err != nil {\n\t\t\treturn false\n\t\t}\n\t\tb = finishSpeculativeLength(b, pos)\n\t\treturn true\n\t})\n\treturn b, err\n}\n\n// When encoding length-prefixed fields, we speculatively set aside some number of bytes\n// for the length, encode the data, and then encode the length (shifting the data if necessary\n// to make room).\nconst speculativeLength = 1\n\nfunc appendSpeculativeLength(b []byte) ([]byte, int) {\n\tpos := len(b)\n\tb = append(b, \"\\x00\\x00\\x00\\x00\"[:speculativeLength]...)\n\treturn b, pos\n}\n\nfunc finishSpeculativeLength(b []byte, pos int) []byte {\n\tmlen := len(b) - pos - speculativeLength\n\tmsiz := protowire.SizeVarint(uint64(mlen))\n\tif msiz != speculativeLength {\n\t\tfor i := 0; i < msiz-speculativeLength; i++ {\n\t\t\tb = append(b, 0)\n\t\t}\n\t\tcopy(b[pos+msiz:], b[pos+speculativeLength:])\n\t\tb = b[:pos+msiz+mlen]\n\t}\n\tprotowire.AppendVarint(b[:pos], uint64(mlen))\n\treturn b\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/proto/encode_gen.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by generate-types. DO NOT EDIT.\n\npackage proto\n\nimport (\n\t\"math\"\n\t\"unicode/utf8\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/internal/strs\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\nvar wireTypes = map[protoreflect.Kind]protowire.Type{\n\tprotoreflect.BoolKind:     protowire.VarintType,\n\tprotoreflect.EnumKind:     protowire.VarintType,\n\tprotoreflect.Int32Kind:    protowire.VarintType,\n\tprotoreflect.Sint32Kind:   protowire.VarintType,\n\tprotoreflect.Uint32Kind:   protowire.VarintType,\n\tprotoreflect.Int64Kind:    protowire.VarintType,\n\tprotoreflect.Sint64Kind:   protowire.VarintType,\n\tprotoreflect.Uint64Kind:   protowire.VarintType,\n\tprotoreflect.Sfixed32Kind: protowire.Fixed32Type,\n\tprotoreflect.Fixed32Kind:  protowire.Fixed32Type,\n\tprotoreflect.FloatKind:    protowire.Fixed32Type,\n\tprotoreflect.Sfixed64Kind: protowire.Fixed64Type,\n\tprotoreflect.Fixed64Kind:  protowire.Fixed64Type,\n\tprotoreflect.DoubleKind:   protowire.Fixed64Type,\n\tprotoreflect.StringKind:   protowire.BytesType,\n\tprotoreflect.BytesKind:    protowire.BytesType,\n\tprotoreflect.MessageKind:  protowire.BytesType,\n\tprotoreflect.GroupKind:    protowire.StartGroupType,\n}\n\nfunc (o MarshalOptions) marshalSingular(b []byte, fd protoreflect.FieldDescriptor, v protoreflect.Value) ([]byte, error) {\n\tswitch fd.Kind() {\n\tcase protoreflect.BoolKind:\n\t\tb = protowire.AppendVarint(b, protowire.EncodeBool(v.Bool()))\n\tcase protoreflect.EnumKind:\n\t\tb = protowire.AppendVarint(b, uint64(v.Enum()))\n\tcase protoreflect.Int32Kind:\n\t\tb = protowire.AppendVarint(b, uint64(int32(v.Int())))\n\tcase protoreflect.Sint32Kind:\n\t\tb = protowire.AppendVarint(b, protowire.EncodeZigZag(int64(int32(v.Int()))))\n\tcase protoreflect.Uint32Kind:\n\t\tb = protowire.AppendVarint(b, uint64(uint32(v.Uint())))\n\tcase protoreflect.Int64Kind:\n\t\tb = protowire.AppendVarint(b, uint64(v.Int()))\n\tcase protoreflect.Sint64Kind:\n\t\tb = protowire.AppendVarint(b, protowire.EncodeZigZag(v.Int()))\n\tcase protoreflect.Uint64Kind:\n\t\tb = protowire.AppendVarint(b, v.Uint())\n\tcase protoreflect.Sfixed32Kind:\n\t\tb = protowire.AppendFixed32(b, uint32(v.Int()))\n\tcase protoreflect.Fixed32Kind:\n\t\tb = protowire.AppendFixed32(b, uint32(v.Uint()))\n\tcase protoreflect.FloatKind:\n\t\tb = protowire.AppendFixed32(b, math.Float32bits(float32(v.Float())))\n\tcase protoreflect.Sfixed64Kind:\n\t\tb = protowire.AppendFixed64(b, uint64(v.Int()))\n\tcase protoreflect.Fixed64Kind:\n\t\tb = protowire.AppendFixed64(b, v.Uint())\n\tcase protoreflect.DoubleKind:\n\t\tb = protowire.AppendFixed64(b, math.Float64bits(v.Float()))\n\tcase protoreflect.StringKind:\n\t\tif strs.EnforceUTF8(fd) && !utf8.ValidString(v.String()) {\n\t\t\treturn b, errors.InvalidUTF8(string(fd.FullName()))\n\t\t}\n\t\tb = protowire.AppendString(b, v.String())\n\tcase protoreflect.BytesKind:\n\t\tb = protowire.AppendBytes(b, v.Bytes())\n\tcase protoreflect.MessageKind:\n\t\tvar pos int\n\t\tvar err error\n\t\tb, pos = appendSpeculativeLength(b)\n\t\tb, err = o.marshalMessage(b, v.Message())\n\t\tif err != nil {\n\t\t\treturn b, err\n\t\t}\n\t\tb = finishSpeculativeLength(b, pos)\n\tcase protoreflect.GroupKind:\n\t\tvar err error\n\t\tb, err = o.marshalMessage(b, v.Message())\n\t\tif err != nil {\n\t\t\treturn b, err\n\t\t}\n\t\tb = protowire.AppendVarint(b, protowire.EncodeTag(fd.Number(), protowire.EndGroupType))\n\tdefault:\n\t\treturn b, errors.New(\"invalid kind %v\", fd.Kind())\n\t}\n\treturn b, nil\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/proto/equal.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\nimport (\n\t\"reflect\"\n\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n)\n\n// Equal reports whether two messages are equal,\n// by recursively comparing the fields of the message.\n//\n//   - Bytes fields are equal if they contain identical bytes.\n//     Empty bytes (regardless of nil-ness) are considered equal.\n//\n//   - Floating-point fields are equal if they contain the same value.\n//     Unlike the == operator, a NaN is equal to another NaN.\n//\n//   - Other scalar fields are equal if they contain the same value.\n//\n//   - Message fields are equal if they have\n//     the same set of populated known and extension field values, and\n//     the same set of unknown fields values.\n//\n//   - Lists are equal if they are the same length and\n//     each corresponding element is equal.\n//\n//   - Maps are equal if they have the same set of keys and\n//     the corresponding value for each key is equal.\n//\n// An invalid message is not equal to a valid message.\n// An invalid message is only equal to another invalid message of the\n// same type. An invalid message often corresponds to a nil pointer\n// of the concrete message type. For example, (*pb.M)(nil) is not equal\n// to &pb.M{}.\n// If two valid messages marshal to the same bytes under deterministic\n// serialization, then Equal is guaranteed to report true.\nfunc Equal(x, y Message) bool {\n\tif x == nil || y == nil {\n\t\treturn x == nil && y == nil\n\t}\n\tif reflect.TypeOf(x).Kind() == reflect.Ptr && x == y {\n\t\t// Avoid an expensive comparison if both inputs are identical pointers.\n\t\treturn true\n\t}\n\tmx := x.ProtoReflect()\n\tmy := y.ProtoReflect()\n\tif mx.IsValid() != my.IsValid() {\n\t\treturn false\n\t}\n\n\t// Only one of the messages needs to implement the fast-path for it to work.\n\tpmx := protoMethods(mx)\n\tpmy := protoMethods(my)\n\tif pmx != nil && pmy != nil && pmx.Equal != nil && pmy.Equal != nil {\n\t\treturn pmx.Equal(protoiface.EqualInput{MessageA: mx, MessageB: my}).Equal\n\t}\n\n\tvx := protoreflect.ValueOfMessage(mx)\n\tvy := protoreflect.ValueOfMessage(my)\n\treturn vx.Equal(vy)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/proto/extension.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\nimport (\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\n// HasExtension reports whether an extension field is populated.\n// It returns false if m is invalid or if xt does not extend m.\nfunc HasExtension(m Message, xt protoreflect.ExtensionType) bool {\n\t// Treat nil message interface or descriptor as an empty message; no populated\n\t// fields.\n\tif m == nil || xt == nil {\n\t\treturn false\n\t}\n\n\t// As a special-case, we reports invalid or mismatching descriptors\n\t// as always not being populated (since they aren't).\n\tmr := m.ProtoReflect()\n\txd := xt.TypeDescriptor()\n\tif mr.Descriptor() != xd.ContainingMessage() {\n\t\treturn false\n\t}\n\n\treturn mr.Has(xd)\n}\n\n// ClearExtension clears an extension field such that subsequent\n// [HasExtension] calls return false.\n// It panics if m is invalid or if xt does not extend m.\nfunc ClearExtension(m Message, xt protoreflect.ExtensionType) {\n\tm.ProtoReflect().Clear(xt.TypeDescriptor())\n}\n\n// GetExtension retrieves the value for an extension field.\n// If the field is unpopulated, it returns the default value for\n// scalars and an immutable, empty value for lists or messages.\n// It panics if xt does not extend m.\n//\n// The type of the value is dependent on the field type of the extension.\n// For extensions generated by protoc-gen-go, the Go type is as follows:\n//\n//\t╔═══════════════════╤═════════════════════════╗\n//\t║ Go type           │ Protobuf kind           ║\n//\t╠═══════════════════╪═════════════════════════╣\n//\t║ bool              │ bool                    ║\n//\t║ int32             │ int32, sint32, sfixed32 ║\n//\t║ int64             │ int64, sint64, sfixed64 ║\n//\t║ uint32            │ uint32, fixed32         ║\n//\t║ uint64            │ uint64, fixed64         ║\n//\t║ float32           │ float                   ║\n//\t║ float64           │ double                  ║\n//\t║ string            │ string                  ║\n//\t║ []byte            │ bytes                   ║\n//\t║ protoreflect.Enum │ enum                    ║\n//\t║ proto.Message     │ message, group          ║\n//\t╚═══════════════════╧═════════════════════════╝\n//\n// The protoreflect.Enum and proto.Message types are the concrete Go type\n// associated with the named enum or message. Repeated fields are represented\n// using a Go slice of the base element type.\n//\n// If a generated extension descriptor variable is directly passed to\n// GetExtension, then the call should be followed immediately by a\n// type assertion to the expected output value. For example:\n//\n//\tmm := proto.GetExtension(m, foopb.E_MyExtension).(*foopb.MyMessage)\n//\n// This pattern enables static analysis tools to verify that the asserted type\n// matches the Go type associated with the extension field and\n// also enables a possible future migration to a type-safe extension API.\n//\n// Since singular messages are the most common extension type, the pattern of\n// calling HasExtension followed by GetExtension may be simplified to:\n//\n//\tif mm := proto.GetExtension(m, foopb.E_MyExtension).(*foopb.MyMessage); mm != nil {\n//\t    ... // make use of mm\n//\t}\n//\n// The mm variable is non-nil if and only if HasExtension reports true.\nfunc GetExtension(m Message, xt protoreflect.ExtensionType) any {\n\t// Treat nil message interface as an empty message; return the default.\n\tif m == nil {\n\t\treturn xt.InterfaceOf(xt.Zero())\n\t}\n\n\treturn xt.InterfaceOf(m.ProtoReflect().Get(xt.TypeDescriptor()))\n}\n\n// SetExtension stores the value of an extension field.\n// It panics if m is invalid, xt does not extend m, or if type of v\n// is invalid for the specified extension field.\n//\n// The type of the value is dependent on the field type of the extension.\n// For extensions generated by protoc-gen-go, the Go type is as follows:\n//\n//\t╔═══════════════════╤═════════════════════════╗\n//\t║ Go type           │ Protobuf kind           ║\n//\t╠═══════════════════╪═════════════════════════╣\n//\t║ bool              │ bool                    ║\n//\t║ int32             │ int32, sint32, sfixed32 ║\n//\t║ int64             │ int64, sint64, sfixed64 ║\n//\t║ uint32            │ uint32, fixed32         ║\n//\t║ uint64            │ uint64, fixed64         ║\n//\t║ float32           │ float                   ║\n//\t║ float64           │ double                  ║\n//\t║ string            │ string                  ║\n//\t║ []byte            │ bytes                   ║\n//\t║ protoreflect.Enum │ enum                    ║\n//\t║ proto.Message     │ message, group          ║\n//\t╚═══════════════════╧═════════════════════════╝\n//\n// The protoreflect.Enum and proto.Message types are the concrete Go type\n// associated with the named enum or message. Repeated fields are represented\n// using a Go slice of the base element type.\n//\n// If a generated extension descriptor variable is directly passed to\n// SetExtension (e.g., foopb.E_MyExtension), then the value should be a\n// concrete type that matches the expected Go type for the extension descriptor\n// so that static analysis tools can verify type correctness.\n// This also enables a possible future migration to a type-safe extension API.\nfunc SetExtension(m Message, xt protoreflect.ExtensionType, v any) {\n\txd := xt.TypeDescriptor()\n\tpv := xt.ValueOf(v)\n\n\t// Specially treat an invalid list, map, or message as clear.\n\tisValid := true\n\tswitch {\n\tcase xd.IsList():\n\t\tisValid = pv.List().IsValid()\n\tcase xd.IsMap():\n\t\tisValid = pv.Map().IsValid()\n\tcase xd.Message() != nil:\n\t\tisValid = pv.Message().IsValid()\n\t}\n\tif !isValid {\n\t\tm.ProtoReflect().Clear(xd)\n\t\treturn\n\t}\n\n\tm.ProtoReflect().Set(xd, pv)\n}\n\n// RangeExtensions iterates over every populated extension field in m in an\n// undefined order, calling f for each extension type and value encountered.\n// It returns immediately if f returns false.\n// While iterating, mutating operations may only be performed\n// on the current extension field.\nfunc RangeExtensions(m Message, f func(protoreflect.ExtensionType, any) bool) {\n\t// Treat nil message interface as an empty message; nothing to range over.\n\tif m == nil {\n\t\treturn\n\t}\n\n\tm.ProtoReflect().Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool {\n\t\tif fd.IsExtension() {\n\t\t\txt := fd.(protoreflect.ExtensionTypeDescriptor).Type()\n\t\t\tvi := xt.InterfaceOf(v)\n\t\t\treturn f(xt, vi)\n\t\t}\n\t\treturn true\n\t})\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/proto/merge.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\nimport (\n\t\"fmt\"\n\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n)\n\n// Merge merges src into dst, which must be a message with the same descriptor.\n//\n// Populated scalar fields in src are copied to dst, while populated\n// singular messages in src are merged into dst by recursively calling Merge.\n// The elements of every list field in src is appended to the corresponded\n// list fields in dst. The entries of every map field in src is copied into\n// the corresponding map field in dst, possibly replacing existing entries.\n// The unknown fields of src are appended to the unknown fields of dst.\n//\n// It is semantically equivalent to unmarshaling the encoded form of src\n// into dst with the [UnmarshalOptions.Merge] option specified.\nfunc Merge(dst, src Message) {\n\t// TODO: Should nil src be treated as semantically equivalent to a\n\t// untyped, read-only, empty message? What about a nil dst?\n\n\tdstMsg, srcMsg := dst.ProtoReflect(), src.ProtoReflect()\n\tif dstMsg.Descriptor() != srcMsg.Descriptor() {\n\t\tif got, want := dstMsg.Descriptor().FullName(), srcMsg.Descriptor().FullName(); got != want {\n\t\t\tpanic(fmt.Sprintf(\"descriptor mismatch: %v != %v\", got, want))\n\t\t}\n\t\tpanic(\"descriptor mismatch\")\n\t}\n\tmergeOptions{}.mergeMessage(dstMsg, srcMsg)\n}\n\n// Clone returns a deep copy of m.\n// If the top-level message is invalid, it returns an invalid message as well.\nfunc Clone(m Message) Message {\n\t// NOTE: Most usages of Clone assume the following properties:\n\t//\tt := reflect.TypeOf(m)\n\t//\tt == reflect.TypeOf(m.ProtoReflect().New().Interface())\n\t//\tt == reflect.TypeOf(m.ProtoReflect().Type().Zero().Interface())\n\t//\n\t// Embedding protobuf messages breaks this since the parent type will have\n\t// a forwarded ProtoReflect method, but the Interface method will return\n\t// the underlying embedded message type.\n\tif m == nil {\n\t\treturn nil\n\t}\n\tsrc := m.ProtoReflect()\n\tif !src.IsValid() {\n\t\treturn src.Type().Zero().Interface()\n\t}\n\tdst := src.New()\n\tmergeOptions{}.mergeMessage(dst, src)\n\treturn dst.Interface()\n}\n\n// mergeOptions provides a namespace for merge functions, and can be\n// exported in the future if we add user-visible merge options.\ntype mergeOptions struct{}\n\nfunc (o mergeOptions) mergeMessage(dst, src protoreflect.Message) {\n\tmethods := protoMethods(dst)\n\tif methods != nil && methods.Merge != nil {\n\t\tin := protoiface.MergeInput{\n\t\t\tDestination: dst,\n\t\t\tSource:      src,\n\t\t}\n\t\tout := methods.Merge(in)\n\t\tif out.Flags&protoiface.MergeComplete != 0 {\n\t\t\treturn\n\t\t}\n\t}\n\n\tif !dst.IsValid() {\n\t\tpanic(fmt.Sprintf(\"cannot merge into invalid %v message\", dst.Descriptor().FullName()))\n\t}\n\n\tsrc.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool {\n\t\tswitch {\n\t\tcase fd.IsList():\n\t\t\to.mergeList(dst.Mutable(fd).List(), v.List(), fd)\n\t\tcase fd.IsMap():\n\t\t\to.mergeMap(dst.Mutable(fd).Map(), v.Map(), fd.MapValue())\n\t\tcase fd.Message() != nil:\n\t\t\to.mergeMessage(dst.Mutable(fd).Message(), v.Message())\n\t\tcase fd.Kind() == protoreflect.BytesKind:\n\t\t\tdst.Set(fd, o.cloneBytes(v))\n\t\tdefault:\n\t\t\tdst.Set(fd, v)\n\t\t}\n\t\treturn true\n\t})\n\n\tif len(src.GetUnknown()) > 0 {\n\t\tdst.SetUnknown(append(dst.GetUnknown(), src.GetUnknown()...))\n\t}\n}\n\nfunc (o mergeOptions) mergeList(dst, src protoreflect.List, fd protoreflect.FieldDescriptor) {\n\t// Merge semantics appends to the end of the existing list.\n\tfor i, n := 0, src.Len(); i < n; i++ {\n\t\tswitch v := src.Get(i); {\n\t\tcase fd.Message() != nil:\n\t\t\tdstv := dst.NewElement()\n\t\t\to.mergeMessage(dstv.Message(), v.Message())\n\t\t\tdst.Append(dstv)\n\t\tcase fd.Kind() == protoreflect.BytesKind:\n\t\t\tdst.Append(o.cloneBytes(v))\n\t\tdefault:\n\t\t\tdst.Append(v)\n\t\t}\n\t}\n}\n\nfunc (o mergeOptions) mergeMap(dst, src protoreflect.Map, fd protoreflect.FieldDescriptor) {\n\t// Merge semantics replaces, rather than merges into existing entries.\n\tsrc.Range(func(k protoreflect.MapKey, v protoreflect.Value) bool {\n\t\tswitch {\n\t\tcase fd.Message() != nil:\n\t\t\tdstv := dst.NewValue()\n\t\t\to.mergeMessage(dstv.Message(), v.Message())\n\t\t\tdst.Set(k, dstv)\n\t\tcase fd.Kind() == protoreflect.BytesKind:\n\t\t\tdst.Set(k, o.cloneBytes(v))\n\t\tdefault:\n\t\t\tdst.Set(k, v)\n\t\t}\n\t\treturn true\n\t})\n}\n\nfunc (o mergeOptions) cloneBytes(v protoreflect.Value) protoreflect.Value {\n\treturn protoreflect.ValueOfBytes(append([]byte{}, v.Bytes()...))\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/proto/messageset.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\nimport (\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/encoding/messageset\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/internal/flags\"\n\t\"google.golang.org/protobuf/internal/order\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/reflect/protoregistry\"\n)\n\nfunc (o MarshalOptions) sizeMessageSet(m protoreflect.Message) (size int) {\n\tm.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool {\n\t\tsize += messageset.SizeField(fd.Number())\n\t\tsize += protowire.SizeTag(messageset.FieldMessage)\n\t\tsize += protowire.SizeBytes(o.size(v.Message()))\n\t\treturn true\n\t})\n\tsize += messageset.SizeUnknown(m.GetUnknown())\n\treturn size\n}\n\nfunc (o MarshalOptions) marshalMessageSet(b []byte, m protoreflect.Message) ([]byte, error) {\n\tif !flags.ProtoLegacy {\n\t\treturn b, errors.New(\"no support for message_set_wire_format\")\n\t}\n\tfieldOrder := order.AnyFieldOrder\n\tif o.Deterministic {\n\t\tfieldOrder = order.NumberFieldOrder\n\t}\n\tvar err error\n\torder.RangeFields(m, fieldOrder, func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool {\n\t\tb, err = o.marshalMessageSetField(b, fd, v)\n\t\treturn err == nil\n\t})\n\tif err != nil {\n\t\treturn b, err\n\t}\n\treturn messageset.AppendUnknown(b, m.GetUnknown())\n}\n\nfunc (o MarshalOptions) marshalMessageSetField(b []byte, fd protoreflect.FieldDescriptor, value protoreflect.Value) ([]byte, error) {\n\tb = messageset.AppendFieldStart(b, fd.Number())\n\tb = protowire.AppendTag(b, messageset.FieldMessage, protowire.BytesType)\n\tcalculatedSize := o.Size(value.Message().Interface())\n\tb = protowire.AppendVarint(b, uint64(calculatedSize))\n\tbefore := len(b)\n\tb, err := o.marshalMessage(b, value.Message())\n\tif err != nil {\n\t\treturn b, err\n\t}\n\tif measuredSize := len(b) - before; calculatedSize != measuredSize {\n\t\treturn nil, errors.MismatchedSizeCalculation(calculatedSize, measuredSize)\n\t}\n\tb = messageset.AppendFieldEnd(b)\n\treturn b, nil\n}\n\nfunc (o UnmarshalOptions) unmarshalMessageSet(b []byte, m protoreflect.Message) error {\n\tif !flags.ProtoLegacy {\n\t\treturn errors.New(\"no support for message_set_wire_format\")\n\t}\n\treturn messageset.Unmarshal(b, false, func(num protowire.Number, v []byte) error {\n\t\terr := o.unmarshalMessageSetField(m, num, v)\n\t\tif err == errUnknown {\n\t\t\tunknown := m.GetUnknown()\n\t\t\tunknown = protowire.AppendTag(unknown, num, protowire.BytesType)\n\t\t\tunknown = protowire.AppendBytes(unknown, v)\n\t\t\tm.SetUnknown(unknown)\n\t\t\treturn nil\n\t\t}\n\t\treturn err\n\t})\n}\n\nfunc (o UnmarshalOptions) unmarshalMessageSetField(m protoreflect.Message, num protowire.Number, v []byte) error {\n\tmd := m.Descriptor()\n\tif !md.ExtensionRanges().Has(num) {\n\t\treturn errUnknown\n\t}\n\txt, err := o.Resolver.FindExtensionByNumber(md.FullName(), num)\n\tif err == protoregistry.NotFound {\n\t\treturn errUnknown\n\t}\n\tif err != nil {\n\t\treturn errors.New(\"%v: unable to resolve extension %v: %v\", md.FullName(), num, err)\n\t}\n\txd := xt.TypeDescriptor()\n\tif err := o.unmarshalMessage(v, m.Mutable(xd).Message()); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/proto/proto.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\nimport (\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\n// Message is the top-level interface that all messages must implement.\n// It provides access to a reflective view of a message.\n// Any implementation of this interface may be used with all functions in the\n// protobuf module that accept a Message, except where otherwise specified.\n//\n// This is the v2 interface definition for protobuf messages.\n// The v1 interface definition is [github.com/golang/protobuf/proto.Message].\n//\n//   - To convert a v1 message to a v2 message,\n//     use [google.golang.org/protobuf/protoadapt.MessageV2Of].\n//   - To convert a v2 message to a v1 message,\n//     use [google.golang.org/protobuf/protoadapt.MessageV1Of].\ntype Message = protoreflect.ProtoMessage\n\n// Error matches all errors produced by packages in the protobuf module\n// according to [errors.Is].\n//\n// Example usage:\n//\n//\tif errors.Is(err, proto.Error) { ... }\nvar Error error\n\nfunc init() {\n\tError = errors.Error\n}\n\n// MessageName returns the full name of m.\n// If m is nil, it returns an empty string.\nfunc MessageName(m Message) protoreflect.FullName {\n\tif m == nil {\n\t\treturn \"\"\n\t}\n\treturn m.ProtoReflect().Descriptor().FullName()\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/proto/proto_methods.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// The protoreflect build tag disables use of fast-path methods.\n//go:build !protoreflect\n// +build !protoreflect\n\npackage proto\n\nimport (\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n)\n\nconst hasProtoMethods = true\n\nfunc protoMethods(m protoreflect.Message) *protoiface.Methods {\n\treturn m.ProtoMethods()\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/proto/proto_reflect.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// The protoreflect build tag disables use of fast-path methods.\n//go:build protoreflect\n// +build protoreflect\n\npackage proto\n\nimport (\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n)\n\nconst hasProtoMethods = false\n\nfunc protoMethods(m protoreflect.Message) *protoiface.Methods {\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/proto/reset.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\nimport (\n\t\"fmt\"\n\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\n// Reset clears every field in the message.\n// The resulting message shares no observable memory with its previous state\n// other than the memory for the message itself.\nfunc Reset(m Message) {\n\tif mr, ok := m.(interface{ Reset() }); ok && hasProtoMethods {\n\t\tmr.Reset()\n\t\treturn\n\t}\n\tresetMessage(m.ProtoReflect())\n}\n\nfunc resetMessage(m protoreflect.Message) {\n\tif !m.IsValid() {\n\t\tpanic(fmt.Sprintf(\"cannot reset invalid %v message\", m.Descriptor().FullName()))\n\t}\n\n\t// Clear all known fields.\n\tfds := m.Descriptor().Fields()\n\tfor i := 0; i < fds.Len(); i++ {\n\t\tm.Clear(fds.Get(i))\n\t}\n\n\t// Clear extension fields.\n\tm.Range(func(fd protoreflect.FieldDescriptor, _ protoreflect.Value) bool {\n\t\tm.Clear(fd)\n\t\treturn true\n\t})\n\n\t// Clear unknown fields.\n\tm.SetUnknown(nil)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/proto/size.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\nimport (\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/encoding/messageset\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/runtime/protoiface\"\n)\n\n// Size returns the size in bytes of the wire-format encoding of m.\nfunc Size(m Message) int {\n\treturn MarshalOptions{}.Size(m)\n}\n\n// Size returns the size in bytes of the wire-format encoding of m.\nfunc (o MarshalOptions) Size(m Message) int {\n\t// Treat a nil message interface as an empty message; nothing to output.\n\tif m == nil {\n\t\treturn 0\n\t}\n\n\treturn o.size(m.ProtoReflect())\n}\n\n// size is a centralized function that all size operations go through.\n// For profiling purposes, avoid changing the name of this function or\n// introducing other code paths for size that do not go through this.\nfunc (o MarshalOptions) size(m protoreflect.Message) (size int) {\n\tmethods := protoMethods(m)\n\tif methods != nil && methods.Size != nil {\n\t\tout := methods.Size(protoiface.SizeInput{\n\t\t\tMessage: m,\n\t\t\tFlags:   o.flags(),\n\t\t})\n\t\treturn out.Size\n\t}\n\tif methods != nil && methods.Marshal != nil {\n\t\t// This is not efficient, but we don't have any choice.\n\t\t// This case is mainly used for legacy types with a Marshal method.\n\t\tout, _ := methods.Marshal(protoiface.MarshalInput{\n\t\t\tMessage: m,\n\t\t\tFlags:   o.flags(),\n\t\t})\n\t\treturn len(out.Buf)\n\t}\n\treturn o.sizeMessageSlow(m)\n}\n\nfunc (o MarshalOptions) sizeMessageSlow(m protoreflect.Message) (size int) {\n\tif messageset.IsMessageSet(m.Descriptor()) {\n\t\treturn o.sizeMessageSet(m)\n\t}\n\tm.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool {\n\t\tsize += o.sizeField(fd, v)\n\t\treturn true\n\t})\n\tsize += len(m.GetUnknown())\n\treturn size\n}\n\nfunc (o MarshalOptions) sizeField(fd protoreflect.FieldDescriptor, value protoreflect.Value) (size int) {\n\tnum := fd.Number()\n\tswitch {\n\tcase fd.IsList():\n\t\treturn o.sizeList(num, fd, value.List())\n\tcase fd.IsMap():\n\t\treturn o.sizeMap(num, fd, value.Map())\n\tdefault:\n\t\treturn protowire.SizeTag(num) + o.sizeSingular(num, fd.Kind(), value)\n\t}\n}\n\nfunc (o MarshalOptions) sizeList(num protowire.Number, fd protoreflect.FieldDescriptor, list protoreflect.List) (size int) {\n\tsizeTag := protowire.SizeTag(num)\n\n\tif fd.IsPacked() && list.Len() > 0 {\n\t\tcontent := 0\n\t\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\t\tcontent += o.sizeSingular(num, fd.Kind(), list.Get(i))\n\t\t}\n\t\treturn sizeTag + protowire.SizeBytes(content)\n\t}\n\n\tfor i, llen := 0, list.Len(); i < llen; i++ {\n\t\tsize += sizeTag + o.sizeSingular(num, fd.Kind(), list.Get(i))\n\t}\n\treturn size\n}\n\nfunc (o MarshalOptions) sizeMap(num protowire.Number, fd protoreflect.FieldDescriptor, mapv protoreflect.Map) (size int) {\n\tsizeTag := protowire.SizeTag(num)\n\n\tmapv.Range(func(key protoreflect.MapKey, value protoreflect.Value) bool {\n\t\tsize += sizeTag\n\t\tsize += protowire.SizeBytes(o.sizeField(fd.MapKey(), key.Value()) + o.sizeField(fd.MapValue(), value))\n\t\treturn true\n\t})\n\treturn size\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/proto/size_gen.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by generate-types. DO NOT EDIT.\n\npackage proto\n\nimport (\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\nfunc (o MarshalOptions) sizeSingular(num protowire.Number, kind protoreflect.Kind, v protoreflect.Value) int {\n\tswitch kind {\n\tcase protoreflect.BoolKind:\n\t\treturn protowire.SizeVarint(protowire.EncodeBool(v.Bool()))\n\tcase protoreflect.EnumKind:\n\t\treturn protowire.SizeVarint(uint64(v.Enum()))\n\tcase protoreflect.Int32Kind:\n\t\treturn protowire.SizeVarint(uint64(int32(v.Int())))\n\tcase protoreflect.Sint32Kind:\n\t\treturn protowire.SizeVarint(protowire.EncodeZigZag(int64(int32(v.Int()))))\n\tcase protoreflect.Uint32Kind:\n\t\treturn protowire.SizeVarint(uint64(uint32(v.Uint())))\n\tcase protoreflect.Int64Kind:\n\t\treturn protowire.SizeVarint(uint64(v.Int()))\n\tcase protoreflect.Sint64Kind:\n\t\treturn protowire.SizeVarint(protowire.EncodeZigZag(v.Int()))\n\tcase protoreflect.Uint64Kind:\n\t\treturn protowire.SizeVarint(v.Uint())\n\tcase protoreflect.Sfixed32Kind:\n\t\treturn protowire.SizeFixed32()\n\tcase protoreflect.Fixed32Kind:\n\t\treturn protowire.SizeFixed32()\n\tcase protoreflect.FloatKind:\n\t\treturn protowire.SizeFixed32()\n\tcase protoreflect.Sfixed64Kind:\n\t\treturn protowire.SizeFixed64()\n\tcase protoreflect.Fixed64Kind:\n\t\treturn protowire.SizeFixed64()\n\tcase protoreflect.DoubleKind:\n\t\treturn protowire.SizeFixed64()\n\tcase protoreflect.StringKind:\n\t\treturn protowire.SizeBytes(len(v.String()))\n\tcase protoreflect.BytesKind:\n\t\treturn protowire.SizeBytes(len(v.Bytes()))\n\tcase protoreflect.MessageKind:\n\t\treturn protowire.SizeBytes(o.size(v.Message()))\n\tcase protoreflect.GroupKind:\n\t\treturn protowire.SizeGroup(num, o.size(v.Message()))\n\tdefault:\n\t\treturn 0\n\t}\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/proto/wrappers.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage proto\n\n// Bool stores v in a new bool value and returns a pointer to it.\nfunc Bool(v bool) *bool { return &v }\n\n// Int32 stores v in a new int32 value and returns a pointer to it.\nfunc Int32(v int32) *int32 { return &v }\n\n// Int64 stores v in a new int64 value and returns a pointer to it.\nfunc Int64(v int64) *int64 { return &v }\n\n// Float32 stores v in a new float32 value and returns a pointer to it.\nfunc Float32(v float32) *float32 { return &v }\n\n// Float64 stores v in a new float64 value and returns a pointer to it.\nfunc Float64(v float64) *float64 { return &v }\n\n// Uint32 stores v in a new uint32 value and returns a pointer to it.\nfunc Uint32(v uint32) *uint32 { return &v }\n\n// Uint64 stores v in a new uint64 value and returns a pointer to it.\nfunc Uint64(v uint64) *uint64 { return &v }\n\n// String stores v in a new string value and returns a pointer to it.\nfunc String(v string) *string { return &v }\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/reflect/protodesc/desc.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package protodesc provides functionality for converting\n// FileDescriptorProto messages to/from [protoreflect.FileDescriptor] values.\n//\n// The google.protobuf.FileDescriptorProto is a protobuf message that describes\n// the type information for a .proto file in a form that is easily serializable.\n// The [protoreflect.FileDescriptor] is a more structured representation of\n// the FileDescriptorProto message where references and remote dependencies\n// can be directly followed.\npackage protodesc\n\nimport (\n\t\"google.golang.org/protobuf/internal/editionssupport\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/internal/filedesc\"\n\t\"google.golang.org/protobuf/internal/pragma\"\n\t\"google.golang.org/protobuf/internal/strs\"\n\t\"google.golang.org/protobuf/proto\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/reflect/protoregistry\"\n\n\t\"google.golang.org/protobuf/types/descriptorpb\"\n)\n\n// Resolver is the resolver used by [NewFile] to resolve dependencies.\n// The enums and messages provided must belong to some parent file,\n// which is also registered.\n//\n// It is implemented by [protoregistry.Files].\ntype Resolver interface {\n\tFindFileByPath(string) (protoreflect.FileDescriptor, error)\n\tFindDescriptorByName(protoreflect.FullName) (protoreflect.Descriptor, error)\n}\n\n// FileOptions configures the construction of file descriptors.\ntype FileOptions struct {\n\tpragma.NoUnkeyedLiterals\n\n\t// AllowUnresolvable configures New to permissively allow unresolvable\n\t// file, enum, or message dependencies. Unresolved dependencies are replaced\n\t// by placeholder equivalents.\n\t//\n\t// The following dependencies may be left unresolved:\n\t//\t• Resolving an imported file.\n\t//\t• Resolving the type for a message field or extension field.\n\t//\tIf the kind of the field is unknown, then a placeholder is used for both\n\t//\tthe Enum and Message accessors on the protoreflect.FieldDescriptor.\n\t//\t• Resolving an enum value set as the default for an optional enum field.\n\t//\tIf unresolvable, the protoreflect.FieldDescriptor.Default is set to the\n\t//\tfirst value in the associated enum (or zero if the also enum dependency\n\t//\tis also unresolvable). The protoreflect.FieldDescriptor.DefaultEnumValue\n\t//\tis populated with a placeholder.\n\t//\t• Resolving the extended message type for an extension field.\n\t//\t• Resolving the input or output message type for a service method.\n\t//\n\t// If the unresolved dependency uses a relative name,\n\t// then the placeholder will contain an invalid FullName with a \"*.\" prefix,\n\t// indicating that the starting prefix of the full name is unknown.\n\tAllowUnresolvable bool\n}\n\n// NewFile creates a new [protoreflect.FileDescriptor] from the provided\n// file descriptor message. See [FileOptions.New] for more information.\nfunc NewFile(fd *descriptorpb.FileDescriptorProto, r Resolver) (protoreflect.FileDescriptor, error) {\n\treturn FileOptions{}.New(fd, r)\n}\n\n// NewFiles creates a new [protoregistry.Files] from the provided\n// FileDescriptorSet message. See [FileOptions.NewFiles] for more information.\nfunc NewFiles(fd *descriptorpb.FileDescriptorSet) (*protoregistry.Files, error) {\n\treturn FileOptions{}.NewFiles(fd)\n}\n\n// New creates a new [protoreflect.FileDescriptor] from the provided\n// file descriptor message. The file must represent a valid proto file according\n// to protobuf semantics. The returned descriptor is a deep copy of the input.\n//\n// Any imported files, enum types, or message types referenced in the file are\n// resolved using the provided registry. When looking up an import file path,\n// the path must be unique. The newly created file descriptor is not registered\n// back into the provided file registry.\nfunc (o FileOptions) New(fd *descriptorpb.FileDescriptorProto, r Resolver) (protoreflect.FileDescriptor, error) {\n\tif r == nil {\n\t\tr = (*protoregistry.Files)(nil) // empty resolver\n\t}\n\n\t// Handle the file descriptor content.\n\tf := &filedesc.File{L2: &filedesc.FileL2{}}\n\tswitch fd.GetSyntax() {\n\tcase \"proto2\", \"\":\n\t\tf.L1.Syntax = protoreflect.Proto2\n\t\tf.L1.Edition = filedesc.EditionProto2\n\tcase \"proto3\":\n\t\tf.L1.Syntax = protoreflect.Proto3\n\t\tf.L1.Edition = filedesc.EditionProto3\n\tcase \"editions\":\n\t\tf.L1.Syntax = protoreflect.Editions\n\t\tf.L1.Edition = fromEditionProto(fd.GetEdition())\n\tdefault:\n\t\treturn nil, errors.New(\"invalid syntax: %q\", fd.GetSyntax())\n\t}\n\tif f.L1.Syntax == protoreflect.Editions && (fd.GetEdition() < editionssupport.Minimum || fd.GetEdition() > editionssupport.Maximum) {\n\t\treturn nil, errors.New(\"use of edition %v not yet supported by the Go Protobuf runtime\", fd.GetEdition())\n\t}\n\tf.L1.Path = fd.GetName()\n\tif f.L1.Path == \"\" {\n\t\treturn nil, errors.New(\"file path must be populated\")\n\t}\n\tf.L1.Package = protoreflect.FullName(fd.GetPackage())\n\tif !f.L1.Package.IsValid() && f.L1.Package != \"\" {\n\t\treturn nil, errors.New(\"invalid package: %q\", f.L1.Package)\n\t}\n\tif opts := fd.GetOptions(); opts != nil {\n\t\topts = proto.Clone(opts).(*descriptorpb.FileOptions)\n\t\tf.L2.Options = func() protoreflect.ProtoMessage { return opts }\n\t}\n\tinitFileDescFromFeatureSet(f, fd.GetOptions().GetFeatures())\n\n\tf.L2.Imports = make(filedesc.FileImports, len(fd.GetDependency()))\n\tfor _, i := range fd.GetPublicDependency() {\n\t\tif !(0 <= i && int(i) < len(f.L2.Imports)) || f.L2.Imports[i].IsPublic {\n\t\t\treturn nil, errors.New(\"invalid or duplicate public import index: %d\", i)\n\t\t}\n\t\tf.L2.Imports[i].IsPublic = true\n\t}\n\tfor _, i := range fd.GetWeakDependency() {\n\t\tif !(0 <= i && int(i) < len(f.L2.Imports)) || f.L2.Imports[i].IsWeak {\n\t\t\treturn nil, errors.New(\"invalid or duplicate weak import index: %d\", i)\n\t\t}\n\t\tf.L2.Imports[i].IsWeak = true\n\t}\n\timps := importSet{f.Path(): true}\n\tfor i, path := range fd.GetDependency() {\n\t\timp := &f.L2.Imports[i]\n\t\tf, err := r.FindFileByPath(path)\n\t\tif err == protoregistry.NotFound && (o.AllowUnresolvable || imp.IsWeak) {\n\t\t\tf = filedesc.PlaceholderFile(path)\n\t\t} else if err != nil {\n\t\t\treturn nil, errors.New(\"could not resolve import %q: %v\", path, err)\n\t\t}\n\t\timp.FileDescriptor = f\n\n\t\tif imps[imp.Path()] {\n\t\t\treturn nil, errors.New(\"already imported %q\", path)\n\t\t}\n\t\timps[imp.Path()] = true\n\t}\n\tfor i := range fd.GetDependency() {\n\t\timp := &f.L2.Imports[i]\n\t\timps.importPublic(imp.Imports())\n\t}\n\n\t// Handle source locations.\n\tf.L2.Locations.File = f\n\tfor _, loc := range fd.GetSourceCodeInfo().GetLocation() {\n\t\tvar l protoreflect.SourceLocation\n\t\t// TODO: Validate that the path points to an actual declaration?\n\t\tl.Path = protoreflect.SourcePath(loc.GetPath())\n\t\ts := loc.GetSpan()\n\t\tswitch len(s) {\n\t\tcase 3:\n\t\t\tl.StartLine, l.StartColumn, l.EndLine, l.EndColumn = int(s[0]), int(s[1]), int(s[0]), int(s[2])\n\t\tcase 4:\n\t\t\tl.StartLine, l.StartColumn, l.EndLine, l.EndColumn = int(s[0]), int(s[1]), int(s[2]), int(s[3])\n\t\tdefault:\n\t\t\treturn nil, errors.New(\"invalid span: %v\", s)\n\t\t}\n\t\t// TODO: Validate that the span information is sensible?\n\t\t// See https://github.com/protocolbuffers/protobuf/issues/6378.\n\t\tif false && (l.EndLine < l.StartLine || l.StartLine < 0 || l.StartColumn < 0 || l.EndColumn < 0 ||\n\t\t\t(l.StartLine == l.EndLine && l.EndColumn <= l.StartColumn)) {\n\t\t\treturn nil, errors.New(\"invalid span: %v\", s)\n\t\t}\n\t\tl.LeadingDetachedComments = loc.GetLeadingDetachedComments()\n\t\tl.LeadingComments = loc.GetLeadingComments()\n\t\tl.TrailingComments = loc.GetTrailingComments()\n\t\tf.L2.Locations.List = append(f.L2.Locations.List, l)\n\t}\n\n\t// Step 1: Allocate and derive the names for all declarations.\n\t// This copies all fields from the descriptor proto except:\n\t//\tgoogle.protobuf.FieldDescriptorProto.type_name\n\t//\tgoogle.protobuf.FieldDescriptorProto.default_value\n\t//\tgoogle.protobuf.FieldDescriptorProto.oneof_index\n\t//\tgoogle.protobuf.FieldDescriptorProto.extendee\n\t//\tgoogle.protobuf.MethodDescriptorProto.input\n\t//\tgoogle.protobuf.MethodDescriptorProto.output\n\tvar err error\n\tsb := new(strs.Builder)\n\tr1 := make(descsByName)\n\tif f.L1.Enums.List, err = r1.initEnumDeclarations(fd.GetEnumType(), f, sb); err != nil {\n\t\treturn nil, err\n\t}\n\tif f.L1.Messages.List, err = r1.initMessagesDeclarations(fd.GetMessageType(), f, sb); err != nil {\n\t\treturn nil, err\n\t}\n\tif f.L1.Extensions.List, err = r1.initExtensionDeclarations(fd.GetExtension(), f, sb); err != nil {\n\t\treturn nil, err\n\t}\n\tif f.L1.Services.List, err = r1.initServiceDeclarations(fd.GetService(), f, sb); err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Step 2: Resolve every dependency reference not handled by step 1.\n\tr2 := &resolver{local: r1, remote: r, imports: imps, allowUnresolvable: o.AllowUnresolvable}\n\tif err := r2.resolveMessageDependencies(f.L1.Messages.List, fd.GetMessageType()); err != nil {\n\t\treturn nil, err\n\t}\n\tif err := r2.resolveExtensionDependencies(f.L1.Extensions.List, fd.GetExtension()); err != nil {\n\t\treturn nil, err\n\t}\n\tif err := r2.resolveServiceDependencies(f.L1.Services.List, fd.GetService()); err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Step 3: Validate every enum, message, and extension declaration.\n\tif err := validateEnumDeclarations(f.L1.Enums.List, fd.GetEnumType()); err != nil {\n\t\treturn nil, err\n\t}\n\tif err := validateMessageDeclarations(f, f.L1.Messages.List, fd.GetMessageType()); err != nil {\n\t\treturn nil, err\n\t}\n\tif err := validateExtensionDeclarations(f, f.L1.Extensions.List, fd.GetExtension()); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn f, nil\n}\n\ntype importSet map[string]bool\n\nfunc (is importSet) importPublic(imps protoreflect.FileImports) {\n\tfor i := 0; i < imps.Len(); i++ {\n\t\tif imp := imps.Get(i); imp.IsPublic {\n\t\t\tis[imp.Path()] = true\n\t\t\tis.importPublic(imp.Imports())\n\t\t}\n\t}\n}\n\n// NewFiles creates a new [protoregistry.Files] from the provided\n// FileDescriptorSet message. The descriptor set must include only\n// valid files according to protobuf semantics. The returned descriptors\n// are a deep copy of the input.\nfunc (o FileOptions) NewFiles(fds *descriptorpb.FileDescriptorSet) (*protoregistry.Files, error) {\n\tfiles := make(map[string]*descriptorpb.FileDescriptorProto)\n\tfor _, fd := range fds.File {\n\t\tif _, ok := files[fd.GetName()]; ok {\n\t\t\treturn nil, errors.New(\"file appears multiple times: %q\", fd.GetName())\n\t\t}\n\t\tfiles[fd.GetName()] = fd\n\t}\n\tr := &protoregistry.Files{}\n\tfor _, fd := range files {\n\t\tif err := o.addFileDeps(r, fd, files); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn r, nil\n}\nfunc (o FileOptions) addFileDeps(r *protoregistry.Files, fd *descriptorpb.FileDescriptorProto, files map[string]*descriptorpb.FileDescriptorProto) error {\n\t// Set the entry to nil while descending into a file's dependencies to detect cycles.\n\tfiles[fd.GetName()] = nil\n\tfor _, dep := range fd.Dependency {\n\t\tdepfd, ok := files[dep]\n\t\tif depfd == nil {\n\t\t\tif ok {\n\t\t\t\treturn errors.New(\"import cycle in file: %q\", dep)\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tif err := o.addFileDeps(r, depfd, files); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\t// Delete the entry once dependencies are processed.\n\tdelete(files, fd.GetName())\n\tf, err := o.New(fd, r)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn r.RegisterFile(f)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage protodesc\n\nimport (\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/internal/filedesc\"\n\t\"google.golang.org/protobuf/internal/strs\"\n\t\"google.golang.org/protobuf/proto\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\n\t\"google.golang.org/protobuf/types/descriptorpb\"\n)\n\ntype descsByName map[protoreflect.FullName]protoreflect.Descriptor\n\nfunc (r descsByName) initEnumDeclarations(eds []*descriptorpb.EnumDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (es []filedesc.Enum, err error) {\n\tes = make([]filedesc.Enum, len(eds)) // allocate up-front to ensure stable pointers\n\tfor i, ed := range eds {\n\t\te := &es[i]\n\t\te.L2 = new(filedesc.EnumL2)\n\t\tif e.L0, err = r.makeBase(e, parent, ed.GetName(), i, sb); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif opts := ed.GetOptions(); opts != nil {\n\t\t\topts = proto.Clone(opts).(*descriptorpb.EnumOptions)\n\t\t\te.L2.Options = func() protoreflect.ProtoMessage { return opts }\n\t\t}\n\t\te.L1.EditionFeatures = mergeEditionFeatures(parent, ed.GetOptions().GetFeatures())\n\t\tfor _, s := range ed.GetReservedName() {\n\t\t\te.L2.ReservedNames.List = append(e.L2.ReservedNames.List, protoreflect.Name(s))\n\t\t}\n\t\tfor _, rr := range ed.GetReservedRange() {\n\t\t\te.L2.ReservedRanges.List = append(e.L2.ReservedRanges.List, [2]protoreflect.EnumNumber{\n\t\t\t\tprotoreflect.EnumNumber(rr.GetStart()),\n\t\t\t\tprotoreflect.EnumNumber(rr.GetEnd()),\n\t\t\t})\n\t\t}\n\t\tif e.L2.Values.List, err = r.initEnumValuesFromDescriptorProto(ed.GetValue(), e, sb); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn es, nil\n}\n\nfunc (r descsByName) initEnumValuesFromDescriptorProto(vds []*descriptorpb.EnumValueDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (vs []filedesc.EnumValue, err error) {\n\tvs = make([]filedesc.EnumValue, len(vds)) // allocate up-front to ensure stable pointers\n\tfor i, vd := range vds {\n\t\tv := &vs[i]\n\t\tif v.L0, err = r.makeBase(v, parent, vd.GetName(), i, sb); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif opts := vd.GetOptions(); opts != nil {\n\t\t\topts = proto.Clone(opts).(*descriptorpb.EnumValueOptions)\n\t\t\tv.L1.Options = func() protoreflect.ProtoMessage { return opts }\n\t\t}\n\t\tv.L1.Number = protoreflect.EnumNumber(vd.GetNumber())\n\t}\n\treturn vs, nil\n}\n\nfunc (r descsByName) initMessagesDeclarations(mds []*descriptorpb.DescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (ms []filedesc.Message, err error) {\n\tms = make([]filedesc.Message, len(mds)) // allocate up-front to ensure stable pointers\n\tfor i, md := range mds {\n\t\tm := &ms[i]\n\t\tm.L2 = new(filedesc.MessageL2)\n\t\tif m.L0, err = r.makeBase(m, parent, md.GetName(), i, sb); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tm.L1.EditionFeatures = mergeEditionFeatures(parent, md.GetOptions().GetFeatures())\n\t\tif opts := md.GetOptions(); opts != nil {\n\t\t\topts = proto.Clone(opts).(*descriptorpb.MessageOptions)\n\t\t\tm.L2.Options = func() protoreflect.ProtoMessage { return opts }\n\t\t\tm.L1.IsMapEntry = opts.GetMapEntry()\n\t\t\tm.L1.IsMessageSet = opts.GetMessageSetWireFormat()\n\t\t}\n\t\tfor _, s := range md.GetReservedName() {\n\t\t\tm.L2.ReservedNames.List = append(m.L2.ReservedNames.List, protoreflect.Name(s))\n\t\t}\n\t\tfor _, rr := range md.GetReservedRange() {\n\t\t\tm.L2.ReservedRanges.List = append(m.L2.ReservedRanges.List, [2]protoreflect.FieldNumber{\n\t\t\t\tprotoreflect.FieldNumber(rr.GetStart()),\n\t\t\t\tprotoreflect.FieldNumber(rr.GetEnd()),\n\t\t\t})\n\t\t}\n\t\tfor _, xr := range md.GetExtensionRange() {\n\t\t\tm.L2.ExtensionRanges.List = append(m.L2.ExtensionRanges.List, [2]protoreflect.FieldNumber{\n\t\t\t\tprotoreflect.FieldNumber(xr.GetStart()),\n\t\t\t\tprotoreflect.FieldNumber(xr.GetEnd()),\n\t\t\t})\n\t\t\tvar optsFunc func() protoreflect.ProtoMessage\n\t\t\tif opts := xr.GetOptions(); opts != nil {\n\t\t\t\topts = proto.Clone(opts).(*descriptorpb.ExtensionRangeOptions)\n\t\t\t\toptsFunc = func() protoreflect.ProtoMessage { return opts }\n\t\t\t}\n\t\t\tm.L2.ExtensionRangeOptions = append(m.L2.ExtensionRangeOptions, optsFunc)\n\t\t}\n\t\tif m.L2.Fields.List, err = r.initFieldsFromDescriptorProto(md.GetField(), m, sb); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif m.L2.Oneofs.List, err = r.initOneofsFromDescriptorProto(md.GetOneofDecl(), m, sb); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif m.L1.Enums.List, err = r.initEnumDeclarations(md.GetEnumType(), m, sb); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif m.L1.Messages.List, err = r.initMessagesDeclarations(md.GetNestedType(), m, sb); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif m.L1.Extensions.List, err = r.initExtensionDeclarations(md.GetExtension(), m, sb); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn ms, nil\n}\n\n// canBePacked returns whether the field can use packed encoding:\n// https://protobuf.dev/programming-guides/encoding/#packed\nfunc canBePacked(fd *descriptorpb.FieldDescriptorProto) bool {\n\tif fd.GetLabel() != descriptorpb.FieldDescriptorProto_LABEL_REPEATED {\n\t\treturn false // not a repeated field\n\t}\n\n\tswitch protoreflect.Kind(fd.GetType()) {\n\tcase protoreflect.MessageKind, protoreflect.GroupKind:\n\t\treturn false // not a scalar type field\n\n\tcase protoreflect.StringKind, protoreflect.BytesKind:\n\t\t// string and bytes can explicitly not be declared as packed,\n\t\t// see https://protobuf.dev/programming-guides/encoding/#packed\n\t\treturn false\n\n\tdefault:\n\t\treturn true\n\t}\n}\n\nfunc (r descsByName) initFieldsFromDescriptorProto(fds []*descriptorpb.FieldDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (fs []filedesc.Field, err error) {\n\tfs = make([]filedesc.Field, len(fds)) // allocate up-front to ensure stable pointers\n\tfor i, fd := range fds {\n\t\tf := &fs[i]\n\t\tif f.L0, err = r.makeBase(f, parent, fd.GetName(), i, sb); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tf.L1.EditionFeatures = mergeEditionFeatures(parent, fd.GetOptions().GetFeatures())\n\t\tf.L1.IsProto3Optional = fd.GetProto3Optional()\n\t\tif opts := fd.GetOptions(); opts != nil {\n\t\t\topts = proto.Clone(opts).(*descriptorpb.FieldOptions)\n\t\t\tf.L1.Options = func() protoreflect.ProtoMessage { return opts }\n\t\t\tf.L1.IsWeak = opts.GetWeak()\n\t\t\tf.L1.IsLazy = opts.GetLazy()\n\t\t\tif opts.Packed != nil {\n\t\t\t\tf.L1.EditionFeatures.IsPacked = opts.GetPacked()\n\t\t\t}\n\t\t}\n\t\tf.L1.Number = protoreflect.FieldNumber(fd.GetNumber())\n\t\tf.L1.Cardinality = protoreflect.Cardinality(fd.GetLabel())\n\t\tif fd.Type != nil {\n\t\t\tf.L1.Kind = protoreflect.Kind(fd.GetType())\n\t\t}\n\t\tif fd.JsonName != nil {\n\t\t\tf.L1.StringName.InitJSON(fd.GetJsonName())\n\t\t}\n\n\t\tif f.L1.EditionFeatures.IsLegacyRequired {\n\t\t\tf.L1.Cardinality = protoreflect.Required\n\t\t}\n\n\t\tif f.L1.Kind == protoreflect.MessageKind && f.L1.EditionFeatures.IsDelimitedEncoded {\n\t\t\tf.L1.Kind = protoreflect.GroupKind\n\t\t}\n\t}\n\treturn fs, nil\n}\n\nfunc (r descsByName) initOneofsFromDescriptorProto(ods []*descriptorpb.OneofDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (os []filedesc.Oneof, err error) {\n\tos = make([]filedesc.Oneof, len(ods)) // allocate up-front to ensure stable pointers\n\tfor i, od := range ods {\n\t\to := &os[i]\n\t\tif o.L0, err = r.makeBase(o, parent, od.GetName(), i, sb); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\to.L1.EditionFeatures = mergeEditionFeatures(parent, od.GetOptions().GetFeatures())\n\t\tif opts := od.GetOptions(); opts != nil {\n\t\t\topts = proto.Clone(opts).(*descriptorpb.OneofOptions)\n\t\t\to.L1.Options = func() protoreflect.ProtoMessage { return opts }\n\t\t}\n\t}\n\treturn os, nil\n}\n\nfunc (r descsByName) initExtensionDeclarations(xds []*descriptorpb.FieldDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (xs []filedesc.Extension, err error) {\n\txs = make([]filedesc.Extension, len(xds)) // allocate up-front to ensure stable pointers\n\tfor i, xd := range xds {\n\t\tx := &xs[i]\n\t\tx.L2 = new(filedesc.ExtensionL2)\n\t\tif x.L0, err = r.makeBase(x, parent, xd.GetName(), i, sb); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tx.L1.EditionFeatures = mergeEditionFeatures(parent, xd.GetOptions().GetFeatures())\n\t\tif opts := xd.GetOptions(); opts != nil {\n\t\t\topts = proto.Clone(opts).(*descriptorpb.FieldOptions)\n\t\t\tx.L2.Options = func() protoreflect.ProtoMessage { return opts }\n\t\t\tif opts.Packed != nil {\n\t\t\t\tx.L1.EditionFeatures.IsPacked = opts.GetPacked()\n\t\t\t}\n\t\t}\n\t\tx.L1.Number = protoreflect.FieldNumber(xd.GetNumber())\n\t\tx.L1.Cardinality = protoreflect.Cardinality(xd.GetLabel())\n\t\tif xd.Type != nil {\n\t\t\tx.L1.Kind = protoreflect.Kind(xd.GetType())\n\t\t}\n\t\tif xd.JsonName != nil {\n\t\t\tx.L2.StringName.InitJSON(xd.GetJsonName())\n\t\t}\n\t\tif x.L1.Kind == protoreflect.MessageKind && x.L1.EditionFeatures.IsDelimitedEncoded {\n\t\t\tx.L1.Kind = protoreflect.GroupKind\n\t\t}\n\t}\n\treturn xs, nil\n}\n\nfunc (r descsByName) initServiceDeclarations(sds []*descriptorpb.ServiceDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (ss []filedesc.Service, err error) {\n\tss = make([]filedesc.Service, len(sds)) // allocate up-front to ensure stable pointers\n\tfor i, sd := range sds {\n\t\ts := &ss[i]\n\t\ts.L2 = new(filedesc.ServiceL2)\n\t\tif s.L0, err = r.makeBase(s, parent, sd.GetName(), i, sb); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif opts := sd.GetOptions(); opts != nil {\n\t\t\topts = proto.Clone(opts).(*descriptorpb.ServiceOptions)\n\t\t\ts.L2.Options = func() protoreflect.ProtoMessage { return opts }\n\t\t}\n\t\tif s.L2.Methods.List, err = r.initMethodsFromDescriptorProto(sd.GetMethod(), s, sb); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn ss, nil\n}\n\nfunc (r descsByName) initMethodsFromDescriptorProto(mds []*descriptorpb.MethodDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (ms []filedesc.Method, err error) {\n\tms = make([]filedesc.Method, len(mds)) // allocate up-front to ensure stable pointers\n\tfor i, md := range mds {\n\t\tm := &ms[i]\n\t\tif m.L0, err = r.makeBase(m, parent, md.GetName(), i, sb); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif opts := md.GetOptions(); opts != nil {\n\t\t\topts = proto.Clone(opts).(*descriptorpb.MethodOptions)\n\t\t\tm.L1.Options = func() protoreflect.ProtoMessage { return opts }\n\t\t}\n\t\tm.L1.IsStreamingClient = md.GetClientStreaming()\n\t\tm.L1.IsStreamingServer = md.GetServerStreaming()\n\t}\n\treturn ms, nil\n}\n\nfunc (r descsByName) makeBase(child, parent protoreflect.Descriptor, name string, idx int, sb *strs.Builder) (filedesc.BaseL0, error) {\n\tif !protoreflect.Name(name).IsValid() {\n\t\treturn filedesc.BaseL0{}, errors.New(\"descriptor %q has an invalid nested name: %q\", parent.FullName(), name)\n\t}\n\n\t// Derive the full name of the child.\n\t// Note that enum values are a sibling to the enum parent in the namespace.\n\tvar fullName protoreflect.FullName\n\tif _, ok := parent.(protoreflect.EnumDescriptor); ok {\n\t\tfullName = sb.AppendFullName(parent.FullName().Parent(), protoreflect.Name(name))\n\t} else {\n\t\tfullName = sb.AppendFullName(parent.FullName(), protoreflect.Name(name))\n\t}\n\tif _, ok := r[fullName]; ok {\n\t\treturn filedesc.BaseL0{}, errors.New(\"descriptor %q already declared\", fullName)\n\t}\n\tr[fullName] = child\n\n\t// TODO: Verify that the full name does not already exist in the resolver?\n\t// This is not as critical since most usages of NewFile will register\n\t// the created file back into the registry, which will perform this check.\n\n\treturn filedesc.BaseL0{\n\t\tFullName:   fullName,\n\t\tParentFile: parent.ParentFile().(*filedesc.File),\n\t\tParent:     parent,\n\t\tIndex:      idx,\n\t}, nil\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage protodesc\n\nimport (\n\t\"google.golang.org/protobuf/internal/encoding/defval\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/internal/filedesc\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/reflect/protoregistry\"\n\n\t\"google.golang.org/protobuf/types/descriptorpb\"\n)\n\n// resolver is a wrapper around a local registry of declarations within the file\n// and the remote resolver. The remote resolver is restricted to only return\n// descriptors that have been imported.\ntype resolver struct {\n\tlocal   descsByName\n\tremote  Resolver\n\timports importSet\n\n\tallowUnresolvable bool\n}\n\nfunc (r *resolver) resolveMessageDependencies(ms []filedesc.Message, mds []*descriptorpb.DescriptorProto) (err error) {\n\tfor i, md := range mds {\n\t\tm := &ms[i]\n\t\tfor j, fd := range md.GetField() {\n\t\t\tf := &m.L2.Fields.List[j]\n\t\t\tif f.L1.Cardinality == protoreflect.Required {\n\t\t\t\tm.L2.RequiredNumbers.List = append(m.L2.RequiredNumbers.List, f.L1.Number)\n\t\t\t}\n\t\t\tif fd.OneofIndex != nil {\n\t\t\t\tk := int(fd.GetOneofIndex())\n\t\t\t\tif !(0 <= k && k < len(md.GetOneofDecl())) {\n\t\t\t\t\treturn errors.New(\"message field %q has an invalid oneof index: %d\", f.FullName(), k)\n\t\t\t\t}\n\t\t\t\to := &m.L2.Oneofs.List[k]\n\t\t\t\tf.L1.ContainingOneof = o\n\t\t\t\to.L1.Fields.List = append(o.L1.Fields.List, f)\n\t\t\t}\n\n\t\t\tif f.L1.Kind, f.L1.Enum, f.L1.Message, err = r.findTarget(f.Kind(), f.Parent().FullName(), partialName(fd.GetTypeName()), f.IsWeak()); err != nil {\n\t\t\t\treturn errors.New(\"message field %q cannot resolve type: %v\", f.FullName(), err)\n\t\t\t}\n\t\t\tif f.L1.Kind == protoreflect.GroupKind && (f.IsMap() || f.IsMapEntry()) {\n\t\t\t\t// A map field might inherit delimited encoding from a file-wide default feature.\n\t\t\t\t// But maps never actually use delimited encoding. (At least for now...)\n\t\t\t\tf.L1.Kind = protoreflect.MessageKind\n\t\t\t}\n\t\t\tif fd.DefaultValue != nil {\n\t\t\t\tv, ev, err := unmarshalDefault(fd.GetDefaultValue(), f, r.allowUnresolvable)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn errors.New(\"message field %q has invalid default: %v\", f.FullName(), err)\n\t\t\t\t}\n\t\t\t\tf.L1.Default = filedesc.DefaultValue(v, ev)\n\t\t\t}\n\t\t}\n\n\t\tif err := r.resolveMessageDependencies(m.L1.Messages.List, md.GetNestedType()); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := r.resolveExtensionDependencies(m.L1.Extensions.List, md.GetExtension()); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (r *resolver) resolveExtensionDependencies(xs []filedesc.Extension, xds []*descriptorpb.FieldDescriptorProto) (err error) {\n\tfor i, xd := range xds {\n\t\tx := &xs[i]\n\t\tif x.L1.Extendee, err = r.findMessageDescriptor(x.Parent().FullName(), partialName(xd.GetExtendee()), false); err != nil {\n\t\t\treturn errors.New(\"extension field %q cannot resolve extendee: %v\", x.FullName(), err)\n\t\t}\n\t\tif x.L1.Kind, x.L2.Enum, x.L2.Message, err = r.findTarget(x.Kind(), x.Parent().FullName(), partialName(xd.GetTypeName()), false); err != nil {\n\t\t\treturn errors.New(\"extension field %q cannot resolve type: %v\", x.FullName(), err)\n\t\t}\n\t\tif xd.DefaultValue != nil {\n\t\t\tv, ev, err := unmarshalDefault(xd.GetDefaultValue(), x, r.allowUnresolvable)\n\t\t\tif err != nil {\n\t\t\t\treturn errors.New(\"extension field %q has invalid default: %v\", x.FullName(), err)\n\t\t\t}\n\t\t\tx.L2.Default = filedesc.DefaultValue(v, ev)\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (r *resolver) resolveServiceDependencies(ss []filedesc.Service, sds []*descriptorpb.ServiceDescriptorProto) (err error) {\n\tfor i, sd := range sds {\n\t\ts := &ss[i]\n\t\tfor j, md := range sd.GetMethod() {\n\t\t\tm := &s.L2.Methods.List[j]\n\t\t\tm.L1.Input, err = r.findMessageDescriptor(m.Parent().FullName(), partialName(md.GetInputType()), false)\n\t\t\tif err != nil {\n\t\t\t\treturn errors.New(\"service method %q cannot resolve input: %v\", m.FullName(), err)\n\t\t\t}\n\t\t\tm.L1.Output, err = r.findMessageDescriptor(s.FullName(), partialName(md.GetOutputType()), false)\n\t\t\tif err != nil {\n\t\t\t\treturn errors.New(\"service method %q cannot resolve output: %v\", m.FullName(), err)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\n// findTarget finds an enum or message descriptor if k is an enum, message,\n// group, or unknown. If unknown, and the name could be resolved, the kind\n// returned kind is set based on the type of the resolved descriptor.\nfunc (r *resolver) findTarget(k protoreflect.Kind, scope protoreflect.FullName, ref partialName, isWeak bool) (protoreflect.Kind, protoreflect.EnumDescriptor, protoreflect.MessageDescriptor, error) {\n\tswitch k {\n\tcase protoreflect.EnumKind:\n\t\ted, err := r.findEnumDescriptor(scope, ref, isWeak)\n\t\tif err != nil {\n\t\t\treturn 0, nil, nil, err\n\t\t}\n\t\treturn k, ed, nil, nil\n\tcase protoreflect.MessageKind, protoreflect.GroupKind:\n\t\tmd, err := r.findMessageDescriptor(scope, ref, isWeak)\n\t\tif err != nil {\n\t\t\treturn 0, nil, nil, err\n\t\t}\n\t\treturn k, nil, md, nil\n\tcase 0:\n\t\t// Handle unspecified kinds (possible with parsers that operate\n\t\t// on a per-file basis without knowledge of dependencies).\n\t\td, err := r.findDescriptor(scope, ref)\n\t\tif err == protoregistry.NotFound && (r.allowUnresolvable || isWeak) {\n\t\t\treturn k, filedesc.PlaceholderEnum(ref.FullName()), filedesc.PlaceholderMessage(ref.FullName()), nil\n\t\t} else if err == protoregistry.NotFound {\n\t\t\treturn 0, nil, nil, errors.New(\"%q not found\", ref.FullName())\n\t\t} else if err != nil {\n\t\t\treturn 0, nil, nil, err\n\t\t}\n\t\tswitch d := d.(type) {\n\t\tcase protoreflect.EnumDescriptor:\n\t\t\treturn protoreflect.EnumKind, d, nil, nil\n\t\tcase protoreflect.MessageDescriptor:\n\t\t\treturn protoreflect.MessageKind, nil, d, nil\n\t\tdefault:\n\t\t\treturn 0, nil, nil, errors.New(\"unknown kind\")\n\t\t}\n\tdefault:\n\t\tif ref != \"\" {\n\t\t\treturn 0, nil, nil, errors.New(\"target name cannot be specified for %v\", k)\n\t\t}\n\t\tif !k.IsValid() {\n\t\t\treturn 0, nil, nil, errors.New(\"invalid kind: %d\", k)\n\t\t}\n\t\treturn k, nil, nil, nil\n\t}\n}\n\n// findDescriptor finds the descriptor by name,\n// which may be a relative name within some scope.\n//\n// Suppose the scope was \"fizz.buzz\" and the reference was \"Foo.Bar\",\n// then the following full names are searched:\n//   - fizz.buzz.Foo.Bar\n//   - fizz.Foo.Bar\n//   - Foo.Bar\nfunc (r *resolver) findDescriptor(scope protoreflect.FullName, ref partialName) (protoreflect.Descriptor, error) {\n\tif !ref.IsValid() {\n\t\treturn nil, errors.New(\"invalid name reference: %q\", ref)\n\t}\n\tif ref.IsFull() {\n\t\tscope, ref = \"\", ref[1:]\n\t}\n\tvar foundButNotImported protoreflect.Descriptor\n\tfor {\n\t\t// Derive the full name to search.\n\t\ts := protoreflect.FullName(ref)\n\t\tif scope != \"\" {\n\t\t\ts = scope + \".\" + s\n\t\t}\n\n\t\t// Check the current file for the descriptor.\n\t\tif d, ok := r.local[s]; ok {\n\t\t\treturn d, nil\n\t\t}\n\n\t\t// Check the remote registry for the descriptor.\n\t\td, err := r.remote.FindDescriptorByName(s)\n\t\tif err == nil {\n\t\t\t// Only allow descriptors covered by one of the imports.\n\t\t\tif r.imports[d.ParentFile().Path()] {\n\t\t\t\treturn d, nil\n\t\t\t}\n\t\t\tfoundButNotImported = d\n\t\t} else if err != protoregistry.NotFound {\n\t\t\treturn nil, errors.Wrap(err, \"%q\", s)\n\t\t}\n\n\t\t// Continue on at a higher level of scoping.\n\t\tif scope == \"\" {\n\t\t\tif d := foundButNotImported; d != nil {\n\t\t\t\treturn nil, errors.New(\"resolved %q, but %q is not imported\", d.FullName(), d.ParentFile().Path())\n\t\t\t}\n\t\t\treturn nil, protoregistry.NotFound\n\t\t}\n\t\tscope = scope.Parent()\n\t}\n}\n\nfunc (r *resolver) findEnumDescriptor(scope protoreflect.FullName, ref partialName, isWeak bool) (protoreflect.EnumDescriptor, error) {\n\td, err := r.findDescriptor(scope, ref)\n\tif err == protoregistry.NotFound && (r.allowUnresolvable || isWeak) {\n\t\treturn filedesc.PlaceholderEnum(ref.FullName()), nil\n\t} else if err == protoregistry.NotFound {\n\t\treturn nil, errors.New(\"%q not found\", ref.FullName())\n\t} else if err != nil {\n\t\treturn nil, err\n\t}\n\ted, ok := d.(protoreflect.EnumDescriptor)\n\tif !ok {\n\t\treturn nil, errors.New(\"resolved %q, but it is not an enum\", d.FullName())\n\t}\n\treturn ed, nil\n}\n\nfunc (r *resolver) findMessageDescriptor(scope protoreflect.FullName, ref partialName, isWeak bool) (protoreflect.MessageDescriptor, error) {\n\td, err := r.findDescriptor(scope, ref)\n\tif err == protoregistry.NotFound && (r.allowUnresolvable || isWeak) {\n\t\treturn filedesc.PlaceholderMessage(ref.FullName()), nil\n\t} else if err == protoregistry.NotFound {\n\t\treturn nil, errors.New(\"%q not found\", ref.FullName())\n\t} else if err != nil {\n\t\treturn nil, err\n\t}\n\tmd, ok := d.(protoreflect.MessageDescriptor)\n\tif !ok {\n\t\treturn nil, errors.New(\"resolved %q, but it is not an message\", d.FullName())\n\t}\n\treturn md, nil\n}\n\n// partialName is the partial name. A leading dot means that the name is full,\n// otherwise the name is relative to some current scope.\n// See google.protobuf.FieldDescriptorProto.type_name.\ntype partialName string\n\nfunc (s partialName) IsFull() bool {\n\treturn len(s) > 0 && s[0] == '.'\n}\n\nfunc (s partialName) IsValid() bool {\n\tif s.IsFull() {\n\t\treturn protoreflect.FullName(s[1:]).IsValid()\n\t}\n\treturn protoreflect.FullName(s).IsValid()\n}\n\nconst unknownPrefix = \"*.\"\n\n// FullName converts the partial name to a full name on a best-effort basis.\n// If relative, it creates an invalid full name, using a \"*.\" prefix\n// to indicate that the start of the full name is unknown.\nfunc (s partialName) FullName() protoreflect.FullName {\n\tif s.IsFull() {\n\t\treturn protoreflect.FullName(s[1:])\n\t}\n\treturn protoreflect.FullName(unknownPrefix + s)\n}\n\nfunc unmarshalDefault(s string, fd protoreflect.FieldDescriptor, allowUnresolvable bool) (protoreflect.Value, protoreflect.EnumValueDescriptor, error) {\n\tvar evs protoreflect.EnumValueDescriptors\n\tif fd.Enum() != nil {\n\t\tevs = fd.Enum().Values()\n\t}\n\tv, ev, err := defval.Unmarshal(s, fd.Kind(), evs, defval.Descriptor)\n\tif err != nil && allowUnresolvable && evs != nil && protoreflect.Name(s).IsValid() {\n\t\tv = protoreflect.ValueOfEnum(0)\n\t\tif evs.Len() > 0 {\n\t\t\tv = protoreflect.ValueOfEnum(evs.Get(0).Number())\n\t\t}\n\t\tev = filedesc.PlaceholderEnumValue(fd.Enum().FullName().Parent().Append(protoreflect.Name(s)))\n\t} else if err != nil {\n\t\treturn v, ev, err\n\t}\n\tif !fd.HasPresence() {\n\t\treturn v, ev, errors.New(\"cannot be specified with implicit field presence\")\n\t}\n\tif fd.Kind() == protoreflect.MessageKind || fd.Kind() == protoreflect.GroupKind || fd.Cardinality() == protoreflect.Repeated {\n\t\treturn v, ev, errors.New(\"cannot be specified on composite types\")\n\t}\n\treturn v, ev, nil\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage protodesc\n\nimport (\n\t\"strings\"\n\t\"unicode\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/internal/filedesc\"\n\t\"google.golang.org/protobuf/internal/flags\"\n\t\"google.golang.org/protobuf/internal/genid\"\n\t\"google.golang.org/protobuf/internal/strs\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\n\t\"google.golang.org/protobuf/types/descriptorpb\"\n)\n\nfunc validateEnumDeclarations(es []filedesc.Enum, eds []*descriptorpb.EnumDescriptorProto) error {\n\tfor i, ed := range eds {\n\t\te := &es[i]\n\t\tif err := e.L2.ReservedNames.CheckValid(); err != nil {\n\t\t\treturn errors.New(\"enum %q reserved names has %v\", e.FullName(), err)\n\t\t}\n\t\tif err := e.L2.ReservedRanges.CheckValid(); err != nil {\n\t\t\treturn errors.New(\"enum %q reserved ranges has %v\", e.FullName(), err)\n\t\t}\n\t\tif len(ed.GetValue()) == 0 {\n\t\t\treturn errors.New(\"enum %q must contain at least one value declaration\", e.FullName())\n\t\t}\n\t\tallowAlias := ed.GetOptions().GetAllowAlias()\n\t\tfoundAlias := false\n\t\tfor i := 0; i < e.Values().Len(); i++ {\n\t\t\tv1 := e.Values().Get(i)\n\t\t\tif v2 := e.Values().ByNumber(v1.Number()); v1 != v2 {\n\t\t\t\tfoundAlias = true\n\t\t\t\tif !allowAlias {\n\t\t\t\t\treturn errors.New(\"enum %q has conflicting non-aliased values on number %d: %q with %q\", e.FullName(), v1.Number(), v1.Name(), v2.Name())\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif allowAlias && !foundAlias {\n\t\t\treturn errors.New(\"enum %q allows aliases, but none were found\", e.FullName())\n\t\t}\n\t\tif !e.IsClosed() {\n\t\t\tif v := e.Values().Get(0); v.Number() != 0 {\n\t\t\t\treturn errors.New(\"enum %q using open semantics must have zero number for the first value\", v.FullName())\n\t\t\t}\n\t\t\t// Verify that value names in open enums do not conflict if the\n\t\t\t// case-insensitive prefix is removed.\n\t\t\t// See protoc v3.8.0: src/google/protobuf/descriptor.cc:4991-5055\n\t\t\tnames := map[string]protoreflect.EnumValueDescriptor{}\n\t\t\tprefix := strings.Replace(strings.ToLower(string(e.Name())), \"_\", \"\", -1)\n\t\t\tfor i := 0; i < e.Values().Len(); i++ {\n\t\t\t\tv1 := e.Values().Get(i)\n\t\t\t\ts := strs.EnumValueName(strs.TrimEnumPrefix(string(v1.Name()), prefix))\n\t\t\t\tif v2, ok := names[s]; ok && v1.Number() != v2.Number() {\n\t\t\t\t\treturn errors.New(\"enum %q using open semantics has conflict: %q with %q\", e.FullName(), v1.Name(), v2.Name())\n\t\t\t\t}\n\t\t\t\tnames[s] = v1\n\t\t\t}\n\t\t}\n\n\t\tfor j, vd := range ed.GetValue() {\n\t\t\tv := &e.L2.Values.List[j]\n\t\t\tif vd.Number == nil {\n\t\t\t\treturn errors.New(\"enum value %q must have a specified number\", v.FullName())\n\t\t\t}\n\t\t\tif e.L2.ReservedNames.Has(v.Name()) {\n\t\t\t\treturn errors.New(\"enum value %q must not use reserved name\", v.FullName())\n\t\t\t}\n\t\t\tif e.L2.ReservedRanges.Has(v.Number()) {\n\t\t\t\treturn errors.New(\"enum value %q must not use reserved number %d\", v.FullName(), v.Number())\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc validateMessageDeclarations(file *filedesc.File, ms []filedesc.Message, mds []*descriptorpb.DescriptorProto) error {\n\t// There are a few limited exceptions only for proto3\n\tisProto3 := file.L1.Edition == fromEditionProto(descriptorpb.Edition_EDITION_PROTO3)\n\tfor i, md := range mds {\n\t\tm := &ms[i]\n\n\t\t// Handle the message descriptor itself.\n\t\tisMessageSet := md.GetOptions().GetMessageSetWireFormat()\n\t\tif err := m.L2.ReservedNames.CheckValid(); err != nil {\n\t\t\treturn errors.New(\"message %q reserved names has %v\", m.FullName(), err)\n\t\t}\n\t\tif err := m.L2.ReservedRanges.CheckValid(isMessageSet); err != nil {\n\t\t\treturn errors.New(\"message %q reserved ranges has %v\", m.FullName(), err)\n\t\t}\n\t\tif err := m.L2.ExtensionRanges.CheckValid(isMessageSet); err != nil {\n\t\t\treturn errors.New(\"message %q extension ranges has %v\", m.FullName(), err)\n\t\t}\n\t\tif err := (*filedesc.FieldRanges).CheckOverlap(&m.L2.ReservedRanges, &m.L2.ExtensionRanges); err != nil {\n\t\t\treturn errors.New(\"message %q reserved and extension ranges has %v\", m.FullName(), err)\n\t\t}\n\t\tfor i := 0; i < m.Fields().Len(); i++ {\n\t\t\tf1 := m.Fields().Get(i)\n\t\t\tif f2 := m.Fields().ByNumber(f1.Number()); f1 != f2 {\n\t\t\t\treturn errors.New(\"message %q has conflicting fields: %q with %q\", m.FullName(), f1.Name(), f2.Name())\n\t\t\t}\n\t\t}\n\t\tif isMessageSet && !flags.ProtoLegacy {\n\t\t\treturn errors.New(\"message %q is a MessageSet, which is a legacy proto1 feature that is no longer supported\", m.FullName())\n\t\t}\n\t\tif isMessageSet && (isProto3 || m.Fields().Len() > 0 || m.ExtensionRanges().Len() == 0) {\n\t\t\treturn errors.New(\"message %q is an invalid proto1 MessageSet\", m.FullName())\n\t\t}\n\t\tif isProto3 {\n\t\t\tif m.ExtensionRanges().Len() > 0 {\n\t\t\t\treturn errors.New(\"message %q using proto3 semantics cannot have extension ranges\", m.FullName())\n\t\t\t}\n\t\t}\n\n\t\tfor j, fd := range md.GetField() {\n\t\t\tf := &m.L2.Fields.List[j]\n\t\t\tif m.L2.ReservedNames.Has(f.Name()) {\n\t\t\t\treturn errors.New(\"message field %q must not use reserved name\", f.FullName())\n\t\t\t}\n\t\t\tif !f.Number().IsValid() {\n\t\t\t\treturn errors.New(\"message field %q has an invalid number: %d\", f.FullName(), f.Number())\n\t\t\t}\n\t\t\tif !f.Cardinality().IsValid() {\n\t\t\t\treturn errors.New(\"message field %q has an invalid cardinality: %d\", f.FullName(), f.Cardinality())\n\t\t\t}\n\t\t\tif m.L2.ReservedRanges.Has(f.Number()) {\n\t\t\t\treturn errors.New(\"message field %q must not use reserved number %d\", f.FullName(), f.Number())\n\t\t\t}\n\t\t\tif m.L2.ExtensionRanges.Has(f.Number()) {\n\t\t\t\treturn errors.New(\"message field %q with number %d in extension range\", f.FullName(), f.Number())\n\t\t\t}\n\t\t\tif fd.Extendee != nil {\n\t\t\t\treturn errors.New(\"message field %q may not have extendee: %q\", f.FullName(), fd.GetExtendee())\n\t\t\t}\n\t\t\tif f.L1.IsProto3Optional {\n\t\t\t\tif !isProto3 {\n\t\t\t\t\treturn errors.New(\"message field %q under proto3 optional semantics must be specified in the proto3 syntax\", f.FullName())\n\t\t\t\t}\n\t\t\t\tif f.Cardinality() != protoreflect.Optional {\n\t\t\t\t\treturn errors.New(\"message field %q under proto3 optional semantics must have optional cardinality\", f.FullName())\n\t\t\t\t}\n\t\t\t\tif f.ContainingOneof() != nil && f.ContainingOneof().Fields().Len() != 1 {\n\t\t\t\t\treturn errors.New(\"message field %q under proto3 optional semantics must be within a single element oneof\", f.FullName())\n\t\t\t\t}\n\t\t\t}\n\t\t\tif f.IsWeak() && !flags.ProtoLegacy {\n\t\t\t\treturn errors.New(\"message field %q is a weak field, which is a legacy proto1 feature that is no longer supported\", f.FullName())\n\t\t\t}\n\t\t\tif f.IsWeak() && (!f.HasPresence() || !isOptionalMessage(f) || f.ContainingOneof() != nil) {\n\t\t\t\treturn errors.New(\"message field %q may only be weak for an optional message\", f.FullName())\n\t\t\t}\n\t\t\tif f.IsPacked() && !isPackable(f) {\n\t\t\t\treturn errors.New(\"message field %q is not packable\", f.FullName())\n\t\t\t}\n\t\t\tif err := checkValidGroup(file, f); err != nil {\n\t\t\t\treturn errors.New(\"message field %q is an invalid group: %v\", f.FullName(), err)\n\t\t\t}\n\t\t\tif err := checkValidMap(f); err != nil {\n\t\t\t\treturn errors.New(\"message field %q is an invalid map: %v\", f.FullName(), err)\n\t\t\t}\n\t\t\tif isProto3 {\n\t\t\t\tif f.Cardinality() == protoreflect.Required {\n\t\t\t\t\treturn errors.New(\"message field %q using proto3 semantics cannot be required\", f.FullName())\n\t\t\t\t}\n\t\t\t\tif f.Enum() != nil && !f.Enum().IsPlaceholder() && f.Enum().IsClosed() {\n\t\t\t\t\treturn errors.New(\"message field %q using proto3 semantics may only depend on open enums\", f.FullName())\n\t\t\t\t}\n\t\t\t}\n\t\t\tif f.Cardinality() == protoreflect.Optional && !f.HasPresence() && f.Enum() != nil && !f.Enum().IsPlaceholder() && f.Enum().IsClosed() {\n\t\t\t\treturn errors.New(\"message field %q with implicit presence may only use open enums\", f.FullName())\n\t\t\t}\n\t\t}\n\t\tseenSynthetic := false // synthetic oneofs for proto3 optional must come after real oneofs\n\t\tfor j := range md.GetOneofDecl() {\n\t\t\to := &m.L2.Oneofs.List[j]\n\t\t\tif o.Fields().Len() == 0 {\n\t\t\t\treturn errors.New(\"message oneof %q must contain at least one field declaration\", o.FullName())\n\t\t\t}\n\t\t\tif n := o.Fields().Len(); n-1 != (o.Fields().Get(n-1).Index() - o.Fields().Get(0).Index()) {\n\t\t\t\treturn errors.New(\"message oneof %q must have consecutively declared fields\", o.FullName())\n\t\t\t}\n\n\t\t\tif o.IsSynthetic() {\n\t\t\t\tseenSynthetic = true\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif !o.IsSynthetic() && seenSynthetic {\n\t\t\t\treturn errors.New(\"message oneof %q must be declared before synthetic oneofs\", o.FullName())\n\t\t\t}\n\n\t\t\tfor i := 0; i < o.Fields().Len(); i++ {\n\t\t\t\tf := o.Fields().Get(i)\n\t\t\t\tif f.Cardinality() != protoreflect.Optional {\n\t\t\t\t\treturn errors.New(\"message field %q belongs in a oneof and must be optional\", f.FullName())\n\t\t\t\t}\n\t\t\t\tif f.IsWeak() {\n\t\t\t\t\treturn errors.New(\"message field %q belongs in a oneof and must not be a weak reference\", f.FullName())\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif err := validateEnumDeclarations(m.L1.Enums.List, md.GetEnumType()); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := validateMessageDeclarations(file, m.L1.Messages.List, md.GetNestedType()); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := validateExtensionDeclarations(file, m.L1.Extensions.List, md.GetExtension()); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc validateExtensionDeclarations(f *filedesc.File, xs []filedesc.Extension, xds []*descriptorpb.FieldDescriptorProto) error {\n\tfor i, xd := range xds {\n\t\tx := &xs[i]\n\t\t// NOTE: Avoid using the IsValid method since extensions to MessageSet\n\t\t// may have a field number higher than normal. This check only verifies\n\t\t// that the number is not negative or reserved. We check again later\n\t\t// if we know that the extendee is definitely not a MessageSet.\n\t\tif n := x.Number(); n < 0 || (protowire.FirstReservedNumber <= n && n <= protowire.LastReservedNumber) {\n\t\t\treturn errors.New(\"extension field %q has an invalid number: %d\", x.FullName(), x.Number())\n\t\t}\n\t\tif !x.Cardinality().IsValid() || x.Cardinality() == protoreflect.Required {\n\t\t\treturn errors.New(\"extension field %q has an invalid cardinality: %d\", x.FullName(), x.Cardinality())\n\t\t}\n\t\tif xd.JsonName != nil {\n\t\t\t// A bug in older versions of protoc would always populate the\n\t\t\t// \"json_name\" option for extensions when it is meaningless.\n\t\t\t// When it did so, it would always use the camel-cased field name.\n\t\t\tif xd.GetJsonName() != strs.JSONCamelCase(string(x.Name())) {\n\t\t\t\treturn errors.New(\"extension field %q may not have an explicitly set JSON name: %q\", x.FullName(), xd.GetJsonName())\n\t\t\t}\n\t\t}\n\t\tif xd.OneofIndex != nil {\n\t\t\treturn errors.New(\"extension field %q may not be part of a oneof\", x.FullName())\n\t\t}\n\t\tif md := x.ContainingMessage(); !md.IsPlaceholder() {\n\t\t\tif !md.ExtensionRanges().Has(x.Number()) {\n\t\t\t\treturn errors.New(\"extension field %q extends %q with non-extension field number: %d\", x.FullName(), md.FullName(), x.Number())\n\t\t\t}\n\t\t\tisMessageSet := md.Options().(*descriptorpb.MessageOptions).GetMessageSetWireFormat()\n\t\t\tif isMessageSet && !isOptionalMessage(x) {\n\t\t\t\treturn errors.New(\"extension field %q extends MessageSet and must be an optional message\", x.FullName())\n\t\t\t}\n\t\t\tif !isMessageSet && !x.Number().IsValid() {\n\t\t\t\treturn errors.New(\"extension field %q has an invalid number: %d\", x.FullName(), x.Number())\n\t\t\t}\n\t\t}\n\t\tif xd.GetOptions().GetWeak() {\n\t\t\treturn errors.New(\"extension field %q cannot be a weak reference\", x.FullName())\n\t\t}\n\t\tif x.IsPacked() && !isPackable(x) {\n\t\t\treturn errors.New(\"extension field %q is not packable\", x.FullName())\n\t\t}\n\t\tif err := checkValidGroup(f, x); err != nil {\n\t\t\treturn errors.New(\"extension field %q is an invalid group: %v\", x.FullName(), err)\n\t\t}\n\t\tif md := x.Message(); md != nil && md.IsMapEntry() {\n\t\t\treturn errors.New(\"extension field %q cannot be a map entry\", x.FullName())\n\t\t}\n\t\tif f.L1.Edition == fromEditionProto(descriptorpb.Edition_EDITION_PROTO3) {\n\t\t\tswitch x.ContainingMessage().FullName() {\n\t\t\tcase (*descriptorpb.FileOptions)(nil).ProtoReflect().Descriptor().FullName():\n\t\t\tcase (*descriptorpb.EnumOptions)(nil).ProtoReflect().Descriptor().FullName():\n\t\t\tcase (*descriptorpb.EnumValueOptions)(nil).ProtoReflect().Descriptor().FullName():\n\t\t\tcase (*descriptorpb.MessageOptions)(nil).ProtoReflect().Descriptor().FullName():\n\t\t\tcase (*descriptorpb.FieldOptions)(nil).ProtoReflect().Descriptor().FullName():\n\t\t\tcase (*descriptorpb.OneofOptions)(nil).ProtoReflect().Descriptor().FullName():\n\t\t\tcase (*descriptorpb.ExtensionRangeOptions)(nil).ProtoReflect().Descriptor().FullName():\n\t\t\tcase (*descriptorpb.ServiceOptions)(nil).ProtoReflect().Descriptor().FullName():\n\t\t\tcase (*descriptorpb.MethodOptions)(nil).ProtoReflect().Descriptor().FullName():\n\t\t\tdefault:\n\t\t\t\treturn errors.New(\"extension field %q cannot be declared in proto3 unless extended descriptor options\", x.FullName())\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\n// isOptionalMessage reports whether this is an optional message.\n// If the kind is unknown, it is assumed to be a message.\nfunc isOptionalMessage(fd protoreflect.FieldDescriptor) bool {\n\treturn (fd.Kind() == 0 || fd.Kind() == protoreflect.MessageKind) && fd.Cardinality() == protoreflect.Optional\n}\n\n// isPackable checks whether the pack option can be specified.\nfunc isPackable(fd protoreflect.FieldDescriptor) bool {\n\tswitch fd.Kind() {\n\tcase protoreflect.StringKind, protoreflect.BytesKind, protoreflect.MessageKind, protoreflect.GroupKind:\n\t\treturn false\n\t}\n\treturn fd.IsList()\n}\n\n// checkValidGroup reports whether fd is a valid group according to the same\n// rules that protoc imposes.\nfunc checkValidGroup(f *filedesc.File, fd protoreflect.FieldDescriptor) error {\n\tmd := fd.Message()\n\tswitch {\n\tcase fd.Kind() != protoreflect.GroupKind:\n\t\treturn nil\n\tcase f.L1.Edition == fromEditionProto(descriptorpb.Edition_EDITION_PROTO3):\n\t\treturn errors.New(\"invalid under proto3 semantics\")\n\tcase md == nil || md.IsPlaceholder():\n\t\treturn errors.New(\"message must be resolvable\")\n\t}\n\tif f.L1.Edition < fromEditionProto(descriptorpb.Edition_EDITION_2023) {\n\t\tswitch {\n\t\tcase fd.FullName().Parent() != md.FullName().Parent():\n\t\t\treturn errors.New(\"message and field must be declared in the same scope\")\n\t\tcase !unicode.IsUpper(rune(md.Name()[0])):\n\t\t\treturn errors.New(\"message name must start with an uppercase\")\n\t\tcase fd.Name() != protoreflect.Name(strings.ToLower(string(md.Name()))):\n\t\t\treturn errors.New(\"field name must be lowercased form of the message name\")\n\t\t}\n\t}\n\treturn nil\n}\n\n// checkValidMap checks whether the field is a valid map according to the same\n// rules that protoc imposes.\n// See protoc v3.8.0: src/google/protobuf/descriptor.cc:6045-6115\nfunc checkValidMap(fd protoreflect.FieldDescriptor) error {\n\tmd := fd.Message()\n\tswitch {\n\tcase md == nil || !md.IsMapEntry():\n\t\treturn nil\n\tcase fd.FullName().Parent() != md.FullName().Parent():\n\t\treturn errors.New(\"message and field must be declared in the same scope\")\n\tcase md.Name() != protoreflect.Name(strs.MapEntryName(string(fd.Name()))):\n\t\treturn errors.New(\"incorrect implicit map entry name\")\n\tcase fd.Cardinality() != protoreflect.Repeated:\n\t\treturn errors.New(\"field must be repeated\")\n\tcase md.Fields().Len() != 2:\n\t\treturn errors.New(\"message must have exactly two fields\")\n\tcase md.ExtensionRanges().Len() > 0:\n\t\treturn errors.New(\"message must not have any extension ranges\")\n\tcase md.Enums().Len()+md.Messages().Len()+md.Extensions().Len() > 0:\n\t\treturn errors.New(\"message must not have any nested declarations\")\n\t}\n\tkf := md.Fields().Get(0)\n\tvf := md.Fields().Get(1)\n\tswitch {\n\tcase kf.Name() != genid.MapEntry_Key_field_name || kf.Number() != genid.MapEntry_Key_field_number || kf.Cardinality() != protoreflect.Optional || kf.ContainingOneof() != nil || kf.HasDefault():\n\t\treturn errors.New(\"invalid key field\")\n\tcase vf.Name() != genid.MapEntry_Value_field_name || vf.Number() != genid.MapEntry_Value_field_number || vf.Cardinality() != protoreflect.Optional || vf.ContainingOneof() != nil || vf.HasDefault():\n\t\treturn errors.New(\"invalid value field\")\n\t}\n\tswitch kf.Kind() {\n\tcase protoreflect.BoolKind: // bool\n\tcase protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind: // int32\n\tcase protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind: // int64\n\tcase protoreflect.Uint32Kind, protoreflect.Fixed32Kind: // uint32\n\tcase protoreflect.Uint64Kind, protoreflect.Fixed64Kind: // uint64\n\tcase protoreflect.StringKind: // string\n\tdefault:\n\t\treturn errors.New(\"invalid key kind: %v\", kf.Kind())\n\t}\n\tif e := vf.Enum(); e != nil && e.Values().Len() > 0 && e.Values().Get(0).Number() != 0 {\n\t\treturn errors.New(\"map enum value must have zero number for the first value\")\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/reflect/protodesc/editions.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage protodesc\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"sync\"\n\n\t\"google.golang.org/protobuf/internal/editiondefaults\"\n\t\"google.golang.org/protobuf/internal/filedesc\"\n\t\"google.golang.org/protobuf/proto\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\t\"google.golang.org/protobuf/types/descriptorpb\"\n\t\"google.golang.org/protobuf/types/gofeaturespb\"\n)\n\nvar defaults = &descriptorpb.FeatureSetDefaults{}\nvar defaultsCacheMu sync.Mutex\nvar defaultsCache = make(map[filedesc.Edition]*descriptorpb.FeatureSet)\n\nfunc init() {\n\terr := proto.Unmarshal(editiondefaults.Defaults, defaults)\n\tif err != nil {\n\t\tfmt.Fprintf(os.Stderr, \"unmarshal editions defaults: %v\\n\", err)\n\t\tos.Exit(1)\n\t}\n}\n\nfunc fromEditionProto(epb descriptorpb.Edition) filedesc.Edition {\n\treturn filedesc.Edition(epb)\n}\n\nfunc toEditionProto(ed filedesc.Edition) descriptorpb.Edition {\n\tswitch ed {\n\tcase filedesc.EditionUnknown:\n\t\treturn descriptorpb.Edition_EDITION_UNKNOWN\n\tcase filedesc.EditionProto2:\n\t\treturn descriptorpb.Edition_EDITION_PROTO2\n\tcase filedesc.EditionProto3:\n\t\treturn descriptorpb.Edition_EDITION_PROTO3\n\tcase filedesc.Edition2023:\n\t\treturn descriptorpb.Edition_EDITION_2023\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"unknown value for edition: %v\", ed))\n\t}\n}\n\nfunc getFeatureSetFor(ed filedesc.Edition) *descriptorpb.FeatureSet {\n\tdefaultsCacheMu.Lock()\n\tdefer defaultsCacheMu.Unlock()\n\tif def, ok := defaultsCache[ed]; ok {\n\t\treturn def\n\t}\n\tedpb := toEditionProto(ed)\n\tif defaults.GetMinimumEdition() > edpb || defaults.GetMaximumEdition() < edpb {\n\t\t// This should never happen protodesc.(FileOptions).New would fail when\n\t\t// initializing the file descriptor.\n\t\t// This most likely means the embedded defaults were not updated.\n\t\tfmt.Fprintf(os.Stderr, \"internal error: unsupported edition %v (did you forget to update the embedded defaults (i.e. the bootstrap descriptor proto)?)\\n\", edpb)\n\t\tos.Exit(1)\n\t}\n\tfsed := defaults.GetDefaults()[0]\n\t// Using a linear search for now.\n\t// Editions are guaranteed to be sorted and thus we could use a binary search.\n\t// Given that there are only a handful of editions (with one more per year)\n\t// there is not much reason to use a binary search.\n\tfor _, def := range defaults.GetDefaults() {\n\t\tif def.GetEdition() <= edpb {\n\t\t\tfsed = def\n\t\t} else {\n\t\t\tbreak\n\t\t}\n\t}\n\tfs := proto.Clone(fsed.GetFixedFeatures()).(*descriptorpb.FeatureSet)\n\tproto.Merge(fs, fsed.GetOverridableFeatures())\n\tdefaultsCache[ed] = fs\n\treturn fs\n}\n\n// mergeEditionFeatures merges the parent and child feature sets. This function\n// should be used when initializing Go descriptors from descriptor protos which\n// is why the parent is a filedesc.EditionsFeatures (Go representation) while\n// the child is a descriptorproto.FeatureSet (protoc representation).\n// Any feature set by the child overwrites what is set by the parent.\nfunc mergeEditionFeatures(parentDesc protoreflect.Descriptor, child *descriptorpb.FeatureSet) filedesc.EditionFeatures {\n\tvar parentFS filedesc.EditionFeatures\n\tswitch p := parentDesc.(type) {\n\tcase *filedesc.File:\n\t\tparentFS = p.L1.EditionFeatures\n\tcase *filedesc.Message:\n\t\tparentFS = p.L1.EditionFeatures\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"unknown parent type %T\", parentDesc))\n\t}\n\tif child == nil {\n\t\treturn parentFS\n\t}\n\tif fp := child.FieldPresence; fp != nil {\n\t\tparentFS.IsFieldPresence = *fp == descriptorpb.FeatureSet_LEGACY_REQUIRED ||\n\t\t\t*fp == descriptorpb.FeatureSet_EXPLICIT\n\t\tparentFS.IsLegacyRequired = *fp == descriptorpb.FeatureSet_LEGACY_REQUIRED\n\t}\n\tif et := child.EnumType; et != nil {\n\t\tparentFS.IsOpenEnum = *et == descriptorpb.FeatureSet_OPEN\n\t}\n\n\tif rfe := child.RepeatedFieldEncoding; rfe != nil {\n\t\tparentFS.IsPacked = *rfe == descriptorpb.FeatureSet_PACKED\n\t}\n\n\tif utf8val := child.Utf8Validation; utf8val != nil {\n\t\tparentFS.IsUTF8Validated = *utf8val == descriptorpb.FeatureSet_VERIFY\n\t}\n\n\tif me := child.MessageEncoding; me != nil {\n\t\tparentFS.IsDelimitedEncoded = *me == descriptorpb.FeatureSet_DELIMITED\n\t}\n\n\tif jf := child.JsonFormat; jf != nil {\n\t\tparentFS.IsJSONCompliant = *jf == descriptorpb.FeatureSet_ALLOW\n\t}\n\n\tif goFeatures, ok := proto.GetExtension(child, gofeaturespb.E_Go).(*gofeaturespb.GoFeatures); ok && goFeatures != nil {\n\t\tif luje := goFeatures.LegacyUnmarshalJsonEnum; luje != nil {\n\t\t\tparentFS.GenerateLegacyUnmarshalJSON = *luje\n\t\t}\n\t}\n\n\treturn parentFS\n}\n\n// initFileDescFromFeatureSet initializes editions related fields in fd based\n// on fs. If fs is nil it is assumed to be an empty featureset and all fields\n// will be initialized with the appropriate default. fd.L1.Edition must be set\n// before calling this function.\nfunc initFileDescFromFeatureSet(fd *filedesc.File, fs *descriptorpb.FeatureSet) {\n\tdfs := getFeatureSetFor(fd.L1.Edition)\n\t// initialize the featureset with the defaults\n\tfd.L1.EditionFeatures = mergeEditionFeatures(fd, dfs)\n\t// overwrite any options explicitly specified\n\tfd.L1.EditionFeatures = mergeEditionFeatures(fd, fs)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/reflect/protodesc/proto.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage protodesc\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\n\t\"google.golang.org/protobuf/internal/encoding/defval\"\n\t\"google.golang.org/protobuf/internal/strs\"\n\t\"google.golang.org/protobuf/proto\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n\n\t\"google.golang.org/protobuf/types/descriptorpb\"\n)\n\n// ToFileDescriptorProto copies a [protoreflect.FileDescriptor] into a\n// google.protobuf.FileDescriptorProto message.\nfunc ToFileDescriptorProto(file protoreflect.FileDescriptor) *descriptorpb.FileDescriptorProto {\n\tp := &descriptorpb.FileDescriptorProto{\n\t\tName:    proto.String(file.Path()),\n\t\tOptions: proto.Clone(file.Options()).(*descriptorpb.FileOptions),\n\t}\n\tif file.Package() != \"\" {\n\t\tp.Package = proto.String(string(file.Package()))\n\t}\n\tfor i, imports := 0, file.Imports(); i < imports.Len(); i++ {\n\t\timp := imports.Get(i)\n\t\tp.Dependency = append(p.Dependency, imp.Path())\n\t\tif imp.IsPublic {\n\t\t\tp.PublicDependency = append(p.PublicDependency, int32(i))\n\t\t}\n\t\tif imp.IsWeak {\n\t\t\tp.WeakDependency = append(p.WeakDependency, int32(i))\n\t\t}\n\t}\n\tfor i, locs := 0, file.SourceLocations(); i < locs.Len(); i++ {\n\t\tloc := locs.Get(i)\n\t\tl := &descriptorpb.SourceCodeInfo_Location{}\n\t\tl.Path = append(l.Path, loc.Path...)\n\t\tif loc.StartLine == loc.EndLine {\n\t\t\tl.Span = []int32{int32(loc.StartLine), int32(loc.StartColumn), int32(loc.EndColumn)}\n\t\t} else {\n\t\t\tl.Span = []int32{int32(loc.StartLine), int32(loc.StartColumn), int32(loc.EndLine), int32(loc.EndColumn)}\n\t\t}\n\t\tl.LeadingDetachedComments = append([]string(nil), loc.LeadingDetachedComments...)\n\t\tif loc.LeadingComments != \"\" {\n\t\t\tl.LeadingComments = proto.String(loc.LeadingComments)\n\t\t}\n\t\tif loc.TrailingComments != \"\" {\n\t\t\tl.TrailingComments = proto.String(loc.TrailingComments)\n\t\t}\n\t\tif p.SourceCodeInfo == nil {\n\t\t\tp.SourceCodeInfo = &descriptorpb.SourceCodeInfo{}\n\t\t}\n\t\tp.SourceCodeInfo.Location = append(p.SourceCodeInfo.Location, l)\n\n\t}\n\tfor i, messages := 0, file.Messages(); i < messages.Len(); i++ {\n\t\tp.MessageType = append(p.MessageType, ToDescriptorProto(messages.Get(i)))\n\t}\n\tfor i, enums := 0, file.Enums(); i < enums.Len(); i++ {\n\t\tp.EnumType = append(p.EnumType, ToEnumDescriptorProto(enums.Get(i)))\n\t}\n\tfor i, services := 0, file.Services(); i < services.Len(); i++ {\n\t\tp.Service = append(p.Service, ToServiceDescriptorProto(services.Get(i)))\n\t}\n\tfor i, exts := 0, file.Extensions(); i < exts.Len(); i++ {\n\t\tp.Extension = append(p.Extension, ToFieldDescriptorProto(exts.Get(i)))\n\t}\n\tif syntax := file.Syntax(); syntax != protoreflect.Proto2 && syntax.IsValid() {\n\t\tp.Syntax = proto.String(file.Syntax().String())\n\t}\n\tif file.Syntax() == protoreflect.Editions {\n\t\tdesc := file\n\t\tif fileImportDesc, ok := file.(protoreflect.FileImport); ok {\n\t\t\tdesc = fileImportDesc.FileDescriptor\n\t\t}\n\n\t\tif editionsInterface, ok := desc.(interface{ Edition() int32 }); ok {\n\t\t\tp.Edition = descriptorpb.Edition(editionsInterface.Edition()).Enum()\n\t\t}\n\t}\n\treturn p\n}\n\n// ToDescriptorProto copies a [protoreflect.MessageDescriptor] into a\n// google.protobuf.DescriptorProto message.\nfunc ToDescriptorProto(message protoreflect.MessageDescriptor) *descriptorpb.DescriptorProto {\n\tp := &descriptorpb.DescriptorProto{\n\t\tName:    proto.String(string(message.Name())),\n\t\tOptions: proto.Clone(message.Options()).(*descriptorpb.MessageOptions),\n\t}\n\tfor i, fields := 0, message.Fields(); i < fields.Len(); i++ {\n\t\tp.Field = append(p.Field, ToFieldDescriptorProto(fields.Get(i)))\n\t}\n\tfor i, exts := 0, message.Extensions(); i < exts.Len(); i++ {\n\t\tp.Extension = append(p.Extension, ToFieldDescriptorProto(exts.Get(i)))\n\t}\n\tfor i, messages := 0, message.Messages(); i < messages.Len(); i++ {\n\t\tp.NestedType = append(p.NestedType, ToDescriptorProto(messages.Get(i)))\n\t}\n\tfor i, enums := 0, message.Enums(); i < enums.Len(); i++ {\n\t\tp.EnumType = append(p.EnumType, ToEnumDescriptorProto(enums.Get(i)))\n\t}\n\tfor i, xranges := 0, message.ExtensionRanges(); i < xranges.Len(); i++ {\n\t\txrange := xranges.Get(i)\n\t\tp.ExtensionRange = append(p.ExtensionRange, &descriptorpb.DescriptorProto_ExtensionRange{\n\t\t\tStart:   proto.Int32(int32(xrange[0])),\n\t\t\tEnd:     proto.Int32(int32(xrange[1])),\n\t\t\tOptions: proto.Clone(message.ExtensionRangeOptions(i)).(*descriptorpb.ExtensionRangeOptions),\n\t\t})\n\t}\n\tfor i, oneofs := 0, message.Oneofs(); i < oneofs.Len(); i++ {\n\t\tp.OneofDecl = append(p.OneofDecl, ToOneofDescriptorProto(oneofs.Get(i)))\n\t}\n\tfor i, ranges := 0, message.ReservedRanges(); i < ranges.Len(); i++ {\n\t\trrange := ranges.Get(i)\n\t\tp.ReservedRange = append(p.ReservedRange, &descriptorpb.DescriptorProto_ReservedRange{\n\t\t\tStart: proto.Int32(int32(rrange[0])),\n\t\t\tEnd:   proto.Int32(int32(rrange[1])),\n\t\t})\n\t}\n\tfor i, names := 0, message.ReservedNames(); i < names.Len(); i++ {\n\t\tp.ReservedName = append(p.ReservedName, string(names.Get(i)))\n\t}\n\treturn p\n}\n\n// ToFieldDescriptorProto copies a [protoreflect.FieldDescriptor] into a\n// google.protobuf.FieldDescriptorProto message.\nfunc ToFieldDescriptorProto(field protoreflect.FieldDescriptor) *descriptorpb.FieldDescriptorProto {\n\tp := &descriptorpb.FieldDescriptorProto{\n\t\tName:    proto.String(string(field.Name())),\n\t\tNumber:  proto.Int32(int32(field.Number())),\n\t\tLabel:   descriptorpb.FieldDescriptorProto_Label(field.Cardinality()).Enum(),\n\t\tOptions: proto.Clone(field.Options()).(*descriptorpb.FieldOptions),\n\t}\n\tif field.IsExtension() {\n\t\tp.Extendee = fullNameOf(field.ContainingMessage())\n\t}\n\tif field.Kind().IsValid() {\n\t\tp.Type = descriptorpb.FieldDescriptorProto_Type(field.Kind()).Enum()\n\t}\n\tif field.Enum() != nil {\n\t\tp.TypeName = fullNameOf(field.Enum())\n\t}\n\tif field.Message() != nil {\n\t\tp.TypeName = fullNameOf(field.Message())\n\t}\n\tif field.HasJSONName() {\n\t\t// A bug in older versions of protoc would always populate the\n\t\t// \"json_name\" option for extensions when it is meaningless.\n\t\t// When it did so, it would always use the camel-cased field name.\n\t\tif field.IsExtension() {\n\t\t\tp.JsonName = proto.String(strs.JSONCamelCase(string(field.Name())))\n\t\t} else {\n\t\t\tp.JsonName = proto.String(field.JSONName())\n\t\t}\n\t}\n\tif field.Syntax() == protoreflect.Proto3 && field.HasOptionalKeyword() {\n\t\tp.Proto3Optional = proto.Bool(true)\n\t}\n\tif field.Syntax() == protoreflect.Editions {\n\t\t// Editions have no group keyword, this type is only set so that downstream users continue\n\t\t// treating this as delimited encoding.\n\t\tif p.GetType() == descriptorpb.FieldDescriptorProto_TYPE_GROUP {\n\t\t\tp.Type = descriptorpb.FieldDescriptorProto_TYPE_MESSAGE.Enum()\n\t\t}\n\t\t// Editions have no required keyword, this label is only set so that downstream users continue\n\t\t// treating it as required.\n\t\tif p.GetLabel() == descriptorpb.FieldDescriptorProto_LABEL_REQUIRED {\n\t\t\tp.Label = descriptorpb.FieldDescriptorProto_LABEL_OPTIONAL.Enum()\n\t\t}\n\t}\n\tif field.HasDefault() {\n\t\tdef, err := defval.Marshal(field.Default(), field.DefaultEnumValue(), field.Kind(), defval.Descriptor)\n\t\tif err != nil && field.DefaultEnumValue() != nil {\n\t\t\tdef = string(field.DefaultEnumValue().Name()) // occurs for unresolved enum values\n\t\t} else if err != nil {\n\t\t\tpanic(fmt.Sprintf(\"%v: %v\", field.FullName(), err))\n\t\t}\n\t\tp.DefaultValue = proto.String(def)\n\t}\n\tif oneof := field.ContainingOneof(); oneof != nil {\n\t\tp.OneofIndex = proto.Int32(int32(oneof.Index()))\n\t}\n\treturn p\n}\n\n// ToOneofDescriptorProto copies a [protoreflect.OneofDescriptor] into a\n// google.protobuf.OneofDescriptorProto message.\nfunc ToOneofDescriptorProto(oneof protoreflect.OneofDescriptor) *descriptorpb.OneofDescriptorProto {\n\treturn &descriptorpb.OneofDescriptorProto{\n\t\tName:    proto.String(string(oneof.Name())),\n\t\tOptions: proto.Clone(oneof.Options()).(*descriptorpb.OneofOptions),\n\t}\n}\n\n// ToEnumDescriptorProto copies a [protoreflect.EnumDescriptor] into a\n// google.protobuf.EnumDescriptorProto message.\nfunc ToEnumDescriptorProto(enum protoreflect.EnumDescriptor) *descriptorpb.EnumDescriptorProto {\n\tp := &descriptorpb.EnumDescriptorProto{\n\t\tName:    proto.String(string(enum.Name())),\n\t\tOptions: proto.Clone(enum.Options()).(*descriptorpb.EnumOptions),\n\t}\n\tfor i, values := 0, enum.Values(); i < values.Len(); i++ {\n\t\tp.Value = append(p.Value, ToEnumValueDescriptorProto(values.Get(i)))\n\t}\n\tfor i, ranges := 0, enum.ReservedRanges(); i < ranges.Len(); i++ {\n\t\trrange := ranges.Get(i)\n\t\tp.ReservedRange = append(p.ReservedRange, &descriptorpb.EnumDescriptorProto_EnumReservedRange{\n\t\t\tStart: proto.Int32(int32(rrange[0])),\n\t\t\tEnd:   proto.Int32(int32(rrange[1])),\n\t\t})\n\t}\n\tfor i, names := 0, enum.ReservedNames(); i < names.Len(); i++ {\n\t\tp.ReservedName = append(p.ReservedName, string(names.Get(i)))\n\t}\n\treturn p\n}\n\n// ToEnumValueDescriptorProto copies a [protoreflect.EnumValueDescriptor] into a\n// google.protobuf.EnumValueDescriptorProto message.\nfunc ToEnumValueDescriptorProto(value protoreflect.EnumValueDescriptor) *descriptorpb.EnumValueDescriptorProto {\n\treturn &descriptorpb.EnumValueDescriptorProto{\n\t\tName:    proto.String(string(value.Name())),\n\t\tNumber:  proto.Int32(int32(value.Number())),\n\t\tOptions: proto.Clone(value.Options()).(*descriptorpb.EnumValueOptions),\n\t}\n}\n\n// ToServiceDescriptorProto copies a [protoreflect.ServiceDescriptor] into a\n// google.protobuf.ServiceDescriptorProto message.\nfunc ToServiceDescriptorProto(service protoreflect.ServiceDescriptor) *descriptorpb.ServiceDescriptorProto {\n\tp := &descriptorpb.ServiceDescriptorProto{\n\t\tName:    proto.String(string(service.Name())),\n\t\tOptions: proto.Clone(service.Options()).(*descriptorpb.ServiceOptions),\n\t}\n\tfor i, methods := 0, service.Methods(); i < methods.Len(); i++ {\n\t\tp.Method = append(p.Method, ToMethodDescriptorProto(methods.Get(i)))\n\t}\n\treturn p\n}\n\n// ToMethodDescriptorProto copies a [protoreflect.MethodDescriptor] into a\n// google.protobuf.MethodDescriptorProto message.\nfunc ToMethodDescriptorProto(method protoreflect.MethodDescriptor) *descriptorpb.MethodDescriptorProto {\n\tp := &descriptorpb.MethodDescriptorProto{\n\t\tName:       proto.String(string(method.Name())),\n\t\tInputType:  fullNameOf(method.Input()),\n\t\tOutputType: fullNameOf(method.Output()),\n\t\tOptions:    proto.Clone(method.Options()).(*descriptorpb.MethodOptions),\n\t}\n\tif method.IsStreamingClient() {\n\t\tp.ClientStreaming = proto.Bool(true)\n\t}\n\tif method.IsStreamingServer() {\n\t\tp.ServerStreaming = proto.Bool(true)\n\t}\n\treturn p\n}\n\nfunc fullNameOf(d protoreflect.Descriptor) *string {\n\tif d == nil {\n\t\treturn nil\n\t}\n\tif strings.HasPrefix(string(d.FullName()), unknownPrefix) {\n\t\treturn proto.String(string(d.FullName()[len(unknownPrefix):]))\n\t}\n\treturn proto.String(\".\" + string(d.FullName()))\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/reflect/protoreflect/methods.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage protoreflect\n\nimport (\n\t\"google.golang.org/protobuf/internal/pragma\"\n)\n\n// The following types are used by the fast-path Message.ProtoMethods method.\n//\n// To avoid polluting the public protoreflect API with types used only by\n// low-level implementations, the canonical definitions of these types are\n// in the runtime/protoiface package. The definitions here and in protoiface\n// must be kept in sync.\ntype (\n\tmethods = struct {\n\t\tpragma.NoUnkeyedLiterals\n\t\tFlags            supportFlags\n\t\tSize             func(sizeInput) sizeOutput\n\t\tMarshal          func(marshalInput) (marshalOutput, error)\n\t\tUnmarshal        func(unmarshalInput) (unmarshalOutput, error)\n\t\tMerge            func(mergeInput) mergeOutput\n\t\tCheckInitialized func(checkInitializedInput) (checkInitializedOutput, error)\n\t\tEqual            func(equalInput) equalOutput\n\t}\n\tsupportFlags = uint64\n\tsizeInput    = struct {\n\t\tpragma.NoUnkeyedLiterals\n\t\tMessage Message\n\t\tFlags   uint8\n\t}\n\tsizeOutput = struct {\n\t\tpragma.NoUnkeyedLiterals\n\t\tSize int\n\t}\n\tmarshalInput = struct {\n\t\tpragma.NoUnkeyedLiterals\n\t\tMessage Message\n\t\tBuf     []byte\n\t\tFlags   uint8\n\t}\n\tmarshalOutput = struct {\n\t\tpragma.NoUnkeyedLiterals\n\t\tBuf []byte\n\t}\n\tunmarshalInput = struct {\n\t\tpragma.NoUnkeyedLiterals\n\t\tMessage  Message\n\t\tBuf      []byte\n\t\tFlags    uint8\n\t\tResolver interface {\n\t\t\tFindExtensionByName(field FullName) (ExtensionType, error)\n\t\t\tFindExtensionByNumber(message FullName, field FieldNumber) (ExtensionType, error)\n\t\t}\n\t\tDepth int\n\t}\n\tunmarshalOutput = struct {\n\t\tpragma.NoUnkeyedLiterals\n\t\tFlags uint8\n\t}\n\tmergeInput = struct {\n\t\tpragma.NoUnkeyedLiterals\n\t\tSource      Message\n\t\tDestination Message\n\t}\n\tmergeOutput = struct {\n\t\tpragma.NoUnkeyedLiterals\n\t\tFlags uint8\n\t}\n\tcheckInitializedInput = struct {\n\t\tpragma.NoUnkeyedLiterals\n\t\tMessage Message\n\t}\n\tcheckInitializedOutput = struct {\n\t\tpragma.NoUnkeyedLiterals\n\t}\n\tequalInput = struct {\n\t\tpragma.NoUnkeyedLiterals\n\t\tMessageA Message\n\t\tMessageB Message\n\t}\n\tequalOutput = struct {\n\t\tpragma.NoUnkeyedLiterals\n\t\tEqual bool\n\t}\n)\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package protoreflect provides interfaces to dynamically manipulate messages.\n//\n// This package includes type descriptors which describe the structure of types\n// defined in proto source files and value interfaces which provide the\n// ability to examine and manipulate the contents of messages.\n//\n// # Protocol Buffer Descriptors\n//\n// Protobuf descriptors (e.g., [EnumDescriptor] or [MessageDescriptor])\n// are immutable objects that represent protobuf type information.\n// They are wrappers around the messages declared in descriptor.proto.\n// Protobuf descriptors alone lack any information regarding Go types.\n//\n// Enums and messages generated by this module implement [Enum] and [ProtoMessage],\n// where the Descriptor and ProtoReflect.Descriptor accessors respectively\n// return the protobuf descriptor for the values.\n//\n// The protobuf descriptor interfaces are not meant to be implemented by\n// user code since they might need to be extended in the future to support\n// additions to the protobuf language.\n// The [google.golang.org/protobuf/reflect/protodesc] package converts between\n// google.protobuf.DescriptorProto messages and protobuf descriptors.\n//\n// # Go Type Descriptors\n//\n// A type descriptor (e.g., [EnumType] or [MessageType]) is a constructor for\n// a concrete Go type that represents the associated protobuf descriptor.\n// There is commonly a one-to-one relationship between protobuf descriptors and\n// Go type descriptors, but it can potentially be a one-to-many relationship.\n//\n// Enums and messages generated by this module implement [Enum] and [ProtoMessage],\n// where the Type and ProtoReflect.Type accessors respectively\n// return the protobuf descriptor for the values.\n//\n// The [google.golang.org/protobuf/types/dynamicpb] package can be used to\n// create Go type descriptors from protobuf descriptors.\n//\n// # Value Interfaces\n//\n// The [Enum] and [Message] interfaces provide a reflective view over an\n// enum or message instance. For enums, it provides the ability to retrieve\n// the enum value number for any concrete enum type. For messages, it provides\n// the ability to access or manipulate fields of the message.\n//\n// To convert a [google.golang.org/protobuf/proto.Message] to a [protoreflect.Message], use the\n// former's ProtoReflect method. Since the ProtoReflect method is new to the\n// v2 message interface, it may not be present on older message implementations.\n// The [github.com/golang/protobuf/proto.MessageReflect] function can be used\n// to obtain a reflective view on older messages.\n//\n// # Relationships\n//\n// The following diagrams demonstrate the relationships between\n// various types declared in this package.\n//\n//\t                       ┌───────────────────────────────────┐\n//\t                       V                                   │\n//\t   ┌────────────── New(n) ─────────────┐                   │\n//\t   │                                   │                   │\n//\t   │      ┌──── Descriptor() ──┐       │  ┌── Number() ──┐ │\n//\t   │      │                    V       V  │              V │\n//\t╔════════════╗  ╔════════════════╗  ╔════════╗  ╔════════════╗\n//\t║  EnumType  ║  ║ EnumDescriptor ║  ║  Enum  ║  ║ EnumNumber ║\n//\t╚════════════╝  ╚════════════════╝  ╚════════╝  ╚════════════╝\n//\t      Λ           Λ                   │ │\n//\t      │           └─── Descriptor() ──┘ │\n//\t      │                                 │\n//\t      └────────────────── Type() ───────┘\n//\n// • An [EnumType] describes a concrete Go enum type.\n// It has an EnumDescriptor and can construct an Enum instance.\n//\n// • An [EnumDescriptor] describes an abstract protobuf enum type.\n//\n// • An [Enum] is a concrete enum instance. Generated enums implement Enum.\n//\n//\t  ┌──────────────── New() ─────────────────┐\n//\t  │                                        │\n//\t  │         ┌─── Descriptor() ─────┐       │   ┌── Interface() ───┐\n//\t  │         │                      V       V   │                  V\n//\t╔═════════════╗  ╔═══════════════════╗  ╔═════════╗  ╔══════════════╗\n//\t║ MessageType ║  ║ MessageDescriptor ║  ║ Message ║  ║ ProtoMessage ║\n//\t╚═════════════╝  ╚═══════════════════╝  ╚═════════╝  ╚══════════════╝\n//\t       Λ           Λ                      │ │  Λ                  │\n//\t       │           └──── Descriptor() ────┘ │  └─ ProtoReflect() ─┘\n//\t       │                                    │\n//\t       └─────────────────── Type() ─────────┘\n//\n// • A [MessageType] describes a concrete Go message type.\n// It has a [MessageDescriptor] and can construct a [Message] instance.\n// Just as how Go's [reflect.Type] is a reflective description of a Go type,\n// a [MessageType] is a reflective description of a Go type for a protobuf message.\n//\n// • A [MessageDescriptor] describes an abstract protobuf message type.\n// It has no understanding of Go types. In order to construct a [MessageType]\n// from just a [MessageDescriptor], you can consider looking up the message type\n// in the global registry using the FindMessageByName method on\n// [google.golang.org/protobuf/reflect/protoregistry.GlobalTypes]\n// or constructing a dynamic [MessageType] using\n// [google.golang.org/protobuf/types/dynamicpb.NewMessageType].\n//\n// • A [Message] is a reflective view over a concrete message instance.\n// Generated messages implement [ProtoMessage], which can convert to a [Message].\n// Just as how Go's [reflect.Value] is a reflective view over a Go value,\n// a [Message] is a reflective view over a concrete protobuf message instance.\n// Using Go reflection as an analogy, the [ProtoMessage.ProtoReflect] method is similar to\n// calling [reflect.ValueOf], and the [Message.Interface] method is similar to\n// calling [reflect.Value.Interface].\n//\n//\t      ┌── TypeDescriptor() ──┐    ┌───── Descriptor() ─────┐\n//\t      │                      V    │                        V\n//\t╔═══════════════╗  ╔═════════════════════════╗  ╔═════════════════════╗\n//\t║ ExtensionType ║  ║ ExtensionTypeDescriptor ║  ║ ExtensionDescriptor ║\n//\t╚═══════════════╝  ╚═════════════════════════╝  ╚═════════════════════╝\n//\t      Λ                      │   │ Λ                      │ Λ\n//\t      └─────── Type() ───────┘   │ └─── may implement ────┘ │\n//\t                                 │                          │\n//\t                                 └────── implements ────────┘\n//\n// • An [ExtensionType] describes a concrete Go implementation of an extension.\n// It has an [ExtensionTypeDescriptor] and can convert to/from\n// an abstract [Value] and a Go value.\n//\n// • An [ExtensionTypeDescriptor] is an [ExtensionDescriptor]\n// which also has an [ExtensionType].\n//\n// • An [ExtensionDescriptor] describes an abstract protobuf extension field and\n// may not always be an [ExtensionTypeDescriptor].\npackage protoreflect\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n\t\"google.golang.org/protobuf/internal/pragma\"\n)\n\ntype doNotImplement pragma.DoNotImplement\n\n// ProtoMessage is the top-level interface that all proto messages implement.\n// This is declared in the protoreflect package to avoid a cyclic dependency;\n// use the [google.golang.org/protobuf/proto.Message] type instead, which aliases this type.\ntype ProtoMessage interface{ ProtoReflect() Message }\n\n// Syntax is the language version of the proto file.\ntype Syntax syntax\n\ntype syntax int8 // keep exact type opaque as the int type may change\n\nconst (\n\tProto2   Syntax = 2\n\tProto3   Syntax = 3\n\tEditions Syntax = 4\n)\n\n// IsValid reports whether the syntax is valid.\nfunc (s Syntax) IsValid() bool {\n\tswitch s {\n\tcase Proto2, Proto3, Editions:\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\n// String returns s as a proto source identifier (e.g., \"proto2\").\nfunc (s Syntax) String() string {\n\tswitch s {\n\tcase Proto2:\n\t\treturn \"proto2\"\n\tcase Proto3:\n\t\treturn \"proto3\"\n\tcase Editions:\n\t\treturn \"editions\"\n\tdefault:\n\t\treturn fmt.Sprintf(\"<unknown:%d>\", s)\n\t}\n}\n\n// GoString returns s as a Go source identifier (e.g., \"Proto2\").\nfunc (s Syntax) GoString() string {\n\tswitch s {\n\tcase Proto2:\n\t\treturn \"Proto2\"\n\tcase Proto3:\n\t\treturn \"Proto3\"\n\tdefault:\n\t\treturn fmt.Sprintf(\"Syntax(%d)\", s)\n\t}\n}\n\n// Cardinality determines whether a field is optional, required, or repeated.\ntype Cardinality cardinality\n\ntype cardinality int8 // keep exact type opaque as the int type may change\n\n// Constants as defined by the google.protobuf.Cardinality enumeration.\nconst (\n\tOptional Cardinality = 1 // appears zero or one times\n\tRequired Cardinality = 2 // appears exactly one time; invalid with Proto3\n\tRepeated Cardinality = 3 // appears zero or more times\n)\n\n// IsValid reports whether the cardinality is valid.\nfunc (c Cardinality) IsValid() bool {\n\tswitch c {\n\tcase Optional, Required, Repeated:\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\n// String returns c as a proto source identifier (e.g., \"optional\").\nfunc (c Cardinality) String() string {\n\tswitch c {\n\tcase Optional:\n\t\treturn \"optional\"\n\tcase Required:\n\t\treturn \"required\"\n\tcase Repeated:\n\t\treturn \"repeated\"\n\tdefault:\n\t\treturn fmt.Sprintf(\"<unknown:%d>\", c)\n\t}\n}\n\n// GoString returns c as a Go source identifier (e.g., \"Optional\").\nfunc (c Cardinality) GoString() string {\n\tswitch c {\n\tcase Optional:\n\t\treturn \"Optional\"\n\tcase Required:\n\t\treturn \"Required\"\n\tcase Repeated:\n\t\treturn \"Repeated\"\n\tdefault:\n\t\treturn fmt.Sprintf(\"Cardinality(%d)\", c)\n\t}\n}\n\n// Kind indicates the basic proto kind of a field.\ntype Kind kind\n\ntype kind int8 // keep exact type opaque as the int type may change\n\n// Constants as defined by the google.protobuf.Field.Kind enumeration.\nconst (\n\tBoolKind     Kind = 8\n\tEnumKind     Kind = 14\n\tInt32Kind    Kind = 5\n\tSint32Kind   Kind = 17\n\tUint32Kind   Kind = 13\n\tInt64Kind    Kind = 3\n\tSint64Kind   Kind = 18\n\tUint64Kind   Kind = 4\n\tSfixed32Kind Kind = 15\n\tFixed32Kind  Kind = 7\n\tFloatKind    Kind = 2\n\tSfixed64Kind Kind = 16\n\tFixed64Kind  Kind = 6\n\tDoubleKind   Kind = 1\n\tStringKind   Kind = 9\n\tBytesKind    Kind = 12\n\tMessageKind  Kind = 11\n\tGroupKind    Kind = 10\n)\n\n// IsValid reports whether the kind is valid.\nfunc (k Kind) IsValid() bool {\n\tswitch k {\n\tcase BoolKind, EnumKind,\n\t\tInt32Kind, Sint32Kind, Uint32Kind,\n\t\tInt64Kind, Sint64Kind, Uint64Kind,\n\t\tSfixed32Kind, Fixed32Kind, FloatKind,\n\t\tSfixed64Kind, Fixed64Kind, DoubleKind,\n\t\tStringKind, BytesKind, MessageKind, GroupKind:\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\n// String returns k as a proto source identifier (e.g., \"bool\").\nfunc (k Kind) String() string {\n\tswitch k {\n\tcase BoolKind:\n\t\treturn \"bool\"\n\tcase EnumKind:\n\t\treturn \"enum\"\n\tcase Int32Kind:\n\t\treturn \"int32\"\n\tcase Sint32Kind:\n\t\treturn \"sint32\"\n\tcase Uint32Kind:\n\t\treturn \"uint32\"\n\tcase Int64Kind:\n\t\treturn \"int64\"\n\tcase Sint64Kind:\n\t\treturn \"sint64\"\n\tcase Uint64Kind:\n\t\treturn \"uint64\"\n\tcase Sfixed32Kind:\n\t\treturn \"sfixed32\"\n\tcase Fixed32Kind:\n\t\treturn \"fixed32\"\n\tcase FloatKind:\n\t\treturn \"float\"\n\tcase Sfixed64Kind:\n\t\treturn \"sfixed64\"\n\tcase Fixed64Kind:\n\t\treturn \"fixed64\"\n\tcase DoubleKind:\n\t\treturn \"double\"\n\tcase StringKind:\n\t\treturn \"string\"\n\tcase BytesKind:\n\t\treturn \"bytes\"\n\tcase MessageKind:\n\t\treturn \"message\"\n\tcase GroupKind:\n\t\treturn \"group\"\n\tdefault:\n\t\treturn fmt.Sprintf(\"<unknown:%d>\", k)\n\t}\n}\n\n// GoString returns k as a Go source identifier (e.g., \"BoolKind\").\nfunc (k Kind) GoString() string {\n\tswitch k {\n\tcase BoolKind:\n\t\treturn \"BoolKind\"\n\tcase EnumKind:\n\t\treturn \"EnumKind\"\n\tcase Int32Kind:\n\t\treturn \"Int32Kind\"\n\tcase Sint32Kind:\n\t\treturn \"Sint32Kind\"\n\tcase Uint32Kind:\n\t\treturn \"Uint32Kind\"\n\tcase Int64Kind:\n\t\treturn \"Int64Kind\"\n\tcase Sint64Kind:\n\t\treturn \"Sint64Kind\"\n\tcase Uint64Kind:\n\t\treturn \"Uint64Kind\"\n\tcase Sfixed32Kind:\n\t\treturn \"Sfixed32Kind\"\n\tcase Fixed32Kind:\n\t\treturn \"Fixed32Kind\"\n\tcase FloatKind:\n\t\treturn \"FloatKind\"\n\tcase Sfixed64Kind:\n\t\treturn \"Sfixed64Kind\"\n\tcase Fixed64Kind:\n\t\treturn \"Fixed64Kind\"\n\tcase DoubleKind:\n\t\treturn \"DoubleKind\"\n\tcase StringKind:\n\t\treturn \"StringKind\"\n\tcase BytesKind:\n\t\treturn \"BytesKind\"\n\tcase MessageKind:\n\t\treturn \"MessageKind\"\n\tcase GroupKind:\n\t\treturn \"GroupKind\"\n\tdefault:\n\t\treturn fmt.Sprintf(\"Kind(%d)\", k)\n\t}\n}\n\n// FieldNumber is the field number in a message.\ntype FieldNumber = protowire.Number\n\n// FieldNumbers represent a list of field numbers.\ntype FieldNumbers interface {\n\t// Len reports the number of fields in the list.\n\tLen() int\n\t// Get returns the ith field number. It panics if out of bounds.\n\tGet(i int) FieldNumber\n\t// Has reports whether n is within the list of fields.\n\tHas(n FieldNumber) bool\n\n\tdoNotImplement\n}\n\n// FieldRanges represent a list of field number ranges.\ntype FieldRanges interface {\n\t// Len reports the number of ranges in the list.\n\tLen() int\n\t// Get returns the ith range. It panics if out of bounds.\n\tGet(i int) [2]FieldNumber // start inclusive; end exclusive\n\t// Has reports whether n is within any of the ranges.\n\tHas(n FieldNumber) bool\n\n\tdoNotImplement\n}\n\n// EnumNumber is the numeric value for an enum.\ntype EnumNumber int32\n\n// EnumRanges represent a list of enum number ranges.\ntype EnumRanges interface {\n\t// Len reports the number of ranges in the list.\n\tLen() int\n\t// Get returns the ith range. It panics if out of bounds.\n\tGet(i int) [2]EnumNumber // start inclusive; end inclusive\n\t// Has reports whether n is within any of the ranges.\n\tHas(n EnumNumber) bool\n\n\tdoNotImplement\n}\n\n// Name is the short name for a proto declaration. This is not the name\n// as used in Go source code, which might not be identical to the proto name.\ntype Name string // e.g., \"Kind\"\n\n// IsValid reports whether s is a syntactically valid name.\n// An empty name is invalid.\nfunc (s Name) IsValid() bool {\n\treturn consumeIdent(string(s)) == len(s)\n}\n\n// Names represent a list of names.\ntype Names interface {\n\t// Len reports the number of names in the list.\n\tLen() int\n\t// Get returns the ith name. It panics if out of bounds.\n\tGet(i int) Name\n\t// Has reports whether s matches any names in the list.\n\tHas(s Name) bool\n\n\tdoNotImplement\n}\n\n// FullName is a qualified name that uniquely identifies a proto declaration.\n// A qualified name is the concatenation of the proto package along with the\n// fully-declared name (i.e., name of parent preceding the name of the child),\n// with a '.' delimiter placed between each [Name].\n//\n// This should not have any leading or trailing dots.\ntype FullName string // e.g., \"google.protobuf.Field.Kind\"\n\n// IsValid reports whether s is a syntactically valid full name.\n// An empty full name is invalid.\nfunc (s FullName) IsValid() bool {\n\ti := consumeIdent(string(s))\n\tif i < 0 {\n\t\treturn false\n\t}\n\tfor len(s) > i {\n\t\tif s[i] != '.' {\n\t\t\treturn false\n\t\t}\n\t\ti++\n\t\tn := consumeIdent(string(s[i:]))\n\t\tif n < 0 {\n\t\t\treturn false\n\t\t}\n\t\ti += n\n\t}\n\treturn true\n}\n\nfunc consumeIdent(s string) (i int) {\n\tif len(s) == 0 || !isLetter(s[i]) {\n\t\treturn -1\n\t}\n\ti++\n\tfor len(s) > i && isLetterDigit(s[i]) {\n\t\ti++\n\t}\n\treturn i\n}\nfunc isLetter(c byte) bool {\n\treturn c == '_' || ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z')\n}\nfunc isLetterDigit(c byte) bool {\n\treturn isLetter(c) || ('0' <= c && c <= '9')\n}\n\n// Name returns the short name, which is the last identifier segment.\n// A single segment FullName is the [Name] itself.\nfunc (n FullName) Name() Name {\n\tif i := strings.LastIndexByte(string(n), '.'); i >= 0 {\n\t\treturn Name(n[i+1:])\n\t}\n\treturn Name(n)\n}\n\n// Parent returns the full name with the trailing identifier removed.\n// A single segment FullName has no parent.\nfunc (n FullName) Parent() FullName {\n\tif i := strings.LastIndexByte(string(n), '.'); i >= 0 {\n\t\treturn n[:i]\n\t}\n\treturn \"\"\n}\n\n// Append returns the qualified name appended with the provided short name.\n//\n// Invariant: n == n.Parent().Append(n.Name()) // assuming n is valid\nfunc (n FullName) Append(s Name) FullName {\n\tif n == \"\" {\n\t\treturn FullName(s)\n\t}\n\treturn n + \".\" + FullName(s)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/reflect/protoreflect/source.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage protoreflect\n\nimport (\n\t\"strconv\"\n)\n\n// SourceLocations is a list of source locations.\ntype SourceLocations interface {\n\t// Len reports the number of source locations in the proto file.\n\tLen() int\n\t// Get returns the ith SourceLocation. It panics if out of bounds.\n\tGet(int) SourceLocation\n\n\t// ByPath returns the SourceLocation for the given path,\n\t// returning the first location if multiple exist for the same path.\n\t// If multiple locations exist for the same path,\n\t// then SourceLocation.Next index can be used to identify the\n\t// index of the next SourceLocation.\n\t// If no location exists for this path, it returns the zero value.\n\tByPath(path SourcePath) SourceLocation\n\n\t// ByDescriptor returns the SourceLocation for the given descriptor,\n\t// returning the first location if multiple exist for the same path.\n\t// If no location exists for this descriptor, it returns the zero value.\n\tByDescriptor(desc Descriptor) SourceLocation\n\n\tdoNotImplement\n}\n\n// SourceLocation describes a source location and\n// corresponds with the google.protobuf.SourceCodeInfo.Location message.\ntype SourceLocation struct {\n\t// Path is the path to the declaration from the root file descriptor.\n\t// The contents of this slice must not be mutated.\n\tPath SourcePath\n\n\t// StartLine and StartColumn are the zero-indexed starting location\n\t// in the source file for the declaration.\n\tStartLine, StartColumn int\n\t// EndLine and EndColumn are the zero-indexed ending location\n\t// in the source file for the declaration.\n\t// In the descriptor.proto, the end line may be omitted if it is identical\n\t// to the start line. Here, it is always populated.\n\tEndLine, EndColumn int\n\n\t// LeadingDetachedComments are the leading detached comments\n\t// for the declaration. The contents of this slice must not be mutated.\n\tLeadingDetachedComments []string\n\t// LeadingComments is the leading attached comment for the declaration.\n\tLeadingComments string\n\t// TrailingComments is the trailing attached comment for the declaration.\n\tTrailingComments string\n\n\t// Next is an index into SourceLocations for the next source location that\n\t// has the same Path. It is zero if there is no next location.\n\tNext int\n}\n\n// SourcePath identifies part of a file descriptor for a source location.\n// The SourcePath is a sequence of either field numbers or indexes into\n// a repeated field that form a path starting from the root file descriptor.\n//\n// See google.protobuf.SourceCodeInfo.Location.path.\ntype SourcePath []int32\n\n// Equal reports whether p1 equals p2.\nfunc (p1 SourcePath) Equal(p2 SourcePath) bool {\n\tif len(p1) != len(p2) {\n\t\treturn false\n\t}\n\tfor i := range p1 {\n\t\tif p1[i] != p2[i] {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// String formats the path in a humanly readable manner.\n// The output is guaranteed to be deterministic,\n// making it suitable for use as a key into a Go map.\n// It is not guaranteed to be stable as the exact output could change\n// in a future version of this module.\n//\n// Example output:\n//\n//\t.message_type[6].nested_type[15].field[3]\nfunc (p SourcePath) String() string {\n\tb := p.appendFileDescriptorProto(nil)\n\tfor _, i := range p {\n\t\tb = append(b, '.')\n\t\tb = strconv.AppendInt(b, int64(i), 10)\n\t}\n\treturn string(b)\n}\n\ntype appendFunc func(*SourcePath, []byte) []byte\n\nfunc (p *SourcePath) appendSingularField(b []byte, name string, f appendFunc) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tb = append(b, '.')\n\tb = append(b, name...)\n\t*p = (*p)[1:]\n\tif f != nil {\n\t\tb = f(p, b)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendRepeatedField(b []byte, name string, f appendFunc) []byte {\n\tb = p.appendSingularField(b, name, nil)\n\tif len(*p) == 0 || (*p)[0] < 0 {\n\t\treturn b\n\t}\n\tb = append(b, '[')\n\tb = strconv.AppendUint(b, uint64((*p)[0]), 10)\n\tb = append(b, ']')\n\t*p = (*p)[1:]\n\tif f != nil {\n\t\tb = f(p, b)\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Code generated by generate-protos. DO NOT EDIT.\n\npackage protoreflect\n\nfunc (p *SourcePath) appendFileDescriptorProto(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendSingularField(b, \"name\", nil)\n\tcase 2:\n\t\tb = p.appendSingularField(b, \"package\", nil)\n\tcase 3:\n\t\tb = p.appendRepeatedField(b, \"dependency\", nil)\n\tcase 10:\n\t\tb = p.appendRepeatedField(b, \"public_dependency\", nil)\n\tcase 11:\n\t\tb = p.appendRepeatedField(b, \"weak_dependency\", nil)\n\tcase 4:\n\t\tb = p.appendRepeatedField(b, \"message_type\", (*SourcePath).appendDescriptorProto)\n\tcase 5:\n\t\tb = p.appendRepeatedField(b, \"enum_type\", (*SourcePath).appendEnumDescriptorProto)\n\tcase 6:\n\t\tb = p.appendRepeatedField(b, \"service\", (*SourcePath).appendServiceDescriptorProto)\n\tcase 7:\n\t\tb = p.appendRepeatedField(b, \"extension\", (*SourcePath).appendFieldDescriptorProto)\n\tcase 8:\n\t\tb = p.appendSingularField(b, \"options\", (*SourcePath).appendFileOptions)\n\tcase 9:\n\t\tb = p.appendSingularField(b, \"source_code_info\", (*SourcePath).appendSourceCodeInfo)\n\tcase 12:\n\t\tb = p.appendSingularField(b, \"syntax\", nil)\n\tcase 14:\n\t\tb = p.appendSingularField(b, \"edition\", nil)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendDescriptorProto(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendSingularField(b, \"name\", nil)\n\tcase 2:\n\t\tb = p.appendRepeatedField(b, \"field\", (*SourcePath).appendFieldDescriptorProto)\n\tcase 6:\n\t\tb = p.appendRepeatedField(b, \"extension\", (*SourcePath).appendFieldDescriptorProto)\n\tcase 3:\n\t\tb = p.appendRepeatedField(b, \"nested_type\", (*SourcePath).appendDescriptorProto)\n\tcase 4:\n\t\tb = p.appendRepeatedField(b, \"enum_type\", (*SourcePath).appendEnumDescriptorProto)\n\tcase 5:\n\t\tb = p.appendRepeatedField(b, \"extension_range\", (*SourcePath).appendDescriptorProto_ExtensionRange)\n\tcase 8:\n\t\tb = p.appendRepeatedField(b, \"oneof_decl\", (*SourcePath).appendOneofDescriptorProto)\n\tcase 7:\n\t\tb = p.appendSingularField(b, \"options\", (*SourcePath).appendMessageOptions)\n\tcase 9:\n\t\tb = p.appendRepeatedField(b, \"reserved_range\", (*SourcePath).appendDescriptorProto_ReservedRange)\n\tcase 10:\n\t\tb = p.appendRepeatedField(b, \"reserved_name\", nil)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendEnumDescriptorProto(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendSingularField(b, \"name\", nil)\n\tcase 2:\n\t\tb = p.appendRepeatedField(b, \"value\", (*SourcePath).appendEnumValueDescriptorProto)\n\tcase 3:\n\t\tb = p.appendSingularField(b, \"options\", (*SourcePath).appendEnumOptions)\n\tcase 4:\n\t\tb = p.appendRepeatedField(b, \"reserved_range\", (*SourcePath).appendEnumDescriptorProto_EnumReservedRange)\n\tcase 5:\n\t\tb = p.appendRepeatedField(b, \"reserved_name\", nil)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendServiceDescriptorProto(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendSingularField(b, \"name\", nil)\n\tcase 2:\n\t\tb = p.appendRepeatedField(b, \"method\", (*SourcePath).appendMethodDescriptorProto)\n\tcase 3:\n\t\tb = p.appendSingularField(b, \"options\", (*SourcePath).appendServiceOptions)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendFieldDescriptorProto(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendSingularField(b, \"name\", nil)\n\tcase 3:\n\t\tb = p.appendSingularField(b, \"number\", nil)\n\tcase 4:\n\t\tb = p.appendSingularField(b, \"label\", nil)\n\tcase 5:\n\t\tb = p.appendSingularField(b, \"type\", nil)\n\tcase 6:\n\t\tb = p.appendSingularField(b, \"type_name\", nil)\n\tcase 2:\n\t\tb = p.appendSingularField(b, \"extendee\", nil)\n\tcase 7:\n\t\tb = p.appendSingularField(b, \"default_value\", nil)\n\tcase 9:\n\t\tb = p.appendSingularField(b, \"oneof_index\", nil)\n\tcase 10:\n\t\tb = p.appendSingularField(b, \"json_name\", nil)\n\tcase 8:\n\t\tb = p.appendSingularField(b, \"options\", (*SourcePath).appendFieldOptions)\n\tcase 17:\n\t\tb = p.appendSingularField(b, \"proto3_optional\", nil)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendFileOptions(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendSingularField(b, \"java_package\", nil)\n\tcase 8:\n\t\tb = p.appendSingularField(b, \"java_outer_classname\", nil)\n\tcase 10:\n\t\tb = p.appendSingularField(b, \"java_multiple_files\", nil)\n\tcase 20:\n\t\tb = p.appendSingularField(b, \"java_generate_equals_and_hash\", nil)\n\tcase 27:\n\t\tb = p.appendSingularField(b, \"java_string_check_utf8\", nil)\n\tcase 9:\n\t\tb = p.appendSingularField(b, \"optimize_for\", nil)\n\tcase 11:\n\t\tb = p.appendSingularField(b, \"go_package\", nil)\n\tcase 16:\n\t\tb = p.appendSingularField(b, \"cc_generic_services\", nil)\n\tcase 17:\n\t\tb = p.appendSingularField(b, \"java_generic_services\", nil)\n\tcase 18:\n\t\tb = p.appendSingularField(b, \"py_generic_services\", nil)\n\tcase 23:\n\t\tb = p.appendSingularField(b, \"deprecated\", nil)\n\tcase 31:\n\t\tb = p.appendSingularField(b, \"cc_enable_arenas\", nil)\n\tcase 36:\n\t\tb = p.appendSingularField(b, \"objc_class_prefix\", nil)\n\tcase 37:\n\t\tb = p.appendSingularField(b, \"csharp_namespace\", nil)\n\tcase 39:\n\t\tb = p.appendSingularField(b, \"swift_prefix\", nil)\n\tcase 40:\n\t\tb = p.appendSingularField(b, \"php_class_prefix\", nil)\n\tcase 41:\n\t\tb = p.appendSingularField(b, \"php_namespace\", nil)\n\tcase 44:\n\t\tb = p.appendSingularField(b, \"php_metadata_namespace\", nil)\n\tcase 45:\n\t\tb = p.appendSingularField(b, \"ruby_package\", nil)\n\tcase 50:\n\t\tb = p.appendSingularField(b, \"features\", (*SourcePath).appendFeatureSet)\n\tcase 999:\n\t\tb = p.appendRepeatedField(b, \"uninterpreted_option\", (*SourcePath).appendUninterpretedOption)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendSourceCodeInfo(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendRepeatedField(b, \"location\", (*SourcePath).appendSourceCodeInfo_Location)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendDescriptorProto_ExtensionRange(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendSingularField(b, \"start\", nil)\n\tcase 2:\n\t\tb = p.appendSingularField(b, \"end\", nil)\n\tcase 3:\n\t\tb = p.appendSingularField(b, \"options\", (*SourcePath).appendExtensionRangeOptions)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendOneofDescriptorProto(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendSingularField(b, \"name\", nil)\n\tcase 2:\n\t\tb = p.appendSingularField(b, \"options\", (*SourcePath).appendOneofOptions)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendMessageOptions(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendSingularField(b, \"message_set_wire_format\", nil)\n\tcase 2:\n\t\tb = p.appendSingularField(b, \"no_standard_descriptor_accessor\", nil)\n\tcase 3:\n\t\tb = p.appendSingularField(b, \"deprecated\", nil)\n\tcase 7:\n\t\tb = p.appendSingularField(b, \"map_entry\", nil)\n\tcase 11:\n\t\tb = p.appendSingularField(b, \"deprecated_legacy_json_field_conflicts\", nil)\n\tcase 12:\n\t\tb = p.appendSingularField(b, \"features\", (*SourcePath).appendFeatureSet)\n\tcase 999:\n\t\tb = p.appendRepeatedField(b, \"uninterpreted_option\", (*SourcePath).appendUninterpretedOption)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendDescriptorProto_ReservedRange(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendSingularField(b, \"start\", nil)\n\tcase 2:\n\t\tb = p.appendSingularField(b, \"end\", nil)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendEnumValueDescriptorProto(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendSingularField(b, \"name\", nil)\n\tcase 2:\n\t\tb = p.appendSingularField(b, \"number\", nil)\n\tcase 3:\n\t\tb = p.appendSingularField(b, \"options\", (*SourcePath).appendEnumValueOptions)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendEnumOptions(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 2:\n\t\tb = p.appendSingularField(b, \"allow_alias\", nil)\n\tcase 3:\n\t\tb = p.appendSingularField(b, \"deprecated\", nil)\n\tcase 6:\n\t\tb = p.appendSingularField(b, \"deprecated_legacy_json_field_conflicts\", nil)\n\tcase 7:\n\t\tb = p.appendSingularField(b, \"features\", (*SourcePath).appendFeatureSet)\n\tcase 999:\n\t\tb = p.appendRepeatedField(b, \"uninterpreted_option\", (*SourcePath).appendUninterpretedOption)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendEnumDescriptorProto_EnumReservedRange(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendSingularField(b, \"start\", nil)\n\tcase 2:\n\t\tb = p.appendSingularField(b, \"end\", nil)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendMethodDescriptorProto(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendSingularField(b, \"name\", nil)\n\tcase 2:\n\t\tb = p.appendSingularField(b, \"input_type\", nil)\n\tcase 3:\n\t\tb = p.appendSingularField(b, \"output_type\", nil)\n\tcase 4:\n\t\tb = p.appendSingularField(b, \"options\", (*SourcePath).appendMethodOptions)\n\tcase 5:\n\t\tb = p.appendSingularField(b, \"client_streaming\", nil)\n\tcase 6:\n\t\tb = p.appendSingularField(b, \"server_streaming\", nil)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendServiceOptions(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 34:\n\t\tb = p.appendSingularField(b, \"features\", (*SourcePath).appendFeatureSet)\n\tcase 33:\n\t\tb = p.appendSingularField(b, \"deprecated\", nil)\n\tcase 999:\n\t\tb = p.appendRepeatedField(b, \"uninterpreted_option\", (*SourcePath).appendUninterpretedOption)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendFieldOptions(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendSingularField(b, \"ctype\", nil)\n\tcase 2:\n\t\tb = p.appendSingularField(b, \"packed\", nil)\n\tcase 6:\n\t\tb = p.appendSingularField(b, \"jstype\", nil)\n\tcase 5:\n\t\tb = p.appendSingularField(b, \"lazy\", nil)\n\tcase 15:\n\t\tb = p.appendSingularField(b, \"unverified_lazy\", nil)\n\tcase 3:\n\t\tb = p.appendSingularField(b, \"deprecated\", nil)\n\tcase 10:\n\t\tb = p.appendSingularField(b, \"weak\", nil)\n\tcase 16:\n\t\tb = p.appendSingularField(b, \"debug_redact\", nil)\n\tcase 17:\n\t\tb = p.appendSingularField(b, \"retention\", nil)\n\tcase 19:\n\t\tb = p.appendRepeatedField(b, \"targets\", nil)\n\tcase 20:\n\t\tb = p.appendRepeatedField(b, \"edition_defaults\", (*SourcePath).appendFieldOptions_EditionDefault)\n\tcase 21:\n\t\tb = p.appendSingularField(b, \"features\", (*SourcePath).appendFeatureSet)\n\tcase 22:\n\t\tb = p.appendSingularField(b, \"feature_support\", (*SourcePath).appendFieldOptions_FeatureSupport)\n\tcase 999:\n\t\tb = p.appendRepeatedField(b, \"uninterpreted_option\", (*SourcePath).appendUninterpretedOption)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendFeatureSet(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendSingularField(b, \"field_presence\", nil)\n\tcase 2:\n\t\tb = p.appendSingularField(b, \"enum_type\", nil)\n\tcase 3:\n\t\tb = p.appendSingularField(b, \"repeated_field_encoding\", nil)\n\tcase 4:\n\t\tb = p.appendSingularField(b, \"utf8_validation\", nil)\n\tcase 5:\n\t\tb = p.appendSingularField(b, \"message_encoding\", nil)\n\tcase 6:\n\t\tb = p.appendSingularField(b, \"json_format\", nil)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendUninterpretedOption(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 2:\n\t\tb = p.appendRepeatedField(b, \"name\", (*SourcePath).appendUninterpretedOption_NamePart)\n\tcase 3:\n\t\tb = p.appendSingularField(b, \"identifier_value\", nil)\n\tcase 4:\n\t\tb = p.appendSingularField(b, \"positive_int_value\", nil)\n\tcase 5:\n\t\tb = p.appendSingularField(b, \"negative_int_value\", nil)\n\tcase 6:\n\t\tb = p.appendSingularField(b, \"double_value\", nil)\n\tcase 7:\n\t\tb = p.appendSingularField(b, \"string_value\", nil)\n\tcase 8:\n\t\tb = p.appendSingularField(b, \"aggregate_value\", nil)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendSourceCodeInfo_Location(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendRepeatedField(b, \"path\", nil)\n\tcase 2:\n\t\tb = p.appendRepeatedField(b, \"span\", nil)\n\tcase 3:\n\t\tb = p.appendSingularField(b, \"leading_comments\", nil)\n\tcase 4:\n\t\tb = p.appendSingularField(b, \"trailing_comments\", nil)\n\tcase 6:\n\t\tb = p.appendRepeatedField(b, \"leading_detached_comments\", nil)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendExtensionRangeOptions(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 999:\n\t\tb = p.appendRepeatedField(b, \"uninterpreted_option\", (*SourcePath).appendUninterpretedOption)\n\tcase 2:\n\t\tb = p.appendRepeatedField(b, \"declaration\", (*SourcePath).appendExtensionRangeOptions_Declaration)\n\tcase 50:\n\t\tb = p.appendSingularField(b, \"features\", (*SourcePath).appendFeatureSet)\n\tcase 3:\n\t\tb = p.appendSingularField(b, \"verification\", nil)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendOneofOptions(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendSingularField(b, \"features\", (*SourcePath).appendFeatureSet)\n\tcase 999:\n\t\tb = p.appendRepeatedField(b, \"uninterpreted_option\", (*SourcePath).appendUninterpretedOption)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendEnumValueOptions(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendSingularField(b, \"deprecated\", nil)\n\tcase 2:\n\t\tb = p.appendSingularField(b, \"features\", (*SourcePath).appendFeatureSet)\n\tcase 3:\n\t\tb = p.appendSingularField(b, \"debug_redact\", nil)\n\tcase 4:\n\t\tb = p.appendSingularField(b, \"feature_support\", (*SourcePath).appendFieldOptions_FeatureSupport)\n\tcase 999:\n\t\tb = p.appendRepeatedField(b, \"uninterpreted_option\", (*SourcePath).appendUninterpretedOption)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendMethodOptions(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 33:\n\t\tb = p.appendSingularField(b, \"deprecated\", nil)\n\tcase 34:\n\t\tb = p.appendSingularField(b, \"idempotency_level\", nil)\n\tcase 35:\n\t\tb = p.appendSingularField(b, \"features\", (*SourcePath).appendFeatureSet)\n\tcase 999:\n\t\tb = p.appendRepeatedField(b, \"uninterpreted_option\", (*SourcePath).appendUninterpretedOption)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendFieldOptions_EditionDefault(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 3:\n\t\tb = p.appendSingularField(b, \"edition\", nil)\n\tcase 2:\n\t\tb = p.appendSingularField(b, \"value\", nil)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendFieldOptions_FeatureSupport(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendSingularField(b, \"edition_introduced\", nil)\n\tcase 2:\n\t\tb = p.appendSingularField(b, \"edition_deprecated\", nil)\n\tcase 3:\n\t\tb = p.appendSingularField(b, \"deprecation_warning\", nil)\n\tcase 4:\n\t\tb = p.appendSingularField(b, \"edition_removed\", nil)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendUninterpretedOption_NamePart(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendSingularField(b, \"name_part\", nil)\n\tcase 2:\n\t\tb = p.appendSingularField(b, \"is_extension\", nil)\n\t}\n\treturn b\n}\n\nfunc (p *SourcePath) appendExtensionRangeOptions_Declaration(b []byte) []byte {\n\tif len(*p) == 0 {\n\t\treturn b\n\t}\n\tswitch (*p)[0] {\n\tcase 1:\n\t\tb = p.appendSingularField(b, \"number\", nil)\n\tcase 2:\n\t\tb = p.appendSingularField(b, \"full_name\", nil)\n\tcase 3:\n\t\tb = p.appendSingularField(b, \"type\", nil)\n\tcase 5:\n\t\tb = p.appendSingularField(b, \"reserved\", nil)\n\tcase 6:\n\t\tb = p.appendSingularField(b, \"repeated\", nil)\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/reflect/protoreflect/type.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage protoreflect\n\n// Descriptor provides a set of accessors that are common to every descriptor.\n// Each descriptor type wraps the equivalent google.protobuf.XXXDescriptorProto,\n// but provides efficient lookup and immutability.\n//\n// Each descriptor is comparable. Equality implies that the two types are\n// exactly identical. However, it is possible for the same semantically\n// identical proto type to be represented by multiple type descriptors.\n//\n// For example, suppose we have t1 and t2 which are both an [MessageDescriptor].\n// If t1 == t2, then the types are definitely equal and all accessors return\n// the same information. However, if t1 != t2, then it is still possible that\n// they still represent the same proto type (e.g., t1.FullName == t2.FullName).\n// This can occur if a descriptor type is created dynamically, or multiple\n// versions of the same proto type are accidentally linked into the Go binary.\ntype Descriptor interface {\n\t// ParentFile returns the parent file descriptor that this descriptor\n\t// is declared within. The parent file for the file descriptor is itself.\n\t//\n\t// Support for this functionality is optional and may return nil.\n\tParentFile() FileDescriptor\n\n\t// Parent returns the parent containing this descriptor declaration.\n\t// The following shows the mapping from child type to possible parent types:\n\t//\n\t//\t╔═════════════════════╤═══════════════════════════════════╗\n\t//\t║ Child type          │ Possible parent types             ║\n\t//\t╠═════════════════════╪═══════════════════════════════════╣\n\t//\t║ FileDescriptor      │ nil                               ║\n\t//\t║ MessageDescriptor   │ FileDescriptor, MessageDescriptor ║\n\t//\t║ FieldDescriptor     │ FileDescriptor, MessageDescriptor ║\n\t//\t║ OneofDescriptor     │ MessageDescriptor                 ║\n\t//\t║ EnumDescriptor      │ FileDescriptor, MessageDescriptor ║\n\t//\t║ EnumValueDescriptor │ EnumDescriptor                    ║\n\t//\t║ ServiceDescriptor   │ FileDescriptor                    ║\n\t//\t║ MethodDescriptor    │ ServiceDescriptor                 ║\n\t//\t╚═════════════════════╧═══════════════════════════════════╝\n\t//\n\t// Support for this functionality is optional and may return nil.\n\tParent() Descriptor\n\n\t// Index returns the index of this descriptor within its parent.\n\t// It returns 0 if the descriptor does not have a parent or if the parent\n\t// is unknown.\n\tIndex() int\n\n\t// Syntax is the protobuf syntax.\n\tSyntax() Syntax // e.g., Proto2 or Proto3\n\n\t// Name is the short name of the declaration (i.e., FullName.Name).\n\tName() Name // e.g., \"Any\"\n\n\t// FullName is the fully-qualified name of the declaration.\n\t//\n\t// The FullName is a concatenation of the full name of the type that this\n\t// type is declared within and the declaration name. For example,\n\t// field \"foo_field\" in message \"proto.package.MyMessage\" is\n\t// uniquely identified as \"proto.package.MyMessage.foo_field\".\n\t// Enum values are an exception to the rule (see EnumValueDescriptor).\n\tFullName() FullName // e.g., \"google.protobuf.Any\"\n\n\t// IsPlaceholder reports whether type information is missing since a\n\t// dependency is not resolved, in which case only name information is known.\n\t//\n\t// Placeholder types may only be returned by the following accessors\n\t// as a result of unresolved dependencies or weak imports:\n\t//\n\t//\t╔═══════════════════════════════════╤═════════════════════╗\n\t//\t║ Accessor                          │ Descriptor          ║\n\t//\t╠═══════════════════════════════════╪═════════════════════╣\n\t//\t║ FileImports.FileDescriptor        │ FileDescriptor      ║\n\t//\t║ FieldDescriptor.Enum              │ EnumDescriptor      ║\n\t//\t║ FieldDescriptor.Message           │ MessageDescriptor   ║\n\t//\t║ FieldDescriptor.DefaultEnumValue  │ EnumValueDescriptor ║\n\t//\t║ FieldDescriptor.ContainingMessage │ MessageDescriptor   ║\n\t//\t║ MethodDescriptor.Input            │ MessageDescriptor   ║\n\t//\t║ MethodDescriptor.Output           │ MessageDescriptor   ║\n\t//\t╚═══════════════════════════════════╧═════════════════════╝\n\t//\n\t// If true, only Name and FullName are valid.\n\t// For FileDescriptor, the Path is also valid.\n\tIsPlaceholder() bool\n\n\t// Options returns the descriptor options. The caller must not modify\n\t// the returned value.\n\t//\n\t// To avoid a dependency cycle, this function returns a proto.Message value.\n\t// The proto message type returned for each descriptor type is as follows:\n\t//\t╔═════════════════════╤══════════════════════════════════════════╗\n\t//\t║ Go type             │ Protobuf message type                    ║\n\t//\t╠═════════════════════╪══════════════════════════════════════════╣\n\t//\t║ FileDescriptor      │ google.protobuf.FileOptions              ║\n\t//\t║ EnumDescriptor      │ google.protobuf.EnumOptions              ║\n\t//\t║ EnumValueDescriptor │ google.protobuf.EnumValueOptions         ║\n\t//\t║ MessageDescriptor   │ google.protobuf.MessageOptions           ║\n\t//\t║ FieldDescriptor     │ google.protobuf.FieldOptions             ║\n\t//\t║ OneofDescriptor     │ google.protobuf.OneofOptions             ║\n\t//\t║ ServiceDescriptor   │ google.protobuf.ServiceOptions           ║\n\t//\t║ MethodDescriptor    │ google.protobuf.MethodOptions            ║\n\t//\t╚═════════════════════╧══════════════════════════════════════════╝\n\t//\n\t// This method returns a typed nil-pointer if no options are present.\n\t// The caller must import the descriptorpb package to use this.\n\tOptions() ProtoMessage\n\n\tdoNotImplement\n}\n\n// FileDescriptor describes the types in a complete proto file and\n// corresponds with the google.protobuf.FileDescriptorProto message.\n//\n// Top-level declarations:\n// [EnumDescriptor], [MessageDescriptor], [FieldDescriptor], and/or [ServiceDescriptor].\ntype FileDescriptor interface {\n\tDescriptor // Descriptor.FullName is identical to Package\n\n\t// Path returns the file name, relative to the source tree root.\n\tPath() string // e.g., \"path/to/file.proto\"\n\t// Package returns the protobuf package namespace.\n\tPackage() FullName // e.g., \"google.protobuf\"\n\n\t// Imports is a list of imported proto files.\n\tImports() FileImports\n\n\t// Enums is a list of the top-level enum declarations.\n\tEnums() EnumDescriptors\n\t// Messages is a list of the top-level message declarations.\n\tMessages() MessageDescriptors\n\t// Extensions is a list of the top-level extension declarations.\n\tExtensions() ExtensionDescriptors\n\t// Services is a list of the top-level service declarations.\n\tServices() ServiceDescriptors\n\n\t// SourceLocations is a list of source locations.\n\tSourceLocations() SourceLocations\n\n\tisFileDescriptor\n}\ntype isFileDescriptor interface{ ProtoType(FileDescriptor) }\n\n// FileImports is a list of file imports.\ntype FileImports interface {\n\t// Len reports the number of files imported by this proto file.\n\tLen() int\n\t// Get returns the ith FileImport. It panics if out of bounds.\n\tGet(i int) FileImport\n\n\tdoNotImplement\n}\n\n// FileImport is the declaration for a proto file import.\ntype FileImport struct {\n\t// FileDescriptor is the file type for the given import.\n\t// It is a placeholder descriptor if IsWeak is set or if a dependency has\n\t// not been regenerated to implement the new reflection APIs.\n\tFileDescriptor\n\n\t// IsPublic reports whether this is a public import, which causes this file\n\t// to alias declarations within the imported file. The intended use cases\n\t// for this feature is the ability to move proto files without breaking\n\t// existing dependencies.\n\t//\n\t// The current file and the imported file must be within proto package.\n\tIsPublic bool\n\n\t// IsWeak reports whether this is a weak import, which does not impose\n\t// a direct dependency on the target file.\n\t//\n\t// Weak imports are a legacy proto1 feature. Equivalent behavior is\n\t// achieved using proto2 extension fields or proto3 Any messages.\n\tIsWeak bool\n}\n\n// MessageDescriptor describes a message and\n// corresponds with the google.protobuf.DescriptorProto message.\n//\n// Nested declarations:\n// [FieldDescriptor], [OneofDescriptor], [FieldDescriptor], [EnumDescriptor],\n// and/or [MessageDescriptor].\ntype MessageDescriptor interface {\n\tDescriptor\n\n\t// IsMapEntry indicates that this is an auto-generated message type to\n\t// represent the entry type for a map field.\n\t//\n\t// Map entry messages have only two fields:\n\t//\t• a \"key\" field with a field number of 1\n\t//\t• a \"value\" field with a field number of 2\n\t// The key and value types are determined by these two fields.\n\t//\n\t// If IsMapEntry is true, it implies that FieldDescriptor.IsMap is true\n\t// for some field with this message type.\n\tIsMapEntry() bool\n\n\t// Fields is a list of nested field declarations.\n\tFields() FieldDescriptors\n\t// Oneofs is a list of nested oneof declarations.\n\tOneofs() OneofDescriptors\n\n\t// ReservedNames is a list of reserved field names.\n\tReservedNames() Names\n\t// ReservedRanges is a list of reserved ranges of field numbers.\n\tReservedRanges() FieldRanges\n\t// RequiredNumbers is a list of required field numbers.\n\t// In Proto3, it is always an empty list.\n\tRequiredNumbers() FieldNumbers\n\t// ExtensionRanges is the field ranges used for extension fields.\n\t// In Proto3, it is always an empty ranges.\n\tExtensionRanges() FieldRanges\n\t// ExtensionRangeOptions returns the ith extension range options.\n\t//\n\t// To avoid a dependency cycle, this method returns a proto.Message] value,\n\t// which always contains a google.protobuf.ExtensionRangeOptions message.\n\t// This method returns a typed nil-pointer if no options are present.\n\t// The caller must import the descriptorpb package to use this.\n\tExtensionRangeOptions(i int) ProtoMessage\n\n\t// Enums is a list of nested enum declarations.\n\tEnums() EnumDescriptors\n\t// Messages is a list of nested message declarations.\n\tMessages() MessageDescriptors\n\t// Extensions is a list of nested extension declarations.\n\tExtensions() ExtensionDescriptors\n\n\tisMessageDescriptor\n}\ntype isMessageDescriptor interface{ ProtoType(MessageDescriptor) }\n\n// MessageType encapsulates a [MessageDescriptor] with a concrete Go implementation.\n// It is recommended that implementations of this interface also implement the\n// [MessageFieldTypes] interface.\ntype MessageType interface {\n\t// New returns a newly allocated empty message.\n\t// It may return nil for synthetic messages representing a map entry.\n\tNew() Message\n\n\t// Zero returns an empty, read-only message.\n\t// It may return nil for synthetic messages representing a map entry.\n\tZero() Message\n\n\t// Descriptor returns the message descriptor.\n\t//\n\t// Invariant: t.Descriptor() == t.New().Descriptor()\n\tDescriptor() MessageDescriptor\n}\n\n// MessageFieldTypes extends a [MessageType] by providing type information\n// regarding enums and messages referenced by the message fields.\ntype MessageFieldTypes interface {\n\tMessageType\n\n\t// Enum returns the EnumType for the ith field in MessageDescriptor.Fields.\n\t// It returns nil if the ith field is not an enum kind.\n\t// It panics if out of bounds.\n\t//\n\t// Invariant: mt.Enum(i).Descriptor() == mt.Descriptor().Fields(i).Enum()\n\tEnum(i int) EnumType\n\n\t// Message returns the MessageType for the ith field in MessageDescriptor.Fields.\n\t// It returns nil if the ith field is not a message or group kind.\n\t// It panics if out of bounds.\n\t//\n\t// Invariant: mt.Message(i).Descriptor() == mt.Descriptor().Fields(i).Message()\n\tMessage(i int) MessageType\n}\n\n// MessageDescriptors is a list of message declarations.\ntype MessageDescriptors interface {\n\t// Len reports the number of messages.\n\tLen() int\n\t// Get returns the ith MessageDescriptor. It panics if out of bounds.\n\tGet(i int) MessageDescriptor\n\t// ByName returns the MessageDescriptor for a message named s.\n\t// It returns nil if not found.\n\tByName(s Name) MessageDescriptor\n\n\tdoNotImplement\n}\n\n// FieldDescriptor describes a field within a message and\n// corresponds with the google.protobuf.FieldDescriptorProto message.\n//\n// It is used for both normal fields defined within the parent message\n// (e.g., [MessageDescriptor.Fields]) and fields that extend some remote message\n// (e.g., [FileDescriptor.Extensions] or [MessageDescriptor.Extensions]).\ntype FieldDescriptor interface {\n\tDescriptor\n\n\t// Number reports the unique number for this field.\n\tNumber() FieldNumber\n\t// Cardinality reports the cardinality for this field.\n\tCardinality() Cardinality\n\t// Kind reports the basic kind for this field.\n\tKind() Kind\n\n\t// HasJSONName reports whether this field has an explicitly set JSON name.\n\tHasJSONName() bool\n\n\t// JSONName reports the name used for JSON serialization.\n\t// It is usually the camel-cased form of the field name.\n\t// Extension fields are represented by the full name surrounded by brackets.\n\tJSONName() string\n\n\t// TextName reports the name used for text serialization.\n\t// It is usually the name of the field, except that groups use the name\n\t// of the inlined message, and extension fields are represented by the\n\t// full name surrounded by brackets.\n\tTextName() string\n\n\t// HasPresence reports whether the field distinguishes between unpopulated\n\t// and default values.\n\tHasPresence() bool\n\n\t// IsExtension reports whether this is an extension field. If false,\n\t// then Parent and ContainingMessage refer to the same message.\n\t// Otherwise, ContainingMessage and Parent likely differ.\n\tIsExtension() bool\n\n\t// HasOptionalKeyword reports whether the \"optional\" keyword was explicitly\n\t// specified in the source .proto file.\n\tHasOptionalKeyword() bool\n\n\t// IsWeak reports whether this is a weak field, which does not impose a\n\t// direct dependency on the target type.\n\t// If true, then Message returns a placeholder type.\n\tIsWeak() bool\n\n\t// IsPacked reports whether repeated primitive numeric kinds should be\n\t// serialized using a packed encoding.\n\t// If true, then it implies Cardinality is Repeated.\n\tIsPacked() bool\n\n\t// IsList reports whether this field represents a list,\n\t// where the value type for the associated field is a List.\n\t// It is equivalent to checking whether Cardinality is Repeated and\n\t// that IsMap reports false.\n\tIsList() bool\n\n\t// IsMap reports whether this field represents a map,\n\t// where the value type for the associated field is a Map.\n\t// It is equivalent to checking whether Cardinality is Repeated,\n\t// that the Kind is MessageKind, and that MessageDescriptor.IsMapEntry reports true.\n\tIsMap() bool\n\n\t// MapKey returns the field descriptor for the key in the map entry.\n\t// It returns nil if IsMap reports false.\n\tMapKey() FieldDescriptor\n\n\t// MapValue returns the field descriptor for the value in the map entry.\n\t// It returns nil if IsMap reports false.\n\tMapValue() FieldDescriptor\n\n\t// HasDefault reports whether this field has a default value.\n\tHasDefault() bool\n\n\t// Default returns the default value for scalar fields.\n\t// For proto2, it is the default value as specified in the proto file,\n\t// or the zero value if unspecified.\n\t// For proto3, it is always the zero value of the scalar.\n\t// The Value type is determined by the Kind.\n\tDefault() Value\n\n\t// DefaultEnumValue returns the enum value descriptor for the default value\n\t// of an enum field, and is nil for any other kind of field.\n\tDefaultEnumValue() EnumValueDescriptor\n\n\t// ContainingOneof is the containing oneof that this field belongs to,\n\t// and is nil if this field is not part of a oneof.\n\tContainingOneof() OneofDescriptor\n\n\t// ContainingMessage is the containing message that this field belongs to.\n\t// For extension fields, this may not necessarily be the parent message\n\t// that the field is declared within.\n\tContainingMessage() MessageDescriptor\n\n\t// Enum is the enum descriptor if Kind is EnumKind.\n\t// It returns nil for any other Kind.\n\tEnum() EnumDescriptor\n\n\t// Message is the message descriptor if Kind is\n\t// MessageKind or GroupKind. It returns nil for any other Kind.\n\tMessage() MessageDescriptor\n\n\tisFieldDescriptor\n}\ntype isFieldDescriptor interface{ ProtoType(FieldDescriptor) }\n\n// FieldDescriptors is a list of field declarations.\ntype FieldDescriptors interface {\n\t// Len reports the number of fields.\n\tLen() int\n\t// Get returns the ith FieldDescriptor. It panics if out of bounds.\n\tGet(i int) FieldDescriptor\n\t// ByName returns the FieldDescriptor for a field named s.\n\t// It returns nil if not found.\n\tByName(s Name) FieldDescriptor\n\t// ByJSONName returns the FieldDescriptor for a field with s as the JSON name.\n\t// It returns nil if not found.\n\tByJSONName(s string) FieldDescriptor\n\t// ByTextName returns the FieldDescriptor for a field with s as the text name.\n\t// It returns nil if not found.\n\tByTextName(s string) FieldDescriptor\n\t// ByNumber returns the FieldDescriptor for a field numbered n.\n\t// It returns nil if not found.\n\tByNumber(n FieldNumber) FieldDescriptor\n\n\tdoNotImplement\n}\n\n// OneofDescriptor describes a oneof field set within a given message and\n// corresponds with the google.protobuf.OneofDescriptorProto message.\ntype OneofDescriptor interface {\n\tDescriptor\n\n\t// IsSynthetic reports whether this is a synthetic oneof created to support\n\t// proto3 optional semantics. If true, Fields contains exactly one field\n\t// with FieldDescriptor.HasOptionalKeyword specified.\n\tIsSynthetic() bool\n\n\t// Fields is a list of fields belonging to this oneof.\n\tFields() FieldDescriptors\n\n\tisOneofDescriptor\n}\ntype isOneofDescriptor interface{ ProtoType(OneofDescriptor) }\n\n// OneofDescriptors is a list of oneof declarations.\ntype OneofDescriptors interface {\n\t// Len reports the number of oneof fields.\n\tLen() int\n\t// Get returns the ith OneofDescriptor. It panics if out of bounds.\n\tGet(i int) OneofDescriptor\n\t// ByName returns the OneofDescriptor for a oneof named s.\n\t// It returns nil if not found.\n\tByName(s Name) OneofDescriptor\n\n\tdoNotImplement\n}\n\n// ExtensionDescriptor is an alias of [FieldDescriptor] for documentation.\ntype ExtensionDescriptor = FieldDescriptor\n\n// ExtensionTypeDescriptor is an [ExtensionDescriptor] with an associated [ExtensionType].\ntype ExtensionTypeDescriptor interface {\n\tExtensionDescriptor\n\n\t// Type returns the associated ExtensionType.\n\tType() ExtensionType\n\n\t// Descriptor returns the plain ExtensionDescriptor without the\n\t// associated ExtensionType.\n\tDescriptor() ExtensionDescriptor\n}\n\n// ExtensionDescriptors is a list of field declarations.\ntype ExtensionDescriptors interface {\n\t// Len reports the number of fields.\n\tLen() int\n\t// Get returns the ith ExtensionDescriptor. It panics if out of bounds.\n\tGet(i int) ExtensionDescriptor\n\t// ByName returns the ExtensionDescriptor for a field named s.\n\t// It returns nil if not found.\n\tByName(s Name) ExtensionDescriptor\n\n\tdoNotImplement\n}\n\n// ExtensionType encapsulates an [ExtensionDescriptor] with a concrete\n// Go implementation. The nested field descriptor must be for a extension field.\n//\n// While a normal field is a member of the parent message that it is declared\n// within (see [Descriptor.Parent]), an extension field is a member of some other\n// target message (see [FieldDescriptor.ContainingMessage]) and may have no\n// relationship with the parent. However, the full name of an extension field is\n// relative to the parent that it is declared within.\n//\n// For example:\n//\n//\tsyntax = \"proto2\";\n//\tpackage example;\n//\tmessage FooMessage {\n//\t\textensions 100 to max;\n//\t}\n//\tmessage BarMessage {\n//\t\textends FooMessage { optional BarMessage bar_field = 100; }\n//\t}\n//\n// Field \"bar_field\" is an extension of FooMessage, but its full name is\n// \"example.BarMessage.bar_field\" instead of \"example.FooMessage.bar_field\".\ntype ExtensionType interface {\n\t// New returns a new value for the field.\n\t// For scalars, this returns the default value in native Go form.\n\tNew() Value\n\n\t// Zero returns a new value for the field.\n\t// For scalars, this returns the default value in native Go form.\n\t// For composite types, this returns an empty, read-only message, list, or map.\n\tZero() Value\n\n\t// TypeDescriptor returns the extension type descriptor.\n\tTypeDescriptor() ExtensionTypeDescriptor\n\n\t// ValueOf wraps the input and returns it as a Value.\n\t// ValueOf panics if the input value is invalid or not the appropriate type.\n\t//\n\t// ValueOf is more extensive than protoreflect.ValueOf for a given field's\n\t// value as it has more type information available.\n\tValueOf(any) Value\n\n\t// InterfaceOf completely unwraps the Value to the underlying Go type.\n\t// InterfaceOf panics if the input is nil or does not represent the\n\t// appropriate underlying Go type. For composite types, it panics if the\n\t// value is not mutable.\n\t//\n\t// InterfaceOf is able to unwrap the Value further than Value.Interface\n\t// as it has more type information available.\n\tInterfaceOf(Value) any\n\n\t// IsValidValue reports whether the Value is valid to assign to the field.\n\tIsValidValue(Value) bool\n\n\t// IsValidInterface reports whether the input is valid to assign to the field.\n\tIsValidInterface(any) bool\n}\n\n// EnumDescriptor describes an enum and\n// corresponds with the google.protobuf.EnumDescriptorProto message.\n//\n// Nested declarations:\n// [EnumValueDescriptor].\ntype EnumDescriptor interface {\n\tDescriptor\n\n\t// Values is a list of nested enum value declarations.\n\tValues() EnumValueDescriptors\n\n\t// ReservedNames is a list of reserved enum names.\n\tReservedNames() Names\n\t// ReservedRanges is a list of reserved ranges of enum numbers.\n\tReservedRanges() EnumRanges\n\n\t// IsClosed reports whether this enum uses closed semantics.\n\t// See https://protobuf.dev/programming-guides/enum/#definitions.\n\t// Note: the Go protobuf implementation is not spec compliant and treats\n\t// all enums as open enums.\n\tIsClosed() bool\n\n\tisEnumDescriptor\n}\ntype isEnumDescriptor interface{ ProtoType(EnumDescriptor) }\n\n// EnumType encapsulates an [EnumDescriptor] with a concrete Go implementation.\ntype EnumType interface {\n\t// New returns an instance of this enum type with its value set to n.\n\tNew(n EnumNumber) Enum\n\n\t// Descriptor returns the enum descriptor.\n\t//\n\t// Invariant: t.Descriptor() == t.New(0).Descriptor()\n\tDescriptor() EnumDescriptor\n}\n\n// EnumDescriptors is a list of enum declarations.\ntype EnumDescriptors interface {\n\t// Len reports the number of enum types.\n\tLen() int\n\t// Get returns the ith EnumDescriptor. It panics if out of bounds.\n\tGet(i int) EnumDescriptor\n\t// ByName returns the EnumDescriptor for an enum named s.\n\t// It returns nil if not found.\n\tByName(s Name) EnumDescriptor\n\n\tdoNotImplement\n}\n\n// EnumValueDescriptor describes an enum value and\n// corresponds with the google.protobuf.EnumValueDescriptorProto message.\n//\n// All other proto declarations are in the namespace of the parent.\n// However, enum values do not follow this rule and are within the namespace\n// of the parent's parent (i.e., they are a sibling of the containing enum).\n// Thus, a value named \"FOO_VALUE\" declared within an enum uniquely identified\n// as \"proto.package.MyEnum\" has a full name of \"proto.package.FOO_VALUE\".\ntype EnumValueDescriptor interface {\n\tDescriptor\n\n\t// Number returns the enum value as an integer.\n\tNumber() EnumNumber\n\n\tisEnumValueDescriptor\n}\ntype isEnumValueDescriptor interface{ ProtoType(EnumValueDescriptor) }\n\n// EnumValueDescriptors is a list of enum value declarations.\ntype EnumValueDescriptors interface {\n\t// Len reports the number of enum values.\n\tLen() int\n\t// Get returns the ith EnumValueDescriptor. It panics if out of bounds.\n\tGet(i int) EnumValueDescriptor\n\t// ByName returns the EnumValueDescriptor for the enum value named s.\n\t// It returns nil if not found.\n\tByName(s Name) EnumValueDescriptor\n\t// ByNumber returns the EnumValueDescriptor for the enum value numbered n.\n\t// If multiple have the same number, the first one defined is returned\n\t// It returns nil if not found.\n\tByNumber(n EnumNumber) EnumValueDescriptor\n\n\tdoNotImplement\n}\n\n// ServiceDescriptor describes a service and\n// corresponds with the google.protobuf.ServiceDescriptorProto message.\n//\n// Nested declarations: [MethodDescriptor].\ntype ServiceDescriptor interface {\n\tDescriptor\n\n\t// Methods is a list of nested message declarations.\n\tMethods() MethodDescriptors\n\n\tisServiceDescriptor\n}\ntype isServiceDescriptor interface{ ProtoType(ServiceDescriptor) }\n\n// ServiceDescriptors is a list of service declarations.\ntype ServiceDescriptors interface {\n\t// Len reports the number of services.\n\tLen() int\n\t// Get returns the ith ServiceDescriptor. It panics if out of bounds.\n\tGet(i int) ServiceDescriptor\n\t// ByName returns the ServiceDescriptor for a service named s.\n\t// It returns nil if not found.\n\tByName(s Name) ServiceDescriptor\n\n\tdoNotImplement\n}\n\n// MethodDescriptor describes a method and\n// corresponds with the google.protobuf.MethodDescriptorProto message.\ntype MethodDescriptor interface {\n\tDescriptor\n\n\t// Input is the input message descriptor.\n\tInput() MessageDescriptor\n\t// Output is the output message descriptor.\n\tOutput() MessageDescriptor\n\t// IsStreamingClient reports whether the client streams multiple messages.\n\tIsStreamingClient() bool\n\t// IsStreamingServer reports whether the server streams multiple messages.\n\tIsStreamingServer() bool\n\n\tisMethodDescriptor\n}\ntype isMethodDescriptor interface{ ProtoType(MethodDescriptor) }\n\n// MethodDescriptors is a list of method declarations.\ntype MethodDescriptors interface {\n\t// Len reports the number of methods.\n\tLen() int\n\t// Get returns the ith MethodDescriptor. It panics if out of bounds.\n\tGet(i int) MethodDescriptor\n\t// ByName returns the MethodDescriptor for a service method named s.\n\t// It returns nil if not found.\n\tByName(s Name) MethodDescriptor\n\n\tdoNotImplement\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/reflect/protoreflect/value.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage protoreflect\n\nimport \"google.golang.org/protobuf/encoding/protowire\"\n\n// Enum is a reflection interface for a concrete enum value,\n// which provides type information and a getter for the enum number.\n// Enum does not provide a mutable API since enums are commonly backed by\n// Go constants, which are not addressable.\ntype Enum interface {\n\t// Descriptor returns enum descriptor, which contains only the protobuf\n\t// type information for the enum.\n\tDescriptor() EnumDescriptor\n\n\t// Type returns the enum type, which encapsulates both Go and protobuf\n\t// type information. If the Go type information is not needed,\n\t// it is recommended that the enum descriptor be used instead.\n\tType() EnumType\n\n\t// Number returns the enum value as an integer.\n\tNumber() EnumNumber\n}\n\n// Message is a reflective interface for a concrete message value,\n// encapsulating both type and value information for the message.\n//\n// Accessor/mutators for individual fields are keyed by [FieldDescriptor].\n// For non-extension fields, the descriptor must exactly match the\n// field known by the parent message.\n// For extension fields, the descriptor must implement [ExtensionTypeDescriptor],\n// extend the parent message (i.e., have the same message [FullName]), and\n// be within the parent's extension range.\n//\n// Each field [Value] can be a scalar or a composite type ([Message], [List], or [Map]).\n// See [Value] for the Go types associated with a [FieldDescriptor].\n// Providing a [Value] that is invalid or of an incorrect type panics.\ntype Message interface {\n\t// Descriptor returns message descriptor, which contains only the protobuf\n\t// type information for the message.\n\tDescriptor() MessageDescriptor\n\n\t// Type returns the message type, which encapsulates both Go and protobuf\n\t// type information. If the Go type information is not needed,\n\t// it is recommended that the message descriptor be used instead.\n\tType() MessageType\n\n\t// New returns a newly allocated and mutable empty message.\n\tNew() Message\n\n\t// Interface unwraps the message reflection interface and\n\t// returns the underlying ProtoMessage interface.\n\tInterface() ProtoMessage\n\n\t// Range iterates over every populated field in an undefined order,\n\t// calling f for each field descriptor and value encountered.\n\t// Range returns immediately if f returns false.\n\t// While iterating, mutating operations may only be performed\n\t// on the current field descriptor.\n\tRange(f func(FieldDescriptor, Value) bool)\n\n\t// Has reports whether a field is populated.\n\t//\n\t// Some fields have the property of nullability where it is possible to\n\t// distinguish between the default value of a field and whether the field\n\t// was explicitly populated with the default value. Singular message fields,\n\t// member fields of a oneof, and proto2 scalar fields are nullable. Such\n\t// fields are populated only if explicitly set.\n\t//\n\t// In other cases (aside from the nullable cases above),\n\t// a proto3 scalar field is populated if it contains a non-zero value, and\n\t// a repeated field is populated if it is non-empty.\n\tHas(FieldDescriptor) bool\n\n\t// Clear clears the field such that a subsequent Has call reports false.\n\t//\n\t// Clearing an extension field clears both the extension type and value\n\t// associated with the given field number.\n\t//\n\t// Clear is a mutating operation and unsafe for concurrent use.\n\tClear(FieldDescriptor)\n\n\t// Get retrieves the value for a field.\n\t//\n\t// For unpopulated scalars, it returns the default value, where\n\t// the default value of a bytes scalar is guaranteed to be a copy.\n\t// For unpopulated composite types, it returns an empty, read-only view\n\t// of the value; to obtain a mutable reference, use Mutable.\n\tGet(FieldDescriptor) Value\n\n\t// Set stores the value for a field.\n\t//\n\t// For a field belonging to a oneof, it implicitly clears any other field\n\t// that may be currently set within the same oneof.\n\t// For extension fields, it implicitly stores the provided ExtensionType.\n\t// When setting a composite type, it is unspecified whether the stored value\n\t// aliases the source's memory in any way. If the composite value is an\n\t// empty, read-only value, then it panics.\n\t//\n\t// Set is a mutating operation and unsafe for concurrent use.\n\tSet(FieldDescriptor, Value)\n\n\t// Mutable returns a mutable reference to a composite type.\n\t//\n\t// If the field is unpopulated, it may allocate a composite value.\n\t// For a field belonging to a oneof, it implicitly clears any other field\n\t// that may be currently set within the same oneof.\n\t// For extension fields, it implicitly stores the provided ExtensionType\n\t// if not already stored.\n\t// It panics if the field does not contain a composite type.\n\t//\n\t// Mutable is a mutating operation and unsafe for concurrent use.\n\tMutable(FieldDescriptor) Value\n\n\t// NewField returns a new value that is assignable to the field\n\t// for the given descriptor. For scalars, this returns the default value.\n\t// For lists, maps, and messages, this returns a new, empty, mutable value.\n\tNewField(FieldDescriptor) Value\n\n\t// WhichOneof reports which field within the oneof is populated,\n\t// returning nil if none are populated.\n\t// It panics if the oneof descriptor does not belong to this message.\n\tWhichOneof(OneofDescriptor) FieldDescriptor\n\n\t// GetUnknown retrieves the entire list of unknown fields.\n\t// The caller may only mutate the contents of the RawFields\n\t// if the mutated bytes are stored back into the message with SetUnknown.\n\tGetUnknown() RawFields\n\n\t// SetUnknown stores an entire list of unknown fields.\n\t// The raw fields must be syntactically valid according to the wire format.\n\t// An implementation may panic if this is not the case.\n\t// Once stored, the caller must not mutate the content of the RawFields.\n\t// An empty RawFields may be passed to clear the fields.\n\t//\n\t// SetUnknown is a mutating operation and unsafe for concurrent use.\n\tSetUnknown(RawFields)\n\n\t// IsValid reports whether the message is valid.\n\t//\n\t// An invalid message is an empty, read-only value.\n\t//\n\t// An invalid message often corresponds to a nil pointer of the concrete\n\t// message type, but the details are implementation dependent.\n\t// Validity is not part of the protobuf data model, and may not\n\t// be preserved in marshaling or other operations.\n\tIsValid() bool\n\n\t// ProtoMethods returns optional fast-path implementations of various operations.\n\t// This method may return nil.\n\t//\n\t// The returned methods type is identical to\n\t// google.golang.org/protobuf/runtime/protoiface.Methods.\n\t// Consult the protoiface package documentation for details.\n\tProtoMethods() *methods\n}\n\n// RawFields is the raw bytes for an ordered sequence of fields.\n// Each field contains both the tag (representing field number and wire type),\n// and also the wire data itself.\ntype RawFields []byte\n\n// IsValid reports whether b is syntactically correct wire format.\nfunc (b RawFields) IsValid() bool {\n\tfor len(b) > 0 {\n\t\t_, _, n := protowire.ConsumeField(b)\n\t\tif n < 0 {\n\t\t\treturn false\n\t\t}\n\t\tb = b[n:]\n\t}\n\treturn true\n}\n\n// List is a zero-indexed, ordered list.\n// The element [Value] type is determined by [FieldDescriptor.Kind].\n// Providing a [Value] that is invalid or of an incorrect type panics.\ntype List interface {\n\t// Len reports the number of entries in the List.\n\t// Get, Set, and Truncate panic with out of bound indexes.\n\tLen() int\n\n\t// Get retrieves the value at the given index.\n\t// It never returns an invalid value.\n\tGet(int) Value\n\n\t// Set stores a value for the given index.\n\t// When setting a composite type, it is unspecified whether the set\n\t// value aliases the source's memory in any way.\n\t//\n\t// Set is a mutating operation and unsafe for concurrent use.\n\tSet(int, Value)\n\n\t// Append appends the provided value to the end of the list.\n\t// When appending a composite type, it is unspecified whether the appended\n\t// value aliases the source's memory in any way.\n\t//\n\t// Append is a mutating operation and unsafe for concurrent use.\n\tAppend(Value)\n\n\t// AppendMutable appends a new, empty, mutable message value to the end\n\t// of the list and returns it.\n\t// It panics if the list does not contain a message type.\n\tAppendMutable() Value\n\n\t// Truncate truncates the list to a smaller length.\n\t//\n\t// Truncate is a mutating operation and unsafe for concurrent use.\n\tTruncate(int)\n\n\t// NewElement returns a new value for a list element.\n\t// For enums, this returns the first enum value.\n\t// For other scalars, this returns the zero value.\n\t// For messages, this returns a new, empty, mutable value.\n\tNewElement() Value\n\n\t// IsValid reports whether the list is valid.\n\t//\n\t// An invalid list is an empty, read-only value.\n\t//\n\t// Validity is not part of the protobuf data model, and may not\n\t// be preserved in marshaling or other operations.\n\tIsValid() bool\n}\n\n// Map is an unordered, associative map.\n// The entry [MapKey] type is determined by [FieldDescriptor.MapKey].Kind.\n// The entry [Value] type is determined by [FieldDescriptor.MapValue].Kind.\n// Providing a [MapKey] or [Value] that is invalid or of an incorrect type panics.\ntype Map interface {\n\t// Len reports the number of elements in the map.\n\tLen() int\n\n\t// Range iterates over every map entry in an undefined order,\n\t// calling f for each key and value encountered.\n\t// Range calls f Len times unless f returns false, which stops iteration.\n\t// While iterating, mutating operations may only be performed\n\t// on the current map key.\n\tRange(f func(MapKey, Value) bool)\n\n\t// Has reports whether an entry with the given key is in the map.\n\tHas(MapKey) bool\n\n\t// Clear clears the entry associated with they given key.\n\t// The operation does nothing if there is no entry associated with the key.\n\t//\n\t// Clear is a mutating operation and unsafe for concurrent use.\n\tClear(MapKey)\n\n\t// Get retrieves the value for an entry with the given key.\n\t// It returns an invalid value for non-existent entries.\n\tGet(MapKey) Value\n\n\t// Set stores the value for an entry with the given key.\n\t// It panics when given a key or value that is invalid or the wrong type.\n\t// When setting a composite type, it is unspecified whether the set\n\t// value aliases the source's memory in any way.\n\t//\n\t// Set is a mutating operation and unsafe for concurrent use.\n\tSet(MapKey, Value)\n\n\t// Mutable retrieves a mutable reference to the entry for the given key.\n\t// If no entry exists for the key, it creates a new, empty, mutable value\n\t// and stores it as the entry for the key.\n\t// It panics if the map value is not a message.\n\tMutable(MapKey) Value\n\n\t// NewValue returns a new value assignable as a map value.\n\t// For enums, this returns the first enum value.\n\t// For other scalars, this returns the zero value.\n\t// For messages, this returns a new, empty, mutable value.\n\tNewValue() Value\n\n\t// IsValid reports whether the map is valid.\n\t//\n\t// An invalid map is an empty, read-only value.\n\t//\n\t// An invalid message often corresponds to a nil Go map value,\n\t// but the details are implementation dependent.\n\t// Validity is not part of the protobuf data model, and may not\n\t// be preserved in marshaling or other operations.\n\tIsValid() bool\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go",
    "content": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage protoreflect\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"math\"\n\t\"reflect\"\n\n\t\"google.golang.org/protobuf/encoding/protowire\"\n)\n\n// Equal reports whether v1 and v2 are recursively equal.\n//\n//   - Values of different types are always unequal.\n//\n//   - Bytes values are equal if they contain identical bytes.\n//     Empty bytes (regardless of nil-ness) are considered equal.\n//\n//   - Floating point values are equal if they contain the same value.\n//     Unlike the == operator, a NaN is equal to another NaN.\n//\n//   - Enums are equal if they contain the same number.\n//     Since [Value] does not contain an enum descriptor,\n//     enum values do not consider the type of the enum.\n//\n//   - Other scalar values are equal if they contain the same value.\n//\n//   - [Message] values are equal if they belong to the same message descriptor,\n//     have the same set of populated known and extension field values,\n//     and the same set of unknown fields values.\n//\n//   - [List] values are equal if they are the same length and\n//     each corresponding element is equal.\n//\n//   - [Map] values are equal if they have the same set of keys and\n//     the corresponding value for each key is equal.\nfunc (v1 Value) Equal(v2 Value) bool {\n\treturn equalValue(v1, v2)\n}\n\nfunc equalValue(x, y Value) bool {\n\teqType := x.typ == y.typ\n\tswitch x.typ {\n\tcase nilType:\n\t\treturn eqType\n\tcase boolType:\n\t\treturn eqType && x.Bool() == y.Bool()\n\tcase int32Type, int64Type:\n\t\treturn eqType && x.Int() == y.Int()\n\tcase uint32Type, uint64Type:\n\t\treturn eqType && x.Uint() == y.Uint()\n\tcase float32Type, float64Type:\n\t\treturn eqType && equalFloat(x.Float(), y.Float())\n\tcase stringType:\n\t\treturn eqType && x.String() == y.String()\n\tcase bytesType:\n\t\treturn eqType && bytes.Equal(x.Bytes(), y.Bytes())\n\tcase enumType:\n\t\treturn eqType && x.Enum() == y.Enum()\n\tdefault:\n\t\tswitch x := x.Interface().(type) {\n\t\tcase Message:\n\t\t\ty, ok := y.Interface().(Message)\n\t\t\treturn ok && equalMessage(x, y)\n\t\tcase List:\n\t\t\ty, ok := y.Interface().(List)\n\t\t\treturn ok && equalList(x, y)\n\t\tcase Map:\n\t\t\ty, ok := y.Interface().(Map)\n\t\t\treturn ok && equalMap(x, y)\n\t\tdefault:\n\t\t\tpanic(fmt.Sprintf(\"unknown type: %T\", x))\n\t\t}\n\t}\n}\n\n// equalFloat compares two floats, where NaNs are treated as equal.\nfunc equalFloat(x, y float64) bool {\n\tif math.IsNaN(x) || math.IsNaN(y) {\n\t\treturn math.IsNaN(x) && math.IsNaN(y)\n\t}\n\treturn x == y\n}\n\n// equalMessage compares two messages.\nfunc equalMessage(mx, my Message) bool {\n\tif mx.Descriptor() != my.Descriptor() {\n\t\treturn false\n\t}\n\n\tnx := 0\n\tequal := true\n\tmx.Range(func(fd FieldDescriptor, vx Value) bool {\n\t\tnx++\n\t\tvy := my.Get(fd)\n\t\tequal = my.Has(fd) && equalValue(vx, vy)\n\t\treturn equal\n\t})\n\tif !equal {\n\t\treturn false\n\t}\n\tny := 0\n\tmy.Range(func(fd FieldDescriptor, vx Value) bool {\n\t\tny++\n\t\treturn true\n\t})\n\tif nx != ny {\n\t\treturn false\n\t}\n\n\treturn equalUnknown(mx.GetUnknown(), my.GetUnknown())\n}\n\n// equalList compares two lists.\nfunc equalList(x, y List) bool {\n\tif x.Len() != y.Len() {\n\t\treturn false\n\t}\n\tfor i := x.Len() - 1; i >= 0; i-- {\n\t\tif !equalValue(x.Get(i), y.Get(i)) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// equalMap compares two maps.\nfunc equalMap(x, y Map) bool {\n\tif x.Len() != y.Len() {\n\t\treturn false\n\t}\n\tequal := true\n\tx.Range(func(k MapKey, vx Value) bool {\n\t\tvy := y.Get(k)\n\t\tequal = y.Has(k) && equalValue(vx, vy)\n\t\treturn equal\n\t})\n\treturn equal\n}\n\n// equalUnknown compares unknown fields by direct comparison on the raw bytes\n// of each individual field number.\nfunc equalUnknown(x, y RawFields) bool {\n\tif len(x) != len(y) {\n\t\treturn false\n\t}\n\tif bytes.Equal([]byte(x), []byte(y)) {\n\t\treturn true\n\t}\n\n\tmx := make(map[FieldNumber]RawFields)\n\tmy := make(map[FieldNumber]RawFields)\n\tfor len(x) > 0 {\n\t\tfnum, _, n := protowire.ConsumeField(x)\n\t\tmx[fnum] = append(mx[fnum], x[:n]...)\n\t\tx = x[n:]\n\t}\n\tfor len(y) > 0 {\n\t\tfnum, _, n := protowire.ConsumeField(y)\n\t\tmy[fnum] = append(my[fnum], y[:n]...)\n\t\ty = y[n:]\n\t}\n\treturn reflect.DeepEqual(mx, my)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage protoreflect\n\nimport (\n\t\"fmt\"\n\t\"math\"\n)\n\n// Value is a union where only one Go type may be set at a time.\n// The Value is used to represent all possible values a field may take.\n// The following shows which Go type is used to represent each proto [Kind]:\n//\n//\t╔════════════╤═════════════════════════════════════╗\n//\t║ Go type    │ Protobuf kind                       ║\n//\t╠════════════╪═════════════════════════════════════╣\n//\t║ bool       │ BoolKind                            ║\n//\t║ int32      │ Int32Kind, Sint32Kind, Sfixed32Kind ║\n//\t║ int64      │ Int64Kind, Sint64Kind, Sfixed64Kind ║\n//\t║ uint32     │ Uint32Kind, Fixed32Kind             ║\n//\t║ uint64     │ Uint64Kind, Fixed64Kind             ║\n//\t║ float32    │ FloatKind                           ║\n//\t║ float64    │ DoubleKind                          ║\n//\t║ string     │ StringKind                          ║\n//\t║ []byte     │ BytesKind                           ║\n//\t║ EnumNumber │ EnumKind                            ║\n//\t║ Message    │ MessageKind, GroupKind              ║\n//\t╚════════════╧═════════════════════════════════════╝\n//\n// Multiple protobuf Kinds may be represented by a single Go type if the type\n// can losslessly represent the information for the proto kind. For example,\n// [Int64Kind], [Sint64Kind], and [Sfixed64Kind] are all represented by int64,\n// but use different integer encoding methods.\n//\n// The [List] or [Map] types are used if the field cardinality is repeated.\n// A field is a [List] if [FieldDescriptor.IsList] reports true.\n// A field is a [Map] if [FieldDescriptor.IsMap] reports true.\n//\n// Converting to/from a Value and a concrete Go value panics on type mismatch.\n// For example, [ValueOf](\"hello\").Int() panics because this attempts to\n// retrieve an int64 from a string.\n//\n// [List], [Map], and [Message] Values are called \"composite\" values.\n//\n// A composite Value may alias (reference) memory at some location,\n// such that changes to the Value updates the that location.\n// A composite value acquired with a Mutable method, such as [Message.Mutable],\n// always references the source object.\n//\n// For example:\n//\n//\t// Append a 0 to a \"repeated int32\" field.\n//\t// Since the Value returned by Mutable is guaranteed to alias\n//\t// the source message, modifying the Value modifies the message.\n//\tmessage.Mutable(fieldDesc).List().Append(protoreflect.ValueOfInt32(0))\n//\n//\t// Assign [0] to a \"repeated int32\" field by creating a new Value,\n//\t// modifying it, and assigning it.\n//\tlist := message.NewField(fieldDesc).List()\n//\tlist.Append(protoreflect.ValueOfInt32(0))\n//\tmessage.Set(fieldDesc, list)\n//\t// ERROR: Since it is not defined whether Set aliases the source,\n//\t// appending to the List here may or may not modify the message.\n//\tlist.Append(protoreflect.ValueOfInt32(0))\n//\n// Some operations, such as [Message.Get], may return an \"empty, read-only\"\n// composite Value. Modifying an empty, read-only value panics.\ntype Value value\n\n// The protoreflect API uses a custom Value union type instead of any\n// to keep the future open for performance optimizations. Using an any\n// always incurs an allocation for primitives (e.g., int64) since it needs to\n// be boxed on the heap (as interfaces can only contain pointers natively).\n// Instead, we represent the Value union as a flat struct that internally keeps\n// track of which type is set. Using unsafe, the Value union can be reduced\n// down to 24B, which is identical in size to a slice.\n//\n// The latest compiler (Go1.11) currently suffers from some limitations:\n//\t• With inlining, the compiler should be able to statically prove that\n//\tonly one of these switch cases are taken and inline one specific case.\n//\tSee https://golang.org/issue/22310.\n\n// ValueOf returns a Value initialized with the concrete value stored in v.\n// This panics if the type does not match one of the allowed types in the\n// Value union.\nfunc ValueOf(v any) Value {\n\tswitch v := v.(type) {\n\tcase nil:\n\t\treturn Value{}\n\tcase bool:\n\t\treturn ValueOfBool(v)\n\tcase int32:\n\t\treturn ValueOfInt32(v)\n\tcase int64:\n\t\treturn ValueOfInt64(v)\n\tcase uint32:\n\t\treturn ValueOfUint32(v)\n\tcase uint64:\n\t\treturn ValueOfUint64(v)\n\tcase float32:\n\t\treturn ValueOfFloat32(v)\n\tcase float64:\n\t\treturn ValueOfFloat64(v)\n\tcase string:\n\t\treturn ValueOfString(v)\n\tcase []byte:\n\t\treturn ValueOfBytes(v)\n\tcase EnumNumber:\n\t\treturn ValueOfEnum(v)\n\tcase Message, List, Map:\n\t\treturn valueOfIface(v)\n\tcase ProtoMessage:\n\t\tpanic(fmt.Sprintf(\"invalid proto.Message(%T) type, expected a protoreflect.Message type\", v))\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"invalid type: %T\", v))\n\t}\n}\n\n// ValueOfBool returns a new boolean value.\nfunc ValueOfBool(v bool) Value {\n\tif v {\n\t\treturn Value{typ: boolType, num: 1}\n\t} else {\n\t\treturn Value{typ: boolType, num: 0}\n\t}\n}\n\n// ValueOfInt32 returns a new int32 value.\nfunc ValueOfInt32(v int32) Value {\n\treturn Value{typ: int32Type, num: uint64(v)}\n}\n\n// ValueOfInt64 returns a new int64 value.\nfunc ValueOfInt64(v int64) Value {\n\treturn Value{typ: int64Type, num: uint64(v)}\n}\n\n// ValueOfUint32 returns a new uint32 value.\nfunc ValueOfUint32(v uint32) Value {\n\treturn Value{typ: uint32Type, num: uint64(v)}\n}\n\n// ValueOfUint64 returns a new uint64 value.\nfunc ValueOfUint64(v uint64) Value {\n\treturn Value{typ: uint64Type, num: v}\n}\n\n// ValueOfFloat32 returns a new float32 value.\nfunc ValueOfFloat32(v float32) Value {\n\treturn Value{typ: float32Type, num: uint64(math.Float64bits(float64(v)))}\n}\n\n// ValueOfFloat64 returns a new float64 value.\nfunc ValueOfFloat64(v float64) Value {\n\treturn Value{typ: float64Type, num: uint64(math.Float64bits(float64(v)))}\n}\n\n// ValueOfString returns a new string value.\nfunc ValueOfString(v string) Value {\n\treturn valueOfString(v)\n}\n\n// ValueOfBytes returns a new bytes value.\nfunc ValueOfBytes(v []byte) Value {\n\treturn valueOfBytes(v[:len(v):len(v)])\n}\n\n// ValueOfEnum returns a new enum value.\nfunc ValueOfEnum(v EnumNumber) Value {\n\treturn Value{typ: enumType, num: uint64(v)}\n}\n\n// ValueOfMessage returns a new Message value.\nfunc ValueOfMessage(v Message) Value {\n\treturn valueOfIface(v)\n}\n\n// ValueOfList returns a new List value.\nfunc ValueOfList(v List) Value {\n\treturn valueOfIface(v)\n}\n\n// ValueOfMap returns a new Map value.\nfunc ValueOfMap(v Map) Value {\n\treturn valueOfIface(v)\n}\n\n// IsValid reports whether v is populated with a value.\nfunc (v Value) IsValid() bool {\n\treturn v.typ != nilType\n}\n\n// Interface returns v as an any.\n//\n// Invariant: v == ValueOf(v).Interface()\nfunc (v Value) Interface() any {\n\tswitch v.typ {\n\tcase nilType:\n\t\treturn nil\n\tcase boolType:\n\t\treturn v.Bool()\n\tcase int32Type:\n\t\treturn int32(v.Int())\n\tcase int64Type:\n\t\treturn int64(v.Int())\n\tcase uint32Type:\n\t\treturn uint32(v.Uint())\n\tcase uint64Type:\n\t\treturn uint64(v.Uint())\n\tcase float32Type:\n\t\treturn float32(v.Float())\n\tcase float64Type:\n\t\treturn float64(v.Float())\n\tcase stringType:\n\t\treturn v.String()\n\tcase bytesType:\n\t\treturn v.Bytes()\n\tcase enumType:\n\t\treturn v.Enum()\n\tdefault:\n\t\treturn v.getIface()\n\t}\n}\n\nfunc (v Value) typeName() string {\n\tswitch v.typ {\n\tcase nilType:\n\t\treturn \"nil\"\n\tcase boolType:\n\t\treturn \"bool\"\n\tcase int32Type:\n\t\treturn \"int32\"\n\tcase int64Type:\n\t\treturn \"int64\"\n\tcase uint32Type:\n\t\treturn \"uint32\"\n\tcase uint64Type:\n\t\treturn \"uint64\"\n\tcase float32Type:\n\t\treturn \"float32\"\n\tcase float64Type:\n\t\treturn \"float64\"\n\tcase stringType:\n\t\treturn \"string\"\n\tcase bytesType:\n\t\treturn \"bytes\"\n\tcase enumType:\n\t\treturn \"enum\"\n\tdefault:\n\t\tswitch v := v.getIface().(type) {\n\t\tcase Message:\n\t\t\treturn \"message\"\n\t\tcase List:\n\t\t\treturn \"list\"\n\t\tcase Map:\n\t\t\treturn \"map\"\n\t\tdefault:\n\t\t\treturn fmt.Sprintf(\"<unknown: %T>\", v)\n\t\t}\n\t}\n}\n\nfunc (v Value) panicMessage(what string) string {\n\treturn fmt.Sprintf(\"type mismatch: cannot convert %v to %s\", v.typeName(), what)\n}\n\n// Bool returns v as a bool and panics if the type is not a bool.\nfunc (v Value) Bool() bool {\n\tswitch v.typ {\n\tcase boolType:\n\t\treturn v.num > 0\n\tdefault:\n\t\tpanic(v.panicMessage(\"bool\"))\n\t}\n}\n\n// Int returns v as a int64 and panics if the type is not a int32 or int64.\nfunc (v Value) Int() int64 {\n\tswitch v.typ {\n\tcase int32Type, int64Type:\n\t\treturn int64(v.num)\n\tdefault:\n\t\tpanic(v.panicMessage(\"int\"))\n\t}\n}\n\n// Uint returns v as a uint64 and panics if the type is not a uint32 or uint64.\nfunc (v Value) Uint() uint64 {\n\tswitch v.typ {\n\tcase uint32Type, uint64Type:\n\t\treturn uint64(v.num)\n\tdefault:\n\t\tpanic(v.panicMessage(\"uint\"))\n\t}\n}\n\n// Float returns v as a float64 and panics if the type is not a float32 or float64.\nfunc (v Value) Float() float64 {\n\tswitch v.typ {\n\tcase float32Type, float64Type:\n\t\treturn math.Float64frombits(uint64(v.num))\n\tdefault:\n\t\tpanic(v.panicMessage(\"float\"))\n\t}\n}\n\n// String returns v as a string. Since this method implements [fmt.Stringer],\n// this returns the formatted string value for any non-string type.\nfunc (v Value) String() string {\n\tswitch v.typ {\n\tcase stringType:\n\t\treturn v.getString()\n\tdefault:\n\t\treturn fmt.Sprint(v.Interface())\n\t}\n}\n\n// Bytes returns v as a []byte and panics if the type is not a []byte.\nfunc (v Value) Bytes() []byte {\n\tswitch v.typ {\n\tcase bytesType:\n\t\treturn v.getBytes()\n\tdefault:\n\t\tpanic(v.panicMessage(\"bytes\"))\n\t}\n}\n\n// Enum returns v as a [EnumNumber] and panics if the type is not a [EnumNumber].\nfunc (v Value) Enum() EnumNumber {\n\tswitch v.typ {\n\tcase enumType:\n\t\treturn EnumNumber(v.num)\n\tdefault:\n\t\tpanic(v.panicMessage(\"enum\"))\n\t}\n}\n\n// Message returns v as a [Message] and panics if the type is not a [Message].\nfunc (v Value) Message() Message {\n\tswitch vi := v.getIface().(type) {\n\tcase Message:\n\t\treturn vi\n\tdefault:\n\t\tpanic(v.panicMessage(\"message\"))\n\t}\n}\n\n// List returns v as a [List] and panics if the type is not a [List].\nfunc (v Value) List() List {\n\tswitch vi := v.getIface().(type) {\n\tcase List:\n\t\treturn vi\n\tdefault:\n\t\tpanic(v.panicMessage(\"list\"))\n\t}\n}\n\n// Map returns v as a [Map] and panics if the type is not a [Map].\nfunc (v Value) Map() Map {\n\tswitch vi := v.getIface().(type) {\n\tcase Map:\n\t\treturn vi\n\tdefault:\n\t\tpanic(v.panicMessage(\"map\"))\n\t}\n}\n\n// MapKey returns v as a [MapKey] and panics for invalid [MapKey] types.\nfunc (v Value) MapKey() MapKey {\n\tswitch v.typ {\n\tcase boolType, int32Type, int64Type, uint32Type, uint64Type, stringType:\n\t\treturn MapKey(v)\n\tdefault:\n\t\tpanic(v.panicMessage(\"map key\"))\n\t}\n}\n\n// MapKey is used to index maps, where the Go type of the MapKey must match\n// the specified key [Kind] (see [MessageDescriptor.IsMapEntry]).\n// The following shows what Go type is used to represent each proto [Kind]:\n//\n//\t╔═════════╤═════════════════════════════════════╗\n//\t║ Go type │ Protobuf kind                       ║\n//\t╠═════════╪═════════════════════════════════════╣\n//\t║ bool    │ BoolKind                            ║\n//\t║ int32   │ Int32Kind, Sint32Kind, Sfixed32Kind ║\n//\t║ int64   │ Int64Kind, Sint64Kind, Sfixed64Kind ║\n//\t║ uint32  │ Uint32Kind, Fixed32Kind             ║\n//\t║ uint64  │ Uint64Kind, Fixed64Kind             ║\n//\t║ string  │ StringKind                          ║\n//\t╚═════════╧═════════════════════════════════════╝\n//\n// A MapKey is constructed and accessed through a [Value]:\n//\n//\tk := ValueOf(\"hash\").MapKey() // convert string to MapKey\n//\ts := k.String()               // convert MapKey to string\n//\n// The MapKey is a strict subset of valid types used in [Value];\n// converting a [Value] to a MapKey with an invalid type panics.\ntype MapKey value\n\n// IsValid reports whether k is populated with a value.\nfunc (k MapKey) IsValid() bool {\n\treturn Value(k).IsValid()\n}\n\n// Interface returns k as an any.\nfunc (k MapKey) Interface() any {\n\treturn Value(k).Interface()\n}\n\n// Bool returns k as a bool and panics if the type is not a bool.\nfunc (k MapKey) Bool() bool {\n\treturn Value(k).Bool()\n}\n\n// Int returns k as a int64 and panics if the type is not a int32 or int64.\nfunc (k MapKey) Int() int64 {\n\treturn Value(k).Int()\n}\n\n// Uint returns k as a uint64 and panics if the type is not a uint32 or uint64.\nfunc (k MapKey) Uint() uint64 {\n\treturn Value(k).Uint()\n}\n\n// String returns k as a string. Since this method implements [fmt.Stringer],\n// this returns the formatted string value for any non-string type.\nfunc (k MapKey) String() string {\n\treturn Value(k).String()\n}\n\n// Value returns k as a [Value].\nfunc (k MapKey) Value() Value {\n\treturn Value(k)\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go120.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build !go1.21\n\npackage protoreflect\n\nimport (\n\t\"unsafe\"\n\n\t\"google.golang.org/protobuf/internal/pragma\"\n)\n\ntype (\n\tstringHeader struct {\n\t\tData unsafe.Pointer\n\t\tLen  int\n\t}\n\tsliceHeader struct {\n\t\tData unsafe.Pointer\n\t\tLen  int\n\t\tCap  int\n\t}\n\tifaceHeader struct {\n\t\tType unsafe.Pointer\n\t\tData unsafe.Pointer\n\t}\n)\n\nvar (\n\tnilType     = typeOf(nil)\n\tboolType    = typeOf(*new(bool))\n\tint32Type   = typeOf(*new(int32))\n\tint64Type   = typeOf(*new(int64))\n\tuint32Type  = typeOf(*new(uint32))\n\tuint64Type  = typeOf(*new(uint64))\n\tfloat32Type = typeOf(*new(float32))\n\tfloat64Type = typeOf(*new(float64))\n\tstringType  = typeOf(*new(string))\n\tbytesType   = typeOf(*new([]byte))\n\tenumType    = typeOf(*new(EnumNumber))\n)\n\n// typeOf returns a pointer to the Go type information.\n// The pointer is comparable and equal if and only if the types are identical.\nfunc typeOf(t any) unsafe.Pointer {\n\treturn (*ifaceHeader)(unsafe.Pointer(&t)).Type\n}\n\n// value is a union where only one type can be represented at a time.\n// The struct is 24B large on 64-bit systems and requires the minimum storage\n// necessary to represent each possible type.\n//\n// The Go GC needs to be able to scan variables containing pointers.\n// As such, pointers and non-pointers cannot be intermixed.\ntype value struct {\n\tpragma.DoNotCompare // 0B\n\n\t// typ stores the type of the value as a pointer to the Go type.\n\ttyp unsafe.Pointer // 8B\n\n\t// ptr stores the data pointer for a String, Bytes, or interface value.\n\tptr unsafe.Pointer // 8B\n\n\t// num stores a Bool, Int32, Int64, Uint32, Uint64, Float32, Float64, or\n\t// Enum value as a raw uint64.\n\t//\n\t// It is also used to store the length of a String or Bytes value;\n\t// the capacity is ignored.\n\tnum uint64 // 8B\n}\n\nfunc valueOfString(v string) Value {\n\tp := (*stringHeader)(unsafe.Pointer(&v))\n\treturn Value{typ: stringType, ptr: p.Data, num: uint64(len(v))}\n}\nfunc valueOfBytes(v []byte) Value {\n\tp := (*sliceHeader)(unsafe.Pointer(&v))\n\treturn Value{typ: bytesType, ptr: p.Data, num: uint64(len(v))}\n}\nfunc valueOfIface(v any) Value {\n\tp := (*ifaceHeader)(unsafe.Pointer(&v))\n\treturn Value{typ: p.Type, ptr: p.Data}\n}\n\nfunc (v Value) getString() (x string) {\n\t*(*stringHeader)(unsafe.Pointer(&x)) = stringHeader{Data: v.ptr, Len: int(v.num)}\n\treturn x\n}\nfunc (v Value) getBytes() (x []byte) {\n\t*(*sliceHeader)(unsafe.Pointer(&x)) = sliceHeader{Data: v.ptr, Len: int(v.num), Cap: int(v.num)}\n\treturn x\n}\nfunc (v Value) getIface() (x any) {\n\t*(*ifaceHeader)(unsafe.Pointer(&x)) = ifaceHeader{Type: v.typ, Data: v.ptr}\n\treturn x\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go121.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build go1.21\n\npackage protoreflect\n\nimport (\n\t\"unsafe\"\n\n\t\"google.golang.org/protobuf/internal/pragma\"\n)\n\ntype (\n\tifaceHeader struct {\n\t\t_    [0]any // if interfaces have greater alignment than unsafe.Pointer, this will enforce it.\n\t\tType unsafe.Pointer\n\t\tData unsafe.Pointer\n\t}\n)\n\nvar (\n\tnilType     = typeOf(nil)\n\tboolType    = typeOf(*new(bool))\n\tint32Type   = typeOf(*new(int32))\n\tint64Type   = typeOf(*new(int64))\n\tuint32Type  = typeOf(*new(uint32))\n\tuint64Type  = typeOf(*new(uint64))\n\tfloat32Type = typeOf(*new(float32))\n\tfloat64Type = typeOf(*new(float64))\n\tstringType  = typeOf(*new(string))\n\tbytesType   = typeOf(*new([]byte))\n\tenumType    = typeOf(*new(EnumNumber))\n)\n\n// typeOf returns a pointer to the Go type information.\n// The pointer is comparable and equal if and only if the types are identical.\nfunc typeOf(t any) unsafe.Pointer {\n\treturn (*ifaceHeader)(unsafe.Pointer(&t)).Type\n}\n\n// value is a union where only one type can be represented at a time.\n// The struct is 24B large on 64-bit systems and requires the minimum storage\n// necessary to represent each possible type.\n//\n// The Go GC needs to be able to scan variables containing pointers.\n// As such, pointers and non-pointers cannot be intermixed.\ntype value struct {\n\tpragma.DoNotCompare // 0B\n\n\t// typ stores the type of the value as a pointer to the Go type.\n\ttyp unsafe.Pointer // 8B\n\n\t// ptr stores the data pointer for a String, Bytes, or interface value.\n\tptr unsafe.Pointer // 8B\n\n\t// num stores a Bool, Int32, Int64, Uint32, Uint64, Float32, Float64, or\n\t// Enum value as a raw uint64.\n\t//\n\t// It is also used to store the length of a String or Bytes value;\n\t// the capacity is ignored.\n\tnum uint64 // 8B\n}\n\nfunc valueOfString(v string) Value {\n\treturn Value{typ: stringType, ptr: unsafe.Pointer(unsafe.StringData(v)), num: uint64(len(v))}\n}\nfunc valueOfBytes(v []byte) Value {\n\treturn Value{typ: bytesType, ptr: unsafe.Pointer(unsafe.SliceData(v)), num: uint64(len(v))}\n}\nfunc valueOfIface(v any) Value {\n\tp := (*ifaceHeader)(unsafe.Pointer(&v))\n\treturn Value{typ: p.Type, ptr: p.Data}\n}\n\nfunc (v Value) getString() string {\n\treturn unsafe.String((*byte)(v.ptr), v.num)\n}\nfunc (v Value) getBytes() []byte {\n\treturn unsafe.Slice((*byte)(v.ptr), v.num)\n}\nfunc (v Value) getIface() (x any) {\n\t*(*ifaceHeader)(unsafe.Pointer(&x)) = ifaceHeader{Type: v.typ, Data: v.ptr}\n\treturn x\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package protoregistry provides data structures to register and lookup\n// protobuf descriptor types.\n//\n// The [Files] registry contains file descriptors and provides the ability\n// to iterate over the files or lookup a specific descriptor within the files.\n// [Files] only contains protobuf descriptors and has no understanding of Go\n// type information that may be associated with each descriptor.\n//\n// The [Types] registry contains descriptor types for which there is a known\n// Go type associated with that descriptor. It provides the ability to iterate\n// over the registered types or lookup a type by name.\npackage protoregistry\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"strings\"\n\t\"sync\"\n\n\t\"google.golang.org/protobuf/internal/encoding/messageset\"\n\t\"google.golang.org/protobuf/internal/errors\"\n\t\"google.golang.org/protobuf/internal/flags\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\n// conflictPolicy configures the policy for handling registration conflicts.\n//\n// It can be over-written at compile time with a linker-initialized variable:\n//\n//\tgo build -ldflags \"-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn\"\n//\n// It can be over-written at program execution with an environment variable:\n//\n//\tGOLANG_PROTOBUF_REGISTRATION_CONFLICT=warn ./main\n//\n// Neither of the above are covered by the compatibility promise and\n// may be removed in a future release of this module.\nvar conflictPolicy = \"panic\" // \"panic\" | \"warn\" | \"ignore\"\n\n// ignoreConflict reports whether to ignore a registration conflict\n// given the descriptor being registered and the error.\n// It is a variable so that the behavior is easily overridden in another file.\nvar ignoreConflict = func(d protoreflect.Descriptor, err error) bool {\n\tconst env = \"GOLANG_PROTOBUF_REGISTRATION_CONFLICT\"\n\tconst faq = \"https://protobuf.dev/reference/go/faq#namespace-conflict\"\n\tpolicy := conflictPolicy\n\tif v := os.Getenv(env); v != \"\" {\n\t\tpolicy = v\n\t}\n\tswitch policy {\n\tcase \"panic\":\n\t\tpanic(fmt.Sprintf(\"%v\\nSee %v\\n\", err, faq))\n\tcase \"warn\":\n\t\tfmt.Fprintf(os.Stderr, \"WARNING: %v\\nSee %v\\n\\n\", err, faq)\n\t\treturn true\n\tcase \"ignore\":\n\t\treturn true\n\tdefault:\n\t\tpanic(\"invalid \" + env + \" value: \" + os.Getenv(env))\n\t}\n}\n\nvar globalMutex sync.RWMutex\n\n// GlobalFiles is a global registry of file descriptors.\nvar GlobalFiles *Files = new(Files)\n\n// GlobalTypes is the registry used by default for type lookups\n// unless a local registry is provided by the user.\nvar GlobalTypes *Types = new(Types)\n\n// NotFound is a sentinel error value to indicate that the type was not found.\n//\n// Since registry lookup can happen in the critical performance path, resolvers\n// must return this exact error value, not an error wrapping it.\nvar NotFound = errors.New(\"not found\")\n\n// Files is a registry for looking up or iterating over files and the\n// descriptors contained within them.\n// The Find and Range methods are safe for concurrent use.\ntype Files struct {\n\t// The map of descsByName contains:\n\t//\tEnumDescriptor\n\t//\tEnumValueDescriptor\n\t//\tMessageDescriptor\n\t//\tExtensionDescriptor\n\t//\tServiceDescriptor\n\t//\t*packageDescriptor\n\t//\n\t// Note that files are stored as a slice, since a package may contain\n\t// multiple files. Only top-level declarations are registered.\n\t// Note that enum values are in the top-level since that are in the same\n\t// scope as the parent enum.\n\tdescsByName map[protoreflect.FullName]any\n\tfilesByPath map[string][]protoreflect.FileDescriptor\n\tnumFiles    int\n}\n\ntype packageDescriptor struct {\n\tfiles []protoreflect.FileDescriptor\n}\n\n// RegisterFile registers the provided file descriptor.\n//\n// If any descriptor within the file conflicts with the descriptor of any\n// previously registered file (e.g., two enums with the same full name),\n// then the file is not registered and an error is returned.\n//\n// It is permitted for multiple files to have the same file path.\nfunc (r *Files) RegisterFile(file protoreflect.FileDescriptor) error {\n\tif r == GlobalFiles {\n\t\tglobalMutex.Lock()\n\t\tdefer globalMutex.Unlock()\n\t}\n\tif r.descsByName == nil {\n\t\tr.descsByName = map[protoreflect.FullName]any{\n\t\t\t\"\": &packageDescriptor{},\n\t\t}\n\t\tr.filesByPath = make(map[string][]protoreflect.FileDescriptor)\n\t}\n\tpath := file.Path()\n\tif prev := r.filesByPath[path]; len(prev) > 0 {\n\t\tr.checkGenProtoConflict(path)\n\t\terr := errors.New(\"file %q is already registered\", file.Path())\n\t\terr = amendErrorWithCaller(err, prev[0], file)\n\t\tif !(r == GlobalFiles && ignoreConflict(file, err)) {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tfor name := file.Package(); name != \"\"; name = name.Parent() {\n\t\tswitch prev := r.descsByName[name]; prev.(type) {\n\t\tcase nil, *packageDescriptor:\n\t\tdefault:\n\t\t\terr := errors.New(\"file %q has a package name conflict over %v\", file.Path(), name)\n\t\t\terr = amendErrorWithCaller(err, prev, file)\n\t\t\tif r == GlobalFiles && ignoreConflict(file, err) {\n\t\t\t\terr = nil\n\t\t\t}\n\t\t\treturn err\n\t\t}\n\t}\n\tvar err error\n\tvar hasConflict bool\n\trangeTopLevelDescriptors(file, func(d protoreflect.Descriptor) {\n\t\tif prev := r.descsByName[d.FullName()]; prev != nil {\n\t\t\thasConflict = true\n\t\t\terr = errors.New(\"file %q has a name conflict over %v\", file.Path(), d.FullName())\n\t\t\terr = amendErrorWithCaller(err, prev, file)\n\t\t\tif r == GlobalFiles && ignoreConflict(d, err) {\n\t\t\t\terr = nil\n\t\t\t}\n\t\t}\n\t})\n\tif hasConflict {\n\t\treturn err\n\t}\n\n\tfor name := file.Package(); name != \"\"; name = name.Parent() {\n\t\tif r.descsByName[name] == nil {\n\t\t\tr.descsByName[name] = &packageDescriptor{}\n\t\t}\n\t}\n\tp := r.descsByName[file.Package()].(*packageDescriptor)\n\tp.files = append(p.files, file)\n\trangeTopLevelDescriptors(file, func(d protoreflect.Descriptor) {\n\t\tr.descsByName[d.FullName()] = d\n\t})\n\tr.filesByPath[path] = append(r.filesByPath[path], file)\n\tr.numFiles++\n\treturn nil\n}\n\n// Several well-known types were hosted in the google.golang.org/genproto module\n// but were later moved to this module. To avoid a weak dependency on the\n// genproto module (and its relatively large set of transitive dependencies),\n// we rely on a registration conflict to determine whether the genproto version\n// is too old (i.e., does not contain aliases to the new type declarations).\nfunc (r *Files) checkGenProtoConflict(path string) {\n\tif r != GlobalFiles {\n\t\treturn\n\t}\n\tvar prevPath string\n\tconst prevModule = \"google.golang.org/genproto\"\n\tconst prevVersion = \"cb27e3aa (May 26th, 2020)\"\n\tswitch path {\n\tcase \"google/protobuf/field_mask.proto\":\n\t\tprevPath = prevModule + \"/protobuf/field_mask\"\n\tcase \"google/protobuf/api.proto\":\n\t\tprevPath = prevModule + \"/protobuf/api\"\n\tcase \"google/protobuf/type.proto\":\n\t\tprevPath = prevModule + \"/protobuf/ptype\"\n\tcase \"google/protobuf/source_context.proto\":\n\t\tprevPath = prevModule + \"/protobuf/source_context\"\n\tdefault:\n\t\treturn\n\t}\n\tpkgName := strings.TrimSuffix(strings.TrimPrefix(path, \"google/protobuf/\"), \".proto\")\n\tpkgName = strings.Replace(pkgName, \"_\", \"\", -1) + \"pb\" // e.g., \"field_mask\" => \"fieldmaskpb\"\n\tcurrPath := \"google.golang.org/protobuf/types/known/\" + pkgName\n\tpanic(fmt.Sprintf(\"\"+\n\t\t\"duplicate registration of %q\\n\"+\n\t\t\"\\n\"+\n\t\t\"The generated definition for this file has moved:\\n\"+\n\t\t\"\\tfrom: %q\\n\"+\n\t\t\"\\tto:   %q\\n\"+\n\t\t\"A dependency on the %q module must\\n\"+\n\t\t\"be at version %v or higher.\\n\"+\n\t\t\"\\n\"+\n\t\t\"Upgrade the dependency by running:\\n\"+\n\t\t\"\\tgo get -u %v\\n\",\n\t\tpath, prevPath, currPath, prevModule, prevVersion, prevPath))\n}\n\n// FindDescriptorByName looks up a descriptor by the full name.\n//\n// This returns (nil, [NotFound]) if not found.\nfunc (r *Files) FindDescriptorByName(name protoreflect.FullName) (protoreflect.Descriptor, error) {\n\tif r == nil {\n\t\treturn nil, NotFound\n\t}\n\tif r == GlobalFiles {\n\t\tglobalMutex.RLock()\n\t\tdefer globalMutex.RUnlock()\n\t}\n\tprefix := name\n\tsuffix := nameSuffix(\"\")\n\tfor prefix != \"\" {\n\t\tif d, ok := r.descsByName[prefix]; ok {\n\t\t\tswitch d := d.(type) {\n\t\t\tcase protoreflect.EnumDescriptor:\n\t\t\t\tif d.FullName() == name {\n\t\t\t\t\treturn d, nil\n\t\t\t\t}\n\t\t\tcase protoreflect.EnumValueDescriptor:\n\t\t\t\tif d.FullName() == name {\n\t\t\t\t\treturn d, nil\n\t\t\t\t}\n\t\t\tcase protoreflect.MessageDescriptor:\n\t\t\t\tif d.FullName() == name {\n\t\t\t\t\treturn d, nil\n\t\t\t\t}\n\t\t\t\tif d := findDescriptorInMessage(d, suffix); d != nil && d.FullName() == name {\n\t\t\t\t\treturn d, nil\n\t\t\t\t}\n\t\t\tcase protoreflect.ExtensionDescriptor:\n\t\t\t\tif d.FullName() == name {\n\t\t\t\t\treturn d, nil\n\t\t\t\t}\n\t\t\tcase protoreflect.ServiceDescriptor:\n\t\t\t\tif d.FullName() == name {\n\t\t\t\t\treturn d, nil\n\t\t\t\t}\n\t\t\t\tif d := d.Methods().ByName(suffix.Pop()); d != nil && d.FullName() == name {\n\t\t\t\t\treturn d, nil\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn nil, NotFound\n\t\t}\n\t\tprefix = prefix.Parent()\n\t\tsuffix = nameSuffix(name[len(prefix)+len(\".\"):])\n\t}\n\treturn nil, NotFound\n}\n\nfunc findDescriptorInMessage(md protoreflect.MessageDescriptor, suffix nameSuffix) protoreflect.Descriptor {\n\tname := suffix.Pop()\n\tif suffix == \"\" {\n\t\tif ed := md.Enums().ByName(name); ed != nil {\n\t\t\treturn ed\n\t\t}\n\t\tfor i := md.Enums().Len() - 1; i >= 0; i-- {\n\t\t\tif vd := md.Enums().Get(i).Values().ByName(name); vd != nil {\n\t\t\t\treturn vd\n\t\t\t}\n\t\t}\n\t\tif xd := md.Extensions().ByName(name); xd != nil {\n\t\t\treturn xd\n\t\t}\n\t\tif fd := md.Fields().ByName(name); fd != nil {\n\t\t\treturn fd\n\t\t}\n\t\tif od := md.Oneofs().ByName(name); od != nil {\n\t\t\treturn od\n\t\t}\n\t}\n\tif md := md.Messages().ByName(name); md != nil {\n\t\tif suffix == \"\" {\n\t\t\treturn md\n\t\t}\n\t\treturn findDescriptorInMessage(md, suffix)\n\t}\n\treturn nil\n}\n\ntype nameSuffix string\n\nfunc (s *nameSuffix) Pop() (name protoreflect.Name) {\n\tif i := strings.IndexByte(string(*s), '.'); i >= 0 {\n\t\tname, *s = protoreflect.Name((*s)[:i]), (*s)[i+1:]\n\t} else {\n\t\tname, *s = protoreflect.Name((*s)), \"\"\n\t}\n\treturn name\n}\n\n// FindFileByPath looks up a file by the path.\n//\n// This returns (nil, [NotFound]) if not found.\n// This returns an error if multiple files have the same path.\nfunc (r *Files) FindFileByPath(path string) (protoreflect.FileDescriptor, error) {\n\tif r == nil {\n\t\treturn nil, NotFound\n\t}\n\tif r == GlobalFiles {\n\t\tglobalMutex.RLock()\n\t\tdefer globalMutex.RUnlock()\n\t}\n\tfds := r.filesByPath[path]\n\tswitch len(fds) {\n\tcase 0:\n\t\treturn nil, NotFound\n\tcase 1:\n\t\treturn fds[0], nil\n\tdefault:\n\t\treturn nil, errors.New(\"multiple files named %q\", path)\n\t}\n}\n\n// NumFiles reports the number of registered files,\n// including duplicate files with the same name.\nfunc (r *Files) NumFiles() int {\n\tif r == nil {\n\t\treturn 0\n\t}\n\tif r == GlobalFiles {\n\t\tglobalMutex.RLock()\n\t\tdefer globalMutex.RUnlock()\n\t}\n\treturn r.numFiles\n}\n\n// RangeFiles iterates over all registered files while f returns true.\n// If multiple files have the same name, RangeFiles iterates over all of them.\n// The iteration order is undefined.\nfunc (r *Files) RangeFiles(f func(protoreflect.FileDescriptor) bool) {\n\tif r == nil {\n\t\treturn\n\t}\n\tif r == GlobalFiles {\n\t\tglobalMutex.RLock()\n\t\tdefer globalMutex.RUnlock()\n\t}\n\tfor _, files := range r.filesByPath {\n\t\tfor _, file := range files {\n\t\t\tif !f(file) {\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}\n}\n\n// NumFilesByPackage reports the number of registered files in a proto package.\nfunc (r *Files) NumFilesByPackage(name protoreflect.FullName) int {\n\tif r == nil {\n\t\treturn 0\n\t}\n\tif r == GlobalFiles {\n\t\tglobalMutex.RLock()\n\t\tdefer globalMutex.RUnlock()\n\t}\n\tp, ok := r.descsByName[name].(*packageDescriptor)\n\tif !ok {\n\t\treturn 0\n\t}\n\treturn len(p.files)\n}\n\n// RangeFilesByPackage iterates over all registered files in a given proto package\n// while f returns true. The iteration order is undefined.\nfunc (r *Files) RangeFilesByPackage(name protoreflect.FullName, f func(protoreflect.FileDescriptor) bool) {\n\tif r == nil {\n\t\treturn\n\t}\n\tif r == GlobalFiles {\n\t\tglobalMutex.RLock()\n\t\tdefer globalMutex.RUnlock()\n\t}\n\tp, ok := r.descsByName[name].(*packageDescriptor)\n\tif !ok {\n\t\treturn\n\t}\n\tfor _, file := range p.files {\n\t\tif !f(file) {\n\t\t\treturn\n\t\t}\n\t}\n}\n\n// rangeTopLevelDescriptors iterates over all top-level descriptors in a file\n// which will be directly entered into the registry.\nfunc rangeTopLevelDescriptors(fd protoreflect.FileDescriptor, f func(protoreflect.Descriptor)) {\n\teds := fd.Enums()\n\tfor i := eds.Len() - 1; i >= 0; i-- {\n\t\tf(eds.Get(i))\n\t\tvds := eds.Get(i).Values()\n\t\tfor i := vds.Len() - 1; i >= 0; i-- {\n\t\t\tf(vds.Get(i))\n\t\t}\n\t}\n\tmds := fd.Messages()\n\tfor i := mds.Len() - 1; i >= 0; i-- {\n\t\tf(mds.Get(i))\n\t}\n\txds := fd.Extensions()\n\tfor i := xds.Len() - 1; i >= 0; i-- {\n\t\tf(xds.Get(i))\n\t}\n\tsds := fd.Services()\n\tfor i := sds.Len() - 1; i >= 0; i-- {\n\t\tf(sds.Get(i))\n\t}\n}\n\n// MessageTypeResolver is an interface for looking up messages.\n//\n// A compliant implementation must deterministically return the same type\n// if no error is encountered.\n//\n// The [Types] type implements this interface.\ntype MessageTypeResolver interface {\n\t// FindMessageByName looks up a message by its full name.\n\t// E.g., \"google.protobuf.Any\"\n\t//\n\t// This return (nil, NotFound) if not found.\n\tFindMessageByName(message protoreflect.FullName) (protoreflect.MessageType, error)\n\n\t// FindMessageByURL looks up a message by a URL identifier.\n\t// See documentation on google.protobuf.Any.type_url for the URL format.\n\t//\n\t// This returns (nil, NotFound) if not found.\n\tFindMessageByURL(url string) (protoreflect.MessageType, error)\n}\n\n// ExtensionTypeResolver is an interface for looking up extensions.\n//\n// A compliant implementation must deterministically return the same type\n// if no error is encountered.\n//\n// The [Types] type implements this interface.\ntype ExtensionTypeResolver interface {\n\t// FindExtensionByName looks up a extension field by the field's full name.\n\t// Note that this is the full name of the field as determined by\n\t// where the extension is declared and is unrelated to the full name of the\n\t// message being extended.\n\t//\n\t// This returns (nil, NotFound) if not found.\n\tFindExtensionByName(field protoreflect.FullName) (protoreflect.ExtensionType, error)\n\n\t// FindExtensionByNumber looks up a extension field by the field number\n\t// within some parent message, identified by full name.\n\t//\n\t// This returns (nil, NotFound) if not found.\n\tFindExtensionByNumber(message protoreflect.FullName, field protoreflect.FieldNumber) (protoreflect.ExtensionType, error)\n}\n\nvar (\n\t_ MessageTypeResolver   = (*Types)(nil)\n\t_ ExtensionTypeResolver = (*Types)(nil)\n)\n\n// Types is a registry for looking up or iterating over descriptor types.\n// The Find and Range methods are safe for concurrent use.\ntype Types struct {\n\ttypesByName         typesByName\n\textensionsByMessage extensionsByMessage\n\n\tnumEnums      int\n\tnumMessages   int\n\tnumExtensions int\n}\n\ntype (\n\ttypesByName         map[protoreflect.FullName]any\n\textensionsByMessage map[protoreflect.FullName]extensionsByNumber\n\textensionsByNumber  map[protoreflect.FieldNumber]protoreflect.ExtensionType\n)\n\n// RegisterMessage registers the provided message type.\n//\n// If a naming conflict occurs, the type is not registered and an error is returned.\nfunc (r *Types) RegisterMessage(mt protoreflect.MessageType) error {\n\t// Under rare circumstances getting the descriptor might recursively\n\t// examine the registry, so fetch it before locking.\n\tmd := mt.Descriptor()\n\n\tif r == GlobalTypes {\n\t\tglobalMutex.Lock()\n\t\tdefer globalMutex.Unlock()\n\t}\n\n\tif err := r.register(\"message\", md, mt); err != nil {\n\t\treturn err\n\t}\n\tr.numMessages++\n\treturn nil\n}\n\n// RegisterEnum registers the provided enum type.\n//\n// If a naming conflict occurs, the type is not registered and an error is returned.\nfunc (r *Types) RegisterEnum(et protoreflect.EnumType) error {\n\t// Under rare circumstances getting the descriptor might recursively\n\t// examine the registry, so fetch it before locking.\n\ted := et.Descriptor()\n\n\tif r == GlobalTypes {\n\t\tglobalMutex.Lock()\n\t\tdefer globalMutex.Unlock()\n\t}\n\n\tif err := r.register(\"enum\", ed, et); err != nil {\n\t\treturn err\n\t}\n\tr.numEnums++\n\treturn nil\n}\n\n// RegisterExtension registers the provided extension type.\n//\n// If a naming conflict occurs, the type is not registered and an error is returned.\nfunc (r *Types) RegisterExtension(xt protoreflect.ExtensionType) error {\n\t// Under rare circumstances getting the descriptor might recursively\n\t// examine the registry, so fetch it before locking.\n\t//\n\t// A known case where this can happen: Fetching the TypeDescriptor for a\n\t// legacy ExtensionDesc can consult the global registry.\n\txd := xt.TypeDescriptor()\n\n\tif r == GlobalTypes {\n\t\tglobalMutex.Lock()\n\t\tdefer globalMutex.Unlock()\n\t}\n\n\tfield := xd.Number()\n\tmessage := xd.ContainingMessage().FullName()\n\tif prev := r.extensionsByMessage[message][field]; prev != nil {\n\t\terr := errors.New(\"extension number %d is already registered on message %v\", field, message)\n\t\terr = amendErrorWithCaller(err, prev, xt)\n\t\tif !(r == GlobalTypes && ignoreConflict(xd, err)) {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tif err := r.register(\"extension\", xd, xt); err != nil {\n\t\treturn err\n\t}\n\tif r.extensionsByMessage == nil {\n\t\tr.extensionsByMessage = make(extensionsByMessage)\n\t}\n\tif r.extensionsByMessage[message] == nil {\n\t\tr.extensionsByMessage[message] = make(extensionsByNumber)\n\t}\n\tr.extensionsByMessage[message][field] = xt\n\tr.numExtensions++\n\treturn nil\n}\n\nfunc (r *Types) register(kind string, desc protoreflect.Descriptor, typ any) error {\n\tname := desc.FullName()\n\tprev := r.typesByName[name]\n\tif prev != nil {\n\t\terr := errors.New(\"%v %v is already registered\", kind, name)\n\t\terr = amendErrorWithCaller(err, prev, typ)\n\t\tif !(r == GlobalTypes && ignoreConflict(desc, err)) {\n\t\t\treturn err\n\t\t}\n\t}\n\tif r.typesByName == nil {\n\t\tr.typesByName = make(typesByName)\n\t}\n\tr.typesByName[name] = typ\n\treturn nil\n}\n\n// FindEnumByName looks up an enum by its full name.\n// E.g., \"google.protobuf.Field.Kind\".\n//\n// This returns (nil, [NotFound]) if not found.\nfunc (r *Types) FindEnumByName(enum protoreflect.FullName) (protoreflect.EnumType, error) {\n\tif r == nil {\n\t\treturn nil, NotFound\n\t}\n\tif r == GlobalTypes {\n\t\tglobalMutex.RLock()\n\t\tdefer globalMutex.RUnlock()\n\t}\n\tif v := r.typesByName[enum]; v != nil {\n\t\tif et, _ := v.(protoreflect.EnumType); et != nil {\n\t\t\treturn et, nil\n\t\t}\n\t\treturn nil, errors.New(\"found wrong type: got %v, want enum\", typeName(v))\n\t}\n\treturn nil, NotFound\n}\n\n// FindMessageByName looks up a message by its full name,\n// e.g. \"google.protobuf.Any\".\n//\n// This returns (nil, [NotFound]) if not found.\nfunc (r *Types) FindMessageByName(message protoreflect.FullName) (protoreflect.MessageType, error) {\n\tif r == nil {\n\t\treturn nil, NotFound\n\t}\n\tif r == GlobalTypes {\n\t\tglobalMutex.RLock()\n\t\tdefer globalMutex.RUnlock()\n\t}\n\tif v := r.typesByName[message]; v != nil {\n\t\tif mt, _ := v.(protoreflect.MessageType); mt != nil {\n\t\t\treturn mt, nil\n\t\t}\n\t\treturn nil, errors.New(\"found wrong type: got %v, want message\", typeName(v))\n\t}\n\treturn nil, NotFound\n}\n\n// FindMessageByURL looks up a message by a URL identifier.\n// See documentation on google.protobuf.Any.type_url for the URL format.\n//\n// This returns (nil, [NotFound]) if not found.\nfunc (r *Types) FindMessageByURL(url string) (protoreflect.MessageType, error) {\n\t// This function is similar to FindMessageByName but\n\t// truncates anything before and including '/' in the URL.\n\tif r == nil {\n\t\treturn nil, NotFound\n\t}\n\tif r == GlobalTypes {\n\t\tglobalMutex.RLock()\n\t\tdefer globalMutex.RUnlock()\n\t}\n\tmessage := protoreflect.FullName(url)\n\tif i := strings.LastIndexByte(url, '/'); i >= 0 {\n\t\tmessage = message[i+len(\"/\"):]\n\t}\n\n\tif v := r.typesByName[message]; v != nil {\n\t\tif mt, _ := v.(protoreflect.MessageType); mt != nil {\n\t\t\treturn mt, nil\n\t\t}\n\t\treturn nil, errors.New(\"found wrong type: got %v, want message\", typeName(v))\n\t}\n\treturn nil, NotFound\n}\n\n// FindExtensionByName looks up a extension field by the field's full name.\n// Note that this is the full name of the field as determined by\n// where the extension is declared and is unrelated to the full name of the\n// message being extended.\n//\n// This returns (nil, [NotFound]) if not found.\nfunc (r *Types) FindExtensionByName(field protoreflect.FullName) (protoreflect.ExtensionType, error) {\n\tif r == nil {\n\t\treturn nil, NotFound\n\t}\n\tif r == GlobalTypes {\n\t\tglobalMutex.RLock()\n\t\tdefer globalMutex.RUnlock()\n\t}\n\tif v := r.typesByName[field]; v != nil {\n\t\tif xt, _ := v.(protoreflect.ExtensionType); xt != nil {\n\t\t\treturn xt, nil\n\t\t}\n\n\t\t// MessageSet extensions are special in that the name of the extension\n\t\t// is the name of the message type used to extend the MessageSet.\n\t\t// This naming scheme is used by text and JSON serialization.\n\t\t//\n\t\t// This feature is protected by the ProtoLegacy flag since MessageSets\n\t\t// are a proto1 feature that is long deprecated.\n\t\tif flags.ProtoLegacy {\n\t\t\tif _, ok := v.(protoreflect.MessageType); ok {\n\t\t\t\tfield := field.Append(messageset.ExtensionName)\n\t\t\t\tif v := r.typesByName[field]; v != nil {\n\t\t\t\t\tif xt, _ := v.(protoreflect.ExtensionType); xt != nil {\n\t\t\t\t\t\tif messageset.IsMessageSetExtension(xt.TypeDescriptor()) {\n\t\t\t\t\t\t\treturn xt, nil\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn nil, errors.New(\"found wrong type: got %v, want extension\", typeName(v))\n\t}\n\treturn nil, NotFound\n}\n\n// FindExtensionByNumber looks up a extension field by the field number\n// within some parent message, identified by full name.\n//\n// This returns (nil, [NotFound]) if not found.\nfunc (r *Types) FindExtensionByNumber(message protoreflect.FullName, field protoreflect.FieldNumber) (protoreflect.ExtensionType, error) {\n\tif r == nil {\n\t\treturn nil, NotFound\n\t}\n\tif r == GlobalTypes {\n\t\tglobalMutex.RLock()\n\t\tdefer globalMutex.RUnlock()\n\t}\n\tif xt, ok := r.extensionsByMessage[message][field]; ok {\n\t\treturn xt, nil\n\t}\n\treturn nil, NotFound\n}\n\n// NumEnums reports the number of registered enums.\nfunc (r *Types) NumEnums() int {\n\tif r == nil {\n\t\treturn 0\n\t}\n\tif r == GlobalTypes {\n\t\tglobalMutex.RLock()\n\t\tdefer globalMutex.RUnlock()\n\t}\n\treturn r.numEnums\n}\n\n// RangeEnums iterates over all registered enums while f returns true.\n// Iteration order is undefined.\nfunc (r *Types) RangeEnums(f func(protoreflect.EnumType) bool) {\n\tif r == nil {\n\t\treturn\n\t}\n\tif r == GlobalTypes {\n\t\tglobalMutex.RLock()\n\t\tdefer globalMutex.RUnlock()\n\t}\n\tfor _, typ := range r.typesByName {\n\t\tif et, ok := typ.(protoreflect.EnumType); ok {\n\t\t\tif !f(et) {\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}\n}\n\n// NumMessages reports the number of registered messages.\nfunc (r *Types) NumMessages() int {\n\tif r == nil {\n\t\treturn 0\n\t}\n\tif r == GlobalTypes {\n\t\tglobalMutex.RLock()\n\t\tdefer globalMutex.RUnlock()\n\t}\n\treturn r.numMessages\n}\n\n// RangeMessages iterates over all registered messages while f returns true.\n// Iteration order is undefined.\nfunc (r *Types) RangeMessages(f func(protoreflect.MessageType) bool) {\n\tif r == nil {\n\t\treturn\n\t}\n\tif r == GlobalTypes {\n\t\tglobalMutex.RLock()\n\t\tdefer globalMutex.RUnlock()\n\t}\n\tfor _, typ := range r.typesByName {\n\t\tif mt, ok := typ.(protoreflect.MessageType); ok {\n\t\t\tif !f(mt) {\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}\n}\n\n// NumExtensions reports the number of registered extensions.\nfunc (r *Types) NumExtensions() int {\n\tif r == nil {\n\t\treturn 0\n\t}\n\tif r == GlobalTypes {\n\t\tglobalMutex.RLock()\n\t\tdefer globalMutex.RUnlock()\n\t}\n\treturn r.numExtensions\n}\n\n// RangeExtensions iterates over all registered extensions while f returns true.\n// Iteration order is undefined.\nfunc (r *Types) RangeExtensions(f func(protoreflect.ExtensionType) bool) {\n\tif r == nil {\n\t\treturn\n\t}\n\tif r == GlobalTypes {\n\t\tglobalMutex.RLock()\n\t\tdefer globalMutex.RUnlock()\n\t}\n\tfor _, typ := range r.typesByName {\n\t\tif xt, ok := typ.(protoreflect.ExtensionType); ok {\n\t\t\tif !f(xt) {\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}\n}\n\n// NumExtensionsByMessage reports the number of registered extensions for\n// a given message type.\nfunc (r *Types) NumExtensionsByMessage(message protoreflect.FullName) int {\n\tif r == nil {\n\t\treturn 0\n\t}\n\tif r == GlobalTypes {\n\t\tglobalMutex.RLock()\n\t\tdefer globalMutex.RUnlock()\n\t}\n\treturn len(r.extensionsByMessage[message])\n}\n\n// RangeExtensionsByMessage iterates over all registered extensions filtered\n// by a given message type while f returns true. Iteration order is undefined.\nfunc (r *Types) RangeExtensionsByMessage(message protoreflect.FullName, f func(protoreflect.ExtensionType) bool) {\n\tif r == nil {\n\t\treturn\n\t}\n\tif r == GlobalTypes {\n\t\tglobalMutex.RLock()\n\t\tdefer globalMutex.RUnlock()\n\t}\n\tfor _, xt := range r.extensionsByMessage[message] {\n\t\tif !f(xt) {\n\t\t\treturn\n\t\t}\n\t}\n}\n\nfunc typeName(t any) string {\n\tswitch t.(type) {\n\tcase protoreflect.EnumType:\n\t\treturn \"enum\"\n\tcase protoreflect.MessageType:\n\t\treturn \"message\"\n\tcase protoreflect.ExtensionType:\n\t\treturn \"extension\"\n\tdefault:\n\t\treturn fmt.Sprintf(\"%T\", t)\n\t}\n}\n\nfunc amendErrorWithCaller(err error, prev, curr any) error {\n\tprevPkg := goPackage(prev)\n\tcurrPkg := goPackage(curr)\n\tif prevPkg == \"\" || currPkg == \"\" || prevPkg == currPkg {\n\t\treturn err\n\t}\n\treturn errors.New(\"%s\\n\\tpreviously from: %q\\n\\tcurrently from:  %q\", err, prevPkg, currPkg)\n}\n\nfunc goPackage(v any) string {\n\tswitch d := v.(type) {\n\tcase protoreflect.EnumType:\n\t\tv = d.Descriptor()\n\tcase protoreflect.MessageType:\n\t\tv = d.Descriptor()\n\tcase protoreflect.ExtensionType:\n\t\tv = d.TypeDescriptor()\n\t}\n\tif d, ok := v.(protoreflect.Descriptor); ok {\n\t\tv = d.ParentFile()\n\t}\n\tif d, ok := v.(interface{ GoPackagePath() string }); ok {\n\t\treturn d.GoPackagePath()\n\t}\n\treturn \"\"\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/runtime/protoiface/legacy.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage protoiface\n\ntype MessageV1 interface {\n\tReset()\n\tString() string\n\tProtoMessage()\n}\n\ntype ExtensionRangeV1 struct {\n\tStart, End int32 // both inclusive\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/runtime/protoiface/methods.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package protoiface contains types referenced or implemented by messages.\n//\n// WARNING: This package should only be imported by message implementations.\n// The functionality found in this package should be accessed through\n// higher-level abstractions provided by the proto package.\npackage protoiface\n\nimport (\n\t\"google.golang.org/protobuf/internal/pragma\"\n\t\"google.golang.org/protobuf/reflect/protoreflect\"\n)\n\n// Methods is a set of optional fast-path implementations of various operations.\ntype Methods = struct {\n\tpragma.NoUnkeyedLiterals\n\n\t// Flags indicate support for optional features.\n\tFlags SupportFlags\n\n\t// Size returns the size in bytes of the wire-format encoding of a message.\n\t// Marshal must be provided if a custom Size is provided.\n\tSize func(SizeInput) SizeOutput\n\n\t// Marshal formats a message in the wire-format encoding to the provided buffer.\n\t// Size should be provided if a custom Marshal is provided.\n\t// It must not return an error for a partial message.\n\tMarshal func(MarshalInput) (MarshalOutput, error)\n\n\t// Unmarshal parses the wire-format encoding and merges the result into a message.\n\t// It must not reset the target message or return an error for a partial message.\n\tUnmarshal func(UnmarshalInput) (UnmarshalOutput, error)\n\n\t// Merge merges the contents of a source message into a destination message.\n\tMerge func(MergeInput) MergeOutput\n\n\t// CheckInitialized returns an error if any required fields in the message are not set.\n\tCheckInitialized func(CheckInitializedInput) (CheckInitializedOutput, error)\n\n\t// Equal compares two messages and returns EqualOutput.Equal == true if they are equal.\n\tEqual func(EqualInput) EqualOutput\n}\n\n// SupportFlags indicate support for optional features.\ntype SupportFlags = uint64\n\nconst (\n\t// SupportMarshalDeterministic reports whether MarshalOptions.Deterministic is supported.\n\tSupportMarshalDeterministic SupportFlags = 1 << iota\n\n\t// SupportUnmarshalDiscardUnknown reports whether UnmarshalOptions.DiscardUnknown is supported.\n\tSupportUnmarshalDiscardUnknown\n)\n\n// SizeInput is input to the Size method.\ntype SizeInput = struct {\n\tpragma.NoUnkeyedLiterals\n\n\tMessage protoreflect.Message\n\tFlags   MarshalInputFlags\n}\n\n// SizeOutput is output from the Size method.\ntype SizeOutput = struct {\n\tpragma.NoUnkeyedLiterals\n\n\tSize int\n}\n\n// MarshalInput is input to the Marshal method.\ntype MarshalInput = struct {\n\tpragma.NoUnkeyedLiterals\n\n\tMessage protoreflect.Message\n\tBuf     []byte // output is appended to this buffer\n\tFlags   MarshalInputFlags\n}\n\n// MarshalOutput is output from the Marshal method.\ntype MarshalOutput = struct {\n\tpragma.NoUnkeyedLiterals\n\n\tBuf []byte // contains marshaled message\n}\n\n// MarshalInputFlags configure the marshaler.\n// Most flags correspond to fields in proto.MarshalOptions.\ntype MarshalInputFlags = uint8\n\nconst (\n\tMarshalDeterministic MarshalInputFlags = 1 << iota\n\tMarshalUseCachedSize\n)\n\n// UnmarshalInput is input to the Unmarshal method.\ntype UnmarshalInput = struct {\n\tpragma.NoUnkeyedLiterals\n\n\tMessage  protoreflect.Message\n\tBuf      []byte // input buffer\n\tFlags    UnmarshalInputFlags\n\tResolver interface {\n\t\tFindExtensionByName(field protoreflect.FullName) (protoreflect.ExtensionType, error)\n\t\tFindExtensionByNumber(message protoreflect.FullName, field protoreflect.FieldNumber) (protoreflect.ExtensionType, error)\n\t}\n\tDepth int\n}\n\n// UnmarshalOutput is output from the Unmarshal method.\ntype UnmarshalOutput = struct {\n\tpragma.NoUnkeyedLiterals\n\n\tFlags UnmarshalOutputFlags\n}\n\n// UnmarshalInputFlags configure the unmarshaler.\n// Most flags correspond to fields in proto.UnmarshalOptions.\ntype UnmarshalInputFlags = uint8\n\nconst (\n\tUnmarshalDiscardUnknown UnmarshalInputFlags = 1 << iota\n)\n\n// UnmarshalOutputFlags are output from the Unmarshal method.\ntype UnmarshalOutputFlags = uint8\n\nconst (\n\t// UnmarshalInitialized may be set on return if all required fields are known to be set.\n\t// If unset, then it does not necessarily indicate that the message is uninitialized,\n\t// only that its status could not be confirmed.\n\tUnmarshalInitialized UnmarshalOutputFlags = 1 << iota\n)\n\n// MergeInput is input to the Merge method.\ntype MergeInput = struct {\n\tpragma.NoUnkeyedLiterals\n\n\tSource      protoreflect.Message\n\tDestination protoreflect.Message\n}\n\n// MergeOutput is output from the Merge method.\ntype MergeOutput = struct {\n\tpragma.NoUnkeyedLiterals\n\n\tFlags MergeOutputFlags\n}\n\n// MergeOutputFlags are output from the Merge method.\ntype MergeOutputFlags = uint8\n\nconst (\n\t// MergeComplete reports whether the merge was performed.\n\t// If unset, the merger must have made no changes to the destination.\n\tMergeComplete MergeOutputFlags = 1 << iota\n)\n\n// CheckInitializedInput is input to the CheckInitialized method.\ntype CheckInitializedInput = struct {\n\tpragma.NoUnkeyedLiterals\n\n\tMessage protoreflect.Message\n}\n\n// CheckInitializedOutput is output from the CheckInitialized method.\ntype CheckInitializedOutput = struct {\n\tpragma.NoUnkeyedLiterals\n}\n\n// EqualInput is input to the Equal method.\ntype EqualInput = struct {\n\tpragma.NoUnkeyedLiterals\n\n\tMessageA protoreflect.Message\n\tMessageB protoreflect.Message\n}\n\n// EqualOutput is output from the Equal method.\ntype EqualOutput = struct {\n\tpragma.NoUnkeyedLiterals\n\n\tEqual bool\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/runtime/protoimpl/impl.go",
    "content": "// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package protoimpl contains the default implementation for messages\n// generated by protoc-gen-go.\n//\n// WARNING: This package should only ever be imported by generated messages.\n// The compatibility agreement covers nothing except for functionality needed\n// to keep existing generated messages operational. Breakages that occur due\n// to unauthorized usages of this package are not the author's responsibility.\npackage protoimpl\n\nimport (\n\t\"google.golang.org/protobuf/internal/filedesc\"\n\t\"google.golang.org/protobuf/internal/filetype\"\n\t\"google.golang.org/protobuf/internal/impl\"\n)\n\n// UnsafeEnabled specifies whether package unsafe can be used.\nconst UnsafeEnabled = impl.UnsafeEnabled\n\ntype (\n\t// Types used by generated code in init functions.\n\tDescBuilder = filedesc.Builder\n\tTypeBuilder = filetype.Builder\n\n\t// Types used by generated code to implement EnumType, MessageType, and ExtensionType.\n\tEnumInfo      = impl.EnumInfo\n\tMessageInfo   = impl.MessageInfo\n\tExtensionInfo = impl.ExtensionInfo\n\n\t// Types embedded in generated messages.\n\tMessageState     = impl.MessageState\n\tSizeCache        = impl.SizeCache\n\tWeakFields       = impl.WeakFields\n\tUnknownFields    = impl.UnknownFields\n\tExtensionFields  = impl.ExtensionFields\n\tExtensionFieldV1 = impl.ExtensionField\n\n\tPointer = impl.Pointer\n)\n\nvar X impl.Export\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/runtime/protoimpl/version.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage protoimpl\n\nimport (\n\t\"google.golang.org/protobuf/internal/version\"\n)\n\nconst (\n\t// MaxVersion is the maximum supported version for generated .pb.go files.\n\t// It is always the current version of the module.\n\tMaxVersion = version.Minor\n\n\t// GenVersion is the runtime version required by generated .pb.go files.\n\t// This is incremented when generated code relies on new functionality\n\t// in the runtime.\n\tGenVersion = 20\n\n\t// MinVersion is the minimum supported version for generated .pb.go files.\n\t// This is incremented when the runtime drops support for old code.\n\tMinVersion = 0\n)\n\n// EnforceVersion is used by code generated by protoc-gen-go\n// to statically enforce minimum and maximum versions of this package.\n// A compilation failure implies either that:\n//   - the runtime package is too old and needs to be updated OR\n//   - the generated code is too old and needs to be regenerated.\n//\n// The runtime package can be upgraded by running:\n//\n//\tgo get google.golang.org/protobuf\n//\n// The generated code can be regenerated by running:\n//\n//\tprotoc --go_out=${PROTOC_GEN_GO_ARGS} ${PROTO_FILES}\n//\n// Example usage by generated code:\n//\n//\tconst (\n//\t\t// Verify that this generated code is sufficiently up-to-date.\n//\t\t_ = protoimpl.EnforceVersion(genVersion - protoimpl.MinVersion)\n//\t\t// Verify that runtime/protoimpl is sufficiently up-to-date.\n//\t\t_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - genVersion)\n//\t)\n//\n// The genVersion is the current minor version used to generated the code.\n// This compile-time check relies on negative integer overflow of a uint\n// being a compilation failure (guaranteed by the Go specification).\ntype EnforceVersion uint\n\n// This enforces the following invariant:\n//\n//\tMinVersion ≤ GenVersion ≤ MaxVersion\nconst (\n\t_ = EnforceVersion(GenVersion - MinVersion)\n\t_ = EnforceVersion(MaxVersion - GenVersion)\n)\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go",
    "content": "// Protocol Buffers - Google's data interchange format\n// Copyright 2008 Google Inc.  All rights reserved.\n// https://developers.google.com/protocol-buffers/\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n// Author: kenton@google.com (Kenton Varda)\n//  Based on original Protocol Buffers design by\n//  Sanjay Ghemawat, Jeff Dean, and others.\n//\n// The messages in this file describe the definitions found in .proto files.\n// A valid .proto file can be translated directly to a FileDescriptorProto\n// without any other information (e.g. without reading its imports).\n\n// Code generated by protoc-gen-go. DO NOT EDIT.\n// source: google/protobuf/descriptor.proto\n\npackage descriptorpb\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n\tprotoimpl \"google.golang.org/protobuf/runtime/protoimpl\"\n\treflect \"reflect\"\n\tsync \"sync\"\n)\n\n// The full set of known editions.\ntype Edition int32\n\nconst (\n\t// A placeholder for an unknown edition value.\n\tEdition_EDITION_UNKNOWN Edition = 0\n\t// A placeholder edition for specifying default behaviors *before* a feature\n\t// was first introduced.  This is effectively an \"infinite past\".\n\tEdition_EDITION_LEGACY Edition = 900\n\t// Legacy syntax \"editions\".  These pre-date editions, but behave much like\n\t// distinct editions.  These can't be used to specify the edition of proto\n\t// files, but feature definitions must supply proto2/proto3 defaults for\n\t// backwards compatibility.\n\tEdition_EDITION_PROTO2 Edition = 998\n\tEdition_EDITION_PROTO3 Edition = 999\n\t// Editions that have been released.  The specific values are arbitrary and\n\t// should not be depended on, but they will always be time-ordered for easy\n\t// comparison.\n\tEdition_EDITION_2023 Edition = 1000\n\tEdition_EDITION_2024 Edition = 1001\n\t// Placeholder editions for testing feature resolution.  These should not be\n\t// used or relyed on outside of tests.\n\tEdition_EDITION_1_TEST_ONLY     Edition = 1\n\tEdition_EDITION_2_TEST_ONLY     Edition = 2\n\tEdition_EDITION_99997_TEST_ONLY Edition = 99997\n\tEdition_EDITION_99998_TEST_ONLY Edition = 99998\n\tEdition_EDITION_99999_TEST_ONLY Edition = 99999\n\t// Placeholder for specifying unbounded edition support.  This should only\n\t// ever be used by plugins that can expect to never require any changes to\n\t// support a new edition.\n\tEdition_EDITION_MAX Edition = 2147483647\n)\n\n// Enum value maps for Edition.\nvar (\n\tEdition_name = map[int32]string{\n\t\t0:          \"EDITION_UNKNOWN\",\n\t\t900:        \"EDITION_LEGACY\",\n\t\t998:        \"EDITION_PROTO2\",\n\t\t999:        \"EDITION_PROTO3\",\n\t\t1000:       \"EDITION_2023\",\n\t\t1001:       \"EDITION_2024\",\n\t\t1:          \"EDITION_1_TEST_ONLY\",\n\t\t2:          \"EDITION_2_TEST_ONLY\",\n\t\t99997:      \"EDITION_99997_TEST_ONLY\",\n\t\t99998:      \"EDITION_99998_TEST_ONLY\",\n\t\t99999:      \"EDITION_99999_TEST_ONLY\",\n\t\t2147483647: \"EDITION_MAX\",\n\t}\n\tEdition_value = map[string]int32{\n\t\t\"EDITION_UNKNOWN\":         0,\n\t\t\"EDITION_LEGACY\":          900,\n\t\t\"EDITION_PROTO2\":          998,\n\t\t\"EDITION_PROTO3\":          999,\n\t\t\"EDITION_2023\":            1000,\n\t\t\"EDITION_2024\":            1001,\n\t\t\"EDITION_1_TEST_ONLY\":     1,\n\t\t\"EDITION_2_TEST_ONLY\":     2,\n\t\t\"EDITION_99997_TEST_ONLY\": 99997,\n\t\t\"EDITION_99998_TEST_ONLY\": 99998,\n\t\t\"EDITION_99999_TEST_ONLY\": 99999,\n\t\t\"EDITION_MAX\":             2147483647,\n\t}\n)\n\nfunc (x Edition) Enum() *Edition {\n\tp := new(Edition)\n\t*p = x\n\treturn p\n}\n\nfunc (x Edition) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (Edition) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_google_protobuf_descriptor_proto_enumTypes[0].Descriptor()\n}\n\nfunc (Edition) Type() protoreflect.EnumType {\n\treturn &file_google_protobuf_descriptor_proto_enumTypes[0]\n}\n\nfunc (x Edition) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Do not use.\nfunc (x *Edition) UnmarshalJSON(b []byte) error {\n\tnum, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = Edition(num)\n\treturn nil\n}\n\n// Deprecated: Use Edition.Descriptor instead.\nfunc (Edition) EnumDescriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{0}\n}\n\n// The verification state of the extension range.\ntype ExtensionRangeOptions_VerificationState int32\n\nconst (\n\t// All the extensions of the range must be declared.\n\tExtensionRangeOptions_DECLARATION ExtensionRangeOptions_VerificationState = 0\n\tExtensionRangeOptions_UNVERIFIED  ExtensionRangeOptions_VerificationState = 1\n)\n\n// Enum value maps for ExtensionRangeOptions_VerificationState.\nvar (\n\tExtensionRangeOptions_VerificationState_name = map[int32]string{\n\t\t0: \"DECLARATION\",\n\t\t1: \"UNVERIFIED\",\n\t}\n\tExtensionRangeOptions_VerificationState_value = map[string]int32{\n\t\t\"DECLARATION\": 0,\n\t\t\"UNVERIFIED\":  1,\n\t}\n)\n\nfunc (x ExtensionRangeOptions_VerificationState) Enum() *ExtensionRangeOptions_VerificationState {\n\tp := new(ExtensionRangeOptions_VerificationState)\n\t*p = x\n\treturn p\n}\n\nfunc (x ExtensionRangeOptions_VerificationState) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (ExtensionRangeOptions_VerificationState) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_google_protobuf_descriptor_proto_enumTypes[1].Descriptor()\n}\n\nfunc (ExtensionRangeOptions_VerificationState) Type() protoreflect.EnumType {\n\treturn &file_google_protobuf_descriptor_proto_enumTypes[1]\n}\n\nfunc (x ExtensionRangeOptions_VerificationState) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Do not use.\nfunc (x *ExtensionRangeOptions_VerificationState) UnmarshalJSON(b []byte) error {\n\tnum, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = ExtensionRangeOptions_VerificationState(num)\n\treturn nil\n}\n\n// Deprecated: Use ExtensionRangeOptions_VerificationState.Descriptor instead.\nfunc (ExtensionRangeOptions_VerificationState) EnumDescriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{3, 0}\n}\n\ntype FieldDescriptorProto_Type int32\n\nconst (\n\t// 0 is reserved for errors.\n\t// Order is weird for historical reasons.\n\tFieldDescriptorProto_TYPE_DOUBLE FieldDescriptorProto_Type = 1\n\tFieldDescriptorProto_TYPE_FLOAT  FieldDescriptorProto_Type = 2\n\t// Not ZigZag encoded.  Negative numbers take 10 bytes.  Use TYPE_SINT64 if\n\t// negative values are likely.\n\tFieldDescriptorProto_TYPE_INT64  FieldDescriptorProto_Type = 3\n\tFieldDescriptorProto_TYPE_UINT64 FieldDescriptorProto_Type = 4\n\t// Not ZigZag encoded.  Negative numbers take 10 bytes.  Use TYPE_SINT32 if\n\t// negative values are likely.\n\tFieldDescriptorProto_TYPE_INT32   FieldDescriptorProto_Type = 5\n\tFieldDescriptorProto_TYPE_FIXED64 FieldDescriptorProto_Type = 6\n\tFieldDescriptorProto_TYPE_FIXED32 FieldDescriptorProto_Type = 7\n\tFieldDescriptorProto_TYPE_BOOL    FieldDescriptorProto_Type = 8\n\tFieldDescriptorProto_TYPE_STRING  FieldDescriptorProto_Type = 9\n\t// Tag-delimited aggregate.\n\t// Group type is deprecated and not supported after google.protobuf. However, Proto3\n\t// implementations should still be able to parse the group wire format and\n\t// treat group fields as unknown fields.  In Editions, the group wire format\n\t// can be enabled via the `message_encoding` feature.\n\tFieldDescriptorProto_TYPE_GROUP   FieldDescriptorProto_Type = 10\n\tFieldDescriptorProto_TYPE_MESSAGE FieldDescriptorProto_Type = 11 // Length-delimited aggregate.\n\t// New in version 2.\n\tFieldDescriptorProto_TYPE_BYTES    FieldDescriptorProto_Type = 12\n\tFieldDescriptorProto_TYPE_UINT32   FieldDescriptorProto_Type = 13\n\tFieldDescriptorProto_TYPE_ENUM     FieldDescriptorProto_Type = 14\n\tFieldDescriptorProto_TYPE_SFIXED32 FieldDescriptorProto_Type = 15\n\tFieldDescriptorProto_TYPE_SFIXED64 FieldDescriptorProto_Type = 16\n\tFieldDescriptorProto_TYPE_SINT32   FieldDescriptorProto_Type = 17 // Uses ZigZag encoding.\n\tFieldDescriptorProto_TYPE_SINT64   FieldDescriptorProto_Type = 18 // Uses ZigZag encoding.\n)\n\n// Enum value maps for FieldDescriptorProto_Type.\nvar (\n\tFieldDescriptorProto_Type_name = map[int32]string{\n\t\t1:  \"TYPE_DOUBLE\",\n\t\t2:  \"TYPE_FLOAT\",\n\t\t3:  \"TYPE_INT64\",\n\t\t4:  \"TYPE_UINT64\",\n\t\t5:  \"TYPE_INT32\",\n\t\t6:  \"TYPE_FIXED64\",\n\t\t7:  \"TYPE_FIXED32\",\n\t\t8:  \"TYPE_BOOL\",\n\t\t9:  \"TYPE_STRING\",\n\t\t10: \"TYPE_GROUP\",\n\t\t11: \"TYPE_MESSAGE\",\n\t\t12: \"TYPE_BYTES\",\n\t\t13: \"TYPE_UINT32\",\n\t\t14: \"TYPE_ENUM\",\n\t\t15: \"TYPE_SFIXED32\",\n\t\t16: \"TYPE_SFIXED64\",\n\t\t17: \"TYPE_SINT32\",\n\t\t18: \"TYPE_SINT64\",\n\t}\n\tFieldDescriptorProto_Type_value = map[string]int32{\n\t\t\"TYPE_DOUBLE\":   1,\n\t\t\"TYPE_FLOAT\":    2,\n\t\t\"TYPE_INT64\":    3,\n\t\t\"TYPE_UINT64\":   4,\n\t\t\"TYPE_INT32\":    5,\n\t\t\"TYPE_FIXED64\":  6,\n\t\t\"TYPE_FIXED32\":  7,\n\t\t\"TYPE_BOOL\":     8,\n\t\t\"TYPE_STRING\":   9,\n\t\t\"TYPE_GROUP\":    10,\n\t\t\"TYPE_MESSAGE\":  11,\n\t\t\"TYPE_BYTES\":    12,\n\t\t\"TYPE_UINT32\":   13,\n\t\t\"TYPE_ENUM\":     14,\n\t\t\"TYPE_SFIXED32\": 15,\n\t\t\"TYPE_SFIXED64\": 16,\n\t\t\"TYPE_SINT32\":   17,\n\t\t\"TYPE_SINT64\":   18,\n\t}\n)\n\nfunc (x FieldDescriptorProto_Type) Enum() *FieldDescriptorProto_Type {\n\tp := new(FieldDescriptorProto_Type)\n\t*p = x\n\treturn p\n}\n\nfunc (x FieldDescriptorProto_Type) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (FieldDescriptorProto_Type) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_google_protobuf_descriptor_proto_enumTypes[2].Descriptor()\n}\n\nfunc (FieldDescriptorProto_Type) Type() protoreflect.EnumType {\n\treturn &file_google_protobuf_descriptor_proto_enumTypes[2]\n}\n\nfunc (x FieldDescriptorProto_Type) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Do not use.\nfunc (x *FieldDescriptorProto_Type) UnmarshalJSON(b []byte) error {\n\tnum, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = FieldDescriptorProto_Type(num)\n\treturn nil\n}\n\n// Deprecated: Use FieldDescriptorProto_Type.Descriptor instead.\nfunc (FieldDescriptorProto_Type) EnumDescriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{4, 0}\n}\n\ntype FieldDescriptorProto_Label int32\n\nconst (\n\t// 0 is reserved for errors\n\tFieldDescriptorProto_LABEL_OPTIONAL FieldDescriptorProto_Label = 1\n\tFieldDescriptorProto_LABEL_REPEATED FieldDescriptorProto_Label = 3\n\t// The required label is only allowed in google.protobuf.  In proto3 and Editions\n\t// it's explicitly prohibited.  In Editions, the `field_presence` feature\n\t// can be used to get this behavior.\n\tFieldDescriptorProto_LABEL_REQUIRED FieldDescriptorProto_Label = 2\n)\n\n// Enum value maps for FieldDescriptorProto_Label.\nvar (\n\tFieldDescriptorProto_Label_name = map[int32]string{\n\t\t1: \"LABEL_OPTIONAL\",\n\t\t3: \"LABEL_REPEATED\",\n\t\t2: \"LABEL_REQUIRED\",\n\t}\n\tFieldDescriptorProto_Label_value = map[string]int32{\n\t\t\"LABEL_OPTIONAL\": 1,\n\t\t\"LABEL_REPEATED\": 3,\n\t\t\"LABEL_REQUIRED\": 2,\n\t}\n)\n\nfunc (x FieldDescriptorProto_Label) Enum() *FieldDescriptorProto_Label {\n\tp := new(FieldDescriptorProto_Label)\n\t*p = x\n\treturn p\n}\n\nfunc (x FieldDescriptorProto_Label) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (FieldDescriptorProto_Label) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_google_protobuf_descriptor_proto_enumTypes[3].Descriptor()\n}\n\nfunc (FieldDescriptorProto_Label) Type() protoreflect.EnumType {\n\treturn &file_google_protobuf_descriptor_proto_enumTypes[3]\n}\n\nfunc (x FieldDescriptorProto_Label) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Do not use.\nfunc (x *FieldDescriptorProto_Label) UnmarshalJSON(b []byte) error {\n\tnum, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = FieldDescriptorProto_Label(num)\n\treturn nil\n}\n\n// Deprecated: Use FieldDescriptorProto_Label.Descriptor instead.\nfunc (FieldDescriptorProto_Label) EnumDescriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{4, 1}\n}\n\n// Generated classes can be optimized for speed or code size.\ntype FileOptions_OptimizeMode int32\n\nconst (\n\tFileOptions_SPEED FileOptions_OptimizeMode = 1 // Generate complete code for parsing, serialization,\n\t// etc.\n\tFileOptions_CODE_SIZE    FileOptions_OptimizeMode = 2 // Use ReflectionOps to implement these methods.\n\tFileOptions_LITE_RUNTIME FileOptions_OptimizeMode = 3 // Generate code using MessageLite and the lite runtime.\n)\n\n// Enum value maps for FileOptions_OptimizeMode.\nvar (\n\tFileOptions_OptimizeMode_name = map[int32]string{\n\t\t1: \"SPEED\",\n\t\t2: \"CODE_SIZE\",\n\t\t3: \"LITE_RUNTIME\",\n\t}\n\tFileOptions_OptimizeMode_value = map[string]int32{\n\t\t\"SPEED\":        1,\n\t\t\"CODE_SIZE\":    2,\n\t\t\"LITE_RUNTIME\": 3,\n\t}\n)\n\nfunc (x FileOptions_OptimizeMode) Enum() *FileOptions_OptimizeMode {\n\tp := new(FileOptions_OptimizeMode)\n\t*p = x\n\treturn p\n}\n\nfunc (x FileOptions_OptimizeMode) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (FileOptions_OptimizeMode) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_google_protobuf_descriptor_proto_enumTypes[4].Descriptor()\n}\n\nfunc (FileOptions_OptimizeMode) Type() protoreflect.EnumType {\n\treturn &file_google_protobuf_descriptor_proto_enumTypes[4]\n}\n\nfunc (x FileOptions_OptimizeMode) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Do not use.\nfunc (x *FileOptions_OptimizeMode) UnmarshalJSON(b []byte) error {\n\tnum, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = FileOptions_OptimizeMode(num)\n\treturn nil\n}\n\n// Deprecated: Use FileOptions_OptimizeMode.Descriptor instead.\nfunc (FileOptions_OptimizeMode) EnumDescriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{10, 0}\n}\n\ntype FieldOptions_CType int32\n\nconst (\n\t// Default mode.\n\tFieldOptions_STRING FieldOptions_CType = 0\n\t// The option [ctype=CORD] may be applied to a non-repeated field of type\n\t// \"bytes\". It indicates that in C++, the data should be stored in a Cord\n\t// instead of a string.  For very large strings, this may reduce memory\n\t// fragmentation. It may also allow better performance when parsing from a\n\t// Cord, or when parsing with aliasing enabled, as the parsed Cord may then\n\t// alias the original buffer.\n\tFieldOptions_CORD         FieldOptions_CType = 1\n\tFieldOptions_STRING_PIECE FieldOptions_CType = 2\n)\n\n// Enum value maps for FieldOptions_CType.\nvar (\n\tFieldOptions_CType_name = map[int32]string{\n\t\t0: \"STRING\",\n\t\t1: \"CORD\",\n\t\t2: \"STRING_PIECE\",\n\t}\n\tFieldOptions_CType_value = map[string]int32{\n\t\t\"STRING\":       0,\n\t\t\"CORD\":         1,\n\t\t\"STRING_PIECE\": 2,\n\t}\n)\n\nfunc (x FieldOptions_CType) Enum() *FieldOptions_CType {\n\tp := new(FieldOptions_CType)\n\t*p = x\n\treturn p\n}\n\nfunc (x FieldOptions_CType) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (FieldOptions_CType) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_google_protobuf_descriptor_proto_enumTypes[5].Descriptor()\n}\n\nfunc (FieldOptions_CType) Type() protoreflect.EnumType {\n\treturn &file_google_protobuf_descriptor_proto_enumTypes[5]\n}\n\nfunc (x FieldOptions_CType) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Do not use.\nfunc (x *FieldOptions_CType) UnmarshalJSON(b []byte) error {\n\tnum, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = FieldOptions_CType(num)\n\treturn nil\n}\n\n// Deprecated: Use FieldOptions_CType.Descriptor instead.\nfunc (FieldOptions_CType) EnumDescriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{12, 0}\n}\n\ntype FieldOptions_JSType int32\n\nconst (\n\t// Use the default type.\n\tFieldOptions_JS_NORMAL FieldOptions_JSType = 0\n\t// Use JavaScript strings.\n\tFieldOptions_JS_STRING FieldOptions_JSType = 1\n\t// Use JavaScript numbers.\n\tFieldOptions_JS_NUMBER FieldOptions_JSType = 2\n)\n\n// Enum value maps for FieldOptions_JSType.\nvar (\n\tFieldOptions_JSType_name = map[int32]string{\n\t\t0: \"JS_NORMAL\",\n\t\t1: \"JS_STRING\",\n\t\t2: \"JS_NUMBER\",\n\t}\n\tFieldOptions_JSType_value = map[string]int32{\n\t\t\"JS_NORMAL\": 0,\n\t\t\"JS_STRING\": 1,\n\t\t\"JS_NUMBER\": 2,\n\t}\n)\n\nfunc (x FieldOptions_JSType) Enum() *FieldOptions_JSType {\n\tp := new(FieldOptions_JSType)\n\t*p = x\n\treturn p\n}\n\nfunc (x FieldOptions_JSType) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (FieldOptions_JSType) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_google_protobuf_descriptor_proto_enumTypes[6].Descriptor()\n}\n\nfunc (FieldOptions_JSType) Type() protoreflect.EnumType {\n\treturn &file_google_protobuf_descriptor_proto_enumTypes[6]\n}\n\nfunc (x FieldOptions_JSType) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Do not use.\nfunc (x *FieldOptions_JSType) UnmarshalJSON(b []byte) error {\n\tnum, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = FieldOptions_JSType(num)\n\treturn nil\n}\n\n// Deprecated: Use FieldOptions_JSType.Descriptor instead.\nfunc (FieldOptions_JSType) EnumDescriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{12, 1}\n}\n\n// If set to RETENTION_SOURCE, the option will be omitted from the binary.\n// Note: as of January 2023, support for this is in progress and does not yet\n// have an effect (b/264593489).\ntype FieldOptions_OptionRetention int32\n\nconst (\n\tFieldOptions_RETENTION_UNKNOWN FieldOptions_OptionRetention = 0\n\tFieldOptions_RETENTION_RUNTIME FieldOptions_OptionRetention = 1\n\tFieldOptions_RETENTION_SOURCE  FieldOptions_OptionRetention = 2\n)\n\n// Enum value maps for FieldOptions_OptionRetention.\nvar (\n\tFieldOptions_OptionRetention_name = map[int32]string{\n\t\t0: \"RETENTION_UNKNOWN\",\n\t\t1: \"RETENTION_RUNTIME\",\n\t\t2: \"RETENTION_SOURCE\",\n\t}\n\tFieldOptions_OptionRetention_value = map[string]int32{\n\t\t\"RETENTION_UNKNOWN\": 0,\n\t\t\"RETENTION_RUNTIME\": 1,\n\t\t\"RETENTION_SOURCE\":  2,\n\t}\n)\n\nfunc (x FieldOptions_OptionRetention) Enum() *FieldOptions_OptionRetention {\n\tp := new(FieldOptions_OptionRetention)\n\t*p = x\n\treturn p\n}\n\nfunc (x FieldOptions_OptionRetention) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (FieldOptions_OptionRetention) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_google_protobuf_descriptor_proto_enumTypes[7].Descriptor()\n}\n\nfunc (FieldOptions_OptionRetention) Type() protoreflect.EnumType {\n\treturn &file_google_protobuf_descriptor_proto_enumTypes[7]\n}\n\nfunc (x FieldOptions_OptionRetention) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Do not use.\nfunc (x *FieldOptions_OptionRetention) UnmarshalJSON(b []byte) error {\n\tnum, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = FieldOptions_OptionRetention(num)\n\treturn nil\n}\n\n// Deprecated: Use FieldOptions_OptionRetention.Descriptor instead.\nfunc (FieldOptions_OptionRetention) EnumDescriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{12, 2}\n}\n\n// This indicates the types of entities that the field may apply to when used\n// as an option. If it is unset, then the field may be freely used as an\n// option on any kind of entity. Note: as of January 2023, support for this is\n// in progress and does not yet have an effect (b/264593489).\ntype FieldOptions_OptionTargetType int32\n\nconst (\n\tFieldOptions_TARGET_TYPE_UNKNOWN         FieldOptions_OptionTargetType = 0\n\tFieldOptions_TARGET_TYPE_FILE            FieldOptions_OptionTargetType = 1\n\tFieldOptions_TARGET_TYPE_EXTENSION_RANGE FieldOptions_OptionTargetType = 2\n\tFieldOptions_TARGET_TYPE_MESSAGE         FieldOptions_OptionTargetType = 3\n\tFieldOptions_TARGET_TYPE_FIELD           FieldOptions_OptionTargetType = 4\n\tFieldOptions_TARGET_TYPE_ONEOF           FieldOptions_OptionTargetType = 5\n\tFieldOptions_TARGET_TYPE_ENUM            FieldOptions_OptionTargetType = 6\n\tFieldOptions_TARGET_TYPE_ENUM_ENTRY      FieldOptions_OptionTargetType = 7\n\tFieldOptions_TARGET_TYPE_SERVICE         FieldOptions_OptionTargetType = 8\n\tFieldOptions_TARGET_TYPE_METHOD          FieldOptions_OptionTargetType = 9\n)\n\n// Enum value maps for FieldOptions_OptionTargetType.\nvar (\n\tFieldOptions_OptionTargetType_name = map[int32]string{\n\t\t0: \"TARGET_TYPE_UNKNOWN\",\n\t\t1: \"TARGET_TYPE_FILE\",\n\t\t2: \"TARGET_TYPE_EXTENSION_RANGE\",\n\t\t3: \"TARGET_TYPE_MESSAGE\",\n\t\t4: \"TARGET_TYPE_FIELD\",\n\t\t5: \"TARGET_TYPE_ONEOF\",\n\t\t6: \"TARGET_TYPE_ENUM\",\n\t\t7: \"TARGET_TYPE_ENUM_ENTRY\",\n\t\t8: \"TARGET_TYPE_SERVICE\",\n\t\t9: \"TARGET_TYPE_METHOD\",\n\t}\n\tFieldOptions_OptionTargetType_value = map[string]int32{\n\t\t\"TARGET_TYPE_UNKNOWN\":         0,\n\t\t\"TARGET_TYPE_FILE\":            1,\n\t\t\"TARGET_TYPE_EXTENSION_RANGE\": 2,\n\t\t\"TARGET_TYPE_MESSAGE\":         3,\n\t\t\"TARGET_TYPE_FIELD\":           4,\n\t\t\"TARGET_TYPE_ONEOF\":           5,\n\t\t\"TARGET_TYPE_ENUM\":            6,\n\t\t\"TARGET_TYPE_ENUM_ENTRY\":      7,\n\t\t\"TARGET_TYPE_SERVICE\":         8,\n\t\t\"TARGET_TYPE_METHOD\":          9,\n\t}\n)\n\nfunc (x FieldOptions_OptionTargetType) Enum() *FieldOptions_OptionTargetType {\n\tp := new(FieldOptions_OptionTargetType)\n\t*p = x\n\treturn p\n}\n\nfunc (x FieldOptions_OptionTargetType) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (FieldOptions_OptionTargetType) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_google_protobuf_descriptor_proto_enumTypes[8].Descriptor()\n}\n\nfunc (FieldOptions_OptionTargetType) Type() protoreflect.EnumType {\n\treturn &file_google_protobuf_descriptor_proto_enumTypes[8]\n}\n\nfunc (x FieldOptions_OptionTargetType) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Do not use.\nfunc (x *FieldOptions_OptionTargetType) UnmarshalJSON(b []byte) error {\n\tnum, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = FieldOptions_OptionTargetType(num)\n\treturn nil\n}\n\n// Deprecated: Use FieldOptions_OptionTargetType.Descriptor instead.\nfunc (FieldOptions_OptionTargetType) EnumDescriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{12, 3}\n}\n\n// Is this method side-effect-free (or safe in HTTP parlance), or idempotent,\n// or neither? HTTP based RPC implementation may choose GET verb for safe\n// methods, and PUT verb for idempotent methods instead of the default POST.\ntype MethodOptions_IdempotencyLevel int32\n\nconst (\n\tMethodOptions_IDEMPOTENCY_UNKNOWN MethodOptions_IdempotencyLevel = 0\n\tMethodOptions_NO_SIDE_EFFECTS     MethodOptions_IdempotencyLevel = 1 // implies idempotent\n\tMethodOptions_IDEMPOTENT          MethodOptions_IdempotencyLevel = 2 // idempotent, but may have side effects\n)\n\n// Enum value maps for MethodOptions_IdempotencyLevel.\nvar (\n\tMethodOptions_IdempotencyLevel_name = map[int32]string{\n\t\t0: \"IDEMPOTENCY_UNKNOWN\",\n\t\t1: \"NO_SIDE_EFFECTS\",\n\t\t2: \"IDEMPOTENT\",\n\t}\n\tMethodOptions_IdempotencyLevel_value = map[string]int32{\n\t\t\"IDEMPOTENCY_UNKNOWN\": 0,\n\t\t\"NO_SIDE_EFFECTS\":     1,\n\t\t\"IDEMPOTENT\":          2,\n\t}\n)\n\nfunc (x MethodOptions_IdempotencyLevel) Enum() *MethodOptions_IdempotencyLevel {\n\tp := new(MethodOptions_IdempotencyLevel)\n\t*p = x\n\treturn p\n}\n\nfunc (x MethodOptions_IdempotencyLevel) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (MethodOptions_IdempotencyLevel) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_google_protobuf_descriptor_proto_enumTypes[9].Descriptor()\n}\n\nfunc (MethodOptions_IdempotencyLevel) Type() protoreflect.EnumType {\n\treturn &file_google_protobuf_descriptor_proto_enumTypes[9]\n}\n\nfunc (x MethodOptions_IdempotencyLevel) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Do not use.\nfunc (x *MethodOptions_IdempotencyLevel) UnmarshalJSON(b []byte) error {\n\tnum, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = MethodOptions_IdempotencyLevel(num)\n\treturn nil\n}\n\n// Deprecated: Use MethodOptions_IdempotencyLevel.Descriptor instead.\nfunc (MethodOptions_IdempotencyLevel) EnumDescriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{17, 0}\n}\n\ntype FeatureSet_FieldPresence int32\n\nconst (\n\tFeatureSet_FIELD_PRESENCE_UNKNOWN FeatureSet_FieldPresence = 0\n\tFeatureSet_EXPLICIT               FeatureSet_FieldPresence = 1\n\tFeatureSet_IMPLICIT               FeatureSet_FieldPresence = 2\n\tFeatureSet_LEGACY_REQUIRED        FeatureSet_FieldPresence = 3\n)\n\n// Enum value maps for FeatureSet_FieldPresence.\nvar (\n\tFeatureSet_FieldPresence_name = map[int32]string{\n\t\t0: \"FIELD_PRESENCE_UNKNOWN\",\n\t\t1: \"EXPLICIT\",\n\t\t2: \"IMPLICIT\",\n\t\t3: \"LEGACY_REQUIRED\",\n\t}\n\tFeatureSet_FieldPresence_value = map[string]int32{\n\t\t\"FIELD_PRESENCE_UNKNOWN\": 0,\n\t\t\"EXPLICIT\":               1,\n\t\t\"IMPLICIT\":               2,\n\t\t\"LEGACY_REQUIRED\":        3,\n\t}\n)\n\nfunc (x FeatureSet_FieldPresence) Enum() *FeatureSet_FieldPresence {\n\tp := new(FeatureSet_FieldPresence)\n\t*p = x\n\treturn p\n}\n\nfunc (x FeatureSet_FieldPresence) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (FeatureSet_FieldPresence) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_google_protobuf_descriptor_proto_enumTypes[10].Descriptor()\n}\n\nfunc (FeatureSet_FieldPresence) Type() protoreflect.EnumType {\n\treturn &file_google_protobuf_descriptor_proto_enumTypes[10]\n}\n\nfunc (x FeatureSet_FieldPresence) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Do not use.\nfunc (x *FeatureSet_FieldPresence) UnmarshalJSON(b []byte) error {\n\tnum, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = FeatureSet_FieldPresence(num)\n\treturn nil\n}\n\n// Deprecated: Use FeatureSet_FieldPresence.Descriptor instead.\nfunc (FeatureSet_FieldPresence) EnumDescriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 0}\n}\n\ntype FeatureSet_EnumType int32\n\nconst (\n\tFeatureSet_ENUM_TYPE_UNKNOWN FeatureSet_EnumType = 0\n\tFeatureSet_OPEN              FeatureSet_EnumType = 1\n\tFeatureSet_CLOSED            FeatureSet_EnumType = 2\n)\n\n// Enum value maps for FeatureSet_EnumType.\nvar (\n\tFeatureSet_EnumType_name = map[int32]string{\n\t\t0: \"ENUM_TYPE_UNKNOWN\",\n\t\t1: \"OPEN\",\n\t\t2: \"CLOSED\",\n\t}\n\tFeatureSet_EnumType_value = map[string]int32{\n\t\t\"ENUM_TYPE_UNKNOWN\": 0,\n\t\t\"OPEN\":              1,\n\t\t\"CLOSED\":            2,\n\t}\n)\n\nfunc (x FeatureSet_EnumType) Enum() *FeatureSet_EnumType {\n\tp := new(FeatureSet_EnumType)\n\t*p = x\n\treturn p\n}\n\nfunc (x FeatureSet_EnumType) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (FeatureSet_EnumType) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_google_protobuf_descriptor_proto_enumTypes[11].Descriptor()\n}\n\nfunc (FeatureSet_EnumType) Type() protoreflect.EnumType {\n\treturn &file_google_protobuf_descriptor_proto_enumTypes[11]\n}\n\nfunc (x FeatureSet_EnumType) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Do not use.\nfunc (x *FeatureSet_EnumType) UnmarshalJSON(b []byte) error {\n\tnum, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = FeatureSet_EnumType(num)\n\treturn nil\n}\n\n// Deprecated: Use FeatureSet_EnumType.Descriptor instead.\nfunc (FeatureSet_EnumType) EnumDescriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 1}\n}\n\ntype FeatureSet_RepeatedFieldEncoding int32\n\nconst (\n\tFeatureSet_REPEATED_FIELD_ENCODING_UNKNOWN FeatureSet_RepeatedFieldEncoding = 0\n\tFeatureSet_PACKED                          FeatureSet_RepeatedFieldEncoding = 1\n\tFeatureSet_EXPANDED                        FeatureSet_RepeatedFieldEncoding = 2\n)\n\n// Enum value maps for FeatureSet_RepeatedFieldEncoding.\nvar (\n\tFeatureSet_RepeatedFieldEncoding_name = map[int32]string{\n\t\t0: \"REPEATED_FIELD_ENCODING_UNKNOWN\",\n\t\t1: \"PACKED\",\n\t\t2: \"EXPANDED\",\n\t}\n\tFeatureSet_RepeatedFieldEncoding_value = map[string]int32{\n\t\t\"REPEATED_FIELD_ENCODING_UNKNOWN\": 0,\n\t\t\"PACKED\":                          1,\n\t\t\"EXPANDED\":                        2,\n\t}\n)\n\nfunc (x FeatureSet_RepeatedFieldEncoding) Enum() *FeatureSet_RepeatedFieldEncoding {\n\tp := new(FeatureSet_RepeatedFieldEncoding)\n\t*p = x\n\treturn p\n}\n\nfunc (x FeatureSet_RepeatedFieldEncoding) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (FeatureSet_RepeatedFieldEncoding) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_google_protobuf_descriptor_proto_enumTypes[12].Descriptor()\n}\n\nfunc (FeatureSet_RepeatedFieldEncoding) Type() protoreflect.EnumType {\n\treturn &file_google_protobuf_descriptor_proto_enumTypes[12]\n}\n\nfunc (x FeatureSet_RepeatedFieldEncoding) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Do not use.\nfunc (x *FeatureSet_RepeatedFieldEncoding) UnmarshalJSON(b []byte) error {\n\tnum, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = FeatureSet_RepeatedFieldEncoding(num)\n\treturn nil\n}\n\n// Deprecated: Use FeatureSet_RepeatedFieldEncoding.Descriptor instead.\nfunc (FeatureSet_RepeatedFieldEncoding) EnumDescriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 2}\n}\n\ntype FeatureSet_Utf8Validation int32\n\nconst (\n\tFeatureSet_UTF8_VALIDATION_UNKNOWN FeatureSet_Utf8Validation = 0\n\tFeatureSet_VERIFY                  FeatureSet_Utf8Validation = 2\n\tFeatureSet_NONE                    FeatureSet_Utf8Validation = 3\n)\n\n// Enum value maps for FeatureSet_Utf8Validation.\nvar (\n\tFeatureSet_Utf8Validation_name = map[int32]string{\n\t\t0: \"UTF8_VALIDATION_UNKNOWN\",\n\t\t2: \"VERIFY\",\n\t\t3: \"NONE\",\n\t}\n\tFeatureSet_Utf8Validation_value = map[string]int32{\n\t\t\"UTF8_VALIDATION_UNKNOWN\": 0,\n\t\t\"VERIFY\":                  2,\n\t\t\"NONE\":                    3,\n\t}\n)\n\nfunc (x FeatureSet_Utf8Validation) Enum() *FeatureSet_Utf8Validation {\n\tp := new(FeatureSet_Utf8Validation)\n\t*p = x\n\treturn p\n}\n\nfunc (x FeatureSet_Utf8Validation) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (FeatureSet_Utf8Validation) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_google_protobuf_descriptor_proto_enumTypes[13].Descriptor()\n}\n\nfunc (FeatureSet_Utf8Validation) Type() protoreflect.EnumType {\n\treturn &file_google_protobuf_descriptor_proto_enumTypes[13]\n}\n\nfunc (x FeatureSet_Utf8Validation) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Do not use.\nfunc (x *FeatureSet_Utf8Validation) UnmarshalJSON(b []byte) error {\n\tnum, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = FeatureSet_Utf8Validation(num)\n\treturn nil\n}\n\n// Deprecated: Use FeatureSet_Utf8Validation.Descriptor instead.\nfunc (FeatureSet_Utf8Validation) EnumDescriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 3}\n}\n\ntype FeatureSet_MessageEncoding int32\n\nconst (\n\tFeatureSet_MESSAGE_ENCODING_UNKNOWN FeatureSet_MessageEncoding = 0\n\tFeatureSet_LENGTH_PREFIXED          FeatureSet_MessageEncoding = 1\n\tFeatureSet_DELIMITED                FeatureSet_MessageEncoding = 2\n)\n\n// Enum value maps for FeatureSet_MessageEncoding.\nvar (\n\tFeatureSet_MessageEncoding_name = map[int32]string{\n\t\t0: \"MESSAGE_ENCODING_UNKNOWN\",\n\t\t1: \"LENGTH_PREFIXED\",\n\t\t2: \"DELIMITED\",\n\t}\n\tFeatureSet_MessageEncoding_value = map[string]int32{\n\t\t\"MESSAGE_ENCODING_UNKNOWN\": 0,\n\t\t\"LENGTH_PREFIXED\":          1,\n\t\t\"DELIMITED\":                2,\n\t}\n)\n\nfunc (x FeatureSet_MessageEncoding) Enum() *FeatureSet_MessageEncoding {\n\tp := new(FeatureSet_MessageEncoding)\n\t*p = x\n\treturn p\n}\n\nfunc (x FeatureSet_MessageEncoding) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (FeatureSet_MessageEncoding) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_google_protobuf_descriptor_proto_enumTypes[14].Descriptor()\n}\n\nfunc (FeatureSet_MessageEncoding) Type() protoreflect.EnumType {\n\treturn &file_google_protobuf_descriptor_proto_enumTypes[14]\n}\n\nfunc (x FeatureSet_MessageEncoding) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Do not use.\nfunc (x *FeatureSet_MessageEncoding) UnmarshalJSON(b []byte) error {\n\tnum, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = FeatureSet_MessageEncoding(num)\n\treturn nil\n}\n\n// Deprecated: Use FeatureSet_MessageEncoding.Descriptor instead.\nfunc (FeatureSet_MessageEncoding) EnumDescriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 4}\n}\n\ntype FeatureSet_JsonFormat int32\n\nconst (\n\tFeatureSet_JSON_FORMAT_UNKNOWN FeatureSet_JsonFormat = 0\n\tFeatureSet_ALLOW               FeatureSet_JsonFormat = 1\n\tFeatureSet_LEGACY_BEST_EFFORT  FeatureSet_JsonFormat = 2\n)\n\n// Enum value maps for FeatureSet_JsonFormat.\nvar (\n\tFeatureSet_JsonFormat_name = map[int32]string{\n\t\t0: \"JSON_FORMAT_UNKNOWN\",\n\t\t1: \"ALLOW\",\n\t\t2: \"LEGACY_BEST_EFFORT\",\n\t}\n\tFeatureSet_JsonFormat_value = map[string]int32{\n\t\t\"JSON_FORMAT_UNKNOWN\": 0,\n\t\t\"ALLOW\":               1,\n\t\t\"LEGACY_BEST_EFFORT\":  2,\n\t}\n)\n\nfunc (x FeatureSet_JsonFormat) Enum() *FeatureSet_JsonFormat {\n\tp := new(FeatureSet_JsonFormat)\n\t*p = x\n\treturn p\n}\n\nfunc (x FeatureSet_JsonFormat) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (FeatureSet_JsonFormat) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_google_protobuf_descriptor_proto_enumTypes[15].Descriptor()\n}\n\nfunc (FeatureSet_JsonFormat) Type() protoreflect.EnumType {\n\treturn &file_google_protobuf_descriptor_proto_enumTypes[15]\n}\n\nfunc (x FeatureSet_JsonFormat) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Do not use.\nfunc (x *FeatureSet_JsonFormat) UnmarshalJSON(b []byte) error {\n\tnum, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = FeatureSet_JsonFormat(num)\n\treturn nil\n}\n\n// Deprecated: Use FeatureSet_JsonFormat.Descriptor instead.\nfunc (FeatureSet_JsonFormat) EnumDescriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 5}\n}\n\n// Represents the identified object's effect on the element in the original\n// .proto file.\ntype GeneratedCodeInfo_Annotation_Semantic int32\n\nconst (\n\t// There is no effect or the effect is indescribable.\n\tGeneratedCodeInfo_Annotation_NONE GeneratedCodeInfo_Annotation_Semantic = 0\n\t// The element is set or otherwise mutated.\n\tGeneratedCodeInfo_Annotation_SET GeneratedCodeInfo_Annotation_Semantic = 1\n\t// An alias to the element is returned.\n\tGeneratedCodeInfo_Annotation_ALIAS GeneratedCodeInfo_Annotation_Semantic = 2\n)\n\n// Enum value maps for GeneratedCodeInfo_Annotation_Semantic.\nvar (\n\tGeneratedCodeInfo_Annotation_Semantic_name = map[int32]string{\n\t\t0: \"NONE\",\n\t\t1: \"SET\",\n\t\t2: \"ALIAS\",\n\t}\n\tGeneratedCodeInfo_Annotation_Semantic_value = map[string]int32{\n\t\t\"NONE\":  0,\n\t\t\"SET\":   1,\n\t\t\"ALIAS\": 2,\n\t}\n)\n\nfunc (x GeneratedCodeInfo_Annotation_Semantic) Enum() *GeneratedCodeInfo_Annotation_Semantic {\n\tp := new(GeneratedCodeInfo_Annotation_Semantic)\n\t*p = x\n\treturn p\n}\n\nfunc (x GeneratedCodeInfo_Annotation_Semantic) String() string {\n\treturn protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))\n}\n\nfunc (GeneratedCodeInfo_Annotation_Semantic) Descriptor() protoreflect.EnumDescriptor {\n\treturn file_google_protobuf_descriptor_proto_enumTypes[16].Descriptor()\n}\n\nfunc (GeneratedCodeInfo_Annotation_Semantic) Type() protoreflect.EnumType {\n\treturn &file_google_protobuf_descriptor_proto_enumTypes[16]\n}\n\nfunc (x GeneratedCodeInfo_Annotation_Semantic) Number() protoreflect.EnumNumber {\n\treturn protoreflect.EnumNumber(x)\n}\n\n// Deprecated: Do not use.\nfunc (x *GeneratedCodeInfo_Annotation_Semantic) UnmarshalJSON(b []byte) error {\n\tnum, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*x = GeneratedCodeInfo_Annotation_Semantic(num)\n\treturn nil\n}\n\n// Deprecated: Use GeneratedCodeInfo_Annotation_Semantic.Descriptor instead.\nfunc (GeneratedCodeInfo_Annotation_Semantic) EnumDescriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{22, 0, 0}\n}\n\n// The protocol compiler can output a FileDescriptorSet containing the .proto\n// files it parses.\ntype FileDescriptorSet struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tFile []*FileDescriptorProto `protobuf:\"bytes,1,rep,name=file\" json:\"file,omitempty\"`\n}\n\nfunc (x *FileDescriptorSet) Reset() {\n\t*x = FileDescriptorSet{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[0]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *FileDescriptorSet) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*FileDescriptorSet) ProtoMessage() {}\n\nfunc (x *FileDescriptorSet) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[0]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use FileDescriptorSet.ProtoReflect.Descriptor instead.\nfunc (*FileDescriptorSet) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{0}\n}\n\nfunc (x *FileDescriptorSet) GetFile() []*FileDescriptorProto {\n\tif x != nil {\n\t\treturn x.File\n\t}\n\treturn nil\n}\n\n// Describes a complete .proto file.\ntype FileDescriptorProto struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tName    *string `protobuf:\"bytes,1,opt,name=name\" json:\"name,omitempty\"`       // file name, relative to root of source tree\n\tPackage *string `protobuf:\"bytes,2,opt,name=package\" json:\"package,omitempty\"` // e.g. \"foo\", \"foo.bar\", etc.\n\t// Names of files imported by this file.\n\tDependency []string `protobuf:\"bytes,3,rep,name=dependency\" json:\"dependency,omitempty\"`\n\t// Indexes of the public imported files in the dependency list above.\n\tPublicDependency []int32 `protobuf:\"varint,10,rep,name=public_dependency,json=publicDependency\" json:\"public_dependency,omitempty\"`\n\t// Indexes of the weak imported files in the dependency list.\n\t// For Google-internal migration only. Do not use.\n\tWeakDependency []int32 `protobuf:\"varint,11,rep,name=weak_dependency,json=weakDependency\" json:\"weak_dependency,omitempty\"`\n\t// All top-level definitions in this file.\n\tMessageType []*DescriptorProto        `protobuf:\"bytes,4,rep,name=message_type,json=messageType\" json:\"message_type,omitempty\"`\n\tEnumType    []*EnumDescriptorProto    `protobuf:\"bytes,5,rep,name=enum_type,json=enumType\" json:\"enum_type,omitempty\"`\n\tService     []*ServiceDescriptorProto `protobuf:\"bytes,6,rep,name=service\" json:\"service,omitempty\"`\n\tExtension   []*FieldDescriptorProto   `protobuf:\"bytes,7,rep,name=extension\" json:\"extension,omitempty\"`\n\tOptions     *FileOptions              `protobuf:\"bytes,8,opt,name=options\" json:\"options,omitempty\"`\n\t// This field contains optional information about the original source code.\n\t// You may safely remove this entire field without harming runtime\n\t// functionality of the descriptors -- the information is needed only by\n\t// development tools.\n\tSourceCodeInfo *SourceCodeInfo `protobuf:\"bytes,9,opt,name=source_code_info,json=sourceCodeInfo\" json:\"source_code_info,omitempty\"`\n\t// The syntax of the proto file.\n\t// The supported values are \"proto2\", \"proto3\", and \"editions\".\n\t//\n\t// If `edition` is present, this value must be \"editions\".\n\tSyntax *string `protobuf:\"bytes,12,opt,name=syntax\" json:\"syntax,omitempty\"`\n\t// The edition of the proto file.\n\tEdition *Edition `protobuf:\"varint,14,opt,name=edition,enum=google.protobuf.Edition\" json:\"edition,omitempty\"`\n}\n\nfunc (x *FileDescriptorProto) Reset() {\n\t*x = FileDescriptorProto{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[1]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *FileDescriptorProto) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*FileDescriptorProto) ProtoMessage() {}\n\nfunc (x *FileDescriptorProto) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[1]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use FileDescriptorProto.ProtoReflect.Descriptor instead.\nfunc (*FileDescriptorProto) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{1}\n}\n\nfunc (x *FileDescriptorProto) GetName() string {\n\tif x != nil && x.Name != nil {\n\t\treturn *x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *FileDescriptorProto) GetPackage() string {\n\tif x != nil && x.Package != nil {\n\t\treturn *x.Package\n\t}\n\treturn \"\"\n}\n\nfunc (x *FileDescriptorProto) GetDependency() []string {\n\tif x != nil {\n\t\treturn x.Dependency\n\t}\n\treturn nil\n}\n\nfunc (x *FileDescriptorProto) GetPublicDependency() []int32 {\n\tif x != nil {\n\t\treturn x.PublicDependency\n\t}\n\treturn nil\n}\n\nfunc (x *FileDescriptorProto) GetWeakDependency() []int32 {\n\tif x != nil {\n\t\treturn x.WeakDependency\n\t}\n\treturn nil\n}\n\nfunc (x *FileDescriptorProto) GetMessageType() []*DescriptorProto {\n\tif x != nil {\n\t\treturn x.MessageType\n\t}\n\treturn nil\n}\n\nfunc (x *FileDescriptorProto) GetEnumType() []*EnumDescriptorProto {\n\tif x != nil {\n\t\treturn x.EnumType\n\t}\n\treturn nil\n}\n\nfunc (x *FileDescriptorProto) GetService() []*ServiceDescriptorProto {\n\tif x != nil {\n\t\treturn x.Service\n\t}\n\treturn nil\n}\n\nfunc (x *FileDescriptorProto) GetExtension() []*FieldDescriptorProto {\n\tif x != nil {\n\t\treturn x.Extension\n\t}\n\treturn nil\n}\n\nfunc (x *FileDescriptorProto) GetOptions() *FileOptions {\n\tif x != nil {\n\t\treturn x.Options\n\t}\n\treturn nil\n}\n\nfunc (x *FileDescriptorProto) GetSourceCodeInfo() *SourceCodeInfo {\n\tif x != nil {\n\t\treturn x.SourceCodeInfo\n\t}\n\treturn nil\n}\n\nfunc (x *FileDescriptorProto) GetSyntax() string {\n\tif x != nil && x.Syntax != nil {\n\t\treturn *x.Syntax\n\t}\n\treturn \"\"\n}\n\nfunc (x *FileDescriptorProto) GetEdition() Edition {\n\tif x != nil && x.Edition != nil {\n\t\treturn *x.Edition\n\t}\n\treturn Edition_EDITION_UNKNOWN\n}\n\n// Describes a message type.\ntype DescriptorProto struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tName           *string                           `protobuf:\"bytes,1,opt,name=name\" json:\"name,omitempty\"`\n\tField          []*FieldDescriptorProto           `protobuf:\"bytes,2,rep,name=field\" json:\"field,omitempty\"`\n\tExtension      []*FieldDescriptorProto           `protobuf:\"bytes,6,rep,name=extension\" json:\"extension,omitempty\"`\n\tNestedType     []*DescriptorProto                `protobuf:\"bytes,3,rep,name=nested_type,json=nestedType\" json:\"nested_type,omitempty\"`\n\tEnumType       []*EnumDescriptorProto            `protobuf:\"bytes,4,rep,name=enum_type,json=enumType\" json:\"enum_type,omitempty\"`\n\tExtensionRange []*DescriptorProto_ExtensionRange `protobuf:\"bytes,5,rep,name=extension_range,json=extensionRange\" json:\"extension_range,omitempty\"`\n\tOneofDecl      []*OneofDescriptorProto           `protobuf:\"bytes,8,rep,name=oneof_decl,json=oneofDecl\" json:\"oneof_decl,omitempty\"`\n\tOptions        *MessageOptions                   `protobuf:\"bytes,7,opt,name=options\" json:\"options,omitempty\"`\n\tReservedRange  []*DescriptorProto_ReservedRange  `protobuf:\"bytes,9,rep,name=reserved_range,json=reservedRange\" json:\"reserved_range,omitempty\"`\n\t// Reserved field names, which may not be used by fields in the same message.\n\t// A given name may only be reserved once.\n\tReservedName []string `protobuf:\"bytes,10,rep,name=reserved_name,json=reservedName\" json:\"reserved_name,omitempty\"`\n}\n\nfunc (x *DescriptorProto) Reset() {\n\t*x = DescriptorProto{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[2]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *DescriptorProto) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*DescriptorProto) ProtoMessage() {}\n\nfunc (x *DescriptorProto) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[2]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use DescriptorProto.ProtoReflect.Descriptor instead.\nfunc (*DescriptorProto) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{2}\n}\n\nfunc (x *DescriptorProto) GetName() string {\n\tif x != nil && x.Name != nil {\n\t\treturn *x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *DescriptorProto) GetField() []*FieldDescriptorProto {\n\tif x != nil {\n\t\treturn x.Field\n\t}\n\treturn nil\n}\n\nfunc (x *DescriptorProto) GetExtension() []*FieldDescriptorProto {\n\tif x != nil {\n\t\treturn x.Extension\n\t}\n\treturn nil\n}\n\nfunc (x *DescriptorProto) GetNestedType() []*DescriptorProto {\n\tif x != nil {\n\t\treturn x.NestedType\n\t}\n\treturn nil\n}\n\nfunc (x *DescriptorProto) GetEnumType() []*EnumDescriptorProto {\n\tif x != nil {\n\t\treturn x.EnumType\n\t}\n\treturn nil\n}\n\nfunc (x *DescriptorProto) GetExtensionRange() []*DescriptorProto_ExtensionRange {\n\tif x != nil {\n\t\treturn x.ExtensionRange\n\t}\n\treturn nil\n}\n\nfunc (x *DescriptorProto) GetOneofDecl() []*OneofDescriptorProto {\n\tif x != nil {\n\t\treturn x.OneofDecl\n\t}\n\treturn nil\n}\n\nfunc (x *DescriptorProto) GetOptions() *MessageOptions {\n\tif x != nil {\n\t\treturn x.Options\n\t}\n\treturn nil\n}\n\nfunc (x *DescriptorProto) GetReservedRange() []*DescriptorProto_ReservedRange {\n\tif x != nil {\n\t\treturn x.ReservedRange\n\t}\n\treturn nil\n}\n\nfunc (x *DescriptorProto) GetReservedName() []string {\n\tif x != nil {\n\t\treturn x.ReservedName\n\t}\n\treturn nil\n}\n\ntype ExtensionRangeOptions struct {\n\tstate           protoimpl.MessageState\n\tsizeCache       protoimpl.SizeCache\n\tunknownFields   protoimpl.UnknownFields\n\textensionFields protoimpl.ExtensionFields\n\n\t// The parser stores options it doesn't recognize here. See above.\n\tUninterpretedOption []*UninterpretedOption `protobuf:\"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption\" json:\"uninterpreted_option,omitempty\"`\n\t// For external users: DO NOT USE. We are in the process of open sourcing\n\t// extension declaration and executing internal cleanups before it can be\n\t// used externally.\n\tDeclaration []*ExtensionRangeOptions_Declaration `protobuf:\"bytes,2,rep,name=declaration\" json:\"declaration,omitempty\"`\n\t// Any features defined in the specific edition.\n\tFeatures *FeatureSet `protobuf:\"bytes,50,opt,name=features\" json:\"features,omitempty\"`\n\t// The verification state of the range.\n\t// TODO: flip the default to DECLARATION once all empty ranges\n\t// are marked as UNVERIFIED.\n\tVerification *ExtensionRangeOptions_VerificationState `protobuf:\"varint,3,opt,name=verification,enum=google.protobuf.ExtensionRangeOptions_VerificationState,def=1\" json:\"verification,omitempty\"`\n}\n\n// Default values for ExtensionRangeOptions fields.\nconst (\n\tDefault_ExtensionRangeOptions_Verification = ExtensionRangeOptions_UNVERIFIED\n)\n\nfunc (x *ExtensionRangeOptions) Reset() {\n\t*x = ExtensionRangeOptions{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[3]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *ExtensionRangeOptions) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ExtensionRangeOptions) ProtoMessage() {}\n\nfunc (x *ExtensionRangeOptions) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[3]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ExtensionRangeOptions.ProtoReflect.Descriptor instead.\nfunc (*ExtensionRangeOptions) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{3}\n}\n\nfunc (x *ExtensionRangeOptions) GetUninterpretedOption() []*UninterpretedOption {\n\tif x != nil {\n\t\treturn x.UninterpretedOption\n\t}\n\treturn nil\n}\n\nfunc (x *ExtensionRangeOptions) GetDeclaration() []*ExtensionRangeOptions_Declaration {\n\tif x != nil {\n\t\treturn x.Declaration\n\t}\n\treturn nil\n}\n\nfunc (x *ExtensionRangeOptions) GetFeatures() *FeatureSet {\n\tif x != nil {\n\t\treturn x.Features\n\t}\n\treturn nil\n}\n\nfunc (x *ExtensionRangeOptions) GetVerification() ExtensionRangeOptions_VerificationState {\n\tif x != nil && x.Verification != nil {\n\t\treturn *x.Verification\n\t}\n\treturn Default_ExtensionRangeOptions_Verification\n}\n\n// Describes a field within a message.\ntype FieldDescriptorProto struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tName   *string                     `protobuf:\"bytes,1,opt,name=name\" json:\"name,omitempty\"`\n\tNumber *int32                      `protobuf:\"varint,3,opt,name=number\" json:\"number,omitempty\"`\n\tLabel  *FieldDescriptorProto_Label `protobuf:\"varint,4,opt,name=label,enum=google.protobuf.FieldDescriptorProto_Label\" json:\"label,omitempty\"`\n\t// If type_name is set, this need not be set.  If both this and type_name\n\t// are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP.\n\tType *FieldDescriptorProto_Type `protobuf:\"varint,5,opt,name=type,enum=google.protobuf.FieldDescriptorProto_Type\" json:\"type,omitempty\"`\n\t// For message and enum types, this is the name of the type.  If the name\n\t// starts with a '.', it is fully-qualified.  Otherwise, C++-like scoping\n\t// rules are used to find the type (i.e. first the nested types within this\n\t// message are searched, then within the parent, on up to the root\n\t// namespace).\n\tTypeName *string `protobuf:\"bytes,6,opt,name=type_name,json=typeName\" json:\"type_name,omitempty\"`\n\t// For extensions, this is the name of the type being extended.  It is\n\t// resolved in the same manner as type_name.\n\tExtendee *string `protobuf:\"bytes,2,opt,name=extendee\" json:\"extendee,omitempty\"`\n\t// For numeric types, contains the original text representation of the value.\n\t// For booleans, \"true\" or \"false\".\n\t// For strings, contains the default text contents (not escaped in any way).\n\t// For bytes, contains the C escaped value.  All bytes >= 128 are escaped.\n\tDefaultValue *string `protobuf:\"bytes,7,opt,name=default_value,json=defaultValue\" json:\"default_value,omitempty\"`\n\t// If set, gives the index of a oneof in the containing type's oneof_decl\n\t// list.  This field is a member of that oneof.\n\tOneofIndex *int32 `protobuf:\"varint,9,opt,name=oneof_index,json=oneofIndex\" json:\"oneof_index,omitempty\"`\n\t// JSON name of this field. The value is set by protocol compiler. If the\n\t// user has set a \"json_name\" option on this field, that option's value\n\t// will be used. Otherwise, it's deduced from the field's name by converting\n\t// it to camelCase.\n\tJsonName *string       `protobuf:\"bytes,10,opt,name=json_name,json=jsonName\" json:\"json_name,omitempty\"`\n\tOptions  *FieldOptions `protobuf:\"bytes,8,opt,name=options\" json:\"options,omitempty\"`\n\t// If true, this is a proto3 \"optional\". When a proto3 field is optional, it\n\t// tracks presence regardless of field type.\n\t//\n\t// When proto3_optional is true, this field must belong to a oneof to signal\n\t// to old proto3 clients that presence is tracked for this field. This oneof\n\t// is known as a \"synthetic\" oneof, and this field must be its sole member\n\t// (each proto3 optional field gets its own synthetic oneof). Synthetic oneofs\n\t// exist in the descriptor only, and do not generate any API. Synthetic oneofs\n\t// must be ordered after all \"real\" oneofs.\n\t//\n\t// For message fields, proto3_optional doesn't create any semantic change,\n\t// since non-repeated message fields always track presence. However it still\n\t// indicates the semantic detail of whether the user wrote \"optional\" or not.\n\t// This can be useful for round-tripping the .proto file. For consistency we\n\t// give message fields a synthetic oneof also, even though it is not required\n\t// to track presence. This is especially important because the parser can't\n\t// tell if a field is a message or an enum, so it must always create a\n\t// synthetic oneof.\n\t//\n\t// Proto2 optional fields do not set this flag, because they already indicate\n\t// optional with `LABEL_OPTIONAL`.\n\tProto3Optional *bool `protobuf:\"varint,17,opt,name=proto3_optional,json=proto3Optional\" json:\"proto3_optional,omitempty\"`\n}\n\nfunc (x *FieldDescriptorProto) Reset() {\n\t*x = FieldDescriptorProto{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[4]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *FieldDescriptorProto) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*FieldDescriptorProto) ProtoMessage() {}\n\nfunc (x *FieldDescriptorProto) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[4]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use FieldDescriptorProto.ProtoReflect.Descriptor instead.\nfunc (*FieldDescriptorProto) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{4}\n}\n\nfunc (x *FieldDescriptorProto) GetName() string {\n\tif x != nil && x.Name != nil {\n\t\treturn *x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *FieldDescriptorProto) GetNumber() int32 {\n\tif x != nil && x.Number != nil {\n\t\treturn *x.Number\n\t}\n\treturn 0\n}\n\nfunc (x *FieldDescriptorProto) GetLabel() FieldDescriptorProto_Label {\n\tif x != nil && x.Label != nil {\n\t\treturn *x.Label\n\t}\n\treturn FieldDescriptorProto_LABEL_OPTIONAL\n}\n\nfunc (x *FieldDescriptorProto) GetType() FieldDescriptorProto_Type {\n\tif x != nil && x.Type != nil {\n\t\treturn *x.Type\n\t}\n\treturn FieldDescriptorProto_TYPE_DOUBLE\n}\n\nfunc (x *FieldDescriptorProto) GetTypeName() string {\n\tif x != nil && x.TypeName != nil {\n\t\treturn *x.TypeName\n\t}\n\treturn \"\"\n}\n\nfunc (x *FieldDescriptorProto) GetExtendee() string {\n\tif x != nil && x.Extendee != nil {\n\t\treturn *x.Extendee\n\t}\n\treturn \"\"\n}\n\nfunc (x *FieldDescriptorProto) GetDefaultValue() string {\n\tif x != nil && x.DefaultValue != nil {\n\t\treturn *x.DefaultValue\n\t}\n\treturn \"\"\n}\n\nfunc (x *FieldDescriptorProto) GetOneofIndex() int32 {\n\tif x != nil && x.OneofIndex != nil {\n\t\treturn *x.OneofIndex\n\t}\n\treturn 0\n}\n\nfunc (x *FieldDescriptorProto) GetJsonName() string {\n\tif x != nil && x.JsonName != nil {\n\t\treturn *x.JsonName\n\t}\n\treturn \"\"\n}\n\nfunc (x *FieldDescriptorProto) GetOptions() *FieldOptions {\n\tif x != nil {\n\t\treturn x.Options\n\t}\n\treturn nil\n}\n\nfunc (x *FieldDescriptorProto) GetProto3Optional() bool {\n\tif x != nil && x.Proto3Optional != nil {\n\t\treturn *x.Proto3Optional\n\t}\n\treturn false\n}\n\n// Describes a oneof.\ntype OneofDescriptorProto struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tName    *string       `protobuf:\"bytes,1,opt,name=name\" json:\"name,omitempty\"`\n\tOptions *OneofOptions `protobuf:\"bytes,2,opt,name=options\" json:\"options,omitempty\"`\n}\n\nfunc (x *OneofDescriptorProto) Reset() {\n\t*x = OneofDescriptorProto{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[5]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *OneofDescriptorProto) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*OneofDescriptorProto) ProtoMessage() {}\n\nfunc (x *OneofDescriptorProto) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[5]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use OneofDescriptorProto.ProtoReflect.Descriptor instead.\nfunc (*OneofDescriptorProto) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{5}\n}\n\nfunc (x *OneofDescriptorProto) GetName() string {\n\tif x != nil && x.Name != nil {\n\t\treturn *x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *OneofDescriptorProto) GetOptions() *OneofOptions {\n\tif x != nil {\n\t\treturn x.Options\n\t}\n\treturn nil\n}\n\n// Describes an enum type.\ntype EnumDescriptorProto struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tName    *string                     `protobuf:\"bytes,1,opt,name=name\" json:\"name,omitempty\"`\n\tValue   []*EnumValueDescriptorProto `protobuf:\"bytes,2,rep,name=value\" json:\"value,omitempty\"`\n\tOptions *EnumOptions                `protobuf:\"bytes,3,opt,name=options\" json:\"options,omitempty\"`\n\t// Range of reserved numeric values. Reserved numeric values may not be used\n\t// by enum values in the same enum declaration. Reserved ranges may not\n\t// overlap.\n\tReservedRange []*EnumDescriptorProto_EnumReservedRange `protobuf:\"bytes,4,rep,name=reserved_range,json=reservedRange\" json:\"reserved_range,omitempty\"`\n\t// Reserved enum value names, which may not be reused. A given name may only\n\t// be reserved once.\n\tReservedName []string `protobuf:\"bytes,5,rep,name=reserved_name,json=reservedName\" json:\"reserved_name,omitempty\"`\n}\n\nfunc (x *EnumDescriptorProto) Reset() {\n\t*x = EnumDescriptorProto{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[6]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *EnumDescriptorProto) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*EnumDescriptorProto) ProtoMessage() {}\n\nfunc (x *EnumDescriptorProto) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[6]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use EnumDescriptorProto.ProtoReflect.Descriptor instead.\nfunc (*EnumDescriptorProto) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{6}\n}\n\nfunc (x *EnumDescriptorProto) GetName() string {\n\tif x != nil && x.Name != nil {\n\t\treturn *x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *EnumDescriptorProto) GetValue() []*EnumValueDescriptorProto {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\nfunc (x *EnumDescriptorProto) GetOptions() *EnumOptions {\n\tif x != nil {\n\t\treturn x.Options\n\t}\n\treturn nil\n}\n\nfunc (x *EnumDescriptorProto) GetReservedRange() []*EnumDescriptorProto_EnumReservedRange {\n\tif x != nil {\n\t\treturn x.ReservedRange\n\t}\n\treturn nil\n}\n\nfunc (x *EnumDescriptorProto) GetReservedName() []string {\n\tif x != nil {\n\t\treturn x.ReservedName\n\t}\n\treturn nil\n}\n\n// Describes a value within an enum.\ntype EnumValueDescriptorProto struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tName    *string           `protobuf:\"bytes,1,opt,name=name\" json:\"name,omitempty\"`\n\tNumber  *int32            `protobuf:\"varint,2,opt,name=number\" json:\"number,omitempty\"`\n\tOptions *EnumValueOptions `protobuf:\"bytes,3,opt,name=options\" json:\"options,omitempty\"`\n}\n\nfunc (x *EnumValueDescriptorProto) Reset() {\n\t*x = EnumValueDescriptorProto{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[7]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *EnumValueDescriptorProto) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*EnumValueDescriptorProto) ProtoMessage() {}\n\nfunc (x *EnumValueDescriptorProto) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[7]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use EnumValueDescriptorProto.ProtoReflect.Descriptor instead.\nfunc (*EnumValueDescriptorProto) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{7}\n}\n\nfunc (x *EnumValueDescriptorProto) GetName() string {\n\tif x != nil && x.Name != nil {\n\t\treturn *x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *EnumValueDescriptorProto) GetNumber() int32 {\n\tif x != nil && x.Number != nil {\n\t\treturn *x.Number\n\t}\n\treturn 0\n}\n\nfunc (x *EnumValueDescriptorProto) GetOptions() *EnumValueOptions {\n\tif x != nil {\n\t\treturn x.Options\n\t}\n\treturn nil\n}\n\n// Describes a service.\ntype ServiceDescriptorProto struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tName    *string                  `protobuf:\"bytes,1,opt,name=name\" json:\"name,omitempty\"`\n\tMethod  []*MethodDescriptorProto `protobuf:\"bytes,2,rep,name=method\" json:\"method,omitempty\"`\n\tOptions *ServiceOptions          `protobuf:\"bytes,3,opt,name=options\" json:\"options,omitempty\"`\n}\n\nfunc (x *ServiceDescriptorProto) Reset() {\n\t*x = ServiceDescriptorProto{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[8]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *ServiceDescriptorProto) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ServiceDescriptorProto) ProtoMessage() {}\n\nfunc (x *ServiceDescriptorProto) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[8]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ServiceDescriptorProto.ProtoReflect.Descriptor instead.\nfunc (*ServiceDescriptorProto) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{8}\n}\n\nfunc (x *ServiceDescriptorProto) GetName() string {\n\tif x != nil && x.Name != nil {\n\t\treturn *x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *ServiceDescriptorProto) GetMethod() []*MethodDescriptorProto {\n\tif x != nil {\n\t\treturn x.Method\n\t}\n\treturn nil\n}\n\nfunc (x *ServiceDescriptorProto) GetOptions() *ServiceOptions {\n\tif x != nil {\n\t\treturn x.Options\n\t}\n\treturn nil\n}\n\n// Describes a method of a service.\ntype MethodDescriptorProto struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tName *string `protobuf:\"bytes,1,opt,name=name\" json:\"name,omitempty\"`\n\t// Input and output type names.  These are resolved in the same way as\n\t// FieldDescriptorProto.type_name, but must refer to a message type.\n\tInputType  *string        `protobuf:\"bytes,2,opt,name=input_type,json=inputType\" json:\"input_type,omitempty\"`\n\tOutputType *string        `protobuf:\"bytes,3,opt,name=output_type,json=outputType\" json:\"output_type,omitempty\"`\n\tOptions    *MethodOptions `protobuf:\"bytes,4,opt,name=options\" json:\"options,omitempty\"`\n\t// Identifies if client streams multiple client messages\n\tClientStreaming *bool `protobuf:\"varint,5,opt,name=client_streaming,json=clientStreaming,def=0\" json:\"client_streaming,omitempty\"`\n\t// Identifies if server streams multiple server messages\n\tServerStreaming *bool `protobuf:\"varint,6,opt,name=server_streaming,json=serverStreaming,def=0\" json:\"server_streaming,omitempty\"`\n}\n\n// Default values for MethodDescriptorProto fields.\nconst (\n\tDefault_MethodDescriptorProto_ClientStreaming = bool(false)\n\tDefault_MethodDescriptorProto_ServerStreaming = bool(false)\n)\n\nfunc (x *MethodDescriptorProto) Reset() {\n\t*x = MethodDescriptorProto{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[9]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *MethodDescriptorProto) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*MethodDescriptorProto) ProtoMessage() {}\n\nfunc (x *MethodDescriptorProto) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[9]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use MethodDescriptorProto.ProtoReflect.Descriptor instead.\nfunc (*MethodDescriptorProto) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{9}\n}\n\nfunc (x *MethodDescriptorProto) GetName() string {\n\tif x != nil && x.Name != nil {\n\t\treturn *x.Name\n\t}\n\treturn \"\"\n}\n\nfunc (x *MethodDescriptorProto) GetInputType() string {\n\tif x != nil && x.InputType != nil {\n\t\treturn *x.InputType\n\t}\n\treturn \"\"\n}\n\nfunc (x *MethodDescriptorProto) GetOutputType() string {\n\tif x != nil && x.OutputType != nil {\n\t\treturn *x.OutputType\n\t}\n\treturn \"\"\n}\n\nfunc (x *MethodDescriptorProto) GetOptions() *MethodOptions {\n\tif x != nil {\n\t\treturn x.Options\n\t}\n\treturn nil\n}\n\nfunc (x *MethodDescriptorProto) GetClientStreaming() bool {\n\tif x != nil && x.ClientStreaming != nil {\n\t\treturn *x.ClientStreaming\n\t}\n\treturn Default_MethodDescriptorProto_ClientStreaming\n}\n\nfunc (x *MethodDescriptorProto) GetServerStreaming() bool {\n\tif x != nil && x.ServerStreaming != nil {\n\t\treturn *x.ServerStreaming\n\t}\n\treturn Default_MethodDescriptorProto_ServerStreaming\n}\n\ntype FileOptions struct {\n\tstate           protoimpl.MessageState\n\tsizeCache       protoimpl.SizeCache\n\tunknownFields   protoimpl.UnknownFields\n\textensionFields protoimpl.ExtensionFields\n\n\t// Sets the Java package where classes generated from this .proto will be\n\t// placed.  By default, the proto package is used, but this is often\n\t// inappropriate because proto packages do not normally start with backwards\n\t// domain names.\n\tJavaPackage *string `protobuf:\"bytes,1,opt,name=java_package,json=javaPackage\" json:\"java_package,omitempty\"`\n\t// Controls the name of the wrapper Java class generated for the .proto file.\n\t// That class will always contain the .proto file's getDescriptor() method as\n\t// well as any top-level extensions defined in the .proto file.\n\t// If java_multiple_files is disabled, then all the other classes from the\n\t// .proto file will be nested inside the single wrapper outer class.\n\tJavaOuterClassname *string `protobuf:\"bytes,8,opt,name=java_outer_classname,json=javaOuterClassname\" json:\"java_outer_classname,omitempty\"`\n\t// If enabled, then the Java code generator will generate a separate .java\n\t// file for each top-level message, enum, and service defined in the .proto\n\t// file.  Thus, these types will *not* be nested inside the wrapper class\n\t// named by java_outer_classname.  However, the wrapper class will still be\n\t// generated to contain the file's getDescriptor() method as well as any\n\t// top-level extensions defined in the file.\n\tJavaMultipleFiles *bool `protobuf:\"varint,10,opt,name=java_multiple_files,json=javaMultipleFiles,def=0\" json:\"java_multiple_files,omitempty\"`\n\t// This option does nothing.\n\t//\n\t// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto.\n\tJavaGenerateEqualsAndHash *bool `protobuf:\"varint,20,opt,name=java_generate_equals_and_hash,json=javaGenerateEqualsAndHash\" json:\"java_generate_equals_and_hash,omitempty\"`\n\t// A proto2 file can set this to true to opt in to UTF-8 checking for Java,\n\t// which will throw an exception if invalid UTF-8 is parsed from the wire or\n\t// assigned to a string field.\n\t//\n\t// TODO: clarify exactly what kinds of field types this option\n\t// applies to, and update these docs accordingly.\n\t//\n\t// Proto3 files already perform these checks. Setting the option explicitly to\n\t// false has no effect: it cannot be used to opt proto3 files out of UTF-8\n\t// checks.\n\tJavaStringCheckUtf8 *bool                     `protobuf:\"varint,27,opt,name=java_string_check_utf8,json=javaStringCheckUtf8,def=0\" json:\"java_string_check_utf8,omitempty\"`\n\tOptimizeFor         *FileOptions_OptimizeMode `protobuf:\"varint,9,opt,name=optimize_for,json=optimizeFor,enum=google.protobuf.FileOptions_OptimizeMode,def=1\" json:\"optimize_for,omitempty\"`\n\t// Sets the Go package where structs generated from this .proto will be\n\t// placed. If omitted, the Go package will be derived from the following:\n\t//   - The basename of the package import path, if provided.\n\t//   - Otherwise, the package statement in the .proto file, if present.\n\t//   - Otherwise, the basename of the .proto file, without extension.\n\tGoPackage *string `protobuf:\"bytes,11,opt,name=go_package,json=goPackage\" json:\"go_package,omitempty\"`\n\t// Should generic services be generated in each language?  \"Generic\" services\n\t// are not specific to any particular RPC system.  They are generated by the\n\t// main code generators in each language (without additional plugins).\n\t// Generic services were the only kind of service generation supported by\n\t// early versions of google.protobuf.\n\t//\n\t// Generic services are now considered deprecated in favor of using plugins\n\t// that generate code specific to your particular RPC system.  Therefore,\n\t// these default to false.  Old code which depends on generic services should\n\t// explicitly set them to true.\n\tCcGenericServices   *bool `protobuf:\"varint,16,opt,name=cc_generic_services,json=ccGenericServices,def=0\" json:\"cc_generic_services,omitempty\"`\n\tJavaGenericServices *bool `protobuf:\"varint,17,opt,name=java_generic_services,json=javaGenericServices,def=0\" json:\"java_generic_services,omitempty\"`\n\tPyGenericServices   *bool `protobuf:\"varint,18,opt,name=py_generic_services,json=pyGenericServices,def=0\" json:\"py_generic_services,omitempty\"`\n\t// Is this file deprecated?\n\t// Depending on the target platform, this can emit Deprecated annotations\n\t// for everything in the file, or it will be completely ignored; in the very\n\t// least, this is a formalization for deprecating files.\n\tDeprecated *bool `protobuf:\"varint,23,opt,name=deprecated,def=0\" json:\"deprecated,omitempty\"`\n\t// Enables the use of arenas for the proto messages in this file. This applies\n\t// only to generated classes for C++.\n\tCcEnableArenas *bool `protobuf:\"varint,31,opt,name=cc_enable_arenas,json=ccEnableArenas,def=1\" json:\"cc_enable_arenas,omitempty\"`\n\t// Sets the objective c class prefix which is prepended to all objective c\n\t// generated classes from this .proto. There is no default.\n\tObjcClassPrefix *string `protobuf:\"bytes,36,opt,name=objc_class_prefix,json=objcClassPrefix\" json:\"objc_class_prefix,omitempty\"`\n\t// Namespace for generated classes; defaults to the package.\n\tCsharpNamespace *string `protobuf:\"bytes,37,opt,name=csharp_namespace,json=csharpNamespace\" json:\"csharp_namespace,omitempty\"`\n\t// By default Swift generators will take the proto package and CamelCase it\n\t// replacing '.' with underscore and use that to prefix the types/symbols\n\t// defined. When this options is provided, they will use this value instead\n\t// to prefix the types/symbols defined.\n\tSwiftPrefix *string `protobuf:\"bytes,39,opt,name=swift_prefix,json=swiftPrefix\" json:\"swift_prefix,omitempty\"`\n\t// Sets the php class prefix which is prepended to all php generated classes\n\t// from this .proto. Default is empty.\n\tPhpClassPrefix *string `protobuf:\"bytes,40,opt,name=php_class_prefix,json=phpClassPrefix\" json:\"php_class_prefix,omitempty\"`\n\t// Use this option to change the namespace of php generated classes. Default\n\t// is empty. When this option is empty, the package name will be used for\n\t// determining the namespace.\n\tPhpNamespace *string `protobuf:\"bytes,41,opt,name=php_namespace,json=phpNamespace\" json:\"php_namespace,omitempty\"`\n\t// Use this option to change the namespace of php generated metadata classes.\n\t// Default is empty. When this option is empty, the proto file name will be\n\t// used for determining the namespace.\n\tPhpMetadataNamespace *string `protobuf:\"bytes,44,opt,name=php_metadata_namespace,json=phpMetadataNamespace\" json:\"php_metadata_namespace,omitempty\"`\n\t// Use this option to change the package of ruby generated classes. Default\n\t// is empty. When this option is not set, the package name will be used for\n\t// determining the ruby package.\n\tRubyPackage *string `protobuf:\"bytes,45,opt,name=ruby_package,json=rubyPackage\" json:\"ruby_package,omitempty\"`\n\t// Any features defined in the specific edition.\n\tFeatures *FeatureSet `protobuf:\"bytes,50,opt,name=features\" json:\"features,omitempty\"`\n\t// The parser stores options it doesn't recognize here.\n\t// See the documentation for the \"Options\" section above.\n\tUninterpretedOption []*UninterpretedOption `protobuf:\"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption\" json:\"uninterpreted_option,omitempty\"`\n}\n\n// Default values for FileOptions fields.\nconst (\n\tDefault_FileOptions_JavaMultipleFiles   = bool(false)\n\tDefault_FileOptions_JavaStringCheckUtf8 = bool(false)\n\tDefault_FileOptions_OptimizeFor         = FileOptions_SPEED\n\tDefault_FileOptions_CcGenericServices   = bool(false)\n\tDefault_FileOptions_JavaGenericServices = bool(false)\n\tDefault_FileOptions_PyGenericServices   = bool(false)\n\tDefault_FileOptions_Deprecated          = bool(false)\n\tDefault_FileOptions_CcEnableArenas      = bool(true)\n)\n\nfunc (x *FileOptions) Reset() {\n\t*x = FileOptions{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[10]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *FileOptions) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*FileOptions) ProtoMessage() {}\n\nfunc (x *FileOptions) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[10]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use FileOptions.ProtoReflect.Descriptor instead.\nfunc (*FileOptions) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{10}\n}\n\nfunc (x *FileOptions) GetJavaPackage() string {\n\tif x != nil && x.JavaPackage != nil {\n\t\treturn *x.JavaPackage\n\t}\n\treturn \"\"\n}\n\nfunc (x *FileOptions) GetJavaOuterClassname() string {\n\tif x != nil && x.JavaOuterClassname != nil {\n\t\treturn *x.JavaOuterClassname\n\t}\n\treturn \"\"\n}\n\nfunc (x *FileOptions) GetJavaMultipleFiles() bool {\n\tif x != nil && x.JavaMultipleFiles != nil {\n\t\treturn *x.JavaMultipleFiles\n\t}\n\treturn Default_FileOptions_JavaMultipleFiles\n}\n\n// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto.\nfunc (x *FileOptions) GetJavaGenerateEqualsAndHash() bool {\n\tif x != nil && x.JavaGenerateEqualsAndHash != nil {\n\t\treturn *x.JavaGenerateEqualsAndHash\n\t}\n\treturn false\n}\n\nfunc (x *FileOptions) GetJavaStringCheckUtf8() bool {\n\tif x != nil && x.JavaStringCheckUtf8 != nil {\n\t\treturn *x.JavaStringCheckUtf8\n\t}\n\treturn Default_FileOptions_JavaStringCheckUtf8\n}\n\nfunc (x *FileOptions) GetOptimizeFor() FileOptions_OptimizeMode {\n\tif x != nil && x.OptimizeFor != nil {\n\t\treturn *x.OptimizeFor\n\t}\n\treturn Default_FileOptions_OptimizeFor\n}\n\nfunc (x *FileOptions) GetGoPackage() string {\n\tif x != nil && x.GoPackage != nil {\n\t\treturn *x.GoPackage\n\t}\n\treturn \"\"\n}\n\nfunc (x *FileOptions) GetCcGenericServices() bool {\n\tif x != nil && x.CcGenericServices != nil {\n\t\treturn *x.CcGenericServices\n\t}\n\treturn Default_FileOptions_CcGenericServices\n}\n\nfunc (x *FileOptions) GetJavaGenericServices() bool {\n\tif x != nil && x.JavaGenericServices != nil {\n\t\treturn *x.JavaGenericServices\n\t}\n\treturn Default_FileOptions_JavaGenericServices\n}\n\nfunc (x *FileOptions) GetPyGenericServices() bool {\n\tif x != nil && x.PyGenericServices != nil {\n\t\treturn *x.PyGenericServices\n\t}\n\treturn Default_FileOptions_PyGenericServices\n}\n\nfunc (x *FileOptions) GetDeprecated() bool {\n\tif x != nil && x.Deprecated != nil {\n\t\treturn *x.Deprecated\n\t}\n\treturn Default_FileOptions_Deprecated\n}\n\nfunc (x *FileOptions) GetCcEnableArenas() bool {\n\tif x != nil && x.CcEnableArenas != nil {\n\t\treturn *x.CcEnableArenas\n\t}\n\treturn Default_FileOptions_CcEnableArenas\n}\n\nfunc (x *FileOptions) GetObjcClassPrefix() string {\n\tif x != nil && x.ObjcClassPrefix != nil {\n\t\treturn *x.ObjcClassPrefix\n\t}\n\treturn \"\"\n}\n\nfunc (x *FileOptions) GetCsharpNamespace() string {\n\tif x != nil && x.CsharpNamespace != nil {\n\t\treturn *x.CsharpNamespace\n\t}\n\treturn \"\"\n}\n\nfunc (x *FileOptions) GetSwiftPrefix() string {\n\tif x != nil && x.SwiftPrefix != nil {\n\t\treturn *x.SwiftPrefix\n\t}\n\treturn \"\"\n}\n\nfunc (x *FileOptions) GetPhpClassPrefix() string {\n\tif x != nil && x.PhpClassPrefix != nil {\n\t\treturn *x.PhpClassPrefix\n\t}\n\treturn \"\"\n}\n\nfunc (x *FileOptions) GetPhpNamespace() string {\n\tif x != nil && x.PhpNamespace != nil {\n\t\treturn *x.PhpNamespace\n\t}\n\treturn \"\"\n}\n\nfunc (x *FileOptions) GetPhpMetadataNamespace() string {\n\tif x != nil && x.PhpMetadataNamespace != nil {\n\t\treturn *x.PhpMetadataNamespace\n\t}\n\treturn \"\"\n}\n\nfunc (x *FileOptions) GetRubyPackage() string {\n\tif x != nil && x.RubyPackage != nil {\n\t\treturn *x.RubyPackage\n\t}\n\treturn \"\"\n}\n\nfunc (x *FileOptions) GetFeatures() *FeatureSet {\n\tif x != nil {\n\t\treturn x.Features\n\t}\n\treturn nil\n}\n\nfunc (x *FileOptions) GetUninterpretedOption() []*UninterpretedOption {\n\tif x != nil {\n\t\treturn x.UninterpretedOption\n\t}\n\treturn nil\n}\n\ntype MessageOptions struct {\n\tstate           protoimpl.MessageState\n\tsizeCache       protoimpl.SizeCache\n\tunknownFields   protoimpl.UnknownFields\n\textensionFields protoimpl.ExtensionFields\n\n\t// Set true to use the old proto1 MessageSet wire format for extensions.\n\t// This is provided for backwards-compatibility with the MessageSet wire\n\t// format.  You should not use this for any other reason:  It's less\n\t// efficient, has fewer features, and is more complicated.\n\t//\n\t// The message must be defined exactly as follows:\n\t//\n\t//\tmessage Foo {\n\t//\t  option message_set_wire_format = true;\n\t//\t  extensions 4 to max;\n\t//\t}\n\t//\n\t// Note that the message cannot have any defined fields; MessageSets only\n\t// have extensions.\n\t//\n\t// All extensions of your type must be singular messages; e.g. they cannot\n\t// be int32s, enums, or repeated messages.\n\t//\n\t// Because this is an option, the above two restrictions are not enforced by\n\t// the protocol compiler.\n\tMessageSetWireFormat *bool `protobuf:\"varint,1,opt,name=message_set_wire_format,json=messageSetWireFormat,def=0\" json:\"message_set_wire_format,omitempty\"`\n\t// Disables the generation of the standard \"descriptor()\" accessor, which can\n\t// conflict with a field of the same name.  This is meant to make migration\n\t// from proto1 easier; new code should avoid fields named \"descriptor\".\n\tNoStandardDescriptorAccessor *bool `protobuf:\"varint,2,opt,name=no_standard_descriptor_accessor,json=noStandardDescriptorAccessor,def=0\" json:\"no_standard_descriptor_accessor,omitempty\"`\n\t// Is this message deprecated?\n\t// Depending on the target platform, this can emit Deprecated annotations\n\t// for the message, or it will be completely ignored; in the very least,\n\t// this is a formalization for deprecating messages.\n\tDeprecated *bool `protobuf:\"varint,3,opt,name=deprecated,def=0\" json:\"deprecated,omitempty\"`\n\t// Whether the message is an automatically generated map entry type for the\n\t// maps field.\n\t//\n\t// For maps fields:\n\t//\n\t//\tmap<KeyType, ValueType> map_field = 1;\n\t//\n\t// The parsed descriptor looks like:\n\t//\n\t//\tmessage MapFieldEntry {\n\t//\t    option map_entry = true;\n\t//\t    optional KeyType key = 1;\n\t//\t    optional ValueType value = 2;\n\t//\t}\n\t//\trepeated MapFieldEntry map_field = 1;\n\t//\n\t// Implementations may choose not to generate the map_entry=true message, but\n\t// use a native map in the target language to hold the keys and values.\n\t// The reflection APIs in such implementations still need to work as\n\t// if the field is a repeated message field.\n\t//\n\t// NOTE: Do not set the option in .proto files. Always use the maps syntax\n\t// instead. The option should only be implicitly set by the proto compiler\n\t// parser.\n\tMapEntry *bool `protobuf:\"varint,7,opt,name=map_entry,json=mapEntry\" json:\"map_entry,omitempty\"`\n\t// Enable the legacy handling of JSON field name conflicts.  This lowercases\n\t// and strips underscored from the fields before comparison in proto3 only.\n\t// The new behavior takes `json_name` into account and applies to proto2 as\n\t// well.\n\t//\n\t// This should only be used as a temporary measure against broken builds due\n\t// to the change in behavior for JSON field name conflicts.\n\t//\n\t// TODO This is legacy behavior we plan to remove once downstream\n\t// teams have had time to migrate.\n\t//\n\t// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto.\n\tDeprecatedLegacyJsonFieldConflicts *bool `protobuf:\"varint,11,opt,name=deprecated_legacy_json_field_conflicts,json=deprecatedLegacyJsonFieldConflicts\" json:\"deprecated_legacy_json_field_conflicts,omitempty\"`\n\t// Any features defined in the specific edition.\n\tFeatures *FeatureSet `protobuf:\"bytes,12,opt,name=features\" json:\"features,omitempty\"`\n\t// The parser stores options it doesn't recognize here. See above.\n\tUninterpretedOption []*UninterpretedOption `protobuf:\"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption\" json:\"uninterpreted_option,omitempty\"`\n}\n\n// Default values for MessageOptions fields.\nconst (\n\tDefault_MessageOptions_MessageSetWireFormat         = bool(false)\n\tDefault_MessageOptions_NoStandardDescriptorAccessor = bool(false)\n\tDefault_MessageOptions_Deprecated                   = bool(false)\n)\n\nfunc (x *MessageOptions) Reset() {\n\t*x = MessageOptions{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[11]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *MessageOptions) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*MessageOptions) ProtoMessage() {}\n\nfunc (x *MessageOptions) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[11]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use MessageOptions.ProtoReflect.Descriptor instead.\nfunc (*MessageOptions) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{11}\n}\n\nfunc (x *MessageOptions) GetMessageSetWireFormat() bool {\n\tif x != nil && x.MessageSetWireFormat != nil {\n\t\treturn *x.MessageSetWireFormat\n\t}\n\treturn Default_MessageOptions_MessageSetWireFormat\n}\n\nfunc (x *MessageOptions) GetNoStandardDescriptorAccessor() bool {\n\tif x != nil && x.NoStandardDescriptorAccessor != nil {\n\t\treturn *x.NoStandardDescriptorAccessor\n\t}\n\treturn Default_MessageOptions_NoStandardDescriptorAccessor\n}\n\nfunc (x *MessageOptions) GetDeprecated() bool {\n\tif x != nil && x.Deprecated != nil {\n\t\treturn *x.Deprecated\n\t}\n\treturn Default_MessageOptions_Deprecated\n}\n\nfunc (x *MessageOptions) GetMapEntry() bool {\n\tif x != nil && x.MapEntry != nil {\n\t\treturn *x.MapEntry\n\t}\n\treturn false\n}\n\n// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto.\nfunc (x *MessageOptions) GetDeprecatedLegacyJsonFieldConflicts() bool {\n\tif x != nil && x.DeprecatedLegacyJsonFieldConflicts != nil {\n\t\treturn *x.DeprecatedLegacyJsonFieldConflicts\n\t}\n\treturn false\n}\n\nfunc (x *MessageOptions) GetFeatures() *FeatureSet {\n\tif x != nil {\n\t\treturn x.Features\n\t}\n\treturn nil\n}\n\nfunc (x *MessageOptions) GetUninterpretedOption() []*UninterpretedOption {\n\tif x != nil {\n\t\treturn x.UninterpretedOption\n\t}\n\treturn nil\n}\n\ntype FieldOptions struct {\n\tstate           protoimpl.MessageState\n\tsizeCache       protoimpl.SizeCache\n\tunknownFields   protoimpl.UnknownFields\n\textensionFields protoimpl.ExtensionFields\n\n\t// The ctype option instructs the C++ code generator to use a different\n\t// representation of the field than it normally would.  See the specific\n\t// options below.  This option is only implemented to support use of\n\t// [ctype=CORD] and [ctype=STRING] (the default) on non-repeated fields of\n\t// type \"bytes\" in the open source release -- sorry, we'll try to include\n\t// other types in a future version!\n\tCtype *FieldOptions_CType `protobuf:\"varint,1,opt,name=ctype,enum=google.protobuf.FieldOptions_CType,def=0\" json:\"ctype,omitempty\"`\n\t// The packed option can be enabled for repeated primitive fields to enable\n\t// a more efficient representation on the wire. Rather than repeatedly\n\t// writing the tag and type for each element, the entire array is encoded as\n\t// a single length-delimited blob. In proto3, only explicit setting it to\n\t// false will avoid using packed encoding.  This option is prohibited in\n\t// Editions, but the `repeated_field_encoding` feature can be used to control\n\t// the behavior.\n\tPacked *bool `protobuf:\"varint,2,opt,name=packed\" json:\"packed,omitempty\"`\n\t// The jstype option determines the JavaScript type used for values of the\n\t// field.  The option is permitted only for 64 bit integral and fixed types\n\t// (int64, uint64, sint64, fixed64, sfixed64).  A field with jstype JS_STRING\n\t// is represented as JavaScript string, which avoids loss of precision that\n\t// can happen when a large value is converted to a floating point JavaScript.\n\t// Specifying JS_NUMBER for the jstype causes the generated JavaScript code to\n\t// use the JavaScript \"number\" type.  The behavior of the default option\n\t// JS_NORMAL is implementation dependent.\n\t//\n\t// This option is an enum to permit additional types to be added, e.g.\n\t// goog.math.Integer.\n\tJstype *FieldOptions_JSType `protobuf:\"varint,6,opt,name=jstype,enum=google.protobuf.FieldOptions_JSType,def=0\" json:\"jstype,omitempty\"`\n\t// Should this field be parsed lazily?  Lazy applies only to message-type\n\t// fields.  It means that when the outer message is initially parsed, the\n\t// inner message's contents will not be parsed but instead stored in encoded\n\t// form.  The inner message will actually be parsed when it is first accessed.\n\t//\n\t// This is only a hint.  Implementations are free to choose whether to use\n\t// eager or lazy parsing regardless of the value of this option.  However,\n\t// setting this option true suggests that the protocol author believes that\n\t// using lazy parsing on this field is worth the additional bookkeeping\n\t// overhead typically needed to implement it.\n\t//\n\t// This option does not affect the public interface of any generated code;\n\t// all method signatures remain the same.  Furthermore, thread-safety of the\n\t// interface is not affected by this option; const methods remain safe to\n\t// call from multiple threads concurrently, while non-const methods continue\n\t// to require exclusive access.\n\t//\n\t// Note that lazy message fields are still eagerly verified to check\n\t// ill-formed wireformat or missing required fields. Calling IsInitialized()\n\t// on the outer message would fail if the inner message has missing required\n\t// fields. Failed verification would result in parsing failure (except when\n\t// uninitialized messages are acceptable).\n\tLazy *bool `protobuf:\"varint,5,opt,name=lazy,def=0\" json:\"lazy,omitempty\"`\n\t// unverified_lazy does no correctness checks on the byte stream. This should\n\t// only be used where lazy with verification is prohibitive for performance\n\t// reasons.\n\tUnverifiedLazy *bool `protobuf:\"varint,15,opt,name=unverified_lazy,json=unverifiedLazy,def=0\" json:\"unverified_lazy,omitempty\"`\n\t// Is this field deprecated?\n\t// Depending on the target platform, this can emit Deprecated annotations\n\t// for accessors, or it will be completely ignored; in the very least, this\n\t// is a formalization for deprecating fields.\n\tDeprecated *bool `protobuf:\"varint,3,opt,name=deprecated,def=0\" json:\"deprecated,omitempty\"`\n\t// For Google-internal migration only. Do not use.\n\tWeak *bool `protobuf:\"varint,10,opt,name=weak,def=0\" json:\"weak,omitempty\"`\n\t// Indicate that the field value should not be printed out when using debug\n\t// formats, e.g. when the field contains sensitive credentials.\n\tDebugRedact     *bool                           `protobuf:\"varint,16,opt,name=debug_redact,json=debugRedact,def=0\" json:\"debug_redact,omitempty\"`\n\tRetention       *FieldOptions_OptionRetention   `protobuf:\"varint,17,opt,name=retention,enum=google.protobuf.FieldOptions_OptionRetention\" json:\"retention,omitempty\"`\n\tTargets         []FieldOptions_OptionTargetType `protobuf:\"varint,19,rep,name=targets,enum=google.protobuf.FieldOptions_OptionTargetType\" json:\"targets,omitempty\"`\n\tEditionDefaults []*FieldOptions_EditionDefault  `protobuf:\"bytes,20,rep,name=edition_defaults,json=editionDefaults\" json:\"edition_defaults,omitempty\"`\n\t// Any features defined in the specific edition.\n\tFeatures       *FeatureSet                  `protobuf:\"bytes,21,opt,name=features\" json:\"features,omitempty\"`\n\tFeatureSupport *FieldOptions_FeatureSupport `protobuf:\"bytes,22,opt,name=feature_support,json=featureSupport\" json:\"feature_support,omitempty\"`\n\t// The parser stores options it doesn't recognize here. See above.\n\tUninterpretedOption []*UninterpretedOption `protobuf:\"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption\" json:\"uninterpreted_option,omitempty\"`\n}\n\n// Default values for FieldOptions fields.\nconst (\n\tDefault_FieldOptions_Ctype          = FieldOptions_STRING\n\tDefault_FieldOptions_Jstype         = FieldOptions_JS_NORMAL\n\tDefault_FieldOptions_Lazy           = bool(false)\n\tDefault_FieldOptions_UnverifiedLazy = bool(false)\n\tDefault_FieldOptions_Deprecated     = bool(false)\n\tDefault_FieldOptions_Weak           = bool(false)\n\tDefault_FieldOptions_DebugRedact    = bool(false)\n)\n\nfunc (x *FieldOptions) Reset() {\n\t*x = FieldOptions{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[12]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *FieldOptions) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*FieldOptions) ProtoMessage() {}\n\nfunc (x *FieldOptions) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[12]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use FieldOptions.ProtoReflect.Descriptor instead.\nfunc (*FieldOptions) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{12}\n}\n\nfunc (x *FieldOptions) GetCtype() FieldOptions_CType {\n\tif x != nil && x.Ctype != nil {\n\t\treturn *x.Ctype\n\t}\n\treturn Default_FieldOptions_Ctype\n}\n\nfunc (x *FieldOptions) GetPacked() bool {\n\tif x != nil && x.Packed != nil {\n\t\treturn *x.Packed\n\t}\n\treturn false\n}\n\nfunc (x *FieldOptions) GetJstype() FieldOptions_JSType {\n\tif x != nil && x.Jstype != nil {\n\t\treturn *x.Jstype\n\t}\n\treturn Default_FieldOptions_Jstype\n}\n\nfunc (x *FieldOptions) GetLazy() bool {\n\tif x != nil && x.Lazy != nil {\n\t\treturn *x.Lazy\n\t}\n\treturn Default_FieldOptions_Lazy\n}\n\nfunc (x *FieldOptions) GetUnverifiedLazy() bool {\n\tif x != nil && x.UnverifiedLazy != nil {\n\t\treturn *x.UnverifiedLazy\n\t}\n\treturn Default_FieldOptions_UnverifiedLazy\n}\n\nfunc (x *FieldOptions) GetDeprecated() bool {\n\tif x != nil && x.Deprecated != nil {\n\t\treturn *x.Deprecated\n\t}\n\treturn Default_FieldOptions_Deprecated\n}\n\nfunc (x *FieldOptions) GetWeak() bool {\n\tif x != nil && x.Weak != nil {\n\t\treturn *x.Weak\n\t}\n\treturn Default_FieldOptions_Weak\n}\n\nfunc (x *FieldOptions) GetDebugRedact() bool {\n\tif x != nil && x.DebugRedact != nil {\n\t\treturn *x.DebugRedact\n\t}\n\treturn Default_FieldOptions_DebugRedact\n}\n\nfunc (x *FieldOptions) GetRetention() FieldOptions_OptionRetention {\n\tif x != nil && x.Retention != nil {\n\t\treturn *x.Retention\n\t}\n\treturn FieldOptions_RETENTION_UNKNOWN\n}\n\nfunc (x *FieldOptions) GetTargets() []FieldOptions_OptionTargetType {\n\tif x != nil {\n\t\treturn x.Targets\n\t}\n\treturn nil\n}\n\nfunc (x *FieldOptions) GetEditionDefaults() []*FieldOptions_EditionDefault {\n\tif x != nil {\n\t\treturn x.EditionDefaults\n\t}\n\treturn nil\n}\n\nfunc (x *FieldOptions) GetFeatures() *FeatureSet {\n\tif x != nil {\n\t\treturn x.Features\n\t}\n\treturn nil\n}\n\nfunc (x *FieldOptions) GetFeatureSupport() *FieldOptions_FeatureSupport {\n\tif x != nil {\n\t\treturn x.FeatureSupport\n\t}\n\treturn nil\n}\n\nfunc (x *FieldOptions) GetUninterpretedOption() []*UninterpretedOption {\n\tif x != nil {\n\t\treturn x.UninterpretedOption\n\t}\n\treturn nil\n}\n\ntype OneofOptions struct {\n\tstate           protoimpl.MessageState\n\tsizeCache       protoimpl.SizeCache\n\tunknownFields   protoimpl.UnknownFields\n\textensionFields protoimpl.ExtensionFields\n\n\t// Any features defined in the specific edition.\n\tFeatures *FeatureSet `protobuf:\"bytes,1,opt,name=features\" json:\"features,omitempty\"`\n\t// The parser stores options it doesn't recognize here. See above.\n\tUninterpretedOption []*UninterpretedOption `protobuf:\"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption\" json:\"uninterpreted_option,omitempty\"`\n}\n\nfunc (x *OneofOptions) Reset() {\n\t*x = OneofOptions{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[13]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *OneofOptions) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*OneofOptions) ProtoMessage() {}\n\nfunc (x *OneofOptions) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[13]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use OneofOptions.ProtoReflect.Descriptor instead.\nfunc (*OneofOptions) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{13}\n}\n\nfunc (x *OneofOptions) GetFeatures() *FeatureSet {\n\tif x != nil {\n\t\treturn x.Features\n\t}\n\treturn nil\n}\n\nfunc (x *OneofOptions) GetUninterpretedOption() []*UninterpretedOption {\n\tif x != nil {\n\t\treturn x.UninterpretedOption\n\t}\n\treturn nil\n}\n\ntype EnumOptions struct {\n\tstate           protoimpl.MessageState\n\tsizeCache       protoimpl.SizeCache\n\tunknownFields   protoimpl.UnknownFields\n\textensionFields protoimpl.ExtensionFields\n\n\t// Set this option to true to allow mapping different tag names to the same\n\t// value.\n\tAllowAlias *bool `protobuf:\"varint,2,opt,name=allow_alias,json=allowAlias\" json:\"allow_alias,omitempty\"`\n\t// Is this enum deprecated?\n\t// Depending on the target platform, this can emit Deprecated annotations\n\t// for the enum, or it will be completely ignored; in the very least, this\n\t// is a formalization for deprecating enums.\n\tDeprecated *bool `protobuf:\"varint,3,opt,name=deprecated,def=0\" json:\"deprecated,omitempty\"`\n\t// Enable the legacy handling of JSON field name conflicts.  This lowercases\n\t// and strips underscored from the fields before comparison in proto3 only.\n\t// The new behavior takes `json_name` into account and applies to proto2 as\n\t// well.\n\t// TODO Remove this legacy behavior once downstream teams have\n\t// had time to migrate.\n\t//\n\t// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto.\n\tDeprecatedLegacyJsonFieldConflicts *bool `protobuf:\"varint,6,opt,name=deprecated_legacy_json_field_conflicts,json=deprecatedLegacyJsonFieldConflicts\" json:\"deprecated_legacy_json_field_conflicts,omitempty\"`\n\t// Any features defined in the specific edition.\n\tFeatures *FeatureSet `protobuf:\"bytes,7,opt,name=features\" json:\"features,omitempty\"`\n\t// The parser stores options it doesn't recognize here. See above.\n\tUninterpretedOption []*UninterpretedOption `protobuf:\"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption\" json:\"uninterpreted_option,omitempty\"`\n}\n\n// Default values for EnumOptions fields.\nconst (\n\tDefault_EnumOptions_Deprecated = bool(false)\n)\n\nfunc (x *EnumOptions) Reset() {\n\t*x = EnumOptions{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[14]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *EnumOptions) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*EnumOptions) ProtoMessage() {}\n\nfunc (x *EnumOptions) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[14]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use EnumOptions.ProtoReflect.Descriptor instead.\nfunc (*EnumOptions) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{14}\n}\n\nfunc (x *EnumOptions) GetAllowAlias() bool {\n\tif x != nil && x.AllowAlias != nil {\n\t\treturn *x.AllowAlias\n\t}\n\treturn false\n}\n\nfunc (x *EnumOptions) GetDeprecated() bool {\n\tif x != nil && x.Deprecated != nil {\n\t\treturn *x.Deprecated\n\t}\n\treturn Default_EnumOptions_Deprecated\n}\n\n// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto.\nfunc (x *EnumOptions) GetDeprecatedLegacyJsonFieldConflicts() bool {\n\tif x != nil && x.DeprecatedLegacyJsonFieldConflicts != nil {\n\t\treturn *x.DeprecatedLegacyJsonFieldConflicts\n\t}\n\treturn false\n}\n\nfunc (x *EnumOptions) GetFeatures() *FeatureSet {\n\tif x != nil {\n\t\treturn x.Features\n\t}\n\treturn nil\n}\n\nfunc (x *EnumOptions) GetUninterpretedOption() []*UninterpretedOption {\n\tif x != nil {\n\t\treturn x.UninterpretedOption\n\t}\n\treturn nil\n}\n\ntype EnumValueOptions struct {\n\tstate           protoimpl.MessageState\n\tsizeCache       protoimpl.SizeCache\n\tunknownFields   protoimpl.UnknownFields\n\textensionFields protoimpl.ExtensionFields\n\n\t// Is this enum value deprecated?\n\t// Depending on the target platform, this can emit Deprecated annotations\n\t// for the enum value, or it will be completely ignored; in the very least,\n\t// this is a formalization for deprecating enum values.\n\tDeprecated *bool `protobuf:\"varint,1,opt,name=deprecated,def=0\" json:\"deprecated,omitempty\"`\n\t// Any features defined in the specific edition.\n\tFeatures *FeatureSet `protobuf:\"bytes,2,opt,name=features\" json:\"features,omitempty\"`\n\t// Indicate that fields annotated with this enum value should not be printed\n\t// out when using debug formats, e.g. when the field contains sensitive\n\t// credentials.\n\tDebugRedact *bool `protobuf:\"varint,3,opt,name=debug_redact,json=debugRedact,def=0\" json:\"debug_redact,omitempty\"`\n\t// Information about the support window of a feature value.\n\tFeatureSupport *FieldOptions_FeatureSupport `protobuf:\"bytes,4,opt,name=feature_support,json=featureSupport\" json:\"feature_support,omitempty\"`\n\t// The parser stores options it doesn't recognize here. See above.\n\tUninterpretedOption []*UninterpretedOption `protobuf:\"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption\" json:\"uninterpreted_option,omitempty\"`\n}\n\n// Default values for EnumValueOptions fields.\nconst (\n\tDefault_EnumValueOptions_Deprecated  = bool(false)\n\tDefault_EnumValueOptions_DebugRedact = bool(false)\n)\n\nfunc (x *EnumValueOptions) Reset() {\n\t*x = EnumValueOptions{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[15]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *EnumValueOptions) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*EnumValueOptions) ProtoMessage() {}\n\nfunc (x *EnumValueOptions) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[15]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use EnumValueOptions.ProtoReflect.Descriptor instead.\nfunc (*EnumValueOptions) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{15}\n}\n\nfunc (x *EnumValueOptions) GetDeprecated() bool {\n\tif x != nil && x.Deprecated != nil {\n\t\treturn *x.Deprecated\n\t}\n\treturn Default_EnumValueOptions_Deprecated\n}\n\nfunc (x *EnumValueOptions) GetFeatures() *FeatureSet {\n\tif x != nil {\n\t\treturn x.Features\n\t}\n\treturn nil\n}\n\nfunc (x *EnumValueOptions) GetDebugRedact() bool {\n\tif x != nil && x.DebugRedact != nil {\n\t\treturn *x.DebugRedact\n\t}\n\treturn Default_EnumValueOptions_DebugRedact\n}\n\nfunc (x *EnumValueOptions) GetFeatureSupport() *FieldOptions_FeatureSupport {\n\tif x != nil {\n\t\treturn x.FeatureSupport\n\t}\n\treturn nil\n}\n\nfunc (x *EnumValueOptions) GetUninterpretedOption() []*UninterpretedOption {\n\tif x != nil {\n\t\treturn x.UninterpretedOption\n\t}\n\treturn nil\n}\n\ntype ServiceOptions struct {\n\tstate           protoimpl.MessageState\n\tsizeCache       protoimpl.SizeCache\n\tunknownFields   protoimpl.UnknownFields\n\textensionFields protoimpl.ExtensionFields\n\n\t// Any features defined in the specific edition.\n\tFeatures *FeatureSet `protobuf:\"bytes,34,opt,name=features\" json:\"features,omitempty\"`\n\t// Is this service deprecated?\n\t// Depending on the target platform, this can emit Deprecated annotations\n\t// for the service, or it will be completely ignored; in the very least,\n\t// this is a formalization for deprecating services.\n\tDeprecated *bool `protobuf:\"varint,33,opt,name=deprecated,def=0\" json:\"deprecated,omitempty\"`\n\t// The parser stores options it doesn't recognize here. See above.\n\tUninterpretedOption []*UninterpretedOption `protobuf:\"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption\" json:\"uninterpreted_option,omitempty\"`\n}\n\n// Default values for ServiceOptions fields.\nconst (\n\tDefault_ServiceOptions_Deprecated = bool(false)\n)\n\nfunc (x *ServiceOptions) Reset() {\n\t*x = ServiceOptions{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[16]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *ServiceOptions) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ServiceOptions) ProtoMessage() {}\n\nfunc (x *ServiceOptions) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[16]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ServiceOptions.ProtoReflect.Descriptor instead.\nfunc (*ServiceOptions) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{16}\n}\n\nfunc (x *ServiceOptions) GetFeatures() *FeatureSet {\n\tif x != nil {\n\t\treturn x.Features\n\t}\n\treturn nil\n}\n\nfunc (x *ServiceOptions) GetDeprecated() bool {\n\tif x != nil && x.Deprecated != nil {\n\t\treturn *x.Deprecated\n\t}\n\treturn Default_ServiceOptions_Deprecated\n}\n\nfunc (x *ServiceOptions) GetUninterpretedOption() []*UninterpretedOption {\n\tif x != nil {\n\t\treturn x.UninterpretedOption\n\t}\n\treturn nil\n}\n\ntype MethodOptions struct {\n\tstate           protoimpl.MessageState\n\tsizeCache       protoimpl.SizeCache\n\tunknownFields   protoimpl.UnknownFields\n\textensionFields protoimpl.ExtensionFields\n\n\t// Is this method deprecated?\n\t// Depending on the target platform, this can emit Deprecated annotations\n\t// for the method, or it will be completely ignored; in the very least,\n\t// this is a formalization for deprecating methods.\n\tDeprecated       *bool                           `protobuf:\"varint,33,opt,name=deprecated,def=0\" json:\"deprecated,omitempty\"`\n\tIdempotencyLevel *MethodOptions_IdempotencyLevel `protobuf:\"varint,34,opt,name=idempotency_level,json=idempotencyLevel,enum=google.protobuf.MethodOptions_IdempotencyLevel,def=0\" json:\"idempotency_level,omitempty\"`\n\t// Any features defined in the specific edition.\n\tFeatures *FeatureSet `protobuf:\"bytes,35,opt,name=features\" json:\"features,omitempty\"`\n\t// The parser stores options it doesn't recognize here. See above.\n\tUninterpretedOption []*UninterpretedOption `protobuf:\"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption\" json:\"uninterpreted_option,omitempty\"`\n}\n\n// Default values for MethodOptions fields.\nconst (\n\tDefault_MethodOptions_Deprecated       = bool(false)\n\tDefault_MethodOptions_IdempotencyLevel = MethodOptions_IDEMPOTENCY_UNKNOWN\n)\n\nfunc (x *MethodOptions) Reset() {\n\t*x = MethodOptions{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[17]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *MethodOptions) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*MethodOptions) ProtoMessage() {}\n\nfunc (x *MethodOptions) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[17]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use MethodOptions.ProtoReflect.Descriptor instead.\nfunc (*MethodOptions) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{17}\n}\n\nfunc (x *MethodOptions) GetDeprecated() bool {\n\tif x != nil && x.Deprecated != nil {\n\t\treturn *x.Deprecated\n\t}\n\treturn Default_MethodOptions_Deprecated\n}\n\nfunc (x *MethodOptions) GetIdempotencyLevel() MethodOptions_IdempotencyLevel {\n\tif x != nil && x.IdempotencyLevel != nil {\n\t\treturn *x.IdempotencyLevel\n\t}\n\treturn Default_MethodOptions_IdempotencyLevel\n}\n\nfunc (x *MethodOptions) GetFeatures() *FeatureSet {\n\tif x != nil {\n\t\treturn x.Features\n\t}\n\treturn nil\n}\n\nfunc (x *MethodOptions) GetUninterpretedOption() []*UninterpretedOption {\n\tif x != nil {\n\t\treturn x.UninterpretedOption\n\t}\n\treturn nil\n}\n\n// A message representing a option the parser does not recognize. This only\n// appears in options protos created by the compiler::Parser class.\n// DescriptorPool resolves these when building Descriptor objects. Therefore,\n// options protos in descriptor objects (e.g. returned by Descriptor::options(),\n// or produced by Descriptor::CopyTo()) will never have UninterpretedOptions\n// in them.\ntype UninterpretedOption struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tName []*UninterpretedOption_NamePart `protobuf:\"bytes,2,rep,name=name\" json:\"name,omitempty\"`\n\t// The value of the uninterpreted option, in whatever type the tokenizer\n\t// identified it as during parsing. Exactly one of these should be set.\n\tIdentifierValue  *string  `protobuf:\"bytes,3,opt,name=identifier_value,json=identifierValue\" json:\"identifier_value,omitempty\"`\n\tPositiveIntValue *uint64  `protobuf:\"varint,4,opt,name=positive_int_value,json=positiveIntValue\" json:\"positive_int_value,omitempty\"`\n\tNegativeIntValue *int64   `protobuf:\"varint,5,opt,name=negative_int_value,json=negativeIntValue\" json:\"negative_int_value,omitempty\"`\n\tDoubleValue      *float64 `protobuf:\"fixed64,6,opt,name=double_value,json=doubleValue\" json:\"double_value,omitempty\"`\n\tStringValue      []byte   `protobuf:\"bytes,7,opt,name=string_value,json=stringValue\" json:\"string_value,omitempty\"`\n\tAggregateValue   *string  `protobuf:\"bytes,8,opt,name=aggregate_value,json=aggregateValue\" json:\"aggregate_value,omitempty\"`\n}\n\nfunc (x *UninterpretedOption) Reset() {\n\t*x = UninterpretedOption{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[18]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *UninterpretedOption) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*UninterpretedOption) ProtoMessage() {}\n\nfunc (x *UninterpretedOption) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[18]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use UninterpretedOption.ProtoReflect.Descriptor instead.\nfunc (*UninterpretedOption) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{18}\n}\n\nfunc (x *UninterpretedOption) GetName() []*UninterpretedOption_NamePart {\n\tif x != nil {\n\t\treturn x.Name\n\t}\n\treturn nil\n}\n\nfunc (x *UninterpretedOption) GetIdentifierValue() string {\n\tif x != nil && x.IdentifierValue != nil {\n\t\treturn *x.IdentifierValue\n\t}\n\treturn \"\"\n}\n\nfunc (x *UninterpretedOption) GetPositiveIntValue() uint64 {\n\tif x != nil && x.PositiveIntValue != nil {\n\t\treturn *x.PositiveIntValue\n\t}\n\treturn 0\n}\n\nfunc (x *UninterpretedOption) GetNegativeIntValue() int64 {\n\tif x != nil && x.NegativeIntValue != nil {\n\t\treturn *x.NegativeIntValue\n\t}\n\treturn 0\n}\n\nfunc (x *UninterpretedOption) GetDoubleValue() float64 {\n\tif x != nil && x.DoubleValue != nil {\n\t\treturn *x.DoubleValue\n\t}\n\treturn 0\n}\n\nfunc (x *UninterpretedOption) GetStringValue() []byte {\n\tif x != nil {\n\t\treturn x.StringValue\n\t}\n\treturn nil\n}\n\nfunc (x *UninterpretedOption) GetAggregateValue() string {\n\tif x != nil && x.AggregateValue != nil {\n\t\treturn *x.AggregateValue\n\t}\n\treturn \"\"\n}\n\n// TODO Enums in C++ gencode (and potentially other languages) are\n// not well scoped.  This means that each of the feature enums below can clash\n// with each other.  The short names we've chosen maximize call-site\n// readability, but leave us very open to this scenario.  A future feature will\n// be designed and implemented to handle this, hopefully before we ever hit a\n// conflict here.\ntype FeatureSet struct {\n\tstate           protoimpl.MessageState\n\tsizeCache       protoimpl.SizeCache\n\tunknownFields   protoimpl.UnknownFields\n\textensionFields protoimpl.ExtensionFields\n\n\tFieldPresence         *FeatureSet_FieldPresence         `protobuf:\"varint,1,opt,name=field_presence,json=fieldPresence,enum=google.protobuf.FeatureSet_FieldPresence\" json:\"field_presence,omitempty\"`\n\tEnumType              *FeatureSet_EnumType              `protobuf:\"varint,2,opt,name=enum_type,json=enumType,enum=google.protobuf.FeatureSet_EnumType\" json:\"enum_type,omitempty\"`\n\tRepeatedFieldEncoding *FeatureSet_RepeatedFieldEncoding `protobuf:\"varint,3,opt,name=repeated_field_encoding,json=repeatedFieldEncoding,enum=google.protobuf.FeatureSet_RepeatedFieldEncoding\" json:\"repeated_field_encoding,omitempty\"`\n\tUtf8Validation        *FeatureSet_Utf8Validation        `protobuf:\"varint,4,opt,name=utf8_validation,json=utf8Validation,enum=google.protobuf.FeatureSet_Utf8Validation\" json:\"utf8_validation,omitempty\"`\n\tMessageEncoding       *FeatureSet_MessageEncoding       `protobuf:\"varint,5,opt,name=message_encoding,json=messageEncoding,enum=google.protobuf.FeatureSet_MessageEncoding\" json:\"message_encoding,omitempty\"`\n\tJsonFormat            *FeatureSet_JsonFormat            `protobuf:\"varint,6,opt,name=json_format,json=jsonFormat,enum=google.protobuf.FeatureSet_JsonFormat\" json:\"json_format,omitempty\"`\n}\n\nfunc (x *FeatureSet) Reset() {\n\t*x = FeatureSet{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[19]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *FeatureSet) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*FeatureSet) ProtoMessage() {}\n\nfunc (x *FeatureSet) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[19]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use FeatureSet.ProtoReflect.Descriptor instead.\nfunc (*FeatureSet) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19}\n}\n\nfunc (x *FeatureSet) GetFieldPresence() FeatureSet_FieldPresence {\n\tif x != nil && x.FieldPresence != nil {\n\t\treturn *x.FieldPresence\n\t}\n\treturn FeatureSet_FIELD_PRESENCE_UNKNOWN\n}\n\nfunc (x *FeatureSet) GetEnumType() FeatureSet_EnumType {\n\tif x != nil && x.EnumType != nil {\n\t\treturn *x.EnumType\n\t}\n\treturn FeatureSet_ENUM_TYPE_UNKNOWN\n}\n\nfunc (x *FeatureSet) GetRepeatedFieldEncoding() FeatureSet_RepeatedFieldEncoding {\n\tif x != nil && x.RepeatedFieldEncoding != nil {\n\t\treturn *x.RepeatedFieldEncoding\n\t}\n\treturn FeatureSet_REPEATED_FIELD_ENCODING_UNKNOWN\n}\n\nfunc (x *FeatureSet) GetUtf8Validation() FeatureSet_Utf8Validation {\n\tif x != nil && x.Utf8Validation != nil {\n\t\treturn *x.Utf8Validation\n\t}\n\treturn FeatureSet_UTF8_VALIDATION_UNKNOWN\n}\n\nfunc (x *FeatureSet) GetMessageEncoding() FeatureSet_MessageEncoding {\n\tif x != nil && x.MessageEncoding != nil {\n\t\treturn *x.MessageEncoding\n\t}\n\treturn FeatureSet_MESSAGE_ENCODING_UNKNOWN\n}\n\nfunc (x *FeatureSet) GetJsonFormat() FeatureSet_JsonFormat {\n\tif x != nil && x.JsonFormat != nil {\n\t\treturn *x.JsonFormat\n\t}\n\treturn FeatureSet_JSON_FORMAT_UNKNOWN\n}\n\n// A compiled specification for the defaults of a set of features.  These\n// messages are generated from FeatureSet extensions and can be used to seed\n// feature resolution. The resolution with this object becomes a simple search\n// for the closest matching edition, followed by proto merges.\ntype FeatureSetDefaults struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tDefaults []*FeatureSetDefaults_FeatureSetEditionDefault `protobuf:\"bytes,1,rep,name=defaults\" json:\"defaults,omitempty\"`\n\t// The minimum supported edition (inclusive) when this was constructed.\n\t// Editions before this will not have defaults.\n\tMinimumEdition *Edition `protobuf:\"varint,4,opt,name=minimum_edition,json=minimumEdition,enum=google.protobuf.Edition\" json:\"minimum_edition,omitempty\"`\n\t// The maximum known edition (inclusive) when this was constructed. Editions\n\t// after this will not have reliable defaults.\n\tMaximumEdition *Edition `protobuf:\"varint,5,opt,name=maximum_edition,json=maximumEdition,enum=google.protobuf.Edition\" json:\"maximum_edition,omitempty\"`\n}\n\nfunc (x *FeatureSetDefaults) Reset() {\n\t*x = FeatureSetDefaults{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[20]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *FeatureSetDefaults) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*FeatureSetDefaults) ProtoMessage() {}\n\nfunc (x *FeatureSetDefaults) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[20]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use FeatureSetDefaults.ProtoReflect.Descriptor instead.\nfunc (*FeatureSetDefaults) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{20}\n}\n\nfunc (x *FeatureSetDefaults) GetDefaults() []*FeatureSetDefaults_FeatureSetEditionDefault {\n\tif x != nil {\n\t\treturn x.Defaults\n\t}\n\treturn nil\n}\n\nfunc (x *FeatureSetDefaults) GetMinimumEdition() Edition {\n\tif x != nil && x.MinimumEdition != nil {\n\t\treturn *x.MinimumEdition\n\t}\n\treturn Edition_EDITION_UNKNOWN\n}\n\nfunc (x *FeatureSetDefaults) GetMaximumEdition() Edition {\n\tif x != nil && x.MaximumEdition != nil {\n\t\treturn *x.MaximumEdition\n\t}\n\treturn Edition_EDITION_UNKNOWN\n}\n\n// Encapsulates information about the original source file from which a\n// FileDescriptorProto was generated.\ntype SourceCodeInfo struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// A Location identifies a piece of source code in a .proto file which\n\t// corresponds to a particular definition.  This information is intended\n\t// to be useful to IDEs, code indexers, documentation generators, and similar\n\t// tools.\n\t//\n\t// For example, say we have a file like:\n\t//\n\t//\tmessage Foo {\n\t//\t  optional string foo = 1;\n\t//\t}\n\t//\n\t// Let's look at just the field definition:\n\t//\n\t//\toptional string foo = 1;\n\t//\t^       ^^     ^^  ^  ^^^\n\t//\ta       bc     de  f  ghi\n\t//\n\t// We have the following locations:\n\t//\n\t//\tspan   path               represents\n\t//\t[a,i)  [ 4, 0, 2, 0 ]     The whole field definition.\n\t//\t[a,b)  [ 4, 0, 2, 0, 4 ]  The label (optional).\n\t//\t[c,d)  [ 4, 0, 2, 0, 5 ]  The type (string).\n\t//\t[e,f)  [ 4, 0, 2, 0, 1 ]  The name (foo).\n\t//\t[g,h)  [ 4, 0, 2, 0, 3 ]  The number (1).\n\t//\n\t// Notes:\n\t//   - A location may refer to a repeated field itself (i.e. not to any\n\t//     particular index within it).  This is used whenever a set of elements are\n\t//     logically enclosed in a single code segment.  For example, an entire\n\t//     extend block (possibly containing multiple extension definitions) will\n\t//     have an outer location whose path refers to the \"extensions\" repeated\n\t//     field without an index.\n\t//   - Multiple locations may have the same path.  This happens when a single\n\t//     logical declaration is spread out across multiple places.  The most\n\t//     obvious example is the \"extend\" block again -- there may be multiple\n\t//     extend blocks in the same scope, each of which will have the same path.\n\t//   - A location's span is not always a subset of its parent's span.  For\n\t//     example, the \"extendee\" of an extension declaration appears at the\n\t//     beginning of the \"extend\" block and is shared by all extensions within\n\t//     the block.\n\t//   - Just because a location's span is a subset of some other location's span\n\t//     does not mean that it is a descendant.  For example, a \"group\" defines\n\t//     both a type and a field in a single declaration.  Thus, the locations\n\t//     corresponding to the type and field and their components will overlap.\n\t//   - Code which tries to interpret locations should probably be designed to\n\t//     ignore those that it doesn't understand, as more types of locations could\n\t//     be recorded in the future.\n\tLocation []*SourceCodeInfo_Location `protobuf:\"bytes,1,rep,name=location\" json:\"location,omitempty\"`\n}\n\nfunc (x *SourceCodeInfo) Reset() {\n\t*x = SourceCodeInfo{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[21]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *SourceCodeInfo) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*SourceCodeInfo) ProtoMessage() {}\n\nfunc (x *SourceCodeInfo) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[21]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use SourceCodeInfo.ProtoReflect.Descriptor instead.\nfunc (*SourceCodeInfo) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{21}\n}\n\nfunc (x *SourceCodeInfo) GetLocation() []*SourceCodeInfo_Location {\n\tif x != nil {\n\t\treturn x.Location\n\t}\n\treturn nil\n}\n\n// Describes the relationship between generated code and its original source\n// file. A GeneratedCodeInfo message is associated with only one generated\n// source file, but may contain references to different source .proto files.\ntype GeneratedCodeInfo struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// An Annotation connects some span of text in generated code to an element\n\t// of its generating .proto file.\n\tAnnotation []*GeneratedCodeInfo_Annotation `protobuf:\"bytes,1,rep,name=annotation\" json:\"annotation,omitempty\"`\n}\n\nfunc (x *GeneratedCodeInfo) Reset() {\n\t*x = GeneratedCodeInfo{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[22]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *GeneratedCodeInfo) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*GeneratedCodeInfo) ProtoMessage() {}\n\nfunc (x *GeneratedCodeInfo) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[22]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use GeneratedCodeInfo.ProtoReflect.Descriptor instead.\nfunc (*GeneratedCodeInfo) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{22}\n}\n\nfunc (x *GeneratedCodeInfo) GetAnnotation() []*GeneratedCodeInfo_Annotation {\n\tif x != nil {\n\t\treturn x.Annotation\n\t}\n\treturn nil\n}\n\ntype DescriptorProto_ExtensionRange struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tStart   *int32                 `protobuf:\"varint,1,opt,name=start\" json:\"start,omitempty\"` // Inclusive.\n\tEnd     *int32                 `protobuf:\"varint,2,opt,name=end\" json:\"end,omitempty\"`     // Exclusive.\n\tOptions *ExtensionRangeOptions `protobuf:\"bytes,3,opt,name=options\" json:\"options,omitempty\"`\n}\n\nfunc (x *DescriptorProto_ExtensionRange) Reset() {\n\t*x = DescriptorProto_ExtensionRange{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[23]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *DescriptorProto_ExtensionRange) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*DescriptorProto_ExtensionRange) ProtoMessage() {}\n\nfunc (x *DescriptorProto_ExtensionRange) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[23]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use DescriptorProto_ExtensionRange.ProtoReflect.Descriptor instead.\nfunc (*DescriptorProto_ExtensionRange) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{2, 0}\n}\n\nfunc (x *DescriptorProto_ExtensionRange) GetStart() int32 {\n\tif x != nil && x.Start != nil {\n\t\treturn *x.Start\n\t}\n\treturn 0\n}\n\nfunc (x *DescriptorProto_ExtensionRange) GetEnd() int32 {\n\tif x != nil && x.End != nil {\n\t\treturn *x.End\n\t}\n\treturn 0\n}\n\nfunc (x *DescriptorProto_ExtensionRange) GetOptions() *ExtensionRangeOptions {\n\tif x != nil {\n\t\treturn x.Options\n\t}\n\treturn nil\n}\n\n// Range of reserved tag numbers. Reserved tag numbers may not be used by\n// fields or extension ranges in the same message. Reserved ranges may\n// not overlap.\ntype DescriptorProto_ReservedRange struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tStart *int32 `protobuf:\"varint,1,opt,name=start\" json:\"start,omitempty\"` // Inclusive.\n\tEnd   *int32 `protobuf:\"varint,2,opt,name=end\" json:\"end,omitempty\"`     // Exclusive.\n}\n\nfunc (x *DescriptorProto_ReservedRange) Reset() {\n\t*x = DescriptorProto_ReservedRange{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[24]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *DescriptorProto_ReservedRange) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*DescriptorProto_ReservedRange) ProtoMessage() {}\n\nfunc (x *DescriptorProto_ReservedRange) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[24]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use DescriptorProto_ReservedRange.ProtoReflect.Descriptor instead.\nfunc (*DescriptorProto_ReservedRange) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{2, 1}\n}\n\nfunc (x *DescriptorProto_ReservedRange) GetStart() int32 {\n\tif x != nil && x.Start != nil {\n\t\treturn *x.Start\n\t}\n\treturn 0\n}\n\nfunc (x *DescriptorProto_ReservedRange) GetEnd() int32 {\n\tif x != nil && x.End != nil {\n\t\treturn *x.End\n\t}\n\treturn 0\n}\n\ntype ExtensionRangeOptions_Declaration struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// The extension number declared within the extension range.\n\tNumber *int32 `protobuf:\"varint,1,opt,name=number\" json:\"number,omitempty\"`\n\t// The fully-qualified name of the extension field. There must be a leading\n\t// dot in front of the full name.\n\tFullName *string `protobuf:\"bytes,2,opt,name=full_name,json=fullName\" json:\"full_name,omitempty\"`\n\t// The fully-qualified type name of the extension field. Unlike\n\t// Metadata.type, Declaration.type must have a leading dot for messages\n\t// and enums.\n\tType *string `protobuf:\"bytes,3,opt,name=type\" json:\"type,omitempty\"`\n\t// If true, indicates that the number is reserved in the extension range,\n\t// and any extension field with the number will fail to compile. Set this\n\t// when a declared extension field is deleted.\n\tReserved *bool `protobuf:\"varint,5,opt,name=reserved\" json:\"reserved,omitempty\"`\n\t// If true, indicates that the extension must be defined as repeated.\n\t// Otherwise the extension must be defined as optional.\n\tRepeated *bool `protobuf:\"varint,6,opt,name=repeated\" json:\"repeated,omitempty\"`\n}\n\nfunc (x *ExtensionRangeOptions_Declaration) Reset() {\n\t*x = ExtensionRangeOptions_Declaration{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[25]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *ExtensionRangeOptions_Declaration) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*ExtensionRangeOptions_Declaration) ProtoMessage() {}\n\nfunc (x *ExtensionRangeOptions_Declaration) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[25]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use ExtensionRangeOptions_Declaration.ProtoReflect.Descriptor instead.\nfunc (*ExtensionRangeOptions_Declaration) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{3, 0}\n}\n\nfunc (x *ExtensionRangeOptions_Declaration) GetNumber() int32 {\n\tif x != nil && x.Number != nil {\n\t\treturn *x.Number\n\t}\n\treturn 0\n}\n\nfunc (x *ExtensionRangeOptions_Declaration) GetFullName() string {\n\tif x != nil && x.FullName != nil {\n\t\treturn *x.FullName\n\t}\n\treturn \"\"\n}\n\nfunc (x *ExtensionRangeOptions_Declaration) GetType() string {\n\tif x != nil && x.Type != nil {\n\t\treturn *x.Type\n\t}\n\treturn \"\"\n}\n\nfunc (x *ExtensionRangeOptions_Declaration) GetReserved() bool {\n\tif x != nil && x.Reserved != nil {\n\t\treturn *x.Reserved\n\t}\n\treturn false\n}\n\nfunc (x *ExtensionRangeOptions_Declaration) GetRepeated() bool {\n\tif x != nil && x.Repeated != nil {\n\t\treturn *x.Repeated\n\t}\n\treturn false\n}\n\n// Range of reserved numeric values. Reserved values may not be used by\n// entries in the same enum. Reserved ranges may not overlap.\n//\n// Note that this is distinct from DescriptorProto.ReservedRange in that it\n// is inclusive such that it can appropriately represent the entire int32\n// domain.\ntype EnumDescriptorProto_EnumReservedRange struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tStart *int32 `protobuf:\"varint,1,opt,name=start\" json:\"start,omitempty\"` // Inclusive.\n\tEnd   *int32 `protobuf:\"varint,2,opt,name=end\" json:\"end,omitempty\"`     // Inclusive.\n}\n\nfunc (x *EnumDescriptorProto_EnumReservedRange) Reset() {\n\t*x = EnumDescriptorProto_EnumReservedRange{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[26]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *EnumDescriptorProto_EnumReservedRange) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*EnumDescriptorProto_EnumReservedRange) ProtoMessage() {}\n\nfunc (x *EnumDescriptorProto_EnumReservedRange) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[26]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use EnumDescriptorProto_EnumReservedRange.ProtoReflect.Descriptor instead.\nfunc (*EnumDescriptorProto_EnumReservedRange) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{6, 0}\n}\n\nfunc (x *EnumDescriptorProto_EnumReservedRange) GetStart() int32 {\n\tif x != nil && x.Start != nil {\n\t\treturn *x.Start\n\t}\n\treturn 0\n}\n\nfunc (x *EnumDescriptorProto_EnumReservedRange) GetEnd() int32 {\n\tif x != nil && x.End != nil {\n\t\treturn *x.End\n\t}\n\treturn 0\n}\n\ntype FieldOptions_EditionDefault struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tEdition *Edition `protobuf:\"varint,3,opt,name=edition,enum=google.protobuf.Edition\" json:\"edition,omitempty\"`\n\tValue   *string  `protobuf:\"bytes,2,opt,name=value\" json:\"value,omitempty\"` // Textproto value.\n}\n\nfunc (x *FieldOptions_EditionDefault) Reset() {\n\t*x = FieldOptions_EditionDefault{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[27]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *FieldOptions_EditionDefault) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*FieldOptions_EditionDefault) ProtoMessage() {}\n\nfunc (x *FieldOptions_EditionDefault) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[27]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use FieldOptions_EditionDefault.ProtoReflect.Descriptor instead.\nfunc (*FieldOptions_EditionDefault) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{12, 0}\n}\n\nfunc (x *FieldOptions_EditionDefault) GetEdition() Edition {\n\tif x != nil && x.Edition != nil {\n\t\treturn *x.Edition\n\t}\n\treturn Edition_EDITION_UNKNOWN\n}\n\nfunc (x *FieldOptions_EditionDefault) GetValue() string {\n\tif x != nil && x.Value != nil {\n\t\treturn *x.Value\n\t}\n\treturn \"\"\n}\n\n// Information about the support window of a feature.\ntype FieldOptions_FeatureSupport struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// The edition that this feature was first available in.  In editions\n\t// earlier than this one, the default assigned to EDITION_LEGACY will be\n\t// used, and proto files will not be able to override it.\n\tEditionIntroduced *Edition `protobuf:\"varint,1,opt,name=edition_introduced,json=editionIntroduced,enum=google.protobuf.Edition\" json:\"edition_introduced,omitempty\"`\n\t// The edition this feature becomes deprecated in.  Using this after this\n\t// edition may trigger warnings.\n\tEditionDeprecated *Edition `protobuf:\"varint,2,opt,name=edition_deprecated,json=editionDeprecated,enum=google.protobuf.Edition\" json:\"edition_deprecated,omitempty\"`\n\t// The deprecation warning text if this feature is used after the edition it\n\t// was marked deprecated in.\n\tDeprecationWarning *string `protobuf:\"bytes,3,opt,name=deprecation_warning,json=deprecationWarning\" json:\"deprecation_warning,omitempty\"`\n\t// The edition this feature is no longer available in.  In editions after\n\t// this one, the last default assigned will be used, and proto files will\n\t// not be able to override it.\n\tEditionRemoved *Edition `protobuf:\"varint,4,opt,name=edition_removed,json=editionRemoved,enum=google.protobuf.Edition\" json:\"edition_removed,omitempty\"`\n}\n\nfunc (x *FieldOptions_FeatureSupport) Reset() {\n\t*x = FieldOptions_FeatureSupport{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[28]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *FieldOptions_FeatureSupport) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*FieldOptions_FeatureSupport) ProtoMessage() {}\n\nfunc (x *FieldOptions_FeatureSupport) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[28]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use FieldOptions_FeatureSupport.ProtoReflect.Descriptor instead.\nfunc (*FieldOptions_FeatureSupport) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{12, 1}\n}\n\nfunc (x *FieldOptions_FeatureSupport) GetEditionIntroduced() Edition {\n\tif x != nil && x.EditionIntroduced != nil {\n\t\treturn *x.EditionIntroduced\n\t}\n\treturn Edition_EDITION_UNKNOWN\n}\n\nfunc (x *FieldOptions_FeatureSupport) GetEditionDeprecated() Edition {\n\tif x != nil && x.EditionDeprecated != nil {\n\t\treturn *x.EditionDeprecated\n\t}\n\treturn Edition_EDITION_UNKNOWN\n}\n\nfunc (x *FieldOptions_FeatureSupport) GetDeprecationWarning() string {\n\tif x != nil && x.DeprecationWarning != nil {\n\t\treturn *x.DeprecationWarning\n\t}\n\treturn \"\"\n}\n\nfunc (x *FieldOptions_FeatureSupport) GetEditionRemoved() Edition {\n\tif x != nil && x.EditionRemoved != nil {\n\t\treturn *x.EditionRemoved\n\t}\n\treturn Edition_EDITION_UNKNOWN\n}\n\n// The name of the uninterpreted option.  Each string represents a segment in\n// a dot-separated name.  is_extension is true iff a segment represents an\n// extension (denoted with parentheses in options specs in .proto files).\n// E.g.,{ [\"foo\", false], [\"bar.baz\", true], [\"moo\", false] } represents\n// \"foo.(bar.baz).moo\".\ntype UninterpretedOption_NamePart struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tNamePart    *string `protobuf:\"bytes,1,req,name=name_part,json=namePart\" json:\"name_part,omitempty\"`\n\tIsExtension *bool   `protobuf:\"varint,2,req,name=is_extension,json=isExtension\" json:\"is_extension,omitempty\"`\n}\n\nfunc (x *UninterpretedOption_NamePart) Reset() {\n\t*x = UninterpretedOption_NamePart{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[29]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *UninterpretedOption_NamePart) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*UninterpretedOption_NamePart) ProtoMessage() {}\n\nfunc (x *UninterpretedOption_NamePart) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[29]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use UninterpretedOption_NamePart.ProtoReflect.Descriptor instead.\nfunc (*UninterpretedOption_NamePart) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{18, 0}\n}\n\nfunc (x *UninterpretedOption_NamePart) GetNamePart() string {\n\tif x != nil && x.NamePart != nil {\n\t\treturn *x.NamePart\n\t}\n\treturn \"\"\n}\n\nfunc (x *UninterpretedOption_NamePart) GetIsExtension() bool {\n\tif x != nil && x.IsExtension != nil {\n\t\treturn *x.IsExtension\n\t}\n\treturn false\n}\n\n// A map from every known edition with a unique set of defaults to its\n// defaults. Not all editions may be contained here.  For a given edition,\n// the defaults at the closest matching edition ordered at or before it should\n// be used.  This field must be in strict ascending order by edition.\ntype FeatureSetDefaults_FeatureSetEditionDefault struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\tEdition *Edition `protobuf:\"varint,3,opt,name=edition,enum=google.protobuf.Edition\" json:\"edition,omitempty\"`\n\t// Defaults of features that can be overridden in this edition.\n\tOverridableFeatures *FeatureSet `protobuf:\"bytes,4,opt,name=overridable_features,json=overridableFeatures\" json:\"overridable_features,omitempty\"`\n\t// Defaults of features that can't be overridden in this edition.\n\tFixedFeatures *FeatureSet `protobuf:\"bytes,5,opt,name=fixed_features,json=fixedFeatures\" json:\"fixed_features,omitempty\"`\n}\n\nfunc (x *FeatureSetDefaults_FeatureSetEditionDefault) Reset() {\n\t*x = FeatureSetDefaults_FeatureSetEditionDefault{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[30]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *FeatureSetDefaults_FeatureSetEditionDefault) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*FeatureSetDefaults_FeatureSetEditionDefault) ProtoMessage() {}\n\nfunc (x *FeatureSetDefaults_FeatureSetEditionDefault) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[30]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use FeatureSetDefaults_FeatureSetEditionDefault.ProtoReflect.Descriptor instead.\nfunc (*FeatureSetDefaults_FeatureSetEditionDefault) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{20, 0}\n}\n\nfunc (x *FeatureSetDefaults_FeatureSetEditionDefault) GetEdition() Edition {\n\tif x != nil && x.Edition != nil {\n\t\treturn *x.Edition\n\t}\n\treturn Edition_EDITION_UNKNOWN\n}\n\nfunc (x *FeatureSetDefaults_FeatureSetEditionDefault) GetOverridableFeatures() *FeatureSet {\n\tif x != nil {\n\t\treturn x.OverridableFeatures\n\t}\n\treturn nil\n}\n\nfunc (x *FeatureSetDefaults_FeatureSetEditionDefault) GetFixedFeatures() *FeatureSet {\n\tif x != nil {\n\t\treturn x.FixedFeatures\n\t}\n\treturn nil\n}\n\ntype SourceCodeInfo_Location struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Identifies which part of the FileDescriptorProto was defined at this\n\t// location.\n\t//\n\t// Each element is a field number or an index.  They form a path from\n\t// the root FileDescriptorProto to the place where the definition appears.\n\t// For example, this path:\n\t//\n\t//\t[ 4, 3, 2, 7, 1 ]\n\t//\n\t// refers to:\n\t//\n\t//\tfile.message_type(3)  // 4, 3\n\t//\t    .field(7)         // 2, 7\n\t//\t    .name()           // 1\n\t//\n\t// This is because FileDescriptorProto.message_type has field number 4:\n\t//\n\t//\trepeated DescriptorProto message_type = 4;\n\t//\n\t// and DescriptorProto.field has field number 2:\n\t//\n\t//\trepeated FieldDescriptorProto field = 2;\n\t//\n\t// and FieldDescriptorProto.name has field number 1:\n\t//\n\t//\toptional string name = 1;\n\t//\n\t// Thus, the above path gives the location of a field name.  If we removed\n\t// the last element:\n\t//\n\t//\t[ 4, 3, 2, 7 ]\n\t//\n\t// this path refers to the whole field declaration (from the beginning\n\t// of the label to the terminating semicolon).\n\tPath []int32 `protobuf:\"varint,1,rep,packed,name=path\" json:\"path,omitempty\"`\n\t// Always has exactly three or four elements: start line, start column,\n\t// end line (optional, otherwise assumed same as start line), end column.\n\t// These are packed into a single field for efficiency.  Note that line\n\t// and column numbers are zero-based -- typically you will want to add\n\t// 1 to each before displaying to a user.\n\tSpan []int32 `protobuf:\"varint,2,rep,packed,name=span\" json:\"span,omitempty\"`\n\t// If this SourceCodeInfo represents a complete declaration, these are any\n\t// comments appearing before and after the declaration which appear to be\n\t// attached to the declaration.\n\t//\n\t// A series of line comments appearing on consecutive lines, with no other\n\t// tokens appearing on those lines, will be treated as a single comment.\n\t//\n\t// leading_detached_comments will keep paragraphs of comments that appear\n\t// before (but not connected to) the current element. Each paragraph,\n\t// separated by empty lines, will be one comment element in the repeated\n\t// field.\n\t//\n\t// Only the comment content is provided; comment markers (e.g. //) are\n\t// stripped out.  For block comments, leading whitespace and an asterisk\n\t// will be stripped from the beginning of each line other than the first.\n\t// Newlines are included in the output.\n\t//\n\t// Examples:\n\t//\n\t//\toptional int32 foo = 1;  // Comment attached to foo.\n\t//\t// Comment attached to bar.\n\t//\toptional int32 bar = 2;\n\t//\n\t//\toptional string baz = 3;\n\t//\t// Comment attached to baz.\n\t//\t// Another line attached to baz.\n\t//\n\t//\t// Comment attached to moo.\n\t//\t//\n\t//\t// Another line attached to moo.\n\t//\toptional double moo = 4;\n\t//\n\t//\t// Detached comment for corge. This is not leading or trailing comments\n\t//\t// to moo or corge because there are blank lines separating it from\n\t//\t// both.\n\t//\n\t//\t// Detached comment for corge paragraph 2.\n\t//\n\t//\toptional string corge = 5;\n\t//\t/* Block comment attached\n\t//\t * to corge.  Leading asterisks\n\t//\t * will be removed. */\n\t//\t/* Block comment attached to\n\t//\t * grault. */\n\t//\toptional int32 grault = 6;\n\t//\n\t//\t// ignored detached comments.\n\tLeadingComments         *string  `protobuf:\"bytes,3,opt,name=leading_comments,json=leadingComments\" json:\"leading_comments,omitempty\"`\n\tTrailingComments        *string  `protobuf:\"bytes,4,opt,name=trailing_comments,json=trailingComments\" json:\"trailing_comments,omitempty\"`\n\tLeadingDetachedComments []string `protobuf:\"bytes,6,rep,name=leading_detached_comments,json=leadingDetachedComments\" json:\"leading_detached_comments,omitempty\"`\n}\n\nfunc (x *SourceCodeInfo_Location) Reset() {\n\t*x = SourceCodeInfo_Location{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[31]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *SourceCodeInfo_Location) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*SourceCodeInfo_Location) ProtoMessage() {}\n\nfunc (x *SourceCodeInfo_Location) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[31]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use SourceCodeInfo_Location.ProtoReflect.Descriptor instead.\nfunc (*SourceCodeInfo_Location) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{21, 0}\n}\n\nfunc (x *SourceCodeInfo_Location) GetPath() []int32 {\n\tif x != nil {\n\t\treturn x.Path\n\t}\n\treturn nil\n}\n\nfunc (x *SourceCodeInfo_Location) GetSpan() []int32 {\n\tif x != nil {\n\t\treturn x.Span\n\t}\n\treturn nil\n}\n\nfunc (x *SourceCodeInfo_Location) GetLeadingComments() string {\n\tif x != nil && x.LeadingComments != nil {\n\t\treturn *x.LeadingComments\n\t}\n\treturn \"\"\n}\n\nfunc (x *SourceCodeInfo_Location) GetTrailingComments() string {\n\tif x != nil && x.TrailingComments != nil {\n\t\treturn *x.TrailingComments\n\t}\n\treturn \"\"\n}\n\nfunc (x *SourceCodeInfo_Location) GetLeadingDetachedComments() []string {\n\tif x != nil {\n\t\treturn x.LeadingDetachedComments\n\t}\n\treturn nil\n}\n\ntype GeneratedCodeInfo_Annotation struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Identifies the element in the original source .proto file. This field\n\t// is formatted the same as SourceCodeInfo.Location.path.\n\tPath []int32 `protobuf:\"varint,1,rep,packed,name=path\" json:\"path,omitempty\"`\n\t// Identifies the filesystem path to the original source .proto.\n\tSourceFile *string `protobuf:\"bytes,2,opt,name=source_file,json=sourceFile\" json:\"source_file,omitempty\"`\n\t// Identifies the starting offset in bytes in the generated code\n\t// that relates to the identified object.\n\tBegin *int32 `protobuf:\"varint,3,opt,name=begin\" json:\"begin,omitempty\"`\n\t// Identifies the ending offset in bytes in the generated code that\n\t// relates to the identified object. The end offset should be one past\n\t// the last relevant byte (so the length of the text = end - begin).\n\tEnd      *int32                                 `protobuf:\"varint,4,opt,name=end\" json:\"end,omitempty\"`\n\tSemantic *GeneratedCodeInfo_Annotation_Semantic `protobuf:\"varint,5,opt,name=semantic,enum=google.protobuf.GeneratedCodeInfo_Annotation_Semantic\" json:\"semantic,omitempty\"`\n}\n\nfunc (x *GeneratedCodeInfo_Annotation) Reset() {\n\t*x = GeneratedCodeInfo_Annotation{}\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[32]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *GeneratedCodeInfo_Annotation) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*GeneratedCodeInfo_Annotation) ProtoMessage() {}\n\nfunc (x *GeneratedCodeInfo_Annotation) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_descriptor_proto_msgTypes[32]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use GeneratedCodeInfo_Annotation.ProtoReflect.Descriptor instead.\nfunc (*GeneratedCodeInfo_Annotation) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{22, 0}\n}\n\nfunc (x *GeneratedCodeInfo_Annotation) GetPath() []int32 {\n\tif x != nil {\n\t\treturn x.Path\n\t}\n\treturn nil\n}\n\nfunc (x *GeneratedCodeInfo_Annotation) GetSourceFile() string {\n\tif x != nil && x.SourceFile != nil {\n\t\treturn *x.SourceFile\n\t}\n\treturn \"\"\n}\n\nfunc (x *GeneratedCodeInfo_Annotation) GetBegin() int32 {\n\tif x != nil && x.Begin != nil {\n\t\treturn *x.Begin\n\t}\n\treturn 0\n}\n\nfunc (x *GeneratedCodeInfo_Annotation) GetEnd() int32 {\n\tif x != nil && x.End != nil {\n\t\treturn *x.End\n\t}\n\treturn 0\n}\n\nfunc (x *GeneratedCodeInfo_Annotation) GetSemantic() GeneratedCodeInfo_Annotation_Semantic {\n\tif x != nil && x.Semantic != nil {\n\t\treturn *x.Semantic\n\t}\n\treturn GeneratedCodeInfo_Annotation_NONE\n}\n\nvar File_google_protobuf_descriptor_proto protoreflect.FileDescriptor\n\nvar file_google_protobuf_descriptor_proto_rawDesc = []byte{\n\t0x0a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,\n\t0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f,\n\t0x74, 0x6f, 0x12, 0x0f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,\n\t0x62, 0x75, 0x66, 0x22, 0x4d, 0x0a, 0x11, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72,\n\t0x69, 0x70, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x65,\n\t0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,\n\t0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73,\n\t0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x04, 0x66, 0x69,\n\t0x6c, 0x65, 0x22, 0x98, 0x05, 0x0a, 0x13, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72,\n\t0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,\n\t0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18,\n\t0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x65,\n\t0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65,\n\t0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x2b, 0x0a, 0x11, 0x70, 0x75, 0x62, 0x6c,\n\t0x69, 0x63, 0x5f, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0a, 0x20,\n\t0x03, 0x28, 0x05, 0x52, 0x10, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x44, 0x65, 0x70, 0x65, 0x6e,\n\t0x64, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x77, 0x65, 0x61, 0x6b, 0x5f, 0x64, 0x65,\n\t0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e,\n\t0x77, 0x65, 0x61, 0x6b, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x43,\n\t0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04,\n\t0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,\n\t0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f,\n\t0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54,\n\t0x79, 0x70, 0x65, 0x12, 0x41, 0x0a, 0x09, 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65,\n\t0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,\n\t0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73,\n\t0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x08, 0x65, 0x6e,\n\t0x75, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x41, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,\n\t0x65, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,\n\t0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,\n\t0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f,\n\t0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x43, 0x0a, 0x09, 0x65, 0x78, 0x74,\n\t0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67,\n\t0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46,\n\t0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72,\n\t0x6f, 0x74, 0x6f, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x36,\n\t0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32,\n\t0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,\n\t0x66, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f,\n\t0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x49, 0x0a, 0x10, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,\n\t0x5f, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b,\n\t0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,\n\t0x75, 0x66, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66,\n\t0x6f, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66,\n\t0x6f, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28,\n\t0x09, 0x52, 0x06, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x12, 0x32, 0x0a, 0x07, 0x65, 0x64, 0x69,\n\t0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x67, 0x6f, 0x6f,\n\t0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x64, 0x69,\n\t0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xb9, 0x06,\n\t0x0a, 0x0f, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74,\n\t0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x02,\n\t0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,\n\t0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63,\n\t0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x05, 0x66, 0x69, 0x65,\n\t0x6c, 0x64, 0x12, 0x43, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18,\n\t0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,\n\t0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73,\n\t0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x09, 0x65, 0x78,\n\t0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x0b, 0x6e, 0x65, 0x73, 0x74, 0x65,\n\t0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67,\n\t0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44,\n\t0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0a,\n\t0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x41, 0x0a, 0x09, 0x65, 0x6e,\n\t0x75, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e,\n\t0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,\n\t0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72,\n\t0x6f, 0x74, 0x6f, 0x52, 0x08, 0x65, 0x6e, 0x75, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x58, 0x0a,\n\t0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65,\n\t0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,\n\t0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,\n\t0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,\n\t0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,\n\t0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66,\n\t0x5f, 0x64, 0x65, 0x63, 0x6c, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f,\n\t0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x6e,\n\t0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f,\n\t0x74, 0x6f, 0x52, 0x09, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x63, 0x6c, 0x12, 0x39, 0x0a,\n\t0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f,\n\t0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,\n\t0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52,\n\t0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x55, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x65,\n\t0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b,\n\t0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,\n\t0x75, 0x66, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f,\n\t0x74, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65,\n\t0x52, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12,\n\t0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65,\n\t0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64,\n\t0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x7a, 0x0a, 0x0e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,\n\t0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18,\n\t0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03,\n\t0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x12, 0x40,\n\t0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,\n\t0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,\n\t0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65,\n\t0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,\n\t0x1a, 0x37, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67,\n\t0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,\n\t0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02,\n\t0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0xcc, 0x04, 0x0a, 0x15, 0x45, 0x78,\n\t0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69,\n\t0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72,\n\t0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03,\n\t0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,\n\t0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74,\n\t0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65,\n\t0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x59, 0x0a,\n\t0x0b, 0x64, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03,\n\t0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,\n\t0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61,\n\t0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x6c, 0x61,\n\t0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0x88, 0x01, 0x02, 0x52, 0x0b, 0x64, 0x65, 0x63,\n\t0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74,\n\t0x75, 0x72, 0x65, 0x73, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f,\n\t0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61,\n\t0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,\n\t0x73, 0x12, 0x6d, 0x0a, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,\n\t0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,\n\t0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73,\n\t0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e,\n\t0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74,\n\t0x65, 0x3a, 0x0a, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x42, 0x03, 0x88,\n\t0x01, 0x02, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,\n\t0x1a, 0x94, 0x01, 0x0a, 0x0b, 0x44, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,\n\t0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,\n\t0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x75, 0x6c, 0x6c,\n\t0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x75, 0x6c,\n\t0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20,\n\t0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73,\n\t0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x73,\n\t0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65,\n\t0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65,\n\t0x64, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x22, 0x34, 0x0a, 0x11, 0x56, 0x65, 0x72, 0x69, 0x66,\n\t0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b,\n\t0x44, 0x45, 0x43, 0x4c, 0x41, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x0e, 0x0a,\n\t0x0a, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x01, 0x2a, 0x09, 0x08,\n\t0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0xc1, 0x06, 0x0a, 0x14, 0x46, 0x69, 0x65,\n\t0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74,\n\t0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18,\n\t0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x41, 0x0a,\n\t0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67,\n\t0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46,\n\t0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72,\n\t0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c,\n\t0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a,\n\t0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,\n\t0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72,\n\t0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65,\n\t0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20,\n\t0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a,\n\t0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x66,\n\t0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09,\n\t0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f,\n\t0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x09, 0x20,\n\t0x01, 0x28, 0x05, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12,\n\t0x1b, 0x0a, 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01,\n\t0x28, 0x09, 0x52, 0x08, 0x6a, 0x73, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x07,\n\t0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e,\n\t0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,\n\t0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70,\n\t0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x5f,\n\t0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e,\n\t0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0xb6,\n\t0x02, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f,\n\t0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45,\n\t0x5f, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45,\n\t0x5f, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45,\n\t0x5f, 0x55, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50,\n\t0x45, 0x5f, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x05, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50,\n\t0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x54,\n\t0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x33, 0x32, 0x10, 0x07, 0x12, 0x0d, 0x0a,\n\t0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, 0x4c, 0x10, 0x08, 0x12, 0x0f, 0x0a, 0x0b,\n\t0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x09, 0x12, 0x0e, 0x0a,\n\t0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x0a, 0x12, 0x10, 0x0a,\n\t0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x0b, 0x12,\n\t0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x0c, 0x12,\n\t0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x0d,\n\t0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x0e, 0x12,\n\t0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x46, 0x49, 0x58, 0x45, 0x44, 0x33, 0x32,\n\t0x10, 0x0f, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x46, 0x49, 0x58, 0x45,\n\t0x44, 0x36, 0x34, 0x10, 0x10, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49,\n\t0x4e, 0x54, 0x33, 0x32, 0x10, 0x11, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53,\n\t0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x12, 0x22, 0x43, 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c,\n\t0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e,\n\t0x41, 0x4c, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45,\n\t0x50, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45,\n\t0x4c, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x10, 0x02, 0x22, 0x63, 0x0a, 0x14,\n\t0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50,\n\t0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,\n\t0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69,\n\t0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67,\n\t0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f,\n\t0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,\n\t0x73, 0x22, 0xe3, 0x02, 0x0a, 0x13, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69,\n\t0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,\n\t0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a,\n\t0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67,\n\t0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45,\n\t0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,\n\t0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x36,\n\t0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,\n\t0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,\n\t0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f,\n\t0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5d, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76,\n\t0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36,\n\t0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,\n\t0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50,\n\t0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65,\n\t0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64,\n\t0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65,\n\t0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65,\n\t0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x3b, 0x0a, 0x11, 0x45, 0x6e,\n\t0x75, 0x6d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12,\n\t0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05,\n\t0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01,\n\t0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x83, 0x01, 0x0a, 0x18, 0x45, 0x6e, 0x75, 0x6d,\n\t0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50,\n\t0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,\n\t0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62,\n\t0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72,\n\t0x12, 0x3b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28,\n\t0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,\n\t0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74,\n\t0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xa7, 0x01,\n\t0x0a, 0x16, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,\n\t0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,\n\t0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x06,\n\t0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67,\n\t0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d,\n\t0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50,\n\t0x72, 0x6f, 0x74, 0x6f, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x39, 0x0a, 0x07,\n\t0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e,\n\t0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,\n\t0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07,\n\t0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x89, 0x02, 0x0a, 0x15, 0x4d, 0x65, 0x74, 0x68,\n\t0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74,\n\t0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,\n\t0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x74,\n\t0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74,\n\t0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x74,\n\t0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75,\n\t0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,\n\t0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,\n\t0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f,\n\t0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12,\n\t0x30, 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d,\n\t0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65,\n\t0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e,\n\t0x67, 0x12, 0x30, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x72, 0x65,\n\t0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c,\n\t0x73, 0x65, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d,\n\t0x69, 0x6e, 0x67, 0x22, 0xad, 0x09, 0x0a, 0x0b, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69,\n\t0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x70, 0x61, 0x63, 0x6b,\n\t0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6a, 0x61, 0x76, 0x61, 0x50,\n\t0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6f,\n\t0x75, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08,\n\t0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6a, 0x61, 0x76, 0x61, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x43,\n\t0x6c, 0x61, 0x73, 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x13, 0x6a, 0x61, 0x76, 0x61,\n\t0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18,\n\t0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x11, 0x6a, 0x61,\n\t0x76, 0x61, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12,\n\t0x44, 0x0a, 0x1d, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65,\n\t0x5f, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x73, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68,\n\t0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x19, 0x6a, 0x61, 0x76, 0x61,\n\t0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x73, 0x41, 0x6e,\n\t0x64, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3a, 0x0a, 0x16, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x73, 0x74,\n\t0x72, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x75, 0x74, 0x66, 0x38, 0x18,\n\t0x1b, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61,\n\t0x76, 0x61, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x74, 0x66,\n\t0x38, 0x12, 0x53, 0x0a, 0x0c, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x5f, 0x66, 0x6f,\n\t0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,\n\t0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70,\n\t0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f,\n\t0x64, 0x65, 0x3a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, 0x52, 0x0b, 0x6f, 0x70, 0x74, 0x69, 0x6d,\n\t0x69, 0x7a, 0x65, 0x46, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x6f, 0x5f, 0x70, 0x61, 0x63,\n\t0x6b, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x6f, 0x50, 0x61,\n\t0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x35, 0x0a, 0x13, 0x63, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x65,\n\t0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x10, 0x20, 0x01,\n\t0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x11, 0x63, 0x63, 0x47, 0x65, 0x6e,\n\t0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x15,\n\t0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72,\n\t0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c,\n\t0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53,\n\t0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x13, 0x70, 0x79, 0x5f, 0x67, 0x65,\n\t0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x12,\n\t0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x11, 0x70, 0x79, 0x47,\n\t0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x25,\n\t0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01,\n\t0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65,\n\t0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x10, 0x63, 0x63, 0x5f, 0x65, 0x6e, 0x61, 0x62,\n\t0x6c, 0x65, 0x5f, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x08, 0x3a,\n\t0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x0e, 0x63, 0x63, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41,\n\t0x72, 0x65, 0x6e, 0x61, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x6f, 0x62, 0x6a, 0x63, 0x5f, 0x63, 0x6c,\n\t0x61, 0x73, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x24, 0x20, 0x01, 0x28, 0x09,\n\t0x52, 0x0f, 0x6f, 0x62, 0x6a, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69,\n\t0x78, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x73, 0x68, 0x61, 0x72, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65,\n\t0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x73, 0x68,\n\t0x61, 0x72, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c,\n\t0x73, 0x77, 0x69, 0x66, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x27, 0x20, 0x01,\n\t0x28, 0x09, 0x52, 0x0b, 0x73, 0x77, 0x69, 0x66, 0x74, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12,\n\t0x28, 0x0a, 0x10, 0x70, 0x68, 0x70, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x70, 0x72, 0x65,\n\t0x66, 0x69, 0x78, 0x18, 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x68, 0x70, 0x43, 0x6c,\n\t0x61, 0x73, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x68, 0x70,\n\t0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x29, 0x20, 0x01, 0x28, 0x09,\n\t0x52, 0x0c, 0x70, 0x68, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x34,\n\t0x0a, 0x16, 0x70, 0x68, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6e,\n\t0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14,\n\t0x70, 0x68, 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73,\n\t0x70, 0x61, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x75, 0x62, 0x79, 0x5f, 0x70, 0x61, 0x63,\n\t0x6b, 0x61, 0x67, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x75, 0x62, 0x79,\n\t0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75,\n\t0x72, 0x65, 0x73, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67,\n\t0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74,\n\t0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73,\n\t0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65,\n\t0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32,\n\t0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,\n\t0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f,\n\t0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72,\n\t0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x0a, 0x0c, 0x4f, 0x70,\n\t0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x50,\n\t0x45, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x49,\n\t0x5a, 0x45, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x4c, 0x49, 0x54, 0x45, 0x5f, 0x52, 0x55, 0x4e,\n\t0x54, 0x49, 0x4d, 0x45, 0x10, 0x03, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80,\n\t0x02, 0x4a, 0x04, 0x08, 0x2a, 0x10, 0x2b, 0x4a, 0x04, 0x08, 0x26, 0x10, 0x27, 0x52, 0x14, 0x70,\n\t0x68, 0x70, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69,\n\t0x63, 0x65, 0x73, 0x22, 0xf4, 0x03, 0x0a, 0x0e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f,\n\t0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3c, 0x0a, 0x17, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,\n\t0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x77, 0x69, 0x72, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61,\n\t0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x14,\n\t0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x57, 0x69, 0x72, 0x65, 0x46, 0x6f,\n\t0x72, 0x6d, 0x61, 0x74, 0x12, 0x4c, 0x0a, 0x1f, 0x6e, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x6e, 0x64,\n\t0x61, 0x72, 0x64, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x61,\n\t0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66,\n\t0x61, 0x6c, 0x73, 0x65, 0x52, 0x1c, 0x6e, 0x6f, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64,\n\t0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73,\n\t0x6f, 0x72, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64,\n\t0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64,\n\t0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x70,\n\t0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6d, 0x61,\n\t0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x56, 0x0a, 0x26, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63,\n\t0x61, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x6a, 0x73, 0x6f, 0x6e,\n\t0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73,\n\t0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x22, 0x64, 0x65, 0x70, 0x72,\n\t0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x4a, 0x73, 0x6f, 0x6e,\n\t0x46, 0x69, 0x65, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x12, 0x37,\n\t0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b,\n\t0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,\n\t0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, 0x66,\n\t0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74,\n\t0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18,\n\t0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,\n\t0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72,\n\t0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e,\n\t0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f,\n\t0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x04,\n\t0x10, 0x05, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x4a, 0x04,\n\t0x08, 0x08, 0x10, 0x09, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x22, 0x9d, 0x0d, 0x0a, 0x0c, 0x46,\n\t0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, 0x05, 0x63,\n\t0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f,\n\t0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65,\n\t0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x54, 0x79, 0x70, 0x65, 0x3a,\n\t0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x52, 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16,\n\t0x0a, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06,\n\t0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x47, 0x0a, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, 0x65,\n\t0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,\n\t0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70,\n\t0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x09, 0x4a, 0x53,\n\t0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x52, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, 0x65, 0x12,\n\t0x19, 0x0a, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66,\n\t0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x12, 0x2e, 0x0a, 0x0f, 0x75, 0x6e,\n\t0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x7a, 0x79, 0x18, 0x0f, 0x20,\n\t0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0e, 0x75, 0x6e, 0x76, 0x65,\n\t0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x4c, 0x61, 0x7a, 0x79, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65,\n\t0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05,\n\t0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65,\n\t0x64, 0x12, 0x19, 0x0a, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a,\n\t0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x12, 0x28, 0x0a, 0x0c,\n\t0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x18, 0x10, 0x20, 0x01,\n\t0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x62, 0x75, 0x67,\n\t0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x12, 0x4b, 0x0a, 0x09, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74,\n\t0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67,\n\t0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c,\n\t0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52,\n\t0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74,\n\t0x69, 0x6f, 0x6e, 0x12, 0x48, 0x0a, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x13,\n\t0x20, 0x03, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,\n\t0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69,\n\t0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74,\n\t0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x57, 0x0a,\n\t0x10, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74,\n\t0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,\n\t0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f,\n\t0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65,\n\t0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x0f, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65,\n\t0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72,\n\t0x65, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,\n\t0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75,\n\t0x72, 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12,\n\t0x55, 0x0a, 0x0f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f,\n\t0x72, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,\n\t0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64,\n\t0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53,\n\t0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x0e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53,\n\t0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65,\n\t0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7,\n\t0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,\n\t0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70,\n\t0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69,\n\t0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e,\n\t0x1a, 0x5a, 0x0a, 0x0e, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x66, 0x61, 0x75,\n\t0x6c, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20,\n\t0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,\n\t0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x65,\n\t0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,\n\t0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x96, 0x02, 0x0a,\n\t0x0e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x12,\n\t0x47, 0x0a, 0x12, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x72, 0x6f,\n\t0x64, 0x75, 0x63, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x67, 0x6f,\n\t0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x64,\n\t0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e,\n\t0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x64, 0x12, 0x47, 0x0a, 0x12, 0x65, 0x64, 0x69, 0x74,\n\t0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02,\n\t0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,\n\t0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11,\n\t0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65,\n\t0x64, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,\n\t0x5f, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12,\n\t0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x61, 0x72, 0x6e, 0x69,\n\t0x6e, 0x67, 0x12, 0x41, 0x0a, 0x0f, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65,\n\t0x6d, 0x6f, 0x76, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x67, 0x6f,\n\t0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x64,\n\t0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65,\n\t0x6d, 0x6f, 0x76, 0x65, 0x64, 0x22, 0x2f, 0x0a, 0x05, 0x43, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a,\n\t0x0a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x4f,\n\t0x52, 0x44, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x50,\n\t0x49, 0x45, 0x43, 0x45, 0x10, 0x02, 0x22, 0x35, 0x0a, 0x06, 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65,\n\t0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x53, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x10, 0x00, 0x12,\n\t0x0d, 0x0a, 0x09, 0x4a, 0x53, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0d,\n\t0x0a, 0x09, 0x4a, 0x53, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x02, 0x22, 0x55, 0x0a,\n\t0x0f, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e,\n\t0x12, 0x15, 0x0a, 0x11, 0x52, 0x45, 0x54, 0x45, 0x4e, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e,\n\t0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x52, 0x45, 0x54, 0x45, 0x4e,\n\t0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x01, 0x12, 0x14,\n\t0x0a, 0x10, 0x52, 0x45, 0x54, 0x45, 0x4e, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x4f, 0x55, 0x52,\n\t0x43, 0x45, 0x10, 0x02, 0x22, 0x8c, 0x02, 0x0a, 0x10, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54,\n\t0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x52,\n\t0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e,\n\t0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50,\n\t0x45, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x41, 0x52, 0x47,\n\t0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x4e, 0x53, 0x49, 0x4f,\n\t0x4e, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x52,\n\t0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45,\n\t0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50,\n\t0x45, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x41, 0x52,\n\t0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x4e, 0x45, 0x4f, 0x46, 0x10, 0x05,\n\t0x12, 0x14, 0x0a, 0x10, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f,\n\t0x45, 0x4e, 0x55, 0x4d, 0x10, 0x06, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54,\n\t0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59,\n\t0x10, 0x07, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50,\n\t0x45, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, 0x54,\n\t0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f,\n\t0x44, 0x10, 0x09, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04,\n\t0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x12, 0x10, 0x13, 0x22, 0xac, 0x01, 0x0a, 0x0c, 0x4f,\n\t0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x37, 0x0a, 0x08, 0x66,\n\t0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e,\n\t0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,\n\t0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74,\n\t0x75, 0x72, 0x65, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70,\n\t0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20,\n\t0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,\n\t0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65,\n\t0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74,\n\t0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09,\n\t0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0xd1, 0x02, 0x0a, 0x0b, 0x45, 0x6e,\n\t0x75, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x6c, 0x6c,\n\t0x6f, 0x77, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a,\n\t0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65,\n\t0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05,\n\t0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65,\n\t0x64, 0x12, 0x56, 0x0a, 0x26, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f,\n\t0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c,\n\t0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28,\n\t0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x22, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65,\n\t0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64,\n\t0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61,\n\t0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f,\n\t0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65,\n\t0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72,\n\t0x65, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65,\n\t0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28,\n\t0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,\n\t0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65,\n\t0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72,\n\t0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8,\n\t0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x22, 0xd8, 0x02,\n\t0x0a, 0x10, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f,\n\t0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64,\n\t0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64,\n\t0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61,\n\t0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f,\n\t0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65,\n\t0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72,\n\t0x65, 0x73, 0x12, 0x28, 0x0a, 0x0c, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x72, 0x65, 0x64, 0x61,\n\t0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52,\n\t0x0b, 0x64, 0x65, 0x62, 0x75, 0x67, 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x12, 0x55, 0x0a, 0x0f,\n\t0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x18,\n\t0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,\n\t0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74,\n\t0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x75, 0x70, 0x70,\n\t0x6f, 0x72, 0x74, 0x52, 0x0e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x75, 0x70, 0x70,\n\t0x6f, 0x72, 0x74, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72,\n\t0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03,\n\t0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,\n\t0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74,\n\t0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65,\n\t0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08,\n\t0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0xd5, 0x01, 0x0a, 0x0e, 0x53, 0x65, 0x72,\n\t0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x37, 0x0a, 0x08, 0x66,\n\t0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e,\n\t0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,\n\t0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74,\n\t0x75, 0x72, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74,\n\t0x65, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52,\n\t0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x58, 0x0a, 0x14, 0x75,\n\t0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74,\n\t0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f,\n\t0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69,\n\t0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e,\n\t0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f,\n\t0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02,\n\t0x22, 0x99, 0x03, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f,\n\t0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64,\n\t0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64,\n\t0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x71, 0x0a, 0x11, 0x69, 0x64, 0x65,\n\t0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x22,\n\t0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,\n\t0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74,\n\t0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x49, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79,\n\t0x4c, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x13, 0x49, 0x44, 0x45, 0x4d, 0x50, 0x4f, 0x54, 0x45, 0x4e,\n\t0x43, 0x59, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x52, 0x10, 0x69, 0x64, 0x65, 0x6d,\n\t0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x37, 0x0a, 0x08,\n\t0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b,\n\t0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,\n\t0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, 0x66, 0x65, 0x61,\n\t0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72,\n\t0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07,\n\t0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,\n\t0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72,\n\t0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e,\n\t0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22,\n\t0x50, 0x0a, 0x10, 0x49, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65,\n\t0x76, 0x65, 0x6c, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x44, 0x45, 0x4d, 0x50, 0x4f, 0x54, 0x45, 0x4e,\n\t0x43, 0x59, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f,\n\t0x4e, 0x4f, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x5f, 0x45, 0x46, 0x46, 0x45, 0x43, 0x54, 0x53, 0x10,\n\t0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x44, 0x45, 0x4d, 0x50, 0x4f, 0x54, 0x45, 0x4e, 0x54, 0x10,\n\t0x02, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x9a, 0x03, 0x0a,\n\t0x13, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70,\n\t0x74, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x03,\n\t0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,\n\t0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74,\n\t0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x72,\n\t0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x64, 0x65, 0x6e, 0x74,\n\t0x69, 0x66, 0x69, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,\n\t0x09, 0x52, 0x0f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x56, 0x61, 0x6c,\n\t0x75, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69,\n\t0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10,\n\t0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65,\n\t0x12, 0x2c, 0x0a, 0x12, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x74,\n\t0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6e, 0x65,\n\t0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21,\n\t0x0a, 0x0c, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06,\n\t0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75,\n\t0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75,\n\t0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56,\n\t0x61, 0x6c, 0x75, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74,\n\t0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61,\n\t0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x4a, 0x0a,\n\t0x08, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x61, 0x6d,\n\t0x65, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x61,\n\t0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x65, 0x78, 0x74,\n\t0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x02, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73,\n\t0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xa7, 0x0a, 0x0a, 0x0a, 0x46, 0x65,\n\t0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x12, 0x91, 0x01, 0x0a, 0x0e, 0x66, 0x69, 0x65,\n\t0x6c, 0x64, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,\n\t0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,\n\t0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x2e, 0x46,\n\t0x69, 0x65, 0x6c, 0x64, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x3f, 0x88, 0x01,\n\t0x01, 0x98, 0x01, 0x04, 0x98, 0x01, 0x01, 0xa2, 0x01, 0x0d, 0x12, 0x08, 0x45, 0x58, 0x50, 0x4c,\n\t0x49, 0x43, 0x49, 0x54, 0x18, 0xe6, 0x07, 0xa2, 0x01, 0x0d, 0x12, 0x08, 0x49, 0x4d, 0x50, 0x4c,\n\t0x49, 0x43, 0x49, 0x54, 0x18, 0xe7, 0x07, 0xa2, 0x01, 0x0d, 0x12, 0x08, 0x45, 0x58, 0x50, 0x4c,\n\t0x49, 0x43, 0x49, 0x54, 0x18, 0xe8, 0x07, 0xb2, 0x01, 0x03, 0x08, 0xe8, 0x07, 0x52, 0x0d, 0x66,\n\t0x69, 0x65, 0x6c, 0x64, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x6c, 0x0a, 0x09,\n\t0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32,\n\t0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,\n\t0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x2e, 0x45, 0x6e, 0x75,\n\t0x6d, 0x54, 0x79, 0x70, 0x65, 0x42, 0x29, 0x88, 0x01, 0x01, 0x98, 0x01, 0x06, 0x98, 0x01, 0x01,\n\t0xa2, 0x01, 0x0b, 0x12, 0x06, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x18, 0xe6, 0x07, 0xa2, 0x01,\n\t0x09, 0x12, 0x04, 0x4f, 0x50, 0x45, 0x4e, 0x18, 0xe7, 0x07, 0xb2, 0x01, 0x03, 0x08, 0xe8, 0x07,\n\t0x52, 0x08, 0x65, 0x6e, 0x75, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x98, 0x01, 0x0a, 0x17, 0x72,\n\t0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x65, 0x6e,\n\t0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x67,\n\t0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46,\n\t0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x2e, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74,\n\t0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x42,\n\t0x2d, 0x88, 0x01, 0x01, 0x98, 0x01, 0x04, 0x98, 0x01, 0x01, 0xa2, 0x01, 0x0d, 0x12, 0x08, 0x45,\n\t0x58, 0x50, 0x41, 0x4e, 0x44, 0x45, 0x44, 0x18, 0xe6, 0x07, 0xa2, 0x01, 0x0b, 0x12, 0x06, 0x50,\n\t0x41, 0x43, 0x4b, 0x45, 0x44, 0x18, 0xe7, 0x07, 0xb2, 0x01, 0x03, 0x08, 0xe8, 0x07, 0x52, 0x15,\n\t0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x6e, 0x63,\n\t0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x7e, 0x0a, 0x0f, 0x75, 0x74, 0x66, 0x38, 0x5f, 0x76, 0x61,\n\t0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a,\n\t0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,\n\t0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x2e, 0x55, 0x74, 0x66, 0x38,\n\t0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x29, 0x88, 0x01, 0x01, 0x98,\n\t0x01, 0x04, 0x98, 0x01, 0x01, 0xa2, 0x01, 0x09, 0x12, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x18, 0xe6,\n\t0x07, 0xa2, 0x01, 0x0b, 0x12, 0x06, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, 0x18, 0xe7, 0x07, 0xb2,\n\t0x01, 0x03, 0x08, 0xe8, 0x07, 0x52, 0x0e, 0x75, 0x74, 0x66, 0x38, 0x56, 0x61, 0x6c, 0x69, 0x64,\n\t0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x7e, 0x0a, 0x10, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,\n\t0x5f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32,\n\t0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,\n\t0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x2e, 0x4d, 0x65, 0x73,\n\t0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x26, 0x88, 0x01,\n\t0x01, 0x98, 0x01, 0x04, 0x98, 0x01, 0x01, 0xa2, 0x01, 0x14, 0x12, 0x0f, 0x4c, 0x45, 0x4e, 0x47,\n\t0x54, 0x48, 0x5f, 0x50, 0x52, 0x45, 0x46, 0x49, 0x58, 0x45, 0x44, 0x18, 0xe6, 0x07, 0xb2, 0x01,\n\t0x03, 0x08, 0xe8, 0x07, 0x52, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x63,\n\t0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x82, 0x01, 0x0a, 0x0b, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x66,\n\t0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x67, 0x6f,\n\t0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65,\n\t0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x2e, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x6f, 0x72,\n\t0x6d, 0x61, 0x74, 0x42, 0x39, 0x88, 0x01, 0x01, 0x98, 0x01, 0x03, 0x98, 0x01, 0x06, 0x98, 0x01,\n\t0x01, 0xa2, 0x01, 0x17, 0x12, 0x12, 0x4c, 0x45, 0x47, 0x41, 0x43, 0x59, 0x5f, 0x42, 0x45, 0x53,\n\t0x54, 0x5f, 0x45, 0x46, 0x46, 0x4f, 0x52, 0x54, 0x18, 0xe6, 0x07, 0xa2, 0x01, 0x0a, 0x12, 0x05,\n\t0x41, 0x4c, 0x4c, 0x4f, 0x57, 0x18, 0xe7, 0x07, 0xb2, 0x01, 0x03, 0x08, 0xe8, 0x07, 0x52, 0x0a,\n\t0x6a, 0x73, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0x5c, 0x0a, 0x0d, 0x46, 0x69,\n\t0x65, 0x6c, 0x64, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x46,\n\t0x49, 0x45, 0x4c, 0x44, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x55, 0x4e,\n\t0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x45, 0x58, 0x50, 0x4c, 0x49,\n\t0x43, 0x49, 0x54, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x49, 0x4d, 0x50, 0x4c, 0x49, 0x43, 0x49,\n\t0x54, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x45, 0x47, 0x41, 0x43, 0x59, 0x5f, 0x52, 0x45,\n\t0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x10, 0x03, 0x22, 0x37, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d,\n\t0x54, 0x79, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x54, 0x59, 0x50,\n\t0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x4f,\n\t0x50, 0x45, 0x4e, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x10,\n\t0x02, 0x22, 0x56, 0x0a, 0x15, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x65,\n\t0x6c, 0x64, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x23, 0x0a, 0x1f, 0x52, 0x45,\n\t0x50, 0x45, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x45, 0x4e, 0x43,\n\t0x4f, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12,\n\t0x0a, 0x0a, 0x06, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x45,\n\t0x58, 0x50, 0x41, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x02, 0x22, 0x49, 0x0a, 0x0e, 0x55, 0x74, 0x66,\n\t0x38, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x17, 0x55,\n\t0x54, 0x46, 0x38, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55,\n\t0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x56, 0x45, 0x52, 0x49,\n\t0x46, 0x59, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x03, 0x22, 0x04,\n\t0x08, 0x01, 0x10, 0x01, 0x22, 0x53, 0x0a, 0x0f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45,\n\t0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x1c, 0x0a, 0x18, 0x4d, 0x45, 0x53, 0x53, 0x41,\n\t0x47, 0x45, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x55, 0x4e, 0x4b, 0x4e,\n\t0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x45, 0x4e, 0x47, 0x54, 0x48, 0x5f,\n\t0x50, 0x52, 0x45, 0x46, 0x49, 0x58, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x45,\n\t0x4c, 0x49, 0x4d, 0x49, 0x54, 0x45, 0x44, 0x10, 0x02, 0x22, 0x48, 0x0a, 0x0a, 0x4a, 0x73, 0x6f,\n\t0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x17, 0x0a, 0x13, 0x4a, 0x53, 0x4f, 0x4e, 0x5f,\n\t0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00,\n\t0x12, 0x09, 0x0a, 0x05, 0x41, 0x4c, 0x4c, 0x4f, 0x57, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x4c,\n\t0x45, 0x47, 0x41, 0x43, 0x59, 0x5f, 0x42, 0x45, 0x53, 0x54, 0x5f, 0x45, 0x46, 0x46, 0x4f, 0x52,\n\t0x54, 0x10, 0x02, 0x2a, 0x06, 0x08, 0xe8, 0x07, 0x10, 0x8b, 0x4e, 0x2a, 0x06, 0x08, 0x8b, 0x4e,\n\t0x10, 0x90, 0x4e, 0x2a, 0x06, 0x08, 0x90, 0x4e, 0x10, 0x91, 0x4e, 0x4a, 0x06, 0x08, 0xe7, 0x07,\n\t0x10, 0xe8, 0x07, 0x22, 0xef, 0x03, 0x0a, 0x12, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53,\n\t0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x08, 0x64, 0x65,\n\t0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67,\n\t0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46,\n\t0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74,\n\t0x73, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x45, 0x64, 0x69, 0x74,\n\t0x69, 0x6f, 0x6e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x08, 0x64, 0x65, 0x66, 0x61,\n\t0x75, 0x6c, 0x74, 0x73, 0x12, 0x41, 0x0a, 0x0f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f,\n\t0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e,\n\t0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,\n\t0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d,\n\t0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x69, 0x6d,\n\t0x75, 0x6d, 0x5f, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e,\n\t0x32, 0x18, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,\n\t0x75, 0x66, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x69,\n\t0x6d, 0x75, 0x6d, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xf8, 0x01, 0x0a, 0x18, 0x46,\n\t0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e,\n\t0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x65, 0x64, 0x69, 0x74, 0x69,\n\t0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,\n\t0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x69,\n\t0x6f, 0x6e, 0x52, 0x07, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4e, 0x0a, 0x14, 0x6f,\n\t0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75,\n\t0x72, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67,\n\t0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74,\n\t0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x52, 0x13, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x61,\n\t0x62, 0x6c, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x66,\n\t0x69, 0x78, 0x65, 0x64, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x05, 0x20,\n\t0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,\n\t0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74,\n\t0x52, 0x0d, 0x66, 0x69, 0x78, 0x65, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x4a,\n\t0x04, 0x08, 0x01, 0x10, 0x02, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x52, 0x08, 0x66, 0x65, 0x61,\n\t0x74, 0x75, 0x72, 0x65, 0x73, 0x22, 0xa7, 0x02, 0x0a, 0x0e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65,\n\t0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x44, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61,\n\t0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f,\n\t0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x6f, 0x75,\n\t0x72, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4c, 0x6f, 0x63, 0x61,\n\t0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xce,\n\t0x01, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x04, 0x70,\n\t0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x70,\n\t0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x04, 0x73, 0x70, 0x61, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28,\n\t0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x73, 0x70, 0x61, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x6c,\n\t0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18,\n\t0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f,\n\t0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x69,\n\t0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28,\n\t0x09, 0x52, 0x10, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x65,\n\t0x6e, 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x19, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x64,\n\t0x65, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73,\n\t0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x17, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x44,\n\t0x65, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22,\n\t0xd0, 0x02, 0x0a, 0x11, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64,\n\t0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4d, 0x0a, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74,\n\t0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67,\n\t0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x6e, 0x65,\n\t0x72, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x6e,\n\t0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61,\n\t0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xeb, 0x01, 0x0a, 0x0a, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74,\n\t0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28,\n\t0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x73,\n\t0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,\n\t0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05,\n\t0x62, 0x65, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x62, 0x65, 0x67,\n\t0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52,\n\t0x03, 0x65, 0x6e, 0x64, 0x12, 0x52, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63,\n\t0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,\n\t0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74,\n\t0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74,\n\t0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x52, 0x08,\n\t0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x22, 0x28, 0x0a, 0x08, 0x53, 0x65, 0x6d, 0x61,\n\t0x6e, 0x74, 0x69, 0x63, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x07,\n\t0x0a, 0x03, 0x53, 0x45, 0x54, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x4c, 0x49, 0x41, 0x53,\n\t0x10, 0x02, 0x2a, 0xa7, 0x02, 0x0a, 0x07, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x13,\n\t0x0a, 0x0f, 0x45, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57,\n\t0x4e, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c,\n\t0x45, 0x47, 0x41, 0x43, 0x59, 0x10, 0x84, 0x07, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x44, 0x49, 0x54,\n\t0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x32, 0x10, 0xe6, 0x07, 0x12, 0x13, 0x0a,\n\t0x0e, 0x45, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x33, 0x10,\n\t0xe7, 0x07, 0x12, 0x11, 0x0a, 0x0c, 0x45, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x32, 0x30,\n\t0x32, 0x33, 0x10, 0xe8, 0x07, 0x12, 0x11, 0x0a, 0x0c, 0x45, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e,\n\t0x5f, 0x32, 0x30, 0x32, 0x34, 0x10, 0xe9, 0x07, 0x12, 0x17, 0x0a, 0x13, 0x45, 0x44, 0x49, 0x54,\n\t0x49, 0x4f, 0x4e, 0x5f, 0x31, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10,\n\t0x01, 0x12, 0x17, 0x0a, 0x13, 0x45, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x32, 0x5f, 0x54,\n\t0x45, 0x53, 0x54, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x17, 0x45, 0x44,\n\t0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x39, 0x39, 0x39, 0x39, 0x37, 0x5f, 0x54, 0x45, 0x53, 0x54,\n\t0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x9d, 0x8d, 0x06, 0x12, 0x1d, 0x0a, 0x17, 0x45, 0x44, 0x49,\n\t0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x39, 0x39, 0x39, 0x39, 0x38, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x5f,\n\t0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x9e, 0x8d, 0x06, 0x12, 0x1d, 0x0a, 0x17, 0x45, 0x44, 0x49, 0x54,\n\t0x49, 0x4f, 0x4e, 0x5f, 0x39, 0x39, 0x39, 0x39, 0x39, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x4f,\n\t0x4e, 0x4c, 0x59, 0x10, 0x9f, 0x8d, 0x06, 0x12, 0x13, 0x0a, 0x0b, 0x45, 0x44, 0x49, 0x54, 0x49,\n\t0x4f, 0x4e, 0x5f, 0x4d, 0x41, 0x58, 0x10, 0xff, 0xff, 0xff, 0xff, 0x07, 0x42, 0x7e, 0x0a, 0x13,\n\t0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,\n\t0x62, 0x75, 0x66, 0x42, 0x10, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50,\n\t0x72, 0x6f, 0x74, 0x6f, 0x73, 0x48, 0x01, 0x5a, 0x2d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,\n\t0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f,\n\t0x62, 0x75, 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,\n\t0x70, 0x74, 0x6f, 0x72, 0x70, 0x62, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x03, 0x47, 0x50, 0x42, 0xaa,\n\t0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,\n\t0x66, 0x2e, 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,\n}\n\nvar (\n\tfile_google_protobuf_descriptor_proto_rawDescOnce sync.Once\n\tfile_google_protobuf_descriptor_proto_rawDescData = file_google_protobuf_descriptor_proto_rawDesc\n)\n\nfunc file_google_protobuf_descriptor_proto_rawDescGZIP() []byte {\n\tfile_google_protobuf_descriptor_proto_rawDescOnce.Do(func() {\n\t\tfile_google_protobuf_descriptor_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_protobuf_descriptor_proto_rawDescData)\n\t})\n\treturn file_google_protobuf_descriptor_proto_rawDescData\n}\n\nvar file_google_protobuf_descriptor_proto_enumTypes = make([]protoimpl.EnumInfo, 17)\nvar file_google_protobuf_descriptor_proto_msgTypes = make([]protoimpl.MessageInfo, 33)\nvar file_google_protobuf_descriptor_proto_goTypes = []any{\n\t(Edition)(0), // 0: google.protobuf.Edition\n\t(ExtensionRangeOptions_VerificationState)(0),        // 1: google.protobuf.ExtensionRangeOptions.VerificationState\n\t(FieldDescriptorProto_Type)(0),                      // 2: google.protobuf.FieldDescriptorProto.Type\n\t(FieldDescriptorProto_Label)(0),                     // 3: google.protobuf.FieldDescriptorProto.Label\n\t(FileOptions_OptimizeMode)(0),                       // 4: google.protobuf.FileOptions.OptimizeMode\n\t(FieldOptions_CType)(0),                             // 5: google.protobuf.FieldOptions.CType\n\t(FieldOptions_JSType)(0),                            // 6: google.protobuf.FieldOptions.JSType\n\t(FieldOptions_OptionRetention)(0),                   // 7: google.protobuf.FieldOptions.OptionRetention\n\t(FieldOptions_OptionTargetType)(0),                  // 8: google.protobuf.FieldOptions.OptionTargetType\n\t(MethodOptions_IdempotencyLevel)(0),                 // 9: google.protobuf.MethodOptions.IdempotencyLevel\n\t(FeatureSet_FieldPresence)(0),                       // 10: google.protobuf.FeatureSet.FieldPresence\n\t(FeatureSet_EnumType)(0),                            // 11: google.protobuf.FeatureSet.EnumType\n\t(FeatureSet_RepeatedFieldEncoding)(0),               // 12: google.protobuf.FeatureSet.RepeatedFieldEncoding\n\t(FeatureSet_Utf8Validation)(0),                      // 13: google.protobuf.FeatureSet.Utf8Validation\n\t(FeatureSet_MessageEncoding)(0),                     // 14: google.protobuf.FeatureSet.MessageEncoding\n\t(FeatureSet_JsonFormat)(0),                          // 15: google.protobuf.FeatureSet.JsonFormat\n\t(GeneratedCodeInfo_Annotation_Semantic)(0),          // 16: google.protobuf.GeneratedCodeInfo.Annotation.Semantic\n\t(*FileDescriptorSet)(nil),                           // 17: google.protobuf.FileDescriptorSet\n\t(*FileDescriptorProto)(nil),                         // 18: google.protobuf.FileDescriptorProto\n\t(*DescriptorProto)(nil),                             // 19: google.protobuf.DescriptorProto\n\t(*ExtensionRangeOptions)(nil),                       // 20: google.protobuf.ExtensionRangeOptions\n\t(*FieldDescriptorProto)(nil),                        // 21: google.protobuf.FieldDescriptorProto\n\t(*OneofDescriptorProto)(nil),                        // 22: google.protobuf.OneofDescriptorProto\n\t(*EnumDescriptorProto)(nil),                         // 23: google.protobuf.EnumDescriptorProto\n\t(*EnumValueDescriptorProto)(nil),                    // 24: google.protobuf.EnumValueDescriptorProto\n\t(*ServiceDescriptorProto)(nil),                      // 25: google.protobuf.ServiceDescriptorProto\n\t(*MethodDescriptorProto)(nil),                       // 26: google.protobuf.MethodDescriptorProto\n\t(*FileOptions)(nil),                                 // 27: google.protobuf.FileOptions\n\t(*MessageOptions)(nil),                              // 28: google.protobuf.MessageOptions\n\t(*FieldOptions)(nil),                                // 29: google.protobuf.FieldOptions\n\t(*OneofOptions)(nil),                                // 30: google.protobuf.OneofOptions\n\t(*EnumOptions)(nil),                                 // 31: google.protobuf.EnumOptions\n\t(*EnumValueOptions)(nil),                            // 32: google.protobuf.EnumValueOptions\n\t(*ServiceOptions)(nil),                              // 33: google.protobuf.ServiceOptions\n\t(*MethodOptions)(nil),                               // 34: google.protobuf.MethodOptions\n\t(*UninterpretedOption)(nil),                         // 35: google.protobuf.UninterpretedOption\n\t(*FeatureSet)(nil),                                  // 36: google.protobuf.FeatureSet\n\t(*FeatureSetDefaults)(nil),                          // 37: google.protobuf.FeatureSetDefaults\n\t(*SourceCodeInfo)(nil),                              // 38: google.protobuf.SourceCodeInfo\n\t(*GeneratedCodeInfo)(nil),                           // 39: google.protobuf.GeneratedCodeInfo\n\t(*DescriptorProto_ExtensionRange)(nil),              // 40: google.protobuf.DescriptorProto.ExtensionRange\n\t(*DescriptorProto_ReservedRange)(nil),               // 41: google.protobuf.DescriptorProto.ReservedRange\n\t(*ExtensionRangeOptions_Declaration)(nil),           // 42: google.protobuf.ExtensionRangeOptions.Declaration\n\t(*EnumDescriptorProto_EnumReservedRange)(nil),       // 43: google.protobuf.EnumDescriptorProto.EnumReservedRange\n\t(*FieldOptions_EditionDefault)(nil),                 // 44: google.protobuf.FieldOptions.EditionDefault\n\t(*FieldOptions_FeatureSupport)(nil),                 // 45: google.protobuf.FieldOptions.FeatureSupport\n\t(*UninterpretedOption_NamePart)(nil),                // 46: google.protobuf.UninterpretedOption.NamePart\n\t(*FeatureSetDefaults_FeatureSetEditionDefault)(nil), // 47: google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault\n\t(*SourceCodeInfo_Location)(nil),                     // 48: google.protobuf.SourceCodeInfo.Location\n\t(*GeneratedCodeInfo_Annotation)(nil),                // 49: google.protobuf.GeneratedCodeInfo.Annotation\n}\nvar file_google_protobuf_descriptor_proto_depIdxs = []int32{\n\t18, // 0: google.protobuf.FileDescriptorSet.file:type_name -> google.protobuf.FileDescriptorProto\n\t19, // 1: google.protobuf.FileDescriptorProto.message_type:type_name -> google.protobuf.DescriptorProto\n\t23, // 2: google.protobuf.FileDescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto\n\t25, // 3: google.protobuf.FileDescriptorProto.service:type_name -> google.protobuf.ServiceDescriptorProto\n\t21, // 4: google.protobuf.FileDescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto\n\t27, // 5: google.protobuf.FileDescriptorProto.options:type_name -> google.protobuf.FileOptions\n\t38, // 6: google.protobuf.FileDescriptorProto.source_code_info:type_name -> google.protobuf.SourceCodeInfo\n\t0,  // 7: google.protobuf.FileDescriptorProto.edition:type_name -> google.protobuf.Edition\n\t21, // 8: google.protobuf.DescriptorProto.field:type_name -> google.protobuf.FieldDescriptorProto\n\t21, // 9: google.protobuf.DescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto\n\t19, // 10: google.protobuf.DescriptorProto.nested_type:type_name -> google.protobuf.DescriptorProto\n\t23, // 11: google.protobuf.DescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto\n\t40, // 12: google.protobuf.DescriptorProto.extension_range:type_name -> google.protobuf.DescriptorProto.ExtensionRange\n\t22, // 13: google.protobuf.DescriptorProto.oneof_decl:type_name -> google.protobuf.OneofDescriptorProto\n\t28, // 14: google.protobuf.DescriptorProto.options:type_name -> google.protobuf.MessageOptions\n\t41, // 15: google.protobuf.DescriptorProto.reserved_range:type_name -> google.protobuf.DescriptorProto.ReservedRange\n\t35, // 16: google.protobuf.ExtensionRangeOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption\n\t42, // 17: google.protobuf.ExtensionRangeOptions.declaration:type_name -> google.protobuf.ExtensionRangeOptions.Declaration\n\t36, // 18: google.protobuf.ExtensionRangeOptions.features:type_name -> google.protobuf.FeatureSet\n\t1,  // 19: google.protobuf.ExtensionRangeOptions.verification:type_name -> google.protobuf.ExtensionRangeOptions.VerificationState\n\t3,  // 20: google.protobuf.FieldDescriptorProto.label:type_name -> google.protobuf.FieldDescriptorProto.Label\n\t2,  // 21: google.protobuf.FieldDescriptorProto.type:type_name -> google.protobuf.FieldDescriptorProto.Type\n\t29, // 22: google.protobuf.FieldDescriptorProto.options:type_name -> google.protobuf.FieldOptions\n\t30, // 23: google.protobuf.OneofDescriptorProto.options:type_name -> google.protobuf.OneofOptions\n\t24, // 24: google.protobuf.EnumDescriptorProto.value:type_name -> google.protobuf.EnumValueDescriptorProto\n\t31, // 25: google.protobuf.EnumDescriptorProto.options:type_name -> google.protobuf.EnumOptions\n\t43, // 26: google.protobuf.EnumDescriptorProto.reserved_range:type_name -> google.protobuf.EnumDescriptorProto.EnumReservedRange\n\t32, // 27: google.protobuf.EnumValueDescriptorProto.options:type_name -> google.protobuf.EnumValueOptions\n\t26, // 28: google.protobuf.ServiceDescriptorProto.method:type_name -> google.protobuf.MethodDescriptorProto\n\t33, // 29: google.protobuf.ServiceDescriptorProto.options:type_name -> google.protobuf.ServiceOptions\n\t34, // 30: google.protobuf.MethodDescriptorProto.options:type_name -> google.protobuf.MethodOptions\n\t4,  // 31: google.protobuf.FileOptions.optimize_for:type_name -> google.protobuf.FileOptions.OptimizeMode\n\t36, // 32: google.protobuf.FileOptions.features:type_name -> google.protobuf.FeatureSet\n\t35, // 33: google.protobuf.FileOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption\n\t36, // 34: google.protobuf.MessageOptions.features:type_name -> google.protobuf.FeatureSet\n\t35, // 35: google.protobuf.MessageOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption\n\t5,  // 36: google.protobuf.FieldOptions.ctype:type_name -> google.protobuf.FieldOptions.CType\n\t6,  // 37: google.protobuf.FieldOptions.jstype:type_name -> google.protobuf.FieldOptions.JSType\n\t7,  // 38: google.protobuf.FieldOptions.retention:type_name -> google.protobuf.FieldOptions.OptionRetention\n\t8,  // 39: google.protobuf.FieldOptions.targets:type_name -> google.protobuf.FieldOptions.OptionTargetType\n\t44, // 40: google.protobuf.FieldOptions.edition_defaults:type_name -> google.protobuf.FieldOptions.EditionDefault\n\t36, // 41: google.protobuf.FieldOptions.features:type_name -> google.protobuf.FeatureSet\n\t45, // 42: google.protobuf.FieldOptions.feature_support:type_name -> google.protobuf.FieldOptions.FeatureSupport\n\t35, // 43: google.protobuf.FieldOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption\n\t36, // 44: google.protobuf.OneofOptions.features:type_name -> google.protobuf.FeatureSet\n\t35, // 45: google.protobuf.OneofOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption\n\t36, // 46: google.protobuf.EnumOptions.features:type_name -> google.protobuf.FeatureSet\n\t35, // 47: google.protobuf.EnumOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption\n\t36, // 48: google.protobuf.EnumValueOptions.features:type_name -> google.protobuf.FeatureSet\n\t45, // 49: google.protobuf.EnumValueOptions.feature_support:type_name -> google.protobuf.FieldOptions.FeatureSupport\n\t35, // 50: google.protobuf.EnumValueOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption\n\t36, // 51: google.protobuf.ServiceOptions.features:type_name -> google.protobuf.FeatureSet\n\t35, // 52: google.protobuf.ServiceOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption\n\t9,  // 53: google.protobuf.MethodOptions.idempotency_level:type_name -> google.protobuf.MethodOptions.IdempotencyLevel\n\t36, // 54: google.protobuf.MethodOptions.features:type_name -> google.protobuf.FeatureSet\n\t35, // 55: google.protobuf.MethodOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption\n\t46, // 56: google.protobuf.UninterpretedOption.name:type_name -> google.protobuf.UninterpretedOption.NamePart\n\t10, // 57: google.protobuf.FeatureSet.field_presence:type_name -> google.protobuf.FeatureSet.FieldPresence\n\t11, // 58: google.protobuf.FeatureSet.enum_type:type_name -> google.protobuf.FeatureSet.EnumType\n\t12, // 59: google.protobuf.FeatureSet.repeated_field_encoding:type_name -> google.protobuf.FeatureSet.RepeatedFieldEncoding\n\t13, // 60: google.protobuf.FeatureSet.utf8_validation:type_name -> google.protobuf.FeatureSet.Utf8Validation\n\t14, // 61: google.protobuf.FeatureSet.message_encoding:type_name -> google.protobuf.FeatureSet.MessageEncoding\n\t15, // 62: google.protobuf.FeatureSet.json_format:type_name -> google.protobuf.FeatureSet.JsonFormat\n\t47, // 63: google.protobuf.FeatureSetDefaults.defaults:type_name -> google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault\n\t0,  // 64: google.protobuf.FeatureSetDefaults.minimum_edition:type_name -> google.protobuf.Edition\n\t0,  // 65: google.protobuf.FeatureSetDefaults.maximum_edition:type_name -> google.protobuf.Edition\n\t48, // 66: google.protobuf.SourceCodeInfo.location:type_name -> google.protobuf.SourceCodeInfo.Location\n\t49, // 67: google.protobuf.GeneratedCodeInfo.annotation:type_name -> google.protobuf.GeneratedCodeInfo.Annotation\n\t20, // 68: google.protobuf.DescriptorProto.ExtensionRange.options:type_name -> google.protobuf.ExtensionRangeOptions\n\t0,  // 69: google.protobuf.FieldOptions.EditionDefault.edition:type_name -> google.protobuf.Edition\n\t0,  // 70: google.protobuf.FieldOptions.FeatureSupport.edition_introduced:type_name -> google.protobuf.Edition\n\t0,  // 71: google.protobuf.FieldOptions.FeatureSupport.edition_deprecated:type_name -> google.protobuf.Edition\n\t0,  // 72: google.protobuf.FieldOptions.FeatureSupport.edition_removed:type_name -> google.protobuf.Edition\n\t0,  // 73: google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.edition:type_name -> google.protobuf.Edition\n\t36, // 74: google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.overridable_features:type_name -> google.protobuf.FeatureSet\n\t36, // 75: google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.fixed_features:type_name -> google.protobuf.FeatureSet\n\t16, // 76: google.protobuf.GeneratedCodeInfo.Annotation.semantic:type_name -> google.protobuf.GeneratedCodeInfo.Annotation.Semantic\n\t77, // [77:77] is the sub-list for method output_type\n\t77, // [77:77] is the sub-list for method input_type\n\t77, // [77:77] is the sub-list for extension type_name\n\t77, // [77:77] is the sub-list for extension extendee\n\t0,  // [0:77] is the sub-list for field type_name\n}\n\nfunc init() { file_google_protobuf_descriptor_proto_init() }\nfunc file_google_protobuf_descriptor_proto_init() {\n\tif File_google_protobuf_descriptor_proto != nil {\n\t\treturn\n\t}\n\ttype x struct{}\n\tout := protoimpl.TypeBuilder{\n\t\tFile: protoimpl.DescBuilder{\n\t\t\tGoPackagePath: reflect.TypeOf(x{}).PkgPath(),\n\t\t\tRawDescriptor: file_google_protobuf_descriptor_proto_rawDesc,\n\t\t\tNumEnums:      17,\n\t\t\tNumMessages:   33,\n\t\t\tNumExtensions: 0,\n\t\t\tNumServices:   0,\n\t\t},\n\t\tGoTypes:           file_google_protobuf_descriptor_proto_goTypes,\n\t\tDependencyIndexes: file_google_protobuf_descriptor_proto_depIdxs,\n\t\tEnumInfos:         file_google_protobuf_descriptor_proto_enumTypes,\n\t\tMessageInfos:      file_google_protobuf_descriptor_proto_msgTypes,\n\t}.Build()\n\tFile_google_protobuf_descriptor_proto = out.File\n\tfile_google_protobuf_descriptor_proto_rawDesc = nil\n\tfile_google_protobuf_descriptor_proto_goTypes = nil\n\tfile_google_protobuf_descriptor_proto_depIdxs = nil\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.pb.go",
    "content": "// Protocol Buffers - Google's data interchange format\n// Copyright 2023 Google Inc.  All rights reserved.\n//\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file or at\n// https://developers.google.com/open-source/licenses/bsd\n\n// Code generated by protoc-gen-go. DO NOT EDIT.\n// source: google/protobuf/go_features.proto\n\npackage gofeaturespb\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n\tprotoimpl \"google.golang.org/protobuf/runtime/protoimpl\"\n\tdescriptorpb \"google.golang.org/protobuf/types/descriptorpb\"\n\treflect \"reflect\"\n\tsync \"sync\"\n)\n\ntype GoFeatures struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Whether or not to generate the deprecated UnmarshalJSON method for enums.\n\tLegacyUnmarshalJsonEnum *bool `protobuf:\"varint,1,opt,name=legacy_unmarshal_json_enum,json=legacyUnmarshalJsonEnum\" json:\"legacy_unmarshal_json_enum,omitempty\"`\n}\n\nfunc (x *GoFeatures) Reset() {\n\t*x = GoFeatures{}\n\tmi := &file_google_protobuf_go_features_proto_msgTypes[0]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *GoFeatures) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*GoFeatures) ProtoMessage() {}\n\nfunc (x *GoFeatures) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_go_features_proto_msgTypes[0]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use GoFeatures.ProtoReflect.Descriptor instead.\nfunc (*GoFeatures) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_go_features_proto_rawDescGZIP(), []int{0}\n}\n\nfunc (x *GoFeatures) GetLegacyUnmarshalJsonEnum() bool {\n\tif x != nil && x.LegacyUnmarshalJsonEnum != nil {\n\t\treturn *x.LegacyUnmarshalJsonEnum\n\t}\n\treturn false\n}\n\nvar file_google_protobuf_go_features_proto_extTypes = []protoimpl.ExtensionInfo{\n\t{\n\t\tExtendedType:  (*descriptorpb.FeatureSet)(nil),\n\t\tExtensionType: (*GoFeatures)(nil),\n\t\tField:         1002,\n\t\tName:          \"pb.go\",\n\t\tTag:           \"bytes,1002,opt,name=go\",\n\t\tFilename:      \"google/protobuf/go_features.proto\",\n\t},\n}\n\n// Extension fields to descriptorpb.FeatureSet.\nvar (\n\t// optional pb.GoFeatures go = 1002;\n\tE_Go = &file_google_protobuf_go_features_proto_extTypes[0]\n)\n\nvar File_google_protobuf_go_features_proto protoreflect.FileDescriptor\n\nvar file_google_protobuf_go_features_proto_rawDesc = []byte{\n\t0x0a, 0x21, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,\n\t0x66, 0x2f, 0x67, 0x6f, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x70, 0x72,\n\t0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f,\n\t0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,\n\t0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xcd, 0x01, 0x0a, 0x0a, 0x47, 0x6f,\n\t0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0xbe, 0x01, 0x0a, 0x1a, 0x6c, 0x65, 0x67,\n\t0x61, 0x63, 0x79, 0x5f, 0x75, 0x6e, 0x6d, 0x61, 0x72, 0x73, 0x68, 0x61, 0x6c, 0x5f, 0x6a, 0x73,\n\t0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x80, 0x01,\n\t0x88, 0x01, 0x01, 0x98, 0x01, 0x06, 0x98, 0x01, 0x01, 0xa2, 0x01, 0x09, 0x12, 0x04, 0x74, 0x72,\n\t0x75, 0x65, 0x18, 0x84, 0x07, 0xa2, 0x01, 0x0a, 0x12, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x18,\n\t0xe7, 0x07, 0xb2, 0x01, 0x5b, 0x08, 0xe8, 0x07, 0x10, 0xe8, 0x07, 0x1a, 0x53, 0x54, 0x68, 0x65,\n\t0x20, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x20, 0x55, 0x6e, 0x6d, 0x61, 0x72, 0x73, 0x68, 0x61,\n\t0x6c, 0x4a, 0x53, 0x4f, 0x4e, 0x20, 0x41, 0x50, 0x49, 0x20, 0x69, 0x73, 0x20, 0x64, 0x65, 0x70,\n\t0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x77, 0x69, 0x6c, 0x6c,\n\t0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x61,\n\t0x20, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x20, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e,\n\t0x52, 0x17, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x55, 0x6e, 0x6d, 0x61, 0x72, 0x73, 0x68, 0x61,\n\t0x6c, 0x4a, 0x73, 0x6f, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x3a, 0x3c, 0x0a, 0x02, 0x67, 0x6f, 0x12,\n\t0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,\n\t0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x18, 0xea, 0x07, 0x20,\n\t0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x6f, 0x46, 0x65, 0x61, 0x74, 0x75,\n\t0x72, 0x65, 0x73, 0x52, 0x02, 0x67, 0x6f, 0x42, 0x2f, 0x5a, 0x2d, 0x67, 0x6f, 0x6f, 0x67, 0x6c,\n\t0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f,\n\t0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x67, 0x6f, 0x66, 0x65,\n\t0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x70, 0x62,\n}\n\nvar (\n\tfile_google_protobuf_go_features_proto_rawDescOnce sync.Once\n\tfile_google_protobuf_go_features_proto_rawDescData = file_google_protobuf_go_features_proto_rawDesc\n)\n\nfunc file_google_protobuf_go_features_proto_rawDescGZIP() []byte {\n\tfile_google_protobuf_go_features_proto_rawDescOnce.Do(func() {\n\t\tfile_google_protobuf_go_features_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_protobuf_go_features_proto_rawDescData)\n\t})\n\treturn file_google_protobuf_go_features_proto_rawDescData\n}\n\nvar file_google_protobuf_go_features_proto_msgTypes = make([]protoimpl.MessageInfo, 1)\nvar file_google_protobuf_go_features_proto_goTypes = []any{\n\t(*GoFeatures)(nil),              // 0: pb.GoFeatures\n\t(*descriptorpb.FeatureSet)(nil), // 1: google.protobuf.FeatureSet\n}\nvar file_google_protobuf_go_features_proto_depIdxs = []int32{\n\t1, // 0: pb.go:extendee -> google.protobuf.FeatureSet\n\t0, // 1: pb.go:type_name -> pb.GoFeatures\n\t2, // [2:2] is the sub-list for method output_type\n\t2, // [2:2] is the sub-list for method input_type\n\t1, // [1:2] is the sub-list for extension type_name\n\t0, // [0:1] is the sub-list for extension extendee\n\t0, // [0:0] is the sub-list for field type_name\n}\n\nfunc init() { file_google_protobuf_go_features_proto_init() }\nfunc file_google_protobuf_go_features_proto_init() {\n\tif File_google_protobuf_go_features_proto != nil {\n\t\treturn\n\t}\n\ttype x struct{}\n\tout := protoimpl.TypeBuilder{\n\t\tFile: protoimpl.DescBuilder{\n\t\t\tGoPackagePath: reflect.TypeOf(x{}).PkgPath(),\n\t\t\tRawDescriptor: file_google_protobuf_go_features_proto_rawDesc,\n\t\t\tNumEnums:      0,\n\t\t\tNumMessages:   1,\n\t\t\tNumExtensions: 1,\n\t\t\tNumServices:   0,\n\t\t},\n\t\tGoTypes:           file_google_protobuf_go_features_proto_goTypes,\n\t\tDependencyIndexes: file_google_protobuf_go_features_proto_depIdxs,\n\t\tMessageInfos:      file_google_protobuf_go_features_proto_msgTypes,\n\t\tExtensionInfos:    file_google_protobuf_go_features_proto_extTypes,\n\t}.Build()\n\tFile_google_protobuf_go_features_proto = out.File\n\tfile_google_protobuf_go_features_proto_rawDesc = nil\n\tfile_google_protobuf_go_features_proto_goTypes = nil\n\tfile_google_protobuf_go_features_proto_depIdxs = nil\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go",
    "content": "// Protocol Buffers - Google's data interchange format\n// Copyright 2008 Google Inc.  All rights reserved.\n// https://developers.google.com/protocol-buffers/\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n// Code generated by protoc-gen-go. DO NOT EDIT.\n// source: google/protobuf/any.proto\n\n// Package anypb contains generated types for google/protobuf/any.proto.\n//\n// The Any message is a dynamic representation of any other message value.\n// It is functionally a tuple of the full name of the remote message type and\n// the serialized bytes of the remote message value.\n//\n// # Constructing an Any\n//\n// An Any message containing another message value is constructed using New:\n//\n//\tany, err := anypb.New(m)\n//\tif err != nil {\n//\t\t... // handle error\n//\t}\n//\t... // make use of any\n//\n// # Unmarshaling an Any\n//\n// With a populated Any message, the underlying message can be serialized into\n// a remote concrete message value in a few ways.\n//\n// If the exact concrete type is known, then a new (or pre-existing) instance\n// of that message can be passed to the UnmarshalTo method:\n//\n//\tm := new(foopb.MyMessage)\n//\tif err := any.UnmarshalTo(m); err != nil {\n//\t\t... // handle error\n//\t}\n//\t... // make use of m\n//\n// If the exact concrete type is not known, then the UnmarshalNew method can be\n// used to unmarshal the contents into a new instance of the remote message type:\n//\n//\tm, err := any.UnmarshalNew()\n//\tif err != nil {\n//\t\t... // handle error\n//\t}\n//\t... // make use of m\n//\n// UnmarshalNew uses the global type registry to resolve the message type and\n// construct a new instance of that message to unmarshal into. In order for a\n// message type to appear in the global registry, the Go type representing that\n// protobuf message type must be linked into the Go binary. For messages\n// generated by protoc-gen-go, this is achieved through an import of the\n// generated Go package representing a .proto file.\n//\n// A common pattern with UnmarshalNew is to use a type switch with the resulting\n// proto.Message value:\n//\n//\tswitch m := m.(type) {\n//\tcase *foopb.MyMessage:\n//\t\t... // make use of m as a *foopb.MyMessage\n//\tcase *barpb.OtherMessage:\n//\t\t... // make use of m as a *barpb.OtherMessage\n//\tcase *bazpb.SomeMessage:\n//\t\t... // make use of m as a *bazpb.SomeMessage\n//\t}\n//\n// This pattern ensures that the generated packages containing the message types\n// listed in the case clauses are linked into the Go binary and therefore also\n// registered in the global registry.\n//\n// # Type checking an Any\n//\n// In order to type check whether an Any message represents some other message,\n// then use the MessageIs method:\n//\n//\tif any.MessageIs((*foopb.MyMessage)(nil)) {\n//\t\t... // make use of any, knowing that it contains a foopb.MyMessage\n//\t}\n//\n// The MessageIs method can also be used with an allocated instance of the target\n// message type if the intention is to unmarshal into it if the type matches:\n//\n//\tm := new(foopb.MyMessage)\n//\tif any.MessageIs(m) {\n//\t\tif err := any.UnmarshalTo(m); err != nil {\n//\t\t\t... // handle error\n//\t\t}\n//\t\t... // make use of m\n//\t}\npackage anypb\n\nimport (\n\tproto \"google.golang.org/protobuf/proto\"\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n\tprotoregistry \"google.golang.org/protobuf/reflect/protoregistry\"\n\tprotoimpl \"google.golang.org/protobuf/runtime/protoimpl\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n\tsync \"sync\"\n)\n\n// `Any` contains an arbitrary serialized protocol buffer message along with a\n// URL that describes the type of the serialized message.\n//\n// Protobuf library provides support to pack/unpack Any values in the form\n// of utility functions or additional generated methods of the Any type.\n//\n// Example 1: Pack and unpack a message in C++.\n//\n//\tFoo foo = ...;\n//\tAny any;\n//\tany.PackFrom(foo);\n//\t...\n//\tif (any.UnpackTo(&foo)) {\n//\t  ...\n//\t}\n//\n// Example 2: Pack and unpack a message in Java.\n//\n//\t   Foo foo = ...;\n//\t   Any any = Any.pack(foo);\n//\t   ...\n//\t   if (any.is(Foo.class)) {\n//\t     foo = any.unpack(Foo.class);\n//\t   }\n//\t   // or ...\n//\t   if (any.isSameTypeAs(Foo.getDefaultInstance())) {\n//\t     foo = any.unpack(Foo.getDefaultInstance());\n//\t   }\n//\n//\tExample 3: Pack and unpack a message in Python.\n//\n//\t   foo = Foo(...)\n//\t   any = Any()\n//\t   any.Pack(foo)\n//\t   ...\n//\t   if any.Is(Foo.DESCRIPTOR):\n//\t     any.Unpack(foo)\n//\t     ...\n//\n//\tExample 4: Pack and unpack a message in Go\n//\n//\t    foo := &pb.Foo{...}\n//\t    any, err := anypb.New(foo)\n//\t    if err != nil {\n//\t      ...\n//\t    }\n//\t    ...\n//\t    foo := &pb.Foo{}\n//\t    if err := any.UnmarshalTo(foo); err != nil {\n//\t      ...\n//\t    }\n//\n// The pack methods provided by protobuf library will by default use\n// 'type.googleapis.com/full.type.name' as the type URL and the unpack\n// methods only use the fully qualified type name after the last '/'\n// in the type URL, for example \"foo.bar.com/x/y.z\" will yield type\n// name \"y.z\".\n//\n// JSON\n// ====\n// The JSON representation of an `Any` value uses the regular\n// representation of the deserialized, embedded message, with an\n// additional field `@type` which contains the type URL. Example:\n//\n//\tpackage google.profile;\n//\tmessage Person {\n//\t  string first_name = 1;\n//\t  string last_name = 2;\n//\t}\n//\n//\t{\n//\t  \"@type\": \"type.googleapis.com/google.profile.Person\",\n//\t  \"firstName\": <string>,\n//\t  \"lastName\": <string>\n//\t}\n//\n// If the embedded message type is well-known and has a custom JSON\n// representation, that representation will be embedded adding a field\n// `value` which holds the custom JSON in addition to the `@type`\n// field. Example (for message [google.protobuf.Duration][]):\n//\n//\t{\n//\t  \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n//\t  \"value\": \"1.212s\"\n//\t}\ntype Any struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// A URL/resource name that uniquely identifies the type of the serialized\n\t// protocol buffer message. This string must contain at least\n\t// one \"/\" character. The last segment of the URL's path must represent\n\t// the fully qualified name of the type (as in\n\t// `path/google.protobuf.Duration`). The name should be in a canonical form\n\t// (e.g., leading \".\" is not accepted).\n\t//\n\t// In practice, teams usually precompile into the binary all types that they\n\t// expect it to use in the context of Any. However, for URLs which use the\n\t// scheme `http`, `https`, or no scheme, one can optionally set up a type\n\t// server that maps type URLs to message definitions as follows:\n\t//\n\t//   - If no scheme is provided, `https` is assumed.\n\t//   - An HTTP GET on the URL must yield a [google.protobuf.Type][]\n\t//     value in binary format, or produce an error.\n\t//   - Applications are allowed to cache lookup results based on the\n\t//     URL, or have them precompiled into a binary to avoid any\n\t//     lookup. Therefore, binary compatibility needs to be preserved\n\t//     on changes to types. (Use versioned type names to manage\n\t//     breaking changes.)\n\t//\n\t// Note: this functionality is not currently available in the official\n\t// protobuf release, and it is not used for type URLs beginning with\n\t// type.googleapis.com. As of May 2023, there are no widely used type server\n\t// implementations and no plans to implement one.\n\t//\n\t// Schemes other than `http`, `https` (or the empty scheme) might be\n\t// used with implementation specific semantics.\n\tTypeUrl string `protobuf:\"bytes,1,opt,name=type_url,json=typeUrl,proto3\" json:\"type_url,omitempty\"`\n\t// Must be a valid serialized protocol buffer of the above specified type.\n\tValue []byte `protobuf:\"bytes,2,opt,name=value,proto3\" json:\"value,omitempty\"`\n}\n\n// New marshals src into a new Any instance.\nfunc New(src proto.Message) (*Any, error) {\n\tdst := new(Any)\n\tif err := dst.MarshalFrom(src); err != nil {\n\t\treturn nil, err\n\t}\n\treturn dst, nil\n}\n\n// MarshalFrom marshals src into dst as the underlying message\n// using the provided marshal options.\n//\n// If no options are specified, call dst.MarshalFrom instead.\nfunc MarshalFrom(dst *Any, src proto.Message, opts proto.MarshalOptions) error {\n\tconst urlPrefix = \"type.googleapis.com/\"\n\tif src == nil {\n\t\treturn protoimpl.X.NewError(\"invalid nil source message\")\n\t}\n\tb, err := opts.Marshal(src)\n\tif err != nil {\n\t\treturn err\n\t}\n\tdst.TypeUrl = urlPrefix + string(src.ProtoReflect().Descriptor().FullName())\n\tdst.Value = b\n\treturn nil\n}\n\n// UnmarshalTo unmarshals the underlying message from src into dst\n// using the provided unmarshal options.\n// It reports an error if dst is not of the right message type.\n//\n// If no options are specified, call src.UnmarshalTo instead.\nfunc UnmarshalTo(src *Any, dst proto.Message, opts proto.UnmarshalOptions) error {\n\tif src == nil {\n\t\treturn protoimpl.X.NewError(\"invalid nil source message\")\n\t}\n\tif !src.MessageIs(dst) {\n\t\tgot := dst.ProtoReflect().Descriptor().FullName()\n\t\twant := src.MessageName()\n\t\treturn protoimpl.X.NewError(\"mismatched message type: got %q, want %q\", got, want)\n\t}\n\treturn opts.Unmarshal(src.GetValue(), dst)\n}\n\n// UnmarshalNew unmarshals the underlying message from src into dst,\n// which is newly created message using a type resolved from the type URL.\n// The message type is resolved according to opt.Resolver,\n// which should implement protoregistry.MessageTypeResolver.\n// It reports an error if the underlying message type could not be resolved.\n//\n// If no options are specified, call src.UnmarshalNew instead.\nfunc UnmarshalNew(src *Any, opts proto.UnmarshalOptions) (dst proto.Message, err error) {\n\tif src.GetTypeUrl() == \"\" {\n\t\treturn nil, protoimpl.X.NewError(\"invalid empty type URL\")\n\t}\n\tif opts.Resolver == nil {\n\t\topts.Resolver = protoregistry.GlobalTypes\n\t}\n\tr, ok := opts.Resolver.(protoregistry.MessageTypeResolver)\n\tif !ok {\n\t\treturn nil, protoregistry.NotFound\n\t}\n\tmt, err := r.FindMessageByURL(src.GetTypeUrl())\n\tif err != nil {\n\t\tif err == protoregistry.NotFound {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn nil, protoimpl.X.NewError(\"could not resolve %q: %v\", src.GetTypeUrl(), err)\n\t}\n\tdst = mt.New().Interface()\n\treturn dst, opts.Unmarshal(src.GetValue(), dst)\n}\n\n// MessageIs reports whether the underlying message is of the same type as m.\nfunc (x *Any) MessageIs(m proto.Message) bool {\n\tif m == nil {\n\t\treturn false\n\t}\n\turl := x.GetTypeUrl()\n\tname := string(m.ProtoReflect().Descriptor().FullName())\n\tif !strings.HasSuffix(url, name) {\n\t\treturn false\n\t}\n\treturn len(url) == len(name) || url[len(url)-len(name)-1] == '/'\n}\n\n// MessageName reports the full name of the underlying message,\n// returning an empty string if invalid.\nfunc (x *Any) MessageName() protoreflect.FullName {\n\turl := x.GetTypeUrl()\n\tname := protoreflect.FullName(url)\n\tif i := strings.LastIndexByte(url, '/'); i >= 0 {\n\t\tname = name[i+len(\"/\"):]\n\t}\n\tif !name.IsValid() {\n\t\treturn \"\"\n\t}\n\treturn name\n}\n\n// MarshalFrom marshals m into x as the underlying message.\nfunc (x *Any) MarshalFrom(m proto.Message) error {\n\treturn MarshalFrom(x, m, proto.MarshalOptions{})\n}\n\n// UnmarshalTo unmarshals the contents of the underlying message of x into m.\n// It resets m before performing the unmarshal operation.\n// It reports an error if m is not of the right message type.\nfunc (x *Any) UnmarshalTo(m proto.Message) error {\n\treturn UnmarshalTo(x, m, proto.UnmarshalOptions{})\n}\n\n// UnmarshalNew unmarshals the contents of the underlying message of x into\n// a newly allocated message of the specified type.\n// It reports an error if the underlying message type could not be resolved.\nfunc (x *Any) UnmarshalNew() (proto.Message, error) {\n\treturn UnmarshalNew(x, proto.UnmarshalOptions{})\n}\n\nfunc (x *Any) Reset() {\n\t*x = Any{}\n\tmi := &file_google_protobuf_any_proto_msgTypes[0]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *Any) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Any) ProtoMessage() {}\n\nfunc (x *Any) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_any_proto_msgTypes[0]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Any.ProtoReflect.Descriptor instead.\nfunc (*Any) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_any_proto_rawDescGZIP(), []int{0}\n}\n\nfunc (x *Any) GetTypeUrl() string {\n\tif x != nil {\n\t\treturn x.TypeUrl\n\t}\n\treturn \"\"\n}\n\nfunc (x *Any) GetValue() []byte {\n\tif x != nil {\n\t\treturn x.Value\n\t}\n\treturn nil\n}\n\nvar File_google_protobuf_any_proto protoreflect.FileDescriptor\n\nvar file_google_protobuf_any_proto_rawDesc = []byte{\n\t0x0a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,\n\t0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x67, 0x6f, 0x6f,\n\t0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x22, 0x36, 0x0a, 0x03,\n\t0x41, 0x6e, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18,\n\t0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x79, 0x70, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x14,\n\t0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76,\n\t0x61, 0x6c, 0x75, 0x65, 0x42, 0x76, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67,\n\t0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x42, 0x08, 0x41, 0x6e, 0x79,\n\t0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,\n\t0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f,\n\t0x62, 0x75, 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x2f,\n\t0x61, 0x6e, 0x79, 0x70, 0x62, 0xa2, 0x02, 0x03, 0x47, 0x50, 0x42, 0xaa, 0x02, 0x1e, 0x47, 0x6f,\n\t0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x57, 0x65,\n\t0x6c, 0x6c, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72,\n\t0x6f, 0x74, 0x6f, 0x33,\n}\n\nvar (\n\tfile_google_protobuf_any_proto_rawDescOnce sync.Once\n\tfile_google_protobuf_any_proto_rawDescData = file_google_protobuf_any_proto_rawDesc\n)\n\nfunc file_google_protobuf_any_proto_rawDescGZIP() []byte {\n\tfile_google_protobuf_any_proto_rawDescOnce.Do(func() {\n\t\tfile_google_protobuf_any_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_protobuf_any_proto_rawDescData)\n\t})\n\treturn file_google_protobuf_any_proto_rawDescData\n}\n\nvar file_google_protobuf_any_proto_msgTypes = make([]protoimpl.MessageInfo, 1)\nvar file_google_protobuf_any_proto_goTypes = []any{\n\t(*Any)(nil), // 0: google.protobuf.Any\n}\nvar file_google_protobuf_any_proto_depIdxs = []int32{\n\t0, // [0:0] is the sub-list for method output_type\n\t0, // [0:0] is the sub-list for method input_type\n\t0, // [0:0] is the sub-list for extension type_name\n\t0, // [0:0] is the sub-list for extension extendee\n\t0, // [0:0] is the sub-list for field type_name\n}\n\nfunc init() { file_google_protobuf_any_proto_init() }\nfunc file_google_protobuf_any_proto_init() {\n\tif File_google_protobuf_any_proto != nil {\n\t\treturn\n\t}\n\ttype x struct{}\n\tout := protoimpl.TypeBuilder{\n\t\tFile: protoimpl.DescBuilder{\n\t\t\tGoPackagePath: reflect.TypeOf(x{}).PkgPath(),\n\t\t\tRawDescriptor: file_google_protobuf_any_proto_rawDesc,\n\t\t\tNumEnums:      0,\n\t\t\tNumMessages:   1,\n\t\t\tNumExtensions: 0,\n\t\t\tNumServices:   0,\n\t\t},\n\t\tGoTypes:           file_google_protobuf_any_proto_goTypes,\n\t\tDependencyIndexes: file_google_protobuf_any_proto_depIdxs,\n\t\tMessageInfos:      file_google_protobuf_any_proto_msgTypes,\n\t}.Build()\n\tFile_google_protobuf_any_proto = out.File\n\tfile_google_protobuf_any_proto_rawDesc = nil\n\tfile_google_protobuf_any_proto_goTypes = nil\n\tfile_google_protobuf_any_proto_depIdxs = nil\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/types/known/durationpb/duration.pb.go",
    "content": "// Protocol Buffers - Google's data interchange format\n// Copyright 2008 Google Inc.  All rights reserved.\n// https://developers.google.com/protocol-buffers/\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n// Code generated by protoc-gen-go. DO NOT EDIT.\n// source: google/protobuf/duration.proto\n\n// Package durationpb contains generated types for google/protobuf/duration.proto.\n//\n// The Duration message represents a signed span of time.\n//\n// # Conversion to a Go Duration\n//\n// The AsDuration method can be used to convert a Duration message to a\n// standard Go time.Duration value:\n//\n//\td := dur.AsDuration()\n//\t... // make use of d as a time.Duration\n//\n// Converting to a time.Duration is a common operation so that the extensive\n// set of time-based operations provided by the time package can be leveraged.\n// See https://golang.org/pkg/time for more information.\n//\n// The AsDuration method performs the conversion on a best-effort basis.\n// Durations with denormal values (e.g., nanoseconds beyond -99999999 and\n// +99999999, inclusive; or seconds and nanoseconds with opposite signs)\n// are normalized during the conversion to a time.Duration. To manually check for\n// invalid Duration per the documented limitations in duration.proto,\n// additionally call the CheckValid method:\n//\n//\tif err := dur.CheckValid(); err != nil {\n//\t\t... // handle error\n//\t}\n//\n// Note that the documented limitations in duration.proto does not protect a\n// Duration from overflowing the representable range of a time.Duration in Go.\n// The AsDuration method uses saturation arithmetic such that an overflow clamps\n// the resulting value to the closest representable value (e.g., math.MaxInt64\n// for positive overflow and math.MinInt64 for negative overflow).\n//\n// # Conversion from a Go Duration\n//\n// The durationpb.New function can be used to construct a Duration message\n// from a standard Go time.Duration value:\n//\n//\tdur := durationpb.New(d)\n//\t... // make use of d as a *durationpb.Duration\npackage durationpb\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n\tprotoimpl \"google.golang.org/protobuf/runtime/protoimpl\"\n\tmath \"math\"\n\treflect \"reflect\"\n\tsync \"sync\"\n\ttime \"time\"\n)\n\n// A Duration represents a signed, fixed-length span of time represented\n// as a count of seconds and fractions of seconds at nanosecond\n// resolution. It is independent of any calendar and concepts like \"day\"\n// or \"month\". It is related to Timestamp in that the difference between\n// two Timestamp values is a Duration and it can be added or subtracted\n// from a Timestamp. Range is approximately +-10,000 years.\n//\n// # Examples\n//\n// Example 1: Compute Duration from two Timestamps in pseudo code.\n//\n//\tTimestamp start = ...;\n//\tTimestamp end = ...;\n//\tDuration duration = ...;\n//\n//\tduration.seconds = end.seconds - start.seconds;\n//\tduration.nanos = end.nanos - start.nanos;\n//\n//\tif (duration.seconds < 0 && duration.nanos > 0) {\n//\t  duration.seconds += 1;\n//\t  duration.nanos -= 1000000000;\n//\t} else if (duration.seconds > 0 && duration.nanos < 0) {\n//\t  duration.seconds -= 1;\n//\t  duration.nanos += 1000000000;\n//\t}\n//\n// Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.\n//\n//\tTimestamp start = ...;\n//\tDuration duration = ...;\n//\tTimestamp end = ...;\n//\n//\tend.seconds = start.seconds + duration.seconds;\n//\tend.nanos = start.nanos + duration.nanos;\n//\n//\tif (end.nanos < 0) {\n//\t  end.seconds -= 1;\n//\t  end.nanos += 1000000000;\n//\t} else if (end.nanos >= 1000000000) {\n//\t  end.seconds += 1;\n//\t  end.nanos -= 1000000000;\n//\t}\n//\n// Example 3: Compute Duration from datetime.timedelta in Python.\n//\n//\ttd = datetime.timedelta(days=3, minutes=10)\n//\tduration = Duration()\n//\tduration.FromTimedelta(td)\n//\n// # JSON Mapping\n//\n// In JSON format, the Duration type is encoded as a string rather than an\n// object, where the string ends in the suffix \"s\" (indicating seconds) and\n// is preceded by the number of seconds, with nanoseconds expressed as\n// fractional seconds. For example, 3 seconds with 0 nanoseconds should be\n// encoded in JSON format as \"3s\", while 3 seconds and 1 nanosecond should\n// be expressed in JSON format as \"3.000000001s\", and 3 seconds and 1\n// microsecond should be expressed in JSON format as \"3.000001s\".\ntype Duration struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Signed seconds of the span of time. Must be from -315,576,000,000\n\t// to +315,576,000,000 inclusive. Note: these bounds are computed from:\n\t// 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\n\tSeconds int64 `protobuf:\"varint,1,opt,name=seconds,proto3\" json:\"seconds,omitempty\"`\n\t// Signed fractions of a second at nanosecond resolution of the span\n\t// of time. Durations less than one second are represented with a 0\n\t// `seconds` field and a positive or negative `nanos` field. For durations\n\t// of one second or more, a non-zero value for the `nanos` field must be\n\t// of the same sign as the `seconds` field. Must be from -999,999,999\n\t// to +999,999,999 inclusive.\n\tNanos int32 `protobuf:\"varint,2,opt,name=nanos,proto3\" json:\"nanos,omitempty\"`\n}\n\n// New constructs a new Duration from the provided time.Duration.\nfunc New(d time.Duration) *Duration {\n\tnanos := d.Nanoseconds()\n\tsecs := nanos / 1e9\n\tnanos -= secs * 1e9\n\treturn &Duration{Seconds: int64(secs), Nanos: int32(nanos)}\n}\n\n// AsDuration converts x to a time.Duration,\n// returning the closest duration value in the event of overflow.\nfunc (x *Duration) AsDuration() time.Duration {\n\tsecs := x.GetSeconds()\n\tnanos := x.GetNanos()\n\td := time.Duration(secs) * time.Second\n\toverflow := d/time.Second != time.Duration(secs)\n\td += time.Duration(nanos) * time.Nanosecond\n\toverflow = overflow || (secs < 0 && nanos < 0 && d > 0)\n\toverflow = overflow || (secs > 0 && nanos > 0 && d < 0)\n\tif overflow {\n\t\tswitch {\n\t\tcase secs < 0:\n\t\t\treturn time.Duration(math.MinInt64)\n\t\tcase secs > 0:\n\t\t\treturn time.Duration(math.MaxInt64)\n\t\t}\n\t}\n\treturn d\n}\n\n// IsValid reports whether the duration is valid.\n// It is equivalent to CheckValid == nil.\nfunc (x *Duration) IsValid() bool {\n\treturn x.check() == 0\n}\n\n// CheckValid returns an error if the duration is invalid.\n// In particular, it checks whether the value is within the range of\n// -10000 years to +10000 years inclusive.\n// An error is reported for a nil Duration.\nfunc (x *Duration) CheckValid() error {\n\tswitch x.check() {\n\tcase invalidNil:\n\t\treturn protoimpl.X.NewError(\"invalid nil Duration\")\n\tcase invalidUnderflow:\n\t\treturn protoimpl.X.NewError(\"duration (%v) exceeds -10000 years\", x)\n\tcase invalidOverflow:\n\t\treturn protoimpl.X.NewError(\"duration (%v) exceeds +10000 years\", x)\n\tcase invalidNanosRange:\n\t\treturn protoimpl.X.NewError(\"duration (%v) has out-of-range nanos\", x)\n\tcase invalidNanosSign:\n\t\treturn protoimpl.X.NewError(\"duration (%v) has seconds and nanos with different signs\", x)\n\tdefault:\n\t\treturn nil\n\t}\n}\n\nconst (\n\t_ = iota\n\tinvalidNil\n\tinvalidUnderflow\n\tinvalidOverflow\n\tinvalidNanosRange\n\tinvalidNanosSign\n)\n\nfunc (x *Duration) check() uint {\n\tconst absDuration = 315576000000 // 10000yr * 365.25day/yr * 24hr/day * 60min/hr * 60sec/min\n\tsecs := x.GetSeconds()\n\tnanos := x.GetNanos()\n\tswitch {\n\tcase x == nil:\n\t\treturn invalidNil\n\tcase secs < -absDuration:\n\t\treturn invalidUnderflow\n\tcase secs > +absDuration:\n\t\treturn invalidOverflow\n\tcase nanos <= -1e9 || nanos >= +1e9:\n\t\treturn invalidNanosRange\n\tcase (secs > 0 && nanos < 0) || (secs < 0 && nanos > 0):\n\t\treturn invalidNanosSign\n\tdefault:\n\t\treturn 0\n\t}\n}\n\nfunc (x *Duration) Reset() {\n\t*x = Duration{}\n\tmi := &file_google_protobuf_duration_proto_msgTypes[0]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *Duration) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Duration) ProtoMessage() {}\n\nfunc (x *Duration) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_duration_proto_msgTypes[0]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Duration.ProtoReflect.Descriptor instead.\nfunc (*Duration) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_duration_proto_rawDescGZIP(), []int{0}\n}\n\nfunc (x *Duration) GetSeconds() int64 {\n\tif x != nil {\n\t\treturn x.Seconds\n\t}\n\treturn 0\n}\n\nfunc (x *Duration) GetNanos() int32 {\n\tif x != nil {\n\t\treturn x.Nanos\n\t}\n\treturn 0\n}\n\nvar File_google_protobuf_duration_proto protoreflect.FileDescriptor\n\nvar file_google_protobuf_duration_proto_rawDesc = []byte{\n\t0x0a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,\n\t0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,\n\t0x12, 0x0f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,\n\t0x66, 0x22, 0x3a, 0x0a, 0x08, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a,\n\t0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07,\n\t0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6e, 0x6f, 0x73,\n\t0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x42, 0x83, 0x01,\n\t0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,\n\t0x74, 0x6f, 0x62, 0x75, 0x66, 0x42, 0x0d, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50,\n\t0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x31, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67,\n\t0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,\n\t0x75, 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x2f, 0x64,\n\t0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x70, 0x62, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x03, 0x47,\n\t0x50, 0x42, 0xaa, 0x02, 0x1e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x74,\n\t0x6f, 0x62, 0x75, 0x66, 0x2e, 0x57, 0x65, 0x6c, 0x6c, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x54, 0x79,\n\t0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,\n}\n\nvar (\n\tfile_google_protobuf_duration_proto_rawDescOnce sync.Once\n\tfile_google_protobuf_duration_proto_rawDescData = file_google_protobuf_duration_proto_rawDesc\n)\n\nfunc file_google_protobuf_duration_proto_rawDescGZIP() []byte {\n\tfile_google_protobuf_duration_proto_rawDescOnce.Do(func() {\n\t\tfile_google_protobuf_duration_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_protobuf_duration_proto_rawDescData)\n\t})\n\treturn file_google_protobuf_duration_proto_rawDescData\n}\n\nvar file_google_protobuf_duration_proto_msgTypes = make([]protoimpl.MessageInfo, 1)\nvar file_google_protobuf_duration_proto_goTypes = []any{\n\t(*Duration)(nil), // 0: google.protobuf.Duration\n}\nvar file_google_protobuf_duration_proto_depIdxs = []int32{\n\t0, // [0:0] is the sub-list for method output_type\n\t0, // [0:0] is the sub-list for method input_type\n\t0, // [0:0] is the sub-list for extension type_name\n\t0, // [0:0] is the sub-list for extension extendee\n\t0, // [0:0] is the sub-list for field type_name\n}\n\nfunc init() { file_google_protobuf_duration_proto_init() }\nfunc file_google_protobuf_duration_proto_init() {\n\tif File_google_protobuf_duration_proto != nil {\n\t\treturn\n\t}\n\ttype x struct{}\n\tout := protoimpl.TypeBuilder{\n\t\tFile: protoimpl.DescBuilder{\n\t\t\tGoPackagePath: reflect.TypeOf(x{}).PkgPath(),\n\t\t\tRawDescriptor: file_google_protobuf_duration_proto_rawDesc,\n\t\t\tNumEnums:      0,\n\t\t\tNumMessages:   1,\n\t\t\tNumExtensions: 0,\n\t\t\tNumServices:   0,\n\t\t},\n\t\tGoTypes:           file_google_protobuf_duration_proto_goTypes,\n\t\tDependencyIndexes: file_google_protobuf_duration_proto_depIdxs,\n\t\tMessageInfos:      file_google_protobuf_duration_proto_msgTypes,\n\t}.Build()\n\tFile_google_protobuf_duration_proto = out.File\n\tfile_google_protobuf_duration_proto_rawDesc = nil\n\tfile_google_protobuf_duration_proto_goTypes = nil\n\tfile_google_protobuf_duration_proto_depIdxs = nil\n}\n"
  },
  {
    "path": "vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go",
    "content": "// Protocol Buffers - Google's data interchange format\n// Copyright 2008 Google Inc.  All rights reserved.\n// https://developers.google.com/protocol-buffers/\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n//     * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n//     * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n//     * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n// Code generated by protoc-gen-go. DO NOT EDIT.\n// source: google/protobuf/timestamp.proto\n\n// Package timestamppb contains generated types for google/protobuf/timestamp.proto.\n//\n// The Timestamp message represents a timestamp,\n// an instant in time since the Unix epoch (January 1st, 1970).\n//\n// # Conversion to a Go Time\n//\n// The AsTime method can be used to convert a Timestamp message to a\n// standard Go time.Time value in UTC:\n//\n//\tt := ts.AsTime()\n//\t... // make use of t as a time.Time\n//\n// Converting to a time.Time is a common operation so that the extensive\n// set of time-based operations provided by the time package can be leveraged.\n// See https://golang.org/pkg/time for more information.\n//\n// The AsTime method performs the conversion on a best-effort basis. Timestamps\n// with denormal values (e.g., nanoseconds beyond 0 and 99999999, inclusive)\n// are normalized during the conversion to a time.Time. To manually check for\n// invalid Timestamps per the documented limitations in timestamp.proto,\n// additionally call the CheckValid method:\n//\n//\tif err := ts.CheckValid(); err != nil {\n//\t\t... // handle error\n//\t}\n//\n// # Conversion from a Go Time\n//\n// The timestamppb.New function can be used to construct a Timestamp message\n// from a standard Go time.Time value:\n//\n//\tts := timestamppb.New(t)\n//\t... // make use of ts as a *timestamppb.Timestamp\n//\n// In order to construct a Timestamp representing the current time, use Now:\n//\n//\tts := timestamppb.Now()\n//\t... // make use of ts as a *timestamppb.Timestamp\npackage timestamppb\n\nimport (\n\tprotoreflect \"google.golang.org/protobuf/reflect/protoreflect\"\n\tprotoimpl \"google.golang.org/protobuf/runtime/protoimpl\"\n\treflect \"reflect\"\n\tsync \"sync\"\n\ttime \"time\"\n)\n\n// A Timestamp represents a point in time independent of any time zone or local\n// calendar, encoded as a count of seconds and fractions of seconds at\n// nanosecond resolution. The count is relative to an epoch at UTC midnight on\n// January 1, 1970, in the proleptic Gregorian calendar which extends the\n// Gregorian calendar backwards to year one.\n//\n// All minutes are 60 seconds long. Leap seconds are \"smeared\" so that no leap\n// second table is needed for interpretation, using a [24-hour linear\n// smear](https://developers.google.com/time/smear).\n//\n// The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By\n// restricting to that range, we ensure that we can convert to and from [RFC\n// 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.\n//\n// # Examples\n//\n// Example 1: Compute Timestamp from POSIX `time()`.\n//\n//\tTimestamp timestamp;\n//\ttimestamp.set_seconds(time(NULL));\n//\ttimestamp.set_nanos(0);\n//\n// Example 2: Compute Timestamp from POSIX `gettimeofday()`.\n//\n//\tstruct timeval tv;\n//\tgettimeofday(&tv, NULL);\n//\n//\tTimestamp timestamp;\n//\ttimestamp.set_seconds(tv.tv_sec);\n//\ttimestamp.set_nanos(tv.tv_usec * 1000);\n//\n// Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n//\n//\tFILETIME ft;\n//\tGetSystemTimeAsFileTime(&ft);\n//\tUINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;\n//\n//\t// A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z\n//\t// is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.\n//\tTimestamp timestamp;\n//\ttimestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));\n//\ttimestamp.set_nanos((INT32) ((ticks % 10000000) * 100));\n//\n// Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.\n//\n//\tlong millis = System.currentTimeMillis();\n//\n//\tTimestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)\n//\t    .setNanos((int) ((millis % 1000) * 1000000)).build();\n//\n// Example 5: Compute Timestamp from Java `Instant.now()`.\n//\n//\tInstant now = Instant.now();\n//\n//\tTimestamp timestamp =\n//\t    Timestamp.newBuilder().setSeconds(now.getEpochSecond())\n//\t        .setNanos(now.getNano()).build();\n//\n// Example 6: Compute Timestamp from current time in Python.\n//\n//\ttimestamp = Timestamp()\n//\ttimestamp.GetCurrentTime()\n//\n// # JSON Mapping\n//\n// In JSON format, the Timestamp type is encoded as a string in the\n// [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the\n// format is \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\"\n// where {year} is always expressed using four digits while {month}, {day},\n// {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional\n// seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),\n// are optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone\n// is required. A proto3 JSON serializer should always use UTC (as indicated by\n// \"Z\") when printing the Timestamp type and a proto3 JSON parser should be\n// able to accept both UTC and other timezones (as indicated by an offset).\n//\n// For example, \"2017-01-15T01:30:15.01Z\" encodes 15.01 seconds past\n// 01:30 UTC on January 15, 2017.\n//\n// In JavaScript, one can convert a Date object to this format using the\n// standard\n// [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)\n// method. In Python, a standard `datetime.datetime` object can be converted\n// to this format using\n// [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with\n// the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use\n// the Joda Time's [`ISODateTimeFormat.dateTime()`](\n// http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()\n// ) to obtain a formatter capable of generating timestamps in this format.\ntype Timestamp struct {\n\tstate         protoimpl.MessageState\n\tsizeCache     protoimpl.SizeCache\n\tunknownFields protoimpl.UnknownFields\n\n\t// Represents seconds of UTC time since Unix epoch\n\t// 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to\n\t// 9999-12-31T23:59:59Z inclusive.\n\tSeconds int64 `protobuf:\"varint,1,opt,name=seconds,proto3\" json:\"seconds,omitempty\"`\n\t// Non-negative fractions of a second at nanosecond resolution. Negative\n\t// second values with fractions must still have non-negative nanos values\n\t// that count forward in time. Must be from 0 to 999,999,999\n\t// inclusive.\n\tNanos int32 `protobuf:\"varint,2,opt,name=nanos,proto3\" json:\"nanos,omitempty\"`\n}\n\n// Now constructs a new Timestamp from the current time.\nfunc Now() *Timestamp {\n\treturn New(time.Now())\n}\n\n// New constructs a new Timestamp from the provided time.Time.\nfunc New(t time.Time) *Timestamp {\n\treturn &Timestamp{Seconds: int64(t.Unix()), Nanos: int32(t.Nanosecond())}\n}\n\n// AsTime converts x to a time.Time.\nfunc (x *Timestamp) AsTime() time.Time {\n\treturn time.Unix(int64(x.GetSeconds()), int64(x.GetNanos())).UTC()\n}\n\n// IsValid reports whether the timestamp is valid.\n// It is equivalent to CheckValid == nil.\nfunc (x *Timestamp) IsValid() bool {\n\treturn x.check() == 0\n}\n\n// CheckValid returns an error if the timestamp is invalid.\n// In particular, it checks whether the value represents a date that is\n// in the range of 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.\n// An error is reported for a nil Timestamp.\nfunc (x *Timestamp) CheckValid() error {\n\tswitch x.check() {\n\tcase invalidNil:\n\t\treturn protoimpl.X.NewError(\"invalid nil Timestamp\")\n\tcase invalidUnderflow:\n\t\treturn protoimpl.X.NewError(\"timestamp (%v) before 0001-01-01\", x)\n\tcase invalidOverflow:\n\t\treturn protoimpl.X.NewError(\"timestamp (%v) after 9999-12-31\", x)\n\tcase invalidNanos:\n\t\treturn protoimpl.X.NewError(\"timestamp (%v) has out-of-range nanos\", x)\n\tdefault:\n\t\treturn nil\n\t}\n}\n\nconst (\n\t_ = iota\n\tinvalidNil\n\tinvalidUnderflow\n\tinvalidOverflow\n\tinvalidNanos\n)\n\nfunc (x *Timestamp) check() uint {\n\tconst minTimestamp = -62135596800  // Seconds between 1970-01-01T00:00:00Z and 0001-01-01T00:00:00Z, inclusive\n\tconst maxTimestamp = +253402300799 // Seconds between 1970-01-01T00:00:00Z and 9999-12-31T23:59:59Z, inclusive\n\tsecs := x.GetSeconds()\n\tnanos := x.GetNanos()\n\tswitch {\n\tcase x == nil:\n\t\treturn invalidNil\n\tcase secs < minTimestamp:\n\t\treturn invalidUnderflow\n\tcase secs > maxTimestamp:\n\t\treturn invalidOverflow\n\tcase nanos < 0 || nanos >= 1e9:\n\t\treturn invalidNanos\n\tdefault:\n\t\treturn 0\n\t}\n}\n\nfunc (x *Timestamp) Reset() {\n\t*x = Timestamp{}\n\tmi := &file_google_protobuf_timestamp_proto_msgTypes[0]\n\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\tms.StoreMessageInfo(mi)\n}\n\nfunc (x *Timestamp) String() string {\n\treturn protoimpl.X.MessageStringOf(x)\n}\n\nfunc (*Timestamp) ProtoMessage() {}\n\nfunc (x *Timestamp) ProtoReflect() protoreflect.Message {\n\tmi := &file_google_protobuf_timestamp_proto_msgTypes[0]\n\tif x != nil {\n\t\tms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))\n\t\tif ms.LoadMessageInfo() == nil {\n\t\t\tms.StoreMessageInfo(mi)\n\t\t}\n\t\treturn ms\n\t}\n\treturn mi.MessageOf(x)\n}\n\n// Deprecated: Use Timestamp.ProtoReflect.Descriptor instead.\nfunc (*Timestamp) Descriptor() ([]byte, []int) {\n\treturn file_google_protobuf_timestamp_proto_rawDescGZIP(), []int{0}\n}\n\nfunc (x *Timestamp) GetSeconds() int64 {\n\tif x != nil {\n\t\treturn x.Seconds\n\t}\n\treturn 0\n}\n\nfunc (x *Timestamp) GetNanos() int32 {\n\tif x != nil {\n\t\treturn x.Nanos\n\t}\n\treturn 0\n}\n\nvar File_google_protobuf_timestamp_proto protoreflect.FileDescriptor\n\nvar file_google_protobuf_timestamp_proto_rawDesc = []byte{\n\t0x0a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,\n\t0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74,\n\t0x6f, 0x12, 0x0f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,\n\t0x75, 0x66, 0x22, 0x3b, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12,\n\t0x18, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03,\n\t0x52, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6e,\n\t0x6f, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x42,\n\t0x85, 0x01, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,\n\t0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x42, 0x0e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,\n\t0x6d, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x32, 0x67, 0x6f, 0x6f, 0x67, 0x6c,\n\t0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f,\n\t0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x6b, 0x6e, 0x6f, 0x77,\n\t0x6e, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x70, 0x62, 0xf8, 0x01, 0x01,\n\t0xa2, 0x02, 0x03, 0x47, 0x50, 0x42, 0xaa, 0x02, 0x1e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,\n\t0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x57, 0x65, 0x6c, 0x6c, 0x4b, 0x6e, 0x6f,\n\t0x77, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,\n}\n\nvar (\n\tfile_google_protobuf_timestamp_proto_rawDescOnce sync.Once\n\tfile_google_protobuf_timestamp_proto_rawDescData = file_google_protobuf_timestamp_proto_rawDesc\n)\n\nfunc file_google_protobuf_timestamp_proto_rawDescGZIP() []byte {\n\tfile_google_protobuf_timestamp_proto_rawDescOnce.Do(func() {\n\t\tfile_google_protobuf_timestamp_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_protobuf_timestamp_proto_rawDescData)\n\t})\n\treturn file_google_protobuf_timestamp_proto_rawDescData\n}\n\nvar file_google_protobuf_timestamp_proto_msgTypes = make([]protoimpl.MessageInfo, 1)\nvar file_google_protobuf_timestamp_proto_goTypes = []any{\n\t(*Timestamp)(nil), // 0: google.protobuf.Timestamp\n}\nvar file_google_protobuf_timestamp_proto_depIdxs = []int32{\n\t0, // [0:0] is the sub-list for method output_type\n\t0, // [0:0] is the sub-list for method input_type\n\t0, // [0:0] is the sub-list for extension type_name\n\t0, // [0:0] is the sub-list for extension extendee\n\t0, // [0:0] is the sub-list for field type_name\n}\n\nfunc init() { file_google_protobuf_timestamp_proto_init() }\nfunc file_google_protobuf_timestamp_proto_init() {\n\tif File_google_protobuf_timestamp_proto != nil {\n\t\treturn\n\t}\n\ttype x struct{}\n\tout := protoimpl.TypeBuilder{\n\t\tFile: protoimpl.DescBuilder{\n\t\t\tGoPackagePath: reflect.TypeOf(x{}).PkgPath(),\n\t\t\tRawDescriptor: file_google_protobuf_timestamp_proto_rawDesc,\n\t\t\tNumEnums:      0,\n\t\t\tNumMessages:   1,\n\t\t\tNumExtensions: 0,\n\t\t\tNumServices:   0,\n\t\t},\n\t\tGoTypes:           file_google_protobuf_timestamp_proto_goTypes,\n\t\tDependencyIndexes: file_google_protobuf_timestamp_proto_depIdxs,\n\t\tMessageInfos:      file_google_protobuf_timestamp_proto_msgTypes,\n\t}.Build()\n\tFile_google_protobuf_timestamp_proto = out.File\n\tfile_google_protobuf_timestamp_proto_rawDesc = nil\n\tfile_google_protobuf_timestamp_proto_goTypes = nil\n\tfile_google_protobuf_timestamp_proto_depIdxs = nil\n}\n"
  },
  {
    "path": "vendor/gopkg.in/evanphx/json-patch.v4/.gitignore",
    "content": "# editor and IDE paraphernalia\n.idea\n.vscode\n\n# macOS paraphernalia\n.DS_Store\n"
  },
  {
    "path": "vendor/gopkg.in/evanphx/json-patch.v4/LICENSE",
    "content": "Copyright (c) 2014, Evan Phoenix\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without \nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n  list of conditions and the following disclaimer.\n* Redistributions in binary form must reproduce the above copyright notice,\n  this list of conditions and the following disclaimer in the documentation\n  and/or other materials provided with the distribution.\n* Neither the name of the Evan Phoenix nor the names of its contributors \n  may be used to endorse or promote products derived from this software \n  without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" \nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE \nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE \nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE \nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL \nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR \nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER \nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, \nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE \nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/gopkg.in/evanphx/json-patch.v4/README.md",
    "content": "# JSON-Patch\n`jsonpatch` is a library which provides functionality for both applying\n[RFC6902 JSON patches](http://tools.ietf.org/html/rfc6902) against documents, as\nwell as for calculating & applying [RFC7396 JSON merge patches](https://tools.ietf.org/html/rfc7396).\n\n[![GoDoc](https://godoc.org/github.com/evanphx/json-patch?status.svg)](http://godoc.org/github.com/evanphx/json-patch)\n[![Build Status](https://travis-ci.org/evanphx/json-patch.svg?branch=master)](https://travis-ci.org/evanphx/json-patch)\n[![Report Card](https://goreportcard.com/badge/github.com/evanphx/json-patch)](https://goreportcard.com/report/github.com/evanphx/json-patch)\n\n# Get It!\n\n**Latest and greatest**: \n```bash\ngo get -u github.com/evanphx/json-patch/v5\n```\n\n**Stable Versions**:\n* Version 5: `go get -u gopkg.in/evanphx/json-patch.v5`\n* Version 4: `go get -u gopkg.in/evanphx/json-patch.v4`\n\n(previous versions below `v3` are unavailable)\n\n# Use It!\n* [Create and apply a merge patch](#create-and-apply-a-merge-patch)\n* [Create and apply a JSON Patch](#create-and-apply-a-json-patch)\n* [Comparing JSON documents](#comparing-json-documents)\n* [Combine merge patches](#combine-merge-patches)\n\n\n# Configuration\n\n* There is a global configuration variable `jsonpatch.SupportNegativeIndices`.\n  This defaults to `true` and enables the non-standard practice of allowing\n  negative indices to mean indices starting at the end of an array. This\n  functionality can be disabled by setting `jsonpatch.SupportNegativeIndices =\n  false`.\n\n* There is a global configuration variable `jsonpatch.AccumulatedCopySizeLimit`,\n  which limits the total size increase in bytes caused by \"copy\" operations in a\n  patch. It defaults to 0, which means there is no limit.\n\nThese global variables control the behavior of `jsonpatch.Apply`.\n\nAn alternative to `jsonpatch.Apply` is `jsonpatch.ApplyWithOptions` whose behavior\nis controlled by an `options` parameter of type `*jsonpatch.ApplyOptions`.\n\nStructure `jsonpatch.ApplyOptions` includes the configuration options above \nand adds two new options: `AllowMissingPathOnRemove` and `EnsurePathExistsOnAdd`.\n\nWhen `AllowMissingPathOnRemove` is set to `true`, `jsonpatch.ApplyWithOptions` will ignore\n`remove` operations whose `path` points to a non-existent location in the JSON document.\n`AllowMissingPathOnRemove` defaults to `false` which will lead to `jsonpatch.ApplyWithOptions`\nreturning an error when hitting a missing `path` on `remove`.\n\nWhen `EnsurePathExistsOnAdd` is set to `true`, `jsonpatch.ApplyWithOptions` will make sure\nthat `add` operations produce all the `path` elements that are missing from the target object.\n\nUse `jsonpatch.NewApplyOptions` to create an instance of `jsonpatch.ApplyOptions`\nwhose values are populated from the global configuration variables.\n\n## Create and apply a merge patch\nGiven both an original JSON document and a modified JSON document, you can create\na [Merge Patch](https://tools.ietf.org/html/rfc7396) document. \n\nIt can describe the changes needed to convert from the original to the \nmodified JSON document.\n\nOnce you have a merge patch, you can apply it to other JSON documents using the\n`jsonpatch.MergePatch(document, patch)` function.\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\tjsonpatch \"github.com/evanphx/json-patch\"\n)\n\nfunc main() {\n\t// Let's create a merge patch from these two documents...\n\toriginal := []byte(`{\"name\": \"John\", \"age\": 24, \"height\": 3.21}`)\n\ttarget := []byte(`{\"name\": \"Jane\", \"age\": 24}`)\n\n\tpatch, err := jsonpatch.CreateMergePatch(original, target)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\t// Now lets apply the patch against a different JSON document...\n\n\talternative := []byte(`{\"name\": \"Tina\", \"age\": 28, \"height\": 3.75}`)\n\tmodifiedAlternative, err := jsonpatch.MergePatch(alternative, patch)\n\n\tfmt.Printf(\"patch document:   %s\\n\", patch)\n\tfmt.Printf(\"updated alternative doc: %s\\n\", modifiedAlternative)\n}\n```\n\nWhen ran, you get the following output:\n\n```bash\n$ go run main.go\npatch document:   {\"height\":null,\"name\":\"Jane\"}\nupdated alternative doc: {\"age\":28,\"name\":\"Jane\"}\n```\n\n## Create and apply a JSON Patch\nYou can create patch objects using `DecodePatch([]byte)`, which can then \nbe applied against JSON documents.\n\nThe following is an example of creating a patch from two operations, and\napplying it against a JSON document.\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\tjsonpatch \"github.com/evanphx/json-patch\"\n)\n\nfunc main() {\n\toriginal := []byte(`{\"name\": \"John\", \"age\": 24, \"height\": 3.21}`)\n\tpatchJSON := []byte(`[\n\t\t{\"op\": \"replace\", \"path\": \"/name\", \"value\": \"Jane\"},\n\t\t{\"op\": \"remove\", \"path\": \"/height\"}\n\t]`)\n\n\tpatch, err := jsonpatch.DecodePatch(patchJSON)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tmodified, err := patch.Apply(original)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Printf(\"Original document: %s\\n\", original)\n\tfmt.Printf(\"Modified document: %s\\n\", modified)\n}\n```\n\nWhen ran, you get the following output:\n\n```bash\n$ go run main.go\nOriginal document: {\"name\": \"John\", \"age\": 24, \"height\": 3.21}\nModified document: {\"age\":24,\"name\":\"Jane\"}\n```\n\n## Comparing JSON documents\nDue to potential whitespace and ordering differences, one cannot simply compare\nJSON strings or byte-arrays directly. \n\nAs such, you can instead use `jsonpatch.Equal(document1, document2)` to \ndetermine if two JSON documents are _structurally_ equal. This ignores\nwhitespace differences, and key-value ordering.\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\tjsonpatch \"github.com/evanphx/json-patch\"\n)\n\nfunc main() {\n\toriginal := []byte(`{\"name\": \"John\", \"age\": 24, \"height\": 3.21}`)\n\tsimilar := []byte(`\n\t\t{\n\t\t\t\"age\": 24,\n\t\t\t\"height\": 3.21,\n\t\t\t\"name\": \"John\"\n\t\t}\n\t`)\n\tdifferent := []byte(`{\"name\": \"Jane\", \"age\": 20, \"height\": 3.37}`)\n\n\tif jsonpatch.Equal(original, similar) {\n\t\tfmt.Println(`\"original\" is structurally equal to \"similar\"`)\n\t}\n\n\tif !jsonpatch.Equal(original, different) {\n\t\tfmt.Println(`\"original\" is _not_ structurally equal to \"different\"`)\n\t}\n}\n```\n\nWhen ran, you get the following output:\n```bash\n$ go run main.go\n\"original\" is structurally equal to \"similar\"\n\"original\" is _not_ structurally equal to \"different\"\n```\n\n## Combine merge patches\nGiven two JSON merge patch documents, it is possible to combine them into a \nsingle merge patch which can describe both set of changes.\n\nThe resulting merge patch can be used such that applying it results in a\ndocument structurally similar as merging each merge patch to the document\nin succession. \n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\tjsonpatch \"github.com/evanphx/json-patch\"\n)\n\nfunc main() {\n\toriginal := []byte(`{\"name\": \"John\", \"age\": 24, \"height\": 3.21}`)\n\n\tnameAndHeight := []byte(`{\"height\":null,\"name\":\"Jane\"}`)\n\tageAndEyes := []byte(`{\"age\":4.23,\"eyes\":\"blue\"}`)\n\n\t// Let's combine these merge patch documents...\n\tcombinedPatch, err := jsonpatch.MergeMergePatches(nameAndHeight, ageAndEyes)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\t// Apply each patch individual against the original document\n\twithoutCombinedPatch, err := jsonpatch.MergePatch(original, nameAndHeight)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\twithoutCombinedPatch, err = jsonpatch.MergePatch(withoutCombinedPatch, ageAndEyes)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\t// Apply the combined patch against the original document\n\n\twithCombinedPatch, err := jsonpatch.MergePatch(original, combinedPatch)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\t// Do both result in the same thing? They should!\n\tif jsonpatch.Equal(withCombinedPatch, withoutCombinedPatch) {\n\t\tfmt.Println(\"Both JSON documents are structurally the same!\")\n\t}\n\n\tfmt.Printf(\"combined merge patch: %s\", combinedPatch)\n}\n```\n\nWhen ran, you get the following output:\n```bash\n$ go run main.go\nBoth JSON documents are structurally the same!\ncombined merge patch: {\"age\":4.23,\"eyes\":\"blue\",\"height\":null,\"name\":\"Jane\"}\n```\n\n# CLI for comparing JSON documents\nYou can install the commandline program `json-patch`.\n\nThis program can take multiple JSON patch documents as arguments, \nand fed a JSON document from `stdin`. It will apply the patch(es) against \nthe document and output the modified doc.\n\n**patch.1.json**\n```json\n[\n    {\"op\": \"replace\", \"path\": \"/name\", \"value\": \"Jane\"},\n    {\"op\": \"remove\", \"path\": \"/height\"}\n]\n```\n\n**patch.2.json**\n```json\n[\n    {\"op\": \"add\", \"path\": \"/address\", \"value\": \"123 Main St\"},\n    {\"op\": \"replace\", \"path\": \"/age\", \"value\": \"21\"}\n]\n```\n\n**document.json**\n```json\n{\n    \"name\": \"John\",\n    \"age\": 24,\n    \"height\": 3.21\n}\n```\n\nYou can then run:\n\n```bash\n$ go install github.com/evanphx/json-patch/cmd/json-patch\n$ cat document.json | json-patch -p patch.1.json -p patch.2.json\n{\"address\":\"123 Main St\",\"age\":\"21\",\"name\":\"Jane\"}\n```\n\n# Help It!\nContributions are welcomed! Leave [an issue](https://github.com/evanphx/json-patch/issues)\nor [create a PR](https://github.com/evanphx/json-patch/compare).\n\n\nBefore creating a pull request, we'd ask that you make sure tests are passing\nand that you have added new tests when applicable.\n\nContributors can run tests using:\n\n```bash\ngo test -cover ./...\n```\n\nBuilds for pull requests are tested automatically \nusing [TravisCI](https://travis-ci.org/evanphx/json-patch).\n"
  },
  {
    "path": "vendor/gopkg.in/evanphx/json-patch.v4/errors.go",
    "content": "package jsonpatch\n\nimport \"fmt\"\n\n// AccumulatedCopySizeError is an error type returned when the accumulated size\n// increase caused by copy operations in a patch operation has exceeded the\n// limit.\ntype AccumulatedCopySizeError struct {\n\tlimit       int64\n\taccumulated int64\n}\n\n// NewAccumulatedCopySizeError returns an AccumulatedCopySizeError.\nfunc NewAccumulatedCopySizeError(l, a int64) *AccumulatedCopySizeError {\n\treturn &AccumulatedCopySizeError{limit: l, accumulated: a}\n}\n\n// Error implements the error interface.\nfunc (a *AccumulatedCopySizeError) Error() string {\n\treturn fmt.Sprintf(\"Unable to complete the copy, the accumulated size increase of copy is %d, exceeding the limit %d\", a.accumulated, a.limit)\n}\n\n// ArraySizeError is an error type returned when the array size has exceeded\n// the limit.\ntype ArraySizeError struct {\n\tlimit int\n\tsize  int\n}\n\n// NewArraySizeError returns an ArraySizeError.\nfunc NewArraySizeError(l, s int) *ArraySizeError {\n\treturn &ArraySizeError{limit: l, size: s}\n}\n\n// Error implements the error interface.\nfunc (a *ArraySizeError) Error() string {\n\treturn fmt.Sprintf(\"Unable to create array of size %d, limit is %d\", a.size, a.limit)\n}\n"
  },
  {
    "path": "vendor/gopkg.in/evanphx/json-patch.v4/merge.go",
    "content": "package jsonpatch\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"reflect\"\n)\n\nfunc merge(cur, patch *lazyNode, mergeMerge bool) *lazyNode {\n\tcurDoc, err := cur.intoDoc()\n\n\tif err != nil {\n\t\tpruneNulls(patch)\n\t\treturn patch\n\t}\n\n\tpatchDoc, err := patch.intoDoc()\n\n\tif err != nil {\n\t\treturn patch\n\t}\n\n\tmergeDocs(curDoc, patchDoc, mergeMerge)\n\n\treturn cur\n}\n\nfunc mergeDocs(doc, patch *partialDoc, mergeMerge bool) {\n\tfor k, v := range *patch {\n\t\tif v == nil {\n\t\t\tif mergeMerge {\n\t\t\t\t(*doc)[k] = nil\n\t\t\t} else {\n\t\t\t\tdelete(*doc, k)\n\t\t\t}\n\t\t} else {\n\t\t\tcur, ok := (*doc)[k]\n\n\t\t\tif !ok || cur == nil {\n\t\t\t\tif !mergeMerge {\n\t\t\t\t\tpruneNulls(v)\n\t\t\t\t}\n\n\t\t\t\t(*doc)[k] = v\n\t\t\t} else {\n\t\t\t\t(*doc)[k] = merge(cur, v, mergeMerge)\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc pruneNulls(n *lazyNode) {\n\tsub, err := n.intoDoc()\n\n\tif err == nil {\n\t\tpruneDocNulls(sub)\n\t} else {\n\t\tary, err := n.intoAry()\n\n\t\tif err == nil {\n\t\t\tpruneAryNulls(ary)\n\t\t}\n\t}\n}\n\nfunc pruneDocNulls(doc *partialDoc) *partialDoc {\n\tfor k, v := range *doc {\n\t\tif v == nil {\n\t\t\tdelete(*doc, k)\n\t\t} else {\n\t\t\tpruneNulls(v)\n\t\t}\n\t}\n\n\treturn doc\n}\n\nfunc pruneAryNulls(ary *partialArray) *partialArray {\n\tnewAry := []*lazyNode{}\n\n\tfor _, v := range *ary {\n\t\tif v != nil {\n\t\t\tpruneNulls(v)\n\t\t}\n\t\tnewAry = append(newAry, v)\n\t}\n\n\t*ary = newAry\n\n\treturn ary\n}\n\nvar ErrBadJSONDoc = fmt.Errorf(\"Invalid JSON Document\")\nvar ErrBadJSONPatch = fmt.Errorf(\"Invalid JSON Patch\")\nvar errBadMergeTypes = fmt.Errorf(\"Mismatched JSON Documents\")\n\n// MergeMergePatches merges two merge patches together, such that\n// applying this resulting merged merge patch to a document yields the same\n// as merging each merge patch to the document in succession.\nfunc MergeMergePatches(patch1Data, patch2Data []byte) ([]byte, error) {\n\treturn doMergePatch(patch1Data, patch2Data, true)\n}\n\n// MergePatch merges the patchData into the docData.\nfunc MergePatch(docData, patchData []byte) ([]byte, error) {\n\treturn doMergePatch(docData, patchData, false)\n}\n\nfunc doMergePatch(docData, patchData []byte, mergeMerge bool) ([]byte, error) {\n\tdoc := &partialDoc{}\n\n\tdocErr := json.Unmarshal(docData, doc)\n\n\tpatch := &partialDoc{}\n\n\tpatchErr := json.Unmarshal(patchData, patch)\n\n\tif _, ok := docErr.(*json.SyntaxError); ok {\n\t\treturn nil, ErrBadJSONDoc\n\t}\n\n\tif _, ok := patchErr.(*json.SyntaxError); ok {\n\t\treturn nil, ErrBadJSONPatch\n\t}\n\n\tif docErr == nil && *doc == nil {\n\t\treturn nil, ErrBadJSONDoc\n\t}\n\n\tif patchErr == nil && *patch == nil {\n\t\treturn nil, ErrBadJSONPatch\n\t}\n\n\tif docErr != nil || patchErr != nil {\n\t\t// Not an error, just not a doc, so we turn straight into the patch\n\t\tif patchErr == nil {\n\t\t\tif mergeMerge {\n\t\t\t\tdoc = patch\n\t\t\t} else {\n\t\t\t\tdoc = pruneDocNulls(patch)\n\t\t\t}\n\t\t} else {\n\t\t\tpatchAry := &partialArray{}\n\t\t\tpatchErr = json.Unmarshal(patchData, patchAry)\n\n\t\t\tif patchErr != nil {\n\t\t\t\treturn nil, ErrBadJSONPatch\n\t\t\t}\n\n\t\t\tpruneAryNulls(patchAry)\n\n\t\t\tout, patchErr := json.Marshal(patchAry)\n\n\t\t\tif patchErr != nil {\n\t\t\t\treturn nil, ErrBadJSONPatch\n\t\t\t}\n\n\t\t\treturn out, nil\n\t\t}\n\t} else {\n\t\tmergeDocs(doc, patch, mergeMerge)\n\t}\n\n\treturn json.Marshal(doc)\n}\n\n// resemblesJSONArray indicates whether the byte-slice \"appears\" to be\n// a JSON array or not.\n// False-positives are possible, as this function does not check the internal\n// structure of the array. It only checks that the outer syntax is present and\n// correct.\nfunc resemblesJSONArray(input []byte) bool {\n\tinput = bytes.TrimSpace(input)\n\n\thasPrefix := bytes.HasPrefix(input, []byte(\"[\"))\n\thasSuffix := bytes.HasSuffix(input, []byte(\"]\"))\n\n\treturn hasPrefix && hasSuffix\n}\n\n// CreateMergePatch will return a merge patch document capable of converting\n// the original document(s) to the modified document(s).\n// The parameters can be bytes of either two JSON Documents, or two arrays of\n// JSON documents.\n// The merge patch returned follows the specification defined at http://tools.ietf.org/html/draft-ietf-appsawg-json-merge-patch-07\nfunc CreateMergePatch(originalJSON, modifiedJSON []byte) ([]byte, error) {\n\toriginalResemblesArray := resemblesJSONArray(originalJSON)\n\tmodifiedResemblesArray := resemblesJSONArray(modifiedJSON)\n\n\t// Do both byte-slices seem like JSON arrays?\n\tif originalResemblesArray && modifiedResemblesArray {\n\t\treturn createArrayMergePatch(originalJSON, modifiedJSON)\n\t}\n\n\t// Are both byte-slices are not arrays? Then they are likely JSON objects...\n\tif !originalResemblesArray && !modifiedResemblesArray {\n\t\treturn createObjectMergePatch(originalJSON, modifiedJSON)\n\t}\n\n\t// None of the above? Then return an error because of mismatched types.\n\treturn nil, errBadMergeTypes\n}\n\n// createObjectMergePatch will return a merge-patch document capable of\n// converting the original document to the modified document.\nfunc createObjectMergePatch(originalJSON, modifiedJSON []byte) ([]byte, error) {\n\toriginalDoc := map[string]interface{}{}\n\tmodifiedDoc := map[string]interface{}{}\n\n\terr := json.Unmarshal(originalJSON, &originalDoc)\n\tif err != nil {\n\t\treturn nil, ErrBadJSONDoc\n\t}\n\n\terr = json.Unmarshal(modifiedJSON, &modifiedDoc)\n\tif err != nil {\n\t\treturn nil, ErrBadJSONDoc\n\t}\n\n\tdest, err := getDiff(originalDoc, modifiedDoc)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn json.Marshal(dest)\n}\n\n// createArrayMergePatch will return an array of merge-patch documents capable\n// of converting the original document to the modified document for each\n// pair of JSON documents provided in the arrays.\n// Arrays of mismatched sizes will result in an error.\nfunc createArrayMergePatch(originalJSON, modifiedJSON []byte) ([]byte, error) {\n\toriginalDocs := []json.RawMessage{}\n\tmodifiedDocs := []json.RawMessage{}\n\n\terr := json.Unmarshal(originalJSON, &originalDocs)\n\tif err != nil {\n\t\treturn nil, ErrBadJSONDoc\n\t}\n\n\terr = json.Unmarshal(modifiedJSON, &modifiedDocs)\n\tif err != nil {\n\t\treturn nil, ErrBadJSONDoc\n\t}\n\n\ttotal := len(originalDocs)\n\tif len(modifiedDocs) != total {\n\t\treturn nil, ErrBadJSONDoc\n\t}\n\n\tresult := []json.RawMessage{}\n\tfor i := 0; i < len(originalDocs); i++ {\n\t\toriginal := originalDocs[i]\n\t\tmodified := modifiedDocs[i]\n\n\t\tpatch, err := createObjectMergePatch(original, modified)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tresult = append(result, json.RawMessage(patch))\n\t}\n\n\treturn json.Marshal(result)\n}\n\n// Returns true if the array matches (must be json types).\n// As is idiomatic for go, an empty array is not the same as a nil array.\nfunc matchesArray(a, b []interface{}) bool {\n\tif len(a) != len(b) {\n\t\treturn false\n\t}\n\tif (a == nil && b != nil) || (a != nil && b == nil) {\n\t\treturn false\n\t}\n\tfor i := range a {\n\t\tif !matchesValue(a[i], b[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Returns true if the values matches (must be json types)\n// The types of the values must match, otherwise it will always return false\n// If two map[string]interface{} are given, all elements must match.\nfunc matchesValue(av, bv interface{}) bool {\n\tif reflect.TypeOf(av) != reflect.TypeOf(bv) {\n\t\treturn false\n\t}\n\tswitch at := av.(type) {\n\tcase string:\n\t\tbt := bv.(string)\n\t\tif bt == at {\n\t\t\treturn true\n\t\t}\n\tcase float64:\n\t\tbt := bv.(float64)\n\t\tif bt == at {\n\t\t\treturn true\n\t\t}\n\tcase bool:\n\t\tbt := bv.(bool)\n\t\tif bt == at {\n\t\t\treturn true\n\t\t}\n\tcase nil:\n\t\t// Both nil, fine.\n\t\treturn true\n\tcase map[string]interface{}:\n\t\tbt := bv.(map[string]interface{})\n\t\tif len(bt) != len(at) {\n\t\t\treturn false\n\t\t}\n\t\tfor key := range bt {\n\t\t\tav, aOK := at[key]\n\t\t\tbv, bOK := bt[key]\n\t\t\tif aOK != bOK {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !matchesValue(av, bv) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\tcase []interface{}:\n\t\tbt := bv.([]interface{})\n\t\treturn matchesArray(at, bt)\n\t}\n\treturn false\n}\n\n// getDiff returns the (recursive) difference between a and b as a map[string]interface{}.\nfunc getDiff(a, b map[string]interface{}) (map[string]interface{}, error) {\n\tinto := map[string]interface{}{}\n\tfor key, bv := range b {\n\t\tav, ok := a[key]\n\t\t// value was added\n\t\tif !ok {\n\t\t\tinto[key] = bv\n\t\t\tcontinue\n\t\t}\n\t\t// If types have changed, replace completely\n\t\tif reflect.TypeOf(av) != reflect.TypeOf(bv) {\n\t\t\tinto[key] = bv\n\t\t\tcontinue\n\t\t}\n\t\t// Types are the same, compare values\n\t\tswitch at := av.(type) {\n\t\tcase map[string]interface{}:\n\t\t\tbt := bv.(map[string]interface{})\n\t\t\tdst := make(map[string]interface{}, len(bt))\n\t\t\tdst, err := getDiff(at, bt)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tif len(dst) > 0 {\n\t\t\t\tinto[key] = dst\n\t\t\t}\n\t\tcase string, float64, bool:\n\t\t\tif !matchesValue(av, bv) {\n\t\t\t\tinto[key] = bv\n\t\t\t}\n\t\tcase []interface{}:\n\t\t\tbt := bv.([]interface{})\n\t\t\tif !matchesArray(at, bt) {\n\t\t\t\tinto[key] = bv\n\t\t\t}\n\t\tcase nil:\n\t\t\tswitch bv.(type) {\n\t\t\tcase nil:\n\t\t\t\t// Both nil, fine.\n\t\t\tdefault:\n\t\t\t\tinto[key] = bv\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(fmt.Sprintf(\"Unknown type:%T in key %s\", av, key))\n\t\t}\n\t}\n\t// Now add all deleted values as nil\n\tfor key := range a {\n\t\t_, found := b[key]\n\t\tif !found {\n\t\t\tinto[key] = nil\n\t\t}\n\t}\n\treturn into, nil\n}\n"
  },
  {
    "path": "vendor/gopkg.in/evanphx/json-patch.v4/patch.go",
    "content": "package jsonpatch\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"github.com/pkg/errors\"\n)\n\nconst (\n\teRaw = iota\n\teDoc\n\teAry\n)\n\nvar (\n\t// SupportNegativeIndices decides whether to support non-standard practice of\n\t// allowing negative indices to mean indices starting at the end of an array.\n\t// Default to true.\n\tSupportNegativeIndices bool = true\n\t// AccumulatedCopySizeLimit limits the total size increase in bytes caused by\n\t// \"copy\" operations in a patch.\n\tAccumulatedCopySizeLimit int64 = 0\n)\n\nvar (\n\tErrTestFailed   = errors.New(\"test failed\")\n\tErrMissing      = errors.New(\"missing value\")\n\tErrUnknownType  = errors.New(\"unknown object type\")\n\tErrInvalid      = errors.New(\"invalid state detected\")\n\tErrInvalidIndex = errors.New(\"invalid index referenced\")\n)\n\ntype lazyNode struct {\n\traw   *json.RawMessage\n\tdoc   partialDoc\n\tary   partialArray\n\twhich int\n}\n\n// Operation is a single JSON-Patch step, such as a single 'add' operation.\ntype Operation map[string]*json.RawMessage\n\n// Patch is an ordered collection of Operations.\ntype Patch []Operation\n\ntype partialDoc map[string]*lazyNode\ntype partialArray []*lazyNode\n\ntype container interface {\n\tget(key string) (*lazyNode, error)\n\tset(key string, val *lazyNode) error\n\tadd(key string, val *lazyNode) error\n\tremove(key string) error\n}\n\nfunc newLazyNode(raw *json.RawMessage) *lazyNode {\n\treturn &lazyNode{raw: raw, doc: nil, ary: nil, which: eRaw}\n}\n\nfunc (n *lazyNode) MarshalJSON() ([]byte, error) {\n\tswitch n.which {\n\tcase eRaw:\n\t\treturn json.Marshal(n.raw)\n\tcase eDoc:\n\t\treturn json.Marshal(n.doc)\n\tcase eAry:\n\t\treturn json.Marshal(n.ary)\n\tdefault:\n\t\treturn nil, ErrUnknownType\n\t}\n}\n\nfunc (n *lazyNode) UnmarshalJSON(data []byte) error {\n\tdest := make(json.RawMessage, len(data))\n\tcopy(dest, data)\n\tn.raw = &dest\n\tn.which = eRaw\n\treturn nil\n}\n\nfunc deepCopy(src *lazyNode) (*lazyNode, int, error) {\n\tif src == nil {\n\t\treturn nil, 0, nil\n\t}\n\ta, err := src.MarshalJSON()\n\tif err != nil {\n\t\treturn nil, 0, err\n\t}\n\tsz := len(a)\n\tra := make(json.RawMessage, sz)\n\tcopy(ra, a)\n\treturn newLazyNode(&ra), sz, nil\n}\n\nfunc (n *lazyNode) intoDoc() (*partialDoc, error) {\n\tif n.which == eDoc {\n\t\treturn &n.doc, nil\n\t}\n\n\tif n.raw == nil {\n\t\treturn nil, ErrInvalid\n\t}\n\n\terr := json.Unmarshal(*n.raw, &n.doc)\n\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tn.which = eDoc\n\treturn &n.doc, nil\n}\n\nfunc (n *lazyNode) intoAry() (*partialArray, error) {\n\tif n.which == eAry {\n\t\treturn &n.ary, nil\n\t}\n\n\tif n.raw == nil {\n\t\treturn nil, ErrInvalid\n\t}\n\n\terr := json.Unmarshal(*n.raw, &n.ary)\n\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tn.which = eAry\n\treturn &n.ary, nil\n}\n\nfunc (n *lazyNode) compact() []byte {\n\tbuf := &bytes.Buffer{}\n\n\tif n.raw == nil {\n\t\treturn nil\n\t}\n\n\terr := json.Compact(buf, *n.raw)\n\n\tif err != nil {\n\t\treturn *n.raw\n\t}\n\n\treturn buf.Bytes()\n}\n\nfunc (n *lazyNode) tryDoc() bool {\n\tif n.raw == nil {\n\t\treturn false\n\t}\n\n\terr := json.Unmarshal(*n.raw, &n.doc)\n\n\tif err != nil {\n\t\treturn false\n\t}\n\n\tn.which = eDoc\n\treturn true\n}\n\nfunc (n *lazyNode) tryAry() bool {\n\tif n.raw == nil {\n\t\treturn false\n\t}\n\n\terr := json.Unmarshal(*n.raw, &n.ary)\n\n\tif err != nil {\n\t\treturn false\n\t}\n\n\tn.which = eAry\n\treturn true\n}\n\nfunc (n *lazyNode) equal(o *lazyNode) bool {\n\tif n.which == eRaw {\n\t\tif !n.tryDoc() && !n.tryAry() {\n\t\t\tif o.which != eRaw {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\treturn bytes.Equal(n.compact(), o.compact())\n\t\t}\n\t}\n\n\tif n.which == eDoc {\n\t\tif o.which == eRaw {\n\t\t\tif !o.tryDoc() {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tif o.which != eDoc {\n\t\t\treturn false\n\t\t}\n\n\t\tif len(n.doc) != len(o.doc) {\n\t\t\treturn false\n\t\t}\n\n\t\tfor k, v := range n.doc {\n\t\t\tov, ok := o.doc[k]\n\n\t\t\tif !ok {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tif (v == nil) != (ov == nil) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tif v == nil && ov == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tif !v.equal(ov) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\treturn true\n\t}\n\n\tif o.which != eAry && !o.tryAry() {\n\t\treturn false\n\t}\n\n\tif len(n.ary) != len(o.ary) {\n\t\treturn false\n\t}\n\n\tfor idx, val := range n.ary {\n\t\tif !val.equal(o.ary[idx]) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n\n// Kind reads the \"op\" field of the Operation.\nfunc (o Operation) Kind() string {\n\tif obj, ok := o[\"op\"]; ok && obj != nil {\n\t\tvar op string\n\n\t\terr := json.Unmarshal(*obj, &op)\n\n\t\tif err != nil {\n\t\t\treturn \"unknown\"\n\t\t}\n\n\t\treturn op\n\t}\n\n\treturn \"unknown\"\n}\n\n// Path reads the \"path\" field of the Operation.\nfunc (o Operation) Path() (string, error) {\n\tif obj, ok := o[\"path\"]; ok && obj != nil {\n\t\tvar op string\n\n\t\terr := json.Unmarshal(*obj, &op)\n\n\t\tif err != nil {\n\t\t\treturn \"unknown\", err\n\t\t}\n\n\t\treturn op, nil\n\t}\n\n\treturn \"unknown\", errors.Wrapf(ErrMissing, \"operation missing path field\")\n}\n\n// From reads the \"from\" field of the Operation.\nfunc (o Operation) From() (string, error) {\n\tif obj, ok := o[\"from\"]; ok && obj != nil {\n\t\tvar op string\n\n\t\terr := json.Unmarshal(*obj, &op)\n\n\t\tif err != nil {\n\t\t\treturn \"unknown\", err\n\t\t}\n\n\t\treturn op, nil\n\t}\n\n\treturn \"unknown\", errors.Wrapf(ErrMissing, \"operation, missing from field\")\n}\n\nfunc (o Operation) value() *lazyNode {\n\tif obj, ok := o[\"value\"]; ok {\n\t\treturn newLazyNode(obj)\n\t}\n\n\treturn nil\n}\n\n// ValueInterface decodes the operation value into an interface.\nfunc (o Operation) ValueInterface() (interface{}, error) {\n\tif obj, ok := o[\"value\"]; ok && obj != nil {\n\t\tvar v interface{}\n\n\t\terr := json.Unmarshal(*obj, &v)\n\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\treturn v, nil\n\t}\n\n\treturn nil, errors.Wrapf(ErrMissing, \"operation, missing value field\")\n}\n\nfunc isArray(buf []byte) bool {\nLoop:\n\tfor _, c := range buf {\n\t\tswitch c {\n\t\tcase ' ':\n\t\tcase '\\n':\n\t\tcase '\\t':\n\t\t\tcontinue\n\t\tcase '[':\n\t\t\treturn true\n\t\tdefault:\n\t\t\tbreak Loop\n\t\t}\n\t}\n\n\treturn false\n}\n\nfunc findObject(pd *container, path string) (container, string) {\n\tdoc := *pd\n\n\tsplit := strings.Split(path, \"/\")\n\n\tif len(split) < 2 {\n\t\treturn nil, \"\"\n\t}\n\n\tparts := split[1 : len(split)-1]\n\n\tkey := split[len(split)-1]\n\n\tvar err error\n\n\tfor _, part := range parts {\n\n\t\tnext, ok := doc.get(decodePatchKey(part))\n\n\t\tif next == nil || ok != nil {\n\t\t\treturn nil, \"\"\n\t\t}\n\n\t\tif isArray(*next.raw) {\n\t\t\tdoc, err = next.intoAry()\n\n\t\t\tif err != nil {\n\t\t\t\treturn nil, \"\"\n\t\t\t}\n\t\t} else {\n\t\t\tdoc, err = next.intoDoc()\n\n\t\t\tif err != nil {\n\t\t\t\treturn nil, \"\"\n\t\t\t}\n\t\t}\n\t}\n\n\treturn doc, decodePatchKey(key)\n}\n\nfunc (d *partialDoc) set(key string, val *lazyNode) error {\n\t(*d)[key] = val\n\treturn nil\n}\n\nfunc (d *partialDoc) add(key string, val *lazyNode) error {\n\t(*d)[key] = val\n\treturn nil\n}\n\nfunc (d *partialDoc) get(key string) (*lazyNode, error) {\n\treturn (*d)[key], nil\n}\n\nfunc (d *partialDoc) remove(key string) error {\n\t_, ok := (*d)[key]\n\tif !ok {\n\t\treturn errors.Wrapf(ErrMissing, \"Unable to remove nonexistent key: %s\", key)\n\t}\n\n\tdelete(*d, key)\n\treturn nil\n}\n\n// set should only be used to implement the \"replace\" operation, so \"key\" must\n// be an already existing index in \"d\".\nfunc (d *partialArray) set(key string, val *lazyNode) error {\n\tidx, err := strconv.Atoi(key)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif idx < 0 {\n\t\tif !SupportNegativeIndices {\n\t\t\treturn errors.Wrapf(ErrInvalidIndex, \"Unable to access invalid index: %d\", idx)\n\t\t}\n\t\tif idx < -len(*d) {\n\t\t\treturn errors.Wrapf(ErrInvalidIndex, \"Unable to access invalid index: %d\", idx)\n\t\t}\n\t\tidx += len(*d)\n\t}\n\n\t(*d)[idx] = val\n\treturn nil\n}\n\nfunc (d *partialArray) add(key string, val *lazyNode) error {\n\tif key == \"-\" {\n\t\t*d = append(*d, val)\n\t\treturn nil\n\t}\n\n\tidx, err := strconv.Atoi(key)\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"value was not a proper array index: '%s'\", key)\n\t}\n\n\tsz := len(*d) + 1\n\n\tary := make([]*lazyNode, sz)\n\n\tcur := *d\n\n\tif idx >= len(ary) {\n\t\treturn errors.Wrapf(ErrInvalidIndex, \"Unable to access invalid index: %d\", idx)\n\t}\n\n\tif idx < 0 {\n\t\tif !SupportNegativeIndices {\n\t\t\treturn errors.Wrapf(ErrInvalidIndex, \"Unable to access invalid index: %d\", idx)\n\t\t}\n\t\tif idx < -len(ary) {\n\t\t\treturn errors.Wrapf(ErrInvalidIndex, \"Unable to access invalid index: %d\", idx)\n\t\t}\n\t\tidx += len(ary)\n\t}\n\n\tcopy(ary[0:idx], cur[0:idx])\n\tary[idx] = val\n\tcopy(ary[idx+1:], cur[idx:])\n\n\t*d = ary\n\treturn nil\n}\n\nfunc (d *partialArray) get(key string) (*lazyNode, error) {\n\tidx, err := strconv.Atoi(key)\n\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif idx < 0 {\n\t\tif !SupportNegativeIndices {\n\t\t\treturn nil, errors.Wrapf(ErrInvalidIndex, \"Unable to access invalid index: %d\", idx)\n\t\t}\n\t\tif idx < -len(*d) {\n\t\t\treturn nil, errors.Wrapf(ErrInvalidIndex, \"Unable to access invalid index: %d\", idx)\n\t\t}\n\t\tidx += len(*d)\n\t}\n\n\tif idx >= len(*d) {\n\t\treturn nil, errors.Wrapf(ErrInvalidIndex, \"Unable to access invalid index: %d\", idx)\n\t}\n\n\treturn (*d)[idx], nil\n}\n\nfunc (d *partialArray) remove(key string) error {\n\tidx, err := strconv.Atoi(key)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tcur := *d\n\n\tif idx >= len(cur) {\n\t\treturn errors.Wrapf(ErrInvalidIndex, \"Unable to access invalid index: %d\", idx)\n\t}\n\n\tif idx < 0 {\n\t\tif !SupportNegativeIndices {\n\t\t\treturn errors.Wrapf(ErrInvalidIndex, \"Unable to access invalid index: %d\", idx)\n\t\t}\n\t\tif idx < -len(cur) {\n\t\t\treturn errors.Wrapf(ErrInvalidIndex, \"Unable to access invalid index: %d\", idx)\n\t\t}\n\t\tidx += len(cur)\n\t}\n\n\tary := make([]*lazyNode, len(cur)-1)\n\n\tcopy(ary[0:idx], cur[0:idx])\n\tcopy(ary[idx:], cur[idx+1:])\n\n\t*d = ary\n\treturn nil\n\n}\n\nfunc (p Patch) add(doc *container, op Operation) error {\n\tpath, err := op.Path()\n\tif err != nil {\n\t\treturn errors.Wrapf(ErrMissing, \"add operation failed to decode path\")\n\t}\n\n\tcon, key := findObject(doc, path)\n\n\tif con == nil {\n\t\treturn errors.Wrapf(ErrMissing, \"add operation does not apply: doc is missing path: \\\"%s\\\"\", path)\n\t}\n\n\terr = con.add(key, op.value())\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"error in add for path: '%s'\", path)\n\t}\n\n\treturn nil\n}\n\nfunc (p Patch) remove(doc *container, op Operation) error {\n\tpath, err := op.Path()\n\tif err != nil {\n\t\treturn errors.Wrapf(ErrMissing, \"remove operation failed to decode path\")\n\t}\n\n\tcon, key := findObject(doc, path)\n\n\tif con == nil {\n\t\treturn errors.Wrapf(ErrMissing, \"remove operation does not apply: doc is missing path: \\\"%s\\\"\", path)\n\t}\n\n\terr = con.remove(key)\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"error in remove for path: '%s'\", path)\n\t}\n\n\treturn nil\n}\n\nfunc (p Patch) replace(doc *container, op Operation) error {\n\tpath, err := op.Path()\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"replace operation failed to decode path\")\n\t}\n\n\tif path == \"\" {\n\t\tval := op.value()\n\n\t\tif val.which == eRaw {\n\t\t\tif !val.tryDoc() {\n\t\t\t\tif !val.tryAry() {\n\t\t\t\t\treturn errors.Wrapf(err, \"replace operation value must be object or array\")\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tswitch val.which {\n\t\tcase eAry:\n\t\t\t*doc = &val.ary\n\t\tcase eDoc:\n\t\t\t*doc = &val.doc\n\t\tcase eRaw:\n\t\t\treturn errors.Wrapf(err, \"replace operation hit impossible case\")\n\t\t}\n\n\t\treturn nil\n\t}\n\n\tcon, key := findObject(doc, path)\n\n\tif con == nil {\n\t\treturn errors.Wrapf(ErrMissing, \"replace operation does not apply: doc is missing path: %s\", path)\n\t}\n\n\t_, ok := con.get(key)\n\tif ok != nil {\n\t\treturn errors.Wrapf(ErrMissing, \"replace operation does not apply: doc is missing key: %s\", path)\n\t}\n\n\terr = con.set(key, op.value())\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"error in remove for path: '%s'\", path)\n\t}\n\n\treturn nil\n}\n\nfunc (p Patch) move(doc *container, op Operation) error {\n\tfrom, err := op.From()\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"move operation failed to decode from\")\n\t}\n\n\tcon, key := findObject(doc, from)\n\n\tif con == nil {\n\t\treturn errors.Wrapf(ErrMissing, \"move operation does not apply: doc is missing from path: %s\", from)\n\t}\n\n\tval, err := con.get(key)\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"error in move for path: '%s'\", key)\n\t}\n\n\terr = con.remove(key)\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"error in move for path: '%s'\", key)\n\t}\n\n\tpath, err := op.Path()\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"move operation failed to decode path\")\n\t}\n\n\tcon, key = findObject(doc, path)\n\n\tif con == nil {\n\t\treturn errors.Wrapf(ErrMissing, \"move operation does not apply: doc is missing destination path: %s\", path)\n\t}\n\n\terr = con.add(key, val)\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"error in move for path: '%s'\", path)\n\t}\n\n\treturn nil\n}\n\nfunc (p Patch) test(doc *container, op Operation) error {\n\tpath, err := op.Path()\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"test operation failed to decode path\")\n\t}\n\n\tif path == \"\" {\n\t\tvar self lazyNode\n\n\t\tswitch sv := (*doc).(type) {\n\t\tcase *partialDoc:\n\t\t\tself.doc = *sv\n\t\t\tself.which = eDoc\n\t\tcase *partialArray:\n\t\t\tself.ary = *sv\n\t\t\tself.which = eAry\n\t\t}\n\n\t\tif self.equal(op.value()) {\n\t\t\treturn nil\n\t\t}\n\n\t\treturn errors.Wrapf(ErrTestFailed, \"testing value %s failed\", path)\n\t}\n\n\tcon, key := findObject(doc, path)\n\n\tif con == nil {\n\t\treturn errors.Wrapf(ErrMissing, \"test operation does not apply: is missing path: %s\", path)\n\t}\n\n\tval, err := con.get(key)\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"error in test for path: '%s'\", path)\n\t}\n\n\tif val == nil {\n\t\tif op.value().raw == nil {\n\t\t\treturn nil\n\t\t}\n\t\treturn errors.Wrapf(ErrTestFailed, \"testing value %s failed\", path)\n\t} else if op.value() == nil {\n\t\treturn errors.Wrapf(ErrTestFailed, \"testing value %s failed\", path)\n\t}\n\n\tif val.equal(op.value()) {\n\t\treturn nil\n\t}\n\n\treturn errors.Wrapf(ErrTestFailed, \"testing value %s failed\", path)\n}\n\nfunc (p Patch) copy(doc *container, op Operation, accumulatedCopySize *int64) error {\n\tfrom, err := op.From()\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"copy operation failed to decode from\")\n\t}\n\n\tcon, key := findObject(doc, from)\n\n\tif con == nil {\n\t\treturn errors.Wrapf(ErrMissing, \"copy operation does not apply: doc is missing from path: %s\", from)\n\t}\n\n\tval, err := con.get(key)\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"error in copy for from: '%s'\", from)\n\t}\n\n\tpath, err := op.Path()\n\tif err != nil {\n\t\treturn errors.Wrapf(ErrMissing, \"copy operation failed to decode path\")\n\t}\n\n\tcon, key = findObject(doc, path)\n\n\tif con == nil {\n\t\treturn errors.Wrapf(ErrMissing, \"copy operation does not apply: doc is missing destination path: %s\", path)\n\t}\n\n\tvalCopy, sz, err := deepCopy(val)\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"error while performing deep copy\")\n\t}\n\n\t(*accumulatedCopySize) += int64(sz)\n\tif AccumulatedCopySizeLimit > 0 && *accumulatedCopySize > AccumulatedCopySizeLimit {\n\t\treturn NewAccumulatedCopySizeError(AccumulatedCopySizeLimit, *accumulatedCopySize)\n\t}\n\n\terr = con.add(key, valCopy)\n\tif err != nil {\n\t\treturn errors.Wrapf(err, \"error while adding value during copy\")\n\t}\n\n\treturn nil\n}\n\n// Equal indicates if 2 JSON documents have the same structural equality.\nfunc Equal(a, b []byte) bool {\n\tra := make(json.RawMessage, len(a))\n\tcopy(ra, a)\n\tla := newLazyNode(&ra)\n\n\trb := make(json.RawMessage, len(b))\n\tcopy(rb, b)\n\tlb := newLazyNode(&rb)\n\n\treturn la.equal(lb)\n}\n\n// DecodePatch decodes the passed JSON document as an RFC 6902 patch.\nfunc DecodePatch(buf []byte) (Patch, error) {\n\tvar p Patch\n\n\terr := json.Unmarshal(buf, &p)\n\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn p, nil\n}\n\n// Apply mutates a JSON document according to the patch, and returns the new\n// document.\nfunc (p Patch) Apply(doc []byte) ([]byte, error) {\n\treturn p.ApplyIndent(doc, \"\")\n}\n\n// ApplyIndent mutates a JSON document according to the patch, and returns the new\n// document indented.\nfunc (p Patch) ApplyIndent(doc []byte, indent string) ([]byte, error) {\n\tif len(doc) == 0 {\n\t\treturn doc, nil\n\t}\n\n\tvar pd container\n\tif doc[0] == '[' {\n\t\tpd = &partialArray{}\n\t} else {\n\t\tpd = &partialDoc{}\n\t}\n\n\terr := json.Unmarshal(doc, pd)\n\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\terr = nil\n\n\tvar accumulatedCopySize int64\n\n\tfor _, op := range p {\n\t\tswitch op.Kind() {\n\t\tcase \"add\":\n\t\t\terr = p.add(&pd, op)\n\t\tcase \"remove\":\n\t\t\terr = p.remove(&pd, op)\n\t\tcase \"replace\":\n\t\t\terr = p.replace(&pd, op)\n\t\tcase \"move\":\n\t\t\terr = p.move(&pd, op)\n\t\tcase \"test\":\n\t\t\terr = p.test(&pd, op)\n\t\tcase \"copy\":\n\t\t\terr = p.copy(&pd, op, &accumulatedCopySize)\n\t\tdefault:\n\t\t\terr = fmt.Errorf(\"Unexpected kind: %s\", op.Kind())\n\t\t}\n\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tif indent != \"\" {\n\t\treturn json.MarshalIndent(pd, \"\", indent)\n\t}\n\n\treturn json.Marshal(pd)\n}\n\n// From http://tools.ietf.org/html/rfc6901#section-4 :\n//\n// Evaluation of each reference token begins by decoding any escaped\n// character sequence.  This is performed by first transforming any\n// occurrence of the sequence '~1' to '/', and then transforming any\n// occurrence of the sequence '~0' to '~'.\n\nvar (\n\trfc6901Decoder = strings.NewReplacer(\"~1\", \"/\", \"~0\", \"~\")\n)\n\nfunc decodePatchKey(k string) string {\n\treturn rfc6901Decoder.Replace(k)\n}\n"
  },
  {
    "path": "vendor/gopkg.in/inf.v0/LICENSE",
    "content": "Copyright (c) 2012 Péter Surányi. Portions Copyright (c) 2009 The Go\nAuthors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/gopkg.in/inf.v0/dec.go",
    "content": "// Package inf (type inf.Dec) implements \"infinite-precision\" decimal\n// arithmetic.\n// \"Infinite precision\" describes two characteristics: practically unlimited\n// precision for decimal number representation and no support for calculating\n// with any specific fixed precision.\n// (Although there is no practical limit on precision, inf.Dec can only\n// represent finite decimals.)\n//\n// This package is currently in experimental stage and the API may change.\n//\n// This package does NOT support:\n//  - rounding to specific precisions (as opposed to specific decimal positions)\n//  - the notion of context (each rounding must be explicit)\n//  - NaN and Inf values, and distinguishing between positive and negative zero\n//  - conversions to and from float32/64 types\n//\n// Features considered for possible addition:\n//  + formatting options\n//  + Exp method\n//  + combined operations such as AddRound/MulAdd etc\n//  + exchanging data in decimal32/64/128 formats\n//\npackage inf // import \"gopkg.in/inf.v0\"\n\n// TODO:\n//  - avoid excessive deep copying (quo and rounders)\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"math/big\"\n\t\"strings\"\n)\n\n// A Dec represents a signed arbitrary-precision decimal.\n// It is a combination of a sign, an arbitrary-precision integer coefficient\n// value, and a signed fixed-precision exponent value.\n// The sign and the coefficient value are handled together as a signed value\n// and referred to as the unscaled value.\n// (Positive and negative zero values are not distinguished.)\n// Since the exponent is most commonly non-positive, it is handled in negated\n// form and referred to as scale.\n//\n// The mathematical value of a Dec equals:\n//\n//  unscaled * 10**(-scale)\n//\n// Note that different Dec representations may have equal mathematical values.\n//\n//  unscaled  scale  String()\n//  -------------------------\n//         0      0    \"0\"\n//         0      2    \"0.00\"\n//         0     -2    \"0\"\n//         1      0    \"1\"\n//       100      2    \"1.00\"\n//        10      0   \"10\"\n//         1     -1   \"10\"\n//\n// The zero value for a Dec represents the value 0 with scale 0.\n//\n// Operations are typically performed through the *Dec type.\n// The semantics of the assignment operation \"=\" for \"bare\" Dec values is\n// undefined and should not be relied on.\n//\n// Methods are typically of the form:\n//\n//\tfunc (z *Dec) Op(x, y *Dec) *Dec\n//\n// and implement operations z = x Op y with the result as receiver; if it\n// is one of the operands it may be overwritten (and its memory reused).\n// To enable chaining of operations, the result is also returned. Methods\n// returning a result other than *Dec take one of the operands as the receiver.\n//\n// A \"bare\" Quo method (quotient / division operation) is not provided, as the\n// result is not always a finite decimal and thus in general cannot be\n// represented as a Dec.\n// Instead, in the common case when rounding is (potentially) necessary,\n// QuoRound should be used with a Scale and a Rounder.\n// QuoExact or QuoRound with RoundExact can be used in the special cases when it\n// is known that the result is always a finite decimal.\n//\ntype Dec struct {\n\tunscaled big.Int\n\tscale    Scale\n}\n\n// Scale represents the type used for the scale of a Dec.\ntype Scale int32\n\nconst scaleSize = 4 // bytes in a Scale value\n\n// Scaler represents a method for obtaining the scale to use for the result of\n// an operation on x and y.\ntype scaler interface {\n\tScale(x *Dec, y *Dec) Scale\n}\n\nvar bigInt = [...]*big.Int{\n\tbig.NewInt(0), big.NewInt(1), big.NewInt(2), big.NewInt(3), big.NewInt(4),\n\tbig.NewInt(5), big.NewInt(6), big.NewInt(7), big.NewInt(8), big.NewInt(9),\n\tbig.NewInt(10),\n}\n\nvar exp10cache [64]big.Int = func() [64]big.Int {\n\te10, e10i := [64]big.Int{}, bigInt[1]\n\tfor i := range e10 {\n\t\te10[i].Set(e10i)\n\t\te10i = new(big.Int).Mul(e10i, bigInt[10])\n\t}\n\treturn e10\n}()\n\n// NewDec allocates and returns a new Dec set to the given int64 unscaled value\n// and scale.\nfunc NewDec(unscaled int64, scale Scale) *Dec {\n\treturn new(Dec).SetUnscaled(unscaled).SetScale(scale)\n}\n\n// NewDecBig allocates and returns a new Dec set to the given *big.Int unscaled\n// value and scale.\nfunc NewDecBig(unscaled *big.Int, scale Scale) *Dec {\n\treturn new(Dec).SetUnscaledBig(unscaled).SetScale(scale)\n}\n\n// Scale returns the scale of x.\nfunc (x *Dec) Scale() Scale {\n\treturn x.scale\n}\n\n// Unscaled returns the unscaled value of x for u and true for ok when the\n// unscaled value can be represented as int64; otherwise it returns an undefined\n// int64 value for u and false for ok. Use x.UnscaledBig().Int64() to avoid\n// checking the validity of the value when the check is known to be redundant.\nfunc (x *Dec) Unscaled() (u int64, ok bool) {\n\tu = x.unscaled.Int64()\n\tvar i big.Int\n\tok = i.SetInt64(u).Cmp(&x.unscaled) == 0\n\treturn\n}\n\n// UnscaledBig returns the unscaled value of x as *big.Int.\nfunc (x *Dec) UnscaledBig() *big.Int {\n\treturn &x.unscaled\n}\n\n// SetScale sets the scale of z, with the unscaled value unchanged, and returns\n// z.\n// The mathematical value of the Dec changes as if it was multiplied by\n// 10**(oldscale-scale).\nfunc (z *Dec) SetScale(scale Scale) *Dec {\n\tz.scale = scale\n\treturn z\n}\n\n// SetUnscaled sets the unscaled value of z, with the scale unchanged, and\n// returns z.\nfunc (z *Dec) SetUnscaled(unscaled int64) *Dec {\n\tz.unscaled.SetInt64(unscaled)\n\treturn z\n}\n\n// SetUnscaledBig sets the unscaled value of z, with the scale unchanged, and\n// returns z.\nfunc (z *Dec) SetUnscaledBig(unscaled *big.Int) *Dec {\n\tz.unscaled.Set(unscaled)\n\treturn z\n}\n\n// Set sets z to the value of x and returns z.\n// It does nothing if z == x.\nfunc (z *Dec) Set(x *Dec) *Dec {\n\tif z != x {\n\t\tz.SetUnscaledBig(x.UnscaledBig())\n\t\tz.SetScale(x.Scale())\n\t}\n\treturn z\n}\n\n// Sign returns:\n//\n//\t-1 if x <  0\n//\t 0 if x == 0\n//\t+1 if x >  0\n//\nfunc (x *Dec) Sign() int {\n\treturn x.UnscaledBig().Sign()\n}\n\n// Neg sets z to -x and returns z.\nfunc (z *Dec) Neg(x *Dec) *Dec {\n\tz.SetScale(x.Scale())\n\tz.UnscaledBig().Neg(x.UnscaledBig())\n\treturn z\n}\n\n// Cmp compares x and y and returns:\n//\n//   -1 if x <  y\n//    0 if x == y\n//   +1 if x >  y\n//\nfunc (x *Dec) Cmp(y *Dec) int {\n\txx, yy := upscale(x, y)\n\treturn xx.UnscaledBig().Cmp(yy.UnscaledBig())\n}\n\n// Abs sets z to |x| (the absolute value of x) and returns z.\nfunc (z *Dec) Abs(x *Dec) *Dec {\n\tz.SetScale(x.Scale())\n\tz.UnscaledBig().Abs(x.UnscaledBig())\n\treturn z\n}\n\n// Add sets z to the sum x+y and returns z.\n// The scale of z is the greater of the scales of x and y.\nfunc (z *Dec) Add(x, y *Dec) *Dec {\n\txx, yy := upscale(x, y)\n\tz.SetScale(xx.Scale())\n\tz.UnscaledBig().Add(xx.UnscaledBig(), yy.UnscaledBig())\n\treturn z\n}\n\n// Sub sets z to the difference x-y and returns z.\n// The scale of z is the greater of the scales of x and y.\nfunc (z *Dec) Sub(x, y *Dec) *Dec {\n\txx, yy := upscale(x, y)\n\tz.SetScale(xx.Scale())\n\tz.UnscaledBig().Sub(xx.UnscaledBig(), yy.UnscaledBig())\n\treturn z\n}\n\n// Mul sets z to the product x*y and returns z.\n// The scale of z is the sum of the scales of x and y.\nfunc (z *Dec) Mul(x, y *Dec) *Dec {\n\tz.SetScale(x.Scale() + y.Scale())\n\tz.UnscaledBig().Mul(x.UnscaledBig(), y.UnscaledBig())\n\treturn z\n}\n\n// Round sets z to the value of x rounded to Scale s using Rounder r, and\n// returns z.\nfunc (z *Dec) Round(x *Dec, s Scale, r Rounder) *Dec {\n\treturn z.QuoRound(x, NewDec(1, 0), s, r)\n}\n\n// QuoRound sets z to the quotient x/y, rounded using the given Rounder to the\n// specified scale.\n//\n// If the rounder is RoundExact but the result can not be expressed exactly at\n// the specified scale, QuoRound returns nil, and the value of z is undefined.\n//\n// There is no corresponding Div method; the equivalent can be achieved through\n// the choice of Rounder used.\n//\nfunc (z *Dec) QuoRound(x, y *Dec, s Scale, r Rounder) *Dec {\n\treturn z.quo(x, y, sclr{s}, r)\n}\n\nfunc (z *Dec) quo(x, y *Dec, s scaler, r Rounder) *Dec {\n\tscl := s.Scale(x, y)\n\tvar zzz *Dec\n\tif r.UseRemainder() {\n\t\tzz, rA, rB := new(Dec).quoRem(x, y, scl, true, new(big.Int), new(big.Int))\n\t\tzzz = r.Round(new(Dec), zz, rA, rB)\n\t} else {\n\t\tzz, _, _ := new(Dec).quoRem(x, y, scl, false, nil, nil)\n\t\tzzz = r.Round(new(Dec), zz, nil, nil)\n\t}\n\tif zzz == nil {\n\t\treturn nil\n\t}\n\treturn z.Set(zzz)\n}\n\n// QuoExact sets z to the quotient x/y and returns z when x/y is a finite\n// decimal. Otherwise it returns nil and the value of z is undefined.\n//\n// The scale of a non-nil result is \"x.Scale() - y.Scale()\" or greater; it is\n// calculated so that the remainder will be zero whenever x/y is a finite\n// decimal.\nfunc (z *Dec) QuoExact(x, y *Dec) *Dec {\n\treturn z.quo(x, y, scaleQuoExact{}, RoundExact)\n}\n\n// quoRem sets z to the quotient x/y with the scale s, and if useRem is true,\n// it sets remNum and remDen to the numerator and denominator of the remainder.\n// It returns z, remNum and remDen.\n//\n// The remainder is normalized to the range -1 < r < 1 to simplify rounding;\n// that is, the results satisfy the following equation:\n//\n//  x / y = z + (remNum/remDen) * 10**(-z.Scale())\n//\n// See Rounder for more details about rounding.\n//\nfunc (z *Dec) quoRem(x, y *Dec, s Scale, useRem bool,\n\tremNum, remDen *big.Int) (*Dec, *big.Int, *big.Int) {\n\t// difference (required adjustment) compared to \"canonical\" result scale\n\tshift := s - (x.Scale() - y.Scale())\n\t// pointers to adjusted unscaled dividend and divisor\n\tvar ix, iy *big.Int\n\tswitch {\n\tcase shift > 0:\n\t\t// increased scale: decimal-shift dividend left\n\t\tix = new(big.Int).Mul(x.UnscaledBig(), exp10(shift))\n\t\tiy = y.UnscaledBig()\n\tcase shift < 0:\n\t\t// decreased scale: decimal-shift divisor left\n\t\tix = x.UnscaledBig()\n\t\tiy = new(big.Int).Mul(y.UnscaledBig(), exp10(-shift))\n\tdefault:\n\t\tix = x.UnscaledBig()\n\t\tiy = y.UnscaledBig()\n\t}\n\t// save a copy of iy in case it to be overwritten with the result\n\tiy2 := iy\n\tif iy == z.UnscaledBig() {\n\t\tiy2 = new(big.Int).Set(iy)\n\t}\n\t// set scale\n\tz.SetScale(s)\n\t// set unscaled\n\tif useRem {\n\t\t// Int division\n\t\t_, intr := z.UnscaledBig().QuoRem(ix, iy, new(big.Int))\n\t\t// set remainder\n\t\tremNum.Set(intr)\n\t\tremDen.Set(iy2)\n\t} else {\n\t\tz.UnscaledBig().Quo(ix, iy)\n\t}\n\treturn z, remNum, remDen\n}\n\ntype sclr struct{ s Scale }\n\nfunc (s sclr) Scale(x, y *Dec) Scale {\n\treturn s.s\n}\n\ntype scaleQuoExact struct{}\n\nfunc (sqe scaleQuoExact) Scale(x, y *Dec) Scale {\n\trem := new(big.Rat).SetFrac(x.UnscaledBig(), y.UnscaledBig())\n\tf2, f5 := factor2(rem.Denom()), factor(rem.Denom(), bigInt[5])\n\tvar f10 Scale\n\tif f2 > f5 {\n\t\tf10 = Scale(f2)\n\t} else {\n\t\tf10 = Scale(f5)\n\t}\n\treturn x.Scale() - y.Scale() + f10\n}\n\nfunc factor(n *big.Int, p *big.Int) int {\n\t// could be improved for large factors\n\td, f := n, 0\n\tfor {\n\t\tdd, dm := new(big.Int).DivMod(d, p, new(big.Int))\n\t\tif dm.Sign() == 0 {\n\t\t\tf++\n\t\t\td = dd\n\t\t} else {\n\t\t\tbreak\n\t\t}\n\t}\n\treturn f\n}\n\nfunc factor2(n *big.Int) int {\n\t// could be improved for large factors\n\tf := 0\n\tfor ; n.Bit(f) == 0; f++ {\n\t}\n\treturn f\n}\n\nfunc upscale(a, b *Dec) (*Dec, *Dec) {\n\tif a.Scale() == b.Scale() {\n\t\treturn a, b\n\t}\n\tif a.Scale() > b.Scale() {\n\t\tbb := b.rescale(a.Scale())\n\t\treturn a, bb\n\t}\n\taa := a.rescale(b.Scale())\n\treturn aa, b\n}\n\nfunc exp10(x Scale) *big.Int {\n\tif int(x) < len(exp10cache) {\n\t\treturn &exp10cache[int(x)]\n\t}\n\treturn new(big.Int).Exp(bigInt[10], big.NewInt(int64(x)), nil)\n}\n\nfunc (x *Dec) rescale(newScale Scale) *Dec {\n\tshift := newScale - x.Scale()\n\tswitch {\n\tcase shift < 0:\n\t\te := exp10(-shift)\n\t\treturn NewDecBig(new(big.Int).Quo(x.UnscaledBig(), e), newScale)\n\tcase shift > 0:\n\t\te := exp10(shift)\n\t\treturn NewDecBig(new(big.Int).Mul(x.UnscaledBig(), e), newScale)\n\t}\n\treturn x\n}\n\nvar zeros = []byte(\"00000000000000000000000000000000\" +\n\t\"00000000000000000000000000000000\")\nvar lzeros = Scale(len(zeros))\n\nfunc appendZeros(s []byte, n Scale) []byte {\n\tfor i := Scale(0); i < n; i += lzeros {\n\t\tif n > i+lzeros {\n\t\t\ts = append(s, zeros...)\n\t\t} else {\n\t\t\ts = append(s, zeros[0:n-i]...)\n\t\t}\n\t}\n\treturn s\n}\n\nfunc (x *Dec) String() string {\n\tif x == nil {\n\t\treturn \"<nil>\"\n\t}\n\tscale := x.Scale()\n\ts := []byte(x.UnscaledBig().String())\n\tif scale <= 0 {\n\t\tif scale != 0 && x.unscaled.Sign() != 0 {\n\t\t\ts = appendZeros(s, -scale)\n\t\t}\n\t\treturn string(s)\n\t}\n\tnegbit := Scale(-((x.Sign() - 1) / 2))\n\t// scale > 0\n\tlens := Scale(len(s))\n\tif lens-negbit <= scale {\n\t\tss := make([]byte, 0, scale+2)\n\t\tif negbit == 1 {\n\t\t\tss = append(ss, '-')\n\t\t}\n\t\tss = append(ss, '0', '.')\n\t\tss = appendZeros(ss, scale-lens+negbit)\n\t\tss = append(ss, s[negbit:]...)\n\t\treturn string(ss)\n\t}\n\t// lens > scale\n\tss := make([]byte, 0, lens+1)\n\tss = append(ss, s[:lens-scale]...)\n\tss = append(ss, '.')\n\tss = append(ss, s[lens-scale:]...)\n\treturn string(ss)\n}\n\n// Format is a support routine for fmt.Formatter. It accepts the decimal\n// formats 'd' and 'f', and handles both equivalently.\n// Width, precision, flags and bases 2, 8, 16 are not supported.\nfunc (x *Dec) Format(s fmt.State, ch rune) {\n\tif ch != 'd' && ch != 'f' && ch != 'v' && ch != 's' {\n\t\tfmt.Fprintf(s, \"%%!%c(dec.Dec=%s)\", ch, x.String())\n\t\treturn\n\t}\n\tfmt.Fprintf(s, x.String())\n}\n\nfunc (z *Dec) scan(r io.RuneScanner) (*Dec, error) {\n\tunscaled := make([]byte, 0, 256) // collects chars of unscaled as bytes\n\tdp, dg := -1, -1                 // indexes of decimal point, first digit\nloop:\n\tfor {\n\t\tch, _, err := r.ReadRune()\n\t\tif err == io.EOF {\n\t\t\tbreak loop\n\t\t}\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tswitch {\n\t\tcase ch == '+' || ch == '-':\n\t\t\tif len(unscaled) > 0 || dp >= 0 { // must be first character\n\t\t\t\tr.UnreadRune()\n\t\t\t\tbreak loop\n\t\t\t}\n\t\tcase ch == '.':\n\t\t\tif dp >= 0 {\n\t\t\t\tr.UnreadRune()\n\t\t\t\tbreak loop\n\t\t\t}\n\t\t\tdp = len(unscaled)\n\t\t\tcontinue // don't add to unscaled\n\t\tcase ch >= '0' && ch <= '9':\n\t\t\tif dg == -1 {\n\t\t\t\tdg = len(unscaled)\n\t\t\t}\n\t\tdefault:\n\t\t\tr.UnreadRune()\n\t\t\tbreak loop\n\t\t}\n\t\tunscaled = append(unscaled, byte(ch))\n\t}\n\tif dg == -1 {\n\t\treturn nil, fmt.Errorf(\"no digits read\")\n\t}\n\tif dp >= 0 {\n\t\tz.SetScale(Scale(len(unscaled) - dp))\n\t} else {\n\t\tz.SetScale(0)\n\t}\n\t_, ok := z.UnscaledBig().SetString(string(unscaled), 10)\n\tif !ok {\n\t\treturn nil, fmt.Errorf(\"invalid decimal: %s\", string(unscaled))\n\t}\n\treturn z, nil\n}\n\n// SetString sets z to the value of s, interpreted as a decimal (base 10),\n// and returns z and a boolean indicating success. The scale of z is the\n// number of digits after the decimal point (including any trailing 0s),\n// or 0 if there is no decimal point. If SetString fails, the value of z\n// is undefined but the returned value is nil.\nfunc (z *Dec) SetString(s string) (*Dec, bool) {\n\tr := strings.NewReader(s)\n\t_, err := z.scan(r)\n\tif err != nil {\n\t\treturn nil, false\n\t}\n\t_, _, err = r.ReadRune()\n\tif err != io.EOF {\n\t\treturn nil, false\n\t}\n\t// err == io.EOF => scan consumed all of s\n\treturn z, true\n}\n\n// Scan is a support routine for fmt.Scanner; it sets z to the value of\n// the scanned number. It accepts the decimal formats 'd' and 'f', and\n// handles both equivalently. Bases 2, 8, 16 are not supported.\n// The scale of z is the number of digits after the decimal point\n// (including any trailing 0s), or 0 if there is no decimal point.\nfunc (z *Dec) Scan(s fmt.ScanState, ch rune) error {\n\tif ch != 'd' && ch != 'f' && ch != 's' && ch != 'v' {\n\t\treturn fmt.Errorf(\"Dec.Scan: invalid verb '%c'\", ch)\n\t}\n\ts.SkipSpace()\n\t_, err := z.scan(s)\n\treturn err\n}\n\n// Gob encoding version\nconst decGobVersion byte = 1\n\nfunc scaleBytes(s Scale) []byte {\n\tbuf := make([]byte, scaleSize)\n\ti := scaleSize\n\tfor j := 0; j < scaleSize; j++ {\n\t\ti--\n\t\tbuf[i] = byte(s)\n\t\ts >>= 8\n\t}\n\treturn buf\n}\n\nfunc scale(b []byte) (s Scale) {\n\tfor j := 0; j < scaleSize; j++ {\n\t\ts <<= 8\n\t\ts |= Scale(b[j])\n\t}\n\treturn\n}\n\n// GobEncode implements the gob.GobEncoder interface.\nfunc (x *Dec) GobEncode() ([]byte, error) {\n\tbuf, err := x.UnscaledBig().GobEncode()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tbuf = append(append(buf, scaleBytes(x.Scale())...), decGobVersion)\n\treturn buf, nil\n}\n\n// GobDecode implements the gob.GobDecoder interface.\nfunc (z *Dec) GobDecode(buf []byte) error {\n\tif len(buf) == 0 {\n\t\treturn fmt.Errorf(\"Dec.GobDecode: no data\")\n\t}\n\tb := buf[len(buf)-1]\n\tif b != decGobVersion {\n\t\treturn fmt.Errorf(\"Dec.GobDecode: encoding version %d not supported\", b)\n\t}\n\tl := len(buf) - scaleSize - 1\n\terr := z.UnscaledBig().GobDecode(buf[:l])\n\tif err != nil {\n\t\treturn err\n\t}\n\tz.SetScale(scale(buf[l : l+scaleSize]))\n\treturn nil\n}\n\n// MarshalText implements the encoding.TextMarshaler interface.\nfunc (x *Dec) MarshalText() ([]byte, error) {\n\treturn []byte(x.String()), nil\n}\n\n// UnmarshalText implements the encoding.TextUnmarshaler interface.\nfunc (z *Dec) UnmarshalText(data []byte) error {\n\t_, ok := z.SetString(string(data))\n\tif !ok {\n\t\treturn fmt.Errorf(\"invalid inf.Dec\")\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/gopkg.in/inf.v0/rounder.go",
    "content": "package inf\n\nimport (\n\t\"math/big\"\n)\n\n// Rounder represents a method for rounding the (possibly infinite decimal)\n// result of a division to a finite Dec. It is used by Dec.Round() and\n// Dec.Quo().\n//\n// See the Example for results of using each Rounder with some sample values.\n//\ntype Rounder rounder\n\n// See http://speleotrove.com/decimal/damodel.html#refround for more detailed\n// definitions of these rounding modes.\nvar (\n\tRoundDown     Rounder // towards 0\n\tRoundUp       Rounder // away from 0\n\tRoundFloor    Rounder // towards -infinity\n\tRoundCeil     Rounder // towards +infinity\n\tRoundHalfDown Rounder // to nearest; towards 0 if same distance\n\tRoundHalfUp   Rounder // to nearest; away from 0 if same distance\n\tRoundHalfEven Rounder // to nearest; even last digit if same distance\n)\n\n// RoundExact is to be used in the case when rounding is not necessary.\n// When used with Quo or Round, it returns the result verbatim when it can be\n// expressed exactly with the given precision, and it returns nil otherwise.\n// QuoExact is a shorthand for using Quo with RoundExact.\nvar RoundExact Rounder\n\ntype rounder interface {\n\n\t// When UseRemainder() returns true, the Round() method is passed the\n\t// remainder of the division, expressed as the numerator and denominator of\n\t// a rational.\n\tUseRemainder() bool\n\n\t// Round sets the rounded value of a quotient to z, and returns z.\n\t// quo is rounded down (truncated towards zero) to the scale obtained from\n\t// the Scaler in Quo().\n\t//\n\t// When the remainder is not used, remNum and remDen are nil.\n\t// When used, the remainder is normalized between -1 and 1; that is:\n\t//\n\t//  -|remDen| < remNum < |remDen|\n\t//\n\t// remDen has the same sign as y, and remNum is zero or has the same sign\n\t// as x.\n\tRound(z, quo *Dec, remNum, remDen *big.Int) *Dec\n}\n\ntype rndr struct {\n\tuseRem bool\n\tround  func(z, quo *Dec, remNum, remDen *big.Int) *Dec\n}\n\nfunc (r rndr) UseRemainder() bool {\n\treturn r.useRem\n}\n\nfunc (r rndr) Round(z, quo *Dec, remNum, remDen *big.Int) *Dec {\n\treturn r.round(z, quo, remNum, remDen)\n}\n\nvar intSign = []*big.Int{big.NewInt(-1), big.NewInt(0), big.NewInt(1)}\n\nfunc roundHalf(f func(c int, odd uint) (roundUp bool)) func(z, q *Dec, rA, rB *big.Int) *Dec {\n\treturn func(z, q *Dec, rA, rB *big.Int) *Dec {\n\t\tz.Set(q)\n\t\tbrA, brB := rA.BitLen(), rB.BitLen()\n\t\tif brA < brB-1 {\n\t\t\t// brA < brB-1 => |rA| < |rB/2|\n\t\t\treturn z\n\t\t}\n\t\troundUp := false\n\t\tsrA, srB := rA.Sign(), rB.Sign()\n\t\ts := srA * srB\n\t\tif brA == brB-1 {\n\t\t\trA2 := new(big.Int).Lsh(rA, 1)\n\t\t\tif s < 0 {\n\t\t\t\trA2.Neg(rA2)\n\t\t\t}\n\t\t\troundUp = f(rA2.Cmp(rB)*srB, z.UnscaledBig().Bit(0))\n\t\t} else {\n\t\t\t// brA > brB-1 => |rA| > |rB/2|\n\t\t\troundUp = true\n\t\t}\n\t\tif roundUp {\n\t\t\tz.UnscaledBig().Add(z.UnscaledBig(), intSign[s+1])\n\t\t}\n\t\treturn z\n\t}\n}\n\nfunc init() {\n\tRoundExact = rndr{true,\n\t\tfunc(z, q *Dec, rA, rB *big.Int) *Dec {\n\t\t\tif rA.Sign() != 0 {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\treturn z.Set(q)\n\t\t}}\n\tRoundDown = rndr{false,\n\t\tfunc(z, q *Dec, rA, rB *big.Int) *Dec {\n\t\t\treturn z.Set(q)\n\t\t}}\n\tRoundUp = rndr{true,\n\t\tfunc(z, q *Dec, rA, rB *big.Int) *Dec {\n\t\t\tz.Set(q)\n\t\t\tif rA.Sign() != 0 {\n\t\t\t\tz.UnscaledBig().Add(z.UnscaledBig(), intSign[rA.Sign()*rB.Sign()+1])\n\t\t\t}\n\t\t\treturn z\n\t\t}}\n\tRoundFloor = rndr{true,\n\t\tfunc(z, q *Dec, rA, rB *big.Int) *Dec {\n\t\t\tz.Set(q)\n\t\t\tif rA.Sign()*rB.Sign() < 0 {\n\t\t\t\tz.UnscaledBig().Add(z.UnscaledBig(), intSign[0])\n\t\t\t}\n\t\t\treturn z\n\t\t}}\n\tRoundCeil = rndr{true,\n\t\tfunc(z, q *Dec, rA, rB *big.Int) *Dec {\n\t\t\tz.Set(q)\n\t\t\tif rA.Sign()*rB.Sign() > 0 {\n\t\t\t\tz.UnscaledBig().Add(z.UnscaledBig(), intSign[2])\n\t\t\t}\n\t\t\treturn z\n\t\t}}\n\tRoundHalfDown = rndr{true, roundHalf(\n\t\tfunc(c int, odd uint) bool {\n\t\t\treturn c > 0\n\t\t})}\n\tRoundHalfUp = rndr{true, roundHalf(\n\t\tfunc(c int, odd uint) bool {\n\t\t\treturn c >= 0\n\t\t})}\n\tRoundHalfEven = rndr{true, roundHalf(\n\t\tfunc(c int, odd uint) bool {\n\t\t\treturn c > 0 || c == 0 && odd == 1\n\t\t})}\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/LICENSE",
    "content": "\nThis project is covered by two different licenses: MIT and Apache.\n\n#### MIT License ####\n\nThe following files were ported to Go from C files of libyaml, and thus\nare still covered by their original MIT license, with the additional\ncopyright staring in 2011 when the project was ported over:\n\n    apic.go emitterc.go parserc.go readerc.go scannerc.go\n    writerc.go yamlh.go yamlprivateh.go\n\nCopyright (c) 2006-2010 Kirill Simonov\nCopyright (c) 2006-2011 Kirill Simonov\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\nof the Software, and to permit persons to whom the Software is furnished to do\nso, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n### Apache License ###\n\nAll the remaining project files are covered by the Apache license:\n\nCopyright (c) 2011-2019 Canonical Ltd\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/NOTICE",
    "content": "Copyright 2011-2016 Canonical Ltd.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/README.md",
    "content": "# YAML support for the Go language\n\nIntroduction\n------------\n\nThe yaml package enables Go programs to comfortably encode and decode YAML\nvalues. It was developed within [Canonical](https://www.canonical.com) as\npart of the [juju](https://juju.ubuntu.com) project, and is based on a\npure Go port of the well-known [libyaml](http://pyyaml.org/wiki/LibYAML)\nC library to parse and generate YAML data quickly and reliably.\n\nCompatibility\n-------------\n\nThe yaml package supports most of YAML 1.2, but preserves some behavior\nfrom 1.1 for backwards compatibility.\n\nSpecifically, as of v3 of the yaml package:\n\n - YAML 1.1 bools (_yes/no, on/off_) are supported as long as they are being\n   decoded into a typed bool value. Otherwise they behave as a string. Booleans\n   in YAML 1.2 are _true/false_ only.\n - Octals encode and decode as _0777_ per YAML 1.1, rather than _0o777_\n   as specified in YAML 1.2, because most parsers still use the old format.\n   Octals in the  _0o777_ format are supported though, so new files work.\n - Does not support base-60 floats. These are gone from YAML 1.2, and were\n   actually never supported by this package as it's clearly a poor choice.\n\nand offers backwards\ncompatibility with YAML 1.1 in some cases.\n1.2, including support for\nanchors, tags, map merging, etc. Multi-document unmarshalling is not yet\nimplemented, and base-60 floats from YAML 1.1 are purposefully not\nsupported since they're a poor design and are gone in YAML 1.2.\n\nInstallation and usage\n----------------------\n\nThe import path for the package is *gopkg.in/yaml.v3*.\n\nTo install it, run:\n\n    go get gopkg.in/yaml.v3\n\nAPI documentation\n-----------------\n\nIf opened in a browser, the import path itself leads to the API documentation:\n\n  - [https://gopkg.in/yaml.v3](https://gopkg.in/yaml.v3)\n\nAPI stability\n-------------\n\nThe package API for yaml v3 will remain stable as described in [gopkg.in](https://gopkg.in).\n\n\nLicense\n-------\n\nThe yaml package is licensed under the MIT and Apache License 2.0 licenses.\nPlease see the LICENSE file for details.\n\n\nExample\n-------\n\n```Go\npackage main\n\nimport (\n        \"fmt\"\n        \"log\"\n\n        \"gopkg.in/yaml.v3\"\n)\n\nvar data = `\na: Easy!\nb:\n  c: 2\n  d: [3, 4]\n`\n\n// Note: struct fields must be public in order for unmarshal to\n// correctly populate the data.\ntype T struct {\n        A string\n        B struct {\n                RenamedC int   `yaml:\"c\"`\n                D        []int `yaml:\",flow\"`\n        }\n}\n\nfunc main() {\n        t := T{}\n    \n        err := yaml.Unmarshal([]byte(data), &t)\n        if err != nil {\n                log.Fatalf(\"error: %v\", err)\n        }\n        fmt.Printf(\"--- t:\\n%v\\n\\n\", t)\n    \n        d, err := yaml.Marshal(&t)\n        if err != nil {\n                log.Fatalf(\"error: %v\", err)\n        }\n        fmt.Printf(\"--- t dump:\\n%s\\n\\n\", string(d))\n    \n        m := make(map[interface{}]interface{})\n    \n        err = yaml.Unmarshal([]byte(data), &m)\n        if err != nil {\n                log.Fatalf(\"error: %v\", err)\n        }\n        fmt.Printf(\"--- m:\\n%v\\n\\n\", m)\n    \n        d, err = yaml.Marshal(&m)\n        if err != nil {\n                log.Fatalf(\"error: %v\", err)\n        }\n        fmt.Printf(\"--- m dump:\\n%s\\n\\n\", string(d))\n}\n```\n\nThis example will generate the following output:\n\n```\n--- t:\n{Easy! {2 [3 4]}}\n\n--- t dump:\na: Easy!\nb:\n  c: 2\n  d: [3, 4]\n\n\n--- m:\nmap[a:Easy! b:map[c:2 d:[3 4]]]\n\n--- m dump:\na: Easy!\nb:\n  c: 2\n  d:\n  - 3\n  - 4\n```\n\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/apic.go",
    "content": "// \n// Copyright (c) 2011-2019 Canonical Ltd\n// Copyright (c) 2006-2010 Kirill Simonov\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n// of the Software, and to permit persons to whom the Software is furnished to do\n// so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\npackage yaml\n\nimport (\n\t\"io\"\n)\n\nfunc yaml_insert_token(parser *yaml_parser_t, pos int, token *yaml_token_t) {\n\t//fmt.Println(\"yaml_insert_token\", \"pos:\", pos, \"typ:\", token.typ, \"head:\", parser.tokens_head, \"len:\", len(parser.tokens))\n\n\t// Check if we can move the queue at the beginning of the buffer.\n\tif parser.tokens_head > 0 && len(parser.tokens) == cap(parser.tokens) {\n\t\tif parser.tokens_head != len(parser.tokens) {\n\t\t\tcopy(parser.tokens, parser.tokens[parser.tokens_head:])\n\t\t}\n\t\tparser.tokens = parser.tokens[:len(parser.tokens)-parser.tokens_head]\n\t\tparser.tokens_head = 0\n\t}\n\tparser.tokens = append(parser.tokens, *token)\n\tif pos < 0 {\n\t\treturn\n\t}\n\tcopy(parser.tokens[parser.tokens_head+pos+1:], parser.tokens[parser.tokens_head+pos:])\n\tparser.tokens[parser.tokens_head+pos] = *token\n}\n\n// Create a new parser object.\nfunc yaml_parser_initialize(parser *yaml_parser_t) bool {\n\t*parser = yaml_parser_t{\n\t\traw_buffer: make([]byte, 0, input_raw_buffer_size),\n\t\tbuffer:     make([]byte, 0, input_buffer_size),\n\t}\n\treturn true\n}\n\n// Destroy a parser object.\nfunc yaml_parser_delete(parser *yaml_parser_t) {\n\t*parser = yaml_parser_t{}\n}\n\n// String read handler.\nfunc yaml_string_read_handler(parser *yaml_parser_t, buffer []byte) (n int, err error) {\n\tif parser.input_pos == len(parser.input) {\n\t\treturn 0, io.EOF\n\t}\n\tn = copy(buffer, parser.input[parser.input_pos:])\n\tparser.input_pos += n\n\treturn n, nil\n}\n\n// Reader read handler.\nfunc yaml_reader_read_handler(parser *yaml_parser_t, buffer []byte) (n int, err error) {\n\treturn parser.input_reader.Read(buffer)\n}\n\n// Set a string input.\nfunc yaml_parser_set_input_string(parser *yaml_parser_t, input []byte) {\n\tif parser.read_handler != nil {\n\t\tpanic(\"must set the input source only once\")\n\t}\n\tparser.read_handler = yaml_string_read_handler\n\tparser.input = input\n\tparser.input_pos = 0\n}\n\n// Set a file input.\nfunc yaml_parser_set_input_reader(parser *yaml_parser_t, r io.Reader) {\n\tif parser.read_handler != nil {\n\t\tpanic(\"must set the input source only once\")\n\t}\n\tparser.read_handler = yaml_reader_read_handler\n\tparser.input_reader = r\n}\n\n// Set the source encoding.\nfunc yaml_parser_set_encoding(parser *yaml_parser_t, encoding yaml_encoding_t) {\n\tif parser.encoding != yaml_ANY_ENCODING {\n\t\tpanic(\"must set the encoding only once\")\n\t}\n\tparser.encoding = encoding\n}\n\n// Create a new emitter object.\nfunc yaml_emitter_initialize(emitter *yaml_emitter_t) {\n\t*emitter = yaml_emitter_t{\n\t\tbuffer:     make([]byte, output_buffer_size),\n\t\traw_buffer: make([]byte, 0, output_raw_buffer_size),\n\t\tstates:     make([]yaml_emitter_state_t, 0, initial_stack_size),\n\t\tevents:     make([]yaml_event_t, 0, initial_queue_size),\n\t\tbest_width: -1,\n\t}\n}\n\n// Destroy an emitter object.\nfunc yaml_emitter_delete(emitter *yaml_emitter_t) {\n\t*emitter = yaml_emitter_t{}\n}\n\n// String write handler.\nfunc yaml_string_write_handler(emitter *yaml_emitter_t, buffer []byte) error {\n\t*emitter.output_buffer = append(*emitter.output_buffer, buffer...)\n\treturn nil\n}\n\n// yaml_writer_write_handler uses emitter.output_writer to write the\n// emitted text.\nfunc yaml_writer_write_handler(emitter *yaml_emitter_t, buffer []byte) error {\n\t_, err := emitter.output_writer.Write(buffer)\n\treturn err\n}\n\n// Set a string output.\nfunc yaml_emitter_set_output_string(emitter *yaml_emitter_t, output_buffer *[]byte) {\n\tif emitter.write_handler != nil {\n\t\tpanic(\"must set the output target only once\")\n\t}\n\temitter.write_handler = yaml_string_write_handler\n\temitter.output_buffer = output_buffer\n}\n\n// Set a file output.\nfunc yaml_emitter_set_output_writer(emitter *yaml_emitter_t, w io.Writer) {\n\tif emitter.write_handler != nil {\n\t\tpanic(\"must set the output target only once\")\n\t}\n\temitter.write_handler = yaml_writer_write_handler\n\temitter.output_writer = w\n}\n\n// Set the output encoding.\nfunc yaml_emitter_set_encoding(emitter *yaml_emitter_t, encoding yaml_encoding_t) {\n\tif emitter.encoding != yaml_ANY_ENCODING {\n\t\tpanic(\"must set the output encoding only once\")\n\t}\n\temitter.encoding = encoding\n}\n\n// Set the canonical output style.\nfunc yaml_emitter_set_canonical(emitter *yaml_emitter_t, canonical bool) {\n\temitter.canonical = canonical\n}\n\n// Set the indentation increment.\nfunc yaml_emitter_set_indent(emitter *yaml_emitter_t, indent int) {\n\tif indent < 2 || indent > 9 {\n\t\tindent = 2\n\t}\n\temitter.best_indent = indent\n}\n\n// Set the preferred line width.\nfunc yaml_emitter_set_width(emitter *yaml_emitter_t, width int) {\n\tif width < 0 {\n\t\twidth = -1\n\t}\n\temitter.best_width = width\n}\n\n// Set if unescaped non-ASCII characters are allowed.\nfunc yaml_emitter_set_unicode(emitter *yaml_emitter_t, unicode bool) {\n\temitter.unicode = unicode\n}\n\n// Set the preferred line break character.\nfunc yaml_emitter_set_break(emitter *yaml_emitter_t, line_break yaml_break_t) {\n\temitter.line_break = line_break\n}\n\n///*\n// * Destroy a token object.\n// */\n//\n//YAML_DECLARE(void)\n//yaml_token_delete(yaml_token_t *token)\n//{\n//    assert(token);  // Non-NULL token object expected.\n//\n//    switch (token.type)\n//    {\n//        case YAML_TAG_DIRECTIVE_TOKEN:\n//            yaml_free(token.data.tag_directive.handle);\n//            yaml_free(token.data.tag_directive.prefix);\n//            break;\n//\n//        case YAML_ALIAS_TOKEN:\n//            yaml_free(token.data.alias.value);\n//            break;\n//\n//        case YAML_ANCHOR_TOKEN:\n//            yaml_free(token.data.anchor.value);\n//            break;\n//\n//        case YAML_TAG_TOKEN:\n//            yaml_free(token.data.tag.handle);\n//            yaml_free(token.data.tag.suffix);\n//            break;\n//\n//        case YAML_SCALAR_TOKEN:\n//            yaml_free(token.data.scalar.value);\n//            break;\n//\n//        default:\n//            break;\n//    }\n//\n//    memset(token, 0, sizeof(yaml_token_t));\n//}\n//\n///*\n// * Check if a string is a valid UTF-8 sequence.\n// *\n// * Check 'reader.c' for more details on UTF-8 encoding.\n// */\n//\n//static int\n//yaml_check_utf8(yaml_char_t *start, size_t length)\n//{\n//    yaml_char_t *end = start+length;\n//    yaml_char_t *pointer = start;\n//\n//    while (pointer < end) {\n//        unsigned char octet;\n//        unsigned int width;\n//        unsigned int value;\n//        size_t k;\n//\n//        octet = pointer[0];\n//        width = (octet & 0x80) == 0x00 ? 1 :\n//                (octet & 0xE0) == 0xC0 ? 2 :\n//                (octet & 0xF0) == 0xE0 ? 3 :\n//                (octet & 0xF8) == 0xF0 ? 4 : 0;\n//        value = (octet & 0x80) == 0x00 ? octet & 0x7F :\n//                (octet & 0xE0) == 0xC0 ? octet & 0x1F :\n//                (octet & 0xF0) == 0xE0 ? octet & 0x0F :\n//                (octet & 0xF8) == 0xF0 ? octet & 0x07 : 0;\n//        if (!width) return 0;\n//        if (pointer+width > end) return 0;\n//        for (k = 1; k < width; k ++) {\n//            octet = pointer[k];\n//            if ((octet & 0xC0) != 0x80) return 0;\n//            value = (value << 6) + (octet & 0x3F);\n//        }\n//        if (!((width == 1) ||\n//            (width == 2 && value >= 0x80) ||\n//            (width == 3 && value >= 0x800) ||\n//            (width == 4 && value >= 0x10000))) return 0;\n//\n//        pointer += width;\n//    }\n//\n//    return 1;\n//}\n//\n\n// Create STREAM-START.\nfunc yaml_stream_start_event_initialize(event *yaml_event_t, encoding yaml_encoding_t) {\n\t*event = yaml_event_t{\n\t\ttyp:      yaml_STREAM_START_EVENT,\n\t\tencoding: encoding,\n\t}\n}\n\n// Create STREAM-END.\nfunc yaml_stream_end_event_initialize(event *yaml_event_t) {\n\t*event = yaml_event_t{\n\t\ttyp: yaml_STREAM_END_EVENT,\n\t}\n}\n\n// Create DOCUMENT-START.\nfunc yaml_document_start_event_initialize(\n\tevent *yaml_event_t,\n\tversion_directive *yaml_version_directive_t,\n\ttag_directives []yaml_tag_directive_t,\n\timplicit bool,\n) {\n\t*event = yaml_event_t{\n\t\ttyp:               yaml_DOCUMENT_START_EVENT,\n\t\tversion_directive: version_directive,\n\t\ttag_directives:    tag_directives,\n\t\timplicit:          implicit,\n\t}\n}\n\n// Create DOCUMENT-END.\nfunc yaml_document_end_event_initialize(event *yaml_event_t, implicit bool) {\n\t*event = yaml_event_t{\n\t\ttyp:      yaml_DOCUMENT_END_EVENT,\n\t\timplicit: implicit,\n\t}\n}\n\n// Create ALIAS.\nfunc yaml_alias_event_initialize(event *yaml_event_t, anchor []byte) bool {\n\t*event = yaml_event_t{\n\t\ttyp:    yaml_ALIAS_EVENT,\n\t\tanchor: anchor,\n\t}\n\treturn true\n}\n\n// Create SCALAR.\nfunc yaml_scalar_event_initialize(event *yaml_event_t, anchor, tag, value []byte, plain_implicit, quoted_implicit bool, style yaml_scalar_style_t) bool {\n\t*event = yaml_event_t{\n\t\ttyp:             yaml_SCALAR_EVENT,\n\t\tanchor:          anchor,\n\t\ttag:             tag,\n\t\tvalue:           value,\n\t\timplicit:        plain_implicit,\n\t\tquoted_implicit: quoted_implicit,\n\t\tstyle:           yaml_style_t(style),\n\t}\n\treturn true\n}\n\n// Create SEQUENCE-START.\nfunc yaml_sequence_start_event_initialize(event *yaml_event_t, anchor, tag []byte, implicit bool, style yaml_sequence_style_t) bool {\n\t*event = yaml_event_t{\n\t\ttyp:      yaml_SEQUENCE_START_EVENT,\n\t\tanchor:   anchor,\n\t\ttag:      tag,\n\t\timplicit: implicit,\n\t\tstyle:    yaml_style_t(style),\n\t}\n\treturn true\n}\n\n// Create SEQUENCE-END.\nfunc yaml_sequence_end_event_initialize(event *yaml_event_t) bool {\n\t*event = yaml_event_t{\n\t\ttyp: yaml_SEQUENCE_END_EVENT,\n\t}\n\treturn true\n}\n\n// Create MAPPING-START.\nfunc yaml_mapping_start_event_initialize(event *yaml_event_t, anchor, tag []byte, implicit bool, style yaml_mapping_style_t) {\n\t*event = yaml_event_t{\n\t\ttyp:      yaml_MAPPING_START_EVENT,\n\t\tanchor:   anchor,\n\t\ttag:      tag,\n\t\timplicit: implicit,\n\t\tstyle:    yaml_style_t(style),\n\t}\n}\n\n// Create MAPPING-END.\nfunc yaml_mapping_end_event_initialize(event *yaml_event_t) {\n\t*event = yaml_event_t{\n\t\ttyp: yaml_MAPPING_END_EVENT,\n\t}\n}\n\n// Destroy an event object.\nfunc yaml_event_delete(event *yaml_event_t) {\n\t*event = yaml_event_t{}\n}\n\n///*\n// * Create a document object.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_initialize(document *yaml_document_t,\n//        version_directive *yaml_version_directive_t,\n//        tag_directives_start *yaml_tag_directive_t,\n//        tag_directives_end *yaml_tag_directive_t,\n//        start_implicit int, end_implicit int)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    struct {\n//        start *yaml_node_t\n//        end *yaml_node_t\n//        top *yaml_node_t\n//    } nodes = { NULL, NULL, NULL }\n//    version_directive_copy *yaml_version_directive_t = NULL\n//    struct {\n//        start *yaml_tag_directive_t\n//        end *yaml_tag_directive_t\n//        top *yaml_tag_directive_t\n//    } tag_directives_copy = { NULL, NULL, NULL }\n//    value yaml_tag_directive_t = { NULL, NULL }\n//    mark yaml_mark_t = { 0, 0, 0 }\n//\n//    assert(document) // Non-NULL document object is expected.\n//    assert((tag_directives_start && tag_directives_end) ||\n//            (tag_directives_start == tag_directives_end))\n//                            // Valid tag directives are expected.\n//\n//    if (!STACK_INIT(&context, nodes, INITIAL_STACK_SIZE)) goto error\n//\n//    if (version_directive) {\n//        version_directive_copy = yaml_malloc(sizeof(yaml_version_directive_t))\n//        if (!version_directive_copy) goto error\n//        version_directive_copy.major = version_directive.major\n//        version_directive_copy.minor = version_directive.minor\n//    }\n//\n//    if (tag_directives_start != tag_directives_end) {\n//        tag_directive *yaml_tag_directive_t\n//        if (!STACK_INIT(&context, tag_directives_copy, INITIAL_STACK_SIZE))\n//            goto error\n//        for (tag_directive = tag_directives_start\n//                tag_directive != tag_directives_end; tag_directive ++) {\n//            assert(tag_directive.handle)\n//            assert(tag_directive.prefix)\n//            if (!yaml_check_utf8(tag_directive.handle,\n//                        strlen((char *)tag_directive.handle)))\n//                goto error\n//            if (!yaml_check_utf8(tag_directive.prefix,\n//                        strlen((char *)tag_directive.prefix)))\n//                goto error\n//            value.handle = yaml_strdup(tag_directive.handle)\n//            value.prefix = yaml_strdup(tag_directive.prefix)\n//            if (!value.handle || !value.prefix) goto error\n//            if (!PUSH(&context, tag_directives_copy, value))\n//                goto error\n//            value.handle = NULL\n//            value.prefix = NULL\n//        }\n//    }\n//\n//    DOCUMENT_INIT(*document, nodes.start, nodes.end, version_directive_copy,\n//            tag_directives_copy.start, tag_directives_copy.top,\n//            start_implicit, end_implicit, mark, mark)\n//\n//    return 1\n//\n//error:\n//    STACK_DEL(&context, nodes)\n//    yaml_free(version_directive_copy)\n//    while (!STACK_EMPTY(&context, tag_directives_copy)) {\n//        value yaml_tag_directive_t = POP(&context, tag_directives_copy)\n//        yaml_free(value.handle)\n//        yaml_free(value.prefix)\n//    }\n//    STACK_DEL(&context, tag_directives_copy)\n//    yaml_free(value.handle)\n//    yaml_free(value.prefix)\n//\n//    return 0\n//}\n//\n///*\n// * Destroy a document object.\n// */\n//\n//YAML_DECLARE(void)\n//yaml_document_delete(document *yaml_document_t)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    tag_directive *yaml_tag_directive_t\n//\n//    context.error = YAML_NO_ERROR // Eliminate a compiler warning.\n//\n//    assert(document) // Non-NULL document object is expected.\n//\n//    while (!STACK_EMPTY(&context, document.nodes)) {\n//        node yaml_node_t = POP(&context, document.nodes)\n//        yaml_free(node.tag)\n//        switch (node.type) {\n//            case YAML_SCALAR_NODE:\n//                yaml_free(node.data.scalar.value)\n//                break\n//            case YAML_SEQUENCE_NODE:\n//                STACK_DEL(&context, node.data.sequence.items)\n//                break\n//            case YAML_MAPPING_NODE:\n//                STACK_DEL(&context, node.data.mapping.pairs)\n//                break\n//            default:\n//                assert(0) // Should not happen.\n//        }\n//    }\n//    STACK_DEL(&context, document.nodes)\n//\n//    yaml_free(document.version_directive)\n//    for (tag_directive = document.tag_directives.start\n//            tag_directive != document.tag_directives.end\n//            tag_directive++) {\n//        yaml_free(tag_directive.handle)\n//        yaml_free(tag_directive.prefix)\n//    }\n//    yaml_free(document.tag_directives.start)\n//\n//    memset(document, 0, sizeof(yaml_document_t))\n//}\n//\n///**\n// * Get a document node.\n// */\n//\n//YAML_DECLARE(yaml_node_t *)\n//yaml_document_get_node(document *yaml_document_t, index int)\n//{\n//    assert(document) // Non-NULL document object is expected.\n//\n//    if (index > 0 && document.nodes.start + index <= document.nodes.top) {\n//        return document.nodes.start + index - 1\n//    }\n//    return NULL\n//}\n//\n///**\n// * Get the root object.\n// */\n//\n//YAML_DECLARE(yaml_node_t *)\n//yaml_document_get_root_node(document *yaml_document_t)\n//{\n//    assert(document) // Non-NULL document object is expected.\n//\n//    if (document.nodes.top != document.nodes.start) {\n//        return document.nodes.start\n//    }\n//    return NULL\n//}\n//\n///*\n// * Add a scalar node to a document.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_add_scalar(document *yaml_document_t,\n//        tag *yaml_char_t, value *yaml_char_t, length int,\n//        style yaml_scalar_style_t)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    mark yaml_mark_t = { 0, 0, 0 }\n//    tag_copy *yaml_char_t = NULL\n//    value_copy *yaml_char_t = NULL\n//    node yaml_node_t\n//\n//    assert(document) // Non-NULL document object is expected.\n//    assert(value) // Non-NULL value is expected.\n//\n//    if (!tag) {\n//        tag = (yaml_char_t *)YAML_DEFAULT_SCALAR_TAG\n//    }\n//\n//    if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error\n//    tag_copy = yaml_strdup(tag)\n//    if (!tag_copy) goto error\n//\n//    if (length < 0) {\n//        length = strlen((char *)value)\n//    }\n//\n//    if (!yaml_check_utf8(value, length)) goto error\n//    value_copy = yaml_malloc(length+1)\n//    if (!value_copy) goto error\n//    memcpy(value_copy, value, length)\n//    value_copy[length] = '\\0'\n//\n//    SCALAR_NODE_INIT(node, tag_copy, value_copy, length, style, mark, mark)\n//    if (!PUSH(&context, document.nodes, node)) goto error\n//\n//    return document.nodes.top - document.nodes.start\n//\n//error:\n//    yaml_free(tag_copy)\n//    yaml_free(value_copy)\n//\n//    return 0\n//}\n//\n///*\n// * Add a sequence node to a document.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_add_sequence(document *yaml_document_t,\n//        tag *yaml_char_t, style yaml_sequence_style_t)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    mark yaml_mark_t = { 0, 0, 0 }\n//    tag_copy *yaml_char_t = NULL\n//    struct {\n//        start *yaml_node_item_t\n//        end *yaml_node_item_t\n//        top *yaml_node_item_t\n//    } items = { NULL, NULL, NULL }\n//    node yaml_node_t\n//\n//    assert(document) // Non-NULL document object is expected.\n//\n//    if (!tag) {\n//        tag = (yaml_char_t *)YAML_DEFAULT_SEQUENCE_TAG\n//    }\n//\n//    if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error\n//    tag_copy = yaml_strdup(tag)\n//    if (!tag_copy) goto error\n//\n//    if (!STACK_INIT(&context, items, INITIAL_STACK_SIZE)) goto error\n//\n//    SEQUENCE_NODE_INIT(node, tag_copy, items.start, items.end,\n//            style, mark, mark)\n//    if (!PUSH(&context, document.nodes, node)) goto error\n//\n//    return document.nodes.top - document.nodes.start\n//\n//error:\n//    STACK_DEL(&context, items)\n//    yaml_free(tag_copy)\n//\n//    return 0\n//}\n//\n///*\n// * Add a mapping node to a document.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_add_mapping(document *yaml_document_t,\n//        tag *yaml_char_t, style yaml_mapping_style_t)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    mark yaml_mark_t = { 0, 0, 0 }\n//    tag_copy *yaml_char_t = NULL\n//    struct {\n//        start *yaml_node_pair_t\n//        end *yaml_node_pair_t\n//        top *yaml_node_pair_t\n//    } pairs = { NULL, NULL, NULL }\n//    node yaml_node_t\n//\n//    assert(document) // Non-NULL document object is expected.\n//\n//    if (!tag) {\n//        tag = (yaml_char_t *)YAML_DEFAULT_MAPPING_TAG\n//    }\n//\n//    if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error\n//    tag_copy = yaml_strdup(tag)\n//    if (!tag_copy) goto error\n//\n//    if (!STACK_INIT(&context, pairs, INITIAL_STACK_SIZE)) goto error\n//\n//    MAPPING_NODE_INIT(node, tag_copy, pairs.start, pairs.end,\n//            style, mark, mark)\n//    if (!PUSH(&context, document.nodes, node)) goto error\n//\n//    return document.nodes.top - document.nodes.start\n//\n//error:\n//    STACK_DEL(&context, pairs)\n//    yaml_free(tag_copy)\n//\n//    return 0\n//}\n//\n///*\n// * Append an item to a sequence node.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_append_sequence_item(document *yaml_document_t,\n//        sequence int, item int)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//\n//    assert(document) // Non-NULL document is required.\n//    assert(sequence > 0\n//            && document.nodes.start + sequence <= document.nodes.top)\n//                            // Valid sequence id is required.\n//    assert(document.nodes.start[sequence-1].type == YAML_SEQUENCE_NODE)\n//                            // A sequence node is required.\n//    assert(item > 0 && document.nodes.start + item <= document.nodes.top)\n//                            // Valid item id is required.\n//\n//    if (!PUSH(&context,\n//                document.nodes.start[sequence-1].data.sequence.items, item))\n//        return 0\n//\n//    return 1\n//}\n//\n///*\n// * Append a pair of a key and a value to a mapping node.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_append_mapping_pair(document *yaml_document_t,\n//        mapping int, key int, value int)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//\n//    pair yaml_node_pair_t\n//\n//    assert(document) // Non-NULL document is required.\n//    assert(mapping > 0\n//            && document.nodes.start + mapping <= document.nodes.top)\n//                            // Valid mapping id is required.\n//    assert(document.nodes.start[mapping-1].type == YAML_MAPPING_NODE)\n//                            // A mapping node is required.\n//    assert(key > 0 && document.nodes.start + key <= document.nodes.top)\n//                            // Valid key id is required.\n//    assert(value > 0 && document.nodes.start + value <= document.nodes.top)\n//                            // Valid value id is required.\n//\n//    pair.key = key\n//    pair.value = value\n//\n//    if (!PUSH(&context,\n//                document.nodes.start[mapping-1].data.mapping.pairs, pair))\n//        return 0\n//\n//    return 1\n//}\n//\n//\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/decode.go",
    "content": "//\n// Copyright (c) 2011-2019 Canonical Ltd\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage yaml\n\nimport (\n\t\"encoding\"\n\t\"encoding/base64\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"time\"\n)\n\n// ----------------------------------------------------------------------------\n// Parser, produces a node tree out of a libyaml event stream.\n\ntype parser struct {\n\tparser   yaml_parser_t\n\tevent    yaml_event_t\n\tdoc      *Node\n\tanchors  map[string]*Node\n\tdoneInit bool\n\ttextless bool\n}\n\nfunc newParser(b []byte) *parser {\n\tp := parser{}\n\tif !yaml_parser_initialize(&p.parser) {\n\t\tpanic(\"failed to initialize YAML emitter\")\n\t}\n\tif len(b) == 0 {\n\t\tb = []byte{'\\n'}\n\t}\n\tyaml_parser_set_input_string(&p.parser, b)\n\treturn &p\n}\n\nfunc newParserFromReader(r io.Reader) *parser {\n\tp := parser{}\n\tif !yaml_parser_initialize(&p.parser) {\n\t\tpanic(\"failed to initialize YAML emitter\")\n\t}\n\tyaml_parser_set_input_reader(&p.parser, r)\n\treturn &p\n}\n\nfunc (p *parser) init() {\n\tif p.doneInit {\n\t\treturn\n\t}\n\tp.anchors = make(map[string]*Node)\n\tp.expect(yaml_STREAM_START_EVENT)\n\tp.doneInit = true\n}\n\nfunc (p *parser) destroy() {\n\tif p.event.typ != yaml_NO_EVENT {\n\t\tyaml_event_delete(&p.event)\n\t}\n\tyaml_parser_delete(&p.parser)\n}\n\n// expect consumes an event from the event stream and\n// checks that it's of the expected type.\nfunc (p *parser) expect(e yaml_event_type_t) {\n\tif p.event.typ == yaml_NO_EVENT {\n\t\tif !yaml_parser_parse(&p.parser, &p.event) {\n\t\t\tp.fail()\n\t\t}\n\t}\n\tif p.event.typ == yaml_STREAM_END_EVENT {\n\t\tfailf(\"attempted to go past the end of stream; corrupted value?\")\n\t}\n\tif p.event.typ != e {\n\t\tp.parser.problem = fmt.Sprintf(\"expected %s event but got %s\", e, p.event.typ)\n\t\tp.fail()\n\t}\n\tyaml_event_delete(&p.event)\n\tp.event.typ = yaml_NO_EVENT\n}\n\n// peek peeks at the next event in the event stream,\n// puts the results into p.event and returns the event type.\nfunc (p *parser) peek() yaml_event_type_t {\n\tif p.event.typ != yaml_NO_EVENT {\n\t\treturn p.event.typ\n\t}\n\t// It's curious choice from the underlying API to generally return a\n\t// positive result on success, but on this case return true in an error\n\t// scenario. This was the source of bugs in the past (issue #666).\n\tif !yaml_parser_parse(&p.parser, &p.event) || p.parser.error != yaml_NO_ERROR {\n\t\tp.fail()\n\t}\n\treturn p.event.typ\n}\n\nfunc (p *parser) fail() {\n\tvar where string\n\tvar line int\n\tif p.parser.context_mark.line != 0 {\n\t\tline = p.parser.context_mark.line\n\t\t// Scanner errors don't iterate line before returning error\n\t\tif p.parser.error == yaml_SCANNER_ERROR {\n\t\t\tline++\n\t\t}\n\t} else if p.parser.problem_mark.line != 0 {\n\t\tline = p.parser.problem_mark.line\n\t\t// Scanner errors don't iterate line before returning error\n\t\tif p.parser.error == yaml_SCANNER_ERROR {\n\t\t\tline++\n\t\t}\n\t}\n\tif line != 0 {\n\t\twhere = \"line \" + strconv.Itoa(line) + \": \"\n\t}\n\tvar msg string\n\tif len(p.parser.problem) > 0 {\n\t\tmsg = p.parser.problem\n\t} else {\n\t\tmsg = \"unknown problem parsing YAML content\"\n\t}\n\tfailf(\"%s%s\", where, msg)\n}\n\nfunc (p *parser) anchor(n *Node, anchor []byte) {\n\tif anchor != nil {\n\t\tn.Anchor = string(anchor)\n\t\tp.anchors[n.Anchor] = n\n\t}\n}\n\nfunc (p *parser) parse() *Node {\n\tp.init()\n\tswitch p.peek() {\n\tcase yaml_SCALAR_EVENT:\n\t\treturn p.scalar()\n\tcase yaml_ALIAS_EVENT:\n\t\treturn p.alias()\n\tcase yaml_MAPPING_START_EVENT:\n\t\treturn p.mapping()\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\treturn p.sequence()\n\tcase yaml_DOCUMENT_START_EVENT:\n\t\treturn p.document()\n\tcase yaml_STREAM_END_EVENT:\n\t\t// Happens when attempting to decode an empty buffer.\n\t\treturn nil\n\tcase yaml_TAIL_COMMENT_EVENT:\n\t\tpanic(\"internal error: unexpected tail comment event (please report)\")\n\tdefault:\n\t\tpanic(\"internal error: attempted to parse unknown event (please report): \" + p.event.typ.String())\n\t}\n}\n\nfunc (p *parser) node(kind Kind, defaultTag, tag, value string) *Node {\n\tvar style Style\n\tif tag != \"\" && tag != \"!\" {\n\t\ttag = shortTag(tag)\n\t\tstyle = TaggedStyle\n\t} else if defaultTag != \"\" {\n\t\ttag = defaultTag\n\t} else if kind == ScalarNode {\n\t\ttag, _ = resolve(\"\", value)\n\t}\n\tn := &Node{\n\t\tKind:  kind,\n\t\tTag:   tag,\n\t\tValue: value,\n\t\tStyle: style,\n\t}\n\tif !p.textless {\n\t\tn.Line = p.event.start_mark.line + 1\n\t\tn.Column = p.event.start_mark.column + 1\n\t\tn.HeadComment = string(p.event.head_comment)\n\t\tn.LineComment = string(p.event.line_comment)\n\t\tn.FootComment = string(p.event.foot_comment)\n\t}\n\treturn n\n}\n\nfunc (p *parser) parseChild(parent *Node) *Node {\n\tchild := p.parse()\n\tparent.Content = append(parent.Content, child)\n\treturn child\n}\n\nfunc (p *parser) document() *Node {\n\tn := p.node(DocumentNode, \"\", \"\", \"\")\n\tp.doc = n\n\tp.expect(yaml_DOCUMENT_START_EVENT)\n\tp.parseChild(n)\n\tif p.peek() == yaml_DOCUMENT_END_EVENT {\n\t\tn.FootComment = string(p.event.foot_comment)\n\t}\n\tp.expect(yaml_DOCUMENT_END_EVENT)\n\treturn n\n}\n\nfunc (p *parser) alias() *Node {\n\tn := p.node(AliasNode, \"\", \"\", string(p.event.anchor))\n\tn.Alias = p.anchors[n.Value]\n\tif n.Alias == nil {\n\t\tfailf(\"unknown anchor '%s' referenced\", n.Value)\n\t}\n\tp.expect(yaml_ALIAS_EVENT)\n\treturn n\n}\n\nfunc (p *parser) scalar() *Node {\n\tvar parsedStyle = p.event.scalar_style()\n\tvar nodeStyle Style\n\tswitch {\n\tcase parsedStyle&yaml_DOUBLE_QUOTED_SCALAR_STYLE != 0:\n\t\tnodeStyle = DoubleQuotedStyle\n\tcase parsedStyle&yaml_SINGLE_QUOTED_SCALAR_STYLE != 0:\n\t\tnodeStyle = SingleQuotedStyle\n\tcase parsedStyle&yaml_LITERAL_SCALAR_STYLE != 0:\n\t\tnodeStyle = LiteralStyle\n\tcase parsedStyle&yaml_FOLDED_SCALAR_STYLE != 0:\n\t\tnodeStyle = FoldedStyle\n\t}\n\tvar nodeValue = string(p.event.value)\n\tvar nodeTag = string(p.event.tag)\n\tvar defaultTag string\n\tif nodeStyle == 0 {\n\t\tif nodeValue == \"<<\" {\n\t\t\tdefaultTag = mergeTag\n\t\t}\n\t} else {\n\t\tdefaultTag = strTag\n\t}\n\tn := p.node(ScalarNode, defaultTag, nodeTag, nodeValue)\n\tn.Style |= nodeStyle\n\tp.anchor(n, p.event.anchor)\n\tp.expect(yaml_SCALAR_EVENT)\n\treturn n\n}\n\nfunc (p *parser) sequence() *Node {\n\tn := p.node(SequenceNode, seqTag, string(p.event.tag), \"\")\n\tif p.event.sequence_style()&yaml_FLOW_SEQUENCE_STYLE != 0 {\n\t\tn.Style |= FlowStyle\n\t}\n\tp.anchor(n, p.event.anchor)\n\tp.expect(yaml_SEQUENCE_START_EVENT)\n\tfor p.peek() != yaml_SEQUENCE_END_EVENT {\n\t\tp.parseChild(n)\n\t}\n\tn.LineComment = string(p.event.line_comment)\n\tn.FootComment = string(p.event.foot_comment)\n\tp.expect(yaml_SEQUENCE_END_EVENT)\n\treturn n\n}\n\nfunc (p *parser) mapping() *Node {\n\tn := p.node(MappingNode, mapTag, string(p.event.tag), \"\")\n\tblock := true\n\tif p.event.mapping_style()&yaml_FLOW_MAPPING_STYLE != 0 {\n\t\tblock = false\n\t\tn.Style |= FlowStyle\n\t}\n\tp.anchor(n, p.event.anchor)\n\tp.expect(yaml_MAPPING_START_EVENT)\n\tfor p.peek() != yaml_MAPPING_END_EVENT {\n\t\tk := p.parseChild(n)\n\t\tif block && k.FootComment != \"\" {\n\t\t\t// Must be a foot comment for the prior value when being dedented.\n\t\t\tif len(n.Content) > 2 {\n\t\t\t\tn.Content[len(n.Content)-3].FootComment = k.FootComment\n\t\t\t\tk.FootComment = \"\"\n\t\t\t}\n\t\t}\n\t\tv := p.parseChild(n)\n\t\tif k.FootComment == \"\" && v.FootComment != \"\" {\n\t\t\tk.FootComment = v.FootComment\n\t\t\tv.FootComment = \"\"\n\t\t}\n\t\tif p.peek() == yaml_TAIL_COMMENT_EVENT {\n\t\t\tif k.FootComment == \"\" {\n\t\t\t\tk.FootComment = string(p.event.foot_comment)\n\t\t\t}\n\t\t\tp.expect(yaml_TAIL_COMMENT_EVENT)\n\t\t}\n\t}\n\tn.LineComment = string(p.event.line_comment)\n\tn.FootComment = string(p.event.foot_comment)\n\tif n.Style&FlowStyle == 0 && n.FootComment != \"\" && len(n.Content) > 1 {\n\t\tn.Content[len(n.Content)-2].FootComment = n.FootComment\n\t\tn.FootComment = \"\"\n\t}\n\tp.expect(yaml_MAPPING_END_EVENT)\n\treturn n\n}\n\n// ----------------------------------------------------------------------------\n// Decoder, unmarshals a node into a provided value.\n\ntype decoder struct {\n\tdoc     *Node\n\taliases map[*Node]bool\n\tterrors []string\n\n\tstringMapType  reflect.Type\n\tgeneralMapType reflect.Type\n\n\tknownFields bool\n\tuniqueKeys  bool\n\tdecodeCount int\n\taliasCount  int\n\taliasDepth  int\n\n\tmergedFields map[interface{}]bool\n}\n\nvar (\n\tnodeType       = reflect.TypeOf(Node{})\n\tdurationType   = reflect.TypeOf(time.Duration(0))\n\tstringMapType  = reflect.TypeOf(map[string]interface{}{})\n\tgeneralMapType = reflect.TypeOf(map[interface{}]interface{}{})\n\tifaceType      = generalMapType.Elem()\n\ttimeType       = reflect.TypeOf(time.Time{})\n\tptrTimeType    = reflect.TypeOf(&time.Time{})\n)\n\nfunc newDecoder() *decoder {\n\td := &decoder{\n\t\tstringMapType:  stringMapType,\n\t\tgeneralMapType: generalMapType,\n\t\tuniqueKeys:     true,\n\t}\n\td.aliases = make(map[*Node]bool)\n\treturn d\n}\n\nfunc (d *decoder) terror(n *Node, tag string, out reflect.Value) {\n\tif n.Tag != \"\" {\n\t\ttag = n.Tag\n\t}\n\tvalue := n.Value\n\tif tag != seqTag && tag != mapTag {\n\t\tif len(value) > 10 {\n\t\t\tvalue = \" `\" + value[:7] + \"...`\"\n\t\t} else {\n\t\t\tvalue = \" `\" + value + \"`\"\n\t\t}\n\t}\n\td.terrors = append(d.terrors, fmt.Sprintf(\"line %d: cannot unmarshal %s%s into %s\", n.Line, shortTag(tag), value, out.Type()))\n}\n\nfunc (d *decoder) callUnmarshaler(n *Node, u Unmarshaler) (good bool) {\n\terr := u.UnmarshalYAML(n)\n\tif e, ok := err.(*TypeError); ok {\n\t\td.terrors = append(d.terrors, e.Errors...)\n\t\treturn false\n\t}\n\tif err != nil {\n\t\tfail(err)\n\t}\n\treturn true\n}\n\nfunc (d *decoder) callObsoleteUnmarshaler(n *Node, u obsoleteUnmarshaler) (good bool) {\n\tterrlen := len(d.terrors)\n\terr := u.UnmarshalYAML(func(v interface{}) (err error) {\n\t\tdefer handleErr(&err)\n\t\td.unmarshal(n, reflect.ValueOf(v))\n\t\tif len(d.terrors) > terrlen {\n\t\t\tissues := d.terrors[terrlen:]\n\t\t\td.terrors = d.terrors[:terrlen]\n\t\t\treturn &TypeError{issues}\n\t\t}\n\t\treturn nil\n\t})\n\tif e, ok := err.(*TypeError); ok {\n\t\td.terrors = append(d.terrors, e.Errors...)\n\t\treturn false\n\t}\n\tif err != nil {\n\t\tfail(err)\n\t}\n\treturn true\n}\n\n// d.prepare initializes and dereferences pointers and calls UnmarshalYAML\n// if a value is found to implement it.\n// It returns the initialized and dereferenced out value, whether\n// unmarshalling was already done by UnmarshalYAML, and if so whether\n// its types unmarshalled appropriately.\n//\n// If n holds a null value, prepare returns before doing anything.\nfunc (d *decoder) prepare(n *Node, out reflect.Value) (newout reflect.Value, unmarshaled, good bool) {\n\tif n.ShortTag() == nullTag {\n\t\treturn out, false, false\n\t}\n\tagain := true\n\tfor again {\n\t\tagain = false\n\t\tif out.Kind() == reflect.Ptr {\n\t\t\tif out.IsNil() {\n\t\t\t\tout.Set(reflect.New(out.Type().Elem()))\n\t\t\t}\n\t\t\tout = out.Elem()\n\t\t\tagain = true\n\t\t}\n\t\tif out.CanAddr() {\n\t\t\touti := out.Addr().Interface()\n\t\t\tif u, ok := outi.(Unmarshaler); ok {\n\t\t\t\tgood = d.callUnmarshaler(n, u)\n\t\t\t\treturn out, true, good\n\t\t\t}\n\t\t\tif u, ok := outi.(obsoleteUnmarshaler); ok {\n\t\t\t\tgood = d.callObsoleteUnmarshaler(n, u)\n\t\t\t\treturn out, true, good\n\t\t\t}\n\t\t}\n\t}\n\treturn out, false, false\n}\n\nfunc (d *decoder) fieldByIndex(n *Node, v reflect.Value, index []int) (field reflect.Value) {\n\tif n.ShortTag() == nullTag {\n\t\treturn reflect.Value{}\n\t}\n\tfor _, num := range index {\n\t\tfor {\n\t\t\tif v.Kind() == reflect.Ptr {\n\t\t\t\tif v.IsNil() {\n\t\t\t\t\tv.Set(reflect.New(v.Type().Elem()))\n\t\t\t\t}\n\t\t\t\tv = v.Elem()\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t\tv = v.Field(num)\n\t}\n\treturn v\n}\n\nconst (\n\t// 400,000 decode operations is ~500kb of dense object declarations, or\n\t// ~5kb of dense object declarations with 10000% alias expansion\n\talias_ratio_range_low = 400000\n\n\t// 4,000,000 decode operations is ~5MB of dense object declarations, or\n\t// ~4.5MB of dense object declarations with 10% alias expansion\n\talias_ratio_range_high = 4000000\n\n\t// alias_ratio_range is the range over which we scale allowed alias ratios\n\talias_ratio_range = float64(alias_ratio_range_high - alias_ratio_range_low)\n)\n\nfunc allowedAliasRatio(decodeCount int) float64 {\n\tswitch {\n\tcase decodeCount <= alias_ratio_range_low:\n\t\t// allow 99% to come from alias expansion for small-to-medium documents\n\t\treturn 0.99\n\tcase decodeCount >= alias_ratio_range_high:\n\t\t// allow 10% to come from alias expansion for very large documents\n\t\treturn 0.10\n\tdefault:\n\t\t// scale smoothly from 99% down to 10% over the range.\n\t\t// this maps to 396,000 - 400,000 allowed alias-driven decodes over the range.\n\t\t// 400,000 decode operations is ~100MB of allocations in worst-case scenarios (single-item maps).\n\t\treturn 0.99 - 0.89*(float64(decodeCount-alias_ratio_range_low)/alias_ratio_range)\n\t}\n}\n\nfunc (d *decoder) unmarshal(n *Node, out reflect.Value) (good bool) {\n\td.decodeCount++\n\tif d.aliasDepth > 0 {\n\t\td.aliasCount++\n\t}\n\tif d.aliasCount > 100 && d.decodeCount > 1000 && float64(d.aliasCount)/float64(d.decodeCount) > allowedAliasRatio(d.decodeCount) {\n\t\tfailf(\"document contains excessive aliasing\")\n\t}\n\tif out.Type() == nodeType {\n\t\tout.Set(reflect.ValueOf(n).Elem())\n\t\treturn true\n\t}\n\tswitch n.Kind {\n\tcase DocumentNode:\n\t\treturn d.document(n, out)\n\tcase AliasNode:\n\t\treturn d.alias(n, out)\n\t}\n\tout, unmarshaled, good := d.prepare(n, out)\n\tif unmarshaled {\n\t\treturn good\n\t}\n\tswitch n.Kind {\n\tcase ScalarNode:\n\t\tgood = d.scalar(n, out)\n\tcase MappingNode:\n\t\tgood = d.mapping(n, out)\n\tcase SequenceNode:\n\t\tgood = d.sequence(n, out)\n\tcase 0:\n\t\tif n.IsZero() {\n\t\t\treturn d.null(out)\n\t\t}\n\t\tfallthrough\n\tdefault:\n\t\tfailf(\"cannot decode node with unknown kind %d\", n.Kind)\n\t}\n\treturn good\n}\n\nfunc (d *decoder) document(n *Node, out reflect.Value) (good bool) {\n\tif len(n.Content) == 1 {\n\t\td.doc = n\n\t\td.unmarshal(n.Content[0], out)\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (d *decoder) alias(n *Node, out reflect.Value) (good bool) {\n\tif d.aliases[n] {\n\t\t// TODO this could actually be allowed in some circumstances.\n\t\tfailf(\"anchor '%s' value contains itself\", n.Value)\n\t}\n\td.aliases[n] = true\n\td.aliasDepth++\n\tgood = d.unmarshal(n.Alias, out)\n\td.aliasDepth--\n\tdelete(d.aliases, n)\n\treturn good\n}\n\nvar zeroValue reflect.Value\n\nfunc resetMap(out reflect.Value) {\n\tfor _, k := range out.MapKeys() {\n\t\tout.SetMapIndex(k, zeroValue)\n\t}\n}\n\nfunc (d *decoder) null(out reflect.Value) bool {\n\tif out.CanAddr() {\n\t\tswitch out.Kind() {\n\t\tcase reflect.Interface, reflect.Ptr, reflect.Map, reflect.Slice:\n\t\t\tout.Set(reflect.Zero(out.Type()))\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc (d *decoder) scalar(n *Node, out reflect.Value) bool {\n\tvar tag string\n\tvar resolved interface{}\n\tif n.indicatedString() {\n\t\ttag = strTag\n\t\tresolved = n.Value\n\t} else {\n\t\ttag, resolved = resolve(n.Tag, n.Value)\n\t\tif tag == binaryTag {\n\t\t\tdata, err := base64.StdEncoding.DecodeString(resolved.(string))\n\t\t\tif err != nil {\n\t\t\t\tfailf(\"!!binary value contains invalid base64 data\")\n\t\t\t}\n\t\t\tresolved = string(data)\n\t\t}\n\t}\n\tif resolved == nil {\n\t\treturn d.null(out)\n\t}\n\tif resolvedv := reflect.ValueOf(resolved); out.Type() == resolvedv.Type() {\n\t\t// We've resolved to exactly the type we want, so use that.\n\t\tout.Set(resolvedv)\n\t\treturn true\n\t}\n\t// Perhaps we can use the value as a TextUnmarshaler to\n\t// set its value.\n\tif out.CanAddr() {\n\t\tu, ok := out.Addr().Interface().(encoding.TextUnmarshaler)\n\t\tif ok {\n\t\t\tvar text []byte\n\t\t\tif tag == binaryTag {\n\t\t\t\ttext = []byte(resolved.(string))\n\t\t\t} else {\n\t\t\t\t// We let any value be unmarshaled into TextUnmarshaler.\n\t\t\t\t// That might be more lax than we'd like, but the\n\t\t\t\t// TextUnmarshaler itself should bowl out any dubious values.\n\t\t\t\ttext = []byte(n.Value)\n\t\t\t}\n\t\t\terr := u.UnmarshalText(text)\n\t\t\tif err != nil {\n\t\t\t\tfail(err)\n\t\t\t}\n\t\t\treturn true\n\t\t}\n\t}\n\tswitch out.Kind() {\n\tcase reflect.String:\n\t\tif tag == binaryTag {\n\t\t\tout.SetString(resolved.(string))\n\t\t\treturn true\n\t\t}\n\t\tout.SetString(n.Value)\n\t\treturn true\n\tcase reflect.Interface:\n\t\tout.Set(reflect.ValueOf(resolved))\n\t\treturn true\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\t// This used to work in v2, but it's very unfriendly.\n\t\tisDuration := out.Type() == durationType\n\n\t\tswitch resolved := resolved.(type) {\n\t\tcase int:\n\t\t\tif !isDuration && !out.OverflowInt(int64(resolved)) {\n\t\t\t\tout.SetInt(int64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase int64:\n\t\t\tif !isDuration && !out.OverflowInt(resolved) {\n\t\t\t\tout.SetInt(resolved)\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase uint64:\n\t\t\tif !isDuration && resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) {\n\t\t\t\tout.SetInt(int64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase float64:\n\t\t\tif !isDuration && resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) {\n\t\t\t\tout.SetInt(int64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase string:\n\t\t\tif out.Type() == durationType {\n\t\t\t\td, err := time.ParseDuration(resolved)\n\t\t\t\tif err == nil {\n\t\t\t\t\tout.SetInt(int64(d))\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\tswitch resolved := resolved.(type) {\n\t\tcase int:\n\t\t\tif resolved >= 0 && !out.OverflowUint(uint64(resolved)) {\n\t\t\t\tout.SetUint(uint64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase int64:\n\t\t\tif resolved >= 0 && !out.OverflowUint(uint64(resolved)) {\n\t\t\t\tout.SetUint(uint64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase uint64:\n\t\t\tif !out.OverflowUint(uint64(resolved)) {\n\t\t\t\tout.SetUint(uint64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase float64:\n\t\t\tif resolved <= math.MaxUint64 && !out.OverflowUint(uint64(resolved)) {\n\t\t\t\tout.SetUint(uint64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\tcase reflect.Bool:\n\t\tswitch resolved := resolved.(type) {\n\t\tcase bool:\n\t\t\tout.SetBool(resolved)\n\t\t\treturn true\n\t\tcase string:\n\t\t\t// This offers some compatibility with the 1.1 spec (https://yaml.org/type/bool.html).\n\t\t\t// It only works if explicitly attempting to unmarshal into a typed bool value.\n\t\t\tswitch resolved {\n\t\t\tcase \"y\", \"Y\", \"yes\", \"Yes\", \"YES\", \"on\", \"On\", \"ON\":\n\t\t\t\tout.SetBool(true)\n\t\t\t\treturn true\n\t\t\tcase \"n\", \"N\", \"no\", \"No\", \"NO\", \"off\", \"Off\", \"OFF\":\n\t\t\t\tout.SetBool(false)\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\tcase reflect.Float32, reflect.Float64:\n\t\tswitch resolved := resolved.(type) {\n\t\tcase int:\n\t\t\tout.SetFloat(float64(resolved))\n\t\t\treturn true\n\t\tcase int64:\n\t\t\tout.SetFloat(float64(resolved))\n\t\t\treturn true\n\t\tcase uint64:\n\t\t\tout.SetFloat(float64(resolved))\n\t\t\treturn true\n\t\tcase float64:\n\t\t\tout.SetFloat(resolved)\n\t\t\treturn true\n\t\t}\n\tcase reflect.Struct:\n\t\tif resolvedv := reflect.ValueOf(resolved); out.Type() == resolvedv.Type() {\n\t\t\tout.Set(resolvedv)\n\t\t\treturn true\n\t\t}\n\tcase reflect.Ptr:\n\t\tpanic(\"yaml internal error: please report the issue\")\n\t}\n\td.terror(n, tag, out)\n\treturn false\n}\n\nfunc settableValueOf(i interface{}) reflect.Value {\n\tv := reflect.ValueOf(i)\n\tsv := reflect.New(v.Type()).Elem()\n\tsv.Set(v)\n\treturn sv\n}\n\nfunc (d *decoder) sequence(n *Node, out reflect.Value) (good bool) {\n\tl := len(n.Content)\n\n\tvar iface reflect.Value\n\tswitch out.Kind() {\n\tcase reflect.Slice:\n\t\tout.Set(reflect.MakeSlice(out.Type(), l, l))\n\tcase reflect.Array:\n\t\tif l != out.Len() {\n\t\t\tfailf(\"invalid array: want %d elements but got %d\", out.Len(), l)\n\t\t}\n\tcase reflect.Interface:\n\t\t// No type hints. Will have to use a generic sequence.\n\t\tiface = out\n\t\tout = settableValueOf(make([]interface{}, l))\n\tdefault:\n\t\td.terror(n, seqTag, out)\n\t\treturn false\n\t}\n\tet := out.Type().Elem()\n\n\tj := 0\n\tfor i := 0; i < l; i++ {\n\t\te := reflect.New(et).Elem()\n\t\tif ok := d.unmarshal(n.Content[i], e); ok {\n\t\t\tout.Index(j).Set(e)\n\t\t\tj++\n\t\t}\n\t}\n\tif out.Kind() != reflect.Array {\n\t\tout.Set(out.Slice(0, j))\n\t}\n\tif iface.IsValid() {\n\t\tiface.Set(out)\n\t}\n\treturn true\n}\n\nfunc (d *decoder) mapping(n *Node, out reflect.Value) (good bool) {\n\tl := len(n.Content)\n\tif d.uniqueKeys {\n\t\tnerrs := len(d.terrors)\n\t\tfor i := 0; i < l; i += 2 {\n\t\t\tni := n.Content[i]\n\t\t\tfor j := i + 2; j < l; j += 2 {\n\t\t\t\tnj := n.Content[j]\n\t\t\t\tif ni.Kind == nj.Kind && ni.Value == nj.Value {\n\t\t\t\t\td.terrors = append(d.terrors, fmt.Sprintf(\"line %d: mapping key %#v already defined at line %d\", nj.Line, nj.Value, ni.Line))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif len(d.terrors) > nerrs {\n\t\t\treturn false\n\t\t}\n\t}\n\tswitch out.Kind() {\n\tcase reflect.Struct:\n\t\treturn d.mappingStruct(n, out)\n\tcase reflect.Map:\n\t\t// okay\n\tcase reflect.Interface:\n\t\tiface := out\n\t\tif isStringMap(n) {\n\t\t\tout = reflect.MakeMap(d.stringMapType)\n\t\t} else {\n\t\t\tout = reflect.MakeMap(d.generalMapType)\n\t\t}\n\t\tiface.Set(out)\n\tdefault:\n\t\td.terror(n, mapTag, out)\n\t\treturn false\n\t}\n\n\toutt := out.Type()\n\tkt := outt.Key()\n\tet := outt.Elem()\n\n\tstringMapType := d.stringMapType\n\tgeneralMapType := d.generalMapType\n\tif outt.Elem() == ifaceType {\n\t\tif outt.Key().Kind() == reflect.String {\n\t\t\td.stringMapType = outt\n\t\t} else if outt.Key() == ifaceType {\n\t\t\td.generalMapType = outt\n\t\t}\n\t}\n\n\tmergedFields := d.mergedFields\n\td.mergedFields = nil\n\n\tvar mergeNode *Node\n\n\tmapIsNew := false\n\tif out.IsNil() {\n\t\tout.Set(reflect.MakeMap(outt))\n\t\tmapIsNew = true\n\t}\n\tfor i := 0; i < l; i += 2 {\n\t\tif isMerge(n.Content[i]) {\n\t\t\tmergeNode = n.Content[i+1]\n\t\t\tcontinue\n\t\t}\n\t\tk := reflect.New(kt).Elem()\n\t\tif d.unmarshal(n.Content[i], k) {\n\t\t\tif mergedFields != nil {\n\t\t\t\tki := k.Interface()\n\t\t\t\tif mergedFields[ki] {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tmergedFields[ki] = true\n\t\t\t}\n\t\t\tkkind := k.Kind()\n\t\t\tif kkind == reflect.Interface {\n\t\t\t\tkkind = k.Elem().Kind()\n\t\t\t}\n\t\t\tif kkind == reflect.Map || kkind == reflect.Slice {\n\t\t\t\tfailf(\"invalid map key: %#v\", k.Interface())\n\t\t\t}\n\t\t\te := reflect.New(et).Elem()\n\t\t\tif d.unmarshal(n.Content[i+1], e) || n.Content[i+1].ShortTag() == nullTag && (mapIsNew || !out.MapIndex(k).IsValid()) {\n\t\t\t\tout.SetMapIndex(k, e)\n\t\t\t}\n\t\t}\n\t}\n\n\td.mergedFields = mergedFields\n\tif mergeNode != nil {\n\t\td.merge(n, mergeNode, out)\n\t}\n\n\td.stringMapType = stringMapType\n\td.generalMapType = generalMapType\n\treturn true\n}\n\nfunc isStringMap(n *Node) bool {\n\tif n.Kind != MappingNode {\n\t\treturn false\n\t}\n\tl := len(n.Content)\n\tfor i := 0; i < l; i += 2 {\n\t\tshortTag := n.Content[i].ShortTag()\n\t\tif shortTag != strTag && shortTag != mergeTag {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc (d *decoder) mappingStruct(n *Node, out reflect.Value) (good bool) {\n\tsinfo, err := getStructInfo(out.Type())\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tvar inlineMap reflect.Value\n\tvar elemType reflect.Type\n\tif sinfo.InlineMap != -1 {\n\t\tinlineMap = out.Field(sinfo.InlineMap)\n\t\telemType = inlineMap.Type().Elem()\n\t}\n\n\tfor _, index := range sinfo.InlineUnmarshalers {\n\t\tfield := d.fieldByIndex(n, out, index)\n\t\td.prepare(n, field)\n\t}\n\n\tmergedFields := d.mergedFields\n\td.mergedFields = nil\n\tvar mergeNode *Node\n\tvar doneFields []bool\n\tif d.uniqueKeys {\n\t\tdoneFields = make([]bool, len(sinfo.FieldsList))\n\t}\n\tname := settableValueOf(\"\")\n\tl := len(n.Content)\n\tfor i := 0; i < l; i += 2 {\n\t\tni := n.Content[i]\n\t\tif isMerge(ni) {\n\t\t\tmergeNode = n.Content[i+1]\n\t\t\tcontinue\n\t\t}\n\t\tif !d.unmarshal(ni, name) {\n\t\t\tcontinue\n\t\t}\n\t\tsname := name.String()\n\t\tif mergedFields != nil {\n\t\t\tif mergedFields[sname] {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tmergedFields[sname] = true\n\t\t}\n\t\tif info, ok := sinfo.FieldsMap[sname]; ok {\n\t\t\tif d.uniqueKeys {\n\t\t\t\tif doneFields[info.Id] {\n\t\t\t\t\td.terrors = append(d.terrors, fmt.Sprintf(\"line %d: field %s already set in type %s\", ni.Line, name.String(), out.Type()))\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tdoneFields[info.Id] = true\n\t\t\t}\n\t\t\tvar field reflect.Value\n\t\t\tif info.Inline == nil {\n\t\t\t\tfield = out.Field(info.Num)\n\t\t\t} else {\n\t\t\t\tfield = d.fieldByIndex(n, out, info.Inline)\n\t\t\t}\n\t\t\td.unmarshal(n.Content[i+1], field)\n\t\t} else if sinfo.InlineMap != -1 {\n\t\t\tif inlineMap.IsNil() {\n\t\t\t\tinlineMap.Set(reflect.MakeMap(inlineMap.Type()))\n\t\t\t}\n\t\t\tvalue := reflect.New(elemType).Elem()\n\t\t\td.unmarshal(n.Content[i+1], value)\n\t\t\tinlineMap.SetMapIndex(name, value)\n\t\t} else if d.knownFields {\n\t\t\td.terrors = append(d.terrors, fmt.Sprintf(\"line %d: field %s not found in type %s\", ni.Line, name.String(), out.Type()))\n\t\t}\n\t}\n\n\td.mergedFields = mergedFields\n\tif mergeNode != nil {\n\t\td.merge(n, mergeNode, out)\n\t}\n\treturn true\n}\n\nfunc failWantMap() {\n\tfailf(\"map merge requires map or sequence of maps as the value\")\n}\n\nfunc (d *decoder) merge(parent *Node, merge *Node, out reflect.Value) {\n\tmergedFields := d.mergedFields\n\tif mergedFields == nil {\n\t\td.mergedFields = make(map[interface{}]bool)\n\t\tfor i := 0; i < len(parent.Content); i += 2 {\n\t\t\tk := reflect.New(ifaceType).Elem()\n\t\t\tif d.unmarshal(parent.Content[i], k) {\n\t\t\t\td.mergedFields[k.Interface()] = true\n\t\t\t}\n\t\t}\n\t}\n\n\tswitch merge.Kind {\n\tcase MappingNode:\n\t\td.unmarshal(merge, out)\n\tcase AliasNode:\n\t\tif merge.Alias != nil && merge.Alias.Kind != MappingNode {\n\t\t\tfailWantMap()\n\t\t}\n\t\td.unmarshal(merge, out)\n\tcase SequenceNode:\n\t\tfor i := 0; i < len(merge.Content); i++ {\n\t\t\tni := merge.Content[i]\n\t\t\tif ni.Kind == AliasNode {\n\t\t\t\tif ni.Alias != nil && ni.Alias.Kind != MappingNode {\n\t\t\t\t\tfailWantMap()\n\t\t\t\t}\n\t\t\t} else if ni.Kind != MappingNode {\n\t\t\t\tfailWantMap()\n\t\t\t}\n\t\t\td.unmarshal(ni, out)\n\t\t}\n\tdefault:\n\t\tfailWantMap()\n\t}\n\n\td.mergedFields = mergedFields\n}\n\nfunc isMerge(n *Node) bool {\n\treturn n.Kind == ScalarNode && n.Value == \"<<\" && (n.Tag == \"\" || n.Tag == \"!\" || shortTag(n.Tag) == mergeTag)\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/emitterc.go",
    "content": "//\n// Copyright (c) 2011-2019 Canonical Ltd\n// Copyright (c) 2006-2010 Kirill Simonov\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n// of the Software, and to permit persons to whom the Software is furnished to do\n// so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\npackage yaml\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n)\n\n// Flush the buffer if needed.\nfunc flush(emitter *yaml_emitter_t) bool {\n\tif emitter.buffer_pos+5 >= len(emitter.buffer) {\n\t\treturn yaml_emitter_flush(emitter)\n\t}\n\treturn true\n}\n\n// Put a character to the output buffer.\nfunc put(emitter *yaml_emitter_t, value byte) bool {\n\tif emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) {\n\t\treturn false\n\t}\n\temitter.buffer[emitter.buffer_pos] = value\n\temitter.buffer_pos++\n\temitter.column++\n\treturn true\n}\n\n// Put a line break to the output buffer.\nfunc put_break(emitter *yaml_emitter_t) bool {\n\tif emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) {\n\t\treturn false\n\t}\n\tswitch emitter.line_break {\n\tcase yaml_CR_BREAK:\n\t\temitter.buffer[emitter.buffer_pos] = '\\r'\n\t\temitter.buffer_pos += 1\n\tcase yaml_LN_BREAK:\n\t\temitter.buffer[emitter.buffer_pos] = '\\n'\n\t\temitter.buffer_pos += 1\n\tcase yaml_CRLN_BREAK:\n\t\temitter.buffer[emitter.buffer_pos+0] = '\\r'\n\t\temitter.buffer[emitter.buffer_pos+1] = '\\n'\n\t\temitter.buffer_pos += 2\n\tdefault:\n\t\tpanic(\"unknown line break setting\")\n\t}\n\tif emitter.column == 0 {\n\t\temitter.space_above = true\n\t}\n\temitter.column = 0\n\temitter.line++\n\t// [Go] Do this here and below and drop from everywhere else (see commented lines).\n\temitter.indention = true\n\treturn true\n}\n\n// Copy a character from a string into buffer.\nfunc write(emitter *yaml_emitter_t, s []byte, i *int) bool {\n\tif emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) {\n\t\treturn false\n\t}\n\tp := emitter.buffer_pos\n\tw := width(s[*i])\n\tswitch w {\n\tcase 4:\n\t\temitter.buffer[p+3] = s[*i+3]\n\t\tfallthrough\n\tcase 3:\n\t\temitter.buffer[p+2] = s[*i+2]\n\t\tfallthrough\n\tcase 2:\n\t\temitter.buffer[p+1] = s[*i+1]\n\t\tfallthrough\n\tcase 1:\n\t\temitter.buffer[p+0] = s[*i+0]\n\tdefault:\n\t\tpanic(\"unknown character width\")\n\t}\n\temitter.column++\n\temitter.buffer_pos += w\n\t*i += w\n\treturn true\n}\n\n// Write a whole string into buffer.\nfunc write_all(emitter *yaml_emitter_t, s []byte) bool {\n\tfor i := 0; i < len(s); {\n\t\tif !write(emitter, s, &i) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Copy a line break character from a string into buffer.\nfunc write_break(emitter *yaml_emitter_t, s []byte, i *int) bool {\n\tif s[*i] == '\\n' {\n\t\tif !put_break(emitter) {\n\t\t\treturn false\n\t\t}\n\t\t*i++\n\t} else {\n\t\tif !write(emitter, s, i) {\n\t\t\treturn false\n\t\t}\n\t\tif emitter.column == 0 {\n\t\t\temitter.space_above = true\n\t\t}\n\t\temitter.column = 0\n\t\temitter.line++\n\t\t// [Go] Do this here and above and drop from everywhere else (see commented lines).\n\t\temitter.indention = true\n\t}\n\treturn true\n}\n\n// Set an emitter error and return false.\nfunc yaml_emitter_set_emitter_error(emitter *yaml_emitter_t, problem string) bool {\n\temitter.error = yaml_EMITTER_ERROR\n\temitter.problem = problem\n\treturn false\n}\n\n// Emit an event.\nfunc yaml_emitter_emit(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\temitter.events = append(emitter.events, *event)\n\tfor !yaml_emitter_need_more_events(emitter) {\n\t\tevent := &emitter.events[emitter.events_head]\n\t\tif !yaml_emitter_analyze_event(emitter, event) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_state_machine(emitter, event) {\n\t\t\treturn false\n\t\t}\n\t\tyaml_event_delete(event)\n\t\temitter.events_head++\n\t}\n\treturn true\n}\n\n// Check if we need to accumulate more events before emitting.\n//\n// We accumulate extra\n//  - 1 event for DOCUMENT-START\n//  - 2 events for SEQUENCE-START\n//  - 3 events for MAPPING-START\n//\nfunc yaml_emitter_need_more_events(emitter *yaml_emitter_t) bool {\n\tif emitter.events_head == len(emitter.events) {\n\t\treturn true\n\t}\n\tvar accumulate int\n\tswitch emitter.events[emitter.events_head].typ {\n\tcase yaml_DOCUMENT_START_EVENT:\n\t\taccumulate = 1\n\t\tbreak\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\taccumulate = 2\n\t\tbreak\n\tcase yaml_MAPPING_START_EVENT:\n\t\taccumulate = 3\n\t\tbreak\n\tdefault:\n\t\treturn false\n\t}\n\tif len(emitter.events)-emitter.events_head > accumulate {\n\t\treturn false\n\t}\n\tvar level int\n\tfor i := emitter.events_head; i < len(emitter.events); i++ {\n\t\tswitch emitter.events[i].typ {\n\t\tcase yaml_STREAM_START_EVENT, yaml_DOCUMENT_START_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT:\n\t\t\tlevel++\n\t\tcase yaml_STREAM_END_EVENT, yaml_DOCUMENT_END_EVENT, yaml_SEQUENCE_END_EVENT, yaml_MAPPING_END_EVENT:\n\t\t\tlevel--\n\t\t}\n\t\tif level == 0 {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Append a directive to the directives stack.\nfunc yaml_emitter_append_tag_directive(emitter *yaml_emitter_t, value *yaml_tag_directive_t, allow_duplicates bool) bool {\n\tfor i := 0; i < len(emitter.tag_directives); i++ {\n\t\tif bytes.Equal(value.handle, emitter.tag_directives[i].handle) {\n\t\t\tif allow_duplicates {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn yaml_emitter_set_emitter_error(emitter, \"duplicate %TAG directive\")\n\t\t}\n\t}\n\n\t// [Go] Do we actually need to copy this given garbage collection\n\t// and the lack of deallocating destructors?\n\ttag_copy := yaml_tag_directive_t{\n\t\thandle: make([]byte, len(value.handle)),\n\t\tprefix: make([]byte, len(value.prefix)),\n\t}\n\tcopy(tag_copy.handle, value.handle)\n\tcopy(tag_copy.prefix, value.prefix)\n\temitter.tag_directives = append(emitter.tag_directives, tag_copy)\n\treturn true\n}\n\n// Increase the indentation level.\nfunc yaml_emitter_increase_indent(emitter *yaml_emitter_t, flow, indentless bool) bool {\n\temitter.indents = append(emitter.indents, emitter.indent)\n\tif emitter.indent < 0 {\n\t\tif flow {\n\t\t\temitter.indent = emitter.best_indent\n\t\t} else {\n\t\t\temitter.indent = 0\n\t\t}\n\t} else if !indentless {\n\t\t// [Go] This was changed so that indentations are more regular.\n\t\tif emitter.states[len(emitter.states)-1] == yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE {\n\t\t\t// The first indent inside a sequence will just skip the \"- \" indicator.\n\t\t\temitter.indent += 2\n\t\t} else {\n\t\t\t// Everything else aligns to the chosen indentation.\n\t\t\temitter.indent = emitter.best_indent*((emitter.indent+emitter.best_indent)/emitter.best_indent)\n\t\t}\n\t}\n\treturn true\n}\n\n// State dispatcher.\nfunc yaml_emitter_state_machine(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tswitch emitter.state {\n\tdefault:\n\tcase yaml_EMIT_STREAM_START_STATE:\n\t\treturn yaml_emitter_emit_stream_start(emitter, event)\n\n\tcase yaml_EMIT_FIRST_DOCUMENT_START_STATE:\n\t\treturn yaml_emitter_emit_document_start(emitter, event, true)\n\n\tcase yaml_EMIT_DOCUMENT_START_STATE:\n\t\treturn yaml_emitter_emit_document_start(emitter, event, false)\n\n\tcase yaml_EMIT_DOCUMENT_CONTENT_STATE:\n\t\treturn yaml_emitter_emit_document_content(emitter, event)\n\n\tcase yaml_EMIT_DOCUMENT_END_STATE:\n\t\treturn yaml_emitter_emit_document_end(emitter, event)\n\n\tcase yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE:\n\t\treturn yaml_emitter_emit_flow_sequence_item(emitter, event, true, false)\n\n\tcase yaml_EMIT_FLOW_SEQUENCE_TRAIL_ITEM_STATE:\n\t\treturn yaml_emitter_emit_flow_sequence_item(emitter, event, false, true)\n\n\tcase yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE:\n\t\treturn yaml_emitter_emit_flow_sequence_item(emitter, event, false, false)\n\n\tcase yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE:\n\t\treturn yaml_emitter_emit_flow_mapping_key(emitter, event, true, false)\n\n\tcase yaml_EMIT_FLOW_MAPPING_TRAIL_KEY_STATE:\n\t\treturn yaml_emitter_emit_flow_mapping_key(emitter, event, false, true)\n\n\tcase yaml_EMIT_FLOW_MAPPING_KEY_STATE:\n\t\treturn yaml_emitter_emit_flow_mapping_key(emitter, event, false, false)\n\n\tcase yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE:\n\t\treturn yaml_emitter_emit_flow_mapping_value(emitter, event, true)\n\n\tcase yaml_EMIT_FLOW_MAPPING_VALUE_STATE:\n\t\treturn yaml_emitter_emit_flow_mapping_value(emitter, event, false)\n\n\tcase yaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE:\n\t\treturn yaml_emitter_emit_block_sequence_item(emitter, event, true)\n\n\tcase yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE:\n\t\treturn yaml_emitter_emit_block_sequence_item(emitter, event, false)\n\n\tcase yaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE:\n\t\treturn yaml_emitter_emit_block_mapping_key(emitter, event, true)\n\n\tcase yaml_EMIT_BLOCK_MAPPING_KEY_STATE:\n\t\treturn yaml_emitter_emit_block_mapping_key(emitter, event, false)\n\n\tcase yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE:\n\t\treturn yaml_emitter_emit_block_mapping_value(emitter, event, true)\n\n\tcase yaml_EMIT_BLOCK_MAPPING_VALUE_STATE:\n\t\treturn yaml_emitter_emit_block_mapping_value(emitter, event, false)\n\n\tcase yaml_EMIT_END_STATE:\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"expected nothing after STREAM-END\")\n\t}\n\tpanic(\"invalid emitter state\")\n}\n\n// Expect STREAM-START.\nfunc yaml_emitter_emit_stream_start(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif event.typ != yaml_STREAM_START_EVENT {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"expected STREAM-START\")\n\t}\n\tif emitter.encoding == yaml_ANY_ENCODING {\n\t\temitter.encoding = event.encoding\n\t\tif emitter.encoding == yaml_ANY_ENCODING {\n\t\t\temitter.encoding = yaml_UTF8_ENCODING\n\t\t}\n\t}\n\tif emitter.best_indent < 2 || emitter.best_indent > 9 {\n\t\temitter.best_indent = 2\n\t}\n\tif emitter.best_width >= 0 && emitter.best_width <= emitter.best_indent*2 {\n\t\temitter.best_width = 80\n\t}\n\tif emitter.best_width < 0 {\n\t\temitter.best_width = 1<<31 - 1\n\t}\n\tif emitter.line_break == yaml_ANY_BREAK {\n\t\temitter.line_break = yaml_LN_BREAK\n\t}\n\n\temitter.indent = -1\n\temitter.line = 0\n\temitter.column = 0\n\temitter.whitespace = true\n\temitter.indention = true\n\temitter.space_above = true\n\temitter.foot_indent = -1\n\n\tif emitter.encoding != yaml_UTF8_ENCODING {\n\t\tif !yaml_emitter_write_bom(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\temitter.state = yaml_EMIT_FIRST_DOCUMENT_START_STATE\n\treturn true\n}\n\n// Expect DOCUMENT-START or STREAM-END.\nfunc yaml_emitter_emit_document_start(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool {\n\n\tif event.typ == yaml_DOCUMENT_START_EVENT {\n\n\t\tif event.version_directive != nil {\n\t\t\tif !yaml_emitter_analyze_version_directive(emitter, event.version_directive) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tfor i := 0; i < len(event.tag_directives); i++ {\n\t\t\ttag_directive := &event.tag_directives[i]\n\t\t\tif !yaml_emitter_analyze_tag_directive(emitter, tag_directive) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_append_tag_directive(emitter, tag_directive, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tfor i := 0; i < len(default_tag_directives); i++ {\n\t\t\ttag_directive := &default_tag_directives[i]\n\t\t\tif !yaml_emitter_append_tag_directive(emitter, tag_directive, true) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\timplicit := event.implicit\n\t\tif !first || emitter.canonical {\n\t\t\timplicit = false\n\t\t}\n\n\t\tif emitter.open_ended && (event.version_directive != nil || len(event.tag_directives) > 0) {\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"...\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tif event.version_directive != nil {\n\t\t\timplicit = false\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"%YAML\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"1.1\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tif len(event.tag_directives) > 0 {\n\t\t\timplicit = false\n\t\t\tfor i := 0; i < len(event.tag_directives); i++ {\n\t\t\t\ttag_directive := &event.tag_directives[i]\n\t\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"%TAG\"), true, false, false) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif !yaml_emitter_write_tag_handle(emitter, tag_directive.handle) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif !yaml_emitter_write_tag_content(emitter, tag_directive.prefix, true) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif yaml_emitter_check_empty_document(emitter) {\n\t\t\timplicit = false\n\t\t}\n\t\tif !implicit {\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"---\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif emitter.canonical || true {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif len(emitter.head_comment) > 0 {\n\t\t\tif !yaml_emitter_process_head_comment(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !put_break(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\temitter.state = yaml_EMIT_DOCUMENT_CONTENT_STATE\n\t\treturn true\n\t}\n\n\tif event.typ == yaml_STREAM_END_EVENT {\n\t\tif emitter.open_ended {\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"...\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_flush(emitter) {\n\t\t\treturn false\n\t\t}\n\t\temitter.state = yaml_EMIT_END_STATE\n\t\treturn true\n\t}\n\n\treturn yaml_emitter_set_emitter_error(emitter, \"expected DOCUMENT-START or STREAM-END\")\n}\n\n// Expect the root node.\nfunc yaml_emitter_emit_document_content(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\temitter.states = append(emitter.states, yaml_EMIT_DOCUMENT_END_STATE)\n\n\tif !yaml_emitter_process_head_comment(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_emit_node(emitter, event, true, false, false, false) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_line_comment(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_foot_comment(emitter) {\n\t\treturn false\n\t}\n\treturn true\n}\n\n// Expect DOCUMENT-END.\nfunc yaml_emitter_emit_document_end(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif event.typ != yaml_DOCUMENT_END_EVENT {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"expected DOCUMENT-END\")\n\t}\n\t// [Go] Force document foot separation.\n\temitter.foot_indent = 0\n\tif !yaml_emitter_process_foot_comment(emitter) {\n\t\treturn false\n\t}\n\temitter.foot_indent = -1\n\tif !yaml_emitter_write_indent(emitter) {\n\t\treturn false\n\t}\n\tif !event.implicit {\n\t\t// [Go] Allocate the slice elsewhere.\n\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"...\"), true, false, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif !yaml_emitter_flush(emitter) {\n\t\treturn false\n\t}\n\temitter.state = yaml_EMIT_DOCUMENT_START_STATE\n\temitter.tag_directives = emitter.tag_directives[:0]\n\treturn true\n}\n\n// Expect a flow item node.\nfunc yaml_emitter_emit_flow_sequence_item(emitter *yaml_emitter_t, event *yaml_event_t, first, trail bool) bool {\n\tif first {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{'['}, true, true, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_increase_indent(emitter, true, false) {\n\t\t\treturn false\n\t\t}\n\t\temitter.flow_level++\n\t}\n\n\tif event.typ == yaml_SEQUENCE_END_EVENT {\n\t\tif emitter.canonical && !first && !trail {\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\temitter.flow_level--\n\t\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\t\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\t\tif emitter.column == 0 || emitter.canonical && !first {\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{']'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_process_line_comment(emitter) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_process_foot_comment(emitter) {\n\t\t\treturn false\n\t\t}\n\t\temitter.state = emitter.states[len(emitter.states)-1]\n\t\temitter.states = emitter.states[:len(emitter.states)-1]\n\n\t\treturn true\n\t}\n\n\tif !first && !trail {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif !yaml_emitter_process_head_comment(emitter) {\n\t\treturn false\n\t}\n\tif emitter.column == 0 {\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif emitter.canonical || emitter.column > emitter.best_width {\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif len(emitter.line_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0 {\n\t\temitter.states = append(emitter.states, yaml_EMIT_FLOW_SEQUENCE_TRAIL_ITEM_STATE)\n\t} else {\n\t\temitter.states = append(emitter.states, yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE)\n\t}\n\tif !yaml_emitter_emit_node(emitter, event, false, true, false, false) {\n\t\treturn false\n\t}\n\tif len(emitter.line_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0 {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif !yaml_emitter_process_line_comment(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_foot_comment(emitter) {\n\t\treturn false\n\t}\n\treturn true\n}\n\n// Expect a flow key node.\nfunc yaml_emitter_emit_flow_mapping_key(emitter *yaml_emitter_t, event *yaml_event_t, first, trail bool) bool {\n\tif first {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{'{'}, true, true, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_increase_indent(emitter, true, false) {\n\t\t\treturn false\n\t\t}\n\t\temitter.flow_level++\n\t}\n\n\tif event.typ == yaml_MAPPING_END_EVENT {\n\t\tif (emitter.canonical || len(emitter.head_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0) && !first && !trail {\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_process_head_comment(emitter) {\n\t\t\treturn false\n\t\t}\n\t\temitter.flow_level--\n\t\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\t\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\t\tif emitter.canonical && !first {\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{'}'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_process_line_comment(emitter) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_process_foot_comment(emitter) {\n\t\t\treturn false\n\t\t}\n\t\temitter.state = emitter.states[len(emitter.states)-1]\n\t\temitter.states = emitter.states[:len(emitter.states)-1]\n\t\treturn true\n\t}\n\n\tif !first && !trail {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif !yaml_emitter_process_head_comment(emitter) {\n\t\treturn false\n\t}\n\n\tif emitter.column == 0 {\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif emitter.canonical || emitter.column > emitter.best_width {\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif !emitter.canonical && yaml_emitter_check_simple_key(emitter) {\n\t\temitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE)\n\t\treturn yaml_emitter_emit_node(emitter, event, false, false, true, true)\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'?'}, true, false, false) {\n\t\treturn false\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_VALUE_STATE)\n\treturn yaml_emitter_emit_node(emitter, event, false, false, true, false)\n}\n\n// Expect a flow value node.\nfunc yaml_emitter_emit_flow_mapping_value(emitter *yaml_emitter_t, event *yaml_event_t, simple bool) bool {\n\tif simple {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{':'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t} else {\n\t\tif emitter.canonical || emitter.column > emitter.best_width {\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{':'}, true, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif len(emitter.line_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0 {\n\t\temitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_TRAIL_KEY_STATE)\n\t} else {\n\t\temitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_KEY_STATE)\n\t}\n\tif !yaml_emitter_emit_node(emitter, event, false, false, true, false) {\n\t\treturn false\n\t}\n\tif len(emitter.line_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0 {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif !yaml_emitter_process_line_comment(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_foot_comment(emitter) {\n\t\treturn false\n\t}\n\treturn true\n}\n\n// Expect a block item node.\nfunc yaml_emitter_emit_block_sequence_item(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\tif !yaml_emitter_increase_indent(emitter, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif event.typ == yaml_SEQUENCE_END_EVENT {\n\t\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\t\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\t\temitter.state = emitter.states[len(emitter.states)-1]\n\t\temitter.states = emitter.states[:len(emitter.states)-1]\n\t\treturn true\n\t}\n\tif !yaml_emitter_process_head_comment(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_write_indent(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'-'}, true, false, true) {\n\t\treturn false\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE)\n\tif !yaml_emitter_emit_node(emitter, event, false, true, false, false) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_line_comment(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_foot_comment(emitter) {\n\t\treturn false\n\t}\n\treturn true\n}\n\n// Expect a block key node.\nfunc yaml_emitter_emit_block_mapping_key(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\tif !yaml_emitter_increase_indent(emitter, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif !yaml_emitter_process_head_comment(emitter) {\n\t\treturn false\n\t}\n\tif event.typ == yaml_MAPPING_END_EVENT {\n\t\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\t\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\t\temitter.state = emitter.states[len(emitter.states)-1]\n\t\temitter.states = emitter.states[:len(emitter.states)-1]\n\t\treturn true\n\t}\n\tif !yaml_emitter_write_indent(emitter) {\n\t\treturn false\n\t}\n\tif len(emitter.line_comment) > 0 {\n\t\t// [Go] A line comment was provided for the key. That's unusual as the\n\t\t//      scanner associates line comments with the value. Either way,\n\t\t//      save the line comment and render it appropriately later.\n\t\temitter.key_line_comment = emitter.line_comment\n\t\temitter.line_comment = nil\n\t}\n\tif yaml_emitter_check_simple_key(emitter) {\n\t\temitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE)\n\t\treturn yaml_emitter_emit_node(emitter, event, false, false, true, true)\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'?'}, true, false, true) {\n\t\treturn false\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_VALUE_STATE)\n\treturn yaml_emitter_emit_node(emitter, event, false, false, true, false)\n}\n\n// Expect a block value node.\nfunc yaml_emitter_emit_block_mapping_value(emitter *yaml_emitter_t, event *yaml_event_t, simple bool) bool {\n\tif simple {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{':'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t} else {\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{':'}, true, false, true) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif len(emitter.key_line_comment) > 0 {\n\t\t// [Go] Line comments are generally associated with the value, but when there's\n\t\t//      no value on the same line as a mapping key they end up attached to the\n\t\t//      key itself.\n\t\tif event.typ == yaml_SCALAR_EVENT {\n\t\t\tif len(emitter.line_comment) == 0 {\n\t\t\t\t// A scalar is coming and it has no line comments by itself yet,\n\t\t\t\t// so just let it handle the line comment as usual. If it has a\n\t\t\t\t// line comment, we can't have both so the one from the key is lost.\n\t\t\t\temitter.line_comment = emitter.key_line_comment\n\t\t\t\temitter.key_line_comment = nil\n\t\t\t}\n\t\t} else if event.sequence_style() != yaml_FLOW_SEQUENCE_STYLE && (event.typ == yaml_MAPPING_START_EVENT || event.typ == yaml_SEQUENCE_START_EVENT) {\n\t\t\t// An indented block follows, so write the comment right now.\n\t\t\temitter.line_comment, emitter.key_line_comment = emitter.key_line_comment, emitter.line_comment\n\t\t\tif !yaml_emitter_process_line_comment(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.line_comment, emitter.key_line_comment = emitter.key_line_comment, emitter.line_comment\n\t\t}\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_KEY_STATE)\n\tif !yaml_emitter_emit_node(emitter, event, false, false, true, false) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_line_comment(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_foot_comment(emitter) {\n\t\treturn false\n\t}\n\treturn true\n}\n\nfunc yaml_emitter_silent_nil_event(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\treturn event.typ == yaml_SCALAR_EVENT && event.implicit && !emitter.canonical && len(emitter.scalar_data.value) == 0\n}\n\n// Expect a node.\nfunc yaml_emitter_emit_node(emitter *yaml_emitter_t, event *yaml_event_t,\n\troot bool, sequence bool, mapping bool, simple_key bool) bool {\n\n\temitter.root_context = root\n\temitter.sequence_context = sequence\n\temitter.mapping_context = mapping\n\temitter.simple_key_context = simple_key\n\n\tswitch event.typ {\n\tcase yaml_ALIAS_EVENT:\n\t\treturn yaml_emitter_emit_alias(emitter, event)\n\tcase yaml_SCALAR_EVENT:\n\t\treturn yaml_emitter_emit_scalar(emitter, event)\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\treturn yaml_emitter_emit_sequence_start(emitter, event)\n\tcase yaml_MAPPING_START_EVENT:\n\t\treturn yaml_emitter_emit_mapping_start(emitter, event)\n\tdefault:\n\t\treturn yaml_emitter_set_emitter_error(emitter,\n\t\t\tfmt.Sprintf(\"expected SCALAR, SEQUENCE-START, MAPPING-START, or ALIAS, but got %v\", event.typ))\n\t}\n}\n\n// Expect ALIAS.\nfunc yaml_emitter_emit_alias(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif !yaml_emitter_process_anchor(emitter) {\n\t\treturn false\n\t}\n\temitter.state = emitter.states[len(emitter.states)-1]\n\temitter.states = emitter.states[:len(emitter.states)-1]\n\treturn true\n}\n\n// Expect SCALAR.\nfunc yaml_emitter_emit_scalar(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif !yaml_emitter_select_scalar_style(emitter, event) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_anchor(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_tag(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_increase_indent(emitter, true, false) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_scalar(emitter) {\n\t\treturn false\n\t}\n\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\temitter.state = emitter.states[len(emitter.states)-1]\n\temitter.states = emitter.states[:len(emitter.states)-1]\n\treturn true\n}\n\n// Expect SEQUENCE-START.\nfunc yaml_emitter_emit_sequence_start(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif !yaml_emitter_process_anchor(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_tag(emitter) {\n\t\treturn false\n\t}\n\tif emitter.flow_level > 0 || emitter.canonical || event.sequence_style() == yaml_FLOW_SEQUENCE_STYLE ||\n\t\tyaml_emitter_check_empty_sequence(emitter) {\n\t\temitter.state = yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE\n\t} else {\n\t\temitter.state = yaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE\n\t}\n\treturn true\n}\n\n// Expect MAPPING-START.\nfunc yaml_emitter_emit_mapping_start(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif !yaml_emitter_process_anchor(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_tag(emitter) {\n\t\treturn false\n\t}\n\tif emitter.flow_level > 0 || emitter.canonical || event.mapping_style() == yaml_FLOW_MAPPING_STYLE ||\n\t\tyaml_emitter_check_empty_mapping(emitter) {\n\t\temitter.state = yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE\n\t} else {\n\t\temitter.state = yaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE\n\t}\n\treturn true\n}\n\n// Check if the document content is an empty scalar.\nfunc yaml_emitter_check_empty_document(emitter *yaml_emitter_t) bool {\n\treturn false // [Go] Huh?\n}\n\n// Check if the next events represent an empty sequence.\nfunc yaml_emitter_check_empty_sequence(emitter *yaml_emitter_t) bool {\n\tif len(emitter.events)-emitter.events_head < 2 {\n\t\treturn false\n\t}\n\treturn emitter.events[emitter.events_head].typ == yaml_SEQUENCE_START_EVENT &&\n\t\temitter.events[emitter.events_head+1].typ == yaml_SEQUENCE_END_EVENT\n}\n\n// Check if the next events represent an empty mapping.\nfunc yaml_emitter_check_empty_mapping(emitter *yaml_emitter_t) bool {\n\tif len(emitter.events)-emitter.events_head < 2 {\n\t\treturn false\n\t}\n\treturn emitter.events[emitter.events_head].typ == yaml_MAPPING_START_EVENT &&\n\t\temitter.events[emitter.events_head+1].typ == yaml_MAPPING_END_EVENT\n}\n\n// Check if the next node can be expressed as a simple key.\nfunc yaml_emitter_check_simple_key(emitter *yaml_emitter_t) bool {\n\tlength := 0\n\tswitch emitter.events[emitter.events_head].typ {\n\tcase yaml_ALIAS_EVENT:\n\t\tlength += len(emitter.anchor_data.anchor)\n\tcase yaml_SCALAR_EVENT:\n\t\tif emitter.scalar_data.multiline {\n\t\t\treturn false\n\t\t}\n\t\tlength += len(emitter.anchor_data.anchor) +\n\t\t\tlen(emitter.tag_data.handle) +\n\t\t\tlen(emitter.tag_data.suffix) +\n\t\t\tlen(emitter.scalar_data.value)\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\tif !yaml_emitter_check_empty_sequence(emitter) {\n\t\t\treturn false\n\t\t}\n\t\tlength += len(emitter.anchor_data.anchor) +\n\t\t\tlen(emitter.tag_data.handle) +\n\t\t\tlen(emitter.tag_data.suffix)\n\tcase yaml_MAPPING_START_EVENT:\n\t\tif !yaml_emitter_check_empty_mapping(emitter) {\n\t\t\treturn false\n\t\t}\n\t\tlength += len(emitter.anchor_data.anchor) +\n\t\t\tlen(emitter.tag_data.handle) +\n\t\t\tlen(emitter.tag_data.suffix)\n\tdefault:\n\t\treturn false\n\t}\n\treturn length <= 128\n}\n\n// Determine an acceptable scalar style.\nfunc yaml_emitter_select_scalar_style(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\n\tno_tag := len(emitter.tag_data.handle) == 0 && len(emitter.tag_data.suffix) == 0\n\tif no_tag && !event.implicit && !event.quoted_implicit {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"neither tag nor implicit flags are specified\")\n\t}\n\n\tstyle := event.scalar_style()\n\tif style == yaml_ANY_SCALAR_STYLE {\n\t\tstyle = yaml_PLAIN_SCALAR_STYLE\n\t}\n\tif emitter.canonical {\n\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t}\n\tif emitter.simple_key_context && emitter.scalar_data.multiline {\n\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t}\n\n\tif style == yaml_PLAIN_SCALAR_STYLE {\n\t\tif emitter.flow_level > 0 && !emitter.scalar_data.flow_plain_allowed ||\n\t\t\temitter.flow_level == 0 && !emitter.scalar_data.block_plain_allowed {\n\t\t\tstyle = yaml_SINGLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t\tif len(emitter.scalar_data.value) == 0 && (emitter.flow_level > 0 || emitter.simple_key_context) {\n\t\t\tstyle = yaml_SINGLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t\tif no_tag && !event.implicit {\n\t\t\tstyle = yaml_SINGLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t}\n\tif style == yaml_SINGLE_QUOTED_SCALAR_STYLE {\n\t\tif !emitter.scalar_data.single_quoted_allowed {\n\t\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t}\n\tif style == yaml_LITERAL_SCALAR_STYLE || style == yaml_FOLDED_SCALAR_STYLE {\n\t\tif !emitter.scalar_data.block_allowed || emitter.flow_level > 0 || emitter.simple_key_context {\n\t\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t}\n\n\tif no_tag && !event.quoted_implicit && style != yaml_PLAIN_SCALAR_STYLE {\n\t\temitter.tag_data.handle = []byte{'!'}\n\t}\n\temitter.scalar_data.style = style\n\treturn true\n}\n\n// Write an anchor.\nfunc yaml_emitter_process_anchor(emitter *yaml_emitter_t) bool {\n\tif emitter.anchor_data.anchor == nil {\n\t\treturn true\n\t}\n\tc := []byte{'&'}\n\tif emitter.anchor_data.alias {\n\t\tc[0] = '*'\n\t}\n\tif !yaml_emitter_write_indicator(emitter, c, true, false, false) {\n\t\treturn false\n\t}\n\treturn yaml_emitter_write_anchor(emitter, emitter.anchor_data.anchor)\n}\n\n// Write a tag.\nfunc yaml_emitter_process_tag(emitter *yaml_emitter_t) bool {\n\tif len(emitter.tag_data.handle) == 0 && len(emitter.tag_data.suffix) == 0 {\n\t\treturn true\n\t}\n\tif len(emitter.tag_data.handle) > 0 {\n\t\tif !yaml_emitter_write_tag_handle(emitter, emitter.tag_data.handle) {\n\t\t\treturn false\n\t\t}\n\t\tif len(emitter.tag_data.suffix) > 0 {\n\t\t\tif !yaml_emitter_write_tag_content(emitter, emitter.tag_data.suffix, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// [Go] Allocate these slices elsewhere.\n\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"!<\"), true, false, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_write_tag_content(emitter, emitter.tag_data.suffix, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{'>'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Write a scalar.\nfunc yaml_emitter_process_scalar(emitter *yaml_emitter_t) bool {\n\tswitch emitter.scalar_data.style {\n\tcase yaml_PLAIN_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_plain_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context)\n\n\tcase yaml_SINGLE_QUOTED_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_single_quoted_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context)\n\n\tcase yaml_DOUBLE_QUOTED_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_double_quoted_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context)\n\n\tcase yaml_LITERAL_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_literal_scalar(emitter, emitter.scalar_data.value)\n\n\tcase yaml_FOLDED_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_folded_scalar(emitter, emitter.scalar_data.value)\n\t}\n\tpanic(\"unknown scalar style\")\n}\n\n// Write a head comment.\nfunc yaml_emitter_process_head_comment(emitter *yaml_emitter_t) bool {\n\tif len(emitter.tail_comment) > 0 {\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_write_comment(emitter, emitter.tail_comment) {\n\t\t\treturn false\n\t\t}\n\t\temitter.tail_comment = emitter.tail_comment[:0]\n\t\temitter.foot_indent = emitter.indent\n\t\tif emitter.foot_indent < 0 {\n\t\t\temitter.foot_indent = 0\n\t\t}\n\t}\n\n\tif len(emitter.head_comment) == 0 {\n\t\treturn true\n\t}\n\tif !yaml_emitter_write_indent(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_write_comment(emitter, emitter.head_comment) {\n\t\treturn false\n\t}\n\temitter.head_comment = emitter.head_comment[:0]\n\treturn true\n}\n\n// Write an line comment.\nfunc yaml_emitter_process_line_comment(emitter *yaml_emitter_t) bool {\n\tif len(emitter.line_comment) == 0 {\n\t\treturn true\n\t}\n\tif !emitter.whitespace {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\tif !yaml_emitter_write_comment(emitter, emitter.line_comment) {\n\t\treturn false\n\t}\n\temitter.line_comment = emitter.line_comment[:0]\n\treturn true\n}\n\n// Write a foot comment.\nfunc yaml_emitter_process_foot_comment(emitter *yaml_emitter_t) bool {\n\tif len(emitter.foot_comment) == 0 {\n\t\treturn true\n\t}\n\tif !yaml_emitter_write_indent(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_write_comment(emitter, emitter.foot_comment) {\n\t\treturn false\n\t}\n\temitter.foot_comment = emitter.foot_comment[:0]\n\temitter.foot_indent = emitter.indent\n\tif emitter.foot_indent < 0 {\n\t\temitter.foot_indent = 0\n\t}\n\treturn true\n}\n\n// Check if a %YAML directive is valid.\nfunc yaml_emitter_analyze_version_directive(emitter *yaml_emitter_t, version_directive *yaml_version_directive_t) bool {\n\tif version_directive.major != 1 || version_directive.minor != 1 {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"incompatible %YAML directive\")\n\t}\n\treturn true\n}\n\n// Check if a %TAG directive is valid.\nfunc yaml_emitter_analyze_tag_directive(emitter *yaml_emitter_t, tag_directive *yaml_tag_directive_t) bool {\n\thandle := tag_directive.handle\n\tprefix := tag_directive.prefix\n\tif len(handle) == 0 {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag handle must not be empty\")\n\t}\n\tif handle[0] != '!' {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag handle must start with '!'\")\n\t}\n\tif handle[len(handle)-1] != '!' {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag handle must end with '!'\")\n\t}\n\tfor i := 1; i < len(handle)-1; i += width(handle[i]) {\n\t\tif !is_alpha(handle, i) {\n\t\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag handle must contain alphanumerical characters only\")\n\t\t}\n\t}\n\tif len(prefix) == 0 {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag prefix must not be empty\")\n\t}\n\treturn true\n}\n\n// Check if an anchor is valid.\nfunc yaml_emitter_analyze_anchor(emitter *yaml_emitter_t, anchor []byte, alias bool) bool {\n\tif len(anchor) == 0 {\n\t\tproblem := \"anchor value must not be empty\"\n\t\tif alias {\n\t\t\tproblem = \"alias value must not be empty\"\n\t\t}\n\t\treturn yaml_emitter_set_emitter_error(emitter, problem)\n\t}\n\tfor i := 0; i < len(anchor); i += width(anchor[i]) {\n\t\tif !is_alpha(anchor, i) {\n\t\t\tproblem := \"anchor value must contain alphanumerical characters only\"\n\t\t\tif alias {\n\t\t\t\tproblem = \"alias value must contain alphanumerical characters only\"\n\t\t\t}\n\t\t\treturn yaml_emitter_set_emitter_error(emitter, problem)\n\t\t}\n\t}\n\temitter.anchor_data.anchor = anchor\n\temitter.anchor_data.alias = alias\n\treturn true\n}\n\n// Check if a tag is valid.\nfunc yaml_emitter_analyze_tag(emitter *yaml_emitter_t, tag []byte) bool {\n\tif len(tag) == 0 {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag value must not be empty\")\n\t}\n\tfor i := 0; i < len(emitter.tag_directives); i++ {\n\t\ttag_directive := &emitter.tag_directives[i]\n\t\tif bytes.HasPrefix(tag, tag_directive.prefix) {\n\t\t\temitter.tag_data.handle = tag_directive.handle\n\t\t\temitter.tag_data.suffix = tag[len(tag_directive.prefix):]\n\t\t\treturn true\n\t\t}\n\t}\n\temitter.tag_data.suffix = tag\n\treturn true\n}\n\n// Check if a scalar is valid.\nfunc yaml_emitter_analyze_scalar(emitter *yaml_emitter_t, value []byte) bool {\n\tvar (\n\t\tblock_indicators   = false\n\t\tflow_indicators    = false\n\t\tline_breaks        = false\n\t\tspecial_characters = false\n\t\ttab_characters     = false\n\n\t\tleading_space  = false\n\t\tleading_break  = false\n\t\ttrailing_space = false\n\t\ttrailing_break = false\n\t\tbreak_space    = false\n\t\tspace_break    = false\n\n\t\tpreceded_by_whitespace = false\n\t\tfollowed_by_whitespace = false\n\t\tprevious_space         = false\n\t\tprevious_break         = false\n\t)\n\n\temitter.scalar_data.value = value\n\n\tif len(value) == 0 {\n\t\temitter.scalar_data.multiline = false\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = true\n\t\temitter.scalar_data.single_quoted_allowed = true\n\t\temitter.scalar_data.block_allowed = false\n\t\treturn true\n\t}\n\n\tif len(value) >= 3 && ((value[0] == '-' && value[1] == '-' && value[2] == '-') || (value[0] == '.' && value[1] == '.' && value[2] == '.')) {\n\t\tblock_indicators = true\n\t\tflow_indicators = true\n\t}\n\n\tpreceded_by_whitespace = true\n\tfor i, w := 0, 0; i < len(value); i += w {\n\t\tw = width(value[i])\n\t\tfollowed_by_whitespace = i+w >= len(value) || is_blank(value, i+w)\n\n\t\tif i == 0 {\n\t\t\tswitch value[i] {\n\t\t\tcase '#', ',', '[', ']', '{', '}', '&', '*', '!', '|', '>', '\\'', '\"', '%', '@', '`':\n\t\t\t\tflow_indicators = true\n\t\t\t\tblock_indicators = true\n\t\t\tcase '?', ':':\n\t\t\t\tflow_indicators = true\n\t\t\t\tif followed_by_whitespace {\n\t\t\t\t\tblock_indicators = true\n\t\t\t\t}\n\t\t\tcase '-':\n\t\t\t\tif followed_by_whitespace {\n\t\t\t\t\tflow_indicators = true\n\t\t\t\t\tblock_indicators = true\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tswitch value[i] {\n\t\t\tcase ',', '?', '[', ']', '{', '}':\n\t\t\t\tflow_indicators = true\n\t\t\tcase ':':\n\t\t\t\tflow_indicators = true\n\t\t\t\tif followed_by_whitespace {\n\t\t\t\t\tblock_indicators = true\n\t\t\t\t}\n\t\t\tcase '#':\n\t\t\t\tif preceded_by_whitespace {\n\t\t\t\t\tflow_indicators = true\n\t\t\t\t\tblock_indicators = true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif value[i] == '\\t' {\n\t\t\ttab_characters = true\n\t\t} else if !is_printable(value, i) || !is_ascii(value, i) && !emitter.unicode {\n\t\t\tspecial_characters = true\n\t\t}\n\t\tif is_space(value, i) {\n\t\t\tif i == 0 {\n\t\t\t\tleading_space = true\n\t\t\t}\n\t\t\tif i+width(value[i]) == len(value) {\n\t\t\t\ttrailing_space = true\n\t\t\t}\n\t\t\tif previous_break {\n\t\t\t\tbreak_space = true\n\t\t\t}\n\t\t\tprevious_space = true\n\t\t\tprevious_break = false\n\t\t} else if is_break(value, i) {\n\t\t\tline_breaks = true\n\t\t\tif i == 0 {\n\t\t\t\tleading_break = true\n\t\t\t}\n\t\t\tif i+width(value[i]) == len(value) {\n\t\t\t\ttrailing_break = true\n\t\t\t}\n\t\t\tif previous_space {\n\t\t\t\tspace_break = true\n\t\t\t}\n\t\t\tprevious_space = false\n\t\t\tprevious_break = true\n\t\t} else {\n\t\t\tprevious_space = false\n\t\t\tprevious_break = false\n\t\t}\n\n\t\t// [Go]: Why 'z'? Couldn't be the end of the string as that's the loop condition.\n\t\tpreceded_by_whitespace = is_blankz(value, i)\n\t}\n\n\temitter.scalar_data.multiline = line_breaks\n\temitter.scalar_data.flow_plain_allowed = true\n\temitter.scalar_data.block_plain_allowed = true\n\temitter.scalar_data.single_quoted_allowed = true\n\temitter.scalar_data.block_allowed = true\n\n\tif leading_space || leading_break || trailing_space || trailing_break {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = false\n\t}\n\tif trailing_space {\n\t\temitter.scalar_data.block_allowed = false\n\t}\n\tif break_space {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = false\n\t\temitter.scalar_data.single_quoted_allowed = false\n\t}\n\tif space_break || tab_characters || special_characters {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = false\n\t\temitter.scalar_data.single_quoted_allowed = false\n\t}\n\tif space_break || special_characters {\n\t\temitter.scalar_data.block_allowed = false\n\t}\n\tif line_breaks {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = false\n\t}\n\tif flow_indicators {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t}\n\tif block_indicators {\n\t\temitter.scalar_data.block_plain_allowed = false\n\t}\n\treturn true\n}\n\n// Check if the event data is valid.\nfunc yaml_emitter_analyze_event(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\n\temitter.anchor_data.anchor = nil\n\temitter.tag_data.handle = nil\n\temitter.tag_data.suffix = nil\n\temitter.scalar_data.value = nil\n\n\tif len(event.head_comment) > 0 {\n\t\temitter.head_comment = event.head_comment\n\t}\n\tif len(event.line_comment) > 0 {\n\t\temitter.line_comment = event.line_comment\n\t}\n\tif len(event.foot_comment) > 0 {\n\t\temitter.foot_comment = event.foot_comment\n\t}\n\tif len(event.tail_comment) > 0 {\n\t\temitter.tail_comment = event.tail_comment\n\t}\n\n\tswitch event.typ {\n\tcase yaml_ALIAS_EVENT:\n\t\tif !yaml_emitter_analyze_anchor(emitter, event.anchor, true) {\n\t\t\treturn false\n\t\t}\n\n\tcase yaml_SCALAR_EVENT:\n\t\tif len(event.anchor) > 0 {\n\t\t\tif !yaml_emitter_analyze_anchor(emitter, event.anchor, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif len(event.tag) > 0 && (emitter.canonical || (!event.implicit && !event.quoted_implicit)) {\n\t\t\tif !yaml_emitter_analyze_tag(emitter, event.tag) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_analyze_scalar(emitter, event.value) {\n\t\t\treturn false\n\t\t}\n\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\tif len(event.anchor) > 0 {\n\t\t\tif !yaml_emitter_analyze_anchor(emitter, event.anchor, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif len(event.tag) > 0 && (emitter.canonical || !event.implicit) {\n\t\t\tif !yaml_emitter_analyze_tag(emitter, event.tag) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\tcase yaml_MAPPING_START_EVENT:\n\t\tif len(event.anchor) > 0 {\n\t\t\tif !yaml_emitter_analyze_anchor(emitter, event.anchor, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif len(event.tag) > 0 && (emitter.canonical || !event.implicit) {\n\t\t\tif !yaml_emitter_analyze_tag(emitter, event.tag) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\treturn true\n}\n\n// Write the BOM character.\nfunc yaml_emitter_write_bom(emitter *yaml_emitter_t) bool {\n\tif !flush(emitter) {\n\t\treturn false\n\t}\n\tpos := emitter.buffer_pos\n\temitter.buffer[pos+0] = '\\xEF'\n\temitter.buffer[pos+1] = '\\xBB'\n\temitter.buffer[pos+2] = '\\xBF'\n\temitter.buffer_pos += 3\n\treturn true\n}\n\nfunc yaml_emitter_write_indent(emitter *yaml_emitter_t) bool {\n\tindent := emitter.indent\n\tif indent < 0 {\n\t\tindent = 0\n\t}\n\tif !emitter.indention || emitter.column > indent || (emitter.column == indent && !emitter.whitespace) {\n\t\tif !put_break(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif emitter.foot_indent == indent {\n\t\tif !put_break(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\tfor emitter.column < indent {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\temitter.whitespace = true\n\t//emitter.indention = true\n\temitter.space_above = false\n\temitter.foot_indent = -1\n\treturn true\n}\n\nfunc yaml_emitter_write_indicator(emitter *yaml_emitter_t, indicator []byte, need_whitespace, is_whitespace, is_indention bool) bool {\n\tif need_whitespace && !emitter.whitespace {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\tif !write_all(emitter, indicator) {\n\t\treturn false\n\t}\n\temitter.whitespace = is_whitespace\n\temitter.indention = (emitter.indention && is_indention)\n\temitter.open_ended = false\n\treturn true\n}\n\nfunc yaml_emitter_write_anchor(emitter *yaml_emitter_t, value []byte) bool {\n\tif !write_all(emitter, value) {\n\t\treturn false\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_tag_handle(emitter *yaml_emitter_t, value []byte) bool {\n\tif !emitter.whitespace {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\tif !write_all(emitter, value) {\n\t\treturn false\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_tag_content(emitter *yaml_emitter_t, value []byte, need_whitespace bool) bool {\n\tif need_whitespace && !emitter.whitespace {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\tfor i := 0; i < len(value); {\n\t\tvar must_write bool\n\t\tswitch value[i] {\n\t\tcase ';', '/', '?', ':', '@', '&', '=', '+', '$', ',', '_', '.', '~', '*', '\\'', '(', ')', '[', ']':\n\t\t\tmust_write = true\n\t\tdefault:\n\t\t\tmust_write = is_alpha(value, i)\n\t\t}\n\t\tif must_write {\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t} else {\n\t\t\tw := width(value[i])\n\t\t\tfor k := 0; k < w; k++ {\n\t\t\t\toctet := value[i]\n\t\t\t\ti++\n\t\t\t\tif !put(emitter, '%') {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\tc := octet >> 4\n\t\t\t\tif c < 10 {\n\t\t\t\t\tc += '0'\n\t\t\t\t} else {\n\t\t\t\t\tc += 'A' - 10\n\t\t\t\t}\n\t\t\t\tif !put(emitter, c) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\tc = octet & 0x0f\n\t\t\t\tif c < 10 {\n\t\t\t\t\tc += '0'\n\t\t\t\t} else {\n\t\t\t\t\tc += 'A' - 10\n\t\t\t\t}\n\t\t\t\tif !put(emitter, c) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_plain_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool {\n\tif len(value) > 0 && !emitter.whitespace {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tspaces := false\n\tbreaks := false\n\tfor i := 0; i < len(value); {\n\t\tif is_space(value, i) {\n\t\t\tif allow_breaks && !spaces && emitter.column > emitter.best_width && !is_space(value, i+1) {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\ti += width(value[i])\n\t\t\t} else {\n\t\t\t\tif !write(emitter, value, &i) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tspaces = true\n\t\t} else if is_break(value, i) {\n\t\t\tif !breaks && value[i] == '\\n' {\n\t\t\t\tif !put_break(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write_break(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\t//emitter.indention = true\n\t\t\tbreaks = true\n\t\t} else {\n\t\t\tif breaks {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = false\n\t\t\tspaces = false\n\t\t\tbreaks = false\n\t\t}\n\t}\n\n\tif len(value) > 0 {\n\t\temitter.whitespace = false\n\t}\n\temitter.indention = false\n\tif emitter.root_context {\n\t\temitter.open_ended = true\n\t}\n\n\treturn true\n}\n\nfunc yaml_emitter_write_single_quoted_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool {\n\n\tif !yaml_emitter_write_indicator(emitter, []byte{'\\''}, true, false, false) {\n\t\treturn false\n\t}\n\n\tspaces := false\n\tbreaks := false\n\tfor i := 0; i < len(value); {\n\t\tif is_space(value, i) {\n\t\t\tif allow_breaks && !spaces && emitter.column > emitter.best_width && i > 0 && i < len(value)-1 && !is_space(value, i+1) {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\ti += width(value[i])\n\t\t\t} else {\n\t\t\t\tif !write(emitter, value, &i) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tspaces = true\n\t\t} else if is_break(value, i) {\n\t\t\tif !breaks && value[i] == '\\n' {\n\t\t\t\tif !put_break(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write_break(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\t//emitter.indention = true\n\t\t\tbreaks = true\n\t\t} else {\n\t\t\tif breaks {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif value[i] == '\\'' {\n\t\t\t\tif !put(emitter, '\\'') {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = false\n\t\t\tspaces = false\n\t\t\tbreaks = false\n\t\t}\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'\\''}, false, false, false) {\n\t\treturn false\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_double_quoted_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool {\n\tspaces := false\n\tif !yaml_emitter_write_indicator(emitter, []byte{'\"'}, true, false, false) {\n\t\treturn false\n\t}\n\n\tfor i := 0; i < len(value); {\n\t\tif !is_printable(value, i) || (!emitter.unicode && !is_ascii(value, i)) ||\n\t\t\tis_bom(value, i) || is_break(value, i) ||\n\t\t\tvalue[i] == '\"' || value[i] == '\\\\' {\n\n\t\t\toctet := value[i]\n\n\t\t\tvar w int\n\t\t\tvar v rune\n\t\t\tswitch {\n\t\t\tcase octet&0x80 == 0x00:\n\t\t\t\tw, v = 1, rune(octet&0x7F)\n\t\t\tcase octet&0xE0 == 0xC0:\n\t\t\t\tw, v = 2, rune(octet&0x1F)\n\t\t\tcase octet&0xF0 == 0xE0:\n\t\t\t\tw, v = 3, rune(octet&0x0F)\n\t\t\tcase octet&0xF8 == 0xF0:\n\t\t\t\tw, v = 4, rune(octet&0x07)\n\t\t\t}\n\t\t\tfor k := 1; k < w; k++ {\n\t\t\t\toctet = value[i+k]\n\t\t\t\tv = (v << 6) + (rune(octet) & 0x3F)\n\t\t\t}\n\t\t\ti += w\n\n\t\t\tif !put(emitter, '\\\\') {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tvar ok bool\n\t\t\tswitch v {\n\t\t\tcase 0x00:\n\t\t\t\tok = put(emitter, '0')\n\t\t\tcase 0x07:\n\t\t\t\tok = put(emitter, 'a')\n\t\t\tcase 0x08:\n\t\t\t\tok = put(emitter, 'b')\n\t\t\tcase 0x09:\n\t\t\t\tok = put(emitter, 't')\n\t\t\tcase 0x0A:\n\t\t\t\tok = put(emitter, 'n')\n\t\t\tcase 0x0b:\n\t\t\t\tok = put(emitter, 'v')\n\t\t\tcase 0x0c:\n\t\t\t\tok = put(emitter, 'f')\n\t\t\tcase 0x0d:\n\t\t\t\tok = put(emitter, 'r')\n\t\t\tcase 0x1b:\n\t\t\t\tok = put(emitter, 'e')\n\t\t\tcase 0x22:\n\t\t\t\tok = put(emitter, '\"')\n\t\t\tcase 0x5c:\n\t\t\t\tok = put(emitter, '\\\\')\n\t\t\tcase 0x85:\n\t\t\t\tok = put(emitter, 'N')\n\t\t\tcase 0xA0:\n\t\t\t\tok = put(emitter, '_')\n\t\t\tcase 0x2028:\n\t\t\t\tok = put(emitter, 'L')\n\t\t\tcase 0x2029:\n\t\t\t\tok = put(emitter, 'P')\n\t\t\tdefault:\n\t\t\t\tif v <= 0xFF {\n\t\t\t\t\tok = put(emitter, 'x')\n\t\t\t\t\tw = 2\n\t\t\t\t} else if v <= 0xFFFF {\n\t\t\t\t\tok = put(emitter, 'u')\n\t\t\t\t\tw = 4\n\t\t\t\t} else {\n\t\t\t\t\tok = put(emitter, 'U')\n\t\t\t\t\tw = 8\n\t\t\t\t}\n\t\t\t\tfor k := (w - 1) * 4; ok && k >= 0; k -= 4 {\n\t\t\t\t\tdigit := byte((v >> uint(k)) & 0x0F)\n\t\t\t\t\tif digit < 10 {\n\t\t\t\t\t\tok = put(emitter, digit+'0')\n\t\t\t\t\t} else {\n\t\t\t\t\t\tok = put(emitter, digit+'A'-10)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !ok {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tspaces = false\n\t\t} else if is_space(value, i) {\n\t\t\tif allow_breaks && !spaces && emitter.column > emitter.best_width && i > 0 && i < len(value)-1 {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif is_space(value, i+1) {\n\t\t\t\t\tif !put(emitter, '\\\\') {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ti += width(value[i])\n\t\t\t} else if !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tspaces = true\n\t\t} else {\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tspaces = false\n\t\t}\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'\"'}, false, false, false) {\n\t\treturn false\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_block_scalar_hints(emitter *yaml_emitter_t, value []byte) bool {\n\tif is_space(value, 0) || is_break(value, 0) {\n\t\tindent_hint := []byte{'0' + byte(emitter.best_indent)}\n\t\tif !yaml_emitter_write_indicator(emitter, indent_hint, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\temitter.open_ended = false\n\n\tvar chomp_hint [1]byte\n\tif len(value) == 0 {\n\t\tchomp_hint[0] = '-'\n\t} else {\n\t\ti := len(value) - 1\n\t\tfor value[i]&0xC0 == 0x80 {\n\t\t\ti--\n\t\t}\n\t\tif !is_break(value, i) {\n\t\t\tchomp_hint[0] = '-'\n\t\t} else if i == 0 {\n\t\t\tchomp_hint[0] = '+'\n\t\t\temitter.open_ended = true\n\t\t} else {\n\t\t\ti--\n\t\t\tfor value[i]&0xC0 == 0x80 {\n\t\t\t\ti--\n\t\t\t}\n\t\t\tif is_break(value, i) {\n\t\t\t\tchomp_hint[0] = '+'\n\t\t\t\temitter.open_ended = true\n\t\t\t}\n\t\t}\n\t}\n\tif chomp_hint[0] != 0 {\n\t\tif !yaml_emitter_write_indicator(emitter, chomp_hint[:], false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc yaml_emitter_write_literal_scalar(emitter *yaml_emitter_t, value []byte) bool {\n\tif !yaml_emitter_write_indicator(emitter, []byte{'|'}, true, false, false) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_write_block_scalar_hints(emitter, value) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_line_comment(emitter) {\n\t\treturn false\n\t}\n\t//emitter.indention = true\n\temitter.whitespace = true\n\tbreaks := true\n\tfor i := 0; i < len(value); {\n\t\tif is_break(value, i) {\n\t\t\tif !write_break(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\t//emitter.indention = true\n\t\t\tbreaks = true\n\t\t} else {\n\t\t\tif breaks {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = false\n\t\t\tbreaks = false\n\t\t}\n\t}\n\n\treturn true\n}\n\nfunc yaml_emitter_write_folded_scalar(emitter *yaml_emitter_t, value []byte) bool {\n\tif !yaml_emitter_write_indicator(emitter, []byte{'>'}, true, false, false) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_write_block_scalar_hints(emitter, value) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_line_comment(emitter) {\n\t\treturn false\n\t}\n\n\t//emitter.indention = true\n\temitter.whitespace = true\n\n\tbreaks := true\n\tleading_spaces := true\n\tfor i := 0; i < len(value); {\n\t\tif is_break(value, i) {\n\t\t\tif !breaks && !leading_spaces && value[i] == '\\n' {\n\t\t\t\tk := 0\n\t\t\t\tfor is_break(value, k) {\n\t\t\t\t\tk += width(value[k])\n\t\t\t\t}\n\t\t\t\tif !is_blankz(value, k) {\n\t\t\t\t\tif !put_break(emitter) {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write_break(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\t//emitter.indention = true\n\t\t\tbreaks = true\n\t\t} else {\n\t\t\tif breaks {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tleading_spaces = is_blank(value, i)\n\t\t\t}\n\t\t\tif !breaks && is_space(value, i) && !is_space(value, i+1) && emitter.column > emitter.best_width {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\ti += width(value[i])\n\t\t\t} else {\n\t\t\t\tif !write(emitter, value, &i) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\temitter.indention = false\n\t\t\tbreaks = false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc yaml_emitter_write_comment(emitter *yaml_emitter_t, comment []byte) bool {\n\tbreaks := false\n\tpound := false\n\tfor i := 0; i < len(comment); {\n\t\tif is_break(comment, i) {\n\t\t\tif !write_break(emitter, comment, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\t//emitter.indention = true\n\t\t\tbreaks = true\n\t\t\tpound = false\n\t\t} else {\n\t\t\tif breaks && !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !pound {\n\t\t\t\tif comment[i] != '#' && (!put(emitter, '#') || !put(emitter, ' ')) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tpound = true\n\t\t\t}\n\t\t\tif !write(emitter, comment, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = false\n\t\t\tbreaks = false\n\t\t}\n\t}\n\tif !breaks && !put_break(emitter) {\n\t\treturn false\n\t}\n\n\temitter.whitespace = true\n\t//emitter.indention = true\n\treturn true\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/encode.go",
    "content": "//\n// Copyright (c) 2011-2019 Canonical Ltd\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage yaml\n\nimport (\n\t\"encoding\"\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\t\"unicode/utf8\"\n)\n\ntype encoder struct {\n\temitter  yaml_emitter_t\n\tevent    yaml_event_t\n\tout      []byte\n\tflow     bool\n\tindent   int\n\tdoneInit bool\n}\n\nfunc newEncoder() *encoder {\n\te := &encoder{}\n\tyaml_emitter_initialize(&e.emitter)\n\tyaml_emitter_set_output_string(&e.emitter, &e.out)\n\tyaml_emitter_set_unicode(&e.emitter, true)\n\treturn e\n}\n\nfunc newEncoderWithWriter(w io.Writer) *encoder {\n\te := &encoder{}\n\tyaml_emitter_initialize(&e.emitter)\n\tyaml_emitter_set_output_writer(&e.emitter, w)\n\tyaml_emitter_set_unicode(&e.emitter, true)\n\treturn e\n}\n\nfunc (e *encoder) init() {\n\tif e.doneInit {\n\t\treturn\n\t}\n\tif e.indent == 0 {\n\t\te.indent = 4\n\t}\n\te.emitter.best_indent = e.indent\n\tyaml_stream_start_event_initialize(&e.event, yaml_UTF8_ENCODING)\n\te.emit()\n\te.doneInit = true\n}\n\nfunc (e *encoder) finish() {\n\te.emitter.open_ended = false\n\tyaml_stream_end_event_initialize(&e.event)\n\te.emit()\n}\n\nfunc (e *encoder) destroy() {\n\tyaml_emitter_delete(&e.emitter)\n}\n\nfunc (e *encoder) emit() {\n\t// This will internally delete the e.event value.\n\te.must(yaml_emitter_emit(&e.emitter, &e.event))\n}\n\nfunc (e *encoder) must(ok bool) {\n\tif !ok {\n\t\tmsg := e.emitter.problem\n\t\tif msg == \"\" {\n\t\t\tmsg = \"unknown problem generating YAML content\"\n\t\t}\n\t\tfailf(\"%s\", msg)\n\t}\n}\n\nfunc (e *encoder) marshalDoc(tag string, in reflect.Value) {\n\te.init()\n\tvar node *Node\n\tif in.IsValid() {\n\t\tnode, _ = in.Interface().(*Node)\n\t}\n\tif node != nil && node.Kind == DocumentNode {\n\t\te.nodev(in)\n\t} else {\n\t\tyaml_document_start_event_initialize(&e.event, nil, nil, true)\n\t\te.emit()\n\t\te.marshal(tag, in)\n\t\tyaml_document_end_event_initialize(&e.event, true)\n\t\te.emit()\n\t}\n}\n\nfunc (e *encoder) marshal(tag string, in reflect.Value) {\n\ttag = shortTag(tag)\n\tif !in.IsValid() || in.Kind() == reflect.Ptr && in.IsNil() {\n\t\te.nilv()\n\t\treturn\n\t}\n\tiface := in.Interface()\n\tswitch value := iface.(type) {\n\tcase *Node:\n\t\te.nodev(in)\n\t\treturn\n\tcase Node:\n\t\tif !in.CanAddr() {\n\t\t\tvar n = reflect.New(in.Type()).Elem()\n\t\t\tn.Set(in)\n\t\t\tin = n\n\t\t}\n\t\te.nodev(in.Addr())\n\t\treturn\n\tcase time.Time:\n\t\te.timev(tag, in)\n\t\treturn\n\tcase *time.Time:\n\t\te.timev(tag, in.Elem())\n\t\treturn\n\tcase time.Duration:\n\t\te.stringv(tag, reflect.ValueOf(value.String()))\n\t\treturn\n\tcase Marshaler:\n\t\tv, err := value.MarshalYAML()\n\t\tif err != nil {\n\t\t\tfail(err)\n\t\t}\n\t\tif v == nil {\n\t\t\te.nilv()\n\t\t\treturn\n\t\t}\n\t\te.marshal(tag, reflect.ValueOf(v))\n\t\treturn\n\tcase encoding.TextMarshaler:\n\t\ttext, err := value.MarshalText()\n\t\tif err != nil {\n\t\t\tfail(err)\n\t\t}\n\t\tin = reflect.ValueOf(string(text))\n\tcase nil:\n\t\te.nilv()\n\t\treturn\n\t}\n\tswitch in.Kind() {\n\tcase reflect.Interface:\n\t\te.marshal(tag, in.Elem())\n\tcase reflect.Map:\n\t\te.mapv(tag, in)\n\tcase reflect.Ptr:\n\t\te.marshal(tag, in.Elem())\n\tcase reflect.Struct:\n\t\te.structv(tag, in)\n\tcase reflect.Slice, reflect.Array:\n\t\te.slicev(tag, in)\n\tcase reflect.String:\n\t\te.stringv(tag, in)\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\te.intv(tag, in)\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\te.uintv(tag, in)\n\tcase reflect.Float32, reflect.Float64:\n\t\te.floatv(tag, in)\n\tcase reflect.Bool:\n\t\te.boolv(tag, in)\n\tdefault:\n\t\tpanic(\"cannot marshal type: \" + in.Type().String())\n\t}\n}\n\nfunc (e *encoder) mapv(tag string, in reflect.Value) {\n\te.mappingv(tag, func() {\n\t\tkeys := keyList(in.MapKeys())\n\t\tsort.Sort(keys)\n\t\tfor _, k := range keys {\n\t\t\te.marshal(\"\", k)\n\t\t\te.marshal(\"\", in.MapIndex(k))\n\t\t}\n\t})\n}\n\nfunc (e *encoder) fieldByIndex(v reflect.Value, index []int) (field reflect.Value) {\n\tfor _, num := range index {\n\t\tfor {\n\t\t\tif v.Kind() == reflect.Ptr {\n\t\t\t\tif v.IsNil() {\n\t\t\t\t\treturn reflect.Value{}\n\t\t\t\t}\n\t\t\t\tv = v.Elem()\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t\tv = v.Field(num)\n\t}\n\treturn v\n}\n\nfunc (e *encoder) structv(tag string, in reflect.Value) {\n\tsinfo, err := getStructInfo(in.Type())\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\te.mappingv(tag, func() {\n\t\tfor _, info := range sinfo.FieldsList {\n\t\t\tvar value reflect.Value\n\t\t\tif info.Inline == nil {\n\t\t\t\tvalue = in.Field(info.Num)\n\t\t\t} else {\n\t\t\t\tvalue = e.fieldByIndex(in, info.Inline)\n\t\t\t\tif !value.IsValid() {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t\tif info.OmitEmpty && isZero(value) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\te.marshal(\"\", reflect.ValueOf(info.Key))\n\t\t\te.flow = info.Flow\n\t\t\te.marshal(\"\", value)\n\t\t}\n\t\tif sinfo.InlineMap >= 0 {\n\t\t\tm := in.Field(sinfo.InlineMap)\n\t\t\tif m.Len() > 0 {\n\t\t\t\te.flow = false\n\t\t\t\tkeys := keyList(m.MapKeys())\n\t\t\t\tsort.Sort(keys)\n\t\t\t\tfor _, k := range keys {\n\t\t\t\t\tif _, found := sinfo.FieldsMap[k.String()]; found {\n\t\t\t\t\t\tpanic(fmt.Sprintf(\"cannot have key %q in inlined map: conflicts with struct field\", k.String()))\n\t\t\t\t\t}\n\t\t\t\t\te.marshal(\"\", k)\n\t\t\t\t\te.flow = false\n\t\t\t\t\te.marshal(\"\", m.MapIndex(k))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t})\n}\n\nfunc (e *encoder) mappingv(tag string, f func()) {\n\timplicit := tag == \"\"\n\tstyle := yaml_BLOCK_MAPPING_STYLE\n\tif e.flow {\n\t\te.flow = false\n\t\tstyle = yaml_FLOW_MAPPING_STYLE\n\t}\n\tyaml_mapping_start_event_initialize(&e.event, nil, []byte(tag), implicit, style)\n\te.emit()\n\tf()\n\tyaml_mapping_end_event_initialize(&e.event)\n\te.emit()\n}\n\nfunc (e *encoder) slicev(tag string, in reflect.Value) {\n\timplicit := tag == \"\"\n\tstyle := yaml_BLOCK_SEQUENCE_STYLE\n\tif e.flow {\n\t\te.flow = false\n\t\tstyle = yaml_FLOW_SEQUENCE_STYLE\n\t}\n\te.must(yaml_sequence_start_event_initialize(&e.event, nil, []byte(tag), implicit, style))\n\te.emit()\n\tn := in.Len()\n\tfor i := 0; i < n; i++ {\n\t\te.marshal(\"\", in.Index(i))\n\t}\n\te.must(yaml_sequence_end_event_initialize(&e.event))\n\te.emit()\n}\n\n// isBase60 returns whether s is in base 60 notation as defined in YAML 1.1.\n//\n// The base 60 float notation in YAML 1.1 is a terrible idea and is unsupported\n// in YAML 1.2 and by this package, but these should be marshalled quoted for\n// the time being for compatibility with other parsers.\nfunc isBase60Float(s string) (result bool) {\n\t// Fast path.\n\tif s == \"\" {\n\t\treturn false\n\t}\n\tc := s[0]\n\tif !(c == '+' || c == '-' || c >= '0' && c <= '9') || strings.IndexByte(s, ':') < 0 {\n\t\treturn false\n\t}\n\t// Do the full match.\n\treturn base60float.MatchString(s)\n}\n\n// From http://yaml.org/type/float.html, except the regular expression there\n// is bogus. In practice parsers do not enforce the \"\\.[0-9_]*\" suffix.\nvar base60float = regexp.MustCompile(`^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+(?:\\.[0-9_]*)?$`)\n\n// isOldBool returns whether s is bool notation as defined in YAML 1.1.\n//\n// We continue to force strings that YAML 1.1 would interpret as booleans to be\n// rendered as quotes strings so that the marshalled output valid for YAML 1.1\n// parsing.\nfunc isOldBool(s string) (result bool) {\n\tswitch s {\n\tcase \"y\", \"Y\", \"yes\", \"Yes\", \"YES\", \"on\", \"On\", \"ON\",\n\t\t\"n\", \"N\", \"no\", \"No\", \"NO\", \"off\", \"Off\", \"OFF\":\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\nfunc (e *encoder) stringv(tag string, in reflect.Value) {\n\tvar style yaml_scalar_style_t\n\ts := in.String()\n\tcanUsePlain := true\n\tswitch {\n\tcase !utf8.ValidString(s):\n\t\tif tag == binaryTag {\n\t\t\tfailf(\"explicitly tagged !!binary data must be base64-encoded\")\n\t\t}\n\t\tif tag != \"\" {\n\t\t\tfailf(\"cannot marshal invalid UTF-8 data as %s\", shortTag(tag))\n\t\t}\n\t\t// It can't be encoded directly as YAML so use a binary tag\n\t\t// and encode it as base64.\n\t\ttag = binaryTag\n\t\ts = encodeBase64(s)\n\tcase tag == \"\":\n\t\t// Check to see if it would resolve to a specific\n\t\t// tag when encoded unquoted. If it doesn't,\n\t\t// there's no need to quote it.\n\t\trtag, _ := resolve(\"\", s)\n\t\tcanUsePlain = rtag == strTag && !(isBase60Float(s) || isOldBool(s))\n\t}\n\t// Note: it's possible for user code to emit invalid YAML\n\t// if they explicitly specify a tag and a string containing\n\t// text that's incompatible with that tag.\n\tswitch {\n\tcase strings.Contains(s, \"\\n\"):\n\t\tif e.flow {\n\t\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t\t} else {\n\t\t\tstyle = yaml_LITERAL_SCALAR_STYLE\n\t\t}\n\tcase canUsePlain:\n\t\tstyle = yaml_PLAIN_SCALAR_STYLE\n\tdefault:\n\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t}\n\te.emitScalar(s, \"\", tag, style, nil, nil, nil, nil)\n}\n\nfunc (e *encoder) boolv(tag string, in reflect.Value) {\n\tvar s string\n\tif in.Bool() {\n\t\ts = \"true\"\n\t} else {\n\t\ts = \"false\"\n\t}\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil)\n}\n\nfunc (e *encoder) intv(tag string, in reflect.Value) {\n\ts := strconv.FormatInt(in.Int(), 10)\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil)\n}\n\nfunc (e *encoder) uintv(tag string, in reflect.Value) {\n\ts := strconv.FormatUint(in.Uint(), 10)\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil)\n}\n\nfunc (e *encoder) timev(tag string, in reflect.Value) {\n\tt := in.Interface().(time.Time)\n\ts := t.Format(time.RFC3339Nano)\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil)\n}\n\nfunc (e *encoder) floatv(tag string, in reflect.Value) {\n\t// Issue #352: When formatting, use the precision of the underlying value\n\tprecision := 64\n\tif in.Kind() == reflect.Float32 {\n\t\tprecision = 32\n\t}\n\n\ts := strconv.FormatFloat(in.Float(), 'g', -1, precision)\n\tswitch s {\n\tcase \"+Inf\":\n\t\ts = \".inf\"\n\tcase \"-Inf\":\n\t\ts = \"-.inf\"\n\tcase \"NaN\":\n\t\ts = \".nan\"\n\t}\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil)\n}\n\nfunc (e *encoder) nilv() {\n\te.emitScalar(\"null\", \"\", \"\", yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil)\n}\n\nfunc (e *encoder) emitScalar(value, anchor, tag string, style yaml_scalar_style_t, head, line, foot, tail []byte) {\n\t// TODO Kill this function. Replace all initialize calls by their underlining Go literals.\n\timplicit := tag == \"\"\n\tif !implicit {\n\t\ttag = longTag(tag)\n\t}\n\te.must(yaml_scalar_event_initialize(&e.event, []byte(anchor), []byte(tag), []byte(value), implicit, implicit, style))\n\te.event.head_comment = head\n\te.event.line_comment = line\n\te.event.foot_comment = foot\n\te.event.tail_comment = tail\n\te.emit()\n}\n\nfunc (e *encoder) nodev(in reflect.Value) {\n\te.node(in.Interface().(*Node), \"\")\n}\n\nfunc (e *encoder) node(node *Node, tail string) {\n\t// Zero nodes behave as nil.\n\tif node.Kind == 0 && node.IsZero() {\n\t\te.nilv()\n\t\treturn\n\t}\n\n\t// If the tag was not explicitly requested, and dropping it won't change the\n\t// implicit tag of the value, don't include it in the presentation.\n\tvar tag = node.Tag\n\tvar stag = shortTag(tag)\n\tvar forceQuoting bool\n\tif tag != \"\" && node.Style&TaggedStyle == 0 {\n\t\tif node.Kind == ScalarNode {\n\t\t\tif stag == strTag && node.Style&(SingleQuotedStyle|DoubleQuotedStyle|LiteralStyle|FoldedStyle) != 0 {\n\t\t\t\ttag = \"\"\n\t\t\t} else {\n\t\t\t\trtag, _ := resolve(\"\", node.Value)\n\t\t\t\tif rtag == stag {\n\t\t\t\t\ttag = \"\"\n\t\t\t\t} else if stag == strTag {\n\t\t\t\t\ttag = \"\"\n\t\t\t\t\tforceQuoting = true\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tvar rtag string\n\t\t\tswitch node.Kind {\n\t\t\tcase MappingNode:\n\t\t\t\trtag = mapTag\n\t\t\tcase SequenceNode:\n\t\t\t\trtag = seqTag\n\t\t\t}\n\t\t\tif rtag == stag {\n\t\t\t\ttag = \"\"\n\t\t\t}\n\t\t}\n\t}\n\n\tswitch node.Kind {\n\tcase DocumentNode:\n\t\tyaml_document_start_event_initialize(&e.event, nil, nil, true)\n\t\te.event.head_comment = []byte(node.HeadComment)\n\t\te.emit()\n\t\tfor _, node := range node.Content {\n\t\t\te.node(node, \"\")\n\t\t}\n\t\tyaml_document_end_event_initialize(&e.event, true)\n\t\te.event.foot_comment = []byte(node.FootComment)\n\t\te.emit()\n\n\tcase SequenceNode:\n\t\tstyle := yaml_BLOCK_SEQUENCE_STYLE\n\t\tif node.Style&FlowStyle != 0 {\n\t\t\tstyle = yaml_FLOW_SEQUENCE_STYLE\n\t\t}\n\t\te.must(yaml_sequence_start_event_initialize(&e.event, []byte(node.Anchor), []byte(longTag(tag)), tag == \"\", style))\n\t\te.event.head_comment = []byte(node.HeadComment)\n\t\te.emit()\n\t\tfor _, node := range node.Content {\n\t\t\te.node(node, \"\")\n\t\t}\n\t\te.must(yaml_sequence_end_event_initialize(&e.event))\n\t\te.event.line_comment = []byte(node.LineComment)\n\t\te.event.foot_comment = []byte(node.FootComment)\n\t\te.emit()\n\n\tcase MappingNode:\n\t\tstyle := yaml_BLOCK_MAPPING_STYLE\n\t\tif node.Style&FlowStyle != 0 {\n\t\t\tstyle = yaml_FLOW_MAPPING_STYLE\n\t\t}\n\t\tyaml_mapping_start_event_initialize(&e.event, []byte(node.Anchor), []byte(longTag(tag)), tag == \"\", style)\n\t\te.event.tail_comment = []byte(tail)\n\t\te.event.head_comment = []byte(node.HeadComment)\n\t\te.emit()\n\n\t\t// The tail logic below moves the foot comment of prior keys to the following key,\n\t\t// since the value for each key may be a nested structure and the foot needs to be\n\t\t// processed only the entirety of the value is streamed. The last tail is processed\n\t\t// with the mapping end event.\n\t\tvar tail string\n\t\tfor i := 0; i+1 < len(node.Content); i += 2 {\n\t\t\tk := node.Content[i]\n\t\t\tfoot := k.FootComment\n\t\t\tif foot != \"\" {\n\t\t\t\tkopy := *k\n\t\t\t\tkopy.FootComment = \"\"\n\t\t\t\tk = &kopy\n\t\t\t}\n\t\t\te.node(k, tail)\n\t\t\ttail = foot\n\n\t\t\tv := node.Content[i+1]\n\t\t\te.node(v, \"\")\n\t\t}\n\n\t\tyaml_mapping_end_event_initialize(&e.event)\n\t\te.event.tail_comment = []byte(tail)\n\t\te.event.line_comment = []byte(node.LineComment)\n\t\te.event.foot_comment = []byte(node.FootComment)\n\t\te.emit()\n\n\tcase AliasNode:\n\t\tyaml_alias_event_initialize(&e.event, []byte(node.Value))\n\t\te.event.head_comment = []byte(node.HeadComment)\n\t\te.event.line_comment = []byte(node.LineComment)\n\t\te.event.foot_comment = []byte(node.FootComment)\n\t\te.emit()\n\n\tcase ScalarNode:\n\t\tvalue := node.Value\n\t\tif !utf8.ValidString(value) {\n\t\t\tif stag == binaryTag {\n\t\t\t\tfailf(\"explicitly tagged !!binary data must be base64-encoded\")\n\t\t\t}\n\t\t\tif stag != \"\" {\n\t\t\t\tfailf(\"cannot marshal invalid UTF-8 data as %s\", stag)\n\t\t\t}\n\t\t\t// It can't be encoded directly as YAML so use a binary tag\n\t\t\t// and encode it as base64.\n\t\t\ttag = binaryTag\n\t\t\tvalue = encodeBase64(value)\n\t\t}\n\n\t\tstyle := yaml_PLAIN_SCALAR_STYLE\n\t\tswitch {\n\t\tcase node.Style&DoubleQuotedStyle != 0:\n\t\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t\tcase node.Style&SingleQuotedStyle != 0:\n\t\t\tstyle = yaml_SINGLE_QUOTED_SCALAR_STYLE\n\t\tcase node.Style&LiteralStyle != 0:\n\t\t\tstyle = yaml_LITERAL_SCALAR_STYLE\n\t\tcase node.Style&FoldedStyle != 0:\n\t\t\tstyle = yaml_FOLDED_SCALAR_STYLE\n\t\tcase strings.Contains(value, \"\\n\"):\n\t\t\tstyle = yaml_LITERAL_SCALAR_STYLE\n\t\tcase forceQuoting:\n\t\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t\t}\n\n\t\te.emitScalar(value, node.Anchor, tag, style, []byte(node.HeadComment), []byte(node.LineComment), []byte(node.FootComment), []byte(tail))\n\tdefault:\n\t\tfailf(\"cannot encode node with unknown kind %d\", node.Kind)\n\t}\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/parserc.go",
    "content": "//\n// Copyright (c) 2011-2019 Canonical Ltd\n// Copyright (c) 2006-2010 Kirill Simonov\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n// of the Software, and to permit persons to whom the Software is furnished to do\n// so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\npackage yaml\n\nimport (\n\t\"bytes\"\n)\n\n// The parser implements the following grammar:\n//\n// stream               ::= STREAM-START implicit_document? explicit_document* STREAM-END\n// implicit_document    ::= block_node DOCUMENT-END*\n// explicit_document    ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*\n// block_node_or_indentless_sequence    ::=\n//                          ALIAS\n//                          | properties (block_content | indentless_block_sequence)?\n//                          | block_content\n//                          | indentless_block_sequence\n// block_node           ::= ALIAS\n//                          | properties block_content?\n//                          | block_content\n// flow_node            ::= ALIAS\n//                          | properties flow_content?\n//                          | flow_content\n// properties           ::= TAG ANCHOR? | ANCHOR TAG?\n// block_content        ::= block_collection | flow_collection | SCALAR\n// flow_content         ::= flow_collection | SCALAR\n// block_collection     ::= block_sequence | block_mapping\n// flow_collection      ::= flow_sequence | flow_mapping\n// block_sequence       ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END\n// indentless_sequence  ::= (BLOCK-ENTRY block_node?)+\n// block_mapping        ::= BLOCK-MAPPING_START\n//                          ((KEY block_node_or_indentless_sequence?)?\n//                          (VALUE block_node_or_indentless_sequence?)?)*\n//                          BLOCK-END\n// flow_sequence        ::= FLOW-SEQUENCE-START\n//                          (flow_sequence_entry FLOW-ENTRY)*\n//                          flow_sequence_entry?\n//                          FLOW-SEQUENCE-END\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n// flow_mapping         ::= FLOW-MAPPING-START\n//                          (flow_mapping_entry FLOW-ENTRY)*\n//                          flow_mapping_entry?\n//                          FLOW-MAPPING-END\n// flow_mapping_entry   ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n\n// Peek the next token in the token queue.\nfunc peek_token(parser *yaml_parser_t) *yaml_token_t {\n\tif parser.token_available || yaml_parser_fetch_more_tokens(parser) {\n\t\ttoken := &parser.tokens[parser.tokens_head]\n\t\tyaml_parser_unfold_comments(parser, token)\n\t\treturn token\n\t}\n\treturn nil\n}\n\n// yaml_parser_unfold_comments walks through the comments queue and joins all\n// comments behind the position of the provided token into the respective\n// top-level comment slices in the parser.\nfunc yaml_parser_unfold_comments(parser *yaml_parser_t, token *yaml_token_t) {\n\tfor parser.comments_head < len(parser.comments) && token.start_mark.index >= parser.comments[parser.comments_head].token_mark.index {\n\t\tcomment := &parser.comments[parser.comments_head]\n\t\tif len(comment.head) > 0 {\n\t\t\tif token.typ == yaml_BLOCK_END_TOKEN {\n\t\t\t\t// No heads on ends, so keep comment.head for a follow up token.\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif len(parser.head_comment) > 0 {\n\t\t\t\tparser.head_comment = append(parser.head_comment, '\\n')\n\t\t\t}\n\t\t\tparser.head_comment = append(parser.head_comment, comment.head...)\n\t\t}\n\t\tif len(comment.foot) > 0 {\n\t\t\tif len(parser.foot_comment) > 0 {\n\t\t\t\tparser.foot_comment = append(parser.foot_comment, '\\n')\n\t\t\t}\n\t\t\tparser.foot_comment = append(parser.foot_comment, comment.foot...)\n\t\t}\n\t\tif len(comment.line) > 0 {\n\t\t\tif len(parser.line_comment) > 0 {\n\t\t\t\tparser.line_comment = append(parser.line_comment, '\\n')\n\t\t\t}\n\t\t\tparser.line_comment = append(parser.line_comment, comment.line...)\n\t\t}\n\t\t*comment = yaml_comment_t{}\n\t\tparser.comments_head++\n\t}\n}\n\n// Remove the next token from the queue (must be called after peek_token).\nfunc skip_token(parser *yaml_parser_t) {\n\tparser.token_available = false\n\tparser.tokens_parsed++\n\tparser.stream_end_produced = parser.tokens[parser.tokens_head].typ == yaml_STREAM_END_TOKEN\n\tparser.tokens_head++\n}\n\n// Get the next event.\nfunc yaml_parser_parse(parser *yaml_parser_t, event *yaml_event_t) bool {\n\t// Erase the event object.\n\t*event = yaml_event_t{}\n\n\t// No events after the end of the stream or error.\n\tif parser.stream_end_produced || parser.error != yaml_NO_ERROR || parser.state == yaml_PARSE_END_STATE {\n\t\treturn true\n\t}\n\n\t// Generate the next event.\n\treturn yaml_parser_state_machine(parser, event)\n}\n\n// Set parser error.\nfunc yaml_parser_set_parser_error(parser *yaml_parser_t, problem string, problem_mark yaml_mark_t) bool {\n\tparser.error = yaml_PARSER_ERROR\n\tparser.problem = problem\n\tparser.problem_mark = problem_mark\n\treturn false\n}\n\nfunc yaml_parser_set_parser_error_context(parser *yaml_parser_t, context string, context_mark yaml_mark_t, problem string, problem_mark yaml_mark_t) bool {\n\tparser.error = yaml_PARSER_ERROR\n\tparser.context = context\n\tparser.context_mark = context_mark\n\tparser.problem = problem\n\tparser.problem_mark = problem_mark\n\treturn false\n}\n\n// State dispatcher.\nfunc yaml_parser_state_machine(parser *yaml_parser_t, event *yaml_event_t) bool {\n\t//trace(\"yaml_parser_state_machine\", \"state:\", parser.state.String())\n\n\tswitch parser.state {\n\tcase yaml_PARSE_STREAM_START_STATE:\n\t\treturn yaml_parser_parse_stream_start(parser, event)\n\n\tcase yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE:\n\t\treturn yaml_parser_parse_document_start(parser, event, true)\n\n\tcase yaml_PARSE_DOCUMENT_START_STATE:\n\t\treturn yaml_parser_parse_document_start(parser, event, false)\n\n\tcase yaml_PARSE_DOCUMENT_CONTENT_STATE:\n\t\treturn yaml_parser_parse_document_content(parser, event)\n\n\tcase yaml_PARSE_DOCUMENT_END_STATE:\n\t\treturn yaml_parser_parse_document_end(parser, event)\n\n\tcase yaml_PARSE_BLOCK_NODE_STATE:\n\t\treturn yaml_parser_parse_node(parser, event, true, false)\n\n\tcase yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE:\n\t\treturn yaml_parser_parse_node(parser, event, true, true)\n\n\tcase yaml_PARSE_FLOW_NODE_STATE:\n\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\n\tcase yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE:\n\t\treturn yaml_parser_parse_block_sequence_entry(parser, event, true)\n\n\tcase yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE:\n\t\treturn yaml_parser_parse_block_sequence_entry(parser, event, false)\n\n\tcase yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE:\n\t\treturn yaml_parser_parse_indentless_sequence_entry(parser, event)\n\n\tcase yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE:\n\t\treturn yaml_parser_parse_block_mapping_key(parser, event, true)\n\n\tcase yaml_PARSE_BLOCK_MAPPING_KEY_STATE:\n\t\treturn yaml_parser_parse_block_mapping_key(parser, event, false)\n\n\tcase yaml_PARSE_BLOCK_MAPPING_VALUE_STATE:\n\t\treturn yaml_parser_parse_block_mapping_value(parser, event)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry(parser, event, true)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry(parser, event, false)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry_mapping_key(parser, event)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry_mapping_value(parser, event)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry_mapping_end(parser, event)\n\n\tcase yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE:\n\t\treturn yaml_parser_parse_flow_mapping_key(parser, event, true)\n\n\tcase yaml_PARSE_FLOW_MAPPING_KEY_STATE:\n\t\treturn yaml_parser_parse_flow_mapping_key(parser, event, false)\n\n\tcase yaml_PARSE_FLOW_MAPPING_VALUE_STATE:\n\t\treturn yaml_parser_parse_flow_mapping_value(parser, event, false)\n\n\tcase yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE:\n\t\treturn yaml_parser_parse_flow_mapping_value(parser, event, true)\n\n\tdefault:\n\t\tpanic(\"invalid parser state\")\n\t}\n}\n\n// Parse the production:\n// stream   ::= STREAM-START implicit_document? explicit_document* STREAM-END\n//              ************\nfunc yaml_parser_parse_stream_start(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ != yaml_STREAM_START_TOKEN {\n\t\treturn yaml_parser_set_parser_error(parser, \"did not find expected <stream-start>\", token.start_mark)\n\t}\n\tparser.state = yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_STREAM_START_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.end_mark,\n\t\tencoding:   token.encoding,\n\t}\n\tskip_token(parser)\n\treturn true\n}\n\n// Parse the productions:\n// implicit_document    ::= block_node DOCUMENT-END*\n//                          *\n// explicit_document    ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*\n//                          *************************\nfunc yaml_parser_parse_document_start(parser *yaml_parser_t, event *yaml_event_t, implicit bool) bool {\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\t// Parse extra document end indicators.\n\tif !implicit {\n\t\tfor token.typ == yaml_DOCUMENT_END_TOKEN {\n\t\t\tskip_token(parser)\n\t\t\ttoken = peek_token(parser)\n\t\t\tif token == nil {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\tif implicit && token.typ != yaml_VERSION_DIRECTIVE_TOKEN &&\n\t\ttoken.typ != yaml_TAG_DIRECTIVE_TOKEN &&\n\t\ttoken.typ != yaml_DOCUMENT_START_TOKEN &&\n\t\ttoken.typ != yaml_STREAM_END_TOKEN {\n\t\t// Parse an implicit document.\n\t\tif !yaml_parser_process_directives(parser, nil, nil) {\n\t\t\treturn false\n\t\t}\n\t\tparser.states = append(parser.states, yaml_PARSE_DOCUMENT_END_STATE)\n\t\tparser.state = yaml_PARSE_BLOCK_NODE_STATE\n\n\t\tvar head_comment []byte\n\t\tif len(parser.head_comment) > 0 {\n\t\t\t// [Go] Scan the header comment backwards, and if an empty line is found, break\n\t\t\t//      the header so the part before the last empty line goes into the\n\t\t\t//      document header, while the bottom of it goes into a follow up event.\n\t\t\tfor i := len(parser.head_comment) - 1; i > 0; i-- {\n\t\t\t\tif parser.head_comment[i] == '\\n' {\n\t\t\t\t\tif i == len(parser.head_comment)-1 {\n\t\t\t\t\t\thead_comment = parser.head_comment[:i]\n\t\t\t\t\t\tparser.head_comment = parser.head_comment[i+1:]\n\t\t\t\t\t\tbreak\n\t\t\t\t\t} else if parser.head_comment[i-1] == '\\n' {\n\t\t\t\t\t\thead_comment = parser.head_comment[:i-1]\n\t\t\t\t\t\tparser.head_comment = parser.head_comment[i+1:]\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_DOCUMENT_START_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\n\t\t\thead_comment: head_comment,\n\t\t}\n\n\t} else if token.typ != yaml_STREAM_END_TOKEN {\n\t\t// Parse an explicit document.\n\t\tvar version_directive *yaml_version_directive_t\n\t\tvar tag_directives []yaml_tag_directive_t\n\t\tstart_mark := token.start_mark\n\t\tif !yaml_parser_process_directives(parser, &version_directive, &tag_directives) {\n\t\t\treturn false\n\t\t}\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_DOCUMENT_START_TOKEN {\n\t\t\tyaml_parser_set_parser_error(parser,\n\t\t\t\t\"did not find expected <document start>\", token.start_mark)\n\t\t\treturn false\n\t\t}\n\t\tparser.states = append(parser.states, yaml_PARSE_DOCUMENT_END_STATE)\n\t\tparser.state = yaml_PARSE_DOCUMENT_CONTENT_STATE\n\t\tend_mark := token.end_mark\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:               yaml_DOCUMENT_START_EVENT,\n\t\t\tstart_mark:        start_mark,\n\t\t\tend_mark:          end_mark,\n\t\t\tversion_directive: version_directive,\n\t\t\ttag_directives:    tag_directives,\n\t\t\timplicit:          false,\n\t\t}\n\t\tskip_token(parser)\n\n\t} else {\n\t\t// Parse the stream end.\n\t\tparser.state = yaml_PARSE_END_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_STREAM_END_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\t\t}\n\t\tskip_token(parser)\n\t}\n\n\treturn true\n}\n\n// Parse the productions:\n// explicit_document    ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*\n//                                                    ***********\n//\nfunc yaml_parser_parse_document_content(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ == yaml_VERSION_DIRECTIVE_TOKEN ||\n\t\ttoken.typ == yaml_TAG_DIRECTIVE_TOKEN ||\n\t\ttoken.typ == yaml_DOCUMENT_START_TOKEN ||\n\t\ttoken.typ == yaml_DOCUMENT_END_TOKEN ||\n\t\ttoken.typ == yaml_STREAM_END_TOKEN {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\t\treturn yaml_parser_process_empty_scalar(parser, event,\n\t\t\ttoken.start_mark)\n\t}\n\treturn yaml_parser_parse_node(parser, event, true, false)\n}\n\n// Parse the productions:\n// implicit_document    ::= block_node DOCUMENT-END*\n//                                     *************\n// explicit_document    ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*\n//\nfunc yaml_parser_parse_document_end(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tstart_mark := token.start_mark\n\tend_mark := token.start_mark\n\n\timplicit := true\n\tif token.typ == yaml_DOCUMENT_END_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tskip_token(parser)\n\t\timplicit = false\n\t}\n\n\tparser.tag_directives = parser.tag_directives[:0]\n\n\tparser.state = yaml_PARSE_DOCUMENT_START_STATE\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_DOCUMENT_END_EVENT,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\timplicit:   implicit,\n\t}\n\tyaml_parser_set_event_comments(parser, event)\n\tif len(event.head_comment) > 0 && len(event.foot_comment) == 0 {\n\t\tevent.foot_comment = event.head_comment\n\t\tevent.head_comment = nil\n\t}\n\treturn true\n}\n\nfunc yaml_parser_set_event_comments(parser *yaml_parser_t, event *yaml_event_t) {\n\tevent.head_comment = parser.head_comment\n\tevent.line_comment = parser.line_comment\n\tevent.foot_comment = parser.foot_comment\n\tparser.head_comment = nil\n\tparser.line_comment = nil\n\tparser.foot_comment = nil\n\tparser.tail_comment = nil\n\tparser.stem_comment = nil\n}\n\n// Parse the productions:\n// block_node_or_indentless_sequence    ::=\n//                          ALIAS\n//                          *****\n//                          | properties (block_content | indentless_block_sequence)?\n//                            **********  *\n//                          | block_content | indentless_block_sequence\n//                            *\n// block_node           ::= ALIAS\n//                          *****\n//                          | properties block_content?\n//                            ********** *\n//                          | block_content\n//                            *\n// flow_node            ::= ALIAS\n//                          *****\n//                          | properties flow_content?\n//                            ********** *\n//                          | flow_content\n//                            *\n// properties           ::= TAG ANCHOR? | ANCHOR TAG?\n//                          *************************\n// block_content        ::= block_collection | flow_collection | SCALAR\n//                                                               ******\n// flow_content         ::= flow_collection | SCALAR\n//                                            ******\nfunc yaml_parser_parse_node(parser *yaml_parser_t, event *yaml_event_t, block, indentless_sequence bool) bool {\n\t//defer trace(\"yaml_parser_parse_node\", \"block:\", block, \"indentless_sequence:\", indentless_sequence)()\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ == yaml_ALIAS_TOKEN {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_ALIAS_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\t\t\tanchor:     token.value,\n\t\t}\n\t\tyaml_parser_set_event_comments(parser, event)\n\t\tskip_token(parser)\n\t\treturn true\n\t}\n\n\tstart_mark := token.start_mark\n\tend_mark := token.start_mark\n\n\tvar tag_token bool\n\tvar tag_handle, tag_suffix, anchor []byte\n\tvar tag_mark yaml_mark_t\n\tif token.typ == yaml_ANCHOR_TOKEN {\n\t\tanchor = token.value\n\t\tstart_mark = token.start_mark\n\t\tend_mark = token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ == yaml_TAG_TOKEN {\n\t\t\ttag_token = true\n\t\t\ttag_handle = token.value\n\t\t\ttag_suffix = token.suffix\n\t\t\ttag_mark = token.start_mark\n\t\t\tend_mark = token.end_mark\n\t\t\tskip_token(parser)\n\t\t\ttoken = peek_token(parser)\n\t\t\tif token == nil {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t} else if token.typ == yaml_TAG_TOKEN {\n\t\ttag_token = true\n\t\ttag_handle = token.value\n\t\ttag_suffix = token.suffix\n\t\tstart_mark = token.start_mark\n\t\ttag_mark = token.start_mark\n\t\tend_mark = token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ == yaml_ANCHOR_TOKEN {\n\t\t\tanchor = token.value\n\t\t\tend_mark = token.end_mark\n\t\t\tskip_token(parser)\n\t\t\ttoken = peek_token(parser)\n\t\t\tif token == nil {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\tvar tag []byte\n\tif tag_token {\n\t\tif len(tag_handle) == 0 {\n\t\t\ttag = tag_suffix\n\t\t\ttag_suffix = nil\n\t\t} else {\n\t\t\tfor i := range parser.tag_directives {\n\t\t\t\tif bytes.Equal(parser.tag_directives[i].handle, tag_handle) {\n\t\t\t\t\ttag = append([]byte(nil), parser.tag_directives[i].prefix...)\n\t\t\t\t\ttag = append(tag, tag_suffix...)\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif len(tag) == 0 {\n\t\t\t\tyaml_parser_set_parser_error_context(parser,\n\t\t\t\t\t\"while parsing a node\", start_mark,\n\t\t\t\t\t\"found undefined tag handle\", tag_mark)\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\timplicit := len(tag) == 0\n\tif indentless_sequence && token.typ == yaml_BLOCK_ENTRY_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_SEQUENCE_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_BLOCK_SEQUENCE_STYLE),\n\t\t}\n\t\treturn true\n\t}\n\tif token.typ == yaml_SCALAR_TOKEN {\n\t\tvar plain_implicit, quoted_implicit bool\n\t\tend_mark = token.end_mark\n\t\tif (len(tag) == 0 && token.style == yaml_PLAIN_SCALAR_STYLE) || (len(tag) == 1 && tag[0] == '!') {\n\t\t\tplain_implicit = true\n\t\t} else if len(tag) == 0 {\n\t\t\tquoted_implicit = true\n\t\t}\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:             yaml_SCALAR_EVENT,\n\t\t\tstart_mark:      start_mark,\n\t\t\tend_mark:        end_mark,\n\t\t\tanchor:          anchor,\n\t\t\ttag:             tag,\n\t\t\tvalue:           token.value,\n\t\t\timplicit:        plain_implicit,\n\t\t\tquoted_implicit: quoted_implicit,\n\t\t\tstyle:           yaml_style_t(token.style),\n\t\t}\n\t\tyaml_parser_set_event_comments(parser, event)\n\t\tskip_token(parser)\n\t\treturn true\n\t}\n\tif token.typ == yaml_FLOW_SEQUENCE_START_TOKEN {\n\t\t// [Go] Some of the events below can be merged as they differ only on style.\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_SEQUENCE_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_FLOW_SEQUENCE_STYLE),\n\t\t}\n\t\tyaml_parser_set_event_comments(parser, event)\n\t\treturn true\n\t}\n\tif token.typ == yaml_FLOW_MAPPING_START_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_MAPPING_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_FLOW_MAPPING_STYLE),\n\t\t}\n\t\tyaml_parser_set_event_comments(parser, event)\n\t\treturn true\n\t}\n\tif block && token.typ == yaml_BLOCK_SEQUENCE_START_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_SEQUENCE_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_BLOCK_SEQUENCE_STYLE),\n\t\t}\n\t\tif parser.stem_comment != nil {\n\t\t\tevent.head_comment = parser.stem_comment\n\t\t\tparser.stem_comment = nil\n\t\t}\n\t\treturn true\n\t}\n\tif block && token.typ == yaml_BLOCK_MAPPING_START_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_MAPPING_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_BLOCK_MAPPING_STYLE),\n\t\t}\n\t\tif parser.stem_comment != nil {\n\t\t\tevent.head_comment = parser.stem_comment\n\t\t\tparser.stem_comment = nil\n\t\t}\n\t\treturn true\n\t}\n\tif len(anchor) > 0 || len(tag) > 0 {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:             yaml_SCALAR_EVENT,\n\t\t\tstart_mark:      start_mark,\n\t\t\tend_mark:        end_mark,\n\t\t\tanchor:          anchor,\n\t\t\ttag:             tag,\n\t\t\timplicit:        implicit,\n\t\t\tquoted_implicit: false,\n\t\t\tstyle:           yaml_style_t(yaml_PLAIN_SCALAR_STYLE),\n\t\t}\n\t\treturn true\n\t}\n\n\tcontext := \"while parsing a flow node\"\n\tif block {\n\t\tcontext = \"while parsing a block node\"\n\t}\n\tyaml_parser_set_parser_error_context(parser, context, start_mark,\n\t\t\"did not find expected node content\", token.start_mark)\n\treturn false\n}\n\n// Parse the productions:\n// block_sequence ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END\n//                    ********************  *********** *             *********\n//\nfunc yaml_parser_parse_block_sequence_entry(parser *yaml_parser_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\ttoken := peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tparser.marks = append(parser.marks, token.start_mark)\n\t\tskip_token(parser)\n\t}\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ == yaml_BLOCK_ENTRY_TOKEN {\n\t\tmark := token.end_mark\n\t\tprior_head_len := len(parser.head_comment)\n\t\tskip_token(parser)\n\t\tyaml_parser_split_stem_comment(parser, prior_head_len)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_BLOCK_ENTRY_TOKEN && token.typ != yaml_BLOCK_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, true, false)\n\t\t} else {\n\t\t\tparser.state = yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE\n\t\t\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n\t\t}\n\t}\n\tif token.typ == yaml_BLOCK_END_TOKEN {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\t\tparser.marks = parser.marks[:len(parser.marks)-1]\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_SEQUENCE_END_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\t\t}\n\n\t\tskip_token(parser)\n\t\treturn true\n\t}\n\n\tcontext_mark := parser.marks[len(parser.marks)-1]\n\tparser.marks = parser.marks[:len(parser.marks)-1]\n\treturn yaml_parser_set_parser_error_context(parser,\n\t\t\"while parsing a block collection\", context_mark,\n\t\t\"did not find expected '-' indicator\", token.start_mark)\n}\n\n// Parse the productions:\n// indentless_sequence  ::= (BLOCK-ENTRY block_node?)+\n//                           *********** *\nfunc yaml_parser_parse_indentless_sequence_entry(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ == yaml_BLOCK_ENTRY_TOKEN {\n\t\tmark := token.end_mark\n\t\tprior_head_len := len(parser.head_comment)\n\t\tskip_token(parser)\n\t\tyaml_parser_split_stem_comment(parser, prior_head_len)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_BLOCK_ENTRY_TOKEN &&\n\t\t\ttoken.typ != yaml_KEY_TOKEN &&\n\t\t\ttoken.typ != yaml_VALUE_TOKEN &&\n\t\t\ttoken.typ != yaml_BLOCK_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, true, false)\n\t\t}\n\t\tparser.state = yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE\n\t\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n\t}\n\tparser.state = parser.states[len(parser.states)-1]\n\tparser.states = parser.states[:len(parser.states)-1]\n\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_SEQUENCE_END_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.start_mark, // [Go] Shouldn't this be token.end_mark?\n\t}\n\treturn true\n}\n\n// Split stem comment from head comment.\n//\n// When a sequence or map is found under a sequence entry, the former head comment\n// is assigned to the underlying sequence or map as a whole, not the individual\n// sequence or map entry as would be expected otherwise. To handle this case the\n// previous head comment is moved aside as the stem comment.\nfunc yaml_parser_split_stem_comment(parser *yaml_parser_t, stem_len int) {\n\tif stem_len == 0 {\n\t\treturn\n\t}\n\n\ttoken := peek_token(parser)\n\tif token == nil || token.typ != yaml_BLOCK_SEQUENCE_START_TOKEN && token.typ != yaml_BLOCK_MAPPING_START_TOKEN {\n\t\treturn\n\t}\n\n\tparser.stem_comment = parser.head_comment[:stem_len]\n\tif len(parser.head_comment) == stem_len {\n\t\tparser.head_comment = nil\n\t} else {\n\t\t// Copy suffix to prevent very strange bugs if someone ever appends\n\t\t// further bytes to the prefix in the stem_comment slice above.\n\t\tparser.head_comment = append([]byte(nil), parser.head_comment[stem_len+1:]...)\n\t}\n}\n\n// Parse the productions:\n// block_mapping        ::= BLOCK-MAPPING_START\n//                          *******************\n//                          ((KEY block_node_or_indentless_sequence?)?\n//                            *** *\n//                          (VALUE block_node_or_indentless_sequence?)?)*\n//\n//                          BLOCK-END\n//                          *********\n//\nfunc yaml_parser_parse_block_mapping_key(parser *yaml_parser_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\ttoken := peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tparser.marks = append(parser.marks, token.start_mark)\n\t\tskip_token(parser)\n\t}\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\t// [Go] A tail comment was left from the prior mapping value processed. Emit an event\n\t//      as it needs to be processed with that value and not the following key.\n\tif len(parser.tail_comment) > 0 {\n\t\t*event = yaml_event_t{\n\t\t\ttyp:          yaml_TAIL_COMMENT_EVENT,\n\t\t\tstart_mark:   token.start_mark,\n\t\t\tend_mark:     token.end_mark,\n\t\t\tfoot_comment: parser.tail_comment,\n\t\t}\n\t\tparser.tail_comment = nil\n\t\treturn true\n\t}\n\n\tif token.typ == yaml_KEY_TOKEN {\n\t\tmark := token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_KEY_TOKEN &&\n\t\t\ttoken.typ != yaml_VALUE_TOKEN &&\n\t\t\ttoken.typ != yaml_BLOCK_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_BLOCK_MAPPING_VALUE_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, true, true)\n\t\t} else {\n\t\t\tparser.state = yaml_PARSE_BLOCK_MAPPING_VALUE_STATE\n\t\t\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n\t\t}\n\t} else if token.typ == yaml_BLOCK_END_TOKEN {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\t\tparser.marks = parser.marks[:len(parser.marks)-1]\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_MAPPING_END_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\t\t}\n\t\tyaml_parser_set_event_comments(parser, event)\n\t\tskip_token(parser)\n\t\treturn true\n\t}\n\n\tcontext_mark := parser.marks[len(parser.marks)-1]\n\tparser.marks = parser.marks[:len(parser.marks)-1]\n\treturn yaml_parser_set_parser_error_context(parser,\n\t\t\"while parsing a block mapping\", context_mark,\n\t\t\"did not find expected key\", token.start_mark)\n}\n\n// Parse the productions:\n// block_mapping        ::= BLOCK-MAPPING_START\n//\n//                          ((KEY block_node_or_indentless_sequence?)?\n//\n//                          (VALUE block_node_or_indentless_sequence?)?)*\n//                           ***** *\n//                          BLOCK-END\n//\n//\nfunc yaml_parser_parse_block_mapping_value(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ == yaml_VALUE_TOKEN {\n\t\tmark := token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_KEY_TOKEN &&\n\t\t\ttoken.typ != yaml_VALUE_TOKEN &&\n\t\t\ttoken.typ != yaml_BLOCK_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_BLOCK_MAPPING_KEY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, true, true)\n\t\t}\n\t\tparser.state = yaml_PARSE_BLOCK_MAPPING_KEY_STATE\n\t\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n\t}\n\tparser.state = yaml_PARSE_BLOCK_MAPPING_KEY_STATE\n\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n}\n\n// Parse the productions:\n// flow_sequence        ::= FLOW-SEQUENCE-START\n//                          *******************\n//                          (flow_sequence_entry FLOW-ENTRY)*\n//                           *                   **********\n//                          flow_sequence_entry?\n//                          *\n//                          FLOW-SEQUENCE-END\n//                          *****************\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                          *\n//\nfunc yaml_parser_parse_flow_sequence_entry(parser *yaml_parser_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\ttoken := peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tparser.marks = append(parser.marks, token.start_mark)\n\t\tskip_token(parser)\n\t}\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ != yaml_FLOW_SEQUENCE_END_TOKEN {\n\t\tif !first {\n\t\t\tif token.typ == yaml_FLOW_ENTRY_TOKEN {\n\t\t\t\tskip_token(parser)\n\t\t\t\ttoken = peek_token(parser)\n\t\t\t\tif token == nil {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcontext_mark := parser.marks[len(parser.marks)-1]\n\t\t\t\tparser.marks = parser.marks[:len(parser.marks)-1]\n\t\t\t\treturn yaml_parser_set_parser_error_context(parser,\n\t\t\t\t\t\"while parsing a flow sequence\", context_mark,\n\t\t\t\t\t\"did not find expected ',' or ']'\", token.start_mark)\n\t\t\t}\n\t\t}\n\n\t\tif token.typ == yaml_KEY_TOKEN {\n\t\t\tparser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE\n\t\t\t*event = yaml_event_t{\n\t\t\t\ttyp:        yaml_MAPPING_START_EVENT,\n\t\t\t\tstart_mark: token.start_mark,\n\t\t\t\tend_mark:   token.end_mark,\n\t\t\t\timplicit:   true,\n\t\t\t\tstyle:      yaml_style_t(yaml_FLOW_MAPPING_STYLE),\n\t\t\t}\n\t\t\tskip_token(parser)\n\t\t\treturn true\n\t\t} else if token.typ != yaml_FLOW_SEQUENCE_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t}\n\t}\n\n\tparser.state = parser.states[len(parser.states)-1]\n\tparser.states = parser.states[:len(parser.states)-1]\n\tparser.marks = parser.marks[:len(parser.marks)-1]\n\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_SEQUENCE_END_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.end_mark,\n\t}\n\tyaml_parser_set_event_comments(parser, event)\n\n\tskip_token(parser)\n\treturn true\n}\n\n//\n// Parse the productions:\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                                      *** *\n//\nfunc yaml_parser_parse_flow_sequence_entry_mapping_key(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ != yaml_VALUE_TOKEN &&\n\t\ttoken.typ != yaml_FLOW_ENTRY_TOKEN &&\n\t\ttoken.typ != yaml_FLOW_SEQUENCE_END_TOKEN {\n\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE)\n\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t}\n\tmark := token.end_mark\n\tskip_token(parser)\n\tparser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE\n\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n}\n\n// Parse the productions:\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                                                      ***** *\n//\nfunc yaml_parser_parse_flow_sequence_entry_mapping_value(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ == yaml_VALUE_TOKEN {\n\t\tskip_token(parser)\n\t\ttoken := peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_FLOW_ENTRY_TOKEN && token.typ != yaml_FLOW_SEQUENCE_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t}\n\t}\n\tparser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE\n\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n}\n\n// Parse the productions:\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                                                                      *\n//\nfunc yaml_parser_parse_flow_sequence_entry_mapping_end(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tparser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_MAPPING_END_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.start_mark, // [Go] Shouldn't this be end_mark?\n\t}\n\treturn true\n}\n\n// Parse the productions:\n// flow_mapping         ::= FLOW-MAPPING-START\n//                          ******************\n//                          (flow_mapping_entry FLOW-ENTRY)*\n//                           *                  **********\n//                          flow_mapping_entry?\n//                          ******************\n//                          FLOW-MAPPING-END\n//                          ****************\n// flow_mapping_entry   ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                          *           *** *\n//\nfunc yaml_parser_parse_flow_mapping_key(parser *yaml_parser_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\ttoken := peek_token(parser)\n\t\tparser.marks = append(parser.marks, token.start_mark)\n\t\tskip_token(parser)\n\t}\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ != yaml_FLOW_MAPPING_END_TOKEN {\n\t\tif !first {\n\t\t\tif token.typ == yaml_FLOW_ENTRY_TOKEN {\n\t\t\t\tskip_token(parser)\n\t\t\t\ttoken = peek_token(parser)\n\t\t\t\tif token == nil {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcontext_mark := parser.marks[len(parser.marks)-1]\n\t\t\t\tparser.marks = parser.marks[:len(parser.marks)-1]\n\t\t\t\treturn yaml_parser_set_parser_error_context(parser,\n\t\t\t\t\t\"while parsing a flow mapping\", context_mark,\n\t\t\t\t\t\"did not find expected ',' or '}'\", token.start_mark)\n\t\t\t}\n\t\t}\n\n\t\tif token.typ == yaml_KEY_TOKEN {\n\t\t\tskip_token(parser)\n\t\t\ttoken = peek_token(parser)\n\t\t\tif token == nil {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif token.typ != yaml_VALUE_TOKEN &&\n\t\t\t\ttoken.typ != yaml_FLOW_ENTRY_TOKEN &&\n\t\t\t\ttoken.typ != yaml_FLOW_MAPPING_END_TOKEN {\n\t\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_VALUE_STATE)\n\t\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t\t} else {\n\t\t\t\tparser.state = yaml_PARSE_FLOW_MAPPING_VALUE_STATE\n\t\t\t\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n\t\t\t}\n\t\t} else if token.typ != yaml_FLOW_MAPPING_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t}\n\t}\n\n\tparser.state = parser.states[len(parser.states)-1]\n\tparser.states = parser.states[:len(parser.states)-1]\n\tparser.marks = parser.marks[:len(parser.marks)-1]\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_MAPPING_END_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.end_mark,\n\t}\n\tyaml_parser_set_event_comments(parser, event)\n\tskip_token(parser)\n\treturn true\n}\n\n// Parse the productions:\n// flow_mapping_entry   ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                                   *                  ***** *\n//\nfunc yaml_parser_parse_flow_mapping_value(parser *yaml_parser_t, event *yaml_event_t, empty bool) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif empty {\n\t\tparser.state = yaml_PARSE_FLOW_MAPPING_KEY_STATE\n\t\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n\t}\n\tif token.typ == yaml_VALUE_TOKEN {\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_FLOW_ENTRY_TOKEN && token.typ != yaml_FLOW_MAPPING_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_KEY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t}\n\t}\n\tparser.state = yaml_PARSE_FLOW_MAPPING_KEY_STATE\n\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n}\n\n// Generate an empty scalar event.\nfunc yaml_parser_process_empty_scalar(parser *yaml_parser_t, event *yaml_event_t, mark yaml_mark_t) bool {\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_SCALAR_EVENT,\n\t\tstart_mark: mark,\n\t\tend_mark:   mark,\n\t\tvalue:      nil, // Empty\n\t\timplicit:   true,\n\t\tstyle:      yaml_style_t(yaml_PLAIN_SCALAR_STYLE),\n\t}\n\treturn true\n}\n\nvar default_tag_directives = []yaml_tag_directive_t{\n\t{[]byte(\"!\"), []byte(\"!\")},\n\t{[]byte(\"!!\"), []byte(\"tag:yaml.org,2002:\")},\n}\n\n// Parse directives.\nfunc yaml_parser_process_directives(parser *yaml_parser_t,\n\tversion_directive_ref **yaml_version_directive_t,\n\ttag_directives_ref *[]yaml_tag_directive_t) bool {\n\n\tvar version_directive *yaml_version_directive_t\n\tvar tag_directives []yaml_tag_directive_t\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tfor token.typ == yaml_VERSION_DIRECTIVE_TOKEN || token.typ == yaml_TAG_DIRECTIVE_TOKEN {\n\t\tif token.typ == yaml_VERSION_DIRECTIVE_TOKEN {\n\t\t\tif version_directive != nil {\n\t\t\t\tyaml_parser_set_parser_error(parser,\n\t\t\t\t\t\"found duplicate %YAML directive\", token.start_mark)\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif token.major != 1 || token.minor != 1 {\n\t\t\t\tyaml_parser_set_parser_error(parser,\n\t\t\t\t\t\"found incompatible YAML document\", token.start_mark)\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tversion_directive = &yaml_version_directive_t{\n\t\t\t\tmajor: token.major,\n\t\t\t\tminor: token.minor,\n\t\t\t}\n\t\t} else if token.typ == yaml_TAG_DIRECTIVE_TOKEN {\n\t\t\tvalue := yaml_tag_directive_t{\n\t\t\t\thandle: token.value,\n\t\t\t\tprefix: token.prefix,\n\t\t\t}\n\t\t\tif !yaml_parser_append_tag_directive(parser, value, false, token.start_mark) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\ttag_directives = append(tag_directives, value)\n\t\t}\n\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tfor i := range default_tag_directives {\n\t\tif !yaml_parser_append_tag_directive(parser, default_tag_directives[i], true, token.start_mark) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif version_directive_ref != nil {\n\t\t*version_directive_ref = version_directive\n\t}\n\tif tag_directives_ref != nil {\n\t\t*tag_directives_ref = tag_directives\n\t}\n\treturn true\n}\n\n// Append a tag directive to the directives stack.\nfunc yaml_parser_append_tag_directive(parser *yaml_parser_t, value yaml_tag_directive_t, allow_duplicates bool, mark yaml_mark_t) bool {\n\tfor i := range parser.tag_directives {\n\t\tif bytes.Equal(value.handle, parser.tag_directives[i].handle) {\n\t\t\tif allow_duplicates {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn yaml_parser_set_parser_error(parser, \"found duplicate %TAG directive\", mark)\n\t\t}\n\t}\n\n\t// [Go] I suspect the copy is unnecessary. This was likely done\n\t// because there was no way to track ownership of the data.\n\tvalue_copy := yaml_tag_directive_t{\n\t\thandle: make([]byte, len(value.handle)),\n\t\tprefix: make([]byte, len(value.prefix)),\n\t}\n\tcopy(value_copy.handle, value.handle)\n\tcopy(value_copy.prefix, value.prefix)\n\tparser.tag_directives = append(parser.tag_directives, value_copy)\n\treturn true\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/readerc.go",
    "content": "// \n// Copyright (c) 2011-2019 Canonical Ltd\n// Copyright (c) 2006-2010 Kirill Simonov\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n// of the Software, and to permit persons to whom the Software is furnished to do\n// so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\npackage yaml\n\nimport (\n\t\"io\"\n)\n\n// Set the reader error and return 0.\nfunc yaml_parser_set_reader_error(parser *yaml_parser_t, problem string, offset int, value int) bool {\n\tparser.error = yaml_READER_ERROR\n\tparser.problem = problem\n\tparser.problem_offset = offset\n\tparser.problem_value = value\n\treturn false\n}\n\n// Byte order marks.\nconst (\n\tbom_UTF8    = \"\\xef\\xbb\\xbf\"\n\tbom_UTF16LE = \"\\xff\\xfe\"\n\tbom_UTF16BE = \"\\xfe\\xff\"\n)\n\n// Determine the input stream encoding by checking the BOM symbol. If no BOM is\n// found, the UTF-8 encoding is assumed. Return 1 on success, 0 on failure.\nfunc yaml_parser_determine_encoding(parser *yaml_parser_t) bool {\n\t// Ensure that we had enough bytes in the raw buffer.\n\tfor !parser.eof && len(parser.raw_buffer)-parser.raw_buffer_pos < 3 {\n\t\tif !yaml_parser_update_raw_buffer(parser) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Determine the encoding.\n\tbuf := parser.raw_buffer\n\tpos := parser.raw_buffer_pos\n\tavail := len(buf) - pos\n\tif avail >= 2 && buf[pos] == bom_UTF16LE[0] && buf[pos+1] == bom_UTF16LE[1] {\n\t\tparser.encoding = yaml_UTF16LE_ENCODING\n\t\tparser.raw_buffer_pos += 2\n\t\tparser.offset += 2\n\t} else if avail >= 2 && buf[pos] == bom_UTF16BE[0] && buf[pos+1] == bom_UTF16BE[1] {\n\t\tparser.encoding = yaml_UTF16BE_ENCODING\n\t\tparser.raw_buffer_pos += 2\n\t\tparser.offset += 2\n\t} else if avail >= 3 && buf[pos] == bom_UTF8[0] && buf[pos+1] == bom_UTF8[1] && buf[pos+2] == bom_UTF8[2] {\n\t\tparser.encoding = yaml_UTF8_ENCODING\n\t\tparser.raw_buffer_pos += 3\n\t\tparser.offset += 3\n\t} else {\n\t\tparser.encoding = yaml_UTF8_ENCODING\n\t}\n\treturn true\n}\n\n// Update the raw buffer.\nfunc yaml_parser_update_raw_buffer(parser *yaml_parser_t) bool {\n\tsize_read := 0\n\n\t// Return if the raw buffer is full.\n\tif parser.raw_buffer_pos == 0 && len(parser.raw_buffer) == cap(parser.raw_buffer) {\n\t\treturn true\n\t}\n\n\t// Return on EOF.\n\tif parser.eof {\n\t\treturn true\n\t}\n\n\t// Move the remaining bytes in the raw buffer to the beginning.\n\tif parser.raw_buffer_pos > 0 && parser.raw_buffer_pos < len(parser.raw_buffer) {\n\t\tcopy(parser.raw_buffer, parser.raw_buffer[parser.raw_buffer_pos:])\n\t}\n\tparser.raw_buffer = parser.raw_buffer[:len(parser.raw_buffer)-parser.raw_buffer_pos]\n\tparser.raw_buffer_pos = 0\n\n\t// Call the read handler to fill the buffer.\n\tsize_read, err := parser.read_handler(parser, parser.raw_buffer[len(parser.raw_buffer):cap(parser.raw_buffer)])\n\tparser.raw_buffer = parser.raw_buffer[:len(parser.raw_buffer)+size_read]\n\tif err == io.EOF {\n\t\tparser.eof = true\n\t} else if err != nil {\n\t\treturn yaml_parser_set_reader_error(parser, \"input error: \"+err.Error(), parser.offset, -1)\n\t}\n\treturn true\n}\n\n// Ensure that the buffer contains at least `length` characters.\n// Return true on success, false on failure.\n//\n// The length is supposed to be significantly less that the buffer size.\nfunc yaml_parser_update_buffer(parser *yaml_parser_t, length int) bool {\n\tif parser.read_handler == nil {\n\t\tpanic(\"read handler must be set\")\n\t}\n\n\t// [Go] This function was changed to guarantee the requested length size at EOF.\n\t// The fact we need to do this is pretty awful, but the description above implies\n\t// for that to be the case, and there are tests\n\n\t// If the EOF flag is set and the raw buffer is empty, do nothing.\n\tif parser.eof && parser.raw_buffer_pos == len(parser.raw_buffer) {\n\t\t// [Go] ACTUALLY! Read the documentation of this function above.\n\t\t// This is just broken. To return true, we need to have the\n\t\t// given length in the buffer. Not doing that means every single\n\t\t// check that calls this function to make sure the buffer has a\n\t\t// given length is Go) panicking; or C) accessing invalid memory.\n\t\t//return true\n\t}\n\n\t// Return if the buffer contains enough characters.\n\tif parser.unread >= length {\n\t\treturn true\n\t}\n\n\t// Determine the input encoding if it is not known yet.\n\tif parser.encoding == yaml_ANY_ENCODING {\n\t\tif !yaml_parser_determine_encoding(parser) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Move the unread characters to the beginning of the buffer.\n\tbuffer_len := len(parser.buffer)\n\tif parser.buffer_pos > 0 && parser.buffer_pos < buffer_len {\n\t\tcopy(parser.buffer, parser.buffer[parser.buffer_pos:])\n\t\tbuffer_len -= parser.buffer_pos\n\t\tparser.buffer_pos = 0\n\t} else if parser.buffer_pos == buffer_len {\n\t\tbuffer_len = 0\n\t\tparser.buffer_pos = 0\n\t}\n\n\t// Open the whole buffer for writing, and cut it before returning.\n\tparser.buffer = parser.buffer[:cap(parser.buffer)]\n\n\t// Fill the buffer until it has enough characters.\n\tfirst := true\n\tfor parser.unread < length {\n\n\t\t// Fill the raw buffer if necessary.\n\t\tif !first || parser.raw_buffer_pos == len(parser.raw_buffer) {\n\t\t\tif !yaml_parser_update_raw_buffer(parser) {\n\t\t\t\tparser.buffer = parser.buffer[:buffer_len]\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tfirst = false\n\n\t\t// Decode the raw buffer.\n\tinner:\n\t\tfor parser.raw_buffer_pos != len(parser.raw_buffer) {\n\t\t\tvar value rune\n\t\t\tvar width int\n\n\t\t\traw_unread := len(parser.raw_buffer) - parser.raw_buffer_pos\n\n\t\t\t// Decode the next character.\n\t\t\tswitch parser.encoding {\n\t\t\tcase yaml_UTF8_ENCODING:\n\t\t\t\t// Decode a UTF-8 character.  Check RFC 3629\n\t\t\t\t// (http://www.ietf.org/rfc/rfc3629.txt) for more details.\n\t\t\t\t//\n\t\t\t\t// The following table (taken from the RFC) is used for\n\t\t\t\t// decoding.\n\t\t\t\t//\n\t\t\t\t//    Char. number range |        UTF-8 octet sequence\n\t\t\t\t//      (hexadecimal)    |              (binary)\n\t\t\t\t//   --------------------+------------------------------------\n\t\t\t\t//   0000 0000-0000 007F | 0xxxxxxx\n\t\t\t\t//   0000 0080-0000 07FF | 110xxxxx 10xxxxxx\n\t\t\t\t//   0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx\n\t\t\t\t//   0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx\n\t\t\t\t//\n\t\t\t\t// Additionally, the characters in the range 0xD800-0xDFFF\n\t\t\t\t// are prohibited as they are reserved for use with UTF-16\n\t\t\t\t// surrogate pairs.\n\n\t\t\t\t// Determine the length of the UTF-8 sequence.\n\t\t\t\toctet := parser.raw_buffer[parser.raw_buffer_pos]\n\t\t\t\tswitch {\n\t\t\t\tcase octet&0x80 == 0x00:\n\t\t\t\t\twidth = 1\n\t\t\t\tcase octet&0xE0 == 0xC0:\n\t\t\t\t\twidth = 2\n\t\t\t\tcase octet&0xF0 == 0xE0:\n\t\t\t\t\twidth = 3\n\t\t\t\tcase octet&0xF8 == 0xF0:\n\t\t\t\t\twidth = 4\n\t\t\t\tdefault:\n\t\t\t\t\t// The leading octet is invalid.\n\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\"invalid leading UTF-8 octet\",\n\t\t\t\t\t\tparser.offset, int(octet))\n\t\t\t\t}\n\n\t\t\t\t// Check if the raw buffer contains an incomplete character.\n\t\t\t\tif width > raw_unread {\n\t\t\t\t\tif parser.eof {\n\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\"incomplete UTF-8 octet sequence\",\n\t\t\t\t\t\t\tparser.offset, -1)\n\t\t\t\t\t}\n\t\t\t\t\tbreak inner\n\t\t\t\t}\n\n\t\t\t\t// Decode the leading octet.\n\t\t\t\tswitch {\n\t\t\t\tcase octet&0x80 == 0x00:\n\t\t\t\t\tvalue = rune(octet & 0x7F)\n\t\t\t\tcase octet&0xE0 == 0xC0:\n\t\t\t\t\tvalue = rune(octet & 0x1F)\n\t\t\t\tcase octet&0xF0 == 0xE0:\n\t\t\t\t\tvalue = rune(octet & 0x0F)\n\t\t\t\tcase octet&0xF8 == 0xF0:\n\t\t\t\t\tvalue = rune(octet & 0x07)\n\t\t\t\tdefault:\n\t\t\t\t\tvalue = 0\n\t\t\t\t}\n\n\t\t\t\t// Check and decode the trailing octets.\n\t\t\t\tfor k := 1; k < width; k++ {\n\t\t\t\t\toctet = parser.raw_buffer[parser.raw_buffer_pos+k]\n\n\t\t\t\t\t// Check if the octet is valid.\n\t\t\t\t\tif (octet & 0xC0) != 0x80 {\n\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\"invalid trailing UTF-8 octet\",\n\t\t\t\t\t\t\tparser.offset+k, int(octet))\n\t\t\t\t\t}\n\n\t\t\t\t\t// Decode the octet.\n\t\t\t\t\tvalue = (value << 6) + rune(octet&0x3F)\n\t\t\t\t}\n\n\t\t\t\t// Check the length of the sequence against the value.\n\t\t\t\tswitch {\n\t\t\t\tcase width == 1:\n\t\t\t\tcase width == 2 && value >= 0x80:\n\t\t\t\tcase width == 3 && value >= 0x800:\n\t\t\t\tcase width == 4 && value >= 0x10000:\n\t\t\t\tdefault:\n\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\"invalid length of a UTF-8 sequence\",\n\t\t\t\t\t\tparser.offset, -1)\n\t\t\t\t}\n\n\t\t\t\t// Check the range of the value.\n\t\t\t\tif value >= 0xD800 && value <= 0xDFFF || value > 0x10FFFF {\n\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\"invalid Unicode character\",\n\t\t\t\t\t\tparser.offset, int(value))\n\t\t\t\t}\n\n\t\t\tcase yaml_UTF16LE_ENCODING, yaml_UTF16BE_ENCODING:\n\t\t\t\tvar low, high int\n\t\t\t\tif parser.encoding == yaml_UTF16LE_ENCODING {\n\t\t\t\t\tlow, high = 0, 1\n\t\t\t\t} else {\n\t\t\t\t\tlow, high = 1, 0\n\t\t\t\t}\n\n\t\t\t\t// The UTF-16 encoding is not as simple as one might\n\t\t\t\t// naively think.  Check RFC 2781\n\t\t\t\t// (http://www.ietf.org/rfc/rfc2781.txt).\n\t\t\t\t//\n\t\t\t\t// Normally, two subsequent bytes describe a Unicode\n\t\t\t\t// character.  However a special technique (called a\n\t\t\t\t// surrogate pair) is used for specifying character\n\t\t\t\t// values larger than 0xFFFF.\n\t\t\t\t//\n\t\t\t\t// A surrogate pair consists of two pseudo-characters:\n\t\t\t\t//      high surrogate area (0xD800-0xDBFF)\n\t\t\t\t//      low surrogate area (0xDC00-0xDFFF)\n\t\t\t\t//\n\t\t\t\t// The following formulas are used for decoding\n\t\t\t\t// and encoding characters using surrogate pairs:\n\t\t\t\t//\n\t\t\t\t//  U  = U' + 0x10000   (0x01 00 00 <= U <= 0x10 FF FF)\n\t\t\t\t//  U' = yyyyyyyyyyxxxxxxxxxx   (0 <= U' <= 0x0F FF FF)\n\t\t\t\t//  W1 = 110110yyyyyyyyyy\n\t\t\t\t//  W2 = 110111xxxxxxxxxx\n\t\t\t\t//\n\t\t\t\t// where U is the character value, W1 is the high surrogate\n\t\t\t\t// area, W2 is the low surrogate area.\n\n\t\t\t\t// Check for incomplete UTF-16 character.\n\t\t\t\tif raw_unread < 2 {\n\t\t\t\t\tif parser.eof {\n\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\"incomplete UTF-16 character\",\n\t\t\t\t\t\t\tparser.offset, -1)\n\t\t\t\t\t}\n\t\t\t\t\tbreak inner\n\t\t\t\t}\n\n\t\t\t\t// Get the character.\n\t\t\t\tvalue = rune(parser.raw_buffer[parser.raw_buffer_pos+low]) +\n\t\t\t\t\t(rune(parser.raw_buffer[parser.raw_buffer_pos+high]) << 8)\n\n\t\t\t\t// Check for unexpected low surrogate area.\n\t\t\t\tif value&0xFC00 == 0xDC00 {\n\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\"unexpected low surrogate area\",\n\t\t\t\t\t\tparser.offset, int(value))\n\t\t\t\t}\n\n\t\t\t\t// Check for a high surrogate area.\n\t\t\t\tif value&0xFC00 == 0xD800 {\n\t\t\t\t\twidth = 4\n\n\t\t\t\t\t// Check for incomplete surrogate pair.\n\t\t\t\t\tif raw_unread < 4 {\n\t\t\t\t\t\tif parser.eof {\n\t\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\t\"incomplete UTF-16 surrogate pair\",\n\t\t\t\t\t\t\t\tparser.offset, -1)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak inner\n\t\t\t\t\t}\n\n\t\t\t\t\t// Get the next character.\n\t\t\t\t\tvalue2 := rune(parser.raw_buffer[parser.raw_buffer_pos+low+2]) +\n\t\t\t\t\t\t(rune(parser.raw_buffer[parser.raw_buffer_pos+high+2]) << 8)\n\n\t\t\t\t\t// Check for a low surrogate area.\n\t\t\t\t\tif value2&0xFC00 != 0xDC00 {\n\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\"expected low surrogate area\",\n\t\t\t\t\t\t\tparser.offset+2, int(value2))\n\t\t\t\t\t}\n\n\t\t\t\t\t// Generate the value of the surrogate pair.\n\t\t\t\t\tvalue = 0x10000 + ((value & 0x3FF) << 10) + (value2 & 0x3FF)\n\t\t\t\t} else {\n\t\t\t\t\twidth = 2\n\t\t\t\t}\n\n\t\t\tdefault:\n\t\t\t\tpanic(\"impossible\")\n\t\t\t}\n\n\t\t\t// Check if the character is in the allowed range:\n\t\t\t//      #x9 | #xA | #xD | [#x20-#x7E]               (8 bit)\n\t\t\t//      | #x85 | [#xA0-#xD7FF] | [#xE000-#xFFFD]    (16 bit)\n\t\t\t//      | [#x10000-#x10FFFF]                        (32 bit)\n\t\t\tswitch {\n\t\t\tcase value == 0x09:\n\t\t\tcase value == 0x0A:\n\t\t\tcase value == 0x0D:\n\t\t\tcase value >= 0x20 && value <= 0x7E:\n\t\t\tcase value == 0x85:\n\t\t\tcase value >= 0xA0 && value <= 0xD7FF:\n\t\t\tcase value >= 0xE000 && value <= 0xFFFD:\n\t\t\tcase value >= 0x10000 && value <= 0x10FFFF:\n\t\t\tdefault:\n\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\"control characters are not allowed\",\n\t\t\t\t\tparser.offset, int(value))\n\t\t\t}\n\n\t\t\t// Move the raw pointers.\n\t\t\tparser.raw_buffer_pos += width\n\t\t\tparser.offset += width\n\n\t\t\t// Finally put the character into the buffer.\n\t\t\tif value <= 0x7F {\n\t\t\t\t// 0000 0000-0000 007F . 0xxxxxxx\n\t\t\t\tparser.buffer[buffer_len+0] = byte(value)\n\t\t\t\tbuffer_len += 1\n\t\t\t} else if value <= 0x7FF {\n\t\t\t\t// 0000 0080-0000 07FF . 110xxxxx 10xxxxxx\n\t\t\t\tparser.buffer[buffer_len+0] = byte(0xC0 + (value >> 6))\n\t\t\t\tparser.buffer[buffer_len+1] = byte(0x80 + (value & 0x3F))\n\t\t\t\tbuffer_len += 2\n\t\t\t} else if value <= 0xFFFF {\n\t\t\t\t// 0000 0800-0000 FFFF . 1110xxxx 10xxxxxx 10xxxxxx\n\t\t\t\tparser.buffer[buffer_len+0] = byte(0xE0 + (value >> 12))\n\t\t\t\tparser.buffer[buffer_len+1] = byte(0x80 + ((value >> 6) & 0x3F))\n\t\t\t\tparser.buffer[buffer_len+2] = byte(0x80 + (value & 0x3F))\n\t\t\t\tbuffer_len += 3\n\t\t\t} else {\n\t\t\t\t// 0001 0000-0010 FFFF . 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx\n\t\t\t\tparser.buffer[buffer_len+0] = byte(0xF0 + (value >> 18))\n\t\t\t\tparser.buffer[buffer_len+1] = byte(0x80 + ((value >> 12) & 0x3F))\n\t\t\t\tparser.buffer[buffer_len+2] = byte(0x80 + ((value >> 6) & 0x3F))\n\t\t\t\tparser.buffer[buffer_len+3] = byte(0x80 + (value & 0x3F))\n\t\t\t\tbuffer_len += 4\n\t\t\t}\n\n\t\t\tparser.unread++\n\t\t}\n\n\t\t// On EOF, put NUL into the buffer and return.\n\t\tif parser.eof {\n\t\t\tparser.buffer[buffer_len] = 0\n\t\t\tbuffer_len++\n\t\t\tparser.unread++\n\t\t\tbreak\n\t\t}\n\t}\n\t// [Go] Read the documentation of this function above. To return true,\n\t// we need to have the given length in the buffer. Not doing that means\n\t// every single check that calls this function to make sure the buffer\n\t// has a given length is Go) panicking; or C) accessing invalid memory.\n\t// This happens here due to the EOF above breaking early.\n\tfor buffer_len < length {\n\t\tparser.buffer[buffer_len] = 0\n\t\tbuffer_len++\n\t}\n\tparser.buffer = parser.buffer[:buffer_len]\n\treturn true\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/resolve.go",
    "content": "//\n// Copyright (c) 2011-2019 Canonical Ltd\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage yaml\n\nimport (\n\t\"encoding/base64\"\n\t\"math\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n)\n\ntype resolveMapItem struct {\n\tvalue interface{}\n\ttag   string\n}\n\nvar resolveTable = make([]byte, 256)\nvar resolveMap = make(map[string]resolveMapItem)\n\nfunc init() {\n\tt := resolveTable\n\tt[int('+')] = 'S' // Sign\n\tt[int('-')] = 'S'\n\tfor _, c := range \"0123456789\" {\n\t\tt[int(c)] = 'D' // Digit\n\t}\n\tfor _, c := range \"yYnNtTfFoO~\" {\n\t\tt[int(c)] = 'M' // In map\n\t}\n\tt[int('.')] = '.' // Float (potentially in map)\n\n\tvar resolveMapList = []struct {\n\t\tv   interface{}\n\t\ttag string\n\t\tl   []string\n\t}{\n\t\t{true, boolTag, []string{\"true\", \"True\", \"TRUE\"}},\n\t\t{false, boolTag, []string{\"false\", \"False\", \"FALSE\"}},\n\t\t{nil, nullTag, []string{\"\", \"~\", \"null\", \"Null\", \"NULL\"}},\n\t\t{math.NaN(), floatTag, []string{\".nan\", \".NaN\", \".NAN\"}},\n\t\t{math.Inf(+1), floatTag, []string{\".inf\", \".Inf\", \".INF\"}},\n\t\t{math.Inf(+1), floatTag, []string{\"+.inf\", \"+.Inf\", \"+.INF\"}},\n\t\t{math.Inf(-1), floatTag, []string{\"-.inf\", \"-.Inf\", \"-.INF\"}},\n\t\t{\"<<\", mergeTag, []string{\"<<\"}},\n\t}\n\n\tm := resolveMap\n\tfor _, item := range resolveMapList {\n\t\tfor _, s := range item.l {\n\t\t\tm[s] = resolveMapItem{item.v, item.tag}\n\t\t}\n\t}\n}\n\nconst (\n\tnullTag      = \"!!null\"\n\tboolTag      = \"!!bool\"\n\tstrTag       = \"!!str\"\n\tintTag       = \"!!int\"\n\tfloatTag     = \"!!float\"\n\ttimestampTag = \"!!timestamp\"\n\tseqTag       = \"!!seq\"\n\tmapTag       = \"!!map\"\n\tbinaryTag    = \"!!binary\"\n\tmergeTag     = \"!!merge\"\n)\n\nvar longTags = make(map[string]string)\nvar shortTags = make(map[string]string)\n\nfunc init() {\n\tfor _, stag := range []string{nullTag, boolTag, strTag, intTag, floatTag, timestampTag, seqTag, mapTag, binaryTag, mergeTag} {\n\t\tltag := longTag(stag)\n\t\tlongTags[stag] = ltag\n\t\tshortTags[ltag] = stag\n\t}\n}\n\nconst longTagPrefix = \"tag:yaml.org,2002:\"\n\nfunc shortTag(tag string) string {\n\tif strings.HasPrefix(tag, longTagPrefix) {\n\t\tif stag, ok := shortTags[tag]; ok {\n\t\t\treturn stag\n\t\t}\n\t\treturn \"!!\" + tag[len(longTagPrefix):]\n\t}\n\treturn tag\n}\n\nfunc longTag(tag string) string {\n\tif strings.HasPrefix(tag, \"!!\") {\n\t\tif ltag, ok := longTags[tag]; ok {\n\t\t\treturn ltag\n\t\t}\n\t\treturn longTagPrefix + tag[2:]\n\t}\n\treturn tag\n}\n\nfunc resolvableTag(tag string) bool {\n\tswitch tag {\n\tcase \"\", strTag, boolTag, intTag, floatTag, nullTag, timestampTag:\n\t\treturn true\n\t}\n\treturn false\n}\n\nvar yamlStyleFloat = regexp.MustCompile(`^[-+]?(\\.[0-9]+|[0-9]+(\\.[0-9]*)?)([eE][-+]?[0-9]+)?$`)\n\nfunc resolve(tag string, in string) (rtag string, out interface{}) {\n\ttag = shortTag(tag)\n\tif !resolvableTag(tag) {\n\t\treturn tag, in\n\t}\n\n\tdefer func() {\n\t\tswitch tag {\n\t\tcase \"\", rtag, strTag, binaryTag:\n\t\t\treturn\n\t\tcase floatTag:\n\t\t\tif rtag == intTag {\n\t\t\t\tswitch v := out.(type) {\n\t\t\t\tcase int64:\n\t\t\t\t\trtag = floatTag\n\t\t\t\t\tout = float64(v)\n\t\t\t\t\treturn\n\t\t\t\tcase int:\n\t\t\t\t\trtag = floatTag\n\t\t\t\t\tout = float64(v)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfailf(\"cannot decode %s `%s` as a %s\", shortTag(rtag), in, shortTag(tag))\n\t}()\n\n\t// Any data is accepted as a !!str or !!binary.\n\t// Otherwise, the prefix is enough of a hint about what it might be.\n\thint := byte('N')\n\tif in != \"\" {\n\t\thint = resolveTable[in[0]]\n\t}\n\tif hint != 0 && tag != strTag && tag != binaryTag {\n\t\t// Handle things we can lookup in a map.\n\t\tif item, ok := resolveMap[in]; ok {\n\t\t\treturn item.tag, item.value\n\t\t}\n\n\t\t// Base 60 floats are a bad idea, were dropped in YAML 1.2, and\n\t\t// are purposefully unsupported here. They're still quoted on\n\t\t// the way out for compatibility with other parser, though.\n\n\t\tswitch hint {\n\t\tcase 'M':\n\t\t\t// We've already checked the map above.\n\n\t\tcase '.':\n\t\t\t// Not in the map, so maybe a normal float.\n\t\t\tfloatv, err := strconv.ParseFloat(in, 64)\n\t\t\tif err == nil {\n\t\t\t\treturn floatTag, floatv\n\t\t\t}\n\n\t\tcase 'D', 'S':\n\t\t\t// Int, float, or timestamp.\n\t\t\t// Only try values as a timestamp if the value is unquoted or there's an explicit\n\t\t\t// !!timestamp tag.\n\t\t\tif tag == \"\" || tag == timestampTag {\n\t\t\t\tt, ok := parseTimestamp(in)\n\t\t\t\tif ok {\n\t\t\t\t\treturn timestampTag, t\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tplain := strings.Replace(in, \"_\", \"\", -1)\n\t\t\tintv, err := strconv.ParseInt(plain, 0, 64)\n\t\t\tif err == nil {\n\t\t\t\tif intv == int64(int(intv)) {\n\t\t\t\t\treturn intTag, int(intv)\n\t\t\t\t} else {\n\t\t\t\t\treturn intTag, intv\n\t\t\t\t}\n\t\t\t}\n\t\t\tuintv, err := strconv.ParseUint(plain, 0, 64)\n\t\t\tif err == nil {\n\t\t\t\treturn intTag, uintv\n\t\t\t}\n\t\t\tif yamlStyleFloat.MatchString(plain) {\n\t\t\t\tfloatv, err := strconv.ParseFloat(plain, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\treturn floatTag, floatv\n\t\t\t\t}\n\t\t\t}\n\t\t\tif strings.HasPrefix(plain, \"0b\") {\n\t\t\t\tintv, err := strconv.ParseInt(plain[2:], 2, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\tif intv == int64(int(intv)) {\n\t\t\t\t\t\treturn intTag, int(intv)\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn intTag, intv\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tuintv, err := strconv.ParseUint(plain[2:], 2, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\treturn intTag, uintv\n\t\t\t\t}\n\t\t\t} else if strings.HasPrefix(plain, \"-0b\") {\n\t\t\t\tintv, err := strconv.ParseInt(\"-\"+plain[3:], 2, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\tif true || intv == int64(int(intv)) {\n\t\t\t\t\t\treturn intTag, int(intv)\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn intTag, intv\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Octals as introduced in version 1.2 of the spec.\n\t\t\t// Octals from the 1.1 spec, spelled as 0777, are still\n\t\t\t// decoded by default in v3 as well for compatibility.\n\t\t\t// May be dropped in v4 depending on how usage evolves.\n\t\t\tif strings.HasPrefix(plain, \"0o\") {\n\t\t\t\tintv, err := strconv.ParseInt(plain[2:], 8, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\tif intv == int64(int(intv)) {\n\t\t\t\t\t\treturn intTag, int(intv)\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn intTag, intv\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tuintv, err := strconv.ParseUint(plain[2:], 8, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\treturn intTag, uintv\n\t\t\t\t}\n\t\t\t} else if strings.HasPrefix(plain, \"-0o\") {\n\t\t\t\tintv, err := strconv.ParseInt(\"-\"+plain[3:], 8, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\tif true || intv == int64(int(intv)) {\n\t\t\t\t\t\treturn intTag, int(intv)\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn intTag, intv\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"internal error: missing handler for resolver table: \" + string(rune(hint)) + \" (with \" + in + \")\")\n\t\t}\n\t}\n\treturn strTag, in\n}\n\n// encodeBase64 encodes s as base64 that is broken up into multiple lines\n// as appropriate for the resulting length.\nfunc encodeBase64(s string) string {\n\tconst lineLen = 70\n\tencLen := base64.StdEncoding.EncodedLen(len(s))\n\tlines := encLen/lineLen + 1\n\tbuf := make([]byte, encLen*2+lines)\n\tin := buf[0:encLen]\n\tout := buf[encLen:]\n\tbase64.StdEncoding.Encode(in, []byte(s))\n\tk := 0\n\tfor i := 0; i < len(in); i += lineLen {\n\t\tj := i + lineLen\n\t\tif j > len(in) {\n\t\t\tj = len(in)\n\t\t}\n\t\tk += copy(out[k:], in[i:j])\n\t\tif lines > 1 {\n\t\t\tout[k] = '\\n'\n\t\t\tk++\n\t\t}\n\t}\n\treturn string(out[:k])\n}\n\n// This is a subset of the formats allowed by the regular expression\n// defined at http://yaml.org/type/timestamp.html.\nvar allowedTimestampFormats = []string{\n\t\"2006-1-2T15:4:5.999999999Z07:00\", // RCF3339Nano with short date fields.\n\t\"2006-1-2t15:4:5.999999999Z07:00\", // RFC3339Nano with short date fields and lower-case \"t\".\n\t\"2006-1-2 15:4:5.999999999\",       // space separated with no time zone\n\t\"2006-1-2\",                        // date only\n\t// Notable exception: time.Parse cannot handle: \"2001-12-14 21:59:43.10 -5\"\n\t// from the set of examples.\n}\n\n// parseTimestamp parses s as a timestamp string and\n// returns the timestamp and reports whether it succeeded.\n// Timestamp formats are defined at http://yaml.org/type/timestamp.html\nfunc parseTimestamp(s string) (time.Time, bool) {\n\t// TODO write code to check all the formats supported by\n\t// http://yaml.org/type/timestamp.html instead of using time.Parse.\n\n\t// Quick check: all date formats start with YYYY-.\n\ti := 0\n\tfor ; i < len(s); i++ {\n\t\tif c := s[i]; c < '0' || c > '9' {\n\t\t\tbreak\n\t\t}\n\t}\n\tif i != 4 || i == len(s) || s[i] != '-' {\n\t\treturn time.Time{}, false\n\t}\n\tfor _, format := range allowedTimestampFormats {\n\t\tif t, err := time.Parse(format, s); err == nil {\n\t\t\treturn t, true\n\t\t}\n\t}\n\treturn time.Time{}, false\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/scannerc.go",
    "content": "//\n// Copyright (c) 2011-2019 Canonical Ltd\n// Copyright (c) 2006-2010 Kirill Simonov\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n// of the Software, and to permit persons to whom the Software is furnished to do\n// so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\npackage yaml\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n)\n\n// Introduction\n// ************\n//\n// The following notes assume that you are familiar with the YAML specification\n// (http://yaml.org/spec/1.2/spec.html).  We mostly follow it, although in\n// some cases we are less restrictive that it requires.\n//\n// The process of transforming a YAML stream into a sequence of events is\n// divided on two steps: Scanning and Parsing.\n//\n// The Scanner transforms the input stream into a sequence of tokens, while the\n// parser transform the sequence of tokens produced by the Scanner into a\n// sequence of parsing events.\n//\n// The Scanner is rather clever and complicated. The Parser, on the contrary,\n// is a straightforward implementation of a recursive-descendant parser (or,\n// LL(1) parser, as it is usually called).\n//\n// Actually there are two issues of Scanning that might be called \"clever\", the\n// rest is quite straightforward.  The issues are \"block collection start\" and\n// \"simple keys\".  Both issues are explained below in details.\n//\n// Here the Scanning step is explained and implemented.  We start with the list\n// of all the tokens produced by the Scanner together with short descriptions.\n//\n// Now, tokens:\n//\n//      STREAM-START(encoding)          # The stream start.\n//      STREAM-END                      # The stream end.\n//      VERSION-DIRECTIVE(major,minor)  # The '%YAML' directive.\n//      TAG-DIRECTIVE(handle,prefix)    # The '%TAG' directive.\n//      DOCUMENT-START                  # '---'\n//      DOCUMENT-END                    # '...'\n//      BLOCK-SEQUENCE-START            # Indentation increase denoting a block\n//      BLOCK-MAPPING-START             # sequence or a block mapping.\n//      BLOCK-END                       # Indentation decrease.\n//      FLOW-SEQUENCE-START             # '['\n//      FLOW-SEQUENCE-END               # ']'\n//      BLOCK-SEQUENCE-START            # '{'\n//      BLOCK-SEQUENCE-END              # '}'\n//      BLOCK-ENTRY                     # '-'\n//      FLOW-ENTRY                      # ','\n//      KEY                             # '?' or nothing (simple keys).\n//      VALUE                           # ':'\n//      ALIAS(anchor)                   # '*anchor'\n//      ANCHOR(anchor)                  # '&anchor'\n//      TAG(handle,suffix)              # '!handle!suffix'\n//      SCALAR(value,style)             # A scalar.\n//\n// The following two tokens are \"virtual\" tokens denoting the beginning and the\n// end of the stream:\n//\n//      STREAM-START(encoding)\n//      STREAM-END\n//\n// We pass the information about the input stream encoding with the\n// STREAM-START token.\n//\n// The next two tokens are responsible for tags:\n//\n//      VERSION-DIRECTIVE(major,minor)\n//      TAG-DIRECTIVE(handle,prefix)\n//\n// Example:\n//\n//      %YAML   1.1\n//      %TAG    !   !foo\n//      %TAG    !yaml!  tag:yaml.org,2002:\n//      ---\n//\n// The correspoding sequence of tokens:\n//\n//      STREAM-START(utf-8)\n//      VERSION-DIRECTIVE(1,1)\n//      TAG-DIRECTIVE(\"!\",\"!foo\")\n//      TAG-DIRECTIVE(\"!yaml\",\"tag:yaml.org,2002:\")\n//      DOCUMENT-START\n//      STREAM-END\n//\n// Note that the VERSION-DIRECTIVE and TAG-DIRECTIVE tokens occupy a whole\n// line.\n//\n// The document start and end indicators are represented by:\n//\n//      DOCUMENT-START\n//      DOCUMENT-END\n//\n// Note that if a YAML stream contains an implicit document (without '---'\n// and '...' indicators), no DOCUMENT-START and DOCUMENT-END tokens will be\n// produced.\n//\n// In the following examples, we present whole documents together with the\n// produced tokens.\n//\n//      1. An implicit document:\n//\n//          'a scalar'\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          SCALAR(\"a scalar\",single-quoted)\n//          STREAM-END\n//\n//      2. An explicit document:\n//\n//          ---\n//          'a scalar'\n//          ...\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          DOCUMENT-START\n//          SCALAR(\"a scalar\",single-quoted)\n//          DOCUMENT-END\n//          STREAM-END\n//\n//      3. Several documents in a stream:\n//\n//          'a scalar'\n//          ---\n//          'another scalar'\n//          ---\n//          'yet another scalar'\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          SCALAR(\"a scalar\",single-quoted)\n//          DOCUMENT-START\n//          SCALAR(\"another scalar\",single-quoted)\n//          DOCUMENT-START\n//          SCALAR(\"yet another scalar\",single-quoted)\n//          STREAM-END\n//\n// We have already introduced the SCALAR token above.  The following tokens are\n// used to describe aliases, anchors, tag, and scalars:\n//\n//      ALIAS(anchor)\n//      ANCHOR(anchor)\n//      TAG(handle,suffix)\n//      SCALAR(value,style)\n//\n// The following series of examples illustrate the usage of these tokens:\n//\n//      1. A recursive sequence:\n//\n//          &A [ *A ]\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          ANCHOR(\"A\")\n//          FLOW-SEQUENCE-START\n//          ALIAS(\"A\")\n//          FLOW-SEQUENCE-END\n//          STREAM-END\n//\n//      2. A tagged scalar:\n//\n//          !!float \"3.14\"  # A good approximation.\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          TAG(\"!!\",\"float\")\n//          SCALAR(\"3.14\",double-quoted)\n//          STREAM-END\n//\n//      3. Various scalar styles:\n//\n//          --- # Implicit empty plain scalars do not produce tokens.\n//          --- a plain scalar\n//          --- 'a single-quoted scalar'\n//          --- \"a double-quoted scalar\"\n//          --- |-\n//            a literal scalar\n//          --- >-\n//            a folded\n//            scalar\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          DOCUMENT-START\n//          DOCUMENT-START\n//          SCALAR(\"a plain scalar\",plain)\n//          DOCUMENT-START\n//          SCALAR(\"a single-quoted scalar\",single-quoted)\n//          DOCUMENT-START\n//          SCALAR(\"a double-quoted scalar\",double-quoted)\n//          DOCUMENT-START\n//          SCALAR(\"a literal scalar\",literal)\n//          DOCUMENT-START\n//          SCALAR(\"a folded scalar\",folded)\n//          STREAM-END\n//\n// Now it's time to review collection-related tokens. We will start with\n// flow collections:\n//\n//      FLOW-SEQUENCE-START\n//      FLOW-SEQUENCE-END\n//      FLOW-MAPPING-START\n//      FLOW-MAPPING-END\n//      FLOW-ENTRY\n//      KEY\n//      VALUE\n//\n// The tokens FLOW-SEQUENCE-START, FLOW-SEQUENCE-END, FLOW-MAPPING-START, and\n// FLOW-MAPPING-END represent the indicators '[', ']', '{', and '}'\n// correspondingly.  FLOW-ENTRY represent the ',' indicator.  Finally the\n// indicators '?' and ':', which are used for denoting mapping keys and values,\n// are represented by the KEY and VALUE tokens.\n//\n// The following examples show flow collections:\n//\n//      1. A flow sequence:\n//\n//          [item 1, item 2, item 3]\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          FLOW-SEQUENCE-START\n//          SCALAR(\"item 1\",plain)\n//          FLOW-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          FLOW-ENTRY\n//          SCALAR(\"item 3\",plain)\n//          FLOW-SEQUENCE-END\n//          STREAM-END\n//\n//      2. A flow mapping:\n//\n//          {\n//              a simple key: a value,  # Note that the KEY token is produced.\n//              ? a complex key: another value,\n//          }\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          FLOW-MAPPING-START\n//          KEY\n//          SCALAR(\"a simple key\",plain)\n//          VALUE\n//          SCALAR(\"a value\",plain)\n//          FLOW-ENTRY\n//          KEY\n//          SCALAR(\"a complex key\",plain)\n//          VALUE\n//          SCALAR(\"another value\",plain)\n//          FLOW-ENTRY\n//          FLOW-MAPPING-END\n//          STREAM-END\n//\n// A simple key is a key which is not denoted by the '?' indicator.  Note that\n// the Scanner still produce the KEY token whenever it encounters a simple key.\n//\n// For scanning block collections, the following tokens are used (note that we\n// repeat KEY and VALUE here):\n//\n//      BLOCK-SEQUENCE-START\n//      BLOCK-MAPPING-START\n//      BLOCK-END\n//      BLOCK-ENTRY\n//      KEY\n//      VALUE\n//\n// The tokens BLOCK-SEQUENCE-START and BLOCK-MAPPING-START denote indentation\n// increase that precedes a block collection (cf. the INDENT token in Python).\n// The token BLOCK-END denote indentation decrease that ends a block collection\n// (cf. the DEDENT token in Python).  However YAML has some syntax pecularities\n// that makes detections of these tokens more complex.\n//\n// The tokens BLOCK-ENTRY, KEY, and VALUE are used to represent the indicators\n// '-', '?', and ':' correspondingly.\n//\n// The following examples show how the tokens BLOCK-SEQUENCE-START,\n// BLOCK-MAPPING-START, and BLOCK-END are emitted by the Scanner:\n//\n//      1. Block sequences:\n//\n//          - item 1\n//          - item 2\n//          -\n//            - item 3.1\n//            - item 3.2\n//          -\n//            key 1: value 1\n//            key 2: value 2\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          BLOCK-ENTRY\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 3.1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 3.2\",plain)\n//          BLOCK-END\n//          BLOCK-ENTRY\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"key 1\",plain)\n//          VALUE\n//          SCALAR(\"value 1\",plain)\n//          KEY\n//          SCALAR(\"key 2\",plain)\n//          VALUE\n//          SCALAR(\"value 2\",plain)\n//          BLOCK-END\n//          BLOCK-END\n//          STREAM-END\n//\n//      2. Block mappings:\n//\n//          a simple key: a value   # The KEY token is produced here.\n//          ? a complex key\n//          : another value\n//          a mapping:\n//            key 1: value 1\n//            key 2: value 2\n//          a sequence:\n//            - item 1\n//            - item 2\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"a simple key\",plain)\n//          VALUE\n//          SCALAR(\"a value\",plain)\n//          KEY\n//          SCALAR(\"a complex key\",plain)\n//          VALUE\n//          SCALAR(\"another value\",plain)\n//          KEY\n//          SCALAR(\"a mapping\",plain)\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"key 1\",plain)\n//          VALUE\n//          SCALAR(\"value 1\",plain)\n//          KEY\n//          SCALAR(\"key 2\",plain)\n//          VALUE\n//          SCALAR(\"value 2\",plain)\n//          BLOCK-END\n//          KEY\n//          SCALAR(\"a sequence\",plain)\n//          VALUE\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          BLOCK-END\n//          BLOCK-END\n//          STREAM-END\n//\n// YAML does not always require to start a new block collection from a new\n// line.  If the current line contains only '-', '?', and ':' indicators, a new\n// block collection may start at the current line.  The following examples\n// illustrate this case:\n//\n//      1. Collections in a sequence:\n//\n//          - - item 1\n//            - item 2\n//          - key 1: value 1\n//            key 2: value 2\n//          - ? complex key\n//            : complex value\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          BLOCK-END\n//          BLOCK-ENTRY\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"key 1\",plain)\n//          VALUE\n//          SCALAR(\"value 1\",plain)\n//          KEY\n//          SCALAR(\"key 2\",plain)\n//          VALUE\n//          SCALAR(\"value 2\",plain)\n//          BLOCK-END\n//          BLOCK-ENTRY\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"complex key\")\n//          VALUE\n//          SCALAR(\"complex value\")\n//          BLOCK-END\n//          BLOCK-END\n//          STREAM-END\n//\n//      2. Collections in a mapping:\n//\n//          ? a sequence\n//          : - item 1\n//            - item 2\n//          ? a mapping\n//          : key 1: value 1\n//            key 2: value 2\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"a sequence\",plain)\n//          VALUE\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          BLOCK-END\n//          KEY\n//          SCALAR(\"a mapping\",plain)\n//          VALUE\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"key 1\",plain)\n//          VALUE\n//          SCALAR(\"value 1\",plain)\n//          KEY\n//          SCALAR(\"key 2\",plain)\n//          VALUE\n//          SCALAR(\"value 2\",plain)\n//          BLOCK-END\n//          BLOCK-END\n//          STREAM-END\n//\n// YAML also permits non-indented sequences if they are included into a block\n// mapping.  In this case, the token BLOCK-SEQUENCE-START is not produced:\n//\n//      key:\n//      - item 1    # BLOCK-SEQUENCE-START is NOT produced here.\n//      - item 2\n//\n// Tokens:\n//\n//      STREAM-START(utf-8)\n//      BLOCK-MAPPING-START\n//      KEY\n//      SCALAR(\"key\",plain)\n//      VALUE\n//      BLOCK-ENTRY\n//      SCALAR(\"item 1\",plain)\n//      BLOCK-ENTRY\n//      SCALAR(\"item 2\",plain)\n//      BLOCK-END\n//\n\n// Ensure that the buffer contains the required number of characters.\n// Return true on success, false on failure (reader error or memory error).\nfunc cache(parser *yaml_parser_t, length int) bool {\n\t// [Go] This was inlined: !cache(A, B) -> unread < B && !update(A, B)\n\treturn parser.unread >= length || yaml_parser_update_buffer(parser, length)\n}\n\n// Advance the buffer pointer.\nfunc skip(parser *yaml_parser_t) {\n\tif !is_blank(parser.buffer, parser.buffer_pos) {\n\t\tparser.newlines = 0\n\t}\n\tparser.mark.index++\n\tparser.mark.column++\n\tparser.unread--\n\tparser.buffer_pos += width(parser.buffer[parser.buffer_pos])\n}\n\nfunc skip_line(parser *yaml_parser_t) {\n\tif is_crlf(parser.buffer, parser.buffer_pos) {\n\t\tparser.mark.index += 2\n\t\tparser.mark.column = 0\n\t\tparser.mark.line++\n\t\tparser.unread -= 2\n\t\tparser.buffer_pos += 2\n\t\tparser.newlines++\n\t} else if is_break(parser.buffer, parser.buffer_pos) {\n\t\tparser.mark.index++\n\t\tparser.mark.column = 0\n\t\tparser.mark.line++\n\t\tparser.unread--\n\t\tparser.buffer_pos += width(parser.buffer[parser.buffer_pos])\n\t\tparser.newlines++\n\t}\n}\n\n// Copy a character to a string buffer and advance pointers.\nfunc read(parser *yaml_parser_t, s []byte) []byte {\n\tif !is_blank(parser.buffer, parser.buffer_pos) {\n\t\tparser.newlines = 0\n\t}\n\tw := width(parser.buffer[parser.buffer_pos])\n\tif w == 0 {\n\t\tpanic(\"invalid character sequence\")\n\t}\n\tif len(s) == 0 {\n\t\ts = make([]byte, 0, 32)\n\t}\n\tif w == 1 && len(s)+w <= cap(s) {\n\t\ts = s[:len(s)+1]\n\t\ts[len(s)-1] = parser.buffer[parser.buffer_pos]\n\t\tparser.buffer_pos++\n\t} else {\n\t\ts = append(s, parser.buffer[parser.buffer_pos:parser.buffer_pos+w]...)\n\t\tparser.buffer_pos += w\n\t}\n\tparser.mark.index++\n\tparser.mark.column++\n\tparser.unread--\n\treturn s\n}\n\n// Copy a line break character to a string buffer and advance pointers.\nfunc read_line(parser *yaml_parser_t, s []byte) []byte {\n\tbuf := parser.buffer\n\tpos := parser.buffer_pos\n\tswitch {\n\tcase buf[pos] == '\\r' && buf[pos+1] == '\\n':\n\t\t// CR LF . LF\n\t\ts = append(s, '\\n')\n\t\tparser.buffer_pos += 2\n\t\tparser.mark.index++\n\t\tparser.unread--\n\tcase buf[pos] == '\\r' || buf[pos] == '\\n':\n\t\t// CR|LF . LF\n\t\ts = append(s, '\\n')\n\t\tparser.buffer_pos += 1\n\tcase buf[pos] == '\\xC2' && buf[pos+1] == '\\x85':\n\t\t// NEL . LF\n\t\ts = append(s, '\\n')\n\t\tparser.buffer_pos += 2\n\tcase buf[pos] == '\\xE2' && buf[pos+1] == '\\x80' && (buf[pos+2] == '\\xA8' || buf[pos+2] == '\\xA9'):\n\t\t// LS|PS . LS|PS\n\t\ts = append(s, buf[parser.buffer_pos:pos+3]...)\n\t\tparser.buffer_pos += 3\n\tdefault:\n\t\treturn s\n\t}\n\tparser.mark.index++\n\tparser.mark.column = 0\n\tparser.mark.line++\n\tparser.unread--\n\tparser.newlines++\n\treturn s\n}\n\n// Get the next token.\nfunc yaml_parser_scan(parser *yaml_parser_t, token *yaml_token_t) bool {\n\t// Erase the token object.\n\t*token = yaml_token_t{} // [Go] Is this necessary?\n\n\t// No tokens after STREAM-END or error.\n\tif parser.stream_end_produced || parser.error != yaml_NO_ERROR {\n\t\treturn true\n\t}\n\n\t// Ensure that the tokens queue contains enough tokens.\n\tif !parser.token_available {\n\t\tif !yaml_parser_fetch_more_tokens(parser) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Fetch the next token from the queue.\n\t*token = parser.tokens[parser.tokens_head]\n\tparser.tokens_head++\n\tparser.tokens_parsed++\n\tparser.token_available = false\n\n\tif token.typ == yaml_STREAM_END_TOKEN {\n\t\tparser.stream_end_produced = true\n\t}\n\treturn true\n}\n\n// Set the scanner error and return false.\nfunc yaml_parser_set_scanner_error(parser *yaml_parser_t, context string, context_mark yaml_mark_t, problem string) bool {\n\tparser.error = yaml_SCANNER_ERROR\n\tparser.context = context\n\tparser.context_mark = context_mark\n\tparser.problem = problem\n\tparser.problem_mark = parser.mark\n\treturn false\n}\n\nfunc yaml_parser_set_scanner_tag_error(parser *yaml_parser_t, directive bool, context_mark yaml_mark_t, problem string) bool {\n\tcontext := \"while parsing a tag\"\n\tif directive {\n\t\tcontext = \"while parsing a %TAG directive\"\n\t}\n\treturn yaml_parser_set_scanner_error(parser, context, context_mark, problem)\n}\n\nfunc trace(args ...interface{}) func() {\n\tpargs := append([]interface{}{\"+++\"}, args...)\n\tfmt.Println(pargs...)\n\tpargs = append([]interface{}{\"---\"}, args...)\n\treturn func() { fmt.Println(pargs...) }\n}\n\n// Ensure that the tokens queue contains at least one token which can be\n// returned to the Parser.\nfunc yaml_parser_fetch_more_tokens(parser *yaml_parser_t) bool {\n\t// While we need more tokens to fetch, do it.\n\tfor {\n\t\t// [Go] The comment parsing logic requires a lookahead of two tokens\n\t\t// so that foot comments may be parsed in time of associating them\n\t\t// with the tokens that are parsed before them, and also for line\n\t\t// comments to be transformed into head comments in some edge cases.\n\t\tif parser.tokens_head < len(parser.tokens)-2 {\n\t\t\t// If a potential simple key is at the head position, we need to fetch\n\t\t\t// the next token to disambiguate it.\n\t\t\thead_tok_idx, ok := parser.simple_keys_by_tok[parser.tokens_parsed]\n\t\t\tif !ok {\n\t\t\t\tbreak\n\t\t\t} else if valid, ok := yaml_simple_key_is_valid(parser, &parser.simple_keys[head_tok_idx]); !ok {\n\t\t\t\treturn false\n\t\t\t} else if !valid {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// Fetch the next token.\n\t\tif !yaml_parser_fetch_next_token(parser) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tparser.token_available = true\n\treturn true\n}\n\n// The dispatcher for token fetchers.\nfunc yaml_parser_fetch_next_token(parser *yaml_parser_t) (ok bool) {\n\t// Ensure that the buffer is initialized.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\t// Check if we just started scanning.  Fetch STREAM-START then.\n\tif !parser.stream_start_produced {\n\t\treturn yaml_parser_fetch_stream_start(parser)\n\t}\n\n\tscan_mark := parser.mark\n\n\t// Eat whitespaces and comments until we reach the next token.\n\tif !yaml_parser_scan_to_next_token(parser) {\n\t\treturn false\n\t}\n\n\t// [Go] While unrolling indents, transform the head comments of prior\n\t// indentation levels observed after scan_start into foot comments at\n\t// the respective indexes.\n\n\t// Check the indentation level against the current column.\n\tif !yaml_parser_unroll_indent(parser, parser.mark.column, scan_mark) {\n\t\treturn false\n\t}\n\n\t// Ensure that the buffer contains at least 4 characters.  4 is the length\n\t// of the longest indicators ('--- ' and '... ').\n\tif parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) {\n\t\treturn false\n\t}\n\n\t// Is it the end of the stream?\n\tif is_z(parser.buffer, parser.buffer_pos) {\n\t\treturn yaml_parser_fetch_stream_end(parser)\n\t}\n\n\t// Is it a directive?\n\tif parser.mark.column == 0 && parser.buffer[parser.buffer_pos] == '%' {\n\t\treturn yaml_parser_fetch_directive(parser)\n\t}\n\n\tbuf := parser.buffer\n\tpos := parser.buffer_pos\n\n\t// Is it the document start indicator?\n\tif parser.mark.column == 0 && buf[pos] == '-' && buf[pos+1] == '-' && buf[pos+2] == '-' && is_blankz(buf, pos+3) {\n\t\treturn yaml_parser_fetch_document_indicator(parser, yaml_DOCUMENT_START_TOKEN)\n\t}\n\n\t// Is it the document end indicator?\n\tif parser.mark.column == 0 && buf[pos] == '.' && buf[pos+1] == '.' && buf[pos+2] == '.' && is_blankz(buf, pos+3) {\n\t\treturn yaml_parser_fetch_document_indicator(parser, yaml_DOCUMENT_END_TOKEN)\n\t}\n\n\tcomment_mark := parser.mark\n\tif len(parser.tokens) > 0 && (parser.flow_level == 0 && buf[pos] == ':' || parser.flow_level > 0 && buf[pos] == ',') {\n\t\t// Associate any following comments with the prior token.\n\t\tcomment_mark = parser.tokens[len(parser.tokens)-1].start_mark\n\t}\n\tdefer func() {\n\t\tif !ok {\n\t\t\treturn\n\t\t}\n\t\tif len(parser.tokens) > 0 && parser.tokens[len(parser.tokens)-1].typ == yaml_BLOCK_ENTRY_TOKEN {\n\t\t\t// Sequence indicators alone have no line comments. It becomes\n\t\t\t// a head comment for whatever follows.\n\t\t\treturn\n\t\t}\n\t\tif !yaml_parser_scan_line_comment(parser, comment_mark) {\n\t\t\tok = false\n\t\t\treturn\n\t\t}\n\t}()\n\n\t// Is it the flow sequence start indicator?\n\tif buf[pos] == '[' {\n\t\treturn yaml_parser_fetch_flow_collection_start(parser, yaml_FLOW_SEQUENCE_START_TOKEN)\n\t}\n\n\t// Is it the flow mapping start indicator?\n\tif parser.buffer[parser.buffer_pos] == '{' {\n\t\treturn yaml_parser_fetch_flow_collection_start(parser, yaml_FLOW_MAPPING_START_TOKEN)\n\t}\n\n\t// Is it the flow sequence end indicator?\n\tif parser.buffer[parser.buffer_pos] == ']' {\n\t\treturn yaml_parser_fetch_flow_collection_end(parser,\n\t\t\tyaml_FLOW_SEQUENCE_END_TOKEN)\n\t}\n\n\t// Is it the flow mapping end indicator?\n\tif parser.buffer[parser.buffer_pos] == '}' {\n\t\treturn yaml_parser_fetch_flow_collection_end(parser,\n\t\t\tyaml_FLOW_MAPPING_END_TOKEN)\n\t}\n\n\t// Is it the flow entry indicator?\n\tif parser.buffer[parser.buffer_pos] == ',' {\n\t\treturn yaml_parser_fetch_flow_entry(parser)\n\t}\n\n\t// Is it the block entry indicator?\n\tif parser.buffer[parser.buffer_pos] == '-' && is_blankz(parser.buffer, parser.buffer_pos+1) {\n\t\treturn yaml_parser_fetch_block_entry(parser)\n\t}\n\n\t// Is it the key indicator?\n\tif parser.buffer[parser.buffer_pos] == '?' && (parser.flow_level > 0 || is_blankz(parser.buffer, parser.buffer_pos+1)) {\n\t\treturn yaml_parser_fetch_key(parser)\n\t}\n\n\t// Is it the value indicator?\n\tif parser.buffer[parser.buffer_pos] == ':' && (parser.flow_level > 0 || is_blankz(parser.buffer, parser.buffer_pos+1)) {\n\t\treturn yaml_parser_fetch_value(parser)\n\t}\n\n\t// Is it an alias?\n\tif parser.buffer[parser.buffer_pos] == '*' {\n\t\treturn yaml_parser_fetch_anchor(parser, yaml_ALIAS_TOKEN)\n\t}\n\n\t// Is it an anchor?\n\tif parser.buffer[parser.buffer_pos] == '&' {\n\t\treturn yaml_parser_fetch_anchor(parser, yaml_ANCHOR_TOKEN)\n\t}\n\n\t// Is it a tag?\n\tif parser.buffer[parser.buffer_pos] == '!' {\n\t\treturn yaml_parser_fetch_tag(parser)\n\t}\n\n\t// Is it a literal scalar?\n\tif parser.buffer[parser.buffer_pos] == '|' && parser.flow_level == 0 {\n\t\treturn yaml_parser_fetch_block_scalar(parser, true)\n\t}\n\n\t// Is it a folded scalar?\n\tif parser.buffer[parser.buffer_pos] == '>' && parser.flow_level == 0 {\n\t\treturn yaml_parser_fetch_block_scalar(parser, false)\n\t}\n\n\t// Is it a single-quoted scalar?\n\tif parser.buffer[parser.buffer_pos] == '\\'' {\n\t\treturn yaml_parser_fetch_flow_scalar(parser, true)\n\t}\n\n\t// Is it a double-quoted scalar?\n\tif parser.buffer[parser.buffer_pos] == '\"' {\n\t\treturn yaml_parser_fetch_flow_scalar(parser, false)\n\t}\n\n\t// Is it a plain scalar?\n\t//\n\t// A plain scalar may start with any non-blank characters except\n\t//\n\t//      '-', '?', ':', ',', '[', ']', '{', '}',\n\t//      '#', '&', '*', '!', '|', '>', '\\'', '\\\"',\n\t//      '%', '@', '`'.\n\t//\n\t// In the block context (and, for the '-' indicator, in the flow context\n\t// too), it may also start with the characters\n\t//\n\t//      '-', '?', ':'\n\t//\n\t// if it is followed by a non-space character.\n\t//\n\t// The last rule is more restrictive than the specification requires.\n\t// [Go] TODO Make this logic more reasonable.\n\t//switch parser.buffer[parser.buffer_pos] {\n\t//case '-', '?', ':', ',', '?', '-', ',', ':', ']', '[', '}', '{', '&', '#', '!', '*', '>', '|', '\"', '\\'', '@', '%', '-', '`':\n\t//}\n\tif !(is_blankz(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == '-' ||\n\t\tparser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == ':' ||\n\t\tparser.buffer[parser.buffer_pos] == ',' || parser.buffer[parser.buffer_pos] == '[' ||\n\t\tparser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '{' ||\n\t\tparser.buffer[parser.buffer_pos] == '}' || parser.buffer[parser.buffer_pos] == '#' ||\n\t\tparser.buffer[parser.buffer_pos] == '&' || parser.buffer[parser.buffer_pos] == '*' ||\n\t\tparser.buffer[parser.buffer_pos] == '!' || parser.buffer[parser.buffer_pos] == '|' ||\n\t\tparser.buffer[parser.buffer_pos] == '>' || parser.buffer[parser.buffer_pos] == '\\'' ||\n\t\tparser.buffer[parser.buffer_pos] == '\"' || parser.buffer[parser.buffer_pos] == '%' ||\n\t\tparser.buffer[parser.buffer_pos] == '@' || parser.buffer[parser.buffer_pos] == '`') ||\n\t\t(parser.buffer[parser.buffer_pos] == '-' && !is_blank(parser.buffer, parser.buffer_pos+1)) ||\n\t\t(parser.flow_level == 0 &&\n\t\t\t(parser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == ':') &&\n\t\t\t!is_blankz(parser.buffer, parser.buffer_pos+1)) {\n\t\treturn yaml_parser_fetch_plain_scalar(parser)\n\t}\n\n\t// If we don't determine the token type so far, it is an error.\n\treturn yaml_parser_set_scanner_error(parser,\n\t\t\"while scanning for the next token\", parser.mark,\n\t\t\"found character that cannot start any token\")\n}\n\nfunc yaml_simple_key_is_valid(parser *yaml_parser_t, simple_key *yaml_simple_key_t) (valid, ok bool) {\n\tif !simple_key.possible {\n\t\treturn false, true\n\t}\n\n\t// The 1.2 specification says:\n\t//\n\t//     \"If the ? indicator is omitted, parsing needs to see past the\n\t//     implicit key to recognize it as such. To limit the amount of\n\t//     lookahead required, the “:” indicator must appear at most 1024\n\t//     Unicode characters beyond the start of the key. In addition, the key\n\t//     is restricted to a single line.\"\n\t//\n\tif simple_key.mark.line < parser.mark.line || simple_key.mark.index+1024 < parser.mark.index {\n\t\t// Check if the potential simple key to be removed is required.\n\t\tif simple_key.required {\n\t\t\treturn false, yaml_parser_set_scanner_error(parser,\n\t\t\t\t\"while scanning a simple key\", simple_key.mark,\n\t\t\t\t\"could not find expected ':'\")\n\t\t}\n\t\tsimple_key.possible = false\n\t\treturn false, true\n\t}\n\treturn true, true\n}\n\n// Check if a simple key may start at the current position and add it if\n// needed.\nfunc yaml_parser_save_simple_key(parser *yaml_parser_t) bool {\n\t// A simple key is required at the current position if the scanner is in\n\t// the block context and the current column coincides with the indentation\n\t// level.\n\n\trequired := parser.flow_level == 0 && parser.indent == parser.mark.column\n\n\t//\n\t// If the current position may start a simple key, save it.\n\t//\n\tif parser.simple_key_allowed {\n\t\tsimple_key := yaml_simple_key_t{\n\t\t\tpossible:     true,\n\t\t\trequired:     required,\n\t\t\ttoken_number: parser.tokens_parsed + (len(parser.tokens) - parser.tokens_head),\n\t\t\tmark:         parser.mark,\n\t\t}\n\n\t\tif !yaml_parser_remove_simple_key(parser) {\n\t\t\treturn false\n\t\t}\n\t\tparser.simple_keys[len(parser.simple_keys)-1] = simple_key\n\t\tparser.simple_keys_by_tok[simple_key.token_number] = len(parser.simple_keys) - 1\n\t}\n\treturn true\n}\n\n// Remove a potential simple key at the current flow level.\nfunc yaml_parser_remove_simple_key(parser *yaml_parser_t) bool {\n\ti := len(parser.simple_keys) - 1\n\tif parser.simple_keys[i].possible {\n\t\t// If the key is required, it is an error.\n\t\tif parser.simple_keys[i].required {\n\t\t\treturn yaml_parser_set_scanner_error(parser,\n\t\t\t\t\"while scanning a simple key\", parser.simple_keys[i].mark,\n\t\t\t\t\"could not find expected ':'\")\n\t\t}\n\t\t// Remove the key from the stack.\n\t\tparser.simple_keys[i].possible = false\n\t\tdelete(parser.simple_keys_by_tok, parser.simple_keys[i].token_number)\n\t}\n\treturn true\n}\n\n// max_flow_level limits the flow_level\nconst max_flow_level = 10000\n\n// Increase the flow level and resize the simple key list if needed.\nfunc yaml_parser_increase_flow_level(parser *yaml_parser_t) bool {\n\t// Reset the simple key on the next level.\n\tparser.simple_keys = append(parser.simple_keys, yaml_simple_key_t{\n\t\tpossible:     false,\n\t\trequired:     false,\n\t\ttoken_number: parser.tokens_parsed + (len(parser.tokens) - parser.tokens_head),\n\t\tmark:         parser.mark,\n\t})\n\n\t// Increase the flow level.\n\tparser.flow_level++\n\tif parser.flow_level > max_flow_level {\n\t\treturn yaml_parser_set_scanner_error(parser,\n\t\t\t\"while increasing flow level\", parser.simple_keys[len(parser.simple_keys)-1].mark,\n\t\t\tfmt.Sprintf(\"exceeded max depth of %d\", max_flow_level))\n\t}\n\treturn true\n}\n\n// Decrease the flow level.\nfunc yaml_parser_decrease_flow_level(parser *yaml_parser_t) bool {\n\tif parser.flow_level > 0 {\n\t\tparser.flow_level--\n\t\tlast := len(parser.simple_keys) - 1\n\t\tdelete(parser.simple_keys_by_tok, parser.simple_keys[last].token_number)\n\t\tparser.simple_keys = parser.simple_keys[:last]\n\t}\n\treturn true\n}\n\n// max_indents limits the indents stack size\nconst max_indents = 10000\n\n// Push the current indentation level to the stack and set the new level\n// the current column is greater than the indentation level.  In this case,\n// append or insert the specified token into the token queue.\nfunc yaml_parser_roll_indent(parser *yaml_parser_t, column, number int, typ yaml_token_type_t, mark yaml_mark_t) bool {\n\t// In the flow context, do nothing.\n\tif parser.flow_level > 0 {\n\t\treturn true\n\t}\n\n\tif parser.indent < column {\n\t\t// Push the current indentation level to the stack and set the new\n\t\t// indentation level.\n\t\tparser.indents = append(parser.indents, parser.indent)\n\t\tparser.indent = column\n\t\tif len(parser.indents) > max_indents {\n\t\t\treturn yaml_parser_set_scanner_error(parser,\n\t\t\t\t\"while increasing indent level\", parser.simple_keys[len(parser.simple_keys)-1].mark,\n\t\t\t\tfmt.Sprintf(\"exceeded max depth of %d\", max_indents))\n\t\t}\n\n\t\t// Create a token and insert it into the queue.\n\t\ttoken := yaml_token_t{\n\t\t\ttyp:        typ,\n\t\t\tstart_mark: mark,\n\t\t\tend_mark:   mark,\n\t\t}\n\t\tif number > -1 {\n\t\t\tnumber -= parser.tokens_parsed\n\t\t}\n\t\tyaml_insert_token(parser, number, &token)\n\t}\n\treturn true\n}\n\n// Pop indentation levels from the indents stack until the current level\n// becomes less or equal to the column.  For each indentation level, append\n// the BLOCK-END token.\nfunc yaml_parser_unroll_indent(parser *yaml_parser_t, column int, scan_mark yaml_mark_t) bool {\n\t// In the flow context, do nothing.\n\tif parser.flow_level > 0 {\n\t\treturn true\n\t}\n\n\tblock_mark := scan_mark\n\tblock_mark.index--\n\n\t// Loop through the indentation levels in the stack.\n\tfor parser.indent > column {\n\n\t\t// [Go] Reposition the end token before potential following\n\t\t//      foot comments of parent blocks. For that, search\n\t\t//      backwards for recent comments that were at the same\n\t\t//      indent as the block that is ending now.\n\t\tstop_index := block_mark.index\n\t\tfor i := len(parser.comments) - 1; i >= 0; i-- {\n\t\t\tcomment := &parser.comments[i]\n\n\t\t\tif comment.end_mark.index < stop_index {\n\t\t\t\t// Don't go back beyond the start of the comment/whitespace scan, unless column < 0.\n\t\t\t\t// If requested indent column is < 0, then the document is over and everything else\n\t\t\t\t// is a foot anyway.\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif comment.start_mark.column == parser.indent+1 {\n\t\t\t\t// This is a good match. But maybe there's a former comment\n\t\t\t\t// at that same indent level, so keep searching.\n\t\t\t\tblock_mark = comment.start_mark\n\t\t\t}\n\n\t\t\t// While the end of the former comment matches with\n\t\t\t// the start of the following one, we know there's\n\t\t\t// nothing in between and scanning is still safe.\n\t\t\tstop_index = comment.scan_mark.index\n\t\t}\n\n\t\t// Create a token and append it to the queue.\n\t\ttoken := yaml_token_t{\n\t\t\ttyp:        yaml_BLOCK_END_TOKEN,\n\t\t\tstart_mark: block_mark,\n\t\t\tend_mark:   block_mark,\n\t\t}\n\t\tyaml_insert_token(parser, -1, &token)\n\n\t\t// Pop the indentation level.\n\t\tparser.indent = parser.indents[len(parser.indents)-1]\n\t\tparser.indents = parser.indents[:len(parser.indents)-1]\n\t}\n\treturn true\n}\n\n// Initialize the scanner and produce the STREAM-START token.\nfunc yaml_parser_fetch_stream_start(parser *yaml_parser_t) bool {\n\n\t// Set the initial indentation.\n\tparser.indent = -1\n\n\t// Initialize the simple key stack.\n\tparser.simple_keys = append(parser.simple_keys, yaml_simple_key_t{})\n\n\tparser.simple_keys_by_tok = make(map[int]int)\n\n\t// A simple key is allowed at the beginning of the stream.\n\tparser.simple_key_allowed = true\n\n\t// We have started.\n\tparser.stream_start_produced = true\n\n\t// Create the STREAM-START token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_STREAM_START_TOKEN,\n\t\tstart_mark: parser.mark,\n\t\tend_mark:   parser.mark,\n\t\tencoding:   parser.encoding,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the STREAM-END token and shut down the scanner.\nfunc yaml_parser_fetch_stream_end(parser *yaml_parser_t) bool {\n\n\t// Force new line.\n\tif parser.mark.column != 0 {\n\t\tparser.mark.column = 0\n\t\tparser.mark.line++\n\t}\n\n\t// Reset the indentation level.\n\tif !yaml_parser_unroll_indent(parser, -1, parser.mark) {\n\t\treturn false\n\t}\n\n\t// Reset simple keys.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\tparser.simple_key_allowed = false\n\n\t// Create the STREAM-END token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_STREAM_END_TOKEN,\n\t\tstart_mark: parser.mark,\n\t\tend_mark:   parser.mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce a VERSION-DIRECTIVE or TAG-DIRECTIVE token.\nfunc yaml_parser_fetch_directive(parser *yaml_parser_t) bool {\n\t// Reset the indentation level.\n\tif !yaml_parser_unroll_indent(parser, -1, parser.mark) {\n\t\treturn false\n\t}\n\n\t// Reset simple keys.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\tparser.simple_key_allowed = false\n\n\t// Create the YAML-DIRECTIVE or TAG-DIRECTIVE token.\n\ttoken := yaml_token_t{}\n\tif !yaml_parser_scan_directive(parser, &token) {\n\t\treturn false\n\t}\n\t// Append the token to the queue.\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the DOCUMENT-START or DOCUMENT-END token.\nfunc yaml_parser_fetch_document_indicator(parser *yaml_parser_t, typ yaml_token_type_t) bool {\n\t// Reset the indentation level.\n\tif !yaml_parser_unroll_indent(parser, -1, parser.mark) {\n\t\treturn false\n\t}\n\n\t// Reset simple keys.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\tparser.simple_key_allowed = false\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\n\tskip(parser)\n\tskip(parser)\n\tskip(parser)\n\n\tend_mark := parser.mark\n\n\t// Create the DOCUMENT-START or DOCUMENT-END token.\n\ttoken := yaml_token_t{\n\t\ttyp:        typ,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\t// Append the token to the queue.\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the FLOW-SEQUENCE-START or FLOW-MAPPING-START token.\nfunc yaml_parser_fetch_flow_collection_start(parser *yaml_parser_t, typ yaml_token_type_t) bool {\n\n\t// The indicators '[' and '{' may start a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Increase the flow level.\n\tif !yaml_parser_increase_flow_level(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key may follow the indicators '[' and '{'.\n\tparser.simple_key_allowed = true\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the FLOW-SEQUENCE-START of FLOW-MAPPING-START token.\n\ttoken := yaml_token_t{\n\t\ttyp:        typ,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\t// Append the token to the queue.\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the FLOW-SEQUENCE-END or FLOW-MAPPING-END token.\nfunc yaml_parser_fetch_flow_collection_end(parser *yaml_parser_t, typ yaml_token_type_t) bool {\n\t// Reset any potential simple key on the current flow level.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Decrease the flow level.\n\tif !yaml_parser_decrease_flow_level(parser) {\n\t\treturn false\n\t}\n\n\t// No simple keys after the indicators ']' and '}'.\n\tparser.simple_key_allowed = false\n\n\t// Consume the token.\n\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the FLOW-SEQUENCE-END of FLOW-MAPPING-END token.\n\ttoken := yaml_token_t{\n\t\ttyp:        typ,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\t// Append the token to the queue.\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the FLOW-ENTRY token.\nfunc yaml_parser_fetch_flow_entry(parser *yaml_parser_t) bool {\n\t// Reset any potential simple keys on the current flow level.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Simple keys are allowed after ','.\n\tparser.simple_key_allowed = true\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the FLOW-ENTRY token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_FLOW_ENTRY_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the BLOCK-ENTRY token.\nfunc yaml_parser_fetch_block_entry(parser *yaml_parser_t) bool {\n\t// Check if the scanner is in the block context.\n\tif parser.flow_level == 0 {\n\t\t// Check if we are allowed to start a new entry.\n\t\tif !parser.simple_key_allowed {\n\t\t\treturn yaml_parser_set_scanner_error(parser, \"\", parser.mark,\n\t\t\t\t\"block sequence entries are not allowed in this context\")\n\t\t}\n\t\t// Add the BLOCK-SEQUENCE-START token if needed.\n\t\tif !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_SEQUENCE_START_TOKEN, parser.mark) {\n\t\t\treturn false\n\t\t}\n\t} else {\n\t\t// It is an error for the '-' indicator to occur in the flow context,\n\t\t// but we let the Parser detect and report about it because the Parser\n\t\t// is able to point to the context.\n\t}\n\n\t// Reset any potential simple keys on the current flow level.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Simple keys are allowed after '-'.\n\tparser.simple_key_allowed = true\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the BLOCK-ENTRY token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_BLOCK_ENTRY_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the KEY token.\nfunc yaml_parser_fetch_key(parser *yaml_parser_t) bool {\n\n\t// In the block context, additional checks are required.\n\tif parser.flow_level == 0 {\n\t\t// Check if we are allowed to start a new key (not nessesary simple).\n\t\tif !parser.simple_key_allowed {\n\t\t\treturn yaml_parser_set_scanner_error(parser, \"\", parser.mark,\n\t\t\t\t\"mapping keys are not allowed in this context\")\n\t\t}\n\t\t// Add the BLOCK-MAPPING-START token if needed.\n\t\tif !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_MAPPING_START_TOKEN, parser.mark) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Reset any potential simple keys on the current flow level.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Simple keys are allowed after '?' in the block context.\n\tparser.simple_key_allowed = parser.flow_level == 0\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the KEY token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_KEY_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the VALUE token.\nfunc yaml_parser_fetch_value(parser *yaml_parser_t) bool {\n\n\tsimple_key := &parser.simple_keys[len(parser.simple_keys)-1]\n\n\t// Have we found a simple key?\n\tif valid, ok := yaml_simple_key_is_valid(parser, simple_key); !ok {\n\t\treturn false\n\n\t} else if valid {\n\n\t\t// Create the KEY token and insert it into the queue.\n\t\ttoken := yaml_token_t{\n\t\t\ttyp:        yaml_KEY_TOKEN,\n\t\t\tstart_mark: simple_key.mark,\n\t\t\tend_mark:   simple_key.mark,\n\t\t}\n\t\tyaml_insert_token(parser, simple_key.token_number-parser.tokens_parsed, &token)\n\n\t\t// In the block context, we may need to add the BLOCK-MAPPING-START token.\n\t\tif !yaml_parser_roll_indent(parser, simple_key.mark.column,\n\t\t\tsimple_key.token_number,\n\t\t\tyaml_BLOCK_MAPPING_START_TOKEN, simple_key.mark) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Remove the simple key.\n\t\tsimple_key.possible = false\n\t\tdelete(parser.simple_keys_by_tok, simple_key.token_number)\n\n\t\t// A simple key cannot follow another simple key.\n\t\tparser.simple_key_allowed = false\n\n\t} else {\n\t\t// The ':' indicator follows a complex key.\n\n\t\t// In the block context, extra checks are required.\n\t\tif parser.flow_level == 0 {\n\n\t\t\t// Check if we are allowed to start a complex value.\n\t\t\tif !parser.simple_key_allowed {\n\t\t\t\treturn yaml_parser_set_scanner_error(parser, \"\", parser.mark,\n\t\t\t\t\t\"mapping values are not allowed in this context\")\n\t\t\t}\n\n\t\t\t// Add the BLOCK-MAPPING-START token if needed.\n\t\t\tif !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_MAPPING_START_TOKEN, parser.mark) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Simple keys after ':' are allowed in the block context.\n\t\tparser.simple_key_allowed = parser.flow_level == 0\n\t}\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the VALUE token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_VALUE_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the ALIAS or ANCHOR token.\nfunc yaml_parser_fetch_anchor(parser *yaml_parser_t, typ yaml_token_type_t) bool {\n\t// An anchor or an alias could be a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key cannot follow an anchor or an alias.\n\tparser.simple_key_allowed = false\n\n\t// Create the ALIAS or ANCHOR token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_anchor(parser, &token, typ) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the TAG token.\nfunc yaml_parser_fetch_tag(parser *yaml_parser_t) bool {\n\t// A tag could be a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key cannot follow a tag.\n\tparser.simple_key_allowed = false\n\n\t// Create the TAG token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_tag(parser, &token) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the SCALAR(...,literal) or SCALAR(...,folded) tokens.\nfunc yaml_parser_fetch_block_scalar(parser *yaml_parser_t, literal bool) bool {\n\t// Remove any potential simple keys.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key may follow a block scalar.\n\tparser.simple_key_allowed = true\n\n\t// Create the SCALAR token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_block_scalar(parser, &token, literal) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the SCALAR(...,single-quoted) or SCALAR(...,double-quoted) tokens.\nfunc yaml_parser_fetch_flow_scalar(parser *yaml_parser_t, single bool) bool {\n\t// A plain scalar could be a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key cannot follow a flow scalar.\n\tparser.simple_key_allowed = false\n\n\t// Create the SCALAR token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_flow_scalar(parser, &token, single) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the SCALAR(...,plain) token.\nfunc yaml_parser_fetch_plain_scalar(parser *yaml_parser_t) bool {\n\t// A plain scalar could be a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key cannot follow a flow scalar.\n\tparser.simple_key_allowed = false\n\n\t// Create the SCALAR token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_plain_scalar(parser, &token) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Eat whitespaces and comments until the next token is found.\nfunc yaml_parser_scan_to_next_token(parser *yaml_parser_t) bool {\n\n\tscan_mark := parser.mark\n\n\t// Until the next token is not found.\n\tfor {\n\t\t// Allow the BOM mark to start a line.\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\tif parser.mark.column == 0 && is_bom(parser.buffer, parser.buffer_pos) {\n\t\t\tskip(parser)\n\t\t}\n\n\t\t// Eat whitespaces.\n\t\t// Tabs are allowed:\n\t\t//  - in the flow context\n\t\t//  - in the block context, but not at the beginning of the line or\n\t\t//  after '-', '?', or ':' (complex value).\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\n\t\tfor parser.buffer[parser.buffer_pos] == ' ' || ((parser.flow_level > 0 || !parser.simple_key_allowed) && parser.buffer[parser.buffer_pos] == '\\t') {\n\t\t\tskip(parser)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Check if we just had a line comment under a sequence entry that\n\t\t// looks more like a header to the following content. Similar to this:\n\t\t//\n\t\t// - # The comment\n\t\t//   - Some data\n\t\t//\n\t\t// If so, transform the line comment to a head comment and reposition.\n\t\tif len(parser.comments) > 0 && len(parser.tokens) > 1 {\n\t\t\ttokenA := parser.tokens[len(parser.tokens)-2]\n\t\t\ttokenB := parser.tokens[len(parser.tokens)-1]\n\t\t\tcomment := &parser.comments[len(parser.comments)-1]\n\t\t\tif tokenA.typ == yaml_BLOCK_SEQUENCE_START_TOKEN && tokenB.typ == yaml_BLOCK_ENTRY_TOKEN && len(comment.line) > 0 && !is_break(parser.buffer, parser.buffer_pos) {\n\t\t\t\t// If it was in the prior line, reposition so it becomes a\n\t\t\t\t// header of the follow up token. Otherwise, keep it in place\n\t\t\t\t// so it becomes a header of the former.\n\t\t\t\tcomment.head = comment.line\n\t\t\t\tcomment.line = nil\n\t\t\t\tif comment.start_mark.line == parser.mark.line-1 {\n\t\t\t\t\tcomment.token_mark = parser.mark\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Eat a comment until a line break.\n\t\tif parser.buffer[parser.buffer_pos] == '#' {\n\t\t\tif !yaml_parser_scan_comments(parser, scan_mark) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// If it is a line break, eat it.\n\t\tif is_break(parser.buffer, parser.buffer_pos) {\n\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tskip_line(parser)\n\n\t\t\t// In the block context, a new line may start a simple key.\n\t\t\tif parser.flow_level == 0 {\n\t\t\t\tparser.simple_key_allowed = true\n\t\t\t}\n\t\t} else {\n\t\t\tbreak // We have found a token.\n\t\t}\n\t}\n\n\treturn true\n}\n\n// Scan a YAML-DIRECTIVE or TAG-DIRECTIVE token.\n//\n// Scope:\n//      %YAML    1.1    # a comment \\n\n//      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n//      %TAG    !yaml!  tag:yaml.org,2002:  \\n\n//      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n//\nfunc yaml_parser_scan_directive(parser *yaml_parser_t, token *yaml_token_t) bool {\n\t// Eat '%'.\n\tstart_mark := parser.mark\n\tskip(parser)\n\n\t// Scan the directive name.\n\tvar name []byte\n\tif !yaml_parser_scan_directive_name(parser, start_mark, &name) {\n\t\treturn false\n\t}\n\n\t// Is it a YAML directive?\n\tif bytes.Equal(name, []byte(\"YAML\")) {\n\t\t// Scan the VERSION directive value.\n\t\tvar major, minor int8\n\t\tif !yaml_parser_scan_version_directive_value(parser, start_mark, &major, &minor) {\n\t\t\treturn false\n\t\t}\n\t\tend_mark := parser.mark\n\n\t\t// Create a VERSION-DIRECTIVE token.\n\t\t*token = yaml_token_t{\n\t\t\ttyp:        yaml_VERSION_DIRECTIVE_TOKEN,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tmajor:      major,\n\t\t\tminor:      minor,\n\t\t}\n\n\t\t// Is it a TAG directive?\n\t} else if bytes.Equal(name, []byte(\"TAG\")) {\n\t\t// Scan the TAG directive value.\n\t\tvar handle, prefix []byte\n\t\tif !yaml_parser_scan_tag_directive_value(parser, start_mark, &handle, &prefix) {\n\t\t\treturn false\n\t\t}\n\t\tend_mark := parser.mark\n\n\t\t// Create a TAG-DIRECTIVE token.\n\t\t*token = yaml_token_t{\n\t\t\ttyp:        yaml_TAG_DIRECTIVE_TOKEN,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tvalue:      handle,\n\t\t\tprefix:     prefix,\n\t\t}\n\n\t\t// Unknown directive.\n\t} else {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a directive\",\n\t\t\tstart_mark, \"found unknown directive name\")\n\t\treturn false\n\t}\n\n\t// Eat the rest of the line including any comments.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif parser.buffer[parser.buffer_pos] == '#' {\n\t\t// [Go] Discard this inline comment for the time being.\n\t\t//if !yaml_parser_scan_line_comment(parser, start_mark) {\n\t\t//\treturn false\n\t\t//}\n\t\tfor !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\t\tskip(parser)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check if we are at the end of the line.\n\tif !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a directive\",\n\t\t\tstart_mark, \"did not find expected comment or line break\")\n\t\treturn false\n\t}\n\n\t// Eat a line break.\n\tif is_break(parser.buffer, parser.buffer_pos) {\n\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\treturn false\n\t\t}\n\t\tskip_line(parser)\n\t}\n\n\treturn true\n}\n\n// Scan the directive name.\n//\n// Scope:\n//      %YAML   1.1     # a comment \\n\n//       ^^^^\n//      %TAG    !yaml!  tag:yaml.org,2002:  \\n\n//       ^^^\n//\nfunc yaml_parser_scan_directive_name(parser *yaml_parser_t, start_mark yaml_mark_t, name *[]byte) bool {\n\t// Consume the directive name.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\tvar s []byte\n\tfor is_alpha(parser.buffer, parser.buffer_pos) {\n\t\ts = read(parser, s)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Check if the name is empty.\n\tif len(s) == 0 {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a directive\",\n\t\t\tstart_mark, \"could not find expected directive name\")\n\t\treturn false\n\t}\n\n\t// Check for an blank character after the name.\n\tif !is_blankz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a directive\",\n\t\t\tstart_mark, \"found unexpected non-alphabetical character\")\n\t\treturn false\n\t}\n\t*name = s\n\treturn true\n}\n\n// Scan the value of VERSION-DIRECTIVE.\n//\n// Scope:\n//      %YAML   1.1     # a comment \\n\n//           ^^^^^^\nfunc yaml_parser_scan_version_directive_value(parser *yaml_parser_t, start_mark yaml_mark_t, major, minor *int8) bool {\n\t// Eat whitespaces.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Consume the major version number.\n\tif !yaml_parser_scan_version_directive_number(parser, start_mark, major) {\n\t\treturn false\n\t}\n\n\t// Eat '.'.\n\tif parser.buffer[parser.buffer_pos] != '.' {\n\t\treturn yaml_parser_set_scanner_error(parser, \"while scanning a %YAML directive\",\n\t\t\tstart_mark, \"did not find expected digit or '.' character\")\n\t}\n\n\tskip(parser)\n\n\t// Consume the minor version number.\n\tif !yaml_parser_scan_version_directive_number(parser, start_mark, minor) {\n\t\treturn false\n\t}\n\treturn true\n}\n\nconst max_number_length = 2\n\n// Scan the version number of VERSION-DIRECTIVE.\n//\n// Scope:\n//      %YAML   1.1     # a comment \\n\n//              ^\n//      %YAML   1.1     # a comment \\n\n//                ^\nfunc yaml_parser_scan_version_directive_number(parser *yaml_parser_t, start_mark yaml_mark_t, number *int8) bool {\n\n\t// Repeat while the next character is digit.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tvar value, length int8\n\tfor is_digit(parser.buffer, parser.buffer_pos) {\n\t\t// Check if the number is too long.\n\t\tlength++\n\t\tif length > max_number_length {\n\t\t\treturn yaml_parser_set_scanner_error(parser, \"while scanning a %YAML directive\",\n\t\t\t\tstart_mark, \"found extremely long version number\")\n\t\t}\n\t\tvalue = value*10 + int8(as_digit(parser.buffer, parser.buffer_pos))\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Check if the number was present.\n\tif length == 0 {\n\t\treturn yaml_parser_set_scanner_error(parser, \"while scanning a %YAML directive\",\n\t\t\tstart_mark, \"did not find expected version number\")\n\t}\n\t*number = value\n\treturn true\n}\n\n// Scan the value of a TAG-DIRECTIVE token.\n//\n// Scope:\n//      %TAG    !yaml!  tag:yaml.org,2002:  \\n\n//          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n//\nfunc yaml_parser_scan_tag_directive_value(parser *yaml_parser_t, start_mark yaml_mark_t, handle, prefix *[]byte) bool {\n\tvar handle_value, prefix_value []byte\n\n\t// Eat whitespaces.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Scan a handle.\n\tif !yaml_parser_scan_tag_handle(parser, true, start_mark, &handle_value) {\n\t\treturn false\n\t}\n\n\t// Expect a whitespace.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tif !is_blank(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a %TAG directive\",\n\t\t\tstart_mark, \"did not find expected whitespace\")\n\t\treturn false\n\t}\n\n\t// Eat whitespaces.\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Scan a prefix.\n\tif !yaml_parser_scan_tag_uri(parser, true, nil, start_mark, &prefix_value) {\n\t\treturn false\n\t}\n\n\t// Expect a whitespace or line break.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tif !is_blankz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a %TAG directive\",\n\t\t\tstart_mark, \"did not find expected whitespace or line break\")\n\t\treturn false\n\t}\n\n\t*handle = handle_value\n\t*prefix = prefix_value\n\treturn true\n}\n\nfunc yaml_parser_scan_anchor(parser *yaml_parser_t, token *yaml_token_t, typ yaml_token_type_t) bool {\n\tvar s []byte\n\n\t// Eat the indicator character.\n\tstart_mark := parser.mark\n\tskip(parser)\n\n\t// Consume the value.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\tfor is_alpha(parser.buffer, parser.buffer_pos) {\n\t\ts = read(parser, s)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tend_mark := parser.mark\n\n\t/*\n\t * Check if length of the anchor is greater than 0 and it is followed by\n\t * a whitespace character or one of the indicators:\n\t *\n\t *      '?', ':', ',', ']', '}', '%', '@', '`'.\n\t */\n\n\tif len(s) == 0 ||\n\t\t!(is_blankz(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == '?' ||\n\t\t\tparser.buffer[parser.buffer_pos] == ':' || parser.buffer[parser.buffer_pos] == ',' ||\n\t\t\tparser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '}' ||\n\t\t\tparser.buffer[parser.buffer_pos] == '%' || parser.buffer[parser.buffer_pos] == '@' ||\n\t\t\tparser.buffer[parser.buffer_pos] == '`') {\n\t\tcontext := \"while scanning an alias\"\n\t\tif typ == yaml_ANCHOR_TOKEN {\n\t\t\tcontext = \"while scanning an anchor\"\n\t\t}\n\t\tyaml_parser_set_scanner_error(parser, context, start_mark,\n\t\t\t\"did not find expected alphabetic or numeric character\")\n\t\treturn false\n\t}\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        typ,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      s,\n\t}\n\n\treturn true\n}\n\n/*\n * Scan a TAG token.\n */\n\nfunc yaml_parser_scan_tag(parser *yaml_parser_t, token *yaml_token_t) bool {\n\tvar handle, suffix []byte\n\n\tstart_mark := parser.mark\n\n\t// Check if the tag is in the canonical form.\n\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\treturn false\n\t}\n\n\tif parser.buffer[parser.buffer_pos+1] == '<' {\n\t\t// Keep the handle as ''\n\n\t\t// Eat '!<'\n\t\tskip(parser)\n\t\tskip(parser)\n\n\t\t// Consume the tag value.\n\t\tif !yaml_parser_scan_tag_uri(parser, false, nil, start_mark, &suffix) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Check for '>' and eat it.\n\t\tif parser.buffer[parser.buffer_pos] != '>' {\n\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a tag\",\n\t\t\t\tstart_mark, \"did not find the expected '>'\")\n\t\t\treturn false\n\t\t}\n\n\t\tskip(parser)\n\t} else {\n\t\t// The tag has either the '!suffix' or the '!handle!suffix' form.\n\n\t\t// First, try to scan a handle.\n\t\tif !yaml_parser_scan_tag_handle(parser, false, start_mark, &handle) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Check if it is, indeed, handle.\n\t\tif handle[0] == '!' && len(handle) > 1 && handle[len(handle)-1] == '!' {\n\t\t\t// Scan the suffix now.\n\t\t\tif !yaml_parser_scan_tag_uri(parser, false, nil, start_mark, &suffix) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t} else {\n\t\t\t// It wasn't a handle after all.  Scan the rest of the tag.\n\t\t\tif !yaml_parser_scan_tag_uri(parser, false, handle, start_mark, &suffix) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Set the handle to '!'.\n\t\t\thandle = []byte{'!'}\n\n\t\t\t// A special case: the '!' tag.  Set the handle to '' and the\n\t\t\t// suffix to '!'.\n\t\t\tif len(suffix) == 0 {\n\t\t\t\thandle, suffix = suffix, handle\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check the character which ends the tag.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tif !is_blankz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a tag\",\n\t\t\tstart_mark, \"did not find expected whitespace or line break\")\n\t\treturn false\n\t}\n\n\tend_mark := parser.mark\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        yaml_TAG_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      handle,\n\t\tsuffix:     suffix,\n\t}\n\treturn true\n}\n\n// Scan a tag handle.\nfunc yaml_parser_scan_tag_handle(parser *yaml_parser_t, directive bool, start_mark yaml_mark_t, handle *[]byte) bool {\n\t// Check the initial '!' character.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tif parser.buffer[parser.buffer_pos] != '!' {\n\t\tyaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\tstart_mark, \"did not find expected '!'\")\n\t\treturn false\n\t}\n\n\tvar s []byte\n\n\t// Copy the '!' character.\n\ts = read(parser, s)\n\n\t// Copy all subsequent alphabetical and numerical characters.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tfor is_alpha(parser.buffer, parser.buffer_pos) {\n\t\ts = read(parser, s)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Check if the trailing character is '!' and copy it.\n\tif parser.buffer[parser.buffer_pos] == '!' {\n\t\ts = read(parser, s)\n\t} else {\n\t\t// It's either the '!' tag or not really a tag handle.  If it's a %TAG\n\t\t// directive, it's an error.  If it's a tag token, it must be a part of URI.\n\t\tif directive && string(s) != \"!\" {\n\t\t\tyaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\t\tstart_mark, \"did not find expected '!'\")\n\t\t\treturn false\n\t\t}\n\t}\n\n\t*handle = s\n\treturn true\n}\n\n// Scan a tag.\nfunc yaml_parser_scan_tag_uri(parser *yaml_parser_t, directive bool, head []byte, start_mark yaml_mark_t, uri *[]byte) bool {\n\t//size_t length = head ? strlen((char *)head) : 0\n\tvar s []byte\n\thasTag := len(head) > 0\n\n\t// Copy the head if needed.\n\t//\n\t// Note that we don't copy the leading '!' character.\n\tif len(head) > 1 {\n\t\ts = append(s, head[1:]...)\n\t}\n\n\t// Scan the tag.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\t// The set of characters that may appear in URI is as follows:\n\t//\n\t//      '0'-'9', 'A'-'Z', 'a'-'z', '_', '-', ';', '/', '?', ':', '@', '&',\n\t//      '=', '+', '$', ',', '.', '!', '~', '*', '\\'', '(', ')', '[', ']',\n\t//      '%'.\n\t// [Go] TODO Convert this into more reasonable logic.\n\tfor is_alpha(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == ';' ||\n\t\tparser.buffer[parser.buffer_pos] == '/' || parser.buffer[parser.buffer_pos] == '?' ||\n\t\tparser.buffer[parser.buffer_pos] == ':' || parser.buffer[parser.buffer_pos] == '@' ||\n\t\tparser.buffer[parser.buffer_pos] == '&' || parser.buffer[parser.buffer_pos] == '=' ||\n\t\tparser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '$' ||\n\t\tparser.buffer[parser.buffer_pos] == ',' || parser.buffer[parser.buffer_pos] == '.' ||\n\t\tparser.buffer[parser.buffer_pos] == '!' || parser.buffer[parser.buffer_pos] == '~' ||\n\t\tparser.buffer[parser.buffer_pos] == '*' || parser.buffer[parser.buffer_pos] == '\\'' ||\n\t\tparser.buffer[parser.buffer_pos] == '(' || parser.buffer[parser.buffer_pos] == ')' ||\n\t\tparser.buffer[parser.buffer_pos] == '[' || parser.buffer[parser.buffer_pos] == ']' ||\n\t\tparser.buffer[parser.buffer_pos] == '%' {\n\t\t// Check if it is a URI-escape sequence.\n\t\tif parser.buffer[parser.buffer_pos] == '%' {\n\t\t\tif !yaml_parser_scan_uri_escapes(parser, directive, start_mark, &s) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t} else {\n\t\t\ts = read(parser, s)\n\t\t}\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\thasTag = true\n\t}\n\n\tif !hasTag {\n\t\tyaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\tstart_mark, \"did not find expected tag URI\")\n\t\treturn false\n\t}\n\t*uri = s\n\treturn true\n}\n\n// Decode an URI-escape sequence corresponding to a single UTF-8 character.\nfunc yaml_parser_scan_uri_escapes(parser *yaml_parser_t, directive bool, start_mark yaml_mark_t, s *[]byte) bool {\n\n\t// Decode the required number of characters.\n\tw := 1024\n\tfor w > 0 {\n\t\t// Check for a URI-escaped octet.\n\t\tif parser.unread < 3 && !yaml_parser_update_buffer(parser, 3) {\n\t\t\treturn false\n\t\t}\n\n\t\tif !(parser.buffer[parser.buffer_pos] == '%' &&\n\t\t\tis_hex(parser.buffer, parser.buffer_pos+1) &&\n\t\t\tis_hex(parser.buffer, parser.buffer_pos+2)) {\n\t\t\treturn yaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\t\tstart_mark, \"did not find URI escaped octet\")\n\t\t}\n\n\t\t// Get the octet.\n\t\toctet := byte((as_hex(parser.buffer, parser.buffer_pos+1) << 4) + as_hex(parser.buffer, parser.buffer_pos+2))\n\n\t\t// If it is the leading octet, determine the length of the UTF-8 sequence.\n\t\tif w == 1024 {\n\t\t\tw = width(octet)\n\t\t\tif w == 0 {\n\t\t\t\treturn yaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\t\t\tstart_mark, \"found an incorrect leading UTF-8 octet\")\n\t\t\t}\n\t\t} else {\n\t\t\t// Check if the trailing octet is correct.\n\t\t\tif octet&0xC0 != 0x80 {\n\t\t\t\treturn yaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\t\t\tstart_mark, \"found an incorrect trailing UTF-8 octet\")\n\t\t\t}\n\t\t}\n\n\t\t// Copy the octet and move the pointers.\n\t\t*s = append(*s, octet)\n\t\tskip(parser)\n\t\tskip(parser)\n\t\tskip(parser)\n\t\tw--\n\t}\n\treturn true\n}\n\n// Scan a block scalar.\nfunc yaml_parser_scan_block_scalar(parser *yaml_parser_t, token *yaml_token_t, literal bool) bool {\n\t// Eat the indicator '|' or '>'.\n\tstart_mark := parser.mark\n\tskip(parser)\n\n\t// Scan the additional block scalar indicators.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\t// Check for a chomping indicator.\n\tvar chomping, increment int\n\tif parser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '-' {\n\t\t// Set the chomping method and eat the indicator.\n\t\tif parser.buffer[parser.buffer_pos] == '+' {\n\t\t\tchomping = +1\n\t\t} else {\n\t\t\tchomping = -1\n\t\t}\n\t\tskip(parser)\n\n\t\t// Check for an indentation indicator.\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\tif is_digit(parser.buffer, parser.buffer_pos) {\n\t\t\t// Check that the indentation is greater than 0.\n\t\t\tif parser.buffer[parser.buffer_pos] == '0' {\n\t\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a block scalar\",\n\t\t\t\t\tstart_mark, \"found an indentation indicator equal to 0\")\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Get the indentation level and eat the indicator.\n\t\t\tincrement = as_digit(parser.buffer, parser.buffer_pos)\n\t\t\tskip(parser)\n\t\t}\n\n\t} else if is_digit(parser.buffer, parser.buffer_pos) {\n\t\t// Do the same as above, but in the opposite order.\n\n\t\tif parser.buffer[parser.buffer_pos] == '0' {\n\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a block scalar\",\n\t\t\t\tstart_mark, \"found an indentation indicator equal to 0\")\n\t\t\treturn false\n\t\t}\n\t\tincrement = as_digit(parser.buffer, parser.buffer_pos)\n\t\tskip(parser)\n\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\tif parser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '-' {\n\t\t\tif parser.buffer[parser.buffer_pos] == '+' {\n\t\t\t\tchomping = +1\n\t\t\t} else {\n\t\t\t\tchomping = -1\n\t\t\t}\n\t\t\tskip(parser)\n\t\t}\n\t}\n\n\t// Eat whitespaces and comments to the end of the line.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif parser.buffer[parser.buffer_pos] == '#' {\n\t\tif !yaml_parser_scan_line_comment(parser, start_mark) {\n\t\t\treturn false\n\t\t}\n\t\tfor !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\t\tskip(parser)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check if we are at the end of the line.\n\tif !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a block scalar\",\n\t\t\tstart_mark, \"did not find expected comment or line break\")\n\t\treturn false\n\t}\n\n\t// Eat a line break.\n\tif is_break(parser.buffer, parser.buffer_pos) {\n\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\treturn false\n\t\t}\n\t\tskip_line(parser)\n\t}\n\n\tend_mark := parser.mark\n\n\t// Set the indentation level if it was specified.\n\tvar indent int\n\tif increment > 0 {\n\t\tif parser.indent >= 0 {\n\t\t\tindent = parser.indent + increment\n\t\t} else {\n\t\t\tindent = increment\n\t\t}\n\t}\n\n\t// Scan the leading line breaks and determine the indentation level if needed.\n\tvar s, leading_break, trailing_breaks []byte\n\tif !yaml_parser_scan_block_scalar_breaks(parser, &indent, &trailing_breaks, start_mark, &end_mark) {\n\t\treturn false\n\t}\n\n\t// Scan the block scalar content.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tvar leading_blank, trailing_blank bool\n\tfor parser.mark.column == indent && !is_z(parser.buffer, parser.buffer_pos) {\n\t\t// We are at the beginning of a non-empty line.\n\n\t\t// Is it a trailing whitespace?\n\t\ttrailing_blank = is_blank(parser.buffer, parser.buffer_pos)\n\n\t\t// Check if we need to fold the leading line break.\n\t\tif !literal && !leading_blank && !trailing_blank && len(leading_break) > 0 && leading_break[0] == '\\n' {\n\t\t\t// Do we need to join the lines by space?\n\t\t\tif len(trailing_breaks) == 0 {\n\t\t\t\ts = append(s, ' ')\n\t\t\t}\n\t\t} else {\n\t\t\ts = append(s, leading_break...)\n\t\t}\n\t\tleading_break = leading_break[:0]\n\n\t\t// Append the remaining line breaks.\n\t\ts = append(s, trailing_breaks...)\n\t\ttrailing_breaks = trailing_breaks[:0]\n\n\t\t// Is it a leading whitespace?\n\t\tleading_blank = is_blank(parser.buffer, parser.buffer_pos)\n\n\t\t// Consume the current line.\n\t\tfor !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\t\ts = read(parser, s)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Consume the line break.\n\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\treturn false\n\t\t}\n\n\t\tleading_break = read_line(parser, leading_break)\n\n\t\t// Eat the following indentation spaces and line breaks.\n\t\tif !yaml_parser_scan_block_scalar_breaks(parser, &indent, &trailing_breaks, start_mark, &end_mark) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Chomp the tail.\n\tif chomping != -1 {\n\t\ts = append(s, leading_break...)\n\t}\n\tif chomping == 1 {\n\t\ts = append(s, trailing_breaks...)\n\t}\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        yaml_SCALAR_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      s,\n\t\tstyle:      yaml_LITERAL_SCALAR_STYLE,\n\t}\n\tif !literal {\n\t\ttoken.style = yaml_FOLDED_SCALAR_STYLE\n\t}\n\treturn true\n}\n\n// Scan indentation spaces and line breaks for a block scalar.  Determine the\n// indentation level if needed.\nfunc yaml_parser_scan_block_scalar_breaks(parser *yaml_parser_t, indent *int, breaks *[]byte, start_mark yaml_mark_t, end_mark *yaml_mark_t) bool {\n\t*end_mark = parser.mark\n\n\t// Eat the indentation spaces and line breaks.\n\tmax_indent := 0\n\tfor {\n\t\t// Eat the indentation spaces.\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\tfor (*indent == 0 || parser.mark.column < *indent) && is_space(parser.buffer, parser.buffer_pos) {\n\t\t\tskip(parser)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif parser.mark.column > max_indent {\n\t\t\tmax_indent = parser.mark.column\n\t\t}\n\n\t\t// Check for a tab character messing the indentation.\n\t\tif (*indent == 0 || parser.mark.column < *indent) && is_tab(parser.buffer, parser.buffer_pos) {\n\t\t\treturn yaml_parser_set_scanner_error(parser, \"while scanning a block scalar\",\n\t\t\t\tstart_mark, \"found a tab character where an indentation space is expected\")\n\t\t}\n\n\t\t// Have we found a non-empty line?\n\t\tif !is_break(parser.buffer, parser.buffer_pos) {\n\t\t\tbreak\n\t\t}\n\n\t\t// Consume the line break.\n\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\treturn false\n\t\t}\n\t\t// [Go] Should really be returning breaks instead.\n\t\t*breaks = read_line(parser, *breaks)\n\t\t*end_mark = parser.mark\n\t}\n\n\t// Determine the indentation level if needed.\n\tif *indent == 0 {\n\t\t*indent = max_indent\n\t\tif *indent < parser.indent+1 {\n\t\t\t*indent = parser.indent + 1\n\t\t}\n\t\tif *indent < 1 {\n\t\t\t*indent = 1\n\t\t}\n\t}\n\treturn true\n}\n\n// Scan a quoted scalar.\nfunc yaml_parser_scan_flow_scalar(parser *yaml_parser_t, token *yaml_token_t, single bool) bool {\n\t// Eat the left quote.\n\tstart_mark := parser.mark\n\tskip(parser)\n\n\t// Consume the content of the quoted scalar.\n\tvar s, leading_break, trailing_breaks, whitespaces []byte\n\tfor {\n\t\t// Check that there are no document indicators at the beginning of the line.\n\t\tif parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) {\n\t\t\treturn false\n\t\t}\n\n\t\tif parser.mark.column == 0 &&\n\t\t\t((parser.buffer[parser.buffer_pos+0] == '-' &&\n\t\t\t\tparser.buffer[parser.buffer_pos+1] == '-' &&\n\t\t\t\tparser.buffer[parser.buffer_pos+2] == '-') ||\n\t\t\t\t(parser.buffer[parser.buffer_pos+0] == '.' &&\n\t\t\t\t\tparser.buffer[parser.buffer_pos+1] == '.' &&\n\t\t\t\t\tparser.buffer[parser.buffer_pos+2] == '.')) &&\n\t\t\tis_blankz(parser.buffer, parser.buffer_pos+3) {\n\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a quoted scalar\",\n\t\t\t\tstart_mark, \"found unexpected document indicator\")\n\t\t\treturn false\n\t\t}\n\n\t\t// Check for EOF.\n\t\tif is_z(parser.buffer, parser.buffer_pos) {\n\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a quoted scalar\",\n\t\t\t\tstart_mark, \"found unexpected end of stream\")\n\t\t\treturn false\n\t\t}\n\n\t\t// Consume non-blank characters.\n\t\tleading_blanks := false\n\t\tfor !is_blankz(parser.buffer, parser.buffer_pos) {\n\t\t\tif single && parser.buffer[parser.buffer_pos] == '\\'' && parser.buffer[parser.buffer_pos+1] == '\\'' {\n\t\t\t\t// Is is an escaped single quote.\n\t\t\t\ts = append(s, '\\'')\n\t\t\t\tskip(parser)\n\t\t\t\tskip(parser)\n\n\t\t\t} else if single && parser.buffer[parser.buffer_pos] == '\\'' {\n\t\t\t\t// It is a right single quote.\n\t\t\t\tbreak\n\t\t\t} else if !single && parser.buffer[parser.buffer_pos] == '\"' {\n\t\t\t\t// It is a right double quote.\n\t\t\t\tbreak\n\n\t\t\t} else if !single && parser.buffer[parser.buffer_pos] == '\\\\' && is_break(parser.buffer, parser.buffer_pos+1) {\n\t\t\t\t// It is an escaped line break.\n\t\t\t\tif parser.unread < 3 && !yaml_parser_update_buffer(parser, 3) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tskip(parser)\n\t\t\t\tskip_line(parser)\n\t\t\t\tleading_blanks = true\n\t\t\t\tbreak\n\n\t\t\t} else if !single && parser.buffer[parser.buffer_pos] == '\\\\' {\n\t\t\t\t// It is an escape sequence.\n\t\t\t\tcode_length := 0\n\n\t\t\t\t// Check the escape character.\n\t\t\t\tswitch parser.buffer[parser.buffer_pos+1] {\n\t\t\t\tcase '0':\n\t\t\t\t\ts = append(s, 0)\n\t\t\t\tcase 'a':\n\t\t\t\t\ts = append(s, '\\x07')\n\t\t\t\tcase 'b':\n\t\t\t\t\ts = append(s, '\\x08')\n\t\t\t\tcase 't', '\\t':\n\t\t\t\t\ts = append(s, '\\x09')\n\t\t\t\tcase 'n':\n\t\t\t\t\ts = append(s, '\\x0A')\n\t\t\t\tcase 'v':\n\t\t\t\t\ts = append(s, '\\x0B')\n\t\t\t\tcase 'f':\n\t\t\t\t\ts = append(s, '\\x0C')\n\t\t\t\tcase 'r':\n\t\t\t\t\ts = append(s, '\\x0D')\n\t\t\t\tcase 'e':\n\t\t\t\t\ts = append(s, '\\x1B')\n\t\t\t\tcase ' ':\n\t\t\t\t\ts = append(s, '\\x20')\n\t\t\t\tcase '\"':\n\t\t\t\t\ts = append(s, '\"')\n\t\t\t\tcase '\\'':\n\t\t\t\t\ts = append(s, '\\'')\n\t\t\t\tcase '\\\\':\n\t\t\t\t\ts = append(s, '\\\\')\n\t\t\t\tcase 'N': // NEL (#x85)\n\t\t\t\t\ts = append(s, '\\xC2')\n\t\t\t\t\ts = append(s, '\\x85')\n\t\t\t\tcase '_': // #xA0\n\t\t\t\t\ts = append(s, '\\xC2')\n\t\t\t\t\ts = append(s, '\\xA0')\n\t\t\t\tcase 'L': // LS (#x2028)\n\t\t\t\t\ts = append(s, '\\xE2')\n\t\t\t\t\ts = append(s, '\\x80')\n\t\t\t\t\ts = append(s, '\\xA8')\n\t\t\t\tcase 'P': // PS (#x2029)\n\t\t\t\t\ts = append(s, '\\xE2')\n\t\t\t\t\ts = append(s, '\\x80')\n\t\t\t\t\ts = append(s, '\\xA9')\n\t\t\t\tcase 'x':\n\t\t\t\t\tcode_length = 2\n\t\t\t\tcase 'u':\n\t\t\t\t\tcode_length = 4\n\t\t\t\tcase 'U':\n\t\t\t\t\tcode_length = 8\n\t\t\t\tdefault:\n\t\t\t\t\tyaml_parser_set_scanner_error(parser, \"while parsing a quoted scalar\",\n\t\t\t\t\t\tstart_mark, \"found unknown escape character\")\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\tskip(parser)\n\t\t\t\tskip(parser)\n\n\t\t\t\t// Consume an arbitrary escape code.\n\t\t\t\tif code_length > 0 {\n\t\t\t\t\tvar value int\n\n\t\t\t\t\t// Scan the character value.\n\t\t\t\t\tif parser.unread < code_length && !yaml_parser_update_buffer(parser, code_length) {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t\tfor k := 0; k < code_length; k++ {\n\t\t\t\t\t\tif !is_hex(parser.buffer, parser.buffer_pos+k) {\n\t\t\t\t\t\t\tyaml_parser_set_scanner_error(parser, \"while parsing a quoted scalar\",\n\t\t\t\t\t\t\t\tstart_mark, \"did not find expected hexdecimal number\")\n\t\t\t\t\t\t\treturn false\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalue = (value << 4) + as_hex(parser.buffer, parser.buffer_pos+k)\n\t\t\t\t\t}\n\n\t\t\t\t\t// Check the value and write the character.\n\t\t\t\t\tif (value >= 0xD800 && value <= 0xDFFF) || value > 0x10FFFF {\n\t\t\t\t\t\tyaml_parser_set_scanner_error(parser, \"while parsing a quoted scalar\",\n\t\t\t\t\t\t\tstart_mark, \"found invalid Unicode character escape code\")\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t\tif value <= 0x7F {\n\t\t\t\t\t\ts = append(s, byte(value))\n\t\t\t\t\t} else if value <= 0x7FF {\n\t\t\t\t\t\ts = append(s, byte(0xC0+(value>>6)))\n\t\t\t\t\t\ts = append(s, byte(0x80+(value&0x3F)))\n\t\t\t\t\t} else if value <= 0xFFFF {\n\t\t\t\t\t\ts = append(s, byte(0xE0+(value>>12)))\n\t\t\t\t\t\ts = append(s, byte(0x80+((value>>6)&0x3F)))\n\t\t\t\t\t\ts = append(s, byte(0x80+(value&0x3F)))\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts = append(s, byte(0xF0+(value>>18)))\n\t\t\t\t\t\ts = append(s, byte(0x80+((value>>12)&0x3F)))\n\t\t\t\t\t\ts = append(s, byte(0x80+((value>>6)&0x3F)))\n\t\t\t\t\t\ts = append(s, byte(0x80+(value&0x3F)))\n\t\t\t\t\t}\n\n\t\t\t\t\t// Advance the pointer.\n\t\t\t\t\tfor k := 0; k < code_length; k++ {\n\t\t\t\t\t\tskip(parser)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// It is a non-escaped non-blank character.\n\t\t\t\ts = read(parser, s)\n\t\t\t}\n\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Check if we are at the end of the scalar.\n\t\tif single {\n\t\t\tif parser.buffer[parser.buffer_pos] == '\\'' {\n\t\t\t\tbreak\n\t\t\t}\n\t\t} else {\n\t\t\tif parser.buffer[parser.buffer_pos] == '\"' {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\t// Consume blank characters.\n\t\tfor is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos) {\n\t\t\tif is_blank(parser.buffer, parser.buffer_pos) {\n\t\t\t\t// Consume a space or a tab character.\n\t\t\t\tif !leading_blanks {\n\t\t\t\t\twhitespaces = read(parser, whitespaces)\n\t\t\t\t} else {\n\t\t\t\t\tskip(parser)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\t// Check if it is a first line break.\n\t\t\t\tif !leading_blanks {\n\t\t\t\t\twhitespaces = whitespaces[:0]\n\t\t\t\t\tleading_break = read_line(parser, leading_break)\n\t\t\t\t\tleading_blanks = true\n\t\t\t\t} else {\n\t\t\t\t\ttrailing_breaks = read_line(parser, trailing_breaks)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Join the whitespaces or fold line breaks.\n\t\tif leading_blanks {\n\t\t\t// Do we need to fold line breaks?\n\t\t\tif len(leading_break) > 0 && leading_break[0] == '\\n' {\n\t\t\t\tif len(trailing_breaks) == 0 {\n\t\t\t\t\ts = append(s, ' ')\n\t\t\t\t} else {\n\t\t\t\t\ts = append(s, trailing_breaks...)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ts = append(s, leading_break...)\n\t\t\t\ts = append(s, trailing_breaks...)\n\t\t\t}\n\t\t\ttrailing_breaks = trailing_breaks[:0]\n\t\t\tleading_break = leading_break[:0]\n\t\t} else {\n\t\t\ts = append(s, whitespaces...)\n\t\t\twhitespaces = whitespaces[:0]\n\t\t}\n\t}\n\n\t// Eat the right quote.\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        yaml_SCALAR_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      s,\n\t\tstyle:      yaml_SINGLE_QUOTED_SCALAR_STYLE,\n\t}\n\tif !single {\n\t\ttoken.style = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t}\n\treturn true\n}\n\n// Scan a plain scalar.\nfunc yaml_parser_scan_plain_scalar(parser *yaml_parser_t, token *yaml_token_t) bool {\n\n\tvar s, leading_break, trailing_breaks, whitespaces []byte\n\tvar leading_blanks bool\n\tvar indent = parser.indent + 1\n\n\tstart_mark := parser.mark\n\tend_mark := parser.mark\n\n\t// Consume the content of the plain scalar.\n\tfor {\n\t\t// Check for a document indicator.\n\t\tif parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) {\n\t\t\treturn false\n\t\t}\n\t\tif parser.mark.column == 0 &&\n\t\t\t((parser.buffer[parser.buffer_pos+0] == '-' &&\n\t\t\t\tparser.buffer[parser.buffer_pos+1] == '-' &&\n\t\t\t\tparser.buffer[parser.buffer_pos+2] == '-') ||\n\t\t\t\t(parser.buffer[parser.buffer_pos+0] == '.' &&\n\t\t\t\t\tparser.buffer[parser.buffer_pos+1] == '.' &&\n\t\t\t\t\tparser.buffer[parser.buffer_pos+2] == '.')) &&\n\t\t\tis_blankz(parser.buffer, parser.buffer_pos+3) {\n\t\t\tbreak\n\t\t}\n\n\t\t// Check for a comment.\n\t\tif parser.buffer[parser.buffer_pos] == '#' {\n\t\t\tbreak\n\t\t}\n\n\t\t// Consume non-blank characters.\n\t\tfor !is_blankz(parser.buffer, parser.buffer_pos) {\n\n\t\t\t// Check for indicators that may end a plain scalar.\n\t\t\tif (parser.buffer[parser.buffer_pos] == ':' && is_blankz(parser.buffer, parser.buffer_pos+1)) ||\n\t\t\t\t(parser.flow_level > 0 &&\n\t\t\t\t\t(parser.buffer[parser.buffer_pos] == ',' ||\n\t\t\t\t\t\tparser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == '[' ||\n\t\t\t\t\t\tparser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '{' ||\n\t\t\t\t\t\tparser.buffer[parser.buffer_pos] == '}')) {\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\t// Check if we need to join whitespaces and breaks.\n\t\t\tif leading_blanks || len(whitespaces) > 0 {\n\t\t\t\tif leading_blanks {\n\t\t\t\t\t// Do we need to fold line breaks?\n\t\t\t\t\tif leading_break[0] == '\\n' {\n\t\t\t\t\t\tif len(trailing_breaks) == 0 {\n\t\t\t\t\t\t\ts = append(s, ' ')\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts = append(s, trailing_breaks...)\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts = append(s, leading_break...)\n\t\t\t\t\t\ts = append(s, trailing_breaks...)\n\t\t\t\t\t}\n\t\t\t\t\ttrailing_breaks = trailing_breaks[:0]\n\t\t\t\t\tleading_break = leading_break[:0]\n\t\t\t\t\tleading_blanks = false\n\t\t\t\t} else {\n\t\t\t\t\ts = append(s, whitespaces...)\n\t\t\t\t\twhitespaces = whitespaces[:0]\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Copy the character.\n\t\t\ts = read(parser, s)\n\n\t\t\tend_mark = parser.mark\n\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Is it the end?\n\t\tif !(is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos)) {\n\t\t\tbreak\n\t\t}\n\n\t\t// Consume blank characters.\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\n\t\tfor is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos) {\n\t\t\tif is_blank(parser.buffer, parser.buffer_pos) {\n\n\t\t\t\t// Check for tab characters that abuse indentation.\n\t\t\t\tif leading_blanks && parser.mark.column < indent && is_tab(parser.buffer, parser.buffer_pos) {\n\t\t\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a plain scalar\",\n\t\t\t\t\t\tstart_mark, \"found a tab character that violates indentation\")\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\t// Consume a space or a tab character.\n\t\t\t\tif !leading_blanks {\n\t\t\t\t\twhitespaces = read(parser, whitespaces)\n\t\t\t\t} else {\n\t\t\t\t\tskip(parser)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\t// Check if it is a first line break.\n\t\t\t\tif !leading_blanks {\n\t\t\t\t\twhitespaces = whitespaces[:0]\n\t\t\t\t\tleading_break = read_line(parser, leading_break)\n\t\t\t\t\tleading_blanks = true\n\t\t\t\t} else {\n\t\t\t\t\ttrailing_breaks = read_line(parser, trailing_breaks)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Check indentation level.\n\t\tif parser.flow_level == 0 && parser.mark.column < indent {\n\t\t\tbreak\n\t\t}\n\t}\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        yaml_SCALAR_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      s,\n\t\tstyle:      yaml_PLAIN_SCALAR_STYLE,\n\t}\n\n\t// Note that we change the 'simple_key_allowed' flag.\n\tif leading_blanks {\n\t\tparser.simple_key_allowed = true\n\t}\n\treturn true\n}\n\nfunc yaml_parser_scan_line_comment(parser *yaml_parser_t, token_mark yaml_mark_t) bool {\n\tif parser.newlines > 0 {\n\t\treturn true\n\t}\n\n\tvar start_mark yaml_mark_t\n\tvar text []byte\n\n\tfor peek := 0; peek < 512; peek++ {\n\t\tif parser.unread < peek+1 && !yaml_parser_update_buffer(parser, peek+1) {\n\t\t\tbreak\n\t\t}\n\t\tif is_blank(parser.buffer, parser.buffer_pos+peek) {\n\t\t\tcontinue\n\t\t}\n\t\tif parser.buffer[parser.buffer_pos+peek] == '#' {\n\t\t\tseen := parser.mark.index+peek\n\t\t\tfor {\n\t\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif is_breakz(parser.buffer, parser.buffer_pos) {\n\t\t\t\t\tif parser.mark.index >= seen {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t\tskip_line(parser)\n\t\t\t\t} else if parser.mark.index >= seen {\n\t\t\t\t\tif len(text) == 0 {\n\t\t\t\t\t\tstart_mark = parser.mark\n\t\t\t\t\t}\n\t\t\t\t\ttext = read(parser, text)\n\t\t\t\t} else {\n\t\t\t\t\tskip(parser)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tbreak\n\t}\n\tif len(text) > 0 {\n\t\tparser.comments = append(parser.comments, yaml_comment_t{\n\t\t\ttoken_mark: token_mark,\n\t\t\tstart_mark: start_mark,\n\t\t\tline: text,\n\t\t})\n\t}\n\treturn true\n}\n\nfunc yaml_parser_scan_comments(parser *yaml_parser_t, scan_mark yaml_mark_t) bool {\n\ttoken := parser.tokens[len(parser.tokens)-1]\n\n\tif token.typ == yaml_FLOW_ENTRY_TOKEN && len(parser.tokens) > 1 {\n\t\ttoken = parser.tokens[len(parser.tokens)-2]\n\t}\n\n\tvar token_mark = token.start_mark\n\tvar start_mark yaml_mark_t\n\tvar next_indent = parser.indent\n\tif next_indent < 0 {\n\t\tnext_indent = 0\n\t}\n\n\tvar recent_empty = false\n\tvar first_empty = parser.newlines <= 1\n\n\tvar line = parser.mark.line\n\tvar column = parser.mark.column\n\n\tvar text []byte\n\n\t// The foot line is the place where a comment must start to\n\t// still be considered as a foot of the prior content.\n\t// If there's some content in the currently parsed line, then\n\t// the foot is the line below it.\n\tvar foot_line = -1\n\tif scan_mark.line > 0 {\n\t\tfoot_line = parser.mark.line-parser.newlines+1\n\t\tif parser.newlines == 0 && parser.mark.column > 1 {\n\t\t\tfoot_line++\n\t\t}\n\t}\n\n\tvar peek = 0\n\tfor ; peek < 512; peek++ {\n\t\tif parser.unread < peek+1 && !yaml_parser_update_buffer(parser, peek+1) {\n\t\t\tbreak\n\t\t}\n\t\tcolumn++\n\t\tif is_blank(parser.buffer, parser.buffer_pos+peek) {\n\t\t\tcontinue\n\t\t}\n\t\tc := parser.buffer[parser.buffer_pos+peek]\n\t\tvar close_flow = parser.flow_level > 0 && (c == ']' || c == '}')\n\t\tif close_flow || is_breakz(parser.buffer, parser.buffer_pos+peek) {\n\t\t\t// Got line break or terminator.\n\t\t\tif close_flow || !recent_empty {\n\t\t\t\tif close_flow || first_empty && (start_mark.line == foot_line && token.typ != yaml_VALUE_TOKEN || start_mark.column-1 < next_indent) {\n\t\t\t\t\t// This is the first empty line and there were no empty lines before,\n\t\t\t\t\t// so this initial part of the comment is a foot of the prior token\n\t\t\t\t\t// instead of being a head for the following one. Split it up.\n\t\t\t\t\t// Alternatively, this might also be the last comment inside a flow\n\t\t\t\t\t// scope, so it must be a footer.\n\t\t\t\t\tif len(text) > 0 {\n\t\t\t\t\t\tif start_mark.column-1 < next_indent {\n\t\t\t\t\t\t\t// If dedented it's unrelated to the prior token.\n\t\t\t\t\t\t\ttoken_mark = start_mark\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparser.comments = append(parser.comments, yaml_comment_t{\n\t\t\t\t\t\t\tscan_mark:  scan_mark,\n\t\t\t\t\t\t\ttoken_mark: token_mark,\n\t\t\t\t\t\t\tstart_mark: start_mark,\n\t\t\t\t\t\t\tend_mark:   yaml_mark_t{parser.mark.index + peek, line, column},\n\t\t\t\t\t\t\tfoot:       text,\n\t\t\t\t\t\t})\n\t\t\t\t\t\tscan_mark = yaml_mark_t{parser.mark.index + peek, line, column}\n\t\t\t\t\t\ttoken_mark = scan_mark\n\t\t\t\t\t\ttext = nil\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif len(text) > 0 && parser.buffer[parser.buffer_pos+peek] != 0 {\n\t\t\t\t\t\ttext = append(text, '\\n')\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !is_break(parser.buffer, parser.buffer_pos+peek) {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tfirst_empty = false\n\t\t\trecent_empty = true\n\t\t\tcolumn = 0\n\t\t\tline++\n\t\t\tcontinue\n\t\t}\n\n\t\tif len(text) > 0 && (close_flow || column-1 < next_indent && column != start_mark.column) {\n\t\t\t// The comment at the different indentation is a foot of the\n\t\t\t// preceding data rather than a head of the upcoming one.\n\t\t\tparser.comments = append(parser.comments, yaml_comment_t{\n\t\t\t\tscan_mark:  scan_mark,\n\t\t\t\ttoken_mark: token_mark,\n\t\t\t\tstart_mark: start_mark,\n\t\t\t\tend_mark:   yaml_mark_t{parser.mark.index + peek, line, column},\n\t\t\t\tfoot:       text,\n\t\t\t})\n\t\t\tscan_mark = yaml_mark_t{parser.mark.index + peek, line, column}\n\t\t\ttoken_mark = scan_mark\n\t\t\ttext = nil\n\t\t}\n\n\t\tif parser.buffer[parser.buffer_pos+peek] != '#' {\n\t\t\tbreak\n\t\t}\n\n\t\tif len(text) == 0 {\n\t\t\tstart_mark = yaml_mark_t{parser.mark.index + peek, line, column}\n\t\t} else {\n\t\t\ttext = append(text, '\\n')\n\t\t}\n\n\t\trecent_empty = false\n\n\t\t// Consume until after the consumed comment line.\n\t\tseen := parser.mark.index+peek\n\t\tfor {\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif is_breakz(parser.buffer, parser.buffer_pos) {\n\t\t\t\tif parser.mark.index >= seen {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tskip_line(parser)\n\t\t\t} else if parser.mark.index >= seen {\n\t\t\t\ttext = read(parser, text)\n\t\t\t} else {\n\t\t\t\tskip(parser)\n\t\t\t}\n\t\t}\n\n\t\tpeek = 0\n\t\tcolumn = 0\n\t\tline = parser.mark.line\n\t\tnext_indent = parser.indent\n\t\tif next_indent < 0 {\n\t\t\tnext_indent = 0\n\t\t}\n\t}\n\n\tif len(text) > 0 {\n\t\tparser.comments = append(parser.comments, yaml_comment_t{\n\t\t\tscan_mark:  scan_mark,\n\t\t\ttoken_mark: start_mark,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   yaml_mark_t{parser.mark.index + peek - 1, line, column},\n\t\t\thead:       text,\n\t\t})\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/sorter.go",
    "content": "//\n// Copyright (c) 2011-2019 Canonical Ltd\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage yaml\n\nimport (\n\t\"reflect\"\n\t\"unicode\"\n)\n\ntype keyList []reflect.Value\n\nfunc (l keyList) Len() int      { return len(l) }\nfunc (l keyList) Swap(i, j int) { l[i], l[j] = l[j], l[i] }\nfunc (l keyList) Less(i, j int) bool {\n\ta := l[i]\n\tb := l[j]\n\tak := a.Kind()\n\tbk := b.Kind()\n\tfor (ak == reflect.Interface || ak == reflect.Ptr) && !a.IsNil() {\n\t\ta = a.Elem()\n\t\tak = a.Kind()\n\t}\n\tfor (bk == reflect.Interface || bk == reflect.Ptr) && !b.IsNil() {\n\t\tb = b.Elem()\n\t\tbk = b.Kind()\n\t}\n\taf, aok := keyFloat(a)\n\tbf, bok := keyFloat(b)\n\tif aok && bok {\n\t\tif af != bf {\n\t\t\treturn af < bf\n\t\t}\n\t\tif ak != bk {\n\t\t\treturn ak < bk\n\t\t}\n\t\treturn numLess(a, b)\n\t}\n\tif ak != reflect.String || bk != reflect.String {\n\t\treturn ak < bk\n\t}\n\tar, br := []rune(a.String()), []rune(b.String())\n\tdigits := false\n\tfor i := 0; i < len(ar) && i < len(br); i++ {\n\t\tif ar[i] == br[i] {\n\t\t\tdigits = unicode.IsDigit(ar[i])\n\t\t\tcontinue\n\t\t}\n\t\tal := unicode.IsLetter(ar[i])\n\t\tbl := unicode.IsLetter(br[i])\n\t\tif al && bl {\n\t\t\treturn ar[i] < br[i]\n\t\t}\n\t\tif al || bl {\n\t\t\tif digits {\n\t\t\t\treturn al\n\t\t\t} else {\n\t\t\t\treturn bl\n\t\t\t}\n\t\t}\n\t\tvar ai, bi int\n\t\tvar an, bn int64\n\t\tif ar[i] == '0' || br[i] == '0' {\n\t\t\tfor j := i - 1; j >= 0 && unicode.IsDigit(ar[j]); j-- {\n\t\t\t\tif ar[j] != '0' {\n\t\t\t\t\tan = 1\n\t\t\t\t\tbn = 1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor ai = i; ai < len(ar) && unicode.IsDigit(ar[ai]); ai++ {\n\t\t\tan = an*10 + int64(ar[ai]-'0')\n\t\t}\n\t\tfor bi = i; bi < len(br) && unicode.IsDigit(br[bi]); bi++ {\n\t\t\tbn = bn*10 + int64(br[bi]-'0')\n\t\t}\n\t\tif an != bn {\n\t\t\treturn an < bn\n\t\t}\n\t\tif ai != bi {\n\t\t\treturn ai < bi\n\t\t}\n\t\treturn ar[i] < br[i]\n\t}\n\treturn len(ar) < len(br)\n}\n\n// keyFloat returns a float value for v if it is a number/bool\n// and whether it is a number/bool or not.\nfunc keyFloat(v reflect.Value) (f float64, ok bool) {\n\tswitch v.Kind() {\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn float64(v.Int()), true\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn v.Float(), true\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn float64(v.Uint()), true\n\tcase reflect.Bool:\n\t\tif v.Bool() {\n\t\t\treturn 1, true\n\t\t}\n\t\treturn 0, true\n\t}\n\treturn 0, false\n}\n\n// numLess returns whether a < b.\n// a and b must necessarily have the same kind.\nfunc numLess(a, b reflect.Value) bool {\n\tswitch a.Kind() {\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn a.Int() < b.Int()\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn a.Float() < b.Float()\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn a.Uint() < b.Uint()\n\tcase reflect.Bool:\n\t\treturn !a.Bool() && b.Bool()\n\t}\n\tpanic(\"not a number\")\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/writerc.go",
    "content": "// \n// Copyright (c) 2011-2019 Canonical Ltd\n// Copyright (c) 2006-2010 Kirill Simonov\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n// of the Software, and to permit persons to whom the Software is furnished to do\n// so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\npackage yaml\n\n// Set the writer error and return false.\nfunc yaml_emitter_set_writer_error(emitter *yaml_emitter_t, problem string) bool {\n\temitter.error = yaml_WRITER_ERROR\n\temitter.problem = problem\n\treturn false\n}\n\n// Flush the output buffer.\nfunc yaml_emitter_flush(emitter *yaml_emitter_t) bool {\n\tif emitter.write_handler == nil {\n\t\tpanic(\"write handler not set\")\n\t}\n\n\t// Check if the buffer is empty.\n\tif emitter.buffer_pos == 0 {\n\t\treturn true\n\t}\n\n\tif err := emitter.write_handler(emitter, emitter.buffer[:emitter.buffer_pos]); err != nil {\n\t\treturn yaml_emitter_set_writer_error(emitter, \"write error: \"+err.Error())\n\t}\n\temitter.buffer_pos = 0\n\treturn true\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/yaml.go",
    "content": "//\n// Copyright (c) 2011-2019 Canonical Ltd\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Package yaml implements YAML support for the Go language.\n//\n// Source code and other details for the project are available at GitHub:\n//\n//   https://github.com/go-yaml/yaml\n//\npackage yaml\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n\t\"strings\"\n\t\"sync\"\n\t\"unicode/utf8\"\n)\n\n// The Unmarshaler interface may be implemented by types to customize their\n// behavior when being unmarshaled from a YAML document.\ntype Unmarshaler interface {\n\tUnmarshalYAML(value *Node) error\n}\n\ntype obsoleteUnmarshaler interface {\n\tUnmarshalYAML(unmarshal func(interface{}) error) error\n}\n\n// The Marshaler interface may be implemented by types to customize their\n// behavior when being marshaled into a YAML document. The returned value\n// is marshaled in place of the original value implementing Marshaler.\n//\n// If an error is returned by MarshalYAML, the marshaling procedure stops\n// and returns with the provided error.\ntype Marshaler interface {\n\tMarshalYAML() (interface{}, error)\n}\n\n// Unmarshal decodes the first document found within the in byte slice\n// and assigns decoded values into the out value.\n//\n// Maps and pointers (to a struct, string, int, etc) are accepted as out\n// values. If an internal pointer within a struct is not initialized,\n// the yaml package will initialize it if necessary for unmarshalling\n// the provided data. The out parameter must not be nil.\n//\n// The type of the decoded values should be compatible with the respective\n// values in out. If one or more values cannot be decoded due to a type\n// mismatches, decoding continues partially until the end of the YAML\n// content, and a *yaml.TypeError is returned with details for all\n// missed values.\n//\n// Struct fields are only unmarshalled if they are exported (have an\n// upper case first letter), and are unmarshalled using the field name\n// lowercased as the default key. Custom keys may be defined via the\n// \"yaml\" name in the field tag: the content preceding the first comma\n// is used as the key, and the following comma-separated options are\n// used to tweak the marshalling process (see Marshal).\n// Conflicting names result in a runtime error.\n//\n// For example:\n//\n//     type T struct {\n//         F int `yaml:\"a,omitempty\"`\n//         B int\n//     }\n//     var t T\n//     yaml.Unmarshal([]byte(\"a: 1\\nb: 2\"), &t)\n//\n// See the documentation of Marshal for the format of tags and a list of\n// supported tag options.\n//\nfunc Unmarshal(in []byte, out interface{}) (err error) {\n\treturn unmarshal(in, out, false)\n}\n\n// A Decoder reads and decodes YAML values from an input stream.\ntype Decoder struct {\n\tparser      *parser\n\tknownFields bool\n}\n\n// NewDecoder returns a new decoder that reads from r.\n//\n// The decoder introduces its own buffering and may read\n// data from r beyond the YAML values requested.\nfunc NewDecoder(r io.Reader) *Decoder {\n\treturn &Decoder{\n\t\tparser: newParserFromReader(r),\n\t}\n}\n\n// KnownFields ensures that the keys in decoded mappings to\n// exist as fields in the struct being decoded into.\nfunc (dec *Decoder) KnownFields(enable bool) {\n\tdec.knownFields = enable\n}\n\n// Decode reads the next YAML-encoded value from its input\n// and stores it in the value pointed to by v.\n//\n// See the documentation for Unmarshal for details about the\n// conversion of YAML into a Go value.\nfunc (dec *Decoder) Decode(v interface{}) (err error) {\n\td := newDecoder()\n\td.knownFields = dec.knownFields\n\tdefer handleErr(&err)\n\tnode := dec.parser.parse()\n\tif node == nil {\n\t\treturn io.EOF\n\t}\n\tout := reflect.ValueOf(v)\n\tif out.Kind() == reflect.Ptr && !out.IsNil() {\n\t\tout = out.Elem()\n\t}\n\td.unmarshal(node, out)\n\tif len(d.terrors) > 0 {\n\t\treturn &TypeError{d.terrors}\n\t}\n\treturn nil\n}\n\n// Decode decodes the node and stores its data into the value pointed to by v.\n//\n// See the documentation for Unmarshal for details about the\n// conversion of YAML into a Go value.\nfunc (n *Node) Decode(v interface{}) (err error) {\n\td := newDecoder()\n\tdefer handleErr(&err)\n\tout := reflect.ValueOf(v)\n\tif out.Kind() == reflect.Ptr && !out.IsNil() {\n\t\tout = out.Elem()\n\t}\n\td.unmarshal(n, out)\n\tif len(d.terrors) > 0 {\n\t\treturn &TypeError{d.terrors}\n\t}\n\treturn nil\n}\n\nfunc unmarshal(in []byte, out interface{}, strict bool) (err error) {\n\tdefer handleErr(&err)\n\td := newDecoder()\n\tp := newParser(in)\n\tdefer p.destroy()\n\tnode := p.parse()\n\tif node != nil {\n\t\tv := reflect.ValueOf(out)\n\t\tif v.Kind() == reflect.Ptr && !v.IsNil() {\n\t\t\tv = v.Elem()\n\t\t}\n\t\td.unmarshal(node, v)\n\t}\n\tif len(d.terrors) > 0 {\n\t\treturn &TypeError{d.terrors}\n\t}\n\treturn nil\n}\n\n// Marshal serializes the value provided into a YAML document. The structure\n// of the generated document will reflect the structure of the value itself.\n// Maps and pointers (to struct, string, int, etc) are accepted as the in value.\n//\n// Struct fields are only marshalled if they are exported (have an upper case\n// first letter), and are marshalled using the field name lowercased as the\n// default key. Custom keys may be defined via the \"yaml\" name in the field\n// tag: the content preceding the first comma is used as the key, and the\n// following comma-separated options are used to tweak the marshalling process.\n// Conflicting names result in a runtime error.\n//\n// The field tag format accepted is:\n//\n//     `(...) yaml:\"[<key>][,<flag1>[,<flag2>]]\" (...)`\n//\n// The following flags are currently supported:\n//\n//     omitempty    Only include the field if it's not set to the zero\n//                  value for the type or to empty slices or maps.\n//                  Zero valued structs will be omitted if all their public\n//                  fields are zero, unless they implement an IsZero\n//                  method (see the IsZeroer interface type), in which\n//                  case the field will be excluded if IsZero returns true.\n//\n//     flow         Marshal using a flow style (useful for structs,\n//                  sequences and maps).\n//\n//     inline       Inline the field, which must be a struct or a map,\n//                  causing all of its fields or keys to be processed as if\n//                  they were part of the outer struct. For maps, keys must\n//                  not conflict with the yaml keys of other struct fields.\n//\n// In addition, if the key is \"-\", the field is ignored.\n//\n// For example:\n//\n//     type T struct {\n//         F int `yaml:\"a,omitempty\"`\n//         B int\n//     }\n//     yaml.Marshal(&T{B: 2}) // Returns \"b: 2\\n\"\n//     yaml.Marshal(&T{F: 1}} // Returns \"a: 1\\nb: 0\\n\"\n//\nfunc Marshal(in interface{}) (out []byte, err error) {\n\tdefer handleErr(&err)\n\te := newEncoder()\n\tdefer e.destroy()\n\te.marshalDoc(\"\", reflect.ValueOf(in))\n\te.finish()\n\tout = e.out\n\treturn\n}\n\n// An Encoder writes YAML values to an output stream.\ntype Encoder struct {\n\tencoder *encoder\n}\n\n// NewEncoder returns a new encoder that writes to w.\n// The Encoder should be closed after use to flush all data\n// to w.\nfunc NewEncoder(w io.Writer) *Encoder {\n\treturn &Encoder{\n\t\tencoder: newEncoderWithWriter(w),\n\t}\n}\n\n// Encode writes the YAML encoding of v to the stream.\n// If multiple items are encoded to the stream, the\n// second and subsequent document will be preceded\n// with a \"---\" document separator, but the first will not.\n//\n// See the documentation for Marshal for details about the conversion of Go\n// values to YAML.\nfunc (e *Encoder) Encode(v interface{}) (err error) {\n\tdefer handleErr(&err)\n\te.encoder.marshalDoc(\"\", reflect.ValueOf(v))\n\treturn nil\n}\n\n// Encode encodes value v and stores its representation in n.\n//\n// See the documentation for Marshal for details about the\n// conversion of Go values into YAML.\nfunc (n *Node) Encode(v interface{}) (err error) {\n\tdefer handleErr(&err)\n\te := newEncoder()\n\tdefer e.destroy()\n\te.marshalDoc(\"\", reflect.ValueOf(v))\n\te.finish()\n\tp := newParser(e.out)\n\tp.textless = true\n\tdefer p.destroy()\n\tdoc := p.parse()\n\t*n = *doc.Content[0]\n\treturn nil\n}\n\n// SetIndent changes the used indentation used when encoding.\nfunc (e *Encoder) SetIndent(spaces int) {\n\tif spaces < 0 {\n\t\tpanic(\"yaml: cannot indent to a negative number of spaces\")\n\t}\n\te.encoder.indent = spaces\n}\n\n// Close closes the encoder by writing any remaining data.\n// It does not write a stream terminating string \"...\".\nfunc (e *Encoder) Close() (err error) {\n\tdefer handleErr(&err)\n\te.encoder.finish()\n\treturn nil\n}\n\nfunc handleErr(err *error) {\n\tif v := recover(); v != nil {\n\t\tif e, ok := v.(yamlError); ok {\n\t\t\t*err = e.err\n\t\t} else {\n\t\t\tpanic(v)\n\t\t}\n\t}\n}\n\ntype yamlError struct {\n\terr error\n}\n\nfunc fail(err error) {\n\tpanic(yamlError{err})\n}\n\nfunc failf(format string, args ...interface{}) {\n\tpanic(yamlError{fmt.Errorf(\"yaml: \"+format, args...)})\n}\n\n// A TypeError is returned by Unmarshal when one or more fields in\n// the YAML document cannot be properly decoded into the requested\n// types. When this error is returned, the value is still\n// unmarshaled partially.\ntype TypeError struct {\n\tErrors []string\n}\n\nfunc (e *TypeError) Error() string {\n\treturn fmt.Sprintf(\"yaml: unmarshal errors:\\n  %s\", strings.Join(e.Errors, \"\\n  \"))\n}\n\ntype Kind uint32\n\nconst (\n\tDocumentNode Kind = 1 << iota\n\tSequenceNode\n\tMappingNode\n\tScalarNode\n\tAliasNode\n)\n\ntype Style uint32\n\nconst (\n\tTaggedStyle Style = 1 << iota\n\tDoubleQuotedStyle\n\tSingleQuotedStyle\n\tLiteralStyle\n\tFoldedStyle\n\tFlowStyle\n)\n\n// Node represents an element in the YAML document hierarchy. While documents\n// are typically encoded and decoded into higher level types, such as structs\n// and maps, Node is an intermediate representation that allows detailed\n// control over the content being decoded or encoded.\n//\n// It's worth noting that although Node offers access into details such as\n// line numbers, colums, and comments, the content when re-encoded will not\n// have its original textual representation preserved. An effort is made to\n// render the data plesantly, and to preserve comments near the data they\n// describe, though.\n//\n// Values that make use of the Node type interact with the yaml package in the\n// same way any other type would do, by encoding and decoding yaml data\n// directly or indirectly into them.\n//\n// For example:\n//\n//     var person struct {\n//             Name    string\n//             Address yaml.Node\n//     }\n//     err := yaml.Unmarshal(data, &person)\n// \n// Or by itself:\n//\n//     var person Node\n//     err := yaml.Unmarshal(data, &person)\n//\ntype Node struct {\n\t// Kind defines whether the node is a document, a mapping, a sequence,\n\t// a scalar value, or an alias to another node. The specific data type of\n\t// scalar nodes may be obtained via the ShortTag and LongTag methods.\n\tKind  Kind\n\n\t// Style allows customizing the apperance of the node in the tree.\n\tStyle Style\n\n\t// Tag holds the YAML tag defining the data type for the value.\n\t// When decoding, this field will always be set to the resolved tag,\n\t// even when it wasn't explicitly provided in the YAML content.\n\t// When encoding, if this field is unset the value type will be\n\t// implied from the node properties, and if it is set, it will only\n\t// be serialized into the representation if TaggedStyle is used or\n\t// the implicit tag diverges from the provided one.\n\tTag string\n\n\t// Value holds the unescaped and unquoted represenation of the value.\n\tValue string\n\n\t// Anchor holds the anchor name for this node, which allows aliases to point to it.\n\tAnchor string\n\n\t// Alias holds the node that this alias points to. Only valid when Kind is AliasNode.\n\tAlias *Node\n\n\t// Content holds contained nodes for documents, mappings, and sequences.\n\tContent []*Node\n\n\t// HeadComment holds any comments in the lines preceding the node and\n\t// not separated by an empty line.\n\tHeadComment string\n\n\t// LineComment holds any comments at the end of the line where the node is in.\n\tLineComment string\n\n\t// FootComment holds any comments following the node and before empty lines.\n\tFootComment string\n\n\t// Line and Column hold the node position in the decoded YAML text.\n\t// These fields are not respected when encoding the node.\n\tLine   int\n\tColumn int\n}\n\n// IsZero returns whether the node has all of its fields unset.\nfunc (n *Node) IsZero() bool {\n\treturn n.Kind == 0 && n.Style == 0 && n.Tag == \"\" && n.Value == \"\" && n.Anchor == \"\" && n.Alias == nil && n.Content == nil &&\n\t\tn.HeadComment == \"\" && n.LineComment == \"\" && n.FootComment == \"\" && n.Line == 0 && n.Column == 0\n}\n\n\n// LongTag returns the long form of the tag that indicates the data type for\n// the node. If the Tag field isn't explicitly defined, one will be computed\n// based on the node properties.\nfunc (n *Node) LongTag() string {\n\treturn longTag(n.ShortTag())\n}\n\n// ShortTag returns the short form of the YAML tag that indicates data type for\n// the node. If the Tag field isn't explicitly defined, one will be computed\n// based on the node properties.\nfunc (n *Node) ShortTag() string {\n\tif n.indicatedString() {\n\t\treturn strTag\n\t}\n\tif n.Tag == \"\" || n.Tag == \"!\" {\n\t\tswitch n.Kind {\n\t\tcase MappingNode:\n\t\t\treturn mapTag\n\t\tcase SequenceNode:\n\t\t\treturn seqTag\n\t\tcase AliasNode:\n\t\t\tif n.Alias != nil {\n\t\t\t\treturn n.Alias.ShortTag()\n\t\t\t}\n\t\tcase ScalarNode:\n\t\t\ttag, _ := resolve(\"\", n.Value)\n\t\t\treturn tag\n\t\tcase 0:\n\t\t\t// Special case to make the zero value convenient.\n\t\t\tif n.IsZero() {\n\t\t\t\treturn nullTag\n\t\t\t}\n\t\t}\n\t\treturn \"\"\n\t}\n\treturn shortTag(n.Tag)\n}\n\nfunc (n *Node) indicatedString() bool {\n\treturn n.Kind == ScalarNode &&\n\t\t(shortTag(n.Tag) == strTag ||\n\t\t\t(n.Tag == \"\" || n.Tag == \"!\") && n.Style&(SingleQuotedStyle|DoubleQuotedStyle|LiteralStyle|FoldedStyle) != 0)\n}\n\n// SetString is a convenience function that sets the node to a string value\n// and defines its style in a pleasant way depending on its content.\nfunc (n *Node) SetString(s string) {\n\tn.Kind = ScalarNode\n\tif utf8.ValidString(s) {\n\t\tn.Value = s\n\t\tn.Tag = strTag\n\t} else {\n\t\tn.Value = encodeBase64(s)\n\t\tn.Tag = binaryTag\n\t}\n\tif strings.Contains(n.Value, \"\\n\") {\n\t\tn.Style = LiteralStyle\n\t}\n}\n\n// --------------------------------------------------------------------------\n// Maintain a mapping of keys to structure field indexes\n\n// The code in this section was copied from mgo/bson.\n\n// structInfo holds details for the serialization of fields of\n// a given struct.\ntype structInfo struct {\n\tFieldsMap  map[string]fieldInfo\n\tFieldsList []fieldInfo\n\n\t// InlineMap is the number of the field in the struct that\n\t// contains an ,inline map, or -1 if there's none.\n\tInlineMap int\n\n\t// InlineUnmarshalers holds indexes to inlined fields that\n\t// contain unmarshaler values.\n\tInlineUnmarshalers [][]int\n}\n\ntype fieldInfo struct {\n\tKey       string\n\tNum       int\n\tOmitEmpty bool\n\tFlow      bool\n\t// Id holds the unique field identifier, so we can cheaply\n\t// check for field duplicates without maintaining an extra map.\n\tId int\n\n\t// Inline holds the field index if the field is part of an inlined struct.\n\tInline []int\n}\n\nvar structMap = make(map[reflect.Type]*structInfo)\nvar fieldMapMutex sync.RWMutex\nvar unmarshalerType reflect.Type\n\nfunc init() {\n\tvar v Unmarshaler\n\tunmarshalerType = reflect.ValueOf(&v).Elem().Type()\n}\n\nfunc getStructInfo(st reflect.Type) (*structInfo, error) {\n\tfieldMapMutex.RLock()\n\tsinfo, found := structMap[st]\n\tfieldMapMutex.RUnlock()\n\tif found {\n\t\treturn sinfo, nil\n\t}\n\n\tn := st.NumField()\n\tfieldsMap := make(map[string]fieldInfo)\n\tfieldsList := make([]fieldInfo, 0, n)\n\tinlineMap := -1\n\tinlineUnmarshalers := [][]int(nil)\n\tfor i := 0; i != n; i++ {\n\t\tfield := st.Field(i)\n\t\tif field.PkgPath != \"\" && !field.Anonymous {\n\t\t\tcontinue // Private field\n\t\t}\n\n\t\tinfo := fieldInfo{Num: i}\n\n\t\ttag := field.Tag.Get(\"yaml\")\n\t\tif tag == \"\" && strings.Index(string(field.Tag), \":\") < 0 {\n\t\t\ttag = string(field.Tag)\n\t\t}\n\t\tif tag == \"-\" {\n\t\t\tcontinue\n\t\t}\n\n\t\tinline := false\n\t\tfields := strings.Split(tag, \",\")\n\t\tif len(fields) > 1 {\n\t\t\tfor _, flag := range fields[1:] {\n\t\t\t\tswitch flag {\n\t\t\t\tcase \"omitempty\":\n\t\t\t\t\tinfo.OmitEmpty = true\n\t\t\t\tcase \"flow\":\n\t\t\t\t\tinfo.Flow = true\n\t\t\t\tcase \"inline\":\n\t\t\t\t\tinline = true\n\t\t\t\tdefault:\n\t\t\t\t\treturn nil, errors.New(fmt.Sprintf(\"unsupported flag %q in tag %q of type %s\", flag, tag, st))\n\t\t\t\t}\n\t\t\t}\n\t\t\ttag = fields[0]\n\t\t}\n\n\t\tif inline {\n\t\t\tswitch field.Type.Kind() {\n\t\t\tcase reflect.Map:\n\t\t\t\tif inlineMap >= 0 {\n\t\t\t\t\treturn nil, errors.New(\"multiple ,inline maps in struct \" + st.String())\n\t\t\t\t}\n\t\t\t\tif field.Type.Key() != reflect.TypeOf(\"\") {\n\t\t\t\t\treturn nil, errors.New(\"option ,inline needs a map with string keys in struct \" + st.String())\n\t\t\t\t}\n\t\t\t\tinlineMap = info.Num\n\t\t\tcase reflect.Struct, reflect.Ptr:\n\t\t\t\tftype := field.Type\n\t\t\t\tfor ftype.Kind() == reflect.Ptr {\n\t\t\t\t\tftype = ftype.Elem()\n\t\t\t\t}\n\t\t\t\tif ftype.Kind() != reflect.Struct {\n\t\t\t\t\treturn nil, errors.New(\"option ,inline may only be used on a struct or map field\")\n\t\t\t\t}\n\t\t\t\tif reflect.PtrTo(ftype).Implements(unmarshalerType) {\n\t\t\t\t\tinlineUnmarshalers = append(inlineUnmarshalers, []int{i})\n\t\t\t\t} else {\n\t\t\t\t\tsinfo, err := getStructInfo(ftype)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn nil, err\n\t\t\t\t\t}\n\t\t\t\t\tfor _, index := range sinfo.InlineUnmarshalers {\n\t\t\t\t\t\tinlineUnmarshalers = append(inlineUnmarshalers, append([]int{i}, index...))\n\t\t\t\t\t}\n\t\t\t\t\tfor _, finfo := range sinfo.FieldsList {\n\t\t\t\t\t\tif _, found := fieldsMap[finfo.Key]; found {\n\t\t\t\t\t\t\tmsg := \"duplicated key '\" + finfo.Key + \"' in struct \" + st.String()\n\t\t\t\t\t\t\treturn nil, errors.New(msg)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif finfo.Inline == nil {\n\t\t\t\t\t\t\tfinfo.Inline = []int{i, finfo.Num}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfinfo.Inline = append([]int{i}, finfo.Inline...)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfinfo.Id = len(fieldsList)\n\t\t\t\t\t\tfieldsMap[finfo.Key] = finfo\n\t\t\t\t\t\tfieldsList = append(fieldsList, finfo)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\treturn nil, errors.New(\"option ,inline may only be used on a struct or map field\")\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\tif tag != \"\" {\n\t\t\tinfo.Key = tag\n\t\t} else {\n\t\t\tinfo.Key = strings.ToLower(field.Name)\n\t\t}\n\n\t\tif _, found = fieldsMap[info.Key]; found {\n\t\t\tmsg := \"duplicated key '\" + info.Key + \"' in struct \" + st.String()\n\t\t\treturn nil, errors.New(msg)\n\t\t}\n\n\t\tinfo.Id = len(fieldsList)\n\t\tfieldsList = append(fieldsList, info)\n\t\tfieldsMap[info.Key] = info\n\t}\n\n\tsinfo = &structInfo{\n\t\tFieldsMap:          fieldsMap,\n\t\tFieldsList:         fieldsList,\n\t\tInlineMap:          inlineMap,\n\t\tInlineUnmarshalers: inlineUnmarshalers,\n\t}\n\n\tfieldMapMutex.Lock()\n\tstructMap[st] = sinfo\n\tfieldMapMutex.Unlock()\n\treturn sinfo, nil\n}\n\n// IsZeroer is used to check whether an object is zero to\n// determine whether it should be omitted when marshaling\n// with the omitempty flag. One notable implementation\n// is time.Time.\ntype IsZeroer interface {\n\tIsZero() bool\n}\n\nfunc isZero(v reflect.Value) bool {\n\tkind := v.Kind()\n\tif z, ok := v.Interface().(IsZeroer); ok {\n\t\tif (kind == reflect.Ptr || kind == reflect.Interface) && v.IsNil() {\n\t\t\treturn true\n\t\t}\n\t\treturn z.IsZero()\n\t}\n\tswitch kind {\n\tcase reflect.String:\n\t\treturn len(v.String()) == 0\n\tcase reflect.Interface, reflect.Ptr:\n\t\treturn v.IsNil()\n\tcase reflect.Slice:\n\t\treturn v.Len() == 0\n\tcase reflect.Map:\n\t\treturn v.Len() == 0\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn v.Int() == 0\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn v.Float() == 0\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn v.Uint() == 0\n\tcase reflect.Bool:\n\t\treturn !v.Bool()\n\tcase reflect.Struct:\n\t\tvt := v.Type()\n\t\tfor i := v.NumField() - 1; i >= 0; i-- {\n\t\t\tif vt.Field(i).PkgPath != \"\" {\n\t\t\t\tcontinue // Private field\n\t\t\t}\n\t\t\tif !isZero(v.Field(i)) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/yamlh.go",
    "content": "//\n// Copyright (c) 2011-2019 Canonical Ltd\n// Copyright (c) 2006-2010 Kirill Simonov\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n// of the Software, and to permit persons to whom the Software is furnished to do\n// so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\npackage yaml\n\nimport (\n\t\"fmt\"\n\t\"io\"\n)\n\n// The version directive data.\ntype yaml_version_directive_t struct {\n\tmajor int8 // The major version number.\n\tminor int8 // The minor version number.\n}\n\n// The tag directive data.\ntype yaml_tag_directive_t struct {\n\thandle []byte // The tag handle.\n\tprefix []byte // The tag prefix.\n}\n\ntype yaml_encoding_t int\n\n// The stream encoding.\nconst (\n\t// Let the parser choose the encoding.\n\tyaml_ANY_ENCODING yaml_encoding_t = iota\n\n\tyaml_UTF8_ENCODING    // The default UTF-8 encoding.\n\tyaml_UTF16LE_ENCODING // The UTF-16-LE encoding with BOM.\n\tyaml_UTF16BE_ENCODING // The UTF-16-BE encoding with BOM.\n)\n\ntype yaml_break_t int\n\n// Line break types.\nconst (\n\t// Let the parser choose the break type.\n\tyaml_ANY_BREAK yaml_break_t = iota\n\n\tyaml_CR_BREAK   // Use CR for line breaks (Mac style).\n\tyaml_LN_BREAK   // Use LN for line breaks (Unix style).\n\tyaml_CRLN_BREAK // Use CR LN for line breaks (DOS style).\n)\n\ntype yaml_error_type_t int\n\n// Many bad things could happen with the parser and emitter.\nconst (\n\t// No error is produced.\n\tyaml_NO_ERROR yaml_error_type_t = iota\n\n\tyaml_MEMORY_ERROR   // Cannot allocate or reallocate a block of memory.\n\tyaml_READER_ERROR   // Cannot read or decode the input stream.\n\tyaml_SCANNER_ERROR  // Cannot scan the input stream.\n\tyaml_PARSER_ERROR   // Cannot parse the input stream.\n\tyaml_COMPOSER_ERROR // Cannot compose a YAML document.\n\tyaml_WRITER_ERROR   // Cannot write to the output stream.\n\tyaml_EMITTER_ERROR  // Cannot emit a YAML stream.\n)\n\n// The pointer position.\ntype yaml_mark_t struct {\n\tindex  int // The position index.\n\tline   int // The position line.\n\tcolumn int // The position column.\n}\n\n// Node Styles\n\ntype yaml_style_t int8\n\ntype yaml_scalar_style_t yaml_style_t\n\n// Scalar styles.\nconst (\n\t// Let the emitter choose the style.\n\tyaml_ANY_SCALAR_STYLE yaml_scalar_style_t = 0\n\n\tyaml_PLAIN_SCALAR_STYLE         yaml_scalar_style_t = 1 << iota // The plain scalar style.\n\tyaml_SINGLE_QUOTED_SCALAR_STYLE                                 // The single-quoted scalar style.\n\tyaml_DOUBLE_QUOTED_SCALAR_STYLE                                 // The double-quoted scalar style.\n\tyaml_LITERAL_SCALAR_STYLE                                       // The literal scalar style.\n\tyaml_FOLDED_SCALAR_STYLE                                        // The folded scalar style.\n)\n\ntype yaml_sequence_style_t yaml_style_t\n\n// Sequence styles.\nconst (\n\t// Let the emitter choose the style.\n\tyaml_ANY_SEQUENCE_STYLE yaml_sequence_style_t = iota\n\n\tyaml_BLOCK_SEQUENCE_STYLE // The block sequence style.\n\tyaml_FLOW_SEQUENCE_STYLE  // The flow sequence style.\n)\n\ntype yaml_mapping_style_t yaml_style_t\n\n// Mapping styles.\nconst (\n\t// Let the emitter choose the style.\n\tyaml_ANY_MAPPING_STYLE yaml_mapping_style_t = iota\n\n\tyaml_BLOCK_MAPPING_STYLE // The block mapping style.\n\tyaml_FLOW_MAPPING_STYLE  // The flow mapping style.\n)\n\n// Tokens\n\ntype yaml_token_type_t int\n\n// Token types.\nconst (\n\t// An empty token.\n\tyaml_NO_TOKEN yaml_token_type_t = iota\n\n\tyaml_STREAM_START_TOKEN // A STREAM-START token.\n\tyaml_STREAM_END_TOKEN   // A STREAM-END token.\n\n\tyaml_VERSION_DIRECTIVE_TOKEN // A VERSION-DIRECTIVE token.\n\tyaml_TAG_DIRECTIVE_TOKEN     // A TAG-DIRECTIVE token.\n\tyaml_DOCUMENT_START_TOKEN    // A DOCUMENT-START token.\n\tyaml_DOCUMENT_END_TOKEN      // A DOCUMENT-END token.\n\n\tyaml_BLOCK_SEQUENCE_START_TOKEN // A BLOCK-SEQUENCE-START token.\n\tyaml_BLOCK_MAPPING_START_TOKEN  // A BLOCK-SEQUENCE-END token.\n\tyaml_BLOCK_END_TOKEN            // A BLOCK-END token.\n\n\tyaml_FLOW_SEQUENCE_START_TOKEN // A FLOW-SEQUENCE-START token.\n\tyaml_FLOW_SEQUENCE_END_TOKEN   // A FLOW-SEQUENCE-END token.\n\tyaml_FLOW_MAPPING_START_TOKEN  // A FLOW-MAPPING-START token.\n\tyaml_FLOW_MAPPING_END_TOKEN    // A FLOW-MAPPING-END token.\n\n\tyaml_BLOCK_ENTRY_TOKEN // A BLOCK-ENTRY token.\n\tyaml_FLOW_ENTRY_TOKEN  // A FLOW-ENTRY token.\n\tyaml_KEY_TOKEN         // A KEY token.\n\tyaml_VALUE_TOKEN       // A VALUE token.\n\n\tyaml_ALIAS_TOKEN  // An ALIAS token.\n\tyaml_ANCHOR_TOKEN // An ANCHOR token.\n\tyaml_TAG_TOKEN    // A TAG token.\n\tyaml_SCALAR_TOKEN // A SCALAR token.\n)\n\nfunc (tt yaml_token_type_t) String() string {\n\tswitch tt {\n\tcase yaml_NO_TOKEN:\n\t\treturn \"yaml_NO_TOKEN\"\n\tcase yaml_STREAM_START_TOKEN:\n\t\treturn \"yaml_STREAM_START_TOKEN\"\n\tcase yaml_STREAM_END_TOKEN:\n\t\treturn \"yaml_STREAM_END_TOKEN\"\n\tcase yaml_VERSION_DIRECTIVE_TOKEN:\n\t\treturn \"yaml_VERSION_DIRECTIVE_TOKEN\"\n\tcase yaml_TAG_DIRECTIVE_TOKEN:\n\t\treturn \"yaml_TAG_DIRECTIVE_TOKEN\"\n\tcase yaml_DOCUMENT_START_TOKEN:\n\t\treturn \"yaml_DOCUMENT_START_TOKEN\"\n\tcase yaml_DOCUMENT_END_TOKEN:\n\t\treturn \"yaml_DOCUMENT_END_TOKEN\"\n\tcase yaml_BLOCK_SEQUENCE_START_TOKEN:\n\t\treturn \"yaml_BLOCK_SEQUENCE_START_TOKEN\"\n\tcase yaml_BLOCK_MAPPING_START_TOKEN:\n\t\treturn \"yaml_BLOCK_MAPPING_START_TOKEN\"\n\tcase yaml_BLOCK_END_TOKEN:\n\t\treturn \"yaml_BLOCK_END_TOKEN\"\n\tcase yaml_FLOW_SEQUENCE_START_TOKEN:\n\t\treturn \"yaml_FLOW_SEQUENCE_START_TOKEN\"\n\tcase yaml_FLOW_SEQUENCE_END_TOKEN:\n\t\treturn \"yaml_FLOW_SEQUENCE_END_TOKEN\"\n\tcase yaml_FLOW_MAPPING_START_TOKEN:\n\t\treturn \"yaml_FLOW_MAPPING_START_TOKEN\"\n\tcase yaml_FLOW_MAPPING_END_TOKEN:\n\t\treturn \"yaml_FLOW_MAPPING_END_TOKEN\"\n\tcase yaml_BLOCK_ENTRY_TOKEN:\n\t\treturn \"yaml_BLOCK_ENTRY_TOKEN\"\n\tcase yaml_FLOW_ENTRY_TOKEN:\n\t\treturn \"yaml_FLOW_ENTRY_TOKEN\"\n\tcase yaml_KEY_TOKEN:\n\t\treturn \"yaml_KEY_TOKEN\"\n\tcase yaml_VALUE_TOKEN:\n\t\treturn \"yaml_VALUE_TOKEN\"\n\tcase yaml_ALIAS_TOKEN:\n\t\treturn \"yaml_ALIAS_TOKEN\"\n\tcase yaml_ANCHOR_TOKEN:\n\t\treturn \"yaml_ANCHOR_TOKEN\"\n\tcase yaml_TAG_TOKEN:\n\t\treturn \"yaml_TAG_TOKEN\"\n\tcase yaml_SCALAR_TOKEN:\n\t\treturn \"yaml_SCALAR_TOKEN\"\n\t}\n\treturn \"<unknown token>\"\n}\n\n// The token structure.\ntype yaml_token_t struct {\n\t// The token type.\n\ttyp yaml_token_type_t\n\n\t// The start/end of the token.\n\tstart_mark, end_mark yaml_mark_t\n\n\t// The stream encoding (for yaml_STREAM_START_TOKEN).\n\tencoding yaml_encoding_t\n\n\t// The alias/anchor/scalar value or tag/tag directive handle\n\t// (for yaml_ALIAS_TOKEN, yaml_ANCHOR_TOKEN, yaml_SCALAR_TOKEN, yaml_TAG_TOKEN, yaml_TAG_DIRECTIVE_TOKEN).\n\tvalue []byte\n\n\t// The tag suffix (for yaml_TAG_TOKEN).\n\tsuffix []byte\n\n\t// The tag directive prefix (for yaml_TAG_DIRECTIVE_TOKEN).\n\tprefix []byte\n\n\t// The scalar style (for yaml_SCALAR_TOKEN).\n\tstyle yaml_scalar_style_t\n\n\t// The version directive major/minor (for yaml_VERSION_DIRECTIVE_TOKEN).\n\tmajor, minor int8\n}\n\n// Events\n\ntype yaml_event_type_t int8\n\n// Event types.\nconst (\n\t// An empty event.\n\tyaml_NO_EVENT yaml_event_type_t = iota\n\n\tyaml_STREAM_START_EVENT   // A STREAM-START event.\n\tyaml_STREAM_END_EVENT     // A STREAM-END event.\n\tyaml_DOCUMENT_START_EVENT // A DOCUMENT-START event.\n\tyaml_DOCUMENT_END_EVENT   // A DOCUMENT-END event.\n\tyaml_ALIAS_EVENT          // An ALIAS event.\n\tyaml_SCALAR_EVENT         // A SCALAR event.\n\tyaml_SEQUENCE_START_EVENT // A SEQUENCE-START event.\n\tyaml_SEQUENCE_END_EVENT   // A SEQUENCE-END event.\n\tyaml_MAPPING_START_EVENT  // A MAPPING-START event.\n\tyaml_MAPPING_END_EVENT    // A MAPPING-END event.\n\tyaml_TAIL_COMMENT_EVENT\n)\n\nvar eventStrings = []string{\n\tyaml_NO_EVENT:             \"none\",\n\tyaml_STREAM_START_EVENT:   \"stream start\",\n\tyaml_STREAM_END_EVENT:     \"stream end\",\n\tyaml_DOCUMENT_START_EVENT: \"document start\",\n\tyaml_DOCUMENT_END_EVENT:   \"document end\",\n\tyaml_ALIAS_EVENT:          \"alias\",\n\tyaml_SCALAR_EVENT:         \"scalar\",\n\tyaml_SEQUENCE_START_EVENT: \"sequence start\",\n\tyaml_SEQUENCE_END_EVENT:   \"sequence end\",\n\tyaml_MAPPING_START_EVENT:  \"mapping start\",\n\tyaml_MAPPING_END_EVENT:    \"mapping end\",\n\tyaml_TAIL_COMMENT_EVENT:   \"tail comment\",\n}\n\nfunc (e yaml_event_type_t) String() string {\n\tif e < 0 || int(e) >= len(eventStrings) {\n\t\treturn fmt.Sprintf(\"unknown event %d\", e)\n\t}\n\treturn eventStrings[e]\n}\n\n// The event structure.\ntype yaml_event_t struct {\n\n\t// The event type.\n\ttyp yaml_event_type_t\n\n\t// The start and end of the event.\n\tstart_mark, end_mark yaml_mark_t\n\n\t// The document encoding (for yaml_STREAM_START_EVENT).\n\tencoding yaml_encoding_t\n\n\t// The version directive (for yaml_DOCUMENT_START_EVENT).\n\tversion_directive *yaml_version_directive_t\n\n\t// The list of tag directives (for yaml_DOCUMENT_START_EVENT).\n\ttag_directives []yaml_tag_directive_t\n\n\t// The comments\n\thead_comment []byte\n\tline_comment []byte\n\tfoot_comment []byte\n\ttail_comment []byte\n\n\t// The anchor (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT, yaml_ALIAS_EVENT).\n\tanchor []byte\n\n\t// The tag (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT).\n\ttag []byte\n\n\t// The scalar value (for yaml_SCALAR_EVENT).\n\tvalue []byte\n\n\t// Is the document start/end indicator implicit, or the tag optional?\n\t// (for yaml_DOCUMENT_START_EVENT, yaml_DOCUMENT_END_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT, yaml_SCALAR_EVENT).\n\timplicit bool\n\n\t// Is the tag optional for any non-plain style? (for yaml_SCALAR_EVENT).\n\tquoted_implicit bool\n\n\t// The style (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT).\n\tstyle yaml_style_t\n}\n\nfunc (e *yaml_event_t) scalar_style() yaml_scalar_style_t     { return yaml_scalar_style_t(e.style) }\nfunc (e *yaml_event_t) sequence_style() yaml_sequence_style_t { return yaml_sequence_style_t(e.style) }\nfunc (e *yaml_event_t) mapping_style() yaml_mapping_style_t   { return yaml_mapping_style_t(e.style) }\n\n// Nodes\n\nconst (\n\tyaml_NULL_TAG      = \"tag:yaml.org,2002:null\"      // The tag !!null with the only possible value: null.\n\tyaml_BOOL_TAG      = \"tag:yaml.org,2002:bool\"      // The tag !!bool with the values: true and false.\n\tyaml_STR_TAG       = \"tag:yaml.org,2002:str\"       // The tag !!str for string values.\n\tyaml_INT_TAG       = \"tag:yaml.org,2002:int\"       // The tag !!int for integer values.\n\tyaml_FLOAT_TAG     = \"tag:yaml.org,2002:float\"     // The tag !!float for float values.\n\tyaml_TIMESTAMP_TAG = \"tag:yaml.org,2002:timestamp\" // The tag !!timestamp for date and time values.\n\n\tyaml_SEQ_TAG = \"tag:yaml.org,2002:seq\" // The tag !!seq is used to denote sequences.\n\tyaml_MAP_TAG = \"tag:yaml.org,2002:map\" // The tag !!map is used to denote mapping.\n\n\t// Not in original libyaml.\n\tyaml_BINARY_TAG = \"tag:yaml.org,2002:binary\"\n\tyaml_MERGE_TAG  = \"tag:yaml.org,2002:merge\"\n\n\tyaml_DEFAULT_SCALAR_TAG   = yaml_STR_TAG // The default scalar tag is !!str.\n\tyaml_DEFAULT_SEQUENCE_TAG = yaml_SEQ_TAG // The default sequence tag is !!seq.\n\tyaml_DEFAULT_MAPPING_TAG  = yaml_MAP_TAG // The default mapping tag is !!map.\n)\n\ntype yaml_node_type_t int\n\n// Node types.\nconst (\n\t// An empty node.\n\tyaml_NO_NODE yaml_node_type_t = iota\n\n\tyaml_SCALAR_NODE   // A scalar node.\n\tyaml_SEQUENCE_NODE // A sequence node.\n\tyaml_MAPPING_NODE  // A mapping node.\n)\n\n// An element of a sequence node.\ntype yaml_node_item_t int\n\n// An element of a mapping node.\ntype yaml_node_pair_t struct {\n\tkey   int // The key of the element.\n\tvalue int // The value of the element.\n}\n\n// The node structure.\ntype yaml_node_t struct {\n\ttyp yaml_node_type_t // The node type.\n\ttag []byte           // The node tag.\n\n\t// The node data.\n\n\t// The scalar parameters (for yaml_SCALAR_NODE).\n\tscalar struct {\n\t\tvalue  []byte              // The scalar value.\n\t\tlength int                 // The length of the scalar value.\n\t\tstyle  yaml_scalar_style_t // The scalar style.\n\t}\n\n\t// The sequence parameters (for YAML_SEQUENCE_NODE).\n\tsequence struct {\n\t\titems_data []yaml_node_item_t    // The stack of sequence items.\n\t\tstyle      yaml_sequence_style_t // The sequence style.\n\t}\n\n\t// The mapping parameters (for yaml_MAPPING_NODE).\n\tmapping struct {\n\t\tpairs_data  []yaml_node_pair_t   // The stack of mapping pairs (key, value).\n\t\tpairs_start *yaml_node_pair_t    // The beginning of the stack.\n\t\tpairs_end   *yaml_node_pair_t    // The end of the stack.\n\t\tpairs_top   *yaml_node_pair_t    // The top of the stack.\n\t\tstyle       yaml_mapping_style_t // The mapping style.\n\t}\n\n\tstart_mark yaml_mark_t // The beginning of the node.\n\tend_mark   yaml_mark_t // The end of the node.\n\n}\n\n// The document structure.\ntype yaml_document_t struct {\n\n\t// The document nodes.\n\tnodes []yaml_node_t\n\n\t// The version directive.\n\tversion_directive *yaml_version_directive_t\n\n\t// The list of tag directives.\n\ttag_directives_data  []yaml_tag_directive_t\n\ttag_directives_start int // The beginning of the tag directives list.\n\ttag_directives_end   int // The end of the tag directives list.\n\n\tstart_implicit int // Is the document start indicator implicit?\n\tend_implicit   int // Is the document end indicator implicit?\n\n\t// The start/end of the document.\n\tstart_mark, end_mark yaml_mark_t\n}\n\n// The prototype of a read handler.\n//\n// The read handler is called when the parser needs to read more bytes from the\n// source. The handler should write not more than size bytes to the buffer.\n// The number of written bytes should be set to the size_read variable.\n//\n// [in,out]   data        A pointer to an application data specified by\n//                        yaml_parser_set_input().\n// [out]      buffer      The buffer to write the data from the source.\n// [in]       size        The size of the buffer.\n// [out]      size_read   The actual number of bytes read from the source.\n//\n// On success, the handler should return 1.  If the handler failed,\n// the returned value should be 0. On EOF, the handler should set the\n// size_read to 0 and return 1.\ntype yaml_read_handler_t func(parser *yaml_parser_t, buffer []byte) (n int, err error)\n\n// This structure holds information about a potential simple key.\ntype yaml_simple_key_t struct {\n\tpossible     bool        // Is a simple key possible?\n\trequired     bool        // Is a simple key required?\n\ttoken_number int         // The number of the token.\n\tmark         yaml_mark_t // The position mark.\n}\n\n// The states of the parser.\ntype yaml_parser_state_t int\n\nconst (\n\tyaml_PARSE_STREAM_START_STATE yaml_parser_state_t = iota\n\n\tyaml_PARSE_IMPLICIT_DOCUMENT_START_STATE           // Expect the beginning of an implicit document.\n\tyaml_PARSE_DOCUMENT_START_STATE                    // Expect DOCUMENT-START.\n\tyaml_PARSE_DOCUMENT_CONTENT_STATE                  // Expect the content of a document.\n\tyaml_PARSE_DOCUMENT_END_STATE                      // Expect DOCUMENT-END.\n\tyaml_PARSE_BLOCK_NODE_STATE                        // Expect a block node.\n\tyaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE // Expect a block node or indentless sequence.\n\tyaml_PARSE_FLOW_NODE_STATE                         // Expect a flow node.\n\tyaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE        // Expect the first entry of a block sequence.\n\tyaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE              // Expect an entry of a block sequence.\n\tyaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE         // Expect an entry of an indentless sequence.\n\tyaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE           // Expect the first key of a block mapping.\n\tyaml_PARSE_BLOCK_MAPPING_KEY_STATE                 // Expect a block mapping key.\n\tyaml_PARSE_BLOCK_MAPPING_VALUE_STATE               // Expect a block mapping value.\n\tyaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE         // Expect the first entry of a flow sequence.\n\tyaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE               // Expect an entry of a flow sequence.\n\tyaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE   // Expect a key of an ordered mapping.\n\tyaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE // Expect a value of an ordered mapping.\n\tyaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE   // Expect the and of an ordered mapping entry.\n\tyaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE            // Expect the first key of a flow mapping.\n\tyaml_PARSE_FLOW_MAPPING_KEY_STATE                  // Expect a key of a flow mapping.\n\tyaml_PARSE_FLOW_MAPPING_VALUE_STATE                // Expect a value of a flow mapping.\n\tyaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE          // Expect an empty value of a flow mapping.\n\tyaml_PARSE_END_STATE                               // Expect nothing.\n)\n\nfunc (ps yaml_parser_state_t) String() string {\n\tswitch ps {\n\tcase yaml_PARSE_STREAM_START_STATE:\n\t\treturn \"yaml_PARSE_STREAM_START_STATE\"\n\tcase yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE:\n\t\treturn \"yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE\"\n\tcase yaml_PARSE_DOCUMENT_START_STATE:\n\t\treturn \"yaml_PARSE_DOCUMENT_START_STATE\"\n\tcase yaml_PARSE_DOCUMENT_CONTENT_STATE:\n\t\treturn \"yaml_PARSE_DOCUMENT_CONTENT_STATE\"\n\tcase yaml_PARSE_DOCUMENT_END_STATE:\n\t\treturn \"yaml_PARSE_DOCUMENT_END_STATE\"\n\tcase yaml_PARSE_BLOCK_NODE_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_NODE_STATE\"\n\tcase yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE\"\n\tcase yaml_PARSE_FLOW_NODE_STATE:\n\t\treturn \"yaml_PARSE_FLOW_NODE_STATE\"\n\tcase yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE\"\n\tcase yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE\"\n\tcase yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE\"\n\tcase yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE\"\n\tcase yaml_PARSE_BLOCK_MAPPING_KEY_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_MAPPING_KEY_STATE\"\n\tcase yaml_PARSE_BLOCK_MAPPING_VALUE_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_MAPPING_VALUE_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE\"\n\tcase yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE\"\n\tcase yaml_PARSE_FLOW_MAPPING_KEY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_MAPPING_KEY_STATE\"\n\tcase yaml_PARSE_FLOW_MAPPING_VALUE_STATE:\n\t\treturn \"yaml_PARSE_FLOW_MAPPING_VALUE_STATE\"\n\tcase yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE:\n\t\treturn \"yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE\"\n\tcase yaml_PARSE_END_STATE:\n\t\treturn \"yaml_PARSE_END_STATE\"\n\t}\n\treturn \"<unknown parser state>\"\n}\n\n// This structure holds aliases data.\ntype yaml_alias_data_t struct {\n\tanchor []byte      // The anchor.\n\tindex  int         // The node id.\n\tmark   yaml_mark_t // The anchor mark.\n}\n\n// The parser structure.\n//\n// All members are internal. Manage the structure using the\n// yaml_parser_ family of functions.\ntype yaml_parser_t struct {\n\n\t// Error handling\n\n\terror yaml_error_type_t // Error type.\n\n\tproblem string // Error description.\n\n\t// The byte about which the problem occurred.\n\tproblem_offset int\n\tproblem_value  int\n\tproblem_mark   yaml_mark_t\n\n\t// The error context.\n\tcontext      string\n\tcontext_mark yaml_mark_t\n\n\t// Reader stuff\n\n\tread_handler yaml_read_handler_t // Read handler.\n\n\tinput_reader io.Reader // File input data.\n\tinput        []byte    // String input data.\n\tinput_pos    int\n\n\teof bool // EOF flag\n\n\tbuffer     []byte // The working buffer.\n\tbuffer_pos int    // The current position of the buffer.\n\n\tunread int // The number of unread characters in the buffer.\n\n\tnewlines int // The number of line breaks since last non-break/non-blank character\n\n\traw_buffer     []byte // The raw buffer.\n\traw_buffer_pos int    // The current position of the buffer.\n\n\tencoding yaml_encoding_t // The input encoding.\n\n\toffset int         // The offset of the current position (in bytes).\n\tmark   yaml_mark_t // The mark of the current position.\n\n\t// Comments\n\n\thead_comment []byte // The current head comments\n\tline_comment []byte // The current line comments\n\tfoot_comment []byte // The current foot comments\n\ttail_comment []byte // Foot comment that happens at the end of a block.\n\tstem_comment []byte // Comment in item preceding a nested structure (list inside list item, etc)\n\n\tcomments      []yaml_comment_t // The folded comments for all parsed tokens\n\tcomments_head int\n\n\t// Scanner stuff\n\n\tstream_start_produced bool // Have we started to scan the input stream?\n\tstream_end_produced   bool // Have we reached the end of the input stream?\n\n\tflow_level int // The number of unclosed '[' and '{' indicators.\n\n\ttokens          []yaml_token_t // The tokens queue.\n\ttokens_head     int            // The head of the tokens queue.\n\ttokens_parsed   int            // The number of tokens fetched from the queue.\n\ttoken_available bool           // Does the tokens queue contain a token ready for dequeueing.\n\n\tindent  int   // The current indentation level.\n\tindents []int // The indentation levels stack.\n\n\tsimple_key_allowed bool                // May a simple key occur at the current position?\n\tsimple_keys        []yaml_simple_key_t // The stack of simple keys.\n\tsimple_keys_by_tok map[int]int         // possible simple_key indexes indexed by token_number\n\n\t// Parser stuff\n\n\tstate          yaml_parser_state_t    // The current parser state.\n\tstates         []yaml_parser_state_t  // The parser states stack.\n\tmarks          []yaml_mark_t          // The stack of marks.\n\ttag_directives []yaml_tag_directive_t // The list of TAG directives.\n\n\t// Dumper stuff\n\n\taliases []yaml_alias_data_t // The alias data.\n\n\tdocument *yaml_document_t // The currently parsed document.\n}\n\ntype yaml_comment_t struct {\n\n\tscan_mark  yaml_mark_t // Position where scanning for comments started\n\ttoken_mark yaml_mark_t // Position after which tokens will be associated with this comment\n\tstart_mark yaml_mark_t // Position of '#' comment mark\n\tend_mark   yaml_mark_t // Position where comment terminated\n\n\thead []byte\n\tline []byte\n\tfoot []byte\n}\n\n// Emitter Definitions\n\n// The prototype of a write handler.\n//\n// The write handler is called when the emitter needs to flush the accumulated\n// characters to the output.  The handler should write @a size bytes of the\n// @a buffer to the output.\n//\n// @param[in,out]   data        A pointer to an application data specified by\n//                              yaml_emitter_set_output().\n// @param[in]       buffer      The buffer with bytes to be written.\n// @param[in]       size        The size of the buffer.\n//\n// @returns On success, the handler should return @c 1.  If the handler failed,\n// the returned value should be @c 0.\n//\ntype yaml_write_handler_t func(emitter *yaml_emitter_t, buffer []byte) error\n\ntype yaml_emitter_state_t int\n\n// The emitter states.\nconst (\n\t// Expect STREAM-START.\n\tyaml_EMIT_STREAM_START_STATE yaml_emitter_state_t = iota\n\n\tyaml_EMIT_FIRST_DOCUMENT_START_STATE       // Expect the first DOCUMENT-START or STREAM-END.\n\tyaml_EMIT_DOCUMENT_START_STATE             // Expect DOCUMENT-START or STREAM-END.\n\tyaml_EMIT_DOCUMENT_CONTENT_STATE           // Expect the content of a document.\n\tyaml_EMIT_DOCUMENT_END_STATE               // Expect DOCUMENT-END.\n\tyaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE   // Expect the first item of a flow sequence.\n\tyaml_EMIT_FLOW_SEQUENCE_TRAIL_ITEM_STATE   // Expect the next item of a flow sequence, with the comma already written out\n\tyaml_EMIT_FLOW_SEQUENCE_ITEM_STATE         // Expect an item of a flow sequence.\n\tyaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE     // Expect the first key of a flow mapping.\n\tyaml_EMIT_FLOW_MAPPING_TRAIL_KEY_STATE     // Expect the next key of a flow mapping, with the comma already written out\n\tyaml_EMIT_FLOW_MAPPING_KEY_STATE           // Expect a key of a flow mapping.\n\tyaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE  // Expect a value for a simple key of a flow mapping.\n\tyaml_EMIT_FLOW_MAPPING_VALUE_STATE         // Expect a value of a flow mapping.\n\tyaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE  // Expect the first item of a block sequence.\n\tyaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE        // Expect an item of a block sequence.\n\tyaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE    // Expect the first key of a block mapping.\n\tyaml_EMIT_BLOCK_MAPPING_KEY_STATE          // Expect the key of a block mapping.\n\tyaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE // Expect a value for a simple key of a block mapping.\n\tyaml_EMIT_BLOCK_MAPPING_VALUE_STATE        // Expect a value of a block mapping.\n\tyaml_EMIT_END_STATE                        // Expect nothing.\n)\n\n// The emitter structure.\n//\n// All members are internal.  Manage the structure using the @c yaml_emitter_\n// family of functions.\ntype yaml_emitter_t struct {\n\n\t// Error handling\n\n\terror   yaml_error_type_t // Error type.\n\tproblem string            // Error description.\n\n\t// Writer stuff\n\n\twrite_handler yaml_write_handler_t // Write handler.\n\n\toutput_buffer *[]byte   // String output data.\n\toutput_writer io.Writer // File output data.\n\n\tbuffer     []byte // The working buffer.\n\tbuffer_pos int    // The current position of the buffer.\n\n\traw_buffer     []byte // The raw buffer.\n\traw_buffer_pos int    // The current position of the buffer.\n\n\tencoding yaml_encoding_t // The stream encoding.\n\n\t// Emitter stuff\n\n\tcanonical   bool         // If the output is in the canonical style?\n\tbest_indent int          // The number of indentation spaces.\n\tbest_width  int          // The preferred width of the output lines.\n\tunicode     bool         // Allow unescaped non-ASCII characters?\n\tline_break  yaml_break_t // The preferred line break.\n\n\tstate  yaml_emitter_state_t   // The current emitter state.\n\tstates []yaml_emitter_state_t // The stack of states.\n\n\tevents      []yaml_event_t // The event queue.\n\tevents_head int            // The head of the event queue.\n\n\tindents []int // The stack of indentation levels.\n\n\ttag_directives []yaml_tag_directive_t // The list of tag directives.\n\n\tindent int // The current indentation level.\n\n\tflow_level int // The current flow level.\n\n\troot_context       bool // Is it the document root context?\n\tsequence_context   bool // Is it a sequence context?\n\tmapping_context    bool // Is it a mapping context?\n\tsimple_key_context bool // Is it a simple mapping key context?\n\n\tline       int  // The current line.\n\tcolumn     int  // The current column.\n\twhitespace bool // If the last character was a whitespace?\n\tindention  bool // If the last character was an indentation character (' ', '-', '?', ':')?\n\topen_ended bool // If an explicit document end is required?\n\n\tspace_above bool // Is there's an empty line above?\n\tfoot_indent int  // The indent used to write the foot comment above, or -1 if none.\n\n\t// Anchor analysis.\n\tanchor_data struct {\n\t\tanchor []byte // The anchor value.\n\t\talias  bool   // Is it an alias?\n\t}\n\n\t// Tag analysis.\n\ttag_data struct {\n\t\thandle []byte // The tag handle.\n\t\tsuffix []byte // The tag suffix.\n\t}\n\n\t// Scalar analysis.\n\tscalar_data struct {\n\t\tvalue                 []byte              // The scalar value.\n\t\tmultiline             bool                // Does the scalar contain line breaks?\n\t\tflow_plain_allowed    bool                // Can the scalar be expessed in the flow plain style?\n\t\tblock_plain_allowed   bool                // Can the scalar be expressed in the block plain style?\n\t\tsingle_quoted_allowed bool                // Can the scalar be expressed in the single quoted style?\n\t\tblock_allowed         bool                // Can the scalar be expressed in the literal or folded styles?\n\t\tstyle                 yaml_scalar_style_t // The output style.\n\t}\n\n\t// Comments\n\thead_comment []byte\n\tline_comment []byte\n\tfoot_comment []byte\n\ttail_comment []byte\n\n\tkey_line_comment []byte\n\n\t// Dumper stuff\n\n\topened bool // If the stream was already opened?\n\tclosed bool // If the stream was already closed?\n\n\t// The information associated with the document nodes.\n\tanchors *struct {\n\t\treferences int  // The number of references.\n\t\tanchor     int  // The anchor id.\n\t\tserialized bool // If the node has been emitted?\n\t}\n\n\tlast_anchor_id int // The last assigned anchor id.\n\n\tdocument *yaml_document_t // The currently emitted document.\n}\n"
  },
  {
    "path": "vendor/gopkg.in/yaml.v3/yamlprivateh.go",
    "content": "// \n// Copyright (c) 2011-2019 Canonical Ltd\n// Copyright (c) 2006-2010 Kirill Simonov\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\n// of the Software, and to permit persons to whom the Software is furnished to do\n// so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\npackage yaml\n\nconst (\n\t// The size of the input raw buffer.\n\tinput_raw_buffer_size = 512\n\n\t// The size of the input buffer.\n\t// It should be possible to decode the whole raw buffer.\n\tinput_buffer_size = input_raw_buffer_size * 3\n\n\t// The size of the output buffer.\n\toutput_buffer_size = 128\n\n\t// The size of the output raw buffer.\n\t// It should be possible to encode the whole output buffer.\n\toutput_raw_buffer_size = (output_buffer_size*2 + 2)\n\n\t// The size of other stacks and queues.\n\tinitial_stack_size  = 16\n\tinitial_queue_size  = 16\n\tinitial_string_size = 16\n)\n\n// Check if the character at the specified position is an alphabetical\n// character, a digit, '_', or '-'.\nfunc is_alpha(b []byte, i int) bool {\n\treturn b[i] >= '0' && b[i] <= '9' || b[i] >= 'A' && b[i] <= 'Z' || b[i] >= 'a' && b[i] <= 'z' || b[i] == '_' || b[i] == '-'\n}\n\n// Check if the character at the specified position is a digit.\nfunc is_digit(b []byte, i int) bool {\n\treturn b[i] >= '0' && b[i] <= '9'\n}\n\n// Get the value of a digit.\nfunc as_digit(b []byte, i int) int {\n\treturn int(b[i]) - '0'\n}\n\n// Check if the character at the specified position is a hex-digit.\nfunc is_hex(b []byte, i int) bool {\n\treturn b[i] >= '0' && b[i] <= '9' || b[i] >= 'A' && b[i] <= 'F' || b[i] >= 'a' && b[i] <= 'f'\n}\n\n// Get the value of a hex-digit.\nfunc as_hex(b []byte, i int) int {\n\tbi := b[i]\n\tif bi >= 'A' && bi <= 'F' {\n\t\treturn int(bi) - 'A' + 10\n\t}\n\tif bi >= 'a' && bi <= 'f' {\n\t\treturn int(bi) - 'a' + 10\n\t}\n\treturn int(bi) - '0'\n}\n\n// Check if the character is ASCII.\nfunc is_ascii(b []byte, i int) bool {\n\treturn b[i] <= 0x7F\n}\n\n// Check if the character at the start of the buffer can be printed unescaped.\nfunc is_printable(b []byte, i int) bool {\n\treturn ((b[i] == 0x0A) || // . == #x0A\n\t\t(b[i] >= 0x20 && b[i] <= 0x7E) || // #x20 <= . <= #x7E\n\t\t(b[i] == 0xC2 && b[i+1] >= 0xA0) || // #0xA0 <= . <= #xD7FF\n\t\t(b[i] > 0xC2 && b[i] < 0xED) ||\n\t\t(b[i] == 0xED && b[i+1] < 0xA0) ||\n\t\t(b[i] == 0xEE) ||\n\t\t(b[i] == 0xEF && // #xE000 <= . <= #xFFFD\n\t\t\t!(b[i+1] == 0xBB && b[i+2] == 0xBF) && // && . != #xFEFF\n\t\t\t!(b[i+1] == 0xBF && (b[i+2] == 0xBE || b[i+2] == 0xBF))))\n}\n\n// Check if the character at the specified position is NUL.\nfunc is_z(b []byte, i int) bool {\n\treturn b[i] == 0x00\n}\n\n// Check if the beginning of the buffer is a BOM.\nfunc is_bom(b []byte, i int) bool {\n\treturn b[0] == 0xEF && b[1] == 0xBB && b[2] == 0xBF\n}\n\n// Check if the character at the specified position is space.\nfunc is_space(b []byte, i int) bool {\n\treturn b[i] == ' '\n}\n\n// Check if the character at the specified position is tab.\nfunc is_tab(b []byte, i int) bool {\n\treturn b[i] == '\\t'\n}\n\n// Check if the character at the specified position is blank (space or tab).\nfunc is_blank(b []byte, i int) bool {\n\t//return is_space(b, i) || is_tab(b, i)\n\treturn b[i] == ' ' || b[i] == '\\t'\n}\n\n// Check if the character at the specified position is a line break.\nfunc is_break(b []byte, i int) bool {\n\treturn (b[i] == '\\r' || // CR (#xD)\n\t\tb[i] == '\\n' || // LF (#xA)\n\t\tb[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9) // PS (#x2029)\n}\n\nfunc is_crlf(b []byte, i int) bool {\n\treturn b[i] == '\\r' && b[i+1] == '\\n'\n}\n\n// Check if the character is a line break or NUL.\nfunc is_breakz(b []byte, i int) bool {\n\t//return is_break(b, i) || is_z(b, i)\n\treturn (\n\t\t// is_break:\n\t\tb[i] == '\\r' || // CR (#xD)\n\t\tb[i] == '\\n' || // LF (#xA)\n\t\tb[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029)\n\t\t// is_z:\n\t\tb[i] == 0)\n}\n\n// Check if the character is a line break, space, or NUL.\nfunc is_spacez(b []byte, i int) bool {\n\t//return is_space(b, i) || is_breakz(b, i)\n\treturn (\n\t\t// is_space:\n\t\tb[i] == ' ' ||\n\t\t// is_breakz:\n\t\tb[i] == '\\r' || // CR (#xD)\n\t\tb[i] == '\\n' || // LF (#xA)\n\t\tb[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029)\n\t\tb[i] == 0)\n}\n\n// Check if the character is a line break, space, tab, or NUL.\nfunc is_blankz(b []byte, i int) bool {\n\t//return is_blank(b, i) || is_breakz(b, i)\n\treturn (\n\t\t// is_blank:\n\t\tb[i] == ' ' || b[i] == '\\t' ||\n\t\t// is_breakz:\n\t\tb[i] == '\\r' || // CR (#xD)\n\t\tb[i] == '\\n' || // LF (#xA)\n\t\tb[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029)\n\t\tb[i] == 0)\n}\n\n// Determine the width of the character.\nfunc width(b byte) int {\n\t// Don't replace these by a switch without first\n\t// confirming that it is being inlined.\n\tif b&0x80 == 0x00 {\n\t\treturn 1\n\t}\n\tif b&0xE0 == 0xC0 {\n\t\treturn 2\n\t}\n\tif b&0xF0 == 0xE0 {\n\t\treturn 3\n\t}\n\tif b&0xF8 == 0xF0 {\n\t\treturn 4\n\t}\n\treturn 0\n\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1/doc.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n// +groupName=admissionregistration.k8s.io\n\n// Package v1 is the v1 version of the API.\n// AdmissionConfiguration and AdmissionPluginConfiguration are legacy static admission plugin configuration\n// MutatingWebhookConfiguration and ValidatingWebhookConfiguration are for the\n// new dynamic admission controller configuration.\npackage v1 // import \"k8s.io/api/admissionregistration/v1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/admissionregistration/v1/generated.proto\n\npackage v1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tk8s_io_apimachinery_pkg_apis_meta_v1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *AuditAnnotation) Reset()      { *m = AuditAnnotation{} }\nfunc (*AuditAnnotation) ProtoMessage() {}\nfunc (*AuditAnnotation) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3205c7dc5bf0c9bf, []int{0}\n}\nfunc (m *AuditAnnotation) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *AuditAnnotation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *AuditAnnotation) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_AuditAnnotation.Merge(m, src)\n}\nfunc (m *AuditAnnotation) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *AuditAnnotation) XXX_DiscardUnknown() {\n\txxx_messageInfo_AuditAnnotation.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_AuditAnnotation proto.InternalMessageInfo\n\nfunc (m *ExpressionWarning) Reset()      { *m = ExpressionWarning{} }\nfunc (*ExpressionWarning) ProtoMessage() {}\nfunc (*ExpressionWarning) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3205c7dc5bf0c9bf, []int{1}\n}\nfunc (m *ExpressionWarning) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ExpressionWarning) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ExpressionWarning) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ExpressionWarning.Merge(m, src)\n}\nfunc (m *ExpressionWarning) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ExpressionWarning) XXX_DiscardUnknown() {\n\txxx_messageInfo_ExpressionWarning.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ExpressionWarning proto.InternalMessageInfo\n\nfunc (m *MatchCondition) Reset()      { *m = MatchCondition{} }\nfunc (*MatchCondition) ProtoMessage() {}\nfunc (*MatchCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3205c7dc5bf0c9bf, []int{2}\n}\nfunc (m *MatchCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MatchCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MatchCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MatchCondition.Merge(m, src)\n}\nfunc (m *MatchCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MatchCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_MatchCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MatchCondition proto.InternalMessageInfo\n\nfunc (m *MatchResources) Reset()      { *m = MatchResources{} }\nfunc (*MatchResources) ProtoMessage() {}\nfunc (*MatchResources) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3205c7dc5bf0c9bf, []int{3}\n}\nfunc (m *MatchResources) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MatchResources) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MatchResources) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MatchResources.Merge(m, src)\n}\nfunc (m *MatchResources) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MatchResources) XXX_DiscardUnknown() {\n\txxx_messageInfo_MatchResources.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MatchResources proto.InternalMessageInfo\n\nfunc (m *MutatingWebhook) Reset()      { *m = MutatingWebhook{} }\nfunc (*MutatingWebhook) ProtoMessage() {}\nfunc (*MutatingWebhook) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3205c7dc5bf0c9bf, []int{4}\n}\nfunc (m *MutatingWebhook) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MutatingWebhook) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MutatingWebhook) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MutatingWebhook.Merge(m, src)\n}\nfunc (m *MutatingWebhook) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MutatingWebhook) XXX_DiscardUnknown() {\n\txxx_messageInfo_MutatingWebhook.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MutatingWebhook proto.InternalMessageInfo\n\nfunc (m *MutatingWebhookConfiguration) Reset()      { *m = MutatingWebhookConfiguration{} }\nfunc (*MutatingWebhookConfiguration) ProtoMessage() {}\nfunc (*MutatingWebhookConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3205c7dc5bf0c9bf, []int{5}\n}\nfunc (m *MutatingWebhookConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MutatingWebhookConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MutatingWebhookConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MutatingWebhookConfiguration.Merge(m, src)\n}\nfunc (m *MutatingWebhookConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MutatingWebhookConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_MutatingWebhookConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MutatingWebhookConfiguration proto.InternalMessageInfo\n\nfunc (m *MutatingWebhookConfigurationList) Reset()      { *m = MutatingWebhookConfigurationList{} }\nfunc (*MutatingWebhookConfigurationList) ProtoMessage() {}\nfunc (*MutatingWebhookConfigurationList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3205c7dc5bf0c9bf, []int{6}\n}\nfunc (m *MutatingWebhookConfigurationList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MutatingWebhookConfigurationList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MutatingWebhookConfigurationList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MutatingWebhookConfigurationList.Merge(m, src)\n}\nfunc (m *MutatingWebhookConfigurationList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MutatingWebhookConfigurationList) XXX_DiscardUnknown() {\n\txxx_messageInfo_MutatingWebhookConfigurationList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MutatingWebhookConfigurationList proto.InternalMessageInfo\n\nfunc (m *NamedRuleWithOperations) Reset()      { *m = NamedRuleWithOperations{} }\nfunc (*NamedRuleWithOperations) ProtoMessage() {}\nfunc (*NamedRuleWithOperations) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3205c7dc5bf0c9bf, []int{7}\n}\nfunc (m *NamedRuleWithOperations) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NamedRuleWithOperations) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NamedRuleWithOperations) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NamedRuleWithOperations.Merge(m, src)\n}\nfunc (m *NamedRuleWithOperations) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NamedRuleWithOperations) XXX_DiscardUnknown() {\n\txxx_messageInfo_NamedRuleWithOperations.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NamedRuleWithOperations proto.InternalMessageInfo\n\nfunc (m *ParamKind) Reset()      { *m = ParamKind{} }\nfunc (*ParamKind) ProtoMessage() {}\nfunc (*ParamKind) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3205c7dc5bf0c9bf, []int{8}\n}\nfunc (m *ParamKind) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ParamKind) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ParamKind) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ParamKind.Merge(m, src)\n}\nfunc (m *ParamKind) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ParamKind) XXX_DiscardUnknown() {\n\txxx_messageInfo_ParamKind.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ParamKind proto.InternalMessageInfo\n\nfunc (m *ParamRef) Reset()      { *m = ParamRef{} }\nfunc (*ParamRef) ProtoMessage() {}\nfunc (*ParamRef) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3205c7dc5bf0c9bf, []int{9}\n}\nfunc (m *ParamRef) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ParamRef) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ParamRef) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ParamRef.Merge(m, src)\n}\nfunc (m *ParamRef) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ParamRef) XXX_DiscardUnknown() {\n\txxx_messageInfo_ParamRef.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ParamRef proto.InternalMessageInfo\n\nfunc (m *Rule) Reset()      { *m = Rule{} }\nfunc (*Rule) ProtoMessage() {}\nfunc (*Rule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3205c7dc5bf0c9bf, []int{10}\n}\nfunc (m *Rule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Rule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Rule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Rule.Merge(m, src)\n}\nfunc (m *Rule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Rule) XXX_DiscardUnknown() {\n\txxx_messageInfo_Rule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Rule proto.InternalMessageInfo\n\nfunc (m *RuleWithOperations) Reset()      { *m = RuleWithOperations{} }\nfunc (*RuleWithOperations) ProtoMessage() {}\nfunc (*RuleWithOperations) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3205c7dc5bf0c9bf, []int{11}\n}\nfunc (m *RuleWithOperations) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RuleWithOperations) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RuleWithOperations) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RuleWithOperations.Merge(m, src)\n}\nfunc (m *RuleWithOperations) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RuleWithOperations) XXX_DiscardUnknown() {\n\txxx_messageInfo_RuleWithOperations.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RuleWithOperations proto.InternalMessageInfo\n\nfunc (m *ServiceReference) Reset()      { *m = ServiceReference{} }\nfunc (*ServiceReference) ProtoMessage() {}\nfunc (*ServiceReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3205c7dc5bf0c9bf, []int{12}\n}\nfunc (m *ServiceReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ServiceReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ServiceReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServiceReference.Merge(m, src)\n}\nfunc (m *ServiceReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ServiceReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServiceReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServiceReference proto.InternalMessageInfo\n\nfunc (m *TypeChecking) Reset()      { *m = TypeChecking{} }\nfunc (*TypeChecking) ProtoMessage() {}\nfunc (*TypeChecking) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3205c7dc5bf0c9bf, []int{13}\n}\nfunc (m *TypeChecking) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TypeChecking) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TypeChecking) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TypeChecking.Merge(m, src)\n}\nfunc (m *TypeChecking) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TypeChecking) XXX_DiscardUnknown() {\n\txxx_messageInfo_TypeChecking.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TypeChecking proto.InternalMessageInfo\n\nfunc (m *ValidatingAdmissionPolicy) Reset()      { *m = ValidatingAdmissionPolicy{} }\nfunc (*ValidatingAdmissionPolicy) ProtoMessage() {}\nfunc (*ValidatingAdmissionPolicy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3205c7dc5bf0c9bf, []int{14}\n}\nfunc (m *ValidatingAdmissionPolicy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ValidatingAdmissionPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ValidatingAdmissionPolicy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ValidatingAdmissionPolicy.Merge(m, src)\n}\nfunc (m *ValidatingAdmissionPolicy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ValidatingAdmissionPolicy) XXX_DiscardUnknown() {\n\txxx_messageInfo_ValidatingAdmissionPolicy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ValidatingAdmissionPolicy proto.InternalMessageInfo\n\nfunc (m *ValidatingAdmissionPolicyBinding) Reset()      { *m = ValidatingAdmissionPolicyBinding{} }\nfunc (*ValidatingAdmissionPolicyBinding) ProtoMessage() {}\nfunc (*ValidatingAdmissionPolicyBinding) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3205c7dc5bf0c9bf, []int{15}\n}\nfunc (m *ValidatingAdmissionPolicyBinding) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ValidatingAdmissionPolicyBinding) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ValidatingAdmissionPolicyBinding) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ValidatingAdmissionPolicyBinding.Merge(m, src)\n}\nfunc (m *ValidatingAdmissionPolicyBinding) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ValidatingAdmissionPolicyBinding) XXX_DiscardUnknown() {\n\txxx_messageInfo_ValidatingAdmissionPolicyBinding.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ValidatingAdmissionPolicyBinding proto.InternalMessageInfo\n\nfunc (m *ValidatingAdmissionPolicyBindingList) Reset()      { *m = ValidatingAdmissionPolicyBindingList{} }\nfunc (*ValidatingAdmissionPolicyBindingList) ProtoMessage() {}\nfunc (*ValidatingAdmissionPolicyBindingList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3205c7dc5bf0c9bf, []int{16}\n}\nfunc (m *ValidatingAdmissionPolicyBindingList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ValidatingAdmissionPolicyBindingList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ValidatingAdmissionPolicyBindingList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ValidatingAdmissionPolicyBindingList.Merge(m, src)\n}\nfunc (m *ValidatingAdmissionPolicyBindingList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ValidatingAdmissionPolicyBindingList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ValidatingAdmissionPolicyBindingList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ValidatingAdmissionPolicyBindingList proto.InternalMessageInfo\n\nfunc (m *ValidatingAdmissionPolicyBindingSpec) Reset()      { *m = ValidatingAdmissionPolicyBindingSpec{} }\nfunc (*ValidatingAdmissionPolicyBindingSpec) ProtoMessage() {}\nfunc (*ValidatingAdmissionPolicyBindingSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3205c7dc5bf0c9bf, []int{17}\n}\nfunc (m *ValidatingAdmissionPolicyBindingSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ValidatingAdmissionPolicyBindingSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ValidatingAdmissionPolicyBindingSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ValidatingAdmissionPolicyBindingSpec.Merge(m, src)\n}\nfunc (m *ValidatingAdmissionPolicyBindingSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ValidatingAdmissionPolicyBindingSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ValidatingAdmissionPolicyBindingSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ValidatingAdmissionPolicyBindingSpec proto.InternalMessageInfo\n\nfunc (m *ValidatingAdmissionPolicyList) Reset()      { *m = ValidatingAdmissionPolicyList{} }\nfunc (*ValidatingAdmissionPolicyList) ProtoMessage() {}\nfunc (*ValidatingAdmissionPolicyList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3205c7dc5bf0c9bf, []int{18}\n}\nfunc (m *ValidatingAdmissionPolicyList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ValidatingAdmissionPolicyList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ValidatingAdmissionPolicyList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ValidatingAdmissionPolicyList.Merge(m, src)\n}\nfunc (m *ValidatingAdmissionPolicyList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ValidatingAdmissionPolicyList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ValidatingAdmissionPolicyList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ValidatingAdmissionPolicyList proto.InternalMessageInfo\n\nfunc (m *ValidatingAdmissionPolicySpec) Reset()      { *m = ValidatingAdmissionPolicySpec{} }\nfunc (*ValidatingAdmissionPolicySpec) ProtoMessage() {}\nfunc (*ValidatingAdmissionPolicySpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3205c7dc5bf0c9bf, []int{19}\n}\nfunc (m *ValidatingAdmissionPolicySpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ValidatingAdmissionPolicySpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ValidatingAdmissionPolicySpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ValidatingAdmissionPolicySpec.Merge(m, src)\n}\nfunc (m *ValidatingAdmissionPolicySpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ValidatingAdmissionPolicySpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ValidatingAdmissionPolicySpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ValidatingAdmissionPolicySpec proto.InternalMessageInfo\n\nfunc (m *ValidatingAdmissionPolicyStatus) Reset()      { *m = ValidatingAdmissionPolicyStatus{} }\nfunc (*ValidatingAdmissionPolicyStatus) ProtoMessage() {}\nfunc (*ValidatingAdmissionPolicyStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3205c7dc5bf0c9bf, []int{20}\n}\nfunc (m *ValidatingAdmissionPolicyStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ValidatingAdmissionPolicyStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ValidatingAdmissionPolicyStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ValidatingAdmissionPolicyStatus.Merge(m, src)\n}\nfunc (m *ValidatingAdmissionPolicyStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ValidatingAdmissionPolicyStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ValidatingAdmissionPolicyStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ValidatingAdmissionPolicyStatus proto.InternalMessageInfo\n\nfunc (m *ValidatingWebhook) Reset()      { *m = ValidatingWebhook{} }\nfunc (*ValidatingWebhook) ProtoMessage() {}\nfunc (*ValidatingWebhook) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3205c7dc5bf0c9bf, []int{21}\n}\nfunc (m *ValidatingWebhook) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ValidatingWebhook) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ValidatingWebhook) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ValidatingWebhook.Merge(m, src)\n}\nfunc (m *ValidatingWebhook) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ValidatingWebhook) XXX_DiscardUnknown() {\n\txxx_messageInfo_ValidatingWebhook.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ValidatingWebhook proto.InternalMessageInfo\n\nfunc (m *ValidatingWebhookConfiguration) Reset()      { *m = ValidatingWebhookConfiguration{} }\nfunc (*ValidatingWebhookConfiguration) ProtoMessage() {}\nfunc (*ValidatingWebhookConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3205c7dc5bf0c9bf, []int{22}\n}\nfunc (m *ValidatingWebhookConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ValidatingWebhookConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ValidatingWebhookConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ValidatingWebhookConfiguration.Merge(m, src)\n}\nfunc (m *ValidatingWebhookConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ValidatingWebhookConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_ValidatingWebhookConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ValidatingWebhookConfiguration proto.InternalMessageInfo\n\nfunc (m *ValidatingWebhookConfigurationList) Reset()      { *m = ValidatingWebhookConfigurationList{} }\nfunc (*ValidatingWebhookConfigurationList) ProtoMessage() {}\nfunc (*ValidatingWebhookConfigurationList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3205c7dc5bf0c9bf, []int{23}\n}\nfunc (m *ValidatingWebhookConfigurationList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ValidatingWebhookConfigurationList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ValidatingWebhookConfigurationList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ValidatingWebhookConfigurationList.Merge(m, src)\n}\nfunc (m *ValidatingWebhookConfigurationList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ValidatingWebhookConfigurationList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ValidatingWebhookConfigurationList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ValidatingWebhookConfigurationList proto.InternalMessageInfo\n\nfunc (m *Validation) Reset()      { *m = Validation{} }\nfunc (*Validation) ProtoMessage() {}\nfunc (*Validation) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3205c7dc5bf0c9bf, []int{24}\n}\nfunc (m *Validation) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Validation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Validation) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Validation.Merge(m, src)\n}\nfunc (m *Validation) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Validation) XXX_DiscardUnknown() {\n\txxx_messageInfo_Validation.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Validation proto.InternalMessageInfo\n\nfunc (m *Variable) Reset()      { *m = Variable{} }\nfunc (*Variable) ProtoMessage() {}\nfunc (*Variable) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3205c7dc5bf0c9bf, []int{25}\n}\nfunc (m *Variable) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Variable) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Variable) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Variable.Merge(m, src)\n}\nfunc (m *Variable) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Variable) XXX_DiscardUnknown() {\n\txxx_messageInfo_Variable.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Variable proto.InternalMessageInfo\n\nfunc (m *WebhookClientConfig) Reset()      { *m = WebhookClientConfig{} }\nfunc (*WebhookClientConfig) ProtoMessage() {}\nfunc (*WebhookClientConfig) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3205c7dc5bf0c9bf, []int{26}\n}\nfunc (m *WebhookClientConfig) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *WebhookClientConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *WebhookClientConfig) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_WebhookClientConfig.Merge(m, src)\n}\nfunc (m *WebhookClientConfig) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *WebhookClientConfig) XXX_DiscardUnknown() {\n\txxx_messageInfo_WebhookClientConfig.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_WebhookClientConfig proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*AuditAnnotation)(nil), \"k8s.io.api.admissionregistration.v1.AuditAnnotation\")\n\tproto.RegisterType((*ExpressionWarning)(nil), \"k8s.io.api.admissionregistration.v1.ExpressionWarning\")\n\tproto.RegisterType((*MatchCondition)(nil), \"k8s.io.api.admissionregistration.v1.MatchCondition\")\n\tproto.RegisterType((*MatchResources)(nil), \"k8s.io.api.admissionregistration.v1.MatchResources\")\n\tproto.RegisterType((*MutatingWebhook)(nil), \"k8s.io.api.admissionregistration.v1.MutatingWebhook\")\n\tproto.RegisterType((*MutatingWebhookConfiguration)(nil), \"k8s.io.api.admissionregistration.v1.MutatingWebhookConfiguration\")\n\tproto.RegisterType((*MutatingWebhookConfigurationList)(nil), \"k8s.io.api.admissionregistration.v1.MutatingWebhookConfigurationList\")\n\tproto.RegisterType((*NamedRuleWithOperations)(nil), \"k8s.io.api.admissionregistration.v1.NamedRuleWithOperations\")\n\tproto.RegisterType((*ParamKind)(nil), \"k8s.io.api.admissionregistration.v1.ParamKind\")\n\tproto.RegisterType((*ParamRef)(nil), \"k8s.io.api.admissionregistration.v1.ParamRef\")\n\tproto.RegisterType((*Rule)(nil), \"k8s.io.api.admissionregistration.v1.Rule\")\n\tproto.RegisterType((*RuleWithOperations)(nil), \"k8s.io.api.admissionregistration.v1.RuleWithOperations\")\n\tproto.RegisterType((*ServiceReference)(nil), \"k8s.io.api.admissionregistration.v1.ServiceReference\")\n\tproto.RegisterType((*TypeChecking)(nil), \"k8s.io.api.admissionregistration.v1.TypeChecking\")\n\tproto.RegisterType((*ValidatingAdmissionPolicy)(nil), \"k8s.io.api.admissionregistration.v1.ValidatingAdmissionPolicy\")\n\tproto.RegisterType((*ValidatingAdmissionPolicyBinding)(nil), \"k8s.io.api.admissionregistration.v1.ValidatingAdmissionPolicyBinding\")\n\tproto.RegisterType((*ValidatingAdmissionPolicyBindingList)(nil), \"k8s.io.api.admissionregistration.v1.ValidatingAdmissionPolicyBindingList\")\n\tproto.RegisterType((*ValidatingAdmissionPolicyBindingSpec)(nil), \"k8s.io.api.admissionregistration.v1.ValidatingAdmissionPolicyBindingSpec\")\n\tproto.RegisterType((*ValidatingAdmissionPolicyList)(nil), \"k8s.io.api.admissionregistration.v1.ValidatingAdmissionPolicyList\")\n\tproto.RegisterType((*ValidatingAdmissionPolicySpec)(nil), \"k8s.io.api.admissionregistration.v1.ValidatingAdmissionPolicySpec\")\n\tproto.RegisterType((*ValidatingAdmissionPolicyStatus)(nil), \"k8s.io.api.admissionregistration.v1.ValidatingAdmissionPolicyStatus\")\n\tproto.RegisterType((*ValidatingWebhook)(nil), \"k8s.io.api.admissionregistration.v1.ValidatingWebhook\")\n\tproto.RegisterType((*ValidatingWebhookConfiguration)(nil), \"k8s.io.api.admissionregistration.v1.ValidatingWebhookConfiguration\")\n\tproto.RegisterType((*ValidatingWebhookConfigurationList)(nil), \"k8s.io.api.admissionregistration.v1.ValidatingWebhookConfigurationList\")\n\tproto.RegisterType((*Validation)(nil), \"k8s.io.api.admissionregistration.v1.Validation\")\n\tproto.RegisterType((*Variable)(nil), \"k8s.io.api.admissionregistration.v1.Variable\")\n\tproto.RegisterType((*WebhookClientConfig)(nil), \"k8s.io.api.admissionregistration.v1.WebhookClientConfig\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/admissionregistration/v1/generated.proto\", fileDescriptor_3205c7dc5bf0c9bf)\n}\n\nvar fileDescriptor_3205c7dc5bf0c9bf = []byte{\n\t// 2075 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0xcd, 0x6f, 0x1b, 0xc7,\n\t0x15, 0xf7, 0x8a, 0x94, 0x44, 0x3e, 0xea, 0x8b, 0x13, 0x27, 0xa2, 0x1d, 0x87, 0x2b, 0x6c, 0x82,\n\t0xc2, 0x46, 0x63, 0x32, 0xb2, 0x53, 0x27, 0x08, 0x8a, 0x06, 0xa2, 0xfc, 0x01, 0xc5, 0x96, 0x2d,\n\t0x8c, 0x12, 0xa9, 0x68, 0xdd, 0x22, 0xab, 0xdd, 0x21, 0xb9, 0x11, 0xb9, 0xbb, 0xd8, 0xd9, 0x65,\n\t0xac, 0x9e, 0x8a, 0xf6, 0x5e, 0x14, 0xe8, 0x5f, 0xd0, 0xfe, 0x09, 0xbd, 0xb4, 0x40, 0x4f, 0xbd,\n\t0xf9, 0x52, 0x20, 0x3d, 0xd5, 0x87, 0x62, 0x51, 0xb3, 0x97, 0x1e, 0x7a, 0x68, 0xaf, 0x02, 0x8a,\n\t0x16, 0x33, 0x3b, 0xfb, 0xc9, 0xa5, 0xb5, 0x96, 0x6d, 0xf5, 0xe2, 0x9b, 0xf6, 0x7d, 0xfc, 0xde,\n\t0xbc, 0x37, 0x6f, 0xe6, 0xbd, 0x79, 0x14, 0x5c, 0x3f, 0xfc, 0x98, 0xb6, 0x0c, 0xab, 0xad, 0xda,\n\t0x46, 0x5b, 0xd5, 0x87, 0x06, 0xa5, 0x86, 0x65, 0x3a, 0xa4, 0x67, 0x50, 0xd7, 0x51, 0x5d, 0xc3,\n\t0x32, 0xdb, 0xa3, 0xf5, 0x76, 0x8f, 0x98, 0xc4, 0x51, 0x5d, 0xa2, 0xb7, 0x6c, 0xc7, 0x72, 0x2d,\n\t0xf4, 0x6e, 0xa0, 0xd4, 0x52, 0x6d, 0xa3, 0x95, 0xab, 0xd4, 0x1a, 0xad, 0x5f, 0xbc, 0xda, 0x33,\n\t0xdc, 0xbe, 0x77, 0xd0, 0xd2, 0xac, 0x61, 0xbb, 0x67, 0xf5, 0xac, 0x36, 0xd7, 0x3d, 0xf0, 0xba,\n\t0xfc, 0x8b, 0x7f, 0xf0, 0xbf, 0x02, 0xcc, 0x8b, 0x1f, 0xc6, 0x0b, 0x19, 0xaa, 0x5a, 0xdf, 0x30,\n\t0x89, 0x73, 0xd4, 0xb6, 0x0f, 0x7b, 0x8c, 0x40, 0xdb, 0x43, 0xe2, 0xaa, 0x39, 0x2b, 0xb9, 0xd8,\n\t0x9e, 0xa6, 0xe5, 0x78, 0xa6, 0x6b, 0x0c, 0xc9, 0x84, 0xc2, 0x8d, 0x93, 0x14, 0xa8, 0xd6, 0x27,\n\t0x43, 0x35, 0xab, 0xa7, 0x50, 0x58, 0xde, 0xf0, 0x74, 0xc3, 0xdd, 0x30, 0x4d, 0xcb, 0xe5, 0x3e,\n\t0xa2, 0x77, 0xa0, 0x74, 0x48, 0x8e, 0x1a, 0xd2, 0x9a, 0x74, 0xb9, 0xda, 0xa9, 0x3d, 0xf6, 0xe5,\n\t0x73, 0x63, 0x5f, 0x2e, 0xdd, 0x25, 0x47, 0x98, 0xd1, 0xd1, 0x06, 0x2c, 0x8f, 0xd4, 0x81, 0x47,\n\t0x6e, 0x3d, 0xb2, 0x1d, 0xc2, 0x23, 0xd4, 0x98, 0xe1, 0xa2, 0xab, 0x42, 0x74, 0x79, 0x2f, 0xcd,\n\t0xc6, 0x59, 0x79, 0x65, 0x00, 0xf5, 0xf8, 0x6b, 0x5f, 0x75, 0x4c, 0xc3, 0xec, 0xa1, 0xf7, 0xa1,\n\t0xd2, 0x35, 0xc8, 0x40, 0xc7, 0xa4, 0x2b, 0x00, 0x57, 0x04, 0x60, 0xe5, 0xb6, 0xa0, 0xe3, 0x48,\n\t0x02, 0x5d, 0x81, 0xf9, 0xaf, 0x03, 0xc5, 0x46, 0x89, 0x0b, 0x2f, 0x0b, 0xe1, 0x79, 0x81, 0x87,\n\t0x43, 0xbe, 0xd2, 0x85, 0xa5, 0x6d, 0xd5, 0xd5, 0xfa, 0x9b, 0x96, 0xa9, 0x1b, 0xdc, 0xc3, 0x35,\n\t0x28, 0x9b, 0xea, 0x90, 0x08, 0x17, 0x17, 0x84, 0x66, 0xf9, 0xbe, 0x3a, 0x24, 0x98, 0x73, 0xd0,\n\t0x35, 0x00, 0x92, 0xf5, 0x0f, 0x09, 0x39, 0x48, 0xb8, 0x96, 0x90, 0x52, 0xfe, 0x54, 0x16, 0x86,\n\t0x30, 0xa1, 0x96, 0xe7, 0x68, 0x84, 0xa2, 0x47, 0x50, 0x67, 0x70, 0xd4, 0x56, 0x35, 0xb2, 0x4b,\n\t0x06, 0x44, 0x73, 0x2d, 0x87, 0x5b, 0xad, 0x5d, 0xbb, 0xde, 0x8a, 0x93, 0x2d, 0xda, 0xb1, 0x96,\n\t0x7d, 0xd8, 0x63, 0x04, 0xda, 0x62, 0x89, 0xd1, 0x1a, 0xad, 0xb7, 0xee, 0xa9, 0x07, 0x64, 0x10,\n\t0xaa, 0x76, 0xde, 0x1c, 0xfb, 0x72, 0xfd, 0x7e, 0x16, 0x11, 0x4f, 0x1a, 0x41, 0x16, 0x2c, 0x59,\n\t0x07, 0x5f, 0x11, 0xcd, 0x8d, 0xcc, 0xce, 0x9c, 0xde, 0x2c, 0x1a, 0xfb, 0xf2, 0xd2, 0x83, 0x14,\n\t0x1c, 0xce, 0xc0, 0xa3, 0x23, 0x58, 0x74, 0x84, 0xdf, 0xd8, 0x1b, 0x10, 0xda, 0x28, 0xad, 0x95,\n\t0x2e, 0xd7, 0xae, 0x7d, 0xb7, 0x55, 0xe0, 0x4c, 0xb5, 0x98, 0x4b, 0x3a, 0x53, 0xdb, 0x37, 0xdc,\n\t0xfe, 0x03, 0x9b, 0x04, 0x1c, 0xda, 0x79, 0x53, 0x84, 0x7c, 0x11, 0x27, 0xa1, 0x71, 0xda, 0x12,\n\t0xfa, 0x85, 0x04, 0xe7, 0xc9, 0x23, 0x6d, 0xe0, 0xe9, 0x24, 0x25, 0xd7, 0x28, 0xbf, 0x84, 0x25,\n\t0x5c, 0x12, 0x4b, 0x38, 0x7f, 0x2b, 0xc7, 0x02, 0xce, 0xb5, 0x8b, 0x6e, 0x42, 0x6d, 0xc8, 0x12,\n\t0x61, 0xc7, 0x1a, 0x18, 0xda, 0x51, 0x63, 0x9e, 0xa7, 0x8f, 0x32, 0xf6, 0xe5, 0xda, 0x76, 0x4c,\n\t0x3e, 0xf6, 0xe5, 0xe5, 0xc4, 0xe7, 0xe7, 0x47, 0x36, 0xc1, 0x49, 0x35, 0xe5, 0x77, 0x15, 0x58,\n\t0xde, 0xf6, 0xd8, 0xa1, 0x34, 0x7b, 0xfb, 0xe4, 0xa0, 0x6f, 0x59, 0x87, 0x05, 0x32, 0xd7, 0x81,\n\t0x05, 0x6d, 0x60, 0x10, 0xd3, 0xdd, 0xb4, 0xcc, 0xae, 0xd1, 0x13, 0xdb, 0xfe, 0x71, 0xa1, 0x18,\n\t0x08, 0x2b, 0x9b, 0x09, 0xfd, 0xce, 0x79, 0x61, 0x63, 0x21, 0x49, 0xc5, 0x29, 0x1b, 0xe8, 0x21,\n\t0xcc, 0x3a, 0x89, 0x3d, 0xff, 0xa8, 0x90, 0xb1, 0x9c, 0x58, 0x2f, 0x0a, 0x5b, 0xb3, 0x41, 0x70,\n\t0x03, 0x50, 0x74, 0x0f, 0x16, 0xbb, 0xaa, 0x31, 0xf0, 0x1c, 0x22, 0xe2, 0x59, 0xe6, 0xce, 0x7f,\n\t0x8b, 0xe5, 0xc5, 0xed, 0x24, 0xe3, 0xd8, 0x97, 0xeb, 0x29, 0x02, 0x8f, 0x69, 0x5a, 0x39, 0xbb,\n\t0x37, 0xd5, 0x53, 0xed, 0x4d, 0xfe, 0xc1, 0x9e, 0xfd, 0xff, 0x1c, 0xec, 0xda, 0xab, 0x3d, 0xd8,\n\t0x37, 0xa1, 0x46, 0x0d, 0x9d, 0xdc, 0xea, 0x76, 0x89, 0xe6, 0xd2, 0xc6, 0x5c, 0x1c, 0xb0, 0xdd,\n\t0x98, 0xcc, 0x02, 0x16, 0x7f, 0x6e, 0x0e, 0x54, 0x4a, 0x71, 0x52, 0x0d, 0x7d, 0x02, 0x4b, 0xac,\n\t0x0c, 0x59, 0x9e, 0xbb, 0x4b, 0x34, 0xcb, 0xd4, 0x29, 0x3f, 0x15, 0xb3, 0xc1, 0x0a, 0x3e, 0x4f,\n\t0x71, 0x70, 0x46, 0x12, 0x7d, 0x01, 0xab, 0x51, 0x16, 0x61, 0x32, 0x32, 0xc8, 0xd7, 0x7b, 0xc4,\n\t0x61, 0x1f, 0xb4, 0x51, 0x59, 0x2b, 0x5d, 0xae, 0x76, 0xde, 0x1e, 0xfb, 0xf2, 0xea, 0x46, 0xbe,\n\t0x08, 0x9e, 0xa6, 0x8b, 0xbe, 0x04, 0xe4, 0x10, 0xc3, 0x1c, 0x59, 0x1a, 0x4f, 0x3f, 0x91, 0x10,\n\t0xc0, 0xfd, 0xfb, 0x60, 0xec, 0xcb, 0x08, 0x4f, 0x70, 0x8f, 0x7d, 0xf9, 0xad, 0x49, 0x2a, 0x4f,\n\t0x8f, 0x1c, 0x2c, 0x34, 0x82, 0xe5, 0x61, 0xaa, 0xf2, 0xd0, 0xc6, 0x02, 0x3f, 0x21, 0xd7, 0x0b,\n\t0x9d, 0x90, 0x74, 0xd5, 0x8a, 0xeb, 0x6b, 0x9a, 0x4e, 0x71, 0xd6, 0x88, 0xf2, 0x44, 0x82, 0x4b,\n\t0x99, 0x9b, 0x23, 0x38, 0xa9, 0x5e, 0x00, 0x8e, 0xbe, 0x84, 0x0a, 0x4b, 0x08, 0x5d, 0x75, 0x55,\n\t0x51, 0x8e, 0x3e, 0x28, 0x96, 0x3e, 0x41, 0xae, 0x6c, 0x13, 0x57, 0x8d, 0xcb, 0x61, 0x4c, 0xc3,\n\t0x11, 0x2a, 0xda, 0x83, 0x8a, 0xb0, 0x4c, 0x1b, 0x33, 0xdc, 0xe7, 0x0f, 0x8b, 0xf9, 0x9c, 0x5e,\n\t0x76, 0xa7, 0xcc, 0xac, 0xe0, 0x08, 0x4b, 0xf9, 0x87, 0x04, 0x6b, 0xcf, 0x72, 0xed, 0x9e, 0x41,\n\t0x5d, 0xf4, 0x70, 0xc2, 0xbd, 0x56, 0xc1, 0xd3, 0x61, 0xd0, 0xc0, 0xb9, 0xa8, 0xf5, 0x08, 0x29,\n\t0x09, 0xd7, 0xba, 0x30, 0x6b, 0xb8, 0x64, 0x18, 0xfa, 0xb5, 0x71, 0x1a, 0xbf, 0x52, 0x6b, 0x8e,\n\t0xef, 0xbd, 0x2d, 0x86, 0x8b, 0x03, 0x78, 0xb6, 0x8b, 0xab, 0x53, 0xaa, 0x12, 0xfa, 0x28, 0xae,\n\t0xb6, 0xfc, 0xd6, 0x68, 0x48, 0xfc, 0x20, 0xd4, 0x93, 0xb5, 0x92, 0x33, 0x70, 0x5a, 0x0e, 0xfd,\n\t0x5c, 0x02, 0xe4, 0x4c, 0xe0, 0x89, 0x2a, 0x71, 0xea, 0x8b, 0xfb, 0xa2, 0x70, 0x00, 0x4d, 0xf2,\n\t0x70, 0x8e, 0x39, 0x45, 0x85, 0xea, 0x8e, 0xea, 0xa8, 0xc3, 0xbb, 0x86, 0xa9, 0xb3, 0x5e, 0x4b,\n\t0xb5, 0x0d, 0x71, 0x2c, 0x45, 0x65, 0x8b, 0x92, 0x6b, 0x63, 0x67, 0x4b, 0x70, 0x70, 0x42, 0x8a,\n\t0xd5, 0xc1, 0x43, 0xc3, 0xd4, 0x45, 0x67, 0x16, 0xd5, 0x41, 0x86, 0x87, 0x39, 0x47, 0xf9, 0xed,\n\t0x0c, 0x54, 0xb8, 0x0d, 0xd6, 0x2d, 0x9e, 0x5c, 0x36, 0xdb, 0x50, 0x8d, 0xee, 0x5a, 0x81, 0x5a,\n\t0x17, 0x62, 0xd5, 0xe8, 0x5e, 0xc6, 0xb1, 0x0c, 0xfa, 0x11, 0x54, 0x68, 0x78, 0x03, 0x97, 0x4e,\n\t0x7f, 0x03, 0x2f, 0xb0, 0x24, 0x8b, 0xee, 0xde, 0x08, 0x12, 0xb9, 0xb0, 0x6a, 0xb3, 0xd5, 0x13,\n\t0x97, 0x38, 0xf7, 0x2d, 0xf7, 0xb6, 0xe5, 0x99, 0xfa, 0x86, 0xc6, 0xa2, 0x27, 0xca, 0xdf, 0x27,\n\t0xec, 0xce, 0xdb, 0xc9, 0x17, 0x39, 0xf6, 0xe5, 0xb7, 0xa7, 0xb0, 0xf8, 0x5d, 0x35, 0x0d, 0x5a,\n\t0xf9, 0xa3, 0x04, 0x65, 0xb6, 0x85, 0xe8, 0xdb, 0x50, 0x55, 0x6d, 0xe3, 0x8e, 0x63, 0x79, 0x76,\n\t0x98, 0x5b, 0x8b, 0x2c, 0x14, 0x1b, 0x3b, 0x5b, 0x01, 0x11, 0xc7, 0x7c, 0xb4, 0x0e, 0xb5, 0x78,\n\t0x6b, 0x82, 0x63, 0x51, 0xed, 0x2c, 0xb3, 0x0a, 0x11, 0xef, 0x1e, 0xc5, 0x49, 0x19, 0x86, 0x1f,\n\t0xe6, 0x65, 0xd0, 0x35, 0x08, 0xfc, 0xa8, 0x75, 0xc6, 0x31, 0x1f, 0xbd, 0x0f, 0xb3, 0x54, 0xb3,\n\t0x6c, 0x22, 0x3c, 0x7f, 0x8b, 0x9d, 0x94, 0x5d, 0x46, 0x38, 0xf6, 0xe5, 0x2a, 0xff, 0x83, 0x7b,\n\t0x15, 0x08, 0x29, 0xbf, 0x91, 0x20, 0x27, 0x0d, 0xd1, 0xa7, 0x00, 0x56, 0x9c, 0xef, 0x81, 0x4b,\n\t0x32, 0xbf, 0xbe, 0x22, 0xea, 0xb1, 0x2f, 0x2f, 0x46, 0x5f, 0x1c, 0x32, 0xa1, 0x82, 0xee, 0x42,\n\t0x99, 0x65, 0xb2, 0x38, 0x2a, 0x57, 0x0a, 0x1f, 0x95, 0x38, 0xdd, 0xd8, 0x17, 0xe6, 0x20, 0xca,\n\t0xaf, 0x25, 0x58, 0xd9, 0x25, 0xce, 0xc8, 0xd0, 0x08, 0x26, 0x5d, 0xe2, 0x10, 0x53, 0xcb, 0xe4,\n\t0xa0, 0x54, 0x20, 0x07, 0xc3, 0xb4, 0x9e, 0x99, 0x9a, 0xd6, 0x97, 0xa0, 0x6c, 0xab, 0x6e, 0x5f,\n\t0xbc, 0x91, 0x2a, 0x8c, 0xbb, 0xa3, 0xba, 0x7d, 0xcc, 0xa9, 0x9c, 0x6b, 0x39, 0x2e, 0x8f, 0xeb,\n\t0xac, 0xe0, 0x5a, 0x8e, 0x8b, 0x39, 0x55, 0xf9, 0x95, 0x04, 0x0b, 0x2c, 0x0a, 0x9b, 0x7d, 0xa2,\n\t0x1d, 0xb2, 0x17, 0xda, 0xcf, 0x24, 0x40, 0x24, 0xfb, 0x6e, 0x0b, 0x62, 0x59, 0xbb, 0x76, 0xa3,\n\t0x50, 0x40, 0x26, 0x9e, 0x7d, 0xf1, 0xd5, 0x31, 0xc1, 0xa2, 0x38, 0xc7, 0x9a, 0xf2, 0xe7, 0x19,\n\t0xb8, 0xb0, 0xa7, 0x0e, 0x0c, 0x9d, 0x5f, 0xa7, 0x51, 0xd1, 0x17, 0x15, 0xf7, 0xd5, 0x17, 0x36,\n\t0x1d, 0xca, 0xd4, 0x26, 0x9a, 0x48, 0x83, 0x4e, 0x21, 0xaf, 0xa7, 0xae, 0x77, 0xd7, 0x26, 0x5a,\n\t0xbc, 0x6f, 0xec, 0x0b, 0x73, 0x74, 0x34, 0x80, 0x39, 0xea, 0xaa, 0xae, 0x47, 0xc5, 0xdd, 0x72,\n\t0xf3, 0x05, 0xed, 0x70, 0xac, 0xce, 0x92, 0xb0, 0x34, 0x17, 0x7c, 0x63, 0x61, 0x43, 0xf9, 0xb7,\n\t0x04, 0x6b, 0x53, 0x75, 0x3b, 0x86, 0xa9, 0xb3, 0xdd, 0x7f, 0xf5, 0xa1, 0x3d, 0x4c, 0x85, 0x76,\n\t0xeb, 0xc5, 0x5c, 0x16, 0xcb, 0x9e, 0x16, 0x61, 0xe5, 0x5f, 0x12, 0xbc, 0x77, 0x92, 0xf2, 0x19,\n\t0x34, 0x13, 0x5f, 0xa5, 0x9b, 0x89, 0x5b, 0x2f, 0xc5, 0xe9, 0x29, 0x0d, 0xc5, 0x7f, 0x66, 0x4e,\n\t0x76, 0x99, 0x45, 0x88, 0x55, 0x64, 0x9b, 0x13, 0xef, 0xc7, 0x45, 0x33, 0xda, 0xba, 0x9d, 0x88,\n\t0x83, 0x13, 0x52, 0x68, 0x1f, 0x2a, 0xb6, 0x28, 0xb7, 0x62, 0x03, 0xaf, 0x16, 0xf2, 0x25, 0xac,\n\t0xd1, 0x41, 0x25, 0x0c, 0xbf, 0x70, 0x04, 0xc6, 0x1e, 0x3c, 0xc3, 0xd4, 0x54, 0x25, 0xa7, 0xdc,\n\t0x9e, 0xd0, 0x43, 0x47, 0xaa, 0xc1, 0x73, 0x23, 0x4d, 0xc3, 0x19, 0x78, 0xb4, 0x0f, 0xf5, 0x91,\n\t0x88, 0x92, 0x65, 0x06, 0x85, 0x31, 0x18, 0x25, 0x54, 0x3b, 0x57, 0xd8, 0x33, 0x6d, 0x2f, 0xcb,\n\t0x3c, 0xf6, 0xe5, 0x95, 0x2c, 0x11, 0x4f, 0x62, 0x28, 0x63, 0x09, 0xde, 0x99, 0x1a, 0xff, 0x33,\n\t0xc8, 0x35, 0x2d, 0x9d, 0x6b, 0xdf, 0x7b, 0xc1, 0x5c, 0x9b, 0x92, 0x64, 0xb3, 0xcf, 0x70, 0x92,\n\t0x67, 0xd7, 0x0f, 0xa1, 0x6a, 0x87, 0xcd, 0x5f, 0x8e, 0x97, 0x27, 0xa4, 0x0a, 0xd3, 0x0a, 0x7a,\n\t0x85, 0xe8, 0x13, 0xc7, 0x78, 0xc8, 0x83, 0x95, 0xf0, 0x35, 0xc4, 0x54, 0x0d, 0xd3, 0xa5, 0x39,\n\t0x93, 0xaf, 0xc2, 0xf9, 0x72, 0x7e, 0xec, 0xcb, 0x2b, 0xdb, 0x19, 0x40, 0x3c, 0x61, 0x02, 0x75,\n\t0xa1, 0x16, 0xef, 0x77, 0x38, 0x07, 0x69, 0x3f, 0x57, 0x80, 0x2d, 0xb3, 0xf3, 0x86, 0x88, 0x68,\n\t0x2d, 0xa6, 0x51, 0x9c, 0x04, 0x7e, 0xc9, 0xb3, 0x90, 0x9f, 0xc0, 0x8a, 0x9a, 0x1e, 0xfe, 0xd2,\n\t0xc6, 0xec, 0x73, 0x3c, 0xd6, 0x32, 0x93, 0xe3, 0x4e, 0x43, 0xac, 0x7f, 0x25, 0xc3, 0xa0, 0x78,\n\t0xc2, 0x4e, 0xde, 0xdb, 0x78, 0xee, 0x0c, 0xde, 0xc6, 0xe8, 0xc7, 0x50, 0x1d, 0xa9, 0x8e, 0xa1,\n\t0x1e, 0x0c, 0x08, 0x6d, 0xcc, 0x73, 0x8b, 0x57, 0x0b, 0xee, 0x53, 0xa0, 0x15, 0xf7, 0x64, 0x21,\n\t0x85, 0xe2, 0x18, 0x52, 0xf9, 0xc3, 0x0c, 0xc8, 0x27, 0xd4, 0x61, 0xf4, 0x19, 0x20, 0xeb, 0x80,\n\t0x12, 0x67, 0x44, 0xf4, 0x3b, 0xc1, 0x3c, 0x3e, 0x7c, 0xf9, 0x94, 0xe2, 0x7e, 0xe8, 0xc1, 0x84,\n\t0x04, 0xce, 0xd1, 0x42, 0x3d, 0x58, 0x70, 0x13, 0x4d, 0x9a, 0x48, 0xf6, 0xf5, 0x42, 0x2e, 0x25,\n\t0xbb, 0xbb, 0xce, 0xca, 0xd8, 0x97, 0x53, 0xfd, 0x1e, 0x4e, 0x01, 0x23, 0x0d, 0x40, 0x8b, 0xf7,\n\t0x6a, 0x32, 0xc3, 0x9f, 0x71, 0x3b, 0xc5, 0xfb, 0x14, 0x55, 0x91, 0xc4, 0x16, 0x25, 0x60, 0x95,\n\t0xbf, 0xcc, 0x43, 0x3d, 0x8e, 0xde, 0xeb, 0xa9, 0xe7, 0xeb, 0xa9, 0xe7, 0xb4, 0xa9, 0x27, 0xbc,\n\t0x9e, 0x7a, 0x9e, 0x6a, 0xea, 0x99, 0x73, 0xef, 0xd6, 0xce, 0x62, 0x26, 0xf9, 0x57, 0x09, 0x9a,\n\t0x13, 0x27, 0xfb, 0xac, 0xa7, 0x92, 0xdf, 0x9f, 0x98, 0x4a, 0xde, 0x78, 0xce, 0x26, 0x68, 0xda,\n\t0x5c, 0xf2, 0x9f, 0x12, 0x28, 0xcf, 0x76, 0xef, 0x0c, 0x1a, 0xbc, 0x7e, 0xba, 0xc1, 0xdb, 0x3c,\n\t0x9d, 0x6f, 0x45, 0x66, 0x93, 0xff, 0x95, 0x00, 0xe2, 0x26, 0x05, 0xbd, 0x07, 0x89, 0x1f, 0x45,\n\t0xc5, 0x35, 0x1d, 0x44, 0x28, 0x41, 0x47, 0x57, 0x60, 0x7e, 0x48, 0x28, 0x55, 0x7b, 0xe1, 0xc4,\n\t0x22, 0xfa, 0xcd, 0x76, 0x3b, 0x20, 0xe3, 0x90, 0x8f, 0xf6, 0x61, 0xce, 0x21, 0x2a, 0xb5, 0x4c,\n\t0x31, 0xb9, 0xf8, 0x94, 0xbd, 0x5a, 0x31, 0xa7, 0x1c, 0xfb, 0xf2, 0x7a, 0x91, 0xdf, 0xd4, 0x5b,\n\t0xe2, 0x91, 0xcb, 0x95, 0xb0, 0x80, 0x43, 0x77, 0xa0, 0x2e, 0x6c, 0x24, 0x16, 0x1c, 0x5c, 0xad,\n\t0x17, 0xc4, 0x6a, 0xea, 0xdb, 0x59, 0x01, 0x3c, 0xa9, 0xa3, 0x7c, 0x06, 0x95, 0xb0, 0xfe, 0xa3,\n\t0x06, 0x94, 0x13, 0x2f, 0xa5, 0xc0, 0x71, 0x4e, 0xc9, 0x04, 0x66, 0x26, 0x3f, 0x30, 0xca, 0xef,\n\t0x25, 0x78, 0x23, 0xa7, 0x0a, 0xa1, 0x0b, 0x50, 0xf2, 0x9c, 0x81, 0x08, 0xc1, 0xfc, 0xd8, 0x97,\n\t0x4b, 0x5f, 0xe0, 0x7b, 0x98, 0xd1, 0xd0, 0x43, 0x98, 0xa7, 0xc1, 0xfc, 0x48, 0xe4, 0xd1, 0x77,\n\t0x0a, 0x6d, 0x76, 0x76, 0xe6, 0xd4, 0xa9, 0xb1, 0xf0, 0x87, 0xd4, 0x10, 0x12, 0x5d, 0x86, 0x8a,\n\t0xa6, 0x76, 0x3c, 0x53, 0x17, 0xf3, 0xae, 0x85, 0xe0, 0x75, 0xb6, 0xb9, 0x11, 0xd0, 0x70, 0xc4,\n\t0xed, 0x6c, 0x3d, 0x7e, 0xda, 0x3c, 0xf7, 0xcd, 0xd3, 0xe6, 0xb9, 0x27, 0x4f, 0x9b, 0xe7, 0x7e,\n\t0x3a, 0x6e, 0x4a, 0x8f, 0xc7, 0x4d, 0xe9, 0x9b, 0x71, 0x53, 0x7a, 0x32, 0x6e, 0x4a, 0x7f, 0x1b,\n\t0x37, 0xa5, 0x5f, 0xfe, 0xbd, 0x79, 0xee, 0x07, 0xef, 0x16, 0xf8, 0x6f, 0x8c, 0xff, 0x05, 0x00,\n\t0x00, 0xff, 0xff, 0x1e, 0x59, 0xab, 0xd9, 0xb3, 0x21, 0x00, 0x00,\n}\n\nfunc (m *AuditAnnotation) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *AuditAnnotation) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *AuditAnnotation) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.ValueExpression)\n\tcopy(dAtA[i:], m.ValueExpression)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ValueExpression)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Key)\n\tcopy(dAtA[i:], m.Key)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Key)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ExpressionWarning) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ExpressionWarning) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ExpressionWarning) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Warning)\n\tcopy(dAtA[i:], m.Warning)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Warning)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.FieldRef)\n\tcopy(dAtA[i:], m.FieldRef)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FieldRef)))\n\ti--\n\tdAtA[i] = 0x12\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MatchCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MatchCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MatchCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Expression)\n\tcopy(dAtA[i:], m.Expression)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Expression)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MatchResources) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MatchResources) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MatchResources) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.MatchPolicy != nil {\n\t\ti -= len(*m.MatchPolicy)\n\t\tcopy(dAtA[i:], *m.MatchPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.MatchPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif len(m.ExcludeResourceRules) > 0 {\n\t\tfor iNdEx := len(m.ExcludeResourceRules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ExcludeResourceRules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif len(m.ResourceRules) > 0 {\n\t\tfor iNdEx := len(m.ResourceRules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ResourceRules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif m.ObjectSelector != nil {\n\t\t{\n\t\t\tsize, err := m.ObjectSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.NamespaceSelector != nil {\n\t\t{\n\t\t\tsize, err := m.NamespaceSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MutatingWebhook) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MutatingWebhook) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MutatingWebhook) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.MatchConditions) > 0 {\n\t\tfor iNdEx := len(m.MatchConditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.MatchConditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x62\n\t\t}\n\t}\n\tif m.ObjectSelector != nil {\n\t\t{\n\t\t\tsize, err := m.ObjectSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x5a\n\t}\n\tif m.ReinvocationPolicy != nil {\n\t\ti -= len(*m.ReinvocationPolicy)\n\t\tcopy(dAtA[i:], *m.ReinvocationPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.ReinvocationPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x52\n\t}\n\tif m.MatchPolicy != nil {\n\t\ti -= len(*m.MatchPolicy)\n\t\tcopy(dAtA[i:], *m.MatchPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.MatchPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x4a\n\t}\n\tif len(m.AdmissionReviewVersions) > 0 {\n\t\tfor iNdEx := len(m.AdmissionReviewVersions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.AdmissionReviewVersions[iNdEx])\n\t\t\tcopy(dAtA[i:], m.AdmissionReviewVersions[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.AdmissionReviewVersions[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x42\n\t\t}\n\t}\n\tif m.TimeoutSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.TimeoutSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x38\n\t}\n\tif m.SideEffects != nil {\n\t\ti -= len(*m.SideEffects)\n\t\tcopy(dAtA[i:], *m.SideEffects)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.SideEffects)))\n\t\ti--\n\t\tdAtA[i] = 0x32\n\t}\n\tif m.NamespaceSelector != nil {\n\t\t{\n\t\t\tsize, err := m.NamespaceSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.FailurePolicy != nil {\n\t\ti -= len(*m.FailurePolicy)\n\t\tcopy(dAtA[i:], *m.FailurePolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.FailurePolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif len(m.Rules) > 0 {\n\t\tfor iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Rules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ClientConfig.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MutatingWebhookConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MutatingWebhookConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MutatingWebhookConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Webhooks) > 0 {\n\t\tfor iNdEx := len(m.Webhooks) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Webhooks[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MutatingWebhookConfigurationList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MutatingWebhookConfigurationList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MutatingWebhookConfigurationList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NamedRuleWithOperations) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NamedRuleWithOperations) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NamedRuleWithOperations) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.RuleWithOperations.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\tif len(m.ResourceNames) > 0 {\n\t\tfor iNdEx := len(m.ResourceNames) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.ResourceNames[iNdEx])\n\t\t\tcopy(dAtA[i:], m.ResourceNames[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ResourceNames[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ParamKind) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ParamKind) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ParamKind) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.APIVersion)\n\tcopy(dAtA[i:], m.APIVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIVersion)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ParamRef) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ParamRef) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ParamRef) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ParameterNotFoundAction != nil {\n\t\ti -= len(*m.ParameterNotFoundAction)\n\t\tcopy(dAtA[i:], *m.ParameterNotFoundAction)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.ParameterNotFoundAction)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti -= len(m.Namespace)\n\tcopy(dAtA[i:], m.Namespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Rule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Rule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Rule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Scope != nil {\n\t\ti -= len(*m.Scope)\n\t\tcopy(dAtA[i:], *m.Scope)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Scope)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif len(m.Resources) > 0 {\n\t\tfor iNdEx := len(m.Resources) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Resources[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Resources[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Resources[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.APIVersions) > 0 {\n\t\tfor iNdEx := len(m.APIVersions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.APIVersions[iNdEx])\n\t\t\tcopy(dAtA[i:], m.APIVersions[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIVersions[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.APIGroups) > 0 {\n\t\tfor iNdEx := len(m.APIGroups) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.APIGroups[iNdEx])\n\t\t\tcopy(dAtA[i:], m.APIGroups[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIGroups[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RuleWithOperations) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RuleWithOperations) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RuleWithOperations) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Rule.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\tif len(m.Operations) > 0 {\n\t\tfor iNdEx := len(m.Operations) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Operations[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Operations[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Operations[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ServiceReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServiceReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ServiceReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Port != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Port))\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif m.Path != nil {\n\t\ti -= len(*m.Path)\n\t\tcopy(dAtA[i:], *m.Path)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Path)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Namespace)\n\tcopy(dAtA[i:], m.Namespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TypeChecking) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TypeChecking) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TypeChecking) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ExpressionWarnings) > 0 {\n\t\tfor iNdEx := len(m.ExpressionWarnings) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ExpressionWarnings[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ValidatingAdmissionPolicy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ValidatingAdmissionPolicy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ValidatingAdmissionPolicy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ValidatingAdmissionPolicyBinding) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ValidatingAdmissionPolicyBinding) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ValidatingAdmissionPolicyBinding) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ValidatingAdmissionPolicyBindingList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ValidatingAdmissionPolicyBindingList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ValidatingAdmissionPolicyBindingList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ValidatingAdmissionPolicyBindingSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ValidatingAdmissionPolicyBindingSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ValidatingAdmissionPolicyBindingSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ValidationActions) > 0 {\n\t\tfor iNdEx := len(m.ValidationActions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.ValidationActions[iNdEx])\n\t\t\tcopy(dAtA[i:], m.ValidationActions[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ValidationActions[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif m.MatchResources != nil {\n\t\t{\n\t\t\tsize, err := m.MatchResources.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.ParamRef != nil {\n\t\t{\n\t\t\tsize, err := m.ParamRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.PolicyName)\n\tcopy(dAtA[i:], m.PolicyName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.PolicyName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ValidatingAdmissionPolicyList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ValidatingAdmissionPolicyList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ValidatingAdmissionPolicyList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ValidatingAdmissionPolicySpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ValidatingAdmissionPolicySpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ValidatingAdmissionPolicySpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Variables) > 0 {\n\t\tfor iNdEx := len(m.Variables) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Variables[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x3a\n\t\t}\n\t}\n\tif len(m.MatchConditions) > 0 {\n\t\tfor iNdEx := len(m.MatchConditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.MatchConditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\tif len(m.AuditAnnotations) > 0 {\n\t\tfor iNdEx := len(m.AuditAnnotations) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.AuditAnnotations[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\tif m.FailurePolicy != nil {\n\t\ti -= len(*m.FailurePolicy)\n\t\tcopy(dAtA[i:], *m.FailurePolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.FailurePolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif len(m.Validations) > 0 {\n\t\tfor iNdEx := len(m.Validations) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Validations[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif m.MatchConstraints != nil {\n\t\t{\n\t\t\tsize, err := m.MatchConstraints.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.ParamKind != nil {\n\t\t{\n\t\t\tsize, err := m.ParamKind.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ValidatingAdmissionPolicyStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ValidatingAdmissionPolicyStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ValidatingAdmissionPolicyStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif m.TypeChecking != nil {\n\t\t{\n\t\t\tsize, err := m.TypeChecking.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ValidatingWebhook) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ValidatingWebhook) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ValidatingWebhook) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.MatchConditions) > 0 {\n\t\tfor iNdEx := len(m.MatchConditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.MatchConditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x5a\n\t\t}\n\t}\n\tif m.ObjectSelector != nil {\n\t\t{\n\t\t\tsize, err := m.ObjectSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x52\n\t}\n\tif m.MatchPolicy != nil {\n\t\ti -= len(*m.MatchPolicy)\n\t\tcopy(dAtA[i:], *m.MatchPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.MatchPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x4a\n\t}\n\tif len(m.AdmissionReviewVersions) > 0 {\n\t\tfor iNdEx := len(m.AdmissionReviewVersions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.AdmissionReviewVersions[iNdEx])\n\t\t\tcopy(dAtA[i:], m.AdmissionReviewVersions[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.AdmissionReviewVersions[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x42\n\t\t}\n\t}\n\tif m.TimeoutSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.TimeoutSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x38\n\t}\n\tif m.SideEffects != nil {\n\t\ti -= len(*m.SideEffects)\n\t\tcopy(dAtA[i:], *m.SideEffects)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.SideEffects)))\n\t\ti--\n\t\tdAtA[i] = 0x32\n\t}\n\tif m.NamespaceSelector != nil {\n\t\t{\n\t\t\tsize, err := m.NamespaceSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.FailurePolicy != nil {\n\t\ti -= len(*m.FailurePolicy)\n\t\tcopy(dAtA[i:], *m.FailurePolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.FailurePolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif len(m.Rules) > 0 {\n\t\tfor iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Rules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ClientConfig.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ValidatingWebhookConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ValidatingWebhookConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ValidatingWebhookConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Webhooks) > 0 {\n\t\tfor iNdEx := len(m.Webhooks) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Webhooks[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ValidatingWebhookConfigurationList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ValidatingWebhookConfigurationList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ValidatingWebhookConfigurationList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Validation) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Validation) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Validation) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.MessageExpression)\n\tcopy(dAtA[i:], m.MessageExpression)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.MessageExpression)))\n\ti--\n\tdAtA[i] = 0x22\n\tif m.Reason != nil {\n\t\ti -= len(*m.Reason)\n\t\tcopy(dAtA[i:], *m.Reason)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Reason)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Expression)\n\tcopy(dAtA[i:], m.Expression)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Expression)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Variable) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Variable) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Variable) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Expression)\n\tcopy(dAtA[i:], m.Expression)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Expression)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *WebhookClientConfig) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *WebhookClientConfig) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *WebhookClientConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.URL != nil {\n\t\ti -= len(*m.URL)\n\t\tcopy(dAtA[i:], *m.URL)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.URL)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.CABundle != nil {\n\t\ti -= len(m.CABundle)\n\t\tcopy(dAtA[i:], m.CABundle)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.CABundle)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Service != nil {\n\t\t{\n\t\t\tsize, err := m.Service.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *AuditAnnotation) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Key)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.ValueExpression)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ExpressionWarning) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.FieldRef)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Warning)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *MatchCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Expression)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *MatchResources) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.NamespaceSelector != nil {\n\t\tl = m.NamespaceSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ObjectSelector != nil {\n\t\tl = m.ObjectSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.ResourceRules) > 0 {\n\t\tfor _, e := range m.ResourceRules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.ExcludeResourceRules) > 0 {\n\t\tfor _, e := range m.ExcludeResourceRules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.MatchPolicy != nil {\n\t\tl = len(*m.MatchPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *MutatingWebhook) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.ClientConfig.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Rules) > 0 {\n\t\tfor _, e := range m.Rules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.FailurePolicy != nil {\n\t\tl = len(*m.FailurePolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.NamespaceSelector != nil {\n\t\tl = m.NamespaceSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.SideEffects != nil {\n\t\tl = len(*m.SideEffects)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.TimeoutSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.TimeoutSeconds))\n\t}\n\tif len(m.AdmissionReviewVersions) > 0 {\n\t\tfor _, s := range m.AdmissionReviewVersions {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.MatchPolicy != nil {\n\t\tl = len(*m.MatchPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ReinvocationPolicy != nil {\n\t\tl = len(*m.ReinvocationPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ObjectSelector != nil {\n\t\tl = m.ObjectSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.MatchConditions) > 0 {\n\t\tfor _, e := range m.MatchConditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *MutatingWebhookConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Webhooks) > 0 {\n\t\tfor _, e := range m.Webhooks {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *MutatingWebhookConfigurationList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *NamedRuleWithOperations) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.ResourceNames) > 0 {\n\t\tfor _, s := range m.ResourceNames {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = m.RuleWithOperations.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ParamKind) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.APIVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ParamRef) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Namespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ParameterNotFoundAction != nil {\n\t\tl = len(*m.ParameterNotFoundAction)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *Rule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.APIGroups) > 0 {\n\t\tfor _, s := range m.APIGroups {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.APIVersions) > 0 {\n\t\tfor _, s := range m.APIVersions {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Resources) > 0 {\n\t\tfor _, s := range m.Resources {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.Scope != nil {\n\t\tl = len(*m.Scope)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *RuleWithOperations) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Operations) > 0 {\n\t\tfor _, s := range m.Operations {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = m.Rule.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ServiceReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Namespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Path != nil {\n\t\tl = len(*m.Path)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Port != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Port))\n\t}\n\treturn n\n}\n\nfunc (m *TypeChecking) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.ExpressionWarnings) > 0 {\n\t\tfor _, e := range m.ExpressionWarnings {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ValidatingAdmissionPolicy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ValidatingAdmissionPolicyBinding) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ValidatingAdmissionPolicyBindingList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ValidatingAdmissionPolicyBindingSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.PolicyName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.ParamRef != nil {\n\t\tl = m.ParamRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.MatchResources != nil {\n\t\tl = m.MatchResources.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.ValidationActions) > 0 {\n\t\tfor _, s := range m.ValidationActions {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ValidatingAdmissionPolicyList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ValidatingAdmissionPolicySpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.ParamKind != nil {\n\t\tl = m.ParamKind.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.MatchConstraints != nil {\n\t\tl = m.MatchConstraints.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.Validations) > 0 {\n\t\tfor _, e := range m.Validations {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.FailurePolicy != nil {\n\t\tl = len(*m.FailurePolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.AuditAnnotations) > 0 {\n\t\tfor _, e := range m.AuditAnnotations {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.MatchConditions) > 0 {\n\t\tfor _, e := range m.MatchConditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Variables) > 0 {\n\t\tfor _, e := range m.Variables {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ValidatingAdmissionPolicyStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.ObservedGeneration))\n\tif m.TypeChecking != nil {\n\t\tl = m.TypeChecking.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ValidatingWebhook) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.ClientConfig.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Rules) > 0 {\n\t\tfor _, e := range m.Rules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.FailurePolicy != nil {\n\t\tl = len(*m.FailurePolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.NamespaceSelector != nil {\n\t\tl = m.NamespaceSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.SideEffects != nil {\n\t\tl = len(*m.SideEffects)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.TimeoutSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.TimeoutSeconds))\n\t}\n\tif len(m.AdmissionReviewVersions) > 0 {\n\t\tfor _, s := range m.AdmissionReviewVersions {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.MatchPolicy != nil {\n\t\tl = len(*m.MatchPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ObjectSelector != nil {\n\t\tl = m.ObjectSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.MatchConditions) > 0 {\n\t\tfor _, e := range m.MatchConditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ValidatingWebhookConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Webhooks) > 0 {\n\t\tfor _, e := range m.Webhooks {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ValidatingWebhookConfigurationList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *Validation) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Expression)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Reason != nil {\n\t\tl = len(*m.Reason)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.MessageExpression)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *Variable) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Expression)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *WebhookClientConfig) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Service != nil {\n\t\tl = m.Service.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.CABundle != nil {\n\t\tl = len(m.CABundle)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.URL != nil {\n\t\tl = len(*m.URL)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *AuditAnnotation) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&AuditAnnotation{`,\n\t\t`Key:` + fmt.Sprintf(\"%v\", this.Key) + `,`,\n\t\t`ValueExpression:` + fmt.Sprintf(\"%v\", this.ValueExpression) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ExpressionWarning) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ExpressionWarning{`,\n\t\t`FieldRef:` + fmt.Sprintf(\"%v\", this.FieldRef) + `,`,\n\t\t`Warning:` + fmt.Sprintf(\"%v\", this.Warning) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MatchCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&MatchCondition{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Expression:` + fmt.Sprintf(\"%v\", this.Expression) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MatchResources) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForResourceRules := \"[]NamedRuleWithOperations{\"\n\tfor _, f := range this.ResourceRules {\n\t\trepeatedStringForResourceRules += strings.Replace(strings.Replace(f.String(), \"NamedRuleWithOperations\", \"NamedRuleWithOperations\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForResourceRules += \"}\"\n\trepeatedStringForExcludeResourceRules := \"[]NamedRuleWithOperations{\"\n\tfor _, f := range this.ExcludeResourceRules {\n\t\trepeatedStringForExcludeResourceRules += strings.Replace(strings.Replace(f.String(), \"NamedRuleWithOperations\", \"NamedRuleWithOperations\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForExcludeResourceRules += \"}\"\n\ts := strings.Join([]string{`&MatchResources{`,\n\t\t`NamespaceSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.NamespaceSelector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`ObjectSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.ObjectSelector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`ResourceRules:` + repeatedStringForResourceRules + `,`,\n\t\t`ExcludeResourceRules:` + repeatedStringForExcludeResourceRules + `,`,\n\t\t`MatchPolicy:` + valueToStringGenerated(this.MatchPolicy) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MutatingWebhook) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForRules := \"[]RuleWithOperations{\"\n\tfor _, f := range this.Rules {\n\t\trepeatedStringForRules += strings.Replace(strings.Replace(f.String(), \"RuleWithOperations\", \"RuleWithOperations\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRules += \"}\"\n\trepeatedStringForMatchConditions := \"[]MatchCondition{\"\n\tfor _, f := range this.MatchConditions {\n\t\trepeatedStringForMatchConditions += strings.Replace(strings.Replace(f.String(), \"MatchCondition\", \"MatchCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForMatchConditions += \"}\"\n\ts := strings.Join([]string{`&MutatingWebhook{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`ClientConfig:` + strings.Replace(strings.Replace(this.ClientConfig.String(), \"WebhookClientConfig\", \"WebhookClientConfig\", 1), `&`, ``, 1) + `,`,\n\t\t`Rules:` + repeatedStringForRules + `,`,\n\t\t`FailurePolicy:` + valueToStringGenerated(this.FailurePolicy) + `,`,\n\t\t`NamespaceSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.NamespaceSelector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`SideEffects:` + valueToStringGenerated(this.SideEffects) + `,`,\n\t\t`TimeoutSeconds:` + valueToStringGenerated(this.TimeoutSeconds) + `,`,\n\t\t`AdmissionReviewVersions:` + fmt.Sprintf(\"%v\", this.AdmissionReviewVersions) + `,`,\n\t\t`MatchPolicy:` + valueToStringGenerated(this.MatchPolicy) + `,`,\n\t\t`ReinvocationPolicy:` + valueToStringGenerated(this.ReinvocationPolicy) + `,`,\n\t\t`ObjectSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.ObjectSelector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`MatchConditions:` + repeatedStringForMatchConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MutatingWebhookConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForWebhooks := \"[]MutatingWebhook{\"\n\tfor _, f := range this.Webhooks {\n\t\trepeatedStringForWebhooks += strings.Replace(strings.Replace(f.String(), \"MutatingWebhook\", \"MutatingWebhook\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForWebhooks += \"}\"\n\ts := strings.Join([]string{`&MutatingWebhookConfiguration{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Webhooks:` + repeatedStringForWebhooks + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MutatingWebhookConfigurationList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]MutatingWebhookConfiguration{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"MutatingWebhookConfiguration\", \"MutatingWebhookConfiguration\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&MutatingWebhookConfigurationList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NamedRuleWithOperations) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NamedRuleWithOperations{`,\n\t\t`ResourceNames:` + fmt.Sprintf(\"%v\", this.ResourceNames) + `,`,\n\t\t`RuleWithOperations:` + strings.Replace(strings.Replace(this.RuleWithOperations.String(), \"RuleWithOperations\", \"RuleWithOperations\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ParamKind) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ParamKind{`,\n\t\t`APIVersion:` + fmt.Sprintf(\"%v\", this.APIVersion) + `,`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ParamRef) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ParamRef{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`ParameterNotFoundAction:` + valueToStringGenerated(this.ParameterNotFoundAction) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Rule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Rule{`,\n\t\t`APIGroups:` + fmt.Sprintf(\"%v\", this.APIGroups) + `,`,\n\t\t`APIVersions:` + fmt.Sprintf(\"%v\", this.APIVersions) + `,`,\n\t\t`Resources:` + fmt.Sprintf(\"%v\", this.Resources) + `,`,\n\t\t`Scope:` + valueToStringGenerated(this.Scope) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RuleWithOperations) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RuleWithOperations{`,\n\t\t`Operations:` + fmt.Sprintf(\"%v\", this.Operations) + `,`,\n\t\t`Rule:` + strings.Replace(strings.Replace(this.Rule.String(), \"Rule\", \"Rule\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ServiceReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ServiceReference{`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Path:` + valueToStringGenerated(this.Path) + `,`,\n\t\t`Port:` + valueToStringGenerated(this.Port) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TypeChecking) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForExpressionWarnings := \"[]ExpressionWarning{\"\n\tfor _, f := range this.ExpressionWarnings {\n\t\trepeatedStringForExpressionWarnings += strings.Replace(strings.Replace(f.String(), \"ExpressionWarning\", \"ExpressionWarning\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForExpressionWarnings += \"}\"\n\ts := strings.Join([]string{`&TypeChecking{`,\n\t\t`ExpressionWarnings:` + repeatedStringForExpressionWarnings + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ValidatingAdmissionPolicy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ValidatingAdmissionPolicy{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ValidatingAdmissionPolicySpec\", \"ValidatingAdmissionPolicySpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"ValidatingAdmissionPolicyStatus\", \"ValidatingAdmissionPolicyStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ValidatingAdmissionPolicyBinding) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ValidatingAdmissionPolicyBinding{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ValidatingAdmissionPolicyBindingSpec\", \"ValidatingAdmissionPolicyBindingSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ValidatingAdmissionPolicyBindingList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ValidatingAdmissionPolicyBinding{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ValidatingAdmissionPolicyBinding\", \"ValidatingAdmissionPolicyBinding\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ValidatingAdmissionPolicyBindingList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ValidatingAdmissionPolicyBindingSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ValidatingAdmissionPolicyBindingSpec{`,\n\t\t`PolicyName:` + fmt.Sprintf(\"%v\", this.PolicyName) + `,`,\n\t\t`ParamRef:` + strings.Replace(this.ParamRef.String(), \"ParamRef\", \"ParamRef\", 1) + `,`,\n\t\t`MatchResources:` + strings.Replace(this.MatchResources.String(), \"MatchResources\", \"MatchResources\", 1) + `,`,\n\t\t`ValidationActions:` + fmt.Sprintf(\"%v\", this.ValidationActions) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ValidatingAdmissionPolicyList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ValidatingAdmissionPolicy{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ValidatingAdmissionPolicy\", \"ValidatingAdmissionPolicy\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ValidatingAdmissionPolicyList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ValidatingAdmissionPolicySpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForValidations := \"[]Validation{\"\n\tfor _, f := range this.Validations {\n\t\trepeatedStringForValidations += strings.Replace(strings.Replace(f.String(), \"Validation\", \"Validation\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForValidations += \"}\"\n\trepeatedStringForAuditAnnotations := \"[]AuditAnnotation{\"\n\tfor _, f := range this.AuditAnnotations {\n\t\trepeatedStringForAuditAnnotations += strings.Replace(strings.Replace(f.String(), \"AuditAnnotation\", \"AuditAnnotation\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForAuditAnnotations += \"}\"\n\trepeatedStringForMatchConditions := \"[]MatchCondition{\"\n\tfor _, f := range this.MatchConditions {\n\t\trepeatedStringForMatchConditions += strings.Replace(strings.Replace(f.String(), \"MatchCondition\", \"MatchCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForMatchConditions += \"}\"\n\trepeatedStringForVariables := \"[]Variable{\"\n\tfor _, f := range this.Variables {\n\t\trepeatedStringForVariables += strings.Replace(strings.Replace(f.String(), \"Variable\", \"Variable\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForVariables += \"}\"\n\ts := strings.Join([]string{`&ValidatingAdmissionPolicySpec{`,\n\t\t`ParamKind:` + strings.Replace(this.ParamKind.String(), \"ParamKind\", \"ParamKind\", 1) + `,`,\n\t\t`MatchConstraints:` + strings.Replace(this.MatchConstraints.String(), \"MatchResources\", \"MatchResources\", 1) + `,`,\n\t\t`Validations:` + repeatedStringForValidations + `,`,\n\t\t`FailurePolicy:` + valueToStringGenerated(this.FailurePolicy) + `,`,\n\t\t`AuditAnnotations:` + repeatedStringForAuditAnnotations + `,`,\n\t\t`MatchConditions:` + repeatedStringForMatchConditions + `,`,\n\t\t`Variables:` + repeatedStringForVariables + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ValidatingAdmissionPolicyStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]Condition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&ValidatingAdmissionPolicyStatus{`,\n\t\t`ObservedGeneration:` + fmt.Sprintf(\"%v\", this.ObservedGeneration) + `,`,\n\t\t`TypeChecking:` + strings.Replace(this.TypeChecking.String(), \"TypeChecking\", \"TypeChecking\", 1) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ValidatingWebhook) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForRules := \"[]RuleWithOperations{\"\n\tfor _, f := range this.Rules {\n\t\trepeatedStringForRules += strings.Replace(strings.Replace(f.String(), \"RuleWithOperations\", \"RuleWithOperations\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRules += \"}\"\n\trepeatedStringForMatchConditions := \"[]MatchCondition{\"\n\tfor _, f := range this.MatchConditions {\n\t\trepeatedStringForMatchConditions += strings.Replace(strings.Replace(f.String(), \"MatchCondition\", \"MatchCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForMatchConditions += \"}\"\n\ts := strings.Join([]string{`&ValidatingWebhook{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`ClientConfig:` + strings.Replace(strings.Replace(this.ClientConfig.String(), \"WebhookClientConfig\", \"WebhookClientConfig\", 1), `&`, ``, 1) + `,`,\n\t\t`Rules:` + repeatedStringForRules + `,`,\n\t\t`FailurePolicy:` + valueToStringGenerated(this.FailurePolicy) + `,`,\n\t\t`NamespaceSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.NamespaceSelector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`SideEffects:` + valueToStringGenerated(this.SideEffects) + `,`,\n\t\t`TimeoutSeconds:` + valueToStringGenerated(this.TimeoutSeconds) + `,`,\n\t\t`AdmissionReviewVersions:` + fmt.Sprintf(\"%v\", this.AdmissionReviewVersions) + `,`,\n\t\t`MatchPolicy:` + valueToStringGenerated(this.MatchPolicy) + `,`,\n\t\t`ObjectSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.ObjectSelector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`MatchConditions:` + repeatedStringForMatchConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ValidatingWebhookConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForWebhooks := \"[]ValidatingWebhook{\"\n\tfor _, f := range this.Webhooks {\n\t\trepeatedStringForWebhooks += strings.Replace(strings.Replace(f.String(), \"ValidatingWebhook\", \"ValidatingWebhook\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForWebhooks += \"}\"\n\ts := strings.Join([]string{`&ValidatingWebhookConfiguration{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Webhooks:` + repeatedStringForWebhooks + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ValidatingWebhookConfigurationList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ValidatingWebhookConfiguration{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ValidatingWebhookConfiguration\", \"ValidatingWebhookConfiguration\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ValidatingWebhookConfigurationList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Validation) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Validation{`,\n\t\t`Expression:` + fmt.Sprintf(\"%v\", this.Expression) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`Reason:` + valueToStringGenerated(this.Reason) + `,`,\n\t\t`MessageExpression:` + fmt.Sprintf(\"%v\", this.MessageExpression) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Variable) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Variable{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Expression:` + fmt.Sprintf(\"%v\", this.Expression) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *WebhookClientConfig) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&WebhookClientConfig{`,\n\t\t`Service:` + strings.Replace(this.Service.String(), \"ServiceReference\", \"ServiceReference\", 1) + `,`,\n\t\t`CABundle:` + valueToStringGenerated(this.CABundle) + `,`,\n\t\t`URL:` + valueToStringGenerated(this.URL) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *AuditAnnotation) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: AuditAnnotation: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: AuditAnnotation: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Key\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Key = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ValueExpression\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ValueExpression = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ExpressionWarning) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ExpressionWarning: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ExpressionWarning: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FieldRef\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FieldRef = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Warning\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Warning = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MatchCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MatchCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MatchCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Expression\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Expression = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MatchResources) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MatchResources: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MatchResources: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NamespaceSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NamespaceSelector == nil {\n\t\t\t\tm.NamespaceSelector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.NamespaceSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ObjectSelector == nil {\n\t\t\t\tm.ObjectSelector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.ObjectSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceRules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceRules = append(m.ResourceRules, NamedRuleWithOperations{})\n\t\t\tif err := m.ResourceRules[len(m.ResourceRules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ExcludeResourceRules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ExcludeResourceRules = append(m.ExcludeResourceRules, NamedRuleWithOperations{})\n\t\t\tif err := m.ExcludeResourceRules[len(m.ExcludeResourceRules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := MatchPolicyType(dAtA[iNdEx:postIndex])\n\t\t\tm.MatchPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MutatingWebhook) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MutatingWebhook: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MutatingWebhook: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ClientConfig\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ClientConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Rules = append(m.Rules, RuleWithOperations{})\n\t\t\tif err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FailurePolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := FailurePolicyType(dAtA[iNdEx:postIndex])\n\t\t\tm.FailurePolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NamespaceSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NamespaceSelector == nil {\n\t\t\t\tm.NamespaceSelector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.NamespaceSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SideEffects\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := SideEffectClass(dAtA[iNdEx:postIndex])\n\t\t\tm.SideEffects = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TimeoutSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.TimeoutSeconds = &v\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AdmissionReviewVersions\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AdmissionReviewVersions = append(m.AdmissionReviewVersions, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := MatchPolicyType(dAtA[iNdEx:postIndex])\n\t\t\tm.MatchPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReinvocationPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := ReinvocationPolicyType(dAtA[iNdEx:postIndex])\n\t\t\tm.ReinvocationPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ObjectSelector == nil {\n\t\t\t\tm.ObjectSelector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.ObjectSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 12:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchConditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MatchConditions = append(m.MatchConditions, MatchCondition{})\n\t\t\tif err := m.MatchConditions[len(m.MatchConditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MutatingWebhookConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MutatingWebhookConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MutatingWebhookConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Webhooks\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Webhooks = append(m.Webhooks, MutatingWebhook{})\n\t\t\tif err := m.Webhooks[len(m.Webhooks)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MutatingWebhookConfigurationList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MutatingWebhookConfigurationList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MutatingWebhookConfigurationList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, MutatingWebhookConfiguration{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NamedRuleWithOperations) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NamedRuleWithOperations: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NamedRuleWithOperations: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceNames\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceNames = append(m.ResourceNames, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RuleWithOperations\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.RuleWithOperations.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ParamKind) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ParamKind: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ParamKind: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ParamRef) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ParamRef: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ParamRef: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ParameterNotFoundAction\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := ParameterNotFoundActionType(dAtA[iNdEx:postIndex])\n\t\t\tm.ParameterNotFoundAction = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Rule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Rule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Rule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIGroups\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIGroups = append(m.APIGroups, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIVersions\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIVersions = append(m.APIVersions, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resources\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resources = append(m.Resources, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Scope\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := ScopeType(dAtA[iNdEx:postIndex])\n\t\t\tm.Scope = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RuleWithOperations) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RuleWithOperations: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RuleWithOperations: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Operations\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Operations = append(m.Operations, OperationType(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rule\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Rule.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ServiceReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Path\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.Path = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Port\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Port = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TypeChecking) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TypeChecking: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TypeChecking: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ExpressionWarnings\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ExpressionWarnings = append(m.ExpressionWarnings, ExpressionWarning{})\n\t\t\tif err := m.ExpressionWarnings[len(m.ExpressionWarnings)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ValidatingAdmissionPolicy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ValidatingAdmissionPolicyBinding) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicyBinding: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicyBinding: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ValidatingAdmissionPolicyBindingList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicyBindingList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicyBindingList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ValidatingAdmissionPolicyBinding{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ValidatingAdmissionPolicyBindingSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicyBindingSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicyBindingSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PolicyName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PolicyName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ParamRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ParamRef == nil {\n\t\t\t\tm.ParamRef = &ParamRef{}\n\t\t\t}\n\t\t\tif err := m.ParamRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchResources\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MatchResources == nil {\n\t\t\t\tm.MatchResources = &MatchResources{}\n\t\t\t}\n\t\t\tif err := m.MatchResources.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ValidationActions\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ValidationActions = append(m.ValidationActions, ValidationAction(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ValidatingAdmissionPolicyList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicyList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicyList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ValidatingAdmissionPolicy{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ValidatingAdmissionPolicySpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicySpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicySpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ParamKind\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ParamKind == nil {\n\t\t\t\tm.ParamKind = &ParamKind{}\n\t\t\t}\n\t\t\tif err := m.ParamKind.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchConstraints\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MatchConstraints == nil {\n\t\t\t\tm.MatchConstraints = &MatchResources{}\n\t\t\t}\n\t\t\tif err := m.MatchConstraints.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Validations\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Validations = append(m.Validations, Validation{})\n\t\t\tif err := m.Validations[len(m.Validations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FailurePolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := FailurePolicyType(dAtA[iNdEx:postIndex])\n\t\t\tm.FailurePolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AuditAnnotations\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AuditAnnotations = append(m.AuditAnnotations, AuditAnnotation{})\n\t\t\tif err := m.AuditAnnotations[len(m.AuditAnnotations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchConditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MatchConditions = append(m.MatchConditions, MatchCondition{})\n\t\t\tif err := m.MatchConditions[len(m.MatchConditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Variables\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Variables = append(m.Variables, Variable{})\n\t\t\tif err := m.Variables[len(m.Variables)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ValidatingAdmissionPolicyStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicyStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicyStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tm.ObservedGeneration = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ObservedGeneration |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TypeChecking\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.TypeChecking == nil {\n\t\t\t\tm.TypeChecking = &TypeChecking{}\n\t\t\t}\n\t\t\tif err := m.TypeChecking.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, v1.Condition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ValidatingWebhook) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingWebhook: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingWebhook: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ClientConfig\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ClientConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Rules = append(m.Rules, RuleWithOperations{})\n\t\t\tif err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FailurePolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := FailurePolicyType(dAtA[iNdEx:postIndex])\n\t\t\tm.FailurePolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NamespaceSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NamespaceSelector == nil {\n\t\t\t\tm.NamespaceSelector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.NamespaceSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SideEffects\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := SideEffectClass(dAtA[iNdEx:postIndex])\n\t\t\tm.SideEffects = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TimeoutSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.TimeoutSeconds = &v\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AdmissionReviewVersions\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AdmissionReviewVersions = append(m.AdmissionReviewVersions, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := MatchPolicyType(dAtA[iNdEx:postIndex])\n\t\t\tm.MatchPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ObjectSelector == nil {\n\t\t\t\tm.ObjectSelector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.ObjectSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchConditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MatchConditions = append(m.MatchConditions, MatchCondition{})\n\t\t\tif err := m.MatchConditions[len(m.MatchConditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ValidatingWebhookConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingWebhookConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingWebhookConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Webhooks\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Webhooks = append(m.Webhooks, ValidatingWebhook{})\n\t\t\tif err := m.Webhooks[len(m.Webhooks)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ValidatingWebhookConfigurationList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingWebhookConfigurationList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingWebhookConfigurationList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ValidatingWebhookConfiguration{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Validation) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Validation: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Validation: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Expression\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Expression = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := k8s_io_apimachinery_pkg_apis_meta_v1.StatusReason(dAtA[iNdEx:postIndex])\n\t\t\tm.Reason = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MessageExpression\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MessageExpression = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Variable) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Variable: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Variable: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Expression\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Expression = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *WebhookClientConfig) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: WebhookClientConfig: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: WebhookClientConfig: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Service\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Service == nil {\n\t\t\t\tm.Service = &ServiceReference{}\n\t\t\t}\n\t\t\tif err := m.Service.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CABundle\", wireType)\n\t\t\t}\n\t\t\tvar byteLen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tbyteLen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif byteLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + byteLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.CABundle = append(m.CABundle[:0], dAtA[iNdEx:postIndex]...)\n\t\t\tif m.CABundle == nil {\n\t\t\t\tm.CABundle = []byte{}\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field URL\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.URL = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.admissionregistration.v1;\n\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/admissionregistration/v1\";\n\n// AuditAnnotation describes how to produce an audit annotation for an API request.\nmessage AuditAnnotation {\n  // key specifies the audit annotation key. The audit annotation keys of\n  // a ValidatingAdmissionPolicy must be unique. The key must be a qualified\n  // name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length.\n  //\n  // The key is combined with the resource name of the\n  // ValidatingAdmissionPolicy to construct an audit annotation key:\n  // \"{ValidatingAdmissionPolicy name}/{key}\".\n  //\n  // If an admission webhook uses the same resource name as this ValidatingAdmissionPolicy\n  // and the same audit annotation key, the annotation key will be identical.\n  // In this case, the first annotation written with the key will be included\n  // in the audit event and all subsequent annotations with the same key\n  // will be discarded.\n  //\n  // Required.\n  optional string key = 1;\n\n  // valueExpression represents the expression which is evaluated by CEL to\n  // produce an audit annotation value. The expression must evaluate to either\n  // a string or null value. If the expression evaluates to a string, the\n  // audit annotation is included with the string value. If the expression\n  // evaluates to null or empty string the audit annotation will be omitted.\n  // The valueExpression may be no longer than 5kb in length.\n  // If the result of the valueExpression is more than 10kb in length, it\n  // will be truncated to 10kb.\n  //\n  // If multiple ValidatingAdmissionPolicyBinding resources match an\n  // API request, then the valueExpression will be evaluated for\n  // each binding. All unique values produced by the valueExpressions\n  // will be joined together in a comma-separated list.\n  //\n  // Required.\n  optional string valueExpression = 2;\n}\n\n// ExpressionWarning is a warning information that targets a specific expression.\nmessage ExpressionWarning {\n  // The path to the field that refers the expression.\n  // For example, the reference to the expression of the first item of\n  // validations is \"spec.validations[0].expression\"\n  optional string fieldRef = 2;\n\n  // The content of type checking information in a human-readable form.\n  // Each line of the warning contains the type that the expression is checked\n  // against, followed by the type check error from the compiler.\n  optional string warning = 3;\n}\n\n// MatchCondition represents a condition which must by fulfilled for a request to be sent to a webhook.\nmessage MatchCondition {\n  // Name is an identifier for this match condition, used for strategic merging of MatchConditions,\n  // as well as providing an identifier for logging purposes. A good name should be descriptive of\n  // the associated expression.\n  // Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and\n  // must start and end with an alphanumeric character (e.g. 'MyName',  or 'my.name',  or\n  // '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an\n  // optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName')\n  //\n  // Required.\n  optional string name = 1;\n\n  // Expression represents the expression which will be evaluated by CEL. Must evaluate to bool.\n  // CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables:\n  //\n  // 'object' - The object from the incoming request. The value is null for DELETE requests.\n  // 'oldObject' - The existing object. The value is null for CREATE requests.\n  // 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest).\n  // 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n  //   See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n  // 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n  //   request resource.\n  // Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/\n  //\n  // Required.\n  optional string expression = 2;\n}\n\n// MatchResources decides whether to run the admission control policy on an object based\n// on whether it meets the match criteria.\n// The exclude rules take precedence over include rules (if a resource matches both, it is excluded)\n// +structType=atomic\nmessage MatchResources {\n  // NamespaceSelector decides whether to run the admission control policy on an object based\n  // on whether the namespace for that object matches the selector. If the\n  // object itself is a namespace, the matching is performed on\n  // object.metadata.labels. If the object is another cluster scoped resource,\n  // it never skips the policy.\n  //\n  // For example, to run the webhook on any objects whose namespace is not\n  // associated with \"runlevel\" of \"0\" or \"1\";  you will set the selector as\n  // follows:\n  // \"namespaceSelector\": {\n  //   \"matchExpressions\": [\n  //     {\n  //       \"key\": \"runlevel\",\n  //       \"operator\": \"NotIn\",\n  //       \"values\": [\n  //         \"0\",\n  //         \"1\"\n  //       ]\n  //     }\n  //   ]\n  // }\n  //\n  // If instead you want to only run the policy on any objects whose\n  // namespace is associated with the \"environment\" of \"prod\" or \"staging\";\n  // you will set the selector as follows:\n  // \"namespaceSelector\": {\n  //   \"matchExpressions\": [\n  //     {\n  //       \"key\": \"environment\",\n  //       \"operator\": \"In\",\n  //       \"values\": [\n  //         \"prod\",\n  //         \"staging\"\n  //       ]\n  //     }\n  //   ]\n  // }\n  //\n  // See\n  // https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\n  // for more examples of label selectors.\n  //\n  // Default to the empty LabelSelector, which matches everything.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector namespaceSelector = 1;\n\n  // ObjectSelector decides whether to run the validation based on if the\n  // object has matching labels. objectSelector is evaluated against both\n  // the oldObject and newObject that would be sent to the cel validation, and\n  // is considered to match if either object matches the selector. A null\n  // object (oldObject in the case of create, or newObject in the case of\n  // delete) or an object that cannot have labels (like a\n  // DeploymentRollback or a PodProxyOptions object) is not considered to\n  // match.\n  // Use the object selector only if the webhook is opt-in, because end\n  // users may skip the admission webhook by setting the labels.\n  // Default to the empty LabelSelector, which matches everything.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector objectSelector = 2;\n\n  // ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches.\n  // The policy cares about an operation if it matches _any_ Rule.\n  // +listType=atomic\n  // +optional\n  repeated NamedRuleWithOperations resourceRules = 3;\n\n  // ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about.\n  // The exclude rules take precedence over include rules (if a resource matches both, it is excluded)\n  // +listType=atomic\n  // +optional\n  repeated NamedRuleWithOperations excludeResourceRules = 4;\n\n  // matchPolicy defines how the \"MatchResources\" list is used to match incoming requests.\n  // Allowed values are \"Exact\" or \"Equivalent\".\n  //\n  // - Exact: match a request only if it exactly matches a specified rule.\n  // For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n  // but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n  // a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy.\n  //\n  // - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version.\n  // For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n  // and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n  // a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy.\n  //\n  // Defaults to \"Equivalent\"\n  // +optional\n  optional string matchPolicy = 7;\n}\n\n// MutatingWebhook describes an admission webhook and the resources and operations it applies to.\nmessage MutatingWebhook {\n  // The name of the admission webhook.\n  // Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where\n  // \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name\n  // of the organization.\n  // Required.\n  optional string name = 1;\n\n  // ClientConfig defines how to communicate with the hook.\n  // Required\n  optional WebhookClientConfig clientConfig = 2;\n\n  // Rules describes what operations on what resources/subresources the webhook cares about.\n  // The webhook cares about an operation if it matches _any_ Rule.\n  // However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks\n  // from putting the cluster in a state which cannot be recovered from without completely\n  // disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called\n  // on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.\n  // +listType=atomic\n  repeated RuleWithOperations rules = 3;\n\n  // FailurePolicy defines how unrecognized errors from the admission endpoint are handled -\n  // allowed values are Ignore or Fail. Defaults to Fail.\n  // +optional\n  optional string failurePolicy = 4;\n\n  // matchPolicy defines how the \"rules\" list is used to match incoming requests.\n  // Allowed values are \"Exact\" or \"Equivalent\".\n  //\n  // - Exact: match a request only if it exactly matches a specified rule.\n  // For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n  // but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n  // a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n  //\n  // - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version.\n  // For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n  // and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n  // a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n  //\n  // Defaults to \"Equivalent\"\n  // +optional\n  optional string matchPolicy = 9;\n\n  // NamespaceSelector decides whether to run the webhook on an object based\n  // on whether the namespace for that object matches the selector. If the\n  // object itself is a namespace, the matching is performed on\n  // object.metadata.labels. If the object is another cluster scoped resource,\n  // it never skips the webhook.\n  //\n  // For example, to run the webhook on any objects whose namespace is not\n  // associated with \"runlevel\" of \"0\" or \"1\";  you will set the selector as\n  // follows:\n  // \"namespaceSelector\": {\n  //   \"matchExpressions\": [\n  //     {\n  //       \"key\": \"runlevel\",\n  //       \"operator\": \"NotIn\",\n  //       \"values\": [\n  //         \"0\",\n  //         \"1\"\n  //       ]\n  //     }\n  //   ]\n  // }\n  //\n  // If instead you want to only run the webhook on any objects whose\n  // namespace is associated with the \"environment\" of \"prod\" or \"staging\";\n  // you will set the selector as follows:\n  // \"namespaceSelector\": {\n  //   \"matchExpressions\": [\n  //     {\n  //       \"key\": \"environment\",\n  //       \"operator\": \"In\",\n  //       \"values\": [\n  //         \"prod\",\n  //         \"staging\"\n  //       ]\n  //     }\n  //   ]\n  // }\n  //\n  // See\n  // https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\n  // for more examples of label selectors.\n  //\n  // Default to the empty LabelSelector, which matches everything.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector namespaceSelector = 5;\n\n  // ObjectSelector decides whether to run the webhook based on if the\n  // object has matching labels. objectSelector is evaluated against both\n  // the oldObject and newObject that would be sent to the webhook, and\n  // is considered to match if either object matches the selector. A null\n  // object (oldObject in the case of create, or newObject in the case of\n  // delete) or an object that cannot have labels (like a\n  // DeploymentRollback or a PodProxyOptions object) is not considered to\n  // match.\n  // Use the object selector only if the webhook is opt-in, because end\n  // users may skip the admission webhook by setting the labels.\n  // Default to the empty LabelSelector, which matches everything.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector objectSelector = 11;\n\n  // SideEffects states whether this webhook has side effects.\n  // Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown).\n  // Webhooks with side effects MUST implement a reconciliation system, since a request may be\n  // rejected by a future step in the admission chain and the side effects therefore need to be undone.\n  // Requests with the dryRun attribute will be auto-rejected if they match a webhook with\n  // sideEffects == Unknown or Some.\n  optional string sideEffects = 6;\n\n  // TimeoutSeconds specifies the timeout for this webhook. After the timeout passes,\n  // the webhook call will be ignored or the API call will fail based on the\n  // failure policy.\n  // The timeout value must be between 1 and 30 seconds.\n  // Default to 10 seconds.\n  // +optional\n  optional int32 timeoutSeconds = 7;\n\n  // AdmissionReviewVersions is an ordered list of preferred `AdmissionReview`\n  // versions the Webhook expects. API server will try to use first version in\n  // the list which it supports. If none of the versions specified in this list\n  // supported by API server, validation will fail for this object.\n  // If a persisted webhook configuration specifies allowed versions and does not\n  // include any versions known to the API Server, calls to the webhook will fail\n  // and be subject to the failure policy.\n  // +listType=atomic\n  repeated string admissionReviewVersions = 8;\n\n  // reinvocationPolicy indicates whether this webhook should be called multiple times as part of a single admission evaluation.\n  // Allowed values are \"Never\" and \"IfNeeded\".\n  //\n  // Never: the webhook will not be called more than once in a single admission evaluation.\n  //\n  // IfNeeded: the webhook will be called at least one additional time as part of the admission evaluation\n  // if the object being admitted is modified by other admission plugins after the initial webhook call.\n  // Webhooks that specify this option *must* be idempotent, able to process objects they previously admitted.\n  // Note:\n  // * the number of additional invocations is not guaranteed to be exactly one.\n  // * if additional invocations result in further modifications to the object, webhooks are not guaranteed to be invoked again.\n  // * webhooks that use this option may be reordered to minimize the number of additional invocations.\n  // * to validate an object after all mutations are guaranteed complete, use a validating admission webhook instead.\n  //\n  // Defaults to \"Never\".\n  // +optional\n  optional string reinvocationPolicy = 10;\n\n  // MatchConditions is a list of conditions that must be met for a request to be sent to this\n  // webhook. Match conditions filter requests that have already been matched by the rules,\n  // namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests.\n  // There are a maximum of 64 match conditions allowed.\n  //\n  // The exact matching logic is (in order):\n  //   1. If ANY matchCondition evaluates to FALSE, the webhook is skipped.\n  //   2. If ALL matchConditions evaluate to TRUE, the webhook is called.\n  //   3. If any matchCondition evaluates to an error (but none are FALSE):\n  //      - If failurePolicy=Fail, reject the request\n  //      - If failurePolicy=Ignore, the error is ignored and the webhook is skipped\n  //\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=name\n  // +optional\n  repeated MatchCondition matchConditions = 12;\n}\n\n// MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object.\nmessage MutatingWebhookConfiguration {\n  // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Webhooks is a list of webhooks and the affected resources and operations.\n  // +optional\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=name\n  repeated MutatingWebhook Webhooks = 2;\n}\n\n// MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration.\nmessage MutatingWebhookConfigurationList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of MutatingWebhookConfiguration.\n  repeated MutatingWebhookConfiguration items = 2;\n}\n\n// NamedRuleWithOperations is a tuple of Operations and Resources with ResourceNames.\n// +structType=atomic\nmessage NamedRuleWithOperations {\n  // ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.\n  // +listType=atomic\n  // +optional\n  repeated string resourceNames = 1;\n\n  // RuleWithOperations is a tuple of Operations and Resources.\n  optional RuleWithOperations ruleWithOperations = 2;\n}\n\n// ParamKind is a tuple of Group Kind and Version.\n// +structType=atomic\nmessage ParamKind {\n  // APIVersion is the API group version the resources belong to.\n  // In format of \"group/version\".\n  // Required.\n  optional string apiVersion = 1;\n\n  // Kind is the API kind the resources belong to.\n  // Required.\n  optional string kind = 2;\n}\n\n// ParamRef describes how to locate the params to be used as input to\n// expressions of rules applied by a policy binding.\n// +structType=atomic\nmessage ParamRef {\n  // name is the name of the resource being referenced.\n  //\n  // One of `name` or `selector` must be set, but `name` and `selector` are\n  // mutually exclusive properties. If one is set, the other must be unset.\n  //\n  // A single parameter used for all admission requests can be configured\n  // by setting the `name` field, leaving `selector` blank, and setting namespace\n  // if `paramKind` is namespace-scoped.\n  optional string name = 1;\n\n  // namespace is the namespace of the referenced resource. Allows limiting\n  // the search for params to a specific namespace. Applies to both `name` and\n  // `selector` fields.\n  //\n  // A per-namespace parameter may be used by specifying a namespace-scoped\n  // `paramKind` in the policy and leaving this field empty.\n  //\n  // - If `paramKind` is cluster-scoped, this field MUST be unset. Setting this\n  // field results in a configuration error.\n  //\n  // - If `paramKind` is namespace-scoped, the namespace of the object being\n  // evaluated for admission will be used when this field is left unset. Take\n  // care that if this is left empty the binding must not match any cluster-scoped\n  // resources, which will result in an error.\n  //\n  // +optional\n  optional string namespace = 2;\n\n  // selector can be used to match multiple param objects based on their labels.\n  // Supply selector: {} to match all resources of the ParamKind.\n  //\n  // If multiple params are found, they are all evaluated with the policy expressions\n  // and the results are ANDed together.\n  //\n  // One of `name` or `selector` must be set, but `name` and `selector` are\n  // mutually exclusive properties. If one is set, the other must be unset.\n  //\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 3;\n\n  // `parameterNotFoundAction` controls the behavior of the binding when the resource\n  // exists, and name or selector is valid, but there are no parameters\n  // matched by the binding. If the value is set to `Allow`, then no\n  // matched parameters will be treated as successful validation by the binding.\n  // If set to `Deny`, then no matched parameters will be subject to the\n  // `failurePolicy` of the policy.\n  //\n  // Allowed values are `Allow` or `Deny`\n  //\n  // Required\n  optional string parameterNotFoundAction = 4;\n}\n\n// Rule is a tuple of APIGroups, APIVersion, and Resources.It is recommended\n// to make sure that all the tuple expansions are valid.\nmessage Rule {\n  // APIGroups is the API groups the resources belong to. '*' is all groups.\n  // If '*' is present, the length of the slice must be one.\n  // Required.\n  // +listType=atomic\n  repeated string apiGroups = 1;\n\n  // APIVersions is the API versions the resources belong to. '*' is all versions.\n  // If '*' is present, the length of the slice must be one.\n  // Required.\n  // +listType=atomic\n  repeated string apiVersions = 2;\n\n  // Resources is a list of resources this rule applies to.\n  //\n  // For example:\n  // 'pods' means pods.\n  // 'pods/log' means the log subresource of pods.\n  // '*' means all resources, but not subresources.\n  // 'pods/*' means all subresources of pods.\n  // '*/scale' means all scale subresources.\n  // '*/*' means all resources and their subresources.\n  //\n  // If wildcard is present, the validation rule will ensure resources do not\n  // overlap with each other.\n  //\n  // Depending on the enclosing object, subresources might not be allowed.\n  // Required.\n  // +listType=atomic\n  repeated string resources = 3;\n\n  // scope specifies the scope of this rule.\n  // Valid values are \"Cluster\", \"Namespaced\", and \"*\"\n  // \"Cluster\" means that only cluster-scoped resources will match this rule.\n  // Namespace API objects are cluster-scoped.\n  // \"Namespaced\" means that only namespaced resources will match this rule.\n  // \"*\" means that there are no scope restrictions.\n  // Subresources match the scope of their parent resource.\n  // Default is \"*\".\n  //\n  // +optional\n  optional string scope = 4;\n}\n\n// RuleWithOperations is a tuple of Operations and Resources. It is recommended to make\n// sure that all the tuple expansions are valid.\nmessage RuleWithOperations {\n  // Operations is the operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT or *\n  // for all of those operations and any future admission operations that are added.\n  // If '*' is present, the length of the slice must be one.\n  // Required.\n  // +listType=atomic\n  repeated string operations = 1;\n\n  // Rule is embedded, it describes other criteria of the rule, like\n  // APIGroups, APIVersions, Resources, etc.\n  optional Rule rule = 2;\n}\n\n// ServiceReference holds a reference to Service.legacy.k8s.io\nmessage ServiceReference {\n  // `namespace` is the namespace of the service.\n  // Required\n  optional string namespace = 1;\n\n  // `name` is the name of the service.\n  // Required\n  optional string name = 2;\n\n  // `path` is an optional URL path which will be sent in any request to\n  // this service.\n  // +optional\n  optional string path = 3;\n\n  // If specified, the port on the service that hosting webhook.\n  // Default to 443 for backward compatibility.\n  // `port` should be a valid port number (1-65535, inclusive).\n  // +optional\n  optional int32 port = 4;\n}\n\n// TypeChecking contains results of type checking the expressions in the\n// ValidatingAdmissionPolicy\nmessage TypeChecking {\n  // The type checking warnings for each expression.\n  // +optional\n  // +listType=atomic\n  repeated ExpressionWarning expressionWarnings = 1;\n}\n\n// ValidatingAdmissionPolicy describes the definition of an admission validation policy that accepts or rejects an object without changing it.\nmessage ValidatingAdmissionPolicy {\n  // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Specification of the desired behavior of the ValidatingAdmissionPolicy.\n  optional ValidatingAdmissionPolicySpec spec = 2;\n\n  // The status of the ValidatingAdmissionPolicy, including warnings that are useful to determine if the policy\n  // behaves in the expected way.\n  // Populated by the system.\n  // Read-only.\n  // +optional\n  optional ValidatingAdmissionPolicyStatus status = 3;\n}\n\n// ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources.\n// ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters.\n//\n// For a given admission request, each binding will cause its policy to be\n// evaluated N times, where N is 1 for policies/bindings that don't use\n// params, otherwise N is the number of parameters selected by the binding.\n//\n// The CEL expressions of a policy must have a computed CEL cost below the maximum\n// CEL budget. Each evaluation of the policy is given an independent CEL cost budget.\n// Adding/removing policies, bindings, or params can not affect whether a\n// given (policy, binding, param) combination is within its own CEL budget.\nmessage ValidatingAdmissionPolicyBinding {\n  // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Specification of the desired behavior of the ValidatingAdmissionPolicyBinding.\n  optional ValidatingAdmissionPolicyBindingSpec spec = 2;\n}\n\n// ValidatingAdmissionPolicyBindingList is a list of ValidatingAdmissionPolicyBinding.\nmessage ValidatingAdmissionPolicyBindingList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of PolicyBinding.\n  repeated ValidatingAdmissionPolicyBinding items = 2;\n}\n\n// ValidatingAdmissionPolicyBindingSpec is the specification of the ValidatingAdmissionPolicyBinding.\nmessage ValidatingAdmissionPolicyBindingSpec {\n  // PolicyName references a ValidatingAdmissionPolicy name which the ValidatingAdmissionPolicyBinding binds to.\n  // If the referenced resource does not exist, this binding is considered invalid and will be ignored\n  // Required.\n  optional string policyName = 1;\n\n  // paramRef specifies the parameter resource used to configure the admission control policy.\n  // It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy.\n  // If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied.\n  // If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param.\n  // +optional\n  optional ParamRef paramRef = 2;\n\n  // MatchResources declares what resources match this binding and will be validated by it.\n  // Note that this is intersected with the policy's matchConstraints, so only requests that are matched by the policy can be selected by this.\n  // If this is unset, all resources matched by the policy are validated by this binding\n  // When resourceRules is unset, it does not constrain resource matching. If a resource is matched by the other fields of this object, it will be validated.\n  // Note that this is differs from ValidatingAdmissionPolicy matchConstraints, where resourceRules are required.\n  // +optional\n  optional MatchResources matchResources = 3;\n\n  // validationActions declares how Validations of the referenced ValidatingAdmissionPolicy are enforced.\n  // If a validation evaluates to false it is always enforced according to these actions.\n  //\n  // Failures defined by the ValidatingAdmissionPolicy's FailurePolicy are enforced according\n  // to these actions only if the FailurePolicy is set to Fail, otherwise the failures are\n  // ignored. This includes compilation errors, runtime errors and misconfigurations of the policy.\n  //\n  // validationActions is declared as a set of action values. Order does\n  // not matter. validationActions may not contain duplicates of the same action.\n  //\n  // The supported actions values are:\n  //\n  // \"Deny\" specifies that a validation failure results in a denied request.\n  //\n  // \"Warn\" specifies that a validation failure is reported to the request client\n  // in HTTP Warning headers, with a warning code of 299. Warnings can be sent\n  // both for allowed or denied admission responses.\n  //\n  // \"Audit\" specifies that a validation failure is included in the published\n  // audit event for the request. The audit event will contain a\n  // `validation.policy.admission.k8s.io/validation_failure` audit annotation\n  // with a value containing the details of the validation failures, formatted as\n  // a JSON list of objects, each with the following fields:\n  // - message: The validation failure message string\n  // - policy: The resource name of the ValidatingAdmissionPolicy\n  // - binding: The resource name of the ValidatingAdmissionPolicyBinding\n  // - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy\n  // - validationActions: The enforcement actions enacted for the validation failure\n  // Example audit annotation:\n  // `\"validation.policy.admission.k8s.io/validation_failure\": \"[{\\\"message\\\": \\\"Invalid value\\\", {\\\"policy\\\": \\\"policy.example.com\\\", {\\\"binding\\\": \\\"policybinding.example.com\\\", {\\\"expressionIndex\\\": \\\"1\\\", {\\\"validationActions\\\": [\\\"Audit\\\"]}]\"`\n  //\n  // Clients should expect to handle additional values by ignoring\n  // any values not recognized.\n  //\n  // \"Deny\" and \"Warn\" may not be used together since this combination\n  // needlessly duplicates the validation failure both in the\n  // API response body and the HTTP warning headers.\n  //\n  // Required.\n  // +listType=set\n  repeated string validationActions = 4;\n}\n\n// ValidatingAdmissionPolicyList is a list of ValidatingAdmissionPolicy.\nmessage ValidatingAdmissionPolicyList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of ValidatingAdmissionPolicy.\n  repeated ValidatingAdmissionPolicy items = 2;\n}\n\n// ValidatingAdmissionPolicySpec is the specification of the desired behavior of the AdmissionPolicy.\nmessage ValidatingAdmissionPolicySpec {\n  // ParamKind specifies the kind of resources used to parameterize this policy.\n  // If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions.\n  // If ParamKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied.\n  // If paramKind is specified but paramRef is unset in ValidatingAdmissionPolicyBinding, the params variable will be null.\n  // +optional\n  optional ParamKind paramKind = 1;\n\n  // MatchConstraints specifies what resources this policy is designed to validate.\n  // The AdmissionPolicy cares about a request if it matches _all_ Constraints.\n  // However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API\n  // ValidatingAdmissionPolicy cannot match ValidatingAdmissionPolicy and ValidatingAdmissionPolicyBinding.\n  // Required.\n  optional MatchResources matchConstraints = 2;\n\n  // Validations contain CEL expressions which is used to apply the validation.\n  // Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is\n  // required.\n  // +listType=atomic\n  // +optional\n  repeated Validation validations = 3;\n\n  // failurePolicy defines how to handle failures for the admission policy. Failures can\n  // occur from CEL expression parse errors, type check errors, runtime errors and invalid\n  // or mis-configured policy definitions or bindings.\n  //\n  // A policy is invalid if spec.paramKind refers to a non-existent Kind.\n  // A binding is invalid if spec.paramRef.name refers to a non-existent resource.\n  //\n  // failurePolicy does not define how validations that evaluate to false are handled.\n  //\n  // When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions\n  // define how failures are enforced.\n  //\n  // Allowed values are Ignore or Fail. Defaults to Fail.\n  // +optional\n  optional string failurePolicy = 4;\n\n  // auditAnnotations contains CEL expressions which are used to produce audit\n  // annotations for the audit event of the API request.\n  // validations and auditAnnotations may not both be empty; a least one of validations or auditAnnotations is\n  // required.\n  // +listType=atomic\n  // +optional\n  repeated AuditAnnotation auditAnnotations = 5;\n\n  // MatchConditions is a list of conditions that must be met for a request to be validated.\n  // Match conditions filter requests that have already been matched by the rules,\n  // namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests.\n  // There are a maximum of 64 match conditions allowed.\n  //\n  // If a parameter object is provided, it can be accessed via the `params` handle in the same\n  // manner as validation expressions.\n  //\n  // The exact matching logic is (in order):\n  //   1. If ANY matchCondition evaluates to FALSE, the policy is skipped.\n  //   2. If ALL matchConditions evaluate to TRUE, the policy is evaluated.\n  //   3. If any matchCondition evaluates to an error (but none are FALSE):\n  //      - If failurePolicy=Fail, reject the request\n  //      - If failurePolicy=Ignore, the policy is skipped\n  //\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=name\n  // +optional\n  repeated MatchCondition matchConditions = 6;\n\n  // Variables contain definitions of variables that can be used in composition of other expressions.\n  // Each variable is defined as a named CEL expression.\n  // The variables defined here will be available under `variables` in other expressions of the policy\n  // except MatchConditions because MatchConditions are evaluated before the rest of the policy.\n  //\n  // The expression of a variable can refer to other variables defined earlier in the list but not those after.\n  // Thus, Variables must be sorted by the order of first appearance and acyclic.\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=name\n  // +optional\n  repeated Variable variables = 7;\n}\n\n// ValidatingAdmissionPolicyStatus represents the status of an admission validation policy.\nmessage ValidatingAdmissionPolicyStatus {\n  // The generation observed by the controller.\n  // +optional\n  optional int64 observedGeneration = 1;\n\n  // The results of type checking for each expression.\n  // Presence of this field indicates the completion of the type checking.\n  // +optional\n  optional TypeChecking typeChecking = 2;\n\n  // The conditions represent the latest available observations of a policy's current state.\n  // +optional\n  // +listType=map\n  // +listMapKey=type\n  repeated .k8s.io.apimachinery.pkg.apis.meta.v1.Condition conditions = 3;\n}\n\n// ValidatingWebhook describes an admission webhook and the resources and operations it applies to.\nmessage ValidatingWebhook {\n  // The name of the admission webhook.\n  // Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where\n  // \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name\n  // of the organization.\n  // Required.\n  optional string name = 1;\n\n  // ClientConfig defines how to communicate with the hook.\n  // Required\n  optional WebhookClientConfig clientConfig = 2;\n\n  // Rules describes what operations on what resources/subresources the webhook cares about.\n  // The webhook cares about an operation if it matches _any_ Rule.\n  // However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks\n  // from putting the cluster in a state which cannot be recovered from without completely\n  // disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called\n  // on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.\n  // +listType=atomic\n  repeated RuleWithOperations rules = 3;\n\n  // FailurePolicy defines how unrecognized errors from the admission endpoint are handled -\n  // allowed values are Ignore or Fail. Defaults to Fail.\n  // +optional\n  optional string failurePolicy = 4;\n\n  // matchPolicy defines how the \"rules\" list is used to match incoming requests.\n  // Allowed values are \"Exact\" or \"Equivalent\".\n  //\n  // - Exact: match a request only if it exactly matches a specified rule.\n  // For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n  // but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n  // a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n  //\n  // - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version.\n  // For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n  // and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n  // a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n  //\n  // Defaults to \"Equivalent\"\n  // +optional\n  optional string matchPolicy = 9;\n\n  // NamespaceSelector decides whether to run the webhook on an object based\n  // on whether the namespace for that object matches the selector. If the\n  // object itself is a namespace, the matching is performed on\n  // object.metadata.labels. If the object is another cluster scoped resource,\n  // it never skips the webhook.\n  //\n  // For example, to run the webhook on any objects whose namespace is not\n  // associated with \"runlevel\" of \"0\" or \"1\";  you will set the selector as\n  // follows:\n  // \"namespaceSelector\": {\n  //   \"matchExpressions\": [\n  //     {\n  //       \"key\": \"runlevel\",\n  //       \"operator\": \"NotIn\",\n  //       \"values\": [\n  //         \"0\",\n  //         \"1\"\n  //       ]\n  //     }\n  //   ]\n  // }\n  //\n  // If instead you want to only run the webhook on any objects whose\n  // namespace is associated with the \"environment\" of \"prod\" or \"staging\";\n  // you will set the selector as follows:\n  // \"namespaceSelector\": {\n  //   \"matchExpressions\": [\n  //     {\n  //       \"key\": \"environment\",\n  //       \"operator\": \"In\",\n  //       \"values\": [\n  //         \"prod\",\n  //         \"staging\"\n  //       ]\n  //     }\n  //   ]\n  // }\n  //\n  // See\n  // https://kubernetes.io/docs/concepts/overview/working-with-objects/labels\n  // for more examples of label selectors.\n  //\n  // Default to the empty LabelSelector, which matches everything.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector namespaceSelector = 5;\n\n  // ObjectSelector decides whether to run the webhook based on if the\n  // object has matching labels. objectSelector is evaluated against both\n  // the oldObject and newObject that would be sent to the webhook, and\n  // is considered to match if either object matches the selector. A null\n  // object (oldObject in the case of create, or newObject in the case of\n  // delete) or an object that cannot have labels (like a\n  // DeploymentRollback or a PodProxyOptions object) is not considered to\n  // match.\n  // Use the object selector only if the webhook is opt-in, because end\n  // users may skip the admission webhook by setting the labels.\n  // Default to the empty LabelSelector, which matches everything.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector objectSelector = 10;\n\n  // SideEffects states whether this webhook has side effects.\n  // Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown).\n  // Webhooks with side effects MUST implement a reconciliation system, since a request may be\n  // rejected by a future step in the admission chain and the side effects therefore need to be undone.\n  // Requests with the dryRun attribute will be auto-rejected if they match a webhook with\n  // sideEffects == Unknown or Some.\n  optional string sideEffects = 6;\n\n  // TimeoutSeconds specifies the timeout for this webhook. After the timeout passes,\n  // the webhook call will be ignored or the API call will fail based on the\n  // failure policy.\n  // The timeout value must be between 1 and 30 seconds.\n  // Default to 10 seconds.\n  // +optional\n  optional int32 timeoutSeconds = 7;\n\n  // AdmissionReviewVersions is an ordered list of preferred `AdmissionReview`\n  // versions the Webhook expects. API server will try to use first version in\n  // the list which it supports. If none of the versions specified in this list\n  // supported by API server, validation will fail for this object.\n  // If a persisted webhook configuration specifies allowed versions and does not\n  // include any versions known to the API Server, calls to the webhook will fail\n  // and be subject to the failure policy.\n  // +listType=atomic\n  repeated string admissionReviewVersions = 8;\n\n  // MatchConditions is a list of conditions that must be met for a request to be sent to this\n  // webhook. Match conditions filter requests that have already been matched by the rules,\n  // namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests.\n  // There are a maximum of 64 match conditions allowed.\n  //\n  // The exact matching logic is (in order):\n  //   1. If ANY matchCondition evaluates to FALSE, the webhook is skipped.\n  //   2. If ALL matchConditions evaluate to TRUE, the webhook is called.\n  //   3. If any matchCondition evaluates to an error (but none are FALSE):\n  //      - If failurePolicy=Fail, reject the request\n  //      - If failurePolicy=Ignore, the error is ignored and the webhook is skipped\n  //\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=name\n  // +optional\n  repeated MatchCondition matchConditions = 11;\n}\n\n// ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it.\nmessage ValidatingWebhookConfiguration {\n  // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Webhooks is a list of webhooks and the affected resources and operations.\n  // +optional\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=name\n  repeated ValidatingWebhook Webhooks = 2;\n}\n\n// ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration.\nmessage ValidatingWebhookConfigurationList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of ValidatingWebhookConfiguration.\n  repeated ValidatingWebhookConfiguration items = 2;\n}\n\n// Validation specifies the CEL expression which is used to apply the validation.\nmessage Validation {\n  // Expression represents the expression which will be evaluated by CEL.\n  // ref: https://github.com/google/cel-spec\n  // CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables:\n  //\n  // - 'object' - The object from the incoming request. The value is null for DELETE requests.\n  // - 'oldObject' - The existing object. The value is null for CREATE requests.\n  // - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)).\n  // - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind.\n  // - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources.\n  // - 'variables' - Map of composited variables, from its name to its lazily evaluated value.\n  //   For example, a variable named 'foo' can be accessed as 'variables.foo'.\n  // - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n  //   See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n  // - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n  //   request resource.\n  //\n  // The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the\n  // object. No other metadata properties are accessible.\n  //\n  // Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible.\n  // Accessible property names are escaped according to the following rules when accessed in the expression:\n  // - '__' escapes to '__underscores__'\n  // - '.' escapes to '__dot__'\n  // - '-' escapes to '__dash__'\n  // - '/' escapes to '__slash__'\n  // - Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are:\n  // \t  \"true\", \"false\", \"null\", \"in\", \"as\", \"break\", \"const\", \"continue\", \"else\", \"for\", \"function\", \"if\",\n  // \t  \"import\", \"let\", \"loop\", \"package\", \"namespace\", \"return\".\n  // Examples:\n  //   - Expression accessing a property named \"namespace\": {\"Expression\": \"object.__namespace__ > 0\"}\n  //   - Expression accessing a property named \"x-prop\": {\"Expression\": \"object.x__dash__prop > 0\"}\n  //   - Expression accessing a property named \"redact__d\": {\"Expression\": \"object.redact__underscores__d > 0\"}\n  //\n  // Equality on arrays with list type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1].\n  // Concatenation on arrays with x-kubernetes-list-type use the semantics of the list type:\n  //   - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and\n  //     non-intersecting elements in `Y` are appended, retaining their partial order.\n  //   - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values\n  //     are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with\n  //     non-intersecting keys are appended, retaining their partial order.\n  // Required.\n  optional string Expression = 1;\n\n  // Message represents the message displayed when validation fails. The message is required if the Expression contains\n  // line breaks. The message must not contain line breaks.\n  // If unset, the message is \"failed rule: {Rule}\".\n  // e.g. \"must be a URL with the host matching spec.host\"\n  // If the Expression contains line breaks. Message is required.\n  // The message must not contain line breaks.\n  // If unset, the message is \"failed Expression: {Expression}\".\n  // +optional\n  optional string message = 2;\n\n  // Reason represents a machine-readable description of why this validation failed.\n  // If this is the first validation in the list to fail, this reason, as well as the\n  // corresponding HTTP response code, are used in the\n  // HTTP response to the client.\n  // The currently supported reasons are: \"Unauthorized\", \"Forbidden\", \"Invalid\", \"RequestEntityTooLarge\".\n  // If not set, StatusReasonInvalid is used in the response to the client.\n  // +optional\n  optional string reason = 3;\n\n  // messageExpression declares a CEL expression that evaluates to the validation failure message that is returned when this rule fails.\n  // Since messageExpression is used as a failure message, it must evaluate to a string.\n  // If both message and messageExpression are present on a validation, then messageExpression will be used if validation fails.\n  // If messageExpression results in a runtime error, the runtime error is logged, and the validation failure message is produced\n  // as if the messageExpression field were unset. If messageExpression evaluates to an empty string, a string with only spaces, or a string\n  // that contains line breaks, then the validation failure message will also be produced as if the messageExpression field were unset, and\n  // the fact that messageExpression produced an empty string/string with only spaces/string with line breaks will be logged.\n  // messageExpression has access to all the same variables as the `expression` except for 'authorizer' and 'authorizer.requestResource'.\n  // Example:\n  // \"object.x must be less than max (\"+string(params.max)+\")\"\n  // +optional\n  optional string messageExpression = 4;\n}\n\n// Variable is the definition of a variable that is used for composition. A variable is defined as a named expression.\n// +structType=atomic\nmessage Variable {\n  // Name is the name of the variable. The name must be a valid CEL identifier and unique among all variables.\n  // The variable can be accessed in other expressions through `variables`\n  // For example, if name is \"foo\", the variable will be available as `variables.foo`\n  optional string Name = 1;\n\n  // Expression is the expression that will be evaluated as the value of the variable.\n  // The CEL expression has access to the same identifiers as the CEL expressions in Validation.\n  optional string Expression = 2;\n}\n\n// WebhookClientConfig contains the information to make a TLS\n// connection with the webhook\nmessage WebhookClientConfig {\n  // `url` gives the location of the webhook, in standard URL form\n  // (`scheme://host:port/path`). Exactly one of `url` or `service`\n  // must be specified.\n  //\n  // The `host` should not refer to a service running in the cluster; use\n  // the `service` field instead. The host might be resolved via external\n  // DNS in some apiservers (e.g., `kube-apiserver` cannot resolve\n  // in-cluster DNS as that would be a layering violation). `host` may\n  // also be an IP address.\n  //\n  // Please note that using `localhost` or `127.0.0.1` as a `host` is\n  // risky unless you take great care to run this webhook on all hosts\n  // which run an apiserver which might need to make calls to this\n  // webhook. Such installs are likely to be non-portable, i.e., not easy\n  // to turn up in a new cluster.\n  //\n  // The scheme must be \"https\"; the URL must begin with \"https://\".\n  //\n  // A path is optional, and if present may be any string permissible in\n  // a URL. You may use the path to pass an arbitrary string to the\n  // webhook, for example, a cluster identifier.\n  //\n  // Attempting to use a user or basic auth e.g. \"user:password@\" is not\n  // allowed. Fragments (\"#...\") and query parameters (\"?...\") are not\n  // allowed, either.\n  //\n  // +optional\n  optional string url = 3;\n\n  // `service` is a reference to the service for this webhook. Either\n  // `service` or `url` must be specified.\n  //\n  // If the webhook is running within the cluster, then you should use `service`.\n  //\n  // +optional\n  optional ServiceReference service = 1;\n\n  // `caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate.\n  // If unspecified, system trust roots on the apiserver are used.\n  // +optional\n  optional bytes caBundle = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1/register.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name for this API.\nconst GroupName = \"admissionregistration.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\n// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\nvar (\n\t// SchemeBuilder points to a list of functions added to Scheme.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\t// AddToScheme is a common registration function for mapping packaged scoped group & version keys to a scheme.\n\tAddToScheme = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&ValidatingWebhookConfiguration{},\n\t\t&ValidatingWebhookConfigurationList{},\n\t\t&MutatingWebhookConfiguration{},\n\t\t&MutatingWebhookConfigurationList{},\n\t\t&ValidatingAdmissionPolicy{},\n\t\t&ValidatingAdmissionPolicyList{},\n\t\t&ValidatingAdmissionPolicyBinding{},\n\t\t&ValidatingAdmissionPolicyBindingList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1/types.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// Rule is a tuple of APIGroups, APIVersion, and Resources.It is recommended\n// to make sure that all the tuple expansions are valid.\ntype Rule struct {\n\t// APIGroups is the API groups the resources belong to. '*' is all groups.\n\t// If '*' is present, the length of the slice must be one.\n\t// Required.\n\t// +listType=atomic\n\tAPIGroups []string `json:\"apiGroups,omitempty\" protobuf:\"bytes,1,rep,name=apiGroups\"`\n\n\t// APIVersions is the API versions the resources belong to. '*' is all versions.\n\t// If '*' is present, the length of the slice must be one.\n\t// Required.\n\t// +listType=atomic\n\tAPIVersions []string `json:\"apiVersions,omitempty\" protobuf:\"bytes,2,rep,name=apiVersions\"`\n\n\t// Resources is a list of resources this rule applies to.\n\t//\n\t// For example:\n\t// 'pods' means pods.\n\t// 'pods/log' means the log subresource of pods.\n\t// '*' means all resources, but not subresources.\n\t// 'pods/*' means all subresources of pods.\n\t// '*/scale' means all scale subresources.\n\t// '*/*' means all resources and their subresources.\n\t//\n\t// If wildcard is present, the validation rule will ensure resources do not\n\t// overlap with each other.\n\t//\n\t// Depending on the enclosing object, subresources might not be allowed.\n\t// Required.\n\t// +listType=atomic\n\tResources []string `json:\"resources,omitempty\" protobuf:\"bytes,3,rep,name=resources\"`\n\n\t// scope specifies the scope of this rule.\n\t// Valid values are \"Cluster\", \"Namespaced\", and \"*\"\n\t// \"Cluster\" means that only cluster-scoped resources will match this rule.\n\t// Namespace API objects are cluster-scoped.\n\t// \"Namespaced\" means that only namespaced resources will match this rule.\n\t// \"*\" means that there are no scope restrictions.\n\t// Subresources match the scope of their parent resource.\n\t// Default is \"*\".\n\t//\n\t// +optional\n\tScope *ScopeType `json:\"scope,omitempty\" protobuf:\"bytes,4,rep,name=scope\"`\n}\n\n// ScopeType specifies a scope for a Rule.\n// +enum\ntype ScopeType string\n\nconst (\n\t// ClusterScope means that scope is limited to cluster-scoped objects.\n\t// Namespace objects are cluster-scoped.\n\tClusterScope ScopeType = \"Cluster\"\n\t// NamespacedScope means that scope is limited to namespaced objects.\n\tNamespacedScope ScopeType = \"Namespaced\"\n\t// AllScopes means that all scopes are included.\n\tAllScopes ScopeType = \"*\"\n)\n\n// FailurePolicyType specifies a failure policy that defines how unrecognized errors from the admission endpoint are handled.\n// +enum\ntype FailurePolicyType string\n\nconst (\n\t// Ignore means that an error calling the webhook is ignored.\n\tIgnore FailurePolicyType = \"Ignore\"\n\t// Fail means that an error calling the webhook causes the admission to fail.\n\tFail FailurePolicyType = \"Fail\"\n)\n\n// ParameterNotFoundActionType specifies a failure policy that defines how a binding\n// is evaluated when the param referred by its perNamespaceParamRef is not found.\ntype ParameterNotFoundActionType string\n\nconst (\n\t// Allow means all requests will be admitted if no param resources\n\t// could be found.\n\tAllowAction ParameterNotFoundActionType = \"Allow\"\n\t// Deny means all requests will be denied if no param resources are found.\n\tDenyAction ParameterNotFoundActionType = \"Deny\"\n)\n\n// MatchPolicyType specifies the type of match policy.\n// +enum\ntype MatchPolicyType string\n\nconst (\n\t// Exact means requests should only be sent to the webhook if they exactly match a given rule.\n\tExact MatchPolicyType = \"Exact\"\n\t// Equivalent means requests should be sent to the webhook if they modify a resource listed in rules via another API group or version.\n\tEquivalent MatchPolicyType = \"Equivalent\"\n)\n\n// SideEffectClass specifies the types of side effects a webhook may have.\n// +enum\ntype SideEffectClass string\n\nconst (\n\t// SideEffectClassUnknown means that no information is known about the side effects of calling the webhook.\n\t// If a request with the dry-run attribute would trigger a call to this webhook, the request will instead fail.\n\tSideEffectClassUnknown SideEffectClass = \"Unknown\"\n\t// SideEffectClassNone means that calling the webhook will have no side effects.\n\tSideEffectClassNone SideEffectClass = \"None\"\n\t// SideEffectClassSome means that calling the webhook will possibly have side effects.\n\t// If a request with the dry-run attribute would trigger a call to this webhook, the request will instead fail.\n\tSideEffectClassSome SideEffectClass = \"Some\"\n\t// SideEffectClassNoneOnDryRun means that calling the webhook will possibly have side effects, but if the\n\t// request being reviewed has the dry-run attribute, the side effects will be suppressed.\n\tSideEffectClassNoneOnDryRun SideEffectClass = \"NoneOnDryRun\"\n)\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.30\n\n// ValidatingAdmissionPolicy describes the definition of an admission validation policy that accepts or rejects an object without changing it.\ntype ValidatingAdmissionPolicy struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// Specification of the desired behavior of the ValidatingAdmissionPolicy.\n\tSpec ValidatingAdmissionPolicySpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\t// The status of the ValidatingAdmissionPolicy, including warnings that are useful to determine if the policy\n\t// behaves in the expected way.\n\t// Populated by the system.\n\t// Read-only.\n\t// +optional\n\tStatus ValidatingAdmissionPolicyStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// ValidatingAdmissionPolicyStatus represents the status of an admission validation policy.\ntype ValidatingAdmissionPolicyStatus struct {\n\t// The generation observed by the controller.\n\t// +optional\n\tObservedGeneration int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,1,opt,name=observedGeneration\"`\n\t// The results of type checking for each expression.\n\t// Presence of this field indicates the completion of the type checking.\n\t// +optional\n\tTypeChecking *TypeChecking `json:\"typeChecking,omitempty\" protobuf:\"bytes,2,opt,name=typeChecking\"`\n\t// The conditions represent the latest available observations of a policy's current state.\n\t// +optional\n\t// +listType=map\n\t// +listMapKey=type\n\tConditions []metav1.Condition `json:\"conditions,omitempty\" protobuf:\"bytes,3,rep,name=conditions\"`\n}\n\n// ValidatingAdmissionPolicyConditionType is the condition type of admission validation policy.\ntype ValidatingAdmissionPolicyConditionType string\n\n// TypeChecking contains results of type checking the expressions in the\n// ValidatingAdmissionPolicy\ntype TypeChecking struct {\n\t// The type checking warnings for each expression.\n\t// +optional\n\t// +listType=atomic\n\tExpressionWarnings []ExpressionWarning `json:\"expressionWarnings,omitempty\" protobuf:\"bytes,1,rep,name=expressionWarnings\"`\n}\n\n// ExpressionWarning is a warning information that targets a specific expression.\ntype ExpressionWarning struct {\n\t// The path to the field that refers the expression.\n\t// For example, the reference to the expression of the first item of\n\t// validations is \"spec.validations[0].expression\"\n\tFieldRef string `json:\"fieldRef\" protobuf:\"bytes,2,opt,name=fieldRef\"`\n\t// The content of type checking information in a human-readable form.\n\t// Each line of the warning contains the type that the expression is checked\n\t// against, followed by the type check error from the compiler.\n\tWarning string `json:\"warning\" protobuf:\"bytes,3,opt,name=warning\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.30\n\n// ValidatingAdmissionPolicyList is a list of ValidatingAdmissionPolicy.\ntype ValidatingAdmissionPolicyList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// List of ValidatingAdmissionPolicy.\n\tItems []ValidatingAdmissionPolicy `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// ValidatingAdmissionPolicySpec is the specification of the desired behavior of the AdmissionPolicy.\ntype ValidatingAdmissionPolicySpec struct {\n\t// ParamKind specifies the kind of resources used to parameterize this policy.\n\t// If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions.\n\t// If ParamKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied.\n\t// If paramKind is specified but paramRef is unset in ValidatingAdmissionPolicyBinding, the params variable will be null.\n\t// +optional\n\tParamKind *ParamKind `json:\"paramKind,omitempty\" protobuf:\"bytes,1,rep,name=paramKind\"`\n\n\t// MatchConstraints specifies what resources this policy is designed to validate.\n\t// The AdmissionPolicy cares about a request if it matches _all_ Constraints.\n\t// However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API\n\t// ValidatingAdmissionPolicy cannot match ValidatingAdmissionPolicy and ValidatingAdmissionPolicyBinding.\n\t// Required.\n\tMatchConstraints *MatchResources `json:\"matchConstraints,omitempty\" protobuf:\"bytes,2,rep,name=matchConstraints\"`\n\n\t// Validations contain CEL expressions which is used to apply the validation.\n\t// Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is\n\t// required.\n\t// +listType=atomic\n\t// +optional\n\tValidations []Validation `json:\"validations,omitempty\" protobuf:\"bytes,3,rep,name=validations\"`\n\n\t// failurePolicy defines how to handle failures for the admission policy. Failures can\n\t// occur from CEL expression parse errors, type check errors, runtime errors and invalid\n\t// or mis-configured policy definitions or bindings.\n\t//\n\t// A policy is invalid if spec.paramKind refers to a non-existent Kind.\n\t// A binding is invalid if spec.paramRef.name refers to a non-existent resource.\n\t//\n\t// failurePolicy does not define how validations that evaluate to false are handled.\n\t//\n\t// When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions\n\t// define how failures are enforced.\n\t//\n\t// Allowed values are Ignore or Fail. Defaults to Fail.\n\t// +optional\n\tFailurePolicy *FailurePolicyType `json:\"failurePolicy,omitempty\" protobuf:\"bytes,4,opt,name=failurePolicy,casttype=FailurePolicyType\"`\n\n\t// auditAnnotations contains CEL expressions which are used to produce audit\n\t// annotations for the audit event of the API request.\n\t// validations and auditAnnotations may not both be empty; a least one of validations or auditAnnotations is\n\t// required.\n\t// +listType=atomic\n\t// +optional\n\tAuditAnnotations []AuditAnnotation `json:\"auditAnnotations,omitempty\" protobuf:\"bytes,5,rep,name=auditAnnotations\"`\n\n\t// MatchConditions is a list of conditions that must be met for a request to be validated.\n\t// Match conditions filter requests that have already been matched by the rules,\n\t// namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests.\n\t// There are a maximum of 64 match conditions allowed.\n\t//\n\t// If a parameter object is provided, it can be accessed via the `params` handle in the same\n\t// manner as validation expressions.\n\t//\n\t// The exact matching logic is (in order):\n\t//   1. If ANY matchCondition evaluates to FALSE, the policy is skipped.\n\t//   2. If ALL matchConditions evaluate to TRUE, the policy is evaluated.\n\t//   3. If any matchCondition evaluates to an error (but none are FALSE):\n\t//      - If failurePolicy=Fail, reject the request\n\t//      - If failurePolicy=Ignore, the policy is skipped\n\t//\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=name\n\t// +optional\n\tMatchConditions []MatchCondition `json:\"matchConditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,6,rep,name=matchConditions\"`\n\n\t// Variables contain definitions of variables that can be used in composition of other expressions.\n\t// Each variable is defined as a named CEL expression.\n\t// The variables defined here will be available under `variables` in other expressions of the policy\n\t// except MatchConditions because MatchConditions are evaluated before the rest of the policy.\n\t//\n\t// The expression of a variable can refer to other variables defined earlier in the list but not those after.\n\t// Thus, Variables must be sorted by the order of first appearance and acyclic.\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=name\n\t// +optional\n\tVariables []Variable `json:\"variables,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,7,rep,name=variables\"`\n}\n\n// ParamKind is a tuple of Group Kind and Version.\n// +structType=atomic\ntype ParamKind struct {\n\t// APIVersion is the API group version the resources belong to.\n\t// In format of \"group/version\".\n\t// Required.\n\tAPIVersion string `json:\"apiVersion,omitempty\" protobuf:\"bytes,1,rep,name=apiVersion\"`\n\n\t// Kind is the API kind the resources belong to.\n\t// Required.\n\tKind string `json:\"kind,omitempty\" protobuf:\"bytes,2,rep,name=kind\"`\n}\n\n// Validation specifies the CEL expression which is used to apply the validation.\ntype Validation struct {\n\t// Expression represents the expression which will be evaluated by CEL.\n\t// ref: https://github.com/google/cel-spec\n\t// CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables:\n\t//\n\t// - 'object' - The object from the incoming request. The value is null for DELETE requests.\n\t// - 'oldObject' - The existing object. The value is null for CREATE requests.\n\t// - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)).\n\t// - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind.\n\t// - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources.\n\t// - 'variables' - Map of composited variables, from its name to its lazily evaluated value.\n\t//   For example, a variable named 'foo' can be accessed as 'variables.foo'.\n\t// - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n\t//   See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n\t// - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n\t//   request resource.\n\t//\n\t// The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the\n\t// object. No other metadata properties are accessible.\n\t//\n\t// Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible.\n\t// Accessible property names are escaped according to the following rules when accessed in the expression:\n\t// - '__' escapes to '__underscores__'\n\t// - '.' escapes to '__dot__'\n\t// - '-' escapes to '__dash__'\n\t// - '/' escapes to '__slash__'\n\t// - Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are:\n\t//\t  \"true\", \"false\", \"null\", \"in\", \"as\", \"break\", \"const\", \"continue\", \"else\", \"for\", \"function\", \"if\",\n\t//\t  \"import\", \"let\", \"loop\", \"package\", \"namespace\", \"return\".\n\t// Examples:\n\t//   - Expression accessing a property named \"namespace\": {\"Expression\": \"object.__namespace__ > 0\"}\n\t//   - Expression accessing a property named \"x-prop\": {\"Expression\": \"object.x__dash__prop > 0\"}\n\t//   - Expression accessing a property named \"redact__d\": {\"Expression\": \"object.redact__underscores__d > 0\"}\n\t//\n\t// Equality on arrays with list type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1].\n\t// Concatenation on arrays with x-kubernetes-list-type use the semantics of the list type:\n\t//   - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and\n\t//     non-intersecting elements in `Y` are appended, retaining their partial order.\n\t//   - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values\n\t//     are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with\n\t//     non-intersecting keys are appended, retaining their partial order.\n\t// Required.\n\tExpression string `json:\"expression\" protobuf:\"bytes,1,opt,name=Expression\"`\n\t// Message represents the message displayed when validation fails. The message is required if the Expression contains\n\t// line breaks. The message must not contain line breaks.\n\t// If unset, the message is \"failed rule: {Rule}\".\n\t// e.g. \"must be a URL with the host matching spec.host\"\n\t// If the Expression contains line breaks. Message is required.\n\t// The message must not contain line breaks.\n\t// If unset, the message is \"failed Expression: {Expression}\".\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,2,opt,name=message\"`\n\t// Reason represents a machine-readable description of why this validation failed.\n\t// If this is the first validation in the list to fail, this reason, as well as the\n\t// corresponding HTTP response code, are used in the\n\t// HTTP response to the client.\n\t// The currently supported reasons are: \"Unauthorized\", \"Forbidden\", \"Invalid\", \"RequestEntityTooLarge\".\n\t// If not set, StatusReasonInvalid is used in the response to the client.\n\t// +optional\n\tReason *metav1.StatusReason `json:\"reason,omitempty\" protobuf:\"bytes,3,opt,name=reason\"`\n\t// messageExpression declares a CEL expression that evaluates to the validation failure message that is returned when this rule fails.\n\t// Since messageExpression is used as a failure message, it must evaluate to a string.\n\t// If both message and messageExpression are present on a validation, then messageExpression will be used if validation fails.\n\t// If messageExpression results in a runtime error, the runtime error is logged, and the validation failure message is produced\n\t// as if the messageExpression field were unset. If messageExpression evaluates to an empty string, a string with only spaces, or a string\n\t// that contains line breaks, then the validation failure message will also be produced as if the messageExpression field were unset, and\n\t// the fact that messageExpression produced an empty string/string with only spaces/string with line breaks will be logged.\n\t// messageExpression has access to all the same variables as the `expression` except for 'authorizer' and 'authorizer.requestResource'.\n\t// Example:\n\t// \"object.x must be less than max (\"+string(params.max)+\")\"\n\t// +optional\n\tMessageExpression string `json:\"messageExpression,omitempty\" protobuf:\"bytes,4,opt,name=messageExpression\"`\n}\n\n// Variable is the definition of a variable that is used for composition. A variable is defined as a named expression.\n// +structType=atomic\ntype Variable struct {\n\t// Name is the name of the variable. The name must be a valid CEL identifier and unique among all variables.\n\t// The variable can be accessed in other expressions through `variables`\n\t// For example, if name is \"foo\", the variable will be available as `variables.foo`\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=Name\"`\n\n\t// Expression is the expression that will be evaluated as the value of the variable.\n\t// The CEL expression has access to the same identifiers as the CEL expressions in Validation.\n\tExpression string `json:\"expression\" protobuf:\"bytes,2,opt,name=Expression\"`\n}\n\n// AuditAnnotation describes how to produce an audit annotation for an API request.\ntype AuditAnnotation struct {\n\t// key specifies the audit annotation key. The audit annotation keys of\n\t// a ValidatingAdmissionPolicy must be unique. The key must be a qualified\n\t// name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length.\n\t//\n\t// The key is combined with the resource name of the\n\t// ValidatingAdmissionPolicy to construct an audit annotation key:\n\t// \"{ValidatingAdmissionPolicy name}/{key}\".\n\t//\n\t// If an admission webhook uses the same resource name as this ValidatingAdmissionPolicy\n\t// and the same audit annotation key, the annotation key will be identical.\n\t// In this case, the first annotation written with the key will be included\n\t// in the audit event and all subsequent annotations with the same key\n\t// will be discarded.\n\t//\n\t// Required.\n\tKey string `json:\"key\" protobuf:\"bytes,1,opt,name=key\"`\n\n\t// valueExpression represents the expression which is evaluated by CEL to\n\t// produce an audit annotation value. The expression must evaluate to either\n\t// a string or null value. If the expression evaluates to a string, the\n\t// audit annotation is included with the string value. If the expression\n\t// evaluates to null or empty string the audit annotation will be omitted.\n\t// The valueExpression may be no longer than 5kb in length.\n\t// If the result of the valueExpression is more than 10kb in length, it\n\t// will be truncated to 10kb.\n\t//\n\t// If multiple ValidatingAdmissionPolicyBinding resources match an\n\t// API request, then the valueExpression will be evaluated for\n\t// each binding. All unique values produced by the valueExpressions\n\t// will be joined together in a comma-separated list.\n\t//\n\t// Required.\n\tValueExpression string `json:\"valueExpression\" protobuf:\"bytes,2,opt,name=valueExpression\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.30\n\n// ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources.\n// ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters.\n//\n// For a given admission request, each binding will cause its policy to be\n// evaluated N times, where N is 1 for policies/bindings that don't use\n// params, otherwise N is the number of parameters selected by the binding.\n//\n// The CEL expressions of a policy must have a computed CEL cost below the maximum\n// CEL budget. Each evaluation of the policy is given an independent CEL cost budget.\n// Adding/removing policies, bindings, or params can not affect whether a\n// given (policy, binding, param) combination is within its own CEL budget.\ntype ValidatingAdmissionPolicyBinding struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// Specification of the desired behavior of the ValidatingAdmissionPolicyBinding.\n\tSpec ValidatingAdmissionPolicyBindingSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.30\n\n// ValidatingAdmissionPolicyBindingList is a list of ValidatingAdmissionPolicyBinding.\ntype ValidatingAdmissionPolicyBindingList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// List of PolicyBinding.\n\tItems []ValidatingAdmissionPolicyBinding `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// ValidatingAdmissionPolicyBindingSpec is the specification of the ValidatingAdmissionPolicyBinding.\ntype ValidatingAdmissionPolicyBindingSpec struct {\n\t// PolicyName references a ValidatingAdmissionPolicy name which the ValidatingAdmissionPolicyBinding binds to.\n\t// If the referenced resource does not exist, this binding is considered invalid and will be ignored\n\t// Required.\n\tPolicyName string `json:\"policyName,omitempty\" protobuf:\"bytes,1,rep,name=policyName\"`\n\n\t// paramRef specifies the parameter resource used to configure the admission control policy.\n\t// It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy.\n\t// If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied.\n\t// If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param.\n\t// +optional\n\tParamRef *ParamRef `json:\"paramRef,omitempty\" protobuf:\"bytes,2,rep,name=paramRef\"`\n\n\t// MatchResources declares what resources match this binding and will be validated by it.\n\t// Note that this is intersected with the policy's matchConstraints, so only requests that are matched by the policy can be selected by this.\n\t// If this is unset, all resources matched by the policy are validated by this binding\n\t// When resourceRules is unset, it does not constrain resource matching. If a resource is matched by the other fields of this object, it will be validated.\n\t// Note that this is differs from ValidatingAdmissionPolicy matchConstraints, where resourceRules are required.\n\t// +optional\n\tMatchResources *MatchResources `json:\"matchResources,omitempty\" protobuf:\"bytes,3,rep,name=matchResources\"`\n\n\t// validationActions declares how Validations of the referenced ValidatingAdmissionPolicy are enforced.\n\t// If a validation evaluates to false it is always enforced according to these actions.\n\t//\n\t// Failures defined by the ValidatingAdmissionPolicy's FailurePolicy are enforced according\n\t// to these actions only if the FailurePolicy is set to Fail, otherwise the failures are\n\t// ignored. This includes compilation errors, runtime errors and misconfigurations of the policy.\n\t//\n\t// validationActions is declared as a set of action values. Order does\n\t// not matter. validationActions may not contain duplicates of the same action.\n\t//\n\t// The supported actions values are:\n\t//\n\t// \"Deny\" specifies that a validation failure results in a denied request.\n\t//\n\t// \"Warn\" specifies that a validation failure is reported to the request client\n\t// in HTTP Warning headers, with a warning code of 299. Warnings can be sent\n\t// both for allowed or denied admission responses.\n\t//\n\t// \"Audit\" specifies that a validation failure is included in the published\n\t// audit event for the request. The audit event will contain a\n\t// `validation.policy.admission.k8s.io/validation_failure` audit annotation\n\t// with a value containing the details of the validation failures, formatted as\n\t// a JSON list of objects, each with the following fields:\n\t// - message: The validation failure message string\n\t// - policy: The resource name of the ValidatingAdmissionPolicy\n\t// - binding: The resource name of the ValidatingAdmissionPolicyBinding\n\t// - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy\n\t// - validationActions: The enforcement actions enacted for the validation failure\n\t// Example audit annotation:\n\t// `\"validation.policy.admission.k8s.io/validation_failure\": \"[{\\\"message\\\": \\\"Invalid value\\\", {\\\"policy\\\": \\\"policy.example.com\\\", {\\\"binding\\\": \\\"policybinding.example.com\\\", {\\\"expressionIndex\\\": \\\"1\\\", {\\\"validationActions\\\": [\\\"Audit\\\"]}]\"`\n\t//\n\t// Clients should expect to handle additional values by ignoring\n\t// any values not recognized.\n\t//\n\t// \"Deny\" and \"Warn\" may not be used together since this combination\n\t// needlessly duplicates the validation failure both in the\n\t// API response body and the HTTP warning headers.\n\t//\n\t// Required.\n\t// +listType=set\n\tValidationActions []ValidationAction `json:\"validationActions,omitempty\" protobuf:\"bytes,4,rep,name=validationActions\"`\n}\n\n// ParamRef describes how to locate the params to be used as input to\n// expressions of rules applied by a policy binding.\n// +structType=atomic\ntype ParamRef struct {\n\t// name is the name of the resource being referenced.\n\t//\n\t// One of `name` or `selector` must be set, but `name` and `selector` are\n\t// mutually exclusive properties. If one is set, the other must be unset.\n\t//\n\t// A single parameter used for all admission requests can be configured\n\t// by setting the `name` field, leaving `selector` blank, and setting namespace\n\t// if `paramKind` is namespace-scoped.\n\t//\n\tName string `json:\"name,omitempty\" protobuf:\"bytes,1,rep,name=name\"`\n\n\t// namespace is the namespace of the referenced resource. Allows limiting\n\t// the search for params to a specific namespace. Applies to both `name` and\n\t// `selector` fields.\n\t//\n\t// A per-namespace parameter may be used by specifying a namespace-scoped\n\t// `paramKind` in the policy and leaving this field empty.\n\t//\n\t// - If `paramKind` is cluster-scoped, this field MUST be unset. Setting this\n\t// field results in a configuration error.\n\t//\n\t// - If `paramKind` is namespace-scoped, the namespace of the object being\n\t// evaluated for admission will be used when this field is left unset. Take\n\t// care that if this is left empty the binding must not match any cluster-scoped\n\t// resources, which will result in an error.\n\t//\n\t// +optional\n\tNamespace string `json:\"namespace,omitempty\" protobuf:\"bytes,2,rep,name=namespace\"`\n\n\t// selector can be used to match multiple param objects based on their labels.\n\t// Supply selector: {} to match all resources of the ParamKind.\n\t//\n\t// If multiple params are found, they are all evaluated with the policy expressions\n\t// and the results are ANDed together.\n\t//\n\t// One of `name` or `selector` must be set, but `name` and `selector` are\n\t// mutually exclusive properties. If one is set, the other must be unset.\n\t//\n\t// +optional\n\tSelector *metav1.LabelSelector `json:\"selector,omitempty\" protobuf:\"bytes,3,rep,name=selector\"`\n\n\t// `parameterNotFoundAction` controls the behavior of the binding when the resource\n\t// exists, and name or selector is valid, but there are no parameters\n\t// matched by the binding. If the value is set to `Allow`, then no\n\t// matched parameters will be treated as successful validation by the binding.\n\t// If set to `Deny`, then no matched parameters will be subject to the\n\t// `failurePolicy` of the policy.\n\t//\n\t// Allowed values are `Allow` or `Deny`\n\t//\n\t// Required\n\tParameterNotFoundAction *ParameterNotFoundActionType `json:\"parameterNotFoundAction,omitempty\" protobuf:\"bytes,4,rep,name=parameterNotFoundAction\"`\n}\n\n// MatchResources decides whether to run the admission control policy on an object based\n// on whether it meets the match criteria.\n// The exclude rules take precedence over include rules (if a resource matches both, it is excluded)\n// +structType=atomic\ntype MatchResources struct {\n\t// NamespaceSelector decides whether to run the admission control policy on an object based\n\t// on whether the namespace for that object matches the selector. If the\n\t// object itself is a namespace, the matching is performed on\n\t// object.metadata.labels. If the object is another cluster scoped resource,\n\t// it never skips the policy.\n\t//\n\t// For example, to run the webhook on any objects whose namespace is not\n\t// associated with \"runlevel\" of \"0\" or \"1\";  you will set the selector as\n\t// follows:\n\t// \"namespaceSelector\": {\n\t//   \"matchExpressions\": [\n\t//     {\n\t//       \"key\": \"runlevel\",\n\t//       \"operator\": \"NotIn\",\n\t//       \"values\": [\n\t//         \"0\",\n\t//         \"1\"\n\t//       ]\n\t//     }\n\t//   ]\n\t// }\n\t//\n\t// If instead you want to only run the policy on any objects whose\n\t// namespace is associated with the \"environment\" of \"prod\" or \"staging\";\n\t// you will set the selector as follows:\n\t// \"namespaceSelector\": {\n\t//   \"matchExpressions\": [\n\t//     {\n\t//       \"key\": \"environment\",\n\t//       \"operator\": \"In\",\n\t//       \"values\": [\n\t//         \"prod\",\n\t//         \"staging\"\n\t//       ]\n\t//     }\n\t//   ]\n\t// }\n\t//\n\t// See\n\t// https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\n\t// for more examples of label selectors.\n\t//\n\t// Default to the empty LabelSelector, which matches everything.\n\t// +optional\n\tNamespaceSelector *metav1.LabelSelector `json:\"namespaceSelector,omitempty\" protobuf:\"bytes,1,opt,name=namespaceSelector\"`\n\t// ObjectSelector decides whether to run the validation based on if the\n\t// object has matching labels. objectSelector is evaluated against both\n\t// the oldObject and newObject that would be sent to the cel validation, and\n\t// is considered to match if either object matches the selector. A null\n\t// object (oldObject in the case of create, or newObject in the case of\n\t// delete) or an object that cannot have labels (like a\n\t// DeploymentRollback or a PodProxyOptions object) is not considered to\n\t// match.\n\t// Use the object selector only if the webhook is opt-in, because end\n\t// users may skip the admission webhook by setting the labels.\n\t// Default to the empty LabelSelector, which matches everything.\n\t// +optional\n\tObjectSelector *metav1.LabelSelector `json:\"objectSelector,omitempty\" protobuf:\"bytes,2,opt,name=objectSelector\"`\n\t// ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches.\n\t// The policy cares about an operation if it matches _any_ Rule.\n\t// +listType=atomic\n\t// +optional\n\tResourceRules []NamedRuleWithOperations `json:\"resourceRules,omitempty\" protobuf:\"bytes,3,rep,name=resourceRules\"`\n\t// ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about.\n\t// The exclude rules take precedence over include rules (if a resource matches both, it is excluded)\n\t// +listType=atomic\n\t// +optional\n\tExcludeResourceRules []NamedRuleWithOperations `json:\"excludeResourceRules,omitempty\" protobuf:\"bytes,4,rep,name=excludeResourceRules\"`\n\t// matchPolicy defines how the \"MatchResources\" list is used to match incoming requests.\n\t// Allowed values are \"Exact\" or \"Equivalent\".\n\t//\n\t// - Exact: match a request only if it exactly matches a specified rule.\n\t// For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n\t// but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n\t// a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy.\n\t//\n\t// - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version.\n\t// For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n\t// and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n\t// a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy.\n\t//\n\t// Defaults to \"Equivalent\"\n\t// +optional\n\tMatchPolicy *MatchPolicyType `json:\"matchPolicy,omitempty\" protobuf:\"bytes,7,opt,name=matchPolicy,casttype=MatchPolicyType\"`\n}\n\n// ValidationAction specifies a policy enforcement action.\n// +enum\ntype ValidationAction string\n\nconst (\n\t// Deny specifies that a validation failure results in a denied request.\n\tDeny ValidationAction = \"Deny\"\n\t// Warn specifies that a validation failure is reported to the request client\n\t// in HTTP Warning headers, with a warning code of 299. Warnings can be sent\n\t// both for allowed or denied admission responses.\n\tWarn ValidationAction = \"Warn\"\n\t// Audit specifies that a validation failure is included in the published\n\t// audit event for the request. The audit event will contain a\n\t// `validation.policy.admission.k8s.io/validation_failure` audit annotation\n\t// with a value containing the details of the validation failure.\n\tAudit ValidationAction = \"Audit\"\n)\n\n// NamedRuleWithOperations is a tuple of Operations and Resources with ResourceNames.\n// +structType=atomic\ntype NamedRuleWithOperations struct {\n\t// ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.\n\t// +listType=atomic\n\t// +optional\n\tResourceNames []string `json:\"resourceNames,omitempty\" protobuf:\"bytes,1,rep,name=resourceNames\"`\n\t// RuleWithOperations is a tuple of Operations and Resources.\n\tRuleWithOperations `json:\",inline\" protobuf:\"bytes,2,opt,name=ruleWithOperations\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.16\n\n// ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it.\ntype ValidatingWebhookConfiguration struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// Webhooks is a list of webhooks and the affected resources and operations.\n\t// +optional\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=name\n\tWebhooks []ValidatingWebhook `json:\"webhooks,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,2,rep,name=Webhooks\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.16\n\n// ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration.\ntype ValidatingWebhookConfigurationList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// List of ValidatingWebhookConfiguration.\n\tItems []ValidatingWebhookConfiguration `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.16\n\n// MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object.\ntype MutatingWebhookConfiguration struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// Webhooks is a list of webhooks and the affected resources and operations.\n\t// +optional\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=name\n\tWebhooks []MutatingWebhook `json:\"webhooks,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,2,rep,name=Webhooks\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.16\n\n// MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration.\ntype MutatingWebhookConfigurationList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// List of MutatingWebhookConfiguration.\n\tItems []MutatingWebhookConfiguration `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// ValidatingWebhook describes an admission webhook and the resources and operations it applies to.\ntype ValidatingWebhook struct {\n\t// The name of the admission webhook.\n\t// Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where\n\t// \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name\n\t// of the organization.\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\n\t// ClientConfig defines how to communicate with the hook.\n\t// Required\n\tClientConfig WebhookClientConfig `json:\"clientConfig\" protobuf:\"bytes,2,opt,name=clientConfig\"`\n\n\t// Rules describes what operations on what resources/subresources the webhook cares about.\n\t// The webhook cares about an operation if it matches _any_ Rule.\n\t// However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks\n\t// from putting the cluster in a state which cannot be recovered from without completely\n\t// disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called\n\t// on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.\n\t// +listType=atomic\n\tRules []RuleWithOperations `json:\"rules,omitempty\" protobuf:\"bytes,3,rep,name=rules\"`\n\n\t// FailurePolicy defines how unrecognized errors from the admission endpoint are handled -\n\t// allowed values are Ignore or Fail. Defaults to Fail.\n\t// +optional\n\tFailurePolicy *FailurePolicyType `json:\"failurePolicy,omitempty\" protobuf:\"bytes,4,opt,name=failurePolicy,casttype=FailurePolicyType\"`\n\n\t// matchPolicy defines how the \"rules\" list is used to match incoming requests.\n\t// Allowed values are \"Exact\" or \"Equivalent\".\n\t//\n\t// - Exact: match a request only if it exactly matches a specified rule.\n\t// For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n\t// but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n\t// a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\t//\n\t// - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version.\n\t// For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n\t// and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n\t// a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\t//\n\t// Defaults to \"Equivalent\"\n\t// +optional\n\tMatchPolicy *MatchPolicyType `json:\"matchPolicy,omitempty\" protobuf:\"bytes,9,opt,name=matchPolicy,casttype=MatchPolicyType\"`\n\n\t// NamespaceSelector decides whether to run the webhook on an object based\n\t// on whether the namespace for that object matches the selector. If the\n\t// object itself is a namespace, the matching is performed on\n\t// object.metadata.labels. If the object is another cluster scoped resource,\n\t// it never skips the webhook.\n\t//\n\t// For example, to run the webhook on any objects whose namespace is not\n\t// associated with \"runlevel\" of \"0\" or \"1\";  you will set the selector as\n\t// follows:\n\t// \"namespaceSelector\": {\n\t//   \"matchExpressions\": [\n\t//     {\n\t//       \"key\": \"runlevel\",\n\t//       \"operator\": \"NotIn\",\n\t//       \"values\": [\n\t//         \"0\",\n\t//         \"1\"\n\t//       ]\n\t//     }\n\t//   ]\n\t// }\n\t//\n\t// If instead you want to only run the webhook on any objects whose\n\t// namespace is associated with the \"environment\" of \"prod\" or \"staging\";\n\t// you will set the selector as follows:\n\t// \"namespaceSelector\": {\n\t//   \"matchExpressions\": [\n\t//     {\n\t//       \"key\": \"environment\",\n\t//       \"operator\": \"In\",\n\t//       \"values\": [\n\t//         \"prod\",\n\t//         \"staging\"\n\t//       ]\n\t//     }\n\t//   ]\n\t// }\n\t//\n\t// See\n\t// https://kubernetes.io/docs/concepts/overview/working-with-objects/labels\n\t// for more examples of label selectors.\n\t//\n\t// Default to the empty LabelSelector, which matches everything.\n\t// +optional\n\tNamespaceSelector *metav1.LabelSelector `json:\"namespaceSelector,omitempty\" protobuf:\"bytes,5,opt,name=namespaceSelector\"`\n\n\t// ObjectSelector decides whether to run the webhook based on if the\n\t// object has matching labels. objectSelector is evaluated against both\n\t// the oldObject and newObject that would be sent to the webhook, and\n\t// is considered to match if either object matches the selector. A null\n\t// object (oldObject in the case of create, or newObject in the case of\n\t// delete) or an object that cannot have labels (like a\n\t// DeploymentRollback or a PodProxyOptions object) is not considered to\n\t// match.\n\t// Use the object selector only if the webhook is opt-in, because end\n\t// users may skip the admission webhook by setting the labels.\n\t// Default to the empty LabelSelector, which matches everything.\n\t// +optional\n\tObjectSelector *metav1.LabelSelector `json:\"objectSelector,omitempty\" protobuf:\"bytes,10,opt,name=objectSelector\"`\n\n\t// SideEffects states whether this webhook has side effects.\n\t// Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown).\n\t// Webhooks with side effects MUST implement a reconciliation system, since a request may be\n\t// rejected by a future step in the admission chain and the side effects therefore need to be undone.\n\t// Requests with the dryRun attribute will be auto-rejected if they match a webhook with\n\t// sideEffects == Unknown or Some.\n\tSideEffects *SideEffectClass `json:\"sideEffects\" protobuf:\"bytes,6,opt,name=sideEffects,casttype=SideEffectClass\"`\n\n\t// TimeoutSeconds specifies the timeout for this webhook. After the timeout passes,\n\t// the webhook call will be ignored or the API call will fail based on the\n\t// failure policy.\n\t// The timeout value must be between 1 and 30 seconds.\n\t// Default to 10 seconds.\n\t// +optional\n\tTimeoutSeconds *int32 `json:\"timeoutSeconds,omitempty\" protobuf:\"varint,7,opt,name=timeoutSeconds\"`\n\n\t// AdmissionReviewVersions is an ordered list of preferred `AdmissionReview`\n\t// versions the Webhook expects. API server will try to use first version in\n\t// the list which it supports. If none of the versions specified in this list\n\t// supported by API server, validation will fail for this object.\n\t// If a persisted webhook configuration specifies allowed versions and does not\n\t// include any versions known to the API Server, calls to the webhook will fail\n\t// and be subject to the failure policy.\n\t// +listType=atomic\n\tAdmissionReviewVersions []string `json:\"admissionReviewVersions\" protobuf:\"bytes,8,rep,name=admissionReviewVersions\"`\n\n\t// MatchConditions is a list of conditions that must be met for a request to be sent to this\n\t// webhook. Match conditions filter requests that have already been matched by the rules,\n\t// namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests.\n\t// There are a maximum of 64 match conditions allowed.\n\t//\n\t// The exact matching logic is (in order):\n\t//   1. If ANY matchCondition evaluates to FALSE, the webhook is skipped.\n\t//   2. If ALL matchConditions evaluate to TRUE, the webhook is called.\n\t//   3. If any matchCondition evaluates to an error (but none are FALSE):\n\t//      - If failurePolicy=Fail, reject the request\n\t//      - If failurePolicy=Ignore, the error is ignored and the webhook is skipped\n\t//\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=name\n\t// +optional\n\tMatchConditions []MatchCondition `json:\"matchConditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,11,opt,name=matchConditions\"`\n}\n\n// MutatingWebhook describes an admission webhook and the resources and operations it applies to.\ntype MutatingWebhook struct {\n\t// The name of the admission webhook.\n\t// Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where\n\t// \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name\n\t// of the organization.\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\n\t// ClientConfig defines how to communicate with the hook.\n\t// Required\n\tClientConfig WebhookClientConfig `json:\"clientConfig\" protobuf:\"bytes,2,opt,name=clientConfig\"`\n\n\t// Rules describes what operations on what resources/subresources the webhook cares about.\n\t// The webhook cares about an operation if it matches _any_ Rule.\n\t// However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks\n\t// from putting the cluster in a state which cannot be recovered from without completely\n\t// disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called\n\t// on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.\n\t// +listType=atomic\n\tRules []RuleWithOperations `json:\"rules,omitempty\" protobuf:\"bytes,3,rep,name=rules\"`\n\n\t// FailurePolicy defines how unrecognized errors from the admission endpoint are handled -\n\t// allowed values are Ignore or Fail. Defaults to Fail.\n\t// +optional\n\tFailurePolicy *FailurePolicyType `json:\"failurePolicy,omitempty\" protobuf:\"bytes,4,opt,name=failurePolicy,casttype=FailurePolicyType\"`\n\n\t// matchPolicy defines how the \"rules\" list is used to match incoming requests.\n\t// Allowed values are \"Exact\" or \"Equivalent\".\n\t//\n\t// - Exact: match a request only if it exactly matches a specified rule.\n\t// For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n\t// but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n\t// a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\t//\n\t// - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version.\n\t// For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n\t// and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n\t// a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\t//\n\t// Defaults to \"Equivalent\"\n\t// +optional\n\tMatchPolicy *MatchPolicyType `json:\"matchPolicy,omitempty\" protobuf:\"bytes,9,opt,name=matchPolicy,casttype=MatchPolicyType\"`\n\n\t// NamespaceSelector decides whether to run the webhook on an object based\n\t// on whether the namespace for that object matches the selector. If the\n\t// object itself is a namespace, the matching is performed on\n\t// object.metadata.labels. If the object is another cluster scoped resource,\n\t// it never skips the webhook.\n\t//\n\t// For example, to run the webhook on any objects whose namespace is not\n\t// associated with \"runlevel\" of \"0\" or \"1\";  you will set the selector as\n\t// follows:\n\t// \"namespaceSelector\": {\n\t//   \"matchExpressions\": [\n\t//     {\n\t//       \"key\": \"runlevel\",\n\t//       \"operator\": \"NotIn\",\n\t//       \"values\": [\n\t//         \"0\",\n\t//         \"1\"\n\t//       ]\n\t//     }\n\t//   ]\n\t// }\n\t//\n\t// If instead you want to only run the webhook on any objects whose\n\t// namespace is associated with the \"environment\" of \"prod\" or \"staging\";\n\t// you will set the selector as follows:\n\t// \"namespaceSelector\": {\n\t//   \"matchExpressions\": [\n\t//     {\n\t//       \"key\": \"environment\",\n\t//       \"operator\": \"In\",\n\t//       \"values\": [\n\t//         \"prod\",\n\t//         \"staging\"\n\t//       ]\n\t//     }\n\t//   ]\n\t// }\n\t//\n\t// See\n\t// https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\n\t// for more examples of label selectors.\n\t//\n\t// Default to the empty LabelSelector, which matches everything.\n\t// +optional\n\tNamespaceSelector *metav1.LabelSelector `json:\"namespaceSelector,omitempty\" protobuf:\"bytes,5,opt,name=namespaceSelector\"`\n\n\t// ObjectSelector decides whether to run the webhook based on if the\n\t// object has matching labels. objectSelector is evaluated against both\n\t// the oldObject and newObject that would be sent to the webhook, and\n\t// is considered to match if either object matches the selector. A null\n\t// object (oldObject in the case of create, or newObject in the case of\n\t// delete) or an object that cannot have labels (like a\n\t// DeploymentRollback or a PodProxyOptions object) is not considered to\n\t// match.\n\t// Use the object selector only if the webhook is opt-in, because end\n\t// users may skip the admission webhook by setting the labels.\n\t// Default to the empty LabelSelector, which matches everything.\n\t// +optional\n\tObjectSelector *metav1.LabelSelector `json:\"objectSelector,omitempty\" protobuf:\"bytes,11,opt,name=objectSelector\"`\n\n\t// SideEffects states whether this webhook has side effects.\n\t// Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown).\n\t// Webhooks with side effects MUST implement a reconciliation system, since a request may be\n\t// rejected by a future step in the admission chain and the side effects therefore need to be undone.\n\t// Requests with the dryRun attribute will be auto-rejected if they match a webhook with\n\t// sideEffects == Unknown or Some.\n\tSideEffects *SideEffectClass `json:\"sideEffects\" protobuf:\"bytes,6,opt,name=sideEffects,casttype=SideEffectClass\"`\n\n\t// TimeoutSeconds specifies the timeout for this webhook. After the timeout passes,\n\t// the webhook call will be ignored or the API call will fail based on the\n\t// failure policy.\n\t// The timeout value must be between 1 and 30 seconds.\n\t// Default to 10 seconds.\n\t// +optional\n\tTimeoutSeconds *int32 `json:\"timeoutSeconds,omitempty\" protobuf:\"varint,7,opt,name=timeoutSeconds\"`\n\n\t// AdmissionReviewVersions is an ordered list of preferred `AdmissionReview`\n\t// versions the Webhook expects. API server will try to use first version in\n\t// the list which it supports. If none of the versions specified in this list\n\t// supported by API server, validation will fail for this object.\n\t// If a persisted webhook configuration specifies allowed versions and does not\n\t// include any versions known to the API Server, calls to the webhook will fail\n\t// and be subject to the failure policy.\n\t// +listType=atomic\n\tAdmissionReviewVersions []string `json:\"admissionReviewVersions\" protobuf:\"bytes,8,rep,name=admissionReviewVersions\"`\n\n\t// reinvocationPolicy indicates whether this webhook should be called multiple times as part of a single admission evaluation.\n\t// Allowed values are \"Never\" and \"IfNeeded\".\n\t//\n\t// Never: the webhook will not be called more than once in a single admission evaluation.\n\t//\n\t// IfNeeded: the webhook will be called at least one additional time as part of the admission evaluation\n\t// if the object being admitted is modified by other admission plugins after the initial webhook call.\n\t// Webhooks that specify this option *must* be idempotent, able to process objects they previously admitted.\n\t// Note:\n\t// * the number of additional invocations is not guaranteed to be exactly one.\n\t// * if additional invocations result in further modifications to the object, webhooks are not guaranteed to be invoked again.\n\t// * webhooks that use this option may be reordered to minimize the number of additional invocations.\n\t// * to validate an object after all mutations are guaranteed complete, use a validating admission webhook instead.\n\t//\n\t// Defaults to \"Never\".\n\t// +optional\n\tReinvocationPolicy *ReinvocationPolicyType `json:\"reinvocationPolicy,omitempty\" protobuf:\"bytes,10,opt,name=reinvocationPolicy,casttype=ReinvocationPolicyType\"`\n\n\t// MatchConditions is a list of conditions that must be met for a request to be sent to this\n\t// webhook. Match conditions filter requests that have already been matched by the rules,\n\t// namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests.\n\t// There are a maximum of 64 match conditions allowed.\n\t//\n\t// The exact matching logic is (in order):\n\t//   1. If ANY matchCondition evaluates to FALSE, the webhook is skipped.\n\t//   2. If ALL matchConditions evaluate to TRUE, the webhook is called.\n\t//   3. If any matchCondition evaluates to an error (but none are FALSE):\n\t//      - If failurePolicy=Fail, reject the request\n\t//      - If failurePolicy=Ignore, the error is ignored and the webhook is skipped\n\t//\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=name\n\t// +optional\n\tMatchConditions []MatchCondition `json:\"matchConditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,12,opt,name=matchConditions\"`\n}\n\n// ReinvocationPolicyType specifies what type of policy the admission hook uses.\n// +enum\ntype ReinvocationPolicyType string\n\nconst (\n\t// NeverReinvocationPolicy indicates that the webhook must not be called more than once in a\n\t// single admission evaluation.\n\tNeverReinvocationPolicy ReinvocationPolicyType = \"Never\"\n\t// IfNeededReinvocationPolicy indicates that the webhook may be called at least one\n\t// additional time as part of the admission evaluation if the object being admitted is\n\t// modified by other admission plugins after the initial webhook call.\n\tIfNeededReinvocationPolicy ReinvocationPolicyType = \"IfNeeded\"\n)\n\n// RuleWithOperations is a tuple of Operations and Resources. It is recommended to make\n// sure that all the tuple expansions are valid.\ntype RuleWithOperations struct {\n\t// Operations is the operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT or *\n\t// for all of those operations and any future admission operations that are added.\n\t// If '*' is present, the length of the slice must be one.\n\t// Required.\n\t// +listType=atomic\n\tOperations []OperationType `json:\"operations,omitempty\" protobuf:\"bytes,1,rep,name=operations,casttype=OperationType\"`\n\t// Rule is embedded, it describes other criteria of the rule, like\n\t// APIGroups, APIVersions, Resources, etc.\n\tRule `json:\",inline\" protobuf:\"bytes,2,opt,name=rule\"`\n}\n\n// OperationType specifies an operation for a request.\n// +enum\ntype OperationType string\n\n// The constants should be kept in sync with those defined in k8s.io/kubernetes/pkg/admission/interface.go.\nconst (\n\tOperationAll OperationType = \"*\"\n\tCreate       OperationType = \"CREATE\"\n\tUpdate       OperationType = \"UPDATE\"\n\tDelete       OperationType = \"DELETE\"\n\tConnect      OperationType = \"CONNECT\"\n)\n\n// WebhookClientConfig contains the information to make a TLS\n// connection with the webhook\ntype WebhookClientConfig struct {\n\t// `url` gives the location of the webhook, in standard URL form\n\t// (`scheme://host:port/path`). Exactly one of `url` or `service`\n\t// must be specified.\n\t//\n\t// The `host` should not refer to a service running in the cluster; use\n\t// the `service` field instead. The host might be resolved via external\n\t// DNS in some apiservers (e.g., `kube-apiserver` cannot resolve\n\t// in-cluster DNS as that would be a layering violation). `host` may\n\t// also be an IP address.\n\t//\n\t// Please note that using `localhost` or `127.0.0.1` as a `host` is\n\t// risky unless you take great care to run this webhook on all hosts\n\t// which run an apiserver which might need to make calls to this\n\t// webhook. Such installs are likely to be non-portable, i.e., not easy\n\t// to turn up in a new cluster.\n\t//\n\t// The scheme must be \"https\"; the URL must begin with \"https://\".\n\t//\n\t// A path is optional, and if present may be any string permissible in\n\t// a URL. You may use the path to pass an arbitrary string to the\n\t// webhook, for example, a cluster identifier.\n\t//\n\t// Attempting to use a user or basic auth e.g. \"user:password@\" is not\n\t// allowed. Fragments (\"#...\") and query parameters (\"?...\") are not\n\t// allowed, either.\n\t//\n\t// +optional\n\tURL *string `json:\"url,omitempty\" protobuf:\"bytes,3,opt,name=url\"`\n\n\t// `service` is a reference to the service for this webhook. Either\n\t// `service` or `url` must be specified.\n\t//\n\t// If the webhook is running within the cluster, then you should use `service`.\n\t//\n\t// +optional\n\tService *ServiceReference `json:\"service,omitempty\" protobuf:\"bytes,1,opt,name=service\"`\n\n\t// `caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate.\n\t// If unspecified, system trust roots on the apiserver are used.\n\t// +optional\n\tCABundle []byte `json:\"caBundle,omitempty\" protobuf:\"bytes,2,opt,name=caBundle\"`\n}\n\n// ServiceReference holds a reference to Service.legacy.k8s.io\ntype ServiceReference struct {\n\t// `namespace` is the namespace of the service.\n\t// Required\n\tNamespace string `json:\"namespace\" protobuf:\"bytes,1,opt,name=namespace\"`\n\t// `name` is the name of the service.\n\t// Required\n\tName string `json:\"name\" protobuf:\"bytes,2,opt,name=name\"`\n\n\t// `path` is an optional URL path which will be sent in any request to\n\t// this service.\n\t// +optional\n\tPath *string `json:\"path,omitempty\" protobuf:\"bytes,3,opt,name=path\"`\n\n\t// If specified, the port on the service that hosting webhook.\n\t// Default to 443 for backward compatibility.\n\t// `port` should be a valid port number (1-65535, inclusive).\n\t// +optional\n\tPort *int32 `json:\"port,omitempty\" protobuf:\"varint,4,opt,name=port\"`\n}\n\n// MatchCondition represents a condition which must by fulfilled for a request to be sent to a webhook.\ntype MatchCondition struct {\n\t// Name is an identifier for this match condition, used for strategic merging of MatchConditions,\n\t// as well as providing an identifier for logging purposes. A good name should be descriptive of\n\t// the associated expression.\n\t// Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and\n\t// must start and end with an alphanumeric character (e.g. 'MyName',  or 'my.name',  or\n\t// '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an\n\t// optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName')\n\t//\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\n\t// Expression represents the expression which will be evaluated by CEL. Must evaluate to bool.\n\t// CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables:\n\t//\n\t// 'object' - The object from the incoming request. The value is null for DELETE requests.\n\t// 'oldObject' - The existing object. The value is null for CREATE requests.\n\t// 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest).\n\t// 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n\t//   See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n\t// 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n\t//   request resource.\n\t// Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/\n\t//\n\t// Required.\n\tExpression string `json:\"expression\" protobuf:\"bytes,2,opt,name=expression\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_AuditAnnotation = map[string]string{\n\t\"\":                \"AuditAnnotation describes how to produce an audit annotation for an API request.\",\n\t\"key\":             \"key specifies the audit annotation key. The audit annotation keys of a ValidatingAdmissionPolicy must be unique. The key must be a qualified name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length.\\n\\nThe key is combined with the resource name of the ValidatingAdmissionPolicy to construct an audit annotation key: \\\"{ValidatingAdmissionPolicy name}/{key}\\\".\\n\\nIf an admission webhook uses the same resource name as this ValidatingAdmissionPolicy and the same audit annotation key, the annotation key will be identical. In this case, the first annotation written with the key will be included in the audit event and all subsequent annotations with the same key will be discarded.\\n\\nRequired.\",\n\t\"valueExpression\": \"valueExpression represents the expression which is evaluated by CEL to produce an audit annotation value. The expression must evaluate to either a string or null value. If the expression evaluates to a string, the audit annotation is included with the string value. If the expression evaluates to null or empty string the audit annotation will be omitted. The valueExpression may be no longer than 5kb in length. If the result of the valueExpression is more than 10kb in length, it will be truncated to 10kb.\\n\\nIf multiple ValidatingAdmissionPolicyBinding resources match an API request, then the valueExpression will be evaluated for each binding. All unique values produced by the valueExpressions will be joined together in a comma-separated list.\\n\\nRequired.\",\n}\n\nfunc (AuditAnnotation) SwaggerDoc() map[string]string {\n\treturn map_AuditAnnotation\n}\n\nvar map_ExpressionWarning = map[string]string{\n\t\"\":         \"ExpressionWarning is a warning information that targets a specific expression.\",\n\t\"fieldRef\": \"The path to the field that refers the expression. For example, the reference to the expression of the first item of validations is \\\"spec.validations[0].expression\\\"\",\n\t\"warning\":  \"The content of type checking information in a human-readable form. Each line of the warning contains the type that the expression is checked against, followed by the type check error from the compiler.\",\n}\n\nfunc (ExpressionWarning) SwaggerDoc() map[string]string {\n\treturn map_ExpressionWarning\n}\n\nvar map_MatchCondition = map[string]string{\n\t\"\":           \"MatchCondition represents a condition which must by fulfilled for a request to be sent to a webhook.\",\n\t\"name\":       \"Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName',  or 'my.name',  or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName')\\n\\nRequired.\",\n\t\"expression\": \"Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables:\\n\\n'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\\n  See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\\n'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\\n  request resource.\\nDocumentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/\\n\\nRequired.\",\n}\n\nfunc (MatchCondition) SwaggerDoc() map[string]string {\n\treturn map_MatchCondition\n}\n\nvar map_MatchResources = map[string]string{\n\t\"\":                     \"MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded)\",\n\t\"namespaceSelector\":    \"NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy.\\n\\nFor example, to run the webhook on any objects whose namespace is not associated with \\\"runlevel\\\" of \\\"0\\\" or \\\"1\\\";  you will set the selector as follows: \\\"namespaceSelector\\\": {\\n  \\\"matchExpressions\\\": [\\n    {\\n      \\\"key\\\": \\\"runlevel\\\",\\n      \\\"operator\\\": \\\"NotIn\\\",\\n      \\\"values\\\": [\\n        \\\"0\\\",\\n        \\\"1\\\"\\n      ]\\n    }\\n  ]\\n}\\n\\nIf instead you want to only run the policy on any objects whose namespace is associated with the \\\"environment\\\" of \\\"prod\\\" or \\\"staging\\\"; you will set the selector as follows: \\\"namespaceSelector\\\": {\\n  \\\"matchExpressions\\\": [\\n    {\\n      \\\"key\\\": \\\"environment\\\",\\n      \\\"operator\\\": \\\"In\\\",\\n      \\\"values\\\": [\\n        \\\"prod\\\",\\n        \\\"staging\\\"\\n      ]\\n    }\\n  ]\\n}\\n\\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\\n\\nDefault to the empty LabelSelector, which matches everything.\",\n\t\"objectSelector\":       \"ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything.\",\n\t\"resourceRules\":        \"ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule.\",\n\t\"excludeResourceRules\": \"ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded)\",\n\t\"matchPolicy\":          \"matchPolicy defines how the \\\"MatchResources\\\" list is used to match incoming requests. Allowed values are \\\"Exact\\\" or \\\"Equivalent\\\".\\n\\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \\\"rules\\\" only included `apiGroups:[\\\"apps\\\"], apiVersions:[\\\"v1\\\"], resources: [\\\"deployments\\\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy.\\n\\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \\\"rules\\\" only included `apiGroups:[\\\"apps\\\"], apiVersions:[\\\"v1\\\"], resources: [\\\"deployments\\\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy.\\n\\nDefaults to \\\"Equivalent\\\"\",\n}\n\nfunc (MatchResources) SwaggerDoc() map[string]string {\n\treturn map_MatchResources\n}\n\nvar map_MutatingWebhook = map[string]string{\n\t\"\":                        \"MutatingWebhook describes an admission webhook and the resources and operations it applies to.\",\n\t\"name\":                    \"The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \\\"imagepolicy\\\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.\",\n\t\"clientConfig\":            \"ClientConfig defines how to communicate with the hook. Required\",\n\t\"rules\":                   \"Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.\",\n\t\"failurePolicy\":           \"FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Fail.\",\n\t\"matchPolicy\":             \"matchPolicy defines how the \\\"rules\\\" list is used to match incoming requests. Allowed values are \\\"Exact\\\" or \\\"Equivalent\\\".\\n\\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \\\"rules\\\" only included `apiGroups:[\\\"apps\\\"], apiVersions:[\\\"v1\\\"], resources: [\\\"deployments\\\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\\n\\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \\\"rules\\\" only included `apiGroups:[\\\"apps\\\"], apiVersions:[\\\"v1\\\"], resources: [\\\"deployments\\\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\\n\\nDefaults to \\\"Equivalent\\\"\",\n\t\"namespaceSelector\":       \"NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\\n\\nFor example, to run the webhook on any objects whose namespace is not associated with \\\"runlevel\\\" of \\\"0\\\" or \\\"1\\\";  you will set the selector as follows: \\\"namespaceSelector\\\": {\\n  \\\"matchExpressions\\\": [\\n    {\\n      \\\"key\\\": \\\"runlevel\\\",\\n      \\\"operator\\\": \\\"NotIn\\\",\\n      \\\"values\\\": [\\n        \\\"0\\\",\\n        \\\"1\\\"\\n      ]\\n    }\\n  ]\\n}\\n\\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \\\"environment\\\" of \\\"prod\\\" or \\\"staging\\\"; you will set the selector as follows: \\\"namespaceSelector\\\": {\\n  \\\"matchExpressions\\\": [\\n    {\\n      \\\"key\\\": \\\"environment\\\",\\n      \\\"operator\\\": \\\"In\\\",\\n      \\\"values\\\": [\\n        \\\"prod\\\",\\n        \\\"staging\\\"\\n      ]\\n    }\\n  ]\\n}\\n\\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\\n\\nDefault to the empty LabelSelector, which matches everything.\",\n\t\"objectSelector\":          \"ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything.\",\n\t\"sideEffects\":             \"SideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission chain and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.\",\n\t\"timeoutSeconds\":          \"TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 10 seconds.\",\n\t\"admissionReviewVersions\": \"AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy.\",\n\t\"reinvocationPolicy\":      \"reinvocationPolicy indicates whether this webhook should be called multiple times as part of a single admission evaluation. Allowed values are \\\"Never\\\" and \\\"IfNeeded\\\".\\n\\nNever: the webhook will not be called more than once in a single admission evaluation.\\n\\nIfNeeded: the webhook will be called at least one additional time as part of the admission evaluation if the object being admitted is modified by other admission plugins after the initial webhook call. Webhooks that specify this option *must* be idempotent, able to process objects they previously admitted. Note: * the number of additional invocations is not guaranteed to be exactly one. * if additional invocations result in further modifications to the object, webhooks are not guaranteed to be invoked again. * webhooks that use this option may be reordered to minimize the number of additional invocations. * to validate an object after all mutations are guaranteed complete, use a validating admission webhook instead.\\n\\nDefaults to \\\"Never\\\".\",\n\t\"matchConditions\":         \"MatchConditions is a list of conditions that must be met for a request to be sent to this webhook. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed.\\n\\nThe exact matching logic is (in order):\\n  1. If ANY matchCondition evaluates to FALSE, the webhook is skipped.\\n  2. If ALL matchConditions evaluate to TRUE, the webhook is called.\\n  3. If any matchCondition evaluates to an error (but none are FALSE):\\n     - If failurePolicy=Fail, reject the request\\n     - If failurePolicy=Ignore, the error is ignored and the webhook is skipped\",\n}\n\nfunc (MutatingWebhook) SwaggerDoc() map[string]string {\n\treturn map_MutatingWebhook\n}\n\nvar map_MutatingWebhookConfiguration = map[string]string{\n\t\"\":         \"MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object.\",\n\t\"metadata\": \"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\",\n\t\"webhooks\": \"Webhooks is a list of webhooks and the affected resources and operations.\",\n}\n\nfunc (MutatingWebhookConfiguration) SwaggerDoc() map[string]string {\n\treturn map_MutatingWebhookConfiguration\n}\n\nvar map_MutatingWebhookConfigurationList = map[string]string{\n\t\"\":         \"MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of MutatingWebhookConfiguration.\",\n}\n\nfunc (MutatingWebhookConfigurationList) SwaggerDoc() map[string]string {\n\treturn map_MutatingWebhookConfigurationList\n}\n\nvar map_NamedRuleWithOperations = map[string]string{\n\t\"\":              \"NamedRuleWithOperations is a tuple of Operations and Resources with ResourceNames.\",\n\t\"resourceNames\": \"ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.\",\n}\n\nfunc (NamedRuleWithOperations) SwaggerDoc() map[string]string {\n\treturn map_NamedRuleWithOperations\n}\n\nvar map_ParamKind = map[string]string{\n\t\"\":           \"ParamKind is a tuple of Group Kind and Version.\",\n\t\"apiVersion\": \"APIVersion is the API group version the resources belong to. In format of \\\"group/version\\\". Required.\",\n\t\"kind\":       \"Kind is the API kind the resources belong to. Required.\",\n}\n\nfunc (ParamKind) SwaggerDoc() map[string]string {\n\treturn map_ParamKind\n}\n\nvar map_ParamRef = map[string]string{\n\t\"\":                        \"ParamRef describes how to locate the params to be used as input to expressions of rules applied by a policy binding.\",\n\t\"name\":                    \"name is the name of the resource being referenced.\\n\\nOne of `name` or `selector` must be set, but `name` and `selector` are mutually exclusive properties. If one is set, the other must be unset.\\n\\nA single parameter used for all admission requests can be configured by setting the `name` field, leaving `selector` blank, and setting namespace if `paramKind` is namespace-scoped.\",\n\t\"namespace\":               \"namespace is the namespace of the referenced resource. Allows limiting the search for params to a specific namespace. Applies to both `name` and `selector` fields.\\n\\nA per-namespace parameter may be used by specifying a namespace-scoped `paramKind` in the policy and leaving this field empty.\\n\\n- If `paramKind` is cluster-scoped, this field MUST be unset. Setting this field results in a configuration error.\\n\\n- If `paramKind` is namespace-scoped, the namespace of the object being evaluated for admission will be used when this field is left unset. Take care that if this is left empty the binding must not match any cluster-scoped resources, which will result in an error.\",\n\t\"selector\":                \"selector can be used to match multiple param objects based on their labels. Supply selector: {} to match all resources of the ParamKind.\\n\\nIf multiple params are found, they are all evaluated with the policy expressions and the results are ANDed together.\\n\\nOne of `name` or `selector` must be set, but `name` and `selector` are mutually exclusive properties. If one is set, the other must be unset.\",\n\t\"parameterNotFoundAction\": \"`parameterNotFoundAction` controls the behavior of the binding when the resource exists, and name or selector is valid, but there are no parameters matched by the binding. If the value is set to `Allow`, then no matched parameters will be treated as successful validation by the binding. If set to `Deny`, then no matched parameters will be subject to the `failurePolicy` of the policy.\\n\\nAllowed values are `Allow` or `Deny`\\n\\nRequired\",\n}\n\nfunc (ParamRef) SwaggerDoc() map[string]string {\n\treturn map_ParamRef\n}\n\nvar map_Rule = map[string]string{\n\t\"\":            \"Rule is a tuple of APIGroups, APIVersion, and Resources.It is recommended to make sure that all the tuple expansions are valid.\",\n\t\"apiGroups\":   \"APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.\",\n\t\"apiVersions\": \"APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.\",\n\t\"resources\":   \"Resources is a list of resources this rule applies to.\\n\\nFor example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources.\\n\\nIf wildcard is present, the validation rule will ensure resources do not overlap with each other.\\n\\nDepending on the enclosing object, subresources might not be allowed. Required.\",\n\t\"scope\":       \"scope specifies the scope of this rule. Valid values are \\\"Cluster\\\", \\\"Namespaced\\\", and \\\"*\\\" \\\"Cluster\\\" means that only cluster-scoped resources will match this rule. Namespace API objects are cluster-scoped. \\\"Namespaced\\\" means that only namespaced resources will match this rule. \\\"*\\\" means that there are no scope restrictions. Subresources match the scope of their parent resource. Default is \\\"*\\\".\",\n}\n\nfunc (Rule) SwaggerDoc() map[string]string {\n\treturn map_Rule\n}\n\nvar map_RuleWithOperations = map[string]string{\n\t\"\":           \"RuleWithOperations is a tuple of Operations and Resources. It is recommended to make sure that all the tuple expansions are valid.\",\n\t\"operations\": \"Operations is the operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT or * for all of those operations and any future admission operations that are added. If '*' is present, the length of the slice must be one. Required.\",\n}\n\nfunc (RuleWithOperations) SwaggerDoc() map[string]string {\n\treturn map_RuleWithOperations\n}\n\nvar map_ServiceReference = map[string]string{\n\t\"\":          \"ServiceReference holds a reference to Service.legacy.k8s.io\",\n\t\"namespace\": \"`namespace` is the namespace of the service. Required\",\n\t\"name\":      \"`name` is the name of the service. Required\",\n\t\"path\":      \"`path` is an optional URL path which will be sent in any request to this service.\",\n\t\"port\":      \"If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. `port` should be a valid port number (1-65535, inclusive).\",\n}\n\nfunc (ServiceReference) SwaggerDoc() map[string]string {\n\treturn map_ServiceReference\n}\n\nvar map_TypeChecking = map[string]string{\n\t\"\":                   \"TypeChecking contains results of type checking the expressions in the ValidatingAdmissionPolicy\",\n\t\"expressionWarnings\": \"The type checking warnings for each expression.\",\n}\n\nfunc (TypeChecking) SwaggerDoc() map[string]string {\n\treturn map_TypeChecking\n}\n\nvar map_ValidatingAdmissionPolicy = map[string]string{\n\t\"\":         \"ValidatingAdmissionPolicy describes the definition of an admission validation policy that accepts or rejects an object without changing it.\",\n\t\"metadata\": \"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\",\n\t\"spec\":     \"Specification of the desired behavior of the ValidatingAdmissionPolicy.\",\n\t\"status\":   \"The status of the ValidatingAdmissionPolicy, including warnings that are useful to determine if the policy behaves in the expected way. Populated by the system. Read-only.\",\n}\n\nfunc (ValidatingAdmissionPolicy) SwaggerDoc() map[string]string {\n\treturn map_ValidatingAdmissionPolicy\n}\n\nvar map_ValidatingAdmissionPolicyBinding = map[string]string{\n\t\"\":         \"ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources. ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters.\\n\\nFor a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding.\\n\\nThe CEL expressions of a policy must have a computed CEL cost below the maximum CEL budget. Each evaluation of the policy is given an independent CEL cost budget. Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget.\",\n\t\"metadata\": \"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\",\n\t\"spec\":     \"Specification of the desired behavior of the ValidatingAdmissionPolicyBinding.\",\n}\n\nfunc (ValidatingAdmissionPolicyBinding) SwaggerDoc() map[string]string {\n\treturn map_ValidatingAdmissionPolicyBinding\n}\n\nvar map_ValidatingAdmissionPolicyBindingList = map[string]string{\n\t\"\":         \"ValidatingAdmissionPolicyBindingList is a list of ValidatingAdmissionPolicyBinding.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of PolicyBinding.\",\n}\n\nfunc (ValidatingAdmissionPolicyBindingList) SwaggerDoc() map[string]string {\n\treturn map_ValidatingAdmissionPolicyBindingList\n}\n\nvar map_ValidatingAdmissionPolicyBindingSpec = map[string]string{\n\t\"\":                  \"ValidatingAdmissionPolicyBindingSpec is the specification of the ValidatingAdmissionPolicyBinding.\",\n\t\"policyName\":        \"PolicyName references a ValidatingAdmissionPolicy name which the ValidatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required.\",\n\t\"paramRef\":          \"paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param.\",\n\t\"matchResources\":    \"MatchResources declares what resources match this binding and will be validated by it. Note that this is intersected with the policy's matchConstraints, so only requests that are matched by the policy can be selected by this. If this is unset, all resources matched by the policy are validated by this binding When resourceRules is unset, it does not constrain resource matching. If a resource is matched by the other fields of this object, it will be validated. Note that this is differs from ValidatingAdmissionPolicy matchConstraints, where resourceRules are required.\",\n\t\"validationActions\": \"validationActions declares how Validations of the referenced ValidatingAdmissionPolicy are enforced. If a validation evaluates to false it is always enforced according to these actions.\\n\\nFailures defined by the ValidatingAdmissionPolicy's FailurePolicy are enforced according to these actions only if the FailurePolicy is set to Fail, otherwise the failures are ignored. This includes compilation errors, runtime errors and misconfigurations of the policy.\\n\\nvalidationActions is declared as a set of action values. Order does not matter. validationActions may not contain duplicates of the same action.\\n\\nThe supported actions values are:\\n\\n\\\"Deny\\\" specifies that a validation failure results in a denied request.\\n\\n\\\"Warn\\\" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses.\\n\\n\\\"Audit\\\" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `\\\"validation.policy.admission.k8s.io/validation_failure\\\": \\\"[{\\\"message\\\": \\\"Invalid value\\\", {\\\"policy\\\": \\\"policy.example.com\\\", {\\\"binding\\\": \\\"policybinding.example.com\\\", {\\\"expressionIndex\\\": \\\"1\\\", {\\\"validationActions\\\": [\\\"Audit\\\"]}]\\\"`\\n\\nClients should expect to handle additional values by ignoring any values not recognized.\\n\\n\\\"Deny\\\" and \\\"Warn\\\" may not be used together since this combination needlessly duplicates the validation failure both in the API response body and the HTTP warning headers.\\n\\nRequired.\",\n}\n\nfunc (ValidatingAdmissionPolicyBindingSpec) SwaggerDoc() map[string]string {\n\treturn map_ValidatingAdmissionPolicyBindingSpec\n}\n\nvar map_ValidatingAdmissionPolicyList = map[string]string{\n\t\"\":         \"ValidatingAdmissionPolicyList is a list of ValidatingAdmissionPolicy.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of ValidatingAdmissionPolicy.\",\n}\n\nfunc (ValidatingAdmissionPolicyList) SwaggerDoc() map[string]string {\n\treturn map_ValidatingAdmissionPolicyList\n}\n\nvar map_ValidatingAdmissionPolicySpec = map[string]string{\n\t\"\":                 \"ValidatingAdmissionPolicySpec is the specification of the desired behavior of the AdmissionPolicy.\",\n\t\"paramKind\":        \"ParamKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If ParamKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in ValidatingAdmissionPolicyBinding, the params variable will be null.\",\n\t\"matchConstraints\": \"MatchConstraints specifies what resources this policy is designed to validate. The AdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API ValidatingAdmissionPolicy cannot match ValidatingAdmissionPolicy and ValidatingAdmissionPolicyBinding. Required.\",\n\t\"validations\":      \"Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required.\",\n\t\"failurePolicy\":    \"failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings.\\n\\nA policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource.\\n\\nfailurePolicy does not define how validations that evaluate to false are handled.\\n\\nWhen failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced.\\n\\nAllowed values are Ignore or Fail. Defaults to Fail.\",\n\t\"auditAnnotations\": \"auditAnnotations contains CEL expressions which are used to produce audit annotations for the audit event of the API request. validations and auditAnnotations may not both be empty; a least one of validations or auditAnnotations is required.\",\n\t\"matchConditions\":  \"MatchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed.\\n\\nIf a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions.\\n\\nThe exact matching logic is (in order):\\n  1. If ANY matchCondition evaluates to FALSE, the policy is skipped.\\n  2. If ALL matchConditions evaluate to TRUE, the policy is evaluated.\\n  3. If any matchCondition evaluates to an error (but none are FALSE):\\n     - If failurePolicy=Fail, reject the request\\n     - If failurePolicy=Ignore, the policy is skipped\",\n\t\"variables\":        \"Variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except MatchConditions because MatchConditions are evaluated before the rest of the policy.\\n\\nThe expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, Variables must be sorted by the order of first appearance and acyclic.\",\n}\n\nfunc (ValidatingAdmissionPolicySpec) SwaggerDoc() map[string]string {\n\treturn map_ValidatingAdmissionPolicySpec\n}\n\nvar map_ValidatingAdmissionPolicyStatus = map[string]string{\n\t\"\":                   \"ValidatingAdmissionPolicyStatus represents the status of an admission validation policy.\",\n\t\"observedGeneration\": \"The generation observed by the controller.\",\n\t\"typeChecking\":       \"The results of type checking for each expression. Presence of this field indicates the completion of the type checking.\",\n\t\"conditions\":         \"The conditions represent the latest available observations of a policy's current state.\",\n}\n\nfunc (ValidatingAdmissionPolicyStatus) SwaggerDoc() map[string]string {\n\treturn map_ValidatingAdmissionPolicyStatus\n}\n\nvar map_ValidatingWebhook = map[string]string{\n\t\"\":                        \"ValidatingWebhook describes an admission webhook and the resources and operations it applies to.\",\n\t\"name\":                    \"The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \\\"imagepolicy\\\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.\",\n\t\"clientConfig\":            \"ClientConfig defines how to communicate with the hook. Required\",\n\t\"rules\":                   \"Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.\",\n\t\"failurePolicy\":           \"FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Fail.\",\n\t\"matchPolicy\":             \"matchPolicy defines how the \\\"rules\\\" list is used to match incoming requests. Allowed values are \\\"Exact\\\" or \\\"Equivalent\\\".\\n\\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \\\"rules\\\" only included `apiGroups:[\\\"apps\\\"], apiVersions:[\\\"v1\\\"], resources: [\\\"deployments\\\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\\n\\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \\\"rules\\\" only included `apiGroups:[\\\"apps\\\"], apiVersions:[\\\"v1\\\"], resources: [\\\"deployments\\\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\\n\\nDefaults to \\\"Equivalent\\\"\",\n\t\"namespaceSelector\":       \"NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\\n\\nFor example, to run the webhook on any objects whose namespace is not associated with \\\"runlevel\\\" of \\\"0\\\" or \\\"1\\\";  you will set the selector as follows: \\\"namespaceSelector\\\": {\\n  \\\"matchExpressions\\\": [\\n    {\\n      \\\"key\\\": \\\"runlevel\\\",\\n      \\\"operator\\\": \\\"NotIn\\\",\\n      \\\"values\\\": [\\n        \\\"0\\\",\\n        \\\"1\\\"\\n      ]\\n    }\\n  ]\\n}\\n\\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \\\"environment\\\" of \\\"prod\\\" or \\\"staging\\\"; you will set the selector as follows: \\\"namespaceSelector\\\": {\\n  \\\"matchExpressions\\\": [\\n    {\\n      \\\"key\\\": \\\"environment\\\",\\n      \\\"operator\\\": \\\"In\\\",\\n      \\\"values\\\": [\\n        \\\"prod\\\",\\n        \\\"staging\\\"\\n      ]\\n    }\\n  ]\\n}\\n\\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels for more examples of label selectors.\\n\\nDefault to the empty LabelSelector, which matches everything.\",\n\t\"objectSelector\":          \"ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything.\",\n\t\"sideEffects\":             \"SideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission chain and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.\",\n\t\"timeoutSeconds\":          \"TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 10 seconds.\",\n\t\"admissionReviewVersions\": \"AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy.\",\n\t\"matchConditions\":         \"MatchConditions is a list of conditions that must be met for a request to be sent to this webhook. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed.\\n\\nThe exact matching logic is (in order):\\n  1. If ANY matchCondition evaluates to FALSE, the webhook is skipped.\\n  2. If ALL matchConditions evaluate to TRUE, the webhook is called.\\n  3. If any matchCondition evaluates to an error (but none are FALSE):\\n     - If failurePolicy=Fail, reject the request\\n     - If failurePolicy=Ignore, the error is ignored and the webhook is skipped\",\n}\n\nfunc (ValidatingWebhook) SwaggerDoc() map[string]string {\n\treturn map_ValidatingWebhook\n}\n\nvar map_ValidatingWebhookConfiguration = map[string]string{\n\t\"\":         \"ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it.\",\n\t\"metadata\": \"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\",\n\t\"webhooks\": \"Webhooks is a list of webhooks and the affected resources and operations.\",\n}\n\nfunc (ValidatingWebhookConfiguration) SwaggerDoc() map[string]string {\n\treturn map_ValidatingWebhookConfiguration\n}\n\nvar map_ValidatingWebhookConfigurationList = map[string]string{\n\t\"\":         \"ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of ValidatingWebhookConfiguration.\",\n}\n\nfunc (ValidatingWebhookConfigurationList) SwaggerDoc() map[string]string {\n\treturn map_ValidatingWebhookConfigurationList\n}\n\nvar map_Validation = map[string]string{\n\t\"\":                  \"Validation specifies the CEL expression which is used to apply the validation.\",\n\t\"expression\":        \"Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables:\\n\\n- 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value.\\n  For example, a variable named 'foo' can be accessed as 'variables.foo'.\\n- 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\\n  See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\\n- 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\\n  request resource.\\n\\nThe `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible.\\n\\nOnly property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Accessible property names are escaped according to the following rules when accessed in the expression: - '__' escapes to '__underscores__' - '.' escapes to '__dot__' - '-' escapes to '__dash__' - '/' escapes to '__slash__' - Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are:\\n\\t  \\\"true\\\", \\\"false\\\", \\\"null\\\", \\\"in\\\", \\\"as\\\", \\\"break\\\", \\\"const\\\", \\\"continue\\\", \\\"else\\\", \\\"for\\\", \\\"function\\\", \\\"if\\\",\\n\\t  \\\"import\\\", \\\"let\\\", \\\"loop\\\", \\\"package\\\", \\\"namespace\\\", \\\"return\\\".\\nExamples:\\n  - Expression accessing a property named \\\"namespace\\\": {\\\"Expression\\\": \\\"object.__namespace__ > 0\\\"}\\n  - Expression accessing a property named \\\"x-prop\\\": {\\\"Expression\\\": \\\"object.x__dash__prop > 0\\\"}\\n  - Expression accessing a property named \\\"redact__d\\\": {\\\"Expression\\\": \\\"object.redact__underscores__d > 0\\\"}\\n\\nEquality on arrays with list type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1]. Concatenation on arrays with x-kubernetes-list-type use the semantics of the list type:\\n  - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and\\n    non-intersecting elements in `Y` are appended, retaining their partial order.\\n  - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values\\n    are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with\\n    non-intersecting keys are appended, retaining their partial order.\\nRequired.\",\n\t\"message\":           \"Message represents the message displayed when validation fails. The message is required if the Expression contains line breaks. The message must not contain line breaks. If unset, the message is \\\"failed rule: {Rule}\\\". e.g. \\\"must be a URL with the host matching spec.host\\\" If the Expression contains line breaks. Message is required. The message must not contain line breaks. If unset, the message is \\\"failed Expression: {Expression}\\\".\",\n\t\"reason\":            \"Reason represents a machine-readable description of why this validation failed. If this is the first validation in the list to fail, this reason, as well as the corresponding HTTP response code, are used in the HTTP response to the client. The currently supported reasons are: \\\"Unauthorized\\\", \\\"Forbidden\\\", \\\"Invalid\\\", \\\"RequestEntityTooLarge\\\". If not set, StatusReasonInvalid is used in the response to the client.\",\n\t\"messageExpression\": \"messageExpression declares a CEL expression that evaluates to the validation failure message that is returned when this rule fails. Since messageExpression is used as a failure message, it must evaluate to a string. If both message and messageExpression are present on a validation, then messageExpression will be used if validation fails. If messageExpression results in a runtime error, the runtime error is logged, and the validation failure message is produced as if the messageExpression field were unset. If messageExpression evaluates to an empty string, a string with only spaces, or a string that contains line breaks, then the validation failure message will also be produced as if the messageExpression field were unset, and the fact that messageExpression produced an empty string/string with only spaces/string with line breaks will be logged. messageExpression has access to all the same variables as the `expression` except for 'authorizer' and 'authorizer.requestResource'. Example: \\\"object.x must be less than max (\\\"+string(params.max)+\\\")\\\"\",\n}\n\nfunc (Validation) SwaggerDoc() map[string]string {\n\treturn map_Validation\n}\n\nvar map_Variable = map[string]string{\n\t\"\":           \"Variable is the definition of a variable that is used for composition. A variable is defined as a named expression.\",\n\t\"name\":       \"Name is the name of the variable. The name must be a valid CEL identifier and unique among all variables. The variable can be accessed in other expressions through `variables` For example, if name is \\\"foo\\\", the variable will be available as `variables.foo`\",\n\t\"expression\": \"Expression is the expression that will be evaluated as the value of the variable. The CEL expression has access to the same identifiers as the CEL expressions in Validation.\",\n}\n\nfunc (Variable) SwaggerDoc() map[string]string {\n\treturn map_Variable\n}\n\nvar map_WebhookClientConfig = map[string]string{\n\t\"\":         \"WebhookClientConfig contains the information to make a TLS connection with the webhook\",\n\t\"url\":      \"`url` gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified.\\n\\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\\n\\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\\n\\nThe scheme must be \\\"https\\\"; the URL must begin with \\\"https://\\\".\\n\\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\\n\\nAttempting to use a user or basic auth e.g. \\\"user:password@\\\" is not allowed. Fragments (\\\"#...\\\") and query parameters (\\\"?...\\\") are not allowed, either.\",\n\t\"service\":  \"`service` is a reference to the service for this webhook. Either `service` or `url` must be specified.\\n\\nIf the webhook is running within the cluster, then you should use `service`.\",\n\t\"caBundle\": \"`caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.\",\n}\n\nfunc (WebhookClientConfig) SwaggerDoc() map[string]string {\n\treturn map_WebhookClientConfig\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *AuditAnnotation) DeepCopyInto(out *AuditAnnotation) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuditAnnotation.\nfunc (in *AuditAnnotation) DeepCopy() *AuditAnnotation {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(AuditAnnotation)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExpressionWarning) DeepCopyInto(out *ExpressionWarning) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExpressionWarning.\nfunc (in *ExpressionWarning) DeepCopy() *ExpressionWarning {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExpressionWarning)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MatchCondition) DeepCopyInto(out *MatchCondition) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MatchCondition.\nfunc (in *MatchCondition) DeepCopy() *MatchCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MatchCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MatchResources) DeepCopyInto(out *MatchResources) {\n\t*out = *in\n\tif in.NamespaceSelector != nil {\n\t\tin, out := &in.NamespaceSelector, &out.NamespaceSelector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ObjectSelector != nil {\n\t\tin, out := &in.ObjectSelector, &out.ObjectSelector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ResourceRules != nil {\n\t\tin, out := &in.ResourceRules, &out.ResourceRules\n\t\t*out = make([]NamedRuleWithOperations, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.ExcludeResourceRules != nil {\n\t\tin, out := &in.ExcludeResourceRules, &out.ExcludeResourceRules\n\t\t*out = make([]NamedRuleWithOperations, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.MatchPolicy != nil {\n\t\tin, out := &in.MatchPolicy, &out.MatchPolicy\n\t\t*out = new(MatchPolicyType)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MatchResources.\nfunc (in *MatchResources) DeepCopy() *MatchResources {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MatchResources)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MutatingWebhook) DeepCopyInto(out *MutatingWebhook) {\n\t*out = *in\n\tin.ClientConfig.DeepCopyInto(&out.ClientConfig)\n\tif in.Rules != nil {\n\t\tin, out := &in.Rules, &out.Rules\n\t\t*out = make([]RuleWithOperations, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.FailurePolicy != nil {\n\t\tin, out := &in.FailurePolicy, &out.FailurePolicy\n\t\t*out = new(FailurePolicyType)\n\t\t**out = **in\n\t}\n\tif in.MatchPolicy != nil {\n\t\tin, out := &in.MatchPolicy, &out.MatchPolicy\n\t\t*out = new(MatchPolicyType)\n\t\t**out = **in\n\t}\n\tif in.NamespaceSelector != nil {\n\t\tin, out := &in.NamespaceSelector, &out.NamespaceSelector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ObjectSelector != nil {\n\t\tin, out := &in.ObjectSelector, &out.ObjectSelector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.SideEffects != nil {\n\t\tin, out := &in.SideEffects, &out.SideEffects\n\t\t*out = new(SideEffectClass)\n\t\t**out = **in\n\t}\n\tif in.TimeoutSeconds != nil {\n\t\tin, out := &in.TimeoutSeconds, &out.TimeoutSeconds\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.AdmissionReviewVersions != nil {\n\t\tin, out := &in.AdmissionReviewVersions, &out.AdmissionReviewVersions\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ReinvocationPolicy != nil {\n\t\tin, out := &in.ReinvocationPolicy, &out.ReinvocationPolicy\n\t\t*out = new(ReinvocationPolicyType)\n\t\t**out = **in\n\t}\n\tif in.MatchConditions != nil {\n\t\tin, out := &in.MatchConditions, &out.MatchConditions\n\t\t*out = make([]MatchCondition, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MutatingWebhook.\nfunc (in *MutatingWebhook) DeepCopy() *MutatingWebhook {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MutatingWebhook)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MutatingWebhookConfiguration) DeepCopyInto(out *MutatingWebhookConfiguration) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Webhooks != nil {\n\t\tin, out := &in.Webhooks, &out.Webhooks\n\t\t*out = make([]MutatingWebhook, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MutatingWebhookConfiguration.\nfunc (in *MutatingWebhookConfiguration) DeepCopy() *MutatingWebhookConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MutatingWebhookConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *MutatingWebhookConfiguration) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MutatingWebhookConfigurationList) DeepCopyInto(out *MutatingWebhookConfigurationList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]MutatingWebhookConfiguration, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MutatingWebhookConfigurationList.\nfunc (in *MutatingWebhookConfigurationList) DeepCopy() *MutatingWebhookConfigurationList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MutatingWebhookConfigurationList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *MutatingWebhookConfigurationList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NamedRuleWithOperations) DeepCopyInto(out *NamedRuleWithOperations) {\n\t*out = *in\n\tif in.ResourceNames != nil {\n\t\tin, out := &in.ResourceNames, &out.ResourceNames\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tin.RuleWithOperations.DeepCopyInto(&out.RuleWithOperations)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamedRuleWithOperations.\nfunc (in *NamedRuleWithOperations) DeepCopy() *NamedRuleWithOperations {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NamedRuleWithOperations)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ParamKind) DeepCopyInto(out *ParamKind) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParamKind.\nfunc (in *ParamKind) DeepCopy() *ParamKind {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ParamKind)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ParamRef) DeepCopyInto(out *ParamRef) {\n\t*out = *in\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ParameterNotFoundAction != nil {\n\t\tin, out := &in.ParameterNotFoundAction, &out.ParameterNotFoundAction\n\t\t*out = new(ParameterNotFoundActionType)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParamRef.\nfunc (in *ParamRef) DeepCopy() *ParamRef {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ParamRef)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Rule) DeepCopyInto(out *Rule) {\n\t*out = *in\n\tif in.APIGroups != nil {\n\t\tin, out := &in.APIGroups, &out.APIGroups\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.APIVersions != nil {\n\t\tin, out := &in.APIVersions, &out.APIVersions\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Resources != nil {\n\t\tin, out := &in.Resources, &out.Resources\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Scope != nil {\n\t\tin, out := &in.Scope, &out.Scope\n\t\t*out = new(ScopeType)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Rule.\nfunc (in *Rule) DeepCopy() *Rule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Rule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RuleWithOperations) DeepCopyInto(out *RuleWithOperations) {\n\t*out = *in\n\tif in.Operations != nil {\n\t\tin, out := &in.Operations, &out.Operations\n\t\t*out = make([]OperationType, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tin.Rule.DeepCopyInto(&out.Rule)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RuleWithOperations.\nfunc (in *RuleWithOperations) DeepCopy() *RuleWithOperations {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RuleWithOperations)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ServiceReference) DeepCopyInto(out *ServiceReference) {\n\t*out = *in\n\tif in.Path != nil {\n\t\tin, out := &in.Path, &out.Path\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.Port != nil {\n\t\tin, out := &in.Port, &out.Port\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceReference.\nfunc (in *ServiceReference) DeepCopy() *ServiceReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ServiceReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TypeChecking) DeepCopyInto(out *TypeChecking) {\n\t*out = *in\n\tif in.ExpressionWarnings != nil {\n\t\tin, out := &in.ExpressionWarnings, &out.ExpressionWarnings\n\t\t*out = make([]ExpressionWarning, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TypeChecking.\nfunc (in *TypeChecking) DeepCopy() *TypeChecking {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TypeChecking)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ValidatingAdmissionPolicy) DeepCopyInto(out *ValidatingAdmissionPolicy) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingAdmissionPolicy.\nfunc (in *ValidatingAdmissionPolicy) DeepCopy() *ValidatingAdmissionPolicy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ValidatingAdmissionPolicy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ValidatingAdmissionPolicy) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ValidatingAdmissionPolicyBinding) DeepCopyInto(out *ValidatingAdmissionPolicyBinding) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingAdmissionPolicyBinding.\nfunc (in *ValidatingAdmissionPolicyBinding) DeepCopy() *ValidatingAdmissionPolicyBinding {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ValidatingAdmissionPolicyBinding)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ValidatingAdmissionPolicyBinding) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ValidatingAdmissionPolicyBindingList) DeepCopyInto(out *ValidatingAdmissionPolicyBindingList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ValidatingAdmissionPolicyBinding, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingAdmissionPolicyBindingList.\nfunc (in *ValidatingAdmissionPolicyBindingList) DeepCopy() *ValidatingAdmissionPolicyBindingList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ValidatingAdmissionPolicyBindingList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ValidatingAdmissionPolicyBindingList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ValidatingAdmissionPolicyBindingSpec) DeepCopyInto(out *ValidatingAdmissionPolicyBindingSpec) {\n\t*out = *in\n\tif in.ParamRef != nil {\n\t\tin, out := &in.ParamRef, &out.ParamRef\n\t\t*out = new(ParamRef)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.MatchResources != nil {\n\t\tin, out := &in.MatchResources, &out.MatchResources\n\t\t*out = new(MatchResources)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ValidationActions != nil {\n\t\tin, out := &in.ValidationActions, &out.ValidationActions\n\t\t*out = make([]ValidationAction, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingAdmissionPolicyBindingSpec.\nfunc (in *ValidatingAdmissionPolicyBindingSpec) DeepCopy() *ValidatingAdmissionPolicyBindingSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ValidatingAdmissionPolicyBindingSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ValidatingAdmissionPolicyList) DeepCopyInto(out *ValidatingAdmissionPolicyList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ValidatingAdmissionPolicy, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingAdmissionPolicyList.\nfunc (in *ValidatingAdmissionPolicyList) DeepCopy() *ValidatingAdmissionPolicyList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ValidatingAdmissionPolicyList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ValidatingAdmissionPolicyList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ValidatingAdmissionPolicySpec) DeepCopyInto(out *ValidatingAdmissionPolicySpec) {\n\t*out = *in\n\tif in.ParamKind != nil {\n\t\tin, out := &in.ParamKind, &out.ParamKind\n\t\t*out = new(ParamKind)\n\t\t**out = **in\n\t}\n\tif in.MatchConstraints != nil {\n\t\tin, out := &in.MatchConstraints, &out.MatchConstraints\n\t\t*out = new(MatchResources)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Validations != nil {\n\t\tin, out := &in.Validations, &out.Validations\n\t\t*out = make([]Validation, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.FailurePolicy != nil {\n\t\tin, out := &in.FailurePolicy, &out.FailurePolicy\n\t\t*out = new(FailurePolicyType)\n\t\t**out = **in\n\t}\n\tif in.AuditAnnotations != nil {\n\t\tin, out := &in.AuditAnnotations, &out.AuditAnnotations\n\t\t*out = make([]AuditAnnotation, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.MatchConditions != nil {\n\t\tin, out := &in.MatchConditions, &out.MatchConditions\n\t\t*out = make([]MatchCondition, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Variables != nil {\n\t\tin, out := &in.Variables, &out.Variables\n\t\t*out = make([]Variable, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingAdmissionPolicySpec.\nfunc (in *ValidatingAdmissionPolicySpec) DeepCopy() *ValidatingAdmissionPolicySpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ValidatingAdmissionPolicySpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ValidatingAdmissionPolicyStatus) DeepCopyInto(out *ValidatingAdmissionPolicyStatus) {\n\t*out = *in\n\tif in.TypeChecking != nil {\n\t\tin, out := &in.TypeChecking, &out.TypeChecking\n\t\t*out = new(TypeChecking)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]metav1.Condition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingAdmissionPolicyStatus.\nfunc (in *ValidatingAdmissionPolicyStatus) DeepCopy() *ValidatingAdmissionPolicyStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ValidatingAdmissionPolicyStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ValidatingWebhook) DeepCopyInto(out *ValidatingWebhook) {\n\t*out = *in\n\tin.ClientConfig.DeepCopyInto(&out.ClientConfig)\n\tif in.Rules != nil {\n\t\tin, out := &in.Rules, &out.Rules\n\t\t*out = make([]RuleWithOperations, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.FailurePolicy != nil {\n\t\tin, out := &in.FailurePolicy, &out.FailurePolicy\n\t\t*out = new(FailurePolicyType)\n\t\t**out = **in\n\t}\n\tif in.MatchPolicy != nil {\n\t\tin, out := &in.MatchPolicy, &out.MatchPolicy\n\t\t*out = new(MatchPolicyType)\n\t\t**out = **in\n\t}\n\tif in.NamespaceSelector != nil {\n\t\tin, out := &in.NamespaceSelector, &out.NamespaceSelector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ObjectSelector != nil {\n\t\tin, out := &in.ObjectSelector, &out.ObjectSelector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.SideEffects != nil {\n\t\tin, out := &in.SideEffects, &out.SideEffects\n\t\t*out = new(SideEffectClass)\n\t\t**out = **in\n\t}\n\tif in.TimeoutSeconds != nil {\n\t\tin, out := &in.TimeoutSeconds, &out.TimeoutSeconds\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.AdmissionReviewVersions != nil {\n\t\tin, out := &in.AdmissionReviewVersions, &out.AdmissionReviewVersions\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.MatchConditions != nil {\n\t\tin, out := &in.MatchConditions, &out.MatchConditions\n\t\t*out = make([]MatchCondition, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingWebhook.\nfunc (in *ValidatingWebhook) DeepCopy() *ValidatingWebhook {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ValidatingWebhook)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ValidatingWebhookConfiguration) DeepCopyInto(out *ValidatingWebhookConfiguration) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Webhooks != nil {\n\t\tin, out := &in.Webhooks, &out.Webhooks\n\t\t*out = make([]ValidatingWebhook, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingWebhookConfiguration.\nfunc (in *ValidatingWebhookConfiguration) DeepCopy() *ValidatingWebhookConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ValidatingWebhookConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ValidatingWebhookConfiguration) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ValidatingWebhookConfigurationList) DeepCopyInto(out *ValidatingWebhookConfigurationList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ValidatingWebhookConfiguration, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingWebhookConfigurationList.\nfunc (in *ValidatingWebhookConfigurationList) DeepCopy() *ValidatingWebhookConfigurationList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ValidatingWebhookConfigurationList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ValidatingWebhookConfigurationList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Validation) DeepCopyInto(out *Validation) {\n\t*out = *in\n\tif in.Reason != nil {\n\t\tin, out := &in.Reason, &out.Reason\n\t\t*out = new(metav1.StatusReason)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Validation.\nfunc (in *Validation) DeepCopy() *Validation {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Validation)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Variable) DeepCopyInto(out *Variable) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Variable.\nfunc (in *Variable) DeepCopy() *Variable {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Variable)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *WebhookClientConfig) DeepCopyInto(out *WebhookClientConfig) {\n\t*out = *in\n\tif in.URL != nil {\n\t\tin, out := &in.URL, &out.URL\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.Service != nil {\n\t\tin, out := &in.Service, &out.Service\n\t\t*out = new(ServiceReference)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.CABundle != nil {\n\t\tin, out := &in.CABundle, &out.CABundle\n\t\t*out = make([]byte, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WebhookClientConfig.\nfunc (in *WebhookClientConfig) DeepCopy() *WebhookClientConfig {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(WebhookClientConfig)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *MutatingWebhookConfiguration) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *MutatingWebhookConfigurationList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ValidatingAdmissionPolicy) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 30\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ValidatingAdmissionPolicyBinding) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 30\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ValidatingAdmissionPolicyBindingList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 30\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ValidatingAdmissionPolicyList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 30\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ValidatingWebhookConfiguration) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ValidatingWebhookConfigurationList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 16\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1alpha1/doc.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n// +groupName=admissionregistration.k8s.io\n\n// Package v1alpha1 is the v1alpha1 version of the API.\npackage v1alpha1 // import \"k8s.io/api/admissionregistration/v1alpha1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1alpha1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/admissionregistration/v1alpha1/generated.proto\n\npackage v1alpha1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tk8s_io_api_admissionregistration_v1 \"k8s.io/api/admissionregistration/v1\"\n\tk8s_io_apimachinery_pkg_apis_meta_v1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *ApplyConfiguration) Reset()      { *m = ApplyConfiguration{} }\nfunc (*ApplyConfiguration) ProtoMessage() {}\nfunc (*ApplyConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c49182728ae0af5, []int{0}\n}\nfunc (m *ApplyConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ApplyConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ApplyConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ApplyConfiguration.Merge(m, src)\n}\nfunc (m *ApplyConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ApplyConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_ApplyConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ApplyConfiguration proto.InternalMessageInfo\n\nfunc (m *AuditAnnotation) Reset()      { *m = AuditAnnotation{} }\nfunc (*AuditAnnotation) ProtoMessage() {}\nfunc (*AuditAnnotation) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c49182728ae0af5, []int{1}\n}\nfunc (m *AuditAnnotation) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *AuditAnnotation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *AuditAnnotation) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_AuditAnnotation.Merge(m, src)\n}\nfunc (m *AuditAnnotation) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *AuditAnnotation) XXX_DiscardUnknown() {\n\txxx_messageInfo_AuditAnnotation.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_AuditAnnotation proto.InternalMessageInfo\n\nfunc (m *ExpressionWarning) Reset()      { *m = ExpressionWarning{} }\nfunc (*ExpressionWarning) ProtoMessage() {}\nfunc (*ExpressionWarning) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c49182728ae0af5, []int{2}\n}\nfunc (m *ExpressionWarning) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ExpressionWarning) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ExpressionWarning) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ExpressionWarning.Merge(m, src)\n}\nfunc (m *ExpressionWarning) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ExpressionWarning) XXX_DiscardUnknown() {\n\txxx_messageInfo_ExpressionWarning.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ExpressionWarning proto.InternalMessageInfo\n\nfunc (m *JSONPatch) Reset()      { *m = JSONPatch{} }\nfunc (*JSONPatch) ProtoMessage() {}\nfunc (*JSONPatch) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c49182728ae0af5, []int{3}\n}\nfunc (m *JSONPatch) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *JSONPatch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *JSONPatch) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_JSONPatch.Merge(m, src)\n}\nfunc (m *JSONPatch) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *JSONPatch) XXX_DiscardUnknown() {\n\txxx_messageInfo_JSONPatch.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_JSONPatch proto.InternalMessageInfo\n\nfunc (m *MatchCondition) Reset()      { *m = MatchCondition{} }\nfunc (*MatchCondition) ProtoMessage() {}\nfunc (*MatchCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c49182728ae0af5, []int{4}\n}\nfunc (m *MatchCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MatchCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MatchCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MatchCondition.Merge(m, src)\n}\nfunc (m *MatchCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MatchCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_MatchCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MatchCondition proto.InternalMessageInfo\n\nfunc (m *MatchResources) Reset()      { *m = MatchResources{} }\nfunc (*MatchResources) ProtoMessage() {}\nfunc (*MatchResources) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c49182728ae0af5, []int{5}\n}\nfunc (m *MatchResources) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MatchResources) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MatchResources) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MatchResources.Merge(m, src)\n}\nfunc (m *MatchResources) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MatchResources) XXX_DiscardUnknown() {\n\txxx_messageInfo_MatchResources.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MatchResources proto.InternalMessageInfo\n\nfunc (m *MutatingAdmissionPolicy) Reset()      { *m = MutatingAdmissionPolicy{} }\nfunc (*MutatingAdmissionPolicy) ProtoMessage() {}\nfunc (*MutatingAdmissionPolicy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c49182728ae0af5, []int{6}\n}\nfunc (m *MutatingAdmissionPolicy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MutatingAdmissionPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MutatingAdmissionPolicy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MutatingAdmissionPolicy.Merge(m, src)\n}\nfunc (m *MutatingAdmissionPolicy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MutatingAdmissionPolicy) XXX_DiscardUnknown() {\n\txxx_messageInfo_MutatingAdmissionPolicy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MutatingAdmissionPolicy proto.InternalMessageInfo\n\nfunc (m *MutatingAdmissionPolicyBinding) Reset()      { *m = MutatingAdmissionPolicyBinding{} }\nfunc (*MutatingAdmissionPolicyBinding) ProtoMessage() {}\nfunc (*MutatingAdmissionPolicyBinding) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c49182728ae0af5, []int{7}\n}\nfunc (m *MutatingAdmissionPolicyBinding) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MutatingAdmissionPolicyBinding) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MutatingAdmissionPolicyBinding) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MutatingAdmissionPolicyBinding.Merge(m, src)\n}\nfunc (m *MutatingAdmissionPolicyBinding) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MutatingAdmissionPolicyBinding) XXX_DiscardUnknown() {\n\txxx_messageInfo_MutatingAdmissionPolicyBinding.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MutatingAdmissionPolicyBinding proto.InternalMessageInfo\n\nfunc (m *MutatingAdmissionPolicyBindingList) Reset()      { *m = MutatingAdmissionPolicyBindingList{} }\nfunc (*MutatingAdmissionPolicyBindingList) ProtoMessage() {}\nfunc (*MutatingAdmissionPolicyBindingList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c49182728ae0af5, []int{8}\n}\nfunc (m *MutatingAdmissionPolicyBindingList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MutatingAdmissionPolicyBindingList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MutatingAdmissionPolicyBindingList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MutatingAdmissionPolicyBindingList.Merge(m, src)\n}\nfunc (m *MutatingAdmissionPolicyBindingList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MutatingAdmissionPolicyBindingList) XXX_DiscardUnknown() {\n\txxx_messageInfo_MutatingAdmissionPolicyBindingList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MutatingAdmissionPolicyBindingList proto.InternalMessageInfo\n\nfunc (m *MutatingAdmissionPolicyBindingSpec) Reset()      { *m = MutatingAdmissionPolicyBindingSpec{} }\nfunc (*MutatingAdmissionPolicyBindingSpec) ProtoMessage() {}\nfunc (*MutatingAdmissionPolicyBindingSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c49182728ae0af5, []int{9}\n}\nfunc (m *MutatingAdmissionPolicyBindingSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MutatingAdmissionPolicyBindingSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MutatingAdmissionPolicyBindingSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MutatingAdmissionPolicyBindingSpec.Merge(m, src)\n}\nfunc (m *MutatingAdmissionPolicyBindingSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MutatingAdmissionPolicyBindingSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_MutatingAdmissionPolicyBindingSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MutatingAdmissionPolicyBindingSpec proto.InternalMessageInfo\n\nfunc (m *MutatingAdmissionPolicyList) Reset()      { *m = MutatingAdmissionPolicyList{} }\nfunc (*MutatingAdmissionPolicyList) ProtoMessage() {}\nfunc (*MutatingAdmissionPolicyList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c49182728ae0af5, []int{10}\n}\nfunc (m *MutatingAdmissionPolicyList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MutatingAdmissionPolicyList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MutatingAdmissionPolicyList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MutatingAdmissionPolicyList.Merge(m, src)\n}\nfunc (m *MutatingAdmissionPolicyList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MutatingAdmissionPolicyList) XXX_DiscardUnknown() {\n\txxx_messageInfo_MutatingAdmissionPolicyList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MutatingAdmissionPolicyList proto.InternalMessageInfo\n\nfunc (m *MutatingAdmissionPolicySpec) Reset()      { *m = MutatingAdmissionPolicySpec{} }\nfunc (*MutatingAdmissionPolicySpec) ProtoMessage() {}\nfunc (*MutatingAdmissionPolicySpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c49182728ae0af5, []int{11}\n}\nfunc (m *MutatingAdmissionPolicySpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MutatingAdmissionPolicySpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MutatingAdmissionPolicySpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MutatingAdmissionPolicySpec.Merge(m, src)\n}\nfunc (m *MutatingAdmissionPolicySpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MutatingAdmissionPolicySpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_MutatingAdmissionPolicySpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MutatingAdmissionPolicySpec proto.InternalMessageInfo\n\nfunc (m *Mutation) Reset()      { *m = Mutation{} }\nfunc (*Mutation) ProtoMessage() {}\nfunc (*Mutation) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c49182728ae0af5, []int{12}\n}\nfunc (m *Mutation) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Mutation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Mutation) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Mutation.Merge(m, src)\n}\nfunc (m *Mutation) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Mutation) XXX_DiscardUnknown() {\n\txxx_messageInfo_Mutation.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Mutation proto.InternalMessageInfo\n\nfunc (m *NamedRuleWithOperations) Reset()      { *m = NamedRuleWithOperations{} }\nfunc (*NamedRuleWithOperations) ProtoMessage() {}\nfunc (*NamedRuleWithOperations) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c49182728ae0af5, []int{13}\n}\nfunc (m *NamedRuleWithOperations) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NamedRuleWithOperations) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NamedRuleWithOperations) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NamedRuleWithOperations.Merge(m, src)\n}\nfunc (m *NamedRuleWithOperations) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NamedRuleWithOperations) XXX_DiscardUnknown() {\n\txxx_messageInfo_NamedRuleWithOperations.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NamedRuleWithOperations proto.InternalMessageInfo\n\nfunc (m *ParamKind) Reset()      { *m = ParamKind{} }\nfunc (*ParamKind) ProtoMessage() {}\nfunc (*ParamKind) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c49182728ae0af5, []int{14}\n}\nfunc (m *ParamKind) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ParamKind) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ParamKind) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ParamKind.Merge(m, src)\n}\nfunc (m *ParamKind) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ParamKind) XXX_DiscardUnknown() {\n\txxx_messageInfo_ParamKind.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ParamKind proto.InternalMessageInfo\n\nfunc (m *ParamRef) Reset()      { *m = ParamRef{} }\nfunc (*ParamRef) ProtoMessage() {}\nfunc (*ParamRef) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c49182728ae0af5, []int{15}\n}\nfunc (m *ParamRef) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ParamRef) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ParamRef) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ParamRef.Merge(m, src)\n}\nfunc (m *ParamRef) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ParamRef) XXX_DiscardUnknown() {\n\txxx_messageInfo_ParamRef.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ParamRef proto.InternalMessageInfo\n\nfunc (m *TypeChecking) Reset()      { *m = TypeChecking{} }\nfunc (*TypeChecking) ProtoMessage() {}\nfunc (*TypeChecking) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c49182728ae0af5, []int{16}\n}\nfunc (m *TypeChecking) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TypeChecking) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TypeChecking) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TypeChecking.Merge(m, src)\n}\nfunc (m *TypeChecking) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TypeChecking) XXX_DiscardUnknown() {\n\txxx_messageInfo_TypeChecking.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TypeChecking proto.InternalMessageInfo\n\nfunc (m *ValidatingAdmissionPolicy) Reset()      { *m = ValidatingAdmissionPolicy{} }\nfunc (*ValidatingAdmissionPolicy) ProtoMessage() {}\nfunc (*ValidatingAdmissionPolicy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c49182728ae0af5, []int{17}\n}\nfunc (m *ValidatingAdmissionPolicy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ValidatingAdmissionPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ValidatingAdmissionPolicy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ValidatingAdmissionPolicy.Merge(m, src)\n}\nfunc (m *ValidatingAdmissionPolicy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ValidatingAdmissionPolicy) XXX_DiscardUnknown() {\n\txxx_messageInfo_ValidatingAdmissionPolicy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ValidatingAdmissionPolicy proto.InternalMessageInfo\n\nfunc (m *ValidatingAdmissionPolicyBinding) Reset()      { *m = ValidatingAdmissionPolicyBinding{} }\nfunc (*ValidatingAdmissionPolicyBinding) ProtoMessage() {}\nfunc (*ValidatingAdmissionPolicyBinding) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c49182728ae0af5, []int{18}\n}\nfunc (m *ValidatingAdmissionPolicyBinding) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ValidatingAdmissionPolicyBinding) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ValidatingAdmissionPolicyBinding) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ValidatingAdmissionPolicyBinding.Merge(m, src)\n}\nfunc (m *ValidatingAdmissionPolicyBinding) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ValidatingAdmissionPolicyBinding) XXX_DiscardUnknown() {\n\txxx_messageInfo_ValidatingAdmissionPolicyBinding.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ValidatingAdmissionPolicyBinding proto.InternalMessageInfo\n\nfunc (m *ValidatingAdmissionPolicyBindingList) Reset()      { *m = ValidatingAdmissionPolicyBindingList{} }\nfunc (*ValidatingAdmissionPolicyBindingList) ProtoMessage() {}\nfunc (*ValidatingAdmissionPolicyBindingList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c49182728ae0af5, []int{19}\n}\nfunc (m *ValidatingAdmissionPolicyBindingList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ValidatingAdmissionPolicyBindingList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ValidatingAdmissionPolicyBindingList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ValidatingAdmissionPolicyBindingList.Merge(m, src)\n}\nfunc (m *ValidatingAdmissionPolicyBindingList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ValidatingAdmissionPolicyBindingList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ValidatingAdmissionPolicyBindingList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ValidatingAdmissionPolicyBindingList proto.InternalMessageInfo\n\nfunc (m *ValidatingAdmissionPolicyBindingSpec) Reset()      { *m = ValidatingAdmissionPolicyBindingSpec{} }\nfunc (*ValidatingAdmissionPolicyBindingSpec) ProtoMessage() {}\nfunc (*ValidatingAdmissionPolicyBindingSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c49182728ae0af5, []int{20}\n}\nfunc (m *ValidatingAdmissionPolicyBindingSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ValidatingAdmissionPolicyBindingSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ValidatingAdmissionPolicyBindingSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ValidatingAdmissionPolicyBindingSpec.Merge(m, src)\n}\nfunc (m *ValidatingAdmissionPolicyBindingSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ValidatingAdmissionPolicyBindingSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ValidatingAdmissionPolicyBindingSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ValidatingAdmissionPolicyBindingSpec proto.InternalMessageInfo\n\nfunc (m *ValidatingAdmissionPolicyList) Reset()      { *m = ValidatingAdmissionPolicyList{} }\nfunc (*ValidatingAdmissionPolicyList) ProtoMessage() {}\nfunc (*ValidatingAdmissionPolicyList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c49182728ae0af5, []int{21}\n}\nfunc (m *ValidatingAdmissionPolicyList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ValidatingAdmissionPolicyList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ValidatingAdmissionPolicyList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ValidatingAdmissionPolicyList.Merge(m, src)\n}\nfunc (m *ValidatingAdmissionPolicyList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ValidatingAdmissionPolicyList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ValidatingAdmissionPolicyList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ValidatingAdmissionPolicyList proto.InternalMessageInfo\n\nfunc (m *ValidatingAdmissionPolicySpec) Reset()      { *m = ValidatingAdmissionPolicySpec{} }\nfunc (*ValidatingAdmissionPolicySpec) ProtoMessage() {}\nfunc (*ValidatingAdmissionPolicySpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c49182728ae0af5, []int{22}\n}\nfunc (m *ValidatingAdmissionPolicySpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ValidatingAdmissionPolicySpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ValidatingAdmissionPolicySpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ValidatingAdmissionPolicySpec.Merge(m, src)\n}\nfunc (m *ValidatingAdmissionPolicySpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ValidatingAdmissionPolicySpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ValidatingAdmissionPolicySpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ValidatingAdmissionPolicySpec proto.InternalMessageInfo\n\nfunc (m *ValidatingAdmissionPolicyStatus) Reset()      { *m = ValidatingAdmissionPolicyStatus{} }\nfunc (*ValidatingAdmissionPolicyStatus) ProtoMessage() {}\nfunc (*ValidatingAdmissionPolicyStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c49182728ae0af5, []int{23}\n}\nfunc (m *ValidatingAdmissionPolicyStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ValidatingAdmissionPolicyStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ValidatingAdmissionPolicyStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ValidatingAdmissionPolicyStatus.Merge(m, src)\n}\nfunc (m *ValidatingAdmissionPolicyStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ValidatingAdmissionPolicyStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ValidatingAdmissionPolicyStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ValidatingAdmissionPolicyStatus proto.InternalMessageInfo\n\nfunc (m *Validation) Reset()      { *m = Validation{} }\nfunc (*Validation) ProtoMessage() {}\nfunc (*Validation) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c49182728ae0af5, []int{24}\n}\nfunc (m *Validation) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Validation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Validation) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Validation.Merge(m, src)\n}\nfunc (m *Validation) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Validation) XXX_DiscardUnknown() {\n\txxx_messageInfo_Validation.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Validation proto.InternalMessageInfo\n\nfunc (m *Variable) Reset()      { *m = Variable{} }\nfunc (*Variable) ProtoMessage() {}\nfunc (*Variable) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c49182728ae0af5, []int{25}\n}\nfunc (m *Variable) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Variable) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Variable) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Variable.Merge(m, src)\n}\nfunc (m *Variable) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Variable) XXX_DiscardUnknown() {\n\txxx_messageInfo_Variable.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Variable proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*ApplyConfiguration)(nil), \"k8s.io.api.admissionregistration.v1alpha1.ApplyConfiguration\")\n\tproto.RegisterType((*AuditAnnotation)(nil), \"k8s.io.api.admissionregistration.v1alpha1.AuditAnnotation\")\n\tproto.RegisterType((*ExpressionWarning)(nil), \"k8s.io.api.admissionregistration.v1alpha1.ExpressionWarning\")\n\tproto.RegisterType((*JSONPatch)(nil), \"k8s.io.api.admissionregistration.v1alpha1.JSONPatch\")\n\tproto.RegisterType((*MatchCondition)(nil), \"k8s.io.api.admissionregistration.v1alpha1.MatchCondition\")\n\tproto.RegisterType((*MatchResources)(nil), \"k8s.io.api.admissionregistration.v1alpha1.MatchResources\")\n\tproto.RegisterType((*MutatingAdmissionPolicy)(nil), \"k8s.io.api.admissionregistration.v1alpha1.MutatingAdmissionPolicy\")\n\tproto.RegisterType((*MutatingAdmissionPolicyBinding)(nil), \"k8s.io.api.admissionregistration.v1alpha1.MutatingAdmissionPolicyBinding\")\n\tproto.RegisterType((*MutatingAdmissionPolicyBindingList)(nil), \"k8s.io.api.admissionregistration.v1alpha1.MutatingAdmissionPolicyBindingList\")\n\tproto.RegisterType((*MutatingAdmissionPolicyBindingSpec)(nil), \"k8s.io.api.admissionregistration.v1alpha1.MutatingAdmissionPolicyBindingSpec\")\n\tproto.RegisterType((*MutatingAdmissionPolicyList)(nil), \"k8s.io.api.admissionregistration.v1alpha1.MutatingAdmissionPolicyList\")\n\tproto.RegisterType((*MutatingAdmissionPolicySpec)(nil), \"k8s.io.api.admissionregistration.v1alpha1.MutatingAdmissionPolicySpec\")\n\tproto.RegisterType((*Mutation)(nil), \"k8s.io.api.admissionregistration.v1alpha1.Mutation\")\n\tproto.RegisterType((*NamedRuleWithOperations)(nil), \"k8s.io.api.admissionregistration.v1alpha1.NamedRuleWithOperations\")\n\tproto.RegisterType((*ParamKind)(nil), \"k8s.io.api.admissionregistration.v1alpha1.ParamKind\")\n\tproto.RegisterType((*ParamRef)(nil), \"k8s.io.api.admissionregistration.v1alpha1.ParamRef\")\n\tproto.RegisterType((*TypeChecking)(nil), \"k8s.io.api.admissionregistration.v1alpha1.TypeChecking\")\n\tproto.RegisterType((*ValidatingAdmissionPolicy)(nil), \"k8s.io.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicy\")\n\tproto.RegisterType((*ValidatingAdmissionPolicyBinding)(nil), \"k8s.io.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicyBinding\")\n\tproto.RegisterType((*ValidatingAdmissionPolicyBindingList)(nil), \"k8s.io.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicyBindingList\")\n\tproto.RegisterType((*ValidatingAdmissionPolicyBindingSpec)(nil), \"k8s.io.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicyBindingSpec\")\n\tproto.RegisterType((*ValidatingAdmissionPolicyList)(nil), \"k8s.io.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicyList\")\n\tproto.RegisterType((*ValidatingAdmissionPolicySpec)(nil), \"k8s.io.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicySpec\")\n\tproto.RegisterType((*ValidatingAdmissionPolicyStatus)(nil), \"k8s.io.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicyStatus\")\n\tproto.RegisterType((*Validation)(nil), \"k8s.io.api.admissionregistration.v1alpha1.Validation\")\n\tproto.RegisterType((*Variable)(nil), \"k8s.io.api.admissionregistration.v1alpha1.Variable\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/admissionregistration/v1alpha1/generated.proto\", fileDescriptor_2c49182728ae0af5)\n}\n\nvar fileDescriptor_2c49182728ae0af5 = []byte{\n\t// 1783 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x59, 0xdd, 0x6f, 0x1b, 0x4b,\n\t0x15, 0xcf, 0xda, 0xce, 0x87, 0xc7, 0xf9, 0xf2, 0xd0, 0x12, 0x37, 0xa5, 0xde, 0x68, 0x55, 0xa1,\n\t0x46, 0x82, 0x35, 0x49, 0x0b, 0xa5, 0x55, 0x51, 0x95, 0x6d, 0x9b, 0xb6, 0x69, 0x9d, 0x44, 0x53,\n\t0x94, 0x20, 0x04, 0x12, 0x93, 0xf5, 0xc4, 0xde, 0xc6, 0xfb, 0xc1, 0xce, 0x3a, 0x34, 0x02, 0x89,\n\t0x4a, 0x08, 0x09, 0xde, 0x78, 0xe0, 0x85, 0x37, 0xc4, 0x1f, 0xc0, 0x03, 0xfc, 0x05, 0xbc, 0xf5,\n\t0xb1, 0x8f, 0xe5, 0x81, 0x15, 0x35, 0x20, 0xf1, 0x0c, 0xd2, 0xbd, 0x52, 0x5e, 0xee, 0xd5, 0xcc,\n\t0xce, 0x7e, 0x79, 0xed, 0xc6, 0x4e, 0xd3, 0xf4, 0xe1, 0xde, 0x37, 0xcf, 0xf9, 0xf8, 0x9d, 0x39,\n\t0x67, 0xce, 0x9c, 0x39, 0xc7, 0x0b, 0x6e, 0x1d, 0x7c, 0x97, 0xaa, 0x86, 0x5d, 0xc3, 0x8e, 0x51,\n\t0xc3, 0x0d, 0xd3, 0xa0, 0xd4, 0xb0, 0x2d, 0x97, 0x34, 0x0d, 0xea, 0xb9, 0xd8, 0x33, 0x6c, 0xab,\n\t0x76, 0xb8, 0x82, 0xdb, 0x4e, 0x0b, 0xaf, 0xd4, 0x9a, 0xc4, 0x22, 0x2e, 0xf6, 0x48, 0x43, 0x75,\n\t0x5c, 0xdb, 0xb3, 0xe1, 0x72, 0xa0, 0xaa, 0x62, 0xc7, 0x50, 0xfb, 0xaa, 0xaa, 0xa1, 0xea, 0xe2,\n\t0x37, 0x9b, 0x86, 0xd7, 0xea, 0xec, 0xa9, 0xba, 0x6d, 0xd6, 0x9a, 0x76, 0xd3, 0xae, 0x71, 0x84,\n\t0xbd, 0xce, 0x3e, 0x5f, 0xf1, 0x05, 0xff, 0x15, 0x20, 0x2f, 0x5e, 0x1f, 0x62, 0x53, 0xbd, 0xdb,\n\t0x59, 0xbc, 0x11, 0x2b, 0x99, 0x58, 0x6f, 0x19, 0x16, 0x71, 0x8f, 0x6a, 0xce, 0x41, 0x93, 0x11,\n\t0x68, 0xcd, 0x24, 0x1e, 0xee, 0xa7, 0x55, 0x1b, 0xa4, 0xe5, 0x76, 0x2c, 0xcf, 0x30, 0x49, 0x46,\n\t0xe1, 0x3b, 0x27, 0x29, 0x50, 0xbd, 0x45, 0x4c, 0xdc, 0xab, 0xa7, 0x3c, 0x02, 0x70, 0xcd, 0x71,\n\t0xda, 0x47, 0xf7, 0x6c, 0x6b, 0xdf, 0x68, 0x76, 0x02, 0x3f, 0xe0, 0x2a, 0x00, 0xe4, 0x85, 0xe3,\n\t0x12, 0xee, 0x61, 0x45, 0x5a, 0x92, 0xae, 0x15, 0x35, 0xf8, 0xca, 0x97, 0xc7, 0xba, 0xbe, 0x0c,\n\t0x1e, 0x44, 0x1c, 0x94, 0x90, 0x52, 0x28, 0x98, 0x5b, 0xeb, 0x34, 0x0c, 0x6f, 0xcd, 0xb2, 0x6c,\n\t0x2f, 0x80, 0xb9, 0x02, 0xf2, 0x07, 0xe4, 0x48, 0xe8, 0x97, 0x84, 0x7e, 0xfe, 0x09, 0x39, 0x42,\n\t0x8c, 0x0e, 0xd7, 0xc0, 0xdc, 0x21, 0x6e, 0x77, 0x48, 0x0c, 0x58, 0xc9, 0x71, 0xd1, 0x05, 0x21,\n\t0x3a, 0xb7, 0x93, 0x66, 0xa3, 0x5e, 0x79, 0xa5, 0x0d, 0xca, 0xf1, 0x6a, 0x17, 0xbb, 0x96, 0x61,\n\t0x35, 0xe1, 0x37, 0xc0, 0xd4, 0xbe, 0x41, 0xda, 0x0d, 0x44, 0xf6, 0x05, 0xe0, 0xbc, 0x00, 0x9c,\n\t0x5a, 0x17, 0x74, 0x14, 0x49, 0xc0, 0x65, 0x30, 0xf9, 0xb3, 0x40, 0xb1, 0x92, 0xe7, 0xc2, 0x73,\n\t0x42, 0x78, 0x52, 0xe0, 0xa1, 0x90, 0xaf, 0xdc, 0x05, 0xc5, 0x8d, 0x67, 0x5b, 0x9b, 0xdb, 0xd8,\n\t0xd3, 0x5b, 0xa7, 0x8a, 0xd1, 0x3e, 0x98, 0xad, 0x33, 0xe5, 0x7b, 0xb6, 0xd5, 0x30, 0x78, 0x88,\n\t0x96, 0x40, 0xc1, 0xc2, 0x26, 0x11, 0xfa, 0xd3, 0x42, 0xbf, 0xb0, 0x89, 0x4d, 0x82, 0x38, 0xa7,\n\t0xc7, 0x4e, 0x6e, 0x28, 0x3b, 0x7f, 0x2f, 0x08, 0x43, 0x88, 0x50, 0xbb, 0xe3, 0xea, 0x84, 0xc2,\n\t0x17, 0xa0, 0xcc, 0xe0, 0xa8, 0x83, 0x75, 0xf2, 0x8c, 0xb4, 0x89, 0xee, 0xd9, 0x2e, 0xb7, 0x5a,\n\t0x5a, 0xbd, 0xae, 0xc6, 0x57, 0x26, 0x4a, 0x1e, 0xd5, 0x39, 0x68, 0x32, 0x02, 0x55, 0x59, 0x8e,\n\t0xaa, 0x87, 0x2b, 0xea, 0x53, 0xbc, 0x47, 0xda, 0xa1, 0xaa, 0x76, 0xb1, 0xeb, 0xcb, 0xe5, 0xcd,\n\t0x5e, 0x44, 0x94, 0x35, 0x02, 0x6d, 0x30, 0x6b, 0xef, 0x3d, 0x27, 0xba, 0x17, 0x99, 0xcd, 0x9d,\n\t0xde, 0x2c, 0xec, 0xfa, 0xf2, 0xec, 0x56, 0x0a, 0x0e, 0xf5, 0xc0, 0xc3, 0x5f, 0x82, 0x19, 0x57,\n\t0xf8, 0x8d, 0x3a, 0x6d, 0x42, 0x2b, 0xf9, 0xa5, 0xfc, 0xb5, 0xd2, 0xaa, 0xa6, 0x0e, 0x5d, 0x19,\n\t0x54, 0xe6, 0x58, 0x83, 0x29, 0xef, 0x1a, 0x5e, 0x6b, 0xcb, 0x21, 0x01, 0x9f, 0x6a, 0x17, 0x45,\n\t0xe0, 0x67, 0x50, 0xd2, 0x00, 0x4a, 0xdb, 0x83, 0xbf, 0x97, 0xc0, 0x05, 0xf2, 0x42, 0x6f, 0x77,\n\t0x1a, 0x24, 0x25, 0x57, 0x29, 0x9c, 0xd9, 0x46, 0xbe, 0x26, 0x36, 0x72, 0xe1, 0x41, 0x1f, 0x3b,\n\t0xa8, 0xaf, 0x75, 0x78, 0x1f, 0x94, 0x4c, 0x96, 0x14, 0xdb, 0x76, 0xdb, 0xd0, 0x8f, 0x2a, 0x93,\n\t0x3c, 0x95, 0x94, 0xae, 0x2f, 0x97, 0xea, 0x31, 0xf9, 0xd8, 0x97, 0xe7, 0x12, 0xcb, 0xef, 0x1f,\n\t0x39, 0x04, 0x25, 0xd5, 0x94, 0xff, 0x48, 0x60, 0xa1, 0xde, 0x61, 0x37, 0xdc, 0x6a, 0xae, 0x85,\n\t0x9b, 0x0f, 0x78, 0xf0, 0x27, 0x60, 0x8a, 0x1d, 0x5b, 0x03, 0x7b, 0x58, 0xe4, 0xd6, 0xb7, 0x86,\n\t0x3b, 0xe4, 0xe0, 0x44, 0xeb, 0xc4, 0xc3, 0x71, 0x6e, 0xc7, 0x34, 0x14, 0xa1, 0xc2, 0x16, 0x28,\n\t0x50, 0x87, 0xe8, 0x22, 0x85, 0xd6, 0x47, 0x88, 0xe4, 0x80, 0x3d, 0x3f, 0x73, 0x88, 0x1e, 0xdf,\n\t0x3b, 0xb6, 0x42, 0xdc, 0x82, 0xf2, 0x7f, 0x09, 0x54, 0x07, 0xe8, 0x68, 0x86, 0xd5, 0x60, 0x85,\n\t0xe6, 0xc3, 0xbb, 0x6b, 0xa7, 0xdc, 0xad, 0xbf, 0xbf, 0xbb, 0x62, 0xeb, 0x03, 0xbd, 0xfe, 0x9f,\n\t0x04, 0x94, 0x77, 0xab, 0x3e, 0x35, 0xa8, 0x07, 0x7f, 0x94, 0xf1, 0x5c, 0x1d, 0xf2, 0x36, 0x1b,\n\t0x34, 0xf0, 0x3b, 0x2a, 0xc9, 0x21, 0x25, 0xe1, 0xb5, 0x05, 0xc6, 0x0d, 0x8f, 0x98, 0xb4, 0x92,\n\t0xe3, 0xf7, 0xe5, 0xf1, 0x99, 0xb9, 0xad, 0xcd, 0x08, 0xab, 0xe3, 0x8f, 0x19, 0x3e, 0x0a, 0xcc,\n\t0x28, 0x7f, 0xce, 0x9d, 0xe4, 0x34, 0x8b, 0x10, 0xab, 0xc4, 0x0e, 0x27, 0x6e, 0xc6, 0x15, 0x3b,\n\t0x3a, 0xbe, 0xed, 0x88, 0x83, 0x12, 0x52, 0xf0, 0xc7, 0x60, 0xca, 0xc1, 0x2e, 0x36, 0xc3, 0xb7,\n\t0x28, 0x5d, 0xf6, 0x4e, 0xf2, 0x66, 0x5b, 0xa8, 0x6a, 0xd3, 0x2c, 0x52, 0xe1, 0x0a, 0x45, 0x90,\n\t0xb0, 0x03, 0x66, 0xcd, 0x54, 0x9d, 0xe7, 0x6f, 0x58, 0x69, 0xf5, 0xd6, 0x28, 0x21, 0x4b, 0x01,\n\t0x04, 0x15, 0x36, 0x4d, 0x43, 0x3d, 0x46, 0x94, 0x7f, 0x4b, 0xe0, 0xf2, 0x80, 0x80, 0x9d, 0x43,\n\t0x7a, 0x34, 0xd3, 0xe9, 0xa1, 0x9d, 0x41, 0x7a, 0xf4, 0xcf, 0x8b, 0x3f, 0x4e, 0x0c, 0x74, 0x93,\n\t0x27, 0x04, 0x06, 0x45, 0x7e, 0x12, 0x4f, 0x0c, 0xab, 0x21, 0xfc, 0xbc, 0x31, 0xea, 0xe9, 0x32,\n\t0x5d, 0x6d, 0xa6, 0xeb, 0xcb, 0xc5, 0x68, 0x89, 0x62, 0x54, 0xf8, 0x73, 0x30, 0x6f, 0x8a, 0x8e,\n\t0x81, 0x01, 0x18, 0x96, 0x47, 0x45, 0x1e, 0xbd, 0xc7, 0x11, 0x5f, 0xe8, 0xfa, 0xf2, 0x7c, 0xbd,\n\t0x07, 0x16, 0x65, 0x0c, 0xc1, 0x06, 0x28, 0x1e, 0x62, 0xd7, 0xc0, 0x7b, 0xf1, 0x23, 0x3a, 0x4a,\n\t0xf6, 0xee, 0x08, 0x5d, 0xad, 0x2c, 0xa2, 0x5b, 0x0c, 0x29, 0x14, 0xc5, 0xc0, 0xcc, 0x8a, 0xd9,\n\t0x09, 0x3a, 0xc6, 0xf0, 0x85, 0xbc, 0x3e, 0xf2, 0x91, 0xda, 0x56, 0x6c, 0x25, 0xa4, 0x50, 0x14,\n\t0x03, 0xc3, 0xa7, 0x60, 0x66, 0x1f, 0x1b, 0xed, 0x8e, 0x4b, 0xc4, 0xf3, 0x37, 0xce, 0xef, 0xef,\n\t0xd7, 0xd9, 0x63, 0xbe, 0x9e, 0x64, 0x1c, 0xfb, 0x72, 0x39, 0x45, 0xe0, 0x4f, 0x60, 0x5a, 0x19,\n\t0xfe, 0x02, 0xcc, 0x99, 0xa9, 0x46, 0x8e, 0x56, 0x26, 0xf8, 0xce, 0x47, 0x3e, 0x95, 0x08, 0x21,\n\t0xee, 0x7a, 0xd3, 0x74, 0x8a, 0x7a, 0x4d, 0xc1, 0xdf, 0x48, 0x00, 0xba, 0xc4, 0xb0, 0x0e, 0x6d,\n\t0x9d, 0x43, 0xa6, 0x1e, 0xf4, 0x1f, 0x08, 0x18, 0x88, 0x32, 0x12, 0xc7, 0xbe, 0x7c, 0x7b, 0x88,\n\t0x19, 0x46, 0xcd, 0x6a, 0xf2, 0x18, 0xf4, 0xb1, 0xa9, 0xfc, 0x35, 0x07, 0xa6, 0xc2, 0x78, 0xc3,\n\t0x3b, 0xec, 0x3e, 0x78, 0x7a, 0x8b, 0x49, 0x8b, 0x4e, 0xb5, 0x1a, 0x1e, 0xca, 0x76, 0xc8, 0x38,\n\t0x4e, 0x2e, 0x50, 0xac, 0x00, 0x7f, 0x2d, 0x01, 0x88, 0x33, 0xb3, 0x88, 0x28, 0x68, 0xdf, 0x1b,\n\t0x21, 0xae, 0xd9, 0x81, 0x46, 0xfb, 0x2a, 0x0b, 0x48, 0x96, 0x8e, 0xfa, 0x18, 0x64, 0xb7, 0xfa,\n\t0x39, 0xb5, 0x2d, 0xbe, 0xc7, 0x4a, 0x61, 0xe4, 0x5b, 0x1d, 0x4d, 0x08, 0xc1, 0xad, 0x8e, 0x96,\n\t0x28, 0x46, 0x55, 0xde, 0x48, 0x60, 0x61, 0x40, 0x67, 0x07, 0x6f, 0xc6, 0xdd, 0x2b, 0x6f, 0xaf,\n\t0x2b, 0xd2, 0x52, 0xfe, 0x5a, 0x51, 0x2b, 0x27, 0xbb, 0x4e, 0xce, 0x40, 0x69, 0x39, 0xf8, 0x2b,\n\t0x96, 0x15, 0x19, 0x3c, 0x51, 0x2d, 0x6e, 0x0e, 0xe3, 0x81, 0xda, 0xa7, 0xd1, 0x5c, 0x8c, 0xd2,\n\t0x29, 0xc3, 0x43, 0x7d, 0xcc, 0x29, 0x18, 0xc4, 0x85, 0x8c, 0xbd, 0x98, 0xd8, 0x31, 0x76, 0x88,\n\t0xdb, 0x6f, 0x46, 0x5a, 0xdb, 0x7e, 0x2c, 0x38, 0x28, 0x21, 0xc5, 0x26, 0xa2, 0x03, 0x56, 0x4f,\n\t0x73, 0xe9, 0x89, 0x88, 0x17, 0x46, 0xce, 0x51, 0xfe, 0x92, 0x03, 0xd1, 0x5b, 0x38, 0xc4, 0x00,\n\t0x55, 0x03, 0xc5, 0x68, 0x28, 0x11, 0xa8, 0x51, 0xa9, 0x88, 0x06, 0x18, 0x14, 0xcb, 0xb0, 0x37,\n\t0x9b, 0x86, 0xa3, 0x4a, 0xfe, 0xf4, 0xa3, 0x0a, 0x7f, 0xb3, 0xa3, 0x21, 0x25, 0x82, 0x84, 0x1e,\n\t0x58, 0xe0, 0xf5, 0x9d, 0x78, 0xc4, 0xdd, 0xb4, 0xbd, 0x75, 0xbb, 0x63, 0x35, 0xd6, 0x74, 0x9e,\n\t0xeb, 0x05, 0xbe, 0xbb, 0xdb, 0x5d, 0x5f, 0x5e, 0xd8, 0xee, 0x2f, 0x72, 0xec, 0xcb, 0x97, 0x07,\n\t0xb0, 0xf8, 0x7d, 0x1a, 0x04, 0xad, 0xfc, 0x41, 0x02, 0xd3, 0x4c, 0xe2, 0x5e, 0x8b, 0xe8, 0x07,\n\t0xac, 0x79, 0x65, 0x45, 0x84, 0xf4, 0xce, 0xce, 0x41, 0xb6, 0x95, 0x56, 0xef, 0x8c, 0x90, 0xf0,\n\t0x99, 0x01, 0x3c, 0xce, 0x99, 0x0c, 0x8b, 0xa2, 0x3e, 0x36, 0x95, 0x7f, 0xe4, 0xc0, 0xa5, 0x1d,\n\t0xdc, 0x36, 0x1a, 0x1f, 0x69, 0xa8, 0x78, 0x9e, 0xea, 0xb2, 0x1f, 0x8d, 0xf4, 0xc4, 0x0d, 0xd8,\n\t0xf5, 0xa0, 0x06, 0x1b, 0xba, 0x60, 0x82, 0x7a, 0xd8, 0xeb, 0x84, 0x9d, 0xda, 0xc6, 0x99, 0x58,\n\t0xe3, 0x88, 0xda, 0xac, 0xb0, 0x37, 0x11, 0xac, 0x91, 0xb0, 0xa4, 0x7c, 0x2a, 0x81, 0xa5, 0x81,\n\t0xba, 0xe7, 0x37, 0xcc, 0xfc, 0x34, 0x15, 0xe6, 0xad, 0xb3, 0x70, 0xfc, 0xa4, 0x71, 0xe6, 0x13,\n\t0x09, 0x5c, 0x3d, 0x49, 0xf9, 0x1c, 0x3a, 0x56, 0x27, 0xdd, 0xb1, 0x3e, 0x39, 0x43, 0xd7, 0x07,\n\t0xb4, 0xae, 0xbf, 0xcd, 0x9f, 0xec, 0xf8, 0x97, 0x43, 0x4d, 0xea, 0x1f, 0xb2, 0x5d, 0x50, 0x3e,\n\t0x14, 0x11, 0xb3, 0xad, 0xa0, 0x6a, 0x06, 0xfd, 0x68, 0x51, 0x5b, 0xee, 0xfa, 0x72, 0x79, 0xa7,\n\t0x97, 0x79, 0xec, 0xcb, 0xf3, 0xbd, 0x44, 0x94, 0xc5, 0x50, 0xfe, 0x2b, 0x81, 0x2b, 0x03, 0xcf,\n\t0xe2, 0x1c, 0xb2, 0xcf, 0x48, 0x67, 0xdf, 0xfd, 0x33, 0xc9, 0xbe, 0xfe, 0x69, 0xf7, 0xa7, 0x89,\n\t0x77, 0xb8, 0xfa, 0x85, 0x98, 0x99, 0xda, 0xa0, 0x14, 0x67, 0x40, 0x38, 0x35, 0x7d, 0xfb, 0x14,\n\t0x21, 0xb7, 0x2d, 0xed, 0x2b, 0x22, 0xc6, 0xa5, 0x98, 0x46, 0x51, 0x12, 0x3e, 0x3b, 0xd5, 0x14,\n\t0xde, 0x67, 0xaa, 0x79, 0x29, 0x81, 0x79, 0x9c, 0xfe, 0x0f, 0x9f, 0x56, 0xc6, 0xb9, 0x07, 0xb7,\n\t0x47, 0xe9, 0xbf, 0xd3, 0x10, 0x5a, 0x45, 0xb8, 0x31, 0xdf, 0xc3, 0xa0, 0x28, 0x63, 0xed, 0x23,\n\t0x0f, 0x56, 0xa9, 0x81, 0x77, 0xf2, 0x03, 0x0d, 0xbc, 0xca, 0xdf, 0x72, 0x40, 0x3e, 0xe1, 0x29,\n\t0x87, 0x1b, 0x00, 0xda, 0x7b, 0x94, 0xb8, 0x87, 0xa4, 0xf1, 0x30, 0xf8, 0x64, 0x13, 0x76, 0xd0,\n\t0xf9, 0xb8, 0xbd, 0xda, 0xca, 0x48, 0xa0, 0x3e, 0x5a, 0xd0, 0x04, 0xd3, 0x5e, 0xa2, 0xf3, 0x1b,\n\t0x65, 0x22, 0x10, 0x8e, 0x25, 0x1b, 0x47, 0x6d, 0xbe, 0xeb, 0xcb, 0xa9, 0x56, 0x12, 0xa5, 0xe0,\n\t0xa1, 0x0e, 0x80, 0x1e, 0x9f, 0x5e, 0x70, 0x01, 0x6a, 0xc3, 0x95, 0xb3, 0xf8, 0xcc, 0xa2, 0x27,\n\t0x28, 0x71, 0x5c, 0x09, 0x58, 0xe5, 0x33, 0x09, 0x80, 0xf8, 0x56, 0xc0, 0xab, 0x20, 0xf1, 0x29,\n\t0x44, 0xbc, 0x62, 0x05, 0x06, 0x81, 0x12, 0x74, 0xb8, 0x0c, 0x26, 0x4d, 0x42, 0x29, 0x6e, 0x86,\n\t0x73, 0x40, 0xf4, 0xa9, 0xa7, 0x1e, 0x90, 0x51, 0xc8, 0x87, 0xbb, 0x60, 0xc2, 0x25, 0x98, 0x8a,\n\t0xf9, 0xb3, 0xa8, 0xdd, 0x65, 0x6d, 0x15, 0xe2, 0x94, 0x63, 0x5f, 0x5e, 0x19, 0xe6, 0xa3, 0x9e,\n\t0x2a, 0xba, 0x30, 0xae, 0x84, 0x04, 0x1c, 0x7c, 0x08, 0xca, 0xc2, 0x46, 0x62, 0xc3, 0xc1, 0xad,\n\t0xbd, 0x24, 0x76, 0x53, 0xae, 0xf7, 0x0a, 0xa0, 0xac, 0x8e, 0xb2, 0x01, 0xa6, 0xc2, 0xec, 0x82,\n\t0x15, 0x50, 0x48, 0x3c, 0xdf, 0x81, 0xe3, 0x9c, 0xd2, 0x13, 0x98, 0x5c, 0xff, 0xc0, 0x68, 0x5b,\n\t0xaf, 0xde, 0x56, 0xc7, 0x5e, 0xbf, 0xad, 0x8e, 0xbd, 0x79, 0x5b, 0x1d, 0x7b, 0xd9, 0xad, 0x4a,\n\t0xaf, 0xba, 0x55, 0xe9, 0x75, 0xb7, 0x2a, 0xbd, 0xe9, 0x56, 0xa5, 0x7f, 0x76, 0xab, 0xd2, 0xef,\n\t0xfe, 0x55, 0x1d, 0xfb, 0xe1, 0xf2, 0xd0, 0x1f, 0x65, 0x3f, 0x0f, 0x00, 0x00, 0xff, 0xff, 0xac,\n\t0xc8, 0x8c, 0x78, 0xc0, 0x1d, 0x00, 0x00,\n}\n\nfunc (m *ApplyConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ApplyConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ApplyConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Expression)\n\tcopy(dAtA[i:], m.Expression)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Expression)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *AuditAnnotation) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *AuditAnnotation) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *AuditAnnotation) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.ValueExpression)\n\tcopy(dAtA[i:], m.ValueExpression)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ValueExpression)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Key)\n\tcopy(dAtA[i:], m.Key)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Key)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ExpressionWarning) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ExpressionWarning) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ExpressionWarning) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Warning)\n\tcopy(dAtA[i:], m.Warning)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Warning)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.FieldRef)\n\tcopy(dAtA[i:], m.FieldRef)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FieldRef)))\n\ti--\n\tdAtA[i] = 0x12\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *JSONPatch) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *JSONPatch) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *JSONPatch) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Expression)\n\tcopy(dAtA[i:], m.Expression)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Expression)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MatchCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MatchCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MatchCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Expression)\n\tcopy(dAtA[i:], m.Expression)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Expression)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MatchResources) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MatchResources) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MatchResources) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.MatchPolicy != nil {\n\t\ti -= len(*m.MatchPolicy)\n\t\tcopy(dAtA[i:], *m.MatchPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.MatchPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif len(m.ExcludeResourceRules) > 0 {\n\t\tfor iNdEx := len(m.ExcludeResourceRules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ExcludeResourceRules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif len(m.ResourceRules) > 0 {\n\t\tfor iNdEx := len(m.ResourceRules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ResourceRules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif m.ObjectSelector != nil {\n\t\t{\n\t\t\tsize, err := m.ObjectSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.NamespaceSelector != nil {\n\t\t{\n\t\t\tsize, err := m.NamespaceSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MutatingAdmissionPolicy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MutatingAdmissionPolicy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MutatingAdmissionPolicy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MutatingAdmissionPolicyBinding) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MutatingAdmissionPolicyBinding) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MutatingAdmissionPolicyBinding) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MutatingAdmissionPolicyBindingList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MutatingAdmissionPolicyBindingList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MutatingAdmissionPolicyBindingList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MutatingAdmissionPolicyBindingSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MutatingAdmissionPolicyBindingSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MutatingAdmissionPolicyBindingSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.MatchResources != nil {\n\t\t{\n\t\t\tsize, err := m.MatchResources.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.ParamRef != nil {\n\t\t{\n\t\t\tsize, err := m.ParamRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.PolicyName)\n\tcopy(dAtA[i:], m.PolicyName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.PolicyName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MutatingAdmissionPolicyList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MutatingAdmissionPolicyList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MutatingAdmissionPolicyList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MutatingAdmissionPolicySpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MutatingAdmissionPolicySpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MutatingAdmissionPolicySpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.ReinvocationPolicy)\n\tcopy(dAtA[i:], m.ReinvocationPolicy)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ReinvocationPolicy)))\n\ti--\n\tdAtA[i] = 0x3a\n\tif len(m.MatchConditions) > 0 {\n\t\tfor iNdEx := len(m.MatchConditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.MatchConditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\tif m.FailurePolicy != nil {\n\t\ti -= len(*m.FailurePolicy)\n\t\tcopy(dAtA[i:], *m.FailurePolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.FailurePolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif len(m.Mutations) > 0 {\n\t\tfor iNdEx := len(m.Mutations) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Mutations[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif len(m.Variables) > 0 {\n\t\tfor iNdEx := len(m.Variables) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Variables[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif m.MatchConstraints != nil {\n\t\t{\n\t\t\tsize, err := m.MatchConstraints.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.ParamKind != nil {\n\t\t{\n\t\t\tsize, err := m.ParamKind.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Mutation) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Mutation) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Mutation) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.JSONPatch != nil {\n\t\t{\n\t\t\tsize, err := m.JSONPatch.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.ApplyConfiguration != nil {\n\t\t{\n\t\t\tsize, err := m.ApplyConfiguration.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti -= len(m.PatchType)\n\tcopy(dAtA[i:], m.PatchType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.PatchType)))\n\ti--\n\tdAtA[i] = 0x12\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NamedRuleWithOperations) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NamedRuleWithOperations) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NamedRuleWithOperations) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.RuleWithOperations.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\tif len(m.ResourceNames) > 0 {\n\t\tfor iNdEx := len(m.ResourceNames) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.ResourceNames[iNdEx])\n\t\t\tcopy(dAtA[i:], m.ResourceNames[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ResourceNames[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ParamKind) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ParamKind) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ParamKind) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.APIVersion)\n\tcopy(dAtA[i:], m.APIVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIVersion)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ParamRef) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ParamRef) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ParamRef) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ParameterNotFoundAction != nil {\n\t\ti -= len(*m.ParameterNotFoundAction)\n\t\tcopy(dAtA[i:], *m.ParameterNotFoundAction)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.ParameterNotFoundAction)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti -= len(m.Namespace)\n\tcopy(dAtA[i:], m.Namespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TypeChecking) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TypeChecking) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TypeChecking) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ExpressionWarnings) > 0 {\n\t\tfor iNdEx := len(m.ExpressionWarnings) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ExpressionWarnings[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ValidatingAdmissionPolicy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ValidatingAdmissionPolicy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ValidatingAdmissionPolicy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ValidatingAdmissionPolicyBinding) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ValidatingAdmissionPolicyBinding) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ValidatingAdmissionPolicyBinding) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ValidatingAdmissionPolicyBindingList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ValidatingAdmissionPolicyBindingList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ValidatingAdmissionPolicyBindingList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ValidatingAdmissionPolicyBindingSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ValidatingAdmissionPolicyBindingSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ValidatingAdmissionPolicyBindingSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ValidationActions) > 0 {\n\t\tfor iNdEx := len(m.ValidationActions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.ValidationActions[iNdEx])\n\t\t\tcopy(dAtA[i:], m.ValidationActions[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ValidationActions[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif m.MatchResources != nil {\n\t\t{\n\t\t\tsize, err := m.MatchResources.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.ParamRef != nil {\n\t\t{\n\t\t\tsize, err := m.ParamRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.PolicyName)\n\tcopy(dAtA[i:], m.PolicyName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.PolicyName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ValidatingAdmissionPolicyList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ValidatingAdmissionPolicyList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ValidatingAdmissionPolicyList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ValidatingAdmissionPolicySpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ValidatingAdmissionPolicySpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ValidatingAdmissionPolicySpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Variables) > 0 {\n\t\tfor iNdEx := len(m.Variables) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Variables[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x3a\n\t\t}\n\t}\n\tif len(m.MatchConditions) > 0 {\n\t\tfor iNdEx := len(m.MatchConditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.MatchConditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\tif len(m.AuditAnnotations) > 0 {\n\t\tfor iNdEx := len(m.AuditAnnotations) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.AuditAnnotations[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\tif m.FailurePolicy != nil {\n\t\ti -= len(*m.FailurePolicy)\n\t\tcopy(dAtA[i:], *m.FailurePolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.FailurePolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif len(m.Validations) > 0 {\n\t\tfor iNdEx := len(m.Validations) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Validations[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif m.MatchConstraints != nil {\n\t\t{\n\t\t\tsize, err := m.MatchConstraints.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.ParamKind != nil {\n\t\t{\n\t\t\tsize, err := m.ParamKind.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ValidatingAdmissionPolicyStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ValidatingAdmissionPolicyStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ValidatingAdmissionPolicyStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif m.TypeChecking != nil {\n\t\t{\n\t\t\tsize, err := m.TypeChecking.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Validation) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Validation) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Validation) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.MessageExpression)\n\tcopy(dAtA[i:], m.MessageExpression)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.MessageExpression)))\n\ti--\n\tdAtA[i] = 0x22\n\tif m.Reason != nil {\n\t\ti -= len(*m.Reason)\n\t\tcopy(dAtA[i:], *m.Reason)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Reason)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Expression)\n\tcopy(dAtA[i:], m.Expression)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Expression)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Variable) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Variable) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Variable) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Expression)\n\tcopy(dAtA[i:], m.Expression)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Expression)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *ApplyConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Expression)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *AuditAnnotation) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Key)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.ValueExpression)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ExpressionWarning) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.FieldRef)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Warning)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *JSONPatch) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Expression)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *MatchCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Expression)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *MatchResources) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.NamespaceSelector != nil {\n\t\tl = m.NamespaceSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ObjectSelector != nil {\n\t\tl = m.ObjectSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.ResourceRules) > 0 {\n\t\tfor _, e := range m.ResourceRules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.ExcludeResourceRules) > 0 {\n\t\tfor _, e := range m.ExcludeResourceRules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.MatchPolicy != nil {\n\t\tl = len(*m.MatchPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *MutatingAdmissionPolicy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *MutatingAdmissionPolicyBinding) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *MutatingAdmissionPolicyBindingList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *MutatingAdmissionPolicyBindingSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.PolicyName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.ParamRef != nil {\n\t\tl = m.ParamRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.MatchResources != nil {\n\t\tl = m.MatchResources.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *MutatingAdmissionPolicyList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *MutatingAdmissionPolicySpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.ParamKind != nil {\n\t\tl = m.ParamKind.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.MatchConstraints != nil {\n\t\tl = m.MatchConstraints.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.Variables) > 0 {\n\t\tfor _, e := range m.Variables {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Mutations) > 0 {\n\t\tfor _, e := range m.Mutations {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.FailurePolicy != nil {\n\t\tl = len(*m.FailurePolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.MatchConditions) > 0 {\n\t\tfor _, e := range m.MatchConditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.ReinvocationPolicy)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *Mutation) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.PatchType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.ApplyConfiguration != nil {\n\t\tl = m.ApplyConfiguration.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.JSONPatch != nil {\n\t\tl = m.JSONPatch.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *NamedRuleWithOperations) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.ResourceNames) > 0 {\n\t\tfor _, s := range m.ResourceNames {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = m.RuleWithOperations.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ParamKind) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.APIVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ParamRef) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Namespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ParameterNotFoundAction != nil {\n\t\tl = len(*m.ParameterNotFoundAction)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *TypeChecking) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.ExpressionWarnings) > 0 {\n\t\tfor _, e := range m.ExpressionWarnings {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ValidatingAdmissionPolicy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ValidatingAdmissionPolicyBinding) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ValidatingAdmissionPolicyBindingList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ValidatingAdmissionPolicyBindingSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.PolicyName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.ParamRef != nil {\n\t\tl = m.ParamRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.MatchResources != nil {\n\t\tl = m.MatchResources.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.ValidationActions) > 0 {\n\t\tfor _, s := range m.ValidationActions {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ValidatingAdmissionPolicyList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ValidatingAdmissionPolicySpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.ParamKind != nil {\n\t\tl = m.ParamKind.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.MatchConstraints != nil {\n\t\tl = m.MatchConstraints.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.Validations) > 0 {\n\t\tfor _, e := range m.Validations {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.FailurePolicy != nil {\n\t\tl = len(*m.FailurePolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.AuditAnnotations) > 0 {\n\t\tfor _, e := range m.AuditAnnotations {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.MatchConditions) > 0 {\n\t\tfor _, e := range m.MatchConditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Variables) > 0 {\n\t\tfor _, e := range m.Variables {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ValidatingAdmissionPolicyStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.ObservedGeneration))\n\tif m.TypeChecking != nil {\n\t\tl = m.TypeChecking.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *Validation) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Expression)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Reason != nil {\n\t\tl = len(*m.Reason)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.MessageExpression)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *Variable) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Expression)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *ApplyConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ApplyConfiguration{`,\n\t\t`Expression:` + fmt.Sprintf(\"%v\", this.Expression) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *AuditAnnotation) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&AuditAnnotation{`,\n\t\t`Key:` + fmt.Sprintf(\"%v\", this.Key) + `,`,\n\t\t`ValueExpression:` + fmt.Sprintf(\"%v\", this.ValueExpression) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ExpressionWarning) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ExpressionWarning{`,\n\t\t`FieldRef:` + fmt.Sprintf(\"%v\", this.FieldRef) + `,`,\n\t\t`Warning:` + fmt.Sprintf(\"%v\", this.Warning) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *JSONPatch) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&JSONPatch{`,\n\t\t`Expression:` + fmt.Sprintf(\"%v\", this.Expression) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MatchCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&MatchCondition{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Expression:` + fmt.Sprintf(\"%v\", this.Expression) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MatchResources) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForResourceRules := \"[]NamedRuleWithOperations{\"\n\tfor _, f := range this.ResourceRules {\n\t\trepeatedStringForResourceRules += strings.Replace(strings.Replace(f.String(), \"NamedRuleWithOperations\", \"NamedRuleWithOperations\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForResourceRules += \"}\"\n\trepeatedStringForExcludeResourceRules := \"[]NamedRuleWithOperations{\"\n\tfor _, f := range this.ExcludeResourceRules {\n\t\trepeatedStringForExcludeResourceRules += strings.Replace(strings.Replace(f.String(), \"NamedRuleWithOperations\", \"NamedRuleWithOperations\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForExcludeResourceRules += \"}\"\n\ts := strings.Join([]string{`&MatchResources{`,\n\t\t`NamespaceSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.NamespaceSelector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`ObjectSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.ObjectSelector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`ResourceRules:` + repeatedStringForResourceRules + `,`,\n\t\t`ExcludeResourceRules:` + repeatedStringForExcludeResourceRules + `,`,\n\t\t`MatchPolicy:` + valueToStringGenerated(this.MatchPolicy) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MutatingAdmissionPolicy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&MutatingAdmissionPolicy{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"MutatingAdmissionPolicySpec\", \"MutatingAdmissionPolicySpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MutatingAdmissionPolicyBinding) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&MutatingAdmissionPolicyBinding{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"MutatingAdmissionPolicyBindingSpec\", \"MutatingAdmissionPolicyBindingSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MutatingAdmissionPolicyBindingList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]MutatingAdmissionPolicyBinding{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"MutatingAdmissionPolicyBinding\", \"MutatingAdmissionPolicyBinding\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&MutatingAdmissionPolicyBindingList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MutatingAdmissionPolicyBindingSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&MutatingAdmissionPolicyBindingSpec{`,\n\t\t`PolicyName:` + fmt.Sprintf(\"%v\", this.PolicyName) + `,`,\n\t\t`ParamRef:` + strings.Replace(this.ParamRef.String(), \"ParamRef\", \"ParamRef\", 1) + `,`,\n\t\t`MatchResources:` + strings.Replace(this.MatchResources.String(), \"MatchResources\", \"MatchResources\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MutatingAdmissionPolicyList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]MutatingAdmissionPolicy{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"MutatingAdmissionPolicy\", \"MutatingAdmissionPolicy\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&MutatingAdmissionPolicyList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MutatingAdmissionPolicySpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForVariables := \"[]Variable{\"\n\tfor _, f := range this.Variables {\n\t\trepeatedStringForVariables += strings.Replace(strings.Replace(f.String(), \"Variable\", \"Variable\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForVariables += \"}\"\n\trepeatedStringForMutations := \"[]Mutation{\"\n\tfor _, f := range this.Mutations {\n\t\trepeatedStringForMutations += strings.Replace(strings.Replace(f.String(), \"Mutation\", \"Mutation\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForMutations += \"}\"\n\trepeatedStringForMatchConditions := \"[]MatchCondition{\"\n\tfor _, f := range this.MatchConditions {\n\t\trepeatedStringForMatchConditions += strings.Replace(strings.Replace(f.String(), \"MatchCondition\", \"MatchCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForMatchConditions += \"}\"\n\ts := strings.Join([]string{`&MutatingAdmissionPolicySpec{`,\n\t\t`ParamKind:` + strings.Replace(this.ParamKind.String(), \"ParamKind\", \"ParamKind\", 1) + `,`,\n\t\t`MatchConstraints:` + strings.Replace(this.MatchConstraints.String(), \"MatchResources\", \"MatchResources\", 1) + `,`,\n\t\t`Variables:` + repeatedStringForVariables + `,`,\n\t\t`Mutations:` + repeatedStringForMutations + `,`,\n\t\t`FailurePolicy:` + valueToStringGenerated(this.FailurePolicy) + `,`,\n\t\t`MatchConditions:` + repeatedStringForMatchConditions + `,`,\n\t\t`ReinvocationPolicy:` + fmt.Sprintf(\"%v\", this.ReinvocationPolicy) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Mutation) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Mutation{`,\n\t\t`PatchType:` + fmt.Sprintf(\"%v\", this.PatchType) + `,`,\n\t\t`ApplyConfiguration:` + strings.Replace(this.ApplyConfiguration.String(), \"ApplyConfiguration\", \"ApplyConfiguration\", 1) + `,`,\n\t\t`JSONPatch:` + strings.Replace(this.JSONPatch.String(), \"JSONPatch\", \"JSONPatch\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NamedRuleWithOperations) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NamedRuleWithOperations{`,\n\t\t`ResourceNames:` + fmt.Sprintf(\"%v\", this.ResourceNames) + `,`,\n\t\t`RuleWithOperations:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.RuleWithOperations), \"RuleWithOperations\", \"v11.RuleWithOperations\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ParamKind) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ParamKind{`,\n\t\t`APIVersion:` + fmt.Sprintf(\"%v\", this.APIVersion) + `,`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ParamRef) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ParamRef{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`ParameterNotFoundAction:` + valueToStringGenerated(this.ParameterNotFoundAction) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TypeChecking) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForExpressionWarnings := \"[]ExpressionWarning{\"\n\tfor _, f := range this.ExpressionWarnings {\n\t\trepeatedStringForExpressionWarnings += strings.Replace(strings.Replace(f.String(), \"ExpressionWarning\", \"ExpressionWarning\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForExpressionWarnings += \"}\"\n\ts := strings.Join([]string{`&TypeChecking{`,\n\t\t`ExpressionWarnings:` + repeatedStringForExpressionWarnings + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ValidatingAdmissionPolicy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ValidatingAdmissionPolicy{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ValidatingAdmissionPolicySpec\", \"ValidatingAdmissionPolicySpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"ValidatingAdmissionPolicyStatus\", \"ValidatingAdmissionPolicyStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ValidatingAdmissionPolicyBinding) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ValidatingAdmissionPolicyBinding{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ValidatingAdmissionPolicyBindingSpec\", \"ValidatingAdmissionPolicyBindingSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ValidatingAdmissionPolicyBindingList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ValidatingAdmissionPolicyBinding{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ValidatingAdmissionPolicyBinding\", \"ValidatingAdmissionPolicyBinding\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ValidatingAdmissionPolicyBindingList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ValidatingAdmissionPolicyBindingSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ValidatingAdmissionPolicyBindingSpec{`,\n\t\t`PolicyName:` + fmt.Sprintf(\"%v\", this.PolicyName) + `,`,\n\t\t`ParamRef:` + strings.Replace(this.ParamRef.String(), \"ParamRef\", \"ParamRef\", 1) + `,`,\n\t\t`MatchResources:` + strings.Replace(this.MatchResources.String(), \"MatchResources\", \"MatchResources\", 1) + `,`,\n\t\t`ValidationActions:` + fmt.Sprintf(\"%v\", this.ValidationActions) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ValidatingAdmissionPolicyList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ValidatingAdmissionPolicy{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ValidatingAdmissionPolicy\", \"ValidatingAdmissionPolicy\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ValidatingAdmissionPolicyList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ValidatingAdmissionPolicySpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForValidations := \"[]Validation{\"\n\tfor _, f := range this.Validations {\n\t\trepeatedStringForValidations += strings.Replace(strings.Replace(f.String(), \"Validation\", \"Validation\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForValidations += \"}\"\n\trepeatedStringForAuditAnnotations := \"[]AuditAnnotation{\"\n\tfor _, f := range this.AuditAnnotations {\n\t\trepeatedStringForAuditAnnotations += strings.Replace(strings.Replace(f.String(), \"AuditAnnotation\", \"AuditAnnotation\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForAuditAnnotations += \"}\"\n\trepeatedStringForMatchConditions := \"[]MatchCondition{\"\n\tfor _, f := range this.MatchConditions {\n\t\trepeatedStringForMatchConditions += strings.Replace(strings.Replace(f.String(), \"MatchCondition\", \"MatchCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForMatchConditions += \"}\"\n\trepeatedStringForVariables := \"[]Variable{\"\n\tfor _, f := range this.Variables {\n\t\trepeatedStringForVariables += strings.Replace(strings.Replace(f.String(), \"Variable\", \"Variable\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForVariables += \"}\"\n\ts := strings.Join([]string{`&ValidatingAdmissionPolicySpec{`,\n\t\t`ParamKind:` + strings.Replace(this.ParamKind.String(), \"ParamKind\", \"ParamKind\", 1) + `,`,\n\t\t`MatchConstraints:` + strings.Replace(this.MatchConstraints.String(), \"MatchResources\", \"MatchResources\", 1) + `,`,\n\t\t`Validations:` + repeatedStringForValidations + `,`,\n\t\t`FailurePolicy:` + valueToStringGenerated(this.FailurePolicy) + `,`,\n\t\t`AuditAnnotations:` + repeatedStringForAuditAnnotations + `,`,\n\t\t`MatchConditions:` + repeatedStringForMatchConditions + `,`,\n\t\t`Variables:` + repeatedStringForVariables + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ValidatingAdmissionPolicyStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]Condition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&ValidatingAdmissionPolicyStatus{`,\n\t\t`ObservedGeneration:` + fmt.Sprintf(\"%v\", this.ObservedGeneration) + `,`,\n\t\t`TypeChecking:` + strings.Replace(this.TypeChecking.String(), \"TypeChecking\", \"TypeChecking\", 1) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Validation) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Validation{`,\n\t\t`Expression:` + fmt.Sprintf(\"%v\", this.Expression) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`Reason:` + valueToStringGenerated(this.Reason) + `,`,\n\t\t`MessageExpression:` + fmt.Sprintf(\"%v\", this.MessageExpression) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Variable) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Variable{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Expression:` + fmt.Sprintf(\"%v\", this.Expression) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *ApplyConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ApplyConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ApplyConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Expression\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Expression = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *AuditAnnotation) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: AuditAnnotation: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: AuditAnnotation: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Key\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Key = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ValueExpression\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ValueExpression = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ExpressionWarning) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ExpressionWarning: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ExpressionWarning: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FieldRef\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FieldRef = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Warning\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Warning = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *JSONPatch) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: JSONPatch: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: JSONPatch: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Expression\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Expression = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MatchCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MatchCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MatchCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Expression\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Expression = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MatchResources) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MatchResources: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MatchResources: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NamespaceSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NamespaceSelector == nil {\n\t\t\t\tm.NamespaceSelector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.NamespaceSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ObjectSelector == nil {\n\t\t\t\tm.ObjectSelector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.ObjectSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceRules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceRules = append(m.ResourceRules, NamedRuleWithOperations{})\n\t\t\tif err := m.ResourceRules[len(m.ResourceRules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ExcludeResourceRules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ExcludeResourceRules = append(m.ExcludeResourceRules, NamedRuleWithOperations{})\n\t\t\tif err := m.ExcludeResourceRules[len(m.ExcludeResourceRules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := MatchPolicyType(dAtA[iNdEx:postIndex])\n\t\t\tm.MatchPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MutatingAdmissionPolicy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MutatingAdmissionPolicy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MutatingAdmissionPolicy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MutatingAdmissionPolicyBinding) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MutatingAdmissionPolicyBinding: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MutatingAdmissionPolicyBinding: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MutatingAdmissionPolicyBindingList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MutatingAdmissionPolicyBindingList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MutatingAdmissionPolicyBindingList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, MutatingAdmissionPolicyBinding{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MutatingAdmissionPolicyBindingSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MutatingAdmissionPolicyBindingSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MutatingAdmissionPolicyBindingSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PolicyName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PolicyName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ParamRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ParamRef == nil {\n\t\t\t\tm.ParamRef = &ParamRef{}\n\t\t\t}\n\t\t\tif err := m.ParamRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchResources\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MatchResources == nil {\n\t\t\t\tm.MatchResources = &MatchResources{}\n\t\t\t}\n\t\t\tif err := m.MatchResources.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MutatingAdmissionPolicyList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MutatingAdmissionPolicyList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MutatingAdmissionPolicyList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, MutatingAdmissionPolicy{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MutatingAdmissionPolicySpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MutatingAdmissionPolicySpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MutatingAdmissionPolicySpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ParamKind\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ParamKind == nil {\n\t\t\t\tm.ParamKind = &ParamKind{}\n\t\t\t}\n\t\t\tif err := m.ParamKind.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchConstraints\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MatchConstraints == nil {\n\t\t\t\tm.MatchConstraints = &MatchResources{}\n\t\t\t}\n\t\t\tif err := m.MatchConstraints.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Variables\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Variables = append(m.Variables, Variable{})\n\t\t\tif err := m.Variables[len(m.Variables)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Mutations\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Mutations = append(m.Mutations, Mutation{})\n\t\t\tif err := m.Mutations[len(m.Mutations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FailurePolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := FailurePolicyType(dAtA[iNdEx:postIndex])\n\t\t\tm.FailurePolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchConditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MatchConditions = append(m.MatchConditions, MatchCondition{})\n\t\t\tif err := m.MatchConditions[len(m.MatchConditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReinvocationPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ReinvocationPolicy = k8s_io_api_admissionregistration_v1.ReinvocationPolicyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Mutation) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Mutation: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Mutation: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PatchType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PatchType = PatchType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ApplyConfiguration\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ApplyConfiguration == nil {\n\t\t\t\tm.ApplyConfiguration = &ApplyConfiguration{}\n\t\t\t}\n\t\t\tif err := m.ApplyConfiguration.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field JSONPatch\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.JSONPatch == nil {\n\t\t\t\tm.JSONPatch = &JSONPatch{}\n\t\t\t}\n\t\t\tif err := m.JSONPatch.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NamedRuleWithOperations) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NamedRuleWithOperations: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NamedRuleWithOperations: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceNames\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceNames = append(m.ResourceNames, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RuleWithOperations\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.RuleWithOperations.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ParamKind) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ParamKind: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ParamKind: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ParamRef) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ParamRef: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ParamRef: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ParameterNotFoundAction\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := ParameterNotFoundActionType(dAtA[iNdEx:postIndex])\n\t\t\tm.ParameterNotFoundAction = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TypeChecking) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TypeChecking: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TypeChecking: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ExpressionWarnings\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ExpressionWarnings = append(m.ExpressionWarnings, ExpressionWarning{})\n\t\t\tif err := m.ExpressionWarnings[len(m.ExpressionWarnings)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ValidatingAdmissionPolicy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ValidatingAdmissionPolicyBinding) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicyBinding: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicyBinding: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ValidatingAdmissionPolicyBindingList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicyBindingList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicyBindingList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ValidatingAdmissionPolicyBinding{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ValidatingAdmissionPolicyBindingSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicyBindingSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicyBindingSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PolicyName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PolicyName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ParamRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ParamRef == nil {\n\t\t\t\tm.ParamRef = &ParamRef{}\n\t\t\t}\n\t\t\tif err := m.ParamRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchResources\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MatchResources == nil {\n\t\t\t\tm.MatchResources = &MatchResources{}\n\t\t\t}\n\t\t\tif err := m.MatchResources.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ValidationActions\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ValidationActions = append(m.ValidationActions, ValidationAction(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ValidatingAdmissionPolicyList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicyList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicyList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ValidatingAdmissionPolicy{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ValidatingAdmissionPolicySpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicySpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicySpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ParamKind\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ParamKind == nil {\n\t\t\t\tm.ParamKind = &ParamKind{}\n\t\t\t}\n\t\t\tif err := m.ParamKind.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchConstraints\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MatchConstraints == nil {\n\t\t\t\tm.MatchConstraints = &MatchResources{}\n\t\t\t}\n\t\t\tif err := m.MatchConstraints.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Validations\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Validations = append(m.Validations, Validation{})\n\t\t\tif err := m.Validations[len(m.Validations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FailurePolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := FailurePolicyType(dAtA[iNdEx:postIndex])\n\t\t\tm.FailurePolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AuditAnnotations\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AuditAnnotations = append(m.AuditAnnotations, AuditAnnotation{})\n\t\t\tif err := m.AuditAnnotations[len(m.AuditAnnotations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchConditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MatchConditions = append(m.MatchConditions, MatchCondition{})\n\t\t\tif err := m.MatchConditions[len(m.MatchConditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Variables\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Variables = append(m.Variables, Variable{})\n\t\t\tif err := m.Variables[len(m.Variables)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ValidatingAdmissionPolicyStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicyStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicyStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tm.ObservedGeneration = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ObservedGeneration |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TypeChecking\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.TypeChecking == nil {\n\t\t\t\tm.TypeChecking = &TypeChecking{}\n\t\t\t}\n\t\t\tif err := m.TypeChecking.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, v1.Condition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Validation) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Validation: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Validation: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Expression\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Expression = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := k8s_io_apimachinery_pkg_apis_meta_v1.StatusReason(dAtA[iNdEx:postIndex])\n\t\t\tm.Reason = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MessageExpression\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MessageExpression = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Variable) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Variable: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Variable: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Expression\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Expression = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1alpha1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.admissionregistration.v1alpha1;\n\nimport \"k8s.io/api/admissionregistration/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/admissionregistration/v1alpha1\";\n\n// ApplyConfiguration defines the desired configuration values of an object.\nmessage ApplyConfiguration {\n  // expression will be evaluated by CEL to create an apply configuration.\n  // ref: https://github.com/google/cel-spec\n  //\n  // Apply configurations are declared in CEL using object initialization. For example, this CEL expression\n  // returns an apply configuration to set a single field:\n  //\n  // \tObject{\n  // \t  spec: Object.spec{\n  // \t    serviceAccountName: \"example\"\n  // \t  }\n  // \t}\n  //\n  // Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of\n  // values not included in the apply configuration.\n  //\n  // CEL expressions have access to the object types needed to create apply configurations:\n  //\n  // - 'Object' - CEL type of the resource object.\n  // - 'Object.<fieldName>' - CEL type of object field (such as 'Object.spec')\n  // - 'Object.<fieldName1>.<fieldName2>...<fieldNameN>` - CEL type of nested field (such as 'Object.spec.containers')\n  //\n  // CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables:\n  //\n  // - 'object' - The object from the incoming request. The value is null for DELETE requests.\n  // - 'oldObject' - The existing object. The value is null for CREATE requests.\n  // - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)).\n  // - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind.\n  // - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources.\n  // - 'variables' - Map of composited variables, from its name to its lazily evaluated value.\n  //   For example, a variable named 'foo' can be accessed as 'variables.foo'.\n  // - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n  //   See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n  // - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n  //   request resource.\n  //\n  // The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the\n  // object. No other metadata properties are accessible.\n  //\n  // Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible.\n  // Required.\n  optional string expression = 1;\n}\n\n// AuditAnnotation describes how to produce an audit annotation for an API request.\nmessage AuditAnnotation {\n  // key specifies the audit annotation key. The audit annotation keys of\n  // a ValidatingAdmissionPolicy must be unique. The key must be a qualified\n  // name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length.\n  //\n  // The key is combined with the resource name of the\n  // ValidatingAdmissionPolicy to construct an audit annotation key:\n  // \"{ValidatingAdmissionPolicy name}/{key}\".\n  //\n  // If an admission webhook uses the same resource name as this ValidatingAdmissionPolicy\n  // and the same audit annotation key, the annotation key will be identical.\n  // In this case, the first annotation written with the key will be included\n  // in the audit event and all subsequent annotations with the same key\n  // will be discarded.\n  //\n  // Required.\n  optional string key = 1;\n\n  // valueExpression represents the expression which is evaluated by CEL to\n  // produce an audit annotation value. The expression must evaluate to either\n  // a string or null value. If the expression evaluates to a string, the\n  // audit annotation is included with the string value. If the expression\n  // evaluates to null or empty string the audit annotation will be omitted.\n  // The valueExpression may be no longer than 5kb in length.\n  // If the result of the valueExpression is more than 10kb in length, it\n  // will be truncated to 10kb.\n  //\n  // If multiple ValidatingAdmissionPolicyBinding resources match an\n  // API request, then the valueExpression will be evaluated for\n  // each binding. All unique values produced by the valueExpressions\n  // will be joined together in a comma-separated list.\n  //\n  // Required.\n  optional string valueExpression = 2;\n}\n\n// ExpressionWarning is a warning information that targets a specific expression.\nmessage ExpressionWarning {\n  // The path to the field that refers the expression.\n  // For example, the reference to the expression of the first item of\n  // validations is \"spec.validations[0].expression\"\n  optional string fieldRef = 2;\n\n  // The content of type checking information in a human-readable form.\n  // Each line of the warning contains the type that the expression is checked\n  // against, followed by the type check error from the compiler.\n  optional string warning = 3;\n}\n\n// JSONPatch defines a JSON Patch.\nmessage JSONPatch {\n  // expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/).\n  // ref: https://github.com/google/cel-spec\n  //\n  // expression must return an array of JSONPatch values.\n  //\n  // For example, this CEL expression returns a JSON patch to conditionally modify a value:\n  //\n  // \t  [\n  // \t    JSONPatch{op: \"test\", path: \"/spec/example\", value: \"Red\"},\n  // \t    JSONPatch{op: \"replace\", path: \"/spec/example\", value: \"Green\"}\n  // \t  ]\n  //\n  // To define an object for the patch value, use Object types. For example:\n  //\n  // \t  [\n  // \t    JSONPatch{\n  // \t      op: \"add\",\n  // \t      path: \"/spec/selector\",\n  // \t      value: Object.spec.selector{matchLabels: {\"environment\": \"test\"}}\n  // \t    }\n  // \t  ]\n  //\n  // To use strings containing '/' and '~' as JSONPatch path keys, use \"jsonpatch.escapeKey\". For example:\n  //\n  // \t  [\n  // \t    JSONPatch{\n  // \t      op: \"add\",\n  // \t      path: \"/metadata/labels/\" + jsonpatch.escapeKey(\"example.com/environment\"),\n  // \t      value: \"test\"\n  // \t    },\n  // \t  ]\n  //\n  // CEL expressions have access to the types needed to create JSON patches and objects:\n  //\n  // - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'.\n  //   See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string,\n  //   integer, array, map or object.  If set, the 'path' and 'from' fields must be set to a\n  //   [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL\n  //   function may be used to escape path keys containing '/' and '~'.\n  // - 'Object' - CEL type of the resource object.\n  // - 'Object.<fieldName>' - CEL type of object field (such as 'Object.spec')\n  // - 'Object.<fieldName1>.<fieldName2>...<fieldNameN>` - CEL type of nested field (such as 'Object.spec.containers')\n  //\n  // CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables:\n  //\n  // - 'object' - The object from the incoming request. The value is null for DELETE requests.\n  // - 'oldObject' - The existing object. The value is null for CREATE requests.\n  // - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)).\n  // - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind.\n  // - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources.\n  // - 'variables' - Map of composited variables, from its name to its lazily evaluated value.\n  //   For example, a variable named 'foo' can be accessed as 'variables.foo'.\n  // - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n  //   See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n  // - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n  //   request resource.\n  //\n  // CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries)\n  // as well as:\n  //\n  // - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and  '/' are escaped as '~0' and `~1' respectively).\n  //\n  // Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible.\n  // Required.\n  optional string expression = 1;\n}\n\nmessage MatchCondition {\n  // Name is an identifier for this match condition, used for strategic merging of MatchConditions,\n  // as well as providing an identifier for logging purposes. A good name should be descriptive of\n  // the associated expression.\n  // Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and\n  // must start and end with an alphanumeric character (e.g. 'MyName',  or 'my.name',  or\n  // '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an\n  // optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName')\n  //\n  // Required.\n  optional string name = 1;\n\n  // Expression represents the expression which will be evaluated by CEL. Must evaluate to bool.\n  // CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables:\n  //\n  // 'object' - The object from the incoming request. The value is null for DELETE requests.\n  // 'oldObject' - The existing object. The value is null for CREATE requests.\n  // 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest).\n  // 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n  //   See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n  // 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n  //   request resource.\n  // Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/\n  //\n  // Required.\n  optional string expression = 2;\n}\n\n// MatchResources decides whether to run the admission control policy on an object based\n// on whether it meets the match criteria.\n// The exclude rules take precedence over include rules (if a resource matches both, it is excluded)\n// +structType=atomic\nmessage MatchResources {\n  // NamespaceSelector decides whether to run the admission control policy on an object based\n  // on whether the namespace for that object matches the selector. If the\n  // object itself is a namespace, the matching is performed on\n  // object.metadata.labels. If the object is another cluster scoped resource,\n  // it never skips the policy.\n  //\n  // For example, to run the webhook on any objects whose namespace is not\n  // associated with \"runlevel\" of \"0\" or \"1\";  you will set the selector as\n  // follows:\n  // \"namespaceSelector\": {\n  //   \"matchExpressions\": [\n  //     {\n  //       \"key\": \"runlevel\",\n  //       \"operator\": \"NotIn\",\n  //       \"values\": [\n  //         \"0\",\n  //         \"1\"\n  //       ]\n  //     }\n  //   ]\n  // }\n  //\n  // If instead you want to only run the policy on any objects whose\n  // namespace is associated with the \"environment\" of \"prod\" or \"staging\";\n  // you will set the selector as follows:\n  // \"namespaceSelector\": {\n  //   \"matchExpressions\": [\n  //     {\n  //       \"key\": \"environment\",\n  //       \"operator\": \"In\",\n  //       \"values\": [\n  //         \"prod\",\n  //         \"staging\"\n  //       ]\n  //     }\n  //   ]\n  // }\n  //\n  // See\n  // https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\n  // for more examples of label selectors.\n  //\n  // Default to the empty LabelSelector, which matches everything.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector namespaceSelector = 1;\n\n  // ObjectSelector decides whether to run the validation based on if the\n  // object has matching labels. objectSelector is evaluated against both\n  // the oldObject and newObject that would be sent to the cel validation, and\n  // is considered to match if either object matches the selector. A null\n  // object (oldObject in the case of create, or newObject in the case of\n  // delete) or an object that cannot have labels (like a\n  // DeploymentRollback or a PodProxyOptions object) is not considered to\n  // match.\n  // Use the object selector only if the webhook is opt-in, because end\n  // users may skip the admission webhook by setting the labels.\n  // Default to the empty LabelSelector, which matches everything.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector objectSelector = 2;\n\n  // ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches.\n  // The policy cares about an operation if it matches _any_ Rule.\n  // +listType=atomic\n  // +optional\n  repeated NamedRuleWithOperations resourceRules = 3;\n\n  // ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about.\n  // The exclude rules take precedence over include rules (if a resource matches both, it is excluded)\n  // +listType=atomic\n  // +optional\n  repeated NamedRuleWithOperations excludeResourceRules = 4;\n\n  // matchPolicy defines how the \"MatchResources\" list is used to match incoming requests.\n  // Allowed values are \"Exact\" or \"Equivalent\".\n  //\n  // - Exact: match a request only if it exactly matches a specified rule.\n  // For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n  // but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n  // a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy.\n  //\n  // - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version.\n  // For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n  // and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n  // a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy.\n  //\n  // Defaults to \"Equivalent\"\n  // +optional\n  optional string matchPolicy = 7;\n}\n\n// MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain.\nmessage MutatingAdmissionPolicy {\n  // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Specification of the desired behavior of the MutatingAdmissionPolicy.\n  optional MutatingAdmissionPolicySpec spec = 2;\n}\n\n// MutatingAdmissionPolicyBinding binds the MutatingAdmissionPolicy with parametrized resources.\n// MutatingAdmissionPolicyBinding and the optional parameter resource together define how cluster administrators\n// configure policies for clusters.\n//\n// For a given admission request, each binding will cause its policy to be\n// evaluated N times, where N is 1 for policies/bindings that don't use\n// params, otherwise N is the number of parameters selected by the binding.\n// Each evaluation is constrained by a [runtime cost budget](https://kubernetes.io/docs/reference/using-api/cel/#runtime-cost-budget).\n//\n// Adding/removing policies, bindings, or params can not affect whether a\n// given (policy, binding, param) combination is within its own CEL budget.\nmessage MutatingAdmissionPolicyBinding {\n  // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Specification of the desired behavior of the MutatingAdmissionPolicyBinding.\n  optional MutatingAdmissionPolicyBindingSpec spec = 2;\n}\n\n// MutatingAdmissionPolicyBindingList is a list of MutatingAdmissionPolicyBinding.\nmessage MutatingAdmissionPolicyBindingList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of PolicyBinding.\n  repeated MutatingAdmissionPolicyBinding items = 2;\n}\n\n// MutatingAdmissionPolicyBindingSpec is the specification of the MutatingAdmissionPolicyBinding.\nmessage MutatingAdmissionPolicyBindingSpec {\n  // policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to.\n  // If the referenced resource does not exist, this binding is considered invalid and will be ignored\n  // Required.\n  optional string policyName = 1;\n\n  // paramRef specifies the parameter resource used to configure the admission control policy.\n  // It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy.\n  // If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied.\n  // If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param.\n  // +optional\n  optional ParamRef paramRef = 2;\n\n  // matchResources limits what resources match this binding and may be mutated by it.\n  // Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and\n  // matchConditions before the resource may be mutated.\n  // When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints\n  // and matchConditions must match for the resource to be mutated.\n  // Additionally, matchResources.resourceRules are optional and do not constraint matching when unset.\n  // Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required.\n  // The CREATE, UPDATE and CONNECT operations are allowed.  The DELETE operation may not be matched.\n  // '*' matches CREATE, UPDATE and CONNECT.\n  // +optional\n  optional MatchResources matchResources = 3;\n}\n\n// MutatingAdmissionPolicyList is a list of MutatingAdmissionPolicy.\nmessage MutatingAdmissionPolicyList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of ValidatingAdmissionPolicy.\n  repeated MutatingAdmissionPolicy items = 2;\n}\n\n// MutatingAdmissionPolicySpec is the specification of the desired behavior of the admission policy.\nmessage MutatingAdmissionPolicySpec {\n  // paramKind specifies the kind of resources used to parameterize this policy.\n  // If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions.\n  // If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied.\n  // If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null.\n  // +optional\n  optional ParamKind paramKind = 1;\n\n  // matchConstraints specifies what resources this policy is designed to validate.\n  // The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints.\n  // However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API\n  // MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding.\n  // The CREATE, UPDATE and CONNECT operations are allowed.  The DELETE operation may not be matched.\n  // '*' matches CREATE, UPDATE and CONNECT.\n  // Required.\n  optional MatchResources matchConstraints = 2;\n\n  // variables contain definitions of variables that can be used in composition of other expressions.\n  // Each variable is defined as a named CEL expression.\n  // The variables defined here will be available under `variables` in other expressions of the policy\n  // except matchConditions because matchConditions are evaluated before the rest of the policy.\n  //\n  // The expression of a variable can refer to other variables defined earlier in the list but not those after.\n  // Thus, variables must be sorted by the order of first appearance and acyclic.\n  // +listType=atomic\n  // +optional\n  repeated Variable variables = 3;\n\n  // mutations contain operations to perform on matching objects.\n  // mutations may not be empty; a minimum of one mutation is required.\n  // mutations are evaluated in order, and are reinvoked according to\n  // the reinvocationPolicy.\n  // The mutations of a policy are invoked for each binding of this policy\n  // and reinvocation of mutations occurs on a per binding basis.\n  //\n  // +listType=atomic\n  // +optional\n  repeated Mutation mutations = 4;\n\n  // failurePolicy defines how to handle failures for the admission policy. Failures can\n  // occur from CEL expression parse errors, type check errors, runtime errors and invalid\n  // or mis-configured policy definitions or bindings.\n  //\n  // A policy is invalid if paramKind refers to a non-existent Kind.\n  // A binding is invalid if paramRef.name refers to a non-existent resource.\n  //\n  // failurePolicy does not define how validations that evaluate to false are handled.\n  //\n  // Allowed values are Ignore or Fail. Defaults to Fail.\n  // +optional\n  optional string failurePolicy = 5;\n\n  // matchConditions is a list of conditions that must be met for a request to be validated.\n  // Match conditions filter requests that have already been matched by the matchConstraints.\n  // An empty list of matchConditions matches all requests.\n  // There are a maximum of 64 match conditions allowed.\n  //\n  // If a parameter object is provided, it can be accessed via the `params` handle in the same\n  // manner as validation expressions.\n  //\n  // The exact matching logic is (in order):\n  //   1. If ANY matchCondition evaluates to FALSE, the policy is skipped.\n  //   2. If ALL matchConditions evaluate to TRUE, the policy is evaluated.\n  //   3. If any matchCondition evaluates to an error (but none are FALSE):\n  //      - If failurePolicy=Fail, reject the request\n  //      - If failurePolicy=Ignore, the policy is skipped\n  //\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=name\n  // +optional\n  repeated MatchCondition matchConditions = 6;\n\n  // reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding\n  // as part of a single admission evaluation.\n  // Allowed values are \"Never\" and \"IfNeeded\".\n  //\n  // Never: These mutations will not be called more than once per binding in a single admission evaluation.\n  //\n  // IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of\n  // order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies.  Mutations are only\n  // reinvoked when mutations change the object after this mutation is invoked.\n  // Required.\n  optional string reinvocationPolicy = 7;\n}\n\n// Mutation specifies the CEL expression which is used to apply the Mutation.\nmessage Mutation {\n  // patchType indicates the patch strategy used.\n  // Allowed values are \"ApplyConfiguration\" and \"JSONPatch\".\n  // Required.\n  //\n  // +unionDiscriminator\n  optional string patchType = 2;\n\n  // applyConfiguration defines the desired configuration values of an object.\n  // The configuration is applied to the admission object using\n  // [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff).\n  // A CEL expression is used to create apply configuration.\n  optional ApplyConfiguration applyConfiguration = 3;\n\n  // jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object.\n  // A CEL expression is used to create the JSON patch.\n  optional JSONPatch jsonPatch = 4;\n}\n\n// NamedRuleWithOperations is a tuple of Operations and Resources with ResourceNames.\n// +structType=atomic\nmessage NamedRuleWithOperations {\n  // ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.\n  // +listType=atomic\n  // +optional\n  repeated string resourceNames = 1;\n\n  // RuleWithOperations is a tuple of Operations and Resources.\n  optional .k8s.io.api.admissionregistration.v1.RuleWithOperations ruleWithOperations = 2;\n}\n\n// ParamKind is a tuple of Group Kind and Version.\n// +structType=atomic\nmessage ParamKind {\n  // APIVersion is the API group version the resources belong to.\n  // In format of \"group/version\".\n  // Required.\n  optional string apiVersion = 1;\n\n  // Kind is the API kind the resources belong to.\n  // Required.\n  optional string kind = 2;\n}\n\n// ParamRef describes how to locate the params to be used as input to\n// expressions of rules applied by a policy binding.\n// +structType=atomic\nmessage ParamRef {\n  // `name` is the name of the resource being referenced.\n  //\n  // `name` and `selector` are mutually exclusive properties. If one is set,\n  // the other must be unset.\n  //\n  // +optional\n  optional string name = 1;\n\n  // namespace is the namespace of the referenced resource. Allows limiting\n  // the search for params to a specific namespace. Applies to both `name` and\n  // `selector` fields.\n  //\n  // A per-namespace parameter may be used by specifying a namespace-scoped\n  // `paramKind` in the policy and leaving this field empty.\n  //\n  // - If `paramKind` is cluster-scoped, this field MUST be unset. Setting this\n  // field results in a configuration error.\n  //\n  // - If `paramKind` is namespace-scoped, the namespace of the object being\n  // evaluated for admission will be used when this field is left unset. Take\n  // care that if this is left empty the binding must not match any cluster-scoped\n  // resources, which will result in an error.\n  //\n  // +optional\n  optional string namespace = 2;\n\n  // selector can be used to match multiple param objects based on their labels.\n  // Supply selector: {} to match all resources of the ParamKind.\n  //\n  // If multiple params are found, they are all evaluated with the policy expressions\n  // and the results are ANDed together.\n  //\n  // One of `name` or `selector` must be set, but `name` and `selector` are\n  // mutually exclusive properties. If one is set, the other must be unset.\n  //\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 3;\n\n  // `parameterNotFoundAction` controls the behavior of the binding when the resource\n  // exists, and name or selector is valid, but there are no parameters\n  // matched by the binding. If the value is set to `Allow`, then no\n  // matched parameters will be treated as successful validation by the binding.\n  // If set to `Deny`, then no matched parameters will be subject to the\n  // `failurePolicy` of the policy.\n  //\n  // Allowed values are `Allow` or `Deny`\n  // Default to `Deny`\n  // +optional\n  optional string parameterNotFoundAction = 4;\n}\n\n// TypeChecking contains results of type checking the expressions in the\n// ValidatingAdmissionPolicy\nmessage TypeChecking {\n  // The type checking warnings for each expression.\n  // +optional\n  // +listType=atomic\n  repeated ExpressionWarning expressionWarnings = 1;\n}\n\n// ValidatingAdmissionPolicy describes the definition of an admission validation policy that accepts or rejects an object without changing it.\nmessage ValidatingAdmissionPolicy {\n  // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Specification of the desired behavior of the ValidatingAdmissionPolicy.\n  optional ValidatingAdmissionPolicySpec spec = 2;\n\n  // The status of the ValidatingAdmissionPolicy, including warnings that are useful to determine if the policy\n  // behaves in the expected way.\n  // Populated by the system.\n  // Read-only.\n  // +optional\n  optional ValidatingAdmissionPolicyStatus status = 3;\n}\n\n// ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources.\n// ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters.\n//\n// For a given admission request, each binding will cause its policy to be\n// evaluated N times, where N is 1 for policies/bindings that don't use\n// params, otherwise N is the number of parameters selected by the binding.\n//\n// The CEL expressions of a policy must have a computed CEL cost below the maximum\n// CEL budget. Each evaluation of the policy is given an independent CEL cost budget.\n// Adding/removing policies, bindings, or params can not affect whether a\n// given (policy, binding, param) combination is within its own CEL budget.\nmessage ValidatingAdmissionPolicyBinding {\n  // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Specification of the desired behavior of the ValidatingAdmissionPolicyBinding.\n  optional ValidatingAdmissionPolicyBindingSpec spec = 2;\n}\n\n// ValidatingAdmissionPolicyBindingList is a list of ValidatingAdmissionPolicyBinding.\nmessage ValidatingAdmissionPolicyBindingList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of PolicyBinding.\n  repeated ValidatingAdmissionPolicyBinding items = 2;\n}\n\n// ValidatingAdmissionPolicyBindingSpec is the specification of the ValidatingAdmissionPolicyBinding.\nmessage ValidatingAdmissionPolicyBindingSpec {\n  // PolicyName references a ValidatingAdmissionPolicy name which the ValidatingAdmissionPolicyBinding binds to.\n  // If the referenced resource does not exist, this binding is considered invalid and will be ignored\n  // Required.\n  optional string policyName = 1;\n\n  // paramRef specifies the parameter resource used to configure the admission control policy.\n  // It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy.\n  // If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied.\n  // If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param.\n  // +optional\n  optional ParamRef paramRef = 2;\n\n  // MatchResources declares what resources match this binding and will be validated by it.\n  // Note that this is intersected with the policy's matchConstraints, so only requests that are matched by the policy can be selected by this.\n  // If this is unset, all resources matched by the policy are validated by this binding\n  // When resourceRules is unset, it does not constrain resource matching. If a resource is matched by the other fields of this object, it will be validated.\n  // Note that this is differs from ValidatingAdmissionPolicy matchConstraints, where resourceRules are required.\n  // +optional\n  optional MatchResources matchResources = 3;\n\n  // validationActions declares how Validations of the referenced ValidatingAdmissionPolicy are enforced.\n  // If a validation evaluates to false it is always enforced according to these actions.\n  //\n  // Failures defined by the ValidatingAdmissionPolicy's FailurePolicy are enforced according\n  // to these actions only if the FailurePolicy is set to Fail, otherwise the failures are\n  // ignored. This includes compilation errors, runtime errors and misconfigurations of the policy.\n  //\n  // validationActions is declared as a set of action values. Order does\n  // not matter. validationActions may not contain duplicates of the same action.\n  //\n  // The supported actions values are:\n  //\n  // \"Deny\" specifies that a validation failure results in a denied request.\n  //\n  // \"Warn\" specifies that a validation failure is reported to the request client\n  // in HTTP Warning headers, with a warning code of 299. Warnings can be sent\n  // both for allowed or denied admission responses.\n  //\n  // \"Audit\" specifies that a validation failure is included in the published\n  // audit event for the request. The audit event will contain a\n  // `validation.policy.admission.k8s.io/validation_failure` audit annotation\n  // with a value containing the details of the validation failures, formatted as\n  // a JSON list of objects, each with the following fields:\n  // - message: The validation failure message string\n  // - policy: The resource name of the ValidatingAdmissionPolicy\n  // - binding: The resource name of the ValidatingAdmissionPolicyBinding\n  // - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy\n  // - validationActions: The enforcement actions enacted for the validation failure\n  // Example audit annotation:\n  // `\"validation.policy.admission.k8s.io/validation_failure\": \"[{\\\"message\\\": \\\"Invalid value\\\", {\\\"policy\\\": \\\"policy.example.com\\\", {\\\"binding\\\": \\\"policybinding.example.com\\\", {\\\"expressionIndex\\\": \\\"1\\\", {\\\"validationActions\\\": [\\\"Audit\\\"]}]\"`\n  //\n  // Clients should expect to handle additional values by ignoring\n  // any values not recognized.\n  //\n  // \"Deny\" and \"Warn\" may not be used together since this combination\n  // needlessly duplicates the validation failure both in the\n  // API response body and the HTTP warning headers.\n  //\n  // Required.\n  // +listType=set\n  repeated string validationActions = 4;\n}\n\n// ValidatingAdmissionPolicyList is a list of ValidatingAdmissionPolicy.\nmessage ValidatingAdmissionPolicyList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of ValidatingAdmissionPolicy.\n  repeated ValidatingAdmissionPolicy items = 2;\n}\n\n// ValidatingAdmissionPolicySpec is the specification of the desired behavior of the AdmissionPolicy.\nmessage ValidatingAdmissionPolicySpec {\n  // ParamKind specifies the kind of resources used to parameterize this policy.\n  // If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions.\n  // If ParamKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied.\n  // If paramKind is specified but paramRef is unset in ValidatingAdmissionPolicyBinding, the params variable will be null.\n  // +optional\n  optional ParamKind paramKind = 1;\n\n  // MatchConstraints specifies what resources this policy is designed to validate.\n  // The AdmissionPolicy cares about a request if it matches _all_ Constraints.\n  // However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API\n  // ValidatingAdmissionPolicy cannot match ValidatingAdmissionPolicy and ValidatingAdmissionPolicyBinding.\n  // Required.\n  optional MatchResources matchConstraints = 2;\n\n  // Validations contain CEL expressions which is used to apply the validation.\n  // Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is\n  // required.\n  // +listType=atomic\n  // +optional\n  repeated Validation validations = 3;\n\n  // failurePolicy defines how to handle failures for the admission policy. Failures can\n  // occur from CEL expression parse errors, type check errors, runtime errors and invalid\n  // or mis-configured policy definitions or bindings.\n  //\n  // A policy is invalid if spec.paramKind refers to a non-existent Kind.\n  // A binding is invalid if spec.paramRef.name refers to a non-existent resource.\n  //\n  // failurePolicy does not define how validations that evaluate to false are handled.\n  //\n  // When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions\n  // define how failures are enforced.\n  //\n  // Allowed values are Ignore or Fail. Defaults to Fail.\n  // +optional\n  optional string failurePolicy = 4;\n\n  // auditAnnotations contains CEL expressions which are used to produce audit\n  // annotations for the audit event of the API request.\n  // validations and auditAnnotations may not both be empty; a least one of validations or auditAnnotations is\n  // required.\n  // +listType=atomic\n  // +optional\n  repeated AuditAnnotation auditAnnotations = 5;\n\n  // MatchConditions is a list of conditions that must be met for a request to be validated.\n  // Match conditions filter requests that have already been matched by the rules,\n  // namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests.\n  // There are a maximum of 64 match conditions allowed.\n  //\n  // If a parameter object is provided, it can be accessed via the `params` handle in the same\n  // manner as validation expressions.\n  //\n  // The exact matching logic is (in order):\n  //   1. If ANY matchCondition evaluates to FALSE, the policy is skipped.\n  //   2. If ALL matchConditions evaluate to TRUE, the policy is evaluated.\n  //   3. If any matchCondition evaluates to an error (but none are FALSE):\n  //      - If failurePolicy=Fail, reject the request\n  //      - If failurePolicy=Ignore, the policy is skipped\n  //\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=name\n  // +optional\n  repeated MatchCondition matchConditions = 6;\n\n  // Variables contain definitions of variables that can be used in composition of other expressions.\n  // Each variable is defined as a named CEL expression.\n  // The variables defined here will be available under `variables` in other expressions of the policy\n  // except MatchConditions because MatchConditions are evaluated before the rest of the policy.\n  //\n  // The expression of a variable can refer to other variables defined earlier in the list but not those after.\n  // Thus, Variables must be sorted by the order of first appearance and acyclic.\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=name\n  // +optional\n  repeated Variable variables = 7;\n}\n\n// ValidatingAdmissionPolicyStatus represents the status of a ValidatingAdmissionPolicy.\nmessage ValidatingAdmissionPolicyStatus {\n  // The generation observed by the controller.\n  // +optional\n  optional int64 observedGeneration = 1;\n\n  // The results of type checking for each expression.\n  // Presence of this field indicates the completion of the type checking.\n  // +optional\n  optional TypeChecking typeChecking = 2;\n\n  // The conditions represent the latest available observations of a policy's current state.\n  // +optional\n  // +listType=map\n  // +listMapKey=type\n  repeated .k8s.io.apimachinery.pkg.apis.meta.v1.Condition conditions = 3;\n}\n\n// Validation specifies the CEL expression which is used to apply the validation.\nmessage Validation {\n  // Expression represents the expression which will be evaluated by CEL.\n  // ref: https://github.com/google/cel-spec\n  // CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables:\n  //\n  // - 'object' - The object from the incoming request. The value is null for DELETE requests.\n  // - 'oldObject' - The existing object. The value is null for CREATE requests.\n  // - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)).\n  // - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind.\n  // - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources.\n  // - 'variables' - Map of composited variables, from its name to its lazily evaluated value.\n  //   For example, a variable named 'foo' can be accessed as 'variables.foo'.\n  // - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n  //   See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n  // - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n  //   request resource.\n  //\n  // The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the\n  // object. No other metadata properties are accessible.\n  //\n  // Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible.\n  // Accessible property names are escaped according to the following rules when accessed in the expression:\n  // - '__' escapes to '__underscores__'\n  // - '.' escapes to '__dot__'\n  // - '-' escapes to '__dash__'\n  // - '/' escapes to '__slash__'\n  // - Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are:\n  // \t  \"true\", \"false\", \"null\", \"in\", \"as\", \"break\", \"const\", \"continue\", \"else\", \"for\", \"function\", \"if\",\n  // \t  \"import\", \"let\", \"loop\", \"package\", \"namespace\", \"return\".\n  // Examples:\n  //   - Expression accessing a property named \"namespace\": {\"Expression\": \"object.__namespace__ > 0\"}\n  //   - Expression accessing a property named \"x-prop\": {\"Expression\": \"object.x__dash__prop > 0\"}\n  //   - Expression accessing a property named \"redact__d\": {\"Expression\": \"object.redact__underscores__d > 0\"}\n  //\n  // Equality on arrays with list type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1].\n  // Concatenation on arrays with x-kubernetes-list-type use the semantics of the list type:\n  //   - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and\n  //     non-intersecting elements in `Y` are appended, retaining their partial order.\n  //   - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values\n  //     are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with\n  //     non-intersecting keys are appended, retaining their partial order.\n  // Required.\n  optional string Expression = 1;\n\n  // Message represents the message displayed when validation fails. The message is required if the Expression contains\n  // line breaks. The message must not contain line breaks.\n  // If unset, the message is \"failed rule: {Rule}\".\n  // e.g. \"must be a URL with the host matching spec.host\"\n  // If the Expression contains line breaks. Message is required.\n  // The message must not contain line breaks.\n  // If unset, the message is \"failed Expression: {Expression}\".\n  // +optional\n  optional string message = 2;\n\n  // Reason represents a machine-readable description of why this validation failed.\n  // If this is the first validation in the list to fail, this reason, as well as the\n  // corresponding HTTP response code, are used in the\n  // HTTP response to the client.\n  // The currently supported reasons are: \"Unauthorized\", \"Forbidden\", \"Invalid\", \"RequestEntityTooLarge\".\n  // If not set, StatusReasonInvalid is used in the response to the client.\n  // +optional\n  optional string reason = 3;\n\n  // messageExpression declares a CEL expression that evaluates to the validation failure message that is returned when this rule fails.\n  // Since messageExpression is used as a failure message, it must evaluate to a string.\n  // If both message and messageExpression are present on a validation, then messageExpression will be used if validation fails.\n  // If messageExpression results in a runtime error, the runtime error is logged, and the validation failure message is produced\n  // as if the messageExpression field were unset. If messageExpression evaluates to an empty string, a string with only spaces, or a string\n  // that contains line breaks, then the validation failure message will also be produced as if the messageExpression field were unset, and\n  // the fact that messageExpression produced an empty string/string with only spaces/string with line breaks will be logged.\n  // messageExpression has access to all the same variables as the `expression` except for 'authorizer' and 'authorizer.requestResource'.\n  // Example:\n  // \"object.x must be less than max (\"+string(params.max)+\")\"\n  // +optional\n  optional string messageExpression = 4;\n}\n\n// Variable is the definition of a variable that is used for composition.\nmessage Variable {\n  // Name is the name of the variable. The name must be a valid CEL identifier and unique among all variables.\n  // The variable can be accessed in other expressions through `variables`\n  // For example, if name is \"foo\", the variable will be available as `variables.foo`\n  optional string Name = 1;\n\n  // Expression is the expression that will be evaluated as the value of the variable.\n  // The CEL expression has access to the same identifiers as the CEL expressions in Validation.\n  optional string Expression = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1alpha1/register.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name for this API.\nconst GroupName = \"admissionregistration.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1alpha1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\n// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\nvar (\n\t// SchemeBuilder points to a list of functions added to Scheme.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\t// AddToScheme is a common registration function for mapping packaged scoped group & version keys to a scheme.\n\tAddToScheme = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&ValidatingAdmissionPolicy{},\n\t\t&ValidatingAdmissionPolicyList{},\n\t\t&ValidatingAdmissionPolicyBinding{},\n\t\t&ValidatingAdmissionPolicyBindingList{},\n\t\t&MutatingAdmissionPolicy{},\n\t\t&MutatingAdmissionPolicyList{},\n\t\t&MutatingAdmissionPolicyBinding{},\n\t\t&MutatingAdmissionPolicyBindingList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1alpha1/types.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nimport (\n\tv1 \"k8s.io/api/admissionregistration/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// Rule is a tuple of APIGroups, APIVersion, and Resources.It is recommended\n// to make sure that all the tuple expansions are valid.\ntype Rule = v1.Rule\n\n// ScopeType specifies a scope for a Rule.\n// +enum\ntype ScopeType = v1.ScopeType\n\nconst (\n\t// ClusterScope means that scope is limited to cluster-scoped objects.\n\t// Namespace objects are cluster-scoped.\n\tClusterScope ScopeType = v1.ClusterScope\n\t// NamespacedScope means that scope is limited to namespaced objects.\n\tNamespacedScope ScopeType = v1.NamespacedScope\n\t// AllScopes means that all scopes are included.\n\tAllScopes ScopeType = v1.AllScopes\n)\n\n// ParameterNotFoundActionType specifies a failure policy that defines how a binding\n// is evaluated when the param referred by its perNamespaceParamRef is not found.\n// +enum\ntype ParameterNotFoundActionType string\n\nconst (\n\t// Ignore means that an error finding params for a binding is ignored\n\tAllowAction ParameterNotFoundActionType = \"Allow\"\n\t// Fail means that an error finding params for a binding is ignored\n\tDenyAction ParameterNotFoundActionType = \"Deny\"\n)\n\n// FailurePolicyType specifies a failure policy that defines how unrecognized errors from the admission endpoint are handled.\n// +enum\ntype FailurePolicyType string\n\nconst (\n\t// Ignore means that an error calling the webhook is ignored.\n\tIgnore FailurePolicyType = \"Ignore\"\n\t// Fail means that an error calling the webhook causes the admission to fail.\n\tFail FailurePolicyType = \"Fail\"\n)\n\n// MatchPolicyType specifies the type of match policy.\n// +enum\ntype MatchPolicyType string\n\nconst (\n\t// Exact means requests should only be sent to the webhook if they exactly match a given rule.\n\tExact MatchPolicyType = \"Exact\"\n\t// Equivalent means requests should be sent to the webhook if they modify a resource listed in rules via another API group or version.\n\tEquivalent MatchPolicyType = \"Equivalent\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.26\n\n// ValidatingAdmissionPolicy describes the definition of an admission validation policy that accepts or rejects an object without changing it.\ntype ValidatingAdmissionPolicy struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// Specification of the desired behavior of the ValidatingAdmissionPolicy.\n\tSpec ValidatingAdmissionPolicySpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\t// The status of the ValidatingAdmissionPolicy, including warnings that are useful to determine if the policy\n\t// behaves in the expected way.\n\t// Populated by the system.\n\t// Read-only.\n\t// +optional\n\tStatus ValidatingAdmissionPolicyStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// ValidatingAdmissionPolicyStatus represents the status of a ValidatingAdmissionPolicy.\ntype ValidatingAdmissionPolicyStatus struct {\n\t// The generation observed by the controller.\n\t// +optional\n\tObservedGeneration int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,1,opt,name=observedGeneration\"`\n\t// The results of type checking for each expression.\n\t// Presence of this field indicates the completion of the type checking.\n\t// +optional\n\tTypeChecking *TypeChecking `json:\"typeChecking,omitempty\" protobuf:\"bytes,2,opt,name=typeChecking\"`\n\t// The conditions represent the latest available observations of a policy's current state.\n\t// +optional\n\t// +listType=map\n\t// +listMapKey=type\n\tConditions []metav1.Condition `json:\"conditions,omitempty\" protobuf:\"bytes,3,rep,name=conditions\"`\n}\n\n// TypeChecking contains results of type checking the expressions in the\n// ValidatingAdmissionPolicy\ntype TypeChecking struct {\n\t// The type checking warnings for each expression.\n\t// +optional\n\t// +listType=atomic\n\tExpressionWarnings []ExpressionWarning `json:\"expressionWarnings,omitempty\" protobuf:\"bytes,1,rep,name=expressionWarnings\"`\n}\n\n// ExpressionWarning is a warning information that targets a specific expression.\ntype ExpressionWarning struct {\n\t// The path to the field that refers the expression.\n\t// For example, the reference to the expression of the first item of\n\t// validations is \"spec.validations[0].expression\"\n\tFieldRef string `json:\"fieldRef\" protobuf:\"bytes,2,opt,name=fieldRef\"`\n\t// The content of type checking information in a human-readable form.\n\t// Each line of the warning contains the type that the expression is checked\n\t// against, followed by the type check error from the compiler.\n\tWarning string `json:\"warning\" protobuf:\"bytes,3,opt,name=warning\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.26\n\n// ValidatingAdmissionPolicyList is a list of ValidatingAdmissionPolicy.\ntype ValidatingAdmissionPolicyList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// List of ValidatingAdmissionPolicy.\n\tItems []ValidatingAdmissionPolicy `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// ValidatingAdmissionPolicySpec is the specification of the desired behavior of the AdmissionPolicy.\ntype ValidatingAdmissionPolicySpec struct {\n\t// ParamKind specifies the kind of resources used to parameterize this policy.\n\t// If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions.\n\t// If ParamKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied.\n\t// If paramKind is specified but paramRef is unset in ValidatingAdmissionPolicyBinding, the params variable will be null.\n\t// +optional\n\tParamKind *ParamKind `json:\"paramKind,omitempty\" protobuf:\"bytes,1,rep,name=paramKind\"`\n\n\t// MatchConstraints specifies what resources this policy is designed to validate.\n\t// The AdmissionPolicy cares about a request if it matches _all_ Constraints.\n\t// However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API\n\t// ValidatingAdmissionPolicy cannot match ValidatingAdmissionPolicy and ValidatingAdmissionPolicyBinding.\n\t// Required.\n\tMatchConstraints *MatchResources `json:\"matchConstraints,omitempty\" protobuf:\"bytes,2,rep,name=matchConstraints\"`\n\n\t// Validations contain CEL expressions which is used to apply the validation.\n\t// Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is\n\t// required.\n\t// +listType=atomic\n\t// +optional\n\tValidations []Validation `json:\"validations,omitempty\" protobuf:\"bytes,3,rep,name=validations\"`\n\n\t// failurePolicy defines how to handle failures for the admission policy. Failures can\n\t// occur from CEL expression parse errors, type check errors, runtime errors and invalid\n\t// or mis-configured policy definitions or bindings.\n\t//\n\t// A policy is invalid if spec.paramKind refers to a non-existent Kind.\n\t// A binding is invalid if spec.paramRef.name refers to a non-existent resource.\n\t//\n\t// failurePolicy does not define how validations that evaluate to false are handled.\n\t//\n\t// When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions\n\t// define how failures are enforced.\n\t//\n\t// Allowed values are Ignore or Fail. Defaults to Fail.\n\t// +optional\n\tFailurePolicy *FailurePolicyType `json:\"failurePolicy,omitempty\" protobuf:\"bytes,4,opt,name=failurePolicy,casttype=FailurePolicyType\"`\n\n\t// auditAnnotations contains CEL expressions which are used to produce audit\n\t// annotations for the audit event of the API request.\n\t// validations and auditAnnotations may not both be empty; a least one of validations or auditAnnotations is\n\t// required.\n\t// +listType=atomic\n\t// +optional\n\tAuditAnnotations []AuditAnnotation `json:\"auditAnnotations,omitempty\" protobuf:\"bytes,5,rep,name=auditAnnotations\"`\n\n\t// MatchConditions is a list of conditions that must be met for a request to be validated.\n\t// Match conditions filter requests that have already been matched by the rules,\n\t// namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests.\n\t// There are a maximum of 64 match conditions allowed.\n\t//\n\t// If a parameter object is provided, it can be accessed via the `params` handle in the same\n\t// manner as validation expressions.\n\t//\n\t// The exact matching logic is (in order):\n\t//   1. If ANY matchCondition evaluates to FALSE, the policy is skipped.\n\t//   2. If ALL matchConditions evaluate to TRUE, the policy is evaluated.\n\t//   3. If any matchCondition evaluates to an error (but none are FALSE):\n\t//      - If failurePolicy=Fail, reject the request\n\t//      - If failurePolicy=Ignore, the policy is skipped\n\t//\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=name\n\t// +optional\n\tMatchConditions []MatchCondition `json:\"matchConditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,6,rep,name=matchConditions\"`\n\n\t// Variables contain definitions of variables that can be used in composition of other expressions.\n\t// Each variable is defined as a named CEL expression.\n\t// The variables defined here will be available under `variables` in other expressions of the policy\n\t// except MatchConditions because MatchConditions are evaluated before the rest of the policy.\n\t//\n\t// The expression of a variable can refer to other variables defined earlier in the list but not those after.\n\t// Thus, Variables must be sorted by the order of first appearance and acyclic.\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=name\n\t// +optional\n\tVariables []Variable `json:\"variables,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,7,rep,name=variables\"`\n}\n\ntype MatchCondition v1.MatchCondition\n\n// ParamKind is a tuple of Group Kind and Version.\n// +structType=atomic\ntype ParamKind struct {\n\t// APIVersion is the API group version the resources belong to.\n\t// In format of \"group/version\".\n\t// Required.\n\tAPIVersion string `json:\"apiVersion,omitempty\" protobuf:\"bytes,1,rep,name=apiVersion\"`\n\n\t// Kind is the API kind the resources belong to.\n\t// Required.\n\tKind string `json:\"kind,omitempty\" protobuf:\"bytes,2,rep,name=kind\"`\n}\n\n// Validation specifies the CEL expression which is used to apply the validation.\ntype Validation struct {\n\t// Expression represents the expression which will be evaluated by CEL.\n\t// ref: https://github.com/google/cel-spec\n\t// CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables:\n\t//\n\t// - 'object' - The object from the incoming request. The value is null for DELETE requests.\n\t// - 'oldObject' - The existing object. The value is null for CREATE requests.\n\t// - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)).\n\t// - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind.\n\t// - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources.\n\t// - 'variables' - Map of composited variables, from its name to its lazily evaluated value.\n\t//   For example, a variable named 'foo' can be accessed as 'variables.foo'.\n\t// - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n\t//   See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n\t// - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n\t//   request resource.\n\t//\n\t// The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the\n\t// object. No other metadata properties are accessible.\n\t//\n\t// Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible.\n\t// Accessible property names are escaped according to the following rules when accessed in the expression:\n\t// - '__' escapes to '__underscores__'\n\t// - '.' escapes to '__dot__'\n\t// - '-' escapes to '__dash__'\n\t// - '/' escapes to '__slash__'\n\t// - Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are:\n\t//\t  \"true\", \"false\", \"null\", \"in\", \"as\", \"break\", \"const\", \"continue\", \"else\", \"for\", \"function\", \"if\",\n\t//\t  \"import\", \"let\", \"loop\", \"package\", \"namespace\", \"return\".\n\t// Examples:\n\t//   - Expression accessing a property named \"namespace\": {\"Expression\": \"object.__namespace__ > 0\"}\n\t//   - Expression accessing a property named \"x-prop\": {\"Expression\": \"object.x__dash__prop > 0\"}\n\t//   - Expression accessing a property named \"redact__d\": {\"Expression\": \"object.redact__underscores__d > 0\"}\n\t//\n\t// Equality on arrays with list type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1].\n\t// Concatenation on arrays with x-kubernetes-list-type use the semantics of the list type:\n\t//   - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and\n\t//     non-intersecting elements in `Y` are appended, retaining their partial order.\n\t//   - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values\n\t//     are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with\n\t//     non-intersecting keys are appended, retaining their partial order.\n\t// Required.\n\tExpression string `json:\"expression\" protobuf:\"bytes,1,opt,name=Expression\"`\n\t// Message represents the message displayed when validation fails. The message is required if the Expression contains\n\t// line breaks. The message must not contain line breaks.\n\t// If unset, the message is \"failed rule: {Rule}\".\n\t// e.g. \"must be a URL with the host matching spec.host\"\n\t// If the Expression contains line breaks. Message is required.\n\t// The message must not contain line breaks.\n\t// If unset, the message is \"failed Expression: {Expression}\".\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,2,opt,name=message\"`\n\t// Reason represents a machine-readable description of why this validation failed.\n\t// If this is the first validation in the list to fail, this reason, as well as the\n\t// corresponding HTTP response code, are used in the\n\t// HTTP response to the client.\n\t// The currently supported reasons are: \"Unauthorized\", \"Forbidden\", \"Invalid\", \"RequestEntityTooLarge\".\n\t// If not set, StatusReasonInvalid is used in the response to the client.\n\t// +optional\n\tReason *metav1.StatusReason `json:\"reason,omitempty\" protobuf:\"bytes,3,opt,name=reason\"`\n\t// messageExpression declares a CEL expression that evaluates to the validation failure message that is returned when this rule fails.\n\t// Since messageExpression is used as a failure message, it must evaluate to a string.\n\t// If both message and messageExpression are present on a validation, then messageExpression will be used if validation fails.\n\t// If messageExpression results in a runtime error, the runtime error is logged, and the validation failure message is produced\n\t// as if the messageExpression field were unset. If messageExpression evaluates to an empty string, a string with only spaces, or a string\n\t// that contains line breaks, then the validation failure message will also be produced as if the messageExpression field were unset, and\n\t// the fact that messageExpression produced an empty string/string with only spaces/string with line breaks will be logged.\n\t// messageExpression has access to all the same variables as the `expression` except for 'authorizer' and 'authorizer.requestResource'.\n\t// Example:\n\t// \"object.x must be less than max (\"+string(params.max)+\")\"\n\t// +optional\n\tMessageExpression string `json:\"messageExpression,omitempty\" protobuf:\"bytes,4,opt,name=messageExpression\"`\n}\n\n// Variable is the definition of a variable that is used for composition.\ntype Variable struct {\n\t// Name is the name of the variable. The name must be a valid CEL identifier and unique among all variables.\n\t// The variable can be accessed in other expressions through `variables`\n\t// For example, if name is \"foo\", the variable will be available as `variables.foo`\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=Name\"`\n\n\t// Expression is the expression that will be evaluated as the value of the variable.\n\t// The CEL expression has access to the same identifiers as the CEL expressions in Validation.\n\tExpression string `json:\"expression\" protobuf:\"bytes,2,opt,name=Expression\"`\n}\n\n// AuditAnnotation describes how to produce an audit annotation for an API request.\ntype AuditAnnotation struct {\n\t// key specifies the audit annotation key. The audit annotation keys of\n\t// a ValidatingAdmissionPolicy must be unique. The key must be a qualified\n\t// name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length.\n\t//\n\t// The key is combined with the resource name of the\n\t// ValidatingAdmissionPolicy to construct an audit annotation key:\n\t// \"{ValidatingAdmissionPolicy name}/{key}\".\n\t//\n\t// If an admission webhook uses the same resource name as this ValidatingAdmissionPolicy\n\t// and the same audit annotation key, the annotation key will be identical.\n\t// In this case, the first annotation written with the key will be included\n\t// in the audit event and all subsequent annotations with the same key\n\t// will be discarded.\n\t//\n\t// Required.\n\tKey string `json:\"key\" protobuf:\"bytes,1,opt,name=key\"`\n\n\t// valueExpression represents the expression which is evaluated by CEL to\n\t// produce an audit annotation value. The expression must evaluate to either\n\t// a string or null value. If the expression evaluates to a string, the\n\t// audit annotation is included with the string value. If the expression\n\t// evaluates to null or empty string the audit annotation will be omitted.\n\t// The valueExpression may be no longer than 5kb in length.\n\t// If the result of the valueExpression is more than 10kb in length, it\n\t// will be truncated to 10kb.\n\t//\n\t// If multiple ValidatingAdmissionPolicyBinding resources match an\n\t// API request, then the valueExpression will be evaluated for\n\t// each binding. All unique values produced by the valueExpressions\n\t// will be joined together in a comma-separated list.\n\t//\n\t// Required.\n\tValueExpression string `json:\"valueExpression\" protobuf:\"bytes,2,opt,name=valueExpression\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.26\n\n// ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources.\n// ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters.\n//\n// For a given admission request, each binding will cause its policy to be\n// evaluated N times, where N is 1 for policies/bindings that don't use\n// params, otherwise N is the number of parameters selected by the binding.\n//\n// The CEL expressions of a policy must have a computed CEL cost below the maximum\n// CEL budget. Each evaluation of the policy is given an independent CEL cost budget.\n// Adding/removing policies, bindings, or params can not affect whether a\n// given (policy, binding, param) combination is within its own CEL budget.\ntype ValidatingAdmissionPolicyBinding struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// Specification of the desired behavior of the ValidatingAdmissionPolicyBinding.\n\tSpec ValidatingAdmissionPolicyBindingSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.26\n\n// ValidatingAdmissionPolicyBindingList is a list of ValidatingAdmissionPolicyBinding.\ntype ValidatingAdmissionPolicyBindingList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// List of PolicyBinding.\n\tItems []ValidatingAdmissionPolicyBinding `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// ValidatingAdmissionPolicyBindingSpec is the specification of the ValidatingAdmissionPolicyBinding.\ntype ValidatingAdmissionPolicyBindingSpec struct {\n\t// PolicyName references a ValidatingAdmissionPolicy name which the ValidatingAdmissionPolicyBinding binds to.\n\t// If the referenced resource does not exist, this binding is considered invalid and will be ignored\n\t// Required.\n\tPolicyName string `json:\"policyName,omitempty\" protobuf:\"bytes,1,rep,name=policyName\"`\n\n\t// paramRef specifies the parameter resource used to configure the admission control policy.\n\t// It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy.\n\t// If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied.\n\t// If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param.\n\t// +optional\n\tParamRef *ParamRef `json:\"paramRef,omitempty\" protobuf:\"bytes,2,rep,name=paramRef\"`\n\n\t// MatchResources declares what resources match this binding and will be validated by it.\n\t// Note that this is intersected with the policy's matchConstraints, so only requests that are matched by the policy can be selected by this.\n\t// If this is unset, all resources matched by the policy are validated by this binding\n\t// When resourceRules is unset, it does not constrain resource matching. If a resource is matched by the other fields of this object, it will be validated.\n\t// Note that this is differs from ValidatingAdmissionPolicy matchConstraints, where resourceRules are required.\n\t// +optional\n\tMatchResources *MatchResources `json:\"matchResources,omitempty\" protobuf:\"bytes,3,rep,name=matchResources\"`\n\n\t// validationActions declares how Validations of the referenced ValidatingAdmissionPolicy are enforced.\n\t// If a validation evaluates to false it is always enforced according to these actions.\n\t//\n\t// Failures defined by the ValidatingAdmissionPolicy's FailurePolicy are enforced according\n\t// to these actions only if the FailurePolicy is set to Fail, otherwise the failures are\n\t// ignored. This includes compilation errors, runtime errors and misconfigurations of the policy.\n\t//\n\t// validationActions is declared as a set of action values. Order does\n\t// not matter. validationActions may not contain duplicates of the same action.\n\t//\n\t// The supported actions values are:\n\t//\n\t// \"Deny\" specifies that a validation failure results in a denied request.\n\t//\n\t// \"Warn\" specifies that a validation failure is reported to the request client\n\t// in HTTP Warning headers, with a warning code of 299. Warnings can be sent\n\t// both for allowed or denied admission responses.\n\t//\n\t// \"Audit\" specifies that a validation failure is included in the published\n\t// audit event for the request. The audit event will contain a\n\t// `validation.policy.admission.k8s.io/validation_failure` audit annotation\n\t// with a value containing the details of the validation failures, formatted as\n\t// a JSON list of objects, each with the following fields:\n\t// - message: The validation failure message string\n\t// - policy: The resource name of the ValidatingAdmissionPolicy\n\t// - binding: The resource name of the ValidatingAdmissionPolicyBinding\n\t// - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy\n\t// - validationActions: The enforcement actions enacted for the validation failure\n\t// Example audit annotation:\n\t// `\"validation.policy.admission.k8s.io/validation_failure\": \"[{\\\"message\\\": \\\"Invalid value\\\", {\\\"policy\\\": \\\"policy.example.com\\\", {\\\"binding\\\": \\\"policybinding.example.com\\\", {\\\"expressionIndex\\\": \\\"1\\\", {\\\"validationActions\\\": [\\\"Audit\\\"]}]\"`\n\t//\n\t// Clients should expect to handle additional values by ignoring\n\t// any values not recognized.\n\t//\n\t// \"Deny\" and \"Warn\" may not be used together since this combination\n\t// needlessly duplicates the validation failure both in the\n\t// API response body and the HTTP warning headers.\n\t//\n\t// Required.\n\t// +listType=set\n\tValidationActions []ValidationAction `json:\"validationActions,omitempty\" protobuf:\"bytes,4,rep,name=validationActions\"`\n}\n\n// ParamRef describes how to locate the params to be used as input to\n// expressions of rules applied by a policy binding.\n// +structType=atomic\ntype ParamRef struct {\n\t// `name` is the name of the resource being referenced.\n\t//\n\t// `name` and `selector` are mutually exclusive properties. If one is set,\n\t// the other must be unset.\n\t//\n\t// +optional\n\tName string `json:\"name,omitempty\" protobuf:\"bytes,1,rep,name=name\"`\n\n\t// namespace is the namespace of the referenced resource. Allows limiting\n\t// the search for params to a specific namespace. Applies to both `name` and\n\t// `selector` fields.\n\t//\n\t// A per-namespace parameter may be used by specifying a namespace-scoped\n\t// `paramKind` in the policy and leaving this field empty.\n\t//\n\t// - If `paramKind` is cluster-scoped, this field MUST be unset. Setting this\n\t// field results in a configuration error.\n\t//\n\t// - If `paramKind` is namespace-scoped, the namespace of the object being\n\t// evaluated for admission will be used when this field is left unset. Take\n\t// care that if this is left empty the binding must not match any cluster-scoped\n\t// resources, which will result in an error.\n\t//\n\t// +optional\n\tNamespace string `json:\"namespace,omitempty\" protobuf:\"bytes,2,rep,name=namespace\"`\n\n\t// selector can be used to match multiple param objects based on their labels.\n\t// Supply selector: {} to match all resources of the ParamKind.\n\t//\n\t// If multiple params are found, they are all evaluated with the policy expressions\n\t// and the results are ANDed together.\n\t//\n\t// One of `name` or `selector` must be set, but `name` and `selector` are\n\t// mutually exclusive properties. If one is set, the other must be unset.\n\t//\n\t// +optional\n\tSelector *metav1.LabelSelector `json:\"selector,omitempty\" protobuf:\"bytes,3,rep,name=selector\"`\n\n\t// `parameterNotFoundAction` controls the behavior of the binding when the resource\n\t// exists, and name or selector is valid, but there are no parameters\n\t// matched by the binding. If the value is set to `Allow`, then no\n\t// matched parameters will be treated as successful validation by the binding.\n\t// If set to `Deny`, then no matched parameters will be subject to the\n\t// `failurePolicy` of the policy.\n\t//\n\t// Allowed values are `Allow` or `Deny`\n\t// Default to `Deny`\n\t// +optional\n\tParameterNotFoundAction *ParameterNotFoundActionType `json:\"parameterNotFoundAction,omitempty\" protobuf:\"bytes,4,rep,name=parameterNotFoundAction\"`\n}\n\n// MatchResources decides whether to run the admission control policy on an object based\n// on whether it meets the match criteria.\n// The exclude rules take precedence over include rules (if a resource matches both, it is excluded)\n// +structType=atomic\ntype MatchResources struct {\n\t// NamespaceSelector decides whether to run the admission control policy on an object based\n\t// on whether the namespace for that object matches the selector. If the\n\t// object itself is a namespace, the matching is performed on\n\t// object.metadata.labels. If the object is another cluster scoped resource,\n\t// it never skips the policy.\n\t//\n\t// For example, to run the webhook on any objects whose namespace is not\n\t// associated with \"runlevel\" of \"0\" or \"1\";  you will set the selector as\n\t// follows:\n\t// \"namespaceSelector\": {\n\t//   \"matchExpressions\": [\n\t//     {\n\t//       \"key\": \"runlevel\",\n\t//       \"operator\": \"NotIn\",\n\t//       \"values\": [\n\t//         \"0\",\n\t//         \"1\"\n\t//       ]\n\t//     }\n\t//   ]\n\t// }\n\t//\n\t// If instead you want to only run the policy on any objects whose\n\t// namespace is associated with the \"environment\" of \"prod\" or \"staging\";\n\t// you will set the selector as follows:\n\t// \"namespaceSelector\": {\n\t//   \"matchExpressions\": [\n\t//     {\n\t//       \"key\": \"environment\",\n\t//       \"operator\": \"In\",\n\t//       \"values\": [\n\t//         \"prod\",\n\t//         \"staging\"\n\t//       ]\n\t//     }\n\t//   ]\n\t// }\n\t//\n\t// See\n\t// https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\n\t// for more examples of label selectors.\n\t//\n\t// Default to the empty LabelSelector, which matches everything.\n\t// +optional\n\tNamespaceSelector *metav1.LabelSelector `json:\"namespaceSelector,omitempty\" protobuf:\"bytes,1,opt,name=namespaceSelector\"`\n\t// ObjectSelector decides whether to run the validation based on if the\n\t// object has matching labels. objectSelector is evaluated against both\n\t// the oldObject and newObject that would be sent to the cel validation, and\n\t// is considered to match if either object matches the selector. A null\n\t// object (oldObject in the case of create, or newObject in the case of\n\t// delete) or an object that cannot have labels (like a\n\t// DeploymentRollback or a PodProxyOptions object) is not considered to\n\t// match.\n\t// Use the object selector only if the webhook is opt-in, because end\n\t// users may skip the admission webhook by setting the labels.\n\t// Default to the empty LabelSelector, which matches everything.\n\t// +optional\n\tObjectSelector *metav1.LabelSelector `json:\"objectSelector,omitempty\" protobuf:\"bytes,2,opt,name=objectSelector\"`\n\t// ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches.\n\t// The policy cares about an operation if it matches _any_ Rule.\n\t// +listType=atomic\n\t// +optional\n\tResourceRules []NamedRuleWithOperations `json:\"resourceRules,omitempty\" protobuf:\"bytes,3,rep,name=resourceRules\"`\n\t// ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about.\n\t// The exclude rules take precedence over include rules (if a resource matches both, it is excluded)\n\t// +listType=atomic\n\t// +optional\n\tExcludeResourceRules []NamedRuleWithOperations `json:\"excludeResourceRules,omitempty\" protobuf:\"bytes,4,rep,name=excludeResourceRules\"`\n\t// matchPolicy defines how the \"MatchResources\" list is used to match incoming requests.\n\t// Allowed values are \"Exact\" or \"Equivalent\".\n\t//\n\t// - Exact: match a request only if it exactly matches a specified rule.\n\t// For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n\t// but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n\t// a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy.\n\t//\n\t// - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version.\n\t// For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n\t// and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n\t// a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy.\n\t//\n\t// Defaults to \"Equivalent\"\n\t// +optional\n\tMatchPolicy *MatchPolicyType `json:\"matchPolicy,omitempty\" protobuf:\"bytes,7,opt,name=matchPolicy,casttype=MatchPolicyType\"`\n}\n\n// ValidationAction specifies a policy enforcement action.\n// +enum\ntype ValidationAction string\n\nconst (\n\t// Deny specifies that a validation failure results in a denied request.\n\tDeny ValidationAction = \"Deny\"\n\t// Warn specifies that a validation failure is reported to the request client\n\t// in HTTP Warning headers, with a warning code of 299. Warnings can be sent\n\t// both for allowed or denied admission responses.\n\tWarn ValidationAction = \"Warn\"\n\t// Audit specifies that a validation failure is included in the published\n\t// audit event for the request. The audit event will contain a\n\t// `validation.policy.admission.k8s.io/validation_failure` audit annotation\n\t// with a value containing the details of the validation failure.\n\tAudit ValidationAction = \"Audit\"\n)\n\n// NamedRuleWithOperations is a tuple of Operations and Resources with ResourceNames.\n// +structType=atomic\ntype NamedRuleWithOperations struct {\n\t// ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.\n\t// +listType=atomic\n\t// +optional\n\tResourceNames []string `json:\"resourceNames,omitempty\" protobuf:\"bytes,1,rep,name=resourceNames\"`\n\t// RuleWithOperations is a tuple of Operations and Resources.\n\tRuleWithOperations `json:\",inline\" protobuf:\"bytes,2,opt,name=ruleWithOperations\"`\n}\n\n// RuleWithOperations is a tuple of Operations and Resources. It is recommended to make\n// sure that all the tuple expansions are valid.\ntype RuleWithOperations = v1.RuleWithOperations\n\n// OperationType specifies an operation for a request.\n// +enum\ntype OperationType = v1.OperationType\n\n// The constants should be kept in sync with those defined in k8s.io/kubernetes/pkg/admission/interface.go.\nconst (\n\tOperationAll OperationType = v1.OperationAll\n\tCreate       OperationType = v1.Create\n\tUpdate       OperationType = v1.Update\n\tDelete       OperationType = v1.Delete\n\tConnect      OperationType = v1.Connect\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.32\n\n// MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain.\ntype MutatingAdmissionPolicy struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// Specification of the desired behavior of the MutatingAdmissionPolicy.\n\tSpec MutatingAdmissionPolicySpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.32\n\n// MutatingAdmissionPolicyList is a list of MutatingAdmissionPolicy.\ntype MutatingAdmissionPolicyList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// List of ValidatingAdmissionPolicy.\n\tItems []MutatingAdmissionPolicy `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// MutatingAdmissionPolicySpec is the specification of the desired behavior of the admission policy.\ntype MutatingAdmissionPolicySpec struct {\n\t// paramKind specifies the kind of resources used to parameterize this policy.\n\t// If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions.\n\t// If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied.\n\t// If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null.\n\t// +optional\n\tParamKind *ParamKind `json:\"paramKind,omitempty\" protobuf:\"bytes,1,rep,name=paramKind\"`\n\n\t// matchConstraints specifies what resources this policy is designed to validate.\n\t// The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints.\n\t// However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API\n\t// MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding.\n\t// The CREATE, UPDATE and CONNECT operations are allowed.  The DELETE operation may not be matched.\n\t// '*' matches CREATE, UPDATE and CONNECT.\n\t// Required.\n\tMatchConstraints *MatchResources `json:\"matchConstraints,omitempty\" protobuf:\"bytes,2,rep,name=matchConstraints\"`\n\n\t// variables contain definitions of variables that can be used in composition of other expressions.\n\t// Each variable is defined as a named CEL expression.\n\t// The variables defined here will be available under `variables` in other expressions of the policy\n\t// except matchConditions because matchConditions are evaluated before the rest of the policy.\n\t//\n\t// The expression of a variable can refer to other variables defined earlier in the list but not those after.\n\t// Thus, variables must be sorted by the order of first appearance and acyclic.\n\t// +listType=atomic\n\t// +optional\n\tVariables []Variable `json:\"variables,omitempty\" protobuf:\"bytes,3,rep,name=variables\"`\n\n\t// mutations contain operations to perform on matching objects.\n\t// mutations may not be empty; a minimum of one mutation is required.\n\t// mutations are evaluated in order, and are reinvoked according to\n\t// the reinvocationPolicy.\n\t// The mutations of a policy are invoked for each binding of this policy\n\t// and reinvocation of mutations occurs on a per binding basis.\n\t//\n\t// +listType=atomic\n\t// +optional\n\tMutations []Mutation `json:\"mutations,omitempty\" protobuf:\"bytes,4,rep,name=mutations\"`\n\n\t// failurePolicy defines how to handle failures for the admission policy. Failures can\n\t// occur from CEL expression parse errors, type check errors, runtime errors and invalid\n\t// or mis-configured policy definitions or bindings.\n\t//\n\t// A policy is invalid if paramKind refers to a non-existent Kind.\n\t// A binding is invalid if paramRef.name refers to a non-existent resource.\n\t//\n\t// failurePolicy does not define how validations that evaluate to false are handled.\n\t//\n\t// Allowed values are Ignore or Fail. Defaults to Fail.\n\t// +optional\n\tFailurePolicy *FailurePolicyType `json:\"failurePolicy,omitempty\" protobuf:\"bytes,5,opt,name=failurePolicy,casttype=FailurePolicyType\"`\n\n\t// matchConditions is a list of conditions that must be met for a request to be validated.\n\t// Match conditions filter requests that have already been matched by the matchConstraints.\n\t// An empty list of matchConditions matches all requests.\n\t// There are a maximum of 64 match conditions allowed.\n\t//\n\t// If a parameter object is provided, it can be accessed via the `params` handle in the same\n\t// manner as validation expressions.\n\t//\n\t// The exact matching logic is (in order):\n\t//   1. If ANY matchCondition evaluates to FALSE, the policy is skipped.\n\t//   2. If ALL matchConditions evaluate to TRUE, the policy is evaluated.\n\t//   3. If any matchCondition evaluates to an error (but none are FALSE):\n\t//      - If failurePolicy=Fail, reject the request\n\t//      - If failurePolicy=Ignore, the policy is skipped\n\t//\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=name\n\t// +optional\n\tMatchConditions []MatchCondition `json:\"matchConditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,6,rep,name=matchConditions\"`\n\n\t// reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding\n\t// as part of a single admission evaluation.\n\t// Allowed values are \"Never\" and \"IfNeeded\".\n\t//\n\t// Never: These mutations will not be called more than once per binding in a single admission evaluation.\n\t//\n\t// IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of\n\t// order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies.  Mutations are only\n\t// reinvoked when mutations change the object after this mutation is invoked.\n\t// Required.\n\tReinvocationPolicy ReinvocationPolicyType `json:\"reinvocationPolicy,omitempty\" protobuf:\"bytes,7,opt,name=reinvocationPolicy,casttype=ReinvocationPolicyType\"`\n}\n\n// Mutation specifies the CEL expression which is used to apply the Mutation.\ntype Mutation struct {\n\t// patchType indicates the patch strategy used.\n\t// Allowed values are \"ApplyConfiguration\" and \"JSONPatch\".\n\t// Required.\n\t//\n\t// +unionDiscriminator\n\tPatchType PatchType `json:\"patchType\" protobuf:\"bytes,2,opt,name=patchType,casttype=PatchType\"`\n\n\t// applyConfiguration defines the desired configuration values of an object.\n\t// The configuration is applied to the admission object using\n\t// [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff).\n\t// A CEL expression is used to create apply configuration.\n\tApplyConfiguration *ApplyConfiguration `json:\"applyConfiguration,omitempty\" protobuf:\"bytes,3,opt,name=applyConfiguration\"`\n\n\t// jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object.\n\t// A CEL expression is used to create the JSON patch.\n\tJSONPatch *JSONPatch `json:\"jsonPatch,omitempty\" protobuf:\"bytes,4,opt,name=jsonPatch\"`\n}\n\n// PatchType specifies the type of patch operation for a mutation.\n// +enum\ntype PatchType string\n\nconst (\n\t// ApplyConfiguration indicates that the mutation is using apply configuration to mutate the object.\n\tPatchTypeApplyConfiguration PatchType = \"ApplyConfiguration\"\n\t// JSONPatch indicates that the object is mutated through JSON Patch.\n\tPatchTypeJSONPatch PatchType = \"JSONPatch\"\n)\n\n// ApplyConfiguration defines the desired configuration values of an object.\ntype ApplyConfiguration struct {\n\t// expression will be evaluated by CEL to create an apply configuration.\n\t// ref: https://github.com/google/cel-spec\n\t//\n\t// Apply configurations are declared in CEL using object initialization. For example, this CEL expression\n\t// returns an apply configuration to set a single field:\n\t//\n\t//\tObject{\n\t//\t  spec: Object.spec{\n\t//\t    serviceAccountName: \"example\"\n\t//\t  }\n\t//\t}\n\t//\n\t// Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of\n\t// values not included in the apply configuration.\n\t//\n\t// CEL expressions have access to the object types needed to create apply configurations:\n\t//\n\t// - 'Object' - CEL type of the resource object.\n\t// - 'Object.<fieldName>' - CEL type of object field (such as 'Object.spec')\n\t// - 'Object.<fieldName1>.<fieldName2>...<fieldNameN>` - CEL type of nested field (such as 'Object.spec.containers')\n\t//\n\t// CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables:\n\t//\n\t// - 'object' - The object from the incoming request. The value is null for DELETE requests.\n\t// - 'oldObject' - The existing object. The value is null for CREATE requests.\n\t// - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)).\n\t// - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind.\n\t// - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources.\n\t// - 'variables' - Map of composited variables, from its name to its lazily evaluated value.\n\t//   For example, a variable named 'foo' can be accessed as 'variables.foo'.\n\t// - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n\t//   See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n\t// - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n\t//   request resource.\n\t//\n\t// The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the\n\t// object. No other metadata properties are accessible.\n\t//\n\t// Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible.\n\t// Required.\n\tExpression string `json:\"expression,omitempty\" protobuf:\"bytes,1,opt,name=expression\"`\n}\n\n// JSONPatch defines a JSON Patch.\ntype JSONPatch struct {\n\t// expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/).\n\t// ref: https://github.com/google/cel-spec\n\t//\n\t// expression must return an array of JSONPatch values.\n\t//\n\t// For example, this CEL expression returns a JSON patch to conditionally modify a value:\n\t//\n\t//\t  [\n\t//\t    JSONPatch{op: \"test\", path: \"/spec/example\", value: \"Red\"},\n\t//\t    JSONPatch{op: \"replace\", path: \"/spec/example\", value: \"Green\"}\n\t//\t  ]\n\t//\n\t// To define an object for the patch value, use Object types. For example:\n\t//\n\t//\t  [\n\t//\t    JSONPatch{\n\t//\t      op: \"add\",\n\t//\t      path: \"/spec/selector\",\n\t//\t      value: Object.spec.selector{matchLabels: {\"environment\": \"test\"}}\n\t//\t    }\n\t//\t  ]\n\t//\n\t// To use strings containing '/' and '~' as JSONPatch path keys, use \"jsonpatch.escapeKey\". For example:\n\t//\n\t//\t  [\n\t//\t    JSONPatch{\n\t//\t      op: \"add\",\n\t//\t      path: \"/metadata/labels/\" + jsonpatch.escapeKey(\"example.com/environment\"),\n\t//\t      value: \"test\"\n\t//\t    },\n\t//\t  ]\n\t//\n\t// CEL expressions have access to the types needed to create JSON patches and objects:\n\t//\n\t// - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'.\n\t//   See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string,\n\t//   integer, array, map or object.  If set, the 'path' and 'from' fields must be set to a\n\t//   [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL\n\t//   function may be used to escape path keys containing '/' and '~'.\n\t// - 'Object' - CEL type of the resource object.\n\t// - 'Object.<fieldName>' - CEL type of object field (such as 'Object.spec')\n\t// - 'Object.<fieldName1>.<fieldName2>...<fieldNameN>` - CEL type of nested field (such as 'Object.spec.containers')\n\t//\n\t// CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables:\n\t//\n\t// - 'object' - The object from the incoming request. The value is null for DELETE requests.\n\t// - 'oldObject' - The existing object. The value is null for CREATE requests.\n\t// - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)).\n\t// - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind.\n\t// - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources.\n\t// - 'variables' - Map of composited variables, from its name to its lazily evaluated value.\n\t//   For example, a variable named 'foo' can be accessed as 'variables.foo'.\n\t// - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n\t//   See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n\t// - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n\t//   request resource.\n\t//\n\t// CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries)\n\t// as well as:\n\t//\n\t// - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and  '/' are escaped as '~0' and `~1' respectively).\n\t//\n\t//\n\t// Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible.\n\t// Required.\n\tExpression string `json:\"expression,omitempty\" protobuf:\"bytes,1,opt,name=expression\"`\n}\n\n// ReinvocationPolicyType specifies what type of policy the admission mutation uses.\n// +enum\ntype ReinvocationPolicyType = v1.ReinvocationPolicyType\n\nconst (\n\t// NeverReinvocationPolicy indicates that the mutation must not be called more than once in a\n\t// single admission evaluation.\n\tNeverReinvocationPolicy ReinvocationPolicyType = v1.NeverReinvocationPolicy\n\t// IfNeededReinvocationPolicy indicates that the mutation may be called at least one\n\t// additional time as part of the admission evaluation if the object being admitted is\n\t// modified by other admission plugins after the initial mutation call.\n\tIfNeededReinvocationPolicy ReinvocationPolicyType = v1.IfNeededReinvocationPolicy\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.32\n\n// MutatingAdmissionPolicyBinding binds the MutatingAdmissionPolicy with parametrized resources.\n// MutatingAdmissionPolicyBinding and the optional parameter resource together define how cluster administrators\n// configure policies for clusters.\n//\n// For a given admission request, each binding will cause its policy to be\n// evaluated N times, where N is 1 for policies/bindings that don't use\n// params, otherwise N is the number of parameters selected by the binding.\n// Each evaluation is constrained by a [runtime cost budget](https://kubernetes.io/docs/reference/using-api/cel/#runtime-cost-budget).\n//\n// Adding/removing policies, bindings, or params can not affect whether a\n// given (policy, binding, param) combination is within its own CEL budget.\ntype MutatingAdmissionPolicyBinding struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// Specification of the desired behavior of the MutatingAdmissionPolicyBinding.\n\tSpec MutatingAdmissionPolicyBindingSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.32\n\n// MutatingAdmissionPolicyBindingList is a list of MutatingAdmissionPolicyBinding.\ntype MutatingAdmissionPolicyBindingList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// List of PolicyBinding.\n\tItems []MutatingAdmissionPolicyBinding `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// MutatingAdmissionPolicyBindingSpec is the specification of the MutatingAdmissionPolicyBinding.\ntype MutatingAdmissionPolicyBindingSpec struct {\n\t// policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to.\n\t// If the referenced resource does not exist, this binding is considered invalid and will be ignored\n\t// Required.\n\tPolicyName string `json:\"policyName,omitempty\" protobuf:\"bytes,1,rep,name=policyName\"`\n\n\t// paramRef specifies the parameter resource used to configure the admission control policy.\n\t// It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy.\n\t// If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied.\n\t// If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param.\n\t// +optional\n\tParamRef *ParamRef `json:\"paramRef,omitempty\" protobuf:\"bytes,2,rep,name=paramRef\"`\n\n\t// matchResources limits what resources match this binding and may be mutated by it.\n\t// Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and\n\t// matchConditions before the resource may be mutated.\n\t// When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints\n\t// and matchConditions must match for the resource to be mutated.\n\t// Additionally, matchResources.resourceRules are optional and do not constraint matching when unset.\n\t// Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required.\n\t// The CREATE, UPDATE and CONNECT operations are allowed.  The DELETE operation may not be matched.\n\t// '*' matches CREATE, UPDATE and CONNECT.\n\t// +optional\n\tMatchResources *MatchResources `json:\"matchResources,omitempty\" protobuf:\"bytes,3,rep,name=matchResources\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1alpha1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_ApplyConfiguration = map[string]string{\n\t\"\":           \"ApplyConfiguration defines the desired configuration values of an object.\",\n\t\"expression\": \"expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec\\n\\nApply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field:\\n\\n\\tObject{\\n\\t  spec: Object.spec{\\n\\t    serviceAccountName: \\\"example\\\"\\n\\t  }\\n\\t}\\n\\nApply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration.\\n\\nCEL expressions have access to the object types needed to create apply configurations:\\n\\n- 'Object' - CEL type of the resource object. - 'Object.<fieldName>' - CEL type of object field (such as 'Object.spec') - 'Object.<fieldName1>.<fieldName2>...<fieldNameN>` - CEL type of nested field (such as 'Object.spec.containers')\\n\\nCEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables:\\n\\n- 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value.\\n  For example, a variable named 'foo' can be accessed as 'variables.foo'.\\n- 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\\n  See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\\n- 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\\n  request resource.\\n\\nThe `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible.\\n\\nOnly property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required.\",\n}\n\nfunc (ApplyConfiguration) SwaggerDoc() map[string]string {\n\treturn map_ApplyConfiguration\n}\n\nvar map_AuditAnnotation = map[string]string{\n\t\"\":                \"AuditAnnotation describes how to produce an audit annotation for an API request.\",\n\t\"key\":             \"key specifies the audit annotation key. The audit annotation keys of a ValidatingAdmissionPolicy must be unique. The key must be a qualified name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length.\\n\\nThe key is combined with the resource name of the ValidatingAdmissionPolicy to construct an audit annotation key: \\\"{ValidatingAdmissionPolicy name}/{key}\\\".\\n\\nIf an admission webhook uses the same resource name as this ValidatingAdmissionPolicy and the same audit annotation key, the annotation key will be identical. In this case, the first annotation written with the key will be included in the audit event and all subsequent annotations with the same key will be discarded.\\n\\nRequired.\",\n\t\"valueExpression\": \"valueExpression represents the expression which is evaluated by CEL to produce an audit annotation value. The expression must evaluate to either a string or null value. If the expression evaluates to a string, the audit annotation is included with the string value. If the expression evaluates to null or empty string the audit annotation will be omitted. The valueExpression may be no longer than 5kb in length. If the result of the valueExpression is more than 10kb in length, it will be truncated to 10kb.\\n\\nIf multiple ValidatingAdmissionPolicyBinding resources match an API request, then the valueExpression will be evaluated for each binding. All unique values produced by the valueExpressions will be joined together in a comma-separated list.\\n\\nRequired.\",\n}\n\nfunc (AuditAnnotation) SwaggerDoc() map[string]string {\n\treturn map_AuditAnnotation\n}\n\nvar map_ExpressionWarning = map[string]string{\n\t\"\":         \"ExpressionWarning is a warning information that targets a specific expression.\",\n\t\"fieldRef\": \"The path to the field that refers the expression. For example, the reference to the expression of the first item of validations is \\\"spec.validations[0].expression\\\"\",\n\t\"warning\":  \"The content of type checking information in a human-readable form. Each line of the warning contains the type that the expression is checked against, followed by the type check error from the compiler.\",\n}\n\nfunc (ExpressionWarning) SwaggerDoc() map[string]string {\n\treturn map_ExpressionWarning\n}\n\nvar map_JSONPatch = map[string]string{\n\t\"\":           \"JSONPatch defines a JSON Patch.\",\n\t\"expression\": \"expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec\\n\\nexpression must return an array of JSONPatch values.\\n\\nFor example, this CEL expression returns a JSON patch to conditionally modify a value:\\n\\n\\t  [\\n\\t    JSONPatch{op: \\\"test\\\", path: \\\"/spec/example\\\", value: \\\"Red\\\"},\\n\\t    JSONPatch{op: \\\"replace\\\", path: \\\"/spec/example\\\", value: \\\"Green\\\"}\\n\\t  ]\\n\\nTo define an object for the patch value, use Object types. For example:\\n\\n\\t  [\\n\\t    JSONPatch{\\n\\t      op: \\\"add\\\",\\n\\t      path: \\\"/spec/selector\\\",\\n\\t      value: Object.spec.selector{matchLabels: {\\\"environment\\\": \\\"test\\\"}}\\n\\t    }\\n\\t  ]\\n\\nTo use strings containing '/' and '~' as JSONPatch path keys, use \\\"jsonpatch.escapeKey\\\". For example:\\n\\n\\t  [\\n\\t    JSONPatch{\\n\\t      op: \\\"add\\\",\\n\\t      path: \\\"/metadata/labels/\\\" + jsonpatch.escapeKey(\\\"example.com/environment\\\"),\\n\\t      value: \\\"test\\\"\\n\\t    },\\n\\t  ]\\n\\nCEL expressions have access to the types needed to create JSON patches and objects:\\n\\n- 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'.\\n  See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string,\\n  integer, array, map or object.  If set, the 'path' and 'from' fields must be set to a\\n  [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL\\n  function may be used to escape path keys containing '/' and '~'.\\n- 'Object' - CEL type of the resource object. - 'Object.<fieldName>' - CEL type of object field (such as 'Object.spec') - 'Object.<fieldName1>.<fieldName2>...<fieldNameN>` - CEL type of nested field (such as 'Object.spec.containers')\\n\\nCEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables:\\n\\n- 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value.\\n  For example, a variable named 'foo' can be accessed as 'variables.foo'.\\n- 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\\n  See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\\n- 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\\n  request resource.\\n\\nCEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as:\\n\\n- 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and  '/' are escaped as '~0' and `~1' respectively).\\n\\nOnly property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required.\",\n}\n\nfunc (JSONPatch) SwaggerDoc() map[string]string {\n\treturn map_JSONPatch\n}\n\nvar map_MatchResources = map[string]string{\n\t\"\":                     \"MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded)\",\n\t\"namespaceSelector\":    \"NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy.\\n\\nFor example, to run the webhook on any objects whose namespace is not associated with \\\"runlevel\\\" of \\\"0\\\" or \\\"1\\\";  you will set the selector as follows: \\\"namespaceSelector\\\": {\\n  \\\"matchExpressions\\\": [\\n    {\\n      \\\"key\\\": \\\"runlevel\\\",\\n      \\\"operator\\\": \\\"NotIn\\\",\\n      \\\"values\\\": [\\n        \\\"0\\\",\\n        \\\"1\\\"\\n      ]\\n    }\\n  ]\\n}\\n\\nIf instead you want to only run the policy on any objects whose namespace is associated with the \\\"environment\\\" of \\\"prod\\\" or \\\"staging\\\"; you will set the selector as follows: \\\"namespaceSelector\\\": {\\n  \\\"matchExpressions\\\": [\\n    {\\n      \\\"key\\\": \\\"environment\\\",\\n      \\\"operator\\\": \\\"In\\\",\\n      \\\"values\\\": [\\n        \\\"prod\\\",\\n        \\\"staging\\\"\\n      ]\\n    }\\n  ]\\n}\\n\\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\\n\\nDefault to the empty LabelSelector, which matches everything.\",\n\t\"objectSelector\":       \"ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything.\",\n\t\"resourceRules\":        \"ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule.\",\n\t\"excludeResourceRules\": \"ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded)\",\n\t\"matchPolicy\":          \"matchPolicy defines how the \\\"MatchResources\\\" list is used to match incoming requests. Allowed values are \\\"Exact\\\" or \\\"Equivalent\\\".\\n\\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \\\"rules\\\" only included `apiGroups:[\\\"apps\\\"], apiVersions:[\\\"v1\\\"], resources: [\\\"deployments\\\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy.\\n\\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \\\"rules\\\" only included `apiGroups:[\\\"apps\\\"], apiVersions:[\\\"v1\\\"], resources: [\\\"deployments\\\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy.\\n\\nDefaults to \\\"Equivalent\\\"\",\n}\n\nfunc (MatchResources) SwaggerDoc() map[string]string {\n\treturn map_MatchResources\n}\n\nvar map_MutatingAdmissionPolicy = map[string]string{\n\t\"\":         \"MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain.\",\n\t\"metadata\": \"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\",\n\t\"spec\":     \"Specification of the desired behavior of the MutatingAdmissionPolicy.\",\n}\n\nfunc (MutatingAdmissionPolicy) SwaggerDoc() map[string]string {\n\treturn map_MutatingAdmissionPolicy\n}\n\nvar map_MutatingAdmissionPolicyBinding = map[string]string{\n\t\"\":         \"MutatingAdmissionPolicyBinding binds the MutatingAdmissionPolicy with parametrized resources. MutatingAdmissionPolicyBinding and the optional parameter resource together define how cluster administrators configure policies for clusters.\\n\\nFor a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. Each evaluation is constrained by a [runtime cost budget](https://kubernetes.io/docs/reference/using-api/cel/#runtime-cost-budget).\\n\\nAdding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget.\",\n\t\"metadata\": \"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\",\n\t\"spec\":     \"Specification of the desired behavior of the MutatingAdmissionPolicyBinding.\",\n}\n\nfunc (MutatingAdmissionPolicyBinding) SwaggerDoc() map[string]string {\n\treturn map_MutatingAdmissionPolicyBinding\n}\n\nvar map_MutatingAdmissionPolicyBindingList = map[string]string{\n\t\"\":         \"MutatingAdmissionPolicyBindingList is a list of MutatingAdmissionPolicyBinding.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of PolicyBinding.\",\n}\n\nfunc (MutatingAdmissionPolicyBindingList) SwaggerDoc() map[string]string {\n\treturn map_MutatingAdmissionPolicyBindingList\n}\n\nvar map_MutatingAdmissionPolicyBindingSpec = map[string]string{\n\t\"\":               \"MutatingAdmissionPolicyBindingSpec is the specification of the MutatingAdmissionPolicyBinding.\",\n\t\"policyName\":     \"policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required.\",\n\t\"paramRef\":       \"paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param.\",\n\t\"matchResources\": \"matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed.  The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT.\",\n}\n\nfunc (MutatingAdmissionPolicyBindingSpec) SwaggerDoc() map[string]string {\n\treturn map_MutatingAdmissionPolicyBindingSpec\n}\n\nvar map_MutatingAdmissionPolicyList = map[string]string{\n\t\"\":         \"MutatingAdmissionPolicyList is a list of MutatingAdmissionPolicy.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of ValidatingAdmissionPolicy.\",\n}\n\nfunc (MutatingAdmissionPolicyList) SwaggerDoc() map[string]string {\n\treturn map_MutatingAdmissionPolicyList\n}\n\nvar map_MutatingAdmissionPolicySpec = map[string]string{\n\t\"\":                   \"MutatingAdmissionPolicySpec is the specification of the desired behavior of the admission policy.\",\n\t\"paramKind\":          \"paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null.\",\n\t\"matchConstraints\":   \"matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed.  The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required.\",\n\t\"variables\":          \"variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy.\\n\\nThe expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic.\",\n\t\"mutations\":          \"mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis.\",\n\t\"failurePolicy\":      \"failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings.\\n\\nA policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource.\\n\\nfailurePolicy does not define how validations that evaluate to false are handled.\\n\\nAllowed values are Ignore or Fail. Defaults to Fail.\",\n\t\"matchConditions\":    \"matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed.\\n\\nIf a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions.\\n\\nThe exact matching logic is (in order):\\n  1. If ANY matchCondition evaluates to FALSE, the policy is skipped.\\n  2. If ALL matchConditions evaluate to TRUE, the policy is evaluated.\\n  3. If any matchCondition evaluates to an error (but none are FALSE):\\n     - If failurePolicy=Fail, reject the request\\n     - If failurePolicy=Ignore, the policy is skipped\",\n\t\"reinvocationPolicy\": \"reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are \\\"Never\\\" and \\\"IfNeeded\\\".\\n\\nNever: These mutations will not be called more than once per binding in a single admission evaluation.\\n\\nIfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies.  Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required.\",\n}\n\nfunc (MutatingAdmissionPolicySpec) SwaggerDoc() map[string]string {\n\treturn map_MutatingAdmissionPolicySpec\n}\n\nvar map_Mutation = map[string]string{\n\t\"\":                   \"Mutation specifies the CEL expression which is used to apply the Mutation.\",\n\t\"patchType\":          \"patchType indicates the patch strategy used. Allowed values are \\\"ApplyConfiguration\\\" and \\\"JSONPatch\\\". Required.\",\n\t\"applyConfiguration\": \"applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration.\",\n\t\"jsonPatch\":          \"jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch.\",\n}\n\nfunc (Mutation) SwaggerDoc() map[string]string {\n\treturn map_Mutation\n}\n\nvar map_NamedRuleWithOperations = map[string]string{\n\t\"\":              \"NamedRuleWithOperations is a tuple of Operations and Resources with ResourceNames.\",\n\t\"resourceNames\": \"ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.\",\n}\n\nfunc (NamedRuleWithOperations) SwaggerDoc() map[string]string {\n\treturn map_NamedRuleWithOperations\n}\n\nvar map_ParamKind = map[string]string{\n\t\"\":           \"ParamKind is a tuple of Group Kind and Version.\",\n\t\"apiVersion\": \"APIVersion is the API group version the resources belong to. In format of \\\"group/version\\\". Required.\",\n\t\"kind\":       \"Kind is the API kind the resources belong to. Required.\",\n}\n\nfunc (ParamKind) SwaggerDoc() map[string]string {\n\treturn map_ParamKind\n}\n\nvar map_ParamRef = map[string]string{\n\t\"\":                        \"ParamRef describes how to locate the params to be used as input to expressions of rules applied by a policy binding.\",\n\t\"name\":                    \"`name` is the name of the resource being referenced.\\n\\n`name` and `selector` are mutually exclusive properties. If one is set, the other must be unset.\",\n\t\"namespace\":               \"namespace is the namespace of the referenced resource. Allows limiting the search for params to a specific namespace. Applies to both `name` and `selector` fields.\\n\\nA per-namespace parameter may be used by specifying a namespace-scoped `paramKind` in the policy and leaving this field empty.\\n\\n- If `paramKind` is cluster-scoped, this field MUST be unset. Setting this field results in a configuration error.\\n\\n- If `paramKind` is namespace-scoped, the namespace of the object being evaluated for admission will be used when this field is left unset. Take care that if this is left empty the binding must not match any cluster-scoped resources, which will result in an error.\",\n\t\"selector\":                \"selector can be used to match multiple param objects based on their labels. Supply selector: {} to match all resources of the ParamKind.\\n\\nIf multiple params are found, they are all evaluated with the policy expressions and the results are ANDed together.\\n\\nOne of `name` or `selector` must be set, but `name` and `selector` are mutually exclusive properties. If one is set, the other must be unset.\",\n\t\"parameterNotFoundAction\": \"`parameterNotFoundAction` controls the behavior of the binding when the resource exists, and name or selector is valid, but there are no parameters matched by the binding. If the value is set to `Allow`, then no matched parameters will be treated as successful validation by the binding. If set to `Deny`, then no matched parameters will be subject to the `failurePolicy` of the policy.\\n\\nAllowed values are `Allow` or `Deny` Default to `Deny`\",\n}\n\nfunc (ParamRef) SwaggerDoc() map[string]string {\n\treturn map_ParamRef\n}\n\nvar map_TypeChecking = map[string]string{\n\t\"\":                   \"TypeChecking contains results of type checking the expressions in the ValidatingAdmissionPolicy\",\n\t\"expressionWarnings\": \"The type checking warnings for each expression.\",\n}\n\nfunc (TypeChecking) SwaggerDoc() map[string]string {\n\treturn map_TypeChecking\n}\n\nvar map_ValidatingAdmissionPolicy = map[string]string{\n\t\"\":         \"ValidatingAdmissionPolicy describes the definition of an admission validation policy that accepts or rejects an object without changing it.\",\n\t\"metadata\": \"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\",\n\t\"spec\":     \"Specification of the desired behavior of the ValidatingAdmissionPolicy.\",\n\t\"status\":   \"The status of the ValidatingAdmissionPolicy, including warnings that are useful to determine if the policy behaves in the expected way. Populated by the system. Read-only.\",\n}\n\nfunc (ValidatingAdmissionPolicy) SwaggerDoc() map[string]string {\n\treturn map_ValidatingAdmissionPolicy\n}\n\nvar map_ValidatingAdmissionPolicyBinding = map[string]string{\n\t\"\":         \"ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources. ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters.\\n\\nFor a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding.\\n\\nThe CEL expressions of a policy must have a computed CEL cost below the maximum CEL budget. Each evaluation of the policy is given an independent CEL cost budget. Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget.\",\n\t\"metadata\": \"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\",\n\t\"spec\":     \"Specification of the desired behavior of the ValidatingAdmissionPolicyBinding.\",\n}\n\nfunc (ValidatingAdmissionPolicyBinding) SwaggerDoc() map[string]string {\n\treturn map_ValidatingAdmissionPolicyBinding\n}\n\nvar map_ValidatingAdmissionPolicyBindingList = map[string]string{\n\t\"\":         \"ValidatingAdmissionPolicyBindingList is a list of ValidatingAdmissionPolicyBinding.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of PolicyBinding.\",\n}\n\nfunc (ValidatingAdmissionPolicyBindingList) SwaggerDoc() map[string]string {\n\treturn map_ValidatingAdmissionPolicyBindingList\n}\n\nvar map_ValidatingAdmissionPolicyBindingSpec = map[string]string{\n\t\"\":                  \"ValidatingAdmissionPolicyBindingSpec is the specification of the ValidatingAdmissionPolicyBinding.\",\n\t\"policyName\":        \"PolicyName references a ValidatingAdmissionPolicy name which the ValidatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required.\",\n\t\"paramRef\":          \"paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param.\",\n\t\"matchResources\":    \"MatchResources declares what resources match this binding and will be validated by it. Note that this is intersected with the policy's matchConstraints, so only requests that are matched by the policy can be selected by this. If this is unset, all resources matched by the policy are validated by this binding When resourceRules is unset, it does not constrain resource matching. If a resource is matched by the other fields of this object, it will be validated. Note that this is differs from ValidatingAdmissionPolicy matchConstraints, where resourceRules are required.\",\n\t\"validationActions\": \"validationActions declares how Validations of the referenced ValidatingAdmissionPolicy are enforced. If a validation evaluates to false it is always enforced according to these actions.\\n\\nFailures defined by the ValidatingAdmissionPolicy's FailurePolicy are enforced according to these actions only if the FailurePolicy is set to Fail, otherwise the failures are ignored. This includes compilation errors, runtime errors and misconfigurations of the policy.\\n\\nvalidationActions is declared as a set of action values. Order does not matter. validationActions may not contain duplicates of the same action.\\n\\nThe supported actions values are:\\n\\n\\\"Deny\\\" specifies that a validation failure results in a denied request.\\n\\n\\\"Warn\\\" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses.\\n\\n\\\"Audit\\\" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `\\\"validation.policy.admission.k8s.io/validation_failure\\\": \\\"[{\\\"message\\\": \\\"Invalid value\\\", {\\\"policy\\\": \\\"policy.example.com\\\", {\\\"binding\\\": \\\"policybinding.example.com\\\", {\\\"expressionIndex\\\": \\\"1\\\", {\\\"validationActions\\\": [\\\"Audit\\\"]}]\\\"`\\n\\nClients should expect to handle additional values by ignoring any values not recognized.\\n\\n\\\"Deny\\\" and \\\"Warn\\\" may not be used together since this combination needlessly duplicates the validation failure both in the API response body and the HTTP warning headers.\\n\\nRequired.\",\n}\n\nfunc (ValidatingAdmissionPolicyBindingSpec) SwaggerDoc() map[string]string {\n\treturn map_ValidatingAdmissionPolicyBindingSpec\n}\n\nvar map_ValidatingAdmissionPolicyList = map[string]string{\n\t\"\":         \"ValidatingAdmissionPolicyList is a list of ValidatingAdmissionPolicy.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of ValidatingAdmissionPolicy.\",\n}\n\nfunc (ValidatingAdmissionPolicyList) SwaggerDoc() map[string]string {\n\treturn map_ValidatingAdmissionPolicyList\n}\n\nvar map_ValidatingAdmissionPolicySpec = map[string]string{\n\t\"\":                 \"ValidatingAdmissionPolicySpec is the specification of the desired behavior of the AdmissionPolicy.\",\n\t\"paramKind\":        \"ParamKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If ParamKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in ValidatingAdmissionPolicyBinding, the params variable will be null.\",\n\t\"matchConstraints\": \"MatchConstraints specifies what resources this policy is designed to validate. The AdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API ValidatingAdmissionPolicy cannot match ValidatingAdmissionPolicy and ValidatingAdmissionPolicyBinding. Required.\",\n\t\"validations\":      \"Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required.\",\n\t\"failurePolicy\":    \"failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings.\\n\\nA policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource.\\n\\nfailurePolicy does not define how validations that evaluate to false are handled.\\n\\nWhen failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced.\\n\\nAllowed values are Ignore or Fail. Defaults to Fail.\",\n\t\"auditAnnotations\": \"auditAnnotations contains CEL expressions which are used to produce audit annotations for the audit event of the API request. validations and auditAnnotations may not both be empty; a least one of validations or auditAnnotations is required.\",\n\t\"matchConditions\":  \"MatchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed.\\n\\nIf a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions.\\n\\nThe exact matching logic is (in order):\\n  1. If ANY matchCondition evaluates to FALSE, the policy is skipped.\\n  2. If ALL matchConditions evaluate to TRUE, the policy is evaluated.\\n  3. If any matchCondition evaluates to an error (but none are FALSE):\\n     - If failurePolicy=Fail, reject the request\\n     - If failurePolicy=Ignore, the policy is skipped\",\n\t\"variables\":        \"Variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except MatchConditions because MatchConditions are evaluated before the rest of the policy.\\n\\nThe expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, Variables must be sorted by the order of first appearance and acyclic.\",\n}\n\nfunc (ValidatingAdmissionPolicySpec) SwaggerDoc() map[string]string {\n\treturn map_ValidatingAdmissionPolicySpec\n}\n\nvar map_ValidatingAdmissionPolicyStatus = map[string]string{\n\t\"\":                   \"ValidatingAdmissionPolicyStatus represents the status of a ValidatingAdmissionPolicy.\",\n\t\"observedGeneration\": \"The generation observed by the controller.\",\n\t\"typeChecking\":       \"The results of type checking for each expression. Presence of this field indicates the completion of the type checking.\",\n\t\"conditions\":         \"The conditions represent the latest available observations of a policy's current state.\",\n}\n\nfunc (ValidatingAdmissionPolicyStatus) SwaggerDoc() map[string]string {\n\treturn map_ValidatingAdmissionPolicyStatus\n}\n\nvar map_Validation = map[string]string{\n\t\"\":                  \"Validation specifies the CEL expression which is used to apply the validation.\",\n\t\"expression\":        \"Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables:\\n\\n- 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value.\\n  For example, a variable named 'foo' can be accessed as 'variables.foo'.\\n- 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\\n  See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\\n- 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\\n  request resource.\\n\\nThe `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible.\\n\\nOnly property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Accessible property names are escaped according to the following rules when accessed in the expression: - '__' escapes to '__underscores__' - '.' escapes to '__dot__' - '-' escapes to '__dash__' - '/' escapes to '__slash__' - Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are:\\n\\t  \\\"true\\\", \\\"false\\\", \\\"null\\\", \\\"in\\\", \\\"as\\\", \\\"break\\\", \\\"const\\\", \\\"continue\\\", \\\"else\\\", \\\"for\\\", \\\"function\\\", \\\"if\\\",\\n\\t  \\\"import\\\", \\\"let\\\", \\\"loop\\\", \\\"package\\\", \\\"namespace\\\", \\\"return\\\".\\nExamples:\\n  - Expression accessing a property named \\\"namespace\\\": {\\\"Expression\\\": \\\"object.__namespace__ > 0\\\"}\\n  - Expression accessing a property named \\\"x-prop\\\": {\\\"Expression\\\": \\\"object.x__dash__prop > 0\\\"}\\n  - Expression accessing a property named \\\"redact__d\\\": {\\\"Expression\\\": \\\"object.redact__underscores__d > 0\\\"}\\n\\nEquality on arrays with list type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1]. Concatenation on arrays with x-kubernetes-list-type use the semantics of the list type:\\n  - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and\\n    non-intersecting elements in `Y` are appended, retaining their partial order.\\n  - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values\\n    are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with\\n    non-intersecting keys are appended, retaining their partial order.\\nRequired.\",\n\t\"message\":           \"Message represents the message displayed when validation fails. The message is required if the Expression contains line breaks. The message must not contain line breaks. If unset, the message is \\\"failed rule: {Rule}\\\". e.g. \\\"must be a URL with the host matching spec.host\\\" If the Expression contains line breaks. Message is required. The message must not contain line breaks. If unset, the message is \\\"failed Expression: {Expression}\\\".\",\n\t\"reason\":            \"Reason represents a machine-readable description of why this validation failed. If this is the first validation in the list to fail, this reason, as well as the corresponding HTTP response code, are used in the HTTP response to the client. The currently supported reasons are: \\\"Unauthorized\\\", \\\"Forbidden\\\", \\\"Invalid\\\", \\\"RequestEntityTooLarge\\\". If not set, StatusReasonInvalid is used in the response to the client.\",\n\t\"messageExpression\": \"messageExpression declares a CEL expression that evaluates to the validation failure message that is returned when this rule fails. Since messageExpression is used as a failure message, it must evaluate to a string. If both message and messageExpression are present on a validation, then messageExpression will be used if validation fails. If messageExpression results in a runtime error, the runtime error is logged, and the validation failure message is produced as if the messageExpression field were unset. If messageExpression evaluates to an empty string, a string with only spaces, or a string that contains line breaks, then the validation failure message will also be produced as if the messageExpression field were unset, and the fact that messageExpression produced an empty string/string with only spaces/string with line breaks will be logged. messageExpression has access to all the same variables as the `expression` except for 'authorizer' and 'authorizer.requestResource'. Example: \\\"object.x must be less than max (\\\"+string(params.max)+\\\")\\\"\",\n}\n\nfunc (Validation) SwaggerDoc() map[string]string {\n\treturn map_Validation\n}\n\nvar map_Variable = map[string]string{\n\t\"\":           \"Variable is the definition of a variable that is used for composition.\",\n\t\"name\":       \"Name is the name of the variable. The name must be a valid CEL identifier and unique among all variables. The variable can be accessed in other expressions through `variables` For example, if name is \\\"foo\\\", the variable will be available as `variables.foo`\",\n\t\"expression\": \"Expression is the expression that will be evaluated as the value of the variable. The CEL expression has access to the same identifiers as the CEL expressions in Validation.\",\n}\n\nfunc (Variable) SwaggerDoc() map[string]string {\n\treturn map_Variable\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1alpha1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ApplyConfiguration) DeepCopyInto(out *ApplyConfiguration) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplyConfiguration.\nfunc (in *ApplyConfiguration) DeepCopy() *ApplyConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ApplyConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *AuditAnnotation) DeepCopyInto(out *AuditAnnotation) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuditAnnotation.\nfunc (in *AuditAnnotation) DeepCopy() *AuditAnnotation {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(AuditAnnotation)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExpressionWarning) DeepCopyInto(out *ExpressionWarning) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExpressionWarning.\nfunc (in *ExpressionWarning) DeepCopy() *ExpressionWarning {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExpressionWarning)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *JSONPatch) DeepCopyInto(out *JSONPatch) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JSONPatch.\nfunc (in *JSONPatch) DeepCopy() *JSONPatch {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(JSONPatch)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MatchCondition) DeepCopyInto(out *MatchCondition) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MatchCondition.\nfunc (in *MatchCondition) DeepCopy() *MatchCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MatchCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MatchResources) DeepCopyInto(out *MatchResources) {\n\t*out = *in\n\tif in.NamespaceSelector != nil {\n\t\tin, out := &in.NamespaceSelector, &out.NamespaceSelector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ObjectSelector != nil {\n\t\tin, out := &in.ObjectSelector, &out.ObjectSelector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ResourceRules != nil {\n\t\tin, out := &in.ResourceRules, &out.ResourceRules\n\t\t*out = make([]NamedRuleWithOperations, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.ExcludeResourceRules != nil {\n\t\tin, out := &in.ExcludeResourceRules, &out.ExcludeResourceRules\n\t\t*out = make([]NamedRuleWithOperations, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.MatchPolicy != nil {\n\t\tin, out := &in.MatchPolicy, &out.MatchPolicy\n\t\t*out = new(MatchPolicyType)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MatchResources.\nfunc (in *MatchResources) DeepCopy() *MatchResources {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MatchResources)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MutatingAdmissionPolicy) DeepCopyInto(out *MutatingAdmissionPolicy) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MutatingAdmissionPolicy.\nfunc (in *MutatingAdmissionPolicy) DeepCopy() *MutatingAdmissionPolicy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MutatingAdmissionPolicy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *MutatingAdmissionPolicy) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MutatingAdmissionPolicyBinding) DeepCopyInto(out *MutatingAdmissionPolicyBinding) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MutatingAdmissionPolicyBinding.\nfunc (in *MutatingAdmissionPolicyBinding) DeepCopy() *MutatingAdmissionPolicyBinding {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MutatingAdmissionPolicyBinding)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *MutatingAdmissionPolicyBinding) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MutatingAdmissionPolicyBindingList) DeepCopyInto(out *MutatingAdmissionPolicyBindingList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]MutatingAdmissionPolicyBinding, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MutatingAdmissionPolicyBindingList.\nfunc (in *MutatingAdmissionPolicyBindingList) DeepCopy() *MutatingAdmissionPolicyBindingList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MutatingAdmissionPolicyBindingList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *MutatingAdmissionPolicyBindingList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MutatingAdmissionPolicyBindingSpec) DeepCopyInto(out *MutatingAdmissionPolicyBindingSpec) {\n\t*out = *in\n\tif in.ParamRef != nil {\n\t\tin, out := &in.ParamRef, &out.ParamRef\n\t\t*out = new(ParamRef)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.MatchResources != nil {\n\t\tin, out := &in.MatchResources, &out.MatchResources\n\t\t*out = new(MatchResources)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MutatingAdmissionPolicyBindingSpec.\nfunc (in *MutatingAdmissionPolicyBindingSpec) DeepCopy() *MutatingAdmissionPolicyBindingSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MutatingAdmissionPolicyBindingSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MutatingAdmissionPolicyList) DeepCopyInto(out *MutatingAdmissionPolicyList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]MutatingAdmissionPolicy, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MutatingAdmissionPolicyList.\nfunc (in *MutatingAdmissionPolicyList) DeepCopy() *MutatingAdmissionPolicyList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MutatingAdmissionPolicyList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *MutatingAdmissionPolicyList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MutatingAdmissionPolicySpec) DeepCopyInto(out *MutatingAdmissionPolicySpec) {\n\t*out = *in\n\tif in.ParamKind != nil {\n\t\tin, out := &in.ParamKind, &out.ParamKind\n\t\t*out = new(ParamKind)\n\t\t**out = **in\n\t}\n\tif in.MatchConstraints != nil {\n\t\tin, out := &in.MatchConstraints, &out.MatchConstraints\n\t\t*out = new(MatchResources)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Variables != nil {\n\t\tin, out := &in.Variables, &out.Variables\n\t\t*out = make([]Variable, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Mutations != nil {\n\t\tin, out := &in.Mutations, &out.Mutations\n\t\t*out = make([]Mutation, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.FailurePolicy != nil {\n\t\tin, out := &in.FailurePolicy, &out.FailurePolicy\n\t\t*out = new(FailurePolicyType)\n\t\t**out = **in\n\t}\n\tif in.MatchConditions != nil {\n\t\tin, out := &in.MatchConditions, &out.MatchConditions\n\t\t*out = make([]MatchCondition, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MutatingAdmissionPolicySpec.\nfunc (in *MutatingAdmissionPolicySpec) DeepCopy() *MutatingAdmissionPolicySpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MutatingAdmissionPolicySpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Mutation) DeepCopyInto(out *Mutation) {\n\t*out = *in\n\tif in.ApplyConfiguration != nil {\n\t\tin, out := &in.ApplyConfiguration, &out.ApplyConfiguration\n\t\t*out = new(ApplyConfiguration)\n\t\t**out = **in\n\t}\n\tif in.JSONPatch != nil {\n\t\tin, out := &in.JSONPatch, &out.JSONPatch\n\t\t*out = new(JSONPatch)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Mutation.\nfunc (in *Mutation) DeepCopy() *Mutation {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Mutation)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NamedRuleWithOperations) DeepCopyInto(out *NamedRuleWithOperations) {\n\t*out = *in\n\tif in.ResourceNames != nil {\n\t\tin, out := &in.ResourceNames, &out.ResourceNames\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tin.RuleWithOperations.DeepCopyInto(&out.RuleWithOperations)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamedRuleWithOperations.\nfunc (in *NamedRuleWithOperations) DeepCopy() *NamedRuleWithOperations {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NamedRuleWithOperations)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ParamKind) DeepCopyInto(out *ParamKind) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParamKind.\nfunc (in *ParamKind) DeepCopy() *ParamKind {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ParamKind)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ParamRef) DeepCopyInto(out *ParamRef) {\n\t*out = *in\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ParameterNotFoundAction != nil {\n\t\tin, out := &in.ParameterNotFoundAction, &out.ParameterNotFoundAction\n\t\t*out = new(ParameterNotFoundActionType)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParamRef.\nfunc (in *ParamRef) DeepCopy() *ParamRef {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ParamRef)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TypeChecking) DeepCopyInto(out *TypeChecking) {\n\t*out = *in\n\tif in.ExpressionWarnings != nil {\n\t\tin, out := &in.ExpressionWarnings, &out.ExpressionWarnings\n\t\t*out = make([]ExpressionWarning, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TypeChecking.\nfunc (in *TypeChecking) DeepCopy() *TypeChecking {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TypeChecking)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ValidatingAdmissionPolicy) DeepCopyInto(out *ValidatingAdmissionPolicy) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingAdmissionPolicy.\nfunc (in *ValidatingAdmissionPolicy) DeepCopy() *ValidatingAdmissionPolicy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ValidatingAdmissionPolicy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ValidatingAdmissionPolicy) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ValidatingAdmissionPolicyBinding) DeepCopyInto(out *ValidatingAdmissionPolicyBinding) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingAdmissionPolicyBinding.\nfunc (in *ValidatingAdmissionPolicyBinding) DeepCopy() *ValidatingAdmissionPolicyBinding {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ValidatingAdmissionPolicyBinding)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ValidatingAdmissionPolicyBinding) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ValidatingAdmissionPolicyBindingList) DeepCopyInto(out *ValidatingAdmissionPolicyBindingList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ValidatingAdmissionPolicyBinding, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingAdmissionPolicyBindingList.\nfunc (in *ValidatingAdmissionPolicyBindingList) DeepCopy() *ValidatingAdmissionPolicyBindingList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ValidatingAdmissionPolicyBindingList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ValidatingAdmissionPolicyBindingList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ValidatingAdmissionPolicyBindingSpec) DeepCopyInto(out *ValidatingAdmissionPolicyBindingSpec) {\n\t*out = *in\n\tif in.ParamRef != nil {\n\t\tin, out := &in.ParamRef, &out.ParamRef\n\t\t*out = new(ParamRef)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.MatchResources != nil {\n\t\tin, out := &in.MatchResources, &out.MatchResources\n\t\t*out = new(MatchResources)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ValidationActions != nil {\n\t\tin, out := &in.ValidationActions, &out.ValidationActions\n\t\t*out = make([]ValidationAction, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingAdmissionPolicyBindingSpec.\nfunc (in *ValidatingAdmissionPolicyBindingSpec) DeepCopy() *ValidatingAdmissionPolicyBindingSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ValidatingAdmissionPolicyBindingSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ValidatingAdmissionPolicyList) DeepCopyInto(out *ValidatingAdmissionPolicyList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ValidatingAdmissionPolicy, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingAdmissionPolicyList.\nfunc (in *ValidatingAdmissionPolicyList) DeepCopy() *ValidatingAdmissionPolicyList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ValidatingAdmissionPolicyList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ValidatingAdmissionPolicyList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ValidatingAdmissionPolicySpec) DeepCopyInto(out *ValidatingAdmissionPolicySpec) {\n\t*out = *in\n\tif in.ParamKind != nil {\n\t\tin, out := &in.ParamKind, &out.ParamKind\n\t\t*out = new(ParamKind)\n\t\t**out = **in\n\t}\n\tif in.MatchConstraints != nil {\n\t\tin, out := &in.MatchConstraints, &out.MatchConstraints\n\t\t*out = new(MatchResources)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Validations != nil {\n\t\tin, out := &in.Validations, &out.Validations\n\t\t*out = make([]Validation, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.FailurePolicy != nil {\n\t\tin, out := &in.FailurePolicy, &out.FailurePolicy\n\t\t*out = new(FailurePolicyType)\n\t\t**out = **in\n\t}\n\tif in.AuditAnnotations != nil {\n\t\tin, out := &in.AuditAnnotations, &out.AuditAnnotations\n\t\t*out = make([]AuditAnnotation, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.MatchConditions != nil {\n\t\tin, out := &in.MatchConditions, &out.MatchConditions\n\t\t*out = make([]MatchCondition, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Variables != nil {\n\t\tin, out := &in.Variables, &out.Variables\n\t\t*out = make([]Variable, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingAdmissionPolicySpec.\nfunc (in *ValidatingAdmissionPolicySpec) DeepCopy() *ValidatingAdmissionPolicySpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ValidatingAdmissionPolicySpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ValidatingAdmissionPolicyStatus) DeepCopyInto(out *ValidatingAdmissionPolicyStatus) {\n\t*out = *in\n\tif in.TypeChecking != nil {\n\t\tin, out := &in.TypeChecking, &out.TypeChecking\n\t\t*out = new(TypeChecking)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]v1.Condition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingAdmissionPolicyStatus.\nfunc (in *ValidatingAdmissionPolicyStatus) DeepCopy() *ValidatingAdmissionPolicyStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ValidatingAdmissionPolicyStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Validation) DeepCopyInto(out *Validation) {\n\t*out = *in\n\tif in.Reason != nil {\n\t\tin, out := &in.Reason, &out.Reason\n\t\t*out = new(v1.StatusReason)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Validation.\nfunc (in *Validation) DeepCopy() *Validation {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Validation)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Variable) DeepCopyInto(out *Variable) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Variable.\nfunc (in *Variable) DeepCopy() *Variable {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Variable)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1alpha1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *MutatingAdmissionPolicy) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 32\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *MutatingAdmissionPolicy) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 35\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *MutatingAdmissionPolicy) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 38\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *MutatingAdmissionPolicyBinding) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 32\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *MutatingAdmissionPolicyBinding) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 35\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *MutatingAdmissionPolicyBinding) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 38\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *MutatingAdmissionPolicyBindingList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 32\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *MutatingAdmissionPolicyBindingList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 35\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *MutatingAdmissionPolicyBindingList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 38\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *MutatingAdmissionPolicyList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 32\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *MutatingAdmissionPolicyList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 35\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *MutatingAdmissionPolicyList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 38\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ValidatingAdmissionPolicy) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 26\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ValidatingAdmissionPolicy) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 29\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ValidatingAdmissionPolicy) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 32\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ValidatingAdmissionPolicyBinding) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 26\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ValidatingAdmissionPolicyBinding) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 29\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ValidatingAdmissionPolicyBinding) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 32\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ValidatingAdmissionPolicyBindingList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 26\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ValidatingAdmissionPolicyBindingList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 29\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ValidatingAdmissionPolicyBindingList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 32\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ValidatingAdmissionPolicyList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 26\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ValidatingAdmissionPolicyList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 29\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ValidatingAdmissionPolicyList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 32\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1beta1/doc.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n// +groupName=admissionregistration.k8s.io\n\n// Package v1beta1 is the v1beta1 version of the API.\n// AdmissionConfiguration and AdmissionPluginConfiguration are legacy static admission plugin configuration\n// MutatingWebhookConfiguration and ValidatingWebhookConfiguration are for the\n// new dynamic admission controller configuration.\npackage v1beta1 // import \"k8s.io/api/admissionregistration/v1beta1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1beta1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/admissionregistration/v1beta1/generated.proto\n\npackage v1beta1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tv11 \"k8s.io/api/admissionregistration/v1\"\n\tk8s_io_apimachinery_pkg_apis_meta_v1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *AuditAnnotation) Reset()      { *m = AuditAnnotation{} }\nfunc (*AuditAnnotation) ProtoMessage() {}\nfunc (*AuditAnnotation) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7f7c65a4f012fb19, []int{0}\n}\nfunc (m *AuditAnnotation) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *AuditAnnotation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *AuditAnnotation) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_AuditAnnotation.Merge(m, src)\n}\nfunc (m *AuditAnnotation) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *AuditAnnotation) XXX_DiscardUnknown() {\n\txxx_messageInfo_AuditAnnotation.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_AuditAnnotation proto.InternalMessageInfo\n\nfunc (m *ExpressionWarning) Reset()      { *m = ExpressionWarning{} }\nfunc (*ExpressionWarning) ProtoMessage() {}\nfunc (*ExpressionWarning) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7f7c65a4f012fb19, []int{1}\n}\nfunc (m *ExpressionWarning) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ExpressionWarning) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ExpressionWarning) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ExpressionWarning.Merge(m, src)\n}\nfunc (m *ExpressionWarning) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ExpressionWarning) XXX_DiscardUnknown() {\n\txxx_messageInfo_ExpressionWarning.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ExpressionWarning proto.InternalMessageInfo\n\nfunc (m *MatchCondition) Reset()      { *m = MatchCondition{} }\nfunc (*MatchCondition) ProtoMessage() {}\nfunc (*MatchCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7f7c65a4f012fb19, []int{2}\n}\nfunc (m *MatchCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MatchCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MatchCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MatchCondition.Merge(m, src)\n}\nfunc (m *MatchCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MatchCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_MatchCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MatchCondition proto.InternalMessageInfo\n\nfunc (m *MatchResources) Reset()      { *m = MatchResources{} }\nfunc (*MatchResources) ProtoMessage() {}\nfunc (*MatchResources) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7f7c65a4f012fb19, []int{3}\n}\nfunc (m *MatchResources) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MatchResources) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MatchResources) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MatchResources.Merge(m, src)\n}\nfunc (m *MatchResources) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MatchResources) XXX_DiscardUnknown() {\n\txxx_messageInfo_MatchResources.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MatchResources proto.InternalMessageInfo\n\nfunc (m *MutatingWebhook) Reset()      { *m = MutatingWebhook{} }\nfunc (*MutatingWebhook) ProtoMessage() {}\nfunc (*MutatingWebhook) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7f7c65a4f012fb19, []int{4}\n}\nfunc (m *MutatingWebhook) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MutatingWebhook) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MutatingWebhook) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MutatingWebhook.Merge(m, src)\n}\nfunc (m *MutatingWebhook) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MutatingWebhook) XXX_DiscardUnknown() {\n\txxx_messageInfo_MutatingWebhook.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MutatingWebhook proto.InternalMessageInfo\n\nfunc (m *MutatingWebhookConfiguration) Reset()      { *m = MutatingWebhookConfiguration{} }\nfunc (*MutatingWebhookConfiguration) ProtoMessage() {}\nfunc (*MutatingWebhookConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7f7c65a4f012fb19, []int{5}\n}\nfunc (m *MutatingWebhookConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MutatingWebhookConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MutatingWebhookConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MutatingWebhookConfiguration.Merge(m, src)\n}\nfunc (m *MutatingWebhookConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MutatingWebhookConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_MutatingWebhookConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MutatingWebhookConfiguration proto.InternalMessageInfo\n\nfunc (m *MutatingWebhookConfigurationList) Reset()      { *m = MutatingWebhookConfigurationList{} }\nfunc (*MutatingWebhookConfigurationList) ProtoMessage() {}\nfunc (*MutatingWebhookConfigurationList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7f7c65a4f012fb19, []int{6}\n}\nfunc (m *MutatingWebhookConfigurationList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MutatingWebhookConfigurationList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MutatingWebhookConfigurationList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MutatingWebhookConfigurationList.Merge(m, src)\n}\nfunc (m *MutatingWebhookConfigurationList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MutatingWebhookConfigurationList) XXX_DiscardUnknown() {\n\txxx_messageInfo_MutatingWebhookConfigurationList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MutatingWebhookConfigurationList proto.InternalMessageInfo\n\nfunc (m *NamedRuleWithOperations) Reset()      { *m = NamedRuleWithOperations{} }\nfunc (*NamedRuleWithOperations) ProtoMessage() {}\nfunc (*NamedRuleWithOperations) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7f7c65a4f012fb19, []int{7}\n}\nfunc (m *NamedRuleWithOperations) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NamedRuleWithOperations) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NamedRuleWithOperations) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NamedRuleWithOperations.Merge(m, src)\n}\nfunc (m *NamedRuleWithOperations) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NamedRuleWithOperations) XXX_DiscardUnknown() {\n\txxx_messageInfo_NamedRuleWithOperations.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NamedRuleWithOperations proto.InternalMessageInfo\n\nfunc (m *ParamKind) Reset()      { *m = ParamKind{} }\nfunc (*ParamKind) ProtoMessage() {}\nfunc (*ParamKind) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7f7c65a4f012fb19, []int{8}\n}\nfunc (m *ParamKind) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ParamKind) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ParamKind) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ParamKind.Merge(m, src)\n}\nfunc (m *ParamKind) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ParamKind) XXX_DiscardUnknown() {\n\txxx_messageInfo_ParamKind.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ParamKind proto.InternalMessageInfo\n\nfunc (m *ParamRef) Reset()      { *m = ParamRef{} }\nfunc (*ParamRef) ProtoMessage() {}\nfunc (*ParamRef) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7f7c65a4f012fb19, []int{9}\n}\nfunc (m *ParamRef) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ParamRef) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ParamRef) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ParamRef.Merge(m, src)\n}\nfunc (m *ParamRef) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ParamRef) XXX_DiscardUnknown() {\n\txxx_messageInfo_ParamRef.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ParamRef proto.InternalMessageInfo\n\nfunc (m *ServiceReference) Reset()      { *m = ServiceReference{} }\nfunc (*ServiceReference) ProtoMessage() {}\nfunc (*ServiceReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7f7c65a4f012fb19, []int{10}\n}\nfunc (m *ServiceReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ServiceReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ServiceReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServiceReference.Merge(m, src)\n}\nfunc (m *ServiceReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ServiceReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServiceReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServiceReference proto.InternalMessageInfo\n\nfunc (m *TypeChecking) Reset()      { *m = TypeChecking{} }\nfunc (*TypeChecking) ProtoMessage() {}\nfunc (*TypeChecking) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7f7c65a4f012fb19, []int{11}\n}\nfunc (m *TypeChecking) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TypeChecking) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TypeChecking) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TypeChecking.Merge(m, src)\n}\nfunc (m *TypeChecking) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TypeChecking) XXX_DiscardUnknown() {\n\txxx_messageInfo_TypeChecking.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TypeChecking proto.InternalMessageInfo\n\nfunc (m *ValidatingAdmissionPolicy) Reset()      { *m = ValidatingAdmissionPolicy{} }\nfunc (*ValidatingAdmissionPolicy) ProtoMessage() {}\nfunc (*ValidatingAdmissionPolicy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7f7c65a4f012fb19, []int{12}\n}\nfunc (m *ValidatingAdmissionPolicy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ValidatingAdmissionPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ValidatingAdmissionPolicy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ValidatingAdmissionPolicy.Merge(m, src)\n}\nfunc (m *ValidatingAdmissionPolicy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ValidatingAdmissionPolicy) XXX_DiscardUnknown() {\n\txxx_messageInfo_ValidatingAdmissionPolicy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ValidatingAdmissionPolicy proto.InternalMessageInfo\n\nfunc (m *ValidatingAdmissionPolicyBinding) Reset()      { *m = ValidatingAdmissionPolicyBinding{} }\nfunc (*ValidatingAdmissionPolicyBinding) ProtoMessage() {}\nfunc (*ValidatingAdmissionPolicyBinding) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7f7c65a4f012fb19, []int{13}\n}\nfunc (m *ValidatingAdmissionPolicyBinding) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ValidatingAdmissionPolicyBinding) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ValidatingAdmissionPolicyBinding) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ValidatingAdmissionPolicyBinding.Merge(m, src)\n}\nfunc (m *ValidatingAdmissionPolicyBinding) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ValidatingAdmissionPolicyBinding) XXX_DiscardUnknown() {\n\txxx_messageInfo_ValidatingAdmissionPolicyBinding.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ValidatingAdmissionPolicyBinding proto.InternalMessageInfo\n\nfunc (m *ValidatingAdmissionPolicyBindingList) Reset()      { *m = ValidatingAdmissionPolicyBindingList{} }\nfunc (*ValidatingAdmissionPolicyBindingList) ProtoMessage() {}\nfunc (*ValidatingAdmissionPolicyBindingList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7f7c65a4f012fb19, []int{14}\n}\nfunc (m *ValidatingAdmissionPolicyBindingList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ValidatingAdmissionPolicyBindingList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ValidatingAdmissionPolicyBindingList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ValidatingAdmissionPolicyBindingList.Merge(m, src)\n}\nfunc (m *ValidatingAdmissionPolicyBindingList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ValidatingAdmissionPolicyBindingList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ValidatingAdmissionPolicyBindingList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ValidatingAdmissionPolicyBindingList proto.InternalMessageInfo\n\nfunc (m *ValidatingAdmissionPolicyBindingSpec) Reset()      { *m = ValidatingAdmissionPolicyBindingSpec{} }\nfunc (*ValidatingAdmissionPolicyBindingSpec) ProtoMessage() {}\nfunc (*ValidatingAdmissionPolicyBindingSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7f7c65a4f012fb19, []int{15}\n}\nfunc (m *ValidatingAdmissionPolicyBindingSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ValidatingAdmissionPolicyBindingSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ValidatingAdmissionPolicyBindingSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ValidatingAdmissionPolicyBindingSpec.Merge(m, src)\n}\nfunc (m *ValidatingAdmissionPolicyBindingSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ValidatingAdmissionPolicyBindingSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ValidatingAdmissionPolicyBindingSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ValidatingAdmissionPolicyBindingSpec proto.InternalMessageInfo\n\nfunc (m *ValidatingAdmissionPolicyList) Reset()      { *m = ValidatingAdmissionPolicyList{} }\nfunc (*ValidatingAdmissionPolicyList) ProtoMessage() {}\nfunc (*ValidatingAdmissionPolicyList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7f7c65a4f012fb19, []int{16}\n}\nfunc (m *ValidatingAdmissionPolicyList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ValidatingAdmissionPolicyList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ValidatingAdmissionPolicyList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ValidatingAdmissionPolicyList.Merge(m, src)\n}\nfunc (m *ValidatingAdmissionPolicyList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ValidatingAdmissionPolicyList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ValidatingAdmissionPolicyList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ValidatingAdmissionPolicyList proto.InternalMessageInfo\n\nfunc (m *ValidatingAdmissionPolicySpec) Reset()      { *m = ValidatingAdmissionPolicySpec{} }\nfunc (*ValidatingAdmissionPolicySpec) ProtoMessage() {}\nfunc (*ValidatingAdmissionPolicySpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7f7c65a4f012fb19, []int{17}\n}\nfunc (m *ValidatingAdmissionPolicySpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ValidatingAdmissionPolicySpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ValidatingAdmissionPolicySpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ValidatingAdmissionPolicySpec.Merge(m, src)\n}\nfunc (m *ValidatingAdmissionPolicySpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ValidatingAdmissionPolicySpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ValidatingAdmissionPolicySpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ValidatingAdmissionPolicySpec proto.InternalMessageInfo\n\nfunc (m *ValidatingAdmissionPolicyStatus) Reset()      { *m = ValidatingAdmissionPolicyStatus{} }\nfunc (*ValidatingAdmissionPolicyStatus) ProtoMessage() {}\nfunc (*ValidatingAdmissionPolicyStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7f7c65a4f012fb19, []int{18}\n}\nfunc (m *ValidatingAdmissionPolicyStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ValidatingAdmissionPolicyStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ValidatingAdmissionPolicyStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ValidatingAdmissionPolicyStatus.Merge(m, src)\n}\nfunc (m *ValidatingAdmissionPolicyStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ValidatingAdmissionPolicyStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ValidatingAdmissionPolicyStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ValidatingAdmissionPolicyStatus proto.InternalMessageInfo\n\nfunc (m *ValidatingWebhook) Reset()      { *m = ValidatingWebhook{} }\nfunc (*ValidatingWebhook) ProtoMessage() {}\nfunc (*ValidatingWebhook) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7f7c65a4f012fb19, []int{19}\n}\nfunc (m *ValidatingWebhook) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ValidatingWebhook) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ValidatingWebhook) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ValidatingWebhook.Merge(m, src)\n}\nfunc (m *ValidatingWebhook) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ValidatingWebhook) XXX_DiscardUnknown() {\n\txxx_messageInfo_ValidatingWebhook.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ValidatingWebhook proto.InternalMessageInfo\n\nfunc (m *ValidatingWebhookConfiguration) Reset()      { *m = ValidatingWebhookConfiguration{} }\nfunc (*ValidatingWebhookConfiguration) ProtoMessage() {}\nfunc (*ValidatingWebhookConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7f7c65a4f012fb19, []int{20}\n}\nfunc (m *ValidatingWebhookConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ValidatingWebhookConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ValidatingWebhookConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ValidatingWebhookConfiguration.Merge(m, src)\n}\nfunc (m *ValidatingWebhookConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ValidatingWebhookConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_ValidatingWebhookConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ValidatingWebhookConfiguration proto.InternalMessageInfo\n\nfunc (m *ValidatingWebhookConfigurationList) Reset()      { *m = ValidatingWebhookConfigurationList{} }\nfunc (*ValidatingWebhookConfigurationList) ProtoMessage() {}\nfunc (*ValidatingWebhookConfigurationList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7f7c65a4f012fb19, []int{21}\n}\nfunc (m *ValidatingWebhookConfigurationList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ValidatingWebhookConfigurationList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ValidatingWebhookConfigurationList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ValidatingWebhookConfigurationList.Merge(m, src)\n}\nfunc (m *ValidatingWebhookConfigurationList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ValidatingWebhookConfigurationList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ValidatingWebhookConfigurationList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ValidatingWebhookConfigurationList proto.InternalMessageInfo\n\nfunc (m *Validation) Reset()      { *m = Validation{} }\nfunc (*Validation) ProtoMessage() {}\nfunc (*Validation) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7f7c65a4f012fb19, []int{22}\n}\nfunc (m *Validation) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Validation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Validation) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Validation.Merge(m, src)\n}\nfunc (m *Validation) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Validation) XXX_DiscardUnknown() {\n\txxx_messageInfo_Validation.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Validation proto.InternalMessageInfo\n\nfunc (m *Variable) Reset()      { *m = Variable{} }\nfunc (*Variable) ProtoMessage() {}\nfunc (*Variable) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7f7c65a4f012fb19, []int{23}\n}\nfunc (m *Variable) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Variable) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Variable) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Variable.Merge(m, src)\n}\nfunc (m *Variable) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Variable) XXX_DiscardUnknown() {\n\txxx_messageInfo_Variable.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Variable proto.InternalMessageInfo\n\nfunc (m *WebhookClientConfig) Reset()      { *m = WebhookClientConfig{} }\nfunc (*WebhookClientConfig) ProtoMessage() {}\nfunc (*WebhookClientConfig) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7f7c65a4f012fb19, []int{24}\n}\nfunc (m *WebhookClientConfig) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *WebhookClientConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *WebhookClientConfig) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_WebhookClientConfig.Merge(m, src)\n}\nfunc (m *WebhookClientConfig) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *WebhookClientConfig) XXX_DiscardUnknown() {\n\txxx_messageInfo_WebhookClientConfig.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_WebhookClientConfig proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*AuditAnnotation)(nil), \"k8s.io.api.admissionregistration.v1beta1.AuditAnnotation\")\n\tproto.RegisterType((*ExpressionWarning)(nil), \"k8s.io.api.admissionregistration.v1beta1.ExpressionWarning\")\n\tproto.RegisterType((*MatchCondition)(nil), \"k8s.io.api.admissionregistration.v1beta1.MatchCondition\")\n\tproto.RegisterType((*MatchResources)(nil), \"k8s.io.api.admissionregistration.v1beta1.MatchResources\")\n\tproto.RegisterType((*MutatingWebhook)(nil), \"k8s.io.api.admissionregistration.v1beta1.MutatingWebhook\")\n\tproto.RegisterType((*MutatingWebhookConfiguration)(nil), \"k8s.io.api.admissionregistration.v1beta1.MutatingWebhookConfiguration\")\n\tproto.RegisterType((*MutatingWebhookConfigurationList)(nil), \"k8s.io.api.admissionregistration.v1beta1.MutatingWebhookConfigurationList\")\n\tproto.RegisterType((*NamedRuleWithOperations)(nil), \"k8s.io.api.admissionregistration.v1beta1.NamedRuleWithOperations\")\n\tproto.RegisterType((*ParamKind)(nil), \"k8s.io.api.admissionregistration.v1beta1.ParamKind\")\n\tproto.RegisterType((*ParamRef)(nil), \"k8s.io.api.admissionregistration.v1beta1.ParamRef\")\n\tproto.RegisterType((*ServiceReference)(nil), \"k8s.io.api.admissionregistration.v1beta1.ServiceReference\")\n\tproto.RegisterType((*TypeChecking)(nil), \"k8s.io.api.admissionregistration.v1beta1.TypeChecking\")\n\tproto.RegisterType((*ValidatingAdmissionPolicy)(nil), \"k8s.io.api.admissionregistration.v1beta1.ValidatingAdmissionPolicy\")\n\tproto.RegisterType((*ValidatingAdmissionPolicyBinding)(nil), \"k8s.io.api.admissionregistration.v1beta1.ValidatingAdmissionPolicyBinding\")\n\tproto.RegisterType((*ValidatingAdmissionPolicyBindingList)(nil), \"k8s.io.api.admissionregistration.v1beta1.ValidatingAdmissionPolicyBindingList\")\n\tproto.RegisterType((*ValidatingAdmissionPolicyBindingSpec)(nil), \"k8s.io.api.admissionregistration.v1beta1.ValidatingAdmissionPolicyBindingSpec\")\n\tproto.RegisterType((*ValidatingAdmissionPolicyList)(nil), \"k8s.io.api.admissionregistration.v1beta1.ValidatingAdmissionPolicyList\")\n\tproto.RegisterType((*ValidatingAdmissionPolicySpec)(nil), \"k8s.io.api.admissionregistration.v1beta1.ValidatingAdmissionPolicySpec\")\n\tproto.RegisterType((*ValidatingAdmissionPolicyStatus)(nil), \"k8s.io.api.admissionregistration.v1beta1.ValidatingAdmissionPolicyStatus\")\n\tproto.RegisterType((*ValidatingWebhook)(nil), \"k8s.io.api.admissionregistration.v1beta1.ValidatingWebhook\")\n\tproto.RegisterType((*ValidatingWebhookConfiguration)(nil), \"k8s.io.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration\")\n\tproto.RegisterType((*ValidatingWebhookConfigurationList)(nil), \"k8s.io.api.admissionregistration.v1beta1.ValidatingWebhookConfigurationList\")\n\tproto.RegisterType((*Validation)(nil), \"k8s.io.api.admissionregistration.v1beta1.Validation\")\n\tproto.RegisterType((*Variable)(nil), \"k8s.io.api.admissionregistration.v1beta1.Variable\")\n\tproto.RegisterType((*WebhookClientConfig)(nil), \"k8s.io.api.admissionregistration.v1beta1.WebhookClientConfig\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/admissionregistration/v1beta1/generated.proto\", fileDescriptor_7f7c65a4f012fb19)\n}\n\nvar fileDescriptor_7f7c65a4f012fb19 = []byte{\n\t// 1957 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x1a, 0x4d, 0x6f, 0x1b, 0xc7,\n\t0xd5, 0x2b, 0x52, 0x12, 0xf9, 0xa8, 0x2f, 0x4e, 0x9c, 0x8a, 0x76, 0x1c, 0x52, 0x58, 0x04, 0x85,\n\t0x0c, 0xb4, 0x64, 0xac, 0x04, 0x89, 0xeb, 0xa0, 0x28, 0x44, 0xc5, 0x76, 0xed, 0x58, 0xb2, 0x30,\n\t0x4a, 0x24, 0xa0, 0x4d, 0x00, 0x8f, 0x76, 0x87, 0xe4, 0x96, 0xe4, 0xee, 0x76, 0x67, 0x49, 0x5b,\n\t0x2d, 0xd0, 0x16, 0xe8, 0x21, 0xd7, 0x02, 0xbd, 0x14, 0xe8, 0xa9, 0x7f, 0xa1, 0xf7, 0x02, 0xed,\n\t0xcd, 0xc7, 0xdc, 0x6a, 0xa0, 0x28, 0x51, 0xb1, 0x87, 0x9e, 0x7a, 0xe8, 0xa1, 0x3d, 0xe8, 0xd2,\n\t0x62, 0x66, 0x67, 0x3f, 0xb9, 0xb4, 0x56, 0xaa, 0xac, 0x5c, 0x7c, 0xd3, 0xbe, 0xcf, 0x79, 0x6f,\n\t0xde, 0xd7, 0x3c, 0x0a, 0x6e, 0x77, 0x6f, 0xb3, 0xba, 0x61, 0x35, 0x88, 0x6d, 0x34, 0x88, 0xde,\n\t0x37, 0x18, 0x33, 0x2c, 0xd3, 0xa1, 0x6d, 0x83, 0xb9, 0x0e, 0x71, 0x0d, 0xcb, 0x6c, 0x0c, 0x6f,\n\t0x1d, 0x52, 0x97, 0xdc, 0x6a, 0xb4, 0xa9, 0x49, 0x1d, 0xe2, 0x52, 0xbd, 0x6e, 0x3b, 0x96, 0x6b,\n\t0xa1, 0x75, 0x8f, 0xb3, 0x4e, 0x6c, 0xa3, 0x9e, 0xca, 0x59, 0x97, 0x9c, 0xd7, 0xbf, 0xdd, 0x36,\n\t0xdc, 0xce, 0xe0, 0xb0, 0xae, 0x59, 0xfd, 0x46, 0xdb, 0x6a, 0x5b, 0x0d, 0x21, 0xe0, 0x70, 0xd0,\n\t0x12, 0x5f, 0xe2, 0x43, 0xfc, 0xe5, 0x09, 0xbe, 0xfe, 0x5e, 0x86, 0x23, 0x25, 0x4f, 0x73, 0xfd,\n\t0xfd, 0x90, 0xa9, 0x4f, 0xb4, 0x8e, 0x61, 0x52, 0xe7, 0xa8, 0x61, 0x77, 0xdb, 0x1c, 0xc0, 0x1a,\n\t0x7d, 0xea, 0x92, 0x34, 0xae, 0xc6, 0x34, 0x2e, 0x67, 0x60, 0xba, 0x46, 0x9f, 0x4e, 0x30, 0x7c,\n\t0x70, 0x1a, 0x03, 0xd3, 0x3a, 0xb4, 0x4f, 0x92, 0x7c, 0x2a, 0x83, 0xe5, 0xcd, 0x81, 0x6e, 0xb8,\n\t0x9b, 0xa6, 0x69, 0xb9, 0xc2, 0x08, 0xf4, 0x36, 0xe4, 0xba, 0xf4, 0xa8, 0xa2, 0xac, 0x29, 0xeb,\n\t0xc5, 0x66, 0xe9, 0xf9, 0xa8, 0x76, 0x65, 0x3c, 0xaa, 0xe5, 0x3e, 0xa1, 0x47, 0x98, 0xc3, 0xd1,\n\t0x26, 0x2c, 0x0f, 0x49, 0x6f, 0x40, 0xef, 0x3e, 0xb3, 0x1d, 0x2a, 0x5c, 0x50, 0x99, 0x11, 0xa4,\n\t0xab, 0x92, 0x74, 0x79, 0x3f, 0x8e, 0xc6, 0x49, 0x7a, 0xb5, 0x07, 0xe5, 0xf0, 0xeb, 0x80, 0x38,\n\t0xa6, 0x61, 0xb6, 0xd1, 0xb7, 0xa0, 0xd0, 0x32, 0x68, 0x4f, 0xc7, 0xb4, 0x25, 0x05, 0xae, 0x48,\n\t0x81, 0x85, 0x7b, 0x12, 0x8e, 0x03, 0x0a, 0x74, 0x13, 0xe6, 0x9f, 0x7a, 0x8c, 0x95, 0x9c, 0x20,\n\t0x5e, 0x96, 0xc4, 0xf3, 0x52, 0x1e, 0xf6, 0xf1, 0x6a, 0x0b, 0x96, 0xb6, 0x89, 0xab, 0x75, 0xb6,\n\t0x2c, 0x53, 0x37, 0x84, 0x85, 0x6b, 0x90, 0x37, 0x49, 0x9f, 0x4a, 0x13, 0x17, 0x24, 0x67, 0x7e,\n\t0x87, 0xf4, 0x29, 0x16, 0x18, 0xb4, 0x01, 0x40, 0x93, 0xf6, 0x21, 0x49, 0x07, 0x11, 0xd3, 0x22,\n\t0x54, 0xea, 0x9f, 0xf3, 0x52, 0x11, 0xa6, 0xcc, 0x1a, 0x38, 0x1a, 0x65, 0xe8, 0x19, 0x94, 0xb9,\n\t0x38, 0x66, 0x13, 0x8d, 0xee, 0xd1, 0x1e, 0xd5, 0x5c, 0xcb, 0x11, 0x5a, 0x4b, 0x1b, 0xef, 0xd5,\n\t0xc3, 0x30, 0x0d, 0x6e, 0xac, 0x6e, 0x77, 0xdb, 0x1c, 0xc0, 0xea, 0x3c, 0x30, 0xea, 0xc3, 0x5b,\n\t0xf5, 0x47, 0xe4, 0x90, 0xf6, 0x7c, 0xd6, 0xe6, 0x9b, 0xe3, 0x51, 0xad, 0xbc, 0x93, 0x94, 0x88,\n\t0x27, 0x95, 0x20, 0x0b, 0x96, 0xac, 0xc3, 0x1f, 0x51, 0xcd, 0x0d, 0xd4, 0xce, 0x9c, 0x5f, 0x2d,\n\t0x1a, 0x8f, 0x6a, 0x4b, 0x8f, 0x63, 0xe2, 0x70, 0x42, 0x3c, 0xfa, 0x19, 0x2c, 0x3a, 0xd2, 0x6e,\n\t0x3c, 0xe8, 0x51, 0x56, 0xc9, 0xad, 0xe5, 0xd6, 0x4b, 0x1b, 0x9b, 0xf5, 0xac, 0xd9, 0x58, 0xe7,\n\t0x76, 0xe9, 0x9c, 0xf7, 0xc0, 0x70, 0x3b, 0x8f, 0x6d, 0xea, 0xa1, 0x59, 0xf3, 0x4d, 0xe9, 0xf7,\n\t0x45, 0x1c, 0x95, 0x8f, 0xe3, 0xea, 0xd0, 0xaf, 0x15, 0xb8, 0x4a, 0x9f, 0x69, 0xbd, 0x81, 0x4e,\n\t0x63, 0x74, 0x95, 0xfc, 0x45, 0x9d, 0xe3, 0x86, 0x3c, 0xc7, 0xd5, 0xbb, 0x29, 0x6a, 0x70, 0xaa,\n\t0x72, 0xf4, 0x31, 0x94, 0xfa, 0x3c, 0x24, 0x76, 0xad, 0x9e, 0xa1, 0x1d, 0x55, 0xe6, 0x45, 0x20,\n\t0xa9, 0xe3, 0x51, 0xad, 0xb4, 0x1d, 0x82, 0x4f, 0x46, 0xb5, 0xe5, 0xc8, 0xe7, 0xa7, 0x47, 0x36,\n\t0xc5, 0x51, 0x36, 0xf5, 0x4f, 0x05, 0x58, 0xde, 0x1e, 0xf0, 0xf4, 0x34, 0xdb, 0x07, 0xf4, 0xb0,\n\t0x63, 0x59, 0xdd, 0x0c, 0x31, 0xfc, 0x14, 0x16, 0xb4, 0x9e, 0x41, 0x4d, 0x77, 0xcb, 0x32, 0x5b,\n\t0x46, 0x5b, 0x06, 0xc0, 0x77, 0xb3, 0x3b, 0x42, 0xaa, 0xda, 0x8a, 0x08, 0x69, 0x5e, 0x95, 0x8a,\n\t0x16, 0xa2, 0x50, 0x1c, 0x53, 0x84, 0x3e, 0x87, 0x59, 0x27, 0x12, 0x02, 0x1f, 0x66, 0xd1, 0x58,\n\t0x4f, 0x71, 0xf8, 0xa2, 0xd4, 0x35, 0xeb, 0x79, 0xd8, 0x13, 0x8a, 0x1e, 0xc1, 0x62, 0x8b, 0x18,\n\t0xbd, 0x81, 0x43, 0xa5, 0x53, 0xf3, 0xc2, 0x03, 0xdf, 0xe4, 0x11, 0x72, 0x2f, 0x8a, 0x38, 0x19,\n\t0xd5, 0xca, 0x31, 0x80, 0x70, 0x6c, 0x9c, 0x39, 0x79, 0x41, 0xc5, 0x73, 0x5d, 0x50, 0x7a, 0x9e,\n\t0xcf, 0x7e, 0x3d, 0x79, 0x5e, 0x7a, 0xb5, 0x79, 0xfe, 0x31, 0x94, 0x98, 0xa1, 0xd3, 0xbb, 0xad,\n\t0x16, 0xd5, 0x5c, 0x56, 0x99, 0x0b, 0x1d, 0xb6, 0x17, 0x82, 0xb9, 0xc3, 0xc2, 0xcf, 0xad, 0x1e,\n\t0x61, 0x0c, 0x47, 0xd9, 0xd0, 0x1d, 0x58, 0xe2, 0x5d, 0xc9, 0x1a, 0xb8, 0x7b, 0x54, 0xb3, 0x4c,\n\t0x9d, 0x89, 0xd4, 0x98, 0xf5, 0x4e, 0xf0, 0x69, 0x0c, 0x83, 0x13, 0x94, 0xe8, 0x33, 0x58, 0x0d,\n\t0xa2, 0x08, 0xd3, 0xa1, 0x41, 0x9f, 0xee, 0x53, 0x87, 0x7f, 0xb0, 0x4a, 0x61, 0x2d, 0xb7, 0x5e,\n\t0x6c, 0xbe, 0x35, 0x1e, 0xd5, 0x56, 0x37, 0xd3, 0x49, 0xf0, 0x34, 0x5e, 0xf4, 0x04, 0x90, 0x43,\n\t0x0d, 0x73, 0x68, 0x69, 0x22, 0xfc, 0x64, 0x40, 0x80, 0xb0, 0xef, 0xdd, 0xf1, 0xa8, 0x86, 0xf0,\n\t0x04, 0xf6, 0x64, 0x54, 0xfb, 0xc6, 0x24, 0x54, 0x84, 0x47, 0x8a, 0x2c, 0xf4, 0x53, 0x58, 0xee,\n\t0xc7, 0x1a, 0x11, 0xab, 0x2c, 0x88, 0x0c, 0xb9, 0x9d, 0x3d, 0x27, 0xe3, 0x9d, 0x2c, 0xec, 0xb9,\n\t0x71, 0x38, 0xc3, 0x49, 0x4d, 0xea, 0x5f, 0x15, 0xb8, 0x91, 0xa8, 0x21, 0x5e, 0xba, 0x0e, 0x3c,\n\t0x0d, 0xe8, 0x09, 0x14, 0x78, 0x54, 0xe8, 0xc4, 0x25, 0xb2, 0x45, 0xbd, 0x9b, 0x2d, 0x86, 0xbc,\n\t0x80, 0xd9, 0xa6, 0x2e, 0x09, 0x5b, 0x64, 0x08, 0xc3, 0x81, 0x54, 0xf4, 0x43, 0x28, 0x48, 0xcd,\n\t0xac, 0x32, 0x23, 0x0c, 0xff, 0xce, 0x19, 0x0c, 0x8f, 0x9f, 0xbd, 0x99, 0xe7, 0xaa, 0x70, 0x20,\n\t0x50, 0xfd, 0xa7, 0x02, 0x6b, 0x2f, 0xb3, 0xef, 0x91, 0xc1, 0x5c, 0xf4, 0xf9, 0x84, 0x8d, 0xf5,\n\t0x8c, 0x79, 0x62, 0x30, 0xcf, 0xc2, 0x60, 0x26, 0xf1, 0x21, 0x11, 0xfb, 0xba, 0x30, 0x6b, 0xb8,\n\t0xb4, 0xef, 0x1b, 0x77, 0xef, 0xdc, 0xc6, 0xc5, 0x0e, 0x1e, 0x96, 0xc1, 0x07, 0x5c, 0x38, 0xf6,\n\t0x74, 0xa8, 0x2f, 0x14, 0x58, 0x9d, 0xd2, 0xa9, 0xd0, 0x87, 0x61, 0x2f, 0x16, 0x45, 0xa4, 0xa2,\n\t0x88, 0xbc, 0x28, 0x47, 0x9b, 0xa8, 0x40, 0xe0, 0x38, 0x1d, 0xfa, 0xa5, 0x02, 0xc8, 0x99, 0x90,\n\t0x27, 0x3b, 0xc7, 0xb9, 0xeb, 0xf8, 0x75, 0x69, 0x00, 0x9a, 0xc4, 0xe1, 0x14, 0x75, 0x2a, 0x81,\n\t0xe2, 0x2e, 0x71, 0x48, 0xff, 0x13, 0xc3, 0xd4, 0xf9, 0x24, 0x46, 0x6c, 0x43, 0x66, 0xa9, 0xec,\n\t0x76, 0x41, 0x98, 0x6d, 0xee, 0x3e, 0x90, 0x18, 0x1c, 0xa1, 0xe2, 0xbd, 0xb1, 0x6b, 0x98, 0xba,\n\t0x9c, 0xdb, 0x82, 0xde, 0xc8, 0xe5, 0x61, 0x81, 0x51, 0x7f, 0x3f, 0x03, 0x05, 0xa1, 0x83, 0xcf,\n\t0x92, 0xa7, 0xb7, 0xd2, 0x06, 0x14, 0x83, 0xd2, 0x2b, 0xa5, 0x96, 0x25, 0x59, 0x31, 0x28, 0xd3,\n\t0x38, 0xa4, 0x41, 0x5f, 0x40, 0x81, 0xf9, 0x05, 0x39, 0x77, 0xfe, 0x82, 0xbc, 0xc0, 0x23, 0x2d,\n\t0x28, 0xc5, 0x81, 0x48, 0xe4, 0xc2, 0xaa, 0xcd, 0x4f, 0x4f, 0x5d, 0xea, 0xec, 0x58, 0xee, 0x3d,\n\t0x6b, 0x60, 0xea, 0x9b, 0x1a, 0xf7, 0x9e, 0xec, 0x86, 0x77, 0x78, 0x09, 0xdc, 0x4d, 0x27, 0x39,\n\t0x19, 0xd5, 0xde, 0x9a, 0x82, 0x12, 0xa5, 0x6b, 0x9a, 0x68, 0xf5, 0x77, 0x0a, 0xac, 0xec, 0x51,\n\t0x67, 0x68, 0x68, 0x14, 0xd3, 0x16, 0x75, 0xa8, 0xa9, 0x25, 0x5c, 0xa3, 0x64, 0x70, 0x8d, 0xef,\n\t0xed, 0x99, 0xa9, 0xde, 0xbe, 0x01, 0x79, 0x9b, 0xb8, 0x1d, 0x39, 0xd8, 0x17, 0x38, 0x76, 0x97,\n\t0xb8, 0x1d, 0x2c, 0xa0, 0x02, 0x6b, 0x39, 0xae, 0x30, 0x74, 0x56, 0x62, 0x2d, 0xc7, 0xc5, 0x02,\n\t0xaa, 0xfe, 0x46, 0x81, 0x05, 0x6e, 0xc5, 0x56, 0x87, 0x6a, 0x5d, 0xfe, 0xac, 0xf8, 0x52, 0x01,\n\t0x44, 0x93, 0x8f, 0x0d, 0x2f, 0x23, 0x4a, 0x1b, 0x1f, 0x65, 0x4f, 0xd1, 0x89, 0x07, 0x4b, 0x18,\n\t0xd6, 0x13, 0x28, 0x86, 0x53, 0x54, 0xaa, 0x7f, 0x99, 0x81, 0x6b, 0xfb, 0xa4, 0x67, 0xe8, 0x22,\n\t0xd5, 0x83, 0xfe, 0x24, 0x9b, 0xc3, 0xab, 0x2f, 0xbf, 0x06, 0xe4, 0x99, 0x4d, 0x35, 0x99, 0xcd,\n\t0xf7, 0xb3, 0x9b, 0x3e, 0xf5, 0xd0, 0x7b, 0x36, 0xd5, 0xc2, 0x1b, 0xe4, 0x5f, 0x58, 0xa8, 0x40,\n\t0x3f, 0x86, 0x39, 0xe6, 0x12, 0x77, 0xc0, 0x64, 0xf0, 0x3f, 0xb8, 0x08, 0x65, 0x42, 0x60, 0x73,\n\t0x49, 0xaa, 0x9b, 0xf3, 0xbe, 0xb1, 0x54, 0xa4, 0xfe, 0x47, 0x81, 0xb5, 0xa9, 0xbc, 0x4d, 0xc3,\n\t0xd4, 0x79, 0x30, 0xbc, 0x7a, 0x27, 0xdb, 0x31, 0x27, 0xef, 0x5c, 0x80, 0xdd, 0xf2, 0xec, 0xd3,\n\t0x7c, 0xad, 0xfe, 0x5b, 0x81, 0x77, 0x4e, 0x63, 0xbe, 0x84, 0xe6, 0x67, 0xc5, 0x9b, 0xdf, 0xc3,\n\t0x8b, 0xb3, 0x7c, 0x4a, 0x03, 0xfc, 0x32, 0x77, 0xba, 0xdd, 0xdc, 0x4d, 0xbc, 0x83, 0xd8, 0x02,\n\t0xb8, 0x13, 0x16, 0xf9, 0xe0, 0x12, 0x77, 0x03, 0x0c, 0x8e, 0x50, 0x71, 0x5f, 0xd9, 0xb2, 0x3d,\n\t0xc8, 0xab, 0xdc, 0xc8, 0x6e, 0x90, 0xdf, 0x58, 0xbc, 0xf2, 0xed, 0x7f, 0xe1, 0x40, 0x22, 0x72,\n\t0x61, 0xa9, 0x1f, 0x5b, 0x14, 0xc8, 0x34, 0x39, 0xeb, 0x1c, 0x18, 0xf0, 0x7b, 0x73, 0x73, 0x1c,\n\t0x86, 0x13, 0x3a, 0xd0, 0x01, 0x94, 0x87, 0xd2, 0x5f, 0x96, 0xe9, 0x95, 0x74, 0xef, 0x75, 0x5c,\n\t0x6c, 0xde, 0xe4, 0xef, 0x8d, 0xfd, 0x24, 0xf2, 0x64, 0x54, 0x5b, 0x49, 0x02, 0xf1, 0xa4, 0x0c,\n\t0xf5, 0x1f, 0x0a, 0xbc, 0x3d, 0xf5, 0x26, 0x2e, 0x21, 0xf4, 0x3a, 0xf1, 0xd0, 0xdb, 0xba, 0x88,\n\t0xd0, 0x4b, 0x8f, 0xb9, 0xdf, 0xce, 0xbd, 0xc4, 0x52, 0x11, 0x6c, 0x4f, 0xa0, 0x68, 0xfb, 0xb3,\n\t0x4b, 0xca, 0xa6, 0x27, 0x4b, 0xe4, 0x70, 0xd6, 0xe6, 0x22, 0xef, 0x9f, 0xc1, 0x27, 0x0e, 0x85,\n\t0xa2, 0x9f, 0xc0, 0x8a, 0x3f, 0xdb, 0x73, 0x7e, 0xc3, 0x74, 0xfd, 0x01, 0xed, 0xfc, 0xe1, 0x73,\n\t0x75, 0x3c, 0xaa, 0xad, 0x6c, 0x27, 0xa4, 0xe2, 0x09, 0x3d, 0xa8, 0x0b, 0xa5, 0xf0, 0xfa, 0xfd,\n\t0xf7, 0xfd, 0xfb, 0x67, 0xf7, 0xb7, 0x65, 0x36, 0xdf, 0x90, 0x0e, 0x2e, 0x85, 0x30, 0x86, 0xa3,\n\t0xd2, 0x2f, 0xf8, 0xa1, 0xff, 0x73, 0x58, 0x21, 0xf1, 0x45, 0x27, 0xab, 0xcc, 0x9e, 0xf5, 0x11,\n\t0x92, 0x58, 0x95, 0x36, 0x2b, 0xd2, 0x88, 0x95, 0x04, 0x82, 0xe1, 0x09, 0x65, 0x69, 0xaf, 0xbf,\n\t0xb9, 0xcb, 0x7a, 0xfd, 0x21, 0x0d, 0x8a, 0x43, 0xe2, 0x18, 0xe4, 0xb0, 0x47, 0xf9, 0x53, 0x3b,\n\t0x77, 0xb6, 0x82, 0xb6, 0x2f, 0x59, 0xc3, 0xc9, 0xce, 0x87, 0x30, 0x1c, 0xca, 0x55, 0xff, 0x38,\n\t0x03, 0xb5, 0x53, 0xda, 0x37, 0x7a, 0x08, 0xc8, 0x3a, 0x64, 0xd4, 0x19, 0x52, 0xfd, 0xbe, 0xb7,\n\t0x8a, 0xf6, 0xc7, 0xfa, 0x5c, 0x38, 0x50, 0x3d, 0x9e, 0xa0, 0xc0, 0x29, 0x5c, 0xa8, 0x07, 0x0b,\n\t0x6e, 0x64, 0xd4, 0x93, 0x59, 0xf0, 0x41, 0x76, 0xbb, 0xa2, 0x83, 0x62, 0x73, 0x65, 0x3c, 0xaa,\n\t0xc5, 0x46, 0x47, 0x1c, 0x93, 0x8e, 0x34, 0x00, 0x2d, 0xbc, 0x3a, 0x2f, 0xf4, 0x1b, 0xd9, 0xaa,\n\t0x58, 0x78, 0x63, 0x41, 0xdf, 0x89, 0x5c, 0x56, 0x44, 0xac, 0x7a, 0x3c, 0x0f, 0xe5, 0xd0, 0x85,\n\t0xaf, 0x77, 0x7d, 0xaf, 0x77, 0x7d, 0x2f, 0xdd, 0xf5, 0xc1, 0xeb, 0x5d, 0xdf, 0xb9, 0x76, 0x7d,\n\t0x29, 0xb5, 0xb8, 0x74, 0x69, 0x9b, 0xb8, 0x63, 0x05, 0xaa, 0x13, 0x39, 0x7e, 0xd9, 0xbb, 0xb8,\n\t0x2f, 0x26, 0x76, 0x71, 0x1f, 0x9d, 0x67, 0x6c, 0x9a, 0xb6, 0x8d, 0xfb, 0x97, 0x02, 0xea, 0xcb,\n\t0x6d, 0xbc, 0x84, 0xb9, 0xb0, 0x1f, 0x9f, 0x0b, 0xbf, 0xff, 0x7f, 0x18, 0x98, 0x65, 0x23, 0xf7,\n\t0x5f, 0x05, 0x20, 0x1c, 0x66, 0xd0, 0x3b, 0x10, 0xf9, 0xa1, 0x50, 0x96, 0x6e, 0xcf, 0x4d, 0x11,\n\t0x38, 0xba, 0x09, 0xf3, 0x7d, 0xca, 0x18, 0x69, 0xfb, 0x0b, 0x91, 0xe0, 0x77, 0xcc, 0x6d, 0x0f,\n\t0x8c, 0x7d, 0x3c, 0x3a, 0x80, 0x39, 0x87, 0x12, 0x66, 0x99, 0x72, 0x31, 0xf2, 0x3d, 0xfe, 0x0a,\n\t0xc6, 0x02, 0x72, 0x32, 0xaa, 0xdd, 0xca, 0xf2, 0x3b, 0x73, 0x5d, 0x3e, 0x9a, 0x05, 0x13, 0x96,\n\t0xe2, 0xd0, 0x7d, 0x28, 0x4b, 0x1d, 0x91, 0x03, 0x7b, 0x95, 0xf6, 0x9a, 0x3c, 0x4d, 0x79, 0x3b,\n\t0x49, 0x80, 0x27, 0x79, 0xd4, 0x87, 0x50, 0xf0, 0x07, 0x03, 0x54, 0x81, 0x7c, 0xe4, 0xbd, 0xe5,\n\t0x19, 0x2e, 0x20, 0x09, 0xc7, 0xcc, 0xa4, 0x3b, 0x46, 0xfd, 0x83, 0x02, 0x6f, 0xa4, 0x34, 0x25,\n\t0x74, 0x0d, 0x72, 0x03, 0xa7, 0x27, 0x5d, 0x30, 0x3f, 0x1e, 0xd5, 0x72, 0x9f, 0xe1, 0x47, 0x98,\n\t0xc3, 0x10, 0x81, 0x79, 0xe6, 0xad, 0xa7, 0x64, 0x30, 0xdd, 0xc9, 0x7e, 0xe3, 0xc9, 0xbd, 0x56,\n\t0xb3, 0xc4, 0xef, 0xc0, 0x87, 0xfa, 0x72, 0xd1, 0x3a, 0x14, 0x34, 0xd2, 0x1c, 0x98, 0x7a, 0xcf,\n\t0xbb, 0xaf, 0x05, 0xef, 0x8d, 0xb7, 0xb5, 0xe9, 0xc1, 0x70, 0x80, 0x6d, 0xee, 0x3c, 0x3f, 0xae,\n\t0x5e, 0xf9, 0xea, 0xb8, 0x7a, 0xe5, 0xc5, 0x71, 0xf5, 0xca, 0x2f, 0xc6, 0x55, 0xe5, 0xf9, 0xb8,\n\t0xaa, 0x7c, 0x35, 0xae, 0x2a, 0x2f, 0xc6, 0x55, 0xe5, 0x6f, 0xe3, 0xaa, 0xf2, 0xab, 0xbf, 0x57,\n\t0xaf, 0xfc, 0x60, 0x3d, 0xeb, 0x7f, 0x39, 0xfc, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x6f, 0xf2, 0xe8,\n\t0x4a, 0x10, 0x21, 0x00, 0x00,\n}\n\nfunc (m *AuditAnnotation) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *AuditAnnotation) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *AuditAnnotation) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.ValueExpression)\n\tcopy(dAtA[i:], m.ValueExpression)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ValueExpression)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Key)\n\tcopy(dAtA[i:], m.Key)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Key)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ExpressionWarning) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ExpressionWarning) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ExpressionWarning) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Warning)\n\tcopy(dAtA[i:], m.Warning)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Warning)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.FieldRef)\n\tcopy(dAtA[i:], m.FieldRef)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FieldRef)))\n\ti--\n\tdAtA[i] = 0x12\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MatchCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MatchCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MatchCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Expression)\n\tcopy(dAtA[i:], m.Expression)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Expression)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MatchResources) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MatchResources) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MatchResources) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.MatchPolicy != nil {\n\t\ti -= len(*m.MatchPolicy)\n\t\tcopy(dAtA[i:], *m.MatchPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.MatchPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif len(m.ExcludeResourceRules) > 0 {\n\t\tfor iNdEx := len(m.ExcludeResourceRules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ExcludeResourceRules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif len(m.ResourceRules) > 0 {\n\t\tfor iNdEx := len(m.ResourceRules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ResourceRules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif m.ObjectSelector != nil {\n\t\t{\n\t\t\tsize, err := m.ObjectSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.NamespaceSelector != nil {\n\t\t{\n\t\t\tsize, err := m.NamespaceSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MutatingWebhook) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MutatingWebhook) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MutatingWebhook) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.MatchConditions) > 0 {\n\t\tfor iNdEx := len(m.MatchConditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.MatchConditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x62\n\t\t}\n\t}\n\tif m.ObjectSelector != nil {\n\t\t{\n\t\t\tsize, err := m.ObjectSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x5a\n\t}\n\tif m.ReinvocationPolicy != nil {\n\t\ti -= len(*m.ReinvocationPolicy)\n\t\tcopy(dAtA[i:], *m.ReinvocationPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.ReinvocationPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x52\n\t}\n\tif m.MatchPolicy != nil {\n\t\ti -= len(*m.MatchPolicy)\n\t\tcopy(dAtA[i:], *m.MatchPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.MatchPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x4a\n\t}\n\tif len(m.AdmissionReviewVersions) > 0 {\n\t\tfor iNdEx := len(m.AdmissionReviewVersions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.AdmissionReviewVersions[iNdEx])\n\t\t\tcopy(dAtA[i:], m.AdmissionReviewVersions[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.AdmissionReviewVersions[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x42\n\t\t}\n\t}\n\tif m.TimeoutSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.TimeoutSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x38\n\t}\n\tif m.SideEffects != nil {\n\t\ti -= len(*m.SideEffects)\n\t\tcopy(dAtA[i:], *m.SideEffects)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.SideEffects)))\n\t\ti--\n\t\tdAtA[i] = 0x32\n\t}\n\tif m.NamespaceSelector != nil {\n\t\t{\n\t\t\tsize, err := m.NamespaceSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.FailurePolicy != nil {\n\t\ti -= len(*m.FailurePolicy)\n\t\tcopy(dAtA[i:], *m.FailurePolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.FailurePolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif len(m.Rules) > 0 {\n\t\tfor iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Rules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ClientConfig.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MutatingWebhookConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MutatingWebhookConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MutatingWebhookConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Webhooks) > 0 {\n\t\tfor iNdEx := len(m.Webhooks) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Webhooks[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MutatingWebhookConfigurationList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MutatingWebhookConfigurationList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MutatingWebhookConfigurationList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NamedRuleWithOperations) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NamedRuleWithOperations) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NamedRuleWithOperations) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.RuleWithOperations.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\tif len(m.ResourceNames) > 0 {\n\t\tfor iNdEx := len(m.ResourceNames) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.ResourceNames[iNdEx])\n\t\t\tcopy(dAtA[i:], m.ResourceNames[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ResourceNames[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ParamKind) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ParamKind) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ParamKind) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.APIVersion)\n\tcopy(dAtA[i:], m.APIVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIVersion)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ParamRef) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ParamRef) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ParamRef) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ParameterNotFoundAction != nil {\n\t\ti -= len(*m.ParameterNotFoundAction)\n\t\tcopy(dAtA[i:], *m.ParameterNotFoundAction)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.ParameterNotFoundAction)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti -= len(m.Namespace)\n\tcopy(dAtA[i:], m.Namespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ServiceReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServiceReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ServiceReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Port != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Port))\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif m.Path != nil {\n\t\ti -= len(*m.Path)\n\t\tcopy(dAtA[i:], *m.Path)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Path)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Namespace)\n\tcopy(dAtA[i:], m.Namespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TypeChecking) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TypeChecking) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TypeChecking) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ExpressionWarnings) > 0 {\n\t\tfor iNdEx := len(m.ExpressionWarnings) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ExpressionWarnings[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ValidatingAdmissionPolicy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ValidatingAdmissionPolicy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ValidatingAdmissionPolicy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ValidatingAdmissionPolicyBinding) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ValidatingAdmissionPolicyBinding) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ValidatingAdmissionPolicyBinding) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ValidatingAdmissionPolicyBindingList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ValidatingAdmissionPolicyBindingList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ValidatingAdmissionPolicyBindingList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ValidatingAdmissionPolicyBindingSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ValidatingAdmissionPolicyBindingSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ValidatingAdmissionPolicyBindingSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ValidationActions) > 0 {\n\t\tfor iNdEx := len(m.ValidationActions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.ValidationActions[iNdEx])\n\t\t\tcopy(dAtA[i:], m.ValidationActions[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ValidationActions[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif m.MatchResources != nil {\n\t\t{\n\t\t\tsize, err := m.MatchResources.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.ParamRef != nil {\n\t\t{\n\t\t\tsize, err := m.ParamRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.PolicyName)\n\tcopy(dAtA[i:], m.PolicyName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.PolicyName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ValidatingAdmissionPolicyList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ValidatingAdmissionPolicyList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ValidatingAdmissionPolicyList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ValidatingAdmissionPolicySpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ValidatingAdmissionPolicySpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ValidatingAdmissionPolicySpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Variables) > 0 {\n\t\tfor iNdEx := len(m.Variables) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Variables[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x3a\n\t\t}\n\t}\n\tif len(m.MatchConditions) > 0 {\n\t\tfor iNdEx := len(m.MatchConditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.MatchConditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\tif len(m.AuditAnnotations) > 0 {\n\t\tfor iNdEx := len(m.AuditAnnotations) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.AuditAnnotations[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\tif m.FailurePolicy != nil {\n\t\ti -= len(*m.FailurePolicy)\n\t\tcopy(dAtA[i:], *m.FailurePolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.FailurePolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif len(m.Validations) > 0 {\n\t\tfor iNdEx := len(m.Validations) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Validations[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif m.MatchConstraints != nil {\n\t\t{\n\t\t\tsize, err := m.MatchConstraints.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.ParamKind != nil {\n\t\t{\n\t\t\tsize, err := m.ParamKind.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ValidatingAdmissionPolicyStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ValidatingAdmissionPolicyStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ValidatingAdmissionPolicyStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif m.TypeChecking != nil {\n\t\t{\n\t\t\tsize, err := m.TypeChecking.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ValidatingWebhook) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ValidatingWebhook) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ValidatingWebhook) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.MatchConditions) > 0 {\n\t\tfor iNdEx := len(m.MatchConditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.MatchConditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x5a\n\t\t}\n\t}\n\tif m.ObjectSelector != nil {\n\t\t{\n\t\t\tsize, err := m.ObjectSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x52\n\t}\n\tif m.MatchPolicy != nil {\n\t\ti -= len(*m.MatchPolicy)\n\t\tcopy(dAtA[i:], *m.MatchPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.MatchPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x4a\n\t}\n\tif len(m.AdmissionReviewVersions) > 0 {\n\t\tfor iNdEx := len(m.AdmissionReviewVersions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.AdmissionReviewVersions[iNdEx])\n\t\t\tcopy(dAtA[i:], m.AdmissionReviewVersions[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.AdmissionReviewVersions[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x42\n\t\t}\n\t}\n\tif m.TimeoutSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.TimeoutSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x38\n\t}\n\tif m.SideEffects != nil {\n\t\ti -= len(*m.SideEffects)\n\t\tcopy(dAtA[i:], *m.SideEffects)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.SideEffects)))\n\t\ti--\n\t\tdAtA[i] = 0x32\n\t}\n\tif m.NamespaceSelector != nil {\n\t\t{\n\t\t\tsize, err := m.NamespaceSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.FailurePolicy != nil {\n\t\ti -= len(*m.FailurePolicy)\n\t\tcopy(dAtA[i:], *m.FailurePolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.FailurePolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif len(m.Rules) > 0 {\n\t\tfor iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Rules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ClientConfig.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ValidatingWebhookConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ValidatingWebhookConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ValidatingWebhookConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Webhooks) > 0 {\n\t\tfor iNdEx := len(m.Webhooks) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Webhooks[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ValidatingWebhookConfigurationList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ValidatingWebhookConfigurationList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ValidatingWebhookConfigurationList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Validation) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Validation) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Validation) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.MessageExpression)\n\tcopy(dAtA[i:], m.MessageExpression)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.MessageExpression)))\n\ti--\n\tdAtA[i] = 0x22\n\tif m.Reason != nil {\n\t\ti -= len(*m.Reason)\n\t\tcopy(dAtA[i:], *m.Reason)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Reason)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Expression)\n\tcopy(dAtA[i:], m.Expression)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Expression)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Variable) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Variable) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Variable) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Expression)\n\tcopy(dAtA[i:], m.Expression)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Expression)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *WebhookClientConfig) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *WebhookClientConfig) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *WebhookClientConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.URL != nil {\n\t\ti -= len(*m.URL)\n\t\tcopy(dAtA[i:], *m.URL)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.URL)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.CABundle != nil {\n\t\ti -= len(m.CABundle)\n\t\tcopy(dAtA[i:], m.CABundle)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.CABundle)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Service != nil {\n\t\t{\n\t\t\tsize, err := m.Service.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *AuditAnnotation) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Key)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.ValueExpression)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ExpressionWarning) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.FieldRef)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Warning)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *MatchCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Expression)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *MatchResources) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.NamespaceSelector != nil {\n\t\tl = m.NamespaceSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ObjectSelector != nil {\n\t\tl = m.ObjectSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.ResourceRules) > 0 {\n\t\tfor _, e := range m.ResourceRules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.ExcludeResourceRules) > 0 {\n\t\tfor _, e := range m.ExcludeResourceRules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.MatchPolicy != nil {\n\t\tl = len(*m.MatchPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *MutatingWebhook) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.ClientConfig.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Rules) > 0 {\n\t\tfor _, e := range m.Rules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.FailurePolicy != nil {\n\t\tl = len(*m.FailurePolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.NamespaceSelector != nil {\n\t\tl = m.NamespaceSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.SideEffects != nil {\n\t\tl = len(*m.SideEffects)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.TimeoutSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.TimeoutSeconds))\n\t}\n\tif len(m.AdmissionReviewVersions) > 0 {\n\t\tfor _, s := range m.AdmissionReviewVersions {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.MatchPolicy != nil {\n\t\tl = len(*m.MatchPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ReinvocationPolicy != nil {\n\t\tl = len(*m.ReinvocationPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ObjectSelector != nil {\n\t\tl = m.ObjectSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.MatchConditions) > 0 {\n\t\tfor _, e := range m.MatchConditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *MutatingWebhookConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Webhooks) > 0 {\n\t\tfor _, e := range m.Webhooks {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *MutatingWebhookConfigurationList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *NamedRuleWithOperations) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.ResourceNames) > 0 {\n\t\tfor _, s := range m.ResourceNames {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = m.RuleWithOperations.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ParamKind) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.APIVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ParamRef) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Namespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ParameterNotFoundAction != nil {\n\t\tl = len(*m.ParameterNotFoundAction)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ServiceReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Namespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Path != nil {\n\t\tl = len(*m.Path)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Port != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Port))\n\t}\n\treturn n\n}\n\nfunc (m *TypeChecking) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.ExpressionWarnings) > 0 {\n\t\tfor _, e := range m.ExpressionWarnings {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ValidatingAdmissionPolicy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ValidatingAdmissionPolicyBinding) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ValidatingAdmissionPolicyBindingList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ValidatingAdmissionPolicyBindingSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.PolicyName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.ParamRef != nil {\n\t\tl = m.ParamRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.MatchResources != nil {\n\t\tl = m.MatchResources.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.ValidationActions) > 0 {\n\t\tfor _, s := range m.ValidationActions {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ValidatingAdmissionPolicyList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ValidatingAdmissionPolicySpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.ParamKind != nil {\n\t\tl = m.ParamKind.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.MatchConstraints != nil {\n\t\tl = m.MatchConstraints.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.Validations) > 0 {\n\t\tfor _, e := range m.Validations {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.FailurePolicy != nil {\n\t\tl = len(*m.FailurePolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.AuditAnnotations) > 0 {\n\t\tfor _, e := range m.AuditAnnotations {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.MatchConditions) > 0 {\n\t\tfor _, e := range m.MatchConditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Variables) > 0 {\n\t\tfor _, e := range m.Variables {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ValidatingAdmissionPolicyStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.ObservedGeneration))\n\tif m.TypeChecking != nil {\n\t\tl = m.TypeChecking.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ValidatingWebhook) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.ClientConfig.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Rules) > 0 {\n\t\tfor _, e := range m.Rules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.FailurePolicy != nil {\n\t\tl = len(*m.FailurePolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.NamespaceSelector != nil {\n\t\tl = m.NamespaceSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.SideEffects != nil {\n\t\tl = len(*m.SideEffects)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.TimeoutSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.TimeoutSeconds))\n\t}\n\tif len(m.AdmissionReviewVersions) > 0 {\n\t\tfor _, s := range m.AdmissionReviewVersions {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.MatchPolicy != nil {\n\t\tl = len(*m.MatchPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ObjectSelector != nil {\n\t\tl = m.ObjectSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.MatchConditions) > 0 {\n\t\tfor _, e := range m.MatchConditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ValidatingWebhookConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Webhooks) > 0 {\n\t\tfor _, e := range m.Webhooks {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ValidatingWebhookConfigurationList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *Validation) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Expression)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Reason != nil {\n\t\tl = len(*m.Reason)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.MessageExpression)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *Variable) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Expression)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *WebhookClientConfig) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Service != nil {\n\t\tl = m.Service.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.CABundle != nil {\n\t\tl = len(m.CABundle)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.URL != nil {\n\t\tl = len(*m.URL)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *AuditAnnotation) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&AuditAnnotation{`,\n\t\t`Key:` + fmt.Sprintf(\"%v\", this.Key) + `,`,\n\t\t`ValueExpression:` + fmt.Sprintf(\"%v\", this.ValueExpression) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ExpressionWarning) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ExpressionWarning{`,\n\t\t`FieldRef:` + fmt.Sprintf(\"%v\", this.FieldRef) + `,`,\n\t\t`Warning:` + fmt.Sprintf(\"%v\", this.Warning) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MatchCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&MatchCondition{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Expression:` + fmt.Sprintf(\"%v\", this.Expression) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MatchResources) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForResourceRules := \"[]NamedRuleWithOperations{\"\n\tfor _, f := range this.ResourceRules {\n\t\trepeatedStringForResourceRules += strings.Replace(strings.Replace(f.String(), \"NamedRuleWithOperations\", \"NamedRuleWithOperations\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForResourceRules += \"}\"\n\trepeatedStringForExcludeResourceRules := \"[]NamedRuleWithOperations{\"\n\tfor _, f := range this.ExcludeResourceRules {\n\t\trepeatedStringForExcludeResourceRules += strings.Replace(strings.Replace(f.String(), \"NamedRuleWithOperations\", \"NamedRuleWithOperations\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForExcludeResourceRules += \"}\"\n\ts := strings.Join([]string{`&MatchResources{`,\n\t\t`NamespaceSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.NamespaceSelector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`ObjectSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.ObjectSelector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`ResourceRules:` + repeatedStringForResourceRules + `,`,\n\t\t`ExcludeResourceRules:` + repeatedStringForExcludeResourceRules + `,`,\n\t\t`MatchPolicy:` + valueToStringGenerated(this.MatchPolicy) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MutatingWebhook) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForRules := \"[]RuleWithOperations{\"\n\tfor _, f := range this.Rules {\n\t\trepeatedStringForRules += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForRules += \"}\"\n\trepeatedStringForMatchConditions := \"[]MatchCondition{\"\n\tfor _, f := range this.MatchConditions {\n\t\trepeatedStringForMatchConditions += strings.Replace(strings.Replace(f.String(), \"MatchCondition\", \"MatchCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForMatchConditions += \"}\"\n\ts := strings.Join([]string{`&MutatingWebhook{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`ClientConfig:` + strings.Replace(strings.Replace(this.ClientConfig.String(), \"WebhookClientConfig\", \"WebhookClientConfig\", 1), `&`, ``, 1) + `,`,\n\t\t`Rules:` + repeatedStringForRules + `,`,\n\t\t`FailurePolicy:` + valueToStringGenerated(this.FailurePolicy) + `,`,\n\t\t`NamespaceSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.NamespaceSelector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`SideEffects:` + valueToStringGenerated(this.SideEffects) + `,`,\n\t\t`TimeoutSeconds:` + valueToStringGenerated(this.TimeoutSeconds) + `,`,\n\t\t`AdmissionReviewVersions:` + fmt.Sprintf(\"%v\", this.AdmissionReviewVersions) + `,`,\n\t\t`MatchPolicy:` + valueToStringGenerated(this.MatchPolicy) + `,`,\n\t\t`ReinvocationPolicy:` + valueToStringGenerated(this.ReinvocationPolicy) + `,`,\n\t\t`ObjectSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.ObjectSelector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`MatchConditions:` + repeatedStringForMatchConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MutatingWebhookConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForWebhooks := \"[]MutatingWebhook{\"\n\tfor _, f := range this.Webhooks {\n\t\trepeatedStringForWebhooks += strings.Replace(strings.Replace(f.String(), \"MutatingWebhook\", \"MutatingWebhook\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForWebhooks += \"}\"\n\ts := strings.Join([]string{`&MutatingWebhookConfiguration{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Webhooks:` + repeatedStringForWebhooks + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MutatingWebhookConfigurationList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]MutatingWebhookConfiguration{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"MutatingWebhookConfiguration\", \"MutatingWebhookConfiguration\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&MutatingWebhookConfigurationList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NamedRuleWithOperations) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NamedRuleWithOperations{`,\n\t\t`ResourceNames:` + fmt.Sprintf(\"%v\", this.ResourceNames) + `,`,\n\t\t`RuleWithOperations:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.RuleWithOperations), \"RuleWithOperations\", \"v11.RuleWithOperations\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ParamKind) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ParamKind{`,\n\t\t`APIVersion:` + fmt.Sprintf(\"%v\", this.APIVersion) + `,`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ParamRef) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ParamRef{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`ParameterNotFoundAction:` + valueToStringGenerated(this.ParameterNotFoundAction) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ServiceReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ServiceReference{`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Path:` + valueToStringGenerated(this.Path) + `,`,\n\t\t`Port:` + valueToStringGenerated(this.Port) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TypeChecking) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForExpressionWarnings := \"[]ExpressionWarning{\"\n\tfor _, f := range this.ExpressionWarnings {\n\t\trepeatedStringForExpressionWarnings += strings.Replace(strings.Replace(f.String(), \"ExpressionWarning\", \"ExpressionWarning\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForExpressionWarnings += \"}\"\n\ts := strings.Join([]string{`&TypeChecking{`,\n\t\t`ExpressionWarnings:` + repeatedStringForExpressionWarnings + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ValidatingAdmissionPolicy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ValidatingAdmissionPolicy{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ValidatingAdmissionPolicySpec\", \"ValidatingAdmissionPolicySpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"ValidatingAdmissionPolicyStatus\", \"ValidatingAdmissionPolicyStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ValidatingAdmissionPolicyBinding) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ValidatingAdmissionPolicyBinding{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ValidatingAdmissionPolicyBindingSpec\", \"ValidatingAdmissionPolicyBindingSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ValidatingAdmissionPolicyBindingList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ValidatingAdmissionPolicyBinding{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ValidatingAdmissionPolicyBinding\", \"ValidatingAdmissionPolicyBinding\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ValidatingAdmissionPolicyBindingList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ValidatingAdmissionPolicyBindingSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ValidatingAdmissionPolicyBindingSpec{`,\n\t\t`PolicyName:` + fmt.Sprintf(\"%v\", this.PolicyName) + `,`,\n\t\t`ParamRef:` + strings.Replace(this.ParamRef.String(), \"ParamRef\", \"ParamRef\", 1) + `,`,\n\t\t`MatchResources:` + strings.Replace(this.MatchResources.String(), \"MatchResources\", \"MatchResources\", 1) + `,`,\n\t\t`ValidationActions:` + fmt.Sprintf(\"%v\", this.ValidationActions) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ValidatingAdmissionPolicyList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ValidatingAdmissionPolicy{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ValidatingAdmissionPolicy\", \"ValidatingAdmissionPolicy\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ValidatingAdmissionPolicyList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ValidatingAdmissionPolicySpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForValidations := \"[]Validation{\"\n\tfor _, f := range this.Validations {\n\t\trepeatedStringForValidations += strings.Replace(strings.Replace(f.String(), \"Validation\", \"Validation\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForValidations += \"}\"\n\trepeatedStringForAuditAnnotations := \"[]AuditAnnotation{\"\n\tfor _, f := range this.AuditAnnotations {\n\t\trepeatedStringForAuditAnnotations += strings.Replace(strings.Replace(f.String(), \"AuditAnnotation\", \"AuditAnnotation\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForAuditAnnotations += \"}\"\n\trepeatedStringForMatchConditions := \"[]MatchCondition{\"\n\tfor _, f := range this.MatchConditions {\n\t\trepeatedStringForMatchConditions += strings.Replace(strings.Replace(f.String(), \"MatchCondition\", \"MatchCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForMatchConditions += \"}\"\n\trepeatedStringForVariables := \"[]Variable{\"\n\tfor _, f := range this.Variables {\n\t\trepeatedStringForVariables += strings.Replace(strings.Replace(f.String(), \"Variable\", \"Variable\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForVariables += \"}\"\n\ts := strings.Join([]string{`&ValidatingAdmissionPolicySpec{`,\n\t\t`ParamKind:` + strings.Replace(this.ParamKind.String(), \"ParamKind\", \"ParamKind\", 1) + `,`,\n\t\t`MatchConstraints:` + strings.Replace(this.MatchConstraints.String(), \"MatchResources\", \"MatchResources\", 1) + `,`,\n\t\t`Validations:` + repeatedStringForValidations + `,`,\n\t\t`FailurePolicy:` + valueToStringGenerated(this.FailurePolicy) + `,`,\n\t\t`AuditAnnotations:` + repeatedStringForAuditAnnotations + `,`,\n\t\t`MatchConditions:` + repeatedStringForMatchConditions + `,`,\n\t\t`Variables:` + repeatedStringForVariables + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ValidatingAdmissionPolicyStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]Condition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&ValidatingAdmissionPolicyStatus{`,\n\t\t`ObservedGeneration:` + fmt.Sprintf(\"%v\", this.ObservedGeneration) + `,`,\n\t\t`TypeChecking:` + strings.Replace(this.TypeChecking.String(), \"TypeChecking\", \"TypeChecking\", 1) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ValidatingWebhook) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForRules := \"[]RuleWithOperations{\"\n\tfor _, f := range this.Rules {\n\t\trepeatedStringForRules += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForRules += \"}\"\n\trepeatedStringForMatchConditions := \"[]MatchCondition{\"\n\tfor _, f := range this.MatchConditions {\n\t\trepeatedStringForMatchConditions += strings.Replace(strings.Replace(f.String(), \"MatchCondition\", \"MatchCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForMatchConditions += \"}\"\n\ts := strings.Join([]string{`&ValidatingWebhook{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`ClientConfig:` + strings.Replace(strings.Replace(this.ClientConfig.String(), \"WebhookClientConfig\", \"WebhookClientConfig\", 1), `&`, ``, 1) + `,`,\n\t\t`Rules:` + repeatedStringForRules + `,`,\n\t\t`FailurePolicy:` + valueToStringGenerated(this.FailurePolicy) + `,`,\n\t\t`NamespaceSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.NamespaceSelector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`SideEffects:` + valueToStringGenerated(this.SideEffects) + `,`,\n\t\t`TimeoutSeconds:` + valueToStringGenerated(this.TimeoutSeconds) + `,`,\n\t\t`AdmissionReviewVersions:` + fmt.Sprintf(\"%v\", this.AdmissionReviewVersions) + `,`,\n\t\t`MatchPolicy:` + valueToStringGenerated(this.MatchPolicy) + `,`,\n\t\t`ObjectSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.ObjectSelector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`MatchConditions:` + repeatedStringForMatchConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ValidatingWebhookConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForWebhooks := \"[]ValidatingWebhook{\"\n\tfor _, f := range this.Webhooks {\n\t\trepeatedStringForWebhooks += strings.Replace(strings.Replace(f.String(), \"ValidatingWebhook\", \"ValidatingWebhook\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForWebhooks += \"}\"\n\ts := strings.Join([]string{`&ValidatingWebhookConfiguration{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Webhooks:` + repeatedStringForWebhooks + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ValidatingWebhookConfigurationList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ValidatingWebhookConfiguration{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ValidatingWebhookConfiguration\", \"ValidatingWebhookConfiguration\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ValidatingWebhookConfigurationList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Validation) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Validation{`,\n\t\t`Expression:` + fmt.Sprintf(\"%v\", this.Expression) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`Reason:` + valueToStringGenerated(this.Reason) + `,`,\n\t\t`MessageExpression:` + fmt.Sprintf(\"%v\", this.MessageExpression) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Variable) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Variable{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Expression:` + fmt.Sprintf(\"%v\", this.Expression) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *WebhookClientConfig) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&WebhookClientConfig{`,\n\t\t`Service:` + strings.Replace(this.Service.String(), \"ServiceReference\", \"ServiceReference\", 1) + `,`,\n\t\t`CABundle:` + valueToStringGenerated(this.CABundle) + `,`,\n\t\t`URL:` + valueToStringGenerated(this.URL) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *AuditAnnotation) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: AuditAnnotation: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: AuditAnnotation: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Key\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Key = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ValueExpression\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ValueExpression = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ExpressionWarning) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ExpressionWarning: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ExpressionWarning: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FieldRef\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FieldRef = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Warning\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Warning = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MatchCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MatchCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MatchCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Expression\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Expression = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MatchResources) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MatchResources: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MatchResources: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NamespaceSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NamespaceSelector == nil {\n\t\t\t\tm.NamespaceSelector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.NamespaceSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ObjectSelector == nil {\n\t\t\t\tm.ObjectSelector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.ObjectSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceRules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceRules = append(m.ResourceRules, NamedRuleWithOperations{})\n\t\t\tif err := m.ResourceRules[len(m.ResourceRules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ExcludeResourceRules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ExcludeResourceRules = append(m.ExcludeResourceRules, NamedRuleWithOperations{})\n\t\t\tif err := m.ExcludeResourceRules[len(m.ExcludeResourceRules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := MatchPolicyType(dAtA[iNdEx:postIndex])\n\t\t\tm.MatchPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MutatingWebhook) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MutatingWebhook: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MutatingWebhook: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ClientConfig\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ClientConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Rules = append(m.Rules, v11.RuleWithOperations{})\n\t\t\tif err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FailurePolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := FailurePolicyType(dAtA[iNdEx:postIndex])\n\t\t\tm.FailurePolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NamespaceSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NamespaceSelector == nil {\n\t\t\t\tm.NamespaceSelector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.NamespaceSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SideEffects\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := SideEffectClass(dAtA[iNdEx:postIndex])\n\t\t\tm.SideEffects = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TimeoutSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.TimeoutSeconds = &v\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AdmissionReviewVersions\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AdmissionReviewVersions = append(m.AdmissionReviewVersions, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := MatchPolicyType(dAtA[iNdEx:postIndex])\n\t\t\tm.MatchPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReinvocationPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := ReinvocationPolicyType(dAtA[iNdEx:postIndex])\n\t\t\tm.ReinvocationPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ObjectSelector == nil {\n\t\t\t\tm.ObjectSelector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.ObjectSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 12:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchConditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MatchConditions = append(m.MatchConditions, MatchCondition{})\n\t\t\tif err := m.MatchConditions[len(m.MatchConditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MutatingWebhookConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MutatingWebhookConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MutatingWebhookConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Webhooks\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Webhooks = append(m.Webhooks, MutatingWebhook{})\n\t\t\tif err := m.Webhooks[len(m.Webhooks)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MutatingWebhookConfigurationList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MutatingWebhookConfigurationList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MutatingWebhookConfigurationList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, MutatingWebhookConfiguration{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NamedRuleWithOperations) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NamedRuleWithOperations: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NamedRuleWithOperations: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceNames\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceNames = append(m.ResourceNames, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RuleWithOperations\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.RuleWithOperations.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ParamKind) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ParamKind: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ParamKind: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ParamRef) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ParamRef: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ParamRef: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ParameterNotFoundAction\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := ParameterNotFoundActionType(dAtA[iNdEx:postIndex])\n\t\t\tm.ParameterNotFoundAction = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ServiceReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Path\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.Path = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Port\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Port = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TypeChecking) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TypeChecking: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TypeChecking: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ExpressionWarnings\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ExpressionWarnings = append(m.ExpressionWarnings, ExpressionWarning{})\n\t\t\tif err := m.ExpressionWarnings[len(m.ExpressionWarnings)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ValidatingAdmissionPolicy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ValidatingAdmissionPolicyBinding) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicyBinding: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicyBinding: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ValidatingAdmissionPolicyBindingList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicyBindingList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicyBindingList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ValidatingAdmissionPolicyBinding{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ValidatingAdmissionPolicyBindingSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicyBindingSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicyBindingSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PolicyName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PolicyName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ParamRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ParamRef == nil {\n\t\t\t\tm.ParamRef = &ParamRef{}\n\t\t\t}\n\t\t\tif err := m.ParamRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchResources\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MatchResources == nil {\n\t\t\t\tm.MatchResources = &MatchResources{}\n\t\t\t}\n\t\t\tif err := m.MatchResources.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ValidationActions\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ValidationActions = append(m.ValidationActions, ValidationAction(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ValidatingAdmissionPolicyList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicyList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicyList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ValidatingAdmissionPolicy{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ValidatingAdmissionPolicySpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicySpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicySpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ParamKind\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ParamKind == nil {\n\t\t\t\tm.ParamKind = &ParamKind{}\n\t\t\t}\n\t\t\tif err := m.ParamKind.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchConstraints\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MatchConstraints == nil {\n\t\t\t\tm.MatchConstraints = &MatchResources{}\n\t\t\t}\n\t\t\tif err := m.MatchConstraints.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Validations\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Validations = append(m.Validations, Validation{})\n\t\t\tif err := m.Validations[len(m.Validations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FailurePolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := FailurePolicyType(dAtA[iNdEx:postIndex])\n\t\t\tm.FailurePolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AuditAnnotations\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AuditAnnotations = append(m.AuditAnnotations, AuditAnnotation{})\n\t\t\tif err := m.AuditAnnotations[len(m.AuditAnnotations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchConditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MatchConditions = append(m.MatchConditions, MatchCondition{})\n\t\t\tif err := m.MatchConditions[len(m.MatchConditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Variables\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Variables = append(m.Variables, Variable{})\n\t\t\tif err := m.Variables[len(m.Variables)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ValidatingAdmissionPolicyStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicyStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingAdmissionPolicyStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tm.ObservedGeneration = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ObservedGeneration |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TypeChecking\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.TypeChecking == nil {\n\t\t\t\tm.TypeChecking = &TypeChecking{}\n\t\t\t}\n\t\t\tif err := m.TypeChecking.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, v1.Condition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ValidatingWebhook) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingWebhook: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingWebhook: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ClientConfig\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ClientConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Rules = append(m.Rules, v11.RuleWithOperations{})\n\t\t\tif err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FailurePolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := FailurePolicyType(dAtA[iNdEx:postIndex])\n\t\t\tm.FailurePolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NamespaceSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NamespaceSelector == nil {\n\t\t\t\tm.NamespaceSelector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.NamespaceSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SideEffects\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := SideEffectClass(dAtA[iNdEx:postIndex])\n\t\t\tm.SideEffects = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TimeoutSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.TimeoutSeconds = &v\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AdmissionReviewVersions\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AdmissionReviewVersions = append(m.AdmissionReviewVersions, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := MatchPolicyType(dAtA[iNdEx:postIndex])\n\t\t\tm.MatchPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ObjectSelector == nil {\n\t\t\t\tm.ObjectSelector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.ObjectSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchConditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MatchConditions = append(m.MatchConditions, MatchCondition{})\n\t\t\tif err := m.MatchConditions[len(m.MatchConditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ValidatingWebhookConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingWebhookConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingWebhookConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Webhooks\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Webhooks = append(m.Webhooks, ValidatingWebhook{})\n\t\t\tif err := m.Webhooks[len(m.Webhooks)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ValidatingWebhookConfigurationList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingWebhookConfigurationList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ValidatingWebhookConfigurationList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ValidatingWebhookConfiguration{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Validation) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Validation: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Validation: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Expression\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Expression = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := k8s_io_apimachinery_pkg_apis_meta_v1.StatusReason(dAtA[iNdEx:postIndex])\n\t\t\tm.Reason = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MessageExpression\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MessageExpression = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Variable) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Variable: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Variable: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Expression\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Expression = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *WebhookClientConfig) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: WebhookClientConfig: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: WebhookClientConfig: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Service\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Service == nil {\n\t\t\t\tm.Service = &ServiceReference{}\n\t\t\t}\n\t\t\tif err := m.Service.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CABundle\", wireType)\n\t\t\t}\n\t\t\tvar byteLen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tbyteLen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif byteLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + byteLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.CABundle = append(m.CABundle[:0], dAtA[iNdEx:postIndex]...)\n\t\t\tif m.CABundle == nil {\n\t\t\t\tm.CABundle = []byte{}\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field URL\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.URL = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1beta1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.admissionregistration.v1beta1;\n\nimport \"k8s.io/api/admissionregistration/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/admissionregistration/v1beta1\";\n\n// AuditAnnotation describes how to produce an audit annotation for an API request.\nmessage AuditAnnotation {\n  // key specifies the audit annotation key. The audit annotation keys of\n  // a ValidatingAdmissionPolicy must be unique. The key must be a qualified\n  // name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length.\n  //\n  // The key is combined with the resource name of the\n  // ValidatingAdmissionPolicy to construct an audit annotation key:\n  // \"{ValidatingAdmissionPolicy name}/{key}\".\n  //\n  // If an admission webhook uses the same resource name as this ValidatingAdmissionPolicy\n  // and the same audit annotation key, the annotation key will be identical.\n  // In this case, the first annotation written with the key will be included\n  // in the audit event and all subsequent annotations with the same key\n  // will be discarded.\n  //\n  // Required.\n  optional string key = 1;\n\n  // valueExpression represents the expression which is evaluated by CEL to\n  // produce an audit annotation value. The expression must evaluate to either\n  // a string or null value. If the expression evaluates to a string, the\n  // audit annotation is included with the string value. If the expression\n  // evaluates to null or empty string the audit annotation will be omitted.\n  // The valueExpression may be no longer than 5kb in length.\n  // If the result of the valueExpression is more than 10kb in length, it\n  // will be truncated to 10kb.\n  //\n  // If multiple ValidatingAdmissionPolicyBinding resources match an\n  // API request, then the valueExpression will be evaluated for\n  // each binding. All unique values produced by the valueExpressions\n  // will be joined together in a comma-separated list.\n  //\n  // Required.\n  optional string valueExpression = 2;\n}\n\n// ExpressionWarning is a warning information that targets a specific expression.\nmessage ExpressionWarning {\n  // The path to the field that refers the expression.\n  // For example, the reference to the expression of the first item of\n  // validations is \"spec.validations[0].expression\"\n  optional string fieldRef = 2;\n\n  // The content of type checking information in a human-readable form.\n  // Each line of the warning contains the type that the expression is checked\n  // against, followed by the type check error from the compiler.\n  optional string warning = 3;\n}\n\n// MatchCondition represents a condition which must be fulfilled for a request to be sent to a webhook.\nmessage MatchCondition {\n  // Name is an identifier for this match condition, used for strategic merging of MatchConditions,\n  // as well as providing an identifier for logging purposes. A good name should be descriptive of\n  // the associated expression.\n  // Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and\n  // must start and end with an alphanumeric character (e.g. 'MyName',  or 'my.name',  or\n  // '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an\n  // optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName')\n  //\n  // Required.\n  optional string name = 1;\n\n  // Expression represents the expression which will be evaluated by CEL. Must evaluate to bool.\n  // CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables:\n  //\n  // 'object' - The object from the incoming request. The value is null for DELETE requests.\n  // 'oldObject' - The existing object. The value is null for CREATE requests.\n  // 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest).\n  // 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n  //   See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n  // 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n  //   request resource.\n  // Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/\n  //\n  // Required.\n  optional string expression = 2;\n}\n\n// MatchResources decides whether to run the admission control policy on an object based\n// on whether it meets the match criteria.\n// The exclude rules take precedence over include rules (if a resource matches both, it is excluded)\n// +structType=atomic\nmessage MatchResources {\n  // NamespaceSelector decides whether to run the admission control policy on an object based\n  // on whether the namespace for that object matches the selector. If the\n  // object itself is a namespace, the matching is performed on\n  // object.metadata.labels. If the object is another cluster scoped resource,\n  // it never skips the policy.\n  //\n  // For example, to run the webhook on any objects whose namespace is not\n  // associated with \"runlevel\" of \"0\" or \"1\";  you will set the selector as\n  // follows:\n  // \"namespaceSelector\": {\n  //   \"matchExpressions\": [\n  //     {\n  //       \"key\": \"runlevel\",\n  //       \"operator\": \"NotIn\",\n  //       \"values\": [\n  //         \"0\",\n  //         \"1\"\n  //       ]\n  //     }\n  //   ]\n  // }\n  //\n  // If instead you want to only run the policy on any objects whose\n  // namespace is associated with the \"environment\" of \"prod\" or \"staging\";\n  // you will set the selector as follows:\n  // \"namespaceSelector\": {\n  //   \"matchExpressions\": [\n  //     {\n  //       \"key\": \"environment\",\n  //       \"operator\": \"In\",\n  //       \"values\": [\n  //         \"prod\",\n  //         \"staging\"\n  //       ]\n  //     }\n  //   ]\n  // }\n  //\n  // See\n  // https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\n  // for more examples of label selectors.\n  //\n  // Default to the empty LabelSelector, which matches everything.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector namespaceSelector = 1;\n\n  // ObjectSelector decides whether to run the validation based on if the\n  // object has matching labels. objectSelector is evaluated against both\n  // the oldObject and newObject that would be sent to the cel validation, and\n  // is considered to match if either object matches the selector. A null\n  // object (oldObject in the case of create, or newObject in the case of\n  // delete) or an object that cannot have labels (like a\n  // DeploymentRollback or a PodProxyOptions object) is not considered to\n  // match.\n  // Use the object selector only if the webhook is opt-in, because end\n  // users may skip the admission webhook by setting the labels.\n  // Default to the empty LabelSelector, which matches everything.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector objectSelector = 2;\n\n  // ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches.\n  // The policy cares about an operation if it matches _any_ Rule.\n  // +listType=atomic\n  // +optional\n  repeated NamedRuleWithOperations resourceRules = 3;\n\n  // ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about.\n  // The exclude rules take precedence over include rules (if a resource matches both, it is excluded)\n  // +listType=atomic\n  // +optional\n  repeated NamedRuleWithOperations excludeResourceRules = 4;\n\n  // matchPolicy defines how the \"MatchResources\" list is used to match incoming requests.\n  // Allowed values are \"Exact\" or \"Equivalent\".\n  //\n  // - Exact: match a request only if it exactly matches a specified rule.\n  // For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n  // but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n  // a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy.\n  //\n  // - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version.\n  // For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n  // and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n  // a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy.\n  //\n  // Defaults to \"Equivalent\"\n  // +optional\n  optional string matchPolicy = 7;\n}\n\n// MutatingWebhook describes an admission webhook and the resources and operations it applies to.\nmessage MutatingWebhook {\n  // The name of the admission webhook.\n  // Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where\n  // \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name\n  // of the organization.\n  // Required.\n  optional string name = 1;\n\n  // ClientConfig defines how to communicate with the hook.\n  // Required\n  optional WebhookClientConfig clientConfig = 2;\n\n  // Rules describes what operations on what resources/subresources the webhook cares about.\n  // The webhook cares about an operation if it matches _any_ Rule.\n  // However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks\n  // from putting the cluster in a state which cannot be recovered from without completely\n  // disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called\n  // on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.\n  // +listType=atomic\n  repeated .k8s.io.api.admissionregistration.v1.RuleWithOperations rules = 3;\n\n  // FailurePolicy defines how unrecognized errors from the admission endpoint are handled -\n  // allowed values are Ignore or Fail. Defaults to Ignore.\n  // +optional\n  optional string failurePolicy = 4;\n\n  // matchPolicy defines how the \"rules\" list is used to match incoming requests.\n  // Allowed values are \"Exact\" or \"Equivalent\".\n  //\n  // - Exact: match a request only if it exactly matches a specified rule.\n  // For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n  // but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n  // a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n  //\n  // - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version.\n  // For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n  // and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n  // a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n  //\n  // Defaults to \"Exact\"\n  // +optional\n  optional string matchPolicy = 9;\n\n  // NamespaceSelector decides whether to run the webhook on an object based\n  // on whether the namespace for that object matches the selector. If the\n  // object itself is a namespace, the matching is performed on\n  // object.metadata.labels. If the object is another cluster scoped resource,\n  // it never skips the webhook.\n  //\n  // For example, to run the webhook on any objects whose namespace is not\n  // associated with \"runlevel\" of \"0\" or \"1\";  you will set the selector as\n  // follows:\n  // \"namespaceSelector\": {\n  //   \"matchExpressions\": [\n  //     {\n  //       \"key\": \"runlevel\",\n  //       \"operator\": \"NotIn\",\n  //       \"values\": [\n  //         \"0\",\n  //         \"1\"\n  //       ]\n  //     }\n  //   ]\n  // }\n  //\n  // If instead you want to only run the webhook on any objects whose\n  // namespace is associated with the \"environment\" of \"prod\" or \"staging\";\n  // you will set the selector as follows:\n  // \"namespaceSelector\": {\n  //   \"matchExpressions\": [\n  //     {\n  //       \"key\": \"environment\",\n  //       \"operator\": \"In\",\n  //       \"values\": [\n  //         \"prod\",\n  //         \"staging\"\n  //       ]\n  //     }\n  //   ]\n  // }\n  //\n  // See\n  // https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\n  // for more examples of label selectors.\n  //\n  // Default to the empty LabelSelector, which matches everything.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector namespaceSelector = 5;\n\n  // ObjectSelector decides whether to run the webhook based on if the\n  // object has matching labels. objectSelector is evaluated against both\n  // the oldObject and newObject that would be sent to the webhook, and\n  // is considered to match if either object matches the selector. A null\n  // object (oldObject in the case of create, or newObject in the case of\n  // delete) or an object that cannot have labels (like a\n  // DeploymentRollback or a PodProxyOptions object) is not considered to\n  // match.\n  // Use the object selector only if the webhook is opt-in, because end\n  // users may skip the admission webhook by setting the labels.\n  // Default to the empty LabelSelector, which matches everything.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector objectSelector = 11;\n\n  // SideEffects states whether this webhook has side effects.\n  // Acceptable values are: Unknown, None, Some, NoneOnDryRun\n  // Webhooks with side effects MUST implement a reconciliation system, since a request may be\n  // rejected by a future step in the admission chain and the side effects therefore need to be undone.\n  // Requests with the dryRun attribute will be auto-rejected if they match a webhook with\n  // sideEffects == Unknown or Some. Defaults to Unknown.\n  // +optional\n  optional string sideEffects = 6;\n\n  // TimeoutSeconds specifies the timeout for this webhook. After the timeout passes,\n  // the webhook call will be ignored or the API call will fail based on the\n  // failure policy.\n  // The timeout value must be between 1 and 30 seconds.\n  // Default to 30 seconds.\n  // +optional\n  optional int32 timeoutSeconds = 7;\n\n  // AdmissionReviewVersions is an ordered list of preferred `AdmissionReview`\n  // versions the Webhook expects. API server will try to use first version in\n  // the list which it supports. If none of the versions specified in this list\n  // supported by API server, validation will fail for this object.\n  // If a persisted webhook configuration specifies allowed versions and does not\n  // include any versions known to the API Server, calls to the webhook will fail\n  // and be subject to the failure policy.\n  // Default to `['v1beta1']`.\n  // +optional\n  // +listType=atomic\n  repeated string admissionReviewVersions = 8;\n\n  // reinvocationPolicy indicates whether this webhook should be called multiple times as part of a single admission evaluation.\n  // Allowed values are \"Never\" and \"IfNeeded\".\n  //\n  // Never: the webhook will not be called more than once in a single admission evaluation.\n  //\n  // IfNeeded: the webhook will be called at least one additional time as part of the admission evaluation\n  // if the object being admitted is modified by other admission plugins after the initial webhook call.\n  // Webhooks that specify this option *must* be idempotent, able to process objects they previously admitted.\n  // Note:\n  // * the number of additional invocations is not guaranteed to be exactly one.\n  // * if additional invocations result in further modifications to the object, webhooks are not guaranteed to be invoked again.\n  // * webhooks that use this option may be reordered to minimize the number of additional invocations.\n  // * to validate an object after all mutations are guaranteed complete, use a validating admission webhook instead.\n  //\n  // Defaults to \"Never\".\n  // +optional\n  optional string reinvocationPolicy = 10;\n\n  // MatchConditions is a list of conditions that must be met for a request to be sent to this\n  // webhook. Match conditions filter requests that have already been matched by the rules,\n  // namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests.\n  // There are a maximum of 64 match conditions allowed.\n  //\n  // The exact matching logic is (in order):\n  //   1. If ANY matchCondition evaluates to FALSE, the webhook is skipped.\n  //   2. If ALL matchConditions evaluate to TRUE, the webhook is called.\n  //   3. If any matchCondition evaluates to an error (but none are FALSE):\n  //      - If failurePolicy=Fail, reject the request\n  //      - If failurePolicy=Ignore, the error is ignored and the webhook is skipped\n  //\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=name\n  // +optional\n  repeated MatchCondition matchConditions = 12;\n}\n\n// MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object.\n// Deprecated in v1.16, planned for removal in v1.19. Use admissionregistration.k8s.io/v1 MutatingWebhookConfiguration instead.\nmessage MutatingWebhookConfiguration {\n  // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Webhooks is a list of webhooks and the affected resources and operations.\n  // +optional\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=name\n  repeated MutatingWebhook Webhooks = 2;\n}\n\n// MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration.\nmessage MutatingWebhookConfigurationList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of MutatingWebhookConfiguration.\n  repeated MutatingWebhookConfiguration items = 2;\n}\n\n// NamedRuleWithOperations is a tuple of Operations and Resources with ResourceNames.\n// +structType=atomic\nmessage NamedRuleWithOperations {\n  // ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.\n  // +listType=atomic\n  // +optional\n  repeated string resourceNames = 1;\n\n  // RuleWithOperations is a tuple of Operations and Resources.\n  optional .k8s.io.api.admissionregistration.v1.RuleWithOperations ruleWithOperations = 2;\n}\n\n// ParamKind is a tuple of Group Kind and Version.\n// +structType=atomic\nmessage ParamKind {\n  // APIVersion is the API group version the resources belong to.\n  // In format of \"group/version\".\n  // Required.\n  optional string apiVersion = 1;\n\n  // Kind is the API kind the resources belong to.\n  // Required.\n  optional string kind = 2;\n}\n\n// ParamRef describes how to locate the params to be used as input to\n// expressions of rules applied by a policy binding.\n// +structType=atomic\nmessage ParamRef {\n  // name is the name of the resource being referenced.\n  //\n  // One of `name` or `selector` must be set, but `name` and `selector` are\n  // mutually exclusive properties. If one is set, the other must be unset.\n  //\n  // A single parameter used for all admission requests can be configured\n  // by setting the `name` field, leaving `selector` blank, and setting namespace\n  // if `paramKind` is namespace-scoped.\n  optional string name = 1;\n\n  // namespace is the namespace of the referenced resource. Allows limiting\n  // the search for params to a specific namespace. Applies to both `name` and\n  // `selector` fields.\n  //\n  // A per-namespace parameter may be used by specifying a namespace-scoped\n  // `paramKind` in the policy and leaving this field empty.\n  //\n  // - If `paramKind` is cluster-scoped, this field MUST be unset. Setting this\n  // field results in a configuration error.\n  //\n  // - If `paramKind` is namespace-scoped, the namespace of the object being\n  // evaluated for admission will be used when this field is left unset. Take\n  // care that if this is left empty the binding must not match any cluster-scoped\n  // resources, which will result in an error.\n  //\n  // +optional\n  optional string namespace = 2;\n\n  // selector can be used to match multiple param objects based on their labels.\n  // Supply selector: {} to match all resources of the ParamKind.\n  //\n  // If multiple params are found, they are all evaluated with the policy expressions\n  // and the results are ANDed together.\n  //\n  // One of `name` or `selector` must be set, but `name` and `selector` are\n  // mutually exclusive properties. If one is set, the other must be unset.\n  //\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 3;\n\n  // `parameterNotFoundAction` controls the behavior of the binding when the resource\n  // exists, and name or selector is valid, but there are no parameters\n  // matched by the binding. If the value is set to `Allow`, then no\n  // matched parameters will be treated as successful validation by the binding.\n  // If set to `Deny`, then no matched parameters will be subject to the\n  // `failurePolicy` of the policy.\n  //\n  // Allowed values are `Allow` or `Deny`\n  //\n  // Required\n  optional string parameterNotFoundAction = 4;\n}\n\n// ServiceReference holds a reference to Service.legacy.k8s.io\nmessage ServiceReference {\n  // `namespace` is the namespace of the service.\n  // Required\n  optional string namespace = 1;\n\n  // `name` is the name of the service.\n  // Required\n  optional string name = 2;\n\n  // `path` is an optional URL path which will be sent in any request to\n  // this service.\n  // +optional\n  optional string path = 3;\n\n  // If specified, the port on the service that hosting webhook.\n  // Default to 443 for backward compatibility.\n  // `port` should be a valid port number (1-65535, inclusive).\n  // +optional\n  optional int32 port = 4;\n}\n\n// TypeChecking contains results of type checking the expressions in the\n// ValidatingAdmissionPolicy\nmessage TypeChecking {\n  // The type checking warnings for each expression.\n  // +optional\n  // +listType=atomic\n  repeated ExpressionWarning expressionWarnings = 1;\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.28\n// ValidatingAdmissionPolicy describes the definition of an admission validation policy that accepts or rejects an object without changing it.\nmessage ValidatingAdmissionPolicy {\n  // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Specification of the desired behavior of the ValidatingAdmissionPolicy.\n  optional ValidatingAdmissionPolicySpec spec = 2;\n\n  // The status of the ValidatingAdmissionPolicy, including warnings that are useful to determine if the policy\n  // behaves in the expected way.\n  // Populated by the system.\n  // Read-only.\n  // +optional\n  optional ValidatingAdmissionPolicyStatus status = 3;\n}\n\n// ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources.\n// ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters.\n//\n// For a given admission request, each binding will cause its policy to be\n// evaluated N times, where N is 1 for policies/bindings that don't use\n// params, otherwise N is the number of parameters selected by the binding.\n//\n// The CEL expressions of a policy must have a computed CEL cost below the maximum\n// CEL budget. Each evaluation of the policy is given an independent CEL cost budget.\n// Adding/removing policies, bindings, or params can not affect whether a\n// given (policy, binding, param) combination is within its own CEL budget.\nmessage ValidatingAdmissionPolicyBinding {\n  // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Specification of the desired behavior of the ValidatingAdmissionPolicyBinding.\n  optional ValidatingAdmissionPolicyBindingSpec spec = 2;\n}\n\n// ValidatingAdmissionPolicyBindingList is a list of ValidatingAdmissionPolicyBinding.\nmessage ValidatingAdmissionPolicyBindingList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of PolicyBinding.\n  repeated ValidatingAdmissionPolicyBinding items = 2;\n}\n\n// ValidatingAdmissionPolicyBindingSpec is the specification of the ValidatingAdmissionPolicyBinding.\nmessage ValidatingAdmissionPolicyBindingSpec {\n  // PolicyName references a ValidatingAdmissionPolicy name which the ValidatingAdmissionPolicyBinding binds to.\n  // If the referenced resource does not exist, this binding is considered invalid and will be ignored\n  // Required.\n  optional string policyName = 1;\n\n  // paramRef specifies the parameter resource used to configure the admission control policy.\n  // It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy.\n  // If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied.\n  // If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param.\n  // +optional\n  optional ParamRef paramRef = 2;\n\n  // MatchResources declares what resources match this binding and will be validated by it.\n  // Note that this is intersected with the policy's matchConstraints, so only requests that are matched by the policy can be selected by this.\n  // If this is unset, all resources matched by the policy are validated by this binding\n  // When resourceRules is unset, it does not constrain resource matching. If a resource is matched by the other fields of this object, it will be validated.\n  // Note that this is differs from ValidatingAdmissionPolicy matchConstraints, where resourceRules are required.\n  // +optional\n  optional MatchResources matchResources = 3;\n\n  // validationActions declares how Validations of the referenced ValidatingAdmissionPolicy are enforced.\n  // If a validation evaluates to false it is always enforced according to these actions.\n  //\n  // Failures defined by the ValidatingAdmissionPolicy's FailurePolicy are enforced according\n  // to these actions only if the FailurePolicy is set to Fail, otherwise the failures are\n  // ignored. This includes compilation errors, runtime errors and misconfigurations of the policy.\n  //\n  // validationActions is declared as a set of action values. Order does\n  // not matter. validationActions may not contain duplicates of the same action.\n  //\n  // The supported actions values are:\n  //\n  // \"Deny\" specifies that a validation failure results in a denied request.\n  //\n  // \"Warn\" specifies that a validation failure is reported to the request client\n  // in HTTP Warning headers, with a warning code of 299. Warnings can be sent\n  // both for allowed or denied admission responses.\n  //\n  // \"Audit\" specifies that a validation failure is included in the published\n  // audit event for the request. The audit event will contain a\n  // `validation.policy.admission.k8s.io/validation_failure` audit annotation\n  // with a value containing the details of the validation failures, formatted as\n  // a JSON list of objects, each with the following fields:\n  // - message: The validation failure message string\n  // - policy: The resource name of the ValidatingAdmissionPolicy\n  // - binding: The resource name of the ValidatingAdmissionPolicyBinding\n  // - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy\n  // - validationActions: The enforcement actions enacted for the validation failure\n  // Example audit annotation:\n  // `\"validation.policy.admission.k8s.io/validation_failure\": \"[{\\\"message\\\": \\\"Invalid value\\\", {\\\"policy\\\": \\\"policy.example.com\\\", {\\\"binding\\\": \\\"policybinding.example.com\\\", {\\\"expressionIndex\\\": \\\"1\\\", {\\\"validationActions\\\": [\\\"Audit\\\"]}]\"`\n  //\n  // Clients should expect to handle additional values by ignoring\n  // any values not recognized.\n  //\n  // \"Deny\" and \"Warn\" may not be used together since this combination\n  // needlessly duplicates the validation failure both in the\n  // API response body and the HTTP warning headers.\n  //\n  // Required.\n  // +listType=set\n  repeated string validationActions = 4;\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.28\n// ValidatingAdmissionPolicyList is a list of ValidatingAdmissionPolicy.\nmessage ValidatingAdmissionPolicyList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of ValidatingAdmissionPolicy.\n  repeated ValidatingAdmissionPolicy items = 2;\n}\n\n// ValidatingAdmissionPolicySpec is the specification of the desired behavior of the AdmissionPolicy.\nmessage ValidatingAdmissionPolicySpec {\n  // ParamKind specifies the kind of resources used to parameterize this policy.\n  // If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions.\n  // If ParamKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied.\n  // If paramKind is specified but paramRef is unset in ValidatingAdmissionPolicyBinding, the params variable will be null.\n  // +optional\n  optional ParamKind paramKind = 1;\n\n  // MatchConstraints specifies what resources this policy is designed to validate.\n  // The AdmissionPolicy cares about a request if it matches _all_ Constraints.\n  // However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API\n  // ValidatingAdmissionPolicy cannot match ValidatingAdmissionPolicy and ValidatingAdmissionPolicyBinding.\n  // Required.\n  optional MatchResources matchConstraints = 2;\n\n  // Validations contain CEL expressions which is used to apply the validation.\n  // Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is\n  // required.\n  // +listType=atomic\n  // +optional\n  repeated Validation validations = 3;\n\n  // failurePolicy defines how to handle failures for the admission policy. Failures can\n  // occur from CEL expression parse errors, type check errors, runtime errors and invalid\n  // or mis-configured policy definitions or bindings.\n  //\n  // A policy is invalid if spec.paramKind refers to a non-existent Kind.\n  // A binding is invalid if spec.paramRef.name refers to a non-existent resource.\n  //\n  // failurePolicy does not define how validations that evaluate to false are handled.\n  //\n  // When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions\n  // define how failures are enforced.\n  //\n  // Allowed values are Ignore or Fail. Defaults to Fail.\n  // +optional\n  optional string failurePolicy = 4;\n\n  // auditAnnotations contains CEL expressions which are used to produce audit\n  // annotations for the audit event of the API request.\n  // validations and auditAnnotations may not both be empty; a least one of validations or auditAnnotations is\n  // required.\n  // +listType=atomic\n  // +optional\n  repeated AuditAnnotation auditAnnotations = 5;\n\n  // MatchConditions is a list of conditions that must be met for a request to be validated.\n  // Match conditions filter requests that have already been matched by the rules,\n  // namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests.\n  // There are a maximum of 64 match conditions allowed.\n  //\n  // If a parameter object is provided, it can be accessed via the `params` handle in the same\n  // manner as validation expressions.\n  //\n  // The exact matching logic is (in order):\n  //   1. If ANY matchCondition evaluates to FALSE, the policy is skipped.\n  //   2. If ALL matchConditions evaluate to TRUE, the policy is evaluated.\n  //   3. If any matchCondition evaluates to an error (but none are FALSE):\n  //      - If failurePolicy=Fail, reject the request\n  //      - If failurePolicy=Ignore, the policy is skipped\n  //\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=name\n  // +optional\n  repeated MatchCondition matchConditions = 6;\n\n  // Variables contain definitions of variables that can be used in composition of other expressions.\n  // Each variable is defined as a named CEL expression.\n  // The variables defined here will be available under `variables` in other expressions of the policy\n  // except MatchConditions because MatchConditions are evaluated before the rest of the policy.\n  //\n  // The expression of a variable can refer to other variables defined earlier in the list but not those after.\n  // Thus, Variables must be sorted by the order of first appearance and acyclic.\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=name\n  // +optional\n  repeated Variable variables = 7;\n}\n\n// ValidatingAdmissionPolicyStatus represents the status of an admission validation policy.\nmessage ValidatingAdmissionPolicyStatus {\n  // The generation observed by the controller.\n  // +optional\n  optional int64 observedGeneration = 1;\n\n  // The results of type checking for each expression.\n  // Presence of this field indicates the completion of the type checking.\n  // +optional\n  optional TypeChecking typeChecking = 2;\n\n  // The conditions represent the latest available observations of a policy's current state.\n  // +optional\n  // +listType=map\n  // +listMapKey=type\n  repeated .k8s.io.apimachinery.pkg.apis.meta.v1.Condition conditions = 3;\n}\n\n// ValidatingWebhook describes an admission webhook and the resources and operations it applies to.\nmessage ValidatingWebhook {\n  // The name of the admission webhook.\n  // Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where\n  // \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name\n  // of the organization.\n  // Required.\n  optional string name = 1;\n\n  // ClientConfig defines how to communicate with the hook.\n  // Required\n  optional WebhookClientConfig clientConfig = 2;\n\n  // Rules describes what operations on what resources/subresources the webhook cares about.\n  // The webhook cares about an operation if it matches _any_ Rule.\n  // However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks\n  // from putting the cluster in a state which cannot be recovered from without completely\n  // disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called\n  // on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.\n  // +listType=atomic\n  repeated .k8s.io.api.admissionregistration.v1.RuleWithOperations rules = 3;\n\n  // FailurePolicy defines how unrecognized errors from the admission endpoint are handled -\n  // allowed values are Ignore or Fail. Defaults to Ignore.\n  // +optional\n  optional string failurePolicy = 4;\n\n  // matchPolicy defines how the \"rules\" list is used to match incoming requests.\n  // Allowed values are \"Exact\" or \"Equivalent\".\n  //\n  // - Exact: match a request only if it exactly matches a specified rule.\n  // For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n  // but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n  // a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n  //\n  // - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version.\n  // For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n  // and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n  // a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n  //\n  // Defaults to \"Exact\"\n  // +optional\n  optional string matchPolicy = 9;\n\n  // NamespaceSelector decides whether to run the webhook on an object based\n  // on whether the namespace for that object matches the selector. If the\n  // object itself is a namespace, the matching is performed on\n  // object.metadata.labels. If the object is another cluster scoped resource,\n  // it never skips the webhook.\n  //\n  // For example, to run the webhook on any objects whose namespace is not\n  // associated with \"runlevel\" of \"0\" or \"1\";  you will set the selector as\n  // follows:\n  // \"namespaceSelector\": {\n  //   \"matchExpressions\": [\n  //     {\n  //       \"key\": \"runlevel\",\n  //       \"operator\": \"NotIn\",\n  //       \"values\": [\n  //         \"0\",\n  //         \"1\"\n  //       ]\n  //     }\n  //   ]\n  // }\n  //\n  // If instead you want to only run the webhook on any objects whose\n  // namespace is associated with the \"environment\" of \"prod\" or \"staging\";\n  // you will set the selector as follows:\n  // \"namespaceSelector\": {\n  //   \"matchExpressions\": [\n  //     {\n  //       \"key\": \"environment\",\n  //       \"operator\": \"In\",\n  //       \"values\": [\n  //         \"prod\",\n  //         \"staging\"\n  //       ]\n  //     }\n  //   ]\n  // }\n  //\n  // See\n  // https://kubernetes.io/docs/concepts/overview/working-with-objects/labels\n  // for more examples of label selectors.\n  //\n  // Default to the empty LabelSelector, which matches everything.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector namespaceSelector = 5;\n\n  // ObjectSelector decides whether to run the webhook based on if the\n  // object has matching labels. objectSelector is evaluated against both\n  // the oldObject and newObject that would be sent to the webhook, and\n  // is considered to match if either object matches the selector. A null\n  // object (oldObject in the case of create, or newObject in the case of\n  // delete) or an object that cannot have labels (like a\n  // DeploymentRollback or a PodProxyOptions object) is not considered to\n  // match.\n  // Use the object selector only if the webhook is opt-in, because end\n  // users may skip the admission webhook by setting the labels.\n  // Default to the empty LabelSelector, which matches everything.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector objectSelector = 10;\n\n  // SideEffects states whether this webhook has side effects.\n  // Acceptable values are: Unknown, None, Some, NoneOnDryRun\n  // Webhooks with side effects MUST implement a reconciliation system, since a request may be\n  // rejected by a future step in the admission chain and the side effects therefore need to be undone.\n  // Requests with the dryRun attribute will be auto-rejected if they match a webhook with\n  // sideEffects == Unknown or Some. Defaults to Unknown.\n  // +optional\n  // +listType=atomic\n  optional string sideEffects = 6;\n\n  // TimeoutSeconds specifies the timeout for this webhook. After the timeout passes,\n  // the webhook call will be ignored or the API call will fail based on the\n  // failure policy.\n  // The timeout value must be between 1 and 30 seconds.\n  // Default to 30 seconds.\n  // +optional\n  optional int32 timeoutSeconds = 7;\n\n  // AdmissionReviewVersions is an ordered list of preferred `AdmissionReview`\n  // versions the Webhook expects. API server will try to use first version in\n  // the list which it supports. If none of the versions specified in this list\n  // supported by API server, validation will fail for this object.\n  // If a persisted webhook configuration specifies allowed versions and does not\n  // include any versions known to the API Server, calls to the webhook will fail\n  // and be subject to the failure policy.\n  // Default to `['v1beta1']`.\n  // +optional\n  // +listType=atomic\n  repeated string admissionReviewVersions = 8;\n\n  // MatchConditions is a list of conditions that must be met for a request to be sent to this\n  // webhook. Match conditions filter requests that have already been matched by the rules,\n  // namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests.\n  // There are a maximum of 64 match conditions allowed.\n  //\n  // The exact matching logic is (in order):\n  //   1. If ANY matchCondition evaluates to FALSE, the webhook is skipped.\n  //   2. If ALL matchConditions evaluate to TRUE, the webhook is called.\n  //   3. If any matchCondition evaluates to an error (but none are FALSE):\n  //      - If failurePolicy=Fail, reject the request\n  //      - If failurePolicy=Ignore, the error is ignored and the webhook is skipped\n  //\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=name\n  // +optional\n  repeated MatchCondition matchConditions = 11;\n}\n\n// ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it.\n// Deprecated in v1.16, planned for removal in v1.19. Use admissionregistration.k8s.io/v1 ValidatingWebhookConfiguration instead.\nmessage ValidatingWebhookConfiguration {\n  // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Webhooks is a list of webhooks and the affected resources and operations.\n  // +optional\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=name\n  repeated ValidatingWebhook Webhooks = 2;\n}\n\n// ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration.\nmessage ValidatingWebhookConfigurationList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of ValidatingWebhookConfiguration.\n  repeated ValidatingWebhookConfiguration items = 2;\n}\n\n// Validation specifies the CEL expression which is used to apply the validation.\nmessage Validation {\n  // Expression represents the expression which will be evaluated by CEL.\n  // ref: https://github.com/google/cel-spec\n  // CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables:\n  //\n  // - 'object' - The object from the incoming request. The value is null for DELETE requests.\n  // - 'oldObject' - The existing object. The value is null for CREATE requests.\n  // - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)).\n  // - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind.\n  // - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources.\n  // - 'variables' - Map of composited variables, from its name to its lazily evaluated value.\n  //   For example, a variable named 'foo' can be accessed as 'variables.foo'.\n  // - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n  //   See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n  // - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n  //   request resource.\n  //\n  // The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the\n  // object. No other metadata properties are accessible.\n  //\n  // Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible.\n  // Accessible property names are escaped according to the following rules when accessed in the expression:\n  // - '__' escapes to '__underscores__'\n  // - '.' escapes to '__dot__'\n  // - '-' escapes to '__dash__'\n  // - '/' escapes to '__slash__'\n  // - Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are:\n  // \t  \"true\", \"false\", \"null\", \"in\", \"as\", \"break\", \"const\", \"continue\", \"else\", \"for\", \"function\", \"if\",\n  // \t  \"import\", \"let\", \"loop\", \"package\", \"namespace\", \"return\".\n  // Examples:\n  //   - Expression accessing a property named \"namespace\": {\"Expression\": \"object.__namespace__ > 0\"}\n  //   - Expression accessing a property named \"x-prop\": {\"Expression\": \"object.x__dash__prop > 0\"}\n  //   - Expression accessing a property named \"redact__d\": {\"Expression\": \"object.redact__underscores__d > 0\"}\n  //\n  // Equality on arrays with list type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1].\n  // Concatenation on arrays with x-kubernetes-list-type use the semantics of the list type:\n  //   - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and\n  //     non-intersecting elements in `Y` are appended, retaining their partial order.\n  //   - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values\n  //     are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with\n  //     non-intersecting keys are appended, retaining their partial order.\n  // Required.\n  optional string Expression = 1;\n\n  // Message represents the message displayed when validation fails. The message is required if the Expression contains\n  // line breaks. The message must not contain line breaks.\n  // If unset, the message is \"failed rule: {Rule}\".\n  // e.g. \"must be a URL with the host matching spec.host\"\n  // If the Expression contains line breaks. Message is required.\n  // The message must not contain line breaks.\n  // If unset, the message is \"failed Expression: {Expression}\".\n  // +optional\n  optional string message = 2;\n\n  // Reason represents a machine-readable description of why this validation failed.\n  // If this is the first validation in the list to fail, this reason, as well as the\n  // corresponding HTTP response code, are used in the\n  // HTTP response to the client.\n  // The currently supported reasons are: \"Unauthorized\", \"Forbidden\", \"Invalid\", \"RequestEntityTooLarge\".\n  // If not set, StatusReasonInvalid is used in the response to the client.\n  // +optional\n  optional string reason = 3;\n\n  // messageExpression declares a CEL expression that evaluates to the validation failure message that is returned when this rule fails.\n  // Since messageExpression is used as a failure message, it must evaluate to a string.\n  // If both message and messageExpression are present on a validation, then messageExpression will be used if validation fails.\n  // If messageExpression results in a runtime error, the runtime error is logged, and the validation failure message is produced\n  // as if the messageExpression field were unset. If messageExpression evaluates to an empty string, a string with only spaces, or a string\n  // that contains line breaks, then the validation failure message will also be produced as if the messageExpression field were unset, and\n  // the fact that messageExpression produced an empty string/string with only spaces/string with line breaks will be logged.\n  // messageExpression has access to all the same variables as the `expression` except for 'authorizer' and 'authorizer.requestResource'.\n  // Example:\n  // \"object.x must be less than max (\"+string(params.max)+\")\"\n  // +optional\n  optional string messageExpression = 4;\n}\n\n// Variable is the definition of a variable that is used for composition. A variable is defined as a named expression.\n// +structType=atomic\nmessage Variable {\n  // Name is the name of the variable. The name must be a valid CEL identifier and unique among all variables.\n  // The variable can be accessed in other expressions through `variables`\n  // For example, if name is \"foo\", the variable will be available as `variables.foo`\n  optional string Name = 1;\n\n  // Expression is the expression that will be evaluated as the value of the variable.\n  // The CEL expression has access to the same identifiers as the CEL expressions in Validation.\n  optional string Expression = 2;\n}\n\n// WebhookClientConfig contains the information to make a TLS\n// connection with the webhook\nmessage WebhookClientConfig {\n  // `url` gives the location of the webhook, in standard URL form\n  // (`scheme://host:port/path`). Exactly one of `url` or `service`\n  // must be specified.\n  //\n  // The `host` should not refer to a service running in the cluster; use\n  // the `service` field instead. The host might be resolved via external\n  // DNS in some apiservers (e.g., `kube-apiserver` cannot resolve\n  // in-cluster DNS as that would be a layering violation). `host` may\n  // also be an IP address.\n  //\n  // Please note that using `localhost` or `127.0.0.1` as a `host` is\n  // risky unless you take great care to run this webhook on all hosts\n  // which run an apiserver which might need to make calls to this\n  // webhook. Such installs are likely to be non-portable, i.e., not easy\n  // to turn up in a new cluster.\n  //\n  // The scheme must be \"https\"; the URL must begin with \"https://\".\n  //\n  // A path is optional, and if present may be any string permissible in\n  // a URL. You may use the path to pass an arbitrary string to the\n  // webhook, for example, a cluster identifier.\n  //\n  // Attempting to use a user or basic auth e.g. \"user:password@\" is not\n  // allowed. Fragments (\"#...\") and query parameters (\"?...\") are not\n  // allowed, either.\n  //\n  // +optional\n  optional string url = 3;\n\n  // `service` is a reference to the service for this webhook. Either\n  // `service` or `url` must be specified.\n  //\n  // If the webhook is running within the cluster, then you should use `service`.\n  //\n  // +optional\n  optional ServiceReference service = 1;\n\n  // `caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate.\n  // If unspecified, system trust roots on the apiserver are used.\n  // +optional\n  optional bytes caBundle = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1beta1/register.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name for this API.\nconst GroupName = \"admissionregistration.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\n// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\nvar (\n\t// SchemeBuilder points to a list of functions added to Scheme.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\t// AddToScheme is a common registration function for mapping packaged scoped group & version keys to a scheme.\n\tAddToScheme = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&ValidatingWebhookConfiguration{},\n\t\t&ValidatingWebhookConfigurationList{},\n\t\t&MutatingWebhookConfiguration{},\n\t\t&MutatingWebhookConfigurationList{},\n\t\t&ValidatingAdmissionPolicy{},\n\t\t&ValidatingAdmissionPolicyList{},\n\t\t&ValidatingAdmissionPolicyBinding{},\n\t\t&ValidatingAdmissionPolicyBindingList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1beta1/types.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/admissionregistration/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// Rule is a tuple of APIGroups, APIVersion, and Resources.It is recommended\n// to make sure that all the tuple expansions are valid.\ntype Rule = v1.Rule\n\n// ScopeType specifies a scope for a Rule.\ntype ScopeType = v1.ScopeType\n\nconst (\n\t// ClusterScope means that scope is limited to cluster-scoped objects.\n\t// Namespace objects are cluster-scoped.\n\tClusterScope ScopeType = v1.ClusterScope\n\t// NamespacedScope means that scope is limited to namespaced objects.\n\tNamespacedScope ScopeType = v1.NamespacedScope\n\t// AllScopes means that all scopes are included.\n\tAllScopes ScopeType = v1.AllScopes\n)\n\n// ParameterNotFoundActionType specifies a failure policy that defines how a binding\n// is evaluated when the param referred by its perNamespaceParamRef is not found.\ntype ParameterNotFoundActionType string\n\nconst (\n\t// Allow means all requests will be admitted if no param resources\n\t// could be found.\n\tAllowAction ParameterNotFoundActionType = \"Allow\"\n\t// Deny means all requests will be denied if no param resources are found.\n\tDenyAction ParameterNotFoundActionType = \"Deny\"\n)\n\n// FailurePolicyType specifies a failure policy that defines how unrecognized errors from the admission endpoint are handled.\ntype FailurePolicyType string\n\nconst (\n\t// Ignore means that an error calling the webhook is ignored.\n\tIgnore FailurePolicyType = \"Ignore\"\n\t// Fail means that an error calling the webhook causes the admission to fail.\n\tFail FailurePolicyType = \"Fail\"\n)\n\n// MatchPolicyType specifies the type of match policy\ntype MatchPolicyType string\n\nconst (\n\t// Exact means requests should only be sent to the webhook if they exactly match a given rule\n\tExact MatchPolicyType = \"Exact\"\n\t// Equivalent means requests should be sent to the webhook if they modify a resource listed in rules via another API group or version.\n\tEquivalent MatchPolicyType = \"Equivalent\"\n)\n\n// SideEffectClass specifies the types of side effects a webhook may have.\ntype SideEffectClass string\n\nconst (\n\t// SideEffectClassUnknown means that no information is known about the side effects of calling the webhook.\n\t// If a request with the dry-run attribute would trigger a call to this webhook, the request will instead fail.\n\tSideEffectClassUnknown SideEffectClass = \"Unknown\"\n\t// SideEffectClassNone means that calling the webhook will have no side effects.\n\tSideEffectClassNone SideEffectClass = \"None\"\n\t// SideEffectClassSome means that calling the webhook will possibly have side effects.\n\t// If a request with the dry-run attribute would trigger a call to this webhook, the request will instead fail.\n\tSideEffectClassSome SideEffectClass = \"Some\"\n\t// SideEffectClassNoneOnDryRun means that calling the webhook will possibly have side effects, but if the\n\t// request being reviewed has the dry-run attribute, the side effects will be suppressed.\n\tSideEffectClassNoneOnDryRun SideEffectClass = \"NoneOnDryRun\"\n)\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.28\n// ValidatingAdmissionPolicy describes the definition of an admission validation policy that accepts or rejects an object without changing it.\ntype ValidatingAdmissionPolicy struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// Specification of the desired behavior of the ValidatingAdmissionPolicy.\n\tSpec ValidatingAdmissionPolicySpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\t// The status of the ValidatingAdmissionPolicy, including warnings that are useful to determine if the policy\n\t// behaves in the expected way.\n\t// Populated by the system.\n\t// Read-only.\n\t// +optional\n\tStatus ValidatingAdmissionPolicyStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// ValidatingAdmissionPolicyStatus represents the status of an admission validation policy.\ntype ValidatingAdmissionPolicyStatus struct {\n\t// The generation observed by the controller.\n\t// +optional\n\tObservedGeneration int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,1,opt,name=observedGeneration\"`\n\t// The results of type checking for each expression.\n\t// Presence of this field indicates the completion of the type checking.\n\t// +optional\n\tTypeChecking *TypeChecking `json:\"typeChecking,omitempty\" protobuf:\"bytes,2,opt,name=typeChecking\"`\n\t// The conditions represent the latest available observations of a policy's current state.\n\t// +optional\n\t// +listType=map\n\t// +listMapKey=type\n\tConditions []metav1.Condition `json:\"conditions,omitempty\" protobuf:\"bytes,3,rep,name=conditions\"`\n}\n\n// ValidatingAdmissionPolicyConditionType is the condition type of admission validation policy.\ntype ValidatingAdmissionPolicyConditionType string\n\n// TypeChecking contains results of type checking the expressions in the\n// ValidatingAdmissionPolicy\ntype TypeChecking struct {\n\t// The type checking warnings for each expression.\n\t// +optional\n\t// +listType=atomic\n\tExpressionWarnings []ExpressionWarning `json:\"expressionWarnings,omitempty\" protobuf:\"bytes,1,rep,name=expressionWarnings\"`\n}\n\n// ExpressionWarning is a warning information that targets a specific expression.\ntype ExpressionWarning struct {\n\t// The path to the field that refers the expression.\n\t// For example, the reference to the expression of the first item of\n\t// validations is \"spec.validations[0].expression\"\n\tFieldRef string `json:\"fieldRef\" protobuf:\"bytes,2,opt,name=fieldRef\"`\n\t// The content of type checking information in a human-readable form.\n\t// Each line of the warning contains the type that the expression is checked\n\t// against, followed by the type check error from the compiler.\n\tWarning string `json:\"warning\" protobuf:\"bytes,3,opt,name=warning\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.28\n// ValidatingAdmissionPolicyList is a list of ValidatingAdmissionPolicy.\ntype ValidatingAdmissionPolicyList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// List of ValidatingAdmissionPolicy.\n\tItems []ValidatingAdmissionPolicy `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// ValidatingAdmissionPolicySpec is the specification of the desired behavior of the AdmissionPolicy.\ntype ValidatingAdmissionPolicySpec struct {\n\t// ParamKind specifies the kind of resources used to parameterize this policy.\n\t// If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions.\n\t// If ParamKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied.\n\t// If paramKind is specified but paramRef is unset in ValidatingAdmissionPolicyBinding, the params variable will be null.\n\t// +optional\n\tParamKind *ParamKind `json:\"paramKind,omitempty\" protobuf:\"bytes,1,rep,name=paramKind\"`\n\n\t// MatchConstraints specifies what resources this policy is designed to validate.\n\t// The AdmissionPolicy cares about a request if it matches _all_ Constraints.\n\t// However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API\n\t// ValidatingAdmissionPolicy cannot match ValidatingAdmissionPolicy and ValidatingAdmissionPolicyBinding.\n\t// Required.\n\tMatchConstraints *MatchResources `json:\"matchConstraints,omitempty\" protobuf:\"bytes,2,rep,name=matchConstraints\"`\n\n\t// Validations contain CEL expressions which is used to apply the validation.\n\t// Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is\n\t// required.\n\t// +listType=atomic\n\t// +optional\n\tValidations []Validation `json:\"validations,omitempty\" protobuf:\"bytes,3,rep,name=validations\"`\n\n\t// failurePolicy defines how to handle failures for the admission policy. Failures can\n\t// occur from CEL expression parse errors, type check errors, runtime errors and invalid\n\t// or mis-configured policy definitions or bindings.\n\t//\n\t// A policy is invalid if spec.paramKind refers to a non-existent Kind.\n\t// A binding is invalid if spec.paramRef.name refers to a non-existent resource.\n\t//\n\t// failurePolicy does not define how validations that evaluate to false are handled.\n\t//\n\t// When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions\n\t// define how failures are enforced.\n\t//\n\t// Allowed values are Ignore or Fail. Defaults to Fail.\n\t// +optional\n\tFailurePolicy *FailurePolicyType `json:\"failurePolicy,omitempty\" protobuf:\"bytes,4,opt,name=failurePolicy,casttype=FailurePolicyType\"`\n\n\t// auditAnnotations contains CEL expressions which are used to produce audit\n\t// annotations for the audit event of the API request.\n\t// validations and auditAnnotations may not both be empty; a least one of validations or auditAnnotations is\n\t// required.\n\t// +listType=atomic\n\t// +optional\n\tAuditAnnotations []AuditAnnotation `json:\"auditAnnotations,omitempty\" protobuf:\"bytes,5,rep,name=auditAnnotations\"`\n\n\t// MatchConditions is a list of conditions that must be met for a request to be validated.\n\t// Match conditions filter requests that have already been matched by the rules,\n\t// namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests.\n\t// There are a maximum of 64 match conditions allowed.\n\t//\n\t// If a parameter object is provided, it can be accessed via the `params` handle in the same\n\t// manner as validation expressions.\n\t//\n\t// The exact matching logic is (in order):\n\t//   1. If ANY matchCondition evaluates to FALSE, the policy is skipped.\n\t//   2. If ALL matchConditions evaluate to TRUE, the policy is evaluated.\n\t//   3. If any matchCondition evaluates to an error (but none are FALSE):\n\t//      - If failurePolicy=Fail, reject the request\n\t//      - If failurePolicy=Ignore, the policy is skipped\n\t//\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=name\n\t// +optional\n\tMatchConditions []MatchCondition `json:\"matchConditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,6,rep,name=matchConditions\"`\n\n\t// Variables contain definitions of variables that can be used in composition of other expressions.\n\t// Each variable is defined as a named CEL expression.\n\t// The variables defined here will be available under `variables` in other expressions of the policy\n\t// except MatchConditions because MatchConditions are evaluated before the rest of the policy.\n\t//\n\t// The expression of a variable can refer to other variables defined earlier in the list but not those after.\n\t// Thus, Variables must be sorted by the order of first appearance and acyclic.\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=name\n\t// +optional\n\tVariables []Variable `json:\"variables,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,7,rep,name=variables\"`\n}\n\n// ParamKind is a tuple of Group Kind and Version.\n// +structType=atomic\ntype ParamKind struct {\n\t// APIVersion is the API group version the resources belong to.\n\t// In format of \"group/version\".\n\t// Required.\n\tAPIVersion string `json:\"apiVersion,omitempty\" protobuf:\"bytes,1,rep,name=apiVersion\"`\n\n\t// Kind is the API kind the resources belong to.\n\t// Required.\n\tKind string `json:\"kind,omitempty\" protobuf:\"bytes,2,rep,name=kind\"`\n}\n\n// Validation specifies the CEL expression which is used to apply the validation.\ntype Validation struct {\n\t// Expression represents the expression which will be evaluated by CEL.\n\t// ref: https://github.com/google/cel-spec\n\t// CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables:\n\t//\n\t// - 'object' - The object from the incoming request. The value is null for DELETE requests.\n\t// - 'oldObject' - The existing object. The value is null for CREATE requests.\n\t// - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)).\n\t// - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind.\n\t// - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources.\n\t// - 'variables' - Map of composited variables, from its name to its lazily evaluated value.\n\t//   For example, a variable named 'foo' can be accessed as 'variables.foo'.\n\t// - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n\t//   See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n\t// - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n\t//   request resource.\n\t//\n\t// The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the\n\t// object. No other metadata properties are accessible.\n\t//\n\t// Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible.\n\t// Accessible property names are escaped according to the following rules when accessed in the expression:\n\t// - '__' escapes to '__underscores__'\n\t// - '.' escapes to '__dot__'\n\t// - '-' escapes to '__dash__'\n\t// - '/' escapes to '__slash__'\n\t// - Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are:\n\t//\t  \"true\", \"false\", \"null\", \"in\", \"as\", \"break\", \"const\", \"continue\", \"else\", \"for\", \"function\", \"if\",\n\t//\t  \"import\", \"let\", \"loop\", \"package\", \"namespace\", \"return\".\n\t// Examples:\n\t//   - Expression accessing a property named \"namespace\": {\"Expression\": \"object.__namespace__ > 0\"}\n\t//   - Expression accessing a property named \"x-prop\": {\"Expression\": \"object.x__dash__prop > 0\"}\n\t//   - Expression accessing a property named \"redact__d\": {\"Expression\": \"object.redact__underscores__d > 0\"}\n\t//\n\t// Equality on arrays with list type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1].\n\t// Concatenation on arrays with x-kubernetes-list-type use the semantics of the list type:\n\t//   - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and\n\t//     non-intersecting elements in `Y` are appended, retaining their partial order.\n\t//   - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values\n\t//     are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with\n\t//     non-intersecting keys are appended, retaining their partial order.\n\t// Required.\n\tExpression string `json:\"expression\" protobuf:\"bytes,1,opt,name=Expression\"`\n\t// Message represents the message displayed when validation fails. The message is required if the Expression contains\n\t// line breaks. The message must not contain line breaks.\n\t// If unset, the message is \"failed rule: {Rule}\".\n\t// e.g. \"must be a URL with the host matching spec.host\"\n\t// If the Expression contains line breaks. Message is required.\n\t// The message must not contain line breaks.\n\t// If unset, the message is \"failed Expression: {Expression}\".\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,2,opt,name=message\"`\n\t// Reason represents a machine-readable description of why this validation failed.\n\t// If this is the first validation in the list to fail, this reason, as well as the\n\t// corresponding HTTP response code, are used in the\n\t// HTTP response to the client.\n\t// The currently supported reasons are: \"Unauthorized\", \"Forbidden\", \"Invalid\", \"RequestEntityTooLarge\".\n\t// If not set, StatusReasonInvalid is used in the response to the client.\n\t// +optional\n\tReason *metav1.StatusReason `json:\"reason,omitempty\" protobuf:\"bytes,3,opt,name=reason\"`\n\t// messageExpression declares a CEL expression that evaluates to the validation failure message that is returned when this rule fails.\n\t// Since messageExpression is used as a failure message, it must evaluate to a string.\n\t// If both message and messageExpression are present on a validation, then messageExpression will be used if validation fails.\n\t// If messageExpression results in a runtime error, the runtime error is logged, and the validation failure message is produced\n\t// as if the messageExpression field were unset. If messageExpression evaluates to an empty string, a string with only spaces, or a string\n\t// that contains line breaks, then the validation failure message will also be produced as if the messageExpression field were unset, and\n\t// the fact that messageExpression produced an empty string/string with only spaces/string with line breaks will be logged.\n\t// messageExpression has access to all the same variables as the `expression` except for 'authorizer' and 'authorizer.requestResource'.\n\t// Example:\n\t// \"object.x must be less than max (\"+string(params.max)+\")\"\n\t// +optional\n\tMessageExpression string `json:\"messageExpression,omitempty\" protobuf:\"bytes,4,opt,name=messageExpression\"`\n}\n\n// Variable is the definition of a variable that is used for composition. A variable is defined as a named expression.\n// +structType=atomic\ntype Variable struct {\n\t// Name is the name of the variable. The name must be a valid CEL identifier and unique among all variables.\n\t// The variable can be accessed in other expressions through `variables`\n\t// For example, if name is \"foo\", the variable will be available as `variables.foo`\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=Name\"`\n\n\t// Expression is the expression that will be evaluated as the value of the variable.\n\t// The CEL expression has access to the same identifiers as the CEL expressions in Validation.\n\tExpression string `json:\"expression\" protobuf:\"bytes,2,opt,name=Expression\"`\n}\n\n// AuditAnnotation describes how to produce an audit annotation for an API request.\ntype AuditAnnotation struct {\n\t// key specifies the audit annotation key. The audit annotation keys of\n\t// a ValidatingAdmissionPolicy must be unique. The key must be a qualified\n\t// name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length.\n\t//\n\t// The key is combined with the resource name of the\n\t// ValidatingAdmissionPolicy to construct an audit annotation key:\n\t// \"{ValidatingAdmissionPolicy name}/{key}\".\n\t//\n\t// If an admission webhook uses the same resource name as this ValidatingAdmissionPolicy\n\t// and the same audit annotation key, the annotation key will be identical.\n\t// In this case, the first annotation written with the key will be included\n\t// in the audit event and all subsequent annotations with the same key\n\t// will be discarded.\n\t//\n\t// Required.\n\tKey string `json:\"key\" protobuf:\"bytes,1,opt,name=key\"`\n\n\t// valueExpression represents the expression which is evaluated by CEL to\n\t// produce an audit annotation value. The expression must evaluate to either\n\t// a string or null value. If the expression evaluates to a string, the\n\t// audit annotation is included with the string value. If the expression\n\t// evaluates to null or empty string the audit annotation will be omitted.\n\t// The valueExpression may be no longer than 5kb in length.\n\t// If the result of the valueExpression is more than 10kb in length, it\n\t// will be truncated to 10kb.\n\t//\n\t// If multiple ValidatingAdmissionPolicyBinding resources match an\n\t// API request, then the valueExpression will be evaluated for\n\t// each binding. All unique values produced by the valueExpressions\n\t// will be joined together in a comma-separated list.\n\t//\n\t// Required.\n\tValueExpression string `json:\"valueExpression\" protobuf:\"bytes,2,opt,name=valueExpression\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.28\n\n// ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources.\n// ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters.\n//\n// For a given admission request, each binding will cause its policy to be\n// evaluated N times, where N is 1 for policies/bindings that don't use\n// params, otherwise N is the number of parameters selected by the binding.\n//\n// The CEL expressions of a policy must have a computed CEL cost below the maximum\n// CEL budget. Each evaluation of the policy is given an independent CEL cost budget.\n// Adding/removing policies, bindings, or params can not affect whether a\n// given (policy, binding, param) combination is within its own CEL budget.\ntype ValidatingAdmissionPolicyBinding struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// Specification of the desired behavior of the ValidatingAdmissionPolicyBinding.\n\tSpec ValidatingAdmissionPolicyBindingSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.28\n\n// ValidatingAdmissionPolicyBindingList is a list of ValidatingAdmissionPolicyBinding.\ntype ValidatingAdmissionPolicyBindingList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// List of PolicyBinding.\n\tItems []ValidatingAdmissionPolicyBinding `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// ValidatingAdmissionPolicyBindingSpec is the specification of the ValidatingAdmissionPolicyBinding.\ntype ValidatingAdmissionPolicyBindingSpec struct {\n\t// PolicyName references a ValidatingAdmissionPolicy name which the ValidatingAdmissionPolicyBinding binds to.\n\t// If the referenced resource does not exist, this binding is considered invalid and will be ignored\n\t// Required.\n\tPolicyName string `json:\"policyName,omitempty\" protobuf:\"bytes,1,rep,name=policyName\"`\n\n\t// paramRef specifies the parameter resource used to configure the admission control policy.\n\t// It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy.\n\t// If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied.\n\t// If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param.\n\t// +optional\n\tParamRef *ParamRef `json:\"paramRef,omitempty\" protobuf:\"bytes,2,rep,name=paramRef\"`\n\n\t// MatchResources declares what resources match this binding and will be validated by it.\n\t// Note that this is intersected with the policy's matchConstraints, so only requests that are matched by the policy can be selected by this.\n\t// If this is unset, all resources matched by the policy are validated by this binding\n\t// When resourceRules is unset, it does not constrain resource matching. If a resource is matched by the other fields of this object, it will be validated.\n\t// Note that this is differs from ValidatingAdmissionPolicy matchConstraints, where resourceRules are required.\n\t// +optional\n\tMatchResources *MatchResources `json:\"matchResources,omitempty\" protobuf:\"bytes,3,rep,name=matchResources\"`\n\n\t// validationActions declares how Validations of the referenced ValidatingAdmissionPolicy are enforced.\n\t// If a validation evaluates to false it is always enforced according to these actions.\n\t//\n\t// Failures defined by the ValidatingAdmissionPolicy's FailurePolicy are enforced according\n\t// to these actions only if the FailurePolicy is set to Fail, otherwise the failures are\n\t// ignored. This includes compilation errors, runtime errors and misconfigurations of the policy.\n\t//\n\t// validationActions is declared as a set of action values. Order does\n\t// not matter. validationActions may not contain duplicates of the same action.\n\t//\n\t// The supported actions values are:\n\t//\n\t// \"Deny\" specifies that a validation failure results in a denied request.\n\t//\n\t// \"Warn\" specifies that a validation failure is reported to the request client\n\t// in HTTP Warning headers, with a warning code of 299. Warnings can be sent\n\t// both for allowed or denied admission responses.\n\t//\n\t// \"Audit\" specifies that a validation failure is included in the published\n\t// audit event for the request. The audit event will contain a\n\t// `validation.policy.admission.k8s.io/validation_failure` audit annotation\n\t// with a value containing the details of the validation failures, formatted as\n\t// a JSON list of objects, each with the following fields:\n\t// - message: The validation failure message string\n\t// - policy: The resource name of the ValidatingAdmissionPolicy\n\t// - binding: The resource name of the ValidatingAdmissionPolicyBinding\n\t// - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy\n\t// - validationActions: The enforcement actions enacted for the validation failure\n\t// Example audit annotation:\n\t// `\"validation.policy.admission.k8s.io/validation_failure\": \"[{\\\"message\\\": \\\"Invalid value\\\", {\\\"policy\\\": \\\"policy.example.com\\\", {\\\"binding\\\": \\\"policybinding.example.com\\\", {\\\"expressionIndex\\\": \\\"1\\\", {\\\"validationActions\\\": [\\\"Audit\\\"]}]\"`\n\t//\n\t// Clients should expect to handle additional values by ignoring\n\t// any values not recognized.\n\t//\n\t// \"Deny\" and \"Warn\" may not be used together since this combination\n\t// needlessly duplicates the validation failure both in the\n\t// API response body and the HTTP warning headers.\n\t//\n\t// Required.\n\t// +listType=set\n\tValidationActions []ValidationAction `json:\"validationActions,omitempty\" protobuf:\"bytes,4,rep,name=validationActions\"`\n}\n\n// ParamRef describes how to locate the params to be used as input to\n// expressions of rules applied by a policy binding.\n// +structType=atomic\ntype ParamRef struct {\n\t// name is the name of the resource being referenced.\n\t//\n\t// One of `name` or `selector` must be set, but `name` and `selector` are\n\t// mutually exclusive properties. If one is set, the other must be unset.\n\t//\n\t// A single parameter used for all admission requests can be configured\n\t// by setting the `name` field, leaving `selector` blank, and setting namespace\n\t// if `paramKind` is namespace-scoped.\n\t//\n\tName string `json:\"name,omitempty\" protobuf:\"bytes,1,rep,name=name\"`\n\n\t// namespace is the namespace of the referenced resource. Allows limiting\n\t// the search for params to a specific namespace. Applies to both `name` and\n\t// `selector` fields.\n\t//\n\t// A per-namespace parameter may be used by specifying a namespace-scoped\n\t// `paramKind` in the policy and leaving this field empty.\n\t//\n\t// - If `paramKind` is cluster-scoped, this field MUST be unset. Setting this\n\t// field results in a configuration error.\n\t//\n\t// - If `paramKind` is namespace-scoped, the namespace of the object being\n\t// evaluated for admission will be used when this field is left unset. Take\n\t// care that if this is left empty the binding must not match any cluster-scoped\n\t// resources, which will result in an error.\n\t//\n\t// +optional\n\tNamespace string `json:\"namespace,omitempty\" protobuf:\"bytes,2,rep,name=namespace\"`\n\n\t// selector can be used to match multiple param objects based on their labels.\n\t// Supply selector: {} to match all resources of the ParamKind.\n\t//\n\t// If multiple params are found, they are all evaluated with the policy expressions\n\t// and the results are ANDed together.\n\t//\n\t// One of `name` or `selector` must be set, but `name` and `selector` are\n\t// mutually exclusive properties. If one is set, the other must be unset.\n\t//\n\t// +optional\n\tSelector *metav1.LabelSelector `json:\"selector,omitempty\" protobuf:\"bytes,3,rep,name=selector\"`\n\n\t// `parameterNotFoundAction` controls the behavior of the binding when the resource\n\t// exists, and name or selector is valid, but there are no parameters\n\t// matched by the binding. If the value is set to `Allow`, then no\n\t// matched parameters will be treated as successful validation by the binding.\n\t// If set to `Deny`, then no matched parameters will be subject to the\n\t// `failurePolicy` of the policy.\n\t//\n\t// Allowed values are `Allow` or `Deny`\n\t//\n\t// Required\n\tParameterNotFoundAction *ParameterNotFoundActionType `json:\"parameterNotFoundAction,omitempty\" protobuf:\"bytes,4,rep,name=parameterNotFoundAction\"`\n}\n\n// MatchResources decides whether to run the admission control policy on an object based\n// on whether it meets the match criteria.\n// The exclude rules take precedence over include rules (if a resource matches both, it is excluded)\n// +structType=atomic\ntype MatchResources struct {\n\t// NamespaceSelector decides whether to run the admission control policy on an object based\n\t// on whether the namespace for that object matches the selector. If the\n\t// object itself is a namespace, the matching is performed on\n\t// object.metadata.labels. If the object is another cluster scoped resource,\n\t// it never skips the policy.\n\t//\n\t// For example, to run the webhook on any objects whose namespace is not\n\t// associated with \"runlevel\" of \"0\" or \"1\";  you will set the selector as\n\t// follows:\n\t// \"namespaceSelector\": {\n\t//   \"matchExpressions\": [\n\t//     {\n\t//       \"key\": \"runlevel\",\n\t//       \"operator\": \"NotIn\",\n\t//       \"values\": [\n\t//         \"0\",\n\t//         \"1\"\n\t//       ]\n\t//     }\n\t//   ]\n\t// }\n\t//\n\t// If instead you want to only run the policy on any objects whose\n\t// namespace is associated with the \"environment\" of \"prod\" or \"staging\";\n\t// you will set the selector as follows:\n\t// \"namespaceSelector\": {\n\t//   \"matchExpressions\": [\n\t//     {\n\t//       \"key\": \"environment\",\n\t//       \"operator\": \"In\",\n\t//       \"values\": [\n\t//         \"prod\",\n\t//         \"staging\"\n\t//       ]\n\t//     }\n\t//   ]\n\t// }\n\t//\n\t// See\n\t// https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\n\t// for more examples of label selectors.\n\t//\n\t// Default to the empty LabelSelector, which matches everything.\n\t// +optional\n\tNamespaceSelector *metav1.LabelSelector `json:\"namespaceSelector,omitempty\" protobuf:\"bytes,1,opt,name=namespaceSelector\"`\n\t// ObjectSelector decides whether to run the validation based on if the\n\t// object has matching labels. objectSelector is evaluated against both\n\t// the oldObject and newObject that would be sent to the cel validation, and\n\t// is considered to match if either object matches the selector. A null\n\t// object (oldObject in the case of create, or newObject in the case of\n\t// delete) or an object that cannot have labels (like a\n\t// DeploymentRollback or a PodProxyOptions object) is not considered to\n\t// match.\n\t// Use the object selector only if the webhook is opt-in, because end\n\t// users may skip the admission webhook by setting the labels.\n\t// Default to the empty LabelSelector, which matches everything.\n\t// +optional\n\tObjectSelector *metav1.LabelSelector `json:\"objectSelector,omitempty\" protobuf:\"bytes,2,opt,name=objectSelector\"`\n\t// ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches.\n\t// The policy cares about an operation if it matches _any_ Rule.\n\t// +listType=atomic\n\t// +optional\n\tResourceRules []NamedRuleWithOperations `json:\"resourceRules,omitempty\" protobuf:\"bytes,3,rep,name=resourceRules\"`\n\t// ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about.\n\t// The exclude rules take precedence over include rules (if a resource matches both, it is excluded)\n\t// +listType=atomic\n\t// +optional\n\tExcludeResourceRules []NamedRuleWithOperations `json:\"excludeResourceRules,omitempty\" protobuf:\"bytes,4,rep,name=excludeResourceRules\"`\n\t// matchPolicy defines how the \"MatchResources\" list is used to match incoming requests.\n\t// Allowed values are \"Exact\" or \"Equivalent\".\n\t//\n\t// - Exact: match a request only if it exactly matches a specified rule.\n\t// For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n\t// but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n\t// a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy.\n\t//\n\t// - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version.\n\t// For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n\t// and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n\t// a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy.\n\t//\n\t// Defaults to \"Equivalent\"\n\t// +optional\n\tMatchPolicy *MatchPolicyType `json:\"matchPolicy,omitempty\" protobuf:\"bytes,7,opt,name=matchPolicy,casttype=MatchPolicyType\"`\n}\n\n// ValidationAction specifies a policy enforcement action.\n// +enum\ntype ValidationAction string\n\nconst (\n\t// Deny specifies that a validation failure results in a denied request.\n\tDeny ValidationAction = \"Deny\"\n\t// Warn specifies that a validation failure is reported to the request client\n\t// in HTTP Warning headers, with a warning code of 299. Warnings can be sent\n\t// both for allowed or denied admission responses.\n\tWarn ValidationAction = \"Warn\"\n\t// Audit specifies that a validation failure is included in the published\n\t// audit event for the request. The audit event will contain a\n\t// `validation.policy.admission.k8s.io/validation_failure` audit annotation\n\t// with a value containing the details of the validation failure.\n\tAudit ValidationAction = \"Audit\"\n)\n\n// NamedRuleWithOperations is a tuple of Operations and Resources with ResourceNames.\n// +structType=atomic\ntype NamedRuleWithOperations struct {\n\t// ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.\n\t// +listType=atomic\n\t// +optional\n\tResourceNames []string `json:\"resourceNames,omitempty\" protobuf:\"bytes,1,rep,name=resourceNames\"`\n\t// RuleWithOperations is a tuple of Operations and Resources.\n\tRuleWithOperations `json:\",inline\" protobuf:\"bytes,2,opt,name=ruleWithOperations\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.9\n// +k8s:prerelease-lifecycle-gen:deprecated=1.16\n// +k8s:prerelease-lifecycle-gen:removed=1.22\n// +k8s:prerelease-lifecycle-gen:replacement=admissionregistration.k8s.io,v1,ValidatingWebhookConfiguration\n\n// ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it.\n// Deprecated in v1.16, planned for removal in v1.19. Use admissionregistration.k8s.io/v1 ValidatingWebhookConfiguration instead.\ntype ValidatingWebhookConfiguration struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// Webhooks is a list of webhooks and the affected resources and operations.\n\t// +optional\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=name\n\tWebhooks []ValidatingWebhook `json:\"webhooks,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,2,rep,name=Webhooks\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.9\n// +k8s:prerelease-lifecycle-gen:deprecated=1.16\n// +k8s:prerelease-lifecycle-gen:removed=1.22\n// +k8s:prerelease-lifecycle-gen:replacement=admissionregistration.k8s.io,v1,ValidatingWebhookConfigurationList\n\n// ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration.\ntype ValidatingWebhookConfigurationList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// List of ValidatingWebhookConfiguration.\n\tItems []ValidatingWebhookConfiguration `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.9\n// +k8s:prerelease-lifecycle-gen:deprecated=1.16\n// +k8s:prerelease-lifecycle-gen:removed=1.22\n// +k8s:prerelease-lifecycle-gen:replacement=admissionregistration.k8s.io,v1,MutatingWebhookConfiguration\n\n// MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object.\n// Deprecated in v1.16, planned for removal in v1.19. Use admissionregistration.k8s.io/v1 MutatingWebhookConfiguration instead.\ntype MutatingWebhookConfiguration struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// Webhooks is a list of webhooks and the affected resources and operations.\n\t// +optional\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=name\n\tWebhooks []MutatingWebhook `json:\"webhooks,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,2,rep,name=Webhooks\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.9\n// +k8s:prerelease-lifecycle-gen:deprecated=1.16\n// +k8s:prerelease-lifecycle-gen:removed=1.22\n// +k8s:prerelease-lifecycle-gen:replacement=admissionregistration.k8s.io,v1,MutatingWebhookConfigurationList\n\n// MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration.\ntype MutatingWebhookConfigurationList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// List of MutatingWebhookConfiguration.\n\tItems []MutatingWebhookConfiguration `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// ValidatingWebhook describes an admission webhook and the resources and operations it applies to.\ntype ValidatingWebhook struct {\n\t// The name of the admission webhook.\n\t// Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where\n\t// \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name\n\t// of the organization.\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\n\t// ClientConfig defines how to communicate with the hook.\n\t// Required\n\tClientConfig WebhookClientConfig `json:\"clientConfig\" protobuf:\"bytes,2,opt,name=clientConfig\"`\n\n\t// Rules describes what operations on what resources/subresources the webhook cares about.\n\t// The webhook cares about an operation if it matches _any_ Rule.\n\t// However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks\n\t// from putting the cluster in a state which cannot be recovered from without completely\n\t// disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called\n\t// on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.\n\t// +listType=atomic\n\tRules []RuleWithOperations `json:\"rules,omitempty\" protobuf:\"bytes,3,rep,name=rules\"`\n\n\t// FailurePolicy defines how unrecognized errors from the admission endpoint are handled -\n\t// allowed values are Ignore or Fail. Defaults to Ignore.\n\t// +optional\n\tFailurePolicy *FailurePolicyType `json:\"failurePolicy,omitempty\" protobuf:\"bytes,4,opt,name=failurePolicy,casttype=FailurePolicyType\"`\n\n\t// matchPolicy defines how the \"rules\" list is used to match incoming requests.\n\t// Allowed values are \"Exact\" or \"Equivalent\".\n\t//\n\t// - Exact: match a request only if it exactly matches a specified rule.\n\t// For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n\t// but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n\t// a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\t//\n\t// - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version.\n\t// For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n\t// and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n\t// a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\t//\n\t// Defaults to \"Exact\"\n\t// +optional\n\tMatchPolicy *MatchPolicyType `json:\"matchPolicy,omitempty\" protobuf:\"bytes,9,opt,name=matchPolicy,casttype=MatchPolicyType\"`\n\n\t// NamespaceSelector decides whether to run the webhook on an object based\n\t// on whether the namespace for that object matches the selector. If the\n\t// object itself is a namespace, the matching is performed on\n\t// object.metadata.labels. If the object is another cluster scoped resource,\n\t// it never skips the webhook.\n\t//\n\t// For example, to run the webhook on any objects whose namespace is not\n\t// associated with \"runlevel\" of \"0\" or \"1\";  you will set the selector as\n\t// follows:\n\t// \"namespaceSelector\": {\n\t//   \"matchExpressions\": [\n\t//     {\n\t//       \"key\": \"runlevel\",\n\t//       \"operator\": \"NotIn\",\n\t//       \"values\": [\n\t//         \"0\",\n\t//         \"1\"\n\t//       ]\n\t//     }\n\t//   ]\n\t// }\n\t//\n\t// If instead you want to only run the webhook on any objects whose\n\t// namespace is associated with the \"environment\" of \"prod\" or \"staging\";\n\t// you will set the selector as follows:\n\t// \"namespaceSelector\": {\n\t//   \"matchExpressions\": [\n\t//     {\n\t//       \"key\": \"environment\",\n\t//       \"operator\": \"In\",\n\t//       \"values\": [\n\t//         \"prod\",\n\t//         \"staging\"\n\t//       ]\n\t//     }\n\t//   ]\n\t// }\n\t//\n\t// See\n\t// https://kubernetes.io/docs/concepts/overview/working-with-objects/labels\n\t// for more examples of label selectors.\n\t//\n\t// Default to the empty LabelSelector, which matches everything.\n\t// +optional\n\tNamespaceSelector *metav1.LabelSelector `json:\"namespaceSelector,omitempty\" protobuf:\"bytes,5,opt,name=namespaceSelector\"`\n\n\t// ObjectSelector decides whether to run the webhook based on if the\n\t// object has matching labels. objectSelector is evaluated against both\n\t// the oldObject and newObject that would be sent to the webhook, and\n\t// is considered to match if either object matches the selector. A null\n\t// object (oldObject in the case of create, or newObject in the case of\n\t// delete) or an object that cannot have labels (like a\n\t// DeploymentRollback or a PodProxyOptions object) is not considered to\n\t// match.\n\t// Use the object selector only if the webhook is opt-in, because end\n\t// users may skip the admission webhook by setting the labels.\n\t// Default to the empty LabelSelector, which matches everything.\n\t// +optional\n\tObjectSelector *metav1.LabelSelector `json:\"objectSelector,omitempty\" protobuf:\"bytes,10,opt,name=objectSelector\"`\n\n\t// SideEffects states whether this webhook has side effects.\n\t// Acceptable values are: Unknown, None, Some, NoneOnDryRun\n\t// Webhooks with side effects MUST implement a reconciliation system, since a request may be\n\t// rejected by a future step in the admission chain and the side effects therefore need to be undone.\n\t// Requests with the dryRun attribute will be auto-rejected if they match a webhook with\n\t// sideEffects == Unknown or Some. Defaults to Unknown.\n\t// +optional\n\t// +listType=atomic\n\tSideEffects *SideEffectClass `json:\"sideEffects,omitempty\" protobuf:\"bytes,6,opt,name=sideEffects,casttype=SideEffectClass\"`\n\n\t// TimeoutSeconds specifies the timeout for this webhook. After the timeout passes,\n\t// the webhook call will be ignored or the API call will fail based on the\n\t// failure policy.\n\t// The timeout value must be between 1 and 30 seconds.\n\t// Default to 30 seconds.\n\t// +optional\n\tTimeoutSeconds *int32 `json:\"timeoutSeconds,omitempty\" protobuf:\"varint,7,opt,name=timeoutSeconds\"`\n\n\t// AdmissionReviewVersions is an ordered list of preferred `AdmissionReview`\n\t// versions the Webhook expects. API server will try to use first version in\n\t// the list which it supports. If none of the versions specified in this list\n\t// supported by API server, validation will fail for this object.\n\t// If a persisted webhook configuration specifies allowed versions and does not\n\t// include any versions known to the API Server, calls to the webhook will fail\n\t// and be subject to the failure policy.\n\t// Default to `['v1beta1']`.\n\t// +optional\n\t// +listType=atomic\n\tAdmissionReviewVersions []string `json:\"admissionReviewVersions,omitempty\" protobuf:\"bytes,8,rep,name=admissionReviewVersions\"`\n\n\t// MatchConditions is a list of conditions that must be met for a request to be sent to this\n\t// webhook. Match conditions filter requests that have already been matched by the rules,\n\t// namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests.\n\t// There are a maximum of 64 match conditions allowed.\n\t//\n\t// The exact matching logic is (in order):\n\t//   1. If ANY matchCondition evaluates to FALSE, the webhook is skipped.\n\t//   2. If ALL matchConditions evaluate to TRUE, the webhook is called.\n\t//   3. If any matchCondition evaluates to an error (but none are FALSE):\n\t//      - If failurePolicy=Fail, reject the request\n\t//      - If failurePolicy=Ignore, the error is ignored and the webhook is skipped\n\t//\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=name\n\t// +optional\n\tMatchConditions []MatchCondition `json:\"matchConditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,11,rep,name=matchConditions\"`\n}\n\n// MutatingWebhook describes an admission webhook and the resources and operations it applies to.\ntype MutatingWebhook struct {\n\t// The name of the admission webhook.\n\t// Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where\n\t// \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name\n\t// of the organization.\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\n\t// ClientConfig defines how to communicate with the hook.\n\t// Required\n\tClientConfig WebhookClientConfig `json:\"clientConfig\" protobuf:\"bytes,2,opt,name=clientConfig\"`\n\n\t// Rules describes what operations on what resources/subresources the webhook cares about.\n\t// The webhook cares about an operation if it matches _any_ Rule.\n\t// However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks\n\t// from putting the cluster in a state which cannot be recovered from without completely\n\t// disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called\n\t// on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.\n\t// +listType=atomic\n\tRules []RuleWithOperations `json:\"rules,omitempty\" protobuf:\"bytes,3,rep,name=rules\"`\n\n\t// FailurePolicy defines how unrecognized errors from the admission endpoint are handled -\n\t// allowed values are Ignore or Fail. Defaults to Ignore.\n\t// +optional\n\tFailurePolicy *FailurePolicyType `json:\"failurePolicy,omitempty\" protobuf:\"bytes,4,opt,name=failurePolicy,casttype=FailurePolicyType\"`\n\n\t// matchPolicy defines how the \"rules\" list is used to match incoming requests.\n\t// Allowed values are \"Exact\" or \"Equivalent\".\n\t//\n\t// - Exact: match a request only if it exactly matches a specified rule.\n\t// For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n\t// but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n\t// a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\n\t//\n\t// - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version.\n\t// For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1,\n\t// and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`,\n\t// a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\n\t//\n\t// Defaults to \"Exact\"\n\t// +optional\n\tMatchPolicy *MatchPolicyType `json:\"matchPolicy,omitempty\" protobuf:\"bytes,9,opt,name=matchPolicy,casttype=MatchPolicyType\"`\n\n\t// NamespaceSelector decides whether to run the webhook on an object based\n\t// on whether the namespace for that object matches the selector. If the\n\t// object itself is a namespace, the matching is performed on\n\t// object.metadata.labels. If the object is another cluster scoped resource,\n\t// it never skips the webhook.\n\t//\n\t// For example, to run the webhook on any objects whose namespace is not\n\t// associated with \"runlevel\" of \"0\" or \"1\";  you will set the selector as\n\t// follows:\n\t// \"namespaceSelector\": {\n\t//   \"matchExpressions\": [\n\t//     {\n\t//       \"key\": \"runlevel\",\n\t//       \"operator\": \"NotIn\",\n\t//       \"values\": [\n\t//         \"0\",\n\t//         \"1\"\n\t//       ]\n\t//     }\n\t//   ]\n\t// }\n\t//\n\t// If instead you want to only run the webhook on any objects whose\n\t// namespace is associated with the \"environment\" of \"prod\" or \"staging\";\n\t// you will set the selector as follows:\n\t// \"namespaceSelector\": {\n\t//   \"matchExpressions\": [\n\t//     {\n\t//       \"key\": \"environment\",\n\t//       \"operator\": \"In\",\n\t//       \"values\": [\n\t//         \"prod\",\n\t//         \"staging\"\n\t//       ]\n\t//     }\n\t//   ]\n\t// }\n\t//\n\t// See\n\t// https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\n\t// for more examples of label selectors.\n\t//\n\t// Default to the empty LabelSelector, which matches everything.\n\t// +optional\n\tNamespaceSelector *metav1.LabelSelector `json:\"namespaceSelector,omitempty\" protobuf:\"bytes,5,opt,name=namespaceSelector\"`\n\n\t// ObjectSelector decides whether to run the webhook based on if the\n\t// object has matching labels. objectSelector is evaluated against both\n\t// the oldObject and newObject that would be sent to the webhook, and\n\t// is considered to match if either object matches the selector. A null\n\t// object (oldObject in the case of create, or newObject in the case of\n\t// delete) or an object that cannot have labels (like a\n\t// DeploymentRollback or a PodProxyOptions object) is not considered to\n\t// match.\n\t// Use the object selector only if the webhook is opt-in, because end\n\t// users may skip the admission webhook by setting the labels.\n\t// Default to the empty LabelSelector, which matches everything.\n\t// +optional\n\tObjectSelector *metav1.LabelSelector `json:\"objectSelector,omitempty\" protobuf:\"bytes,11,opt,name=objectSelector\"`\n\n\t// SideEffects states whether this webhook has side effects.\n\t// Acceptable values are: Unknown, None, Some, NoneOnDryRun\n\t// Webhooks with side effects MUST implement a reconciliation system, since a request may be\n\t// rejected by a future step in the admission chain and the side effects therefore need to be undone.\n\t// Requests with the dryRun attribute will be auto-rejected if they match a webhook with\n\t// sideEffects == Unknown or Some. Defaults to Unknown.\n\t// +optional\n\tSideEffects *SideEffectClass `json:\"sideEffects,omitempty\" protobuf:\"bytes,6,opt,name=sideEffects,casttype=SideEffectClass\"`\n\n\t// TimeoutSeconds specifies the timeout for this webhook. After the timeout passes,\n\t// the webhook call will be ignored or the API call will fail based on the\n\t// failure policy.\n\t// The timeout value must be between 1 and 30 seconds.\n\t// Default to 30 seconds.\n\t// +optional\n\tTimeoutSeconds *int32 `json:\"timeoutSeconds,omitempty\" protobuf:\"varint,7,opt,name=timeoutSeconds\"`\n\n\t// AdmissionReviewVersions is an ordered list of preferred `AdmissionReview`\n\t// versions the Webhook expects. API server will try to use first version in\n\t// the list which it supports. If none of the versions specified in this list\n\t// supported by API server, validation will fail for this object.\n\t// If a persisted webhook configuration specifies allowed versions and does not\n\t// include any versions known to the API Server, calls to the webhook will fail\n\t// and be subject to the failure policy.\n\t// Default to `['v1beta1']`.\n\t// +optional\n\t// +listType=atomic\n\tAdmissionReviewVersions []string `json:\"admissionReviewVersions,omitempty\" protobuf:\"bytes,8,rep,name=admissionReviewVersions\"`\n\n\t// reinvocationPolicy indicates whether this webhook should be called multiple times as part of a single admission evaluation.\n\t// Allowed values are \"Never\" and \"IfNeeded\".\n\t//\n\t// Never: the webhook will not be called more than once in a single admission evaluation.\n\t//\n\t// IfNeeded: the webhook will be called at least one additional time as part of the admission evaluation\n\t// if the object being admitted is modified by other admission plugins after the initial webhook call.\n\t// Webhooks that specify this option *must* be idempotent, able to process objects they previously admitted.\n\t// Note:\n\t// * the number of additional invocations is not guaranteed to be exactly one.\n\t// * if additional invocations result in further modifications to the object, webhooks are not guaranteed to be invoked again.\n\t// * webhooks that use this option may be reordered to minimize the number of additional invocations.\n\t// * to validate an object after all mutations are guaranteed complete, use a validating admission webhook instead.\n\t//\n\t// Defaults to \"Never\".\n\t// +optional\n\tReinvocationPolicy *ReinvocationPolicyType `json:\"reinvocationPolicy,omitempty\" protobuf:\"bytes,10,opt,name=reinvocationPolicy,casttype=ReinvocationPolicyType\"`\n\n\t// MatchConditions is a list of conditions that must be met for a request to be sent to this\n\t// webhook. Match conditions filter requests that have already been matched by the rules,\n\t// namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests.\n\t// There are a maximum of 64 match conditions allowed.\n\t//\n\t// The exact matching logic is (in order):\n\t//   1. If ANY matchCondition evaluates to FALSE, the webhook is skipped.\n\t//   2. If ALL matchConditions evaluate to TRUE, the webhook is called.\n\t//   3. If any matchCondition evaluates to an error (but none are FALSE):\n\t//      - If failurePolicy=Fail, reject the request\n\t//      - If failurePolicy=Ignore, the error is ignored and the webhook is skipped\n\t//\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=name\n\t// +optional\n\tMatchConditions []MatchCondition `json:\"matchConditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,12,rep,name=matchConditions\"`\n}\n\n// ReinvocationPolicyType specifies what type of policy the admission hook uses.\ntype ReinvocationPolicyType string\n\nconst (\n\t// NeverReinvocationPolicy indicates that the webhook must not be called more than once in a\n\t// single admission evaluation.\n\tNeverReinvocationPolicy ReinvocationPolicyType = \"Never\"\n\t// IfNeededReinvocationPolicy indicates that the webhook may be called at least one\n\t// additional time as part of the admission evaluation if the object being admitted is\n\t// modified by other admission plugins after the initial webhook call.\n\tIfNeededReinvocationPolicy ReinvocationPolicyType = \"IfNeeded\"\n)\n\n// RuleWithOperations is a tuple of Operations and Resources. It is recommended to make\n// sure that all the tuple expansions are valid.\ntype RuleWithOperations = v1.RuleWithOperations\n\n// OperationType specifies an operation for a request.\n// +enum\ntype OperationType = v1.OperationType\n\n// The constants should be kept in sync with those defined in k8s.io/kubernetes/pkg/admission/interface.go.\nconst (\n\tOperationAll OperationType = v1.OperationAll\n\tCreate       OperationType = v1.Create\n\tUpdate       OperationType = v1.Update\n\tDelete       OperationType = v1.Delete\n\tConnect      OperationType = v1.Connect\n)\n\n// WebhookClientConfig contains the information to make a TLS\n// connection with the webhook\ntype WebhookClientConfig struct {\n\t// `url` gives the location of the webhook, in standard URL form\n\t// (`scheme://host:port/path`). Exactly one of `url` or `service`\n\t// must be specified.\n\t//\n\t// The `host` should not refer to a service running in the cluster; use\n\t// the `service` field instead. The host might be resolved via external\n\t// DNS in some apiservers (e.g., `kube-apiserver` cannot resolve\n\t// in-cluster DNS as that would be a layering violation). `host` may\n\t// also be an IP address.\n\t//\n\t// Please note that using `localhost` or `127.0.0.1` as a `host` is\n\t// risky unless you take great care to run this webhook on all hosts\n\t// which run an apiserver which might need to make calls to this\n\t// webhook. Such installs are likely to be non-portable, i.e., not easy\n\t// to turn up in a new cluster.\n\t//\n\t// The scheme must be \"https\"; the URL must begin with \"https://\".\n\t//\n\t// A path is optional, and if present may be any string permissible in\n\t// a URL. You may use the path to pass an arbitrary string to the\n\t// webhook, for example, a cluster identifier.\n\t//\n\t// Attempting to use a user or basic auth e.g. \"user:password@\" is not\n\t// allowed. Fragments (\"#...\") and query parameters (\"?...\") are not\n\t// allowed, either.\n\t//\n\t// +optional\n\tURL *string `json:\"url,omitempty\" protobuf:\"bytes,3,opt,name=url\"`\n\n\t// `service` is a reference to the service for this webhook. Either\n\t// `service` or `url` must be specified.\n\t//\n\t// If the webhook is running within the cluster, then you should use `service`.\n\t//\n\t// +optional\n\tService *ServiceReference `json:\"service,omitempty\" protobuf:\"bytes,1,opt,name=service\"`\n\n\t// `caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate.\n\t// If unspecified, system trust roots on the apiserver are used.\n\t// +optional\n\tCABundle []byte `json:\"caBundle,omitempty\" protobuf:\"bytes,2,opt,name=caBundle\"`\n}\n\n// ServiceReference holds a reference to Service.legacy.k8s.io\ntype ServiceReference struct {\n\t// `namespace` is the namespace of the service.\n\t// Required\n\tNamespace string `json:\"namespace\" protobuf:\"bytes,1,opt,name=namespace\"`\n\t// `name` is the name of the service.\n\t// Required\n\tName string `json:\"name\" protobuf:\"bytes,2,opt,name=name\"`\n\n\t// `path` is an optional URL path which will be sent in any request to\n\t// this service.\n\t// +optional\n\tPath *string `json:\"path,omitempty\" protobuf:\"bytes,3,opt,name=path\"`\n\n\t// If specified, the port on the service that hosting webhook.\n\t// Default to 443 for backward compatibility.\n\t// `port` should be a valid port number (1-65535, inclusive).\n\t// +optional\n\tPort *int32 `json:\"port,omitempty\" protobuf:\"varint,4,opt,name=port\"`\n}\n\n// MatchCondition represents a condition which must be fulfilled for a request to be sent to a webhook.\ntype MatchCondition struct {\n\t// Name is an identifier for this match condition, used for strategic merging of MatchConditions,\n\t// as well as providing an identifier for logging purposes. A good name should be descriptive of\n\t// the associated expression.\n\t// Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and\n\t// must start and end with an alphanumeric character (e.g. 'MyName',  or 'my.name',  or\n\t// '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an\n\t// optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName')\n\t//\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\n\t// Expression represents the expression which will be evaluated by CEL. Must evaluate to bool.\n\t// CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables:\n\t//\n\t// 'object' - The object from the incoming request. The value is null for DELETE requests.\n\t// 'oldObject' - The existing object. The value is null for CREATE requests.\n\t// 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest).\n\t// 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n\t//   See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n\t// 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n\t//   request resource.\n\t// Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/\n\t//\n\t// Required.\n\tExpression string `json:\"expression\" protobuf:\"bytes,2,opt,name=expression\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1beta1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_AuditAnnotation = map[string]string{\n\t\"\":                \"AuditAnnotation describes how to produce an audit annotation for an API request.\",\n\t\"key\":             \"key specifies the audit annotation key. The audit annotation keys of a ValidatingAdmissionPolicy must be unique. The key must be a qualified name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length.\\n\\nThe key is combined with the resource name of the ValidatingAdmissionPolicy to construct an audit annotation key: \\\"{ValidatingAdmissionPolicy name}/{key}\\\".\\n\\nIf an admission webhook uses the same resource name as this ValidatingAdmissionPolicy and the same audit annotation key, the annotation key will be identical. In this case, the first annotation written with the key will be included in the audit event and all subsequent annotations with the same key will be discarded.\\n\\nRequired.\",\n\t\"valueExpression\": \"valueExpression represents the expression which is evaluated by CEL to produce an audit annotation value. The expression must evaluate to either a string or null value. If the expression evaluates to a string, the audit annotation is included with the string value. If the expression evaluates to null or empty string the audit annotation will be omitted. The valueExpression may be no longer than 5kb in length. If the result of the valueExpression is more than 10kb in length, it will be truncated to 10kb.\\n\\nIf multiple ValidatingAdmissionPolicyBinding resources match an API request, then the valueExpression will be evaluated for each binding. All unique values produced by the valueExpressions will be joined together in a comma-separated list.\\n\\nRequired.\",\n}\n\nfunc (AuditAnnotation) SwaggerDoc() map[string]string {\n\treturn map_AuditAnnotation\n}\n\nvar map_ExpressionWarning = map[string]string{\n\t\"\":         \"ExpressionWarning is a warning information that targets a specific expression.\",\n\t\"fieldRef\": \"The path to the field that refers the expression. For example, the reference to the expression of the first item of validations is \\\"spec.validations[0].expression\\\"\",\n\t\"warning\":  \"The content of type checking information in a human-readable form. Each line of the warning contains the type that the expression is checked against, followed by the type check error from the compiler.\",\n}\n\nfunc (ExpressionWarning) SwaggerDoc() map[string]string {\n\treturn map_ExpressionWarning\n}\n\nvar map_MatchCondition = map[string]string{\n\t\"\":           \"MatchCondition represents a condition which must be fulfilled for a request to be sent to a webhook.\",\n\t\"name\":       \"Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName',  or 'my.name',  or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName')\\n\\nRequired.\",\n\t\"expression\": \"Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables:\\n\\n'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\\n  See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\\n'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\\n  request resource.\\nDocumentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/\\n\\nRequired.\",\n}\n\nfunc (MatchCondition) SwaggerDoc() map[string]string {\n\treturn map_MatchCondition\n}\n\nvar map_MatchResources = map[string]string{\n\t\"\":                     \"MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded)\",\n\t\"namespaceSelector\":    \"NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy.\\n\\nFor example, to run the webhook on any objects whose namespace is not associated with \\\"runlevel\\\" of \\\"0\\\" or \\\"1\\\";  you will set the selector as follows: \\\"namespaceSelector\\\": {\\n  \\\"matchExpressions\\\": [\\n    {\\n      \\\"key\\\": \\\"runlevel\\\",\\n      \\\"operator\\\": \\\"NotIn\\\",\\n      \\\"values\\\": [\\n        \\\"0\\\",\\n        \\\"1\\\"\\n      ]\\n    }\\n  ]\\n}\\n\\nIf instead you want to only run the policy on any objects whose namespace is associated with the \\\"environment\\\" of \\\"prod\\\" or \\\"staging\\\"; you will set the selector as follows: \\\"namespaceSelector\\\": {\\n  \\\"matchExpressions\\\": [\\n    {\\n      \\\"key\\\": \\\"environment\\\",\\n      \\\"operator\\\": \\\"In\\\",\\n      \\\"values\\\": [\\n        \\\"prod\\\",\\n        \\\"staging\\\"\\n      ]\\n    }\\n  ]\\n}\\n\\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\\n\\nDefault to the empty LabelSelector, which matches everything.\",\n\t\"objectSelector\":       \"ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything.\",\n\t\"resourceRules\":        \"ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule.\",\n\t\"excludeResourceRules\": \"ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded)\",\n\t\"matchPolicy\":          \"matchPolicy defines how the \\\"MatchResources\\\" list is used to match incoming requests. Allowed values are \\\"Exact\\\" or \\\"Equivalent\\\".\\n\\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \\\"rules\\\" only included `apiGroups:[\\\"apps\\\"], apiVersions:[\\\"v1\\\"], resources: [\\\"deployments\\\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy.\\n\\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \\\"rules\\\" only included `apiGroups:[\\\"apps\\\"], apiVersions:[\\\"v1\\\"], resources: [\\\"deployments\\\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy.\\n\\nDefaults to \\\"Equivalent\\\"\",\n}\n\nfunc (MatchResources) SwaggerDoc() map[string]string {\n\treturn map_MatchResources\n}\n\nvar map_MutatingWebhook = map[string]string{\n\t\"\":                        \"MutatingWebhook describes an admission webhook and the resources and operations it applies to.\",\n\t\"name\":                    \"The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \\\"imagepolicy\\\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.\",\n\t\"clientConfig\":            \"ClientConfig defines how to communicate with the hook. Required\",\n\t\"rules\":                   \"Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.\",\n\t\"failurePolicy\":           \"FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Ignore.\",\n\t\"matchPolicy\":             \"matchPolicy defines how the \\\"rules\\\" list is used to match incoming requests. Allowed values are \\\"Exact\\\" or \\\"Equivalent\\\".\\n\\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \\\"rules\\\" only included `apiGroups:[\\\"apps\\\"], apiVersions:[\\\"v1\\\"], resources: [\\\"deployments\\\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\\n\\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \\\"rules\\\" only included `apiGroups:[\\\"apps\\\"], apiVersions:[\\\"v1\\\"], resources: [\\\"deployments\\\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\\n\\nDefaults to \\\"Exact\\\"\",\n\t\"namespaceSelector\":       \"NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\\n\\nFor example, to run the webhook on any objects whose namespace is not associated with \\\"runlevel\\\" of \\\"0\\\" or \\\"1\\\";  you will set the selector as follows: \\\"namespaceSelector\\\": {\\n  \\\"matchExpressions\\\": [\\n    {\\n      \\\"key\\\": \\\"runlevel\\\",\\n      \\\"operator\\\": \\\"NotIn\\\",\\n      \\\"values\\\": [\\n        \\\"0\\\",\\n        \\\"1\\\"\\n      ]\\n    }\\n  ]\\n}\\n\\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \\\"environment\\\" of \\\"prod\\\" or \\\"staging\\\"; you will set the selector as follows: \\\"namespaceSelector\\\": {\\n  \\\"matchExpressions\\\": [\\n    {\\n      \\\"key\\\": \\\"environment\\\",\\n      \\\"operator\\\": \\\"In\\\",\\n      \\\"values\\\": [\\n        \\\"prod\\\",\\n        \\\"staging\\\"\\n      ]\\n    }\\n  ]\\n}\\n\\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\\n\\nDefault to the empty LabelSelector, which matches everything.\",\n\t\"objectSelector\":          \"ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything.\",\n\t\"sideEffects\":             \"SideEffects states whether this webhook has side effects. Acceptable values are: Unknown, None, Some, NoneOnDryRun Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission chain and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some. Defaults to Unknown.\",\n\t\"timeoutSeconds\":          \"TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 30 seconds.\",\n\t\"admissionReviewVersions\": \"AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy. Default to `['v1beta1']`.\",\n\t\"reinvocationPolicy\":      \"reinvocationPolicy indicates whether this webhook should be called multiple times as part of a single admission evaluation. Allowed values are \\\"Never\\\" and \\\"IfNeeded\\\".\\n\\nNever: the webhook will not be called more than once in a single admission evaluation.\\n\\nIfNeeded: the webhook will be called at least one additional time as part of the admission evaluation if the object being admitted is modified by other admission plugins after the initial webhook call. Webhooks that specify this option *must* be idempotent, able to process objects they previously admitted. Note: * the number of additional invocations is not guaranteed to be exactly one. * if additional invocations result in further modifications to the object, webhooks are not guaranteed to be invoked again. * webhooks that use this option may be reordered to minimize the number of additional invocations. * to validate an object after all mutations are guaranteed complete, use a validating admission webhook instead.\\n\\nDefaults to \\\"Never\\\".\",\n\t\"matchConditions\":         \"MatchConditions is a list of conditions that must be met for a request to be sent to this webhook. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed.\\n\\nThe exact matching logic is (in order):\\n  1. If ANY matchCondition evaluates to FALSE, the webhook is skipped.\\n  2. If ALL matchConditions evaluate to TRUE, the webhook is called.\\n  3. If any matchCondition evaluates to an error (but none are FALSE):\\n     - If failurePolicy=Fail, reject the request\\n     - If failurePolicy=Ignore, the error is ignored and the webhook is skipped\",\n}\n\nfunc (MutatingWebhook) SwaggerDoc() map[string]string {\n\treturn map_MutatingWebhook\n}\n\nvar map_MutatingWebhookConfiguration = map[string]string{\n\t\"\":         \"MutatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and may change the object. Deprecated in v1.16, planned for removal in v1.19. Use admissionregistration.k8s.io/v1 MutatingWebhookConfiguration instead.\",\n\t\"metadata\": \"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\",\n\t\"webhooks\": \"Webhooks is a list of webhooks and the affected resources and operations.\",\n}\n\nfunc (MutatingWebhookConfiguration) SwaggerDoc() map[string]string {\n\treturn map_MutatingWebhookConfiguration\n}\n\nvar map_MutatingWebhookConfigurationList = map[string]string{\n\t\"\":         \"MutatingWebhookConfigurationList is a list of MutatingWebhookConfiguration.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of MutatingWebhookConfiguration.\",\n}\n\nfunc (MutatingWebhookConfigurationList) SwaggerDoc() map[string]string {\n\treturn map_MutatingWebhookConfigurationList\n}\n\nvar map_NamedRuleWithOperations = map[string]string{\n\t\"\":              \"NamedRuleWithOperations is a tuple of Operations and Resources with ResourceNames.\",\n\t\"resourceNames\": \"ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.\",\n}\n\nfunc (NamedRuleWithOperations) SwaggerDoc() map[string]string {\n\treturn map_NamedRuleWithOperations\n}\n\nvar map_ParamKind = map[string]string{\n\t\"\":           \"ParamKind is a tuple of Group Kind and Version.\",\n\t\"apiVersion\": \"APIVersion is the API group version the resources belong to. In format of \\\"group/version\\\". Required.\",\n\t\"kind\":       \"Kind is the API kind the resources belong to. Required.\",\n}\n\nfunc (ParamKind) SwaggerDoc() map[string]string {\n\treturn map_ParamKind\n}\n\nvar map_ParamRef = map[string]string{\n\t\"\":                        \"ParamRef describes how to locate the params to be used as input to expressions of rules applied by a policy binding.\",\n\t\"name\":                    \"name is the name of the resource being referenced.\\n\\nOne of `name` or `selector` must be set, but `name` and `selector` are mutually exclusive properties. If one is set, the other must be unset.\\n\\nA single parameter used for all admission requests can be configured by setting the `name` field, leaving `selector` blank, and setting namespace if `paramKind` is namespace-scoped.\",\n\t\"namespace\":               \"namespace is the namespace of the referenced resource. Allows limiting the search for params to a specific namespace. Applies to both `name` and `selector` fields.\\n\\nA per-namespace parameter may be used by specifying a namespace-scoped `paramKind` in the policy and leaving this field empty.\\n\\n- If `paramKind` is cluster-scoped, this field MUST be unset. Setting this field results in a configuration error.\\n\\n- If `paramKind` is namespace-scoped, the namespace of the object being evaluated for admission will be used when this field is left unset. Take care that if this is left empty the binding must not match any cluster-scoped resources, which will result in an error.\",\n\t\"selector\":                \"selector can be used to match multiple param objects based on their labels. Supply selector: {} to match all resources of the ParamKind.\\n\\nIf multiple params are found, they are all evaluated with the policy expressions and the results are ANDed together.\\n\\nOne of `name` or `selector` must be set, but `name` and `selector` are mutually exclusive properties. If one is set, the other must be unset.\",\n\t\"parameterNotFoundAction\": \"`parameterNotFoundAction` controls the behavior of the binding when the resource exists, and name or selector is valid, but there are no parameters matched by the binding. If the value is set to `Allow`, then no matched parameters will be treated as successful validation by the binding. If set to `Deny`, then no matched parameters will be subject to the `failurePolicy` of the policy.\\n\\nAllowed values are `Allow` or `Deny`\\n\\nRequired\",\n}\n\nfunc (ParamRef) SwaggerDoc() map[string]string {\n\treturn map_ParamRef\n}\n\nvar map_ServiceReference = map[string]string{\n\t\"\":          \"ServiceReference holds a reference to Service.legacy.k8s.io\",\n\t\"namespace\": \"`namespace` is the namespace of the service. Required\",\n\t\"name\":      \"`name` is the name of the service. Required\",\n\t\"path\":      \"`path` is an optional URL path which will be sent in any request to this service.\",\n\t\"port\":      \"If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. `port` should be a valid port number (1-65535, inclusive).\",\n}\n\nfunc (ServiceReference) SwaggerDoc() map[string]string {\n\treturn map_ServiceReference\n}\n\nvar map_TypeChecking = map[string]string{\n\t\"\":                   \"TypeChecking contains results of type checking the expressions in the ValidatingAdmissionPolicy\",\n\t\"expressionWarnings\": \"The type checking warnings for each expression.\",\n}\n\nfunc (TypeChecking) SwaggerDoc() map[string]string {\n\treturn map_TypeChecking\n}\n\nvar map_ValidatingAdmissionPolicy = map[string]string{\n\t\"\":         \"ValidatingAdmissionPolicy describes the definition of an admission validation policy that accepts or rejects an object without changing it.\",\n\t\"metadata\": \"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\",\n\t\"spec\":     \"Specification of the desired behavior of the ValidatingAdmissionPolicy.\",\n\t\"status\":   \"The status of the ValidatingAdmissionPolicy, including warnings that are useful to determine if the policy behaves in the expected way. Populated by the system. Read-only.\",\n}\n\nfunc (ValidatingAdmissionPolicy) SwaggerDoc() map[string]string {\n\treturn map_ValidatingAdmissionPolicy\n}\n\nvar map_ValidatingAdmissionPolicyBinding = map[string]string{\n\t\"\":         \"ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources. ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters.\\n\\nFor a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding.\\n\\nThe CEL expressions of a policy must have a computed CEL cost below the maximum CEL budget. Each evaluation of the policy is given an independent CEL cost budget. Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget.\",\n\t\"metadata\": \"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\",\n\t\"spec\":     \"Specification of the desired behavior of the ValidatingAdmissionPolicyBinding.\",\n}\n\nfunc (ValidatingAdmissionPolicyBinding) SwaggerDoc() map[string]string {\n\treturn map_ValidatingAdmissionPolicyBinding\n}\n\nvar map_ValidatingAdmissionPolicyBindingList = map[string]string{\n\t\"\":         \"ValidatingAdmissionPolicyBindingList is a list of ValidatingAdmissionPolicyBinding.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of PolicyBinding.\",\n}\n\nfunc (ValidatingAdmissionPolicyBindingList) SwaggerDoc() map[string]string {\n\treturn map_ValidatingAdmissionPolicyBindingList\n}\n\nvar map_ValidatingAdmissionPolicyBindingSpec = map[string]string{\n\t\"\":                  \"ValidatingAdmissionPolicyBindingSpec is the specification of the ValidatingAdmissionPolicyBinding.\",\n\t\"policyName\":        \"PolicyName references a ValidatingAdmissionPolicy name which the ValidatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required.\",\n\t\"paramRef\":          \"paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param.\",\n\t\"matchResources\":    \"MatchResources declares what resources match this binding and will be validated by it. Note that this is intersected with the policy's matchConstraints, so only requests that are matched by the policy can be selected by this. If this is unset, all resources matched by the policy are validated by this binding When resourceRules is unset, it does not constrain resource matching. If a resource is matched by the other fields of this object, it will be validated. Note that this is differs from ValidatingAdmissionPolicy matchConstraints, where resourceRules are required.\",\n\t\"validationActions\": \"validationActions declares how Validations of the referenced ValidatingAdmissionPolicy are enforced. If a validation evaluates to false it is always enforced according to these actions.\\n\\nFailures defined by the ValidatingAdmissionPolicy's FailurePolicy are enforced according to these actions only if the FailurePolicy is set to Fail, otherwise the failures are ignored. This includes compilation errors, runtime errors and misconfigurations of the policy.\\n\\nvalidationActions is declared as a set of action values. Order does not matter. validationActions may not contain duplicates of the same action.\\n\\nThe supported actions values are:\\n\\n\\\"Deny\\\" specifies that a validation failure results in a denied request.\\n\\n\\\"Warn\\\" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses.\\n\\n\\\"Audit\\\" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `\\\"validation.policy.admission.k8s.io/validation_failure\\\": \\\"[{\\\"message\\\": \\\"Invalid value\\\", {\\\"policy\\\": \\\"policy.example.com\\\", {\\\"binding\\\": \\\"policybinding.example.com\\\", {\\\"expressionIndex\\\": \\\"1\\\", {\\\"validationActions\\\": [\\\"Audit\\\"]}]\\\"`\\n\\nClients should expect to handle additional values by ignoring any values not recognized.\\n\\n\\\"Deny\\\" and \\\"Warn\\\" may not be used together since this combination needlessly duplicates the validation failure both in the API response body and the HTTP warning headers.\\n\\nRequired.\",\n}\n\nfunc (ValidatingAdmissionPolicyBindingSpec) SwaggerDoc() map[string]string {\n\treturn map_ValidatingAdmissionPolicyBindingSpec\n}\n\nvar map_ValidatingAdmissionPolicyList = map[string]string{\n\t\"\":         \"ValidatingAdmissionPolicyList is a list of ValidatingAdmissionPolicy.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of ValidatingAdmissionPolicy.\",\n}\n\nfunc (ValidatingAdmissionPolicyList) SwaggerDoc() map[string]string {\n\treturn map_ValidatingAdmissionPolicyList\n}\n\nvar map_ValidatingAdmissionPolicySpec = map[string]string{\n\t\"\":                 \"ValidatingAdmissionPolicySpec is the specification of the desired behavior of the AdmissionPolicy.\",\n\t\"paramKind\":        \"ParamKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If ParamKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in ValidatingAdmissionPolicyBinding, the params variable will be null.\",\n\t\"matchConstraints\": \"MatchConstraints specifies what resources this policy is designed to validate. The AdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API ValidatingAdmissionPolicy cannot match ValidatingAdmissionPolicy and ValidatingAdmissionPolicyBinding. Required.\",\n\t\"validations\":      \"Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required.\",\n\t\"failurePolicy\":    \"failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings.\\n\\nA policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource.\\n\\nfailurePolicy does not define how validations that evaluate to false are handled.\\n\\nWhen failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced.\\n\\nAllowed values are Ignore or Fail. Defaults to Fail.\",\n\t\"auditAnnotations\": \"auditAnnotations contains CEL expressions which are used to produce audit annotations for the audit event of the API request. validations and auditAnnotations may not both be empty; a least one of validations or auditAnnotations is required.\",\n\t\"matchConditions\":  \"MatchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed.\\n\\nIf a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions.\\n\\nThe exact matching logic is (in order):\\n  1. If ANY matchCondition evaluates to FALSE, the policy is skipped.\\n  2. If ALL matchConditions evaluate to TRUE, the policy is evaluated.\\n  3. If any matchCondition evaluates to an error (but none are FALSE):\\n     - If failurePolicy=Fail, reject the request\\n     - If failurePolicy=Ignore, the policy is skipped\",\n\t\"variables\":        \"Variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except MatchConditions because MatchConditions are evaluated before the rest of the policy.\\n\\nThe expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, Variables must be sorted by the order of first appearance and acyclic.\",\n}\n\nfunc (ValidatingAdmissionPolicySpec) SwaggerDoc() map[string]string {\n\treturn map_ValidatingAdmissionPolicySpec\n}\n\nvar map_ValidatingAdmissionPolicyStatus = map[string]string{\n\t\"\":                   \"ValidatingAdmissionPolicyStatus represents the status of an admission validation policy.\",\n\t\"observedGeneration\": \"The generation observed by the controller.\",\n\t\"typeChecking\":       \"The results of type checking for each expression. Presence of this field indicates the completion of the type checking.\",\n\t\"conditions\":         \"The conditions represent the latest available observations of a policy's current state.\",\n}\n\nfunc (ValidatingAdmissionPolicyStatus) SwaggerDoc() map[string]string {\n\treturn map_ValidatingAdmissionPolicyStatus\n}\n\nvar map_ValidatingWebhook = map[string]string{\n\t\"\":                        \"ValidatingWebhook describes an admission webhook and the resources and operations it applies to.\",\n\t\"name\":                    \"The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \\\"imagepolicy\\\" is the name of the webhook, and kubernetes.io is the name of the organization. Required.\",\n\t\"clientConfig\":            \"ClientConfig defines how to communicate with the hook. Required\",\n\t\"rules\":                   \"Rules describes what operations on what resources/subresources the webhook cares about. The webhook cares about an operation if it matches _any_ Rule. However, in order to prevent ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks from putting the cluster in a state which cannot be recovered from without completely disabling the plugin, ValidatingAdmissionWebhooks and MutatingAdmissionWebhooks are never called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects.\",\n\t\"failurePolicy\":           \"FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Ignore.\",\n\t\"matchPolicy\":             \"matchPolicy defines how the \\\"rules\\\" list is used to match incoming requests. Allowed values are \\\"Exact\\\" or \\\"Equivalent\\\".\\n\\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \\\"rules\\\" only included `apiGroups:[\\\"apps\\\"], apiVersions:[\\\"v1\\\"], resources: [\\\"deployments\\\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook.\\n\\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \\\"rules\\\" only included `apiGroups:[\\\"apps\\\"], apiVersions:[\\\"v1\\\"], resources: [\\\"deployments\\\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook.\\n\\nDefaults to \\\"Exact\\\"\",\n\t\"namespaceSelector\":       \"NamespaceSelector decides whether to run the webhook on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the webhook.\\n\\nFor example, to run the webhook on any objects whose namespace is not associated with \\\"runlevel\\\" of \\\"0\\\" or \\\"1\\\";  you will set the selector as follows: \\\"namespaceSelector\\\": {\\n  \\\"matchExpressions\\\": [\\n    {\\n      \\\"key\\\": \\\"runlevel\\\",\\n      \\\"operator\\\": \\\"NotIn\\\",\\n      \\\"values\\\": [\\n        \\\"0\\\",\\n        \\\"1\\\"\\n      ]\\n    }\\n  ]\\n}\\n\\nIf instead you want to only run the webhook on any objects whose namespace is associated with the \\\"environment\\\" of \\\"prod\\\" or \\\"staging\\\"; you will set the selector as follows: \\\"namespaceSelector\\\": {\\n  \\\"matchExpressions\\\": [\\n    {\\n      \\\"key\\\": \\\"environment\\\",\\n      \\\"operator\\\": \\\"In\\\",\\n      \\\"values\\\": [\\n        \\\"prod\\\",\\n        \\\"staging\\\"\\n      ]\\n    }\\n  ]\\n}\\n\\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels for more examples of label selectors.\\n\\nDefault to the empty LabelSelector, which matches everything.\",\n\t\"objectSelector\":          \"ObjectSelector decides whether to run the webhook based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything.\",\n\t\"sideEffects\":             \"SideEffects states whether this webhook has side effects. Acceptable values are: Unknown, None, Some, NoneOnDryRun Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission chain and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some. Defaults to Unknown.\",\n\t\"timeoutSeconds\":          \"TimeoutSeconds specifies the timeout for this webhook. After the timeout passes, the webhook call will be ignored or the API call will fail based on the failure policy. The timeout value must be between 1 and 30 seconds. Default to 30 seconds.\",\n\t\"admissionReviewVersions\": \"AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy. Default to `['v1beta1']`.\",\n\t\"matchConditions\":         \"MatchConditions is a list of conditions that must be met for a request to be sent to this webhook. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed.\\n\\nThe exact matching logic is (in order):\\n  1. If ANY matchCondition evaluates to FALSE, the webhook is skipped.\\n  2. If ALL matchConditions evaluate to TRUE, the webhook is called.\\n  3. If any matchCondition evaluates to an error (but none are FALSE):\\n     - If failurePolicy=Fail, reject the request\\n     - If failurePolicy=Ignore, the error is ignored and the webhook is skipped\",\n}\n\nfunc (ValidatingWebhook) SwaggerDoc() map[string]string {\n\treturn map_ValidatingWebhook\n}\n\nvar map_ValidatingWebhookConfiguration = map[string]string{\n\t\"\":         \"ValidatingWebhookConfiguration describes the configuration of and admission webhook that accept or reject and object without changing it. Deprecated in v1.16, planned for removal in v1.19. Use admissionregistration.k8s.io/v1 ValidatingWebhookConfiguration instead.\",\n\t\"metadata\": \"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\",\n\t\"webhooks\": \"Webhooks is a list of webhooks and the affected resources and operations.\",\n}\n\nfunc (ValidatingWebhookConfiguration) SwaggerDoc() map[string]string {\n\treturn map_ValidatingWebhookConfiguration\n}\n\nvar map_ValidatingWebhookConfigurationList = map[string]string{\n\t\"\":         \"ValidatingWebhookConfigurationList is a list of ValidatingWebhookConfiguration.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of ValidatingWebhookConfiguration.\",\n}\n\nfunc (ValidatingWebhookConfigurationList) SwaggerDoc() map[string]string {\n\treturn map_ValidatingWebhookConfigurationList\n}\n\nvar map_Validation = map[string]string{\n\t\"\":                  \"Validation specifies the CEL expression which is used to apply the validation.\",\n\t\"expression\":        \"Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables:\\n\\n- 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value.\\n  For example, a variable named 'foo' can be accessed as 'variables.foo'.\\n- 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\\n  See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\\n- 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\\n  request resource.\\n\\nThe `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible.\\n\\nOnly property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Accessible property names are escaped according to the following rules when accessed in the expression: - '__' escapes to '__underscores__' - '.' escapes to '__dot__' - '-' escapes to '__dash__' - '/' escapes to '__slash__' - Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are:\\n\\t  \\\"true\\\", \\\"false\\\", \\\"null\\\", \\\"in\\\", \\\"as\\\", \\\"break\\\", \\\"const\\\", \\\"continue\\\", \\\"else\\\", \\\"for\\\", \\\"function\\\", \\\"if\\\",\\n\\t  \\\"import\\\", \\\"let\\\", \\\"loop\\\", \\\"package\\\", \\\"namespace\\\", \\\"return\\\".\\nExamples:\\n  - Expression accessing a property named \\\"namespace\\\": {\\\"Expression\\\": \\\"object.__namespace__ > 0\\\"}\\n  - Expression accessing a property named \\\"x-prop\\\": {\\\"Expression\\\": \\\"object.x__dash__prop > 0\\\"}\\n  - Expression accessing a property named \\\"redact__d\\\": {\\\"Expression\\\": \\\"object.redact__underscores__d > 0\\\"}\\n\\nEquality on arrays with list type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1]. Concatenation on arrays with x-kubernetes-list-type use the semantics of the list type:\\n  - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and\\n    non-intersecting elements in `Y` are appended, retaining their partial order.\\n  - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values\\n    are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with\\n    non-intersecting keys are appended, retaining their partial order.\\nRequired.\",\n\t\"message\":           \"Message represents the message displayed when validation fails. The message is required if the Expression contains line breaks. The message must not contain line breaks. If unset, the message is \\\"failed rule: {Rule}\\\". e.g. \\\"must be a URL with the host matching spec.host\\\" If the Expression contains line breaks. Message is required. The message must not contain line breaks. If unset, the message is \\\"failed Expression: {Expression}\\\".\",\n\t\"reason\":            \"Reason represents a machine-readable description of why this validation failed. If this is the first validation in the list to fail, this reason, as well as the corresponding HTTP response code, are used in the HTTP response to the client. The currently supported reasons are: \\\"Unauthorized\\\", \\\"Forbidden\\\", \\\"Invalid\\\", \\\"RequestEntityTooLarge\\\". If not set, StatusReasonInvalid is used in the response to the client.\",\n\t\"messageExpression\": \"messageExpression declares a CEL expression that evaluates to the validation failure message that is returned when this rule fails. Since messageExpression is used as a failure message, it must evaluate to a string. If both message and messageExpression are present on a validation, then messageExpression will be used if validation fails. If messageExpression results in a runtime error, the runtime error is logged, and the validation failure message is produced as if the messageExpression field were unset. If messageExpression evaluates to an empty string, a string with only spaces, or a string that contains line breaks, then the validation failure message will also be produced as if the messageExpression field were unset, and the fact that messageExpression produced an empty string/string with only spaces/string with line breaks will be logged. messageExpression has access to all the same variables as the `expression` except for 'authorizer' and 'authorizer.requestResource'. Example: \\\"object.x must be less than max (\\\"+string(params.max)+\\\")\\\"\",\n}\n\nfunc (Validation) SwaggerDoc() map[string]string {\n\treturn map_Validation\n}\n\nvar map_Variable = map[string]string{\n\t\"\":           \"Variable is the definition of a variable that is used for composition. A variable is defined as a named expression.\",\n\t\"name\":       \"Name is the name of the variable. The name must be a valid CEL identifier and unique among all variables. The variable can be accessed in other expressions through `variables` For example, if name is \\\"foo\\\", the variable will be available as `variables.foo`\",\n\t\"expression\": \"Expression is the expression that will be evaluated as the value of the variable. The CEL expression has access to the same identifiers as the CEL expressions in Validation.\",\n}\n\nfunc (Variable) SwaggerDoc() map[string]string {\n\treturn map_Variable\n}\n\nvar map_WebhookClientConfig = map[string]string{\n\t\"\":         \"WebhookClientConfig contains the information to make a TLS connection with the webhook\",\n\t\"url\":      \"`url` gives the location of the webhook, in standard URL form (`scheme://host:port/path`). Exactly one of `url` or `service` must be specified.\\n\\nThe `host` should not refer to a service running in the cluster; use the `service` field instead. The host might be resolved via external DNS in some apiservers (e.g., `kube-apiserver` cannot resolve in-cluster DNS as that would be a layering violation). `host` may also be an IP address.\\n\\nPlease note that using `localhost` or `127.0.0.1` as a `host` is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.\\n\\nThe scheme must be \\\"https\\\"; the URL must begin with \\\"https://\\\".\\n\\nA path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.\\n\\nAttempting to use a user or basic auth e.g. \\\"user:password@\\\" is not allowed. Fragments (\\\"#...\\\") and query parameters (\\\"?...\\\") are not allowed, either.\",\n\t\"service\":  \"`service` is a reference to the service for this webhook. Either `service` or `url` must be specified.\\n\\nIf the webhook is running within the cluster, then you should use `service`.\",\n\t\"caBundle\": \"`caBundle` is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. If unspecified, system trust roots on the apiserver are used.\",\n}\n\nfunc (WebhookClientConfig) SwaggerDoc() map[string]string {\n\treturn map_WebhookClientConfig\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1beta1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tadmissionregistrationv1 \"k8s.io/api/admissionregistration/v1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *AuditAnnotation) DeepCopyInto(out *AuditAnnotation) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuditAnnotation.\nfunc (in *AuditAnnotation) DeepCopy() *AuditAnnotation {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(AuditAnnotation)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExpressionWarning) DeepCopyInto(out *ExpressionWarning) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExpressionWarning.\nfunc (in *ExpressionWarning) DeepCopy() *ExpressionWarning {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExpressionWarning)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MatchCondition) DeepCopyInto(out *MatchCondition) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MatchCondition.\nfunc (in *MatchCondition) DeepCopy() *MatchCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MatchCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MatchResources) DeepCopyInto(out *MatchResources) {\n\t*out = *in\n\tif in.NamespaceSelector != nil {\n\t\tin, out := &in.NamespaceSelector, &out.NamespaceSelector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ObjectSelector != nil {\n\t\tin, out := &in.ObjectSelector, &out.ObjectSelector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ResourceRules != nil {\n\t\tin, out := &in.ResourceRules, &out.ResourceRules\n\t\t*out = make([]NamedRuleWithOperations, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.ExcludeResourceRules != nil {\n\t\tin, out := &in.ExcludeResourceRules, &out.ExcludeResourceRules\n\t\t*out = make([]NamedRuleWithOperations, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.MatchPolicy != nil {\n\t\tin, out := &in.MatchPolicy, &out.MatchPolicy\n\t\t*out = new(MatchPolicyType)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MatchResources.\nfunc (in *MatchResources) DeepCopy() *MatchResources {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MatchResources)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MutatingWebhook) DeepCopyInto(out *MutatingWebhook) {\n\t*out = *in\n\tin.ClientConfig.DeepCopyInto(&out.ClientConfig)\n\tif in.Rules != nil {\n\t\tin, out := &in.Rules, &out.Rules\n\t\t*out = make([]admissionregistrationv1.RuleWithOperations, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.FailurePolicy != nil {\n\t\tin, out := &in.FailurePolicy, &out.FailurePolicy\n\t\t*out = new(FailurePolicyType)\n\t\t**out = **in\n\t}\n\tif in.MatchPolicy != nil {\n\t\tin, out := &in.MatchPolicy, &out.MatchPolicy\n\t\t*out = new(MatchPolicyType)\n\t\t**out = **in\n\t}\n\tif in.NamespaceSelector != nil {\n\t\tin, out := &in.NamespaceSelector, &out.NamespaceSelector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ObjectSelector != nil {\n\t\tin, out := &in.ObjectSelector, &out.ObjectSelector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.SideEffects != nil {\n\t\tin, out := &in.SideEffects, &out.SideEffects\n\t\t*out = new(SideEffectClass)\n\t\t**out = **in\n\t}\n\tif in.TimeoutSeconds != nil {\n\t\tin, out := &in.TimeoutSeconds, &out.TimeoutSeconds\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.AdmissionReviewVersions != nil {\n\t\tin, out := &in.AdmissionReviewVersions, &out.AdmissionReviewVersions\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ReinvocationPolicy != nil {\n\t\tin, out := &in.ReinvocationPolicy, &out.ReinvocationPolicy\n\t\t*out = new(ReinvocationPolicyType)\n\t\t**out = **in\n\t}\n\tif in.MatchConditions != nil {\n\t\tin, out := &in.MatchConditions, &out.MatchConditions\n\t\t*out = make([]MatchCondition, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MutatingWebhook.\nfunc (in *MutatingWebhook) DeepCopy() *MutatingWebhook {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MutatingWebhook)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MutatingWebhookConfiguration) DeepCopyInto(out *MutatingWebhookConfiguration) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Webhooks != nil {\n\t\tin, out := &in.Webhooks, &out.Webhooks\n\t\t*out = make([]MutatingWebhook, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MutatingWebhookConfiguration.\nfunc (in *MutatingWebhookConfiguration) DeepCopy() *MutatingWebhookConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MutatingWebhookConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *MutatingWebhookConfiguration) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MutatingWebhookConfigurationList) DeepCopyInto(out *MutatingWebhookConfigurationList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]MutatingWebhookConfiguration, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MutatingWebhookConfigurationList.\nfunc (in *MutatingWebhookConfigurationList) DeepCopy() *MutatingWebhookConfigurationList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MutatingWebhookConfigurationList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *MutatingWebhookConfigurationList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NamedRuleWithOperations) DeepCopyInto(out *NamedRuleWithOperations) {\n\t*out = *in\n\tif in.ResourceNames != nil {\n\t\tin, out := &in.ResourceNames, &out.ResourceNames\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tin.RuleWithOperations.DeepCopyInto(&out.RuleWithOperations)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamedRuleWithOperations.\nfunc (in *NamedRuleWithOperations) DeepCopy() *NamedRuleWithOperations {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NamedRuleWithOperations)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ParamKind) DeepCopyInto(out *ParamKind) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParamKind.\nfunc (in *ParamKind) DeepCopy() *ParamKind {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ParamKind)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ParamRef) DeepCopyInto(out *ParamRef) {\n\t*out = *in\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ParameterNotFoundAction != nil {\n\t\tin, out := &in.ParameterNotFoundAction, &out.ParameterNotFoundAction\n\t\t*out = new(ParameterNotFoundActionType)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParamRef.\nfunc (in *ParamRef) DeepCopy() *ParamRef {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ParamRef)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ServiceReference) DeepCopyInto(out *ServiceReference) {\n\t*out = *in\n\tif in.Path != nil {\n\t\tin, out := &in.Path, &out.Path\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.Port != nil {\n\t\tin, out := &in.Port, &out.Port\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceReference.\nfunc (in *ServiceReference) DeepCopy() *ServiceReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ServiceReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TypeChecking) DeepCopyInto(out *TypeChecking) {\n\t*out = *in\n\tif in.ExpressionWarnings != nil {\n\t\tin, out := &in.ExpressionWarnings, &out.ExpressionWarnings\n\t\t*out = make([]ExpressionWarning, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TypeChecking.\nfunc (in *TypeChecking) DeepCopy() *TypeChecking {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TypeChecking)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ValidatingAdmissionPolicy) DeepCopyInto(out *ValidatingAdmissionPolicy) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingAdmissionPolicy.\nfunc (in *ValidatingAdmissionPolicy) DeepCopy() *ValidatingAdmissionPolicy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ValidatingAdmissionPolicy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ValidatingAdmissionPolicy) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ValidatingAdmissionPolicyBinding) DeepCopyInto(out *ValidatingAdmissionPolicyBinding) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingAdmissionPolicyBinding.\nfunc (in *ValidatingAdmissionPolicyBinding) DeepCopy() *ValidatingAdmissionPolicyBinding {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ValidatingAdmissionPolicyBinding)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ValidatingAdmissionPolicyBinding) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ValidatingAdmissionPolicyBindingList) DeepCopyInto(out *ValidatingAdmissionPolicyBindingList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ValidatingAdmissionPolicyBinding, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingAdmissionPolicyBindingList.\nfunc (in *ValidatingAdmissionPolicyBindingList) DeepCopy() *ValidatingAdmissionPolicyBindingList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ValidatingAdmissionPolicyBindingList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ValidatingAdmissionPolicyBindingList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ValidatingAdmissionPolicyBindingSpec) DeepCopyInto(out *ValidatingAdmissionPolicyBindingSpec) {\n\t*out = *in\n\tif in.ParamRef != nil {\n\t\tin, out := &in.ParamRef, &out.ParamRef\n\t\t*out = new(ParamRef)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.MatchResources != nil {\n\t\tin, out := &in.MatchResources, &out.MatchResources\n\t\t*out = new(MatchResources)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ValidationActions != nil {\n\t\tin, out := &in.ValidationActions, &out.ValidationActions\n\t\t*out = make([]ValidationAction, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingAdmissionPolicyBindingSpec.\nfunc (in *ValidatingAdmissionPolicyBindingSpec) DeepCopy() *ValidatingAdmissionPolicyBindingSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ValidatingAdmissionPolicyBindingSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ValidatingAdmissionPolicyList) DeepCopyInto(out *ValidatingAdmissionPolicyList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ValidatingAdmissionPolicy, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingAdmissionPolicyList.\nfunc (in *ValidatingAdmissionPolicyList) DeepCopy() *ValidatingAdmissionPolicyList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ValidatingAdmissionPolicyList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ValidatingAdmissionPolicyList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ValidatingAdmissionPolicySpec) DeepCopyInto(out *ValidatingAdmissionPolicySpec) {\n\t*out = *in\n\tif in.ParamKind != nil {\n\t\tin, out := &in.ParamKind, &out.ParamKind\n\t\t*out = new(ParamKind)\n\t\t**out = **in\n\t}\n\tif in.MatchConstraints != nil {\n\t\tin, out := &in.MatchConstraints, &out.MatchConstraints\n\t\t*out = new(MatchResources)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Validations != nil {\n\t\tin, out := &in.Validations, &out.Validations\n\t\t*out = make([]Validation, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.FailurePolicy != nil {\n\t\tin, out := &in.FailurePolicy, &out.FailurePolicy\n\t\t*out = new(FailurePolicyType)\n\t\t**out = **in\n\t}\n\tif in.AuditAnnotations != nil {\n\t\tin, out := &in.AuditAnnotations, &out.AuditAnnotations\n\t\t*out = make([]AuditAnnotation, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.MatchConditions != nil {\n\t\tin, out := &in.MatchConditions, &out.MatchConditions\n\t\t*out = make([]MatchCondition, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Variables != nil {\n\t\tin, out := &in.Variables, &out.Variables\n\t\t*out = make([]Variable, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingAdmissionPolicySpec.\nfunc (in *ValidatingAdmissionPolicySpec) DeepCopy() *ValidatingAdmissionPolicySpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ValidatingAdmissionPolicySpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ValidatingAdmissionPolicyStatus) DeepCopyInto(out *ValidatingAdmissionPolicyStatus) {\n\t*out = *in\n\tif in.TypeChecking != nil {\n\t\tin, out := &in.TypeChecking, &out.TypeChecking\n\t\t*out = new(TypeChecking)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]v1.Condition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingAdmissionPolicyStatus.\nfunc (in *ValidatingAdmissionPolicyStatus) DeepCopy() *ValidatingAdmissionPolicyStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ValidatingAdmissionPolicyStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ValidatingWebhook) DeepCopyInto(out *ValidatingWebhook) {\n\t*out = *in\n\tin.ClientConfig.DeepCopyInto(&out.ClientConfig)\n\tif in.Rules != nil {\n\t\tin, out := &in.Rules, &out.Rules\n\t\t*out = make([]admissionregistrationv1.RuleWithOperations, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.FailurePolicy != nil {\n\t\tin, out := &in.FailurePolicy, &out.FailurePolicy\n\t\t*out = new(FailurePolicyType)\n\t\t**out = **in\n\t}\n\tif in.MatchPolicy != nil {\n\t\tin, out := &in.MatchPolicy, &out.MatchPolicy\n\t\t*out = new(MatchPolicyType)\n\t\t**out = **in\n\t}\n\tif in.NamespaceSelector != nil {\n\t\tin, out := &in.NamespaceSelector, &out.NamespaceSelector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ObjectSelector != nil {\n\t\tin, out := &in.ObjectSelector, &out.ObjectSelector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.SideEffects != nil {\n\t\tin, out := &in.SideEffects, &out.SideEffects\n\t\t*out = new(SideEffectClass)\n\t\t**out = **in\n\t}\n\tif in.TimeoutSeconds != nil {\n\t\tin, out := &in.TimeoutSeconds, &out.TimeoutSeconds\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.AdmissionReviewVersions != nil {\n\t\tin, out := &in.AdmissionReviewVersions, &out.AdmissionReviewVersions\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.MatchConditions != nil {\n\t\tin, out := &in.MatchConditions, &out.MatchConditions\n\t\t*out = make([]MatchCondition, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingWebhook.\nfunc (in *ValidatingWebhook) DeepCopy() *ValidatingWebhook {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ValidatingWebhook)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ValidatingWebhookConfiguration) DeepCopyInto(out *ValidatingWebhookConfiguration) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Webhooks != nil {\n\t\tin, out := &in.Webhooks, &out.Webhooks\n\t\t*out = make([]ValidatingWebhook, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingWebhookConfiguration.\nfunc (in *ValidatingWebhookConfiguration) DeepCopy() *ValidatingWebhookConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ValidatingWebhookConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ValidatingWebhookConfiguration) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ValidatingWebhookConfigurationList) DeepCopyInto(out *ValidatingWebhookConfigurationList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ValidatingWebhookConfiguration, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValidatingWebhookConfigurationList.\nfunc (in *ValidatingWebhookConfigurationList) DeepCopy() *ValidatingWebhookConfigurationList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ValidatingWebhookConfigurationList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ValidatingWebhookConfigurationList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Validation) DeepCopyInto(out *Validation) {\n\t*out = *in\n\tif in.Reason != nil {\n\t\tin, out := &in.Reason, &out.Reason\n\t\t*out = new(v1.StatusReason)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Validation.\nfunc (in *Validation) DeepCopy() *Validation {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Validation)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Variable) DeepCopyInto(out *Variable) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Variable.\nfunc (in *Variable) DeepCopy() *Variable {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Variable)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *WebhookClientConfig) DeepCopyInto(out *WebhookClientConfig) {\n\t*out = *in\n\tif in.URL != nil {\n\t\tin, out := &in.URL, &out.URL\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.Service != nil {\n\t\tin, out := &in.Service, &out.Service\n\t\t*out = new(ServiceReference)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.CABundle != nil {\n\t\tin, out := &in.CABundle, &out.CABundle\n\t\t*out = make([]byte, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WebhookClientConfig.\nfunc (in *WebhookClientConfig) DeepCopy() *WebhookClientConfig {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(WebhookClientConfig)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/admissionregistration/v1beta1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *MutatingWebhookConfiguration) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *MutatingWebhookConfiguration) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *MutatingWebhookConfiguration) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"admissionregistration.k8s.io\", Version: \"v1\", Kind: \"MutatingWebhookConfiguration\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *MutatingWebhookConfiguration) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *MutatingWebhookConfigurationList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *MutatingWebhookConfigurationList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *MutatingWebhookConfigurationList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"admissionregistration.k8s.io\", Version: \"v1\", Kind: \"MutatingWebhookConfigurationList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *MutatingWebhookConfigurationList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ValidatingAdmissionPolicy) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 28\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ValidatingAdmissionPolicy) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 31\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ValidatingAdmissionPolicy) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 34\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ValidatingAdmissionPolicyBinding) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 28\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ValidatingAdmissionPolicyBinding) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 31\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ValidatingAdmissionPolicyBinding) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 34\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ValidatingAdmissionPolicyBindingList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 28\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ValidatingAdmissionPolicyBindingList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 31\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ValidatingAdmissionPolicyBindingList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 34\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ValidatingAdmissionPolicyList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 28\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ValidatingAdmissionPolicyList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 31\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ValidatingAdmissionPolicyList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 34\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ValidatingWebhookConfiguration) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ValidatingWebhookConfiguration) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *ValidatingWebhookConfiguration) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"admissionregistration.k8s.io\", Version: \"v1\", Kind: \"ValidatingWebhookConfiguration\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ValidatingWebhookConfiguration) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ValidatingWebhookConfigurationList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ValidatingWebhookConfigurationList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *ValidatingWebhookConfigurationList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"admissionregistration.k8s.io\", Version: \"v1\", Kind: \"ValidatingWebhookConfigurationList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ValidatingWebhookConfigurationList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/apidiscovery/v2/doc.go",
    "content": "/*\nCopyright 2024 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n// +groupName=apidiscovery.k8s.io\n\npackage v2 // import \"k8s.io/api/apidiscovery/v2\"\n"
  },
  {
    "path": "vendor/k8s.io/api/apidiscovery/v2/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/apidiscovery/v2/generated.proto\n\npackage v2\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *APIGroupDiscovery) Reset()      { *m = APIGroupDiscovery{} }\nfunc (*APIGroupDiscovery) ProtoMessage() {}\nfunc (*APIGroupDiscovery) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e0b7287280068d8f, []int{0}\n}\nfunc (m *APIGroupDiscovery) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *APIGroupDiscovery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *APIGroupDiscovery) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_APIGroupDiscovery.Merge(m, src)\n}\nfunc (m *APIGroupDiscovery) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *APIGroupDiscovery) XXX_DiscardUnknown() {\n\txxx_messageInfo_APIGroupDiscovery.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_APIGroupDiscovery proto.InternalMessageInfo\n\nfunc (m *APIGroupDiscoveryList) Reset()      { *m = APIGroupDiscoveryList{} }\nfunc (*APIGroupDiscoveryList) ProtoMessage() {}\nfunc (*APIGroupDiscoveryList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e0b7287280068d8f, []int{1}\n}\nfunc (m *APIGroupDiscoveryList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *APIGroupDiscoveryList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *APIGroupDiscoveryList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_APIGroupDiscoveryList.Merge(m, src)\n}\nfunc (m *APIGroupDiscoveryList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *APIGroupDiscoveryList) XXX_DiscardUnknown() {\n\txxx_messageInfo_APIGroupDiscoveryList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_APIGroupDiscoveryList proto.InternalMessageInfo\n\nfunc (m *APIResourceDiscovery) Reset()      { *m = APIResourceDiscovery{} }\nfunc (*APIResourceDiscovery) ProtoMessage() {}\nfunc (*APIResourceDiscovery) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e0b7287280068d8f, []int{2}\n}\nfunc (m *APIResourceDiscovery) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *APIResourceDiscovery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *APIResourceDiscovery) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_APIResourceDiscovery.Merge(m, src)\n}\nfunc (m *APIResourceDiscovery) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *APIResourceDiscovery) XXX_DiscardUnknown() {\n\txxx_messageInfo_APIResourceDiscovery.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_APIResourceDiscovery proto.InternalMessageInfo\n\nfunc (m *APISubresourceDiscovery) Reset()      { *m = APISubresourceDiscovery{} }\nfunc (*APISubresourceDiscovery) ProtoMessage() {}\nfunc (*APISubresourceDiscovery) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e0b7287280068d8f, []int{3}\n}\nfunc (m *APISubresourceDiscovery) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *APISubresourceDiscovery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *APISubresourceDiscovery) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_APISubresourceDiscovery.Merge(m, src)\n}\nfunc (m *APISubresourceDiscovery) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *APISubresourceDiscovery) XXX_DiscardUnknown() {\n\txxx_messageInfo_APISubresourceDiscovery.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_APISubresourceDiscovery proto.InternalMessageInfo\n\nfunc (m *APIVersionDiscovery) Reset()      { *m = APIVersionDiscovery{} }\nfunc (*APIVersionDiscovery) ProtoMessage() {}\nfunc (*APIVersionDiscovery) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_e0b7287280068d8f, []int{4}\n}\nfunc (m *APIVersionDiscovery) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *APIVersionDiscovery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *APIVersionDiscovery) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_APIVersionDiscovery.Merge(m, src)\n}\nfunc (m *APIVersionDiscovery) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *APIVersionDiscovery) XXX_DiscardUnknown() {\n\txxx_messageInfo_APIVersionDiscovery.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_APIVersionDiscovery proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*APIGroupDiscovery)(nil), \"k8s.io.api.apidiscovery.v2.APIGroupDiscovery\")\n\tproto.RegisterType((*APIGroupDiscoveryList)(nil), \"k8s.io.api.apidiscovery.v2.APIGroupDiscoveryList\")\n\tproto.RegisterType((*APIResourceDiscovery)(nil), \"k8s.io.api.apidiscovery.v2.APIResourceDiscovery\")\n\tproto.RegisterType((*APISubresourceDiscovery)(nil), \"k8s.io.api.apidiscovery.v2.APISubresourceDiscovery\")\n\tproto.RegisterType((*APIVersionDiscovery)(nil), \"k8s.io.api.apidiscovery.v2.APIVersionDiscovery\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/apidiscovery/v2/generated.proto\", fileDescriptor_e0b7287280068d8f)\n}\n\nvar fileDescriptor_e0b7287280068d8f = []byte{\n\t// 736 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x55, 0xcd, 0x4e, 0xdb, 0x4c,\n\t0x14, 0x8d, 0x09, 0xf9, 0x48, 0x26, 0xc9, 0xd7, 0x30, 0x80, 0x6a, 0x65, 0xe1, 0xa0, 0x6c, 0x4a,\n\t0xab, 0x32, 0x86, 0x94, 0xa2, 0x2e, 0x9b, 0x94, 0xb6, 0x8a, 0xfa, 0x87, 0x26, 0x15, 0x8b, 0xaa,\n\t0x95, 0xea, 0x38, 0x83, 0xe3, 0x82, 0x7f, 0x34, 0xe3, 0x44, 0x62, 0xd7, 0x47, 0xe8, 0x13, 0xf4,\n\t0x79, 0xe8, 0x8e, 0x05, 0x0b, 0x56, 0x51, 0x49, 0x77, 0x7d, 0x04, 0x56, 0xd5, 0x8c, 0xc7, 0x3f,\n\t0x21, 0x44, 0x41, 0x5d, 0x74, 0x81, 0x84, 0xcf, 0x9c, 0x73, 0xee, 0x3d, 0xd7, 0xd7, 0x13, 0xf0,\n\t0xe0, 0xe8, 0x09, 0x43, 0xb6, 0xa7, 0x1b, 0xbe, 0xcd, 0xff, 0x7a, 0x36, 0x33, 0xbd, 0x21, 0xa1,\n\t0x27, 0xfa, 0xb0, 0xa1, 0x5b, 0xc4, 0x25, 0xd4, 0x08, 0x48, 0x0f, 0xf9, 0xd4, 0x0b, 0x3c, 0x58,\n\t0x0d, 0xb9, 0xc8, 0xf0, 0x6d, 0x94, 0xe6, 0xa2, 0x61, 0xa3, 0xba, 0x69, 0xd9, 0x41, 0x7f, 0xd0,\n\t0x45, 0xa6, 0xe7, 0xe8, 0x96, 0x67, 0x79, 0xba, 0x90, 0x74, 0x07, 0x87, 0xe2, 0x49, 0x3c, 0x88,\n\t0xff, 0x42, 0xab, 0xea, 0x4e, 0x52, 0xd6, 0x31, 0xcc, 0xbe, 0xed, 0xf2, 0x92, 0xfe, 0x91, 0xc5,\n\t0x01, 0xa6, 0x3b, 0x24, 0x30, 0xf4, 0xe1, 0xf6, 0xf5, 0x06, 0xaa, 0xfa, 0x2c, 0x15, 0x1d, 0xb8,\n\t0x81, 0xed, 0x90, 0x29, 0xc1, 0xee, 0x3c, 0x01, 0x33, 0xfb, 0xc4, 0x31, 0xae, 0xeb, 0xea, 0xe7,\n\t0x0a, 0x58, 0x6e, 0xee, 0xb7, 0x5f, 0x52, 0x6f, 0xe0, 0xef, 0x45, 0x31, 0xe1, 0x67, 0x90, 0xe7,\n\t0x9d, 0xf5, 0x8c, 0xc0, 0x50, 0x95, 0x75, 0x65, 0xa3, 0xd8, 0xd8, 0x42, 0xc9, 0x48, 0xe2, 0x02,\n\t0xc8, 0x3f, 0xb2, 0x38, 0xc0, 0x10, 0x67, 0xa3, 0xe1, 0x36, 0x7a, 0xd7, 0xfd, 0x42, 0xcc, 0xe0,\n\t0x0d, 0x09, 0x8c, 0x16, 0x3c, 0x1d, 0xd5, 0x32, 0xe3, 0x51, 0x0d, 0x24, 0x18, 0x8e, 0x5d, 0xe1,\n\t0x27, 0x90, 0x1f, 0x12, 0xca, 0x6c, 0xcf, 0x65, 0xea, 0xc2, 0x7a, 0x76, 0xa3, 0xd8, 0xd0, 0xd1,\n\t0xec, 0xa1, 0xa3, 0xe6, 0x7e, 0xfb, 0x20, 0xa4, 0xc7, 0x4d, 0xb6, 0x2a, 0xb2, 0x40, 0x5e, 0x9e,\n\t0x30, 0x1c, 0x5b, 0xd6, 0x7f, 0x28, 0x60, 0x6d, 0x2a, 0xd6, 0x6b, 0x9b, 0x05, 0xf0, 0xe3, 0x54,\n\t0x34, 0x74, 0xbb, 0x68, 0x5c, 0x2d, 0x82, 0xc5, 0x75, 0x23, 0x24, 0x15, 0x0b, 0x83, 0x9c, 0x1d,\n\t0x10, 0x27, 0xca, 0xb4, 0x39, 0x27, 0xd3, 0x64, 0x7f, 0xad, 0xb2, 0x74, 0xce, 0xb5, 0xb9, 0x07,\n\t0x0e, 0xad, 0xea, 0xdf, 0x17, 0xc1, 0x6a, 0x73, 0xbf, 0x8d, 0x09, 0xf3, 0x06, 0xd4, 0x24, 0xc9,\n\t0x5b, 0x7a, 0x08, 0xf2, 0x54, 0x82, 0x22, 0x4a, 0x21, 0x69, 0x2d, 0x22, 0xe3, 0x98, 0x01, 0x8f,\n\t0x41, 0x89, 0x12, 0xe6, 0x7b, 0x2e, 0x23, 0xaf, 0x6c, 0xb7, 0xa7, 0x2e, 0x88, 0xf0, 0xbb, 0xb7,\n\t0x0b, 0x2f, 0x1a, 0x95, 0x73, 0xe6, 0xea, 0x56, 0x65, 0x3c, 0xaa, 0x95, 0x70, 0xca, 0x0f, 0x4f,\n\t0xb8, 0xc3, 0x1d, 0x90, 0x63, 0xa6, 0xe7, 0x13, 0x35, 0x2b, 0x1a, 0xd3, 0xa2, 0x64, 0x1d, 0x0e,\n\t0x5e, 0x8d, 0x6a, 0xe5, 0xa8, 0x43, 0x01, 0xe0, 0x90, 0x0c, 0xf7, 0x40, 0x85, 0xd9, 0xae, 0x35,\n\t0x38, 0x36, 0x68, 0x74, 0xae, 0x2e, 0x0a, 0x03, 0x55, 0x1a, 0x54, 0x3a, 0xd7, 0xce, 0xf1, 0x94,\n\t0x02, 0xd6, 0x40, 0x6e, 0x48, 0x68, 0x97, 0xa9, 0xb9, 0xf5, 0xec, 0x46, 0xa1, 0x55, 0xe0, 0x75,\n\t0x0f, 0x38, 0x80, 0x43, 0x1c, 0x22, 0x00, 0x58, 0xdf, 0xa3, 0xc1, 0x5b, 0xc3, 0x21, 0x4c, 0xfd,\n\t0x4f, 0xb0, 0xfe, 0xe7, 0xab, 0xda, 0x89, 0x51, 0x9c, 0x62, 0x70, 0xbe, 0x69, 0x04, 0xc4, 0xf2,\n\t0xa8, 0x4d, 0x98, 0xba, 0x94, 0xf0, 0x9f, 0xc5, 0x28, 0x4e, 0x31, 0xa0, 0x03, 0x4a, 0x6c, 0xd0,\n\t0x8d, 0x26, 0xcf, 0xd4, 0xbc, 0x58, 0x86, 0x47, 0x73, 0x96, 0xa1, 0x93, 0x48, 0x92, 0x95, 0x58,\n\t0x95, 0xb9, 0x4b, 0xa9, 0x53, 0x86, 0x27, 0xec, 0xeb, 0xe7, 0x0b, 0xe0, 0xee, 0x0c, 0x3d, 0x7c,\n\t0x0c, 0x8a, 0x29, 0xae, 0x5c, 0x93, 0x15, 0x69, 0x5a, 0x4c, 0x49, 0x70, 0x9a, 0xf7, 0x8f, 0x97,\n\t0x85, 0x81, 0xb2, 0x61, 0x9a, 0xc4, 0x0f, 0x48, 0xef, 0xfd, 0x89, 0x4f, 0x98, 0x9a, 0x15, 0x03,\n\t0xfb, 0xdb, 0x72, 0x6b, 0x32, 0x5e, 0xb9, 0x99, 0x36, 0xc5, 0x93, 0x35, 0x92, 0x2d, 0x59, 0xbc,\n\t0x79, 0x4b, 0xea, 0xbf, 0x15, 0xb0, 0x72, 0xc3, 0xbd, 0x03, 0xef, 0x83, 0x25, 0x79, 0xcf, 0xc8,\n\t0x71, 0xde, 0x91, 0xf5, 0x96, 0x24, 0x15, 0x47, 0xe7, 0xd0, 0x00, 0x85, 0x64, 0x0b, 0xc2, 0x2b,\n\t0x61, 0x6b, 0xce, 0x16, 0x4c, 0x7d, 0xe6, 0xad, 0x65, 0x69, 0x5f, 0xc0, 0xf1, 0xfb, 0x4f, 0x5c,\n\t0xe1, 0x73, 0x50, 0x38, 0xa4, 0x84, 0xf5, 0x5d, 0xc2, 0x98, 0xfc, 0xd8, 0xee, 0x45, 0x82, 0x17,\n\t0xd1, 0xc1, 0xd5, 0xa8, 0x06, 0x63, 0xc3, 0x18, 0xc5, 0x89, 0xb2, 0xf5, 0xf4, 0xf4, 0x52, 0xcb,\n\t0x9c, 0x5d, 0x6a, 0x99, 0x8b, 0x4b, 0x2d, 0xf3, 0x75, 0xac, 0x29, 0xa7, 0x63, 0x4d, 0x39, 0x1b,\n\t0x6b, 0xca, 0xc5, 0x58, 0x53, 0x7e, 0x8e, 0x35, 0xe5, 0xdb, 0x2f, 0x2d, 0xf3, 0xa1, 0x3a, 0xfb,\n\t0x37, 0xf4, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x5d, 0x35, 0x6a, 0x0f, 0x60, 0x07, 0x00, 0x00,\n}\n\nfunc (m *APIGroupDiscovery) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *APIGroupDiscovery) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *APIGroupDiscovery) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Versions) > 0 {\n\t\tfor iNdEx := len(m.Versions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Versions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *APIGroupDiscoveryList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *APIGroupDiscoveryList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *APIGroupDiscoveryList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *APIResourceDiscovery) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *APIResourceDiscovery) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *APIResourceDiscovery) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Subresources) > 0 {\n\t\tfor iNdEx := len(m.Subresources) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Subresources[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x42\n\t\t}\n\t}\n\tif len(m.Categories) > 0 {\n\t\tfor iNdEx := len(m.Categories) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Categories[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Categories[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Categories[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x3a\n\t\t}\n\t}\n\tif len(m.ShortNames) > 0 {\n\t\tfor iNdEx := len(m.ShortNames) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.ShortNames[iNdEx])\n\t\t\tcopy(dAtA[i:], m.ShortNames[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ShortNames[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\tif len(m.Verbs) > 0 {\n\t\tfor iNdEx := len(m.Verbs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Verbs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Verbs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verbs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\ti -= len(m.SingularResource)\n\tcopy(dAtA[i:], m.SingularResource)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.SingularResource)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Scope)\n\tcopy(dAtA[i:], m.Scope)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Scope)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.ResponseKind != nil {\n\t\t{\n\t\t\tsize, err := m.ResponseKind.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Resource)\n\tcopy(dAtA[i:], m.Resource)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Resource)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *APISubresourceDiscovery) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *APISubresourceDiscovery) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *APISubresourceDiscovery) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Verbs) > 0 {\n\t\tfor iNdEx := len(m.Verbs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Verbs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Verbs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verbs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif len(m.AcceptedTypes) > 0 {\n\t\tfor iNdEx := len(m.AcceptedTypes) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.AcceptedTypes[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif m.ResponseKind != nil {\n\t\t{\n\t\t\tsize, err := m.ResponseKind.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Subresource)\n\tcopy(dAtA[i:], m.Subresource)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Subresource)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *APIVersionDiscovery) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *APIVersionDiscovery) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *APIVersionDiscovery) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Freshness)\n\tcopy(dAtA[i:], m.Freshness)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Freshness)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.Resources) > 0 {\n\t\tfor iNdEx := len(m.Resources) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Resources[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.Version)\n\tcopy(dAtA[i:], m.Version)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Version)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *APIGroupDiscovery) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Versions) > 0 {\n\t\tfor _, e := range m.Versions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *APIGroupDiscoveryList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *APIResourceDiscovery) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Resource)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.ResponseKind != nil {\n\t\tl = m.ResponseKind.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.Scope)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.SingularResource)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Verbs) > 0 {\n\t\tfor _, s := range m.Verbs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.ShortNames) > 0 {\n\t\tfor _, s := range m.ShortNames {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Categories) > 0 {\n\t\tfor _, s := range m.Categories {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Subresources) > 0 {\n\t\tfor _, e := range m.Subresources {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *APISubresourceDiscovery) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Subresource)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.ResponseKind != nil {\n\t\tl = m.ResponseKind.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.AcceptedTypes) > 0 {\n\t\tfor _, e := range m.AcceptedTypes {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Verbs) > 0 {\n\t\tfor _, s := range m.Verbs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *APIVersionDiscovery) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Version)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Resources) > 0 {\n\t\tfor _, e := range m.Resources {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.Freshness)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *APIGroupDiscovery) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForVersions := \"[]APIVersionDiscovery{\"\n\tfor _, f := range this.Versions {\n\t\trepeatedStringForVersions += strings.Replace(strings.Replace(f.String(), \"APIVersionDiscovery\", \"APIVersionDiscovery\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForVersions += \"}\"\n\ts := strings.Join([]string{`&APIGroupDiscovery{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Versions:` + repeatedStringForVersions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *APIGroupDiscoveryList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]APIGroupDiscovery{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"APIGroupDiscovery\", \"APIGroupDiscovery\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&APIGroupDiscoveryList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *APIResourceDiscovery) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForSubresources := \"[]APISubresourceDiscovery{\"\n\tfor _, f := range this.Subresources {\n\t\trepeatedStringForSubresources += strings.Replace(strings.Replace(f.String(), \"APISubresourceDiscovery\", \"APISubresourceDiscovery\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForSubresources += \"}\"\n\ts := strings.Join([]string{`&APIResourceDiscovery{`,\n\t\t`Resource:` + fmt.Sprintf(\"%v\", this.Resource) + `,`,\n\t\t`ResponseKind:` + strings.Replace(fmt.Sprintf(\"%v\", this.ResponseKind), \"GroupVersionKind\", \"v1.GroupVersionKind\", 1) + `,`,\n\t\t`Scope:` + fmt.Sprintf(\"%v\", this.Scope) + `,`,\n\t\t`SingularResource:` + fmt.Sprintf(\"%v\", this.SingularResource) + `,`,\n\t\t`Verbs:` + fmt.Sprintf(\"%v\", this.Verbs) + `,`,\n\t\t`ShortNames:` + fmt.Sprintf(\"%v\", this.ShortNames) + `,`,\n\t\t`Categories:` + fmt.Sprintf(\"%v\", this.Categories) + `,`,\n\t\t`Subresources:` + repeatedStringForSubresources + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *APISubresourceDiscovery) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForAcceptedTypes := \"[]GroupVersionKind{\"\n\tfor _, f := range this.AcceptedTypes {\n\t\trepeatedStringForAcceptedTypes += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForAcceptedTypes += \"}\"\n\ts := strings.Join([]string{`&APISubresourceDiscovery{`,\n\t\t`Subresource:` + fmt.Sprintf(\"%v\", this.Subresource) + `,`,\n\t\t`ResponseKind:` + strings.Replace(fmt.Sprintf(\"%v\", this.ResponseKind), \"GroupVersionKind\", \"v1.GroupVersionKind\", 1) + `,`,\n\t\t`AcceptedTypes:` + repeatedStringForAcceptedTypes + `,`,\n\t\t`Verbs:` + fmt.Sprintf(\"%v\", this.Verbs) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *APIVersionDiscovery) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForResources := \"[]APIResourceDiscovery{\"\n\tfor _, f := range this.Resources {\n\t\trepeatedStringForResources += strings.Replace(strings.Replace(f.String(), \"APIResourceDiscovery\", \"APIResourceDiscovery\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForResources += \"}\"\n\ts := strings.Join([]string{`&APIVersionDiscovery{`,\n\t\t`Version:` + fmt.Sprintf(\"%v\", this.Version) + `,`,\n\t\t`Resources:` + repeatedStringForResources + `,`,\n\t\t`Freshness:` + fmt.Sprintf(\"%v\", this.Freshness) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *APIGroupDiscovery) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: APIGroupDiscovery: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: APIGroupDiscovery: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Versions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Versions = append(m.Versions, APIVersionDiscovery{})\n\t\t\tif err := m.Versions[len(m.Versions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *APIGroupDiscoveryList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: APIGroupDiscoveryList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: APIGroupDiscoveryList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, APIGroupDiscovery{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *APIResourceDiscovery) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: APIResourceDiscovery: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: APIResourceDiscovery: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resource\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resource = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResponseKind\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ResponseKind == nil {\n\t\t\t\tm.ResponseKind = &v1.GroupVersionKind{}\n\t\t\t}\n\t\t\tif err := m.ResponseKind.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Scope\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Scope = ResourceScope(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SingularResource\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SingularResource = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verbs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verbs = append(m.Verbs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ShortNames\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ShortNames = append(m.ShortNames, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Categories\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Categories = append(m.Categories, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Subresources\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Subresources = append(m.Subresources, APISubresourceDiscovery{})\n\t\t\tif err := m.Subresources[len(m.Subresources)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *APISubresourceDiscovery) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: APISubresourceDiscovery: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: APISubresourceDiscovery: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Subresource\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Subresource = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResponseKind\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ResponseKind == nil {\n\t\t\t\tm.ResponseKind = &v1.GroupVersionKind{}\n\t\t\t}\n\t\t\tif err := m.ResponseKind.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AcceptedTypes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AcceptedTypes = append(m.AcceptedTypes, v1.GroupVersionKind{})\n\t\t\tif err := m.AcceptedTypes[len(m.AcceptedTypes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verbs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verbs = append(m.Verbs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *APIVersionDiscovery) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: APIVersionDiscovery: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: APIVersionDiscovery: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Version\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Version = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resources\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resources = append(m.Resources, APIResourceDiscovery{})\n\t\t\tif err := m.Resources[len(m.Resources)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Freshness\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Freshness = DiscoveryFreshness(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/apidiscovery/v2/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.apidiscovery.v2;\n\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/apidiscovery/v2\";\n\n// APIGroupDiscovery holds information about which resources are being served for all version of the API Group.\n// It contains a list of APIVersionDiscovery that holds a list of APIResourceDiscovery types served for a version.\n// Versions are in descending order of preference, with the first version being the preferred entry.\nmessage APIGroupDiscovery {\n  // Standard object's metadata.\n  // The only field completed will be name. For instance, resourceVersion will be empty.\n  // name is the name of the API group whose discovery information is presented here.\n  // name is allowed to be \"\" to represent the legacy, ungroupified resources.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // versions are the versions supported in this group. They are sorted in descending order of preference,\n  // with the preferred version being the first entry.\n  // +listType=map\n  // +listMapKey=version\n  repeated APIVersionDiscovery versions = 2;\n}\n\n// APIGroupDiscoveryList is a resource containing a list of APIGroupDiscovery.\n// This is one of the types able to be returned from the /api and /apis endpoint and contains an aggregated\n// list of API resources (built-ins, Custom Resource Definitions, resources from aggregated servers)\n// that a cluster supports.\nmessage APIGroupDiscoveryList {\n  // ResourceVersion will not be set, because this does not have a replayable ordering among multiple apiservers.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of groups for discovery. The groups are listed in priority order.\n  repeated APIGroupDiscovery items = 2;\n}\n\n// APIResourceDiscovery provides information about an API resource for discovery.\nmessage APIResourceDiscovery {\n  // resource is the plural name of the resource.  This is used in the URL path and is the unique identifier\n  // for this resource across all versions in the API group.\n  // Resources with non-empty groups are located at /apis/<APIGroupDiscovery.objectMeta.name>/<APIVersionDiscovery.version>/<APIResourceDiscovery.Resource>\n  // Resources with empty groups are located at /api/v1/<APIResourceDiscovery.Resource>\n  optional string resource = 1;\n\n  // responseKind describes the group, version, and kind of the serialization schema for the object type this endpoint typically returns.\n  // APIs may return other objects types at their discretion, such as error conditions, requests for alternate representations, or other operation specific behavior.\n  // This value will be null or empty if an APIService reports subresources but supports no operations on the parent resource\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionKind responseKind = 2;\n\n  // scope indicates the scope of a resource, either Cluster or Namespaced\n  optional string scope = 3;\n\n  // singularResource is the singular name of the resource.  This allows clients to handle plural and singular opaquely.\n  // For many clients the singular form of the resource will be more understandable to users reading messages and should be used when integrating the name of the resource into a sentence.\n  // The command line tool kubectl, for example, allows use of the singular resource name in place of plurals.\n  // The singular form of a resource should always be an optional element - when in doubt use the canonical resource name.\n  optional string singularResource = 4;\n\n  // verbs is a list of supported API operation types (this includes\n  // but is not limited to get, list, watch, create, update, patch,\n  // delete, deletecollection, and proxy).\n  // +listType=set\n  repeated string verbs = 5;\n\n  // shortNames is a list of suggested short names of the resource.\n  // +listType=set\n  repeated string shortNames = 6;\n\n  // categories is a list of the grouped resources this resource belongs to (e.g. 'all').\n  // Clients may use this to simplify acting on multiple resource types at once.\n  // +listType=set\n  repeated string categories = 7;\n\n  // subresources is a list of subresources provided by this resource. Subresources are located at /apis/<APIGroupDiscovery.objectMeta.name>/<APIVersionDiscovery.version>/<APIResourceDiscovery.Resource>/name-of-instance/<APIResourceDiscovery.subresources[i].subresource>\n  // +listType=map\n  // +listMapKey=subresource\n  repeated APISubresourceDiscovery subresources = 8;\n}\n\n// APISubresourceDiscovery provides information about an API subresource for discovery.\nmessage APISubresourceDiscovery {\n  // subresource is the name of the subresource.  This is used in the URL path and is the unique identifier\n  // for this resource across all versions.\n  optional string subresource = 1;\n\n  // responseKind describes the group, version, and kind of the serialization schema for the object type this endpoint typically returns.\n  // Some subresources do not return normal resources, these will have null or empty return types.\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionKind responseKind = 2;\n\n  // acceptedTypes describes the kinds that this endpoint accepts.\n  // Subresources may accept the standard content types or define\n  // custom negotiation schemes. The list may not be exhaustive for\n  // all operations.\n  // +listType=map\n  // +listMapKey=group\n  // +listMapKey=version\n  // +listMapKey=kind\n  repeated .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionKind acceptedTypes = 3;\n\n  // verbs is a list of supported API operation types (this includes\n  // but is not limited to get, list, watch, create, update, patch,\n  // delete, deletecollection, and proxy). Subresources may define\n  // custom verbs outside the standard Kubernetes verb set. Clients\n  // should expect the behavior of standard verbs to align with\n  // Kubernetes interaction conventions.\n  // +listType=set\n  repeated string verbs = 4;\n}\n\n// APIVersionDiscovery holds a list of APIResourceDiscovery types that are served for a particular version within an API Group.\nmessage APIVersionDiscovery {\n  // version is the name of the version within a group version.\n  optional string version = 1;\n\n  // resources is a list of APIResourceDiscovery objects for the corresponding group version.\n  // +listType=map\n  // +listMapKey=resource\n  repeated APIResourceDiscovery resources = 2;\n\n  // freshness marks whether a group version's discovery document is up to date.\n  // \"Current\" indicates the discovery document was recently\n  // refreshed. \"Stale\" indicates the discovery document could not\n  // be retrieved and the returned discovery document may be\n  // significantly out of date. Clients that require the latest\n  // version of the discovery information be retrieved before\n  // performing an operation should not use the aggregated document\n  optional string freshness = 3;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/apidiscovery/v2/register.go",
    "content": "/*\nCopyright 2024 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v2\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name for this API.\nconst GroupName = \"apidiscovery.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v2\"}\n\n// Kind takes an unqualified kind and returns a Group qualified GroupKind\nfunc Kind(kind string) schema.GroupKind {\n\treturn SchemeGroupVersion.WithKind(kind).GroupKind()\n}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// SchemeBuilder installs the api group to a scheme\n\tSchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)\n\t// AddToScheme adds api to a scheme\n\tAddToScheme = SchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&APIGroupDiscoveryList{},\n\t\t&APIGroupDiscovery{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/apidiscovery/v2/types.go",
    "content": "/*\nCopyright 2024 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v2\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.30\n\n// APIGroupDiscoveryList is a resource containing a list of APIGroupDiscovery.\n// This is one of the types able to be returned from the /api and /apis endpoint and contains an aggregated\n// list of API resources (built-ins, Custom Resource Definitions, resources from aggregated servers)\n// that a cluster supports.\ntype APIGroupDiscoveryList struct {\n\tv1.TypeMeta `json:\",inline\"`\n\t// ResourceVersion will not be set, because this does not have a replayable ordering among multiple apiservers.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tv1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// items is the list of groups for discovery. The groups are listed in priority order.\n\tItems []APIGroupDiscovery `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.30\n\n// APIGroupDiscovery holds information about which resources are being served for all version of the API Group.\n// It contains a list of APIVersionDiscovery that holds a list of APIResourceDiscovery types served for a version.\n// Versions are in descending order of preference, with the first version being the preferred entry.\ntype APIGroupDiscovery struct {\n\tv1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// The only field completed will be name. For instance, resourceVersion will be empty.\n\t// name is the name of the API group whose discovery information is presented here.\n\t// name is allowed to be \"\" to represent the legacy, ungroupified resources.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tv1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// versions are the versions supported in this group. They are sorted in descending order of preference,\n\t// with the preferred version being the first entry.\n\t// +listType=map\n\t// +listMapKey=version\n\tVersions []APIVersionDiscovery `json:\"versions,omitempty\" protobuf:\"bytes,2,rep,name=versions\"`\n}\n\n// APIVersionDiscovery holds a list of APIResourceDiscovery types that are served for a particular version within an API Group.\ntype APIVersionDiscovery struct {\n\t// version is the name of the version within a group version.\n\tVersion string `json:\"version\" protobuf:\"bytes,1,opt,name=version\"`\n\t// resources is a list of APIResourceDiscovery objects for the corresponding group version.\n\t// +listType=map\n\t// +listMapKey=resource\n\tResources []APIResourceDiscovery `json:\"resources,omitempty\" protobuf:\"bytes,2,rep,name=resources\"`\n\t// freshness marks whether a group version's discovery document is up to date.\n\t// \"Current\" indicates the discovery document was recently\n\t// refreshed. \"Stale\" indicates the discovery document could not\n\t// be retrieved and the returned discovery document may be\n\t// significantly out of date. Clients that require the latest\n\t// version of the discovery information be retrieved before\n\t// performing an operation should not use the aggregated document\n\tFreshness DiscoveryFreshness `json:\"freshness,omitempty\" protobuf:\"bytes,3,opt,name=freshness\"`\n}\n\n// APIResourceDiscovery provides information about an API resource for discovery.\ntype APIResourceDiscovery struct {\n\t// resource is the plural name of the resource.  This is used in the URL path and is the unique identifier\n\t// for this resource across all versions in the API group.\n\t// Resources with non-empty groups are located at /apis/<APIGroupDiscovery.objectMeta.name>/<APIVersionDiscovery.version>/<APIResourceDiscovery.Resource>\n\t// Resources with empty groups are located at /api/v1/<APIResourceDiscovery.Resource>\n\tResource string `json:\"resource\" protobuf:\"bytes,1,opt,name=resource\"`\n\t// responseKind describes the group, version, and kind of the serialization schema for the object type this endpoint typically returns.\n\t// APIs may return other objects types at their discretion, such as error conditions, requests for alternate representations, or other operation specific behavior.\n\t// This value will be null or empty if an APIService reports subresources but supports no operations on the parent resource\n\tResponseKind *v1.GroupVersionKind `json:\"responseKind,omitempty\" protobuf:\"bytes,2,opt,name=responseKind\"`\n\t// scope indicates the scope of a resource, either Cluster or Namespaced\n\tScope ResourceScope `json:\"scope\" protobuf:\"bytes,3,opt,name=scope\"`\n\t// singularResource is the singular name of the resource.  This allows clients to handle plural and singular opaquely.\n\t// For many clients the singular form of the resource will be more understandable to users reading messages and should be used when integrating the name of the resource into a sentence.\n\t// The command line tool kubectl, for example, allows use of the singular resource name in place of plurals.\n\t// The singular form of a resource should always be an optional element - when in doubt use the canonical resource name.\n\tSingularResource string `json:\"singularResource\" protobuf:\"bytes,4,opt,name=singularResource\"`\n\t// verbs is a list of supported API operation types (this includes\n\t// but is not limited to get, list, watch, create, update, patch,\n\t// delete, deletecollection, and proxy).\n\t// +listType=set\n\tVerbs []string `json:\"verbs\" protobuf:\"bytes,5,opt,name=verbs\"`\n\t// shortNames is a list of suggested short names of the resource.\n\t// +listType=set\n\tShortNames []string `json:\"shortNames,omitempty\" protobuf:\"bytes,6,rep,name=shortNames\"`\n\t// categories is a list of the grouped resources this resource belongs to (e.g. 'all').\n\t// Clients may use this to simplify acting on multiple resource types at once.\n\t// +listType=set\n\tCategories []string `json:\"categories,omitempty\" protobuf:\"bytes,7,rep,name=categories\"`\n\t// subresources is a list of subresources provided by this resource. Subresources are located at /apis/<APIGroupDiscovery.objectMeta.name>/<APIVersionDiscovery.version>/<APIResourceDiscovery.Resource>/name-of-instance/<APIResourceDiscovery.subresources[i].subresource>\n\t// +listType=map\n\t// +listMapKey=subresource\n\tSubresources []APISubresourceDiscovery `json:\"subresources,omitempty\" protobuf:\"bytes,8,rep,name=subresources\"`\n}\n\n// ResourceScope is an enum defining the different scopes available to a resource.\ntype ResourceScope string\n\nconst (\n\tScopeCluster   ResourceScope = \"Cluster\"\n\tScopeNamespace ResourceScope = \"Namespaced\"\n)\n\n// DiscoveryFreshness is an enum defining whether the Discovery document published by an apiservice is up to date (fresh).\ntype DiscoveryFreshness string\n\nconst (\n\tDiscoveryFreshnessCurrent DiscoveryFreshness = \"Current\"\n\tDiscoveryFreshnessStale   DiscoveryFreshness = \"Stale\"\n)\n\n// APISubresourceDiscovery provides information about an API subresource for discovery.\ntype APISubresourceDiscovery struct {\n\t// subresource is the name of the subresource.  This is used in the URL path and is the unique identifier\n\t// for this resource across all versions.\n\tSubresource string `json:\"subresource\" protobuf:\"bytes,1,opt,name=subresource\"`\n\t// responseKind describes the group, version, and kind of the serialization schema for the object type this endpoint typically returns.\n\t// Some subresources do not return normal resources, these will have null or empty return types.\n\tResponseKind *v1.GroupVersionKind `json:\"responseKind,omitempty\" protobuf:\"bytes,2,opt,name=responseKind\"`\n\t// acceptedTypes describes the kinds that this endpoint accepts.\n\t// Subresources may accept the standard content types or define\n\t// custom negotiation schemes. The list may not be exhaustive for\n\t// all operations.\n\t// +listType=map\n\t// +listMapKey=group\n\t// +listMapKey=version\n\t// +listMapKey=kind\n\tAcceptedTypes []v1.GroupVersionKind `json:\"acceptedTypes,omitempty\" protobuf:\"bytes,3,rep,name=acceptedTypes\"`\n\t// verbs is a list of supported API operation types (this includes\n\t// but is not limited to get, list, watch, create, update, patch,\n\t// delete, deletecollection, and proxy). Subresources may define\n\t// custom verbs outside the standard Kubernetes verb set. Clients\n\t// should expect the behavior of standard verbs to align with\n\t// Kubernetes interaction conventions.\n\t// +listType=set\n\tVerbs []string `json:\"verbs\" protobuf:\"bytes,4,opt,name=verbs\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/apidiscovery/v2/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v2\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *APIGroupDiscovery) DeepCopyInto(out *APIGroupDiscovery) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Versions != nil {\n\t\tin, out := &in.Versions, &out.Versions\n\t\t*out = make([]APIVersionDiscovery, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIGroupDiscovery.\nfunc (in *APIGroupDiscovery) DeepCopy() *APIGroupDiscovery {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(APIGroupDiscovery)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *APIGroupDiscovery) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *APIGroupDiscoveryList) DeepCopyInto(out *APIGroupDiscoveryList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]APIGroupDiscovery, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIGroupDiscoveryList.\nfunc (in *APIGroupDiscoveryList) DeepCopy() *APIGroupDiscoveryList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(APIGroupDiscoveryList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *APIGroupDiscoveryList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *APIResourceDiscovery) DeepCopyInto(out *APIResourceDiscovery) {\n\t*out = *in\n\tif in.ResponseKind != nil {\n\t\tin, out := &in.ResponseKind, &out.ResponseKind\n\t\t*out = new(v1.GroupVersionKind)\n\t\t**out = **in\n\t}\n\tif in.Verbs != nil {\n\t\tin, out := &in.Verbs, &out.Verbs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ShortNames != nil {\n\t\tin, out := &in.ShortNames, &out.ShortNames\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Categories != nil {\n\t\tin, out := &in.Categories, &out.Categories\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Subresources != nil {\n\t\tin, out := &in.Subresources, &out.Subresources\n\t\t*out = make([]APISubresourceDiscovery, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIResourceDiscovery.\nfunc (in *APIResourceDiscovery) DeepCopy() *APIResourceDiscovery {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(APIResourceDiscovery)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *APISubresourceDiscovery) DeepCopyInto(out *APISubresourceDiscovery) {\n\t*out = *in\n\tif in.ResponseKind != nil {\n\t\tin, out := &in.ResponseKind, &out.ResponseKind\n\t\t*out = new(v1.GroupVersionKind)\n\t\t**out = **in\n\t}\n\tif in.AcceptedTypes != nil {\n\t\tin, out := &in.AcceptedTypes, &out.AcceptedTypes\n\t\t*out = make([]v1.GroupVersionKind, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Verbs != nil {\n\t\tin, out := &in.Verbs, &out.Verbs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APISubresourceDiscovery.\nfunc (in *APISubresourceDiscovery) DeepCopy() *APISubresourceDiscovery {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(APISubresourceDiscovery)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *APIVersionDiscovery) DeepCopyInto(out *APIVersionDiscovery) {\n\t*out = *in\n\tif in.Resources != nil {\n\t\tin, out := &in.Resources, &out.Resources\n\t\t*out = make([]APIResourceDiscovery, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIVersionDiscovery.\nfunc (in *APIVersionDiscovery) DeepCopy() *APIVersionDiscovery {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(APIVersionDiscovery)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/apidiscovery/v2/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v2\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *APIGroupDiscovery) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 30\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *APIGroupDiscoveryList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 30\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/apidiscovery/v2beta1/doc.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\n// +groupName=apidiscovery.k8s.io\n\npackage v2beta1 // import \"k8s.io/api/apidiscovery/v2beta1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/apidiscovery/v2beta1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/apidiscovery/v2beta1/generated.proto\n\npackage v2beta1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *APIGroupDiscovery) Reset()      { *m = APIGroupDiscovery{} }\nfunc (*APIGroupDiscovery) ProtoMessage() {}\nfunc (*APIGroupDiscovery) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_48661e6ba3d554f3, []int{0}\n}\nfunc (m *APIGroupDiscovery) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *APIGroupDiscovery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *APIGroupDiscovery) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_APIGroupDiscovery.Merge(m, src)\n}\nfunc (m *APIGroupDiscovery) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *APIGroupDiscovery) XXX_DiscardUnknown() {\n\txxx_messageInfo_APIGroupDiscovery.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_APIGroupDiscovery proto.InternalMessageInfo\n\nfunc (m *APIGroupDiscoveryList) Reset()      { *m = APIGroupDiscoveryList{} }\nfunc (*APIGroupDiscoveryList) ProtoMessage() {}\nfunc (*APIGroupDiscoveryList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_48661e6ba3d554f3, []int{1}\n}\nfunc (m *APIGroupDiscoveryList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *APIGroupDiscoveryList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *APIGroupDiscoveryList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_APIGroupDiscoveryList.Merge(m, src)\n}\nfunc (m *APIGroupDiscoveryList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *APIGroupDiscoveryList) XXX_DiscardUnknown() {\n\txxx_messageInfo_APIGroupDiscoveryList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_APIGroupDiscoveryList proto.InternalMessageInfo\n\nfunc (m *APIResourceDiscovery) Reset()      { *m = APIResourceDiscovery{} }\nfunc (*APIResourceDiscovery) ProtoMessage() {}\nfunc (*APIResourceDiscovery) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_48661e6ba3d554f3, []int{2}\n}\nfunc (m *APIResourceDiscovery) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *APIResourceDiscovery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *APIResourceDiscovery) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_APIResourceDiscovery.Merge(m, src)\n}\nfunc (m *APIResourceDiscovery) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *APIResourceDiscovery) XXX_DiscardUnknown() {\n\txxx_messageInfo_APIResourceDiscovery.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_APIResourceDiscovery proto.InternalMessageInfo\n\nfunc (m *APISubresourceDiscovery) Reset()      { *m = APISubresourceDiscovery{} }\nfunc (*APISubresourceDiscovery) ProtoMessage() {}\nfunc (*APISubresourceDiscovery) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_48661e6ba3d554f3, []int{3}\n}\nfunc (m *APISubresourceDiscovery) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *APISubresourceDiscovery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *APISubresourceDiscovery) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_APISubresourceDiscovery.Merge(m, src)\n}\nfunc (m *APISubresourceDiscovery) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *APISubresourceDiscovery) XXX_DiscardUnknown() {\n\txxx_messageInfo_APISubresourceDiscovery.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_APISubresourceDiscovery proto.InternalMessageInfo\n\nfunc (m *APIVersionDiscovery) Reset()      { *m = APIVersionDiscovery{} }\nfunc (*APIVersionDiscovery) ProtoMessage() {}\nfunc (*APIVersionDiscovery) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_48661e6ba3d554f3, []int{4}\n}\nfunc (m *APIVersionDiscovery) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *APIVersionDiscovery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *APIVersionDiscovery) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_APIVersionDiscovery.Merge(m, src)\n}\nfunc (m *APIVersionDiscovery) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *APIVersionDiscovery) XXX_DiscardUnknown() {\n\txxx_messageInfo_APIVersionDiscovery.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_APIVersionDiscovery proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*APIGroupDiscovery)(nil), \"k8s.io.api.apidiscovery.v2beta1.APIGroupDiscovery\")\n\tproto.RegisterType((*APIGroupDiscoveryList)(nil), \"k8s.io.api.apidiscovery.v2beta1.APIGroupDiscoveryList\")\n\tproto.RegisterType((*APIResourceDiscovery)(nil), \"k8s.io.api.apidiscovery.v2beta1.APIResourceDiscovery\")\n\tproto.RegisterType((*APISubresourceDiscovery)(nil), \"k8s.io.api.apidiscovery.v2beta1.APISubresourceDiscovery\")\n\tproto.RegisterType((*APIVersionDiscovery)(nil), \"k8s.io.api.apidiscovery.v2beta1.APIVersionDiscovery\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/apidiscovery/v2beta1/generated.proto\", fileDescriptor_48661e6ba3d554f3)\n}\n\nvar fileDescriptor_48661e6ba3d554f3 = []byte{\n\t// 740 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x55, 0xcd, 0x4e, 0xdb, 0x4a,\n\t0x18, 0x8d, 0x09, 0xb9, 0x24, 0x93, 0xe4, 0xde, 0x30, 0x80, 0xae, 0xc5, 0xc2, 0x46, 0xd9, 0x5c,\n\t0xae, 0xd4, 0x8e, 0x4b, 0x04, 0x88, 0x6d, 0x52, 0x68, 0x15, 0xf5, 0x0f, 0x4d, 0x2a, 0x2a, 0x55,\n\t0x5d, 0xd4, 0x71, 0x06, 0xc7, 0x85, 0xd8, 0xd6, 0xcc, 0x24, 0x12, 0xbb, 0x3e, 0x42, 0xdf, 0xa1,\n\t0x2f, 0xc3, 0xaa, 0x62, 0xd1, 0x05, 0xdd, 0x44, 0x25, 0x7d, 0x80, 0xee, 0x59, 0x55, 0x33, 0x1e,\n\t0xff, 0x84, 0x80, 0x88, 0xba, 0xe8, 0x22, 0x52, 0x7c, 0xe6, 0x9c, 0xf3, 0x7d, 0xe7, 0xcb, 0xe7,\n\t0x09, 0xb0, 0x4e, 0xf6, 0x18, 0xf2, 0x02, 0xcb, 0x0e, 0x3d, 0xf1, 0xe9, 0x79, 0xcc, 0x09, 0x46,\n\t0x84, 0x9e, 0x59, 0xa3, 0x46, 0x97, 0x70, 0x7b, 0xcb, 0x72, 0x89, 0x4f, 0xa8, 0xcd, 0x49, 0x0f,\n\t0x85, 0x34, 0xe0, 0x01, 0x34, 0x23, 0x01, 0xb2, 0x43, 0x0f, 0x65, 0x05, 0x48, 0x09, 0xd6, 0x1f,\n\t0xba, 0x1e, 0xef, 0x0f, 0xbb, 0xc8, 0x09, 0x06, 0x96, 0x1b, 0xb8, 0x81, 0x25, 0x75, 0xdd, 0xe1,\n\t0xb1, 0x7c, 0x92, 0x0f, 0xf2, 0x5b, 0xe4, 0xb7, 0xbe, 0x9d, 0x36, 0x30, 0xb0, 0x9d, 0xbe, 0xe7,\n\t0x8b, 0xe2, 0xe1, 0x89, 0x2b, 0x00, 0x66, 0x0d, 0x08, 0xb7, 0xad, 0xd1, 0x4c, 0x17, 0xeb, 0xd6,\n\t0x5d, 0x2a, 0x3a, 0xf4, 0xb9, 0x37, 0x20, 0x33, 0x82, 0xdd, 0xfb, 0x04, 0xcc, 0xe9, 0x93, 0x81,\n\t0x7d, 0x53, 0x57, 0xff, 0xa6, 0x81, 0xe5, 0xe6, 0x61, 0xfb, 0x29, 0x0d, 0x86, 0xe1, 0x7e, 0x9c,\n\t0x15, 0xbe, 0x07, 0x45, 0xd1, 0x59, 0xcf, 0xe6, 0xb6, 0xae, 0x6d, 0x68, 0x9b, 0xe5, 0xc6, 0x23,\n\t0x94, 0xce, 0x25, 0x29, 0x80, 0xc2, 0x13, 0x57, 0x00, 0x0c, 0x09, 0x36, 0x1a, 0x6d, 0xa1, 0x57,\n\t0xdd, 0x0f, 0xc4, 0xe1, 0x2f, 0x08, 0xb7, 0x5b, 0xf0, 0x7c, 0x6c, 0xe6, 0x26, 0x63, 0x13, 0xa4,\n\t0x18, 0x4e, 0x5c, 0x61, 0x17, 0x14, 0x47, 0x84, 0x32, 0x2f, 0xf0, 0x99, 0xbe, 0xb0, 0x91, 0xdf,\n\t0x2c, 0x37, 0xb6, 0xd1, 0x3d, 0x93, 0x47, 0xcd, 0xc3, 0xf6, 0x51, 0xa4, 0x49, 0x3a, 0x6d, 0xd5,\n\t0x54, 0x95, 0xa2, 0x3a, 0x61, 0x38, 0xf1, 0xad, 0x7f, 0xd1, 0xc0, 0xda, 0x4c, 0xb6, 0xe7, 0x1e,\n\t0xe3, 0xf0, 0xdd, 0x4c, 0x3e, 0x34, 0x5f, 0x3e, 0xa1, 0x96, 0xe9, 0x92, 0xba, 0x31, 0x92, 0xc9,\n\t0xf6, 0x06, 0x14, 0x3c, 0x4e, 0x06, 0x71, 0xb0, 0xc6, 0x3c, 0xc1, 0xa6, 0x9b, 0x6c, 0x55, 0x95,\n\t0x7d, 0xa1, 0x2d, 0x8c, 0x70, 0xe4, 0x57, 0xff, 0xbc, 0x08, 0x56, 0x9b, 0x87, 0x6d, 0x4c, 0x58,\n\t0x30, 0xa4, 0x0e, 0x49, 0x7f, 0xaf, 0x07, 0xa0, 0x48, 0x15, 0x28, 0xf3, 0x94, 0xd2, 0xfe, 0x62,\n\t0x32, 0x4e, 0x18, 0xf0, 0x14, 0x54, 0x28, 0x61, 0x61, 0xe0, 0x33, 0xf2, 0xcc, 0xf3, 0x7b, 0xfa,\n\t0x82, 0x9c, 0xc0, 0xee, 0x7c, 0x13, 0x90, 0x8d, 0xaa, 0x61, 0x0b, 0x75, 0xab, 0x36, 0x19, 0x9b,\n\t0x15, 0x9c, 0xf1, 0xc3, 0x53, 0xee, 0x70, 0x1b, 0x14, 0x98, 0x13, 0x84, 0x44, 0xcf, 0xcb, 0xc6,\n\t0x8c, 0x38, 0x59, 0x47, 0x80, 0xd7, 0x63, 0xb3, 0x1a, 0x77, 0x28, 0x01, 0x1c, 0x91, 0xe1, 0x3e,\n\t0xa8, 0x31, 0xcf, 0x77, 0x87, 0xa7, 0x36, 0x8d, 0xcf, 0xf5, 0x45, 0x69, 0xa0, 0x2b, 0x83, 0x5a,\n\t0xe7, 0xc6, 0x39, 0x9e, 0x51, 0x40, 0x13, 0x14, 0x46, 0x84, 0x76, 0x99, 0x5e, 0xd8, 0xc8, 0x6f,\n\t0x96, 0x5a, 0x25, 0x51, 0xf7, 0x48, 0x00, 0x38, 0xc2, 0x21, 0x02, 0x80, 0xf5, 0x03, 0xca, 0x5f,\n\t0xda, 0x03, 0xc2, 0xf4, 0xbf, 0x24, 0xeb, 0x6f, 0xb1, 0xb4, 0x9d, 0x04, 0xc5, 0x19, 0x86, 0xe0,\n\t0x3b, 0x36, 0x27, 0x6e, 0x40, 0x3d, 0xc2, 0xf4, 0xa5, 0x94, 0xff, 0x38, 0x41, 0x71, 0x86, 0x01,\n\t0x29, 0xa8, 0xb0, 0x61, 0x37, 0x9e, 0x3c, 0xd3, 0x8b, 0x72, 0x23, 0xf6, 0xe6, 0xd9, 0x88, 0x4e,\n\t0xaa, 0x4b, 0xf7, 0x62, 0x55, 0x85, 0xaf, 0x64, 0x4e, 0x19, 0x9e, 0xaa, 0x51, 0xff, 0xba, 0x00,\n\t0xfe, 0xbd, 0x43, 0x0f, 0x77, 0x40, 0x39, 0xc3, 0x55, 0xbb, 0xb2, 0xa2, 0x4c, 0xcb, 0x19, 0x09,\n\t0xce, 0xf2, 0xfe, 0xf0, 0xc6, 0x30, 0x50, 0xb5, 0x1d, 0x87, 0x84, 0x9c, 0xf4, 0x5e, 0x9f, 0x85,\n\t0x84, 0xe9, 0x79, 0x39, 0xb5, 0xdf, 0x2d, 0xb7, 0xa6, 0xe2, 0x55, 0x9b, 0x59, 0x53, 0x3c, 0x5d,\n\t0x23, 0x5d, 0x95, 0xc5, 0xdb, 0x57, 0xa5, 0xfe, 0x53, 0x03, 0x2b, 0xb7, 0xdc, 0x40, 0xf0, 0x7f,\n\t0xb0, 0xa4, 0x6e, 0x1c, 0x35, 0xce, 0x7f, 0x54, 0xbd, 0x25, 0x45, 0xc5, 0xf1, 0x39, 0x3c, 0x06,\n\t0xa5, 0x74, 0x15, 0xa2, 0xcb, 0x61, 0x67, 0x9e, 0x55, 0x98, 0x79, 0xe1, 0x5b, 0xcb, 0xaa, 0x46,\n\t0x09, 0x27, 0x4b, 0x90, 0x5a, 0xc3, 0x03, 0x50, 0x3a, 0xa6, 0x84, 0xf5, 0x7d, 0xc2, 0x98, 0x7a,\n\t0xed, 0xfe, 0x8b, 0x05, 0x4f, 0xe2, 0x83, 0xeb, 0xb1, 0x09, 0x13, 0xc3, 0x04, 0xc5, 0xa9, 0xb2,\n\t0x75, 0x70, 0x7e, 0x65, 0xe4, 0x2e, 0xae, 0x8c, 0xdc, 0xe5, 0x95, 0x91, 0xfb, 0x38, 0x31, 0xb4,\n\t0xf3, 0x89, 0xa1, 0x5d, 0x4c, 0x0c, 0xed, 0x72, 0x62, 0x68, 0xdf, 0x27, 0x86, 0xf6, 0xe9, 0x87,\n\t0x91, 0x7b, 0x6b, 0xde, 0xf3, 0x0f, 0xfb, 0x2b, 0x00, 0x00, 0xff, 0xff, 0xe4, 0x85, 0x3b, 0x06,\n\t0x83, 0x07, 0x00, 0x00,\n}\n\nfunc (m *APIGroupDiscovery) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *APIGroupDiscovery) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *APIGroupDiscovery) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Versions) > 0 {\n\t\tfor iNdEx := len(m.Versions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Versions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *APIGroupDiscoveryList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *APIGroupDiscoveryList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *APIGroupDiscoveryList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *APIResourceDiscovery) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *APIResourceDiscovery) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *APIResourceDiscovery) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Subresources) > 0 {\n\t\tfor iNdEx := len(m.Subresources) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Subresources[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x42\n\t\t}\n\t}\n\tif len(m.Categories) > 0 {\n\t\tfor iNdEx := len(m.Categories) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Categories[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Categories[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Categories[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x3a\n\t\t}\n\t}\n\tif len(m.ShortNames) > 0 {\n\t\tfor iNdEx := len(m.ShortNames) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.ShortNames[iNdEx])\n\t\t\tcopy(dAtA[i:], m.ShortNames[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ShortNames[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\tif len(m.Verbs) > 0 {\n\t\tfor iNdEx := len(m.Verbs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Verbs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Verbs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verbs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\ti -= len(m.SingularResource)\n\tcopy(dAtA[i:], m.SingularResource)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.SingularResource)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Scope)\n\tcopy(dAtA[i:], m.Scope)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Scope)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.ResponseKind != nil {\n\t\t{\n\t\t\tsize, err := m.ResponseKind.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Resource)\n\tcopy(dAtA[i:], m.Resource)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Resource)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *APISubresourceDiscovery) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *APISubresourceDiscovery) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *APISubresourceDiscovery) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Verbs) > 0 {\n\t\tfor iNdEx := len(m.Verbs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Verbs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Verbs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verbs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif len(m.AcceptedTypes) > 0 {\n\t\tfor iNdEx := len(m.AcceptedTypes) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.AcceptedTypes[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif m.ResponseKind != nil {\n\t\t{\n\t\t\tsize, err := m.ResponseKind.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Subresource)\n\tcopy(dAtA[i:], m.Subresource)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Subresource)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *APIVersionDiscovery) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *APIVersionDiscovery) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *APIVersionDiscovery) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Freshness)\n\tcopy(dAtA[i:], m.Freshness)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Freshness)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.Resources) > 0 {\n\t\tfor iNdEx := len(m.Resources) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Resources[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.Version)\n\tcopy(dAtA[i:], m.Version)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Version)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *APIGroupDiscovery) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Versions) > 0 {\n\t\tfor _, e := range m.Versions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *APIGroupDiscoveryList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *APIResourceDiscovery) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Resource)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.ResponseKind != nil {\n\t\tl = m.ResponseKind.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.Scope)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.SingularResource)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Verbs) > 0 {\n\t\tfor _, s := range m.Verbs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.ShortNames) > 0 {\n\t\tfor _, s := range m.ShortNames {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Categories) > 0 {\n\t\tfor _, s := range m.Categories {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Subresources) > 0 {\n\t\tfor _, e := range m.Subresources {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *APISubresourceDiscovery) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Subresource)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.ResponseKind != nil {\n\t\tl = m.ResponseKind.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.AcceptedTypes) > 0 {\n\t\tfor _, e := range m.AcceptedTypes {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Verbs) > 0 {\n\t\tfor _, s := range m.Verbs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *APIVersionDiscovery) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Version)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Resources) > 0 {\n\t\tfor _, e := range m.Resources {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.Freshness)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *APIGroupDiscovery) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForVersions := \"[]APIVersionDiscovery{\"\n\tfor _, f := range this.Versions {\n\t\trepeatedStringForVersions += strings.Replace(strings.Replace(f.String(), \"APIVersionDiscovery\", \"APIVersionDiscovery\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForVersions += \"}\"\n\ts := strings.Join([]string{`&APIGroupDiscovery{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Versions:` + repeatedStringForVersions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *APIGroupDiscoveryList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]APIGroupDiscovery{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"APIGroupDiscovery\", \"APIGroupDiscovery\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&APIGroupDiscoveryList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *APIResourceDiscovery) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForSubresources := \"[]APISubresourceDiscovery{\"\n\tfor _, f := range this.Subresources {\n\t\trepeatedStringForSubresources += strings.Replace(strings.Replace(f.String(), \"APISubresourceDiscovery\", \"APISubresourceDiscovery\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForSubresources += \"}\"\n\ts := strings.Join([]string{`&APIResourceDiscovery{`,\n\t\t`Resource:` + fmt.Sprintf(\"%v\", this.Resource) + `,`,\n\t\t`ResponseKind:` + strings.Replace(fmt.Sprintf(\"%v\", this.ResponseKind), \"GroupVersionKind\", \"v1.GroupVersionKind\", 1) + `,`,\n\t\t`Scope:` + fmt.Sprintf(\"%v\", this.Scope) + `,`,\n\t\t`SingularResource:` + fmt.Sprintf(\"%v\", this.SingularResource) + `,`,\n\t\t`Verbs:` + fmt.Sprintf(\"%v\", this.Verbs) + `,`,\n\t\t`ShortNames:` + fmt.Sprintf(\"%v\", this.ShortNames) + `,`,\n\t\t`Categories:` + fmt.Sprintf(\"%v\", this.Categories) + `,`,\n\t\t`Subresources:` + repeatedStringForSubresources + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *APISubresourceDiscovery) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForAcceptedTypes := \"[]GroupVersionKind{\"\n\tfor _, f := range this.AcceptedTypes {\n\t\trepeatedStringForAcceptedTypes += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForAcceptedTypes += \"}\"\n\ts := strings.Join([]string{`&APISubresourceDiscovery{`,\n\t\t`Subresource:` + fmt.Sprintf(\"%v\", this.Subresource) + `,`,\n\t\t`ResponseKind:` + strings.Replace(fmt.Sprintf(\"%v\", this.ResponseKind), \"GroupVersionKind\", \"v1.GroupVersionKind\", 1) + `,`,\n\t\t`AcceptedTypes:` + repeatedStringForAcceptedTypes + `,`,\n\t\t`Verbs:` + fmt.Sprintf(\"%v\", this.Verbs) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *APIVersionDiscovery) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForResources := \"[]APIResourceDiscovery{\"\n\tfor _, f := range this.Resources {\n\t\trepeatedStringForResources += strings.Replace(strings.Replace(f.String(), \"APIResourceDiscovery\", \"APIResourceDiscovery\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForResources += \"}\"\n\ts := strings.Join([]string{`&APIVersionDiscovery{`,\n\t\t`Version:` + fmt.Sprintf(\"%v\", this.Version) + `,`,\n\t\t`Resources:` + repeatedStringForResources + `,`,\n\t\t`Freshness:` + fmt.Sprintf(\"%v\", this.Freshness) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *APIGroupDiscovery) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: APIGroupDiscovery: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: APIGroupDiscovery: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Versions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Versions = append(m.Versions, APIVersionDiscovery{})\n\t\t\tif err := m.Versions[len(m.Versions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *APIGroupDiscoveryList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: APIGroupDiscoveryList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: APIGroupDiscoveryList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, APIGroupDiscovery{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *APIResourceDiscovery) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: APIResourceDiscovery: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: APIResourceDiscovery: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resource\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resource = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResponseKind\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ResponseKind == nil {\n\t\t\t\tm.ResponseKind = &v1.GroupVersionKind{}\n\t\t\t}\n\t\t\tif err := m.ResponseKind.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Scope\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Scope = ResourceScope(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SingularResource\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SingularResource = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verbs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verbs = append(m.Verbs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ShortNames\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ShortNames = append(m.ShortNames, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Categories\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Categories = append(m.Categories, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Subresources\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Subresources = append(m.Subresources, APISubresourceDiscovery{})\n\t\t\tif err := m.Subresources[len(m.Subresources)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *APISubresourceDiscovery) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: APISubresourceDiscovery: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: APISubresourceDiscovery: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Subresource\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Subresource = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResponseKind\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ResponseKind == nil {\n\t\t\t\tm.ResponseKind = &v1.GroupVersionKind{}\n\t\t\t}\n\t\t\tif err := m.ResponseKind.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AcceptedTypes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AcceptedTypes = append(m.AcceptedTypes, v1.GroupVersionKind{})\n\t\t\tif err := m.AcceptedTypes[len(m.AcceptedTypes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verbs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verbs = append(m.Verbs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *APIVersionDiscovery) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: APIVersionDiscovery: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: APIVersionDiscovery: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Version\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Version = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resources\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resources = append(m.Resources, APIResourceDiscovery{})\n\t\t\tif err := m.Resources[len(m.Resources)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Freshness\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Freshness = DiscoveryFreshness(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/apidiscovery/v2beta1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.apidiscovery.v2beta1;\n\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/apidiscovery/v2beta1\";\n\n// APIGroupDiscovery holds information about which resources are being served for all version of the API Group.\n// It contains a list of APIVersionDiscovery that holds a list of APIResourceDiscovery types served for a version.\n// Versions are in descending order of preference, with the first version being the preferred entry.\nmessage APIGroupDiscovery {\n  // Standard object's metadata.\n  // The only field completed will be name. For instance, resourceVersion will be empty.\n  // name is the name of the API group whose discovery information is presented here.\n  // name is allowed to be \"\" to represent the legacy, ungroupified resources.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // versions are the versions supported in this group. They are sorted in descending order of preference,\n  // with the preferred version being the first entry.\n  // +listType=map\n  // +listMapKey=version\n  repeated APIVersionDiscovery versions = 2;\n}\n\n// APIGroupDiscoveryList is a resource containing a list of APIGroupDiscovery.\n// This is one of the types able to be returned from the /api and /apis endpoint and contains an aggregated\n// list of API resources (built-ins, Custom Resource Definitions, resources from aggregated servers)\n// that a cluster supports.\nmessage APIGroupDiscoveryList {\n  // ResourceVersion will not be set, because this does not have a replayable ordering among multiple apiservers.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of groups for discovery. The groups are listed in priority order.\n  repeated APIGroupDiscovery items = 2;\n}\n\n// APIResourceDiscovery provides information about an API resource for discovery.\nmessage APIResourceDiscovery {\n  // resource is the plural name of the resource.  This is used in the URL path and is the unique identifier\n  // for this resource across all versions in the API group.\n  // Resources with non-empty groups are located at /apis/<APIGroupDiscovery.objectMeta.name>/<APIVersionDiscovery.version>/<APIResourceDiscovery.Resource>\n  // Resources with empty groups are located at /api/v1/<APIResourceDiscovery.Resource>\n  optional string resource = 1;\n\n  // responseKind describes the group, version, and kind of the serialization schema for the object type this endpoint typically returns.\n  // APIs may return other objects types at their discretion, such as error conditions, requests for alternate representations, or other operation specific behavior.\n  // This value will be null or empty if an APIService reports subresources but supports no operations on the parent resource\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionKind responseKind = 2;\n\n  // scope indicates the scope of a resource, either Cluster or Namespaced\n  optional string scope = 3;\n\n  // singularResource is the singular name of the resource.  This allows clients to handle plural and singular opaquely.\n  // For many clients the singular form of the resource will be more understandable to users reading messages and should be used when integrating the name of the resource into a sentence.\n  // The command line tool kubectl, for example, allows use of the singular resource name in place of plurals.\n  // The singular form of a resource should always be an optional element - when in doubt use the canonical resource name.\n  optional string singularResource = 4;\n\n  // verbs is a list of supported API operation types (this includes\n  // but is not limited to get, list, watch, create, update, patch,\n  // delete, deletecollection, and proxy).\n  // +listType=set\n  repeated string verbs = 5;\n\n  // shortNames is a list of suggested short names of the resource.\n  // +listType=set\n  repeated string shortNames = 6;\n\n  // categories is a list of the grouped resources this resource belongs to (e.g. 'all').\n  // Clients may use this to simplify acting on multiple resource types at once.\n  // +listType=set\n  repeated string categories = 7;\n\n  // subresources is a list of subresources provided by this resource. Subresources are located at /apis/<APIGroupDiscovery.objectMeta.name>/<APIVersionDiscovery.version>/<APIResourceDiscovery.Resource>/name-of-instance/<APIResourceDiscovery.subresources[i].subresource>\n  // +listType=map\n  // +listMapKey=subresource\n  repeated APISubresourceDiscovery subresources = 8;\n}\n\n// APISubresourceDiscovery provides information about an API subresource for discovery.\nmessage APISubresourceDiscovery {\n  // subresource is the name of the subresource.  This is used in the URL path and is the unique identifier\n  // for this resource across all versions.\n  optional string subresource = 1;\n\n  // responseKind describes the group, version, and kind of the serialization schema for the object type this endpoint typically returns.\n  // Some subresources do not return normal resources, these will have null or empty return types.\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionKind responseKind = 2;\n\n  // acceptedTypes describes the kinds that this endpoint accepts.\n  // Subresources may accept the standard content types or define\n  // custom negotiation schemes. The list may not be exhaustive for\n  // all operations.\n  // +listType=map\n  // +listMapKey=group\n  // +listMapKey=version\n  // +listMapKey=kind\n  repeated .k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionKind acceptedTypes = 3;\n\n  // verbs is a list of supported API operation types (this includes\n  // but is not limited to get, list, watch, create, update, patch,\n  // delete, deletecollection, and proxy). Subresources may define\n  // custom verbs outside the standard Kubernetes verb set. Clients\n  // should expect the behavior of standard verbs to align with\n  // Kubernetes interaction conventions.\n  // +listType=set\n  repeated string verbs = 4;\n}\n\n// APIVersionDiscovery holds a list of APIResourceDiscovery types that are served for a particular version within an API Group.\nmessage APIVersionDiscovery {\n  // version is the name of the version within a group version.\n  optional string version = 1;\n\n  // resources is a list of APIResourceDiscovery objects for the corresponding group version.\n  // +listType=map\n  // +listMapKey=resource\n  repeated APIResourceDiscovery resources = 2;\n\n  // freshness marks whether a group version's discovery document is up to date.\n  // \"Current\" indicates the discovery document was recently\n  // refreshed. \"Stale\" indicates the discovery document could not\n  // be retrieved and the returned discovery document may be\n  // significantly out of date. Clients that require the latest\n  // version of the discovery information be retrieved before\n  // performing an operation should not use the aggregated document\n  optional string freshness = 3;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/apidiscovery/v2beta1/register.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v2beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name for this API.\nconst GroupName = \"apidiscovery.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v2beta1\"}\n\n// Kind takes an unqualified kind and returns a Group qualified GroupKind\nfunc Kind(kind string) schema.GroupKind {\n\treturn SchemeGroupVersion.WithKind(kind).GroupKind()\n}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// SchemeBuilder installs the api group to a scheme\n\tSchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)\n\t// AddToScheme adds api to a scheme\n\tAddToScheme = SchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&APIGroupDiscoveryList{},\n\t\t&APIGroupDiscovery{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/apidiscovery/v2beta1/types.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v2beta1\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.26\n// +k8s:prerelease-lifecycle-gen:deprecated=1.32\n// +k8s:prerelease-lifecycle-gen:removed=1.35\n// The deprecate and remove versions stated above are rough estimates and may be subject to change. We are estimating v2 types will be available in 1.28 and will support 4 versions where both v2beta1 and v2 are supported before deprecation.\n\n// APIGroupDiscoveryList is a resource containing a list of APIGroupDiscovery.\n// This is one of the types able to be returned from the /api and /apis endpoint and contains an aggregated\n// list of API resources (built-ins, Custom Resource Definitions, resources from aggregated servers)\n// that a cluster supports.\ntype APIGroupDiscoveryList struct {\n\tv1.TypeMeta `json:\",inline\"`\n\t// ResourceVersion will not be set, because this does not have a replayable ordering among multiple apiservers.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tv1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// items is the list of groups for discovery. The groups are listed in priority order.\n\tItems []APIGroupDiscovery `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.26\n// +k8s:prerelease-lifecycle-gen:deprecated=1.32\n// +k8s:prerelease-lifecycle-gen:removed=1.35\n// The deprecate and remove versions stated above are rough estimates and may be subject to change. We are estimating v2 types will be available in 1.28 and will support 4 versions where both v2beta1 and v2 are supported before deprecation.\n\n// APIGroupDiscovery holds information about which resources are being served for all version of the API Group.\n// It contains a list of APIVersionDiscovery that holds a list of APIResourceDiscovery types served for a version.\n// Versions are in descending order of preference, with the first version being the preferred entry.\ntype APIGroupDiscovery struct {\n\tv1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// The only field completed will be name. For instance, resourceVersion will be empty.\n\t// name is the name of the API group whose discovery information is presented here.\n\t// name is allowed to be \"\" to represent the legacy, ungroupified resources.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tv1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// versions are the versions supported in this group. They are sorted in descending order of preference,\n\t// with the preferred version being the first entry.\n\t// +listType=map\n\t// +listMapKey=version\n\tVersions []APIVersionDiscovery `json:\"versions,omitempty\" protobuf:\"bytes,2,rep,name=versions\"`\n}\n\n// APIVersionDiscovery holds a list of APIResourceDiscovery types that are served for a particular version within an API Group.\ntype APIVersionDiscovery struct {\n\t// version is the name of the version within a group version.\n\tVersion string `json:\"version\" protobuf:\"bytes,1,opt,name=version\"`\n\t// resources is a list of APIResourceDiscovery objects for the corresponding group version.\n\t// +listType=map\n\t// +listMapKey=resource\n\tResources []APIResourceDiscovery `json:\"resources,omitempty\" protobuf:\"bytes,2,rep,name=resources\"`\n\t// freshness marks whether a group version's discovery document is up to date.\n\t// \"Current\" indicates the discovery document was recently\n\t// refreshed. \"Stale\" indicates the discovery document could not\n\t// be retrieved and the returned discovery document may be\n\t// significantly out of date. Clients that require the latest\n\t// version of the discovery information be retrieved before\n\t// performing an operation should not use the aggregated document\n\tFreshness DiscoveryFreshness `json:\"freshness,omitempty\" protobuf:\"bytes,3,opt,name=freshness\"`\n}\n\n// APIResourceDiscovery provides information about an API resource for discovery.\ntype APIResourceDiscovery struct {\n\t// resource is the plural name of the resource.  This is used in the URL path and is the unique identifier\n\t// for this resource across all versions in the API group.\n\t// Resources with non-empty groups are located at /apis/<APIGroupDiscovery.objectMeta.name>/<APIVersionDiscovery.version>/<APIResourceDiscovery.Resource>\n\t// Resources with empty groups are located at /api/v1/<APIResourceDiscovery.Resource>\n\tResource string `json:\"resource\" protobuf:\"bytes,1,opt,name=resource\"`\n\t// responseKind describes the group, version, and kind of the serialization schema for the object type this endpoint typically returns.\n\t// APIs may return other objects types at their discretion, such as error conditions, requests for alternate representations, or other operation specific behavior.\n\t// This value will be null or empty if an APIService reports subresources but supports no operations on the parent resource\n\tResponseKind *v1.GroupVersionKind `json:\"responseKind,omitempty\" protobuf:\"bytes,2,opt,name=responseKind\"`\n\t// scope indicates the scope of a resource, either Cluster or Namespaced\n\tScope ResourceScope `json:\"scope\" protobuf:\"bytes,3,opt,name=scope\"`\n\t// singularResource is the singular name of the resource.  This allows clients to handle plural and singular opaquely.\n\t// For many clients the singular form of the resource will be more understandable to users reading messages and should be used when integrating the name of the resource into a sentence.\n\t// The command line tool kubectl, for example, allows use of the singular resource name in place of plurals.\n\t// The singular form of a resource should always be an optional element - when in doubt use the canonical resource name.\n\tSingularResource string `json:\"singularResource\" protobuf:\"bytes,4,opt,name=singularResource\"`\n\t// verbs is a list of supported API operation types (this includes\n\t// but is not limited to get, list, watch, create, update, patch,\n\t// delete, deletecollection, and proxy).\n\t// +listType=set\n\tVerbs []string `json:\"verbs\" protobuf:\"bytes,5,opt,name=verbs\"`\n\t// shortNames is a list of suggested short names of the resource.\n\t// +listType=set\n\tShortNames []string `json:\"shortNames,omitempty\" protobuf:\"bytes,6,rep,name=shortNames\"`\n\t// categories is a list of the grouped resources this resource belongs to (e.g. 'all').\n\t// Clients may use this to simplify acting on multiple resource types at once.\n\t// +listType=set\n\tCategories []string `json:\"categories,omitempty\" protobuf:\"bytes,7,rep,name=categories\"`\n\t// subresources is a list of subresources provided by this resource. Subresources are located at /apis/<APIGroupDiscovery.objectMeta.name>/<APIVersionDiscovery.version>/<APIResourceDiscovery.Resource>/name-of-instance/<APIResourceDiscovery.subresources[i].subresource>\n\t// +listType=map\n\t// +listMapKey=subresource\n\tSubresources []APISubresourceDiscovery `json:\"subresources,omitempty\" protobuf:\"bytes,8,rep,name=subresources\"`\n}\n\n// ResourceScope is an enum defining the different scopes available to a resource.\ntype ResourceScope string\n\nconst (\n\tScopeCluster   ResourceScope = \"Cluster\"\n\tScopeNamespace ResourceScope = \"Namespaced\"\n)\n\n// DiscoveryFreshness is an enum defining whether the Discovery document published by an apiservice is up to date (fresh).\ntype DiscoveryFreshness string\n\nconst (\n\tDiscoveryFreshnessCurrent DiscoveryFreshness = \"Current\"\n\tDiscoveryFreshnessStale   DiscoveryFreshness = \"Stale\"\n)\n\n// APISubresourceDiscovery provides information about an API subresource for discovery.\ntype APISubresourceDiscovery struct {\n\t// subresource is the name of the subresource.  This is used in the URL path and is the unique identifier\n\t// for this resource across all versions.\n\tSubresource string `json:\"subresource\" protobuf:\"bytes,1,opt,name=subresource\"`\n\t// responseKind describes the group, version, and kind of the serialization schema for the object type this endpoint typically returns.\n\t// Some subresources do not return normal resources, these will have null or empty return types.\n\tResponseKind *v1.GroupVersionKind `json:\"responseKind,omitempty\" protobuf:\"bytes,2,opt,name=responseKind\"`\n\t// acceptedTypes describes the kinds that this endpoint accepts.\n\t// Subresources may accept the standard content types or define\n\t// custom negotiation schemes. The list may not be exhaustive for\n\t// all operations.\n\t// +listType=map\n\t// +listMapKey=group\n\t// +listMapKey=version\n\t// +listMapKey=kind\n\tAcceptedTypes []v1.GroupVersionKind `json:\"acceptedTypes,omitempty\" protobuf:\"bytes,3,rep,name=acceptedTypes\"`\n\t// verbs is a list of supported API operation types (this includes\n\t// but is not limited to get, list, watch, create, update, patch,\n\t// delete, deletecollection, and proxy). Subresources may define\n\t// custom verbs outside the standard Kubernetes verb set. Clients\n\t// should expect the behavior of standard verbs to align with\n\t// Kubernetes interaction conventions.\n\t// +listType=set\n\tVerbs []string `json:\"verbs\" protobuf:\"bytes,4,opt,name=verbs\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/apidiscovery/v2beta1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v2beta1\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *APIGroupDiscovery) DeepCopyInto(out *APIGroupDiscovery) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Versions != nil {\n\t\tin, out := &in.Versions, &out.Versions\n\t\t*out = make([]APIVersionDiscovery, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIGroupDiscovery.\nfunc (in *APIGroupDiscovery) DeepCopy() *APIGroupDiscovery {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(APIGroupDiscovery)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *APIGroupDiscovery) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *APIGroupDiscoveryList) DeepCopyInto(out *APIGroupDiscoveryList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]APIGroupDiscovery, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIGroupDiscoveryList.\nfunc (in *APIGroupDiscoveryList) DeepCopy() *APIGroupDiscoveryList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(APIGroupDiscoveryList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *APIGroupDiscoveryList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *APIResourceDiscovery) DeepCopyInto(out *APIResourceDiscovery) {\n\t*out = *in\n\tif in.ResponseKind != nil {\n\t\tin, out := &in.ResponseKind, &out.ResponseKind\n\t\t*out = new(v1.GroupVersionKind)\n\t\t**out = **in\n\t}\n\tif in.Verbs != nil {\n\t\tin, out := &in.Verbs, &out.Verbs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ShortNames != nil {\n\t\tin, out := &in.ShortNames, &out.ShortNames\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Categories != nil {\n\t\tin, out := &in.Categories, &out.Categories\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Subresources != nil {\n\t\tin, out := &in.Subresources, &out.Subresources\n\t\t*out = make([]APISubresourceDiscovery, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIResourceDiscovery.\nfunc (in *APIResourceDiscovery) DeepCopy() *APIResourceDiscovery {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(APIResourceDiscovery)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *APISubresourceDiscovery) DeepCopyInto(out *APISubresourceDiscovery) {\n\t*out = *in\n\tif in.ResponseKind != nil {\n\t\tin, out := &in.ResponseKind, &out.ResponseKind\n\t\t*out = new(v1.GroupVersionKind)\n\t\t**out = **in\n\t}\n\tif in.AcceptedTypes != nil {\n\t\tin, out := &in.AcceptedTypes, &out.AcceptedTypes\n\t\t*out = make([]v1.GroupVersionKind, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Verbs != nil {\n\t\tin, out := &in.Verbs, &out.Verbs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APISubresourceDiscovery.\nfunc (in *APISubresourceDiscovery) DeepCopy() *APISubresourceDiscovery {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(APISubresourceDiscovery)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *APIVersionDiscovery) DeepCopyInto(out *APIVersionDiscovery) {\n\t*out = *in\n\tif in.Resources != nil {\n\t\tin, out := &in.Resources, &out.Resources\n\t\t*out = make([]APIResourceDiscovery, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIVersionDiscovery.\nfunc (in *APIVersionDiscovery) DeepCopy() *APIVersionDiscovery {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(APIVersionDiscovery)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/apidiscovery/v2beta1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v2beta1\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *APIGroupDiscovery) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 26\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *APIGroupDiscovery) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 32\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *APIGroupDiscovery) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 35\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *APIGroupDiscoveryList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 26\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *APIGroupDiscoveryList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 32\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *APIGroupDiscoveryList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 35\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/apiserverinternal/v1alpha1/doc.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n\n// +groupName=internal.apiserver.k8s.io\n\n// Package v1alpha1 contains the v1alpha1 version of the API used by the\n// apiservers themselves.\npackage v1alpha1 // import \"k8s.io/api/apiserverinternal/v1alpha1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/apiserverinternal/v1alpha1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/apiserverinternal/v1alpha1/generated.proto\n\npackage v1alpha1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *ServerStorageVersion) Reset()      { *m = ServerStorageVersion{} }\nfunc (*ServerStorageVersion) ProtoMessage() {}\nfunc (*ServerStorageVersion) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_126bcbf538b54729, []int{0}\n}\nfunc (m *ServerStorageVersion) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ServerStorageVersion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ServerStorageVersion) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServerStorageVersion.Merge(m, src)\n}\nfunc (m *ServerStorageVersion) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ServerStorageVersion) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServerStorageVersion.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServerStorageVersion proto.InternalMessageInfo\n\nfunc (m *StorageVersion) Reset()      { *m = StorageVersion{} }\nfunc (*StorageVersion) ProtoMessage() {}\nfunc (*StorageVersion) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_126bcbf538b54729, []int{1}\n}\nfunc (m *StorageVersion) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StorageVersion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StorageVersion) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StorageVersion.Merge(m, src)\n}\nfunc (m *StorageVersion) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StorageVersion) XXX_DiscardUnknown() {\n\txxx_messageInfo_StorageVersion.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StorageVersion proto.InternalMessageInfo\n\nfunc (m *StorageVersionCondition) Reset()      { *m = StorageVersionCondition{} }\nfunc (*StorageVersionCondition) ProtoMessage() {}\nfunc (*StorageVersionCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_126bcbf538b54729, []int{2}\n}\nfunc (m *StorageVersionCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StorageVersionCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StorageVersionCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StorageVersionCondition.Merge(m, src)\n}\nfunc (m *StorageVersionCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StorageVersionCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_StorageVersionCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StorageVersionCondition proto.InternalMessageInfo\n\nfunc (m *StorageVersionList) Reset()      { *m = StorageVersionList{} }\nfunc (*StorageVersionList) ProtoMessage() {}\nfunc (*StorageVersionList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_126bcbf538b54729, []int{3}\n}\nfunc (m *StorageVersionList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StorageVersionList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StorageVersionList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StorageVersionList.Merge(m, src)\n}\nfunc (m *StorageVersionList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StorageVersionList) XXX_DiscardUnknown() {\n\txxx_messageInfo_StorageVersionList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StorageVersionList proto.InternalMessageInfo\n\nfunc (m *StorageVersionSpec) Reset()      { *m = StorageVersionSpec{} }\nfunc (*StorageVersionSpec) ProtoMessage() {}\nfunc (*StorageVersionSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_126bcbf538b54729, []int{4}\n}\nfunc (m *StorageVersionSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StorageVersionSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StorageVersionSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StorageVersionSpec.Merge(m, src)\n}\nfunc (m *StorageVersionSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StorageVersionSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_StorageVersionSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StorageVersionSpec proto.InternalMessageInfo\n\nfunc (m *StorageVersionStatus) Reset()      { *m = StorageVersionStatus{} }\nfunc (*StorageVersionStatus) ProtoMessage() {}\nfunc (*StorageVersionStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_126bcbf538b54729, []int{5}\n}\nfunc (m *StorageVersionStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StorageVersionStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StorageVersionStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StorageVersionStatus.Merge(m, src)\n}\nfunc (m *StorageVersionStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StorageVersionStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_StorageVersionStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StorageVersionStatus proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*ServerStorageVersion)(nil), \"k8s.io.api.apiserverinternal.v1alpha1.ServerStorageVersion\")\n\tproto.RegisterType((*StorageVersion)(nil), \"k8s.io.api.apiserverinternal.v1alpha1.StorageVersion\")\n\tproto.RegisterType((*StorageVersionCondition)(nil), \"k8s.io.api.apiserverinternal.v1alpha1.StorageVersionCondition\")\n\tproto.RegisterType((*StorageVersionList)(nil), \"k8s.io.api.apiserverinternal.v1alpha1.StorageVersionList\")\n\tproto.RegisterType((*StorageVersionSpec)(nil), \"k8s.io.api.apiserverinternal.v1alpha1.StorageVersionSpec\")\n\tproto.RegisterType((*StorageVersionStatus)(nil), \"k8s.io.api.apiserverinternal.v1alpha1.StorageVersionStatus\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/apiserverinternal/v1alpha1/generated.proto\", fileDescriptor_126bcbf538b54729)\n}\n\nvar fileDescriptor_126bcbf538b54729 = []byte{\n\t// 770 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x55, 0x41, 0x4f, 0x13, 0x41,\n\t0x14, 0xee, 0xd2, 0x52, 0x60, 0xaa, 0xad, 0x8c, 0x10, 0x6a, 0x4d, 0xb6, 0xd8, 0x04, 0x83, 0x1a,\n\t0x77, 0xa5, 0x11, 0x23, 0x9a, 0x68, 0x58, 0x20, 0x06, 0x85, 0x60, 0xa6, 0xc4, 0x03, 0x7a, 0x70,\n\t0xba, 0x1d, 0xb7, 0x2b, 0xdd, 0x9d, 0xcd, 0xce, 0xb4, 0x09, 0x17, 0xe3, 0x4f, 0xd0, 0xff, 0xe1,\n\t0xd1, 0x1f, 0xc1, 0xc9, 0x70, 0x24, 0x31, 0x69, 0x64, 0xfd, 0x17, 0x9c, 0xcc, 0xcc, 0x6e, 0xb7,\n\t0x6c, 0x5b, 0x62, 0xc3, 0xa1, 0x49, 0xe7, 0xbd, 0xf7, 0x7d, 0xef, 0xcd, 0x37, 0xdf, 0xcc, 0x82,\n\t0xd5, 0xc3, 0xa7, 0x4c, 0xb3, 0xa9, 0x8e, 0x3d, 0x5b, 0xfc, 0x18, 0xf1, 0x3b, 0xc4, 0xb7, 0x5d,\n\t0x4e, 0x7c, 0x17, 0xb7, 0xf4, 0xce, 0x0a, 0x6e, 0x79, 0x4d, 0xbc, 0xa2, 0x5b, 0xc4, 0x25, 0x3e,\n\t0xe6, 0xa4, 0xa1, 0x79, 0x3e, 0xe5, 0x14, 0x2e, 0x85, 0x30, 0x0d, 0x7b, 0xb6, 0x36, 0x04, 0xd3,\n\t0x7a, 0xb0, 0xd2, 0x43, 0xcb, 0xe6, 0xcd, 0x76, 0x5d, 0x33, 0xa9, 0xa3, 0x5b, 0xd4, 0xa2, 0xba,\n\t0x44, 0xd7, 0xdb, 0x9f, 0xe4, 0x4a, 0x2e, 0xe4, 0xbf, 0x90, 0xb5, 0xf4, 0xb8, 0x3f, 0x8c, 0x83,\n\t0xcd, 0xa6, 0xed, 0x12, 0xff, 0x48, 0xf7, 0x0e, 0x2d, 0x39, 0x99, 0xee, 0x10, 0x8e, 0xf5, 0xce,\n\t0xd0, 0x2c, 0x25, 0xfd, 0x32, 0x94, 0xdf, 0x76, 0xb9, 0xed, 0x90, 0x21, 0xc0, 0x93, 0xff, 0x01,\n\t0x98, 0xd9, 0x24, 0x0e, 0x1e, 0xc4, 0x55, 0xbe, 0x4f, 0x80, 0xb9, 0x9a, 0xdc, 0x69, 0x8d, 0x53,\n\t0x1f, 0x5b, 0xe4, 0x1d, 0xf1, 0x99, 0x4d, 0x5d, 0xb8, 0x0a, 0x72, 0xd8, 0xb3, 0xc3, 0xd4, 0xf6,\n\t0x66, 0x51, 0x59, 0x54, 0x96, 0x67, 0x8c, 0x9b, 0xc7, 0xdd, 0x72, 0x2a, 0xe8, 0x96, 0x73, 0xeb,\n\t0x6f, 0xb7, 0x7b, 0x29, 0x74, 0xb1, 0x0e, 0xae, 0x83, 0x02, 0x71, 0x4d, 0xda, 0xb0, 0x5d, 0x2b,\n\t0x62, 0x2a, 0x4e, 0x48, 0xe8, 0x42, 0x04, 0x2d, 0x6c, 0x25, 0xd3, 0x68, 0xb0, 0x1e, 0x6e, 0x80,\n\t0xd9, 0x06, 0x31, 0x69, 0x03, 0xd7, 0x5b, 0xbd, 0x69, 0x58, 0x31, 0xbd, 0x98, 0x5e, 0x9e, 0x31,\n\t0xe6, 0x83, 0x6e, 0x79, 0x76, 0x73, 0x30, 0x89, 0x86, 0xeb, 0xe1, 0x33, 0x90, 0x97, 0x07, 0xd8,\n\t0x88, 0x19, 0x32, 0x92, 0x01, 0x06, 0xdd, 0x72, 0xbe, 0x96, 0xc8, 0xa0, 0x81, 0xca, 0xca, 0xcf,\n\t0x09, 0x90, 0x1f, 0x50, 0xe3, 0x23, 0x98, 0x16, 0x47, 0xd5, 0xc0, 0x1c, 0x4b, 0x29, 0x72, 0xd5,\n\t0x47, 0x5a, 0xdf, 0x2e, 0xb1, 0xe2, 0x9a, 0x77, 0x68, 0x49, 0xef, 0x68, 0xa2, 0x5a, 0xeb, 0xac,\n\t0x68, 0x7b, 0xf5, 0xcf, 0xc4, 0xe4, 0xbb, 0x84, 0x63, 0x03, 0x46, 0x0a, 0x80, 0x7e, 0x0c, 0xc5,\n\t0xac, 0xf0, 0x3d, 0xc8, 0x30, 0x8f, 0x98, 0x52, 0xad, 0x5c, 0x75, 0x4d, 0x1b, 0xcb, 0x8c, 0x5a,\n\t0x72, 0xcc, 0x9a, 0x47, 0x4c, 0xe3, 0x5a, 0xd4, 0x26, 0x23, 0x56, 0x48, 0x92, 0x42, 0x13, 0x64,\n\t0x19, 0xc7, 0xbc, 0x2d, 0x74, 0x14, 0xf4, 0xcf, 0xaf, 0x46, 0x2f, 0x29, 0x8c, 0x7c, 0xd4, 0x20,\n\t0x1b, 0xae, 0x51, 0x44, 0x5d, 0xf9, 0x91, 0x06, 0x0b, 0x49, 0xc0, 0x06, 0x75, 0x1b, 0x36, 0x17,\n\t0xfa, 0xbd, 0x04, 0x19, 0x7e, 0xe4, 0x91, 0xc8, 0x46, 0x0f, 0x7a, 0x23, 0xee, 0x1f, 0x79, 0xe4,\n\t0xbc, 0x5b, 0xbe, 0x7d, 0x09, 0x4c, 0xa4, 0x91, 0x04, 0xc2, 0xb5, 0x78, 0x07, 0xa1, 0x9d, 0xee,\n\t0x24, 0x87, 0x38, 0xef, 0x96, 0x0b, 0x31, 0x2c, 0x39, 0x17, 0x7c, 0x0d, 0x20, 0xad, 0x87, 0x47,\n\t0xfc, 0x2a, 0x74, 0xbf, 0x70, 0xa5, 0x10, 0x22, 0x6d, 0x94, 0x22, 0x1a, 0xb8, 0x37, 0x54, 0x81,\n\t0x46, 0xa0, 0x60, 0x07, 0xc0, 0x16, 0x66, 0x7c, 0xdf, 0xc7, 0x2e, 0x0b, 0x47, 0xb4, 0x1d, 0x52,\n\t0xcc, 0x48, 0x51, 0xef, 0x8f, 0xe7, 0x08, 0x81, 0xe8, 0xf7, 0xdd, 0x19, 0x62, 0x43, 0x23, 0x3a,\n\t0xc0, 0xbb, 0x20, 0xeb, 0x13, 0xcc, 0xa8, 0x5b, 0x9c, 0x94, 0xdb, 0x8f, 0xcf, 0x00, 0xc9, 0x28,\n\t0x8a, 0xb2, 0xf0, 0x1e, 0x98, 0x72, 0x08, 0x63, 0xd8, 0x22, 0xc5, 0xac, 0x2c, 0x2c, 0x44, 0x85,\n\t0x53, 0xbb, 0x61, 0x18, 0xf5, 0xf2, 0x95, 0x5f, 0x0a, 0x80, 0x49, 0xdd, 0x77, 0x6c, 0xc6, 0xe1,\n\t0x87, 0x21, 0xa7, 0x6b, 0xe3, 0xed, 0x4b, 0xa0, 0xa5, 0xcf, 0x6f, 0x44, 0x2d, 0xa7, 0x7b, 0x91,\n\t0x0b, 0x2e, 0x3f, 0x00, 0x93, 0x36, 0x27, 0x8e, 0x38, 0xc5, 0xf4, 0x72, 0xae, 0xba, 0x7a, 0x25,\n\t0x1f, 0x1a, 0xd7, 0xa3, 0x0e, 0x93, 0xdb, 0x82, 0x0b, 0x85, 0x94, 0x95, 0xb9, 0xc1, 0xfd, 0x88,\n\t0x0b, 0x50, 0xf9, 0x2d, 0x1e, 0xb8, 0x11, 0x36, 0x86, 0x5f, 0x40, 0x81, 0x25, 0xe2, 0xac, 0xa8,\n\t0xc8, 0xa1, 0xc6, 0xbe, 0x1c, 0x23, 0x9e, 0xcd, 0xfe, 0x33, 0x97, 0x8c, 0x33, 0x34, 0xd8, 0x0c,\n\t0xee, 0x81, 0x79, 0x93, 0x3a, 0x0e, 0x75, 0xb7, 0x46, 0xbe, 0x97, 0xb7, 0x82, 0x6e, 0x79, 0x7e,\n\t0x63, 0x54, 0x01, 0x1a, 0x8d, 0x83, 0x3e, 0x00, 0x66, 0xef, 0x0a, 0x84, 0x0f, 0x66, 0xae, 0xfa,\n\t0xe2, 0x4a, 0x02, 0xc7, 0x37, 0xa9, 0xff, 0x66, 0xc5, 0x21, 0x86, 0x2e, 0x74, 0x31, 0xde, 0x1c,\n\t0x9f, 0xa9, 0xa9, 0x93, 0x33, 0x35, 0x75, 0x7a, 0xa6, 0xa6, 0xbe, 0x06, 0xaa, 0x72, 0x1c, 0xa8,\n\t0xca, 0x49, 0xa0, 0x2a, 0xa7, 0x81, 0xaa, 0xfc, 0x09, 0x54, 0xe5, 0xdb, 0x5f, 0x35, 0x75, 0xb0,\n\t0x34, 0xd6, 0x07, 0xf9, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x79, 0x04, 0x7d, 0x78, 0xb8, 0x07,\n\t0x00, 0x00,\n}\n\nfunc (m *ServerStorageVersion) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServerStorageVersion) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ServerStorageVersion) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ServedVersions) > 0 {\n\t\tfor iNdEx := len(m.ServedVersions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.ServedVersions[iNdEx])\n\t\t\tcopy(dAtA[i:], m.ServedVersions[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ServedVersions[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif len(m.DecodableVersions) > 0 {\n\t\tfor iNdEx := len(m.DecodableVersions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.DecodableVersions[iNdEx])\n\t\t\tcopy(dAtA[i:], m.DecodableVersions[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.DecodableVersions[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\ti -= len(m.EncodingVersion)\n\tcopy(dAtA[i:], m.EncodingVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.EncodingVersion)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.APIServerID)\n\tcopy(dAtA[i:], m.APIServerID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIServerID)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StorageVersion) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StorageVersion) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StorageVersion) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StorageVersionCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StorageVersionCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StorageVersionCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x2a\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x22\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration))\n\ti--\n\tdAtA[i] = 0x18\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StorageVersionList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StorageVersionList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StorageVersionList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StorageVersionSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StorageVersionSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StorageVersionSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StorageVersionStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StorageVersionStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StorageVersionStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif m.CommonEncodingVersion != nil {\n\t\ti -= len(*m.CommonEncodingVersion)\n\t\tcopy(dAtA[i:], *m.CommonEncodingVersion)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.CommonEncodingVersion)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif len(m.StorageVersions) > 0 {\n\t\tfor iNdEx := len(m.StorageVersions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.StorageVersions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *ServerStorageVersion) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.APIServerID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.EncodingVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.DecodableVersions) > 0 {\n\t\tfor _, s := range m.DecodableVersions {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.ServedVersions) > 0 {\n\t\tfor _, s := range m.ServedVersions {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *StorageVersion) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *StorageVersionCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.ObservedGeneration))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *StorageVersionList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *StorageVersionSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\treturn n\n}\n\nfunc (m *StorageVersionStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.StorageVersions) > 0 {\n\t\tfor _, e := range m.StorageVersions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.CommonEncodingVersion != nil {\n\t\tl = len(*m.CommonEncodingVersion)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *ServerStorageVersion) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ServerStorageVersion{`,\n\t\t`APIServerID:` + fmt.Sprintf(\"%v\", this.APIServerID) + `,`,\n\t\t`EncodingVersion:` + fmt.Sprintf(\"%v\", this.EncodingVersion) + `,`,\n\t\t`DecodableVersions:` + fmt.Sprintf(\"%v\", this.DecodableVersions) + `,`,\n\t\t`ServedVersions:` + fmt.Sprintf(\"%v\", this.ServedVersions) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StorageVersion) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StorageVersion{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"StorageVersionSpec\", \"StorageVersionSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"StorageVersionStatus\", \"StorageVersionStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StorageVersionCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StorageVersionCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`ObservedGeneration:` + fmt.Sprintf(\"%v\", this.ObservedGeneration) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StorageVersionList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]StorageVersion{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"StorageVersion\", \"StorageVersion\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&StorageVersionList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StorageVersionSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StorageVersionSpec{`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StorageVersionStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForStorageVersions := \"[]ServerStorageVersion{\"\n\tfor _, f := range this.StorageVersions {\n\t\trepeatedStringForStorageVersions += strings.Replace(strings.Replace(f.String(), \"ServerStorageVersion\", \"ServerStorageVersion\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForStorageVersions += \"}\"\n\trepeatedStringForConditions := \"[]StorageVersionCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"StorageVersionCondition\", \"StorageVersionCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&StorageVersionStatus{`,\n\t\t`StorageVersions:` + repeatedStringForStorageVersions + `,`,\n\t\t`CommonEncodingVersion:` + valueToStringGenerated(this.CommonEncodingVersion) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *ServerStorageVersion) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServerStorageVersion: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServerStorageVersion: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIServerID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIServerID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EncodingVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.EncodingVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DecodableVersions\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.DecodableVersions = append(m.DecodableVersions, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServedVersions\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ServedVersions = append(m.ServedVersions, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StorageVersion) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StorageVersion: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StorageVersion: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StorageVersionCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StorageVersionCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StorageVersionCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = StorageVersionConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tm.ObservedGeneration = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ObservedGeneration |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StorageVersionList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StorageVersionList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StorageVersionList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, StorageVersion{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StorageVersionSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StorageVersionSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StorageVersionSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StorageVersionStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StorageVersionStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StorageVersionStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StorageVersions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.StorageVersions = append(m.StorageVersions, ServerStorageVersion{})\n\t\t\tif err := m.StorageVersions[len(m.StorageVersions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CommonEncodingVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.CommonEncodingVersion = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, StorageVersionCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/apiserverinternal/v1alpha1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.apiserverinternal.v1alpha1;\n\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/apiserverinternal/v1alpha1\";\n\n// An API server instance reports the version it can decode and the version it\n// encodes objects to when persisting objects in the backend.\nmessage ServerStorageVersion {\n  // The ID of the reporting API server.\n  optional string apiServerID = 1;\n\n  // The API server encodes the object to this version when persisting it in\n  // the backend (e.g., etcd).\n  optional string encodingVersion = 2;\n\n  // The API server can decode objects encoded in these versions.\n  // The encodingVersion must be included in the decodableVersions.\n  // +listType=set\n  repeated string decodableVersions = 3;\n\n  // The API server can serve these versions.\n  // DecodableVersions must include all ServedVersions.\n  // +listType=set\n  repeated string servedVersions = 4;\n}\n\n// Storage version of a specific resource.\nmessage StorageVersion {\n  // The name is <group>.<resource>.\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec is an empty spec. It is here to comply with Kubernetes API style.\n  optional StorageVersionSpec spec = 2;\n\n  // API server instances report the version they can decode and the version they\n  // encode objects to when persisting objects in the backend.\n  optional StorageVersionStatus status = 3;\n}\n\n// Describes the state of the storageVersion at a certain point.\nmessage StorageVersionCondition {\n  // Type of the condition.\n  // +required\n  optional string type = 1;\n\n  // Status of the condition, one of True, False, Unknown.\n  // +required\n  optional string status = 2;\n\n  // If set, this represents the .metadata.generation that the condition was set based upon.\n  // +optional\n  optional int64 observedGeneration = 3;\n\n  // Last time the condition transitioned from one status to another.\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;\n\n  // The reason for the condition's last transition.\n  // +required\n  optional string reason = 5;\n\n  // A human readable message indicating details about the transition.\n  // +required\n  optional string message = 6;\n}\n\n// A list of StorageVersions.\nmessage StorageVersionList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items holds a list of StorageVersion\n  repeated StorageVersion items = 2;\n}\n\n// StorageVersionSpec is an empty spec.\nmessage StorageVersionSpec {\n}\n\n// API server instances report the versions they can decode and the version they\n// encode objects to when persisting objects in the backend.\nmessage StorageVersionStatus {\n  // The reported versions per API server instance.\n  // +optional\n  // +listType=map\n  // +listMapKey=apiServerID\n  repeated ServerStorageVersion storageVersions = 1;\n\n  // If all API server instances agree on the same encoding storage version,\n  // then this field is set to that version. Otherwise this field is left empty.\n  // API servers should finish updating its storageVersionStatus entry before\n  // serving write operations, so that this field will be in sync with the reality.\n  // +optional\n  optional string commonEncodingVersion = 2;\n\n  // The latest available observations of the storageVersion's state.\n  // +optional\n  // +listType=map\n  // +listMapKey=type\n  repeated StorageVersionCondition conditions = 3;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/apiserverinternal/v1alpha1/register.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"internal.apiserver.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1alpha1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\tSchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)\n\tAddToScheme   = SchemeBuilder.AddToScheme\n)\n\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&StorageVersion{},\n\t\t&StorageVersionList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/apiserverinternal/v1alpha1/types.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// Storage version of a specific resource.\ntype StorageVersion struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// The name is <group>.<resource>.\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec is an empty spec. It is here to comply with Kubernetes API style.\n\tSpec StorageVersionSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// API server instances report the version they can decode and the version they\n\t// encode objects to when persisting objects in the backend.\n\tStatus StorageVersionStatus `json:\"status\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// StorageVersionSpec is an empty spec.\ntype StorageVersionSpec struct{}\n\n// API server instances report the versions they can decode and the version they\n// encode objects to when persisting objects in the backend.\ntype StorageVersionStatus struct {\n\t// The reported versions per API server instance.\n\t// +optional\n\t// +listType=map\n\t// +listMapKey=apiServerID\n\tStorageVersions []ServerStorageVersion `json:\"storageVersions,omitempty\" protobuf:\"bytes,1,opt,name=storageVersions\"`\n\t// If all API server instances agree on the same encoding storage version,\n\t// then this field is set to that version. Otherwise this field is left empty.\n\t// API servers should finish updating its storageVersionStatus entry before\n\t// serving write operations, so that this field will be in sync with the reality.\n\t// +optional\n\tCommonEncodingVersion *string `json:\"commonEncodingVersion,omitempty\" protobuf:\"bytes,2,opt,name=commonEncodingVersion\"`\n\n\t// The latest available observations of the storageVersion's state.\n\t// +optional\n\t// +listType=map\n\t// +listMapKey=type\n\tConditions []StorageVersionCondition `json:\"conditions,omitempty\" protobuf:\"bytes,3,opt,name=conditions\"`\n}\n\n// An API server instance reports the version it can decode and the version it\n// encodes objects to when persisting objects in the backend.\ntype ServerStorageVersion struct {\n\t// The ID of the reporting API server.\n\tAPIServerID string `json:\"apiServerID,omitempty\" protobuf:\"bytes,1,opt,name=apiServerID\"`\n\n\t// The API server encodes the object to this version when persisting it in\n\t// the backend (e.g., etcd).\n\tEncodingVersion string `json:\"encodingVersion,omitempty\" protobuf:\"bytes,2,opt,name=encodingVersion\"`\n\n\t// The API server can decode objects encoded in these versions.\n\t// The encodingVersion must be included in the decodableVersions.\n\t// +listType=set\n\tDecodableVersions []string `json:\"decodableVersions,omitempty\" protobuf:\"bytes,3,opt,name=decodableVersions\"`\n\n\t// The API server can serve these versions.\n\t// DecodableVersions must include all ServedVersions.\n\t// +listType=set\n\tServedVersions []string `json:\"servedVersions,omitempty\" protobuf:\"bytes,4,opt,name=servedVersions\"`\n}\n\ntype StorageVersionConditionType string\n\nconst (\n\t// Indicates that encoding storage versions reported by all servers are equal.\n\tAllEncodingVersionsEqual StorageVersionConditionType = \"AllEncodingVersionsEqual\"\n)\n\ntype ConditionStatus string\n\nconst (\n\tConditionTrue    ConditionStatus = \"True\"\n\tConditionFalse   ConditionStatus = \"False\"\n\tConditionUnknown ConditionStatus = \"Unknown\"\n)\n\n// Describes the state of the storageVersion at a certain point.\ntype StorageVersionCondition struct {\n\t// Type of the condition.\n\t// +required\n\tType StorageVersionConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type\"`\n\t// Status of the condition, one of True, False, Unknown.\n\t// +required\n\tStatus ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status\"`\n\t// If set, this represents the .metadata.generation that the condition was set based upon.\n\t// +optional\n\tObservedGeneration int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,3,opt,name=observedGeneration\"`\n\t// Last time the condition transitioned from one status to another.\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,4,opt,name=lastTransitionTime\"`\n\t// The reason for the condition's last transition.\n\t// +required\n\tReason string `json:\"reason\" protobuf:\"bytes,5,opt,name=reason\"`\n\t// A human readable message indicating details about the transition.\n\t// +required\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,6,opt,name=message\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// A list of StorageVersions.\ntype StorageVersionList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// Items holds a list of StorageVersion\n\tItems []StorageVersion `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/apiserverinternal/v1alpha1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_ServerStorageVersion = map[string]string{\n\t\"\":                  \"An API server instance reports the version it can decode and the version it encodes objects to when persisting objects in the backend.\",\n\t\"apiServerID\":       \"The ID of the reporting API server.\",\n\t\"encodingVersion\":   \"The API server encodes the object to this version when persisting it in the backend (e.g., etcd).\",\n\t\"decodableVersions\": \"The API server can decode objects encoded in these versions. The encodingVersion must be included in the decodableVersions.\",\n\t\"servedVersions\":    \"The API server can serve these versions. DecodableVersions must include all ServedVersions.\",\n}\n\nfunc (ServerStorageVersion) SwaggerDoc() map[string]string {\n\treturn map_ServerStorageVersion\n}\n\nvar map_StorageVersion = map[string]string{\n\t\"\":         \"Storage version of a specific resource.\",\n\t\"metadata\": \"The name is <group>.<resource>.\",\n\t\"spec\":     \"Spec is an empty spec. It is here to comply with Kubernetes API style.\",\n\t\"status\":   \"API server instances report the version they can decode and the version they encode objects to when persisting objects in the backend.\",\n}\n\nfunc (StorageVersion) SwaggerDoc() map[string]string {\n\treturn map_StorageVersion\n}\n\nvar map_StorageVersionCondition = map[string]string{\n\t\"\":                   \"Describes the state of the storageVersion at a certain point.\",\n\t\"type\":               \"Type of the condition.\",\n\t\"status\":             \"Status of the condition, one of True, False, Unknown.\",\n\t\"observedGeneration\": \"If set, this represents the .metadata.generation that the condition was set based upon.\",\n\t\"lastTransitionTime\": \"Last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"The reason for the condition's last transition.\",\n\t\"message\":            \"A human readable message indicating details about the transition.\",\n}\n\nfunc (StorageVersionCondition) SwaggerDoc() map[string]string {\n\treturn map_StorageVersionCondition\n}\n\nvar map_StorageVersionList = map[string]string{\n\t\"\":         \"A list of StorageVersions.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"Items holds a list of StorageVersion\",\n}\n\nfunc (StorageVersionList) SwaggerDoc() map[string]string {\n\treturn map_StorageVersionList\n}\n\nvar map_StorageVersionSpec = map[string]string{\n\t\"\": \"StorageVersionSpec is an empty spec.\",\n}\n\nfunc (StorageVersionSpec) SwaggerDoc() map[string]string {\n\treturn map_StorageVersionSpec\n}\n\nvar map_StorageVersionStatus = map[string]string{\n\t\"\":                      \"API server instances report the versions they can decode and the version they encode objects to when persisting objects in the backend.\",\n\t\"storageVersions\":       \"The reported versions per API server instance.\",\n\t\"commonEncodingVersion\": \"If all API server instances agree on the same encoding storage version, then this field is set to that version. Otherwise this field is left empty. API servers should finish updating its storageVersionStatus entry before serving write operations, so that this field will be in sync with the reality.\",\n\t\"conditions\":            \"The latest available observations of the storageVersion's state.\",\n}\n\nfunc (StorageVersionStatus) SwaggerDoc() map[string]string {\n\treturn map_StorageVersionStatus\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/apiserverinternal/v1alpha1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ServerStorageVersion) DeepCopyInto(out *ServerStorageVersion) {\n\t*out = *in\n\tif in.DecodableVersions != nil {\n\t\tin, out := &in.DecodableVersions, &out.DecodableVersions\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ServedVersions != nil {\n\t\tin, out := &in.ServedVersions, &out.ServedVersions\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerStorageVersion.\nfunc (in *ServerStorageVersion) DeepCopy() *ServerStorageVersion {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ServerStorageVersion)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StorageVersion) DeepCopyInto(out *StorageVersion) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tout.Spec = in.Spec\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageVersion.\nfunc (in *StorageVersion) DeepCopy() *StorageVersion {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StorageVersion)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *StorageVersion) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StorageVersionCondition) DeepCopyInto(out *StorageVersionCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageVersionCondition.\nfunc (in *StorageVersionCondition) DeepCopy() *StorageVersionCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StorageVersionCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StorageVersionList) DeepCopyInto(out *StorageVersionList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]StorageVersion, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageVersionList.\nfunc (in *StorageVersionList) DeepCopy() *StorageVersionList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StorageVersionList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *StorageVersionList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StorageVersionSpec) DeepCopyInto(out *StorageVersionSpec) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageVersionSpec.\nfunc (in *StorageVersionSpec) DeepCopy() *StorageVersionSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StorageVersionSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StorageVersionStatus) DeepCopyInto(out *StorageVersionStatus) {\n\t*out = *in\n\tif in.StorageVersions != nil {\n\t\tin, out := &in.StorageVersions, &out.StorageVersions\n\t\t*out = make([]ServerStorageVersion, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.CommonEncodingVersion != nil {\n\t\tin, out := &in.CommonEncodingVersion, &out.CommonEncodingVersion\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]StorageVersionCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageVersionStatus.\nfunc (in *StorageVersionStatus) DeepCopy() *StorageVersionStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StorageVersionStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1/doc.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\npackage v1 // import \"k8s.io/api/apps/v1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/apps/v1/generated.proto\n\npackage v1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\tv11 \"k8s.io/api/core/v1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *ControllerRevision) Reset()      { *m = ControllerRevision{} }\nfunc (*ControllerRevision) ProtoMessage() {}\nfunc (*ControllerRevision) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5b781835628d5338, []int{0}\n}\nfunc (m *ControllerRevision) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ControllerRevision) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ControllerRevision) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ControllerRevision.Merge(m, src)\n}\nfunc (m *ControllerRevision) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ControllerRevision) XXX_DiscardUnknown() {\n\txxx_messageInfo_ControllerRevision.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ControllerRevision proto.InternalMessageInfo\n\nfunc (m *ControllerRevisionList) Reset()      { *m = ControllerRevisionList{} }\nfunc (*ControllerRevisionList) ProtoMessage() {}\nfunc (*ControllerRevisionList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5b781835628d5338, []int{1}\n}\nfunc (m *ControllerRevisionList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ControllerRevisionList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ControllerRevisionList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ControllerRevisionList.Merge(m, src)\n}\nfunc (m *ControllerRevisionList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ControllerRevisionList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ControllerRevisionList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ControllerRevisionList proto.InternalMessageInfo\n\nfunc (m *DaemonSet) Reset()      { *m = DaemonSet{} }\nfunc (*DaemonSet) ProtoMessage() {}\nfunc (*DaemonSet) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5b781835628d5338, []int{2}\n}\nfunc (m *DaemonSet) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DaemonSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DaemonSet) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DaemonSet.Merge(m, src)\n}\nfunc (m *DaemonSet) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DaemonSet) XXX_DiscardUnknown() {\n\txxx_messageInfo_DaemonSet.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DaemonSet proto.InternalMessageInfo\n\nfunc (m *DaemonSetCondition) Reset()      { *m = DaemonSetCondition{} }\nfunc (*DaemonSetCondition) ProtoMessage() {}\nfunc (*DaemonSetCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5b781835628d5338, []int{3}\n}\nfunc (m *DaemonSetCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DaemonSetCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DaemonSetCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DaemonSetCondition.Merge(m, src)\n}\nfunc (m *DaemonSetCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DaemonSetCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_DaemonSetCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DaemonSetCondition proto.InternalMessageInfo\n\nfunc (m *DaemonSetList) Reset()      { *m = DaemonSetList{} }\nfunc (*DaemonSetList) ProtoMessage() {}\nfunc (*DaemonSetList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5b781835628d5338, []int{4}\n}\nfunc (m *DaemonSetList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DaemonSetList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DaemonSetList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DaemonSetList.Merge(m, src)\n}\nfunc (m *DaemonSetList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DaemonSetList) XXX_DiscardUnknown() {\n\txxx_messageInfo_DaemonSetList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DaemonSetList proto.InternalMessageInfo\n\nfunc (m *DaemonSetSpec) Reset()      { *m = DaemonSetSpec{} }\nfunc (*DaemonSetSpec) ProtoMessage() {}\nfunc (*DaemonSetSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5b781835628d5338, []int{5}\n}\nfunc (m *DaemonSetSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DaemonSetSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DaemonSetSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DaemonSetSpec.Merge(m, src)\n}\nfunc (m *DaemonSetSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DaemonSetSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_DaemonSetSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DaemonSetSpec proto.InternalMessageInfo\n\nfunc (m *DaemonSetStatus) Reset()      { *m = DaemonSetStatus{} }\nfunc (*DaemonSetStatus) ProtoMessage() {}\nfunc (*DaemonSetStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5b781835628d5338, []int{6}\n}\nfunc (m *DaemonSetStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DaemonSetStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DaemonSetStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DaemonSetStatus.Merge(m, src)\n}\nfunc (m *DaemonSetStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DaemonSetStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_DaemonSetStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DaemonSetStatus proto.InternalMessageInfo\n\nfunc (m *DaemonSetUpdateStrategy) Reset()      { *m = DaemonSetUpdateStrategy{} }\nfunc (*DaemonSetUpdateStrategy) ProtoMessage() {}\nfunc (*DaemonSetUpdateStrategy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5b781835628d5338, []int{7}\n}\nfunc (m *DaemonSetUpdateStrategy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DaemonSetUpdateStrategy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DaemonSetUpdateStrategy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DaemonSetUpdateStrategy.Merge(m, src)\n}\nfunc (m *DaemonSetUpdateStrategy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DaemonSetUpdateStrategy) XXX_DiscardUnknown() {\n\txxx_messageInfo_DaemonSetUpdateStrategy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DaemonSetUpdateStrategy proto.InternalMessageInfo\n\nfunc (m *Deployment) Reset()      { *m = Deployment{} }\nfunc (*Deployment) ProtoMessage() {}\nfunc (*Deployment) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5b781835628d5338, []int{8}\n}\nfunc (m *Deployment) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Deployment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Deployment) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Deployment.Merge(m, src)\n}\nfunc (m *Deployment) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Deployment) XXX_DiscardUnknown() {\n\txxx_messageInfo_Deployment.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Deployment proto.InternalMessageInfo\n\nfunc (m *DeploymentCondition) Reset()      { *m = DeploymentCondition{} }\nfunc (*DeploymentCondition) ProtoMessage() {}\nfunc (*DeploymentCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5b781835628d5338, []int{9}\n}\nfunc (m *DeploymentCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentCondition.Merge(m, src)\n}\nfunc (m *DeploymentCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentCondition proto.InternalMessageInfo\n\nfunc (m *DeploymentList) Reset()      { *m = DeploymentList{} }\nfunc (*DeploymentList) ProtoMessage() {}\nfunc (*DeploymentList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5b781835628d5338, []int{10}\n}\nfunc (m *DeploymentList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentList.Merge(m, src)\n}\nfunc (m *DeploymentList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentList) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentList proto.InternalMessageInfo\n\nfunc (m *DeploymentSpec) Reset()      { *m = DeploymentSpec{} }\nfunc (*DeploymentSpec) ProtoMessage() {}\nfunc (*DeploymentSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5b781835628d5338, []int{11}\n}\nfunc (m *DeploymentSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentSpec.Merge(m, src)\n}\nfunc (m *DeploymentSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentSpec proto.InternalMessageInfo\n\nfunc (m *DeploymentStatus) Reset()      { *m = DeploymentStatus{} }\nfunc (*DeploymentStatus) ProtoMessage() {}\nfunc (*DeploymentStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5b781835628d5338, []int{12}\n}\nfunc (m *DeploymentStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentStatus.Merge(m, src)\n}\nfunc (m *DeploymentStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentStatus proto.InternalMessageInfo\n\nfunc (m *DeploymentStrategy) Reset()      { *m = DeploymentStrategy{} }\nfunc (*DeploymentStrategy) ProtoMessage() {}\nfunc (*DeploymentStrategy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5b781835628d5338, []int{13}\n}\nfunc (m *DeploymentStrategy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentStrategy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentStrategy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentStrategy.Merge(m, src)\n}\nfunc (m *DeploymentStrategy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentStrategy) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentStrategy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentStrategy proto.InternalMessageInfo\n\nfunc (m *ReplicaSet) Reset()      { *m = ReplicaSet{} }\nfunc (*ReplicaSet) ProtoMessage() {}\nfunc (*ReplicaSet) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5b781835628d5338, []int{14}\n}\nfunc (m *ReplicaSet) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ReplicaSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ReplicaSet) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ReplicaSet.Merge(m, src)\n}\nfunc (m *ReplicaSet) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ReplicaSet) XXX_DiscardUnknown() {\n\txxx_messageInfo_ReplicaSet.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ReplicaSet proto.InternalMessageInfo\n\nfunc (m *ReplicaSetCondition) Reset()      { *m = ReplicaSetCondition{} }\nfunc (*ReplicaSetCondition) ProtoMessage() {}\nfunc (*ReplicaSetCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5b781835628d5338, []int{15}\n}\nfunc (m *ReplicaSetCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ReplicaSetCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ReplicaSetCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ReplicaSetCondition.Merge(m, src)\n}\nfunc (m *ReplicaSetCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ReplicaSetCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_ReplicaSetCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ReplicaSetCondition proto.InternalMessageInfo\n\nfunc (m *ReplicaSetList) Reset()      { *m = ReplicaSetList{} }\nfunc (*ReplicaSetList) ProtoMessage() {}\nfunc (*ReplicaSetList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5b781835628d5338, []int{16}\n}\nfunc (m *ReplicaSetList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ReplicaSetList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ReplicaSetList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ReplicaSetList.Merge(m, src)\n}\nfunc (m *ReplicaSetList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ReplicaSetList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ReplicaSetList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ReplicaSetList proto.InternalMessageInfo\n\nfunc (m *ReplicaSetSpec) Reset()      { *m = ReplicaSetSpec{} }\nfunc (*ReplicaSetSpec) ProtoMessage() {}\nfunc (*ReplicaSetSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5b781835628d5338, []int{17}\n}\nfunc (m *ReplicaSetSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ReplicaSetSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ReplicaSetSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ReplicaSetSpec.Merge(m, src)\n}\nfunc (m *ReplicaSetSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ReplicaSetSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ReplicaSetSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ReplicaSetSpec proto.InternalMessageInfo\n\nfunc (m *ReplicaSetStatus) Reset()      { *m = ReplicaSetStatus{} }\nfunc (*ReplicaSetStatus) ProtoMessage() {}\nfunc (*ReplicaSetStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5b781835628d5338, []int{18}\n}\nfunc (m *ReplicaSetStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ReplicaSetStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ReplicaSetStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ReplicaSetStatus.Merge(m, src)\n}\nfunc (m *ReplicaSetStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ReplicaSetStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ReplicaSetStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ReplicaSetStatus proto.InternalMessageInfo\n\nfunc (m *RollingUpdateDaemonSet) Reset()      { *m = RollingUpdateDaemonSet{} }\nfunc (*RollingUpdateDaemonSet) ProtoMessage() {}\nfunc (*RollingUpdateDaemonSet) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5b781835628d5338, []int{19}\n}\nfunc (m *RollingUpdateDaemonSet) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RollingUpdateDaemonSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RollingUpdateDaemonSet) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RollingUpdateDaemonSet.Merge(m, src)\n}\nfunc (m *RollingUpdateDaemonSet) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RollingUpdateDaemonSet) XXX_DiscardUnknown() {\n\txxx_messageInfo_RollingUpdateDaemonSet.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RollingUpdateDaemonSet proto.InternalMessageInfo\n\nfunc (m *RollingUpdateDeployment) Reset()      { *m = RollingUpdateDeployment{} }\nfunc (*RollingUpdateDeployment) ProtoMessage() {}\nfunc (*RollingUpdateDeployment) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5b781835628d5338, []int{20}\n}\nfunc (m *RollingUpdateDeployment) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RollingUpdateDeployment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RollingUpdateDeployment) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RollingUpdateDeployment.Merge(m, src)\n}\nfunc (m *RollingUpdateDeployment) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RollingUpdateDeployment) XXX_DiscardUnknown() {\n\txxx_messageInfo_RollingUpdateDeployment.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RollingUpdateDeployment proto.InternalMessageInfo\n\nfunc (m *RollingUpdateStatefulSetStrategy) Reset()      { *m = RollingUpdateStatefulSetStrategy{} }\nfunc (*RollingUpdateStatefulSetStrategy) ProtoMessage() {}\nfunc (*RollingUpdateStatefulSetStrategy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5b781835628d5338, []int{21}\n}\nfunc (m *RollingUpdateStatefulSetStrategy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RollingUpdateStatefulSetStrategy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RollingUpdateStatefulSetStrategy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RollingUpdateStatefulSetStrategy.Merge(m, src)\n}\nfunc (m *RollingUpdateStatefulSetStrategy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RollingUpdateStatefulSetStrategy) XXX_DiscardUnknown() {\n\txxx_messageInfo_RollingUpdateStatefulSetStrategy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RollingUpdateStatefulSetStrategy proto.InternalMessageInfo\n\nfunc (m *StatefulSet) Reset()      { *m = StatefulSet{} }\nfunc (*StatefulSet) ProtoMessage() {}\nfunc (*StatefulSet) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5b781835628d5338, []int{22}\n}\nfunc (m *StatefulSet) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSet) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSet.Merge(m, src)\n}\nfunc (m *StatefulSet) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSet) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSet.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSet proto.InternalMessageInfo\n\nfunc (m *StatefulSetCondition) Reset()      { *m = StatefulSetCondition{} }\nfunc (*StatefulSetCondition) ProtoMessage() {}\nfunc (*StatefulSetCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5b781835628d5338, []int{23}\n}\nfunc (m *StatefulSetCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSetCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSetCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSetCondition.Merge(m, src)\n}\nfunc (m *StatefulSetCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSetCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSetCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSetCondition proto.InternalMessageInfo\n\nfunc (m *StatefulSetList) Reset()      { *m = StatefulSetList{} }\nfunc (*StatefulSetList) ProtoMessage() {}\nfunc (*StatefulSetList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5b781835628d5338, []int{24}\n}\nfunc (m *StatefulSetList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSetList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSetList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSetList.Merge(m, src)\n}\nfunc (m *StatefulSetList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSetList) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSetList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSetList proto.InternalMessageInfo\n\nfunc (m *StatefulSetOrdinals) Reset()      { *m = StatefulSetOrdinals{} }\nfunc (*StatefulSetOrdinals) ProtoMessage() {}\nfunc (*StatefulSetOrdinals) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5b781835628d5338, []int{25}\n}\nfunc (m *StatefulSetOrdinals) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSetOrdinals) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSetOrdinals) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSetOrdinals.Merge(m, src)\n}\nfunc (m *StatefulSetOrdinals) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSetOrdinals) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSetOrdinals.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSetOrdinals proto.InternalMessageInfo\n\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) Reset() {\n\t*m = StatefulSetPersistentVolumeClaimRetentionPolicy{}\n}\nfunc (*StatefulSetPersistentVolumeClaimRetentionPolicy) ProtoMessage() {}\nfunc (*StatefulSetPersistentVolumeClaimRetentionPolicy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5b781835628d5338, []int{26}\n}\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSetPersistentVolumeClaimRetentionPolicy.Merge(m, src)\n}\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSetPersistentVolumeClaimRetentionPolicy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSetPersistentVolumeClaimRetentionPolicy proto.InternalMessageInfo\n\nfunc (m *StatefulSetSpec) Reset()      { *m = StatefulSetSpec{} }\nfunc (*StatefulSetSpec) ProtoMessage() {}\nfunc (*StatefulSetSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5b781835628d5338, []int{27}\n}\nfunc (m *StatefulSetSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSetSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSetSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSetSpec.Merge(m, src)\n}\nfunc (m *StatefulSetSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSetSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSetSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSetSpec proto.InternalMessageInfo\n\nfunc (m *StatefulSetStatus) Reset()      { *m = StatefulSetStatus{} }\nfunc (*StatefulSetStatus) ProtoMessage() {}\nfunc (*StatefulSetStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5b781835628d5338, []int{28}\n}\nfunc (m *StatefulSetStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSetStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSetStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSetStatus.Merge(m, src)\n}\nfunc (m *StatefulSetStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSetStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSetStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSetStatus proto.InternalMessageInfo\n\nfunc (m *StatefulSetUpdateStrategy) Reset()      { *m = StatefulSetUpdateStrategy{} }\nfunc (*StatefulSetUpdateStrategy) ProtoMessage() {}\nfunc (*StatefulSetUpdateStrategy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5b781835628d5338, []int{29}\n}\nfunc (m *StatefulSetUpdateStrategy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSetUpdateStrategy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSetUpdateStrategy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSetUpdateStrategy.Merge(m, src)\n}\nfunc (m *StatefulSetUpdateStrategy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSetUpdateStrategy) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSetUpdateStrategy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSetUpdateStrategy proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*ControllerRevision)(nil), \"k8s.io.api.apps.v1.ControllerRevision\")\n\tproto.RegisterType((*ControllerRevisionList)(nil), \"k8s.io.api.apps.v1.ControllerRevisionList\")\n\tproto.RegisterType((*DaemonSet)(nil), \"k8s.io.api.apps.v1.DaemonSet\")\n\tproto.RegisterType((*DaemonSetCondition)(nil), \"k8s.io.api.apps.v1.DaemonSetCondition\")\n\tproto.RegisterType((*DaemonSetList)(nil), \"k8s.io.api.apps.v1.DaemonSetList\")\n\tproto.RegisterType((*DaemonSetSpec)(nil), \"k8s.io.api.apps.v1.DaemonSetSpec\")\n\tproto.RegisterType((*DaemonSetStatus)(nil), \"k8s.io.api.apps.v1.DaemonSetStatus\")\n\tproto.RegisterType((*DaemonSetUpdateStrategy)(nil), \"k8s.io.api.apps.v1.DaemonSetUpdateStrategy\")\n\tproto.RegisterType((*Deployment)(nil), \"k8s.io.api.apps.v1.Deployment\")\n\tproto.RegisterType((*DeploymentCondition)(nil), \"k8s.io.api.apps.v1.DeploymentCondition\")\n\tproto.RegisterType((*DeploymentList)(nil), \"k8s.io.api.apps.v1.DeploymentList\")\n\tproto.RegisterType((*DeploymentSpec)(nil), \"k8s.io.api.apps.v1.DeploymentSpec\")\n\tproto.RegisterType((*DeploymentStatus)(nil), \"k8s.io.api.apps.v1.DeploymentStatus\")\n\tproto.RegisterType((*DeploymentStrategy)(nil), \"k8s.io.api.apps.v1.DeploymentStrategy\")\n\tproto.RegisterType((*ReplicaSet)(nil), \"k8s.io.api.apps.v1.ReplicaSet\")\n\tproto.RegisterType((*ReplicaSetCondition)(nil), \"k8s.io.api.apps.v1.ReplicaSetCondition\")\n\tproto.RegisterType((*ReplicaSetList)(nil), \"k8s.io.api.apps.v1.ReplicaSetList\")\n\tproto.RegisterType((*ReplicaSetSpec)(nil), \"k8s.io.api.apps.v1.ReplicaSetSpec\")\n\tproto.RegisterType((*ReplicaSetStatus)(nil), \"k8s.io.api.apps.v1.ReplicaSetStatus\")\n\tproto.RegisterType((*RollingUpdateDaemonSet)(nil), \"k8s.io.api.apps.v1.RollingUpdateDaemonSet\")\n\tproto.RegisterType((*RollingUpdateDeployment)(nil), \"k8s.io.api.apps.v1.RollingUpdateDeployment\")\n\tproto.RegisterType((*RollingUpdateStatefulSetStrategy)(nil), \"k8s.io.api.apps.v1.RollingUpdateStatefulSetStrategy\")\n\tproto.RegisterType((*StatefulSet)(nil), \"k8s.io.api.apps.v1.StatefulSet\")\n\tproto.RegisterType((*StatefulSetCondition)(nil), \"k8s.io.api.apps.v1.StatefulSetCondition\")\n\tproto.RegisterType((*StatefulSetList)(nil), \"k8s.io.api.apps.v1.StatefulSetList\")\n\tproto.RegisterType((*StatefulSetOrdinals)(nil), \"k8s.io.api.apps.v1.StatefulSetOrdinals\")\n\tproto.RegisterType((*StatefulSetPersistentVolumeClaimRetentionPolicy)(nil), \"k8s.io.api.apps.v1.StatefulSetPersistentVolumeClaimRetentionPolicy\")\n\tproto.RegisterType((*StatefulSetSpec)(nil), \"k8s.io.api.apps.v1.StatefulSetSpec\")\n\tproto.RegisterType((*StatefulSetStatus)(nil), \"k8s.io.api.apps.v1.StatefulSetStatus\")\n\tproto.RegisterType((*StatefulSetUpdateStrategy)(nil), \"k8s.io.api.apps.v1.StatefulSetUpdateStrategy\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/apps/v1/generated.proto\", fileDescriptor_5b781835628d5338)\n}\n\nvar fileDescriptor_5b781835628d5338 = []byte{\n\t// 2194 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0xcd, 0x6f, 0x1b, 0xc7,\n\t0x15, 0xd7, 0xf2, 0x43, 0xa2, 0x86, 0x96, 0x64, 0x8f, 0x54, 0x89, 0xb1, 0x1b, 0xd2, 0xdd, 0xb8,\n\t0xb6, 0x12, 0xc7, 0x64, 0xed, 0x38, 0x41, 0xe0, 0x14, 0x09, 0x44, 0x2a, 0x4d, 0xd3, 0xe8, 0xab,\n\t0x43, 0xcb, 0x01, 0xdc, 0xb4, 0xe8, 0x68, 0x39, 0xa6, 0x36, 0xde, 0x2f, 0xec, 0x0e, 0x15, 0x0b,\n\t0xbd, 0x14, 0x05, 0x7a, 0xeb, 0xa1, 0x7f, 0x43, 0xff, 0x81, 0xa2, 0x28, 0x9a, 0x5b, 0x10, 0x04,\n\t0xbd, 0xf8, 0x52, 0x20, 0xe8, 0xa5, 0x39, 0x11, 0x35, 0x73, 0x2a, 0x8a, 0xde, 0xda, 0x8b, 0x2f,\n\t0x2d, 0x66, 0x76, 0xf6, 0x7b, 0x56, 0xa4, 0xe4, 0x58, 0x69, 0x82, 0xdc, 0xb8, 0x33, 0xbf, 0xf7,\n\t0xdb, 0x37, 0x33, 0xef, 0xcd, 0xfb, 0xcd, 0x2c, 0x81, 0x7a, 0xff, 0x55, 0xaf, 0xa9, 0xdb, 0x2d,\n\t0xec, 0xe8, 0x2d, 0xec, 0x38, 0x5e, 0xeb, 0xe0, 0x7a, 0xab, 0x4f, 0x2c, 0xe2, 0x62, 0x4a, 0x7a,\n\t0x4d, 0xc7, 0xb5, 0xa9, 0x0d, 0xa1, 0x8f, 0x69, 0x62, 0x47, 0x6f, 0x32, 0x4c, 0xf3, 0xe0, 0xfa,\n\t0xf9, 0x6b, 0x7d, 0x9d, 0xee, 0x0f, 0xf6, 0x9a, 0x9a, 0x6d, 0xb6, 0xfa, 0x76, 0xdf, 0x6e, 0x71,\n\t0xe8, 0xde, 0xe0, 0x1e, 0x7f, 0xe2, 0x0f, 0xfc, 0x97, 0x4f, 0x71, 0x3e, 0xfe, 0x1a, 0xcd, 0x76,\n\t0x89, 0xe4, 0x35, 0xe7, 0x6f, 0x46, 0x18, 0x13, 0x6b, 0xfb, 0xba, 0x45, 0xdc, 0xc3, 0x96, 0x73,\n\t0xbf, 0xcf, 0x1a, 0xbc, 0x96, 0x49, 0x28, 0x96, 0x59, 0xb5, 0xf2, 0xac, 0xdc, 0x81, 0x45, 0x75,\n\t0x93, 0x64, 0x0c, 0x5e, 0x19, 0x67, 0xe0, 0x69, 0xfb, 0xc4, 0xc4, 0x19, 0xbb, 0x97, 0xf2, 0xec,\n\t0x06, 0x54, 0x37, 0x5a, 0xba, 0x45, 0x3d, 0xea, 0xa6, 0x8d, 0xd4, 0xff, 0x28, 0x00, 0x76, 0x6c,\n\t0x8b, 0xba, 0xb6, 0x61, 0x10, 0x17, 0x91, 0x03, 0xdd, 0xd3, 0x6d, 0x0b, 0xfe, 0x1c, 0x54, 0xd8,\n\t0x78, 0x7a, 0x98, 0xe2, 0x9a, 0x72, 0x51, 0x59, 0xad, 0xde, 0xf8, 0x5e, 0x33, 0x9a, 0xe4, 0x90,\n\t0xbe, 0xe9, 0xdc, 0xef, 0xb3, 0x06, 0xaf, 0xc9, 0xd0, 0xcd, 0x83, 0xeb, 0xcd, 0xed, 0xbd, 0xf7,\n\t0x89, 0x46, 0x37, 0x09, 0xc5, 0x6d, 0xf8, 0x70, 0xd8, 0x98, 0x1a, 0x0d, 0x1b, 0x20, 0x6a, 0x43,\n\t0x21, 0x2b, 0xdc, 0x06, 0x25, 0xce, 0x5e, 0xe0, 0xec, 0xd7, 0x72, 0xd9, 0xc5, 0xa0, 0x9b, 0x08,\n\t0x7f, 0xf0, 0xe6, 0x03, 0x4a, 0x2c, 0xe6, 0x5e, 0xfb, 0x8c, 0xa0, 0x2e, 0xad, 0x63, 0x8a, 0x11,\n\t0x27, 0x82, 0x2f, 0x82, 0x8a, 0x2b, 0xdc, 0xaf, 0x15, 0x2f, 0x2a, 0xab, 0xc5, 0xf6, 0x59, 0x81,\n\t0xaa, 0x04, 0xc3, 0x42, 0x21, 0x42, 0xfd, 0xb3, 0x02, 0x96, 0xb3, 0xe3, 0xde, 0xd0, 0x3d, 0x0a,\n\t0xdf, 0xcb, 0x8c, 0xbd, 0x39, 0xd9, 0xd8, 0x99, 0x35, 0x1f, 0x79, 0xf8, 0xe2, 0xa0, 0x25, 0x36,\n\t0xee, 0x77, 0x40, 0x59, 0xa7, 0xc4, 0xf4, 0x6a, 0x85, 0x8b, 0xc5, 0xd5, 0xea, 0x8d, 0xcb, 0xcd,\n\t0x6c, 0xec, 0x36, 0xb3, 0x8e, 0xb5, 0xe7, 0x04, 0x65, 0xf9, 0x6d, 0x66, 0x8c, 0x7c, 0x0e, 0xf5,\n\t0xbf, 0x0a, 0x98, 0x5d, 0xc7, 0xc4, 0xb4, 0xad, 0x2e, 0xa1, 0xa7, 0xb0, 0x68, 0x1d, 0x50, 0xf2,\n\t0x1c, 0xa2, 0x89, 0x45, 0xfb, 0x8e, 0xcc, 0xf7, 0xd0, 0x9d, 0xae, 0x43, 0xb4, 0x68, 0xa1, 0xd8,\n\t0x13, 0xe2, 0xc6, 0xf0, 0x1d, 0x30, 0xed, 0x51, 0x4c, 0x07, 0x1e, 0x5f, 0xa6, 0xea, 0x8d, 0xe7,\n\t0x8e, 0xa6, 0xe1, 0xd0, 0xf6, 0xbc, 0x20, 0x9a, 0xf6, 0x9f, 0x91, 0xa0, 0x50, 0xff, 0x51, 0x00,\n\t0x30, 0xc4, 0x76, 0x6c, 0xab, 0xa7, 0x53, 0x16, 0xbf, 0xb7, 0x40, 0x89, 0x1e, 0x3a, 0x84, 0x4f,\n\t0xc3, 0x6c, 0xfb, 0x72, 0xe0, 0xc5, 0xed, 0x43, 0x87, 0x3c, 0x1e, 0x36, 0x96, 0xb3, 0x16, 0xac,\n\t0x07, 0x71, 0x1b, 0xb8, 0x11, 0xfa, 0x57, 0xe0, 0xd6, 0x37, 0x93, 0xaf, 0x7e, 0x3c, 0x6c, 0x48,\n\t0x36, 0x8b, 0x66, 0xc8, 0x94, 0x74, 0x10, 0x1e, 0x00, 0x68, 0x60, 0x8f, 0xde, 0x76, 0xb1, 0xe5,\n\t0xf9, 0x6f, 0xd2, 0x4d, 0x22, 0x46, 0xfe, 0xc2, 0x64, 0xcb, 0xc3, 0x2c, 0xda, 0xe7, 0x85, 0x17,\n\t0x70, 0x23, 0xc3, 0x86, 0x24, 0x6f, 0x80, 0x97, 0xc1, 0xb4, 0x4b, 0xb0, 0x67, 0x5b, 0xb5, 0x12,\n\t0x1f, 0x45, 0x38, 0x81, 0x88, 0xb7, 0x22, 0xd1, 0x0b, 0x9f, 0x07, 0x33, 0x26, 0xf1, 0x3c, 0xdc,\n\t0x27, 0xb5, 0x32, 0x07, 0x2e, 0x08, 0xe0, 0xcc, 0xa6, 0xdf, 0x8c, 0x82, 0x7e, 0xf5, 0x0f, 0x0a,\n\t0x98, 0x0b, 0x67, 0xee, 0x14, 0x52, 0xa5, 0x9d, 0x4c, 0x95, 0x67, 0x8f, 0x8c, 0x93, 0x9c, 0x0c,\n\t0xf9, 0xb8, 0x18, 0xf3, 0x99, 0x05, 0x21, 0xfc, 0x29, 0xa8, 0x78, 0xc4, 0x20, 0x1a, 0xb5, 0x5d,\n\t0xe1, 0xf3, 0x4b, 0x13, 0xfa, 0x8c, 0xf7, 0x88, 0xd1, 0x15, 0xa6, 0xed, 0x33, 0xcc, 0xe9, 0xe0,\n\t0x09, 0x85, 0x94, 0xf0, 0xc7, 0xa0, 0x42, 0x89, 0xe9, 0x18, 0x98, 0x12, 0x91, 0x26, 0x89, 0xf8,\n\t0x66, 0xe1, 0xc2, 0xc8, 0x76, 0xec, 0xde, 0x6d, 0x01, 0xe3, 0x89, 0x12, 0xce, 0x43, 0xd0, 0x8a,\n\t0x42, 0x1a, 0x78, 0x1f, 0xcc, 0x0f, 0x9c, 0x1e, 0x43, 0x52, 0xb6, 0x75, 0xf7, 0x0f, 0x45, 0xf8,\n\t0x5c, 0x3d, 0x72, 0x42, 0x76, 0x13, 0x26, 0xed, 0x65, 0xf1, 0x82, 0xf9, 0x64, 0x3b, 0x4a, 0x51,\n\t0xc3, 0x35, 0xb0, 0x60, 0xea, 0x16, 0x22, 0xb8, 0x77, 0xd8, 0x25, 0x9a, 0x6d, 0xf5, 0x3c, 0x1e,\n\t0x40, 0xe5, 0xf6, 0x8a, 0x20, 0x58, 0xd8, 0x4c, 0x76, 0xa3, 0x34, 0x1e, 0x6e, 0x80, 0xa5, 0x60,\n\t0x9f, 0xfd, 0xa1, 0xee, 0x51, 0xdb, 0x3d, 0xdc, 0xd0, 0x4d, 0x9d, 0xd6, 0xa6, 0x39, 0x4f, 0x6d,\n\t0x34, 0x6c, 0x2c, 0x21, 0x49, 0x3f, 0x92, 0x5a, 0xa9, 0xbf, 0x99, 0x06, 0x0b, 0xa9, 0xdd, 0x00,\n\t0xde, 0x01, 0xcb, 0xda, 0xc0, 0x75, 0x89, 0x45, 0xb7, 0x06, 0xe6, 0x1e, 0x71, 0xbb, 0xda, 0x3e,\n\t0xe9, 0x0d, 0x0c, 0xd2, 0xe3, 0x2b, 0x5a, 0x6e, 0xd7, 0x85, 0xaf, 0xcb, 0x1d, 0x29, 0x0a, 0xe5,\n\t0x58, 0xc3, 0x1f, 0x01, 0x68, 0xf1, 0xa6, 0x4d, 0xdd, 0xf3, 0x42, 0xce, 0x02, 0xe7, 0x0c, 0x13,\n\t0x70, 0x2b, 0x83, 0x40, 0x12, 0x2b, 0xe6, 0x63, 0x8f, 0x78, 0xba, 0x4b, 0x7a, 0x69, 0x1f, 0x8b,\n\t0x49, 0x1f, 0xd7, 0xa5, 0x28, 0x94, 0x63, 0x0d, 0x5f, 0x06, 0x55, 0xff, 0x6d, 0x7c, 0xce, 0xc5,\n\t0xe2, 0x2c, 0x0a, 0xb2, 0xea, 0x56, 0xd4, 0x85, 0xe2, 0x38, 0x36, 0x34, 0x7b, 0xcf, 0x23, 0xee,\n\t0x01, 0xe9, 0xbd, 0xe5, 0x6b, 0x00, 0x56, 0x28, 0xcb, 0xbc, 0x50, 0x86, 0x43, 0xdb, 0xce, 0x20,\n\t0x90, 0xc4, 0x8a, 0x0d, 0xcd, 0x8f, 0x9a, 0xcc, 0xd0, 0xa6, 0x93, 0x43, 0xdb, 0x95, 0xa2, 0x50,\n\t0x8e, 0x35, 0x8b, 0x3d, 0xdf, 0xe5, 0xb5, 0x03, 0xac, 0x1b, 0x78, 0xcf, 0x20, 0xb5, 0x99, 0x64,\n\t0xec, 0x6d, 0x25, 0xbb, 0x51, 0x1a, 0x0f, 0xdf, 0x02, 0xe7, 0xfc, 0xa6, 0x5d, 0x0b, 0x87, 0x24,\n\t0x15, 0x4e, 0xf2, 0x8c, 0x20, 0x39, 0xb7, 0x95, 0x06, 0xa0, 0xac, 0x0d, 0xbc, 0x05, 0xe6, 0x35,\n\t0xdb, 0x30, 0x78, 0x3c, 0x76, 0xec, 0x81, 0x45, 0x6b, 0xb3, 0x9c, 0x05, 0xb2, 0x1c, 0xea, 0x24,\n\t0x7a, 0x50, 0x0a, 0x09, 0xef, 0x02, 0xa0, 0x05, 0xe5, 0xc0, 0xab, 0x81, 0xfc, 0x42, 0x9f, 0xad,\n\t0x43, 0x51, 0x01, 0x0e, 0x9b, 0x3c, 0x14, 0x63, 0x53, 0x3f, 0x56, 0xc0, 0x4a, 0x4e, 0x8e, 0xc3,\n\t0x37, 0x12, 0x55, 0xef, 0x6a, 0xaa, 0xea, 0x5d, 0xc8, 0x31, 0x8b, 0x95, 0x3e, 0x0d, 0xcc, 0x31,\n\t0xdd, 0xa1, 0x5b, 0x7d, 0x1f, 0x22, 0x76, 0xb0, 0x17, 0x64, 0xbe, 0xa3, 0x38, 0x30, 0xda, 0x86,\n\t0xcf, 0x8d, 0x86, 0x8d, 0xb9, 0x44, 0x1f, 0x4a, 0x72, 0xaa, 0xbf, 0x2a, 0x00, 0xb0, 0x4e, 0x1c,\n\t0xc3, 0x3e, 0x34, 0x89, 0x75, 0x1a, 0xaa, 0x65, 0x3d, 0xa1, 0x5a, 0x54, 0xe9, 0x42, 0x84, 0xfe,\n\t0xe4, 0xca, 0x96, 0x8d, 0x94, 0x6c, 0xb9, 0x34, 0x86, 0xe7, 0x68, 0xdd, 0xf2, 0xb7, 0x22, 0x58,\n\t0x8c, 0xc0, 0x91, 0x70, 0x79, 0x2d, 0xb1, 0x84, 0x57, 0x52, 0x4b, 0xb8, 0x22, 0x31, 0x79, 0x6a,\n\t0xca, 0xe5, 0x7d, 0x30, 0xcf, 0x74, 0x85, 0xbf, 0x6a, 0x5c, 0xb5, 0x4c, 0x1f, 0x5b, 0xb5, 0x84,\n\t0x55, 0x67, 0x23, 0xc1, 0x84, 0x52, 0xcc, 0x39, 0x2a, 0x69, 0xe6, 0xab, 0xa8, 0x92, 0xfe, 0xa8,\n\t0x80, 0xf9, 0x68, 0x99, 0x4e, 0x41, 0x26, 0x75, 0x92, 0x32, 0xa9, 0x7e, 0x74, 0x5c, 0xe6, 0xe8,\n\t0xa4, 0xbf, 0x96, 0xe2, 0x5e, 0x73, 0xa1, 0xb4, 0xca, 0x0e, 0x54, 0x8e, 0xa1, 0x6b, 0xd8, 0x13,\n\t0x65, 0xf5, 0x8c, 0x7f, 0x98, 0xf2, 0xdb, 0x50, 0xd8, 0x9b, 0x90, 0x54, 0x85, 0xa7, 0x2b, 0xa9,\n\t0x8a, 0x5f, 0x8c, 0xa4, 0xba, 0x0d, 0x2a, 0x5e, 0x20, 0xa6, 0x4a, 0x9c, 0xf2, 0xf2, 0xb8, 0x74,\n\t0x16, 0x3a, 0x2a, 0x64, 0x0d, 0x15, 0x54, 0xc8, 0x24, 0xd3, 0x4e, 0xe5, 0x2f, 0x53, 0x3b, 0xb1,\n\t0xf0, 0x76, 0xf0, 0xc0, 0x23, 0x3d, 0x9e, 0x4a, 0x95, 0x28, 0xbc, 0x77, 0x78, 0x2b, 0x12, 0xbd,\n\t0x70, 0x17, 0xac, 0x38, 0xae, 0xdd, 0x77, 0x89, 0xe7, 0xad, 0x13, 0xdc, 0x33, 0x74, 0x8b, 0x04,\n\t0x03, 0xf0, 0xab, 0xde, 0x85, 0xd1, 0xb0, 0xb1, 0xb2, 0x23, 0x87, 0xa0, 0x3c, 0x5b, 0xf5, 0xa3,\n\t0x12, 0x38, 0x9b, 0xde, 0x11, 0x73, 0x84, 0x88, 0x72, 0x22, 0x21, 0xf2, 0x62, 0x2c, 0x44, 0x7d,\n\t0x95, 0x16, 0x3b, 0xf3, 0x67, 0xc2, 0x74, 0x0d, 0x2c, 0x08, 0xe1, 0x11, 0x74, 0x0a, 0x29, 0x16,\n\t0x2e, 0xcf, 0x6e, 0xb2, 0x1b, 0xa5, 0xf1, 0xf0, 0x35, 0x30, 0xe7, 0x72, 0x6d, 0x15, 0x10, 0xf8,\n\t0xfa, 0xe4, 0x5b, 0x82, 0x60, 0x0e, 0xc5, 0x3b, 0x51, 0x12, 0xcb, 0xb4, 0x49, 0x24, 0x39, 0x02,\n\t0x82, 0x52, 0x52, 0x9b, 0xac, 0xa5, 0x01, 0x28, 0x6b, 0x03, 0x37, 0xc1, 0xe2, 0xc0, 0xca, 0x52,\n\t0xf9, 0xb1, 0x76, 0x41, 0x50, 0x2d, 0xee, 0x66, 0x21, 0x48, 0x66, 0x07, 0x7f, 0x92, 0x90, 0x2b,\n\t0xd3, 0x7c, 0x17, 0xb9, 0x72, 0x74, 0x3a, 0x4c, 0xac, 0x57, 0x24, 0x3a, 0xaa, 0x32, 0xa9, 0x8e,\n\t0x52, 0x3f, 0x54, 0x00, 0xcc, 0xa6, 0xe0, 0xd8, 0xc3, 0x7d, 0xc6, 0x22, 0x56, 0x22, 0x7b, 0x72,\n\t0x85, 0x73, 0x75, 0xbc, 0xc2, 0x89, 0x76, 0xd0, 0xc9, 0x24, 0x8e, 0x98, 0xde, 0xd3, 0xb9, 0x98,\n\t0x99, 0x40, 0xe2, 0x44, 0xfe, 0x3c, 0x99, 0xc4, 0x89, 0xf1, 0x1c, 0x2d, 0x71, 0xfe, 0x59, 0x00,\n\t0x8b, 0x11, 0x78, 0x62, 0x89, 0x23, 0x31, 0xf9, 0xe6, 0x72, 0x66, 0x32, 0xd9, 0x11, 0x4d, 0xdd,\n\t0xff, 0x89, 0xec, 0x88, 0x1c, 0xca, 0x91, 0x1d, 0xbf, 0x2f, 0xc4, 0xbd, 0x3e, 0xa6, 0xec, 0xf8,\n\t0x02, 0xae, 0x2a, 0xbe, 0x72, 0xca, 0x45, 0xfd, 0xa4, 0x08, 0xce, 0xa6, 0x53, 0x30, 0x51, 0x07,\n\t0x95, 0xb1, 0x75, 0x70, 0x07, 0x2c, 0xdd, 0x1b, 0x18, 0xc6, 0x21, 0x1f, 0x43, 0xac, 0x18, 0xfa,\n\t0x15, 0xf4, 0xdb, 0xc2, 0x72, 0xe9, 0x07, 0x12, 0x0c, 0x92, 0x5a, 0x66, 0xcb, 0x62, 0xe9, 0x49,\n\t0xcb, 0x62, 0xf9, 0x04, 0x65, 0x51, 0xae, 0x2c, 0x8a, 0x27, 0x52, 0x16, 0x13, 0xd7, 0x44, 0xc9,\n\t0x76, 0x35, 0xf6, 0x0c, 0x3f, 0x52, 0xc0, 0xb2, 0xfc, 0xf8, 0x0c, 0x0d, 0x30, 0x6f, 0xe2, 0x07,\n\t0xf1, 0xcb, 0x8b, 0x71, 0x05, 0x63, 0x40, 0x75, 0xa3, 0xe9, 0x7f, 0xdd, 0x69, 0xbe, 0x6d, 0xd1,\n\t0x6d, 0xb7, 0x4b, 0x5d, 0xdd, 0xea, 0xfb, 0x05, 0x76, 0x33, 0xc1, 0x85, 0x52, 0xdc, 0xf0, 0x2e,\n\t0xa8, 0x98, 0xf8, 0x41, 0x77, 0xe0, 0xf6, 0x83, 0x42, 0x78, 0xfc, 0xf7, 0xf0, 0xd8, 0xdf, 0x14,\n\t0x2c, 0x28, 0xe4, 0x53, 0x3f, 0x57, 0xc0, 0x4a, 0x4e, 0x05, 0xfd, 0x1a, 0x8d, 0xf2, 0x23, 0x05,\n\t0x5c, 0x4c, 0x8c, 0x92, 0x65, 0x24, 0xb9, 0x37, 0x30, 0x78, 0x72, 0x0a, 0xc1, 0x72, 0x15, 0xcc,\n\t0x3a, 0xd8, 0xa5, 0x7a, 0xa8, 0x74, 0xcb, 0xed, 0xb9, 0xd1, 0xb0, 0x31, 0xbb, 0x13, 0x34, 0xa2,\n\t0xa8, 0x5f, 0x32, 0x37, 0x85, 0xa7, 0x37, 0x37, 0xea, 0xaf, 0x0b, 0xa0, 0x1a, 0x73, 0xf9, 0x14,\n\t0xa4, 0xca, 0x9b, 0x09, 0xa9, 0x22, 0xfd, 0xf8, 0x13, 0x9f, 0xc3, 0x3c, 0xad, 0xb2, 0x99, 0xd2,\n\t0x2a, 0xdf, 0x1d, 0x47, 0x74, 0xb4, 0x58, 0xf9, 0x57, 0x01, 0x2c, 0xc5, 0xd0, 0x91, 0x5a, 0xf9,\n\t0x7e, 0x42, 0xad, 0xac, 0xa6, 0xd4, 0x4a, 0x4d, 0x66, 0xf3, 0x8d, 0x5c, 0x19, 0x2f, 0x57, 0xfe,\n\t0xa4, 0x80, 0x85, 0xd8, 0xdc, 0x9d, 0x82, 0x5e, 0x59, 0x4f, 0xea, 0x95, 0xc6, 0x98, 0x78, 0xc9,\n\t0x11, 0x2c, 0xb7, 0xc0, 0x62, 0x0c, 0xb4, 0xed, 0xf6, 0x74, 0x0b, 0x1b, 0x1e, 0x7c, 0x0e, 0x94,\n\t0x3d, 0x8a, 0x5d, 0x1a, 0x64, 0x77, 0x60, 0xdb, 0x65, 0x8d, 0xc8, 0xef, 0x53, 0xff, 0xad, 0x80,\n\t0x56, 0xcc, 0x78, 0x87, 0xb8, 0x9e, 0xee, 0x51, 0x62, 0xd1, 0x3b, 0xb6, 0x31, 0x30, 0x49, 0xc7,\n\t0xc0, 0xba, 0x89, 0x08, 0x6b, 0xd0, 0x6d, 0x6b, 0xc7, 0x36, 0x74, 0xed, 0x10, 0x62, 0x50, 0xfd,\n\t0x60, 0x9f, 0x58, 0xeb, 0xc4, 0x20, 0x54, 0x7c, 0xde, 0x98, 0x6d, 0xbf, 0x11, 0xdc, 0xf6, 0xbf,\n\t0x1b, 0x75, 0x3d, 0x1e, 0x36, 0x56, 0x27, 0x61, 0xe4, 0xc1, 0x19, 0xe7, 0x84, 0x3f, 0x03, 0x80,\n\t0x3d, 0x76, 0x35, 0x1c, 0x7c, 0xec, 0x98, 0x6d, 0xbf, 0x1e, 0xa4, 0xf0, 0xbb, 0x61, 0xcf, 0xb1,\n\t0x5e, 0x10, 0x63, 0x54, 0x7f, 0x57, 0x49, 0x2c, 0xf5, 0xd7, 0xfe, 0x6e, 0xe9, 0x17, 0x60, 0xe9,\n\t0x20, 0x9a, 0x9d, 0x00, 0xc0, 0x34, 0x11, 0x8b, 0xbb, 0xe7, 0xa5, 0xf4, 0xb2, 0x79, 0x8d, 0x94,\n\t0xd8, 0x1d, 0x09, 0x1d, 0x92, 0xbe, 0x04, 0xbe, 0x0c, 0xaa, 0x4c, 0xcb, 0xe8, 0x1a, 0xd9, 0xc2,\n\t0x66, 0x90, 0x86, 0xe1, 0xd7, 0xa1, 0x6e, 0xd4, 0x85, 0xe2, 0x38, 0xb8, 0x0f, 0x16, 0x1d, 0xbb,\n\t0xb7, 0x89, 0x2d, 0xdc, 0x27, 0xac, 0x42, 0xfb, 0x4b, 0xc9, 0x6f, 0x9d, 0x66, 0xdb, 0xaf, 0x04,\n\t0x37, 0x0a, 0x3b, 0x59, 0x08, 0x3b, 0xb1, 0x49, 0x9a, 0x79, 0x10, 0xc8, 0x28, 0xa1, 0x99, 0xf9,\n\t0x98, 0x39, 0x93, 0xf9, 0x07, 0x88, 0x2c, 0x1f, 0x4f, 0xf8, 0x39, 0x33, 0xef, 0x3e, 0xad, 0x72,\n\t0xa2, 0xfb, 0x34, 0xc9, 0x89, 0x63, 0xf6, 0x98, 0x27, 0x8e, 0x4f, 0x14, 0x70, 0xc9, 0x99, 0x20,\n\t0x8d, 0x6a, 0x80, 0x4f, 0x4b, 0x67, 0xcc, 0xb4, 0x4c, 0x92, 0x91, 0xed, 0xd5, 0xd1, 0xb0, 0x71,\n\t0x69, 0x12, 0x24, 0x9a, 0xc8, 0x35, 0x96, 0x34, 0xb6, 0xd8, 0xf9, 0x6a, 0x55, 0xee, 0xe6, 0x95,\n\t0x31, 0x6e, 0x06, 0x1b, 0xa5, 0x9f, 0x87, 0xc1, 0x13, 0x0a, 0x69, 0xd4, 0x0f, 0xcb, 0xe0, 0x5c,\n\t0xa6, 0x5a, 0x7f, 0x89, 0x77, 0x85, 0x99, 0x13, 0x4d, 0xf1, 0x18, 0x27, 0x9a, 0x35, 0xb0, 0x20,\n\t0x3e, 0x30, 0xa7, 0x0e, 0x44, 0x61, 0x98, 0x74, 0x92, 0xdd, 0x28, 0x8d, 0x97, 0xdd, 0x55, 0x96,\n\t0x8f, 0x79, 0x57, 0x19, 0xf7, 0x42, 0xfc, 0x2f, 0xca, 0xcf, 0xe7, 0xac, 0x17, 0xe2, 0xef, 0x51,\n\t0x69, 0x3c, 0x7c, 0x3d, 0x48, 0xd6, 0x90, 0x61, 0x86, 0x33, 0xa4, 0xb2, 0x2f, 0x24, 0x48, 0xa1,\n\t0x9f, 0xe8, 0x23, 0xea, 0x7b, 0x92, 0x8f, 0xa8, 0xab, 0x63, 0xc2, 0x6c, 0xf2, 0x6b, 0x49, 0xe9,\n\t0xa1, 0xb3, 0x7a, 0xfc, 0x43, 0xa7, 0xfa, 0x17, 0x05, 0x3c, 0x93, 0xbb, 0x4d, 0xc1, 0xb5, 0x84,\n\t0x7a, 0xbc, 0x96, 0x52, 0x8f, 0xcf, 0xe6, 0x1a, 0xc6, 0x24, 0xa4, 0x29, 0xbf, 0xb1, 0xbc, 0x39,\n\t0xf6, 0xc6, 0x52, 0x72, 0x12, 0x19, 0x7f, 0x75, 0xd9, 0x7e, 0xf5, 0xe1, 0xa3, 0xfa, 0xd4, 0xa7,\n\t0x8f, 0xea, 0x53, 0x9f, 0x3d, 0xaa, 0x4f, 0xfd, 0x72, 0x54, 0x57, 0x1e, 0x8e, 0xea, 0xca, 0xa7,\n\t0xa3, 0xba, 0xf2, 0xd9, 0xa8, 0xae, 0xfc, 0x7d, 0x54, 0x57, 0x7e, 0xfb, 0x79, 0x7d, 0xea, 0x2e,\n\t0xcc, 0xfe, 0x2b, 0xf3, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xd3, 0xfa, 0xed, 0x70, 0xaa, 0x29,\n\t0x00, 0x00,\n}\n\nfunc (m *ControllerRevision) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ControllerRevision) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ControllerRevision) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Revision))\n\ti--\n\tdAtA[i] = 0x18\n\t{\n\t\tsize, err := m.Data.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ControllerRevisionList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ControllerRevisionList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ControllerRevisionList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DaemonSet) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DaemonSet) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DaemonSet) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DaemonSetCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DaemonSetCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DaemonSetCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DaemonSetList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DaemonSetList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DaemonSetList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DaemonSetSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DaemonSetSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DaemonSetSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.RevisionHistoryLimit != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.RevisionHistoryLimit))\n\t\ti--\n\t\tdAtA[i] = 0x30\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds))\n\ti--\n\tdAtA[i] = 0x20\n\t{\n\t\tsize, err := m.UpdateStrategy.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Template.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DaemonSetStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DaemonSetStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DaemonSetStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x52\n\t\t}\n\t}\n\tif m.CollisionCount != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.CollisionCount))\n\t\ti--\n\t\tdAtA[i] = 0x48\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.NumberUnavailable))\n\ti--\n\tdAtA[i] = 0x40\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.NumberAvailable))\n\ti--\n\tdAtA[i] = 0x38\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.UpdatedNumberScheduled))\n\ti--\n\tdAtA[i] = 0x30\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration))\n\ti--\n\tdAtA[i] = 0x28\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.NumberReady))\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.DesiredNumberScheduled))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.NumberMisscheduled))\n\ti--\n\tdAtA[i] = 0x10\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.CurrentNumberScheduled))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DaemonSetUpdateStrategy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DaemonSetUpdateStrategy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DaemonSetUpdateStrategy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.RollingUpdate != nil {\n\t\t{\n\t\t\tsize, err := m.RollingUpdate.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Deployment) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Deployment) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Deployment) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x3a\n\t{\n\t\tsize, err := m.LastUpdateTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ProgressDeadlineSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.ProgressDeadlineSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x48\n\t}\n\ti--\n\tif m.Paused {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x38\n\tif m.RevisionHistoryLimit != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.RevisionHistoryLimit))\n\t\ti--\n\t\tdAtA[i] = 0x30\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds))\n\ti--\n\tdAtA[i] = 0x28\n\t{\n\t\tsize, err := m.Strategy.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.Template.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Replicas != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Replicas))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.CollisionCount != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.CollisionCount))\n\t\ti--\n\t\tdAtA[i] = 0x40\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ReadyReplicas))\n\ti--\n\tdAtA[i] = 0x38\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.UnavailableReplicas))\n\ti--\n\tdAtA[i] = 0x28\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.AvailableReplicas))\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.UpdatedReplicas))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Replicas))\n\ti--\n\tdAtA[i] = 0x10\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentStrategy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentStrategy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentStrategy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.RollingUpdate != nil {\n\t\t{\n\t\t\tsize, err := m.RollingUpdate.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ReplicaSet) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ReplicaSet) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ReplicaSet) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ReplicaSetCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ReplicaSetCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ReplicaSetCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ReplicaSetList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ReplicaSetList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ReplicaSetList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ReplicaSetSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ReplicaSetSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ReplicaSetSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds))\n\ti--\n\tdAtA[i] = 0x20\n\t{\n\t\tsize, err := m.Template.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Replicas != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Replicas))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ReplicaSetStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ReplicaSetStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ReplicaSetStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.AvailableReplicas))\n\ti--\n\tdAtA[i] = 0x28\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ReadyReplicas))\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.FullyLabeledReplicas))\n\ti--\n\tdAtA[i] = 0x10\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Replicas))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RollingUpdateDaemonSet) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RollingUpdateDaemonSet) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RollingUpdateDaemonSet) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.MaxSurge != nil {\n\t\t{\n\t\t\tsize, err := m.MaxSurge.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.MaxUnavailable != nil {\n\t\t{\n\t\t\tsize, err := m.MaxUnavailable.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RollingUpdateDeployment) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RollingUpdateDeployment) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RollingUpdateDeployment) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.MaxSurge != nil {\n\t\t{\n\t\t\tsize, err := m.MaxSurge.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.MaxUnavailable != nil {\n\t\t{\n\t\t\tsize, err := m.MaxUnavailable.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RollingUpdateStatefulSetStrategy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RollingUpdateStatefulSetStrategy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RollingUpdateStatefulSetStrategy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.MaxUnavailable != nil {\n\t\t{\n\t\t\tsize, err := m.MaxUnavailable.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Partition != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Partition))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSet) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSet) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSet) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSetCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSetCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSetCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSetList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSetList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSetList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSetOrdinals) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSetOrdinals) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSetOrdinals) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Start))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.WhenScaled)\n\tcopy(dAtA[i:], m.WhenScaled)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.WhenScaled)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.WhenDeleted)\n\tcopy(dAtA[i:], m.WhenDeleted)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.WhenDeleted)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSetSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSetSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSetSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Ordinals != nil {\n\t\t{\n\t\t\tsize, err := m.Ordinals.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x5a\n\t}\n\tif m.PersistentVolumeClaimRetentionPolicy != nil {\n\t\t{\n\t\t\tsize, err := m.PersistentVolumeClaimRetentionPolicy.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x52\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds))\n\ti--\n\tdAtA[i] = 0x48\n\tif m.RevisionHistoryLimit != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.RevisionHistoryLimit))\n\t\ti--\n\t\tdAtA[i] = 0x40\n\t}\n\t{\n\t\tsize, err := m.UpdateStrategy.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x3a\n\ti -= len(m.PodManagementPolicy)\n\tcopy(dAtA[i:], m.PodManagementPolicy)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.PodManagementPolicy)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.ServiceName)\n\tcopy(dAtA[i:], m.ServiceName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ServiceName)))\n\ti--\n\tdAtA[i] = 0x2a\n\tif len(m.VolumeClaimTemplates) > 0 {\n\t\tfor iNdEx := len(m.VolumeClaimTemplates) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.VolumeClaimTemplates[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.Template.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Replicas != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Replicas))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSetStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSetStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSetStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.AvailableReplicas))\n\ti--\n\tdAtA[i] = 0x58\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x52\n\t\t}\n\t}\n\tif m.CollisionCount != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.CollisionCount))\n\t\ti--\n\t\tdAtA[i] = 0x48\n\t}\n\ti -= len(m.UpdateRevision)\n\tcopy(dAtA[i:], m.UpdateRevision)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.UpdateRevision)))\n\ti--\n\tdAtA[i] = 0x3a\n\ti -= len(m.CurrentRevision)\n\tcopy(dAtA[i:], m.CurrentRevision)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.CurrentRevision)))\n\ti--\n\tdAtA[i] = 0x32\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.UpdatedReplicas))\n\ti--\n\tdAtA[i] = 0x28\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.CurrentReplicas))\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ReadyReplicas))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Replicas))\n\ti--\n\tdAtA[i] = 0x10\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSetUpdateStrategy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSetUpdateStrategy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSetUpdateStrategy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.RollingUpdate != nil {\n\t\t{\n\t\t\tsize, err := m.RollingUpdate.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *ControllerRevision) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Data.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.Revision))\n\treturn n\n}\n\nfunc (m *ControllerRevisionList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *DaemonSet) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *DaemonSetCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *DaemonSetList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *DaemonSetSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = m.Template.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.UpdateStrategy.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.MinReadySeconds))\n\tif m.RevisionHistoryLimit != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.RevisionHistoryLimit))\n\t}\n\treturn n\n}\n\nfunc (m *DaemonSetStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.CurrentNumberScheduled))\n\tn += 1 + sovGenerated(uint64(m.NumberMisscheduled))\n\tn += 1 + sovGenerated(uint64(m.DesiredNumberScheduled))\n\tn += 1 + sovGenerated(uint64(m.NumberReady))\n\tn += 1 + sovGenerated(uint64(m.ObservedGeneration))\n\tn += 1 + sovGenerated(uint64(m.UpdatedNumberScheduled))\n\tn += 1 + sovGenerated(uint64(m.NumberAvailable))\n\tn += 1 + sovGenerated(uint64(m.NumberUnavailable))\n\tif m.CollisionCount != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.CollisionCount))\n\t}\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *DaemonSetUpdateStrategy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.RollingUpdate != nil {\n\t\tl = m.RollingUpdate.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *Deployment) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *DeploymentCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastUpdateTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *DeploymentList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *DeploymentSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Replicas != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Replicas))\n\t}\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = m.Template.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Strategy.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.MinReadySeconds))\n\tif m.RevisionHistoryLimit != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.RevisionHistoryLimit))\n\t}\n\tn += 2\n\tif m.ProgressDeadlineSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.ProgressDeadlineSeconds))\n\t}\n\treturn n\n}\n\nfunc (m *DeploymentStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.ObservedGeneration))\n\tn += 1 + sovGenerated(uint64(m.Replicas))\n\tn += 1 + sovGenerated(uint64(m.UpdatedReplicas))\n\tn += 1 + sovGenerated(uint64(m.AvailableReplicas))\n\tn += 1 + sovGenerated(uint64(m.UnavailableReplicas))\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tn += 1 + sovGenerated(uint64(m.ReadyReplicas))\n\tif m.CollisionCount != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.CollisionCount))\n\t}\n\treturn n\n}\n\nfunc (m *DeploymentStrategy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.RollingUpdate != nil {\n\t\tl = m.RollingUpdate.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ReplicaSet) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ReplicaSetCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ReplicaSetList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ReplicaSetSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Replicas != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Replicas))\n\t}\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = m.Template.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.MinReadySeconds))\n\treturn n\n}\n\nfunc (m *ReplicaSetStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Replicas))\n\tn += 1 + sovGenerated(uint64(m.FullyLabeledReplicas))\n\tn += 1 + sovGenerated(uint64(m.ObservedGeneration))\n\tn += 1 + sovGenerated(uint64(m.ReadyReplicas))\n\tn += 1 + sovGenerated(uint64(m.AvailableReplicas))\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *RollingUpdateDaemonSet) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.MaxUnavailable != nil {\n\t\tl = m.MaxUnavailable.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.MaxSurge != nil {\n\t\tl = m.MaxSurge.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *RollingUpdateDeployment) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.MaxUnavailable != nil {\n\t\tl = m.MaxUnavailable.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.MaxSurge != nil {\n\t\tl = m.MaxSurge.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *RollingUpdateStatefulSetStrategy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Partition != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Partition))\n\t}\n\tif m.MaxUnavailable != nil {\n\t\tl = m.MaxUnavailable.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *StatefulSet) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *StatefulSetCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *StatefulSetList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *StatefulSetOrdinals) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Start))\n\treturn n\n}\n\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.WhenDeleted)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.WhenScaled)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *StatefulSetSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Replicas != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Replicas))\n\t}\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = m.Template.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.VolumeClaimTemplates) > 0 {\n\t\tfor _, e := range m.VolumeClaimTemplates {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.ServiceName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.PodManagementPolicy)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.UpdateStrategy.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.RevisionHistoryLimit != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.RevisionHistoryLimit))\n\t}\n\tn += 1 + sovGenerated(uint64(m.MinReadySeconds))\n\tif m.PersistentVolumeClaimRetentionPolicy != nil {\n\t\tl = m.PersistentVolumeClaimRetentionPolicy.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Ordinals != nil {\n\t\tl = m.Ordinals.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *StatefulSetStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.ObservedGeneration))\n\tn += 1 + sovGenerated(uint64(m.Replicas))\n\tn += 1 + sovGenerated(uint64(m.ReadyReplicas))\n\tn += 1 + sovGenerated(uint64(m.CurrentReplicas))\n\tn += 1 + sovGenerated(uint64(m.UpdatedReplicas))\n\tl = len(m.CurrentRevision)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.UpdateRevision)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.CollisionCount != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.CollisionCount))\n\t}\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tn += 1 + sovGenerated(uint64(m.AvailableReplicas))\n\treturn n\n}\n\nfunc (m *StatefulSetUpdateStrategy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.RollingUpdate != nil {\n\t\tl = m.RollingUpdate.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *ControllerRevision) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ControllerRevision{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Data:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Data), \"RawExtension\", \"runtime.RawExtension\", 1), `&`, ``, 1) + `,`,\n\t\t`Revision:` + fmt.Sprintf(\"%v\", this.Revision) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ControllerRevisionList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ControllerRevision{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ControllerRevision\", \"ControllerRevision\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ControllerRevisionList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DaemonSet) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DaemonSet{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"DaemonSetSpec\", \"DaemonSetSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"DaemonSetStatus\", \"DaemonSetStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DaemonSetCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DaemonSetCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DaemonSetList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]DaemonSet{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"DaemonSet\", \"DaemonSet\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&DaemonSetList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DaemonSetSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DaemonSetSpec{`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`Template:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Template), \"PodTemplateSpec\", \"v11.PodTemplateSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`UpdateStrategy:` + strings.Replace(strings.Replace(this.UpdateStrategy.String(), \"DaemonSetUpdateStrategy\", \"DaemonSetUpdateStrategy\", 1), `&`, ``, 1) + `,`,\n\t\t`MinReadySeconds:` + fmt.Sprintf(\"%v\", this.MinReadySeconds) + `,`,\n\t\t`RevisionHistoryLimit:` + valueToStringGenerated(this.RevisionHistoryLimit) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DaemonSetStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]DaemonSetCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"DaemonSetCondition\", \"DaemonSetCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&DaemonSetStatus{`,\n\t\t`CurrentNumberScheduled:` + fmt.Sprintf(\"%v\", this.CurrentNumberScheduled) + `,`,\n\t\t`NumberMisscheduled:` + fmt.Sprintf(\"%v\", this.NumberMisscheduled) + `,`,\n\t\t`DesiredNumberScheduled:` + fmt.Sprintf(\"%v\", this.DesiredNumberScheduled) + `,`,\n\t\t`NumberReady:` + fmt.Sprintf(\"%v\", this.NumberReady) + `,`,\n\t\t`ObservedGeneration:` + fmt.Sprintf(\"%v\", this.ObservedGeneration) + `,`,\n\t\t`UpdatedNumberScheduled:` + fmt.Sprintf(\"%v\", this.UpdatedNumberScheduled) + `,`,\n\t\t`NumberAvailable:` + fmt.Sprintf(\"%v\", this.NumberAvailable) + `,`,\n\t\t`NumberUnavailable:` + fmt.Sprintf(\"%v\", this.NumberUnavailable) + `,`,\n\t\t`CollisionCount:` + valueToStringGenerated(this.CollisionCount) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DaemonSetUpdateStrategy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DaemonSetUpdateStrategy{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`RollingUpdate:` + strings.Replace(this.RollingUpdate.String(), \"RollingUpdateDaemonSet\", \"RollingUpdateDaemonSet\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Deployment) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Deployment{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"DeploymentSpec\", \"DeploymentSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"DeploymentStatus\", \"DeploymentStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeploymentCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`LastUpdateTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastUpdateTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Deployment{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Deployment\", \"Deployment\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&DeploymentList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeploymentSpec{`,\n\t\t`Replicas:` + valueToStringGenerated(this.Replicas) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`Template:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Template), \"PodTemplateSpec\", \"v11.PodTemplateSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Strategy:` + strings.Replace(strings.Replace(this.Strategy.String(), \"DeploymentStrategy\", \"DeploymentStrategy\", 1), `&`, ``, 1) + `,`,\n\t\t`MinReadySeconds:` + fmt.Sprintf(\"%v\", this.MinReadySeconds) + `,`,\n\t\t`RevisionHistoryLimit:` + valueToStringGenerated(this.RevisionHistoryLimit) + `,`,\n\t\t`Paused:` + fmt.Sprintf(\"%v\", this.Paused) + `,`,\n\t\t`ProgressDeadlineSeconds:` + valueToStringGenerated(this.ProgressDeadlineSeconds) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]DeploymentCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"DeploymentCondition\", \"DeploymentCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&DeploymentStatus{`,\n\t\t`ObservedGeneration:` + fmt.Sprintf(\"%v\", this.ObservedGeneration) + `,`,\n\t\t`Replicas:` + fmt.Sprintf(\"%v\", this.Replicas) + `,`,\n\t\t`UpdatedReplicas:` + fmt.Sprintf(\"%v\", this.UpdatedReplicas) + `,`,\n\t\t`AvailableReplicas:` + fmt.Sprintf(\"%v\", this.AvailableReplicas) + `,`,\n\t\t`UnavailableReplicas:` + fmt.Sprintf(\"%v\", this.UnavailableReplicas) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`ReadyReplicas:` + fmt.Sprintf(\"%v\", this.ReadyReplicas) + `,`,\n\t\t`CollisionCount:` + valueToStringGenerated(this.CollisionCount) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentStrategy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeploymentStrategy{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`RollingUpdate:` + strings.Replace(this.RollingUpdate.String(), \"RollingUpdateDeployment\", \"RollingUpdateDeployment\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ReplicaSet) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ReplicaSet{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ReplicaSetSpec\", \"ReplicaSetSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"ReplicaSetStatus\", \"ReplicaSetStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ReplicaSetCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ReplicaSetCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ReplicaSetList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ReplicaSet{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ReplicaSet\", \"ReplicaSet\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ReplicaSetList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ReplicaSetSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ReplicaSetSpec{`,\n\t\t`Replicas:` + valueToStringGenerated(this.Replicas) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`Template:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Template), \"PodTemplateSpec\", \"v11.PodTemplateSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`MinReadySeconds:` + fmt.Sprintf(\"%v\", this.MinReadySeconds) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ReplicaSetStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]ReplicaSetCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"ReplicaSetCondition\", \"ReplicaSetCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&ReplicaSetStatus{`,\n\t\t`Replicas:` + fmt.Sprintf(\"%v\", this.Replicas) + `,`,\n\t\t`FullyLabeledReplicas:` + fmt.Sprintf(\"%v\", this.FullyLabeledReplicas) + `,`,\n\t\t`ObservedGeneration:` + fmt.Sprintf(\"%v\", this.ObservedGeneration) + `,`,\n\t\t`ReadyReplicas:` + fmt.Sprintf(\"%v\", this.ReadyReplicas) + `,`,\n\t\t`AvailableReplicas:` + fmt.Sprintf(\"%v\", this.AvailableReplicas) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RollingUpdateDaemonSet) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RollingUpdateDaemonSet{`,\n\t\t`MaxUnavailable:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaxUnavailable), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`MaxSurge:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaxSurge), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RollingUpdateDeployment) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RollingUpdateDeployment{`,\n\t\t`MaxUnavailable:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaxUnavailable), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`MaxSurge:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaxSurge), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RollingUpdateStatefulSetStrategy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RollingUpdateStatefulSetStrategy{`,\n\t\t`Partition:` + valueToStringGenerated(this.Partition) + `,`,\n\t\t`MaxUnavailable:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaxUnavailable), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSet) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StatefulSet{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"StatefulSetSpec\", \"StatefulSetSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"StatefulSetStatus\", \"StatefulSetStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSetCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StatefulSetCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSetList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]StatefulSet{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"StatefulSet\", \"StatefulSet\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&StatefulSetList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSetOrdinals) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StatefulSetOrdinals{`,\n\t\t`Start:` + fmt.Sprintf(\"%v\", this.Start) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSetPersistentVolumeClaimRetentionPolicy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StatefulSetPersistentVolumeClaimRetentionPolicy{`,\n\t\t`WhenDeleted:` + fmt.Sprintf(\"%v\", this.WhenDeleted) + `,`,\n\t\t`WhenScaled:` + fmt.Sprintf(\"%v\", this.WhenScaled) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSetSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForVolumeClaimTemplates := \"[]PersistentVolumeClaim{\"\n\tfor _, f := range this.VolumeClaimTemplates {\n\t\trepeatedStringForVolumeClaimTemplates += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForVolumeClaimTemplates += \"}\"\n\ts := strings.Join([]string{`&StatefulSetSpec{`,\n\t\t`Replicas:` + valueToStringGenerated(this.Replicas) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`Template:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Template), \"PodTemplateSpec\", \"v11.PodTemplateSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`VolumeClaimTemplates:` + repeatedStringForVolumeClaimTemplates + `,`,\n\t\t`ServiceName:` + fmt.Sprintf(\"%v\", this.ServiceName) + `,`,\n\t\t`PodManagementPolicy:` + fmt.Sprintf(\"%v\", this.PodManagementPolicy) + `,`,\n\t\t`UpdateStrategy:` + strings.Replace(strings.Replace(this.UpdateStrategy.String(), \"StatefulSetUpdateStrategy\", \"StatefulSetUpdateStrategy\", 1), `&`, ``, 1) + `,`,\n\t\t`RevisionHistoryLimit:` + valueToStringGenerated(this.RevisionHistoryLimit) + `,`,\n\t\t`MinReadySeconds:` + fmt.Sprintf(\"%v\", this.MinReadySeconds) + `,`,\n\t\t`PersistentVolumeClaimRetentionPolicy:` + strings.Replace(this.PersistentVolumeClaimRetentionPolicy.String(), \"StatefulSetPersistentVolumeClaimRetentionPolicy\", \"StatefulSetPersistentVolumeClaimRetentionPolicy\", 1) + `,`,\n\t\t`Ordinals:` + strings.Replace(this.Ordinals.String(), \"StatefulSetOrdinals\", \"StatefulSetOrdinals\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSetStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]StatefulSetCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"StatefulSetCondition\", \"StatefulSetCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&StatefulSetStatus{`,\n\t\t`ObservedGeneration:` + fmt.Sprintf(\"%v\", this.ObservedGeneration) + `,`,\n\t\t`Replicas:` + fmt.Sprintf(\"%v\", this.Replicas) + `,`,\n\t\t`ReadyReplicas:` + fmt.Sprintf(\"%v\", this.ReadyReplicas) + `,`,\n\t\t`CurrentReplicas:` + fmt.Sprintf(\"%v\", this.CurrentReplicas) + `,`,\n\t\t`UpdatedReplicas:` + fmt.Sprintf(\"%v\", this.UpdatedReplicas) + `,`,\n\t\t`CurrentRevision:` + fmt.Sprintf(\"%v\", this.CurrentRevision) + `,`,\n\t\t`UpdateRevision:` + fmt.Sprintf(\"%v\", this.UpdateRevision) + `,`,\n\t\t`CollisionCount:` + valueToStringGenerated(this.CollisionCount) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`AvailableReplicas:` + fmt.Sprintf(\"%v\", this.AvailableReplicas) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSetUpdateStrategy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StatefulSetUpdateStrategy{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`RollingUpdate:` + strings.Replace(this.RollingUpdate.String(), \"RollingUpdateStatefulSetStrategy\", \"RollingUpdateStatefulSetStrategy\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *ControllerRevision) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ControllerRevision: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ControllerRevision: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Data\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Data.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Revision\", wireType)\n\t\t\t}\n\t\t\tm.Revision = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Revision |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ControllerRevisionList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ControllerRevisionList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ControllerRevisionList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ControllerRevision{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DaemonSet) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSet: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSet: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DaemonSetCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = DaemonSetConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DaemonSetList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, DaemonSet{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DaemonSetSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Template\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UpdateStrategy\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.UpdateStrategy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MinReadySeconds\", wireType)\n\t\t\t}\n\t\t\tm.MinReadySeconds = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MinReadySeconds |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RevisionHistoryLimit\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.RevisionHistoryLimit = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DaemonSetStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentNumberScheduled\", wireType)\n\t\t\t}\n\t\t\tm.CurrentNumberScheduled = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.CurrentNumberScheduled |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NumberMisscheduled\", wireType)\n\t\t\t}\n\t\t\tm.NumberMisscheduled = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.NumberMisscheduled |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DesiredNumberScheduled\", wireType)\n\t\t\t}\n\t\t\tm.DesiredNumberScheduled = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.DesiredNumberScheduled |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NumberReady\", wireType)\n\t\t\t}\n\t\t\tm.NumberReady = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.NumberReady |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tm.ObservedGeneration = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ObservedGeneration |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UpdatedNumberScheduled\", wireType)\n\t\t\t}\n\t\t\tm.UpdatedNumberScheduled = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.UpdatedNumberScheduled |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NumberAvailable\", wireType)\n\t\t\t}\n\t\t\tm.NumberAvailable = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.NumberAvailable |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NumberUnavailable\", wireType)\n\t\t\t}\n\t\t\tm.NumberUnavailable = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.NumberUnavailable |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 9:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CollisionCount\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.CollisionCount = &v\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, DaemonSetCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DaemonSetUpdateStrategy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetUpdateStrategy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetUpdateStrategy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = DaemonSetUpdateStrategyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RollingUpdate\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RollingUpdate == nil {\n\t\t\t\tm.RollingUpdate = &RollingUpdateDaemonSet{}\n\t\t\t}\n\t\t\tif err := m.RollingUpdate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Deployment) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Deployment: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Deployment: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = DeploymentConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastUpdateTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastUpdateTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Deployment{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Replicas = &v\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Template\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Strategy\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Strategy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MinReadySeconds\", wireType)\n\t\t\t}\n\t\t\tm.MinReadySeconds = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MinReadySeconds |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RevisionHistoryLimit\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.RevisionHistoryLimit = &v\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Paused\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Paused = bool(v != 0)\n\t\tcase 9:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ProgressDeadlineSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ProgressDeadlineSeconds = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tm.ObservedGeneration = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ObservedGeneration |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tm.Replicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Replicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UpdatedReplicas\", wireType)\n\t\t\t}\n\t\t\tm.UpdatedReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.UpdatedReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AvailableReplicas\", wireType)\n\t\t\t}\n\t\t\tm.AvailableReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.AvailableReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UnavailableReplicas\", wireType)\n\t\t\t}\n\t\t\tm.UnavailableReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.UnavailableReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, DeploymentCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadyReplicas\", wireType)\n\t\t\t}\n\t\t\tm.ReadyReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ReadyReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CollisionCount\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.CollisionCount = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentStrategy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentStrategy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentStrategy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = DeploymentStrategyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RollingUpdate\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RollingUpdate == nil {\n\t\t\t\tm.RollingUpdate = &RollingUpdateDeployment{}\n\t\t\t}\n\t\t\tif err := m.RollingUpdate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ReplicaSet) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSet: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSet: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ReplicaSetCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = ReplicaSetConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ReplicaSetList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ReplicaSet{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ReplicaSetSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Replicas = &v\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Template\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MinReadySeconds\", wireType)\n\t\t\t}\n\t\t\tm.MinReadySeconds = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MinReadySeconds |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ReplicaSetStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tm.Replicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Replicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FullyLabeledReplicas\", wireType)\n\t\t\t}\n\t\t\tm.FullyLabeledReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.FullyLabeledReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tm.ObservedGeneration = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ObservedGeneration |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadyReplicas\", wireType)\n\t\t\t}\n\t\t\tm.ReadyReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ReadyReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AvailableReplicas\", wireType)\n\t\t\t}\n\t\t\tm.AvailableReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.AvailableReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, ReplicaSetCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RollingUpdateDaemonSet) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RollingUpdateDaemonSet: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RollingUpdateDaemonSet: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxUnavailable\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaxUnavailable == nil {\n\t\t\t\tm.MaxUnavailable = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.MaxUnavailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxSurge\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaxSurge == nil {\n\t\t\t\tm.MaxSurge = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.MaxSurge.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RollingUpdateDeployment) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RollingUpdateDeployment: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RollingUpdateDeployment: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxUnavailable\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaxUnavailable == nil {\n\t\t\t\tm.MaxUnavailable = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.MaxUnavailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxSurge\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaxSurge == nil {\n\t\t\t\tm.MaxSurge = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.MaxSurge.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RollingUpdateStatefulSetStrategy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RollingUpdateStatefulSetStrategy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RollingUpdateStatefulSetStrategy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Partition\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Partition = &v\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxUnavailable\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaxUnavailable == nil {\n\t\t\t\tm.MaxUnavailable = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.MaxUnavailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSet) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSet: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSet: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSetCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = StatefulSetConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSetList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, StatefulSet{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSetOrdinals) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetOrdinals: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetOrdinals: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Start\", wireType)\n\t\t\t}\n\t\t\tm.Start = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Start |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetPersistentVolumeClaimRetentionPolicy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetPersistentVolumeClaimRetentionPolicy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field WhenDeleted\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.WhenDeleted = PersistentVolumeClaimRetentionPolicyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field WhenScaled\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.WhenScaled = PersistentVolumeClaimRetentionPolicyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSetSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Replicas = &v\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Template\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeClaimTemplates\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumeClaimTemplates = append(m.VolumeClaimTemplates, v11.PersistentVolumeClaim{})\n\t\t\tif err := m.VolumeClaimTemplates[len(m.VolumeClaimTemplates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServiceName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ServiceName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodManagementPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PodManagementPolicy = PodManagementPolicyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UpdateStrategy\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.UpdateStrategy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RevisionHistoryLimit\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.RevisionHistoryLimit = &v\n\t\tcase 9:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MinReadySeconds\", wireType)\n\t\t\t}\n\t\t\tm.MinReadySeconds = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MinReadySeconds |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PersistentVolumeClaimRetentionPolicy\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.PersistentVolumeClaimRetentionPolicy == nil {\n\t\t\t\tm.PersistentVolumeClaimRetentionPolicy = &StatefulSetPersistentVolumeClaimRetentionPolicy{}\n\t\t\t}\n\t\t\tif err := m.PersistentVolumeClaimRetentionPolicy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ordinals\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Ordinals == nil {\n\t\t\t\tm.Ordinals = &StatefulSetOrdinals{}\n\t\t\t}\n\t\t\tif err := m.Ordinals.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSetStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tm.ObservedGeneration = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ObservedGeneration |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tm.Replicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Replicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadyReplicas\", wireType)\n\t\t\t}\n\t\t\tm.ReadyReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ReadyReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentReplicas\", wireType)\n\t\t\t}\n\t\t\tm.CurrentReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.CurrentReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UpdatedReplicas\", wireType)\n\t\t\t}\n\t\t\tm.UpdatedReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.UpdatedReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentRevision\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.CurrentRevision = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UpdateRevision\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.UpdateRevision = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CollisionCount\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.CollisionCount = &v\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, StatefulSetCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AvailableReplicas\", wireType)\n\t\t\t}\n\t\t\tm.AvailableReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.AvailableReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSetUpdateStrategy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetUpdateStrategy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetUpdateStrategy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = StatefulSetUpdateStrategyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RollingUpdate\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RollingUpdate == nil {\n\t\t\t\tm.RollingUpdate = &RollingUpdateStatefulSetStrategy{}\n\t\t\t}\n\t\t\tif err := m.RollingUpdate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.apps.v1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/util/intstr/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/apps/v1\";\n\n// ControllerRevision implements an immutable snapshot of state data. Clients\n// are responsible for serializing and deserializing the objects that contain\n// their internal state.\n// Once a ControllerRevision has been successfully created, it can not be updated.\n// The API Server will fail validation of all requests that attempt to mutate\n// the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both\n// the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However,\n// it may be subject to name and representation changes in future releases, and clients should not\n// depend on its stability. It is primarily for internal use by controllers.\nmessage ControllerRevision {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Data is the serialized representation of the state.\n  optional .k8s.io.apimachinery.pkg.runtime.RawExtension data = 2;\n\n  // Revision indicates the revision of the state represented by Data.\n  optional int64 revision = 3;\n}\n\n// ControllerRevisionList is a resource containing a list of ControllerRevision objects.\nmessage ControllerRevisionList {\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is the list of ControllerRevisions\n  repeated ControllerRevision items = 2;\n}\n\n// DaemonSet represents the configuration of a daemon set.\nmessage DaemonSet {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // The desired behavior of this daemon set.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional DaemonSetSpec spec = 2;\n\n  // The current status of this daemon set. This data may be\n  // out of date by some window of time.\n  // Populated by the system.\n  // Read-only.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional DaemonSetStatus status = 3;\n}\n\n// DaemonSetCondition describes the state of a DaemonSet at a certain point.\nmessage DaemonSetCondition {\n  // Type of DaemonSet condition.\n  optional string type = 1;\n\n  // Status of the condition, one of True, False, Unknown.\n  optional string status = 2;\n\n  // Last time the condition transitioned from one status to another.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // The reason for the condition's last transition.\n  // +optional\n  optional string reason = 4;\n\n  // A human readable message indicating details about the transition.\n  // +optional\n  optional string message = 5;\n}\n\n// DaemonSetList is a collection of daemon sets.\nmessage DaemonSetList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // A list of daemon sets.\n  repeated DaemonSet items = 2;\n}\n\n// DaemonSetSpec is the specification of a daemon set.\nmessage DaemonSetSpec {\n  // A label query over pods that are managed by the daemon set.\n  // Must match in order to be controlled.\n  // It must match the pod template's labels.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 1;\n\n  // An object that describes the pod that will be created.\n  // The DaemonSet will create exactly one copy of this pod on every node\n  // that matches the template's node selector (or on every node if no node\n  // selector is specified).\n  // The only allowed template.spec.restartPolicy value is \"Always\".\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\n  optional .k8s.io.api.core.v1.PodTemplateSpec template = 2;\n\n  // An update strategy to replace existing DaemonSet pods with new pods.\n  // +optional\n  optional DaemonSetUpdateStrategy updateStrategy = 3;\n\n  // The minimum number of seconds for which a newly created DaemonSet pod should\n  // be ready without any of its container crashing, for it to be considered\n  // available. Defaults to 0 (pod will be considered available as soon as it\n  // is ready).\n  // +optional\n  optional int32 minReadySeconds = 4;\n\n  // The number of old history to retain to allow rollback.\n  // This is a pointer to distinguish between explicit zero and not specified.\n  // Defaults to 10.\n  // +optional\n  optional int32 revisionHistoryLimit = 6;\n}\n\n// DaemonSetStatus represents the current status of a daemon set.\nmessage DaemonSetStatus {\n  // The number of nodes that are running at least 1\n  // daemon pod and are supposed to run the daemon pod.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\n  optional int32 currentNumberScheduled = 1;\n\n  // The number of nodes that are running the daemon pod, but are\n  // not supposed to run the daemon pod.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\n  optional int32 numberMisscheduled = 2;\n\n  // The total number of nodes that should be running the daemon\n  // pod (including nodes correctly running the daemon pod).\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\n  optional int32 desiredNumberScheduled = 3;\n\n  // numberReady is the number of nodes that should be running the daemon pod and have one\n  // or more of the daemon pod running with a Ready Condition.\n  optional int32 numberReady = 4;\n\n  // The most recent generation observed by the daemon set controller.\n  // +optional\n  optional int64 observedGeneration = 5;\n\n  // The total number of nodes that are running updated daemon pod\n  // +optional\n  optional int32 updatedNumberScheduled = 6;\n\n  // The number of nodes that should be running the\n  // daemon pod and have one or more of the daemon pod running and\n  // available (ready for at least spec.minReadySeconds)\n  // +optional\n  optional int32 numberAvailable = 7;\n\n  // The number of nodes that should be running the\n  // daemon pod and have none of the daemon pod running and available\n  // (ready for at least spec.minReadySeconds)\n  // +optional\n  optional int32 numberUnavailable = 8;\n\n  // Count of hash collisions for the DaemonSet. The DaemonSet controller\n  // uses this field as a collision avoidance mechanism when it needs to\n  // create the name for the newest ControllerRevision.\n  // +optional\n  optional int32 collisionCount = 9;\n\n  // Represents the latest available observations of a DaemonSet's current state.\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=type\n  repeated DaemonSetCondition conditions = 10;\n}\n\n// DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.\nmessage DaemonSetUpdateStrategy {\n  // Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is RollingUpdate.\n  // +optional\n  optional string type = 1;\n\n  // Rolling update config params. Present only if type = \"RollingUpdate\".\n  // ---\n  // TODO: Update this to follow our convention for oneOf, whatever we decide it\n  // to be. Same as Deployment `strategy.rollingUpdate`.\n  // See https://github.com/kubernetes/kubernetes/issues/35345\n  // +optional\n  optional RollingUpdateDaemonSet rollingUpdate = 2;\n}\n\n// Deployment enables declarative updates for Pods and ReplicaSets.\nmessage Deployment {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Specification of the desired behavior of the Deployment.\n  // +optional\n  optional DeploymentSpec spec = 2;\n\n  // Most recently observed status of the Deployment.\n  // +optional\n  optional DeploymentStatus status = 3;\n}\n\n// DeploymentCondition describes the state of a deployment at a certain point.\nmessage DeploymentCondition {\n  // Type of deployment condition.\n  optional string type = 1;\n\n  // Status of the condition, one of True, False, Unknown.\n  optional string status = 2;\n\n  // The last time this condition was updated.\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastUpdateTime = 6;\n\n  // Last time the condition transitioned from one status to another.\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 7;\n\n  // The reason for the condition's last transition.\n  optional string reason = 4;\n\n  // A human readable message indicating details about the transition.\n  optional string message = 5;\n}\n\n// DeploymentList is a list of Deployments.\nmessage DeploymentList {\n  // Standard list metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is the list of Deployments.\n  repeated Deployment items = 2;\n}\n\n// DeploymentSpec is the specification of the desired behavior of the Deployment.\nmessage DeploymentSpec {\n  // Number of desired pods. This is a pointer to distinguish between explicit\n  // zero and not specified. Defaults to 1.\n  // +optional\n  optional int32 replicas = 1;\n\n  // Label selector for pods. Existing ReplicaSets whose pods are\n  // selected by this will be the ones affected by this deployment.\n  // It must match the pod template's labels.\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2;\n\n  // Template describes the pods that will be created.\n  // The only allowed template.spec.restartPolicy value is \"Always\".\n  optional .k8s.io.api.core.v1.PodTemplateSpec template = 3;\n\n  // The deployment strategy to use to replace existing pods with new ones.\n  // +optional\n  // +patchStrategy=retainKeys\n  optional DeploymentStrategy strategy = 4;\n\n  // Minimum number of seconds for which a newly created pod should be ready\n  // without any of its container crashing, for it to be considered available.\n  // Defaults to 0 (pod will be considered available as soon as it is ready)\n  // +optional\n  optional int32 minReadySeconds = 5;\n\n  // The number of old ReplicaSets to retain to allow rollback.\n  // This is a pointer to distinguish between explicit zero and not specified.\n  // Defaults to 10.\n  // +optional\n  optional int32 revisionHistoryLimit = 6;\n\n  // Indicates that the deployment is paused.\n  // +optional\n  optional bool paused = 7;\n\n  // The maximum time in seconds for a deployment to make progress before it\n  // is considered to be failed. The deployment controller will continue to\n  // process failed deployments and a condition with a ProgressDeadlineExceeded\n  // reason will be surfaced in the deployment status. Note that progress will\n  // not be estimated during the time a deployment is paused. Defaults to 600s.\n  optional int32 progressDeadlineSeconds = 9;\n}\n\n// DeploymentStatus is the most recently observed status of the Deployment.\nmessage DeploymentStatus {\n  // The generation observed by the deployment controller.\n  // +optional\n  optional int64 observedGeneration = 1;\n\n  // Total number of non-terminated pods targeted by this deployment (their labels match the selector).\n  // +optional\n  optional int32 replicas = 2;\n\n  // Total number of non-terminated pods targeted by this deployment that have the desired template spec.\n  // +optional\n  optional int32 updatedReplicas = 3;\n\n  // readyReplicas is the number of pods targeted by this Deployment with a Ready Condition.\n  // +optional\n  optional int32 readyReplicas = 7;\n\n  // Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.\n  // +optional\n  optional int32 availableReplicas = 4;\n\n  // Total number of unavailable pods targeted by this deployment. This is the total number of\n  // pods that are still required for the deployment to have 100% available capacity. They may\n  // either be pods that are running but not yet available or pods that still have not been created.\n  // +optional\n  optional int32 unavailableReplicas = 5;\n\n  // Represents the latest available observations of a deployment's current state.\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=type\n  repeated DeploymentCondition conditions = 6;\n\n  // Count of hash collisions for the Deployment. The Deployment controller uses this\n  // field as a collision avoidance mechanism when it needs to create the name for the\n  // newest ReplicaSet.\n  // +optional\n  optional int32 collisionCount = 8;\n}\n\n// DeploymentStrategy describes how to replace existing pods with new ones.\nmessage DeploymentStrategy {\n  // Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.\n  // +optional\n  optional string type = 1;\n\n  // Rolling update config params. Present only if DeploymentStrategyType =\n  // RollingUpdate.\n  // ---\n  // TODO: Update this to follow our convention for oneOf, whatever we decide it\n  // to be.\n  // +optional\n  optional RollingUpdateDeployment rollingUpdate = 2;\n}\n\n// ReplicaSet ensures that a specified number of pod replicas are running at any given time.\nmessage ReplicaSet {\n  // If the Labels of a ReplicaSet are empty, they are defaulted to\n  // be the same as the Pod(s) that the ReplicaSet manages.\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec defines the specification of the desired behavior of the ReplicaSet.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional ReplicaSetSpec spec = 2;\n\n  // Status is the most recently observed status of the ReplicaSet.\n  // This data may be out of date by some window of time.\n  // Populated by the system.\n  // Read-only.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional ReplicaSetStatus status = 3;\n}\n\n// ReplicaSetCondition describes the state of a replica set at a certain point.\nmessage ReplicaSetCondition {\n  // Type of replica set condition.\n  optional string type = 1;\n\n  // Status of the condition, one of True, False, Unknown.\n  optional string status = 2;\n\n  // The last time the condition transitioned from one status to another.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // The reason for the condition's last transition.\n  // +optional\n  optional string reason = 4;\n\n  // A human readable message indicating details about the transition.\n  // +optional\n  optional string message = 5;\n}\n\n// ReplicaSetList is a collection of ReplicaSets.\nmessage ReplicaSetList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of ReplicaSets.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller\n  repeated ReplicaSet items = 2;\n}\n\n// ReplicaSetSpec is the specification of a ReplicaSet.\nmessage ReplicaSetSpec {\n  // Replicas is the number of desired replicas.\n  // This is a pointer to distinguish between explicit zero and unspecified.\n  // Defaults to 1.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller\n  // +optional\n  optional int32 replicas = 1;\n\n  // Minimum number of seconds for which a newly created pod should be ready\n  // without any of its container crashing, for it to be considered available.\n  // Defaults to 0 (pod will be considered available as soon as it is ready)\n  // +optional\n  optional int32 minReadySeconds = 4;\n\n  // Selector is a label query over pods that should match the replica count.\n  // Label keys and values that must match in order to be controlled by this replica set.\n  // It must match the pod template's labels.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2;\n\n  // Template is the object that describes the pod that will be created if\n  // insufficient replicas are detected.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\n  // +optional\n  optional .k8s.io.api.core.v1.PodTemplateSpec template = 3;\n}\n\n// ReplicaSetStatus represents the current status of a ReplicaSet.\nmessage ReplicaSetStatus {\n  // Replicas is the most recently observed number of replicas.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller\n  optional int32 replicas = 1;\n\n  // The number of pods that have labels matching the labels of the pod template of the replicaset.\n  // +optional\n  optional int32 fullyLabeledReplicas = 2;\n\n  // readyReplicas is the number of pods targeted by this ReplicaSet with a Ready Condition.\n  // +optional\n  optional int32 readyReplicas = 4;\n\n  // The number of available replicas (ready for at least minReadySeconds) for this replica set.\n  // +optional\n  optional int32 availableReplicas = 5;\n\n  // ObservedGeneration reflects the generation of the most recently observed ReplicaSet.\n  // +optional\n  optional int64 observedGeneration = 3;\n\n  // Represents the latest available observations of a replica set's current state.\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=type\n  repeated ReplicaSetCondition conditions = 6;\n}\n\n// Spec to control the desired behavior of daemon set rolling update.\nmessage RollingUpdateDaemonSet {\n  // The maximum number of DaemonSet pods that can be unavailable during the\n  // update. Value can be an absolute number (ex: 5) or a percentage of total\n  // number of DaemonSet pods at the start of the update (ex: 10%). Absolute\n  // number is calculated from percentage by rounding up.\n  // This cannot be 0 if MaxSurge is 0\n  // Default value is 1.\n  // Example: when this is set to 30%, at most 30% of the total number of nodes\n  // that should be running the daemon pod (i.e. status.desiredNumberScheduled)\n  // can have their pods stopped for an update at any given time. The update\n  // starts by stopping at most 30% of those DaemonSet pods and then brings\n  // up new DaemonSet pods in their place. Once the new pods are available,\n  // it then proceeds onto other DaemonSet pods, thus ensuring that at least\n  // 70% of original number of DaemonSet pods are available at all times during\n  // the update.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString maxUnavailable = 1;\n\n  // The maximum number of nodes with an existing available DaemonSet pod that\n  // can have an updated DaemonSet pod during during an update.\n  // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n  // This can not be 0 if MaxUnavailable is 0.\n  // Absolute number is calculated from percentage by rounding up to a minimum of 1.\n  // Default value is 0.\n  // Example: when this is set to 30%, at most 30% of the total number of nodes\n  // that should be running the daemon pod (i.e. status.desiredNumberScheduled)\n  // can have their a new pod created before the old pod is marked as deleted.\n  // The update starts by launching new pods on 30% of nodes. Once an updated\n  // pod is available (Ready for at least minReadySeconds) the old DaemonSet pod\n  // on that node is marked deleted. If the old pod becomes unavailable for any\n  // reason (Ready transitions to false, is evicted, or is drained) an updated\n  // pod is immediatedly created on that node without considering surge limits.\n  // Allowing surge implies the possibility that the resources consumed by the\n  // daemonset on any given node can double if the readiness check fails, and\n  // so resource intensive daemonsets should take into account that they may\n  // cause evictions during disruption.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString maxSurge = 2;\n}\n\n// Spec to control the desired behavior of rolling update.\nmessage RollingUpdateDeployment {\n  // The maximum number of pods that can be unavailable during the update.\n  // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n  // Absolute number is calculated from percentage by rounding down.\n  // This can not be 0 if MaxSurge is 0.\n  // Defaults to 25%.\n  // Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods\n  // immediately when the rolling update starts. Once new pods are ready, old ReplicaSet\n  // can be scaled down further, followed by scaling up the new ReplicaSet, ensuring\n  // that the total number of pods available at all times during the update is at\n  // least 70% of desired pods.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString maxUnavailable = 1;\n\n  // The maximum number of pods that can be scheduled above the desired number of\n  // pods.\n  // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n  // This can not be 0 if MaxUnavailable is 0.\n  // Absolute number is calculated from percentage by rounding up.\n  // Defaults to 25%.\n  // Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when\n  // the rolling update starts, such that the total number of old and new pods do not exceed\n  // 130% of desired pods. Once old pods have been killed,\n  // new ReplicaSet can be scaled up further, ensuring that total number of pods running\n  // at any time during the update is at most 130% of desired pods.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString maxSurge = 2;\n}\n\n// RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.\nmessage RollingUpdateStatefulSetStrategy {\n  // Partition indicates the ordinal at which the StatefulSet should be partitioned\n  // for updates. During a rolling update, all pods from ordinal Replicas-1 to\n  // Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched.\n  // This is helpful in being able to do a canary based deployment. The default value is 0.\n  // +optional\n  optional int32 partition = 1;\n\n  // The maximum number of pods that can be unavailable during the update.\n  // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n  // Absolute number is calculated from percentage by rounding up. This can not be 0.\n  // Defaults to 1. This field is alpha-level and is only honored by servers that enable the\n  // MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to\n  // Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it\n  // will be counted towards MaxUnavailable.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString maxUnavailable = 2;\n}\n\n// StatefulSet represents a set of pods with consistent identities.\n// Identities are defined as:\n//   - Network: A single stable DNS and hostname.\n//   - Storage: As many VolumeClaims as requested.\n//\n// The StatefulSet guarantees that a given network identity will always\n// map to the same storage identity.\nmessage StatefulSet {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec defines the desired identities of pods in this set.\n  // +optional\n  optional StatefulSetSpec spec = 2;\n\n  // Status is the current status of Pods in this StatefulSet. This data\n  // may be out of date by some window of time.\n  // +optional\n  optional StatefulSetStatus status = 3;\n}\n\n// StatefulSetCondition describes the state of a statefulset at a certain point.\nmessage StatefulSetCondition {\n  // Type of statefulset condition.\n  optional string type = 1;\n\n  // Status of the condition, one of True, False, Unknown.\n  optional string status = 2;\n\n  // Last time the condition transitioned from one status to another.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // The reason for the condition's last transition.\n  // +optional\n  optional string reason = 4;\n\n  // A human readable message indicating details about the transition.\n  // +optional\n  optional string message = 5;\n}\n\n// StatefulSetList is a collection of StatefulSets.\nmessage StatefulSetList {\n  // Standard list's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is the list of stateful sets.\n  repeated StatefulSet items = 2;\n}\n\n// StatefulSetOrdinals describes the policy used for replica ordinal assignment\n// in this StatefulSet.\nmessage StatefulSetOrdinals {\n  // start is the number representing the first replica's index. It may be used\n  // to number replicas from an alternate index (eg: 1-indexed) over the default\n  // 0-indexed names, or to orchestrate progressive movement of replicas from\n  // one StatefulSet to another.\n  // If set, replica indices will be in the range:\n  //   [.spec.ordinals.start, .spec.ordinals.start + .spec.replicas).\n  // If unset, defaults to 0. Replica indices will be in the range:\n  //   [0, .spec.replicas).\n  // +optional\n  optional int32 start = 1;\n}\n\n// StatefulSetPersistentVolumeClaimRetentionPolicy describes the policy used for PVCs\n// created from the StatefulSet VolumeClaimTemplates.\nmessage StatefulSetPersistentVolumeClaimRetentionPolicy {\n  // WhenDeleted specifies what happens to PVCs created from StatefulSet\n  // VolumeClaimTemplates when the StatefulSet is deleted. The default policy\n  // of `Retain` causes PVCs to not be affected by StatefulSet deletion. The\n  // `Delete` policy causes those PVCs to be deleted.\n  optional string whenDeleted = 1;\n\n  // WhenScaled specifies what happens to PVCs created from StatefulSet\n  // VolumeClaimTemplates when the StatefulSet is scaled down. The default\n  // policy of `Retain` causes PVCs to not be affected by a scaledown. The\n  // `Delete` policy causes the associated PVCs for any excess pods above\n  // the replica count to be deleted.\n  optional string whenScaled = 2;\n}\n\n// A StatefulSetSpec is the specification of a StatefulSet.\nmessage StatefulSetSpec {\n  // replicas is the desired number of replicas of the given Template.\n  // These are replicas in the sense that they are instantiations of the\n  // same Template, but individual replicas also have a consistent identity.\n  // If unspecified, defaults to 1.\n  // TODO: Consider a rename of this field.\n  // +optional\n  optional int32 replicas = 1;\n\n  // selector is a label query over pods that should match the replica count.\n  // It must match the pod template's labels.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2;\n\n  // template is the object that describes the pod that will be created if\n  // insufficient replicas are detected. Each pod stamped out by the StatefulSet\n  // will fulfill this Template, but have a unique identity from the rest\n  // of the StatefulSet. Each pod will be named with the format\n  // <statefulsetname>-<podindex>. For example, a pod in a StatefulSet named\n  // \"web\" with index number \"3\" would be named \"web-3\".\n  // The only allowed template.spec.restartPolicy value is \"Always\".\n  optional .k8s.io.api.core.v1.PodTemplateSpec template = 3;\n\n  // volumeClaimTemplates is a list of claims that pods are allowed to reference.\n  // The StatefulSet controller is responsible for mapping network identities to\n  // claims in a way that maintains the identity of a pod. Every claim in\n  // this list must have at least one matching (by name) volumeMount in one\n  // container in the template. A claim in this list takes precedence over\n  // any volumes in the template, with the same name.\n  // TODO: Define the behavior if a claim already exists with the same name.\n  // +optional\n  // +listType=atomic\n  repeated .k8s.io.api.core.v1.PersistentVolumeClaim volumeClaimTemplates = 4;\n\n  // serviceName is the name of the service that governs this StatefulSet.\n  // This service must exist before the StatefulSet, and is responsible for\n  // the network identity of the set. Pods get DNS/hostnames that follow the\n  // pattern: pod-specific-string.serviceName.default.svc.cluster.local\n  // where \"pod-specific-string\" is managed by the StatefulSet controller.\n  optional string serviceName = 5;\n\n  // podManagementPolicy controls how pods are created during initial scale up,\n  // when replacing pods on nodes, or when scaling down. The default policy is\n  // `OrderedReady`, where pods are created in increasing order (pod-0, then\n  // pod-1, etc) and the controller will wait until each pod is ready before\n  // continuing. When scaling down, the pods are removed in the opposite order.\n  // The alternative policy is `Parallel` which will create pods in parallel\n  // to match the desired scale without waiting, and on scale down will delete\n  // all pods at once.\n  // +optional\n  optional string podManagementPolicy = 6;\n\n  // updateStrategy indicates the StatefulSetUpdateStrategy that will be\n  // employed to update Pods in the StatefulSet when a revision is made to\n  // Template.\n  optional StatefulSetUpdateStrategy updateStrategy = 7;\n\n  // revisionHistoryLimit is the maximum number of revisions that will\n  // be maintained in the StatefulSet's revision history. The revision history\n  // consists of all revisions not represented by a currently applied\n  // StatefulSetSpec version. The default value is 10.\n  optional int32 revisionHistoryLimit = 8;\n\n  // Minimum number of seconds for which a newly created pod should be ready\n  // without any of its container crashing for it to be considered available.\n  // Defaults to 0 (pod will be considered available as soon as it is ready)\n  // +optional\n  optional int32 minReadySeconds = 9;\n\n  // persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent\n  // volume claims created from volumeClaimTemplates. By default, all persistent\n  // volume claims are created as needed and retained until manually deleted. This\n  // policy allows the lifecycle to be altered, for example by deleting persistent\n  // volume claims when their stateful set is deleted, or when their pod is scaled\n  // down.\n  // +optional\n  optional StatefulSetPersistentVolumeClaimRetentionPolicy persistentVolumeClaimRetentionPolicy = 10;\n\n  // ordinals controls the numbering of replica indices in a StatefulSet. The\n  // default ordinals behavior assigns a \"0\" index to the first replica and\n  // increments the index by one for each additional replica requested.\n  // +optional\n  optional StatefulSetOrdinals ordinals = 11;\n}\n\n// StatefulSetStatus represents the current state of a StatefulSet.\nmessage StatefulSetStatus {\n  // observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the\n  // StatefulSet's generation, which is updated on mutation by the API Server.\n  // +optional\n  optional int64 observedGeneration = 1;\n\n  // replicas is the number of Pods created by the StatefulSet controller.\n  optional int32 replicas = 2;\n\n  // readyReplicas is the number of pods created for this StatefulSet with a Ready Condition.\n  optional int32 readyReplicas = 3;\n\n  // currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version\n  // indicated by currentRevision.\n  optional int32 currentReplicas = 4;\n\n  // updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version\n  // indicated by updateRevision.\n  optional int32 updatedReplicas = 5;\n\n  // currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the\n  // sequence [0,currentReplicas).\n  optional string currentRevision = 6;\n\n  // updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence\n  // [replicas-updatedReplicas,replicas)\n  optional string updateRevision = 7;\n\n  // collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller\n  // uses this field as a collision avoidance mechanism when it needs to create the name for the\n  // newest ControllerRevision.\n  // +optional\n  optional int32 collisionCount = 9;\n\n  // Represents the latest available observations of a statefulset's current state.\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=type\n  repeated StatefulSetCondition conditions = 10;\n\n  // Total number of available pods (ready for at least minReadySeconds) targeted by this statefulset.\n  // +optional\n  optional int32 availableReplicas = 11;\n}\n\n// StatefulSetUpdateStrategy indicates the strategy that the StatefulSet\n// controller will use to perform updates. It includes any additional parameters\n// necessary to perform the update for the indicated strategy.\nmessage StatefulSetUpdateStrategy {\n  // Type indicates the type of the StatefulSetUpdateStrategy.\n  // Default is RollingUpdate.\n  // +optional\n  optional string type = 1;\n\n  // RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.\n  // +optional\n  optional RollingUpdateStatefulSetStrategy rollingUpdate = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1/register.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"apps\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&Deployment{},\n\t\t&DeploymentList{},\n\t\t&StatefulSet{},\n\t\t&StatefulSetList{},\n\t\t&DaemonSet{},\n\t\t&DaemonSetList{},\n\t\t&ReplicaSet{},\n\t\t&ReplicaSetList{},\n\t\t&ControllerRevision{},\n\t\t&ControllerRevisionList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1/types.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\nconst (\n\tControllerRevisionHashLabelKey = \"controller-revision-hash\"\n\tStatefulSetRevisionLabel       = ControllerRevisionHashLabelKey\n\tDeprecatedRollbackTo           = \"deprecated.deployment.rollback.to\"\n\tDeprecatedTemplateGeneration   = \"deprecated.daemonset.template.generation\"\n\tStatefulSetPodNameLabel        = \"statefulset.kubernetes.io/pod-name\"\n\tPodIndexLabel                  = \"apps.kubernetes.io/pod-index\"\n)\n\n// +genclient\n// +genclient:method=GetScale,verb=get,subresource=scale,result=k8s.io/api/autoscaling/v1.Scale\n// +genclient:method=UpdateScale,verb=update,subresource=scale,input=k8s.io/api/autoscaling/v1.Scale,result=k8s.io/api/autoscaling/v1.Scale\n// +genclient:method=ApplyScale,verb=apply,subresource=scale,input=k8s.io/api/autoscaling/v1.Scale,result=k8s.io/api/autoscaling/v1.Scale\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.9\n\n// StatefulSet represents a set of pods with consistent identities.\n// Identities are defined as:\n//   - Network: A single stable DNS and hostname.\n//   - Storage: As many VolumeClaims as requested.\n//\n// The StatefulSet guarantees that a given network identity will always\n// map to the same storage identity.\ntype StatefulSet struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec defines the desired identities of pods in this set.\n\t// +optional\n\tSpec StatefulSetSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status is the current status of Pods in this StatefulSet. This data\n\t// may be out of date by some window of time.\n\t// +optional\n\tStatus StatefulSetStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// PodManagementPolicyType defines the policy for creating pods under a stateful set.\n// +enum\ntype PodManagementPolicyType string\n\nconst (\n\t// OrderedReadyPodManagement will create pods in strictly increasing order on\n\t// scale up and strictly decreasing order on scale down, progressing only when\n\t// the previous pod is ready or terminated. At most one pod will be changed\n\t// at any time.\n\tOrderedReadyPodManagement PodManagementPolicyType = \"OrderedReady\"\n\t// ParallelPodManagement will create and delete pods as soon as the stateful set\n\t// replica count is changed, and will not wait for pods to be ready or complete\n\t// termination.\n\tParallelPodManagement PodManagementPolicyType = \"Parallel\"\n)\n\n// StatefulSetUpdateStrategy indicates the strategy that the StatefulSet\n// controller will use to perform updates. It includes any additional parameters\n// necessary to perform the update for the indicated strategy.\ntype StatefulSetUpdateStrategy struct {\n\t// Type indicates the type of the StatefulSetUpdateStrategy.\n\t// Default is RollingUpdate.\n\t// +optional\n\tType StatefulSetUpdateStrategyType `json:\"type,omitempty\" protobuf:\"bytes,1,opt,name=type,casttype=StatefulSetStrategyType\"`\n\t// RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.\n\t// +optional\n\tRollingUpdate *RollingUpdateStatefulSetStrategy `json:\"rollingUpdate,omitempty\" protobuf:\"bytes,2,opt,name=rollingUpdate\"`\n}\n\n// StatefulSetUpdateStrategyType is a string enumeration type that enumerates\n// all possible update strategies for the StatefulSet controller.\n// +enum\ntype StatefulSetUpdateStrategyType string\n\nconst (\n\t// RollingUpdateStatefulSetStrategyType indicates that update will be\n\t// applied to all Pods in the StatefulSet with respect to the StatefulSet\n\t// ordering constraints. When a scale operation is performed with this\n\t// strategy, new Pods will be created from the specification version indicated\n\t// by the StatefulSet's updateRevision.\n\tRollingUpdateStatefulSetStrategyType StatefulSetUpdateStrategyType = \"RollingUpdate\"\n\t// OnDeleteStatefulSetStrategyType triggers the legacy behavior. Version\n\t// tracking and ordered rolling restarts are disabled. Pods are recreated\n\t// from the StatefulSetSpec when they are manually deleted. When a scale\n\t// operation is performed with this strategy,specification version indicated\n\t// by the StatefulSet's currentRevision.\n\tOnDeleteStatefulSetStrategyType StatefulSetUpdateStrategyType = \"OnDelete\"\n)\n\n// RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.\ntype RollingUpdateStatefulSetStrategy struct {\n\t// Partition indicates the ordinal at which the StatefulSet should be partitioned\n\t// for updates. During a rolling update, all pods from ordinal Replicas-1 to\n\t// Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched.\n\t// This is helpful in being able to do a canary based deployment. The default value is 0.\n\t// +optional\n\tPartition *int32 `json:\"partition,omitempty\" protobuf:\"varint,1,opt,name=partition\"`\n\t// The maximum number of pods that can be unavailable during the update.\n\t// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n\t// Absolute number is calculated from percentage by rounding up. This can not be 0.\n\t// Defaults to 1. This field is alpha-level and is only honored by servers that enable the\n\t// MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to\n\t// Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it\n\t// will be counted towards MaxUnavailable.\n\t// +optional\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\" protobuf:\"varint,2,opt,name=maxUnavailable\"`\n}\n\n// PersistentVolumeClaimRetentionPolicyType is a string enumeration of the policies that will determine\n// when volumes from the VolumeClaimTemplates will be deleted when the controlling StatefulSet is\n// deleted or scaled down.\ntype PersistentVolumeClaimRetentionPolicyType string\n\nconst (\n\t// RetainPersistentVolumeClaimRetentionPolicyType is the default\n\t// PersistentVolumeClaimRetentionPolicy and specifies that\n\t// PersistentVolumeClaims associated with StatefulSet VolumeClaimTemplates\n\t// will not be deleted.\n\tRetainPersistentVolumeClaimRetentionPolicyType PersistentVolumeClaimRetentionPolicyType = \"Retain\"\n\t// DeletePersistentVolumeClaimRetentionPolicyType specifies that\n\t// PersistentVolumeClaims associated with StatefulSet VolumeClaimTemplates\n\t// will be deleted in the scenario specified in\n\t// StatefulSetPersistentVolumeClaimRetentionPolicy.\n\tDeletePersistentVolumeClaimRetentionPolicyType PersistentVolumeClaimRetentionPolicyType = \"Delete\"\n)\n\n// StatefulSetPersistentVolumeClaimRetentionPolicy describes the policy used for PVCs\n// created from the StatefulSet VolumeClaimTemplates.\ntype StatefulSetPersistentVolumeClaimRetentionPolicy struct {\n\t// WhenDeleted specifies what happens to PVCs created from StatefulSet\n\t// VolumeClaimTemplates when the StatefulSet is deleted. The default policy\n\t// of `Retain` causes PVCs to not be affected by StatefulSet deletion. The\n\t// `Delete` policy causes those PVCs to be deleted.\n\tWhenDeleted PersistentVolumeClaimRetentionPolicyType `json:\"whenDeleted,omitempty\" protobuf:\"bytes,1,opt,name=whenDeleted,casttype=PersistentVolumeClaimRetentionPolicyType\"`\n\t// WhenScaled specifies what happens to PVCs created from StatefulSet\n\t// VolumeClaimTemplates when the StatefulSet is scaled down. The default\n\t// policy of `Retain` causes PVCs to not be affected by a scaledown. The\n\t// `Delete` policy causes the associated PVCs for any excess pods above\n\t// the replica count to be deleted.\n\tWhenScaled PersistentVolumeClaimRetentionPolicyType `json:\"whenScaled,omitempty\" protobuf:\"bytes,2,opt,name=whenScaled,casttype=PersistentVolumeClaimRetentionPolicyType\"`\n}\n\n// StatefulSetOrdinals describes the policy used for replica ordinal assignment\n// in this StatefulSet.\ntype StatefulSetOrdinals struct {\n\t// start is the number representing the first replica's index. It may be used\n\t// to number replicas from an alternate index (eg: 1-indexed) over the default\n\t// 0-indexed names, or to orchestrate progressive movement of replicas from\n\t// one StatefulSet to another.\n\t// If set, replica indices will be in the range:\n\t//   [.spec.ordinals.start, .spec.ordinals.start + .spec.replicas).\n\t// If unset, defaults to 0. Replica indices will be in the range:\n\t//   [0, .spec.replicas).\n\t// +optional\n\tStart int32 `json:\"start\" protobuf:\"varint,1,opt,name=start\"`\n}\n\n// A StatefulSetSpec is the specification of a StatefulSet.\ntype StatefulSetSpec struct {\n\t// replicas is the desired number of replicas of the given Template.\n\t// These are replicas in the sense that they are instantiations of the\n\t// same Template, but individual replicas also have a consistent identity.\n\t// If unspecified, defaults to 1.\n\t// TODO: Consider a rename of this field.\n\t// +optional\n\tReplicas *int32 `json:\"replicas,omitempty\" protobuf:\"varint,1,opt,name=replicas\"`\n\n\t// selector is a label query over pods that should match the replica count.\n\t// It must match the pod template's labels.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n\tSelector *metav1.LabelSelector `json:\"selector\" protobuf:\"bytes,2,opt,name=selector\"`\n\n\t// template is the object that describes the pod that will be created if\n\t// insufficient replicas are detected. Each pod stamped out by the StatefulSet\n\t// will fulfill this Template, but have a unique identity from the rest\n\t// of the StatefulSet. Each pod will be named with the format\n\t// <statefulsetname>-<podindex>. For example, a pod in a StatefulSet named\n\t// \"web\" with index number \"3\" would be named \"web-3\".\n\t// The only allowed template.spec.restartPolicy value is \"Always\".\n\tTemplate v1.PodTemplateSpec `json:\"template\" protobuf:\"bytes,3,opt,name=template\"`\n\n\t// volumeClaimTemplates is a list of claims that pods are allowed to reference.\n\t// The StatefulSet controller is responsible for mapping network identities to\n\t// claims in a way that maintains the identity of a pod. Every claim in\n\t// this list must have at least one matching (by name) volumeMount in one\n\t// container in the template. A claim in this list takes precedence over\n\t// any volumes in the template, with the same name.\n\t// TODO: Define the behavior if a claim already exists with the same name.\n\t// +optional\n\t// +listType=atomic\n\tVolumeClaimTemplates []v1.PersistentVolumeClaim `json:\"volumeClaimTemplates,omitempty\" protobuf:\"bytes,4,rep,name=volumeClaimTemplates\"`\n\n\t// serviceName is the name of the service that governs this StatefulSet.\n\t// This service must exist before the StatefulSet, and is responsible for\n\t// the network identity of the set. Pods get DNS/hostnames that follow the\n\t// pattern: pod-specific-string.serviceName.default.svc.cluster.local\n\t// where \"pod-specific-string\" is managed by the StatefulSet controller.\n\tServiceName string `json:\"serviceName\" protobuf:\"bytes,5,opt,name=serviceName\"`\n\n\t// podManagementPolicy controls how pods are created during initial scale up,\n\t// when replacing pods on nodes, or when scaling down. The default policy is\n\t// `OrderedReady`, where pods are created in increasing order (pod-0, then\n\t// pod-1, etc) and the controller will wait until each pod is ready before\n\t// continuing. When scaling down, the pods are removed in the opposite order.\n\t// The alternative policy is `Parallel` which will create pods in parallel\n\t// to match the desired scale without waiting, and on scale down will delete\n\t// all pods at once.\n\t// +optional\n\tPodManagementPolicy PodManagementPolicyType `json:\"podManagementPolicy,omitempty\" protobuf:\"bytes,6,opt,name=podManagementPolicy,casttype=PodManagementPolicyType\"`\n\n\t// updateStrategy indicates the StatefulSetUpdateStrategy that will be\n\t// employed to update Pods in the StatefulSet when a revision is made to\n\t// Template.\n\tUpdateStrategy StatefulSetUpdateStrategy `json:\"updateStrategy,omitempty\" protobuf:\"bytes,7,opt,name=updateStrategy\"`\n\n\t// revisionHistoryLimit is the maximum number of revisions that will\n\t// be maintained in the StatefulSet's revision history. The revision history\n\t// consists of all revisions not represented by a currently applied\n\t// StatefulSetSpec version. The default value is 10.\n\tRevisionHistoryLimit *int32 `json:\"revisionHistoryLimit,omitempty\" protobuf:\"varint,8,opt,name=revisionHistoryLimit\"`\n\n\t// Minimum number of seconds for which a newly created pod should be ready\n\t// without any of its container crashing for it to be considered available.\n\t// Defaults to 0 (pod will be considered available as soon as it is ready)\n\t// +optional\n\tMinReadySeconds int32 `json:\"minReadySeconds,omitempty\" protobuf:\"varint,9,opt,name=minReadySeconds\"`\n\n\t// persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent\n\t// volume claims created from volumeClaimTemplates. By default, all persistent\n\t// volume claims are created as needed and retained until manually deleted. This\n\t// policy allows the lifecycle to be altered, for example by deleting persistent\n\t// volume claims when their stateful set is deleted, or when their pod is scaled\n\t// down.\n\t// +optional\n\tPersistentVolumeClaimRetentionPolicy *StatefulSetPersistentVolumeClaimRetentionPolicy `json:\"persistentVolumeClaimRetentionPolicy,omitempty\" protobuf:\"bytes,10,opt,name=persistentVolumeClaimRetentionPolicy\"`\n\n\t// ordinals controls the numbering of replica indices in a StatefulSet. The\n\t// default ordinals behavior assigns a \"0\" index to the first replica and\n\t// increments the index by one for each additional replica requested.\n\t// +optional\n\tOrdinals *StatefulSetOrdinals `json:\"ordinals,omitempty\" protobuf:\"bytes,11,opt,name=ordinals\"`\n}\n\n// StatefulSetStatus represents the current state of a StatefulSet.\ntype StatefulSetStatus struct {\n\t// observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the\n\t// StatefulSet's generation, which is updated on mutation by the API Server.\n\t// +optional\n\tObservedGeneration int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,1,opt,name=observedGeneration\"`\n\n\t// replicas is the number of Pods created by the StatefulSet controller.\n\tReplicas int32 `json:\"replicas\" protobuf:\"varint,2,opt,name=replicas\"`\n\n\t// readyReplicas is the number of pods created for this StatefulSet with a Ready Condition.\n\tReadyReplicas int32 `json:\"readyReplicas,omitempty\" protobuf:\"varint,3,opt,name=readyReplicas\"`\n\n\t// currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version\n\t// indicated by currentRevision.\n\tCurrentReplicas int32 `json:\"currentReplicas,omitempty\" protobuf:\"varint,4,opt,name=currentReplicas\"`\n\n\t// updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version\n\t// indicated by updateRevision.\n\tUpdatedReplicas int32 `json:\"updatedReplicas,omitempty\" protobuf:\"varint,5,opt,name=updatedReplicas\"`\n\n\t// currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the\n\t// sequence [0,currentReplicas).\n\tCurrentRevision string `json:\"currentRevision,omitempty\" protobuf:\"bytes,6,opt,name=currentRevision\"`\n\n\t// updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence\n\t// [replicas-updatedReplicas,replicas)\n\tUpdateRevision string `json:\"updateRevision,omitempty\" protobuf:\"bytes,7,opt,name=updateRevision\"`\n\n\t// collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller\n\t// uses this field as a collision avoidance mechanism when it needs to create the name for the\n\t// newest ControllerRevision.\n\t// +optional\n\tCollisionCount *int32 `json:\"collisionCount,omitempty\" protobuf:\"varint,9,opt,name=collisionCount\"`\n\n\t// Represents the latest available observations of a statefulset's current state.\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=type\n\tConditions []StatefulSetCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,10,rep,name=conditions\"`\n\n\t// Total number of available pods (ready for at least minReadySeconds) targeted by this statefulset.\n\t// +optional\n\tAvailableReplicas int32 `json:\"availableReplicas\" protobuf:\"varint,11,opt,name=availableReplicas\"`\n}\n\ntype StatefulSetConditionType string\n\n// StatefulSetCondition describes the state of a statefulset at a certain point.\ntype StatefulSetCondition struct {\n\t// Type of statefulset condition.\n\tType StatefulSetConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=StatefulSetConditionType\"`\n\t// Status of the condition, one of True, False, Unknown.\n\tStatus v1.ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus\"`\n\t// Last time the condition transitioned from one status to another.\n\t// +optional\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\t// The reason for the condition's last transition.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// A human readable message indicating details about the transition.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.9\n\n// StatefulSetList is a collection of StatefulSets.\ntype StatefulSetList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is the list of stateful sets.\n\tItems []StatefulSet `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +genclient:method=GetScale,verb=get,subresource=scale,result=k8s.io/api/autoscaling/v1.Scale\n// +genclient:method=UpdateScale,verb=update,subresource=scale,input=k8s.io/api/autoscaling/v1.Scale,result=k8s.io/api/autoscaling/v1.Scale\n// +genclient:method=ApplyScale,verb=apply,subresource=scale,input=k8s.io/api/autoscaling/v1.Scale,result=k8s.io/api/autoscaling/v1.Scale\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.9\n\n// Deployment enables declarative updates for Pods and ReplicaSets.\ntype Deployment struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Specification of the desired behavior of the Deployment.\n\t// +optional\n\tSpec DeploymentSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Most recently observed status of the Deployment.\n\t// +optional\n\tStatus DeploymentStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// DeploymentSpec is the specification of the desired behavior of the Deployment.\ntype DeploymentSpec struct {\n\t// Number of desired pods. This is a pointer to distinguish between explicit\n\t// zero and not specified. Defaults to 1.\n\t// +optional\n\tReplicas *int32 `json:\"replicas,omitempty\" protobuf:\"varint,1,opt,name=replicas\"`\n\n\t// Label selector for pods. Existing ReplicaSets whose pods are\n\t// selected by this will be the ones affected by this deployment.\n\t// It must match the pod template's labels.\n\tSelector *metav1.LabelSelector `json:\"selector\" protobuf:\"bytes,2,opt,name=selector\"`\n\n\t// Template describes the pods that will be created.\n\t// The only allowed template.spec.restartPolicy value is \"Always\".\n\tTemplate v1.PodTemplateSpec `json:\"template\" protobuf:\"bytes,3,opt,name=template\"`\n\n\t// The deployment strategy to use to replace existing pods with new ones.\n\t// +optional\n\t// +patchStrategy=retainKeys\n\tStrategy DeploymentStrategy `json:\"strategy,omitempty\" patchStrategy:\"retainKeys\" protobuf:\"bytes,4,opt,name=strategy\"`\n\n\t// Minimum number of seconds for which a newly created pod should be ready\n\t// without any of its container crashing, for it to be considered available.\n\t// Defaults to 0 (pod will be considered available as soon as it is ready)\n\t// +optional\n\tMinReadySeconds int32 `json:\"minReadySeconds,omitempty\" protobuf:\"varint,5,opt,name=minReadySeconds\"`\n\n\t// The number of old ReplicaSets to retain to allow rollback.\n\t// This is a pointer to distinguish between explicit zero and not specified.\n\t// Defaults to 10.\n\t// +optional\n\tRevisionHistoryLimit *int32 `json:\"revisionHistoryLimit,omitempty\" protobuf:\"varint,6,opt,name=revisionHistoryLimit\"`\n\n\t// Indicates that the deployment is paused.\n\t// +optional\n\tPaused bool `json:\"paused,omitempty\" protobuf:\"varint,7,opt,name=paused\"`\n\n\t// The maximum time in seconds for a deployment to make progress before it\n\t// is considered to be failed. The deployment controller will continue to\n\t// process failed deployments and a condition with a ProgressDeadlineExceeded\n\t// reason will be surfaced in the deployment status. Note that progress will\n\t// not be estimated during the time a deployment is paused. Defaults to 600s.\n\tProgressDeadlineSeconds *int32 `json:\"progressDeadlineSeconds,omitempty\" protobuf:\"varint,9,opt,name=progressDeadlineSeconds\"`\n}\n\nconst (\n\t// DefaultDeploymentUniqueLabelKey is the default key of the selector that is added\n\t// to existing ReplicaSets (and label key that is added to its pods) to prevent the existing ReplicaSets\n\t// to select new pods (and old pods being select by new ReplicaSet).\n\tDefaultDeploymentUniqueLabelKey string = \"pod-template-hash\"\n)\n\n// DeploymentStrategy describes how to replace existing pods with new ones.\ntype DeploymentStrategy struct {\n\t// Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.\n\t// +optional\n\tType DeploymentStrategyType `json:\"type,omitempty\" protobuf:\"bytes,1,opt,name=type,casttype=DeploymentStrategyType\"`\n\n\t// Rolling update config params. Present only if DeploymentStrategyType =\n\t// RollingUpdate.\n\t//---\n\t// TODO: Update this to follow our convention for oneOf, whatever we decide it\n\t// to be.\n\t// +optional\n\tRollingUpdate *RollingUpdateDeployment `json:\"rollingUpdate,omitempty\" protobuf:\"bytes,2,opt,name=rollingUpdate\"`\n}\n\n// +enum\ntype DeploymentStrategyType string\n\nconst (\n\t// Kill all existing pods before creating new ones.\n\tRecreateDeploymentStrategyType DeploymentStrategyType = \"Recreate\"\n\n\t// Replace the old ReplicaSets by new one using rolling update i.e gradually scale down the old ReplicaSets and scale up the new one.\n\tRollingUpdateDeploymentStrategyType DeploymentStrategyType = \"RollingUpdate\"\n)\n\n// Spec to control the desired behavior of rolling update.\ntype RollingUpdateDeployment struct {\n\t// The maximum number of pods that can be unavailable during the update.\n\t// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n\t// Absolute number is calculated from percentage by rounding down.\n\t// This can not be 0 if MaxSurge is 0.\n\t// Defaults to 25%.\n\t// Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods\n\t// immediately when the rolling update starts. Once new pods are ready, old ReplicaSet\n\t// can be scaled down further, followed by scaling up the new ReplicaSet, ensuring\n\t// that the total number of pods available at all times during the update is at\n\t// least 70% of desired pods.\n\t// +optional\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\" protobuf:\"bytes,1,opt,name=maxUnavailable\"`\n\n\t// The maximum number of pods that can be scheduled above the desired number of\n\t// pods.\n\t// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n\t// This can not be 0 if MaxUnavailable is 0.\n\t// Absolute number is calculated from percentage by rounding up.\n\t// Defaults to 25%.\n\t// Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when\n\t// the rolling update starts, such that the total number of old and new pods do not exceed\n\t// 130% of desired pods. Once old pods have been killed,\n\t// new ReplicaSet can be scaled up further, ensuring that total number of pods running\n\t// at any time during the update is at most 130% of desired pods.\n\t// +optional\n\tMaxSurge *intstr.IntOrString `json:\"maxSurge,omitempty\" protobuf:\"bytes,2,opt,name=maxSurge\"`\n}\n\n// DeploymentStatus is the most recently observed status of the Deployment.\ntype DeploymentStatus struct {\n\t// The generation observed by the deployment controller.\n\t// +optional\n\tObservedGeneration int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,1,opt,name=observedGeneration\"`\n\n\t// Total number of non-terminated pods targeted by this deployment (their labels match the selector).\n\t// +optional\n\tReplicas int32 `json:\"replicas,omitempty\" protobuf:\"varint,2,opt,name=replicas\"`\n\n\t// Total number of non-terminated pods targeted by this deployment that have the desired template spec.\n\t// +optional\n\tUpdatedReplicas int32 `json:\"updatedReplicas,omitempty\" protobuf:\"varint,3,opt,name=updatedReplicas\"`\n\n\t// readyReplicas is the number of pods targeted by this Deployment with a Ready Condition.\n\t// +optional\n\tReadyReplicas int32 `json:\"readyReplicas,omitempty\" protobuf:\"varint,7,opt,name=readyReplicas\"`\n\n\t// Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.\n\t// +optional\n\tAvailableReplicas int32 `json:\"availableReplicas,omitempty\" protobuf:\"varint,4,opt,name=availableReplicas\"`\n\n\t// Total number of unavailable pods targeted by this deployment. This is the total number of\n\t// pods that are still required for the deployment to have 100% available capacity. They may\n\t// either be pods that are running but not yet available or pods that still have not been created.\n\t// +optional\n\tUnavailableReplicas int32 `json:\"unavailableReplicas,omitempty\" protobuf:\"varint,5,opt,name=unavailableReplicas\"`\n\n\t// Represents the latest available observations of a deployment's current state.\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=type\n\tConditions []DeploymentCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,6,rep,name=conditions\"`\n\n\t// Count of hash collisions for the Deployment. The Deployment controller uses this\n\t// field as a collision avoidance mechanism when it needs to create the name for the\n\t// newest ReplicaSet.\n\t// +optional\n\tCollisionCount *int32 `json:\"collisionCount,omitempty\" protobuf:\"varint,8,opt,name=collisionCount\"`\n}\n\ntype DeploymentConditionType string\n\n// These are valid conditions of a deployment.\nconst (\n\t// Available means the deployment is available, ie. at least the minimum available\n\t// replicas required are up and running for at least minReadySeconds.\n\tDeploymentAvailable DeploymentConditionType = \"Available\"\n\t// Progressing means the deployment is progressing. Progress for a deployment is\n\t// considered when a new replica set is created or adopted, and when new pods scale\n\t// up or old pods scale down. Progress is not estimated for paused deployments or\n\t// when progressDeadlineSeconds is not specified.\n\tDeploymentProgressing DeploymentConditionType = \"Progressing\"\n\t// ReplicaFailure is added in a deployment when one of its pods fails to be created\n\t// or deleted.\n\tDeploymentReplicaFailure DeploymentConditionType = \"ReplicaFailure\"\n)\n\n// DeploymentCondition describes the state of a deployment at a certain point.\ntype DeploymentCondition struct {\n\t// Type of deployment condition.\n\tType DeploymentConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=DeploymentConditionType\"`\n\t// Status of the condition, one of True, False, Unknown.\n\tStatus v1.ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus\"`\n\t// The last time this condition was updated.\n\tLastUpdateTime metav1.Time `json:\"lastUpdateTime,omitempty\" protobuf:\"bytes,6,opt,name=lastUpdateTime\"`\n\t// Last time the condition transitioned from one status to another.\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,7,opt,name=lastTransitionTime\"`\n\t// The reason for the condition's last transition.\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// A human readable message indicating details about the transition.\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.9\n\n// DeploymentList is a list of Deployments.\ntype DeploymentList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is the list of Deployments.\n\tItems []Deployment `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.\ntype DaemonSetUpdateStrategy struct {\n\t// Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is RollingUpdate.\n\t// +optional\n\tType DaemonSetUpdateStrategyType `json:\"type,omitempty\" protobuf:\"bytes,1,opt,name=type\"`\n\n\t// Rolling update config params. Present only if type = \"RollingUpdate\".\n\t//---\n\t// TODO: Update this to follow our convention for oneOf, whatever we decide it\n\t// to be. Same as Deployment `strategy.rollingUpdate`.\n\t// See https://github.com/kubernetes/kubernetes/issues/35345\n\t// +optional\n\tRollingUpdate *RollingUpdateDaemonSet `json:\"rollingUpdate,omitempty\" protobuf:\"bytes,2,opt,name=rollingUpdate\"`\n}\n\n// +enum\ntype DaemonSetUpdateStrategyType string\n\nconst (\n\t// Replace the old daemons by new ones using rolling update i.e replace them on each node one after the other.\n\tRollingUpdateDaemonSetStrategyType DaemonSetUpdateStrategyType = \"RollingUpdate\"\n\n\t// Replace the old daemons only when it's killed\n\tOnDeleteDaemonSetStrategyType DaemonSetUpdateStrategyType = \"OnDelete\"\n)\n\n// Spec to control the desired behavior of daemon set rolling update.\ntype RollingUpdateDaemonSet struct {\n\t// The maximum number of DaemonSet pods that can be unavailable during the\n\t// update. Value can be an absolute number (ex: 5) or a percentage of total\n\t// number of DaemonSet pods at the start of the update (ex: 10%). Absolute\n\t// number is calculated from percentage by rounding up.\n\t// This cannot be 0 if MaxSurge is 0\n\t// Default value is 1.\n\t// Example: when this is set to 30%, at most 30% of the total number of nodes\n\t// that should be running the daemon pod (i.e. status.desiredNumberScheduled)\n\t// can have their pods stopped for an update at any given time. The update\n\t// starts by stopping at most 30% of those DaemonSet pods and then brings\n\t// up new DaemonSet pods in their place. Once the new pods are available,\n\t// it then proceeds onto other DaemonSet pods, thus ensuring that at least\n\t// 70% of original number of DaemonSet pods are available at all times during\n\t// the update.\n\t// +optional\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\" protobuf:\"bytes,1,opt,name=maxUnavailable\"`\n\n\t// The maximum number of nodes with an existing available DaemonSet pod that\n\t// can have an updated DaemonSet pod during during an update.\n\t// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n\t// This can not be 0 if MaxUnavailable is 0.\n\t// Absolute number is calculated from percentage by rounding up to a minimum of 1.\n\t// Default value is 0.\n\t// Example: when this is set to 30%, at most 30% of the total number of nodes\n\t// that should be running the daemon pod (i.e. status.desiredNumberScheduled)\n\t// can have their a new pod created before the old pod is marked as deleted.\n\t// The update starts by launching new pods on 30% of nodes. Once an updated\n\t// pod is available (Ready for at least minReadySeconds) the old DaemonSet pod\n\t// on that node is marked deleted. If the old pod becomes unavailable for any\n\t// reason (Ready transitions to false, is evicted, or is drained) an updated\n\t// pod is immediatedly created on that node without considering surge limits.\n\t// Allowing surge implies the possibility that the resources consumed by the\n\t// daemonset on any given node can double if the readiness check fails, and\n\t// so resource intensive daemonsets should take into account that they may\n\t// cause evictions during disruption.\n\t// +optional\n\tMaxSurge *intstr.IntOrString `json:\"maxSurge,omitempty\" protobuf:\"bytes,2,opt,name=maxSurge\"`\n}\n\n// DaemonSetSpec is the specification of a daemon set.\ntype DaemonSetSpec struct {\n\t// A label query over pods that are managed by the daemon set.\n\t// Must match in order to be controlled.\n\t// It must match the pod template's labels.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n\tSelector *metav1.LabelSelector `json:\"selector\" protobuf:\"bytes,1,opt,name=selector\"`\n\n\t// An object that describes the pod that will be created.\n\t// The DaemonSet will create exactly one copy of this pod on every node\n\t// that matches the template's node selector (or on every node if no node\n\t// selector is specified).\n\t// The only allowed template.spec.restartPolicy value is \"Always\".\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\n\tTemplate v1.PodTemplateSpec `json:\"template\" protobuf:\"bytes,2,opt,name=template\"`\n\n\t// An update strategy to replace existing DaemonSet pods with new pods.\n\t// +optional\n\tUpdateStrategy DaemonSetUpdateStrategy `json:\"updateStrategy,omitempty\" protobuf:\"bytes,3,opt,name=updateStrategy\"`\n\n\t// The minimum number of seconds for which a newly created DaemonSet pod should\n\t// be ready without any of its container crashing, for it to be considered\n\t// available. Defaults to 0 (pod will be considered available as soon as it\n\t// is ready).\n\t// +optional\n\tMinReadySeconds int32 `json:\"minReadySeconds,omitempty\" protobuf:\"varint,4,opt,name=minReadySeconds\"`\n\n\t// The number of old history to retain to allow rollback.\n\t// This is a pointer to distinguish between explicit zero and not specified.\n\t// Defaults to 10.\n\t// +optional\n\tRevisionHistoryLimit *int32 `json:\"revisionHistoryLimit,omitempty\" protobuf:\"varint,6,opt,name=revisionHistoryLimit\"`\n}\n\n// DaemonSetStatus represents the current status of a daemon set.\ntype DaemonSetStatus struct {\n\t// The number of nodes that are running at least 1\n\t// daemon pod and are supposed to run the daemon pod.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\n\tCurrentNumberScheduled int32 `json:\"currentNumberScheduled\" protobuf:\"varint,1,opt,name=currentNumberScheduled\"`\n\n\t// The number of nodes that are running the daemon pod, but are\n\t// not supposed to run the daemon pod.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\n\tNumberMisscheduled int32 `json:\"numberMisscheduled\" protobuf:\"varint,2,opt,name=numberMisscheduled\"`\n\n\t// The total number of nodes that should be running the daemon\n\t// pod (including nodes correctly running the daemon pod).\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\n\tDesiredNumberScheduled int32 `json:\"desiredNumberScheduled\" protobuf:\"varint,3,opt,name=desiredNumberScheduled\"`\n\n\t// numberReady is the number of nodes that should be running the daemon pod and have one\n\t// or more of the daemon pod running with a Ready Condition.\n\tNumberReady int32 `json:\"numberReady\" protobuf:\"varint,4,opt,name=numberReady\"`\n\n\t// The most recent generation observed by the daemon set controller.\n\t// +optional\n\tObservedGeneration int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,5,opt,name=observedGeneration\"`\n\n\t// The total number of nodes that are running updated daemon pod\n\t// +optional\n\tUpdatedNumberScheduled int32 `json:\"updatedNumberScheduled,omitempty\" protobuf:\"varint,6,opt,name=updatedNumberScheduled\"`\n\n\t// The number of nodes that should be running the\n\t// daemon pod and have one or more of the daemon pod running and\n\t// available (ready for at least spec.minReadySeconds)\n\t// +optional\n\tNumberAvailable int32 `json:\"numberAvailable,omitempty\" protobuf:\"varint,7,opt,name=numberAvailable\"`\n\n\t// The number of nodes that should be running the\n\t// daemon pod and have none of the daemon pod running and available\n\t// (ready for at least spec.minReadySeconds)\n\t// +optional\n\tNumberUnavailable int32 `json:\"numberUnavailable,omitempty\" protobuf:\"varint,8,opt,name=numberUnavailable\"`\n\n\t// Count of hash collisions for the DaemonSet. The DaemonSet controller\n\t// uses this field as a collision avoidance mechanism when it needs to\n\t// create the name for the newest ControllerRevision.\n\t// +optional\n\tCollisionCount *int32 `json:\"collisionCount,omitempty\" protobuf:\"varint,9,opt,name=collisionCount\"`\n\n\t// Represents the latest available observations of a DaemonSet's current state.\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=type\n\tConditions []DaemonSetCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,10,rep,name=conditions\"`\n}\n\ntype DaemonSetConditionType string\n\n// TODO: Add valid condition types of a DaemonSet.\n\n// DaemonSetCondition describes the state of a DaemonSet at a certain point.\ntype DaemonSetCondition struct {\n\t// Type of DaemonSet condition.\n\tType DaemonSetConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=DaemonSetConditionType\"`\n\t// Status of the condition, one of True, False, Unknown.\n\tStatus v1.ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus\"`\n\t// Last time the condition transitioned from one status to another.\n\t// +optional\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\t// The reason for the condition's last transition.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// A human readable message indicating details about the transition.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.9\n\n// DaemonSet represents the configuration of a daemon set.\ntype DaemonSet struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// The desired behavior of this daemon set.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec DaemonSetSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// The current status of this daemon set. This data may be\n\t// out of date by some window of time.\n\t// Populated by the system.\n\t// Read-only.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus DaemonSetStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\nconst (\n\t// DefaultDaemonSetUniqueLabelKey is the default label key that is added\n\t// to existing DaemonSet pods to distinguish between old and new\n\t// DaemonSet pods during DaemonSet template updates.\n\tDefaultDaemonSetUniqueLabelKey = ControllerRevisionHashLabelKey\n)\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.9\n\n// DaemonSetList is a collection of daemon sets.\ntype DaemonSetList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// A list of daemon sets.\n\tItems []DaemonSet `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +genclient:method=GetScale,verb=get,subresource=scale,result=k8s.io/api/autoscaling/v1.Scale\n// +genclient:method=UpdateScale,verb=update,subresource=scale,input=k8s.io/api/autoscaling/v1.Scale,result=k8s.io/api/autoscaling/v1.Scale\n// +genclient:method=ApplyScale,verb=apply,subresource=scale,input=k8s.io/api/autoscaling/v1.Scale,result=k8s.io/api/autoscaling/v1.Scale\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.9\n\n// ReplicaSet ensures that a specified number of pod replicas are running at any given time.\ntype ReplicaSet struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// If the Labels of a ReplicaSet are empty, they are defaulted to\n\t// be the same as the Pod(s) that the ReplicaSet manages.\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec defines the specification of the desired behavior of the ReplicaSet.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec ReplicaSetSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status is the most recently observed status of the ReplicaSet.\n\t// This data may be out of date by some window of time.\n\t// Populated by the system.\n\t// Read-only.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus ReplicaSetStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.9\n\n// ReplicaSetList is a collection of ReplicaSets.\ntype ReplicaSetList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// List of ReplicaSets.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller\n\tItems []ReplicaSet `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// ReplicaSetSpec is the specification of a ReplicaSet.\ntype ReplicaSetSpec struct {\n\t// Replicas is the number of desired replicas.\n\t// This is a pointer to distinguish between explicit zero and unspecified.\n\t// Defaults to 1.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller\n\t// +optional\n\tReplicas *int32 `json:\"replicas,omitempty\" protobuf:\"varint,1,opt,name=replicas\"`\n\n\t// Minimum number of seconds for which a newly created pod should be ready\n\t// without any of its container crashing, for it to be considered available.\n\t// Defaults to 0 (pod will be considered available as soon as it is ready)\n\t// +optional\n\tMinReadySeconds int32 `json:\"minReadySeconds,omitempty\" protobuf:\"varint,4,opt,name=minReadySeconds\"`\n\n\t// Selector is a label query over pods that should match the replica count.\n\t// Label keys and values that must match in order to be controlled by this replica set.\n\t// It must match the pod template's labels.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n\tSelector *metav1.LabelSelector `json:\"selector\" protobuf:\"bytes,2,opt,name=selector\"`\n\n\t// Template is the object that describes the pod that will be created if\n\t// insufficient replicas are detected.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\n\t// +optional\n\tTemplate v1.PodTemplateSpec `json:\"template,omitempty\" protobuf:\"bytes,3,opt,name=template\"`\n}\n\n// ReplicaSetStatus represents the current status of a ReplicaSet.\ntype ReplicaSetStatus struct {\n\t// Replicas is the most recently observed number of replicas.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller\n\tReplicas int32 `json:\"replicas\" protobuf:\"varint,1,opt,name=replicas\"`\n\n\t// The number of pods that have labels matching the labels of the pod template of the replicaset.\n\t// +optional\n\tFullyLabeledReplicas int32 `json:\"fullyLabeledReplicas,omitempty\" protobuf:\"varint,2,opt,name=fullyLabeledReplicas\"`\n\n\t// readyReplicas is the number of pods targeted by this ReplicaSet with a Ready Condition.\n\t// +optional\n\tReadyReplicas int32 `json:\"readyReplicas,omitempty\" protobuf:\"varint,4,opt,name=readyReplicas\"`\n\n\t// The number of available replicas (ready for at least minReadySeconds) for this replica set.\n\t// +optional\n\tAvailableReplicas int32 `json:\"availableReplicas,omitempty\" protobuf:\"varint,5,opt,name=availableReplicas\"`\n\n\t// ObservedGeneration reflects the generation of the most recently observed ReplicaSet.\n\t// +optional\n\tObservedGeneration int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,3,opt,name=observedGeneration\"`\n\n\t// Represents the latest available observations of a replica set's current state.\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=type\n\tConditions []ReplicaSetCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,6,rep,name=conditions\"`\n}\n\ntype ReplicaSetConditionType string\n\n// These are valid conditions of a replica set.\nconst (\n\t// ReplicaSetReplicaFailure is added in a replica set when one of its pods fails to be created\n\t// due to insufficient quota, limit ranges, pod security policy, node selectors, etc. or deleted\n\t// due to kubelet being down or finalizers are failing.\n\tReplicaSetReplicaFailure ReplicaSetConditionType = \"ReplicaFailure\"\n)\n\n// ReplicaSetCondition describes the state of a replica set at a certain point.\ntype ReplicaSetCondition struct {\n\t// Type of replica set condition.\n\tType ReplicaSetConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=ReplicaSetConditionType\"`\n\t// Status of the condition, one of True, False, Unknown.\n\tStatus v1.ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus\"`\n\t// The last time the condition transitioned from one status to another.\n\t// +optional\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\t// The reason for the condition's last transition.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// A human readable message indicating details about the transition.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.9\n\n// ControllerRevision implements an immutable snapshot of state data. Clients\n// are responsible for serializing and deserializing the objects that contain\n// their internal state.\n// Once a ControllerRevision has been successfully created, it can not be updated.\n// The API Server will fail validation of all requests that attempt to mutate\n// the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both\n// the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However,\n// it may be subject to name and representation changes in future releases, and clients should not\n// depend on its stability. It is primarily for internal use by controllers.\ntype ControllerRevision struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Data is the serialized representation of the state.\n\tData runtime.RawExtension `json:\"data,omitempty\" protobuf:\"bytes,2,opt,name=data\"`\n\n\t// Revision indicates the revision of the state represented by Data.\n\tRevision int64 `json:\"revision\" protobuf:\"varint,3,opt,name=revision\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.9\n\n// ControllerRevisionList is a resource containing a list of ControllerRevision objects.\ntype ControllerRevisionList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is the list of ControllerRevisions\n\tItems []ControllerRevision `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_ControllerRevision = map[string]string{\n\t\"\":         \"ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"data\":     \"Data is the serialized representation of the state.\",\n\t\"revision\": \"Revision indicates the revision of the state represented by Data.\",\n}\n\nfunc (ControllerRevision) SwaggerDoc() map[string]string {\n\treturn map_ControllerRevision\n}\n\nvar map_ControllerRevisionList = map[string]string{\n\t\"\":         \"ControllerRevisionList is a resource containing a list of ControllerRevision objects.\",\n\t\"metadata\": \"More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"Items is the list of ControllerRevisions\",\n}\n\nfunc (ControllerRevisionList) SwaggerDoc() map[string]string {\n\treturn map_ControllerRevisionList\n}\n\nvar map_DaemonSet = map[string]string{\n\t\"\":         \"DaemonSet represents the configuration of a daemon set.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"The current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (DaemonSet) SwaggerDoc() map[string]string {\n\treturn map_DaemonSet\n}\n\nvar map_DaemonSetCondition = map[string]string{\n\t\"\":                   \"DaemonSetCondition describes the state of a DaemonSet at a certain point.\",\n\t\"type\":               \"Type of DaemonSet condition.\",\n\t\"status\":             \"Status of the condition, one of True, False, Unknown.\",\n\t\"lastTransitionTime\": \"Last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"The reason for the condition's last transition.\",\n\t\"message\":            \"A human readable message indicating details about the transition.\",\n}\n\nfunc (DaemonSetCondition) SwaggerDoc() map[string]string {\n\treturn map_DaemonSetCondition\n}\n\nvar map_DaemonSetList = map[string]string{\n\t\"\":         \"DaemonSetList is a collection of daemon sets.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"A list of daemon sets.\",\n}\n\nfunc (DaemonSetList) SwaggerDoc() map[string]string {\n\treturn map_DaemonSetList\n}\n\nvar map_DaemonSetSpec = map[string]string{\n\t\"\":                     \"DaemonSetSpec is the specification of a daemon set.\",\n\t\"selector\":             \"A label query over pods that are managed by the daemon set. Must match in order to be controlled. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\n\t\"template\":             \"An object that describes the pod that will be created. The DaemonSet will create exactly one copy of this pod on every node that matches the template's node selector (or on every node if no node selector is specified). The only allowed template.spec.restartPolicy value is \\\"Always\\\". More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\",\n\t\"updateStrategy\":       \"An update strategy to replace existing DaemonSet pods with new pods.\",\n\t\"minReadySeconds\":      \"The minimum number of seconds for which a newly created DaemonSet pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).\",\n\t\"revisionHistoryLimit\": \"The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.\",\n}\n\nfunc (DaemonSetSpec) SwaggerDoc() map[string]string {\n\treturn map_DaemonSetSpec\n}\n\nvar map_DaemonSetStatus = map[string]string{\n\t\"\":                       \"DaemonSetStatus represents the current status of a daemon set.\",\n\t\"currentNumberScheduled\": \"The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\",\n\t\"numberMisscheduled\":     \"The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\",\n\t\"desiredNumberScheduled\": \"The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\",\n\t\"numberReady\":            \"numberReady is the number of nodes that should be running the daemon pod and have one or more of the daemon pod running with a Ready Condition.\",\n\t\"observedGeneration\":     \"The most recent generation observed by the daemon set controller.\",\n\t\"updatedNumberScheduled\": \"The total number of nodes that are running updated daemon pod\",\n\t\"numberAvailable\":        \"The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds)\",\n\t\"numberUnavailable\":      \"The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds)\",\n\t\"collisionCount\":         \"Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.\",\n\t\"conditions\":             \"Represents the latest available observations of a DaemonSet's current state.\",\n}\n\nfunc (DaemonSetStatus) SwaggerDoc() map[string]string {\n\treturn map_DaemonSetStatus\n}\n\nvar map_DaemonSetUpdateStrategy = map[string]string{\n\t\"\":              \"DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.\",\n\t\"type\":          \"Type of daemon set update. Can be \\\"RollingUpdate\\\" or \\\"OnDelete\\\". Default is RollingUpdate.\",\n\t\"rollingUpdate\": \"Rolling update config params. Present only if type = \\\"RollingUpdate\\\".\",\n}\n\nfunc (DaemonSetUpdateStrategy) SwaggerDoc() map[string]string {\n\treturn map_DaemonSetUpdateStrategy\n}\n\nvar map_Deployment = map[string]string{\n\t\"\":         \"Deployment enables declarative updates for Pods and ReplicaSets.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Specification of the desired behavior of the Deployment.\",\n\t\"status\":   \"Most recently observed status of the Deployment.\",\n}\n\nfunc (Deployment) SwaggerDoc() map[string]string {\n\treturn map_Deployment\n}\n\nvar map_DeploymentCondition = map[string]string{\n\t\"\":                   \"DeploymentCondition describes the state of a deployment at a certain point.\",\n\t\"type\":               \"Type of deployment condition.\",\n\t\"status\":             \"Status of the condition, one of True, False, Unknown.\",\n\t\"lastUpdateTime\":     \"The last time this condition was updated.\",\n\t\"lastTransitionTime\": \"Last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"The reason for the condition's last transition.\",\n\t\"message\":            \"A human readable message indicating details about the transition.\",\n}\n\nfunc (DeploymentCondition) SwaggerDoc() map[string]string {\n\treturn map_DeploymentCondition\n}\n\nvar map_DeploymentList = map[string]string{\n\t\"\":         \"DeploymentList is a list of Deployments.\",\n\t\"metadata\": \"Standard list metadata.\",\n\t\"items\":    \"Items is the list of Deployments.\",\n}\n\nfunc (DeploymentList) SwaggerDoc() map[string]string {\n\treturn map_DeploymentList\n}\n\nvar map_DeploymentSpec = map[string]string{\n\t\"\":                        \"DeploymentSpec is the specification of the desired behavior of the Deployment.\",\n\t\"replicas\":                \"Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.\",\n\t\"selector\":                \"Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment. It must match the pod template's labels.\",\n\t\"template\":                \"Template describes the pods that will be created. The only allowed template.spec.restartPolicy value is \\\"Always\\\".\",\n\t\"strategy\":                \"The deployment strategy to use to replace existing pods with new ones.\",\n\t\"minReadySeconds\":         \"Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)\",\n\t\"revisionHistoryLimit\":    \"The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.\",\n\t\"paused\":                  \"Indicates that the deployment is paused.\",\n\t\"progressDeadlineSeconds\": \"The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s.\",\n}\n\nfunc (DeploymentSpec) SwaggerDoc() map[string]string {\n\treturn map_DeploymentSpec\n}\n\nvar map_DeploymentStatus = map[string]string{\n\t\"\":                    \"DeploymentStatus is the most recently observed status of the Deployment.\",\n\t\"observedGeneration\":  \"The generation observed by the deployment controller.\",\n\t\"replicas\":            \"Total number of non-terminated pods targeted by this deployment (their labels match the selector).\",\n\t\"updatedReplicas\":     \"Total number of non-terminated pods targeted by this deployment that have the desired template spec.\",\n\t\"readyReplicas\":       \"readyReplicas is the number of pods targeted by this Deployment with a Ready Condition.\",\n\t\"availableReplicas\":   \"Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.\",\n\t\"unavailableReplicas\": \"Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created.\",\n\t\"conditions\":          \"Represents the latest available observations of a deployment's current state.\",\n\t\"collisionCount\":      \"Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.\",\n}\n\nfunc (DeploymentStatus) SwaggerDoc() map[string]string {\n\treturn map_DeploymentStatus\n}\n\nvar map_DeploymentStrategy = map[string]string{\n\t\"\":              \"DeploymentStrategy describes how to replace existing pods with new ones.\",\n\t\"type\":          \"Type of deployment. Can be \\\"Recreate\\\" or \\\"RollingUpdate\\\". Default is RollingUpdate.\",\n\t\"rollingUpdate\": \"Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.\",\n}\n\nfunc (DeploymentStrategy) SwaggerDoc() map[string]string {\n\treturn map_DeploymentStrategy\n}\n\nvar map_ReplicaSet = map[string]string{\n\t\"\":         \"ReplicaSet ensures that a specified number of pod replicas are running at any given time.\",\n\t\"metadata\": \"If the Labels of a ReplicaSet are empty, they are defaulted to be the same as the Pod(s) that the ReplicaSet manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (ReplicaSet) SwaggerDoc() map[string]string {\n\treturn map_ReplicaSet\n}\n\nvar map_ReplicaSetCondition = map[string]string{\n\t\"\":                   \"ReplicaSetCondition describes the state of a replica set at a certain point.\",\n\t\"type\":               \"Type of replica set condition.\",\n\t\"status\":             \"Status of the condition, one of True, False, Unknown.\",\n\t\"lastTransitionTime\": \"The last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"The reason for the condition's last transition.\",\n\t\"message\":            \"A human readable message indicating details about the transition.\",\n}\n\nfunc (ReplicaSetCondition) SwaggerDoc() map[string]string {\n\treturn map_ReplicaSetCondition\n}\n\nvar map_ReplicaSetList = map[string]string{\n\t\"\":         \"ReplicaSetList is a collection of ReplicaSets.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller\",\n}\n\nfunc (ReplicaSetList) SwaggerDoc() map[string]string {\n\treturn map_ReplicaSetList\n}\n\nvar map_ReplicaSetSpec = map[string]string{\n\t\"\":                \"ReplicaSetSpec is the specification of a ReplicaSet.\",\n\t\"replicas\":        \"Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller\",\n\t\"minReadySeconds\": \"Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)\",\n\t\"selector\":        \"Selector is a label query over pods that should match the replica count. Label keys and values that must match in order to be controlled by this replica set. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\n\t\"template\":        \"Template is the object that describes the pod that will be created if insufficient replicas are detected. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\",\n}\n\nfunc (ReplicaSetSpec) SwaggerDoc() map[string]string {\n\treturn map_ReplicaSetSpec\n}\n\nvar map_ReplicaSetStatus = map[string]string{\n\t\"\":                     \"ReplicaSetStatus represents the current status of a ReplicaSet.\",\n\t\"replicas\":             \"Replicas is the most recently observed number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller\",\n\t\"fullyLabeledReplicas\": \"The number of pods that have labels matching the labels of the pod template of the replicaset.\",\n\t\"readyReplicas\":        \"readyReplicas is the number of pods targeted by this ReplicaSet with a Ready Condition.\",\n\t\"availableReplicas\":    \"The number of available replicas (ready for at least minReadySeconds) for this replica set.\",\n\t\"observedGeneration\":   \"ObservedGeneration reflects the generation of the most recently observed ReplicaSet.\",\n\t\"conditions\":           \"Represents the latest available observations of a replica set's current state.\",\n}\n\nfunc (ReplicaSetStatus) SwaggerDoc() map[string]string {\n\treturn map_ReplicaSetStatus\n}\n\nvar map_RollingUpdateDaemonSet = map[string]string{\n\t\"\":               \"Spec to control the desired behavior of daemon set rolling update.\",\n\t\"maxUnavailable\": \"The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0 if MaxSurge is 0 Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update.\",\n\t\"maxSurge\":       \"The maximum number of nodes with an existing available DaemonSet pod that can have an updated DaemonSet pod during during an update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up to a minimum of 1. Default value is 0. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their a new pod created before the old pod is marked as deleted. The update starts by launching new pods on 30% of nodes. Once an updated pod is available (Ready for at least minReadySeconds) the old DaemonSet pod on that node is marked deleted. If the old pod becomes unavailable for any reason (Ready transitions to false, is evicted, or is drained) an updated pod is immediatedly created on that node without considering surge limits. Allowing surge implies the possibility that the resources consumed by the daemonset on any given node can double if the readiness check fails, and so resource intensive daemonsets should take into account that they may cause evictions during disruption.\",\n}\n\nfunc (RollingUpdateDaemonSet) SwaggerDoc() map[string]string {\n\treturn map_RollingUpdateDaemonSet\n}\n\nvar map_RollingUpdateDeployment = map[string]string{\n\t\"\":               \"Spec to control the desired behavior of rolling update.\",\n\t\"maxUnavailable\": \"The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old ReplicaSet can be scaled down further, followed by scaling up the new ReplicaSet, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.\",\n\t\"maxSurge\":       \"The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new ReplicaSet can be scaled up further, ensuring that total number of pods running at any time during the update is at most 130% of desired pods.\",\n}\n\nfunc (RollingUpdateDeployment) SwaggerDoc() map[string]string {\n\treturn map_RollingUpdateDeployment\n}\n\nvar map_RollingUpdateStatefulSetStrategy = map[string]string{\n\t\"\":               \"RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.\",\n\t\"partition\":      \"Partition indicates the ordinal at which the StatefulSet should be partitioned for updates. During a rolling update, all pods from ordinal Replicas-1 to Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched. This is helpful in being able to do a canary based deployment. The default value is 0.\",\n\t\"maxUnavailable\": \"The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0. Defaults to 1. This field is alpha-level and is only honored by servers that enable the MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable.\",\n}\n\nfunc (RollingUpdateStatefulSetStrategy) SwaggerDoc() map[string]string {\n\treturn map_RollingUpdateStatefulSetStrategy\n}\n\nvar map_StatefulSet = map[string]string{\n\t\"\":         \"StatefulSet represents a set of pods with consistent identities. Identities are defined as:\\n  - Network: A single stable DNS and hostname.\\n  - Storage: As many VolumeClaims as requested.\\n\\nThe StatefulSet guarantees that a given network identity will always map to the same storage identity.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec defines the desired identities of pods in this set.\",\n\t\"status\":   \"Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time.\",\n}\n\nfunc (StatefulSet) SwaggerDoc() map[string]string {\n\treturn map_StatefulSet\n}\n\nvar map_StatefulSetCondition = map[string]string{\n\t\"\":                   \"StatefulSetCondition describes the state of a statefulset at a certain point.\",\n\t\"type\":               \"Type of statefulset condition.\",\n\t\"status\":             \"Status of the condition, one of True, False, Unknown.\",\n\t\"lastTransitionTime\": \"Last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"The reason for the condition's last transition.\",\n\t\"message\":            \"A human readable message indicating details about the transition.\",\n}\n\nfunc (StatefulSetCondition) SwaggerDoc() map[string]string {\n\treturn map_StatefulSetCondition\n}\n\nvar map_StatefulSetList = map[string]string{\n\t\"\":         \"StatefulSetList is a collection of StatefulSets.\",\n\t\"metadata\": \"Standard list's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"Items is the list of stateful sets.\",\n}\n\nfunc (StatefulSetList) SwaggerDoc() map[string]string {\n\treturn map_StatefulSetList\n}\n\nvar map_StatefulSetOrdinals = map[string]string{\n\t\"\":      \"StatefulSetOrdinals describes the policy used for replica ordinal assignment in this StatefulSet.\",\n\t\"start\": \"start is the number representing the first replica's index. It may be used to number replicas from an alternate index (eg: 1-indexed) over the default 0-indexed names, or to orchestrate progressive movement of replicas from one StatefulSet to another. If set, replica indices will be in the range:\\n  [.spec.ordinals.start, .spec.ordinals.start + .spec.replicas).\\nIf unset, defaults to 0. Replica indices will be in the range:\\n  [0, .spec.replicas).\",\n}\n\nfunc (StatefulSetOrdinals) SwaggerDoc() map[string]string {\n\treturn map_StatefulSetOrdinals\n}\n\nvar map_StatefulSetPersistentVolumeClaimRetentionPolicy = map[string]string{\n\t\"\":            \"StatefulSetPersistentVolumeClaimRetentionPolicy describes the policy used for PVCs created from the StatefulSet VolumeClaimTemplates.\",\n\t\"whenDeleted\": \"WhenDeleted specifies what happens to PVCs created from StatefulSet VolumeClaimTemplates when the StatefulSet is deleted. The default policy of `Retain` causes PVCs to not be affected by StatefulSet deletion. The `Delete` policy causes those PVCs to be deleted.\",\n\t\"whenScaled\":  \"WhenScaled specifies what happens to PVCs created from StatefulSet VolumeClaimTemplates when the StatefulSet is scaled down. The default policy of `Retain` causes PVCs to not be affected by a scaledown. The `Delete` policy causes the associated PVCs for any excess pods above the replica count to be deleted.\",\n}\n\nfunc (StatefulSetPersistentVolumeClaimRetentionPolicy) SwaggerDoc() map[string]string {\n\treturn map_StatefulSetPersistentVolumeClaimRetentionPolicy\n}\n\nvar map_StatefulSetSpec = map[string]string{\n\t\"\":                                     \"A StatefulSetSpec is the specification of a StatefulSet.\",\n\t\"replicas\":                             \"replicas is the desired number of replicas of the given Template. These are replicas in the sense that they are instantiations of the same Template, but individual replicas also have a consistent identity. If unspecified, defaults to 1.\",\n\t\"selector\":                             \"selector is a label query over pods that should match the replica count. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\n\t\"template\":                             \"template is the object that describes the pod that will be created if insufficient replicas are detected. Each pod stamped out by the StatefulSet will fulfill this Template, but have a unique identity from the rest of the StatefulSet. Each pod will be named with the format <statefulsetname>-<podindex>. For example, a pod in a StatefulSet named \\\"web\\\" with index number \\\"3\\\" would be named \\\"web-3\\\". The only allowed template.spec.restartPolicy value is \\\"Always\\\".\",\n\t\"volumeClaimTemplates\":                 \"volumeClaimTemplates is a list of claims that pods are allowed to reference. The StatefulSet controller is responsible for mapping network identities to claims in a way that maintains the identity of a pod. Every claim in this list must have at least one matching (by name) volumeMount in one container in the template. A claim in this list takes precedence over any volumes in the template, with the same name.\",\n\t\"serviceName\":                          \"serviceName is the name of the service that governs this StatefulSet. This service must exist before the StatefulSet, and is responsible for the network identity of the set. Pods get DNS/hostnames that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local where \\\"pod-specific-string\\\" is managed by the StatefulSet controller.\",\n\t\"podManagementPolicy\":                  \"podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is `OrderedReady`, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is `Parallel` which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once.\",\n\t\"updateStrategy\":                       \"updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template.\",\n\t\"revisionHistoryLimit\":                 \"revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet's revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10.\",\n\t\"minReadySeconds\":                      \"Minimum number of seconds for which a newly created pod should be ready without any of its container crashing for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)\",\n\t\"persistentVolumeClaimRetentionPolicy\": \"persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down.\",\n\t\"ordinals\":                             \"ordinals controls the numbering of replica indices in a StatefulSet. The default ordinals behavior assigns a \\\"0\\\" index to the first replica and increments the index by one for each additional replica requested.\",\n}\n\nfunc (StatefulSetSpec) SwaggerDoc() map[string]string {\n\treturn map_StatefulSetSpec\n}\n\nvar map_StatefulSetStatus = map[string]string{\n\t\"\":                   \"StatefulSetStatus represents the current state of a StatefulSet.\",\n\t\"observedGeneration\": \"observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the StatefulSet's generation, which is updated on mutation by the API Server.\",\n\t\"replicas\":           \"replicas is the number of Pods created by the StatefulSet controller.\",\n\t\"readyReplicas\":      \"readyReplicas is the number of pods created for this StatefulSet with a Ready Condition.\",\n\t\"currentReplicas\":    \"currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.\",\n\t\"updatedReplicas\":    \"updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.\",\n\t\"currentRevision\":    \"currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).\",\n\t\"updateRevision\":     \"updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)\",\n\t\"collisionCount\":     \"collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.\",\n\t\"conditions\":         \"Represents the latest available observations of a statefulset's current state.\",\n\t\"availableReplicas\":  \"Total number of available pods (ready for at least minReadySeconds) targeted by this statefulset.\",\n}\n\nfunc (StatefulSetStatus) SwaggerDoc() map[string]string {\n\treturn map_StatefulSetStatus\n}\n\nvar map_StatefulSetUpdateStrategy = map[string]string{\n\t\"\":              \"StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.\",\n\t\"type\":          \"Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.\",\n\t\"rollingUpdate\": \"RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.\",\n}\n\nfunc (StatefulSetUpdateStrategy) SwaggerDoc() map[string]string {\n\treturn map_StatefulSetUpdateStrategy\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ControllerRevision) DeepCopyInto(out *ControllerRevision) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Data.DeepCopyInto(&out.Data)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerRevision.\nfunc (in *ControllerRevision) DeepCopy() *ControllerRevision {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ControllerRevision)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ControllerRevision) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ControllerRevisionList) DeepCopyInto(out *ControllerRevisionList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ControllerRevision, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerRevisionList.\nfunc (in *ControllerRevisionList) DeepCopy() *ControllerRevisionList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ControllerRevisionList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ControllerRevisionList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DaemonSet) DeepCopyInto(out *DaemonSet) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSet.\nfunc (in *DaemonSet) DeepCopy() *DaemonSet {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DaemonSet)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *DaemonSet) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DaemonSetCondition) DeepCopyInto(out *DaemonSetCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetCondition.\nfunc (in *DaemonSetCondition) DeepCopy() *DaemonSetCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DaemonSetCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DaemonSetList) DeepCopyInto(out *DaemonSetList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]DaemonSet, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetList.\nfunc (in *DaemonSetList) DeepCopy() *DaemonSetList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DaemonSetList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *DaemonSetList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DaemonSetSpec) DeepCopyInto(out *DaemonSetSpec) {\n\t*out = *in\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tin.Template.DeepCopyInto(&out.Template)\n\tin.UpdateStrategy.DeepCopyInto(&out.UpdateStrategy)\n\tif in.RevisionHistoryLimit != nil {\n\t\tin, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetSpec.\nfunc (in *DaemonSetSpec) DeepCopy() *DaemonSetSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DaemonSetSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DaemonSetStatus) DeepCopyInto(out *DaemonSetStatus) {\n\t*out = *in\n\tif in.CollisionCount != nil {\n\t\tin, out := &in.CollisionCount, &out.CollisionCount\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]DaemonSetCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetStatus.\nfunc (in *DaemonSetStatus) DeepCopy() *DaemonSetStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DaemonSetStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DaemonSetUpdateStrategy) DeepCopyInto(out *DaemonSetUpdateStrategy) {\n\t*out = *in\n\tif in.RollingUpdate != nil {\n\t\tin, out := &in.RollingUpdate, &out.RollingUpdate\n\t\t*out = new(RollingUpdateDaemonSet)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetUpdateStrategy.\nfunc (in *DaemonSetUpdateStrategy) DeepCopy() *DaemonSetUpdateStrategy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DaemonSetUpdateStrategy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Deployment) DeepCopyInto(out *Deployment) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Deployment.\nfunc (in *Deployment) DeepCopy() *Deployment {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Deployment)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Deployment) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentCondition) DeepCopyInto(out *DeploymentCondition) {\n\t*out = *in\n\tin.LastUpdateTime.DeepCopyInto(&out.LastUpdateTime)\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentCondition.\nfunc (in *DeploymentCondition) DeepCopy() *DeploymentCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentList) DeepCopyInto(out *DeploymentList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Deployment, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentList.\nfunc (in *DeploymentList) DeepCopy() *DeploymentList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *DeploymentList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentSpec) DeepCopyInto(out *DeploymentSpec) {\n\t*out = *in\n\tif in.Replicas != nil {\n\t\tin, out := &in.Replicas, &out.Replicas\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tin.Template.DeepCopyInto(&out.Template)\n\tin.Strategy.DeepCopyInto(&out.Strategy)\n\tif in.RevisionHistoryLimit != nil {\n\t\tin, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.ProgressDeadlineSeconds != nil {\n\t\tin, out := &in.ProgressDeadlineSeconds, &out.ProgressDeadlineSeconds\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentSpec.\nfunc (in *DeploymentSpec) DeepCopy() *DeploymentSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentStatus) DeepCopyInto(out *DeploymentStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]DeploymentCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.CollisionCount != nil {\n\t\tin, out := &in.CollisionCount, &out.CollisionCount\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentStatus.\nfunc (in *DeploymentStatus) DeepCopy() *DeploymentStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentStrategy) DeepCopyInto(out *DeploymentStrategy) {\n\t*out = *in\n\tif in.RollingUpdate != nil {\n\t\tin, out := &in.RollingUpdate, &out.RollingUpdate\n\t\t*out = new(RollingUpdateDeployment)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentStrategy.\nfunc (in *DeploymentStrategy) DeepCopy() *DeploymentStrategy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentStrategy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ReplicaSet) DeepCopyInto(out *ReplicaSet) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSet.\nfunc (in *ReplicaSet) DeepCopy() *ReplicaSet {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ReplicaSet)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ReplicaSet) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ReplicaSetCondition) DeepCopyInto(out *ReplicaSetCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetCondition.\nfunc (in *ReplicaSetCondition) DeepCopy() *ReplicaSetCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ReplicaSetCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ReplicaSetList) DeepCopyInto(out *ReplicaSetList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ReplicaSet, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetList.\nfunc (in *ReplicaSetList) DeepCopy() *ReplicaSetList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ReplicaSetList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ReplicaSetList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ReplicaSetSpec) DeepCopyInto(out *ReplicaSetSpec) {\n\t*out = *in\n\tif in.Replicas != nil {\n\t\tin, out := &in.Replicas, &out.Replicas\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tin.Template.DeepCopyInto(&out.Template)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetSpec.\nfunc (in *ReplicaSetSpec) DeepCopy() *ReplicaSetSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ReplicaSetSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ReplicaSetStatus) DeepCopyInto(out *ReplicaSetStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]ReplicaSetCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetStatus.\nfunc (in *ReplicaSetStatus) DeepCopy() *ReplicaSetStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ReplicaSetStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RollingUpdateDaemonSet) DeepCopyInto(out *RollingUpdateDaemonSet) {\n\t*out = *in\n\tif in.MaxUnavailable != nil {\n\t\tin, out := &in.MaxUnavailable, &out.MaxUnavailable\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\tif in.MaxSurge != nil {\n\t\tin, out := &in.MaxSurge, &out.MaxSurge\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollingUpdateDaemonSet.\nfunc (in *RollingUpdateDaemonSet) DeepCopy() *RollingUpdateDaemonSet {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RollingUpdateDaemonSet)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RollingUpdateDeployment) DeepCopyInto(out *RollingUpdateDeployment) {\n\t*out = *in\n\tif in.MaxUnavailable != nil {\n\t\tin, out := &in.MaxUnavailable, &out.MaxUnavailable\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\tif in.MaxSurge != nil {\n\t\tin, out := &in.MaxSurge, &out.MaxSurge\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollingUpdateDeployment.\nfunc (in *RollingUpdateDeployment) DeepCopy() *RollingUpdateDeployment {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RollingUpdateDeployment)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RollingUpdateStatefulSetStrategy) DeepCopyInto(out *RollingUpdateStatefulSetStrategy) {\n\t*out = *in\n\tif in.Partition != nil {\n\t\tin, out := &in.Partition, &out.Partition\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.MaxUnavailable != nil {\n\t\tin, out := &in.MaxUnavailable, &out.MaxUnavailable\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollingUpdateStatefulSetStrategy.\nfunc (in *RollingUpdateStatefulSetStrategy) DeepCopy() *RollingUpdateStatefulSetStrategy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RollingUpdateStatefulSetStrategy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSet) DeepCopyInto(out *StatefulSet) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSet.\nfunc (in *StatefulSet) DeepCopy() *StatefulSet {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSet)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *StatefulSet) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSetCondition) DeepCopyInto(out *StatefulSetCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetCondition.\nfunc (in *StatefulSetCondition) DeepCopy() *StatefulSetCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSetCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSetList) DeepCopyInto(out *StatefulSetList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]StatefulSet, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetList.\nfunc (in *StatefulSetList) DeepCopy() *StatefulSetList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSetList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *StatefulSetList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSetOrdinals) DeepCopyInto(out *StatefulSetOrdinals) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetOrdinals.\nfunc (in *StatefulSetOrdinals) DeepCopy() *StatefulSetOrdinals {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSetOrdinals)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSetPersistentVolumeClaimRetentionPolicy) DeepCopyInto(out *StatefulSetPersistentVolumeClaimRetentionPolicy) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetPersistentVolumeClaimRetentionPolicy.\nfunc (in *StatefulSetPersistentVolumeClaimRetentionPolicy) DeepCopy() *StatefulSetPersistentVolumeClaimRetentionPolicy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSetPersistentVolumeClaimRetentionPolicy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSetSpec) DeepCopyInto(out *StatefulSetSpec) {\n\t*out = *in\n\tif in.Replicas != nil {\n\t\tin, out := &in.Replicas, &out.Replicas\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tin.Template.DeepCopyInto(&out.Template)\n\tif in.VolumeClaimTemplates != nil {\n\t\tin, out := &in.VolumeClaimTemplates, &out.VolumeClaimTemplates\n\t\t*out = make([]corev1.PersistentVolumeClaim, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tin.UpdateStrategy.DeepCopyInto(&out.UpdateStrategy)\n\tif in.RevisionHistoryLimit != nil {\n\t\tin, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.PersistentVolumeClaimRetentionPolicy != nil {\n\t\tin, out := &in.PersistentVolumeClaimRetentionPolicy, &out.PersistentVolumeClaimRetentionPolicy\n\t\t*out = new(StatefulSetPersistentVolumeClaimRetentionPolicy)\n\t\t**out = **in\n\t}\n\tif in.Ordinals != nil {\n\t\tin, out := &in.Ordinals, &out.Ordinals\n\t\t*out = new(StatefulSetOrdinals)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetSpec.\nfunc (in *StatefulSetSpec) DeepCopy() *StatefulSetSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSetSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSetStatus) DeepCopyInto(out *StatefulSetStatus) {\n\t*out = *in\n\tif in.CollisionCount != nil {\n\t\tin, out := &in.CollisionCount, &out.CollisionCount\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]StatefulSetCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetStatus.\nfunc (in *StatefulSetStatus) DeepCopy() *StatefulSetStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSetStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSetUpdateStrategy) DeepCopyInto(out *StatefulSetUpdateStrategy) {\n\t*out = *in\n\tif in.RollingUpdate != nil {\n\t\tin, out := &in.RollingUpdate, &out.RollingUpdate\n\t\t*out = new(RollingUpdateStatefulSetStrategy)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetUpdateStrategy.\nfunc (in *StatefulSetUpdateStrategy) DeepCopy() *StatefulSetUpdateStrategy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSetUpdateStrategy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ControllerRevision) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ControllerRevisionList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *DaemonSet) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *DaemonSetList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *Deployment) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *DeploymentList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ReplicaSet) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ReplicaSetList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *StatefulSet) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *StatefulSetList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 9\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1beta1/doc.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\npackage v1beta1 // import \"k8s.io/api/apps/v1beta1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1beta1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/apps/v1beta1/generated.proto\n\npackage v1beta1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\tv11 \"k8s.io/api/core/v1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *ControllerRevision) Reset()      { *m = ControllerRevision{} }\nfunc (*ControllerRevision) ProtoMessage() {}\nfunc (*ControllerRevision) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2747f709ac7c95e7, []int{0}\n}\nfunc (m *ControllerRevision) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ControllerRevision) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ControllerRevision) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ControllerRevision.Merge(m, src)\n}\nfunc (m *ControllerRevision) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ControllerRevision) XXX_DiscardUnknown() {\n\txxx_messageInfo_ControllerRevision.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ControllerRevision proto.InternalMessageInfo\n\nfunc (m *ControllerRevisionList) Reset()      { *m = ControllerRevisionList{} }\nfunc (*ControllerRevisionList) ProtoMessage() {}\nfunc (*ControllerRevisionList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2747f709ac7c95e7, []int{1}\n}\nfunc (m *ControllerRevisionList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ControllerRevisionList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ControllerRevisionList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ControllerRevisionList.Merge(m, src)\n}\nfunc (m *ControllerRevisionList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ControllerRevisionList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ControllerRevisionList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ControllerRevisionList proto.InternalMessageInfo\n\nfunc (m *Deployment) Reset()      { *m = Deployment{} }\nfunc (*Deployment) ProtoMessage() {}\nfunc (*Deployment) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2747f709ac7c95e7, []int{2}\n}\nfunc (m *Deployment) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Deployment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Deployment) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Deployment.Merge(m, src)\n}\nfunc (m *Deployment) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Deployment) XXX_DiscardUnknown() {\n\txxx_messageInfo_Deployment.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Deployment proto.InternalMessageInfo\n\nfunc (m *DeploymentCondition) Reset()      { *m = DeploymentCondition{} }\nfunc (*DeploymentCondition) ProtoMessage() {}\nfunc (*DeploymentCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2747f709ac7c95e7, []int{3}\n}\nfunc (m *DeploymentCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentCondition.Merge(m, src)\n}\nfunc (m *DeploymentCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentCondition proto.InternalMessageInfo\n\nfunc (m *DeploymentList) Reset()      { *m = DeploymentList{} }\nfunc (*DeploymentList) ProtoMessage() {}\nfunc (*DeploymentList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2747f709ac7c95e7, []int{4}\n}\nfunc (m *DeploymentList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentList.Merge(m, src)\n}\nfunc (m *DeploymentList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentList) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentList proto.InternalMessageInfo\n\nfunc (m *DeploymentRollback) Reset()      { *m = DeploymentRollback{} }\nfunc (*DeploymentRollback) ProtoMessage() {}\nfunc (*DeploymentRollback) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2747f709ac7c95e7, []int{5}\n}\nfunc (m *DeploymentRollback) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentRollback) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentRollback) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentRollback.Merge(m, src)\n}\nfunc (m *DeploymentRollback) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentRollback) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentRollback.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentRollback proto.InternalMessageInfo\n\nfunc (m *DeploymentSpec) Reset()      { *m = DeploymentSpec{} }\nfunc (*DeploymentSpec) ProtoMessage() {}\nfunc (*DeploymentSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2747f709ac7c95e7, []int{6}\n}\nfunc (m *DeploymentSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentSpec.Merge(m, src)\n}\nfunc (m *DeploymentSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentSpec proto.InternalMessageInfo\n\nfunc (m *DeploymentStatus) Reset()      { *m = DeploymentStatus{} }\nfunc (*DeploymentStatus) ProtoMessage() {}\nfunc (*DeploymentStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2747f709ac7c95e7, []int{7}\n}\nfunc (m *DeploymentStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentStatus.Merge(m, src)\n}\nfunc (m *DeploymentStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentStatus proto.InternalMessageInfo\n\nfunc (m *DeploymentStrategy) Reset()      { *m = DeploymentStrategy{} }\nfunc (*DeploymentStrategy) ProtoMessage() {}\nfunc (*DeploymentStrategy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2747f709ac7c95e7, []int{8}\n}\nfunc (m *DeploymentStrategy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentStrategy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentStrategy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentStrategy.Merge(m, src)\n}\nfunc (m *DeploymentStrategy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentStrategy) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentStrategy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentStrategy proto.InternalMessageInfo\n\nfunc (m *RollbackConfig) Reset()      { *m = RollbackConfig{} }\nfunc (*RollbackConfig) ProtoMessage() {}\nfunc (*RollbackConfig) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2747f709ac7c95e7, []int{9}\n}\nfunc (m *RollbackConfig) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RollbackConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RollbackConfig) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RollbackConfig.Merge(m, src)\n}\nfunc (m *RollbackConfig) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RollbackConfig) XXX_DiscardUnknown() {\n\txxx_messageInfo_RollbackConfig.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RollbackConfig proto.InternalMessageInfo\n\nfunc (m *RollingUpdateDeployment) Reset()      { *m = RollingUpdateDeployment{} }\nfunc (*RollingUpdateDeployment) ProtoMessage() {}\nfunc (*RollingUpdateDeployment) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2747f709ac7c95e7, []int{10}\n}\nfunc (m *RollingUpdateDeployment) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RollingUpdateDeployment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RollingUpdateDeployment) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RollingUpdateDeployment.Merge(m, src)\n}\nfunc (m *RollingUpdateDeployment) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RollingUpdateDeployment) XXX_DiscardUnknown() {\n\txxx_messageInfo_RollingUpdateDeployment.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RollingUpdateDeployment proto.InternalMessageInfo\n\nfunc (m *RollingUpdateStatefulSetStrategy) Reset()      { *m = RollingUpdateStatefulSetStrategy{} }\nfunc (*RollingUpdateStatefulSetStrategy) ProtoMessage() {}\nfunc (*RollingUpdateStatefulSetStrategy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2747f709ac7c95e7, []int{11}\n}\nfunc (m *RollingUpdateStatefulSetStrategy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RollingUpdateStatefulSetStrategy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RollingUpdateStatefulSetStrategy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RollingUpdateStatefulSetStrategy.Merge(m, src)\n}\nfunc (m *RollingUpdateStatefulSetStrategy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RollingUpdateStatefulSetStrategy) XXX_DiscardUnknown() {\n\txxx_messageInfo_RollingUpdateStatefulSetStrategy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RollingUpdateStatefulSetStrategy proto.InternalMessageInfo\n\nfunc (m *Scale) Reset()      { *m = Scale{} }\nfunc (*Scale) ProtoMessage() {}\nfunc (*Scale) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2747f709ac7c95e7, []int{12}\n}\nfunc (m *Scale) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Scale) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Scale) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Scale.Merge(m, src)\n}\nfunc (m *Scale) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Scale) XXX_DiscardUnknown() {\n\txxx_messageInfo_Scale.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Scale proto.InternalMessageInfo\n\nfunc (m *ScaleSpec) Reset()      { *m = ScaleSpec{} }\nfunc (*ScaleSpec) ProtoMessage() {}\nfunc (*ScaleSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2747f709ac7c95e7, []int{13}\n}\nfunc (m *ScaleSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ScaleSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ScaleSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ScaleSpec.Merge(m, src)\n}\nfunc (m *ScaleSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ScaleSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ScaleSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ScaleSpec proto.InternalMessageInfo\n\nfunc (m *ScaleStatus) Reset()      { *m = ScaleStatus{} }\nfunc (*ScaleStatus) ProtoMessage() {}\nfunc (*ScaleStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2747f709ac7c95e7, []int{14}\n}\nfunc (m *ScaleStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ScaleStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ScaleStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ScaleStatus.Merge(m, src)\n}\nfunc (m *ScaleStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ScaleStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ScaleStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ScaleStatus proto.InternalMessageInfo\n\nfunc (m *StatefulSet) Reset()      { *m = StatefulSet{} }\nfunc (*StatefulSet) ProtoMessage() {}\nfunc (*StatefulSet) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2747f709ac7c95e7, []int{15}\n}\nfunc (m *StatefulSet) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSet) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSet.Merge(m, src)\n}\nfunc (m *StatefulSet) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSet) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSet.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSet proto.InternalMessageInfo\n\nfunc (m *StatefulSetCondition) Reset()      { *m = StatefulSetCondition{} }\nfunc (*StatefulSetCondition) ProtoMessage() {}\nfunc (*StatefulSetCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2747f709ac7c95e7, []int{16}\n}\nfunc (m *StatefulSetCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSetCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSetCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSetCondition.Merge(m, src)\n}\nfunc (m *StatefulSetCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSetCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSetCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSetCondition proto.InternalMessageInfo\n\nfunc (m *StatefulSetList) Reset()      { *m = StatefulSetList{} }\nfunc (*StatefulSetList) ProtoMessage() {}\nfunc (*StatefulSetList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2747f709ac7c95e7, []int{17}\n}\nfunc (m *StatefulSetList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSetList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSetList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSetList.Merge(m, src)\n}\nfunc (m *StatefulSetList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSetList) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSetList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSetList proto.InternalMessageInfo\n\nfunc (m *StatefulSetOrdinals) Reset()      { *m = StatefulSetOrdinals{} }\nfunc (*StatefulSetOrdinals) ProtoMessage() {}\nfunc (*StatefulSetOrdinals) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2747f709ac7c95e7, []int{18}\n}\nfunc (m *StatefulSetOrdinals) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSetOrdinals) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSetOrdinals) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSetOrdinals.Merge(m, src)\n}\nfunc (m *StatefulSetOrdinals) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSetOrdinals) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSetOrdinals.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSetOrdinals proto.InternalMessageInfo\n\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) Reset() {\n\t*m = StatefulSetPersistentVolumeClaimRetentionPolicy{}\n}\nfunc (*StatefulSetPersistentVolumeClaimRetentionPolicy) ProtoMessage() {}\nfunc (*StatefulSetPersistentVolumeClaimRetentionPolicy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2747f709ac7c95e7, []int{19}\n}\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSetPersistentVolumeClaimRetentionPolicy.Merge(m, src)\n}\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSetPersistentVolumeClaimRetentionPolicy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSetPersistentVolumeClaimRetentionPolicy proto.InternalMessageInfo\n\nfunc (m *StatefulSetSpec) Reset()      { *m = StatefulSetSpec{} }\nfunc (*StatefulSetSpec) ProtoMessage() {}\nfunc (*StatefulSetSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2747f709ac7c95e7, []int{20}\n}\nfunc (m *StatefulSetSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSetSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSetSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSetSpec.Merge(m, src)\n}\nfunc (m *StatefulSetSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSetSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSetSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSetSpec proto.InternalMessageInfo\n\nfunc (m *StatefulSetStatus) Reset()      { *m = StatefulSetStatus{} }\nfunc (*StatefulSetStatus) ProtoMessage() {}\nfunc (*StatefulSetStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2747f709ac7c95e7, []int{21}\n}\nfunc (m *StatefulSetStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSetStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSetStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSetStatus.Merge(m, src)\n}\nfunc (m *StatefulSetStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSetStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSetStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSetStatus proto.InternalMessageInfo\n\nfunc (m *StatefulSetUpdateStrategy) Reset()      { *m = StatefulSetUpdateStrategy{} }\nfunc (*StatefulSetUpdateStrategy) ProtoMessage() {}\nfunc (*StatefulSetUpdateStrategy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2747f709ac7c95e7, []int{22}\n}\nfunc (m *StatefulSetUpdateStrategy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSetUpdateStrategy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSetUpdateStrategy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSetUpdateStrategy.Merge(m, src)\n}\nfunc (m *StatefulSetUpdateStrategy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSetUpdateStrategy) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSetUpdateStrategy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSetUpdateStrategy proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*ControllerRevision)(nil), \"k8s.io.api.apps.v1beta1.ControllerRevision\")\n\tproto.RegisterType((*ControllerRevisionList)(nil), \"k8s.io.api.apps.v1beta1.ControllerRevisionList\")\n\tproto.RegisterType((*Deployment)(nil), \"k8s.io.api.apps.v1beta1.Deployment\")\n\tproto.RegisterType((*DeploymentCondition)(nil), \"k8s.io.api.apps.v1beta1.DeploymentCondition\")\n\tproto.RegisterType((*DeploymentList)(nil), \"k8s.io.api.apps.v1beta1.DeploymentList\")\n\tproto.RegisterType((*DeploymentRollback)(nil), \"k8s.io.api.apps.v1beta1.DeploymentRollback\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.apps.v1beta1.DeploymentRollback.UpdatedAnnotationsEntry\")\n\tproto.RegisterType((*DeploymentSpec)(nil), \"k8s.io.api.apps.v1beta1.DeploymentSpec\")\n\tproto.RegisterType((*DeploymentStatus)(nil), \"k8s.io.api.apps.v1beta1.DeploymentStatus\")\n\tproto.RegisterType((*DeploymentStrategy)(nil), \"k8s.io.api.apps.v1beta1.DeploymentStrategy\")\n\tproto.RegisterType((*RollbackConfig)(nil), \"k8s.io.api.apps.v1beta1.RollbackConfig\")\n\tproto.RegisterType((*RollingUpdateDeployment)(nil), \"k8s.io.api.apps.v1beta1.RollingUpdateDeployment\")\n\tproto.RegisterType((*RollingUpdateStatefulSetStrategy)(nil), \"k8s.io.api.apps.v1beta1.RollingUpdateStatefulSetStrategy\")\n\tproto.RegisterType((*Scale)(nil), \"k8s.io.api.apps.v1beta1.Scale\")\n\tproto.RegisterType((*ScaleSpec)(nil), \"k8s.io.api.apps.v1beta1.ScaleSpec\")\n\tproto.RegisterType((*ScaleStatus)(nil), \"k8s.io.api.apps.v1beta1.ScaleStatus\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.apps.v1beta1.ScaleStatus.SelectorEntry\")\n\tproto.RegisterType((*StatefulSet)(nil), \"k8s.io.api.apps.v1beta1.StatefulSet\")\n\tproto.RegisterType((*StatefulSetCondition)(nil), \"k8s.io.api.apps.v1beta1.StatefulSetCondition\")\n\tproto.RegisterType((*StatefulSetList)(nil), \"k8s.io.api.apps.v1beta1.StatefulSetList\")\n\tproto.RegisterType((*StatefulSetOrdinals)(nil), \"k8s.io.api.apps.v1beta1.StatefulSetOrdinals\")\n\tproto.RegisterType((*StatefulSetPersistentVolumeClaimRetentionPolicy)(nil), \"k8s.io.api.apps.v1beta1.StatefulSetPersistentVolumeClaimRetentionPolicy\")\n\tproto.RegisterType((*StatefulSetSpec)(nil), \"k8s.io.api.apps.v1beta1.StatefulSetSpec\")\n\tproto.RegisterType((*StatefulSetStatus)(nil), \"k8s.io.api.apps.v1beta1.StatefulSetStatus\")\n\tproto.RegisterType((*StatefulSetUpdateStrategy)(nil), \"k8s.io.api.apps.v1beta1.StatefulSetUpdateStrategy\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/apps/v1beta1/generated.proto\", fileDescriptor_2747f709ac7c95e7)\n}\n\nvar fileDescriptor_2747f709ac7c95e7 = []byte{\n\t// 2018 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x59, 0xcd, 0x6f, 0x1b, 0xc7,\n\t0x15, 0xf7, 0x52, 0xa2, 0x44, 0x3d, 0x45, 0x94, 0x3d, 0x52, 0x2d, 0x46, 0x69, 0x25, 0x61, 0x63,\n\t0xc4, 0x4a, 0x62, 0x2f, 0x63, 0x25, 0x0d, 0x12, 0xbb, 0x75, 0x21, 0x4a, 0x6e, 0xec, 0x40, 0x8a,\n\t0x94, 0x91, 0x64, 0xa3, 0xe9, 0x07, 0x32, 0x22, 0xc7, 0xd4, 0x46, 0xfb, 0x85, 0xdd, 0x21, 0x63,\n\t0xa2, 0x97, 0xfe, 0x01, 0x05, 0xd2, 0x73, 0xff, 0x8a, 0xf6, 0xd4, 0xa2, 0x45, 0x2f, 0x3d, 0x14,\n\t0x3e, 0x06, 0xbd, 0x34, 0x27, 0xa2, 0x66, 0xae, 0xed, 0xad, 0xbd, 0x18, 0x28, 0x50, 0xcc, 0xec,\n\t0xec, 0xf7, 0xae, 0xb4, 0x2c, 0x60, 0x01, 0xcd, 0x8d, 0x3b, 0xef, 0xbd, 0xdf, 0x7b, 0xf3, 0xe6,\n\t0xbd, 0x37, 0xef, 0x0d, 0xe1, 0xfa, 0xe9, 0x7b, 0x9e, 0xa6, 0xdb, 0x4d, 0xe2, 0xe8, 0x4d, 0xe2,\n\t0x38, 0x5e, 0xb3, 0x7f, 0xeb, 0x98, 0x32, 0x72, 0xab, 0xd9, 0xa5, 0x16, 0x75, 0x09, 0xa3, 0x1d,\n\t0xcd, 0x71, 0x6d, 0x66, 0xa3, 0x25, 0x9f, 0x51, 0x23, 0x8e, 0xae, 0x71, 0x46, 0x4d, 0x32, 0x2e,\n\t0xdf, 0xec, 0xea, 0xec, 0xa4, 0x77, 0xac, 0xb5, 0x6d, 0xb3, 0xd9, 0xb5, 0xbb, 0x76, 0x53, 0xf0,\n\t0x1f, 0xf7, 0x1e, 0x8b, 0x2f, 0xf1, 0x21, 0x7e, 0xf9, 0x38, 0xcb, 0x6a, 0x4c, 0x61, 0xdb, 0x76,\n\t0x69, 0xb3, 0x9f, 0xd1, 0xb5, 0xfc, 0x4e, 0xc4, 0x63, 0x92, 0xf6, 0x89, 0x6e, 0x51, 0x77, 0xd0,\n\t0x74, 0x4e, 0xbb, 0x7c, 0xc1, 0x6b, 0x9a, 0x94, 0x91, 0x3c, 0xa9, 0x66, 0x91, 0x94, 0xdb, 0xb3,\n\t0x98, 0x6e, 0xd2, 0x8c, 0xc0, 0xbb, 0xe7, 0x09, 0x78, 0xed, 0x13, 0x6a, 0x92, 0x8c, 0xdc, 0xdb,\n\t0x45, 0x72, 0x3d, 0xa6, 0x1b, 0x4d, 0xdd, 0x62, 0x1e, 0x73, 0xd3, 0x42, 0xea, 0xbf, 0x15, 0x40,\n\t0x5b, 0xb6, 0xc5, 0x5c, 0xdb, 0x30, 0xa8, 0x8b, 0x69, 0x5f, 0xf7, 0x74, 0xdb, 0x42, 0x9f, 0x42,\n\t0x8d, 0xef, 0xa7, 0x43, 0x18, 0x69, 0x28, 0x6b, 0xca, 0xfa, 0xec, 0xc6, 0x5b, 0x5a, 0xe4, 0xe9,\n\t0x10, 0x5e, 0x73, 0x4e, 0xbb, 0x7c, 0xc1, 0xd3, 0x38, 0xb7, 0xd6, 0xbf, 0xa5, 0xed, 0x1d, 0x7f,\n\t0x46, 0xdb, 0x6c, 0x97, 0x32, 0xd2, 0x42, 0x4f, 0x87, 0xab, 0x97, 0x46, 0xc3, 0x55, 0x88, 0xd6,\n\t0x70, 0x88, 0x8a, 0xf6, 0x60, 0x52, 0xa0, 0x57, 0x04, 0xfa, 0xcd, 0x42, 0x74, 0xb9, 0x69, 0x0d,\n\t0x93, 0xcf, 0xef, 0x3d, 0x61, 0xd4, 0xe2, 0xe6, 0xb5, 0x5e, 0x92, 0xd0, 0x93, 0xdb, 0x84, 0x11,\n\t0x2c, 0x80, 0xd0, 0x0d, 0xa8, 0xb9, 0xd2, 0xfc, 0xc6, 0xc4, 0x9a, 0xb2, 0x3e, 0xd1, 0xba, 0x2c,\n\t0xb9, 0x6a, 0xc1, 0xb6, 0x70, 0xc8, 0xa1, 0x3e, 0x55, 0xe0, 0x6a, 0x76, 0xdf, 0x3b, 0xba, 0xc7,\n\t0xd0, 0x4f, 0x32, 0x7b, 0xd7, 0xca, 0xed, 0x9d, 0x4b, 0x8b, 0x9d, 0x87, 0x8a, 0x83, 0x95, 0xd8,\n\t0xbe, 0xf7, 0xa1, 0xaa, 0x33, 0x6a, 0x7a, 0x8d, 0xca, 0xda, 0xc4, 0xfa, 0xec, 0xc6, 0x9b, 0x5a,\n\t0x41, 0x00, 0x6b, 0x59, 0xeb, 0x5a, 0x73, 0x12, 0xb7, 0xfa, 0x80, 0x23, 0x60, 0x1f, 0x48, 0xfd,\n\t0x65, 0x05, 0x60, 0x9b, 0x3a, 0x86, 0x3d, 0x30, 0xa9, 0xc5, 0x2e, 0xe0, 0xe8, 0x1e, 0xc0, 0xa4,\n\t0xe7, 0xd0, 0xb6, 0x3c, 0xba, 0xeb, 0x85, 0x3b, 0x88, 0x8c, 0x3a, 0x70, 0x68, 0x3b, 0x3a, 0x34,\n\t0xfe, 0x85, 0x05, 0x04, 0xfa, 0x18, 0xa6, 0x3c, 0x46, 0x58, 0xcf, 0x13, 0x47, 0x36, 0xbb, 0xf1,\n\t0x7a, 0x19, 0x30, 0x21, 0xd0, 0xaa, 0x4b, 0xb8, 0x29, 0xff, 0x1b, 0x4b, 0x20, 0xf5, 0x6f, 0x13,\n\t0xb0, 0x10, 0x31, 0x6f, 0xd9, 0x56, 0x47, 0x67, 0x3c, 0xa4, 0xef, 0xc0, 0x24, 0x1b, 0x38, 0x54,\n\t0xf8, 0x64, 0xa6, 0x75, 0x3d, 0x30, 0xe6, 0x70, 0xe0, 0xd0, 0xe7, 0xc3, 0xd5, 0xa5, 0x1c, 0x11,\n\t0x4e, 0xc2, 0x42, 0x08, 0xed, 0x84, 0x76, 0x56, 0x84, 0xf8, 0x3b, 0x49, 0xe5, 0xcf, 0x87, 0xab,\n\t0x39, 0x05, 0x44, 0x0b, 0x91, 0x92, 0x26, 0xa2, 0xcf, 0xa0, 0x6e, 0x10, 0x8f, 0x1d, 0x39, 0x1d,\n\t0xc2, 0xe8, 0xa1, 0x6e, 0xd2, 0xc6, 0x94, 0xd8, 0xfd, 0x1b, 0xe5, 0x0e, 0x8a, 0x4b, 0xb4, 0xae,\n\t0x4a, 0x0b, 0xea, 0x3b, 0x09, 0x24, 0x9c, 0x42, 0x46, 0x7d, 0x40, 0x7c, 0xe5, 0xd0, 0x25, 0x96,\n\t0xe7, 0xef, 0x8a, 0xeb, 0x9b, 0x1e, 0x5b, 0xdf, 0xb2, 0xd4, 0x87, 0x76, 0x32, 0x68, 0x38, 0x47,\n\t0x03, 0x7a, 0x0d, 0xa6, 0x5c, 0x4a, 0x3c, 0xdb, 0x6a, 0x4c, 0x0a, 0x8f, 0x85, 0xc7, 0x85, 0xc5,\n\t0x2a, 0x96, 0x54, 0xf4, 0x3a, 0x4c, 0x9b, 0xd4, 0xf3, 0x48, 0x97, 0x36, 0xaa, 0x82, 0x71, 0x5e,\n\t0x32, 0x4e, 0xef, 0xfa, 0xcb, 0x38, 0xa0, 0xab, 0xbf, 0x57, 0xa0, 0x1e, 0x1d, 0xd3, 0x05, 0xe4,\n\t0xea, 0xfd, 0x64, 0xae, 0xbe, 0x5a, 0x22, 0x38, 0x0b, 0x72, 0xf4, 0x1f, 0x15, 0x40, 0x11, 0x13,\n\t0xb6, 0x0d, 0xe3, 0x98, 0xb4, 0x4f, 0xd1, 0x1a, 0x4c, 0x5a, 0xc4, 0x0c, 0x62, 0x32, 0x4c, 0x90,\n\t0x8f, 0x88, 0x49, 0xb1, 0xa0, 0xa0, 0x2f, 0x14, 0x40, 0x3d, 0x71, 0x9a, 0x9d, 0x4d, 0xcb, 0xb2,\n\t0x19, 0xe1, 0x0e, 0x0e, 0x0c, 0xda, 0x2a, 0x61, 0x50, 0xa0, 0x4b, 0x3b, 0xca, 0xa0, 0xdc, 0xb3,\n\t0x98, 0x3b, 0x88, 0x0e, 0x36, 0xcb, 0x80, 0x73, 0x54, 0xa3, 0x1f, 0x03, 0xb8, 0x12, 0xf3, 0xd0,\n\t0x96, 0x69, 0x5b, 0x5c, 0x03, 0x02, 0xf5, 0x5b, 0xb6, 0xf5, 0x58, 0xef, 0x46, 0x85, 0x05, 0x87,\n\t0x10, 0x38, 0x06, 0xb7, 0x7c, 0x0f, 0x96, 0x0a, 0xec, 0x44, 0x97, 0x61, 0xe2, 0x94, 0x0e, 0x7c,\n\t0x57, 0x61, 0xfe, 0x13, 0x2d, 0x42, 0xb5, 0x4f, 0x8c, 0x1e, 0xf5, 0x73, 0x12, 0xfb, 0x1f, 0xb7,\n\t0x2b, 0xef, 0x29, 0xea, 0x6f, 0xaa, 0xf1, 0x48, 0xe1, 0xf5, 0x06, 0xad, 0xf3, 0xeb, 0xc1, 0x31,\n\t0xf4, 0x36, 0xf1, 0x04, 0x46, 0xb5, 0xf5, 0x92, 0x7f, 0x35, 0xf8, 0x6b, 0x38, 0xa4, 0xa2, 0x9f,\n\t0x42, 0xcd, 0xa3, 0x06, 0x6d, 0x33, 0xdb, 0x95, 0x25, 0xee, 0xed, 0x92, 0x31, 0x45, 0x8e, 0xa9,\n\t0x71, 0x20, 0x45, 0x7d, 0xf8, 0xe0, 0x0b, 0x87, 0x90, 0xe8, 0x63, 0xa8, 0x31, 0x6a, 0x3a, 0x06,\n\t0x61, 0x54, 0x7a, 0x2f, 0x11, 0x57, 0xbc, 0x76, 0x70, 0xb0, 0x7d, 0xbb, 0x73, 0x28, 0xd9, 0x44,\n\t0xf5, 0x0c, 0xe3, 0x34, 0x58, 0xc5, 0x21, 0x0c, 0xfa, 0x11, 0xd4, 0x3c, 0xc6, 0x6f, 0xf5, 0xee,\n\t0x40, 0x64, 0xdb, 0x59, 0xd7, 0x4a, 0xbc, 0x8e, 0xfa, 0x22, 0x11, 0x74, 0xb0, 0x82, 0x43, 0x38,\n\t0xb4, 0x09, 0xf3, 0xa6, 0x6e, 0x61, 0x4a, 0x3a, 0x83, 0x03, 0xda, 0xb6, 0xad, 0x8e, 0x27, 0xd2,\n\t0xb4, 0xda, 0x5a, 0x92, 0x42, 0xf3, 0xbb, 0x49, 0x32, 0x4e, 0xf3, 0xa3, 0x1d, 0x58, 0x0c, 0xae,\n\t0xdd, 0xfb, 0xba, 0xc7, 0x6c, 0x77, 0xb0, 0xa3, 0x9b, 0x3a, 0x13, 0x35, 0xaf, 0xda, 0x6a, 0x8c,\n\t0x86, 0xab, 0x8b, 0x38, 0x87, 0x8e, 0x73, 0xa5, 0x78, 0x5d, 0x71, 0x48, 0xcf, 0xa3, 0x1d, 0x51,\n\t0xc3, 0x6a, 0x51, 0x5d, 0xd9, 0x17, 0xab, 0x58, 0x52, 0xd1, 0xa3, 0x44, 0x98, 0xd6, 0xc6, 0x0b,\n\t0xd3, 0x7a, 0x71, 0x88, 0xa2, 0x23, 0x58, 0x72, 0x5c, 0xbb, 0xeb, 0x52, 0xcf, 0xdb, 0xa6, 0xa4,\n\t0x63, 0xe8, 0x16, 0x0d, 0x3c, 0x33, 0x23, 0x76, 0xf4, 0xca, 0x68, 0xb8, 0xba, 0xb4, 0x9f, 0xcf,\n\t0x82, 0x8b, 0x64, 0xd5, 0x3f, 0x4f, 0xc2, 0xe5, 0xf4, 0x1d, 0x87, 0x3e, 0x04, 0x64, 0x1f, 0x7b,\n\t0xd4, 0xed, 0xd3, 0xce, 0x07, 0x7e, 0xe3, 0xc6, 0xbb, 0x1b, 0x45, 0x74, 0x37, 0x61, 0xde, 0xee,\n\t0x65, 0x38, 0x70, 0x8e, 0x94, 0xdf, 0x1f, 0xc9, 0x04, 0xa8, 0x08, 0x43, 0x63, 0xfd, 0x51, 0x26,\n\t0x09, 0x36, 0x61, 0x5e, 0xe6, 0x7e, 0x40, 0x14, 0xc1, 0x1a, 0x3b, 0xf7, 0xa3, 0x24, 0x19, 0xa7,\n\t0xf9, 0xd1, 0x1d, 0x98, 0x73, 0x79, 0x1c, 0x84, 0x00, 0xd3, 0x02, 0xe0, 0x5b, 0x12, 0x60, 0x0e,\n\t0xc7, 0x89, 0x38, 0xc9, 0x8b, 0x3e, 0x80, 0x2b, 0xa4, 0x4f, 0x74, 0x83, 0x1c, 0x1b, 0x34, 0x04,\n\t0x98, 0x14, 0x00, 0x2f, 0x4b, 0x80, 0x2b, 0x9b, 0x69, 0x06, 0x9c, 0x95, 0x41, 0xbb, 0xb0, 0xd0,\n\t0xb3, 0xb2, 0x50, 0x7e, 0x10, 0xbf, 0x22, 0xa1, 0x16, 0x8e, 0xb2, 0x2c, 0x38, 0x4f, 0x0e, 0x7d,\n\t0x0a, 0xd0, 0x0e, 0x6e, 0x75, 0xaf, 0x31, 0x25, 0xca, 0xf0, 0x8d, 0x12, 0xc9, 0x16, 0xb6, 0x02,\n\t0x51, 0x09, 0x0c, 0x97, 0x3c, 0x1c, 0xc3, 0x44, 0xb7, 0xa1, 0xde, 0xb6, 0x0d, 0x43, 0x44, 0xfe,\n\t0x96, 0xdd, 0xb3, 0x98, 0x08, 0xde, 0x6a, 0x0b, 0xf1, 0xcb, 0x7e, 0x2b, 0x41, 0xc1, 0x29, 0x4e,\n\t0xf5, 0x8f, 0x4a, 0xfc, 0x9a, 0x09, 0xd2, 0x19, 0xdd, 0x4e, 0xb4, 0x3e, 0xaf, 0xa5, 0x5a, 0x9f,\n\t0xab, 0x59, 0x89, 0x58, 0xe7, 0xa3, 0xc3, 0x1c, 0x0f, 0x7e, 0xdd, 0xea, 0xfa, 0x07, 0x2e, 0x4b,\n\t0xe2, 0x5b, 0x67, 0xa6, 0x52, 0xc8, 0x1d, 0xbb, 0x18, 0xaf, 0x88, 0x33, 0x8f, 0x13, 0x71, 0x12,\n\t0x59, 0xbd, 0x0b, 0xf5, 0x64, 0x1e, 0x26, 0x7a, 0x7a, 0xe5, 0xdc, 0x9e, 0xfe, 0x6b, 0x05, 0x96,\n\t0x0a, 0xb4, 0x23, 0x03, 0xea, 0x26, 0x79, 0x12, 0x3b, 0xe6, 0x73, 0x7b, 0x63, 0x3e, 0x35, 0x69,\n\t0xfe, 0xd4, 0xa4, 0x3d, 0xb0, 0xd8, 0x9e, 0x7b, 0xc0, 0x5c, 0xdd, 0xea, 0xfa, 0xe7, 0xb0, 0x9b,\n\t0xc0, 0xc2, 0x29, 0x6c, 0xf4, 0x09, 0xd4, 0x4c, 0xf2, 0xe4, 0xa0, 0xe7, 0x76, 0xf3, 0xfc, 0x55,\n\t0x4e, 0x8f, 0xb8, 0x3f, 0x76, 0x25, 0x0a, 0x0e, 0xf1, 0xd4, 0x3f, 0x29, 0xb0, 0x96, 0xd8, 0x25,\n\t0xaf, 0x15, 0xf4, 0x71, 0xcf, 0x38, 0xa0, 0xd1, 0x89, 0xbf, 0x09, 0x33, 0x0e, 0x71, 0x99, 0x1e,\n\t0xd6, 0x8b, 0x6a, 0x6b, 0x6e, 0x34, 0x5c, 0x9d, 0xd9, 0x0f, 0x16, 0x71, 0x44, 0xcf, 0xf1, 0x4d,\n\t0xe5, 0xc5, 0xf9, 0x46, 0xfd, 0x8f, 0x02, 0xd5, 0x83, 0x36, 0x31, 0xe8, 0x05, 0x4c, 0x2a, 0xdb,\n\t0x89, 0x49, 0x45, 0x2d, 0x8c, 0x59, 0x61, 0x4f, 0xe1, 0x90, 0xb2, 0x93, 0x1a, 0x52, 0xae, 0x9d,\n\t0x83, 0x73, 0xf6, 0x7c, 0xf2, 0x3e, 0xcc, 0x84, 0xea, 0x12, 0x45, 0x59, 0x39, 0xaf, 0x28, 0xab,\n\t0xbf, 0xae, 0xc0, 0x6c, 0x4c, 0xc5, 0x78, 0xd2, 0xdc, 0xdd, 0xb1, 0xbe, 0x86, 0x17, 0xae, 0x8d,\n\t0x32, 0x1b, 0xd1, 0x82, 0x1e, 0xc6, 0x6f, 0x17, 0xa3, 0x66, 0x21, 0xdb, 0xda, 0xdc, 0x85, 0x3a,\n\t0x23, 0x6e, 0x97, 0xb2, 0x80, 0x26, 0x1c, 0x36, 0x13, 0xcd, 0x2a, 0x87, 0x09, 0x2a, 0x4e, 0x71,\n\t0x2f, 0xdf, 0x81, 0xb9, 0x84, 0xb2, 0xb1, 0x7a, 0xbe, 0x2f, 0xb8, 0x73, 0xa2, 0x54, 0xb8, 0x80,\n\t0xe8, 0xfa, 0x30, 0x11, 0x5d, 0xeb, 0xc5, 0xce, 0x8c, 0x25, 0x68, 0x51, 0x8c, 0xe1, 0x54, 0x8c,\n\t0xbd, 0x51, 0x0a, 0xed, 0xec, 0x48, 0xfb, 0x67, 0x05, 0x16, 0x63, 0xdc, 0xd1, 0x28, 0xfc, 0xbd,\n\t0xc4, 0x7d, 0xb0, 0x9e, 0xba, 0x0f, 0x1a, 0x79, 0x32, 0x2f, 0x6c, 0x16, 0xce, 0x9f, 0x4f, 0x27,\n\t0xfe, 0x1f, 0xe7, 0xd3, 0x3f, 0x28, 0x30, 0x1f, 0xf3, 0xdd, 0x05, 0x0c, 0xa8, 0x0f, 0x92, 0x03,\n\t0xea, 0xb5, 0x32, 0x41, 0x53, 0x30, 0xa1, 0xde, 0x86, 0x85, 0x18, 0xd3, 0x9e, 0xdb, 0xd1, 0x2d,\n\t0x62, 0x78, 0xe8, 0x55, 0xa8, 0x7a, 0x8c, 0xb8, 0x2c, 0xb8, 0x44, 0x02, 0xd9, 0x03, 0xbe, 0x88,\n\t0x7d, 0x9a, 0xfa, 0x2f, 0x05, 0x9a, 0x31, 0xe1, 0x7d, 0xea, 0x7a, 0xba, 0xc7, 0xa8, 0xc5, 0x1e,\n\t0xda, 0x46, 0xcf, 0xa4, 0x5b, 0x06, 0xd1, 0x4d, 0x4c, 0xf9, 0x82, 0x6e, 0x5b, 0xfb, 0xb6, 0xa1,\n\t0xb7, 0x07, 0x88, 0xc0, 0xec, 0xe7, 0x27, 0xd4, 0xda, 0xa6, 0x06, 0x65, 0xb4, 0x23, 0x43, 0xf1,\n\t0x07, 0x12, 0x7e, 0xf6, 0x51, 0x44, 0x7a, 0x3e, 0x5c, 0x5d, 0x2f, 0x83, 0x28, 0x22, 0x34, 0x8e,\n\t0x89, 0x7e, 0x06, 0xc0, 0x3f, 0x45, 0x2d, 0xeb, 0xc8, 0x60, 0xbd, 0x1b, 0x64, 0xf4, 0xa3, 0x90,\n\t0x32, 0x96, 0x82, 0x18, 0xa2, 0xfa, 0xdb, 0x5a, 0xe2, 0xbc, 0xbf, 0xf1, 0x63, 0xe6, 0xcf, 0x61,\n\t0xb1, 0x1f, 0x79, 0x27, 0x60, 0xe0, 0x6d, 0xf9, 0x44, 0xfa, 0xe9, 0x2e, 0x84, 0xcf, 0xf3, 0x6b,\n\t0xeb, 0xdb, 0x52, 0xc9, 0xe2, 0xc3, 0x1c, 0x38, 0x9c, 0xab, 0x04, 0x7d, 0x17, 0x66, 0xf9, 0x48,\n\t0xa3, 0xb7, 0xe9, 0x47, 0xc4, 0x0c, 0x72, 0x71, 0x21, 0x88, 0x97, 0x83, 0x88, 0x84, 0xe3, 0x7c,\n\t0xe8, 0x04, 0x16, 0x1c, 0xbb, 0xb3, 0x4b, 0x2c, 0xd2, 0xa5, 0xbc, 0x11, 0xf4, 0x8f, 0x52, 0xcc,\n\t0x9e, 0x33, 0xad, 0x77, 0x83, 0xf6, 0x7f, 0x3f, 0xcb, 0xf2, 0x9c, 0x0f, 0x71, 0xd9, 0x65, 0x11,\n\t0x04, 0x79, 0x90, 0xc8, 0x85, 0x7a, 0x4f, 0xf6, 0x63, 0x72, 0x14, 0xf7, 0x1f, 0xd9, 0x36, 0xca,\n\t0x24, 0xe5, 0x51, 0x42, 0x32, 0xba, 0x30, 0x93, 0xeb, 0x38, 0xa5, 0xa1, 0x70, 0xb4, 0xae, 0xfd,\n\t0x4f, 0xa3, 0x75, 0xce, 0xac, 0x3f, 0x33, 0xe6, 0xac, 0xff, 0x17, 0x05, 0xae, 0x39, 0x25, 0x72,\n\t0xa9, 0x01, 0xc2, 0x37, 0xf7, 0xcb, 0xf8, 0xa6, 0x4c, 0x6e, 0xb6, 0xd6, 0x47, 0xc3, 0xd5, 0x6b,\n\t0x65, 0x38, 0x71, 0x29, 0xfb, 0xd0, 0x43, 0xa8, 0xd9, 0xb2, 0x06, 0x36, 0x66, 0x85, 0xad, 0x37,\n\t0xca, 0xd8, 0x1a, 0xd4, 0x4d, 0x3f, 0x2d, 0x83, 0x2f, 0x1c, 0x62, 0xa9, 0xbf, 0xab, 0xc2, 0x95,\n\t0xcc, 0x0d, 0x8e, 0x7e, 0x78, 0xc6, 0x9c, 0x7f, 0xf5, 0x85, 0xcd, 0xf8, 0x99, 0x01, 0x7d, 0x62,\n\t0x8c, 0x01, 0x7d, 0x13, 0xe6, 0xdb, 0x3d, 0xd7, 0xa5, 0x16, 0x4b, 0x8d, 0xe7, 0x61, 0xb0, 0x6c,\n\t0x25, 0xc9, 0x38, 0xcd, 0x9f, 0xf7, 0xc6, 0x50, 0x1d, 0xf3, 0x8d, 0x21, 0x6e, 0x85, 0x9c, 0x13,\n\t0xfd, 0xd4, 0xce, 0x5a, 0x21, 0xc7, 0xc5, 0x34, 0x3f, 0x6f, 0x5a, 0x7d, 0xd4, 0x10, 0x61, 0x3a,\n\t0xd9, 0xb4, 0x1e, 0x25, 0xa8, 0x38, 0xc5, 0x9d, 0x33, 0xaf, 0xcf, 0x94, 0x9d, 0xd7, 0x11, 0x49,\n\t0xbc, 0x26, 0x80, 0xa8, 0xa3, 0x37, 0xcb, 0xc4, 0x59, 0xf9, 0xe7, 0x84, 0xdc, 0x87, 0x94, 0xd9,\n\t0xf1, 0x1f, 0x52, 0xd4, 0xbf, 0x2a, 0xf0, 0x72, 0x61, 0xc5, 0x42, 0x9b, 0x89, 0x96, 0xf2, 0x66,\n\t0xaa, 0xa5, 0xfc, 0x4e, 0xa1, 0x60, 0xac, 0xaf, 0x74, 0xf3, 0x5f, 0x1a, 0xde, 0x2f, 0xf7, 0xd2,\n\t0x90, 0x33, 0x05, 0x9f, 0xff, 0xe4, 0xd0, 0xfa, 0xfe, 0xd3, 0x67, 0x2b, 0x97, 0xbe, 0x7c, 0xb6,\n\t0x72, 0xe9, 0xab, 0x67, 0x2b, 0x97, 0x7e, 0x31, 0x5a, 0x51, 0x9e, 0x8e, 0x56, 0x94, 0x2f, 0x47,\n\t0x2b, 0xca, 0x57, 0xa3, 0x15, 0xe5, 0xef, 0xa3, 0x15, 0xe5, 0x57, 0x5f, 0xaf, 0x5c, 0xfa, 0x64,\n\t0xa9, 0xe0, 0xdf, 0xe8, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0xb9, 0xc9, 0xe6, 0x8c, 0xa7, 0x1e,\n\t0x00, 0x00,\n}\n\nfunc (m *ControllerRevision) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ControllerRevision) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ControllerRevision) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Revision))\n\ti--\n\tdAtA[i] = 0x18\n\t{\n\t\tsize, err := m.Data.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ControllerRevisionList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ControllerRevisionList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ControllerRevisionList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Deployment) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Deployment) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Deployment) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x3a\n\t{\n\t\tsize, err := m.LastUpdateTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentRollback) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentRollback) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentRollback) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.RollbackTo.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.UpdatedAnnotations) > 0 {\n\t\tkeysForUpdatedAnnotations := make([]string, 0, len(m.UpdatedAnnotations))\n\t\tfor k := range m.UpdatedAnnotations {\n\t\t\tkeysForUpdatedAnnotations = append(keysForUpdatedAnnotations, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForUpdatedAnnotations)\n\t\tfor iNdEx := len(keysForUpdatedAnnotations) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.UpdatedAnnotations[string(keysForUpdatedAnnotations[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForUpdatedAnnotations[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForUpdatedAnnotations[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForUpdatedAnnotations[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ProgressDeadlineSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.ProgressDeadlineSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x48\n\t}\n\tif m.RollbackTo != nil {\n\t\t{\n\t\t\tsize, err := m.RollbackTo.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x42\n\t}\n\ti--\n\tif m.Paused {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x38\n\tif m.RevisionHistoryLimit != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.RevisionHistoryLimit))\n\t\ti--\n\t\tdAtA[i] = 0x30\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds))\n\ti--\n\tdAtA[i] = 0x28\n\t{\n\t\tsize, err := m.Strategy.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.Template.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Replicas != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Replicas))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.CollisionCount != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.CollisionCount))\n\t\ti--\n\t\tdAtA[i] = 0x40\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ReadyReplicas))\n\ti--\n\tdAtA[i] = 0x38\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.UnavailableReplicas))\n\ti--\n\tdAtA[i] = 0x28\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.AvailableReplicas))\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.UpdatedReplicas))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Replicas))\n\ti--\n\tdAtA[i] = 0x10\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentStrategy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentStrategy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentStrategy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.RollingUpdate != nil {\n\t\t{\n\t\t\tsize, err := m.RollingUpdate.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RollbackConfig) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RollbackConfig) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RollbackConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Revision))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RollingUpdateDeployment) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RollingUpdateDeployment) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RollingUpdateDeployment) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.MaxSurge != nil {\n\t\t{\n\t\t\tsize, err := m.MaxSurge.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.MaxUnavailable != nil {\n\t\t{\n\t\t\tsize, err := m.MaxUnavailable.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RollingUpdateStatefulSetStrategy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RollingUpdateStatefulSetStrategy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RollingUpdateStatefulSetStrategy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.MaxUnavailable != nil {\n\t\t{\n\t\t\tsize, err := m.MaxUnavailable.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Partition != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Partition))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Scale) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Scale) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Scale) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ScaleSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ScaleSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ScaleSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Replicas))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ScaleStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ScaleStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ScaleStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.TargetSelector)\n\tcopy(dAtA[i:], m.TargetSelector)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.TargetSelector)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.Selector) > 0 {\n\t\tkeysForSelector := make([]string, 0, len(m.Selector))\n\t\tfor k := range m.Selector {\n\t\t\tkeysForSelector = append(keysForSelector, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForSelector)\n\t\tfor iNdEx := len(keysForSelector) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Selector[string(keysForSelector[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForSelector[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForSelector[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForSelector[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Replicas))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSet) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSet) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSet) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSetCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSetCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSetCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSetList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSetList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSetList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSetOrdinals) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSetOrdinals) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSetOrdinals) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Start))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.WhenScaled)\n\tcopy(dAtA[i:], m.WhenScaled)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.WhenScaled)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.WhenDeleted)\n\tcopy(dAtA[i:], m.WhenDeleted)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.WhenDeleted)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSetSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSetSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSetSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Ordinals != nil {\n\t\t{\n\t\t\tsize, err := m.Ordinals.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x5a\n\t}\n\tif m.PersistentVolumeClaimRetentionPolicy != nil {\n\t\t{\n\t\t\tsize, err := m.PersistentVolumeClaimRetentionPolicy.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x52\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds))\n\ti--\n\tdAtA[i] = 0x48\n\tif m.RevisionHistoryLimit != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.RevisionHistoryLimit))\n\t\ti--\n\t\tdAtA[i] = 0x40\n\t}\n\t{\n\t\tsize, err := m.UpdateStrategy.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x3a\n\ti -= len(m.PodManagementPolicy)\n\tcopy(dAtA[i:], m.PodManagementPolicy)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.PodManagementPolicy)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.ServiceName)\n\tcopy(dAtA[i:], m.ServiceName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ServiceName)))\n\ti--\n\tdAtA[i] = 0x2a\n\tif len(m.VolumeClaimTemplates) > 0 {\n\t\tfor iNdEx := len(m.VolumeClaimTemplates) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.VolumeClaimTemplates[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.Template.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Replicas != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Replicas))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSetStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSetStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSetStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.AvailableReplicas))\n\ti--\n\tdAtA[i] = 0x58\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x52\n\t\t}\n\t}\n\tif m.CollisionCount != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.CollisionCount))\n\t\ti--\n\t\tdAtA[i] = 0x48\n\t}\n\ti -= len(m.UpdateRevision)\n\tcopy(dAtA[i:], m.UpdateRevision)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.UpdateRevision)))\n\ti--\n\tdAtA[i] = 0x3a\n\ti -= len(m.CurrentRevision)\n\tcopy(dAtA[i:], m.CurrentRevision)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.CurrentRevision)))\n\ti--\n\tdAtA[i] = 0x32\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.UpdatedReplicas))\n\ti--\n\tdAtA[i] = 0x28\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.CurrentReplicas))\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ReadyReplicas))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Replicas))\n\ti--\n\tdAtA[i] = 0x10\n\tif m.ObservedGeneration != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.ObservedGeneration))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSetUpdateStrategy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSetUpdateStrategy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSetUpdateStrategy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.RollingUpdate != nil {\n\t\t{\n\t\t\tsize, err := m.RollingUpdate.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *ControllerRevision) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Data.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.Revision))\n\treturn n\n}\n\nfunc (m *ControllerRevisionList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *Deployment) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *DeploymentCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastUpdateTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *DeploymentList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *DeploymentRollback) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.UpdatedAnnotations) > 0 {\n\t\tfor k, v := range m.UpdatedAnnotations {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tl = m.RollbackTo.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *DeploymentSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Replicas != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Replicas))\n\t}\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = m.Template.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Strategy.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.MinReadySeconds))\n\tif m.RevisionHistoryLimit != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.RevisionHistoryLimit))\n\t}\n\tn += 2\n\tif m.RollbackTo != nil {\n\t\tl = m.RollbackTo.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ProgressDeadlineSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.ProgressDeadlineSeconds))\n\t}\n\treturn n\n}\n\nfunc (m *DeploymentStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.ObservedGeneration))\n\tn += 1 + sovGenerated(uint64(m.Replicas))\n\tn += 1 + sovGenerated(uint64(m.UpdatedReplicas))\n\tn += 1 + sovGenerated(uint64(m.AvailableReplicas))\n\tn += 1 + sovGenerated(uint64(m.UnavailableReplicas))\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tn += 1 + sovGenerated(uint64(m.ReadyReplicas))\n\tif m.CollisionCount != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.CollisionCount))\n\t}\n\treturn n\n}\n\nfunc (m *DeploymentStrategy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.RollingUpdate != nil {\n\t\tl = m.RollingUpdate.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *RollbackConfig) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Revision))\n\treturn n\n}\n\nfunc (m *RollingUpdateDeployment) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.MaxUnavailable != nil {\n\t\tl = m.MaxUnavailable.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.MaxSurge != nil {\n\t\tl = m.MaxSurge.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *RollingUpdateStatefulSetStrategy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Partition != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Partition))\n\t}\n\tif m.MaxUnavailable != nil {\n\t\tl = m.MaxUnavailable.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *Scale) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ScaleSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Replicas))\n\treturn n\n}\n\nfunc (m *ScaleStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Replicas))\n\tif len(m.Selector) > 0 {\n\t\tfor k, v := range m.Selector {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tl = len(m.TargetSelector)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *StatefulSet) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *StatefulSetCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *StatefulSetList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *StatefulSetOrdinals) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Start))\n\treturn n\n}\n\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.WhenDeleted)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.WhenScaled)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *StatefulSetSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Replicas != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Replicas))\n\t}\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = m.Template.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.VolumeClaimTemplates) > 0 {\n\t\tfor _, e := range m.VolumeClaimTemplates {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.ServiceName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.PodManagementPolicy)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.UpdateStrategy.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.RevisionHistoryLimit != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.RevisionHistoryLimit))\n\t}\n\tn += 1 + sovGenerated(uint64(m.MinReadySeconds))\n\tif m.PersistentVolumeClaimRetentionPolicy != nil {\n\t\tl = m.PersistentVolumeClaimRetentionPolicy.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Ordinals != nil {\n\t\tl = m.Ordinals.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *StatefulSetStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.ObservedGeneration != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.ObservedGeneration))\n\t}\n\tn += 1 + sovGenerated(uint64(m.Replicas))\n\tn += 1 + sovGenerated(uint64(m.ReadyReplicas))\n\tn += 1 + sovGenerated(uint64(m.CurrentReplicas))\n\tn += 1 + sovGenerated(uint64(m.UpdatedReplicas))\n\tl = len(m.CurrentRevision)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.UpdateRevision)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.CollisionCount != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.CollisionCount))\n\t}\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tn += 1 + sovGenerated(uint64(m.AvailableReplicas))\n\treturn n\n}\n\nfunc (m *StatefulSetUpdateStrategy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.RollingUpdate != nil {\n\t\tl = m.RollingUpdate.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *ControllerRevision) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ControllerRevision{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Data:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Data), \"RawExtension\", \"runtime.RawExtension\", 1), `&`, ``, 1) + `,`,\n\t\t`Revision:` + fmt.Sprintf(\"%v\", this.Revision) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ControllerRevisionList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ControllerRevision{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ControllerRevision\", \"ControllerRevision\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ControllerRevisionList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Deployment) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Deployment{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"DeploymentSpec\", \"DeploymentSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"DeploymentStatus\", \"DeploymentStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeploymentCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`LastUpdateTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastUpdateTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Deployment{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Deployment\", \"Deployment\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&DeploymentList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentRollback) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForUpdatedAnnotations := make([]string, 0, len(this.UpdatedAnnotations))\n\tfor k := range this.UpdatedAnnotations {\n\t\tkeysForUpdatedAnnotations = append(keysForUpdatedAnnotations, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForUpdatedAnnotations)\n\tmapStringForUpdatedAnnotations := \"map[string]string{\"\n\tfor _, k := range keysForUpdatedAnnotations {\n\t\tmapStringForUpdatedAnnotations += fmt.Sprintf(\"%v: %v,\", k, this.UpdatedAnnotations[k])\n\t}\n\tmapStringForUpdatedAnnotations += \"}\"\n\ts := strings.Join([]string{`&DeploymentRollback{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`UpdatedAnnotations:` + mapStringForUpdatedAnnotations + `,`,\n\t\t`RollbackTo:` + strings.Replace(strings.Replace(this.RollbackTo.String(), \"RollbackConfig\", \"RollbackConfig\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeploymentSpec{`,\n\t\t`Replicas:` + valueToStringGenerated(this.Replicas) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`Template:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Template), \"PodTemplateSpec\", \"v11.PodTemplateSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Strategy:` + strings.Replace(strings.Replace(this.Strategy.String(), \"DeploymentStrategy\", \"DeploymentStrategy\", 1), `&`, ``, 1) + `,`,\n\t\t`MinReadySeconds:` + fmt.Sprintf(\"%v\", this.MinReadySeconds) + `,`,\n\t\t`RevisionHistoryLimit:` + valueToStringGenerated(this.RevisionHistoryLimit) + `,`,\n\t\t`Paused:` + fmt.Sprintf(\"%v\", this.Paused) + `,`,\n\t\t`RollbackTo:` + strings.Replace(this.RollbackTo.String(), \"RollbackConfig\", \"RollbackConfig\", 1) + `,`,\n\t\t`ProgressDeadlineSeconds:` + valueToStringGenerated(this.ProgressDeadlineSeconds) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]DeploymentCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"DeploymentCondition\", \"DeploymentCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&DeploymentStatus{`,\n\t\t`ObservedGeneration:` + fmt.Sprintf(\"%v\", this.ObservedGeneration) + `,`,\n\t\t`Replicas:` + fmt.Sprintf(\"%v\", this.Replicas) + `,`,\n\t\t`UpdatedReplicas:` + fmt.Sprintf(\"%v\", this.UpdatedReplicas) + `,`,\n\t\t`AvailableReplicas:` + fmt.Sprintf(\"%v\", this.AvailableReplicas) + `,`,\n\t\t`UnavailableReplicas:` + fmt.Sprintf(\"%v\", this.UnavailableReplicas) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`ReadyReplicas:` + fmt.Sprintf(\"%v\", this.ReadyReplicas) + `,`,\n\t\t`CollisionCount:` + valueToStringGenerated(this.CollisionCount) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentStrategy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeploymentStrategy{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`RollingUpdate:` + strings.Replace(this.RollingUpdate.String(), \"RollingUpdateDeployment\", \"RollingUpdateDeployment\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RollbackConfig) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RollbackConfig{`,\n\t\t`Revision:` + fmt.Sprintf(\"%v\", this.Revision) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RollingUpdateDeployment) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RollingUpdateDeployment{`,\n\t\t`MaxUnavailable:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaxUnavailable), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`MaxSurge:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaxSurge), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RollingUpdateStatefulSetStrategy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RollingUpdateStatefulSetStrategy{`,\n\t\t`Partition:` + valueToStringGenerated(this.Partition) + `,`,\n\t\t`MaxUnavailable:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaxUnavailable), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Scale) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Scale{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ScaleSpec\", \"ScaleSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"ScaleStatus\", \"ScaleStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ScaleSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ScaleSpec{`,\n\t\t`Replicas:` + fmt.Sprintf(\"%v\", this.Replicas) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ScaleStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForSelector := make([]string, 0, len(this.Selector))\n\tfor k := range this.Selector {\n\t\tkeysForSelector = append(keysForSelector, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForSelector)\n\tmapStringForSelector := \"map[string]string{\"\n\tfor _, k := range keysForSelector {\n\t\tmapStringForSelector += fmt.Sprintf(\"%v: %v,\", k, this.Selector[k])\n\t}\n\tmapStringForSelector += \"}\"\n\ts := strings.Join([]string{`&ScaleStatus{`,\n\t\t`Replicas:` + fmt.Sprintf(\"%v\", this.Replicas) + `,`,\n\t\t`Selector:` + mapStringForSelector + `,`,\n\t\t`TargetSelector:` + fmt.Sprintf(\"%v\", this.TargetSelector) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSet) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StatefulSet{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"StatefulSetSpec\", \"StatefulSetSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"StatefulSetStatus\", \"StatefulSetStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSetCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StatefulSetCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSetList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]StatefulSet{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"StatefulSet\", \"StatefulSet\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&StatefulSetList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSetOrdinals) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StatefulSetOrdinals{`,\n\t\t`Start:` + fmt.Sprintf(\"%v\", this.Start) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSetPersistentVolumeClaimRetentionPolicy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StatefulSetPersistentVolumeClaimRetentionPolicy{`,\n\t\t`WhenDeleted:` + fmt.Sprintf(\"%v\", this.WhenDeleted) + `,`,\n\t\t`WhenScaled:` + fmt.Sprintf(\"%v\", this.WhenScaled) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSetSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForVolumeClaimTemplates := \"[]PersistentVolumeClaim{\"\n\tfor _, f := range this.VolumeClaimTemplates {\n\t\trepeatedStringForVolumeClaimTemplates += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForVolumeClaimTemplates += \"}\"\n\ts := strings.Join([]string{`&StatefulSetSpec{`,\n\t\t`Replicas:` + valueToStringGenerated(this.Replicas) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`Template:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Template), \"PodTemplateSpec\", \"v11.PodTemplateSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`VolumeClaimTemplates:` + repeatedStringForVolumeClaimTemplates + `,`,\n\t\t`ServiceName:` + fmt.Sprintf(\"%v\", this.ServiceName) + `,`,\n\t\t`PodManagementPolicy:` + fmt.Sprintf(\"%v\", this.PodManagementPolicy) + `,`,\n\t\t`UpdateStrategy:` + strings.Replace(strings.Replace(this.UpdateStrategy.String(), \"StatefulSetUpdateStrategy\", \"StatefulSetUpdateStrategy\", 1), `&`, ``, 1) + `,`,\n\t\t`RevisionHistoryLimit:` + valueToStringGenerated(this.RevisionHistoryLimit) + `,`,\n\t\t`MinReadySeconds:` + fmt.Sprintf(\"%v\", this.MinReadySeconds) + `,`,\n\t\t`PersistentVolumeClaimRetentionPolicy:` + strings.Replace(this.PersistentVolumeClaimRetentionPolicy.String(), \"StatefulSetPersistentVolumeClaimRetentionPolicy\", \"StatefulSetPersistentVolumeClaimRetentionPolicy\", 1) + `,`,\n\t\t`Ordinals:` + strings.Replace(this.Ordinals.String(), \"StatefulSetOrdinals\", \"StatefulSetOrdinals\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSetStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]StatefulSetCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"StatefulSetCondition\", \"StatefulSetCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&StatefulSetStatus{`,\n\t\t`ObservedGeneration:` + valueToStringGenerated(this.ObservedGeneration) + `,`,\n\t\t`Replicas:` + fmt.Sprintf(\"%v\", this.Replicas) + `,`,\n\t\t`ReadyReplicas:` + fmt.Sprintf(\"%v\", this.ReadyReplicas) + `,`,\n\t\t`CurrentReplicas:` + fmt.Sprintf(\"%v\", this.CurrentReplicas) + `,`,\n\t\t`UpdatedReplicas:` + fmt.Sprintf(\"%v\", this.UpdatedReplicas) + `,`,\n\t\t`CurrentRevision:` + fmt.Sprintf(\"%v\", this.CurrentRevision) + `,`,\n\t\t`UpdateRevision:` + fmt.Sprintf(\"%v\", this.UpdateRevision) + `,`,\n\t\t`CollisionCount:` + valueToStringGenerated(this.CollisionCount) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`AvailableReplicas:` + fmt.Sprintf(\"%v\", this.AvailableReplicas) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSetUpdateStrategy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StatefulSetUpdateStrategy{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`RollingUpdate:` + strings.Replace(this.RollingUpdate.String(), \"RollingUpdateStatefulSetStrategy\", \"RollingUpdateStatefulSetStrategy\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *ControllerRevision) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ControllerRevision: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ControllerRevision: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Data\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Data.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Revision\", wireType)\n\t\t\t}\n\t\t\tm.Revision = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Revision |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ControllerRevisionList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ControllerRevisionList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ControllerRevisionList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ControllerRevision{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Deployment) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Deployment: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Deployment: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = DeploymentConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastUpdateTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastUpdateTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Deployment{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentRollback) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentRollback: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentRollback: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UpdatedAnnotations\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.UpdatedAnnotations == nil {\n\t\t\t\tm.UpdatedAnnotations = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.UpdatedAnnotations[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RollbackTo\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.RollbackTo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Replicas = &v\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Template\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Strategy\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Strategy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MinReadySeconds\", wireType)\n\t\t\t}\n\t\t\tm.MinReadySeconds = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MinReadySeconds |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RevisionHistoryLimit\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.RevisionHistoryLimit = &v\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Paused\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Paused = bool(v != 0)\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RollbackTo\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RollbackTo == nil {\n\t\t\t\tm.RollbackTo = &RollbackConfig{}\n\t\t\t}\n\t\t\tif err := m.RollbackTo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ProgressDeadlineSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ProgressDeadlineSeconds = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tm.ObservedGeneration = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ObservedGeneration |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tm.Replicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Replicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UpdatedReplicas\", wireType)\n\t\t\t}\n\t\t\tm.UpdatedReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.UpdatedReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AvailableReplicas\", wireType)\n\t\t\t}\n\t\t\tm.AvailableReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.AvailableReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UnavailableReplicas\", wireType)\n\t\t\t}\n\t\t\tm.UnavailableReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.UnavailableReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, DeploymentCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadyReplicas\", wireType)\n\t\t\t}\n\t\t\tm.ReadyReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ReadyReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CollisionCount\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.CollisionCount = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentStrategy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentStrategy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentStrategy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = DeploymentStrategyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RollingUpdate\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RollingUpdate == nil {\n\t\t\t\tm.RollingUpdate = &RollingUpdateDeployment{}\n\t\t\t}\n\t\t\tif err := m.RollingUpdate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RollbackConfig) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RollbackConfig: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RollbackConfig: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Revision\", wireType)\n\t\t\t}\n\t\t\tm.Revision = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Revision |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RollingUpdateDeployment) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RollingUpdateDeployment: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RollingUpdateDeployment: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxUnavailable\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaxUnavailable == nil {\n\t\t\t\tm.MaxUnavailable = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.MaxUnavailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxSurge\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaxSurge == nil {\n\t\t\t\tm.MaxSurge = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.MaxSurge.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RollingUpdateStatefulSetStrategy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RollingUpdateStatefulSetStrategy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RollingUpdateStatefulSetStrategy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Partition\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Partition = &v\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxUnavailable\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaxUnavailable == nil {\n\t\t\t\tm.MaxUnavailable = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.MaxUnavailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Scale) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Scale: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Scale: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ScaleSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ScaleSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ScaleSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tm.Replicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Replicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ScaleStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ScaleStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ScaleStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tm.Replicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Replicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Selector[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetSelector\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TargetSelector = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSet) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSet: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSet: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSetCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = StatefulSetConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSetList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, StatefulSet{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSetOrdinals) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetOrdinals: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetOrdinals: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Start\", wireType)\n\t\t\t}\n\t\t\tm.Start = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Start |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetPersistentVolumeClaimRetentionPolicy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetPersistentVolumeClaimRetentionPolicy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field WhenDeleted\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.WhenDeleted = PersistentVolumeClaimRetentionPolicyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field WhenScaled\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.WhenScaled = PersistentVolumeClaimRetentionPolicyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSetSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Replicas = &v\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Template\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeClaimTemplates\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumeClaimTemplates = append(m.VolumeClaimTemplates, v11.PersistentVolumeClaim{})\n\t\t\tif err := m.VolumeClaimTemplates[len(m.VolumeClaimTemplates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServiceName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ServiceName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodManagementPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PodManagementPolicy = PodManagementPolicyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UpdateStrategy\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.UpdateStrategy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RevisionHistoryLimit\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.RevisionHistoryLimit = &v\n\t\tcase 9:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MinReadySeconds\", wireType)\n\t\t\t}\n\t\t\tm.MinReadySeconds = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MinReadySeconds |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PersistentVolumeClaimRetentionPolicy\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.PersistentVolumeClaimRetentionPolicy == nil {\n\t\t\t\tm.PersistentVolumeClaimRetentionPolicy = &StatefulSetPersistentVolumeClaimRetentionPolicy{}\n\t\t\t}\n\t\t\tif err := m.PersistentVolumeClaimRetentionPolicy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ordinals\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Ordinals == nil {\n\t\t\t\tm.Ordinals = &StatefulSetOrdinals{}\n\t\t\t}\n\t\t\tif err := m.Ordinals.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSetStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ObservedGeneration = &v\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tm.Replicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Replicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadyReplicas\", wireType)\n\t\t\t}\n\t\t\tm.ReadyReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ReadyReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentReplicas\", wireType)\n\t\t\t}\n\t\t\tm.CurrentReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.CurrentReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UpdatedReplicas\", wireType)\n\t\t\t}\n\t\t\tm.UpdatedReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.UpdatedReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentRevision\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.CurrentRevision = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UpdateRevision\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.UpdateRevision = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CollisionCount\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.CollisionCount = &v\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, StatefulSetCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AvailableReplicas\", wireType)\n\t\t\t}\n\t\t\tm.AvailableReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.AvailableReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSetUpdateStrategy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetUpdateStrategy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetUpdateStrategy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = StatefulSetUpdateStrategyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RollingUpdate\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RollingUpdate == nil {\n\t\t\t\tm.RollingUpdate = &RollingUpdateStatefulSetStrategy{}\n\t\t\t}\n\t\t\tif err := m.RollingUpdate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1beta1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.apps.v1beta1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/util/intstr/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/apps/v1beta1\";\n\n// DEPRECATED - This group version of ControllerRevision is deprecated by apps/v1beta2/ControllerRevision. See the\n// release notes for more information.\n// ControllerRevision implements an immutable snapshot of state data. Clients\n// are responsible for serializing and deserializing the objects that contain\n// their internal state.\n// Once a ControllerRevision has been successfully created, it can not be updated.\n// The API Server will fail validation of all requests that attempt to mutate\n// the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both\n// the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However,\n// it may be subject to name and representation changes in future releases, and clients should not\n// depend on its stability. It is primarily for internal use by controllers.\nmessage ControllerRevision {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // data is the serialized representation of the state.\n  optional .k8s.io.apimachinery.pkg.runtime.RawExtension data = 2;\n\n  // revision indicates the revision of the state represented by Data.\n  optional int64 revision = 3;\n}\n\n// ControllerRevisionList is a resource containing a list of ControllerRevision objects.\nmessage ControllerRevisionList {\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is the list of ControllerRevisions\n  repeated ControllerRevision items = 2;\n}\n\n// DEPRECATED - This group version of Deployment is deprecated by apps/v1beta2/Deployment. See the release notes for\n// more information.\n// Deployment enables declarative updates for Pods and ReplicaSets.\nmessage Deployment {\n  // Standard object metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Specification of the desired behavior of the Deployment.\n  // +optional\n  optional DeploymentSpec spec = 2;\n\n  // Most recently observed status of the Deployment.\n  // +optional\n  optional DeploymentStatus status = 3;\n}\n\n// DeploymentCondition describes the state of a deployment at a certain point.\nmessage DeploymentCondition {\n  // Type of deployment condition.\n  optional string type = 1;\n\n  // Status of the condition, one of True, False, Unknown.\n  optional string status = 2;\n\n  // The last time this condition was updated.\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastUpdateTime = 6;\n\n  // Last time the condition transitioned from one status to another.\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 7;\n\n  // The reason for the condition's last transition.\n  optional string reason = 4;\n\n  // A human readable message indicating details about the transition.\n  optional string message = 5;\n}\n\n// DeploymentList is a list of Deployments.\nmessage DeploymentList {\n  // Standard list metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is the list of Deployments.\n  repeated Deployment items = 2;\n}\n\n// DEPRECATED.\n// DeploymentRollback stores the information required to rollback a deployment.\nmessage DeploymentRollback {\n  // Required: This must match the Name of a deployment.\n  optional string name = 1;\n\n  // The annotations to be updated to a deployment\n  // +optional\n  map<string, string> updatedAnnotations = 2;\n\n  // The config of this deployment rollback.\n  optional RollbackConfig rollbackTo = 3;\n}\n\n// DeploymentSpec is the specification of the desired behavior of the Deployment.\nmessage DeploymentSpec {\n  // replicas is the number of desired pods. This is a pointer to distinguish between explicit\n  // zero and not specified. Defaults to 1.\n  // +optional\n  optional int32 replicas = 1;\n\n  // selector is the label selector for pods. Existing ReplicaSets whose pods are\n  // selected by this will be the ones affected by this deployment.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2;\n\n  // Template describes the pods that will be created.\n  // The only allowed template.spec.restartPolicy value is \"Always\".\n  optional .k8s.io.api.core.v1.PodTemplateSpec template = 3;\n\n  // The deployment strategy to use to replace existing pods with new ones.\n  // +optional\n  // +patchStrategy=retainKeys\n  optional DeploymentStrategy strategy = 4;\n\n  // minReadySeconds is the minimum number of seconds for which a newly created pod should be ready\n  // without any of its container crashing, for it to be considered available.\n  // Defaults to 0 (pod will be considered available as soon as it is ready)\n  // +optional\n  optional int32 minReadySeconds = 5;\n\n  // revisionHistoryLimit is the number of old ReplicaSets to retain to allow rollback.\n  // This is a pointer to distinguish between explicit zero and not specified.\n  // Defaults to 2.\n  // +optional\n  optional int32 revisionHistoryLimit = 6;\n\n  // paused indicates that the deployment is paused.\n  // +optional\n  optional bool paused = 7;\n\n  // DEPRECATED.\n  // rollbackTo is the config this deployment is rolling back to. Will be cleared after rollback is done.\n  // +optional\n  optional RollbackConfig rollbackTo = 8;\n\n  // progressDeadlineSeconds is the maximum time in seconds for a deployment to make progress before it\n  // is considered to be failed. The deployment controller will continue to\n  // process failed deployments and a condition with a ProgressDeadlineExceeded\n  // reason will be surfaced in the deployment status. Note that progress will\n  // not be estimated during the time a deployment is paused. Defaults to 600s.\n  // +optional\n  optional int32 progressDeadlineSeconds = 9;\n}\n\n// DeploymentStatus is the most recently observed status of the Deployment.\nmessage DeploymentStatus {\n  // observedGeneration is the generation observed by the deployment controller.\n  // +optional\n  optional int64 observedGeneration = 1;\n\n  // replicas is the total number of non-terminated pods targeted by this deployment (their labels match the selector).\n  // +optional\n  optional int32 replicas = 2;\n\n  // updatedReplicas is the total number of non-terminated pods targeted by this deployment that have the desired template spec.\n  // +optional\n  optional int32 updatedReplicas = 3;\n\n  // readyReplicas is the number of pods targeted by this Deployment controller with a Ready Condition.\n  // +optional\n  optional int32 readyReplicas = 7;\n\n  // Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.\n  // +optional\n  optional int32 availableReplicas = 4;\n\n  // unavailableReplicas is the total number of unavailable pods targeted by this deployment. This is the total number of\n  // pods that are still required for the deployment to have 100% available capacity. They may\n  // either be pods that are running but not yet available or pods that still have not been created.\n  // +optional\n  optional int32 unavailableReplicas = 5;\n\n  // Conditions represent the latest available observations of a deployment's current state.\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=type\n  repeated DeploymentCondition conditions = 6;\n\n  // collisionCount is the count of hash collisions for the Deployment. The Deployment controller uses this\n  // field as a collision avoidance mechanism when it needs to create the name for the\n  // newest ReplicaSet.\n  // +optional\n  optional int32 collisionCount = 8;\n}\n\n// DeploymentStrategy describes how to replace existing pods with new ones.\nmessage DeploymentStrategy {\n  // Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.\n  // +optional\n  optional string type = 1;\n\n  // Rolling update config params. Present only if DeploymentStrategyType =\n  // RollingUpdate.\n  // ---\n  // TODO: Update this to follow our convention for oneOf, whatever we decide it\n  // to be.\n  // +optional\n  optional RollingUpdateDeployment rollingUpdate = 2;\n}\n\n// DEPRECATED.\nmessage RollbackConfig {\n  // The revision to rollback to. If set to 0, rollback to the last revision.\n  // +optional\n  optional int64 revision = 1;\n}\n\n// Spec to control the desired behavior of rolling update.\nmessage RollingUpdateDeployment {\n  // The maximum number of pods that can be unavailable during the update.\n  // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n  // Absolute number is calculated from percentage by rounding down.\n  // This can not be 0 if MaxSurge is 0.\n  // Defaults to 25%.\n  // Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods\n  // immediately when the rolling update starts. Once new pods are ready, old ReplicaSet\n  // can be scaled down further, followed by scaling up the new ReplicaSet, ensuring\n  // that the total number of pods available at all times during the update is at\n  // least 70% of desired pods.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString maxUnavailable = 1;\n\n  // The maximum number of pods that can be scheduled above the desired number of\n  // pods.\n  // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n  // This can not be 0 if MaxUnavailable is 0.\n  // Absolute number is calculated from percentage by rounding up.\n  // Defaults to 25%.\n  // Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when\n  // the rolling update starts, such that the total number of old and new pods do not exceed\n  // 130% of desired pods. Once old pods have been killed,\n  // new ReplicaSet can be scaled up further, ensuring that total number of pods running\n  // at any time during the update is at most 130% of desired pods.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString maxSurge = 2;\n}\n\n// RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.\nmessage RollingUpdateStatefulSetStrategy {\n  // Partition indicates the ordinal at which the StatefulSet should be partitioned\n  // for updates. During a rolling update, all pods from ordinal Replicas-1 to\n  // Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched.\n  // This is helpful in being able to do a canary based deployment. The default value is 0.\n  optional int32 partition = 1;\n\n  // maxUnavailable is the maximum number of pods that can be unavailable during the update.\n  // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n  // Absolute number is calculated from percentage by rounding up. This can not be 0.\n  // Defaults to 1. This field is alpha-level and is only honored by servers that enable the\n  // MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to\n  // Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it\n  // will be counted towards MaxUnavailable.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString maxUnavailable = 2;\n}\n\n// Scale represents a scaling request for a resource.\nmessage Scale {\n  // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\n  // +optional\n  optional ScaleSpec spec = 2;\n\n  // status defines current status of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. Read-only.\n  // +optional\n  optional ScaleStatus status = 3;\n}\n\n// ScaleSpec describes the attributes of a scale subresource\nmessage ScaleSpec {\n  // replicas is the number of observed instances of the scaled object.\n  // +optional\n  optional int32 replicas = 1;\n}\n\n// ScaleStatus represents the current status of a scale subresource.\nmessage ScaleStatus {\n  // replias is the actual number of observed instances of the scaled object.\n  optional int32 replicas = 1;\n\n  // selector is a label query over pods that should match the replicas count. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\n  // +optional\n  map<string, string> selector = 2;\n\n  // targetSelector is the label selector for pods that should match the replicas count. This is a serializated\n  // version of both map-based and more expressive set-based selectors. This is done to\n  // avoid introspection in the clients. The string will be in the same format as the\n  // query-param syntax. If the target type only supports map-based selectors, both this\n  // field and map-based selector field are populated.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n  // +optional\n  optional string targetSelector = 3;\n}\n\n// DEPRECATED - This group version of StatefulSet is deprecated by apps/v1beta2/StatefulSet. See the release notes for\n// more information.\n// StatefulSet represents a set of pods with consistent identities.\n// Identities are defined as:\n//   - Network: A single stable DNS and hostname.\n//   - Storage: As many VolumeClaims as requested.\n//\n// The StatefulSet guarantees that a given network identity will always\n// map to the same storage identity.\nmessage StatefulSet {\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec defines the desired identities of pods in this set.\n  // +optional\n  optional StatefulSetSpec spec = 2;\n\n  // Status is the current status of Pods in this StatefulSet. This data\n  // may be out of date by some window of time.\n  // +optional\n  optional StatefulSetStatus status = 3;\n}\n\n// StatefulSetCondition describes the state of a statefulset at a certain point.\nmessage StatefulSetCondition {\n  // Type of statefulset condition.\n  optional string type = 1;\n\n  // Status of the condition, one of True, False, Unknown.\n  optional string status = 2;\n\n  // Last time the condition transitioned from one status to another.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // The reason for the condition's last transition.\n  // +optional\n  optional string reason = 4;\n\n  // A human readable message indicating details about the transition.\n  // +optional\n  optional string message = 5;\n}\n\n// StatefulSetList is a collection of StatefulSets.\nmessage StatefulSetList {\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  repeated StatefulSet items = 2;\n}\n\n// StatefulSetOrdinals describes the policy used for replica ordinal assignment\n// in this StatefulSet.\nmessage StatefulSetOrdinals {\n  // start is the number representing the first replica's index. It may be used\n  // to number replicas from an alternate index (eg: 1-indexed) over the default\n  // 0-indexed names, or to orchestrate progressive movement of replicas from\n  // one StatefulSet to another.\n  // If set, replica indices will be in the range:\n  //   [.spec.ordinals.start, .spec.ordinals.start + .spec.replicas).\n  // If unset, defaults to 0. Replica indices will be in the range:\n  //   [0, .spec.replicas).\n  // +optional\n  optional int32 start = 1;\n}\n\n// StatefulSetPersistentVolumeClaimRetentionPolicy describes the policy used for PVCs\n// created from the StatefulSet VolumeClaimTemplates.\nmessage StatefulSetPersistentVolumeClaimRetentionPolicy {\n  // whenDeleted specifies what happens to PVCs created from StatefulSet\n  // VolumeClaimTemplates when the StatefulSet is deleted. The default policy\n  // of `Retain` causes PVCs to not be affected by StatefulSet deletion. The\n  // `Delete` policy causes those PVCs to be deleted.\n  optional string whenDeleted = 1;\n\n  // whenScaled specifies what happens to PVCs created from StatefulSet\n  // VolumeClaimTemplates when the StatefulSet is scaled down. The default\n  // policy of `Retain` causes PVCs to not be affected by a scaledown. The\n  // `Delete` policy causes the associated PVCs for any excess pods above\n  // the replica count to be deleted.\n  optional string whenScaled = 2;\n}\n\n// A StatefulSetSpec is the specification of a StatefulSet.\nmessage StatefulSetSpec {\n  // replicas is the desired number of replicas of the given Template.\n  // These are replicas in the sense that they are instantiations of the\n  // same Template, but individual replicas also have a consistent identity.\n  // If unspecified, defaults to 1.\n  // TODO: Consider a rename of this field.\n  // +optional\n  optional int32 replicas = 1;\n\n  // selector is a label query over pods that should match the replica count.\n  // If empty, defaulted to labels on the pod template.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2;\n\n  // template is the object that describes the pod that will be created if\n  // insufficient replicas are detected. Each pod stamped out by the StatefulSet\n  // will fulfill this Template, but have a unique identity from the rest\n  // of the StatefulSet. Each pod will be named with the format\n  // <statefulsetname>-<podindex>. For example, a pod in a StatefulSet named\n  // \"web\" with index number \"3\" would be named \"web-3\".\n  optional .k8s.io.api.core.v1.PodTemplateSpec template = 3;\n\n  // volumeClaimTemplates is a list of claims that pods are allowed to reference.\n  // The StatefulSet controller is responsible for mapping network identities to\n  // claims in a way that maintains the identity of a pod. Every claim in\n  // this list must have at least one matching (by name) volumeMount in one\n  // container in the template. A claim in this list takes precedence over\n  // any volumes in the template, with the same name.\n  // TODO: Define the behavior if a claim already exists with the same name.\n  // +optional\n  // +listType=atomic\n  repeated .k8s.io.api.core.v1.PersistentVolumeClaim volumeClaimTemplates = 4;\n\n  // serviceName is the name of the service that governs this StatefulSet.\n  // This service must exist before the StatefulSet, and is responsible for\n  // the network identity of the set. Pods get DNS/hostnames that follow the\n  // pattern: pod-specific-string.serviceName.default.svc.cluster.local\n  // where \"pod-specific-string\" is managed by the StatefulSet controller.\n  optional string serviceName = 5;\n\n  // podManagementPolicy controls how pods are created during initial scale up,\n  // when replacing pods on nodes, or when scaling down. The default policy is\n  // `OrderedReady`, where pods are created in increasing order (pod-0, then\n  // pod-1, etc) and the controller will wait until each pod is ready before\n  // continuing. When scaling down, the pods are removed in the opposite order.\n  // The alternative policy is `Parallel` which will create pods in parallel\n  // to match the desired scale without waiting, and on scale down will delete\n  // all pods at once.\n  // +optional\n  optional string podManagementPolicy = 6;\n\n  // updateStrategy indicates the StatefulSetUpdateStrategy that will be\n  // employed to update Pods in the StatefulSet when a revision is made to\n  // Template.\n  optional StatefulSetUpdateStrategy updateStrategy = 7;\n\n  // revisionHistoryLimit is the maximum number of revisions that will\n  // be maintained in the StatefulSet's revision history. The revision history\n  // consists of all revisions not represented by a currently applied\n  // StatefulSetSpec version. The default value is 10.\n  optional int32 revisionHistoryLimit = 8;\n\n  // minReadySeconds is the minimum number of seconds for which a newly created pod should be ready\n  // without any of its container crashing for it to be considered available.\n  // Defaults to 0 (pod will be considered available as soon as it is ready)\n  // +optional\n  optional int32 minReadySeconds = 9;\n\n  // PersistentVolumeClaimRetentionPolicy describes the policy used for PVCs created from\n  // the StatefulSet VolumeClaimTemplates.\n  // +optional\n  optional StatefulSetPersistentVolumeClaimRetentionPolicy persistentVolumeClaimRetentionPolicy = 10;\n\n  // ordinals controls the numbering of replica indices in a StatefulSet. The\n  // default ordinals behavior assigns a \"0\" index to the first replica and\n  // increments the index by one for each additional replica requested.\n  // +optional\n  optional StatefulSetOrdinals ordinals = 11;\n}\n\n// StatefulSetStatus represents the current state of a StatefulSet.\nmessage StatefulSetStatus {\n  // observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the\n  // StatefulSet's generation, which is updated on mutation by the API Server.\n  // +optional\n  optional int64 observedGeneration = 1;\n\n  // replicas is the number of Pods created by the StatefulSet controller.\n  optional int32 replicas = 2;\n\n  // readyReplicas is the number of pods created by this StatefulSet controller with a Ready Condition.\n  optional int32 readyReplicas = 3;\n\n  // currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version\n  // indicated by currentRevision.\n  optional int32 currentReplicas = 4;\n\n  // updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version\n  // indicated by updateRevision.\n  optional int32 updatedReplicas = 5;\n\n  // currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the\n  // sequence [0,currentReplicas).\n  optional string currentRevision = 6;\n\n  // updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence\n  // [replicas-updatedReplicas,replicas)\n  optional string updateRevision = 7;\n\n  // collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller\n  // uses this field as a collision avoidance mechanism when it needs to create the name for the\n  // newest ControllerRevision.\n  // +optional\n  optional int32 collisionCount = 9;\n\n  // conditions represent the latest available observations of a statefulset's current state.\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=type\n  repeated StatefulSetCondition conditions = 10;\n\n  // availableReplicas is the total number of available pods (ready for at least minReadySeconds) targeted by this StatefulSet.\n  // +optional\n  optional int32 availableReplicas = 11;\n}\n\n// StatefulSetUpdateStrategy indicates the strategy that the StatefulSet\n// controller will use to perform updates. It includes any additional parameters\n// necessary to perform the update for the indicated strategy.\nmessage StatefulSetUpdateStrategy {\n  // Type indicates the type of the StatefulSetUpdateStrategy.\n  optional string type = 1;\n\n  // RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.\n  optional RollingUpdateStatefulSetStrategy rollingUpdate = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1beta1/register.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"apps\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&Deployment{},\n\t\t&DeploymentList{},\n\t\t&DeploymentRollback{},\n\t\t&Scale{},\n\t\t&StatefulSet{},\n\t\t&StatefulSetList{},\n\t\t&ControllerRevision{},\n\t\t&ControllerRevisionList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1beta1/types.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\nconst (\n\tControllerRevisionHashLabelKey = \"controller-revision-hash\"\n\tStatefulSetRevisionLabel       = ControllerRevisionHashLabelKey\n\tStatefulSetPodNameLabel        = \"statefulset.kubernetes.io/pod-name\"\n)\n\n// ScaleSpec describes the attributes of a scale subresource\ntype ScaleSpec struct {\n\t// replicas is the number of observed instances of the scaled object.\n\t// +optional\n\tReplicas int32 `json:\"replicas,omitempty\" protobuf:\"varint,1,opt,name=replicas\"`\n}\n\n// ScaleStatus represents the current status of a scale subresource.\ntype ScaleStatus struct {\n\t// replias is the actual number of observed instances of the scaled object.\n\tReplicas int32 `json:\"replicas\" protobuf:\"varint,1,opt,name=replicas\"`\n\n\t// selector is a label query over pods that should match the replicas count. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\n\t// +optional\n\tSelector map[string]string `json:\"selector,omitempty\" protobuf:\"bytes,2,rep,name=selector\"`\n\n\t// targetSelector is the label selector for pods that should match the replicas count. This is a serializated\n\t// version of both map-based and more expressive set-based selectors. This is done to\n\t// avoid introspection in the clients. The string will be in the same format as the\n\t// query-param syntax. If the target type only supports map-based selectors, both this\n\t// field and map-based selector field are populated.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n\t// +optional\n\tTargetSelector string `json:\"targetSelector,omitempty\" protobuf:\"bytes,3,opt,name=targetSelector\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.6\n// +k8s:prerelease-lifecycle-gen:deprecated=1.8\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=autoscaling,v1,Scale\n\n// Scale represents a scaling request for a resource.\ntype Scale struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\n\t// +optional\n\tSpec ScaleSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// status defines current status of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. Read-only.\n\t// +optional\n\tStatus ScaleStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.5\n// +k8s:prerelease-lifecycle-gen:deprecated=1.8\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,StatefulSet\n\n// DEPRECATED - This group version of StatefulSet is deprecated by apps/v1beta2/StatefulSet. See the release notes for\n// more information.\n// StatefulSet represents a set of pods with consistent identities.\n// Identities are defined as:\n//   - Network: A single stable DNS and hostname.\n//   - Storage: As many VolumeClaims as requested.\n//\n// The StatefulSet guarantees that a given network identity will always\n// map to the same storage identity.\ntype StatefulSet struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec defines the desired identities of pods in this set.\n\t// +optional\n\tSpec StatefulSetSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status is the current status of Pods in this StatefulSet. This data\n\t// may be out of date by some window of time.\n\t// +optional\n\tStatus StatefulSetStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// PodManagementPolicyType defines the policy for creating pods under a stateful set.\ntype PodManagementPolicyType string\n\nconst (\n\t// OrderedReadyPodManagement will create pods in strictly increasing order on\n\t// scale up and strictly decreasing order on scale down, progressing only when\n\t// the previous pod is ready or terminated. At most one pod will be changed\n\t// at any time.\n\tOrderedReadyPodManagement PodManagementPolicyType = \"OrderedReady\"\n\t// ParallelPodManagement will create and delete pods as soon as the stateful set\n\t// replica count is changed, and will not wait for pods to be ready or complete\n\t// termination.\n\tParallelPodManagement PodManagementPolicyType = \"Parallel\"\n)\n\n// StatefulSetUpdateStrategy indicates the strategy that the StatefulSet\n// controller will use to perform updates. It includes any additional parameters\n// necessary to perform the update for the indicated strategy.\ntype StatefulSetUpdateStrategy struct {\n\t// Type indicates the type of the StatefulSetUpdateStrategy.\n\tType StatefulSetUpdateStrategyType `json:\"type,omitempty\" protobuf:\"bytes,1,opt,name=type,casttype=StatefulSetStrategyType\"`\n\t// RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.\n\tRollingUpdate *RollingUpdateStatefulSetStrategy `json:\"rollingUpdate,omitempty\" protobuf:\"bytes,2,opt,name=rollingUpdate\"`\n}\n\n// StatefulSetUpdateStrategyType is a string enumeration type that enumerates\n// all possible update strategies for the StatefulSet controller.\ntype StatefulSetUpdateStrategyType string\n\nconst (\n\t// RollingUpdateStatefulSetStrategyType indicates that update will be\n\t// applied to all Pods in the StatefulSet with respect to the StatefulSet\n\t// ordering constraints. When a scale operation is performed with this\n\t// strategy, new Pods will be created from the specification version indicated\n\t// by the StatefulSet's updateRevision.\n\tRollingUpdateStatefulSetStrategyType StatefulSetUpdateStrategyType = \"RollingUpdate\"\n\t// OnDeleteStatefulSetStrategyType triggers the legacy behavior. Version\n\t// tracking and ordered rolling restarts are disabled. Pods are recreated\n\t// from the StatefulSetSpec when they are manually deleted. When a scale\n\t// operation is performed with this strategy,specification version indicated\n\t// by the StatefulSet's currentRevision.\n\tOnDeleteStatefulSetStrategyType StatefulSetUpdateStrategyType = \"OnDelete\"\n)\n\n// RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.\ntype RollingUpdateStatefulSetStrategy struct {\n\t// Partition indicates the ordinal at which the StatefulSet should be partitioned\n\t// for updates. During a rolling update, all pods from ordinal Replicas-1 to\n\t// Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched.\n\t// This is helpful in being able to do a canary based deployment. The default value is 0.\n\tPartition *int32 `json:\"partition,omitempty\" protobuf:\"varint,1,opt,name=partition\"`\n\t// maxUnavailable is the maximum number of pods that can be unavailable during the update.\n\t// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n\t// Absolute number is calculated from percentage by rounding up. This can not be 0.\n\t// Defaults to 1. This field is alpha-level and is only honored by servers that enable the\n\t// MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to\n\t// Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it\n\t// will be counted towards MaxUnavailable.\n\t// +optional\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\" protobuf:\"varint,2,opt,name=maxUnavailable\"`\n}\n\n// PersistentVolumeClaimRetentionPolicyType is a string enumeration of the policies that will determine\n// when volumes from the VolumeClaimTemplates will be deleted when the controlling StatefulSet is\n// deleted or scaled down.\ntype PersistentVolumeClaimRetentionPolicyType string\n\nconst (\n\t// RetainPersistentVolumeClaimRetentionPolicyType is the default\n\t// PersistentVolumeClaimRetentionPolicy and specifies that\n\t// PersistentVolumeClaims associated with StatefulSet VolumeClaimTemplates\n\t// will not be deleted.\n\tRetainPersistentVolumeClaimRetentionPolicyType PersistentVolumeClaimRetentionPolicyType = \"Retain\"\n\t// DeletePersistentVolumeClaimRetentionPolicyType specifies that\n\t// PersistentVolumeClaims associated with StatefulSet VolumeClaimTemplates\n\t// will be deleted in the scenario specified in\n\t// StatefulSetPersistentVolumeClaimRetentionPolicy.\n\tDeletePersistentVolumeClaimRetentionPolicyType PersistentVolumeClaimRetentionPolicyType = \"Delete\"\n)\n\n// StatefulSetPersistentVolumeClaimRetentionPolicy describes the policy used for PVCs\n// created from the StatefulSet VolumeClaimTemplates.\ntype StatefulSetPersistentVolumeClaimRetentionPolicy struct {\n\t// whenDeleted specifies what happens to PVCs created from StatefulSet\n\t// VolumeClaimTemplates when the StatefulSet is deleted. The default policy\n\t// of `Retain` causes PVCs to not be affected by StatefulSet deletion. The\n\t// `Delete` policy causes those PVCs to be deleted.\n\tWhenDeleted PersistentVolumeClaimRetentionPolicyType `json:\"whenDeleted,omitempty\" protobuf:\"bytes,1,opt,name=whenDeleted,casttype=PersistentVolumeClaimRetentionPolicyType\"`\n\t// whenScaled specifies what happens to PVCs created from StatefulSet\n\t// VolumeClaimTemplates when the StatefulSet is scaled down. The default\n\t// policy of `Retain` causes PVCs to not be affected by a scaledown. The\n\t// `Delete` policy causes the associated PVCs for any excess pods above\n\t// the replica count to be deleted.\n\tWhenScaled PersistentVolumeClaimRetentionPolicyType `json:\"whenScaled,omitempty\" protobuf:\"bytes,2,opt,name=whenScaled,casttype=PersistentVolumeClaimRetentionPolicyType\"`\n}\n\n// StatefulSetOrdinals describes the policy used for replica ordinal assignment\n// in this StatefulSet.\ntype StatefulSetOrdinals struct {\n\t// start is the number representing the first replica's index. It may be used\n\t// to number replicas from an alternate index (eg: 1-indexed) over the default\n\t// 0-indexed names, or to orchestrate progressive movement of replicas from\n\t// one StatefulSet to another.\n\t// If set, replica indices will be in the range:\n\t//   [.spec.ordinals.start, .spec.ordinals.start + .spec.replicas).\n\t// If unset, defaults to 0. Replica indices will be in the range:\n\t//   [0, .spec.replicas).\n\t// +optional\n\tStart int32 `json:\"start\" protobuf:\"varint,1,opt,name=start\"`\n}\n\n// A StatefulSetSpec is the specification of a StatefulSet.\ntype StatefulSetSpec struct {\n\t// replicas is the desired number of replicas of the given Template.\n\t// These are replicas in the sense that they are instantiations of the\n\t// same Template, but individual replicas also have a consistent identity.\n\t// If unspecified, defaults to 1.\n\t// TODO: Consider a rename of this field.\n\t// +optional\n\tReplicas *int32 `json:\"replicas,omitempty\" protobuf:\"varint,1,opt,name=replicas\"`\n\n\t// selector is a label query over pods that should match the replica count.\n\t// If empty, defaulted to labels on the pod template.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n\t// +optional\n\tSelector *metav1.LabelSelector `json:\"selector,omitempty\" protobuf:\"bytes,2,opt,name=selector\"`\n\n\t// template is the object that describes the pod that will be created if\n\t// insufficient replicas are detected. Each pod stamped out by the StatefulSet\n\t// will fulfill this Template, but have a unique identity from the rest\n\t// of the StatefulSet. Each pod will be named with the format\n\t// <statefulsetname>-<podindex>. For example, a pod in a StatefulSet named\n\t// \"web\" with index number \"3\" would be named \"web-3\".\n\tTemplate v1.PodTemplateSpec `json:\"template\" protobuf:\"bytes,3,opt,name=template\"`\n\n\t// volumeClaimTemplates is a list of claims that pods are allowed to reference.\n\t// The StatefulSet controller is responsible for mapping network identities to\n\t// claims in a way that maintains the identity of a pod. Every claim in\n\t// this list must have at least one matching (by name) volumeMount in one\n\t// container in the template. A claim in this list takes precedence over\n\t// any volumes in the template, with the same name.\n\t// TODO: Define the behavior if a claim already exists with the same name.\n\t// +optional\n\t// +listType=atomic\n\tVolumeClaimTemplates []v1.PersistentVolumeClaim `json:\"volumeClaimTemplates,omitempty\" protobuf:\"bytes,4,rep,name=volumeClaimTemplates\"`\n\n\t// serviceName is the name of the service that governs this StatefulSet.\n\t// This service must exist before the StatefulSet, and is responsible for\n\t// the network identity of the set. Pods get DNS/hostnames that follow the\n\t// pattern: pod-specific-string.serviceName.default.svc.cluster.local\n\t// where \"pod-specific-string\" is managed by the StatefulSet controller.\n\tServiceName string `json:\"serviceName\" protobuf:\"bytes,5,opt,name=serviceName\"`\n\n\t// podManagementPolicy controls how pods are created during initial scale up,\n\t// when replacing pods on nodes, or when scaling down. The default policy is\n\t// `OrderedReady`, where pods are created in increasing order (pod-0, then\n\t// pod-1, etc) and the controller will wait until each pod is ready before\n\t// continuing. When scaling down, the pods are removed in the opposite order.\n\t// The alternative policy is `Parallel` which will create pods in parallel\n\t// to match the desired scale without waiting, and on scale down will delete\n\t// all pods at once.\n\t// +optional\n\tPodManagementPolicy PodManagementPolicyType `json:\"podManagementPolicy,omitempty\" protobuf:\"bytes,6,opt,name=podManagementPolicy,casttype=PodManagementPolicyType\"`\n\n\t// updateStrategy indicates the StatefulSetUpdateStrategy that will be\n\t// employed to update Pods in the StatefulSet when a revision is made to\n\t// Template.\n\tUpdateStrategy StatefulSetUpdateStrategy `json:\"updateStrategy,omitempty\" protobuf:\"bytes,7,opt,name=updateStrategy\"`\n\n\t// revisionHistoryLimit is the maximum number of revisions that will\n\t// be maintained in the StatefulSet's revision history. The revision history\n\t// consists of all revisions not represented by a currently applied\n\t// StatefulSetSpec version. The default value is 10.\n\tRevisionHistoryLimit *int32 `json:\"revisionHistoryLimit,omitempty\" protobuf:\"varint,8,opt,name=revisionHistoryLimit\"`\n\n\t// minReadySeconds is the minimum number of seconds for which a newly created pod should be ready\n\t// without any of its container crashing for it to be considered available.\n\t// Defaults to 0 (pod will be considered available as soon as it is ready)\n\t// +optional\n\tMinReadySeconds int32 `json:\"minReadySeconds,omitempty\" protobuf:\"varint,9,opt,name=minReadySeconds\"`\n\n\t// PersistentVolumeClaimRetentionPolicy describes the policy used for PVCs created from\n\t// the StatefulSet VolumeClaimTemplates.\n\t// +optional\n\tPersistentVolumeClaimRetentionPolicy *StatefulSetPersistentVolumeClaimRetentionPolicy `json:\"persistentVolumeClaimRetentionPolicy,omitempty\" protobuf:\"bytes,10,opt,name=persistentVolumeClaimRetentionPolicy\"`\n\n\t// ordinals controls the numbering of replica indices in a StatefulSet. The\n\t// default ordinals behavior assigns a \"0\" index to the first replica and\n\t// increments the index by one for each additional replica requested.\n\t// +optional\n\tOrdinals *StatefulSetOrdinals `json:\"ordinals,omitempty\" protobuf:\"bytes,11,opt,name=ordinals\"`\n}\n\n// StatefulSetStatus represents the current state of a StatefulSet.\ntype StatefulSetStatus struct {\n\t// observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the\n\t// StatefulSet's generation, which is updated on mutation by the API Server.\n\t// +optional\n\tObservedGeneration *int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,1,opt,name=observedGeneration\"`\n\n\t// replicas is the number of Pods created by the StatefulSet controller.\n\tReplicas int32 `json:\"replicas\" protobuf:\"varint,2,opt,name=replicas\"`\n\n\t// readyReplicas is the number of pods created by this StatefulSet controller with a Ready Condition.\n\tReadyReplicas int32 `json:\"readyReplicas,omitempty\" protobuf:\"varint,3,opt,name=readyReplicas\"`\n\n\t// currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version\n\t// indicated by currentRevision.\n\tCurrentReplicas int32 `json:\"currentReplicas,omitempty\" protobuf:\"varint,4,opt,name=currentReplicas\"`\n\n\t// updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version\n\t// indicated by updateRevision.\n\tUpdatedReplicas int32 `json:\"updatedReplicas,omitempty\" protobuf:\"varint,5,opt,name=updatedReplicas\"`\n\n\t// currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the\n\t// sequence [0,currentReplicas).\n\tCurrentRevision string `json:\"currentRevision,omitempty\" protobuf:\"bytes,6,opt,name=currentRevision\"`\n\n\t// updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence\n\t// [replicas-updatedReplicas,replicas)\n\tUpdateRevision string `json:\"updateRevision,omitempty\" protobuf:\"bytes,7,opt,name=updateRevision\"`\n\n\t// collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller\n\t// uses this field as a collision avoidance mechanism when it needs to create the name for the\n\t// newest ControllerRevision.\n\t// +optional\n\tCollisionCount *int32 `json:\"collisionCount,omitempty\" protobuf:\"varint,9,opt,name=collisionCount\"`\n\n\t// conditions represent the latest available observations of a statefulset's current state.\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=type\n\tConditions []StatefulSetCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,10,rep,name=conditions\"`\n\n\t// availableReplicas is the total number of available pods (ready for at least minReadySeconds) targeted by this StatefulSet.\n\t// +optional\n\tAvailableReplicas int32 `json:\"availableReplicas\" protobuf:\"varint,11,opt,name=availableReplicas\"`\n}\n\ntype StatefulSetConditionType string\n\n// StatefulSetCondition describes the state of a statefulset at a certain point.\ntype StatefulSetCondition struct {\n\t// Type of statefulset condition.\n\tType StatefulSetConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=StatefulSetConditionType\"`\n\t// Status of the condition, one of True, False, Unknown.\n\tStatus v1.ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus\"`\n\t// Last time the condition transitioned from one status to another.\n\t// +optional\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\t// The reason for the condition's last transition.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// A human readable message indicating details about the transition.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.5\n// +k8s:prerelease-lifecycle-gen:deprecated=1.8\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,StatefulSetList\n\n// StatefulSetList is a collection of StatefulSets.\ntype StatefulSetList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\tItems           []StatefulSet `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.6\n// +k8s:prerelease-lifecycle-gen:deprecated=1.8\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,Deployment\n\n// DEPRECATED - This group version of Deployment is deprecated by apps/v1beta2/Deployment. See the release notes for\n// more information.\n// Deployment enables declarative updates for Pods and ReplicaSets.\ntype Deployment struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Specification of the desired behavior of the Deployment.\n\t// +optional\n\tSpec DeploymentSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Most recently observed status of the Deployment.\n\t// +optional\n\tStatus DeploymentStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// DeploymentSpec is the specification of the desired behavior of the Deployment.\ntype DeploymentSpec struct {\n\t// replicas is the number of desired pods. This is a pointer to distinguish between explicit\n\t// zero and not specified. Defaults to 1.\n\t// +optional\n\tReplicas *int32 `json:\"replicas,omitempty\" protobuf:\"varint,1,opt,name=replicas\"`\n\n\t// selector is the label selector for pods. Existing ReplicaSets whose pods are\n\t// selected by this will be the ones affected by this deployment.\n\t// +optional\n\tSelector *metav1.LabelSelector `json:\"selector,omitempty\" protobuf:\"bytes,2,opt,name=selector\"`\n\n\t// Template describes the pods that will be created.\n\t// The only allowed template.spec.restartPolicy value is \"Always\".\n\tTemplate v1.PodTemplateSpec `json:\"template\" protobuf:\"bytes,3,opt,name=template\"`\n\n\t// The deployment strategy to use to replace existing pods with new ones.\n\t// +optional\n\t// +patchStrategy=retainKeys\n\tStrategy DeploymentStrategy `json:\"strategy,omitempty\" patchStrategy:\"retainKeys\" protobuf:\"bytes,4,opt,name=strategy\"`\n\n\t// minReadySeconds is the minimum number of seconds for which a newly created pod should be ready\n\t// without any of its container crashing, for it to be considered available.\n\t// Defaults to 0 (pod will be considered available as soon as it is ready)\n\t// +optional\n\tMinReadySeconds int32 `json:\"minReadySeconds,omitempty\" protobuf:\"varint,5,opt,name=minReadySeconds\"`\n\n\t// revisionHistoryLimit is the number of old ReplicaSets to retain to allow rollback.\n\t// This is a pointer to distinguish between explicit zero and not specified.\n\t// Defaults to 2.\n\t// +optional\n\tRevisionHistoryLimit *int32 `json:\"revisionHistoryLimit,omitempty\" protobuf:\"varint,6,opt,name=revisionHistoryLimit\"`\n\n\t// paused indicates that the deployment is paused.\n\t// +optional\n\tPaused bool `json:\"paused,omitempty\" protobuf:\"varint,7,opt,name=paused\"`\n\n\t// DEPRECATED.\n\t// rollbackTo is the config this deployment is rolling back to. Will be cleared after rollback is done.\n\t// +optional\n\tRollbackTo *RollbackConfig `json:\"rollbackTo,omitempty\" protobuf:\"bytes,8,opt,name=rollbackTo\"`\n\n\t// progressDeadlineSeconds is the maximum time in seconds for a deployment to make progress before it\n\t// is considered to be failed. The deployment controller will continue to\n\t// process failed deployments and a condition with a ProgressDeadlineExceeded\n\t// reason will be surfaced in the deployment status. Note that progress will\n\t// not be estimated during the time a deployment is paused. Defaults to 600s.\n\t// +optional\n\tProgressDeadlineSeconds *int32 `json:\"progressDeadlineSeconds,omitempty\" protobuf:\"varint,9,opt,name=progressDeadlineSeconds\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.6\n// +k8s:prerelease-lifecycle-gen:deprecated=1.8\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,DeploymentRollback\n\n// DEPRECATED.\n// DeploymentRollback stores the information required to rollback a deployment.\ntype DeploymentRollback struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Required: This must match the Name of a deployment.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\t// The annotations to be updated to a deployment\n\t// +optional\n\tUpdatedAnnotations map[string]string `json:\"updatedAnnotations,omitempty\" protobuf:\"bytes,2,rep,name=updatedAnnotations\"`\n\t// The config of this deployment rollback.\n\tRollbackTo RollbackConfig `json:\"rollbackTo\" protobuf:\"bytes,3,opt,name=rollbackTo\"`\n}\n\n// DEPRECATED.\ntype RollbackConfig struct {\n\t// The revision to rollback to. If set to 0, rollback to the last revision.\n\t// +optional\n\tRevision int64 `json:\"revision,omitempty\" protobuf:\"varint,1,opt,name=revision\"`\n}\n\nconst (\n\t// DefaultDeploymentUniqueLabelKey is the default key of the selector that is added\n\t// to existing ReplicaSets (and label key that is added to its pods) to prevent the existing ReplicaSets\n\t// to select new pods (and old pods being select by new ReplicaSet).\n\tDefaultDeploymentUniqueLabelKey string = \"pod-template-hash\"\n)\n\n// DeploymentStrategy describes how to replace existing pods with new ones.\ntype DeploymentStrategy struct {\n\t// Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.\n\t// +optional\n\tType DeploymentStrategyType `json:\"type,omitempty\" protobuf:\"bytes,1,opt,name=type,casttype=DeploymentStrategyType\"`\n\n\t// Rolling update config params. Present only if DeploymentStrategyType =\n\t// RollingUpdate.\n\t//---\n\t// TODO: Update this to follow our convention for oneOf, whatever we decide it\n\t// to be.\n\t// +optional\n\tRollingUpdate *RollingUpdateDeployment `json:\"rollingUpdate,omitempty\" protobuf:\"bytes,2,opt,name=rollingUpdate\"`\n}\n\ntype DeploymentStrategyType string\n\nconst (\n\t// Kill all existing pods before creating new ones.\n\tRecreateDeploymentStrategyType DeploymentStrategyType = \"Recreate\"\n\n\t// Replace the old ReplicaSets by new one using rolling update i.e gradually scale down the old ReplicaSets and scale up the new one.\n\tRollingUpdateDeploymentStrategyType DeploymentStrategyType = \"RollingUpdate\"\n)\n\n// Spec to control the desired behavior of rolling update.\ntype RollingUpdateDeployment struct {\n\t// The maximum number of pods that can be unavailable during the update.\n\t// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n\t// Absolute number is calculated from percentage by rounding down.\n\t// This can not be 0 if MaxSurge is 0.\n\t// Defaults to 25%.\n\t// Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods\n\t// immediately when the rolling update starts. Once new pods are ready, old ReplicaSet\n\t// can be scaled down further, followed by scaling up the new ReplicaSet, ensuring\n\t// that the total number of pods available at all times during the update is at\n\t// least 70% of desired pods.\n\t// +optional\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\" protobuf:\"bytes,1,opt,name=maxUnavailable\"`\n\n\t// The maximum number of pods that can be scheduled above the desired number of\n\t// pods.\n\t// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n\t// This can not be 0 if MaxUnavailable is 0.\n\t// Absolute number is calculated from percentage by rounding up.\n\t// Defaults to 25%.\n\t// Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when\n\t// the rolling update starts, such that the total number of old and new pods do not exceed\n\t// 130% of desired pods. Once old pods have been killed,\n\t// new ReplicaSet can be scaled up further, ensuring that total number of pods running\n\t// at any time during the update is at most 130% of desired pods.\n\t// +optional\n\tMaxSurge *intstr.IntOrString `json:\"maxSurge,omitempty\" protobuf:\"bytes,2,opt,name=maxSurge\"`\n}\n\n// DeploymentStatus is the most recently observed status of the Deployment.\ntype DeploymentStatus struct {\n\t// observedGeneration is the generation observed by the deployment controller.\n\t// +optional\n\tObservedGeneration int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,1,opt,name=observedGeneration\"`\n\n\t// replicas is the total number of non-terminated pods targeted by this deployment (their labels match the selector).\n\t// +optional\n\tReplicas int32 `json:\"replicas,omitempty\" protobuf:\"varint,2,opt,name=replicas\"`\n\n\t// updatedReplicas is the total number of non-terminated pods targeted by this deployment that have the desired template spec.\n\t// +optional\n\tUpdatedReplicas int32 `json:\"updatedReplicas,omitempty\" protobuf:\"varint,3,opt,name=updatedReplicas\"`\n\n\t// readyReplicas is the number of pods targeted by this Deployment controller with a Ready Condition.\n\t// +optional\n\tReadyReplicas int32 `json:\"readyReplicas,omitempty\" protobuf:\"varint,7,opt,name=readyReplicas\"`\n\n\t// Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.\n\t// +optional\n\tAvailableReplicas int32 `json:\"availableReplicas,omitempty\" protobuf:\"varint,4,opt,name=availableReplicas\"`\n\n\t// unavailableReplicas is the total number of unavailable pods targeted by this deployment. This is the total number of\n\t// pods that are still required for the deployment to have 100% available capacity. They may\n\t// either be pods that are running but not yet available or pods that still have not been created.\n\t// +optional\n\tUnavailableReplicas int32 `json:\"unavailableReplicas,omitempty\" protobuf:\"varint,5,opt,name=unavailableReplicas\"`\n\n\t// Conditions represent the latest available observations of a deployment's current state.\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=type\n\tConditions []DeploymentCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,6,rep,name=conditions\"`\n\n\t// collisionCount is the count of hash collisions for the Deployment. The Deployment controller uses this\n\t// field as a collision avoidance mechanism when it needs to create the name for the\n\t// newest ReplicaSet.\n\t// +optional\n\tCollisionCount *int32 `json:\"collisionCount,omitempty\" protobuf:\"varint,8,opt,name=collisionCount\"`\n}\n\ntype DeploymentConditionType string\n\n// These are valid conditions of a deployment.\nconst (\n\t// Available means the deployment is available, ie. at least the minimum available\n\t// replicas required are up and running for at least minReadySeconds.\n\tDeploymentAvailable DeploymentConditionType = \"Available\"\n\t// Progressing means the deployment is progressing. Progress for a deployment is\n\t// considered when a new replica set is created or adopted, and when new pods scale\n\t// up or old pods scale down. Progress is not estimated for paused deployments or\n\t// when progressDeadlineSeconds is not specified.\n\tDeploymentProgressing DeploymentConditionType = \"Progressing\"\n\t// ReplicaFailure is added in a deployment when one of its pods fails to be created\n\t// or deleted.\n\tDeploymentReplicaFailure DeploymentConditionType = \"ReplicaFailure\"\n)\n\n// DeploymentCondition describes the state of a deployment at a certain point.\ntype DeploymentCondition struct {\n\t// Type of deployment condition.\n\tType DeploymentConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=DeploymentConditionType\"`\n\t// Status of the condition, one of True, False, Unknown.\n\tStatus v1.ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus\"`\n\t// The last time this condition was updated.\n\tLastUpdateTime metav1.Time `json:\"lastUpdateTime,omitempty\" protobuf:\"bytes,6,opt,name=lastUpdateTime\"`\n\t// Last time the condition transitioned from one status to another.\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,7,opt,name=lastTransitionTime\"`\n\t// The reason for the condition's last transition.\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// A human readable message indicating details about the transition.\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.6\n// +k8s:prerelease-lifecycle-gen:deprecated=1.8\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,DeploymentList\n\n// DeploymentList is a list of Deployments.\ntype DeploymentList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is the list of Deployments.\n\tItems []Deployment `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.7\n// +k8s:prerelease-lifecycle-gen:deprecated=1.8\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,ControllerRevision\n\n// DEPRECATED - This group version of ControllerRevision is deprecated by apps/v1beta2/ControllerRevision. See the\n// release notes for more information.\n// ControllerRevision implements an immutable snapshot of state data. Clients\n// are responsible for serializing and deserializing the objects that contain\n// their internal state.\n// Once a ControllerRevision has been successfully created, it can not be updated.\n// The API Server will fail validation of all requests that attempt to mutate\n// the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both\n// the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However,\n// it may be subject to name and representation changes in future releases, and clients should not\n// depend on its stability. It is primarily for internal use by controllers.\ntype ControllerRevision struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// data is the serialized representation of the state.\n\tData runtime.RawExtension `json:\"data,omitempty\" protobuf:\"bytes,2,opt,name=data\"`\n\n\t// revision indicates the revision of the state represented by Data.\n\tRevision int64 `json:\"revision\" protobuf:\"varint,3,opt,name=revision\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.7\n// +k8s:prerelease-lifecycle-gen:deprecated=1.8\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,ControllerRevisionList\n\n// ControllerRevisionList is a resource containing a list of ControllerRevision objects.\ntype ControllerRevisionList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is the list of ControllerRevisions\n\tItems []ControllerRevision `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1beta1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_ControllerRevision = map[string]string{\n\t\"\":         \"DEPRECATED - This group version of ControllerRevision is deprecated by apps/v1beta2/ControllerRevision. See the release notes for more information. ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"data\":     \"data is the serialized representation of the state.\",\n\t\"revision\": \"revision indicates the revision of the state represented by Data.\",\n}\n\nfunc (ControllerRevision) SwaggerDoc() map[string]string {\n\treturn map_ControllerRevision\n}\n\nvar map_ControllerRevisionList = map[string]string{\n\t\"\":         \"ControllerRevisionList is a resource containing a list of ControllerRevision objects.\",\n\t\"metadata\": \"More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"Items is the list of ControllerRevisions\",\n}\n\nfunc (ControllerRevisionList) SwaggerDoc() map[string]string {\n\treturn map_ControllerRevisionList\n}\n\nvar map_Deployment = map[string]string{\n\t\"\":         \"DEPRECATED - This group version of Deployment is deprecated by apps/v1beta2/Deployment. See the release notes for more information. Deployment enables declarative updates for Pods and ReplicaSets.\",\n\t\"metadata\": \"Standard object metadata.\",\n\t\"spec\":     \"Specification of the desired behavior of the Deployment.\",\n\t\"status\":   \"Most recently observed status of the Deployment.\",\n}\n\nfunc (Deployment) SwaggerDoc() map[string]string {\n\treturn map_Deployment\n}\n\nvar map_DeploymentCondition = map[string]string{\n\t\"\":                   \"DeploymentCondition describes the state of a deployment at a certain point.\",\n\t\"type\":               \"Type of deployment condition.\",\n\t\"status\":             \"Status of the condition, one of True, False, Unknown.\",\n\t\"lastUpdateTime\":     \"The last time this condition was updated.\",\n\t\"lastTransitionTime\": \"Last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"The reason for the condition's last transition.\",\n\t\"message\":            \"A human readable message indicating details about the transition.\",\n}\n\nfunc (DeploymentCondition) SwaggerDoc() map[string]string {\n\treturn map_DeploymentCondition\n}\n\nvar map_DeploymentList = map[string]string{\n\t\"\":         \"DeploymentList is a list of Deployments.\",\n\t\"metadata\": \"Standard list metadata.\",\n\t\"items\":    \"Items is the list of Deployments.\",\n}\n\nfunc (DeploymentList) SwaggerDoc() map[string]string {\n\treturn map_DeploymentList\n}\n\nvar map_DeploymentRollback = map[string]string{\n\t\"\":                   \"DEPRECATED. DeploymentRollback stores the information required to rollback a deployment.\",\n\t\"name\":               \"Required: This must match the Name of a deployment.\",\n\t\"updatedAnnotations\": \"The annotations to be updated to a deployment\",\n\t\"rollbackTo\":         \"The config of this deployment rollback.\",\n}\n\nfunc (DeploymentRollback) SwaggerDoc() map[string]string {\n\treturn map_DeploymentRollback\n}\n\nvar map_DeploymentSpec = map[string]string{\n\t\"\":                        \"DeploymentSpec is the specification of the desired behavior of the Deployment.\",\n\t\"replicas\":                \"replicas is the number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.\",\n\t\"selector\":                \"selector is the label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment.\",\n\t\"template\":                \"Template describes the pods that will be created. The only allowed template.spec.restartPolicy value is \\\"Always\\\".\",\n\t\"strategy\":                \"The deployment strategy to use to replace existing pods with new ones.\",\n\t\"minReadySeconds\":         \"minReadySeconds is the minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)\",\n\t\"revisionHistoryLimit\":    \"revisionHistoryLimit is the number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 2.\",\n\t\"paused\":                  \"paused indicates that the deployment is paused.\",\n\t\"rollbackTo\":              \"DEPRECATED. rollbackTo is the config this deployment is rolling back to. Will be cleared after rollback is done.\",\n\t\"progressDeadlineSeconds\": \"progressDeadlineSeconds is the maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s.\",\n}\n\nfunc (DeploymentSpec) SwaggerDoc() map[string]string {\n\treturn map_DeploymentSpec\n}\n\nvar map_DeploymentStatus = map[string]string{\n\t\"\":                    \"DeploymentStatus is the most recently observed status of the Deployment.\",\n\t\"observedGeneration\":  \"observedGeneration is the generation observed by the deployment controller.\",\n\t\"replicas\":            \"replicas is the total number of non-terminated pods targeted by this deployment (their labels match the selector).\",\n\t\"updatedReplicas\":     \"updatedReplicas is the total number of non-terminated pods targeted by this deployment that have the desired template spec.\",\n\t\"readyReplicas\":       \"readyReplicas is the number of pods targeted by this Deployment controller with a Ready Condition.\",\n\t\"availableReplicas\":   \"Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.\",\n\t\"unavailableReplicas\": \"unavailableReplicas is the total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created.\",\n\t\"conditions\":          \"Conditions represent the latest available observations of a deployment's current state.\",\n\t\"collisionCount\":      \"collisionCount is the count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.\",\n}\n\nfunc (DeploymentStatus) SwaggerDoc() map[string]string {\n\treturn map_DeploymentStatus\n}\n\nvar map_DeploymentStrategy = map[string]string{\n\t\"\":              \"DeploymentStrategy describes how to replace existing pods with new ones.\",\n\t\"type\":          \"Type of deployment. Can be \\\"Recreate\\\" or \\\"RollingUpdate\\\". Default is RollingUpdate.\",\n\t\"rollingUpdate\": \"Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.\",\n}\n\nfunc (DeploymentStrategy) SwaggerDoc() map[string]string {\n\treturn map_DeploymentStrategy\n}\n\nvar map_RollbackConfig = map[string]string{\n\t\"\":         \"DEPRECATED.\",\n\t\"revision\": \"The revision to rollback to. If set to 0, rollback to the last revision.\",\n}\n\nfunc (RollbackConfig) SwaggerDoc() map[string]string {\n\treturn map_RollbackConfig\n}\n\nvar map_RollingUpdateDeployment = map[string]string{\n\t\"\":               \"Spec to control the desired behavior of rolling update.\",\n\t\"maxUnavailable\": \"The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old ReplicaSet can be scaled down further, followed by scaling up the new ReplicaSet, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.\",\n\t\"maxSurge\":       \"The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new ReplicaSet can be scaled up further, ensuring that total number of pods running at any time during the update is at most 130% of desired pods.\",\n}\n\nfunc (RollingUpdateDeployment) SwaggerDoc() map[string]string {\n\treturn map_RollingUpdateDeployment\n}\n\nvar map_RollingUpdateStatefulSetStrategy = map[string]string{\n\t\"\":               \"RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.\",\n\t\"partition\":      \"Partition indicates the ordinal at which the StatefulSet should be partitioned for updates. During a rolling update, all pods from ordinal Replicas-1 to Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched. This is helpful in being able to do a canary based deployment. The default value is 0.\",\n\t\"maxUnavailable\": \"maxUnavailable is the maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0. Defaults to 1. This field is alpha-level and is only honored by servers that enable the MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable.\",\n}\n\nfunc (RollingUpdateStatefulSetStrategy) SwaggerDoc() map[string]string {\n\treturn map_RollingUpdateStatefulSetStrategy\n}\n\nvar map_Scale = map[string]string{\n\t\"\":         \"Scale represents a scaling request for a resource.\",\n\t\"metadata\": \"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\",\n\t\"spec\":     \"spec defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\",\n\t\"status\":   \"status defines current status of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. Read-only.\",\n}\n\nfunc (Scale) SwaggerDoc() map[string]string {\n\treturn map_Scale\n}\n\nvar map_ScaleSpec = map[string]string{\n\t\"\":         \"ScaleSpec describes the attributes of a scale subresource\",\n\t\"replicas\": \"replicas is the number of observed instances of the scaled object.\",\n}\n\nfunc (ScaleSpec) SwaggerDoc() map[string]string {\n\treturn map_ScaleSpec\n}\n\nvar map_ScaleStatus = map[string]string{\n\t\"\":               \"ScaleStatus represents the current status of a scale subresource.\",\n\t\"replicas\":       \"replias is the actual number of observed instances of the scaled object.\",\n\t\"selector\":       \"selector is a label query over pods that should match the replicas count. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\",\n\t\"targetSelector\": \"targetSelector is the label selector for pods that should match the replicas count. This is a serializated version of both map-based and more expressive set-based selectors. This is done to avoid introspection in the clients. The string will be in the same format as the query-param syntax. If the target type only supports map-based selectors, both this field and map-based selector field are populated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\n}\n\nfunc (ScaleStatus) SwaggerDoc() map[string]string {\n\treturn map_ScaleStatus\n}\n\nvar map_StatefulSet = map[string]string{\n\t\"\":       \"DEPRECATED - This group version of StatefulSet is deprecated by apps/v1beta2/StatefulSet. See the release notes for more information. StatefulSet represents a set of pods with consistent identities. Identities are defined as:\\n  - Network: A single stable DNS and hostname.\\n  - Storage: As many VolumeClaims as requested.\\n\\nThe StatefulSet guarantees that a given network identity will always map to the same storage identity.\",\n\t\"spec\":   \"Spec defines the desired identities of pods in this set.\",\n\t\"status\": \"Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time.\",\n}\n\nfunc (StatefulSet) SwaggerDoc() map[string]string {\n\treturn map_StatefulSet\n}\n\nvar map_StatefulSetCondition = map[string]string{\n\t\"\":                   \"StatefulSetCondition describes the state of a statefulset at a certain point.\",\n\t\"type\":               \"Type of statefulset condition.\",\n\t\"status\":             \"Status of the condition, one of True, False, Unknown.\",\n\t\"lastTransitionTime\": \"Last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"The reason for the condition's last transition.\",\n\t\"message\":            \"A human readable message indicating details about the transition.\",\n}\n\nfunc (StatefulSetCondition) SwaggerDoc() map[string]string {\n\treturn map_StatefulSetCondition\n}\n\nvar map_StatefulSetList = map[string]string{\n\t\"\": \"StatefulSetList is a collection of StatefulSets.\",\n}\n\nfunc (StatefulSetList) SwaggerDoc() map[string]string {\n\treturn map_StatefulSetList\n}\n\nvar map_StatefulSetOrdinals = map[string]string{\n\t\"\":      \"StatefulSetOrdinals describes the policy used for replica ordinal assignment in this StatefulSet.\",\n\t\"start\": \"start is the number representing the first replica's index. It may be used to number replicas from an alternate index (eg: 1-indexed) over the default 0-indexed names, or to orchestrate progressive movement of replicas from one StatefulSet to another. If set, replica indices will be in the range:\\n  [.spec.ordinals.start, .spec.ordinals.start + .spec.replicas).\\nIf unset, defaults to 0. Replica indices will be in the range:\\n  [0, .spec.replicas).\",\n}\n\nfunc (StatefulSetOrdinals) SwaggerDoc() map[string]string {\n\treturn map_StatefulSetOrdinals\n}\n\nvar map_StatefulSetPersistentVolumeClaimRetentionPolicy = map[string]string{\n\t\"\":            \"StatefulSetPersistentVolumeClaimRetentionPolicy describes the policy used for PVCs created from the StatefulSet VolumeClaimTemplates.\",\n\t\"whenDeleted\": \"whenDeleted specifies what happens to PVCs created from StatefulSet VolumeClaimTemplates when the StatefulSet is deleted. The default policy of `Retain` causes PVCs to not be affected by StatefulSet deletion. The `Delete` policy causes those PVCs to be deleted.\",\n\t\"whenScaled\":  \"whenScaled specifies what happens to PVCs created from StatefulSet VolumeClaimTemplates when the StatefulSet is scaled down. The default policy of `Retain` causes PVCs to not be affected by a scaledown. The `Delete` policy causes the associated PVCs for any excess pods above the replica count to be deleted.\",\n}\n\nfunc (StatefulSetPersistentVolumeClaimRetentionPolicy) SwaggerDoc() map[string]string {\n\treturn map_StatefulSetPersistentVolumeClaimRetentionPolicy\n}\n\nvar map_StatefulSetSpec = map[string]string{\n\t\"\":                                     \"A StatefulSetSpec is the specification of a StatefulSet.\",\n\t\"replicas\":                             \"replicas is the desired number of replicas of the given Template. These are replicas in the sense that they are instantiations of the same Template, but individual replicas also have a consistent identity. If unspecified, defaults to 1.\",\n\t\"selector\":                             \"selector is a label query over pods that should match the replica count. If empty, defaulted to labels on the pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\n\t\"template\":                             \"template is the object that describes the pod that will be created if insufficient replicas are detected. Each pod stamped out by the StatefulSet will fulfill this Template, but have a unique identity from the rest of the StatefulSet. Each pod will be named with the format <statefulsetname>-<podindex>. For example, a pod in a StatefulSet named \\\"web\\\" with index number \\\"3\\\" would be named \\\"web-3\\\".\",\n\t\"volumeClaimTemplates\":                 \"volumeClaimTemplates is a list of claims that pods are allowed to reference. The StatefulSet controller is responsible for mapping network identities to claims in a way that maintains the identity of a pod. Every claim in this list must have at least one matching (by name) volumeMount in one container in the template. A claim in this list takes precedence over any volumes in the template, with the same name.\",\n\t\"serviceName\":                          \"serviceName is the name of the service that governs this StatefulSet. This service must exist before the StatefulSet, and is responsible for the network identity of the set. Pods get DNS/hostnames that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local where \\\"pod-specific-string\\\" is managed by the StatefulSet controller.\",\n\t\"podManagementPolicy\":                  \"podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is `OrderedReady`, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is `Parallel` which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once.\",\n\t\"updateStrategy\":                       \"updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template.\",\n\t\"revisionHistoryLimit\":                 \"revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet's revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10.\",\n\t\"minReadySeconds\":                      \"minReadySeconds is the minimum number of seconds for which a newly created pod should be ready without any of its container crashing for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)\",\n\t\"persistentVolumeClaimRetentionPolicy\": \"PersistentVolumeClaimRetentionPolicy describes the policy used for PVCs created from the StatefulSet VolumeClaimTemplates.\",\n\t\"ordinals\":                             \"ordinals controls the numbering of replica indices in a StatefulSet. The default ordinals behavior assigns a \\\"0\\\" index to the first replica and increments the index by one for each additional replica requested.\",\n}\n\nfunc (StatefulSetSpec) SwaggerDoc() map[string]string {\n\treturn map_StatefulSetSpec\n}\n\nvar map_StatefulSetStatus = map[string]string{\n\t\"\":                   \"StatefulSetStatus represents the current state of a StatefulSet.\",\n\t\"observedGeneration\": \"observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the StatefulSet's generation, which is updated on mutation by the API Server.\",\n\t\"replicas\":           \"replicas is the number of Pods created by the StatefulSet controller.\",\n\t\"readyReplicas\":      \"readyReplicas is the number of pods created by this StatefulSet controller with a Ready Condition.\",\n\t\"currentReplicas\":    \"currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.\",\n\t\"updatedReplicas\":    \"updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.\",\n\t\"currentRevision\":    \"currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).\",\n\t\"updateRevision\":     \"updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)\",\n\t\"collisionCount\":     \"collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.\",\n\t\"conditions\":         \"conditions represent the latest available observations of a statefulset's current state.\",\n\t\"availableReplicas\":  \"availableReplicas is the total number of available pods (ready for at least minReadySeconds) targeted by this StatefulSet.\",\n}\n\nfunc (StatefulSetStatus) SwaggerDoc() map[string]string {\n\treturn map_StatefulSetStatus\n}\n\nvar map_StatefulSetUpdateStrategy = map[string]string{\n\t\"\":              \"StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.\",\n\t\"type\":          \"Type indicates the type of the StatefulSetUpdateStrategy.\",\n\t\"rollingUpdate\": \"RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.\",\n}\n\nfunc (StatefulSetUpdateStrategy) SwaggerDoc() map[string]string {\n\treturn map_StatefulSetUpdateStrategy\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1beta1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ControllerRevision) DeepCopyInto(out *ControllerRevision) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Data.DeepCopyInto(&out.Data)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerRevision.\nfunc (in *ControllerRevision) DeepCopy() *ControllerRevision {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ControllerRevision)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ControllerRevision) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ControllerRevisionList) DeepCopyInto(out *ControllerRevisionList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ControllerRevision, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerRevisionList.\nfunc (in *ControllerRevisionList) DeepCopy() *ControllerRevisionList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ControllerRevisionList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ControllerRevisionList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Deployment) DeepCopyInto(out *Deployment) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Deployment.\nfunc (in *Deployment) DeepCopy() *Deployment {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Deployment)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Deployment) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentCondition) DeepCopyInto(out *DeploymentCondition) {\n\t*out = *in\n\tin.LastUpdateTime.DeepCopyInto(&out.LastUpdateTime)\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentCondition.\nfunc (in *DeploymentCondition) DeepCopy() *DeploymentCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentList) DeepCopyInto(out *DeploymentList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Deployment, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentList.\nfunc (in *DeploymentList) DeepCopy() *DeploymentList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *DeploymentList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentRollback) DeepCopyInto(out *DeploymentRollback) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tif in.UpdatedAnnotations != nil {\n\t\tin, out := &in.UpdatedAnnotations, &out.UpdatedAnnotations\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tout.RollbackTo = in.RollbackTo\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentRollback.\nfunc (in *DeploymentRollback) DeepCopy() *DeploymentRollback {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentRollback)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *DeploymentRollback) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentSpec) DeepCopyInto(out *DeploymentSpec) {\n\t*out = *in\n\tif in.Replicas != nil {\n\t\tin, out := &in.Replicas, &out.Replicas\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tin.Template.DeepCopyInto(&out.Template)\n\tin.Strategy.DeepCopyInto(&out.Strategy)\n\tif in.RevisionHistoryLimit != nil {\n\t\tin, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.RollbackTo != nil {\n\t\tin, out := &in.RollbackTo, &out.RollbackTo\n\t\t*out = new(RollbackConfig)\n\t\t**out = **in\n\t}\n\tif in.ProgressDeadlineSeconds != nil {\n\t\tin, out := &in.ProgressDeadlineSeconds, &out.ProgressDeadlineSeconds\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentSpec.\nfunc (in *DeploymentSpec) DeepCopy() *DeploymentSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentStatus) DeepCopyInto(out *DeploymentStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]DeploymentCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.CollisionCount != nil {\n\t\tin, out := &in.CollisionCount, &out.CollisionCount\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentStatus.\nfunc (in *DeploymentStatus) DeepCopy() *DeploymentStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentStrategy) DeepCopyInto(out *DeploymentStrategy) {\n\t*out = *in\n\tif in.RollingUpdate != nil {\n\t\tin, out := &in.RollingUpdate, &out.RollingUpdate\n\t\t*out = new(RollingUpdateDeployment)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentStrategy.\nfunc (in *DeploymentStrategy) DeepCopy() *DeploymentStrategy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentStrategy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RollbackConfig) DeepCopyInto(out *RollbackConfig) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollbackConfig.\nfunc (in *RollbackConfig) DeepCopy() *RollbackConfig {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RollbackConfig)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RollingUpdateDeployment) DeepCopyInto(out *RollingUpdateDeployment) {\n\t*out = *in\n\tif in.MaxUnavailable != nil {\n\t\tin, out := &in.MaxUnavailable, &out.MaxUnavailable\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\tif in.MaxSurge != nil {\n\t\tin, out := &in.MaxSurge, &out.MaxSurge\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollingUpdateDeployment.\nfunc (in *RollingUpdateDeployment) DeepCopy() *RollingUpdateDeployment {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RollingUpdateDeployment)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RollingUpdateStatefulSetStrategy) DeepCopyInto(out *RollingUpdateStatefulSetStrategy) {\n\t*out = *in\n\tif in.Partition != nil {\n\t\tin, out := &in.Partition, &out.Partition\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.MaxUnavailable != nil {\n\t\tin, out := &in.MaxUnavailable, &out.MaxUnavailable\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollingUpdateStatefulSetStrategy.\nfunc (in *RollingUpdateStatefulSetStrategy) DeepCopy() *RollingUpdateStatefulSetStrategy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RollingUpdateStatefulSetStrategy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Scale) DeepCopyInto(out *Scale) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tout.Spec = in.Spec\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Scale.\nfunc (in *Scale) DeepCopy() *Scale {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Scale)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Scale) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ScaleSpec) DeepCopyInto(out *ScaleSpec) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleSpec.\nfunc (in *ScaleSpec) DeepCopy() *ScaleSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ScaleSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ScaleStatus) DeepCopyInto(out *ScaleStatus) {\n\t*out = *in\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleStatus.\nfunc (in *ScaleStatus) DeepCopy() *ScaleStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ScaleStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSet) DeepCopyInto(out *StatefulSet) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSet.\nfunc (in *StatefulSet) DeepCopy() *StatefulSet {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSet)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *StatefulSet) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSetCondition) DeepCopyInto(out *StatefulSetCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetCondition.\nfunc (in *StatefulSetCondition) DeepCopy() *StatefulSetCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSetCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSetList) DeepCopyInto(out *StatefulSetList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]StatefulSet, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetList.\nfunc (in *StatefulSetList) DeepCopy() *StatefulSetList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSetList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *StatefulSetList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSetOrdinals) DeepCopyInto(out *StatefulSetOrdinals) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetOrdinals.\nfunc (in *StatefulSetOrdinals) DeepCopy() *StatefulSetOrdinals {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSetOrdinals)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSetPersistentVolumeClaimRetentionPolicy) DeepCopyInto(out *StatefulSetPersistentVolumeClaimRetentionPolicy) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetPersistentVolumeClaimRetentionPolicy.\nfunc (in *StatefulSetPersistentVolumeClaimRetentionPolicy) DeepCopy() *StatefulSetPersistentVolumeClaimRetentionPolicy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSetPersistentVolumeClaimRetentionPolicy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSetSpec) DeepCopyInto(out *StatefulSetSpec) {\n\t*out = *in\n\tif in.Replicas != nil {\n\t\tin, out := &in.Replicas, &out.Replicas\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tin.Template.DeepCopyInto(&out.Template)\n\tif in.VolumeClaimTemplates != nil {\n\t\tin, out := &in.VolumeClaimTemplates, &out.VolumeClaimTemplates\n\t\t*out = make([]corev1.PersistentVolumeClaim, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tin.UpdateStrategy.DeepCopyInto(&out.UpdateStrategy)\n\tif in.RevisionHistoryLimit != nil {\n\t\tin, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.PersistentVolumeClaimRetentionPolicy != nil {\n\t\tin, out := &in.PersistentVolumeClaimRetentionPolicy, &out.PersistentVolumeClaimRetentionPolicy\n\t\t*out = new(StatefulSetPersistentVolumeClaimRetentionPolicy)\n\t\t**out = **in\n\t}\n\tif in.Ordinals != nil {\n\t\tin, out := &in.Ordinals, &out.Ordinals\n\t\t*out = new(StatefulSetOrdinals)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetSpec.\nfunc (in *StatefulSetSpec) DeepCopy() *StatefulSetSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSetSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSetStatus) DeepCopyInto(out *StatefulSetStatus) {\n\t*out = *in\n\tif in.ObservedGeneration != nil {\n\t\tin, out := &in.ObservedGeneration, &out.ObservedGeneration\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.CollisionCount != nil {\n\t\tin, out := &in.CollisionCount, &out.CollisionCount\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]StatefulSetCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetStatus.\nfunc (in *StatefulSetStatus) DeepCopy() *StatefulSetStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSetStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSetUpdateStrategy) DeepCopyInto(out *StatefulSetUpdateStrategy) {\n\t*out = *in\n\tif in.RollingUpdate != nil {\n\t\tin, out := &in.RollingUpdate, &out.RollingUpdate\n\t\t*out = new(RollingUpdateStatefulSetStrategy)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetUpdateStrategy.\nfunc (in *StatefulSetUpdateStrategy) DeepCopy() *StatefulSetUpdateStrategy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSetUpdateStrategy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1beta1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ControllerRevision) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 7\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ControllerRevision) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *ControllerRevision) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"ControllerRevision\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ControllerRevision) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ControllerRevisionList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 7\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ControllerRevisionList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *ControllerRevisionList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"ControllerRevisionList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ControllerRevisionList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *Deployment) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 6\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *Deployment) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *Deployment) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"Deployment\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *Deployment) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *DeploymentList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 6\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *DeploymentList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *DeploymentList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"DeploymentList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *DeploymentList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *DeploymentRollback) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 6\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *DeploymentRollback) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *DeploymentRollback) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"DeploymentRollback\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *DeploymentRollback) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *Scale) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 6\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *Scale) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *Scale) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"autoscaling\", Version: \"v1\", Kind: \"Scale\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *Scale) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *StatefulSet) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 5\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *StatefulSet) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *StatefulSet) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"StatefulSet\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *StatefulSet) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *StatefulSetList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 5\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *StatefulSetList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *StatefulSetList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"StatefulSetList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *StatefulSetList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1beta2/doc.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\npackage v1beta2 // import \"k8s.io/api/apps/v1beta2\"\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1beta2/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/apps/v1beta2/generated.proto\n\npackage v1beta2\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\tv11 \"k8s.io/api/core/v1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *ControllerRevision) Reset()      { *m = ControllerRevision{} }\nfunc (*ControllerRevision) ProtoMessage() {}\nfunc (*ControllerRevision) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c423c016abf485d4, []int{0}\n}\nfunc (m *ControllerRevision) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ControllerRevision) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ControllerRevision) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ControllerRevision.Merge(m, src)\n}\nfunc (m *ControllerRevision) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ControllerRevision) XXX_DiscardUnknown() {\n\txxx_messageInfo_ControllerRevision.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ControllerRevision proto.InternalMessageInfo\n\nfunc (m *ControllerRevisionList) Reset()      { *m = ControllerRevisionList{} }\nfunc (*ControllerRevisionList) ProtoMessage() {}\nfunc (*ControllerRevisionList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c423c016abf485d4, []int{1}\n}\nfunc (m *ControllerRevisionList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ControllerRevisionList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ControllerRevisionList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ControllerRevisionList.Merge(m, src)\n}\nfunc (m *ControllerRevisionList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ControllerRevisionList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ControllerRevisionList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ControllerRevisionList proto.InternalMessageInfo\n\nfunc (m *DaemonSet) Reset()      { *m = DaemonSet{} }\nfunc (*DaemonSet) ProtoMessage() {}\nfunc (*DaemonSet) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c423c016abf485d4, []int{2}\n}\nfunc (m *DaemonSet) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DaemonSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DaemonSet) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DaemonSet.Merge(m, src)\n}\nfunc (m *DaemonSet) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DaemonSet) XXX_DiscardUnknown() {\n\txxx_messageInfo_DaemonSet.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DaemonSet proto.InternalMessageInfo\n\nfunc (m *DaemonSetCondition) Reset()      { *m = DaemonSetCondition{} }\nfunc (*DaemonSetCondition) ProtoMessage() {}\nfunc (*DaemonSetCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c423c016abf485d4, []int{3}\n}\nfunc (m *DaemonSetCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DaemonSetCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DaemonSetCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DaemonSetCondition.Merge(m, src)\n}\nfunc (m *DaemonSetCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DaemonSetCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_DaemonSetCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DaemonSetCondition proto.InternalMessageInfo\n\nfunc (m *DaemonSetList) Reset()      { *m = DaemonSetList{} }\nfunc (*DaemonSetList) ProtoMessage() {}\nfunc (*DaemonSetList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c423c016abf485d4, []int{4}\n}\nfunc (m *DaemonSetList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DaemonSetList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DaemonSetList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DaemonSetList.Merge(m, src)\n}\nfunc (m *DaemonSetList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DaemonSetList) XXX_DiscardUnknown() {\n\txxx_messageInfo_DaemonSetList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DaemonSetList proto.InternalMessageInfo\n\nfunc (m *DaemonSetSpec) Reset()      { *m = DaemonSetSpec{} }\nfunc (*DaemonSetSpec) ProtoMessage() {}\nfunc (*DaemonSetSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c423c016abf485d4, []int{5}\n}\nfunc (m *DaemonSetSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DaemonSetSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DaemonSetSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DaemonSetSpec.Merge(m, src)\n}\nfunc (m *DaemonSetSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DaemonSetSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_DaemonSetSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DaemonSetSpec proto.InternalMessageInfo\n\nfunc (m *DaemonSetStatus) Reset()      { *m = DaemonSetStatus{} }\nfunc (*DaemonSetStatus) ProtoMessage() {}\nfunc (*DaemonSetStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c423c016abf485d4, []int{6}\n}\nfunc (m *DaemonSetStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DaemonSetStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DaemonSetStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DaemonSetStatus.Merge(m, src)\n}\nfunc (m *DaemonSetStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DaemonSetStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_DaemonSetStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DaemonSetStatus proto.InternalMessageInfo\n\nfunc (m *DaemonSetUpdateStrategy) Reset()      { *m = DaemonSetUpdateStrategy{} }\nfunc (*DaemonSetUpdateStrategy) ProtoMessage() {}\nfunc (*DaemonSetUpdateStrategy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c423c016abf485d4, []int{7}\n}\nfunc (m *DaemonSetUpdateStrategy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DaemonSetUpdateStrategy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DaemonSetUpdateStrategy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DaemonSetUpdateStrategy.Merge(m, src)\n}\nfunc (m *DaemonSetUpdateStrategy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DaemonSetUpdateStrategy) XXX_DiscardUnknown() {\n\txxx_messageInfo_DaemonSetUpdateStrategy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DaemonSetUpdateStrategy proto.InternalMessageInfo\n\nfunc (m *Deployment) Reset()      { *m = Deployment{} }\nfunc (*Deployment) ProtoMessage() {}\nfunc (*Deployment) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c423c016abf485d4, []int{8}\n}\nfunc (m *Deployment) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Deployment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Deployment) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Deployment.Merge(m, src)\n}\nfunc (m *Deployment) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Deployment) XXX_DiscardUnknown() {\n\txxx_messageInfo_Deployment.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Deployment proto.InternalMessageInfo\n\nfunc (m *DeploymentCondition) Reset()      { *m = DeploymentCondition{} }\nfunc (*DeploymentCondition) ProtoMessage() {}\nfunc (*DeploymentCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c423c016abf485d4, []int{9}\n}\nfunc (m *DeploymentCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentCondition.Merge(m, src)\n}\nfunc (m *DeploymentCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentCondition proto.InternalMessageInfo\n\nfunc (m *DeploymentList) Reset()      { *m = DeploymentList{} }\nfunc (*DeploymentList) ProtoMessage() {}\nfunc (*DeploymentList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c423c016abf485d4, []int{10}\n}\nfunc (m *DeploymentList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentList.Merge(m, src)\n}\nfunc (m *DeploymentList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentList) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentList proto.InternalMessageInfo\n\nfunc (m *DeploymentSpec) Reset()      { *m = DeploymentSpec{} }\nfunc (*DeploymentSpec) ProtoMessage() {}\nfunc (*DeploymentSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c423c016abf485d4, []int{11}\n}\nfunc (m *DeploymentSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentSpec.Merge(m, src)\n}\nfunc (m *DeploymentSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentSpec proto.InternalMessageInfo\n\nfunc (m *DeploymentStatus) Reset()      { *m = DeploymentStatus{} }\nfunc (*DeploymentStatus) ProtoMessage() {}\nfunc (*DeploymentStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c423c016abf485d4, []int{12}\n}\nfunc (m *DeploymentStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentStatus.Merge(m, src)\n}\nfunc (m *DeploymentStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentStatus proto.InternalMessageInfo\n\nfunc (m *DeploymentStrategy) Reset()      { *m = DeploymentStrategy{} }\nfunc (*DeploymentStrategy) ProtoMessage() {}\nfunc (*DeploymentStrategy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c423c016abf485d4, []int{13}\n}\nfunc (m *DeploymentStrategy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentStrategy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentStrategy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentStrategy.Merge(m, src)\n}\nfunc (m *DeploymentStrategy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentStrategy) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentStrategy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentStrategy proto.InternalMessageInfo\n\nfunc (m *ReplicaSet) Reset()      { *m = ReplicaSet{} }\nfunc (*ReplicaSet) ProtoMessage() {}\nfunc (*ReplicaSet) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c423c016abf485d4, []int{14}\n}\nfunc (m *ReplicaSet) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ReplicaSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ReplicaSet) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ReplicaSet.Merge(m, src)\n}\nfunc (m *ReplicaSet) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ReplicaSet) XXX_DiscardUnknown() {\n\txxx_messageInfo_ReplicaSet.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ReplicaSet proto.InternalMessageInfo\n\nfunc (m *ReplicaSetCondition) Reset()      { *m = ReplicaSetCondition{} }\nfunc (*ReplicaSetCondition) ProtoMessage() {}\nfunc (*ReplicaSetCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c423c016abf485d4, []int{15}\n}\nfunc (m *ReplicaSetCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ReplicaSetCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ReplicaSetCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ReplicaSetCondition.Merge(m, src)\n}\nfunc (m *ReplicaSetCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ReplicaSetCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_ReplicaSetCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ReplicaSetCondition proto.InternalMessageInfo\n\nfunc (m *ReplicaSetList) Reset()      { *m = ReplicaSetList{} }\nfunc (*ReplicaSetList) ProtoMessage() {}\nfunc (*ReplicaSetList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c423c016abf485d4, []int{16}\n}\nfunc (m *ReplicaSetList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ReplicaSetList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ReplicaSetList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ReplicaSetList.Merge(m, src)\n}\nfunc (m *ReplicaSetList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ReplicaSetList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ReplicaSetList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ReplicaSetList proto.InternalMessageInfo\n\nfunc (m *ReplicaSetSpec) Reset()      { *m = ReplicaSetSpec{} }\nfunc (*ReplicaSetSpec) ProtoMessage() {}\nfunc (*ReplicaSetSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c423c016abf485d4, []int{17}\n}\nfunc (m *ReplicaSetSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ReplicaSetSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ReplicaSetSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ReplicaSetSpec.Merge(m, src)\n}\nfunc (m *ReplicaSetSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ReplicaSetSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ReplicaSetSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ReplicaSetSpec proto.InternalMessageInfo\n\nfunc (m *ReplicaSetStatus) Reset()      { *m = ReplicaSetStatus{} }\nfunc (*ReplicaSetStatus) ProtoMessage() {}\nfunc (*ReplicaSetStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c423c016abf485d4, []int{18}\n}\nfunc (m *ReplicaSetStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ReplicaSetStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ReplicaSetStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ReplicaSetStatus.Merge(m, src)\n}\nfunc (m *ReplicaSetStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ReplicaSetStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ReplicaSetStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ReplicaSetStatus proto.InternalMessageInfo\n\nfunc (m *RollingUpdateDaemonSet) Reset()      { *m = RollingUpdateDaemonSet{} }\nfunc (*RollingUpdateDaemonSet) ProtoMessage() {}\nfunc (*RollingUpdateDaemonSet) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c423c016abf485d4, []int{19}\n}\nfunc (m *RollingUpdateDaemonSet) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RollingUpdateDaemonSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RollingUpdateDaemonSet) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RollingUpdateDaemonSet.Merge(m, src)\n}\nfunc (m *RollingUpdateDaemonSet) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RollingUpdateDaemonSet) XXX_DiscardUnknown() {\n\txxx_messageInfo_RollingUpdateDaemonSet.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RollingUpdateDaemonSet proto.InternalMessageInfo\n\nfunc (m *RollingUpdateDeployment) Reset()      { *m = RollingUpdateDeployment{} }\nfunc (*RollingUpdateDeployment) ProtoMessage() {}\nfunc (*RollingUpdateDeployment) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c423c016abf485d4, []int{20}\n}\nfunc (m *RollingUpdateDeployment) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RollingUpdateDeployment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RollingUpdateDeployment) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RollingUpdateDeployment.Merge(m, src)\n}\nfunc (m *RollingUpdateDeployment) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RollingUpdateDeployment) XXX_DiscardUnknown() {\n\txxx_messageInfo_RollingUpdateDeployment.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RollingUpdateDeployment proto.InternalMessageInfo\n\nfunc (m *RollingUpdateStatefulSetStrategy) Reset()      { *m = RollingUpdateStatefulSetStrategy{} }\nfunc (*RollingUpdateStatefulSetStrategy) ProtoMessage() {}\nfunc (*RollingUpdateStatefulSetStrategy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c423c016abf485d4, []int{21}\n}\nfunc (m *RollingUpdateStatefulSetStrategy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RollingUpdateStatefulSetStrategy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RollingUpdateStatefulSetStrategy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RollingUpdateStatefulSetStrategy.Merge(m, src)\n}\nfunc (m *RollingUpdateStatefulSetStrategy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RollingUpdateStatefulSetStrategy) XXX_DiscardUnknown() {\n\txxx_messageInfo_RollingUpdateStatefulSetStrategy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RollingUpdateStatefulSetStrategy proto.InternalMessageInfo\n\nfunc (m *Scale) Reset()      { *m = Scale{} }\nfunc (*Scale) ProtoMessage() {}\nfunc (*Scale) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c423c016abf485d4, []int{22}\n}\nfunc (m *Scale) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Scale) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Scale) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Scale.Merge(m, src)\n}\nfunc (m *Scale) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Scale) XXX_DiscardUnknown() {\n\txxx_messageInfo_Scale.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Scale proto.InternalMessageInfo\n\nfunc (m *ScaleSpec) Reset()      { *m = ScaleSpec{} }\nfunc (*ScaleSpec) ProtoMessage() {}\nfunc (*ScaleSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c423c016abf485d4, []int{23}\n}\nfunc (m *ScaleSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ScaleSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ScaleSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ScaleSpec.Merge(m, src)\n}\nfunc (m *ScaleSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ScaleSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ScaleSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ScaleSpec proto.InternalMessageInfo\n\nfunc (m *ScaleStatus) Reset()      { *m = ScaleStatus{} }\nfunc (*ScaleStatus) ProtoMessage() {}\nfunc (*ScaleStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c423c016abf485d4, []int{24}\n}\nfunc (m *ScaleStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ScaleStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ScaleStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ScaleStatus.Merge(m, src)\n}\nfunc (m *ScaleStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ScaleStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ScaleStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ScaleStatus proto.InternalMessageInfo\n\nfunc (m *StatefulSet) Reset()      { *m = StatefulSet{} }\nfunc (*StatefulSet) ProtoMessage() {}\nfunc (*StatefulSet) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c423c016abf485d4, []int{25}\n}\nfunc (m *StatefulSet) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSet) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSet.Merge(m, src)\n}\nfunc (m *StatefulSet) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSet) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSet.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSet proto.InternalMessageInfo\n\nfunc (m *StatefulSetCondition) Reset()      { *m = StatefulSetCondition{} }\nfunc (*StatefulSetCondition) ProtoMessage() {}\nfunc (*StatefulSetCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c423c016abf485d4, []int{26}\n}\nfunc (m *StatefulSetCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSetCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSetCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSetCondition.Merge(m, src)\n}\nfunc (m *StatefulSetCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSetCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSetCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSetCondition proto.InternalMessageInfo\n\nfunc (m *StatefulSetList) Reset()      { *m = StatefulSetList{} }\nfunc (*StatefulSetList) ProtoMessage() {}\nfunc (*StatefulSetList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c423c016abf485d4, []int{27}\n}\nfunc (m *StatefulSetList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSetList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSetList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSetList.Merge(m, src)\n}\nfunc (m *StatefulSetList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSetList) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSetList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSetList proto.InternalMessageInfo\n\nfunc (m *StatefulSetOrdinals) Reset()      { *m = StatefulSetOrdinals{} }\nfunc (*StatefulSetOrdinals) ProtoMessage() {}\nfunc (*StatefulSetOrdinals) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c423c016abf485d4, []int{28}\n}\nfunc (m *StatefulSetOrdinals) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSetOrdinals) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSetOrdinals) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSetOrdinals.Merge(m, src)\n}\nfunc (m *StatefulSetOrdinals) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSetOrdinals) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSetOrdinals.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSetOrdinals proto.InternalMessageInfo\n\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) Reset() {\n\t*m = StatefulSetPersistentVolumeClaimRetentionPolicy{}\n}\nfunc (*StatefulSetPersistentVolumeClaimRetentionPolicy) ProtoMessage() {}\nfunc (*StatefulSetPersistentVolumeClaimRetentionPolicy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c423c016abf485d4, []int{29}\n}\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSetPersistentVolumeClaimRetentionPolicy.Merge(m, src)\n}\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSetPersistentVolumeClaimRetentionPolicy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSetPersistentVolumeClaimRetentionPolicy proto.InternalMessageInfo\n\nfunc (m *StatefulSetSpec) Reset()      { *m = StatefulSetSpec{} }\nfunc (*StatefulSetSpec) ProtoMessage() {}\nfunc (*StatefulSetSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c423c016abf485d4, []int{30}\n}\nfunc (m *StatefulSetSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSetSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSetSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSetSpec.Merge(m, src)\n}\nfunc (m *StatefulSetSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSetSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSetSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSetSpec proto.InternalMessageInfo\n\nfunc (m *StatefulSetStatus) Reset()      { *m = StatefulSetStatus{} }\nfunc (*StatefulSetStatus) ProtoMessage() {}\nfunc (*StatefulSetStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c423c016abf485d4, []int{31}\n}\nfunc (m *StatefulSetStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSetStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSetStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSetStatus.Merge(m, src)\n}\nfunc (m *StatefulSetStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSetStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSetStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSetStatus proto.InternalMessageInfo\n\nfunc (m *StatefulSetUpdateStrategy) Reset()      { *m = StatefulSetUpdateStrategy{} }\nfunc (*StatefulSetUpdateStrategy) ProtoMessage() {}\nfunc (*StatefulSetUpdateStrategy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c423c016abf485d4, []int{32}\n}\nfunc (m *StatefulSetUpdateStrategy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatefulSetUpdateStrategy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatefulSetUpdateStrategy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatefulSetUpdateStrategy.Merge(m, src)\n}\nfunc (m *StatefulSetUpdateStrategy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatefulSetUpdateStrategy) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatefulSetUpdateStrategy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatefulSetUpdateStrategy proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*ControllerRevision)(nil), \"k8s.io.api.apps.v1beta2.ControllerRevision\")\n\tproto.RegisterType((*ControllerRevisionList)(nil), \"k8s.io.api.apps.v1beta2.ControllerRevisionList\")\n\tproto.RegisterType((*DaemonSet)(nil), \"k8s.io.api.apps.v1beta2.DaemonSet\")\n\tproto.RegisterType((*DaemonSetCondition)(nil), \"k8s.io.api.apps.v1beta2.DaemonSetCondition\")\n\tproto.RegisterType((*DaemonSetList)(nil), \"k8s.io.api.apps.v1beta2.DaemonSetList\")\n\tproto.RegisterType((*DaemonSetSpec)(nil), \"k8s.io.api.apps.v1beta2.DaemonSetSpec\")\n\tproto.RegisterType((*DaemonSetStatus)(nil), \"k8s.io.api.apps.v1beta2.DaemonSetStatus\")\n\tproto.RegisterType((*DaemonSetUpdateStrategy)(nil), \"k8s.io.api.apps.v1beta2.DaemonSetUpdateStrategy\")\n\tproto.RegisterType((*Deployment)(nil), \"k8s.io.api.apps.v1beta2.Deployment\")\n\tproto.RegisterType((*DeploymentCondition)(nil), \"k8s.io.api.apps.v1beta2.DeploymentCondition\")\n\tproto.RegisterType((*DeploymentList)(nil), \"k8s.io.api.apps.v1beta2.DeploymentList\")\n\tproto.RegisterType((*DeploymentSpec)(nil), \"k8s.io.api.apps.v1beta2.DeploymentSpec\")\n\tproto.RegisterType((*DeploymentStatus)(nil), \"k8s.io.api.apps.v1beta2.DeploymentStatus\")\n\tproto.RegisterType((*DeploymentStrategy)(nil), \"k8s.io.api.apps.v1beta2.DeploymentStrategy\")\n\tproto.RegisterType((*ReplicaSet)(nil), \"k8s.io.api.apps.v1beta2.ReplicaSet\")\n\tproto.RegisterType((*ReplicaSetCondition)(nil), \"k8s.io.api.apps.v1beta2.ReplicaSetCondition\")\n\tproto.RegisterType((*ReplicaSetList)(nil), \"k8s.io.api.apps.v1beta2.ReplicaSetList\")\n\tproto.RegisterType((*ReplicaSetSpec)(nil), \"k8s.io.api.apps.v1beta2.ReplicaSetSpec\")\n\tproto.RegisterType((*ReplicaSetStatus)(nil), \"k8s.io.api.apps.v1beta2.ReplicaSetStatus\")\n\tproto.RegisterType((*RollingUpdateDaemonSet)(nil), \"k8s.io.api.apps.v1beta2.RollingUpdateDaemonSet\")\n\tproto.RegisterType((*RollingUpdateDeployment)(nil), \"k8s.io.api.apps.v1beta2.RollingUpdateDeployment\")\n\tproto.RegisterType((*RollingUpdateStatefulSetStrategy)(nil), \"k8s.io.api.apps.v1beta2.RollingUpdateStatefulSetStrategy\")\n\tproto.RegisterType((*Scale)(nil), \"k8s.io.api.apps.v1beta2.Scale\")\n\tproto.RegisterType((*ScaleSpec)(nil), \"k8s.io.api.apps.v1beta2.ScaleSpec\")\n\tproto.RegisterType((*ScaleStatus)(nil), \"k8s.io.api.apps.v1beta2.ScaleStatus\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.apps.v1beta2.ScaleStatus.SelectorEntry\")\n\tproto.RegisterType((*StatefulSet)(nil), \"k8s.io.api.apps.v1beta2.StatefulSet\")\n\tproto.RegisterType((*StatefulSetCondition)(nil), \"k8s.io.api.apps.v1beta2.StatefulSetCondition\")\n\tproto.RegisterType((*StatefulSetList)(nil), \"k8s.io.api.apps.v1beta2.StatefulSetList\")\n\tproto.RegisterType((*StatefulSetOrdinals)(nil), \"k8s.io.api.apps.v1beta2.StatefulSetOrdinals\")\n\tproto.RegisterType((*StatefulSetPersistentVolumeClaimRetentionPolicy)(nil), \"k8s.io.api.apps.v1beta2.StatefulSetPersistentVolumeClaimRetentionPolicy\")\n\tproto.RegisterType((*StatefulSetSpec)(nil), \"k8s.io.api.apps.v1beta2.StatefulSetSpec\")\n\tproto.RegisterType((*StatefulSetStatus)(nil), \"k8s.io.api.apps.v1beta2.StatefulSetStatus\")\n\tproto.RegisterType((*StatefulSetUpdateStrategy)(nil), \"k8s.io.api.apps.v1beta2.StatefulSetUpdateStrategy\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/apps/v1beta2/generated.proto\", fileDescriptor_c423c016abf485d4)\n}\n\nvar fileDescriptor_c423c016abf485d4 = []byte{\n\t// 2328 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0xcd, 0x6f, 0x1b, 0xc7,\n\t0x15, 0xf7, 0xf2, 0x43, 0x26, 0x87, 0x96, 0x64, 0x8f, 0x54, 0x89, 0xb1, 0x5b, 0xd2, 0x58, 0x1b,\n\t0xb6, 0x12, 0xdb, 0xa4, 0xad, 0x7c, 0x20, 0xb1, 0xdb, 0x04, 0xa2, 0x94, 0xda, 0x0e, 0xf4, 0xc1,\n\t0x0c, 0x2d, 0x07, 0x0d, 0xfa, 0xe1, 0x11, 0x39, 0xa6, 0x36, 0xde, 0x2f, 0xec, 0x0e, 0x15, 0x13,\n\t0xbd, 0xf4, 0x5a, 0xa0, 0x40, 0xdb, 0x6b, 0xff, 0x89, 0xa2, 0x97, 0xa2, 0x68, 0xd0, 0x4b, 0x11,\n\t0x04, 0x3e, 0x06, 0xbd, 0x24, 0x27, 0xa2, 0x66, 0x4e, 0x45, 0xd1, 0x5b, 0x7b, 0x31, 0x50, 0xa0,\n\t0x98, 0xd9, 0xd9, 0xef, 0x5d, 0x73, 0xa9, 0xd8, 0x4a, 0x13, 0xe4, 0xc6, 0x9d, 0xf7, 0xde, 0x6f,\n\t0xde, 0xcc, 0xbc, 0x37, 0xef, 0x37, 0x33, 0x04, 0x17, 0x1f, 0xbc, 0x6e, 0x37, 0x14, 0xa3, 0x89,\n\t0x4d, 0xa5, 0x89, 0x4d, 0xd3, 0x6e, 0x1e, 0x5c, 0xdb, 0x23, 0x14, 0xaf, 0x36, 0xfb, 0x44, 0x27,\n\t0x16, 0xa6, 0xa4, 0xd7, 0x30, 0x2d, 0x83, 0x1a, 0x70, 0xd9, 0x51, 0x6c, 0x60, 0x53, 0x69, 0x30,\n\t0xc5, 0x86, 0x50, 0x3c, 0x7d, 0xa5, 0xaf, 0xd0, 0xfd, 0xc1, 0x5e, 0xa3, 0x6b, 0x68, 0xcd, 0xbe,\n\t0xd1, 0x37, 0x9a, 0x5c, 0x7f, 0x6f, 0x70, 0x9f, 0x7f, 0xf1, 0x0f, 0xfe, 0xcb, 0xc1, 0x39, 0x2d,\n\t0x07, 0x3a, 0xec, 0x1a, 0x16, 0x69, 0x1e, 0x5c, 0x8b, 0xf6, 0x75, 0xfa, 0x15, 0x5f, 0x47, 0xc3,\n\t0xdd, 0x7d, 0x45, 0x27, 0xd6, 0xb0, 0x69, 0x3e, 0xe8, 0xb3, 0x06, 0xbb, 0xa9, 0x11, 0x8a, 0x93,\n\t0xac, 0x9a, 0x69, 0x56, 0xd6, 0x40, 0xa7, 0x8a, 0x46, 0x62, 0x06, 0xaf, 0x4d, 0x32, 0xb0, 0xbb,\n\t0xfb, 0x44, 0xc3, 0x31, 0xbb, 0x97, 0xd3, 0xec, 0x06, 0x54, 0x51, 0x9b, 0x8a, 0x4e, 0x6d, 0x6a,\n\t0x45, 0x8d, 0xe4, 0xff, 0x48, 0x00, 0xae, 0x1b, 0x3a, 0xb5, 0x0c, 0x55, 0x25, 0x16, 0x22, 0x07,\n\t0x8a, 0xad, 0x18, 0x3a, 0xbc, 0x07, 0x4a, 0x6c, 0x3c, 0x3d, 0x4c, 0x71, 0x55, 0x3a, 0x2b, 0xad,\n\t0x54, 0x56, 0xaf, 0x36, 0xfc, 0x99, 0xf6, 0xe0, 0x1b, 0xe6, 0x83, 0x3e, 0x6b, 0xb0, 0x1b, 0x4c,\n\t0xbb, 0x71, 0x70, 0xad, 0xb1, 0xb3, 0xf7, 0x01, 0xe9, 0xd2, 0x2d, 0x42, 0x71, 0x0b, 0x3e, 0x1a,\n\t0xd5, 0x8f, 0x8d, 0x47, 0x75, 0xe0, 0xb7, 0x21, 0x0f, 0x15, 0xee, 0x80, 0x02, 0x47, 0xcf, 0x71,\n\t0xf4, 0x2b, 0xa9, 0xe8, 0x62, 0xd0, 0x0d, 0x84, 0x3f, 0x7c, 0xfb, 0x21, 0x25, 0x3a, 0x73, 0xaf,\n\t0x75, 0x42, 0x40, 0x17, 0x36, 0x30, 0xc5, 0x88, 0x03, 0xc1, 0xcb, 0xa0, 0x64, 0x09, 0xf7, 0xab,\n\t0xf9, 0xb3, 0xd2, 0x4a, 0xbe, 0x75, 0x52, 0x68, 0x95, 0xdc, 0x61, 0x21, 0x4f, 0x43, 0x7e, 0x24,\n\t0x81, 0xa5, 0xf8, 0xb8, 0x37, 0x15, 0x9b, 0xc2, 0x1f, 0xc7, 0xc6, 0xde, 0xc8, 0x36, 0x76, 0x66,\n\t0xcd, 0x47, 0xee, 0x75, 0xec, 0xb6, 0x04, 0xc6, 0xdd, 0x06, 0x45, 0x85, 0x12, 0xcd, 0xae, 0xe6,\n\t0xce, 0xe6, 0x57, 0x2a, 0xab, 0x97, 0x1a, 0x29, 0x01, 0xdc, 0x88, 0x7b, 0xd7, 0x9a, 0x15, 0xb8,\n\t0xc5, 0xdb, 0x0c, 0x01, 0x39, 0x40, 0xf2, 0x2f, 0x73, 0xa0, 0xbc, 0x81, 0x89, 0x66, 0xe8, 0x1d,\n\t0x42, 0x8f, 0x60, 0xe5, 0x6e, 0x81, 0x82, 0x6d, 0x92, 0xae, 0x58, 0xb9, 0x0b, 0xa9, 0x03, 0xf0,\n\t0x7c, 0xea, 0x98, 0xa4, 0xeb, 0x2f, 0x19, 0xfb, 0x42, 0x1c, 0x01, 0xb6, 0xc1, 0x8c, 0x4d, 0x31,\n\t0x1d, 0xd8, 0x7c, 0xc1, 0x2a, 0xab, 0x2b, 0x19, 0xb0, 0xb8, 0x7e, 0x6b, 0x4e, 0xa0, 0xcd, 0x38,\n\t0xdf, 0x48, 0xe0, 0xc8, 0xff, 0xc8, 0x01, 0xe8, 0xe9, 0xae, 0x1b, 0x7a, 0x4f, 0xa1, 0x2c, 0x9c,\n\t0xaf, 0x83, 0x02, 0x1d, 0x9a, 0x84, 0x4f, 0x48, 0xb9, 0x75, 0xc1, 0x75, 0xe5, 0xce, 0xd0, 0x24,\n\t0x4f, 0x46, 0xf5, 0xa5, 0xb8, 0x05, 0x93, 0x20, 0x6e, 0x03, 0x37, 0x3d, 0x27, 0x73, 0xdc, 0xfa,\n\t0x95, 0x70, 0xd7, 0x4f, 0x46, 0xf5, 0x84, 0xbd, 0xa3, 0xe1, 0x21, 0x85, 0x1d, 0x84, 0x07, 0x00,\n\t0xaa, 0xd8, 0xa6, 0x77, 0x2c, 0xac, 0xdb, 0x4e, 0x4f, 0x8a, 0x46, 0xc4, 0xf0, 0x5f, 0xca, 0xb6,\n\t0x50, 0xcc, 0xa2, 0x75, 0x5a, 0x78, 0x01, 0x37, 0x63, 0x68, 0x28, 0xa1, 0x07, 0x78, 0x01, 0xcc,\n\t0x58, 0x04, 0xdb, 0x86, 0x5e, 0x2d, 0xf0, 0x51, 0x78, 0x13, 0x88, 0x78, 0x2b, 0x12, 0x52, 0xf8,\n\t0x22, 0x38, 0xae, 0x11, 0xdb, 0xc6, 0x7d, 0x52, 0x2d, 0x72, 0xc5, 0x79, 0xa1, 0x78, 0x7c, 0xcb,\n\t0x69, 0x46, 0xae, 0x5c, 0xfe, 0xa3, 0x04, 0x66, 0xbd, 0x99, 0x3b, 0x82, 0xcc, 0xb9, 0x19, 0xce,\n\t0x1c, 0x79, 0x72, 0xb0, 0xa4, 0x24, 0xcc, 0xc7, 0xf9, 0x80, 0xe3, 0x2c, 0x1c, 0xe1, 0x4f, 0x40,\n\t0xc9, 0x26, 0x2a, 0xe9, 0x52, 0xc3, 0x12, 0x8e, 0xbf, 0x9c, 0xd1, 0x71, 0xbc, 0x47, 0xd4, 0x8e,\n\t0x30, 0x6d, 0x9d, 0x60, 0x9e, 0xbb, 0x5f, 0xc8, 0x83, 0x84, 0xef, 0x82, 0x12, 0x25, 0x9a, 0xa9,\n\t0x62, 0x4a, 0x44, 0xd6, 0x9c, 0x0b, 0x3a, 0xcf, 0x62, 0x86, 0x81, 0xb5, 0x8d, 0xde, 0x1d, 0xa1,\n\t0xc6, 0x53, 0xc6, 0x9b, 0x0c, 0xb7, 0x15, 0x79, 0x30, 0xd0, 0x04, 0x73, 0x03, 0xb3, 0xc7, 0x34,\n\t0x29, 0xdb, 0xce, 0xfb, 0x43, 0x11, 0x43, 0x57, 0x27, 0xcf, 0xca, 0x6e, 0xc8, 0xae, 0xb5, 0x24,\n\t0x7a, 0x99, 0x0b, 0xb7, 0xa3, 0x08, 0x3e, 0x5c, 0x03, 0xf3, 0x9a, 0xa2, 0x23, 0x82, 0x7b, 0xc3,\n\t0x0e, 0xe9, 0x1a, 0x7a, 0xcf, 0xe6, 0xa1, 0x54, 0x6c, 0x2d, 0x0b, 0x80, 0xf9, 0xad, 0xb0, 0x18,\n\t0x45, 0xf5, 0xe1, 0x26, 0x58, 0x74, 0x37, 0xe0, 0x5b, 0x8a, 0x4d, 0x0d, 0x6b, 0xb8, 0xa9, 0x68,\n\t0x0a, 0xad, 0xce, 0x70, 0x9c, 0xea, 0x78, 0x54, 0x5f, 0x44, 0x09, 0x72, 0x94, 0x68, 0x25, 0xff,\n\t0x76, 0x06, 0xcc, 0x47, 0xf6, 0x05, 0x78, 0x17, 0x2c, 0x75, 0x07, 0x96, 0x45, 0x74, 0xba, 0x3d,\n\t0xd0, 0xf6, 0x88, 0xd5, 0xe9, 0xee, 0x93, 0xde, 0x40, 0x25, 0x3d, 0xbe, 0xac, 0xc5, 0x56, 0x4d,\n\t0xf8, 0xba, 0xb4, 0x9e, 0xa8, 0x85, 0x52, 0xac, 0xe1, 0x3b, 0x00, 0xea, 0xbc, 0x69, 0x4b, 0xb1,\n\t0x6d, 0x0f, 0x33, 0xc7, 0x31, 0xbd, 0x54, 0xdc, 0x8e, 0x69, 0xa0, 0x04, 0x2b, 0xe6, 0x63, 0x8f,\n\t0xd8, 0x8a, 0x45, 0x7a, 0x51, 0x1f, 0xf3, 0x61, 0x1f, 0x37, 0x12, 0xb5, 0x50, 0x8a, 0x35, 0x7c,\n\t0x15, 0x54, 0x9c, 0xde, 0xf8, 0x9c, 0x8b, 0xc5, 0x59, 0x10, 0x60, 0x95, 0x6d, 0x5f, 0x84, 0x82,\n\t0x7a, 0x6c, 0x68, 0xc6, 0x9e, 0x4d, 0xac, 0x03, 0xd2, 0xbb, 0xe9, 0x90, 0x03, 0x56, 0x41, 0x8b,\n\t0xbc, 0x82, 0x7a, 0x43, 0xdb, 0x89, 0x69, 0xa0, 0x04, 0x2b, 0x36, 0x34, 0x27, 0x6a, 0x62, 0x43,\n\t0x9b, 0x09, 0x0f, 0x6d, 0x37, 0x51, 0x0b, 0xa5, 0x58, 0xb3, 0xd8, 0x73, 0x5c, 0x5e, 0x3b, 0xc0,\n\t0x8a, 0x8a, 0xf7, 0x54, 0x52, 0x3d, 0x1e, 0x8e, 0xbd, 0xed, 0xb0, 0x18, 0x45, 0xf5, 0xe1, 0x4d,\n\t0x70, 0xca, 0x69, 0xda, 0xd5, 0xb1, 0x07, 0x52, 0xe2, 0x20, 0x2f, 0x08, 0x90, 0x53, 0xdb, 0x51,\n\t0x05, 0x14, 0xb7, 0x81, 0xd7, 0xc1, 0x5c, 0xd7, 0x50, 0x55, 0x1e, 0x8f, 0xeb, 0xc6, 0x40, 0xa7,\n\t0xd5, 0x32, 0x47, 0x81, 0x2c, 0x87, 0xd6, 0x43, 0x12, 0x14, 0xd1, 0x84, 0x3f, 0x03, 0xa0, 0xeb,\n\t0x16, 0x06, 0xbb, 0x0a, 0x26, 0x30, 0x80, 0x78, 0x59, 0xf2, 0x2b, 0xb3, 0xd7, 0x64, 0xa3, 0x00,\n\t0xa4, 0xfc, 0xb1, 0x04, 0x96, 0x53, 0x12, 0x1d, 0xbe, 0x15, 0x2a, 0x82, 0x97, 0x22, 0x45, 0xf0,\n\t0x4c, 0x8a, 0x59, 0xa0, 0x12, 0xee, 0x83, 0x59, 0x46, 0x48, 0x14, 0xbd, 0xef, 0xa8, 0x88, 0xbd,\n\t0xac, 0x99, 0x3a, 0x00, 0x14, 0xd4, 0xf6, 0x77, 0xe5, 0x53, 0xe3, 0x51, 0x7d, 0x36, 0x24, 0x43,\n\t0x61, 0x60, 0xf9, 0x57, 0x39, 0x00, 0x36, 0x88, 0xa9, 0x1a, 0x43, 0x8d, 0xe8, 0x47, 0xc1, 0x69,\n\t0x6e, 0x87, 0x38, 0xcd, 0xc5, 0xf4, 0x25, 0xf1, 0x9c, 0x4a, 0x25, 0x35, 0xef, 0x46, 0x48, 0xcd,\n\t0x8b, 0x59, 0xc0, 0x9e, 0xce, 0x6a, 0x3e, 0xcb, 0x83, 0x05, 0x5f, 0xd9, 0xa7, 0x35, 0x37, 0x42,\n\t0x2b, 0x7a, 0x31, 0xb2, 0xa2, 0xcb, 0x09, 0x26, 0xcf, 0x8d, 0xd7, 0x7c, 0x00, 0xe6, 0x18, 0xeb,\n\t0x70, 0xd6, 0x8f, 0x73, 0x9a, 0x99, 0xa9, 0x39, 0x8d, 0x57, 0x89, 0x36, 0x43, 0x48, 0x28, 0x82,\n\t0x9c, 0xc2, 0xa1, 0x8e, 0x7f, 0x1d, 0x39, 0xd4, 0x9f, 0x24, 0x30, 0xe7, 0x2f, 0xd3, 0x11, 0x90,\n\t0xa8, 0x5b, 0x61, 0x12, 0x75, 0x2e, 0x43, 0x70, 0xa6, 0xb0, 0xa8, 0xcf, 0x0a, 0x41, 0xd7, 0x39,\n\t0x8d, 0x5a, 0x61, 0x47, 0x30, 0x53, 0x55, 0xba, 0xd8, 0x16, 0xf5, 0xf6, 0x84, 0x73, 0xfc, 0x72,\n\t0xda, 0x90, 0x27, 0x0d, 0x11, 0xae, 0xdc, 0xf3, 0x25, 0x5c, 0xf9, 0x67, 0x43, 0xb8, 0x7e, 0x04,\n\t0x4a, 0xb6, 0x4b, 0xb5, 0x0a, 0x1c, 0xf2, 0x52, 0xa6, 0xc4, 0x16, 0x2c, 0xcb, 0x83, 0xf6, 0xf8,\n\t0x95, 0x07, 0x97, 0xc4, 0xac, 0x8a, 0x5f, 0x25, 0xb3, 0x62, 0x81, 0x6e, 0xe2, 0x81, 0x4d, 0x7a,\n\t0x3c, 0xa9, 0x4a, 0x7e, 0xa0, 0xb7, 0x79, 0x2b, 0x12, 0x52, 0xb8, 0x0b, 0x96, 0x4d, 0xcb, 0xe8,\n\t0x5b, 0xc4, 0xb6, 0x37, 0x08, 0xee, 0xa9, 0x8a, 0x4e, 0xdc, 0x01, 0x38, 0x35, 0xf1, 0xcc, 0x78,\n\t0x54, 0x5f, 0x6e, 0x27, 0xab, 0xa0, 0x34, 0x5b, 0xf9, 0xaf, 0x05, 0x70, 0x32, 0xba, 0x37, 0xa6,\n\t0xd0, 0x14, 0xe9, 0x50, 0x34, 0xe5, 0x72, 0x20, 0x4e, 0x1d, 0x0e, 0x17, 0xb8, 0x2a, 0x88, 0xc5,\n\t0xea, 0x1a, 0x98, 0x17, 0xb4, 0xc4, 0x15, 0x0a, 0xa2, 0xe6, 0x2d, 0xcf, 0x6e, 0x58, 0x8c, 0xa2,\n\t0xfa, 0xf0, 0x06, 0x98, 0xb5, 0x38, 0xf3, 0x72, 0x01, 0x1c, 0xf6, 0xf2, 0x1d, 0x01, 0x30, 0x8b,\n\t0x82, 0x42, 0x14, 0xd6, 0x65, 0xcc, 0xc5, 0x27, 0x24, 0x2e, 0x40, 0x21, 0xcc, 0x5c, 0xd6, 0xa2,\n\t0x0a, 0x28, 0x6e, 0x03, 0xb7, 0xc0, 0xc2, 0x40, 0x8f, 0x43, 0x39, 0xb1, 0x76, 0x46, 0x40, 0x2d,\n\t0xec, 0xc6, 0x55, 0x50, 0x92, 0x1d, 0xbc, 0x17, 0x22, 0x33, 0x33, 0x7c, 0x3f, 0xb9, 0x9c, 0x21,\n\t0x27, 0x32, 0xb3, 0x99, 0x04, 0xaa, 0x55, 0xca, 0x4a, 0xb5, 0xe4, 0x8f, 0x24, 0x00, 0xe3, 0x79,\n\t0x38, 0xf1, 0x26, 0x20, 0x66, 0x11, 0xa8, 0x98, 0x4a, 0x32, 0xff, 0xb9, 0x9a, 0x91, 0xff, 0xf8,\n\t0x1b, 0x6a, 0x36, 0x02, 0x24, 0x26, 0xfa, 0x68, 0x2e, 0x75, 0xb2, 0x12, 0x20, 0xdf, 0xa9, 0x67,\n\t0x40, 0x80, 0x02, 0x60, 0x4f, 0x27, 0x40, 0xff, 0xcc, 0x81, 0x05, 0x5f, 0x39, 0x33, 0x01, 0x4a,\n\t0x30, 0xf9, 0xf6, 0x62, 0x27, 0x1b, 0x29, 0xf1, 0xa7, 0xee, 0xff, 0x89, 0x94, 0xf8, 0x5e, 0xa5,\n\t0x90, 0x92, 0xdf, 0xe7, 0x82, 0xae, 0x4f, 0x49, 0x4a, 0x9e, 0xc1, 0x0d, 0xc7, 0xd7, 0x8e, 0xd7,\n\t0xc8, 0x9f, 0xe4, 0xc1, 0xc9, 0x68, 0x1e, 0x86, 0x0a, 0xa4, 0x34, 0xb1, 0x40, 0xb6, 0xc1, 0xe2,\n\t0xfd, 0x81, 0xaa, 0x0e, 0xf9, 0x18, 0x02, 0x55, 0xd2, 0x29, 0xad, 0xdf, 0x15, 0x96, 0x8b, 0x3f,\n\t0x4c, 0xd0, 0x41, 0x89, 0x96, 0xf1, 0x7a, 0x59, 0xf8, 0xb2, 0xf5, 0xb2, 0x78, 0x88, 0x7a, 0x99,\n\t0x4c, 0x39, 0xf2, 0x87, 0xa2, 0x1c, 0xd3, 0x15, 0xcb, 0x84, 0x8d, 0x6b, 0xe2, 0xd1, 0x7f, 0x2c,\n\t0x81, 0xa5, 0xe4, 0x03, 0x37, 0x54, 0xc1, 0x9c, 0x86, 0x1f, 0x06, 0x2f, 0x3e, 0x26, 0x15, 0x91,\n\t0x01, 0x55, 0xd4, 0x86, 0xf3, 0x64, 0xd4, 0xb8, 0xad, 0xd3, 0x1d, 0xab, 0x43, 0x2d, 0x45, 0xef,\n\t0x3b, 0x95, 0x77, 0x2b, 0x84, 0x85, 0x22, 0xd8, 0xf0, 0x7d, 0x50, 0xd2, 0xf0, 0xc3, 0xce, 0xc0,\n\t0xea, 0x27, 0x55, 0xc8, 0x6c, 0xfd, 0xf0, 0x04, 0xd8, 0x12, 0x28, 0xc8, 0xc3, 0x93, 0xbf, 0x90,\n\t0xc0, 0x72, 0x4a, 0x55, 0xfd, 0x06, 0x8d, 0xf2, 0x2f, 0x12, 0x38, 0x1b, 0x1a, 0x25, 0x4b, 0x4b,\n\t0x72, 0x7f, 0xa0, 0xf2, 0x0c, 0x15, 0x4c, 0xe6, 0x12, 0x28, 0x9b, 0xd8, 0xa2, 0x8a, 0xc7, 0x83,\n\t0x8b, 0xad, 0xd9, 0xf1, 0xa8, 0x5e, 0x6e, 0xbb, 0x8d, 0xc8, 0x97, 0x27, 0xcc, 0x4d, 0xee, 0xf9,\n\t0xcd, 0x8d, 0xfc, 0x5f, 0x09, 0x14, 0x3b, 0x5d, 0xac, 0x92, 0x23, 0x20, 0x2e, 0x1b, 0x21, 0xe2,\n\t0x92, 0xfe, 0x28, 0xc0, 0xfd, 0x49, 0xe5, 0x2c, 0x9b, 0x11, 0xce, 0x72, 0x7e, 0x02, 0xce, 0xd3,\n\t0xe9, 0xca, 0x1b, 0xa0, 0xec, 0x75, 0x37, 0xdd, 0x5e, 0x2a, 0xff, 0x2e, 0x07, 0x2a, 0x81, 0x2e,\n\t0xa6, 0xdc, 0x89, 0xef, 0x85, 0xca, 0x0f, 0xdb, 0x63, 0x56, 0xb3, 0x0c, 0xa4, 0xe1, 0x96, 0x9a,\n\t0xb7, 0x75, 0x6a, 0x05, 0xcf, 0xaa, 0xf1, 0x0a, 0xf4, 0x26, 0x98, 0xa3, 0xd8, 0xea, 0x13, 0xea,\n\t0xca, 0xf8, 0x84, 0x95, 0xfd, 0xbb, 0x9b, 0x3b, 0x21, 0x29, 0x8a, 0x68, 0x9f, 0xbe, 0x01, 0x66,\n\t0x43, 0x9d, 0xc1, 0x93, 0x20, 0xff, 0x80, 0x0c, 0x1d, 0x06, 0x87, 0xd8, 0x4f, 0xb8, 0x08, 0x8a,\n\t0x07, 0x58, 0x1d, 0x38, 0x21, 0x5a, 0x46, 0xce, 0xc7, 0xf5, 0xdc, 0xeb, 0x92, 0xfc, 0x6b, 0x36,\n\t0x39, 0x7e, 0x2a, 0x1c, 0x41, 0x74, 0xbd, 0x13, 0x8a, 0xae, 0xf4, 0xf7, 0xc9, 0x60, 0x82, 0xa6,\n\t0xc5, 0x18, 0x8a, 0xc4, 0xd8, 0x4b, 0x99, 0xd0, 0x9e, 0x1e, 0x69, 0xff, 0xca, 0x81, 0xc5, 0x80,\n\t0xb6, 0xcf, 0x8c, 0xbf, 0x1f, 0x62, 0xc6, 0x2b, 0x11, 0x66, 0x5c, 0x4d, 0xb2, 0xf9, 0x96, 0x1a,\n\t0x4f, 0xa6, 0xc6, 0x7f, 0x96, 0xc0, 0x7c, 0x60, 0xee, 0x8e, 0x80, 0x1b, 0xdf, 0x0e, 0x73, 0xe3,\n\t0xf3, 0x59, 0x82, 0x26, 0x85, 0x1c, 0x5f, 0x07, 0x0b, 0x01, 0xa5, 0x1d, 0xab, 0xa7, 0xe8, 0x58,\n\t0xb5, 0xe1, 0x39, 0x50, 0xb4, 0x29, 0xb6, 0xa8, 0x5b, 0x44, 0x5c, 0xdb, 0x0e, 0x6b, 0x44, 0x8e,\n\t0x4c, 0xfe, 0xb7, 0x04, 0x9a, 0x01, 0xe3, 0x36, 0xb1, 0x6c, 0xc5, 0xa6, 0x44, 0xa7, 0x77, 0x0d,\n\t0x75, 0xa0, 0x91, 0x75, 0x15, 0x2b, 0x1a, 0x22, 0xac, 0x41, 0x31, 0xf4, 0xb6, 0xa1, 0x2a, 0xdd,\n\t0x21, 0xc4, 0xa0, 0xf2, 0xe1, 0x3e, 0xd1, 0x37, 0x88, 0x4a, 0xa8, 0x78, 0x81, 0x2b, 0xb7, 0xde,\n\t0x72, 0x1f, 0xa4, 0xde, 0xf3, 0x45, 0x4f, 0x46, 0xf5, 0x95, 0x2c, 0x88, 0x3c, 0x42, 0x83, 0x98,\n\t0xf0, 0xa7, 0x00, 0xb0, 0x4f, 0xbe, 0x97, 0xf5, 0x44, 0xb0, 0xbe, 0xe9, 0x66, 0xf4, 0x7b, 0x9e,\n\t0x64, 0xaa, 0x0e, 0x02, 0x88, 0xf2, 0x1f, 0x4a, 0xa1, 0xf5, 0xfe, 0xc6, 0xdf, 0x72, 0xfe, 0x1c,\n\t0x2c, 0x1e, 0xf8, 0xb3, 0xe3, 0x2a, 0x30, 0xfe, 0x9d, 0x8f, 0x9e, 0xe4, 0x3d, 0xf8, 0xa4, 0x79,\n\t0xf5, 0x59, 0xff, 0xdd, 0x04, 0x38, 0x94, 0xd8, 0x09, 0x7c, 0x15, 0x54, 0x18, 0x6f, 0x56, 0xba,\n\t0x64, 0x1b, 0x6b, 0x6e, 0x2e, 0x7a, 0x0f, 0x98, 0x1d, 0x5f, 0x84, 0x82, 0x7a, 0x70, 0x1f, 0x2c,\n\t0x98, 0x46, 0x6f, 0x0b, 0xeb, 0xb8, 0x4f, 0x18, 0x11, 0x74, 0x96, 0x92, 0x5f, 0x7d, 0x96, 0x5b,\n\t0xaf, 0xb9, 0xd7, 0x5a, 0xed, 0xb8, 0xca, 0x93, 0x51, 0x7d, 0x39, 0xa1, 0x99, 0x07, 0x41, 0x12,\n\t0x24, 0xb4, 0x62, 0x8f, 0xee, 0xce, 0xa3, 0xc3, 0x6a, 0x96, 0xa4, 0x3c, 0xe4, 0xb3, 0x7b, 0xda,\n\t0xcd, 0x6e, 0xe9, 0x50, 0x37, 0xbb, 0x09, 0x47, 0xdc, 0xf2, 0x94, 0x47, 0xdc, 0x4f, 0x24, 0x70,\n\t0xde, 0xcc, 0x90, 0x4b, 0x55, 0xc0, 0xe7, 0xe6, 0x56, 0x96, 0xb9, 0xc9, 0x92, 0x9b, 0xad, 0x95,\n\t0xf1, 0xa8, 0x7e, 0x3e, 0x8b, 0x26, 0xca, 0xe4, 0x1f, 0xbc, 0x0b, 0x4a, 0x86, 0xd8, 0x03, 0xab,\n\t0x15, 0xee, 0xeb, 0xe5, 0x2c, 0xbe, 0xba, 0xfb, 0xa6, 0x93, 0x96, 0xee, 0x17, 0xf2, 0xb0, 0xe4,\n\t0x8f, 0x8a, 0xe0, 0x54, 0xac, 0x82, 0x7f, 0x85, 0xf7, 0xd7, 0xb1, 0xc3, 0x74, 0x7e, 0x8a, 0xc3,\n\t0xf4, 0x1a, 0x98, 0x17, 0x7f, 0x89, 0x88, 0x9c, 0xc5, 0xbd, 0x80, 0x59, 0x0f, 0x8b, 0x51, 0x54,\n\t0x3f, 0xe9, 0xfe, 0xbc, 0x38, 0xe5, 0xfd, 0x79, 0xd0, 0x0b, 0xf1, 0x17, 0x3f, 0x27, 0xbd, 0xe3,\n\t0x5e, 0x88, 0x7f, 0xfa, 0x45, 0xf5, 0x19, 0x71, 0x75, 0x50, 0x3d, 0x84, 0xe3, 0x61, 0xe2, 0xba,\n\t0x1b, 0x92, 0xa2, 0x88, 0xf6, 0x97, 0x7a, 0xf6, 0xc7, 0x09, 0xcf, 0xfe, 0x57, 0xb2, 0xc4, 0x5a,\n\t0xf6, 0xab, 0xf2, 0xc4, 0x4b, 0x8f, 0xca, 0xf4, 0x97, 0x1e, 0xf2, 0xdf, 0x24, 0xf0, 0x42, 0xea,\n\t0xae, 0x05, 0xd7, 0x42, 0xb4, 0xf2, 0x4a, 0x84, 0x56, 0x7e, 0x2f, 0xd5, 0x30, 0xc0, 0x2d, 0xad,\n\t0xe4, 0x5b, 0xf4, 0x37, 0xb2, 0xdd, 0xa2, 0x27, 0x9c, 0x84, 0x27, 0x5f, 0xa7, 0xb7, 0x7e, 0xf0,\n\t0xe8, 0x71, 0xed, 0xd8, 0xa7, 0x8f, 0x6b, 0xc7, 0x3e, 0x7f, 0x5c, 0x3b, 0xf6, 0x8b, 0x71, 0x4d,\n\t0x7a, 0x34, 0xae, 0x49, 0x9f, 0x8e, 0x6b, 0xd2, 0xe7, 0xe3, 0x9a, 0xf4, 0xf7, 0x71, 0x4d, 0xfa,\n\t0xcd, 0x17, 0xb5, 0x63, 0xef, 0x2f, 0xa7, 0xfc, 0xe9, 0xf8, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff,\n\t0xa4, 0x79, 0xcd, 0x52, 0x8e, 0x2c, 0x00, 0x00,\n}\n\nfunc (m *ControllerRevision) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ControllerRevision) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ControllerRevision) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Revision))\n\ti--\n\tdAtA[i] = 0x18\n\t{\n\t\tsize, err := m.Data.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ControllerRevisionList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ControllerRevisionList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ControllerRevisionList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DaemonSet) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DaemonSet) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DaemonSet) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DaemonSetCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DaemonSetCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DaemonSetCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DaemonSetList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DaemonSetList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DaemonSetList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DaemonSetSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DaemonSetSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DaemonSetSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.RevisionHistoryLimit != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.RevisionHistoryLimit))\n\t\ti--\n\t\tdAtA[i] = 0x30\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds))\n\ti--\n\tdAtA[i] = 0x20\n\t{\n\t\tsize, err := m.UpdateStrategy.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Template.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DaemonSetStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DaemonSetStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DaemonSetStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x52\n\t\t}\n\t}\n\tif m.CollisionCount != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.CollisionCount))\n\t\ti--\n\t\tdAtA[i] = 0x48\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.NumberUnavailable))\n\ti--\n\tdAtA[i] = 0x40\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.NumberAvailable))\n\ti--\n\tdAtA[i] = 0x38\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.UpdatedNumberScheduled))\n\ti--\n\tdAtA[i] = 0x30\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration))\n\ti--\n\tdAtA[i] = 0x28\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.NumberReady))\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.DesiredNumberScheduled))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.NumberMisscheduled))\n\ti--\n\tdAtA[i] = 0x10\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.CurrentNumberScheduled))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DaemonSetUpdateStrategy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DaemonSetUpdateStrategy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DaemonSetUpdateStrategy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.RollingUpdate != nil {\n\t\t{\n\t\t\tsize, err := m.RollingUpdate.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Deployment) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Deployment) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Deployment) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x3a\n\t{\n\t\tsize, err := m.LastUpdateTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ProgressDeadlineSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.ProgressDeadlineSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x48\n\t}\n\ti--\n\tif m.Paused {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x38\n\tif m.RevisionHistoryLimit != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.RevisionHistoryLimit))\n\t\ti--\n\t\tdAtA[i] = 0x30\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds))\n\ti--\n\tdAtA[i] = 0x28\n\t{\n\t\tsize, err := m.Strategy.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.Template.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Replicas != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Replicas))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.CollisionCount != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.CollisionCount))\n\t\ti--\n\t\tdAtA[i] = 0x40\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ReadyReplicas))\n\ti--\n\tdAtA[i] = 0x38\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.UnavailableReplicas))\n\ti--\n\tdAtA[i] = 0x28\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.AvailableReplicas))\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.UpdatedReplicas))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Replicas))\n\ti--\n\tdAtA[i] = 0x10\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentStrategy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentStrategy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentStrategy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.RollingUpdate != nil {\n\t\t{\n\t\t\tsize, err := m.RollingUpdate.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ReplicaSet) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ReplicaSet) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ReplicaSet) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ReplicaSetCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ReplicaSetCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ReplicaSetCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ReplicaSetList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ReplicaSetList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ReplicaSetList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ReplicaSetSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ReplicaSetSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ReplicaSetSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds))\n\ti--\n\tdAtA[i] = 0x20\n\t{\n\t\tsize, err := m.Template.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Replicas != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Replicas))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ReplicaSetStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ReplicaSetStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ReplicaSetStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.AvailableReplicas))\n\ti--\n\tdAtA[i] = 0x28\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ReadyReplicas))\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.FullyLabeledReplicas))\n\ti--\n\tdAtA[i] = 0x10\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Replicas))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RollingUpdateDaemonSet) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RollingUpdateDaemonSet) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RollingUpdateDaemonSet) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.MaxSurge != nil {\n\t\t{\n\t\t\tsize, err := m.MaxSurge.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.MaxUnavailable != nil {\n\t\t{\n\t\t\tsize, err := m.MaxUnavailable.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RollingUpdateDeployment) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RollingUpdateDeployment) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RollingUpdateDeployment) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.MaxSurge != nil {\n\t\t{\n\t\t\tsize, err := m.MaxSurge.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.MaxUnavailable != nil {\n\t\t{\n\t\t\tsize, err := m.MaxUnavailable.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RollingUpdateStatefulSetStrategy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RollingUpdateStatefulSetStrategy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RollingUpdateStatefulSetStrategy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.MaxUnavailable != nil {\n\t\t{\n\t\t\tsize, err := m.MaxUnavailable.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Partition != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Partition))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Scale) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Scale) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Scale) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ScaleSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ScaleSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ScaleSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Replicas))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ScaleStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ScaleStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ScaleStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.TargetSelector)\n\tcopy(dAtA[i:], m.TargetSelector)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.TargetSelector)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.Selector) > 0 {\n\t\tkeysForSelector := make([]string, 0, len(m.Selector))\n\t\tfor k := range m.Selector {\n\t\t\tkeysForSelector = append(keysForSelector, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForSelector)\n\t\tfor iNdEx := len(keysForSelector) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Selector[string(keysForSelector[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForSelector[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForSelector[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForSelector[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Replicas))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSet) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSet) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSet) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSetCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSetCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSetCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSetList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSetList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSetList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSetOrdinals) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSetOrdinals) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSetOrdinals) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Start))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.WhenScaled)\n\tcopy(dAtA[i:], m.WhenScaled)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.WhenScaled)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.WhenDeleted)\n\tcopy(dAtA[i:], m.WhenDeleted)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.WhenDeleted)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSetSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSetSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSetSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Ordinals != nil {\n\t\t{\n\t\t\tsize, err := m.Ordinals.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x5a\n\t}\n\tif m.PersistentVolumeClaimRetentionPolicy != nil {\n\t\t{\n\t\t\tsize, err := m.PersistentVolumeClaimRetentionPolicy.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x52\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds))\n\ti--\n\tdAtA[i] = 0x48\n\tif m.RevisionHistoryLimit != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.RevisionHistoryLimit))\n\t\ti--\n\t\tdAtA[i] = 0x40\n\t}\n\t{\n\t\tsize, err := m.UpdateStrategy.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x3a\n\ti -= len(m.PodManagementPolicy)\n\tcopy(dAtA[i:], m.PodManagementPolicy)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.PodManagementPolicy)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.ServiceName)\n\tcopy(dAtA[i:], m.ServiceName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ServiceName)))\n\ti--\n\tdAtA[i] = 0x2a\n\tif len(m.VolumeClaimTemplates) > 0 {\n\t\tfor iNdEx := len(m.VolumeClaimTemplates) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.VolumeClaimTemplates[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.Template.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Replicas != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Replicas))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSetStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSetStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSetStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.AvailableReplicas))\n\ti--\n\tdAtA[i] = 0x58\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x52\n\t\t}\n\t}\n\tif m.CollisionCount != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.CollisionCount))\n\t\ti--\n\t\tdAtA[i] = 0x48\n\t}\n\ti -= len(m.UpdateRevision)\n\tcopy(dAtA[i:], m.UpdateRevision)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.UpdateRevision)))\n\ti--\n\tdAtA[i] = 0x3a\n\ti -= len(m.CurrentRevision)\n\tcopy(dAtA[i:], m.CurrentRevision)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.CurrentRevision)))\n\ti--\n\tdAtA[i] = 0x32\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.UpdatedReplicas))\n\ti--\n\tdAtA[i] = 0x28\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.CurrentReplicas))\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ReadyReplicas))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Replicas))\n\ti--\n\tdAtA[i] = 0x10\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatefulSetUpdateStrategy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatefulSetUpdateStrategy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatefulSetUpdateStrategy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.RollingUpdate != nil {\n\t\t{\n\t\t\tsize, err := m.RollingUpdate.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *ControllerRevision) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Data.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.Revision))\n\treturn n\n}\n\nfunc (m *ControllerRevisionList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *DaemonSet) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *DaemonSetCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *DaemonSetList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *DaemonSetSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = m.Template.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.UpdateStrategy.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.MinReadySeconds))\n\tif m.RevisionHistoryLimit != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.RevisionHistoryLimit))\n\t}\n\treturn n\n}\n\nfunc (m *DaemonSetStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.CurrentNumberScheduled))\n\tn += 1 + sovGenerated(uint64(m.NumberMisscheduled))\n\tn += 1 + sovGenerated(uint64(m.DesiredNumberScheduled))\n\tn += 1 + sovGenerated(uint64(m.NumberReady))\n\tn += 1 + sovGenerated(uint64(m.ObservedGeneration))\n\tn += 1 + sovGenerated(uint64(m.UpdatedNumberScheduled))\n\tn += 1 + sovGenerated(uint64(m.NumberAvailable))\n\tn += 1 + sovGenerated(uint64(m.NumberUnavailable))\n\tif m.CollisionCount != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.CollisionCount))\n\t}\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *DaemonSetUpdateStrategy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.RollingUpdate != nil {\n\t\tl = m.RollingUpdate.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *Deployment) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *DeploymentCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastUpdateTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *DeploymentList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *DeploymentSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Replicas != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Replicas))\n\t}\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = m.Template.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Strategy.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.MinReadySeconds))\n\tif m.RevisionHistoryLimit != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.RevisionHistoryLimit))\n\t}\n\tn += 2\n\tif m.ProgressDeadlineSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.ProgressDeadlineSeconds))\n\t}\n\treturn n\n}\n\nfunc (m *DeploymentStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.ObservedGeneration))\n\tn += 1 + sovGenerated(uint64(m.Replicas))\n\tn += 1 + sovGenerated(uint64(m.UpdatedReplicas))\n\tn += 1 + sovGenerated(uint64(m.AvailableReplicas))\n\tn += 1 + sovGenerated(uint64(m.UnavailableReplicas))\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tn += 1 + sovGenerated(uint64(m.ReadyReplicas))\n\tif m.CollisionCount != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.CollisionCount))\n\t}\n\treturn n\n}\n\nfunc (m *DeploymentStrategy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.RollingUpdate != nil {\n\t\tl = m.RollingUpdate.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ReplicaSet) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ReplicaSetCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ReplicaSetList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ReplicaSetSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Replicas != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Replicas))\n\t}\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = m.Template.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.MinReadySeconds))\n\treturn n\n}\n\nfunc (m *ReplicaSetStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Replicas))\n\tn += 1 + sovGenerated(uint64(m.FullyLabeledReplicas))\n\tn += 1 + sovGenerated(uint64(m.ObservedGeneration))\n\tn += 1 + sovGenerated(uint64(m.ReadyReplicas))\n\tn += 1 + sovGenerated(uint64(m.AvailableReplicas))\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *RollingUpdateDaemonSet) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.MaxUnavailable != nil {\n\t\tl = m.MaxUnavailable.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.MaxSurge != nil {\n\t\tl = m.MaxSurge.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *RollingUpdateDeployment) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.MaxUnavailable != nil {\n\t\tl = m.MaxUnavailable.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.MaxSurge != nil {\n\t\tl = m.MaxSurge.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *RollingUpdateStatefulSetStrategy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Partition != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Partition))\n\t}\n\tif m.MaxUnavailable != nil {\n\t\tl = m.MaxUnavailable.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *Scale) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ScaleSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Replicas))\n\treturn n\n}\n\nfunc (m *ScaleStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Replicas))\n\tif len(m.Selector) > 0 {\n\t\tfor k, v := range m.Selector {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tl = len(m.TargetSelector)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *StatefulSet) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *StatefulSetCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *StatefulSetList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *StatefulSetOrdinals) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Start))\n\treturn n\n}\n\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.WhenDeleted)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.WhenScaled)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *StatefulSetSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Replicas != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Replicas))\n\t}\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = m.Template.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.VolumeClaimTemplates) > 0 {\n\t\tfor _, e := range m.VolumeClaimTemplates {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.ServiceName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.PodManagementPolicy)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.UpdateStrategy.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.RevisionHistoryLimit != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.RevisionHistoryLimit))\n\t}\n\tn += 1 + sovGenerated(uint64(m.MinReadySeconds))\n\tif m.PersistentVolumeClaimRetentionPolicy != nil {\n\t\tl = m.PersistentVolumeClaimRetentionPolicy.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Ordinals != nil {\n\t\tl = m.Ordinals.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *StatefulSetStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.ObservedGeneration))\n\tn += 1 + sovGenerated(uint64(m.Replicas))\n\tn += 1 + sovGenerated(uint64(m.ReadyReplicas))\n\tn += 1 + sovGenerated(uint64(m.CurrentReplicas))\n\tn += 1 + sovGenerated(uint64(m.UpdatedReplicas))\n\tl = len(m.CurrentRevision)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.UpdateRevision)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.CollisionCount != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.CollisionCount))\n\t}\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tn += 1 + sovGenerated(uint64(m.AvailableReplicas))\n\treturn n\n}\n\nfunc (m *StatefulSetUpdateStrategy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.RollingUpdate != nil {\n\t\tl = m.RollingUpdate.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *ControllerRevision) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ControllerRevision{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Data:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Data), \"RawExtension\", \"runtime.RawExtension\", 1), `&`, ``, 1) + `,`,\n\t\t`Revision:` + fmt.Sprintf(\"%v\", this.Revision) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ControllerRevisionList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ControllerRevision{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ControllerRevision\", \"ControllerRevision\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ControllerRevisionList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DaemonSet) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DaemonSet{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"DaemonSetSpec\", \"DaemonSetSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"DaemonSetStatus\", \"DaemonSetStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DaemonSetCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DaemonSetCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DaemonSetList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]DaemonSet{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"DaemonSet\", \"DaemonSet\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&DaemonSetList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DaemonSetSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DaemonSetSpec{`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`Template:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Template), \"PodTemplateSpec\", \"v11.PodTemplateSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`UpdateStrategy:` + strings.Replace(strings.Replace(this.UpdateStrategy.String(), \"DaemonSetUpdateStrategy\", \"DaemonSetUpdateStrategy\", 1), `&`, ``, 1) + `,`,\n\t\t`MinReadySeconds:` + fmt.Sprintf(\"%v\", this.MinReadySeconds) + `,`,\n\t\t`RevisionHistoryLimit:` + valueToStringGenerated(this.RevisionHistoryLimit) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DaemonSetStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]DaemonSetCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"DaemonSetCondition\", \"DaemonSetCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&DaemonSetStatus{`,\n\t\t`CurrentNumberScheduled:` + fmt.Sprintf(\"%v\", this.CurrentNumberScheduled) + `,`,\n\t\t`NumberMisscheduled:` + fmt.Sprintf(\"%v\", this.NumberMisscheduled) + `,`,\n\t\t`DesiredNumberScheduled:` + fmt.Sprintf(\"%v\", this.DesiredNumberScheduled) + `,`,\n\t\t`NumberReady:` + fmt.Sprintf(\"%v\", this.NumberReady) + `,`,\n\t\t`ObservedGeneration:` + fmt.Sprintf(\"%v\", this.ObservedGeneration) + `,`,\n\t\t`UpdatedNumberScheduled:` + fmt.Sprintf(\"%v\", this.UpdatedNumberScheduled) + `,`,\n\t\t`NumberAvailable:` + fmt.Sprintf(\"%v\", this.NumberAvailable) + `,`,\n\t\t`NumberUnavailable:` + fmt.Sprintf(\"%v\", this.NumberUnavailable) + `,`,\n\t\t`CollisionCount:` + valueToStringGenerated(this.CollisionCount) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DaemonSetUpdateStrategy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DaemonSetUpdateStrategy{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`RollingUpdate:` + strings.Replace(this.RollingUpdate.String(), \"RollingUpdateDaemonSet\", \"RollingUpdateDaemonSet\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Deployment) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Deployment{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"DeploymentSpec\", \"DeploymentSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"DeploymentStatus\", \"DeploymentStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeploymentCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`LastUpdateTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastUpdateTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Deployment{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Deployment\", \"Deployment\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&DeploymentList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeploymentSpec{`,\n\t\t`Replicas:` + valueToStringGenerated(this.Replicas) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`Template:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Template), \"PodTemplateSpec\", \"v11.PodTemplateSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Strategy:` + strings.Replace(strings.Replace(this.Strategy.String(), \"DeploymentStrategy\", \"DeploymentStrategy\", 1), `&`, ``, 1) + `,`,\n\t\t`MinReadySeconds:` + fmt.Sprintf(\"%v\", this.MinReadySeconds) + `,`,\n\t\t`RevisionHistoryLimit:` + valueToStringGenerated(this.RevisionHistoryLimit) + `,`,\n\t\t`Paused:` + fmt.Sprintf(\"%v\", this.Paused) + `,`,\n\t\t`ProgressDeadlineSeconds:` + valueToStringGenerated(this.ProgressDeadlineSeconds) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]DeploymentCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"DeploymentCondition\", \"DeploymentCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&DeploymentStatus{`,\n\t\t`ObservedGeneration:` + fmt.Sprintf(\"%v\", this.ObservedGeneration) + `,`,\n\t\t`Replicas:` + fmt.Sprintf(\"%v\", this.Replicas) + `,`,\n\t\t`UpdatedReplicas:` + fmt.Sprintf(\"%v\", this.UpdatedReplicas) + `,`,\n\t\t`AvailableReplicas:` + fmt.Sprintf(\"%v\", this.AvailableReplicas) + `,`,\n\t\t`UnavailableReplicas:` + fmt.Sprintf(\"%v\", this.UnavailableReplicas) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`ReadyReplicas:` + fmt.Sprintf(\"%v\", this.ReadyReplicas) + `,`,\n\t\t`CollisionCount:` + valueToStringGenerated(this.CollisionCount) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentStrategy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeploymentStrategy{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`RollingUpdate:` + strings.Replace(this.RollingUpdate.String(), \"RollingUpdateDeployment\", \"RollingUpdateDeployment\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ReplicaSet) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ReplicaSet{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ReplicaSetSpec\", \"ReplicaSetSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"ReplicaSetStatus\", \"ReplicaSetStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ReplicaSetCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ReplicaSetCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ReplicaSetList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ReplicaSet{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ReplicaSet\", \"ReplicaSet\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ReplicaSetList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ReplicaSetSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ReplicaSetSpec{`,\n\t\t`Replicas:` + valueToStringGenerated(this.Replicas) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`Template:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Template), \"PodTemplateSpec\", \"v11.PodTemplateSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`MinReadySeconds:` + fmt.Sprintf(\"%v\", this.MinReadySeconds) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ReplicaSetStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]ReplicaSetCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"ReplicaSetCondition\", \"ReplicaSetCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&ReplicaSetStatus{`,\n\t\t`Replicas:` + fmt.Sprintf(\"%v\", this.Replicas) + `,`,\n\t\t`FullyLabeledReplicas:` + fmt.Sprintf(\"%v\", this.FullyLabeledReplicas) + `,`,\n\t\t`ObservedGeneration:` + fmt.Sprintf(\"%v\", this.ObservedGeneration) + `,`,\n\t\t`ReadyReplicas:` + fmt.Sprintf(\"%v\", this.ReadyReplicas) + `,`,\n\t\t`AvailableReplicas:` + fmt.Sprintf(\"%v\", this.AvailableReplicas) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RollingUpdateDaemonSet) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RollingUpdateDaemonSet{`,\n\t\t`MaxUnavailable:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaxUnavailable), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`MaxSurge:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaxSurge), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RollingUpdateDeployment) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RollingUpdateDeployment{`,\n\t\t`MaxUnavailable:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaxUnavailable), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`MaxSurge:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaxSurge), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RollingUpdateStatefulSetStrategy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RollingUpdateStatefulSetStrategy{`,\n\t\t`Partition:` + valueToStringGenerated(this.Partition) + `,`,\n\t\t`MaxUnavailable:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaxUnavailable), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Scale) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Scale{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ScaleSpec\", \"ScaleSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"ScaleStatus\", \"ScaleStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ScaleSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ScaleSpec{`,\n\t\t`Replicas:` + fmt.Sprintf(\"%v\", this.Replicas) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ScaleStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForSelector := make([]string, 0, len(this.Selector))\n\tfor k := range this.Selector {\n\t\tkeysForSelector = append(keysForSelector, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForSelector)\n\tmapStringForSelector := \"map[string]string{\"\n\tfor _, k := range keysForSelector {\n\t\tmapStringForSelector += fmt.Sprintf(\"%v: %v,\", k, this.Selector[k])\n\t}\n\tmapStringForSelector += \"}\"\n\ts := strings.Join([]string{`&ScaleStatus{`,\n\t\t`Replicas:` + fmt.Sprintf(\"%v\", this.Replicas) + `,`,\n\t\t`Selector:` + mapStringForSelector + `,`,\n\t\t`TargetSelector:` + fmt.Sprintf(\"%v\", this.TargetSelector) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSet) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StatefulSet{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"StatefulSetSpec\", \"StatefulSetSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"StatefulSetStatus\", \"StatefulSetStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSetCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StatefulSetCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSetList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]StatefulSet{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"StatefulSet\", \"StatefulSet\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&StatefulSetList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSetOrdinals) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StatefulSetOrdinals{`,\n\t\t`Start:` + fmt.Sprintf(\"%v\", this.Start) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSetPersistentVolumeClaimRetentionPolicy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StatefulSetPersistentVolumeClaimRetentionPolicy{`,\n\t\t`WhenDeleted:` + fmt.Sprintf(\"%v\", this.WhenDeleted) + `,`,\n\t\t`WhenScaled:` + fmt.Sprintf(\"%v\", this.WhenScaled) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSetSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForVolumeClaimTemplates := \"[]PersistentVolumeClaim{\"\n\tfor _, f := range this.VolumeClaimTemplates {\n\t\trepeatedStringForVolumeClaimTemplates += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForVolumeClaimTemplates += \"}\"\n\ts := strings.Join([]string{`&StatefulSetSpec{`,\n\t\t`Replicas:` + valueToStringGenerated(this.Replicas) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`Template:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Template), \"PodTemplateSpec\", \"v11.PodTemplateSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`VolumeClaimTemplates:` + repeatedStringForVolumeClaimTemplates + `,`,\n\t\t`ServiceName:` + fmt.Sprintf(\"%v\", this.ServiceName) + `,`,\n\t\t`PodManagementPolicy:` + fmt.Sprintf(\"%v\", this.PodManagementPolicy) + `,`,\n\t\t`UpdateStrategy:` + strings.Replace(strings.Replace(this.UpdateStrategy.String(), \"StatefulSetUpdateStrategy\", \"StatefulSetUpdateStrategy\", 1), `&`, ``, 1) + `,`,\n\t\t`RevisionHistoryLimit:` + valueToStringGenerated(this.RevisionHistoryLimit) + `,`,\n\t\t`MinReadySeconds:` + fmt.Sprintf(\"%v\", this.MinReadySeconds) + `,`,\n\t\t`PersistentVolumeClaimRetentionPolicy:` + strings.Replace(this.PersistentVolumeClaimRetentionPolicy.String(), \"StatefulSetPersistentVolumeClaimRetentionPolicy\", \"StatefulSetPersistentVolumeClaimRetentionPolicy\", 1) + `,`,\n\t\t`Ordinals:` + strings.Replace(this.Ordinals.String(), \"StatefulSetOrdinals\", \"StatefulSetOrdinals\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSetStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]StatefulSetCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"StatefulSetCondition\", \"StatefulSetCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&StatefulSetStatus{`,\n\t\t`ObservedGeneration:` + fmt.Sprintf(\"%v\", this.ObservedGeneration) + `,`,\n\t\t`Replicas:` + fmt.Sprintf(\"%v\", this.Replicas) + `,`,\n\t\t`ReadyReplicas:` + fmt.Sprintf(\"%v\", this.ReadyReplicas) + `,`,\n\t\t`CurrentReplicas:` + fmt.Sprintf(\"%v\", this.CurrentReplicas) + `,`,\n\t\t`UpdatedReplicas:` + fmt.Sprintf(\"%v\", this.UpdatedReplicas) + `,`,\n\t\t`CurrentRevision:` + fmt.Sprintf(\"%v\", this.CurrentRevision) + `,`,\n\t\t`UpdateRevision:` + fmt.Sprintf(\"%v\", this.UpdateRevision) + `,`,\n\t\t`CollisionCount:` + valueToStringGenerated(this.CollisionCount) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`AvailableReplicas:` + fmt.Sprintf(\"%v\", this.AvailableReplicas) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatefulSetUpdateStrategy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StatefulSetUpdateStrategy{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`RollingUpdate:` + strings.Replace(this.RollingUpdate.String(), \"RollingUpdateStatefulSetStrategy\", \"RollingUpdateStatefulSetStrategy\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *ControllerRevision) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ControllerRevision: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ControllerRevision: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Data\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Data.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Revision\", wireType)\n\t\t\t}\n\t\t\tm.Revision = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Revision |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ControllerRevisionList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ControllerRevisionList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ControllerRevisionList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ControllerRevision{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DaemonSet) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSet: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSet: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DaemonSetCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = DaemonSetConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DaemonSetList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, DaemonSet{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DaemonSetSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Template\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UpdateStrategy\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.UpdateStrategy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MinReadySeconds\", wireType)\n\t\t\t}\n\t\t\tm.MinReadySeconds = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MinReadySeconds |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RevisionHistoryLimit\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.RevisionHistoryLimit = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DaemonSetStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentNumberScheduled\", wireType)\n\t\t\t}\n\t\t\tm.CurrentNumberScheduled = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.CurrentNumberScheduled |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NumberMisscheduled\", wireType)\n\t\t\t}\n\t\t\tm.NumberMisscheduled = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.NumberMisscheduled |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DesiredNumberScheduled\", wireType)\n\t\t\t}\n\t\t\tm.DesiredNumberScheduled = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.DesiredNumberScheduled |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NumberReady\", wireType)\n\t\t\t}\n\t\t\tm.NumberReady = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.NumberReady |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tm.ObservedGeneration = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ObservedGeneration |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UpdatedNumberScheduled\", wireType)\n\t\t\t}\n\t\t\tm.UpdatedNumberScheduled = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.UpdatedNumberScheduled |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NumberAvailable\", wireType)\n\t\t\t}\n\t\t\tm.NumberAvailable = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.NumberAvailable |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NumberUnavailable\", wireType)\n\t\t\t}\n\t\t\tm.NumberUnavailable = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.NumberUnavailable |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 9:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CollisionCount\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.CollisionCount = &v\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, DaemonSetCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DaemonSetUpdateStrategy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetUpdateStrategy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetUpdateStrategy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = DaemonSetUpdateStrategyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RollingUpdate\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RollingUpdate == nil {\n\t\t\t\tm.RollingUpdate = &RollingUpdateDaemonSet{}\n\t\t\t}\n\t\t\tif err := m.RollingUpdate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Deployment) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Deployment: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Deployment: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = DeploymentConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastUpdateTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastUpdateTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Deployment{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Replicas = &v\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Template\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Strategy\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Strategy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MinReadySeconds\", wireType)\n\t\t\t}\n\t\t\tm.MinReadySeconds = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MinReadySeconds |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RevisionHistoryLimit\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.RevisionHistoryLimit = &v\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Paused\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Paused = bool(v != 0)\n\t\tcase 9:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ProgressDeadlineSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ProgressDeadlineSeconds = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tm.ObservedGeneration = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ObservedGeneration |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tm.Replicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Replicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UpdatedReplicas\", wireType)\n\t\t\t}\n\t\t\tm.UpdatedReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.UpdatedReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AvailableReplicas\", wireType)\n\t\t\t}\n\t\t\tm.AvailableReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.AvailableReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UnavailableReplicas\", wireType)\n\t\t\t}\n\t\t\tm.UnavailableReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.UnavailableReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, DeploymentCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadyReplicas\", wireType)\n\t\t\t}\n\t\t\tm.ReadyReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ReadyReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CollisionCount\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.CollisionCount = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentStrategy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentStrategy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentStrategy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = DeploymentStrategyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RollingUpdate\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RollingUpdate == nil {\n\t\t\t\tm.RollingUpdate = &RollingUpdateDeployment{}\n\t\t\t}\n\t\t\tif err := m.RollingUpdate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ReplicaSet) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSet: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSet: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ReplicaSetCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = ReplicaSetConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ReplicaSetList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ReplicaSet{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ReplicaSetSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Replicas = &v\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Template\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MinReadySeconds\", wireType)\n\t\t\t}\n\t\t\tm.MinReadySeconds = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MinReadySeconds |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ReplicaSetStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tm.Replicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Replicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FullyLabeledReplicas\", wireType)\n\t\t\t}\n\t\t\tm.FullyLabeledReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.FullyLabeledReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tm.ObservedGeneration = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ObservedGeneration |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadyReplicas\", wireType)\n\t\t\t}\n\t\t\tm.ReadyReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ReadyReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AvailableReplicas\", wireType)\n\t\t\t}\n\t\t\tm.AvailableReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.AvailableReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, ReplicaSetCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RollingUpdateDaemonSet) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RollingUpdateDaemonSet: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RollingUpdateDaemonSet: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxUnavailable\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaxUnavailable == nil {\n\t\t\t\tm.MaxUnavailable = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.MaxUnavailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxSurge\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaxSurge == nil {\n\t\t\t\tm.MaxSurge = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.MaxSurge.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RollingUpdateDeployment) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RollingUpdateDeployment: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RollingUpdateDeployment: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxUnavailable\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaxUnavailable == nil {\n\t\t\t\tm.MaxUnavailable = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.MaxUnavailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxSurge\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaxSurge == nil {\n\t\t\t\tm.MaxSurge = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.MaxSurge.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RollingUpdateStatefulSetStrategy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RollingUpdateStatefulSetStrategy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RollingUpdateStatefulSetStrategy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Partition\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Partition = &v\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxUnavailable\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaxUnavailable == nil {\n\t\t\t\tm.MaxUnavailable = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.MaxUnavailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Scale) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Scale: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Scale: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ScaleSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ScaleSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ScaleSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tm.Replicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Replicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ScaleStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ScaleStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ScaleStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tm.Replicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Replicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Selector[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetSelector\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TargetSelector = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSet) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSet: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSet: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSetCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = StatefulSetConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSetList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, StatefulSet{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSetOrdinals) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetOrdinals: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetOrdinals: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Start\", wireType)\n\t\t\t}\n\t\t\tm.Start = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Start |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSetPersistentVolumeClaimRetentionPolicy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetPersistentVolumeClaimRetentionPolicy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetPersistentVolumeClaimRetentionPolicy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field WhenDeleted\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.WhenDeleted = PersistentVolumeClaimRetentionPolicyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field WhenScaled\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.WhenScaled = PersistentVolumeClaimRetentionPolicyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSetSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Replicas = &v\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Template\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeClaimTemplates\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumeClaimTemplates = append(m.VolumeClaimTemplates, v11.PersistentVolumeClaim{})\n\t\t\tif err := m.VolumeClaimTemplates[len(m.VolumeClaimTemplates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServiceName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ServiceName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodManagementPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PodManagementPolicy = PodManagementPolicyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UpdateStrategy\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.UpdateStrategy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RevisionHistoryLimit\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.RevisionHistoryLimit = &v\n\t\tcase 9:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MinReadySeconds\", wireType)\n\t\t\t}\n\t\t\tm.MinReadySeconds = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MinReadySeconds |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PersistentVolumeClaimRetentionPolicy\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.PersistentVolumeClaimRetentionPolicy == nil {\n\t\t\t\tm.PersistentVolumeClaimRetentionPolicy = &StatefulSetPersistentVolumeClaimRetentionPolicy{}\n\t\t\t}\n\t\t\tif err := m.PersistentVolumeClaimRetentionPolicy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ordinals\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Ordinals == nil {\n\t\t\t\tm.Ordinals = &StatefulSetOrdinals{}\n\t\t\t}\n\t\t\tif err := m.Ordinals.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSetStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tm.ObservedGeneration = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ObservedGeneration |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tm.Replicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Replicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadyReplicas\", wireType)\n\t\t\t}\n\t\t\tm.ReadyReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ReadyReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentReplicas\", wireType)\n\t\t\t}\n\t\t\tm.CurrentReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.CurrentReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UpdatedReplicas\", wireType)\n\t\t\t}\n\t\t\tm.UpdatedReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.UpdatedReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentRevision\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.CurrentRevision = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UpdateRevision\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.UpdateRevision = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CollisionCount\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.CollisionCount = &v\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, StatefulSetCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AvailableReplicas\", wireType)\n\t\t\t}\n\t\t\tm.AvailableReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.AvailableReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatefulSetUpdateStrategy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetUpdateStrategy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatefulSetUpdateStrategy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = StatefulSetUpdateStrategyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RollingUpdate\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RollingUpdate == nil {\n\t\t\t\tm.RollingUpdate = &RollingUpdateStatefulSetStrategy{}\n\t\t\t}\n\t\t\tif err := m.RollingUpdate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1beta2/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.apps.v1beta2;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/util/intstr/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/apps/v1beta2\";\n\n// DEPRECATED - This group version of ControllerRevision is deprecated by apps/v1/ControllerRevision. See the\n// release notes for more information.\n// ControllerRevision implements an immutable snapshot of state data. Clients\n// are responsible for serializing and deserializing the objects that contain\n// their internal state.\n// Once a ControllerRevision has been successfully created, it can not be updated.\n// The API Server will fail validation of all requests that attempt to mutate\n// the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both\n// the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However,\n// it may be subject to name and representation changes in future releases, and clients should not\n// depend on its stability. It is primarily for internal use by controllers.\nmessage ControllerRevision {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Data is the serialized representation of the state.\n  optional .k8s.io.apimachinery.pkg.runtime.RawExtension data = 2;\n\n  // Revision indicates the revision of the state represented by Data.\n  optional int64 revision = 3;\n}\n\n// ControllerRevisionList is a resource containing a list of ControllerRevision objects.\nmessage ControllerRevisionList {\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is the list of ControllerRevisions\n  repeated ControllerRevision items = 2;\n}\n\n// DEPRECATED - This group version of DaemonSet is deprecated by apps/v1/DaemonSet. See the release notes for\n// more information.\n// DaemonSet represents the configuration of a daemon set.\nmessage DaemonSet {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // The desired behavior of this daemon set.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional DaemonSetSpec spec = 2;\n\n  // The current status of this daemon set. This data may be\n  // out of date by some window of time.\n  // Populated by the system.\n  // Read-only.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional DaemonSetStatus status = 3;\n}\n\n// DaemonSetCondition describes the state of a DaemonSet at a certain point.\nmessage DaemonSetCondition {\n  // Type of DaemonSet condition.\n  optional string type = 1;\n\n  // Status of the condition, one of True, False, Unknown.\n  optional string status = 2;\n\n  // Last time the condition transitioned from one status to another.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // The reason for the condition's last transition.\n  // +optional\n  optional string reason = 4;\n\n  // A human readable message indicating details about the transition.\n  // +optional\n  optional string message = 5;\n}\n\n// DaemonSetList is a collection of daemon sets.\nmessage DaemonSetList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // A list of daemon sets.\n  repeated DaemonSet items = 2;\n}\n\n// DaemonSetSpec is the specification of a daemon set.\nmessage DaemonSetSpec {\n  // A label query over pods that are managed by the daemon set.\n  // Must match in order to be controlled.\n  // It must match the pod template's labels.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 1;\n\n  // An object that describes the pod that will be created.\n  // The DaemonSet will create exactly one copy of this pod on every node\n  // that matches the template's node selector (or on every node if no node\n  // selector is specified).\n  // The only allowed template.spec.restartPolicy value is \"Always\".\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\n  optional .k8s.io.api.core.v1.PodTemplateSpec template = 2;\n\n  // An update strategy to replace existing DaemonSet pods with new pods.\n  // +optional\n  optional DaemonSetUpdateStrategy updateStrategy = 3;\n\n  // The minimum number of seconds for which a newly created DaemonSet pod should\n  // be ready without any of its container crashing, for it to be considered\n  // available. Defaults to 0 (pod will be considered available as soon as it\n  // is ready).\n  // +optional\n  optional int32 minReadySeconds = 4;\n\n  // The number of old history to retain to allow rollback.\n  // This is a pointer to distinguish between explicit zero and not specified.\n  // Defaults to 10.\n  // +optional\n  optional int32 revisionHistoryLimit = 6;\n}\n\n// DaemonSetStatus represents the current status of a daemon set.\nmessage DaemonSetStatus {\n  // The number of nodes that are running at least 1\n  // daemon pod and are supposed to run the daemon pod.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\n  optional int32 currentNumberScheduled = 1;\n\n  // The number of nodes that are running the daemon pod, but are\n  // not supposed to run the daemon pod.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\n  optional int32 numberMisscheduled = 2;\n\n  // The total number of nodes that should be running the daemon\n  // pod (including nodes correctly running the daemon pod).\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\n  optional int32 desiredNumberScheduled = 3;\n\n  // Total number of nodes that should be running the daemon pod and have one\n  // or more of the daemon pod running with a Ready Condition by passing the readinessProbe.\n  optional int32 numberReady = 4;\n\n  // The most recent generation observed by the daemon set controller.\n  // +optional\n  optional int64 observedGeneration = 5;\n\n  // The total number of nodes that are running updated daemon pod\n  // +optional\n  optional int32 updatedNumberScheduled = 6;\n\n  // The number of nodes that should be running the\n  // daemon pod and have one or more of the daemon pod running and\n  // available (ready for at least spec.minReadySeconds)\n  // +optional\n  optional int32 numberAvailable = 7;\n\n  // The number of nodes that should be running the\n  // daemon pod and have none of the daemon pod running and available\n  // (ready for at least spec.minReadySeconds)\n  // +optional\n  optional int32 numberUnavailable = 8;\n\n  // Count of hash collisions for the DaemonSet. The DaemonSet controller\n  // uses this field as a collision avoidance mechanism when it needs to\n  // create the name for the newest ControllerRevision.\n  // +optional\n  optional int32 collisionCount = 9;\n\n  // Represents the latest available observations of a DaemonSet's current state.\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=type\n  repeated DaemonSetCondition conditions = 10;\n}\n\n// DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.\nmessage DaemonSetUpdateStrategy {\n  // Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is RollingUpdate.\n  // +optional\n  optional string type = 1;\n\n  // Rolling update config params. Present only if type = \"RollingUpdate\".\n  // ---\n  // TODO: Update this to follow our convention for oneOf, whatever we decide it\n  // to be. Same as Deployment `strategy.rollingUpdate`.\n  // See https://github.com/kubernetes/kubernetes/issues/35345\n  // +optional\n  optional RollingUpdateDaemonSet rollingUpdate = 2;\n}\n\n// DEPRECATED - This group version of Deployment is deprecated by apps/v1/Deployment. See the release notes for\n// more information.\n// Deployment enables declarative updates for Pods and ReplicaSets.\nmessage Deployment {\n  // Standard object metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Specification of the desired behavior of the Deployment.\n  // +optional\n  optional DeploymentSpec spec = 2;\n\n  // Most recently observed status of the Deployment.\n  // +optional\n  optional DeploymentStatus status = 3;\n}\n\n// DeploymentCondition describes the state of a deployment at a certain point.\nmessage DeploymentCondition {\n  // Type of deployment condition.\n  optional string type = 1;\n\n  // Status of the condition, one of True, False, Unknown.\n  optional string status = 2;\n\n  // The last time this condition was updated.\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastUpdateTime = 6;\n\n  // Last time the condition transitioned from one status to another.\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 7;\n\n  // The reason for the condition's last transition.\n  optional string reason = 4;\n\n  // A human readable message indicating details about the transition.\n  optional string message = 5;\n}\n\n// DeploymentList is a list of Deployments.\nmessage DeploymentList {\n  // Standard list metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is the list of Deployments.\n  repeated Deployment items = 2;\n}\n\n// DeploymentSpec is the specification of the desired behavior of the Deployment.\nmessage DeploymentSpec {\n  // Number of desired pods. This is a pointer to distinguish between explicit\n  // zero and not specified. Defaults to 1.\n  // +optional\n  optional int32 replicas = 1;\n\n  // Label selector for pods. Existing ReplicaSets whose pods are\n  // selected by this will be the ones affected by this deployment.\n  // It must match the pod template's labels.\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2;\n\n  // Template describes the pods that will be created.\n  // The only allowed template.spec.restartPolicy value is \"Always\".\n  optional .k8s.io.api.core.v1.PodTemplateSpec template = 3;\n\n  // The deployment strategy to use to replace existing pods with new ones.\n  // +optional\n  // +patchStrategy=retainKeys\n  optional DeploymentStrategy strategy = 4;\n\n  // Minimum number of seconds for which a newly created pod should be ready\n  // without any of its container crashing, for it to be considered available.\n  // Defaults to 0 (pod will be considered available as soon as it is ready)\n  // +optional\n  optional int32 minReadySeconds = 5;\n\n  // The number of old ReplicaSets to retain to allow rollback.\n  // This is a pointer to distinguish between explicit zero and not specified.\n  // Defaults to 10.\n  // +optional\n  optional int32 revisionHistoryLimit = 6;\n\n  // Indicates that the deployment is paused.\n  // +optional\n  optional bool paused = 7;\n\n  // The maximum time in seconds for a deployment to make progress before it\n  // is considered to be failed. The deployment controller will continue to\n  // process failed deployments and a condition with a ProgressDeadlineExceeded\n  // reason will be surfaced in the deployment status. Note that progress will\n  // not be estimated during the time a deployment is paused. Defaults to 600s.\n  optional int32 progressDeadlineSeconds = 9;\n}\n\n// DeploymentStatus is the most recently observed status of the Deployment.\nmessage DeploymentStatus {\n  // The generation observed by the deployment controller.\n  // +optional\n  optional int64 observedGeneration = 1;\n\n  // Total number of non-terminated pods targeted by this deployment (their labels match the selector).\n  // +optional\n  optional int32 replicas = 2;\n\n  // Total number of non-terminated pods targeted by this deployment that have the desired template spec.\n  // +optional\n  optional int32 updatedReplicas = 3;\n\n  // readyReplicas is the number of pods targeted by this Deployment controller with a Ready Condition.\n  // +optional\n  optional int32 readyReplicas = 7;\n\n  // Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.\n  // +optional\n  optional int32 availableReplicas = 4;\n\n  // Total number of unavailable pods targeted by this deployment. This is the total number of\n  // pods that are still required for the deployment to have 100% available capacity. They may\n  // either be pods that are running but not yet available or pods that still have not been created.\n  // +optional\n  optional int32 unavailableReplicas = 5;\n\n  // Represents the latest available observations of a deployment's current state.\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=type\n  repeated DeploymentCondition conditions = 6;\n\n  // Count of hash collisions for the Deployment. The Deployment controller uses this\n  // field as a collision avoidance mechanism when it needs to create the name for the\n  // newest ReplicaSet.\n  // +optional\n  optional int32 collisionCount = 8;\n}\n\n// DeploymentStrategy describes how to replace existing pods with new ones.\nmessage DeploymentStrategy {\n  // Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.\n  // +optional\n  optional string type = 1;\n\n  // Rolling update config params. Present only if DeploymentStrategyType =\n  // RollingUpdate.\n  // ---\n  // TODO: Update this to follow our convention for oneOf, whatever we decide it\n  // to be.\n  // +optional\n  optional RollingUpdateDeployment rollingUpdate = 2;\n}\n\n// DEPRECATED - This group version of ReplicaSet is deprecated by apps/v1/ReplicaSet. See the release notes for\n// more information.\n// ReplicaSet ensures that a specified number of pod replicas are running at any given time.\nmessage ReplicaSet {\n  // If the Labels of a ReplicaSet are empty, they are defaulted to\n  // be the same as the Pod(s) that the ReplicaSet manages.\n  // Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec defines the specification of the desired behavior of the ReplicaSet.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional ReplicaSetSpec spec = 2;\n\n  // Status is the most recently observed status of the ReplicaSet.\n  // This data may be out of date by some window of time.\n  // Populated by the system.\n  // Read-only.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional ReplicaSetStatus status = 3;\n}\n\n// ReplicaSetCondition describes the state of a replica set at a certain point.\nmessage ReplicaSetCondition {\n  // Type of replica set condition.\n  optional string type = 1;\n\n  // Status of the condition, one of True, False, Unknown.\n  optional string status = 2;\n\n  // The last time the condition transitioned from one status to another.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // The reason for the condition's last transition.\n  // +optional\n  optional string reason = 4;\n\n  // A human readable message indicating details about the transition.\n  // +optional\n  optional string message = 5;\n}\n\n// ReplicaSetList is a collection of ReplicaSets.\nmessage ReplicaSetList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of ReplicaSets.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller\n  repeated ReplicaSet items = 2;\n}\n\n// ReplicaSetSpec is the specification of a ReplicaSet.\nmessage ReplicaSetSpec {\n  // Replicas is the number of desired replicas.\n  // This is a pointer to distinguish between explicit zero and unspecified.\n  // Defaults to 1.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller\n  // +optional\n  optional int32 replicas = 1;\n\n  // Minimum number of seconds for which a newly created pod should be ready\n  // without any of its container crashing, for it to be considered available.\n  // Defaults to 0 (pod will be considered available as soon as it is ready)\n  // +optional\n  optional int32 minReadySeconds = 4;\n\n  // Selector is a label query over pods that should match the replica count.\n  // Label keys and values that must match in order to be controlled by this replica set.\n  // It must match the pod template's labels.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2;\n\n  // Template is the object that describes the pod that will be created if\n  // insufficient replicas are detected.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\n  // +optional\n  optional .k8s.io.api.core.v1.PodTemplateSpec template = 3;\n}\n\n// ReplicaSetStatus represents the current status of a ReplicaSet.\nmessage ReplicaSetStatus {\n  // Replicas is the most recently observed number of replicas.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller\n  optional int32 replicas = 1;\n\n  // The number of pods that have labels matching the labels of the pod template of the replicaset.\n  // +optional\n  optional int32 fullyLabeledReplicas = 2;\n\n  // readyReplicas is the number of pods targeted by this ReplicaSet controller with a Ready Condition.\n  // +optional\n  optional int32 readyReplicas = 4;\n\n  // The number of available replicas (ready for at least minReadySeconds) for this replica set.\n  // +optional\n  optional int32 availableReplicas = 5;\n\n  // ObservedGeneration reflects the generation of the most recently observed ReplicaSet.\n  // +optional\n  optional int64 observedGeneration = 3;\n\n  // Represents the latest available observations of a replica set's current state.\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=type\n  repeated ReplicaSetCondition conditions = 6;\n}\n\n// Spec to control the desired behavior of daemon set rolling update.\nmessage RollingUpdateDaemonSet {\n  // The maximum number of DaemonSet pods that can be unavailable during the\n  // update. Value can be an absolute number (ex: 5) or a percentage of total\n  // number of DaemonSet pods at the start of the update (ex: 10%). Absolute\n  // number is calculated from percentage by rounding up.\n  // This cannot be 0 if MaxSurge is 0\n  // Default value is 1.\n  // Example: when this is set to 30%, at most 30% of the total number of nodes\n  // that should be running the daemon pod (i.e. status.desiredNumberScheduled)\n  // can have their pods stopped for an update at any given time. The update\n  // starts by stopping at most 30% of those DaemonSet pods and then brings\n  // up new DaemonSet pods in their place. Once the new pods are available,\n  // it then proceeds onto other DaemonSet pods, thus ensuring that at least\n  // 70% of original number of DaemonSet pods are available at all times during\n  // the update.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString maxUnavailable = 1;\n\n  // The maximum number of nodes with an existing available DaemonSet pod that\n  // can have an updated DaemonSet pod during during an update.\n  // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n  // This can not be 0 if MaxUnavailable is 0.\n  // Absolute number is calculated from percentage by rounding up to a minimum of 1.\n  // Default value is 0.\n  // Example: when this is set to 30%, at most 30% of the total number of nodes\n  // that should be running the daemon pod (i.e. status.desiredNumberScheduled)\n  // can have their a new pod created before the old pod is marked as deleted.\n  // The update starts by launching new pods on 30% of nodes. Once an updated\n  // pod is available (Ready for at least minReadySeconds) the old DaemonSet pod\n  // on that node is marked deleted. If the old pod becomes unavailable for any\n  // reason (Ready transitions to false, is evicted, or is drained) an updated\n  // pod is immediatedly created on that node without considering surge limits.\n  // Allowing surge implies the possibility that the resources consumed by the\n  // daemonset on any given node can double if the readiness check fails, and\n  // so resource intensive daemonsets should take into account that they may\n  // cause evictions during disruption.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString maxSurge = 2;\n}\n\n// Spec to control the desired behavior of rolling update.\nmessage RollingUpdateDeployment {\n  // The maximum number of pods that can be unavailable during the update.\n  // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n  // Absolute number is calculated from percentage by rounding down.\n  // This can not be 0 if MaxSurge is 0.\n  // Defaults to 25%.\n  // Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods\n  // immediately when the rolling update starts. Once new pods are ready, old ReplicaSet\n  // can be scaled down further, followed by scaling up the new ReplicaSet, ensuring\n  // that the total number of pods available at all times during the update is at\n  // least 70% of desired pods.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString maxUnavailable = 1;\n\n  // The maximum number of pods that can be scheduled above the desired number of\n  // pods.\n  // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n  // This can not be 0 if MaxUnavailable is 0.\n  // Absolute number is calculated from percentage by rounding up.\n  // Defaults to 25%.\n  // Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when\n  // the rolling update starts, such that the total number of old and new pods do not exceed\n  // 130% of desired pods. Once old pods have been killed,\n  // new ReplicaSet can be scaled up further, ensuring that total number of pods running\n  // at any time during the update is at most 130% of desired pods.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString maxSurge = 2;\n}\n\n// RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.\nmessage RollingUpdateStatefulSetStrategy {\n  // Partition indicates the ordinal at which the StatefulSet should be partitioned\n  // for updates. During a rolling update, all pods from ordinal Replicas-1 to\n  // Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched.\n  // This is helpful in being able to do a canary based deployment. The default value is 0.\n  // +optional\n  optional int32 partition = 1;\n\n  // The maximum number of pods that can be unavailable during the update.\n  // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n  // Absolute number is calculated from percentage by rounding up. This can not be 0.\n  // Defaults to 1. This field is alpha-level and is only honored by servers that enable the\n  // MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to\n  // Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it\n  // will be counted towards MaxUnavailable.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString maxUnavailable = 2;\n}\n\n// Scale represents a scaling request for a resource.\nmessage Scale {\n  // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\n  // +optional\n  optional ScaleSpec spec = 2;\n\n  // current status of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. Read-only.\n  // +optional\n  optional ScaleStatus status = 3;\n}\n\n// ScaleSpec describes the attributes of a scale subresource\nmessage ScaleSpec {\n  // desired number of instances for the scaled object.\n  // +optional\n  optional int32 replicas = 1;\n}\n\n// ScaleStatus represents the current status of a scale subresource.\nmessage ScaleStatus {\n  // actual number of observed instances of the scaled object.\n  optional int32 replicas = 1;\n\n  // selector is a label query over pods that should match the replicas count. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\n  // +optional\n  // +mapType=atomic\n  map<string, string> selector = 2;\n\n  // label selector for pods that should match the replicas count. This is a serializated\n  // version of both map-based and more expressive set-based selectors. This is done to\n  // avoid introspection in the clients. The string will be in the same format as the\n  // query-param syntax. If the target type only supports map-based selectors, both this\n  // field and map-based selector field are populated.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n  // +optional\n  optional string targetSelector = 3;\n}\n\n// DEPRECATED - This group version of StatefulSet is deprecated by apps/v1/StatefulSet. See the release notes for\n// more information.\n// StatefulSet represents a set of pods with consistent identities.\n// Identities are defined as:\n//   - Network: A single stable DNS and hostname.\n//   - Storage: As many VolumeClaims as requested.\n//\n// The StatefulSet guarantees that a given network identity will always\n// map to the same storage identity.\nmessage StatefulSet {\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec defines the desired identities of pods in this set.\n  // +optional\n  optional StatefulSetSpec spec = 2;\n\n  // Status is the current status of Pods in this StatefulSet. This data\n  // may be out of date by some window of time.\n  // +optional\n  optional StatefulSetStatus status = 3;\n}\n\n// StatefulSetCondition describes the state of a statefulset at a certain point.\nmessage StatefulSetCondition {\n  // Type of statefulset condition.\n  optional string type = 1;\n\n  // Status of the condition, one of True, False, Unknown.\n  optional string status = 2;\n\n  // Last time the condition transitioned from one status to another.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // The reason for the condition's last transition.\n  // +optional\n  optional string reason = 4;\n\n  // A human readable message indicating details about the transition.\n  // +optional\n  optional string message = 5;\n}\n\n// StatefulSetList is a collection of StatefulSets.\nmessage StatefulSetList {\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  repeated StatefulSet items = 2;\n}\n\n// StatefulSetOrdinals describes the policy used for replica ordinal assignment\n// in this StatefulSet.\nmessage StatefulSetOrdinals {\n  // start is the number representing the first replica's index. It may be used\n  // to number replicas from an alternate index (eg: 1-indexed) over the default\n  // 0-indexed names, or to orchestrate progressive movement of replicas from\n  // one StatefulSet to another.\n  // If set, replica indices will be in the range:\n  //   [.spec.ordinals.start, .spec.ordinals.start + .spec.replicas).\n  // If unset, defaults to 0. Replica indices will be in the range:\n  //   [0, .spec.replicas).\n  // +optional\n  optional int32 start = 1;\n}\n\n// StatefulSetPersistentVolumeClaimRetentionPolicy describes the policy used for PVCs\n// created from the StatefulSet VolumeClaimTemplates.\nmessage StatefulSetPersistentVolumeClaimRetentionPolicy {\n  // WhenDeleted specifies what happens to PVCs created from StatefulSet\n  // VolumeClaimTemplates when the StatefulSet is deleted. The default policy\n  // of `Retain` causes PVCs to not be affected by StatefulSet deletion. The\n  // `Delete` policy causes those PVCs to be deleted.\n  optional string whenDeleted = 1;\n\n  // WhenScaled specifies what happens to PVCs created from StatefulSet\n  // VolumeClaimTemplates when the StatefulSet is scaled down. The default\n  // policy of `Retain` causes PVCs to not be affected by a scaledown. The\n  // `Delete` policy causes the associated PVCs for any excess pods above\n  // the replica count to be deleted.\n  optional string whenScaled = 2;\n}\n\n// A StatefulSetSpec is the specification of a StatefulSet.\nmessage StatefulSetSpec {\n  // replicas is the desired number of replicas of the given Template.\n  // These are replicas in the sense that they are instantiations of the\n  // same Template, but individual replicas also have a consistent identity.\n  // If unspecified, defaults to 1.\n  // TODO: Consider a rename of this field.\n  // +optional\n  optional int32 replicas = 1;\n\n  // selector is a label query over pods that should match the replica count.\n  // It must match the pod template's labels.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2;\n\n  // template is the object that describes the pod that will be created if\n  // insufficient replicas are detected. Each pod stamped out by the StatefulSet\n  // will fulfill this Template, but have a unique identity from the rest\n  // of the StatefulSet. Each pod will be named with the format\n  // <statefulsetname>-<podindex>. For example, a pod in a StatefulSet named\n  // \"web\" with index number \"3\" would be named \"web-3\".\n  // The only allowed template.spec.restartPolicy value is \"Always\".\n  optional .k8s.io.api.core.v1.PodTemplateSpec template = 3;\n\n  // volumeClaimTemplates is a list of claims that pods are allowed to reference.\n  // The StatefulSet controller is responsible for mapping network identities to\n  // claims in a way that maintains the identity of a pod. Every claim in\n  // this list must have at least one matching (by name) volumeMount in one\n  // container in the template. A claim in this list takes precedence over\n  // any volumes in the template, with the same name.\n  // TODO: Define the behavior if a claim already exists with the same name.\n  // +optional\n  // +listType=atomic\n  repeated .k8s.io.api.core.v1.PersistentVolumeClaim volumeClaimTemplates = 4;\n\n  // serviceName is the name of the service that governs this StatefulSet.\n  // This service must exist before the StatefulSet, and is responsible for\n  // the network identity of the set. Pods get DNS/hostnames that follow the\n  // pattern: pod-specific-string.serviceName.default.svc.cluster.local\n  // where \"pod-specific-string\" is managed by the StatefulSet controller.\n  optional string serviceName = 5;\n\n  // podManagementPolicy controls how pods are created during initial scale up,\n  // when replacing pods on nodes, or when scaling down. The default policy is\n  // `OrderedReady`, where pods are created in increasing order (pod-0, then\n  // pod-1, etc) and the controller will wait until each pod is ready before\n  // continuing. When scaling down, the pods are removed in the opposite order.\n  // The alternative policy is `Parallel` which will create pods in parallel\n  // to match the desired scale without waiting, and on scale down will delete\n  // all pods at once.\n  // +optional\n  optional string podManagementPolicy = 6;\n\n  // updateStrategy indicates the StatefulSetUpdateStrategy that will be\n  // employed to update Pods in the StatefulSet when a revision is made to\n  // Template.\n  optional StatefulSetUpdateStrategy updateStrategy = 7;\n\n  // revisionHistoryLimit is the maximum number of revisions that will\n  // be maintained in the StatefulSet's revision history. The revision history\n  // consists of all revisions not represented by a currently applied\n  // StatefulSetSpec version. The default value is 10.\n  optional int32 revisionHistoryLimit = 8;\n\n  // Minimum number of seconds for which a newly created pod should be ready\n  // without any of its container crashing for it to be considered available.\n  // Defaults to 0 (pod will be considered available as soon as it is ready)\n  // +optional\n  optional int32 minReadySeconds = 9;\n\n  // PersistentVolumeClaimRetentionPolicy describes the policy used for PVCs created from\n  // the StatefulSet VolumeClaimTemplates.\n  // +optional\n  optional StatefulSetPersistentVolumeClaimRetentionPolicy persistentVolumeClaimRetentionPolicy = 10;\n\n  // ordinals controls the numbering of replica indices in a StatefulSet. The\n  // default ordinals behavior assigns a \"0\" index to the first replica and\n  // increments the index by one for each additional replica requested.\n  // +optional\n  optional StatefulSetOrdinals ordinals = 11;\n}\n\n// StatefulSetStatus represents the current state of a StatefulSet.\nmessage StatefulSetStatus {\n  // observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the\n  // StatefulSet's generation, which is updated on mutation by the API Server.\n  // +optional\n  optional int64 observedGeneration = 1;\n\n  // replicas is the number of Pods created by the StatefulSet controller.\n  optional int32 replicas = 2;\n\n  // readyReplicas is the number of pods created by this StatefulSet controller with a Ready Condition.\n  optional int32 readyReplicas = 3;\n\n  // currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version\n  // indicated by currentRevision.\n  optional int32 currentReplicas = 4;\n\n  // updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version\n  // indicated by updateRevision.\n  optional int32 updatedReplicas = 5;\n\n  // currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the\n  // sequence [0,currentReplicas).\n  optional string currentRevision = 6;\n\n  // updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence\n  // [replicas-updatedReplicas,replicas)\n  optional string updateRevision = 7;\n\n  // collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller\n  // uses this field as a collision avoidance mechanism when it needs to create the name for the\n  // newest ControllerRevision.\n  // +optional\n  optional int32 collisionCount = 9;\n\n  // Represents the latest available observations of a statefulset's current state.\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=type\n  repeated StatefulSetCondition conditions = 10;\n\n  // Total number of available pods (ready for at least minReadySeconds) targeted by this StatefulSet.\n  // +optional\n  optional int32 availableReplicas = 11;\n}\n\n// StatefulSetUpdateStrategy indicates the strategy that the StatefulSet\n// controller will use to perform updates. It includes any additional parameters\n// necessary to perform the update for the indicated strategy.\nmessage StatefulSetUpdateStrategy {\n  // Type indicates the type of the StatefulSetUpdateStrategy.\n  // Default is RollingUpdate.\n  // +optional\n  optional string type = 1;\n\n  // RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.\n  // +optional\n  optional RollingUpdateStatefulSetStrategy rollingUpdate = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1beta2/register.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta2\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"apps\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta2\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&Deployment{},\n\t\t&DeploymentList{},\n\t\t&Scale{},\n\t\t&StatefulSet{},\n\t\t&StatefulSetList{},\n\t\t&DaemonSet{},\n\t\t&DaemonSetList{},\n\t\t&ReplicaSet{},\n\t\t&ReplicaSetList{},\n\t\t&ControllerRevision{},\n\t\t&ControllerRevisionList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1beta2/types.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta2\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\nconst (\n\tControllerRevisionHashLabelKey = \"controller-revision-hash\"\n\tStatefulSetRevisionLabel       = ControllerRevisionHashLabelKey\n\tDeprecatedRollbackTo           = \"deprecated.deployment.rollback.to\"\n\tDeprecatedTemplateGeneration   = \"deprecated.daemonset.template.generation\"\n\tStatefulSetPodNameLabel        = \"statefulset.kubernetes.io/pod-name\"\n)\n\n// ScaleSpec describes the attributes of a scale subresource\ntype ScaleSpec struct {\n\t// desired number of instances for the scaled object.\n\t// +optional\n\tReplicas int32 `json:\"replicas,omitempty\" protobuf:\"varint,1,opt,name=replicas\"`\n}\n\n// ScaleStatus represents the current status of a scale subresource.\ntype ScaleStatus struct {\n\t// actual number of observed instances of the scaled object.\n\tReplicas int32 `json:\"replicas\" protobuf:\"varint,1,opt,name=replicas\"`\n\n\t// selector is a label query over pods that should match the replicas count. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\n\t// +optional\n\t// +mapType=atomic\n\tSelector map[string]string `json:\"selector,omitempty\" protobuf:\"bytes,2,rep,name=selector\"`\n\n\t// label selector for pods that should match the replicas count. This is a serializated\n\t// version of both map-based and more expressive set-based selectors. This is done to\n\t// avoid introspection in the clients. The string will be in the same format as the\n\t// query-param syntax. If the target type only supports map-based selectors, both this\n\t// field and map-based selector field are populated.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n\t// +optional\n\tTargetSelector string `json:\"targetSelector,omitempty\" protobuf:\"bytes,3,opt,name=targetSelector\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n// +k8s:prerelease-lifecycle-gen:deprecated=1.9\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=autoscaling,v1,Scale\n\n// Scale represents a scaling request for a resource.\ntype Scale struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\n\t// +optional\n\tSpec ScaleSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// current status of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. Read-only.\n\t// +optional\n\tStatus ScaleStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +genclient\n// +genclient:method=GetScale,verb=get,subresource=scale,result=Scale\n// +genclient:method=UpdateScale,verb=update,subresource=scale,input=Scale,result=Scale\n// +genclient:method=ApplyScale,verb=apply,subresource=scale,input=Scale,result=Scale\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n// +k8s:prerelease-lifecycle-gen:deprecated=1.9\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,StatefulSet\n\n// DEPRECATED - This group version of StatefulSet is deprecated by apps/v1/StatefulSet. See the release notes for\n// more information.\n// StatefulSet represents a set of pods with consistent identities.\n// Identities are defined as:\n//   - Network: A single stable DNS and hostname.\n//   - Storage: As many VolumeClaims as requested.\n//\n// The StatefulSet guarantees that a given network identity will always\n// map to the same storage identity.\ntype StatefulSet struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec defines the desired identities of pods in this set.\n\t// +optional\n\tSpec StatefulSetSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status is the current status of Pods in this StatefulSet. This data\n\t// may be out of date by some window of time.\n\t// +optional\n\tStatus StatefulSetStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// PodManagementPolicyType defines the policy for creating pods under a stateful set.\ntype PodManagementPolicyType string\n\nconst (\n\t// OrderedReadyPodManagement will create pods in strictly increasing order on\n\t// scale up and strictly decreasing order on scale down, progressing only when\n\t// the previous pod is ready or terminated. At most one pod will be changed\n\t// at any time.\n\tOrderedReadyPodManagement PodManagementPolicyType = \"OrderedReady\"\n\t// ParallelPodManagement will create and delete pods as soon as the stateful set\n\t// replica count is changed, and will not wait for pods to be ready or complete\n\t// termination.\n\tParallelPodManagement PodManagementPolicyType = \"Parallel\"\n)\n\n// StatefulSetUpdateStrategy indicates the strategy that the StatefulSet\n// controller will use to perform updates. It includes any additional parameters\n// necessary to perform the update for the indicated strategy.\ntype StatefulSetUpdateStrategy struct {\n\t// Type indicates the type of the StatefulSetUpdateStrategy.\n\t// Default is RollingUpdate.\n\t// +optional\n\tType StatefulSetUpdateStrategyType `json:\"type,omitempty\" protobuf:\"bytes,1,opt,name=type,casttype=StatefulSetStrategyType\"`\n\t// RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.\n\t// +optional\n\tRollingUpdate *RollingUpdateStatefulSetStrategy `json:\"rollingUpdate,omitempty\" protobuf:\"bytes,2,opt,name=rollingUpdate\"`\n}\n\n// StatefulSetUpdateStrategyType is a string enumeration type that enumerates\n// all possible update strategies for the StatefulSet controller.\ntype StatefulSetUpdateStrategyType string\n\nconst (\n\t// RollingUpdateStatefulSetStrategyType indicates that update will be\n\t// applied to all Pods in the StatefulSet with respect to the StatefulSet\n\t// ordering constraints. When a scale operation is performed with this\n\t// strategy, new Pods will be created from the specification version indicated\n\t// by the StatefulSet's updateRevision.\n\tRollingUpdateStatefulSetStrategyType StatefulSetUpdateStrategyType = \"RollingUpdate\"\n\t// OnDeleteStatefulSetStrategyType triggers the legacy behavior. Version\n\t// tracking and ordered rolling restarts are disabled. Pods are recreated\n\t// from the StatefulSetSpec when they are manually deleted. When a scale\n\t// operation is performed with this strategy,specification version indicated\n\t// by the StatefulSet's currentRevision.\n\tOnDeleteStatefulSetStrategyType StatefulSetUpdateStrategyType = \"OnDelete\"\n)\n\n// RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.\ntype RollingUpdateStatefulSetStrategy struct {\n\t// Partition indicates the ordinal at which the StatefulSet should be partitioned\n\t// for updates. During a rolling update, all pods from ordinal Replicas-1 to\n\t// Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched.\n\t// This is helpful in being able to do a canary based deployment. The default value is 0.\n\t// +optional\n\tPartition *int32 `json:\"partition,omitempty\" protobuf:\"varint,1,opt,name=partition\"`\n\t// The maximum number of pods that can be unavailable during the update.\n\t// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n\t// Absolute number is calculated from percentage by rounding up. This can not be 0.\n\t// Defaults to 1. This field is alpha-level and is only honored by servers that enable the\n\t// MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to\n\t// Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it\n\t// will be counted towards MaxUnavailable.\n\t// +optional\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\" protobuf:\"varint,2,opt,name=maxUnavailable\"`\n}\n\n// PersistentVolumeClaimRetentionPolicyType is a string enumeration of the policies that will determine\n// when volumes from the VolumeClaimTemplates will be deleted when the controlling StatefulSet is\n// deleted or scaled down.\ntype PersistentVolumeClaimRetentionPolicyType string\n\nconst (\n\t// RetainPersistentVolumeClaimRetentionPolicyType is the default\n\t// PersistentVolumeClaimRetentionPolicy and specifies that\n\t// PersistentVolumeClaims associated with StatefulSet VolumeClaimTemplates\n\t// will not be deleted.\n\tRetainPersistentVolumeClaimRetentionPolicyType PersistentVolumeClaimRetentionPolicyType = \"Retain\"\n\t// DeletePersistentVolumeClaimRetentionPolicyType specifies that\n\t// PersistentVolumeClaims associated with StatefulSet VolumeClaimTemplates\n\t// will be deleted in the scenario specified in\n\t// StatefulSetPersistentVolumeClaimRetentionPolicy.\n\tDeletePersistentVolumeClaimRetentionPolicyType PersistentVolumeClaimRetentionPolicyType = \"Delete\"\n)\n\n// StatefulSetPersistentVolumeClaimRetentionPolicy describes the policy used for PVCs\n// created from the StatefulSet VolumeClaimTemplates.\ntype StatefulSetPersistentVolumeClaimRetentionPolicy struct {\n\t// WhenDeleted specifies what happens to PVCs created from StatefulSet\n\t// VolumeClaimTemplates when the StatefulSet is deleted. The default policy\n\t// of `Retain` causes PVCs to not be affected by StatefulSet deletion. The\n\t// `Delete` policy causes those PVCs to be deleted.\n\tWhenDeleted PersistentVolumeClaimRetentionPolicyType `json:\"whenDeleted,omitempty\" protobuf:\"bytes,1,opt,name=whenDeleted,casttype=PersistentVolumeClaimRetentionPolicyType\"`\n\t// WhenScaled specifies what happens to PVCs created from StatefulSet\n\t// VolumeClaimTemplates when the StatefulSet is scaled down. The default\n\t// policy of `Retain` causes PVCs to not be affected by a scaledown. The\n\t// `Delete` policy causes the associated PVCs for any excess pods above\n\t// the replica count to be deleted.\n\tWhenScaled PersistentVolumeClaimRetentionPolicyType `json:\"whenScaled,omitempty\" protobuf:\"bytes,2,opt,name=whenScaled,casttype=PersistentVolumeClaimRetentionPolicyType\"`\n}\n\n// StatefulSetOrdinals describes the policy used for replica ordinal assignment\n// in this StatefulSet.\ntype StatefulSetOrdinals struct {\n\t// start is the number representing the first replica's index. It may be used\n\t// to number replicas from an alternate index (eg: 1-indexed) over the default\n\t// 0-indexed names, or to orchestrate progressive movement of replicas from\n\t// one StatefulSet to another.\n\t// If set, replica indices will be in the range:\n\t//   [.spec.ordinals.start, .spec.ordinals.start + .spec.replicas).\n\t// If unset, defaults to 0. Replica indices will be in the range:\n\t//   [0, .spec.replicas).\n\t// +optional\n\tStart int32 `json:\"start\" protobuf:\"varint,1,opt,name=start\"`\n}\n\n// A StatefulSetSpec is the specification of a StatefulSet.\ntype StatefulSetSpec struct {\n\t// replicas is the desired number of replicas of the given Template.\n\t// These are replicas in the sense that they are instantiations of the\n\t// same Template, but individual replicas also have a consistent identity.\n\t// If unspecified, defaults to 1.\n\t// TODO: Consider a rename of this field.\n\t// +optional\n\tReplicas *int32 `json:\"replicas,omitempty\" protobuf:\"varint,1,opt,name=replicas\"`\n\n\t// selector is a label query over pods that should match the replica count.\n\t// It must match the pod template's labels.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n\tSelector *metav1.LabelSelector `json:\"selector\" protobuf:\"bytes,2,opt,name=selector\"`\n\n\t// template is the object that describes the pod that will be created if\n\t// insufficient replicas are detected. Each pod stamped out by the StatefulSet\n\t// will fulfill this Template, but have a unique identity from the rest\n\t// of the StatefulSet. Each pod will be named with the format\n\t// <statefulsetname>-<podindex>. For example, a pod in a StatefulSet named\n\t// \"web\" with index number \"3\" would be named \"web-3\".\n\t// The only allowed template.spec.restartPolicy value is \"Always\".\n\tTemplate v1.PodTemplateSpec `json:\"template\" protobuf:\"bytes,3,opt,name=template\"`\n\n\t// volumeClaimTemplates is a list of claims that pods are allowed to reference.\n\t// The StatefulSet controller is responsible for mapping network identities to\n\t// claims in a way that maintains the identity of a pod. Every claim in\n\t// this list must have at least one matching (by name) volumeMount in one\n\t// container in the template. A claim in this list takes precedence over\n\t// any volumes in the template, with the same name.\n\t// TODO: Define the behavior if a claim already exists with the same name.\n\t// +optional\n\t// +listType=atomic\n\tVolumeClaimTemplates []v1.PersistentVolumeClaim `json:\"volumeClaimTemplates,omitempty\" protobuf:\"bytes,4,rep,name=volumeClaimTemplates\"`\n\n\t// serviceName is the name of the service that governs this StatefulSet.\n\t// This service must exist before the StatefulSet, and is responsible for\n\t// the network identity of the set. Pods get DNS/hostnames that follow the\n\t// pattern: pod-specific-string.serviceName.default.svc.cluster.local\n\t// where \"pod-specific-string\" is managed by the StatefulSet controller.\n\tServiceName string `json:\"serviceName\" protobuf:\"bytes,5,opt,name=serviceName\"`\n\n\t// podManagementPolicy controls how pods are created during initial scale up,\n\t// when replacing pods on nodes, or when scaling down. The default policy is\n\t// `OrderedReady`, where pods are created in increasing order (pod-0, then\n\t// pod-1, etc) and the controller will wait until each pod is ready before\n\t// continuing. When scaling down, the pods are removed in the opposite order.\n\t// The alternative policy is `Parallel` which will create pods in parallel\n\t// to match the desired scale without waiting, and on scale down will delete\n\t// all pods at once.\n\t// +optional\n\tPodManagementPolicy PodManagementPolicyType `json:\"podManagementPolicy,omitempty\" protobuf:\"bytes,6,opt,name=podManagementPolicy,casttype=PodManagementPolicyType\"`\n\n\t// updateStrategy indicates the StatefulSetUpdateStrategy that will be\n\t// employed to update Pods in the StatefulSet when a revision is made to\n\t// Template.\n\tUpdateStrategy StatefulSetUpdateStrategy `json:\"updateStrategy,omitempty\" protobuf:\"bytes,7,opt,name=updateStrategy\"`\n\n\t// revisionHistoryLimit is the maximum number of revisions that will\n\t// be maintained in the StatefulSet's revision history. The revision history\n\t// consists of all revisions not represented by a currently applied\n\t// StatefulSetSpec version. The default value is 10.\n\tRevisionHistoryLimit *int32 `json:\"revisionHistoryLimit,omitempty\" protobuf:\"varint,8,opt,name=revisionHistoryLimit\"`\n\n\t// Minimum number of seconds for which a newly created pod should be ready\n\t// without any of its container crashing for it to be considered available.\n\t// Defaults to 0 (pod will be considered available as soon as it is ready)\n\t// +optional\n\tMinReadySeconds int32 `json:\"minReadySeconds,omitempty\" protobuf:\"varint,9,opt,name=minReadySeconds\"`\n\n\t// PersistentVolumeClaimRetentionPolicy describes the policy used for PVCs created from\n\t// the StatefulSet VolumeClaimTemplates.\n\t// +optional\n\tPersistentVolumeClaimRetentionPolicy *StatefulSetPersistentVolumeClaimRetentionPolicy `json:\"persistentVolumeClaimRetentionPolicy,omitempty\" protobuf:\"bytes,10,opt,name=persistentVolumeClaimRetentionPolicy\"`\n\n\t// ordinals controls the numbering of replica indices in a StatefulSet. The\n\t// default ordinals behavior assigns a \"0\" index to the first replica and\n\t// increments the index by one for each additional replica requested.\n\t// +optional\n\tOrdinals *StatefulSetOrdinals `json:\"ordinals,omitempty\" protobuf:\"bytes,11,opt,name=ordinals\"`\n}\n\n// StatefulSetStatus represents the current state of a StatefulSet.\ntype StatefulSetStatus struct {\n\t// observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the\n\t// StatefulSet's generation, which is updated on mutation by the API Server.\n\t// +optional\n\tObservedGeneration int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,1,opt,name=observedGeneration\"`\n\n\t// replicas is the number of Pods created by the StatefulSet controller.\n\tReplicas int32 `json:\"replicas\" protobuf:\"varint,2,opt,name=replicas\"`\n\n\t// readyReplicas is the number of pods created by this StatefulSet controller with a Ready Condition.\n\tReadyReplicas int32 `json:\"readyReplicas,omitempty\" protobuf:\"varint,3,opt,name=readyReplicas\"`\n\n\t// currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version\n\t// indicated by currentRevision.\n\tCurrentReplicas int32 `json:\"currentReplicas,omitempty\" protobuf:\"varint,4,opt,name=currentReplicas\"`\n\n\t// updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version\n\t// indicated by updateRevision.\n\tUpdatedReplicas int32 `json:\"updatedReplicas,omitempty\" protobuf:\"varint,5,opt,name=updatedReplicas\"`\n\n\t// currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the\n\t// sequence [0,currentReplicas).\n\tCurrentRevision string `json:\"currentRevision,omitempty\" protobuf:\"bytes,6,opt,name=currentRevision\"`\n\n\t// updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence\n\t// [replicas-updatedReplicas,replicas)\n\tUpdateRevision string `json:\"updateRevision,omitempty\" protobuf:\"bytes,7,opt,name=updateRevision\"`\n\n\t// collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller\n\t// uses this field as a collision avoidance mechanism when it needs to create the name for the\n\t// newest ControllerRevision.\n\t// +optional\n\tCollisionCount *int32 `json:\"collisionCount,omitempty\" protobuf:\"varint,9,opt,name=collisionCount\"`\n\n\t// Represents the latest available observations of a statefulset's current state.\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=type\n\tConditions []StatefulSetCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,10,rep,name=conditions\"`\n\n\t// Total number of available pods (ready for at least minReadySeconds) targeted by this StatefulSet.\n\t// +optional\n\tAvailableReplicas int32 `json:\"availableReplicas\" protobuf:\"varint,11,opt,name=availableReplicas\"`\n}\n\ntype StatefulSetConditionType string\n\n// StatefulSetCondition describes the state of a statefulset at a certain point.\ntype StatefulSetCondition struct {\n\t// Type of statefulset condition.\n\tType StatefulSetConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=StatefulSetConditionType\"`\n\t// Status of the condition, one of True, False, Unknown.\n\tStatus v1.ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus\"`\n\t// Last time the condition transitioned from one status to another.\n\t// +optional\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\t// The reason for the condition's last transition.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// A human readable message indicating details about the transition.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n// +k8s:prerelease-lifecycle-gen:deprecated=1.9\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,StatefulSetList\n\n// StatefulSetList is a collection of StatefulSets.\ntype StatefulSetList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\tItems           []StatefulSet `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n// +k8s:prerelease-lifecycle-gen:deprecated=1.9\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,Deployment\n\n// DEPRECATED - This group version of Deployment is deprecated by apps/v1/Deployment. See the release notes for\n// more information.\n// Deployment enables declarative updates for Pods and ReplicaSets.\ntype Deployment struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Specification of the desired behavior of the Deployment.\n\t// +optional\n\tSpec DeploymentSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Most recently observed status of the Deployment.\n\t// +optional\n\tStatus DeploymentStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// DeploymentSpec is the specification of the desired behavior of the Deployment.\ntype DeploymentSpec struct {\n\t// Number of desired pods. This is a pointer to distinguish between explicit\n\t// zero and not specified. Defaults to 1.\n\t// +optional\n\tReplicas *int32 `json:\"replicas,omitempty\" protobuf:\"varint,1,opt,name=replicas\"`\n\n\t// Label selector for pods. Existing ReplicaSets whose pods are\n\t// selected by this will be the ones affected by this deployment.\n\t// It must match the pod template's labels.\n\tSelector *metav1.LabelSelector `json:\"selector\" protobuf:\"bytes,2,opt,name=selector\"`\n\n\t// Template describes the pods that will be created.\n\t// The only allowed template.spec.restartPolicy value is \"Always\".\n\tTemplate v1.PodTemplateSpec `json:\"template\" protobuf:\"bytes,3,opt,name=template\"`\n\n\t// The deployment strategy to use to replace existing pods with new ones.\n\t// +optional\n\t// +patchStrategy=retainKeys\n\tStrategy DeploymentStrategy `json:\"strategy,omitempty\" patchStrategy:\"retainKeys\" protobuf:\"bytes,4,opt,name=strategy\"`\n\n\t// Minimum number of seconds for which a newly created pod should be ready\n\t// without any of its container crashing, for it to be considered available.\n\t// Defaults to 0 (pod will be considered available as soon as it is ready)\n\t// +optional\n\tMinReadySeconds int32 `json:\"minReadySeconds,omitempty\" protobuf:\"varint,5,opt,name=minReadySeconds\"`\n\n\t// The number of old ReplicaSets to retain to allow rollback.\n\t// This is a pointer to distinguish between explicit zero and not specified.\n\t// Defaults to 10.\n\t// +optional\n\tRevisionHistoryLimit *int32 `json:\"revisionHistoryLimit,omitempty\" protobuf:\"varint,6,opt,name=revisionHistoryLimit\"`\n\n\t// Indicates that the deployment is paused.\n\t// +optional\n\tPaused bool `json:\"paused,omitempty\" protobuf:\"varint,7,opt,name=paused\"`\n\n\t// The maximum time in seconds for a deployment to make progress before it\n\t// is considered to be failed. The deployment controller will continue to\n\t// process failed deployments and a condition with a ProgressDeadlineExceeded\n\t// reason will be surfaced in the deployment status. Note that progress will\n\t// not be estimated during the time a deployment is paused. Defaults to 600s.\n\tProgressDeadlineSeconds *int32 `json:\"progressDeadlineSeconds,omitempty\" protobuf:\"varint,9,opt,name=progressDeadlineSeconds\"`\n}\n\nconst (\n\t// DefaultDeploymentUniqueLabelKey is the default key of the selector that is added\n\t// to existing ReplicaSets (and label key that is added to its pods) to prevent the existing ReplicaSets\n\t// to select new pods (and old pods being select by new ReplicaSet).\n\tDefaultDeploymentUniqueLabelKey string = \"pod-template-hash\"\n)\n\n// DeploymentStrategy describes how to replace existing pods with new ones.\ntype DeploymentStrategy struct {\n\t// Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.\n\t// +optional\n\tType DeploymentStrategyType `json:\"type,omitempty\" protobuf:\"bytes,1,opt,name=type,casttype=DeploymentStrategyType\"`\n\n\t// Rolling update config params. Present only if DeploymentStrategyType =\n\t// RollingUpdate.\n\t//---\n\t// TODO: Update this to follow our convention for oneOf, whatever we decide it\n\t// to be.\n\t// +optional\n\tRollingUpdate *RollingUpdateDeployment `json:\"rollingUpdate,omitempty\" protobuf:\"bytes,2,opt,name=rollingUpdate\"`\n}\n\ntype DeploymentStrategyType string\n\nconst (\n\t// Kill all existing pods before creating new ones.\n\tRecreateDeploymentStrategyType DeploymentStrategyType = \"Recreate\"\n\n\t// Replace the old ReplicaSets by new one using rolling update i.e gradually scale down the old ReplicaSets and scale up the new one.\n\tRollingUpdateDeploymentStrategyType DeploymentStrategyType = \"RollingUpdate\"\n)\n\n// Spec to control the desired behavior of rolling update.\ntype RollingUpdateDeployment struct {\n\t// The maximum number of pods that can be unavailable during the update.\n\t// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n\t// Absolute number is calculated from percentage by rounding down.\n\t// This can not be 0 if MaxSurge is 0.\n\t// Defaults to 25%.\n\t// Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods\n\t// immediately when the rolling update starts. Once new pods are ready, old ReplicaSet\n\t// can be scaled down further, followed by scaling up the new ReplicaSet, ensuring\n\t// that the total number of pods available at all times during the update is at\n\t// least 70% of desired pods.\n\t// +optional\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\" protobuf:\"bytes,1,opt,name=maxUnavailable\"`\n\n\t// The maximum number of pods that can be scheduled above the desired number of\n\t// pods.\n\t// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n\t// This can not be 0 if MaxUnavailable is 0.\n\t// Absolute number is calculated from percentage by rounding up.\n\t// Defaults to 25%.\n\t// Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when\n\t// the rolling update starts, such that the total number of old and new pods do not exceed\n\t// 130% of desired pods. Once old pods have been killed,\n\t// new ReplicaSet can be scaled up further, ensuring that total number of pods running\n\t// at any time during the update is at most 130% of desired pods.\n\t// +optional\n\tMaxSurge *intstr.IntOrString `json:\"maxSurge,omitempty\" protobuf:\"bytes,2,opt,name=maxSurge\"`\n}\n\n// DeploymentStatus is the most recently observed status of the Deployment.\ntype DeploymentStatus struct {\n\t// The generation observed by the deployment controller.\n\t// +optional\n\tObservedGeneration int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,1,opt,name=observedGeneration\"`\n\n\t// Total number of non-terminated pods targeted by this deployment (their labels match the selector).\n\t// +optional\n\tReplicas int32 `json:\"replicas,omitempty\" protobuf:\"varint,2,opt,name=replicas\"`\n\n\t// Total number of non-terminated pods targeted by this deployment that have the desired template spec.\n\t// +optional\n\tUpdatedReplicas int32 `json:\"updatedReplicas,omitempty\" protobuf:\"varint,3,opt,name=updatedReplicas\"`\n\n\t// readyReplicas is the number of pods targeted by this Deployment controller with a Ready Condition.\n\t// +optional\n\tReadyReplicas int32 `json:\"readyReplicas,omitempty\" protobuf:\"varint,7,opt,name=readyReplicas\"`\n\n\t// Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.\n\t// +optional\n\tAvailableReplicas int32 `json:\"availableReplicas,omitempty\" protobuf:\"varint,4,opt,name=availableReplicas\"`\n\n\t// Total number of unavailable pods targeted by this deployment. This is the total number of\n\t// pods that are still required for the deployment to have 100% available capacity. They may\n\t// either be pods that are running but not yet available or pods that still have not been created.\n\t// +optional\n\tUnavailableReplicas int32 `json:\"unavailableReplicas,omitempty\" protobuf:\"varint,5,opt,name=unavailableReplicas\"`\n\n\t// Represents the latest available observations of a deployment's current state.\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=type\n\tConditions []DeploymentCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,6,rep,name=conditions\"`\n\n\t// Count of hash collisions for the Deployment. The Deployment controller uses this\n\t// field as a collision avoidance mechanism when it needs to create the name for the\n\t// newest ReplicaSet.\n\t// +optional\n\tCollisionCount *int32 `json:\"collisionCount,omitempty\" protobuf:\"varint,8,opt,name=collisionCount\"`\n}\n\ntype DeploymentConditionType string\n\n// These are valid conditions of a deployment.\nconst (\n\t// Available means the deployment is available, ie. at least the minimum available\n\t// replicas required are up and running for at least minReadySeconds.\n\tDeploymentAvailable DeploymentConditionType = \"Available\"\n\t// Progressing means the deployment is progressing. Progress for a deployment is\n\t// considered when a new replica set is created or adopted, and when new pods scale\n\t// up or old pods scale down. Progress is not estimated for paused deployments or\n\t// when progressDeadlineSeconds is not specified.\n\tDeploymentProgressing DeploymentConditionType = \"Progressing\"\n\t// ReplicaFailure is added in a deployment when one of its pods fails to be created\n\t// or deleted.\n\tDeploymentReplicaFailure DeploymentConditionType = \"ReplicaFailure\"\n)\n\n// DeploymentCondition describes the state of a deployment at a certain point.\ntype DeploymentCondition struct {\n\t// Type of deployment condition.\n\tType DeploymentConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=DeploymentConditionType\"`\n\t// Status of the condition, one of True, False, Unknown.\n\tStatus v1.ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus\"`\n\t// The last time this condition was updated.\n\tLastUpdateTime metav1.Time `json:\"lastUpdateTime,omitempty\" protobuf:\"bytes,6,opt,name=lastUpdateTime\"`\n\t// Last time the condition transitioned from one status to another.\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,7,opt,name=lastTransitionTime\"`\n\t// The reason for the condition's last transition.\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// A human readable message indicating details about the transition.\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n// +k8s:prerelease-lifecycle-gen:deprecated=1.9\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,DeploymentList\n\n// DeploymentList is a list of Deployments.\ntype DeploymentList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is the list of Deployments.\n\tItems []Deployment `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.\ntype DaemonSetUpdateStrategy struct {\n\t// Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is RollingUpdate.\n\t// +optional\n\tType DaemonSetUpdateStrategyType `json:\"type,omitempty\" protobuf:\"bytes,1,opt,name=type\"`\n\n\t// Rolling update config params. Present only if type = \"RollingUpdate\".\n\t//---\n\t// TODO: Update this to follow our convention for oneOf, whatever we decide it\n\t// to be. Same as Deployment `strategy.rollingUpdate`.\n\t// See https://github.com/kubernetes/kubernetes/issues/35345\n\t// +optional\n\tRollingUpdate *RollingUpdateDaemonSet `json:\"rollingUpdate,omitempty\" protobuf:\"bytes,2,opt,name=rollingUpdate\"`\n}\n\ntype DaemonSetUpdateStrategyType string\n\nconst (\n\t// Replace the old daemons by new ones using rolling update i.e replace them on each node one after the other.\n\tRollingUpdateDaemonSetStrategyType DaemonSetUpdateStrategyType = \"RollingUpdate\"\n\n\t// Replace the old daemons only when it's killed\n\tOnDeleteDaemonSetStrategyType DaemonSetUpdateStrategyType = \"OnDelete\"\n)\n\n// Spec to control the desired behavior of daemon set rolling update.\ntype RollingUpdateDaemonSet struct {\n\t// The maximum number of DaemonSet pods that can be unavailable during the\n\t// update. Value can be an absolute number (ex: 5) or a percentage of total\n\t// number of DaemonSet pods at the start of the update (ex: 10%). Absolute\n\t// number is calculated from percentage by rounding up.\n\t// This cannot be 0 if MaxSurge is 0\n\t// Default value is 1.\n\t// Example: when this is set to 30%, at most 30% of the total number of nodes\n\t// that should be running the daemon pod (i.e. status.desiredNumberScheduled)\n\t// can have their pods stopped for an update at any given time. The update\n\t// starts by stopping at most 30% of those DaemonSet pods and then brings\n\t// up new DaemonSet pods in their place. Once the new pods are available,\n\t// it then proceeds onto other DaemonSet pods, thus ensuring that at least\n\t// 70% of original number of DaemonSet pods are available at all times during\n\t// the update.\n\t// +optional\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\" protobuf:\"bytes,1,opt,name=maxUnavailable\"`\n\n\t// The maximum number of nodes with an existing available DaemonSet pod that\n\t// can have an updated DaemonSet pod during during an update.\n\t// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n\t// This can not be 0 if MaxUnavailable is 0.\n\t// Absolute number is calculated from percentage by rounding up to a minimum of 1.\n\t// Default value is 0.\n\t// Example: when this is set to 30%, at most 30% of the total number of nodes\n\t// that should be running the daemon pod (i.e. status.desiredNumberScheduled)\n\t// can have their a new pod created before the old pod is marked as deleted.\n\t// The update starts by launching new pods on 30% of nodes. Once an updated\n\t// pod is available (Ready for at least minReadySeconds) the old DaemonSet pod\n\t// on that node is marked deleted. If the old pod becomes unavailable for any\n\t// reason (Ready transitions to false, is evicted, or is drained) an updated\n\t// pod is immediatedly created on that node without considering surge limits.\n\t// Allowing surge implies the possibility that the resources consumed by the\n\t// daemonset on any given node can double if the readiness check fails, and\n\t// so resource intensive daemonsets should take into account that they may\n\t// cause evictions during disruption.\n\t// +optional\n\tMaxSurge *intstr.IntOrString `json:\"maxSurge,omitempty\" protobuf:\"bytes,2,opt,name=maxSurge\"`\n}\n\n// DaemonSetSpec is the specification of a daemon set.\ntype DaemonSetSpec struct {\n\t// A label query over pods that are managed by the daemon set.\n\t// Must match in order to be controlled.\n\t// It must match the pod template's labels.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n\tSelector *metav1.LabelSelector `json:\"selector\" protobuf:\"bytes,1,opt,name=selector\"`\n\n\t// An object that describes the pod that will be created.\n\t// The DaemonSet will create exactly one copy of this pod on every node\n\t// that matches the template's node selector (or on every node if no node\n\t// selector is specified).\n\t// The only allowed template.spec.restartPolicy value is \"Always\".\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\n\tTemplate v1.PodTemplateSpec `json:\"template\" protobuf:\"bytes,2,opt,name=template\"`\n\n\t// An update strategy to replace existing DaemonSet pods with new pods.\n\t// +optional\n\tUpdateStrategy DaemonSetUpdateStrategy `json:\"updateStrategy,omitempty\" protobuf:\"bytes,3,opt,name=updateStrategy\"`\n\n\t// The minimum number of seconds for which a newly created DaemonSet pod should\n\t// be ready without any of its container crashing, for it to be considered\n\t// available. Defaults to 0 (pod will be considered available as soon as it\n\t// is ready).\n\t// +optional\n\tMinReadySeconds int32 `json:\"minReadySeconds,omitempty\" protobuf:\"varint,4,opt,name=minReadySeconds\"`\n\n\t// The number of old history to retain to allow rollback.\n\t// This is a pointer to distinguish between explicit zero and not specified.\n\t// Defaults to 10.\n\t// +optional\n\tRevisionHistoryLimit *int32 `json:\"revisionHistoryLimit,omitempty\" protobuf:\"varint,6,opt,name=revisionHistoryLimit\"`\n}\n\n// DaemonSetStatus represents the current status of a daemon set.\ntype DaemonSetStatus struct {\n\t// The number of nodes that are running at least 1\n\t// daemon pod and are supposed to run the daemon pod.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\n\tCurrentNumberScheduled int32 `json:\"currentNumberScheduled\" protobuf:\"varint,1,opt,name=currentNumberScheduled\"`\n\n\t// The number of nodes that are running the daemon pod, but are\n\t// not supposed to run the daemon pod.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\n\tNumberMisscheduled int32 `json:\"numberMisscheduled\" protobuf:\"varint,2,opt,name=numberMisscheduled\"`\n\n\t// The total number of nodes that should be running the daemon\n\t// pod (including nodes correctly running the daemon pod).\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\n\tDesiredNumberScheduled int32 `json:\"desiredNumberScheduled\" protobuf:\"varint,3,opt,name=desiredNumberScheduled\"`\n\n\t// Total number of nodes that should be running the daemon pod and have one\n\t// or more of the daemon pod running with a Ready Condition by passing the readinessProbe.\n\tNumberReady int32 `json:\"numberReady\" protobuf:\"varint,4,opt,name=numberReady\"`\n\n\t// The most recent generation observed by the daemon set controller.\n\t// +optional\n\tObservedGeneration int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,5,opt,name=observedGeneration\"`\n\n\t// The total number of nodes that are running updated daemon pod\n\t// +optional\n\tUpdatedNumberScheduled int32 `json:\"updatedNumberScheduled,omitempty\" protobuf:\"varint,6,opt,name=updatedNumberScheduled\"`\n\n\t// The number of nodes that should be running the\n\t// daemon pod and have one or more of the daemon pod running and\n\t// available (ready for at least spec.minReadySeconds)\n\t// +optional\n\tNumberAvailable int32 `json:\"numberAvailable,omitempty\" protobuf:\"varint,7,opt,name=numberAvailable\"`\n\n\t// The number of nodes that should be running the\n\t// daemon pod and have none of the daemon pod running and available\n\t// (ready for at least spec.minReadySeconds)\n\t// +optional\n\tNumberUnavailable int32 `json:\"numberUnavailable,omitempty\" protobuf:\"varint,8,opt,name=numberUnavailable\"`\n\n\t// Count of hash collisions for the DaemonSet. The DaemonSet controller\n\t// uses this field as a collision avoidance mechanism when it needs to\n\t// create the name for the newest ControllerRevision.\n\t// +optional\n\tCollisionCount *int32 `json:\"collisionCount,omitempty\" protobuf:\"varint,9,opt,name=collisionCount\"`\n\n\t// Represents the latest available observations of a DaemonSet's current state.\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=type\n\tConditions []DaemonSetCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,10,rep,name=conditions\"`\n}\n\ntype DaemonSetConditionType string\n\n// TODO: Add valid condition types of a DaemonSet.\n\n// DaemonSetCondition describes the state of a DaemonSet at a certain point.\ntype DaemonSetCondition struct {\n\t// Type of DaemonSet condition.\n\tType DaemonSetConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=DaemonSetConditionType\"`\n\t// Status of the condition, one of True, False, Unknown.\n\tStatus v1.ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus\"`\n\t// Last time the condition transitioned from one status to another.\n\t// +optional\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\t// The reason for the condition's last transition.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// A human readable message indicating details about the transition.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n// +k8s:prerelease-lifecycle-gen:deprecated=1.9\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,DaemonSet\n\n// DEPRECATED - This group version of DaemonSet is deprecated by apps/v1/DaemonSet. See the release notes for\n// more information.\n// DaemonSet represents the configuration of a daemon set.\ntype DaemonSet struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// The desired behavior of this daemon set.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec DaemonSetSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// The current status of this daemon set. This data may be\n\t// out of date by some window of time.\n\t// Populated by the system.\n\t// Read-only.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus DaemonSetStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\nconst (\n\t// DefaultDaemonSetUniqueLabelKey is the default label key that is added\n\t// to existing DaemonSet pods to distinguish between old and new\n\t// DaemonSet pods during DaemonSet template updates.\n\tDefaultDaemonSetUniqueLabelKey = ControllerRevisionHashLabelKey\n)\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n// +k8s:prerelease-lifecycle-gen:deprecated=1.9\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,DaemonSetList\n\n// DaemonSetList is a collection of daemon sets.\ntype DaemonSetList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// A list of daemon sets.\n\tItems []DaemonSet `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n// +k8s:prerelease-lifecycle-gen:deprecated=1.9\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,ReplicaSet\n\n// DEPRECATED - This group version of ReplicaSet is deprecated by apps/v1/ReplicaSet. See the release notes for\n// more information.\n// ReplicaSet ensures that a specified number of pod replicas are running at any given time.\ntype ReplicaSet struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// If the Labels of a ReplicaSet are empty, they are defaulted to\n\t// be the same as the Pod(s) that the ReplicaSet manages.\n\t// Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec defines the specification of the desired behavior of the ReplicaSet.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec ReplicaSetSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status is the most recently observed status of the ReplicaSet.\n\t// This data may be out of date by some window of time.\n\t// Populated by the system.\n\t// Read-only.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus ReplicaSetStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n// +k8s:prerelease-lifecycle-gen:deprecated=1.9\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,ReplicaSetList\n\n// ReplicaSetList is a collection of ReplicaSets.\ntype ReplicaSetList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// List of ReplicaSets.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller\n\tItems []ReplicaSet `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// ReplicaSetSpec is the specification of a ReplicaSet.\ntype ReplicaSetSpec struct {\n\t// Replicas is the number of desired replicas.\n\t// This is a pointer to distinguish between explicit zero and unspecified.\n\t// Defaults to 1.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller\n\t// +optional\n\tReplicas *int32 `json:\"replicas,omitempty\" protobuf:\"varint,1,opt,name=replicas\"`\n\n\t// Minimum number of seconds for which a newly created pod should be ready\n\t// without any of its container crashing, for it to be considered available.\n\t// Defaults to 0 (pod will be considered available as soon as it is ready)\n\t// +optional\n\tMinReadySeconds int32 `json:\"minReadySeconds,omitempty\" protobuf:\"varint,4,opt,name=minReadySeconds\"`\n\n\t// Selector is a label query over pods that should match the replica count.\n\t// Label keys and values that must match in order to be controlled by this replica set.\n\t// It must match the pod template's labels.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n\tSelector *metav1.LabelSelector `json:\"selector\" protobuf:\"bytes,2,opt,name=selector\"`\n\n\t// Template is the object that describes the pod that will be created if\n\t// insufficient replicas are detected.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\n\t// +optional\n\tTemplate v1.PodTemplateSpec `json:\"template,omitempty\" protobuf:\"bytes,3,opt,name=template\"`\n}\n\n// ReplicaSetStatus represents the current status of a ReplicaSet.\ntype ReplicaSetStatus struct {\n\t// Replicas is the most recently observed number of replicas.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller\n\tReplicas int32 `json:\"replicas\" protobuf:\"varint,1,opt,name=replicas\"`\n\n\t// The number of pods that have labels matching the labels of the pod template of the replicaset.\n\t// +optional\n\tFullyLabeledReplicas int32 `json:\"fullyLabeledReplicas,omitempty\" protobuf:\"varint,2,opt,name=fullyLabeledReplicas\"`\n\n\t// readyReplicas is the number of pods targeted by this ReplicaSet controller with a Ready Condition.\n\t// +optional\n\tReadyReplicas int32 `json:\"readyReplicas,omitempty\" protobuf:\"varint,4,opt,name=readyReplicas\"`\n\n\t// The number of available replicas (ready for at least minReadySeconds) for this replica set.\n\t// +optional\n\tAvailableReplicas int32 `json:\"availableReplicas,omitempty\" protobuf:\"varint,5,opt,name=availableReplicas\"`\n\n\t// ObservedGeneration reflects the generation of the most recently observed ReplicaSet.\n\t// +optional\n\tObservedGeneration int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,3,opt,name=observedGeneration\"`\n\n\t// Represents the latest available observations of a replica set's current state.\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=type\n\tConditions []ReplicaSetCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,6,rep,name=conditions\"`\n}\n\ntype ReplicaSetConditionType string\n\n// These are valid conditions of a replica set.\nconst (\n\t// ReplicaSetReplicaFailure is added in a replica set when one of its pods fails to be created\n\t// due to insufficient quota, limit ranges, pod security policy, node selectors, etc. or deleted\n\t// due to kubelet being down or finalizers are failing.\n\tReplicaSetReplicaFailure ReplicaSetConditionType = \"ReplicaFailure\"\n)\n\n// ReplicaSetCondition describes the state of a replica set at a certain point.\ntype ReplicaSetCondition struct {\n\t// Type of replica set condition.\n\tType ReplicaSetConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=ReplicaSetConditionType\"`\n\t// Status of the condition, one of True, False, Unknown.\n\tStatus v1.ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus\"`\n\t// The last time the condition transitioned from one status to another.\n\t// +optional\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\t// The reason for the condition's last transition.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// A human readable message indicating details about the transition.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n// +k8s:prerelease-lifecycle-gen:deprecated=1.9\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,ControllerRevision\n\n// DEPRECATED - This group version of ControllerRevision is deprecated by apps/v1/ControllerRevision. See the\n// release notes for more information.\n// ControllerRevision implements an immutable snapshot of state data. Clients\n// are responsible for serializing and deserializing the objects that contain\n// their internal state.\n// Once a ControllerRevision has been successfully created, it can not be updated.\n// The API Server will fail validation of all requests that attempt to mutate\n// the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both\n// the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However,\n// it may be subject to name and representation changes in future releases, and clients should not\n// depend on its stability. It is primarily for internal use by controllers.\ntype ControllerRevision struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Data is the serialized representation of the state.\n\tData runtime.RawExtension `json:\"data,omitempty\" protobuf:\"bytes,2,opt,name=data\"`\n\n\t// Revision indicates the revision of the state represented by Data.\n\tRevision int64 `json:\"revision\" protobuf:\"varint,3,opt,name=revision\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n// +k8s:prerelease-lifecycle-gen:deprecated=1.9\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,ControllerRevisionList\n\n// ControllerRevisionList is a resource containing a list of ControllerRevision objects.\ntype ControllerRevisionList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is the list of ControllerRevisions\n\tItems []ControllerRevision `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1beta2/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta2\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_ControllerRevision = map[string]string{\n\t\"\":         \"DEPRECATED - This group version of ControllerRevision is deprecated by apps/v1/ControllerRevision. See the release notes for more information. ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"data\":     \"Data is the serialized representation of the state.\",\n\t\"revision\": \"Revision indicates the revision of the state represented by Data.\",\n}\n\nfunc (ControllerRevision) SwaggerDoc() map[string]string {\n\treturn map_ControllerRevision\n}\n\nvar map_ControllerRevisionList = map[string]string{\n\t\"\":         \"ControllerRevisionList is a resource containing a list of ControllerRevision objects.\",\n\t\"metadata\": \"More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"Items is the list of ControllerRevisions\",\n}\n\nfunc (ControllerRevisionList) SwaggerDoc() map[string]string {\n\treturn map_ControllerRevisionList\n}\n\nvar map_DaemonSet = map[string]string{\n\t\"\":         \"DEPRECATED - This group version of DaemonSet is deprecated by apps/v1/DaemonSet. See the release notes for more information. DaemonSet represents the configuration of a daemon set.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"The current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (DaemonSet) SwaggerDoc() map[string]string {\n\treturn map_DaemonSet\n}\n\nvar map_DaemonSetCondition = map[string]string{\n\t\"\":                   \"DaemonSetCondition describes the state of a DaemonSet at a certain point.\",\n\t\"type\":               \"Type of DaemonSet condition.\",\n\t\"status\":             \"Status of the condition, one of True, False, Unknown.\",\n\t\"lastTransitionTime\": \"Last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"The reason for the condition's last transition.\",\n\t\"message\":            \"A human readable message indicating details about the transition.\",\n}\n\nfunc (DaemonSetCondition) SwaggerDoc() map[string]string {\n\treturn map_DaemonSetCondition\n}\n\nvar map_DaemonSetList = map[string]string{\n\t\"\":         \"DaemonSetList is a collection of daemon sets.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"A list of daemon sets.\",\n}\n\nfunc (DaemonSetList) SwaggerDoc() map[string]string {\n\treturn map_DaemonSetList\n}\n\nvar map_DaemonSetSpec = map[string]string{\n\t\"\":                     \"DaemonSetSpec is the specification of a daemon set.\",\n\t\"selector\":             \"A label query over pods that are managed by the daemon set. Must match in order to be controlled. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\n\t\"template\":             \"An object that describes the pod that will be created. The DaemonSet will create exactly one copy of this pod on every node that matches the template's node selector (or on every node if no node selector is specified). The only allowed template.spec.restartPolicy value is \\\"Always\\\". More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\",\n\t\"updateStrategy\":       \"An update strategy to replace existing DaemonSet pods with new pods.\",\n\t\"minReadySeconds\":      \"The minimum number of seconds for which a newly created DaemonSet pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).\",\n\t\"revisionHistoryLimit\": \"The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.\",\n}\n\nfunc (DaemonSetSpec) SwaggerDoc() map[string]string {\n\treturn map_DaemonSetSpec\n}\n\nvar map_DaemonSetStatus = map[string]string{\n\t\"\":                       \"DaemonSetStatus represents the current status of a daemon set.\",\n\t\"currentNumberScheduled\": \"The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\",\n\t\"numberMisscheduled\":     \"The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\",\n\t\"desiredNumberScheduled\": \"The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\",\n\t\"numberReady\":            \"Total number of nodes that should be running the daemon pod and have one or more of the daemon pod running with a Ready Condition by passing the readinessProbe.\",\n\t\"observedGeneration\":     \"The most recent generation observed by the daemon set controller.\",\n\t\"updatedNumberScheduled\": \"The total number of nodes that are running updated daemon pod\",\n\t\"numberAvailable\":        \"The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds)\",\n\t\"numberUnavailable\":      \"The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds)\",\n\t\"collisionCount\":         \"Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.\",\n\t\"conditions\":             \"Represents the latest available observations of a DaemonSet's current state.\",\n}\n\nfunc (DaemonSetStatus) SwaggerDoc() map[string]string {\n\treturn map_DaemonSetStatus\n}\n\nvar map_DaemonSetUpdateStrategy = map[string]string{\n\t\"\":              \"DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.\",\n\t\"type\":          \"Type of daemon set update. Can be \\\"RollingUpdate\\\" or \\\"OnDelete\\\". Default is RollingUpdate.\",\n\t\"rollingUpdate\": \"Rolling update config params. Present only if type = \\\"RollingUpdate\\\".\",\n}\n\nfunc (DaemonSetUpdateStrategy) SwaggerDoc() map[string]string {\n\treturn map_DaemonSetUpdateStrategy\n}\n\nvar map_Deployment = map[string]string{\n\t\"\":         \"DEPRECATED - This group version of Deployment is deprecated by apps/v1/Deployment. See the release notes for more information. Deployment enables declarative updates for Pods and ReplicaSets.\",\n\t\"metadata\": \"Standard object metadata.\",\n\t\"spec\":     \"Specification of the desired behavior of the Deployment.\",\n\t\"status\":   \"Most recently observed status of the Deployment.\",\n}\n\nfunc (Deployment) SwaggerDoc() map[string]string {\n\treturn map_Deployment\n}\n\nvar map_DeploymentCondition = map[string]string{\n\t\"\":                   \"DeploymentCondition describes the state of a deployment at a certain point.\",\n\t\"type\":               \"Type of deployment condition.\",\n\t\"status\":             \"Status of the condition, one of True, False, Unknown.\",\n\t\"lastUpdateTime\":     \"The last time this condition was updated.\",\n\t\"lastTransitionTime\": \"Last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"The reason for the condition's last transition.\",\n\t\"message\":            \"A human readable message indicating details about the transition.\",\n}\n\nfunc (DeploymentCondition) SwaggerDoc() map[string]string {\n\treturn map_DeploymentCondition\n}\n\nvar map_DeploymentList = map[string]string{\n\t\"\":         \"DeploymentList is a list of Deployments.\",\n\t\"metadata\": \"Standard list metadata.\",\n\t\"items\":    \"Items is the list of Deployments.\",\n}\n\nfunc (DeploymentList) SwaggerDoc() map[string]string {\n\treturn map_DeploymentList\n}\n\nvar map_DeploymentSpec = map[string]string{\n\t\"\":                        \"DeploymentSpec is the specification of the desired behavior of the Deployment.\",\n\t\"replicas\":                \"Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.\",\n\t\"selector\":                \"Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment. It must match the pod template's labels.\",\n\t\"template\":                \"Template describes the pods that will be created. The only allowed template.spec.restartPolicy value is \\\"Always\\\".\",\n\t\"strategy\":                \"The deployment strategy to use to replace existing pods with new ones.\",\n\t\"minReadySeconds\":         \"Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)\",\n\t\"revisionHistoryLimit\":    \"The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.\",\n\t\"paused\":                  \"Indicates that the deployment is paused.\",\n\t\"progressDeadlineSeconds\": \"The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s.\",\n}\n\nfunc (DeploymentSpec) SwaggerDoc() map[string]string {\n\treturn map_DeploymentSpec\n}\n\nvar map_DeploymentStatus = map[string]string{\n\t\"\":                    \"DeploymentStatus is the most recently observed status of the Deployment.\",\n\t\"observedGeneration\":  \"The generation observed by the deployment controller.\",\n\t\"replicas\":            \"Total number of non-terminated pods targeted by this deployment (their labels match the selector).\",\n\t\"updatedReplicas\":     \"Total number of non-terminated pods targeted by this deployment that have the desired template spec.\",\n\t\"readyReplicas\":       \"readyReplicas is the number of pods targeted by this Deployment controller with a Ready Condition.\",\n\t\"availableReplicas\":   \"Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.\",\n\t\"unavailableReplicas\": \"Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created.\",\n\t\"conditions\":          \"Represents the latest available observations of a deployment's current state.\",\n\t\"collisionCount\":      \"Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.\",\n}\n\nfunc (DeploymentStatus) SwaggerDoc() map[string]string {\n\treturn map_DeploymentStatus\n}\n\nvar map_DeploymentStrategy = map[string]string{\n\t\"\":              \"DeploymentStrategy describes how to replace existing pods with new ones.\",\n\t\"type\":          \"Type of deployment. Can be \\\"Recreate\\\" or \\\"RollingUpdate\\\". Default is RollingUpdate.\",\n\t\"rollingUpdate\": \"Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.\",\n}\n\nfunc (DeploymentStrategy) SwaggerDoc() map[string]string {\n\treturn map_DeploymentStrategy\n}\n\nvar map_ReplicaSet = map[string]string{\n\t\"\":         \"DEPRECATED - This group version of ReplicaSet is deprecated by apps/v1/ReplicaSet. See the release notes for more information. ReplicaSet ensures that a specified number of pod replicas are running at any given time.\",\n\t\"metadata\": \"If the Labels of a ReplicaSet are empty, they are defaulted to be the same as the Pod(s) that the ReplicaSet manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (ReplicaSet) SwaggerDoc() map[string]string {\n\treturn map_ReplicaSet\n}\n\nvar map_ReplicaSetCondition = map[string]string{\n\t\"\":                   \"ReplicaSetCondition describes the state of a replica set at a certain point.\",\n\t\"type\":               \"Type of replica set condition.\",\n\t\"status\":             \"Status of the condition, one of True, False, Unknown.\",\n\t\"lastTransitionTime\": \"The last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"The reason for the condition's last transition.\",\n\t\"message\":            \"A human readable message indicating details about the transition.\",\n}\n\nfunc (ReplicaSetCondition) SwaggerDoc() map[string]string {\n\treturn map_ReplicaSetCondition\n}\n\nvar map_ReplicaSetList = map[string]string{\n\t\"\":         \"ReplicaSetList is a collection of ReplicaSets.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller\",\n}\n\nfunc (ReplicaSetList) SwaggerDoc() map[string]string {\n\treturn map_ReplicaSetList\n}\n\nvar map_ReplicaSetSpec = map[string]string{\n\t\"\":                \"ReplicaSetSpec is the specification of a ReplicaSet.\",\n\t\"replicas\":        \"Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller\",\n\t\"minReadySeconds\": \"Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)\",\n\t\"selector\":        \"Selector is a label query over pods that should match the replica count. Label keys and values that must match in order to be controlled by this replica set. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\n\t\"template\":        \"Template is the object that describes the pod that will be created if insufficient replicas are detected. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\",\n}\n\nfunc (ReplicaSetSpec) SwaggerDoc() map[string]string {\n\treturn map_ReplicaSetSpec\n}\n\nvar map_ReplicaSetStatus = map[string]string{\n\t\"\":                     \"ReplicaSetStatus represents the current status of a ReplicaSet.\",\n\t\"replicas\":             \"Replicas is the most recently observed number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller\",\n\t\"fullyLabeledReplicas\": \"The number of pods that have labels matching the labels of the pod template of the replicaset.\",\n\t\"readyReplicas\":        \"readyReplicas is the number of pods targeted by this ReplicaSet controller with a Ready Condition.\",\n\t\"availableReplicas\":    \"The number of available replicas (ready for at least minReadySeconds) for this replica set.\",\n\t\"observedGeneration\":   \"ObservedGeneration reflects the generation of the most recently observed ReplicaSet.\",\n\t\"conditions\":           \"Represents the latest available observations of a replica set's current state.\",\n}\n\nfunc (ReplicaSetStatus) SwaggerDoc() map[string]string {\n\treturn map_ReplicaSetStatus\n}\n\nvar map_RollingUpdateDaemonSet = map[string]string{\n\t\"\":               \"Spec to control the desired behavior of daemon set rolling update.\",\n\t\"maxUnavailable\": \"The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0 if MaxSurge is 0 Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update.\",\n\t\"maxSurge\":       \"The maximum number of nodes with an existing available DaemonSet pod that can have an updated DaemonSet pod during during an update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up to a minimum of 1. Default value is 0. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their a new pod created before the old pod is marked as deleted. The update starts by launching new pods on 30% of nodes. Once an updated pod is available (Ready for at least minReadySeconds) the old DaemonSet pod on that node is marked deleted. If the old pod becomes unavailable for any reason (Ready transitions to false, is evicted, or is drained) an updated pod is immediatedly created on that node without considering surge limits. Allowing surge implies the possibility that the resources consumed by the daemonset on any given node can double if the readiness check fails, and so resource intensive daemonsets should take into account that they may cause evictions during disruption.\",\n}\n\nfunc (RollingUpdateDaemonSet) SwaggerDoc() map[string]string {\n\treturn map_RollingUpdateDaemonSet\n}\n\nvar map_RollingUpdateDeployment = map[string]string{\n\t\"\":               \"Spec to control the desired behavior of rolling update.\",\n\t\"maxUnavailable\": \"The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old ReplicaSet can be scaled down further, followed by scaling up the new ReplicaSet, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.\",\n\t\"maxSurge\":       \"The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new ReplicaSet can be scaled up further, ensuring that total number of pods running at any time during the update is at most 130% of desired pods.\",\n}\n\nfunc (RollingUpdateDeployment) SwaggerDoc() map[string]string {\n\treturn map_RollingUpdateDeployment\n}\n\nvar map_RollingUpdateStatefulSetStrategy = map[string]string{\n\t\"\":               \"RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.\",\n\t\"partition\":      \"Partition indicates the ordinal at which the StatefulSet should be partitioned for updates. During a rolling update, all pods from ordinal Replicas-1 to Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched. This is helpful in being able to do a canary based deployment. The default value is 0.\",\n\t\"maxUnavailable\": \"The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0. Defaults to 1. This field is alpha-level and is only honored by servers that enable the MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable.\",\n}\n\nfunc (RollingUpdateStatefulSetStrategy) SwaggerDoc() map[string]string {\n\treturn map_RollingUpdateStatefulSetStrategy\n}\n\nvar map_Scale = map[string]string{\n\t\"\":         \"Scale represents a scaling request for a resource.\",\n\t\"metadata\": \"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\",\n\t\"spec\":     \"defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\",\n\t\"status\":   \"current status of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. Read-only.\",\n}\n\nfunc (Scale) SwaggerDoc() map[string]string {\n\treturn map_Scale\n}\n\nvar map_ScaleSpec = map[string]string{\n\t\"\":         \"ScaleSpec describes the attributes of a scale subresource\",\n\t\"replicas\": \"desired number of instances for the scaled object.\",\n}\n\nfunc (ScaleSpec) SwaggerDoc() map[string]string {\n\treturn map_ScaleSpec\n}\n\nvar map_ScaleStatus = map[string]string{\n\t\"\":               \"ScaleStatus represents the current status of a scale subresource.\",\n\t\"replicas\":       \"actual number of observed instances of the scaled object.\",\n\t\"selector\":       \"selector is a label query over pods that should match the replicas count. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\",\n\t\"targetSelector\": \"label selector for pods that should match the replicas count. This is a serializated version of both map-based and more expressive set-based selectors. This is done to avoid introspection in the clients. The string will be in the same format as the query-param syntax. If the target type only supports map-based selectors, both this field and map-based selector field are populated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\n}\n\nfunc (ScaleStatus) SwaggerDoc() map[string]string {\n\treturn map_ScaleStatus\n}\n\nvar map_StatefulSet = map[string]string{\n\t\"\":       \"DEPRECATED - This group version of StatefulSet is deprecated by apps/v1/StatefulSet. See the release notes for more information. StatefulSet represents a set of pods with consistent identities. Identities are defined as:\\n  - Network: A single stable DNS and hostname.\\n  - Storage: As many VolumeClaims as requested.\\n\\nThe StatefulSet guarantees that a given network identity will always map to the same storage identity.\",\n\t\"spec\":   \"Spec defines the desired identities of pods in this set.\",\n\t\"status\": \"Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time.\",\n}\n\nfunc (StatefulSet) SwaggerDoc() map[string]string {\n\treturn map_StatefulSet\n}\n\nvar map_StatefulSetCondition = map[string]string{\n\t\"\":                   \"StatefulSetCondition describes the state of a statefulset at a certain point.\",\n\t\"type\":               \"Type of statefulset condition.\",\n\t\"status\":             \"Status of the condition, one of True, False, Unknown.\",\n\t\"lastTransitionTime\": \"Last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"The reason for the condition's last transition.\",\n\t\"message\":            \"A human readable message indicating details about the transition.\",\n}\n\nfunc (StatefulSetCondition) SwaggerDoc() map[string]string {\n\treturn map_StatefulSetCondition\n}\n\nvar map_StatefulSetList = map[string]string{\n\t\"\": \"StatefulSetList is a collection of StatefulSets.\",\n}\n\nfunc (StatefulSetList) SwaggerDoc() map[string]string {\n\treturn map_StatefulSetList\n}\n\nvar map_StatefulSetOrdinals = map[string]string{\n\t\"\":      \"StatefulSetOrdinals describes the policy used for replica ordinal assignment in this StatefulSet.\",\n\t\"start\": \"start is the number representing the first replica's index. It may be used to number replicas from an alternate index (eg: 1-indexed) over the default 0-indexed names, or to orchestrate progressive movement of replicas from one StatefulSet to another. If set, replica indices will be in the range:\\n  [.spec.ordinals.start, .spec.ordinals.start + .spec.replicas).\\nIf unset, defaults to 0. Replica indices will be in the range:\\n  [0, .spec.replicas).\",\n}\n\nfunc (StatefulSetOrdinals) SwaggerDoc() map[string]string {\n\treturn map_StatefulSetOrdinals\n}\n\nvar map_StatefulSetPersistentVolumeClaimRetentionPolicy = map[string]string{\n\t\"\":            \"StatefulSetPersistentVolumeClaimRetentionPolicy describes the policy used for PVCs created from the StatefulSet VolumeClaimTemplates.\",\n\t\"whenDeleted\": \"WhenDeleted specifies what happens to PVCs created from StatefulSet VolumeClaimTemplates when the StatefulSet is deleted. The default policy of `Retain` causes PVCs to not be affected by StatefulSet deletion. The `Delete` policy causes those PVCs to be deleted.\",\n\t\"whenScaled\":  \"WhenScaled specifies what happens to PVCs created from StatefulSet VolumeClaimTemplates when the StatefulSet is scaled down. The default policy of `Retain` causes PVCs to not be affected by a scaledown. The `Delete` policy causes the associated PVCs for any excess pods above the replica count to be deleted.\",\n}\n\nfunc (StatefulSetPersistentVolumeClaimRetentionPolicy) SwaggerDoc() map[string]string {\n\treturn map_StatefulSetPersistentVolumeClaimRetentionPolicy\n}\n\nvar map_StatefulSetSpec = map[string]string{\n\t\"\":                                     \"A StatefulSetSpec is the specification of a StatefulSet.\",\n\t\"replicas\":                             \"replicas is the desired number of replicas of the given Template. These are replicas in the sense that they are instantiations of the same Template, but individual replicas also have a consistent identity. If unspecified, defaults to 1.\",\n\t\"selector\":                             \"selector is a label query over pods that should match the replica count. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\n\t\"template\":                             \"template is the object that describes the pod that will be created if insufficient replicas are detected. Each pod stamped out by the StatefulSet will fulfill this Template, but have a unique identity from the rest of the StatefulSet. Each pod will be named with the format <statefulsetname>-<podindex>. For example, a pod in a StatefulSet named \\\"web\\\" with index number \\\"3\\\" would be named \\\"web-3\\\". The only allowed template.spec.restartPolicy value is \\\"Always\\\".\",\n\t\"volumeClaimTemplates\":                 \"volumeClaimTemplates is a list of claims that pods are allowed to reference. The StatefulSet controller is responsible for mapping network identities to claims in a way that maintains the identity of a pod. Every claim in this list must have at least one matching (by name) volumeMount in one container in the template. A claim in this list takes precedence over any volumes in the template, with the same name.\",\n\t\"serviceName\":                          \"serviceName is the name of the service that governs this StatefulSet. This service must exist before the StatefulSet, and is responsible for the network identity of the set. Pods get DNS/hostnames that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local where \\\"pod-specific-string\\\" is managed by the StatefulSet controller.\",\n\t\"podManagementPolicy\":                  \"podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is `OrderedReady`, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is `Parallel` which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once.\",\n\t\"updateStrategy\":                       \"updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template.\",\n\t\"revisionHistoryLimit\":                 \"revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet's revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10.\",\n\t\"minReadySeconds\":                      \"Minimum number of seconds for which a newly created pod should be ready without any of its container crashing for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)\",\n\t\"persistentVolumeClaimRetentionPolicy\": \"PersistentVolumeClaimRetentionPolicy describes the policy used for PVCs created from the StatefulSet VolumeClaimTemplates.\",\n\t\"ordinals\":                             \"ordinals controls the numbering of replica indices in a StatefulSet. The default ordinals behavior assigns a \\\"0\\\" index to the first replica and increments the index by one for each additional replica requested.\",\n}\n\nfunc (StatefulSetSpec) SwaggerDoc() map[string]string {\n\treturn map_StatefulSetSpec\n}\n\nvar map_StatefulSetStatus = map[string]string{\n\t\"\":                   \"StatefulSetStatus represents the current state of a StatefulSet.\",\n\t\"observedGeneration\": \"observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the StatefulSet's generation, which is updated on mutation by the API Server.\",\n\t\"replicas\":           \"replicas is the number of Pods created by the StatefulSet controller.\",\n\t\"readyReplicas\":      \"readyReplicas is the number of pods created by this StatefulSet controller with a Ready Condition.\",\n\t\"currentReplicas\":    \"currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.\",\n\t\"updatedReplicas\":    \"updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.\",\n\t\"currentRevision\":    \"currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).\",\n\t\"updateRevision\":     \"updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)\",\n\t\"collisionCount\":     \"collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.\",\n\t\"conditions\":         \"Represents the latest available observations of a statefulset's current state.\",\n\t\"availableReplicas\":  \"Total number of available pods (ready for at least minReadySeconds) targeted by this StatefulSet.\",\n}\n\nfunc (StatefulSetStatus) SwaggerDoc() map[string]string {\n\treturn map_StatefulSetStatus\n}\n\nvar map_StatefulSetUpdateStrategy = map[string]string{\n\t\"\":              \"StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.\",\n\t\"type\":          \"Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.\",\n\t\"rollingUpdate\": \"RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.\",\n}\n\nfunc (StatefulSetUpdateStrategy) SwaggerDoc() map[string]string {\n\treturn map_StatefulSetUpdateStrategy\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1beta2/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ControllerRevision) DeepCopyInto(out *ControllerRevision) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Data.DeepCopyInto(&out.Data)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerRevision.\nfunc (in *ControllerRevision) DeepCopy() *ControllerRevision {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ControllerRevision)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ControllerRevision) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ControllerRevisionList) DeepCopyInto(out *ControllerRevisionList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ControllerRevision, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerRevisionList.\nfunc (in *ControllerRevisionList) DeepCopy() *ControllerRevisionList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ControllerRevisionList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ControllerRevisionList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DaemonSet) DeepCopyInto(out *DaemonSet) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSet.\nfunc (in *DaemonSet) DeepCopy() *DaemonSet {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DaemonSet)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *DaemonSet) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DaemonSetCondition) DeepCopyInto(out *DaemonSetCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetCondition.\nfunc (in *DaemonSetCondition) DeepCopy() *DaemonSetCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DaemonSetCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DaemonSetList) DeepCopyInto(out *DaemonSetList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]DaemonSet, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetList.\nfunc (in *DaemonSetList) DeepCopy() *DaemonSetList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DaemonSetList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *DaemonSetList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DaemonSetSpec) DeepCopyInto(out *DaemonSetSpec) {\n\t*out = *in\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tin.Template.DeepCopyInto(&out.Template)\n\tin.UpdateStrategy.DeepCopyInto(&out.UpdateStrategy)\n\tif in.RevisionHistoryLimit != nil {\n\t\tin, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetSpec.\nfunc (in *DaemonSetSpec) DeepCopy() *DaemonSetSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DaemonSetSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DaemonSetStatus) DeepCopyInto(out *DaemonSetStatus) {\n\t*out = *in\n\tif in.CollisionCount != nil {\n\t\tin, out := &in.CollisionCount, &out.CollisionCount\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]DaemonSetCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetStatus.\nfunc (in *DaemonSetStatus) DeepCopy() *DaemonSetStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DaemonSetStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DaemonSetUpdateStrategy) DeepCopyInto(out *DaemonSetUpdateStrategy) {\n\t*out = *in\n\tif in.RollingUpdate != nil {\n\t\tin, out := &in.RollingUpdate, &out.RollingUpdate\n\t\t*out = new(RollingUpdateDaemonSet)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetUpdateStrategy.\nfunc (in *DaemonSetUpdateStrategy) DeepCopy() *DaemonSetUpdateStrategy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DaemonSetUpdateStrategy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Deployment) DeepCopyInto(out *Deployment) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Deployment.\nfunc (in *Deployment) DeepCopy() *Deployment {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Deployment)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Deployment) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentCondition) DeepCopyInto(out *DeploymentCondition) {\n\t*out = *in\n\tin.LastUpdateTime.DeepCopyInto(&out.LastUpdateTime)\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentCondition.\nfunc (in *DeploymentCondition) DeepCopy() *DeploymentCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentList) DeepCopyInto(out *DeploymentList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Deployment, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentList.\nfunc (in *DeploymentList) DeepCopy() *DeploymentList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *DeploymentList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentSpec) DeepCopyInto(out *DeploymentSpec) {\n\t*out = *in\n\tif in.Replicas != nil {\n\t\tin, out := &in.Replicas, &out.Replicas\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tin.Template.DeepCopyInto(&out.Template)\n\tin.Strategy.DeepCopyInto(&out.Strategy)\n\tif in.RevisionHistoryLimit != nil {\n\t\tin, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.ProgressDeadlineSeconds != nil {\n\t\tin, out := &in.ProgressDeadlineSeconds, &out.ProgressDeadlineSeconds\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentSpec.\nfunc (in *DeploymentSpec) DeepCopy() *DeploymentSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentStatus) DeepCopyInto(out *DeploymentStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]DeploymentCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.CollisionCount != nil {\n\t\tin, out := &in.CollisionCount, &out.CollisionCount\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentStatus.\nfunc (in *DeploymentStatus) DeepCopy() *DeploymentStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentStrategy) DeepCopyInto(out *DeploymentStrategy) {\n\t*out = *in\n\tif in.RollingUpdate != nil {\n\t\tin, out := &in.RollingUpdate, &out.RollingUpdate\n\t\t*out = new(RollingUpdateDeployment)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentStrategy.\nfunc (in *DeploymentStrategy) DeepCopy() *DeploymentStrategy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentStrategy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ReplicaSet) DeepCopyInto(out *ReplicaSet) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSet.\nfunc (in *ReplicaSet) DeepCopy() *ReplicaSet {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ReplicaSet)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ReplicaSet) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ReplicaSetCondition) DeepCopyInto(out *ReplicaSetCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetCondition.\nfunc (in *ReplicaSetCondition) DeepCopy() *ReplicaSetCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ReplicaSetCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ReplicaSetList) DeepCopyInto(out *ReplicaSetList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ReplicaSet, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetList.\nfunc (in *ReplicaSetList) DeepCopy() *ReplicaSetList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ReplicaSetList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ReplicaSetList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ReplicaSetSpec) DeepCopyInto(out *ReplicaSetSpec) {\n\t*out = *in\n\tif in.Replicas != nil {\n\t\tin, out := &in.Replicas, &out.Replicas\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tin.Template.DeepCopyInto(&out.Template)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetSpec.\nfunc (in *ReplicaSetSpec) DeepCopy() *ReplicaSetSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ReplicaSetSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ReplicaSetStatus) DeepCopyInto(out *ReplicaSetStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]ReplicaSetCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetStatus.\nfunc (in *ReplicaSetStatus) DeepCopy() *ReplicaSetStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ReplicaSetStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RollingUpdateDaemonSet) DeepCopyInto(out *RollingUpdateDaemonSet) {\n\t*out = *in\n\tif in.MaxUnavailable != nil {\n\t\tin, out := &in.MaxUnavailable, &out.MaxUnavailable\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\tif in.MaxSurge != nil {\n\t\tin, out := &in.MaxSurge, &out.MaxSurge\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollingUpdateDaemonSet.\nfunc (in *RollingUpdateDaemonSet) DeepCopy() *RollingUpdateDaemonSet {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RollingUpdateDaemonSet)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RollingUpdateDeployment) DeepCopyInto(out *RollingUpdateDeployment) {\n\t*out = *in\n\tif in.MaxUnavailable != nil {\n\t\tin, out := &in.MaxUnavailable, &out.MaxUnavailable\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\tif in.MaxSurge != nil {\n\t\tin, out := &in.MaxSurge, &out.MaxSurge\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollingUpdateDeployment.\nfunc (in *RollingUpdateDeployment) DeepCopy() *RollingUpdateDeployment {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RollingUpdateDeployment)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RollingUpdateStatefulSetStrategy) DeepCopyInto(out *RollingUpdateStatefulSetStrategy) {\n\t*out = *in\n\tif in.Partition != nil {\n\t\tin, out := &in.Partition, &out.Partition\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.MaxUnavailable != nil {\n\t\tin, out := &in.MaxUnavailable, &out.MaxUnavailable\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollingUpdateStatefulSetStrategy.\nfunc (in *RollingUpdateStatefulSetStrategy) DeepCopy() *RollingUpdateStatefulSetStrategy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RollingUpdateStatefulSetStrategy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Scale) DeepCopyInto(out *Scale) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tout.Spec = in.Spec\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Scale.\nfunc (in *Scale) DeepCopy() *Scale {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Scale)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Scale) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ScaleSpec) DeepCopyInto(out *ScaleSpec) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleSpec.\nfunc (in *ScaleSpec) DeepCopy() *ScaleSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ScaleSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ScaleStatus) DeepCopyInto(out *ScaleStatus) {\n\t*out = *in\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleStatus.\nfunc (in *ScaleStatus) DeepCopy() *ScaleStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ScaleStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSet) DeepCopyInto(out *StatefulSet) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSet.\nfunc (in *StatefulSet) DeepCopy() *StatefulSet {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSet)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *StatefulSet) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSetCondition) DeepCopyInto(out *StatefulSetCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetCondition.\nfunc (in *StatefulSetCondition) DeepCopy() *StatefulSetCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSetCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSetList) DeepCopyInto(out *StatefulSetList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]StatefulSet, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetList.\nfunc (in *StatefulSetList) DeepCopy() *StatefulSetList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSetList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *StatefulSetList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSetOrdinals) DeepCopyInto(out *StatefulSetOrdinals) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetOrdinals.\nfunc (in *StatefulSetOrdinals) DeepCopy() *StatefulSetOrdinals {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSetOrdinals)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSetPersistentVolumeClaimRetentionPolicy) DeepCopyInto(out *StatefulSetPersistentVolumeClaimRetentionPolicy) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetPersistentVolumeClaimRetentionPolicy.\nfunc (in *StatefulSetPersistentVolumeClaimRetentionPolicy) DeepCopy() *StatefulSetPersistentVolumeClaimRetentionPolicy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSetPersistentVolumeClaimRetentionPolicy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSetSpec) DeepCopyInto(out *StatefulSetSpec) {\n\t*out = *in\n\tif in.Replicas != nil {\n\t\tin, out := &in.Replicas, &out.Replicas\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tin.Template.DeepCopyInto(&out.Template)\n\tif in.VolumeClaimTemplates != nil {\n\t\tin, out := &in.VolumeClaimTemplates, &out.VolumeClaimTemplates\n\t\t*out = make([]corev1.PersistentVolumeClaim, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tin.UpdateStrategy.DeepCopyInto(&out.UpdateStrategy)\n\tif in.RevisionHistoryLimit != nil {\n\t\tin, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.PersistentVolumeClaimRetentionPolicy != nil {\n\t\tin, out := &in.PersistentVolumeClaimRetentionPolicy, &out.PersistentVolumeClaimRetentionPolicy\n\t\t*out = new(StatefulSetPersistentVolumeClaimRetentionPolicy)\n\t\t**out = **in\n\t}\n\tif in.Ordinals != nil {\n\t\tin, out := &in.Ordinals, &out.Ordinals\n\t\t*out = new(StatefulSetOrdinals)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetSpec.\nfunc (in *StatefulSetSpec) DeepCopy() *StatefulSetSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSetSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSetStatus) DeepCopyInto(out *StatefulSetStatus) {\n\t*out = *in\n\tif in.CollisionCount != nil {\n\t\tin, out := &in.CollisionCount, &out.CollisionCount\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]StatefulSetCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetStatus.\nfunc (in *StatefulSetStatus) DeepCopy() *StatefulSetStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSetStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatefulSetUpdateStrategy) DeepCopyInto(out *StatefulSetUpdateStrategy) {\n\t*out = *in\n\tif in.RollingUpdate != nil {\n\t\tin, out := &in.RollingUpdate, &out.RollingUpdate\n\t\t*out = new(RollingUpdateStatefulSetStrategy)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetUpdateStrategy.\nfunc (in *StatefulSetUpdateStrategy) DeepCopy() *StatefulSetUpdateStrategy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatefulSetUpdateStrategy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/apps/v1beta2/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ControllerRevision) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ControllerRevision) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *ControllerRevision) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"ControllerRevision\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ControllerRevision) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ControllerRevisionList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ControllerRevisionList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *ControllerRevisionList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"ControllerRevisionList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ControllerRevisionList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *DaemonSet) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *DaemonSet) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *DaemonSet) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"DaemonSet\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *DaemonSet) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *DaemonSetList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *DaemonSetList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *DaemonSetList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"DaemonSetList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *DaemonSetList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *Deployment) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *Deployment) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *Deployment) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"Deployment\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *Deployment) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *DeploymentList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *DeploymentList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *DeploymentList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"DeploymentList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *DeploymentList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ReplicaSet) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ReplicaSet) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *ReplicaSet) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"ReplicaSet\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ReplicaSet) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ReplicaSetList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ReplicaSetList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *ReplicaSetList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"ReplicaSetList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ReplicaSetList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *Scale) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *Scale) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *Scale) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"autoscaling\", Version: \"v1\", Kind: \"Scale\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *Scale) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *StatefulSet) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *StatefulSet) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *StatefulSet) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"StatefulSet\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *StatefulSet) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *StatefulSetList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *StatefulSetList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *StatefulSetList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"StatefulSetList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *StatefulSetList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1/doc.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +groupName=authentication.k8s.io\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\npackage v1 // import \"k8s.io/api/authentication/v1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/authentication/v1/generated.proto\n\npackage v1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n\n\tk8s_io_apimachinery_pkg_types \"k8s.io/apimachinery/pkg/types\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *BoundObjectReference) Reset()      { *m = BoundObjectReference{} }\nfunc (*BoundObjectReference) ProtoMessage() {}\nfunc (*BoundObjectReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_d1237cbf54dccd53, []int{0}\n}\nfunc (m *BoundObjectReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *BoundObjectReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *BoundObjectReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_BoundObjectReference.Merge(m, src)\n}\nfunc (m *BoundObjectReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *BoundObjectReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_BoundObjectReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_BoundObjectReference proto.InternalMessageInfo\n\nfunc (m *ExtraValue) Reset()      { *m = ExtraValue{} }\nfunc (*ExtraValue) ProtoMessage() {}\nfunc (*ExtraValue) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_d1237cbf54dccd53, []int{1}\n}\nfunc (m *ExtraValue) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ExtraValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ExtraValue) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ExtraValue.Merge(m, src)\n}\nfunc (m *ExtraValue) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ExtraValue) XXX_DiscardUnknown() {\n\txxx_messageInfo_ExtraValue.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ExtraValue proto.InternalMessageInfo\n\nfunc (m *SelfSubjectReview) Reset()      { *m = SelfSubjectReview{} }\nfunc (*SelfSubjectReview) ProtoMessage() {}\nfunc (*SelfSubjectReview) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_d1237cbf54dccd53, []int{2}\n}\nfunc (m *SelfSubjectReview) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SelfSubjectReview) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SelfSubjectReview) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SelfSubjectReview.Merge(m, src)\n}\nfunc (m *SelfSubjectReview) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SelfSubjectReview) XXX_DiscardUnknown() {\n\txxx_messageInfo_SelfSubjectReview.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SelfSubjectReview proto.InternalMessageInfo\n\nfunc (m *SelfSubjectReviewStatus) Reset()      { *m = SelfSubjectReviewStatus{} }\nfunc (*SelfSubjectReviewStatus) ProtoMessage() {}\nfunc (*SelfSubjectReviewStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_d1237cbf54dccd53, []int{3}\n}\nfunc (m *SelfSubjectReviewStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SelfSubjectReviewStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SelfSubjectReviewStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SelfSubjectReviewStatus.Merge(m, src)\n}\nfunc (m *SelfSubjectReviewStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SelfSubjectReviewStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_SelfSubjectReviewStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SelfSubjectReviewStatus proto.InternalMessageInfo\n\nfunc (m *TokenRequest) Reset()      { *m = TokenRequest{} }\nfunc (*TokenRequest) ProtoMessage() {}\nfunc (*TokenRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_d1237cbf54dccd53, []int{4}\n}\nfunc (m *TokenRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TokenRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TokenRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TokenRequest.Merge(m, src)\n}\nfunc (m *TokenRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TokenRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_TokenRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TokenRequest proto.InternalMessageInfo\n\nfunc (m *TokenRequestSpec) Reset()      { *m = TokenRequestSpec{} }\nfunc (*TokenRequestSpec) ProtoMessage() {}\nfunc (*TokenRequestSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_d1237cbf54dccd53, []int{5}\n}\nfunc (m *TokenRequestSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TokenRequestSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TokenRequestSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TokenRequestSpec.Merge(m, src)\n}\nfunc (m *TokenRequestSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TokenRequestSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_TokenRequestSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TokenRequestSpec proto.InternalMessageInfo\n\nfunc (m *TokenRequestStatus) Reset()      { *m = TokenRequestStatus{} }\nfunc (*TokenRequestStatus) ProtoMessage() {}\nfunc (*TokenRequestStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_d1237cbf54dccd53, []int{6}\n}\nfunc (m *TokenRequestStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TokenRequestStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TokenRequestStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TokenRequestStatus.Merge(m, src)\n}\nfunc (m *TokenRequestStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TokenRequestStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_TokenRequestStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TokenRequestStatus proto.InternalMessageInfo\n\nfunc (m *TokenReview) Reset()      { *m = TokenReview{} }\nfunc (*TokenReview) ProtoMessage() {}\nfunc (*TokenReview) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_d1237cbf54dccd53, []int{7}\n}\nfunc (m *TokenReview) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TokenReview) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TokenReview) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TokenReview.Merge(m, src)\n}\nfunc (m *TokenReview) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TokenReview) XXX_DiscardUnknown() {\n\txxx_messageInfo_TokenReview.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TokenReview proto.InternalMessageInfo\n\nfunc (m *TokenReviewSpec) Reset()      { *m = TokenReviewSpec{} }\nfunc (*TokenReviewSpec) ProtoMessage() {}\nfunc (*TokenReviewSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_d1237cbf54dccd53, []int{8}\n}\nfunc (m *TokenReviewSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TokenReviewSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TokenReviewSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TokenReviewSpec.Merge(m, src)\n}\nfunc (m *TokenReviewSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TokenReviewSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_TokenReviewSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TokenReviewSpec proto.InternalMessageInfo\n\nfunc (m *TokenReviewStatus) Reset()      { *m = TokenReviewStatus{} }\nfunc (*TokenReviewStatus) ProtoMessage() {}\nfunc (*TokenReviewStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_d1237cbf54dccd53, []int{9}\n}\nfunc (m *TokenReviewStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TokenReviewStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TokenReviewStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TokenReviewStatus.Merge(m, src)\n}\nfunc (m *TokenReviewStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TokenReviewStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_TokenReviewStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TokenReviewStatus proto.InternalMessageInfo\n\nfunc (m *UserInfo) Reset()      { *m = UserInfo{} }\nfunc (*UserInfo) ProtoMessage() {}\nfunc (*UserInfo) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_d1237cbf54dccd53, []int{10}\n}\nfunc (m *UserInfo) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *UserInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *UserInfo) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_UserInfo.Merge(m, src)\n}\nfunc (m *UserInfo) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *UserInfo) XXX_DiscardUnknown() {\n\txxx_messageInfo_UserInfo.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_UserInfo proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*BoundObjectReference)(nil), \"k8s.io.api.authentication.v1.BoundObjectReference\")\n\tproto.RegisterType((*ExtraValue)(nil), \"k8s.io.api.authentication.v1.ExtraValue\")\n\tproto.RegisterType((*SelfSubjectReview)(nil), \"k8s.io.api.authentication.v1.SelfSubjectReview\")\n\tproto.RegisterType((*SelfSubjectReviewStatus)(nil), \"k8s.io.api.authentication.v1.SelfSubjectReviewStatus\")\n\tproto.RegisterType((*TokenRequest)(nil), \"k8s.io.api.authentication.v1.TokenRequest\")\n\tproto.RegisterType((*TokenRequestSpec)(nil), \"k8s.io.api.authentication.v1.TokenRequestSpec\")\n\tproto.RegisterType((*TokenRequestStatus)(nil), \"k8s.io.api.authentication.v1.TokenRequestStatus\")\n\tproto.RegisterType((*TokenReview)(nil), \"k8s.io.api.authentication.v1.TokenReview\")\n\tproto.RegisterType((*TokenReviewSpec)(nil), \"k8s.io.api.authentication.v1.TokenReviewSpec\")\n\tproto.RegisterType((*TokenReviewStatus)(nil), \"k8s.io.api.authentication.v1.TokenReviewStatus\")\n\tproto.RegisterType((*UserInfo)(nil), \"k8s.io.api.authentication.v1.UserInfo\")\n\tproto.RegisterMapType((map[string]ExtraValue)(nil), \"k8s.io.api.authentication.v1.UserInfo.ExtraEntry\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/authentication/v1/generated.proto\", fileDescriptor_d1237cbf54dccd53)\n}\n\nvar fileDescriptor_d1237cbf54dccd53 = []byte{\n\t// 947 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x56, 0x4b, 0x6f, 0x23, 0xc5,\n\t0x13, 0xf7, 0xf8, 0x11, 0xd9, 0xe5, 0x4d, 0xfe, 0x49, 0xef, 0x7f, 0x85, 0x15, 0x16, 0x4f, 0x98,\n\t0x95, 0x50, 0x04, 0xbb, 0x33, 0x1b, 0x8b, 0xc7, 0x6a, 0x91, 0x90, 0x32, 0xc4, 0x02, 0x0b, 0xc1,\n\t0xae, 0xda, 0x49, 0x40, 0x48, 0x48, 0xb4, 0xc7, 0x1d, 0xa7, 0xf1, 0xce, 0x83, 0x99, 0x1e, 0xb3,\n\t0xbe, 0xed, 0x47, 0xe0, 0x08, 0x12, 0x07, 0x3e, 0x04, 0x12, 0x5f, 0x21, 0xc7, 0x15, 0xe2, 0xb0,\n\t0x07, 0x64, 0x91, 0xe1, 0xca, 0x91, 0x13, 0x27, 0xd4, 0x3d, 0x1d, 0xdb, 0x63, 0x27, 0x13, 0x9f,\n\t0xf6, 0xe6, 0xa9, 0xc7, 0xaf, 0xaa, 0x7e, 0x55, 0x5d, 0x65, 0xb8, 0x3b, 0x7c, 0x10, 0x99, 0xcc,\n\t0xb7, 0x48, 0xc0, 0x2c, 0x12, 0xf3, 0x53, 0xea, 0x71, 0xe6, 0x10, 0xce, 0x7c, 0xcf, 0x1a, 0xed,\n\t0x59, 0x03, 0xea, 0xd1, 0x90, 0x70, 0xda, 0x37, 0x83, 0xd0, 0xe7, 0x3e, 0xba, 0x9d, 0x5a, 0x9b,\n\t0x24, 0x60, 0x66, 0xd6, 0xda, 0x1c, 0xed, 0x6d, 0xdf, 0x1b, 0x30, 0x7e, 0x1a, 0xf7, 0x4c, 0xc7,\n\t0x77, 0xad, 0x81, 0x3f, 0xf0, 0x2d, 0xe9, 0xd4, 0x8b, 0x4f, 0xe4, 0x97, 0xfc, 0x90, 0xbf, 0x52,\n\t0xb0, 0xed, 0xb7, 0x67, 0xa1, 0x5d, 0xe2, 0x9c, 0x32, 0x8f, 0x86, 0x63, 0x2b, 0x18, 0x0e, 0x84,\n\t0x20, 0xb2, 0x5c, 0xca, 0xc9, 0x25, 0x29, 0x6c, 0x5b, 0x57, 0x79, 0x85, 0xb1, 0xc7, 0x99, 0x4b,\n\t0x97, 0x1c, 0xde, 0xbd, 0xce, 0x21, 0x72, 0x4e, 0xa9, 0x4b, 0x16, 0xfd, 0x8c, 0xdf, 0x34, 0xf8,\n\t0xbf, 0xed, 0xc7, 0x5e, 0xff, 0x51, 0xef, 0x1b, 0xea, 0x70, 0x4c, 0x4f, 0x68, 0x48, 0x3d, 0x87,\n\t0xa2, 0x1d, 0x28, 0x0f, 0x99, 0xd7, 0x6f, 0x68, 0x3b, 0xda, 0x6e, 0xcd, 0xbe, 0x71, 0x36, 0xd1,\n\t0x0b, 0xc9, 0x44, 0x2f, 0x7f, 0xc2, 0xbc, 0x3e, 0x96, 0x1a, 0xd4, 0x02, 0x20, 0x01, 0x3b, 0xa6,\n\t0x61, 0xc4, 0x7c, 0xaf, 0x51, 0x94, 0x76, 0x48, 0xd9, 0xc1, 0xfe, 0xe3, 0x8e, 0xd2, 0xe0, 0x39,\n\t0x2b, 0x81, 0xea, 0x11, 0x97, 0x36, 0x4a, 0x59, 0xd4, 0xcf, 0x88, 0x4b, 0xb1, 0xd4, 0x20, 0x1b,\n\t0x4a, 0x71, 0xe7, 0xa0, 0x51, 0x96, 0x06, 0xf7, 0x95, 0x41, 0xe9, 0xa8, 0x73, 0xf0, 0xef, 0x44,\n\t0x7f, 0xfd, 0xaa, 0x22, 0xf9, 0x38, 0xa0, 0x91, 0x79, 0xd4, 0x39, 0xc0, 0xc2, 0xd9, 0x78, 0x0f,\n\t0xa0, 0xfd, 0x94, 0x87, 0xe4, 0x98, 0x3c, 0x89, 0x29, 0xd2, 0xa1, 0xc2, 0x38, 0x75, 0xa3, 0x86,\n\t0xb6, 0x53, 0xda, 0xad, 0xd9, 0xb5, 0x64, 0xa2, 0x57, 0x3a, 0x42, 0x80, 0x53, 0xf9, 0xc3, 0xea,\n\t0x0f, 0x3f, 0xeb, 0x85, 0x67, 0x7f, 0xec, 0x14, 0x8c, 0xdf, 0x35, 0xd8, 0xea, 0xd2, 0x27, 0x27,\n\t0xdd, 0x58, 0xb1, 0x31, 0x62, 0xf4, 0x3b, 0xf4, 0x35, 0x54, 0x45, 0x9f, 0xfa, 0x84, 0x13, 0x49,\n\t0x47, 0xbd, 0x75, 0xdf, 0x9c, 0x8d, 0xc8, 0x34, 0x13, 0x33, 0x18, 0x0e, 0x84, 0x20, 0x32, 0x85,\n\t0xb5, 0x39, 0xda, 0x33, 0x53, 0x4e, 0x3f, 0xa5, 0x9c, 0xcc, 0x88, 0x99, 0xc9, 0xf0, 0x14, 0x15,\n\t0x7d, 0x05, 0x6b, 0x11, 0x27, 0x3c, 0x8e, 0x24, 0x8d, 0xf5, 0xd6, 0x3b, 0x66, 0xde, 0x08, 0x9a,\n\t0x4b, 0x29, 0x76, 0xa5, 0xb3, 0xbd, 0xa1, 0x82, 0xac, 0xa5, 0xdf, 0x58, 0x81, 0x1a, 0x3e, 0xbc,\n\t0x72, 0x85, 0x0b, 0x3a, 0x84, 0x6a, 0x1c, 0xd1, 0xb0, 0xe3, 0x9d, 0xf8, 0xaa, 0xb6, 0x37, 0xf2,\n\t0x63, 0x1f, 0x29, 0x6b, 0x7b, 0x53, 0x05, 0xab, 0x5e, 0x48, 0xf0, 0x14, 0xc9, 0xf8, 0xa9, 0x08,\n\t0x37, 0x0e, 0xfd, 0x21, 0xf5, 0x30, 0xfd, 0x36, 0xa6, 0x11, 0x7f, 0x09, 0x14, 0x3e, 0x86, 0x72,\n\t0x14, 0x50, 0x47, 0x11, 0x68, 0xe6, 0x17, 0x31, 0x9f, 0x5b, 0x37, 0xa0, 0xce, 0x6c, 0x12, 0xc5,\n\t0x17, 0x96, 0x48, 0xe8, 0x8b, 0x69, 0x53, 0x4a, 0x4b, 0x19, 0x5f, 0x87, 0x99, 0xdf, 0x8f, 0x7f,\n\t0x34, 0xd8, 0x5c, 0x4c, 0x01, 0xbd, 0x05, 0x35, 0x12, 0xf7, 0x99, 0x78, 0x7c, 0x17, 0xa3, 0xba,\n\t0x9e, 0x4c, 0xf4, 0xda, 0xfe, 0x85, 0x10, 0xcf, 0xf4, 0xe8, 0x43, 0xd8, 0xa2, 0x4f, 0x03, 0x16,\n\t0xca, 0xe8, 0x5d, 0xea, 0xf8, 0x5e, 0x3f, 0x92, 0x6f, 0xa6, 0x64, 0xdf, 0x4a, 0x26, 0xfa, 0x56,\n\t0x7b, 0x51, 0x89, 0x97, 0xed, 0x91, 0x07, 0x1b, 0xbd, 0xcc, 0xd3, 0x57, 0x85, 0xb6, 0xf2, 0x0b,\n\t0xbd, 0x6c, 0x5d, 0xd8, 0x28, 0x99, 0xe8, 0x1b, 0x59, 0x0d, 0x5e, 0x40, 0x37, 0x7e, 0xd1, 0x00,\n\t0x2d, 0xb3, 0x84, 0xee, 0x40, 0x85, 0x0b, 0xa9, 0x5a, 0x35, 0xeb, 0x8a, 0xb4, 0x4a, 0x6a, 0x9a,\n\t0xea, 0xd0, 0x18, 0x6e, 0xce, 0x0a, 0x38, 0x64, 0x2e, 0x8d, 0x38, 0x71, 0x03, 0xd5, 0xed, 0x37,\n\t0x57, 0x9b, 0x25, 0xe1, 0x66, 0xbf, 0xaa, 0xe0, 0x6f, 0xb6, 0x97, 0xe1, 0xf0, 0x65, 0x31, 0x8c,\n\t0x1f, 0x8b, 0x50, 0x57, 0x69, 0xbf, 0xa4, 0x75, 0xf0, 0x28, 0x33, 0xcb, 0xf7, 0x56, 0x9a, 0x3b,\n\t0xf9, 0xa6, 0xaf, 0x1a, 0xe5, 0xcf, 0x17, 0x46, 0xd9, 0x5a, 0x1d, 0x32, 0x7f, 0x92, 0x1d, 0xf8,\n\t0xdf, 0x42, 0xfc, 0xd5, 0xda, 0x99, 0x19, 0xf6, 0x62, 0xfe, 0xb0, 0x1b, 0x7f, 0x6b, 0xb0, 0xb5,\n\t0x94, 0x12, 0x7a, 0x1f, 0xd6, 0xe7, 0x32, 0xa7, 0xe9, 0xa5, 0xaa, 0xda, 0xb7, 0x54, 0xbc, 0xf5,\n\t0xfd, 0x79, 0x25, 0xce, 0xda, 0xa2, 0x8f, 0xa1, 0x2c, 0x96, 0x95, 0x62, 0x78, 0xd5, 0x95, 0x37,\n\t0xa5, 0x56, 0x48, 0xb0, 0x44, 0xc8, 0x56, 0x52, 0xbe, 0xe6, 0xd9, 0xde, 0x81, 0x0a, 0x0d, 0x43,\n\t0x3f, 0x54, 0xf7, 0x6f, 0xca, 0x4d, 0x5b, 0x08, 0x71, 0xaa, 0x33, 0x7e, 0x2d, 0xc2, 0x74, 0xa7,\n\t0xa2, 0xbb, 0xe9, 0x7e, 0x96, 0x47, 0x33, 0x25, 0x34, 0xb3, 0x77, 0x85, 0x1c, 0x4f, 0x2d, 0xd0,\n\t0x6b, 0x50, 0x8a, 0x59, 0x5f, 0xdd, 0xe2, 0xfa, 0xdc, 0xf1, 0xc4, 0x42, 0x8e, 0x0c, 0x58, 0x1b,\n\t0x84, 0x7e, 0x1c, 0x88, 0x31, 0x10, 0x89, 0x82, 0xe8, 0xe8, 0x47, 0x52, 0x82, 0x95, 0x06, 0x1d,\n\t0x43, 0x85, 0x8a, 0xdb, 0x29, 0x6b, 0xa9, 0xb7, 0xf6, 0x56, 0xa3, 0xc6, 0x94, 0xf7, 0xb6, 0xed,\n\t0xf1, 0x70, 0x3c, 0x57, 0x95, 0x90, 0xe1, 0x14, 0x6e, 0xbb, 0xa7, 0x6e, 0xb2, 0xb4, 0x41, 0x9b,\n\t0x50, 0x1a, 0xd2, 0x71, 0x5a, 0x11, 0x16, 0x3f, 0xd1, 0x07, 0x50, 0x19, 0x89, 0x73, 0xad, 0x5a,\n\t0xb2, 0x9b, 0x1f, 0x77, 0x76, 0xde, 0x71, 0xea, 0xf6, 0xb0, 0xf8, 0x40, 0xb3, 0xed, 0xb3, 0xf3,\n\t0x66, 0xe1, 0xf9, 0x79, 0xb3, 0xf0, 0xe2, 0xbc, 0x59, 0x78, 0x96, 0x34, 0xb5, 0xb3, 0xa4, 0xa9,\n\t0x3d, 0x4f, 0x9a, 0xda, 0x8b, 0xa4, 0xa9, 0xfd, 0x99, 0x34, 0xb5, 0xef, 0xff, 0x6a, 0x16, 0xbe,\n\t0xbc, 0x9d, 0xf7, 0x67, 0xf0, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf0, 0xb7, 0xc1, 0xa0, 0x2b,\n\t0x0a, 0x00, 0x00,\n}\n\nfunc (m *BoundObjectReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *BoundObjectReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *BoundObjectReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.UID)\n\tcopy(dAtA[i:], m.UID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.UID)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.APIVersion)\n\tcopy(dAtA[i:], m.APIVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIVersion)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m ExtraValue) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m ExtraValue) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m ExtraValue) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m) > 0 {\n\t\tfor iNdEx := len(m) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m[iNdEx])\n\t\t\tcopy(dAtA[i:], m[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SelfSubjectReview) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SelfSubjectReview) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SelfSubjectReview) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SelfSubjectReviewStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SelfSubjectReviewStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SelfSubjectReviewStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.UserInfo.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TokenRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TokenRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TokenRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TokenRequestSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TokenRequestSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TokenRequestSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ExpirationSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.ExpirationSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif m.BoundObjectRef != nil {\n\t\t{\n\t\t\tsize, err := m.BoundObjectRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif len(m.Audiences) > 0 {\n\t\tfor iNdEx := len(m.Audiences) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Audiences[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Audiences[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Audiences[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TokenRequestStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TokenRequestStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TokenRequestStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.ExpirationTimestamp.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Token)\n\tcopy(dAtA[i:], m.Token)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Token)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TokenReview) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TokenReview) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TokenReview) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TokenReviewSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TokenReviewSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TokenReviewSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Audiences) > 0 {\n\t\tfor iNdEx := len(m.Audiences) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Audiences[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Audiences[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Audiences[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.Token)\n\tcopy(dAtA[i:], m.Token)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Token)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TokenReviewStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TokenReviewStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TokenReviewStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Audiences) > 0 {\n\t\tfor iNdEx := len(m.Audiences) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Audiences[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Audiences[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Audiences[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\ti -= len(m.Error)\n\tcopy(dAtA[i:], m.Error)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Error)))\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.User.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti--\n\tif m.Authenticated {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *UserInfo) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *UserInfo) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *UserInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Extra) > 0 {\n\t\tkeysForExtra := make([]string, 0, len(m.Extra))\n\t\tfor k := range m.Extra {\n\t\t\tkeysForExtra = append(keysForExtra, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForExtra)\n\t\tfor iNdEx := len(keysForExtra) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Extra[string(keysForExtra[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForExtra[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForExtra[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForExtra[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif len(m.Groups) > 0 {\n\t\tfor iNdEx := len(m.Groups) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Groups[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Groups[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Groups[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\ti -= len(m.UID)\n\tcopy(dAtA[i:], m.UID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.UID)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Username)\n\tcopy(dAtA[i:], m.Username)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Username)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *BoundObjectReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.APIVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.UID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m ExtraValue) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m) > 0 {\n\t\tfor _, s := range m {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *SelfSubjectReview) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *SelfSubjectReviewStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.UserInfo.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *TokenRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *TokenRequestSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Audiences) > 0 {\n\t\tfor _, s := range m.Audiences {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.BoundObjectRef != nil {\n\t\tl = m.BoundObjectRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ExpirationSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.ExpirationSeconds))\n\t}\n\treturn n\n}\n\nfunc (m *TokenRequestStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Token)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.ExpirationTimestamp.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *TokenReview) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *TokenReviewSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Token)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Audiences) > 0 {\n\t\tfor _, s := range m.Audiences {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *TokenReviewStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 2\n\tl = m.User.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Error)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Audiences) > 0 {\n\t\tfor _, s := range m.Audiences {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *UserInfo) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Username)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.UID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Groups) > 0 {\n\t\tfor _, s := range m.Groups {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Extra) > 0 {\n\t\tfor k, v := range m.Extra {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *BoundObjectReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&BoundObjectReference{`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`APIVersion:` + fmt.Sprintf(\"%v\", this.APIVersion) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`UID:` + fmt.Sprintf(\"%v\", this.UID) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SelfSubjectReview) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SelfSubjectReview{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"SelfSubjectReviewStatus\", \"SelfSubjectReviewStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SelfSubjectReviewStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SelfSubjectReviewStatus{`,\n\t\t`UserInfo:` + strings.Replace(strings.Replace(this.UserInfo.String(), \"UserInfo\", \"UserInfo\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TokenRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&TokenRequest{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"TokenRequestSpec\", \"TokenRequestSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"TokenRequestStatus\", \"TokenRequestStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TokenRequestSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&TokenRequestSpec{`,\n\t\t`Audiences:` + fmt.Sprintf(\"%v\", this.Audiences) + `,`,\n\t\t`BoundObjectRef:` + strings.Replace(this.BoundObjectRef.String(), \"BoundObjectReference\", \"BoundObjectReference\", 1) + `,`,\n\t\t`ExpirationSeconds:` + valueToStringGenerated(this.ExpirationSeconds) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TokenRequestStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&TokenRequestStatus{`,\n\t\t`Token:` + fmt.Sprintf(\"%v\", this.Token) + `,`,\n\t\t`ExpirationTimestamp:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ExpirationTimestamp), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TokenReview) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&TokenReview{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"TokenReviewSpec\", \"TokenReviewSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"TokenReviewStatus\", \"TokenReviewStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TokenReviewSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&TokenReviewSpec{`,\n\t\t`Token:` + fmt.Sprintf(\"%v\", this.Token) + `,`,\n\t\t`Audiences:` + fmt.Sprintf(\"%v\", this.Audiences) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TokenReviewStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&TokenReviewStatus{`,\n\t\t`Authenticated:` + fmt.Sprintf(\"%v\", this.Authenticated) + `,`,\n\t\t`User:` + strings.Replace(strings.Replace(this.User.String(), \"UserInfo\", \"UserInfo\", 1), `&`, ``, 1) + `,`,\n\t\t`Error:` + fmt.Sprintf(\"%v\", this.Error) + `,`,\n\t\t`Audiences:` + fmt.Sprintf(\"%v\", this.Audiences) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *UserInfo) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForExtra := make([]string, 0, len(this.Extra))\n\tfor k := range this.Extra {\n\t\tkeysForExtra = append(keysForExtra, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForExtra)\n\tmapStringForExtra := \"map[string]ExtraValue{\"\n\tfor _, k := range keysForExtra {\n\t\tmapStringForExtra += fmt.Sprintf(\"%v: %v,\", k, this.Extra[k])\n\t}\n\tmapStringForExtra += \"}\"\n\ts := strings.Join([]string{`&UserInfo{`,\n\t\t`Username:` + fmt.Sprintf(\"%v\", this.Username) + `,`,\n\t\t`UID:` + fmt.Sprintf(\"%v\", this.UID) + `,`,\n\t\t`Groups:` + fmt.Sprintf(\"%v\", this.Groups) + `,`,\n\t\t`Extra:` + mapStringForExtra + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *BoundObjectReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: BoundObjectReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: BoundObjectReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.UID = k8s_io_apimachinery_pkg_types.UID(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ExtraValue) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ExtraValue: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ExtraValue: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\t*m = append(*m, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SelfSubjectReview) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectReview: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectReview: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SelfSubjectReviewStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectReviewStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectReviewStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UserInfo\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.UserInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TokenRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TokenRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TokenRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TokenRequestSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TokenRequestSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TokenRequestSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Audiences\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Audiences = append(m.Audiences, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field BoundObjectRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.BoundObjectRef == nil {\n\t\t\t\tm.BoundObjectRef = &BoundObjectReference{}\n\t\t\t}\n\t\t\tif err := m.BoundObjectRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ExpirationSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ExpirationSeconds = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TokenRequestStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TokenRequestStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TokenRequestStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Token\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Token = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ExpirationTimestamp\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ExpirationTimestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TokenReview) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TokenReview: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TokenReview: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TokenReviewSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TokenReviewSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TokenReviewSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Token\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Token = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Audiences\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Audiences = append(m.Audiences, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TokenReviewStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TokenReviewStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TokenReviewStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Authenticated\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Authenticated = bool(v != 0)\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field User\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.User.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Error\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Error = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Audiences\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Audiences = append(m.Audiences, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *UserInfo) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: UserInfo: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: UserInfo: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Username\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Username = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.UID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Groups\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Groups = append(m.Groups, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Extra\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Extra == nil {\n\t\t\t\tm.Extra = make(map[string]ExtraValue)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tmapvalue := &ExtraValue{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &ExtraValue{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Extra[mapkey] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.authentication.v1;\n\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/authentication/v1\";\n\n// BoundObjectReference is a reference to an object that a token is bound to.\nmessage BoundObjectReference {\n  // Kind of the referent. Valid kinds are 'Pod' and 'Secret'.\n  // +optional\n  optional string kind = 1;\n\n  // API version of the referent.\n  // +optional\n  optional string apiVersion = 2;\n\n  // Name of the referent.\n  // +optional\n  optional string name = 3;\n\n  // UID of the referent.\n  // +optional\n  optional string uID = 4;\n}\n\n// ExtraValue masks the value so protobuf can generate\n// +protobuf.nullable=true\n// +protobuf.options.(gogoproto.goproto_stringer)=false\nmessage ExtraValue {\n  // items, if empty, will result in an empty slice\n\n  repeated string items = 1;\n}\n\n// SelfSubjectReview contains the user information that the kube-apiserver has about the user making this request.\n// When using impersonation, users will receive the user info of the user being impersonated.  If impersonation or\n// request header authentication is used, any extra keys will have their case ignored and returned as lowercase.\nmessage SelfSubjectReview {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Status is filled in by the server with the user attributes.\n  optional SelfSubjectReviewStatus status = 2;\n}\n\n// SelfSubjectReviewStatus is filled by the kube-apiserver and sent back to a user.\nmessage SelfSubjectReviewStatus {\n  // User attributes of the user making this request.\n  // +optional\n  optional UserInfo userInfo = 1;\n}\n\n// TokenRequest requests a token for a given service account.\nmessage TokenRequest {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec holds information about the request being evaluated\n  optional TokenRequestSpec spec = 2;\n\n  // Status is filled in by the server and indicates whether the token can be authenticated.\n  // +optional\n  optional TokenRequestStatus status = 3;\n}\n\n// TokenRequestSpec contains client provided parameters of a token request.\nmessage TokenRequestSpec {\n  // Audiences are the intendend audiences of the token. A recipient of a\n  // token must identify themself with an identifier in the list of\n  // audiences of the token, and otherwise should reject the token. A\n  // token issued for multiple audiences may be used to authenticate\n  // against any of the audiences listed but implies a high degree of\n  // trust between the target audiences.\n  // +listType=atomic\n  repeated string audiences = 1;\n\n  // ExpirationSeconds is the requested duration of validity of the request. The\n  // token issuer may return a token with a different validity duration so a\n  // client needs to check the 'expiration' field in a response.\n  // +optional\n  optional int64 expirationSeconds = 4;\n\n  // BoundObjectRef is a reference to an object that the token will be bound to.\n  // The token will only be valid for as long as the bound object exists.\n  // NOTE: The API server's TokenReview endpoint will validate the\n  // BoundObjectRef, but other audiences may not. Keep ExpirationSeconds\n  // small if you want prompt revocation.\n  // +optional\n  optional BoundObjectReference boundObjectRef = 3;\n}\n\n// TokenRequestStatus is the result of a token request.\nmessage TokenRequestStatus {\n  // Token is the opaque bearer token.\n  optional string token = 1;\n\n  // ExpirationTimestamp is the time of expiration of the returned token.\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time expirationTimestamp = 2;\n}\n\n// TokenReview attempts to authenticate a token to a known user.\n// Note: TokenReview requests may be cached by the webhook token authenticator\n// plugin in the kube-apiserver.\nmessage TokenReview {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec holds information about the request being evaluated\n  optional TokenReviewSpec spec = 2;\n\n  // Status is filled in by the server and indicates whether the request can be authenticated.\n  // +optional\n  optional TokenReviewStatus status = 3;\n}\n\n// TokenReviewSpec is a description of the token authentication request.\nmessage TokenReviewSpec {\n  // Token is the opaque bearer token.\n  // +optional\n  optional string token = 1;\n\n  // Audiences is a list of the identifiers that the resource server presented\n  // with the token identifies as. Audience-aware token authenticators will\n  // verify that the token was intended for at least one of the audiences in\n  // this list. If no audiences are provided, the audience will default to the\n  // audience of the Kubernetes apiserver.\n  // +optional\n  // +listType=atomic\n  repeated string audiences = 2;\n}\n\n// TokenReviewStatus is the result of the token authentication request.\nmessage TokenReviewStatus {\n  // Authenticated indicates that the token was associated with a known user.\n  // +optional\n  optional bool authenticated = 1;\n\n  // User is the UserInfo associated with the provided token.\n  // +optional\n  optional UserInfo user = 2;\n\n  // Audiences are audience identifiers chosen by the authenticator that are\n  // compatible with both the TokenReview and token. An identifier is any\n  // identifier in the intersection of the TokenReviewSpec audiences and the\n  // token's audiences. A client of the TokenReview API that sets the\n  // spec.audiences field should validate that a compatible audience identifier\n  // is returned in the status.audiences field to ensure that the TokenReview\n  // server is audience aware. If a TokenReview returns an empty\n  // status.audience field where status.authenticated is \"true\", the token is\n  // valid against the audience of the Kubernetes API server.\n  // +optional\n  // +listType=atomic\n  repeated string audiences = 4;\n\n  // Error indicates that the token couldn't be checked\n  // +optional\n  optional string error = 3;\n}\n\n// UserInfo holds the information about the user needed to implement the\n// user.Info interface.\nmessage UserInfo {\n  // The name that uniquely identifies this user among all active users.\n  // +optional\n  optional string username = 1;\n\n  // A unique value that identifies this user across time. If this user is\n  // deleted and another user by the same name is added, they will have\n  // different UIDs.\n  // +optional\n  optional string uid = 2;\n\n  // The names of groups this user is a part of.\n  // +optional\n  // +listType=atomic\n  repeated string groups = 3;\n\n  // Any additional information provided by the authenticator.\n  // +optional\n  map<string, ExtraValue> extra = 4;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1/register.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"authentication.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&TokenReview{},\n\t\t&TokenRequest{},\n\t\t&SelfSubjectReview{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1/types.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"fmt\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/types\"\n)\n\nconst (\n\t// ImpersonateUserHeader is used to impersonate a particular user during an API server request\n\tImpersonateUserHeader = \"Impersonate-User\"\n\n\t// ImpersonateGroupHeader is used to impersonate a particular group during an API server request.\n\t// It can be repeated multiplied times for multiple groups.\n\tImpersonateGroupHeader = \"Impersonate-Group\"\n\n\t// ImpersonateUIDHeader is used to impersonate a particular UID during an API server request\n\tImpersonateUIDHeader = \"Impersonate-Uid\"\n\n\t// ImpersonateUserExtraHeaderPrefix is a prefix for any header used to impersonate an entry in the\n\t// extra map[string][]string for user.Info.  The key will be every after the prefix.\n\t// It can be repeated multiplied times for multiple map keys and the same key can be repeated multiple\n\t// times to have multiple elements in the slice under a single key\n\tImpersonateUserExtraHeaderPrefix = \"Impersonate-Extra-\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +genclient:onlyVerbs=create\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.6\n\n// TokenReview attempts to authenticate a token to a known user.\n// Note: TokenReview requests may be cached by the webhook token authenticator\n// plugin in the kube-apiserver.\ntype TokenReview struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec holds information about the request being evaluated\n\tSpec TokenReviewSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status is filled in by the server and indicates whether the request can be authenticated.\n\t// +optional\n\tStatus TokenReviewStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// TokenReviewSpec is a description of the token authentication request.\ntype TokenReviewSpec struct {\n\t// Token is the opaque bearer token.\n\t// +optional\n\tToken string `json:\"token,omitempty\" protobuf:\"bytes,1,opt,name=token\"`\n\t// Audiences is a list of the identifiers that the resource server presented\n\t// with the token identifies as. Audience-aware token authenticators will\n\t// verify that the token was intended for at least one of the audiences in\n\t// this list. If no audiences are provided, the audience will default to the\n\t// audience of the Kubernetes apiserver.\n\t// +optional\n\t// +listType=atomic\n\tAudiences []string `json:\"audiences,omitempty\" protobuf:\"bytes,2,rep,name=audiences\"`\n}\n\n// TokenReviewStatus is the result of the token authentication request.\ntype TokenReviewStatus struct {\n\t// Authenticated indicates that the token was associated with a known user.\n\t// +optional\n\tAuthenticated bool `json:\"authenticated,omitempty\" protobuf:\"varint,1,opt,name=authenticated\"`\n\t// User is the UserInfo associated with the provided token.\n\t// +optional\n\tUser UserInfo `json:\"user,omitempty\" protobuf:\"bytes,2,opt,name=user\"`\n\t// Audiences are audience identifiers chosen by the authenticator that are\n\t// compatible with both the TokenReview and token. An identifier is any\n\t// identifier in the intersection of the TokenReviewSpec audiences and the\n\t// token's audiences. A client of the TokenReview API that sets the\n\t// spec.audiences field should validate that a compatible audience identifier\n\t// is returned in the status.audiences field to ensure that the TokenReview\n\t// server is audience aware. If a TokenReview returns an empty\n\t// status.audience field where status.authenticated is \"true\", the token is\n\t// valid against the audience of the Kubernetes API server.\n\t// +optional\n\t// +listType=atomic\n\tAudiences []string `json:\"audiences,omitempty\" protobuf:\"bytes,4,rep,name=audiences\"`\n\t// Error indicates that the token couldn't be checked\n\t// +optional\n\tError string `json:\"error,omitempty\" protobuf:\"bytes,3,opt,name=error\"`\n}\n\n// UserInfo holds the information about the user needed to implement the\n// user.Info interface.\ntype UserInfo struct {\n\t// The name that uniquely identifies this user among all active users.\n\t// +optional\n\tUsername string `json:\"username,omitempty\" protobuf:\"bytes,1,opt,name=username\"`\n\t// A unique value that identifies this user across time. If this user is\n\t// deleted and another user by the same name is added, they will have\n\t// different UIDs.\n\t// +optional\n\tUID string `json:\"uid,omitempty\" protobuf:\"bytes,2,opt,name=uid\"`\n\t// The names of groups this user is a part of.\n\t// +optional\n\t// +listType=atomic\n\tGroups []string `json:\"groups,omitempty\" protobuf:\"bytes,3,rep,name=groups\"`\n\t// Any additional information provided by the authenticator.\n\t// +optional\n\tExtra map[string]ExtraValue `json:\"extra,omitempty\" protobuf:\"bytes,4,rep,name=extra\"`\n}\n\n// ExtraValue masks the value so protobuf can generate\n// +protobuf.nullable=true\n// +protobuf.options.(gogoproto.goproto_stringer)=false\ntype ExtraValue []string\n\nfunc (t ExtraValue) String() string {\n\treturn fmt.Sprintf(\"%v\", []string(t))\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.10\n\n// TokenRequest requests a token for a given service account.\ntype TokenRequest struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec holds information about the request being evaluated\n\tSpec TokenRequestSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status is filled in by the server and indicates whether the token can be authenticated.\n\t// +optional\n\tStatus TokenRequestStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// TokenRequestSpec contains client provided parameters of a token request.\ntype TokenRequestSpec struct {\n\t// Audiences are the intendend audiences of the token. A recipient of a\n\t// token must identify themself with an identifier in the list of\n\t// audiences of the token, and otherwise should reject the token. A\n\t// token issued for multiple audiences may be used to authenticate\n\t// against any of the audiences listed but implies a high degree of\n\t// trust between the target audiences.\n\t// +listType=atomic\n\tAudiences []string `json:\"audiences\" protobuf:\"bytes,1,rep,name=audiences\"`\n\n\t// ExpirationSeconds is the requested duration of validity of the request. The\n\t// token issuer may return a token with a different validity duration so a\n\t// client needs to check the 'expiration' field in a response.\n\t// +optional\n\tExpirationSeconds *int64 `json:\"expirationSeconds\" protobuf:\"varint,4,opt,name=expirationSeconds\"`\n\n\t// BoundObjectRef is a reference to an object that the token will be bound to.\n\t// The token will only be valid for as long as the bound object exists.\n\t// NOTE: The API server's TokenReview endpoint will validate the\n\t// BoundObjectRef, but other audiences may not. Keep ExpirationSeconds\n\t// small if you want prompt revocation.\n\t// +optional\n\tBoundObjectRef *BoundObjectReference `json:\"boundObjectRef\" protobuf:\"bytes,3,opt,name=boundObjectRef\"`\n}\n\n// TokenRequestStatus is the result of a token request.\ntype TokenRequestStatus struct {\n\t// Token is the opaque bearer token.\n\tToken string `json:\"token\" protobuf:\"bytes,1,opt,name=token\"`\n\t// ExpirationTimestamp is the time of expiration of the returned token.\n\tExpirationTimestamp metav1.Time `json:\"expirationTimestamp\" protobuf:\"bytes,2,opt,name=expirationTimestamp\"`\n}\n\n// BoundObjectReference is a reference to an object that a token is bound to.\ntype BoundObjectReference struct {\n\t// Kind of the referent. Valid kinds are 'Pod' and 'Secret'.\n\t// +optional\n\tKind string `json:\"kind,omitempty\" protobuf:\"bytes,1,opt,name=kind\"`\n\t// API version of the referent.\n\t// +optional\n\tAPIVersion string `json:\"apiVersion,omitempty\" protobuf:\"bytes,2,opt,name=apiVersion\"`\n\n\t// Name of the referent.\n\t// +optional\n\tName string `json:\"name,omitempty\" protobuf:\"bytes,3,opt,name=name\"`\n\t// UID of the referent.\n\t// +optional\n\tUID types.UID `json:\"uid,omitempty\" protobuf:\"bytes,4,opt,name=uID,casttype=k8s.io/apimachinery/pkg/types.UID\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +genclient:onlyVerbs=create\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.28\n\n// SelfSubjectReview contains the user information that the kube-apiserver has about the user making this request.\n// When using impersonation, users will receive the user info of the user being impersonated.  If impersonation or\n// request header authentication is used, any extra keys will have their case ignored and returned as lowercase.\ntype SelfSubjectReview struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// Status is filled in by the server with the user attributes.\n\tStatus SelfSubjectReviewStatus `json:\"status,omitempty\" protobuf:\"bytes,2,opt,name=status\"`\n}\n\n// SelfSubjectReviewStatus is filled by the kube-apiserver and sent back to a user.\ntype SelfSubjectReviewStatus struct {\n\t// User attributes of the user making this request.\n\t// +optional\n\tUserInfo UserInfo `json:\"userInfo,omitempty\" protobuf:\"bytes,1,opt,name=userInfo\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_BoundObjectReference = map[string]string{\n\t\"\":           \"BoundObjectReference is a reference to an object that a token is bound to.\",\n\t\"kind\":       \"Kind of the referent. Valid kinds are 'Pod' and 'Secret'.\",\n\t\"apiVersion\": \"API version of the referent.\",\n\t\"name\":       \"Name of the referent.\",\n\t\"uid\":        \"UID of the referent.\",\n}\n\nfunc (BoundObjectReference) SwaggerDoc() map[string]string {\n\treturn map_BoundObjectReference\n}\n\nvar map_SelfSubjectReview = map[string]string{\n\t\"\":         \"SelfSubjectReview contains the user information that the kube-apiserver has about the user making this request. When using impersonation, users will receive the user info of the user being impersonated.  If impersonation or request header authentication is used, any extra keys will have their case ignored and returned as lowercase.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"status\":   \"Status is filled in by the server with the user attributes.\",\n}\n\nfunc (SelfSubjectReview) SwaggerDoc() map[string]string {\n\treturn map_SelfSubjectReview\n}\n\nvar map_SelfSubjectReviewStatus = map[string]string{\n\t\"\":         \"SelfSubjectReviewStatus is filled by the kube-apiserver and sent back to a user.\",\n\t\"userInfo\": \"User attributes of the user making this request.\",\n}\n\nfunc (SelfSubjectReviewStatus) SwaggerDoc() map[string]string {\n\treturn map_SelfSubjectReviewStatus\n}\n\nvar map_TokenRequest = map[string]string{\n\t\"\":         \"TokenRequest requests a token for a given service account.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec holds information about the request being evaluated\",\n\t\"status\":   \"Status is filled in by the server and indicates whether the token can be authenticated.\",\n}\n\nfunc (TokenRequest) SwaggerDoc() map[string]string {\n\treturn map_TokenRequest\n}\n\nvar map_TokenRequestSpec = map[string]string{\n\t\"\":                  \"TokenRequestSpec contains client provided parameters of a token request.\",\n\t\"audiences\":         \"Audiences are the intendend audiences of the token. A recipient of a token must identify themself with an identifier in the list of audiences of the token, and otherwise should reject the token. A token issued for multiple audiences may be used to authenticate against any of the audiences listed but implies a high degree of trust between the target audiences.\",\n\t\"expirationSeconds\": \"ExpirationSeconds is the requested duration of validity of the request. The token issuer may return a token with a different validity duration so a client needs to check the 'expiration' field in a response.\",\n\t\"boundObjectRef\":    \"BoundObjectRef is a reference to an object that the token will be bound to. The token will only be valid for as long as the bound object exists. NOTE: The API server's TokenReview endpoint will validate the BoundObjectRef, but other audiences may not. Keep ExpirationSeconds small if you want prompt revocation.\",\n}\n\nfunc (TokenRequestSpec) SwaggerDoc() map[string]string {\n\treturn map_TokenRequestSpec\n}\n\nvar map_TokenRequestStatus = map[string]string{\n\t\"\":                    \"TokenRequestStatus is the result of a token request.\",\n\t\"token\":               \"Token is the opaque bearer token.\",\n\t\"expirationTimestamp\": \"ExpirationTimestamp is the time of expiration of the returned token.\",\n}\n\nfunc (TokenRequestStatus) SwaggerDoc() map[string]string {\n\treturn map_TokenRequestStatus\n}\n\nvar map_TokenReview = map[string]string{\n\t\"\":         \"TokenReview attempts to authenticate a token to a known user. Note: TokenReview requests may be cached by the webhook token authenticator plugin in the kube-apiserver.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec holds information about the request being evaluated\",\n\t\"status\":   \"Status is filled in by the server and indicates whether the request can be authenticated.\",\n}\n\nfunc (TokenReview) SwaggerDoc() map[string]string {\n\treturn map_TokenReview\n}\n\nvar map_TokenReviewSpec = map[string]string{\n\t\"\":          \"TokenReviewSpec is a description of the token authentication request.\",\n\t\"token\":     \"Token is the opaque bearer token.\",\n\t\"audiences\": \"Audiences is a list of the identifiers that the resource server presented with the token identifies as. Audience-aware token authenticators will verify that the token was intended for at least one of the audiences in this list. If no audiences are provided, the audience will default to the audience of the Kubernetes apiserver.\",\n}\n\nfunc (TokenReviewSpec) SwaggerDoc() map[string]string {\n\treturn map_TokenReviewSpec\n}\n\nvar map_TokenReviewStatus = map[string]string{\n\t\"\":              \"TokenReviewStatus is the result of the token authentication request.\",\n\t\"authenticated\": \"Authenticated indicates that the token was associated with a known user.\",\n\t\"user\":          \"User is the UserInfo associated with the provided token.\",\n\t\"audiences\":     \"Audiences are audience identifiers chosen by the authenticator that are compatible with both the TokenReview and token. An identifier is any identifier in the intersection of the TokenReviewSpec audiences and the token's audiences. A client of the TokenReview API that sets the spec.audiences field should validate that a compatible audience identifier is returned in the status.audiences field to ensure that the TokenReview server is audience aware. If a TokenReview returns an empty status.audience field where status.authenticated is \\\"true\\\", the token is valid against the audience of the Kubernetes API server.\",\n\t\"error\":         \"Error indicates that the token couldn't be checked\",\n}\n\nfunc (TokenReviewStatus) SwaggerDoc() map[string]string {\n\treturn map_TokenReviewStatus\n}\n\nvar map_UserInfo = map[string]string{\n\t\"\":         \"UserInfo holds the information about the user needed to implement the user.Info interface.\",\n\t\"username\": \"The name that uniquely identifies this user among all active users.\",\n\t\"uid\":      \"A unique value that identifies this user across time. If this user is deleted and another user by the same name is added, they will have different UIDs.\",\n\t\"groups\":   \"The names of groups this user is a part of.\",\n\t\"extra\":    \"Any additional information provided by the authenticator.\",\n}\n\nfunc (UserInfo) SwaggerDoc() map[string]string {\n\treturn map_UserInfo\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *BoundObjectReference) DeepCopyInto(out *BoundObjectReference) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BoundObjectReference.\nfunc (in *BoundObjectReference) DeepCopy() *BoundObjectReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(BoundObjectReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in ExtraValue) DeepCopyInto(out *ExtraValue) {\n\t{\n\t\tin := &in\n\t\t*out = make(ExtraValue, len(*in))\n\t\tcopy(*out, *in)\n\t\treturn\n\t}\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtraValue.\nfunc (in ExtraValue) DeepCopy() ExtraValue {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExtraValue)\n\tin.DeepCopyInto(out)\n\treturn *out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SelfSubjectReview) DeepCopyInto(out *SelfSubjectReview) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SelfSubjectReview.\nfunc (in *SelfSubjectReview) DeepCopy() *SelfSubjectReview {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SelfSubjectReview)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *SelfSubjectReview) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SelfSubjectReviewStatus) DeepCopyInto(out *SelfSubjectReviewStatus) {\n\t*out = *in\n\tin.UserInfo.DeepCopyInto(&out.UserInfo)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SelfSubjectReviewStatus.\nfunc (in *SelfSubjectReviewStatus) DeepCopy() *SelfSubjectReviewStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SelfSubjectReviewStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TokenRequest) DeepCopyInto(out *TokenRequest) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TokenRequest.\nfunc (in *TokenRequest) DeepCopy() *TokenRequest {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TokenRequest)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *TokenRequest) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TokenRequestSpec) DeepCopyInto(out *TokenRequestSpec) {\n\t*out = *in\n\tif in.Audiences != nil {\n\t\tin, out := &in.Audiences, &out.Audiences\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ExpirationSeconds != nil {\n\t\tin, out := &in.ExpirationSeconds, &out.ExpirationSeconds\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.BoundObjectRef != nil {\n\t\tin, out := &in.BoundObjectRef, &out.BoundObjectRef\n\t\t*out = new(BoundObjectReference)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TokenRequestSpec.\nfunc (in *TokenRequestSpec) DeepCopy() *TokenRequestSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TokenRequestSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TokenRequestStatus) DeepCopyInto(out *TokenRequestStatus) {\n\t*out = *in\n\tin.ExpirationTimestamp.DeepCopyInto(&out.ExpirationTimestamp)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TokenRequestStatus.\nfunc (in *TokenRequestStatus) DeepCopy() *TokenRequestStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TokenRequestStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TokenReview) DeepCopyInto(out *TokenReview) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TokenReview.\nfunc (in *TokenReview) DeepCopy() *TokenReview {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TokenReview)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *TokenReview) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TokenReviewSpec) DeepCopyInto(out *TokenReviewSpec) {\n\t*out = *in\n\tif in.Audiences != nil {\n\t\tin, out := &in.Audiences, &out.Audiences\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TokenReviewSpec.\nfunc (in *TokenReviewSpec) DeepCopy() *TokenReviewSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TokenReviewSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TokenReviewStatus) DeepCopyInto(out *TokenReviewStatus) {\n\t*out = *in\n\tin.User.DeepCopyInto(&out.User)\n\tif in.Audiences != nil {\n\t\tin, out := &in.Audiences, &out.Audiences\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TokenReviewStatus.\nfunc (in *TokenReviewStatus) DeepCopy() *TokenReviewStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TokenReviewStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *UserInfo) DeepCopyInto(out *UserInfo) {\n\t*out = *in\n\tif in.Groups != nil {\n\t\tin, out := &in.Groups, &out.Groups\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Extra != nil {\n\t\tin, out := &in.Extra, &out.Extra\n\t\t*out = make(map[string]ExtraValue, len(*in))\n\t\tfor key, val := range *in {\n\t\t\tvar outVal []string\n\t\t\tif val == nil {\n\t\t\t\t(*out)[key] = nil\n\t\t\t} else {\n\t\t\t\tin, out := &val, &outVal\n\t\t\t\t*out = make(ExtraValue, len(*in))\n\t\t\t\tcopy(*out, *in)\n\t\t\t}\n\t\t\t(*out)[key] = outVal\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserInfo.\nfunc (in *UserInfo) DeepCopy() *UserInfo {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(UserInfo)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *SelfSubjectReview) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 28\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *TokenRequest) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 10\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *TokenReview) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 6\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1alpha1/doc.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +groupName=authentication.k8s.io\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\npackage v1alpha1 // import \"k8s.io/api/authentication/v1alpha1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1alpha1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/authentication/v1alpha1/generated.proto\n\npackage v1alpha1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *SelfSubjectReview) Reset()      { *m = SelfSubjectReview{} }\nfunc (*SelfSubjectReview) ProtoMessage() {}\nfunc (*SelfSubjectReview) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_f003acd72d3d5efb, []int{0}\n}\nfunc (m *SelfSubjectReview) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SelfSubjectReview) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SelfSubjectReview) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SelfSubjectReview.Merge(m, src)\n}\nfunc (m *SelfSubjectReview) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SelfSubjectReview) XXX_DiscardUnknown() {\n\txxx_messageInfo_SelfSubjectReview.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SelfSubjectReview proto.InternalMessageInfo\n\nfunc (m *SelfSubjectReviewStatus) Reset()      { *m = SelfSubjectReviewStatus{} }\nfunc (*SelfSubjectReviewStatus) ProtoMessage() {}\nfunc (*SelfSubjectReviewStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_f003acd72d3d5efb, []int{1}\n}\nfunc (m *SelfSubjectReviewStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SelfSubjectReviewStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SelfSubjectReviewStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SelfSubjectReviewStatus.Merge(m, src)\n}\nfunc (m *SelfSubjectReviewStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SelfSubjectReviewStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_SelfSubjectReviewStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SelfSubjectReviewStatus proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*SelfSubjectReview)(nil), \"k8s.io.api.authentication.v1alpha1.SelfSubjectReview\")\n\tproto.RegisterType((*SelfSubjectReviewStatus)(nil), \"k8s.io.api.authentication.v1alpha1.SelfSubjectReviewStatus\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/authentication/v1alpha1/generated.proto\", fileDescriptor_f003acd72d3d5efb)\n}\n\nvar fileDescriptor_f003acd72d3d5efb = []byte{\n\t// 368 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x92, 0x41, 0x4f, 0xe2, 0x40,\n\t0x14, 0xc7, 0x3b, 0x7b, 0x20, 0xa4, 0x9b, 0x6c, 0x76, 0x7b, 0x59, 0xc2, 0x61, 0x30, 0x3d, 0x18,\n\t0x0f, 0x3a, 0x23, 0xc4, 0x18, 0x13, 0x6f, 0x3d, 0xe9, 0xc1, 0x98, 0x14, 0xbd, 0x78, 0xf2, 0x51,\n\t0x1e, 0xed, 0x08, 0xed, 0x34, 0xed, 0x14, 0xe3, 0xcd, 0x8f, 0xe0, 0xc7, 0xe2, 0xc8, 0x91, 0x78,\n\t0x20, 0x52, 0xbf, 0x88, 0xe9, 0x50, 0x20, 0x82, 0xc0, 0xad, 0xef, 0xe5, 0xfd, 0x7e, 0xef, 0xdf,\n\t0x99, 0x31, 0x5b, 0xfd, 0x8b, 0x94, 0x09, 0xc9, 0x21, 0x16, 0x1c, 0x32, 0x15, 0x60, 0xa4, 0x84,\n\t0x07, 0x4a, 0xc8, 0x88, 0x0f, 0x9b, 0x30, 0x88, 0x03, 0x68, 0x72, 0x1f, 0x23, 0x4c, 0x40, 0x61,\n\t0x97, 0xc5, 0x89, 0x54, 0xd2, 0xb2, 0xe7, 0x0c, 0x83, 0x58, 0xb0, 0xef, 0x0c, 0x5b, 0x30, 0xf5,\n\t0x13, 0x5f, 0xa8, 0x20, 0xeb, 0x30, 0x4f, 0x86, 0xdc, 0x97, 0xbe, 0xe4, 0x1a, 0xed, 0x64, 0x3d,\n\t0x5d, 0xe9, 0x42, 0x7f, 0xcd, 0x95, 0xf5, 0xe3, 0x5d, 0x31, 0xd6, 0x03, 0xd4, 0xcf, 0x56, 0xd3,\n\t0x21, 0x78, 0x81, 0x88, 0x30, 0x79, 0xe1, 0x71, 0xdf, 0x2f, 0x1a, 0x29, 0x0f, 0x51, 0xc1, 0x4f,\n\t0x14, 0xdf, 0x46, 0x25, 0x59, 0xa4, 0x44, 0x88, 0x1b, 0xc0, 0xf9, 0x3e, 0x20, 0xf5, 0x02, 0x0c,\n\t0x61, 0x9d, 0xb3, 0xdf, 0x89, 0xf9, 0xaf, 0x8d, 0x83, 0x5e, 0x3b, 0xeb, 0x3c, 0xa1, 0xa7, 0x5c,\n\t0x1c, 0x0a, 0x7c, 0xb6, 0x1e, 0xcd, 0x6a, 0x91, 0xac, 0x0b, 0x0a, 0x6a, 0xe4, 0x80, 0x1c, 0xfd,\n\t0x6e, 0x9d, 0xb2, 0xd5, 0x41, 0x2e, 0x17, 0xb0, 0xb8, 0xef, 0x17, 0x8d, 0x94, 0x15, 0xd3, 0x6c,\n\t0xd8, 0x64, 0xb7, 0xda, 0x72, 0x83, 0x0a, 0x1c, 0x6b, 0x34, 0x6d, 0x18, 0xf9, 0xb4, 0x61, 0xae,\n\t0x7a, 0xee, 0xd2, 0x6a, 0x79, 0x66, 0x25, 0x55, 0xa0, 0xb2, 0xb4, 0xf6, 0x4b, 0xfb, 0x2f, 0xd9,\n\t0xfe, 0x8b, 0x62, 0x1b, 0x41, 0xdb, 0x5a, 0xe1, 0xfc, 0x29, 0x57, 0x55, 0xe6, 0xb5, 0x5b, 0xaa,\n\t0x6d, 0x69, 0xfe, 0xdf, 0x82, 0x58, 0x77, 0x66, 0x35, 0x4b, 0x31, 0xb9, 0x8e, 0x7a, 0xb2, 0xfc,\n\t0xc3, 0xc3, 0x9d, 0x09, 0xd8, 0x7d, 0x39, 0xed, 0xfc, 0x2d, 0x97, 0x55, 0x17, 0x1d, 0x77, 0x69,\n\t0x72, 0xae, 0x46, 0x33, 0x6a, 0x8c, 0x67, 0xd4, 0x98, 0xcc, 0xa8, 0xf1, 0x9a, 0x53, 0x32, 0xca,\n\t0x29, 0x19, 0xe7, 0x94, 0x4c, 0x72, 0x4a, 0x3e, 0x72, 0x4a, 0xde, 0x3e, 0xa9, 0xf1, 0x60, 0xef,\n\t0x7f, 0xc7, 0x5f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x04, 0xfb, 0xb6, 0xfb, 0xec, 0x02, 0x00, 0x00,\n}\n\nfunc (m *SelfSubjectReview) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SelfSubjectReview) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SelfSubjectReview) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SelfSubjectReviewStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SelfSubjectReviewStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SelfSubjectReviewStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.UserInfo.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *SelfSubjectReview) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *SelfSubjectReviewStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.UserInfo.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *SelfSubjectReview) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SelfSubjectReview{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"SelfSubjectReviewStatus\", \"SelfSubjectReviewStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SelfSubjectReviewStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SelfSubjectReviewStatus{`,\n\t\t`UserInfo:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.UserInfo), \"UserInfo\", \"v11.UserInfo\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *SelfSubjectReview) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectReview: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectReview: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SelfSubjectReviewStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectReviewStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectReviewStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UserInfo\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.UserInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1alpha1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.authentication.v1alpha1;\n\nimport \"k8s.io/api/authentication/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/authentication/v1alpha1\";\n\n// SelfSubjectReview contains the user information that the kube-apiserver has about the user making this request.\n// When using impersonation, users will receive the user info of the user being impersonated.  If impersonation or\n// request header authentication is used, any extra keys will have their case ignored and returned as lowercase.\nmessage SelfSubjectReview {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Status is filled in by the server with the user attributes.\n  optional SelfSubjectReviewStatus status = 2;\n}\n\n// SelfSubjectReviewStatus is filled by the kube-apiserver and sent back to a user.\nmessage SelfSubjectReviewStatus {\n  // User attributes of the user making this request.\n  // +optional\n  optional .k8s.io.api.authentication.v1.UserInfo userInfo = 1;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1alpha1/register.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"authentication.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1alpha1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&SelfSubjectReview{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1alpha1/types.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nimport (\n\tv1 \"k8s.io/api/authentication/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +genclient:onlyVerbs=create\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.26\n\n// SelfSubjectReview contains the user information that the kube-apiserver has about the user making this request.\n// When using impersonation, users will receive the user info of the user being impersonated.  If impersonation or\n// request header authentication is used, any extra keys will have their case ignored and returned as lowercase.\ntype SelfSubjectReview struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// Status is filled in by the server with the user attributes.\n\tStatus SelfSubjectReviewStatus `json:\"status,omitempty\" protobuf:\"bytes,2,opt,name=status\"`\n}\n\n// SelfSubjectReviewStatus is filled by the kube-apiserver and sent back to a user.\ntype SelfSubjectReviewStatus struct {\n\t// User attributes of the user making this request.\n\t// +optional\n\tUserInfo v1.UserInfo `json:\"userInfo,omitempty\" protobuf:\"bytes,1,opt,name=userInfo\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1alpha1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_SelfSubjectReview = map[string]string{\n\t\"\":         \"SelfSubjectReview contains the user information that the kube-apiserver has about the user making this request. When using impersonation, users will receive the user info of the user being impersonated.  If impersonation or request header authentication is used, any extra keys will have their case ignored and returned as lowercase.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"status\":   \"Status is filled in by the server with the user attributes.\",\n}\n\nfunc (SelfSubjectReview) SwaggerDoc() map[string]string {\n\treturn map_SelfSubjectReview\n}\n\nvar map_SelfSubjectReviewStatus = map[string]string{\n\t\"\":         \"SelfSubjectReviewStatus is filled by the kube-apiserver and sent back to a user.\",\n\t\"userInfo\": \"User attributes of the user making this request.\",\n}\n\nfunc (SelfSubjectReviewStatus) SwaggerDoc() map[string]string {\n\treturn map_SelfSubjectReviewStatus\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1alpha1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SelfSubjectReview) DeepCopyInto(out *SelfSubjectReview) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SelfSubjectReview.\nfunc (in *SelfSubjectReview) DeepCopy() *SelfSubjectReview {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SelfSubjectReview)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *SelfSubjectReview) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SelfSubjectReviewStatus) DeepCopyInto(out *SelfSubjectReviewStatus) {\n\t*out = *in\n\tin.UserInfo.DeepCopyInto(&out.UserInfo)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SelfSubjectReviewStatus.\nfunc (in *SelfSubjectReviewStatus) DeepCopy() *SelfSubjectReviewStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SelfSubjectReviewStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1alpha1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *SelfSubjectReview) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 26\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *SelfSubjectReview) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 29\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *SelfSubjectReview) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 32\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1beta1/doc.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +groupName=authentication.k8s.io\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\npackage v1beta1 // import \"k8s.io/api/authentication/v1beta1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1beta1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/authentication/v1beta1/generated.proto\n\npackage v1beta1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *ExtraValue) Reset()      { *m = ExtraValue{} }\nfunc (*ExtraValue) ProtoMessage() {}\nfunc (*ExtraValue) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_fdc2de40fd7f3b21, []int{0}\n}\nfunc (m *ExtraValue) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ExtraValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ExtraValue) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ExtraValue.Merge(m, src)\n}\nfunc (m *ExtraValue) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ExtraValue) XXX_DiscardUnknown() {\n\txxx_messageInfo_ExtraValue.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ExtraValue proto.InternalMessageInfo\n\nfunc (m *SelfSubjectReview) Reset()      { *m = SelfSubjectReview{} }\nfunc (*SelfSubjectReview) ProtoMessage() {}\nfunc (*SelfSubjectReview) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_fdc2de40fd7f3b21, []int{1}\n}\nfunc (m *SelfSubjectReview) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SelfSubjectReview) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SelfSubjectReview) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SelfSubjectReview.Merge(m, src)\n}\nfunc (m *SelfSubjectReview) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SelfSubjectReview) XXX_DiscardUnknown() {\n\txxx_messageInfo_SelfSubjectReview.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SelfSubjectReview proto.InternalMessageInfo\n\nfunc (m *SelfSubjectReviewStatus) Reset()      { *m = SelfSubjectReviewStatus{} }\nfunc (*SelfSubjectReviewStatus) ProtoMessage() {}\nfunc (*SelfSubjectReviewStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_fdc2de40fd7f3b21, []int{2}\n}\nfunc (m *SelfSubjectReviewStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SelfSubjectReviewStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SelfSubjectReviewStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SelfSubjectReviewStatus.Merge(m, src)\n}\nfunc (m *SelfSubjectReviewStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SelfSubjectReviewStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_SelfSubjectReviewStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SelfSubjectReviewStatus proto.InternalMessageInfo\n\nfunc (m *TokenReview) Reset()      { *m = TokenReview{} }\nfunc (*TokenReview) ProtoMessage() {}\nfunc (*TokenReview) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_fdc2de40fd7f3b21, []int{3}\n}\nfunc (m *TokenReview) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TokenReview) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TokenReview) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TokenReview.Merge(m, src)\n}\nfunc (m *TokenReview) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TokenReview) XXX_DiscardUnknown() {\n\txxx_messageInfo_TokenReview.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TokenReview proto.InternalMessageInfo\n\nfunc (m *TokenReviewSpec) Reset()      { *m = TokenReviewSpec{} }\nfunc (*TokenReviewSpec) ProtoMessage() {}\nfunc (*TokenReviewSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_fdc2de40fd7f3b21, []int{4}\n}\nfunc (m *TokenReviewSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TokenReviewSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TokenReviewSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TokenReviewSpec.Merge(m, src)\n}\nfunc (m *TokenReviewSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TokenReviewSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_TokenReviewSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TokenReviewSpec proto.InternalMessageInfo\n\nfunc (m *TokenReviewStatus) Reset()      { *m = TokenReviewStatus{} }\nfunc (*TokenReviewStatus) ProtoMessage() {}\nfunc (*TokenReviewStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_fdc2de40fd7f3b21, []int{5}\n}\nfunc (m *TokenReviewStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TokenReviewStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TokenReviewStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TokenReviewStatus.Merge(m, src)\n}\nfunc (m *TokenReviewStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TokenReviewStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_TokenReviewStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TokenReviewStatus proto.InternalMessageInfo\n\nfunc (m *UserInfo) Reset()      { *m = UserInfo{} }\nfunc (*UserInfo) ProtoMessage() {}\nfunc (*UserInfo) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_fdc2de40fd7f3b21, []int{6}\n}\nfunc (m *UserInfo) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *UserInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *UserInfo) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_UserInfo.Merge(m, src)\n}\nfunc (m *UserInfo) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *UserInfo) XXX_DiscardUnknown() {\n\txxx_messageInfo_UserInfo.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_UserInfo proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*ExtraValue)(nil), \"k8s.io.api.authentication.v1beta1.ExtraValue\")\n\tproto.RegisterType((*SelfSubjectReview)(nil), \"k8s.io.api.authentication.v1beta1.SelfSubjectReview\")\n\tproto.RegisterType((*SelfSubjectReviewStatus)(nil), \"k8s.io.api.authentication.v1beta1.SelfSubjectReviewStatus\")\n\tproto.RegisterType((*TokenReview)(nil), \"k8s.io.api.authentication.v1beta1.TokenReview\")\n\tproto.RegisterType((*TokenReviewSpec)(nil), \"k8s.io.api.authentication.v1beta1.TokenReviewSpec\")\n\tproto.RegisterType((*TokenReviewStatus)(nil), \"k8s.io.api.authentication.v1beta1.TokenReviewStatus\")\n\tproto.RegisterType((*UserInfo)(nil), \"k8s.io.api.authentication.v1beta1.UserInfo\")\n\tproto.RegisterMapType((map[string]ExtraValue)(nil), \"k8s.io.api.authentication.v1beta1.UserInfo.ExtraEntry\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/authentication/v1beta1/generated.proto\", fileDescriptor_fdc2de40fd7f3b21)\n}\n\nvar fileDescriptor_fdc2de40fd7f3b21 = []byte{\n\t// 711 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x55, 0xcf, 0x4e, 0xdb, 0x4e,\n\t0x10, 0x8e, 0xf3, 0x07, 0x25, 0x9b, 0x5f, 0x7e, 0x85, 0x95, 0xaa, 0xa2, 0x48, 0x75, 0x20, 0x95,\n\t0x2a, 0x24, 0x60, 0xdd, 0x20, 0x44, 0x11, 0x3d, 0xe1, 0x16, 0x21, 0x0e, 0xa8, 0xd2, 0x06, 0x7a,\n\t0x68, 0x7b, 0xe8, 0xc6, 0x19, 0x1c, 0x37, 0xc4, 0xb6, 0xec, 0x75, 0x5a, 0x6e, 0x3c, 0x42, 0x8f,\n\t0x3d, 0x56, 0xea, 0x93, 0xf4, 0xc6, 0x91, 0x23, 0x95, 0xaa, 0xa8, 0xb8, 0x4f, 0xd0, 0x37, 0xa8,\n\t0x76, 0xbd, 0x38, 0x09, 0x94, 0x00, 0x97, 0xde, 0xbc, 0xdf, 0xce, 0xf7, 0xcd, 0xcc, 0x37, 0xa3,\n\t0x35, 0x6a, 0x74, 0xd7, 0x43, 0xe2, 0x78, 0x06, 0xf3, 0x1d, 0x83, 0x45, 0xbc, 0x03, 0x2e, 0x77,\n\t0x2c, 0xc6, 0x1d, 0xcf, 0x35, 0xfa, 0x8d, 0x16, 0x70, 0xd6, 0x30, 0x6c, 0x70, 0x21, 0x60, 0x1c,\n\t0xda, 0xc4, 0x0f, 0x3c, 0xee, 0xe1, 0xf9, 0x84, 0x42, 0x98, 0xef, 0x90, 0x71, 0x0a, 0x51, 0x94,\n\t0xea, 0xb2, 0xed, 0xf0, 0x4e, 0xd4, 0x22, 0x96, 0xd7, 0x33, 0x6c, 0xcf, 0xf6, 0x0c, 0xc9, 0x6c,\n\t0x45, 0x07, 0xf2, 0x24, 0x0f, 0xf2, 0x2b, 0x51, 0xac, 0x2e, 0x4d, 0x2a, 0xe2, 0x72, 0xfe, 0xea,\n\t0xea, 0x30, 0xba, 0xc7, 0xac, 0x8e, 0xe3, 0x42, 0x70, 0x64, 0xf8, 0x5d, 0x5b, 0x00, 0xa1, 0xd1,\n\t0x03, 0xce, 0xfe, 0xc6, 0x32, 0xae, 0x63, 0x05, 0x91, 0xcb, 0x9d, 0x1e, 0x5c, 0x21, 0xac, 0xdd,\n\t0x44, 0x08, 0xad, 0x0e, 0xf4, 0xd8, 0x65, 0x5e, 0xfd, 0x29, 0x42, 0x5b, 0x1f, 0x79, 0xc0, 0x5e,\n\t0xb1, 0xc3, 0x08, 0x70, 0x0d, 0x15, 0x1c, 0x0e, 0xbd, 0x70, 0x56, 0x9b, 0xcb, 0x2d, 0x94, 0xcc,\n\t0x52, 0x3c, 0xa8, 0x15, 0x76, 0x04, 0x40, 0x13, 0x7c, 0xa3, 0xf8, 0xf9, 0x4b, 0x2d, 0x73, 0xfc,\n\t0x63, 0x2e, 0x53, 0xff, 0xae, 0xa1, 0x99, 0x26, 0x1c, 0x1e, 0x34, 0xa3, 0xd6, 0x7b, 0xb0, 0x38,\n\t0x85, 0xbe, 0x03, 0x1f, 0xf0, 0x3b, 0x54, 0x14, 0x2d, 0xb5, 0x19, 0x67, 0xb3, 0xda, 0x9c, 0xb6,\n\t0x50, 0x5e, 0x79, 0x42, 0x86, 0x03, 0x48, 0x2b, 0x23, 0x7e, 0xd7, 0x16, 0x40, 0x48, 0x44, 0x34,\n\t0xe9, 0x37, 0xc8, 0x4b, 0xa9, 0xb2, 0x0b, 0x9c, 0x99, 0xf8, 0x64, 0x50, 0xcb, 0xc4, 0x83, 0x1a,\n\t0x1a, 0x62, 0x34, 0x55, 0xc5, 0x2d, 0x34, 0x15, 0x72, 0xc6, 0xa3, 0x70, 0x36, 0x2b, 0xf5, 0x37,\n\t0xc8, 0x8d, 0x03, 0x26, 0x57, 0xea, 0x6c, 0x4a, 0x05, 0xf3, 0x7f, 0x95, 0x69, 0x2a, 0x39, 0x53,\n\t0xa5, 0x5c, 0xf7, 0xd0, 0x83, 0x6b, 0x28, 0x78, 0x0f, 0x15, 0xa3, 0x10, 0x82, 0x1d, 0xf7, 0xc0,\n\t0x53, 0x0d, 0x3e, 0x9e, 0x58, 0x00, 0xd9, 0x57, 0xd1, 0xe6, 0xb4, 0x4a, 0x56, 0xbc, 0x40, 0x68,\n\t0xaa, 0x54, 0xff, 0x9a, 0x45, 0xe5, 0x3d, 0xaf, 0x0b, 0xee, 0x3f, 0xb3, 0x71, 0x0f, 0xe5, 0x43,\n\t0x1f, 0x2c, 0x65, 0xe2, 0xca, 0x2d, 0x4c, 0x1c, 0xa9, 0xaf, 0xe9, 0x83, 0x65, 0xfe, 0xa7, 0xf4,\n\t0xf3, 0xe2, 0x44, 0xa5, 0x1a, 0x7e, 0x9b, 0x0e, 0x27, 0x27, 0x75, 0x57, 0xef, 0xa8, 0x3b, 0x79,\n\t0x2c, 0x16, 0xba, 0x77, 0xa9, 0x08, 0xfc, 0x08, 0x15, 0xb8, 0x80, 0xa4, 0x4b, 0x25, 0xb3, 0xa2,\n\t0x98, 0x85, 0x24, 0x2e, 0xb9, 0xc3, 0x8b, 0xa8, 0xc4, 0xa2, 0xb6, 0x03, 0xae, 0x05, 0x62, 0x6b,\n\t0xc4, 0x66, 0x57, 0xe2, 0x41, 0xad, 0xb4, 0x79, 0x01, 0xd2, 0xe1, 0x7d, 0xfd, 0xb7, 0x86, 0x66,\n\t0xae, 0x94, 0x84, 0x9f, 0xa1, 0xca, 0x48, 0xf9, 0xd0, 0x96, 0xf9, 0x8a, 0xe6, 0x7d, 0x95, 0xaf,\n\t0xb2, 0x39, 0x7a, 0x49, 0xc7, 0x63, 0xf1, 0x2e, 0xca, 0x8b, 0x49, 0x2b, 0xaf, 0x17, 0x6f, 0xe1,\n\t0x49, 0xba, 0x34, 0xa9, 0xc9, 0x02, 0xa1, 0x52, 0x66, 0xbc, 0x9d, 0xfc, 0xe4, 0x76, 0x84, 0x41,\n\t0x10, 0x04, 0x5e, 0x20, 0x07, 0x32, 0x62, 0xd0, 0x96, 0x00, 0x69, 0x72, 0x57, 0xff, 0x96, 0x45,\n\t0xe9, 0x56, 0xe2, 0xa5, 0x64, 0xc3, 0x5d, 0xd6, 0x03, 0xe5, 0xea, 0xd8, 0xe6, 0x0a, 0x9c, 0xa6,\n\t0x11, 0xf8, 0x21, 0xca, 0x45, 0x4e, 0x5b, 0xb6, 0x56, 0x32, 0xcb, 0x2a, 0x30, 0xb7, 0xbf, 0xf3,\n\t0x82, 0x0a, 0x1c, 0xd7, 0xd1, 0x94, 0x1d, 0x78, 0x91, 0x2f, 0x16, 0x42, 0x14, 0x8a, 0xc4, 0x58,\n\t0xb7, 0x25, 0x42, 0xd5, 0x0d, 0x7e, 0x83, 0x0a, 0x20, 0x9e, 0x20, 0xd9, 0x4b, 0x79, 0x65, 0xed,\n\t0x0e, 0xfe, 0x10, 0xf9, 0x76, 0x6d, 0xb9, 0x3c, 0x38, 0x1a, 0x69, 0x4d, 0x60, 0x34, 0xd1, 0xac,\n\t0xda, 0xea, 0x7d, 0x93, 0x31, 0x78, 0x1a, 0xe5, 0xba, 0x70, 0x94, 0xb4, 0x45, 0xc5, 0x27, 0x7e,\n\t0x8e, 0x0a, 0x7d, 0xf1, 0xf4, 0xa9, 0xe1, 0x2c, 0xdf, 0x22, 0xf9, 0xf0, 0xbd, 0xa4, 0x09, 0x77,\n\t0x23, 0xbb, 0xae, 0x99, 0xdb, 0x27, 0xe7, 0x7a, 0xe6, 0xf4, 0x5c, 0xcf, 0x9c, 0x9d, 0xeb, 0x99,\n\t0xe3, 0x58, 0xd7, 0x4e, 0x62, 0x5d, 0x3b, 0x8d, 0x75, 0xed, 0x2c, 0xd6, 0xb5, 0x9f, 0xb1, 0xae,\n\t0x7d, 0xfa, 0xa5, 0x67, 0x5e, 0xcf, 0xdf, 0xf8, 0x03, 0xfb, 0x13, 0x00, 0x00, 0xff, 0xff, 0x45,\n\t0x72, 0x2b, 0xf2, 0xe4, 0x06, 0x00, 0x00,\n}\n\nfunc (m ExtraValue) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m ExtraValue) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m ExtraValue) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m) > 0 {\n\t\tfor iNdEx := len(m) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m[iNdEx])\n\t\t\tcopy(dAtA[i:], m[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SelfSubjectReview) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SelfSubjectReview) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SelfSubjectReview) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SelfSubjectReviewStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SelfSubjectReviewStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SelfSubjectReviewStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.UserInfo.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TokenReview) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TokenReview) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TokenReview) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TokenReviewSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TokenReviewSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TokenReviewSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Audiences) > 0 {\n\t\tfor iNdEx := len(m.Audiences) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Audiences[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Audiences[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Audiences[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.Token)\n\tcopy(dAtA[i:], m.Token)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Token)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TokenReviewStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TokenReviewStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TokenReviewStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Audiences) > 0 {\n\t\tfor iNdEx := len(m.Audiences) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Audiences[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Audiences[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Audiences[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\ti -= len(m.Error)\n\tcopy(dAtA[i:], m.Error)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Error)))\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.User.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti--\n\tif m.Authenticated {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *UserInfo) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *UserInfo) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *UserInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Extra) > 0 {\n\t\tkeysForExtra := make([]string, 0, len(m.Extra))\n\t\tfor k := range m.Extra {\n\t\t\tkeysForExtra = append(keysForExtra, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForExtra)\n\t\tfor iNdEx := len(keysForExtra) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Extra[string(keysForExtra[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForExtra[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForExtra[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForExtra[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif len(m.Groups) > 0 {\n\t\tfor iNdEx := len(m.Groups) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Groups[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Groups[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Groups[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\ti -= len(m.UID)\n\tcopy(dAtA[i:], m.UID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.UID)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Username)\n\tcopy(dAtA[i:], m.Username)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Username)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m ExtraValue) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m) > 0 {\n\t\tfor _, s := range m {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *SelfSubjectReview) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *SelfSubjectReviewStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.UserInfo.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *TokenReview) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *TokenReviewSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Token)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Audiences) > 0 {\n\t\tfor _, s := range m.Audiences {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *TokenReviewStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 2\n\tl = m.User.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Error)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Audiences) > 0 {\n\t\tfor _, s := range m.Audiences {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *UserInfo) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Username)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.UID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Groups) > 0 {\n\t\tfor _, s := range m.Groups {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Extra) > 0 {\n\t\tfor k, v := range m.Extra {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *SelfSubjectReview) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SelfSubjectReview{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"SelfSubjectReviewStatus\", \"SelfSubjectReviewStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SelfSubjectReviewStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SelfSubjectReviewStatus{`,\n\t\t`UserInfo:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.UserInfo), \"UserInfo\", \"v11.UserInfo\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TokenReview) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&TokenReview{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"TokenReviewSpec\", \"TokenReviewSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"TokenReviewStatus\", \"TokenReviewStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TokenReviewSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&TokenReviewSpec{`,\n\t\t`Token:` + fmt.Sprintf(\"%v\", this.Token) + `,`,\n\t\t`Audiences:` + fmt.Sprintf(\"%v\", this.Audiences) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TokenReviewStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&TokenReviewStatus{`,\n\t\t`Authenticated:` + fmt.Sprintf(\"%v\", this.Authenticated) + `,`,\n\t\t`User:` + strings.Replace(strings.Replace(this.User.String(), \"UserInfo\", \"UserInfo\", 1), `&`, ``, 1) + `,`,\n\t\t`Error:` + fmt.Sprintf(\"%v\", this.Error) + `,`,\n\t\t`Audiences:` + fmt.Sprintf(\"%v\", this.Audiences) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *UserInfo) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForExtra := make([]string, 0, len(this.Extra))\n\tfor k := range this.Extra {\n\t\tkeysForExtra = append(keysForExtra, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForExtra)\n\tmapStringForExtra := \"map[string]ExtraValue{\"\n\tfor _, k := range keysForExtra {\n\t\tmapStringForExtra += fmt.Sprintf(\"%v: %v,\", k, this.Extra[k])\n\t}\n\tmapStringForExtra += \"}\"\n\ts := strings.Join([]string{`&UserInfo{`,\n\t\t`Username:` + fmt.Sprintf(\"%v\", this.Username) + `,`,\n\t\t`UID:` + fmt.Sprintf(\"%v\", this.UID) + `,`,\n\t\t`Groups:` + fmt.Sprintf(\"%v\", this.Groups) + `,`,\n\t\t`Extra:` + mapStringForExtra + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *ExtraValue) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ExtraValue: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ExtraValue: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\t*m = append(*m, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SelfSubjectReview) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectReview: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectReview: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SelfSubjectReviewStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectReviewStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectReviewStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UserInfo\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.UserInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TokenReview) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TokenReview: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TokenReview: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TokenReviewSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TokenReviewSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TokenReviewSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Token\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Token = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Audiences\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Audiences = append(m.Audiences, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TokenReviewStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TokenReviewStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TokenReviewStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Authenticated\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Authenticated = bool(v != 0)\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field User\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.User.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Error\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Error = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Audiences\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Audiences = append(m.Audiences, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *UserInfo) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: UserInfo: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: UserInfo: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Username\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Username = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.UID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Groups\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Groups = append(m.Groups, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Extra\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Extra == nil {\n\t\t\t\tm.Extra = make(map[string]ExtraValue)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tmapvalue := &ExtraValue{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &ExtraValue{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Extra[mapkey] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1beta1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.authentication.v1beta1;\n\nimport \"k8s.io/api/authentication/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/authentication/v1beta1\";\n\n// ExtraValue masks the value so protobuf can generate\n// +protobuf.nullable=true\n// +protobuf.options.(gogoproto.goproto_stringer)=false\nmessage ExtraValue {\n  // items, if empty, will result in an empty slice\n\n  repeated string items = 1;\n}\n\n// SelfSubjectReview contains the user information that the kube-apiserver has about the user making this request.\n// When using impersonation, users will receive the user info of the user being impersonated.  If impersonation or\n// request header authentication is used, any extra keys will have their case ignored and returned as lowercase.\nmessage SelfSubjectReview {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Status is filled in by the server with the user attributes.\n  optional SelfSubjectReviewStatus status = 2;\n}\n\n// SelfSubjectReviewStatus is filled by the kube-apiserver and sent back to a user.\nmessage SelfSubjectReviewStatus {\n  // User attributes of the user making this request.\n  // +optional\n  optional .k8s.io.api.authentication.v1.UserInfo userInfo = 1;\n}\n\n// TokenReview attempts to authenticate a token to a known user.\n// Note: TokenReview requests may be cached by the webhook token authenticator\n// plugin in the kube-apiserver.\nmessage TokenReview {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec holds information about the request being evaluated\n  optional TokenReviewSpec spec = 2;\n\n  // Status is filled in by the server and indicates whether the token can be authenticated.\n  // +optional\n  optional TokenReviewStatus status = 3;\n}\n\n// TokenReviewSpec is a description of the token authentication request.\nmessage TokenReviewSpec {\n  // Token is the opaque bearer token.\n  // +optional\n  optional string token = 1;\n\n  // Audiences is a list of the identifiers that the resource server presented\n  // with the token identifies as. Audience-aware token authenticators will\n  // verify that the token was intended for at least one of the audiences in\n  // this list. If no audiences are provided, the audience will default to the\n  // audience of the Kubernetes apiserver.\n  // +optional\n  // +listType=atomic\n  repeated string audiences = 2;\n}\n\n// TokenReviewStatus is the result of the token authentication request.\nmessage TokenReviewStatus {\n  // Authenticated indicates that the token was associated with a known user.\n  // +optional\n  optional bool authenticated = 1;\n\n  // User is the UserInfo associated with the provided token.\n  // +optional\n  optional UserInfo user = 2;\n\n  // Audiences are audience identifiers chosen by the authenticator that are\n  // compatible with both the TokenReview and token. An identifier is any\n  // identifier in the intersection of the TokenReviewSpec audiences and the\n  // token's audiences. A client of the TokenReview API that sets the\n  // spec.audiences field should validate that a compatible audience identifier\n  // is returned in the status.audiences field to ensure that the TokenReview\n  // server is audience aware. If a TokenReview returns an empty\n  // status.audience field where status.authenticated is \"true\", the token is\n  // valid against the audience of the Kubernetes API server.\n  // +optional\n  // +listType=atomic\n  repeated string audiences = 4;\n\n  // Error indicates that the token couldn't be checked\n  // +optional\n  optional string error = 3;\n}\n\n// UserInfo holds the information about the user needed to implement the\n// user.Info interface.\nmessage UserInfo {\n  // The name that uniquely identifies this user among all active users.\n  // +optional\n  optional string username = 1;\n\n  // A unique value that identifies this user across time. If this user is\n  // deleted and another user by the same name is added, they will have\n  // different UIDs.\n  // +optional\n  optional string uid = 2;\n\n  // The names of groups this user is a part of.\n  // +optional\n  // +listType=atomic\n  repeated string groups = 3;\n\n  // Any additional information provided by the authenticator.\n  // +optional\n  map<string, ExtraValue> extra = 4;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1beta1/register.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"authentication.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&SelfSubjectReview{},\n\t\t&TokenReview{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1beta1/types.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/authentication/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +genclient:onlyVerbs=create\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.4\n// +k8s:prerelease-lifecycle-gen:deprecated=1.19\n// +k8s:prerelease-lifecycle-gen:replacement=authentication.k8s.io,v1,TokenReview\n\n// TokenReview attempts to authenticate a token to a known user.\n// Note: TokenReview requests may be cached by the webhook token authenticator\n// plugin in the kube-apiserver.\ntype TokenReview struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec holds information about the request being evaluated\n\tSpec TokenReviewSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status is filled in by the server and indicates whether the token can be authenticated.\n\t// +optional\n\tStatus TokenReviewStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// TokenReviewSpec is a description of the token authentication request.\ntype TokenReviewSpec struct {\n\t// Token is the opaque bearer token.\n\t// +optional\n\tToken string `json:\"token,omitempty\" protobuf:\"bytes,1,opt,name=token\"`\n\t// Audiences is a list of the identifiers that the resource server presented\n\t// with the token identifies as. Audience-aware token authenticators will\n\t// verify that the token was intended for at least one of the audiences in\n\t// this list. If no audiences are provided, the audience will default to the\n\t// audience of the Kubernetes apiserver.\n\t// +optional\n\t// +listType=atomic\n\tAudiences []string `json:\"audiences,omitempty\" protobuf:\"bytes,2,rep,name=audiences\"`\n}\n\n// TokenReviewStatus is the result of the token authentication request.\ntype TokenReviewStatus struct {\n\t// Authenticated indicates that the token was associated with a known user.\n\t// +optional\n\tAuthenticated bool `json:\"authenticated,omitempty\" protobuf:\"varint,1,opt,name=authenticated\"`\n\t// User is the UserInfo associated with the provided token.\n\t// +optional\n\tUser UserInfo `json:\"user,omitempty\" protobuf:\"bytes,2,opt,name=user\"`\n\t// Audiences are audience identifiers chosen by the authenticator that are\n\t// compatible with both the TokenReview and token. An identifier is any\n\t// identifier in the intersection of the TokenReviewSpec audiences and the\n\t// token's audiences. A client of the TokenReview API that sets the\n\t// spec.audiences field should validate that a compatible audience identifier\n\t// is returned in the status.audiences field to ensure that the TokenReview\n\t// server is audience aware. If a TokenReview returns an empty\n\t// status.audience field where status.authenticated is \"true\", the token is\n\t// valid against the audience of the Kubernetes API server.\n\t// +optional\n\t// +listType=atomic\n\tAudiences []string `json:\"audiences,omitempty\" protobuf:\"bytes,4,rep,name=audiences\"`\n\t// Error indicates that the token couldn't be checked\n\t// +optional\n\tError string `json:\"error,omitempty\" protobuf:\"bytes,3,opt,name=error\"`\n}\n\n// UserInfo holds the information about the user needed to implement the\n// user.Info interface.\ntype UserInfo struct {\n\t// The name that uniquely identifies this user among all active users.\n\t// +optional\n\tUsername string `json:\"username,omitempty\" protobuf:\"bytes,1,opt,name=username\"`\n\t// A unique value that identifies this user across time. If this user is\n\t// deleted and another user by the same name is added, they will have\n\t// different UIDs.\n\t// +optional\n\tUID string `json:\"uid,omitempty\" protobuf:\"bytes,2,opt,name=uid\"`\n\t// The names of groups this user is a part of.\n\t// +optional\n\t// +listType=atomic\n\tGroups []string `json:\"groups,omitempty\" protobuf:\"bytes,3,rep,name=groups\"`\n\t// Any additional information provided by the authenticator.\n\t// +optional\n\tExtra map[string]ExtraValue `json:\"extra,omitempty\" protobuf:\"bytes,4,rep,name=extra\"`\n}\n\n// ExtraValue masks the value so protobuf can generate\n// +protobuf.nullable=true\n// +protobuf.options.(gogoproto.goproto_stringer)=false\ntype ExtraValue []string\n\nfunc (t ExtraValue) String() string {\n\treturn fmt.Sprintf(\"%v\", []string(t))\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +genclient:onlyVerbs=create\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.27\n\n// SelfSubjectReview contains the user information that the kube-apiserver has about the user making this request.\n// When using impersonation, users will receive the user info of the user being impersonated.  If impersonation or\n// request header authentication is used, any extra keys will have their case ignored and returned as lowercase.\ntype SelfSubjectReview struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// Status is filled in by the server with the user attributes.\n\tStatus SelfSubjectReviewStatus `json:\"status,omitempty\" protobuf:\"bytes,2,opt,name=status\"`\n}\n\n// SelfSubjectReviewStatus is filled by the kube-apiserver and sent back to a user.\ntype SelfSubjectReviewStatus struct {\n\t// User attributes of the user making this request.\n\t// +optional\n\tUserInfo v1.UserInfo `json:\"userInfo,omitempty\" protobuf:\"bytes,1,opt,name=userInfo\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1beta1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_SelfSubjectReview = map[string]string{\n\t\"\":         \"SelfSubjectReview contains the user information that the kube-apiserver has about the user making this request. When using impersonation, users will receive the user info of the user being impersonated.  If impersonation or request header authentication is used, any extra keys will have their case ignored and returned as lowercase.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"status\":   \"Status is filled in by the server with the user attributes.\",\n}\n\nfunc (SelfSubjectReview) SwaggerDoc() map[string]string {\n\treturn map_SelfSubjectReview\n}\n\nvar map_SelfSubjectReviewStatus = map[string]string{\n\t\"\":         \"SelfSubjectReviewStatus is filled by the kube-apiserver and sent back to a user.\",\n\t\"userInfo\": \"User attributes of the user making this request.\",\n}\n\nfunc (SelfSubjectReviewStatus) SwaggerDoc() map[string]string {\n\treturn map_SelfSubjectReviewStatus\n}\n\nvar map_TokenReview = map[string]string{\n\t\"\":         \"TokenReview attempts to authenticate a token to a known user. Note: TokenReview requests may be cached by the webhook token authenticator plugin in the kube-apiserver.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec holds information about the request being evaluated\",\n\t\"status\":   \"Status is filled in by the server and indicates whether the token can be authenticated.\",\n}\n\nfunc (TokenReview) SwaggerDoc() map[string]string {\n\treturn map_TokenReview\n}\n\nvar map_TokenReviewSpec = map[string]string{\n\t\"\":          \"TokenReviewSpec is a description of the token authentication request.\",\n\t\"token\":     \"Token is the opaque bearer token.\",\n\t\"audiences\": \"Audiences is a list of the identifiers that the resource server presented with the token identifies as. Audience-aware token authenticators will verify that the token was intended for at least one of the audiences in this list. If no audiences are provided, the audience will default to the audience of the Kubernetes apiserver.\",\n}\n\nfunc (TokenReviewSpec) SwaggerDoc() map[string]string {\n\treturn map_TokenReviewSpec\n}\n\nvar map_TokenReviewStatus = map[string]string{\n\t\"\":              \"TokenReviewStatus is the result of the token authentication request.\",\n\t\"authenticated\": \"Authenticated indicates that the token was associated with a known user.\",\n\t\"user\":          \"User is the UserInfo associated with the provided token.\",\n\t\"audiences\":     \"Audiences are audience identifiers chosen by the authenticator that are compatible with both the TokenReview and token. An identifier is any identifier in the intersection of the TokenReviewSpec audiences and the token's audiences. A client of the TokenReview API that sets the spec.audiences field should validate that a compatible audience identifier is returned in the status.audiences field to ensure that the TokenReview server is audience aware. If a TokenReview returns an empty status.audience field where status.authenticated is \\\"true\\\", the token is valid against the audience of the Kubernetes API server.\",\n\t\"error\":         \"Error indicates that the token couldn't be checked\",\n}\n\nfunc (TokenReviewStatus) SwaggerDoc() map[string]string {\n\treturn map_TokenReviewStatus\n}\n\nvar map_UserInfo = map[string]string{\n\t\"\":         \"UserInfo holds the information about the user needed to implement the user.Info interface.\",\n\t\"username\": \"The name that uniquely identifies this user among all active users.\",\n\t\"uid\":      \"A unique value that identifies this user across time. If this user is deleted and another user by the same name is added, they will have different UIDs.\",\n\t\"groups\":   \"The names of groups this user is a part of.\",\n\t\"extra\":    \"Any additional information provided by the authenticator.\",\n}\n\nfunc (UserInfo) SwaggerDoc() map[string]string {\n\treturn map_UserInfo\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1beta1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in ExtraValue) DeepCopyInto(out *ExtraValue) {\n\t{\n\t\tin := &in\n\t\t*out = make(ExtraValue, len(*in))\n\t\tcopy(*out, *in)\n\t\treturn\n\t}\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtraValue.\nfunc (in ExtraValue) DeepCopy() ExtraValue {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExtraValue)\n\tin.DeepCopyInto(out)\n\treturn *out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SelfSubjectReview) DeepCopyInto(out *SelfSubjectReview) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SelfSubjectReview.\nfunc (in *SelfSubjectReview) DeepCopy() *SelfSubjectReview {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SelfSubjectReview)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *SelfSubjectReview) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SelfSubjectReviewStatus) DeepCopyInto(out *SelfSubjectReviewStatus) {\n\t*out = *in\n\tin.UserInfo.DeepCopyInto(&out.UserInfo)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SelfSubjectReviewStatus.\nfunc (in *SelfSubjectReviewStatus) DeepCopy() *SelfSubjectReviewStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SelfSubjectReviewStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TokenReview) DeepCopyInto(out *TokenReview) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TokenReview.\nfunc (in *TokenReview) DeepCopy() *TokenReview {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TokenReview)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *TokenReview) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TokenReviewSpec) DeepCopyInto(out *TokenReviewSpec) {\n\t*out = *in\n\tif in.Audiences != nil {\n\t\tin, out := &in.Audiences, &out.Audiences\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TokenReviewSpec.\nfunc (in *TokenReviewSpec) DeepCopy() *TokenReviewSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TokenReviewSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TokenReviewStatus) DeepCopyInto(out *TokenReviewStatus) {\n\t*out = *in\n\tin.User.DeepCopyInto(&out.User)\n\tif in.Audiences != nil {\n\t\tin, out := &in.Audiences, &out.Audiences\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TokenReviewStatus.\nfunc (in *TokenReviewStatus) DeepCopy() *TokenReviewStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TokenReviewStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *UserInfo) DeepCopyInto(out *UserInfo) {\n\t*out = *in\n\tif in.Groups != nil {\n\t\tin, out := &in.Groups, &out.Groups\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Extra != nil {\n\t\tin, out := &in.Extra, &out.Extra\n\t\t*out = make(map[string]ExtraValue, len(*in))\n\t\tfor key, val := range *in {\n\t\t\tvar outVal []string\n\t\t\tif val == nil {\n\t\t\t\t(*out)[key] = nil\n\t\t\t} else {\n\t\t\t\tin, out := &val, &outVal\n\t\t\t\t*out = make(ExtraValue, len(*in))\n\t\t\t\tcopy(*out, *in)\n\t\t\t}\n\t\t\t(*out)[key] = outVal\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserInfo.\nfunc (in *UserInfo) DeepCopy() *UserInfo {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(UserInfo)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/authentication/v1beta1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *SelfSubjectReview) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 27\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *SelfSubjectReview) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 30\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *SelfSubjectReview) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 33\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *TokenReview) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 4\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *TokenReview) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *TokenReview) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"authentication.k8s.io\", Version: \"v1\", Kind: \"TokenReview\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *TokenReview) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/authorization/v1/doc.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n// +groupName=authorization.k8s.io\n\npackage v1 // import \"k8s.io/api/authorization/v1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/authorization/v1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/authorization/v1/generated.proto\n\npackage v1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *ExtraValue) Reset()      { *m = ExtraValue{} }\nfunc (*ExtraValue) ProtoMessage() {}\nfunc (*ExtraValue) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_aafd0e5e70cec678, []int{0}\n}\nfunc (m *ExtraValue) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ExtraValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ExtraValue) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ExtraValue.Merge(m, src)\n}\nfunc (m *ExtraValue) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ExtraValue) XXX_DiscardUnknown() {\n\txxx_messageInfo_ExtraValue.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ExtraValue proto.InternalMessageInfo\n\nfunc (m *FieldSelectorAttributes) Reset()      { *m = FieldSelectorAttributes{} }\nfunc (*FieldSelectorAttributes) ProtoMessage() {}\nfunc (*FieldSelectorAttributes) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_aafd0e5e70cec678, []int{1}\n}\nfunc (m *FieldSelectorAttributes) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FieldSelectorAttributes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FieldSelectorAttributes) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FieldSelectorAttributes.Merge(m, src)\n}\nfunc (m *FieldSelectorAttributes) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FieldSelectorAttributes) XXX_DiscardUnknown() {\n\txxx_messageInfo_FieldSelectorAttributes.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FieldSelectorAttributes proto.InternalMessageInfo\n\nfunc (m *LabelSelectorAttributes) Reset()      { *m = LabelSelectorAttributes{} }\nfunc (*LabelSelectorAttributes) ProtoMessage() {}\nfunc (*LabelSelectorAttributes) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_aafd0e5e70cec678, []int{2}\n}\nfunc (m *LabelSelectorAttributes) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LabelSelectorAttributes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LabelSelectorAttributes) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LabelSelectorAttributes.Merge(m, src)\n}\nfunc (m *LabelSelectorAttributes) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LabelSelectorAttributes) XXX_DiscardUnknown() {\n\txxx_messageInfo_LabelSelectorAttributes.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LabelSelectorAttributes proto.InternalMessageInfo\n\nfunc (m *LocalSubjectAccessReview) Reset()      { *m = LocalSubjectAccessReview{} }\nfunc (*LocalSubjectAccessReview) ProtoMessage() {}\nfunc (*LocalSubjectAccessReview) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_aafd0e5e70cec678, []int{3}\n}\nfunc (m *LocalSubjectAccessReview) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LocalSubjectAccessReview) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LocalSubjectAccessReview) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LocalSubjectAccessReview.Merge(m, src)\n}\nfunc (m *LocalSubjectAccessReview) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LocalSubjectAccessReview) XXX_DiscardUnknown() {\n\txxx_messageInfo_LocalSubjectAccessReview.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LocalSubjectAccessReview proto.InternalMessageInfo\n\nfunc (m *NonResourceAttributes) Reset()      { *m = NonResourceAttributes{} }\nfunc (*NonResourceAttributes) ProtoMessage() {}\nfunc (*NonResourceAttributes) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_aafd0e5e70cec678, []int{4}\n}\nfunc (m *NonResourceAttributes) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NonResourceAttributes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NonResourceAttributes) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NonResourceAttributes.Merge(m, src)\n}\nfunc (m *NonResourceAttributes) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NonResourceAttributes) XXX_DiscardUnknown() {\n\txxx_messageInfo_NonResourceAttributes.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NonResourceAttributes proto.InternalMessageInfo\n\nfunc (m *NonResourceRule) Reset()      { *m = NonResourceRule{} }\nfunc (*NonResourceRule) ProtoMessage() {}\nfunc (*NonResourceRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_aafd0e5e70cec678, []int{5}\n}\nfunc (m *NonResourceRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NonResourceRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NonResourceRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NonResourceRule.Merge(m, src)\n}\nfunc (m *NonResourceRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NonResourceRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_NonResourceRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NonResourceRule proto.InternalMessageInfo\n\nfunc (m *ResourceAttributes) Reset()      { *m = ResourceAttributes{} }\nfunc (*ResourceAttributes) ProtoMessage() {}\nfunc (*ResourceAttributes) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_aafd0e5e70cec678, []int{6}\n}\nfunc (m *ResourceAttributes) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceAttributes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceAttributes) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceAttributes.Merge(m, src)\n}\nfunc (m *ResourceAttributes) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceAttributes) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceAttributes.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceAttributes proto.InternalMessageInfo\n\nfunc (m *ResourceRule) Reset()      { *m = ResourceRule{} }\nfunc (*ResourceRule) ProtoMessage() {}\nfunc (*ResourceRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_aafd0e5e70cec678, []int{7}\n}\nfunc (m *ResourceRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceRule.Merge(m, src)\n}\nfunc (m *ResourceRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceRule proto.InternalMessageInfo\n\nfunc (m *SelfSubjectAccessReview) Reset()      { *m = SelfSubjectAccessReview{} }\nfunc (*SelfSubjectAccessReview) ProtoMessage() {}\nfunc (*SelfSubjectAccessReview) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_aafd0e5e70cec678, []int{8}\n}\nfunc (m *SelfSubjectAccessReview) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SelfSubjectAccessReview) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SelfSubjectAccessReview) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SelfSubjectAccessReview.Merge(m, src)\n}\nfunc (m *SelfSubjectAccessReview) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SelfSubjectAccessReview) XXX_DiscardUnknown() {\n\txxx_messageInfo_SelfSubjectAccessReview.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SelfSubjectAccessReview proto.InternalMessageInfo\n\nfunc (m *SelfSubjectAccessReviewSpec) Reset()      { *m = SelfSubjectAccessReviewSpec{} }\nfunc (*SelfSubjectAccessReviewSpec) ProtoMessage() {}\nfunc (*SelfSubjectAccessReviewSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_aafd0e5e70cec678, []int{9}\n}\nfunc (m *SelfSubjectAccessReviewSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SelfSubjectAccessReviewSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SelfSubjectAccessReviewSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SelfSubjectAccessReviewSpec.Merge(m, src)\n}\nfunc (m *SelfSubjectAccessReviewSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SelfSubjectAccessReviewSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_SelfSubjectAccessReviewSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SelfSubjectAccessReviewSpec proto.InternalMessageInfo\n\nfunc (m *SelfSubjectRulesReview) Reset()      { *m = SelfSubjectRulesReview{} }\nfunc (*SelfSubjectRulesReview) ProtoMessage() {}\nfunc (*SelfSubjectRulesReview) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_aafd0e5e70cec678, []int{10}\n}\nfunc (m *SelfSubjectRulesReview) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SelfSubjectRulesReview) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SelfSubjectRulesReview) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SelfSubjectRulesReview.Merge(m, src)\n}\nfunc (m *SelfSubjectRulesReview) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SelfSubjectRulesReview) XXX_DiscardUnknown() {\n\txxx_messageInfo_SelfSubjectRulesReview.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SelfSubjectRulesReview proto.InternalMessageInfo\n\nfunc (m *SelfSubjectRulesReviewSpec) Reset()      { *m = SelfSubjectRulesReviewSpec{} }\nfunc (*SelfSubjectRulesReviewSpec) ProtoMessage() {}\nfunc (*SelfSubjectRulesReviewSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_aafd0e5e70cec678, []int{11}\n}\nfunc (m *SelfSubjectRulesReviewSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SelfSubjectRulesReviewSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SelfSubjectRulesReviewSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SelfSubjectRulesReviewSpec.Merge(m, src)\n}\nfunc (m *SelfSubjectRulesReviewSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SelfSubjectRulesReviewSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_SelfSubjectRulesReviewSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SelfSubjectRulesReviewSpec proto.InternalMessageInfo\n\nfunc (m *SubjectAccessReview) Reset()      { *m = SubjectAccessReview{} }\nfunc (*SubjectAccessReview) ProtoMessage() {}\nfunc (*SubjectAccessReview) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_aafd0e5e70cec678, []int{12}\n}\nfunc (m *SubjectAccessReview) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SubjectAccessReview) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SubjectAccessReview) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SubjectAccessReview.Merge(m, src)\n}\nfunc (m *SubjectAccessReview) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SubjectAccessReview) XXX_DiscardUnknown() {\n\txxx_messageInfo_SubjectAccessReview.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SubjectAccessReview proto.InternalMessageInfo\n\nfunc (m *SubjectAccessReviewSpec) Reset()      { *m = SubjectAccessReviewSpec{} }\nfunc (*SubjectAccessReviewSpec) ProtoMessage() {}\nfunc (*SubjectAccessReviewSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_aafd0e5e70cec678, []int{13}\n}\nfunc (m *SubjectAccessReviewSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SubjectAccessReviewSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SubjectAccessReviewSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SubjectAccessReviewSpec.Merge(m, src)\n}\nfunc (m *SubjectAccessReviewSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SubjectAccessReviewSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_SubjectAccessReviewSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SubjectAccessReviewSpec proto.InternalMessageInfo\n\nfunc (m *SubjectAccessReviewStatus) Reset()      { *m = SubjectAccessReviewStatus{} }\nfunc (*SubjectAccessReviewStatus) ProtoMessage() {}\nfunc (*SubjectAccessReviewStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_aafd0e5e70cec678, []int{14}\n}\nfunc (m *SubjectAccessReviewStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SubjectAccessReviewStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SubjectAccessReviewStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SubjectAccessReviewStatus.Merge(m, src)\n}\nfunc (m *SubjectAccessReviewStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SubjectAccessReviewStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_SubjectAccessReviewStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SubjectAccessReviewStatus proto.InternalMessageInfo\n\nfunc (m *SubjectRulesReviewStatus) Reset()      { *m = SubjectRulesReviewStatus{} }\nfunc (*SubjectRulesReviewStatus) ProtoMessage() {}\nfunc (*SubjectRulesReviewStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_aafd0e5e70cec678, []int{15}\n}\nfunc (m *SubjectRulesReviewStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SubjectRulesReviewStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SubjectRulesReviewStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SubjectRulesReviewStatus.Merge(m, src)\n}\nfunc (m *SubjectRulesReviewStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SubjectRulesReviewStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_SubjectRulesReviewStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SubjectRulesReviewStatus proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*ExtraValue)(nil), \"k8s.io.api.authorization.v1.ExtraValue\")\n\tproto.RegisterType((*FieldSelectorAttributes)(nil), \"k8s.io.api.authorization.v1.FieldSelectorAttributes\")\n\tproto.RegisterType((*LabelSelectorAttributes)(nil), \"k8s.io.api.authorization.v1.LabelSelectorAttributes\")\n\tproto.RegisterType((*LocalSubjectAccessReview)(nil), \"k8s.io.api.authorization.v1.LocalSubjectAccessReview\")\n\tproto.RegisterType((*NonResourceAttributes)(nil), \"k8s.io.api.authorization.v1.NonResourceAttributes\")\n\tproto.RegisterType((*NonResourceRule)(nil), \"k8s.io.api.authorization.v1.NonResourceRule\")\n\tproto.RegisterType((*ResourceAttributes)(nil), \"k8s.io.api.authorization.v1.ResourceAttributes\")\n\tproto.RegisterType((*ResourceRule)(nil), \"k8s.io.api.authorization.v1.ResourceRule\")\n\tproto.RegisterType((*SelfSubjectAccessReview)(nil), \"k8s.io.api.authorization.v1.SelfSubjectAccessReview\")\n\tproto.RegisterType((*SelfSubjectAccessReviewSpec)(nil), \"k8s.io.api.authorization.v1.SelfSubjectAccessReviewSpec\")\n\tproto.RegisterType((*SelfSubjectRulesReview)(nil), \"k8s.io.api.authorization.v1.SelfSubjectRulesReview\")\n\tproto.RegisterType((*SelfSubjectRulesReviewSpec)(nil), \"k8s.io.api.authorization.v1.SelfSubjectRulesReviewSpec\")\n\tproto.RegisterType((*SubjectAccessReview)(nil), \"k8s.io.api.authorization.v1.SubjectAccessReview\")\n\tproto.RegisterType((*SubjectAccessReviewSpec)(nil), \"k8s.io.api.authorization.v1.SubjectAccessReviewSpec\")\n\tproto.RegisterMapType((map[string]ExtraValue)(nil), \"k8s.io.api.authorization.v1.SubjectAccessReviewSpec.ExtraEntry\")\n\tproto.RegisterType((*SubjectAccessReviewStatus)(nil), \"k8s.io.api.authorization.v1.SubjectAccessReviewStatus\")\n\tproto.RegisterType((*SubjectRulesReviewStatus)(nil), \"k8s.io.api.authorization.v1.SubjectRulesReviewStatus\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/authorization/v1/generated.proto\", fileDescriptor_aafd0e5e70cec678)\n}\n\nvar fileDescriptor_aafd0e5e70cec678 = []byte{\n\t// 1247 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x58, 0xcf, 0x6f, 0x1b, 0xc5,\n\t0x17, 0xf7, 0xfa, 0x47, 0x62, 0x8f, 0xe3, 0x6f, 0xd2, 0xc9, 0x37, 0xcd, 0x36, 0x11, 0x76, 0x64,\n\t0x24, 0x48, 0xd5, 0xb2, 0x26, 0x51, 0xdb, 0x44, 0x95, 0x0a, 0xf2, 0xaa, 0x01, 0x45, 0x4a, 0x4b,\n\t0x35, 0x51, 0x22, 0x51, 0x04, 0x62, 0xbc, 0x9e, 0xd8, 0x4b, 0xec, 0xdd, 0xed, 0xcc, 0xac, 0xd3,\n\t0x70, 0xaa, 0xc4, 0x3f, 0xc0, 0x91, 0x43, 0x0f, 0xfc, 0x07, 0x5c, 0x90, 0xb8, 0x73, 0x40, 0x11,\n\t0xa7, 0x1e, 0x8b, 0x84, 0x2c, 0x62, 0xce, 0xfc, 0x0f, 0x68, 0x66, 0xc7, 0xde, 0xdd, 0xc4, 0x76,\n\t0x6d, 0x0e, 0x94, 0x43, 0x6f, 0x9e, 0xf7, 0x79, 0xbf, 0xe7, 0xbd, 0xb7, 0x6f, 0x0c, 0x6e, 0x1c,\n\t0x6f, 0x33, 0xc3, 0x76, 0x2b, 0xd8, 0xb3, 0x2b, 0xd8, 0xe7, 0x4d, 0x97, 0xda, 0x5f, 0x63, 0x6e,\n\t0xbb, 0x4e, 0xa5, 0xb3, 0x51, 0x69, 0x10, 0x87, 0x50, 0xcc, 0x49, 0xdd, 0xf0, 0xa8, 0xcb, 0x5d,\n\t0xb8, 0x1a, 0x30, 0x1b, 0xd8, 0xb3, 0x8d, 0x18, 0xb3, 0xd1, 0xd9, 0x58, 0x79, 0xaf, 0x61, 0xf3,\n\t0xa6, 0x5f, 0x33, 0x2c, 0xb7, 0x5d, 0x69, 0xb8, 0x0d, 0xb7, 0x22, 0x65, 0x6a, 0xfe, 0x91, 0x3c,\n\t0xc9, 0x83, 0xfc, 0x15, 0xe8, 0x5a, 0xb9, 0x15, 0x1a, 0x6e, 0x63, 0xab, 0x69, 0x3b, 0x84, 0x9e,\n\t0x56, 0xbc, 0xe3, 0x86, 0x20, 0xb0, 0x4a, 0x9b, 0x70, 0x3c, 0xc4, 0x83, 0x95, 0xca, 0x28, 0x29,\n\t0xea, 0x3b, 0xdc, 0x6e, 0x93, 0x4b, 0x02, 0x77, 0x5e, 0x25, 0xc0, 0xac, 0x26, 0x69, 0xe3, 0x8b,\n\t0x72, 0xe5, 0x2d, 0x00, 0x76, 0x9e, 0x72, 0x8a, 0x0f, 0x71, 0xcb, 0x27, 0xb0, 0x04, 0x32, 0x36,\n\t0x27, 0x6d, 0xa6, 0x6b, 0x6b, 0xa9, 0xf5, 0x9c, 0x99, 0xeb, 0x75, 0x4b, 0x99, 0x5d, 0x41, 0x40,\n\t0x01, 0xfd, 0x6e, 0xf6, 0xbb, 0xef, 0x4b, 0x89, 0x67, 0xbf, 0xaf, 0x25, 0xca, 0xbf, 0x6a, 0x60,\n\t0xf9, 0x23, 0x9b, 0xb4, 0xea, 0xfb, 0xa4, 0x45, 0x2c, 0xee, 0xd2, 0x2a, 0xe7, 0xd4, 0xae, 0xf9,\n\t0x9c, 0x30, 0x78, 0x1b, 0xe4, 0x29, 0x3e, 0xe9, 0x03, 0xba, 0xb6, 0xa6, 0xad, 0xe7, 0xcc, 0xc5,\n\t0xb3, 0x6e, 0x29, 0xd1, 0xeb, 0x96, 0xf2, 0x28, 0x84, 0x50, 0x94, 0x0f, 0x3e, 0x05, 0x73, 0x94,\n\t0x3c, 0xf1, 0x6d, 0x4a, 0xda, 0xc4, 0xe1, 0x4c, 0x4f, 0xae, 0xa5, 0xd6, 0xf3, 0x9b, 0x1f, 0x18,\n\t0xe1, 0x6d, 0x0c, 0x42, 0x33, 0xbc, 0xe3, 0x86, 0x20, 0x30, 0x43, 0x64, 0xd0, 0xe8, 0x6c, 0x18,\n\t0x31, 0x5f, 0x50, 0xa8, 0xc6, 0xfc, 0xbf, 0xb2, 0x3b, 0x17, 0x21, 0x32, 0x14, 0xb3, 0x24, 0x83,\n\t0xd9, 0xc3, 0x35, 0xd2, 0xfa, 0x8f, 0x04, 0x13, 0xf3, 0x65, 0xda, 0x60, 0x7e, 0x4c, 0x02, 0x7d,\n\t0xcf, 0xb5, 0x70, 0x6b, 0xdf, 0xaf, 0x7d, 0x45, 0x2c, 0x5e, 0xb5, 0x2c, 0xc2, 0x18, 0x22, 0x1d,\n\t0x9b, 0x9c, 0xc0, 0x2f, 0x41, 0x56, 0x18, 0xa9, 0x63, 0x8e, 0x65, 0x28, 0xf9, 0xcd, 0xf7, 0x27,\n\t0x73, 0xe9, 0x13, 0xa9, 0xeb, 0x01, 0xe1, 0xd8, 0x84, 0xca, 0x09, 0x10, 0xd2, 0xd0, 0x40, 0x2b,\n\t0x3c, 0x04, 0x69, 0xe6, 0x11, 0x4b, 0x4f, 0x4a, 0xed, 0xb7, 0x8c, 0x31, 0xbd, 0x64, 0x0c, 0xf1,\n\t0x70, 0xdf, 0x23, 0x96, 0x39, 0xa7, 0x2c, 0xa4, 0xc5, 0x09, 0x49, 0x7d, 0xf0, 0x0b, 0x30, 0xc3,\n\t0x38, 0xe6, 0x3e, 0xd3, 0x53, 0x52, 0xf3, 0x9d, 0xa9, 0x35, 0x4b, 0x69, 0xf3, 0x7f, 0x4a, 0xf7,\n\t0x4c, 0x70, 0x46, 0x4a, 0x6b, 0xf9, 0x33, 0xb0, 0xf4, 0xd0, 0x75, 0x10, 0x61, 0xae, 0x4f, 0x2d,\n\t0x12, 0x29, 0x80, 0x35, 0x90, 0xf6, 0x30, 0x6f, 0xaa, 0x9b, 0x1f, 0xb8, 0xf6, 0x08, 0xf3, 0x26,\n\t0x92, 0x88, 0xe0, 0xe8, 0x10, 0x5a, 0x93, 0x21, 0x47, 0x38, 0x0e, 0x09, 0xad, 0x21, 0x89, 0x94,\n\t0x9f, 0x80, 0xf9, 0x88, 0x72, 0xe4, 0xb7, 0x64, 0xaf, 0x09, 0x28, 0xd6, 0x6b, 0x42, 0x82, 0xa1,\n\t0x80, 0x0e, 0xef, 0x81, 0x79, 0x27, 0x94, 0x39, 0x40, 0x7b, 0x41, 0x11, 0xe5, 0xcc, 0xc5, 0x5e,\n\t0xb7, 0x14, 0x55, 0x27, 0x20, 0x74, 0x91, 0xb7, 0xfc, 0x3c, 0x0d, 0xe0, 0x90, 0x68, 0x2a, 0x20,\n\t0xe7, 0xe0, 0x36, 0x61, 0x1e, 0xb6, 0x88, 0x0a, 0xe9, 0x8a, 0x72, 0x38, 0xf7, 0xb0, 0x0f, 0xa0,\n\t0x90, 0xe7, 0xd5, 0xc1, 0xc1, 0xb7, 0x41, 0xa6, 0x41, 0x5d, 0xdf, 0x93, 0x17, 0x93, 0x33, 0x0b,\n\t0x8a, 0x25, 0xf3, 0xb1, 0x20, 0xa2, 0x00, 0x83, 0xd7, 0xc1, 0x6c, 0x87, 0x50, 0x66, 0xbb, 0x8e,\n\t0x9e, 0x96, 0x6c, 0xf3, 0x8a, 0x6d, 0xf6, 0x30, 0x20, 0xa3, 0x3e, 0x0e, 0x6f, 0x82, 0x2c, 0x55,\n\t0x8e, 0xeb, 0x19, 0xc9, 0xbb, 0xa0, 0x78, 0xb3, 0x83, 0x0c, 0x0e, 0x38, 0x44, 0x7f, 0x32, 0xbf,\n\t0x36, 0x10, 0x98, 0x89, 0xf7, 0xe7, 0x7e, 0x08, 0xa1, 0x28, 0x9f, 0x08, 0x4b, 0xc4, 0xa8, 0xcf,\n\t0xc6, 0xc3, 0x12, 0x29, 0x40, 0x12, 0x81, 0x6d, 0x50, 0x38, 0x8a, 0x0e, 0x15, 0x3d, 0x3b, 0x41,\n\t0x45, 0x8f, 0x18, 0x89, 0xe6, 0x95, 0x5e, 0xb7, 0x54, 0x88, 0xcf, 0xa8, 0xb8, 0x76, 0x61, 0xae,\n\t0x15, 0x6d, 0x7b, 0x3d, 0x37, 0x81, 0xb9, 0x11, 0x43, 0x2b, 0x30, 0x17, 0x9f, 0x22, 0x71, 0xed,\n\t0xe5, 0x9f, 0x35, 0x30, 0x37, 0x5d, 0x3d, 0xde, 0x00, 0x39, 0xec, 0xd9, 0xf2, 0x52, 0xfb, 0x95,\n\t0x58, 0x10, 0x55, 0x53, 0x7d, 0xb4, 0x1b, 0x10, 0x51, 0x88, 0x0b, 0xe6, 0x7e, 0xaa, 0x45, 0xc3,\n\t0x0e, 0x98, 0xfb, 0x26, 0x19, 0x0a, 0x71, 0xb8, 0x05, 0x0a, 0xfd, 0x83, 0x2c, 0x41, 0x3d, 0x2d,\n\t0x05, 0x64, 0x10, 0x28, 0x0a, 0xa0, 0x38, 0x5f, 0xf9, 0xa7, 0x24, 0x58, 0xde, 0x27, 0xad, 0xa3,\n\t0xd7, 0x33, 0xe9, 0x1e, 0xc7, 0x26, 0xdd, 0xf6, 0xf8, 0x79, 0x34, 0xdc, 0xcb, 0xd7, 0x36, 0xed,\n\t0x9e, 0x27, 0xc1, 0xea, 0x18, 0x9f, 0xe0, 0x09, 0x80, 0xf4, 0xd2, 0xf0, 0x50, 0x79, 0xac, 0x8c,\n\t0xf5, 0xe5, 0xf2, 0xcc, 0x31, 0xaf, 0xf6, 0xba, 0xa5, 0x21, 0xb3, 0x08, 0x0d, 0x31, 0x01, 0xbf,\n\t0xd1, 0xc0, 0x92, 0x33, 0x6c, 0x0e, 0xab, 0x34, 0x6f, 0x8e, 0x35, 0x3e, 0x74, 0x82, 0x9b, 0xd7,\n\t0x7a, 0xdd, 0xd2, 0xf0, 0xe1, 0x8e, 0x86, 0xdb, 0x12, 0xdf, 0xd0, 0xab, 0x91, 0xf4, 0x88, 0x06,\n\t0xf9, 0xf7, 0xea, 0xea, 0xd3, 0x58, 0x5d, 0x6d, 0x4d, 0x5a, 0x57, 0x11, 0x27, 0x47, 0x96, 0xd5,\n\t0xe7, 0x17, 0xca, 0xea, 0xf6, 0x24, 0x65, 0x15, 0x55, 0x3c, 0xbe, 0xaa, 0x1e, 0x80, 0x95, 0xd1,\n\t0x0e, 0x4d, 0xfd, 0xe9, 0x29, 0xff, 0x90, 0x04, 0x8b, 0x6f, 0x96, 0x98, 0x69, 0xda, 0xfa, 0x97,\n\t0x34, 0x58, 0x7e, 0xd3, 0xd2, 0xa3, 0xd6, 0x38, 0x9f, 0x11, 0xaa, 0x96, 0x94, 0xc1, 0xe5, 0x1c,\n\t0x30, 0x42, 0x91, 0x44, 0x60, 0x19, 0xcc, 0x34, 0x82, 0xaf, 0x5b, 0xf0, 0xfd, 0x01, 0x22, 0xc1,\n\t0xea, 0xd3, 0xa6, 0x10, 0x58, 0x07, 0x19, 0x22, 0xde, 0x4b, 0x7a, 0x46, 0xee, 0xf3, 0x1f, 0xfe,\n\t0x93, 0xca, 0x30, 0xe4, 0x8b, 0x6b, 0xc7, 0xe1, 0xf4, 0x34, 0x5c, 0x96, 0x24, 0x0d, 0x05, 0xca,\n\t0xe1, 0x5b, 0x20, 0xe5, 0xdb, 0x75, 0xb5, 0xcb, 0xe4, 0x15, 0x4b, 0xea, 0x60, 0xf7, 0x3e, 0x12,\n\t0xf4, 0x15, 0xac, 0x1e, 0x6d, 0x52, 0x05, 0x5c, 0x00, 0xa9, 0x63, 0x72, 0x1a, 0x34, 0x14, 0x12,\n\t0x3f, 0xe1, 0x3d, 0x90, 0xe9, 0x88, 0xf7, 0x9c, 0xca, 0xef, 0xbb, 0x63, 0x9d, 0x0c, 0x9f, 0x7f,\n\t0x28, 0x90, 0xba, 0x9b, 0xdc, 0xd6, 0xca, 0xbf, 0x69, 0xe0, 0xda, 0xc8, 0xf2, 0x13, 0xcb, 0x1c,\n\t0x6e, 0xb5, 0xdc, 0x13, 0x52, 0x97, 0x66, 0xb3, 0xe1, 0x32, 0x57, 0x0d, 0xc8, 0xa8, 0x8f, 0xc3,\n\t0x77, 0xc0, 0x4c, 0x9d, 0x38, 0x36, 0xa9, 0xcb, 0xb5, 0x2f, 0x1b, 0x56, 0xee, 0x7d, 0x49, 0x45,\n\t0x0a, 0x15, 0x7c, 0x94, 0x60, 0xe6, 0x3a, 0x6a, 0xd1, 0x1c, 0xf0, 0x21, 0x49, 0x45, 0x0a, 0x85,\n\t0x55, 0x30, 0x4f, 0x84, 0x9b, 0xd2, 0xff, 0x1d, 0x4a, 0xdd, 0xfe, 0x8d, 0x2e, 0x2b, 0x81, 0xf9,\n\t0x9d, 0x38, 0x8c, 0x2e, 0xf2, 0x97, 0xff, 0x4a, 0x02, 0x7d, 0xd4, 0x68, 0x83, 0x47, 0xe1, 0x2e,\n\t0x22, 0x41, 0xb9, 0x0e, 0xe5, 0x37, 0xaf, 0x4f, 0xd4, 0x20, 0x42, 0xc2, 0x5c, 0x52, 0x8e, 0x14,\n\t0xa2, 0xd4, 0xc8, 0xea, 0x22, 0x8f, 0x90, 0x82, 0x05, 0x27, 0xfe, 0x22, 0xe8, 0xbf, 0x11, 0x6f,\n\t0x4e, 0xda, 0x0e, 0xd2, 0x9a, 0xae, 0xac, 0x2d, 0x5c, 0x00, 0x18, 0xba, 0xa4, 0x1f, 0x6e, 0x02,\n\t0x60, 0x3b, 0x96, 0xdb, 0xf6, 0x5a, 0x84, 0x13, 0x99, 0xb6, 0x6c, 0x38, 0x07, 0x77, 0x07, 0x08,\n\t0x8a, 0x70, 0x0d, 0xcb, 0x77, 0x7a, 0xba, 0x7c, 0x9b, 0xd5, 0xb3, 0xf3, 0x62, 0xe2, 0xc5, 0x79,\n\t0x31, 0xf1, 0xf2, 0xbc, 0x98, 0x78, 0xd6, 0x2b, 0x6a, 0x67, 0xbd, 0xa2, 0xf6, 0xa2, 0x57, 0xd4,\n\t0x5e, 0xf6, 0x8a, 0xda, 0x1f, 0xbd, 0xa2, 0xf6, 0xed, 0x9f, 0xc5, 0xc4, 0xe3, 0xd5, 0x31, 0xff,\n\t0xd0, 0xfc, 0x1d, 0x00, 0x00, 0xff, 0xff, 0xb5, 0x8c, 0x77, 0x0f, 0xbf, 0x11, 0x00, 0x00,\n}\n\nfunc (m ExtraValue) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m ExtraValue) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m ExtraValue) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m) > 0 {\n\t\tfor iNdEx := len(m) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m[iNdEx])\n\t\t\tcopy(dAtA[i:], m[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FieldSelectorAttributes) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FieldSelectorAttributes) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FieldSelectorAttributes) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Requirements) > 0 {\n\t\tfor iNdEx := len(m.Requirements) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Requirements[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.RawSelector)\n\tcopy(dAtA[i:], m.RawSelector)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.RawSelector)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LabelSelectorAttributes) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LabelSelectorAttributes) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LabelSelectorAttributes) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Requirements) > 0 {\n\t\tfor iNdEx := len(m.Requirements) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Requirements[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.RawSelector)\n\tcopy(dAtA[i:], m.RawSelector)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.RawSelector)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LocalSubjectAccessReview) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LocalSubjectAccessReview) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LocalSubjectAccessReview) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NonResourceAttributes) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NonResourceAttributes) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NonResourceAttributes) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Verb)\n\tcopy(dAtA[i:], m.Verb)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verb)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Path)\n\tcopy(dAtA[i:], m.Path)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Path)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NonResourceRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NonResourceRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NonResourceRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.NonResourceURLs) > 0 {\n\t\tfor iNdEx := len(m.NonResourceURLs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.NonResourceURLs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.NonResourceURLs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.NonResourceURLs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Verbs) > 0 {\n\t\tfor iNdEx := len(m.Verbs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Verbs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Verbs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verbs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceAttributes) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceAttributes) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceAttributes) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.LabelSelector != nil {\n\t\t{\n\t\t\tsize, err := m.LabelSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x4a\n\t}\n\tif m.FieldSelector != nil {\n\t\t{\n\t\t\tsize, err := m.FieldSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x42\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x3a\n\ti -= len(m.Subresource)\n\tcopy(dAtA[i:], m.Subresource)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Subresource)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.Resource)\n\tcopy(dAtA[i:], m.Resource)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Resource)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Version)\n\tcopy(dAtA[i:], m.Version)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Version)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Group)\n\tcopy(dAtA[i:], m.Group)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Group)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Verb)\n\tcopy(dAtA[i:], m.Verb)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verb)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Namespace)\n\tcopy(dAtA[i:], m.Namespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ResourceNames) > 0 {\n\t\tfor iNdEx := len(m.ResourceNames) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.ResourceNames[iNdEx])\n\t\t\tcopy(dAtA[i:], m.ResourceNames[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ResourceNames[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif len(m.Resources) > 0 {\n\t\tfor iNdEx := len(m.Resources) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Resources[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Resources[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Resources[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.APIGroups) > 0 {\n\t\tfor iNdEx := len(m.APIGroups) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.APIGroups[iNdEx])\n\t\t\tcopy(dAtA[i:], m.APIGroups[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIGroups[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Verbs) > 0 {\n\t\tfor iNdEx := len(m.Verbs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Verbs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Verbs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verbs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SelfSubjectAccessReview) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SelfSubjectAccessReview) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SelfSubjectAccessReview) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SelfSubjectAccessReviewSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SelfSubjectAccessReviewSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SelfSubjectAccessReviewSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.NonResourceAttributes != nil {\n\t\t{\n\t\t\tsize, err := m.NonResourceAttributes.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.ResourceAttributes != nil {\n\t\t{\n\t\t\tsize, err := m.ResourceAttributes.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SelfSubjectRulesReview) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SelfSubjectRulesReview) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SelfSubjectRulesReview) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SelfSubjectRulesReviewSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SelfSubjectRulesReviewSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SelfSubjectRulesReviewSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Namespace)\n\tcopy(dAtA[i:], m.Namespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SubjectAccessReview) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SubjectAccessReview) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SubjectAccessReview) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SubjectAccessReviewSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SubjectAccessReviewSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SubjectAccessReviewSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.UID)\n\tcopy(dAtA[i:], m.UID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.UID)))\n\ti--\n\tdAtA[i] = 0x32\n\tif len(m.Extra) > 0 {\n\t\tkeysForExtra := make([]string, 0, len(m.Extra))\n\t\tfor k := range m.Extra {\n\t\t\tkeysForExtra = append(keysForExtra, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForExtra)\n\t\tfor iNdEx := len(keysForExtra) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Extra[string(keysForExtra[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForExtra[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForExtra[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForExtra[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\tif len(m.Groups) > 0 {\n\t\tfor iNdEx := len(m.Groups) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Groups[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Groups[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Groups[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\ti -= len(m.User)\n\tcopy(dAtA[i:], m.User)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.User)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.NonResourceAttributes != nil {\n\t\t{\n\t\t\tsize, err := m.NonResourceAttributes.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.ResourceAttributes != nil {\n\t\t{\n\t\t\tsize, err := m.ResourceAttributes.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SubjectAccessReviewStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SubjectAccessReviewStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SubjectAccessReviewStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti--\n\tif m.Denied {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x20\n\ti -= len(m.EvaluationError)\n\tcopy(dAtA[i:], m.EvaluationError)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.EvaluationError)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x12\n\ti--\n\tif m.Allowed {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SubjectRulesReviewStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SubjectRulesReviewStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SubjectRulesReviewStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.EvaluationError)\n\tcopy(dAtA[i:], m.EvaluationError)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.EvaluationError)))\n\ti--\n\tdAtA[i] = 0x22\n\ti--\n\tif m.Incomplete {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x18\n\tif len(m.NonResourceRules) > 0 {\n\t\tfor iNdEx := len(m.NonResourceRules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.NonResourceRules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.ResourceRules) > 0 {\n\t\tfor iNdEx := len(m.ResourceRules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ResourceRules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m ExtraValue) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m) > 0 {\n\t\tfor _, s := range m {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *FieldSelectorAttributes) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.RawSelector)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Requirements) > 0 {\n\t\tfor _, e := range m.Requirements {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *LabelSelectorAttributes) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.RawSelector)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Requirements) > 0 {\n\t\tfor _, e := range m.Requirements {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *LocalSubjectAccessReview) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *NonResourceAttributes) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Path)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Verb)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *NonResourceRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Verbs) > 0 {\n\t\tfor _, s := range m.Verbs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.NonResourceURLs) > 0 {\n\t\tfor _, s := range m.NonResourceURLs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ResourceAttributes) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Namespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Verb)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Group)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Version)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Resource)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Subresource)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.FieldSelector != nil {\n\t\tl = m.FieldSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.LabelSelector != nil {\n\t\tl = m.LabelSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ResourceRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Verbs) > 0 {\n\t\tfor _, s := range m.Verbs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.APIGroups) > 0 {\n\t\tfor _, s := range m.APIGroups {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Resources) > 0 {\n\t\tfor _, s := range m.Resources {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.ResourceNames) > 0 {\n\t\tfor _, s := range m.ResourceNames {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *SelfSubjectAccessReview) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *SelfSubjectAccessReviewSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.ResourceAttributes != nil {\n\t\tl = m.ResourceAttributes.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.NonResourceAttributes != nil {\n\t\tl = m.NonResourceAttributes.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *SelfSubjectRulesReview) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *SelfSubjectRulesReviewSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Namespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *SubjectAccessReview) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *SubjectAccessReviewSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.ResourceAttributes != nil {\n\t\tl = m.ResourceAttributes.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.NonResourceAttributes != nil {\n\t\tl = m.NonResourceAttributes.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.User)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Groups) > 0 {\n\t\tfor _, s := range m.Groups {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Extra) > 0 {\n\t\tfor k, v := range m.Extra {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tl = len(m.UID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *SubjectAccessReviewStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 2\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.EvaluationError)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\treturn n\n}\n\nfunc (m *SubjectRulesReviewStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.ResourceRules) > 0 {\n\t\tfor _, e := range m.ResourceRules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.NonResourceRules) > 0 {\n\t\tfor _, e := range m.NonResourceRules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tn += 2\n\tl = len(m.EvaluationError)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *FieldSelectorAttributes) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForRequirements := \"[]FieldSelectorRequirement{\"\n\tfor _, f := range this.Requirements {\n\t\trepeatedStringForRequirements += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForRequirements += \"}\"\n\ts := strings.Join([]string{`&FieldSelectorAttributes{`,\n\t\t`RawSelector:` + fmt.Sprintf(\"%v\", this.RawSelector) + `,`,\n\t\t`Requirements:` + repeatedStringForRequirements + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LabelSelectorAttributes) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForRequirements := \"[]LabelSelectorRequirement{\"\n\tfor _, f := range this.Requirements {\n\t\trepeatedStringForRequirements += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForRequirements += \"}\"\n\ts := strings.Join([]string{`&LabelSelectorAttributes{`,\n\t\t`RawSelector:` + fmt.Sprintf(\"%v\", this.RawSelector) + `,`,\n\t\t`Requirements:` + repeatedStringForRequirements + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LocalSubjectAccessReview) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LocalSubjectAccessReview{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"SubjectAccessReviewSpec\", \"SubjectAccessReviewSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"SubjectAccessReviewStatus\", \"SubjectAccessReviewStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NonResourceAttributes) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NonResourceAttributes{`,\n\t\t`Path:` + fmt.Sprintf(\"%v\", this.Path) + `,`,\n\t\t`Verb:` + fmt.Sprintf(\"%v\", this.Verb) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NonResourceRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NonResourceRule{`,\n\t\t`Verbs:` + fmt.Sprintf(\"%v\", this.Verbs) + `,`,\n\t\t`NonResourceURLs:` + fmt.Sprintf(\"%v\", this.NonResourceURLs) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceAttributes) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceAttributes{`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`Verb:` + fmt.Sprintf(\"%v\", this.Verb) + `,`,\n\t\t`Group:` + fmt.Sprintf(\"%v\", this.Group) + `,`,\n\t\t`Version:` + fmt.Sprintf(\"%v\", this.Version) + `,`,\n\t\t`Resource:` + fmt.Sprintf(\"%v\", this.Resource) + `,`,\n\t\t`Subresource:` + fmt.Sprintf(\"%v\", this.Subresource) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`FieldSelector:` + strings.Replace(this.FieldSelector.String(), \"FieldSelectorAttributes\", \"FieldSelectorAttributes\", 1) + `,`,\n\t\t`LabelSelector:` + strings.Replace(this.LabelSelector.String(), \"LabelSelectorAttributes\", \"LabelSelectorAttributes\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceRule{`,\n\t\t`Verbs:` + fmt.Sprintf(\"%v\", this.Verbs) + `,`,\n\t\t`APIGroups:` + fmt.Sprintf(\"%v\", this.APIGroups) + `,`,\n\t\t`Resources:` + fmt.Sprintf(\"%v\", this.Resources) + `,`,\n\t\t`ResourceNames:` + fmt.Sprintf(\"%v\", this.ResourceNames) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SelfSubjectAccessReview) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SelfSubjectAccessReview{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"SelfSubjectAccessReviewSpec\", \"SelfSubjectAccessReviewSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"SubjectAccessReviewStatus\", \"SubjectAccessReviewStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SelfSubjectAccessReviewSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SelfSubjectAccessReviewSpec{`,\n\t\t`ResourceAttributes:` + strings.Replace(this.ResourceAttributes.String(), \"ResourceAttributes\", \"ResourceAttributes\", 1) + `,`,\n\t\t`NonResourceAttributes:` + strings.Replace(this.NonResourceAttributes.String(), \"NonResourceAttributes\", \"NonResourceAttributes\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SelfSubjectRulesReview) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SelfSubjectRulesReview{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"SelfSubjectRulesReviewSpec\", \"SelfSubjectRulesReviewSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"SubjectRulesReviewStatus\", \"SubjectRulesReviewStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SelfSubjectRulesReviewSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SelfSubjectRulesReviewSpec{`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SubjectAccessReview) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SubjectAccessReview{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"SubjectAccessReviewSpec\", \"SubjectAccessReviewSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"SubjectAccessReviewStatus\", \"SubjectAccessReviewStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SubjectAccessReviewSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForExtra := make([]string, 0, len(this.Extra))\n\tfor k := range this.Extra {\n\t\tkeysForExtra = append(keysForExtra, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForExtra)\n\tmapStringForExtra := \"map[string]ExtraValue{\"\n\tfor _, k := range keysForExtra {\n\t\tmapStringForExtra += fmt.Sprintf(\"%v: %v,\", k, this.Extra[k])\n\t}\n\tmapStringForExtra += \"}\"\n\ts := strings.Join([]string{`&SubjectAccessReviewSpec{`,\n\t\t`ResourceAttributes:` + strings.Replace(this.ResourceAttributes.String(), \"ResourceAttributes\", \"ResourceAttributes\", 1) + `,`,\n\t\t`NonResourceAttributes:` + strings.Replace(this.NonResourceAttributes.String(), \"NonResourceAttributes\", \"NonResourceAttributes\", 1) + `,`,\n\t\t`User:` + fmt.Sprintf(\"%v\", this.User) + `,`,\n\t\t`Groups:` + fmt.Sprintf(\"%v\", this.Groups) + `,`,\n\t\t`Extra:` + mapStringForExtra + `,`,\n\t\t`UID:` + fmt.Sprintf(\"%v\", this.UID) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SubjectAccessReviewStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SubjectAccessReviewStatus{`,\n\t\t`Allowed:` + fmt.Sprintf(\"%v\", this.Allowed) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`EvaluationError:` + fmt.Sprintf(\"%v\", this.EvaluationError) + `,`,\n\t\t`Denied:` + fmt.Sprintf(\"%v\", this.Denied) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SubjectRulesReviewStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForResourceRules := \"[]ResourceRule{\"\n\tfor _, f := range this.ResourceRules {\n\t\trepeatedStringForResourceRules += strings.Replace(strings.Replace(f.String(), \"ResourceRule\", \"ResourceRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForResourceRules += \"}\"\n\trepeatedStringForNonResourceRules := \"[]NonResourceRule{\"\n\tfor _, f := range this.NonResourceRules {\n\t\trepeatedStringForNonResourceRules += strings.Replace(strings.Replace(f.String(), \"NonResourceRule\", \"NonResourceRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForNonResourceRules += \"}\"\n\ts := strings.Join([]string{`&SubjectRulesReviewStatus{`,\n\t\t`ResourceRules:` + repeatedStringForResourceRules + `,`,\n\t\t`NonResourceRules:` + repeatedStringForNonResourceRules + `,`,\n\t\t`Incomplete:` + fmt.Sprintf(\"%v\", this.Incomplete) + `,`,\n\t\t`EvaluationError:` + fmt.Sprintf(\"%v\", this.EvaluationError) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *ExtraValue) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ExtraValue: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ExtraValue: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\t*m = append(*m, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FieldSelectorAttributes) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FieldSelectorAttributes: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FieldSelectorAttributes: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RawSelector\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RawSelector = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Requirements\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Requirements = append(m.Requirements, v1.FieldSelectorRequirement{})\n\t\t\tif err := m.Requirements[len(m.Requirements)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LabelSelectorAttributes) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LabelSelectorAttributes: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LabelSelectorAttributes: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RawSelector\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RawSelector = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Requirements\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Requirements = append(m.Requirements, v1.LabelSelectorRequirement{})\n\t\t\tif err := m.Requirements[len(m.Requirements)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LocalSubjectAccessReview) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LocalSubjectAccessReview: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LocalSubjectAccessReview: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NonResourceAttributes) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NonResourceAttributes: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NonResourceAttributes: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Path\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Path = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verb\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verb = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NonResourceRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NonResourceRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NonResourceRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verbs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verbs = append(m.Verbs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NonResourceURLs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NonResourceURLs = append(m.NonResourceURLs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceAttributes) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceAttributes: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceAttributes: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verb\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verb = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Group\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Group = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Version\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Version = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resource\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resource = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Subresource\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Subresource = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FieldSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.FieldSelector == nil {\n\t\t\t\tm.FieldSelector = &FieldSelectorAttributes{}\n\t\t\t}\n\t\t\tif err := m.FieldSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LabelSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.LabelSelector == nil {\n\t\t\t\tm.LabelSelector = &LabelSelectorAttributes{}\n\t\t\t}\n\t\t\tif err := m.LabelSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verbs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verbs = append(m.Verbs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIGroups\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIGroups = append(m.APIGroups, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resources\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resources = append(m.Resources, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceNames\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceNames = append(m.ResourceNames, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SelfSubjectAccessReview) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectAccessReview: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectAccessReview: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SelfSubjectAccessReviewSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectAccessReviewSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectAccessReviewSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceAttributes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ResourceAttributes == nil {\n\t\t\t\tm.ResourceAttributes = &ResourceAttributes{}\n\t\t\t}\n\t\t\tif err := m.ResourceAttributes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NonResourceAttributes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NonResourceAttributes == nil {\n\t\t\t\tm.NonResourceAttributes = &NonResourceAttributes{}\n\t\t\t}\n\t\t\tif err := m.NonResourceAttributes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SelfSubjectRulesReview) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectRulesReview: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectRulesReview: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SelfSubjectRulesReviewSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectRulesReviewSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectRulesReviewSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SubjectAccessReview) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SubjectAccessReview: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SubjectAccessReview: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SubjectAccessReviewSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SubjectAccessReviewSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SubjectAccessReviewSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceAttributes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ResourceAttributes == nil {\n\t\t\t\tm.ResourceAttributes = &ResourceAttributes{}\n\t\t\t}\n\t\t\tif err := m.ResourceAttributes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NonResourceAttributes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NonResourceAttributes == nil {\n\t\t\t\tm.NonResourceAttributes = &NonResourceAttributes{}\n\t\t\t}\n\t\t\tif err := m.NonResourceAttributes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field User\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.User = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Groups\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Groups = append(m.Groups, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Extra\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Extra == nil {\n\t\t\t\tm.Extra = make(map[string]ExtraValue)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tmapvalue := &ExtraValue{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &ExtraValue{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Extra[mapkey] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.UID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SubjectAccessReviewStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SubjectAccessReviewStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SubjectAccessReviewStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Allowed\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Allowed = bool(v != 0)\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EvaluationError\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.EvaluationError = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Denied\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Denied = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SubjectRulesReviewStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SubjectRulesReviewStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SubjectRulesReviewStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceRules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceRules = append(m.ResourceRules, ResourceRule{})\n\t\t\tif err := m.ResourceRules[len(m.ResourceRules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NonResourceRules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NonResourceRules = append(m.NonResourceRules, NonResourceRule{})\n\t\t\tif err := m.NonResourceRules[len(m.NonResourceRules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Incomplete\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Incomplete = bool(v != 0)\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EvaluationError\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.EvaluationError = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/authorization/v1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.authorization.v1;\n\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/authorization/v1\";\n\n// ExtraValue masks the value so protobuf can generate\n// +protobuf.nullable=true\n// +protobuf.options.(gogoproto.goproto_stringer)=false\nmessage ExtraValue {\n  // items, if empty, will result in an empty slice\n\n  repeated string items = 1;\n}\n\n// FieldSelectorAttributes indicates a field limited access.\n// Webhook authors are encouraged to\n// * ensure rawSelector and requirements are not both set\n// * consider the requirements field if set\n// * not try to parse or consider the rawSelector field if set. This is to avoid another CVE-2022-2880 (i.e. getting different systems to agree on how exactly to parse a query is not something we want), see https://www.oxeye.io/resources/golang-parameter-smuggling-attack for more details.\n// For the *SubjectAccessReview endpoints of the kube-apiserver:\n// * If rawSelector is empty and requirements are empty, the request is not limited.\n// * If rawSelector is present and requirements are empty, the rawSelector will be parsed and limited if the parsing succeeds.\n// * If rawSelector is empty and requirements are present, the requirements should be honored\n// * If rawSelector is present and requirements are present, the request is invalid.\nmessage FieldSelectorAttributes {\n  // rawSelector is the serialization of a field selector that would be included in a query parameter.\n  // Webhook implementations are encouraged to ignore rawSelector.\n  // The kube-apiserver's *SubjectAccessReview will parse the rawSelector as long as the requirements are not present.\n  // +optional\n  optional string rawSelector = 1;\n\n  // requirements is the parsed interpretation of a field selector.\n  // All requirements must be met for a resource instance to match the selector.\n  // Webhook implementations should handle requirements, but how to handle them is up to the webhook.\n  // Since requirements can only limit the request, it is safe to authorize as unlimited request if the requirements\n  // are not understood.\n  // +optional\n  // +listType=atomic\n  repeated .k8s.io.apimachinery.pkg.apis.meta.v1.FieldSelectorRequirement requirements = 2;\n}\n\n// LabelSelectorAttributes indicates a label limited access.\n// Webhook authors are encouraged to\n// * ensure rawSelector and requirements are not both set\n// * consider the requirements field if set\n// * not try to parse or consider the rawSelector field if set. This is to avoid another CVE-2022-2880 (i.e. getting different systems to agree on how exactly to parse a query is not something we want), see https://www.oxeye.io/resources/golang-parameter-smuggling-attack for more details.\n// For the *SubjectAccessReview endpoints of the kube-apiserver:\n// * If rawSelector is empty and requirements are empty, the request is not limited.\n// * If rawSelector is present and requirements are empty, the rawSelector will be parsed and limited if the parsing succeeds.\n// * If rawSelector is empty and requirements are present, the requirements should be honored\n// * If rawSelector is present and requirements are present, the request is invalid.\nmessage LabelSelectorAttributes {\n  // rawSelector is the serialization of a field selector that would be included in a query parameter.\n  // Webhook implementations are encouraged to ignore rawSelector.\n  // The kube-apiserver's *SubjectAccessReview will parse the rawSelector as long as the requirements are not present.\n  // +optional\n  optional string rawSelector = 1;\n\n  // requirements is the parsed interpretation of a label selector.\n  // All requirements must be met for a resource instance to match the selector.\n  // Webhook implementations should handle requirements, but how to handle them is up to the webhook.\n  // Since requirements can only limit the request, it is safe to authorize as unlimited request if the requirements\n  // are not understood.\n  // +optional\n  // +listType=atomic\n  repeated .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement requirements = 2;\n}\n\n// LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace.\n// Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions\n// checking.\nmessage LocalSubjectAccessReview {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec holds information about the request being evaluated.  spec.namespace must be equal to the namespace\n  // you made the request against.  If empty, it is defaulted.\n  optional SubjectAccessReviewSpec spec = 2;\n\n  // Status is filled in by the server and indicates whether the request is allowed or not\n  // +optional\n  optional SubjectAccessReviewStatus status = 3;\n}\n\n// NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface\nmessage NonResourceAttributes {\n  // Path is the URL path of the request\n  // +optional\n  optional string path = 1;\n\n  // Verb is the standard HTTP verb\n  // +optional\n  optional string verb = 2;\n}\n\n// NonResourceRule holds information that describes a rule for the non-resource\nmessage NonResourceRule {\n  // Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options.  \"*\" means all.\n  // +listType=atomic\n  repeated string verbs = 1;\n\n  // NonResourceURLs is a set of partial urls that a user should have access to.  *s are allowed, but only as the full,\n  // final step in the path.  \"*\" means all.\n  // +optional\n  // +listType=atomic\n  repeated string nonResourceURLs = 2;\n}\n\n// ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface\nmessage ResourceAttributes {\n  // Namespace is the namespace of the action being requested.  Currently, there is no distinction between no namespace and all namespaces\n  // \"\" (empty) is defaulted for LocalSubjectAccessReviews\n  // \"\" (empty) is empty for cluster-scoped resources\n  // \"\" (empty) means \"all\" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview\n  // +optional\n  optional string namespace = 1;\n\n  // Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy.  \"*\" means all.\n  // +optional\n  optional string verb = 2;\n\n  // Group is the API Group of the Resource.  \"*\" means all.\n  // +optional\n  optional string group = 3;\n\n  // Version is the API Version of the Resource.  \"*\" means all.\n  // +optional\n  optional string version = 4;\n\n  // Resource is one of the existing resource types.  \"*\" means all.\n  // +optional\n  optional string resource = 5;\n\n  // Subresource is one of the existing resource types.  \"\" means none.\n  // +optional\n  optional string subresource = 6;\n\n  // Name is the name of the resource being requested for a \"get\" or deleted for a \"delete\". \"\" (empty) means all.\n  // +optional\n  optional string name = 7;\n\n  // fieldSelector describes the limitation on access based on field.  It can only limit access, not broaden it.\n  //\n  // This field  is alpha-level. To use this field, you must enable the\n  // `AuthorizeWithSelectors` feature gate (disabled by default).\n  // +optional\n  optional FieldSelectorAttributes fieldSelector = 8;\n\n  // labelSelector describes the limitation on access based on labels.  It can only limit access, not broaden it.\n  //\n  // This field  is alpha-level. To use this field, you must enable the\n  // `AuthorizeWithSelectors` feature gate (disabled by default).\n  // +optional\n  optional LabelSelectorAttributes labelSelector = 9;\n}\n\n// ResourceRule is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant,\n// may contain duplicates, and possibly be incomplete.\nmessage ResourceRule {\n  // Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy.  \"*\" means all.\n  // +listType=atomic\n  repeated string verbs = 1;\n\n  // APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of\n  // the enumerated resources in any API group will be allowed.  \"*\" means all.\n  // +optional\n  // +listType=atomic\n  repeated string apiGroups = 2;\n\n  // Resources is a list of resources this rule applies to.  \"*\" means all in the specified apiGroups.\n  //  \"*/foo\" represents the subresource 'foo' for all resources in the specified apiGroups.\n  // +optional\n  // +listType=atomic\n  repeated string resources = 3;\n\n  // ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.  \"*\" means all.\n  // +optional\n  // +listType=atomic\n  repeated string resourceNames = 4;\n}\n\n// SelfSubjectAccessReview checks whether or the current user can perform an action.  Not filling in a\n// spec.namespace means \"in all namespaces\".  Self is a special case, because users should always be able\n// to check whether they can perform an action\nmessage SelfSubjectAccessReview {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec holds information about the request being evaluated.  user and groups must be empty\n  optional SelfSubjectAccessReviewSpec spec = 2;\n\n  // Status is filled in by the server and indicates whether the request is allowed or not\n  // +optional\n  optional SubjectAccessReviewStatus status = 3;\n}\n\n// SelfSubjectAccessReviewSpec is a description of the access request.  Exactly one of ResourceAuthorizationAttributes\n// and NonResourceAuthorizationAttributes must be set\nmessage SelfSubjectAccessReviewSpec {\n  // ResourceAuthorizationAttributes describes information for a resource access request\n  // +optional\n  optional ResourceAttributes resourceAttributes = 1;\n\n  // NonResourceAttributes describes information for a non-resource access request\n  // +optional\n  optional NonResourceAttributes nonResourceAttributes = 2;\n}\n\n// SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace.\n// The returned list of actions may be incomplete depending on the server's authorization mode,\n// and any errors experienced during the evaluation. SelfSubjectRulesReview should be used by UIs to show/hide actions,\n// or to quickly let an end user reason about their permissions. It should NOT Be used by external systems to\n// drive authorization decisions as this raises confused deputy, cache lifetime/revocation, and correctness concerns.\n// SubjectAccessReview, and LocalAccessReview are the correct way to defer authorization decisions to the API server.\nmessage SelfSubjectRulesReview {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec holds information about the request being evaluated.\n  optional SelfSubjectRulesReviewSpec spec = 2;\n\n  // Status is filled in by the server and indicates the set of actions a user can perform.\n  // +optional\n  optional SubjectRulesReviewStatus status = 3;\n}\n\n// SelfSubjectRulesReviewSpec defines the specification for SelfSubjectRulesReview.\nmessage SelfSubjectRulesReviewSpec {\n  // Namespace to evaluate rules for. Required.\n  optional string namespace = 1;\n}\n\n// SubjectAccessReview checks whether or not a user or group can perform an action.\nmessage SubjectAccessReview {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec holds information about the request being evaluated\n  optional SubjectAccessReviewSpec spec = 2;\n\n  // Status is filled in by the server and indicates whether the request is allowed or not\n  // +optional\n  optional SubjectAccessReviewStatus status = 3;\n}\n\n// SubjectAccessReviewSpec is a description of the access request.  Exactly one of ResourceAuthorizationAttributes\n// and NonResourceAuthorizationAttributes must be set\nmessage SubjectAccessReviewSpec {\n  // ResourceAuthorizationAttributes describes information for a resource access request\n  // +optional\n  optional ResourceAttributes resourceAttributes = 1;\n\n  // NonResourceAttributes describes information for a non-resource access request\n  // +optional\n  optional NonResourceAttributes nonResourceAttributes = 2;\n\n  // User is the user you're testing for.\n  // If you specify \"User\" but not \"Groups\", then is it interpreted as \"What if User were not a member of any groups\n  // +optional\n  optional string user = 3;\n\n  // Groups is the groups you're testing for.\n  // +optional\n  // +listType=atomic\n  repeated string groups = 4;\n\n  // Extra corresponds to the user.Info.GetExtra() method from the authenticator.  Since that is input to the authorizer\n  // it needs a reflection here.\n  // +optional\n  map<string, ExtraValue> extra = 5;\n\n  // UID information about the requesting user.\n  // +optional\n  optional string uid = 6;\n}\n\n// SubjectAccessReviewStatus\nmessage SubjectAccessReviewStatus {\n  // Allowed is required. True if the action would be allowed, false otherwise.\n  optional bool allowed = 1;\n\n  // Denied is optional. True if the action would be denied, otherwise\n  // false. If both allowed is false and denied is false, then the\n  // authorizer has no opinion on whether to authorize the action. Denied\n  // may not be true if Allowed is true.\n  // +optional\n  optional bool denied = 4;\n\n  // Reason is optional.  It indicates why a request was allowed or denied.\n  // +optional\n  optional string reason = 2;\n\n  // EvaluationError is an indication that some error occurred during the authorization check.\n  // It is entirely possible to get an error and be able to continue determine authorization status in spite of it.\n  // For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request.\n  // +optional\n  optional string evaluationError = 3;\n}\n\n// SubjectRulesReviewStatus contains the result of a rules check. This check can be incomplete depending on\n// the set of authorizers the server is configured with and any errors experienced during evaluation.\n// Because authorization rules are additive, if a rule appears in a list it's safe to assume the subject has that permission,\n// even if that list is incomplete.\nmessage SubjectRulesReviewStatus {\n  // ResourceRules is the list of actions the subject is allowed to perform on resources.\n  // The list ordering isn't significant, may contain duplicates, and possibly be incomplete.\n  // +listType=atomic\n  repeated ResourceRule resourceRules = 1;\n\n  // NonResourceRules is the list of actions the subject is allowed to perform on non-resources.\n  // The list ordering isn't significant, may contain duplicates, and possibly be incomplete.\n  // +listType=atomic\n  repeated NonResourceRule nonResourceRules = 2;\n\n  // Incomplete is true when the rules returned by this call are incomplete. This is most commonly\n  // encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation.\n  optional bool incomplete = 3;\n\n  // EvaluationError can appear in combination with Rules. It indicates an error occurred during\n  // rule evaluation, such as an authorizer that doesn't support rule evaluation, and that\n  // ResourceRules and/or NonResourceRules may be incomplete.\n  // +optional\n  optional string evaluationError = 4;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/authorization/v1/register.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"authorization.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&SelfSubjectRulesReview{},\n\t\t&SelfSubjectAccessReview{},\n\t\t&SubjectAccessReview{},\n\t\t&LocalSubjectAccessReview{},\n\t)\n\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/authorization/v1/types.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"fmt\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +genclient:onlyVerbs=create\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.6\n\n// SubjectAccessReview checks whether or not a user or group can perform an action.\ntype SubjectAccessReview struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec holds information about the request being evaluated\n\tSpec SubjectAccessReviewSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status is filled in by the server and indicates whether the request is allowed or not\n\t// +optional\n\tStatus SubjectAccessReviewStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +genclient:onlyVerbs=create\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.19\n\n// SelfSubjectAccessReview checks whether or the current user can perform an action.  Not filling in a\n// spec.namespace means \"in all namespaces\".  Self is a special case, because users should always be able\n// to check whether they can perform an action\ntype SelfSubjectAccessReview struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec holds information about the request being evaluated.  user and groups must be empty\n\tSpec SelfSubjectAccessReviewSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status is filled in by the server and indicates whether the request is allowed or not\n\t// +optional\n\tStatus SubjectAccessReviewStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +genclient\n// +genclient:onlyVerbs=create\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.19\n\n// LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace.\n// Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions\n// checking.\ntype LocalSubjectAccessReview struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec holds information about the request being evaluated.  spec.namespace must be equal to the namespace\n\t// you made the request against.  If empty, it is defaulted.\n\tSpec SubjectAccessReviewSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status is filled in by the server and indicates whether the request is allowed or not\n\t// +optional\n\tStatus SubjectAccessReviewStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface\ntype ResourceAttributes struct {\n\t// Namespace is the namespace of the action being requested.  Currently, there is no distinction between no namespace and all namespaces\n\t// \"\" (empty) is defaulted for LocalSubjectAccessReviews\n\t// \"\" (empty) is empty for cluster-scoped resources\n\t// \"\" (empty) means \"all\" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview\n\t// +optional\n\tNamespace string `json:\"namespace,omitempty\" protobuf:\"bytes,1,opt,name=namespace\"`\n\t// Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy.  \"*\" means all.\n\t// +optional\n\tVerb string `json:\"verb,omitempty\" protobuf:\"bytes,2,opt,name=verb\"`\n\t// Group is the API Group of the Resource.  \"*\" means all.\n\t// +optional\n\tGroup string `json:\"group,omitempty\" protobuf:\"bytes,3,opt,name=group\"`\n\t// Version is the API Version of the Resource.  \"*\" means all.\n\t// +optional\n\tVersion string `json:\"version,omitempty\" protobuf:\"bytes,4,opt,name=version\"`\n\t// Resource is one of the existing resource types.  \"*\" means all.\n\t// +optional\n\tResource string `json:\"resource,omitempty\" protobuf:\"bytes,5,opt,name=resource\"`\n\t// Subresource is one of the existing resource types.  \"\" means none.\n\t// +optional\n\tSubresource string `json:\"subresource,omitempty\" protobuf:\"bytes,6,opt,name=subresource\"`\n\t// Name is the name of the resource being requested for a \"get\" or deleted for a \"delete\". \"\" (empty) means all.\n\t// +optional\n\tName string `json:\"name,omitempty\" protobuf:\"bytes,7,opt,name=name\"`\n\t// fieldSelector describes the limitation on access based on field.  It can only limit access, not broaden it.\n\t//\n\t// This field  is alpha-level. To use this field, you must enable the\n\t// `AuthorizeWithSelectors` feature gate (disabled by default).\n\t// +optional\n\tFieldSelector *FieldSelectorAttributes `json:\"fieldSelector,omitempty\" protobuf:\"bytes,8,opt,name=fieldSelector\"`\n\t// labelSelector describes the limitation on access based on labels.  It can only limit access, not broaden it.\n\t//\n\t// This field  is alpha-level. To use this field, you must enable the\n\t// `AuthorizeWithSelectors` feature gate (disabled by default).\n\t// +optional\n\tLabelSelector *LabelSelectorAttributes `json:\"labelSelector,omitempty\" protobuf:\"bytes,9,opt,name=labelSelector\"`\n}\n\n// LabelSelectorAttributes indicates a label limited access.\n// Webhook authors are encouraged to\n// * ensure rawSelector and requirements are not both set\n// * consider the requirements field if set\n// * not try to parse or consider the rawSelector field if set. This is to avoid another CVE-2022-2880 (i.e. getting different systems to agree on how exactly to parse a query is not something we want), see https://www.oxeye.io/resources/golang-parameter-smuggling-attack for more details.\n// For the *SubjectAccessReview endpoints of the kube-apiserver:\n// * If rawSelector is empty and requirements are empty, the request is not limited.\n// * If rawSelector is present and requirements are empty, the rawSelector will be parsed and limited if the parsing succeeds.\n// * If rawSelector is empty and requirements are present, the requirements should be honored\n// * If rawSelector is present and requirements are present, the request is invalid.\ntype LabelSelectorAttributes struct {\n\t// rawSelector is the serialization of a field selector that would be included in a query parameter.\n\t// Webhook implementations are encouraged to ignore rawSelector.\n\t// The kube-apiserver's *SubjectAccessReview will parse the rawSelector as long as the requirements are not present.\n\t// +optional\n\tRawSelector string `json:\"rawSelector,omitempty\" protobuf:\"bytes,1,opt,name=rawSelector\"`\n\n\t// requirements is the parsed interpretation of a label selector.\n\t// All requirements must be met for a resource instance to match the selector.\n\t// Webhook implementations should handle requirements, but how to handle them is up to the webhook.\n\t// Since requirements can only limit the request, it is safe to authorize as unlimited request if the requirements\n\t// are not understood.\n\t// +optional\n\t// +listType=atomic\n\tRequirements []metav1.LabelSelectorRequirement `json:\"requirements,omitempty\" protobuf:\"bytes,2,rep,name=requirements\"`\n}\n\n// FieldSelectorAttributes indicates a field limited access.\n// Webhook authors are encouraged to\n// * ensure rawSelector and requirements are not both set\n// * consider the requirements field if set\n// * not try to parse or consider the rawSelector field if set. This is to avoid another CVE-2022-2880 (i.e. getting different systems to agree on how exactly to parse a query is not something we want), see https://www.oxeye.io/resources/golang-parameter-smuggling-attack for more details.\n// For the *SubjectAccessReview endpoints of the kube-apiserver:\n// * If rawSelector is empty and requirements are empty, the request is not limited.\n// * If rawSelector is present and requirements are empty, the rawSelector will be parsed and limited if the parsing succeeds.\n// * If rawSelector is empty and requirements are present, the requirements should be honored\n// * If rawSelector is present and requirements are present, the request is invalid.\ntype FieldSelectorAttributes struct {\n\t// rawSelector is the serialization of a field selector that would be included in a query parameter.\n\t// Webhook implementations are encouraged to ignore rawSelector.\n\t// The kube-apiserver's *SubjectAccessReview will parse the rawSelector as long as the requirements are not present.\n\t// +optional\n\tRawSelector string `json:\"rawSelector,omitempty\" protobuf:\"bytes,1,opt,name=rawSelector\"`\n\n\t// requirements is the parsed interpretation of a field selector.\n\t// All requirements must be met for a resource instance to match the selector.\n\t// Webhook implementations should handle requirements, but how to handle them is up to the webhook.\n\t// Since requirements can only limit the request, it is safe to authorize as unlimited request if the requirements\n\t// are not understood.\n\t// +optional\n\t// +listType=atomic\n\tRequirements []metav1.FieldSelectorRequirement `json:\"requirements,omitempty\" protobuf:\"bytes,2,rep,name=requirements\"`\n}\n\n// NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface\ntype NonResourceAttributes struct {\n\t// Path is the URL path of the request\n\t// +optional\n\tPath string `json:\"path,omitempty\" protobuf:\"bytes,1,opt,name=path\"`\n\t// Verb is the standard HTTP verb\n\t// +optional\n\tVerb string `json:\"verb,omitempty\" protobuf:\"bytes,2,opt,name=verb\"`\n}\n\n// SubjectAccessReviewSpec is a description of the access request.  Exactly one of ResourceAuthorizationAttributes\n// and NonResourceAuthorizationAttributes must be set\ntype SubjectAccessReviewSpec struct {\n\t// ResourceAuthorizationAttributes describes information for a resource access request\n\t// +optional\n\tResourceAttributes *ResourceAttributes `json:\"resourceAttributes,omitempty\" protobuf:\"bytes,1,opt,name=resourceAttributes\"`\n\t// NonResourceAttributes describes information for a non-resource access request\n\t// +optional\n\tNonResourceAttributes *NonResourceAttributes `json:\"nonResourceAttributes,omitempty\" protobuf:\"bytes,2,opt,name=nonResourceAttributes\"`\n\n\t// User is the user you're testing for.\n\t// If you specify \"User\" but not \"Groups\", then is it interpreted as \"What if User were not a member of any groups\n\t// +optional\n\tUser string `json:\"user,omitempty\" protobuf:\"bytes,3,opt,name=user\"`\n\t// Groups is the groups you're testing for.\n\t// +optional\n\t// +listType=atomic\n\tGroups []string `json:\"groups,omitempty\" protobuf:\"bytes,4,rep,name=groups\"`\n\t// Extra corresponds to the user.Info.GetExtra() method from the authenticator.  Since that is input to the authorizer\n\t// it needs a reflection here.\n\t// +optional\n\tExtra map[string]ExtraValue `json:\"extra,omitempty\" protobuf:\"bytes,5,rep,name=extra\"`\n\t// UID information about the requesting user.\n\t// +optional\n\tUID string `json:\"uid,omitempty\" protobuf:\"bytes,6,opt,name=uid\"`\n}\n\n// ExtraValue masks the value so protobuf can generate\n// +protobuf.nullable=true\n// +protobuf.options.(gogoproto.goproto_stringer)=false\ntype ExtraValue []string\n\nfunc (t ExtraValue) String() string {\n\treturn fmt.Sprintf(\"%v\", []string(t))\n}\n\n// SelfSubjectAccessReviewSpec is a description of the access request.  Exactly one of ResourceAuthorizationAttributes\n// and NonResourceAuthorizationAttributes must be set\ntype SelfSubjectAccessReviewSpec struct {\n\t// ResourceAuthorizationAttributes describes information for a resource access request\n\t// +optional\n\tResourceAttributes *ResourceAttributes `json:\"resourceAttributes,omitempty\" protobuf:\"bytes,1,opt,name=resourceAttributes\"`\n\t// NonResourceAttributes describes information for a non-resource access request\n\t// +optional\n\tNonResourceAttributes *NonResourceAttributes `json:\"nonResourceAttributes,omitempty\" protobuf:\"bytes,2,opt,name=nonResourceAttributes\"`\n}\n\n// SubjectAccessReviewStatus\ntype SubjectAccessReviewStatus struct {\n\t// Allowed is required. True if the action would be allowed, false otherwise.\n\tAllowed bool `json:\"allowed\" protobuf:\"varint,1,opt,name=allowed\"`\n\t// Denied is optional. True if the action would be denied, otherwise\n\t// false. If both allowed is false and denied is false, then the\n\t// authorizer has no opinion on whether to authorize the action. Denied\n\t// may not be true if Allowed is true.\n\t// +optional\n\tDenied bool `json:\"denied,omitempty\" protobuf:\"varint,4,opt,name=denied\"`\n\t// Reason is optional.  It indicates why a request was allowed or denied.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,2,opt,name=reason\"`\n\t// EvaluationError is an indication that some error occurred during the authorization check.\n\t// It is entirely possible to get an error and be able to continue determine authorization status in spite of it.\n\t// For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request.\n\t// +optional\n\tEvaluationError string `json:\"evaluationError,omitempty\" protobuf:\"bytes,3,opt,name=evaluationError\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +genclient:onlyVerbs=create\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.19\n\n// SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace.\n// The returned list of actions may be incomplete depending on the server's authorization mode,\n// and any errors experienced during the evaluation. SelfSubjectRulesReview should be used by UIs to show/hide actions,\n// or to quickly let an end user reason about their permissions. It should NOT Be used by external systems to\n// drive authorization decisions as this raises confused deputy, cache lifetime/revocation, and correctness concerns.\n// SubjectAccessReview, and LocalAccessReview are the correct way to defer authorization decisions to the API server.\ntype SelfSubjectRulesReview struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec holds information about the request being evaluated.\n\tSpec SelfSubjectRulesReviewSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status is filled in by the server and indicates the set of actions a user can perform.\n\t// +optional\n\tStatus SubjectRulesReviewStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// SelfSubjectRulesReviewSpec defines the specification for SelfSubjectRulesReview.\ntype SelfSubjectRulesReviewSpec struct {\n\t// Namespace to evaluate rules for. Required.\n\tNamespace string `json:\"namespace,omitempty\" protobuf:\"bytes,1,opt,name=namespace\"`\n}\n\n// SubjectRulesReviewStatus contains the result of a rules check. This check can be incomplete depending on\n// the set of authorizers the server is configured with and any errors experienced during evaluation.\n// Because authorization rules are additive, if a rule appears in a list it's safe to assume the subject has that permission,\n// even if that list is incomplete.\ntype SubjectRulesReviewStatus struct {\n\t// ResourceRules is the list of actions the subject is allowed to perform on resources.\n\t// The list ordering isn't significant, may contain duplicates, and possibly be incomplete.\n\t// +listType=atomic\n\tResourceRules []ResourceRule `json:\"resourceRules\" protobuf:\"bytes,1,rep,name=resourceRules\"`\n\t// NonResourceRules is the list of actions the subject is allowed to perform on non-resources.\n\t// The list ordering isn't significant, may contain duplicates, and possibly be incomplete.\n\t// +listType=atomic\n\tNonResourceRules []NonResourceRule `json:\"nonResourceRules\" protobuf:\"bytes,2,rep,name=nonResourceRules\"`\n\t// Incomplete is true when the rules returned by this call are incomplete. This is most commonly\n\t// encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation.\n\tIncomplete bool `json:\"incomplete\" protobuf:\"bytes,3,rep,name=incomplete\"`\n\t// EvaluationError can appear in combination with Rules. It indicates an error occurred during\n\t// rule evaluation, such as an authorizer that doesn't support rule evaluation, and that\n\t// ResourceRules and/or NonResourceRules may be incomplete.\n\t// +optional\n\tEvaluationError string `json:\"evaluationError,omitempty\" protobuf:\"bytes,4,opt,name=evaluationError\"`\n}\n\n// ResourceRule is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant,\n// may contain duplicates, and possibly be incomplete.\ntype ResourceRule struct {\n\t// Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy.  \"*\" means all.\n\t// +listType=atomic\n\tVerbs []string `json:\"verbs\" protobuf:\"bytes,1,rep,name=verbs\"`\n\n\t// APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of\n\t// the enumerated resources in any API group will be allowed.  \"*\" means all.\n\t// +optional\n\t// +listType=atomic\n\tAPIGroups []string `json:\"apiGroups,omitempty\" protobuf:\"bytes,2,rep,name=apiGroups\"`\n\t// Resources is a list of resources this rule applies to.  \"*\" means all in the specified apiGroups.\n\t//  \"*/foo\" represents the subresource 'foo' for all resources in the specified apiGroups.\n\t// +optional\n\t// +listType=atomic\n\tResources []string `json:\"resources,omitempty\" protobuf:\"bytes,3,rep,name=resources\"`\n\t// ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.  \"*\" means all.\n\t// +optional\n\t// +listType=atomic\n\tResourceNames []string `json:\"resourceNames,omitempty\" protobuf:\"bytes,4,rep,name=resourceNames\"`\n}\n\n// NonResourceRule holds information that describes a rule for the non-resource\ntype NonResourceRule struct {\n\t// Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options.  \"*\" means all.\n\t// +listType=atomic\n\tVerbs []string `json:\"verbs\" protobuf:\"bytes,1,rep,name=verbs\"`\n\n\t// NonResourceURLs is a set of partial urls that a user should have access to.  *s are allowed, but only as the full,\n\t// final step in the path.  \"*\" means all.\n\t// +optional\n\t// +listType=atomic\n\tNonResourceURLs []string `json:\"nonResourceURLs,omitempty\" protobuf:\"bytes,2,rep,name=nonResourceURLs\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/authorization/v1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_FieldSelectorAttributes = map[string]string{\n\t\"\":             \"FieldSelectorAttributes indicates a field limited access. Webhook authors are encouraged to * ensure rawSelector and requirements are not both set * consider the requirements field if set * not try to parse or consider the rawSelector field if set. This is to avoid another CVE-2022-2880 (i.e. getting different systems to agree on how exactly to parse a query is not something we want), see https://www.oxeye.io/resources/golang-parameter-smuggling-attack for more details. For the *SubjectAccessReview endpoints of the kube-apiserver: * If rawSelector is empty and requirements are empty, the request is not limited. * If rawSelector is present and requirements are empty, the rawSelector will be parsed and limited if the parsing succeeds. * If rawSelector is empty and requirements are present, the requirements should be honored * If rawSelector is present and requirements are present, the request is invalid.\",\n\t\"rawSelector\":  \"rawSelector is the serialization of a field selector that would be included in a query parameter. Webhook implementations are encouraged to ignore rawSelector. The kube-apiserver's *SubjectAccessReview will parse the rawSelector as long as the requirements are not present.\",\n\t\"requirements\": \"requirements is the parsed interpretation of a field selector. All requirements must be met for a resource instance to match the selector. Webhook implementations should handle requirements, but how to handle them is up to the webhook. Since requirements can only limit the request, it is safe to authorize as unlimited request if the requirements are not understood.\",\n}\n\nfunc (FieldSelectorAttributes) SwaggerDoc() map[string]string {\n\treturn map_FieldSelectorAttributes\n}\n\nvar map_LabelSelectorAttributes = map[string]string{\n\t\"\":             \"LabelSelectorAttributes indicates a label limited access. Webhook authors are encouraged to * ensure rawSelector and requirements are not both set * consider the requirements field if set * not try to parse or consider the rawSelector field if set. This is to avoid another CVE-2022-2880 (i.e. getting different systems to agree on how exactly to parse a query is not something we want), see https://www.oxeye.io/resources/golang-parameter-smuggling-attack for more details. For the *SubjectAccessReview endpoints of the kube-apiserver: * If rawSelector is empty and requirements are empty, the request is not limited. * If rawSelector is present and requirements are empty, the rawSelector will be parsed and limited if the parsing succeeds. * If rawSelector is empty and requirements are present, the requirements should be honored * If rawSelector is present and requirements are present, the request is invalid.\",\n\t\"rawSelector\":  \"rawSelector is the serialization of a field selector that would be included in a query parameter. Webhook implementations are encouraged to ignore rawSelector. The kube-apiserver's *SubjectAccessReview will parse the rawSelector as long as the requirements are not present.\",\n\t\"requirements\": \"requirements is the parsed interpretation of a label selector. All requirements must be met for a resource instance to match the selector. Webhook implementations should handle requirements, but how to handle them is up to the webhook. Since requirements can only limit the request, it is safe to authorize as unlimited request if the requirements are not understood.\",\n}\n\nfunc (LabelSelectorAttributes) SwaggerDoc() map[string]string {\n\treturn map_LabelSelectorAttributes\n}\n\nvar map_LocalSubjectAccessReview = map[string]string{\n\t\"\":         \"LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace. Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions checking.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec holds information about the request being evaluated.  spec.namespace must be equal to the namespace you made the request against.  If empty, it is defaulted.\",\n\t\"status\":   \"Status is filled in by the server and indicates whether the request is allowed or not\",\n}\n\nfunc (LocalSubjectAccessReview) SwaggerDoc() map[string]string {\n\treturn map_LocalSubjectAccessReview\n}\n\nvar map_NonResourceAttributes = map[string]string{\n\t\"\":     \"NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface\",\n\t\"path\": \"Path is the URL path of the request\",\n\t\"verb\": \"Verb is the standard HTTP verb\",\n}\n\nfunc (NonResourceAttributes) SwaggerDoc() map[string]string {\n\treturn map_NonResourceAttributes\n}\n\nvar map_NonResourceRule = map[string]string{\n\t\"\":                \"NonResourceRule holds information that describes a rule for the non-resource\",\n\t\"verbs\":           \"Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options.  \\\"*\\\" means all.\",\n\t\"nonResourceURLs\": \"NonResourceURLs is a set of partial urls that a user should have access to.  *s are allowed, but only as the full, final step in the path.  \\\"*\\\" means all.\",\n}\n\nfunc (NonResourceRule) SwaggerDoc() map[string]string {\n\treturn map_NonResourceRule\n}\n\nvar map_ResourceAttributes = map[string]string{\n\t\"\":              \"ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface\",\n\t\"namespace\":     \"Namespace is the namespace of the action being requested.  Currently, there is no distinction between no namespace and all namespaces \\\"\\\" (empty) is defaulted for LocalSubjectAccessReviews \\\"\\\" (empty) is empty for cluster-scoped resources \\\"\\\" (empty) means \\\"all\\\" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview\",\n\t\"verb\":          \"Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy.  \\\"*\\\" means all.\",\n\t\"group\":         \"Group is the API Group of the Resource.  \\\"*\\\" means all.\",\n\t\"version\":       \"Version is the API Version of the Resource.  \\\"*\\\" means all.\",\n\t\"resource\":      \"Resource is one of the existing resource types.  \\\"*\\\" means all.\",\n\t\"subresource\":   \"Subresource is one of the existing resource types.  \\\"\\\" means none.\",\n\t\"name\":          \"Name is the name of the resource being requested for a \\\"get\\\" or deleted for a \\\"delete\\\". \\\"\\\" (empty) means all.\",\n\t\"fieldSelector\": \"fieldSelector describes the limitation on access based on field.  It can only limit access, not broaden it.\\n\\nThis field  is alpha-level. To use this field, you must enable the `AuthorizeWithSelectors` feature gate (disabled by default).\",\n\t\"labelSelector\": \"labelSelector describes the limitation on access based on labels.  It can only limit access, not broaden it.\\n\\nThis field  is alpha-level. To use this field, you must enable the `AuthorizeWithSelectors` feature gate (disabled by default).\",\n}\n\nfunc (ResourceAttributes) SwaggerDoc() map[string]string {\n\treturn map_ResourceAttributes\n}\n\nvar map_ResourceRule = map[string]string{\n\t\"\":              \"ResourceRule is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.\",\n\t\"verbs\":         \"Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy.  \\\"*\\\" means all.\",\n\t\"apiGroups\":     \"APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed.  \\\"*\\\" means all.\",\n\t\"resources\":     \"Resources is a list of resources this rule applies to.  \\\"*\\\" means all in the specified apiGroups.\\n \\\"*/foo\\\" represents the subresource 'foo' for all resources in the specified apiGroups.\",\n\t\"resourceNames\": \"ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.  \\\"*\\\" means all.\",\n}\n\nfunc (ResourceRule) SwaggerDoc() map[string]string {\n\treturn map_ResourceRule\n}\n\nvar map_SelfSubjectAccessReview = map[string]string{\n\t\"\":         \"SelfSubjectAccessReview checks whether or the current user can perform an action.  Not filling in a spec.namespace means \\\"in all namespaces\\\".  Self is a special case, because users should always be able to check whether they can perform an action\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec holds information about the request being evaluated.  user and groups must be empty\",\n\t\"status\":   \"Status is filled in by the server and indicates whether the request is allowed or not\",\n}\n\nfunc (SelfSubjectAccessReview) SwaggerDoc() map[string]string {\n\treturn map_SelfSubjectAccessReview\n}\n\nvar map_SelfSubjectAccessReviewSpec = map[string]string{\n\t\"\":                      \"SelfSubjectAccessReviewSpec is a description of the access request.  Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set\",\n\t\"resourceAttributes\":    \"ResourceAuthorizationAttributes describes information for a resource access request\",\n\t\"nonResourceAttributes\": \"NonResourceAttributes describes information for a non-resource access request\",\n}\n\nfunc (SelfSubjectAccessReviewSpec) SwaggerDoc() map[string]string {\n\treturn map_SelfSubjectAccessReviewSpec\n}\n\nvar map_SelfSubjectRulesReview = map[string]string{\n\t\"\":         \"SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace. The returned list of actions may be incomplete depending on the server's authorization mode, and any errors experienced during the evaluation. SelfSubjectRulesReview should be used by UIs to show/hide actions, or to quickly let an end user reason about their permissions. It should NOT Be used by external systems to drive authorization decisions as this raises confused deputy, cache lifetime/revocation, and correctness concerns. SubjectAccessReview, and LocalAccessReview are the correct way to defer authorization decisions to the API server.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec holds information about the request being evaluated.\",\n\t\"status\":   \"Status is filled in by the server and indicates the set of actions a user can perform.\",\n}\n\nfunc (SelfSubjectRulesReview) SwaggerDoc() map[string]string {\n\treturn map_SelfSubjectRulesReview\n}\n\nvar map_SelfSubjectRulesReviewSpec = map[string]string{\n\t\"\":          \"SelfSubjectRulesReviewSpec defines the specification for SelfSubjectRulesReview.\",\n\t\"namespace\": \"Namespace to evaluate rules for. Required.\",\n}\n\nfunc (SelfSubjectRulesReviewSpec) SwaggerDoc() map[string]string {\n\treturn map_SelfSubjectRulesReviewSpec\n}\n\nvar map_SubjectAccessReview = map[string]string{\n\t\"\":         \"SubjectAccessReview checks whether or not a user or group can perform an action.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec holds information about the request being evaluated\",\n\t\"status\":   \"Status is filled in by the server and indicates whether the request is allowed or not\",\n}\n\nfunc (SubjectAccessReview) SwaggerDoc() map[string]string {\n\treturn map_SubjectAccessReview\n}\n\nvar map_SubjectAccessReviewSpec = map[string]string{\n\t\"\":                      \"SubjectAccessReviewSpec is a description of the access request.  Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set\",\n\t\"resourceAttributes\":    \"ResourceAuthorizationAttributes describes information for a resource access request\",\n\t\"nonResourceAttributes\": \"NonResourceAttributes describes information for a non-resource access request\",\n\t\"user\":                  \"User is the user you're testing for. If you specify \\\"User\\\" but not \\\"Groups\\\", then is it interpreted as \\\"What if User were not a member of any groups\",\n\t\"groups\":                \"Groups is the groups you're testing for.\",\n\t\"extra\":                 \"Extra corresponds to the user.Info.GetExtra() method from the authenticator.  Since that is input to the authorizer it needs a reflection here.\",\n\t\"uid\":                   \"UID information about the requesting user.\",\n}\n\nfunc (SubjectAccessReviewSpec) SwaggerDoc() map[string]string {\n\treturn map_SubjectAccessReviewSpec\n}\n\nvar map_SubjectAccessReviewStatus = map[string]string{\n\t\"\":                \"SubjectAccessReviewStatus\",\n\t\"allowed\":         \"Allowed is required. True if the action would be allowed, false otherwise.\",\n\t\"denied\":          \"Denied is optional. True if the action would be denied, otherwise false. If both allowed is false and denied is false, then the authorizer has no opinion on whether to authorize the action. Denied may not be true if Allowed is true.\",\n\t\"reason\":          \"Reason is optional.  It indicates why a request was allowed or denied.\",\n\t\"evaluationError\": \"EvaluationError is an indication that some error occurred during the authorization check. It is entirely possible to get an error and be able to continue determine authorization status in spite of it. For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request.\",\n}\n\nfunc (SubjectAccessReviewStatus) SwaggerDoc() map[string]string {\n\treturn map_SubjectAccessReviewStatus\n}\n\nvar map_SubjectRulesReviewStatus = map[string]string{\n\t\"\":                 \"SubjectRulesReviewStatus contains the result of a rules check. This check can be incomplete depending on the set of authorizers the server is configured with and any errors experienced during evaluation. Because authorization rules are additive, if a rule appears in a list it's safe to assume the subject has that permission, even if that list is incomplete.\",\n\t\"resourceRules\":    \"ResourceRules is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.\",\n\t\"nonResourceRules\": \"NonResourceRules is the list of actions the subject is allowed to perform on non-resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.\",\n\t\"incomplete\":       \"Incomplete is true when the rules returned by this call are incomplete. This is most commonly encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation.\",\n\t\"evaluationError\":  \"EvaluationError can appear in combination with Rules. It indicates an error occurred during rule evaluation, such as an authorizer that doesn't support rule evaluation, and that ResourceRules and/or NonResourceRules may be incomplete.\",\n}\n\nfunc (SubjectRulesReviewStatus) SwaggerDoc() map[string]string {\n\treturn map_SubjectRulesReviewStatus\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/authorization/v1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in ExtraValue) DeepCopyInto(out *ExtraValue) {\n\t{\n\t\tin := &in\n\t\t*out = make(ExtraValue, len(*in))\n\t\tcopy(*out, *in)\n\t\treturn\n\t}\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtraValue.\nfunc (in ExtraValue) DeepCopy() ExtraValue {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExtraValue)\n\tin.DeepCopyInto(out)\n\treturn *out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FieldSelectorAttributes) DeepCopyInto(out *FieldSelectorAttributes) {\n\t*out = *in\n\tif in.Requirements != nil {\n\t\tin, out := &in.Requirements, &out.Requirements\n\t\t*out = make([]metav1.FieldSelectorRequirement, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FieldSelectorAttributes.\nfunc (in *FieldSelectorAttributes) DeepCopy() *FieldSelectorAttributes {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FieldSelectorAttributes)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LabelSelectorAttributes) DeepCopyInto(out *LabelSelectorAttributes) {\n\t*out = *in\n\tif in.Requirements != nil {\n\t\tin, out := &in.Requirements, &out.Requirements\n\t\t*out = make([]metav1.LabelSelectorRequirement, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LabelSelectorAttributes.\nfunc (in *LabelSelectorAttributes) DeepCopy() *LabelSelectorAttributes {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LabelSelectorAttributes)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LocalSubjectAccessReview) DeepCopyInto(out *LocalSubjectAccessReview) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tout.Status = in.Status\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LocalSubjectAccessReview.\nfunc (in *LocalSubjectAccessReview) DeepCopy() *LocalSubjectAccessReview {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LocalSubjectAccessReview)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *LocalSubjectAccessReview) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NonResourceAttributes) DeepCopyInto(out *NonResourceAttributes) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NonResourceAttributes.\nfunc (in *NonResourceAttributes) DeepCopy() *NonResourceAttributes {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NonResourceAttributes)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NonResourceRule) DeepCopyInto(out *NonResourceRule) {\n\t*out = *in\n\tif in.Verbs != nil {\n\t\tin, out := &in.Verbs, &out.Verbs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.NonResourceURLs != nil {\n\t\tin, out := &in.NonResourceURLs, &out.NonResourceURLs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NonResourceRule.\nfunc (in *NonResourceRule) DeepCopy() *NonResourceRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NonResourceRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceAttributes) DeepCopyInto(out *ResourceAttributes) {\n\t*out = *in\n\tif in.FieldSelector != nil {\n\t\tin, out := &in.FieldSelector, &out.FieldSelector\n\t\t*out = new(FieldSelectorAttributes)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.LabelSelector != nil {\n\t\tin, out := &in.LabelSelector, &out.LabelSelector\n\t\t*out = new(LabelSelectorAttributes)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceAttributes.\nfunc (in *ResourceAttributes) DeepCopy() *ResourceAttributes {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceAttributes)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceRule) DeepCopyInto(out *ResourceRule) {\n\t*out = *in\n\tif in.Verbs != nil {\n\t\tin, out := &in.Verbs, &out.Verbs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.APIGroups != nil {\n\t\tin, out := &in.APIGroups, &out.APIGroups\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Resources != nil {\n\t\tin, out := &in.Resources, &out.Resources\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ResourceNames != nil {\n\t\tin, out := &in.ResourceNames, &out.ResourceNames\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceRule.\nfunc (in *ResourceRule) DeepCopy() *ResourceRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SelfSubjectAccessReview) DeepCopyInto(out *SelfSubjectAccessReview) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tout.Status = in.Status\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SelfSubjectAccessReview.\nfunc (in *SelfSubjectAccessReview) DeepCopy() *SelfSubjectAccessReview {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SelfSubjectAccessReview)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *SelfSubjectAccessReview) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SelfSubjectAccessReviewSpec) DeepCopyInto(out *SelfSubjectAccessReviewSpec) {\n\t*out = *in\n\tif in.ResourceAttributes != nil {\n\t\tin, out := &in.ResourceAttributes, &out.ResourceAttributes\n\t\t*out = new(ResourceAttributes)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.NonResourceAttributes != nil {\n\t\tin, out := &in.NonResourceAttributes, &out.NonResourceAttributes\n\t\t*out = new(NonResourceAttributes)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SelfSubjectAccessReviewSpec.\nfunc (in *SelfSubjectAccessReviewSpec) DeepCopy() *SelfSubjectAccessReviewSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SelfSubjectAccessReviewSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SelfSubjectRulesReview) DeepCopyInto(out *SelfSubjectRulesReview) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tout.Spec = in.Spec\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SelfSubjectRulesReview.\nfunc (in *SelfSubjectRulesReview) DeepCopy() *SelfSubjectRulesReview {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SelfSubjectRulesReview)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *SelfSubjectRulesReview) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SelfSubjectRulesReviewSpec) DeepCopyInto(out *SelfSubjectRulesReviewSpec) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SelfSubjectRulesReviewSpec.\nfunc (in *SelfSubjectRulesReviewSpec) DeepCopy() *SelfSubjectRulesReviewSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SelfSubjectRulesReviewSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SubjectAccessReview) DeepCopyInto(out *SubjectAccessReview) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tout.Status = in.Status\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubjectAccessReview.\nfunc (in *SubjectAccessReview) DeepCopy() *SubjectAccessReview {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SubjectAccessReview)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *SubjectAccessReview) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SubjectAccessReviewSpec) DeepCopyInto(out *SubjectAccessReviewSpec) {\n\t*out = *in\n\tif in.ResourceAttributes != nil {\n\t\tin, out := &in.ResourceAttributes, &out.ResourceAttributes\n\t\t*out = new(ResourceAttributes)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.NonResourceAttributes != nil {\n\t\tin, out := &in.NonResourceAttributes, &out.NonResourceAttributes\n\t\t*out = new(NonResourceAttributes)\n\t\t**out = **in\n\t}\n\tif in.Groups != nil {\n\t\tin, out := &in.Groups, &out.Groups\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Extra != nil {\n\t\tin, out := &in.Extra, &out.Extra\n\t\t*out = make(map[string]ExtraValue, len(*in))\n\t\tfor key, val := range *in {\n\t\t\tvar outVal []string\n\t\t\tif val == nil {\n\t\t\t\t(*out)[key] = nil\n\t\t\t} else {\n\t\t\t\tin, out := &val, &outVal\n\t\t\t\t*out = make(ExtraValue, len(*in))\n\t\t\t\tcopy(*out, *in)\n\t\t\t}\n\t\t\t(*out)[key] = outVal\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubjectAccessReviewSpec.\nfunc (in *SubjectAccessReviewSpec) DeepCopy() *SubjectAccessReviewSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SubjectAccessReviewSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SubjectAccessReviewStatus) DeepCopyInto(out *SubjectAccessReviewStatus) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubjectAccessReviewStatus.\nfunc (in *SubjectAccessReviewStatus) DeepCopy() *SubjectAccessReviewStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SubjectAccessReviewStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SubjectRulesReviewStatus) DeepCopyInto(out *SubjectRulesReviewStatus) {\n\t*out = *in\n\tif in.ResourceRules != nil {\n\t\tin, out := &in.ResourceRules, &out.ResourceRules\n\t\t*out = make([]ResourceRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.NonResourceRules != nil {\n\t\tin, out := &in.NonResourceRules, &out.NonResourceRules\n\t\t*out = make([]NonResourceRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubjectRulesReviewStatus.\nfunc (in *SubjectRulesReviewStatus) DeepCopy() *SubjectRulesReviewStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SubjectRulesReviewStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/authorization/v1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *LocalSubjectAccessReview) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *SelfSubjectAccessReview) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *SelfSubjectRulesReview) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *SubjectAccessReview) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 6\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/authorization/v1beta1/doc.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\n// +groupName=authorization.k8s.io\n\npackage v1beta1 // import \"k8s.io/api/authorization/v1beta1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/authorization/v1beta1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/authorization/v1beta1/generated.proto\n\npackage v1beta1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\tv11 \"k8s.io/api/authorization/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *ExtraValue) Reset()      { *m = ExtraValue{} }\nfunc (*ExtraValue) ProtoMessage() {}\nfunc (*ExtraValue) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_8eab727787743457, []int{0}\n}\nfunc (m *ExtraValue) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ExtraValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ExtraValue) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ExtraValue.Merge(m, src)\n}\nfunc (m *ExtraValue) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ExtraValue) XXX_DiscardUnknown() {\n\txxx_messageInfo_ExtraValue.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ExtraValue proto.InternalMessageInfo\n\nfunc (m *LocalSubjectAccessReview) Reset()      { *m = LocalSubjectAccessReview{} }\nfunc (*LocalSubjectAccessReview) ProtoMessage() {}\nfunc (*LocalSubjectAccessReview) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_8eab727787743457, []int{1}\n}\nfunc (m *LocalSubjectAccessReview) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LocalSubjectAccessReview) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LocalSubjectAccessReview) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LocalSubjectAccessReview.Merge(m, src)\n}\nfunc (m *LocalSubjectAccessReview) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LocalSubjectAccessReview) XXX_DiscardUnknown() {\n\txxx_messageInfo_LocalSubjectAccessReview.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LocalSubjectAccessReview proto.InternalMessageInfo\n\nfunc (m *NonResourceAttributes) Reset()      { *m = NonResourceAttributes{} }\nfunc (*NonResourceAttributes) ProtoMessage() {}\nfunc (*NonResourceAttributes) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_8eab727787743457, []int{2}\n}\nfunc (m *NonResourceAttributes) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NonResourceAttributes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NonResourceAttributes) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NonResourceAttributes.Merge(m, src)\n}\nfunc (m *NonResourceAttributes) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NonResourceAttributes) XXX_DiscardUnknown() {\n\txxx_messageInfo_NonResourceAttributes.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NonResourceAttributes proto.InternalMessageInfo\n\nfunc (m *NonResourceRule) Reset()      { *m = NonResourceRule{} }\nfunc (*NonResourceRule) ProtoMessage() {}\nfunc (*NonResourceRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_8eab727787743457, []int{3}\n}\nfunc (m *NonResourceRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NonResourceRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NonResourceRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NonResourceRule.Merge(m, src)\n}\nfunc (m *NonResourceRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NonResourceRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_NonResourceRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NonResourceRule proto.InternalMessageInfo\n\nfunc (m *ResourceAttributes) Reset()      { *m = ResourceAttributes{} }\nfunc (*ResourceAttributes) ProtoMessage() {}\nfunc (*ResourceAttributes) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_8eab727787743457, []int{4}\n}\nfunc (m *ResourceAttributes) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceAttributes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceAttributes) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceAttributes.Merge(m, src)\n}\nfunc (m *ResourceAttributes) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceAttributes) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceAttributes.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceAttributes proto.InternalMessageInfo\n\nfunc (m *ResourceRule) Reset()      { *m = ResourceRule{} }\nfunc (*ResourceRule) ProtoMessage() {}\nfunc (*ResourceRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_8eab727787743457, []int{5}\n}\nfunc (m *ResourceRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceRule.Merge(m, src)\n}\nfunc (m *ResourceRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceRule proto.InternalMessageInfo\n\nfunc (m *SelfSubjectAccessReview) Reset()      { *m = SelfSubjectAccessReview{} }\nfunc (*SelfSubjectAccessReview) ProtoMessage() {}\nfunc (*SelfSubjectAccessReview) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_8eab727787743457, []int{6}\n}\nfunc (m *SelfSubjectAccessReview) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SelfSubjectAccessReview) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SelfSubjectAccessReview) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SelfSubjectAccessReview.Merge(m, src)\n}\nfunc (m *SelfSubjectAccessReview) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SelfSubjectAccessReview) XXX_DiscardUnknown() {\n\txxx_messageInfo_SelfSubjectAccessReview.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SelfSubjectAccessReview proto.InternalMessageInfo\n\nfunc (m *SelfSubjectAccessReviewSpec) Reset()      { *m = SelfSubjectAccessReviewSpec{} }\nfunc (*SelfSubjectAccessReviewSpec) ProtoMessage() {}\nfunc (*SelfSubjectAccessReviewSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_8eab727787743457, []int{7}\n}\nfunc (m *SelfSubjectAccessReviewSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SelfSubjectAccessReviewSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SelfSubjectAccessReviewSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SelfSubjectAccessReviewSpec.Merge(m, src)\n}\nfunc (m *SelfSubjectAccessReviewSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SelfSubjectAccessReviewSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_SelfSubjectAccessReviewSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SelfSubjectAccessReviewSpec proto.InternalMessageInfo\n\nfunc (m *SelfSubjectRulesReview) Reset()      { *m = SelfSubjectRulesReview{} }\nfunc (*SelfSubjectRulesReview) ProtoMessage() {}\nfunc (*SelfSubjectRulesReview) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_8eab727787743457, []int{8}\n}\nfunc (m *SelfSubjectRulesReview) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SelfSubjectRulesReview) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SelfSubjectRulesReview) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SelfSubjectRulesReview.Merge(m, src)\n}\nfunc (m *SelfSubjectRulesReview) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SelfSubjectRulesReview) XXX_DiscardUnknown() {\n\txxx_messageInfo_SelfSubjectRulesReview.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SelfSubjectRulesReview proto.InternalMessageInfo\n\nfunc (m *SelfSubjectRulesReviewSpec) Reset()      { *m = SelfSubjectRulesReviewSpec{} }\nfunc (*SelfSubjectRulesReviewSpec) ProtoMessage() {}\nfunc (*SelfSubjectRulesReviewSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_8eab727787743457, []int{9}\n}\nfunc (m *SelfSubjectRulesReviewSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SelfSubjectRulesReviewSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SelfSubjectRulesReviewSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SelfSubjectRulesReviewSpec.Merge(m, src)\n}\nfunc (m *SelfSubjectRulesReviewSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SelfSubjectRulesReviewSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_SelfSubjectRulesReviewSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SelfSubjectRulesReviewSpec proto.InternalMessageInfo\n\nfunc (m *SubjectAccessReview) Reset()      { *m = SubjectAccessReview{} }\nfunc (*SubjectAccessReview) ProtoMessage() {}\nfunc (*SubjectAccessReview) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_8eab727787743457, []int{10}\n}\nfunc (m *SubjectAccessReview) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SubjectAccessReview) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SubjectAccessReview) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SubjectAccessReview.Merge(m, src)\n}\nfunc (m *SubjectAccessReview) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SubjectAccessReview) XXX_DiscardUnknown() {\n\txxx_messageInfo_SubjectAccessReview.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SubjectAccessReview proto.InternalMessageInfo\n\nfunc (m *SubjectAccessReviewSpec) Reset()      { *m = SubjectAccessReviewSpec{} }\nfunc (*SubjectAccessReviewSpec) ProtoMessage() {}\nfunc (*SubjectAccessReviewSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_8eab727787743457, []int{11}\n}\nfunc (m *SubjectAccessReviewSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SubjectAccessReviewSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SubjectAccessReviewSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SubjectAccessReviewSpec.Merge(m, src)\n}\nfunc (m *SubjectAccessReviewSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SubjectAccessReviewSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_SubjectAccessReviewSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SubjectAccessReviewSpec proto.InternalMessageInfo\n\nfunc (m *SubjectAccessReviewStatus) Reset()      { *m = SubjectAccessReviewStatus{} }\nfunc (*SubjectAccessReviewStatus) ProtoMessage() {}\nfunc (*SubjectAccessReviewStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_8eab727787743457, []int{12}\n}\nfunc (m *SubjectAccessReviewStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SubjectAccessReviewStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SubjectAccessReviewStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SubjectAccessReviewStatus.Merge(m, src)\n}\nfunc (m *SubjectAccessReviewStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SubjectAccessReviewStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_SubjectAccessReviewStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SubjectAccessReviewStatus proto.InternalMessageInfo\n\nfunc (m *SubjectRulesReviewStatus) Reset()      { *m = SubjectRulesReviewStatus{} }\nfunc (*SubjectRulesReviewStatus) ProtoMessage() {}\nfunc (*SubjectRulesReviewStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_8eab727787743457, []int{13}\n}\nfunc (m *SubjectRulesReviewStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SubjectRulesReviewStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SubjectRulesReviewStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SubjectRulesReviewStatus.Merge(m, src)\n}\nfunc (m *SubjectRulesReviewStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SubjectRulesReviewStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_SubjectRulesReviewStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SubjectRulesReviewStatus proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*ExtraValue)(nil), \"k8s.io.api.authorization.v1beta1.ExtraValue\")\n\tproto.RegisterType((*LocalSubjectAccessReview)(nil), \"k8s.io.api.authorization.v1beta1.LocalSubjectAccessReview\")\n\tproto.RegisterType((*NonResourceAttributes)(nil), \"k8s.io.api.authorization.v1beta1.NonResourceAttributes\")\n\tproto.RegisterType((*NonResourceRule)(nil), \"k8s.io.api.authorization.v1beta1.NonResourceRule\")\n\tproto.RegisterType((*ResourceAttributes)(nil), \"k8s.io.api.authorization.v1beta1.ResourceAttributes\")\n\tproto.RegisterType((*ResourceRule)(nil), \"k8s.io.api.authorization.v1beta1.ResourceRule\")\n\tproto.RegisterType((*SelfSubjectAccessReview)(nil), \"k8s.io.api.authorization.v1beta1.SelfSubjectAccessReview\")\n\tproto.RegisterType((*SelfSubjectAccessReviewSpec)(nil), \"k8s.io.api.authorization.v1beta1.SelfSubjectAccessReviewSpec\")\n\tproto.RegisterType((*SelfSubjectRulesReview)(nil), \"k8s.io.api.authorization.v1beta1.SelfSubjectRulesReview\")\n\tproto.RegisterType((*SelfSubjectRulesReviewSpec)(nil), \"k8s.io.api.authorization.v1beta1.SelfSubjectRulesReviewSpec\")\n\tproto.RegisterType((*SubjectAccessReview)(nil), \"k8s.io.api.authorization.v1beta1.SubjectAccessReview\")\n\tproto.RegisterType((*SubjectAccessReviewSpec)(nil), \"k8s.io.api.authorization.v1beta1.SubjectAccessReviewSpec\")\n\tproto.RegisterMapType((map[string]ExtraValue)(nil), \"k8s.io.api.authorization.v1beta1.SubjectAccessReviewSpec.ExtraEntry\")\n\tproto.RegisterType((*SubjectAccessReviewStatus)(nil), \"k8s.io.api.authorization.v1beta1.SubjectAccessReviewStatus\")\n\tproto.RegisterType((*SubjectRulesReviewStatus)(nil), \"k8s.io.api.authorization.v1beta1.SubjectRulesReviewStatus\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/authorization/v1beta1/generated.proto\", fileDescriptor_8eab727787743457)\n}\n\nvar fileDescriptor_8eab727787743457 = []byte{\n\t// 1192 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x58, 0x4f, 0x6f, 0xe3, 0x44,\n\t0x14, 0x8f, 0xf3, 0xa7, 0x4d, 0x26, 0x1b, 0xda, 0x9d, 0xaa, 0x5b, 0x6f, 0x11, 0x49, 0x14, 0x24,\n\t0x54, 0xb4, 0x8b, 0xb3, 0xad, 0x0a, 0x5d, 0x0a, 0x7b, 0xa8, 0xd5, 0x2e, 0xaa, 0xd4, 0x5d, 0x56,\n\t0x53, 0xb5, 0x07, 0x56, 0x02, 0x26, 0xce, 0x34, 0x31, 0x75, 0x6c, 0xe3, 0x19, 0xa7, 0x14, 0x71,\n\t0xd8, 0x23, 0x47, 0x8e, 0x1c, 0x38, 0x70, 0xe2, 0x3b, 0x70, 0x41, 0x82, 0x53, 0x8f, 0x7b, 0x2c,\n\t0x12, 0x8a, 0xa8, 0xf9, 0x10, 0x5c, 0xd1, 0x8c, 0x27, 0xb1, 0x9d, 0xba, 0x4d, 0xdb, 0x03, 0x7b,\n\t0xd9, 0x5b, 0xe6, 0xfd, 0x7e, 0xef, 0xcf, 0xbc, 0x79, 0xf3, 0xfc, 0x26, 0xe0, 0xc1, 0xe1, 0x43,\n\t0xaa, 0x99, 0x4e, 0x13, 0xbb, 0x66, 0x13, 0xfb, 0xac, 0xeb, 0x78, 0xe6, 0xb7, 0x98, 0x99, 0x8e,\n\t0xdd, 0xec, 0x2f, 0xb7, 0x08, 0xc3, 0xcb, 0xcd, 0x0e, 0xb1, 0x89, 0x87, 0x19, 0x69, 0x6b, 0xae,\n\t0xe7, 0x30, 0x07, 0xd6, 0x43, 0x0d, 0x0d, 0xbb, 0xa6, 0x96, 0xd0, 0xd0, 0xa4, 0xc6, 0xe2, 0x7b,\n\t0x1d, 0x93, 0x75, 0xfd, 0x96, 0x66, 0x38, 0xbd, 0x66, 0xc7, 0xe9, 0x38, 0x4d, 0xa1, 0xd8, 0xf2,\n\t0x0f, 0xc4, 0x4a, 0x2c, 0xc4, 0xaf, 0xd0, 0xe0, 0xe2, 0xbd, 0x4b, 0x42, 0x18, 0xf7, 0xbe, 0xb8,\n\t0x1a, 0x91, 0x7b, 0xd8, 0xe8, 0x9a, 0x36, 0xf1, 0x8e, 0x9b, 0xee, 0x61, 0x87, 0x0b, 0x68, 0xb3,\n\t0x47, 0x18, 0x4e, 0xd3, 0x6a, 0x5e, 0xa4, 0xe5, 0xf9, 0x36, 0x33, 0x7b, 0xe4, 0x9c, 0xc2, 0x07,\n\t0x93, 0x14, 0xa8, 0xd1, 0x25, 0x3d, 0x3c, 0xae, 0xd7, 0x58, 0x03, 0x60, 0xeb, 0x1b, 0xe6, 0xe1,\n\t0x7d, 0x6c, 0xf9, 0x04, 0xd6, 0x40, 0xc1, 0x64, 0xa4, 0x47, 0x55, 0xa5, 0x9e, 0x5b, 0x2a, 0xe9,\n\t0xa5, 0x60, 0x50, 0x2b, 0x6c, 0x73, 0x01, 0x0a, 0xe5, 0xeb, 0xc5, 0x1f, 0x7f, 0xae, 0x65, 0x5e,\n\t0xfc, 0x55, 0xcf, 0x34, 0x7e, 0xcb, 0x02, 0x75, 0xc7, 0x31, 0xb0, 0xb5, 0xeb, 0xb7, 0xbe, 0x22,\n\t0x06, 0xdb, 0x30, 0x0c, 0x42, 0x29, 0x22, 0x7d, 0x93, 0x1c, 0xc1, 0x2f, 0x41, 0x91, 0xef, 0xac,\n\t0x8d, 0x19, 0x56, 0x95, 0xba, 0xb2, 0x54, 0x5e, 0x79, 0xa0, 0x45, 0xa7, 0x30, 0x0a, 0x50, 0x73,\n\t0x0f, 0x3b, 0x5c, 0x40, 0x35, 0xce, 0xd6, 0xfa, 0xcb, 0xda, 0xa7, 0xc2, 0xd6, 0x13, 0xc2, 0xb0,\n\t0x0e, 0x4f, 0x06, 0xb5, 0x4c, 0x30, 0xa8, 0x81, 0x48, 0x86, 0x46, 0x56, 0xe1, 0x73, 0x90, 0xa7,\n\t0x2e, 0x31, 0xd4, 0xac, 0xb0, 0xfe, 0xa1, 0x36, 0xe9, 0x8c, 0xb5, 0x94, 0x30, 0x77, 0x5d, 0x62,\n\t0xe8, 0xb7, 0xa4, 0x9b, 0x3c, 0x5f, 0x21, 0x61, 0x14, 0x1a, 0x60, 0x8a, 0x32, 0xcc, 0x7c, 0xaa,\n\t0xe6, 0x84, 0xf9, 0x8f, 0x6e, 0x66, 0x5e, 0x98, 0xd0, 0xdf, 0x90, 0x0e, 0xa6, 0xc2, 0x35, 0x92,\n\t0xa6, 0x1b, 0xcf, 0xc1, 0xfc, 0x53, 0xc7, 0x46, 0x84, 0x3a, 0xbe, 0x67, 0x90, 0x0d, 0xc6, 0x3c,\n\t0xb3, 0xe5, 0x33, 0x42, 0x61, 0x1d, 0xe4, 0x5d, 0xcc, 0xba, 0x22, 0x71, 0xa5, 0x28, 0xbe, 0x67,\n\t0x98, 0x75, 0x91, 0x40, 0x38, 0xa3, 0x4f, 0xbc, 0x96, 0xd8, 0x7c, 0x8c, 0xb1, 0x4f, 0xbc, 0x16,\n\t0x12, 0x48, 0xe3, 0x6b, 0x30, 0x13, 0x33, 0x8e, 0x7c, 0x4b, 0x9c, 0x2d, 0x87, 0x12, 0x67, 0xcb,\n\t0x35, 0x28, 0x0a, 0xe5, 0xf0, 0x11, 0x98, 0xb1, 0x23, 0x9d, 0x3d, 0xb4, 0x43, 0xd5, 0xac, 0xa0,\n\t0xce, 0x05, 0x83, 0x5a, 0xdc, 0x1c, 0x87, 0xd0, 0x38, 0xb7, 0xf1, 0x53, 0x1e, 0xc0, 0x94, 0xdd,\n\t0x34, 0x41, 0xc9, 0xc6, 0x3d, 0x42, 0x5d, 0x6c, 0x10, 0xb9, 0xa5, 0xdb, 0x32, 0xe0, 0xd2, 0xd3,\n\t0x21, 0x80, 0x22, 0xce, 0xe4, 0xcd, 0xc1, 0xb7, 0x41, 0xa1, 0xe3, 0x39, 0xbe, 0x2b, 0x4e, 0xa7,\n\t0xa4, 0x57, 0x24, 0xa5, 0xf0, 0x09, 0x17, 0xa2, 0x10, 0x83, 0xef, 0x82, 0xe9, 0x3e, 0xf1, 0xa8,\n\t0xe9, 0xd8, 0x6a, 0x5e, 0xd0, 0x66, 0x24, 0x6d, 0x7a, 0x3f, 0x14, 0xa3, 0x21, 0x0e, 0xef, 0x83,\n\t0xa2, 0x27, 0x03, 0x57, 0x0b, 0x82, 0x3b, 0x2b, 0xb9, 0xc5, 0x51, 0x06, 0x47, 0x0c, 0xf8, 0x3e,\n\t0x28, 0x53, 0xbf, 0x35, 0x52, 0x98, 0x12, 0x0a, 0x73, 0x52, 0xa1, 0xbc, 0x1b, 0x41, 0x28, 0xce,\n\t0xe3, 0xdb, 0xe2, 0x7b, 0x54, 0xa7, 0x93, 0xdb, 0xe2, 0x29, 0x40, 0x02, 0x81, 0x3d, 0x50, 0x39,\n\t0x30, 0x89, 0xd5, 0xde, 0x25, 0x16, 0x31, 0x98, 0xe3, 0xa9, 0x45, 0x51, 0x7c, 0xab, 0x97, 0x15,\n\t0x9f, 0xf6, 0x38, 0xae, 0x11, 0xa5, 0x5d, 0xbf, 0x1d, 0x0c, 0x6a, 0x95, 0x04, 0x88, 0x92, 0xd6,\n\t0xb9, 0x3b, 0x0b, 0xb7, 0x88, 0x35, 0x72, 0x57, 0xba, 0x82, 0xbb, 0x9d, 0xb8, 0xc6, 0xb8, 0xbb,\n\t0x04, 0x88, 0x92, 0xd6, 0x1b, 0x7f, 0x28, 0xe0, 0xd6, 0xf5, 0xea, 0xf1, 0x1e, 0x28, 0x61, 0xd7,\n\t0x14, 0x87, 0x3a, 0xac, 0xc4, 0x0a, 0xaf, 0x9a, 0x8d, 0x67, 0xdb, 0xa1, 0x10, 0x45, 0x38, 0x27,\n\t0x0f, 0x53, 0xcd, 0x6f, 0xed, 0x88, 0x3c, 0x74, 0x49, 0x51, 0x84, 0xc3, 0x35, 0x50, 0x19, 0x2e,\n\t0x44, 0x09, 0xaa, 0x79, 0xa1, 0x20, 0x36, 0x81, 0xe2, 0x00, 0x4a, 0xf2, 0x1a, 0xbf, 0x67, 0xc1,\n\t0xc2, 0x2e, 0xb1, 0x0e, 0x5e, 0x4d, 0xcf, 0xfb, 0x22, 0xd1, 0xf3, 0x1e, 0x5d, 0xa1, 0x29, 0xa5,\n\t0x87, 0xfa, 0x6a, 0xfb, 0xde, 0x2f, 0x59, 0xf0, 0xe6, 0x25, 0x81, 0xc1, 0xef, 0x00, 0xf4, 0xce,\n\t0xb5, 0x11, 0x99, 0xd1, 0xd5, 0xc9, 0x01, 0x9d, 0x6f, 0x41, 0xfa, 0x9d, 0x60, 0x50, 0x4b, 0x69,\n\t0x4d, 0x28, 0xc5, 0x0f, 0xfc, 0x5e, 0x01, 0xf3, 0x76, 0x5a, 0x5b, 0x96, 0x59, 0x5f, 0x9b, 0x1c,\n\t0x41, 0x6a, 0x57, 0xd7, 0xef, 0x06, 0x83, 0x5a, 0x7a, 0xc3, 0x47, 0xe9, 0x0e, 0xf9, 0x17, 0xf6,\n\t0x4e, 0x2c, 0x51, 0xfc, 0xd2, 0xfc, 0x7f, 0xb5, 0xf6, 0x79, 0xa2, 0xd6, 0x3e, 0xbe, 0x56, 0xad,\n\t0xc5, 0x22, 0xbd, 0xb0, 0xd4, 0x5a, 0x63, 0xa5, 0xb6, 0x7e, 0xe5, 0x52, 0x8b, 0x5b, 0xbf, 0xbc,\n\t0xd2, 0x9e, 0x80, 0xc5, 0x8b, 0xa3, 0xba, 0xf6, 0x87, 0xa9, 0xf1, 0x6b, 0x16, 0xcc, 0xbd, 0x1e,\n\t0x76, 0x6e, 0x76, 0xe9, 0x4f, 0xf3, 0x60, 0xe1, 0xf5, 0x85, 0xbf, 0xfc, 0xc2, 0xf3, 0x11, 0xc1,\n\t0xa7, 0xc4, 0x93, 0x63, 0xcd, 0xe8, 0xac, 0xf6, 0x28, 0xf1, 0x90, 0x40, 0x60, 0x7d, 0x38, 0xf9,\n\t0x84, 0x1f, 0x2c, 0xc0, 0x33, 0x2d, 0xbf, 0x85, 0x72, 0xec, 0x31, 0x41, 0x81, 0xf0, 0x79, 0x5e,\n\t0x2d, 0xd4, 0x73, 0x4b, 0xe5, 0x95, 0xcd, 0x1b, 0xd7, 0x8a, 0x26, 0x9e, 0x05, 0x5b, 0x36, 0xf3,\n\t0x8e, 0xa3, 0x09, 0x4b, 0xc8, 0x50, 0xe8, 0x01, 0xbe, 0x05, 0x72, 0xbe, 0xd9, 0x96, 0x03, 0x50,\n\t0x59, 0x52, 0x72, 0x7b, 0xdb, 0x9b, 0x88, 0xcb, 0x17, 0x0f, 0xe4, 0xcb, 0x42, 0x98, 0x80, 0xb3,\n\t0x20, 0x77, 0x48, 0x8e, 0xc3, 0x7b, 0x86, 0xf8, 0x4f, 0xa8, 0x83, 0x42, 0x9f, 0x3f, 0x3a, 0x64,\n\t0x9e, 0xef, 0x4f, 0x8e, 0x34, 0x7a, 0xa8, 0xa0, 0x50, 0x75, 0x3d, 0xfb, 0x50, 0x69, 0xfc, 0xa9,\n\t0x80, 0xbb, 0x17, 0x16, 0x24, 0x1f, 0x03, 0xb1, 0x65, 0x39, 0x47, 0xa4, 0x2d, 0x7c, 0x17, 0xa3,\n\t0x31, 0x70, 0x23, 0x14, 0xa3, 0x21, 0x0e, 0xdf, 0x01, 0x53, 0x6d, 0x62, 0x9b, 0xa4, 0x2d, 0x06,\n\t0xc6, 0x62, 0x54, 0xcb, 0x9b, 0x42, 0x8a, 0x24, 0xca, 0x79, 0x1e, 0xc1, 0xd4, 0xb1, 0xe5, 0x88,\n\t0x3a, 0xe2, 0x21, 0x21, 0x45, 0x12, 0x85, 0x1b, 0x60, 0x86, 0xf0, 0x30, 0xc5, 0x26, 0xb6, 0x3c,\n\t0xcf, 0x19, 0x9e, 0xec, 0x82, 0x54, 0x98, 0xd9, 0x4a, 0xc2, 0x68, 0x9c, 0xdf, 0xf8, 0x37, 0x0b,\n\t0xd4, 0x8b, 0xda, 0x1e, 0x3c, 0x8c, 0xa6, 0x18, 0x01, 0x8a, 0x41, 0xaa, 0xbc, 0xa2, 0x5d, 0xfd,\n\t0xca, 0x70, 0x35, 0x7d, 0x5e, 0x46, 0x53, 0x89, 0x4b, 0x63, 0x93, 0x8f, 0x58, 0xc2, 0x23, 0x30,\n\t0x6b, 0x27, 0x1f, 0x14, 0xe1, 0x4c, 0x56, 0x5e, 0x59, 0xbe, 0xd6, 0x05, 0x11, 0x2e, 0x55, 0xe9,\n\t0x72, 0x76, 0x0c, 0xa0, 0xe8, 0x9c, 0x13, 0xb8, 0x02, 0x80, 0x69, 0x1b, 0x4e, 0xcf, 0xb5, 0x08,\n\t0x23, 0x22, 0x81, 0xc5, 0xa8, 0x5b, 0x6e, 0x8f, 0x10, 0x14, 0x63, 0xa5, 0x65, 0x3e, 0x7f, 0xbd,\n\t0xcc, 0xeb, 0x8f, 0x4f, 0xce, 0xaa, 0x99, 0x97, 0x67, 0xd5, 0xcc, 0xe9, 0x59, 0x35, 0xf3, 0x22,\n\t0xa8, 0x2a, 0x27, 0x41, 0x55, 0x79, 0x19, 0x54, 0x95, 0xd3, 0xa0, 0xaa, 0xfc, 0x1d, 0x54, 0x95,\n\t0x1f, 0xfe, 0xa9, 0x66, 0x3e, 0xab, 0x4f, 0xfa, 0x33, 0xe2, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff,\n\t0x46, 0xf7, 0xe0, 0x3d, 0xaf, 0x10, 0x00, 0x00,\n}\n\nfunc (m ExtraValue) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m ExtraValue) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m ExtraValue) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m) > 0 {\n\t\tfor iNdEx := len(m) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m[iNdEx])\n\t\t\tcopy(dAtA[i:], m[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LocalSubjectAccessReview) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LocalSubjectAccessReview) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LocalSubjectAccessReview) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NonResourceAttributes) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NonResourceAttributes) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NonResourceAttributes) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Verb)\n\tcopy(dAtA[i:], m.Verb)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verb)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Path)\n\tcopy(dAtA[i:], m.Path)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Path)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NonResourceRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NonResourceRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NonResourceRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.NonResourceURLs) > 0 {\n\t\tfor iNdEx := len(m.NonResourceURLs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.NonResourceURLs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.NonResourceURLs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.NonResourceURLs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Verbs) > 0 {\n\t\tfor iNdEx := len(m.Verbs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Verbs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Verbs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verbs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceAttributes) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceAttributes) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceAttributes) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.LabelSelector != nil {\n\t\t{\n\t\t\tsize, err := m.LabelSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x4a\n\t}\n\tif m.FieldSelector != nil {\n\t\t{\n\t\t\tsize, err := m.FieldSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x42\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x3a\n\ti -= len(m.Subresource)\n\tcopy(dAtA[i:], m.Subresource)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Subresource)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.Resource)\n\tcopy(dAtA[i:], m.Resource)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Resource)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Version)\n\tcopy(dAtA[i:], m.Version)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Version)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Group)\n\tcopy(dAtA[i:], m.Group)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Group)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Verb)\n\tcopy(dAtA[i:], m.Verb)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verb)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Namespace)\n\tcopy(dAtA[i:], m.Namespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ResourceNames) > 0 {\n\t\tfor iNdEx := len(m.ResourceNames) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.ResourceNames[iNdEx])\n\t\t\tcopy(dAtA[i:], m.ResourceNames[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ResourceNames[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif len(m.Resources) > 0 {\n\t\tfor iNdEx := len(m.Resources) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Resources[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Resources[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Resources[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.APIGroups) > 0 {\n\t\tfor iNdEx := len(m.APIGroups) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.APIGroups[iNdEx])\n\t\t\tcopy(dAtA[i:], m.APIGroups[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIGroups[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Verbs) > 0 {\n\t\tfor iNdEx := len(m.Verbs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Verbs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Verbs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verbs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SelfSubjectAccessReview) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SelfSubjectAccessReview) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SelfSubjectAccessReview) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SelfSubjectAccessReviewSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SelfSubjectAccessReviewSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SelfSubjectAccessReviewSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.NonResourceAttributes != nil {\n\t\t{\n\t\t\tsize, err := m.NonResourceAttributes.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.ResourceAttributes != nil {\n\t\t{\n\t\t\tsize, err := m.ResourceAttributes.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SelfSubjectRulesReview) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SelfSubjectRulesReview) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SelfSubjectRulesReview) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SelfSubjectRulesReviewSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SelfSubjectRulesReviewSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SelfSubjectRulesReviewSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Namespace)\n\tcopy(dAtA[i:], m.Namespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SubjectAccessReview) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SubjectAccessReview) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SubjectAccessReview) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SubjectAccessReviewSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SubjectAccessReviewSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SubjectAccessReviewSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.UID)\n\tcopy(dAtA[i:], m.UID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.UID)))\n\ti--\n\tdAtA[i] = 0x32\n\tif len(m.Extra) > 0 {\n\t\tkeysForExtra := make([]string, 0, len(m.Extra))\n\t\tfor k := range m.Extra {\n\t\t\tkeysForExtra = append(keysForExtra, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForExtra)\n\t\tfor iNdEx := len(keysForExtra) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Extra[string(keysForExtra[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForExtra[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForExtra[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForExtra[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\tif len(m.Groups) > 0 {\n\t\tfor iNdEx := len(m.Groups) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Groups[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Groups[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Groups[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\ti -= len(m.User)\n\tcopy(dAtA[i:], m.User)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.User)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.NonResourceAttributes != nil {\n\t\t{\n\t\t\tsize, err := m.NonResourceAttributes.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.ResourceAttributes != nil {\n\t\t{\n\t\t\tsize, err := m.ResourceAttributes.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SubjectAccessReviewStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SubjectAccessReviewStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SubjectAccessReviewStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti--\n\tif m.Denied {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x20\n\ti -= len(m.EvaluationError)\n\tcopy(dAtA[i:], m.EvaluationError)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.EvaluationError)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x12\n\ti--\n\tif m.Allowed {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SubjectRulesReviewStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SubjectRulesReviewStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SubjectRulesReviewStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.EvaluationError)\n\tcopy(dAtA[i:], m.EvaluationError)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.EvaluationError)))\n\ti--\n\tdAtA[i] = 0x22\n\ti--\n\tif m.Incomplete {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x18\n\tif len(m.NonResourceRules) > 0 {\n\t\tfor iNdEx := len(m.NonResourceRules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.NonResourceRules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.ResourceRules) > 0 {\n\t\tfor iNdEx := len(m.ResourceRules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ResourceRules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m ExtraValue) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m) > 0 {\n\t\tfor _, s := range m {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *LocalSubjectAccessReview) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *NonResourceAttributes) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Path)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Verb)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *NonResourceRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Verbs) > 0 {\n\t\tfor _, s := range m.Verbs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.NonResourceURLs) > 0 {\n\t\tfor _, s := range m.NonResourceURLs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ResourceAttributes) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Namespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Verb)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Group)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Version)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Resource)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Subresource)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.FieldSelector != nil {\n\t\tl = m.FieldSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.LabelSelector != nil {\n\t\tl = m.LabelSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ResourceRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Verbs) > 0 {\n\t\tfor _, s := range m.Verbs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.APIGroups) > 0 {\n\t\tfor _, s := range m.APIGroups {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Resources) > 0 {\n\t\tfor _, s := range m.Resources {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.ResourceNames) > 0 {\n\t\tfor _, s := range m.ResourceNames {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *SelfSubjectAccessReview) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *SelfSubjectAccessReviewSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.ResourceAttributes != nil {\n\t\tl = m.ResourceAttributes.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.NonResourceAttributes != nil {\n\t\tl = m.NonResourceAttributes.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *SelfSubjectRulesReview) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *SelfSubjectRulesReviewSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Namespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *SubjectAccessReview) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *SubjectAccessReviewSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.ResourceAttributes != nil {\n\t\tl = m.ResourceAttributes.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.NonResourceAttributes != nil {\n\t\tl = m.NonResourceAttributes.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.User)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Groups) > 0 {\n\t\tfor _, s := range m.Groups {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Extra) > 0 {\n\t\tfor k, v := range m.Extra {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tl = len(m.UID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *SubjectAccessReviewStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 2\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.EvaluationError)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\treturn n\n}\n\nfunc (m *SubjectRulesReviewStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.ResourceRules) > 0 {\n\t\tfor _, e := range m.ResourceRules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.NonResourceRules) > 0 {\n\t\tfor _, e := range m.NonResourceRules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tn += 2\n\tl = len(m.EvaluationError)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *LocalSubjectAccessReview) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LocalSubjectAccessReview{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"SubjectAccessReviewSpec\", \"SubjectAccessReviewSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"SubjectAccessReviewStatus\", \"SubjectAccessReviewStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NonResourceAttributes) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NonResourceAttributes{`,\n\t\t`Path:` + fmt.Sprintf(\"%v\", this.Path) + `,`,\n\t\t`Verb:` + fmt.Sprintf(\"%v\", this.Verb) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NonResourceRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NonResourceRule{`,\n\t\t`Verbs:` + fmt.Sprintf(\"%v\", this.Verbs) + `,`,\n\t\t`NonResourceURLs:` + fmt.Sprintf(\"%v\", this.NonResourceURLs) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceAttributes) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceAttributes{`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`Verb:` + fmt.Sprintf(\"%v\", this.Verb) + `,`,\n\t\t`Group:` + fmt.Sprintf(\"%v\", this.Group) + `,`,\n\t\t`Version:` + fmt.Sprintf(\"%v\", this.Version) + `,`,\n\t\t`Resource:` + fmt.Sprintf(\"%v\", this.Resource) + `,`,\n\t\t`Subresource:` + fmt.Sprintf(\"%v\", this.Subresource) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`FieldSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.FieldSelector), \"FieldSelectorAttributes\", \"v11.FieldSelectorAttributes\", 1) + `,`,\n\t\t`LabelSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.LabelSelector), \"LabelSelectorAttributes\", \"v11.LabelSelectorAttributes\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceRule{`,\n\t\t`Verbs:` + fmt.Sprintf(\"%v\", this.Verbs) + `,`,\n\t\t`APIGroups:` + fmt.Sprintf(\"%v\", this.APIGroups) + `,`,\n\t\t`Resources:` + fmt.Sprintf(\"%v\", this.Resources) + `,`,\n\t\t`ResourceNames:` + fmt.Sprintf(\"%v\", this.ResourceNames) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SelfSubjectAccessReview) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SelfSubjectAccessReview{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"SelfSubjectAccessReviewSpec\", \"SelfSubjectAccessReviewSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"SubjectAccessReviewStatus\", \"SubjectAccessReviewStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SelfSubjectAccessReviewSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SelfSubjectAccessReviewSpec{`,\n\t\t`ResourceAttributes:` + strings.Replace(this.ResourceAttributes.String(), \"ResourceAttributes\", \"ResourceAttributes\", 1) + `,`,\n\t\t`NonResourceAttributes:` + strings.Replace(this.NonResourceAttributes.String(), \"NonResourceAttributes\", \"NonResourceAttributes\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SelfSubjectRulesReview) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SelfSubjectRulesReview{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"SelfSubjectRulesReviewSpec\", \"SelfSubjectRulesReviewSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"SubjectRulesReviewStatus\", \"SubjectRulesReviewStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SelfSubjectRulesReviewSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SelfSubjectRulesReviewSpec{`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SubjectAccessReview) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SubjectAccessReview{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"SubjectAccessReviewSpec\", \"SubjectAccessReviewSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"SubjectAccessReviewStatus\", \"SubjectAccessReviewStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SubjectAccessReviewSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForExtra := make([]string, 0, len(this.Extra))\n\tfor k := range this.Extra {\n\t\tkeysForExtra = append(keysForExtra, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForExtra)\n\tmapStringForExtra := \"map[string]ExtraValue{\"\n\tfor _, k := range keysForExtra {\n\t\tmapStringForExtra += fmt.Sprintf(\"%v: %v,\", k, this.Extra[k])\n\t}\n\tmapStringForExtra += \"}\"\n\ts := strings.Join([]string{`&SubjectAccessReviewSpec{`,\n\t\t`ResourceAttributes:` + strings.Replace(this.ResourceAttributes.String(), \"ResourceAttributes\", \"ResourceAttributes\", 1) + `,`,\n\t\t`NonResourceAttributes:` + strings.Replace(this.NonResourceAttributes.String(), \"NonResourceAttributes\", \"NonResourceAttributes\", 1) + `,`,\n\t\t`User:` + fmt.Sprintf(\"%v\", this.User) + `,`,\n\t\t`Groups:` + fmt.Sprintf(\"%v\", this.Groups) + `,`,\n\t\t`Extra:` + mapStringForExtra + `,`,\n\t\t`UID:` + fmt.Sprintf(\"%v\", this.UID) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SubjectAccessReviewStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SubjectAccessReviewStatus{`,\n\t\t`Allowed:` + fmt.Sprintf(\"%v\", this.Allowed) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`EvaluationError:` + fmt.Sprintf(\"%v\", this.EvaluationError) + `,`,\n\t\t`Denied:` + fmt.Sprintf(\"%v\", this.Denied) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SubjectRulesReviewStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForResourceRules := \"[]ResourceRule{\"\n\tfor _, f := range this.ResourceRules {\n\t\trepeatedStringForResourceRules += strings.Replace(strings.Replace(f.String(), \"ResourceRule\", \"ResourceRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForResourceRules += \"}\"\n\trepeatedStringForNonResourceRules := \"[]NonResourceRule{\"\n\tfor _, f := range this.NonResourceRules {\n\t\trepeatedStringForNonResourceRules += strings.Replace(strings.Replace(f.String(), \"NonResourceRule\", \"NonResourceRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForNonResourceRules += \"}\"\n\ts := strings.Join([]string{`&SubjectRulesReviewStatus{`,\n\t\t`ResourceRules:` + repeatedStringForResourceRules + `,`,\n\t\t`NonResourceRules:` + repeatedStringForNonResourceRules + `,`,\n\t\t`Incomplete:` + fmt.Sprintf(\"%v\", this.Incomplete) + `,`,\n\t\t`EvaluationError:` + fmt.Sprintf(\"%v\", this.EvaluationError) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *ExtraValue) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ExtraValue: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ExtraValue: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\t*m = append(*m, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LocalSubjectAccessReview) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LocalSubjectAccessReview: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LocalSubjectAccessReview: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NonResourceAttributes) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NonResourceAttributes: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NonResourceAttributes: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Path\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Path = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verb\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verb = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NonResourceRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NonResourceRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NonResourceRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verbs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verbs = append(m.Verbs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NonResourceURLs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NonResourceURLs = append(m.NonResourceURLs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceAttributes) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceAttributes: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceAttributes: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verb\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verb = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Group\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Group = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Version\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Version = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resource\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resource = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Subresource\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Subresource = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FieldSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.FieldSelector == nil {\n\t\t\t\tm.FieldSelector = &v11.FieldSelectorAttributes{}\n\t\t\t}\n\t\t\tif err := m.FieldSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LabelSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.LabelSelector == nil {\n\t\t\t\tm.LabelSelector = &v11.LabelSelectorAttributes{}\n\t\t\t}\n\t\t\tif err := m.LabelSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verbs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verbs = append(m.Verbs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIGroups\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIGroups = append(m.APIGroups, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resources\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resources = append(m.Resources, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceNames\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceNames = append(m.ResourceNames, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SelfSubjectAccessReview) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectAccessReview: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectAccessReview: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SelfSubjectAccessReviewSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectAccessReviewSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectAccessReviewSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceAttributes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ResourceAttributes == nil {\n\t\t\t\tm.ResourceAttributes = &ResourceAttributes{}\n\t\t\t}\n\t\t\tif err := m.ResourceAttributes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NonResourceAttributes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NonResourceAttributes == nil {\n\t\t\t\tm.NonResourceAttributes = &NonResourceAttributes{}\n\t\t\t}\n\t\t\tif err := m.NonResourceAttributes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SelfSubjectRulesReview) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectRulesReview: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectRulesReview: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SelfSubjectRulesReviewSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectRulesReviewSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SelfSubjectRulesReviewSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SubjectAccessReview) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SubjectAccessReview: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SubjectAccessReview: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SubjectAccessReviewSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SubjectAccessReviewSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SubjectAccessReviewSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceAttributes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ResourceAttributes == nil {\n\t\t\t\tm.ResourceAttributes = &ResourceAttributes{}\n\t\t\t}\n\t\t\tif err := m.ResourceAttributes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NonResourceAttributes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NonResourceAttributes == nil {\n\t\t\t\tm.NonResourceAttributes = &NonResourceAttributes{}\n\t\t\t}\n\t\t\tif err := m.NonResourceAttributes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field User\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.User = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Groups\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Groups = append(m.Groups, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Extra\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Extra == nil {\n\t\t\t\tm.Extra = make(map[string]ExtraValue)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tmapvalue := &ExtraValue{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &ExtraValue{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Extra[mapkey] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.UID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SubjectAccessReviewStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SubjectAccessReviewStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SubjectAccessReviewStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Allowed\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Allowed = bool(v != 0)\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EvaluationError\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.EvaluationError = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Denied\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Denied = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SubjectRulesReviewStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SubjectRulesReviewStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SubjectRulesReviewStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceRules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceRules = append(m.ResourceRules, ResourceRule{})\n\t\t\tif err := m.ResourceRules[len(m.ResourceRules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NonResourceRules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NonResourceRules = append(m.NonResourceRules, NonResourceRule{})\n\t\t\tif err := m.NonResourceRules[len(m.NonResourceRules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Incomplete\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Incomplete = bool(v != 0)\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EvaluationError\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.EvaluationError = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/authorization/v1beta1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.authorization.v1beta1;\n\nimport \"k8s.io/api/authorization/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/authorization/v1beta1\";\n\n// ExtraValue masks the value so protobuf can generate\n// +protobuf.nullable=true\n// +protobuf.options.(gogoproto.goproto_stringer)=false\nmessage ExtraValue {\n  // items, if empty, will result in an empty slice\n\n  repeated string items = 1;\n}\n\n// LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace.\n// Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions\n// checking.\nmessage LocalSubjectAccessReview {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec holds information about the request being evaluated.  spec.namespace must be equal to the namespace\n  // you made the request against.  If empty, it is defaulted.\n  optional SubjectAccessReviewSpec spec = 2;\n\n  // Status is filled in by the server and indicates whether the request is allowed or not\n  // +optional\n  optional SubjectAccessReviewStatus status = 3;\n}\n\n// NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface\nmessage NonResourceAttributes {\n  // Path is the URL path of the request\n  // +optional\n  optional string path = 1;\n\n  // Verb is the standard HTTP verb\n  // +optional\n  optional string verb = 2;\n}\n\n// NonResourceRule holds information that describes a rule for the non-resource\nmessage NonResourceRule {\n  // Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options.  \"*\" means all.\n  // +listType=atomic\n  repeated string verbs = 1;\n\n  // NonResourceURLs is a set of partial urls that a user should have access to.  *s are allowed, but only as the full,\n  // final step in the path.  \"*\" means all.\n  // +optional\n  // +listType=atomic\n  repeated string nonResourceURLs = 2;\n}\n\n// ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface\nmessage ResourceAttributes {\n  // Namespace is the namespace of the action being requested.  Currently, there is no distinction between no namespace and all namespaces\n  // \"\" (empty) is defaulted for LocalSubjectAccessReviews\n  // \"\" (empty) is empty for cluster-scoped resources\n  // \"\" (empty) means \"all\" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview\n  // +optional\n  optional string namespace = 1;\n\n  // Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy.  \"*\" means all.\n  // +optional\n  optional string verb = 2;\n\n  // Group is the API Group of the Resource.  \"*\" means all.\n  // +optional\n  optional string group = 3;\n\n  // Version is the API Version of the Resource.  \"*\" means all.\n  // +optional\n  optional string version = 4;\n\n  // Resource is one of the existing resource types.  \"*\" means all.\n  // +optional\n  optional string resource = 5;\n\n  // Subresource is one of the existing resource types.  \"\" means none.\n  // +optional\n  optional string subresource = 6;\n\n  // Name is the name of the resource being requested for a \"get\" or deleted for a \"delete\". \"\" (empty) means all.\n  // +optional\n  optional string name = 7;\n\n  // fieldSelector describes the limitation on access based on field.  It can only limit access, not broaden it.\n  // +optional\n  optional .k8s.io.api.authorization.v1.FieldSelectorAttributes fieldSelector = 8;\n\n  // labelSelector describes the limitation on access based on labels.  It can only limit access, not broaden it.\n  // +optional\n  optional .k8s.io.api.authorization.v1.LabelSelectorAttributes labelSelector = 9;\n}\n\n// ResourceRule is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant,\n// may contain duplicates, and possibly be incomplete.\nmessage ResourceRule {\n  // Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy.  \"*\" means all.\n  // +listType=atomic\n  repeated string verbs = 1;\n\n  // APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of\n  // the enumerated resources in any API group will be allowed.  \"*\" means all.\n  // +optional\n  // +listType=atomic\n  repeated string apiGroups = 2;\n\n  // Resources is a list of resources this rule applies to.  \"*\" means all in the specified apiGroups.\n  //  \"*/foo\" represents the subresource 'foo' for all resources in the specified apiGroups.\n  // +optional\n  // +listType=atomic\n  repeated string resources = 3;\n\n  // ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.  \"*\" means all.\n  // +optional\n  // +listType=atomic\n  repeated string resourceNames = 4;\n}\n\n// SelfSubjectAccessReview checks whether or the current user can perform an action.  Not filling in a\n// spec.namespace means \"in all namespaces\".  Self is a special case, because users should always be able\n// to check whether they can perform an action\nmessage SelfSubjectAccessReview {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec holds information about the request being evaluated.  user and groups must be empty\n  optional SelfSubjectAccessReviewSpec spec = 2;\n\n  // Status is filled in by the server and indicates whether the request is allowed or not\n  // +optional\n  optional SubjectAccessReviewStatus status = 3;\n}\n\n// SelfSubjectAccessReviewSpec is a description of the access request.  Exactly one of ResourceAuthorizationAttributes\n// and NonResourceAuthorizationAttributes must be set\nmessage SelfSubjectAccessReviewSpec {\n  // ResourceAuthorizationAttributes describes information for a resource access request\n  // +optional\n  optional ResourceAttributes resourceAttributes = 1;\n\n  // NonResourceAttributes describes information for a non-resource access request\n  // +optional\n  optional NonResourceAttributes nonResourceAttributes = 2;\n}\n\n// SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace.\n// The returned list of actions may be incomplete depending on the server's authorization mode,\n// and any errors experienced during the evaluation. SelfSubjectRulesReview should be used by UIs to show/hide actions,\n// or to quickly let an end user reason about their permissions. It should NOT Be used by external systems to\n// drive authorization decisions as this raises confused deputy, cache lifetime/revocation, and correctness concerns.\n// SubjectAccessReview, and LocalAccessReview are the correct way to defer authorization decisions to the API server.\nmessage SelfSubjectRulesReview {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec holds information about the request being evaluated.\n  optional SelfSubjectRulesReviewSpec spec = 2;\n\n  // Status is filled in by the server and indicates the set of actions a user can perform.\n  // +optional\n  optional SubjectRulesReviewStatus status = 3;\n}\n\n// SelfSubjectRulesReviewSpec defines the specification for SelfSubjectRulesReview.\nmessage SelfSubjectRulesReviewSpec {\n  // Namespace to evaluate rules for. Required.\n  optional string namespace = 1;\n}\n\n// SubjectAccessReview checks whether or not a user or group can perform an action.\nmessage SubjectAccessReview {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec holds information about the request being evaluated\n  optional SubjectAccessReviewSpec spec = 2;\n\n  // Status is filled in by the server and indicates whether the request is allowed or not\n  // +optional\n  optional SubjectAccessReviewStatus status = 3;\n}\n\n// SubjectAccessReviewSpec is a description of the access request.  Exactly one of ResourceAuthorizationAttributes\n// and NonResourceAuthorizationAttributes must be set\nmessage SubjectAccessReviewSpec {\n  // ResourceAuthorizationAttributes describes information for a resource access request\n  // +optional\n  optional ResourceAttributes resourceAttributes = 1;\n\n  // NonResourceAttributes describes information for a non-resource access request\n  // +optional\n  optional NonResourceAttributes nonResourceAttributes = 2;\n\n  // User is the user you're testing for.\n  // If you specify \"User\" but not \"Group\", then is it interpreted as \"What if User were not a member of any groups\n  // +optional\n  optional string user = 3;\n\n  // Groups is the groups you're testing for.\n  // +optional\n  // +listType=atomic\n  repeated string group = 4;\n\n  // Extra corresponds to the user.Info.GetExtra() method from the authenticator.  Since that is input to the authorizer\n  // it needs a reflection here.\n  // +optional\n  map<string, ExtraValue> extra = 5;\n\n  // UID information about the requesting user.\n  // +optional\n  optional string uid = 6;\n}\n\n// SubjectAccessReviewStatus\nmessage SubjectAccessReviewStatus {\n  // Allowed is required. True if the action would be allowed, false otherwise.\n  optional bool allowed = 1;\n\n  // Denied is optional. True if the action would be denied, otherwise\n  // false. If both allowed is false and denied is false, then the\n  // authorizer has no opinion on whether to authorize the action. Denied\n  // may not be true if Allowed is true.\n  // +optional\n  optional bool denied = 4;\n\n  // Reason is optional.  It indicates why a request was allowed or denied.\n  // +optional\n  optional string reason = 2;\n\n  // EvaluationError is an indication that some error occurred during the authorization check.\n  // It is entirely possible to get an error and be able to continue determine authorization status in spite of it.\n  // For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request.\n  // +optional\n  optional string evaluationError = 3;\n}\n\n// SubjectRulesReviewStatus contains the result of a rules check. This check can be incomplete depending on\n// the set of authorizers the server is configured with and any errors experienced during evaluation.\n// Because authorization rules are additive, if a rule appears in a list it's safe to assume the subject has that permission,\n// even if that list is incomplete.\nmessage SubjectRulesReviewStatus {\n  // ResourceRules is the list of actions the subject is allowed to perform on resources.\n  // The list ordering isn't significant, may contain duplicates, and possibly be incomplete.\n  // +listType=atomic\n  repeated ResourceRule resourceRules = 1;\n\n  // NonResourceRules is the list of actions the subject is allowed to perform on non-resources.\n  // The list ordering isn't significant, may contain duplicates, and possibly be incomplete.\n  // +listType=atomic\n  repeated NonResourceRule nonResourceRules = 2;\n\n  // Incomplete is true when the rules returned by this call are incomplete. This is most commonly\n  // encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation.\n  optional bool incomplete = 3;\n\n  // EvaluationError can appear in combination with Rules. It indicates an error occurred during\n  // rule evaluation, such as an authorizer that doesn't support rule evaluation, and that\n  // ResourceRules and/or NonResourceRules may be incomplete.\n  // +optional\n  optional string evaluationError = 4;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/authorization/v1beta1/register.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"authorization.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&SelfSubjectRulesReview{},\n\t\t&SelfSubjectAccessReview{},\n\t\t&SubjectAccessReview{},\n\t\t&LocalSubjectAccessReview{},\n\t)\n\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/authorization/v1beta1/types.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\t\"fmt\"\n\n\tauthorizationv1 \"k8s.io/api/authorization/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +genclient:onlyVerbs=create\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.2\n// +k8s:prerelease-lifecycle-gen:deprecated=1.19\n// +k8s:prerelease-lifecycle-gen:replacement=authorization.k8s.io,v1,SubjectAccessReview\n\n// SubjectAccessReview checks whether or not a user or group can perform an action.\ntype SubjectAccessReview struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec holds information about the request being evaluated\n\tSpec SubjectAccessReviewSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status is filled in by the server and indicates whether the request is allowed or not\n\t// +optional\n\tStatus SubjectAccessReviewStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +genclient:onlyVerbs=create\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.2\n// +k8s:prerelease-lifecycle-gen:deprecated=1.19\n// +k8s:prerelease-lifecycle-gen:replacement=authorization.k8s.io,v1,SelfSubjectAccessReview\n\n// SelfSubjectAccessReview checks whether or the current user can perform an action.  Not filling in a\n// spec.namespace means \"in all namespaces\".  Self is a special case, because users should always be able\n// to check whether they can perform an action\ntype SelfSubjectAccessReview struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec holds information about the request being evaluated.  user and groups must be empty\n\tSpec SelfSubjectAccessReviewSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status is filled in by the server and indicates whether the request is allowed or not\n\t// +optional\n\tStatus SubjectAccessReviewStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +genclient\n// +genclient:onlyVerbs=create\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.2\n// +k8s:prerelease-lifecycle-gen:deprecated=1.19\n// +k8s:prerelease-lifecycle-gen:replacement=authorization.k8s.io,v1,LocalSubjectAccessReview\n\n// LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace.\n// Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions\n// checking.\ntype LocalSubjectAccessReview struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec holds information about the request being evaluated.  spec.namespace must be equal to the namespace\n\t// you made the request against.  If empty, it is defaulted.\n\tSpec SubjectAccessReviewSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status is filled in by the server and indicates whether the request is allowed or not\n\t// +optional\n\tStatus SubjectAccessReviewStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface\ntype ResourceAttributes struct {\n\t// Namespace is the namespace of the action being requested.  Currently, there is no distinction between no namespace and all namespaces\n\t// \"\" (empty) is defaulted for LocalSubjectAccessReviews\n\t// \"\" (empty) is empty for cluster-scoped resources\n\t// \"\" (empty) means \"all\" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview\n\t// +optional\n\tNamespace string `json:\"namespace,omitempty\" protobuf:\"bytes,1,opt,name=namespace\"`\n\t// Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy.  \"*\" means all.\n\t// +optional\n\tVerb string `json:\"verb,omitempty\" protobuf:\"bytes,2,opt,name=verb\"`\n\t// Group is the API Group of the Resource.  \"*\" means all.\n\t// +optional\n\tGroup string `json:\"group,omitempty\" protobuf:\"bytes,3,opt,name=group\"`\n\t// Version is the API Version of the Resource.  \"*\" means all.\n\t// +optional\n\tVersion string `json:\"version,omitempty\" protobuf:\"bytes,4,opt,name=version\"`\n\t// Resource is one of the existing resource types.  \"*\" means all.\n\t// +optional\n\tResource string `json:\"resource,omitempty\" protobuf:\"bytes,5,opt,name=resource\"`\n\t// Subresource is one of the existing resource types.  \"\" means none.\n\t// +optional\n\tSubresource string `json:\"subresource,omitempty\" protobuf:\"bytes,6,opt,name=subresource\"`\n\t// Name is the name of the resource being requested for a \"get\" or deleted for a \"delete\". \"\" (empty) means all.\n\t// +optional\n\tName string `json:\"name,omitempty\" protobuf:\"bytes,7,opt,name=name\"`\n\t// fieldSelector describes the limitation on access based on field.  It can only limit access, not broaden it.\n\t// +optional\n\tFieldSelector *authorizationv1.FieldSelectorAttributes `json:\"fieldSelector,omitempty\" protobuf:\"bytes,8,opt,name=fieldSelector\"`\n\t// labelSelector describes the limitation on access based on labels.  It can only limit access, not broaden it.\n\t// +optional\n\tLabelSelector *authorizationv1.LabelSelectorAttributes `json:\"labelSelector,omitempty\" protobuf:\"bytes,9,opt,name=labelSelector\"`\n}\n\n// NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface\ntype NonResourceAttributes struct {\n\t// Path is the URL path of the request\n\t// +optional\n\tPath string `json:\"path,omitempty\" protobuf:\"bytes,1,opt,name=path\"`\n\t// Verb is the standard HTTP verb\n\t// +optional\n\tVerb string `json:\"verb,omitempty\" protobuf:\"bytes,2,opt,name=verb\"`\n}\n\n// SubjectAccessReviewSpec is a description of the access request.  Exactly one of ResourceAuthorizationAttributes\n// and NonResourceAuthorizationAttributes must be set\ntype SubjectAccessReviewSpec struct {\n\t// ResourceAuthorizationAttributes describes information for a resource access request\n\t// +optional\n\tResourceAttributes *ResourceAttributes `json:\"resourceAttributes,omitempty\" protobuf:\"bytes,1,opt,name=resourceAttributes\"`\n\t// NonResourceAttributes describes information for a non-resource access request\n\t// +optional\n\tNonResourceAttributes *NonResourceAttributes `json:\"nonResourceAttributes,omitempty\" protobuf:\"bytes,2,opt,name=nonResourceAttributes\"`\n\n\t// User is the user you're testing for.\n\t// If you specify \"User\" but not \"Group\", then is it interpreted as \"What if User were not a member of any groups\n\t// +optional\n\tUser string `json:\"user,omitempty\" protobuf:\"bytes,3,opt,name=user\"`\n\t// Groups is the groups you're testing for.\n\t// +optional\n\t// +listType=atomic\n\tGroups []string `json:\"group,omitempty\" protobuf:\"bytes,4,rep,name=group\"`\n\t// Extra corresponds to the user.Info.GetExtra() method from the authenticator.  Since that is input to the authorizer\n\t// it needs a reflection here.\n\t// +optional\n\tExtra map[string]ExtraValue `json:\"extra,omitempty\" protobuf:\"bytes,5,rep,name=extra\"`\n\t// UID information about the requesting user.\n\t// +optional\n\tUID string `json:\"uid,omitempty\" protobuf:\"bytes,6,opt,name=uid\"`\n}\n\n// ExtraValue masks the value so protobuf can generate\n// +protobuf.nullable=true\n// +protobuf.options.(gogoproto.goproto_stringer)=false\ntype ExtraValue []string\n\nfunc (t ExtraValue) String() string {\n\treturn fmt.Sprintf(\"%v\", []string(t))\n}\n\n// SelfSubjectAccessReviewSpec is a description of the access request.  Exactly one of ResourceAuthorizationAttributes\n// and NonResourceAuthorizationAttributes must be set\ntype SelfSubjectAccessReviewSpec struct {\n\t// ResourceAuthorizationAttributes describes information for a resource access request\n\t// +optional\n\tResourceAttributes *ResourceAttributes `json:\"resourceAttributes,omitempty\" protobuf:\"bytes,1,opt,name=resourceAttributes\"`\n\t// NonResourceAttributes describes information for a non-resource access request\n\t// +optional\n\tNonResourceAttributes *NonResourceAttributes `json:\"nonResourceAttributes,omitempty\" protobuf:\"bytes,2,opt,name=nonResourceAttributes\"`\n}\n\n// SubjectAccessReviewStatus\ntype SubjectAccessReviewStatus struct {\n\t// Allowed is required. True if the action would be allowed, false otherwise.\n\tAllowed bool `json:\"allowed\" protobuf:\"varint,1,opt,name=allowed\"`\n\t// Denied is optional. True if the action would be denied, otherwise\n\t// false. If both allowed is false and denied is false, then the\n\t// authorizer has no opinion on whether to authorize the action. Denied\n\t// may not be true if Allowed is true.\n\t// +optional\n\tDenied bool `json:\"denied,omitempty\" protobuf:\"varint,4,opt,name=denied\"`\n\t// Reason is optional.  It indicates why a request was allowed or denied.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,2,opt,name=reason\"`\n\t// EvaluationError is an indication that some error occurred during the authorization check.\n\t// It is entirely possible to get an error and be able to continue determine authorization status in spite of it.\n\t// For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request.\n\t// +optional\n\tEvaluationError string `json:\"evaluationError,omitempty\" protobuf:\"bytes,3,opt,name=evaluationError\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +genclient:onlyVerbs=create\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n// +k8s:prerelease-lifecycle-gen:deprecated=1.19\n// +k8s:prerelease-lifecycle-gen:replacement=authorization.k8s.io,v1,SelfSubjectRulesReview\n\n// SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace.\n// The returned list of actions may be incomplete depending on the server's authorization mode,\n// and any errors experienced during the evaluation. SelfSubjectRulesReview should be used by UIs to show/hide actions,\n// or to quickly let an end user reason about their permissions. It should NOT Be used by external systems to\n// drive authorization decisions as this raises confused deputy, cache lifetime/revocation, and correctness concerns.\n// SubjectAccessReview, and LocalAccessReview are the correct way to defer authorization decisions to the API server.\ntype SelfSubjectRulesReview struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec holds information about the request being evaluated.\n\tSpec SelfSubjectRulesReviewSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status is filled in by the server and indicates the set of actions a user can perform.\n\t// +optional\n\tStatus SubjectRulesReviewStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// SelfSubjectRulesReviewSpec defines the specification for SelfSubjectRulesReview.\ntype SelfSubjectRulesReviewSpec struct {\n\t// Namespace to evaluate rules for. Required.\n\tNamespace string `json:\"namespace,omitempty\" protobuf:\"bytes,1,opt,name=namespace\"`\n}\n\n// SubjectRulesReviewStatus contains the result of a rules check. This check can be incomplete depending on\n// the set of authorizers the server is configured with and any errors experienced during evaluation.\n// Because authorization rules are additive, if a rule appears in a list it's safe to assume the subject has that permission,\n// even if that list is incomplete.\ntype SubjectRulesReviewStatus struct {\n\t// ResourceRules is the list of actions the subject is allowed to perform on resources.\n\t// The list ordering isn't significant, may contain duplicates, and possibly be incomplete.\n\t// +listType=atomic\n\tResourceRules []ResourceRule `json:\"resourceRules\" protobuf:\"bytes,1,rep,name=resourceRules\"`\n\t// NonResourceRules is the list of actions the subject is allowed to perform on non-resources.\n\t// The list ordering isn't significant, may contain duplicates, and possibly be incomplete.\n\t// +listType=atomic\n\tNonResourceRules []NonResourceRule `json:\"nonResourceRules\" protobuf:\"bytes,2,rep,name=nonResourceRules\"`\n\t// Incomplete is true when the rules returned by this call are incomplete. This is most commonly\n\t// encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation.\n\tIncomplete bool `json:\"incomplete\" protobuf:\"bytes,3,rep,name=incomplete\"`\n\t// EvaluationError can appear in combination with Rules. It indicates an error occurred during\n\t// rule evaluation, such as an authorizer that doesn't support rule evaluation, and that\n\t// ResourceRules and/or NonResourceRules may be incomplete.\n\t// +optional\n\tEvaluationError string `json:\"evaluationError,omitempty\" protobuf:\"bytes,4,opt,name=evaluationError\"`\n}\n\n// ResourceRule is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant,\n// may contain duplicates, and possibly be incomplete.\ntype ResourceRule struct {\n\t// Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy.  \"*\" means all.\n\t// +listType=atomic\n\tVerbs []string `json:\"verbs\" protobuf:\"bytes,1,rep,name=verbs\"`\n\n\t// APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of\n\t// the enumerated resources in any API group will be allowed.  \"*\" means all.\n\t// +optional\n\t// +listType=atomic\n\tAPIGroups []string `json:\"apiGroups,omitempty\" protobuf:\"bytes,2,rep,name=apiGroups\"`\n\t// Resources is a list of resources this rule applies to.  \"*\" means all in the specified apiGroups.\n\t//  \"*/foo\" represents the subresource 'foo' for all resources in the specified apiGroups.\n\t// +optional\n\t// +listType=atomic\n\tResources []string `json:\"resources,omitempty\" protobuf:\"bytes,3,rep,name=resources\"`\n\t// ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.  \"*\" means all.\n\t// +optional\n\t// +listType=atomic\n\tResourceNames []string `json:\"resourceNames,omitempty\" protobuf:\"bytes,4,rep,name=resourceNames\"`\n}\n\n// NonResourceRule holds information that describes a rule for the non-resource\ntype NonResourceRule struct {\n\t// Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options.  \"*\" means all.\n\t// +listType=atomic\n\tVerbs []string `json:\"verbs\" protobuf:\"bytes,1,rep,name=verbs\"`\n\n\t// NonResourceURLs is a set of partial urls that a user should have access to.  *s are allowed, but only as the full,\n\t// final step in the path.  \"*\" means all.\n\t// +optional\n\t// +listType=atomic\n\tNonResourceURLs []string `json:\"nonResourceURLs,omitempty\" protobuf:\"bytes,2,rep,name=nonResourceURLs\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/authorization/v1beta1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_LocalSubjectAccessReview = map[string]string{\n\t\"\":         \"LocalSubjectAccessReview checks whether or not a user or group can perform an action in a given namespace. Having a namespace scoped resource makes it much easier to grant namespace scoped policy that includes permissions checking.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec holds information about the request being evaluated.  spec.namespace must be equal to the namespace you made the request against.  If empty, it is defaulted.\",\n\t\"status\":   \"Status is filled in by the server and indicates whether the request is allowed or not\",\n}\n\nfunc (LocalSubjectAccessReview) SwaggerDoc() map[string]string {\n\treturn map_LocalSubjectAccessReview\n}\n\nvar map_NonResourceAttributes = map[string]string{\n\t\"\":     \"NonResourceAttributes includes the authorization attributes available for non-resource requests to the Authorizer interface\",\n\t\"path\": \"Path is the URL path of the request\",\n\t\"verb\": \"Verb is the standard HTTP verb\",\n}\n\nfunc (NonResourceAttributes) SwaggerDoc() map[string]string {\n\treturn map_NonResourceAttributes\n}\n\nvar map_NonResourceRule = map[string]string{\n\t\"\":                \"NonResourceRule holds information that describes a rule for the non-resource\",\n\t\"verbs\":           \"Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options.  \\\"*\\\" means all.\",\n\t\"nonResourceURLs\": \"NonResourceURLs is a set of partial urls that a user should have access to.  *s are allowed, but only as the full, final step in the path.  \\\"*\\\" means all.\",\n}\n\nfunc (NonResourceRule) SwaggerDoc() map[string]string {\n\treturn map_NonResourceRule\n}\n\nvar map_ResourceAttributes = map[string]string{\n\t\"\":              \"ResourceAttributes includes the authorization attributes available for resource requests to the Authorizer interface\",\n\t\"namespace\":     \"Namespace is the namespace of the action being requested.  Currently, there is no distinction between no namespace and all namespaces \\\"\\\" (empty) is defaulted for LocalSubjectAccessReviews \\\"\\\" (empty) is empty for cluster-scoped resources \\\"\\\" (empty) means \\\"all\\\" for namespace scoped resources from a SubjectAccessReview or SelfSubjectAccessReview\",\n\t\"verb\":          \"Verb is a kubernetes resource API verb, like: get, list, watch, create, update, delete, proxy.  \\\"*\\\" means all.\",\n\t\"group\":         \"Group is the API Group of the Resource.  \\\"*\\\" means all.\",\n\t\"version\":       \"Version is the API Version of the Resource.  \\\"*\\\" means all.\",\n\t\"resource\":      \"Resource is one of the existing resource types.  \\\"*\\\" means all.\",\n\t\"subresource\":   \"Subresource is one of the existing resource types.  \\\"\\\" means none.\",\n\t\"name\":          \"Name is the name of the resource being requested for a \\\"get\\\" or deleted for a \\\"delete\\\". \\\"\\\" (empty) means all.\",\n\t\"fieldSelector\": \"fieldSelector describes the limitation on access based on field.  It can only limit access, not broaden it.\",\n\t\"labelSelector\": \"labelSelector describes the limitation on access based on labels.  It can only limit access, not broaden it.\",\n}\n\nfunc (ResourceAttributes) SwaggerDoc() map[string]string {\n\treturn map_ResourceAttributes\n}\n\nvar map_ResourceRule = map[string]string{\n\t\"\":              \"ResourceRule is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.\",\n\t\"verbs\":         \"Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy.  \\\"*\\\" means all.\",\n\t\"apiGroups\":     \"APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed.  \\\"*\\\" means all.\",\n\t\"resources\":     \"Resources is a list of resources this rule applies to.  \\\"*\\\" means all in the specified apiGroups.\\n \\\"*/foo\\\" represents the subresource 'foo' for all resources in the specified apiGroups.\",\n\t\"resourceNames\": \"ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.  \\\"*\\\" means all.\",\n}\n\nfunc (ResourceRule) SwaggerDoc() map[string]string {\n\treturn map_ResourceRule\n}\n\nvar map_SelfSubjectAccessReview = map[string]string{\n\t\"\":         \"SelfSubjectAccessReview checks whether or the current user can perform an action.  Not filling in a spec.namespace means \\\"in all namespaces\\\".  Self is a special case, because users should always be able to check whether they can perform an action\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec holds information about the request being evaluated.  user and groups must be empty\",\n\t\"status\":   \"Status is filled in by the server and indicates whether the request is allowed or not\",\n}\n\nfunc (SelfSubjectAccessReview) SwaggerDoc() map[string]string {\n\treturn map_SelfSubjectAccessReview\n}\n\nvar map_SelfSubjectAccessReviewSpec = map[string]string{\n\t\"\":                      \"SelfSubjectAccessReviewSpec is a description of the access request.  Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set\",\n\t\"resourceAttributes\":    \"ResourceAuthorizationAttributes describes information for a resource access request\",\n\t\"nonResourceAttributes\": \"NonResourceAttributes describes information for a non-resource access request\",\n}\n\nfunc (SelfSubjectAccessReviewSpec) SwaggerDoc() map[string]string {\n\treturn map_SelfSubjectAccessReviewSpec\n}\n\nvar map_SelfSubjectRulesReview = map[string]string{\n\t\"\":         \"SelfSubjectRulesReview enumerates the set of actions the current user can perform within a namespace. The returned list of actions may be incomplete depending on the server's authorization mode, and any errors experienced during the evaluation. SelfSubjectRulesReview should be used by UIs to show/hide actions, or to quickly let an end user reason about their permissions. It should NOT Be used by external systems to drive authorization decisions as this raises confused deputy, cache lifetime/revocation, and correctness concerns. SubjectAccessReview, and LocalAccessReview are the correct way to defer authorization decisions to the API server.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec holds information about the request being evaluated.\",\n\t\"status\":   \"Status is filled in by the server and indicates the set of actions a user can perform.\",\n}\n\nfunc (SelfSubjectRulesReview) SwaggerDoc() map[string]string {\n\treturn map_SelfSubjectRulesReview\n}\n\nvar map_SelfSubjectRulesReviewSpec = map[string]string{\n\t\"\":          \"SelfSubjectRulesReviewSpec defines the specification for SelfSubjectRulesReview.\",\n\t\"namespace\": \"Namespace to evaluate rules for. Required.\",\n}\n\nfunc (SelfSubjectRulesReviewSpec) SwaggerDoc() map[string]string {\n\treturn map_SelfSubjectRulesReviewSpec\n}\n\nvar map_SubjectAccessReview = map[string]string{\n\t\"\":         \"SubjectAccessReview checks whether or not a user or group can perform an action.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec holds information about the request being evaluated\",\n\t\"status\":   \"Status is filled in by the server and indicates whether the request is allowed or not\",\n}\n\nfunc (SubjectAccessReview) SwaggerDoc() map[string]string {\n\treturn map_SubjectAccessReview\n}\n\nvar map_SubjectAccessReviewSpec = map[string]string{\n\t\"\":                      \"SubjectAccessReviewSpec is a description of the access request.  Exactly one of ResourceAuthorizationAttributes and NonResourceAuthorizationAttributes must be set\",\n\t\"resourceAttributes\":    \"ResourceAuthorizationAttributes describes information for a resource access request\",\n\t\"nonResourceAttributes\": \"NonResourceAttributes describes information for a non-resource access request\",\n\t\"user\":                  \"User is the user you're testing for. If you specify \\\"User\\\" but not \\\"Group\\\", then is it interpreted as \\\"What if User were not a member of any groups\",\n\t\"group\":                 \"Groups is the groups you're testing for.\",\n\t\"extra\":                 \"Extra corresponds to the user.Info.GetExtra() method from the authenticator.  Since that is input to the authorizer it needs a reflection here.\",\n\t\"uid\":                   \"UID information about the requesting user.\",\n}\n\nfunc (SubjectAccessReviewSpec) SwaggerDoc() map[string]string {\n\treturn map_SubjectAccessReviewSpec\n}\n\nvar map_SubjectAccessReviewStatus = map[string]string{\n\t\"\":                \"SubjectAccessReviewStatus\",\n\t\"allowed\":         \"Allowed is required. True if the action would be allowed, false otherwise.\",\n\t\"denied\":          \"Denied is optional. True if the action would be denied, otherwise false. If both allowed is false and denied is false, then the authorizer has no opinion on whether to authorize the action. Denied may not be true if Allowed is true.\",\n\t\"reason\":          \"Reason is optional.  It indicates why a request was allowed or denied.\",\n\t\"evaluationError\": \"EvaluationError is an indication that some error occurred during the authorization check. It is entirely possible to get an error and be able to continue determine authorization status in spite of it. For instance, RBAC can be missing a role, but enough roles are still present and bound to reason about the request.\",\n}\n\nfunc (SubjectAccessReviewStatus) SwaggerDoc() map[string]string {\n\treturn map_SubjectAccessReviewStatus\n}\n\nvar map_SubjectRulesReviewStatus = map[string]string{\n\t\"\":                 \"SubjectRulesReviewStatus contains the result of a rules check. This check can be incomplete depending on the set of authorizers the server is configured with and any errors experienced during evaluation. Because authorization rules are additive, if a rule appears in a list it's safe to assume the subject has that permission, even if that list is incomplete.\",\n\t\"resourceRules\":    \"ResourceRules is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.\",\n\t\"nonResourceRules\": \"NonResourceRules is the list of actions the subject is allowed to perform on non-resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.\",\n\t\"incomplete\":       \"Incomplete is true when the rules returned by this call are incomplete. This is most commonly encountered when an authorizer, such as an external authorizer, doesn't support rules evaluation.\",\n\t\"evaluationError\":  \"EvaluationError can appear in combination with Rules. It indicates an error occurred during rule evaluation, such as an authorizer that doesn't support rule evaluation, and that ResourceRules and/or NonResourceRules may be incomplete.\",\n}\n\nfunc (SubjectRulesReviewStatus) SwaggerDoc() map[string]string {\n\treturn map_SubjectRulesReviewStatus\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/authorization/v1beta1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/authorization/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in ExtraValue) DeepCopyInto(out *ExtraValue) {\n\t{\n\t\tin := &in\n\t\t*out = make(ExtraValue, len(*in))\n\t\tcopy(*out, *in)\n\t\treturn\n\t}\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtraValue.\nfunc (in ExtraValue) DeepCopy() ExtraValue {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExtraValue)\n\tin.DeepCopyInto(out)\n\treturn *out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LocalSubjectAccessReview) DeepCopyInto(out *LocalSubjectAccessReview) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tout.Status = in.Status\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LocalSubjectAccessReview.\nfunc (in *LocalSubjectAccessReview) DeepCopy() *LocalSubjectAccessReview {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LocalSubjectAccessReview)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *LocalSubjectAccessReview) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NonResourceAttributes) DeepCopyInto(out *NonResourceAttributes) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NonResourceAttributes.\nfunc (in *NonResourceAttributes) DeepCopy() *NonResourceAttributes {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NonResourceAttributes)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NonResourceRule) DeepCopyInto(out *NonResourceRule) {\n\t*out = *in\n\tif in.Verbs != nil {\n\t\tin, out := &in.Verbs, &out.Verbs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.NonResourceURLs != nil {\n\t\tin, out := &in.NonResourceURLs, &out.NonResourceURLs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NonResourceRule.\nfunc (in *NonResourceRule) DeepCopy() *NonResourceRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NonResourceRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceAttributes) DeepCopyInto(out *ResourceAttributes) {\n\t*out = *in\n\tif in.FieldSelector != nil {\n\t\tin, out := &in.FieldSelector, &out.FieldSelector\n\t\t*out = new(v1.FieldSelectorAttributes)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.LabelSelector != nil {\n\t\tin, out := &in.LabelSelector, &out.LabelSelector\n\t\t*out = new(v1.LabelSelectorAttributes)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceAttributes.\nfunc (in *ResourceAttributes) DeepCopy() *ResourceAttributes {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceAttributes)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceRule) DeepCopyInto(out *ResourceRule) {\n\t*out = *in\n\tif in.Verbs != nil {\n\t\tin, out := &in.Verbs, &out.Verbs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.APIGroups != nil {\n\t\tin, out := &in.APIGroups, &out.APIGroups\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Resources != nil {\n\t\tin, out := &in.Resources, &out.Resources\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ResourceNames != nil {\n\t\tin, out := &in.ResourceNames, &out.ResourceNames\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceRule.\nfunc (in *ResourceRule) DeepCopy() *ResourceRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SelfSubjectAccessReview) DeepCopyInto(out *SelfSubjectAccessReview) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tout.Status = in.Status\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SelfSubjectAccessReview.\nfunc (in *SelfSubjectAccessReview) DeepCopy() *SelfSubjectAccessReview {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SelfSubjectAccessReview)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *SelfSubjectAccessReview) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SelfSubjectAccessReviewSpec) DeepCopyInto(out *SelfSubjectAccessReviewSpec) {\n\t*out = *in\n\tif in.ResourceAttributes != nil {\n\t\tin, out := &in.ResourceAttributes, &out.ResourceAttributes\n\t\t*out = new(ResourceAttributes)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.NonResourceAttributes != nil {\n\t\tin, out := &in.NonResourceAttributes, &out.NonResourceAttributes\n\t\t*out = new(NonResourceAttributes)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SelfSubjectAccessReviewSpec.\nfunc (in *SelfSubjectAccessReviewSpec) DeepCopy() *SelfSubjectAccessReviewSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SelfSubjectAccessReviewSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SelfSubjectRulesReview) DeepCopyInto(out *SelfSubjectRulesReview) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tout.Spec = in.Spec\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SelfSubjectRulesReview.\nfunc (in *SelfSubjectRulesReview) DeepCopy() *SelfSubjectRulesReview {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SelfSubjectRulesReview)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *SelfSubjectRulesReview) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SelfSubjectRulesReviewSpec) DeepCopyInto(out *SelfSubjectRulesReviewSpec) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SelfSubjectRulesReviewSpec.\nfunc (in *SelfSubjectRulesReviewSpec) DeepCopy() *SelfSubjectRulesReviewSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SelfSubjectRulesReviewSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SubjectAccessReview) DeepCopyInto(out *SubjectAccessReview) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tout.Status = in.Status\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubjectAccessReview.\nfunc (in *SubjectAccessReview) DeepCopy() *SubjectAccessReview {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SubjectAccessReview)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *SubjectAccessReview) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SubjectAccessReviewSpec) DeepCopyInto(out *SubjectAccessReviewSpec) {\n\t*out = *in\n\tif in.ResourceAttributes != nil {\n\t\tin, out := &in.ResourceAttributes, &out.ResourceAttributes\n\t\t*out = new(ResourceAttributes)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.NonResourceAttributes != nil {\n\t\tin, out := &in.NonResourceAttributes, &out.NonResourceAttributes\n\t\t*out = new(NonResourceAttributes)\n\t\t**out = **in\n\t}\n\tif in.Groups != nil {\n\t\tin, out := &in.Groups, &out.Groups\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Extra != nil {\n\t\tin, out := &in.Extra, &out.Extra\n\t\t*out = make(map[string]ExtraValue, len(*in))\n\t\tfor key, val := range *in {\n\t\t\tvar outVal []string\n\t\t\tif val == nil {\n\t\t\t\t(*out)[key] = nil\n\t\t\t} else {\n\t\t\t\tin, out := &val, &outVal\n\t\t\t\t*out = make(ExtraValue, len(*in))\n\t\t\t\tcopy(*out, *in)\n\t\t\t}\n\t\t\t(*out)[key] = outVal\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubjectAccessReviewSpec.\nfunc (in *SubjectAccessReviewSpec) DeepCopy() *SubjectAccessReviewSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SubjectAccessReviewSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SubjectAccessReviewStatus) DeepCopyInto(out *SubjectAccessReviewStatus) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubjectAccessReviewStatus.\nfunc (in *SubjectAccessReviewStatus) DeepCopy() *SubjectAccessReviewStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SubjectAccessReviewStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SubjectRulesReviewStatus) DeepCopyInto(out *SubjectRulesReviewStatus) {\n\t*out = *in\n\tif in.ResourceRules != nil {\n\t\tin, out := &in.ResourceRules, &out.ResourceRules\n\t\t*out = make([]ResourceRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.NonResourceRules != nil {\n\t\tin, out := &in.NonResourceRules, &out.NonResourceRules\n\t\t*out = make([]NonResourceRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubjectRulesReviewStatus.\nfunc (in *SubjectRulesReviewStatus) DeepCopy() *SubjectRulesReviewStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SubjectRulesReviewStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/authorization/v1beta1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *LocalSubjectAccessReview) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 2\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *LocalSubjectAccessReview) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *LocalSubjectAccessReview) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"authorization.k8s.io\", Version: \"v1\", Kind: \"LocalSubjectAccessReview\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *LocalSubjectAccessReview) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *SelfSubjectAccessReview) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 2\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *SelfSubjectAccessReview) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *SelfSubjectAccessReview) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"authorization.k8s.io\", Version: \"v1\", Kind: \"SelfSubjectAccessReview\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *SelfSubjectAccessReview) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *SelfSubjectRulesReview) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *SelfSubjectRulesReview) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *SelfSubjectRulesReview) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"authorization.k8s.io\", Version: \"v1\", Kind: \"SelfSubjectRulesReview\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *SelfSubjectRulesReview) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *SubjectAccessReview) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 2\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *SubjectAccessReview) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *SubjectAccessReview) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"authorization.k8s.io\", Version: \"v1\", Kind: \"SubjectAccessReview\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *SubjectAccessReview) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v1/doc.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\npackage v1 // import \"k8s.io/api/autoscaling/v1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/autoscaling/v1/generated.proto\n\npackage v1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *ContainerResourceMetricSource) Reset()      { *m = ContainerResourceMetricSource{} }\nfunc (*ContainerResourceMetricSource) ProtoMessage() {}\nfunc (*ContainerResourceMetricSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1972394c0c7aac8b, []int{0}\n}\nfunc (m *ContainerResourceMetricSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerResourceMetricSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ContainerResourceMetricSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerResourceMetricSource.Merge(m, src)\n}\nfunc (m *ContainerResourceMetricSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerResourceMetricSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerResourceMetricSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerResourceMetricSource proto.InternalMessageInfo\n\nfunc (m *ContainerResourceMetricStatus) Reset()      { *m = ContainerResourceMetricStatus{} }\nfunc (*ContainerResourceMetricStatus) ProtoMessage() {}\nfunc (*ContainerResourceMetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1972394c0c7aac8b, []int{1}\n}\nfunc (m *ContainerResourceMetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerResourceMetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ContainerResourceMetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerResourceMetricStatus.Merge(m, src)\n}\nfunc (m *ContainerResourceMetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerResourceMetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerResourceMetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerResourceMetricStatus proto.InternalMessageInfo\n\nfunc (m *CrossVersionObjectReference) Reset()      { *m = CrossVersionObjectReference{} }\nfunc (*CrossVersionObjectReference) ProtoMessage() {}\nfunc (*CrossVersionObjectReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1972394c0c7aac8b, []int{2}\n}\nfunc (m *CrossVersionObjectReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CrossVersionObjectReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CrossVersionObjectReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CrossVersionObjectReference.Merge(m, src)\n}\nfunc (m *CrossVersionObjectReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CrossVersionObjectReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_CrossVersionObjectReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CrossVersionObjectReference proto.InternalMessageInfo\n\nfunc (m *ExternalMetricSource) Reset()      { *m = ExternalMetricSource{} }\nfunc (*ExternalMetricSource) ProtoMessage() {}\nfunc (*ExternalMetricSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1972394c0c7aac8b, []int{3}\n}\nfunc (m *ExternalMetricSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ExternalMetricSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ExternalMetricSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ExternalMetricSource.Merge(m, src)\n}\nfunc (m *ExternalMetricSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ExternalMetricSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ExternalMetricSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ExternalMetricSource proto.InternalMessageInfo\n\nfunc (m *ExternalMetricStatus) Reset()      { *m = ExternalMetricStatus{} }\nfunc (*ExternalMetricStatus) ProtoMessage() {}\nfunc (*ExternalMetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1972394c0c7aac8b, []int{4}\n}\nfunc (m *ExternalMetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ExternalMetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ExternalMetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ExternalMetricStatus.Merge(m, src)\n}\nfunc (m *ExternalMetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ExternalMetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ExternalMetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ExternalMetricStatus proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscaler) Reset()      { *m = HorizontalPodAutoscaler{} }\nfunc (*HorizontalPodAutoscaler) ProtoMessage() {}\nfunc (*HorizontalPodAutoscaler) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1972394c0c7aac8b, []int{5}\n}\nfunc (m *HorizontalPodAutoscaler) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscaler) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscaler) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscaler.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscaler) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscaler) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscaler.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscaler proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscalerCondition) Reset()      { *m = HorizontalPodAutoscalerCondition{} }\nfunc (*HorizontalPodAutoscalerCondition) ProtoMessage() {}\nfunc (*HorizontalPodAutoscalerCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1972394c0c7aac8b, []int{6}\n}\nfunc (m *HorizontalPodAutoscalerCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscalerCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscalerCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscalerCondition.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscalerCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscalerCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscalerCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscalerCondition proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscalerList) Reset()      { *m = HorizontalPodAutoscalerList{} }\nfunc (*HorizontalPodAutoscalerList) ProtoMessage() {}\nfunc (*HorizontalPodAutoscalerList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1972394c0c7aac8b, []int{7}\n}\nfunc (m *HorizontalPodAutoscalerList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscalerList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscalerList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscalerList.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscalerList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscalerList) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscalerList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscalerList proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscalerSpec) Reset()      { *m = HorizontalPodAutoscalerSpec{} }\nfunc (*HorizontalPodAutoscalerSpec) ProtoMessage() {}\nfunc (*HorizontalPodAutoscalerSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1972394c0c7aac8b, []int{8}\n}\nfunc (m *HorizontalPodAutoscalerSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscalerSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscalerSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscalerSpec.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscalerSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscalerSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscalerSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscalerSpec proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscalerStatus) Reset()      { *m = HorizontalPodAutoscalerStatus{} }\nfunc (*HorizontalPodAutoscalerStatus) ProtoMessage() {}\nfunc (*HorizontalPodAutoscalerStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1972394c0c7aac8b, []int{9}\n}\nfunc (m *HorizontalPodAutoscalerStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscalerStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscalerStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscalerStatus.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscalerStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscalerStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscalerStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscalerStatus proto.InternalMessageInfo\n\nfunc (m *MetricSpec) Reset()      { *m = MetricSpec{} }\nfunc (*MetricSpec) ProtoMessage() {}\nfunc (*MetricSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1972394c0c7aac8b, []int{10}\n}\nfunc (m *MetricSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MetricSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MetricSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MetricSpec.Merge(m, src)\n}\nfunc (m *MetricSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MetricSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_MetricSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MetricSpec proto.InternalMessageInfo\n\nfunc (m *MetricStatus) Reset()      { *m = MetricStatus{} }\nfunc (*MetricStatus) ProtoMessage() {}\nfunc (*MetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1972394c0c7aac8b, []int{11}\n}\nfunc (m *MetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MetricStatus.Merge(m, src)\n}\nfunc (m *MetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_MetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MetricStatus proto.InternalMessageInfo\n\nfunc (m *ObjectMetricSource) Reset()      { *m = ObjectMetricSource{} }\nfunc (*ObjectMetricSource) ProtoMessage() {}\nfunc (*ObjectMetricSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1972394c0c7aac8b, []int{12}\n}\nfunc (m *ObjectMetricSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ObjectMetricSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ObjectMetricSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ObjectMetricSource.Merge(m, src)\n}\nfunc (m *ObjectMetricSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ObjectMetricSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ObjectMetricSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ObjectMetricSource proto.InternalMessageInfo\n\nfunc (m *ObjectMetricStatus) Reset()      { *m = ObjectMetricStatus{} }\nfunc (*ObjectMetricStatus) ProtoMessage() {}\nfunc (*ObjectMetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1972394c0c7aac8b, []int{13}\n}\nfunc (m *ObjectMetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ObjectMetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ObjectMetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ObjectMetricStatus.Merge(m, src)\n}\nfunc (m *ObjectMetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ObjectMetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ObjectMetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ObjectMetricStatus proto.InternalMessageInfo\n\nfunc (m *PodsMetricSource) Reset()      { *m = PodsMetricSource{} }\nfunc (*PodsMetricSource) ProtoMessage() {}\nfunc (*PodsMetricSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1972394c0c7aac8b, []int{14}\n}\nfunc (m *PodsMetricSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodsMetricSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodsMetricSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodsMetricSource.Merge(m, src)\n}\nfunc (m *PodsMetricSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodsMetricSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodsMetricSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodsMetricSource proto.InternalMessageInfo\n\nfunc (m *PodsMetricStatus) Reset()      { *m = PodsMetricStatus{} }\nfunc (*PodsMetricStatus) ProtoMessage() {}\nfunc (*PodsMetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1972394c0c7aac8b, []int{15}\n}\nfunc (m *PodsMetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodsMetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodsMetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodsMetricStatus.Merge(m, src)\n}\nfunc (m *PodsMetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodsMetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodsMetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodsMetricStatus proto.InternalMessageInfo\n\nfunc (m *ResourceMetricSource) Reset()      { *m = ResourceMetricSource{} }\nfunc (*ResourceMetricSource) ProtoMessage() {}\nfunc (*ResourceMetricSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1972394c0c7aac8b, []int{16}\n}\nfunc (m *ResourceMetricSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceMetricSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceMetricSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceMetricSource.Merge(m, src)\n}\nfunc (m *ResourceMetricSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceMetricSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceMetricSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceMetricSource proto.InternalMessageInfo\n\nfunc (m *ResourceMetricStatus) Reset()      { *m = ResourceMetricStatus{} }\nfunc (*ResourceMetricStatus) ProtoMessage() {}\nfunc (*ResourceMetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1972394c0c7aac8b, []int{17}\n}\nfunc (m *ResourceMetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceMetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceMetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceMetricStatus.Merge(m, src)\n}\nfunc (m *ResourceMetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceMetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceMetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceMetricStatus proto.InternalMessageInfo\n\nfunc (m *Scale) Reset()      { *m = Scale{} }\nfunc (*Scale) ProtoMessage() {}\nfunc (*Scale) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1972394c0c7aac8b, []int{18}\n}\nfunc (m *Scale) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Scale) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Scale) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Scale.Merge(m, src)\n}\nfunc (m *Scale) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Scale) XXX_DiscardUnknown() {\n\txxx_messageInfo_Scale.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Scale proto.InternalMessageInfo\n\nfunc (m *ScaleSpec) Reset()      { *m = ScaleSpec{} }\nfunc (*ScaleSpec) ProtoMessage() {}\nfunc (*ScaleSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1972394c0c7aac8b, []int{19}\n}\nfunc (m *ScaleSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ScaleSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ScaleSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ScaleSpec.Merge(m, src)\n}\nfunc (m *ScaleSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ScaleSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ScaleSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ScaleSpec proto.InternalMessageInfo\n\nfunc (m *ScaleStatus) Reset()      { *m = ScaleStatus{} }\nfunc (*ScaleStatus) ProtoMessage() {}\nfunc (*ScaleStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1972394c0c7aac8b, []int{20}\n}\nfunc (m *ScaleStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ScaleStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ScaleStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ScaleStatus.Merge(m, src)\n}\nfunc (m *ScaleStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ScaleStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ScaleStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ScaleStatus proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*ContainerResourceMetricSource)(nil), \"k8s.io.api.autoscaling.v1.ContainerResourceMetricSource\")\n\tproto.RegisterType((*ContainerResourceMetricStatus)(nil), \"k8s.io.api.autoscaling.v1.ContainerResourceMetricStatus\")\n\tproto.RegisterType((*CrossVersionObjectReference)(nil), \"k8s.io.api.autoscaling.v1.CrossVersionObjectReference\")\n\tproto.RegisterType((*ExternalMetricSource)(nil), \"k8s.io.api.autoscaling.v1.ExternalMetricSource\")\n\tproto.RegisterType((*ExternalMetricStatus)(nil), \"k8s.io.api.autoscaling.v1.ExternalMetricStatus\")\n\tproto.RegisterType((*HorizontalPodAutoscaler)(nil), \"k8s.io.api.autoscaling.v1.HorizontalPodAutoscaler\")\n\tproto.RegisterType((*HorizontalPodAutoscalerCondition)(nil), \"k8s.io.api.autoscaling.v1.HorizontalPodAutoscalerCondition\")\n\tproto.RegisterType((*HorizontalPodAutoscalerList)(nil), \"k8s.io.api.autoscaling.v1.HorizontalPodAutoscalerList\")\n\tproto.RegisterType((*HorizontalPodAutoscalerSpec)(nil), \"k8s.io.api.autoscaling.v1.HorizontalPodAutoscalerSpec\")\n\tproto.RegisterType((*HorizontalPodAutoscalerStatus)(nil), \"k8s.io.api.autoscaling.v1.HorizontalPodAutoscalerStatus\")\n\tproto.RegisterType((*MetricSpec)(nil), \"k8s.io.api.autoscaling.v1.MetricSpec\")\n\tproto.RegisterType((*MetricStatus)(nil), \"k8s.io.api.autoscaling.v1.MetricStatus\")\n\tproto.RegisterType((*ObjectMetricSource)(nil), \"k8s.io.api.autoscaling.v1.ObjectMetricSource\")\n\tproto.RegisterType((*ObjectMetricStatus)(nil), \"k8s.io.api.autoscaling.v1.ObjectMetricStatus\")\n\tproto.RegisterType((*PodsMetricSource)(nil), \"k8s.io.api.autoscaling.v1.PodsMetricSource\")\n\tproto.RegisterType((*PodsMetricStatus)(nil), \"k8s.io.api.autoscaling.v1.PodsMetricStatus\")\n\tproto.RegisterType((*ResourceMetricSource)(nil), \"k8s.io.api.autoscaling.v1.ResourceMetricSource\")\n\tproto.RegisterType((*ResourceMetricStatus)(nil), \"k8s.io.api.autoscaling.v1.ResourceMetricStatus\")\n\tproto.RegisterType((*Scale)(nil), \"k8s.io.api.autoscaling.v1.Scale\")\n\tproto.RegisterType((*ScaleSpec)(nil), \"k8s.io.api.autoscaling.v1.ScaleSpec\")\n\tproto.RegisterType((*ScaleStatus)(nil), \"k8s.io.api.autoscaling.v1.ScaleStatus\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/autoscaling/v1/generated.proto\", fileDescriptor_1972394c0c7aac8b)\n}\n\nvar fileDescriptor_1972394c0c7aac8b = []byte{\n\t// 1593 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x59, 0x4d, 0x6c, 0x13, 0xd7,\n\t0x16, 0x8e, 0x7f, 0x12, 0x92, 0xe3, 0x90, 0x9f, 0x0b, 0x0f, 0x92, 0xf0, 0xf0, 0x44, 0xf3, 0x10,\n\t0x0a, 0xef, 0x3d, 0xc6, 0x8d, 0x4b, 0x11, 0x5d, 0x55, 0xb1, 0x5b, 0x0a, 0x6a, 0x0c, 0xe1, 0x26,\n\t0x50, 0xfa, 0x2b, 0x6e, 0xc6, 0x17, 0x67, 0x88, 0x67, 0xc6, 0x9a, 0x19, 0x5b, 0x04, 0x09, 0xa9,\n\t0x5d, 0x74, 0xdf, 0x0d, 0xed, 0xb6, 0x95, 0xba, 0xed, 0x9a, 0x75, 0x77, 0x2c, 0x59, 0x20, 0x95,\n\t0x95, 0x55, 0xa6, 0x8b, 0x2e, 0xba, 0xea, 0x96, 0x55, 0x75, 0xef, 0xdc, 0x19, 0xcf, 0xd8, 0x9e,\n\t0x89, 0xe3, 0x84, 0xa8, 0xad, 0xd8, 0x65, 0x7c, 0xcf, 0xf9, 0xce, 0xbd, 0xe7, 0xff, 0x9c, 0xc0,\n\t0xb9, 0xed, 0x4b, 0xb6, 0xa2, 0x99, 0x05, 0xd2, 0xd0, 0x0a, 0xa4, 0xe9, 0x98, 0xb6, 0x4a, 0xea,\n\t0x9a, 0x51, 0x2b, 0xb4, 0x96, 0x0b, 0x35, 0x6a, 0x50, 0x8b, 0x38, 0xb4, 0xaa, 0x34, 0x2c, 0xd3,\n\t0x31, 0xd1, 0xbc, 0x47, 0xaa, 0x90, 0x86, 0xa6, 0x84, 0x48, 0x95, 0xd6, 0xf2, 0xc2, 0xf9, 0x9a,\n\t0xe6, 0x6c, 0x35, 0x37, 0x15, 0xd5, 0xd4, 0x0b, 0x35, 0xb3, 0x66, 0x16, 0x38, 0xc7, 0x66, 0xf3,\n\t0x2e, 0xff, 0xe2, 0x1f, 0xfc, 0x2f, 0x0f, 0x69, 0x41, 0x0e, 0x09, 0x55, 0x4d, 0x8b, 0xf6, 0x91,\n\t0xb6, 0x70, 0xa1, 0x43, 0xa3, 0x13, 0x75, 0x4b, 0x33, 0xa8, 0xb5, 0x53, 0x68, 0x6c, 0xd7, 0x38,\n\t0x93, 0x45, 0x6d, 0xb3, 0x69, 0xa9, 0x74, 0x4f, 0x5c, 0x76, 0x41, 0xa7, 0x0e, 0xe9, 0x27, 0xab,\n\t0x10, 0xc7, 0x65, 0x35, 0x0d, 0x47, 0xd3, 0x7b, 0xc5, 0x5c, 0xdc, 0x8d, 0xc1, 0x56, 0xb7, 0xa8,\n\t0x4e, 0xba, 0xf9, 0xe4, 0xdf, 0xd2, 0x70, 0xba, 0x6c, 0x1a, 0x0e, 0x61, 0x1c, 0x58, 0x3c, 0xa2,\n\t0x42, 0x1d, 0x4b, 0x53, 0xd7, 0xf9, 0xdf, 0xa8, 0x0c, 0x59, 0x83, 0xe8, 0x74, 0x2e, 0xb5, 0x98,\n\t0x5a, 0x9a, 0x28, 0x15, 0x9e, 0xb4, 0xa5, 0x11, 0xb7, 0x2d, 0x65, 0xaf, 0x11, 0x9d, 0xbe, 0x6c,\n\t0x4b, 0x52, 0xaf, 0xe2, 0x14, 0x1f, 0x86, 0x91, 0x60, 0xce, 0x8c, 0x6e, 0xc3, 0x9c, 0x43, 0xac,\n\t0x1a, 0x75, 0x56, 0x5a, 0xd4, 0x22, 0x35, 0x7a, 0xd3, 0xd1, 0xea, 0xda, 0x03, 0xe2, 0x68, 0xa6,\n\t0x31, 0x97, 0x5e, 0x4c, 0x2d, 0x8d, 0x96, 0xfe, 0xed, 0xb6, 0xa5, 0xb9, 0x8d, 0x18, 0x1a, 0x1c,\n\t0xcb, 0x8d, 0x5a, 0x80, 0x22, 0x67, 0xb7, 0x48, 0xbd, 0x49, 0xe7, 0x32, 0x8b, 0xa9, 0xa5, 0x5c,\n\t0x51, 0x51, 0x3a, 0x0e, 0x12, 0x68, 0x45, 0x69, 0x6c, 0xd7, 0xb8, 0xc7, 0xf8, 0x26, 0x53, 0x6e,\n\t0x34, 0x89, 0xe1, 0x68, 0xce, 0x4e, 0xe9, 0x84, 0xdb, 0x96, 0xd0, 0x46, 0x0f, 0x1a, 0xee, 0x23,\n\t0x01, 0x15, 0x60, 0x42, 0xf5, 0xf5, 0x36, 0x37, 0xca, 0x75, 0x33, 0x2b, 0x74, 0x33, 0xd1, 0x51,\n\t0x68, 0x87, 0x46, 0xfe, 0x23, 0x41, 0xd3, 0x0e, 0x71, 0x9a, 0xf6, 0xc1, 0x68, 0xfa, 0x13, 0x98,\n\t0x57, 0x9b, 0x96, 0x45, 0x8d, 0x78, 0x55, 0x9f, 0x76, 0xdb, 0xd2, 0x7c, 0x39, 0x8e, 0x08, 0xc7,\n\t0xf3, 0xa3, 0x87, 0x70, 0x2c, 0x7a, 0xb8, 0x1f, 0x6d, 0x9f, 0x12, 0x0f, 0x3c, 0x56, 0xee, 0x85,\n\t0xc4, 0xfd, 0xe4, 0x44, 0x75, 0x9e, 0x1d, 0x40, 0xe7, 0x8f, 0x52, 0x70, 0xaa, 0x6c, 0x99, 0xb6,\n\t0x7d, 0x8b, 0x5a, 0xb6, 0x66, 0x1a, 0xd7, 0x37, 0xef, 0x51, 0xd5, 0xc1, 0xf4, 0x2e, 0xb5, 0xa8,\n\t0xa1, 0x52, 0xb4, 0x08, 0xd9, 0x6d, 0xcd, 0xa8, 0x0a, 0x8d, 0x4f, 0xfa, 0x1a, 0xff, 0x40, 0x33,\n\t0xaa, 0x98, 0x9f, 0x30, 0x0a, 0x6e, 0x93, 0x74, 0x94, 0x22, 0xa4, 0xf0, 0x22, 0x00, 0x69, 0x68,\n\t0x42, 0x00, 0x57, 0xc5, 0x44, 0x09, 0x09, 0x3a, 0x58, 0x59, 0xbb, 0x2a, 0x4e, 0x70, 0x88, 0x4a,\n\t0xfe, 0x26, 0x03, 0xc7, 0xdf, 0xbb, 0xef, 0x50, 0xcb, 0x20, 0xf5, 0x48, 0xb0, 0x15, 0x01, 0x74,\n\t0xfe, 0x7d, 0xad, 0xe3, 0x08, 0x01, 0x58, 0x25, 0x38, 0xc1, 0x21, 0x2a, 0x64, 0xc2, 0x94, 0xf7,\n\t0xb5, 0x4e, 0xeb, 0x54, 0x75, 0x4c, 0x8b, 0x5f, 0x36, 0x57, 0x7c, 0x33, 0xc9, 0x1e, 0xb6, 0xc2,\n\t0x52, 0x8f, 0xd2, 0x5a, 0x56, 0x56, 0xc9, 0x26, 0xad, 0xfb, 0xac, 0x25, 0xe4, 0xb6, 0xa5, 0xa9,\n\t0x4a, 0x04, 0x0e, 0x77, 0xc1, 0x23, 0x02, 0x39, 0x2f, 0x20, 0xf6, 0x63, 0xfd, 0x69, 0xb7, 0x2d,\n\t0xe5, 0x36, 0x3a, 0x30, 0x38, 0x8c, 0x19, 0x13, 0xd5, 0xd9, 0x57, 0x1d, 0xd5, 0xf2, 0x77, 0xbd,\n\t0x86, 0xf1, 0x62, 0xf3, 0x6f, 0x61, 0x98, 0x2d, 0x98, 0x14, 0x61, 0xb3, 0x1f, 0xcb, 0x1c, 0x17,\n\t0xcf, 0x9a, 0x2c, 0x87, 0xb0, 0x70, 0x04, 0x19, 0xed, 0xf4, 0x4f, 0x04, 0xc3, 0x19, 0xe8, 0xe4,\n\t0x5e, 0x92, 0x80, 0xfc, 0x38, 0x0d, 0x27, 0xaf, 0x98, 0x96, 0xf6, 0x80, 0x45, 0x79, 0x7d, 0xcd,\n\t0xac, 0xae, 0x88, 0xca, 0x4f, 0x2d, 0x74, 0x07, 0xc6, 0x99, 0xf6, 0xaa, 0xc4, 0x21, 0xdc, 0x46,\n\t0xb9, 0xe2, 0x1b, 0x83, 0xe9, 0xda, 0x4b, 0x0c, 0x15, 0xea, 0x90, 0x8e, 0x55, 0x3b, 0xbf, 0xe1,\n\t0x00, 0x15, 0xdd, 0x86, 0xac, 0xdd, 0xa0, 0xaa, 0xb0, 0xe4, 0x45, 0x25, 0xb6, 0x03, 0x51, 0x62,\n\t0xee, 0xb8, 0xde, 0xa0, 0x6a, 0x27, 0x8f, 0xb0, 0x2f, 0xcc, 0x11, 0xd1, 0x1d, 0x18, 0xb3, 0xb9,\n\t0xaf, 0x09, 0xb3, 0x5d, 0x1a, 0x02, 0x9b, 0xf3, 0x97, 0xa6, 0x04, 0xfa, 0x98, 0xf7, 0x8d, 0x05,\n\t0xae, 0xfc, 0x55, 0x06, 0x16, 0x63, 0x38, 0xcb, 0xa6, 0x51, 0xd5, 0x78, 0x8a, 0xbf, 0x02, 0x59,\n\t0x67, 0xa7, 0xe1, 0xbb, 0xf8, 0x05, 0xff, 0xa2, 0x1b, 0x3b, 0x0d, 0x56, 0x84, 0xce, 0xec, 0xc6,\n\t0xcf, 0xe8, 0x30, 0x47, 0x40, 0xab, 0xc1, 0x83, 0xd2, 0x11, 0x2c, 0x71, 0xad, 0x97, 0x6d, 0xa9,\n\t0x4f, 0xd7, 0xa5, 0x04, 0x48, 0xd1, 0xcb, 0xb3, 0x8c, 0x50, 0x27, 0xb6, 0xb3, 0x61, 0x11, 0xc3,\n\t0xf6, 0x24, 0x69, 0xba, 0xef, 0xe1, 0xff, 0x1d, 0xcc, 0xc8, 0x8c, 0xa3, 0xb4, 0x20, 0x6e, 0x81,\n\t0x56, 0x7b, 0xd0, 0x70, 0x1f, 0x09, 0xe8, 0x2c, 0x8c, 0x59, 0x94, 0xd8, 0xa6, 0x21, 0x0a, 0x4e,\n\t0xa0, 0x5c, 0xcc, 0x7f, 0xc5, 0xe2, 0x14, 0x9d, 0x83, 0x23, 0x3a, 0xb5, 0x6d, 0x52, 0xa3, 0xa2,\n\t0x1b, 0x98, 0x16, 0x84, 0x47, 0x2a, 0xde, 0xcf, 0xd8, 0x3f, 0x97, 0x9f, 0xa5, 0xe0, 0x54, 0x8c,\n\t0x1e, 0x57, 0x35, 0xdb, 0x41, 0x9f, 0xf6, 0x78, 0xb1, 0x32, 0x60, 0xc6, 0xd0, 0x6c, 0xcf, 0x87,\n\t0x67, 0x84, 0xec, 0x71, 0xff, 0x97, 0x90, 0x07, 0x7f, 0x08, 0xa3, 0x9a, 0x43, 0x75, 0x66, 0x95,\n\t0xcc, 0x52, 0xae, 0x58, 0xdc, 0xbb, 0x9b, 0x95, 0x8e, 0x0a, 0xf8, 0xd1, 0xab, 0x0c, 0x08, 0x7b,\n\t0x78, 0xf2, 0xef, 0xe9, 0xd8, 0x67, 0x31, 0x37, 0x47, 0x2d, 0x98, 0xe2, 0x5f, 0x5e, 0x2a, 0xc6,\n\t0xf4, 0xae, 0x78, 0x5c, 0x52, 0x10, 0x25, 0x14, 0xef, 0xd2, 0x09, 0x71, 0x8b, 0xa9, 0xf5, 0x08,\n\t0x2a, 0xee, 0x92, 0x82, 0x96, 0x21, 0xa7, 0x6b, 0x06, 0xa6, 0x8d, 0xba, 0xa6, 0x12, 0x5b, 0xf4,\n\t0x40, 0xbc, 0xfc, 0x54, 0x3a, 0x3f, 0xe3, 0x30, 0x0d, 0x7a, 0x0b, 0x72, 0x3a, 0xb9, 0x1f, 0xb0,\n\t0x64, 0x38, 0xcb, 0x31, 0x21, 0x2f, 0x57, 0xe9, 0x1c, 0xe1, 0x30, 0x1d, 0xba, 0x07, 0x79, 0xaf,\n\t0xa6, 0x94, 0xd7, 0x6e, 0x86, 0xda, 0xa6, 0x35, 0x6a, 0xa9, 0xd4, 0x70, 0x98, 0x6b, 0x64, 0x39,\n\t0x92, 0xec, 0xb6, 0xa5, 0xfc, 0x46, 0x22, 0x25, 0xde, 0x05, 0x49, 0xfe, 0x29, 0x03, 0xa7, 0x13,\n\t0xd3, 0x00, 0xba, 0x0c, 0xc8, 0xdc, 0xb4, 0xa9, 0xd5, 0xa2, 0xd5, 0xf7, 0xbd, 0xae, 0x9f, 0x35,\n\t0x28, 0x4c, 0xe7, 0x19, 0xaf, 0x26, 0x5e, 0xef, 0x39, 0xc5, 0x7d, 0x38, 0x90, 0x0a, 0x47, 0x59,\n\t0x5c, 0x78, 0x5a, 0xd6, 0x44, 0x2f, 0xb4, 0xb7, 0xa0, 0x9b, 0x75, 0xdb, 0xd2, 0xd1, 0xd5, 0x30,\n\t0x08, 0x8e, 0x62, 0xa2, 0x15, 0x98, 0x16, 0xc9, 0xbe, 0x4b, 0xeb, 0x27, 0x85, 0xd6, 0xa7, 0xcb,\n\t0xd1, 0x63, 0xdc, 0x4d, 0xcf, 0x20, 0xaa, 0xd4, 0xd6, 0x2c, 0x5a, 0x0d, 0x20, 0xb2, 0x51, 0x88,\n\t0x77, 0xa3, 0xc7, 0xb8, 0x9b, 0x1e, 0xe9, 0x20, 0x09, 0xd4, 0x58, 0x0b, 0x8e, 0x72, 0xc8, 0xff,\n\t0xb8, 0x6d, 0x49, 0x2a, 0x27, 0x93, 0xe2, 0xdd, 0xb0, 0xe4, 0x47, 0x59, 0x10, 0xbd, 0x03, 0x0f,\n\t0x90, 0x0b, 0x91, 0xd4, 0xbb, 0xd8, 0x95, 0x7a, 0x67, 0xc2, 0x8d, 0x62, 0x28, 0xcd, 0xde, 0x80,\n\t0x31, 0x93, 0x47, 0x86, 0xb0, 0xcb, 0xf9, 0x84, 0x70, 0x0a, 0x4a, 0x5a, 0x00, 0x54, 0x02, 0x96,\n\t0xcb, 0x44, 0x68, 0x09, 0x20, 0x74, 0x15, 0xb2, 0x0d, 0xb3, 0xea, 0x17, 0xa2, 0xff, 0x25, 0x00,\n\t0xae, 0x99, 0x55, 0x3b, 0x02, 0x37, 0xce, 0x6e, 0xcc, 0x7e, 0xc5, 0x1c, 0x02, 0x7d, 0x04, 0xe3,\n\t0x7e, 0xc1, 0x17, 0xdd, 0x41, 0x21, 0x01, 0xae, 0xdf, 0x00, 0x5a, 0x9a, 0x64, 0x89, 0xcc, 0x3f,\n\t0xc1, 0x01, 0x1c, 0x7a, 0x08, 0xb3, 0x6a, 0xf7, 0x3c, 0x35, 0x77, 0x64, 0xd7, 0xda, 0x99, 0x38,\n\t0xed, 0x96, 0xfe, 0xe5, 0xb6, 0xa5, 0xd9, 0x1e, 0x12, 0xdc, 0x2b, 0x89, 0xbd, 0x8c, 0x8a, 0x4e,\n\t0x91, 0x3b, 0x45, 0xf2, 0xcb, 0xfa, 0x75, 0xfb, 0xde, 0xcb, 0xfc, 0x13, 0x1c, 0xc0, 0xc9, 0xdf,\n\t0x66, 0x61, 0x32, 0xd2, 0x7d, 0x1e, 0xb2, 0x67, 0x78, 0x6d, 0xc4, 0x81, 0x79, 0x86, 0x07, 0x77,\n\t0xa0, 0x9e, 0xe1, 0x41, 0x1e, 0x92, 0x67, 0x78, 0xc2, 0x0e, 0xc9, 0x33, 0x42, 0x2f, 0xeb, 0xe3,\n\t0x19, 0xcf, 0x32, 0x80, 0x7a, 0x83, 0x18, 0x7d, 0x0e, 0x63, 0x5e, 0xb9, 0xd8, 0x67, 0x49, 0x0d,\n\t0x9a, 0x1b, 0x51, 0x3d, 0x05, 0x6a, 0xd7, 0xf4, 0x93, 0x1e, 0x68, 0xfa, 0xa1, 0x07, 0x31, 0x25,\n\t0x06, 0x35, 0x37, 0x76, 0x52, 0xfc, 0x0c, 0xc6, 0x6d, 0x7f, 0xbc, 0xca, 0x0e, 0x3f, 0x5e, 0x71,\n\t0x85, 0x07, 0x83, 0x55, 0x00, 0x89, 0xaa, 0x30, 0x49, 0xc2, 0x13, 0xce, 0xe8, 0x50, 0xcf, 0x98,\n\t0x61, 0xe3, 0x54, 0x64, 0xb4, 0x89, 0xa0, 0xca, 0x3f, 0x77, 0x9b, 0xd5, 0x0b, 0xfb, 0xbf, 0xa2,\n\t0x59, 0x0f, 0x6f, 0xc6, 0xfc, 0x47, 0x58, 0xf6, 0xfb, 0x34, 0xcc, 0x74, 0x17, 0xc9, 0xa1, 0x96,\n\t0x09, 0x0f, 0xfa, 0x6e, 0x44, 0xd2, 0x43, 0x5d, 0x3a, 0x98, 0x81, 0x06, 0xdc, 0x75, 0x86, 0x2d,\n\t0x91, 0x39, 0x70, 0x4b, 0xc8, 0x3f, 0x44, 0x75, 0x34, 0xfc, 0xc2, 0x25, 0x66, 0x3d, 0x99, 0x3e,\n\t0xa4, 0xf5, 0xe4, 0x2b, 0x56, 0xd3, 0x8f, 0x69, 0x38, 0xfe, 0x7a, 0x43, 0x3f, 0xf8, 0x2e, 0xef,\n\t0x71, 0xaf, 0xbe, 0x5e, 0xef, 0xd9, 0x07, 0x5a, 0xb1, 0x7d, 0x99, 0x86, 0x51, 0x3e, 0x9a, 0x1d,\n\t0xc2, 0x42, 0xed, 0x72, 0x64, 0xa1, 0x76, 0x26, 0xa1, 0xc2, 0xf1, 0x1b, 0xc5, 0xae, 0xcf, 0xae,\n\t0x75, 0xad, 0xcf, 0xce, 0xee, 0x8a, 0x94, 0xbc, 0x2c, 0x7b, 0x1b, 0x26, 0x02, 0x81, 0xe8, 0xff,\n\t0xac, 0x57, 0x15, 0x33, 0x65, 0x8a, 0xdb, 0x36, 0xd8, 0xb0, 0x04, 0xc3, 0x64, 0x40, 0x21, 0x6b,\n\t0x90, 0x0b, 0x49, 0xd8, 0x1b, 0x33, 0xa3, 0xb6, 0xc3, 0xeb, 0xe2, 0x89, 0x0e, 0x75, 0x6f, 0x4e,\n\t0x28, 0xbd, 0xf3, 0xe4, 0x45, 0x7e, 0xe4, 0xe9, 0x8b, 0xfc, 0xc8, 0xf3, 0x17, 0xf9, 0x91, 0x2f,\n\t0xdc, 0x7c, 0xea, 0x89, 0x9b, 0x4f, 0x3d, 0x75, 0xf3, 0xa9, 0xe7, 0x6e, 0x3e, 0xf5, 0x8b, 0x9b,\n\t0x4f, 0x7d, 0xfd, 0x6b, 0x7e, 0xe4, 0xe3, 0xf9, 0xd8, 0x7f, 0xa9, 0xfe, 0x19, 0x00, 0x00, 0xff,\n\t0xff, 0xd7, 0x67, 0xd4, 0x08, 0x6e, 0x1d, 0x00, 0x00,\n}\n\nfunc (m *ContainerResourceMetricSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerResourceMetricSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerResourceMetricSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Container)\n\tcopy(dAtA[i:], m.Container)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Container)))\n\ti--\n\tdAtA[i] = 0x2a\n\tif m.TargetAverageValue != nil {\n\t\t{\n\t\t\tsize, err := m.TargetAverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.TargetAverageUtilization != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.TargetAverageUtilization))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerResourceMetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerResourceMetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerResourceMetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Container)\n\tcopy(dAtA[i:], m.Container)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Container)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.CurrentAverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.CurrentAverageUtilization != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.CurrentAverageUtilization))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CrossVersionObjectReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CrossVersionObjectReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CrossVersionObjectReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.APIVersion)\n\tcopy(dAtA[i:], m.APIVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIVersion)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ExternalMetricSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ExternalMetricSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ExternalMetricSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.TargetAverageValue != nil {\n\t\t{\n\t\t\tsize, err := m.TargetAverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.TargetValue != nil {\n\t\t{\n\t\t\tsize, err := m.TargetValue.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.MetricSelector != nil {\n\t\t{\n\t\t\tsize, err := m.MetricSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.MetricName)\n\tcopy(dAtA[i:], m.MetricName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.MetricName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ExternalMetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ExternalMetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ExternalMetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.CurrentAverageValue != nil {\n\t\t{\n\t\t\tsize, err := m.CurrentAverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\t{\n\t\tsize, err := m.CurrentValue.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.MetricSelector != nil {\n\t\t{\n\t\t\tsize, err := m.MetricSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.MetricName)\n\tcopy(dAtA[i:], m.MetricName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.MetricName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscaler) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscaler) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscaler) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscalerCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscalerCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscalerCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscalerList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscalerList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscalerList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscalerSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscalerSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscalerSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.TargetCPUUtilizationPercentage != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.TargetCPUUtilizationPercentage))\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MaxReplicas))\n\ti--\n\tdAtA[i] = 0x18\n\tif m.MinReplicas != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.MinReplicas))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\t{\n\t\tsize, err := m.ScaleTargetRef.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscalerStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscalerStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscalerStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.CurrentCPUUtilizationPercentage != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.CurrentCPUUtilizationPercentage))\n\t\ti--\n\t\tdAtA[i] = 0x28\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.DesiredReplicas))\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.CurrentReplicas))\n\ti--\n\tdAtA[i] = 0x18\n\tif m.LastScaleTime != nil {\n\t\t{\n\t\t\tsize, err := m.LastScaleTime.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.ObservedGeneration != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.ObservedGeneration))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MetricSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MetricSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MetricSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ContainerResource != nil {\n\t\t{\n\t\t\tsize, err := m.ContainerResource.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif m.External != nil {\n\t\t{\n\t\t\tsize, err := m.External.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.Resource != nil {\n\t\t{\n\t\t\tsize, err := m.Resource.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Pods != nil {\n\t\t{\n\t\t\tsize, err := m.Pods.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Object != nil {\n\t\t{\n\t\t\tsize, err := m.Object.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ContainerResource != nil {\n\t\t{\n\t\t\tsize, err := m.ContainerResource.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif m.External != nil {\n\t\t{\n\t\t\tsize, err := m.External.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.Resource != nil {\n\t\t{\n\t\t\tsize, err := m.Resource.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Pods != nil {\n\t\t{\n\t\t\tsize, err := m.Pods.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Object != nil {\n\t\t{\n\t\t\tsize, err := m.Object.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ObjectMetricSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ObjectMetricSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ObjectMetricSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.AverageValue != nil {\n\t\t{\n\t\t\tsize, err := m.AverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\t{\n\t\tsize, err := m.TargetValue.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.MetricName)\n\tcopy(dAtA[i:], m.MetricName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.MetricName)))\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.Target.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ObjectMetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ObjectMetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ObjectMetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.AverageValue != nil {\n\t\t{\n\t\t\tsize, err := m.AverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\t{\n\t\tsize, err := m.CurrentValue.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.MetricName)\n\tcopy(dAtA[i:], m.MetricName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.MetricName)))\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.Target.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodsMetricSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodsMetricSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodsMetricSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\t{\n\t\tsize, err := m.TargetAverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.MetricName)\n\tcopy(dAtA[i:], m.MetricName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.MetricName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodsMetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodsMetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodsMetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\t{\n\t\tsize, err := m.CurrentAverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.MetricName)\n\tcopy(dAtA[i:], m.MetricName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.MetricName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceMetricSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceMetricSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceMetricSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.TargetAverageValue != nil {\n\t\t{\n\t\t\tsize, err := m.TargetAverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.TargetAverageUtilization != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.TargetAverageUtilization))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceMetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceMetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceMetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.CurrentAverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.CurrentAverageUtilization != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.CurrentAverageUtilization))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Scale) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Scale) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Scale) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ScaleSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ScaleSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ScaleSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Replicas))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ScaleStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ScaleStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ScaleStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Selector)\n\tcopy(dAtA[i:], m.Selector)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Selector)))\n\ti--\n\tdAtA[i] = 0x12\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Replicas))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *ContainerResourceMetricSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.TargetAverageUtilization != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.TargetAverageUtilization))\n\t}\n\tif m.TargetAverageValue != nil {\n\t\tl = m.TargetAverageValue.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.Container)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ContainerResourceMetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.CurrentAverageUtilization != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.CurrentAverageUtilization))\n\t}\n\tl = m.CurrentAverageValue.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Container)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *CrossVersionObjectReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.APIVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ExternalMetricSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.MetricName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.MetricSelector != nil {\n\t\tl = m.MetricSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.TargetValue != nil {\n\t\tl = m.TargetValue.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.TargetAverageValue != nil {\n\t\tl = m.TargetAverageValue.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ExternalMetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.MetricName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.MetricSelector != nil {\n\t\tl = m.MetricSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = m.CurrentValue.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.CurrentAverageValue != nil {\n\t\tl = m.CurrentAverageValue.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscaler) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscalerCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscalerList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscalerSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ScaleTargetRef.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.MinReplicas != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.MinReplicas))\n\t}\n\tn += 1 + sovGenerated(uint64(m.MaxReplicas))\n\tif m.TargetCPUUtilizationPercentage != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.TargetCPUUtilizationPercentage))\n\t}\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscalerStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.ObservedGeneration != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.ObservedGeneration))\n\t}\n\tif m.LastScaleTime != nil {\n\t\tl = m.LastScaleTime.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 1 + sovGenerated(uint64(m.CurrentReplicas))\n\tn += 1 + sovGenerated(uint64(m.DesiredReplicas))\n\tif m.CurrentCPUUtilizationPercentage != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.CurrentCPUUtilizationPercentage))\n\t}\n\treturn n\n}\n\nfunc (m *MetricSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Object != nil {\n\t\tl = m.Object.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Pods != nil {\n\t\tl = m.Pods.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Resource != nil {\n\t\tl = m.Resource.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.External != nil {\n\t\tl = m.External.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ContainerResource != nil {\n\t\tl = m.ContainerResource.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *MetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Object != nil {\n\t\tl = m.Object.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Pods != nil {\n\t\tl = m.Pods.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Resource != nil {\n\t\tl = m.Resource.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.External != nil {\n\t\tl = m.External.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ContainerResource != nil {\n\t\tl = m.ContainerResource.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ObjectMetricSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Target.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.MetricName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.TargetValue.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.AverageValue != nil {\n\t\tl = m.AverageValue.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ObjectMetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Target.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.MetricName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.CurrentValue.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.AverageValue != nil {\n\t\tl = m.AverageValue.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PodsMetricSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.MetricName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.TargetAverageValue.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PodsMetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.MetricName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.CurrentAverageValue.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ResourceMetricSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.TargetAverageUtilization != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.TargetAverageUtilization))\n\t}\n\tif m.TargetAverageValue != nil {\n\t\tl = m.TargetAverageValue.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ResourceMetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.CurrentAverageUtilization != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.CurrentAverageUtilization))\n\t}\n\tl = m.CurrentAverageValue.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *Scale) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ScaleSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Replicas))\n\treturn n\n}\n\nfunc (m *ScaleStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Replicas))\n\tl = len(m.Selector)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *ContainerResourceMetricSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ContainerResourceMetricSource{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`TargetAverageUtilization:` + valueToStringGenerated(this.TargetAverageUtilization) + `,`,\n\t\t`TargetAverageValue:` + strings.Replace(fmt.Sprintf(\"%v\", this.TargetAverageValue), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`Container:` + fmt.Sprintf(\"%v\", this.Container) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerResourceMetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ContainerResourceMetricStatus{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`CurrentAverageUtilization:` + valueToStringGenerated(this.CurrentAverageUtilization) + `,`,\n\t\t`CurrentAverageValue:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.CurrentAverageValue), \"Quantity\", \"resource.Quantity\", 1), `&`, ``, 1) + `,`,\n\t\t`Container:` + fmt.Sprintf(\"%v\", this.Container) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CrossVersionObjectReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CrossVersionObjectReference{`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`APIVersion:` + fmt.Sprintf(\"%v\", this.APIVersion) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ExternalMetricSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ExternalMetricSource{`,\n\t\t`MetricName:` + fmt.Sprintf(\"%v\", this.MetricName) + `,`,\n\t\t`MetricSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.MetricSelector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`TargetValue:` + strings.Replace(fmt.Sprintf(\"%v\", this.TargetValue), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`TargetAverageValue:` + strings.Replace(fmt.Sprintf(\"%v\", this.TargetAverageValue), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ExternalMetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ExternalMetricStatus{`,\n\t\t`MetricName:` + fmt.Sprintf(\"%v\", this.MetricName) + `,`,\n\t\t`MetricSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.MetricSelector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`CurrentValue:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.CurrentValue), \"Quantity\", \"resource.Quantity\", 1), `&`, ``, 1) + `,`,\n\t\t`CurrentAverageValue:` + strings.Replace(fmt.Sprintf(\"%v\", this.CurrentAverageValue), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscaler) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HorizontalPodAutoscaler{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"HorizontalPodAutoscalerSpec\", \"HorizontalPodAutoscalerSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"HorizontalPodAutoscalerStatus\", \"HorizontalPodAutoscalerStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscalerCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HorizontalPodAutoscalerCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscalerList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]HorizontalPodAutoscaler{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"HorizontalPodAutoscaler\", \"HorizontalPodAutoscaler\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&HorizontalPodAutoscalerList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscalerSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HorizontalPodAutoscalerSpec{`,\n\t\t`ScaleTargetRef:` + strings.Replace(strings.Replace(this.ScaleTargetRef.String(), \"CrossVersionObjectReference\", \"CrossVersionObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`MinReplicas:` + valueToStringGenerated(this.MinReplicas) + `,`,\n\t\t`MaxReplicas:` + fmt.Sprintf(\"%v\", this.MaxReplicas) + `,`,\n\t\t`TargetCPUUtilizationPercentage:` + valueToStringGenerated(this.TargetCPUUtilizationPercentage) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscalerStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HorizontalPodAutoscalerStatus{`,\n\t\t`ObservedGeneration:` + valueToStringGenerated(this.ObservedGeneration) + `,`,\n\t\t`LastScaleTime:` + strings.Replace(fmt.Sprintf(\"%v\", this.LastScaleTime), \"Time\", \"v1.Time\", 1) + `,`,\n\t\t`CurrentReplicas:` + fmt.Sprintf(\"%v\", this.CurrentReplicas) + `,`,\n\t\t`DesiredReplicas:` + fmt.Sprintf(\"%v\", this.DesiredReplicas) + `,`,\n\t\t`CurrentCPUUtilizationPercentage:` + valueToStringGenerated(this.CurrentCPUUtilizationPercentage) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MetricSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&MetricSpec{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Object:` + strings.Replace(this.Object.String(), \"ObjectMetricSource\", \"ObjectMetricSource\", 1) + `,`,\n\t\t`Pods:` + strings.Replace(this.Pods.String(), \"PodsMetricSource\", \"PodsMetricSource\", 1) + `,`,\n\t\t`Resource:` + strings.Replace(this.Resource.String(), \"ResourceMetricSource\", \"ResourceMetricSource\", 1) + `,`,\n\t\t`External:` + strings.Replace(this.External.String(), \"ExternalMetricSource\", \"ExternalMetricSource\", 1) + `,`,\n\t\t`ContainerResource:` + strings.Replace(this.ContainerResource.String(), \"ContainerResourceMetricSource\", \"ContainerResourceMetricSource\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&MetricStatus{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Object:` + strings.Replace(this.Object.String(), \"ObjectMetricStatus\", \"ObjectMetricStatus\", 1) + `,`,\n\t\t`Pods:` + strings.Replace(this.Pods.String(), \"PodsMetricStatus\", \"PodsMetricStatus\", 1) + `,`,\n\t\t`Resource:` + strings.Replace(this.Resource.String(), \"ResourceMetricStatus\", \"ResourceMetricStatus\", 1) + `,`,\n\t\t`External:` + strings.Replace(this.External.String(), \"ExternalMetricStatus\", \"ExternalMetricStatus\", 1) + `,`,\n\t\t`ContainerResource:` + strings.Replace(this.ContainerResource.String(), \"ContainerResourceMetricStatus\", \"ContainerResourceMetricStatus\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ObjectMetricSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ObjectMetricSource{`,\n\t\t`Target:` + strings.Replace(strings.Replace(this.Target.String(), \"CrossVersionObjectReference\", \"CrossVersionObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`MetricName:` + fmt.Sprintf(\"%v\", this.MetricName) + `,`,\n\t\t`TargetValue:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.TargetValue), \"Quantity\", \"resource.Quantity\", 1), `&`, ``, 1) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`AverageValue:` + strings.Replace(fmt.Sprintf(\"%v\", this.AverageValue), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ObjectMetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ObjectMetricStatus{`,\n\t\t`Target:` + strings.Replace(strings.Replace(this.Target.String(), \"CrossVersionObjectReference\", \"CrossVersionObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`MetricName:` + fmt.Sprintf(\"%v\", this.MetricName) + `,`,\n\t\t`CurrentValue:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.CurrentValue), \"Quantity\", \"resource.Quantity\", 1), `&`, ``, 1) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`AverageValue:` + strings.Replace(fmt.Sprintf(\"%v\", this.AverageValue), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodsMetricSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodsMetricSource{`,\n\t\t`MetricName:` + fmt.Sprintf(\"%v\", this.MetricName) + `,`,\n\t\t`TargetAverageValue:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.TargetAverageValue), \"Quantity\", \"resource.Quantity\", 1), `&`, ``, 1) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodsMetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodsMetricStatus{`,\n\t\t`MetricName:` + fmt.Sprintf(\"%v\", this.MetricName) + `,`,\n\t\t`CurrentAverageValue:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.CurrentAverageValue), \"Quantity\", \"resource.Quantity\", 1), `&`, ``, 1) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceMetricSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceMetricSource{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`TargetAverageUtilization:` + valueToStringGenerated(this.TargetAverageUtilization) + `,`,\n\t\t`TargetAverageValue:` + strings.Replace(fmt.Sprintf(\"%v\", this.TargetAverageValue), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceMetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceMetricStatus{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`CurrentAverageUtilization:` + valueToStringGenerated(this.CurrentAverageUtilization) + `,`,\n\t\t`CurrentAverageValue:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.CurrentAverageValue), \"Quantity\", \"resource.Quantity\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Scale) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Scale{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ScaleSpec\", \"ScaleSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"ScaleStatus\", \"ScaleStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ScaleSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ScaleSpec{`,\n\t\t`Replicas:` + fmt.Sprintf(\"%v\", this.Replicas) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ScaleStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ScaleStatus{`,\n\t\t`Replicas:` + fmt.Sprintf(\"%v\", this.Replicas) + `,`,\n\t\t`Selector:` + fmt.Sprintf(\"%v\", this.Selector) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *ContainerResourceMetricSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerResourceMetricSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerResourceMetricSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetAverageUtilization\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.TargetAverageUtilization = &v\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetAverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.TargetAverageValue == nil {\n\t\t\t\tm.TargetAverageValue = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.TargetAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Container\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Container = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerResourceMetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerResourceMetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerResourceMetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentAverageUtilization\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.CurrentAverageUtilization = &v\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentAverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.CurrentAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Container\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Container = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CrossVersionObjectReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CrossVersionObjectReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CrossVersionObjectReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ExternalMetricSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ExternalMetricSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ExternalMetricSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MetricName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MetricName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MetricSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MetricSelector == nil {\n\t\t\t\tm.MetricSelector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.MetricSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.TargetValue == nil {\n\t\t\t\tm.TargetValue = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.TargetValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetAverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.TargetAverageValue == nil {\n\t\t\t\tm.TargetAverageValue = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.TargetAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ExternalMetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ExternalMetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ExternalMetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MetricName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MetricName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MetricSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MetricSelector == nil {\n\t\t\t\tm.MetricSelector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.MetricSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.CurrentValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentAverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.CurrentAverageValue == nil {\n\t\t\t\tm.CurrentAverageValue = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.CurrentAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscaler) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscaler: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscaler: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscalerCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = HorizontalPodAutoscalerConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscalerList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, HorizontalPodAutoscaler{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscalerSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ScaleTargetRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ScaleTargetRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MinReplicas\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.MinReplicas = &v\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxReplicas\", wireType)\n\t\t\t}\n\t\t\tm.MaxReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MaxReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetCPUUtilizationPercentage\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.TargetCPUUtilizationPercentage = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscalerStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ObservedGeneration = &v\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastScaleTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.LastScaleTime == nil {\n\t\t\t\tm.LastScaleTime = &v1.Time{}\n\t\t\t}\n\t\t\tif err := m.LastScaleTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentReplicas\", wireType)\n\t\t\t}\n\t\t\tm.CurrentReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.CurrentReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DesiredReplicas\", wireType)\n\t\t\t}\n\t\t\tm.DesiredReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.DesiredReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentCPUUtilizationPercentage\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.CurrentCPUUtilizationPercentage = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MetricSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MetricSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MetricSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = MetricSourceType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Object\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Object == nil {\n\t\t\t\tm.Object = &ObjectMetricSource{}\n\t\t\t}\n\t\t\tif err := m.Object.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Pods\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Pods == nil {\n\t\t\t\tm.Pods = &PodsMetricSource{}\n\t\t\t}\n\t\t\tif err := m.Pods.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Resource == nil {\n\t\t\t\tm.Resource = &ResourceMetricSource{}\n\t\t\t}\n\t\t\tif err := m.Resource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field External\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.External == nil {\n\t\t\t\tm.External = &ExternalMetricSource{}\n\t\t\t}\n\t\t\tif err := m.External.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerResource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ContainerResource == nil {\n\t\t\t\tm.ContainerResource = &ContainerResourceMetricSource{}\n\t\t\t}\n\t\t\tif err := m.ContainerResource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = MetricSourceType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Object\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Object == nil {\n\t\t\t\tm.Object = &ObjectMetricStatus{}\n\t\t\t}\n\t\t\tif err := m.Object.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Pods\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Pods == nil {\n\t\t\t\tm.Pods = &PodsMetricStatus{}\n\t\t\t}\n\t\t\tif err := m.Pods.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Resource == nil {\n\t\t\t\tm.Resource = &ResourceMetricStatus{}\n\t\t\t}\n\t\t\tif err := m.Resource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field External\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.External == nil {\n\t\t\t\tm.External = &ExternalMetricStatus{}\n\t\t\t}\n\t\t\tif err := m.External.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerResource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ContainerResource == nil {\n\t\t\t\tm.ContainerResource = &ContainerResourceMetricStatus{}\n\t\t\t}\n\t\t\tif err := m.ContainerResource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ObjectMetricSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectMetricSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectMetricSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Target\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Target.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MetricName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MetricName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.TargetValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AverageValue == nil {\n\t\t\t\tm.AverageValue = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.AverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ObjectMetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectMetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectMetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Target\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Target.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MetricName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MetricName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.CurrentValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AverageValue == nil {\n\t\t\t\tm.AverageValue = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.AverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodsMetricSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodsMetricSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodsMetricSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MetricName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MetricName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetAverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.TargetAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodsMetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodsMetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodsMetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MetricName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MetricName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentAverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.CurrentAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceMetricSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceMetricSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceMetricSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetAverageUtilization\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.TargetAverageUtilization = &v\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetAverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.TargetAverageValue == nil {\n\t\t\t\tm.TargetAverageValue = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.TargetAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceMetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceMetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceMetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentAverageUtilization\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.CurrentAverageUtilization = &v\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentAverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.CurrentAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Scale) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Scale: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Scale: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ScaleSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ScaleSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ScaleSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tm.Replicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Replicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ScaleStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ScaleStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ScaleStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tm.Replicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Replicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Selector = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.autoscaling.v1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/api/resource/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/autoscaling/v1\";\n\n// ContainerResourceMetricSource indicates how to scale on a resource metric known to\n// Kubernetes, as specified in the requests and limits, describing a single container in\n// each of the pods of the current scale target(e.g. CPU or memory). The values will be\n// averaged together before being compared to the target. Such metrics are built into\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source. Only one \"target\" type\n// should be set.\nmessage ContainerResourceMetricSource {\n  // name is the name of the resource in question.\n  optional string name = 1;\n\n  // targetAverageUtilization is the target value of the average of the\n  // resource metric across all relevant pods, represented as a percentage of\n  // the requested value of the resource for the pods.\n  // +optional\n  optional int32 targetAverageUtilization = 2;\n\n  // targetAverageValue is the target value of the average of the\n  // resource metric across all relevant pods, as a raw value (instead of as\n  // a percentage of the request), similar to the \"pods\" metric source type.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity targetAverageValue = 3;\n\n  // container is the name of the container in the pods of the scaling target.\n  optional string container = 5;\n}\n\n// ContainerResourceMetricStatus indicates the current value of a resource metric known to\n// Kubernetes, as specified in requests and limits, describing a single container in each pod in the\n// current scale target (e.g. CPU or memory).  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.\nmessage ContainerResourceMetricStatus {\n  // name is the name of the resource in question.\n  optional string name = 1;\n\n  // currentAverageUtilization is the current value of the average of the\n  // resource metric across all relevant pods, represented as a percentage of\n  // the requested value of the resource for the pods.  It will only be\n  // present if `targetAverageValue` was set in the corresponding metric\n  // specification.\n  // +optional\n  optional int32 currentAverageUtilization = 2;\n\n  // currentAverageValue is the current value of the average of the\n  // resource metric across all relevant pods, as a raw value (instead of as\n  // a percentage of the request), similar to the \"pods\" metric source type.\n  // It will always be set, regardless of the corresponding metric specification.\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity currentAverageValue = 3;\n\n  // container is the name of the container in the pods of the scaling taget\n  optional string container = 4;\n}\n\n// CrossVersionObjectReference contains enough information to let you identify the referred resource.\n// +structType=atomic\nmessage CrossVersionObjectReference {\n  // kind is the kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  optional string kind = 1;\n\n  // name is the name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\n  optional string name = 2;\n\n  // apiVersion is the API version of the referent\n  // +optional\n  optional string apiVersion = 3;\n}\n\n// ExternalMetricSource indicates how to scale on a metric not associated with\n// any Kubernetes object (for example length of queue in cloud\n// messaging service, or QPS from loadbalancer running outside of cluster).\nmessage ExternalMetricSource {\n  // metricName is the name of the metric in question.\n  optional string metricName = 1;\n\n  // metricSelector is used to identify a specific time series\n  // within a given metric.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector metricSelector = 2;\n\n  // targetValue is the target value of the metric (as a quantity).\n  // Mutually exclusive with TargetAverageValue.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity targetValue = 3;\n\n  // targetAverageValue is the target per-pod value of global metric (as a quantity).\n  // Mutually exclusive with TargetValue.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity targetAverageValue = 4;\n}\n\n// ExternalMetricStatus indicates the current value of a global metric\n// not associated with any Kubernetes object.\nmessage ExternalMetricStatus {\n  // metricName is the name of a metric used for autoscaling in\n  // metric system.\n  optional string metricName = 1;\n\n  // metricSelector is used to identify a specific time series\n  // within a given metric.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector metricSelector = 2;\n\n  // currentValue is the current value of the metric (as a quantity)\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity currentValue = 3;\n\n  // currentAverageValue is the current value of metric averaged over autoscaled pods.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity currentAverageValue = 4;\n}\n\n// configuration of a horizontal pod autoscaler.\nmessage HorizontalPodAutoscaler {\n  // Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec defines the behaviour of autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\n  // +optional\n  optional HorizontalPodAutoscalerSpec spec = 2;\n\n  // status is the current information about the autoscaler.\n  // +optional\n  optional HorizontalPodAutoscalerStatus status = 3;\n}\n\n// HorizontalPodAutoscalerCondition describes the state of\n// a HorizontalPodAutoscaler at a certain point.\nmessage HorizontalPodAutoscalerCondition {\n  // type describes the current condition\n  optional string type = 1;\n\n  // status is the status of the condition (True, False, Unknown)\n  optional string status = 2;\n\n  // lastTransitionTime is the last time the condition transitioned from\n  // one status to another\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // reason is the reason for the condition's last transition.\n  // +optional\n  optional string reason = 4;\n\n  // message is a human-readable explanation containing details about\n  // the transition\n  // +optional\n  optional string message = 5;\n}\n\n// list of horizontal pod autoscaler objects.\nmessage HorizontalPodAutoscalerList {\n  // Standard list metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of horizontal pod autoscaler objects.\n  repeated HorizontalPodAutoscaler items = 2;\n}\n\n// specification of a horizontal pod autoscaler.\nmessage HorizontalPodAutoscalerSpec {\n  // reference to scaled resource; horizontal pod autoscaler will learn the current resource consumption\n  // and will set the desired number of pods by using its Scale subresource.\n  optional CrossVersionObjectReference scaleTargetRef = 1;\n\n  // minReplicas is the lower limit for the number of replicas to which the autoscaler\n  // can scale down.  It defaults to 1 pod.  minReplicas is allowed to be 0 if the\n  // alpha feature gate HPAScaleToZero is enabled and at least one Object or External\n  // metric is configured.  Scaling is active as long as at least one metric value is\n  // available.\n  // +optional\n  optional int32 minReplicas = 2;\n\n  // maxReplicas is the upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas.\n  optional int32 maxReplicas = 3;\n\n  // targetCPUUtilizationPercentage is the target average CPU utilization (represented as a percentage of requested CPU) over all the pods;\n  // if not specified the default autoscaling policy will be used.\n  // +optional\n  optional int32 targetCPUUtilizationPercentage = 4;\n}\n\n// current status of a horizontal pod autoscaler\nmessage HorizontalPodAutoscalerStatus {\n  // observedGeneration is the most recent generation observed by this autoscaler.\n  // +optional\n  optional int64 observedGeneration = 1;\n\n  // lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods;\n  // used by the autoscaler to control how often the number of pods is changed.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastScaleTime = 2;\n\n  // currentReplicas is the current number of replicas of pods managed by this autoscaler.\n  optional int32 currentReplicas = 3;\n\n  // desiredReplicas is the  desired number of replicas of pods managed by this autoscaler.\n  optional int32 desiredReplicas = 4;\n\n  // currentCPUUtilizationPercentage is the current average CPU utilization over all pods, represented as a percentage of requested CPU,\n  // e.g. 70 means that an average pod is using now 70% of its requested CPU.\n  // +optional\n  optional int32 currentCPUUtilizationPercentage = 5;\n}\n\n// MetricSpec specifies how to scale based on a single metric\n// (only `type` and one other matching field should be set at once).\nmessage MetricSpec {\n  // type is the type of metric source.  It should be one of \"ContainerResource\",\n  // \"External\", \"Object\", \"Pods\" or \"Resource\", each mapping to a matching field in the object.\n  optional string type = 1;\n\n  // object refers to a metric describing a single kubernetes object\n  // (for example, hits-per-second on an Ingress object).\n  // +optional\n  optional ObjectMetricSource object = 2;\n\n  // pods refers to a metric describing each pod in the current scale target\n  // (for example, transactions-processed-per-second).  The values will be\n  // averaged together before being compared to the target value.\n  // +optional\n  optional PodsMetricSource pods = 3;\n\n  // resource refers to a resource metric (such as those specified in\n  // requests and limits) known to Kubernetes describing each pod in the\n  // current scale target (e.g. CPU or memory). Such metrics are built in to\n  // Kubernetes, and have special scaling options on top of those available\n  // to normal per-pod metrics using the \"pods\" source.\n  // +optional\n  optional ResourceMetricSource resource = 4;\n\n  // containerResource refers to a resource metric (such as those specified in\n  // requests and limits) known to Kubernetes describing a single container in each pod of the\n  // current scale target (e.g. CPU or memory). Such metrics are built in to\n  // Kubernetes, and have special scaling options on top of those available\n  // to normal per-pod metrics using the \"pods\" source.\n  // +optional\n  optional ContainerResourceMetricSource containerResource = 7;\n\n  // external refers to a global metric that is not associated\n  // with any Kubernetes object. It allows autoscaling based on information\n  // coming from components running outside of cluster\n  // (for example length of queue in cloud messaging service, or\n  // QPS from loadbalancer running outside of cluster).\n  // +optional\n  optional ExternalMetricSource external = 5;\n}\n\n// MetricStatus describes the last-read state of a single metric.\nmessage MetricStatus {\n  // type is the type of metric source.  It will be one of \"ContainerResource\",\n  // \"External\", \"Object\", \"Pods\" or \"Resource\", each corresponds to a matching field in the object.\n  optional string type = 1;\n\n  // object refers to a metric describing a single kubernetes object\n  // (for example, hits-per-second on an Ingress object).\n  // +optional\n  optional ObjectMetricStatus object = 2;\n\n  // pods refers to a metric describing each pod in the current scale target\n  // (for example, transactions-processed-per-second).  The values will be\n  // averaged together before being compared to the target value.\n  // +optional\n  optional PodsMetricStatus pods = 3;\n\n  // resource refers to a resource metric (such as those specified in\n  // requests and limits) known to Kubernetes describing each pod in the\n  // current scale target (e.g. CPU or memory). Such metrics are built in to\n  // Kubernetes, and have special scaling options on top of those available\n  // to normal per-pod metrics using the \"pods\" source.\n  // +optional\n  optional ResourceMetricStatus resource = 4;\n\n  // containerResource refers to a resource metric (such as those specified in\n  // requests and limits) known to Kubernetes describing a single container in each pod in the\n  // current scale target (e.g. CPU or memory). Such metrics are built in to\n  // Kubernetes, and have special scaling options on top of those available\n  // to normal per-pod metrics using the \"pods\" source.\n  // +optional\n  optional ContainerResourceMetricStatus containerResource = 7;\n\n  // external refers to a global metric that is not associated\n  // with any Kubernetes object. It allows autoscaling based on information\n  // coming from components running outside of cluster\n  // (for example length of queue in cloud messaging service, or\n  // QPS from loadbalancer running outside of cluster).\n  // +optional\n  optional ExternalMetricStatus external = 5;\n}\n\n// ObjectMetricSource indicates how to scale on a metric describing a\n// kubernetes object (for example, hits-per-second on an Ingress object).\nmessage ObjectMetricSource {\n  // target is the described Kubernetes object.\n  optional CrossVersionObjectReference target = 1;\n\n  // metricName is the name of the metric in question.\n  optional string metricName = 2;\n\n  // targetValue is the target value of the metric (as a quantity).\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity targetValue = 3;\n\n  // selector is the string-encoded form of a standard kubernetes label selector for the given metric.\n  // When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping\n  // When unset, just the metricName will be used to gather metrics.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 4;\n\n  // averageValue is the target value of the average of the\n  // metric across all relevant pods (as a quantity)\n  // +optional\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity averageValue = 5;\n}\n\n// ObjectMetricStatus indicates the current value of a metric describing a\n// kubernetes object (for example, hits-per-second on an Ingress object).\nmessage ObjectMetricStatus {\n  // target is the described Kubernetes object.\n  optional CrossVersionObjectReference target = 1;\n\n  // metricName is the name of the metric in question.\n  optional string metricName = 2;\n\n  // currentValue is the current value of the metric (as a quantity).\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity currentValue = 3;\n\n  // selector is the string-encoded form of a standard kubernetes label selector for the given metric\n  // When set in the ObjectMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping.\n  // When unset, just the metricName will be used to gather metrics.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 4;\n\n  // averageValue is the current value of the average of the\n  // metric across all relevant pods (as a quantity)\n  // +optional\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity averageValue = 5;\n}\n\n// PodsMetricSource indicates how to scale on a metric describing each pod in\n// the current scale target (for example, transactions-processed-per-second).\n// The values will be averaged together before being compared to the target\n// value.\nmessage PodsMetricSource {\n  // metricName is the name of the metric in question\n  optional string metricName = 1;\n\n  // targetAverageValue is the target value of the average of the\n  // metric across all relevant pods (as a quantity)\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity targetAverageValue = 2;\n\n  // selector is the string-encoded form of a standard kubernetes label selector for the given metric\n  // When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping\n  // When unset, just the metricName will be used to gather metrics.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 3;\n}\n\n// PodsMetricStatus indicates the current value of a metric describing each pod in\n// the current scale target (for example, transactions-processed-per-second).\nmessage PodsMetricStatus {\n  // metricName is the name of the metric in question\n  optional string metricName = 1;\n\n  // currentAverageValue is the current value of the average of the\n  // metric across all relevant pods (as a quantity)\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity currentAverageValue = 2;\n\n  // selector is the string-encoded form of a standard kubernetes label selector for the given metric\n  // When set in the PodsMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping.\n  // When unset, just the metricName will be used to gather metrics.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 3;\n}\n\n// ResourceMetricSource indicates how to scale on a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  The values will be averaged\n// together before being compared to the target.  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.  Only one \"target\" type\n// should be set.\nmessage ResourceMetricSource {\n  // name is the name of the resource in question.\n  optional string name = 1;\n\n  // targetAverageUtilization is the target value of the average of the\n  // resource metric across all relevant pods, represented as a percentage of\n  // the requested value of the resource for the pods.\n  // +optional\n  optional int32 targetAverageUtilization = 2;\n\n  // targetAverageValue is the target value of the average of the\n  // resource metric across all relevant pods, as a raw value (instead of as\n  // a percentage of the request), similar to the \"pods\" metric source type.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity targetAverageValue = 3;\n}\n\n// ResourceMetricStatus indicates the current value of a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.\nmessage ResourceMetricStatus {\n  // name is the name of the resource in question.\n  optional string name = 1;\n\n  // currentAverageUtilization is the current value of the average of the\n  // resource metric across all relevant pods, represented as a percentage of\n  // the requested value of the resource for the pods.  It will only be\n  // present if `targetAverageValue` was set in the corresponding metric\n  // specification.\n  // +optional\n  optional int32 currentAverageUtilization = 2;\n\n  // currentAverageValue is the current value of the average of the\n  // resource metric across all relevant pods, as a raw value (instead of as\n  // a percentage of the request), similar to the \"pods\" metric source type.\n  // It will always be set, regardless of the corresponding metric specification.\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity currentAverageValue = 3;\n}\n\n// Scale represents a scaling request for a resource.\nmessage Scale {\n  // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\n  // +optional\n  optional ScaleSpec spec = 2;\n\n  // status is the current status of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. Read-only.\n  // +optional\n  optional ScaleStatus status = 3;\n}\n\n// ScaleSpec describes the attributes of a scale subresource.\nmessage ScaleSpec {\n  // replicas is the desired number of instances for the scaled object.\n  // +optional\n  optional int32 replicas = 1;\n}\n\n// ScaleStatus represents the current status of a scale subresource.\nmessage ScaleStatus {\n  // replicas is the actual number of observed instances of the scaled object.\n  optional int32 replicas = 1;\n\n  // selector is the label query over pods that should match the replicas count. This is same\n  // as the label selector but in the string format to avoid introspection\n  // by clients. The string will be in the same format as the query-param syntax.\n  // More info about label selectors: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\n  // +optional\n  optional string selector = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v1/register.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"autoscaling\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&HorizontalPodAutoscaler{},\n\t\t&HorizontalPodAutoscalerList{},\n\t\t&Scale{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v1/types.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\t\"k8s.io/apimachinery/pkg/api/resource\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// CrossVersionObjectReference contains enough information to let you identify the referred resource.\n// +structType=atomic\ntype CrossVersionObjectReference struct {\n\t// kind is the kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\tKind string `json:\"kind\" protobuf:\"bytes,1,opt,name=kind\"`\n\n\t// name is the name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\n\tName string `json:\"name\" protobuf:\"bytes,2,opt,name=name\"`\n\n\t// apiVersion is the API version of the referent\n\t// +optional\n\tAPIVersion string `json:\"apiVersion,omitempty\" protobuf:\"bytes,3,opt,name=apiVersion\"`\n}\n\n// specification of a horizontal pod autoscaler.\ntype HorizontalPodAutoscalerSpec struct {\n\t// reference to scaled resource; horizontal pod autoscaler will learn the current resource consumption\n\t// and will set the desired number of pods by using its Scale subresource.\n\tScaleTargetRef CrossVersionObjectReference `json:\"scaleTargetRef\" protobuf:\"bytes,1,opt,name=scaleTargetRef\"`\n\t// minReplicas is the lower limit for the number of replicas to which the autoscaler\n\t// can scale down.  It defaults to 1 pod.  minReplicas is allowed to be 0 if the\n\t// alpha feature gate HPAScaleToZero is enabled and at least one Object or External\n\t// metric is configured.  Scaling is active as long as at least one metric value is\n\t// available.\n\t// +optional\n\tMinReplicas *int32 `json:\"minReplicas,omitempty\" protobuf:\"varint,2,opt,name=minReplicas\"`\n\n\t// maxReplicas is the upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas.\n\tMaxReplicas int32 `json:\"maxReplicas\" protobuf:\"varint,3,opt,name=maxReplicas\"`\n\n\t// targetCPUUtilizationPercentage is the target average CPU utilization (represented as a percentage of requested CPU) over all the pods;\n\t// if not specified the default autoscaling policy will be used.\n\t// +optional\n\tTargetCPUUtilizationPercentage *int32 `json:\"targetCPUUtilizationPercentage,omitempty\" protobuf:\"varint,4,opt,name=targetCPUUtilizationPercentage\"`\n}\n\n// current status of a horizontal pod autoscaler\ntype HorizontalPodAutoscalerStatus struct {\n\t// observedGeneration is the most recent generation observed by this autoscaler.\n\t// +optional\n\tObservedGeneration *int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,1,opt,name=observedGeneration\"`\n\n\t// lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods;\n\t// used by the autoscaler to control how often the number of pods is changed.\n\t// +optional\n\tLastScaleTime *metav1.Time `json:\"lastScaleTime,omitempty\" protobuf:\"bytes,2,opt,name=lastScaleTime\"`\n\n\t// currentReplicas is the current number of replicas of pods managed by this autoscaler.\n\tCurrentReplicas int32 `json:\"currentReplicas\" protobuf:\"varint,3,opt,name=currentReplicas\"`\n\n\t// desiredReplicas is the  desired number of replicas of pods managed by this autoscaler.\n\tDesiredReplicas int32 `json:\"desiredReplicas\" protobuf:\"varint,4,opt,name=desiredReplicas\"`\n\n\t// currentCPUUtilizationPercentage is the current average CPU utilization over all pods, represented as a percentage of requested CPU,\n\t// e.g. 70 means that an average pod is using now 70% of its requested CPU.\n\t// +optional\n\tCurrentCPUUtilizationPercentage *int32 `json:\"currentCPUUtilizationPercentage,omitempty\" protobuf:\"varint,5,opt,name=currentCPUUtilizationPercentage\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.2\n\n// configuration of a horizontal pod autoscaler.\ntype HorizontalPodAutoscaler struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec defines the behaviour of autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\n\t// +optional\n\tSpec HorizontalPodAutoscalerSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// status is the current information about the autoscaler.\n\t// +optional\n\tStatus HorizontalPodAutoscalerStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.2\n\n// list of horizontal pod autoscaler objects.\ntype HorizontalPodAutoscalerList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of horizontal pod autoscaler objects.\n\tItems []HorizontalPodAutoscaler `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.2\n\n// Scale represents a scaling request for a resource.\ntype Scale struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\n\t// +optional\n\tSpec ScaleSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// status is the current status of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. Read-only.\n\t// +optional\n\tStatus ScaleStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// ScaleSpec describes the attributes of a scale subresource.\ntype ScaleSpec struct {\n\t// replicas is the desired number of instances for the scaled object.\n\t// +optional\n\tReplicas int32 `json:\"replicas,omitempty\" protobuf:\"varint,1,opt,name=replicas\"`\n}\n\n// ScaleStatus represents the current status of a scale subresource.\ntype ScaleStatus struct {\n\t// replicas is the actual number of observed instances of the scaled object.\n\tReplicas int32 `json:\"replicas\" protobuf:\"varint,1,opt,name=replicas\"`\n\n\t// selector is the label query over pods that should match the replicas count. This is same\n\t// as the label selector but in the string format to avoid introspection\n\t// by clients. The string will be in the same format as the query-param syntax.\n\t// More info about label selectors: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\n\t// +optional\n\tSelector string `json:\"selector,omitempty\" protobuf:\"bytes,2,opt,name=selector\"`\n}\n\n// the types below are used in the alpha metrics annotation\n\n// MetricSourceType indicates the type of metric.\n// +enum\ntype MetricSourceType string\n\nconst (\n\t// ObjectMetricSourceType is a metric describing a kubernetes object\n\t// (for example, hits-per-second on an Ingress object).\n\tObjectMetricSourceType MetricSourceType = \"Object\"\n\t// PodsMetricSourceType is a metric describing each pod in the current scale\n\t// target (for example, transactions-processed-per-second).  The values\n\t// will be averaged together before being compared to the target value.\n\tPodsMetricSourceType MetricSourceType = \"Pods\"\n\t// ResourceMetricSourceType is a resource metric known to Kubernetes, as\n\t// specified in requests and limits, describing each pod in the current\n\t// scale target (e.g. CPU or memory).  Such metrics are built in to\n\t// Kubernetes, and have special scaling options on top of those available\n\t// to normal per-pod metrics (the \"pods\" source).\n\tResourceMetricSourceType MetricSourceType = \"Resource\"\n\t// ContainerResourceMetricSourceType is a resource metric known to Kubernetes, as\n\t// specified in requests and limits, describing a single container in each pod in the current\n\t// scale target (e.g. CPU or memory).  Such metrics are built in to\n\t// Kubernetes, and have special scaling options on top of those available\n\t// to normal per-pod metrics (the \"pods\" source).\n\tContainerResourceMetricSourceType MetricSourceType = \"ContainerResource\"\n\t// ExternalMetricSourceType is a global metric that is not associated\n\t// with any Kubernetes object. It allows autoscaling based on information\n\t// coming from components running outside of cluster\n\t// (for example length of queue in cloud messaging service, or\n\t// QPS from loadbalancer running outside of cluster).\n\tExternalMetricSourceType MetricSourceType = \"External\"\n)\n\n// MetricSpec specifies how to scale based on a single metric\n// (only `type` and one other matching field should be set at once).\ntype MetricSpec struct {\n\t// type is the type of metric source.  It should be one of \"ContainerResource\",\n\t// \"External\", \"Object\", \"Pods\" or \"Resource\", each mapping to a matching field in the object.\n\tType MetricSourceType `json:\"type\" protobuf:\"bytes,1,name=type\"`\n\n\t// object refers to a metric describing a single kubernetes object\n\t// (for example, hits-per-second on an Ingress object).\n\t// +optional\n\tObject *ObjectMetricSource `json:\"object,omitempty\" protobuf:\"bytes,2,opt,name=object\"`\n\n\t// pods refers to a metric describing each pod in the current scale target\n\t// (for example, transactions-processed-per-second).  The values will be\n\t// averaged together before being compared to the target value.\n\t// +optional\n\tPods *PodsMetricSource `json:\"pods,omitempty\" protobuf:\"bytes,3,opt,name=pods\"`\n\n\t// resource refers to a resource metric (such as those specified in\n\t// requests and limits) known to Kubernetes describing each pod in the\n\t// current scale target (e.g. CPU or memory). Such metrics are built in to\n\t// Kubernetes, and have special scaling options on top of those available\n\t// to normal per-pod metrics using the \"pods\" source.\n\t// +optional\n\tResource *ResourceMetricSource `json:\"resource,omitempty\" protobuf:\"bytes,4,opt,name=resource\"`\n\n\t// containerResource refers to a resource metric (such as those specified in\n\t// requests and limits) known to Kubernetes describing a single container in each pod of the\n\t// current scale target (e.g. CPU or memory). Such metrics are built in to\n\t// Kubernetes, and have special scaling options on top of those available\n\t// to normal per-pod metrics using the \"pods\" source.\n\t// +optional\n\tContainerResource *ContainerResourceMetricSource `json:\"containerResource,omitempty\" protobuf:\"bytes,7,opt,name=containerResource\"`\n\n\t// external refers to a global metric that is not associated\n\t// with any Kubernetes object. It allows autoscaling based on information\n\t// coming from components running outside of cluster\n\t// (for example length of queue in cloud messaging service, or\n\t// QPS from loadbalancer running outside of cluster).\n\t// +optional\n\tExternal *ExternalMetricSource `json:\"external,omitempty\" protobuf:\"bytes,5,opt,name=external\"`\n}\n\n// ObjectMetricSource indicates how to scale on a metric describing a\n// kubernetes object (for example, hits-per-second on an Ingress object).\ntype ObjectMetricSource struct {\n\t// target is the described Kubernetes object.\n\tTarget CrossVersionObjectReference `json:\"target\" protobuf:\"bytes,1,name=target\"`\n\n\t// metricName is the name of the metric in question.\n\tMetricName string `json:\"metricName\" protobuf:\"bytes,2,name=metricName\"`\n\n\t// targetValue is the target value of the metric (as a quantity).\n\tTargetValue resource.Quantity `json:\"targetValue\" protobuf:\"bytes,3,name=targetValue\"`\n\n\t// selector is the string-encoded form of a standard kubernetes label selector for the given metric.\n\t// When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping\n\t// When unset, just the metricName will be used to gather metrics.\n\t// +optional\n\tSelector *metav1.LabelSelector `json:\"selector,omitempty\" protobuf:\"bytes,4,name=selector\"`\n\n\t// averageValue is the target value of the average of the\n\t// metric across all relevant pods (as a quantity)\n\t// +optional\n\tAverageValue *resource.Quantity `json:\"averageValue,omitempty\" protobuf:\"bytes,5,name=averageValue\"`\n}\n\n// PodsMetricSource indicates how to scale on a metric describing each pod in\n// the current scale target (for example, transactions-processed-per-second).\n// The values will be averaged together before being compared to the target\n// value.\ntype PodsMetricSource struct {\n\t// metricName is the name of the metric in question\n\tMetricName string `json:\"metricName\" protobuf:\"bytes,1,name=metricName\"`\n\n\t// targetAverageValue is the target value of the average of the\n\t// metric across all relevant pods (as a quantity)\n\tTargetAverageValue resource.Quantity `json:\"targetAverageValue\" protobuf:\"bytes,2,name=targetAverageValue\"`\n\n\t// selector is the string-encoded form of a standard kubernetes label selector for the given metric\n\t// When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping\n\t// When unset, just the metricName will be used to gather metrics.\n\t// +optional\n\tSelector *metav1.LabelSelector `json:\"selector,omitempty\" protobuf:\"bytes,3,name=selector\"`\n}\n\n// ResourceMetricSource indicates how to scale on a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  The values will be averaged\n// together before being compared to the target.  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.  Only one \"target\" type\n// should be set.\ntype ResourceMetricSource struct {\n\t// name is the name of the resource in question.\n\tName v1.ResourceName `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\n\t// targetAverageUtilization is the target value of the average of the\n\t// resource metric across all relevant pods, represented as a percentage of\n\t// the requested value of the resource for the pods.\n\t// +optional\n\tTargetAverageUtilization *int32 `json:\"targetAverageUtilization,omitempty\" protobuf:\"varint,2,opt,name=targetAverageUtilization\"`\n\n\t// targetAverageValue is the target value of the average of the\n\t// resource metric across all relevant pods, as a raw value (instead of as\n\t// a percentage of the request), similar to the \"pods\" metric source type.\n\t// +optional\n\tTargetAverageValue *resource.Quantity `json:\"targetAverageValue,omitempty\" protobuf:\"bytes,3,opt,name=targetAverageValue\"`\n}\n\n// ContainerResourceMetricSource indicates how to scale on a resource metric known to\n// Kubernetes, as specified in the requests and limits, describing a single container in\n// each of the pods of the current scale target(e.g. CPU or memory). The values will be\n// averaged together before being compared to the target. Such metrics are built into\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source. Only one \"target\" type\n// should be set.\ntype ContainerResourceMetricSource struct {\n\t// name is the name of the resource in question.\n\tName v1.ResourceName `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\n\t// targetAverageUtilization is the target value of the average of the\n\t// resource metric across all relevant pods, represented as a percentage of\n\t// the requested value of the resource for the pods.\n\t// +optional\n\tTargetAverageUtilization *int32 `json:\"targetAverageUtilization,omitempty\" protobuf:\"varint,2,opt,name=targetAverageUtilization\"`\n\n\t// targetAverageValue is the target value of the average of the\n\t// resource metric across all relevant pods, as a raw value (instead of as\n\t// a percentage of the request), similar to the \"pods\" metric source type.\n\t// +optional\n\tTargetAverageValue *resource.Quantity `json:\"targetAverageValue,omitempty\" protobuf:\"bytes,3,opt,name=targetAverageValue\"`\n\n\t// container is the name of the container in the pods of the scaling target.\n\tContainer string `json:\"container\" protobuf:\"bytes,5,opt,name=container\"`\n}\n\n// ExternalMetricSource indicates how to scale on a metric not associated with\n// any Kubernetes object (for example length of queue in cloud\n// messaging service, or QPS from loadbalancer running outside of cluster).\ntype ExternalMetricSource struct {\n\t// metricName is the name of the metric in question.\n\tMetricName string `json:\"metricName\" protobuf:\"bytes,1,name=metricName\"`\n\n\t// metricSelector is used to identify a specific time series\n\t// within a given metric.\n\t// +optional\n\tMetricSelector *metav1.LabelSelector `json:\"metricSelector,omitempty\" protobuf:\"bytes,2,opt,name=metricSelector\"`\n\n\t// targetValue is the target value of the metric (as a quantity).\n\t// Mutually exclusive with TargetAverageValue.\n\t// +optional\n\tTargetValue *resource.Quantity `json:\"targetValue,omitempty\" protobuf:\"bytes,3,opt,name=targetValue\"`\n\n\t// targetAverageValue is the target per-pod value of global metric (as a quantity).\n\t// Mutually exclusive with TargetValue.\n\t// +optional\n\tTargetAverageValue *resource.Quantity `json:\"targetAverageValue,omitempty\" protobuf:\"bytes,4,opt,name=targetAverageValue\"`\n}\n\n// MetricStatus describes the last-read state of a single metric.\ntype MetricStatus struct {\n\t// type is the type of metric source.  It will be one of \"ContainerResource\",\n\t// \"External\", \"Object\", \"Pods\" or \"Resource\", each corresponds to a matching field in the object.\n\tType MetricSourceType `json:\"type\" protobuf:\"bytes,1,name=type\"`\n\n\t// object refers to a metric describing a single kubernetes object\n\t// (for example, hits-per-second on an Ingress object).\n\t// +optional\n\tObject *ObjectMetricStatus `json:\"object,omitempty\" protobuf:\"bytes,2,opt,name=object\"`\n\n\t// pods refers to a metric describing each pod in the current scale target\n\t// (for example, transactions-processed-per-second).  The values will be\n\t// averaged together before being compared to the target value.\n\t// +optional\n\tPods *PodsMetricStatus `json:\"pods,omitempty\" protobuf:\"bytes,3,opt,name=pods\"`\n\n\t// resource refers to a resource metric (such as those specified in\n\t// requests and limits) known to Kubernetes describing each pod in the\n\t// current scale target (e.g. CPU or memory). Such metrics are built in to\n\t// Kubernetes, and have special scaling options on top of those available\n\t// to normal per-pod metrics using the \"pods\" source.\n\t// +optional\n\tResource *ResourceMetricStatus `json:\"resource,omitempty\" protobuf:\"bytes,4,opt,name=resource\"`\n\n\t// containerResource refers to a resource metric (such as those specified in\n\t// requests and limits) known to Kubernetes describing a single container in each pod in the\n\t// current scale target (e.g. CPU or memory). Such metrics are built in to\n\t// Kubernetes, and have special scaling options on top of those available\n\t// to normal per-pod metrics using the \"pods\" source.\n\t// +optional\n\tContainerResource *ContainerResourceMetricStatus `json:\"containerResource,omitempty\" protobuf:\"bytes,7,opt,name=containerResource\"`\n\n\t// external refers to a global metric that is not associated\n\t// with any Kubernetes object. It allows autoscaling based on information\n\t// coming from components running outside of cluster\n\t// (for example length of queue in cloud messaging service, or\n\t// QPS from loadbalancer running outside of cluster).\n\t// +optional\n\tExternal *ExternalMetricStatus `json:\"external,omitempty\" protobuf:\"bytes,5,opt,name=external\"`\n}\n\n// HorizontalPodAutoscalerConditionType are the valid conditions of\n// a HorizontalPodAutoscaler.\ntype HorizontalPodAutoscalerConditionType string\n\nconst (\n\t// ScalingActive indicates that the HPA controller is able to scale if necessary:\n\t// it's correctly configured, can fetch the desired metrics, and isn't disabled.\n\tScalingActive HorizontalPodAutoscalerConditionType = \"ScalingActive\"\n\t// AbleToScale indicates a lack of transient issues which prevent scaling from occurring,\n\t// such as being in a backoff window, or being unable to access/update the target scale.\n\tAbleToScale HorizontalPodAutoscalerConditionType = \"AbleToScale\"\n\t// ScalingLimited indicates that the calculated scale based on metrics would be above or\n\t// below the range for the HPA, and has thus been capped.\n\tScalingLimited HorizontalPodAutoscalerConditionType = \"ScalingLimited\"\n)\n\n// HorizontalPodAutoscalerCondition describes the state of\n// a HorizontalPodAutoscaler at a certain point.\ntype HorizontalPodAutoscalerCondition struct {\n\t// type describes the current condition\n\tType HorizontalPodAutoscalerConditionType `json:\"type\" protobuf:\"bytes,1,name=type\"`\n\n\t// status is the status of the condition (True, False, Unknown)\n\tStatus v1.ConditionStatus `json:\"status\" protobuf:\"bytes,2,name=status\"`\n\n\t// lastTransitionTime is the last time the condition transitioned from\n\t// one status to another\n\t// +optional\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\n\t// reason is the reason for the condition's last transition.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\n\t// message is a human-readable explanation containing details about\n\t// the transition\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// ObjectMetricStatus indicates the current value of a metric describing a\n// kubernetes object (for example, hits-per-second on an Ingress object).\ntype ObjectMetricStatus struct {\n\t// target is the described Kubernetes object.\n\tTarget CrossVersionObjectReference `json:\"target\" protobuf:\"bytes,1,name=target\"`\n\n\t// metricName is the name of the metric in question.\n\tMetricName string `json:\"metricName\" protobuf:\"bytes,2,name=metricName\"`\n\n\t// currentValue is the current value of the metric (as a quantity).\n\tCurrentValue resource.Quantity `json:\"currentValue\" protobuf:\"bytes,3,name=currentValue\"`\n\n\t// selector is the string-encoded form of a standard kubernetes label selector for the given metric\n\t// When set in the ObjectMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping.\n\t// When unset, just the metricName will be used to gather metrics.\n\t// +optional\n\tSelector *metav1.LabelSelector `json:\"selector,omitempty\" protobuf:\"bytes,4,name=selector\"`\n\n\t// averageValue is the current value of the average of the\n\t// metric across all relevant pods (as a quantity)\n\t// +optional\n\tAverageValue *resource.Quantity `json:\"averageValue,omitempty\" protobuf:\"bytes,5,name=averageValue\"`\n}\n\n// PodsMetricStatus indicates the current value of a metric describing each pod in\n// the current scale target (for example, transactions-processed-per-second).\ntype PodsMetricStatus struct {\n\t// metricName is the name of the metric in question\n\tMetricName string `json:\"metricName\" protobuf:\"bytes,1,name=metricName\"`\n\n\t// currentAverageValue is the current value of the average of the\n\t// metric across all relevant pods (as a quantity)\n\tCurrentAverageValue resource.Quantity `json:\"currentAverageValue\" protobuf:\"bytes,2,name=currentAverageValue\"`\n\n\t// selector is the string-encoded form of a standard kubernetes label selector for the given metric\n\t// When set in the PodsMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping.\n\t// When unset, just the metricName will be used to gather metrics.\n\t// +optional\n\tSelector *metav1.LabelSelector `json:\"selector,omitempty\" protobuf:\"bytes,3,name=selector\"`\n}\n\n// ResourceMetricStatus indicates the current value of a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.\ntype ResourceMetricStatus struct {\n\t// name is the name of the resource in question.\n\tName v1.ResourceName `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\n\t// currentAverageUtilization is the current value of the average of the\n\t// resource metric across all relevant pods, represented as a percentage of\n\t// the requested value of the resource for the pods.  It will only be\n\t// present if `targetAverageValue` was set in the corresponding metric\n\t// specification.\n\t// +optional\n\tCurrentAverageUtilization *int32 `json:\"currentAverageUtilization,omitempty\" protobuf:\"bytes,2,opt,name=currentAverageUtilization\"`\n\n\t// currentAverageValue is the current value of the average of the\n\t// resource metric across all relevant pods, as a raw value (instead of as\n\t// a percentage of the request), similar to the \"pods\" metric source type.\n\t// It will always be set, regardless of the corresponding metric specification.\n\tCurrentAverageValue resource.Quantity `json:\"currentAverageValue\" protobuf:\"bytes,3,name=currentAverageValue\"`\n}\n\n// ContainerResourceMetricStatus indicates the current value of a resource metric known to\n// Kubernetes, as specified in requests and limits, describing a single container in each pod in the\n// current scale target (e.g. CPU or memory).  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.\ntype ContainerResourceMetricStatus struct {\n\t// name is the name of the resource in question.\n\tName v1.ResourceName `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\n\t// currentAverageUtilization is the current value of the average of the\n\t// resource metric across all relevant pods, represented as a percentage of\n\t// the requested value of the resource for the pods.  It will only be\n\t// present if `targetAverageValue` was set in the corresponding metric\n\t// specification.\n\t// +optional\n\tCurrentAverageUtilization *int32 `json:\"currentAverageUtilization,omitempty\" protobuf:\"bytes,2,opt,name=currentAverageUtilization\"`\n\n\t// currentAverageValue is the current value of the average of the\n\t// resource metric across all relevant pods, as a raw value (instead of as\n\t// a percentage of the request), similar to the \"pods\" metric source type.\n\t// It will always be set, regardless of the corresponding metric specification.\n\tCurrentAverageValue resource.Quantity `json:\"currentAverageValue\" protobuf:\"bytes,3,name=currentAverageValue\"`\n\n\t// container is the name of the container in the pods of the scaling taget\n\tContainer string `json:\"container\" protobuf:\"bytes,4,opt,name=container\"`\n}\n\n// ExternalMetricStatus indicates the current value of a global metric\n// not associated with any Kubernetes object.\ntype ExternalMetricStatus struct {\n\t// metricName is the name of a metric used for autoscaling in\n\t// metric system.\n\tMetricName string `json:\"metricName\" protobuf:\"bytes,1,name=metricName\"`\n\n\t// metricSelector is used to identify a specific time series\n\t// within a given metric.\n\t// +optional\n\tMetricSelector *metav1.LabelSelector `json:\"metricSelector,omitempty\" protobuf:\"bytes,2,opt,name=metricSelector\"`\n\t// currentValue is the current value of the metric (as a quantity)\n\tCurrentValue resource.Quantity `json:\"currentValue\" protobuf:\"bytes,3,name=currentValue\"`\n\n\t// currentAverageValue is the current value of metric averaged over autoscaled pods.\n\t// +optional\n\tCurrentAverageValue *resource.Quantity `json:\"currentAverageValue,omitempty\" protobuf:\"bytes,4,opt,name=currentAverageValue\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_ContainerResourceMetricSource = map[string]string{\n\t\"\":                         \"ContainerResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in the requests and limits, describing a single container in each of the pods of the current scale target(e.g. CPU or memory). The values will be averaged together before being compared to the target. Such metrics are built into Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source. Only one \\\"target\\\" type should be set.\",\n\t\"name\":                     \"name is the name of the resource in question.\",\n\t\"targetAverageUtilization\": \"targetAverageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.\",\n\t\"targetAverageValue\":       \"targetAverageValue is the target value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the \\\"pods\\\" metric source type.\",\n\t\"container\":                \"container is the name of the container in the pods of the scaling target.\",\n}\n\nfunc (ContainerResourceMetricSource) SwaggerDoc() map[string]string {\n\treturn map_ContainerResourceMetricSource\n}\n\nvar map_ContainerResourceMetricStatus = map[string]string{\n\t\"\":                          \"ContainerResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing a single container in each pod in the current scale target (e.g. CPU or memory).  Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"name\":                      \"name is the name of the resource in question.\",\n\t\"currentAverageUtilization\": \"currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.  It will only be present if `targetAverageValue` was set in the corresponding metric specification.\",\n\t\"currentAverageValue\":       \"currentAverageValue is the current value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the \\\"pods\\\" metric source type. It will always be set, regardless of the corresponding metric specification.\",\n\t\"container\":                 \"container is the name of the container in the pods of the scaling taget\",\n}\n\nfunc (ContainerResourceMetricStatus) SwaggerDoc() map[string]string {\n\treturn map_ContainerResourceMetricStatus\n}\n\nvar map_CrossVersionObjectReference = map[string]string{\n\t\"\":           \"CrossVersionObjectReference contains enough information to let you identify the referred resource.\",\n\t\"kind\":       \"kind is the kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"name\":       \"name is the name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n\t\"apiVersion\": \"apiVersion is the API version of the referent\",\n}\n\nfunc (CrossVersionObjectReference) SwaggerDoc() map[string]string {\n\treturn map_CrossVersionObjectReference\n}\n\nvar map_ExternalMetricSource = map[string]string{\n\t\"\":                   \"ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).\",\n\t\"metricName\":         \"metricName is the name of the metric in question.\",\n\t\"metricSelector\":     \"metricSelector is used to identify a specific time series within a given metric.\",\n\t\"targetValue\":        \"targetValue is the target value of the metric (as a quantity). Mutually exclusive with TargetAverageValue.\",\n\t\"targetAverageValue\": \"targetAverageValue is the target per-pod value of global metric (as a quantity). Mutually exclusive with TargetValue.\",\n}\n\nfunc (ExternalMetricSource) SwaggerDoc() map[string]string {\n\treturn map_ExternalMetricSource\n}\n\nvar map_ExternalMetricStatus = map[string]string{\n\t\"\":                    \"ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.\",\n\t\"metricName\":          \"metricName is the name of a metric used for autoscaling in metric system.\",\n\t\"metricSelector\":      \"metricSelector is used to identify a specific time series within a given metric.\",\n\t\"currentValue\":        \"currentValue is the current value of the metric (as a quantity)\",\n\t\"currentAverageValue\": \"currentAverageValue is the current value of metric averaged over autoscaled pods.\",\n}\n\nfunc (ExternalMetricStatus) SwaggerDoc() map[string]string {\n\treturn map_ExternalMetricStatus\n}\n\nvar map_HorizontalPodAutoscaler = map[string]string{\n\t\"\":         \"configuration of a horizontal pod autoscaler.\",\n\t\"metadata\": \"Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec defines the behaviour of autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\",\n\t\"status\":   \"status is the current information about the autoscaler.\",\n}\n\nfunc (HorizontalPodAutoscaler) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscaler\n}\n\nvar map_HorizontalPodAutoscalerCondition = map[string]string{\n\t\"\":                   \"HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point.\",\n\t\"type\":               \"type describes the current condition\",\n\t\"status\":             \"status is the status of the condition (True, False, Unknown)\",\n\t\"lastTransitionTime\": \"lastTransitionTime is the last time the condition transitioned from one status to another\",\n\t\"reason\":             \"reason is the reason for the condition's last transition.\",\n\t\"message\":            \"message is a human-readable explanation containing details about the transition\",\n}\n\nfunc (HorizontalPodAutoscalerCondition) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscalerCondition\n}\n\nvar map_HorizontalPodAutoscalerList = map[string]string{\n\t\"\":         \"list of horizontal pod autoscaler objects.\",\n\t\"metadata\": \"Standard list metadata.\",\n\t\"items\":    \"items is the list of horizontal pod autoscaler objects.\",\n}\n\nfunc (HorizontalPodAutoscalerList) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscalerList\n}\n\nvar map_HorizontalPodAutoscalerSpec = map[string]string{\n\t\"\":                               \"specification of a horizontal pod autoscaler.\",\n\t\"scaleTargetRef\":                 \"reference to scaled resource; horizontal pod autoscaler will learn the current resource consumption and will set the desired number of pods by using its Scale subresource.\",\n\t\"minReplicas\":                    \"minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down.  It defaults to 1 pod.  minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured.  Scaling is active as long as at least one metric value is available.\",\n\t\"maxReplicas\":                    \"maxReplicas is the upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas.\",\n\t\"targetCPUUtilizationPercentage\": \"targetCPUUtilizationPercentage is the target average CPU utilization (represented as a percentage of requested CPU) over all the pods; if not specified the default autoscaling policy will be used.\",\n}\n\nfunc (HorizontalPodAutoscalerSpec) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscalerSpec\n}\n\nvar map_HorizontalPodAutoscalerStatus = map[string]string{\n\t\"\":                                \"current status of a horizontal pod autoscaler\",\n\t\"observedGeneration\":              \"observedGeneration is the most recent generation observed by this autoscaler.\",\n\t\"lastScaleTime\":                   \"lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods; used by the autoscaler to control how often the number of pods is changed.\",\n\t\"currentReplicas\":                 \"currentReplicas is the current number of replicas of pods managed by this autoscaler.\",\n\t\"desiredReplicas\":                 \"desiredReplicas is the  desired number of replicas of pods managed by this autoscaler.\",\n\t\"currentCPUUtilizationPercentage\": \"currentCPUUtilizationPercentage is the current average CPU utilization over all pods, represented as a percentage of requested CPU, e.g. 70 means that an average pod is using now 70% of its requested CPU.\",\n}\n\nfunc (HorizontalPodAutoscalerStatus) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscalerStatus\n}\n\nvar map_MetricSpec = map[string]string{\n\t\"\":                  \"MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once).\",\n\t\"type\":              \"type is the type of metric source.  It should be one of \\\"ContainerResource\\\", \\\"External\\\", \\\"Object\\\", \\\"Pods\\\" or \\\"Resource\\\", each mapping to a matching field in the object.\",\n\t\"object\":            \"object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).\",\n\t\"pods\":              \"pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second).  The values will be averaged together before being compared to the target value.\",\n\t\"resource\":          \"resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"containerResource\": \"containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"external\":          \"external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).\",\n}\n\nfunc (MetricSpec) SwaggerDoc() map[string]string {\n\treturn map_MetricSpec\n}\n\nvar map_MetricStatus = map[string]string{\n\t\"\":                  \"MetricStatus describes the last-read state of a single metric.\",\n\t\"type\":              \"type is the type of metric source.  It will be one of \\\"ContainerResource\\\", \\\"External\\\", \\\"Object\\\", \\\"Pods\\\" or \\\"Resource\\\", each corresponds to a matching field in the object.\",\n\t\"object\":            \"object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).\",\n\t\"pods\":              \"pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second).  The values will be averaged together before being compared to the target value.\",\n\t\"resource\":          \"resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"containerResource\": \"containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"external\":          \"external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).\",\n}\n\nfunc (MetricStatus) SwaggerDoc() map[string]string {\n\treturn map_MetricStatus\n}\n\nvar map_ObjectMetricSource = map[string]string{\n\t\"\":             \"ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).\",\n\t\"target\":       \"target is the described Kubernetes object.\",\n\t\"metricName\":   \"metricName is the name of the metric in question.\",\n\t\"targetValue\":  \"targetValue is the target value of the metric (as a quantity).\",\n\t\"selector\":     \"selector is the string-encoded form of a standard kubernetes label selector for the given metric. When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping When unset, just the metricName will be used to gather metrics.\",\n\t\"averageValue\": \"averageValue is the target value of the average of the metric across all relevant pods (as a quantity)\",\n}\n\nfunc (ObjectMetricSource) SwaggerDoc() map[string]string {\n\treturn map_ObjectMetricSource\n}\n\nvar map_ObjectMetricStatus = map[string]string{\n\t\"\":             \"ObjectMetricStatus indicates the current value of a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).\",\n\t\"target\":       \"target is the described Kubernetes object.\",\n\t\"metricName\":   \"metricName is the name of the metric in question.\",\n\t\"currentValue\": \"currentValue is the current value of the metric (as a quantity).\",\n\t\"selector\":     \"selector is the string-encoded form of a standard kubernetes label selector for the given metric When set in the ObjectMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics.\",\n\t\"averageValue\": \"averageValue is the current value of the average of the metric across all relevant pods (as a quantity)\",\n}\n\nfunc (ObjectMetricStatus) SwaggerDoc() map[string]string {\n\treturn map_ObjectMetricStatus\n}\n\nvar map_PodsMetricSource = map[string]string{\n\t\"\":                   \"PodsMetricSource indicates how to scale on a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.\",\n\t\"metricName\":         \"metricName is the name of the metric in question\",\n\t\"targetAverageValue\": \"targetAverageValue is the target value of the average of the metric across all relevant pods (as a quantity)\",\n\t\"selector\":           \"selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping When unset, just the metricName will be used to gather metrics.\",\n}\n\nfunc (PodsMetricSource) SwaggerDoc() map[string]string {\n\treturn map_PodsMetricSource\n}\n\nvar map_PodsMetricStatus = map[string]string{\n\t\"\":                    \"PodsMetricStatus indicates the current value of a metric describing each pod in the current scale target (for example, transactions-processed-per-second).\",\n\t\"metricName\":          \"metricName is the name of the metric in question\",\n\t\"currentAverageValue\": \"currentAverageValue is the current value of the average of the metric across all relevant pods (as a quantity)\",\n\t\"selector\":            \"selector is the string-encoded form of a standard kubernetes label selector for the given metric When set in the PodsMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics.\",\n}\n\nfunc (PodsMetricStatus) SwaggerDoc() map[string]string {\n\treturn map_PodsMetricStatus\n}\n\nvar map_ResourceMetricSource = map[string]string{\n\t\"\":                         \"ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory).  The values will be averaged together before being compared to the target.  Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.  Only one \\\"target\\\" type should be set.\",\n\t\"name\":                     \"name is the name of the resource in question.\",\n\t\"targetAverageUtilization\": \"targetAverageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.\",\n\t\"targetAverageValue\":       \"targetAverageValue is the target value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the \\\"pods\\\" metric source type.\",\n}\n\nfunc (ResourceMetricSource) SwaggerDoc() map[string]string {\n\treturn map_ResourceMetricSource\n}\n\nvar map_ResourceMetricStatus = map[string]string{\n\t\"\":                          \"ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory).  Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"name\":                      \"name is the name of the resource in question.\",\n\t\"currentAverageUtilization\": \"currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.  It will only be present if `targetAverageValue` was set in the corresponding metric specification.\",\n\t\"currentAverageValue\":       \"currentAverageValue is the current value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the \\\"pods\\\" metric source type. It will always be set, regardless of the corresponding metric specification.\",\n}\n\nfunc (ResourceMetricStatus) SwaggerDoc() map[string]string {\n\treturn map_ResourceMetricStatus\n}\n\nvar map_Scale = map[string]string{\n\t\"\":         \"Scale represents a scaling request for a resource.\",\n\t\"metadata\": \"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\",\n\t\"spec\":     \"spec defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\",\n\t\"status\":   \"status is the current status of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. Read-only.\",\n}\n\nfunc (Scale) SwaggerDoc() map[string]string {\n\treturn map_Scale\n}\n\nvar map_ScaleSpec = map[string]string{\n\t\"\":         \"ScaleSpec describes the attributes of a scale subresource.\",\n\t\"replicas\": \"replicas is the desired number of instances for the scaled object.\",\n}\n\nfunc (ScaleSpec) SwaggerDoc() map[string]string {\n\treturn map_ScaleSpec\n}\n\nvar map_ScaleStatus = map[string]string{\n\t\"\":         \"ScaleStatus represents the current status of a scale subresource.\",\n\t\"replicas\": \"replicas is the actual number of observed instances of the scaled object.\",\n\t\"selector\": \"selector is the label query over pods that should match the replicas count. This is same as the label selector but in the string format to avoid introspection by clients. The string will be in the same format as the query-param syntax. More info about label selectors: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\",\n}\n\nfunc (ScaleStatus) SwaggerDoc() map[string]string {\n\treturn map_ScaleStatus\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ContainerResourceMetricSource) DeepCopyInto(out *ContainerResourceMetricSource) {\n\t*out = *in\n\tif in.TargetAverageUtilization != nil {\n\t\tin, out := &in.TargetAverageUtilization, &out.TargetAverageUtilization\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.TargetAverageValue != nil {\n\t\tin, out := &in.TargetAverageValue, &out.TargetAverageValue\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerResourceMetricSource.\nfunc (in *ContainerResourceMetricSource) DeepCopy() *ContainerResourceMetricSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ContainerResourceMetricSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ContainerResourceMetricStatus) DeepCopyInto(out *ContainerResourceMetricStatus) {\n\t*out = *in\n\tif in.CurrentAverageUtilization != nil {\n\t\tin, out := &in.CurrentAverageUtilization, &out.CurrentAverageUtilization\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tout.CurrentAverageValue = in.CurrentAverageValue.DeepCopy()\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerResourceMetricStatus.\nfunc (in *ContainerResourceMetricStatus) DeepCopy() *ContainerResourceMetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ContainerResourceMetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CrossVersionObjectReference) DeepCopyInto(out *CrossVersionObjectReference) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CrossVersionObjectReference.\nfunc (in *CrossVersionObjectReference) DeepCopy() *CrossVersionObjectReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CrossVersionObjectReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExternalMetricSource) DeepCopyInto(out *ExternalMetricSource) {\n\t*out = *in\n\tif in.MetricSelector != nil {\n\t\tin, out := &in.MetricSelector, &out.MetricSelector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.TargetValue != nil {\n\t\tin, out := &in.TargetValue, &out.TargetValue\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\tif in.TargetAverageValue != nil {\n\t\tin, out := &in.TargetAverageValue, &out.TargetAverageValue\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalMetricSource.\nfunc (in *ExternalMetricSource) DeepCopy() *ExternalMetricSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExternalMetricSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExternalMetricStatus) DeepCopyInto(out *ExternalMetricStatus) {\n\t*out = *in\n\tif in.MetricSelector != nil {\n\t\tin, out := &in.MetricSelector, &out.MetricSelector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tout.CurrentValue = in.CurrentValue.DeepCopy()\n\tif in.CurrentAverageValue != nil {\n\t\tin, out := &in.CurrentAverageValue, &out.CurrentAverageValue\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalMetricStatus.\nfunc (in *ExternalMetricStatus) DeepCopy() *ExternalMetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExternalMetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscaler) DeepCopyInto(out *HorizontalPodAutoscaler) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscaler.\nfunc (in *HorizontalPodAutoscaler) DeepCopy() *HorizontalPodAutoscaler {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscaler)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *HorizontalPodAutoscaler) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscalerCondition) DeepCopyInto(out *HorizontalPodAutoscalerCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerCondition.\nfunc (in *HorizontalPodAutoscalerCondition) DeepCopy() *HorizontalPodAutoscalerCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscalerCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscalerList) DeepCopyInto(out *HorizontalPodAutoscalerList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]HorizontalPodAutoscaler, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerList.\nfunc (in *HorizontalPodAutoscalerList) DeepCopy() *HorizontalPodAutoscalerList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscalerList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *HorizontalPodAutoscalerList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscalerSpec) DeepCopyInto(out *HorizontalPodAutoscalerSpec) {\n\t*out = *in\n\tout.ScaleTargetRef = in.ScaleTargetRef\n\tif in.MinReplicas != nil {\n\t\tin, out := &in.MinReplicas, &out.MinReplicas\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.TargetCPUUtilizationPercentage != nil {\n\t\tin, out := &in.TargetCPUUtilizationPercentage, &out.TargetCPUUtilizationPercentage\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerSpec.\nfunc (in *HorizontalPodAutoscalerSpec) DeepCopy() *HorizontalPodAutoscalerSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscalerSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscalerStatus) DeepCopyInto(out *HorizontalPodAutoscalerStatus) {\n\t*out = *in\n\tif in.ObservedGeneration != nil {\n\t\tin, out := &in.ObservedGeneration, &out.ObservedGeneration\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.LastScaleTime != nil {\n\t\tin, out := &in.LastScaleTime, &out.LastScaleTime\n\t\t*out = (*in).DeepCopy()\n\t}\n\tif in.CurrentCPUUtilizationPercentage != nil {\n\t\tin, out := &in.CurrentCPUUtilizationPercentage, &out.CurrentCPUUtilizationPercentage\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerStatus.\nfunc (in *HorizontalPodAutoscalerStatus) DeepCopy() *HorizontalPodAutoscalerStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscalerStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MetricSpec) DeepCopyInto(out *MetricSpec) {\n\t*out = *in\n\tif in.Object != nil {\n\t\tin, out := &in.Object, &out.Object\n\t\t*out = new(ObjectMetricSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Pods != nil {\n\t\tin, out := &in.Pods, &out.Pods\n\t\t*out = new(PodsMetricSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Resource != nil {\n\t\tin, out := &in.Resource, &out.Resource\n\t\t*out = new(ResourceMetricSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ContainerResource != nil {\n\t\tin, out := &in.ContainerResource, &out.ContainerResource\n\t\t*out = new(ContainerResourceMetricSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.External != nil {\n\t\tin, out := &in.External, &out.External\n\t\t*out = new(ExternalMetricSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricSpec.\nfunc (in *MetricSpec) DeepCopy() *MetricSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MetricSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MetricStatus) DeepCopyInto(out *MetricStatus) {\n\t*out = *in\n\tif in.Object != nil {\n\t\tin, out := &in.Object, &out.Object\n\t\t*out = new(ObjectMetricStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Pods != nil {\n\t\tin, out := &in.Pods, &out.Pods\n\t\t*out = new(PodsMetricStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Resource != nil {\n\t\tin, out := &in.Resource, &out.Resource\n\t\t*out = new(ResourceMetricStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ContainerResource != nil {\n\t\tin, out := &in.ContainerResource, &out.ContainerResource\n\t\t*out = new(ContainerResourceMetricStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.External != nil {\n\t\tin, out := &in.External, &out.External\n\t\t*out = new(ExternalMetricStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricStatus.\nfunc (in *MetricStatus) DeepCopy() *MetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ObjectMetricSource) DeepCopyInto(out *ObjectMetricSource) {\n\t*out = *in\n\tout.Target = in.Target\n\tout.TargetValue = in.TargetValue.DeepCopy()\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.AverageValue != nil {\n\t\tin, out := &in.AverageValue, &out.AverageValue\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectMetricSource.\nfunc (in *ObjectMetricSource) DeepCopy() *ObjectMetricSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ObjectMetricSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ObjectMetricStatus) DeepCopyInto(out *ObjectMetricStatus) {\n\t*out = *in\n\tout.Target = in.Target\n\tout.CurrentValue = in.CurrentValue.DeepCopy()\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.AverageValue != nil {\n\t\tin, out := &in.AverageValue, &out.AverageValue\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectMetricStatus.\nfunc (in *ObjectMetricStatus) DeepCopy() *ObjectMetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ObjectMetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodsMetricSource) DeepCopyInto(out *PodsMetricSource) {\n\t*out = *in\n\tout.TargetAverageValue = in.TargetAverageValue.DeepCopy()\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodsMetricSource.\nfunc (in *PodsMetricSource) DeepCopy() *PodsMetricSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodsMetricSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodsMetricStatus) DeepCopyInto(out *PodsMetricStatus) {\n\t*out = *in\n\tout.CurrentAverageValue = in.CurrentAverageValue.DeepCopy()\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodsMetricStatus.\nfunc (in *PodsMetricStatus) DeepCopy() *PodsMetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodsMetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceMetricSource) DeepCopyInto(out *ResourceMetricSource) {\n\t*out = *in\n\tif in.TargetAverageUtilization != nil {\n\t\tin, out := &in.TargetAverageUtilization, &out.TargetAverageUtilization\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.TargetAverageValue != nil {\n\t\tin, out := &in.TargetAverageValue, &out.TargetAverageValue\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceMetricSource.\nfunc (in *ResourceMetricSource) DeepCopy() *ResourceMetricSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceMetricSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceMetricStatus) DeepCopyInto(out *ResourceMetricStatus) {\n\t*out = *in\n\tif in.CurrentAverageUtilization != nil {\n\t\tin, out := &in.CurrentAverageUtilization, &out.CurrentAverageUtilization\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tout.CurrentAverageValue = in.CurrentAverageValue.DeepCopy()\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceMetricStatus.\nfunc (in *ResourceMetricStatus) DeepCopy() *ResourceMetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceMetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Scale) DeepCopyInto(out *Scale) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tout.Spec = in.Spec\n\tout.Status = in.Status\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Scale.\nfunc (in *Scale) DeepCopy() *Scale {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Scale)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Scale) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ScaleSpec) DeepCopyInto(out *ScaleSpec) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleSpec.\nfunc (in *ScaleSpec) DeepCopy() *ScaleSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ScaleSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ScaleStatus) DeepCopyInto(out *ScaleStatus) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleStatus.\nfunc (in *ScaleStatus) DeepCopy() *ScaleStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ScaleStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *HorizontalPodAutoscaler) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 2\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *HorizontalPodAutoscalerList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 2\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *Scale) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 2\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2/doc.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\npackage v2 // import \"k8s.io/api/autoscaling/v2\"\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/autoscaling/v2/generated.proto\n\npackage v2\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *ContainerResourceMetricSource) Reset()      { *m = ContainerResourceMetricSource{} }\nfunc (*ContainerResourceMetricSource) ProtoMessage() {}\nfunc (*ContainerResourceMetricSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_4d5f2c8767749221, []int{0}\n}\nfunc (m *ContainerResourceMetricSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerResourceMetricSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ContainerResourceMetricSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerResourceMetricSource.Merge(m, src)\n}\nfunc (m *ContainerResourceMetricSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerResourceMetricSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerResourceMetricSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerResourceMetricSource proto.InternalMessageInfo\n\nfunc (m *ContainerResourceMetricStatus) Reset()      { *m = ContainerResourceMetricStatus{} }\nfunc (*ContainerResourceMetricStatus) ProtoMessage() {}\nfunc (*ContainerResourceMetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_4d5f2c8767749221, []int{1}\n}\nfunc (m *ContainerResourceMetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerResourceMetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ContainerResourceMetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerResourceMetricStatus.Merge(m, src)\n}\nfunc (m *ContainerResourceMetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerResourceMetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerResourceMetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerResourceMetricStatus proto.InternalMessageInfo\n\nfunc (m *CrossVersionObjectReference) Reset()      { *m = CrossVersionObjectReference{} }\nfunc (*CrossVersionObjectReference) ProtoMessage() {}\nfunc (*CrossVersionObjectReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_4d5f2c8767749221, []int{2}\n}\nfunc (m *CrossVersionObjectReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CrossVersionObjectReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CrossVersionObjectReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CrossVersionObjectReference.Merge(m, src)\n}\nfunc (m *CrossVersionObjectReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CrossVersionObjectReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_CrossVersionObjectReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CrossVersionObjectReference proto.InternalMessageInfo\n\nfunc (m *ExternalMetricSource) Reset()      { *m = ExternalMetricSource{} }\nfunc (*ExternalMetricSource) ProtoMessage() {}\nfunc (*ExternalMetricSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_4d5f2c8767749221, []int{3}\n}\nfunc (m *ExternalMetricSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ExternalMetricSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ExternalMetricSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ExternalMetricSource.Merge(m, src)\n}\nfunc (m *ExternalMetricSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ExternalMetricSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ExternalMetricSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ExternalMetricSource proto.InternalMessageInfo\n\nfunc (m *ExternalMetricStatus) Reset()      { *m = ExternalMetricStatus{} }\nfunc (*ExternalMetricStatus) ProtoMessage() {}\nfunc (*ExternalMetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_4d5f2c8767749221, []int{4}\n}\nfunc (m *ExternalMetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ExternalMetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ExternalMetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ExternalMetricStatus.Merge(m, src)\n}\nfunc (m *ExternalMetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ExternalMetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ExternalMetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ExternalMetricStatus proto.InternalMessageInfo\n\nfunc (m *HPAScalingPolicy) Reset()      { *m = HPAScalingPolicy{} }\nfunc (*HPAScalingPolicy) ProtoMessage() {}\nfunc (*HPAScalingPolicy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_4d5f2c8767749221, []int{5}\n}\nfunc (m *HPAScalingPolicy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HPAScalingPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HPAScalingPolicy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HPAScalingPolicy.Merge(m, src)\n}\nfunc (m *HPAScalingPolicy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HPAScalingPolicy) XXX_DiscardUnknown() {\n\txxx_messageInfo_HPAScalingPolicy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HPAScalingPolicy proto.InternalMessageInfo\n\nfunc (m *HPAScalingRules) Reset()      { *m = HPAScalingRules{} }\nfunc (*HPAScalingRules) ProtoMessage() {}\nfunc (*HPAScalingRules) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_4d5f2c8767749221, []int{6}\n}\nfunc (m *HPAScalingRules) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HPAScalingRules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HPAScalingRules) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HPAScalingRules.Merge(m, src)\n}\nfunc (m *HPAScalingRules) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HPAScalingRules) XXX_DiscardUnknown() {\n\txxx_messageInfo_HPAScalingRules.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HPAScalingRules proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscaler) Reset()      { *m = HorizontalPodAutoscaler{} }\nfunc (*HorizontalPodAutoscaler) ProtoMessage() {}\nfunc (*HorizontalPodAutoscaler) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_4d5f2c8767749221, []int{7}\n}\nfunc (m *HorizontalPodAutoscaler) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscaler) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscaler) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscaler.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscaler) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscaler) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscaler.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscaler proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscalerBehavior) Reset()      { *m = HorizontalPodAutoscalerBehavior{} }\nfunc (*HorizontalPodAutoscalerBehavior) ProtoMessage() {}\nfunc (*HorizontalPodAutoscalerBehavior) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_4d5f2c8767749221, []int{8}\n}\nfunc (m *HorizontalPodAutoscalerBehavior) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscalerBehavior) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscalerBehavior) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscalerBehavior.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscalerBehavior) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscalerBehavior) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscalerBehavior.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscalerBehavior proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscalerCondition) Reset()      { *m = HorizontalPodAutoscalerCondition{} }\nfunc (*HorizontalPodAutoscalerCondition) ProtoMessage() {}\nfunc (*HorizontalPodAutoscalerCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_4d5f2c8767749221, []int{9}\n}\nfunc (m *HorizontalPodAutoscalerCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscalerCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscalerCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscalerCondition.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscalerCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscalerCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscalerCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscalerCondition proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscalerList) Reset()      { *m = HorizontalPodAutoscalerList{} }\nfunc (*HorizontalPodAutoscalerList) ProtoMessage() {}\nfunc (*HorizontalPodAutoscalerList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_4d5f2c8767749221, []int{10}\n}\nfunc (m *HorizontalPodAutoscalerList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscalerList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscalerList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscalerList.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscalerList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscalerList) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscalerList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscalerList proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscalerSpec) Reset()      { *m = HorizontalPodAutoscalerSpec{} }\nfunc (*HorizontalPodAutoscalerSpec) ProtoMessage() {}\nfunc (*HorizontalPodAutoscalerSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_4d5f2c8767749221, []int{11}\n}\nfunc (m *HorizontalPodAutoscalerSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscalerSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscalerSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscalerSpec.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscalerSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscalerSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscalerSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscalerSpec proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscalerStatus) Reset()      { *m = HorizontalPodAutoscalerStatus{} }\nfunc (*HorizontalPodAutoscalerStatus) ProtoMessage() {}\nfunc (*HorizontalPodAutoscalerStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_4d5f2c8767749221, []int{12}\n}\nfunc (m *HorizontalPodAutoscalerStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscalerStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscalerStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscalerStatus.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscalerStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscalerStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscalerStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscalerStatus proto.InternalMessageInfo\n\nfunc (m *MetricIdentifier) Reset()      { *m = MetricIdentifier{} }\nfunc (*MetricIdentifier) ProtoMessage() {}\nfunc (*MetricIdentifier) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_4d5f2c8767749221, []int{13}\n}\nfunc (m *MetricIdentifier) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MetricIdentifier) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MetricIdentifier) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MetricIdentifier.Merge(m, src)\n}\nfunc (m *MetricIdentifier) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MetricIdentifier) XXX_DiscardUnknown() {\n\txxx_messageInfo_MetricIdentifier.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MetricIdentifier proto.InternalMessageInfo\n\nfunc (m *MetricSpec) Reset()      { *m = MetricSpec{} }\nfunc (*MetricSpec) ProtoMessage() {}\nfunc (*MetricSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_4d5f2c8767749221, []int{14}\n}\nfunc (m *MetricSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MetricSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MetricSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MetricSpec.Merge(m, src)\n}\nfunc (m *MetricSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MetricSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_MetricSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MetricSpec proto.InternalMessageInfo\n\nfunc (m *MetricStatus) Reset()      { *m = MetricStatus{} }\nfunc (*MetricStatus) ProtoMessage() {}\nfunc (*MetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_4d5f2c8767749221, []int{15}\n}\nfunc (m *MetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MetricStatus.Merge(m, src)\n}\nfunc (m *MetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_MetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MetricStatus proto.InternalMessageInfo\n\nfunc (m *MetricTarget) Reset()      { *m = MetricTarget{} }\nfunc (*MetricTarget) ProtoMessage() {}\nfunc (*MetricTarget) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_4d5f2c8767749221, []int{16}\n}\nfunc (m *MetricTarget) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MetricTarget) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MetricTarget) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MetricTarget.Merge(m, src)\n}\nfunc (m *MetricTarget) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MetricTarget) XXX_DiscardUnknown() {\n\txxx_messageInfo_MetricTarget.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MetricTarget proto.InternalMessageInfo\n\nfunc (m *MetricValueStatus) Reset()      { *m = MetricValueStatus{} }\nfunc (*MetricValueStatus) ProtoMessage() {}\nfunc (*MetricValueStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_4d5f2c8767749221, []int{17}\n}\nfunc (m *MetricValueStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MetricValueStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MetricValueStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MetricValueStatus.Merge(m, src)\n}\nfunc (m *MetricValueStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MetricValueStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_MetricValueStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MetricValueStatus proto.InternalMessageInfo\n\nfunc (m *ObjectMetricSource) Reset()      { *m = ObjectMetricSource{} }\nfunc (*ObjectMetricSource) ProtoMessage() {}\nfunc (*ObjectMetricSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_4d5f2c8767749221, []int{18}\n}\nfunc (m *ObjectMetricSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ObjectMetricSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ObjectMetricSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ObjectMetricSource.Merge(m, src)\n}\nfunc (m *ObjectMetricSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ObjectMetricSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ObjectMetricSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ObjectMetricSource proto.InternalMessageInfo\n\nfunc (m *ObjectMetricStatus) Reset()      { *m = ObjectMetricStatus{} }\nfunc (*ObjectMetricStatus) ProtoMessage() {}\nfunc (*ObjectMetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_4d5f2c8767749221, []int{19}\n}\nfunc (m *ObjectMetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ObjectMetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ObjectMetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ObjectMetricStatus.Merge(m, src)\n}\nfunc (m *ObjectMetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ObjectMetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ObjectMetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ObjectMetricStatus proto.InternalMessageInfo\n\nfunc (m *PodsMetricSource) Reset()      { *m = PodsMetricSource{} }\nfunc (*PodsMetricSource) ProtoMessage() {}\nfunc (*PodsMetricSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_4d5f2c8767749221, []int{20}\n}\nfunc (m *PodsMetricSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodsMetricSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodsMetricSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodsMetricSource.Merge(m, src)\n}\nfunc (m *PodsMetricSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodsMetricSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodsMetricSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodsMetricSource proto.InternalMessageInfo\n\nfunc (m *PodsMetricStatus) Reset()      { *m = PodsMetricStatus{} }\nfunc (*PodsMetricStatus) ProtoMessage() {}\nfunc (*PodsMetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_4d5f2c8767749221, []int{21}\n}\nfunc (m *PodsMetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodsMetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodsMetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodsMetricStatus.Merge(m, src)\n}\nfunc (m *PodsMetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodsMetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodsMetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodsMetricStatus proto.InternalMessageInfo\n\nfunc (m *ResourceMetricSource) Reset()      { *m = ResourceMetricSource{} }\nfunc (*ResourceMetricSource) ProtoMessage() {}\nfunc (*ResourceMetricSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_4d5f2c8767749221, []int{22}\n}\nfunc (m *ResourceMetricSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceMetricSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceMetricSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceMetricSource.Merge(m, src)\n}\nfunc (m *ResourceMetricSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceMetricSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceMetricSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceMetricSource proto.InternalMessageInfo\n\nfunc (m *ResourceMetricStatus) Reset()      { *m = ResourceMetricStatus{} }\nfunc (*ResourceMetricStatus) ProtoMessage() {}\nfunc (*ResourceMetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_4d5f2c8767749221, []int{23}\n}\nfunc (m *ResourceMetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceMetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceMetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceMetricStatus.Merge(m, src)\n}\nfunc (m *ResourceMetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceMetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceMetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceMetricStatus proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*ContainerResourceMetricSource)(nil), \"k8s.io.api.autoscaling.v2.ContainerResourceMetricSource\")\n\tproto.RegisterType((*ContainerResourceMetricStatus)(nil), \"k8s.io.api.autoscaling.v2.ContainerResourceMetricStatus\")\n\tproto.RegisterType((*CrossVersionObjectReference)(nil), \"k8s.io.api.autoscaling.v2.CrossVersionObjectReference\")\n\tproto.RegisterType((*ExternalMetricSource)(nil), \"k8s.io.api.autoscaling.v2.ExternalMetricSource\")\n\tproto.RegisterType((*ExternalMetricStatus)(nil), \"k8s.io.api.autoscaling.v2.ExternalMetricStatus\")\n\tproto.RegisterType((*HPAScalingPolicy)(nil), \"k8s.io.api.autoscaling.v2.HPAScalingPolicy\")\n\tproto.RegisterType((*HPAScalingRules)(nil), \"k8s.io.api.autoscaling.v2.HPAScalingRules\")\n\tproto.RegisterType((*HorizontalPodAutoscaler)(nil), \"k8s.io.api.autoscaling.v2.HorizontalPodAutoscaler\")\n\tproto.RegisterType((*HorizontalPodAutoscalerBehavior)(nil), \"k8s.io.api.autoscaling.v2.HorizontalPodAutoscalerBehavior\")\n\tproto.RegisterType((*HorizontalPodAutoscalerCondition)(nil), \"k8s.io.api.autoscaling.v2.HorizontalPodAutoscalerCondition\")\n\tproto.RegisterType((*HorizontalPodAutoscalerList)(nil), \"k8s.io.api.autoscaling.v2.HorizontalPodAutoscalerList\")\n\tproto.RegisterType((*HorizontalPodAutoscalerSpec)(nil), \"k8s.io.api.autoscaling.v2.HorizontalPodAutoscalerSpec\")\n\tproto.RegisterType((*HorizontalPodAutoscalerStatus)(nil), \"k8s.io.api.autoscaling.v2.HorizontalPodAutoscalerStatus\")\n\tproto.RegisterType((*MetricIdentifier)(nil), \"k8s.io.api.autoscaling.v2.MetricIdentifier\")\n\tproto.RegisterType((*MetricSpec)(nil), \"k8s.io.api.autoscaling.v2.MetricSpec\")\n\tproto.RegisterType((*MetricStatus)(nil), \"k8s.io.api.autoscaling.v2.MetricStatus\")\n\tproto.RegisterType((*MetricTarget)(nil), \"k8s.io.api.autoscaling.v2.MetricTarget\")\n\tproto.RegisterType((*MetricValueStatus)(nil), \"k8s.io.api.autoscaling.v2.MetricValueStatus\")\n\tproto.RegisterType((*ObjectMetricSource)(nil), \"k8s.io.api.autoscaling.v2.ObjectMetricSource\")\n\tproto.RegisterType((*ObjectMetricStatus)(nil), \"k8s.io.api.autoscaling.v2.ObjectMetricStatus\")\n\tproto.RegisterType((*PodsMetricSource)(nil), \"k8s.io.api.autoscaling.v2.PodsMetricSource\")\n\tproto.RegisterType((*PodsMetricStatus)(nil), \"k8s.io.api.autoscaling.v2.PodsMetricStatus\")\n\tproto.RegisterType((*ResourceMetricSource)(nil), \"k8s.io.api.autoscaling.v2.ResourceMetricSource\")\n\tproto.RegisterType((*ResourceMetricStatus)(nil), \"k8s.io.api.autoscaling.v2.ResourceMetricStatus\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/autoscaling/v2/generated.proto\", fileDescriptor_4d5f2c8767749221)\n}\n\nvar fileDescriptor_4d5f2c8767749221 = []byte{\n\t// 1722 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x59, 0xcb, 0x8f, 0x1b, 0x49,\n\t0x19, 0x9f, 0xb6, 0x3d, 0xaf, 0xf2, 0x3c, 0x2b, 0x2f, 0x67, 0xa2, 0xd8, 0xa3, 0x26, 0x90, 0x07,\n\t0xa4, 0x4d, 0x4c, 0x88, 0x22, 0x72, 0x40, 0xd3, 0x13, 0x20, 0xa3, 0xcc, 0x30, 0x4e, 0x39, 0xc9,\n\t0x00, 0x02, 0x94, 0x72, 0x77, 0x8d, 0xa7, 0x18, 0xbb, 0xdb, 0xea, 0x6e, 0x3b, 0x99, 0x48, 0x48,\n\t0x5c, 0xb8, 0x23, 0x50, 0x84, 0xf8, 0x1f, 0x22, 0x4e, 0xa0, 0x70, 0x00, 0x09, 0x69, 0xf7, 0x90,\n\t0xcb, 0x4a, 0x39, 0xec, 0x21, 0x27, 0x6b, 0xe3, 0x95, 0xf6, 0xb8, 0x7f, 0x40, 0x4e, 0xab, 0x7a,\n\t0xf4, 0xd3, 0xaf, 0x71, 0x76, 0x32, 0xd2, 0xdc, 0x5c, 0x55, 0xdf, 0xf7, 0xfb, 0x1e, 0xf5, 0xbd,\n\t0xaa, 0x0d, 0xae, 0xee, 0xdf, 0x76, 0x35, 0x6a, 0x17, 0x71, 0x93, 0x16, 0x71, 0xcb, 0xb3, 0x5d,\n\t0x03, 0xd7, 0xa9, 0x55, 0x2b, 0xb6, 0x4b, 0xc5, 0x1a, 0xb1, 0x88, 0x83, 0x3d, 0x62, 0x6a, 0x4d,\n\t0xc7, 0xf6, 0x6c, 0x78, 0x5e, 0x90, 0x6a, 0xb8, 0x49, 0xb5, 0x08, 0xa9, 0xd6, 0x2e, 0xad, 0x5c,\n\t0xaf, 0x51, 0x6f, 0xaf, 0x55, 0xd5, 0x0c, 0xbb, 0x51, 0xac, 0xd9, 0x35, 0xbb, 0xc8, 0x39, 0xaa,\n\t0xad, 0x5d, 0xbe, 0xe2, 0x0b, 0xfe, 0x4b, 0x20, 0xad, 0xa8, 0x11, 0xa1, 0x86, 0xed, 0x90, 0x62,\n\t0xfb, 0x46, 0x52, 0xda, 0xca, 0xcd, 0x90, 0xa6, 0x81, 0x8d, 0x3d, 0x6a, 0x11, 0xe7, 0xa0, 0xd8,\n\t0xdc, 0xaf, 0x71, 0x26, 0x87, 0xb8, 0x76, 0xcb, 0x31, 0xc8, 0x58, 0x5c, 0x6e, 0xb1, 0x41, 0x3c,\n\t0xdc, 0x4f, 0x56, 0x71, 0x10, 0x97, 0xd3, 0xb2, 0x3c, 0xda, 0xe8, 0x15, 0x73, 0x6b, 0x14, 0x83,\n\t0x6b, 0xec, 0x91, 0x06, 0x4e, 0xf2, 0xa9, 0x5f, 0x29, 0xe0, 0xe2, 0xba, 0x6d, 0x79, 0x98, 0x71,\n\t0x20, 0x69, 0xc4, 0x16, 0xf1, 0x1c, 0x6a, 0x54, 0xf8, 0x6f, 0xb8, 0x0e, 0x32, 0x16, 0x6e, 0x90,\n\t0x9c, 0xb2, 0xaa, 0x5c, 0x99, 0xd5, 0x8b, 0xaf, 0x3b, 0x85, 0x89, 0x6e, 0xa7, 0x90, 0xf9, 0x25,\n\t0x6e, 0x90, 0xf7, 0x9d, 0x42, 0xa1, 0xd7, 0x71, 0x9a, 0x0f, 0xc3, 0x48, 0x10, 0x67, 0x86, 0xdb,\n\t0x60, 0xca, 0xc3, 0x4e, 0x8d, 0x78, 0xb9, 0xd4, 0xaa, 0x72, 0x25, 0x5b, 0xba, 0xac, 0x0d, 0xbc,\n\t0x3a, 0x4d, 0x48, 0x7f, 0xc8, 0xc9, 0xf5, 0x05, 0x29, 0x6f, 0x4a, 0xac, 0x91, 0x84, 0x81, 0x45,\n\t0x30, 0x6b, 0xf8, 0x6a, 0xe7, 0xd2, 0x5c, 0xb5, 0x65, 0x49, 0x3a, 0x1b, 0xda, 0x13, 0xd2, 0xa8,\n\t0x5f, 0x0f, 0x31, 0xd4, 0xc3, 0x5e, 0xcb, 0x3d, 0x1a, 0x43, 0x77, 0xc0, 0xb4, 0xd1, 0x72, 0x1c,\n\t0x62, 0xf9, 0x96, 0xfe, 0x60, 0xa4, 0xa5, 0x8f, 0x71, 0xbd, 0x45, 0x84, 0x0e, 0xfa, 0xa2, 0x94,\n\t0x3a, 0xbd, 0x2e, 0x40, 0x90, 0x8f, 0x36, 0xbe, 0xc1, 0x2f, 0x14, 0x70, 0x61, 0xdd, 0xb1, 0x5d,\n\t0xf7, 0x31, 0x71, 0x5c, 0x6a, 0x5b, 0xdb, 0xd5, 0x3f, 0x10, 0xc3, 0x43, 0x64, 0x97, 0x38, 0xc4,\n\t0x32, 0x08, 0x5c, 0x05, 0x99, 0x7d, 0x6a, 0x99, 0xd2, 0xdc, 0x39, 0xdf, 0xdc, 0xfb, 0xd4, 0x32,\n\t0x11, 0x3f, 0x61, 0x14, 0xdc, 0x21, 0xa9, 0x38, 0x45, 0xc4, 0xda, 0x12, 0x00, 0xb8, 0x49, 0xa5,\n\t0x00, 0xa9, 0x15, 0x94, 0x74, 0x60, 0xad, 0xbc, 0x21, 0x4f, 0x50, 0x84, 0x4a, 0xfd, 0xaf, 0x02,\n\t0x4e, 0xff, 0xec, 0x99, 0x47, 0x1c, 0x0b, 0xd7, 0x63, 0x81, 0x56, 0x01, 0x53, 0x0d, 0xbe, 0xe6,\n\t0x2a, 0x65, 0x4b, 0xdf, 0x1f, 0xe9, 0xb9, 0x0d, 0x93, 0x58, 0x1e, 0xdd, 0xa5, 0xc4, 0x09, 0xe3,\n\t0x44, 0x9c, 0x20, 0x09, 0x75, 0xe4, 0x81, 0xa7, 0x7e, 0xda, 0xab, 0xbe, 0x08, 0x9f, 0x8f, 0xa2,\n\t0xfe, 0xc7, 0x0a, 0x27, 0xf5, 0x9f, 0x0a, 0x58, 0xba, 0x57, 0x5e, 0xab, 0x08, 0xee, 0xb2, 0x5d,\n\t0xa7, 0xc6, 0x01, 0xbc, 0x0d, 0x32, 0xde, 0x41, 0xd3, 0xcf, 0x80, 0x4b, 0xfe, 0x85, 0x3f, 0x3c,\n\t0x68, 0xb2, 0x0c, 0x38, 0x9d, 0xa4, 0x67, 0xfb, 0x88, 0x73, 0xc0, 0xef, 0x80, 0xc9, 0x36, 0x93,\n\t0xcb, 0xb5, 0x9c, 0xd4, 0xe7, 0x25, 0xeb, 0x24, 0x57, 0x06, 0x89, 0x33, 0x78, 0x07, 0xcc, 0x37,\n\t0x89, 0x43, 0x6d, 0xb3, 0x42, 0x0c, 0xdb, 0x32, 0x5d, 0x1e, 0x30, 0x93, 0xfa, 0x19, 0x49, 0x3c,\n\t0x5f, 0x8e, 0x1e, 0xa2, 0x38, 0xad, 0xfa, 0x8f, 0x14, 0x58, 0x0c, 0x15, 0x40, 0xad, 0x3a, 0x71,\n\t0xe1, 0xef, 0xc1, 0x8a, 0xeb, 0xe1, 0x2a, 0xad, 0xd3, 0xe7, 0xd8, 0xa3, 0xb6, 0xb5, 0x43, 0x2d,\n\t0xd3, 0x7e, 0x1a, 0x47, 0xcf, 0x77, 0x3b, 0x85, 0x95, 0xca, 0x40, 0x2a, 0x34, 0x04, 0x01, 0xde,\n\t0x07, 0x73, 0x2e, 0xa9, 0x13, 0xc3, 0x13, 0xf6, 0x4a, 0xbf, 0x5c, 0xee, 0x76, 0x0a, 0x73, 0x95,\n\t0xc8, 0xfe, 0xfb, 0x4e, 0xe1, 0x54, 0xcc, 0x31, 0xe2, 0x10, 0xc5, 0x98, 0xe1, 0xaf, 0xc1, 0x4c,\n\t0x93, 0xfd, 0xa2, 0xc4, 0xcd, 0xa5, 0x56, 0xd3, 0x23, 0x22, 0x24, 0xe9, 0x6b, 0x7d, 0x49, 0x7a,\n\t0x69, 0xa6, 0x2c, 0x41, 0x50, 0x00, 0xa7, 0xbe, 0x4a, 0x81, 0x73, 0xf7, 0x6c, 0x87, 0x3e, 0x67,\n\t0xc9, 0x5f, 0x2f, 0xdb, 0xe6, 0x9a, 0x04, 0x23, 0x0e, 0x7c, 0x02, 0x66, 0x58, 0x93, 0x31, 0xb1,\n\t0x87, 0x65, 0x60, 0xfe, 0x30, 0x22, 0x36, 0xe8, 0x15, 0x5a, 0x73, 0xbf, 0xc6, 0x36, 0x5c, 0x8d,\n\t0x51, 0x6b, 0xed, 0x1b, 0x9a, 0xa8, 0x17, 0x5b, 0xc4, 0xc3, 0x61, 0x4a, 0x87, 0x7b, 0x28, 0x40,\n\t0x85, 0xbf, 0x02, 0x19, 0xb7, 0x49, 0x0c, 0x19, 0xa0, 0xb7, 0x86, 0x19, 0xd5, 0x5f, 0xc7, 0x4a,\n\t0x93, 0x18, 0x61, 0x79, 0x61, 0x2b, 0xc4, 0x11, 0xe1, 0x13, 0x30, 0xe5, 0xf2, 0x40, 0xe6, 0x77,\n\t0x99, 0x2d, 0xdd, 0xfe, 0x00, 0x6c, 0x91, 0x08, 0x41, 0x7e, 0x89, 0x35, 0x92, 0xb8, 0xea, 0x67,\n\t0x0a, 0x28, 0x0c, 0xe0, 0xd4, 0xc9, 0x1e, 0x6e, 0x53, 0xdb, 0x81, 0x0f, 0xc0, 0x34, 0xdf, 0x79,\n\t0xd4, 0x94, 0x0e, 0xbc, 0x76, 0xa8, 0x7b, 0xe3, 0x21, 0xaa, 0x67, 0x59, 0xf6, 0x55, 0x04, 0x3b,\n\t0xf2, 0x71, 0xe0, 0x0e, 0x98, 0xe5, 0x3f, 0xef, 0xda, 0x4f, 0x2d, 0xe9, 0xb7, 0x71, 0x40, 0xe7,\n\t0x59, 0xd1, 0xaf, 0xf8, 0x00, 0x28, 0xc4, 0x52, 0xff, 0x9c, 0x06, 0xab, 0x03, 0xec, 0x59, 0xb7,\n\t0x2d, 0x93, 0xb2, 0x18, 0x87, 0xf7, 0x62, 0x69, 0x7e, 0x33, 0x91, 0xe6, 0x97, 0x46, 0xf1, 0x47,\n\t0xd2, 0x7e, 0x33, 0xb8, 0xa0, 0x54, 0x0c, 0x4b, 0xba, 0xf9, 0x7d, 0xa7, 0xd0, 0x67, 0xb0, 0xd2,\n\t0x02, 0xa4, 0xf8, 0x65, 0xc0, 0x36, 0x80, 0x75, 0xec, 0x7a, 0x0f, 0x1d, 0x6c, 0xb9, 0x42, 0x12,\n\t0x6d, 0x10, 0x79, 0xf5, 0xd7, 0x0e, 0x17, 0xb4, 0x8c, 0x43, 0x5f, 0x91, 0x5a, 0xc0, 0xcd, 0x1e,\n\t0x34, 0xd4, 0x47, 0x02, 0xfc, 0x1e, 0x98, 0x72, 0x08, 0x76, 0x6d, 0x2b, 0x97, 0xe1, 0x56, 0x04,\n\t0xc1, 0x82, 0xf8, 0x2e, 0x92, 0xa7, 0xf0, 0x2a, 0x98, 0x6e, 0x10, 0xd7, 0xc5, 0x35, 0x92, 0x9b,\n\t0xe4, 0x84, 0x41, 0x79, 0xdd, 0x12, 0xdb, 0xc8, 0x3f, 0x57, 0x3f, 0x57, 0xc0, 0x85, 0x01, 0x7e,\n\t0xdc, 0xa4, 0xae, 0x07, 0x7f, 0xdb, 0x93, 0x95, 0xda, 0xe1, 0x0c, 0x64, 0xdc, 0x3c, 0x27, 0x83,\n\t0x7a, 0xe0, 0xef, 0x44, 0x32, 0x72, 0x07, 0x4c, 0x52, 0x8f, 0x34, 0xfc, 0x3a, 0x53, 0x1a, 0x3f,\n\t0x6d, 0xc2, 0x0a, 0xbe, 0xc1, 0x80, 0x90, 0xc0, 0x53, 0x5f, 0xa5, 0x07, 0x9a, 0xc5, 0xd2, 0x16,\n\t0xb6, 0xc1, 0x02, 0x5f, 0xc9, 0x9e, 0x49, 0x76, 0xa5, 0x71, 0xc3, 0x8a, 0xc2, 0x90, 0x19, 0x45,\n\t0x3f, 0x2b, 0xb5, 0x58, 0xa8, 0xc4, 0x50, 0x51, 0x42, 0x0a, 0xbc, 0x01, 0xb2, 0x0d, 0x6a, 0x21,\n\t0xd2, 0xac, 0x53, 0x03, 0xbb, 0xb2, 0x09, 0x2d, 0x76, 0x3b, 0x85, 0xec, 0x56, 0xb8, 0x8d, 0xa2,\n\t0x34, 0xf0, 0xc7, 0x20, 0xdb, 0xc0, 0xcf, 0x02, 0x16, 0xd1, 0x2c, 0x4e, 0x49, 0x79, 0xd9, 0xad,\n\t0xf0, 0x08, 0x45, 0xe9, 0x60, 0x99, 0xc5, 0x00, 0x6b, 0xb3, 0x6e, 0x2e, 0xc3, 0x9d, 0xfb, 0xdd,\n\t0x91, 0x0d, 0x99, 0x97, 0xb7, 0x48, 0xa8, 0x70, 0x6e, 0xe4, 0xc3, 0x40, 0x13, 0xcc, 0x54, 0x65,\n\t0xa9, 0xe1, 0x61, 0x95, 0x2d, 0xfd, 0xe4, 0x03, 0xee, 0x4b, 0x22, 0xe8, 0x73, 0x2c, 0x24, 0xfc,\n\t0x15, 0x0a, 0x90, 0xd5, 0x97, 0x19, 0x70, 0x71, 0x68, 0x89, 0x84, 0x3f, 0x07, 0xd0, 0xae, 0xba,\n\t0xc4, 0x69, 0x13, 0xf3, 0x17, 0xe2, 0x91, 0xc0, 0x66, 0x3a, 0x76, 0x7f, 0x69, 0xfd, 0x2c, 0xcb,\n\t0xa6, 0xed, 0x9e, 0x53, 0xd4, 0x87, 0x03, 0x1a, 0x60, 0x9e, 0xe5, 0x98, 0xb8, 0x31, 0x2a, 0xc7,\n\t0xc7, 0xf1, 0x12, 0x78, 0x99, 0x4d, 0x03, 0x9b, 0x51, 0x10, 0x14, 0xc7, 0x84, 0x6b, 0x60, 0x51,\n\t0x4e, 0x32, 0x89, 0x1b, 0x3c, 0x27, 0xfd, 0xbc, 0xb8, 0x1e, 0x3f, 0x46, 0x49, 0x7a, 0x06, 0x61,\n\t0x12, 0x97, 0x3a, 0xc4, 0x0c, 0x20, 0x32, 0x71, 0x88, 0xbb, 0xf1, 0x63, 0x94, 0xa4, 0x87, 0x35,\n\t0xb0, 0x20, 0x51, 0xe5, 0xad, 0xe6, 0x26, 0x79, 0x4c, 0x8c, 0x1e, 0x32, 0x65, 0x5b, 0x0a, 0xe2,\n\t0x7b, 0x3d, 0x06, 0x83, 0x12, 0xb0, 0xd0, 0x06, 0xc0, 0xf0, 0x8b, 0xa6, 0x9b, 0x9b, 0xe2, 0x42,\n\t0xee, 0x8c, 0x1f, 0x25, 0x41, 0xe1, 0x0d, 0x3b, 0x7a, 0xb0, 0xe5, 0xa2, 0x88, 0x08, 0xf5, 0x6f,\n\t0x0a, 0x58, 0x4a, 0x0e, 0xa9, 0xc1, 0x7b, 0x40, 0x19, 0xf8, 0x1e, 0xf8, 0x1d, 0x98, 0x11, 0x33,\n\t0x8f, 0xed, 0xc8, 0x6b, 0xff, 0xd1, 0x21, 0xcb, 0x1a, 0xae, 0x92, 0x7a, 0x45, 0xb2, 0x8a, 0x20,\n\t0xf6, 0x57, 0x28, 0x80, 0x54, 0x5f, 0x64, 0x00, 0x08, 0x73, 0x0a, 0xde, 0x8c, 0xf5, 0xb1, 0xd5,\n\t0x44, 0x1f, 0x5b, 0x8a, 0x3e, 0x2e, 0x22, 0x3d, 0xeb, 0x01, 0x98, 0xb2, 0x79, 0x99, 0x91, 0x1a,\n\t0x5e, 0x1f, 0xe2, 0xc7, 0x60, 0xde, 0x09, 0x80, 0x74, 0xc0, 0x1a, 0x83, 0xac, 0x53, 0x12, 0x08,\n\t0x6e, 0x80, 0x4c, 0xd3, 0x36, 0xfd, 0x29, 0x65, 0xd8, 0x58, 0x57, 0xb6, 0x4d, 0x37, 0x06, 0x37,\n\t0xc3, 0x34, 0x66, 0xbb, 0x88, 0x43, 0xb0, 0x29, 0xd1, 0xff, 0x94, 0xc0, 0xc3, 0x31, 0x5b, 0x2a,\n\t0x0e, 0x81, 0xeb, 0xf7, 0x60, 0x17, 0xde, 0xf3, 0x4f, 0x50, 0x00, 0x07, 0xff, 0x08, 0x96, 0x8d,\n\t0xe4, 0x03, 0x38, 0x37, 0x3d, 0x72, 0xb0, 0x1a, 0xfa, 0x75, 0x40, 0x3f, 0xd3, 0xed, 0x14, 0x96,\n\t0x7b, 0x48, 0x50, 0xaf, 0x24, 0x66, 0x19, 0x91, 0xef, 0x26, 0x59, 0xe7, 0x86, 0x59, 0xd6, 0xef,\n\t0x85, 0x28, 0x2c, 0xf3, 0x4f, 0x50, 0x00, 0xa7, 0xfe, 0x3d, 0x03, 0xe6, 0x62, 0x6f, 0xb1, 0x63,\n\t0x8e, 0x0c, 0x91, 0xcc, 0x47, 0x16, 0x19, 0x02, 0xee, 0x48, 0x23, 0x43, 0x40, 0x1e, 0x53, 0x64,\n\t0x08, 0x61, 0xc7, 0x14, 0x19, 0x11, 0xcb, 0xfa, 0x44, 0xc6, 0x27, 0x29, 0x3f, 0x32, 0xc4, 0xb0,\n\t0x70, 0xb8, 0xc8, 0x10, 0xb4, 0x91, 0xc8, 0xd8, 0x8e, 0x3e, 0x6f, 0x47, 0xcc, 0x6a, 0x9a, 0xef,\n\t0x56, 0xed, 0x41, 0x0b, 0x5b, 0x1e, 0xf5, 0x0e, 0xf4, 0xd9, 0x9e, 0xa7, 0xb0, 0x09, 0xe6, 0x70,\n\t0x9b, 0x38, 0xb8, 0x46, 0xf8, 0xb6, 0x8c, 0x8f, 0x71, 0x71, 0x97, 0xd8, 0x4b, 0x74, 0x2d, 0x82,\n\t0x83, 0x62, 0xa8, 0xac, 0xa5, 0xcb, 0xf5, 0x23, 0x2f, 0x78, 0xe2, 0xca, 0x2e, 0xc7, 0x5b, 0xfa,\n\t0x5a, 0xcf, 0x29, 0xea, 0xc3, 0xa1, 0xfe, 0x35, 0x05, 0x96, 0x7b, 0x3e, 0x2e, 0x84, 0x4e, 0x51,\n\t0x3e, 0x92, 0x53, 0x52, 0xc7, 0xe8, 0x94, 0xf4, 0xd8, 0x4e, 0xf9, 0x77, 0x0a, 0xc0, 0xde, 0xfe,\n\t0x00, 0x0f, 0xf8, 0x58, 0x61, 0x38, 0xb4, 0x4a, 0x4c, 0x71, 0xfc, 0x2d, 0x67, 0xe0, 0xe8, 0x38,\n\t0x12, 0x85, 0x45, 0x49, 0x39, 0x47, 0xff, 0x91, 0x35, 0xfc, 0xa4, 0x95, 0x3e, 0xb2, 0x4f, 0x5a,\n\t0xea, 0xff, 0x92, 0x7e, 0x3b, 0x81, 0x9f, 0xcf, 0xfa, 0xdd, 0x72, 0xfa, 0x78, 0x6e, 0x59, 0xfd,\n\t0x8f, 0x02, 0x96, 0x92, 0x63, 0xc4, 0x09, 0xf9, 0x76, 0xfa, 0xff, 0xb8, 0xea, 0x27, 0xf1, 0xbb,\n\t0xe9, 0x4b, 0x05, 0x9c, 0x3e, 0x39, 0x7f, 0x93, 0xa8, 0xff, 0xea, 0x55, 0xf7, 0x04, 0xfc, 0xd9,\n\t0xa1, 0xff, 0xf4, 0xf5, 0xbb, 0xfc, 0xc4, 0x9b, 0x77, 0xf9, 0x89, 0xb7, 0xef, 0xf2, 0x13, 0x7f,\n\t0xea, 0xe6, 0x95, 0xd7, 0xdd, 0xbc, 0xf2, 0xa6, 0x9b, 0x57, 0xde, 0x76, 0xf3, 0xca, 0x17, 0xdd,\n\t0xbc, 0xf2, 0x97, 0x2f, 0xf3, 0x13, 0xbf, 0x39, 0x3f, 0xf0, 0x9f, 0xc2, 0x6f, 0x02, 0x00, 0x00,\n\t0xff, 0xff, 0xca, 0x8b, 0x47, 0xba, 0x45, 0x1c, 0x00, 0x00,\n}\n\nfunc (m *ContainerResourceMetricSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerResourceMetricSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerResourceMetricSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Container)\n\tcopy(dAtA[i:], m.Container)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Container)))\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Target.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerResourceMetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerResourceMetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerResourceMetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Container)\n\tcopy(dAtA[i:], m.Container)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Container)))\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Current.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CrossVersionObjectReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CrossVersionObjectReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CrossVersionObjectReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.APIVersion)\n\tcopy(dAtA[i:], m.APIVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIVersion)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ExternalMetricSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ExternalMetricSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ExternalMetricSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Target.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.Metric.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ExternalMetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ExternalMetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ExternalMetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Current.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.Metric.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HPAScalingPolicy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HPAScalingPolicy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HPAScalingPolicy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.PeriodSeconds))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Value))\n\ti--\n\tdAtA[i] = 0x10\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HPAScalingRules) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HPAScalingRules) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HPAScalingRules) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.StabilizationWindowSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.StabilizationWindowSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif len(m.Policies) > 0 {\n\t\tfor iNdEx := len(m.Policies) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Policies[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif m.SelectPolicy != nil {\n\t\ti -= len(*m.SelectPolicy)\n\t\tcopy(dAtA[i:], *m.SelectPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.SelectPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscaler) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscaler) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscaler) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscalerBehavior) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscalerBehavior) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscalerBehavior) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ScaleDown != nil {\n\t\t{\n\t\t\tsize, err := m.ScaleDown.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.ScaleUp != nil {\n\t\t{\n\t\t\tsize, err := m.ScaleUp.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscalerCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscalerCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscalerCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscalerList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscalerList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscalerList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscalerSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscalerSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscalerSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Behavior != nil {\n\t\t{\n\t\t\tsize, err := m.Behavior.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif len(m.Metrics) > 0 {\n\t\tfor iNdEx := len(m.Metrics) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Metrics[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MaxReplicas))\n\ti--\n\tdAtA[i] = 0x18\n\tif m.MinReplicas != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.MinReplicas))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\t{\n\t\tsize, err := m.ScaleTargetRef.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscalerStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscalerStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscalerStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\tif len(m.CurrentMetrics) > 0 {\n\t\tfor iNdEx := len(m.CurrentMetrics) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.CurrentMetrics[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.DesiredReplicas))\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.CurrentReplicas))\n\ti--\n\tdAtA[i] = 0x18\n\tif m.LastScaleTime != nil {\n\t\t{\n\t\t\tsize, err := m.LastScaleTime.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.ObservedGeneration != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.ObservedGeneration))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MetricIdentifier) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MetricIdentifier) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MetricIdentifier) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MetricSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MetricSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MetricSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ContainerResource != nil {\n\t\t{\n\t\t\tsize, err := m.ContainerResource.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif m.External != nil {\n\t\t{\n\t\t\tsize, err := m.External.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.Resource != nil {\n\t\t{\n\t\t\tsize, err := m.Resource.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Pods != nil {\n\t\t{\n\t\t\tsize, err := m.Pods.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Object != nil {\n\t\t{\n\t\t\tsize, err := m.Object.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ContainerResource != nil {\n\t\t{\n\t\t\tsize, err := m.ContainerResource.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif m.External != nil {\n\t\t{\n\t\t\tsize, err := m.External.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.Resource != nil {\n\t\t{\n\t\t\tsize, err := m.Resource.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Pods != nil {\n\t\t{\n\t\t\tsize, err := m.Pods.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Object != nil {\n\t\t{\n\t\t\tsize, err := m.Object.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MetricTarget) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MetricTarget) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MetricTarget) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.AverageUtilization != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.AverageUtilization))\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif m.AverageValue != nil {\n\t\t{\n\t\t\tsize, err := m.AverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Value != nil {\n\t\t{\n\t\t\tsize, err := m.Value.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MetricValueStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MetricValueStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MetricValueStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.AverageUtilization != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.AverageUtilization))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif m.AverageValue != nil {\n\t\t{\n\t\t\tsize, err := m.AverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Value != nil {\n\t\t{\n\t\t\tsize, err := m.Value.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ObjectMetricSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ObjectMetricSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ObjectMetricSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Metric.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Target.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.DescribedObject.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ObjectMetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ObjectMetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ObjectMetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.DescribedObject.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Current.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.Metric.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodsMetricSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodsMetricSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodsMetricSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Target.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.Metric.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodsMetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodsMetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodsMetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Current.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.Metric.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceMetricSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceMetricSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceMetricSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Target.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceMetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceMetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceMetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Current.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *ContainerResourceMetricSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Target.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Container)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ContainerResourceMetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Current.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Container)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *CrossVersionObjectReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.APIVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ExternalMetricSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Metric.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Target.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ExternalMetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Metric.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Current.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *HPAScalingPolicy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.Value))\n\tn += 1 + sovGenerated(uint64(m.PeriodSeconds))\n\treturn n\n}\n\nfunc (m *HPAScalingRules) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.SelectPolicy != nil {\n\t\tl = len(*m.SelectPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.Policies) > 0 {\n\t\tfor _, e := range m.Policies {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.StabilizationWindowSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.StabilizationWindowSeconds))\n\t}\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscaler) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscalerBehavior) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.ScaleUp != nil {\n\t\tl = m.ScaleUp.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ScaleDown != nil {\n\t\tl = m.ScaleDown.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscalerCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscalerList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscalerSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ScaleTargetRef.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.MinReplicas != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.MinReplicas))\n\t}\n\tn += 1 + sovGenerated(uint64(m.MaxReplicas))\n\tif len(m.Metrics) > 0 {\n\t\tfor _, e := range m.Metrics {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.Behavior != nil {\n\t\tl = m.Behavior.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscalerStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.ObservedGeneration != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.ObservedGeneration))\n\t}\n\tif m.LastScaleTime != nil {\n\t\tl = m.LastScaleTime.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 1 + sovGenerated(uint64(m.CurrentReplicas))\n\tn += 1 + sovGenerated(uint64(m.DesiredReplicas))\n\tif len(m.CurrentMetrics) > 0 {\n\t\tfor _, e := range m.CurrentMetrics {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *MetricIdentifier) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *MetricSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Object != nil {\n\t\tl = m.Object.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Pods != nil {\n\t\tl = m.Pods.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Resource != nil {\n\t\tl = m.Resource.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.External != nil {\n\t\tl = m.External.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ContainerResource != nil {\n\t\tl = m.ContainerResource.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *MetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Object != nil {\n\t\tl = m.Object.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Pods != nil {\n\t\tl = m.Pods.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Resource != nil {\n\t\tl = m.Resource.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.External != nil {\n\t\tl = m.External.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ContainerResource != nil {\n\t\tl = m.ContainerResource.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *MetricTarget) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Value != nil {\n\t\tl = m.Value.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.AverageValue != nil {\n\t\tl = m.AverageValue.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.AverageUtilization != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.AverageUtilization))\n\t}\n\treturn n\n}\n\nfunc (m *MetricValueStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Value != nil {\n\t\tl = m.Value.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.AverageValue != nil {\n\t\tl = m.AverageValue.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.AverageUtilization != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.AverageUtilization))\n\t}\n\treturn n\n}\n\nfunc (m *ObjectMetricSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.DescribedObject.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Target.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Metric.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ObjectMetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Metric.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Current.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.DescribedObject.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PodsMetricSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Metric.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Target.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PodsMetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Metric.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Current.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ResourceMetricSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Target.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ResourceMetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Current.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *ContainerResourceMetricSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ContainerResourceMetricSource{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Target:` + strings.Replace(strings.Replace(this.Target.String(), \"MetricTarget\", \"MetricTarget\", 1), `&`, ``, 1) + `,`,\n\t\t`Container:` + fmt.Sprintf(\"%v\", this.Container) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerResourceMetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ContainerResourceMetricStatus{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Current:` + strings.Replace(strings.Replace(this.Current.String(), \"MetricValueStatus\", \"MetricValueStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`Container:` + fmt.Sprintf(\"%v\", this.Container) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CrossVersionObjectReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CrossVersionObjectReference{`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`APIVersion:` + fmt.Sprintf(\"%v\", this.APIVersion) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ExternalMetricSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ExternalMetricSource{`,\n\t\t`Metric:` + strings.Replace(strings.Replace(this.Metric.String(), \"MetricIdentifier\", \"MetricIdentifier\", 1), `&`, ``, 1) + `,`,\n\t\t`Target:` + strings.Replace(strings.Replace(this.Target.String(), \"MetricTarget\", \"MetricTarget\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ExternalMetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ExternalMetricStatus{`,\n\t\t`Metric:` + strings.Replace(strings.Replace(this.Metric.String(), \"MetricIdentifier\", \"MetricIdentifier\", 1), `&`, ``, 1) + `,`,\n\t\t`Current:` + strings.Replace(strings.Replace(this.Current.String(), \"MetricValueStatus\", \"MetricValueStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HPAScalingPolicy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HPAScalingPolicy{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Value:` + fmt.Sprintf(\"%v\", this.Value) + `,`,\n\t\t`PeriodSeconds:` + fmt.Sprintf(\"%v\", this.PeriodSeconds) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HPAScalingRules) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForPolicies := \"[]HPAScalingPolicy{\"\n\tfor _, f := range this.Policies {\n\t\trepeatedStringForPolicies += strings.Replace(strings.Replace(f.String(), \"HPAScalingPolicy\", \"HPAScalingPolicy\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPolicies += \"}\"\n\ts := strings.Join([]string{`&HPAScalingRules{`,\n\t\t`SelectPolicy:` + valueToStringGenerated(this.SelectPolicy) + `,`,\n\t\t`Policies:` + repeatedStringForPolicies + `,`,\n\t\t`StabilizationWindowSeconds:` + valueToStringGenerated(this.StabilizationWindowSeconds) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscaler) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HorizontalPodAutoscaler{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"HorizontalPodAutoscalerSpec\", \"HorizontalPodAutoscalerSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"HorizontalPodAutoscalerStatus\", \"HorizontalPodAutoscalerStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscalerBehavior) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HorizontalPodAutoscalerBehavior{`,\n\t\t`ScaleUp:` + strings.Replace(this.ScaleUp.String(), \"HPAScalingRules\", \"HPAScalingRules\", 1) + `,`,\n\t\t`ScaleDown:` + strings.Replace(this.ScaleDown.String(), \"HPAScalingRules\", \"HPAScalingRules\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscalerCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HorizontalPodAutoscalerCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscalerList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]HorizontalPodAutoscaler{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"HorizontalPodAutoscaler\", \"HorizontalPodAutoscaler\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&HorizontalPodAutoscalerList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscalerSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForMetrics := \"[]MetricSpec{\"\n\tfor _, f := range this.Metrics {\n\t\trepeatedStringForMetrics += strings.Replace(strings.Replace(f.String(), \"MetricSpec\", \"MetricSpec\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForMetrics += \"}\"\n\ts := strings.Join([]string{`&HorizontalPodAutoscalerSpec{`,\n\t\t`ScaleTargetRef:` + strings.Replace(strings.Replace(this.ScaleTargetRef.String(), \"CrossVersionObjectReference\", \"CrossVersionObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`MinReplicas:` + valueToStringGenerated(this.MinReplicas) + `,`,\n\t\t`MaxReplicas:` + fmt.Sprintf(\"%v\", this.MaxReplicas) + `,`,\n\t\t`Metrics:` + repeatedStringForMetrics + `,`,\n\t\t`Behavior:` + strings.Replace(this.Behavior.String(), \"HorizontalPodAutoscalerBehavior\", \"HorizontalPodAutoscalerBehavior\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscalerStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForCurrentMetrics := \"[]MetricStatus{\"\n\tfor _, f := range this.CurrentMetrics {\n\t\trepeatedStringForCurrentMetrics += strings.Replace(strings.Replace(f.String(), \"MetricStatus\", \"MetricStatus\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForCurrentMetrics += \"}\"\n\trepeatedStringForConditions := \"[]HorizontalPodAutoscalerCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"HorizontalPodAutoscalerCondition\", \"HorizontalPodAutoscalerCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&HorizontalPodAutoscalerStatus{`,\n\t\t`ObservedGeneration:` + valueToStringGenerated(this.ObservedGeneration) + `,`,\n\t\t`LastScaleTime:` + strings.Replace(fmt.Sprintf(\"%v\", this.LastScaleTime), \"Time\", \"v1.Time\", 1) + `,`,\n\t\t`CurrentReplicas:` + fmt.Sprintf(\"%v\", this.CurrentReplicas) + `,`,\n\t\t`DesiredReplicas:` + fmt.Sprintf(\"%v\", this.DesiredReplicas) + `,`,\n\t\t`CurrentMetrics:` + repeatedStringForCurrentMetrics + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MetricIdentifier) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&MetricIdentifier{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MetricSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&MetricSpec{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Object:` + strings.Replace(this.Object.String(), \"ObjectMetricSource\", \"ObjectMetricSource\", 1) + `,`,\n\t\t`Pods:` + strings.Replace(this.Pods.String(), \"PodsMetricSource\", \"PodsMetricSource\", 1) + `,`,\n\t\t`Resource:` + strings.Replace(this.Resource.String(), \"ResourceMetricSource\", \"ResourceMetricSource\", 1) + `,`,\n\t\t`External:` + strings.Replace(this.External.String(), \"ExternalMetricSource\", \"ExternalMetricSource\", 1) + `,`,\n\t\t`ContainerResource:` + strings.Replace(this.ContainerResource.String(), \"ContainerResourceMetricSource\", \"ContainerResourceMetricSource\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&MetricStatus{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Object:` + strings.Replace(this.Object.String(), \"ObjectMetricStatus\", \"ObjectMetricStatus\", 1) + `,`,\n\t\t`Pods:` + strings.Replace(this.Pods.String(), \"PodsMetricStatus\", \"PodsMetricStatus\", 1) + `,`,\n\t\t`Resource:` + strings.Replace(this.Resource.String(), \"ResourceMetricStatus\", \"ResourceMetricStatus\", 1) + `,`,\n\t\t`External:` + strings.Replace(this.External.String(), \"ExternalMetricStatus\", \"ExternalMetricStatus\", 1) + `,`,\n\t\t`ContainerResource:` + strings.Replace(this.ContainerResource.String(), \"ContainerResourceMetricStatus\", \"ContainerResourceMetricStatus\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MetricTarget) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&MetricTarget{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Value:` + strings.Replace(fmt.Sprintf(\"%v\", this.Value), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`AverageValue:` + strings.Replace(fmt.Sprintf(\"%v\", this.AverageValue), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`AverageUtilization:` + valueToStringGenerated(this.AverageUtilization) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MetricValueStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&MetricValueStatus{`,\n\t\t`Value:` + strings.Replace(fmt.Sprintf(\"%v\", this.Value), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`AverageValue:` + strings.Replace(fmt.Sprintf(\"%v\", this.AverageValue), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`AverageUtilization:` + valueToStringGenerated(this.AverageUtilization) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ObjectMetricSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ObjectMetricSource{`,\n\t\t`DescribedObject:` + strings.Replace(strings.Replace(this.DescribedObject.String(), \"CrossVersionObjectReference\", \"CrossVersionObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`Target:` + strings.Replace(strings.Replace(this.Target.String(), \"MetricTarget\", \"MetricTarget\", 1), `&`, ``, 1) + `,`,\n\t\t`Metric:` + strings.Replace(strings.Replace(this.Metric.String(), \"MetricIdentifier\", \"MetricIdentifier\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ObjectMetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ObjectMetricStatus{`,\n\t\t`Metric:` + strings.Replace(strings.Replace(this.Metric.String(), \"MetricIdentifier\", \"MetricIdentifier\", 1), `&`, ``, 1) + `,`,\n\t\t`Current:` + strings.Replace(strings.Replace(this.Current.String(), \"MetricValueStatus\", \"MetricValueStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`DescribedObject:` + strings.Replace(strings.Replace(this.DescribedObject.String(), \"CrossVersionObjectReference\", \"CrossVersionObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodsMetricSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodsMetricSource{`,\n\t\t`Metric:` + strings.Replace(strings.Replace(this.Metric.String(), \"MetricIdentifier\", \"MetricIdentifier\", 1), `&`, ``, 1) + `,`,\n\t\t`Target:` + strings.Replace(strings.Replace(this.Target.String(), \"MetricTarget\", \"MetricTarget\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodsMetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodsMetricStatus{`,\n\t\t`Metric:` + strings.Replace(strings.Replace(this.Metric.String(), \"MetricIdentifier\", \"MetricIdentifier\", 1), `&`, ``, 1) + `,`,\n\t\t`Current:` + strings.Replace(strings.Replace(this.Current.String(), \"MetricValueStatus\", \"MetricValueStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceMetricSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceMetricSource{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Target:` + strings.Replace(strings.Replace(this.Target.String(), \"MetricTarget\", \"MetricTarget\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceMetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceMetricStatus{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Current:` + strings.Replace(strings.Replace(this.Current.String(), \"MetricValueStatus\", \"MetricValueStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *ContainerResourceMetricSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerResourceMetricSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerResourceMetricSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Target\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Target.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Container\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Container = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerResourceMetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerResourceMetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerResourceMetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Current\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Current.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Container\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Container = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CrossVersionObjectReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CrossVersionObjectReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CrossVersionObjectReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ExternalMetricSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ExternalMetricSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ExternalMetricSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Metric\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Metric.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Target\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Target.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ExternalMetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ExternalMetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ExternalMetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Metric\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Metric.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Current\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Current.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HPAScalingPolicy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HPAScalingPolicy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HPAScalingPolicy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = HPAScalingPolicyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Value\", wireType)\n\t\t\t}\n\t\t\tm.Value = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Value |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PeriodSeconds\", wireType)\n\t\t\t}\n\t\t\tm.PeriodSeconds = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.PeriodSeconds |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HPAScalingRules) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HPAScalingRules: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HPAScalingRules: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SelectPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := ScalingPolicySelect(dAtA[iNdEx:postIndex])\n\t\t\tm.SelectPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Policies\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Policies = append(m.Policies, HPAScalingPolicy{})\n\t\t\tif err := m.Policies[len(m.Policies)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StabilizationWindowSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.StabilizationWindowSeconds = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscaler) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscaler: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscaler: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscalerBehavior) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerBehavior: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerBehavior: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ScaleUp\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ScaleUp == nil {\n\t\t\t\tm.ScaleUp = &HPAScalingRules{}\n\t\t\t}\n\t\t\tif err := m.ScaleUp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ScaleDown\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ScaleDown == nil {\n\t\t\t\tm.ScaleDown = &HPAScalingRules{}\n\t\t\t}\n\t\t\tif err := m.ScaleDown.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscalerCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = HorizontalPodAutoscalerConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscalerList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, HorizontalPodAutoscaler{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscalerSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ScaleTargetRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ScaleTargetRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MinReplicas\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.MinReplicas = &v\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxReplicas\", wireType)\n\t\t\t}\n\t\t\tm.MaxReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MaxReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Metrics\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Metrics = append(m.Metrics, MetricSpec{})\n\t\t\tif err := m.Metrics[len(m.Metrics)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Behavior\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Behavior == nil {\n\t\t\t\tm.Behavior = &HorizontalPodAutoscalerBehavior{}\n\t\t\t}\n\t\t\tif err := m.Behavior.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscalerStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ObservedGeneration = &v\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastScaleTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.LastScaleTime == nil {\n\t\t\t\tm.LastScaleTime = &v1.Time{}\n\t\t\t}\n\t\t\tif err := m.LastScaleTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentReplicas\", wireType)\n\t\t\t}\n\t\t\tm.CurrentReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.CurrentReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DesiredReplicas\", wireType)\n\t\t\t}\n\t\t\tm.DesiredReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.DesiredReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentMetrics\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.CurrentMetrics = append(m.CurrentMetrics, MetricStatus{})\n\t\t\tif err := m.CurrentMetrics[len(m.CurrentMetrics)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, HorizontalPodAutoscalerCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MetricIdentifier) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MetricIdentifier: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MetricIdentifier: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MetricSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MetricSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MetricSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = MetricSourceType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Object\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Object == nil {\n\t\t\t\tm.Object = &ObjectMetricSource{}\n\t\t\t}\n\t\t\tif err := m.Object.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Pods\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Pods == nil {\n\t\t\t\tm.Pods = &PodsMetricSource{}\n\t\t\t}\n\t\t\tif err := m.Pods.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Resource == nil {\n\t\t\t\tm.Resource = &ResourceMetricSource{}\n\t\t\t}\n\t\t\tif err := m.Resource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field External\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.External == nil {\n\t\t\t\tm.External = &ExternalMetricSource{}\n\t\t\t}\n\t\t\tif err := m.External.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerResource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ContainerResource == nil {\n\t\t\t\tm.ContainerResource = &ContainerResourceMetricSource{}\n\t\t\t}\n\t\t\tif err := m.ContainerResource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = MetricSourceType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Object\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Object == nil {\n\t\t\t\tm.Object = &ObjectMetricStatus{}\n\t\t\t}\n\t\t\tif err := m.Object.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Pods\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Pods == nil {\n\t\t\t\tm.Pods = &PodsMetricStatus{}\n\t\t\t}\n\t\t\tif err := m.Pods.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Resource == nil {\n\t\t\t\tm.Resource = &ResourceMetricStatus{}\n\t\t\t}\n\t\t\tif err := m.Resource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field External\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.External == nil {\n\t\t\t\tm.External = &ExternalMetricStatus{}\n\t\t\t}\n\t\t\tif err := m.External.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerResource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ContainerResource == nil {\n\t\t\t\tm.ContainerResource = &ContainerResourceMetricStatus{}\n\t\t\t}\n\t\t\tif err := m.ContainerResource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MetricTarget) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MetricTarget: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MetricTarget: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = MetricTargetType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Value\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Value == nil {\n\t\t\t\tm.Value = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AverageValue == nil {\n\t\t\t\tm.AverageValue = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.AverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AverageUtilization\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.AverageUtilization = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MetricValueStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MetricValueStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MetricValueStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Value\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Value == nil {\n\t\t\t\tm.Value = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AverageValue == nil {\n\t\t\t\tm.AverageValue = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.AverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AverageUtilization\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.AverageUtilization = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ObjectMetricSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectMetricSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectMetricSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DescribedObject\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.DescribedObject.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Target\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Target.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Metric\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Metric.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ObjectMetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectMetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectMetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Metric\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Metric.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Current\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Current.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DescribedObject\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.DescribedObject.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodsMetricSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodsMetricSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodsMetricSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Metric\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Metric.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Target\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Target.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodsMetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodsMetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodsMetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Metric\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Metric.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Current\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Current.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceMetricSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceMetricSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceMetricSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Target\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Target.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceMetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceMetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceMetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Current\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Current.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.autoscaling.v2;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/api/resource/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/autoscaling/v2\";\n\n// ContainerResourceMetricSource indicates how to scale on a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  The values will be averaged\n// together before being compared to the target.  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.  Only one \"target\" type\n// should be set.\nmessage ContainerResourceMetricSource {\n  // name is the name of the resource in question.\n  optional string name = 1;\n\n  // target specifies the target value for the given metric\n  optional MetricTarget target = 2;\n\n  // container is the name of the container in the pods of the scaling target\n  optional string container = 3;\n}\n\n// ContainerResourceMetricStatus indicates the current value of a resource metric known to\n// Kubernetes, as specified in requests and limits, describing a single container in each pod in the\n// current scale target (e.g. CPU or memory).  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.\nmessage ContainerResourceMetricStatus {\n  // name is the name of the resource in question.\n  optional string name = 1;\n\n  // current contains the current value for the given metric\n  optional MetricValueStatus current = 2;\n\n  // container is the name of the container in the pods of the scaling target\n  optional string container = 3;\n}\n\n// CrossVersionObjectReference contains enough information to let you identify the referred resource.\nmessage CrossVersionObjectReference {\n  // kind is the kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  optional string kind = 1;\n\n  // name is the name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\n  optional string name = 2;\n\n  // apiVersion is the API version of the referent\n  // +optional\n  optional string apiVersion = 3;\n}\n\n// ExternalMetricSource indicates how to scale on a metric not associated with\n// any Kubernetes object (for example length of queue in cloud\n// messaging service, or QPS from loadbalancer running outside of cluster).\nmessage ExternalMetricSource {\n  // metric identifies the target metric by name and selector\n  optional MetricIdentifier metric = 1;\n\n  // target specifies the target value for the given metric\n  optional MetricTarget target = 2;\n}\n\n// ExternalMetricStatus indicates the current value of a global metric\n// not associated with any Kubernetes object.\nmessage ExternalMetricStatus {\n  // metric identifies the target metric by name and selector\n  optional MetricIdentifier metric = 1;\n\n  // current contains the current value for the given metric\n  optional MetricValueStatus current = 2;\n}\n\n// HPAScalingPolicy is a single policy which must hold true for a specified past interval.\nmessage HPAScalingPolicy {\n  // type is used to specify the scaling policy.\n  optional string type = 1;\n\n  // value contains the amount of change which is permitted by the policy.\n  // It must be greater than zero\n  optional int32 value = 2;\n\n  // periodSeconds specifies the window of time for which the policy should hold true.\n  // PeriodSeconds must be greater than zero and less than or equal to 1800 (30 min).\n  optional int32 periodSeconds = 3;\n}\n\n// HPAScalingRules configures the scaling behavior for one direction.\n// These Rules are applied after calculating DesiredReplicas from metrics for the HPA.\n// They can limit the scaling velocity by specifying scaling policies.\n// They can prevent flapping by specifying the stabilization window, so that the\n// number of replicas is not set instantly, instead, the safest value from the stabilization\n// window is chosen.\nmessage HPAScalingRules {\n  // stabilizationWindowSeconds is the number of seconds for which past recommendations should be\n  // considered while scaling up or scaling down.\n  // StabilizationWindowSeconds must be greater than or equal to zero and less than or equal to 3600 (one hour).\n  // If not set, use the default values:\n  // - For scale up: 0 (i.e. no stabilization is done).\n  // - For scale down: 300 (i.e. the stabilization window is 300 seconds long).\n  // +optional\n  optional int32 stabilizationWindowSeconds = 3;\n\n  // selectPolicy is used to specify which policy should be used.\n  // If not set, the default value Max is used.\n  // +optional\n  optional string selectPolicy = 1;\n\n  // policies is a list of potential scaling polices which can be used during scaling.\n  // At least one policy must be specified, otherwise the HPAScalingRules will be discarded as invalid\n  // +listType=atomic\n  // +optional\n  repeated HPAScalingPolicy policies = 2;\n}\n\n// HorizontalPodAutoscaler is the configuration for a horizontal pod\n// autoscaler, which automatically manages the replica count of any resource\n// implementing the scale subresource based on the metrics specified.\nmessage HorizontalPodAutoscaler {\n  // metadata is the standard object metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec is the specification for the behaviour of the autoscaler.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\n  // +optional\n  optional HorizontalPodAutoscalerSpec spec = 2;\n\n  // status is the current information about the autoscaler.\n  // +optional\n  optional HorizontalPodAutoscalerStatus status = 3;\n}\n\n// HorizontalPodAutoscalerBehavior configures the scaling behavior of the target\n// in both Up and Down directions (scaleUp and scaleDown fields respectively).\nmessage HorizontalPodAutoscalerBehavior {\n  // scaleUp is scaling policy for scaling Up.\n  // If not set, the default value is the higher of:\n  //   * increase no more than 4 pods per 60 seconds\n  //   * double the number of pods per 60 seconds\n  // No stabilization is used.\n  // +optional\n  optional HPAScalingRules scaleUp = 1;\n\n  // scaleDown is scaling policy for scaling Down.\n  // If not set, the default value is to allow to scale down to minReplicas pods, with a\n  // 300 second stabilization window (i.e., the highest recommendation for\n  // the last 300sec is used).\n  // +optional\n  optional HPAScalingRules scaleDown = 2;\n}\n\n// HorizontalPodAutoscalerCondition describes the state of\n// a HorizontalPodAutoscaler at a certain point.\nmessage HorizontalPodAutoscalerCondition {\n  // type describes the current condition\n  optional string type = 1;\n\n  // status is the status of the condition (True, False, Unknown)\n  optional string status = 2;\n\n  // lastTransitionTime is the last time the condition transitioned from\n  // one status to another\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // reason is the reason for the condition's last transition.\n  // +optional\n  optional string reason = 4;\n\n  // message is a human-readable explanation containing details about\n  // the transition\n  // +optional\n  optional string message = 5;\n}\n\n// HorizontalPodAutoscalerList is a list of horizontal pod autoscaler objects.\nmessage HorizontalPodAutoscalerList {\n  // metadata is the standard list metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of horizontal pod autoscaler objects.\n  repeated HorizontalPodAutoscaler items = 2;\n}\n\n// HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.\nmessage HorizontalPodAutoscalerSpec {\n  // scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics\n  // should be collected, as well as to actually change the replica count.\n  optional CrossVersionObjectReference scaleTargetRef = 1;\n\n  // minReplicas is the lower limit for the number of replicas to which the autoscaler\n  // can scale down.  It defaults to 1 pod.  minReplicas is allowed to be 0 if the\n  // alpha feature gate HPAScaleToZero is enabled and at least one Object or External\n  // metric is configured.  Scaling is active as long as at least one metric value is\n  // available.\n  // +optional\n  optional int32 minReplicas = 2;\n\n  // maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up.\n  // It cannot be less that minReplicas.\n  optional int32 maxReplicas = 3;\n\n  // metrics contains the specifications for which to use to calculate the\n  // desired replica count (the maximum replica count across all metrics will\n  // be used).  The desired replica count is calculated multiplying the\n  // ratio between the target value and the current value by the current\n  // number of pods.  Ergo, metrics used must decrease as the pod count is\n  // increased, and vice-versa.  See the individual metric source types for\n  // more information about how each type of metric must respond.\n  // If not set, the default metric will be set to 80% average CPU utilization.\n  // +listType=atomic\n  // +optional\n  repeated MetricSpec metrics = 4;\n\n  // behavior configures the scaling behavior of the target\n  // in both Up and Down directions (scaleUp and scaleDown fields respectively).\n  // If not set, the default HPAScalingRules for scale up and scale down are used.\n  // +optional\n  optional HorizontalPodAutoscalerBehavior behavior = 5;\n}\n\n// HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.\nmessage HorizontalPodAutoscalerStatus {\n  // observedGeneration is the most recent generation observed by this autoscaler.\n  // +optional\n  optional int64 observedGeneration = 1;\n\n  // lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods,\n  // used by the autoscaler to control how often the number of pods is changed.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastScaleTime = 2;\n\n  // currentReplicas is current number of replicas of pods managed by this autoscaler,\n  // as last seen by the autoscaler.\n  // +optional\n  optional int32 currentReplicas = 3;\n\n  // desiredReplicas is the desired number of replicas of pods managed by this autoscaler,\n  // as last calculated by the autoscaler.\n  optional int32 desiredReplicas = 4;\n\n  // currentMetrics is the last read state of the metrics used by this autoscaler.\n  // +listType=atomic\n  // +optional\n  repeated MetricStatus currentMetrics = 5;\n\n  // conditions is the set of conditions required for this autoscaler to scale its target,\n  // and indicates whether or not those conditions are met.\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=type\n  // +optional\n  repeated HorizontalPodAutoscalerCondition conditions = 6;\n}\n\n// MetricIdentifier defines the name and optionally selector for a metric\nmessage MetricIdentifier {\n  // name is the name of the given metric\n  optional string name = 1;\n\n  // selector is the string-encoded form of a standard kubernetes label selector for the given metric\n  // When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping.\n  // When unset, just the metricName will be used to gather metrics.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2;\n}\n\n// MetricSpec specifies how to scale based on a single metric\n// (only `type` and one other matching field should be set at once).\nmessage MetricSpec {\n  // type is the type of metric source.  It should be one of \"ContainerResource\", \"External\",\n  // \"Object\", \"Pods\" or \"Resource\", each mapping to a matching field in the object.\n  optional string type = 1;\n\n  // object refers to a metric describing a single kubernetes object\n  // (for example, hits-per-second on an Ingress object).\n  // +optional\n  optional ObjectMetricSource object = 2;\n\n  // pods refers to a metric describing each pod in the current scale target\n  // (for example, transactions-processed-per-second).  The values will be\n  // averaged together before being compared to the target value.\n  // +optional\n  optional PodsMetricSource pods = 3;\n\n  // resource refers to a resource metric (such as those specified in\n  // requests and limits) known to Kubernetes describing each pod in the\n  // current scale target (e.g. CPU or memory). Such metrics are built in to\n  // Kubernetes, and have special scaling options on top of those available\n  // to normal per-pod metrics using the \"pods\" source.\n  // +optional\n  optional ResourceMetricSource resource = 4;\n\n  // containerResource refers to a resource metric (such as those specified in\n  // requests and limits) known to Kubernetes describing a single container in\n  // each pod of the current scale target (e.g. CPU or memory). Such metrics are\n  // built in to Kubernetes, and have special scaling options on top of those\n  // available to normal per-pod metrics using the \"pods\" source.\n  // +optional\n  optional ContainerResourceMetricSource containerResource = 7;\n\n  // external refers to a global metric that is not associated\n  // with any Kubernetes object. It allows autoscaling based on information\n  // coming from components running outside of cluster\n  // (for example length of queue in cloud messaging service, or\n  // QPS from loadbalancer running outside of cluster).\n  // +optional\n  optional ExternalMetricSource external = 5;\n}\n\n// MetricStatus describes the last-read state of a single metric.\nmessage MetricStatus {\n  // type is the type of metric source.  It will be one of \"ContainerResource\", \"External\",\n  // \"Object\", \"Pods\" or \"Resource\", each corresponds to a matching field in the object.\n  optional string type = 1;\n\n  // object refers to a metric describing a single kubernetes object\n  // (for example, hits-per-second on an Ingress object).\n  // +optional\n  optional ObjectMetricStatus object = 2;\n\n  // pods refers to a metric describing each pod in the current scale target\n  // (for example, transactions-processed-per-second).  The values will be\n  // averaged together before being compared to the target value.\n  // +optional\n  optional PodsMetricStatus pods = 3;\n\n  // resource refers to a resource metric (such as those specified in\n  // requests and limits) known to Kubernetes describing each pod in the\n  // current scale target (e.g. CPU or memory). Such metrics are built in to\n  // Kubernetes, and have special scaling options on top of those available\n  // to normal per-pod metrics using the \"pods\" source.\n  // +optional\n  optional ResourceMetricStatus resource = 4;\n\n  // container resource refers to a resource metric (such as those specified in\n  // requests and limits) known to Kubernetes describing a single container in each pod in the\n  // current scale target (e.g. CPU or memory). Such metrics are built in to\n  // Kubernetes, and have special scaling options on top of those available\n  // to normal per-pod metrics using the \"pods\" source.\n  // +optional\n  optional ContainerResourceMetricStatus containerResource = 7;\n\n  // external refers to a global metric that is not associated\n  // with any Kubernetes object. It allows autoscaling based on information\n  // coming from components running outside of cluster\n  // (for example length of queue in cloud messaging service, or\n  // QPS from loadbalancer running outside of cluster).\n  // +optional\n  optional ExternalMetricStatus external = 5;\n}\n\n// MetricTarget defines the target value, average value, or average utilization of a specific metric\nmessage MetricTarget {\n  // type represents whether the metric type is Utilization, Value, or AverageValue\n  optional string type = 1;\n\n  // value is the target value of the metric (as a quantity).\n  // +optional\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity value = 2;\n\n  // averageValue is the target value of the average of the\n  // metric across all relevant pods (as a quantity)\n  // +optional\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity averageValue = 3;\n\n  // averageUtilization is the target value of the average of the\n  // resource metric across all relevant pods, represented as a percentage of\n  // the requested value of the resource for the pods.\n  // Currently only valid for Resource metric source type\n  // +optional\n  optional int32 averageUtilization = 4;\n}\n\n// MetricValueStatus holds the current value for a metric\nmessage MetricValueStatus {\n  // value is the current value of the metric (as a quantity).\n  // +optional\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity value = 1;\n\n  // averageValue is the current value of the average of the\n  // metric across all relevant pods (as a quantity)\n  // +optional\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity averageValue = 2;\n\n  // currentAverageUtilization is the current value of the average of the\n  // resource metric across all relevant pods, represented as a percentage of\n  // the requested value of the resource for the pods.\n  // +optional\n  optional int32 averageUtilization = 3;\n}\n\n// ObjectMetricSource indicates how to scale on a metric describing a\n// kubernetes object (for example, hits-per-second on an Ingress object).\nmessage ObjectMetricSource {\n  // describedObject specifies the descriptions of a object,such as kind,name apiVersion\n  optional CrossVersionObjectReference describedObject = 1;\n\n  // target specifies the target value for the given metric\n  optional MetricTarget target = 2;\n\n  // metric identifies the target metric by name and selector\n  optional MetricIdentifier metric = 3;\n}\n\n// ObjectMetricStatus indicates the current value of a metric describing a\n// kubernetes object (for example, hits-per-second on an Ingress object).\nmessage ObjectMetricStatus {\n  // metric identifies the target metric by name and selector\n  optional MetricIdentifier metric = 1;\n\n  // current contains the current value for the given metric\n  optional MetricValueStatus current = 2;\n\n  // DescribedObject specifies the descriptions of a object,such as kind,name apiVersion\n  optional CrossVersionObjectReference describedObject = 3;\n}\n\n// PodsMetricSource indicates how to scale on a metric describing each pod in\n// the current scale target (for example, transactions-processed-per-second).\n// The values will be averaged together before being compared to the target\n// value.\nmessage PodsMetricSource {\n  // metric identifies the target metric by name and selector\n  optional MetricIdentifier metric = 1;\n\n  // target specifies the target value for the given metric\n  optional MetricTarget target = 2;\n}\n\n// PodsMetricStatus indicates the current value of a metric describing each pod in\n// the current scale target (for example, transactions-processed-per-second).\nmessage PodsMetricStatus {\n  // metric identifies the target metric by name and selector\n  optional MetricIdentifier metric = 1;\n\n  // current contains the current value for the given metric\n  optional MetricValueStatus current = 2;\n}\n\n// ResourceMetricSource indicates how to scale on a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  The values will be averaged\n// together before being compared to the target.  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.  Only one \"target\" type\n// should be set.\nmessage ResourceMetricSource {\n  // name is the name of the resource in question.\n  optional string name = 1;\n\n  // target specifies the target value for the given metric\n  optional MetricTarget target = 2;\n}\n\n// ResourceMetricStatus indicates the current value of a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.\nmessage ResourceMetricStatus {\n  // name is the name of the resource in question.\n  optional string name = 1;\n\n  // current contains the current value for the given metric\n  optional MetricValueStatus current = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2/register.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v2\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"autoscaling\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v2\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&HorizontalPodAutoscaler{},\n\t\t&HorizontalPodAutoscalerList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2/types.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:openapi-gen=true\n\npackage v2\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\t\"k8s.io/apimachinery/pkg/api/resource\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.23\n\n// HorizontalPodAutoscaler is the configuration for a horizontal pod\n// autoscaler, which automatically manages the replica count of any resource\n// implementing the scale subresource based on the metrics specified.\ntype HorizontalPodAutoscaler struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// metadata is the standard object metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec is the specification for the behaviour of the autoscaler.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\n\t// +optional\n\tSpec HorizontalPodAutoscalerSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// status is the current information about the autoscaler.\n\t// +optional\n\tStatus HorizontalPodAutoscalerStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.\ntype HorizontalPodAutoscalerSpec struct {\n\t// scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics\n\t// should be collected, as well as to actually change the replica count.\n\tScaleTargetRef CrossVersionObjectReference `json:\"scaleTargetRef\" protobuf:\"bytes,1,opt,name=scaleTargetRef\"`\n\t// minReplicas is the lower limit for the number of replicas to which the autoscaler\n\t// can scale down.  It defaults to 1 pod.  minReplicas is allowed to be 0 if the\n\t// alpha feature gate HPAScaleToZero is enabled and at least one Object or External\n\t// metric is configured.  Scaling is active as long as at least one metric value is\n\t// available.\n\t// +optional\n\tMinReplicas *int32 `json:\"minReplicas,omitempty\" protobuf:\"varint,2,opt,name=minReplicas\"`\n\n\t// maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up.\n\t// It cannot be less that minReplicas.\n\tMaxReplicas int32 `json:\"maxReplicas\" protobuf:\"varint,3,opt,name=maxReplicas\"`\n\n\t// metrics contains the specifications for which to use to calculate the\n\t// desired replica count (the maximum replica count across all metrics will\n\t// be used).  The desired replica count is calculated multiplying the\n\t// ratio between the target value and the current value by the current\n\t// number of pods.  Ergo, metrics used must decrease as the pod count is\n\t// increased, and vice-versa.  See the individual metric source types for\n\t// more information about how each type of metric must respond.\n\t// If not set, the default metric will be set to 80% average CPU utilization.\n\t// +listType=atomic\n\t// +optional\n\tMetrics []MetricSpec `json:\"metrics,omitempty\" protobuf:\"bytes,4,rep,name=metrics\"`\n\n\t// behavior configures the scaling behavior of the target\n\t// in both Up and Down directions (scaleUp and scaleDown fields respectively).\n\t// If not set, the default HPAScalingRules for scale up and scale down are used.\n\t// +optional\n\tBehavior *HorizontalPodAutoscalerBehavior `json:\"behavior,omitempty\" protobuf:\"bytes,5,opt,name=behavior\"`\n}\n\n// CrossVersionObjectReference contains enough information to let you identify the referred resource.\ntype CrossVersionObjectReference struct {\n\t// kind is the kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\tKind string `json:\"kind\" protobuf:\"bytes,1,opt,name=kind\"`\n\n\t// name is the name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\n\tName string `json:\"name\" protobuf:\"bytes,2,opt,name=name\"`\n\n\t// apiVersion is the API version of the referent\n\t// +optional\n\tAPIVersion string `json:\"apiVersion,omitempty\" protobuf:\"bytes,3,opt,name=apiVersion\"`\n}\n\n// MetricSpec specifies how to scale based on a single metric\n// (only `type` and one other matching field should be set at once).\ntype MetricSpec struct {\n\t// type is the type of metric source.  It should be one of \"ContainerResource\", \"External\",\n\t// \"Object\", \"Pods\" or \"Resource\", each mapping to a matching field in the object.\n\tType MetricSourceType `json:\"type\" protobuf:\"bytes,1,name=type\"`\n\n\t// object refers to a metric describing a single kubernetes object\n\t// (for example, hits-per-second on an Ingress object).\n\t// +optional\n\tObject *ObjectMetricSource `json:\"object,omitempty\" protobuf:\"bytes,2,opt,name=object\"`\n\n\t// pods refers to a metric describing each pod in the current scale target\n\t// (for example, transactions-processed-per-second).  The values will be\n\t// averaged together before being compared to the target value.\n\t// +optional\n\tPods *PodsMetricSource `json:\"pods,omitempty\" protobuf:\"bytes,3,opt,name=pods\"`\n\n\t// resource refers to a resource metric (such as those specified in\n\t// requests and limits) known to Kubernetes describing each pod in the\n\t// current scale target (e.g. CPU or memory). Such metrics are built in to\n\t// Kubernetes, and have special scaling options on top of those available\n\t// to normal per-pod metrics using the \"pods\" source.\n\t// +optional\n\tResource *ResourceMetricSource `json:\"resource,omitempty\" protobuf:\"bytes,4,opt,name=resource\"`\n\n\t// containerResource refers to a resource metric (such as those specified in\n\t// requests and limits) known to Kubernetes describing a single container in\n\t// each pod of the current scale target (e.g. CPU or memory). Such metrics are\n\t// built in to Kubernetes, and have special scaling options on top of those\n\t// available to normal per-pod metrics using the \"pods\" source.\n\t// +optional\n\tContainerResource *ContainerResourceMetricSource `json:\"containerResource,omitempty\" protobuf:\"bytes,7,opt,name=containerResource\"`\n\n\t// external refers to a global metric that is not associated\n\t// with any Kubernetes object. It allows autoscaling based on information\n\t// coming from components running outside of cluster\n\t// (for example length of queue in cloud messaging service, or\n\t// QPS from loadbalancer running outside of cluster).\n\t// +optional\n\tExternal *ExternalMetricSource `json:\"external,omitempty\" protobuf:\"bytes,5,opt,name=external\"`\n}\n\n// HorizontalPodAutoscalerBehavior configures the scaling behavior of the target\n// in both Up and Down directions (scaleUp and scaleDown fields respectively).\ntype HorizontalPodAutoscalerBehavior struct {\n\t// scaleUp is scaling policy for scaling Up.\n\t// If not set, the default value is the higher of:\n\t//   * increase no more than 4 pods per 60 seconds\n\t//   * double the number of pods per 60 seconds\n\t// No stabilization is used.\n\t// +optional\n\tScaleUp *HPAScalingRules `json:\"scaleUp,omitempty\" protobuf:\"bytes,1,opt,name=scaleUp\"`\n\n\t// scaleDown is scaling policy for scaling Down.\n\t// If not set, the default value is to allow to scale down to minReplicas pods, with a\n\t// 300 second stabilization window (i.e., the highest recommendation for\n\t// the last 300sec is used).\n\t// +optional\n\tScaleDown *HPAScalingRules `json:\"scaleDown,omitempty\" protobuf:\"bytes,2,opt,name=scaleDown\"`\n}\n\n// ScalingPolicySelect is used to specify which policy should be used while scaling in a certain direction\ntype ScalingPolicySelect string\n\nconst (\n\t// MaxChangePolicySelect  selects the policy with the highest possible change.\n\tMaxChangePolicySelect ScalingPolicySelect = \"Max\"\n\t// MinChangePolicySelect selects the policy with the lowest possible change.\n\tMinChangePolicySelect ScalingPolicySelect = \"Min\"\n\t// DisabledPolicySelect disables the scaling in this direction.\n\tDisabledPolicySelect ScalingPolicySelect = \"Disabled\"\n)\n\n// HPAScalingRules configures the scaling behavior for one direction.\n// These Rules are applied after calculating DesiredReplicas from metrics for the HPA.\n// They can limit the scaling velocity by specifying scaling policies.\n// They can prevent flapping by specifying the stabilization window, so that the\n// number of replicas is not set instantly, instead, the safest value from the stabilization\n// window is chosen.\ntype HPAScalingRules struct {\n\t// stabilizationWindowSeconds is the number of seconds for which past recommendations should be\n\t// considered while scaling up or scaling down.\n\t// StabilizationWindowSeconds must be greater than or equal to zero and less than or equal to 3600 (one hour).\n\t// If not set, use the default values:\n\t// - For scale up: 0 (i.e. no stabilization is done).\n\t// - For scale down: 300 (i.e. the stabilization window is 300 seconds long).\n\t// +optional\n\tStabilizationWindowSeconds *int32 `json:\"stabilizationWindowSeconds,omitempty\" protobuf:\"varint,3,opt,name=stabilizationWindowSeconds\"`\n\n\t// selectPolicy is used to specify which policy should be used.\n\t// If not set, the default value Max is used.\n\t// +optional\n\tSelectPolicy *ScalingPolicySelect `json:\"selectPolicy,omitempty\" protobuf:\"bytes,1,opt,name=selectPolicy\"`\n\n\t// policies is a list of potential scaling polices which can be used during scaling.\n\t// At least one policy must be specified, otherwise the HPAScalingRules will be discarded as invalid\n\t// +listType=atomic\n\t// +optional\n\tPolicies []HPAScalingPolicy `json:\"policies,omitempty\" listType:\"atomic\" protobuf:\"bytes,2,rep,name=policies\"`\n}\n\n// HPAScalingPolicyType is the type of the policy which could be used while making scaling decisions.\ntype HPAScalingPolicyType string\n\nconst (\n\t// PodsScalingPolicy is a policy used to specify a change in absolute number of pods.\n\tPodsScalingPolicy HPAScalingPolicyType = \"Pods\"\n\t// PercentScalingPolicy is a policy used to specify a relative amount of change with respect to\n\t// the current number of pods.\n\tPercentScalingPolicy HPAScalingPolicyType = \"Percent\"\n)\n\n// HPAScalingPolicy is a single policy which must hold true for a specified past interval.\ntype HPAScalingPolicy struct {\n\t// type is used to specify the scaling policy.\n\tType HPAScalingPolicyType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=HPAScalingPolicyType\"`\n\n\t// value contains the amount of change which is permitted by the policy.\n\t// It must be greater than zero\n\tValue int32 `json:\"value\" protobuf:\"varint,2,opt,name=value\"`\n\n\t// periodSeconds specifies the window of time for which the policy should hold true.\n\t// PeriodSeconds must be greater than zero and less than or equal to 1800 (30 min).\n\tPeriodSeconds int32 `json:\"periodSeconds\" protobuf:\"varint,3,opt,name=periodSeconds\"`\n}\n\n// MetricSourceType indicates the type of metric.\ntype MetricSourceType string\n\nconst (\n\t// ObjectMetricSourceType is a metric describing a kubernetes object\n\t// (for example, hits-per-second on an Ingress object).\n\tObjectMetricSourceType MetricSourceType = \"Object\"\n\t// PodsMetricSourceType is a metric describing each pod in the current scale\n\t// target (for example, transactions-processed-per-second).  The values\n\t// will be averaged together before being compared to the target value.\n\tPodsMetricSourceType MetricSourceType = \"Pods\"\n\t// ResourceMetricSourceType is a resource metric known to Kubernetes, as\n\t// specified in requests and limits, describing each pod in the current\n\t// scale target (e.g. CPU or memory).  Such metrics are built in to\n\t// Kubernetes, and have special scaling options on top of those available\n\t// to normal per-pod metrics (the \"pods\" source).\n\tResourceMetricSourceType MetricSourceType = \"Resource\"\n\t// ContainerResourceMetricSourceType is a resource metric known to Kubernetes, as\n\t// specified in requests and limits, describing a single container in each pod in the current\n\t// scale target (e.g. CPU or memory).  Such metrics are built in to\n\t// Kubernetes, and have special scaling options on top of those available\n\t// to normal per-pod metrics (the \"pods\" source).\n\tContainerResourceMetricSourceType MetricSourceType = \"ContainerResource\"\n\t// ExternalMetricSourceType is a global metric that is not associated\n\t// with any Kubernetes object. It allows autoscaling based on information\n\t// coming from components running outside of cluster\n\t// (for example length of queue in cloud messaging service, or\n\t// QPS from loadbalancer running outside of cluster).\n\tExternalMetricSourceType MetricSourceType = \"External\"\n)\n\n// ObjectMetricSource indicates how to scale on a metric describing a\n// kubernetes object (for example, hits-per-second on an Ingress object).\ntype ObjectMetricSource struct {\n\t// describedObject specifies the descriptions of a object,such as kind,name apiVersion\n\tDescribedObject CrossVersionObjectReference `json:\"describedObject\" protobuf:\"bytes,1,name=describedObject\"`\n\n\t// target specifies the target value for the given metric\n\tTarget MetricTarget `json:\"target\" protobuf:\"bytes,2,name=target\"`\n\n\t// metric identifies the target metric by name and selector\n\tMetric MetricIdentifier `json:\"metric\" protobuf:\"bytes,3,name=metric\"`\n}\n\n// PodsMetricSource indicates how to scale on a metric describing each pod in\n// the current scale target (for example, transactions-processed-per-second).\n// The values will be averaged together before being compared to the target\n// value.\ntype PodsMetricSource struct {\n\t// metric identifies the target metric by name and selector\n\tMetric MetricIdentifier `json:\"metric\" protobuf:\"bytes,1,name=metric\"`\n\n\t// target specifies the target value for the given metric\n\tTarget MetricTarget `json:\"target\" protobuf:\"bytes,2,name=target\"`\n}\n\n// ResourceMetricSource indicates how to scale on a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  The values will be averaged\n// together before being compared to the target.  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.  Only one \"target\" type\n// should be set.\ntype ResourceMetricSource struct {\n\t// name is the name of the resource in question.\n\tName v1.ResourceName `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\n\t// target specifies the target value for the given metric\n\tTarget MetricTarget `json:\"target\" protobuf:\"bytes,2,name=target\"`\n}\n\n// ContainerResourceMetricSource indicates how to scale on a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  The values will be averaged\n// together before being compared to the target.  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.  Only one \"target\" type\n// should be set.\ntype ContainerResourceMetricSource struct {\n\t// name is the name of the resource in question.\n\tName v1.ResourceName `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\n\t// target specifies the target value for the given metric\n\tTarget MetricTarget `json:\"target\" protobuf:\"bytes,2,name=target\"`\n\n\t// container is the name of the container in the pods of the scaling target\n\tContainer string `json:\"container\" protobuf:\"bytes,3,opt,name=container\"`\n}\n\n// ExternalMetricSource indicates how to scale on a metric not associated with\n// any Kubernetes object (for example length of queue in cloud\n// messaging service, or QPS from loadbalancer running outside of cluster).\ntype ExternalMetricSource struct {\n\t// metric identifies the target metric by name and selector\n\tMetric MetricIdentifier `json:\"metric\" protobuf:\"bytes,1,name=metric\"`\n\n\t// target specifies the target value for the given metric\n\tTarget MetricTarget `json:\"target\" protobuf:\"bytes,2,name=target\"`\n}\n\n// MetricIdentifier defines the name and optionally selector for a metric\ntype MetricIdentifier struct {\n\t// name is the name of the given metric\n\tName string `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\n\t// selector is the string-encoded form of a standard kubernetes label selector for the given metric\n\t// When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping.\n\t// When unset, just the metricName will be used to gather metrics.\n\t// +optional\n\tSelector *metav1.LabelSelector `json:\"selector,omitempty\" protobuf:\"bytes,2,name=selector\"`\n}\n\n// MetricTarget defines the target value, average value, or average utilization of a specific metric\ntype MetricTarget struct {\n\t// type represents whether the metric type is Utilization, Value, or AverageValue\n\tType MetricTargetType `json:\"type\" protobuf:\"bytes,1,name=type\"`\n\n\t// value is the target value of the metric (as a quantity).\n\t// +optional\n\tValue *resource.Quantity `json:\"value,omitempty\" protobuf:\"bytes,2,opt,name=value\"`\n\n\t// averageValue is the target value of the average of the\n\t// metric across all relevant pods (as a quantity)\n\t// +optional\n\tAverageValue *resource.Quantity `json:\"averageValue,omitempty\" protobuf:\"bytes,3,opt,name=averageValue\"`\n\n\t// averageUtilization is the target value of the average of the\n\t// resource metric across all relevant pods, represented as a percentage of\n\t// the requested value of the resource for the pods.\n\t// Currently only valid for Resource metric source type\n\t// +optional\n\tAverageUtilization *int32 `json:\"averageUtilization,omitempty\" protobuf:\"bytes,4,opt,name=averageUtilization\"`\n}\n\n// MetricTargetType specifies the type of metric being targeted, and should be either\n// \"Value\", \"AverageValue\", or \"Utilization\"\ntype MetricTargetType string\n\nconst (\n\t// UtilizationMetricType declares a MetricTarget is an AverageUtilization value\n\tUtilizationMetricType MetricTargetType = \"Utilization\"\n\t// ValueMetricType declares a MetricTarget is a raw value\n\tValueMetricType MetricTargetType = \"Value\"\n\t// AverageValueMetricType declares a MetricTarget is an\n\tAverageValueMetricType MetricTargetType = \"AverageValue\"\n)\n\n// HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.\ntype HorizontalPodAutoscalerStatus struct {\n\t// observedGeneration is the most recent generation observed by this autoscaler.\n\t// +optional\n\tObservedGeneration *int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,1,opt,name=observedGeneration\"`\n\n\t// lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods,\n\t// used by the autoscaler to control how often the number of pods is changed.\n\t// +optional\n\tLastScaleTime *metav1.Time `json:\"lastScaleTime,omitempty\" protobuf:\"bytes,2,opt,name=lastScaleTime\"`\n\n\t// currentReplicas is current number of replicas of pods managed by this autoscaler,\n\t// as last seen by the autoscaler.\n\t// +optional\n\tCurrentReplicas int32 `json:\"currentReplicas,omitempty\" protobuf:\"varint,3,opt,name=currentReplicas\"`\n\n\t// desiredReplicas is the desired number of replicas of pods managed by this autoscaler,\n\t// as last calculated by the autoscaler.\n\tDesiredReplicas int32 `json:\"desiredReplicas\" protobuf:\"varint,4,opt,name=desiredReplicas\"`\n\n\t// currentMetrics is the last read state of the metrics used by this autoscaler.\n\t// +listType=atomic\n\t// +optional\n\tCurrentMetrics []MetricStatus `json:\"currentMetrics\" protobuf:\"bytes,5,rep,name=currentMetrics\"`\n\n\t// conditions is the set of conditions required for this autoscaler to scale its target,\n\t// and indicates whether or not those conditions are met.\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=type\n\t// +optional\n\tConditions []HorizontalPodAutoscalerCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" listType:\"map\" protobuf:\"bytes,6,rep,name=conditions\"`\n}\n\n// HorizontalPodAutoscalerConditionType are the valid conditions of\n// a HorizontalPodAutoscaler.\ntype HorizontalPodAutoscalerConditionType string\n\nconst (\n\t// ScalingActive indicates that the HPA controller is able to scale if necessary:\n\t// it's correctly configured, can fetch the desired metrics, and isn't disabled.\n\tScalingActive HorizontalPodAutoscalerConditionType = \"ScalingActive\"\n\t// AbleToScale indicates a lack of transient issues which prevent scaling from occurring,\n\t// such as being in a backoff window, or being unable to access/update the target scale.\n\tAbleToScale HorizontalPodAutoscalerConditionType = \"AbleToScale\"\n\t// ScalingLimited indicates that the calculated scale based on metrics would be above or\n\t// below the range for the HPA, and has thus been capped.\n\tScalingLimited HorizontalPodAutoscalerConditionType = \"ScalingLimited\"\n)\n\n// HorizontalPodAutoscalerCondition describes the state of\n// a HorizontalPodAutoscaler at a certain point.\ntype HorizontalPodAutoscalerCondition struct {\n\t// type describes the current condition\n\tType HorizontalPodAutoscalerConditionType `json:\"type\" protobuf:\"bytes,1,name=type\"`\n\n\t// status is the status of the condition (True, False, Unknown)\n\tStatus v1.ConditionStatus `json:\"status\" protobuf:\"bytes,2,name=status\"`\n\n\t// lastTransitionTime is the last time the condition transitioned from\n\t// one status to another\n\t// +optional\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\n\t// reason is the reason for the condition's last transition.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\n\t// message is a human-readable explanation containing details about\n\t// the transition\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// MetricStatus describes the last-read state of a single metric.\ntype MetricStatus struct {\n\t// type is the type of metric source.  It will be one of \"ContainerResource\", \"External\",\n\t// \"Object\", \"Pods\" or \"Resource\", each corresponds to a matching field in the object.\n\tType MetricSourceType `json:\"type\" protobuf:\"bytes,1,name=type\"`\n\n\t// object refers to a metric describing a single kubernetes object\n\t// (for example, hits-per-second on an Ingress object).\n\t// +optional\n\tObject *ObjectMetricStatus `json:\"object,omitempty\" protobuf:\"bytes,2,opt,name=object\"`\n\n\t// pods refers to a metric describing each pod in the current scale target\n\t// (for example, transactions-processed-per-second).  The values will be\n\t// averaged together before being compared to the target value.\n\t// +optional\n\tPods *PodsMetricStatus `json:\"pods,omitempty\" protobuf:\"bytes,3,opt,name=pods\"`\n\n\t// resource refers to a resource metric (such as those specified in\n\t// requests and limits) known to Kubernetes describing each pod in the\n\t// current scale target (e.g. CPU or memory). Such metrics are built in to\n\t// Kubernetes, and have special scaling options on top of those available\n\t// to normal per-pod metrics using the \"pods\" source.\n\t// +optional\n\tResource *ResourceMetricStatus `json:\"resource,omitempty\" protobuf:\"bytes,4,opt,name=resource\"`\n\n\t// container resource refers to a resource metric (such as those specified in\n\t// requests and limits) known to Kubernetes describing a single container in each pod in the\n\t// current scale target (e.g. CPU or memory). Such metrics are built in to\n\t// Kubernetes, and have special scaling options on top of those available\n\t// to normal per-pod metrics using the \"pods\" source.\n\t// +optional\n\tContainerResource *ContainerResourceMetricStatus `json:\"containerResource,omitempty\" protobuf:\"bytes,7,opt,name=containerResource\"`\n\n\t// external refers to a global metric that is not associated\n\t// with any Kubernetes object. It allows autoscaling based on information\n\t// coming from components running outside of cluster\n\t// (for example length of queue in cloud messaging service, or\n\t// QPS from loadbalancer running outside of cluster).\n\t// +optional\n\tExternal *ExternalMetricStatus `json:\"external,omitempty\" protobuf:\"bytes,5,opt,name=external\"`\n}\n\n// ObjectMetricStatus indicates the current value of a metric describing a\n// kubernetes object (for example, hits-per-second on an Ingress object).\ntype ObjectMetricStatus struct {\n\t// metric identifies the target metric by name and selector\n\tMetric MetricIdentifier `json:\"metric\" protobuf:\"bytes,1,name=metric\"`\n\n\t// current contains the current value for the given metric\n\tCurrent MetricValueStatus `json:\"current\" protobuf:\"bytes,2,name=current\"`\n\n\t// DescribedObject specifies the descriptions of a object,such as kind,name apiVersion\n\tDescribedObject CrossVersionObjectReference `json:\"describedObject\" protobuf:\"bytes,3,name=describedObject\"`\n}\n\n// PodsMetricStatus indicates the current value of a metric describing each pod in\n// the current scale target (for example, transactions-processed-per-second).\ntype PodsMetricStatus struct {\n\t// metric identifies the target metric by name and selector\n\tMetric MetricIdentifier `json:\"metric\" protobuf:\"bytes,1,name=metric\"`\n\n\t// current contains the current value for the given metric\n\tCurrent MetricValueStatus `json:\"current\" protobuf:\"bytes,2,name=current\"`\n}\n\n// ResourceMetricStatus indicates the current value of a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.\ntype ResourceMetricStatus struct {\n\t// name is the name of the resource in question.\n\tName v1.ResourceName `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\n\t// current contains the current value for the given metric\n\tCurrent MetricValueStatus `json:\"current\" protobuf:\"bytes,2,name=current\"`\n}\n\n// ContainerResourceMetricStatus indicates the current value of a resource metric known to\n// Kubernetes, as specified in requests and limits, describing a single container in each pod in the\n// current scale target (e.g. CPU or memory).  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.\ntype ContainerResourceMetricStatus struct {\n\t// name is the name of the resource in question.\n\tName v1.ResourceName `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\n\t// current contains the current value for the given metric\n\tCurrent MetricValueStatus `json:\"current\" protobuf:\"bytes,2,name=current\"`\n\n\t// container is the name of the container in the pods of the scaling target\n\tContainer string `json:\"container\" protobuf:\"bytes,3,opt,name=container\"`\n}\n\n// ExternalMetricStatus indicates the current value of a global metric\n// not associated with any Kubernetes object.\ntype ExternalMetricStatus struct {\n\t// metric identifies the target metric by name and selector\n\tMetric MetricIdentifier `json:\"metric\" protobuf:\"bytes,1,name=metric\"`\n\n\t// current contains the current value for the given metric\n\tCurrent MetricValueStatus `json:\"current\" protobuf:\"bytes,2,name=current\"`\n}\n\n// MetricValueStatus holds the current value for a metric\ntype MetricValueStatus struct {\n\t// value is the current value of the metric (as a quantity).\n\t// +optional\n\tValue *resource.Quantity `json:\"value,omitempty\" protobuf:\"bytes,1,opt,name=value\"`\n\n\t// averageValue is the current value of the average of the\n\t// metric across all relevant pods (as a quantity)\n\t// +optional\n\tAverageValue *resource.Quantity `json:\"averageValue,omitempty\" protobuf:\"bytes,2,opt,name=averageValue\"`\n\n\t// currentAverageUtilization is the current value of the average of the\n\t// resource metric across all relevant pods, represented as a percentage of\n\t// the requested value of the resource for the pods.\n\t// +optional\n\tAverageUtilization *int32 `json:\"averageUtilization,omitempty\" protobuf:\"bytes,3,opt,name=averageUtilization\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.23\n\n// HorizontalPodAutoscalerList is a list of horizontal pod autoscaler objects.\ntype HorizontalPodAutoscalerList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// metadata is the standard list metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of horizontal pod autoscaler objects.\n\tItems []HorizontalPodAutoscaler `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v2\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_ContainerResourceMetricSource = map[string]string{\n\t\"\":          \"ContainerResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory).  The values will be averaged together before being compared to the target.  Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.  Only one \\\"target\\\" type should be set.\",\n\t\"name\":      \"name is the name of the resource in question.\",\n\t\"target\":    \"target specifies the target value for the given metric\",\n\t\"container\": \"container is the name of the container in the pods of the scaling target\",\n}\n\nfunc (ContainerResourceMetricSource) SwaggerDoc() map[string]string {\n\treturn map_ContainerResourceMetricSource\n}\n\nvar map_ContainerResourceMetricStatus = map[string]string{\n\t\"\":          \"ContainerResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing a single container in each pod in the current scale target (e.g. CPU or memory).  Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"name\":      \"name is the name of the resource in question.\",\n\t\"current\":   \"current contains the current value for the given metric\",\n\t\"container\": \"container is the name of the container in the pods of the scaling target\",\n}\n\nfunc (ContainerResourceMetricStatus) SwaggerDoc() map[string]string {\n\treturn map_ContainerResourceMetricStatus\n}\n\nvar map_CrossVersionObjectReference = map[string]string{\n\t\"\":           \"CrossVersionObjectReference contains enough information to let you identify the referred resource.\",\n\t\"kind\":       \"kind is the kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"name\":       \"name is the name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n\t\"apiVersion\": \"apiVersion is the API version of the referent\",\n}\n\nfunc (CrossVersionObjectReference) SwaggerDoc() map[string]string {\n\treturn map_CrossVersionObjectReference\n}\n\nvar map_ExternalMetricSource = map[string]string{\n\t\"\":       \"ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).\",\n\t\"metric\": \"metric identifies the target metric by name and selector\",\n\t\"target\": \"target specifies the target value for the given metric\",\n}\n\nfunc (ExternalMetricSource) SwaggerDoc() map[string]string {\n\treturn map_ExternalMetricSource\n}\n\nvar map_ExternalMetricStatus = map[string]string{\n\t\"\":        \"ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.\",\n\t\"metric\":  \"metric identifies the target metric by name and selector\",\n\t\"current\": \"current contains the current value for the given metric\",\n}\n\nfunc (ExternalMetricStatus) SwaggerDoc() map[string]string {\n\treturn map_ExternalMetricStatus\n}\n\nvar map_HPAScalingPolicy = map[string]string{\n\t\"\":              \"HPAScalingPolicy is a single policy which must hold true for a specified past interval.\",\n\t\"type\":          \"type is used to specify the scaling policy.\",\n\t\"value\":         \"value contains the amount of change which is permitted by the policy. It must be greater than zero\",\n\t\"periodSeconds\": \"periodSeconds specifies the window of time for which the policy should hold true. PeriodSeconds must be greater than zero and less than or equal to 1800 (30 min).\",\n}\n\nfunc (HPAScalingPolicy) SwaggerDoc() map[string]string {\n\treturn map_HPAScalingPolicy\n}\n\nvar map_HPAScalingRules = map[string]string{\n\t\"\":                           \"HPAScalingRules configures the scaling behavior for one direction. These Rules are applied after calculating DesiredReplicas from metrics for the HPA. They can limit the scaling velocity by specifying scaling policies. They can prevent flapping by specifying the stabilization window, so that the number of replicas is not set instantly, instead, the safest value from the stabilization window is chosen.\",\n\t\"stabilizationWindowSeconds\": \"stabilizationWindowSeconds is the number of seconds for which past recommendations should be considered while scaling up or scaling down. StabilizationWindowSeconds must be greater than or equal to zero and less than or equal to 3600 (one hour). If not set, use the default values: - For scale up: 0 (i.e. no stabilization is done). - For scale down: 300 (i.e. the stabilization window is 300 seconds long).\",\n\t\"selectPolicy\":               \"selectPolicy is used to specify which policy should be used. If not set, the default value Max is used.\",\n\t\"policies\":                   \"policies is a list of potential scaling polices which can be used during scaling. At least one policy must be specified, otherwise the HPAScalingRules will be discarded as invalid\",\n}\n\nfunc (HPAScalingRules) SwaggerDoc() map[string]string {\n\treturn map_HPAScalingRules\n}\n\nvar map_HorizontalPodAutoscaler = map[string]string{\n\t\"\":         \"HorizontalPodAutoscaler is the configuration for a horizontal pod autoscaler, which automatically manages the replica count of any resource implementing the scale subresource based on the metrics specified.\",\n\t\"metadata\": \"metadata is the standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec is the specification for the behaviour of the autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\",\n\t\"status\":   \"status is the current information about the autoscaler.\",\n}\n\nfunc (HorizontalPodAutoscaler) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscaler\n}\n\nvar map_HorizontalPodAutoscalerBehavior = map[string]string{\n\t\"\":          \"HorizontalPodAutoscalerBehavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively).\",\n\t\"scaleUp\":   \"scaleUp is scaling policy for scaling Up. If not set, the default value is the higher of:\\n  * increase no more than 4 pods per 60 seconds\\n  * double the number of pods per 60 seconds\\nNo stabilization is used.\",\n\t\"scaleDown\": \"scaleDown is scaling policy for scaling Down. If not set, the default value is to allow to scale down to minReplicas pods, with a 300 second stabilization window (i.e., the highest recommendation for the last 300sec is used).\",\n}\n\nfunc (HorizontalPodAutoscalerBehavior) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscalerBehavior\n}\n\nvar map_HorizontalPodAutoscalerCondition = map[string]string{\n\t\"\":                   \"HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point.\",\n\t\"type\":               \"type describes the current condition\",\n\t\"status\":             \"status is the status of the condition (True, False, Unknown)\",\n\t\"lastTransitionTime\": \"lastTransitionTime is the last time the condition transitioned from one status to another\",\n\t\"reason\":             \"reason is the reason for the condition's last transition.\",\n\t\"message\":            \"message is a human-readable explanation containing details about the transition\",\n}\n\nfunc (HorizontalPodAutoscalerCondition) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscalerCondition\n}\n\nvar map_HorizontalPodAutoscalerList = map[string]string{\n\t\"\":         \"HorizontalPodAutoscalerList is a list of horizontal pod autoscaler objects.\",\n\t\"metadata\": \"metadata is the standard list metadata.\",\n\t\"items\":    \"items is the list of horizontal pod autoscaler objects.\",\n}\n\nfunc (HorizontalPodAutoscalerList) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscalerList\n}\n\nvar map_HorizontalPodAutoscalerSpec = map[string]string{\n\t\"\":               \"HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.\",\n\t\"scaleTargetRef\": \"scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics should be collected, as well as to actually change the replica count.\",\n\t\"minReplicas\":    \"minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down.  It defaults to 1 pod.  minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured.  Scaling is active as long as at least one metric value is available.\",\n\t\"maxReplicas\":    \"maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. It cannot be less that minReplicas.\",\n\t\"metrics\":        \"metrics contains the specifications for which to use to calculate the desired replica count (the maximum replica count across all metrics will be used).  The desired replica count is calculated multiplying the ratio between the target value and the current value by the current number of pods.  Ergo, metrics used must decrease as the pod count is increased, and vice-versa.  See the individual metric source types for more information about how each type of metric must respond. If not set, the default metric will be set to 80% average CPU utilization.\",\n\t\"behavior\":       \"behavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively). If not set, the default HPAScalingRules for scale up and scale down are used.\",\n}\n\nfunc (HorizontalPodAutoscalerSpec) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscalerSpec\n}\n\nvar map_HorizontalPodAutoscalerStatus = map[string]string{\n\t\"\":                   \"HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.\",\n\t\"observedGeneration\": \"observedGeneration is the most recent generation observed by this autoscaler.\",\n\t\"lastScaleTime\":      \"lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods, used by the autoscaler to control how often the number of pods is changed.\",\n\t\"currentReplicas\":    \"currentReplicas is current number of replicas of pods managed by this autoscaler, as last seen by the autoscaler.\",\n\t\"desiredReplicas\":    \"desiredReplicas is the desired number of replicas of pods managed by this autoscaler, as last calculated by the autoscaler.\",\n\t\"currentMetrics\":     \"currentMetrics is the last read state of the metrics used by this autoscaler.\",\n\t\"conditions\":         \"conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met.\",\n}\n\nfunc (HorizontalPodAutoscalerStatus) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscalerStatus\n}\n\nvar map_MetricIdentifier = map[string]string{\n\t\"\":         \"MetricIdentifier defines the name and optionally selector for a metric\",\n\t\"name\":     \"name is the name of the given metric\",\n\t\"selector\": \"selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics.\",\n}\n\nfunc (MetricIdentifier) SwaggerDoc() map[string]string {\n\treturn map_MetricIdentifier\n}\n\nvar map_MetricSpec = map[string]string{\n\t\"\":                  \"MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once).\",\n\t\"type\":              \"type is the type of metric source.  It should be one of \\\"ContainerResource\\\", \\\"External\\\", \\\"Object\\\", \\\"Pods\\\" or \\\"Resource\\\", each mapping to a matching field in the object.\",\n\t\"object\":            \"object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).\",\n\t\"pods\":              \"pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second).  The values will be averaged together before being compared to the target value.\",\n\t\"resource\":          \"resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"containerResource\": \"containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"external\":          \"external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).\",\n}\n\nfunc (MetricSpec) SwaggerDoc() map[string]string {\n\treturn map_MetricSpec\n}\n\nvar map_MetricStatus = map[string]string{\n\t\"\":                  \"MetricStatus describes the last-read state of a single metric.\",\n\t\"type\":              \"type is the type of metric source.  It will be one of \\\"ContainerResource\\\", \\\"External\\\", \\\"Object\\\", \\\"Pods\\\" or \\\"Resource\\\", each corresponds to a matching field in the object.\",\n\t\"object\":            \"object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).\",\n\t\"pods\":              \"pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second).  The values will be averaged together before being compared to the target value.\",\n\t\"resource\":          \"resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"containerResource\": \"container resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"external\":          \"external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).\",\n}\n\nfunc (MetricStatus) SwaggerDoc() map[string]string {\n\treturn map_MetricStatus\n}\n\nvar map_MetricTarget = map[string]string{\n\t\"\":                   \"MetricTarget defines the target value, average value, or average utilization of a specific metric\",\n\t\"type\":               \"type represents whether the metric type is Utilization, Value, or AverageValue\",\n\t\"value\":              \"value is the target value of the metric (as a quantity).\",\n\t\"averageValue\":       \"averageValue is the target value of the average of the metric across all relevant pods (as a quantity)\",\n\t\"averageUtilization\": \"averageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods. Currently only valid for Resource metric source type\",\n}\n\nfunc (MetricTarget) SwaggerDoc() map[string]string {\n\treturn map_MetricTarget\n}\n\nvar map_MetricValueStatus = map[string]string{\n\t\"\":                   \"MetricValueStatus holds the current value for a metric\",\n\t\"value\":              \"value is the current value of the metric (as a quantity).\",\n\t\"averageValue\":       \"averageValue is the current value of the average of the metric across all relevant pods (as a quantity)\",\n\t\"averageUtilization\": \"currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.\",\n}\n\nfunc (MetricValueStatus) SwaggerDoc() map[string]string {\n\treturn map_MetricValueStatus\n}\n\nvar map_ObjectMetricSource = map[string]string{\n\t\"\":                \"ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).\",\n\t\"describedObject\": \"describedObject specifies the descriptions of a object,such as kind,name apiVersion\",\n\t\"target\":          \"target specifies the target value for the given metric\",\n\t\"metric\":          \"metric identifies the target metric by name and selector\",\n}\n\nfunc (ObjectMetricSource) SwaggerDoc() map[string]string {\n\treturn map_ObjectMetricSource\n}\n\nvar map_ObjectMetricStatus = map[string]string{\n\t\"\":                \"ObjectMetricStatus indicates the current value of a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).\",\n\t\"metric\":          \"metric identifies the target metric by name and selector\",\n\t\"current\":         \"current contains the current value for the given metric\",\n\t\"describedObject\": \"DescribedObject specifies the descriptions of a object,such as kind,name apiVersion\",\n}\n\nfunc (ObjectMetricStatus) SwaggerDoc() map[string]string {\n\treturn map_ObjectMetricStatus\n}\n\nvar map_PodsMetricSource = map[string]string{\n\t\"\":       \"PodsMetricSource indicates how to scale on a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.\",\n\t\"metric\": \"metric identifies the target metric by name and selector\",\n\t\"target\": \"target specifies the target value for the given metric\",\n}\n\nfunc (PodsMetricSource) SwaggerDoc() map[string]string {\n\treturn map_PodsMetricSource\n}\n\nvar map_PodsMetricStatus = map[string]string{\n\t\"\":        \"PodsMetricStatus indicates the current value of a metric describing each pod in the current scale target (for example, transactions-processed-per-second).\",\n\t\"metric\":  \"metric identifies the target metric by name and selector\",\n\t\"current\": \"current contains the current value for the given metric\",\n}\n\nfunc (PodsMetricStatus) SwaggerDoc() map[string]string {\n\treturn map_PodsMetricStatus\n}\n\nvar map_ResourceMetricSource = map[string]string{\n\t\"\":       \"ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory).  The values will be averaged together before being compared to the target.  Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.  Only one \\\"target\\\" type should be set.\",\n\t\"name\":   \"name is the name of the resource in question.\",\n\t\"target\": \"target specifies the target value for the given metric\",\n}\n\nfunc (ResourceMetricSource) SwaggerDoc() map[string]string {\n\treturn map_ResourceMetricSource\n}\n\nvar map_ResourceMetricStatus = map[string]string{\n\t\"\":        \"ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory).  Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"name\":    \"name is the name of the resource in question.\",\n\t\"current\": \"current contains the current value for the given metric\",\n}\n\nfunc (ResourceMetricStatus) SwaggerDoc() map[string]string {\n\treturn map_ResourceMetricStatus\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v2\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ContainerResourceMetricSource) DeepCopyInto(out *ContainerResourceMetricSource) {\n\t*out = *in\n\tin.Target.DeepCopyInto(&out.Target)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerResourceMetricSource.\nfunc (in *ContainerResourceMetricSource) DeepCopy() *ContainerResourceMetricSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ContainerResourceMetricSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ContainerResourceMetricStatus) DeepCopyInto(out *ContainerResourceMetricStatus) {\n\t*out = *in\n\tin.Current.DeepCopyInto(&out.Current)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerResourceMetricStatus.\nfunc (in *ContainerResourceMetricStatus) DeepCopy() *ContainerResourceMetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ContainerResourceMetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CrossVersionObjectReference) DeepCopyInto(out *CrossVersionObjectReference) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CrossVersionObjectReference.\nfunc (in *CrossVersionObjectReference) DeepCopy() *CrossVersionObjectReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CrossVersionObjectReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExternalMetricSource) DeepCopyInto(out *ExternalMetricSource) {\n\t*out = *in\n\tin.Metric.DeepCopyInto(&out.Metric)\n\tin.Target.DeepCopyInto(&out.Target)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalMetricSource.\nfunc (in *ExternalMetricSource) DeepCopy() *ExternalMetricSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExternalMetricSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExternalMetricStatus) DeepCopyInto(out *ExternalMetricStatus) {\n\t*out = *in\n\tin.Metric.DeepCopyInto(&out.Metric)\n\tin.Current.DeepCopyInto(&out.Current)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalMetricStatus.\nfunc (in *ExternalMetricStatus) DeepCopy() *ExternalMetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExternalMetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HPAScalingPolicy) DeepCopyInto(out *HPAScalingPolicy) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HPAScalingPolicy.\nfunc (in *HPAScalingPolicy) DeepCopy() *HPAScalingPolicy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HPAScalingPolicy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HPAScalingRules) DeepCopyInto(out *HPAScalingRules) {\n\t*out = *in\n\tif in.StabilizationWindowSeconds != nil {\n\t\tin, out := &in.StabilizationWindowSeconds, &out.StabilizationWindowSeconds\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.SelectPolicy != nil {\n\t\tin, out := &in.SelectPolicy, &out.SelectPolicy\n\t\t*out = new(ScalingPolicySelect)\n\t\t**out = **in\n\t}\n\tif in.Policies != nil {\n\t\tin, out := &in.Policies, &out.Policies\n\t\t*out = make([]HPAScalingPolicy, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HPAScalingRules.\nfunc (in *HPAScalingRules) DeepCopy() *HPAScalingRules {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HPAScalingRules)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscaler) DeepCopyInto(out *HorizontalPodAutoscaler) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscaler.\nfunc (in *HorizontalPodAutoscaler) DeepCopy() *HorizontalPodAutoscaler {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscaler)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *HorizontalPodAutoscaler) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscalerBehavior) DeepCopyInto(out *HorizontalPodAutoscalerBehavior) {\n\t*out = *in\n\tif in.ScaleUp != nil {\n\t\tin, out := &in.ScaleUp, &out.ScaleUp\n\t\t*out = new(HPAScalingRules)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ScaleDown != nil {\n\t\tin, out := &in.ScaleDown, &out.ScaleDown\n\t\t*out = new(HPAScalingRules)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerBehavior.\nfunc (in *HorizontalPodAutoscalerBehavior) DeepCopy() *HorizontalPodAutoscalerBehavior {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscalerBehavior)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscalerCondition) DeepCopyInto(out *HorizontalPodAutoscalerCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerCondition.\nfunc (in *HorizontalPodAutoscalerCondition) DeepCopy() *HorizontalPodAutoscalerCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscalerCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscalerList) DeepCopyInto(out *HorizontalPodAutoscalerList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]HorizontalPodAutoscaler, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerList.\nfunc (in *HorizontalPodAutoscalerList) DeepCopy() *HorizontalPodAutoscalerList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscalerList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *HorizontalPodAutoscalerList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscalerSpec) DeepCopyInto(out *HorizontalPodAutoscalerSpec) {\n\t*out = *in\n\tout.ScaleTargetRef = in.ScaleTargetRef\n\tif in.MinReplicas != nil {\n\t\tin, out := &in.MinReplicas, &out.MinReplicas\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Metrics != nil {\n\t\tin, out := &in.Metrics, &out.Metrics\n\t\t*out = make([]MetricSpec, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Behavior != nil {\n\t\tin, out := &in.Behavior, &out.Behavior\n\t\t*out = new(HorizontalPodAutoscalerBehavior)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerSpec.\nfunc (in *HorizontalPodAutoscalerSpec) DeepCopy() *HorizontalPodAutoscalerSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscalerSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscalerStatus) DeepCopyInto(out *HorizontalPodAutoscalerStatus) {\n\t*out = *in\n\tif in.ObservedGeneration != nil {\n\t\tin, out := &in.ObservedGeneration, &out.ObservedGeneration\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.LastScaleTime != nil {\n\t\tin, out := &in.LastScaleTime, &out.LastScaleTime\n\t\t*out = (*in).DeepCopy()\n\t}\n\tif in.CurrentMetrics != nil {\n\t\tin, out := &in.CurrentMetrics, &out.CurrentMetrics\n\t\t*out = make([]MetricStatus, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]HorizontalPodAutoscalerCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerStatus.\nfunc (in *HorizontalPodAutoscalerStatus) DeepCopy() *HorizontalPodAutoscalerStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscalerStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MetricIdentifier) DeepCopyInto(out *MetricIdentifier) {\n\t*out = *in\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricIdentifier.\nfunc (in *MetricIdentifier) DeepCopy() *MetricIdentifier {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MetricIdentifier)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MetricSpec) DeepCopyInto(out *MetricSpec) {\n\t*out = *in\n\tif in.Object != nil {\n\t\tin, out := &in.Object, &out.Object\n\t\t*out = new(ObjectMetricSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Pods != nil {\n\t\tin, out := &in.Pods, &out.Pods\n\t\t*out = new(PodsMetricSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Resource != nil {\n\t\tin, out := &in.Resource, &out.Resource\n\t\t*out = new(ResourceMetricSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ContainerResource != nil {\n\t\tin, out := &in.ContainerResource, &out.ContainerResource\n\t\t*out = new(ContainerResourceMetricSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.External != nil {\n\t\tin, out := &in.External, &out.External\n\t\t*out = new(ExternalMetricSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricSpec.\nfunc (in *MetricSpec) DeepCopy() *MetricSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MetricSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MetricStatus) DeepCopyInto(out *MetricStatus) {\n\t*out = *in\n\tif in.Object != nil {\n\t\tin, out := &in.Object, &out.Object\n\t\t*out = new(ObjectMetricStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Pods != nil {\n\t\tin, out := &in.Pods, &out.Pods\n\t\t*out = new(PodsMetricStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Resource != nil {\n\t\tin, out := &in.Resource, &out.Resource\n\t\t*out = new(ResourceMetricStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ContainerResource != nil {\n\t\tin, out := &in.ContainerResource, &out.ContainerResource\n\t\t*out = new(ContainerResourceMetricStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.External != nil {\n\t\tin, out := &in.External, &out.External\n\t\t*out = new(ExternalMetricStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricStatus.\nfunc (in *MetricStatus) DeepCopy() *MetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MetricTarget) DeepCopyInto(out *MetricTarget) {\n\t*out = *in\n\tif in.Value != nil {\n\t\tin, out := &in.Value, &out.Value\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\tif in.AverageValue != nil {\n\t\tin, out := &in.AverageValue, &out.AverageValue\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\tif in.AverageUtilization != nil {\n\t\tin, out := &in.AverageUtilization, &out.AverageUtilization\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricTarget.\nfunc (in *MetricTarget) DeepCopy() *MetricTarget {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MetricTarget)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MetricValueStatus) DeepCopyInto(out *MetricValueStatus) {\n\t*out = *in\n\tif in.Value != nil {\n\t\tin, out := &in.Value, &out.Value\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\tif in.AverageValue != nil {\n\t\tin, out := &in.AverageValue, &out.AverageValue\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\tif in.AverageUtilization != nil {\n\t\tin, out := &in.AverageUtilization, &out.AverageUtilization\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricValueStatus.\nfunc (in *MetricValueStatus) DeepCopy() *MetricValueStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MetricValueStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ObjectMetricSource) DeepCopyInto(out *ObjectMetricSource) {\n\t*out = *in\n\tout.DescribedObject = in.DescribedObject\n\tin.Target.DeepCopyInto(&out.Target)\n\tin.Metric.DeepCopyInto(&out.Metric)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectMetricSource.\nfunc (in *ObjectMetricSource) DeepCopy() *ObjectMetricSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ObjectMetricSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ObjectMetricStatus) DeepCopyInto(out *ObjectMetricStatus) {\n\t*out = *in\n\tin.Metric.DeepCopyInto(&out.Metric)\n\tin.Current.DeepCopyInto(&out.Current)\n\tout.DescribedObject = in.DescribedObject\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectMetricStatus.\nfunc (in *ObjectMetricStatus) DeepCopy() *ObjectMetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ObjectMetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodsMetricSource) DeepCopyInto(out *PodsMetricSource) {\n\t*out = *in\n\tin.Metric.DeepCopyInto(&out.Metric)\n\tin.Target.DeepCopyInto(&out.Target)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodsMetricSource.\nfunc (in *PodsMetricSource) DeepCopy() *PodsMetricSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodsMetricSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodsMetricStatus) DeepCopyInto(out *PodsMetricStatus) {\n\t*out = *in\n\tin.Metric.DeepCopyInto(&out.Metric)\n\tin.Current.DeepCopyInto(&out.Current)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodsMetricStatus.\nfunc (in *PodsMetricStatus) DeepCopy() *PodsMetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodsMetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceMetricSource) DeepCopyInto(out *ResourceMetricSource) {\n\t*out = *in\n\tin.Target.DeepCopyInto(&out.Target)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceMetricSource.\nfunc (in *ResourceMetricSource) DeepCopy() *ResourceMetricSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceMetricSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceMetricStatus) DeepCopyInto(out *ResourceMetricStatus) {\n\t*out = *in\n\tin.Current.DeepCopyInto(&out.Current)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceMetricStatus.\nfunc (in *ResourceMetricStatus) DeepCopy() *ResourceMetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceMetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v2\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *HorizontalPodAutoscaler) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 23\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *HorizontalPodAutoscalerList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 23\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2beta1/doc.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\npackage v2beta1 // import \"k8s.io/api/autoscaling/v2beta1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2beta1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/autoscaling/v2beta1/generated.proto\n\npackage v2beta1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *ContainerResourceMetricSource) Reset()      { *m = ContainerResourceMetricSource{} }\nfunc (*ContainerResourceMetricSource) ProtoMessage() {}\nfunc (*ContainerResourceMetricSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ea74040359c1ed83, []int{0}\n}\nfunc (m *ContainerResourceMetricSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerResourceMetricSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ContainerResourceMetricSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerResourceMetricSource.Merge(m, src)\n}\nfunc (m *ContainerResourceMetricSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerResourceMetricSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerResourceMetricSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerResourceMetricSource proto.InternalMessageInfo\n\nfunc (m *ContainerResourceMetricStatus) Reset()      { *m = ContainerResourceMetricStatus{} }\nfunc (*ContainerResourceMetricStatus) ProtoMessage() {}\nfunc (*ContainerResourceMetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ea74040359c1ed83, []int{1}\n}\nfunc (m *ContainerResourceMetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerResourceMetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ContainerResourceMetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerResourceMetricStatus.Merge(m, src)\n}\nfunc (m *ContainerResourceMetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerResourceMetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerResourceMetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerResourceMetricStatus proto.InternalMessageInfo\n\nfunc (m *CrossVersionObjectReference) Reset()      { *m = CrossVersionObjectReference{} }\nfunc (*CrossVersionObjectReference) ProtoMessage() {}\nfunc (*CrossVersionObjectReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ea74040359c1ed83, []int{2}\n}\nfunc (m *CrossVersionObjectReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CrossVersionObjectReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CrossVersionObjectReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CrossVersionObjectReference.Merge(m, src)\n}\nfunc (m *CrossVersionObjectReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CrossVersionObjectReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_CrossVersionObjectReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CrossVersionObjectReference proto.InternalMessageInfo\n\nfunc (m *ExternalMetricSource) Reset()      { *m = ExternalMetricSource{} }\nfunc (*ExternalMetricSource) ProtoMessage() {}\nfunc (*ExternalMetricSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ea74040359c1ed83, []int{3}\n}\nfunc (m *ExternalMetricSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ExternalMetricSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ExternalMetricSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ExternalMetricSource.Merge(m, src)\n}\nfunc (m *ExternalMetricSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ExternalMetricSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ExternalMetricSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ExternalMetricSource proto.InternalMessageInfo\n\nfunc (m *ExternalMetricStatus) Reset()      { *m = ExternalMetricStatus{} }\nfunc (*ExternalMetricStatus) ProtoMessage() {}\nfunc (*ExternalMetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ea74040359c1ed83, []int{4}\n}\nfunc (m *ExternalMetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ExternalMetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ExternalMetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ExternalMetricStatus.Merge(m, src)\n}\nfunc (m *ExternalMetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ExternalMetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ExternalMetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ExternalMetricStatus proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscaler) Reset()      { *m = HorizontalPodAutoscaler{} }\nfunc (*HorizontalPodAutoscaler) ProtoMessage() {}\nfunc (*HorizontalPodAutoscaler) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ea74040359c1ed83, []int{5}\n}\nfunc (m *HorizontalPodAutoscaler) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscaler) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscaler) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscaler.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscaler) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscaler) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscaler.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscaler proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscalerCondition) Reset()      { *m = HorizontalPodAutoscalerCondition{} }\nfunc (*HorizontalPodAutoscalerCondition) ProtoMessage() {}\nfunc (*HorizontalPodAutoscalerCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ea74040359c1ed83, []int{6}\n}\nfunc (m *HorizontalPodAutoscalerCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscalerCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscalerCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscalerCondition.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscalerCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscalerCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscalerCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscalerCondition proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscalerList) Reset()      { *m = HorizontalPodAutoscalerList{} }\nfunc (*HorizontalPodAutoscalerList) ProtoMessage() {}\nfunc (*HorizontalPodAutoscalerList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ea74040359c1ed83, []int{7}\n}\nfunc (m *HorizontalPodAutoscalerList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscalerList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscalerList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscalerList.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscalerList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscalerList) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscalerList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscalerList proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscalerSpec) Reset()      { *m = HorizontalPodAutoscalerSpec{} }\nfunc (*HorizontalPodAutoscalerSpec) ProtoMessage() {}\nfunc (*HorizontalPodAutoscalerSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ea74040359c1ed83, []int{8}\n}\nfunc (m *HorizontalPodAutoscalerSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscalerSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscalerSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscalerSpec.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscalerSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscalerSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscalerSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscalerSpec proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscalerStatus) Reset()      { *m = HorizontalPodAutoscalerStatus{} }\nfunc (*HorizontalPodAutoscalerStatus) ProtoMessage() {}\nfunc (*HorizontalPodAutoscalerStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ea74040359c1ed83, []int{9}\n}\nfunc (m *HorizontalPodAutoscalerStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscalerStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscalerStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscalerStatus.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscalerStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscalerStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscalerStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscalerStatus proto.InternalMessageInfo\n\nfunc (m *MetricSpec) Reset()      { *m = MetricSpec{} }\nfunc (*MetricSpec) ProtoMessage() {}\nfunc (*MetricSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ea74040359c1ed83, []int{10}\n}\nfunc (m *MetricSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MetricSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MetricSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MetricSpec.Merge(m, src)\n}\nfunc (m *MetricSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MetricSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_MetricSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MetricSpec proto.InternalMessageInfo\n\nfunc (m *MetricStatus) Reset()      { *m = MetricStatus{} }\nfunc (*MetricStatus) ProtoMessage() {}\nfunc (*MetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ea74040359c1ed83, []int{11}\n}\nfunc (m *MetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MetricStatus.Merge(m, src)\n}\nfunc (m *MetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_MetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MetricStatus proto.InternalMessageInfo\n\nfunc (m *ObjectMetricSource) Reset()      { *m = ObjectMetricSource{} }\nfunc (*ObjectMetricSource) ProtoMessage() {}\nfunc (*ObjectMetricSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ea74040359c1ed83, []int{12}\n}\nfunc (m *ObjectMetricSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ObjectMetricSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ObjectMetricSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ObjectMetricSource.Merge(m, src)\n}\nfunc (m *ObjectMetricSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ObjectMetricSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ObjectMetricSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ObjectMetricSource proto.InternalMessageInfo\n\nfunc (m *ObjectMetricStatus) Reset()      { *m = ObjectMetricStatus{} }\nfunc (*ObjectMetricStatus) ProtoMessage() {}\nfunc (*ObjectMetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ea74040359c1ed83, []int{13}\n}\nfunc (m *ObjectMetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ObjectMetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ObjectMetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ObjectMetricStatus.Merge(m, src)\n}\nfunc (m *ObjectMetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ObjectMetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ObjectMetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ObjectMetricStatus proto.InternalMessageInfo\n\nfunc (m *PodsMetricSource) Reset()      { *m = PodsMetricSource{} }\nfunc (*PodsMetricSource) ProtoMessage() {}\nfunc (*PodsMetricSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ea74040359c1ed83, []int{14}\n}\nfunc (m *PodsMetricSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodsMetricSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodsMetricSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodsMetricSource.Merge(m, src)\n}\nfunc (m *PodsMetricSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodsMetricSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodsMetricSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodsMetricSource proto.InternalMessageInfo\n\nfunc (m *PodsMetricStatus) Reset()      { *m = PodsMetricStatus{} }\nfunc (*PodsMetricStatus) ProtoMessage() {}\nfunc (*PodsMetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ea74040359c1ed83, []int{15}\n}\nfunc (m *PodsMetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodsMetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodsMetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodsMetricStatus.Merge(m, src)\n}\nfunc (m *PodsMetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodsMetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodsMetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodsMetricStatus proto.InternalMessageInfo\n\nfunc (m *ResourceMetricSource) Reset()      { *m = ResourceMetricSource{} }\nfunc (*ResourceMetricSource) ProtoMessage() {}\nfunc (*ResourceMetricSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ea74040359c1ed83, []int{16}\n}\nfunc (m *ResourceMetricSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceMetricSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceMetricSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceMetricSource.Merge(m, src)\n}\nfunc (m *ResourceMetricSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceMetricSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceMetricSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceMetricSource proto.InternalMessageInfo\n\nfunc (m *ResourceMetricStatus) Reset()      { *m = ResourceMetricStatus{} }\nfunc (*ResourceMetricStatus) ProtoMessage() {}\nfunc (*ResourceMetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ea74040359c1ed83, []int{17}\n}\nfunc (m *ResourceMetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceMetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceMetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceMetricStatus.Merge(m, src)\n}\nfunc (m *ResourceMetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceMetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceMetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceMetricStatus proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*ContainerResourceMetricSource)(nil), \"k8s.io.api.autoscaling.v2beta1.ContainerResourceMetricSource\")\n\tproto.RegisterType((*ContainerResourceMetricStatus)(nil), \"k8s.io.api.autoscaling.v2beta1.ContainerResourceMetricStatus\")\n\tproto.RegisterType((*CrossVersionObjectReference)(nil), \"k8s.io.api.autoscaling.v2beta1.CrossVersionObjectReference\")\n\tproto.RegisterType((*ExternalMetricSource)(nil), \"k8s.io.api.autoscaling.v2beta1.ExternalMetricSource\")\n\tproto.RegisterType((*ExternalMetricStatus)(nil), \"k8s.io.api.autoscaling.v2beta1.ExternalMetricStatus\")\n\tproto.RegisterType((*HorizontalPodAutoscaler)(nil), \"k8s.io.api.autoscaling.v2beta1.HorizontalPodAutoscaler\")\n\tproto.RegisterType((*HorizontalPodAutoscalerCondition)(nil), \"k8s.io.api.autoscaling.v2beta1.HorizontalPodAutoscalerCondition\")\n\tproto.RegisterType((*HorizontalPodAutoscalerList)(nil), \"k8s.io.api.autoscaling.v2beta1.HorizontalPodAutoscalerList\")\n\tproto.RegisterType((*HorizontalPodAutoscalerSpec)(nil), \"k8s.io.api.autoscaling.v2beta1.HorizontalPodAutoscalerSpec\")\n\tproto.RegisterType((*HorizontalPodAutoscalerStatus)(nil), \"k8s.io.api.autoscaling.v2beta1.HorizontalPodAutoscalerStatus\")\n\tproto.RegisterType((*MetricSpec)(nil), \"k8s.io.api.autoscaling.v2beta1.MetricSpec\")\n\tproto.RegisterType((*MetricStatus)(nil), \"k8s.io.api.autoscaling.v2beta1.MetricStatus\")\n\tproto.RegisterType((*ObjectMetricSource)(nil), \"k8s.io.api.autoscaling.v2beta1.ObjectMetricSource\")\n\tproto.RegisterType((*ObjectMetricStatus)(nil), \"k8s.io.api.autoscaling.v2beta1.ObjectMetricStatus\")\n\tproto.RegisterType((*PodsMetricSource)(nil), \"k8s.io.api.autoscaling.v2beta1.PodsMetricSource\")\n\tproto.RegisterType((*PodsMetricStatus)(nil), \"k8s.io.api.autoscaling.v2beta1.PodsMetricStatus\")\n\tproto.RegisterType((*ResourceMetricSource)(nil), \"k8s.io.api.autoscaling.v2beta1.ResourceMetricSource\")\n\tproto.RegisterType((*ResourceMetricStatus)(nil), \"k8s.io.api.autoscaling.v2beta1.ResourceMetricStatus\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/autoscaling/v2beta1/generated.proto\", fileDescriptor_ea74040359c1ed83)\n}\n\nvar fileDescriptor_ea74040359c1ed83 = []byte{\n\t// 1549 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x59, 0x4d, 0x6c, 0x1b, 0xc5,\n\t0x17, 0x8f, 0xed, 0x4d, 0x9a, 0x3c, 0xa7, 0xf9, 0x98, 0xf6, 0xdf, 0xba, 0xe9, 0xbf, 0x76, 0xb4,\n\t0xfa, 0xeb, 0xaf, 0x50, 0xc1, 0xba, 0x35, 0xe1, 0x43, 0x42, 0x48, 0xc4, 0x2e, 0xd0, 0x8a, 0xb8,\n\t0x2d, 0x93, 0xb4, 0x42, 0xd0, 0x22, 0x26, 0xeb, 0xa9, 0xb3, 0xc4, 0xde, 0xb5, 0x76, 0xc6, 0x51,\n\t0x53, 0x84, 0x84, 0x90, 0xb8, 0x73, 0x81, 0x33, 0x48, 0x5c, 0x11, 0xe2, 0x02, 0x67, 0x6e, 0x3d,\n\t0xf6, 0xd8, 0x0a, 0x64, 0x51, 0x73, 0xe0, 0xcc, 0xb5, 0x27, 0x34, 0xb3, 0xb3, 0xeb, 0x5d, 0xdb,\n\t0x6b, 0x3b, 0x6e, 0x1a, 0x3e, 0xd4, 0x9b, 0x77, 0xe7, 0xbd, 0xdf, 0x9b, 0xf9, 0xbd, 0xaf, 0x79,\n\t0x6b, 0x30, 0x76, 0x5e, 0x66, 0x86, 0xe5, 0xe4, 0x49, 0xc3, 0xca, 0x93, 0x26, 0x77, 0x98, 0x49,\n\t0x6a, 0x96, 0x5d, 0xcd, 0xef, 0x16, 0xb6, 0x28, 0x27, 0xe7, 0xf3, 0x55, 0x6a, 0x53, 0x97, 0x70,\n\t0x5a, 0x31, 0x1a, 0xae, 0xc3, 0x1d, 0x94, 0xf5, 0xe4, 0x0d, 0xd2, 0xb0, 0x8c, 0x90, 0xbc, 0xa1,\n\t0xe4, 0x97, 0x9e, 0xab, 0x5a, 0x7c, 0xbb, 0xb9, 0x65, 0x98, 0x4e, 0x3d, 0x5f, 0x75, 0xaa, 0x4e,\n\t0x5e, 0xaa, 0x6d, 0x35, 0x6f, 0xc9, 0x27, 0xf9, 0x20, 0x7f, 0x79, 0x70, 0x4b, 0x7a, 0xc8, 0xbc,\n\t0xe9, 0xb8, 0x34, 0xbf, 0xdb, 0x63, 0x72, 0x69, 0xb5, 0x23, 0x53, 0x27, 0xe6, 0xb6, 0x65, 0x53,\n\t0x77, 0x2f, 0xdf, 0xd8, 0xa9, 0x4a, 0x25, 0x97, 0x32, 0xa7, 0xe9, 0x9a, 0x74, 0x5f, 0x5a, 0x2c,\n\t0x5f, 0xa7, 0x9c, 0xf4, 0xb3, 0x95, 0x8f, 0xd3, 0x72, 0x9b, 0x36, 0xb7, 0xea, 0xbd, 0x66, 0x5e,\n\t0x1c, 0xa6, 0xc0, 0xcc, 0x6d, 0x5a, 0x27, 0xdd, 0x7a, 0xfa, 0xef, 0x49, 0x38, 0x53, 0x72, 0x6c,\n\t0x4e, 0x84, 0x06, 0x56, 0x87, 0x28, 0x53, 0xee, 0x5a, 0xe6, 0x86, 0xfc, 0x8d, 0x4a, 0xa0, 0xd9,\n\t0xa4, 0x4e, 0x33, 0x89, 0xe5, 0xc4, 0xca, 0x4c, 0x31, 0x7f, 0xb7, 0x95, 0x9b, 0x68, 0xb7, 0x72,\n\t0xda, 0x65, 0x52, 0xa7, 0x8f, 0x5a, 0xb9, 0x5c, 0x2f, 0x71, 0x86, 0x0f, 0x23, 0x44, 0xb0, 0x54,\n\t0x46, 0xef, 0x40, 0x86, 0x13, 0xb7, 0x4a, 0xf9, 0xda, 0x2e, 0x75, 0x49, 0x95, 0x5e, 0xe3, 0x56,\n\t0xcd, 0xba, 0x43, 0xb8, 0xe5, 0xd8, 0x99, 0xe4, 0x72, 0x62, 0x65, 0xb2, 0xf8, 0xdf, 0x76, 0x2b,\n\t0x97, 0xd9, 0x8c, 0x91, 0xc1, 0xb1, 0xda, 0x68, 0x17, 0x50, 0x64, 0xed, 0x3a, 0xa9, 0x35, 0x69,\n\t0x26, 0xb5, 0x9c, 0x58, 0x49, 0x17, 0x0c, 0xa3, 0x13, 0x25, 0x01, 0x2b, 0x46, 0x63, 0xa7, 0x2a,\n\t0xc3, 0xc6, 0x77, 0x99, 0xf1, 0x76, 0x93, 0xd8, 0xdc, 0xe2, 0x7b, 0xc5, 0x13, 0xed, 0x56, 0x0e,\n\t0x6d, 0xf6, 0xa0, 0xe1, 0x3e, 0x16, 0x50, 0x1e, 0x66, 0x4c, 0x9f, 0xb7, 0x8c, 0x26, 0xb9, 0x59,\n\t0x54, 0xdc, 0xcc, 0x74, 0x08, 0xed, 0xc8, 0xe8, 0x7f, 0x0c, 0x60, 0x9a, 0x13, 0xde, 0x64, 0x07,\n\t0xc3, 0xf4, 0x7b, 0x70, 0xca, 0x6c, 0xba, 0x2e, 0xb5, 0xe3, 0xa9, 0x3e, 0xd3, 0x6e, 0xe5, 0x4e,\n\t0x95, 0xe2, 0x84, 0x70, 0xbc, 0x3e, 0xfa, 0x18, 0x8e, 0x45, 0x17, 0x1f, 0x87, 0xed, 0xd3, 0xea,\n\t0x80, 0xc7, 0x4a, 0xbd, 0x90, 0xb8, 0x9f, 0x9d, 0xfd, 0x73, 0xfe, 0x45, 0x02, 0x4e, 0x97, 0x5c,\n\t0x87, 0xb1, 0xeb, 0xd4, 0x65, 0x96, 0x63, 0x5f, 0xd9, 0xfa, 0x90, 0x9a, 0x1c, 0xd3, 0x5b, 0xd4,\n\t0xa5, 0xb6, 0x49, 0xd1, 0x32, 0x68, 0x3b, 0x96, 0x5d, 0x51, 0x8c, 0xcf, 0xfa, 0x8c, 0xbf, 0x65,\n\t0xd9, 0x15, 0x2c, 0x57, 0x84, 0x84, 0xf4, 0x49, 0x32, 0x2a, 0x11, 0x22, 0xbc, 0x00, 0x40, 0x1a,\n\t0x96, 0x32, 0x20, 0xa9, 0x98, 0x29, 0x22, 0x25, 0x07, 0x6b, 0x57, 0x2f, 0xa9, 0x15, 0x1c, 0x92,\n\t0xd2, 0xbf, 0x4c, 0xc1, 0xf1, 0xd7, 0x6f, 0x73, 0xea, 0xda, 0xa4, 0x16, 0x49, 0xb6, 0x02, 0x40,\n\t0x5d, 0x3e, 0x5f, 0xee, 0x04, 0x42, 0x00, 0x56, 0x0e, 0x56, 0x70, 0x48, 0x0a, 0x39, 0x30, 0xe7,\n\t0x3d, 0x6d, 0xd0, 0x1a, 0x35, 0xb9, 0xe3, 0xca, 0xcd, 0xa6, 0x0b, 0xcf, 0x0f, 0xf2, 0x07, 0x33,\n\t0x44, 0xe9, 0x31, 0x76, 0xcf, 0x1b, 0xeb, 0x64, 0x8b, 0xd6, 0x7c, 0xd5, 0x22, 0x6a, 0xb7, 0x72,\n\t0x73, 0xe5, 0x08, 0x1c, 0xee, 0x82, 0x47, 0x04, 0xd2, 0x5e, 0x42, 0x3c, 0x8e, 0xf7, 0xe7, 0xdb,\n\t0xad, 0x5c, 0x7a, 0xb3, 0x03, 0x83, 0xc3, 0x98, 0x31, 0x59, 0xad, 0x3d, 0xe9, 0xac, 0xd6, 0xbf,\n\t0xea, 0x75, 0x8c, 0x97, 0x9b, 0xff, 0x08, 0xc7, 0x6c, 0xc3, 0xac, 0x4a, 0x9b, 0xc7, 0xf1, 0xcc,\n\t0x71, 0x75, 0xac, 0xd9, 0x52, 0x08, 0x0b, 0x47, 0x90, 0xd1, 0x5e, 0xff, 0x42, 0x30, 0x9e, 0x83,\n\t0x4e, 0xee, 0xa7, 0x08, 0xe8, 0x3f, 0x25, 0xe1, 0xe4, 0x45, 0xc7, 0xb5, 0xee, 0x88, 0x2c, 0xaf,\n\t0x5d, 0x75, 0x2a, 0x6b, 0xaa, 0xfd, 0x53, 0x17, 0x7d, 0x00, 0xd3, 0x82, 0xbd, 0x0a, 0xe1, 0x44,\n\t0xfa, 0x28, 0x5d, 0x38, 0x37, 0x1a, 0xd7, 0x5e, 0x61, 0x28, 0x53, 0x4e, 0x3a, 0x5e, 0xed, 0xbc,\n\t0xc3, 0x01, 0x2a, 0xba, 0x09, 0x1a, 0x6b, 0x50, 0x53, 0x79, 0xf2, 0x15, 0x63, 0xf0, 0x35, 0xc4,\n\t0x88, 0xd9, 0xe8, 0x46, 0x83, 0x9a, 0x9d, 0x62, 0x22, 0x9e, 0xb0, 0x84, 0x45, 0x14, 0xa6, 0x98,\n\t0x0c, 0x38, 0xe5, 0xbb, 0x57, 0xc7, 0x35, 0x20, 0x41, 0x8a, 0x73, 0xca, 0xc4, 0x94, 0xf7, 0x8c,\n\t0x15, 0xb8, 0xfe, 0x59, 0x0a, 0x96, 0x63, 0x34, 0x4b, 0x8e, 0x5d, 0xb1, 0x64, 0xb1, 0xbf, 0x08,\n\t0x1a, 0xdf, 0x6b, 0xf8, 0xc1, 0xbe, 0xea, 0xef, 0x76, 0x73, 0xaf, 0x21, 0xda, 0xd1, 0xff, 0x86,\n\t0xe9, 0x0b, 0x39, 0x2c, 0x11, 0xd0, 0x7a, 0x70, 0xaa, 0x64, 0x04, 0x4b, 0x6d, 0xeb, 0x51, 0x2b,\n\t0xd7, 0xe7, 0xfe, 0x65, 0x04, 0x48, 0xd1, 0xcd, 0x8b, 0xda, 0x50, 0x23, 0x8c, 0x6f, 0xba, 0xc4,\n\t0x66, 0x9e, 0x25, 0xab, 0xee, 0xc7, 0xfa, 0xd9, 0xd1, 0xdc, 0x2d, 0x34, 0x8a, 0x4b, 0x6a, 0x17,\n\t0x68, 0xbd, 0x07, 0x0d, 0xf7, 0xb1, 0x80, 0xfe, 0x0f, 0x53, 0x2e, 0x25, 0xcc, 0xb1, 0x55, 0xeb,\n\t0x09, 0xc8, 0xc5, 0xf2, 0x2d, 0x56, 0xab, 0xe8, 0x19, 0x38, 0x52, 0xa7, 0x8c, 0x91, 0x2a, 0xcd,\n\t0x4c, 0x4a, 0xc1, 0x79, 0x25, 0x78, 0xa4, 0xec, 0xbd, 0xc6, 0xfe, 0xba, 0xfe, 0x20, 0x01, 0xa7,\n\t0x63, 0x78, 0x5c, 0xb7, 0x18, 0x47, 0x37, 0x7a, 0xe2, 0xd9, 0x18, 0xb1, 0x76, 0x58, 0xcc, 0x8b,\n\t0xe6, 0x05, 0x65, 0x7b, 0xda, 0x7f, 0x13, 0x8a, 0xe5, 0x1b, 0x30, 0x69, 0x71, 0x5a, 0x17, 0x5e,\n\t0x49, 0xad, 0xa4, 0x0b, 0x2f, 0x8d, 0x19, 0x6b, 0xc5, 0xa3, 0xca, 0xc6, 0xe4, 0x25, 0x81, 0x86,\n\t0x3d, 0x50, 0xfd, 0xe7, 0x64, 0xec, 0xd9, 0x44, 0xc0, 0xa3, 0x8f, 0x60, 0x4e, 0x3e, 0x79, 0x95,\n\t0x19, 0xd3, 0x5b, 0xea, 0x84, 0x43, 0x73, 0x6a, 0x40, 0x43, 0x2f, 0x9e, 0x50, 0x5b, 0x99, 0xdb,\n\t0x88, 0x40, 0xe3, 0x2e, 0x53, 0xe8, 0x3c, 0xa4, 0xeb, 0x96, 0x8d, 0x69, 0xa3, 0x66, 0x99, 0x84,\n\t0xa9, 0x7b, 0x91, 0x6c, 0x49, 0xe5, 0xce, 0x6b, 0x1c, 0x96, 0x41, 0x2f, 0x40, 0xba, 0x4e, 0x6e,\n\t0x07, 0x2a, 0x29, 0xa9, 0x72, 0x4c, 0xd9, 0x4b, 0x97, 0x3b, 0x4b, 0x38, 0x2c, 0x87, 0xae, 0x89,\n\t0x68, 0x10, 0x55, 0x9a, 0x65, 0x34, 0x49, 0xf3, 0xd9, 0x61, 0xe7, 0x53, 0x45, 0x5e, 0x94, 0x88,\n\t0x50, 0xe4, 0x48, 0x08, 0xec, 0x63, 0xe9, 0x3f, 0x68, 0x70, 0x66, 0x60, 0xee, 0xa3, 0x37, 0x00,\n\t0x39, 0x5b, 0x8c, 0xba, 0xbb, 0xb4, 0xf2, 0xa6, 0x77, 0xe9, 0x17, 0xf7, 0x13, 0xc1, 0x71, 0xca,\n\t0x6b, 0x89, 0x57, 0x7a, 0x56, 0x71, 0x1f, 0x0d, 0x64, 0xc2, 0x51, 0x91, 0x0c, 0x1e, 0xa1, 0x96,\n\t0xba, 0x0a, 0xed, 0x2f, 0xd3, 0x16, 0xdb, 0xad, 0xdc, 0xd1, 0xf5, 0x30, 0x08, 0x8e, 0x62, 0xa2,\n\t0x35, 0x98, 0x57, 0xb5, 0xbe, 0x8b, 0xe0, 0x93, 0x8a, 0x81, 0xf9, 0x52, 0x74, 0x19, 0x77, 0xcb,\n\t0x0b, 0x88, 0x0a, 0x65, 0x96, 0x4b, 0x2b, 0x01, 0x84, 0x16, 0x85, 0xb8, 0x10, 0x5d, 0xc6, 0xdd,\n\t0xf2, 0xa8, 0x06, 0x73, 0x0a, 0x55, 0xf1, 0x9d, 0x99, 0x94, 0x2e, 0x7b, 0x76, 0x44, 0x97, 0x79,\n\t0x45, 0x37, 0x88, 0xc1, 0x52, 0x04, 0x0b, 0x77, 0x61, 0x23, 0x0e, 0x60, 0xfa, 0x25, 0x8e, 0x65,\n\t0xa6, 0xa4, 0xa5, 0xd7, 0xc6, 0xcc, 0xc1, 0xa0, 0x56, 0x76, 0xda, 0x57, 0xf0, 0x8a, 0xe1, 0x90,\n\t0x1d, 0xfd, 0x3b, 0x0d, 0xa0, 0x13, 0x61, 0x68, 0x35, 0x52, 0xe4, 0x97, 0xbb, 0x8a, 0xfc, 0x42,\n\t0xf8, 0x72, 0x1a, 0x2a, 0xe8, 0xd7, 0x61, 0xca, 0x91, 0x99, 0xa7, 0x82, 0xa1, 0x30, 0x6c, 0xdb,\n\t0x41, 0x2f, 0x0d, 0xd0, 0x8a, 0x20, 0x4a, 0xa7, 0xca, 0x5f, 0x85, 0x86, 0x2e, 0x83, 0xd6, 0x70,\n\t0x2a, 0x7e, 0xf3, 0x3b, 0x37, 0x0c, 0xf5, 0xaa, 0x53, 0x61, 0x11, 0xcc, 0x69, 0xb1, 0x77, 0xf1,\n\t0x16, 0x4b, 0x1c, 0xf4, 0x3e, 0x4c, 0xfb, 0xd7, 0x0d, 0x75, 0x37, 0x59, 0x1d, 0x86, 0xd9, 0x6f,\n\t0x06, 0x2e, 0xce, 0x8a, 0x0a, 0xea, 0xaf, 0xe0, 0x00, 0x13, 0x7d, 0x9a, 0x80, 0x45, 0xb3, 0x7b,\n\t0xa6, 0xcb, 0x1c, 0x19, 0xad, 0x75, 0x0f, 0x1c, 0xbb, 0x8b, 0xff, 0x69, 0xb7, 0x72, 0x8b, 0x3d,\n\t0x22, 0xb8, 0xd7, 0x9c, 0x38, 0x24, 0x55, 0x57, 0x56, 0xd9, 0x70, 0x46, 0x38, 0x64, 0xbf, 0xd9,\n\t0xc3, 0x3b, 0xa4, 0xbf, 0x82, 0x03, 0x4c, 0xfd, 0x7b, 0x0d, 0x66, 0x23, 0x77, 0xe1, 0xbf, 0x22,\n\t0x66, 0xbc, 0xd4, 0x3a, 0xd8, 0x98, 0xf1, 0x30, 0x0f, 0x3e, 0x66, 0x3c, 0xdc, 0x43, 0x8d, 0x19,\n\t0xcf, 0xe4, 0x61, 0xc6, 0x4c, 0xe8, 0x90, 0x7d, 0x62, 0xe6, 0x41, 0x0a, 0x50, 0x6f, 0xce, 0x23,\n\t0x13, 0xa6, 0xbc, 0xa1, 0xeb, 0x20, 0x7a, 0x7d, 0x70, 0xff, 0x52, 0x6d, 0x5d, 0x41, 0x77, 0x8d,\n\t0x6a, 0xc9, 0x91, 0x46, 0x35, 0x7a, 0x10, 0x23, 0x6d, 0x70, 0x19, 0x88, 0x1d, 0x6b, 0x6f, 0xc2,\n\t0x34, 0xf3, 0x67, 0x41, 0x6d, 0xfc, 0x59, 0x50, 0xb2, 0x1e, 0x4c, 0x81, 0x01, 0x24, 0xaa, 0xc0,\n\t0x2c, 0x09, 0x8f, 0x63, 0x93, 0x63, 0x1d, 0x63, 0x41, 0xcc, 0x7e, 0x91, 0x39, 0x2c, 0x82, 0xaa,\n\t0xff, 0xd2, 0xed, 0x5b, 0xaf, 0x2a, 0xfc, 0x6d, 0x7d, 0x7b, 0x78, 0x53, 0xf1, 0xbf, 0xc2, 0xbd,\n\t0x5f, 0x27, 0x61, 0xa1, 0xbb, 0xb1, 0x8e, 0xf5, 0xf9, 0xe3, 0x4e, 0xdf, 0x6f, 0x38, 0xc9, 0xb1,\n\t0x36, 0x1d, 0xcc, 0x6a, 0x23, 0x7e, 0x9d, 0x0d, 0x7b, 0x22, 0x75, 0xe0, 0x9e, 0xd0, 0xbf, 0x89,\n\t0x72, 0x34, 0xfe, 0x27, 0xa2, 0x98, 0x0f, 0xaa, 0xc9, 0x43, 0xfa, 0xa0, 0xfa, 0x84, 0x69, 0xfa,\n\t0x36, 0x09, 0xc7, 0x9f, 0xfe, 0xa7, 0x30, 0xfa, 0xd7, 0xc7, 0x1f, 0x7b, 0xf9, 0x7a, 0xfa, 0xcf,\n\t0xc0, 0x28, 0x81, 0x5c, 0xbc, 0x70, 0xf7, 0x61, 0x76, 0xe2, 0xde, 0xc3, 0xec, 0xc4, 0xfd, 0x87,\n\t0xd9, 0x89, 0x4f, 0xda, 0xd9, 0xc4, 0xdd, 0x76, 0x36, 0x71, 0xaf, 0x9d, 0x4d, 0xdc, 0x6f, 0x67,\n\t0x13, 0xbf, 0xb6, 0xb3, 0x89, 0xcf, 0x7f, 0xcb, 0x4e, 0xbc, 0x9b, 0x1d, 0xfc, 0x27, 0xe3, 0x9f,\n\t0x01, 0x00, 0x00, 0xff, 0xff, 0x5b, 0x05, 0xaa, 0x18, 0x85, 0x1c, 0x00, 0x00,\n}\n\nfunc (m *ContainerResourceMetricSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerResourceMetricSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerResourceMetricSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Container)\n\tcopy(dAtA[i:], m.Container)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Container)))\n\ti--\n\tdAtA[i] = 0x22\n\tif m.TargetAverageValue != nil {\n\t\t{\n\t\t\tsize, err := m.TargetAverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.TargetAverageUtilization != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.TargetAverageUtilization))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerResourceMetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerResourceMetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerResourceMetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Container)\n\tcopy(dAtA[i:], m.Container)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Container)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.CurrentAverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.CurrentAverageUtilization != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.CurrentAverageUtilization))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CrossVersionObjectReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CrossVersionObjectReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CrossVersionObjectReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.APIVersion)\n\tcopy(dAtA[i:], m.APIVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIVersion)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ExternalMetricSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ExternalMetricSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ExternalMetricSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.TargetAverageValue != nil {\n\t\t{\n\t\t\tsize, err := m.TargetAverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.TargetValue != nil {\n\t\t{\n\t\t\tsize, err := m.TargetValue.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.MetricSelector != nil {\n\t\t{\n\t\t\tsize, err := m.MetricSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.MetricName)\n\tcopy(dAtA[i:], m.MetricName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.MetricName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ExternalMetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ExternalMetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ExternalMetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.CurrentAverageValue != nil {\n\t\t{\n\t\t\tsize, err := m.CurrentAverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\t{\n\t\tsize, err := m.CurrentValue.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.MetricSelector != nil {\n\t\t{\n\t\t\tsize, err := m.MetricSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.MetricName)\n\tcopy(dAtA[i:], m.MetricName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.MetricName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscaler) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscaler) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscaler) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscalerCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscalerCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscalerCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscalerList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscalerList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscalerList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscalerSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscalerSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscalerSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Metrics) > 0 {\n\t\tfor iNdEx := len(m.Metrics) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Metrics[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MaxReplicas))\n\ti--\n\tdAtA[i] = 0x18\n\tif m.MinReplicas != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.MinReplicas))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\t{\n\t\tsize, err := m.ScaleTargetRef.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscalerStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscalerStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscalerStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\tif len(m.CurrentMetrics) > 0 {\n\t\tfor iNdEx := len(m.CurrentMetrics) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.CurrentMetrics[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.DesiredReplicas))\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.CurrentReplicas))\n\ti--\n\tdAtA[i] = 0x18\n\tif m.LastScaleTime != nil {\n\t\t{\n\t\t\tsize, err := m.LastScaleTime.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.ObservedGeneration != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.ObservedGeneration))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MetricSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MetricSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MetricSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ContainerResource != nil {\n\t\t{\n\t\t\tsize, err := m.ContainerResource.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif m.External != nil {\n\t\t{\n\t\t\tsize, err := m.External.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.Resource != nil {\n\t\t{\n\t\t\tsize, err := m.Resource.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Pods != nil {\n\t\t{\n\t\t\tsize, err := m.Pods.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Object != nil {\n\t\t{\n\t\t\tsize, err := m.Object.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ContainerResource != nil {\n\t\t{\n\t\t\tsize, err := m.ContainerResource.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif m.External != nil {\n\t\t{\n\t\t\tsize, err := m.External.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.Resource != nil {\n\t\t{\n\t\t\tsize, err := m.Resource.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Pods != nil {\n\t\t{\n\t\t\tsize, err := m.Pods.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Object != nil {\n\t\t{\n\t\t\tsize, err := m.Object.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ObjectMetricSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ObjectMetricSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ObjectMetricSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.AverageValue != nil {\n\t\t{\n\t\t\tsize, err := m.AverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\t{\n\t\tsize, err := m.TargetValue.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.MetricName)\n\tcopy(dAtA[i:], m.MetricName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.MetricName)))\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.Target.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ObjectMetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ObjectMetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ObjectMetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.AverageValue != nil {\n\t\t{\n\t\t\tsize, err := m.AverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\t{\n\t\tsize, err := m.CurrentValue.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.MetricName)\n\tcopy(dAtA[i:], m.MetricName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.MetricName)))\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.Target.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodsMetricSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodsMetricSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodsMetricSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\t{\n\t\tsize, err := m.TargetAverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.MetricName)\n\tcopy(dAtA[i:], m.MetricName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.MetricName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodsMetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodsMetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodsMetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\t{\n\t\tsize, err := m.CurrentAverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.MetricName)\n\tcopy(dAtA[i:], m.MetricName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.MetricName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceMetricSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceMetricSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceMetricSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.TargetAverageValue != nil {\n\t\t{\n\t\t\tsize, err := m.TargetAverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.TargetAverageUtilization != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.TargetAverageUtilization))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceMetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceMetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceMetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.CurrentAverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.CurrentAverageUtilization != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.CurrentAverageUtilization))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *ContainerResourceMetricSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.TargetAverageUtilization != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.TargetAverageUtilization))\n\t}\n\tif m.TargetAverageValue != nil {\n\t\tl = m.TargetAverageValue.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.Container)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ContainerResourceMetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.CurrentAverageUtilization != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.CurrentAverageUtilization))\n\t}\n\tl = m.CurrentAverageValue.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Container)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *CrossVersionObjectReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.APIVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ExternalMetricSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.MetricName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.MetricSelector != nil {\n\t\tl = m.MetricSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.TargetValue != nil {\n\t\tl = m.TargetValue.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.TargetAverageValue != nil {\n\t\tl = m.TargetAverageValue.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ExternalMetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.MetricName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.MetricSelector != nil {\n\t\tl = m.MetricSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = m.CurrentValue.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.CurrentAverageValue != nil {\n\t\tl = m.CurrentAverageValue.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscaler) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscalerCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscalerList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscalerSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ScaleTargetRef.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.MinReplicas != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.MinReplicas))\n\t}\n\tn += 1 + sovGenerated(uint64(m.MaxReplicas))\n\tif len(m.Metrics) > 0 {\n\t\tfor _, e := range m.Metrics {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscalerStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.ObservedGeneration != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.ObservedGeneration))\n\t}\n\tif m.LastScaleTime != nil {\n\t\tl = m.LastScaleTime.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 1 + sovGenerated(uint64(m.CurrentReplicas))\n\tn += 1 + sovGenerated(uint64(m.DesiredReplicas))\n\tif len(m.CurrentMetrics) > 0 {\n\t\tfor _, e := range m.CurrentMetrics {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *MetricSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Object != nil {\n\t\tl = m.Object.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Pods != nil {\n\t\tl = m.Pods.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Resource != nil {\n\t\tl = m.Resource.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.External != nil {\n\t\tl = m.External.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ContainerResource != nil {\n\t\tl = m.ContainerResource.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *MetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Object != nil {\n\t\tl = m.Object.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Pods != nil {\n\t\tl = m.Pods.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Resource != nil {\n\t\tl = m.Resource.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.External != nil {\n\t\tl = m.External.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ContainerResource != nil {\n\t\tl = m.ContainerResource.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ObjectMetricSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Target.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.MetricName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.TargetValue.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.AverageValue != nil {\n\t\tl = m.AverageValue.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ObjectMetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Target.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.MetricName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.CurrentValue.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.AverageValue != nil {\n\t\tl = m.AverageValue.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PodsMetricSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.MetricName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.TargetAverageValue.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PodsMetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.MetricName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.CurrentAverageValue.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ResourceMetricSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.TargetAverageUtilization != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.TargetAverageUtilization))\n\t}\n\tif m.TargetAverageValue != nil {\n\t\tl = m.TargetAverageValue.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ResourceMetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.CurrentAverageUtilization != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.CurrentAverageUtilization))\n\t}\n\tl = m.CurrentAverageValue.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *ContainerResourceMetricSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ContainerResourceMetricSource{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`TargetAverageUtilization:` + valueToStringGenerated(this.TargetAverageUtilization) + `,`,\n\t\t`TargetAverageValue:` + strings.Replace(fmt.Sprintf(\"%v\", this.TargetAverageValue), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`Container:` + fmt.Sprintf(\"%v\", this.Container) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerResourceMetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ContainerResourceMetricStatus{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`CurrentAverageUtilization:` + valueToStringGenerated(this.CurrentAverageUtilization) + `,`,\n\t\t`CurrentAverageValue:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.CurrentAverageValue), \"Quantity\", \"resource.Quantity\", 1), `&`, ``, 1) + `,`,\n\t\t`Container:` + fmt.Sprintf(\"%v\", this.Container) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CrossVersionObjectReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CrossVersionObjectReference{`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`APIVersion:` + fmt.Sprintf(\"%v\", this.APIVersion) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ExternalMetricSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ExternalMetricSource{`,\n\t\t`MetricName:` + fmt.Sprintf(\"%v\", this.MetricName) + `,`,\n\t\t`MetricSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.MetricSelector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`TargetValue:` + strings.Replace(fmt.Sprintf(\"%v\", this.TargetValue), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`TargetAverageValue:` + strings.Replace(fmt.Sprintf(\"%v\", this.TargetAverageValue), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ExternalMetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ExternalMetricStatus{`,\n\t\t`MetricName:` + fmt.Sprintf(\"%v\", this.MetricName) + `,`,\n\t\t`MetricSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.MetricSelector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`CurrentValue:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.CurrentValue), \"Quantity\", \"resource.Quantity\", 1), `&`, ``, 1) + `,`,\n\t\t`CurrentAverageValue:` + strings.Replace(fmt.Sprintf(\"%v\", this.CurrentAverageValue), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscaler) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HorizontalPodAutoscaler{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"HorizontalPodAutoscalerSpec\", \"HorizontalPodAutoscalerSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"HorizontalPodAutoscalerStatus\", \"HorizontalPodAutoscalerStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscalerCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HorizontalPodAutoscalerCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscalerList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]HorizontalPodAutoscaler{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"HorizontalPodAutoscaler\", \"HorizontalPodAutoscaler\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&HorizontalPodAutoscalerList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscalerSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForMetrics := \"[]MetricSpec{\"\n\tfor _, f := range this.Metrics {\n\t\trepeatedStringForMetrics += strings.Replace(strings.Replace(f.String(), \"MetricSpec\", \"MetricSpec\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForMetrics += \"}\"\n\ts := strings.Join([]string{`&HorizontalPodAutoscalerSpec{`,\n\t\t`ScaleTargetRef:` + strings.Replace(strings.Replace(this.ScaleTargetRef.String(), \"CrossVersionObjectReference\", \"CrossVersionObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`MinReplicas:` + valueToStringGenerated(this.MinReplicas) + `,`,\n\t\t`MaxReplicas:` + fmt.Sprintf(\"%v\", this.MaxReplicas) + `,`,\n\t\t`Metrics:` + repeatedStringForMetrics + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscalerStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForCurrentMetrics := \"[]MetricStatus{\"\n\tfor _, f := range this.CurrentMetrics {\n\t\trepeatedStringForCurrentMetrics += strings.Replace(strings.Replace(f.String(), \"MetricStatus\", \"MetricStatus\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForCurrentMetrics += \"}\"\n\trepeatedStringForConditions := \"[]HorizontalPodAutoscalerCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"HorizontalPodAutoscalerCondition\", \"HorizontalPodAutoscalerCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&HorizontalPodAutoscalerStatus{`,\n\t\t`ObservedGeneration:` + valueToStringGenerated(this.ObservedGeneration) + `,`,\n\t\t`LastScaleTime:` + strings.Replace(fmt.Sprintf(\"%v\", this.LastScaleTime), \"Time\", \"v1.Time\", 1) + `,`,\n\t\t`CurrentReplicas:` + fmt.Sprintf(\"%v\", this.CurrentReplicas) + `,`,\n\t\t`DesiredReplicas:` + fmt.Sprintf(\"%v\", this.DesiredReplicas) + `,`,\n\t\t`CurrentMetrics:` + repeatedStringForCurrentMetrics + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MetricSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&MetricSpec{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Object:` + strings.Replace(this.Object.String(), \"ObjectMetricSource\", \"ObjectMetricSource\", 1) + `,`,\n\t\t`Pods:` + strings.Replace(this.Pods.String(), \"PodsMetricSource\", \"PodsMetricSource\", 1) + `,`,\n\t\t`Resource:` + strings.Replace(this.Resource.String(), \"ResourceMetricSource\", \"ResourceMetricSource\", 1) + `,`,\n\t\t`External:` + strings.Replace(this.External.String(), \"ExternalMetricSource\", \"ExternalMetricSource\", 1) + `,`,\n\t\t`ContainerResource:` + strings.Replace(this.ContainerResource.String(), \"ContainerResourceMetricSource\", \"ContainerResourceMetricSource\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&MetricStatus{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Object:` + strings.Replace(this.Object.String(), \"ObjectMetricStatus\", \"ObjectMetricStatus\", 1) + `,`,\n\t\t`Pods:` + strings.Replace(this.Pods.String(), \"PodsMetricStatus\", \"PodsMetricStatus\", 1) + `,`,\n\t\t`Resource:` + strings.Replace(this.Resource.String(), \"ResourceMetricStatus\", \"ResourceMetricStatus\", 1) + `,`,\n\t\t`External:` + strings.Replace(this.External.String(), \"ExternalMetricStatus\", \"ExternalMetricStatus\", 1) + `,`,\n\t\t`ContainerResource:` + strings.Replace(this.ContainerResource.String(), \"ContainerResourceMetricStatus\", \"ContainerResourceMetricStatus\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ObjectMetricSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ObjectMetricSource{`,\n\t\t`Target:` + strings.Replace(strings.Replace(this.Target.String(), \"CrossVersionObjectReference\", \"CrossVersionObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`MetricName:` + fmt.Sprintf(\"%v\", this.MetricName) + `,`,\n\t\t`TargetValue:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.TargetValue), \"Quantity\", \"resource.Quantity\", 1), `&`, ``, 1) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`AverageValue:` + strings.Replace(fmt.Sprintf(\"%v\", this.AverageValue), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ObjectMetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ObjectMetricStatus{`,\n\t\t`Target:` + strings.Replace(strings.Replace(this.Target.String(), \"CrossVersionObjectReference\", \"CrossVersionObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`MetricName:` + fmt.Sprintf(\"%v\", this.MetricName) + `,`,\n\t\t`CurrentValue:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.CurrentValue), \"Quantity\", \"resource.Quantity\", 1), `&`, ``, 1) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`AverageValue:` + strings.Replace(fmt.Sprintf(\"%v\", this.AverageValue), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodsMetricSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodsMetricSource{`,\n\t\t`MetricName:` + fmt.Sprintf(\"%v\", this.MetricName) + `,`,\n\t\t`TargetAverageValue:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.TargetAverageValue), \"Quantity\", \"resource.Quantity\", 1), `&`, ``, 1) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodsMetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodsMetricStatus{`,\n\t\t`MetricName:` + fmt.Sprintf(\"%v\", this.MetricName) + `,`,\n\t\t`CurrentAverageValue:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.CurrentAverageValue), \"Quantity\", \"resource.Quantity\", 1), `&`, ``, 1) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceMetricSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceMetricSource{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`TargetAverageUtilization:` + valueToStringGenerated(this.TargetAverageUtilization) + `,`,\n\t\t`TargetAverageValue:` + strings.Replace(fmt.Sprintf(\"%v\", this.TargetAverageValue), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceMetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceMetricStatus{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`CurrentAverageUtilization:` + valueToStringGenerated(this.CurrentAverageUtilization) + `,`,\n\t\t`CurrentAverageValue:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.CurrentAverageValue), \"Quantity\", \"resource.Quantity\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *ContainerResourceMetricSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerResourceMetricSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerResourceMetricSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetAverageUtilization\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.TargetAverageUtilization = &v\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetAverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.TargetAverageValue == nil {\n\t\t\t\tm.TargetAverageValue = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.TargetAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Container\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Container = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerResourceMetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerResourceMetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerResourceMetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentAverageUtilization\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.CurrentAverageUtilization = &v\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentAverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.CurrentAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Container\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Container = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CrossVersionObjectReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CrossVersionObjectReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CrossVersionObjectReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ExternalMetricSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ExternalMetricSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ExternalMetricSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MetricName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MetricName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MetricSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MetricSelector == nil {\n\t\t\t\tm.MetricSelector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.MetricSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.TargetValue == nil {\n\t\t\t\tm.TargetValue = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.TargetValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetAverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.TargetAverageValue == nil {\n\t\t\t\tm.TargetAverageValue = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.TargetAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ExternalMetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ExternalMetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ExternalMetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MetricName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MetricName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MetricSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MetricSelector == nil {\n\t\t\t\tm.MetricSelector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.MetricSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.CurrentValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentAverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.CurrentAverageValue == nil {\n\t\t\t\tm.CurrentAverageValue = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.CurrentAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscaler) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscaler: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscaler: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscalerCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = HorizontalPodAutoscalerConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscalerList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, HorizontalPodAutoscaler{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscalerSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ScaleTargetRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ScaleTargetRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MinReplicas\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.MinReplicas = &v\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxReplicas\", wireType)\n\t\t\t}\n\t\t\tm.MaxReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MaxReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Metrics\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Metrics = append(m.Metrics, MetricSpec{})\n\t\t\tif err := m.Metrics[len(m.Metrics)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscalerStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ObservedGeneration = &v\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastScaleTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.LastScaleTime == nil {\n\t\t\t\tm.LastScaleTime = &v1.Time{}\n\t\t\t}\n\t\t\tif err := m.LastScaleTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentReplicas\", wireType)\n\t\t\t}\n\t\t\tm.CurrentReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.CurrentReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DesiredReplicas\", wireType)\n\t\t\t}\n\t\t\tm.DesiredReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.DesiredReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentMetrics\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.CurrentMetrics = append(m.CurrentMetrics, MetricStatus{})\n\t\t\tif err := m.CurrentMetrics[len(m.CurrentMetrics)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, HorizontalPodAutoscalerCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MetricSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MetricSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MetricSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = MetricSourceType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Object\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Object == nil {\n\t\t\t\tm.Object = &ObjectMetricSource{}\n\t\t\t}\n\t\t\tif err := m.Object.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Pods\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Pods == nil {\n\t\t\t\tm.Pods = &PodsMetricSource{}\n\t\t\t}\n\t\t\tif err := m.Pods.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Resource == nil {\n\t\t\t\tm.Resource = &ResourceMetricSource{}\n\t\t\t}\n\t\t\tif err := m.Resource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field External\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.External == nil {\n\t\t\t\tm.External = &ExternalMetricSource{}\n\t\t\t}\n\t\t\tif err := m.External.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerResource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ContainerResource == nil {\n\t\t\t\tm.ContainerResource = &ContainerResourceMetricSource{}\n\t\t\t}\n\t\t\tif err := m.ContainerResource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = MetricSourceType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Object\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Object == nil {\n\t\t\t\tm.Object = &ObjectMetricStatus{}\n\t\t\t}\n\t\t\tif err := m.Object.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Pods\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Pods == nil {\n\t\t\t\tm.Pods = &PodsMetricStatus{}\n\t\t\t}\n\t\t\tif err := m.Pods.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Resource == nil {\n\t\t\t\tm.Resource = &ResourceMetricStatus{}\n\t\t\t}\n\t\t\tif err := m.Resource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field External\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.External == nil {\n\t\t\t\tm.External = &ExternalMetricStatus{}\n\t\t\t}\n\t\t\tif err := m.External.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerResource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ContainerResource == nil {\n\t\t\t\tm.ContainerResource = &ContainerResourceMetricStatus{}\n\t\t\t}\n\t\t\tif err := m.ContainerResource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ObjectMetricSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectMetricSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectMetricSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Target\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Target.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MetricName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MetricName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.TargetValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AverageValue == nil {\n\t\t\t\tm.AverageValue = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.AverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ObjectMetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectMetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectMetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Target\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Target.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MetricName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MetricName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.CurrentValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AverageValue == nil {\n\t\t\t\tm.AverageValue = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.AverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodsMetricSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodsMetricSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodsMetricSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MetricName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MetricName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetAverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.TargetAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodsMetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodsMetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodsMetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MetricName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MetricName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentAverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.CurrentAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceMetricSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceMetricSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceMetricSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetAverageUtilization\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.TargetAverageUtilization = &v\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetAverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.TargetAverageValue == nil {\n\t\t\t\tm.TargetAverageValue = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.TargetAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceMetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceMetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceMetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentAverageUtilization\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.CurrentAverageUtilization = &v\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentAverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.CurrentAverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2beta1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.autoscaling.v2beta1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/api/resource/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/autoscaling/v2beta1\";\n\n// ContainerResourceMetricSource indicates how to scale on a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  The values will be averaged\n// together before being compared to the target.  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.  Only one \"target\" type\n// should be set.\nmessage ContainerResourceMetricSource {\n  // name is the name of the resource in question.\n  optional string name = 1;\n\n  // targetAverageUtilization is the target value of the average of the\n  // resource metric across all relevant pods, represented as a percentage of\n  // the requested value of the resource for the pods.\n  // +optional\n  optional int32 targetAverageUtilization = 2;\n\n  // targetAverageValue is the target value of the average of the\n  // resource metric across all relevant pods, as a raw value (instead of as\n  // a percentage of the request), similar to the \"pods\" metric source type.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity targetAverageValue = 3;\n\n  // container is the name of the container in the pods of the scaling target\n  optional string container = 4;\n}\n\n// ContainerResourceMetricStatus indicates the current value of a resource metric known to\n// Kubernetes, as specified in requests and limits, describing a single container in each pod in the\n// current scale target (e.g. CPU or memory).  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.\nmessage ContainerResourceMetricStatus {\n  // name is the name of the resource in question.\n  optional string name = 1;\n\n  // currentAverageUtilization is the current value of the average of the\n  // resource metric across all relevant pods, represented as a percentage of\n  // the requested value of the resource for the pods.  It will only be\n  // present if `targetAverageValue` was set in the corresponding metric\n  // specification.\n  // +optional\n  optional int32 currentAverageUtilization = 2;\n\n  // currentAverageValue is the current value of the average of the\n  // resource metric across all relevant pods, as a raw value (instead of as\n  // a percentage of the request), similar to the \"pods\" metric source type.\n  // It will always be set, regardless of the corresponding metric specification.\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity currentAverageValue = 3;\n\n  // container is the name of the container in the pods of the scaling target\n  optional string container = 4;\n}\n\n// CrossVersionObjectReference contains enough information to let you identify the referred resource.\nmessage CrossVersionObjectReference {\n  // Kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  optional string kind = 1;\n\n  // Name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\n  optional string name = 2;\n\n  // API version of the referent\n  // +optional\n  optional string apiVersion = 3;\n}\n\n// ExternalMetricSource indicates how to scale on a metric not associated with\n// any Kubernetes object (for example length of queue in cloud\n// messaging service, or QPS from loadbalancer running outside of cluster).\n// Exactly one \"target\" type should be set.\nmessage ExternalMetricSource {\n  // metricName is the name of the metric in question.\n  optional string metricName = 1;\n\n  // metricSelector is used to identify a specific time series\n  // within a given metric.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector metricSelector = 2;\n\n  // targetValue is the target value of the metric (as a quantity).\n  // Mutually exclusive with TargetAverageValue.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity targetValue = 3;\n\n  // targetAverageValue is the target per-pod value of global metric (as a quantity).\n  // Mutually exclusive with TargetValue.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity targetAverageValue = 4;\n}\n\n// ExternalMetricStatus indicates the current value of a global metric\n// not associated with any Kubernetes object.\nmessage ExternalMetricStatus {\n  // metricName is the name of a metric used for autoscaling in\n  // metric system.\n  optional string metricName = 1;\n\n  // metricSelector is used to identify a specific time series\n  // within a given metric.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector metricSelector = 2;\n\n  // currentValue is the current value of the metric (as a quantity)\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity currentValue = 3;\n\n  // currentAverageValue is the current value of metric averaged over autoscaled pods.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity currentAverageValue = 4;\n}\n\n// HorizontalPodAutoscaler is the configuration for a horizontal pod\n// autoscaler, which automatically manages the replica count of any resource\n// implementing the scale subresource based on the metrics specified.\nmessage HorizontalPodAutoscaler {\n  // metadata is the standard object metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec is the specification for the behaviour of the autoscaler.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\n  // +optional\n  optional HorizontalPodAutoscalerSpec spec = 2;\n\n  // status is the current information about the autoscaler.\n  // +optional\n  optional HorizontalPodAutoscalerStatus status = 3;\n}\n\n// HorizontalPodAutoscalerCondition describes the state of\n// a HorizontalPodAutoscaler at a certain point.\nmessage HorizontalPodAutoscalerCondition {\n  // type describes the current condition\n  optional string type = 1;\n\n  // status is the status of the condition (True, False, Unknown)\n  optional string status = 2;\n\n  // lastTransitionTime is the last time the condition transitioned from\n  // one status to another\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // reason is the reason for the condition's last transition.\n  // +optional\n  optional string reason = 4;\n\n  // message is a human-readable explanation containing details about\n  // the transition\n  // +optional\n  optional string message = 5;\n}\n\n// HorizontalPodAutoscaler is a list of horizontal pod autoscaler objects.\nmessage HorizontalPodAutoscalerList {\n  // metadata is the standard list metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of horizontal pod autoscaler objects.\n  repeated HorizontalPodAutoscaler items = 2;\n}\n\n// HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.\nmessage HorizontalPodAutoscalerSpec {\n  // scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics\n  // should be collected, as well as to actually change the replica count.\n  optional CrossVersionObjectReference scaleTargetRef = 1;\n\n  // minReplicas is the lower limit for the number of replicas to which the autoscaler\n  // can scale down.  It defaults to 1 pod.  minReplicas is allowed to be 0 if the\n  // alpha feature gate HPAScaleToZero is enabled and at least one Object or External\n  // metric is configured.  Scaling is active as long as at least one metric value is\n  // available.\n  // +optional\n  optional int32 minReplicas = 2;\n\n  // maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up.\n  // It cannot be less that minReplicas.\n  optional int32 maxReplicas = 3;\n\n  // metrics contains the specifications for which to use to calculate the\n  // desired replica count (the maximum replica count across all metrics will\n  // be used).  The desired replica count is calculated multiplying the\n  // ratio between the target value and the current value by the current\n  // number of pods.  Ergo, metrics used must decrease as the pod count is\n  // increased, and vice-versa.  See the individual metric source types for\n  // more information about how each type of metric must respond.\n  // +optional\n  // +listType=atomic\n  repeated MetricSpec metrics = 4;\n}\n\n// HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.\nmessage HorizontalPodAutoscalerStatus {\n  // observedGeneration is the most recent generation observed by this autoscaler.\n  // +optional\n  optional int64 observedGeneration = 1;\n\n  // lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods,\n  // used by the autoscaler to control how often the number of pods is changed.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastScaleTime = 2;\n\n  // currentReplicas is current number of replicas of pods managed by this autoscaler,\n  // as last seen by the autoscaler.\n  optional int32 currentReplicas = 3;\n\n  // desiredReplicas is the desired number of replicas of pods managed by this autoscaler,\n  // as last calculated by the autoscaler.\n  optional int32 desiredReplicas = 4;\n\n  // currentMetrics is the last read state of the metrics used by this autoscaler.\n  // +optional\n  // +listType=atomic\n  repeated MetricStatus currentMetrics = 5;\n\n  // conditions is the set of conditions required for this autoscaler to scale its target,\n  // and indicates whether or not those conditions are met.\n  // +optional\n  // +listType=atomic\n  repeated HorizontalPodAutoscalerCondition conditions = 6;\n}\n\n// MetricSpec specifies how to scale based on a single metric\n// (only `type` and one other matching field should be set at once).\nmessage MetricSpec {\n  // type is the type of metric source.  It should be one of \"ContainerResource\",\n  // \"External\", \"Object\", \"Pods\" or \"Resource\", each mapping to a matching field in the object.\n  optional string type = 1;\n\n  // object refers to a metric describing a single kubernetes object\n  // (for example, hits-per-second on an Ingress object).\n  // +optional\n  optional ObjectMetricSource object = 2;\n\n  // pods refers to a metric describing each pod in the current scale target\n  // (for example, transactions-processed-per-second).  The values will be\n  // averaged together before being compared to the target value.\n  // +optional\n  optional PodsMetricSource pods = 3;\n\n  // resource refers to a resource metric (such as those specified in\n  // requests and limits) known to Kubernetes describing each pod in the\n  // current scale target (e.g. CPU or memory). Such metrics are built in to\n  // Kubernetes, and have special scaling options on top of those available\n  // to normal per-pod metrics using the \"pods\" source.\n  // +optional\n  optional ResourceMetricSource resource = 4;\n\n  // container resource refers to a resource metric (such as those specified in\n  // requests and limits) known to Kubernetes describing a single container in\n  // each pod of the current scale target (e.g. CPU or memory). Such metrics are\n  // built in to Kubernetes, and have special scaling options on top of those\n  // available to normal per-pod metrics using the \"pods\" source.\n  // +optional\n  optional ContainerResourceMetricSource containerResource = 7;\n\n  // external refers to a global metric that is not associated\n  // with any Kubernetes object. It allows autoscaling based on information\n  // coming from components running outside of cluster\n  // (for example length of queue in cloud messaging service, or\n  // QPS from loadbalancer running outside of cluster).\n  // +optional\n  optional ExternalMetricSource external = 5;\n}\n\n// MetricStatus describes the last-read state of a single metric.\nmessage MetricStatus {\n  // type is the type of metric source.  It will be one of \"ContainerResource\",\n  // \"External\", \"Object\", \"Pods\" or \"Resource\", each corresponds to a matching field in the object.\n  optional string type = 1;\n\n  // object refers to a metric describing a single kubernetes object\n  // (for example, hits-per-second on an Ingress object).\n  // +optional\n  optional ObjectMetricStatus object = 2;\n\n  // pods refers to a metric describing each pod in the current scale target\n  // (for example, transactions-processed-per-second).  The values will be\n  // averaged together before being compared to the target value.\n  // +optional\n  optional PodsMetricStatus pods = 3;\n\n  // resource refers to a resource metric (such as those specified in\n  // requests and limits) known to Kubernetes describing each pod in the\n  // current scale target (e.g. CPU or memory). Such metrics are built in to\n  // Kubernetes, and have special scaling options on top of those available\n  // to normal per-pod metrics using the \"pods\" source.\n  // +optional\n  optional ResourceMetricStatus resource = 4;\n\n  // container resource refers to a resource metric (such as those specified in\n  // requests and limits) known to Kubernetes describing a single container in each pod in the\n  // current scale target (e.g. CPU or memory). Such metrics are built in to\n  // Kubernetes, and have special scaling options on top of those available\n  // to normal per-pod metrics using the \"pods\" source.\n  // +optional\n  optional ContainerResourceMetricStatus containerResource = 7;\n\n  // external refers to a global metric that is not associated\n  // with any Kubernetes object. It allows autoscaling based on information\n  // coming from components running outside of cluster\n  // (for example length of queue in cloud messaging service, or\n  // QPS from loadbalancer running outside of cluster).\n  // +optional\n  optional ExternalMetricStatus external = 5;\n}\n\n// ObjectMetricSource indicates how to scale on a metric describing a\n// kubernetes object (for example, hits-per-second on an Ingress object).\nmessage ObjectMetricSource {\n  // target is the described Kubernetes object.\n  optional CrossVersionObjectReference target = 1;\n\n  // metricName is the name of the metric in question.\n  optional string metricName = 2;\n\n  // targetValue is the target value of the metric (as a quantity).\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity targetValue = 3;\n\n  // selector is the string-encoded form of a standard kubernetes label selector for the given metric\n  // When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping\n  // When unset, just the metricName will be used to gather metrics.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 4;\n\n  // averageValue is the target value of the average of the\n  // metric across all relevant pods (as a quantity)\n  // +optional\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity averageValue = 5;\n}\n\n// ObjectMetricStatus indicates the current value of a metric describing a\n// kubernetes object (for example, hits-per-second on an Ingress object).\nmessage ObjectMetricStatus {\n  // target is the described Kubernetes object.\n  optional CrossVersionObjectReference target = 1;\n\n  // metricName is the name of the metric in question.\n  optional string metricName = 2;\n\n  // currentValue is the current value of the metric (as a quantity).\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity currentValue = 3;\n\n  // selector is the string-encoded form of a standard kubernetes label selector for the given metric\n  // When set in the ObjectMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping.\n  // When unset, just the metricName will be used to gather metrics.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 4;\n\n  // averageValue is the current value of the average of the\n  // metric across all relevant pods (as a quantity)\n  // +optional\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity averageValue = 5;\n}\n\n// PodsMetricSource indicates how to scale on a metric describing each pod in\n// the current scale target (for example, transactions-processed-per-second).\n// The values will be averaged together before being compared to the target\n// value.\nmessage PodsMetricSource {\n  // metricName is the name of the metric in question\n  optional string metricName = 1;\n\n  // targetAverageValue is the target value of the average of the\n  // metric across all relevant pods (as a quantity)\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity targetAverageValue = 2;\n\n  // selector is the string-encoded form of a standard kubernetes label selector for the given metric\n  // When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping\n  // When unset, just the metricName will be used to gather metrics.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 3;\n}\n\n// PodsMetricStatus indicates the current value of a metric describing each pod in\n// the current scale target (for example, transactions-processed-per-second).\nmessage PodsMetricStatus {\n  // metricName is the name of the metric in question\n  optional string metricName = 1;\n\n  // currentAverageValue is the current value of the average of the\n  // metric across all relevant pods (as a quantity)\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity currentAverageValue = 2;\n\n  // selector is the string-encoded form of a standard kubernetes label selector for the given metric\n  // When set in the PodsMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping.\n  // When unset, just the metricName will be used to gather metrics.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 3;\n}\n\n// ResourceMetricSource indicates how to scale on a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  The values will be averaged\n// together before being compared to the target.  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.  Only one \"target\" type\n// should be set.\nmessage ResourceMetricSource {\n  // name is the name of the resource in question.\n  optional string name = 1;\n\n  // targetAverageUtilization is the target value of the average of the\n  // resource metric across all relevant pods, represented as a percentage of\n  // the requested value of the resource for the pods.\n  // +optional\n  optional int32 targetAverageUtilization = 2;\n\n  // targetAverageValue is the target value of the average of the\n  // resource metric across all relevant pods, as a raw value (instead of as\n  // a percentage of the request), similar to the \"pods\" metric source type.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity targetAverageValue = 3;\n}\n\n// ResourceMetricStatus indicates the current value of a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.\nmessage ResourceMetricStatus {\n  // name is the name of the resource in question.\n  optional string name = 1;\n\n  // currentAverageUtilization is the current value of the average of the\n  // resource metric across all relevant pods, represented as a percentage of\n  // the requested value of the resource for the pods.  It will only be\n  // present if `targetAverageValue` was set in the corresponding metric\n  // specification.\n  // +optional\n  optional int32 currentAverageUtilization = 2;\n\n  // currentAverageValue is the current value of the average of the\n  // resource metric across all relevant pods, as a raw value (instead of as\n  // a percentage of the request), similar to the \"pods\" metric source type.\n  // It will always be set, regardless of the corresponding metric specification.\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity currentAverageValue = 3;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2beta1/register.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v2beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"autoscaling\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v2beta1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&HorizontalPodAutoscaler{},\n\t\t&HorizontalPodAutoscalerList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2beta1/types.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v2beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\t\"k8s.io/apimachinery/pkg/api/resource\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// CrossVersionObjectReference contains enough information to let you identify the referred resource.\ntype CrossVersionObjectReference struct {\n\t// Kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\tKind string `json:\"kind\" protobuf:\"bytes,1,opt,name=kind\"`\n\t// Name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\n\tName string `json:\"name\" protobuf:\"bytes,2,opt,name=name\"`\n\t// API version of the referent\n\t// +optional\n\tAPIVersion string `json:\"apiVersion,omitempty\" protobuf:\"bytes,3,opt,name=apiVersion\"`\n}\n\n// HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.\ntype HorizontalPodAutoscalerSpec struct {\n\t// scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics\n\t// should be collected, as well as to actually change the replica count.\n\tScaleTargetRef CrossVersionObjectReference `json:\"scaleTargetRef\" protobuf:\"bytes,1,opt,name=scaleTargetRef\"`\n\t// minReplicas is the lower limit for the number of replicas to which the autoscaler\n\t// can scale down.  It defaults to 1 pod.  minReplicas is allowed to be 0 if the\n\t// alpha feature gate HPAScaleToZero is enabled and at least one Object or External\n\t// metric is configured.  Scaling is active as long as at least one metric value is\n\t// available.\n\t// +optional\n\tMinReplicas *int32 `json:\"minReplicas,omitempty\" protobuf:\"varint,2,opt,name=minReplicas\"`\n\t// maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up.\n\t// It cannot be less that minReplicas.\n\tMaxReplicas int32 `json:\"maxReplicas\" protobuf:\"varint,3,opt,name=maxReplicas\"`\n\t// metrics contains the specifications for which to use to calculate the\n\t// desired replica count (the maximum replica count across all metrics will\n\t// be used).  The desired replica count is calculated multiplying the\n\t// ratio between the target value and the current value by the current\n\t// number of pods.  Ergo, metrics used must decrease as the pod count is\n\t// increased, and vice-versa.  See the individual metric source types for\n\t// more information about how each type of metric must respond.\n\t// +optional\n\t// +listType=atomic\n\tMetrics []MetricSpec `json:\"metrics,omitempty\" protobuf:\"bytes,4,rep,name=metrics\"`\n}\n\n// MetricSourceType indicates the type of metric.\ntype MetricSourceType string\n\nconst (\n\t// ObjectMetricSourceType is a metric describing a kubernetes object\n\t// (for example, hits-per-second on an Ingress object).\n\tObjectMetricSourceType MetricSourceType = \"Object\"\n\t// PodsMetricSourceType is a metric describing each pod in the current scale\n\t// target (for example, transactions-processed-per-second).  The values\n\t// will be averaged together before being compared to the target value.\n\tPodsMetricSourceType MetricSourceType = \"Pods\"\n\t// ResourceMetricSourceType is a resource metric known to Kubernetes, as\n\t// specified in requests and limits, describing each pod in the current\n\t// scale target (e.g. CPU or memory).  Such metrics are built in to\n\t// Kubernetes, and have special scaling options on top of those available\n\t// to normal per-pod metrics (the \"pods\" source).\n\tResourceMetricSourceType MetricSourceType = \"Resource\"\n\t// ContainerResourceMetricSourceType is a resource metric known to Kubernetes, as\n\t// specified in requests and limits, describing a single container in each pod in the current\n\t// scale target (e.g. CPU or memory).  Such metrics are built in to\n\t// Kubernetes, and have special scaling options on top of those available\n\t// to normal per-pod metrics (the \"pods\" source).\n\tContainerResourceMetricSourceType MetricSourceType = \"ContainerResource\"\n\t// ExternalMetricSourceType is a global metric that is not associated\n\t// with any Kubernetes object. It allows autoscaling based on information\n\t// coming from components running outside of cluster\n\t// (for example length of queue in cloud messaging service, or\n\t// QPS from loadbalancer running outside of cluster).\n\tExternalMetricSourceType MetricSourceType = \"External\"\n)\n\n// MetricSpec specifies how to scale based on a single metric\n// (only `type` and one other matching field should be set at once).\ntype MetricSpec struct {\n\t// type is the type of metric source.  It should be one of \"ContainerResource\",\n\t// \"External\", \"Object\", \"Pods\" or \"Resource\", each mapping to a matching field in the object.\n\tType MetricSourceType `json:\"type\" protobuf:\"bytes,1,name=type\"`\n\n\t// object refers to a metric describing a single kubernetes object\n\t// (for example, hits-per-second on an Ingress object).\n\t// +optional\n\tObject *ObjectMetricSource `json:\"object,omitempty\" protobuf:\"bytes,2,opt,name=object\"`\n\t// pods refers to a metric describing each pod in the current scale target\n\t// (for example, transactions-processed-per-second).  The values will be\n\t// averaged together before being compared to the target value.\n\t// +optional\n\tPods *PodsMetricSource `json:\"pods,omitempty\" protobuf:\"bytes,3,opt,name=pods\"`\n\t// resource refers to a resource metric (such as those specified in\n\t// requests and limits) known to Kubernetes describing each pod in the\n\t// current scale target (e.g. CPU or memory). Such metrics are built in to\n\t// Kubernetes, and have special scaling options on top of those available\n\t// to normal per-pod metrics using the \"pods\" source.\n\t// +optional\n\tResource *ResourceMetricSource `json:\"resource,omitempty\" protobuf:\"bytes,4,opt,name=resource\"`\n\t// container resource refers to a resource metric (such as those specified in\n\t// requests and limits) known to Kubernetes describing a single container in\n\t// each pod of the current scale target (e.g. CPU or memory). Such metrics are\n\t// built in to Kubernetes, and have special scaling options on top of those\n\t// available to normal per-pod metrics using the \"pods\" source.\n\t// +optional\n\tContainerResource *ContainerResourceMetricSource `json:\"containerResource,omitempty\" protobuf:\"bytes,7,opt,name=containerResource\"`\n\t// external refers to a global metric that is not associated\n\t// with any Kubernetes object. It allows autoscaling based on information\n\t// coming from components running outside of cluster\n\t// (for example length of queue in cloud messaging service, or\n\t// QPS from loadbalancer running outside of cluster).\n\t// +optional\n\tExternal *ExternalMetricSource `json:\"external,omitempty\" protobuf:\"bytes,5,opt,name=external\"`\n}\n\n// ObjectMetricSource indicates how to scale on a metric describing a\n// kubernetes object (for example, hits-per-second on an Ingress object).\ntype ObjectMetricSource struct {\n\t// target is the described Kubernetes object.\n\tTarget CrossVersionObjectReference `json:\"target\" protobuf:\"bytes,1,name=target\"`\n\n\t// metricName is the name of the metric in question.\n\tMetricName string `json:\"metricName\" protobuf:\"bytes,2,name=metricName\"`\n\t// targetValue is the target value of the metric (as a quantity).\n\tTargetValue resource.Quantity `json:\"targetValue\" protobuf:\"bytes,3,name=targetValue\"`\n\n\t// selector is the string-encoded form of a standard kubernetes label selector for the given metric\n\t// When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping\n\t// When unset, just the metricName will be used to gather metrics.\n\t// +optional\n\tSelector *metav1.LabelSelector `json:\"selector,omitempty\" protobuf:\"bytes,4,name=selector\"`\n\t// averageValue is the target value of the average of the\n\t// metric across all relevant pods (as a quantity)\n\t// +optional\n\tAverageValue *resource.Quantity `json:\"averageValue,omitempty\" protobuf:\"bytes,5,name=averageValue\"`\n}\n\n// PodsMetricSource indicates how to scale on a metric describing each pod in\n// the current scale target (for example, transactions-processed-per-second).\n// The values will be averaged together before being compared to the target\n// value.\ntype PodsMetricSource struct {\n\t// metricName is the name of the metric in question\n\tMetricName string `json:\"metricName\" protobuf:\"bytes,1,name=metricName\"`\n\t// targetAverageValue is the target value of the average of the\n\t// metric across all relevant pods (as a quantity)\n\tTargetAverageValue resource.Quantity `json:\"targetAverageValue\" protobuf:\"bytes,2,name=targetAverageValue\"`\n\n\t// selector is the string-encoded form of a standard kubernetes label selector for the given metric\n\t// When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping\n\t// When unset, just the metricName will be used to gather metrics.\n\t// +optional\n\tSelector *metav1.LabelSelector `json:\"selector,omitempty\" protobuf:\"bytes,3,name=selector\"`\n}\n\n// ResourceMetricSource indicates how to scale on a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  The values will be averaged\n// together before being compared to the target.  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.  Only one \"target\" type\n// should be set.\ntype ResourceMetricSource struct {\n\t// name is the name of the resource in question.\n\tName v1.ResourceName `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\t// targetAverageUtilization is the target value of the average of the\n\t// resource metric across all relevant pods, represented as a percentage of\n\t// the requested value of the resource for the pods.\n\t// +optional\n\tTargetAverageUtilization *int32 `json:\"targetAverageUtilization,omitempty\" protobuf:\"varint,2,opt,name=targetAverageUtilization\"`\n\t// targetAverageValue is the target value of the average of the\n\t// resource metric across all relevant pods, as a raw value (instead of as\n\t// a percentage of the request), similar to the \"pods\" metric source type.\n\t// +optional\n\tTargetAverageValue *resource.Quantity `json:\"targetAverageValue,omitempty\" protobuf:\"bytes,3,opt,name=targetAverageValue\"`\n}\n\n// ContainerResourceMetricSource indicates how to scale on a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  The values will be averaged\n// together before being compared to the target.  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.  Only one \"target\" type\n// should be set.\ntype ContainerResourceMetricSource struct {\n\t// name is the name of the resource in question.\n\tName v1.ResourceName `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\t// targetAverageUtilization is the target value of the average of the\n\t// resource metric across all relevant pods, represented as a percentage of\n\t// the requested value of the resource for the pods.\n\t// +optional\n\tTargetAverageUtilization *int32 `json:\"targetAverageUtilization,omitempty\" protobuf:\"varint,2,opt,name=targetAverageUtilization\"`\n\t// targetAverageValue is the target value of the average of the\n\t// resource metric across all relevant pods, as a raw value (instead of as\n\t// a percentage of the request), similar to the \"pods\" metric source type.\n\t// +optional\n\tTargetAverageValue *resource.Quantity `json:\"targetAverageValue,omitempty\" protobuf:\"bytes,3,opt,name=targetAverageValue\"`\n\t// container is the name of the container in the pods of the scaling target\n\tContainer string `json:\"container\" protobuf:\"bytes,4,opt,name=container\"`\n}\n\n// ExternalMetricSource indicates how to scale on a metric not associated with\n// any Kubernetes object (for example length of queue in cloud\n// messaging service, or QPS from loadbalancer running outside of cluster).\n// Exactly one \"target\" type should be set.\ntype ExternalMetricSource struct {\n\t// metricName is the name of the metric in question.\n\tMetricName string `json:\"metricName\" protobuf:\"bytes,1,name=metricName\"`\n\t// metricSelector is used to identify a specific time series\n\t// within a given metric.\n\t// +optional\n\tMetricSelector *metav1.LabelSelector `json:\"metricSelector,omitempty\" protobuf:\"bytes,2,opt,name=metricSelector\"`\n\t// targetValue is the target value of the metric (as a quantity).\n\t// Mutually exclusive with TargetAverageValue.\n\t// +optional\n\tTargetValue *resource.Quantity `json:\"targetValue,omitempty\" protobuf:\"bytes,3,opt,name=targetValue\"`\n\t// targetAverageValue is the target per-pod value of global metric (as a quantity).\n\t// Mutually exclusive with TargetValue.\n\t// +optional\n\tTargetAverageValue *resource.Quantity `json:\"targetAverageValue,omitempty\" protobuf:\"bytes,4,opt,name=targetAverageValue\"`\n}\n\n// HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.\ntype HorizontalPodAutoscalerStatus struct {\n\t// observedGeneration is the most recent generation observed by this autoscaler.\n\t// +optional\n\tObservedGeneration *int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,1,opt,name=observedGeneration\"`\n\n\t// lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods,\n\t// used by the autoscaler to control how often the number of pods is changed.\n\t// +optional\n\tLastScaleTime *metav1.Time `json:\"lastScaleTime,omitempty\" protobuf:\"bytes,2,opt,name=lastScaleTime\"`\n\n\t// currentReplicas is current number of replicas of pods managed by this autoscaler,\n\t// as last seen by the autoscaler.\n\tCurrentReplicas int32 `json:\"currentReplicas\" protobuf:\"varint,3,opt,name=currentReplicas\"`\n\n\t// desiredReplicas is the desired number of replicas of pods managed by this autoscaler,\n\t// as last calculated by the autoscaler.\n\tDesiredReplicas int32 `json:\"desiredReplicas\" protobuf:\"varint,4,opt,name=desiredReplicas\"`\n\n\t// currentMetrics is the last read state of the metrics used by this autoscaler.\n\t// +optional\n\t// +listType=atomic\n\tCurrentMetrics []MetricStatus `json:\"currentMetrics\" protobuf:\"bytes,5,rep,name=currentMetrics\"`\n\n\t// conditions is the set of conditions required for this autoscaler to scale its target,\n\t// and indicates whether or not those conditions are met.\n\t// +optional\n\t// +listType=atomic\n\tConditions []HorizontalPodAutoscalerCondition `json:\"conditions\" protobuf:\"bytes,6,rep,name=conditions\"`\n}\n\n// HorizontalPodAutoscalerConditionType are the valid conditions of\n// a HorizontalPodAutoscaler.\ntype HorizontalPodAutoscalerConditionType string\n\nconst (\n\t// ScalingActive indicates that the HPA controller is able to scale if necessary:\n\t// it's correctly configured, can fetch the desired metrics, and isn't disabled.\n\tScalingActive HorizontalPodAutoscalerConditionType = \"ScalingActive\"\n\t// AbleToScale indicates a lack of transient issues which prevent scaling from occurring,\n\t// such as being in a backoff window, or being unable to access/update the target scale.\n\tAbleToScale HorizontalPodAutoscalerConditionType = \"AbleToScale\"\n\t// ScalingLimited indicates that the calculated scale based on metrics would be above or\n\t// below the range for the HPA, and has thus been capped.\n\tScalingLimited HorizontalPodAutoscalerConditionType = \"ScalingLimited\"\n)\n\n// HorizontalPodAutoscalerCondition describes the state of\n// a HorizontalPodAutoscaler at a certain point.\ntype HorizontalPodAutoscalerCondition struct {\n\t// type describes the current condition\n\tType HorizontalPodAutoscalerConditionType `json:\"type\" protobuf:\"bytes,1,name=type\"`\n\t// status is the status of the condition (True, False, Unknown)\n\tStatus v1.ConditionStatus `json:\"status\" protobuf:\"bytes,2,name=status\"`\n\t// lastTransitionTime is the last time the condition transitioned from\n\t// one status to another\n\t// +optional\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\t// reason is the reason for the condition's last transition.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// message is a human-readable explanation containing details about\n\t// the transition\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// MetricStatus describes the last-read state of a single metric.\ntype MetricStatus struct {\n\t// type is the type of metric source.  It will be one of \"ContainerResource\",\n\t// \"External\", \"Object\", \"Pods\" or \"Resource\", each corresponds to a matching field in the object.\n\tType MetricSourceType `json:\"type\" protobuf:\"bytes,1,name=type\"`\n\n\t// object refers to a metric describing a single kubernetes object\n\t// (for example, hits-per-second on an Ingress object).\n\t// +optional\n\tObject *ObjectMetricStatus `json:\"object,omitempty\" protobuf:\"bytes,2,opt,name=object\"`\n\t// pods refers to a metric describing each pod in the current scale target\n\t// (for example, transactions-processed-per-second).  The values will be\n\t// averaged together before being compared to the target value.\n\t// +optional\n\tPods *PodsMetricStatus `json:\"pods,omitempty\" protobuf:\"bytes,3,opt,name=pods\"`\n\t// resource refers to a resource metric (such as those specified in\n\t// requests and limits) known to Kubernetes describing each pod in the\n\t// current scale target (e.g. CPU or memory). Such metrics are built in to\n\t// Kubernetes, and have special scaling options on top of those available\n\t// to normal per-pod metrics using the \"pods\" source.\n\t// +optional\n\tResource *ResourceMetricStatus `json:\"resource,omitempty\" protobuf:\"bytes,4,opt,name=resource\"`\n\t// container resource refers to a resource metric (such as those specified in\n\t// requests and limits) known to Kubernetes describing a single container in each pod in the\n\t// current scale target (e.g. CPU or memory). Such metrics are built in to\n\t// Kubernetes, and have special scaling options on top of those available\n\t// to normal per-pod metrics using the \"pods\" source.\n\t// +optional\n\tContainerResource *ContainerResourceMetricStatus `json:\"containerResource,omitempty\" protobuf:\"bytes,7,opt,name=containerResource\"`\n\t// external refers to a global metric that is not associated\n\t// with any Kubernetes object. It allows autoscaling based on information\n\t// coming from components running outside of cluster\n\t// (for example length of queue in cloud messaging service, or\n\t// QPS from loadbalancer running outside of cluster).\n\t// +optional\n\tExternal *ExternalMetricStatus `json:\"external,omitempty\" protobuf:\"bytes,5,opt,name=external\"`\n}\n\n// ObjectMetricStatus indicates the current value of a metric describing a\n// kubernetes object (for example, hits-per-second on an Ingress object).\ntype ObjectMetricStatus struct {\n\t// target is the described Kubernetes object.\n\tTarget CrossVersionObjectReference `json:\"target\" protobuf:\"bytes,1,name=target\"`\n\n\t// metricName is the name of the metric in question.\n\tMetricName string `json:\"metricName\" protobuf:\"bytes,2,name=metricName\"`\n\t// currentValue is the current value of the metric (as a quantity).\n\tCurrentValue resource.Quantity `json:\"currentValue\" protobuf:\"bytes,3,name=currentValue\"`\n\n\t// selector is the string-encoded form of a standard kubernetes label selector for the given metric\n\t// When set in the ObjectMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping.\n\t// When unset, just the metricName will be used to gather metrics.\n\t// +optional\n\tSelector *metav1.LabelSelector `json:\"selector,omitempty\" protobuf:\"bytes,4,name=selector\"`\n\t// averageValue is the current value of the average of the\n\t// metric across all relevant pods (as a quantity)\n\t// +optional\n\tAverageValue *resource.Quantity `json:\"averageValue,omitempty\" protobuf:\"bytes,5,name=averageValue\"`\n}\n\n// PodsMetricStatus indicates the current value of a metric describing each pod in\n// the current scale target (for example, transactions-processed-per-second).\ntype PodsMetricStatus struct {\n\t// metricName is the name of the metric in question\n\tMetricName string `json:\"metricName\" protobuf:\"bytes,1,name=metricName\"`\n\t// currentAverageValue is the current value of the average of the\n\t// metric across all relevant pods (as a quantity)\n\tCurrentAverageValue resource.Quantity `json:\"currentAverageValue\" protobuf:\"bytes,2,name=currentAverageValue\"`\n\n\t// selector is the string-encoded form of a standard kubernetes label selector for the given metric\n\t// When set in the PodsMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping.\n\t// When unset, just the metricName will be used to gather metrics.\n\t// +optional\n\tSelector *metav1.LabelSelector `json:\"selector,omitempty\" protobuf:\"bytes,3,name=selector\"`\n}\n\n// ResourceMetricStatus indicates the current value of a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.\ntype ResourceMetricStatus struct {\n\t// name is the name of the resource in question.\n\tName v1.ResourceName `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\t// currentAverageUtilization is the current value of the average of the\n\t// resource metric across all relevant pods, represented as a percentage of\n\t// the requested value of the resource for the pods.  It will only be\n\t// present if `targetAverageValue` was set in the corresponding metric\n\t// specification.\n\t// +optional\n\tCurrentAverageUtilization *int32 `json:\"currentAverageUtilization,omitempty\" protobuf:\"bytes,2,opt,name=currentAverageUtilization\"`\n\t// currentAverageValue is the current value of the average of the\n\t// resource metric across all relevant pods, as a raw value (instead of as\n\t// a percentage of the request), similar to the \"pods\" metric source type.\n\t// It will always be set, regardless of the corresponding metric specification.\n\tCurrentAverageValue resource.Quantity `json:\"currentAverageValue\" protobuf:\"bytes,3,name=currentAverageValue\"`\n}\n\n// ContainerResourceMetricStatus indicates the current value of a resource metric known to\n// Kubernetes, as specified in requests and limits, describing a single container in each pod in the\n// current scale target (e.g. CPU or memory).  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.\ntype ContainerResourceMetricStatus struct {\n\t// name is the name of the resource in question.\n\tName v1.ResourceName `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\t// currentAverageUtilization is the current value of the average of the\n\t// resource metric across all relevant pods, represented as a percentage of\n\t// the requested value of the resource for the pods.  It will only be\n\t// present if `targetAverageValue` was set in the corresponding metric\n\t// specification.\n\t// +optional\n\tCurrentAverageUtilization *int32 `json:\"currentAverageUtilization,omitempty\" protobuf:\"bytes,2,opt,name=currentAverageUtilization\"`\n\t// currentAverageValue is the current value of the average of the\n\t// resource metric across all relevant pods, as a raw value (instead of as\n\t// a percentage of the request), similar to the \"pods\" metric source type.\n\t// It will always be set, regardless of the corresponding metric specification.\n\tCurrentAverageValue resource.Quantity `json:\"currentAverageValue\" protobuf:\"bytes,3,name=currentAverageValue\"`\n\t// container is the name of the container in the pods of the scaling target\n\tContainer string `json:\"container\" protobuf:\"bytes,4,opt,name=container\"`\n}\n\n// ExternalMetricStatus indicates the current value of a global metric\n// not associated with any Kubernetes object.\ntype ExternalMetricStatus struct {\n\t// metricName is the name of a metric used for autoscaling in\n\t// metric system.\n\tMetricName string `json:\"metricName\" protobuf:\"bytes,1,name=metricName\"`\n\t// metricSelector is used to identify a specific time series\n\t// within a given metric.\n\t// +optional\n\tMetricSelector *metav1.LabelSelector `json:\"metricSelector,omitempty\" protobuf:\"bytes,2,opt,name=metricSelector\"`\n\t// currentValue is the current value of the metric (as a quantity)\n\tCurrentValue resource.Quantity `json:\"currentValue\" protobuf:\"bytes,3,name=currentValue\"`\n\t// currentAverageValue is the current value of metric averaged over autoscaled pods.\n\t// +optional\n\tCurrentAverageValue *resource.Quantity `json:\"currentAverageValue,omitempty\" protobuf:\"bytes,4,opt,name=currentAverageValue\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n// +k8s:prerelease-lifecycle-gen:deprecated=1.22\n// +k8s:prerelease-lifecycle-gen:replacement=autoscaling,v2,HorizontalPodAutoscaler\n\n// HorizontalPodAutoscaler is the configuration for a horizontal pod\n// autoscaler, which automatically manages the replica count of any resource\n// implementing the scale subresource based on the metrics specified.\ntype HorizontalPodAutoscaler struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// metadata is the standard object metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec is the specification for the behaviour of the autoscaler.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\n\t// +optional\n\tSpec HorizontalPodAutoscalerSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// status is the current information about the autoscaler.\n\t// +optional\n\tStatus HorizontalPodAutoscalerStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n// +k8s:prerelease-lifecycle-gen:deprecated=1.22\n// +k8s:prerelease-lifecycle-gen:replacement=autoscaling,v2beta2,HorizontalPodAutoscalerList\n\n// HorizontalPodAutoscaler is a list of horizontal pod autoscaler objects.\ntype HorizontalPodAutoscalerList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// metadata is the standard list metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of horizontal pod autoscaler objects.\n\tItems []HorizontalPodAutoscaler `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2beta1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v2beta1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_ContainerResourceMetricSource = map[string]string{\n\t\"\":                         \"ContainerResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory).  The values will be averaged together before being compared to the target.  Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.  Only one \\\"target\\\" type should be set.\",\n\t\"name\":                     \"name is the name of the resource in question.\",\n\t\"targetAverageUtilization\": \"targetAverageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.\",\n\t\"targetAverageValue\":       \"targetAverageValue is the target value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the \\\"pods\\\" metric source type.\",\n\t\"container\":                \"container is the name of the container in the pods of the scaling target\",\n}\n\nfunc (ContainerResourceMetricSource) SwaggerDoc() map[string]string {\n\treturn map_ContainerResourceMetricSource\n}\n\nvar map_ContainerResourceMetricStatus = map[string]string{\n\t\"\":                          \"ContainerResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing a single container in each pod in the current scale target (e.g. CPU or memory).  Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"name\":                      \"name is the name of the resource in question.\",\n\t\"currentAverageUtilization\": \"currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.  It will only be present if `targetAverageValue` was set in the corresponding metric specification.\",\n\t\"currentAverageValue\":       \"currentAverageValue is the current value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the \\\"pods\\\" metric source type. It will always be set, regardless of the corresponding metric specification.\",\n\t\"container\":                 \"container is the name of the container in the pods of the scaling target\",\n}\n\nfunc (ContainerResourceMetricStatus) SwaggerDoc() map[string]string {\n\treturn map_ContainerResourceMetricStatus\n}\n\nvar map_CrossVersionObjectReference = map[string]string{\n\t\"\":           \"CrossVersionObjectReference contains enough information to let you identify the referred resource.\",\n\t\"kind\":       \"Kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"name\":       \"Name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n\t\"apiVersion\": \"API version of the referent\",\n}\n\nfunc (CrossVersionObjectReference) SwaggerDoc() map[string]string {\n\treturn map_CrossVersionObjectReference\n}\n\nvar map_ExternalMetricSource = map[string]string{\n\t\"\":                   \"ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster). Exactly one \\\"target\\\" type should be set.\",\n\t\"metricName\":         \"metricName is the name of the metric in question.\",\n\t\"metricSelector\":     \"metricSelector is used to identify a specific time series within a given metric.\",\n\t\"targetValue\":        \"targetValue is the target value of the metric (as a quantity). Mutually exclusive with TargetAverageValue.\",\n\t\"targetAverageValue\": \"targetAverageValue is the target per-pod value of global metric (as a quantity). Mutually exclusive with TargetValue.\",\n}\n\nfunc (ExternalMetricSource) SwaggerDoc() map[string]string {\n\treturn map_ExternalMetricSource\n}\n\nvar map_ExternalMetricStatus = map[string]string{\n\t\"\":                    \"ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.\",\n\t\"metricName\":          \"metricName is the name of a metric used for autoscaling in metric system.\",\n\t\"metricSelector\":      \"metricSelector is used to identify a specific time series within a given metric.\",\n\t\"currentValue\":        \"currentValue is the current value of the metric (as a quantity)\",\n\t\"currentAverageValue\": \"currentAverageValue is the current value of metric averaged over autoscaled pods.\",\n}\n\nfunc (ExternalMetricStatus) SwaggerDoc() map[string]string {\n\treturn map_ExternalMetricStatus\n}\n\nvar map_HorizontalPodAutoscaler = map[string]string{\n\t\"\":         \"HorizontalPodAutoscaler is the configuration for a horizontal pod autoscaler, which automatically manages the replica count of any resource implementing the scale subresource based on the metrics specified.\",\n\t\"metadata\": \"metadata is the standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec is the specification for the behaviour of the autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\",\n\t\"status\":   \"status is the current information about the autoscaler.\",\n}\n\nfunc (HorizontalPodAutoscaler) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscaler\n}\n\nvar map_HorizontalPodAutoscalerCondition = map[string]string{\n\t\"\":                   \"HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point.\",\n\t\"type\":               \"type describes the current condition\",\n\t\"status\":             \"status is the status of the condition (True, False, Unknown)\",\n\t\"lastTransitionTime\": \"lastTransitionTime is the last time the condition transitioned from one status to another\",\n\t\"reason\":             \"reason is the reason for the condition's last transition.\",\n\t\"message\":            \"message is a human-readable explanation containing details about the transition\",\n}\n\nfunc (HorizontalPodAutoscalerCondition) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscalerCondition\n}\n\nvar map_HorizontalPodAutoscalerList = map[string]string{\n\t\"\":         \"HorizontalPodAutoscaler is a list of horizontal pod autoscaler objects.\",\n\t\"metadata\": \"metadata is the standard list metadata.\",\n\t\"items\":    \"items is the list of horizontal pod autoscaler objects.\",\n}\n\nfunc (HorizontalPodAutoscalerList) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscalerList\n}\n\nvar map_HorizontalPodAutoscalerSpec = map[string]string{\n\t\"\":               \"HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.\",\n\t\"scaleTargetRef\": \"scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics should be collected, as well as to actually change the replica count.\",\n\t\"minReplicas\":    \"minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down.  It defaults to 1 pod.  minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured.  Scaling is active as long as at least one metric value is available.\",\n\t\"maxReplicas\":    \"maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. It cannot be less that minReplicas.\",\n\t\"metrics\":        \"metrics contains the specifications for which to use to calculate the desired replica count (the maximum replica count across all metrics will be used).  The desired replica count is calculated multiplying the ratio between the target value and the current value by the current number of pods.  Ergo, metrics used must decrease as the pod count is increased, and vice-versa.  See the individual metric source types for more information about how each type of metric must respond.\",\n}\n\nfunc (HorizontalPodAutoscalerSpec) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscalerSpec\n}\n\nvar map_HorizontalPodAutoscalerStatus = map[string]string{\n\t\"\":                   \"HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.\",\n\t\"observedGeneration\": \"observedGeneration is the most recent generation observed by this autoscaler.\",\n\t\"lastScaleTime\":      \"lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods, used by the autoscaler to control how often the number of pods is changed.\",\n\t\"currentReplicas\":    \"currentReplicas is current number of replicas of pods managed by this autoscaler, as last seen by the autoscaler.\",\n\t\"desiredReplicas\":    \"desiredReplicas is the desired number of replicas of pods managed by this autoscaler, as last calculated by the autoscaler.\",\n\t\"currentMetrics\":     \"currentMetrics is the last read state of the metrics used by this autoscaler.\",\n\t\"conditions\":         \"conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met.\",\n}\n\nfunc (HorizontalPodAutoscalerStatus) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscalerStatus\n}\n\nvar map_MetricSpec = map[string]string{\n\t\"\":                  \"MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once).\",\n\t\"type\":              \"type is the type of metric source.  It should be one of \\\"ContainerResource\\\", \\\"External\\\", \\\"Object\\\", \\\"Pods\\\" or \\\"Resource\\\", each mapping to a matching field in the object.\",\n\t\"object\":            \"object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).\",\n\t\"pods\":              \"pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second).  The values will be averaged together before being compared to the target value.\",\n\t\"resource\":          \"resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"containerResource\": \"container resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"external\":          \"external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).\",\n}\n\nfunc (MetricSpec) SwaggerDoc() map[string]string {\n\treturn map_MetricSpec\n}\n\nvar map_MetricStatus = map[string]string{\n\t\"\":                  \"MetricStatus describes the last-read state of a single metric.\",\n\t\"type\":              \"type is the type of metric source.  It will be one of \\\"ContainerResource\\\", \\\"External\\\", \\\"Object\\\", \\\"Pods\\\" or \\\"Resource\\\", each corresponds to a matching field in the object.\",\n\t\"object\":            \"object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).\",\n\t\"pods\":              \"pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second).  The values will be averaged together before being compared to the target value.\",\n\t\"resource\":          \"resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"containerResource\": \"container resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"external\":          \"external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).\",\n}\n\nfunc (MetricStatus) SwaggerDoc() map[string]string {\n\treturn map_MetricStatus\n}\n\nvar map_ObjectMetricSource = map[string]string{\n\t\"\":             \"ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).\",\n\t\"target\":       \"target is the described Kubernetes object.\",\n\t\"metricName\":   \"metricName is the name of the metric in question.\",\n\t\"targetValue\":  \"targetValue is the target value of the metric (as a quantity).\",\n\t\"selector\":     \"selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping When unset, just the metricName will be used to gather metrics.\",\n\t\"averageValue\": \"averageValue is the target value of the average of the metric across all relevant pods (as a quantity)\",\n}\n\nfunc (ObjectMetricSource) SwaggerDoc() map[string]string {\n\treturn map_ObjectMetricSource\n}\n\nvar map_ObjectMetricStatus = map[string]string{\n\t\"\":             \"ObjectMetricStatus indicates the current value of a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).\",\n\t\"target\":       \"target is the described Kubernetes object.\",\n\t\"metricName\":   \"metricName is the name of the metric in question.\",\n\t\"currentValue\": \"currentValue is the current value of the metric (as a quantity).\",\n\t\"selector\":     \"selector is the string-encoded form of a standard kubernetes label selector for the given metric When set in the ObjectMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics.\",\n\t\"averageValue\": \"averageValue is the current value of the average of the metric across all relevant pods (as a quantity)\",\n}\n\nfunc (ObjectMetricStatus) SwaggerDoc() map[string]string {\n\treturn map_ObjectMetricStatus\n}\n\nvar map_PodsMetricSource = map[string]string{\n\t\"\":                   \"PodsMetricSource indicates how to scale on a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.\",\n\t\"metricName\":         \"metricName is the name of the metric in question\",\n\t\"targetAverageValue\": \"targetAverageValue is the target value of the average of the metric across all relevant pods (as a quantity)\",\n\t\"selector\":           \"selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping When unset, just the metricName will be used to gather metrics.\",\n}\n\nfunc (PodsMetricSource) SwaggerDoc() map[string]string {\n\treturn map_PodsMetricSource\n}\n\nvar map_PodsMetricStatus = map[string]string{\n\t\"\":                    \"PodsMetricStatus indicates the current value of a metric describing each pod in the current scale target (for example, transactions-processed-per-second).\",\n\t\"metricName\":          \"metricName is the name of the metric in question\",\n\t\"currentAverageValue\": \"currentAverageValue is the current value of the average of the metric across all relevant pods (as a quantity)\",\n\t\"selector\":            \"selector is the string-encoded form of a standard kubernetes label selector for the given metric When set in the PodsMetricSource, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics.\",\n}\n\nfunc (PodsMetricStatus) SwaggerDoc() map[string]string {\n\treturn map_PodsMetricStatus\n}\n\nvar map_ResourceMetricSource = map[string]string{\n\t\"\":                         \"ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory).  The values will be averaged together before being compared to the target.  Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.  Only one \\\"target\\\" type should be set.\",\n\t\"name\":                     \"name is the name of the resource in question.\",\n\t\"targetAverageUtilization\": \"targetAverageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.\",\n\t\"targetAverageValue\":       \"targetAverageValue is the target value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the \\\"pods\\\" metric source type.\",\n}\n\nfunc (ResourceMetricSource) SwaggerDoc() map[string]string {\n\treturn map_ResourceMetricSource\n}\n\nvar map_ResourceMetricStatus = map[string]string{\n\t\"\":                          \"ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory).  Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"name\":                      \"name is the name of the resource in question.\",\n\t\"currentAverageUtilization\": \"currentAverageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.  It will only be present if `targetAverageValue` was set in the corresponding metric specification.\",\n\t\"currentAverageValue\":       \"currentAverageValue is the current value of the average of the resource metric across all relevant pods, as a raw value (instead of as a percentage of the request), similar to the \\\"pods\\\" metric source type. It will always be set, regardless of the corresponding metric specification.\",\n}\n\nfunc (ResourceMetricStatus) SwaggerDoc() map[string]string {\n\treturn map_ResourceMetricStatus\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2beta1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v2beta1\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ContainerResourceMetricSource) DeepCopyInto(out *ContainerResourceMetricSource) {\n\t*out = *in\n\tif in.TargetAverageUtilization != nil {\n\t\tin, out := &in.TargetAverageUtilization, &out.TargetAverageUtilization\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.TargetAverageValue != nil {\n\t\tin, out := &in.TargetAverageValue, &out.TargetAverageValue\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerResourceMetricSource.\nfunc (in *ContainerResourceMetricSource) DeepCopy() *ContainerResourceMetricSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ContainerResourceMetricSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ContainerResourceMetricStatus) DeepCopyInto(out *ContainerResourceMetricStatus) {\n\t*out = *in\n\tif in.CurrentAverageUtilization != nil {\n\t\tin, out := &in.CurrentAverageUtilization, &out.CurrentAverageUtilization\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tout.CurrentAverageValue = in.CurrentAverageValue.DeepCopy()\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerResourceMetricStatus.\nfunc (in *ContainerResourceMetricStatus) DeepCopy() *ContainerResourceMetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ContainerResourceMetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CrossVersionObjectReference) DeepCopyInto(out *CrossVersionObjectReference) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CrossVersionObjectReference.\nfunc (in *CrossVersionObjectReference) DeepCopy() *CrossVersionObjectReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CrossVersionObjectReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExternalMetricSource) DeepCopyInto(out *ExternalMetricSource) {\n\t*out = *in\n\tif in.MetricSelector != nil {\n\t\tin, out := &in.MetricSelector, &out.MetricSelector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.TargetValue != nil {\n\t\tin, out := &in.TargetValue, &out.TargetValue\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\tif in.TargetAverageValue != nil {\n\t\tin, out := &in.TargetAverageValue, &out.TargetAverageValue\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalMetricSource.\nfunc (in *ExternalMetricSource) DeepCopy() *ExternalMetricSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExternalMetricSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExternalMetricStatus) DeepCopyInto(out *ExternalMetricStatus) {\n\t*out = *in\n\tif in.MetricSelector != nil {\n\t\tin, out := &in.MetricSelector, &out.MetricSelector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tout.CurrentValue = in.CurrentValue.DeepCopy()\n\tif in.CurrentAverageValue != nil {\n\t\tin, out := &in.CurrentAverageValue, &out.CurrentAverageValue\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalMetricStatus.\nfunc (in *ExternalMetricStatus) DeepCopy() *ExternalMetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExternalMetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscaler) DeepCopyInto(out *HorizontalPodAutoscaler) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscaler.\nfunc (in *HorizontalPodAutoscaler) DeepCopy() *HorizontalPodAutoscaler {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscaler)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *HorizontalPodAutoscaler) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscalerCondition) DeepCopyInto(out *HorizontalPodAutoscalerCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerCondition.\nfunc (in *HorizontalPodAutoscalerCondition) DeepCopy() *HorizontalPodAutoscalerCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscalerCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscalerList) DeepCopyInto(out *HorizontalPodAutoscalerList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]HorizontalPodAutoscaler, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerList.\nfunc (in *HorizontalPodAutoscalerList) DeepCopy() *HorizontalPodAutoscalerList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscalerList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *HorizontalPodAutoscalerList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscalerSpec) DeepCopyInto(out *HorizontalPodAutoscalerSpec) {\n\t*out = *in\n\tout.ScaleTargetRef = in.ScaleTargetRef\n\tif in.MinReplicas != nil {\n\t\tin, out := &in.MinReplicas, &out.MinReplicas\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Metrics != nil {\n\t\tin, out := &in.Metrics, &out.Metrics\n\t\t*out = make([]MetricSpec, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerSpec.\nfunc (in *HorizontalPodAutoscalerSpec) DeepCopy() *HorizontalPodAutoscalerSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscalerSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscalerStatus) DeepCopyInto(out *HorizontalPodAutoscalerStatus) {\n\t*out = *in\n\tif in.ObservedGeneration != nil {\n\t\tin, out := &in.ObservedGeneration, &out.ObservedGeneration\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.LastScaleTime != nil {\n\t\tin, out := &in.LastScaleTime, &out.LastScaleTime\n\t\t*out = (*in).DeepCopy()\n\t}\n\tif in.CurrentMetrics != nil {\n\t\tin, out := &in.CurrentMetrics, &out.CurrentMetrics\n\t\t*out = make([]MetricStatus, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]HorizontalPodAutoscalerCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerStatus.\nfunc (in *HorizontalPodAutoscalerStatus) DeepCopy() *HorizontalPodAutoscalerStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscalerStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MetricSpec) DeepCopyInto(out *MetricSpec) {\n\t*out = *in\n\tif in.Object != nil {\n\t\tin, out := &in.Object, &out.Object\n\t\t*out = new(ObjectMetricSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Pods != nil {\n\t\tin, out := &in.Pods, &out.Pods\n\t\t*out = new(PodsMetricSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Resource != nil {\n\t\tin, out := &in.Resource, &out.Resource\n\t\t*out = new(ResourceMetricSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ContainerResource != nil {\n\t\tin, out := &in.ContainerResource, &out.ContainerResource\n\t\t*out = new(ContainerResourceMetricSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.External != nil {\n\t\tin, out := &in.External, &out.External\n\t\t*out = new(ExternalMetricSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricSpec.\nfunc (in *MetricSpec) DeepCopy() *MetricSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MetricSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MetricStatus) DeepCopyInto(out *MetricStatus) {\n\t*out = *in\n\tif in.Object != nil {\n\t\tin, out := &in.Object, &out.Object\n\t\t*out = new(ObjectMetricStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Pods != nil {\n\t\tin, out := &in.Pods, &out.Pods\n\t\t*out = new(PodsMetricStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Resource != nil {\n\t\tin, out := &in.Resource, &out.Resource\n\t\t*out = new(ResourceMetricStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ContainerResource != nil {\n\t\tin, out := &in.ContainerResource, &out.ContainerResource\n\t\t*out = new(ContainerResourceMetricStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.External != nil {\n\t\tin, out := &in.External, &out.External\n\t\t*out = new(ExternalMetricStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricStatus.\nfunc (in *MetricStatus) DeepCopy() *MetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ObjectMetricSource) DeepCopyInto(out *ObjectMetricSource) {\n\t*out = *in\n\tout.Target = in.Target\n\tout.TargetValue = in.TargetValue.DeepCopy()\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.AverageValue != nil {\n\t\tin, out := &in.AverageValue, &out.AverageValue\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectMetricSource.\nfunc (in *ObjectMetricSource) DeepCopy() *ObjectMetricSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ObjectMetricSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ObjectMetricStatus) DeepCopyInto(out *ObjectMetricStatus) {\n\t*out = *in\n\tout.Target = in.Target\n\tout.CurrentValue = in.CurrentValue.DeepCopy()\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.AverageValue != nil {\n\t\tin, out := &in.AverageValue, &out.AverageValue\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectMetricStatus.\nfunc (in *ObjectMetricStatus) DeepCopy() *ObjectMetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ObjectMetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodsMetricSource) DeepCopyInto(out *PodsMetricSource) {\n\t*out = *in\n\tout.TargetAverageValue = in.TargetAverageValue.DeepCopy()\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodsMetricSource.\nfunc (in *PodsMetricSource) DeepCopy() *PodsMetricSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodsMetricSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodsMetricStatus) DeepCopyInto(out *PodsMetricStatus) {\n\t*out = *in\n\tout.CurrentAverageValue = in.CurrentAverageValue.DeepCopy()\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodsMetricStatus.\nfunc (in *PodsMetricStatus) DeepCopy() *PodsMetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodsMetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceMetricSource) DeepCopyInto(out *ResourceMetricSource) {\n\t*out = *in\n\tif in.TargetAverageUtilization != nil {\n\t\tin, out := &in.TargetAverageUtilization, &out.TargetAverageUtilization\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.TargetAverageValue != nil {\n\t\tin, out := &in.TargetAverageValue, &out.TargetAverageValue\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceMetricSource.\nfunc (in *ResourceMetricSource) DeepCopy() *ResourceMetricSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceMetricSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceMetricStatus) DeepCopyInto(out *ResourceMetricStatus) {\n\t*out = *in\n\tif in.CurrentAverageUtilization != nil {\n\t\tin, out := &in.CurrentAverageUtilization, &out.CurrentAverageUtilization\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tout.CurrentAverageValue = in.CurrentAverageValue.DeepCopy()\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceMetricStatus.\nfunc (in *ResourceMetricStatus) DeepCopy() *ResourceMetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceMetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2beta1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v2beta1\n\nimport (\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *HorizontalPodAutoscaler) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *HorizontalPodAutoscaler) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *HorizontalPodAutoscaler) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"autoscaling\", Version: \"v2\", Kind: \"HorizontalPodAutoscaler\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *HorizontalPodAutoscaler) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 25\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *HorizontalPodAutoscalerList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *HorizontalPodAutoscalerList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *HorizontalPodAutoscalerList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"autoscaling\", Version: \"v2beta2\", Kind: \"HorizontalPodAutoscalerList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *HorizontalPodAutoscalerList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 25\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2beta2/doc.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\npackage v2beta2 // import \"k8s.io/api/autoscaling/v2beta2\"\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2beta2/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/autoscaling/v2beta2/generated.proto\n\npackage v2beta2\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *ContainerResourceMetricSource) Reset()      { *m = ContainerResourceMetricSource{} }\nfunc (*ContainerResourceMetricSource) ProtoMessage() {}\nfunc (*ContainerResourceMetricSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1076ab1fac987148, []int{0}\n}\nfunc (m *ContainerResourceMetricSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerResourceMetricSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ContainerResourceMetricSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerResourceMetricSource.Merge(m, src)\n}\nfunc (m *ContainerResourceMetricSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerResourceMetricSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerResourceMetricSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerResourceMetricSource proto.InternalMessageInfo\n\nfunc (m *ContainerResourceMetricStatus) Reset()      { *m = ContainerResourceMetricStatus{} }\nfunc (*ContainerResourceMetricStatus) ProtoMessage() {}\nfunc (*ContainerResourceMetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1076ab1fac987148, []int{1}\n}\nfunc (m *ContainerResourceMetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerResourceMetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ContainerResourceMetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerResourceMetricStatus.Merge(m, src)\n}\nfunc (m *ContainerResourceMetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerResourceMetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerResourceMetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerResourceMetricStatus proto.InternalMessageInfo\n\nfunc (m *CrossVersionObjectReference) Reset()      { *m = CrossVersionObjectReference{} }\nfunc (*CrossVersionObjectReference) ProtoMessage() {}\nfunc (*CrossVersionObjectReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1076ab1fac987148, []int{2}\n}\nfunc (m *CrossVersionObjectReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CrossVersionObjectReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CrossVersionObjectReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CrossVersionObjectReference.Merge(m, src)\n}\nfunc (m *CrossVersionObjectReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CrossVersionObjectReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_CrossVersionObjectReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CrossVersionObjectReference proto.InternalMessageInfo\n\nfunc (m *ExternalMetricSource) Reset()      { *m = ExternalMetricSource{} }\nfunc (*ExternalMetricSource) ProtoMessage() {}\nfunc (*ExternalMetricSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1076ab1fac987148, []int{3}\n}\nfunc (m *ExternalMetricSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ExternalMetricSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ExternalMetricSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ExternalMetricSource.Merge(m, src)\n}\nfunc (m *ExternalMetricSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ExternalMetricSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ExternalMetricSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ExternalMetricSource proto.InternalMessageInfo\n\nfunc (m *ExternalMetricStatus) Reset()      { *m = ExternalMetricStatus{} }\nfunc (*ExternalMetricStatus) ProtoMessage() {}\nfunc (*ExternalMetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1076ab1fac987148, []int{4}\n}\nfunc (m *ExternalMetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ExternalMetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ExternalMetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ExternalMetricStatus.Merge(m, src)\n}\nfunc (m *ExternalMetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ExternalMetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ExternalMetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ExternalMetricStatus proto.InternalMessageInfo\n\nfunc (m *HPAScalingPolicy) Reset()      { *m = HPAScalingPolicy{} }\nfunc (*HPAScalingPolicy) ProtoMessage() {}\nfunc (*HPAScalingPolicy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1076ab1fac987148, []int{5}\n}\nfunc (m *HPAScalingPolicy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HPAScalingPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HPAScalingPolicy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HPAScalingPolicy.Merge(m, src)\n}\nfunc (m *HPAScalingPolicy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HPAScalingPolicy) XXX_DiscardUnknown() {\n\txxx_messageInfo_HPAScalingPolicy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HPAScalingPolicy proto.InternalMessageInfo\n\nfunc (m *HPAScalingRules) Reset()      { *m = HPAScalingRules{} }\nfunc (*HPAScalingRules) ProtoMessage() {}\nfunc (*HPAScalingRules) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1076ab1fac987148, []int{6}\n}\nfunc (m *HPAScalingRules) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HPAScalingRules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HPAScalingRules) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HPAScalingRules.Merge(m, src)\n}\nfunc (m *HPAScalingRules) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HPAScalingRules) XXX_DiscardUnknown() {\n\txxx_messageInfo_HPAScalingRules.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HPAScalingRules proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscaler) Reset()      { *m = HorizontalPodAutoscaler{} }\nfunc (*HorizontalPodAutoscaler) ProtoMessage() {}\nfunc (*HorizontalPodAutoscaler) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1076ab1fac987148, []int{7}\n}\nfunc (m *HorizontalPodAutoscaler) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscaler) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscaler) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscaler.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscaler) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscaler) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscaler.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscaler proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscalerBehavior) Reset()      { *m = HorizontalPodAutoscalerBehavior{} }\nfunc (*HorizontalPodAutoscalerBehavior) ProtoMessage() {}\nfunc (*HorizontalPodAutoscalerBehavior) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1076ab1fac987148, []int{8}\n}\nfunc (m *HorizontalPodAutoscalerBehavior) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscalerBehavior) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscalerBehavior) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscalerBehavior.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscalerBehavior) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscalerBehavior) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscalerBehavior.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscalerBehavior proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscalerCondition) Reset()      { *m = HorizontalPodAutoscalerCondition{} }\nfunc (*HorizontalPodAutoscalerCondition) ProtoMessage() {}\nfunc (*HorizontalPodAutoscalerCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1076ab1fac987148, []int{9}\n}\nfunc (m *HorizontalPodAutoscalerCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscalerCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscalerCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscalerCondition.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscalerCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscalerCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscalerCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscalerCondition proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscalerList) Reset()      { *m = HorizontalPodAutoscalerList{} }\nfunc (*HorizontalPodAutoscalerList) ProtoMessage() {}\nfunc (*HorizontalPodAutoscalerList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1076ab1fac987148, []int{10}\n}\nfunc (m *HorizontalPodAutoscalerList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscalerList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscalerList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscalerList.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscalerList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscalerList) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscalerList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscalerList proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscalerSpec) Reset()      { *m = HorizontalPodAutoscalerSpec{} }\nfunc (*HorizontalPodAutoscalerSpec) ProtoMessage() {}\nfunc (*HorizontalPodAutoscalerSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1076ab1fac987148, []int{11}\n}\nfunc (m *HorizontalPodAutoscalerSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscalerSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscalerSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscalerSpec.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscalerSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscalerSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscalerSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscalerSpec proto.InternalMessageInfo\n\nfunc (m *HorizontalPodAutoscalerStatus) Reset()      { *m = HorizontalPodAutoscalerStatus{} }\nfunc (*HorizontalPodAutoscalerStatus) ProtoMessage() {}\nfunc (*HorizontalPodAutoscalerStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1076ab1fac987148, []int{12}\n}\nfunc (m *HorizontalPodAutoscalerStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HorizontalPodAutoscalerStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HorizontalPodAutoscalerStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HorizontalPodAutoscalerStatus.Merge(m, src)\n}\nfunc (m *HorizontalPodAutoscalerStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HorizontalPodAutoscalerStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_HorizontalPodAutoscalerStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HorizontalPodAutoscalerStatus proto.InternalMessageInfo\n\nfunc (m *MetricIdentifier) Reset()      { *m = MetricIdentifier{} }\nfunc (*MetricIdentifier) ProtoMessage() {}\nfunc (*MetricIdentifier) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1076ab1fac987148, []int{13}\n}\nfunc (m *MetricIdentifier) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MetricIdentifier) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MetricIdentifier) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MetricIdentifier.Merge(m, src)\n}\nfunc (m *MetricIdentifier) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MetricIdentifier) XXX_DiscardUnknown() {\n\txxx_messageInfo_MetricIdentifier.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MetricIdentifier proto.InternalMessageInfo\n\nfunc (m *MetricSpec) Reset()      { *m = MetricSpec{} }\nfunc (*MetricSpec) ProtoMessage() {}\nfunc (*MetricSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1076ab1fac987148, []int{14}\n}\nfunc (m *MetricSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MetricSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MetricSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MetricSpec.Merge(m, src)\n}\nfunc (m *MetricSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MetricSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_MetricSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MetricSpec proto.InternalMessageInfo\n\nfunc (m *MetricStatus) Reset()      { *m = MetricStatus{} }\nfunc (*MetricStatus) ProtoMessage() {}\nfunc (*MetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1076ab1fac987148, []int{15}\n}\nfunc (m *MetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MetricStatus.Merge(m, src)\n}\nfunc (m *MetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_MetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MetricStatus proto.InternalMessageInfo\n\nfunc (m *MetricTarget) Reset()      { *m = MetricTarget{} }\nfunc (*MetricTarget) ProtoMessage() {}\nfunc (*MetricTarget) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1076ab1fac987148, []int{16}\n}\nfunc (m *MetricTarget) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MetricTarget) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MetricTarget) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MetricTarget.Merge(m, src)\n}\nfunc (m *MetricTarget) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MetricTarget) XXX_DiscardUnknown() {\n\txxx_messageInfo_MetricTarget.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MetricTarget proto.InternalMessageInfo\n\nfunc (m *MetricValueStatus) Reset()      { *m = MetricValueStatus{} }\nfunc (*MetricValueStatus) ProtoMessage() {}\nfunc (*MetricValueStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1076ab1fac987148, []int{17}\n}\nfunc (m *MetricValueStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MetricValueStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MetricValueStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MetricValueStatus.Merge(m, src)\n}\nfunc (m *MetricValueStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MetricValueStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_MetricValueStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MetricValueStatus proto.InternalMessageInfo\n\nfunc (m *ObjectMetricSource) Reset()      { *m = ObjectMetricSource{} }\nfunc (*ObjectMetricSource) ProtoMessage() {}\nfunc (*ObjectMetricSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1076ab1fac987148, []int{18}\n}\nfunc (m *ObjectMetricSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ObjectMetricSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ObjectMetricSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ObjectMetricSource.Merge(m, src)\n}\nfunc (m *ObjectMetricSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ObjectMetricSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ObjectMetricSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ObjectMetricSource proto.InternalMessageInfo\n\nfunc (m *ObjectMetricStatus) Reset()      { *m = ObjectMetricStatus{} }\nfunc (*ObjectMetricStatus) ProtoMessage() {}\nfunc (*ObjectMetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1076ab1fac987148, []int{19}\n}\nfunc (m *ObjectMetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ObjectMetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ObjectMetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ObjectMetricStatus.Merge(m, src)\n}\nfunc (m *ObjectMetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ObjectMetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ObjectMetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ObjectMetricStatus proto.InternalMessageInfo\n\nfunc (m *PodsMetricSource) Reset()      { *m = PodsMetricSource{} }\nfunc (*PodsMetricSource) ProtoMessage() {}\nfunc (*PodsMetricSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1076ab1fac987148, []int{20}\n}\nfunc (m *PodsMetricSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodsMetricSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodsMetricSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodsMetricSource.Merge(m, src)\n}\nfunc (m *PodsMetricSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodsMetricSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodsMetricSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodsMetricSource proto.InternalMessageInfo\n\nfunc (m *PodsMetricStatus) Reset()      { *m = PodsMetricStatus{} }\nfunc (*PodsMetricStatus) ProtoMessage() {}\nfunc (*PodsMetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1076ab1fac987148, []int{21}\n}\nfunc (m *PodsMetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodsMetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodsMetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodsMetricStatus.Merge(m, src)\n}\nfunc (m *PodsMetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodsMetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodsMetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodsMetricStatus proto.InternalMessageInfo\n\nfunc (m *ResourceMetricSource) Reset()      { *m = ResourceMetricSource{} }\nfunc (*ResourceMetricSource) ProtoMessage() {}\nfunc (*ResourceMetricSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1076ab1fac987148, []int{22}\n}\nfunc (m *ResourceMetricSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceMetricSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceMetricSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceMetricSource.Merge(m, src)\n}\nfunc (m *ResourceMetricSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceMetricSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceMetricSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceMetricSource proto.InternalMessageInfo\n\nfunc (m *ResourceMetricStatus) Reset()      { *m = ResourceMetricStatus{} }\nfunc (*ResourceMetricStatus) ProtoMessage() {}\nfunc (*ResourceMetricStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_1076ab1fac987148, []int{23}\n}\nfunc (m *ResourceMetricStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceMetricStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceMetricStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceMetricStatus.Merge(m, src)\n}\nfunc (m *ResourceMetricStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceMetricStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceMetricStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceMetricStatus proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*ContainerResourceMetricSource)(nil), \"k8s.io.api.autoscaling.v2beta2.ContainerResourceMetricSource\")\n\tproto.RegisterType((*ContainerResourceMetricStatus)(nil), \"k8s.io.api.autoscaling.v2beta2.ContainerResourceMetricStatus\")\n\tproto.RegisterType((*CrossVersionObjectReference)(nil), \"k8s.io.api.autoscaling.v2beta2.CrossVersionObjectReference\")\n\tproto.RegisterType((*ExternalMetricSource)(nil), \"k8s.io.api.autoscaling.v2beta2.ExternalMetricSource\")\n\tproto.RegisterType((*ExternalMetricStatus)(nil), \"k8s.io.api.autoscaling.v2beta2.ExternalMetricStatus\")\n\tproto.RegisterType((*HPAScalingPolicy)(nil), \"k8s.io.api.autoscaling.v2beta2.HPAScalingPolicy\")\n\tproto.RegisterType((*HPAScalingRules)(nil), \"k8s.io.api.autoscaling.v2beta2.HPAScalingRules\")\n\tproto.RegisterType((*HorizontalPodAutoscaler)(nil), \"k8s.io.api.autoscaling.v2beta2.HorizontalPodAutoscaler\")\n\tproto.RegisterType((*HorizontalPodAutoscalerBehavior)(nil), \"k8s.io.api.autoscaling.v2beta2.HorizontalPodAutoscalerBehavior\")\n\tproto.RegisterType((*HorizontalPodAutoscalerCondition)(nil), \"k8s.io.api.autoscaling.v2beta2.HorizontalPodAutoscalerCondition\")\n\tproto.RegisterType((*HorizontalPodAutoscalerList)(nil), \"k8s.io.api.autoscaling.v2beta2.HorizontalPodAutoscalerList\")\n\tproto.RegisterType((*HorizontalPodAutoscalerSpec)(nil), \"k8s.io.api.autoscaling.v2beta2.HorizontalPodAutoscalerSpec\")\n\tproto.RegisterType((*HorizontalPodAutoscalerStatus)(nil), \"k8s.io.api.autoscaling.v2beta2.HorizontalPodAutoscalerStatus\")\n\tproto.RegisterType((*MetricIdentifier)(nil), \"k8s.io.api.autoscaling.v2beta2.MetricIdentifier\")\n\tproto.RegisterType((*MetricSpec)(nil), \"k8s.io.api.autoscaling.v2beta2.MetricSpec\")\n\tproto.RegisterType((*MetricStatus)(nil), \"k8s.io.api.autoscaling.v2beta2.MetricStatus\")\n\tproto.RegisterType((*MetricTarget)(nil), \"k8s.io.api.autoscaling.v2beta2.MetricTarget\")\n\tproto.RegisterType((*MetricValueStatus)(nil), \"k8s.io.api.autoscaling.v2beta2.MetricValueStatus\")\n\tproto.RegisterType((*ObjectMetricSource)(nil), \"k8s.io.api.autoscaling.v2beta2.ObjectMetricSource\")\n\tproto.RegisterType((*ObjectMetricStatus)(nil), \"k8s.io.api.autoscaling.v2beta2.ObjectMetricStatus\")\n\tproto.RegisterType((*PodsMetricSource)(nil), \"k8s.io.api.autoscaling.v2beta2.PodsMetricSource\")\n\tproto.RegisterType((*PodsMetricStatus)(nil), \"k8s.io.api.autoscaling.v2beta2.PodsMetricStatus\")\n\tproto.RegisterType((*ResourceMetricSource)(nil), \"k8s.io.api.autoscaling.v2beta2.ResourceMetricSource\")\n\tproto.RegisterType((*ResourceMetricStatus)(nil), \"k8s.io.api.autoscaling.v2beta2.ResourceMetricStatus\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/autoscaling/v2beta2/generated.proto\", fileDescriptor_1076ab1fac987148)\n}\n\nvar fileDescriptor_1076ab1fac987148 = []byte{\n\t// 1727 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x59, 0xcd, 0x6f, 0x1b, 0xc7,\n\t0x15, 0xd7, 0x92, 0xd4, 0xd7, 0x50, 0x9f, 0xe3, 0x2f, 0x42, 0x86, 0x49, 0x61, 0x6b, 0xb4, 0xae,\n\t0xd1, 0x2e, 0x2b, 0x56, 0x6d, 0x0d, 0x18, 0x45, 0xab, 0x95, 0xdb, 0xda, 0xb0, 0x64, 0xab, 0x43,\n\t0x59, 0x2d, 0x02, 0xd9, 0xc8, 0x70, 0x77, 0x44, 0x4d, 0x44, 0xee, 0x12, 0xbb, 0x4b, 0xda, 0x72,\n\t0x80, 0x20, 0x08, 0x90, 0x7b, 0x90, 0x20, 0xd7, 0xfc, 0x09, 0x09, 0x7c, 0x09, 0x90, 0x63, 0x3e,\n\t0x60, 0x18, 0x41, 0x10, 0xf8, 0x16, 0xe7, 0x42, 0xc4, 0xcc, 0x31, 0xc7, 0xdc, 0x7c, 0x0a, 0xe6,\n\t0x63, 0x3f, 0x49, 0x89, 0x94, 0x20, 0x29, 0xd0, 0x8d, 0x3b, 0xf3, 0xde, 0xef, 0xcd, 0x7b, 0xf3,\n\t0x7b, 0x6f, 0xde, 0x0c, 0x81, 0xb6, 0x73, 0xcd, 0xd5, 0xa8, 0x5d, 0xc4, 0x0d, 0x5a, 0xc4, 0x4d,\n\t0xcf, 0x76, 0x0d, 0x5c, 0xa3, 0x56, 0xb5, 0xd8, 0x2a, 0x55, 0x88, 0x87, 0x4b, 0xc5, 0x2a, 0xb1,\n\t0x88, 0x83, 0x3d, 0x62, 0x6a, 0x0d, 0xc7, 0xf6, 0x6c, 0x98, 0x17, 0xf2, 0x1a, 0x6e, 0x50, 0x2d,\n\t0x22, 0xaf, 0x49, 0xf9, 0xb9, 0x3f, 0x56, 0xa9, 0xb7, 0xdd, 0xac, 0x68, 0x86, 0x5d, 0x2f, 0x56,\n\t0xed, 0xaa, 0x5d, 0xe4, 0x6a, 0x95, 0xe6, 0x16, 0xff, 0xe2, 0x1f, 0xfc, 0x97, 0x80, 0x9b, 0x53,\n\t0x23, 0xe6, 0x0d, 0xdb, 0x21, 0xc5, 0xd6, 0x42, 0xd2, 0xe4, 0xdc, 0x62, 0x28, 0x53, 0xc7, 0xc6,\n\t0x36, 0xb5, 0x88, 0xb3, 0x5b, 0x6c, 0xec, 0x54, 0xb9, 0x92, 0x43, 0x5c, 0xbb, 0xe9, 0x18, 0xe4,\n\t0x40, 0x5a, 0x6e, 0xb1, 0x4e, 0x3c, 0xdc, 0xcb, 0x56, 0x71, 0x2f, 0x2d, 0xa7, 0x69, 0x79, 0xb4,\n\t0xde, 0x6d, 0xe6, 0xaf, 0xfd, 0x14, 0x5c, 0x63, 0x9b, 0xd4, 0x71, 0x52, 0x4f, 0xfd, 0x49, 0x01,\n\t0x97, 0x96, 0x6d, 0xcb, 0xc3, 0x4c, 0x03, 0x49, 0x27, 0x56, 0x89, 0xe7, 0x50, 0xa3, 0xcc, 0x7f,\n\t0xc3, 0x65, 0x90, 0xb1, 0x70, 0x9d, 0xe4, 0x94, 0x79, 0xe5, 0xca, 0xb8, 0x5e, 0x7c, 0xd6, 0x2e,\n\t0x0c, 0x75, 0xda, 0x85, 0xcc, 0x1d, 0x5c, 0x27, 0xaf, 0xda, 0x85, 0x42, 0x77, 0xe0, 0x34, 0x1f,\n\t0x86, 0x89, 0x20, 0xae, 0x0c, 0xd7, 0xc1, 0x88, 0x87, 0x9d, 0x2a, 0xf1, 0x72, 0xa9, 0x79, 0xe5,\n\t0x4a, 0xb6, 0xf4, 0x07, 0x6d, 0xff, 0xfd, 0xd3, 0xc4, 0x12, 0xd6, 0xb9, 0x8e, 0x3e, 0x25, 0x8d,\n\t0x8e, 0x88, 0x6f, 0x24, 0xb1, 0x60, 0x11, 0x8c, 0x1b, 0xfe, 0xda, 0x73, 0x69, 0xbe, 0xbe, 0x59,\n\t0x29, 0x3a, 0x1e, 0x3a, 0x15, 0xca, 0xa8, 0x3f, 0xef, 0xe3, 0xad, 0x87, 0xbd, 0xa6, 0x7b, 0x34,\n\t0xde, 0x6e, 0x82, 0x51, 0xa3, 0xe9, 0x38, 0xc4, 0xf2, 0xdd, 0x5d, 0x18, 0xcc, 0xdd, 0x0d, 0x5c,\n\t0x6b, 0x12, 0xb1, 0x10, 0x7d, 0x5a, 0x9a, 0x1e, 0x5d, 0x16, 0x48, 0xc8, 0x87, 0x3c, 0xb8, 0xd7,\n\t0x1f, 0x2a, 0xe0, 0xe2, 0xb2, 0x63, 0xbb, 0xee, 0x06, 0x71, 0x5c, 0x6a, 0x5b, 0x77, 0x2b, 0x6f,\n\t0x10, 0xc3, 0x43, 0x64, 0x8b, 0x38, 0xc4, 0x32, 0x08, 0x9c, 0x07, 0x99, 0x1d, 0x6a, 0x99, 0xd2,\n\t0xe7, 0x09, 0xdf, 0xe7, 0xdb, 0xd4, 0x32, 0x11, 0x9f, 0x61, 0x12, 0x3c, 0x2a, 0xa9, 0xb8, 0x44,\n\t0xc4, 0xe5, 0x12, 0x00, 0xb8, 0x41, 0xa5, 0x01, 0xb9, 0x2a, 0x28, 0xe5, 0xc0, 0xd2, 0xda, 0x2d,\n\t0x39, 0x83, 0x22, 0x52, 0xea, 0x53, 0x05, 0x9c, 0xfd, 0xd7, 0x23, 0x8f, 0x38, 0x16, 0xae, 0xc5,\n\t0x28, 0xf7, 0x7f, 0x30, 0x52, 0xe7, 0xdf, 0x7c, 0x49, 0xd9, 0xd2, 0x9f, 0x06, 0x0b, 0xdf, 0x2d,\n\t0x93, 0x58, 0x1e, 0xdd, 0xa2, 0xc4, 0x09, 0x19, 0x23, 0x66, 0x90, 0xc4, 0x3b, 0x1e, 0x1e, 0xaa,\n\t0xdf, 0x76, 0x3b, 0x22, 0xd8, 0x74, 0x7c, 0x8e, 0x1c, 0x2b, 0xc5, 0xd4, 0x8f, 0x15, 0x30, 0x73,\n\t0x73, 0x6d, 0xa9, 0x2c, 0x20, 0xd6, 0xec, 0x1a, 0x35, 0x76, 0xe1, 0x35, 0x90, 0xf1, 0x76, 0x1b,\n\t0x7e, 0x6a, 0x5c, 0xf6, 0x49, 0xb0, 0xbe, 0xdb, 0x60, 0xa9, 0x71, 0x36, 0x29, 0xcf, 0xc6, 0x11,\n\t0xd7, 0x80, 0xbf, 0x01, 0xc3, 0x2d, 0x66, 0x97, 0x2f, 0x75, 0x58, 0x9f, 0x94, 0xaa, 0xc3, 0x7c,\n\t0x31, 0x48, 0xcc, 0xc1, 0xeb, 0x60, 0xb2, 0x41, 0x1c, 0x6a, 0x9b, 0x65, 0x62, 0xd8, 0x96, 0xe9,\n\t0x72, 0x12, 0x0d, 0xeb, 0xe7, 0xa4, 0xf0, 0xe4, 0x5a, 0x74, 0x12, 0xc5, 0x65, 0xd5, 0x8f, 0x52,\n\t0x60, 0x3a, 0x5c, 0x00, 0x6a, 0xd6, 0x88, 0x0b, 0x1f, 0x80, 0x39, 0xd7, 0xc3, 0x15, 0x5a, 0xa3,\n\t0x8f, 0xb1, 0x47, 0x6d, 0xeb, 0x7f, 0xd4, 0x32, 0xed, 0x87, 0x71, 0xf4, 0x7c, 0xa7, 0x5d, 0x98,\n\t0x2b, 0xef, 0x29, 0x85, 0xf6, 0x41, 0x80, 0xb7, 0xc1, 0x84, 0x4b, 0x6a, 0xc4, 0xf0, 0x84, 0xbf,\n\t0x32, 0x2e, 0xbf, 0xeb, 0xb4, 0x0b, 0x13, 0xe5, 0xc8, 0xf8, 0xab, 0x76, 0xe1, 0x4c, 0x2c, 0x30,\n\t0x62, 0x12, 0xc5, 0x94, 0xe1, 0x03, 0x30, 0xd6, 0x60, 0xbf, 0x28, 0x71, 0x73, 0xa9, 0xf9, 0xf4,\n\t0x20, 0x5c, 0x49, 0x06, 0x5c, 0x9f, 0x91, 0xa1, 0x1a, 0x5b, 0x93, 0x48, 0x28, 0xc0, 0x54, 0x3f,\n\t0x4f, 0x81, 0x0b, 0x37, 0x6d, 0x87, 0x3e, 0x66, 0x55, 0xa1, 0xb6, 0x66, 0x9b, 0x4b, 0x12, 0x91,\n\t0x38, 0xf0, 0x75, 0x30, 0xc6, 0xce, 0x21, 0x13, 0x7b, 0xb8, 0x07, 0x4f, 0x83, 0xe3, 0x44, 0x6b,\n\t0xec, 0x54, 0xd9, 0x80, 0xab, 0x31, 0x69, 0xad, 0xb5, 0xa0, 0x89, 0x42, 0xb2, 0x4a, 0x3c, 0x1c,\n\t0xe6, 0x7a, 0x38, 0x86, 0x02, 0x54, 0x78, 0x1f, 0x64, 0xdc, 0x06, 0x31, 0x24, 0x55, 0xaf, 0xf7,\n\t0xf5, 0xac, 0xf7, 0x42, 0xcb, 0x0d, 0x62, 0x84, 0xc5, 0x87, 0x7d, 0x21, 0x0e, 0x0b, 0x09, 0x18,\n\t0x71, 0x39, 0xa5, 0xf9, 0xae, 0x66, 0x4b, 0x7f, 0x3f, 0xac, 0x01, 0x91, 0x17, 0x41, 0xce, 0x89,\n\t0x6f, 0x24, 0xc1, 0xd5, 0xef, 0x14, 0x50, 0xd8, 0x43, 0x53, 0x27, 0xdb, 0xb8, 0x45, 0x6d, 0x07,\n\t0x6e, 0x80, 0x51, 0x3e, 0x72, 0xaf, 0x21, 0x43, 0x59, 0x1c, 0x7c, 0x1b, 0x39, 0x6d, 0xf5, 0x2c,\n\t0xcb, 0xc8, 0xb2, 0xc0, 0x40, 0x3e, 0x18, 0xdc, 0x04, 0xe3, 0xfc, 0xe7, 0x0d, 0xfb, 0xa1, 0x25,\n\t0xc3, 0x78, 0x60, 0xe4, 0x49, 0x76, 0x42, 0x94, 0x7d, 0x14, 0x14, 0x02, 0xaa, 0xef, 0xa6, 0xc1,\n\t0xfc, 0x1e, 0x9e, 0x2d, 0xdb, 0x96, 0x49, 0x19, 0xf9, 0xe1, 0xcd, 0x58, 0xfe, 0x2f, 0x26, 0xf2,\n\t0xff, 0x72, 0x3f, 0xfd, 0x48, 0x3d, 0x58, 0x09, 0xf6, 0x2b, 0x15, 0xc3, 0x92, 0x01, 0x7f, 0xd5,\n\t0x2e, 0xf4, 0xe8, 0xc7, 0xb4, 0x00, 0x29, 0xbe, 0x2d, 0xb0, 0x05, 0x60, 0x0d, 0xbb, 0xde, 0xba,\n\t0x83, 0x2d, 0x57, 0x58, 0xa2, 0x75, 0x22, 0x99, 0x70, 0x75, 0x30, 0x22, 0x33, 0x0d, 0x7d, 0x4e,\n\t0xae, 0x02, 0xae, 0x74, 0xa1, 0xa1, 0x1e, 0x16, 0xe0, 0x6f, 0xc1, 0x88, 0x43, 0xb0, 0x6b, 0x5b,\n\t0xb9, 0x0c, 0xf7, 0x22, 0xa0, 0x0d, 0xe2, 0xa3, 0x48, 0xce, 0xc2, 0xdf, 0x83, 0xd1, 0x3a, 0x71,\n\t0x5d, 0x5c, 0x25, 0xb9, 0x61, 0x2e, 0x18, 0xd4, 0xdd, 0x55, 0x31, 0x8c, 0xfc, 0x79, 0xf5, 0x7b,\n\t0x05, 0x5c, 0xdc, 0x23, 0x8e, 0x2b, 0xd4, 0xf5, 0xe0, 0x66, 0x57, 0xa6, 0x6a, 0x83, 0x39, 0xc8,\n\t0xb4, 0x79, 0x9e, 0x06, 0x35, 0xc2, 0x1f, 0x89, 0x64, 0xe9, 0x26, 0x18, 0xa6, 0x1e, 0xa9, 0xfb,\n\t0x05, 0xe8, 0x6f, 0x87, 0xcc, 0xa2, 0xb0, 0xbe, 0xdf, 0x62, 0x68, 0x48, 0x80, 0xaa, 0x4f, 0xd3,\n\t0x7b, 0xfa, 0xc6, 0x52, 0x19, 0xbe, 0x09, 0xa6, 0xf8, 0x97, 0x3c, 0x5b, 0xc9, 0x96, 0xf4, 0xb0,\n\t0x6f, 0xb5, 0xd8, 0xa7, 0xb5, 0xd1, 0xcf, 0xcb, 0xa5, 0x4c, 0x95, 0x63, 0xd0, 0x28, 0x61, 0x0a,\n\t0x2e, 0x80, 0x6c, 0x9d, 0x5a, 0x88, 0x34, 0x6a, 0xd4, 0xc0, 0xae, 0x3c, 0xa7, 0xa6, 0x3b, 0xed,\n\t0x42, 0x76, 0x35, 0x1c, 0x46, 0x51, 0x19, 0xf8, 0x17, 0x90, 0xad, 0xe3, 0x47, 0x81, 0x8a, 0x38,\n\t0x4f, 0xce, 0x48, 0x7b, 0xd9, 0xd5, 0x70, 0x0a, 0x45, 0xe5, 0xe0, 0x3d, 0xc6, 0x06, 0x76, 0x12,\n\t0xbb, 0xb9, 0x0c, 0x0f, 0xf3, 0xd5, 0xc1, 0x0e, 0x6e, 0x5e, 0xfc, 0x22, 0xcc, 0xe1, 0x10, 0xc8,\n\t0xc7, 0x82, 0x14, 0x8c, 0x55, 0x64, 0x0d, 0xe2, 0x2c, 0xcb, 0x96, 0xfe, 0x71, 0xd8, 0xed, 0x93,\n\t0x30, 0xfa, 0x04, 0xa3, 0x89, 0xff, 0x85, 0x02, 0x78, 0xf5, 0xd3, 0x0c, 0xb8, 0xb4, 0x6f, 0x01,\n\t0x85, 0xff, 0x06, 0xd0, 0xae, 0xb8, 0xc4, 0x69, 0x11, 0xf3, 0x3f, 0xe2, 0xbe, 0xc1, 0x9a, 0x42,\n\t0xb6, 0x9d, 0x69, 0xfd, 0x3c, 0xcb, 0xb0, 0xbb, 0x5d, 0xb3, 0xa8, 0x87, 0x06, 0x34, 0xc0, 0x24,\n\t0xcb, 0x3b, 0xb1, 0x77, 0x54, 0xf6, 0x9f, 0x07, 0x4b, 0xea, 0x59, 0xd6, 0x3a, 0xac, 0x44, 0x41,\n\t0x50, 0x1c, 0x13, 0x2e, 0x81, 0x69, 0xd9, 0xf6, 0x24, 0xf6, 0xf2, 0x82, 0x0c, 0xf6, 0xf4, 0x72,\n\t0x7c, 0x1a, 0x25, 0xe5, 0x19, 0x84, 0x49, 0x5c, 0xea, 0x10, 0x33, 0x80, 0xc8, 0xc4, 0x21, 0x6e,\n\t0xc4, 0xa7, 0x51, 0x52, 0x1e, 0xd6, 0xc0, 0x94, 0x44, 0x95, 0x5b, 0x9b, 0x1b, 0xe6, 0xec, 0x18,\n\t0xb0, 0x41, 0x95, 0x27, 0x57, 0x40, 0xf7, 0xe5, 0x18, 0x16, 0x4a, 0x60, 0x43, 0x0f, 0x00, 0xc3,\n\t0xaf, 0xa6, 0x6e, 0x6e, 0x84, 0x5b, 0xfa, 0xe7, 0x21, 0xf9, 0x12, 0x94, 0xe5, 0xb0, 0x07, 0x08,\n\t0x86, 0x5c, 0x14, 0xb1, 0xa3, 0x7e, 0xa0, 0x80, 0x99, 0x64, 0x83, 0x1b, 0x5c, 0x2d, 0x94, 0x3d,\n\t0xaf, 0x16, 0xf7, 0xc1, 0x98, 0x68, 0x95, 0x6c, 0x47, 0x12, 0xe0, 0xcf, 0x03, 0x16, 0x3d, 0x5c,\n\t0x21, 0xb5, 0xb2, 0x54, 0x15, 0x74, 0xf6, 0xbf, 0x50, 0x00, 0xa9, 0x7e, 0x92, 0x01, 0x20, 0x4c,\n\t0x31, 0xb8, 0x18, 0x3b, 0xe5, 0xe6, 0x13, 0xa7, 0xdc, 0x4c, 0xf4, 0x9e, 0x12, 0x39, 0xd1, 0x36,\n\t0xc0, 0x88, 0xcd, 0x4b, 0x8f, 0x5c, 0x61, 0xa9, 0x5f, 0x30, 0x83, 0x36, 0x29, 0x40, 0xd3, 0x01,\n\t0x3b, 0x3b, 0x64, 0x01, 0x93, 0x68, 0xf0, 0x0e, 0xc8, 0x34, 0x6c, 0xd3, 0xef, 0x6b, 0xfa, 0xb6,\n\t0x84, 0x6b, 0xb6, 0xe9, 0xc6, 0x30, 0xc7, 0xd8, 0xda, 0xd9, 0x28, 0xe2, 0x38, 0xac, 0xcd, 0xf4,\n\t0x5f, 0x2a, 0x38, 0x45, 0xb3, 0xa5, 0xc5, 0x7e, 0x98, 0xbd, 0x1e, 0x05, 0x44, 0x30, 0xfd, 0x19,\n\t0x14, 0x60, 0xc2, 0x77, 0x14, 0x30, 0x6b, 0x24, 0x2f, 0xd8, 0xb9, 0xd1, 0xc1, 0xba, 0xb2, 0x7d,\n\t0xdf, 0x21, 0xf4, 0x73, 0x9d, 0x76, 0x61, 0xb6, 0x4b, 0x04, 0x75, 0x9b, 0x63, 0x4e, 0x12, 0x79,\n\t0x1b, 0x93, 0xb5, 0xb0, 0xaf, 0x93, 0xbd, 0xae, 0xa1, 0xc2, 0x49, 0x7f, 0x06, 0x05, 0x98, 0xea,\n\t0x93, 0x0c, 0x98, 0x88, 0x5d, 0xf3, 0x7e, 0x0d, 0xce, 0x88, 0x84, 0x3f, 0x5a, 0xce, 0x08, 0xcc,\n\t0xa3, 0xe7, 0x8c, 0xc0, 0x3d, 0x51, 0xce, 0x08, 0x93, 0x27, 0xc9, 0x99, 0x88, 0x93, 0x3d, 0x38,\n\t0xf3, 0x65, 0xca, 0xe7, 0x8c, 0x68, 0x3a, 0x06, 0xe3, 0x8c, 0x90, 0x8d, 0x70, 0xe6, 0x6e, 0xf4,\n\t0x26, 0xdd, 0xa7, 0xfb, 0xd3, 0xfc, 0x08, 0x6b, 0xff, 0x6d, 0x62, 0xcb, 0xa3, 0xde, 0xae, 0x3e,\n\t0xde, 0x75, 0xeb, 0x36, 0xc1, 0x04, 0x6e, 0x11, 0x07, 0x57, 0x09, 0x1f, 0x96, 0xa4, 0x39, 0x28,\n\t0xee, 0x0c, 0xbb, 0xf4, 0x2e, 0x45, 0x70, 0x50, 0x0c, 0x95, 0x35, 0x04, 0xf2, 0xfb, 0x9e, 0x17,\n\t0xdc, 0xa6, 0xe5, 0x19, 0xc9, 0x1b, 0x82, 0xa5, 0xae, 0x59, 0xd4, 0x43, 0x43, 0x7d, 0x3f, 0x05,\n\t0x66, 0xbb, 0xde, 0x31, 0xc2, 0xa0, 0x28, 0xc7, 0x14, 0x94, 0xd4, 0x09, 0x06, 0x25, 0x7d, 0xe0,\n\t0xa0, 0x7c, 0x95, 0x02, 0xb0, 0xfb, 0x38, 0x81, 0x6f, 0xf1, 0xa6, 0xc4, 0x70, 0x68, 0x85, 0x98,\n\t0x62, 0xfa, 0x28, 0x1a, 0xea, 0x68, 0x47, 0x13, 0xc5, 0x46, 0x49, 0x63, 0xc7, 0xf4, 0xe4, 0x1b,\n\t0xbe, 0xa8, 0xa5, 0x8f, 0xf6, 0x45, 0x4d, 0xfd, 0x26, 0x19, 0xc6, 0x53, 0xfd, 0x84, 0xd7, 0x6b,\n\t0xfb, 0xd3, 0x27, 0xb8, 0xfd, 0xea, 0x17, 0x0a, 0x98, 0x49, 0xb6, 0x23, 0xa7, 0xee, 0x61, 0xf7,\n\t0xeb, 0xb8, 0x13, 0xa7, 0xfb, 0x51, 0xf7, 0x89, 0x02, 0xce, 0x9e, 0xb2, 0x7f, 0x78, 0xd4, 0xcf,\n\t0xba, 0xd7, 0x7c, 0x5a, 0xfe, 0xa7, 0xd1, 0x6f, 0x3c, 0x7b, 0x99, 0x1f, 0x7a, 0xfe, 0x32, 0x3f,\n\t0xf4, 0xe2, 0x65, 0x7e, 0xe8, 0xed, 0x4e, 0x5e, 0x79, 0xd6, 0xc9, 0x2b, 0xcf, 0x3b, 0x79, 0xe5,\n\t0x45, 0x27, 0xaf, 0xfc, 0xd0, 0xc9, 0x2b, 0xef, 0xfd, 0x98, 0x1f, 0x7a, 0x2d, 0xbf, 0xff, 0x1f,\n\t0x9f, 0xbf, 0x04, 0x00, 0x00, 0xff, 0xff, 0xa4, 0x27, 0xde, 0xc0, 0x19, 0x1d, 0x00, 0x00,\n}\n\nfunc (m *ContainerResourceMetricSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerResourceMetricSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerResourceMetricSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Container)\n\tcopy(dAtA[i:], m.Container)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Container)))\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Target.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerResourceMetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerResourceMetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerResourceMetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Container)\n\tcopy(dAtA[i:], m.Container)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Container)))\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Current.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CrossVersionObjectReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CrossVersionObjectReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CrossVersionObjectReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.APIVersion)\n\tcopy(dAtA[i:], m.APIVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIVersion)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ExternalMetricSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ExternalMetricSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ExternalMetricSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Target.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.Metric.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ExternalMetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ExternalMetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ExternalMetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Current.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.Metric.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HPAScalingPolicy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HPAScalingPolicy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HPAScalingPolicy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.PeriodSeconds))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Value))\n\ti--\n\tdAtA[i] = 0x10\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HPAScalingRules) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HPAScalingRules) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HPAScalingRules) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.StabilizationWindowSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.StabilizationWindowSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif len(m.Policies) > 0 {\n\t\tfor iNdEx := len(m.Policies) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Policies[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif m.SelectPolicy != nil {\n\t\ti -= len(*m.SelectPolicy)\n\t\tcopy(dAtA[i:], *m.SelectPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.SelectPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscaler) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscaler) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscaler) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscalerBehavior) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscalerBehavior) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscalerBehavior) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ScaleDown != nil {\n\t\t{\n\t\t\tsize, err := m.ScaleDown.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.ScaleUp != nil {\n\t\t{\n\t\t\tsize, err := m.ScaleUp.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscalerCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscalerCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscalerCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscalerList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscalerList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscalerList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscalerSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscalerSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscalerSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Behavior != nil {\n\t\t{\n\t\t\tsize, err := m.Behavior.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif len(m.Metrics) > 0 {\n\t\tfor iNdEx := len(m.Metrics) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Metrics[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MaxReplicas))\n\ti--\n\tdAtA[i] = 0x18\n\tif m.MinReplicas != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.MinReplicas))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\t{\n\t\tsize, err := m.ScaleTargetRef.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HorizontalPodAutoscalerStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HorizontalPodAutoscalerStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HorizontalPodAutoscalerStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\tif len(m.CurrentMetrics) > 0 {\n\t\tfor iNdEx := len(m.CurrentMetrics) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.CurrentMetrics[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.DesiredReplicas))\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.CurrentReplicas))\n\ti--\n\tdAtA[i] = 0x18\n\tif m.LastScaleTime != nil {\n\t\t{\n\t\t\tsize, err := m.LastScaleTime.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.ObservedGeneration != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.ObservedGeneration))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MetricIdentifier) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MetricIdentifier) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MetricIdentifier) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MetricSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MetricSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MetricSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ContainerResource != nil {\n\t\t{\n\t\t\tsize, err := m.ContainerResource.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif m.External != nil {\n\t\t{\n\t\t\tsize, err := m.External.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.Resource != nil {\n\t\t{\n\t\t\tsize, err := m.Resource.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Pods != nil {\n\t\t{\n\t\t\tsize, err := m.Pods.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Object != nil {\n\t\t{\n\t\t\tsize, err := m.Object.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ContainerResource != nil {\n\t\t{\n\t\t\tsize, err := m.ContainerResource.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif m.External != nil {\n\t\t{\n\t\t\tsize, err := m.External.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.Resource != nil {\n\t\t{\n\t\t\tsize, err := m.Resource.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Pods != nil {\n\t\t{\n\t\t\tsize, err := m.Pods.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Object != nil {\n\t\t{\n\t\t\tsize, err := m.Object.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MetricTarget) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MetricTarget) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MetricTarget) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.AverageUtilization != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.AverageUtilization))\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif m.AverageValue != nil {\n\t\t{\n\t\t\tsize, err := m.AverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Value != nil {\n\t\t{\n\t\t\tsize, err := m.Value.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MetricValueStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MetricValueStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MetricValueStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.AverageUtilization != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.AverageUtilization))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif m.AverageValue != nil {\n\t\t{\n\t\t\tsize, err := m.AverageValue.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Value != nil {\n\t\t{\n\t\t\tsize, err := m.Value.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ObjectMetricSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ObjectMetricSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ObjectMetricSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Metric.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Target.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.DescribedObject.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ObjectMetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ObjectMetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ObjectMetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.DescribedObject.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Current.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.Metric.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodsMetricSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodsMetricSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodsMetricSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Target.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.Metric.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodsMetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodsMetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodsMetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Current.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.Metric.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceMetricSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceMetricSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceMetricSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Target.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceMetricStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceMetricStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceMetricStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Current.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *ContainerResourceMetricSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Target.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Container)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ContainerResourceMetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Current.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Container)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *CrossVersionObjectReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.APIVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ExternalMetricSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Metric.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Target.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ExternalMetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Metric.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Current.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *HPAScalingPolicy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.Value))\n\tn += 1 + sovGenerated(uint64(m.PeriodSeconds))\n\treturn n\n}\n\nfunc (m *HPAScalingRules) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.SelectPolicy != nil {\n\t\tl = len(*m.SelectPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.Policies) > 0 {\n\t\tfor _, e := range m.Policies {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.StabilizationWindowSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.StabilizationWindowSeconds))\n\t}\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscaler) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscalerBehavior) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.ScaleUp != nil {\n\t\tl = m.ScaleUp.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ScaleDown != nil {\n\t\tl = m.ScaleDown.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscalerCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscalerList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscalerSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ScaleTargetRef.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.MinReplicas != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.MinReplicas))\n\t}\n\tn += 1 + sovGenerated(uint64(m.MaxReplicas))\n\tif len(m.Metrics) > 0 {\n\t\tfor _, e := range m.Metrics {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.Behavior != nil {\n\t\tl = m.Behavior.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *HorizontalPodAutoscalerStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.ObservedGeneration != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.ObservedGeneration))\n\t}\n\tif m.LastScaleTime != nil {\n\t\tl = m.LastScaleTime.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 1 + sovGenerated(uint64(m.CurrentReplicas))\n\tn += 1 + sovGenerated(uint64(m.DesiredReplicas))\n\tif len(m.CurrentMetrics) > 0 {\n\t\tfor _, e := range m.CurrentMetrics {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *MetricIdentifier) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *MetricSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Object != nil {\n\t\tl = m.Object.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Pods != nil {\n\t\tl = m.Pods.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Resource != nil {\n\t\tl = m.Resource.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.External != nil {\n\t\tl = m.External.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ContainerResource != nil {\n\t\tl = m.ContainerResource.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *MetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Object != nil {\n\t\tl = m.Object.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Pods != nil {\n\t\tl = m.Pods.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Resource != nil {\n\t\tl = m.Resource.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.External != nil {\n\t\tl = m.External.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ContainerResource != nil {\n\t\tl = m.ContainerResource.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *MetricTarget) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Value != nil {\n\t\tl = m.Value.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.AverageValue != nil {\n\t\tl = m.AverageValue.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.AverageUtilization != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.AverageUtilization))\n\t}\n\treturn n\n}\n\nfunc (m *MetricValueStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Value != nil {\n\t\tl = m.Value.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.AverageValue != nil {\n\t\tl = m.AverageValue.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.AverageUtilization != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.AverageUtilization))\n\t}\n\treturn n\n}\n\nfunc (m *ObjectMetricSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.DescribedObject.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Target.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Metric.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ObjectMetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Metric.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Current.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.DescribedObject.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PodsMetricSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Metric.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Target.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PodsMetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Metric.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Current.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ResourceMetricSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Target.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ResourceMetricStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Current.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *ContainerResourceMetricSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ContainerResourceMetricSource{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Target:` + strings.Replace(strings.Replace(this.Target.String(), \"MetricTarget\", \"MetricTarget\", 1), `&`, ``, 1) + `,`,\n\t\t`Container:` + fmt.Sprintf(\"%v\", this.Container) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerResourceMetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ContainerResourceMetricStatus{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Current:` + strings.Replace(strings.Replace(this.Current.String(), \"MetricValueStatus\", \"MetricValueStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`Container:` + fmt.Sprintf(\"%v\", this.Container) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CrossVersionObjectReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CrossVersionObjectReference{`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`APIVersion:` + fmt.Sprintf(\"%v\", this.APIVersion) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ExternalMetricSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ExternalMetricSource{`,\n\t\t`Metric:` + strings.Replace(strings.Replace(this.Metric.String(), \"MetricIdentifier\", \"MetricIdentifier\", 1), `&`, ``, 1) + `,`,\n\t\t`Target:` + strings.Replace(strings.Replace(this.Target.String(), \"MetricTarget\", \"MetricTarget\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ExternalMetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ExternalMetricStatus{`,\n\t\t`Metric:` + strings.Replace(strings.Replace(this.Metric.String(), \"MetricIdentifier\", \"MetricIdentifier\", 1), `&`, ``, 1) + `,`,\n\t\t`Current:` + strings.Replace(strings.Replace(this.Current.String(), \"MetricValueStatus\", \"MetricValueStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HPAScalingPolicy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HPAScalingPolicy{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Value:` + fmt.Sprintf(\"%v\", this.Value) + `,`,\n\t\t`PeriodSeconds:` + fmt.Sprintf(\"%v\", this.PeriodSeconds) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HPAScalingRules) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForPolicies := \"[]HPAScalingPolicy{\"\n\tfor _, f := range this.Policies {\n\t\trepeatedStringForPolicies += strings.Replace(strings.Replace(f.String(), \"HPAScalingPolicy\", \"HPAScalingPolicy\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPolicies += \"}\"\n\ts := strings.Join([]string{`&HPAScalingRules{`,\n\t\t`SelectPolicy:` + valueToStringGenerated(this.SelectPolicy) + `,`,\n\t\t`Policies:` + repeatedStringForPolicies + `,`,\n\t\t`StabilizationWindowSeconds:` + valueToStringGenerated(this.StabilizationWindowSeconds) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscaler) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HorizontalPodAutoscaler{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"HorizontalPodAutoscalerSpec\", \"HorizontalPodAutoscalerSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"HorizontalPodAutoscalerStatus\", \"HorizontalPodAutoscalerStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscalerBehavior) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HorizontalPodAutoscalerBehavior{`,\n\t\t`ScaleUp:` + strings.Replace(this.ScaleUp.String(), \"HPAScalingRules\", \"HPAScalingRules\", 1) + `,`,\n\t\t`ScaleDown:` + strings.Replace(this.ScaleDown.String(), \"HPAScalingRules\", \"HPAScalingRules\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscalerCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HorizontalPodAutoscalerCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscalerList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]HorizontalPodAutoscaler{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"HorizontalPodAutoscaler\", \"HorizontalPodAutoscaler\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&HorizontalPodAutoscalerList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscalerSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForMetrics := \"[]MetricSpec{\"\n\tfor _, f := range this.Metrics {\n\t\trepeatedStringForMetrics += strings.Replace(strings.Replace(f.String(), \"MetricSpec\", \"MetricSpec\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForMetrics += \"}\"\n\ts := strings.Join([]string{`&HorizontalPodAutoscalerSpec{`,\n\t\t`ScaleTargetRef:` + strings.Replace(strings.Replace(this.ScaleTargetRef.String(), \"CrossVersionObjectReference\", \"CrossVersionObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`MinReplicas:` + valueToStringGenerated(this.MinReplicas) + `,`,\n\t\t`MaxReplicas:` + fmt.Sprintf(\"%v\", this.MaxReplicas) + `,`,\n\t\t`Metrics:` + repeatedStringForMetrics + `,`,\n\t\t`Behavior:` + strings.Replace(this.Behavior.String(), \"HorizontalPodAutoscalerBehavior\", \"HorizontalPodAutoscalerBehavior\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HorizontalPodAutoscalerStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForCurrentMetrics := \"[]MetricStatus{\"\n\tfor _, f := range this.CurrentMetrics {\n\t\trepeatedStringForCurrentMetrics += strings.Replace(strings.Replace(f.String(), \"MetricStatus\", \"MetricStatus\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForCurrentMetrics += \"}\"\n\trepeatedStringForConditions := \"[]HorizontalPodAutoscalerCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"HorizontalPodAutoscalerCondition\", \"HorizontalPodAutoscalerCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&HorizontalPodAutoscalerStatus{`,\n\t\t`ObservedGeneration:` + valueToStringGenerated(this.ObservedGeneration) + `,`,\n\t\t`LastScaleTime:` + strings.Replace(fmt.Sprintf(\"%v\", this.LastScaleTime), \"Time\", \"v1.Time\", 1) + `,`,\n\t\t`CurrentReplicas:` + fmt.Sprintf(\"%v\", this.CurrentReplicas) + `,`,\n\t\t`DesiredReplicas:` + fmt.Sprintf(\"%v\", this.DesiredReplicas) + `,`,\n\t\t`CurrentMetrics:` + repeatedStringForCurrentMetrics + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MetricIdentifier) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&MetricIdentifier{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MetricSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&MetricSpec{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Object:` + strings.Replace(this.Object.String(), \"ObjectMetricSource\", \"ObjectMetricSource\", 1) + `,`,\n\t\t`Pods:` + strings.Replace(this.Pods.String(), \"PodsMetricSource\", \"PodsMetricSource\", 1) + `,`,\n\t\t`Resource:` + strings.Replace(this.Resource.String(), \"ResourceMetricSource\", \"ResourceMetricSource\", 1) + `,`,\n\t\t`External:` + strings.Replace(this.External.String(), \"ExternalMetricSource\", \"ExternalMetricSource\", 1) + `,`,\n\t\t`ContainerResource:` + strings.Replace(this.ContainerResource.String(), \"ContainerResourceMetricSource\", \"ContainerResourceMetricSource\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&MetricStatus{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Object:` + strings.Replace(this.Object.String(), \"ObjectMetricStatus\", \"ObjectMetricStatus\", 1) + `,`,\n\t\t`Pods:` + strings.Replace(this.Pods.String(), \"PodsMetricStatus\", \"PodsMetricStatus\", 1) + `,`,\n\t\t`Resource:` + strings.Replace(this.Resource.String(), \"ResourceMetricStatus\", \"ResourceMetricStatus\", 1) + `,`,\n\t\t`External:` + strings.Replace(this.External.String(), \"ExternalMetricStatus\", \"ExternalMetricStatus\", 1) + `,`,\n\t\t`ContainerResource:` + strings.Replace(this.ContainerResource.String(), \"ContainerResourceMetricStatus\", \"ContainerResourceMetricStatus\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MetricTarget) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&MetricTarget{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Value:` + strings.Replace(fmt.Sprintf(\"%v\", this.Value), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`AverageValue:` + strings.Replace(fmt.Sprintf(\"%v\", this.AverageValue), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`AverageUtilization:` + valueToStringGenerated(this.AverageUtilization) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MetricValueStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&MetricValueStatus{`,\n\t\t`Value:` + strings.Replace(fmt.Sprintf(\"%v\", this.Value), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`AverageValue:` + strings.Replace(fmt.Sprintf(\"%v\", this.AverageValue), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`AverageUtilization:` + valueToStringGenerated(this.AverageUtilization) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ObjectMetricSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ObjectMetricSource{`,\n\t\t`DescribedObject:` + strings.Replace(strings.Replace(this.DescribedObject.String(), \"CrossVersionObjectReference\", \"CrossVersionObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`Target:` + strings.Replace(strings.Replace(this.Target.String(), \"MetricTarget\", \"MetricTarget\", 1), `&`, ``, 1) + `,`,\n\t\t`Metric:` + strings.Replace(strings.Replace(this.Metric.String(), \"MetricIdentifier\", \"MetricIdentifier\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ObjectMetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ObjectMetricStatus{`,\n\t\t`Metric:` + strings.Replace(strings.Replace(this.Metric.String(), \"MetricIdentifier\", \"MetricIdentifier\", 1), `&`, ``, 1) + `,`,\n\t\t`Current:` + strings.Replace(strings.Replace(this.Current.String(), \"MetricValueStatus\", \"MetricValueStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`DescribedObject:` + strings.Replace(strings.Replace(this.DescribedObject.String(), \"CrossVersionObjectReference\", \"CrossVersionObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodsMetricSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodsMetricSource{`,\n\t\t`Metric:` + strings.Replace(strings.Replace(this.Metric.String(), \"MetricIdentifier\", \"MetricIdentifier\", 1), `&`, ``, 1) + `,`,\n\t\t`Target:` + strings.Replace(strings.Replace(this.Target.String(), \"MetricTarget\", \"MetricTarget\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodsMetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodsMetricStatus{`,\n\t\t`Metric:` + strings.Replace(strings.Replace(this.Metric.String(), \"MetricIdentifier\", \"MetricIdentifier\", 1), `&`, ``, 1) + `,`,\n\t\t`Current:` + strings.Replace(strings.Replace(this.Current.String(), \"MetricValueStatus\", \"MetricValueStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceMetricSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceMetricSource{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Target:` + strings.Replace(strings.Replace(this.Target.String(), \"MetricTarget\", \"MetricTarget\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceMetricStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceMetricStatus{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Current:` + strings.Replace(strings.Replace(this.Current.String(), \"MetricValueStatus\", \"MetricValueStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *ContainerResourceMetricSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerResourceMetricSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerResourceMetricSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Target\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Target.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Container\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Container = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerResourceMetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerResourceMetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerResourceMetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Current\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Current.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Container\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Container = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CrossVersionObjectReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CrossVersionObjectReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CrossVersionObjectReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ExternalMetricSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ExternalMetricSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ExternalMetricSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Metric\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Metric.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Target\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Target.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ExternalMetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ExternalMetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ExternalMetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Metric\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Metric.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Current\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Current.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HPAScalingPolicy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HPAScalingPolicy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HPAScalingPolicy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = HPAScalingPolicyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Value\", wireType)\n\t\t\t}\n\t\t\tm.Value = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Value |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PeriodSeconds\", wireType)\n\t\t\t}\n\t\t\tm.PeriodSeconds = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.PeriodSeconds |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HPAScalingRules) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HPAScalingRules: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HPAScalingRules: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SelectPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := ScalingPolicySelect(dAtA[iNdEx:postIndex])\n\t\t\tm.SelectPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Policies\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Policies = append(m.Policies, HPAScalingPolicy{})\n\t\t\tif err := m.Policies[len(m.Policies)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StabilizationWindowSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.StabilizationWindowSeconds = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscaler) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscaler: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscaler: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscalerBehavior) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerBehavior: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerBehavior: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ScaleUp\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ScaleUp == nil {\n\t\t\t\tm.ScaleUp = &HPAScalingRules{}\n\t\t\t}\n\t\t\tif err := m.ScaleUp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ScaleDown\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ScaleDown == nil {\n\t\t\t\tm.ScaleDown = &HPAScalingRules{}\n\t\t\t}\n\t\t\tif err := m.ScaleDown.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscalerCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = HorizontalPodAutoscalerConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscalerList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, HorizontalPodAutoscaler{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscalerSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ScaleTargetRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ScaleTargetRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MinReplicas\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.MinReplicas = &v\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxReplicas\", wireType)\n\t\t\t}\n\t\t\tm.MaxReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MaxReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Metrics\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Metrics = append(m.Metrics, MetricSpec{})\n\t\t\tif err := m.Metrics[len(m.Metrics)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Behavior\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Behavior == nil {\n\t\t\t\tm.Behavior = &HorizontalPodAutoscalerBehavior{}\n\t\t\t}\n\t\t\tif err := m.Behavior.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HorizontalPodAutoscalerStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HorizontalPodAutoscalerStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ObservedGeneration = &v\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastScaleTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.LastScaleTime == nil {\n\t\t\t\tm.LastScaleTime = &v1.Time{}\n\t\t\t}\n\t\t\tif err := m.LastScaleTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentReplicas\", wireType)\n\t\t\t}\n\t\t\tm.CurrentReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.CurrentReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DesiredReplicas\", wireType)\n\t\t\t}\n\t\t\tm.DesiredReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.DesiredReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentMetrics\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.CurrentMetrics = append(m.CurrentMetrics, MetricStatus{})\n\t\t\tif err := m.CurrentMetrics[len(m.CurrentMetrics)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, HorizontalPodAutoscalerCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MetricIdentifier) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MetricIdentifier: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MetricIdentifier: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MetricSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MetricSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MetricSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = MetricSourceType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Object\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Object == nil {\n\t\t\t\tm.Object = &ObjectMetricSource{}\n\t\t\t}\n\t\t\tif err := m.Object.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Pods\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Pods == nil {\n\t\t\t\tm.Pods = &PodsMetricSource{}\n\t\t\t}\n\t\t\tif err := m.Pods.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Resource == nil {\n\t\t\t\tm.Resource = &ResourceMetricSource{}\n\t\t\t}\n\t\t\tif err := m.Resource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field External\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.External == nil {\n\t\t\t\tm.External = &ExternalMetricSource{}\n\t\t\t}\n\t\t\tif err := m.External.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerResource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ContainerResource == nil {\n\t\t\t\tm.ContainerResource = &ContainerResourceMetricSource{}\n\t\t\t}\n\t\t\tif err := m.ContainerResource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = MetricSourceType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Object\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Object == nil {\n\t\t\t\tm.Object = &ObjectMetricStatus{}\n\t\t\t}\n\t\t\tif err := m.Object.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Pods\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Pods == nil {\n\t\t\t\tm.Pods = &PodsMetricStatus{}\n\t\t\t}\n\t\t\tif err := m.Pods.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Resource == nil {\n\t\t\t\tm.Resource = &ResourceMetricStatus{}\n\t\t\t}\n\t\t\tif err := m.Resource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field External\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.External == nil {\n\t\t\t\tm.External = &ExternalMetricStatus{}\n\t\t\t}\n\t\t\tif err := m.External.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerResource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ContainerResource == nil {\n\t\t\t\tm.ContainerResource = &ContainerResourceMetricStatus{}\n\t\t\t}\n\t\t\tif err := m.ContainerResource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MetricTarget) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MetricTarget: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MetricTarget: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = MetricTargetType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Value\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Value == nil {\n\t\t\t\tm.Value = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AverageValue == nil {\n\t\t\t\tm.AverageValue = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.AverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AverageUtilization\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.AverageUtilization = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MetricValueStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MetricValueStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MetricValueStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Value\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Value == nil {\n\t\t\t\tm.Value = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AverageValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AverageValue == nil {\n\t\t\t\tm.AverageValue = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.AverageValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AverageUtilization\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.AverageUtilization = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ObjectMetricSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectMetricSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectMetricSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DescribedObject\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.DescribedObject.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Target\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Target.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Metric\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Metric.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ObjectMetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectMetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectMetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Metric\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Metric.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Current\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Current.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DescribedObject\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.DescribedObject.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodsMetricSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodsMetricSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodsMetricSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Metric\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Metric.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Target\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Target.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodsMetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodsMetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodsMetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Metric\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Metric.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Current\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Current.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceMetricSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceMetricSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceMetricSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Target\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Target.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceMetricStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceMetricStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceMetricStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Current\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Current.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2beta2/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.autoscaling.v2beta2;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/api/resource/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/autoscaling/v2beta2\";\n\n// ContainerResourceMetricSource indicates how to scale on a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  The values will be averaged\n// together before being compared to the target.  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.  Only one \"target\" type\n// should be set.\nmessage ContainerResourceMetricSource {\n  // name is the name of the resource in question.\n  optional string name = 1;\n\n  // target specifies the target value for the given metric\n  optional MetricTarget target = 2;\n\n  // container is the name of the container in the pods of the scaling target\n  optional string container = 3;\n}\n\n// ContainerResourceMetricStatus indicates the current value of a resource metric known to\n// Kubernetes, as specified in requests and limits, describing a single container in each pod in the\n// current scale target (e.g. CPU or memory).  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.\nmessage ContainerResourceMetricStatus {\n  // name is the name of the resource in question.\n  optional string name = 1;\n\n  // current contains the current value for the given metric\n  optional MetricValueStatus current = 2;\n\n  // container is the name of the container in the pods of the scaling target\n  optional string container = 3;\n}\n\n// CrossVersionObjectReference contains enough information to let you identify the referred resource.\nmessage CrossVersionObjectReference {\n  // kind is the kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  optional string kind = 1;\n\n  // name is the name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\n  optional string name = 2;\n\n  // apiVersion is the API version of the referent\n  // +optional\n  optional string apiVersion = 3;\n}\n\n// ExternalMetricSource indicates how to scale on a metric not associated with\n// any Kubernetes object (for example length of queue in cloud\n// messaging service, or QPS from loadbalancer running outside of cluster).\nmessage ExternalMetricSource {\n  // metric identifies the target metric by name and selector\n  optional MetricIdentifier metric = 1;\n\n  // target specifies the target value for the given metric\n  optional MetricTarget target = 2;\n}\n\n// ExternalMetricStatus indicates the current value of a global metric\n// not associated with any Kubernetes object.\nmessage ExternalMetricStatus {\n  // metric identifies the target metric by name and selector\n  optional MetricIdentifier metric = 1;\n\n  // current contains the current value for the given metric\n  optional MetricValueStatus current = 2;\n}\n\n// HPAScalingPolicy is a single policy which must hold true for a specified past interval.\nmessage HPAScalingPolicy {\n  // type is used to specify the scaling policy.\n  optional string type = 1;\n\n  // value contains the amount of change which is permitted by the policy.\n  // It must be greater than zero\n  optional int32 value = 2;\n\n  // periodSeconds specifies the window of time for which the policy should hold true.\n  // PeriodSeconds must be greater than zero and less than or equal to 1800 (30 min).\n  optional int32 periodSeconds = 3;\n}\n\n// HPAScalingRules configures the scaling behavior for one direction.\n// These Rules are applied after calculating DesiredReplicas from metrics for the HPA.\n// They can limit the scaling velocity by specifying scaling policies.\n// They can prevent flapping by specifying the stabilization window, so that the\n// number of replicas is not set instantly, instead, the safest value from the stabilization\n// window is chosen.\nmessage HPAScalingRules {\n  // stabilizationWindowSeconds is the number of seconds for which past recommendations should be\n  // considered while scaling up or scaling down.\n  // StabilizationWindowSeconds must be greater than or equal to zero and less than or equal to 3600 (one hour).\n  // If not set, use the default values:\n  // - For scale up: 0 (i.e. no stabilization is done).\n  // - For scale down: 300 (i.e. the stabilization window is 300 seconds long).\n  // +optional\n  optional int32 stabilizationWindowSeconds = 3;\n\n  // selectPolicy is used to specify which policy should be used.\n  // If not set, the default value MaxPolicySelect is used.\n  // +optional\n  optional string selectPolicy = 1;\n\n  // policies is a list of potential scaling polices which can be used during scaling.\n  // At least one policy must be specified, otherwise the HPAScalingRules will be discarded as invalid\n  // +optional\n  // +listType=atomic\n  repeated HPAScalingPolicy policies = 2;\n}\n\n// HorizontalPodAutoscaler is the configuration for a horizontal pod\n// autoscaler, which automatically manages the replica count of any resource\n// implementing the scale subresource based on the metrics specified.\nmessage HorizontalPodAutoscaler {\n  // metadata is the standard object metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec is the specification for the behaviour of the autoscaler.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\n  // +optional\n  optional HorizontalPodAutoscalerSpec spec = 2;\n\n  // status is the current information about the autoscaler.\n  // +optional\n  optional HorizontalPodAutoscalerStatus status = 3;\n}\n\n// HorizontalPodAutoscalerBehavior configures the scaling behavior of the target\n// in both Up and Down directions (scaleUp and scaleDown fields respectively).\nmessage HorizontalPodAutoscalerBehavior {\n  // scaleUp is scaling policy for scaling Up.\n  // If not set, the default value is the higher of:\n  //   * increase no more than 4 pods per 60 seconds\n  //   * double the number of pods per 60 seconds\n  // No stabilization is used.\n  // +optional\n  optional HPAScalingRules scaleUp = 1;\n\n  // scaleDown is scaling policy for scaling Down.\n  // If not set, the default value is to allow to scale down to minReplicas pods, with a\n  // 300 second stabilization window (i.e., the highest recommendation for\n  // the last 300sec is used).\n  // +optional\n  optional HPAScalingRules scaleDown = 2;\n}\n\n// HorizontalPodAutoscalerCondition describes the state of\n// a HorizontalPodAutoscaler at a certain point.\nmessage HorizontalPodAutoscalerCondition {\n  // type describes the current condition\n  optional string type = 1;\n\n  // status is the status of the condition (True, False, Unknown)\n  optional string status = 2;\n\n  // lastTransitionTime is the last time the condition transitioned from\n  // one status to another\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // reason is the reason for the condition's last transition.\n  // +optional\n  optional string reason = 4;\n\n  // message is a human-readable explanation containing details about\n  // the transition\n  // +optional\n  optional string message = 5;\n}\n\n// HorizontalPodAutoscalerList is a list of horizontal pod autoscaler objects.\nmessage HorizontalPodAutoscalerList {\n  // metadata is the standard list metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of horizontal pod autoscaler objects.\n  repeated HorizontalPodAutoscaler items = 2;\n}\n\n// HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.\nmessage HorizontalPodAutoscalerSpec {\n  // scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics\n  // should be collected, as well as to actually change the replica count.\n  optional CrossVersionObjectReference scaleTargetRef = 1;\n\n  // minReplicas is the lower limit for the number of replicas to which the autoscaler\n  // can scale down.  It defaults to 1 pod.  minReplicas is allowed to be 0 if the\n  // alpha feature gate HPAScaleToZero is enabled and at least one Object or External\n  // metric is configured.  Scaling is active as long as at least one metric value is\n  // available.\n  // +optional\n  optional int32 minReplicas = 2;\n\n  // maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up.\n  // It cannot be less that minReplicas.\n  optional int32 maxReplicas = 3;\n\n  // metrics contains the specifications for which to use to calculate the\n  // desired replica count (the maximum replica count across all metrics will\n  // be used).  The desired replica count is calculated multiplying the\n  // ratio between the target value and the current value by the current\n  // number of pods.  Ergo, metrics used must decrease as the pod count is\n  // increased, and vice-versa.  See the individual metric source types for\n  // more information about how each type of metric must respond.\n  // If not set, the default metric will be set to 80% average CPU utilization.\n  // +optional\n  // +listType=atomic\n  repeated MetricSpec metrics = 4;\n\n  // behavior configures the scaling behavior of the target\n  // in both Up and Down directions (scaleUp and scaleDown fields respectively).\n  // If not set, the default HPAScalingRules for scale up and scale down are used.\n  // +optional\n  optional HorizontalPodAutoscalerBehavior behavior = 5;\n}\n\n// HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.\nmessage HorizontalPodAutoscalerStatus {\n  // observedGeneration is the most recent generation observed by this autoscaler.\n  // +optional\n  optional int64 observedGeneration = 1;\n\n  // lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods,\n  // used by the autoscaler to control how often the number of pods is changed.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastScaleTime = 2;\n\n  // currentReplicas is current number of replicas of pods managed by this autoscaler,\n  // as last seen by the autoscaler.\n  optional int32 currentReplicas = 3;\n\n  // desiredReplicas is the desired number of replicas of pods managed by this autoscaler,\n  // as last calculated by the autoscaler.\n  optional int32 desiredReplicas = 4;\n\n  // currentMetrics is the last read state of the metrics used by this autoscaler.\n  // +optional\n  // +listType=atomic\n  repeated MetricStatus currentMetrics = 5;\n\n  // conditions is the set of conditions required for this autoscaler to scale its target,\n  // and indicates whether or not those conditions are met.\n  // +optional\n  // +listType=atomic\n  repeated HorizontalPodAutoscalerCondition conditions = 6;\n}\n\n// MetricIdentifier defines the name and optionally selector for a metric\nmessage MetricIdentifier {\n  // name is the name of the given metric\n  optional string name = 1;\n\n  // selector is the string-encoded form of a standard kubernetes label selector for the given metric\n  // When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping.\n  // When unset, just the metricName will be used to gather metrics.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2;\n}\n\n// MetricSpec specifies how to scale based on a single metric\n// (only `type` and one other matching field should be set at once).\nmessage MetricSpec {\n  // type is the type of metric source.  It should be one of \"ContainerResource\", \"External\",\n  // \"Object\", \"Pods\" or \"Resource\", each mapping to a matching field in the object.\n  optional string type = 1;\n\n  // object refers to a metric describing a single kubernetes object\n  // (for example, hits-per-second on an Ingress object).\n  // +optional\n  optional ObjectMetricSource object = 2;\n\n  // pods refers to a metric describing each pod in the current scale target\n  // (for example, transactions-processed-per-second).  The values will be\n  // averaged together before being compared to the target value.\n  // +optional\n  optional PodsMetricSource pods = 3;\n\n  // resource refers to a resource metric (such as those specified in\n  // requests and limits) known to Kubernetes describing each pod in the\n  // current scale target (e.g. CPU or memory). Such metrics are built in to\n  // Kubernetes, and have special scaling options on top of those available\n  // to normal per-pod metrics using the \"pods\" source.\n  // +optional\n  optional ResourceMetricSource resource = 4;\n\n  // container resource refers to a resource metric (such as those specified in\n  // requests and limits) known to Kubernetes describing a single container in\n  // each pod of the current scale target (e.g. CPU or memory). Such metrics are\n  // built in to Kubernetes, and have special scaling options on top of those\n  // available to normal per-pod metrics using the \"pods\" source.\n  // +optional\n  optional ContainerResourceMetricSource containerResource = 7;\n\n  // external refers to a global metric that is not associated\n  // with any Kubernetes object. It allows autoscaling based on information\n  // coming from components running outside of cluster\n  // (for example length of queue in cloud messaging service, or\n  // QPS from loadbalancer running outside of cluster).\n  // +optional\n  optional ExternalMetricSource external = 5;\n}\n\n// MetricStatus describes the last-read state of a single metric.\nmessage MetricStatus {\n  // type is the type of metric source.  It will be one of \"ContainerResource\", \"External\",\n  // \"Object\", \"Pods\" or \"Resource\", each corresponds to a matching field in the object.\n  optional string type = 1;\n\n  // object refers to a metric describing a single kubernetes object\n  // (for example, hits-per-second on an Ingress object).\n  // +optional\n  optional ObjectMetricStatus object = 2;\n\n  // pods refers to a metric describing each pod in the current scale target\n  // (for example, transactions-processed-per-second).  The values will be\n  // averaged together before being compared to the target value.\n  // +optional\n  optional PodsMetricStatus pods = 3;\n\n  // resource refers to a resource metric (such as those specified in\n  // requests and limits) known to Kubernetes describing each pod in the\n  // current scale target (e.g. CPU or memory). Such metrics are built in to\n  // Kubernetes, and have special scaling options on top of those available\n  // to normal per-pod metrics using the \"pods\" source.\n  // +optional\n  optional ResourceMetricStatus resource = 4;\n\n  // containerResource refers to a resource metric (such as those specified in\n  // requests and limits) known to Kubernetes describing a single container in each pod in the\n  // current scale target (e.g. CPU or memory). Such metrics are built in to\n  // Kubernetes, and have special scaling options on top of those available\n  // to normal per-pod metrics using the \"pods\" source.\n  // +optional\n  optional ContainerResourceMetricStatus containerResource = 7;\n\n  // external refers to a global metric that is not associated\n  // with any Kubernetes object. It allows autoscaling based on information\n  // coming from components running outside of cluster\n  // (for example length of queue in cloud messaging service, or\n  // QPS from loadbalancer running outside of cluster).\n  // +optional\n  optional ExternalMetricStatus external = 5;\n}\n\n// MetricTarget defines the target value, average value, or average utilization of a specific metric\nmessage MetricTarget {\n  // type represents whether the metric type is Utilization, Value, or AverageValue\n  optional string type = 1;\n\n  // value is the target value of the metric (as a quantity).\n  // +optional\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity value = 2;\n\n  // averageValue is the target value of the average of the\n  // metric across all relevant pods (as a quantity)\n  // +optional\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity averageValue = 3;\n\n  // averageUtilization is the target value of the average of the\n  // resource metric across all relevant pods, represented as a percentage of\n  // the requested value of the resource for the pods.\n  // Currently only valid for Resource metric source type\n  // +optional\n  optional int32 averageUtilization = 4;\n}\n\n// MetricValueStatus holds the current value for a metric\nmessage MetricValueStatus {\n  // value is the current value of the metric (as a quantity).\n  // +optional\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity value = 1;\n\n  // averageValue is the current value of the average of the\n  // metric across all relevant pods (as a quantity)\n  // +optional\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity averageValue = 2;\n\n  // averageUtilization is the current value of the average of the\n  // resource metric across all relevant pods, represented as a percentage of\n  // the requested value of the resource for the pods.\n  // +optional\n  optional int32 averageUtilization = 3;\n}\n\n// ObjectMetricSource indicates how to scale on a metric describing a\n// kubernetes object (for example, hits-per-second on an Ingress object).\nmessage ObjectMetricSource {\n  optional CrossVersionObjectReference describedObject = 1;\n\n  // target specifies the target value for the given metric\n  optional MetricTarget target = 2;\n\n  // metric identifies the target metric by name and selector\n  optional MetricIdentifier metric = 3;\n}\n\n// ObjectMetricStatus indicates the current value of a metric describing a\n// kubernetes object (for example, hits-per-second on an Ingress object).\nmessage ObjectMetricStatus {\n  // metric identifies the target metric by name and selector\n  optional MetricIdentifier metric = 1;\n\n  // current contains the current value for the given metric\n  optional MetricValueStatus current = 2;\n\n  optional CrossVersionObjectReference describedObject = 3;\n}\n\n// PodsMetricSource indicates how to scale on a metric describing each pod in\n// the current scale target (for example, transactions-processed-per-second).\n// The values will be averaged together before being compared to the target\n// value.\nmessage PodsMetricSource {\n  // metric identifies the target metric by name and selector\n  optional MetricIdentifier metric = 1;\n\n  // target specifies the target value for the given metric\n  optional MetricTarget target = 2;\n}\n\n// PodsMetricStatus indicates the current value of a metric describing each pod in\n// the current scale target (for example, transactions-processed-per-second).\nmessage PodsMetricStatus {\n  // metric identifies the target metric by name and selector\n  optional MetricIdentifier metric = 1;\n\n  // current contains the current value for the given metric\n  optional MetricValueStatus current = 2;\n}\n\n// ResourceMetricSource indicates how to scale on a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  The values will be averaged\n// together before being compared to the target.  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.  Only one \"target\" type\n// should be set.\nmessage ResourceMetricSource {\n  // name is the name of the resource in question.\n  optional string name = 1;\n\n  // target specifies the target value for the given metric\n  optional MetricTarget target = 2;\n}\n\n// ResourceMetricStatus indicates the current value of a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.\nmessage ResourceMetricStatus {\n  // name is the name of the resource in question.\n  optional string name = 1;\n\n  // current contains the current value for the given metric\n  optional MetricValueStatus current = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2beta2/register.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v2beta2\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"autoscaling\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v2beta2\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&HorizontalPodAutoscaler{},\n\t\t&HorizontalPodAutoscalerList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2beta2/types.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:openapi-gen=true\n\npackage v2beta2\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\t\"k8s.io/apimachinery/pkg/api/resource\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.12\n// +k8s:prerelease-lifecycle-gen:deprecated=1.23\n// +k8s:prerelease-lifecycle-gen:replacement=autoscaling,v2,HorizontalPodAutoscaler\n\n// HorizontalPodAutoscaler is the configuration for a horizontal pod\n// autoscaler, which automatically manages the replica count of any resource\n// implementing the scale subresource based on the metrics specified.\ntype HorizontalPodAutoscaler struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// metadata is the standard object metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec is the specification for the behaviour of the autoscaler.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\n\t// +optional\n\tSpec HorizontalPodAutoscalerSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// status is the current information about the autoscaler.\n\t// +optional\n\tStatus HorizontalPodAutoscalerStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.\ntype HorizontalPodAutoscalerSpec struct {\n\t// scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics\n\t// should be collected, as well as to actually change the replica count.\n\tScaleTargetRef CrossVersionObjectReference `json:\"scaleTargetRef\" protobuf:\"bytes,1,opt,name=scaleTargetRef\"`\n\t// minReplicas is the lower limit for the number of replicas to which the autoscaler\n\t// can scale down.  It defaults to 1 pod.  minReplicas is allowed to be 0 if the\n\t// alpha feature gate HPAScaleToZero is enabled and at least one Object or External\n\t// metric is configured.  Scaling is active as long as at least one metric value is\n\t// available.\n\t// +optional\n\tMinReplicas *int32 `json:\"minReplicas,omitempty\" protobuf:\"varint,2,opt,name=minReplicas\"`\n\n\t// maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up.\n\t// It cannot be less that minReplicas.\n\tMaxReplicas int32 `json:\"maxReplicas\" protobuf:\"varint,3,opt,name=maxReplicas\"`\n\n\t// metrics contains the specifications for which to use to calculate the\n\t// desired replica count (the maximum replica count across all metrics will\n\t// be used).  The desired replica count is calculated multiplying the\n\t// ratio between the target value and the current value by the current\n\t// number of pods.  Ergo, metrics used must decrease as the pod count is\n\t// increased, and vice-versa.  See the individual metric source types for\n\t// more information about how each type of metric must respond.\n\t// If not set, the default metric will be set to 80% average CPU utilization.\n\t// +optional\n\t// +listType=atomic\n\tMetrics []MetricSpec `json:\"metrics,omitempty\" protobuf:\"bytes,4,rep,name=metrics\"`\n\n\t// behavior configures the scaling behavior of the target\n\t// in both Up and Down directions (scaleUp and scaleDown fields respectively).\n\t// If not set, the default HPAScalingRules for scale up and scale down are used.\n\t// +optional\n\tBehavior *HorizontalPodAutoscalerBehavior `json:\"behavior,omitempty\" protobuf:\"bytes,5,opt,name=behavior\"`\n}\n\n// CrossVersionObjectReference contains enough information to let you identify the referred resource.\ntype CrossVersionObjectReference struct {\n\t// kind is the kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\tKind string `json:\"kind\" protobuf:\"bytes,1,opt,name=kind\"`\n\n\t// name is the name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\n\tName string `json:\"name\" protobuf:\"bytes,2,opt,name=name\"`\n\n\t// apiVersion is the API version of the referent\n\t// +optional\n\tAPIVersion string `json:\"apiVersion,omitempty\" protobuf:\"bytes,3,opt,name=apiVersion\"`\n}\n\n// MetricSpec specifies how to scale based on a single metric\n// (only `type` and one other matching field should be set at once).\ntype MetricSpec struct {\n\t// type is the type of metric source.  It should be one of \"ContainerResource\", \"External\",\n\t// \"Object\", \"Pods\" or \"Resource\", each mapping to a matching field in the object.\n\tType MetricSourceType `json:\"type\" protobuf:\"bytes,1,name=type\"`\n\n\t// object refers to a metric describing a single kubernetes object\n\t// (for example, hits-per-second on an Ingress object).\n\t// +optional\n\tObject *ObjectMetricSource `json:\"object,omitempty\" protobuf:\"bytes,2,opt,name=object\"`\n\n\t// pods refers to a metric describing each pod in the current scale target\n\t// (for example, transactions-processed-per-second).  The values will be\n\t// averaged together before being compared to the target value.\n\t// +optional\n\tPods *PodsMetricSource `json:\"pods,omitempty\" protobuf:\"bytes,3,opt,name=pods\"`\n\n\t// resource refers to a resource metric (such as those specified in\n\t// requests and limits) known to Kubernetes describing each pod in the\n\t// current scale target (e.g. CPU or memory). Such metrics are built in to\n\t// Kubernetes, and have special scaling options on top of those available\n\t// to normal per-pod metrics using the \"pods\" source.\n\t// +optional\n\tResource *ResourceMetricSource `json:\"resource,omitempty\" protobuf:\"bytes,4,opt,name=resource\"`\n\n\t// container resource refers to a resource metric (such as those specified in\n\t// requests and limits) known to Kubernetes describing a single container in\n\t// each pod of the current scale target (e.g. CPU or memory). Such metrics are\n\t// built in to Kubernetes, and have special scaling options on top of those\n\t// available to normal per-pod metrics using the \"pods\" source.\n\t// +optional\n\tContainerResource *ContainerResourceMetricSource `json:\"containerResource,omitempty\" protobuf:\"bytes,7,opt,name=containerResource\"`\n\n\t// external refers to a global metric that is not associated\n\t// with any Kubernetes object. It allows autoscaling based on information\n\t// coming from components running outside of cluster\n\t// (for example length of queue in cloud messaging service, or\n\t// QPS from loadbalancer running outside of cluster).\n\t// +optional\n\tExternal *ExternalMetricSource `json:\"external,omitempty\" protobuf:\"bytes,5,opt,name=external\"`\n}\n\n// HorizontalPodAutoscalerBehavior configures the scaling behavior of the target\n// in both Up and Down directions (scaleUp and scaleDown fields respectively).\ntype HorizontalPodAutoscalerBehavior struct {\n\t// scaleUp is scaling policy for scaling Up.\n\t// If not set, the default value is the higher of:\n\t//   * increase no more than 4 pods per 60 seconds\n\t//   * double the number of pods per 60 seconds\n\t// No stabilization is used.\n\t// +optional\n\tScaleUp *HPAScalingRules `json:\"scaleUp,omitempty\" protobuf:\"bytes,1,opt,name=scaleUp\"`\n\n\t// scaleDown is scaling policy for scaling Down.\n\t// If not set, the default value is to allow to scale down to minReplicas pods, with a\n\t// 300 second stabilization window (i.e., the highest recommendation for\n\t// the last 300sec is used).\n\t// +optional\n\tScaleDown *HPAScalingRules `json:\"scaleDown,omitempty\" protobuf:\"bytes,2,opt,name=scaleDown\"`\n}\n\n// ScalingPolicySelect is used to specify which policy should be used while scaling in a certain direction\ntype ScalingPolicySelect string\n\nconst (\n\t// MaxPolicySelect selects the policy with the highest possible change.\n\tMaxPolicySelect ScalingPolicySelect = \"Max\"\n\t// MinPolicySelect selects the policy with the lowest possible change.\n\tMinPolicySelect ScalingPolicySelect = \"Min\"\n\t// DisabledPolicySelect disables the scaling in this direction.\n\tDisabledPolicySelect ScalingPolicySelect = \"Disabled\"\n)\n\n// HPAScalingRules configures the scaling behavior for one direction.\n// These Rules are applied after calculating DesiredReplicas from metrics for the HPA.\n// They can limit the scaling velocity by specifying scaling policies.\n// They can prevent flapping by specifying the stabilization window, so that the\n// number of replicas is not set instantly, instead, the safest value from the stabilization\n// window is chosen.\ntype HPAScalingRules struct {\n\t// stabilizationWindowSeconds is the number of seconds for which past recommendations should be\n\t// considered while scaling up or scaling down.\n\t// StabilizationWindowSeconds must be greater than or equal to zero and less than or equal to 3600 (one hour).\n\t// If not set, use the default values:\n\t// - For scale up: 0 (i.e. no stabilization is done).\n\t// - For scale down: 300 (i.e. the stabilization window is 300 seconds long).\n\t// +optional\n\tStabilizationWindowSeconds *int32 `json:\"stabilizationWindowSeconds,omitempty\" protobuf:\"varint,3,opt,name=stabilizationWindowSeconds\"`\n\n\t// selectPolicy is used to specify which policy should be used.\n\t// If not set, the default value MaxPolicySelect is used.\n\t// +optional\n\tSelectPolicy *ScalingPolicySelect `json:\"selectPolicy,omitempty\" protobuf:\"bytes,1,opt,name=selectPolicy\"`\n\n\t// policies is a list of potential scaling polices which can be used during scaling.\n\t// At least one policy must be specified, otherwise the HPAScalingRules will be discarded as invalid\n\t// +optional\n\t// +listType=atomic\n\tPolicies []HPAScalingPolicy `json:\"policies,omitempty\" protobuf:\"bytes,2,rep,name=policies\"`\n}\n\n// HPAScalingPolicyType is the type of the policy which could be used while making scaling decisions.\ntype HPAScalingPolicyType string\n\nconst (\n\t// PodsScalingPolicy is a policy used to specify a change in absolute number of pods.\n\tPodsScalingPolicy HPAScalingPolicyType = \"Pods\"\n\t// PercentScalingPolicy is a policy used to specify a relative amount of change with respect to\n\t// the current number of pods.\n\tPercentScalingPolicy HPAScalingPolicyType = \"Percent\"\n)\n\n// HPAScalingPolicy is a single policy which must hold true for a specified past interval.\ntype HPAScalingPolicy struct {\n\t// type is used to specify the scaling policy.\n\tType HPAScalingPolicyType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=HPAScalingPolicyType\"`\n\n\t// value contains the amount of change which is permitted by the policy.\n\t// It must be greater than zero\n\tValue int32 `json:\"value\" protobuf:\"varint,2,opt,name=value\"`\n\n\t// periodSeconds specifies the window of time for which the policy should hold true.\n\t// PeriodSeconds must be greater than zero and less than or equal to 1800 (30 min).\n\tPeriodSeconds int32 `json:\"periodSeconds\" protobuf:\"varint,3,opt,name=periodSeconds\"`\n}\n\n// MetricSourceType indicates the type of metric.\ntype MetricSourceType string\n\nconst (\n\t// ObjectMetricSourceType is a metric describing a kubernetes object\n\t// (for example, hits-per-second on an Ingress object).\n\tObjectMetricSourceType MetricSourceType = \"Object\"\n\t// PodsMetricSourceType is a metric describing each pod in the current scale\n\t// target (for example, transactions-processed-per-second).  The values\n\t// will be averaged together before being compared to the target value.\n\tPodsMetricSourceType MetricSourceType = \"Pods\"\n\t// ResourceMetricSourceType is a resource metric known to Kubernetes, as\n\t// specified in requests and limits, describing each pod in the current\n\t// scale target (e.g. CPU or memory).  Such metrics are built in to\n\t// Kubernetes, and have special scaling options on top of those available\n\t// to normal per-pod metrics (the \"pods\" source).\n\tResourceMetricSourceType MetricSourceType = \"Resource\"\n\t// ContainerResourceMetricSourceType is a resource metric known to Kubernetes, as\n\t// specified in requests and limits, describing a single container in each pod in the current\n\t// scale target (e.g. CPU or memory).  Such metrics are built in to\n\t// Kubernetes, and have special scaling options on top of those available\n\t// to normal per-pod metrics (the \"pods\" source).\n\tContainerResourceMetricSourceType MetricSourceType = \"ContainerResource\"\n\t// ExternalMetricSourceType is a global metric that is not associated\n\t// with any Kubernetes object. It allows autoscaling based on information\n\t// coming from components running outside of cluster\n\t// (for example length of queue in cloud messaging service, or\n\t// QPS from loadbalancer running outside of cluster).\n\tExternalMetricSourceType MetricSourceType = \"External\"\n)\n\n// ObjectMetricSource indicates how to scale on a metric describing a\n// kubernetes object (for example, hits-per-second on an Ingress object).\ntype ObjectMetricSource struct {\n\tDescribedObject CrossVersionObjectReference `json:\"describedObject\" protobuf:\"bytes,1,name=describedObject\"`\n\t// target specifies the target value for the given metric\n\tTarget MetricTarget `json:\"target\" protobuf:\"bytes,2,name=target\"`\n\n\t// metric identifies the target metric by name and selector\n\tMetric MetricIdentifier `json:\"metric\" protobuf:\"bytes,3,name=metric\"`\n}\n\n// PodsMetricSource indicates how to scale on a metric describing each pod in\n// the current scale target (for example, transactions-processed-per-second).\n// The values will be averaged together before being compared to the target\n// value.\ntype PodsMetricSource struct {\n\t// metric identifies the target metric by name and selector\n\tMetric MetricIdentifier `json:\"metric\" protobuf:\"bytes,1,name=metric\"`\n\n\t// target specifies the target value for the given metric\n\tTarget MetricTarget `json:\"target\" protobuf:\"bytes,2,name=target\"`\n}\n\n// ResourceMetricSource indicates how to scale on a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  The values will be averaged\n// together before being compared to the target.  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.  Only one \"target\" type\n// should be set.\ntype ResourceMetricSource struct {\n\t// name is the name of the resource in question.\n\tName v1.ResourceName `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\n\t// target specifies the target value for the given metric\n\tTarget MetricTarget `json:\"target\" protobuf:\"bytes,2,name=target\"`\n}\n\n// ContainerResourceMetricSource indicates how to scale on a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  The values will be averaged\n// together before being compared to the target.  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.  Only one \"target\" type\n// should be set.\ntype ContainerResourceMetricSource struct {\n\t// name is the name of the resource in question.\n\tName v1.ResourceName `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\n\t// target specifies the target value for the given metric\n\tTarget MetricTarget `json:\"target\" protobuf:\"bytes,2,name=target\"`\n\n\t// container is the name of the container in the pods of the scaling target\n\tContainer string `json:\"container\" protobuf:\"bytes,3,opt,name=container\"`\n}\n\n// ExternalMetricSource indicates how to scale on a metric not associated with\n// any Kubernetes object (for example length of queue in cloud\n// messaging service, or QPS from loadbalancer running outside of cluster).\ntype ExternalMetricSource struct {\n\t// metric identifies the target metric by name and selector\n\tMetric MetricIdentifier `json:\"metric\" protobuf:\"bytes,1,name=metric\"`\n\n\t// target specifies the target value for the given metric\n\tTarget MetricTarget `json:\"target\" protobuf:\"bytes,2,name=target\"`\n}\n\n// MetricIdentifier defines the name and optionally selector for a metric\ntype MetricIdentifier struct {\n\t// name is the name of the given metric\n\tName string `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\n\t// selector is the string-encoded form of a standard kubernetes label selector for the given metric\n\t// When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping.\n\t// When unset, just the metricName will be used to gather metrics.\n\t// +optional\n\tSelector *metav1.LabelSelector `json:\"selector,omitempty\" protobuf:\"bytes,2,name=selector\"`\n}\n\n// MetricTarget defines the target value, average value, or average utilization of a specific metric\ntype MetricTarget struct {\n\t// type represents whether the metric type is Utilization, Value, or AverageValue\n\tType MetricTargetType `json:\"type\" protobuf:\"bytes,1,name=type\"`\n\n\t// value is the target value of the metric (as a quantity).\n\t// +optional\n\tValue *resource.Quantity `json:\"value,omitempty\" protobuf:\"bytes,2,opt,name=value\"`\n\n\t// averageValue is the target value of the average of the\n\t// metric across all relevant pods (as a quantity)\n\t// +optional\n\tAverageValue *resource.Quantity `json:\"averageValue,omitempty\" protobuf:\"bytes,3,opt,name=averageValue\"`\n\n\t// averageUtilization is the target value of the average of the\n\t// resource metric across all relevant pods, represented as a percentage of\n\t// the requested value of the resource for the pods.\n\t// Currently only valid for Resource metric source type\n\t// +optional\n\tAverageUtilization *int32 `json:\"averageUtilization,omitempty\" protobuf:\"bytes,4,opt,name=averageUtilization\"`\n}\n\n// MetricTargetType specifies the type of metric being targeted, and should be either\n// \"Value\", \"AverageValue\", or \"Utilization\"\ntype MetricTargetType string\n\nconst (\n\t// UtilizationMetricType declares a MetricTarget is an AverageUtilization value\n\tUtilizationMetricType MetricTargetType = \"Utilization\"\n\t// ValueMetricType declares a MetricTarget is a raw value\n\tValueMetricType MetricTargetType = \"Value\"\n\t// AverageValueMetricType declares a MetricTarget is an\n\tAverageValueMetricType MetricTargetType = \"AverageValue\"\n)\n\n// HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.\ntype HorizontalPodAutoscalerStatus struct {\n\t// observedGeneration is the most recent generation observed by this autoscaler.\n\t// +optional\n\tObservedGeneration *int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,1,opt,name=observedGeneration\"`\n\n\t// lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods,\n\t// used by the autoscaler to control how often the number of pods is changed.\n\t// +optional\n\tLastScaleTime *metav1.Time `json:\"lastScaleTime,omitempty\" protobuf:\"bytes,2,opt,name=lastScaleTime\"`\n\n\t// currentReplicas is current number of replicas of pods managed by this autoscaler,\n\t// as last seen by the autoscaler.\n\tCurrentReplicas int32 `json:\"currentReplicas\" protobuf:\"varint,3,opt,name=currentReplicas\"`\n\n\t// desiredReplicas is the desired number of replicas of pods managed by this autoscaler,\n\t// as last calculated by the autoscaler.\n\tDesiredReplicas int32 `json:\"desiredReplicas\" protobuf:\"varint,4,opt,name=desiredReplicas\"`\n\n\t// currentMetrics is the last read state of the metrics used by this autoscaler.\n\t// +optional\n\t// +listType=atomic\n\tCurrentMetrics []MetricStatus `json:\"currentMetrics\" protobuf:\"bytes,5,rep,name=currentMetrics\"`\n\n\t// conditions is the set of conditions required for this autoscaler to scale its target,\n\t// and indicates whether or not those conditions are met.\n\t// +optional\n\t// +listType=atomic\n\tConditions []HorizontalPodAutoscalerCondition `json:\"conditions\" protobuf:\"bytes,6,rep,name=conditions\"`\n}\n\n// HorizontalPodAutoscalerConditionType are the valid conditions of\n// a HorizontalPodAutoscaler.\ntype HorizontalPodAutoscalerConditionType string\n\nconst (\n\t// ScalingActive indicates that the HPA controller is able to scale if necessary:\n\t// it's correctly configured, can fetch the desired metrics, and isn't disabled.\n\tScalingActive HorizontalPodAutoscalerConditionType = \"ScalingActive\"\n\t// AbleToScale indicates a lack of transient issues which prevent scaling from occurring,\n\t// such as being in a backoff window, or being unable to access/update the target scale.\n\tAbleToScale HorizontalPodAutoscalerConditionType = \"AbleToScale\"\n\t// ScalingLimited indicates that the calculated scale based on metrics would be above or\n\t// below the range for the HPA, and has thus been capped.\n\tScalingLimited HorizontalPodAutoscalerConditionType = \"ScalingLimited\"\n)\n\n// HorizontalPodAutoscalerCondition describes the state of\n// a HorizontalPodAutoscaler at a certain point.\ntype HorizontalPodAutoscalerCondition struct {\n\t// type describes the current condition\n\tType HorizontalPodAutoscalerConditionType `json:\"type\" protobuf:\"bytes,1,name=type\"`\n\n\t// status is the status of the condition (True, False, Unknown)\n\tStatus v1.ConditionStatus `json:\"status\" protobuf:\"bytes,2,name=status\"`\n\n\t// lastTransitionTime is the last time the condition transitioned from\n\t// one status to another\n\t// +optional\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\n\t// reason is the reason for the condition's last transition.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\n\t// message is a human-readable explanation containing details about\n\t// the transition\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// MetricStatus describes the last-read state of a single metric.\ntype MetricStatus struct {\n\t// type is the type of metric source.  It will be one of \"ContainerResource\", \"External\",\n\t// \"Object\", \"Pods\" or \"Resource\", each corresponds to a matching field in the object.\n\tType MetricSourceType `json:\"type\" protobuf:\"bytes,1,name=type\"`\n\n\t// object refers to a metric describing a single kubernetes object\n\t// (for example, hits-per-second on an Ingress object).\n\t// +optional\n\tObject *ObjectMetricStatus `json:\"object,omitempty\" protobuf:\"bytes,2,opt,name=object\"`\n\n\t// pods refers to a metric describing each pod in the current scale target\n\t// (for example, transactions-processed-per-second).  The values will be\n\t// averaged together before being compared to the target value.\n\t// +optional\n\tPods *PodsMetricStatus `json:\"pods,omitempty\" protobuf:\"bytes,3,opt,name=pods\"`\n\t// resource refers to a resource metric (such as those specified in\n\t// requests and limits) known to Kubernetes describing each pod in the\n\t// current scale target (e.g. CPU or memory). Such metrics are built in to\n\t// Kubernetes, and have special scaling options on top of those available\n\t// to normal per-pod metrics using the \"pods\" source.\n\t// +optional\n\tResource *ResourceMetricStatus `json:\"resource,omitempty\" protobuf:\"bytes,4,opt,name=resource\"`\n\n\t// containerResource refers to a resource metric (such as those specified in\n\t// requests and limits) known to Kubernetes describing a single container in each pod in the\n\t// current scale target (e.g. CPU or memory). Such metrics are built in to\n\t// Kubernetes, and have special scaling options on top of those available\n\t// to normal per-pod metrics using the \"pods\" source.\n\t// +optional\n\tContainerResource *ContainerResourceMetricStatus `json:\"containerResource,omitempty\" protobuf:\"bytes,7,opt,name=containerResource\"`\n\n\t// external refers to a global metric that is not associated\n\t// with any Kubernetes object. It allows autoscaling based on information\n\t// coming from components running outside of cluster\n\t// (for example length of queue in cloud messaging service, or\n\t// QPS from loadbalancer running outside of cluster).\n\t// +optional\n\tExternal *ExternalMetricStatus `json:\"external,omitempty\" protobuf:\"bytes,5,opt,name=external\"`\n}\n\n// ObjectMetricStatus indicates the current value of a metric describing a\n// kubernetes object (for example, hits-per-second on an Ingress object).\ntype ObjectMetricStatus struct {\n\t// metric identifies the target metric by name and selector\n\tMetric MetricIdentifier `json:\"metric\" protobuf:\"bytes,1,name=metric\"`\n\n\t// current contains the current value for the given metric\n\tCurrent MetricValueStatus `json:\"current\" protobuf:\"bytes,2,name=current\"`\n\n\tDescribedObject CrossVersionObjectReference `json:\"describedObject\" protobuf:\"bytes,3,name=describedObject\"`\n}\n\n// PodsMetricStatus indicates the current value of a metric describing each pod in\n// the current scale target (for example, transactions-processed-per-second).\ntype PodsMetricStatus struct {\n\t// metric identifies the target metric by name and selector\n\tMetric MetricIdentifier `json:\"metric\" protobuf:\"bytes,1,name=metric\"`\n\n\t// current contains the current value for the given metric\n\tCurrent MetricValueStatus `json:\"current\" protobuf:\"bytes,2,name=current\"`\n}\n\n// ResourceMetricStatus indicates the current value of a resource metric known to\n// Kubernetes, as specified in requests and limits, describing each pod in the\n// current scale target (e.g. CPU or memory).  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.\ntype ResourceMetricStatus struct {\n\t// name is the name of the resource in question.\n\tName v1.ResourceName `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\n\t// current contains the current value for the given metric\n\tCurrent MetricValueStatus `json:\"current\" protobuf:\"bytes,2,name=current\"`\n}\n\n// ContainerResourceMetricStatus indicates the current value of a resource metric known to\n// Kubernetes, as specified in requests and limits, describing a single container in each pod in the\n// current scale target (e.g. CPU or memory).  Such metrics are built in to\n// Kubernetes, and have special scaling options on top of those available to\n// normal per-pod metrics using the \"pods\" source.\ntype ContainerResourceMetricStatus struct {\n\t// name is the name of the resource in question.\n\tName v1.ResourceName `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\n\t// current contains the current value for the given metric\n\tCurrent MetricValueStatus `json:\"current\" protobuf:\"bytes,2,name=current\"`\n\n\t// container is the name of the container in the pods of the scaling target\n\tContainer string `json:\"container\" protobuf:\"bytes,3,opt,name=container\"`\n}\n\n// ExternalMetricStatus indicates the current value of a global metric\n// not associated with any Kubernetes object.\ntype ExternalMetricStatus struct {\n\t// metric identifies the target metric by name and selector\n\tMetric MetricIdentifier `json:\"metric\" protobuf:\"bytes,1,name=metric\"`\n\n\t// current contains the current value for the given metric\n\tCurrent MetricValueStatus `json:\"current\" protobuf:\"bytes,2,name=current\"`\n}\n\n// MetricValueStatus holds the current value for a metric\ntype MetricValueStatus struct {\n\t// value is the current value of the metric (as a quantity).\n\t// +optional\n\tValue *resource.Quantity `json:\"value,omitempty\" protobuf:\"bytes,1,opt,name=value\"`\n\n\t// averageValue is the current value of the average of the\n\t// metric across all relevant pods (as a quantity)\n\t// +optional\n\tAverageValue *resource.Quantity `json:\"averageValue,omitempty\" protobuf:\"bytes,2,opt,name=averageValue\"`\n\n\t// averageUtilization is the current value of the average of the\n\t// resource metric across all relevant pods, represented as a percentage of\n\t// the requested value of the resource for the pods.\n\t// +optional\n\tAverageUtilization *int32 `json:\"averageUtilization,omitempty\" protobuf:\"bytes,3,opt,name=averageUtilization\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.12\n// +k8s:prerelease-lifecycle-gen:deprecated=1.22\n\n// HorizontalPodAutoscalerList is a list of horizontal pod autoscaler objects.\ntype HorizontalPodAutoscalerList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// metadata is the standard list metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of horizontal pod autoscaler objects.\n\tItems []HorizontalPodAutoscaler `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2beta2/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v2beta2\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_ContainerResourceMetricSource = map[string]string{\n\t\"\":          \"ContainerResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory).  The values will be averaged together before being compared to the target.  Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.  Only one \\\"target\\\" type should be set.\",\n\t\"name\":      \"name is the name of the resource in question.\",\n\t\"target\":    \"target specifies the target value for the given metric\",\n\t\"container\": \"container is the name of the container in the pods of the scaling target\",\n}\n\nfunc (ContainerResourceMetricSource) SwaggerDoc() map[string]string {\n\treturn map_ContainerResourceMetricSource\n}\n\nvar map_ContainerResourceMetricStatus = map[string]string{\n\t\"\":          \"ContainerResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing a single container in each pod in the current scale target (e.g. CPU or memory).  Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"name\":      \"name is the name of the resource in question.\",\n\t\"current\":   \"current contains the current value for the given metric\",\n\t\"container\": \"container is the name of the container in the pods of the scaling target\",\n}\n\nfunc (ContainerResourceMetricStatus) SwaggerDoc() map[string]string {\n\treturn map_ContainerResourceMetricStatus\n}\n\nvar map_CrossVersionObjectReference = map[string]string{\n\t\"\":           \"CrossVersionObjectReference contains enough information to let you identify the referred resource.\",\n\t\"kind\":       \"kind is the kind of the referent; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"name\":       \"name is the name of the referent; More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n\t\"apiVersion\": \"apiVersion is the API version of the referent\",\n}\n\nfunc (CrossVersionObjectReference) SwaggerDoc() map[string]string {\n\treturn map_CrossVersionObjectReference\n}\n\nvar map_ExternalMetricSource = map[string]string{\n\t\"\":       \"ExternalMetricSource indicates how to scale on a metric not associated with any Kubernetes object (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).\",\n\t\"metric\": \"metric identifies the target metric by name and selector\",\n\t\"target\": \"target specifies the target value for the given metric\",\n}\n\nfunc (ExternalMetricSource) SwaggerDoc() map[string]string {\n\treturn map_ExternalMetricSource\n}\n\nvar map_ExternalMetricStatus = map[string]string{\n\t\"\":        \"ExternalMetricStatus indicates the current value of a global metric not associated with any Kubernetes object.\",\n\t\"metric\":  \"metric identifies the target metric by name and selector\",\n\t\"current\": \"current contains the current value for the given metric\",\n}\n\nfunc (ExternalMetricStatus) SwaggerDoc() map[string]string {\n\treturn map_ExternalMetricStatus\n}\n\nvar map_HPAScalingPolicy = map[string]string{\n\t\"\":              \"HPAScalingPolicy is a single policy which must hold true for a specified past interval.\",\n\t\"type\":          \"type is used to specify the scaling policy.\",\n\t\"value\":         \"value contains the amount of change which is permitted by the policy. It must be greater than zero\",\n\t\"periodSeconds\": \"periodSeconds specifies the window of time for which the policy should hold true. PeriodSeconds must be greater than zero and less than or equal to 1800 (30 min).\",\n}\n\nfunc (HPAScalingPolicy) SwaggerDoc() map[string]string {\n\treturn map_HPAScalingPolicy\n}\n\nvar map_HPAScalingRules = map[string]string{\n\t\"\":                           \"HPAScalingRules configures the scaling behavior for one direction. These Rules are applied after calculating DesiredReplicas from metrics for the HPA. They can limit the scaling velocity by specifying scaling policies. They can prevent flapping by specifying the stabilization window, so that the number of replicas is not set instantly, instead, the safest value from the stabilization window is chosen.\",\n\t\"stabilizationWindowSeconds\": \"stabilizationWindowSeconds is the number of seconds for which past recommendations should be considered while scaling up or scaling down. StabilizationWindowSeconds must be greater than or equal to zero and less than or equal to 3600 (one hour). If not set, use the default values: - For scale up: 0 (i.e. no stabilization is done). - For scale down: 300 (i.e. the stabilization window is 300 seconds long).\",\n\t\"selectPolicy\":               \"selectPolicy is used to specify which policy should be used. If not set, the default value MaxPolicySelect is used.\",\n\t\"policies\":                   \"policies is a list of potential scaling polices which can be used during scaling. At least one policy must be specified, otherwise the HPAScalingRules will be discarded as invalid\",\n}\n\nfunc (HPAScalingRules) SwaggerDoc() map[string]string {\n\treturn map_HPAScalingRules\n}\n\nvar map_HorizontalPodAutoscaler = map[string]string{\n\t\"\":         \"HorizontalPodAutoscaler is the configuration for a horizontal pod autoscaler, which automatically manages the replica count of any resource implementing the scale subresource based on the metrics specified.\",\n\t\"metadata\": \"metadata is the standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec is the specification for the behaviour of the autoscaler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\",\n\t\"status\":   \"status is the current information about the autoscaler.\",\n}\n\nfunc (HorizontalPodAutoscaler) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscaler\n}\n\nvar map_HorizontalPodAutoscalerBehavior = map[string]string{\n\t\"\":          \"HorizontalPodAutoscalerBehavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively).\",\n\t\"scaleUp\":   \"scaleUp is scaling policy for scaling Up. If not set, the default value is the higher of:\\n  * increase no more than 4 pods per 60 seconds\\n  * double the number of pods per 60 seconds\\nNo stabilization is used.\",\n\t\"scaleDown\": \"scaleDown is scaling policy for scaling Down. If not set, the default value is to allow to scale down to minReplicas pods, with a 300 second stabilization window (i.e., the highest recommendation for the last 300sec is used).\",\n}\n\nfunc (HorizontalPodAutoscalerBehavior) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscalerBehavior\n}\n\nvar map_HorizontalPodAutoscalerCondition = map[string]string{\n\t\"\":                   \"HorizontalPodAutoscalerCondition describes the state of a HorizontalPodAutoscaler at a certain point.\",\n\t\"type\":               \"type describes the current condition\",\n\t\"status\":             \"status is the status of the condition (True, False, Unknown)\",\n\t\"lastTransitionTime\": \"lastTransitionTime is the last time the condition transitioned from one status to another\",\n\t\"reason\":             \"reason is the reason for the condition's last transition.\",\n\t\"message\":            \"message is a human-readable explanation containing details about the transition\",\n}\n\nfunc (HorizontalPodAutoscalerCondition) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscalerCondition\n}\n\nvar map_HorizontalPodAutoscalerList = map[string]string{\n\t\"\":         \"HorizontalPodAutoscalerList is a list of horizontal pod autoscaler objects.\",\n\t\"metadata\": \"metadata is the standard list metadata.\",\n\t\"items\":    \"items is the list of horizontal pod autoscaler objects.\",\n}\n\nfunc (HorizontalPodAutoscalerList) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscalerList\n}\n\nvar map_HorizontalPodAutoscalerSpec = map[string]string{\n\t\"\":               \"HorizontalPodAutoscalerSpec describes the desired functionality of the HorizontalPodAutoscaler.\",\n\t\"scaleTargetRef\": \"scaleTargetRef points to the target resource to scale, and is used to the pods for which metrics should be collected, as well as to actually change the replica count.\",\n\t\"minReplicas\":    \"minReplicas is the lower limit for the number of replicas to which the autoscaler can scale down.  It defaults to 1 pod.  minReplicas is allowed to be 0 if the alpha feature gate HPAScaleToZero is enabled and at least one Object or External metric is configured.  Scaling is active as long as at least one metric value is available.\",\n\t\"maxReplicas\":    \"maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. It cannot be less that minReplicas.\",\n\t\"metrics\":        \"metrics contains the specifications for which to use to calculate the desired replica count (the maximum replica count across all metrics will be used).  The desired replica count is calculated multiplying the ratio between the target value and the current value by the current number of pods.  Ergo, metrics used must decrease as the pod count is increased, and vice-versa.  See the individual metric source types for more information about how each type of metric must respond. If not set, the default metric will be set to 80% average CPU utilization.\",\n\t\"behavior\":       \"behavior configures the scaling behavior of the target in both Up and Down directions (scaleUp and scaleDown fields respectively). If not set, the default HPAScalingRules for scale up and scale down are used.\",\n}\n\nfunc (HorizontalPodAutoscalerSpec) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscalerSpec\n}\n\nvar map_HorizontalPodAutoscalerStatus = map[string]string{\n\t\"\":                   \"HorizontalPodAutoscalerStatus describes the current status of a horizontal pod autoscaler.\",\n\t\"observedGeneration\": \"observedGeneration is the most recent generation observed by this autoscaler.\",\n\t\"lastScaleTime\":      \"lastScaleTime is the last time the HorizontalPodAutoscaler scaled the number of pods, used by the autoscaler to control how often the number of pods is changed.\",\n\t\"currentReplicas\":    \"currentReplicas is current number of replicas of pods managed by this autoscaler, as last seen by the autoscaler.\",\n\t\"desiredReplicas\":    \"desiredReplicas is the desired number of replicas of pods managed by this autoscaler, as last calculated by the autoscaler.\",\n\t\"currentMetrics\":     \"currentMetrics is the last read state of the metrics used by this autoscaler.\",\n\t\"conditions\":         \"conditions is the set of conditions required for this autoscaler to scale its target, and indicates whether or not those conditions are met.\",\n}\n\nfunc (HorizontalPodAutoscalerStatus) SwaggerDoc() map[string]string {\n\treturn map_HorizontalPodAutoscalerStatus\n}\n\nvar map_MetricIdentifier = map[string]string{\n\t\"\":         \"MetricIdentifier defines the name and optionally selector for a metric\",\n\t\"name\":     \"name is the name of the given metric\",\n\t\"selector\": \"selector is the string-encoded form of a standard kubernetes label selector for the given metric When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. When unset, just the metricName will be used to gather metrics.\",\n}\n\nfunc (MetricIdentifier) SwaggerDoc() map[string]string {\n\treturn map_MetricIdentifier\n}\n\nvar map_MetricSpec = map[string]string{\n\t\"\":                  \"MetricSpec specifies how to scale based on a single metric (only `type` and one other matching field should be set at once).\",\n\t\"type\":              \"type is the type of metric source.  It should be one of \\\"ContainerResource\\\", \\\"External\\\", \\\"Object\\\", \\\"Pods\\\" or \\\"Resource\\\", each mapping to a matching field in the object.\",\n\t\"object\":            \"object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).\",\n\t\"pods\":              \"pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second).  The values will be averaged together before being compared to the target value.\",\n\t\"resource\":          \"resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"containerResource\": \"container resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod of the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"external\":          \"external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).\",\n}\n\nfunc (MetricSpec) SwaggerDoc() map[string]string {\n\treturn map_MetricSpec\n}\n\nvar map_MetricStatus = map[string]string{\n\t\"\":                  \"MetricStatus describes the last-read state of a single metric.\",\n\t\"type\":              \"type is the type of metric source.  It will be one of \\\"ContainerResource\\\", \\\"External\\\", \\\"Object\\\", \\\"Pods\\\" or \\\"Resource\\\", each corresponds to a matching field in the object.\",\n\t\"object\":            \"object refers to a metric describing a single kubernetes object (for example, hits-per-second on an Ingress object).\",\n\t\"pods\":              \"pods refers to a metric describing each pod in the current scale target (for example, transactions-processed-per-second).  The values will be averaged together before being compared to the target value.\",\n\t\"resource\":          \"resource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"containerResource\": \"containerResource refers to a resource metric (such as those specified in requests and limits) known to Kubernetes describing a single container in each pod in the current scale target (e.g. CPU or memory). Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"external\":          \"external refers to a global metric that is not associated with any Kubernetes object. It allows autoscaling based on information coming from components running outside of cluster (for example length of queue in cloud messaging service, or QPS from loadbalancer running outside of cluster).\",\n}\n\nfunc (MetricStatus) SwaggerDoc() map[string]string {\n\treturn map_MetricStatus\n}\n\nvar map_MetricTarget = map[string]string{\n\t\"\":                   \"MetricTarget defines the target value, average value, or average utilization of a specific metric\",\n\t\"type\":               \"type represents whether the metric type is Utilization, Value, or AverageValue\",\n\t\"value\":              \"value is the target value of the metric (as a quantity).\",\n\t\"averageValue\":       \"averageValue is the target value of the average of the metric across all relevant pods (as a quantity)\",\n\t\"averageUtilization\": \"averageUtilization is the target value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods. Currently only valid for Resource metric source type\",\n}\n\nfunc (MetricTarget) SwaggerDoc() map[string]string {\n\treturn map_MetricTarget\n}\n\nvar map_MetricValueStatus = map[string]string{\n\t\"\":                   \"MetricValueStatus holds the current value for a metric\",\n\t\"value\":              \"value is the current value of the metric (as a quantity).\",\n\t\"averageValue\":       \"averageValue is the current value of the average of the metric across all relevant pods (as a quantity)\",\n\t\"averageUtilization\": \"averageUtilization is the current value of the average of the resource metric across all relevant pods, represented as a percentage of the requested value of the resource for the pods.\",\n}\n\nfunc (MetricValueStatus) SwaggerDoc() map[string]string {\n\treturn map_MetricValueStatus\n}\n\nvar map_ObjectMetricSource = map[string]string{\n\t\"\":       \"ObjectMetricSource indicates how to scale on a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).\",\n\t\"target\": \"target specifies the target value for the given metric\",\n\t\"metric\": \"metric identifies the target metric by name and selector\",\n}\n\nfunc (ObjectMetricSource) SwaggerDoc() map[string]string {\n\treturn map_ObjectMetricSource\n}\n\nvar map_ObjectMetricStatus = map[string]string{\n\t\"\":        \"ObjectMetricStatus indicates the current value of a metric describing a kubernetes object (for example, hits-per-second on an Ingress object).\",\n\t\"metric\":  \"metric identifies the target metric by name and selector\",\n\t\"current\": \"current contains the current value for the given metric\",\n}\n\nfunc (ObjectMetricStatus) SwaggerDoc() map[string]string {\n\treturn map_ObjectMetricStatus\n}\n\nvar map_PodsMetricSource = map[string]string{\n\t\"\":       \"PodsMetricSource indicates how to scale on a metric describing each pod in the current scale target (for example, transactions-processed-per-second). The values will be averaged together before being compared to the target value.\",\n\t\"metric\": \"metric identifies the target metric by name and selector\",\n\t\"target\": \"target specifies the target value for the given metric\",\n}\n\nfunc (PodsMetricSource) SwaggerDoc() map[string]string {\n\treturn map_PodsMetricSource\n}\n\nvar map_PodsMetricStatus = map[string]string{\n\t\"\":        \"PodsMetricStatus indicates the current value of a metric describing each pod in the current scale target (for example, transactions-processed-per-second).\",\n\t\"metric\":  \"metric identifies the target metric by name and selector\",\n\t\"current\": \"current contains the current value for the given metric\",\n}\n\nfunc (PodsMetricStatus) SwaggerDoc() map[string]string {\n\treturn map_PodsMetricStatus\n}\n\nvar map_ResourceMetricSource = map[string]string{\n\t\"\":       \"ResourceMetricSource indicates how to scale on a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory).  The values will be averaged together before being compared to the target.  Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.  Only one \\\"target\\\" type should be set.\",\n\t\"name\":   \"name is the name of the resource in question.\",\n\t\"target\": \"target specifies the target value for the given metric\",\n}\n\nfunc (ResourceMetricSource) SwaggerDoc() map[string]string {\n\treturn map_ResourceMetricSource\n}\n\nvar map_ResourceMetricStatus = map[string]string{\n\t\"\":        \"ResourceMetricStatus indicates the current value of a resource metric known to Kubernetes, as specified in requests and limits, describing each pod in the current scale target (e.g. CPU or memory).  Such metrics are built in to Kubernetes, and have special scaling options on top of those available to normal per-pod metrics using the \\\"pods\\\" source.\",\n\t\"name\":    \"name is the name of the resource in question.\",\n\t\"current\": \"current contains the current value for the given metric\",\n}\n\nfunc (ResourceMetricStatus) SwaggerDoc() map[string]string {\n\treturn map_ResourceMetricStatus\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2beta2/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v2beta2\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ContainerResourceMetricSource) DeepCopyInto(out *ContainerResourceMetricSource) {\n\t*out = *in\n\tin.Target.DeepCopyInto(&out.Target)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerResourceMetricSource.\nfunc (in *ContainerResourceMetricSource) DeepCopy() *ContainerResourceMetricSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ContainerResourceMetricSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ContainerResourceMetricStatus) DeepCopyInto(out *ContainerResourceMetricStatus) {\n\t*out = *in\n\tin.Current.DeepCopyInto(&out.Current)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerResourceMetricStatus.\nfunc (in *ContainerResourceMetricStatus) DeepCopy() *ContainerResourceMetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ContainerResourceMetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CrossVersionObjectReference) DeepCopyInto(out *CrossVersionObjectReference) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CrossVersionObjectReference.\nfunc (in *CrossVersionObjectReference) DeepCopy() *CrossVersionObjectReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CrossVersionObjectReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExternalMetricSource) DeepCopyInto(out *ExternalMetricSource) {\n\t*out = *in\n\tin.Metric.DeepCopyInto(&out.Metric)\n\tin.Target.DeepCopyInto(&out.Target)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalMetricSource.\nfunc (in *ExternalMetricSource) DeepCopy() *ExternalMetricSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExternalMetricSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExternalMetricStatus) DeepCopyInto(out *ExternalMetricStatus) {\n\t*out = *in\n\tin.Metric.DeepCopyInto(&out.Metric)\n\tin.Current.DeepCopyInto(&out.Current)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalMetricStatus.\nfunc (in *ExternalMetricStatus) DeepCopy() *ExternalMetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExternalMetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HPAScalingPolicy) DeepCopyInto(out *HPAScalingPolicy) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HPAScalingPolicy.\nfunc (in *HPAScalingPolicy) DeepCopy() *HPAScalingPolicy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HPAScalingPolicy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HPAScalingRules) DeepCopyInto(out *HPAScalingRules) {\n\t*out = *in\n\tif in.StabilizationWindowSeconds != nil {\n\t\tin, out := &in.StabilizationWindowSeconds, &out.StabilizationWindowSeconds\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.SelectPolicy != nil {\n\t\tin, out := &in.SelectPolicy, &out.SelectPolicy\n\t\t*out = new(ScalingPolicySelect)\n\t\t**out = **in\n\t}\n\tif in.Policies != nil {\n\t\tin, out := &in.Policies, &out.Policies\n\t\t*out = make([]HPAScalingPolicy, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HPAScalingRules.\nfunc (in *HPAScalingRules) DeepCopy() *HPAScalingRules {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HPAScalingRules)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscaler) DeepCopyInto(out *HorizontalPodAutoscaler) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscaler.\nfunc (in *HorizontalPodAutoscaler) DeepCopy() *HorizontalPodAutoscaler {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscaler)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *HorizontalPodAutoscaler) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscalerBehavior) DeepCopyInto(out *HorizontalPodAutoscalerBehavior) {\n\t*out = *in\n\tif in.ScaleUp != nil {\n\t\tin, out := &in.ScaleUp, &out.ScaleUp\n\t\t*out = new(HPAScalingRules)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ScaleDown != nil {\n\t\tin, out := &in.ScaleDown, &out.ScaleDown\n\t\t*out = new(HPAScalingRules)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerBehavior.\nfunc (in *HorizontalPodAutoscalerBehavior) DeepCopy() *HorizontalPodAutoscalerBehavior {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscalerBehavior)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscalerCondition) DeepCopyInto(out *HorizontalPodAutoscalerCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerCondition.\nfunc (in *HorizontalPodAutoscalerCondition) DeepCopy() *HorizontalPodAutoscalerCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscalerCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscalerList) DeepCopyInto(out *HorizontalPodAutoscalerList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]HorizontalPodAutoscaler, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerList.\nfunc (in *HorizontalPodAutoscalerList) DeepCopy() *HorizontalPodAutoscalerList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscalerList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *HorizontalPodAutoscalerList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscalerSpec) DeepCopyInto(out *HorizontalPodAutoscalerSpec) {\n\t*out = *in\n\tout.ScaleTargetRef = in.ScaleTargetRef\n\tif in.MinReplicas != nil {\n\t\tin, out := &in.MinReplicas, &out.MinReplicas\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Metrics != nil {\n\t\tin, out := &in.Metrics, &out.Metrics\n\t\t*out = make([]MetricSpec, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Behavior != nil {\n\t\tin, out := &in.Behavior, &out.Behavior\n\t\t*out = new(HorizontalPodAutoscalerBehavior)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerSpec.\nfunc (in *HorizontalPodAutoscalerSpec) DeepCopy() *HorizontalPodAutoscalerSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscalerSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HorizontalPodAutoscalerStatus) DeepCopyInto(out *HorizontalPodAutoscalerStatus) {\n\t*out = *in\n\tif in.ObservedGeneration != nil {\n\t\tin, out := &in.ObservedGeneration, &out.ObservedGeneration\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.LastScaleTime != nil {\n\t\tin, out := &in.LastScaleTime, &out.LastScaleTime\n\t\t*out = (*in).DeepCopy()\n\t}\n\tif in.CurrentMetrics != nil {\n\t\tin, out := &in.CurrentMetrics, &out.CurrentMetrics\n\t\t*out = make([]MetricStatus, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]HorizontalPodAutoscalerCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HorizontalPodAutoscalerStatus.\nfunc (in *HorizontalPodAutoscalerStatus) DeepCopy() *HorizontalPodAutoscalerStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HorizontalPodAutoscalerStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MetricIdentifier) DeepCopyInto(out *MetricIdentifier) {\n\t*out = *in\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricIdentifier.\nfunc (in *MetricIdentifier) DeepCopy() *MetricIdentifier {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MetricIdentifier)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MetricSpec) DeepCopyInto(out *MetricSpec) {\n\t*out = *in\n\tif in.Object != nil {\n\t\tin, out := &in.Object, &out.Object\n\t\t*out = new(ObjectMetricSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Pods != nil {\n\t\tin, out := &in.Pods, &out.Pods\n\t\t*out = new(PodsMetricSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Resource != nil {\n\t\tin, out := &in.Resource, &out.Resource\n\t\t*out = new(ResourceMetricSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ContainerResource != nil {\n\t\tin, out := &in.ContainerResource, &out.ContainerResource\n\t\t*out = new(ContainerResourceMetricSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.External != nil {\n\t\tin, out := &in.External, &out.External\n\t\t*out = new(ExternalMetricSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricSpec.\nfunc (in *MetricSpec) DeepCopy() *MetricSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MetricSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MetricStatus) DeepCopyInto(out *MetricStatus) {\n\t*out = *in\n\tif in.Object != nil {\n\t\tin, out := &in.Object, &out.Object\n\t\t*out = new(ObjectMetricStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Pods != nil {\n\t\tin, out := &in.Pods, &out.Pods\n\t\t*out = new(PodsMetricStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Resource != nil {\n\t\tin, out := &in.Resource, &out.Resource\n\t\t*out = new(ResourceMetricStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ContainerResource != nil {\n\t\tin, out := &in.ContainerResource, &out.ContainerResource\n\t\t*out = new(ContainerResourceMetricStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.External != nil {\n\t\tin, out := &in.External, &out.External\n\t\t*out = new(ExternalMetricStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricStatus.\nfunc (in *MetricStatus) DeepCopy() *MetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MetricTarget) DeepCopyInto(out *MetricTarget) {\n\t*out = *in\n\tif in.Value != nil {\n\t\tin, out := &in.Value, &out.Value\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\tif in.AverageValue != nil {\n\t\tin, out := &in.AverageValue, &out.AverageValue\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\tif in.AverageUtilization != nil {\n\t\tin, out := &in.AverageUtilization, &out.AverageUtilization\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricTarget.\nfunc (in *MetricTarget) DeepCopy() *MetricTarget {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MetricTarget)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MetricValueStatus) DeepCopyInto(out *MetricValueStatus) {\n\t*out = *in\n\tif in.Value != nil {\n\t\tin, out := &in.Value, &out.Value\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\tif in.AverageValue != nil {\n\t\tin, out := &in.AverageValue, &out.AverageValue\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\tif in.AverageUtilization != nil {\n\t\tin, out := &in.AverageUtilization, &out.AverageUtilization\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricValueStatus.\nfunc (in *MetricValueStatus) DeepCopy() *MetricValueStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MetricValueStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ObjectMetricSource) DeepCopyInto(out *ObjectMetricSource) {\n\t*out = *in\n\tout.DescribedObject = in.DescribedObject\n\tin.Target.DeepCopyInto(&out.Target)\n\tin.Metric.DeepCopyInto(&out.Metric)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectMetricSource.\nfunc (in *ObjectMetricSource) DeepCopy() *ObjectMetricSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ObjectMetricSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ObjectMetricStatus) DeepCopyInto(out *ObjectMetricStatus) {\n\t*out = *in\n\tin.Metric.DeepCopyInto(&out.Metric)\n\tin.Current.DeepCopyInto(&out.Current)\n\tout.DescribedObject = in.DescribedObject\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectMetricStatus.\nfunc (in *ObjectMetricStatus) DeepCopy() *ObjectMetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ObjectMetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodsMetricSource) DeepCopyInto(out *PodsMetricSource) {\n\t*out = *in\n\tin.Metric.DeepCopyInto(&out.Metric)\n\tin.Target.DeepCopyInto(&out.Target)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodsMetricSource.\nfunc (in *PodsMetricSource) DeepCopy() *PodsMetricSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodsMetricSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodsMetricStatus) DeepCopyInto(out *PodsMetricStatus) {\n\t*out = *in\n\tin.Metric.DeepCopyInto(&out.Metric)\n\tin.Current.DeepCopyInto(&out.Current)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodsMetricStatus.\nfunc (in *PodsMetricStatus) DeepCopy() *PodsMetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodsMetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceMetricSource) DeepCopyInto(out *ResourceMetricSource) {\n\t*out = *in\n\tin.Target.DeepCopyInto(&out.Target)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceMetricSource.\nfunc (in *ResourceMetricSource) DeepCopy() *ResourceMetricSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceMetricSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceMetricStatus) DeepCopyInto(out *ResourceMetricStatus) {\n\t*out = *in\n\tin.Current.DeepCopyInto(&out.Current)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceMetricStatus.\nfunc (in *ResourceMetricStatus) DeepCopy() *ResourceMetricStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceMetricStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/autoscaling/v2beta2/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v2beta2\n\nimport (\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *HorizontalPodAutoscaler) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 12\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *HorizontalPodAutoscaler) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 23\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *HorizontalPodAutoscaler) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"autoscaling\", Version: \"v2\", Kind: \"HorizontalPodAutoscaler\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *HorizontalPodAutoscaler) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 26\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *HorizontalPodAutoscalerList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 12\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *HorizontalPodAutoscalerList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *HorizontalPodAutoscalerList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 25\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/batch/v1/doc.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\npackage v1 // import \"k8s.io/api/batch/v1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/batch/v1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/batch/v1/generated.proto\n\npackage v1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\tv11 \"k8s.io/api/core/v1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n\n\tk8s_io_apimachinery_pkg_types \"k8s.io/apimachinery/pkg/types\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *CronJob) Reset()      { *m = CronJob{} }\nfunc (*CronJob) ProtoMessage() {}\nfunc (*CronJob) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_79228dc2c4001a22, []int{0}\n}\nfunc (m *CronJob) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CronJob) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CronJob) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CronJob.Merge(m, src)\n}\nfunc (m *CronJob) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CronJob) XXX_DiscardUnknown() {\n\txxx_messageInfo_CronJob.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CronJob proto.InternalMessageInfo\n\nfunc (m *CronJobList) Reset()      { *m = CronJobList{} }\nfunc (*CronJobList) ProtoMessage() {}\nfunc (*CronJobList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_79228dc2c4001a22, []int{1}\n}\nfunc (m *CronJobList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CronJobList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CronJobList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CronJobList.Merge(m, src)\n}\nfunc (m *CronJobList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CronJobList) XXX_DiscardUnknown() {\n\txxx_messageInfo_CronJobList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CronJobList proto.InternalMessageInfo\n\nfunc (m *CronJobSpec) Reset()      { *m = CronJobSpec{} }\nfunc (*CronJobSpec) ProtoMessage() {}\nfunc (*CronJobSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_79228dc2c4001a22, []int{2}\n}\nfunc (m *CronJobSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CronJobSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CronJobSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CronJobSpec.Merge(m, src)\n}\nfunc (m *CronJobSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CronJobSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_CronJobSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CronJobSpec proto.InternalMessageInfo\n\nfunc (m *CronJobStatus) Reset()      { *m = CronJobStatus{} }\nfunc (*CronJobStatus) ProtoMessage() {}\nfunc (*CronJobStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_79228dc2c4001a22, []int{3}\n}\nfunc (m *CronJobStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CronJobStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CronJobStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CronJobStatus.Merge(m, src)\n}\nfunc (m *CronJobStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CronJobStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_CronJobStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CronJobStatus proto.InternalMessageInfo\n\nfunc (m *Job) Reset()      { *m = Job{} }\nfunc (*Job) ProtoMessage() {}\nfunc (*Job) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_79228dc2c4001a22, []int{4}\n}\nfunc (m *Job) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Job) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Job) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Job.Merge(m, src)\n}\nfunc (m *Job) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Job) XXX_DiscardUnknown() {\n\txxx_messageInfo_Job.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Job proto.InternalMessageInfo\n\nfunc (m *JobCondition) Reset()      { *m = JobCondition{} }\nfunc (*JobCondition) ProtoMessage() {}\nfunc (*JobCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_79228dc2c4001a22, []int{5}\n}\nfunc (m *JobCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *JobCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *JobCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_JobCondition.Merge(m, src)\n}\nfunc (m *JobCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *JobCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_JobCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_JobCondition proto.InternalMessageInfo\n\nfunc (m *JobList) Reset()      { *m = JobList{} }\nfunc (*JobList) ProtoMessage() {}\nfunc (*JobList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_79228dc2c4001a22, []int{6}\n}\nfunc (m *JobList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *JobList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *JobList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_JobList.Merge(m, src)\n}\nfunc (m *JobList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *JobList) XXX_DiscardUnknown() {\n\txxx_messageInfo_JobList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_JobList proto.InternalMessageInfo\n\nfunc (m *JobSpec) Reset()      { *m = JobSpec{} }\nfunc (*JobSpec) ProtoMessage() {}\nfunc (*JobSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_79228dc2c4001a22, []int{7}\n}\nfunc (m *JobSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *JobSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *JobSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_JobSpec.Merge(m, src)\n}\nfunc (m *JobSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *JobSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_JobSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_JobSpec proto.InternalMessageInfo\n\nfunc (m *JobStatus) Reset()      { *m = JobStatus{} }\nfunc (*JobStatus) ProtoMessage() {}\nfunc (*JobStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_79228dc2c4001a22, []int{8}\n}\nfunc (m *JobStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *JobStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *JobStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_JobStatus.Merge(m, src)\n}\nfunc (m *JobStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *JobStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_JobStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_JobStatus proto.InternalMessageInfo\n\nfunc (m *JobTemplateSpec) Reset()      { *m = JobTemplateSpec{} }\nfunc (*JobTemplateSpec) ProtoMessage() {}\nfunc (*JobTemplateSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_79228dc2c4001a22, []int{9}\n}\nfunc (m *JobTemplateSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *JobTemplateSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *JobTemplateSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_JobTemplateSpec.Merge(m, src)\n}\nfunc (m *JobTemplateSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *JobTemplateSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_JobTemplateSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_JobTemplateSpec proto.InternalMessageInfo\n\nfunc (m *PodFailurePolicy) Reset()      { *m = PodFailurePolicy{} }\nfunc (*PodFailurePolicy) ProtoMessage() {}\nfunc (*PodFailurePolicy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_79228dc2c4001a22, []int{10}\n}\nfunc (m *PodFailurePolicy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodFailurePolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodFailurePolicy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodFailurePolicy.Merge(m, src)\n}\nfunc (m *PodFailurePolicy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodFailurePolicy) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodFailurePolicy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodFailurePolicy proto.InternalMessageInfo\n\nfunc (m *PodFailurePolicyOnExitCodesRequirement) Reset() {\n\t*m = PodFailurePolicyOnExitCodesRequirement{}\n}\nfunc (*PodFailurePolicyOnExitCodesRequirement) ProtoMessage() {}\nfunc (*PodFailurePolicyOnExitCodesRequirement) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_79228dc2c4001a22, []int{11}\n}\nfunc (m *PodFailurePolicyOnExitCodesRequirement) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodFailurePolicyOnExitCodesRequirement) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodFailurePolicyOnExitCodesRequirement) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodFailurePolicyOnExitCodesRequirement.Merge(m, src)\n}\nfunc (m *PodFailurePolicyOnExitCodesRequirement) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodFailurePolicyOnExitCodesRequirement) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodFailurePolicyOnExitCodesRequirement.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodFailurePolicyOnExitCodesRequirement proto.InternalMessageInfo\n\nfunc (m *PodFailurePolicyOnPodConditionsPattern) Reset() {\n\t*m = PodFailurePolicyOnPodConditionsPattern{}\n}\nfunc (*PodFailurePolicyOnPodConditionsPattern) ProtoMessage() {}\nfunc (*PodFailurePolicyOnPodConditionsPattern) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_79228dc2c4001a22, []int{12}\n}\nfunc (m *PodFailurePolicyOnPodConditionsPattern) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodFailurePolicyOnPodConditionsPattern) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodFailurePolicyOnPodConditionsPattern) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodFailurePolicyOnPodConditionsPattern.Merge(m, src)\n}\nfunc (m *PodFailurePolicyOnPodConditionsPattern) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodFailurePolicyOnPodConditionsPattern) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodFailurePolicyOnPodConditionsPattern.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodFailurePolicyOnPodConditionsPattern proto.InternalMessageInfo\n\nfunc (m *PodFailurePolicyRule) Reset()      { *m = PodFailurePolicyRule{} }\nfunc (*PodFailurePolicyRule) ProtoMessage() {}\nfunc (*PodFailurePolicyRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_79228dc2c4001a22, []int{13}\n}\nfunc (m *PodFailurePolicyRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodFailurePolicyRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodFailurePolicyRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodFailurePolicyRule.Merge(m, src)\n}\nfunc (m *PodFailurePolicyRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodFailurePolicyRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodFailurePolicyRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodFailurePolicyRule proto.InternalMessageInfo\n\nfunc (m *SuccessPolicy) Reset()      { *m = SuccessPolicy{} }\nfunc (*SuccessPolicy) ProtoMessage() {}\nfunc (*SuccessPolicy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_79228dc2c4001a22, []int{14}\n}\nfunc (m *SuccessPolicy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SuccessPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SuccessPolicy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SuccessPolicy.Merge(m, src)\n}\nfunc (m *SuccessPolicy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SuccessPolicy) XXX_DiscardUnknown() {\n\txxx_messageInfo_SuccessPolicy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SuccessPolicy proto.InternalMessageInfo\n\nfunc (m *SuccessPolicyRule) Reset()      { *m = SuccessPolicyRule{} }\nfunc (*SuccessPolicyRule) ProtoMessage() {}\nfunc (*SuccessPolicyRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_79228dc2c4001a22, []int{15}\n}\nfunc (m *SuccessPolicyRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SuccessPolicyRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SuccessPolicyRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SuccessPolicyRule.Merge(m, src)\n}\nfunc (m *SuccessPolicyRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SuccessPolicyRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_SuccessPolicyRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SuccessPolicyRule proto.InternalMessageInfo\n\nfunc (m *UncountedTerminatedPods) Reset()      { *m = UncountedTerminatedPods{} }\nfunc (*UncountedTerminatedPods) ProtoMessage() {}\nfunc (*UncountedTerminatedPods) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_79228dc2c4001a22, []int{16}\n}\nfunc (m *UncountedTerminatedPods) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *UncountedTerminatedPods) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *UncountedTerminatedPods) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_UncountedTerminatedPods.Merge(m, src)\n}\nfunc (m *UncountedTerminatedPods) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *UncountedTerminatedPods) XXX_DiscardUnknown() {\n\txxx_messageInfo_UncountedTerminatedPods.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_UncountedTerminatedPods proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*CronJob)(nil), \"k8s.io.api.batch.v1.CronJob\")\n\tproto.RegisterType((*CronJobList)(nil), \"k8s.io.api.batch.v1.CronJobList\")\n\tproto.RegisterType((*CronJobSpec)(nil), \"k8s.io.api.batch.v1.CronJobSpec\")\n\tproto.RegisterType((*CronJobStatus)(nil), \"k8s.io.api.batch.v1.CronJobStatus\")\n\tproto.RegisterType((*Job)(nil), \"k8s.io.api.batch.v1.Job\")\n\tproto.RegisterType((*JobCondition)(nil), \"k8s.io.api.batch.v1.JobCondition\")\n\tproto.RegisterType((*JobList)(nil), \"k8s.io.api.batch.v1.JobList\")\n\tproto.RegisterType((*JobSpec)(nil), \"k8s.io.api.batch.v1.JobSpec\")\n\tproto.RegisterType((*JobStatus)(nil), \"k8s.io.api.batch.v1.JobStatus\")\n\tproto.RegisterType((*JobTemplateSpec)(nil), \"k8s.io.api.batch.v1.JobTemplateSpec\")\n\tproto.RegisterType((*PodFailurePolicy)(nil), \"k8s.io.api.batch.v1.PodFailurePolicy\")\n\tproto.RegisterType((*PodFailurePolicyOnExitCodesRequirement)(nil), \"k8s.io.api.batch.v1.PodFailurePolicyOnExitCodesRequirement\")\n\tproto.RegisterType((*PodFailurePolicyOnPodConditionsPattern)(nil), \"k8s.io.api.batch.v1.PodFailurePolicyOnPodConditionsPattern\")\n\tproto.RegisterType((*PodFailurePolicyRule)(nil), \"k8s.io.api.batch.v1.PodFailurePolicyRule\")\n\tproto.RegisterType((*SuccessPolicy)(nil), \"k8s.io.api.batch.v1.SuccessPolicy\")\n\tproto.RegisterType((*SuccessPolicyRule)(nil), \"k8s.io.api.batch.v1.SuccessPolicyRule\")\n\tproto.RegisterType((*UncountedTerminatedPods)(nil), \"k8s.io.api.batch.v1.UncountedTerminatedPods\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/batch/v1/generated.proto\", fileDescriptor_79228dc2c4001a22)\n}\n\nvar fileDescriptor_79228dc2c4001a22 = []byte{\n\t// 1882 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0xcd, 0x6f, 0xdb, 0xc8,\n\t0x15, 0x37, 0x6d, 0xcb, 0x96, 0x46, 0xfe, 0x90, 0x27, 0x4e, 0xa2, 0xba, 0x0b, 0xd1, 0xab, 0xec,\n\t0x06, 0xde, 0x76, 0x2b, 0x6d, 0xbc, 0x41, 0xb7, 0x1f, 0x68, 0xb1, 0xa1, 0xd2, 0x6c, 0xe3, 0x95,\n\t0x37, 0xea, 0xc8, 0x69, 0x81, 0xdd, 0xb4, 0xe8, 0x88, 0x1c, 0xc9, 0xdc, 0x50, 0x1c, 0x96, 0x1c,\n\t0x1a, 0xf1, 0xa5, 0x28, 0xd0, 0x7f, 0xa0, 0x3d, 0xf6, 0x1f, 0xe8, 0xb1, 0x97, 0xf6, 0xdc, 0xde,\n\t0x8a, 0x1c, 0x17, 0x3d, 0x2d, 0x7a, 0x20, 0x1a, 0xf6, 0x0f, 0xe8, 0xdd, 0x45, 0x81, 0x62, 0x86,\n\t0xc3, 0x4f, 0x91, 0x5e, 0x67, 0x81, 0x06, 0xbd, 0x89, 0xef, 0xfd, 0xde, 0x6f, 0x1e, 0xe7, 0x7d,\n\t0x52, 0xe0, 0xd6, 0xd3, 0x6f, 0x79, 0x3d, 0x93, 0xf6, 0xb1, 0x63, 0xf6, 0x27, 0x98, 0xe9, 0xa7,\n\t0xfd, 0xb3, 0x3b, 0xfd, 0x19, 0xb1, 0x89, 0x8b, 0x19, 0x31, 0x7a, 0x8e, 0x4b, 0x19, 0x85, 0xd7,\n\t0x22, 0x50, 0x0f, 0x3b, 0x66, 0x4f, 0x80, 0x7a, 0x67, 0x77, 0xf6, 0xbe, 0x31, 0x33, 0xd9, 0xa9,\n\t0x3f, 0xe9, 0xe9, 0x74, 0xde, 0x9f, 0xd1, 0x19, 0xed, 0x0b, 0xec, 0xc4, 0x9f, 0x8a, 0x27, 0xf1,\n\t0x20, 0x7e, 0x45, 0x1c, 0x7b, 0xdd, 0xcc, 0x41, 0x3a, 0x75, 0x49, 0xc9, 0x39, 0x7b, 0x77, 0x53,\n\t0xcc, 0x1c, 0xeb, 0xa7, 0xa6, 0x4d, 0xdc, 0xf3, 0xbe, 0xf3, 0x74, 0xc6, 0x05, 0x5e, 0x7f, 0x4e,\n\t0x18, 0x2e, 0xb3, 0xea, 0x57, 0x59, 0xb9, 0xbe, 0xcd, 0xcc, 0x39, 0x59, 0x30, 0xf8, 0xe6, 0x17,\n\t0x19, 0x78, 0xfa, 0x29, 0x99, 0xe3, 0xa2, 0x5d, 0xf7, 0xdf, 0x0a, 0x58, 0x1f, 0xb8, 0xd4, 0x3e,\n\t0xa2, 0x13, 0xf8, 0x73, 0x50, 0xe7, 0xfe, 0x18, 0x98, 0xe1, 0xb6, 0xb2, 0xaf, 0x1c, 0x34, 0x0f,\n\t0xdf, 0xe9, 0xa5, 0xb7, 0x94, 0xd0, 0xf6, 0x9c, 0xa7, 0x33, 0x2e, 0xf0, 0x7a, 0x1c, 0xdd, 0x3b,\n\t0xbb, 0xd3, 0x7b, 0x34, 0xf9, 0x94, 0xe8, 0xec, 0x98, 0x30, 0xac, 0xc1, 0xe7, 0x81, 0xba, 0x14,\n\t0x06, 0x2a, 0x48, 0x65, 0x28, 0x61, 0x85, 0x1a, 0x58, 0xf5, 0x1c, 0xa2, 0xb7, 0x97, 0x05, 0xfb,\n\t0x7e, 0xaf, 0x24, 0x06, 0x3d, 0xe9, 0xcd, 0xd8, 0x21, 0xba, 0xb6, 0x21, 0xd9, 0x56, 0xf9, 0x13,\n\t0x12, 0xb6, 0xf0, 0x08, 0xac, 0x79, 0x0c, 0x33, 0xdf, 0x6b, 0xaf, 0x08, 0x96, 0xee, 0xa5, 0x2c,\n\t0x02, 0xa9, 0x6d, 0x49, 0x9e, 0xb5, 0xe8, 0x19, 0x49, 0x86, 0xee, 0x1f, 0x14, 0xd0, 0x94, 0xc8,\n\t0xa1, 0xe9, 0x31, 0xf8, 0x64, 0xe1, 0x06, 0x7a, 0x57, 0xbb, 0x01, 0x6e, 0x2d, 0xde, 0xbf, 0x25,\n\t0x4f, 0xaa, 0xc7, 0x92, 0xcc, 0xdb, 0xdf, 0x03, 0x35, 0x93, 0x91, 0xb9, 0xd7, 0x5e, 0xde, 0x5f,\n\t0x39, 0x68, 0x1e, 0xbe, 0x76, 0x99, 0xe3, 0xda, 0xa6, 0x24, 0xaa, 0x3d, 0xe4, 0x26, 0x28, 0xb2,\n\t0xec, 0xfe, 0x6d, 0x35, 0x71, 0x98, 0x5f, 0x09, 0x7c, 0x1b, 0xd4, 0x79, 0x60, 0x0d, 0xdf, 0x22,\n\t0xc2, 0xe1, 0x46, 0xea, 0xc0, 0x58, 0xca, 0x51, 0x82, 0x80, 0x07, 0xa0, 0xce, 0x73, 0xe1, 0x63,\n\t0x6a, 0x93, 0x76, 0x5d, 0xa0, 0x37, 0x38, 0xf2, 0x44, 0xca, 0x50, 0xa2, 0x85, 0x8f, 0xc1, 0x4d,\n\t0x8f, 0x61, 0x97, 0x99, 0xf6, 0xec, 0x3e, 0xc1, 0x86, 0x65, 0xda, 0x64, 0x4c, 0x74, 0x6a, 0x1b,\n\t0x9e, 0x88, 0xdd, 0x8a, 0xf6, 0xd5, 0x30, 0x50, 0x6f, 0x8e, 0xcb, 0x21, 0xa8, 0xca, 0x16, 0x3e,\n\t0x01, 0x3b, 0x3a, 0xb5, 0x75, 0xdf, 0x75, 0x89, 0xad, 0x9f, 0x8f, 0xa8, 0x65, 0xea, 0xe7, 0x22,\n\t0x8c, 0x0d, 0xad, 0x27, 0xfd, 0xde, 0x19, 0x14, 0x01, 0x17, 0x65, 0x42, 0xb4, 0x48, 0x04, 0xdf,\n\t0x04, 0xeb, 0x9e, 0xef, 0x39, 0xc4, 0x36, 0xda, 0xab, 0xfb, 0xca, 0x41, 0x5d, 0x6b, 0x86, 0x81,\n\t0xba, 0x3e, 0x8e, 0x44, 0x28, 0xd6, 0xc1, 0x4f, 0x40, 0xf3, 0x53, 0x3a, 0x39, 0x21, 0x73, 0xc7,\n\t0xc2, 0x8c, 0xb4, 0x6b, 0x22, 0xce, 0x6f, 0x94, 0x06, 0xe3, 0x28, 0xc5, 0x89, 0x7c, 0xbc, 0x26,\n\t0x9d, 0x6c, 0x66, 0x14, 0x28, 0xcb, 0x06, 0x7f, 0x06, 0xf6, 0x3c, 0x5f, 0xd7, 0x89, 0xe7, 0x4d,\n\t0x7d, 0xeb, 0x88, 0x4e, 0xbc, 0x1f, 0x9a, 0x1e, 0xa3, 0xee, 0xf9, 0xd0, 0x9c, 0x9b, 0xac, 0xbd,\n\t0xb6, 0xaf, 0x1c, 0xd4, 0xb4, 0x4e, 0x18, 0xa8, 0x7b, 0xe3, 0x4a, 0x14, 0xba, 0x84, 0x01, 0x22,\n\t0x70, 0x63, 0x8a, 0x4d, 0x8b, 0x18, 0x0b, 0xdc, 0xeb, 0x82, 0x7b, 0x2f, 0x0c, 0xd4, 0x1b, 0x0f,\n\t0x4a, 0x11, 0xa8, 0xc2, 0xb2, 0xfb, 0xe7, 0x65, 0xb0, 0x99, 0xab, 0x17, 0xf8, 0x21, 0x58, 0xc3,\n\t0x3a, 0x33, 0xcf, 0x78, 0x52, 0xf1, 0x54, 0xbd, 0x95, 0xbd, 0x1d, 0xde, 0xe9, 0xd2, 0xaa, 0x47,\n\t0x64, 0x4a, 0x78, 0x10, 0x48, 0x5a, 0x64, 0xf7, 0x84, 0x29, 0x92, 0x14, 0xd0, 0x02, 0x2d, 0x0b,\n\t0x7b, 0x2c, 0xce, 0x47, 0x9e, 0x6d, 0x22, 0x3e, 0xcd, 0xc3, 0xaf, 0x5d, 0xad, 0xb8, 0xb8, 0x85,\n\t0xb6, 0x1b, 0x06, 0x6a, 0x6b, 0x58, 0xe0, 0x41, 0x0b, 0xcc, 0xd0, 0x05, 0x50, 0xc8, 0x92, 0x2b,\n\t0x14, 0xe7, 0xd5, 0x5e, 0xfa, 0xbc, 0x1b, 0x61, 0xa0, 0xc2, 0xe1, 0x02, 0x13, 0x2a, 0x61, 0xef,\n\t0xfe, 0x4b, 0x01, 0x2b, 0xaf, 0xa6, 0x81, 0x7e, 0x3f, 0xd7, 0x40, 0x5f, 0xab, 0x4a, 0xda, 0xca,\n\t0xe6, 0xf9, 0xa0, 0xd0, 0x3c, 0x3b, 0x95, 0x0c, 0x97, 0x37, 0xce, 0xbf, 0xae, 0x80, 0x8d, 0x23,\n\t0x3a, 0x19, 0x50, 0xdb, 0x30, 0x99, 0x49, 0x6d, 0x78, 0x17, 0xac, 0xb2, 0x73, 0x27, 0x6e, 0x42,\n\t0xfb, 0xf1, 0xd1, 0x27, 0xe7, 0x0e, 0xb9, 0x08, 0xd4, 0x56, 0x16, 0xcb, 0x65, 0x48, 0xa0, 0xe1,\n\t0x30, 0x71, 0x67, 0x59, 0xd8, 0xdd, 0xcd, 0x1f, 0x77, 0x11, 0xa8, 0x25, 0x23, 0xb6, 0x97, 0x30,\n\t0xe5, 0x9d, 0x82, 0x33, 0xb0, 0xc9, 0x83, 0x33, 0x72, 0xe9, 0x24, 0xca, 0xb2, 0x95, 0x97, 0x8e,\n\t0xfa, 0x75, 0xe9, 0xc0, 0xe6, 0x30, 0x4b, 0x84, 0xf2, 0xbc, 0xf0, 0x2c, 0xca, 0xb1, 0x13, 0x17,\n\t0xdb, 0x5e, 0xf4, 0x4a, 0x5f, 0x2e, 0xa7, 0xf7, 0xe4, 0x69, 0x22, 0xcf, 0xf2, 0x6c, 0xa8, 0xe4,\n\t0x04, 0x78, 0x1b, 0xac, 0xb9, 0x04, 0x7b, 0xd4, 0x16, 0xf9, 0xdc, 0x48, 0xa3, 0x83, 0x84, 0x14,\n\t0x49, 0x2d, 0x7c, 0x0b, 0xac, 0xcf, 0x89, 0xe7, 0xe1, 0x19, 0x11, 0x1d, 0xa7, 0xa1, 0x6d, 0x4b,\n\t0xe0, 0xfa, 0x71, 0x24, 0x46, 0xb1, 0xbe, 0xfb, 0x7b, 0x05, 0xac, 0xbf, 0x9a, 0xe9, 0xf7, 0xbd,\n\t0xfc, 0xf4, 0x6b, 0x57, 0x65, 0x5e, 0xc5, 0xe4, 0xfb, 0x5d, 0x43, 0x38, 0x2a, 0xa6, 0xde, 0x1d,\n\t0xd0, 0x74, 0xb0, 0x8b, 0x2d, 0x8b, 0x58, 0xa6, 0x37, 0x17, 0xbe, 0xd6, 0xb4, 0x6d, 0xde, 0x97,\n\t0x47, 0xa9, 0x18, 0x65, 0x31, 0xdc, 0x44, 0xa7, 0x73, 0xc7, 0x22, 0xfc, 0x32, 0xa3, 0x74, 0x93,\n\t0x26, 0x83, 0x54, 0x8c, 0xb2, 0x18, 0xf8, 0x08, 0x5c, 0x8f, 0x3a, 0x58, 0x71, 0x02, 0xae, 0x88,\n\t0x09, 0xf8, 0x95, 0x30, 0x50, 0xaf, 0xdf, 0x2b, 0x03, 0xa0, 0x72, 0x3b, 0x38, 0x03, 0x2d, 0x87,\n\t0x1a, 0xbc, 0x39, 0xfb, 0x2e, 0x91, 0xc3, 0xaf, 0x29, 0xee, 0xf9, 0xcd, 0xd2, 0xcb, 0x18, 0x15,\n\t0xc0, 0x51, 0x0f, 0x2c, 0x4a, 0xd1, 0x02, 0x29, 0xfc, 0x04, 0x6c, 0xca, 0x11, 0x22, 0x4f, 0x69,\n\t0x5d, 0xb2, 0x29, 0x8d, 0xb3, 0x48, 0x6d, 0x87, 0x27, 0x7f, 0x4e, 0x84, 0xf2, 0x5c, 0xf0, 0x2e,\n\t0xd8, 0x98, 0x60, 0xfd, 0x29, 0x9d, 0x4e, 0xb3, 0x73, 0xa7, 0x15, 0x06, 0xea, 0x86, 0x96, 0x91,\n\t0xa3, 0x1c, 0x0a, 0x0e, 0xc1, 0x6e, 0xf6, 0x79, 0x44, 0xdc, 0x87, 0xb6, 0x41, 0x9e, 0xb5, 0x37,\n\t0x84, 0x75, 0x3b, 0x0c, 0xd4, 0x5d, 0xad, 0x44, 0x8f, 0x4a, 0xad, 0xe0, 0xfb, 0xa0, 0x35, 0xc7,\n\t0xcf, 0xa2, 0x31, 0x27, 0x24, 0xc4, 0x6b, 0x6f, 0x0a, 0x26, 0x71, 0x45, 0xc7, 0x05, 0x1d, 0x5a,\n\t0x40, 0xc3, 0x9f, 0x82, 0xba, 0x47, 0x2c, 0xa2, 0x33, 0xea, 0xca, 0xc2, 0x7d, 0xf7, 0x8a, 0xb9,\n\t0x8e, 0x27, 0xc4, 0x1a, 0x4b, 0xd3, 0x68, 0x7f, 0x8a, 0x9f, 0x50, 0x42, 0x09, 0xbf, 0x03, 0xb6,\n\t0xe6, 0xd8, 0xf6, 0x71, 0x82, 0x14, 0x15, 0x5b, 0xd7, 0x60, 0x18, 0xa8, 0x5b, 0xc7, 0x39, 0x0d,\n\t0x2a, 0x20, 0xe1, 0x8f, 0x40, 0x9d, 0xc5, 0xcb, 0xc9, 0x9a, 0x70, 0xad, 0x74, 0xfc, 0x8e, 0xa8,\n\t0x91, 0xdb, 0x4d, 0x92, 0xda, 0x4b, 0x16, 0x93, 0x84, 0x86, 0xaf, 0x73, 0x8c, 0x59, 0x32, 0x0f,\n\t0xef, 0x4d, 0x19, 0x71, 0x1f, 0x98, 0xb6, 0xe9, 0x9d, 0x12, 0x43, 0xec, 0x81, 0xb5, 0x68, 0x9d,\n\t0x3b, 0x39, 0x19, 0x96, 0x41, 0x50, 0x95, 0x2d, 0x1c, 0x82, 0xad, 0xb4, 0x60, 0x8e, 0xa9, 0x41,\n\t0xda, 0x0d, 0xd1, 0x6e, 0xde, 0xe0, 0x6f, 0x39, 0xc8, 0x69, 0x2e, 0x16, 0x24, 0xa8, 0x60, 0x9b,\n\t0x5d, 0xdf, 0xc0, 0x25, 0xeb, 0x9b, 0x01, 0x76, 0x1d, 0x6a, 0x20, 0xe2, 0x58, 0x58, 0x27, 0x73,\n\t0x62, 0x33, 0x99, 0xe3, 0x5b, 0xe2, 0xe8, 0x77, 0x78, 0x26, 0x8d, 0x4a, 0xf4, 0x17, 0x15, 0x72,\n\t0x54, 0xca, 0x06, 0xbf, 0x0e, 0x1a, 0x73, 0x6c, 0xe3, 0x19, 0x31, 0xb4, 0xf3, 0xf6, 0xb6, 0xa0,\n\t0xde, 0x0c, 0x03, 0xb5, 0x71, 0x1c, 0x0b, 0x51, 0xaa, 0xef, 0xfe, 0xa7, 0x06, 0x1a, 0xe9, 0xf2,\n\t0xf4, 0x18, 0x00, 0x3d, 0x9e, 0x50, 0x9e, 0x5c, 0xa0, 0x5e, 0xaf, 0xea, 0x76, 0xc9, 0x2c, 0x4b,\n\t0x07, 0x7f, 0x22, 0xf2, 0x50, 0x86, 0x08, 0xfe, 0x04, 0x34, 0xc4, 0x5a, 0x2d, 0x66, 0xcd, 0xf2,\n\t0x4b, 0xcf, 0x1a, 0xe1, 0xfd, 0x38, 0x26, 0x40, 0x29, 0x17, 0x9c, 0x66, 0xa3, 0xf8, 0x25, 0xe7,\n\t0x26, 0xcc, 0x47, 0x5c, 0x1c, 0x51, 0x60, 0xe5, 0xd3, 0x4b, 0x2e, 0x95, 0xab, 0x22, 0xe7, 0xaa,\n\t0xf6, 0xc5, 0x3e, 0x68, 0x88, 0x8e, 0x43, 0x0c, 0x62, 0x88, 0xb2, 0xa9, 0x69, 0x3b, 0x12, 0xda,\n\t0x18, 0xc7, 0x0a, 0x94, 0x62, 0x38, 0x71, 0xb4, 0xd9, 0xca, 0xfd, 0x3a, 0x21, 0x8e, 0x4a, 0x1e,\n\t0x49, 0x2d, 0x9f, 0x01, 0x8c, 0xb8, 0x73, 0xd3, 0xc6, 0xfc, 0xdb, 0x44, 0xb4, 0x5e, 0x39, 0x03,\n\t0x4e, 0x52, 0x31, 0xca, 0x62, 0xe0, 0x7d, 0xd0, 0x92, 0x6f, 0x91, 0x36, 0x9a, 0x75, 0x91, 0x0d,\n\t0x6d, 0x79, 0x48, 0x6b, 0x50, 0xd0, 0xa3, 0x05, 0x0b, 0xf8, 0x1e, 0xd8, 0x9c, 0xe6, 0x7a, 0x15,\n\t0x10, 0x14, 0xa2, 0xd7, 0xe6, 0x1b, 0x55, 0x1e, 0x07, 0x7f, 0xad, 0x80, 0x9b, 0xbe, 0xad, 0x53,\n\t0xdf, 0x66, 0xc4, 0x88, 0x9d, 0x24, 0xc6, 0x88, 0x1a, 0x9e, 0x28, 0xdc, 0xe6, 0xe1, 0xdb, 0xa5,\n\t0x89, 0xf5, 0xb8, 0xdc, 0x26, 0x2a, 0xf3, 0x0a, 0x25, 0xaa, 0x3a, 0x09, 0xaa, 0xa0, 0xe6, 0x12,\n\t0x6c, 0x9c, 0x8b, 0xea, 0xae, 0x69, 0x0d, 0x3e, 0x9b, 0x11, 0x17, 0xa0, 0x48, 0xde, 0xfd, 0xa3,\n\t0x02, 0xb6, 0x0b, 0x9f, 0x4a, 0xff, 0xff, 0xbb, 0x70, 0x77, 0x02, 0x16, 0x66, 0x29, 0xfc, 0x08,\n\t0xd4, 0x5c, 0xdf, 0x22, 0x71, 0xd9, 0xbe, 0x75, 0xa5, 0xb9, 0x8c, 0x7c, 0x8b, 0xa4, 0x5b, 0x0b,\n\t0x7f, 0xf2, 0x50, 0x44, 0xd3, 0xfd, 0xbb, 0x02, 0x6e, 0x17, 0xe1, 0x8f, 0xec, 0x1f, 0x3c, 0x33,\n\t0xd9, 0x80, 0x1a, 0xc4, 0x43, 0xe4, 0x17, 0xbe, 0xe9, 0x8a, 0xbe, 0xc3, 0x93, 0x44, 0xa7, 0x36,\n\t0xc3, 0xfc, 0x5a, 0x3e, 0xc2, 0xf3, 0x78, 0x95, 0x16, 0x49, 0x32, 0xc8, 0x2a, 0x50, 0x1e, 0x07,\n\t0xc7, 0xa0, 0x4e, 0x1d, 0xe2, 0x62, 0x3e, 0x65, 0xa2, 0x35, 0xfa, 0xbd, 0x78, 0x14, 0x3c, 0x92,\n\t0xf2, 0x8b, 0x40, 0xbd, 0x75, 0x89, 0x1b, 0x31, 0x0c, 0x25, 0x44, 0xb0, 0x0b, 0xd6, 0xce, 0xb0,\n\t0xe5, 0x13, 0xbe, 0xed, 0xac, 0x1c, 0xd4, 0x34, 0xc0, 0xeb, 0xe9, 0xc7, 0x42, 0x82, 0xa4, 0xa6,\n\t0xfb, 0x97, 0xd2, 0x97, 0x1b, 0x51, 0x23, 0xed, 0x60, 0x23, 0xcc, 0x18, 0x71, 0x6d, 0xf8, 0x41,\n\t0xee, 0xf3, 0xe0, 0xdd, 0xc2, 0xe7, 0xc1, 0xad, 0x92, 0x25, 0x3f, 0x4b, 0xf3, 0xbf, 0xfa, 0x62,\n\t0xe8, 0x3e, 0x5f, 0x06, 0xbb, 0x65, 0xd1, 0x84, 0xef, 0x47, 0xbd, 0x8a, 0xda, 0xd2, 0xe3, 0x83,\n\t0x6c, 0xaf, 0xa2, 0xf6, 0x45, 0xa0, 0xde, 0x28, 0xda, 0x45, 0x1a, 0x24, 0xed, 0xa0, 0x0d, 0x9a,\n\t0x34, 0xbd, 0x61, 0x99, 0xa4, 0xdf, 0xbd, 0x52, 0x3e, 0x95, 0x27, 0x48, 0xd4, 0xa9, 0xb2, 0xba,\n\t0xec, 0x01, 0xf0, 0x97, 0x60, 0x9b, 0xe6, 0xef, 0x5e, 0x44, 0xee, 0xea, 0x67, 0x96, 0xc5, 0x4d,\n\t0xbb, 0x29, 0xdf, 0x7b, 0xbb, 0xa0, 0x47, 0xc5, 0xc3, 0xba, 0x4f, 0x40, 0x7e, 0x6d, 0x84, 0x1f,\n\t0xe6, 0x4b, 0xe9, 0xf6, 0x17, 0x2f, 0x9f, 0x97, 0xd4, 0xd1, 0x6f, 0x15, 0xb0, 0xb3, 0x80, 0xe5,\n\t0x6b, 0x60, 0x32, 0x05, 0xe2, 0xd6, 0x1a, 0xc5, 0x4b, 0xac, 0x81, 0xe3, 0x82, 0x0e, 0x2d, 0xa0,\n\t0xf9, 0x9e, 0x96, 0xc8, 0x06, 0xbc, 0xf9, 0xc9, 0x2f, 0x03, 0x31, 0xcf, 0xc6, 0x39, 0x0d, 0x2a,\n\t0x20, 0xbb, 0x7f, 0x52, 0x40, 0x55, 0x2f, 0x85, 0xa3, 0xec, 0x0c, 0xe3, 0x17, 0xd0, 0xd0, 0x0e,\n\t0x73, 0xf3, 0xeb, 0x22, 0x50, 0x5f, 0xaf, 0xfa, 0xcb, 0x96, 0x27, 0xba, 0xd7, 0x7b, 0xfc, 0xf0,\n\t0x7e, 0x76, 0xc8, 0x7d, 0x90, 0x0c, 0xb9, 0x65, 0x41, 0xd7, 0x4f, 0x07, 0xdc, 0xd5, 0xb8, 0xa4,\n\t0xb9, 0xf6, 0xed, 0xe7, 0x2f, 0x3a, 0x4b, 0x9f, 0xbd, 0xe8, 0x2c, 0x7d, 0xfe, 0xa2, 0xb3, 0xf4,\n\t0xab, 0xb0, 0xa3, 0x3c, 0x0f, 0x3b, 0xca, 0x67, 0x61, 0x47, 0xf9, 0x3c, 0xec, 0x28, 0xff, 0x08,\n\t0x3b, 0xca, 0x6f, 0xfe, 0xd9, 0x59, 0xfa, 0xf8, 0x5a, 0xc9, 0x7f, 0xe8, 0xff, 0x0d, 0x00, 0x00,\n\t0xff, 0xff, 0x1e, 0x70, 0x68, 0xe1, 0x59, 0x17, 0x00, 0x00,\n}\n\nfunc (m *CronJob) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CronJob) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CronJob) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CronJobList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CronJobList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CronJobList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CronJobSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CronJobSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CronJobSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.TimeZone != nil {\n\t\ti -= len(*m.TimeZone)\n\t\tcopy(dAtA[i:], *m.TimeZone)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.TimeZone)))\n\t\ti--\n\t\tdAtA[i] = 0x42\n\t}\n\tif m.FailedJobsHistoryLimit != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.FailedJobsHistoryLimit))\n\t\ti--\n\t\tdAtA[i] = 0x38\n\t}\n\tif m.SuccessfulJobsHistoryLimit != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.SuccessfulJobsHistoryLimit))\n\t\ti--\n\t\tdAtA[i] = 0x30\n\t}\n\t{\n\t\tsize, err := m.JobTemplate.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x2a\n\tif m.Suspend != nil {\n\t\ti--\n\t\tif *m.Suspend {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\ti -= len(m.ConcurrencyPolicy)\n\tcopy(dAtA[i:], m.ConcurrencyPolicy)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ConcurrencyPolicy)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.StartingDeadlineSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.StartingDeadlineSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\ti -= len(m.Schedule)\n\tcopy(dAtA[i:], m.Schedule)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Schedule)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CronJobStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CronJobStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CronJobStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.LastSuccessfulTime != nil {\n\t\t{\n\t\t\tsize, err := m.LastSuccessfulTime.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.LastScheduleTime != nil {\n\t\t{\n\t\t\tsize, err := m.LastScheduleTime.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif len(m.Active) > 0 {\n\t\tfor iNdEx := len(m.Active) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Active[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Job) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Job) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Job) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *JobCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *JobCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *JobCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x2a\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastProbeTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *JobList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *JobList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *JobList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *JobSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *JobSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *JobSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.SuccessPolicy != nil {\n\t\t{\n\t\t\tsize, err := m.SuccessPolicy.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0x82\n\t}\n\tif m.ManagedBy != nil {\n\t\ti -= len(*m.ManagedBy)\n\t\tcopy(dAtA[i:], *m.ManagedBy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.ManagedBy)))\n\t\ti--\n\t\tdAtA[i] = 0x7a\n\t}\n\tif m.PodReplacementPolicy != nil {\n\t\ti -= len(*m.PodReplacementPolicy)\n\t\tcopy(dAtA[i:], *m.PodReplacementPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.PodReplacementPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x72\n\t}\n\tif m.MaxFailedIndexes != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.MaxFailedIndexes))\n\t\ti--\n\t\tdAtA[i] = 0x68\n\t}\n\tif m.BackoffLimitPerIndex != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.BackoffLimitPerIndex))\n\t\ti--\n\t\tdAtA[i] = 0x60\n\t}\n\tif m.PodFailurePolicy != nil {\n\t\t{\n\t\t\tsize, err := m.PodFailurePolicy.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x5a\n\t}\n\tif m.Suspend != nil {\n\t\ti--\n\t\tif *m.Suspend {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x50\n\t}\n\tif m.CompletionMode != nil {\n\t\ti -= len(*m.CompletionMode)\n\t\tcopy(dAtA[i:], *m.CompletionMode)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.CompletionMode)))\n\t\ti--\n\t\tdAtA[i] = 0x4a\n\t}\n\tif m.TTLSecondsAfterFinished != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.TTLSecondsAfterFinished))\n\t\ti--\n\t\tdAtA[i] = 0x40\n\t}\n\tif m.BackoffLimit != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.BackoffLimit))\n\t\ti--\n\t\tdAtA[i] = 0x38\n\t}\n\t{\n\t\tsize, err := m.Template.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x32\n\tif m.ManualSelector != nil {\n\t\ti--\n\t\tif *m.ManualSelector {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x28\n\t}\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.ActiveDeadlineSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.ActiveDeadlineSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif m.Completions != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Completions))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif m.Parallelism != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Parallelism))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *JobStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *JobStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *JobStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Terminating != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Terminating))\n\t\ti--\n\t\tdAtA[i] = 0x58\n\t}\n\tif m.FailedIndexes != nil {\n\t\ti -= len(*m.FailedIndexes)\n\t\tcopy(dAtA[i:], *m.FailedIndexes)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.FailedIndexes)))\n\t\ti--\n\t\tdAtA[i] = 0x52\n\t}\n\tif m.Ready != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Ready))\n\t\ti--\n\t\tdAtA[i] = 0x48\n\t}\n\tif m.UncountedTerminatedPods != nil {\n\t\t{\n\t\t\tsize, err := m.UncountedTerminatedPods.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x42\n\t}\n\ti -= len(m.CompletedIndexes)\n\tcopy(dAtA[i:], m.CompletedIndexes)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.CompletedIndexes)))\n\ti--\n\tdAtA[i] = 0x3a\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Failed))\n\ti--\n\tdAtA[i] = 0x30\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Succeeded))\n\ti--\n\tdAtA[i] = 0x28\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Active))\n\ti--\n\tdAtA[i] = 0x20\n\tif m.CompletionTime != nil {\n\t\t{\n\t\t\tsize, err := m.CompletionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.StartTime != nil {\n\t\t{\n\t\t\tsize, err := m.StartTime.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *JobTemplateSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *JobTemplateSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *JobTemplateSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodFailurePolicy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodFailurePolicy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodFailurePolicy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Rules) > 0 {\n\t\tfor iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Rules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodFailurePolicyOnExitCodesRequirement) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodFailurePolicyOnExitCodesRequirement) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodFailurePolicyOnExitCodesRequirement) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Values) > 0 {\n\t\tfor iNdEx := len(m.Values) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(m.Values[iNdEx]))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x18\n\t\t}\n\t}\n\ti -= len(m.Operator)\n\tcopy(dAtA[i:], m.Operator)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Operator)))\n\ti--\n\tdAtA[i] = 0x12\n\tif m.ContainerName != nil {\n\t\ti -= len(*m.ContainerName)\n\t\tcopy(dAtA[i:], *m.ContainerName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.ContainerName)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodFailurePolicyOnPodConditionsPattern) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodFailurePolicyOnPodConditionsPattern) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodFailurePolicyOnPodConditionsPattern) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodFailurePolicyRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodFailurePolicyRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodFailurePolicyRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.OnPodConditions) > 0 {\n\t\tfor iNdEx := len(m.OnPodConditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.OnPodConditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif m.OnExitCodes != nil {\n\t\t{\n\t\t\tsize, err := m.OnExitCodes.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Action)\n\tcopy(dAtA[i:], m.Action)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Action)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SuccessPolicy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SuccessPolicy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SuccessPolicy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Rules) > 0 {\n\t\tfor iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Rules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SuccessPolicyRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SuccessPolicyRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SuccessPolicyRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.SucceededCount != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.SucceededCount))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif m.SucceededIndexes != nil {\n\t\ti -= len(*m.SucceededIndexes)\n\t\tcopy(dAtA[i:], *m.SucceededIndexes)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.SucceededIndexes)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *UncountedTerminatedPods) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *UncountedTerminatedPods) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *UncountedTerminatedPods) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Failed) > 0 {\n\t\tfor iNdEx := len(m.Failed) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Failed[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Failed[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Failed[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Succeeded) > 0 {\n\t\tfor iNdEx := len(m.Succeeded) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Succeeded[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Succeeded[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Succeeded[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *CronJob) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *CronJobList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *CronJobSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Schedule)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.StartingDeadlineSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.StartingDeadlineSeconds))\n\t}\n\tl = len(m.ConcurrencyPolicy)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Suspend != nil {\n\t\tn += 2\n\t}\n\tl = m.JobTemplate.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.SuccessfulJobsHistoryLimit != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.SuccessfulJobsHistoryLimit))\n\t}\n\tif m.FailedJobsHistoryLimit != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.FailedJobsHistoryLimit))\n\t}\n\tif m.TimeZone != nil {\n\t\tl = len(*m.TimeZone)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *CronJobStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Active) > 0 {\n\t\tfor _, e := range m.Active {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.LastScheduleTime != nil {\n\t\tl = m.LastScheduleTime.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.LastSuccessfulTime != nil {\n\t\tl = m.LastSuccessfulTime.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *Job) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *JobCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastProbeTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *JobList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *JobSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Parallelism != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Parallelism))\n\t}\n\tif m.Completions != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Completions))\n\t}\n\tif m.ActiveDeadlineSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.ActiveDeadlineSeconds))\n\t}\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ManualSelector != nil {\n\t\tn += 2\n\t}\n\tl = m.Template.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.BackoffLimit != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.BackoffLimit))\n\t}\n\tif m.TTLSecondsAfterFinished != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.TTLSecondsAfterFinished))\n\t}\n\tif m.CompletionMode != nil {\n\t\tl = len(*m.CompletionMode)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Suspend != nil {\n\t\tn += 2\n\t}\n\tif m.PodFailurePolicy != nil {\n\t\tl = m.PodFailurePolicy.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.BackoffLimitPerIndex != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.BackoffLimitPerIndex))\n\t}\n\tif m.MaxFailedIndexes != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.MaxFailedIndexes))\n\t}\n\tif m.PodReplacementPolicy != nil {\n\t\tl = len(*m.PodReplacementPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ManagedBy != nil {\n\t\tl = len(*m.ManagedBy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.SuccessPolicy != nil {\n\t\tl = m.SuccessPolicy.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *JobStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.StartTime != nil {\n\t\tl = m.StartTime.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.CompletionTime != nil {\n\t\tl = m.CompletionTime.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 1 + sovGenerated(uint64(m.Active))\n\tn += 1 + sovGenerated(uint64(m.Succeeded))\n\tn += 1 + sovGenerated(uint64(m.Failed))\n\tl = len(m.CompletedIndexes)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.UncountedTerminatedPods != nil {\n\t\tl = m.UncountedTerminatedPods.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Ready != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Ready))\n\t}\n\tif m.FailedIndexes != nil {\n\t\tl = len(*m.FailedIndexes)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Terminating != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Terminating))\n\t}\n\treturn n\n}\n\nfunc (m *JobTemplateSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PodFailurePolicy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Rules) > 0 {\n\t\tfor _, e := range m.Rules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PodFailurePolicyOnExitCodesRequirement) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.ContainerName != nil {\n\t\tl = len(*m.ContainerName)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.Operator)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Values) > 0 {\n\t\tfor _, e := range m.Values {\n\t\t\tn += 1 + sovGenerated(uint64(e))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PodFailurePolicyOnPodConditionsPattern) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PodFailurePolicyRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Action)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.OnExitCodes != nil {\n\t\tl = m.OnExitCodes.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.OnPodConditions) > 0 {\n\t\tfor _, e := range m.OnPodConditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *SuccessPolicy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Rules) > 0 {\n\t\tfor _, e := range m.Rules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *SuccessPolicyRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.SucceededIndexes != nil {\n\t\tl = len(*m.SucceededIndexes)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.SucceededCount != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.SucceededCount))\n\t}\n\treturn n\n}\n\nfunc (m *UncountedTerminatedPods) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Succeeded) > 0 {\n\t\tfor _, s := range m.Succeeded {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Failed) > 0 {\n\t\tfor _, s := range m.Failed {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *CronJob) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CronJob{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"CronJobSpec\", \"CronJobSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"CronJobStatus\", \"CronJobStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CronJobList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]CronJob{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"CronJob\", \"CronJob\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&CronJobList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CronJobSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CronJobSpec{`,\n\t\t`Schedule:` + fmt.Sprintf(\"%v\", this.Schedule) + `,`,\n\t\t`StartingDeadlineSeconds:` + valueToStringGenerated(this.StartingDeadlineSeconds) + `,`,\n\t\t`ConcurrencyPolicy:` + fmt.Sprintf(\"%v\", this.ConcurrencyPolicy) + `,`,\n\t\t`Suspend:` + valueToStringGenerated(this.Suspend) + `,`,\n\t\t`JobTemplate:` + strings.Replace(strings.Replace(this.JobTemplate.String(), \"JobTemplateSpec\", \"JobTemplateSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`SuccessfulJobsHistoryLimit:` + valueToStringGenerated(this.SuccessfulJobsHistoryLimit) + `,`,\n\t\t`FailedJobsHistoryLimit:` + valueToStringGenerated(this.FailedJobsHistoryLimit) + `,`,\n\t\t`TimeZone:` + valueToStringGenerated(this.TimeZone) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CronJobStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForActive := \"[]ObjectReference{\"\n\tfor _, f := range this.Active {\n\t\trepeatedStringForActive += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForActive += \"}\"\n\ts := strings.Join([]string{`&CronJobStatus{`,\n\t\t`Active:` + repeatedStringForActive + `,`,\n\t\t`LastScheduleTime:` + strings.Replace(fmt.Sprintf(\"%v\", this.LastScheduleTime), \"Time\", \"v1.Time\", 1) + `,`,\n\t\t`LastSuccessfulTime:` + strings.Replace(fmt.Sprintf(\"%v\", this.LastSuccessfulTime), \"Time\", \"v1.Time\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Job) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Job{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"JobSpec\", \"JobSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"JobStatus\", \"JobStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *JobCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&JobCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastProbeTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastProbeTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *JobList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Job{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Job\", \"Job\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&JobList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *JobSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&JobSpec{`,\n\t\t`Parallelism:` + valueToStringGenerated(this.Parallelism) + `,`,\n\t\t`Completions:` + valueToStringGenerated(this.Completions) + `,`,\n\t\t`ActiveDeadlineSeconds:` + valueToStringGenerated(this.ActiveDeadlineSeconds) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`ManualSelector:` + valueToStringGenerated(this.ManualSelector) + `,`,\n\t\t`Template:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Template), \"PodTemplateSpec\", \"v11.PodTemplateSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`BackoffLimit:` + valueToStringGenerated(this.BackoffLimit) + `,`,\n\t\t`TTLSecondsAfterFinished:` + valueToStringGenerated(this.TTLSecondsAfterFinished) + `,`,\n\t\t`CompletionMode:` + valueToStringGenerated(this.CompletionMode) + `,`,\n\t\t`Suspend:` + valueToStringGenerated(this.Suspend) + `,`,\n\t\t`PodFailurePolicy:` + strings.Replace(this.PodFailurePolicy.String(), \"PodFailurePolicy\", \"PodFailurePolicy\", 1) + `,`,\n\t\t`BackoffLimitPerIndex:` + valueToStringGenerated(this.BackoffLimitPerIndex) + `,`,\n\t\t`MaxFailedIndexes:` + valueToStringGenerated(this.MaxFailedIndexes) + `,`,\n\t\t`PodReplacementPolicy:` + valueToStringGenerated(this.PodReplacementPolicy) + `,`,\n\t\t`ManagedBy:` + valueToStringGenerated(this.ManagedBy) + `,`,\n\t\t`SuccessPolicy:` + strings.Replace(this.SuccessPolicy.String(), \"SuccessPolicy\", \"SuccessPolicy\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *JobStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]JobCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"JobCondition\", \"JobCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&JobStatus{`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`StartTime:` + strings.Replace(fmt.Sprintf(\"%v\", this.StartTime), \"Time\", \"v1.Time\", 1) + `,`,\n\t\t`CompletionTime:` + strings.Replace(fmt.Sprintf(\"%v\", this.CompletionTime), \"Time\", \"v1.Time\", 1) + `,`,\n\t\t`Active:` + fmt.Sprintf(\"%v\", this.Active) + `,`,\n\t\t`Succeeded:` + fmt.Sprintf(\"%v\", this.Succeeded) + `,`,\n\t\t`Failed:` + fmt.Sprintf(\"%v\", this.Failed) + `,`,\n\t\t`CompletedIndexes:` + fmt.Sprintf(\"%v\", this.CompletedIndexes) + `,`,\n\t\t`UncountedTerminatedPods:` + strings.Replace(this.UncountedTerminatedPods.String(), \"UncountedTerminatedPods\", \"UncountedTerminatedPods\", 1) + `,`,\n\t\t`Ready:` + valueToStringGenerated(this.Ready) + `,`,\n\t\t`FailedIndexes:` + valueToStringGenerated(this.FailedIndexes) + `,`,\n\t\t`Terminating:` + valueToStringGenerated(this.Terminating) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *JobTemplateSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&JobTemplateSpec{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"JobSpec\", \"JobSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodFailurePolicy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForRules := \"[]PodFailurePolicyRule{\"\n\tfor _, f := range this.Rules {\n\t\trepeatedStringForRules += strings.Replace(strings.Replace(f.String(), \"PodFailurePolicyRule\", \"PodFailurePolicyRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRules += \"}\"\n\ts := strings.Join([]string{`&PodFailurePolicy{`,\n\t\t`Rules:` + repeatedStringForRules + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodFailurePolicyOnExitCodesRequirement) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodFailurePolicyOnExitCodesRequirement{`,\n\t\t`ContainerName:` + valueToStringGenerated(this.ContainerName) + `,`,\n\t\t`Operator:` + fmt.Sprintf(\"%v\", this.Operator) + `,`,\n\t\t`Values:` + fmt.Sprintf(\"%v\", this.Values) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodFailurePolicyOnPodConditionsPattern) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodFailurePolicyOnPodConditionsPattern{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodFailurePolicyRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForOnPodConditions := \"[]PodFailurePolicyOnPodConditionsPattern{\"\n\tfor _, f := range this.OnPodConditions {\n\t\trepeatedStringForOnPodConditions += strings.Replace(strings.Replace(f.String(), \"PodFailurePolicyOnPodConditionsPattern\", \"PodFailurePolicyOnPodConditionsPattern\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForOnPodConditions += \"}\"\n\ts := strings.Join([]string{`&PodFailurePolicyRule{`,\n\t\t`Action:` + fmt.Sprintf(\"%v\", this.Action) + `,`,\n\t\t`OnExitCodes:` + strings.Replace(this.OnExitCodes.String(), \"PodFailurePolicyOnExitCodesRequirement\", \"PodFailurePolicyOnExitCodesRequirement\", 1) + `,`,\n\t\t`OnPodConditions:` + repeatedStringForOnPodConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SuccessPolicy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForRules := \"[]SuccessPolicyRule{\"\n\tfor _, f := range this.Rules {\n\t\trepeatedStringForRules += strings.Replace(strings.Replace(f.String(), \"SuccessPolicyRule\", \"SuccessPolicyRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRules += \"}\"\n\ts := strings.Join([]string{`&SuccessPolicy{`,\n\t\t`Rules:` + repeatedStringForRules + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SuccessPolicyRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SuccessPolicyRule{`,\n\t\t`SucceededIndexes:` + valueToStringGenerated(this.SucceededIndexes) + `,`,\n\t\t`SucceededCount:` + valueToStringGenerated(this.SucceededCount) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *UncountedTerminatedPods) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&UncountedTerminatedPods{`,\n\t\t`Succeeded:` + fmt.Sprintf(\"%v\", this.Succeeded) + `,`,\n\t\t`Failed:` + fmt.Sprintf(\"%v\", this.Failed) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *CronJob) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CronJob: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CronJob: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CronJobList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CronJobList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CronJobList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, CronJob{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CronJobSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CronJobSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CronJobSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Schedule\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Schedule = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StartingDeadlineSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.StartingDeadlineSeconds = &v\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ConcurrencyPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ConcurrencyPolicy = ConcurrencyPolicy(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Suspend\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Suspend = &b\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field JobTemplate\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.JobTemplate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SuccessfulJobsHistoryLimit\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.SuccessfulJobsHistoryLimit = &v\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FailedJobsHistoryLimit\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.FailedJobsHistoryLimit = &v\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TimeZone\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.TimeZone = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CronJobStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CronJobStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CronJobStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Active\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Active = append(m.Active, v11.ObjectReference{})\n\t\t\tif err := m.Active[len(m.Active)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastScheduleTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.LastScheduleTime == nil {\n\t\t\t\tm.LastScheduleTime = &v1.Time{}\n\t\t\t}\n\t\t\tif err := m.LastScheduleTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastSuccessfulTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.LastSuccessfulTime == nil {\n\t\t\t\tm.LastSuccessfulTime = &v1.Time{}\n\t\t\t}\n\t\t\tif err := m.LastSuccessfulTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Job) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Job: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Job: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *JobCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: JobCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: JobCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = JobConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastProbeTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastProbeTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *JobList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: JobList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: JobList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Job{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *JobSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: JobSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: JobSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Parallelism\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Parallelism = &v\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Completions\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Completions = &v\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ActiveDeadlineSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ActiveDeadlineSeconds = &v\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ManualSelector\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.ManualSelector = &b\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Template\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field BackoffLimit\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.BackoffLimit = &v\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TTLSecondsAfterFinished\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.TTLSecondsAfterFinished = &v\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CompletionMode\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := CompletionMode(dAtA[iNdEx:postIndex])\n\t\t\tm.CompletionMode = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Suspend\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Suspend = &b\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodFailurePolicy\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.PodFailurePolicy == nil {\n\t\t\t\tm.PodFailurePolicy = &PodFailurePolicy{}\n\t\t\t}\n\t\t\tif err := m.PodFailurePolicy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 12:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field BackoffLimitPerIndex\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.BackoffLimitPerIndex = &v\n\t\tcase 13:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxFailedIndexes\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.MaxFailedIndexes = &v\n\t\tcase 14:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodReplacementPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := PodReplacementPolicy(dAtA[iNdEx:postIndex])\n\t\t\tm.PodReplacementPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 15:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ManagedBy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.ManagedBy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 16:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SuccessPolicy\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SuccessPolicy == nil {\n\t\t\t\tm.SuccessPolicy = &SuccessPolicy{}\n\t\t\t}\n\t\t\tif err := m.SuccessPolicy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *JobStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: JobStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: JobStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, JobCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StartTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.StartTime == nil {\n\t\t\t\tm.StartTime = &v1.Time{}\n\t\t\t}\n\t\t\tif err := m.StartTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CompletionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.CompletionTime == nil {\n\t\t\t\tm.CompletionTime = &v1.Time{}\n\t\t\t}\n\t\t\tif err := m.CompletionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Active\", wireType)\n\t\t\t}\n\t\t\tm.Active = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Active |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Succeeded\", wireType)\n\t\t\t}\n\t\t\tm.Succeeded = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Succeeded |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Failed\", wireType)\n\t\t\t}\n\t\t\tm.Failed = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Failed |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CompletedIndexes\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.CompletedIndexes = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UncountedTerminatedPods\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.UncountedTerminatedPods == nil {\n\t\t\t\tm.UncountedTerminatedPods = &UncountedTerminatedPods{}\n\t\t\t}\n\t\t\tif err := m.UncountedTerminatedPods.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ready\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Ready = &v\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FailedIndexes\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.FailedIndexes = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Terminating\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Terminating = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *JobTemplateSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: JobTemplateSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: JobTemplateSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodFailurePolicy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodFailurePolicy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodFailurePolicy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Rules = append(m.Rules, PodFailurePolicyRule{})\n\t\t\tif err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodFailurePolicyOnExitCodesRequirement) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodFailurePolicyOnExitCodesRequirement: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodFailurePolicyOnExitCodesRequirement: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.ContainerName = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Operator\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Operator = PodFailurePolicyOnExitCodesOperator(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType == 0 {\n\t\t\t\tvar v int32\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tm.Values = append(m.Values, v)\n\t\t\t} else if wireType == 2 {\n\t\t\t\tvar packedLen int\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\tpackedLen |= int(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif packedLen < 0 {\n\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t}\n\t\t\t\tpostIndex := iNdEx + packedLen\n\t\t\t\tif postIndex < 0 {\n\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t}\n\t\t\t\tif postIndex > l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tvar elementCount int\n\t\t\t\tvar count int\n\t\t\t\tfor _, integer := range dAtA[iNdEx:postIndex] {\n\t\t\t\t\tif integer < 128 {\n\t\t\t\t\t\tcount++\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telementCount = count\n\t\t\t\tif elementCount != 0 && len(m.Values) == 0 {\n\t\t\t\t\tm.Values = make([]int32, 0, elementCount)\n\t\t\t\t}\n\t\t\t\tfor iNdEx < postIndex {\n\t\t\t\t\tvar v int32\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tm.Values = append(m.Values, v)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Values\", wireType)\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodFailurePolicyOnPodConditionsPattern) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodFailurePolicyOnPodConditionsPattern: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodFailurePolicyOnPodConditionsPattern: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = k8s_io_api_core_v1.PodConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodFailurePolicyRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodFailurePolicyRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodFailurePolicyRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Action\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Action = PodFailurePolicyAction(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field OnExitCodes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.OnExitCodes == nil {\n\t\t\t\tm.OnExitCodes = &PodFailurePolicyOnExitCodesRequirement{}\n\t\t\t}\n\t\t\tif err := m.OnExitCodes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field OnPodConditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.OnPodConditions = append(m.OnPodConditions, PodFailurePolicyOnPodConditionsPattern{})\n\t\t\tif err := m.OnPodConditions[len(m.OnPodConditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SuccessPolicy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SuccessPolicy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SuccessPolicy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Rules = append(m.Rules, SuccessPolicyRule{})\n\t\t\tif err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SuccessPolicyRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SuccessPolicyRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SuccessPolicyRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SucceededIndexes\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.SucceededIndexes = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SucceededCount\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.SucceededCount = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *UncountedTerminatedPods) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: UncountedTerminatedPods: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: UncountedTerminatedPods: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Succeeded\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Succeeded = append(m.Succeeded, k8s_io_apimachinery_pkg_types.UID(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Failed\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Failed = append(m.Failed, k8s_io_apimachinery_pkg_types.UID(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/batch/v1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.batch.v1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/batch/v1\";\n\n// CronJob represents the configuration of a single cron job.\nmessage CronJob {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Specification of the desired behavior of a cron job, including the schedule.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional CronJobSpec spec = 2;\n\n  // Current status of a cron job.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional CronJobStatus status = 3;\n}\n\n// CronJobList is a collection of cron jobs.\nmessage CronJobList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of CronJobs.\n  repeated CronJob items = 2;\n}\n\n// CronJobSpec describes how the job execution will look like and when it will actually run.\nmessage CronJobSpec {\n  // The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.\n  optional string schedule = 1;\n\n  // The time zone name for the given schedule, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones.\n  // If not specified, this will default to the time zone of the kube-controller-manager process.\n  // The set of valid time zone names and the time zone offset is loaded from the system-wide time zone\n  // database by the API server during CronJob validation and the controller manager during execution.\n  // If no system-wide time zone database can be found a bundled version of the database is used instead.\n  // If the time zone name becomes invalid during the lifetime of a CronJob or due to a change in host\n  // configuration, the controller will stop creating new new Jobs and will create a system event with the\n  // reason UnknownTimeZone.\n  // More information can be found in https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/#time-zones\n  // +optional\n  optional string timeZone = 8;\n\n  // Optional deadline in seconds for starting the job if it misses scheduled\n  // time for any reason.  Missed jobs executions will be counted as failed ones.\n  // +optional\n  optional int64 startingDeadlineSeconds = 2;\n\n  // Specifies how to treat concurrent executions of a Job.\n  // Valid values are:\n  //\n  // - \"Allow\" (default): allows CronJobs to run concurrently;\n  // - \"Forbid\": forbids concurrent runs, skipping next run if previous run hasn't finished yet;\n  // - \"Replace\": cancels currently running job and replaces it with a new one\n  // +optional\n  optional string concurrencyPolicy = 3;\n\n  // This flag tells the controller to suspend subsequent executions, it does\n  // not apply to already started executions.  Defaults to false.\n  // +optional\n  optional bool suspend = 4;\n\n  // Specifies the job that will be created when executing a CronJob.\n  optional JobTemplateSpec jobTemplate = 5;\n\n  // The number of successful finished jobs to retain. Value must be non-negative integer.\n  // Defaults to 3.\n  // +optional\n  optional int32 successfulJobsHistoryLimit = 6;\n\n  // The number of failed finished jobs to retain. Value must be non-negative integer.\n  // Defaults to 1.\n  // +optional\n  optional int32 failedJobsHistoryLimit = 7;\n}\n\n// CronJobStatus represents the current state of a cron job.\nmessage CronJobStatus {\n  // A list of pointers to currently running jobs.\n  // +optional\n  // +listType=atomic\n  repeated .k8s.io.api.core.v1.ObjectReference active = 1;\n\n  // Information when was the last time the job was successfully scheduled.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastScheduleTime = 4;\n\n  // Information when was the last time the job successfully completed.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastSuccessfulTime = 5;\n}\n\n// Job represents the configuration of a single job.\nmessage Job {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Specification of the desired behavior of a job.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional JobSpec spec = 2;\n\n  // Current status of a job.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional JobStatus status = 3;\n}\n\n// JobCondition describes current state of a job.\nmessage JobCondition {\n  // Type of job condition, Complete or Failed.\n  optional string type = 1;\n\n  // Status of the condition, one of True, False, Unknown.\n  optional string status = 2;\n\n  // Last time the condition was checked.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastProbeTime = 3;\n\n  // Last time the condition transit from one status to another.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;\n\n  // (brief) reason for the condition's last transition.\n  // +optional\n  optional string reason = 5;\n\n  // Human readable message indicating details about last transition.\n  // +optional\n  optional string message = 6;\n}\n\n// JobList is a collection of jobs.\nmessage JobList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of Jobs.\n  repeated Job items = 2;\n}\n\n// JobSpec describes how the job execution will look like.\nmessage JobSpec {\n  // Specifies the maximum desired number of pods the job should\n  // run at any given time. The actual number of pods running in steady state will\n  // be less than this number when ((.spec.completions - .status.successful) < .spec.parallelism),\n  // i.e. when the work left to do is less than max parallelism.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/\n  // +optional\n  optional int32 parallelism = 1;\n\n  // Specifies the desired number of successfully finished pods the\n  // job should be run with.  Setting to null means that the success of any\n  // pod signals the success of all pods, and allows parallelism to have any positive\n  // value.  Setting to 1 means that parallelism is limited to 1 and the success of that\n  // pod signals the success of the job.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/\n  // +optional\n  optional int32 completions = 2;\n\n  // Specifies the duration in seconds relative to the startTime that the job\n  // may be continuously active before the system tries to terminate it; value\n  // must be positive integer. If a Job is suspended (at creation or through an\n  // update), this timer will effectively be stopped and reset when the Job is\n  // resumed again.\n  // +optional\n  optional int64 activeDeadlineSeconds = 3;\n\n  // Specifies the policy of handling failed pods. In particular, it allows to\n  // specify the set of actions and conditions which need to be\n  // satisfied to take the associated action.\n  // If empty, the default behaviour applies - the counter of failed pods,\n  // represented by the jobs's .status.failed field, is incremented and it is\n  // checked against the backoffLimit. This field cannot be used in combination\n  // with restartPolicy=OnFailure.\n  //\n  // +optional\n  optional PodFailurePolicy podFailurePolicy = 11;\n\n  // successPolicy specifies the policy when the Job can be declared as succeeded.\n  // If empty, the default behavior applies - the Job is declared as succeeded\n  // only when the number of succeeded pods equals to the completions.\n  // When the field is specified, it must be immutable and works only for the Indexed Jobs.\n  // Once the Job meets the SuccessPolicy, the lingering pods are terminated.\n  //\n  // This field is beta-level. To use this field, you must enable the\n  // `JobSuccessPolicy` feature gate (enabled by default).\n  // +optional\n  optional SuccessPolicy successPolicy = 16;\n\n  // Specifies the number of retries before marking this job failed.\n  // Defaults to 6\n  // +optional\n  optional int32 backoffLimit = 7;\n\n  // Specifies the limit for the number of retries within an\n  // index before marking this index as failed. When enabled the number of\n  // failures per index is kept in the pod's\n  // batch.kubernetes.io/job-index-failure-count annotation. It can only\n  // be set when Job's completionMode=Indexed, and the Pod's restart\n  // policy is Never. The field is immutable.\n  // This field is beta-level. It can be used when the `JobBackoffLimitPerIndex`\n  // feature gate is enabled (enabled by default).\n  // +optional\n  optional int32 backoffLimitPerIndex = 12;\n\n  // Specifies the maximal number of failed indexes before marking the Job as\n  // failed, when backoffLimitPerIndex is set. Once the number of failed\n  // indexes exceeds this number the entire Job is marked as Failed and its\n  // execution is terminated. When left as null the job continues execution of\n  // all of its indexes and is marked with the `Complete` Job condition.\n  // It can only be specified when backoffLimitPerIndex is set.\n  // It can be null or up to completions. It is required and must be\n  // less than or equal to 10^4 when is completions greater than 10^5.\n  // This field is beta-level. It can be used when the `JobBackoffLimitPerIndex`\n  // feature gate is enabled (enabled by default).\n  // +optional\n  optional int32 maxFailedIndexes = 13;\n\n  // A label query over pods that should match the pod count.\n  // Normally, the system sets this field for you.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 4;\n\n  // manualSelector controls generation of pod labels and pod selectors.\n  // Leave `manualSelector` unset unless you are certain what you are doing.\n  // When false or unset, the system pick labels unique to this job\n  // and appends those labels to the pod template.  When true,\n  // the user is responsible for picking unique labels and specifying\n  // the selector.  Failure to pick a unique label may cause this\n  // and other jobs to not function correctly.  However, You may see\n  // `manualSelector=true` in jobs that were created with the old `extensions/v1beta1`\n  // API.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector\n  // +optional\n  optional bool manualSelector = 5;\n\n  // Describes the pod that will be created when executing a job.\n  // The only allowed template.spec.restartPolicy values are \"Never\" or \"OnFailure\".\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/\n  optional .k8s.io.api.core.v1.PodTemplateSpec template = 6;\n\n  // ttlSecondsAfterFinished limits the lifetime of a Job that has finished\n  // execution (either Complete or Failed). If this field is set,\n  // ttlSecondsAfterFinished after the Job finishes, it is eligible to be\n  // automatically deleted. When the Job is being deleted, its lifecycle\n  // guarantees (e.g. finalizers) will be honored. If this field is unset,\n  // the Job won't be automatically deleted. If this field is set to zero,\n  // the Job becomes eligible to be deleted immediately after it finishes.\n  // +optional\n  optional int32 ttlSecondsAfterFinished = 8;\n\n  // completionMode specifies how Pod completions are tracked. It can be\n  // `NonIndexed` (default) or `Indexed`.\n  //\n  // `NonIndexed` means that the Job is considered complete when there have\n  // been .spec.completions successfully completed Pods. Each Pod completion is\n  // homologous to each other.\n  //\n  // `Indexed` means that the Pods of a\n  // Job get an associated completion index from 0 to (.spec.completions - 1),\n  // available in the annotation batch.kubernetes.io/job-completion-index.\n  // The Job is considered complete when there is one successfully completed Pod\n  // for each index.\n  // When value is `Indexed`, .spec.completions must be specified and\n  // `.spec.parallelism` must be less than or equal to 10^5.\n  // In addition, The Pod name takes the form\n  // `$(job-name)-$(index)-$(random-string)`,\n  // the Pod hostname takes the form `$(job-name)-$(index)`.\n  //\n  // More completion modes can be added in the future.\n  // If the Job controller observes a mode that it doesn't recognize, which\n  // is possible during upgrades due to version skew, the controller\n  // skips updates for the Job.\n  // +optional\n  optional string completionMode = 9;\n\n  // suspend specifies whether the Job controller should create Pods or not. If\n  // a Job is created with suspend set to true, no Pods are created by the Job\n  // controller. If a Job is suspended after creation (i.e. the flag goes from\n  // false to true), the Job controller will delete all active Pods associated\n  // with this Job. Users must design their workload to gracefully handle this.\n  // Suspending a Job will reset the StartTime field of the Job, effectively\n  // resetting the ActiveDeadlineSeconds timer too. Defaults to false.\n  //\n  // +optional\n  optional bool suspend = 10;\n\n  // podReplacementPolicy specifies when to create replacement Pods.\n  // Possible values are:\n  // - TerminatingOrFailed means that we recreate pods\n  //   when they are terminating (has a metadata.deletionTimestamp) or failed.\n  // - Failed means to wait until a previously created Pod is fully terminated (has phase\n  //   Failed or Succeeded) before creating a replacement Pod.\n  //\n  // When using podFailurePolicy, Failed is the the only allowed value.\n  // TerminatingOrFailed and Failed are allowed values when podFailurePolicy is not in use.\n  // This is an beta field. To use this, enable the JobPodReplacementPolicy feature toggle.\n  // This is on by default.\n  // +optional\n  optional string podReplacementPolicy = 14;\n\n  // ManagedBy field indicates the controller that manages a Job. The k8s Job\n  // controller reconciles jobs which don't have this field at all or the field\n  // value is the reserved string `kubernetes.io/job-controller`, but skips\n  // reconciling Jobs with a custom value for this field.\n  // The value must be a valid domain-prefixed path (e.g. acme.io/foo) -\n  // all characters before the first \"/\" must be a valid subdomain as defined\n  // by RFC 1123. All characters trailing the first \"/\" must be valid HTTP Path\n  // characters as defined by RFC 3986. The value cannot exceed 63 characters.\n  // This field is immutable.\n  //\n  // This field is beta-level. The job controller accepts setting the field\n  // when the feature gate JobManagedBy is enabled (enabled by default).\n  // +optional\n  optional string managedBy = 15;\n}\n\n// JobStatus represents the current state of a Job.\nmessage JobStatus {\n  // The latest available observations of an object's current state. When a Job\n  // fails, one of the conditions will have type \"Failed\" and status true. When\n  // a Job is suspended, one of the conditions will have type \"Suspended\" and\n  // status true; when the Job is resumed, the status of this condition will\n  // become false. When a Job is completed, one of the conditions will have\n  // type \"Complete\" and status true.\n  //\n  // A job is considered finished when it is in a terminal condition, either\n  // \"Complete\" or \"Failed\". A Job cannot have both the \"Complete\" and \"Failed\" conditions.\n  // Additionally, it cannot be in the \"Complete\" and \"FailureTarget\" conditions.\n  // The \"Complete\", \"Failed\" and \"FailureTarget\" conditions cannot be disabled.\n  //\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  // +listType=atomic\n  repeated JobCondition conditions = 1;\n\n  // Represents time when the job controller started processing a job. When a\n  // Job is created in the suspended state, this field is not set until the\n  // first time it is resumed. This field is reset every time a Job is resumed\n  // from suspension. It is represented in RFC3339 form and is in UTC.\n  //\n  // Once set, the field can only be removed when the job is suspended.\n  // The field cannot be modified while the job is unsuspended or finished.\n  //\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startTime = 2;\n\n  // Represents time when the job was completed. It is not guaranteed to\n  // be set in happens-before order across separate operations.\n  // It is represented in RFC3339 form and is in UTC.\n  // The completion time is set when the job finishes successfully, and only then.\n  // The value cannot be updated or removed. The value indicates the same or\n  // later point in time as the startTime field.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time completionTime = 3;\n\n  // The number of pending and running pods which are not terminating (without\n  // a deletionTimestamp).\n  // The value is zero for finished jobs.\n  // +optional\n  optional int32 active = 4;\n\n  // The number of pods which reached phase Succeeded.\n  // The value increases monotonically for a given spec. However, it may\n  // decrease in reaction to scale down of elastic indexed jobs.\n  // +optional\n  optional int32 succeeded = 5;\n\n  // The number of pods which reached phase Failed.\n  // The value increases monotonically.\n  // +optional\n  optional int32 failed = 6;\n\n  // The number of pods which are terminating (in phase Pending or Running\n  // and have a deletionTimestamp).\n  //\n  // This field is beta-level. The job controller populates the field when\n  // the feature gate JobPodReplacementPolicy is enabled (enabled by default).\n  // +optional\n  optional int32 terminating = 11;\n\n  // completedIndexes holds the completed indexes when .spec.completionMode =\n  // \"Indexed\" in a text format. The indexes are represented as decimal integers\n  // separated by commas. The numbers are listed in increasing order. Three or\n  // more consecutive numbers are compressed and represented by the first and\n  // last element of the series, separated by a hyphen.\n  // For example, if the completed indexes are 1, 3, 4, 5 and 7, they are\n  // represented as \"1,3-5,7\".\n  // +optional\n  optional string completedIndexes = 7;\n\n  // FailedIndexes holds the failed indexes when spec.backoffLimitPerIndex is set.\n  // The indexes are represented in the text format analogous as for the\n  // `completedIndexes` field, ie. they are kept as decimal integers\n  // separated by commas. The numbers are listed in increasing order. Three or\n  // more consecutive numbers are compressed and represented by the first and\n  // last element of the series, separated by a hyphen.\n  // For example, if the failed indexes are 1, 3, 4, 5 and 7, they are\n  // represented as \"1,3-5,7\".\n  // The set of failed indexes cannot overlap with the set of completed indexes.\n  //\n  // This field is beta-level. It can be used when the `JobBackoffLimitPerIndex`\n  // feature gate is enabled (enabled by default).\n  // +optional\n  optional string failedIndexes = 10;\n\n  // uncountedTerminatedPods holds the UIDs of Pods that have terminated but\n  // the job controller hasn't yet accounted for in the status counters.\n  //\n  // The job controller creates pods with a finalizer. When a pod terminates\n  // (succeeded or failed), the controller does three steps to account for it\n  // in the job status:\n  //\n  // 1. Add the pod UID to the arrays in this field.\n  // 2. Remove the pod finalizer.\n  // 3. Remove the pod UID from the arrays while increasing the corresponding\n  //     counter.\n  //\n  // Old jobs might not be tracked using this field, in which case the field\n  // remains null.\n  // The structure is empty for finished jobs.\n  // +optional\n  optional UncountedTerminatedPods uncountedTerminatedPods = 8;\n\n  // The number of active pods which have a Ready condition and are not\n  // terminating (without a deletionTimestamp).\n  optional int32 ready = 9;\n}\n\n// JobTemplateSpec describes the data a Job should have when created from a template\nmessage JobTemplateSpec {\n  // Standard object's metadata of the jobs created from this template.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Specification of the desired behavior of the job.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional JobSpec spec = 2;\n}\n\n// PodFailurePolicy describes how failed pods influence the backoffLimit.\nmessage PodFailurePolicy {\n  // A list of pod failure policy rules. The rules are evaluated in order.\n  // Once a rule matches a Pod failure, the remaining of the rules are ignored.\n  // When no rule matches the Pod failure, the default handling applies - the\n  // counter of pod failures is incremented and it is checked against\n  // the backoffLimit. At most 20 elements are allowed.\n  // +listType=atomic\n  repeated PodFailurePolicyRule rules = 1;\n}\n\n// PodFailurePolicyOnExitCodesRequirement describes the requirement for handling\n// a failed pod based on its container exit codes. In particular, it lookups the\n// .state.terminated.exitCode for each app container and init container status,\n// represented by the .status.containerStatuses and .status.initContainerStatuses\n// fields in the Pod status, respectively. Containers completed with success\n// (exit code 0) are excluded from the requirement check.\nmessage PodFailurePolicyOnExitCodesRequirement {\n  // Restricts the check for exit codes to the container with the\n  // specified name. When null, the rule applies to all containers.\n  // When specified, it should match one the container or initContainer\n  // names in the pod template.\n  // +optional\n  optional string containerName = 1;\n\n  // Represents the relationship between the container exit code(s) and the\n  // specified values. Containers completed with success (exit code 0) are\n  // excluded from the requirement check. Possible values are:\n  //\n  // - In: the requirement is satisfied if at least one container exit code\n  //   (might be multiple if there are multiple containers not restricted\n  //   by the 'containerName' field) is in the set of specified values.\n  // - NotIn: the requirement is satisfied if at least one container exit code\n  //   (might be multiple if there are multiple containers not restricted\n  //   by the 'containerName' field) is not in the set of specified values.\n  // Additional values are considered to be added in the future. Clients should\n  // react to an unknown operator by assuming the requirement is not satisfied.\n  optional string operator = 2;\n\n  // Specifies the set of values. Each returned container exit code (might be\n  // multiple in case of multiple containers) is checked against this set of\n  // values with respect to the operator. The list of values must be ordered\n  // and must not contain duplicates. Value '0' cannot be used for the In operator.\n  // At least one element is required. At most 255 elements are allowed.\n  // +listType=set\n  repeated int32 values = 3;\n}\n\n// PodFailurePolicyOnPodConditionsPattern describes a pattern for matching\n// an actual pod condition type.\nmessage PodFailurePolicyOnPodConditionsPattern {\n  // Specifies the required Pod condition type. To match a pod condition\n  // it is required that specified type equals the pod condition type.\n  optional string type = 1;\n\n  // Specifies the required Pod condition status. To match a pod condition\n  // it is required that the specified status equals the pod condition status.\n  // Defaults to True.\n  optional string status = 2;\n}\n\n// PodFailurePolicyRule describes how a pod failure is handled when the requirements are met.\n// One of onExitCodes and onPodConditions, but not both, can be used in each rule.\nmessage PodFailurePolicyRule {\n  // Specifies the action taken on a pod failure when the requirements are satisfied.\n  // Possible values are:\n  //\n  // - FailJob: indicates that the pod's job is marked as Failed and all\n  //   running pods are terminated.\n  // - FailIndex: indicates that the pod's index is marked as Failed and will\n  //   not be restarted.\n  //   This value is beta-level. It can be used when the\n  //   `JobBackoffLimitPerIndex` feature gate is enabled (enabled by default).\n  // - Ignore: indicates that the counter towards the .backoffLimit is not\n  //   incremented and a replacement pod is created.\n  // - Count: indicates that the pod is handled in the default way - the\n  //   counter towards the .backoffLimit is incremented.\n  // Additional values are considered to be added in the future. Clients should\n  // react to an unknown action by skipping the rule.\n  optional string action = 1;\n\n  // Represents the requirement on the container exit codes.\n  // +optional\n  optional PodFailurePolicyOnExitCodesRequirement onExitCodes = 2;\n\n  // Represents the requirement on the pod conditions. The requirement is represented\n  // as a list of pod condition patterns. The requirement is satisfied if at\n  // least one pattern matches an actual pod condition. At most 20 elements are allowed.\n  // +listType=atomic\n  // +optional\n  repeated PodFailurePolicyOnPodConditionsPattern onPodConditions = 3;\n}\n\n// SuccessPolicy describes when a Job can be declared as succeeded based on the success of some indexes.\nmessage SuccessPolicy {\n  // rules represents the list of alternative rules for the declaring the Jobs\n  // as successful before `.status.succeeded >= .spec.completions`. Once any of the rules are met,\n  // the \"SucceededCriteriaMet\" condition is added, and the lingering pods are removed.\n  // The terminal state for such a Job has the \"Complete\" condition.\n  // Additionally, these rules are evaluated in order; Once the Job meets one of the rules,\n  // other rules are ignored. At most 20 elements are allowed.\n  // +listType=atomic\n  repeated SuccessPolicyRule rules = 1;\n}\n\n// SuccessPolicyRule describes rule for declaring a Job as succeeded.\n// Each rule must have at least one of the \"succeededIndexes\" or \"succeededCount\" specified.\nmessage SuccessPolicyRule {\n  // succeededIndexes specifies the set of indexes\n  // which need to be contained in the actual set of the succeeded indexes for the Job.\n  // The list of indexes must be within 0 to \".spec.completions-1\" and\n  // must not contain duplicates. At least one element is required.\n  // The indexes are represented as intervals separated by commas.\n  // The intervals can be a decimal integer or a pair of decimal integers separated by a hyphen.\n  // The number are listed in represented by the first and last element of the series,\n  // separated by a hyphen.\n  // For example, if the completed indexes are 1, 3, 4, 5 and 7, they are\n  // represented as \"1,3-5,7\".\n  // When this field is null, this field doesn't default to any value\n  // and is never evaluated at any time.\n  //\n  // +optional\n  optional string succeededIndexes = 1;\n\n  // succeededCount specifies the minimal required size of the actual set of the succeeded indexes\n  // for the Job. When succeededCount is used along with succeededIndexes, the check is\n  // constrained only to the set of indexes specified by succeededIndexes.\n  // For example, given that succeededIndexes is \"1-4\", succeededCount is \"3\",\n  // and completed indexes are \"1\", \"3\", and \"5\", the Job isn't declared as succeeded\n  // because only \"1\" and \"3\" indexes are considered in that rules.\n  // When this field is null, this doesn't default to any value and\n  // is never evaluated at any time.\n  // When specified it needs to be a positive integer.\n  //\n  // +optional\n  optional int32 succeededCount = 2;\n}\n\n// UncountedTerminatedPods holds UIDs of Pods that have terminated but haven't\n// been accounted in Job status counters.\nmessage UncountedTerminatedPods {\n  // succeeded holds UIDs of succeeded Pods.\n  // +listType=set\n  // +optional\n  repeated string succeeded = 1;\n\n  // failed holds UIDs of failed Pods.\n  // +listType=set\n  // +optional\n  repeated string failed = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/batch/v1/register.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"batch\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&Job{},\n\t\t&JobList{},\n\t\t&CronJob{},\n\t\t&CronJobList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/batch/v1/types.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/types\"\n)\n\nconst (\n\t// All Kubernetes labels need to be prefixed with Kubernetes to distinguish them from end-user labels\n\t// More info: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#label-selector-and-annotation-conventions\n\tlabelPrefix = \"batch.kubernetes.io/\"\n\n\t// CronJobScheduledTimestampAnnotation is the scheduled timestamp annotation for the Job.\n\t// It records the original/expected scheduled timestamp for the running job, represented in RFC3339.\n\tCronJobScheduledTimestampAnnotation = labelPrefix + \"cronjob-scheduled-timestamp\"\n\n\tJobCompletionIndexAnnotation = labelPrefix + \"job-completion-index\"\n\t// JobTrackingFinalizer is a finalizer for Job's pods. It prevents them from\n\t// being deleted before being accounted in the Job status.\n\t//\n\t// Additionally, the apiserver and job controller use this string as a Job\n\t// annotation, to mark Jobs that are being tracked using pod finalizers.\n\t// However, this behavior is deprecated in kubernetes 1.26. This means that, in\n\t// 1.27+, one release after JobTrackingWithFinalizers graduates to GA, the\n\t// apiserver and job controller will ignore this annotation and they will\n\t// always track jobs using finalizers.\n\tJobTrackingFinalizer = labelPrefix + \"job-tracking\"\n\t// The Job labels will use batch.kubernetes.io as a prefix for all labels\n\t// Historically the job controller uses unprefixed labels for job-name and controller-uid and\n\t// Kubernetes continutes to recognize those unprefixed labels for consistency.\n\tJobNameLabel = labelPrefix + \"job-name\"\n\t// ControllerUid is used to programatically get pods corresponding to a Job.\n\t// There is a corresponding label without the batch.kubernetes.io that we support for legacy reasons.\n\tControllerUidLabel = labelPrefix + \"controller-uid\"\n\t// Annotation indicating the number of failures for the index corresponding\n\t// to the pod, which are counted towards the backoff limit.\n\tJobIndexFailureCountAnnotation = labelPrefix + \"job-index-failure-count\"\n\t// Annotation indicating the number of failures for the index corresponding\n\t// to the pod, which don't count towards the backoff limit, according to the\n\t// pod failure policy. When the annotation is absent zero is implied.\n\tJobIndexIgnoredFailureCountAnnotation = labelPrefix + \"job-index-ignored-failure-count\"\n\t// JobControllerName reserved value for the managedBy field for the built-in\n\t// Job controller.\n\tJobControllerName = \"kubernetes.io/job-controller\"\n)\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.2\n\n// Job represents the configuration of a single job.\ntype Job struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Specification of the desired behavior of a job.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec JobSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Current status of a job.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus JobStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.2\n\n// JobList is a collection of jobs.\ntype JobList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of Jobs.\n\tItems []Job `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// CompletionMode specifies how Pod completions of a Job are tracked.\n// +enum\ntype CompletionMode string\n\nconst (\n\t// NonIndexedCompletion is a Job completion mode. In this mode, the Job is\n\t// considered complete when there have been .spec.completions\n\t// successfully completed Pods. Pod completions are homologous to each other.\n\tNonIndexedCompletion CompletionMode = \"NonIndexed\"\n\n\t// IndexedCompletion is a Job completion mode. In this mode, the Pods of a\n\t// Job get an associated completion index from 0 to (.spec.completions - 1).\n\t// The Job is  considered complete when a Pod completes for each completion\n\t// index.\n\tIndexedCompletion CompletionMode = \"Indexed\"\n)\n\n// PodFailurePolicyAction specifies how a Pod failure is handled.\n// +enum\ntype PodFailurePolicyAction string\n\nconst (\n\t// This is an action which might be taken on a pod failure - mark the\n\t// pod's job as Failed and terminate all running pods.\n\tPodFailurePolicyActionFailJob PodFailurePolicyAction = \"FailJob\"\n\n\t// This is an action which might be taken on a pod failure - mark the\n\t// Job's index as failed to avoid restarts within this index. This action\n\t// can only be used when backoffLimitPerIndex is set.\n\t// This value is beta-level.\n\tPodFailurePolicyActionFailIndex PodFailurePolicyAction = \"FailIndex\"\n\n\t// This is an action which might be taken on a pod failure - the counter towards\n\t// .backoffLimit, represented by the job's .status.failed field, is not\n\t// incremented and a replacement pod is created.\n\tPodFailurePolicyActionIgnore PodFailurePolicyAction = \"Ignore\"\n\n\t// This is an action which might be taken on a pod failure - the pod failure\n\t// is handled in the default way - the counter towards .backoffLimit,\n\t// represented by the job's .status.failed field, is incremented.\n\tPodFailurePolicyActionCount PodFailurePolicyAction = \"Count\"\n)\n\n// +enum\ntype PodFailurePolicyOnExitCodesOperator string\n\nconst (\n\tPodFailurePolicyOnExitCodesOpIn    PodFailurePolicyOnExitCodesOperator = \"In\"\n\tPodFailurePolicyOnExitCodesOpNotIn PodFailurePolicyOnExitCodesOperator = \"NotIn\"\n)\n\n// PodReplacementPolicy specifies the policy for creating pod replacements.\n// +enum\ntype PodReplacementPolicy string\n\nconst (\n\t// TerminatingOrFailed means that we recreate pods\n\t// when they are terminating (has a metadata.deletionTimestamp) or failed.\n\tTerminatingOrFailed PodReplacementPolicy = \"TerminatingOrFailed\"\n\t// Failed means to wait until a previously created Pod is fully terminated (has phase\n\t// Failed or Succeeded) before creating a replacement Pod.\n\tFailed PodReplacementPolicy = \"Failed\"\n)\n\n// PodFailurePolicyOnExitCodesRequirement describes the requirement for handling\n// a failed pod based on its container exit codes. In particular, it lookups the\n// .state.terminated.exitCode for each app container and init container status,\n// represented by the .status.containerStatuses and .status.initContainerStatuses\n// fields in the Pod status, respectively. Containers completed with success\n// (exit code 0) are excluded from the requirement check.\ntype PodFailurePolicyOnExitCodesRequirement struct {\n\t// Restricts the check for exit codes to the container with the\n\t// specified name. When null, the rule applies to all containers.\n\t// When specified, it should match one the container or initContainer\n\t// names in the pod template.\n\t// +optional\n\tContainerName *string `json:\"containerName,omitempty\" protobuf:\"bytes,1,opt,name=containerName\"`\n\n\t// Represents the relationship between the container exit code(s) and the\n\t// specified values. Containers completed with success (exit code 0) are\n\t// excluded from the requirement check. Possible values are:\n\t//\n\t// - In: the requirement is satisfied if at least one container exit code\n\t//   (might be multiple if there are multiple containers not restricted\n\t//   by the 'containerName' field) is in the set of specified values.\n\t// - NotIn: the requirement is satisfied if at least one container exit code\n\t//   (might be multiple if there are multiple containers not restricted\n\t//   by the 'containerName' field) is not in the set of specified values.\n\t// Additional values are considered to be added in the future. Clients should\n\t// react to an unknown operator by assuming the requirement is not satisfied.\n\tOperator PodFailurePolicyOnExitCodesOperator `json:\"operator\" protobuf:\"bytes,2,req,name=operator\"`\n\n\t// Specifies the set of values. Each returned container exit code (might be\n\t// multiple in case of multiple containers) is checked against this set of\n\t// values with respect to the operator. The list of values must be ordered\n\t// and must not contain duplicates. Value '0' cannot be used for the In operator.\n\t// At least one element is required. At most 255 elements are allowed.\n\t// +listType=set\n\tValues []int32 `json:\"values\" protobuf:\"varint,3,rep,name=values\"`\n}\n\n// PodFailurePolicyOnPodConditionsPattern describes a pattern for matching\n// an actual pod condition type.\ntype PodFailurePolicyOnPodConditionsPattern struct {\n\t// Specifies the required Pod condition type. To match a pod condition\n\t// it is required that specified type equals the pod condition type.\n\tType corev1.PodConditionType `json:\"type\" protobuf:\"bytes,1,req,name=type\"`\n\n\t// Specifies the required Pod condition status. To match a pod condition\n\t// it is required that the specified status equals the pod condition status.\n\t// Defaults to True.\n\tStatus corev1.ConditionStatus `json:\"status\" protobuf:\"bytes,2,req,name=status\"`\n}\n\n// PodFailurePolicyRule describes how a pod failure is handled when the requirements are met.\n// One of onExitCodes and onPodConditions, but not both, can be used in each rule.\ntype PodFailurePolicyRule struct {\n\t// Specifies the action taken on a pod failure when the requirements are satisfied.\n\t// Possible values are:\n\t//\n\t// - FailJob: indicates that the pod's job is marked as Failed and all\n\t//   running pods are terminated.\n\t// - FailIndex: indicates that the pod's index is marked as Failed and will\n\t//   not be restarted.\n\t//   This value is beta-level. It can be used when the\n\t//   `JobBackoffLimitPerIndex` feature gate is enabled (enabled by default).\n\t// - Ignore: indicates that the counter towards the .backoffLimit is not\n\t//   incremented and a replacement pod is created.\n\t// - Count: indicates that the pod is handled in the default way - the\n\t//   counter towards the .backoffLimit is incremented.\n\t// Additional values are considered to be added in the future. Clients should\n\t// react to an unknown action by skipping the rule.\n\tAction PodFailurePolicyAction `json:\"action\" protobuf:\"bytes,1,req,name=action\"`\n\n\t// Represents the requirement on the container exit codes.\n\t// +optional\n\tOnExitCodes *PodFailurePolicyOnExitCodesRequirement `json:\"onExitCodes,omitempty\" protobuf:\"bytes,2,opt,name=onExitCodes\"`\n\n\t// Represents the requirement on the pod conditions. The requirement is represented\n\t// as a list of pod condition patterns. The requirement is satisfied if at\n\t// least one pattern matches an actual pod condition. At most 20 elements are allowed.\n\t// +listType=atomic\n\t// +optional\n\tOnPodConditions []PodFailurePolicyOnPodConditionsPattern `json:\"onPodConditions,omitempty\" protobuf:\"bytes,3,opt,name=onPodConditions\"`\n}\n\n// PodFailurePolicy describes how failed pods influence the backoffLimit.\ntype PodFailurePolicy struct {\n\t// A list of pod failure policy rules. The rules are evaluated in order.\n\t// Once a rule matches a Pod failure, the remaining of the rules are ignored.\n\t// When no rule matches the Pod failure, the default handling applies - the\n\t// counter of pod failures is incremented and it is checked against\n\t// the backoffLimit. At most 20 elements are allowed.\n\t// +listType=atomic\n\tRules []PodFailurePolicyRule `json:\"rules\" protobuf:\"bytes,1,opt,name=rules\"`\n}\n\n// SuccessPolicy describes when a Job can be declared as succeeded based on the success of some indexes.\ntype SuccessPolicy struct {\n\t// rules represents the list of alternative rules for the declaring the Jobs\n\t// as successful before `.status.succeeded >= .spec.completions`. Once any of the rules are met,\n\t// the \"SucceededCriteriaMet\" condition is added, and the lingering pods are removed.\n\t// The terminal state for such a Job has the \"Complete\" condition.\n\t// Additionally, these rules are evaluated in order; Once the Job meets one of the rules,\n\t// other rules are ignored. At most 20 elements are allowed.\n\t// +listType=atomic\n\tRules []SuccessPolicyRule `json:\"rules\" protobuf:\"bytes,1,opt,name=rules\"`\n}\n\n// SuccessPolicyRule describes rule for declaring a Job as succeeded.\n// Each rule must have at least one of the \"succeededIndexes\" or \"succeededCount\" specified.\ntype SuccessPolicyRule struct {\n\t// succeededIndexes specifies the set of indexes\n\t// which need to be contained in the actual set of the succeeded indexes for the Job.\n\t// The list of indexes must be within 0 to \".spec.completions-1\" and\n\t// must not contain duplicates. At least one element is required.\n\t// The indexes are represented as intervals separated by commas.\n\t// The intervals can be a decimal integer or a pair of decimal integers separated by a hyphen.\n\t// The number are listed in represented by the first and last element of the series,\n\t// separated by a hyphen.\n\t// For example, if the completed indexes are 1, 3, 4, 5 and 7, they are\n\t// represented as \"1,3-5,7\".\n\t// When this field is null, this field doesn't default to any value\n\t// and is never evaluated at any time.\n\t//\n\t// +optional\n\tSucceededIndexes *string `json:\"succeededIndexes,omitempty\" protobuf:\"bytes,1,opt,name=succeededIndexes\"`\n\n\t// succeededCount specifies the minimal required size of the actual set of the succeeded indexes\n\t// for the Job. When succeededCount is used along with succeededIndexes, the check is\n\t// constrained only to the set of indexes specified by succeededIndexes.\n\t// For example, given that succeededIndexes is \"1-4\", succeededCount is \"3\",\n\t// and completed indexes are \"1\", \"3\", and \"5\", the Job isn't declared as succeeded\n\t// because only \"1\" and \"3\" indexes are considered in that rules.\n\t// When this field is null, this doesn't default to any value and\n\t// is never evaluated at any time.\n\t// When specified it needs to be a positive integer.\n\t//\n\t// +optional\n\tSucceededCount *int32 `json:\"succeededCount,omitempty\" protobuf:\"varint,2,opt,name=succeededCount\"`\n}\n\n// JobSpec describes how the job execution will look like.\ntype JobSpec struct {\n\n\t// Specifies the maximum desired number of pods the job should\n\t// run at any given time. The actual number of pods running in steady state will\n\t// be less than this number when ((.spec.completions - .status.successful) < .spec.parallelism),\n\t// i.e. when the work left to do is less than max parallelism.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/\n\t// +optional\n\tParallelism *int32 `json:\"parallelism,omitempty\" protobuf:\"varint,1,opt,name=parallelism\"`\n\n\t// Specifies the desired number of successfully finished pods the\n\t// job should be run with.  Setting to null means that the success of any\n\t// pod signals the success of all pods, and allows parallelism to have any positive\n\t// value.  Setting to 1 means that parallelism is limited to 1 and the success of that\n\t// pod signals the success of the job.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/\n\t// +optional\n\tCompletions *int32 `json:\"completions,omitempty\" protobuf:\"varint,2,opt,name=completions\"`\n\n\t// Specifies the duration in seconds relative to the startTime that the job\n\t// may be continuously active before the system tries to terminate it; value\n\t// must be positive integer. If a Job is suspended (at creation or through an\n\t// update), this timer will effectively be stopped and reset when the Job is\n\t// resumed again.\n\t// +optional\n\tActiveDeadlineSeconds *int64 `json:\"activeDeadlineSeconds,omitempty\" protobuf:\"varint,3,opt,name=activeDeadlineSeconds\"`\n\n\t// Specifies the policy of handling failed pods. In particular, it allows to\n\t// specify the set of actions and conditions which need to be\n\t// satisfied to take the associated action.\n\t// If empty, the default behaviour applies - the counter of failed pods,\n\t// represented by the jobs's .status.failed field, is incremented and it is\n\t// checked against the backoffLimit. This field cannot be used in combination\n\t// with restartPolicy=OnFailure.\n\t//\n\t// +optional\n\tPodFailurePolicy *PodFailurePolicy `json:\"podFailurePolicy,omitempty\" protobuf:\"bytes,11,opt,name=podFailurePolicy\"`\n\n\t// successPolicy specifies the policy when the Job can be declared as succeeded.\n\t// If empty, the default behavior applies - the Job is declared as succeeded\n\t// only when the number of succeeded pods equals to the completions.\n\t// When the field is specified, it must be immutable and works only for the Indexed Jobs.\n\t// Once the Job meets the SuccessPolicy, the lingering pods are terminated.\n\t//\n\t// This field is beta-level. To use this field, you must enable the\n\t// `JobSuccessPolicy` feature gate (enabled by default).\n\t// +optional\n\tSuccessPolicy *SuccessPolicy `json:\"successPolicy,omitempty\" protobuf:\"bytes,16,opt,name=successPolicy\"`\n\n\t// Specifies the number of retries before marking this job failed.\n\t// Defaults to 6\n\t// +optional\n\tBackoffLimit *int32 `json:\"backoffLimit,omitempty\" protobuf:\"varint,7,opt,name=backoffLimit\"`\n\n\t// Specifies the limit for the number of retries within an\n\t// index before marking this index as failed. When enabled the number of\n\t// failures per index is kept in the pod's\n\t// batch.kubernetes.io/job-index-failure-count annotation. It can only\n\t// be set when Job's completionMode=Indexed, and the Pod's restart\n\t// policy is Never. The field is immutable.\n\t// This field is beta-level. It can be used when the `JobBackoffLimitPerIndex`\n\t// feature gate is enabled (enabled by default).\n\t// +optional\n\tBackoffLimitPerIndex *int32 `json:\"backoffLimitPerIndex,omitempty\" protobuf:\"varint,12,opt,name=backoffLimitPerIndex\"`\n\n\t// Specifies the maximal number of failed indexes before marking the Job as\n\t// failed, when backoffLimitPerIndex is set. Once the number of failed\n\t// indexes exceeds this number the entire Job is marked as Failed and its\n\t// execution is terminated. When left as null the job continues execution of\n\t// all of its indexes and is marked with the `Complete` Job condition.\n\t// It can only be specified when backoffLimitPerIndex is set.\n\t// It can be null or up to completions. It is required and must be\n\t// less than or equal to 10^4 when is completions greater than 10^5.\n\t// This field is beta-level. It can be used when the `JobBackoffLimitPerIndex`\n\t// feature gate is enabled (enabled by default).\n\t// +optional\n\tMaxFailedIndexes *int32 `json:\"maxFailedIndexes,omitempty\" protobuf:\"varint,13,opt,name=maxFailedIndexes\"`\n\n\t// TODO enabled it when https://github.com/kubernetes/kubernetes/issues/28486 has been fixed\n\t// Optional number of failed pods to retain.\n\t// +optional\n\t// FailedPodsLimit *int32 `json:\"failedPodsLimit,omitempty\" protobuf:\"varint,9,opt,name=failedPodsLimit\"`\n\n\t// A label query over pods that should match the pod count.\n\t// Normally, the system sets this field for you.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n\t// +optional\n\tSelector *metav1.LabelSelector `json:\"selector,omitempty\" protobuf:\"bytes,4,opt,name=selector\"`\n\n\t// manualSelector controls generation of pod labels and pod selectors.\n\t// Leave `manualSelector` unset unless you are certain what you are doing.\n\t// When false or unset, the system pick labels unique to this job\n\t// and appends those labels to the pod template.  When true,\n\t// the user is responsible for picking unique labels and specifying\n\t// the selector.  Failure to pick a unique label may cause this\n\t// and other jobs to not function correctly.  However, You may see\n\t// `manualSelector=true` in jobs that were created with the old `extensions/v1beta1`\n\t// API.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector\n\t// +optional\n\tManualSelector *bool `json:\"manualSelector,omitempty\" protobuf:\"varint,5,opt,name=manualSelector\"`\n\n\t// Describes the pod that will be created when executing a job.\n\t// The only allowed template.spec.restartPolicy values are \"Never\" or \"OnFailure\".\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/\n\tTemplate corev1.PodTemplateSpec `json:\"template\" protobuf:\"bytes,6,opt,name=template\"`\n\n\t// ttlSecondsAfterFinished limits the lifetime of a Job that has finished\n\t// execution (either Complete or Failed). If this field is set,\n\t// ttlSecondsAfterFinished after the Job finishes, it is eligible to be\n\t// automatically deleted. When the Job is being deleted, its lifecycle\n\t// guarantees (e.g. finalizers) will be honored. If this field is unset,\n\t// the Job won't be automatically deleted. If this field is set to zero,\n\t// the Job becomes eligible to be deleted immediately after it finishes.\n\t// +optional\n\tTTLSecondsAfterFinished *int32 `json:\"ttlSecondsAfterFinished,omitempty\" protobuf:\"varint,8,opt,name=ttlSecondsAfterFinished\"`\n\n\t// completionMode specifies how Pod completions are tracked. It can be\n\t// `NonIndexed` (default) or `Indexed`.\n\t//\n\t// `NonIndexed` means that the Job is considered complete when there have\n\t// been .spec.completions successfully completed Pods. Each Pod completion is\n\t// homologous to each other.\n\t//\n\t// `Indexed` means that the Pods of a\n\t// Job get an associated completion index from 0 to (.spec.completions - 1),\n\t// available in the annotation batch.kubernetes.io/job-completion-index.\n\t// The Job is considered complete when there is one successfully completed Pod\n\t// for each index.\n\t// When value is `Indexed`, .spec.completions must be specified and\n\t// `.spec.parallelism` must be less than or equal to 10^5.\n\t// In addition, The Pod name takes the form\n\t// `$(job-name)-$(index)-$(random-string)`,\n\t// the Pod hostname takes the form `$(job-name)-$(index)`.\n\t//\n\t// More completion modes can be added in the future.\n\t// If the Job controller observes a mode that it doesn't recognize, which\n\t// is possible during upgrades due to version skew, the controller\n\t// skips updates for the Job.\n\t// +optional\n\tCompletionMode *CompletionMode `json:\"completionMode,omitempty\" protobuf:\"bytes,9,opt,name=completionMode,casttype=CompletionMode\"`\n\n\t// suspend specifies whether the Job controller should create Pods or not. If\n\t// a Job is created with suspend set to true, no Pods are created by the Job\n\t// controller. If a Job is suspended after creation (i.e. the flag goes from\n\t// false to true), the Job controller will delete all active Pods associated\n\t// with this Job. Users must design their workload to gracefully handle this.\n\t// Suspending a Job will reset the StartTime field of the Job, effectively\n\t// resetting the ActiveDeadlineSeconds timer too. Defaults to false.\n\t//\n\t// +optional\n\tSuspend *bool `json:\"suspend,omitempty\" protobuf:\"varint,10,opt,name=suspend\"`\n\n\t// podReplacementPolicy specifies when to create replacement Pods.\n\t// Possible values are:\n\t// - TerminatingOrFailed means that we recreate pods\n\t//   when they are terminating (has a metadata.deletionTimestamp) or failed.\n\t// - Failed means to wait until a previously created Pod is fully terminated (has phase\n\t//   Failed or Succeeded) before creating a replacement Pod.\n\t//\n\t// When using podFailurePolicy, Failed is the the only allowed value.\n\t// TerminatingOrFailed and Failed are allowed values when podFailurePolicy is not in use.\n\t// This is an beta field. To use this, enable the JobPodReplacementPolicy feature toggle.\n\t// This is on by default.\n\t// +optional\n\tPodReplacementPolicy *PodReplacementPolicy `json:\"podReplacementPolicy,omitempty\" protobuf:\"bytes,14,opt,name=podReplacementPolicy,casttype=podReplacementPolicy\"`\n\n\t// ManagedBy field indicates the controller that manages a Job. The k8s Job\n\t// controller reconciles jobs which don't have this field at all or the field\n\t// value is the reserved string `kubernetes.io/job-controller`, but skips\n\t// reconciling Jobs with a custom value for this field.\n\t// The value must be a valid domain-prefixed path (e.g. acme.io/foo) -\n\t// all characters before the first \"/\" must be a valid subdomain as defined\n\t// by RFC 1123. All characters trailing the first \"/\" must be valid HTTP Path\n\t// characters as defined by RFC 3986. The value cannot exceed 63 characters.\n\t// This field is immutable.\n\t//\n\t// This field is beta-level. The job controller accepts setting the field\n\t// when the feature gate JobManagedBy is enabled (enabled by default).\n\t// +optional\n\tManagedBy *string `json:\"managedBy,omitempty\" protobuf:\"bytes,15,opt,name=managedBy\"`\n}\n\n// JobStatus represents the current state of a Job.\ntype JobStatus struct {\n\t// The latest available observations of an object's current state. When a Job\n\t// fails, one of the conditions will have type \"Failed\" and status true. When\n\t// a Job is suspended, one of the conditions will have type \"Suspended\" and\n\t// status true; when the Job is resumed, the status of this condition will\n\t// become false. When a Job is completed, one of the conditions will have\n\t// type \"Complete\" and status true.\n\t//\n\t// A job is considered finished when it is in a terminal condition, either\n\t// \"Complete\" or \"Failed\". A Job cannot have both the \"Complete\" and \"Failed\" conditions.\n\t// Additionally, it cannot be in the \"Complete\" and \"FailureTarget\" conditions.\n\t// The \"Complete\", \"Failed\" and \"FailureTarget\" conditions cannot be disabled.\n\t//\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\t// +listType=atomic\n\tConditions []JobCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\t// Represents time when the job controller started processing a job. When a\n\t// Job is created in the suspended state, this field is not set until the\n\t// first time it is resumed. This field is reset every time a Job is resumed\n\t// from suspension. It is represented in RFC3339 form and is in UTC.\n\t//\n\t// Once set, the field can only be removed when the job is suspended.\n\t// The field cannot be modified while the job is unsuspended or finished.\n\t//\n\t// +optional\n\tStartTime *metav1.Time `json:\"startTime,omitempty\" protobuf:\"bytes,2,opt,name=startTime\"`\n\n\t// Represents time when the job was completed. It is not guaranteed to\n\t// be set in happens-before order across separate operations.\n\t// It is represented in RFC3339 form and is in UTC.\n\t// The completion time is set when the job finishes successfully, and only then.\n\t// The value cannot be updated or removed. The value indicates the same or\n\t// later point in time as the startTime field.\n\t// +optional\n\tCompletionTime *metav1.Time `json:\"completionTime,omitempty\" protobuf:\"bytes,3,opt,name=completionTime\"`\n\n\t// The number of pending and running pods which are not terminating (without\n\t// a deletionTimestamp).\n\t// The value is zero for finished jobs.\n\t// +optional\n\tActive int32 `json:\"active,omitempty\" protobuf:\"varint,4,opt,name=active\"`\n\n\t// The number of pods which reached phase Succeeded.\n\t// The value increases monotonically for a given spec. However, it may\n\t// decrease in reaction to scale down of elastic indexed jobs.\n\t// +optional\n\tSucceeded int32 `json:\"succeeded,omitempty\" protobuf:\"varint,5,opt,name=succeeded\"`\n\n\t// The number of pods which reached phase Failed.\n\t// The value increases monotonically.\n\t// +optional\n\tFailed int32 `json:\"failed,omitempty\" protobuf:\"varint,6,opt,name=failed\"`\n\n\t// The number of pods which are terminating (in phase Pending or Running\n\t// and have a deletionTimestamp).\n\t//\n\t// This field is beta-level. The job controller populates the field when\n\t// the feature gate JobPodReplacementPolicy is enabled (enabled by default).\n\t// +optional\n\tTerminating *int32 `json:\"terminating,omitempty\" protobuf:\"varint,11,opt,name=terminating\"`\n\n\t// completedIndexes holds the completed indexes when .spec.completionMode =\n\t// \"Indexed\" in a text format. The indexes are represented as decimal integers\n\t// separated by commas. The numbers are listed in increasing order. Three or\n\t// more consecutive numbers are compressed and represented by the first and\n\t// last element of the series, separated by a hyphen.\n\t// For example, if the completed indexes are 1, 3, 4, 5 and 7, they are\n\t// represented as \"1,3-5,7\".\n\t// +optional\n\tCompletedIndexes string `json:\"completedIndexes,omitempty\" protobuf:\"bytes,7,opt,name=completedIndexes\"`\n\n\t// FailedIndexes holds the failed indexes when spec.backoffLimitPerIndex is set.\n\t// The indexes are represented in the text format analogous as for the\n\t// `completedIndexes` field, ie. they are kept as decimal integers\n\t// separated by commas. The numbers are listed in increasing order. Three or\n\t// more consecutive numbers are compressed and represented by the first and\n\t// last element of the series, separated by a hyphen.\n\t// For example, if the failed indexes are 1, 3, 4, 5 and 7, they are\n\t// represented as \"1,3-5,7\".\n\t// The set of failed indexes cannot overlap with the set of completed indexes.\n\t//\n\t// This field is beta-level. It can be used when the `JobBackoffLimitPerIndex`\n\t// feature gate is enabled (enabled by default).\n\t// +optional\n\tFailedIndexes *string `json:\"failedIndexes,omitempty\" protobuf:\"bytes,10,opt,name=failedIndexes\"`\n\n\t// uncountedTerminatedPods holds the UIDs of Pods that have terminated but\n\t// the job controller hasn't yet accounted for in the status counters.\n\t//\n\t// The job controller creates pods with a finalizer. When a pod terminates\n\t// (succeeded or failed), the controller does three steps to account for it\n\t// in the job status:\n\t//\n\t// 1. Add the pod UID to the arrays in this field.\n\t// 2. Remove the pod finalizer.\n\t// 3. Remove the pod UID from the arrays while increasing the corresponding\n\t//     counter.\n\t//\n\t// Old jobs might not be tracked using this field, in which case the field\n\t// remains null.\n\t// The structure is empty for finished jobs.\n\t// +optional\n\tUncountedTerminatedPods *UncountedTerminatedPods `json:\"uncountedTerminatedPods,omitempty\" protobuf:\"bytes,8,opt,name=uncountedTerminatedPods\"`\n\n\t// The number of active pods which have a Ready condition and are not\n\t// terminating (without a deletionTimestamp).\n\tReady *int32 `json:\"ready,omitempty\" protobuf:\"varint,9,opt,name=ready\"`\n}\n\n// UncountedTerminatedPods holds UIDs of Pods that have terminated but haven't\n// been accounted in Job status counters.\ntype UncountedTerminatedPods struct {\n\t// succeeded holds UIDs of succeeded Pods.\n\t// +listType=set\n\t// +optional\n\tSucceeded []types.UID `json:\"succeeded,omitempty\" protobuf:\"bytes,1,rep,name=succeeded,casttype=k8s.io/apimachinery/pkg/types.UID\"`\n\n\t// failed holds UIDs of failed Pods.\n\t// +listType=set\n\t// +optional\n\tFailed []types.UID `json:\"failed,omitempty\" protobuf:\"bytes,2,rep,name=failed,casttype=k8s.io/apimachinery/pkg/types.UID\"`\n}\n\ntype JobConditionType string\n\n// These are built-in conditions of a job.\nconst (\n\t// JobSuspended means the job has been suspended.\n\tJobSuspended JobConditionType = \"Suspended\"\n\t// JobComplete means the job has completed its execution.\n\tJobComplete JobConditionType = \"Complete\"\n\t// JobFailed means the job has failed its execution.\n\tJobFailed JobConditionType = \"Failed\"\n\t// FailureTarget means the job is about to fail its execution.\n\tJobFailureTarget JobConditionType = \"FailureTarget\"\n\t// JobSuccessCriteriaMet means the Job has been succeeded.\n\tJobSuccessCriteriaMet JobConditionType = \"SuccessCriteriaMet\"\n)\n\nconst (\n\t// JobReasonPodFailurePolicy reason indicates a job failure condition is added due to\n\t// a failed pod matching a pod failure policy rule\n\t// https://kep.k8s.io/3329\n\tJobReasonPodFailurePolicy string = \"PodFailurePolicy\"\n\t// JobReasonBackOffLimitExceeded reason indicates that pods within a job have failed a number of\n\t// times higher than backOffLimit times.\n\tJobReasonBackoffLimitExceeded string = \"BackoffLimitExceeded\"\n\t// JobReasponDeadlineExceeded means job duration is past ActiveDeadline\n\tJobReasonDeadlineExceeded string = \"DeadlineExceeded\"\n\t// JobReasonMaxFailedIndexesExceeded indicates that an indexed of a job failed\n\t// This const is used in beta-level feature: https://kep.k8s.io/3850.\n\tJobReasonMaxFailedIndexesExceeded string = \"MaxFailedIndexesExceeded\"\n\t// JobReasonFailedIndexes means Job has failed indexes.\n\t// This const is used in beta-level feature: https://kep.k8s.io/3850.\n\tJobReasonFailedIndexes string = \"FailedIndexes\"\n\t// JobReasonSuccessPolicy reason indicates a SuccessCriteriaMet condition is added due to\n\t// a Job met successPolicy.\n\t// https://kep.k8s.io/3998\n\t// This is currently a beta field.\n\tJobReasonSuccessPolicy string = \"SuccessPolicy\"\n\t// JobReasonCompletionsReached reason indicates a SuccessCriteriaMet condition is added due to\n\t// a number of succeeded Job pods met completions.\n\t// - https://kep.k8s.io/3998\n\t// This is currently a beta field.\n\tJobReasonCompletionsReached string = \"CompletionsReached\"\n)\n\n// JobCondition describes current state of a job.\ntype JobCondition struct {\n\t// Type of job condition, Complete or Failed.\n\tType JobConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=JobConditionType\"`\n\t// Status of the condition, one of True, False, Unknown.\n\tStatus corev1.ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus\"`\n\t// Last time the condition was checked.\n\t// +optional\n\tLastProbeTime metav1.Time `json:\"lastProbeTime,omitempty\" protobuf:\"bytes,3,opt,name=lastProbeTime\"`\n\t// Last time the condition transit from one status to another.\n\t// +optional\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,4,opt,name=lastTransitionTime\"`\n\t// (brief) reason for the condition's last transition.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,5,opt,name=reason\"`\n\t// Human readable message indicating details about last transition.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,6,opt,name=message\"`\n}\n\n// JobTemplateSpec describes the data a Job should have when created from a template\ntype JobTemplateSpec struct {\n\t// Standard object's metadata of the jobs created from this template.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Specification of the desired behavior of the job.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec JobSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.21\n\n// CronJob represents the configuration of a single cron job.\ntype CronJob struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Specification of the desired behavior of a cron job, including the schedule.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec CronJobSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Current status of a cron job.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus CronJobStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.21\n\n// CronJobList is a collection of cron jobs.\ntype CronJobList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of CronJobs.\n\tItems []CronJob `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// CronJobSpec describes how the job execution will look like and when it will actually run.\ntype CronJobSpec struct {\n\n\t// The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.\n\tSchedule string `json:\"schedule\" protobuf:\"bytes,1,opt,name=schedule\"`\n\n\t// The time zone name for the given schedule, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones.\n\t// If not specified, this will default to the time zone of the kube-controller-manager process.\n\t// The set of valid time zone names and the time zone offset is loaded from the system-wide time zone\n\t// database by the API server during CronJob validation and the controller manager during execution.\n\t// If no system-wide time zone database can be found a bundled version of the database is used instead.\n\t// If the time zone name becomes invalid during the lifetime of a CronJob or due to a change in host\n\t// configuration, the controller will stop creating new new Jobs and will create a system event with the\n\t// reason UnknownTimeZone.\n\t// More information can be found in https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/#time-zones\n\t// +optional\n\tTimeZone *string `json:\"timeZone,omitempty\" protobuf:\"bytes,8,opt,name=timeZone\"`\n\n\t// Optional deadline in seconds for starting the job if it misses scheduled\n\t// time for any reason.  Missed jobs executions will be counted as failed ones.\n\t// +optional\n\tStartingDeadlineSeconds *int64 `json:\"startingDeadlineSeconds,omitempty\" protobuf:\"varint,2,opt,name=startingDeadlineSeconds\"`\n\n\t// Specifies how to treat concurrent executions of a Job.\n\t// Valid values are:\n\t//\n\t// - \"Allow\" (default): allows CronJobs to run concurrently;\n\t// - \"Forbid\": forbids concurrent runs, skipping next run if previous run hasn't finished yet;\n\t// - \"Replace\": cancels currently running job and replaces it with a new one\n\t// +optional\n\tConcurrencyPolicy ConcurrencyPolicy `json:\"concurrencyPolicy,omitempty\" protobuf:\"bytes,3,opt,name=concurrencyPolicy,casttype=ConcurrencyPolicy\"`\n\n\t// This flag tells the controller to suspend subsequent executions, it does\n\t// not apply to already started executions.  Defaults to false.\n\t// +optional\n\tSuspend *bool `json:\"suspend,omitempty\" protobuf:\"varint,4,opt,name=suspend\"`\n\n\t// Specifies the job that will be created when executing a CronJob.\n\tJobTemplate JobTemplateSpec `json:\"jobTemplate\" protobuf:\"bytes,5,opt,name=jobTemplate\"`\n\n\t// The number of successful finished jobs to retain. Value must be non-negative integer.\n\t// Defaults to 3.\n\t// +optional\n\tSuccessfulJobsHistoryLimit *int32 `json:\"successfulJobsHistoryLimit,omitempty\" protobuf:\"varint,6,opt,name=successfulJobsHistoryLimit\"`\n\n\t// The number of failed finished jobs to retain. Value must be non-negative integer.\n\t// Defaults to 1.\n\t// +optional\n\tFailedJobsHistoryLimit *int32 `json:\"failedJobsHistoryLimit,omitempty\" protobuf:\"varint,7,opt,name=failedJobsHistoryLimit\"`\n}\n\n// ConcurrencyPolicy describes how the job will be handled.\n// Only one of the following concurrent policies may be specified.\n// If none of the following policies is specified, the default one\n// is AllowConcurrent.\n// +enum\ntype ConcurrencyPolicy string\n\nconst (\n\t// AllowConcurrent allows CronJobs to run concurrently.\n\tAllowConcurrent ConcurrencyPolicy = \"Allow\"\n\n\t// ForbidConcurrent forbids concurrent runs, skipping next run if previous\n\t// hasn't finished yet.\n\tForbidConcurrent ConcurrencyPolicy = \"Forbid\"\n\n\t// ReplaceConcurrent cancels currently running job and replaces it with a new one.\n\tReplaceConcurrent ConcurrencyPolicy = \"Replace\"\n)\n\n// CronJobStatus represents the current state of a cron job.\ntype CronJobStatus struct {\n\t// A list of pointers to currently running jobs.\n\t// +optional\n\t// +listType=atomic\n\tActive []corev1.ObjectReference `json:\"active,omitempty\" protobuf:\"bytes,1,rep,name=active\"`\n\n\t// Information when was the last time the job was successfully scheduled.\n\t// +optional\n\tLastScheduleTime *metav1.Time `json:\"lastScheduleTime,omitempty\" protobuf:\"bytes,4,opt,name=lastScheduleTime\"`\n\n\t// Information when was the last time the job successfully completed.\n\t// +optional\n\tLastSuccessfulTime *metav1.Time `json:\"lastSuccessfulTime,omitempty\" protobuf:\"bytes,5,opt,name=lastSuccessfulTime\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/batch/v1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_CronJob = map[string]string{\n\t\"\":         \"CronJob represents the configuration of a single cron job.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Specification of the desired behavior of a cron job, including the schedule. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"Current status of a cron job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (CronJob) SwaggerDoc() map[string]string {\n\treturn map_CronJob\n}\n\nvar map_CronJobList = map[string]string{\n\t\"\":         \"CronJobList is a collection of cron jobs.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of CronJobs.\",\n}\n\nfunc (CronJobList) SwaggerDoc() map[string]string {\n\treturn map_CronJobList\n}\n\nvar map_CronJobSpec = map[string]string{\n\t\"\":                           \"CronJobSpec describes how the job execution will look like and when it will actually run.\",\n\t\"schedule\":                   \"The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.\",\n\t\"timeZone\":                   \"The time zone name for the given schedule, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones. If not specified, this will default to the time zone of the kube-controller-manager process. The set of valid time zone names and the time zone offset is loaded from the system-wide time zone database by the API server during CronJob validation and the controller manager during execution. If no system-wide time zone database can be found a bundled version of the database is used instead. If the time zone name becomes invalid during the lifetime of a CronJob or due to a change in host configuration, the controller will stop creating new new Jobs and will create a system event with the reason UnknownTimeZone. More information can be found in https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/#time-zones\",\n\t\"startingDeadlineSeconds\":    \"Optional deadline in seconds for starting the job if it misses scheduled time for any reason.  Missed jobs executions will be counted as failed ones.\",\n\t\"concurrencyPolicy\":          \"Specifies how to treat concurrent executions of a Job. Valid values are:\\n\\n- \\\"Allow\\\" (default): allows CronJobs to run concurrently; - \\\"Forbid\\\": forbids concurrent runs, skipping next run if previous run hasn't finished yet; - \\\"Replace\\\": cancels currently running job and replaces it with a new one\",\n\t\"suspend\":                    \"This flag tells the controller to suspend subsequent executions, it does not apply to already started executions.  Defaults to false.\",\n\t\"jobTemplate\":                \"Specifies the job that will be created when executing a CronJob.\",\n\t\"successfulJobsHistoryLimit\": \"The number of successful finished jobs to retain. Value must be non-negative integer. Defaults to 3.\",\n\t\"failedJobsHistoryLimit\":     \"The number of failed finished jobs to retain. Value must be non-negative integer. Defaults to 1.\",\n}\n\nfunc (CronJobSpec) SwaggerDoc() map[string]string {\n\treturn map_CronJobSpec\n}\n\nvar map_CronJobStatus = map[string]string{\n\t\"\":                   \"CronJobStatus represents the current state of a cron job.\",\n\t\"active\":             \"A list of pointers to currently running jobs.\",\n\t\"lastScheduleTime\":   \"Information when was the last time the job was successfully scheduled.\",\n\t\"lastSuccessfulTime\": \"Information when was the last time the job successfully completed.\",\n}\n\nfunc (CronJobStatus) SwaggerDoc() map[string]string {\n\treturn map_CronJobStatus\n}\n\nvar map_Job = map[string]string{\n\t\"\":         \"Job represents the configuration of a single job.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Specification of the desired behavior of a job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"Current status of a job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (Job) SwaggerDoc() map[string]string {\n\treturn map_Job\n}\n\nvar map_JobCondition = map[string]string{\n\t\"\":                   \"JobCondition describes current state of a job.\",\n\t\"type\":               \"Type of job condition, Complete or Failed.\",\n\t\"status\":             \"Status of the condition, one of True, False, Unknown.\",\n\t\"lastProbeTime\":      \"Last time the condition was checked.\",\n\t\"lastTransitionTime\": \"Last time the condition transit from one status to another.\",\n\t\"reason\":             \"(brief) reason for the condition's last transition.\",\n\t\"message\":            \"Human readable message indicating details about last transition.\",\n}\n\nfunc (JobCondition) SwaggerDoc() map[string]string {\n\treturn map_JobCondition\n}\n\nvar map_JobList = map[string]string{\n\t\"\":         \"JobList is a collection of jobs.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of Jobs.\",\n}\n\nfunc (JobList) SwaggerDoc() map[string]string {\n\treturn map_JobList\n}\n\nvar map_JobSpec = map[string]string{\n\t\"\":                        \"JobSpec describes how the job execution will look like.\",\n\t\"parallelism\":             \"Specifies the maximum desired number of pods the job should run at any given time. The actual number of pods running in steady state will be less than this number when ((.spec.completions - .status.successful) < .spec.parallelism), i.e. when the work left to do is less than max parallelism. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/\",\n\t\"completions\":             \"Specifies the desired number of successfully finished pods the job should be run with.  Setting to null means that the success of any pod signals the success of all pods, and allows parallelism to have any positive value.  Setting to 1 means that parallelism is limited to 1 and the success of that pod signals the success of the job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/\",\n\t\"activeDeadlineSeconds\":   \"Specifies the duration in seconds relative to the startTime that the job may be continuously active before the system tries to terminate it; value must be positive integer. If a Job is suspended (at creation or through an update), this timer will effectively be stopped and reset when the Job is resumed again.\",\n\t\"podFailurePolicy\":        \"Specifies the policy of handling failed pods. In particular, it allows to specify the set of actions and conditions which need to be satisfied to take the associated action. If empty, the default behaviour applies - the counter of failed pods, represented by the jobs's .status.failed field, is incremented and it is checked against the backoffLimit. This field cannot be used in combination with restartPolicy=OnFailure.\",\n\t\"successPolicy\":           \"successPolicy specifies the policy when the Job can be declared as succeeded. If empty, the default behavior applies - the Job is declared as succeeded only when the number of succeeded pods equals to the completions. When the field is specified, it must be immutable and works only for the Indexed Jobs. Once the Job meets the SuccessPolicy, the lingering pods are terminated.\\n\\nThis field is beta-level. To use this field, you must enable the `JobSuccessPolicy` feature gate (enabled by default).\",\n\t\"backoffLimit\":            \"Specifies the number of retries before marking this job failed. Defaults to 6\",\n\t\"backoffLimitPerIndex\":    \"Specifies the limit for the number of retries within an index before marking this index as failed. When enabled the number of failures per index is kept in the pod's batch.kubernetes.io/job-index-failure-count annotation. It can only be set when Job's completionMode=Indexed, and the Pod's restart policy is Never. The field is immutable. This field is beta-level. It can be used when the `JobBackoffLimitPerIndex` feature gate is enabled (enabled by default).\",\n\t\"maxFailedIndexes\":        \"Specifies the maximal number of failed indexes before marking the Job as failed, when backoffLimitPerIndex is set. Once the number of failed indexes exceeds this number the entire Job is marked as Failed and its execution is terminated. When left as null the job continues execution of all of its indexes and is marked with the `Complete` Job condition. It can only be specified when backoffLimitPerIndex is set. It can be null or up to completions. It is required and must be less than or equal to 10^4 when is completions greater than 10^5. This field is beta-level. It can be used when the `JobBackoffLimitPerIndex` feature gate is enabled (enabled by default).\",\n\t\"selector\":                \"A label query over pods that should match the pod count. Normally, the system sets this field for you. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\n\t\"manualSelector\":          \"manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template.  When true, the user is responsible for picking unique labels and specifying the selector.  Failure to pick a unique label may cause this and other jobs to not function correctly.  However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector\",\n\t\"template\":                \"Describes the pod that will be created when executing a job. The only allowed template.spec.restartPolicy values are \\\"Never\\\" or \\\"OnFailure\\\". More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/\",\n\t\"ttlSecondsAfterFinished\": \"ttlSecondsAfterFinished limits the lifetime of a Job that has finished execution (either Complete or Failed). If this field is set, ttlSecondsAfterFinished after the Job finishes, it is eligible to be automatically deleted. When the Job is being deleted, its lifecycle guarantees (e.g. finalizers) will be honored. If this field is unset, the Job won't be automatically deleted. If this field is set to zero, the Job becomes eligible to be deleted immediately after it finishes.\",\n\t\"completionMode\":          \"completionMode specifies how Pod completions are tracked. It can be `NonIndexed` (default) or `Indexed`.\\n\\n`NonIndexed` means that the Job is considered complete when there have been .spec.completions successfully completed Pods. Each Pod completion is homologous to each other.\\n\\n`Indexed` means that the Pods of a Job get an associated completion index from 0 to (.spec.completions - 1), available in the annotation batch.kubernetes.io/job-completion-index. The Job is considered complete when there is one successfully completed Pod for each index. When value is `Indexed`, .spec.completions must be specified and `.spec.parallelism` must be less than or equal to 10^5. In addition, The Pod name takes the form `$(job-name)-$(index)-$(random-string)`, the Pod hostname takes the form `$(job-name)-$(index)`.\\n\\nMore completion modes can be added in the future. If the Job controller observes a mode that it doesn't recognize, which is possible during upgrades due to version skew, the controller skips updates for the Job.\",\n\t\"suspend\":                 \"suspend specifies whether the Job controller should create Pods or not. If a Job is created with suspend set to true, no Pods are created by the Job controller. If a Job is suspended after creation (i.e. the flag goes from false to true), the Job controller will delete all active Pods associated with this Job. Users must design their workload to gracefully handle this. Suspending a Job will reset the StartTime field of the Job, effectively resetting the ActiveDeadlineSeconds timer too. Defaults to false.\",\n\t\"podReplacementPolicy\":    \"podReplacementPolicy specifies when to create replacement Pods. Possible values are: - TerminatingOrFailed means that we recreate pods\\n  when they are terminating (has a metadata.deletionTimestamp) or failed.\\n- Failed means to wait until a previously created Pod is fully terminated (has phase\\n  Failed or Succeeded) before creating a replacement Pod.\\n\\nWhen using podFailurePolicy, Failed is the the only allowed value. TerminatingOrFailed and Failed are allowed values when podFailurePolicy is not in use. This is an beta field. To use this, enable the JobPodReplacementPolicy feature toggle. This is on by default.\",\n\t\"managedBy\":               \"ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first \\\"/\\\" must be a valid subdomain as defined by RFC 1123. All characters trailing the first \\\"/\\\" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable.\\n\\nThis field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default).\",\n}\n\nfunc (JobSpec) SwaggerDoc() map[string]string {\n\treturn map_JobSpec\n}\n\nvar map_JobStatus = map[string]string{\n\t\"\":                        \"JobStatus represents the current state of a Job.\",\n\t\"conditions\":              \"The latest available observations of an object's current state. When a Job fails, one of the conditions will have type \\\"Failed\\\" and status true. When a Job is suspended, one of the conditions will have type \\\"Suspended\\\" and status true; when the Job is resumed, the status of this condition will become false. When a Job is completed, one of the conditions will have type \\\"Complete\\\" and status true.\\n\\nA job is considered finished when it is in a terminal condition, either \\\"Complete\\\" or \\\"Failed\\\". A Job cannot have both the \\\"Complete\\\" and \\\"Failed\\\" conditions. Additionally, it cannot be in the \\\"Complete\\\" and \\\"FailureTarget\\\" conditions. The \\\"Complete\\\", \\\"Failed\\\" and \\\"FailureTarget\\\" conditions cannot be disabled.\\n\\nMore info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/\",\n\t\"startTime\":               \"Represents time when the job controller started processing a job. When a Job is created in the suspended state, this field is not set until the first time it is resumed. This field is reset every time a Job is resumed from suspension. It is represented in RFC3339 form and is in UTC.\\n\\nOnce set, the field can only be removed when the job is suspended. The field cannot be modified while the job is unsuspended or finished.\",\n\t\"completionTime\":          \"Represents time when the job was completed. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC. The completion time is set when the job finishes successfully, and only then. The value cannot be updated or removed. The value indicates the same or later point in time as the startTime field.\",\n\t\"active\":                  \"The number of pending and running pods which are not terminating (without a deletionTimestamp). The value is zero for finished jobs.\",\n\t\"succeeded\":               \"The number of pods which reached phase Succeeded. The value increases monotonically for a given spec. However, it may decrease in reaction to scale down of elastic indexed jobs.\",\n\t\"failed\":                  \"The number of pods which reached phase Failed. The value increases monotonically.\",\n\t\"terminating\":             \"The number of pods which are terminating (in phase Pending or Running and have a deletionTimestamp).\\n\\nThis field is beta-level. The job controller populates the field when the feature gate JobPodReplacementPolicy is enabled (enabled by default).\",\n\t\"completedIndexes\":        \"completedIndexes holds the completed indexes when .spec.completionMode = \\\"Indexed\\\" in a text format. The indexes are represented as decimal integers separated by commas. The numbers are listed in increasing order. Three or more consecutive numbers are compressed and represented by the first and last element of the series, separated by a hyphen. For example, if the completed indexes are 1, 3, 4, 5 and 7, they are represented as \\\"1,3-5,7\\\".\",\n\t\"failedIndexes\":           \"FailedIndexes holds the failed indexes when spec.backoffLimitPerIndex is set. The indexes are represented in the text format analogous as for the `completedIndexes` field, ie. they are kept as decimal integers separated by commas. The numbers are listed in increasing order. Three or more consecutive numbers are compressed and represented by the first and last element of the series, separated by a hyphen. For example, if the failed indexes are 1, 3, 4, 5 and 7, they are represented as \\\"1,3-5,7\\\". The set of failed indexes cannot overlap with the set of completed indexes.\\n\\nThis field is beta-level. It can be used when the `JobBackoffLimitPerIndex` feature gate is enabled (enabled by default).\",\n\t\"uncountedTerminatedPods\": \"uncountedTerminatedPods holds the UIDs of Pods that have terminated but the job controller hasn't yet accounted for in the status counters.\\n\\nThe job controller creates pods with a finalizer. When a pod terminates (succeeded or failed), the controller does three steps to account for it in the job status:\\n\\n1. Add the pod UID to the arrays in this field. 2. Remove the pod finalizer. 3. Remove the pod UID from the arrays while increasing the corresponding\\n    counter.\\n\\nOld jobs might not be tracked using this field, in which case the field remains null. The structure is empty for finished jobs.\",\n\t\"ready\":                   \"The number of active pods which have a Ready condition and are not terminating (without a deletionTimestamp).\",\n}\n\nfunc (JobStatus) SwaggerDoc() map[string]string {\n\treturn map_JobStatus\n}\n\nvar map_JobTemplateSpec = map[string]string{\n\t\"\":         \"JobTemplateSpec describes the data a Job should have when created from a template\",\n\t\"metadata\": \"Standard object's metadata of the jobs created from this template. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Specification of the desired behavior of the job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (JobTemplateSpec) SwaggerDoc() map[string]string {\n\treturn map_JobTemplateSpec\n}\n\nvar map_PodFailurePolicy = map[string]string{\n\t\"\":      \"PodFailurePolicy describes how failed pods influence the backoffLimit.\",\n\t\"rules\": \"A list of pod failure policy rules. The rules are evaluated in order. Once a rule matches a Pod failure, the remaining of the rules are ignored. When no rule matches the Pod failure, the default handling applies - the counter of pod failures is incremented and it is checked against the backoffLimit. At most 20 elements are allowed.\",\n}\n\nfunc (PodFailurePolicy) SwaggerDoc() map[string]string {\n\treturn map_PodFailurePolicy\n}\n\nvar map_PodFailurePolicyOnExitCodesRequirement = map[string]string{\n\t\"\":              \"PodFailurePolicyOnExitCodesRequirement describes the requirement for handling a failed pod based on its container exit codes. In particular, it lookups the .state.terminated.exitCode for each app container and init container status, represented by the .status.containerStatuses and .status.initContainerStatuses fields in the Pod status, respectively. Containers completed with success (exit code 0) are excluded from the requirement check.\",\n\t\"containerName\": \"Restricts the check for exit codes to the container with the specified name. When null, the rule applies to all containers. When specified, it should match one the container or initContainer names in the pod template.\",\n\t\"operator\":      \"Represents the relationship between the container exit code(s) and the specified values. Containers completed with success (exit code 0) are excluded from the requirement check. Possible values are:\\n\\n- In: the requirement is satisfied if at least one container exit code\\n  (might be multiple if there are multiple containers not restricted\\n  by the 'containerName' field) is in the set of specified values.\\n- NotIn: the requirement is satisfied if at least one container exit code\\n  (might be multiple if there are multiple containers not restricted\\n  by the 'containerName' field) is not in the set of specified values.\\nAdditional values are considered to be added in the future. Clients should react to an unknown operator by assuming the requirement is not satisfied.\",\n\t\"values\":        \"Specifies the set of values. Each returned container exit code (might be multiple in case of multiple containers) is checked against this set of values with respect to the operator. The list of values must be ordered and must not contain duplicates. Value '0' cannot be used for the In operator. At least one element is required. At most 255 elements are allowed.\",\n}\n\nfunc (PodFailurePolicyOnExitCodesRequirement) SwaggerDoc() map[string]string {\n\treturn map_PodFailurePolicyOnExitCodesRequirement\n}\n\nvar map_PodFailurePolicyOnPodConditionsPattern = map[string]string{\n\t\"\":       \"PodFailurePolicyOnPodConditionsPattern describes a pattern for matching an actual pod condition type.\",\n\t\"type\":   \"Specifies the required Pod condition type. To match a pod condition it is required that specified type equals the pod condition type.\",\n\t\"status\": \"Specifies the required Pod condition status. To match a pod condition it is required that the specified status equals the pod condition status. Defaults to True.\",\n}\n\nfunc (PodFailurePolicyOnPodConditionsPattern) SwaggerDoc() map[string]string {\n\treturn map_PodFailurePolicyOnPodConditionsPattern\n}\n\nvar map_PodFailurePolicyRule = map[string]string{\n\t\"\":                \"PodFailurePolicyRule describes how a pod failure is handled when the requirements are met. One of onExitCodes and onPodConditions, but not both, can be used in each rule.\",\n\t\"action\":          \"Specifies the action taken on a pod failure when the requirements are satisfied. Possible values are:\\n\\n- FailJob: indicates that the pod's job is marked as Failed and all\\n  running pods are terminated.\\n- FailIndex: indicates that the pod's index is marked as Failed and will\\n  not be restarted.\\n  This value is beta-level. It can be used when the\\n  `JobBackoffLimitPerIndex` feature gate is enabled (enabled by default).\\n- Ignore: indicates that the counter towards the .backoffLimit is not\\n  incremented and a replacement pod is created.\\n- Count: indicates that the pod is handled in the default way - the\\n  counter towards the .backoffLimit is incremented.\\nAdditional values are considered to be added in the future. Clients should react to an unknown action by skipping the rule.\",\n\t\"onExitCodes\":     \"Represents the requirement on the container exit codes.\",\n\t\"onPodConditions\": \"Represents the requirement on the pod conditions. The requirement is represented as a list of pod condition patterns. The requirement is satisfied if at least one pattern matches an actual pod condition. At most 20 elements are allowed.\",\n}\n\nfunc (PodFailurePolicyRule) SwaggerDoc() map[string]string {\n\treturn map_PodFailurePolicyRule\n}\n\nvar map_SuccessPolicy = map[string]string{\n\t\"\":      \"SuccessPolicy describes when a Job can be declared as succeeded based on the success of some indexes.\",\n\t\"rules\": \"rules represents the list of alternative rules for the declaring the Jobs as successful before `.status.succeeded >= .spec.completions`. Once any of the rules are met, the \\\"SucceededCriteriaMet\\\" condition is added, and the lingering pods are removed. The terminal state for such a Job has the \\\"Complete\\\" condition. Additionally, these rules are evaluated in order; Once the Job meets one of the rules, other rules are ignored. At most 20 elements are allowed.\",\n}\n\nfunc (SuccessPolicy) SwaggerDoc() map[string]string {\n\treturn map_SuccessPolicy\n}\n\nvar map_SuccessPolicyRule = map[string]string{\n\t\"\":                 \"SuccessPolicyRule describes rule for declaring a Job as succeeded. Each rule must have at least one of the \\\"succeededIndexes\\\" or \\\"succeededCount\\\" specified.\",\n\t\"succeededIndexes\": \"succeededIndexes specifies the set of indexes which need to be contained in the actual set of the succeeded indexes for the Job. The list of indexes must be within 0 to \\\".spec.completions-1\\\" and must not contain duplicates. At least one element is required. The indexes are represented as intervals separated by commas. The intervals can be a decimal integer or a pair of decimal integers separated by a hyphen. The number are listed in represented by the first and last element of the series, separated by a hyphen. For example, if the completed indexes are 1, 3, 4, 5 and 7, they are represented as \\\"1,3-5,7\\\". When this field is null, this field doesn't default to any value and is never evaluated at any time.\",\n\t\"succeededCount\":   \"succeededCount specifies the minimal required size of the actual set of the succeeded indexes for the Job. When succeededCount is used along with succeededIndexes, the check is constrained only to the set of indexes specified by succeededIndexes. For example, given that succeededIndexes is \\\"1-4\\\", succeededCount is \\\"3\\\", and completed indexes are \\\"1\\\", \\\"3\\\", and \\\"5\\\", the Job isn't declared as succeeded because only \\\"1\\\" and \\\"3\\\" indexes are considered in that rules. When this field is null, this doesn't default to any value and is never evaluated at any time. When specified it needs to be a positive integer.\",\n}\n\nfunc (SuccessPolicyRule) SwaggerDoc() map[string]string {\n\treturn map_SuccessPolicyRule\n}\n\nvar map_UncountedTerminatedPods = map[string]string{\n\t\"\":          \"UncountedTerminatedPods holds UIDs of Pods that have terminated but haven't been accounted in Job status counters.\",\n\t\"succeeded\": \"succeeded holds UIDs of succeeded Pods.\",\n\t\"failed\":    \"failed holds UIDs of failed Pods.\",\n}\n\nfunc (UncountedTerminatedPods) SwaggerDoc() map[string]string {\n\treturn map_UncountedTerminatedPods\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/batch/v1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CronJob) DeepCopyInto(out *CronJob) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CronJob.\nfunc (in *CronJob) DeepCopy() *CronJob {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CronJob)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CronJob) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CronJobList) DeepCopyInto(out *CronJobList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]CronJob, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CronJobList.\nfunc (in *CronJobList) DeepCopy() *CronJobList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CronJobList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CronJobList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CronJobSpec) DeepCopyInto(out *CronJobSpec) {\n\t*out = *in\n\tif in.TimeZone != nil {\n\t\tin, out := &in.TimeZone, &out.TimeZone\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.StartingDeadlineSeconds != nil {\n\t\tin, out := &in.StartingDeadlineSeconds, &out.StartingDeadlineSeconds\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.Suspend != nil {\n\t\tin, out := &in.Suspend, &out.Suspend\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tin.JobTemplate.DeepCopyInto(&out.JobTemplate)\n\tif in.SuccessfulJobsHistoryLimit != nil {\n\t\tin, out := &in.SuccessfulJobsHistoryLimit, &out.SuccessfulJobsHistoryLimit\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.FailedJobsHistoryLimit != nil {\n\t\tin, out := &in.FailedJobsHistoryLimit, &out.FailedJobsHistoryLimit\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CronJobSpec.\nfunc (in *CronJobSpec) DeepCopy() *CronJobSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CronJobSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CronJobStatus) DeepCopyInto(out *CronJobStatus) {\n\t*out = *in\n\tif in.Active != nil {\n\t\tin, out := &in.Active, &out.Active\n\t\t*out = make([]corev1.ObjectReference, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.LastScheduleTime != nil {\n\t\tin, out := &in.LastScheduleTime, &out.LastScheduleTime\n\t\t*out = (*in).DeepCopy()\n\t}\n\tif in.LastSuccessfulTime != nil {\n\t\tin, out := &in.LastSuccessfulTime, &out.LastSuccessfulTime\n\t\t*out = (*in).DeepCopy()\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CronJobStatus.\nfunc (in *CronJobStatus) DeepCopy() *CronJobStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CronJobStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Job) DeepCopyInto(out *Job) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Job.\nfunc (in *Job) DeepCopy() *Job {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Job)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Job) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *JobCondition) DeepCopyInto(out *JobCondition) {\n\t*out = *in\n\tin.LastProbeTime.DeepCopyInto(&out.LastProbeTime)\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobCondition.\nfunc (in *JobCondition) DeepCopy() *JobCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(JobCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *JobList) DeepCopyInto(out *JobList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Job, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobList.\nfunc (in *JobList) DeepCopy() *JobList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(JobList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *JobList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *JobSpec) DeepCopyInto(out *JobSpec) {\n\t*out = *in\n\tif in.Parallelism != nil {\n\t\tin, out := &in.Parallelism, &out.Parallelism\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Completions != nil {\n\t\tin, out := &in.Completions, &out.Completions\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.ActiveDeadlineSeconds != nil {\n\t\tin, out := &in.ActiveDeadlineSeconds, &out.ActiveDeadlineSeconds\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.PodFailurePolicy != nil {\n\t\tin, out := &in.PodFailurePolicy, &out.PodFailurePolicy\n\t\t*out = new(PodFailurePolicy)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.SuccessPolicy != nil {\n\t\tin, out := &in.SuccessPolicy, &out.SuccessPolicy\n\t\t*out = new(SuccessPolicy)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.BackoffLimit != nil {\n\t\tin, out := &in.BackoffLimit, &out.BackoffLimit\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.BackoffLimitPerIndex != nil {\n\t\tin, out := &in.BackoffLimitPerIndex, &out.BackoffLimitPerIndex\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.MaxFailedIndexes != nil {\n\t\tin, out := &in.MaxFailedIndexes, &out.MaxFailedIndexes\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ManualSelector != nil {\n\t\tin, out := &in.ManualSelector, &out.ManualSelector\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tin.Template.DeepCopyInto(&out.Template)\n\tif in.TTLSecondsAfterFinished != nil {\n\t\tin, out := &in.TTLSecondsAfterFinished, &out.TTLSecondsAfterFinished\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.CompletionMode != nil {\n\t\tin, out := &in.CompletionMode, &out.CompletionMode\n\t\t*out = new(CompletionMode)\n\t\t**out = **in\n\t}\n\tif in.Suspend != nil {\n\t\tin, out := &in.Suspend, &out.Suspend\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.PodReplacementPolicy != nil {\n\t\tin, out := &in.PodReplacementPolicy, &out.PodReplacementPolicy\n\t\t*out = new(PodReplacementPolicy)\n\t\t**out = **in\n\t}\n\tif in.ManagedBy != nil {\n\t\tin, out := &in.ManagedBy, &out.ManagedBy\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobSpec.\nfunc (in *JobSpec) DeepCopy() *JobSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(JobSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *JobStatus) DeepCopyInto(out *JobStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]JobCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.StartTime != nil {\n\t\tin, out := &in.StartTime, &out.StartTime\n\t\t*out = (*in).DeepCopy()\n\t}\n\tif in.CompletionTime != nil {\n\t\tin, out := &in.CompletionTime, &out.CompletionTime\n\t\t*out = (*in).DeepCopy()\n\t}\n\tif in.Terminating != nil {\n\t\tin, out := &in.Terminating, &out.Terminating\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.FailedIndexes != nil {\n\t\tin, out := &in.FailedIndexes, &out.FailedIndexes\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.UncountedTerminatedPods != nil {\n\t\tin, out := &in.UncountedTerminatedPods, &out.UncountedTerminatedPods\n\t\t*out = new(UncountedTerminatedPods)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Ready != nil {\n\t\tin, out := &in.Ready, &out.Ready\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobStatus.\nfunc (in *JobStatus) DeepCopy() *JobStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(JobStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *JobTemplateSpec) DeepCopyInto(out *JobTemplateSpec) {\n\t*out = *in\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobTemplateSpec.\nfunc (in *JobTemplateSpec) DeepCopy() *JobTemplateSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(JobTemplateSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodFailurePolicy) DeepCopyInto(out *PodFailurePolicy) {\n\t*out = *in\n\tif in.Rules != nil {\n\t\tin, out := &in.Rules, &out.Rules\n\t\t*out = make([]PodFailurePolicyRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodFailurePolicy.\nfunc (in *PodFailurePolicy) DeepCopy() *PodFailurePolicy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodFailurePolicy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodFailurePolicyOnExitCodesRequirement) DeepCopyInto(out *PodFailurePolicyOnExitCodesRequirement) {\n\t*out = *in\n\tif in.ContainerName != nil {\n\t\tin, out := &in.ContainerName, &out.ContainerName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.Values != nil {\n\t\tin, out := &in.Values, &out.Values\n\t\t*out = make([]int32, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodFailurePolicyOnExitCodesRequirement.\nfunc (in *PodFailurePolicyOnExitCodesRequirement) DeepCopy() *PodFailurePolicyOnExitCodesRequirement {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodFailurePolicyOnExitCodesRequirement)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodFailurePolicyOnPodConditionsPattern) DeepCopyInto(out *PodFailurePolicyOnPodConditionsPattern) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodFailurePolicyOnPodConditionsPattern.\nfunc (in *PodFailurePolicyOnPodConditionsPattern) DeepCopy() *PodFailurePolicyOnPodConditionsPattern {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodFailurePolicyOnPodConditionsPattern)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodFailurePolicyRule) DeepCopyInto(out *PodFailurePolicyRule) {\n\t*out = *in\n\tif in.OnExitCodes != nil {\n\t\tin, out := &in.OnExitCodes, &out.OnExitCodes\n\t\t*out = new(PodFailurePolicyOnExitCodesRequirement)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.OnPodConditions != nil {\n\t\tin, out := &in.OnPodConditions, &out.OnPodConditions\n\t\t*out = make([]PodFailurePolicyOnPodConditionsPattern, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodFailurePolicyRule.\nfunc (in *PodFailurePolicyRule) DeepCopy() *PodFailurePolicyRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodFailurePolicyRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SuccessPolicy) DeepCopyInto(out *SuccessPolicy) {\n\t*out = *in\n\tif in.Rules != nil {\n\t\tin, out := &in.Rules, &out.Rules\n\t\t*out = make([]SuccessPolicyRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SuccessPolicy.\nfunc (in *SuccessPolicy) DeepCopy() *SuccessPolicy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SuccessPolicy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SuccessPolicyRule) DeepCopyInto(out *SuccessPolicyRule) {\n\t*out = *in\n\tif in.SucceededIndexes != nil {\n\t\tin, out := &in.SucceededIndexes, &out.SucceededIndexes\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.SucceededCount != nil {\n\t\tin, out := &in.SucceededCount, &out.SucceededCount\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SuccessPolicyRule.\nfunc (in *SuccessPolicyRule) DeepCopy() *SuccessPolicyRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SuccessPolicyRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *UncountedTerminatedPods) DeepCopyInto(out *UncountedTerminatedPods) {\n\t*out = *in\n\tif in.Succeeded != nil {\n\t\tin, out := &in.Succeeded, &out.Succeeded\n\t\t*out = make([]types.UID, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Failed != nil {\n\t\tin, out := &in.Failed, &out.Failed\n\t\t*out = make([]types.UID, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UncountedTerminatedPods.\nfunc (in *UncountedTerminatedPods) DeepCopy() *UncountedTerminatedPods {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(UncountedTerminatedPods)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/batch/v1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *CronJob) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 21\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *CronJobList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 21\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *Job) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 2\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *JobList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 2\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/batch/v1beta1/doc.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\npackage v1beta1 // import \"k8s.io/api/batch/v1beta1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/batch/v1beta1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/batch/v1beta1/generated.proto\n\npackage v1beta1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tv11 \"k8s.io/api/core/v1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *CronJob) Reset()      { *m = CronJob{} }\nfunc (*CronJob) ProtoMessage() {}\nfunc (*CronJob) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ed95843ae7b4086b, []int{0}\n}\nfunc (m *CronJob) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CronJob) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CronJob) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CronJob.Merge(m, src)\n}\nfunc (m *CronJob) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CronJob) XXX_DiscardUnknown() {\n\txxx_messageInfo_CronJob.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CronJob proto.InternalMessageInfo\n\nfunc (m *CronJobList) Reset()      { *m = CronJobList{} }\nfunc (*CronJobList) ProtoMessage() {}\nfunc (*CronJobList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ed95843ae7b4086b, []int{1}\n}\nfunc (m *CronJobList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CronJobList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CronJobList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CronJobList.Merge(m, src)\n}\nfunc (m *CronJobList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CronJobList) XXX_DiscardUnknown() {\n\txxx_messageInfo_CronJobList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CronJobList proto.InternalMessageInfo\n\nfunc (m *CronJobSpec) Reset()      { *m = CronJobSpec{} }\nfunc (*CronJobSpec) ProtoMessage() {}\nfunc (*CronJobSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ed95843ae7b4086b, []int{2}\n}\nfunc (m *CronJobSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CronJobSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CronJobSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CronJobSpec.Merge(m, src)\n}\nfunc (m *CronJobSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CronJobSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_CronJobSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CronJobSpec proto.InternalMessageInfo\n\nfunc (m *CronJobStatus) Reset()      { *m = CronJobStatus{} }\nfunc (*CronJobStatus) ProtoMessage() {}\nfunc (*CronJobStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ed95843ae7b4086b, []int{3}\n}\nfunc (m *CronJobStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CronJobStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CronJobStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CronJobStatus.Merge(m, src)\n}\nfunc (m *CronJobStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CronJobStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_CronJobStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CronJobStatus proto.InternalMessageInfo\n\nfunc (m *JobTemplateSpec) Reset()      { *m = JobTemplateSpec{} }\nfunc (*JobTemplateSpec) ProtoMessage() {}\nfunc (*JobTemplateSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ed95843ae7b4086b, []int{4}\n}\nfunc (m *JobTemplateSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *JobTemplateSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *JobTemplateSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_JobTemplateSpec.Merge(m, src)\n}\nfunc (m *JobTemplateSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *JobTemplateSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_JobTemplateSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_JobTemplateSpec proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*CronJob)(nil), \"k8s.io.api.batch.v1beta1.CronJob\")\n\tproto.RegisterType((*CronJobList)(nil), \"k8s.io.api.batch.v1beta1.CronJobList\")\n\tproto.RegisterType((*CronJobSpec)(nil), \"k8s.io.api.batch.v1beta1.CronJobSpec\")\n\tproto.RegisterType((*CronJobStatus)(nil), \"k8s.io.api.batch.v1beta1.CronJobStatus\")\n\tproto.RegisterType((*JobTemplateSpec)(nil), \"k8s.io.api.batch.v1beta1.JobTemplateSpec\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/batch/v1beta1/generated.proto\", fileDescriptor_ed95843ae7b4086b)\n}\n\nvar fileDescriptor_ed95843ae7b4086b = []byte{\n\t// 771 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x95, 0xcf, 0x8f, 0xdb, 0x44,\n\t0x14, 0xc7, 0xe3, 0x6c, 0x7e, 0x75, 0xd2, 0xc2, 0x76, 0x40, 0x5b, 0x2b, 0x20, 0x3b, 0xa4, 0xaa,\n\t0x08, 0x08, 0xc6, 0xec, 0x0a, 0x21, 0x4e, 0x95, 0x70, 0x51, 0x81, 0x25, 0xa8, 0x68, 0x52, 0x2e,\n\t0x55, 0x85, 0x3a, 0x9e, 0x4c, 0x92, 0xe9, 0xda, 0x1e, 0xcb, 0x33, 0x5e, 0x29, 0x37, 0x2e, 0xdc,\n\t0xf9, 0x5f, 0xb8, 0x73, 0xde, 0x63, 0x6f, 0xf4, 0x64, 0xb1, 0xe6, 0xbf, 0xe0, 0x84, 0x66, 0xe2,\n\t0x4d, 0xd2, 0xc4, 0xe9, 0x96, 0x0b, 0xb7, 0xcc, 0xf3, 0xf7, 0xfb, 0x99, 0xa7, 0xf7, 0xde, 0xbc,\n\t0x80, 0xe1, 0xd9, 0x97, 0x12, 0x71, 0xe1, 0x91, 0x84, 0x7b, 0x01, 0x51, 0x74, 0xee, 0x9d, 0x1f,\n\t0x07, 0x4c, 0x91, 0x63, 0x6f, 0xc6, 0x62, 0x96, 0x12, 0xc5, 0x26, 0x28, 0x49, 0x85, 0x12, 0xd0,\n\t0x5e, 0x2a, 0x11, 0x49, 0x38, 0x32, 0x4a, 0x54, 0x2a, 0x7b, 0x9f, 0xce, 0xb8, 0x9a, 0x67, 0x01,\n\t0xa2, 0x22, 0xf2, 0x66, 0x62, 0x26, 0x3c, 0x63, 0x08, 0xb2, 0xa9, 0x39, 0x99, 0x83, 0xf9, 0xb5,\n\t0x04, 0xf5, 0xee, 0x56, 0x5c, 0xb9, 0x7d, 0x5b, 0x6f, 0xb0, 0x21, 0xa2, 0x22, 0x65, 0x55, 0x9a,\n\t0xcf, 0xd7, 0x9a, 0x88, 0xd0, 0x39, 0x8f, 0x59, 0xba, 0xf0, 0x92, 0xb3, 0x99, 0x0e, 0x48, 0x2f,\n\t0x62, 0x8a, 0x54, 0xb9, 0xbc, 0x7d, 0xae, 0x34, 0x8b, 0x15, 0x8f, 0xd8, 0x8e, 0xe1, 0x8b, 0xeb,\n\t0x0c, 0x92, 0xce, 0x59, 0x44, 0xb6, 0x7d, 0x83, 0x5f, 0xeb, 0xa0, 0xfd, 0x20, 0x15, 0xf1, 0xa9,\n\t0x08, 0xe0, 0x33, 0xd0, 0xd1, 0xf9, 0x4c, 0x88, 0x22, 0xb6, 0xd5, 0xb7, 0x86, 0xdd, 0x93, 0xcf,\n\t0xd0, 0xba, 0x9e, 0x2b, 0x2c, 0x4a, 0xce, 0x66, 0x3a, 0x20, 0x91, 0x56, 0xa3, 0xf3, 0x63, 0xf4,\n\t0x28, 0x78, 0xce, 0xa8, 0xfa, 0x81, 0x29, 0xe2, 0xc3, 0x8b, 0xdc, 0xad, 0x15, 0xb9, 0x0b, 0xd6,\n\t0x31, 0xbc, 0xa2, 0xc2, 0x6f, 0x40, 0x43, 0x26, 0x8c, 0xda, 0x75, 0x43, 0xbf, 0x87, 0xf6, 0x75,\n\t0x0b, 0x95, 0x29, 0x8d, 0x13, 0x46, 0xfd, 0x9b, 0x25, 0xb2, 0xa1, 0x4f, 0xd8, 0x00, 0xe0, 0x23,\n\t0xd0, 0x92, 0x8a, 0xa8, 0x4c, 0xda, 0x07, 0x06, 0xf5, 0xe1, 0xf5, 0x28, 0x23, 0xf7, 0xdf, 0x2a,\n\t0x61, 0xad, 0xe5, 0x19, 0x97, 0x98, 0xc1, 0xef, 0x16, 0xe8, 0x96, 0xca, 0x11, 0x97, 0x0a, 0x3e,\n\t0xdd, 0xa9, 0x05, 0x7a, 0xb3, 0x5a, 0x68, 0xb7, 0xa9, 0xc4, 0x61, 0x79, 0x53, 0xe7, 0x2a, 0xb2,\n\t0x51, 0x87, 0x87, 0xa0, 0xc9, 0x15, 0x8b, 0xa4, 0x5d, 0xef, 0x1f, 0x0c, 0xbb, 0x27, 0x1f, 0x5c,\n\t0x9b, 0xbd, 0x7f, 0xab, 0xa4, 0x35, 0xbf, 0xd3, 0x3e, 0xbc, 0xb4, 0x0f, 0xfe, 0x6c, 0xac, 0xb2,\n\t0xd6, 0xc5, 0x81, 0x9f, 0x80, 0x8e, 0xee, 0xf3, 0x24, 0x0b, 0x99, 0xc9, 0xfa, 0xc6, 0x3a, 0x8b,\n\t0x71, 0x19, 0xc7, 0x2b, 0x05, 0x1c, 0x82, 0x8e, 0x1e, 0x8d, 0x27, 0x22, 0x66, 0x76, 0xc7, 0xa8,\n\t0x6f, 0x6a, 0xe5, 0xe3, 0x32, 0x86, 0x57, 0x5f, 0xe1, 0x4f, 0xe0, 0x8e, 0x54, 0x24, 0x55, 0x3c,\n\t0x9e, 0x7d, 0xcd, 0xc8, 0x24, 0xe4, 0x31, 0x1b, 0x33, 0x2a, 0xe2, 0x89, 0x34, 0xad, 0x3c, 0xf0,\n\t0xdf, 0x2b, 0x72, 0xf7, 0xce, 0xb8, 0x5a, 0x82, 0xf7, 0x79, 0xe1, 0x53, 0x70, 0x9b, 0x8a, 0x98,\n\t0x66, 0x69, 0xca, 0x62, 0xba, 0xf8, 0x51, 0x84, 0x9c, 0x2e, 0x4c, 0x43, 0x6f, 0xf8, 0xa8, 0xcc,\n\t0xfb, 0xf6, 0x83, 0x6d, 0xc1, 0x3f, 0x55, 0x41, 0xbc, 0x0b, 0x82, 0xf7, 0x40, 0x5b, 0x66, 0x32,\n\t0x61, 0xf1, 0xc4, 0x6e, 0xf4, 0xad, 0x61, 0xc7, 0xef, 0x16, 0xb9, 0xdb, 0x1e, 0x2f, 0x43, 0xf8,\n\t0xea, 0x1b, 0x7c, 0x06, 0xba, 0xcf, 0x45, 0xf0, 0x98, 0x45, 0x49, 0x48, 0x14, 0xb3, 0x9b, 0xa6,\n\t0xd9, 0x1f, 0xed, 0xef, 0xc8, 0xe9, 0x5a, 0x6c, 0xc6, 0xf3, 0x9d, 0x32, 0xd3, 0xee, 0xc6, 0x07,\n\t0xbc, 0x89, 0x84, 0x3f, 0x83, 0x9e, 0xcc, 0x28, 0x65, 0x52, 0x4e, 0xb3, 0xf0, 0x54, 0x04, 0xf2,\n\t0x5b, 0x2e, 0x95, 0x48, 0x17, 0x23, 0x1e, 0x71, 0x65, 0xb7, 0xfa, 0xd6, 0xb0, 0xe9, 0x3b, 0x45,\n\t0xee, 0xf6, 0xc6, 0x7b, 0x55, 0xf8, 0x35, 0x04, 0x88, 0xc1, 0xd1, 0x94, 0xf0, 0x90, 0x4d, 0x76,\n\t0xd8, 0x6d, 0xc3, 0xee, 0x15, 0xb9, 0x7b, 0xf4, 0xb0, 0x52, 0x81, 0xf7, 0x38, 0x07, 0x7f, 0xd4,\n\t0xc1, 0xad, 0x57, 0x5e, 0x0e, 0xfc, 0x1e, 0xb4, 0x08, 0x55, 0xfc, 0x5c, 0x4f, 0x96, 0x1e, 0xda,\n\t0xbb, 0x9b, 0x25, 0xd2, 0xdb, 0x6f, 0xbd, 0x09, 0x30, 0x9b, 0x32, 0xdd, 0x09, 0xb6, 0x7e, 0x6e,\n\t0x5f, 0x19, 0x2b, 0x2e, 0x11, 0x30, 0x04, 0x87, 0x21, 0x91, 0xea, 0x6a, 0x28, 0xf5, 0xc8, 0x99,\n\t0x26, 0x75, 0x4f, 0x3e, 0x7e, 0xb3, 0x67, 0xa6, 0x1d, 0xfe, 0xbb, 0x45, 0xee, 0x1e, 0x8e, 0xb6,\n\t0x38, 0x78, 0x87, 0x0c, 0x53, 0x00, 0x4d, 0x6c, 0x55, 0x42, 0x73, 0x5f, 0xf3, 0x3f, 0xdf, 0x77,\n\t0x54, 0xe4, 0x2e, 0x1c, 0xed, 0x90, 0x70, 0x05, 0x5d, 0x2f, 0x94, 0xb7, 0xb7, 0x46, 0xe5, 0x7f,\n\t0x58, 0xb0, 0xf7, 0x5f, 0x59, 0xb0, 0xef, 0x57, 0x4d, 0x31, 0x7a, 0xcd, 0x5e, 0xf5, 0xef, 0x5f,\n\t0x5c, 0x3a, 0xb5, 0x17, 0x97, 0x4e, 0xed, 0xe5, 0xa5, 0x53, 0xfb, 0xa5, 0x70, 0xac, 0x8b, 0xc2,\n\t0xb1, 0x5e, 0x14, 0x8e, 0xf5, 0xb2, 0x70, 0xac, 0xbf, 0x0a, 0xc7, 0xfa, 0xed, 0x6f, 0xa7, 0xf6,\n\t0xc4, 0xde, 0xf7, 0x7f, 0xfc, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x9e, 0xaa, 0x2c, 0x86, 0xaa,\n\t0x07, 0x00, 0x00,\n}\n\nfunc (m *CronJob) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CronJob) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CronJob) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CronJobList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CronJobList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CronJobList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CronJobSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CronJobSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CronJobSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.TimeZone != nil {\n\t\ti -= len(*m.TimeZone)\n\t\tcopy(dAtA[i:], *m.TimeZone)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.TimeZone)))\n\t\ti--\n\t\tdAtA[i] = 0x42\n\t}\n\tif m.FailedJobsHistoryLimit != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.FailedJobsHistoryLimit))\n\t\ti--\n\t\tdAtA[i] = 0x38\n\t}\n\tif m.SuccessfulJobsHistoryLimit != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.SuccessfulJobsHistoryLimit))\n\t\ti--\n\t\tdAtA[i] = 0x30\n\t}\n\t{\n\t\tsize, err := m.JobTemplate.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x2a\n\tif m.Suspend != nil {\n\t\ti--\n\t\tif *m.Suspend {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\ti -= len(m.ConcurrencyPolicy)\n\tcopy(dAtA[i:], m.ConcurrencyPolicy)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ConcurrencyPolicy)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.StartingDeadlineSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.StartingDeadlineSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\ti -= len(m.Schedule)\n\tcopy(dAtA[i:], m.Schedule)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Schedule)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CronJobStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CronJobStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CronJobStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.LastSuccessfulTime != nil {\n\t\t{\n\t\t\tsize, err := m.LastSuccessfulTime.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.LastScheduleTime != nil {\n\t\t{\n\t\t\tsize, err := m.LastScheduleTime.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif len(m.Active) > 0 {\n\t\tfor iNdEx := len(m.Active) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Active[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *JobTemplateSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *JobTemplateSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *JobTemplateSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *CronJob) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *CronJobList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *CronJobSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Schedule)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.StartingDeadlineSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.StartingDeadlineSeconds))\n\t}\n\tl = len(m.ConcurrencyPolicy)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Suspend != nil {\n\t\tn += 2\n\t}\n\tl = m.JobTemplate.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.SuccessfulJobsHistoryLimit != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.SuccessfulJobsHistoryLimit))\n\t}\n\tif m.FailedJobsHistoryLimit != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.FailedJobsHistoryLimit))\n\t}\n\tif m.TimeZone != nil {\n\t\tl = len(*m.TimeZone)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *CronJobStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Active) > 0 {\n\t\tfor _, e := range m.Active {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.LastScheduleTime != nil {\n\t\tl = m.LastScheduleTime.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.LastSuccessfulTime != nil {\n\t\tl = m.LastSuccessfulTime.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *JobTemplateSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *CronJob) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CronJob{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"CronJobSpec\", \"CronJobSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"CronJobStatus\", \"CronJobStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CronJobList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]CronJob{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"CronJob\", \"CronJob\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&CronJobList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CronJobSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CronJobSpec{`,\n\t\t`Schedule:` + fmt.Sprintf(\"%v\", this.Schedule) + `,`,\n\t\t`StartingDeadlineSeconds:` + valueToStringGenerated(this.StartingDeadlineSeconds) + `,`,\n\t\t`ConcurrencyPolicy:` + fmt.Sprintf(\"%v\", this.ConcurrencyPolicy) + `,`,\n\t\t`Suspend:` + valueToStringGenerated(this.Suspend) + `,`,\n\t\t`JobTemplate:` + strings.Replace(strings.Replace(this.JobTemplate.String(), \"JobTemplateSpec\", \"JobTemplateSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`SuccessfulJobsHistoryLimit:` + valueToStringGenerated(this.SuccessfulJobsHistoryLimit) + `,`,\n\t\t`FailedJobsHistoryLimit:` + valueToStringGenerated(this.FailedJobsHistoryLimit) + `,`,\n\t\t`TimeZone:` + valueToStringGenerated(this.TimeZone) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CronJobStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForActive := \"[]ObjectReference{\"\n\tfor _, f := range this.Active {\n\t\trepeatedStringForActive += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForActive += \"}\"\n\ts := strings.Join([]string{`&CronJobStatus{`,\n\t\t`Active:` + repeatedStringForActive + `,`,\n\t\t`LastScheduleTime:` + strings.Replace(fmt.Sprintf(\"%v\", this.LastScheduleTime), \"Time\", \"v1.Time\", 1) + `,`,\n\t\t`LastSuccessfulTime:` + strings.Replace(fmt.Sprintf(\"%v\", this.LastSuccessfulTime), \"Time\", \"v1.Time\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *JobTemplateSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&JobTemplateSpec{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Spec), \"JobSpec\", \"v12.JobSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *CronJob) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CronJob: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CronJob: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CronJobList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CronJobList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CronJobList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, CronJob{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CronJobSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CronJobSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CronJobSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Schedule\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Schedule = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StartingDeadlineSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.StartingDeadlineSeconds = &v\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ConcurrencyPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ConcurrencyPolicy = ConcurrencyPolicy(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Suspend\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Suspend = &b\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field JobTemplate\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.JobTemplate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SuccessfulJobsHistoryLimit\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.SuccessfulJobsHistoryLimit = &v\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FailedJobsHistoryLimit\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.FailedJobsHistoryLimit = &v\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TimeZone\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.TimeZone = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CronJobStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CronJobStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CronJobStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Active\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Active = append(m.Active, v11.ObjectReference{})\n\t\t\tif err := m.Active[len(m.Active)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastScheduleTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.LastScheduleTime == nil {\n\t\t\t\tm.LastScheduleTime = &v1.Time{}\n\t\t\t}\n\t\t\tif err := m.LastScheduleTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastSuccessfulTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.LastSuccessfulTime == nil {\n\t\t\t\tm.LastSuccessfulTime = &v1.Time{}\n\t\t\t}\n\t\t\tif err := m.LastSuccessfulTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *JobTemplateSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: JobTemplateSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: JobTemplateSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/batch/v1beta1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.batch.v1beta1;\n\nimport \"k8s.io/api/batch/v1/generated.proto\";\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/batch/v1beta1\";\n\n// CronJob represents the configuration of a single cron job.\nmessage CronJob {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Specification of the desired behavior of a cron job, including the schedule.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional CronJobSpec spec = 2;\n\n  // Current status of a cron job.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional CronJobStatus status = 3;\n}\n\n// CronJobList is a collection of cron jobs.\nmessage CronJobList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of CronJobs.\n  repeated CronJob items = 2;\n}\n\n// CronJobSpec describes how the job execution will look like and when it will actually run.\nmessage CronJobSpec {\n  // The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.\n  optional string schedule = 1;\n\n  // The time zone name for the given schedule, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones.\n  // If not specified, this will default to the time zone of the kube-controller-manager process.\n  // The set of valid time zone names and the time zone offset is loaded from the system-wide time zone\n  // database by the API server during CronJob validation and the controller manager during execution.\n  // If no system-wide time zone database can be found a bundled version of the database is used instead.\n  // If the time zone name becomes invalid during the lifetime of a CronJob or due to a change in host\n  // configuration, the controller will stop creating new new Jobs and will create a system event with the\n  // reason UnknownTimeZone.\n  // More information can be found in https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/#time-zones\n  // +optional\n  optional string timeZone = 8;\n\n  // Optional deadline in seconds for starting the job if it misses scheduled\n  // time for any reason.  Missed jobs executions will be counted as failed ones.\n  // +optional\n  optional int64 startingDeadlineSeconds = 2;\n\n  // Specifies how to treat concurrent executions of a Job.\n  // Valid values are:\n  //\n  // - \"Allow\" (default): allows CronJobs to run concurrently;\n  // - \"Forbid\": forbids concurrent runs, skipping next run if previous run hasn't finished yet;\n  // - \"Replace\": cancels currently running job and replaces it with a new one\n  // +optional\n  optional string concurrencyPolicy = 3;\n\n  // This flag tells the controller to suspend subsequent executions, it does\n  // not apply to already started executions.  Defaults to false.\n  // +optional\n  optional bool suspend = 4;\n\n  // Specifies the job that will be created when executing a CronJob.\n  optional JobTemplateSpec jobTemplate = 5;\n\n  // The number of successful finished jobs to retain.\n  // This is a pointer to distinguish between explicit zero and not specified.\n  // Defaults to 3.\n  // +optional\n  optional int32 successfulJobsHistoryLimit = 6;\n\n  // The number of failed finished jobs to retain.\n  // This is a pointer to distinguish between explicit zero and not specified.\n  // Defaults to 1.\n  // +optional\n  optional int32 failedJobsHistoryLimit = 7;\n}\n\n// CronJobStatus represents the current state of a cron job.\nmessage CronJobStatus {\n  // A list of pointers to currently running jobs.\n  // +optional\n  // +listType=atomic\n  repeated .k8s.io.api.core.v1.ObjectReference active = 1;\n\n  // Information when was the last time the job was successfully scheduled.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastScheduleTime = 4;\n\n  // Information when was the last time the job successfully completed.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastSuccessfulTime = 5;\n}\n\n// JobTemplateSpec describes the data a Job should have when created from a template\nmessage JobTemplateSpec {\n  // Standard object's metadata of the jobs created from this template.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Specification of the desired behavior of the job.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional .k8s.io.api.batch.v1.JobSpec spec = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/batch/v1beta1/register.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"batch\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&CronJob{},\n\t\t&CronJobList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/batch/v1beta1/types.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tbatchv1 \"k8s.io/api/batch/v1\"\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// JobTemplateSpec describes the data a Job should have when created from a template\ntype JobTemplateSpec struct {\n\t// Standard object's metadata of the jobs created from this template.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Specification of the desired behavior of the job.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec batchv1.JobSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n// +k8s:prerelease-lifecycle-gen:deprecated=1.21\n// +k8s:prerelease-lifecycle-gen:removed=1.25\n// +k8s:prerelease-lifecycle-gen:replacement=batch,v1,CronJob\n\n// CronJob represents the configuration of a single cron job.\ntype CronJob struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Specification of the desired behavior of a cron job, including the schedule.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec CronJobSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Current status of a cron job.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus CronJobStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n// +k8s:prerelease-lifecycle-gen:deprecated=1.21\n// +k8s:prerelease-lifecycle-gen:removed=1.25\n// +k8s:prerelease-lifecycle-gen:replacement=batch,v1,CronJobList\n\n// CronJobList is a collection of cron jobs.\ntype CronJobList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of CronJobs.\n\tItems []CronJob `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// CronJobSpec describes how the job execution will look like and when it will actually run.\ntype CronJobSpec struct {\n\n\t// The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.\n\tSchedule string `json:\"schedule\" protobuf:\"bytes,1,opt,name=schedule\"`\n\n\t// The time zone name for the given schedule, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones.\n\t// If not specified, this will default to the time zone of the kube-controller-manager process.\n\t// The set of valid time zone names and the time zone offset is loaded from the system-wide time zone\n\t// database by the API server during CronJob validation and the controller manager during execution.\n\t// If no system-wide time zone database can be found a bundled version of the database is used instead.\n\t// If the time zone name becomes invalid during the lifetime of a CronJob or due to a change in host\n\t// configuration, the controller will stop creating new new Jobs and will create a system event with the\n\t// reason UnknownTimeZone.\n\t// More information can be found in https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/#time-zones\n\t// +optional\n\tTimeZone *string `json:\"timeZone,omitempty\" protobuf:\"bytes,8,opt,name=timeZone\"`\n\n\t// Optional deadline in seconds for starting the job if it misses scheduled\n\t// time for any reason.  Missed jobs executions will be counted as failed ones.\n\t// +optional\n\tStartingDeadlineSeconds *int64 `json:\"startingDeadlineSeconds,omitempty\" protobuf:\"varint,2,opt,name=startingDeadlineSeconds\"`\n\n\t// Specifies how to treat concurrent executions of a Job.\n\t// Valid values are:\n\t//\n\t// - \"Allow\" (default): allows CronJobs to run concurrently;\n\t// - \"Forbid\": forbids concurrent runs, skipping next run if previous run hasn't finished yet;\n\t// - \"Replace\": cancels currently running job and replaces it with a new one\n\t// +optional\n\tConcurrencyPolicy ConcurrencyPolicy `json:\"concurrencyPolicy,omitempty\" protobuf:\"bytes,3,opt,name=concurrencyPolicy,casttype=ConcurrencyPolicy\"`\n\n\t// This flag tells the controller to suspend subsequent executions, it does\n\t// not apply to already started executions.  Defaults to false.\n\t// +optional\n\tSuspend *bool `json:\"suspend,omitempty\" protobuf:\"varint,4,opt,name=suspend\"`\n\n\t// Specifies the job that will be created when executing a CronJob.\n\tJobTemplate JobTemplateSpec `json:\"jobTemplate\" protobuf:\"bytes,5,opt,name=jobTemplate\"`\n\n\t// The number of successful finished jobs to retain.\n\t// This is a pointer to distinguish between explicit zero and not specified.\n\t// Defaults to 3.\n\t// +optional\n\tSuccessfulJobsHistoryLimit *int32 `json:\"successfulJobsHistoryLimit,omitempty\" protobuf:\"varint,6,opt,name=successfulJobsHistoryLimit\"`\n\n\t// The number of failed finished jobs to retain.\n\t// This is a pointer to distinguish between explicit zero and not specified.\n\t// Defaults to 1.\n\t// +optional\n\tFailedJobsHistoryLimit *int32 `json:\"failedJobsHistoryLimit,omitempty\" protobuf:\"varint,7,opt,name=failedJobsHistoryLimit\"`\n}\n\n// ConcurrencyPolicy describes how the job will be handled.\n// Only one of the following concurrent policies may be specified.\n// If none of the following policies is specified, the default one\n// is AllowConcurrent.\ntype ConcurrencyPolicy string\n\nconst (\n\t// AllowConcurrent allows CronJobs to run concurrently.\n\tAllowConcurrent ConcurrencyPolicy = \"Allow\"\n\n\t// ForbidConcurrent forbids concurrent runs, skipping next run if previous\n\t// hasn't finished yet.\n\tForbidConcurrent ConcurrencyPolicy = \"Forbid\"\n\n\t// ReplaceConcurrent cancels currently running job and replaces it with a new one.\n\tReplaceConcurrent ConcurrencyPolicy = \"Replace\"\n)\n\n// CronJobStatus represents the current state of a cron job.\ntype CronJobStatus struct {\n\t// A list of pointers to currently running jobs.\n\t// +optional\n\t// +listType=atomic\n\tActive []v1.ObjectReference `json:\"active,omitempty\" protobuf:\"bytes,1,rep,name=active\"`\n\n\t// Information when was the last time the job was successfully scheduled.\n\t// +optional\n\tLastScheduleTime *metav1.Time `json:\"lastScheduleTime,omitempty\" protobuf:\"bytes,4,opt,name=lastScheduleTime\"`\n\n\t// Information when was the last time the job successfully completed.\n\t// +optional\n\tLastSuccessfulTime *metav1.Time `json:\"lastSuccessfulTime,omitempty\" protobuf:\"bytes,5,opt,name=lastSuccessfulTime\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/batch/v1beta1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_CronJob = map[string]string{\n\t\"\":         \"CronJob represents the configuration of a single cron job.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Specification of the desired behavior of a cron job, including the schedule. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"Current status of a cron job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (CronJob) SwaggerDoc() map[string]string {\n\treturn map_CronJob\n}\n\nvar map_CronJobList = map[string]string{\n\t\"\":         \"CronJobList is a collection of cron jobs.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of CronJobs.\",\n}\n\nfunc (CronJobList) SwaggerDoc() map[string]string {\n\treturn map_CronJobList\n}\n\nvar map_CronJobSpec = map[string]string{\n\t\"\":                           \"CronJobSpec describes how the job execution will look like and when it will actually run.\",\n\t\"schedule\":                   \"The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.\",\n\t\"timeZone\":                   \"The time zone name for the given schedule, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones. If not specified, this will default to the time zone of the kube-controller-manager process. The set of valid time zone names and the time zone offset is loaded from the system-wide time zone database by the API server during CronJob validation and the controller manager during execution. If no system-wide time zone database can be found a bundled version of the database is used instead. If the time zone name becomes invalid during the lifetime of a CronJob or due to a change in host configuration, the controller will stop creating new new Jobs and will create a system event with the reason UnknownTimeZone. More information can be found in https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/#time-zones\",\n\t\"startingDeadlineSeconds\":    \"Optional deadline in seconds for starting the job if it misses scheduled time for any reason.  Missed jobs executions will be counted as failed ones.\",\n\t\"concurrencyPolicy\":          \"Specifies how to treat concurrent executions of a Job. Valid values are:\\n\\n- \\\"Allow\\\" (default): allows CronJobs to run concurrently; - \\\"Forbid\\\": forbids concurrent runs, skipping next run if previous run hasn't finished yet; - \\\"Replace\\\": cancels currently running job and replaces it with a new one\",\n\t\"suspend\":                    \"This flag tells the controller to suspend subsequent executions, it does not apply to already started executions.  Defaults to false.\",\n\t\"jobTemplate\":                \"Specifies the job that will be created when executing a CronJob.\",\n\t\"successfulJobsHistoryLimit\": \"The number of successful finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified. Defaults to 3.\",\n\t\"failedJobsHistoryLimit\":     \"The number of failed finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.\",\n}\n\nfunc (CronJobSpec) SwaggerDoc() map[string]string {\n\treturn map_CronJobSpec\n}\n\nvar map_CronJobStatus = map[string]string{\n\t\"\":                   \"CronJobStatus represents the current state of a cron job.\",\n\t\"active\":             \"A list of pointers to currently running jobs.\",\n\t\"lastScheduleTime\":   \"Information when was the last time the job was successfully scheduled.\",\n\t\"lastSuccessfulTime\": \"Information when was the last time the job successfully completed.\",\n}\n\nfunc (CronJobStatus) SwaggerDoc() map[string]string {\n\treturn map_CronJobStatus\n}\n\nvar map_JobTemplateSpec = map[string]string{\n\t\"\":         \"JobTemplateSpec describes the data a Job should have when created from a template\",\n\t\"metadata\": \"Standard object's metadata of the jobs created from this template. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Specification of the desired behavior of the job. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (JobTemplateSpec) SwaggerDoc() map[string]string {\n\treturn map_JobTemplateSpec\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/batch/v1beta1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CronJob) DeepCopyInto(out *CronJob) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CronJob.\nfunc (in *CronJob) DeepCopy() *CronJob {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CronJob)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CronJob) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CronJobList) DeepCopyInto(out *CronJobList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]CronJob, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CronJobList.\nfunc (in *CronJobList) DeepCopy() *CronJobList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CronJobList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CronJobList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CronJobSpec) DeepCopyInto(out *CronJobSpec) {\n\t*out = *in\n\tif in.TimeZone != nil {\n\t\tin, out := &in.TimeZone, &out.TimeZone\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.StartingDeadlineSeconds != nil {\n\t\tin, out := &in.StartingDeadlineSeconds, &out.StartingDeadlineSeconds\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.Suspend != nil {\n\t\tin, out := &in.Suspend, &out.Suspend\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tin.JobTemplate.DeepCopyInto(&out.JobTemplate)\n\tif in.SuccessfulJobsHistoryLimit != nil {\n\t\tin, out := &in.SuccessfulJobsHistoryLimit, &out.SuccessfulJobsHistoryLimit\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.FailedJobsHistoryLimit != nil {\n\t\tin, out := &in.FailedJobsHistoryLimit, &out.FailedJobsHistoryLimit\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CronJobSpec.\nfunc (in *CronJobSpec) DeepCopy() *CronJobSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CronJobSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CronJobStatus) DeepCopyInto(out *CronJobStatus) {\n\t*out = *in\n\tif in.Active != nil {\n\t\tin, out := &in.Active, &out.Active\n\t\t*out = make([]v1.ObjectReference, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.LastScheduleTime != nil {\n\t\tin, out := &in.LastScheduleTime, &out.LastScheduleTime\n\t\t*out = (*in).DeepCopy()\n\t}\n\tif in.LastSuccessfulTime != nil {\n\t\tin, out := &in.LastSuccessfulTime, &out.LastSuccessfulTime\n\t\t*out = (*in).DeepCopy()\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CronJobStatus.\nfunc (in *CronJobStatus) DeepCopy() *CronJobStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CronJobStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *JobTemplateSpec) DeepCopyInto(out *JobTemplateSpec) {\n\t*out = *in\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobTemplateSpec.\nfunc (in *JobTemplateSpec) DeepCopy() *JobTemplateSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(JobTemplateSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/batch/v1beta1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *CronJob) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *CronJob) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 21\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *CronJob) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"batch\", Version: \"v1\", Kind: \"CronJob\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *CronJob) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 25\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *CronJobList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *CronJobList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 21\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *CronJobList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"batch\", Version: \"v1\", Kind: \"CronJobList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *CronJobList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 25\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1/doc.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n// +groupName=certificates.k8s.io\n\npackage v1 // import \"k8s.io/api/certificates/v1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/certificates/v1/generated.proto\n\npackage v1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *CertificateSigningRequest) Reset()      { *m = CertificateSigningRequest{} }\nfunc (*CertificateSigningRequest) ProtoMessage() {}\nfunc (*CertificateSigningRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5f7d41da689f96f7, []int{0}\n}\nfunc (m *CertificateSigningRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CertificateSigningRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CertificateSigningRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CertificateSigningRequest.Merge(m, src)\n}\nfunc (m *CertificateSigningRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CertificateSigningRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_CertificateSigningRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CertificateSigningRequest proto.InternalMessageInfo\n\nfunc (m *CertificateSigningRequestCondition) Reset()      { *m = CertificateSigningRequestCondition{} }\nfunc (*CertificateSigningRequestCondition) ProtoMessage() {}\nfunc (*CertificateSigningRequestCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5f7d41da689f96f7, []int{1}\n}\nfunc (m *CertificateSigningRequestCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CertificateSigningRequestCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CertificateSigningRequestCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CertificateSigningRequestCondition.Merge(m, src)\n}\nfunc (m *CertificateSigningRequestCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CertificateSigningRequestCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_CertificateSigningRequestCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CertificateSigningRequestCondition proto.InternalMessageInfo\n\nfunc (m *CertificateSigningRequestList) Reset()      { *m = CertificateSigningRequestList{} }\nfunc (*CertificateSigningRequestList) ProtoMessage() {}\nfunc (*CertificateSigningRequestList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5f7d41da689f96f7, []int{2}\n}\nfunc (m *CertificateSigningRequestList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CertificateSigningRequestList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CertificateSigningRequestList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CertificateSigningRequestList.Merge(m, src)\n}\nfunc (m *CertificateSigningRequestList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CertificateSigningRequestList) XXX_DiscardUnknown() {\n\txxx_messageInfo_CertificateSigningRequestList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CertificateSigningRequestList proto.InternalMessageInfo\n\nfunc (m *CertificateSigningRequestSpec) Reset()      { *m = CertificateSigningRequestSpec{} }\nfunc (*CertificateSigningRequestSpec) ProtoMessage() {}\nfunc (*CertificateSigningRequestSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5f7d41da689f96f7, []int{3}\n}\nfunc (m *CertificateSigningRequestSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CertificateSigningRequestSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CertificateSigningRequestSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CertificateSigningRequestSpec.Merge(m, src)\n}\nfunc (m *CertificateSigningRequestSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CertificateSigningRequestSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_CertificateSigningRequestSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CertificateSigningRequestSpec proto.InternalMessageInfo\n\nfunc (m *CertificateSigningRequestStatus) Reset()      { *m = CertificateSigningRequestStatus{} }\nfunc (*CertificateSigningRequestStatus) ProtoMessage() {}\nfunc (*CertificateSigningRequestStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5f7d41da689f96f7, []int{4}\n}\nfunc (m *CertificateSigningRequestStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CertificateSigningRequestStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CertificateSigningRequestStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CertificateSigningRequestStatus.Merge(m, src)\n}\nfunc (m *CertificateSigningRequestStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CertificateSigningRequestStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_CertificateSigningRequestStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CertificateSigningRequestStatus proto.InternalMessageInfo\n\nfunc (m *ExtraValue) Reset()      { *m = ExtraValue{} }\nfunc (*ExtraValue) ProtoMessage() {}\nfunc (*ExtraValue) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5f7d41da689f96f7, []int{5}\n}\nfunc (m *ExtraValue) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ExtraValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ExtraValue) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ExtraValue.Merge(m, src)\n}\nfunc (m *ExtraValue) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ExtraValue) XXX_DiscardUnknown() {\n\txxx_messageInfo_ExtraValue.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ExtraValue proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*CertificateSigningRequest)(nil), \"k8s.io.api.certificates.v1.CertificateSigningRequest\")\n\tproto.RegisterType((*CertificateSigningRequestCondition)(nil), \"k8s.io.api.certificates.v1.CertificateSigningRequestCondition\")\n\tproto.RegisterType((*CertificateSigningRequestList)(nil), \"k8s.io.api.certificates.v1.CertificateSigningRequestList\")\n\tproto.RegisterType((*CertificateSigningRequestSpec)(nil), \"k8s.io.api.certificates.v1.CertificateSigningRequestSpec\")\n\tproto.RegisterMapType((map[string]ExtraValue)(nil), \"k8s.io.api.certificates.v1.CertificateSigningRequestSpec.ExtraEntry\")\n\tproto.RegisterType((*CertificateSigningRequestStatus)(nil), \"k8s.io.api.certificates.v1.CertificateSigningRequestStatus\")\n\tproto.RegisterType((*ExtraValue)(nil), \"k8s.io.api.certificates.v1.ExtraValue\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/certificates/v1/generated.proto\", fileDescriptor_5f7d41da689f96f7)\n}\n\nvar fileDescriptor_5f7d41da689f96f7 = []byte{\n\t// 896 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0x4f, 0x6f, 0x1b, 0x45,\n\t0x14, 0xf7, 0xc6, 0x7f, 0x62, 0x8f, 0x43, 0xda, 0x8e, 0xa0, 0x5a, 0x2c, 0xd5, 0x6b, 0xad, 0xa0,\n\t0x0a, 0x15, 0xcc, 0x92, 0xa8, 0x40, 0x28, 0x08, 0xa1, 0x4d, 0x23, 0x54, 0x91, 0x82, 0x34, 0x49,\n\t0x38, 0x14, 0x0e, 0x9d, 0xac, 0x5f, 0x37, 0xd3, 0x74, 0xff, 0xb0, 0x33, 0x6b, 0xd5, 0xb7, 0x7e,\n\t0x04, 0x8e, 0x1c, 0xf9, 0x02, 0x7c, 0x06, 0xae, 0x39, 0xf6, 0x58, 0x24, 0x64, 0x11, 0xf7, 0x5b,\n\t0xe4, 0x84, 0x66, 0x76, 0xbc, 0x76, 0x9c, 0xb8, 0x0d, 0xb9, 0x79, 0x7e, 0xf3, 0x7b, 0xbf, 0xdf,\n\t0x7b, 0x6f, 0xdf, 0x1b, 0x19, 0xdd, 0x39, 0xda, 0x14, 0x84, 0x27, 0x1e, 0x4b, 0xb9, 0x17, 0x40,\n\t0x26, 0xf9, 0x13, 0x1e, 0x30, 0x09, 0xc2, 0x1b, 0xac, 0x7b, 0x21, 0xc4, 0x90, 0x31, 0x09, 0x7d,\n\t0x92, 0x66, 0x89, 0x4c, 0x70, 0xa7, 0xe0, 0x12, 0x96, 0x72, 0x32, 0xcb, 0x25, 0x83, 0xf5, 0xce,\n\t0x27, 0x21, 0x97, 0x87, 0xf9, 0x01, 0x09, 0x92, 0xc8, 0x0b, 0x93, 0x30, 0xf1, 0x74, 0xc8, 0x41,\n\t0xfe, 0x44, 0x9f, 0xf4, 0x41, 0xff, 0x2a, 0xa4, 0x3a, 0xee, 0xac, 0x6d, 0x92, 0xc1, 0x05, 0x76,\n\t0x9d, 0xbb, 0x53, 0x4e, 0xc4, 0x82, 0x43, 0x1e, 0x43, 0x36, 0xf4, 0xd2, 0xa3, 0x50, 0x01, 0xc2,\n\t0x8b, 0x40, 0xb2, 0x8b, 0xa2, 0xbc, 0x45, 0x51, 0x59, 0x1e, 0x4b, 0x1e, 0xc1, 0xb9, 0x80, 0xcf,\n\t0xdf, 0x16, 0x20, 0x82, 0x43, 0x88, 0xd8, 0x7c, 0x9c, 0xfb, 0xd7, 0x12, 0x7a, 0x7f, 0x6b, 0xda,\n\t0x85, 0x5d, 0x1e, 0xc6, 0x3c, 0x0e, 0x29, 0xfc, 0x9a, 0x83, 0x90, 0xf8, 0x31, 0x6a, 0xaa, 0x0c,\n\t0xfb, 0x4c, 0x32, 0xdb, 0xea, 0x59, 0x6b, 0xed, 0x8d, 0x4f, 0xc9, 0xb4, 0x7d, 0xa5, 0x11, 0x49,\n\t0x8f, 0x42, 0x05, 0x08, 0xa2, 0xd8, 0x64, 0xb0, 0x4e, 0x7e, 0x3c, 0x78, 0x0a, 0x81, 0x7c, 0x08,\n\t0x92, 0xf9, 0xf8, 0x78, 0xe4, 0x54, 0xc6, 0x23, 0x07, 0x4d, 0x31, 0x5a, 0xaa, 0xe2, 0x9f, 0x51,\n\t0x4d, 0xa4, 0x10, 0xd8, 0x4b, 0x5a, 0xfd, 0x4b, 0xb2, 0xf8, 0xe3, 0x90, 0x85, 0x69, 0xee, 0xa6,\n\t0x10, 0xf8, 0x2b, 0xc6, 0xa6, 0xa6, 0x4e, 0x54, 0x8b, 0xe2, 0x00, 0x35, 0x84, 0x64, 0x32, 0x17,\n\t0x76, 0x55, 0xcb, 0x7f, 0x75, 0x35, 0x79, 0x2d, 0xe1, 0xaf, 0x1a, 0x83, 0x46, 0x71, 0xa6, 0x46,\n\t0xda, 0x7d, 0x5d, 0x45, 0xee, 0xc2, 0xd8, 0xad, 0x24, 0xee, 0x73, 0xc9, 0x93, 0x18, 0x6f, 0xa2,\n\t0x9a, 0x1c, 0xa6, 0xa0, 0xdb, 0xd8, 0xf2, 0x3f, 0x98, 0x64, 0xbb, 0x37, 0x4c, 0xe1, 0x74, 0xe4,\n\t0xbc, 0x3b, 0xcf, 0x57, 0x38, 0xd5, 0x11, 0x78, 0xa7, 0xac, 0xa2, 0xa1, 0x63, 0xef, 0x9e, 0x4d,\n\t0xe4, 0x74, 0xe4, 0x5c, 0x30, 0x87, 0xa4, 0x54, 0x3a, 0x9b, 0x2e, 0xbe, 0x8d, 0x1a, 0x19, 0x30,\n\t0x91, 0xc4, 0xba, 0xe5, 0xad, 0x69, 0x59, 0x54, 0xa3, 0xd4, 0xdc, 0xe2, 0x8f, 0xd0, 0x72, 0x04,\n\t0x42, 0xb0, 0x10, 0x74, 0xf3, 0x5a, 0xfe, 0x35, 0x43, 0x5c, 0x7e, 0x58, 0xc0, 0x74, 0x72, 0x8f,\n\t0x9f, 0xa2, 0xd5, 0x67, 0x4c, 0xc8, 0xfd, 0xb4, 0xcf, 0x24, 0xec, 0xf1, 0x08, 0xec, 0x9a, 0x6e,\n\t0xf7, 0x9d, 0xcb, 0xcd, 0x8a, 0x8a, 0xf0, 0x6f, 0x1a, 0xf5, 0xd5, 0x9d, 0x33, 0x4a, 0x74, 0x4e,\n\t0x19, 0x0f, 0x10, 0x56, 0xc8, 0x5e, 0xc6, 0x62, 0x51, 0x34, 0x4a, 0xf9, 0xd5, 0xff, 0xb7, 0x5f,\n\t0xc7, 0xf8, 0xe1, 0x9d, 0x73, 0x6a, 0xf4, 0x02, 0x07, 0xf7, 0x6f, 0x0b, 0xdd, 0x5a, 0xf8, 0x95,\n\t0x77, 0xb8, 0x90, 0xf8, 0x97, 0x73, 0xbb, 0x42, 0x2e, 0x97, 0x8f, 0x8a, 0xd6, 0x9b, 0x72, 0xdd,\n\t0xe4, 0xd4, 0x9c, 0x20, 0x33, 0x7b, 0xf2, 0x08, 0xd5, 0xb9, 0x84, 0x48, 0xd8, 0x4b, 0xbd, 0xea,\n\t0x5a, 0x7b, 0xe3, 0xb3, 0x2b, 0x4d, 0xb2, 0xff, 0x8e, 0x71, 0xa8, 0x3f, 0x50, 0x5a, 0xb4, 0x90,\n\t0x74, 0xff, 0xac, 0xbd, 0xa1, 0x36, 0xb5, 0x4e, 0xf8, 0x43, 0xb4, 0x9c, 0x15, 0x47, 0x5d, 0xda,\n\t0x8a, 0xdf, 0x56, 0x83, 0x60, 0x18, 0x74, 0x72, 0x87, 0x37, 0x10, 0x12, 0x3c, 0x8c, 0x21, 0xfb,\n\t0x81, 0x45, 0x60, 0x2f, 0xeb, 0xb1, 0x29, 0xd7, 0x7f, 0xb7, 0xbc, 0xa1, 0x33, 0x2c, 0xbc, 0x85,\n\t0x6e, 0xc0, 0xf3, 0x94, 0x67, 0x4c, 0xcf, 0x2a, 0x04, 0x49, 0xdc, 0x17, 0x76, 0xb3, 0x67, 0xad,\n\t0xd5, 0xfd, 0xf7, 0xc6, 0x23, 0xe7, 0xc6, 0xf6, 0xfc, 0x25, 0x3d, 0xcf, 0xc7, 0x04, 0x35, 0x72,\n\t0x35, 0x8a, 0xc2, 0xae, 0xf7, 0xaa, 0x6b, 0x2d, 0xff, 0xa6, 0x1a, 0xe8, 0x7d, 0x8d, 0x9c, 0x8e,\n\t0x9c, 0xe6, 0xf7, 0x30, 0xd4, 0x07, 0x6a, 0x58, 0xf8, 0x63, 0xd4, 0xcc, 0x05, 0x64, 0xb1, 0x4a,\n\t0xb3, 0x58, 0x83, 0xb2, 0xf7, 0xfb, 0x06, 0xa7, 0x25, 0x03, 0xdf, 0x42, 0xd5, 0x9c, 0xf7, 0xcd,\n\t0x1a, 0xb4, 0x0d, 0xb1, 0xba, 0xff, 0xe0, 0x3e, 0x55, 0x38, 0x76, 0x51, 0x23, 0xcc, 0x92, 0x3c,\n\t0x15, 0x76, 0x4d, 0x9b, 0x23, 0x65, 0xfe, 0x9d, 0x46, 0xa8, 0xb9, 0xc1, 0x1c, 0xd5, 0xe1, 0xb9,\n\t0xcc, 0x98, 0xdd, 0xd0, 0x9f, 0xef, 0xfe, 0x95, 0xdf, 0x39, 0xb2, 0xad, 0x64, 0xb6, 0x63, 0x99,\n\t0x0d, 0xa7, 0x5f, 0x53, 0x63, 0xb4, 0x70, 0xe8, 0x3c, 0x46, 0x68, 0xca, 0xc1, 0xd7, 0x51, 0xf5,\n\t0x08, 0x86, 0xc5, 0xab, 0x43, 0xd5, 0x4f, 0xfc, 0x35, 0xaa, 0x0f, 0xd8, 0xb3, 0x1c, 0xcc, 0x93,\n\t0x7b, 0xfb, 0x4d, 0xa9, 0x68, 0xa1, 0x9f, 0x14, 0x9b, 0x16, 0x41, 0xf7, 0x96, 0x36, 0x2d, 0xf7,\n\t0xd8, 0x42, 0xce, 0x5b, 0x5e, 0x4b, 0x9c, 0x21, 0x14, 0x4c, 0x5e, 0x20, 0x61, 0x5b, 0xba, 0xea,\n\t0x6f, 0xae, 0x54, 0x75, 0xf9, 0x90, 0x4d, 0x47, 0xa9, 0x84, 0x04, 0x9d, 0x71, 0xc1, 0xeb, 0xa8,\n\t0x3d, 0xa3, 0xaa, 0xeb, 0x5b, 0xf1, 0xaf, 0x8d, 0x47, 0x4e, 0x7b, 0x46, 0x9c, 0xce, 0x72, 0xdc,\n\t0x2f, 0x4c, 0xb3, 0x74, 0x8d, 0xd8, 0x99, 0x2c, 0x99, 0xa5, 0x3f, 0x64, 0x6b, 0x7e, 0x53, 0xee,\n\t0x35, 0x7f, 0xff, 0xc3, 0xa9, 0xbc, 0xf8, 0xa7, 0x57, 0xf1, 0xbf, 0x3d, 0x3e, 0xe9, 0x56, 0x5e,\n\t0x9e, 0x74, 0x2b, 0xaf, 0x4e, 0xba, 0x95, 0x17, 0xe3, 0xae, 0x75, 0x3c, 0xee, 0x5a, 0x2f, 0xc7,\n\t0x5d, 0xeb, 0xd5, 0xb8, 0x6b, 0xfd, 0x3b, 0xee, 0x5a, 0xbf, 0xbd, 0xee, 0x56, 0x1e, 0x75, 0x16,\n\t0xff, 0x2f, 0xf9, 0x2f, 0x00, 0x00, 0xff, 0xff, 0xd9, 0x4a, 0x4f, 0xbc, 0xb4, 0x08, 0x00, 0x00,\n}\n\nfunc (m *CertificateSigningRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CertificateSigningRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CertificateSigningRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CertificateSigningRequestCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CertificateSigningRequestCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CertificateSigningRequestCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x32\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x2a\n\t{\n\t\tsize, err := m.LastUpdateTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CertificateSigningRequestList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CertificateSigningRequestList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CertificateSigningRequestList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CertificateSigningRequestSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CertificateSigningRequestSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CertificateSigningRequestSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ExpirationSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.ExpirationSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x40\n\t}\n\ti -= len(m.SignerName)\n\tcopy(dAtA[i:], m.SignerName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.SignerName)))\n\ti--\n\tdAtA[i] = 0x3a\n\tif len(m.Extra) > 0 {\n\t\tkeysForExtra := make([]string, 0, len(m.Extra))\n\t\tfor k := range m.Extra {\n\t\t\tkeysForExtra = append(keysForExtra, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForExtra)\n\t\tfor iNdEx := len(keysForExtra) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Extra[string(keysForExtra[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForExtra[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForExtra[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForExtra[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\tif len(m.Usages) > 0 {\n\t\tfor iNdEx := len(m.Usages) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Usages[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Usages[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Usages[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\tif len(m.Groups) > 0 {\n\t\tfor iNdEx := len(m.Groups) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Groups[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Groups[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Groups[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\ti -= len(m.UID)\n\tcopy(dAtA[i:], m.UID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.UID)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Username)\n\tcopy(dAtA[i:], m.Username)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Username)))\n\ti--\n\tdAtA[i] = 0x12\n\tif m.Request != nil {\n\t\ti -= len(m.Request)\n\t\tcopy(dAtA[i:], m.Request)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Request)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CertificateSigningRequestStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CertificateSigningRequestStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CertificateSigningRequestStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Certificate != nil {\n\t\ti -= len(m.Certificate)\n\t\tcopy(dAtA[i:], m.Certificate)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Certificate)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m ExtraValue) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m ExtraValue) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m ExtraValue) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m) > 0 {\n\t\tfor iNdEx := len(m) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m[iNdEx])\n\t\t\tcopy(dAtA[i:], m[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *CertificateSigningRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *CertificateSigningRequestCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastUpdateTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *CertificateSigningRequestList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *CertificateSigningRequestSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Request != nil {\n\t\tl = len(m.Request)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.Username)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.UID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Groups) > 0 {\n\t\tfor _, s := range m.Groups {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Usages) > 0 {\n\t\tfor _, s := range m.Usages {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Extra) > 0 {\n\t\tfor k, v := range m.Extra {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tl = len(m.SignerName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.ExpirationSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.ExpirationSeconds))\n\t}\n\treturn n\n}\n\nfunc (m *CertificateSigningRequestStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.Certificate != nil {\n\t\tl = len(m.Certificate)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m ExtraValue) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m) > 0 {\n\t\tfor _, s := range m {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *CertificateSigningRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CertificateSigningRequest{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"CertificateSigningRequestSpec\", \"CertificateSigningRequestSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"CertificateSigningRequestStatus\", \"CertificateSigningRequestStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CertificateSigningRequestCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CertificateSigningRequestCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`LastUpdateTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastUpdateTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CertificateSigningRequestList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]CertificateSigningRequest{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"CertificateSigningRequest\", \"CertificateSigningRequest\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&CertificateSigningRequestList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CertificateSigningRequestSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForExtra := make([]string, 0, len(this.Extra))\n\tfor k := range this.Extra {\n\t\tkeysForExtra = append(keysForExtra, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForExtra)\n\tmapStringForExtra := \"map[string]ExtraValue{\"\n\tfor _, k := range keysForExtra {\n\t\tmapStringForExtra += fmt.Sprintf(\"%v: %v,\", k, this.Extra[k])\n\t}\n\tmapStringForExtra += \"}\"\n\ts := strings.Join([]string{`&CertificateSigningRequestSpec{`,\n\t\t`Request:` + valueToStringGenerated(this.Request) + `,`,\n\t\t`Username:` + fmt.Sprintf(\"%v\", this.Username) + `,`,\n\t\t`UID:` + fmt.Sprintf(\"%v\", this.UID) + `,`,\n\t\t`Groups:` + fmt.Sprintf(\"%v\", this.Groups) + `,`,\n\t\t`Usages:` + fmt.Sprintf(\"%v\", this.Usages) + `,`,\n\t\t`Extra:` + mapStringForExtra + `,`,\n\t\t`SignerName:` + fmt.Sprintf(\"%v\", this.SignerName) + `,`,\n\t\t`ExpirationSeconds:` + valueToStringGenerated(this.ExpirationSeconds) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CertificateSigningRequestStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]CertificateSigningRequestCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"CertificateSigningRequestCondition\", \"CertificateSigningRequestCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&CertificateSigningRequestStatus{`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`Certificate:` + valueToStringGenerated(this.Certificate) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *CertificateSigningRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CertificateSigningRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CertificateSigningRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CertificateSigningRequestCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CertificateSigningRequestCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CertificateSigningRequestCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = RequestConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastUpdateTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastUpdateTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CertificateSigningRequestList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CertificateSigningRequestList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CertificateSigningRequestList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, CertificateSigningRequest{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CertificateSigningRequestSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CertificateSigningRequestSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CertificateSigningRequestSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Request\", wireType)\n\t\t\t}\n\t\t\tvar byteLen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tbyteLen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif byteLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + byteLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Request = append(m.Request[:0], dAtA[iNdEx:postIndex]...)\n\t\t\tif m.Request == nil {\n\t\t\t\tm.Request = []byte{}\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Username\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Username = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.UID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Groups\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Groups = append(m.Groups, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Usages\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Usages = append(m.Usages, KeyUsage(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Extra\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Extra == nil {\n\t\t\t\tm.Extra = make(map[string]ExtraValue)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tmapvalue := &ExtraValue{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &ExtraValue{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Extra[mapkey] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SignerName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SignerName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ExpirationSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ExpirationSeconds = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CertificateSigningRequestStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CertificateSigningRequestStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CertificateSigningRequestStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, CertificateSigningRequestCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Certificate\", wireType)\n\t\t\t}\n\t\t\tvar byteLen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tbyteLen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif byteLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + byteLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Certificate = append(m.Certificate[:0], dAtA[iNdEx:postIndex]...)\n\t\t\tif m.Certificate == nil {\n\t\t\t\tm.Certificate = []byte{}\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ExtraValue) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ExtraValue: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ExtraValue: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\t*m = append(*m, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.certificates.v1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/certificates/v1\";\n\n// CertificateSigningRequest objects provide a mechanism to obtain x509 certificates\n// by submitting a certificate signing request, and having it asynchronously approved and issued.\n//\n// Kubelets use this API to obtain:\n//  1. client certificates to authenticate to kube-apiserver (with the \"kubernetes.io/kube-apiserver-client-kubelet\" signerName).\n//  2. serving certificates for TLS endpoints kube-apiserver can connect to securely (with the \"kubernetes.io/kubelet-serving\" signerName).\n//\n// This API can be used to request client certificates to authenticate to kube-apiserver\n// (with the \"kubernetes.io/kube-apiserver-client\" signerName),\n// or to obtain certificates from custom non-Kubernetes signers.\nmessage CertificateSigningRequest {\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec contains the certificate request, and is immutable after creation.\n  // Only the request, signerName, expirationSeconds, and usages fields can be set on creation.\n  // Other fields are derived by Kubernetes and cannot be modified by users.\n  optional CertificateSigningRequestSpec spec = 2;\n\n  // status contains information about whether the request is approved or denied,\n  // and the certificate issued by the signer, or the failure condition indicating signer failure.\n  // +optional\n  optional CertificateSigningRequestStatus status = 3;\n}\n\n// CertificateSigningRequestCondition describes a condition of a CertificateSigningRequest object\nmessage CertificateSigningRequestCondition {\n  // type of the condition. Known conditions are \"Approved\", \"Denied\", and \"Failed\".\n  //\n  // An \"Approved\" condition is added via the /approval subresource,\n  // indicating the request was approved and should be issued by the signer.\n  //\n  // A \"Denied\" condition is added via the /approval subresource,\n  // indicating the request was denied and should not be issued by the signer.\n  //\n  // A \"Failed\" condition is added via the /status subresource,\n  // indicating the signer failed to issue the certificate.\n  //\n  // Approved and Denied conditions are mutually exclusive.\n  // Approved, Denied, and Failed conditions cannot be removed once added.\n  //\n  // Only one condition of a given type is allowed.\n  optional string type = 1;\n\n  // status of the condition, one of True, False, Unknown.\n  // Approved, Denied, and Failed conditions may not be \"False\" or \"Unknown\".\n  optional string status = 6;\n\n  // reason indicates a brief reason for the request state\n  // +optional\n  optional string reason = 2;\n\n  // message contains a human readable message with details about the request state\n  // +optional\n  optional string message = 3;\n\n  // lastUpdateTime is the time of the last update to this condition\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastUpdateTime = 4;\n\n  // lastTransitionTime is the time the condition last transitioned from one status to another.\n  // If unset, when a new condition type is added or an existing condition's status is changed,\n  // the server defaults this to the current time.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 5;\n}\n\n// CertificateSigningRequestList is a collection of CertificateSigningRequest objects\nmessage CertificateSigningRequestList {\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is a collection of CertificateSigningRequest objects\n  repeated CertificateSigningRequest items = 2;\n}\n\n// CertificateSigningRequestSpec contains the certificate request.\nmessage CertificateSigningRequestSpec {\n  // request contains an x509 certificate signing request encoded in a \"CERTIFICATE REQUEST\" PEM block.\n  // When serialized as JSON or YAML, the data is additionally base64-encoded.\n  // +listType=atomic\n  optional bytes request = 1;\n\n  // signerName indicates the requested signer, and is a qualified name.\n  //\n  // List/watch requests for CertificateSigningRequests can filter on this field using a \"spec.signerName=NAME\" fieldSelector.\n  //\n  // Well-known Kubernetes signers are:\n  //  1. \"kubernetes.io/kube-apiserver-client\": issues client certificates that can be used to authenticate to kube-apiserver.\n  //   Requests for this signer are never auto-approved by kube-controller-manager, can be issued by the \"csrsigning\" controller in kube-controller-manager.\n  //  2. \"kubernetes.io/kube-apiserver-client-kubelet\": issues client certificates that kubelets use to authenticate to kube-apiserver.\n  //   Requests for this signer can be auto-approved by the \"csrapproving\" controller in kube-controller-manager, and can be issued by the \"csrsigning\" controller in kube-controller-manager.\n  //  3. \"kubernetes.io/kubelet-serving\" issues serving certificates that kubelets use to serve TLS endpoints, which kube-apiserver can connect to securely.\n  //   Requests for this signer are never auto-approved by kube-controller-manager, and can be issued by the \"csrsigning\" controller in kube-controller-manager.\n  //\n  // More details are available at https://k8s.io/docs/reference/access-authn-authz/certificate-signing-requests/#kubernetes-signers\n  //\n  // Custom signerNames can also be specified. The signer defines:\n  //  1. Trust distribution: how trust (CA bundles) are distributed.\n  //  2. Permitted subjects: and behavior when a disallowed subject is requested.\n  //  3. Required, permitted, or forbidden x509 extensions in the request (including whether subjectAltNames are allowed, which types, restrictions on allowed values) and behavior when a disallowed extension is requested.\n  //  4. Required, permitted, or forbidden key usages / extended key usages.\n  //  5. Expiration/certificate lifetime: whether it is fixed by the signer, configurable by the admin.\n  //  6. Whether or not requests for CA certificates are allowed.\n  optional string signerName = 7;\n\n  // expirationSeconds is the requested duration of validity of the issued\n  // certificate. The certificate signer may issue a certificate with a different\n  // validity duration so a client must check the delta between the notBefore and\n  // and notAfter fields in the issued certificate to determine the actual duration.\n  //\n  // The v1.22+ in-tree implementations of the well-known Kubernetes signers will\n  // honor this field as long as the requested duration is not greater than the\n  // maximum duration they will honor per the --cluster-signing-duration CLI\n  // flag to the Kubernetes controller manager.\n  //\n  // Certificate signers may not honor this field for various reasons:\n  //\n  //   1. Old signer that is unaware of the field (such as the in-tree\n  //      implementations prior to v1.22)\n  //   2. Signer whose configured maximum is shorter than the requested duration\n  //   3. Signer whose configured minimum is longer than the requested duration\n  //\n  // The minimum valid value for expirationSeconds is 600, i.e. 10 minutes.\n  //\n  // +optional\n  optional int32 expirationSeconds = 8;\n\n  // usages specifies a set of key usages requested in the issued certificate.\n  //\n  // Requests for TLS client certificates typically request: \"digital signature\", \"key encipherment\", \"client auth\".\n  //\n  // Requests for TLS serving certificates typically request: \"key encipherment\", \"digital signature\", \"server auth\".\n  //\n  // Valid values are:\n  //  \"signing\", \"digital signature\", \"content commitment\",\n  //  \"key encipherment\", \"key agreement\", \"data encipherment\",\n  //  \"cert sign\", \"crl sign\", \"encipher only\", \"decipher only\", \"any\",\n  //  \"server auth\", \"client auth\",\n  //  \"code signing\", \"email protection\", \"s/mime\",\n  //  \"ipsec end system\", \"ipsec tunnel\", \"ipsec user\",\n  //  \"timestamping\", \"ocsp signing\", \"microsoft sgc\", \"netscape sgc\"\n  // +listType=atomic\n  repeated string usages = 5;\n\n  // username contains the name of the user that created the CertificateSigningRequest.\n  // Populated by the API server on creation and immutable.\n  // +optional\n  optional string username = 2;\n\n  // uid contains the uid of the user that created the CertificateSigningRequest.\n  // Populated by the API server on creation and immutable.\n  // +optional\n  optional string uid = 3;\n\n  // groups contains group membership of the user that created the CertificateSigningRequest.\n  // Populated by the API server on creation and immutable.\n  // +listType=atomic\n  // +optional\n  repeated string groups = 4;\n\n  // extra contains extra attributes of the user that created the CertificateSigningRequest.\n  // Populated by the API server on creation and immutable.\n  // +optional\n  map<string, ExtraValue> extra = 6;\n}\n\n// CertificateSigningRequestStatus contains conditions used to indicate\n// approved/denied/failed status of the request, and the issued certificate.\nmessage CertificateSigningRequestStatus {\n  // conditions applied to the request. Known conditions are \"Approved\", \"Denied\", and \"Failed\".\n  // +listType=map\n  // +listMapKey=type\n  // +optional\n  repeated CertificateSigningRequestCondition conditions = 1;\n\n  // certificate is populated with an issued certificate by the signer after an Approved condition is present.\n  // This field is set via the /status subresource. Once populated, this field is immutable.\n  //\n  // If the certificate signing request is denied, a condition of type \"Denied\" is added and this field remains empty.\n  // If the signer cannot issue the certificate, a condition of type \"Failed\" is added and this field remains empty.\n  //\n  // Validation requirements:\n  //  1. certificate must contain one or more PEM blocks.\n  //  2. All PEM blocks must have the \"CERTIFICATE\" label, contain no headers, and the encoded data\n  //   must be a BER-encoded ASN.1 Certificate structure as described in section 4 of RFC5280.\n  //  3. Non-PEM content may appear before or after the \"CERTIFICATE\" PEM blocks and is unvalidated,\n  //   to allow for explanatory text as described in section 5.2 of RFC7468.\n  //\n  // If more than one PEM block is present, and the definition of the requested spec.signerName\n  // does not indicate otherwise, the first block is the issued certificate,\n  // and subsequent blocks should be treated as intermediate certificates and presented in TLS handshakes.\n  //\n  // The certificate is encoded in PEM format.\n  //\n  // When serialized as JSON or YAML, the data is additionally base64-encoded, so it consists of:\n  //\n  //     base64(\n  //     -----BEGIN CERTIFICATE-----\n  //     ...\n  //     -----END CERTIFICATE-----\n  //     )\n  //\n  // +listType=atomic\n  // +optional\n  optional bytes certificate = 2;\n}\n\n// ExtraValue masks the value so protobuf can generate\n// +protobuf.nullable=true\n// +protobuf.options.(gogoproto.goproto_stringer)=false\nmessage ExtraValue {\n  // items, if empty, will result in an empty slice\n\n  repeated string items = 1;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1/register.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"certificates.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1\"}\n\n// Kind takes an unqualified kind and returns a Group qualified GroupKind\nfunc Kind(kind string) schema.GroupKind {\n\treturn SchemeGroupVersion.WithKind(kind).GroupKind()\n}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// SchemeBuilder is the scheme builder with scheme init functions to run for this API package\n\tSchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)\n\n\tlocalSchemeBuilder = &SchemeBuilder\n\n\t// AddToScheme is a global function that registers this API group & version to a scheme\n\tAddToScheme = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&CertificateSigningRequest{},\n\t\t&CertificateSigningRequestList{},\n\t)\n\n\t// Add the watch version that applies\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1/types.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +genclient:method=UpdateApproval,verb=update,subresource=approval,input=k8s.io/api/certificates/v1.CertificateSigningRequest,result=k8s.io/api/certificates/v1.CertificateSigningRequest\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.19\n\n// CertificateSigningRequest objects provide a mechanism to obtain x509 certificates\n// by submitting a certificate signing request, and having it asynchronously approved and issued.\n//\n// Kubelets use this API to obtain:\n//  1. client certificates to authenticate to kube-apiserver (with the \"kubernetes.io/kube-apiserver-client-kubelet\" signerName).\n//  2. serving certificates for TLS endpoints kube-apiserver can connect to securely (with the \"kubernetes.io/kubelet-serving\" signerName).\n//\n// This API can be used to request client certificates to authenticate to kube-apiserver\n// (with the \"kubernetes.io/kube-apiserver-client\" signerName),\n// or to obtain certificates from custom non-Kubernetes signers.\ntype CertificateSigningRequest struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec contains the certificate request, and is immutable after creation.\n\t// Only the request, signerName, expirationSeconds, and usages fields can be set on creation.\n\t// Other fields are derived by Kubernetes and cannot be modified by users.\n\tSpec CertificateSigningRequestSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// status contains information about whether the request is approved or denied,\n\t// and the certificate issued by the signer, or the failure condition indicating signer failure.\n\t// +optional\n\tStatus CertificateSigningRequestStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// CertificateSigningRequestSpec contains the certificate request.\ntype CertificateSigningRequestSpec struct {\n\t// request contains an x509 certificate signing request encoded in a \"CERTIFICATE REQUEST\" PEM block.\n\t// When serialized as JSON or YAML, the data is additionally base64-encoded.\n\t// +listType=atomic\n\tRequest []byte `json:\"request\" protobuf:\"bytes,1,opt,name=request\"`\n\n\t// signerName indicates the requested signer, and is a qualified name.\n\t//\n\t// List/watch requests for CertificateSigningRequests can filter on this field using a \"spec.signerName=NAME\" fieldSelector.\n\t//\n\t// Well-known Kubernetes signers are:\n\t//  1. \"kubernetes.io/kube-apiserver-client\": issues client certificates that can be used to authenticate to kube-apiserver.\n\t//   Requests for this signer are never auto-approved by kube-controller-manager, can be issued by the \"csrsigning\" controller in kube-controller-manager.\n\t//  2. \"kubernetes.io/kube-apiserver-client-kubelet\": issues client certificates that kubelets use to authenticate to kube-apiserver.\n\t//   Requests for this signer can be auto-approved by the \"csrapproving\" controller in kube-controller-manager, and can be issued by the \"csrsigning\" controller in kube-controller-manager.\n\t//  3. \"kubernetes.io/kubelet-serving\" issues serving certificates that kubelets use to serve TLS endpoints, which kube-apiserver can connect to securely.\n\t//   Requests for this signer are never auto-approved by kube-controller-manager, and can be issued by the \"csrsigning\" controller in kube-controller-manager.\n\t//\n\t// More details are available at https://k8s.io/docs/reference/access-authn-authz/certificate-signing-requests/#kubernetes-signers\n\t//\n\t// Custom signerNames can also be specified. The signer defines:\n\t//  1. Trust distribution: how trust (CA bundles) are distributed.\n\t//  2. Permitted subjects: and behavior when a disallowed subject is requested.\n\t//  3. Required, permitted, or forbidden x509 extensions in the request (including whether subjectAltNames are allowed, which types, restrictions on allowed values) and behavior when a disallowed extension is requested.\n\t//  4. Required, permitted, or forbidden key usages / extended key usages.\n\t//  5. Expiration/certificate lifetime: whether it is fixed by the signer, configurable by the admin.\n\t//  6. Whether or not requests for CA certificates are allowed.\n\tSignerName string `json:\"signerName\" protobuf:\"bytes,7,opt,name=signerName\"`\n\n\t// expirationSeconds is the requested duration of validity of the issued\n\t// certificate. The certificate signer may issue a certificate with a different\n\t// validity duration so a client must check the delta between the notBefore and\n\t// and notAfter fields in the issued certificate to determine the actual duration.\n\t//\n\t// The v1.22+ in-tree implementations of the well-known Kubernetes signers will\n\t// honor this field as long as the requested duration is not greater than the\n\t// maximum duration they will honor per the --cluster-signing-duration CLI\n\t// flag to the Kubernetes controller manager.\n\t//\n\t// Certificate signers may not honor this field for various reasons:\n\t//\n\t//   1. Old signer that is unaware of the field (such as the in-tree\n\t//      implementations prior to v1.22)\n\t//   2. Signer whose configured maximum is shorter than the requested duration\n\t//   3. Signer whose configured minimum is longer than the requested duration\n\t//\n\t// The minimum valid value for expirationSeconds is 600, i.e. 10 minutes.\n\t//\n\t// +optional\n\tExpirationSeconds *int32 `json:\"expirationSeconds,omitempty\" protobuf:\"varint,8,opt,name=expirationSeconds\"`\n\n\t// usages specifies a set of key usages requested in the issued certificate.\n\t//\n\t// Requests for TLS client certificates typically request: \"digital signature\", \"key encipherment\", \"client auth\".\n\t//\n\t// Requests for TLS serving certificates typically request: \"key encipherment\", \"digital signature\", \"server auth\".\n\t//\n\t// Valid values are:\n\t//  \"signing\", \"digital signature\", \"content commitment\",\n\t//  \"key encipherment\", \"key agreement\", \"data encipherment\",\n\t//  \"cert sign\", \"crl sign\", \"encipher only\", \"decipher only\", \"any\",\n\t//  \"server auth\", \"client auth\",\n\t//  \"code signing\", \"email protection\", \"s/mime\",\n\t//  \"ipsec end system\", \"ipsec tunnel\", \"ipsec user\",\n\t//  \"timestamping\", \"ocsp signing\", \"microsoft sgc\", \"netscape sgc\"\n\t// +listType=atomic\n\tUsages []KeyUsage `json:\"usages,omitempty\" protobuf:\"bytes,5,opt,name=usages\"`\n\n\t// username contains the name of the user that created the CertificateSigningRequest.\n\t// Populated by the API server on creation and immutable.\n\t// +optional\n\tUsername string `json:\"username,omitempty\" protobuf:\"bytes,2,opt,name=username\"`\n\t// uid contains the uid of the user that created the CertificateSigningRequest.\n\t// Populated by the API server on creation and immutable.\n\t// +optional\n\tUID string `json:\"uid,omitempty\" protobuf:\"bytes,3,opt,name=uid\"`\n\t// groups contains group membership of the user that created the CertificateSigningRequest.\n\t// Populated by the API server on creation and immutable.\n\t// +listType=atomic\n\t// +optional\n\tGroups []string `json:\"groups,omitempty\" protobuf:\"bytes,4,rep,name=groups\"`\n\t// extra contains extra attributes of the user that created the CertificateSigningRequest.\n\t// Populated by the API server on creation and immutable.\n\t// +optional\n\tExtra map[string]ExtraValue `json:\"extra,omitempty\" protobuf:\"bytes,6,rep,name=extra\"`\n}\n\n// Built in signerName values that are honored by kube-controller-manager.\nconst (\n\t// \"kubernetes.io/kube-apiserver-client\" signer issues client certificates that can be used to authenticate to kube-apiserver.\n\t// Never auto-approved by kube-controller-manager.\n\t// Can be issued by the \"csrsigning\" controller in kube-controller-manager.\n\tKubeAPIServerClientSignerName = \"kubernetes.io/kube-apiserver-client\"\n\n\t// \"kubernetes.io/kube-apiserver-client-kubelet\" issues client certificates that kubelets use to authenticate to kube-apiserver.\n\t// Can be auto-approved by the \"csrapproving\" controller in kube-controller-manager.\n\t// Can be issued by the \"csrsigning\" controller in kube-controller-manager.\n\tKubeAPIServerClientKubeletSignerName = \"kubernetes.io/kube-apiserver-client-kubelet\"\n\n\t// \"kubernetes.io/kubelet-serving\" issues serving certificates that kubelets use to serve TLS endpoints,\n\t// which kube-apiserver can connect to securely.\n\t// Never auto-approved by kube-controller-manager.\n\t// Can be issued by the \"csrsigning\" controller in kube-controller-manager.\n\tKubeletServingSignerName = \"kubernetes.io/kubelet-serving\"\n)\n\n// ExtraValue masks the value so protobuf can generate\n// +protobuf.nullable=true\n// +protobuf.options.(gogoproto.goproto_stringer)=false\ntype ExtraValue []string\n\nfunc (t ExtraValue) String() string {\n\treturn fmt.Sprintf(\"%v\", []string(t))\n}\n\n// CertificateSigningRequestStatus contains conditions used to indicate\n// approved/denied/failed status of the request, and the issued certificate.\ntype CertificateSigningRequestStatus struct {\n\t// conditions applied to the request. Known conditions are \"Approved\", \"Denied\", and \"Failed\".\n\t// +listType=map\n\t// +listMapKey=type\n\t// +optional\n\tConditions []CertificateSigningRequestCondition `json:\"conditions,omitempty\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\t// certificate is populated with an issued certificate by the signer after an Approved condition is present.\n\t// This field is set via the /status subresource. Once populated, this field is immutable.\n\t//\n\t// If the certificate signing request is denied, a condition of type \"Denied\" is added and this field remains empty.\n\t// If the signer cannot issue the certificate, a condition of type \"Failed\" is added and this field remains empty.\n\t//\n\t// Validation requirements:\n\t//  1. certificate must contain one or more PEM blocks.\n\t//  2. All PEM blocks must have the \"CERTIFICATE\" label, contain no headers, and the encoded data\n\t//   must be a BER-encoded ASN.1 Certificate structure as described in section 4 of RFC5280.\n\t//  3. Non-PEM content may appear before or after the \"CERTIFICATE\" PEM blocks and is unvalidated,\n\t//   to allow for explanatory text as described in section 5.2 of RFC7468.\n\t//\n\t// If more than one PEM block is present, and the definition of the requested spec.signerName\n\t// does not indicate otherwise, the first block is the issued certificate,\n\t// and subsequent blocks should be treated as intermediate certificates and presented in TLS handshakes.\n\t//\n\t// The certificate is encoded in PEM format.\n\t//\n\t// When serialized as JSON or YAML, the data is additionally base64-encoded, so it consists of:\n\t//\n\t//     base64(\n\t//     -----BEGIN CERTIFICATE-----\n\t//     ...\n\t//     -----END CERTIFICATE-----\n\t//     )\n\t//\n\t// +listType=atomic\n\t// +optional\n\tCertificate []byte `json:\"certificate,omitempty\" protobuf:\"bytes,2,opt,name=certificate\"`\n}\n\n// RequestConditionType is the type of a CertificateSigningRequestCondition\ntype RequestConditionType string\n\n// Well-known condition types for certificate requests.\nconst (\n\t// Approved indicates the request was approved and should be issued by the signer.\n\tCertificateApproved RequestConditionType = \"Approved\"\n\t// Denied indicates the request was denied and should not be issued by the signer.\n\tCertificateDenied RequestConditionType = \"Denied\"\n\t// Failed indicates the signer failed to issue the certificate.\n\tCertificateFailed RequestConditionType = \"Failed\"\n)\n\n// CertificateSigningRequestCondition describes a condition of a CertificateSigningRequest object\ntype CertificateSigningRequestCondition struct {\n\t// type of the condition. Known conditions are \"Approved\", \"Denied\", and \"Failed\".\n\t//\n\t// An \"Approved\" condition is added via the /approval subresource,\n\t// indicating the request was approved and should be issued by the signer.\n\t//\n\t// A \"Denied\" condition is added via the /approval subresource,\n\t// indicating the request was denied and should not be issued by the signer.\n\t//\n\t// A \"Failed\" condition is added via the /status subresource,\n\t// indicating the signer failed to issue the certificate.\n\t//\n\t// Approved and Denied conditions are mutually exclusive.\n\t// Approved, Denied, and Failed conditions cannot be removed once added.\n\t//\n\t// Only one condition of a given type is allowed.\n\tType RequestConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=RequestConditionType\"`\n\t// status of the condition, one of True, False, Unknown.\n\t// Approved, Denied, and Failed conditions may not be \"False\" or \"Unknown\".\n\tStatus v1.ConditionStatus `json:\"status\" protobuf:\"bytes,6,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus\"`\n\t// reason indicates a brief reason for the request state\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,2,opt,name=reason\"`\n\t// message contains a human readable message with details about the request state\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,3,opt,name=message\"`\n\t// lastUpdateTime is the time of the last update to this condition\n\t// +optional\n\tLastUpdateTime metav1.Time `json:\"lastUpdateTime,omitempty\" protobuf:\"bytes,4,opt,name=lastUpdateTime\"`\n\t// lastTransitionTime is the time the condition last transitioned from one status to another.\n\t// If unset, when a new condition type is added or an existing condition's status is changed,\n\t// the server defaults this to the current time.\n\t// +optional\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,5,opt,name=lastTransitionTime\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.19\n\n// CertificateSigningRequestList is a collection of CertificateSigningRequest objects\ntype CertificateSigningRequestList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is a collection of CertificateSigningRequest objects\n\tItems []CertificateSigningRequest `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// KeyUsage specifies valid usage contexts for keys.\n// See:\n//\n//\thttps://tools.ietf.org/html/rfc5280#section-4.2.1.3\n//\thttps://tools.ietf.org/html/rfc5280#section-4.2.1.12\n//\n// +enum\ntype KeyUsage string\n\n// Valid key usages\nconst (\n\tUsageSigning           KeyUsage = \"signing\"\n\tUsageDigitalSignature  KeyUsage = \"digital signature\"\n\tUsageContentCommitment KeyUsage = \"content commitment\"\n\tUsageKeyEncipherment   KeyUsage = \"key encipherment\"\n\tUsageKeyAgreement      KeyUsage = \"key agreement\"\n\tUsageDataEncipherment  KeyUsage = \"data encipherment\"\n\tUsageCertSign          KeyUsage = \"cert sign\"\n\tUsageCRLSign           KeyUsage = \"crl sign\"\n\tUsageEncipherOnly      KeyUsage = \"encipher only\"\n\tUsageDecipherOnly      KeyUsage = \"decipher only\"\n\tUsageAny               KeyUsage = \"any\"\n\tUsageServerAuth        KeyUsage = \"server auth\"\n\tUsageClientAuth        KeyUsage = \"client auth\"\n\tUsageCodeSigning       KeyUsage = \"code signing\"\n\tUsageEmailProtection   KeyUsage = \"email protection\"\n\tUsageSMIME             KeyUsage = \"s/mime\"\n\tUsageIPsecEndSystem    KeyUsage = \"ipsec end system\"\n\tUsageIPsecTunnel       KeyUsage = \"ipsec tunnel\"\n\tUsageIPsecUser         KeyUsage = \"ipsec user\"\n\tUsageTimestamping      KeyUsage = \"timestamping\"\n\tUsageOCSPSigning       KeyUsage = \"ocsp signing\"\n\tUsageMicrosoftSGC      KeyUsage = \"microsoft sgc\"\n\tUsageNetscapeSGC       KeyUsage = \"netscape sgc\"\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_CertificateSigningRequest = map[string]string{\n\t\"\":       \"CertificateSigningRequest objects provide a mechanism to obtain x509 certificates by submitting a certificate signing request, and having it asynchronously approved and issued.\\n\\nKubelets use this API to obtain:\\n 1. client certificates to authenticate to kube-apiserver (with the \\\"kubernetes.io/kube-apiserver-client-kubelet\\\" signerName).\\n 2. serving certificates for TLS endpoints kube-apiserver can connect to securely (with the \\\"kubernetes.io/kubelet-serving\\\" signerName).\\n\\nThis API can be used to request client certificates to authenticate to kube-apiserver (with the \\\"kubernetes.io/kube-apiserver-client\\\" signerName), or to obtain certificates from custom non-Kubernetes signers.\",\n\t\"spec\":   \"spec contains the certificate request, and is immutable after creation. Only the request, signerName, expirationSeconds, and usages fields can be set on creation. Other fields are derived by Kubernetes and cannot be modified by users.\",\n\t\"status\": \"status contains information about whether the request is approved or denied, and the certificate issued by the signer, or the failure condition indicating signer failure.\",\n}\n\nfunc (CertificateSigningRequest) SwaggerDoc() map[string]string {\n\treturn map_CertificateSigningRequest\n}\n\nvar map_CertificateSigningRequestCondition = map[string]string{\n\t\"\":                   \"CertificateSigningRequestCondition describes a condition of a CertificateSigningRequest object\",\n\t\"type\":               \"type of the condition. Known conditions are \\\"Approved\\\", \\\"Denied\\\", and \\\"Failed\\\".\\n\\nAn \\\"Approved\\\" condition is added via the /approval subresource, indicating the request was approved and should be issued by the signer.\\n\\nA \\\"Denied\\\" condition is added via the /approval subresource, indicating the request was denied and should not be issued by the signer.\\n\\nA \\\"Failed\\\" condition is added via the /status subresource, indicating the signer failed to issue the certificate.\\n\\nApproved and Denied conditions are mutually exclusive. Approved, Denied, and Failed conditions cannot be removed once added.\\n\\nOnly one condition of a given type is allowed.\",\n\t\"status\":             \"status of the condition, one of True, False, Unknown. Approved, Denied, and Failed conditions may not be \\\"False\\\" or \\\"Unknown\\\".\",\n\t\"reason\":             \"reason indicates a brief reason for the request state\",\n\t\"message\":            \"message contains a human readable message with details about the request state\",\n\t\"lastUpdateTime\":     \"lastUpdateTime is the time of the last update to this condition\",\n\t\"lastTransitionTime\": \"lastTransitionTime is the time the condition last transitioned from one status to another. If unset, when a new condition type is added or an existing condition's status is changed, the server defaults this to the current time.\",\n}\n\nfunc (CertificateSigningRequestCondition) SwaggerDoc() map[string]string {\n\treturn map_CertificateSigningRequestCondition\n}\n\nvar map_CertificateSigningRequestList = map[string]string{\n\t\"\":      \"CertificateSigningRequestList is a collection of CertificateSigningRequest objects\",\n\t\"items\": \"items is a collection of CertificateSigningRequest objects\",\n}\n\nfunc (CertificateSigningRequestList) SwaggerDoc() map[string]string {\n\treturn map_CertificateSigningRequestList\n}\n\nvar map_CertificateSigningRequestSpec = map[string]string{\n\t\"\":                  \"CertificateSigningRequestSpec contains the certificate request.\",\n\t\"request\":           \"request contains an x509 certificate signing request encoded in a \\\"CERTIFICATE REQUEST\\\" PEM block. When serialized as JSON or YAML, the data is additionally base64-encoded.\",\n\t\"signerName\":        \"signerName indicates the requested signer, and is a qualified name.\\n\\nList/watch requests for CertificateSigningRequests can filter on this field using a \\\"spec.signerName=NAME\\\" fieldSelector.\\n\\nWell-known Kubernetes signers are:\\n 1. \\\"kubernetes.io/kube-apiserver-client\\\": issues client certificates that can be used to authenticate to kube-apiserver.\\n  Requests for this signer are never auto-approved by kube-controller-manager, can be issued by the \\\"csrsigning\\\" controller in kube-controller-manager.\\n 2. \\\"kubernetes.io/kube-apiserver-client-kubelet\\\": issues client certificates that kubelets use to authenticate to kube-apiserver.\\n  Requests for this signer can be auto-approved by the \\\"csrapproving\\\" controller in kube-controller-manager, and can be issued by the \\\"csrsigning\\\" controller in kube-controller-manager.\\n 3. \\\"kubernetes.io/kubelet-serving\\\" issues serving certificates that kubelets use to serve TLS endpoints, which kube-apiserver can connect to securely.\\n  Requests for this signer are never auto-approved by kube-controller-manager, and can be issued by the \\\"csrsigning\\\" controller in kube-controller-manager.\\n\\nMore details are available at https://k8s.io/docs/reference/access-authn-authz/certificate-signing-requests/#kubernetes-signers\\n\\nCustom signerNames can also be specified. The signer defines:\\n 1. Trust distribution: how trust (CA bundles) are distributed.\\n 2. Permitted subjects: and behavior when a disallowed subject is requested.\\n 3. Required, permitted, or forbidden x509 extensions in the request (including whether subjectAltNames are allowed, which types, restrictions on allowed values) and behavior when a disallowed extension is requested.\\n 4. Required, permitted, or forbidden key usages / extended key usages.\\n 5. Expiration/certificate lifetime: whether it is fixed by the signer, configurable by the admin.\\n 6. Whether or not requests for CA certificates are allowed.\",\n\t\"expirationSeconds\": \"expirationSeconds is the requested duration of validity of the issued certificate. The certificate signer may issue a certificate with a different validity duration so a client must check the delta between the notBefore and and notAfter fields in the issued certificate to determine the actual duration.\\n\\nThe v1.22+ in-tree implementations of the well-known Kubernetes signers will honor this field as long as the requested duration is not greater than the maximum duration they will honor per the --cluster-signing-duration CLI flag to the Kubernetes controller manager.\\n\\nCertificate signers may not honor this field for various reasons:\\n\\n  1. Old signer that is unaware of the field (such as the in-tree\\n     implementations prior to v1.22)\\n  2. Signer whose configured maximum is shorter than the requested duration\\n  3. Signer whose configured minimum is longer than the requested duration\\n\\nThe minimum valid value for expirationSeconds is 600, i.e. 10 minutes.\",\n\t\"usages\":            \"usages specifies a set of key usages requested in the issued certificate.\\n\\nRequests for TLS client certificates typically request: \\\"digital signature\\\", \\\"key encipherment\\\", \\\"client auth\\\".\\n\\nRequests for TLS serving certificates typically request: \\\"key encipherment\\\", \\\"digital signature\\\", \\\"server auth\\\".\\n\\nValid values are:\\n \\\"signing\\\", \\\"digital signature\\\", \\\"content commitment\\\",\\n \\\"key encipherment\\\", \\\"key agreement\\\", \\\"data encipherment\\\",\\n \\\"cert sign\\\", \\\"crl sign\\\", \\\"encipher only\\\", \\\"decipher only\\\", \\\"any\\\",\\n \\\"server auth\\\", \\\"client auth\\\",\\n \\\"code signing\\\", \\\"email protection\\\", \\\"s/mime\\\",\\n \\\"ipsec end system\\\", \\\"ipsec tunnel\\\", \\\"ipsec user\\\",\\n \\\"timestamping\\\", \\\"ocsp signing\\\", \\\"microsoft sgc\\\", \\\"netscape sgc\\\"\",\n\t\"username\":          \"username contains the name of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.\",\n\t\"uid\":               \"uid contains the uid of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.\",\n\t\"groups\":            \"groups contains group membership of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.\",\n\t\"extra\":             \"extra contains extra attributes of the user that created the CertificateSigningRequest. Populated by the API server on creation and immutable.\",\n}\n\nfunc (CertificateSigningRequestSpec) SwaggerDoc() map[string]string {\n\treturn map_CertificateSigningRequestSpec\n}\n\nvar map_CertificateSigningRequestStatus = map[string]string{\n\t\"\":            \"CertificateSigningRequestStatus contains conditions used to indicate approved/denied/failed status of the request, and the issued certificate.\",\n\t\"conditions\":  \"conditions applied to the request. Known conditions are \\\"Approved\\\", \\\"Denied\\\", and \\\"Failed\\\".\",\n\t\"certificate\": \"certificate is populated with an issued certificate by the signer after an Approved condition is present. This field is set via the /status subresource. Once populated, this field is immutable.\\n\\nIf the certificate signing request is denied, a condition of type \\\"Denied\\\" is added and this field remains empty. If the signer cannot issue the certificate, a condition of type \\\"Failed\\\" is added and this field remains empty.\\n\\nValidation requirements:\\n 1. certificate must contain one or more PEM blocks.\\n 2. All PEM blocks must have the \\\"CERTIFICATE\\\" label, contain no headers, and the encoded data\\n  must be a BER-encoded ASN.1 Certificate structure as described in section 4 of RFC5280.\\n 3. Non-PEM content may appear before or after the \\\"CERTIFICATE\\\" PEM blocks and is unvalidated,\\n  to allow for explanatory text as described in section 5.2 of RFC7468.\\n\\nIf more than one PEM block is present, and the definition of the requested spec.signerName does not indicate otherwise, the first block is the issued certificate, and subsequent blocks should be treated as intermediate certificates and presented in TLS handshakes.\\n\\nThe certificate is encoded in PEM format.\\n\\nWhen serialized as JSON or YAML, the data is additionally base64-encoded, so it consists of:\\n\\n    base64(\",\n}\n\nfunc (CertificateSigningRequestStatus) SwaggerDoc() map[string]string {\n\treturn map_CertificateSigningRequestStatus\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CertificateSigningRequest) DeepCopyInto(out *CertificateSigningRequest) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateSigningRequest.\nfunc (in *CertificateSigningRequest) DeepCopy() *CertificateSigningRequest {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CertificateSigningRequest)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CertificateSigningRequest) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CertificateSigningRequestCondition) DeepCopyInto(out *CertificateSigningRequestCondition) {\n\t*out = *in\n\tin.LastUpdateTime.DeepCopyInto(&out.LastUpdateTime)\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateSigningRequestCondition.\nfunc (in *CertificateSigningRequestCondition) DeepCopy() *CertificateSigningRequestCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CertificateSigningRequestCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CertificateSigningRequestList) DeepCopyInto(out *CertificateSigningRequestList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]CertificateSigningRequest, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateSigningRequestList.\nfunc (in *CertificateSigningRequestList) DeepCopy() *CertificateSigningRequestList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CertificateSigningRequestList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CertificateSigningRequestList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CertificateSigningRequestSpec) DeepCopyInto(out *CertificateSigningRequestSpec) {\n\t*out = *in\n\tif in.Request != nil {\n\t\tin, out := &in.Request, &out.Request\n\t\t*out = make([]byte, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ExpirationSeconds != nil {\n\t\tin, out := &in.ExpirationSeconds, &out.ExpirationSeconds\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Usages != nil {\n\t\tin, out := &in.Usages, &out.Usages\n\t\t*out = make([]KeyUsage, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Groups != nil {\n\t\tin, out := &in.Groups, &out.Groups\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Extra != nil {\n\t\tin, out := &in.Extra, &out.Extra\n\t\t*out = make(map[string]ExtraValue, len(*in))\n\t\tfor key, val := range *in {\n\t\t\tvar outVal []string\n\t\t\tif val == nil {\n\t\t\t\t(*out)[key] = nil\n\t\t\t} else {\n\t\t\t\tin, out := &val, &outVal\n\t\t\t\t*out = make(ExtraValue, len(*in))\n\t\t\t\tcopy(*out, *in)\n\t\t\t}\n\t\t\t(*out)[key] = outVal\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateSigningRequestSpec.\nfunc (in *CertificateSigningRequestSpec) DeepCopy() *CertificateSigningRequestSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CertificateSigningRequestSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CertificateSigningRequestStatus) DeepCopyInto(out *CertificateSigningRequestStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]CertificateSigningRequestCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Certificate != nil {\n\t\tin, out := &in.Certificate, &out.Certificate\n\t\t*out = make([]byte, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateSigningRequestStatus.\nfunc (in *CertificateSigningRequestStatus) DeepCopy() *CertificateSigningRequestStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CertificateSigningRequestStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in ExtraValue) DeepCopyInto(out *ExtraValue) {\n\t{\n\t\tin := &in\n\t\t*out = make(ExtraValue, len(*in))\n\t\tcopy(*out, *in)\n\t\treturn\n\t}\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtraValue.\nfunc (in ExtraValue) DeepCopy() ExtraValue {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExtraValue)\n\tin.DeepCopyInto(out)\n\treturn *out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *CertificateSigningRequest) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *CertificateSigningRequestList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 19\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1alpha1/doc.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\n// +groupName=certificates.k8s.io\n\npackage v1alpha1 // import \"k8s.io/api/certificates/v1alpha1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1alpha1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/certificates/v1alpha1/generated.proto\n\npackage v1alpha1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *ClusterTrustBundle) Reset()      { *m = ClusterTrustBundle{} }\nfunc (*ClusterTrustBundle) ProtoMessage() {}\nfunc (*ClusterTrustBundle) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_f73d5fe56c015bb8, []int{0}\n}\nfunc (m *ClusterTrustBundle) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ClusterTrustBundle) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ClusterTrustBundle) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ClusterTrustBundle.Merge(m, src)\n}\nfunc (m *ClusterTrustBundle) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ClusterTrustBundle) XXX_DiscardUnknown() {\n\txxx_messageInfo_ClusterTrustBundle.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ClusterTrustBundle proto.InternalMessageInfo\n\nfunc (m *ClusterTrustBundleList) Reset()      { *m = ClusterTrustBundleList{} }\nfunc (*ClusterTrustBundleList) ProtoMessage() {}\nfunc (*ClusterTrustBundleList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_f73d5fe56c015bb8, []int{1}\n}\nfunc (m *ClusterTrustBundleList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ClusterTrustBundleList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ClusterTrustBundleList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ClusterTrustBundleList.Merge(m, src)\n}\nfunc (m *ClusterTrustBundleList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ClusterTrustBundleList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ClusterTrustBundleList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ClusterTrustBundleList proto.InternalMessageInfo\n\nfunc (m *ClusterTrustBundleSpec) Reset()      { *m = ClusterTrustBundleSpec{} }\nfunc (*ClusterTrustBundleSpec) ProtoMessage() {}\nfunc (*ClusterTrustBundleSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_f73d5fe56c015bb8, []int{2}\n}\nfunc (m *ClusterTrustBundleSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ClusterTrustBundleSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ClusterTrustBundleSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ClusterTrustBundleSpec.Merge(m, src)\n}\nfunc (m *ClusterTrustBundleSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ClusterTrustBundleSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ClusterTrustBundleSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ClusterTrustBundleSpec proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*ClusterTrustBundle)(nil), \"k8s.io.api.certificates.v1alpha1.ClusterTrustBundle\")\n\tproto.RegisterType((*ClusterTrustBundleList)(nil), \"k8s.io.api.certificates.v1alpha1.ClusterTrustBundleList\")\n\tproto.RegisterType((*ClusterTrustBundleSpec)(nil), \"k8s.io.api.certificates.v1alpha1.ClusterTrustBundleSpec\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/certificates/v1alpha1/generated.proto\", fileDescriptor_f73d5fe56c015bb8)\n}\n\nvar fileDescriptor_f73d5fe56c015bb8 = []byte{\n\t// 437 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x93, 0xcf, 0x6a, 0xdb, 0x40,\n\t0x10, 0xc6, 0xb5, 0x69, 0x02, 0xc9, 0xba, 0x85, 0xa2, 0x42, 0x31, 0x3e, 0x6c, 0x8c, 0x4f, 0xb9,\n\t0x74, 0x37, 0x36, 0x69, 0xc9, 0x59, 0x85, 0x42, 0xa1, 0x7f, 0x40, 0xe9, 0xa5, 0xa1, 0x87, 0xae,\n\t0xd7, 0x13, 0x79, 0x6b, 0x4b, 0x5a, 0x76, 0x57, 0x86, 0xde, 0x0a, 0x7d, 0x81, 0x3e, 0x96, 0x8f,\n\t0x69, 0x4f, 0x39, 0x85, 0x5a, 0x7d, 0x91, 0xb2, 0x6b, 0xd9, 0x12, 0x55, 0x8b, 0x4b, 0x6e, 0x9a,\n\t0xd1, 0xfc, 0xbe, 0x6f, 0xbe, 0x11, 0xc2, 0xa7, 0xb3, 0x73, 0x43, 0x65, 0xce, 0xb8, 0x92, 0x4c,\n\t0x80, 0xb6, 0xf2, 0x4a, 0x0a, 0x6e, 0xc1, 0xb0, 0xc5, 0x90, 0xcf, 0xd5, 0x94, 0x0f, 0x59, 0x02,\n\t0x19, 0x68, 0x6e, 0x61, 0x42, 0x95, 0xce, 0x6d, 0x1e, 0xf6, 0xd7, 0x04, 0xe5, 0x4a, 0xd2, 0x26,\n\t0x41, 0x37, 0x44, 0xef, 0x49, 0x22, 0xed, 0xb4, 0x18, 0x53, 0x91, 0xa7, 0x2c, 0xc9, 0x93, 0x9c,\n\t0x79, 0x70, 0x5c, 0x5c, 0xf9, 0xca, 0x17, 0xfe, 0x69, 0x2d, 0xd8, 0x3b, 0xab, 0x57, 0x48, 0xb9,\n\t0x98, 0xca, 0x0c, 0xf4, 0x67, 0xa6, 0x66, 0x89, 0x6b, 0x18, 0x96, 0x82, 0xe5, 0x6c, 0xd1, 0x5a,\n\t0xa3, 0xc7, 0xfe, 0x45, 0xe9, 0x22, 0xb3, 0x32, 0x85, 0x16, 0xf0, 0x6c, 0x17, 0x60, 0xc4, 0x14,\n\t0x52, 0xfe, 0x27, 0x37, 0xf8, 0x81, 0x70, 0xf8, 0x7c, 0x5e, 0x18, 0x0b, 0xfa, 0x9d, 0x2e, 0x8c,\n\t0x8d, 0x8a, 0x6c, 0x32, 0x87, 0xf0, 0x23, 0x3e, 0x74, 0xab, 0x4d, 0xb8, 0xe5, 0x5d, 0xd4, 0x47,\n\t0x27, 0x9d, 0xd1, 0x29, 0xad, 0x2f, 0xb3, 0x75, 0xa0, 0x6a, 0x96, 0xb8, 0x86, 0xa1, 0x6e, 0x9a,\n\t0x2e, 0x86, 0xf4, 0xed, 0xf8, 0x13, 0x08, 0xfb, 0x1a, 0x2c, 0x8f, 0xc2, 0xe5, 0xed, 0x71, 0x50,\n\t0xde, 0x1e, 0xe3, 0xba, 0x17, 0x6f, 0x55, 0xc3, 0x4b, 0xbc, 0x6f, 0x14, 0x88, 0xee, 0x9e, 0x57,\n\t0x3f, 0xa7, 0xbb, 0xee, 0x4e, 0xdb, 0x5b, 0x5e, 0x28, 0x10, 0xd1, 0xfd, 0xca, 0x65, 0xdf, 0x55,\n\t0xb1, 0xd7, 0x1c, 0x7c, 0x47, 0xf8, 0x71, 0x7b, 0xfc, 0x95, 0x34, 0x36, 0xfc, 0xd0, 0x0a, 0x46,\n\t0xff, 0x2f, 0x98, 0xa3, 0x7d, 0xac, 0x87, 0x95, 0xe1, 0xe1, 0xa6, 0xd3, 0x08, 0xf5, 0x1e, 0x1f,\n\t0x48, 0x0b, 0xa9, 0xe9, 0xee, 0xf5, 0xef, 0x9d, 0x74, 0x46, 0x67, 0x77, 0x49, 0x15, 0x3d, 0xa8,\n\t0x0c, 0x0e, 0x5e, 0x3a, 0xa9, 0x78, 0xad, 0x38, 0xf8, 0xfa, 0xd7, 0x4c, 0x2e, 0x74, 0x38, 0xc2,\n\t0xd8, 0xc8, 0x24, 0x03, 0xfd, 0x86, 0xa7, 0xe0, 0x53, 0x1d, 0xd5, 0xc7, 0xbf, 0xd8, 0xbe, 0x89,\n\t0x1b, 0x53, 0xe1, 0x53, 0xdc, 0xb1, 0xb5, 0x8c, 0xff, 0x0a, 0x47, 0xd1, 0xa3, 0x0a, 0xea, 0x34,\n\t0x1c, 0xe2, 0xe6, 0x5c, 0xf4, 0x62, 0xb9, 0x22, 0xc1, 0xf5, 0x8a, 0x04, 0x37, 0x2b, 0x12, 0x7c,\n\t0x29, 0x09, 0x5a, 0x96, 0x04, 0x5d, 0x97, 0x04, 0xdd, 0x94, 0x04, 0xfd, 0x2c, 0x09, 0xfa, 0xf6,\n\t0x8b, 0x04, 0x97, 0xfd, 0x5d, 0xbf, 0xdd, 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd4, 0x1c, 0xcb,\n\t0xdd, 0x99, 0x03, 0x00, 0x00,\n}\n\nfunc (m *ClusterTrustBundle) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ClusterTrustBundle) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ClusterTrustBundle) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ClusterTrustBundleList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ClusterTrustBundleList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ClusterTrustBundleList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ClusterTrustBundleSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ClusterTrustBundleSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ClusterTrustBundleSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.TrustBundle)\n\tcopy(dAtA[i:], m.TrustBundle)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.TrustBundle)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.SignerName)\n\tcopy(dAtA[i:], m.SignerName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.SignerName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *ClusterTrustBundle) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ClusterTrustBundleList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ClusterTrustBundleSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.SignerName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.TrustBundle)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *ClusterTrustBundle) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ClusterTrustBundle{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ClusterTrustBundleSpec\", \"ClusterTrustBundleSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ClusterTrustBundleList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ClusterTrustBundle{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ClusterTrustBundle\", \"ClusterTrustBundle\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ClusterTrustBundleList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ClusterTrustBundleSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ClusterTrustBundleSpec{`,\n\t\t`SignerName:` + fmt.Sprintf(\"%v\", this.SignerName) + `,`,\n\t\t`TrustBundle:` + fmt.Sprintf(\"%v\", this.TrustBundle) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *ClusterTrustBundle) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterTrustBundle: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterTrustBundle: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ClusterTrustBundleList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterTrustBundleList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterTrustBundleList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ClusterTrustBundle{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ClusterTrustBundleSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterTrustBundleSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterTrustBundleSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SignerName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SignerName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TrustBundle\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TrustBundle = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1alpha1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.certificates.v1alpha1;\n\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/certificates/v1alpha1\";\n\n// ClusterTrustBundle is a cluster-scoped container for X.509 trust anchors\n// (root certificates).\n//\n// ClusterTrustBundle objects are considered to be readable by any authenticated\n// user in the cluster, because they can be mounted by pods using the\n// `clusterTrustBundle` projection.  All service accounts have read access to\n// ClusterTrustBundles by default.  Users who only have namespace-level access\n// to a cluster can read ClusterTrustBundles by impersonating a serviceaccount\n// that they have access to.\n//\n// It can be optionally associated with a particular assigner, in which case it\n// contains one valid set of trust anchors for that signer. Signers may have\n// multiple associated ClusterTrustBundles; each is an independent set of trust\n// anchors for that signer. Admission control is used to enforce that only users\n// with permissions on the signer can create or modify the corresponding bundle.\nmessage ClusterTrustBundle {\n  // metadata contains the object metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec contains the signer (if any) and trust anchors.\n  optional ClusterTrustBundleSpec spec = 2;\n}\n\n// ClusterTrustBundleList is a collection of ClusterTrustBundle objects\nmessage ClusterTrustBundleList {\n  // metadata contains the list metadata.\n  //\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is a collection of ClusterTrustBundle objects\n  repeated ClusterTrustBundle items = 2;\n}\n\n// ClusterTrustBundleSpec contains the signer and trust anchors.\nmessage ClusterTrustBundleSpec {\n  // signerName indicates the associated signer, if any.\n  //\n  // In order to create or update a ClusterTrustBundle that sets signerName,\n  // you must have the following cluster-scoped permission:\n  // group=certificates.k8s.io resource=signers resourceName=<the signer name>\n  // verb=attest.\n  //\n  // If signerName is not empty, then the ClusterTrustBundle object must be\n  // named with the signer name as a prefix (translating slashes to colons).\n  // For example, for the signer name `example.com/foo`, valid\n  // ClusterTrustBundle object names include `example.com:foo:abc` and\n  // `example.com:foo:v1`.\n  //\n  // If signerName is empty, then the ClusterTrustBundle object's name must\n  // not have such a prefix.\n  //\n  // List/watch requests for ClusterTrustBundles can filter on this field\n  // using a `spec.signerName=NAME` field selector.\n  //\n  // +optional\n  optional string signerName = 1;\n\n  // trustBundle contains the individual X.509 trust anchors for this\n  // bundle, as PEM bundle of PEM-wrapped, DER-formatted X.509 certificates.\n  //\n  // The data must consist only of PEM certificate blocks that parse as valid\n  // X.509 certificates.  Each certificate must include a basic constraints\n  // extension with the CA bit set.  The API server will reject objects that\n  // contain duplicate certificates, or that use PEM block headers.\n  //\n  // Users of ClusterTrustBundles, including Kubelet, are free to reorder and\n  // deduplicate certificate blocks in this file according to their own logic,\n  // as well as to drop PEM block headers and inter-block data.\n  optional string trustBundle = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1alpha1/register.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"certificates.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1alpha1\"}\n\n// Kind takes an unqualified kind and returns a Group qualified GroupKind\nfunc Kind(kind string) schema.GroupKind {\n\treturn SchemeGroupVersion.WithKind(kind).GroupKind()\n}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// SchemeBuilder is the scheme builder with scheme init functions to run for this API package\n\tSchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)\n\n\tlocalSchemeBuilder = &SchemeBuilder\n\n\t// AddToScheme is a global function that registers this API group & version to a scheme\n\tAddToScheme = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&ClusterTrustBundle{},\n\t\t&ClusterTrustBundleList{},\n\t)\n\n\t// Add the watch version that applies\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1alpha1/types.go",
    "content": "/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:prerelease-lifecycle-gen:introduced=1.26\n// +k8s:prerelease-lifecycle-gen:deprecated=1.34\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// ClusterTrustBundle is a cluster-scoped container for X.509 trust anchors\n// (root certificates).\n//\n// ClusterTrustBundle objects are considered to be readable by any authenticated\n// user in the cluster, because they can be mounted by pods using the\n// `clusterTrustBundle` projection.  All service accounts have read access to\n// ClusterTrustBundles by default.  Users who only have namespace-level access\n// to a cluster can read ClusterTrustBundles by impersonating a serviceaccount\n// that they have access to.\n//\n// It can be optionally associated with a particular assigner, in which case it\n// contains one valid set of trust anchors for that signer. Signers may have\n// multiple associated ClusterTrustBundles; each is an independent set of trust\n// anchors for that signer. Admission control is used to enforce that only users\n// with permissions on the signer can create or modify the corresponding bundle.\ntype ClusterTrustBundle struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// metadata contains the object metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec contains the signer (if any) and trust anchors.\n\tSpec ClusterTrustBundleSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n}\n\n// ClusterTrustBundleSpec contains the signer and trust anchors.\ntype ClusterTrustBundleSpec struct {\n\t// signerName indicates the associated signer, if any.\n\t//\n\t// In order to create or update a ClusterTrustBundle that sets signerName,\n\t// you must have the following cluster-scoped permission:\n\t// group=certificates.k8s.io resource=signers resourceName=<the signer name>\n\t// verb=attest.\n\t//\n\t// If signerName is not empty, then the ClusterTrustBundle object must be\n\t// named with the signer name as a prefix (translating slashes to colons).\n\t// For example, for the signer name `example.com/foo`, valid\n\t// ClusterTrustBundle object names include `example.com:foo:abc` and\n\t// `example.com:foo:v1`.\n\t//\n\t// If signerName is empty, then the ClusterTrustBundle object's name must\n\t// not have such a prefix.\n\t//\n\t// List/watch requests for ClusterTrustBundles can filter on this field\n\t// using a `spec.signerName=NAME` field selector.\n\t//\n\t// +optional\n\tSignerName string `json:\"signerName,omitempty\" protobuf:\"bytes,1,opt,name=signerName\"`\n\n\t// trustBundle contains the individual X.509 trust anchors for this\n\t// bundle, as PEM bundle of PEM-wrapped, DER-formatted X.509 certificates.\n\t//\n\t// The data must consist only of PEM certificate blocks that parse as valid\n\t// X.509 certificates.  Each certificate must include a basic constraints\n\t// extension with the CA bit set.  The API server will reject objects that\n\t// contain duplicate certificates, or that use PEM block headers.\n\t//\n\t// Users of ClusterTrustBundles, including Kubelet, are free to reorder and\n\t// deduplicate certificate blocks in this file according to their own logic,\n\t// as well as to drop PEM block headers and inter-block data.\n\tTrustBundle string `json:\"trustBundle\" protobuf:\"bytes,2,opt,name=trustBundle\"`\n}\n\n// +k8s:prerelease-lifecycle-gen:introduced=1.26\n// +k8s:prerelease-lifecycle-gen:deprecated=1.34\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// ClusterTrustBundleList is a collection of ClusterTrustBundle objects\ntype ClusterTrustBundleList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// metadata contains the list metadata.\n\t//\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is a collection of ClusterTrustBundle objects\n\tItems []ClusterTrustBundle `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1alpha1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_ClusterTrustBundle = map[string]string{\n\t\"\":         \"ClusterTrustBundle is a cluster-scoped container for X.509 trust anchors (root certificates).\\n\\nClusterTrustBundle objects are considered to be readable by any authenticated user in the cluster, because they can be mounted by pods using the `clusterTrustBundle` projection.  All service accounts have read access to ClusterTrustBundles by default.  Users who only have namespace-level access to a cluster can read ClusterTrustBundles by impersonating a serviceaccount that they have access to.\\n\\nIt can be optionally associated with a particular assigner, in which case it contains one valid set of trust anchors for that signer. Signers may have multiple associated ClusterTrustBundles; each is an independent set of trust anchors for that signer. Admission control is used to enforce that only users with permissions on the signer can create or modify the corresponding bundle.\",\n\t\"metadata\": \"metadata contains the object metadata.\",\n\t\"spec\":     \"spec contains the signer (if any) and trust anchors.\",\n}\n\nfunc (ClusterTrustBundle) SwaggerDoc() map[string]string {\n\treturn map_ClusterTrustBundle\n}\n\nvar map_ClusterTrustBundleList = map[string]string{\n\t\"\":         \"ClusterTrustBundleList is a collection of ClusterTrustBundle objects\",\n\t\"metadata\": \"metadata contains the list metadata.\",\n\t\"items\":    \"items is a collection of ClusterTrustBundle objects\",\n}\n\nfunc (ClusterTrustBundleList) SwaggerDoc() map[string]string {\n\treturn map_ClusterTrustBundleList\n}\n\nvar map_ClusterTrustBundleSpec = map[string]string{\n\t\"\":            \"ClusterTrustBundleSpec contains the signer and trust anchors.\",\n\t\"signerName\":  \"signerName indicates the associated signer, if any.\\n\\nIn order to create or update a ClusterTrustBundle that sets signerName, you must have the following cluster-scoped permission: group=certificates.k8s.io resource=signers resourceName=<the signer name> verb=attest.\\n\\nIf signerName is not empty, then the ClusterTrustBundle object must be named with the signer name as a prefix (translating slashes to colons). For example, for the signer name `example.com/foo`, valid ClusterTrustBundle object names include `example.com:foo:abc` and `example.com:foo:v1`.\\n\\nIf signerName is empty, then the ClusterTrustBundle object's name must not have such a prefix.\\n\\nList/watch requests for ClusterTrustBundles can filter on this field using a `spec.signerName=NAME` field selector.\",\n\t\"trustBundle\": \"trustBundle contains the individual X.509 trust anchors for this bundle, as PEM bundle of PEM-wrapped, DER-formatted X.509 certificates.\\n\\nThe data must consist only of PEM certificate blocks that parse as valid X.509 certificates.  Each certificate must include a basic constraints extension with the CA bit set.  The API server will reject objects that contain duplicate certificates, or that use PEM block headers.\\n\\nUsers of ClusterTrustBundles, including Kubelet, are free to reorder and deduplicate certificate blocks in this file according to their own logic, as well as to drop PEM block headers and inter-block data.\",\n}\n\nfunc (ClusterTrustBundleSpec) SwaggerDoc() map[string]string {\n\treturn map_ClusterTrustBundleSpec\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1alpha1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ClusterTrustBundle) DeepCopyInto(out *ClusterTrustBundle) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tout.Spec = in.Spec\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterTrustBundle.\nfunc (in *ClusterTrustBundle) DeepCopy() *ClusterTrustBundle {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ClusterTrustBundle)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ClusterTrustBundle) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ClusterTrustBundleList) DeepCopyInto(out *ClusterTrustBundleList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ClusterTrustBundle, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterTrustBundleList.\nfunc (in *ClusterTrustBundleList) DeepCopy() *ClusterTrustBundleList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ClusterTrustBundleList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ClusterTrustBundleList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ClusterTrustBundleSpec) DeepCopyInto(out *ClusterTrustBundleSpec) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterTrustBundleSpec.\nfunc (in *ClusterTrustBundleSpec) DeepCopy() *ClusterTrustBundleSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ClusterTrustBundleSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1alpha1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ClusterTrustBundle) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 26\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ClusterTrustBundle) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 34\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ClusterTrustBundle) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 37\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ClusterTrustBundleList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 26\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ClusterTrustBundleList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 34\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ClusterTrustBundleList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 37\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1beta1/doc.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\n// +groupName=certificates.k8s.io\n\npackage v1beta1 // import \"k8s.io/api/certificates/v1beta1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1beta1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/certificates/v1beta1/generated.proto\n\npackage v1beta1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *CertificateSigningRequest) Reset()      { *m = CertificateSigningRequest{} }\nfunc (*CertificateSigningRequest) ProtoMessage() {}\nfunc (*CertificateSigningRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6529c11a462c48a5, []int{0}\n}\nfunc (m *CertificateSigningRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CertificateSigningRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CertificateSigningRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CertificateSigningRequest.Merge(m, src)\n}\nfunc (m *CertificateSigningRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CertificateSigningRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_CertificateSigningRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CertificateSigningRequest proto.InternalMessageInfo\n\nfunc (m *CertificateSigningRequestCondition) Reset()      { *m = CertificateSigningRequestCondition{} }\nfunc (*CertificateSigningRequestCondition) ProtoMessage() {}\nfunc (*CertificateSigningRequestCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6529c11a462c48a5, []int{1}\n}\nfunc (m *CertificateSigningRequestCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CertificateSigningRequestCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CertificateSigningRequestCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CertificateSigningRequestCondition.Merge(m, src)\n}\nfunc (m *CertificateSigningRequestCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CertificateSigningRequestCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_CertificateSigningRequestCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CertificateSigningRequestCondition proto.InternalMessageInfo\n\nfunc (m *CertificateSigningRequestList) Reset()      { *m = CertificateSigningRequestList{} }\nfunc (*CertificateSigningRequestList) ProtoMessage() {}\nfunc (*CertificateSigningRequestList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6529c11a462c48a5, []int{2}\n}\nfunc (m *CertificateSigningRequestList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CertificateSigningRequestList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CertificateSigningRequestList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CertificateSigningRequestList.Merge(m, src)\n}\nfunc (m *CertificateSigningRequestList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CertificateSigningRequestList) XXX_DiscardUnknown() {\n\txxx_messageInfo_CertificateSigningRequestList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CertificateSigningRequestList proto.InternalMessageInfo\n\nfunc (m *CertificateSigningRequestSpec) Reset()      { *m = CertificateSigningRequestSpec{} }\nfunc (*CertificateSigningRequestSpec) ProtoMessage() {}\nfunc (*CertificateSigningRequestSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6529c11a462c48a5, []int{3}\n}\nfunc (m *CertificateSigningRequestSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CertificateSigningRequestSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CertificateSigningRequestSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CertificateSigningRequestSpec.Merge(m, src)\n}\nfunc (m *CertificateSigningRequestSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CertificateSigningRequestSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_CertificateSigningRequestSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CertificateSigningRequestSpec proto.InternalMessageInfo\n\nfunc (m *CertificateSigningRequestStatus) Reset()      { *m = CertificateSigningRequestStatus{} }\nfunc (*CertificateSigningRequestStatus) ProtoMessage() {}\nfunc (*CertificateSigningRequestStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6529c11a462c48a5, []int{4}\n}\nfunc (m *CertificateSigningRequestStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CertificateSigningRequestStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CertificateSigningRequestStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CertificateSigningRequestStatus.Merge(m, src)\n}\nfunc (m *CertificateSigningRequestStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CertificateSigningRequestStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_CertificateSigningRequestStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CertificateSigningRequestStatus proto.InternalMessageInfo\n\nfunc (m *ExtraValue) Reset()      { *m = ExtraValue{} }\nfunc (*ExtraValue) ProtoMessage() {}\nfunc (*ExtraValue) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6529c11a462c48a5, []int{5}\n}\nfunc (m *ExtraValue) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ExtraValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ExtraValue) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ExtraValue.Merge(m, src)\n}\nfunc (m *ExtraValue) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ExtraValue) XXX_DiscardUnknown() {\n\txxx_messageInfo_ExtraValue.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ExtraValue proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*CertificateSigningRequest)(nil), \"k8s.io.api.certificates.v1beta1.CertificateSigningRequest\")\n\tproto.RegisterType((*CertificateSigningRequestCondition)(nil), \"k8s.io.api.certificates.v1beta1.CertificateSigningRequestCondition\")\n\tproto.RegisterType((*CertificateSigningRequestList)(nil), \"k8s.io.api.certificates.v1beta1.CertificateSigningRequestList\")\n\tproto.RegisterType((*CertificateSigningRequestSpec)(nil), \"k8s.io.api.certificates.v1beta1.CertificateSigningRequestSpec\")\n\tproto.RegisterMapType((map[string]ExtraValue)(nil), \"k8s.io.api.certificates.v1beta1.CertificateSigningRequestSpec.ExtraEntry\")\n\tproto.RegisterType((*CertificateSigningRequestStatus)(nil), \"k8s.io.api.certificates.v1beta1.CertificateSigningRequestStatus\")\n\tproto.RegisterType((*ExtraValue)(nil), \"k8s.io.api.certificates.v1beta1.ExtraValue\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/certificates/v1beta1/generated.proto\", fileDescriptor_6529c11a462c48a5)\n}\n\nvar fileDescriptor_6529c11a462c48a5 = []byte{\n\t// 901 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0x4d, 0x6f, 0x1b, 0x45,\n\t0x18, 0xf6, 0xc6, 0x1f, 0xb1, 0xc7, 0x21, 0x6d, 0x47, 0x50, 0x2d, 0x96, 0xea, 0xb5, 0x56, 0x80,\n\t0xc2, 0xd7, 0x2c, 0xa9, 0x2a, 0x88, 0x72, 0x40, 0xb0, 0x21, 0x42, 0x11, 0x29, 0x48, 0x93, 0x84,\n\t0x03, 0x42, 0xa2, 0x93, 0xf5, 0xdb, 0xcd, 0x34, 0xdd, 0x0f, 0x76, 0x66, 0x4d, 0x7d, 0xeb, 0x4f,\n\t0xe0, 0xc8, 0x91, 0xff, 0xc0, 0x9f, 0x08, 0x07, 0xa4, 0x1e, 0x7b, 0x40, 0x16, 0x71, 0xff, 0x45,\n\t0x4e, 0x68, 0x66, 0xc7, 0x6b, 0xc7, 0x4e, 0x70, 0x69, 0x6f, 0x3b, 0xcf, 0xbc, 0xcf, 0xf3, 0xbc,\n\t0xf3, 0xce, 0xfb, 0x8e, 0x8d, 0xbc, 0xd3, 0x2d, 0x41, 0x78, 0xe2, 0xb1, 0x94, 0x7b, 0x01, 0x64,\n\t0x92, 0x3f, 0xe4, 0x01, 0x93, 0x20, 0xbc, 0xc1, 0xe6, 0x31, 0x48, 0xb6, 0xe9, 0x85, 0x10, 0x43,\n\t0xc6, 0x24, 0xf4, 0x49, 0x9a, 0x25, 0x32, 0xc1, 0x4e, 0x41, 0x20, 0x2c, 0xe5, 0x64, 0x96, 0x40,\n\t0x0c, 0xa1, 0xf3, 0x71, 0xc8, 0xe5, 0x49, 0x7e, 0x4c, 0x82, 0x24, 0xf2, 0xc2, 0x24, 0x4c, 0x3c,\n\t0xcd, 0x3b, 0xce, 0x1f, 0xea, 0x95, 0x5e, 0xe8, 0xaf, 0x42, 0xaf, 0xe3, 0xce, 0x26, 0x90, 0x64,\n\t0xe0, 0x0d, 0x16, 0x3c, 0x3b, 0xf7, 0xa6, 0x31, 0x11, 0x0b, 0x4e, 0x78, 0x0c, 0xd9, 0xd0, 0x4b,\n\t0x4f, 0x43, 0x05, 0x08, 0x2f, 0x02, 0xc9, 0xae, 0x62, 0x79, 0xd7, 0xb1, 0xb2, 0x3c, 0x96, 0x3c,\n\t0x82, 0x05, 0xc2, 0xa7, 0xcb, 0x08, 0x22, 0x38, 0x81, 0x88, 0xcd, 0xf3, 0xdc, 0x3f, 0x57, 0xd0,\n\t0xdb, 0x3b, 0xd3, 0x52, 0x1c, 0xf0, 0x30, 0xe6, 0x71, 0x48, 0xe1, 0xe7, 0x1c, 0x84, 0xc4, 0x0f,\n\t0x50, 0x53, 0x65, 0xd8, 0x67, 0x92, 0xd9, 0x56, 0xcf, 0xda, 0x68, 0xdf, 0xfd, 0x84, 0x4c, 0x6b,\n\t0x58, 0x1a, 0x91, 0xf4, 0x34, 0x54, 0x80, 0x20, 0x2a, 0x9a, 0x0c, 0x36, 0xc9, 0x77, 0xc7, 0x8f,\n\t0x20, 0x90, 0xf7, 0x41, 0x32, 0x1f, 0x9f, 0x8d, 0x9c, 0xca, 0x78, 0xe4, 0xa0, 0x29, 0x46, 0x4b,\n\t0x55, 0xfc, 0x00, 0xd5, 0x44, 0x0a, 0x81, 0xbd, 0xa2, 0xd5, 0x3f, 0x27, 0x4b, 0x6e, 0x88, 0x5c,\n\t0x9b, 0xeb, 0x41, 0x0a, 0x81, 0xbf, 0x66, 0xbc, 0x6a, 0x6a, 0x45, 0xb5, 0x32, 0x3e, 0x41, 0x0d,\n\t0x21, 0x99, 0xcc, 0x85, 0x5d, 0xd5, 0x1e, 0x5f, 0xbc, 0x86, 0x87, 0xd6, 0xf1, 0xd7, 0x8d, 0x4b,\n\t0xa3, 0x58, 0x53, 0xa3, 0xef, 0xbe, 0xa8, 0x22, 0xf7, 0x5a, 0xee, 0x4e, 0x12, 0xf7, 0xb9, 0xe4,\n\t0x49, 0x8c, 0xb7, 0x50, 0x4d, 0x0e, 0x53, 0xd0, 0x05, 0x6d, 0xf9, 0xef, 0x4c, 0x52, 0x3e, 0x1c,\n\t0xa6, 0x70, 0x31, 0x72, 0xde, 0x9c, 0x8f, 0x57, 0x38, 0xd5, 0x0c, 0xbc, 0x5f, 0x1e, 0xa5, 0xa1,\n\t0xb9, 0xf7, 0x2e, 0x27, 0x72, 0x31, 0x72, 0xae, 0xe8, 0x48, 0x52, 0x2a, 0x5d, 0x4e, 0x17, 0xbf,\n\t0x87, 0x1a, 0x19, 0x30, 0x91, 0xc4, 0xba, 0xf8, 0xad, 0xe9, 0xb1, 0xa8, 0x46, 0xa9, 0xd9, 0xc5,\n\t0xef, 0xa3, 0xd5, 0x08, 0x84, 0x60, 0x21, 0xe8, 0x0a, 0xb6, 0xfc, 0x1b, 0x26, 0x70, 0xf5, 0x7e,\n\t0x01, 0xd3, 0xc9, 0x3e, 0x7e, 0x84, 0xd6, 0x1f, 0x33, 0x21, 0x8f, 0xd2, 0x3e, 0x93, 0x70, 0xc8,\n\t0x23, 0xb0, 0x6b, 0xba, 0xe6, 0x1f, 0xbc, 0x5c, 0xd7, 0x28, 0x86, 0x7f, 0xdb, 0xa8, 0xaf, 0xef,\n\t0x5f, 0x52, 0xa2, 0x73, 0xca, 0x78, 0x80, 0xb0, 0x42, 0x0e, 0x33, 0x16, 0x8b, 0xa2, 0x50, 0xca,\n\t0xaf, 0xfe, 0xbf, 0xfd, 0x3a, 0xc6, 0x0f, 0xef, 0x2f, 0xa8, 0xd1, 0x2b, 0x1c, 0xdc, 0x91, 0x85,\n\t0xee, 0x5c, 0x7b, 0xcb, 0xfb, 0x5c, 0x48, 0xfc, 0xe3, 0xc2, 0xd4, 0x90, 0x97, 0xcb, 0x47, 0xb1,\n\t0xf5, 0xcc, 0xdc, 0x34, 0x39, 0x35, 0x27, 0xc8, 0xcc, 0xc4, 0xfc, 0x84, 0xea, 0x5c, 0x42, 0x24,\n\t0xec, 0x95, 0x5e, 0x75, 0xa3, 0x7d, 0x77, 0xfb, 0xd5, 0xdb, 0xd9, 0x7f, 0xc3, 0xd8, 0xd4, 0xf7,\n\t0x94, 0x20, 0x2d, 0x74, 0xdd, 0x3f, 0x6a, 0xff, 0x71, 0x40, 0x35, 0x58, 0xf8, 0x5d, 0xb4, 0x9a,\n\t0x15, 0x4b, 0x7d, 0xbe, 0x35, 0xbf, 0xad, 0xba, 0xc1, 0x44, 0xd0, 0xc9, 0x1e, 0x26, 0x08, 0x09,\n\t0x1e, 0xc6, 0x90, 0x7d, 0xcb, 0x22, 0xb0, 0x57, 0x8b, 0x26, 0x53, 0x2f, 0xc1, 0x41, 0x89, 0xd2,\n\t0x99, 0x08, 0xbc, 0x83, 0x6e, 0xc1, 0x93, 0x94, 0x67, 0x4c, 0x37, 0x2b, 0x04, 0x49, 0xdc, 0x17,\n\t0x76, 0xb3, 0x67, 0x6d, 0xd4, 0xfd, 0xb7, 0xc6, 0x23, 0xe7, 0xd6, 0xee, 0xfc, 0x26, 0x5d, 0x8c,\n\t0xc7, 0x04, 0x35, 0x72, 0xd5, 0x8b, 0xc2, 0xae, 0xf7, 0xaa, 0x1b, 0x2d, 0xff, 0xb6, 0xea, 0xe8,\n\t0x23, 0x8d, 0x5c, 0x8c, 0x9c, 0xe6, 0x37, 0x30, 0xd4, 0x0b, 0x6a, 0xa2, 0xf0, 0x47, 0xa8, 0x99,\n\t0x0b, 0xc8, 0x62, 0x95, 0x62, 0x31, 0x07, 0x65, 0xf1, 0x8f, 0x0c, 0x4e, 0xcb, 0x08, 0x7c, 0x07,\n\t0x55, 0x73, 0xde, 0x37, 0x73, 0xd0, 0x36, 0x81, 0xd5, 0xa3, 0xbd, 0xaf, 0xa8, 0xc2, 0xb1, 0x8b,\n\t0x1a, 0x61, 0x96, 0xe4, 0xa9, 0xb0, 0x6b, 0xda, 0x1c, 0x29, 0xf3, 0xaf, 0x35, 0x42, 0xcd, 0x0e,\n\t0x8e, 0x51, 0x1d, 0x9e, 0xc8, 0x8c, 0xd9, 0x0d, 0x7d, 0x7f, 0x7b, 0xaf, 0xf7, 0xe4, 0x91, 0x5d,\n\t0xa5, 0xb5, 0x1b, 0xcb, 0x6c, 0x38, 0xbd, 0x4e, 0x8d, 0xd1, 0xc2, 0xa6, 0x03, 0x08, 0x4d, 0x63,\n\t0xf0, 0x4d, 0x54, 0x3d, 0x85, 0x61, 0xf1, 0xf6, 0x50, 0xf5, 0x89, 0xbf, 0x44, 0xf5, 0x01, 0x7b,\n\t0x9c, 0x83, 0x79, 0x82, 0x3f, 0x5c, 0x9a, 0x8f, 0x56, 0xfb, 0x5e, 0x51, 0x68, 0xc1, 0xdc, 0x5e,\n\t0xd9, 0xb2, 0xdc, 0xbf, 0x2c, 0xe4, 0x2c, 0x79, 0x38, 0xf1, 0x2f, 0x08, 0x05, 0x93, 0xc7, 0x48,\n\t0xd8, 0x96, 0x3e, 0xff, 0xce, 0xab, 0x9f, 0xbf, 0x7c, 0xd8, 0xa6, 0xbf, 0x31, 0x25, 0x24, 0xe8,\n\t0x8c, 0x15, 0xde, 0x44, 0xed, 0x19, 0x69, 0x7d, 0xd2, 0x35, 0xff, 0xc6, 0x78, 0xe4, 0xb4, 0x67,\n\t0xc4, 0xe9, 0x6c, 0x8c, 0xfb, 0x99, 0x29, 0x9b, 0x3e, 0x28, 0x76, 0x26, 0x43, 0x67, 0xe9, 0x7b,\n\t0x6d, 0xcd, 0x0f, 0xcd, 0x76, 0xf3, 0xb7, 0xdf, 0x9d, 0xca, 0xd3, 0xbf, 0x7b, 0x15, 0x7f, 0xf7,\n\t0xec, 0xbc, 0x5b, 0x79, 0x76, 0xde, 0xad, 0x3c, 0x3f, 0xef, 0x56, 0x9e, 0x8e, 0xbb, 0xd6, 0xd9,\n\t0xb8, 0x6b, 0x3d, 0x1b, 0x77, 0xad, 0xe7, 0xe3, 0xae, 0xf5, 0xcf, 0xb8, 0x6b, 0xfd, 0xfa, 0xa2,\n\t0x5b, 0xf9, 0xc1, 0x59, 0xf2, 0xdf, 0xe5, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x35, 0x2f, 0x11,\n\t0xe8, 0xdd, 0x08, 0x00, 0x00,\n}\n\nfunc (m *CertificateSigningRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CertificateSigningRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CertificateSigningRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CertificateSigningRequestCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CertificateSigningRequestCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CertificateSigningRequestCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x32\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x2a\n\t{\n\t\tsize, err := m.LastUpdateTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CertificateSigningRequestList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CertificateSigningRequestList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CertificateSigningRequestList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CertificateSigningRequestSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CertificateSigningRequestSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CertificateSigningRequestSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ExpirationSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.ExpirationSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x40\n\t}\n\tif m.SignerName != nil {\n\t\ti -= len(*m.SignerName)\n\t\tcopy(dAtA[i:], *m.SignerName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.SignerName)))\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif len(m.Extra) > 0 {\n\t\tkeysForExtra := make([]string, 0, len(m.Extra))\n\t\tfor k := range m.Extra {\n\t\t\tkeysForExtra = append(keysForExtra, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForExtra)\n\t\tfor iNdEx := len(keysForExtra) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Extra[string(keysForExtra[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForExtra[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForExtra[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForExtra[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\tif len(m.Usages) > 0 {\n\t\tfor iNdEx := len(m.Usages) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Usages[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Usages[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Usages[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\tif len(m.Groups) > 0 {\n\t\tfor iNdEx := len(m.Groups) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Groups[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Groups[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Groups[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\ti -= len(m.UID)\n\tcopy(dAtA[i:], m.UID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.UID)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Username)\n\tcopy(dAtA[i:], m.Username)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Username)))\n\ti--\n\tdAtA[i] = 0x12\n\tif m.Request != nil {\n\t\ti -= len(m.Request)\n\t\tcopy(dAtA[i:], m.Request)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Request)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CertificateSigningRequestStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CertificateSigningRequestStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CertificateSigningRequestStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Certificate != nil {\n\t\ti -= len(m.Certificate)\n\t\tcopy(dAtA[i:], m.Certificate)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Certificate)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m ExtraValue) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m ExtraValue) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m ExtraValue) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m) > 0 {\n\t\tfor iNdEx := len(m) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m[iNdEx])\n\t\t\tcopy(dAtA[i:], m[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *CertificateSigningRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *CertificateSigningRequestCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastUpdateTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *CertificateSigningRequestList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *CertificateSigningRequestSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Request != nil {\n\t\tl = len(m.Request)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.Username)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.UID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Groups) > 0 {\n\t\tfor _, s := range m.Groups {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Usages) > 0 {\n\t\tfor _, s := range m.Usages {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Extra) > 0 {\n\t\tfor k, v := range m.Extra {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif m.SignerName != nil {\n\t\tl = len(*m.SignerName)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ExpirationSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.ExpirationSeconds))\n\t}\n\treturn n\n}\n\nfunc (m *CertificateSigningRequestStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.Certificate != nil {\n\t\tl = len(m.Certificate)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m ExtraValue) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m) > 0 {\n\t\tfor _, s := range m {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *CertificateSigningRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CertificateSigningRequest{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"CertificateSigningRequestSpec\", \"CertificateSigningRequestSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"CertificateSigningRequestStatus\", \"CertificateSigningRequestStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CertificateSigningRequestCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CertificateSigningRequestCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`LastUpdateTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastUpdateTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CertificateSigningRequestList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]CertificateSigningRequest{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"CertificateSigningRequest\", \"CertificateSigningRequest\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&CertificateSigningRequestList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CertificateSigningRequestSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForExtra := make([]string, 0, len(this.Extra))\n\tfor k := range this.Extra {\n\t\tkeysForExtra = append(keysForExtra, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForExtra)\n\tmapStringForExtra := \"map[string]ExtraValue{\"\n\tfor _, k := range keysForExtra {\n\t\tmapStringForExtra += fmt.Sprintf(\"%v: %v,\", k, this.Extra[k])\n\t}\n\tmapStringForExtra += \"}\"\n\ts := strings.Join([]string{`&CertificateSigningRequestSpec{`,\n\t\t`Request:` + valueToStringGenerated(this.Request) + `,`,\n\t\t`Username:` + fmt.Sprintf(\"%v\", this.Username) + `,`,\n\t\t`UID:` + fmt.Sprintf(\"%v\", this.UID) + `,`,\n\t\t`Groups:` + fmt.Sprintf(\"%v\", this.Groups) + `,`,\n\t\t`Usages:` + fmt.Sprintf(\"%v\", this.Usages) + `,`,\n\t\t`Extra:` + mapStringForExtra + `,`,\n\t\t`SignerName:` + valueToStringGenerated(this.SignerName) + `,`,\n\t\t`ExpirationSeconds:` + valueToStringGenerated(this.ExpirationSeconds) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CertificateSigningRequestStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]CertificateSigningRequestCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"CertificateSigningRequestCondition\", \"CertificateSigningRequestCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&CertificateSigningRequestStatus{`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`Certificate:` + valueToStringGenerated(this.Certificate) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *CertificateSigningRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CertificateSigningRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CertificateSigningRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CertificateSigningRequestCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CertificateSigningRequestCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CertificateSigningRequestCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = RequestConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastUpdateTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastUpdateTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CertificateSigningRequestList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CertificateSigningRequestList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CertificateSigningRequestList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, CertificateSigningRequest{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CertificateSigningRequestSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CertificateSigningRequestSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CertificateSigningRequestSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Request\", wireType)\n\t\t\t}\n\t\t\tvar byteLen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tbyteLen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif byteLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + byteLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Request = append(m.Request[:0], dAtA[iNdEx:postIndex]...)\n\t\t\tif m.Request == nil {\n\t\t\t\tm.Request = []byte{}\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Username\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Username = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.UID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Groups\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Groups = append(m.Groups, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Usages\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Usages = append(m.Usages, KeyUsage(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Extra\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Extra == nil {\n\t\t\t\tm.Extra = make(map[string]ExtraValue)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tmapvalue := &ExtraValue{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &ExtraValue{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Extra[mapkey] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SignerName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.SignerName = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ExpirationSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ExpirationSeconds = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CertificateSigningRequestStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CertificateSigningRequestStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CertificateSigningRequestStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, CertificateSigningRequestCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Certificate\", wireType)\n\t\t\t}\n\t\t\tvar byteLen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tbyteLen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif byteLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + byteLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Certificate = append(m.Certificate[:0], dAtA[iNdEx:postIndex]...)\n\t\t\tif m.Certificate == nil {\n\t\t\t\tm.Certificate = []byte{}\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ExtraValue) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ExtraValue: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ExtraValue: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\t*m = append(*m, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1beta1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.certificates.v1beta1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/certificates/v1beta1\";\n\n// Describes a certificate signing request\nmessage CertificateSigningRequest {\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec contains the certificate request, and is immutable after creation.\n  // Only the request, signerName, expirationSeconds, and usages fields can be set on creation.\n  // Other fields are derived by Kubernetes and cannot be modified by users.\n  optional CertificateSigningRequestSpec spec = 2;\n\n  // Derived information about the request.\n  // +optional\n  optional CertificateSigningRequestStatus status = 3;\n}\n\nmessage CertificateSigningRequestCondition {\n  // type of the condition. Known conditions include \"Approved\", \"Denied\", and \"Failed\".\n  optional string type = 1;\n\n  // Status of the condition, one of True, False, Unknown.\n  // Approved, Denied, and Failed conditions may not be \"False\" or \"Unknown\".\n  // Defaults to \"True\".\n  // If unset, should be treated as \"True\".\n  // +optional\n  optional string status = 6;\n\n  // brief reason for the request state\n  // +optional\n  optional string reason = 2;\n\n  // human readable message with details about the request state\n  // +optional\n  optional string message = 3;\n\n  // timestamp for the last update to this condition\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastUpdateTime = 4;\n\n  // lastTransitionTime is the time the condition last transitioned from one status to another.\n  // If unset, when a new condition type is added or an existing condition's status is changed,\n  // the server defaults this to the current time.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 5;\n}\n\nmessage CertificateSigningRequestList {\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  repeated CertificateSigningRequest items = 2;\n}\n\n// CertificateSigningRequestSpec contains the certificate request.\nmessage CertificateSigningRequestSpec {\n  // Base64-encoded PKCS#10 CSR data\n  // +listType=atomic\n  optional bytes request = 1;\n\n  // Requested signer for the request. It is a qualified name in the form:\n  // `scope-hostname.io/name`.\n  // If empty, it will be defaulted:\n  //  1. If it's a kubelet client certificate, it is assigned\n  //     \"kubernetes.io/kube-apiserver-client-kubelet\".\n  //  2. If it's a kubelet serving certificate, it is assigned\n  //     \"kubernetes.io/kubelet-serving\".\n  //  3. Otherwise, it is assigned \"kubernetes.io/legacy-unknown\".\n  // Distribution of trust for signers happens out of band.\n  // You can select on this field using `spec.signerName`.\n  // +optional\n  optional string signerName = 7;\n\n  // expirationSeconds is the requested duration of validity of the issued\n  // certificate. The certificate signer may issue a certificate with a different\n  // validity duration so a client must check the delta between the notBefore and\n  // and notAfter fields in the issued certificate to determine the actual duration.\n  //\n  // The v1.22+ in-tree implementations of the well-known Kubernetes signers will\n  // honor this field as long as the requested duration is not greater than the\n  // maximum duration they will honor per the --cluster-signing-duration CLI\n  // flag to the Kubernetes controller manager.\n  //\n  // Certificate signers may not honor this field for various reasons:\n  //\n  //   1. Old signer that is unaware of the field (such as the in-tree\n  //      implementations prior to v1.22)\n  //   2. Signer whose configured maximum is shorter than the requested duration\n  //   3. Signer whose configured minimum is longer than the requested duration\n  //\n  // The minimum valid value for expirationSeconds is 600, i.e. 10 minutes.\n  //\n  // +optional\n  optional int32 expirationSeconds = 8;\n\n  // allowedUsages specifies a set of usage contexts the key will be\n  // valid for.\n  // See:\n  // \thttps://tools.ietf.org/html/rfc5280#section-4.2.1.3\n  // \thttps://tools.ietf.org/html/rfc5280#section-4.2.1.12\n  //\n  // Valid values are:\n  //  \"signing\",\n  //  \"digital signature\",\n  //  \"content commitment\",\n  //  \"key encipherment\",\n  //  \"key agreement\",\n  //  \"data encipherment\",\n  //  \"cert sign\",\n  //  \"crl sign\",\n  //  \"encipher only\",\n  //  \"decipher only\",\n  //  \"any\",\n  //  \"server auth\",\n  //  \"client auth\",\n  //  \"code signing\",\n  //  \"email protection\",\n  //  \"s/mime\",\n  //  \"ipsec end system\",\n  //  \"ipsec tunnel\",\n  //  \"ipsec user\",\n  //  \"timestamping\",\n  //  \"ocsp signing\",\n  //  \"microsoft sgc\",\n  //  \"netscape sgc\"\n  // +listType=atomic\n  repeated string usages = 5;\n\n  // Information about the requesting user.\n  // See user.Info interface for details.\n  // +optional\n  optional string username = 2;\n\n  // UID information about the requesting user.\n  // See user.Info interface for details.\n  // +optional\n  optional string uid = 3;\n\n  // Group information about the requesting user.\n  // See user.Info interface for details.\n  // +listType=atomic\n  // +optional\n  repeated string groups = 4;\n\n  // Extra information about the requesting user.\n  // See user.Info interface for details.\n  // +optional\n  map<string, ExtraValue> extra = 6;\n}\n\nmessage CertificateSigningRequestStatus {\n  // Conditions applied to the request, such as approval or denial.\n  // +listType=map\n  // +listMapKey=type\n  // +optional\n  repeated CertificateSigningRequestCondition conditions = 1;\n\n  // If request was approved, the controller will place the issued certificate here.\n  // +listType=atomic\n  // +optional\n  optional bytes certificate = 2;\n}\n\n// ExtraValue masks the value so protobuf can generate\n// +protobuf.nullable=true\n// +protobuf.options.(gogoproto.goproto_stringer)=false\nmessage ExtraValue {\n  // items, if empty, will result in an empty slice\n\n  repeated string items = 1;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1beta1/register.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"certificates.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta1\"}\n\n// Kind takes an unqualified kind and returns a Group qualified GroupKind\nfunc Kind(kind string) schema.GroupKind {\n\treturn SchemeGroupVersion.WithKind(kind).GroupKind()\n}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&CertificateSigningRequest{},\n\t\t&CertificateSigningRequestList{},\n\t)\n\n\t// Add the watch version that applies\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1beta1/types.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.12\n// +k8s:prerelease-lifecycle-gen:deprecated=1.19\n// +k8s:prerelease-lifecycle-gen:replacement=certificates.k8s.io,v1,CertificateSigningRequest\n\n// Describes a certificate signing request\ntype CertificateSigningRequest struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec contains the certificate request, and is immutable after creation.\n\t// Only the request, signerName, expirationSeconds, and usages fields can be set on creation.\n\t// Other fields are derived by Kubernetes and cannot be modified by users.\n\tSpec CertificateSigningRequestSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Derived information about the request.\n\t// +optional\n\tStatus CertificateSigningRequestStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// CertificateSigningRequestSpec contains the certificate request.\ntype CertificateSigningRequestSpec struct {\n\t// Base64-encoded PKCS#10 CSR data\n\t// +listType=atomic\n\tRequest []byte `json:\"request\" protobuf:\"bytes,1,opt,name=request\"`\n\n\t// Requested signer for the request. It is a qualified name in the form:\n\t// `scope-hostname.io/name`.\n\t// If empty, it will be defaulted:\n\t//  1. If it's a kubelet client certificate, it is assigned\n\t//     \"kubernetes.io/kube-apiserver-client-kubelet\".\n\t//  2. If it's a kubelet serving certificate, it is assigned\n\t//     \"kubernetes.io/kubelet-serving\".\n\t//  3. Otherwise, it is assigned \"kubernetes.io/legacy-unknown\".\n\t// Distribution of trust for signers happens out of band.\n\t// You can select on this field using `spec.signerName`.\n\t// +optional\n\tSignerName *string `json:\"signerName,omitempty\" protobuf:\"bytes,7,opt,name=signerName\"`\n\n\t// expirationSeconds is the requested duration of validity of the issued\n\t// certificate. The certificate signer may issue a certificate with a different\n\t// validity duration so a client must check the delta between the notBefore and\n\t// and notAfter fields in the issued certificate to determine the actual duration.\n\t//\n\t// The v1.22+ in-tree implementations of the well-known Kubernetes signers will\n\t// honor this field as long as the requested duration is not greater than the\n\t// maximum duration they will honor per the --cluster-signing-duration CLI\n\t// flag to the Kubernetes controller manager.\n\t//\n\t// Certificate signers may not honor this field for various reasons:\n\t//\n\t//   1. Old signer that is unaware of the field (such as the in-tree\n\t//      implementations prior to v1.22)\n\t//   2. Signer whose configured maximum is shorter than the requested duration\n\t//   3. Signer whose configured minimum is longer than the requested duration\n\t//\n\t// The minimum valid value for expirationSeconds is 600, i.e. 10 minutes.\n\t//\n\t// +optional\n\tExpirationSeconds *int32 `json:\"expirationSeconds,omitempty\" protobuf:\"varint,8,opt,name=expirationSeconds\"`\n\n\t// allowedUsages specifies a set of usage contexts the key will be\n\t// valid for.\n\t// See:\n\t//\thttps://tools.ietf.org/html/rfc5280#section-4.2.1.3\n\t//\thttps://tools.ietf.org/html/rfc5280#section-4.2.1.12\n\t//\n\t// Valid values are:\n\t//  \"signing\",\n\t//  \"digital signature\",\n\t//  \"content commitment\",\n\t//  \"key encipherment\",\n\t//  \"key agreement\",\n\t//  \"data encipherment\",\n\t//  \"cert sign\",\n\t//  \"crl sign\",\n\t//  \"encipher only\",\n\t//  \"decipher only\",\n\t//  \"any\",\n\t//  \"server auth\",\n\t//  \"client auth\",\n\t//  \"code signing\",\n\t//  \"email protection\",\n\t//  \"s/mime\",\n\t//  \"ipsec end system\",\n\t//  \"ipsec tunnel\",\n\t//  \"ipsec user\",\n\t//  \"timestamping\",\n\t//  \"ocsp signing\",\n\t//  \"microsoft sgc\",\n\t//  \"netscape sgc\"\n\t// +listType=atomic\n\tUsages []KeyUsage `json:\"usages,omitempty\" protobuf:\"bytes,5,opt,name=usages\"`\n\n\t// Information about the requesting user.\n\t// See user.Info interface for details.\n\t// +optional\n\tUsername string `json:\"username,omitempty\" protobuf:\"bytes,2,opt,name=username\"`\n\t// UID information about the requesting user.\n\t// See user.Info interface for details.\n\t// +optional\n\tUID string `json:\"uid,omitempty\" protobuf:\"bytes,3,opt,name=uid\"`\n\t// Group information about the requesting user.\n\t// See user.Info interface for details.\n\t// +listType=atomic\n\t// +optional\n\tGroups []string `json:\"groups,omitempty\" protobuf:\"bytes,4,rep,name=groups\"`\n\t// Extra information about the requesting user.\n\t// See user.Info interface for details.\n\t// +optional\n\tExtra map[string]ExtraValue `json:\"extra,omitempty\" protobuf:\"bytes,6,rep,name=extra\"`\n}\n\n// Built in signerName values that are honoured by kube-controller-manager.\n// None of these usages are related to ServiceAccount token secrets\n// `.data[ca.crt]` in any way.\nconst (\n\t// Signs certificates that will be honored as client-certs by the\n\t// kube-apiserver. Never auto-approved by kube-controller-manager.\n\tKubeAPIServerClientSignerName = \"kubernetes.io/kube-apiserver-client\"\n\n\t// Signs client certificates that will be honored as client-certs by the\n\t// kube-apiserver for a kubelet.\n\t// May be auto-approved by kube-controller-manager.\n\tKubeAPIServerClientKubeletSignerName = \"kubernetes.io/kube-apiserver-client-kubelet\"\n\n\t// Signs serving certificates that are honored as a valid kubelet serving\n\t// certificate by the kube-apiserver, but has no other guarantees.\n\tKubeletServingSignerName = \"kubernetes.io/kubelet-serving\"\n\n\t// Has no guarantees for trust at all. Some distributions may honor these\n\t// as client certs, but that behavior is not standard kubernetes behavior.\n\tLegacyUnknownSignerName = \"kubernetes.io/legacy-unknown\"\n)\n\n// ExtraValue masks the value so protobuf can generate\n// +protobuf.nullable=true\n// +protobuf.options.(gogoproto.goproto_stringer)=false\ntype ExtraValue []string\n\nfunc (t ExtraValue) String() string {\n\treturn fmt.Sprintf(\"%v\", []string(t))\n}\n\ntype CertificateSigningRequestStatus struct {\n\t// Conditions applied to the request, such as approval or denial.\n\t// +listType=map\n\t// +listMapKey=type\n\t// +optional\n\tConditions []CertificateSigningRequestCondition `json:\"conditions,omitempty\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\t// If request was approved, the controller will place the issued certificate here.\n\t// +listType=atomic\n\t// +optional\n\tCertificate []byte `json:\"certificate,omitempty\" protobuf:\"bytes,2,opt,name=certificate\"`\n}\n\ntype RequestConditionType string\n\n// These are the possible conditions for a certificate request.\nconst (\n\tCertificateApproved RequestConditionType = \"Approved\"\n\tCertificateDenied   RequestConditionType = \"Denied\"\n\tCertificateFailed   RequestConditionType = \"Failed\"\n)\n\ntype CertificateSigningRequestCondition struct {\n\t// type of the condition. Known conditions include \"Approved\", \"Denied\", and \"Failed\".\n\tType RequestConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=RequestConditionType\"`\n\t// Status of the condition, one of True, False, Unknown.\n\t// Approved, Denied, and Failed conditions may not be \"False\" or \"Unknown\".\n\t// Defaults to \"True\".\n\t// If unset, should be treated as \"True\".\n\t// +optional\n\tStatus v1.ConditionStatus `json:\"status\" protobuf:\"bytes,6,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus\"`\n\t// brief reason for the request state\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,2,opt,name=reason\"`\n\t// human readable message with details about the request state\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,3,opt,name=message\"`\n\t// timestamp for the last update to this condition\n\t// +optional\n\tLastUpdateTime metav1.Time `json:\"lastUpdateTime,omitempty\" protobuf:\"bytes,4,opt,name=lastUpdateTime\"`\n\t// lastTransitionTime is the time the condition last transitioned from one status to another.\n\t// If unset, when a new condition type is added or an existing condition's status is changed,\n\t// the server defaults this to the current time.\n\t// +optional\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,5,opt,name=lastTransitionTime\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.12\n// +k8s:prerelease-lifecycle-gen:deprecated=1.19\n// +k8s:prerelease-lifecycle-gen:replacement=certificates.k8s.io,v1,CertificateSigningRequestList\n\ntype CertificateSigningRequestList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\tItems []CertificateSigningRequest `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// KeyUsages specifies valid usage contexts for keys.\n// See:\n//\n//\thttps://tools.ietf.org/html/rfc5280#section-4.2.1.3\n//\thttps://tools.ietf.org/html/rfc5280#section-4.2.1.12\ntype KeyUsage string\n\nconst (\n\tUsageSigning           KeyUsage = \"signing\"\n\tUsageDigitalSignature  KeyUsage = \"digital signature\"\n\tUsageContentCommitment KeyUsage = \"content commitment\"\n\tUsageKeyEncipherment   KeyUsage = \"key encipherment\"\n\tUsageKeyAgreement      KeyUsage = \"key agreement\"\n\tUsageDataEncipherment  KeyUsage = \"data encipherment\"\n\tUsageCertSign          KeyUsage = \"cert sign\"\n\tUsageCRLSign           KeyUsage = \"crl sign\"\n\tUsageEncipherOnly      KeyUsage = \"encipher only\"\n\tUsageDecipherOnly      KeyUsage = \"decipher only\"\n\tUsageAny               KeyUsage = \"any\"\n\tUsageServerAuth        KeyUsage = \"server auth\"\n\tUsageClientAuth        KeyUsage = \"client auth\"\n\tUsageCodeSigning       KeyUsage = \"code signing\"\n\tUsageEmailProtection   KeyUsage = \"email protection\"\n\tUsageSMIME             KeyUsage = \"s/mime\"\n\tUsageIPsecEndSystem    KeyUsage = \"ipsec end system\"\n\tUsageIPsecTunnel       KeyUsage = \"ipsec tunnel\"\n\tUsageIPsecUser         KeyUsage = \"ipsec user\"\n\tUsageTimestamping      KeyUsage = \"timestamping\"\n\tUsageOCSPSigning       KeyUsage = \"ocsp signing\"\n\tUsageMicrosoftSGC      KeyUsage = \"microsoft sgc\"\n\tUsageNetscapeSGC       KeyUsage = \"netscape sgc\"\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1beta1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_CertificateSigningRequest = map[string]string{\n\t\"\":       \"Describes a certificate signing request\",\n\t\"spec\":   \"spec contains the certificate request, and is immutable after creation. Only the request, signerName, expirationSeconds, and usages fields can be set on creation. Other fields are derived by Kubernetes and cannot be modified by users.\",\n\t\"status\": \"Derived information about the request.\",\n}\n\nfunc (CertificateSigningRequest) SwaggerDoc() map[string]string {\n\treturn map_CertificateSigningRequest\n}\n\nvar map_CertificateSigningRequestCondition = map[string]string{\n\t\"type\":               \"type of the condition. Known conditions include \\\"Approved\\\", \\\"Denied\\\", and \\\"Failed\\\".\",\n\t\"status\":             \"Status of the condition, one of True, False, Unknown. Approved, Denied, and Failed conditions may not be \\\"False\\\" or \\\"Unknown\\\". Defaults to \\\"True\\\". If unset, should be treated as \\\"True\\\".\",\n\t\"reason\":             \"brief reason for the request state\",\n\t\"message\":            \"human readable message with details about the request state\",\n\t\"lastUpdateTime\":     \"timestamp for the last update to this condition\",\n\t\"lastTransitionTime\": \"lastTransitionTime is the time the condition last transitioned from one status to another. If unset, when a new condition type is added or an existing condition's status is changed, the server defaults this to the current time.\",\n}\n\nfunc (CertificateSigningRequestCondition) SwaggerDoc() map[string]string {\n\treturn map_CertificateSigningRequestCondition\n}\n\nvar map_CertificateSigningRequestSpec = map[string]string{\n\t\"\":                  \"CertificateSigningRequestSpec contains the certificate request.\",\n\t\"request\":           \"Base64-encoded PKCS#10 CSR data\",\n\t\"signerName\":        \"Requested signer for the request. It is a qualified name in the form: `scope-hostname.io/name`. If empty, it will be defaulted:\\n 1. If it's a kubelet client certificate, it is assigned\\n    \\\"kubernetes.io/kube-apiserver-client-kubelet\\\".\\n 2. If it's a kubelet serving certificate, it is assigned\\n    \\\"kubernetes.io/kubelet-serving\\\".\\n 3. Otherwise, it is assigned \\\"kubernetes.io/legacy-unknown\\\".\\nDistribution of trust for signers happens out of band. You can select on this field using `spec.signerName`.\",\n\t\"expirationSeconds\": \"expirationSeconds is the requested duration of validity of the issued certificate. The certificate signer may issue a certificate with a different validity duration so a client must check the delta between the notBefore and and notAfter fields in the issued certificate to determine the actual duration.\\n\\nThe v1.22+ in-tree implementations of the well-known Kubernetes signers will honor this field as long as the requested duration is not greater than the maximum duration they will honor per the --cluster-signing-duration CLI flag to the Kubernetes controller manager.\\n\\nCertificate signers may not honor this field for various reasons:\\n\\n  1. Old signer that is unaware of the field (such as the in-tree\\n     implementations prior to v1.22)\\n  2. Signer whose configured maximum is shorter than the requested duration\\n  3. Signer whose configured minimum is longer than the requested duration\\n\\nThe minimum valid value for expirationSeconds is 600, i.e. 10 minutes.\",\n\t\"usages\":            \"allowedUsages specifies a set of usage contexts the key will be valid for. See:\\n\\thttps://tools.ietf.org/html/rfc5280#section-4.2.1.3\\n\\thttps://tools.ietf.org/html/rfc5280#section-4.2.1.12\\n\\nValid values are:\\n \\\"signing\\\",\\n \\\"digital signature\\\",\\n \\\"content commitment\\\",\\n \\\"key encipherment\\\",\\n \\\"key agreement\\\",\\n \\\"data encipherment\\\",\\n \\\"cert sign\\\",\\n \\\"crl sign\\\",\\n \\\"encipher only\\\",\\n \\\"decipher only\\\",\\n \\\"any\\\",\\n \\\"server auth\\\",\\n \\\"client auth\\\",\\n \\\"code signing\\\",\\n \\\"email protection\\\",\\n \\\"s/mime\\\",\\n \\\"ipsec end system\\\",\\n \\\"ipsec tunnel\\\",\\n \\\"ipsec user\\\",\\n \\\"timestamping\\\",\\n \\\"ocsp signing\\\",\\n \\\"microsoft sgc\\\",\\n \\\"netscape sgc\\\"\",\n\t\"username\":          \"Information about the requesting user. See user.Info interface for details.\",\n\t\"uid\":               \"UID information about the requesting user. See user.Info interface for details.\",\n\t\"groups\":            \"Group information about the requesting user. See user.Info interface for details.\",\n\t\"extra\":             \"Extra information about the requesting user. See user.Info interface for details.\",\n}\n\nfunc (CertificateSigningRequestSpec) SwaggerDoc() map[string]string {\n\treturn map_CertificateSigningRequestSpec\n}\n\nvar map_CertificateSigningRequestStatus = map[string]string{\n\t\"conditions\":  \"Conditions applied to the request, such as approval or denial.\",\n\t\"certificate\": \"If request was approved, the controller will place the issued certificate here.\",\n}\n\nfunc (CertificateSigningRequestStatus) SwaggerDoc() map[string]string {\n\treturn map_CertificateSigningRequestStatus\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1beta1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CertificateSigningRequest) DeepCopyInto(out *CertificateSigningRequest) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateSigningRequest.\nfunc (in *CertificateSigningRequest) DeepCopy() *CertificateSigningRequest {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CertificateSigningRequest)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CertificateSigningRequest) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CertificateSigningRequestCondition) DeepCopyInto(out *CertificateSigningRequestCondition) {\n\t*out = *in\n\tin.LastUpdateTime.DeepCopyInto(&out.LastUpdateTime)\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateSigningRequestCondition.\nfunc (in *CertificateSigningRequestCondition) DeepCopy() *CertificateSigningRequestCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CertificateSigningRequestCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CertificateSigningRequestList) DeepCopyInto(out *CertificateSigningRequestList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]CertificateSigningRequest, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateSigningRequestList.\nfunc (in *CertificateSigningRequestList) DeepCopy() *CertificateSigningRequestList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CertificateSigningRequestList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CertificateSigningRequestList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CertificateSigningRequestSpec) DeepCopyInto(out *CertificateSigningRequestSpec) {\n\t*out = *in\n\tif in.Request != nil {\n\t\tin, out := &in.Request, &out.Request\n\t\t*out = make([]byte, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.SignerName != nil {\n\t\tin, out := &in.SignerName, &out.SignerName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.ExpirationSeconds != nil {\n\t\tin, out := &in.ExpirationSeconds, &out.ExpirationSeconds\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Usages != nil {\n\t\tin, out := &in.Usages, &out.Usages\n\t\t*out = make([]KeyUsage, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Groups != nil {\n\t\tin, out := &in.Groups, &out.Groups\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Extra != nil {\n\t\tin, out := &in.Extra, &out.Extra\n\t\t*out = make(map[string]ExtraValue, len(*in))\n\t\tfor key, val := range *in {\n\t\t\tvar outVal []string\n\t\t\tif val == nil {\n\t\t\t\t(*out)[key] = nil\n\t\t\t} else {\n\t\t\t\tin, out := &val, &outVal\n\t\t\t\t*out = make(ExtraValue, len(*in))\n\t\t\t\tcopy(*out, *in)\n\t\t\t}\n\t\t\t(*out)[key] = outVal\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateSigningRequestSpec.\nfunc (in *CertificateSigningRequestSpec) DeepCopy() *CertificateSigningRequestSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CertificateSigningRequestSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CertificateSigningRequestStatus) DeepCopyInto(out *CertificateSigningRequestStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]CertificateSigningRequestCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Certificate != nil {\n\t\tin, out := &in.Certificate, &out.Certificate\n\t\t*out = make([]byte, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateSigningRequestStatus.\nfunc (in *CertificateSigningRequestStatus) DeepCopy() *CertificateSigningRequestStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CertificateSigningRequestStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in ExtraValue) DeepCopyInto(out *ExtraValue) {\n\t{\n\t\tin := &in\n\t\t*out = make(ExtraValue, len(*in))\n\t\tcopy(*out, *in)\n\t\treturn\n\t}\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtraValue.\nfunc (in ExtraValue) DeepCopy() ExtraValue {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExtraValue)\n\tin.DeepCopyInto(out)\n\treturn *out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/certificates/v1beta1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *CertificateSigningRequest) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 12\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *CertificateSigningRequest) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *CertificateSigningRequest) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"certificates.k8s.io\", Version: \"v1\", Kind: \"CertificateSigningRequest\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *CertificateSigningRequest) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *CertificateSigningRequestList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 12\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *CertificateSigningRequestList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *CertificateSigningRequestList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"certificates.k8s.io\", Version: \"v1\", Kind: \"CertificateSigningRequestList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *CertificateSigningRequestList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/coordination/v1/doc.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\n// +groupName=coordination.k8s.io\n\npackage v1 // import \"k8s.io/api/coordination/v1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/coordination/v1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/coordination/v1/generated.proto\n\npackage v1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *Lease) Reset()      { *m = Lease{} }\nfunc (*Lease) ProtoMessage() {}\nfunc (*Lease) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_239d5a4df3139dce, []int{0}\n}\nfunc (m *Lease) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Lease) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Lease) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Lease.Merge(m, src)\n}\nfunc (m *Lease) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Lease) XXX_DiscardUnknown() {\n\txxx_messageInfo_Lease.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Lease proto.InternalMessageInfo\n\nfunc (m *LeaseList) Reset()      { *m = LeaseList{} }\nfunc (*LeaseList) ProtoMessage() {}\nfunc (*LeaseList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_239d5a4df3139dce, []int{1}\n}\nfunc (m *LeaseList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LeaseList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LeaseList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LeaseList.Merge(m, src)\n}\nfunc (m *LeaseList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LeaseList) XXX_DiscardUnknown() {\n\txxx_messageInfo_LeaseList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LeaseList proto.InternalMessageInfo\n\nfunc (m *LeaseSpec) Reset()      { *m = LeaseSpec{} }\nfunc (*LeaseSpec) ProtoMessage() {}\nfunc (*LeaseSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_239d5a4df3139dce, []int{2}\n}\nfunc (m *LeaseSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LeaseSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LeaseSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LeaseSpec.Merge(m, src)\n}\nfunc (m *LeaseSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LeaseSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_LeaseSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LeaseSpec proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*Lease)(nil), \"k8s.io.api.coordination.v1.Lease\")\n\tproto.RegisterType((*LeaseList)(nil), \"k8s.io.api.coordination.v1.LeaseList\")\n\tproto.RegisterType((*LeaseSpec)(nil), \"k8s.io.api.coordination.v1.LeaseSpec\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/coordination/v1/generated.proto\", fileDescriptor_239d5a4df3139dce)\n}\n\nvar fileDescriptor_239d5a4df3139dce = []byte{\n\t// 588 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x94, 0xdf, 0x4e, 0xd4, 0x40,\n\t0x14, 0xc6, 0xb7, 0xb0, 0xab, 0xec, 0xac, 0xfc, 0xc9, 0xc8, 0x45, 0xb3, 0x17, 0x2d, 0x92, 0x98,\n\t0x10, 0x13, 0xa7, 0x42, 0x8c, 0x31, 0x26, 0x26, 0x58, 0x89, 0x4a, 0xb2, 0x44, 0x53, 0xb8, 0x32,\n\t0x5c, 0x38, 0xdb, 0x1e, 0xba, 0x23, 0xb4, 0x53, 0x67, 0x66, 0x31, 0xdc, 0xf9, 0x08, 0x3e, 0x81,\n\t0xef, 0xa0, 0x4f, 0xc1, 0x25, 0x97, 0x5c, 0x35, 0x32, 0xbe, 0x85, 0x57, 0x66, 0x66, 0x0b, 0x0b,\n\t0xcb, 0x6e, 0x20, 0xde, 0x75, 0xce, 0x39, 0xdf, 0xef, 0x7c, 0x73, 0x4e, 0x5b, 0xf4, 0x68, 0xff,\n\t0xb9, 0x24, 0x8c, 0x07, 0xb4, 0x60, 0x41, 0xcc, 0xb9, 0x48, 0x58, 0x4e, 0x15, 0xe3, 0x79, 0x70,\n\t0xb8, 0x1a, 0xa4, 0x90, 0x83, 0xa0, 0x0a, 0x12, 0x52, 0x08, 0xae, 0x38, 0x6e, 0x0f, 0x6a, 0x09,\n\t0x2d, 0x18, 0xb9, 0x5c, 0x4b, 0x0e, 0x57, 0xdb, 0x8f, 0x53, 0xa6, 0x7a, 0xfd, 0x2e, 0x89, 0x79,\n\t0x16, 0xa4, 0x3c, 0xe5, 0x81, 0x95, 0x74, 0xfb, 0x7b, 0xf6, 0x64, 0x0f, 0xf6, 0x69, 0x80, 0x6a,\n\t0x3f, 0x1d, 0xb6, 0xcd, 0x68, 0xdc, 0x63, 0x39, 0x88, 0xa3, 0xa0, 0xd8, 0x4f, 0x4d, 0x40, 0x06,\n\t0x19, 0x28, 0x3a, 0xc6, 0x40, 0x3b, 0x98, 0xa4, 0x12, 0xfd, 0x5c, 0xb1, 0x0c, 0xae, 0x09, 0x9e,\n\t0xdd, 0x24, 0x90, 0x71, 0x0f, 0x32, 0x3a, 0xaa, 0x5b, 0xfe, 0xe5, 0xa0, 0x46, 0x07, 0xa8, 0x04,\n\t0xfc, 0x09, 0xcd, 0x18, 0x37, 0x09, 0x55, 0xd4, 0x75, 0x96, 0x9c, 0x95, 0xd6, 0xda, 0x13, 0x32,\n\t0x1c, 0xc3, 0x05, 0x94, 0x14, 0xfb, 0xa9, 0x09, 0x48, 0x62, 0xaa, 0xc9, 0xe1, 0x2a, 0x79, 0xdf,\n\t0xfd, 0x0c, 0xb1, 0xda, 0x02, 0x45, 0x43, 0x7c, 0x5c, 0xfa, 0x35, 0x5d, 0xfa, 0x68, 0x18, 0x8b,\n\t0x2e, 0xa8, 0xf8, 0x2d, 0xaa, 0xcb, 0x02, 0x62, 0x77, 0xca, 0xd2, 0x1f, 0x92, 0xc9, 0x43, 0x26,\n\t0xd6, 0xd2, 0x76, 0x01, 0x71, 0x78, 0xaf, 0x42, 0xd6, 0xcd, 0x29, 0xb2, 0x80, 0xe5, 0x9f, 0x0e,\n\t0x6a, 0xda, 0x8a, 0x0e, 0x93, 0x0a, 0xef, 0x5e, 0x33, 0x4e, 0x6e, 0x67, 0xdc, 0xa8, 0xad, 0xed,\n\t0x85, 0xaa, 0xc7, 0xcc, 0x79, 0xe4, 0x92, 0xe9, 0x37, 0xa8, 0xc1, 0x14, 0x64, 0xd2, 0x9d, 0x5a,\n\t0x9a, 0x5e, 0x69, 0xad, 0x3d, 0xb8, 0xd1, 0x75, 0x38, 0x5b, 0xd1, 0x1a, 0x9b, 0x46, 0x17, 0x0d,\n\t0xe4, 0xcb, 0x3f, 0xea, 0x95, 0x67, 0x73, 0x0f, 0xfc, 0x02, 0xcd, 0xf5, 0xf8, 0x41, 0x02, 0x62,\n\t0x33, 0x81, 0x5c, 0x31, 0x75, 0x64, 0x9d, 0x37, 0x43, 0xac, 0x4b, 0x7f, 0xee, 0xdd, 0x95, 0x4c,\n\t0x34, 0x52, 0x89, 0x3b, 0x68, 0xf1, 0xc0, 0x80, 0x36, 0xfa, 0xc2, 0x76, 0xde, 0x86, 0x98, 0xe7,\n\t0x89, 0xb4, 0x63, 0x6d, 0x84, 0xae, 0x2e, 0xfd, 0xc5, 0xce, 0x98, 0x7c, 0x34, 0x56, 0x85, 0xbb,\n\t0xa8, 0x45, 0xe3, 0x2f, 0x7d, 0x26, 0x60, 0x87, 0x65, 0xe0, 0x4e, 0xdb, 0x01, 0x06, 0xb7, 0x1b,\n\t0xe0, 0x16, 0x8b, 0x05, 0x37, 0xb2, 0x70, 0x5e, 0x97, 0x7e, 0xeb, 0xd5, 0x90, 0x13, 0x5d, 0x86,\n\t0xe2, 0x5d, 0xd4, 0x14, 0x90, 0xc3, 0x57, 0xdb, 0xa1, 0xfe, 0x7f, 0x1d, 0x66, 0x75, 0xe9, 0x37,\n\t0xa3, 0x73, 0x4a, 0x34, 0x04, 0xe2, 0x75, 0xb4, 0x60, 0x6f, 0xb6, 0x23, 0x68, 0x2e, 0x99, 0xb9,\n\t0x9b, 0x74, 0x1b, 0x76, 0x16, 0x8b, 0xba, 0xf4, 0x17, 0x3a, 0x23, 0xb9, 0xe8, 0x5a, 0x35, 0xde,\n\t0x40, 0x33, 0x52, 0x99, 0xaf, 0x22, 0x3d, 0x72, 0xef, 0xd8, 0x3d, 0xac, 0x98, 0xb7, 0x61, 0xbb,\n\t0x8a, 0xfd, 0x2d, 0x7d, 0xf7, 0xf5, 0xf9, 0xaa, 0x21, 0x19, 0x6c, 0xb1, 0xca, 0x45, 0x17, 0x4a,\n\t0xfc, 0x12, 0xcd, 0x17, 0x02, 0xf6, 0x40, 0x08, 0x48, 0x06, 0x2b, 0x74, 0xef, 0x5a, 0xd8, 0x7d,\n\t0x5d, 0xfa, 0xf3, 0x1f, 0xae, 0xa6, 0xa2, 0xd1, 0xda, 0x70, 0xfd, 0xf8, 0xcc, 0xab, 0x9d, 0x9c,\n\t0x79, 0xb5, 0xd3, 0x33, 0xaf, 0xf6, 0x4d, 0x7b, 0xce, 0xb1, 0xf6, 0x9c, 0x13, 0xed, 0x39, 0xa7,\n\t0xda, 0x73, 0x7e, 0x6b, 0xcf, 0xf9, 0xfe, 0xc7, 0xab, 0x7d, 0x6c, 0x4f, 0xfe, 0x8b, 0xfd, 0x0b,\n\t0x00, 0x00, 0xff, 0xff, 0xf8, 0xf4, 0xd4, 0x78, 0xe2, 0x04, 0x00, 0x00,\n}\n\nfunc (m *Lease) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Lease) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Lease) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LeaseList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LeaseList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LeaseList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LeaseSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LeaseSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LeaseSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.PreferredHolder != nil {\n\t\ti -= len(*m.PreferredHolder)\n\t\tcopy(dAtA[i:], *m.PreferredHolder)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.PreferredHolder)))\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif m.Strategy != nil {\n\t\ti -= len(*m.Strategy)\n\t\tcopy(dAtA[i:], *m.Strategy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Strategy)))\n\t\ti--\n\t\tdAtA[i] = 0x32\n\t}\n\tif m.LeaseTransitions != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.LeaseTransitions))\n\t\ti--\n\t\tdAtA[i] = 0x28\n\t}\n\tif m.RenewTime != nil {\n\t\t{\n\t\t\tsize, err := m.RenewTime.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.AcquireTime != nil {\n\t\t{\n\t\t\tsize, err := m.AcquireTime.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.LeaseDurationSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.LeaseDurationSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif m.HolderIdentity != nil {\n\t\ti -= len(*m.HolderIdentity)\n\t\tcopy(dAtA[i:], *m.HolderIdentity)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.HolderIdentity)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *Lease) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *LeaseList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *LeaseSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.HolderIdentity != nil {\n\t\tl = len(*m.HolderIdentity)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.LeaseDurationSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.LeaseDurationSeconds))\n\t}\n\tif m.AcquireTime != nil {\n\t\tl = m.AcquireTime.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.RenewTime != nil {\n\t\tl = m.RenewTime.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.LeaseTransitions != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.LeaseTransitions))\n\t}\n\tif m.Strategy != nil {\n\t\tl = len(*m.Strategy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.PreferredHolder != nil {\n\t\tl = len(*m.PreferredHolder)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *Lease) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Lease{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"LeaseSpec\", \"LeaseSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LeaseList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Lease{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Lease\", \"Lease\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&LeaseList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LeaseSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LeaseSpec{`,\n\t\t`HolderIdentity:` + valueToStringGenerated(this.HolderIdentity) + `,`,\n\t\t`LeaseDurationSeconds:` + valueToStringGenerated(this.LeaseDurationSeconds) + `,`,\n\t\t`AcquireTime:` + strings.Replace(fmt.Sprintf(\"%v\", this.AcquireTime), \"MicroTime\", \"v1.MicroTime\", 1) + `,`,\n\t\t`RenewTime:` + strings.Replace(fmt.Sprintf(\"%v\", this.RenewTime), \"MicroTime\", \"v1.MicroTime\", 1) + `,`,\n\t\t`LeaseTransitions:` + valueToStringGenerated(this.LeaseTransitions) + `,`,\n\t\t`Strategy:` + valueToStringGenerated(this.Strategy) + `,`,\n\t\t`PreferredHolder:` + valueToStringGenerated(this.PreferredHolder) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *Lease) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Lease: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Lease: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LeaseList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LeaseList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LeaseList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Lease{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LeaseSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LeaseSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LeaseSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HolderIdentity\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.HolderIdentity = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LeaseDurationSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.LeaseDurationSeconds = &v\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AcquireTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AcquireTime == nil {\n\t\t\t\tm.AcquireTime = &v1.MicroTime{}\n\t\t\t}\n\t\t\tif err := m.AcquireTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RenewTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RenewTime == nil {\n\t\t\t\tm.RenewTime = &v1.MicroTime{}\n\t\t\t}\n\t\t\tif err := m.RenewTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LeaseTransitions\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.LeaseTransitions = &v\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Strategy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := CoordinatedLeaseStrategy(dAtA[iNdEx:postIndex])\n\t\t\tm.Strategy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PreferredHolder\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.PreferredHolder = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/coordination/v1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.coordination.v1;\n\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/coordination/v1\";\n\n// Lease defines a lease concept.\nmessage Lease {\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec contains the specification of the Lease.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional LeaseSpec spec = 2;\n}\n\n// LeaseList is a list of Lease objects.\nmessage LeaseList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is a list of schema objects.\n  repeated Lease items = 2;\n}\n\n// LeaseSpec is a specification of a Lease.\nmessage LeaseSpec {\n  // holderIdentity contains the identity of the holder of a current lease.\n  // If Coordinated Leader Election is used, the holder identity must be\n  // equal to the elected LeaseCandidate.metadata.name field.\n  // +optional\n  optional string holderIdentity = 1;\n\n  // leaseDurationSeconds is a duration that candidates for a lease need\n  // to wait to force acquire it. This is measured against the time of last\n  // observed renewTime.\n  // +optional\n  optional int32 leaseDurationSeconds = 2;\n\n  // acquireTime is a time when the current lease was acquired.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime acquireTime = 3;\n\n  // renewTime is a time when the current holder of a lease has last\n  // updated the lease.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime renewTime = 4;\n\n  // leaseTransitions is the number of transitions of a lease between\n  // holders.\n  // +optional\n  optional int32 leaseTransitions = 5;\n\n  // Strategy indicates the strategy for picking the leader for coordinated leader election.\n  // If the field is not specified, there is no active coordination for this lease.\n  // (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled.\n  // +featureGate=CoordinatedLeaderElection\n  // +optional\n  optional string strategy = 6;\n\n  // PreferredHolder signals to a lease holder that the lease has a\n  // more optimal holder and should be given up.\n  // This field can only be set if Strategy is also set.\n  // +featureGate=CoordinatedLeaderElection\n  // +optional\n  optional string preferredHolder = 7;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/coordination/v1/register.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"coordination.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to api.Scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&Lease{},\n\t\t&LeaseList{},\n\t)\n\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/coordination/v1/types.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\ntype CoordinatedLeaseStrategy string\n\n// CoordinatedLeaseStrategy defines the strategy for picking the leader for coordinated leader election.\nconst (\n\t// OldestEmulationVersion picks the oldest LeaseCandidate, where \"oldest\" is defined as follows\n\t// 1) Select the candidate(s) with the lowest emulation version\n\t// 2) If multiple candidates have the same emulation version, select the candidate(s) with the lowest binary version. (Note that binary version must be greater or equal to emulation version)\n\t// 3) If multiple candidates have the same binary version, select the candidate with the oldest creationTimestamp.\n\t// If a candidate does not specify the emulationVersion and binaryVersion fields, it will not be considered a candidate for the lease.\n\tOldestEmulationVersion CoordinatedLeaseStrategy = \"OldestEmulationVersion\"\n)\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.14\n\n// Lease defines a lease concept.\ntype Lease struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec contains the specification of the Lease.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec LeaseSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n}\n\n// LeaseSpec is a specification of a Lease.\ntype LeaseSpec struct {\n\t// holderIdentity contains the identity of the holder of a current lease.\n\t// If Coordinated Leader Election is used, the holder identity must be\n\t// equal to the elected LeaseCandidate.metadata.name field.\n\t// +optional\n\tHolderIdentity *string `json:\"holderIdentity,omitempty\" protobuf:\"bytes,1,opt,name=holderIdentity\"`\n\t// leaseDurationSeconds is a duration that candidates for a lease need\n\t// to wait to force acquire it. This is measured against the time of last\n\t// observed renewTime.\n\t// +optional\n\tLeaseDurationSeconds *int32 `json:\"leaseDurationSeconds,omitempty\" protobuf:\"varint,2,opt,name=leaseDurationSeconds\"`\n\t// acquireTime is a time when the current lease was acquired.\n\t// +optional\n\tAcquireTime *metav1.MicroTime `json:\"acquireTime,omitempty\" protobuf:\"bytes,3,opt,name=acquireTime\"`\n\t// renewTime is a time when the current holder of a lease has last\n\t// updated the lease.\n\t// +optional\n\tRenewTime *metav1.MicroTime `json:\"renewTime,omitempty\" protobuf:\"bytes,4,opt,name=renewTime\"`\n\t// leaseTransitions is the number of transitions of a lease between\n\t// holders.\n\t// +optional\n\tLeaseTransitions *int32 `json:\"leaseTransitions,omitempty\" protobuf:\"varint,5,opt,name=leaseTransitions\"`\n\t// Strategy indicates the strategy for picking the leader for coordinated leader election.\n\t// If the field is not specified, there is no active coordination for this lease.\n\t// (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled.\n\t// +featureGate=CoordinatedLeaderElection\n\t// +optional\n\tStrategy *CoordinatedLeaseStrategy `json:\"strategy,omitempty\" protobuf:\"bytes,6,opt,name=strategy\"`\n\t// PreferredHolder signals to a lease holder that the lease has a\n\t// more optimal holder and should be given up.\n\t// This field can only be set if Strategy is also set.\n\t// +featureGate=CoordinatedLeaderElection\n\t// +optional\n\tPreferredHolder *string `json:\"preferredHolder,omitempty\" protobuf:\"bytes,7,opt,name=preferredHolder\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.19\n\n// LeaseList is a list of Lease objects.\ntype LeaseList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is a list of schema objects.\n\tItems []Lease `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/coordination/v1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_Lease = map[string]string{\n\t\"\":         \"Lease defines a lease concept.\",\n\t\"metadata\": \"More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (Lease) SwaggerDoc() map[string]string {\n\treturn map_Lease\n}\n\nvar map_LeaseList = map[string]string{\n\t\"\":         \"LeaseList is a list of Lease objects.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is a list of schema objects.\",\n}\n\nfunc (LeaseList) SwaggerDoc() map[string]string {\n\treturn map_LeaseList\n}\n\nvar map_LeaseSpec = map[string]string{\n\t\"\":                     \"LeaseSpec is a specification of a Lease.\",\n\t\"holderIdentity\":       \"holderIdentity contains the identity of the holder of a current lease. If Coordinated Leader Election is used, the holder identity must be equal to the elected LeaseCandidate.metadata.name field.\",\n\t\"leaseDurationSeconds\": \"leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measured against the time of last observed renewTime.\",\n\t\"acquireTime\":          \"acquireTime is a time when the current lease was acquired.\",\n\t\"renewTime\":            \"renewTime is a time when the current holder of a lease has last updated the lease.\",\n\t\"leaseTransitions\":     \"leaseTransitions is the number of transitions of a lease between holders.\",\n\t\"strategy\":             \"Strategy indicates the strategy for picking the leader for coordinated leader election. If the field is not specified, there is no active coordination for this lease. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled.\",\n\t\"preferredHolder\":      \"PreferredHolder signals to a lease holder that the lease has a more optimal holder and should be given up. This field can only be set if Strategy is also set.\",\n}\n\nfunc (LeaseSpec) SwaggerDoc() map[string]string {\n\treturn map_LeaseSpec\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/coordination/v1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Lease) DeepCopyInto(out *Lease) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Lease.\nfunc (in *Lease) DeepCopy() *Lease {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Lease)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Lease) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LeaseList) DeepCopyInto(out *LeaseList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Lease, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LeaseList.\nfunc (in *LeaseList) DeepCopy() *LeaseList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LeaseList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *LeaseList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LeaseSpec) DeepCopyInto(out *LeaseSpec) {\n\t*out = *in\n\tif in.HolderIdentity != nil {\n\t\tin, out := &in.HolderIdentity, &out.HolderIdentity\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.LeaseDurationSeconds != nil {\n\t\tin, out := &in.LeaseDurationSeconds, &out.LeaseDurationSeconds\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.AcquireTime != nil {\n\t\tin, out := &in.AcquireTime, &out.AcquireTime\n\t\t*out = (*in).DeepCopy()\n\t}\n\tif in.RenewTime != nil {\n\t\tin, out := &in.RenewTime, &out.RenewTime\n\t\t*out = (*in).DeepCopy()\n\t}\n\tif in.LeaseTransitions != nil {\n\t\tin, out := &in.LeaseTransitions, &out.LeaseTransitions\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Strategy != nil {\n\t\tin, out := &in.Strategy, &out.Strategy\n\t\t*out = new(CoordinatedLeaseStrategy)\n\t\t**out = **in\n\t}\n\tif in.PreferredHolder != nil {\n\t\tin, out := &in.PreferredHolder, &out.PreferredHolder\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LeaseSpec.\nfunc (in *LeaseSpec) DeepCopy() *LeaseSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LeaseSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/coordination/v1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *Lease) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 14\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *LeaseList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 19\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/coordination/v1alpha2/doc.go",
    "content": "/*\nCopyright 2024 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\n// +groupName=coordination.k8s.io\n\npackage v1alpha2 // import \"k8s.io/api/coordination/v1alpha2\"\n"
  },
  {
    "path": "vendor/k8s.io/api/coordination/v1alpha2/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/coordination/v1alpha2/generated.proto\n\npackage v1alpha2\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\n\tk8s_io_api_coordination_v1 \"k8s.io/api/coordination/v1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *LeaseCandidate) Reset()      { *m = LeaseCandidate{} }\nfunc (*LeaseCandidate) ProtoMessage() {}\nfunc (*LeaseCandidate) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c1ec5c989d262916, []int{0}\n}\nfunc (m *LeaseCandidate) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LeaseCandidate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LeaseCandidate) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LeaseCandidate.Merge(m, src)\n}\nfunc (m *LeaseCandidate) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LeaseCandidate) XXX_DiscardUnknown() {\n\txxx_messageInfo_LeaseCandidate.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LeaseCandidate proto.InternalMessageInfo\n\nfunc (m *LeaseCandidateList) Reset()      { *m = LeaseCandidateList{} }\nfunc (*LeaseCandidateList) ProtoMessage() {}\nfunc (*LeaseCandidateList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c1ec5c989d262916, []int{1}\n}\nfunc (m *LeaseCandidateList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LeaseCandidateList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LeaseCandidateList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LeaseCandidateList.Merge(m, src)\n}\nfunc (m *LeaseCandidateList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LeaseCandidateList) XXX_DiscardUnknown() {\n\txxx_messageInfo_LeaseCandidateList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LeaseCandidateList proto.InternalMessageInfo\n\nfunc (m *LeaseCandidateSpec) Reset()      { *m = LeaseCandidateSpec{} }\nfunc (*LeaseCandidateSpec) ProtoMessage() {}\nfunc (*LeaseCandidateSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c1ec5c989d262916, []int{2}\n}\nfunc (m *LeaseCandidateSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LeaseCandidateSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LeaseCandidateSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LeaseCandidateSpec.Merge(m, src)\n}\nfunc (m *LeaseCandidateSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LeaseCandidateSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_LeaseCandidateSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LeaseCandidateSpec proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*LeaseCandidate)(nil), \"k8s.io.api.coordination.v1alpha2.LeaseCandidate\")\n\tproto.RegisterType((*LeaseCandidateList)(nil), \"k8s.io.api.coordination.v1alpha2.LeaseCandidateList\")\n\tproto.RegisterType((*LeaseCandidateSpec)(nil), \"k8s.io.api.coordination.v1alpha2.LeaseCandidateSpec\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/coordination/v1alpha2/generated.proto\", fileDescriptor_c1ec5c989d262916)\n}\n\nvar fileDescriptor_c1ec5c989d262916 = []byte{\n\t// 555 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x94, 0x4f, 0x8b, 0xd3, 0x4e,\n\t0x18, 0xc7, 0x9b, 0xdd, 0xf6, 0x47, 0x3b, 0xbf, 0xad, 0xd4, 0x01, 0x21, 0xf4, 0x90, 0x96, 0x9e,\n\t0x44, 0x70, 0x66, 0x77, 0x5d, 0x44, 0xf0, 0x96, 0xf5, 0x0f, 0x42, 0x57, 0x25, 0xab, 0x0b, 0xca,\n\t0x1e, 0x9c, 0x26, 0x8f, 0xe9, 0xd8, 0x26, 0x13, 0x92, 0xe9, 0x4a, 0x6f, 0xbe, 0x04, 0x5f, 0x56,\n\t0xf5, 0xb4, 0xc7, 0x3d, 0x15, 0x1b, 0xc1, 0x17, 0xe1, 0x49, 0x66, 0x9a, 0xf4, 0xaf, 0xa5, 0xc5,\n\t0x5b, 0xe7, 0x99, 0xe7, 0xf3, 0x99, 0xf9, 0x3e, 0x69, 0x82, 0x0e, 0x7b, 0x8f, 0x12, 0xc2, 0x05,\n\t0x65, 0x11, 0xa7, 0xae, 0x10, 0xb1, 0xc7, 0x43, 0x26, 0xb9, 0x08, 0xe9, 0xd5, 0x11, 0xeb, 0x47,\n\t0x5d, 0x76, 0x4c, 0x7d, 0x08, 0x21, 0x66, 0x12, 0x3c, 0x12, 0xc5, 0x42, 0x0a, 0xdc, 0x9c, 0x12,\n\t0x84, 0x45, 0x9c, 0x2c, 0x12, 0x24, 0x27, 0xea, 0xf7, 0x7d, 0x2e, 0xbb, 0x83, 0x0e, 0x71, 0x45,\n\t0x40, 0x7d, 0xe1, 0x0b, 0xaa, 0xc1, 0xce, 0xe0, 0xa3, 0x5e, 0xe9, 0x85, 0xfe, 0x35, 0x15, 0xd6,\n\t0xef, 0x6d, 0xbe, 0xc2, 0xea, 0xe1, 0xf5, 0x93, 0x79, 0x6f, 0xc0, 0xdc, 0x2e, 0x0f, 0x21, 0x1e,\n\t0xd2, 0xa8, 0xe7, 0xab, 0x42, 0x42, 0x03, 0x90, 0xec, 0x6f, 0x14, 0xdd, 0x44, 0xc5, 0x83, 0x50,\n\t0xf2, 0x00, 0xd6, 0x80, 0x87, 0xdb, 0x80, 0xc4, 0xed, 0x42, 0xc0, 0x56, 0xb9, 0xd6, 0x77, 0x03,\n\t0xdd, 0x6a, 0x03, 0x4b, 0xe0, 0x94, 0x85, 0x1e, 0xf7, 0x98, 0x04, 0xfc, 0x01, 0x95, 0xd5, 0xb5,\n\t0x3c, 0x26, 0x99, 0x69, 0x34, 0x8d, 0xbb, 0xff, 0x1f, 0x1f, 0x92, 0xf9, 0x04, 0x67, 0x76, 0x12,\n\t0xf5, 0x7c, 0x55, 0x48, 0x88, 0xea, 0x26, 0x57, 0x47, 0xe4, 0x55, 0xe7, 0x13, 0xb8, 0xf2, 0x0c,\n\t0x24, 0xb3, 0xf1, 0x68, 0xdc, 0x28, 0xa4, 0xe3, 0x06, 0x9a, 0xd7, 0x9c, 0x99, 0x15, 0x5f, 0xa0,\n\t0x62, 0x12, 0x81, 0x6b, 0xee, 0x69, 0xfb, 0x09, 0xd9, 0xf6, 0x7c, 0xc8, 0xf2, 0x0d, 0xcf, 0x23,\n\t0x70, 0xed, 0x83, 0xec, 0x84, 0xa2, 0x5a, 0x39, 0xda, 0xd7, 0xfa, 0x66, 0x20, 0xbc, 0xdc, 0xda,\n\t0xe6, 0x89, 0xc4, 0x97, 0x6b, 0x81, 0xc8, 0x6e, 0x81, 0x14, 0xad, 0xe3, 0xd4, 0xb2, 0xc3, 0xca,\n\t0x79, 0x65, 0x21, 0xcc, 0x5b, 0x54, 0xe2, 0x12, 0x82, 0xc4, 0xdc, 0x6b, 0xee, 0xaf, 0xcc, 0x6a,\n\t0xa7, 0x34, 0x76, 0x35, 0x93, 0x97, 0x5e, 0x28, 0x8d, 0x33, 0xb5, 0xb5, 0x7e, 0xed, 0xaf, 0x66,\n\t0x51, 0x41, 0x31, 0x45, 0x95, 0xbe, 0xaa, 0xbe, 0x64, 0x01, 0xe8, 0x30, 0x15, 0xfb, 0x76, 0xc6,\n\t0x57, 0xda, 0xf9, 0x86, 0x33, 0xef, 0xc1, 0xef, 0x50, 0x39, 0xe2, 0xa1, 0xff, 0x86, 0x07, 0x90,\n\t0xcd, 0x9b, 0xee, 0x16, 0xfe, 0x8c, 0xbb, 0xb1, 0x50, 0x98, 0x7d, 0xa0, 0x92, 0xbf, 0xce, 0x24,\n\t0xce, 0x4c, 0x87, 0x2f, 0x51, 0x25, 0x86, 0x10, 0x3e, 0x6b, 0xf7, 0xfe, 0xbf, 0xb9, 0xab, 0xea,\n\t0xe2, 0x4e, 0x6e, 0x71, 0xe6, 0x42, 0xfc, 0x18, 0x55, 0x3b, 0x3c, 0x64, 0xf1, 0xf0, 0x02, 0xe2,\n\t0x84, 0x8b, 0xd0, 0x2c, 0xea, 0xb4, 0x77, 0xb2, 0xb4, 0x55, 0x7b, 0x71, 0xd3, 0x59, 0xee, 0xc5,\n\t0x4f, 0x50, 0x0d, 0x82, 0x41, 0x5f, 0x0f, 0x3e, 0xe7, 0x4b, 0x9a, 0x37, 0x33, 0xbe, 0xf6, 0x74,\n\t0x65, 0xdf, 0x59, 0x23, 0xb0, 0x8b, 0xca, 0x89, 0x54, 0x6f, 0x8b, 0x3f, 0x34, 0xff, 0xd3, 0xf4,\n\t0xf3, 0xfc, 0x8f, 0x70, 0x9e, 0xd5, 0x7f, 0x8f, 0x1b, 0x0f, 0x36, 0x7f, 0x0d, 0xc8, 0x69, 0xbe,\n\t0x06, 0x4f, 0x3f, 0x9d, 0x1c, 0x73, 0x66, 0x62, 0xfb, 0xd9, 0x68, 0x62, 0x15, 0xae, 0x27, 0x56,\n\t0xe1, 0x66, 0x62, 0x15, 0xbe, 0xa4, 0x96, 0x31, 0x4a, 0x2d, 0xe3, 0x3a, 0xb5, 0x8c, 0x9b, 0xd4,\n\t0x32, 0x7e, 0xa4, 0x96, 0xf1, 0xf5, 0xa7, 0x55, 0x78, 0xdf, 0xdc, 0xf6, 0xd5, 0xfb, 0x13, 0x00,\n\t0x00, 0xff, 0xff, 0x7f, 0x15, 0x63, 0xd0, 0x18, 0x05, 0x00, 0x00,\n}\n\nfunc (m *LeaseCandidate) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LeaseCandidate) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LeaseCandidate) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LeaseCandidateList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LeaseCandidateList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LeaseCandidateList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LeaseCandidateSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LeaseCandidateSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LeaseCandidateSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Strategy)\n\tcopy(dAtA[i:], m.Strategy)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Strategy)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.EmulationVersion)\n\tcopy(dAtA[i:], m.EmulationVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.EmulationVersion)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.BinaryVersion)\n\tcopy(dAtA[i:], m.BinaryVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.BinaryVersion)))\n\ti--\n\tdAtA[i] = 0x22\n\tif m.RenewTime != nil {\n\t\t{\n\t\t\tsize, err := m.RenewTime.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.PingTime != nil {\n\t\t{\n\t\t\tsize, err := m.PingTime.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.LeaseName)\n\tcopy(dAtA[i:], m.LeaseName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.LeaseName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *LeaseCandidate) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *LeaseCandidateList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *LeaseCandidateSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.LeaseName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.PingTime != nil {\n\t\tl = m.PingTime.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.RenewTime != nil {\n\t\tl = m.RenewTime.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.BinaryVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.EmulationVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Strategy)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *LeaseCandidate) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LeaseCandidate{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"LeaseCandidateSpec\", \"LeaseCandidateSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LeaseCandidateList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]LeaseCandidate{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"LeaseCandidate\", \"LeaseCandidate\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&LeaseCandidateList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LeaseCandidateSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LeaseCandidateSpec{`,\n\t\t`LeaseName:` + fmt.Sprintf(\"%v\", this.LeaseName) + `,`,\n\t\t`PingTime:` + strings.Replace(fmt.Sprintf(\"%v\", this.PingTime), \"MicroTime\", \"v1.MicroTime\", 1) + `,`,\n\t\t`RenewTime:` + strings.Replace(fmt.Sprintf(\"%v\", this.RenewTime), \"MicroTime\", \"v1.MicroTime\", 1) + `,`,\n\t\t`BinaryVersion:` + fmt.Sprintf(\"%v\", this.BinaryVersion) + `,`,\n\t\t`EmulationVersion:` + fmt.Sprintf(\"%v\", this.EmulationVersion) + `,`,\n\t\t`Strategy:` + fmt.Sprintf(\"%v\", this.Strategy) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *LeaseCandidate) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LeaseCandidate: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LeaseCandidate: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LeaseCandidateList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LeaseCandidateList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LeaseCandidateList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, LeaseCandidate{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LeaseCandidateSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LeaseCandidateSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LeaseCandidateSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LeaseName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.LeaseName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PingTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.PingTime == nil {\n\t\t\t\tm.PingTime = &v1.MicroTime{}\n\t\t\t}\n\t\t\tif err := m.PingTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RenewTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RenewTime == nil {\n\t\t\t\tm.RenewTime = &v1.MicroTime{}\n\t\t\t}\n\t\t\tif err := m.RenewTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field BinaryVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.BinaryVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EmulationVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.EmulationVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Strategy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Strategy = k8s_io_api_coordination_v1.CoordinatedLeaseStrategy(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/coordination/v1alpha2/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.coordination.v1alpha2;\n\nimport \"k8s.io/api/coordination/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/coordination/v1alpha2\";\n\n// LeaseCandidate defines a candidate for a Lease object.\n// Candidates are created such that coordinated leader election will pick the best leader from the list of candidates.\nmessage LeaseCandidate {\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec contains the specification of the Lease.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional LeaseCandidateSpec spec = 2;\n}\n\n// LeaseCandidateList is a list of Lease objects.\nmessage LeaseCandidateList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is a list of schema objects.\n  repeated LeaseCandidate items = 2;\n}\n\n// LeaseCandidateSpec is a specification of a Lease.\nmessage LeaseCandidateSpec {\n  // LeaseName is the name of the lease for which this candidate is contending.\n  // This field is immutable.\n  // +required\n  optional string leaseName = 1;\n\n  // PingTime is the last time that the server has requested the LeaseCandidate\n  // to renew. It is only done during leader election to check if any\n  // LeaseCandidates have become ineligible. When PingTime is updated, the\n  // LeaseCandidate will respond by updating RenewTime.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime pingTime = 2;\n\n  // RenewTime is the time that the LeaseCandidate was last updated.\n  // Any time a Lease needs to do leader election, the PingTime field\n  // is updated to signal to the LeaseCandidate that they should update\n  // the RenewTime.\n  // Old LeaseCandidate objects are also garbage collected if it has been hours\n  // since the last renew. The PingTime field is updated regularly to prevent\n  // garbage collection for still active LeaseCandidates.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime renewTime = 3;\n\n  // BinaryVersion is the binary version. It must be in a semver format without leading `v`.\n  // This field is required.\n  // +required\n  optional string binaryVersion = 4;\n\n  // EmulationVersion is the emulation version. It must be in a semver format without leading `v`.\n  // EmulationVersion must be less than or equal to BinaryVersion.\n  // This field is required when strategy is \"OldestEmulationVersion\"\n  // +optional\n  optional string emulationVersion = 5;\n\n  // Strategy is the strategy that coordinated leader election will use for picking the leader.\n  // If multiple candidates for the same Lease return different strategies, the strategy provided\n  // by the candidate with the latest BinaryVersion will be used. If there is still conflict,\n  // this is a user error and coordinated leader election will not operate the Lease until resolved.\n  // (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled.\n  // +featureGate=CoordinatedLeaderElection\n  // +required\n  optional string strategy = 6;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/coordination/v1alpha2/register.go",
    "content": "/*\nCopyright 2024 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha2\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"coordination.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1alpha2\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to api.Scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&LeaseCandidate{},\n\t\t&LeaseCandidateList{},\n\t)\n\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/coordination/v1alpha2/types.go",
    "content": "/*\nCopyright 2024 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha2\n\nimport (\n\tv1 \"k8s.io/api/coordination/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.32\n\n// LeaseCandidate defines a candidate for a Lease object.\n// Candidates are created such that coordinated leader election will pick the best leader from the list of candidates.\ntype LeaseCandidate struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec contains the specification of the Lease.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec LeaseCandidateSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n}\n\n// LeaseCandidateSpec is a specification of a Lease.\ntype LeaseCandidateSpec struct {\n\t// LeaseName is the name of the lease for which this candidate is contending.\n\t// This field is immutable.\n\t// +required\n\tLeaseName string `json:\"leaseName\" protobuf:\"bytes,1,name=leaseName\"`\n\t// PingTime is the last time that the server has requested the LeaseCandidate\n\t// to renew. It is only done during leader election to check if any\n\t// LeaseCandidates have become ineligible. When PingTime is updated, the\n\t// LeaseCandidate will respond by updating RenewTime.\n\t// +optional\n\tPingTime *metav1.MicroTime `json:\"pingTime,omitempty\" protobuf:\"bytes,2,opt,name=pingTime\"`\n\t// RenewTime is the time that the LeaseCandidate was last updated.\n\t// Any time a Lease needs to do leader election, the PingTime field\n\t// is updated to signal to the LeaseCandidate that they should update\n\t// the RenewTime.\n\t// Old LeaseCandidate objects are also garbage collected if it has been hours\n\t// since the last renew. The PingTime field is updated regularly to prevent\n\t// garbage collection for still active LeaseCandidates.\n\t// +optional\n\tRenewTime *metav1.MicroTime `json:\"renewTime,omitempty\" protobuf:\"bytes,3,opt,name=renewTime\"`\n\t// BinaryVersion is the binary version. It must be in a semver format without leading `v`.\n\t// This field is required.\n\t// +required\n\tBinaryVersion string `json:\"binaryVersion\" protobuf:\"bytes,4,name=binaryVersion\"`\n\t// EmulationVersion is the emulation version. It must be in a semver format without leading `v`.\n\t// EmulationVersion must be less than or equal to BinaryVersion.\n\t// This field is required when strategy is \"OldestEmulationVersion\"\n\t// +optional\n\tEmulationVersion string `json:\"emulationVersion,omitempty\" protobuf:\"bytes,5,opt,name=emulationVersion\"`\n\t// Strategy is the strategy that coordinated leader election will use for picking the leader.\n\t// If multiple candidates for the same Lease return different strategies, the strategy provided\n\t// by the candidate with the latest BinaryVersion will be used. If there is still conflict,\n\t// this is a user error and coordinated leader election will not operate the Lease until resolved.\n\t// (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled.\n\t// +featureGate=CoordinatedLeaderElection\n\t// +required\n\tStrategy v1.CoordinatedLeaseStrategy `json:\"strategy,omitempty\" protobuf:\"bytes,6,opt,name=strategy\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.32\n\n// LeaseCandidateList is a list of Lease objects.\ntype LeaseCandidateList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is a list of schema objects.\n\tItems []LeaseCandidate `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/coordination/v1alpha2/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha2\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_LeaseCandidate = map[string]string{\n\t\"\":         \"LeaseCandidate defines a candidate for a Lease object. Candidates are created such that coordinated leader election will pick the best leader from the list of candidates.\",\n\t\"metadata\": \"More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (LeaseCandidate) SwaggerDoc() map[string]string {\n\treturn map_LeaseCandidate\n}\n\nvar map_LeaseCandidateList = map[string]string{\n\t\"\":         \"LeaseCandidateList is a list of Lease objects.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is a list of schema objects.\",\n}\n\nfunc (LeaseCandidateList) SwaggerDoc() map[string]string {\n\treturn map_LeaseCandidateList\n}\n\nvar map_LeaseCandidateSpec = map[string]string{\n\t\"\":                 \"LeaseCandidateSpec is a specification of a Lease.\",\n\t\"leaseName\":        \"LeaseName is the name of the lease for which this candidate is contending. This field is immutable.\",\n\t\"pingTime\":         \"PingTime is the last time that the server has requested the LeaseCandidate to renew. It is only done during leader election to check if any LeaseCandidates have become ineligible. When PingTime is updated, the LeaseCandidate will respond by updating RenewTime.\",\n\t\"renewTime\":        \"RenewTime is the time that the LeaseCandidate was last updated. Any time a Lease needs to do leader election, the PingTime field is updated to signal to the LeaseCandidate that they should update the RenewTime. Old LeaseCandidate objects are also garbage collected if it has been hours since the last renew. The PingTime field is updated regularly to prevent garbage collection for still active LeaseCandidates.\",\n\t\"binaryVersion\":    \"BinaryVersion is the binary version. It must be in a semver format without leading `v`. This field is required.\",\n\t\"emulationVersion\": \"EmulationVersion is the emulation version. It must be in a semver format without leading `v`. EmulationVersion must be less than or equal to BinaryVersion. This field is required when strategy is \\\"OldestEmulationVersion\\\"\",\n\t\"strategy\":         \"Strategy is the strategy that coordinated leader election will use for picking the leader. If multiple candidates for the same Lease return different strategies, the strategy provided by the candidate with the latest BinaryVersion will be used. If there is still conflict, this is a user error and coordinated leader election will not operate the Lease until resolved. (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled.\",\n}\n\nfunc (LeaseCandidateSpec) SwaggerDoc() map[string]string {\n\treturn map_LeaseCandidateSpec\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/coordination/v1alpha2/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1alpha2\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LeaseCandidate) DeepCopyInto(out *LeaseCandidate) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LeaseCandidate.\nfunc (in *LeaseCandidate) DeepCopy() *LeaseCandidate {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LeaseCandidate)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *LeaseCandidate) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LeaseCandidateList) DeepCopyInto(out *LeaseCandidateList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]LeaseCandidate, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LeaseCandidateList.\nfunc (in *LeaseCandidateList) DeepCopy() *LeaseCandidateList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LeaseCandidateList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *LeaseCandidateList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LeaseCandidateSpec) DeepCopyInto(out *LeaseCandidateSpec) {\n\t*out = *in\n\tif in.PingTime != nil {\n\t\tin, out := &in.PingTime, &out.PingTime\n\t\t*out = (*in).DeepCopy()\n\t}\n\tif in.RenewTime != nil {\n\t\tin, out := &in.RenewTime, &out.RenewTime\n\t\t*out = (*in).DeepCopy()\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LeaseCandidateSpec.\nfunc (in *LeaseCandidateSpec) DeepCopy() *LeaseCandidateSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LeaseCandidateSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/coordination/v1alpha2/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1alpha2\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *LeaseCandidate) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 32\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *LeaseCandidate) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 35\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *LeaseCandidate) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 38\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *LeaseCandidateList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 32\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *LeaseCandidateList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 35\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *LeaseCandidateList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 38\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/coordination/v1beta1/doc.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\n// +groupName=coordination.k8s.io\n\npackage v1beta1 // import \"k8s.io/api/coordination/v1beta1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/coordination/v1beta1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/coordination/v1beta1/generated.proto\n\npackage v1beta1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\n\tk8s_io_api_coordination_v1 \"k8s.io/api/coordination/v1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *Lease) Reset()      { *m = Lease{} }\nfunc (*Lease) ProtoMessage() {}\nfunc (*Lease) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_8d4e223b8bb23da3, []int{0}\n}\nfunc (m *Lease) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Lease) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Lease) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Lease.Merge(m, src)\n}\nfunc (m *Lease) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Lease) XXX_DiscardUnknown() {\n\txxx_messageInfo_Lease.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Lease proto.InternalMessageInfo\n\nfunc (m *LeaseList) Reset()      { *m = LeaseList{} }\nfunc (*LeaseList) ProtoMessage() {}\nfunc (*LeaseList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_8d4e223b8bb23da3, []int{1}\n}\nfunc (m *LeaseList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LeaseList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LeaseList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LeaseList.Merge(m, src)\n}\nfunc (m *LeaseList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LeaseList) XXX_DiscardUnknown() {\n\txxx_messageInfo_LeaseList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LeaseList proto.InternalMessageInfo\n\nfunc (m *LeaseSpec) Reset()      { *m = LeaseSpec{} }\nfunc (*LeaseSpec) ProtoMessage() {}\nfunc (*LeaseSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_8d4e223b8bb23da3, []int{2}\n}\nfunc (m *LeaseSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LeaseSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LeaseSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LeaseSpec.Merge(m, src)\n}\nfunc (m *LeaseSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LeaseSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_LeaseSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LeaseSpec proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*Lease)(nil), \"k8s.io.api.coordination.v1beta1.Lease\")\n\tproto.RegisterType((*LeaseList)(nil), \"k8s.io.api.coordination.v1beta1.LeaseList\")\n\tproto.RegisterType((*LeaseSpec)(nil), \"k8s.io.api.coordination.v1beta1.LeaseSpec\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/coordination/v1beta1/generated.proto\", fileDescriptor_8d4e223b8bb23da3)\n}\n\nvar fileDescriptor_8d4e223b8bb23da3 = []byte{\n\t// 600 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x94, 0xdf, 0x4e, 0xd4, 0x4e,\n\t0x14, 0xc7, 0xb7, 0xb0, 0xfb, 0xfb, 0xb1, 0xb3, 0xf2, 0x27, 0x23, 0x17, 0x0d, 0x17, 0x2d, 0xe1,\n\t0xc2, 0x10, 0x12, 0xa7, 0x82, 0xc6, 0x18, 0x13, 0x13, 0x2d, 0x9a, 0x48, 0x2c, 0xd1, 0x14, 0xae,\n\t0x0c, 0x89, 0xce, 0xb6, 0x87, 0xee, 0x08, 0xed, 0xd4, 0x99, 0x59, 0x0c, 0x77, 0x3e, 0x82, 0x4f,\n\t0xa3, 0xf1, 0x0d, 0xb8, 0xe4, 0x92, 0xab, 0x46, 0xc6, 0xb7, 0xf0, 0xca, 0xcc, 0x6c, 0x61, 0x61,\n\t0x81, 0xb0, 0xf1, 0x6e, 0xe7, 0x9c, 0xf3, 0xfd, 0x9c, 0xef, 0x9c, 0xb3, 0x53, 0x14, 0xec, 0x3d,\n\t0x91, 0x84, 0xf1, 0x80, 0x96, 0x2c, 0x48, 0x38, 0x17, 0x29, 0x2b, 0xa8, 0x62, 0xbc, 0x08, 0x0e,\n\t0x56, 0xbb, 0xa0, 0xe8, 0x6a, 0x90, 0x41, 0x01, 0x82, 0x2a, 0x48, 0x49, 0x29, 0xb8, 0xe2, 0xd8,\n\t0x1f, 0x08, 0x08, 0x2d, 0x19, 0xb9, 0x28, 0x20, 0xb5, 0x60, 0xe1, 0x7e, 0xc6, 0x54, 0xaf, 0xdf,\n\t0x25, 0x09, 0xcf, 0x83, 0x8c, 0x67, 0x3c, 0xb0, 0xba, 0x6e, 0x7f, 0xd7, 0x9e, 0xec, 0xc1, 0xfe,\n\t0x1a, 0xf0, 0x16, 0x56, 0x6e, 0x36, 0x30, 0xda, 0x7b, 0xe1, 0xd1, 0xb0, 0x36, 0xa7, 0x49, 0x8f,\n\t0x15, 0x20, 0x0e, 0x83, 0x72, 0x2f, 0x33, 0x01, 0x19, 0xe4, 0xa0, 0xe8, 0x75, 0xaa, 0xe0, 0x26,\n\t0x95, 0xe8, 0x17, 0x8a, 0xe5, 0x70, 0x45, 0xf0, 0xf8, 0x36, 0x81, 0x4c, 0x7a, 0x90, 0xd3, 0x51,\n\t0xdd, 0xd2, 0x0f, 0x07, 0xb5, 0x22, 0xa0, 0x12, 0xf0, 0x47, 0x34, 0x65, 0xdc, 0xa4, 0x54, 0x51,\n\t0xd7, 0x59, 0x74, 0x96, 0x3b, 0x6b, 0x0f, 0xc8, 0x70, 0x6e, 0xe7, 0x50, 0x52, 0xee, 0x65, 0x26,\n\t0x20, 0x89, 0xa9, 0x26, 0x07, 0xab, 0xe4, 0x6d, 0xf7, 0x13, 0x24, 0x6a, 0x13, 0x14, 0x0d, 0xf1,\n\t0x51, 0xe5, 0x37, 0x74, 0xe5, 0xa3, 0x61, 0x2c, 0x3e, 0xa7, 0xe2, 0x08, 0x35, 0x65, 0x09, 0x89,\n\t0x3b, 0x61, 0xe9, 0x2b, 0xe4, 0x96, 0xad, 0x10, 0xeb, 0x6b, 0xab, 0x84, 0x24, 0xbc, 0x53, 0x73,\n\t0x9b, 0xe6, 0x14, 0x5b, 0xca, 0xd2, 0x77, 0x07, 0xb5, 0x6d, 0x45, 0xc4, 0xa4, 0xc2, 0x3b, 0x57,\n\t0xdc, 0x93, 0xf1, 0xdc, 0x1b, 0xb5, 0xf5, 0x3e, 0x57, 0xf7, 0x98, 0x3a, 0x8b, 0x5c, 0x70, 0xfe,\n\t0x06, 0xb5, 0x98, 0x82, 0x5c, 0xba, 0x13, 0x8b, 0x93, 0xcb, 0x9d, 0xb5, 0x7b, 0xe3, 0x59, 0x0f,\n\t0xa7, 0x6b, 0x64, 0x6b, 0xc3, 0x88, 0xe3, 0x01, 0x63, 0xe9, 0x67, 0xb3, 0x36, 0x6e, 0x2e, 0x83,\n\t0x9f, 0xa2, 0x99, 0x1e, 0xdf, 0x4f, 0x41, 0x6c, 0xa4, 0x50, 0x28, 0xa6, 0x0e, 0xad, 0xfd, 0x76,\n\t0x88, 0x75, 0xe5, 0xcf, 0xbc, 0xbe, 0x94, 0x89, 0x47, 0x2a, 0x71, 0x84, 0xe6, 0xf7, 0x0d, 0xe8,\n\t0x65, 0x5f, 0xd8, 0xf6, 0x5b, 0x90, 0xf0, 0x22, 0x95, 0x76, 0xc0, 0xad, 0xd0, 0xd5, 0x95, 0x3f,\n\t0x1f, 0x5d, 0x93, 0x8f, 0xaf, 0x55, 0xe1, 0x2e, 0xea, 0xd0, 0xe4, 0x73, 0x9f, 0x09, 0xd8, 0x66,\n\t0x39, 0xb8, 0x93, 0x76, 0x8a, 0xc1, 0x78, 0x53, 0xdc, 0x64, 0x89, 0xe0, 0x46, 0x16, 0xce, 0xea,\n\t0xca, 0xef, 0xbc, 0x18, 0x72, 0xe2, 0x8b, 0x50, 0xbc, 0x83, 0xda, 0x02, 0x0a, 0xf8, 0x62, 0x3b,\n\t0x34, 0xff, 0xad, 0xc3, 0xb4, 0xae, 0xfc, 0x76, 0x7c, 0x46, 0x89, 0x87, 0x40, 0xfc, 0x1c, 0xcd,\n\t0xd9, 0x9b, 0x6d, 0x0b, 0x5a, 0x48, 0x66, 0xee, 0x26, 0xdd, 0x96, 0x9d, 0xc5, 0xbc, 0xae, 0xfc,\n\t0xb9, 0x68, 0x24, 0x17, 0x5f, 0xa9, 0xc6, 0x1f, 0xd0, 0x94, 0x54, 0xe6, 0x7d, 0x64, 0x87, 0xee,\n\t0x7f, 0x76, 0x0f, 0xeb, 0xe6, 0x2f, 0xb1, 0x55, 0xc7, 0xfe, 0x54, 0xfe, 0xc3, 0x9b, 0xdf, 0x3e,\n\t0x59, 0x3f, 0x3b, 0x43, 0x3a, 0x58, 0x70, 0x2d, 0x8b, 0xcf, 0xa1, 0xf8, 0x19, 0x9a, 0x2d, 0x05,\n\t0xec, 0x82, 0x10, 0x90, 0x0e, 0xb6, 0xeb, 0xfe, 0x6f, 0xfb, 0xdc, 0xd5, 0x95, 0x3f, 0xfb, 0xee,\n\t0x72, 0x2a, 0x1e, 0xad, 0x0d, 0x5f, 0x1d, 0x9d, 0x7a, 0x8d, 0xe3, 0x53, 0xaf, 0x71, 0x72, 0xea,\n\t0x35, 0xbe, 0x6a, 0xcf, 0x39, 0xd2, 0x9e, 0x73, 0xac, 0x3d, 0xe7, 0x44, 0x7b, 0xce, 0x2f, 0xed,\n\t0x39, 0xdf, 0x7e, 0x7b, 0x8d, 0xf7, 0xfe, 0x2d, 0x1f, 0xc8, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff,\n\t0x57, 0x93, 0xf3, 0xef, 0x42, 0x05, 0x00, 0x00,\n}\n\nfunc (m *Lease) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Lease) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Lease) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LeaseList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LeaseList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LeaseList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LeaseSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LeaseSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LeaseSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.PreferredHolder != nil {\n\t\ti -= len(*m.PreferredHolder)\n\t\tcopy(dAtA[i:], *m.PreferredHolder)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.PreferredHolder)))\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif m.Strategy != nil {\n\t\ti -= len(*m.Strategy)\n\t\tcopy(dAtA[i:], *m.Strategy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Strategy)))\n\t\ti--\n\t\tdAtA[i] = 0x32\n\t}\n\tif m.LeaseTransitions != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.LeaseTransitions))\n\t\ti--\n\t\tdAtA[i] = 0x28\n\t}\n\tif m.RenewTime != nil {\n\t\t{\n\t\t\tsize, err := m.RenewTime.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.AcquireTime != nil {\n\t\t{\n\t\t\tsize, err := m.AcquireTime.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.LeaseDurationSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.LeaseDurationSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif m.HolderIdentity != nil {\n\t\ti -= len(*m.HolderIdentity)\n\t\tcopy(dAtA[i:], *m.HolderIdentity)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.HolderIdentity)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *Lease) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *LeaseList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *LeaseSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.HolderIdentity != nil {\n\t\tl = len(*m.HolderIdentity)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.LeaseDurationSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.LeaseDurationSeconds))\n\t}\n\tif m.AcquireTime != nil {\n\t\tl = m.AcquireTime.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.RenewTime != nil {\n\t\tl = m.RenewTime.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.LeaseTransitions != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.LeaseTransitions))\n\t}\n\tif m.Strategy != nil {\n\t\tl = len(*m.Strategy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.PreferredHolder != nil {\n\t\tl = len(*m.PreferredHolder)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *Lease) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Lease{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"LeaseSpec\", \"LeaseSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LeaseList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Lease{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Lease\", \"Lease\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&LeaseList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LeaseSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LeaseSpec{`,\n\t\t`HolderIdentity:` + valueToStringGenerated(this.HolderIdentity) + `,`,\n\t\t`LeaseDurationSeconds:` + valueToStringGenerated(this.LeaseDurationSeconds) + `,`,\n\t\t`AcquireTime:` + strings.Replace(fmt.Sprintf(\"%v\", this.AcquireTime), \"MicroTime\", \"v1.MicroTime\", 1) + `,`,\n\t\t`RenewTime:` + strings.Replace(fmt.Sprintf(\"%v\", this.RenewTime), \"MicroTime\", \"v1.MicroTime\", 1) + `,`,\n\t\t`LeaseTransitions:` + valueToStringGenerated(this.LeaseTransitions) + `,`,\n\t\t`Strategy:` + valueToStringGenerated(this.Strategy) + `,`,\n\t\t`PreferredHolder:` + valueToStringGenerated(this.PreferredHolder) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *Lease) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Lease: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Lease: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LeaseList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LeaseList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LeaseList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Lease{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LeaseSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LeaseSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LeaseSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HolderIdentity\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.HolderIdentity = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LeaseDurationSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.LeaseDurationSeconds = &v\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AcquireTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AcquireTime == nil {\n\t\t\t\tm.AcquireTime = &v1.MicroTime{}\n\t\t\t}\n\t\t\tif err := m.AcquireTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RenewTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RenewTime == nil {\n\t\t\t\tm.RenewTime = &v1.MicroTime{}\n\t\t\t}\n\t\t\tif err := m.RenewTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LeaseTransitions\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.LeaseTransitions = &v\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Strategy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := k8s_io_api_coordination_v1.CoordinatedLeaseStrategy(dAtA[iNdEx:postIndex])\n\t\t\tm.Strategy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PreferredHolder\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.PreferredHolder = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/coordination/v1beta1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.coordination.v1beta1;\n\nimport \"k8s.io/api/coordination/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/coordination/v1beta1\";\n\n// Lease defines a lease concept.\nmessage Lease {\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec contains the specification of the Lease.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional LeaseSpec spec = 2;\n}\n\n// LeaseList is a list of Lease objects.\nmessage LeaseList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is a list of schema objects.\n  repeated Lease items = 2;\n}\n\n// LeaseSpec is a specification of a Lease.\nmessage LeaseSpec {\n  // holderIdentity contains the identity of the holder of a current lease.\n  // If Coordinated Leader Election is used, the holder identity must be\n  // equal to the elected LeaseCandidate.metadata.name field.\n  // +optional\n  optional string holderIdentity = 1;\n\n  // leaseDurationSeconds is a duration that candidates for a lease need\n  // to wait to force acquire it. This is measure against time of last\n  // observed renewTime.\n  // +optional\n  optional int32 leaseDurationSeconds = 2;\n\n  // acquireTime is a time when the current lease was acquired.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime acquireTime = 3;\n\n  // renewTime is a time when the current holder of a lease has last\n  // updated the lease.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime renewTime = 4;\n\n  // leaseTransitions is the number of transitions of a lease between\n  // holders.\n  // +optional\n  optional int32 leaseTransitions = 5;\n\n  // Strategy indicates the strategy for picking the leader for coordinated leader election\n  // (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled.\n  // +featureGate=CoordinatedLeaderElection\n  // +optional\n  optional string strategy = 6;\n\n  // PreferredHolder signals to a lease holder that the lease has a\n  // more optimal holder and should be given up.\n  // +featureGate=CoordinatedLeaderElection\n  // +optional\n  optional string preferredHolder = 7;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/coordination/v1beta1/register.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"coordination.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to api.Scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&Lease{},\n\t\t&LeaseList{},\n\t)\n\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/coordination/v1beta1/types.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/coordination/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.12\n// +k8s:prerelease-lifecycle-gen:deprecated=1.19\n// +k8s:prerelease-lifecycle-gen:replacement=coordination.k8s.io,v1,Lease\n\n// Lease defines a lease concept.\ntype Lease struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec contains the specification of the Lease.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec LeaseSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n}\n\n// LeaseSpec is a specification of a Lease.\ntype LeaseSpec struct {\n\t// holderIdentity contains the identity of the holder of a current lease.\n\t// If Coordinated Leader Election is used, the holder identity must be\n\t// equal to the elected LeaseCandidate.metadata.name field.\n\t// +optional\n\tHolderIdentity *string `json:\"holderIdentity,omitempty\" protobuf:\"bytes,1,opt,name=holderIdentity\"`\n\t// leaseDurationSeconds is a duration that candidates for a lease need\n\t// to wait to force acquire it. This is measure against time of last\n\t// observed renewTime.\n\t// +optional\n\tLeaseDurationSeconds *int32 `json:\"leaseDurationSeconds,omitempty\" protobuf:\"varint,2,opt,name=leaseDurationSeconds\"`\n\t// acquireTime is a time when the current lease was acquired.\n\t// +optional\n\tAcquireTime *metav1.MicroTime `json:\"acquireTime,omitempty\" protobuf:\"bytes,3,opt,name=acquireTime\"`\n\t// renewTime is a time when the current holder of a lease has last\n\t// updated the lease.\n\t// +optional\n\tRenewTime *metav1.MicroTime `json:\"renewTime,omitempty\" protobuf:\"bytes,4,opt,name=renewTime\"`\n\t// leaseTransitions is the number of transitions of a lease between\n\t// holders.\n\t// +optional\n\tLeaseTransitions *int32 `json:\"leaseTransitions,omitempty\" protobuf:\"varint,5,opt,name=leaseTransitions\"`\n\t// Strategy indicates the strategy for picking the leader for coordinated leader election\n\t// (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled.\n\t// +featureGate=CoordinatedLeaderElection\n\t// +optional\n\tStrategy *v1.CoordinatedLeaseStrategy `json:\"strategy,omitempty\" protobuf:\"bytes,6,opt,name=strategy\"`\n\t// PreferredHolder signals to a lease holder that the lease has a\n\t// more optimal holder and should be given up.\n\t// +featureGate=CoordinatedLeaderElection\n\t// +optional\n\tPreferredHolder *string `json:\"preferredHolder,omitempty\" protobuf:\"bytes,7,opt,name=preferredHolder\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.12\n// +k8s:prerelease-lifecycle-gen:deprecated=1.19\n// +k8s:prerelease-lifecycle-gen:replacement=coordination.k8s.io,v1,LeaseList\n\n// LeaseList is a list of Lease objects.\ntype LeaseList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is a list of schema objects.\n\tItems []Lease `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/coordination/v1beta1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_Lease = map[string]string{\n\t\"\":         \"Lease defines a lease concept.\",\n\t\"metadata\": \"More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec contains the specification of the Lease. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (Lease) SwaggerDoc() map[string]string {\n\treturn map_Lease\n}\n\nvar map_LeaseList = map[string]string{\n\t\"\":         \"LeaseList is a list of Lease objects.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is a list of schema objects.\",\n}\n\nfunc (LeaseList) SwaggerDoc() map[string]string {\n\treturn map_LeaseList\n}\n\nvar map_LeaseSpec = map[string]string{\n\t\"\":                     \"LeaseSpec is a specification of a Lease.\",\n\t\"holderIdentity\":       \"holderIdentity contains the identity of the holder of a current lease. If Coordinated Leader Election is used, the holder identity must be equal to the elected LeaseCandidate.metadata.name field.\",\n\t\"leaseDurationSeconds\": \"leaseDurationSeconds is a duration that candidates for a lease need to wait to force acquire it. This is measure against time of last observed renewTime.\",\n\t\"acquireTime\":          \"acquireTime is a time when the current lease was acquired.\",\n\t\"renewTime\":            \"renewTime is a time when the current holder of a lease has last updated the lease.\",\n\t\"leaseTransitions\":     \"leaseTransitions is the number of transitions of a lease between holders.\",\n\t\"strategy\":             \"Strategy indicates the strategy for picking the leader for coordinated leader election (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled.\",\n\t\"preferredHolder\":      \"PreferredHolder signals to a lease holder that the lease has a more optimal holder and should be given up.\",\n}\n\nfunc (LeaseSpec) SwaggerDoc() map[string]string {\n\treturn map_LeaseSpec\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/coordination/v1beta1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/coordination/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Lease) DeepCopyInto(out *Lease) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Lease.\nfunc (in *Lease) DeepCopy() *Lease {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Lease)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Lease) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LeaseList) DeepCopyInto(out *LeaseList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Lease, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LeaseList.\nfunc (in *LeaseList) DeepCopy() *LeaseList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LeaseList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *LeaseList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LeaseSpec) DeepCopyInto(out *LeaseSpec) {\n\t*out = *in\n\tif in.HolderIdentity != nil {\n\t\tin, out := &in.HolderIdentity, &out.HolderIdentity\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.LeaseDurationSeconds != nil {\n\t\tin, out := &in.LeaseDurationSeconds, &out.LeaseDurationSeconds\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.AcquireTime != nil {\n\t\tin, out := &in.AcquireTime, &out.AcquireTime\n\t\t*out = (*in).DeepCopy()\n\t}\n\tif in.RenewTime != nil {\n\t\tin, out := &in.RenewTime, &out.RenewTime\n\t\t*out = (*in).DeepCopy()\n\t}\n\tif in.LeaseTransitions != nil {\n\t\tin, out := &in.LeaseTransitions, &out.LeaseTransitions\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Strategy != nil {\n\t\tin, out := &in.Strategy, &out.Strategy\n\t\t*out = new(v1.CoordinatedLeaseStrategy)\n\t\t**out = **in\n\t}\n\tif in.PreferredHolder != nil {\n\t\tin, out := &in.PreferredHolder, &out.PreferredHolder\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LeaseSpec.\nfunc (in *LeaseSpec) DeepCopy() *LeaseSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LeaseSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/coordination/v1beta1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *Lease) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 12\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *Lease) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *Lease) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"coordination.k8s.io\", Version: \"v1\", Kind: \"Lease\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *Lease) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *LeaseList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 12\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *LeaseList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *LeaseList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"coordination.k8s.io\", Version: \"v1\", Kind: \"LeaseList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *LeaseList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/core/v1/annotation_key_constants.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// This file should be consistent with pkg/apis/core/annotation_key_constants.go.\n\npackage v1\n\nconst (\n\t// ImagePolicyFailedOpenKey is added to pods created by failing open when the image policy\n\t// webhook backend fails.\n\tImagePolicyFailedOpenKey string = \"alpha.image-policy.k8s.io/failed-open\"\n\n\t// MirrorPodAnnotationKey represents the annotation key set by kubelets when creating mirror pods\n\tMirrorPodAnnotationKey string = \"kubernetes.io/config.mirror\"\n\n\t// TolerationsAnnotationKey represents the key of tolerations data (json serialized)\n\t// in the Annotations of a Pod.\n\tTolerationsAnnotationKey string = \"scheduler.alpha.kubernetes.io/tolerations\"\n\n\t// TaintsAnnotationKey represents the key of taints data (json serialized)\n\t// in the Annotations of a Node.\n\tTaintsAnnotationKey string = \"scheduler.alpha.kubernetes.io/taints\"\n\n\t// SeccompPodAnnotationKey represents the key of a seccomp profile applied\n\t// to all containers of a pod.\n\t// Deprecated: set a pod security context `seccompProfile` field.\n\tSeccompPodAnnotationKey string = \"seccomp.security.alpha.kubernetes.io/pod\"\n\n\t// SeccompContainerAnnotationKeyPrefix represents the key of a seccomp profile applied\n\t// to one container of a pod.\n\t// Deprecated: set a container security context `seccompProfile` field.\n\tSeccompContainerAnnotationKeyPrefix string = \"container.seccomp.security.alpha.kubernetes.io/\"\n\n\t// SeccompProfileRuntimeDefault represents the default seccomp profile used by container runtime.\n\t// Deprecated: set a pod or container security context `seccompProfile` of type \"RuntimeDefault\" instead.\n\tSeccompProfileRuntimeDefault string = \"runtime/default\"\n\n\t// SeccompProfileNameUnconfined is the unconfined seccomp profile.\n\tSeccompProfileNameUnconfined string = \"unconfined\"\n\n\t// SeccompLocalhostProfileNamePrefix is the prefix for specifying profiles loaded from the node's disk.\n\tSeccompLocalhostProfileNamePrefix = \"localhost/\"\n\n\t// DeprecatedAppArmorBetaContainerAnnotationKeyPrefix is the prefix to an annotation key specifying a container's apparmor profile.\n\t// Deprecated: use a pod or container security context `appArmorProfile` field instead.\n\tDeprecatedAppArmorBetaContainerAnnotationKeyPrefix = \"container.apparmor.security.beta.kubernetes.io/\"\n\n\t// DeprecatedAppArmorBetaProfileRuntimeDefault is the profile specifying the runtime default.\n\tDeprecatedAppArmorBetaProfileRuntimeDefault = \"runtime/default\"\n\n\t// DeprecatedAppArmorBetaProfileNamePrefix is the prefix for specifying profiles loaded on the node.\n\tDeprecatedAppArmorBetaProfileNamePrefix = \"localhost/\"\n\n\t// DeprecatedAppArmorBetaProfileNameUnconfined is the Unconfined AppArmor profile\n\tDeprecatedAppArmorBetaProfileNameUnconfined = \"unconfined\"\n\n\t// DeprecatedSeccompProfileDockerDefault represents the default seccomp profile used by docker.\n\t// Deprecated: set a pod or container security context `seccompProfile` of type \"RuntimeDefault\" instead.\n\tDeprecatedSeccompProfileDockerDefault string = \"docker/default\"\n\n\t// PreferAvoidPodsAnnotationKey represents the key of preferAvoidPods data (json serialized)\n\t// in the Annotations of a Node.\n\tPreferAvoidPodsAnnotationKey string = \"scheduler.alpha.kubernetes.io/preferAvoidPods\"\n\n\t// ObjectTTLAnnotationKey represents a suggestion for kubelet for how long it can cache\n\t// an object (e.g. secret, config map) before fetching it again from apiserver.\n\t// This annotation can be attached to node.\n\tObjectTTLAnnotationKey string = \"node.alpha.kubernetes.io/ttl\"\n\n\t// NonConvertibleAnnotationPrefix is the annotation key prefix used to identify non-convertible json paths.\n\tNonConvertibleAnnotationPrefix = \"non-convertible.kubernetes.io\"\n\n\tkubectlPrefix = \"kubectl.kubernetes.io/\"\n\n\t// LastAppliedConfigAnnotation is the annotation used to store the previous\n\t// configuration of a resource for use in a three way diff by UpdateApplyAnnotation.\n\tLastAppliedConfigAnnotation = kubectlPrefix + \"last-applied-configuration\"\n\n\t// AnnotationLoadBalancerSourceRangesKey is the key of the annotation on a service to set allowed ingress ranges on their LoadBalancers\n\t//\n\t// It should be a comma-separated list of CIDRs, e.g. `0.0.0.0/0` to\n\t// allow full access (the default) or `18.0.0.0/8,56.0.0.0/8` to allow\n\t// access only from the CIDRs currently allocated to MIT & the USPS.\n\t//\n\t// Not all cloud providers support this annotation, though AWS & GCE do.\n\tAnnotationLoadBalancerSourceRangesKey = \"service.beta.kubernetes.io/load-balancer-source-ranges\"\n\n\t// EndpointsLastChangeTriggerTime is the annotation key, set for endpoints objects, that\n\t// represents the timestamp (stored as RFC 3339 date-time string, e.g. '2018-10-22T19:32:52.1Z')\n\t// of the last change, of some Pod or Service object, that triggered the endpoints object change.\n\t// In other words, if a Pod / Service changed at time T0, that change was observed by endpoints\n\t// controller at T1, and the Endpoints object was changed at T2, the\n\t// EndpointsLastChangeTriggerTime would be set to T0.\n\t//\n\t// The \"endpoints change trigger\" here means any Pod or Service change that resulted in the\n\t// Endpoints object change.\n\t//\n\t// Given the definition of the \"endpoints change trigger\", please note that this annotation will\n\t// be set ONLY for endpoints object changes triggered by either Pod or Service change. If the\n\t// Endpoints object changes due to other reasons, this annotation won't be set (or updated if it's\n\t// already set).\n\t//\n\t// This annotation will be used to compute the in-cluster network programming latency SLI, see\n\t// https://github.com/kubernetes/community/blob/master/sig-scalability/slos/network_programming_latency.md\n\tEndpointsLastChangeTriggerTime = \"endpoints.kubernetes.io/last-change-trigger-time\"\n\n\t// EndpointsOverCapacity will be set on an Endpoints resource when it\n\t// exceeds the maximum capacity of 1000 addresses. Initially the Endpoints\n\t// controller will set this annotation with a value of \"warning\". In a\n\t// future release, the controller may set this annotation with a value of\n\t// \"truncated\" to indicate that any addresses exceeding the limit of 1000\n\t// have been truncated from the Endpoints resource.\n\tEndpointsOverCapacity = \"endpoints.kubernetes.io/over-capacity\"\n\n\t// MigratedPluginsAnnotationKey is the annotation key, set for CSINode objects, that is a comma-separated\n\t// list of in-tree plugins that will be serviced by the CSI backend on the Node represented by CSINode.\n\t// This annotation is used by the Attach Detach Controller to determine whether to use the in-tree or\n\t// CSI Backend for a volume plugin on a specific node.\n\tMigratedPluginsAnnotationKey = \"storage.alpha.kubernetes.io/migrated-plugins\"\n\n\t// PodDeletionCost can be used to set to an int32 that represent the cost of deleting\n\t// a pod compared to other pods belonging to the same ReplicaSet. Pods with lower\n\t// deletion cost are preferred to be deleted before pods with higher deletion cost.\n\t// Note that this is honored on a best-effort basis, and so it does not offer guarantees on\n\t// pod deletion order.\n\t// The implicit deletion cost for pods that don't set the annotation is 0, negative values are permitted.\n\t//\n\t// This annotation is beta-level and is only honored when PodDeletionCost feature is enabled.\n\tPodDeletionCost = \"controller.kubernetes.io/pod-deletion-cost\"\n\n\t// DeprecatedAnnotationTopologyAwareHints can be used to enable or disable\n\t// Topology Aware Hints for a Service. This may be set to \"Auto\" or\n\t// \"Disabled\". Any other value is treated as \"Disabled\". This annotation has\n\t// been deprecated in favor of the \"service.kubernetes.io/topology-mode\"\n\t// annotation.\n\tDeprecatedAnnotationTopologyAwareHints = \"service.kubernetes.io/topology-aware-hints\"\n\n\t// AnnotationTopologyMode can be used to enable or disable Topology Aware\n\t// Routing for a Service. Well known values are \"Auto\" and \"Disabled\".\n\t// Implementations may choose to develop new topology approaches, exposing\n\t// them with domain-prefixed values. For example, \"example.com/lowest-rtt\"\n\t// could be a valid implementation-specific value for this annotation. These\n\t// heuristics will often populate topology hints on EndpointSlices, but that\n\t// is not a requirement.\n\tAnnotationTopologyMode = \"service.kubernetes.io/topology-mode\"\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/core/v1/doc.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:openapi-gen=true\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:prerelease-lifecycle-gen=true\n// +groupName=\n\n// Package v1 is the v1 version of the core API.\npackage v1 // import \"k8s.io/api/core/v1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/core/v1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/core/v1/generated.proto\n\npackage v1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n\n\tk8s_io_apimachinery_pkg_types \"k8s.io/apimachinery/pkg/types\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *AWSElasticBlockStoreVolumeSource) Reset()      { *m = AWSElasticBlockStoreVolumeSource{} }\nfunc (*AWSElasticBlockStoreVolumeSource) ProtoMessage() {}\nfunc (*AWSElasticBlockStoreVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{0}\n}\nfunc (m *AWSElasticBlockStoreVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *AWSElasticBlockStoreVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *AWSElasticBlockStoreVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_AWSElasticBlockStoreVolumeSource.Merge(m, src)\n}\nfunc (m *AWSElasticBlockStoreVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *AWSElasticBlockStoreVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_AWSElasticBlockStoreVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_AWSElasticBlockStoreVolumeSource proto.InternalMessageInfo\n\nfunc (m *Affinity) Reset()      { *m = Affinity{} }\nfunc (*Affinity) ProtoMessage() {}\nfunc (*Affinity) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{1}\n}\nfunc (m *Affinity) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Affinity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Affinity) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Affinity.Merge(m, src)\n}\nfunc (m *Affinity) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Affinity) XXX_DiscardUnknown() {\n\txxx_messageInfo_Affinity.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Affinity proto.InternalMessageInfo\n\nfunc (m *AppArmorProfile) Reset()      { *m = AppArmorProfile{} }\nfunc (*AppArmorProfile) ProtoMessage() {}\nfunc (*AppArmorProfile) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{2}\n}\nfunc (m *AppArmorProfile) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *AppArmorProfile) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *AppArmorProfile) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_AppArmorProfile.Merge(m, src)\n}\nfunc (m *AppArmorProfile) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *AppArmorProfile) XXX_DiscardUnknown() {\n\txxx_messageInfo_AppArmorProfile.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_AppArmorProfile proto.InternalMessageInfo\n\nfunc (m *AttachedVolume) Reset()      { *m = AttachedVolume{} }\nfunc (*AttachedVolume) ProtoMessage() {}\nfunc (*AttachedVolume) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{3}\n}\nfunc (m *AttachedVolume) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *AttachedVolume) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *AttachedVolume) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_AttachedVolume.Merge(m, src)\n}\nfunc (m *AttachedVolume) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *AttachedVolume) XXX_DiscardUnknown() {\n\txxx_messageInfo_AttachedVolume.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_AttachedVolume proto.InternalMessageInfo\n\nfunc (m *AvoidPods) Reset()      { *m = AvoidPods{} }\nfunc (*AvoidPods) ProtoMessage() {}\nfunc (*AvoidPods) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{4}\n}\nfunc (m *AvoidPods) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *AvoidPods) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *AvoidPods) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_AvoidPods.Merge(m, src)\n}\nfunc (m *AvoidPods) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *AvoidPods) XXX_DiscardUnknown() {\n\txxx_messageInfo_AvoidPods.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_AvoidPods proto.InternalMessageInfo\n\nfunc (m *AzureDiskVolumeSource) Reset()      { *m = AzureDiskVolumeSource{} }\nfunc (*AzureDiskVolumeSource) ProtoMessage() {}\nfunc (*AzureDiskVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{5}\n}\nfunc (m *AzureDiskVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *AzureDiskVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *AzureDiskVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_AzureDiskVolumeSource.Merge(m, src)\n}\nfunc (m *AzureDiskVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *AzureDiskVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_AzureDiskVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_AzureDiskVolumeSource proto.InternalMessageInfo\n\nfunc (m *AzureFilePersistentVolumeSource) Reset()      { *m = AzureFilePersistentVolumeSource{} }\nfunc (*AzureFilePersistentVolumeSource) ProtoMessage() {}\nfunc (*AzureFilePersistentVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{6}\n}\nfunc (m *AzureFilePersistentVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *AzureFilePersistentVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *AzureFilePersistentVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_AzureFilePersistentVolumeSource.Merge(m, src)\n}\nfunc (m *AzureFilePersistentVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *AzureFilePersistentVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_AzureFilePersistentVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_AzureFilePersistentVolumeSource proto.InternalMessageInfo\n\nfunc (m *AzureFileVolumeSource) Reset()      { *m = AzureFileVolumeSource{} }\nfunc (*AzureFileVolumeSource) ProtoMessage() {}\nfunc (*AzureFileVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{7}\n}\nfunc (m *AzureFileVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *AzureFileVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *AzureFileVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_AzureFileVolumeSource.Merge(m, src)\n}\nfunc (m *AzureFileVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *AzureFileVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_AzureFileVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_AzureFileVolumeSource proto.InternalMessageInfo\n\nfunc (m *Binding) Reset()      { *m = Binding{} }\nfunc (*Binding) ProtoMessage() {}\nfunc (*Binding) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{8}\n}\nfunc (m *Binding) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Binding) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Binding) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Binding.Merge(m, src)\n}\nfunc (m *Binding) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Binding) XXX_DiscardUnknown() {\n\txxx_messageInfo_Binding.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Binding proto.InternalMessageInfo\n\nfunc (m *CSIPersistentVolumeSource) Reset()      { *m = CSIPersistentVolumeSource{} }\nfunc (*CSIPersistentVolumeSource) ProtoMessage() {}\nfunc (*CSIPersistentVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{9}\n}\nfunc (m *CSIPersistentVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSIPersistentVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSIPersistentVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSIPersistentVolumeSource.Merge(m, src)\n}\nfunc (m *CSIPersistentVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSIPersistentVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSIPersistentVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSIPersistentVolumeSource proto.InternalMessageInfo\n\nfunc (m *CSIVolumeSource) Reset()      { *m = CSIVolumeSource{} }\nfunc (*CSIVolumeSource) ProtoMessage() {}\nfunc (*CSIVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{10}\n}\nfunc (m *CSIVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSIVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSIVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSIVolumeSource.Merge(m, src)\n}\nfunc (m *CSIVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSIVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSIVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSIVolumeSource proto.InternalMessageInfo\n\nfunc (m *Capabilities) Reset()      { *m = Capabilities{} }\nfunc (*Capabilities) ProtoMessage() {}\nfunc (*Capabilities) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{11}\n}\nfunc (m *Capabilities) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Capabilities) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Capabilities) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Capabilities.Merge(m, src)\n}\nfunc (m *Capabilities) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Capabilities) XXX_DiscardUnknown() {\n\txxx_messageInfo_Capabilities.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Capabilities proto.InternalMessageInfo\n\nfunc (m *CephFSPersistentVolumeSource) Reset()      { *m = CephFSPersistentVolumeSource{} }\nfunc (*CephFSPersistentVolumeSource) ProtoMessage() {}\nfunc (*CephFSPersistentVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{12}\n}\nfunc (m *CephFSPersistentVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CephFSPersistentVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CephFSPersistentVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CephFSPersistentVolumeSource.Merge(m, src)\n}\nfunc (m *CephFSPersistentVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CephFSPersistentVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_CephFSPersistentVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CephFSPersistentVolumeSource proto.InternalMessageInfo\n\nfunc (m *CephFSVolumeSource) Reset()      { *m = CephFSVolumeSource{} }\nfunc (*CephFSVolumeSource) ProtoMessage() {}\nfunc (*CephFSVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{13}\n}\nfunc (m *CephFSVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CephFSVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CephFSVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CephFSVolumeSource.Merge(m, src)\n}\nfunc (m *CephFSVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CephFSVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_CephFSVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CephFSVolumeSource proto.InternalMessageInfo\n\nfunc (m *CinderPersistentVolumeSource) Reset()      { *m = CinderPersistentVolumeSource{} }\nfunc (*CinderPersistentVolumeSource) ProtoMessage() {}\nfunc (*CinderPersistentVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{14}\n}\nfunc (m *CinderPersistentVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CinderPersistentVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CinderPersistentVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CinderPersistentVolumeSource.Merge(m, src)\n}\nfunc (m *CinderPersistentVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CinderPersistentVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_CinderPersistentVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CinderPersistentVolumeSource proto.InternalMessageInfo\n\nfunc (m *CinderVolumeSource) Reset()      { *m = CinderVolumeSource{} }\nfunc (*CinderVolumeSource) ProtoMessage() {}\nfunc (*CinderVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{15}\n}\nfunc (m *CinderVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CinderVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CinderVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CinderVolumeSource.Merge(m, src)\n}\nfunc (m *CinderVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CinderVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_CinderVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CinderVolumeSource proto.InternalMessageInfo\n\nfunc (m *ClientIPConfig) Reset()      { *m = ClientIPConfig{} }\nfunc (*ClientIPConfig) ProtoMessage() {}\nfunc (*ClientIPConfig) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{16}\n}\nfunc (m *ClientIPConfig) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ClientIPConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ClientIPConfig) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ClientIPConfig.Merge(m, src)\n}\nfunc (m *ClientIPConfig) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ClientIPConfig) XXX_DiscardUnknown() {\n\txxx_messageInfo_ClientIPConfig.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ClientIPConfig proto.InternalMessageInfo\n\nfunc (m *ClusterTrustBundleProjection) Reset()      { *m = ClusterTrustBundleProjection{} }\nfunc (*ClusterTrustBundleProjection) ProtoMessage() {}\nfunc (*ClusterTrustBundleProjection) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{17}\n}\nfunc (m *ClusterTrustBundleProjection) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ClusterTrustBundleProjection) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ClusterTrustBundleProjection) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ClusterTrustBundleProjection.Merge(m, src)\n}\nfunc (m *ClusterTrustBundleProjection) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ClusterTrustBundleProjection) XXX_DiscardUnknown() {\n\txxx_messageInfo_ClusterTrustBundleProjection.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ClusterTrustBundleProjection proto.InternalMessageInfo\n\nfunc (m *ComponentCondition) Reset()      { *m = ComponentCondition{} }\nfunc (*ComponentCondition) ProtoMessage() {}\nfunc (*ComponentCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{18}\n}\nfunc (m *ComponentCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ComponentCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ComponentCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ComponentCondition.Merge(m, src)\n}\nfunc (m *ComponentCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ComponentCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_ComponentCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ComponentCondition proto.InternalMessageInfo\n\nfunc (m *ComponentStatus) Reset()      { *m = ComponentStatus{} }\nfunc (*ComponentStatus) ProtoMessage() {}\nfunc (*ComponentStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{19}\n}\nfunc (m *ComponentStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ComponentStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ComponentStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ComponentStatus.Merge(m, src)\n}\nfunc (m *ComponentStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ComponentStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ComponentStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ComponentStatus proto.InternalMessageInfo\n\nfunc (m *ComponentStatusList) Reset()      { *m = ComponentStatusList{} }\nfunc (*ComponentStatusList) ProtoMessage() {}\nfunc (*ComponentStatusList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{20}\n}\nfunc (m *ComponentStatusList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ComponentStatusList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ComponentStatusList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ComponentStatusList.Merge(m, src)\n}\nfunc (m *ComponentStatusList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ComponentStatusList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ComponentStatusList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ComponentStatusList proto.InternalMessageInfo\n\nfunc (m *ConfigMap) Reset()      { *m = ConfigMap{} }\nfunc (*ConfigMap) ProtoMessage() {}\nfunc (*ConfigMap) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{21}\n}\nfunc (m *ConfigMap) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ConfigMap) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ConfigMap) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ConfigMap.Merge(m, src)\n}\nfunc (m *ConfigMap) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ConfigMap) XXX_DiscardUnknown() {\n\txxx_messageInfo_ConfigMap.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ConfigMap proto.InternalMessageInfo\n\nfunc (m *ConfigMapEnvSource) Reset()      { *m = ConfigMapEnvSource{} }\nfunc (*ConfigMapEnvSource) ProtoMessage() {}\nfunc (*ConfigMapEnvSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{22}\n}\nfunc (m *ConfigMapEnvSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ConfigMapEnvSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ConfigMapEnvSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ConfigMapEnvSource.Merge(m, src)\n}\nfunc (m *ConfigMapEnvSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ConfigMapEnvSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ConfigMapEnvSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ConfigMapEnvSource proto.InternalMessageInfo\n\nfunc (m *ConfigMapKeySelector) Reset()      { *m = ConfigMapKeySelector{} }\nfunc (*ConfigMapKeySelector) ProtoMessage() {}\nfunc (*ConfigMapKeySelector) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{23}\n}\nfunc (m *ConfigMapKeySelector) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ConfigMapKeySelector) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ConfigMapKeySelector) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ConfigMapKeySelector.Merge(m, src)\n}\nfunc (m *ConfigMapKeySelector) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ConfigMapKeySelector) XXX_DiscardUnknown() {\n\txxx_messageInfo_ConfigMapKeySelector.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ConfigMapKeySelector proto.InternalMessageInfo\n\nfunc (m *ConfigMapList) Reset()      { *m = ConfigMapList{} }\nfunc (*ConfigMapList) ProtoMessage() {}\nfunc (*ConfigMapList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{24}\n}\nfunc (m *ConfigMapList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ConfigMapList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ConfigMapList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ConfigMapList.Merge(m, src)\n}\nfunc (m *ConfigMapList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ConfigMapList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ConfigMapList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ConfigMapList proto.InternalMessageInfo\n\nfunc (m *ConfigMapNodeConfigSource) Reset()      { *m = ConfigMapNodeConfigSource{} }\nfunc (*ConfigMapNodeConfigSource) ProtoMessage() {}\nfunc (*ConfigMapNodeConfigSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{25}\n}\nfunc (m *ConfigMapNodeConfigSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ConfigMapNodeConfigSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ConfigMapNodeConfigSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ConfigMapNodeConfigSource.Merge(m, src)\n}\nfunc (m *ConfigMapNodeConfigSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ConfigMapNodeConfigSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ConfigMapNodeConfigSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ConfigMapNodeConfigSource proto.InternalMessageInfo\n\nfunc (m *ConfigMapProjection) Reset()      { *m = ConfigMapProjection{} }\nfunc (*ConfigMapProjection) ProtoMessage() {}\nfunc (*ConfigMapProjection) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{26}\n}\nfunc (m *ConfigMapProjection) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ConfigMapProjection) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ConfigMapProjection) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ConfigMapProjection.Merge(m, src)\n}\nfunc (m *ConfigMapProjection) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ConfigMapProjection) XXX_DiscardUnknown() {\n\txxx_messageInfo_ConfigMapProjection.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ConfigMapProjection proto.InternalMessageInfo\n\nfunc (m *ConfigMapVolumeSource) Reset()      { *m = ConfigMapVolumeSource{} }\nfunc (*ConfigMapVolumeSource) ProtoMessage() {}\nfunc (*ConfigMapVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{27}\n}\nfunc (m *ConfigMapVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ConfigMapVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ConfigMapVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ConfigMapVolumeSource.Merge(m, src)\n}\nfunc (m *ConfigMapVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ConfigMapVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ConfigMapVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ConfigMapVolumeSource proto.InternalMessageInfo\n\nfunc (m *Container) Reset()      { *m = Container{} }\nfunc (*Container) ProtoMessage() {}\nfunc (*Container) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{28}\n}\nfunc (m *Container) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Container) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Container) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Container.Merge(m, src)\n}\nfunc (m *Container) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Container) XXX_DiscardUnknown() {\n\txxx_messageInfo_Container.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Container proto.InternalMessageInfo\n\nfunc (m *ContainerImage) Reset()      { *m = ContainerImage{} }\nfunc (*ContainerImage) ProtoMessage() {}\nfunc (*ContainerImage) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{29}\n}\nfunc (m *ContainerImage) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerImage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ContainerImage) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerImage.Merge(m, src)\n}\nfunc (m *ContainerImage) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerImage) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerImage.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerImage proto.InternalMessageInfo\n\nfunc (m *ContainerPort) Reset()      { *m = ContainerPort{} }\nfunc (*ContainerPort) ProtoMessage() {}\nfunc (*ContainerPort) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{30}\n}\nfunc (m *ContainerPort) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerPort) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ContainerPort) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerPort.Merge(m, src)\n}\nfunc (m *ContainerPort) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerPort) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerPort.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerPort proto.InternalMessageInfo\n\nfunc (m *ContainerResizePolicy) Reset()      { *m = ContainerResizePolicy{} }\nfunc (*ContainerResizePolicy) ProtoMessage() {}\nfunc (*ContainerResizePolicy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{31}\n}\nfunc (m *ContainerResizePolicy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerResizePolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ContainerResizePolicy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerResizePolicy.Merge(m, src)\n}\nfunc (m *ContainerResizePolicy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerResizePolicy) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerResizePolicy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerResizePolicy proto.InternalMessageInfo\n\nfunc (m *ContainerState) Reset()      { *m = ContainerState{} }\nfunc (*ContainerState) ProtoMessage() {}\nfunc (*ContainerState) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{32}\n}\nfunc (m *ContainerState) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ContainerState) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerState.Merge(m, src)\n}\nfunc (m *ContainerState) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerState) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerState.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerState proto.InternalMessageInfo\n\nfunc (m *ContainerStateRunning) Reset()      { *m = ContainerStateRunning{} }\nfunc (*ContainerStateRunning) ProtoMessage() {}\nfunc (*ContainerStateRunning) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{33}\n}\nfunc (m *ContainerStateRunning) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerStateRunning) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ContainerStateRunning) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerStateRunning.Merge(m, src)\n}\nfunc (m *ContainerStateRunning) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerStateRunning) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerStateRunning.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerStateRunning proto.InternalMessageInfo\n\nfunc (m *ContainerStateTerminated) Reset()      { *m = ContainerStateTerminated{} }\nfunc (*ContainerStateTerminated) ProtoMessage() {}\nfunc (*ContainerStateTerminated) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{34}\n}\nfunc (m *ContainerStateTerminated) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerStateTerminated) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ContainerStateTerminated) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerStateTerminated.Merge(m, src)\n}\nfunc (m *ContainerStateTerminated) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerStateTerminated) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerStateTerminated.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerStateTerminated proto.InternalMessageInfo\n\nfunc (m *ContainerStateWaiting) Reset()      { *m = ContainerStateWaiting{} }\nfunc (*ContainerStateWaiting) ProtoMessage() {}\nfunc (*ContainerStateWaiting) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{35}\n}\nfunc (m *ContainerStateWaiting) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerStateWaiting) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ContainerStateWaiting) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerStateWaiting.Merge(m, src)\n}\nfunc (m *ContainerStateWaiting) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerStateWaiting) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerStateWaiting.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerStateWaiting proto.InternalMessageInfo\n\nfunc (m *ContainerStatus) Reset()      { *m = ContainerStatus{} }\nfunc (*ContainerStatus) ProtoMessage() {}\nfunc (*ContainerStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{36}\n}\nfunc (m *ContainerStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ContainerStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerStatus.Merge(m, src)\n}\nfunc (m *ContainerStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerStatus proto.InternalMessageInfo\n\nfunc (m *ContainerUser) Reset()      { *m = ContainerUser{} }\nfunc (*ContainerUser) ProtoMessage() {}\nfunc (*ContainerUser) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{37}\n}\nfunc (m *ContainerUser) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ContainerUser) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ContainerUser) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ContainerUser.Merge(m, src)\n}\nfunc (m *ContainerUser) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ContainerUser) XXX_DiscardUnknown() {\n\txxx_messageInfo_ContainerUser.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ContainerUser proto.InternalMessageInfo\n\nfunc (m *DaemonEndpoint) Reset()      { *m = DaemonEndpoint{} }\nfunc (*DaemonEndpoint) ProtoMessage() {}\nfunc (*DaemonEndpoint) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{38}\n}\nfunc (m *DaemonEndpoint) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DaemonEndpoint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DaemonEndpoint) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DaemonEndpoint.Merge(m, src)\n}\nfunc (m *DaemonEndpoint) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DaemonEndpoint) XXX_DiscardUnknown() {\n\txxx_messageInfo_DaemonEndpoint.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DaemonEndpoint proto.InternalMessageInfo\n\nfunc (m *DownwardAPIProjection) Reset()      { *m = DownwardAPIProjection{} }\nfunc (*DownwardAPIProjection) ProtoMessage() {}\nfunc (*DownwardAPIProjection) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{39}\n}\nfunc (m *DownwardAPIProjection) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DownwardAPIProjection) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DownwardAPIProjection) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DownwardAPIProjection.Merge(m, src)\n}\nfunc (m *DownwardAPIProjection) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DownwardAPIProjection) XXX_DiscardUnknown() {\n\txxx_messageInfo_DownwardAPIProjection.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DownwardAPIProjection proto.InternalMessageInfo\n\nfunc (m *DownwardAPIVolumeFile) Reset()      { *m = DownwardAPIVolumeFile{} }\nfunc (*DownwardAPIVolumeFile) ProtoMessage() {}\nfunc (*DownwardAPIVolumeFile) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{40}\n}\nfunc (m *DownwardAPIVolumeFile) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DownwardAPIVolumeFile) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DownwardAPIVolumeFile) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DownwardAPIVolumeFile.Merge(m, src)\n}\nfunc (m *DownwardAPIVolumeFile) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DownwardAPIVolumeFile) XXX_DiscardUnknown() {\n\txxx_messageInfo_DownwardAPIVolumeFile.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DownwardAPIVolumeFile proto.InternalMessageInfo\n\nfunc (m *DownwardAPIVolumeSource) Reset()      { *m = DownwardAPIVolumeSource{} }\nfunc (*DownwardAPIVolumeSource) ProtoMessage() {}\nfunc (*DownwardAPIVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{41}\n}\nfunc (m *DownwardAPIVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DownwardAPIVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DownwardAPIVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DownwardAPIVolumeSource.Merge(m, src)\n}\nfunc (m *DownwardAPIVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DownwardAPIVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_DownwardAPIVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DownwardAPIVolumeSource proto.InternalMessageInfo\n\nfunc (m *EmptyDirVolumeSource) Reset()      { *m = EmptyDirVolumeSource{} }\nfunc (*EmptyDirVolumeSource) ProtoMessage() {}\nfunc (*EmptyDirVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{42}\n}\nfunc (m *EmptyDirVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EmptyDirVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EmptyDirVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EmptyDirVolumeSource.Merge(m, src)\n}\nfunc (m *EmptyDirVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EmptyDirVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_EmptyDirVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EmptyDirVolumeSource proto.InternalMessageInfo\n\nfunc (m *EndpointAddress) Reset()      { *m = EndpointAddress{} }\nfunc (*EndpointAddress) ProtoMessage() {}\nfunc (*EndpointAddress) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{43}\n}\nfunc (m *EndpointAddress) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EndpointAddress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EndpointAddress) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EndpointAddress.Merge(m, src)\n}\nfunc (m *EndpointAddress) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EndpointAddress) XXX_DiscardUnknown() {\n\txxx_messageInfo_EndpointAddress.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EndpointAddress proto.InternalMessageInfo\n\nfunc (m *EndpointPort) Reset()      { *m = EndpointPort{} }\nfunc (*EndpointPort) ProtoMessage() {}\nfunc (*EndpointPort) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{44}\n}\nfunc (m *EndpointPort) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EndpointPort) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EndpointPort) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EndpointPort.Merge(m, src)\n}\nfunc (m *EndpointPort) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EndpointPort) XXX_DiscardUnknown() {\n\txxx_messageInfo_EndpointPort.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EndpointPort proto.InternalMessageInfo\n\nfunc (m *EndpointSubset) Reset()      { *m = EndpointSubset{} }\nfunc (*EndpointSubset) ProtoMessage() {}\nfunc (*EndpointSubset) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{45}\n}\nfunc (m *EndpointSubset) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EndpointSubset) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EndpointSubset) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EndpointSubset.Merge(m, src)\n}\nfunc (m *EndpointSubset) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EndpointSubset) XXX_DiscardUnknown() {\n\txxx_messageInfo_EndpointSubset.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EndpointSubset proto.InternalMessageInfo\n\nfunc (m *Endpoints) Reset()      { *m = Endpoints{} }\nfunc (*Endpoints) ProtoMessage() {}\nfunc (*Endpoints) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{46}\n}\nfunc (m *Endpoints) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Endpoints) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Endpoints) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Endpoints.Merge(m, src)\n}\nfunc (m *Endpoints) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Endpoints) XXX_DiscardUnknown() {\n\txxx_messageInfo_Endpoints.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Endpoints proto.InternalMessageInfo\n\nfunc (m *EndpointsList) Reset()      { *m = EndpointsList{} }\nfunc (*EndpointsList) ProtoMessage() {}\nfunc (*EndpointsList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{47}\n}\nfunc (m *EndpointsList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EndpointsList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EndpointsList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EndpointsList.Merge(m, src)\n}\nfunc (m *EndpointsList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EndpointsList) XXX_DiscardUnknown() {\n\txxx_messageInfo_EndpointsList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EndpointsList proto.InternalMessageInfo\n\nfunc (m *EnvFromSource) Reset()      { *m = EnvFromSource{} }\nfunc (*EnvFromSource) ProtoMessage() {}\nfunc (*EnvFromSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{48}\n}\nfunc (m *EnvFromSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EnvFromSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EnvFromSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EnvFromSource.Merge(m, src)\n}\nfunc (m *EnvFromSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EnvFromSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_EnvFromSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EnvFromSource proto.InternalMessageInfo\n\nfunc (m *EnvVar) Reset()      { *m = EnvVar{} }\nfunc (*EnvVar) ProtoMessage() {}\nfunc (*EnvVar) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{49}\n}\nfunc (m *EnvVar) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EnvVar) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EnvVar) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EnvVar.Merge(m, src)\n}\nfunc (m *EnvVar) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EnvVar) XXX_DiscardUnknown() {\n\txxx_messageInfo_EnvVar.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EnvVar proto.InternalMessageInfo\n\nfunc (m *EnvVarSource) Reset()      { *m = EnvVarSource{} }\nfunc (*EnvVarSource) ProtoMessage() {}\nfunc (*EnvVarSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{50}\n}\nfunc (m *EnvVarSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EnvVarSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EnvVarSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EnvVarSource.Merge(m, src)\n}\nfunc (m *EnvVarSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EnvVarSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_EnvVarSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EnvVarSource proto.InternalMessageInfo\n\nfunc (m *EphemeralContainer) Reset()      { *m = EphemeralContainer{} }\nfunc (*EphemeralContainer) ProtoMessage() {}\nfunc (*EphemeralContainer) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{51}\n}\nfunc (m *EphemeralContainer) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EphemeralContainer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EphemeralContainer) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EphemeralContainer.Merge(m, src)\n}\nfunc (m *EphemeralContainer) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EphemeralContainer) XXX_DiscardUnknown() {\n\txxx_messageInfo_EphemeralContainer.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EphemeralContainer proto.InternalMessageInfo\n\nfunc (m *EphemeralContainerCommon) Reset()      { *m = EphemeralContainerCommon{} }\nfunc (*EphemeralContainerCommon) ProtoMessage() {}\nfunc (*EphemeralContainerCommon) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{52}\n}\nfunc (m *EphemeralContainerCommon) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EphemeralContainerCommon) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EphemeralContainerCommon) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EphemeralContainerCommon.Merge(m, src)\n}\nfunc (m *EphemeralContainerCommon) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EphemeralContainerCommon) XXX_DiscardUnknown() {\n\txxx_messageInfo_EphemeralContainerCommon.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EphemeralContainerCommon proto.InternalMessageInfo\n\nfunc (m *EphemeralVolumeSource) Reset()      { *m = EphemeralVolumeSource{} }\nfunc (*EphemeralVolumeSource) ProtoMessage() {}\nfunc (*EphemeralVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{53}\n}\nfunc (m *EphemeralVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EphemeralVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EphemeralVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EphemeralVolumeSource.Merge(m, src)\n}\nfunc (m *EphemeralVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EphemeralVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_EphemeralVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EphemeralVolumeSource proto.InternalMessageInfo\n\nfunc (m *Event) Reset()      { *m = Event{} }\nfunc (*Event) ProtoMessage() {}\nfunc (*Event) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{54}\n}\nfunc (m *Event) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Event) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Event) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Event.Merge(m, src)\n}\nfunc (m *Event) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Event) XXX_DiscardUnknown() {\n\txxx_messageInfo_Event.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Event proto.InternalMessageInfo\n\nfunc (m *EventList) Reset()      { *m = EventList{} }\nfunc (*EventList) ProtoMessage() {}\nfunc (*EventList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{55}\n}\nfunc (m *EventList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EventList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EventList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EventList.Merge(m, src)\n}\nfunc (m *EventList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EventList) XXX_DiscardUnknown() {\n\txxx_messageInfo_EventList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EventList proto.InternalMessageInfo\n\nfunc (m *EventSeries) Reset()      { *m = EventSeries{} }\nfunc (*EventSeries) ProtoMessage() {}\nfunc (*EventSeries) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{56}\n}\nfunc (m *EventSeries) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EventSeries) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EventSeries) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EventSeries.Merge(m, src)\n}\nfunc (m *EventSeries) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EventSeries) XXX_DiscardUnknown() {\n\txxx_messageInfo_EventSeries.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EventSeries proto.InternalMessageInfo\n\nfunc (m *EventSource) Reset()      { *m = EventSource{} }\nfunc (*EventSource) ProtoMessage() {}\nfunc (*EventSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{57}\n}\nfunc (m *EventSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EventSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EventSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EventSource.Merge(m, src)\n}\nfunc (m *EventSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EventSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_EventSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EventSource proto.InternalMessageInfo\n\nfunc (m *ExecAction) Reset()      { *m = ExecAction{} }\nfunc (*ExecAction) ProtoMessage() {}\nfunc (*ExecAction) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{58}\n}\nfunc (m *ExecAction) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ExecAction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ExecAction) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ExecAction.Merge(m, src)\n}\nfunc (m *ExecAction) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ExecAction) XXX_DiscardUnknown() {\n\txxx_messageInfo_ExecAction.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ExecAction proto.InternalMessageInfo\n\nfunc (m *FCVolumeSource) Reset()      { *m = FCVolumeSource{} }\nfunc (*FCVolumeSource) ProtoMessage() {}\nfunc (*FCVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{59}\n}\nfunc (m *FCVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FCVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FCVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FCVolumeSource.Merge(m, src)\n}\nfunc (m *FCVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FCVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_FCVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FCVolumeSource proto.InternalMessageInfo\n\nfunc (m *FlexPersistentVolumeSource) Reset()      { *m = FlexPersistentVolumeSource{} }\nfunc (*FlexPersistentVolumeSource) ProtoMessage() {}\nfunc (*FlexPersistentVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{60}\n}\nfunc (m *FlexPersistentVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlexPersistentVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlexPersistentVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlexPersistentVolumeSource.Merge(m, src)\n}\nfunc (m *FlexPersistentVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlexPersistentVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlexPersistentVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlexPersistentVolumeSource proto.InternalMessageInfo\n\nfunc (m *FlexVolumeSource) Reset()      { *m = FlexVolumeSource{} }\nfunc (*FlexVolumeSource) ProtoMessage() {}\nfunc (*FlexVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{61}\n}\nfunc (m *FlexVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlexVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlexVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlexVolumeSource.Merge(m, src)\n}\nfunc (m *FlexVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlexVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlexVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlexVolumeSource proto.InternalMessageInfo\n\nfunc (m *FlockerVolumeSource) Reset()      { *m = FlockerVolumeSource{} }\nfunc (*FlockerVolumeSource) ProtoMessage() {}\nfunc (*FlockerVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{62}\n}\nfunc (m *FlockerVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlockerVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlockerVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlockerVolumeSource.Merge(m, src)\n}\nfunc (m *FlockerVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlockerVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlockerVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlockerVolumeSource proto.InternalMessageInfo\n\nfunc (m *GCEPersistentDiskVolumeSource) Reset()      { *m = GCEPersistentDiskVolumeSource{} }\nfunc (*GCEPersistentDiskVolumeSource) ProtoMessage() {}\nfunc (*GCEPersistentDiskVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{63}\n}\nfunc (m *GCEPersistentDiskVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *GCEPersistentDiskVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *GCEPersistentDiskVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_GCEPersistentDiskVolumeSource.Merge(m, src)\n}\nfunc (m *GCEPersistentDiskVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *GCEPersistentDiskVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_GCEPersistentDiskVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_GCEPersistentDiskVolumeSource proto.InternalMessageInfo\n\nfunc (m *GRPCAction) Reset()      { *m = GRPCAction{} }\nfunc (*GRPCAction) ProtoMessage() {}\nfunc (*GRPCAction) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{64}\n}\nfunc (m *GRPCAction) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *GRPCAction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *GRPCAction) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_GRPCAction.Merge(m, src)\n}\nfunc (m *GRPCAction) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *GRPCAction) XXX_DiscardUnknown() {\n\txxx_messageInfo_GRPCAction.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_GRPCAction proto.InternalMessageInfo\n\nfunc (m *GitRepoVolumeSource) Reset()      { *m = GitRepoVolumeSource{} }\nfunc (*GitRepoVolumeSource) ProtoMessage() {}\nfunc (*GitRepoVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{65}\n}\nfunc (m *GitRepoVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *GitRepoVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *GitRepoVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_GitRepoVolumeSource.Merge(m, src)\n}\nfunc (m *GitRepoVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *GitRepoVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_GitRepoVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_GitRepoVolumeSource proto.InternalMessageInfo\n\nfunc (m *GlusterfsPersistentVolumeSource) Reset()      { *m = GlusterfsPersistentVolumeSource{} }\nfunc (*GlusterfsPersistentVolumeSource) ProtoMessage() {}\nfunc (*GlusterfsPersistentVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{66}\n}\nfunc (m *GlusterfsPersistentVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *GlusterfsPersistentVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *GlusterfsPersistentVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_GlusterfsPersistentVolumeSource.Merge(m, src)\n}\nfunc (m *GlusterfsPersistentVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *GlusterfsPersistentVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_GlusterfsPersistentVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_GlusterfsPersistentVolumeSource proto.InternalMessageInfo\n\nfunc (m *GlusterfsVolumeSource) Reset()      { *m = GlusterfsVolumeSource{} }\nfunc (*GlusterfsVolumeSource) ProtoMessage() {}\nfunc (*GlusterfsVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{67}\n}\nfunc (m *GlusterfsVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *GlusterfsVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *GlusterfsVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_GlusterfsVolumeSource.Merge(m, src)\n}\nfunc (m *GlusterfsVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *GlusterfsVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_GlusterfsVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_GlusterfsVolumeSource proto.InternalMessageInfo\n\nfunc (m *HTTPGetAction) Reset()      { *m = HTTPGetAction{} }\nfunc (*HTTPGetAction) ProtoMessage() {}\nfunc (*HTTPGetAction) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{68}\n}\nfunc (m *HTTPGetAction) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HTTPGetAction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HTTPGetAction) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HTTPGetAction.Merge(m, src)\n}\nfunc (m *HTTPGetAction) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HTTPGetAction) XXX_DiscardUnknown() {\n\txxx_messageInfo_HTTPGetAction.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HTTPGetAction proto.InternalMessageInfo\n\nfunc (m *HTTPHeader) Reset()      { *m = HTTPHeader{} }\nfunc (*HTTPHeader) ProtoMessage() {}\nfunc (*HTTPHeader) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{69}\n}\nfunc (m *HTTPHeader) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HTTPHeader) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HTTPHeader) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HTTPHeader.Merge(m, src)\n}\nfunc (m *HTTPHeader) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HTTPHeader) XXX_DiscardUnknown() {\n\txxx_messageInfo_HTTPHeader.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HTTPHeader proto.InternalMessageInfo\n\nfunc (m *HostAlias) Reset()      { *m = HostAlias{} }\nfunc (*HostAlias) ProtoMessage() {}\nfunc (*HostAlias) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{70}\n}\nfunc (m *HostAlias) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HostAlias) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HostAlias) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HostAlias.Merge(m, src)\n}\nfunc (m *HostAlias) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HostAlias) XXX_DiscardUnknown() {\n\txxx_messageInfo_HostAlias.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HostAlias proto.InternalMessageInfo\n\nfunc (m *HostIP) Reset()      { *m = HostIP{} }\nfunc (*HostIP) ProtoMessage() {}\nfunc (*HostIP) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{71}\n}\nfunc (m *HostIP) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HostIP) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HostIP) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HostIP.Merge(m, src)\n}\nfunc (m *HostIP) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HostIP) XXX_DiscardUnknown() {\n\txxx_messageInfo_HostIP.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HostIP proto.InternalMessageInfo\n\nfunc (m *HostPathVolumeSource) Reset()      { *m = HostPathVolumeSource{} }\nfunc (*HostPathVolumeSource) ProtoMessage() {}\nfunc (*HostPathVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{72}\n}\nfunc (m *HostPathVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HostPathVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HostPathVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HostPathVolumeSource.Merge(m, src)\n}\nfunc (m *HostPathVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HostPathVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_HostPathVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HostPathVolumeSource proto.InternalMessageInfo\n\nfunc (m *ISCSIPersistentVolumeSource) Reset()      { *m = ISCSIPersistentVolumeSource{} }\nfunc (*ISCSIPersistentVolumeSource) ProtoMessage() {}\nfunc (*ISCSIPersistentVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{73}\n}\nfunc (m *ISCSIPersistentVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ISCSIPersistentVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ISCSIPersistentVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ISCSIPersistentVolumeSource.Merge(m, src)\n}\nfunc (m *ISCSIPersistentVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ISCSIPersistentVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ISCSIPersistentVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ISCSIPersistentVolumeSource proto.InternalMessageInfo\n\nfunc (m *ISCSIVolumeSource) Reset()      { *m = ISCSIVolumeSource{} }\nfunc (*ISCSIVolumeSource) ProtoMessage() {}\nfunc (*ISCSIVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{74}\n}\nfunc (m *ISCSIVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ISCSIVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ISCSIVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ISCSIVolumeSource.Merge(m, src)\n}\nfunc (m *ISCSIVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ISCSIVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ISCSIVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ISCSIVolumeSource proto.InternalMessageInfo\n\nfunc (m *ImageVolumeSource) Reset()      { *m = ImageVolumeSource{} }\nfunc (*ImageVolumeSource) ProtoMessage() {}\nfunc (*ImageVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{75}\n}\nfunc (m *ImageVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ImageVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ImageVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ImageVolumeSource.Merge(m, src)\n}\nfunc (m *ImageVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ImageVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ImageVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ImageVolumeSource proto.InternalMessageInfo\n\nfunc (m *KeyToPath) Reset()      { *m = KeyToPath{} }\nfunc (*KeyToPath) ProtoMessage() {}\nfunc (*KeyToPath) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{76}\n}\nfunc (m *KeyToPath) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *KeyToPath) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *KeyToPath) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_KeyToPath.Merge(m, src)\n}\nfunc (m *KeyToPath) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *KeyToPath) XXX_DiscardUnknown() {\n\txxx_messageInfo_KeyToPath.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_KeyToPath proto.InternalMessageInfo\n\nfunc (m *Lifecycle) Reset()      { *m = Lifecycle{} }\nfunc (*Lifecycle) ProtoMessage() {}\nfunc (*Lifecycle) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{77}\n}\nfunc (m *Lifecycle) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Lifecycle) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Lifecycle) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Lifecycle.Merge(m, src)\n}\nfunc (m *Lifecycle) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Lifecycle) XXX_DiscardUnknown() {\n\txxx_messageInfo_Lifecycle.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Lifecycle proto.InternalMessageInfo\n\nfunc (m *LifecycleHandler) Reset()      { *m = LifecycleHandler{} }\nfunc (*LifecycleHandler) ProtoMessage() {}\nfunc (*LifecycleHandler) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{78}\n}\nfunc (m *LifecycleHandler) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LifecycleHandler) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LifecycleHandler) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LifecycleHandler.Merge(m, src)\n}\nfunc (m *LifecycleHandler) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LifecycleHandler) XXX_DiscardUnknown() {\n\txxx_messageInfo_LifecycleHandler.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LifecycleHandler proto.InternalMessageInfo\n\nfunc (m *LimitRange) Reset()      { *m = LimitRange{} }\nfunc (*LimitRange) ProtoMessage() {}\nfunc (*LimitRange) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{79}\n}\nfunc (m *LimitRange) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LimitRange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LimitRange) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LimitRange.Merge(m, src)\n}\nfunc (m *LimitRange) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LimitRange) XXX_DiscardUnknown() {\n\txxx_messageInfo_LimitRange.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LimitRange proto.InternalMessageInfo\n\nfunc (m *LimitRangeItem) Reset()      { *m = LimitRangeItem{} }\nfunc (*LimitRangeItem) ProtoMessage() {}\nfunc (*LimitRangeItem) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{80}\n}\nfunc (m *LimitRangeItem) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LimitRangeItem) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LimitRangeItem) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LimitRangeItem.Merge(m, src)\n}\nfunc (m *LimitRangeItem) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LimitRangeItem) XXX_DiscardUnknown() {\n\txxx_messageInfo_LimitRangeItem.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LimitRangeItem proto.InternalMessageInfo\n\nfunc (m *LimitRangeList) Reset()      { *m = LimitRangeList{} }\nfunc (*LimitRangeList) ProtoMessage() {}\nfunc (*LimitRangeList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{81}\n}\nfunc (m *LimitRangeList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LimitRangeList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LimitRangeList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LimitRangeList.Merge(m, src)\n}\nfunc (m *LimitRangeList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LimitRangeList) XXX_DiscardUnknown() {\n\txxx_messageInfo_LimitRangeList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LimitRangeList proto.InternalMessageInfo\n\nfunc (m *LimitRangeSpec) Reset()      { *m = LimitRangeSpec{} }\nfunc (*LimitRangeSpec) ProtoMessage() {}\nfunc (*LimitRangeSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{82}\n}\nfunc (m *LimitRangeSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LimitRangeSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LimitRangeSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LimitRangeSpec.Merge(m, src)\n}\nfunc (m *LimitRangeSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LimitRangeSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_LimitRangeSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LimitRangeSpec proto.InternalMessageInfo\n\nfunc (m *LinuxContainerUser) Reset()      { *m = LinuxContainerUser{} }\nfunc (*LinuxContainerUser) ProtoMessage() {}\nfunc (*LinuxContainerUser) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{83}\n}\nfunc (m *LinuxContainerUser) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LinuxContainerUser) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LinuxContainerUser) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LinuxContainerUser.Merge(m, src)\n}\nfunc (m *LinuxContainerUser) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LinuxContainerUser) XXX_DiscardUnknown() {\n\txxx_messageInfo_LinuxContainerUser.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LinuxContainerUser proto.InternalMessageInfo\n\nfunc (m *List) Reset()      { *m = List{} }\nfunc (*List) ProtoMessage() {}\nfunc (*List) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{84}\n}\nfunc (m *List) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *List) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *List) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_List.Merge(m, src)\n}\nfunc (m *List) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *List) XXX_DiscardUnknown() {\n\txxx_messageInfo_List.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_List proto.InternalMessageInfo\n\nfunc (m *LoadBalancerIngress) Reset()      { *m = LoadBalancerIngress{} }\nfunc (*LoadBalancerIngress) ProtoMessage() {}\nfunc (*LoadBalancerIngress) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{85}\n}\nfunc (m *LoadBalancerIngress) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LoadBalancerIngress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LoadBalancerIngress) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LoadBalancerIngress.Merge(m, src)\n}\nfunc (m *LoadBalancerIngress) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LoadBalancerIngress) XXX_DiscardUnknown() {\n\txxx_messageInfo_LoadBalancerIngress.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LoadBalancerIngress proto.InternalMessageInfo\n\nfunc (m *LoadBalancerStatus) Reset()      { *m = LoadBalancerStatus{} }\nfunc (*LoadBalancerStatus) ProtoMessage() {}\nfunc (*LoadBalancerStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{86}\n}\nfunc (m *LoadBalancerStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LoadBalancerStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LoadBalancerStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LoadBalancerStatus.Merge(m, src)\n}\nfunc (m *LoadBalancerStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LoadBalancerStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_LoadBalancerStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LoadBalancerStatus proto.InternalMessageInfo\n\nfunc (m *LocalObjectReference) Reset()      { *m = LocalObjectReference{} }\nfunc (*LocalObjectReference) ProtoMessage() {}\nfunc (*LocalObjectReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{87}\n}\nfunc (m *LocalObjectReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LocalObjectReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LocalObjectReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LocalObjectReference.Merge(m, src)\n}\nfunc (m *LocalObjectReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LocalObjectReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_LocalObjectReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LocalObjectReference proto.InternalMessageInfo\n\nfunc (m *LocalVolumeSource) Reset()      { *m = LocalVolumeSource{} }\nfunc (*LocalVolumeSource) ProtoMessage() {}\nfunc (*LocalVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{88}\n}\nfunc (m *LocalVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LocalVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LocalVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LocalVolumeSource.Merge(m, src)\n}\nfunc (m *LocalVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LocalVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_LocalVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LocalVolumeSource proto.InternalMessageInfo\n\nfunc (m *ModifyVolumeStatus) Reset()      { *m = ModifyVolumeStatus{} }\nfunc (*ModifyVolumeStatus) ProtoMessage() {}\nfunc (*ModifyVolumeStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{89}\n}\nfunc (m *ModifyVolumeStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ModifyVolumeStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ModifyVolumeStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ModifyVolumeStatus.Merge(m, src)\n}\nfunc (m *ModifyVolumeStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ModifyVolumeStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ModifyVolumeStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ModifyVolumeStatus proto.InternalMessageInfo\n\nfunc (m *NFSVolumeSource) Reset()      { *m = NFSVolumeSource{} }\nfunc (*NFSVolumeSource) ProtoMessage() {}\nfunc (*NFSVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{90}\n}\nfunc (m *NFSVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NFSVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NFSVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NFSVolumeSource.Merge(m, src)\n}\nfunc (m *NFSVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NFSVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_NFSVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NFSVolumeSource proto.InternalMessageInfo\n\nfunc (m *Namespace) Reset()      { *m = Namespace{} }\nfunc (*Namespace) ProtoMessage() {}\nfunc (*Namespace) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{91}\n}\nfunc (m *Namespace) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Namespace) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Namespace) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Namespace.Merge(m, src)\n}\nfunc (m *Namespace) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Namespace) XXX_DiscardUnknown() {\n\txxx_messageInfo_Namespace.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Namespace proto.InternalMessageInfo\n\nfunc (m *NamespaceCondition) Reset()      { *m = NamespaceCondition{} }\nfunc (*NamespaceCondition) ProtoMessage() {}\nfunc (*NamespaceCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{92}\n}\nfunc (m *NamespaceCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NamespaceCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NamespaceCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NamespaceCondition.Merge(m, src)\n}\nfunc (m *NamespaceCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NamespaceCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_NamespaceCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NamespaceCondition proto.InternalMessageInfo\n\nfunc (m *NamespaceList) Reset()      { *m = NamespaceList{} }\nfunc (*NamespaceList) ProtoMessage() {}\nfunc (*NamespaceList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{93}\n}\nfunc (m *NamespaceList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NamespaceList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NamespaceList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NamespaceList.Merge(m, src)\n}\nfunc (m *NamespaceList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NamespaceList) XXX_DiscardUnknown() {\n\txxx_messageInfo_NamespaceList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NamespaceList proto.InternalMessageInfo\n\nfunc (m *NamespaceSpec) Reset()      { *m = NamespaceSpec{} }\nfunc (*NamespaceSpec) ProtoMessage() {}\nfunc (*NamespaceSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{94}\n}\nfunc (m *NamespaceSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NamespaceSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NamespaceSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NamespaceSpec.Merge(m, src)\n}\nfunc (m *NamespaceSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NamespaceSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_NamespaceSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NamespaceSpec proto.InternalMessageInfo\n\nfunc (m *NamespaceStatus) Reset()      { *m = NamespaceStatus{} }\nfunc (*NamespaceStatus) ProtoMessage() {}\nfunc (*NamespaceStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{95}\n}\nfunc (m *NamespaceStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NamespaceStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NamespaceStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NamespaceStatus.Merge(m, src)\n}\nfunc (m *NamespaceStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NamespaceStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_NamespaceStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NamespaceStatus proto.InternalMessageInfo\n\nfunc (m *Node) Reset()      { *m = Node{} }\nfunc (*Node) ProtoMessage() {}\nfunc (*Node) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{96}\n}\nfunc (m *Node) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Node) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Node) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Node.Merge(m, src)\n}\nfunc (m *Node) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Node) XXX_DiscardUnknown() {\n\txxx_messageInfo_Node.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Node proto.InternalMessageInfo\n\nfunc (m *NodeAddress) Reset()      { *m = NodeAddress{} }\nfunc (*NodeAddress) ProtoMessage() {}\nfunc (*NodeAddress) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{97}\n}\nfunc (m *NodeAddress) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NodeAddress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NodeAddress) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NodeAddress.Merge(m, src)\n}\nfunc (m *NodeAddress) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NodeAddress) XXX_DiscardUnknown() {\n\txxx_messageInfo_NodeAddress.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NodeAddress proto.InternalMessageInfo\n\nfunc (m *NodeAffinity) Reset()      { *m = NodeAffinity{} }\nfunc (*NodeAffinity) ProtoMessage() {}\nfunc (*NodeAffinity) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{98}\n}\nfunc (m *NodeAffinity) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NodeAffinity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NodeAffinity) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NodeAffinity.Merge(m, src)\n}\nfunc (m *NodeAffinity) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NodeAffinity) XXX_DiscardUnknown() {\n\txxx_messageInfo_NodeAffinity.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NodeAffinity proto.InternalMessageInfo\n\nfunc (m *NodeCondition) Reset()      { *m = NodeCondition{} }\nfunc (*NodeCondition) ProtoMessage() {}\nfunc (*NodeCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{99}\n}\nfunc (m *NodeCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NodeCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NodeCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NodeCondition.Merge(m, src)\n}\nfunc (m *NodeCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NodeCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_NodeCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NodeCondition proto.InternalMessageInfo\n\nfunc (m *NodeConfigSource) Reset()      { *m = NodeConfigSource{} }\nfunc (*NodeConfigSource) ProtoMessage() {}\nfunc (*NodeConfigSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{100}\n}\nfunc (m *NodeConfigSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NodeConfigSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NodeConfigSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NodeConfigSource.Merge(m, src)\n}\nfunc (m *NodeConfigSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NodeConfigSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_NodeConfigSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NodeConfigSource proto.InternalMessageInfo\n\nfunc (m *NodeConfigStatus) Reset()      { *m = NodeConfigStatus{} }\nfunc (*NodeConfigStatus) ProtoMessage() {}\nfunc (*NodeConfigStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{101}\n}\nfunc (m *NodeConfigStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NodeConfigStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NodeConfigStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NodeConfigStatus.Merge(m, src)\n}\nfunc (m *NodeConfigStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NodeConfigStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_NodeConfigStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NodeConfigStatus proto.InternalMessageInfo\n\nfunc (m *NodeDaemonEndpoints) Reset()      { *m = NodeDaemonEndpoints{} }\nfunc (*NodeDaemonEndpoints) ProtoMessage() {}\nfunc (*NodeDaemonEndpoints) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{102}\n}\nfunc (m *NodeDaemonEndpoints) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NodeDaemonEndpoints) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NodeDaemonEndpoints) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NodeDaemonEndpoints.Merge(m, src)\n}\nfunc (m *NodeDaemonEndpoints) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NodeDaemonEndpoints) XXX_DiscardUnknown() {\n\txxx_messageInfo_NodeDaemonEndpoints.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NodeDaemonEndpoints proto.InternalMessageInfo\n\nfunc (m *NodeFeatures) Reset()      { *m = NodeFeatures{} }\nfunc (*NodeFeatures) ProtoMessage() {}\nfunc (*NodeFeatures) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{103}\n}\nfunc (m *NodeFeatures) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NodeFeatures) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NodeFeatures) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NodeFeatures.Merge(m, src)\n}\nfunc (m *NodeFeatures) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NodeFeatures) XXX_DiscardUnknown() {\n\txxx_messageInfo_NodeFeatures.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NodeFeatures proto.InternalMessageInfo\n\nfunc (m *NodeList) Reset()      { *m = NodeList{} }\nfunc (*NodeList) ProtoMessage() {}\nfunc (*NodeList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{104}\n}\nfunc (m *NodeList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NodeList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NodeList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NodeList.Merge(m, src)\n}\nfunc (m *NodeList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NodeList) XXX_DiscardUnknown() {\n\txxx_messageInfo_NodeList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NodeList proto.InternalMessageInfo\n\nfunc (m *NodeProxyOptions) Reset()      { *m = NodeProxyOptions{} }\nfunc (*NodeProxyOptions) ProtoMessage() {}\nfunc (*NodeProxyOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{105}\n}\nfunc (m *NodeProxyOptions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NodeProxyOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NodeProxyOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NodeProxyOptions.Merge(m, src)\n}\nfunc (m *NodeProxyOptions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NodeProxyOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_NodeProxyOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NodeProxyOptions proto.InternalMessageInfo\n\nfunc (m *NodeRuntimeHandler) Reset()      { *m = NodeRuntimeHandler{} }\nfunc (*NodeRuntimeHandler) ProtoMessage() {}\nfunc (*NodeRuntimeHandler) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{106}\n}\nfunc (m *NodeRuntimeHandler) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NodeRuntimeHandler) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NodeRuntimeHandler) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NodeRuntimeHandler.Merge(m, src)\n}\nfunc (m *NodeRuntimeHandler) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NodeRuntimeHandler) XXX_DiscardUnknown() {\n\txxx_messageInfo_NodeRuntimeHandler.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NodeRuntimeHandler proto.InternalMessageInfo\n\nfunc (m *NodeRuntimeHandlerFeatures) Reset()      { *m = NodeRuntimeHandlerFeatures{} }\nfunc (*NodeRuntimeHandlerFeatures) ProtoMessage() {}\nfunc (*NodeRuntimeHandlerFeatures) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{107}\n}\nfunc (m *NodeRuntimeHandlerFeatures) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NodeRuntimeHandlerFeatures) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NodeRuntimeHandlerFeatures) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NodeRuntimeHandlerFeatures.Merge(m, src)\n}\nfunc (m *NodeRuntimeHandlerFeatures) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NodeRuntimeHandlerFeatures) XXX_DiscardUnknown() {\n\txxx_messageInfo_NodeRuntimeHandlerFeatures.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NodeRuntimeHandlerFeatures proto.InternalMessageInfo\n\nfunc (m *NodeSelector) Reset()      { *m = NodeSelector{} }\nfunc (*NodeSelector) ProtoMessage() {}\nfunc (*NodeSelector) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{108}\n}\nfunc (m *NodeSelector) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NodeSelector) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NodeSelector) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NodeSelector.Merge(m, src)\n}\nfunc (m *NodeSelector) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NodeSelector) XXX_DiscardUnknown() {\n\txxx_messageInfo_NodeSelector.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NodeSelector proto.InternalMessageInfo\n\nfunc (m *NodeSelectorRequirement) Reset()      { *m = NodeSelectorRequirement{} }\nfunc (*NodeSelectorRequirement) ProtoMessage() {}\nfunc (*NodeSelectorRequirement) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{109}\n}\nfunc (m *NodeSelectorRequirement) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NodeSelectorRequirement) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NodeSelectorRequirement) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NodeSelectorRequirement.Merge(m, src)\n}\nfunc (m *NodeSelectorRequirement) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NodeSelectorRequirement) XXX_DiscardUnknown() {\n\txxx_messageInfo_NodeSelectorRequirement.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NodeSelectorRequirement proto.InternalMessageInfo\n\nfunc (m *NodeSelectorTerm) Reset()      { *m = NodeSelectorTerm{} }\nfunc (*NodeSelectorTerm) ProtoMessage() {}\nfunc (*NodeSelectorTerm) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{110}\n}\nfunc (m *NodeSelectorTerm) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NodeSelectorTerm) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NodeSelectorTerm) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NodeSelectorTerm.Merge(m, src)\n}\nfunc (m *NodeSelectorTerm) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NodeSelectorTerm) XXX_DiscardUnknown() {\n\txxx_messageInfo_NodeSelectorTerm.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NodeSelectorTerm proto.InternalMessageInfo\n\nfunc (m *NodeSpec) Reset()      { *m = NodeSpec{} }\nfunc (*NodeSpec) ProtoMessage() {}\nfunc (*NodeSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{111}\n}\nfunc (m *NodeSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NodeSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NodeSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NodeSpec.Merge(m, src)\n}\nfunc (m *NodeSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NodeSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_NodeSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NodeSpec proto.InternalMessageInfo\n\nfunc (m *NodeStatus) Reset()      { *m = NodeStatus{} }\nfunc (*NodeStatus) ProtoMessage() {}\nfunc (*NodeStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{112}\n}\nfunc (m *NodeStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NodeStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NodeStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NodeStatus.Merge(m, src)\n}\nfunc (m *NodeStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NodeStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_NodeStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NodeStatus proto.InternalMessageInfo\n\nfunc (m *NodeSystemInfo) Reset()      { *m = NodeSystemInfo{} }\nfunc (*NodeSystemInfo) ProtoMessage() {}\nfunc (*NodeSystemInfo) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{113}\n}\nfunc (m *NodeSystemInfo) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NodeSystemInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NodeSystemInfo) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NodeSystemInfo.Merge(m, src)\n}\nfunc (m *NodeSystemInfo) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NodeSystemInfo) XXX_DiscardUnknown() {\n\txxx_messageInfo_NodeSystemInfo.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NodeSystemInfo proto.InternalMessageInfo\n\nfunc (m *ObjectFieldSelector) Reset()      { *m = ObjectFieldSelector{} }\nfunc (*ObjectFieldSelector) ProtoMessage() {}\nfunc (*ObjectFieldSelector) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{114}\n}\nfunc (m *ObjectFieldSelector) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ObjectFieldSelector) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ObjectFieldSelector) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ObjectFieldSelector.Merge(m, src)\n}\nfunc (m *ObjectFieldSelector) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ObjectFieldSelector) XXX_DiscardUnknown() {\n\txxx_messageInfo_ObjectFieldSelector.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ObjectFieldSelector proto.InternalMessageInfo\n\nfunc (m *ObjectReference) Reset()      { *m = ObjectReference{} }\nfunc (*ObjectReference) ProtoMessage() {}\nfunc (*ObjectReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{115}\n}\nfunc (m *ObjectReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ObjectReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ObjectReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ObjectReference.Merge(m, src)\n}\nfunc (m *ObjectReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ObjectReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_ObjectReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ObjectReference proto.InternalMessageInfo\n\nfunc (m *PersistentVolume) Reset()      { *m = PersistentVolume{} }\nfunc (*PersistentVolume) ProtoMessage() {}\nfunc (*PersistentVolume) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{116}\n}\nfunc (m *PersistentVolume) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PersistentVolume) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PersistentVolume) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PersistentVolume.Merge(m, src)\n}\nfunc (m *PersistentVolume) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PersistentVolume) XXX_DiscardUnknown() {\n\txxx_messageInfo_PersistentVolume.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PersistentVolume proto.InternalMessageInfo\n\nfunc (m *PersistentVolumeClaim) Reset()      { *m = PersistentVolumeClaim{} }\nfunc (*PersistentVolumeClaim) ProtoMessage() {}\nfunc (*PersistentVolumeClaim) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{117}\n}\nfunc (m *PersistentVolumeClaim) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PersistentVolumeClaim) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PersistentVolumeClaim) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PersistentVolumeClaim.Merge(m, src)\n}\nfunc (m *PersistentVolumeClaim) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PersistentVolumeClaim) XXX_DiscardUnknown() {\n\txxx_messageInfo_PersistentVolumeClaim.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PersistentVolumeClaim proto.InternalMessageInfo\n\nfunc (m *PersistentVolumeClaimCondition) Reset()      { *m = PersistentVolumeClaimCondition{} }\nfunc (*PersistentVolumeClaimCondition) ProtoMessage() {}\nfunc (*PersistentVolumeClaimCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{118}\n}\nfunc (m *PersistentVolumeClaimCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PersistentVolumeClaimCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PersistentVolumeClaimCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PersistentVolumeClaimCondition.Merge(m, src)\n}\nfunc (m *PersistentVolumeClaimCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PersistentVolumeClaimCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_PersistentVolumeClaimCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PersistentVolumeClaimCondition proto.InternalMessageInfo\n\nfunc (m *PersistentVolumeClaimList) Reset()      { *m = PersistentVolumeClaimList{} }\nfunc (*PersistentVolumeClaimList) ProtoMessage() {}\nfunc (*PersistentVolumeClaimList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{119}\n}\nfunc (m *PersistentVolumeClaimList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PersistentVolumeClaimList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PersistentVolumeClaimList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PersistentVolumeClaimList.Merge(m, src)\n}\nfunc (m *PersistentVolumeClaimList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PersistentVolumeClaimList) XXX_DiscardUnknown() {\n\txxx_messageInfo_PersistentVolumeClaimList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PersistentVolumeClaimList proto.InternalMessageInfo\n\nfunc (m *PersistentVolumeClaimSpec) Reset()      { *m = PersistentVolumeClaimSpec{} }\nfunc (*PersistentVolumeClaimSpec) ProtoMessage() {}\nfunc (*PersistentVolumeClaimSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{120}\n}\nfunc (m *PersistentVolumeClaimSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PersistentVolumeClaimSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PersistentVolumeClaimSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PersistentVolumeClaimSpec.Merge(m, src)\n}\nfunc (m *PersistentVolumeClaimSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PersistentVolumeClaimSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_PersistentVolumeClaimSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PersistentVolumeClaimSpec proto.InternalMessageInfo\n\nfunc (m *PersistentVolumeClaimStatus) Reset()      { *m = PersistentVolumeClaimStatus{} }\nfunc (*PersistentVolumeClaimStatus) ProtoMessage() {}\nfunc (*PersistentVolumeClaimStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{121}\n}\nfunc (m *PersistentVolumeClaimStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PersistentVolumeClaimStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PersistentVolumeClaimStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PersistentVolumeClaimStatus.Merge(m, src)\n}\nfunc (m *PersistentVolumeClaimStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PersistentVolumeClaimStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_PersistentVolumeClaimStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PersistentVolumeClaimStatus proto.InternalMessageInfo\n\nfunc (m *PersistentVolumeClaimTemplate) Reset()      { *m = PersistentVolumeClaimTemplate{} }\nfunc (*PersistentVolumeClaimTemplate) ProtoMessage() {}\nfunc (*PersistentVolumeClaimTemplate) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{122}\n}\nfunc (m *PersistentVolumeClaimTemplate) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PersistentVolumeClaimTemplate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PersistentVolumeClaimTemplate) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PersistentVolumeClaimTemplate.Merge(m, src)\n}\nfunc (m *PersistentVolumeClaimTemplate) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PersistentVolumeClaimTemplate) XXX_DiscardUnknown() {\n\txxx_messageInfo_PersistentVolumeClaimTemplate.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PersistentVolumeClaimTemplate proto.InternalMessageInfo\n\nfunc (m *PersistentVolumeClaimVolumeSource) Reset()      { *m = PersistentVolumeClaimVolumeSource{} }\nfunc (*PersistentVolumeClaimVolumeSource) ProtoMessage() {}\nfunc (*PersistentVolumeClaimVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{123}\n}\nfunc (m *PersistentVolumeClaimVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PersistentVolumeClaimVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PersistentVolumeClaimVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PersistentVolumeClaimVolumeSource.Merge(m, src)\n}\nfunc (m *PersistentVolumeClaimVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PersistentVolumeClaimVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_PersistentVolumeClaimVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PersistentVolumeClaimVolumeSource proto.InternalMessageInfo\n\nfunc (m *PersistentVolumeList) Reset()      { *m = PersistentVolumeList{} }\nfunc (*PersistentVolumeList) ProtoMessage() {}\nfunc (*PersistentVolumeList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{124}\n}\nfunc (m *PersistentVolumeList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PersistentVolumeList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PersistentVolumeList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PersistentVolumeList.Merge(m, src)\n}\nfunc (m *PersistentVolumeList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PersistentVolumeList) XXX_DiscardUnknown() {\n\txxx_messageInfo_PersistentVolumeList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PersistentVolumeList proto.InternalMessageInfo\n\nfunc (m *PersistentVolumeSource) Reset()      { *m = PersistentVolumeSource{} }\nfunc (*PersistentVolumeSource) ProtoMessage() {}\nfunc (*PersistentVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{125}\n}\nfunc (m *PersistentVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PersistentVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PersistentVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PersistentVolumeSource.Merge(m, src)\n}\nfunc (m *PersistentVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PersistentVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_PersistentVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PersistentVolumeSource proto.InternalMessageInfo\n\nfunc (m *PersistentVolumeSpec) Reset()      { *m = PersistentVolumeSpec{} }\nfunc (*PersistentVolumeSpec) ProtoMessage() {}\nfunc (*PersistentVolumeSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{126}\n}\nfunc (m *PersistentVolumeSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PersistentVolumeSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PersistentVolumeSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PersistentVolumeSpec.Merge(m, src)\n}\nfunc (m *PersistentVolumeSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PersistentVolumeSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_PersistentVolumeSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PersistentVolumeSpec proto.InternalMessageInfo\n\nfunc (m *PersistentVolumeStatus) Reset()      { *m = PersistentVolumeStatus{} }\nfunc (*PersistentVolumeStatus) ProtoMessage() {}\nfunc (*PersistentVolumeStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{127}\n}\nfunc (m *PersistentVolumeStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PersistentVolumeStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PersistentVolumeStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PersistentVolumeStatus.Merge(m, src)\n}\nfunc (m *PersistentVolumeStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PersistentVolumeStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_PersistentVolumeStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PersistentVolumeStatus proto.InternalMessageInfo\n\nfunc (m *PhotonPersistentDiskVolumeSource) Reset()      { *m = PhotonPersistentDiskVolumeSource{} }\nfunc (*PhotonPersistentDiskVolumeSource) ProtoMessage() {}\nfunc (*PhotonPersistentDiskVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{128}\n}\nfunc (m *PhotonPersistentDiskVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PhotonPersistentDiskVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PhotonPersistentDiskVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PhotonPersistentDiskVolumeSource.Merge(m, src)\n}\nfunc (m *PhotonPersistentDiskVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PhotonPersistentDiskVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_PhotonPersistentDiskVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PhotonPersistentDiskVolumeSource proto.InternalMessageInfo\n\nfunc (m *Pod) Reset()      { *m = Pod{} }\nfunc (*Pod) ProtoMessage() {}\nfunc (*Pod) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{129}\n}\nfunc (m *Pod) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Pod) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Pod) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Pod.Merge(m, src)\n}\nfunc (m *Pod) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Pod) XXX_DiscardUnknown() {\n\txxx_messageInfo_Pod.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Pod proto.InternalMessageInfo\n\nfunc (m *PodAffinity) Reset()      { *m = PodAffinity{} }\nfunc (*PodAffinity) ProtoMessage() {}\nfunc (*PodAffinity) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{130}\n}\nfunc (m *PodAffinity) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodAffinity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodAffinity) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodAffinity.Merge(m, src)\n}\nfunc (m *PodAffinity) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodAffinity) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodAffinity.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodAffinity proto.InternalMessageInfo\n\nfunc (m *PodAffinityTerm) Reset()      { *m = PodAffinityTerm{} }\nfunc (*PodAffinityTerm) ProtoMessage() {}\nfunc (*PodAffinityTerm) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{131}\n}\nfunc (m *PodAffinityTerm) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodAffinityTerm) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodAffinityTerm) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodAffinityTerm.Merge(m, src)\n}\nfunc (m *PodAffinityTerm) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodAffinityTerm) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodAffinityTerm.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodAffinityTerm proto.InternalMessageInfo\n\nfunc (m *PodAntiAffinity) Reset()      { *m = PodAntiAffinity{} }\nfunc (*PodAntiAffinity) ProtoMessage() {}\nfunc (*PodAntiAffinity) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{132}\n}\nfunc (m *PodAntiAffinity) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodAntiAffinity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodAntiAffinity) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodAntiAffinity.Merge(m, src)\n}\nfunc (m *PodAntiAffinity) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodAntiAffinity) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodAntiAffinity.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodAntiAffinity proto.InternalMessageInfo\n\nfunc (m *PodAttachOptions) Reset()      { *m = PodAttachOptions{} }\nfunc (*PodAttachOptions) ProtoMessage() {}\nfunc (*PodAttachOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{133}\n}\nfunc (m *PodAttachOptions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodAttachOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodAttachOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodAttachOptions.Merge(m, src)\n}\nfunc (m *PodAttachOptions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodAttachOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodAttachOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodAttachOptions proto.InternalMessageInfo\n\nfunc (m *PodCondition) Reset()      { *m = PodCondition{} }\nfunc (*PodCondition) ProtoMessage() {}\nfunc (*PodCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{134}\n}\nfunc (m *PodCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodCondition.Merge(m, src)\n}\nfunc (m *PodCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodCondition proto.InternalMessageInfo\n\nfunc (m *PodDNSConfig) Reset()      { *m = PodDNSConfig{} }\nfunc (*PodDNSConfig) ProtoMessage() {}\nfunc (*PodDNSConfig) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{135}\n}\nfunc (m *PodDNSConfig) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodDNSConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodDNSConfig) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodDNSConfig.Merge(m, src)\n}\nfunc (m *PodDNSConfig) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodDNSConfig) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodDNSConfig.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodDNSConfig proto.InternalMessageInfo\n\nfunc (m *PodDNSConfigOption) Reset()      { *m = PodDNSConfigOption{} }\nfunc (*PodDNSConfigOption) ProtoMessage() {}\nfunc (*PodDNSConfigOption) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{136}\n}\nfunc (m *PodDNSConfigOption) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodDNSConfigOption) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodDNSConfigOption) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodDNSConfigOption.Merge(m, src)\n}\nfunc (m *PodDNSConfigOption) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodDNSConfigOption) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodDNSConfigOption.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodDNSConfigOption proto.InternalMessageInfo\n\nfunc (m *PodExecOptions) Reset()      { *m = PodExecOptions{} }\nfunc (*PodExecOptions) ProtoMessage() {}\nfunc (*PodExecOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{137}\n}\nfunc (m *PodExecOptions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodExecOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodExecOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodExecOptions.Merge(m, src)\n}\nfunc (m *PodExecOptions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodExecOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodExecOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodExecOptions proto.InternalMessageInfo\n\nfunc (m *PodIP) Reset()      { *m = PodIP{} }\nfunc (*PodIP) ProtoMessage() {}\nfunc (*PodIP) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{138}\n}\nfunc (m *PodIP) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodIP) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodIP) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodIP.Merge(m, src)\n}\nfunc (m *PodIP) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodIP) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodIP.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodIP proto.InternalMessageInfo\n\nfunc (m *PodList) Reset()      { *m = PodList{} }\nfunc (*PodList) ProtoMessage() {}\nfunc (*PodList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{139}\n}\nfunc (m *PodList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodList.Merge(m, src)\n}\nfunc (m *PodList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodList) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodList proto.InternalMessageInfo\n\nfunc (m *PodLogOptions) Reset()      { *m = PodLogOptions{} }\nfunc (*PodLogOptions) ProtoMessage() {}\nfunc (*PodLogOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{140}\n}\nfunc (m *PodLogOptions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodLogOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodLogOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodLogOptions.Merge(m, src)\n}\nfunc (m *PodLogOptions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodLogOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodLogOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodLogOptions proto.InternalMessageInfo\n\nfunc (m *PodOS) Reset()      { *m = PodOS{} }\nfunc (*PodOS) ProtoMessage() {}\nfunc (*PodOS) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{141}\n}\nfunc (m *PodOS) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodOS) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodOS) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodOS.Merge(m, src)\n}\nfunc (m *PodOS) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodOS) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodOS.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodOS proto.InternalMessageInfo\n\nfunc (m *PodPortForwardOptions) Reset()      { *m = PodPortForwardOptions{} }\nfunc (*PodPortForwardOptions) ProtoMessage() {}\nfunc (*PodPortForwardOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{142}\n}\nfunc (m *PodPortForwardOptions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodPortForwardOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodPortForwardOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodPortForwardOptions.Merge(m, src)\n}\nfunc (m *PodPortForwardOptions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodPortForwardOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodPortForwardOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodPortForwardOptions proto.InternalMessageInfo\n\nfunc (m *PodProxyOptions) Reset()      { *m = PodProxyOptions{} }\nfunc (*PodProxyOptions) ProtoMessage() {}\nfunc (*PodProxyOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{143}\n}\nfunc (m *PodProxyOptions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodProxyOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodProxyOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodProxyOptions.Merge(m, src)\n}\nfunc (m *PodProxyOptions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodProxyOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodProxyOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodProxyOptions proto.InternalMessageInfo\n\nfunc (m *PodReadinessGate) Reset()      { *m = PodReadinessGate{} }\nfunc (*PodReadinessGate) ProtoMessage() {}\nfunc (*PodReadinessGate) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{144}\n}\nfunc (m *PodReadinessGate) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodReadinessGate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodReadinessGate) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodReadinessGate.Merge(m, src)\n}\nfunc (m *PodReadinessGate) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodReadinessGate) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodReadinessGate.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodReadinessGate proto.InternalMessageInfo\n\nfunc (m *PodResourceClaim) Reset()      { *m = PodResourceClaim{} }\nfunc (*PodResourceClaim) ProtoMessage() {}\nfunc (*PodResourceClaim) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{145}\n}\nfunc (m *PodResourceClaim) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodResourceClaim) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodResourceClaim) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodResourceClaim.Merge(m, src)\n}\nfunc (m *PodResourceClaim) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodResourceClaim) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodResourceClaim.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodResourceClaim proto.InternalMessageInfo\n\nfunc (m *PodResourceClaimStatus) Reset()      { *m = PodResourceClaimStatus{} }\nfunc (*PodResourceClaimStatus) ProtoMessage() {}\nfunc (*PodResourceClaimStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{146}\n}\nfunc (m *PodResourceClaimStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodResourceClaimStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodResourceClaimStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodResourceClaimStatus.Merge(m, src)\n}\nfunc (m *PodResourceClaimStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodResourceClaimStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodResourceClaimStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodResourceClaimStatus proto.InternalMessageInfo\n\nfunc (m *PodSchedulingGate) Reset()      { *m = PodSchedulingGate{} }\nfunc (*PodSchedulingGate) ProtoMessage() {}\nfunc (*PodSchedulingGate) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{147}\n}\nfunc (m *PodSchedulingGate) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodSchedulingGate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodSchedulingGate) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodSchedulingGate.Merge(m, src)\n}\nfunc (m *PodSchedulingGate) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodSchedulingGate) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodSchedulingGate.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodSchedulingGate proto.InternalMessageInfo\n\nfunc (m *PodSecurityContext) Reset()      { *m = PodSecurityContext{} }\nfunc (*PodSecurityContext) ProtoMessage() {}\nfunc (*PodSecurityContext) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{148}\n}\nfunc (m *PodSecurityContext) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodSecurityContext) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodSecurityContext) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodSecurityContext.Merge(m, src)\n}\nfunc (m *PodSecurityContext) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodSecurityContext) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodSecurityContext.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodSecurityContext proto.InternalMessageInfo\n\nfunc (m *PodSignature) Reset()      { *m = PodSignature{} }\nfunc (*PodSignature) ProtoMessage() {}\nfunc (*PodSignature) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{149}\n}\nfunc (m *PodSignature) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodSignature) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodSignature) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodSignature.Merge(m, src)\n}\nfunc (m *PodSignature) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodSignature) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodSignature.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodSignature proto.InternalMessageInfo\n\nfunc (m *PodSpec) Reset()      { *m = PodSpec{} }\nfunc (*PodSpec) ProtoMessage() {}\nfunc (*PodSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{150}\n}\nfunc (m *PodSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodSpec.Merge(m, src)\n}\nfunc (m *PodSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodSpec proto.InternalMessageInfo\n\nfunc (m *PodStatus) Reset()      { *m = PodStatus{} }\nfunc (*PodStatus) ProtoMessage() {}\nfunc (*PodStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{151}\n}\nfunc (m *PodStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodStatus.Merge(m, src)\n}\nfunc (m *PodStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodStatus proto.InternalMessageInfo\n\nfunc (m *PodStatusResult) Reset()      { *m = PodStatusResult{} }\nfunc (*PodStatusResult) ProtoMessage() {}\nfunc (*PodStatusResult) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{152}\n}\nfunc (m *PodStatusResult) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodStatusResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodStatusResult) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodStatusResult.Merge(m, src)\n}\nfunc (m *PodStatusResult) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodStatusResult) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodStatusResult.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodStatusResult proto.InternalMessageInfo\n\nfunc (m *PodTemplate) Reset()      { *m = PodTemplate{} }\nfunc (*PodTemplate) ProtoMessage() {}\nfunc (*PodTemplate) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{153}\n}\nfunc (m *PodTemplate) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodTemplate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodTemplate) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodTemplate.Merge(m, src)\n}\nfunc (m *PodTemplate) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodTemplate) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodTemplate.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodTemplate proto.InternalMessageInfo\n\nfunc (m *PodTemplateList) Reset()      { *m = PodTemplateList{} }\nfunc (*PodTemplateList) ProtoMessage() {}\nfunc (*PodTemplateList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{154}\n}\nfunc (m *PodTemplateList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodTemplateList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodTemplateList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodTemplateList.Merge(m, src)\n}\nfunc (m *PodTemplateList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodTemplateList) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodTemplateList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodTemplateList proto.InternalMessageInfo\n\nfunc (m *PodTemplateSpec) Reset()      { *m = PodTemplateSpec{} }\nfunc (*PodTemplateSpec) ProtoMessage() {}\nfunc (*PodTemplateSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{155}\n}\nfunc (m *PodTemplateSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodTemplateSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodTemplateSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodTemplateSpec.Merge(m, src)\n}\nfunc (m *PodTemplateSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodTemplateSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodTemplateSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodTemplateSpec proto.InternalMessageInfo\n\nfunc (m *PortStatus) Reset()      { *m = PortStatus{} }\nfunc (*PortStatus) ProtoMessage() {}\nfunc (*PortStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{156}\n}\nfunc (m *PortStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PortStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PortStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PortStatus.Merge(m, src)\n}\nfunc (m *PortStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PortStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_PortStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PortStatus proto.InternalMessageInfo\n\nfunc (m *PortworxVolumeSource) Reset()      { *m = PortworxVolumeSource{} }\nfunc (*PortworxVolumeSource) ProtoMessage() {}\nfunc (*PortworxVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{157}\n}\nfunc (m *PortworxVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PortworxVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PortworxVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PortworxVolumeSource.Merge(m, src)\n}\nfunc (m *PortworxVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PortworxVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_PortworxVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PortworxVolumeSource proto.InternalMessageInfo\n\nfunc (m *Preconditions) Reset()      { *m = Preconditions{} }\nfunc (*Preconditions) ProtoMessage() {}\nfunc (*Preconditions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{158}\n}\nfunc (m *Preconditions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Preconditions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Preconditions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Preconditions.Merge(m, src)\n}\nfunc (m *Preconditions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Preconditions) XXX_DiscardUnknown() {\n\txxx_messageInfo_Preconditions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Preconditions proto.InternalMessageInfo\n\nfunc (m *PreferAvoidPodsEntry) Reset()      { *m = PreferAvoidPodsEntry{} }\nfunc (*PreferAvoidPodsEntry) ProtoMessage() {}\nfunc (*PreferAvoidPodsEntry) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{159}\n}\nfunc (m *PreferAvoidPodsEntry) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PreferAvoidPodsEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PreferAvoidPodsEntry) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PreferAvoidPodsEntry.Merge(m, src)\n}\nfunc (m *PreferAvoidPodsEntry) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PreferAvoidPodsEntry) XXX_DiscardUnknown() {\n\txxx_messageInfo_PreferAvoidPodsEntry.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PreferAvoidPodsEntry proto.InternalMessageInfo\n\nfunc (m *PreferredSchedulingTerm) Reset()      { *m = PreferredSchedulingTerm{} }\nfunc (*PreferredSchedulingTerm) ProtoMessage() {}\nfunc (*PreferredSchedulingTerm) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{160}\n}\nfunc (m *PreferredSchedulingTerm) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PreferredSchedulingTerm) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PreferredSchedulingTerm) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PreferredSchedulingTerm.Merge(m, src)\n}\nfunc (m *PreferredSchedulingTerm) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PreferredSchedulingTerm) XXX_DiscardUnknown() {\n\txxx_messageInfo_PreferredSchedulingTerm.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PreferredSchedulingTerm proto.InternalMessageInfo\n\nfunc (m *Probe) Reset()      { *m = Probe{} }\nfunc (*Probe) ProtoMessage() {}\nfunc (*Probe) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{161}\n}\nfunc (m *Probe) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Probe) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Probe) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Probe.Merge(m, src)\n}\nfunc (m *Probe) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Probe) XXX_DiscardUnknown() {\n\txxx_messageInfo_Probe.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Probe proto.InternalMessageInfo\n\nfunc (m *ProbeHandler) Reset()      { *m = ProbeHandler{} }\nfunc (*ProbeHandler) ProtoMessage() {}\nfunc (*ProbeHandler) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{162}\n}\nfunc (m *ProbeHandler) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ProbeHandler) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ProbeHandler) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ProbeHandler.Merge(m, src)\n}\nfunc (m *ProbeHandler) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ProbeHandler) XXX_DiscardUnknown() {\n\txxx_messageInfo_ProbeHandler.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ProbeHandler proto.InternalMessageInfo\n\nfunc (m *ProjectedVolumeSource) Reset()      { *m = ProjectedVolumeSource{} }\nfunc (*ProjectedVolumeSource) ProtoMessage() {}\nfunc (*ProjectedVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{163}\n}\nfunc (m *ProjectedVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ProjectedVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ProjectedVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ProjectedVolumeSource.Merge(m, src)\n}\nfunc (m *ProjectedVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ProjectedVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ProjectedVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ProjectedVolumeSource proto.InternalMessageInfo\n\nfunc (m *QuobyteVolumeSource) Reset()      { *m = QuobyteVolumeSource{} }\nfunc (*QuobyteVolumeSource) ProtoMessage() {}\nfunc (*QuobyteVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{164}\n}\nfunc (m *QuobyteVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *QuobyteVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *QuobyteVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_QuobyteVolumeSource.Merge(m, src)\n}\nfunc (m *QuobyteVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *QuobyteVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_QuobyteVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_QuobyteVolumeSource proto.InternalMessageInfo\n\nfunc (m *RBDPersistentVolumeSource) Reset()      { *m = RBDPersistentVolumeSource{} }\nfunc (*RBDPersistentVolumeSource) ProtoMessage() {}\nfunc (*RBDPersistentVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{165}\n}\nfunc (m *RBDPersistentVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RBDPersistentVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RBDPersistentVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RBDPersistentVolumeSource.Merge(m, src)\n}\nfunc (m *RBDPersistentVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RBDPersistentVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_RBDPersistentVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RBDPersistentVolumeSource proto.InternalMessageInfo\n\nfunc (m *RBDVolumeSource) Reset()      { *m = RBDVolumeSource{} }\nfunc (*RBDVolumeSource) ProtoMessage() {}\nfunc (*RBDVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{166}\n}\nfunc (m *RBDVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RBDVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RBDVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RBDVolumeSource.Merge(m, src)\n}\nfunc (m *RBDVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RBDVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_RBDVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RBDVolumeSource proto.InternalMessageInfo\n\nfunc (m *RangeAllocation) Reset()      { *m = RangeAllocation{} }\nfunc (*RangeAllocation) ProtoMessage() {}\nfunc (*RangeAllocation) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{167}\n}\nfunc (m *RangeAllocation) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RangeAllocation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RangeAllocation) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RangeAllocation.Merge(m, src)\n}\nfunc (m *RangeAllocation) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RangeAllocation) XXX_DiscardUnknown() {\n\txxx_messageInfo_RangeAllocation.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RangeAllocation proto.InternalMessageInfo\n\nfunc (m *ReplicationController) Reset()      { *m = ReplicationController{} }\nfunc (*ReplicationController) ProtoMessage() {}\nfunc (*ReplicationController) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{168}\n}\nfunc (m *ReplicationController) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ReplicationController) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ReplicationController) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ReplicationController.Merge(m, src)\n}\nfunc (m *ReplicationController) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ReplicationController) XXX_DiscardUnknown() {\n\txxx_messageInfo_ReplicationController.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ReplicationController proto.InternalMessageInfo\n\nfunc (m *ReplicationControllerCondition) Reset()      { *m = ReplicationControllerCondition{} }\nfunc (*ReplicationControllerCondition) ProtoMessage() {}\nfunc (*ReplicationControllerCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{169}\n}\nfunc (m *ReplicationControllerCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ReplicationControllerCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ReplicationControllerCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ReplicationControllerCondition.Merge(m, src)\n}\nfunc (m *ReplicationControllerCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ReplicationControllerCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_ReplicationControllerCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ReplicationControllerCondition proto.InternalMessageInfo\n\nfunc (m *ReplicationControllerList) Reset()      { *m = ReplicationControllerList{} }\nfunc (*ReplicationControllerList) ProtoMessage() {}\nfunc (*ReplicationControllerList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{170}\n}\nfunc (m *ReplicationControllerList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ReplicationControllerList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ReplicationControllerList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ReplicationControllerList.Merge(m, src)\n}\nfunc (m *ReplicationControllerList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ReplicationControllerList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ReplicationControllerList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ReplicationControllerList proto.InternalMessageInfo\n\nfunc (m *ReplicationControllerSpec) Reset()      { *m = ReplicationControllerSpec{} }\nfunc (*ReplicationControllerSpec) ProtoMessage() {}\nfunc (*ReplicationControllerSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{171}\n}\nfunc (m *ReplicationControllerSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ReplicationControllerSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ReplicationControllerSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ReplicationControllerSpec.Merge(m, src)\n}\nfunc (m *ReplicationControllerSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ReplicationControllerSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ReplicationControllerSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ReplicationControllerSpec proto.InternalMessageInfo\n\nfunc (m *ReplicationControllerStatus) Reset()      { *m = ReplicationControllerStatus{} }\nfunc (*ReplicationControllerStatus) ProtoMessage() {}\nfunc (*ReplicationControllerStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{172}\n}\nfunc (m *ReplicationControllerStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ReplicationControllerStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ReplicationControllerStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ReplicationControllerStatus.Merge(m, src)\n}\nfunc (m *ReplicationControllerStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ReplicationControllerStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ReplicationControllerStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ReplicationControllerStatus proto.InternalMessageInfo\n\nfunc (m *ResourceClaim) Reset()      { *m = ResourceClaim{} }\nfunc (*ResourceClaim) ProtoMessage() {}\nfunc (*ResourceClaim) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{173}\n}\nfunc (m *ResourceClaim) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceClaim) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceClaim) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceClaim.Merge(m, src)\n}\nfunc (m *ResourceClaim) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceClaim) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceClaim.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceClaim proto.InternalMessageInfo\n\nfunc (m *ResourceFieldSelector) Reset()      { *m = ResourceFieldSelector{} }\nfunc (*ResourceFieldSelector) ProtoMessage() {}\nfunc (*ResourceFieldSelector) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{174}\n}\nfunc (m *ResourceFieldSelector) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceFieldSelector) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceFieldSelector) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceFieldSelector.Merge(m, src)\n}\nfunc (m *ResourceFieldSelector) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceFieldSelector) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceFieldSelector.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceFieldSelector proto.InternalMessageInfo\n\nfunc (m *ResourceHealth) Reset()      { *m = ResourceHealth{} }\nfunc (*ResourceHealth) ProtoMessage() {}\nfunc (*ResourceHealth) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{175}\n}\nfunc (m *ResourceHealth) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceHealth) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceHealth) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceHealth.Merge(m, src)\n}\nfunc (m *ResourceHealth) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceHealth) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceHealth.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceHealth proto.InternalMessageInfo\n\nfunc (m *ResourceQuota) Reset()      { *m = ResourceQuota{} }\nfunc (*ResourceQuota) ProtoMessage() {}\nfunc (*ResourceQuota) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{176}\n}\nfunc (m *ResourceQuota) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceQuota) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceQuota) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceQuota.Merge(m, src)\n}\nfunc (m *ResourceQuota) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceQuota) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceQuota.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceQuota proto.InternalMessageInfo\n\nfunc (m *ResourceQuotaList) Reset()      { *m = ResourceQuotaList{} }\nfunc (*ResourceQuotaList) ProtoMessage() {}\nfunc (*ResourceQuotaList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{177}\n}\nfunc (m *ResourceQuotaList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceQuotaList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceQuotaList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceQuotaList.Merge(m, src)\n}\nfunc (m *ResourceQuotaList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceQuotaList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceQuotaList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceQuotaList proto.InternalMessageInfo\n\nfunc (m *ResourceQuotaSpec) Reset()      { *m = ResourceQuotaSpec{} }\nfunc (*ResourceQuotaSpec) ProtoMessage() {}\nfunc (*ResourceQuotaSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{178}\n}\nfunc (m *ResourceQuotaSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceQuotaSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceQuotaSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceQuotaSpec.Merge(m, src)\n}\nfunc (m *ResourceQuotaSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceQuotaSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceQuotaSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceQuotaSpec proto.InternalMessageInfo\n\nfunc (m *ResourceQuotaStatus) Reset()      { *m = ResourceQuotaStatus{} }\nfunc (*ResourceQuotaStatus) ProtoMessage() {}\nfunc (*ResourceQuotaStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{179}\n}\nfunc (m *ResourceQuotaStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceQuotaStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceQuotaStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceQuotaStatus.Merge(m, src)\n}\nfunc (m *ResourceQuotaStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceQuotaStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceQuotaStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceQuotaStatus proto.InternalMessageInfo\n\nfunc (m *ResourceRequirements) Reset()      { *m = ResourceRequirements{} }\nfunc (*ResourceRequirements) ProtoMessage() {}\nfunc (*ResourceRequirements) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{180}\n}\nfunc (m *ResourceRequirements) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceRequirements) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceRequirements) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceRequirements.Merge(m, src)\n}\nfunc (m *ResourceRequirements) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceRequirements) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceRequirements.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceRequirements proto.InternalMessageInfo\n\nfunc (m *ResourceStatus) Reset()      { *m = ResourceStatus{} }\nfunc (*ResourceStatus) ProtoMessage() {}\nfunc (*ResourceStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{181}\n}\nfunc (m *ResourceStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceStatus.Merge(m, src)\n}\nfunc (m *ResourceStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceStatus proto.InternalMessageInfo\n\nfunc (m *SELinuxOptions) Reset()      { *m = SELinuxOptions{} }\nfunc (*SELinuxOptions) ProtoMessage() {}\nfunc (*SELinuxOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{182}\n}\nfunc (m *SELinuxOptions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SELinuxOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SELinuxOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SELinuxOptions.Merge(m, src)\n}\nfunc (m *SELinuxOptions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SELinuxOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_SELinuxOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SELinuxOptions proto.InternalMessageInfo\n\nfunc (m *ScaleIOPersistentVolumeSource) Reset()      { *m = ScaleIOPersistentVolumeSource{} }\nfunc (*ScaleIOPersistentVolumeSource) ProtoMessage() {}\nfunc (*ScaleIOPersistentVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{183}\n}\nfunc (m *ScaleIOPersistentVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ScaleIOPersistentVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ScaleIOPersistentVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ScaleIOPersistentVolumeSource.Merge(m, src)\n}\nfunc (m *ScaleIOPersistentVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ScaleIOPersistentVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ScaleIOPersistentVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ScaleIOPersistentVolumeSource proto.InternalMessageInfo\n\nfunc (m *ScaleIOVolumeSource) Reset()      { *m = ScaleIOVolumeSource{} }\nfunc (*ScaleIOVolumeSource) ProtoMessage() {}\nfunc (*ScaleIOVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{184}\n}\nfunc (m *ScaleIOVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ScaleIOVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ScaleIOVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ScaleIOVolumeSource.Merge(m, src)\n}\nfunc (m *ScaleIOVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ScaleIOVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_ScaleIOVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ScaleIOVolumeSource proto.InternalMessageInfo\n\nfunc (m *ScopeSelector) Reset()      { *m = ScopeSelector{} }\nfunc (*ScopeSelector) ProtoMessage() {}\nfunc (*ScopeSelector) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{185}\n}\nfunc (m *ScopeSelector) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ScopeSelector) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ScopeSelector) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ScopeSelector.Merge(m, src)\n}\nfunc (m *ScopeSelector) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ScopeSelector) XXX_DiscardUnknown() {\n\txxx_messageInfo_ScopeSelector.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ScopeSelector proto.InternalMessageInfo\n\nfunc (m *ScopedResourceSelectorRequirement) Reset()      { *m = ScopedResourceSelectorRequirement{} }\nfunc (*ScopedResourceSelectorRequirement) ProtoMessage() {}\nfunc (*ScopedResourceSelectorRequirement) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{186}\n}\nfunc (m *ScopedResourceSelectorRequirement) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ScopedResourceSelectorRequirement) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ScopedResourceSelectorRequirement) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ScopedResourceSelectorRequirement.Merge(m, src)\n}\nfunc (m *ScopedResourceSelectorRequirement) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ScopedResourceSelectorRequirement) XXX_DiscardUnknown() {\n\txxx_messageInfo_ScopedResourceSelectorRequirement.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ScopedResourceSelectorRequirement proto.InternalMessageInfo\n\nfunc (m *SeccompProfile) Reset()      { *m = SeccompProfile{} }\nfunc (*SeccompProfile) ProtoMessage() {}\nfunc (*SeccompProfile) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{187}\n}\nfunc (m *SeccompProfile) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SeccompProfile) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SeccompProfile) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SeccompProfile.Merge(m, src)\n}\nfunc (m *SeccompProfile) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SeccompProfile) XXX_DiscardUnknown() {\n\txxx_messageInfo_SeccompProfile.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SeccompProfile proto.InternalMessageInfo\n\nfunc (m *Secret) Reset()      { *m = Secret{} }\nfunc (*Secret) ProtoMessage() {}\nfunc (*Secret) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{188}\n}\nfunc (m *Secret) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Secret) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Secret) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Secret.Merge(m, src)\n}\nfunc (m *Secret) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Secret) XXX_DiscardUnknown() {\n\txxx_messageInfo_Secret.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Secret proto.InternalMessageInfo\n\nfunc (m *SecretEnvSource) Reset()      { *m = SecretEnvSource{} }\nfunc (*SecretEnvSource) ProtoMessage() {}\nfunc (*SecretEnvSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{189}\n}\nfunc (m *SecretEnvSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SecretEnvSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SecretEnvSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SecretEnvSource.Merge(m, src)\n}\nfunc (m *SecretEnvSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SecretEnvSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_SecretEnvSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SecretEnvSource proto.InternalMessageInfo\n\nfunc (m *SecretKeySelector) Reset()      { *m = SecretKeySelector{} }\nfunc (*SecretKeySelector) ProtoMessage() {}\nfunc (*SecretKeySelector) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{190}\n}\nfunc (m *SecretKeySelector) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SecretKeySelector) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SecretKeySelector) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SecretKeySelector.Merge(m, src)\n}\nfunc (m *SecretKeySelector) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SecretKeySelector) XXX_DiscardUnknown() {\n\txxx_messageInfo_SecretKeySelector.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SecretKeySelector proto.InternalMessageInfo\n\nfunc (m *SecretList) Reset()      { *m = SecretList{} }\nfunc (*SecretList) ProtoMessage() {}\nfunc (*SecretList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{191}\n}\nfunc (m *SecretList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SecretList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SecretList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SecretList.Merge(m, src)\n}\nfunc (m *SecretList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SecretList) XXX_DiscardUnknown() {\n\txxx_messageInfo_SecretList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SecretList proto.InternalMessageInfo\n\nfunc (m *SecretProjection) Reset()      { *m = SecretProjection{} }\nfunc (*SecretProjection) ProtoMessage() {}\nfunc (*SecretProjection) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{192}\n}\nfunc (m *SecretProjection) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SecretProjection) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SecretProjection) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SecretProjection.Merge(m, src)\n}\nfunc (m *SecretProjection) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SecretProjection) XXX_DiscardUnknown() {\n\txxx_messageInfo_SecretProjection.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SecretProjection proto.InternalMessageInfo\n\nfunc (m *SecretReference) Reset()      { *m = SecretReference{} }\nfunc (*SecretReference) ProtoMessage() {}\nfunc (*SecretReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{193}\n}\nfunc (m *SecretReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SecretReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SecretReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SecretReference.Merge(m, src)\n}\nfunc (m *SecretReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SecretReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_SecretReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SecretReference proto.InternalMessageInfo\n\nfunc (m *SecretVolumeSource) Reset()      { *m = SecretVolumeSource{} }\nfunc (*SecretVolumeSource) ProtoMessage() {}\nfunc (*SecretVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{194}\n}\nfunc (m *SecretVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SecretVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SecretVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SecretVolumeSource.Merge(m, src)\n}\nfunc (m *SecretVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SecretVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_SecretVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SecretVolumeSource proto.InternalMessageInfo\n\nfunc (m *SecurityContext) Reset()      { *m = SecurityContext{} }\nfunc (*SecurityContext) ProtoMessage() {}\nfunc (*SecurityContext) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{195}\n}\nfunc (m *SecurityContext) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SecurityContext) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SecurityContext) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SecurityContext.Merge(m, src)\n}\nfunc (m *SecurityContext) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SecurityContext) XXX_DiscardUnknown() {\n\txxx_messageInfo_SecurityContext.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SecurityContext proto.InternalMessageInfo\n\nfunc (m *SerializedReference) Reset()      { *m = SerializedReference{} }\nfunc (*SerializedReference) ProtoMessage() {}\nfunc (*SerializedReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{196}\n}\nfunc (m *SerializedReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SerializedReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SerializedReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SerializedReference.Merge(m, src)\n}\nfunc (m *SerializedReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SerializedReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_SerializedReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SerializedReference proto.InternalMessageInfo\n\nfunc (m *Service) Reset()      { *m = Service{} }\nfunc (*Service) ProtoMessage() {}\nfunc (*Service) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{197}\n}\nfunc (m *Service) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Service) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Service) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Service.Merge(m, src)\n}\nfunc (m *Service) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Service) XXX_DiscardUnknown() {\n\txxx_messageInfo_Service.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Service proto.InternalMessageInfo\n\nfunc (m *ServiceAccount) Reset()      { *m = ServiceAccount{} }\nfunc (*ServiceAccount) ProtoMessage() {}\nfunc (*ServiceAccount) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{198}\n}\nfunc (m *ServiceAccount) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ServiceAccount) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ServiceAccount) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServiceAccount.Merge(m, src)\n}\nfunc (m *ServiceAccount) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ServiceAccount) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServiceAccount.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServiceAccount proto.InternalMessageInfo\n\nfunc (m *ServiceAccountList) Reset()      { *m = ServiceAccountList{} }\nfunc (*ServiceAccountList) ProtoMessage() {}\nfunc (*ServiceAccountList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{199}\n}\nfunc (m *ServiceAccountList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ServiceAccountList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ServiceAccountList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServiceAccountList.Merge(m, src)\n}\nfunc (m *ServiceAccountList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ServiceAccountList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServiceAccountList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServiceAccountList proto.InternalMessageInfo\n\nfunc (m *ServiceAccountTokenProjection) Reset()      { *m = ServiceAccountTokenProjection{} }\nfunc (*ServiceAccountTokenProjection) ProtoMessage() {}\nfunc (*ServiceAccountTokenProjection) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{200}\n}\nfunc (m *ServiceAccountTokenProjection) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ServiceAccountTokenProjection) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ServiceAccountTokenProjection) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServiceAccountTokenProjection.Merge(m, src)\n}\nfunc (m *ServiceAccountTokenProjection) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ServiceAccountTokenProjection) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServiceAccountTokenProjection.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServiceAccountTokenProjection proto.InternalMessageInfo\n\nfunc (m *ServiceList) Reset()      { *m = ServiceList{} }\nfunc (*ServiceList) ProtoMessage() {}\nfunc (*ServiceList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{201}\n}\nfunc (m *ServiceList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ServiceList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ServiceList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServiceList.Merge(m, src)\n}\nfunc (m *ServiceList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ServiceList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServiceList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServiceList proto.InternalMessageInfo\n\nfunc (m *ServicePort) Reset()      { *m = ServicePort{} }\nfunc (*ServicePort) ProtoMessage() {}\nfunc (*ServicePort) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{202}\n}\nfunc (m *ServicePort) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ServicePort) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ServicePort) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServicePort.Merge(m, src)\n}\nfunc (m *ServicePort) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ServicePort) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServicePort.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServicePort proto.InternalMessageInfo\n\nfunc (m *ServiceProxyOptions) Reset()      { *m = ServiceProxyOptions{} }\nfunc (*ServiceProxyOptions) ProtoMessage() {}\nfunc (*ServiceProxyOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{203}\n}\nfunc (m *ServiceProxyOptions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ServiceProxyOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ServiceProxyOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServiceProxyOptions.Merge(m, src)\n}\nfunc (m *ServiceProxyOptions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ServiceProxyOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServiceProxyOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServiceProxyOptions proto.InternalMessageInfo\n\nfunc (m *ServiceSpec) Reset()      { *m = ServiceSpec{} }\nfunc (*ServiceSpec) ProtoMessage() {}\nfunc (*ServiceSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{204}\n}\nfunc (m *ServiceSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ServiceSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ServiceSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServiceSpec.Merge(m, src)\n}\nfunc (m *ServiceSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ServiceSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServiceSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServiceSpec proto.InternalMessageInfo\n\nfunc (m *ServiceStatus) Reset()      { *m = ServiceStatus{} }\nfunc (*ServiceStatus) ProtoMessage() {}\nfunc (*ServiceStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{205}\n}\nfunc (m *ServiceStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ServiceStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ServiceStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServiceStatus.Merge(m, src)\n}\nfunc (m *ServiceStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ServiceStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServiceStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServiceStatus proto.InternalMessageInfo\n\nfunc (m *SessionAffinityConfig) Reset()      { *m = SessionAffinityConfig{} }\nfunc (*SessionAffinityConfig) ProtoMessage() {}\nfunc (*SessionAffinityConfig) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{206}\n}\nfunc (m *SessionAffinityConfig) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SessionAffinityConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SessionAffinityConfig) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SessionAffinityConfig.Merge(m, src)\n}\nfunc (m *SessionAffinityConfig) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SessionAffinityConfig) XXX_DiscardUnknown() {\n\txxx_messageInfo_SessionAffinityConfig.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SessionAffinityConfig proto.InternalMessageInfo\n\nfunc (m *SleepAction) Reset()      { *m = SleepAction{} }\nfunc (*SleepAction) ProtoMessage() {}\nfunc (*SleepAction) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{207}\n}\nfunc (m *SleepAction) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *SleepAction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *SleepAction) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_SleepAction.Merge(m, src)\n}\nfunc (m *SleepAction) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *SleepAction) XXX_DiscardUnknown() {\n\txxx_messageInfo_SleepAction.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_SleepAction proto.InternalMessageInfo\n\nfunc (m *StorageOSPersistentVolumeSource) Reset()      { *m = StorageOSPersistentVolumeSource{} }\nfunc (*StorageOSPersistentVolumeSource) ProtoMessage() {}\nfunc (*StorageOSPersistentVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{208}\n}\nfunc (m *StorageOSPersistentVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StorageOSPersistentVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StorageOSPersistentVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StorageOSPersistentVolumeSource.Merge(m, src)\n}\nfunc (m *StorageOSPersistentVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StorageOSPersistentVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_StorageOSPersistentVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StorageOSPersistentVolumeSource proto.InternalMessageInfo\n\nfunc (m *StorageOSVolumeSource) Reset()      { *m = StorageOSVolumeSource{} }\nfunc (*StorageOSVolumeSource) ProtoMessage() {}\nfunc (*StorageOSVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{209}\n}\nfunc (m *StorageOSVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StorageOSVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StorageOSVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StorageOSVolumeSource.Merge(m, src)\n}\nfunc (m *StorageOSVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StorageOSVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_StorageOSVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StorageOSVolumeSource proto.InternalMessageInfo\n\nfunc (m *Sysctl) Reset()      { *m = Sysctl{} }\nfunc (*Sysctl) ProtoMessage() {}\nfunc (*Sysctl) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{210}\n}\nfunc (m *Sysctl) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Sysctl) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Sysctl) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Sysctl.Merge(m, src)\n}\nfunc (m *Sysctl) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Sysctl) XXX_DiscardUnknown() {\n\txxx_messageInfo_Sysctl.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Sysctl proto.InternalMessageInfo\n\nfunc (m *TCPSocketAction) Reset()      { *m = TCPSocketAction{} }\nfunc (*TCPSocketAction) ProtoMessage() {}\nfunc (*TCPSocketAction) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{211}\n}\nfunc (m *TCPSocketAction) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TCPSocketAction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TCPSocketAction) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TCPSocketAction.Merge(m, src)\n}\nfunc (m *TCPSocketAction) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TCPSocketAction) XXX_DiscardUnknown() {\n\txxx_messageInfo_TCPSocketAction.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TCPSocketAction proto.InternalMessageInfo\n\nfunc (m *Taint) Reset()      { *m = Taint{} }\nfunc (*Taint) ProtoMessage() {}\nfunc (*Taint) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{212}\n}\nfunc (m *Taint) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Taint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Taint) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Taint.Merge(m, src)\n}\nfunc (m *Taint) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Taint) XXX_DiscardUnknown() {\n\txxx_messageInfo_Taint.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Taint proto.InternalMessageInfo\n\nfunc (m *Toleration) Reset()      { *m = Toleration{} }\nfunc (*Toleration) ProtoMessage() {}\nfunc (*Toleration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{213}\n}\nfunc (m *Toleration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Toleration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Toleration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Toleration.Merge(m, src)\n}\nfunc (m *Toleration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Toleration) XXX_DiscardUnknown() {\n\txxx_messageInfo_Toleration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Toleration proto.InternalMessageInfo\n\nfunc (m *TopologySelectorLabelRequirement) Reset()      { *m = TopologySelectorLabelRequirement{} }\nfunc (*TopologySelectorLabelRequirement) ProtoMessage() {}\nfunc (*TopologySelectorLabelRequirement) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{214}\n}\nfunc (m *TopologySelectorLabelRequirement) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TopologySelectorLabelRequirement) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TopologySelectorLabelRequirement) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TopologySelectorLabelRequirement.Merge(m, src)\n}\nfunc (m *TopologySelectorLabelRequirement) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TopologySelectorLabelRequirement) XXX_DiscardUnknown() {\n\txxx_messageInfo_TopologySelectorLabelRequirement.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TopologySelectorLabelRequirement proto.InternalMessageInfo\n\nfunc (m *TopologySelectorTerm) Reset()      { *m = TopologySelectorTerm{} }\nfunc (*TopologySelectorTerm) ProtoMessage() {}\nfunc (*TopologySelectorTerm) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{215}\n}\nfunc (m *TopologySelectorTerm) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TopologySelectorTerm) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TopologySelectorTerm) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TopologySelectorTerm.Merge(m, src)\n}\nfunc (m *TopologySelectorTerm) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TopologySelectorTerm) XXX_DiscardUnknown() {\n\txxx_messageInfo_TopologySelectorTerm.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TopologySelectorTerm proto.InternalMessageInfo\n\nfunc (m *TopologySpreadConstraint) Reset()      { *m = TopologySpreadConstraint{} }\nfunc (*TopologySpreadConstraint) ProtoMessage() {}\nfunc (*TopologySpreadConstraint) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{216}\n}\nfunc (m *TopologySpreadConstraint) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TopologySpreadConstraint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TopologySpreadConstraint) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TopologySpreadConstraint.Merge(m, src)\n}\nfunc (m *TopologySpreadConstraint) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TopologySpreadConstraint) XXX_DiscardUnknown() {\n\txxx_messageInfo_TopologySpreadConstraint.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TopologySpreadConstraint proto.InternalMessageInfo\n\nfunc (m *TypedLocalObjectReference) Reset()      { *m = TypedLocalObjectReference{} }\nfunc (*TypedLocalObjectReference) ProtoMessage() {}\nfunc (*TypedLocalObjectReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{217}\n}\nfunc (m *TypedLocalObjectReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TypedLocalObjectReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TypedLocalObjectReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TypedLocalObjectReference.Merge(m, src)\n}\nfunc (m *TypedLocalObjectReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TypedLocalObjectReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_TypedLocalObjectReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TypedLocalObjectReference proto.InternalMessageInfo\n\nfunc (m *TypedObjectReference) Reset()      { *m = TypedObjectReference{} }\nfunc (*TypedObjectReference) ProtoMessage() {}\nfunc (*TypedObjectReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{218}\n}\nfunc (m *TypedObjectReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TypedObjectReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TypedObjectReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TypedObjectReference.Merge(m, src)\n}\nfunc (m *TypedObjectReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TypedObjectReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_TypedObjectReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TypedObjectReference proto.InternalMessageInfo\n\nfunc (m *Volume) Reset()      { *m = Volume{} }\nfunc (*Volume) ProtoMessage() {}\nfunc (*Volume) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{219}\n}\nfunc (m *Volume) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Volume) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Volume) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Volume.Merge(m, src)\n}\nfunc (m *Volume) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Volume) XXX_DiscardUnknown() {\n\txxx_messageInfo_Volume.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Volume proto.InternalMessageInfo\n\nfunc (m *VolumeDevice) Reset()      { *m = VolumeDevice{} }\nfunc (*VolumeDevice) ProtoMessage() {}\nfunc (*VolumeDevice) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{220}\n}\nfunc (m *VolumeDevice) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeDevice) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeDevice) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeDevice.Merge(m, src)\n}\nfunc (m *VolumeDevice) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeDevice) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeDevice.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeDevice proto.InternalMessageInfo\n\nfunc (m *VolumeMount) Reset()      { *m = VolumeMount{} }\nfunc (*VolumeMount) ProtoMessage() {}\nfunc (*VolumeMount) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{221}\n}\nfunc (m *VolumeMount) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeMount) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeMount) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeMount.Merge(m, src)\n}\nfunc (m *VolumeMount) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeMount) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeMount.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeMount proto.InternalMessageInfo\n\nfunc (m *VolumeMountStatus) Reset()      { *m = VolumeMountStatus{} }\nfunc (*VolumeMountStatus) ProtoMessage() {}\nfunc (*VolumeMountStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{222}\n}\nfunc (m *VolumeMountStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeMountStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeMountStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeMountStatus.Merge(m, src)\n}\nfunc (m *VolumeMountStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeMountStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeMountStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeMountStatus proto.InternalMessageInfo\n\nfunc (m *VolumeNodeAffinity) Reset()      { *m = VolumeNodeAffinity{} }\nfunc (*VolumeNodeAffinity) ProtoMessage() {}\nfunc (*VolumeNodeAffinity) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{223}\n}\nfunc (m *VolumeNodeAffinity) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeNodeAffinity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeNodeAffinity) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeNodeAffinity.Merge(m, src)\n}\nfunc (m *VolumeNodeAffinity) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeNodeAffinity) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeNodeAffinity.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeNodeAffinity proto.InternalMessageInfo\n\nfunc (m *VolumeProjection) Reset()      { *m = VolumeProjection{} }\nfunc (*VolumeProjection) ProtoMessage() {}\nfunc (*VolumeProjection) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{224}\n}\nfunc (m *VolumeProjection) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeProjection) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeProjection) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeProjection.Merge(m, src)\n}\nfunc (m *VolumeProjection) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeProjection) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeProjection.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeProjection proto.InternalMessageInfo\n\nfunc (m *VolumeResourceRequirements) Reset()      { *m = VolumeResourceRequirements{} }\nfunc (*VolumeResourceRequirements) ProtoMessage() {}\nfunc (*VolumeResourceRequirements) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{225}\n}\nfunc (m *VolumeResourceRequirements) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeResourceRequirements) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeResourceRequirements) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeResourceRequirements.Merge(m, src)\n}\nfunc (m *VolumeResourceRequirements) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeResourceRequirements) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeResourceRequirements.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeResourceRequirements proto.InternalMessageInfo\n\nfunc (m *VolumeSource) Reset()      { *m = VolumeSource{} }\nfunc (*VolumeSource) ProtoMessage() {}\nfunc (*VolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{226}\n}\nfunc (m *VolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeSource.Merge(m, src)\n}\nfunc (m *VolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeSource proto.InternalMessageInfo\n\nfunc (m *VsphereVirtualDiskVolumeSource) Reset()      { *m = VsphereVirtualDiskVolumeSource{} }\nfunc (*VsphereVirtualDiskVolumeSource) ProtoMessage() {}\nfunc (*VsphereVirtualDiskVolumeSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{227}\n}\nfunc (m *VsphereVirtualDiskVolumeSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VsphereVirtualDiskVolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VsphereVirtualDiskVolumeSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VsphereVirtualDiskVolumeSource.Merge(m, src)\n}\nfunc (m *VsphereVirtualDiskVolumeSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VsphereVirtualDiskVolumeSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_VsphereVirtualDiskVolumeSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VsphereVirtualDiskVolumeSource proto.InternalMessageInfo\n\nfunc (m *WeightedPodAffinityTerm) Reset()      { *m = WeightedPodAffinityTerm{} }\nfunc (*WeightedPodAffinityTerm) ProtoMessage() {}\nfunc (*WeightedPodAffinityTerm) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{228}\n}\nfunc (m *WeightedPodAffinityTerm) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *WeightedPodAffinityTerm) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *WeightedPodAffinityTerm) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_WeightedPodAffinityTerm.Merge(m, src)\n}\nfunc (m *WeightedPodAffinityTerm) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *WeightedPodAffinityTerm) XXX_DiscardUnknown() {\n\txxx_messageInfo_WeightedPodAffinityTerm.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_WeightedPodAffinityTerm proto.InternalMessageInfo\n\nfunc (m *WindowsSecurityContextOptions) Reset()      { *m = WindowsSecurityContextOptions{} }\nfunc (*WindowsSecurityContextOptions) ProtoMessage() {}\nfunc (*WindowsSecurityContextOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6c07b07c062484ab, []int{229}\n}\nfunc (m *WindowsSecurityContextOptions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *WindowsSecurityContextOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *WindowsSecurityContextOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_WindowsSecurityContextOptions.Merge(m, src)\n}\nfunc (m *WindowsSecurityContextOptions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *WindowsSecurityContextOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_WindowsSecurityContextOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_WindowsSecurityContextOptions proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*AWSElasticBlockStoreVolumeSource)(nil), \"k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource\")\n\tproto.RegisterType((*Affinity)(nil), \"k8s.io.api.core.v1.Affinity\")\n\tproto.RegisterType((*AppArmorProfile)(nil), \"k8s.io.api.core.v1.AppArmorProfile\")\n\tproto.RegisterType((*AttachedVolume)(nil), \"k8s.io.api.core.v1.AttachedVolume\")\n\tproto.RegisterType((*AvoidPods)(nil), \"k8s.io.api.core.v1.AvoidPods\")\n\tproto.RegisterType((*AzureDiskVolumeSource)(nil), \"k8s.io.api.core.v1.AzureDiskVolumeSource\")\n\tproto.RegisterType((*AzureFilePersistentVolumeSource)(nil), \"k8s.io.api.core.v1.AzureFilePersistentVolumeSource\")\n\tproto.RegisterType((*AzureFileVolumeSource)(nil), \"k8s.io.api.core.v1.AzureFileVolumeSource\")\n\tproto.RegisterType((*Binding)(nil), \"k8s.io.api.core.v1.Binding\")\n\tproto.RegisterType((*CSIPersistentVolumeSource)(nil), \"k8s.io.api.core.v1.CSIPersistentVolumeSource\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.core.v1.CSIPersistentVolumeSource.VolumeAttributesEntry\")\n\tproto.RegisterType((*CSIVolumeSource)(nil), \"k8s.io.api.core.v1.CSIVolumeSource\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.core.v1.CSIVolumeSource.VolumeAttributesEntry\")\n\tproto.RegisterType((*Capabilities)(nil), \"k8s.io.api.core.v1.Capabilities\")\n\tproto.RegisterType((*CephFSPersistentVolumeSource)(nil), \"k8s.io.api.core.v1.CephFSPersistentVolumeSource\")\n\tproto.RegisterType((*CephFSVolumeSource)(nil), \"k8s.io.api.core.v1.CephFSVolumeSource\")\n\tproto.RegisterType((*CinderPersistentVolumeSource)(nil), \"k8s.io.api.core.v1.CinderPersistentVolumeSource\")\n\tproto.RegisterType((*CinderVolumeSource)(nil), \"k8s.io.api.core.v1.CinderVolumeSource\")\n\tproto.RegisterType((*ClientIPConfig)(nil), \"k8s.io.api.core.v1.ClientIPConfig\")\n\tproto.RegisterType((*ClusterTrustBundleProjection)(nil), \"k8s.io.api.core.v1.ClusterTrustBundleProjection\")\n\tproto.RegisterType((*ComponentCondition)(nil), \"k8s.io.api.core.v1.ComponentCondition\")\n\tproto.RegisterType((*ComponentStatus)(nil), \"k8s.io.api.core.v1.ComponentStatus\")\n\tproto.RegisterType((*ComponentStatusList)(nil), \"k8s.io.api.core.v1.ComponentStatusList\")\n\tproto.RegisterType((*ConfigMap)(nil), \"k8s.io.api.core.v1.ConfigMap\")\n\tproto.RegisterMapType((map[string][]byte)(nil), \"k8s.io.api.core.v1.ConfigMap.BinaryDataEntry\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.core.v1.ConfigMap.DataEntry\")\n\tproto.RegisterType((*ConfigMapEnvSource)(nil), \"k8s.io.api.core.v1.ConfigMapEnvSource\")\n\tproto.RegisterType((*ConfigMapKeySelector)(nil), \"k8s.io.api.core.v1.ConfigMapKeySelector\")\n\tproto.RegisterType((*ConfigMapList)(nil), \"k8s.io.api.core.v1.ConfigMapList\")\n\tproto.RegisterType((*ConfigMapNodeConfigSource)(nil), \"k8s.io.api.core.v1.ConfigMapNodeConfigSource\")\n\tproto.RegisterType((*ConfigMapProjection)(nil), \"k8s.io.api.core.v1.ConfigMapProjection\")\n\tproto.RegisterType((*ConfigMapVolumeSource)(nil), \"k8s.io.api.core.v1.ConfigMapVolumeSource\")\n\tproto.RegisterType((*Container)(nil), \"k8s.io.api.core.v1.Container\")\n\tproto.RegisterType((*ContainerImage)(nil), \"k8s.io.api.core.v1.ContainerImage\")\n\tproto.RegisterType((*ContainerPort)(nil), \"k8s.io.api.core.v1.ContainerPort\")\n\tproto.RegisterType((*ContainerResizePolicy)(nil), \"k8s.io.api.core.v1.ContainerResizePolicy\")\n\tproto.RegisterType((*ContainerState)(nil), \"k8s.io.api.core.v1.ContainerState\")\n\tproto.RegisterType((*ContainerStateRunning)(nil), \"k8s.io.api.core.v1.ContainerStateRunning\")\n\tproto.RegisterType((*ContainerStateTerminated)(nil), \"k8s.io.api.core.v1.ContainerStateTerminated\")\n\tproto.RegisterType((*ContainerStateWaiting)(nil), \"k8s.io.api.core.v1.ContainerStateWaiting\")\n\tproto.RegisterType((*ContainerStatus)(nil), \"k8s.io.api.core.v1.ContainerStatus\")\n\tproto.RegisterMapType((ResourceList)(nil), \"k8s.io.api.core.v1.ContainerStatus.AllocatedResourcesEntry\")\n\tproto.RegisterType((*ContainerUser)(nil), \"k8s.io.api.core.v1.ContainerUser\")\n\tproto.RegisterType((*DaemonEndpoint)(nil), \"k8s.io.api.core.v1.DaemonEndpoint\")\n\tproto.RegisterType((*DownwardAPIProjection)(nil), \"k8s.io.api.core.v1.DownwardAPIProjection\")\n\tproto.RegisterType((*DownwardAPIVolumeFile)(nil), \"k8s.io.api.core.v1.DownwardAPIVolumeFile\")\n\tproto.RegisterType((*DownwardAPIVolumeSource)(nil), \"k8s.io.api.core.v1.DownwardAPIVolumeSource\")\n\tproto.RegisterType((*EmptyDirVolumeSource)(nil), \"k8s.io.api.core.v1.EmptyDirVolumeSource\")\n\tproto.RegisterType((*EndpointAddress)(nil), \"k8s.io.api.core.v1.EndpointAddress\")\n\tproto.RegisterType((*EndpointPort)(nil), \"k8s.io.api.core.v1.EndpointPort\")\n\tproto.RegisterType((*EndpointSubset)(nil), \"k8s.io.api.core.v1.EndpointSubset\")\n\tproto.RegisterType((*Endpoints)(nil), \"k8s.io.api.core.v1.Endpoints\")\n\tproto.RegisterType((*EndpointsList)(nil), \"k8s.io.api.core.v1.EndpointsList\")\n\tproto.RegisterType((*EnvFromSource)(nil), \"k8s.io.api.core.v1.EnvFromSource\")\n\tproto.RegisterType((*EnvVar)(nil), \"k8s.io.api.core.v1.EnvVar\")\n\tproto.RegisterType((*EnvVarSource)(nil), \"k8s.io.api.core.v1.EnvVarSource\")\n\tproto.RegisterType((*EphemeralContainer)(nil), \"k8s.io.api.core.v1.EphemeralContainer\")\n\tproto.RegisterType((*EphemeralContainerCommon)(nil), \"k8s.io.api.core.v1.EphemeralContainerCommon\")\n\tproto.RegisterType((*EphemeralVolumeSource)(nil), \"k8s.io.api.core.v1.EphemeralVolumeSource\")\n\tproto.RegisterType((*Event)(nil), \"k8s.io.api.core.v1.Event\")\n\tproto.RegisterType((*EventList)(nil), \"k8s.io.api.core.v1.EventList\")\n\tproto.RegisterType((*EventSeries)(nil), \"k8s.io.api.core.v1.EventSeries\")\n\tproto.RegisterType((*EventSource)(nil), \"k8s.io.api.core.v1.EventSource\")\n\tproto.RegisterType((*ExecAction)(nil), \"k8s.io.api.core.v1.ExecAction\")\n\tproto.RegisterType((*FCVolumeSource)(nil), \"k8s.io.api.core.v1.FCVolumeSource\")\n\tproto.RegisterType((*FlexPersistentVolumeSource)(nil), \"k8s.io.api.core.v1.FlexPersistentVolumeSource\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.core.v1.FlexPersistentVolumeSource.OptionsEntry\")\n\tproto.RegisterType((*FlexVolumeSource)(nil), \"k8s.io.api.core.v1.FlexVolumeSource\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.core.v1.FlexVolumeSource.OptionsEntry\")\n\tproto.RegisterType((*FlockerVolumeSource)(nil), \"k8s.io.api.core.v1.FlockerVolumeSource\")\n\tproto.RegisterType((*GCEPersistentDiskVolumeSource)(nil), \"k8s.io.api.core.v1.GCEPersistentDiskVolumeSource\")\n\tproto.RegisterType((*GRPCAction)(nil), \"k8s.io.api.core.v1.GRPCAction\")\n\tproto.RegisterType((*GitRepoVolumeSource)(nil), \"k8s.io.api.core.v1.GitRepoVolumeSource\")\n\tproto.RegisterType((*GlusterfsPersistentVolumeSource)(nil), \"k8s.io.api.core.v1.GlusterfsPersistentVolumeSource\")\n\tproto.RegisterType((*GlusterfsVolumeSource)(nil), \"k8s.io.api.core.v1.GlusterfsVolumeSource\")\n\tproto.RegisterType((*HTTPGetAction)(nil), \"k8s.io.api.core.v1.HTTPGetAction\")\n\tproto.RegisterType((*HTTPHeader)(nil), \"k8s.io.api.core.v1.HTTPHeader\")\n\tproto.RegisterType((*HostAlias)(nil), \"k8s.io.api.core.v1.HostAlias\")\n\tproto.RegisterType((*HostIP)(nil), \"k8s.io.api.core.v1.HostIP\")\n\tproto.RegisterType((*HostPathVolumeSource)(nil), \"k8s.io.api.core.v1.HostPathVolumeSource\")\n\tproto.RegisterType((*ISCSIPersistentVolumeSource)(nil), \"k8s.io.api.core.v1.ISCSIPersistentVolumeSource\")\n\tproto.RegisterType((*ISCSIVolumeSource)(nil), \"k8s.io.api.core.v1.ISCSIVolumeSource\")\n\tproto.RegisterType((*ImageVolumeSource)(nil), \"k8s.io.api.core.v1.ImageVolumeSource\")\n\tproto.RegisterType((*KeyToPath)(nil), \"k8s.io.api.core.v1.KeyToPath\")\n\tproto.RegisterType((*Lifecycle)(nil), \"k8s.io.api.core.v1.Lifecycle\")\n\tproto.RegisterType((*LifecycleHandler)(nil), \"k8s.io.api.core.v1.LifecycleHandler\")\n\tproto.RegisterType((*LimitRange)(nil), \"k8s.io.api.core.v1.LimitRange\")\n\tproto.RegisterType((*LimitRangeItem)(nil), \"k8s.io.api.core.v1.LimitRangeItem\")\n\tproto.RegisterMapType((ResourceList)(nil), \"k8s.io.api.core.v1.LimitRangeItem.DefaultEntry\")\n\tproto.RegisterMapType((ResourceList)(nil), \"k8s.io.api.core.v1.LimitRangeItem.DefaultRequestEntry\")\n\tproto.RegisterMapType((ResourceList)(nil), \"k8s.io.api.core.v1.LimitRangeItem.MaxEntry\")\n\tproto.RegisterMapType((ResourceList)(nil), \"k8s.io.api.core.v1.LimitRangeItem.MaxLimitRequestRatioEntry\")\n\tproto.RegisterMapType((ResourceList)(nil), \"k8s.io.api.core.v1.LimitRangeItem.MinEntry\")\n\tproto.RegisterType((*LimitRangeList)(nil), \"k8s.io.api.core.v1.LimitRangeList\")\n\tproto.RegisterType((*LimitRangeSpec)(nil), \"k8s.io.api.core.v1.LimitRangeSpec\")\n\tproto.RegisterType((*LinuxContainerUser)(nil), \"k8s.io.api.core.v1.LinuxContainerUser\")\n\tproto.RegisterType((*List)(nil), \"k8s.io.api.core.v1.List\")\n\tproto.RegisterType((*LoadBalancerIngress)(nil), \"k8s.io.api.core.v1.LoadBalancerIngress\")\n\tproto.RegisterType((*LoadBalancerStatus)(nil), \"k8s.io.api.core.v1.LoadBalancerStatus\")\n\tproto.RegisterType((*LocalObjectReference)(nil), \"k8s.io.api.core.v1.LocalObjectReference\")\n\tproto.RegisterType((*LocalVolumeSource)(nil), \"k8s.io.api.core.v1.LocalVolumeSource\")\n\tproto.RegisterType((*ModifyVolumeStatus)(nil), \"k8s.io.api.core.v1.ModifyVolumeStatus\")\n\tproto.RegisterType((*NFSVolumeSource)(nil), \"k8s.io.api.core.v1.NFSVolumeSource\")\n\tproto.RegisterType((*Namespace)(nil), \"k8s.io.api.core.v1.Namespace\")\n\tproto.RegisterType((*NamespaceCondition)(nil), \"k8s.io.api.core.v1.NamespaceCondition\")\n\tproto.RegisterType((*NamespaceList)(nil), \"k8s.io.api.core.v1.NamespaceList\")\n\tproto.RegisterType((*NamespaceSpec)(nil), \"k8s.io.api.core.v1.NamespaceSpec\")\n\tproto.RegisterType((*NamespaceStatus)(nil), \"k8s.io.api.core.v1.NamespaceStatus\")\n\tproto.RegisterType((*Node)(nil), \"k8s.io.api.core.v1.Node\")\n\tproto.RegisterType((*NodeAddress)(nil), \"k8s.io.api.core.v1.NodeAddress\")\n\tproto.RegisterType((*NodeAffinity)(nil), \"k8s.io.api.core.v1.NodeAffinity\")\n\tproto.RegisterType((*NodeCondition)(nil), \"k8s.io.api.core.v1.NodeCondition\")\n\tproto.RegisterType((*NodeConfigSource)(nil), \"k8s.io.api.core.v1.NodeConfigSource\")\n\tproto.RegisterType((*NodeConfigStatus)(nil), \"k8s.io.api.core.v1.NodeConfigStatus\")\n\tproto.RegisterType((*NodeDaemonEndpoints)(nil), \"k8s.io.api.core.v1.NodeDaemonEndpoints\")\n\tproto.RegisterType((*NodeFeatures)(nil), \"k8s.io.api.core.v1.NodeFeatures\")\n\tproto.RegisterType((*NodeList)(nil), \"k8s.io.api.core.v1.NodeList\")\n\tproto.RegisterType((*NodeProxyOptions)(nil), \"k8s.io.api.core.v1.NodeProxyOptions\")\n\tproto.RegisterType((*NodeRuntimeHandler)(nil), \"k8s.io.api.core.v1.NodeRuntimeHandler\")\n\tproto.RegisterType((*NodeRuntimeHandlerFeatures)(nil), \"k8s.io.api.core.v1.NodeRuntimeHandlerFeatures\")\n\tproto.RegisterType((*NodeSelector)(nil), \"k8s.io.api.core.v1.NodeSelector\")\n\tproto.RegisterType((*NodeSelectorRequirement)(nil), \"k8s.io.api.core.v1.NodeSelectorRequirement\")\n\tproto.RegisterType((*NodeSelectorTerm)(nil), \"k8s.io.api.core.v1.NodeSelectorTerm\")\n\tproto.RegisterType((*NodeSpec)(nil), \"k8s.io.api.core.v1.NodeSpec\")\n\tproto.RegisterType((*NodeStatus)(nil), \"k8s.io.api.core.v1.NodeStatus\")\n\tproto.RegisterMapType((ResourceList)(nil), \"k8s.io.api.core.v1.NodeStatus.AllocatableEntry\")\n\tproto.RegisterMapType((ResourceList)(nil), \"k8s.io.api.core.v1.NodeStatus.CapacityEntry\")\n\tproto.RegisterType((*NodeSystemInfo)(nil), \"k8s.io.api.core.v1.NodeSystemInfo\")\n\tproto.RegisterType((*ObjectFieldSelector)(nil), \"k8s.io.api.core.v1.ObjectFieldSelector\")\n\tproto.RegisterType((*ObjectReference)(nil), \"k8s.io.api.core.v1.ObjectReference\")\n\tproto.RegisterType((*PersistentVolume)(nil), \"k8s.io.api.core.v1.PersistentVolume\")\n\tproto.RegisterType((*PersistentVolumeClaim)(nil), \"k8s.io.api.core.v1.PersistentVolumeClaim\")\n\tproto.RegisterType((*PersistentVolumeClaimCondition)(nil), \"k8s.io.api.core.v1.PersistentVolumeClaimCondition\")\n\tproto.RegisterType((*PersistentVolumeClaimList)(nil), \"k8s.io.api.core.v1.PersistentVolumeClaimList\")\n\tproto.RegisterType((*PersistentVolumeClaimSpec)(nil), \"k8s.io.api.core.v1.PersistentVolumeClaimSpec\")\n\tproto.RegisterType((*PersistentVolumeClaimStatus)(nil), \"k8s.io.api.core.v1.PersistentVolumeClaimStatus\")\n\tproto.RegisterMapType((map[ResourceName]ClaimResourceStatus)(nil), \"k8s.io.api.core.v1.PersistentVolumeClaimStatus.AllocatedResourceStatusesEntry\")\n\tproto.RegisterMapType((ResourceList)(nil), \"k8s.io.api.core.v1.PersistentVolumeClaimStatus.AllocatedResourcesEntry\")\n\tproto.RegisterMapType((ResourceList)(nil), \"k8s.io.api.core.v1.PersistentVolumeClaimStatus.CapacityEntry\")\n\tproto.RegisterType((*PersistentVolumeClaimTemplate)(nil), \"k8s.io.api.core.v1.PersistentVolumeClaimTemplate\")\n\tproto.RegisterType((*PersistentVolumeClaimVolumeSource)(nil), \"k8s.io.api.core.v1.PersistentVolumeClaimVolumeSource\")\n\tproto.RegisterType((*PersistentVolumeList)(nil), \"k8s.io.api.core.v1.PersistentVolumeList\")\n\tproto.RegisterType((*PersistentVolumeSource)(nil), \"k8s.io.api.core.v1.PersistentVolumeSource\")\n\tproto.RegisterType((*PersistentVolumeSpec)(nil), \"k8s.io.api.core.v1.PersistentVolumeSpec\")\n\tproto.RegisterMapType((ResourceList)(nil), \"k8s.io.api.core.v1.PersistentVolumeSpec.CapacityEntry\")\n\tproto.RegisterType((*PersistentVolumeStatus)(nil), \"k8s.io.api.core.v1.PersistentVolumeStatus\")\n\tproto.RegisterType((*PhotonPersistentDiskVolumeSource)(nil), \"k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource\")\n\tproto.RegisterType((*Pod)(nil), \"k8s.io.api.core.v1.Pod\")\n\tproto.RegisterType((*PodAffinity)(nil), \"k8s.io.api.core.v1.PodAffinity\")\n\tproto.RegisterType((*PodAffinityTerm)(nil), \"k8s.io.api.core.v1.PodAffinityTerm\")\n\tproto.RegisterType((*PodAntiAffinity)(nil), \"k8s.io.api.core.v1.PodAntiAffinity\")\n\tproto.RegisterType((*PodAttachOptions)(nil), \"k8s.io.api.core.v1.PodAttachOptions\")\n\tproto.RegisterType((*PodCondition)(nil), \"k8s.io.api.core.v1.PodCondition\")\n\tproto.RegisterType((*PodDNSConfig)(nil), \"k8s.io.api.core.v1.PodDNSConfig\")\n\tproto.RegisterType((*PodDNSConfigOption)(nil), \"k8s.io.api.core.v1.PodDNSConfigOption\")\n\tproto.RegisterType((*PodExecOptions)(nil), \"k8s.io.api.core.v1.PodExecOptions\")\n\tproto.RegisterType((*PodIP)(nil), \"k8s.io.api.core.v1.PodIP\")\n\tproto.RegisterType((*PodList)(nil), \"k8s.io.api.core.v1.PodList\")\n\tproto.RegisterType((*PodLogOptions)(nil), \"k8s.io.api.core.v1.PodLogOptions\")\n\tproto.RegisterType((*PodOS)(nil), \"k8s.io.api.core.v1.PodOS\")\n\tproto.RegisterType((*PodPortForwardOptions)(nil), \"k8s.io.api.core.v1.PodPortForwardOptions\")\n\tproto.RegisterType((*PodProxyOptions)(nil), \"k8s.io.api.core.v1.PodProxyOptions\")\n\tproto.RegisterType((*PodReadinessGate)(nil), \"k8s.io.api.core.v1.PodReadinessGate\")\n\tproto.RegisterType((*PodResourceClaim)(nil), \"k8s.io.api.core.v1.PodResourceClaim\")\n\tproto.RegisterType((*PodResourceClaimStatus)(nil), \"k8s.io.api.core.v1.PodResourceClaimStatus\")\n\tproto.RegisterType((*PodSchedulingGate)(nil), \"k8s.io.api.core.v1.PodSchedulingGate\")\n\tproto.RegisterType((*PodSecurityContext)(nil), \"k8s.io.api.core.v1.PodSecurityContext\")\n\tproto.RegisterType((*PodSignature)(nil), \"k8s.io.api.core.v1.PodSignature\")\n\tproto.RegisterType((*PodSpec)(nil), \"k8s.io.api.core.v1.PodSpec\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.core.v1.PodSpec.NodeSelectorEntry\")\n\tproto.RegisterMapType((ResourceList)(nil), \"k8s.io.api.core.v1.PodSpec.OverheadEntry\")\n\tproto.RegisterType((*PodStatus)(nil), \"k8s.io.api.core.v1.PodStatus\")\n\tproto.RegisterType((*PodStatusResult)(nil), \"k8s.io.api.core.v1.PodStatusResult\")\n\tproto.RegisterType((*PodTemplate)(nil), \"k8s.io.api.core.v1.PodTemplate\")\n\tproto.RegisterType((*PodTemplateList)(nil), \"k8s.io.api.core.v1.PodTemplateList\")\n\tproto.RegisterType((*PodTemplateSpec)(nil), \"k8s.io.api.core.v1.PodTemplateSpec\")\n\tproto.RegisterType((*PortStatus)(nil), \"k8s.io.api.core.v1.PortStatus\")\n\tproto.RegisterType((*PortworxVolumeSource)(nil), \"k8s.io.api.core.v1.PortworxVolumeSource\")\n\tproto.RegisterType((*Preconditions)(nil), \"k8s.io.api.core.v1.Preconditions\")\n\tproto.RegisterType((*PreferAvoidPodsEntry)(nil), \"k8s.io.api.core.v1.PreferAvoidPodsEntry\")\n\tproto.RegisterType((*PreferredSchedulingTerm)(nil), \"k8s.io.api.core.v1.PreferredSchedulingTerm\")\n\tproto.RegisterType((*Probe)(nil), \"k8s.io.api.core.v1.Probe\")\n\tproto.RegisterType((*ProbeHandler)(nil), \"k8s.io.api.core.v1.ProbeHandler\")\n\tproto.RegisterType((*ProjectedVolumeSource)(nil), \"k8s.io.api.core.v1.ProjectedVolumeSource\")\n\tproto.RegisterType((*QuobyteVolumeSource)(nil), \"k8s.io.api.core.v1.QuobyteVolumeSource\")\n\tproto.RegisterType((*RBDPersistentVolumeSource)(nil), \"k8s.io.api.core.v1.RBDPersistentVolumeSource\")\n\tproto.RegisterType((*RBDVolumeSource)(nil), \"k8s.io.api.core.v1.RBDVolumeSource\")\n\tproto.RegisterType((*RangeAllocation)(nil), \"k8s.io.api.core.v1.RangeAllocation\")\n\tproto.RegisterType((*ReplicationController)(nil), \"k8s.io.api.core.v1.ReplicationController\")\n\tproto.RegisterType((*ReplicationControllerCondition)(nil), \"k8s.io.api.core.v1.ReplicationControllerCondition\")\n\tproto.RegisterType((*ReplicationControllerList)(nil), \"k8s.io.api.core.v1.ReplicationControllerList\")\n\tproto.RegisterType((*ReplicationControllerSpec)(nil), \"k8s.io.api.core.v1.ReplicationControllerSpec\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.core.v1.ReplicationControllerSpec.SelectorEntry\")\n\tproto.RegisterType((*ReplicationControllerStatus)(nil), \"k8s.io.api.core.v1.ReplicationControllerStatus\")\n\tproto.RegisterType((*ResourceClaim)(nil), \"k8s.io.api.core.v1.ResourceClaim\")\n\tproto.RegisterType((*ResourceFieldSelector)(nil), \"k8s.io.api.core.v1.ResourceFieldSelector\")\n\tproto.RegisterType((*ResourceHealth)(nil), \"k8s.io.api.core.v1.ResourceHealth\")\n\tproto.RegisterType((*ResourceQuota)(nil), \"k8s.io.api.core.v1.ResourceQuota\")\n\tproto.RegisterType((*ResourceQuotaList)(nil), \"k8s.io.api.core.v1.ResourceQuotaList\")\n\tproto.RegisterType((*ResourceQuotaSpec)(nil), \"k8s.io.api.core.v1.ResourceQuotaSpec\")\n\tproto.RegisterMapType((ResourceList)(nil), \"k8s.io.api.core.v1.ResourceQuotaSpec.HardEntry\")\n\tproto.RegisterType((*ResourceQuotaStatus)(nil), \"k8s.io.api.core.v1.ResourceQuotaStatus\")\n\tproto.RegisterMapType((ResourceList)(nil), \"k8s.io.api.core.v1.ResourceQuotaStatus.HardEntry\")\n\tproto.RegisterMapType((ResourceList)(nil), \"k8s.io.api.core.v1.ResourceQuotaStatus.UsedEntry\")\n\tproto.RegisterType((*ResourceRequirements)(nil), \"k8s.io.api.core.v1.ResourceRequirements\")\n\tproto.RegisterMapType((ResourceList)(nil), \"k8s.io.api.core.v1.ResourceRequirements.LimitsEntry\")\n\tproto.RegisterMapType((ResourceList)(nil), \"k8s.io.api.core.v1.ResourceRequirements.RequestsEntry\")\n\tproto.RegisterType((*ResourceStatus)(nil), \"k8s.io.api.core.v1.ResourceStatus\")\n\tproto.RegisterType((*SELinuxOptions)(nil), \"k8s.io.api.core.v1.SELinuxOptions\")\n\tproto.RegisterType((*ScaleIOPersistentVolumeSource)(nil), \"k8s.io.api.core.v1.ScaleIOPersistentVolumeSource\")\n\tproto.RegisterType((*ScaleIOVolumeSource)(nil), \"k8s.io.api.core.v1.ScaleIOVolumeSource\")\n\tproto.RegisterType((*ScopeSelector)(nil), \"k8s.io.api.core.v1.ScopeSelector\")\n\tproto.RegisterType((*ScopedResourceSelectorRequirement)(nil), \"k8s.io.api.core.v1.ScopedResourceSelectorRequirement\")\n\tproto.RegisterType((*SeccompProfile)(nil), \"k8s.io.api.core.v1.SeccompProfile\")\n\tproto.RegisterType((*Secret)(nil), \"k8s.io.api.core.v1.Secret\")\n\tproto.RegisterMapType((map[string][]byte)(nil), \"k8s.io.api.core.v1.Secret.DataEntry\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.core.v1.Secret.StringDataEntry\")\n\tproto.RegisterType((*SecretEnvSource)(nil), \"k8s.io.api.core.v1.SecretEnvSource\")\n\tproto.RegisterType((*SecretKeySelector)(nil), \"k8s.io.api.core.v1.SecretKeySelector\")\n\tproto.RegisterType((*SecretList)(nil), \"k8s.io.api.core.v1.SecretList\")\n\tproto.RegisterType((*SecretProjection)(nil), \"k8s.io.api.core.v1.SecretProjection\")\n\tproto.RegisterType((*SecretReference)(nil), \"k8s.io.api.core.v1.SecretReference\")\n\tproto.RegisterType((*SecretVolumeSource)(nil), \"k8s.io.api.core.v1.SecretVolumeSource\")\n\tproto.RegisterType((*SecurityContext)(nil), \"k8s.io.api.core.v1.SecurityContext\")\n\tproto.RegisterType((*SerializedReference)(nil), \"k8s.io.api.core.v1.SerializedReference\")\n\tproto.RegisterType((*Service)(nil), \"k8s.io.api.core.v1.Service\")\n\tproto.RegisterType((*ServiceAccount)(nil), \"k8s.io.api.core.v1.ServiceAccount\")\n\tproto.RegisterType((*ServiceAccountList)(nil), \"k8s.io.api.core.v1.ServiceAccountList\")\n\tproto.RegisterType((*ServiceAccountTokenProjection)(nil), \"k8s.io.api.core.v1.ServiceAccountTokenProjection\")\n\tproto.RegisterType((*ServiceList)(nil), \"k8s.io.api.core.v1.ServiceList\")\n\tproto.RegisterType((*ServicePort)(nil), \"k8s.io.api.core.v1.ServicePort\")\n\tproto.RegisterType((*ServiceProxyOptions)(nil), \"k8s.io.api.core.v1.ServiceProxyOptions\")\n\tproto.RegisterType((*ServiceSpec)(nil), \"k8s.io.api.core.v1.ServiceSpec\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.core.v1.ServiceSpec.SelectorEntry\")\n\tproto.RegisterType((*ServiceStatus)(nil), \"k8s.io.api.core.v1.ServiceStatus\")\n\tproto.RegisterType((*SessionAffinityConfig)(nil), \"k8s.io.api.core.v1.SessionAffinityConfig\")\n\tproto.RegisterType((*SleepAction)(nil), \"k8s.io.api.core.v1.SleepAction\")\n\tproto.RegisterType((*StorageOSPersistentVolumeSource)(nil), \"k8s.io.api.core.v1.StorageOSPersistentVolumeSource\")\n\tproto.RegisterType((*StorageOSVolumeSource)(nil), \"k8s.io.api.core.v1.StorageOSVolumeSource\")\n\tproto.RegisterType((*Sysctl)(nil), \"k8s.io.api.core.v1.Sysctl\")\n\tproto.RegisterType((*TCPSocketAction)(nil), \"k8s.io.api.core.v1.TCPSocketAction\")\n\tproto.RegisterType((*Taint)(nil), \"k8s.io.api.core.v1.Taint\")\n\tproto.RegisterType((*Toleration)(nil), \"k8s.io.api.core.v1.Toleration\")\n\tproto.RegisterType((*TopologySelectorLabelRequirement)(nil), \"k8s.io.api.core.v1.TopologySelectorLabelRequirement\")\n\tproto.RegisterType((*TopologySelectorTerm)(nil), \"k8s.io.api.core.v1.TopologySelectorTerm\")\n\tproto.RegisterType((*TopologySpreadConstraint)(nil), \"k8s.io.api.core.v1.TopologySpreadConstraint\")\n\tproto.RegisterType((*TypedLocalObjectReference)(nil), \"k8s.io.api.core.v1.TypedLocalObjectReference\")\n\tproto.RegisterType((*TypedObjectReference)(nil), \"k8s.io.api.core.v1.TypedObjectReference\")\n\tproto.RegisterType((*Volume)(nil), \"k8s.io.api.core.v1.Volume\")\n\tproto.RegisterType((*VolumeDevice)(nil), \"k8s.io.api.core.v1.VolumeDevice\")\n\tproto.RegisterType((*VolumeMount)(nil), \"k8s.io.api.core.v1.VolumeMount\")\n\tproto.RegisterType((*VolumeMountStatus)(nil), \"k8s.io.api.core.v1.VolumeMountStatus\")\n\tproto.RegisterType((*VolumeNodeAffinity)(nil), \"k8s.io.api.core.v1.VolumeNodeAffinity\")\n\tproto.RegisterType((*VolumeProjection)(nil), \"k8s.io.api.core.v1.VolumeProjection\")\n\tproto.RegisterType((*VolumeResourceRequirements)(nil), \"k8s.io.api.core.v1.VolumeResourceRequirements\")\n\tproto.RegisterMapType((ResourceList)(nil), \"k8s.io.api.core.v1.VolumeResourceRequirements.LimitsEntry\")\n\tproto.RegisterMapType((ResourceList)(nil), \"k8s.io.api.core.v1.VolumeResourceRequirements.RequestsEntry\")\n\tproto.RegisterType((*VolumeSource)(nil), \"k8s.io.api.core.v1.VolumeSource\")\n\tproto.RegisterType((*VsphereVirtualDiskVolumeSource)(nil), \"k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource\")\n\tproto.RegisterType((*WeightedPodAffinityTerm)(nil), \"k8s.io.api.core.v1.WeightedPodAffinityTerm\")\n\tproto.RegisterType((*WindowsSecurityContextOptions)(nil), \"k8s.io.api.core.v1.WindowsSecurityContextOptions\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/core/v1/generated.proto\", fileDescriptor_6c07b07c062484ab)\n}\n\nvar fileDescriptor_6c07b07c062484ab = []byte{\n\t// 16114 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x69, 0x90, 0x64, 0xd9,\n\t0x59, 0x28, 0xa6, 0x9b, 0x59, 0xeb, 0x57, 0xfb, 0xa9, 0x5e, 0xaa, 0x6b, 0xba, 0x3b, 0x7b, 0xee,\n\t0xcc, 0xf4, 0xf4, 0x6c, 0xd5, 0xea, 0x59, 0x34, 0xad, 0x99, 0xd1, 0x30, 0xb5, 0x76, 0xd7, 0x74,\n\t0x57, 0x75, 0xce, 0xc9, 0xaa, 0x6e, 0x69, 0x34, 0x12, 0xba, 0x9d, 0x79, 0xaa, 0xea, 0xaa, 0x32,\n\t0xef, 0xcd, 0xb9, 0xf7, 0x66, 0x75, 0x57, 0x5b, 0x04, 0x20, 0x8c, 0x40, 0x02, 0x47, 0x28, 0x08,\n\t0x6c, 0x1c, 0x82, 0xe0, 0x07, 0x60, 0x16, 0xcb, 0x60, 0x64, 0x61, 0xc0, 0x88, 0xcd, 0x36, 0x8e,\n\t0x00, 0xff, 0xc0, 0x98, 0x08, 0x4b, 0x84, 0x09, 0x17, 0x56, 0xe1, 0x08, 0x82, 0x1f, 0x06, 0x82,\n\t0xf7, 0x7e, 0xbc, 0x57, 0xc1, 0x7b, 0xbc, 0x38, 0xeb, 0x3d, 0xe7, 0x2e, 0x99, 0x59, 0x3d, 0xdd,\n\t0xa5, 0x91, 0x62, 0xfe, 0x65, 0x9e, 0xef, 0x3b, 0xdf, 0x39, 0xf7, 0xac, 0xdf, 0xf9, 0x56, 0xb0,\n\t0xb7, 0x2f, 0x87, 0x33, 0xae, 0x7f, 0xd1, 0x69, 0xba, 0x17, 0xab, 0x7e, 0x40, 0x2e, 0xee, 0x5c,\n\t0xba, 0xb8, 0x49, 0x3c, 0x12, 0x38, 0x11, 0xa9, 0xcd, 0x34, 0x03, 0x3f, 0xf2, 0x11, 0xe2, 0x38,\n\t0x33, 0x4e, 0xd3, 0x9d, 0xa1, 0x38, 0x33, 0x3b, 0x97, 0xa6, 0x9f, 0xdb, 0x74, 0xa3, 0xad, 0xd6,\n\t0xed, 0x99, 0xaa, 0xdf, 0xb8, 0xb8, 0xe9, 0x6f, 0xfa, 0x17, 0x19, 0xea, 0xed, 0xd6, 0x06, 0xfb,\n\t0xc7, 0xfe, 0xb0, 0x5f, 0x9c, 0xc4, 0xf4, 0x8b, 0x71, 0x33, 0x0d, 0xa7, 0xba, 0xe5, 0x7a, 0x24,\n\t0xd8, 0xbd, 0xd8, 0xdc, 0xde, 0x64, 0xed, 0x06, 0x24, 0xf4, 0x5b, 0x41, 0x95, 0x24, 0x1b, 0x6e,\n\t0x5b, 0x2b, 0xbc, 0xd8, 0x20, 0x91, 0x93, 0xd1, 0xdd, 0xe9, 0x8b, 0x79, 0xb5, 0x82, 0x96, 0x17,\n\t0xb9, 0x8d, 0x74, 0x33, 0x1f, 0xe9, 0x54, 0x21, 0xac, 0x6e, 0x91, 0x86, 0x93, 0xaa, 0xf7, 0x42,\n\t0x5e, 0xbd, 0x56, 0xe4, 0xd6, 0x2f, 0xba, 0x5e, 0x14, 0x46, 0x41, 0xb2, 0x92, 0xfd, 0x2d, 0x0b,\n\t0xce, 0xcd, 0xde, 0xaa, 0x2c, 0xd6, 0x9d, 0x30, 0x72, 0xab, 0x73, 0x75, 0xbf, 0xba, 0x5d, 0x89,\n\t0xfc, 0x80, 0xdc, 0xf4, 0xeb, 0xad, 0x06, 0xa9, 0xb0, 0x81, 0x40, 0xcf, 0xc2, 0xc0, 0x0e, 0xfb,\n\t0xbf, 0xbc, 0x30, 0x65, 0x9d, 0xb3, 0x2e, 0x0c, 0xce, 0x8d, 0xff, 0xe9, 0x5e, 0xe9, 0x43, 0xfb,\n\t0x7b, 0xa5, 0x81, 0x9b, 0xa2, 0x1c, 0x2b, 0x0c, 0x74, 0x1e, 0xfa, 0x36, 0xc2, 0xb5, 0xdd, 0x26,\n\t0x99, 0x2a, 0x30, 0xdc, 0x51, 0x81, 0xdb, 0xb7, 0x54, 0xa1, 0xa5, 0x58, 0x40, 0xd1, 0x45, 0x18,\n\t0x6c, 0x3a, 0x41, 0xe4, 0x46, 0xae, 0xef, 0x4d, 0x15, 0xcf, 0x59, 0x17, 0x7a, 0xe7, 0x26, 0x04,\n\t0xea, 0x60, 0x59, 0x02, 0x70, 0x8c, 0x43, 0xbb, 0x11, 0x10, 0xa7, 0x76, 0xc3, 0xab, 0xef, 0x4e,\n\t0xf5, 0x9c, 0xb3, 0x2e, 0x0c, 0xc4, 0xdd, 0xc0, 0xa2, 0x1c, 0x2b, 0x0c, 0xfb, 0x2b, 0x05, 0x18,\n\t0x98, 0xdd, 0xd8, 0x70, 0x3d, 0x37, 0xda, 0x45, 0x37, 0x61, 0xd8, 0xf3, 0x6b, 0x44, 0xfe, 0x67,\n\t0x5f, 0x31, 0xf4, 0xfc, 0xb9, 0x99, 0xf4, 0x52, 0x9a, 0x59, 0xd5, 0xf0, 0xe6, 0xc6, 0xf7, 0xf7,\n\t0x4a, 0xc3, 0x7a, 0x09, 0x36, 0xe8, 0x20, 0x0c, 0x43, 0x4d, 0xbf, 0xa6, 0xc8, 0x16, 0x18, 0xd9,\n\t0x52, 0x16, 0xd9, 0x72, 0x8c, 0x36, 0x37, 0xb6, 0xbf, 0x57, 0x1a, 0xd2, 0x0a, 0xb0, 0x4e, 0x04,\n\t0xdd, 0x86, 0x31, 0xfa, 0xd7, 0x8b, 0x5c, 0x45, 0xb7, 0xc8, 0xe8, 0x3e, 0x96, 0x47, 0x57, 0x43,\n\t0x9d, 0x9b, 0xdc, 0xdf, 0x2b, 0x8d, 0x25, 0x0a, 0x71, 0x92, 0xa0, 0xfd, 0x93, 0x16, 0x8c, 0xcd,\n\t0x36, 0x9b, 0xb3, 0x41, 0xc3, 0x0f, 0xca, 0x81, 0xbf, 0xe1, 0xd6, 0x09, 0x7a, 0x19, 0x7a, 0x22,\n\t0x3a, 0x6b, 0x7c, 0x86, 0x1f, 0x13, 0x43, 0xdb, 0x43, 0xe7, 0xea, 0x60, 0xaf, 0x34, 0x99, 0x40,\n\t0x67, 0x53, 0xc9, 0x2a, 0xa0, 0x37, 0x60, 0xbc, 0xee, 0x57, 0x9d, 0xfa, 0x96, 0x1f, 0x46, 0x02,\n\t0x2a, 0xa6, 0xfe, 0xd8, 0xfe, 0x5e, 0x69, 0xfc, 0x7a, 0x02, 0x86, 0x53, 0xd8, 0xf6, 0x3d, 0x18,\n\t0x9d, 0x8d, 0x22, 0xa7, 0xba, 0x45, 0x6a, 0x7c, 0x41, 0xa1, 0x17, 0xa1, 0xc7, 0x73, 0x1a, 0xb2,\n\t0x33, 0xe7, 0x64, 0x67, 0x56, 0x9d, 0x06, 0xed, 0xcc, 0xf8, 0xba, 0xe7, 0xbe, 0xdb, 0x12, 0x8b,\n\t0x94, 0x96, 0x61, 0x86, 0x8d, 0x9e, 0x07, 0xa8, 0x91, 0x1d, 0xb7, 0x4a, 0xca, 0x4e, 0xb4, 0x25,\n\t0xfa, 0x80, 0x44, 0x5d, 0x58, 0x50, 0x10, 0xac, 0x61, 0xd9, 0x77, 0x61, 0x70, 0x76, 0xc7, 0x77,\n\t0x6b, 0x65, 0xbf, 0x16, 0xa2, 0x6d, 0x18, 0x6b, 0x06, 0x64, 0x83, 0x04, 0xaa, 0x68, 0xca, 0x3a,\n\t0x57, 0xbc, 0x30, 0xf4, 0xfc, 0x85, 0xcc, 0xb1, 0x37, 0x51, 0x17, 0xbd, 0x28, 0xd8, 0x9d, 0x3b,\n\t0x29, 0xda, 0x1b, 0x4b, 0x40, 0x71, 0x92, 0xb2, 0xfd, 0x27, 0x05, 0x38, 0x3e, 0x7b, 0xaf, 0x15,\n\t0x90, 0x05, 0x37, 0xdc, 0x4e, 0x6e, 0xb8, 0x9a, 0x1b, 0x6e, 0xaf, 0xc6, 0x23, 0xa0, 0x56, 0xfa,\n\t0x82, 0x28, 0xc7, 0x0a, 0x03, 0x3d, 0x07, 0xfd, 0xf4, 0xf7, 0x3a, 0x5e, 0x16, 0x9f, 0x3c, 0x29,\n\t0x90, 0x87, 0x16, 0x9c, 0xc8, 0x59, 0xe0, 0x20, 0x2c, 0x71, 0xd0, 0x0a, 0x0c, 0x55, 0xd9, 0xf9,\n\t0xb0, 0xb9, 0xe2, 0xd7, 0x08, 0x5b, 0x5b, 0x83, 0x73, 0xcf, 0x50, 0xf4, 0xf9, 0xb8, 0xf8, 0x60,\n\t0xaf, 0x34, 0xc5, 0xfb, 0x26, 0x48, 0x68, 0x30, 0xac, 0xd7, 0x47, 0xb6, 0xda, 0xee, 0x3d, 0x8c,\n\t0x12, 0x64, 0x6c, 0xf5, 0x0b, 0xda, 0xce, 0xed, 0x65, 0x3b, 0x77, 0x38, 0x7b, 0xd7, 0xa2, 0x4b,\n\t0xd0, 0xb3, 0xed, 0x7a, 0xb5, 0xa9, 0x3e, 0x46, 0xeb, 0x0c, 0x9d, 0xf3, 0x6b, 0xae, 0x57, 0x3b,\n\t0xd8, 0x2b, 0x4d, 0x18, 0xdd, 0xa1, 0x85, 0x98, 0xa1, 0xda, 0xff, 0xc6, 0x82, 0x12, 0x83, 0x2d,\n\t0xb9, 0x75, 0x52, 0x26, 0x41, 0xe8, 0x86, 0x11, 0xf1, 0x22, 0x63, 0x40, 0x9f, 0x07, 0x08, 0x49,\n\t0x35, 0x20, 0x91, 0x36, 0xa4, 0x6a, 0x61, 0x54, 0x14, 0x04, 0x6b, 0x58, 0xf4, 0x7c, 0x0a, 0xb7,\n\t0x9c, 0x80, 0xad, 0x2f, 0x31, 0xb0, 0xea, 0x7c, 0xaa, 0x48, 0x00, 0x8e, 0x71, 0x8c, 0xf3, 0xa9,\n\t0xd8, 0xe9, 0x7c, 0x42, 0x1f, 0x83, 0xb1, 0xb8, 0xb1, 0xb0, 0xe9, 0x54, 0xe5, 0x00, 0xb2, 0x1d,\n\t0x5c, 0x31, 0x41, 0x38, 0x89, 0x6b, 0xff, 0xb7, 0x96, 0x58, 0x3c, 0xf4, 0xab, 0xdf, 0xe7, 0xdf,\n\t0x6a, 0xff, 0xae, 0x05, 0xfd, 0x73, 0xae, 0x57, 0x73, 0xbd, 0x4d, 0xf4, 0x19, 0x18, 0xa0, 0x57,\n\t0x65, 0xcd, 0x89, 0x1c, 0x71, 0x0c, 0x7f, 0x58, 0xdb, 0x5b, 0xea, 0xe6, 0x9a, 0x69, 0x6e, 0x6f,\n\t0xd2, 0x82, 0x70, 0x86, 0x62, 0xd3, 0xdd, 0x76, 0xe3, 0xf6, 0x67, 0x49, 0x35, 0x5a, 0x21, 0x91,\n\t0x13, 0x7f, 0x4e, 0x5c, 0x86, 0x15, 0x55, 0x74, 0x0d, 0xfa, 0x22, 0x27, 0xd8, 0x24, 0x91, 0x38,\n\t0x8f, 0x33, 0xcf, 0x4d, 0x5e, 0x13, 0xd3, 0x1d, 0x49, 0xbc, 0x2a, 0x89, 0x6f, 0xa9, 0x35, 0x56,\n\t0x15, 0x0b, 0x12, 0xf6, 0x7f, 0xe8, 0x87, 0x53, 0xf3, 0x95, 0xe5, 0x9c, 0x75, 0x75, 0x1e, 0xfa,\n\t0x6a, 0x81, 0xbb, 0x43, 0x02, 0x31, 0xce, 0x8a, 0xca, 0x02, 0x2b, 0xc5, 0x02, 0x8a, 0x2e, 0xc3,\n\t0x30, 0xbf, 0x1f, 0xaf, 0x3a, 0x5e, 0x2d, 0x3e, 0x1e, 0x05, 0xf6, 0xf0, 0x4d, 0x0d, 0x86, 0x0d,\n\t0xcc, 0x43, 0x2e, 0xaa, 0xf3, 0x89, 0xcd, 0x98, 0x77, 0xf7, 0x7e, 0xd1, 0x82, 0x71, 0xde, 0xcc,\n\t0x6c, 0x14, 0x05, 0xee, 0xed, 0x56, 0x44, 0xc2, 0xa9, 0x5e, 0x76, 0xd2, 0xcd, 0x67, 0x8d, 0x56,\n\t0xee, 0x08, 0xcc, 0xdc, 0x4c, 0x50, 0xe1, 0x87, 0xe0, 0x94, 0x68, 0x77, 0x3c, 0x09, 0xc6, 0xa9,\n\t0x66, 0xd1, 0x8f, 0x58, 0x30, 0x5d, 0xf5, 0xbd, 0x28, 0xf0, 0xeb, 0x75, 0x12, 0x94, 0x5b, 0xb7,\n\t0xeb, 0x6e, 0xb8, 0xc5, 0xd7, 0x29, 0x26, 0x1b, 0xec, 0x24, 0xc8, 0x99, 0x43, 0x85, 0x24, 0xe6,\n\t0xf0, 0xec, 0xfe, 0x5e, 0x69, 0x7a, 0x3e, 0x97, 0x14, 0x6e, 0xd3, 0x0c, 0xda, 0x06, 0x44, 0x6f,\n\t0xf6, 0x4a, 0xe4, 0x6c, 0x92, 0xb8, 0xf1, 0xfe, 0xee, 0x1b, 0x3f, 0xb1, 0xbf, 0x57, 0x42, 0xab,\n\t0x29, 0x12, 0x38, 0x83, 0x2c, 0x7a, 0x17, 0x8e, 0xd1, 0xd2, 0xd4, 0xb7, 0x0e, 0x74, 0xdf, 0xdc,\n\t0xd4, 0xfe, 0x5e, 0xe9, 0xd8, 0x6a, 0x06, 0x11, 0x9c, 0x49, 0x1a, 0xfd, 0x90, 0x05, 0xa7, 0xe2,\n\t0xcf, 0x5f, 0xbc, 0xdb, 0x74, 0xbc, 0x5a, 0xdc, 0xf0, 0x60, 0xf7, 0x0d, 0xd3, 0x33, 0xf9, 0xd4,\n\t0x7c, 0x1e, 0x25, 0x9c, 0xdf, 0x08, 0xf2, 0x60, 0x92, 0x76, 0x2d, 0xd9, 0x36, 0x74, 0xdf, 0xf6,\n\t0xc9, 0xfd, 0xbd, 0xd2, 0xe4, 0x6a, 0x9a, 0x06, 0xce, 0x22, 0x3c, 0x3d, 0x0f, 0xc7, 0x33, 0x57,\n\t0x27, 0x1a, 0x87, 0xe2, 0x36, 0xe1, 0x4c, 0xe0, 0x20, 0xa6, 0x3f, 0xd1, 0x31, 0xe8, 0xdd, 0x71,\n\t0xea, 0x2d, 0xb1, 0x31, 0x31, 0xff, 0xf3, 0x4a, 0xe1, 0xb2, 0x65, 0xff, 0x6f, 0x45, 0x18, 0x9b,\n\t0xaf, 0x2c, 0xdf, 0xd7, 0xae, 0xd7, 0xaf, 0xbd, 0x42, 0xdb, 0x6b, 0x2f, 0xbe, 0x44, 0x8b, 0xb9,\n\t0x97, 0xe8, 0x0f, 0x66, 0x6c, 0xd9, 0x1e, 0xb6, 0x65, 0x3f, 0x9a, 0xb3, 0x65, 0x1f, 0xf0, 0x46,\n\t0xdd, 0xc9, 0x59, 0xb5, 0xbd, 0x6c, 0x02, 0x33, 0x39, 0x24, 0xc6, 0xfb, 0x25, 0x8f, 0xda, 0x43,\n\t0x2e, 0xdd, 0x07, 0x33, 0x8f, 0x55, 0x18, 0x9e, 0x77, 0x9a, 0xce, 0x6d, 0xb7, 0xee, 0x46, 0x2e,\n\t0x09, 0xd1, 0x93, 0x50, 0x74, 0x6a, 0x35, 0xc6, 0xdd, 0x0d, 0xce, 0x1d, 0xdf, 0xdf, 0x2b, 0x15,\n\t0x67, 0x6b, 0x94, 0xcd, 0x00, 0x85, 0xb5, 0x8b, 0x29, 0x06, 0x7a, 0x1a, 0x7a, 0x6a, 0x81, 0xdf,\n\t0x9c, 0x2a, 0x30, 0x4c, 0xba, 0xcb, 0x7b, 0x16, 0x02, 0xbf, 0x99, 0x40, 0x65, 0x38, 0xf6, 0x1f,\n\t0x17, 0xe0, 0xf4, 0x3c, 0x69, 0x6e, 0x2d, 0x55, 0x72, 0xee, 0x8b, 0x0b, 0x30, 0xd0, 0xf0, 0x3d,\n\t0x37, 0xf2, 0x83, 0x50, 0x34, 0xcd, 0x56, 0xc4, 0x8a, 0x28, 0xc3, 0x0a, 0x8a, 0xce, 0x41, 0x4f,\n\t0x33, 0x66, 0x62, 0x87, 0x25, 0x03, 0xcc, 0xd8, 0x57, 0x06, 0xa1, 0x18, 0xad, 0x90, 0x04, 0x62,\n\t0xc5, 0x28, 0x8c, 0xf5, 0x90, 0x04, 0x98, 0x41, 0x62, 0x4e, 0x80, 0xf2, 0x08, 0xe2, 0x46, 0x48,\n\t0x70, 0x02, 0x14, 0x82, 0x35, 0x2c, 0x54, 0x86, 0xc1, 0x30, 0x31, 0xb3, 0x5d, 0x6d, 0xcd, 0x11,\n\t0xc6, 0x2a, 0xa8, 0x99, 0x8c, 0x89, 0x18, 0x37, 0x58, 0x5f, 0x47, 0x56, 0xe1, 0x1b, 0x05, 0x40,\n\t0x7c, 0x08, 0xbf, 0xcb, 0x06, 0x6e, 0x3d, 0x3d, 0x70, 0xdd, 0x6f, 0x89, 0x07, 0x35, 0x7a, 0xff,\n\t0xd6, 0x82, 0xd3, 0xf3, 0xae, 0x57, 0x23, 0x41, 0xce, 0x02, 0x7c, 0x38, 0x4f, 0xf9, 0xc3, 0x31,\n\t0x29, 0xc6, 0x12, 0xeb, 0x79, 0x00, 0x4b, 0xcc, 0xfe, 0x47, 0x0b, 0x10, 0xff, 0xec, 0xf7, 0xdd,\n\t0xc7, 0xae, 0xa7, 0x3f, 0xf6, 0x01, 0x2c, 0x0b, 0xfb, 0x3a, 0x8c, 0xce, 0xd7, 0x5d, 0xe2, 0x45,\n\t0xcb, 0xe5, 0x79, 0xdf, 0xdb, 0x70, 0x37, 0xd1, 0x2b, 0x30, 0x1a, 0xb9, 0x0d, 0xe2, 0xb7, 0xa2,\n\t0x0a, 0xa9, 0xfa, 0x1e, 0x7b, 0xb9, 0x5a, 0x17, 0x7a, 0xe7, 0xd0, 0xfe, 0x5e, 0x69, 0x74, 0xcd,\n\t0x80, 0xe0, 0x04, 0xa6, 0xfd, 0xcb, 0xf4, 0xdc, 0xaa, 0xb7, 0xc2, 0x88, 0x04, 0x6b, 0x41, 0x2b,\n\t0x8c, 0xe6, 0x5a, 0x94, 0xf7, 0x2c, 0x07, 0x3e, 0xed, 0x8e, 0xeb, 0x7b, 0xe8, 0xb4, 0xf1, 0x1c,\n\t0x1f, 0x90, 0x4f, 0x71, 0xf1, 0xec, 0x9e, 0x01, 0x08, 0xdd, 0x4d, 0x8f, 0x04, 0xda, 0xf3, 0x61,\n\t0x94, 0x6d, 0x15, 0x55, 0x8a, 0x35, 0x0c, 0x54, 0x87, 0x91, 0xba, 0x73, 0x9b, 0xd4, 0x2b, 0xa4,\n\t0x4e, 0xaa, 0x91, 0x1f, 0x08, 0xf9, 0xc6, 0x0b, 0xdd, 0xbd, 0x03, 0xae, 0xeb, 0x55, 0xe7, 0x26,\n\t0xf6, 0xf7, 0x4a, 0x23, 0x46, 0x11, 0x36, 0x89, 0xd3, 0xa3, 0xc3, 0x6f, 0xd2, 0xaf, 0x70, 0xea,\n\t0xfa, 0xe3, 0xf3, 0x86, 0x28, 0xc3, 0x0a, 0xaa, 0x8e, 0x8e, 0x9e, 0xbc, 0xa3, 0xc3, 0xfe, 0x6b,\n\t0xba, 0xd0, 0xfc, 0x46, 0xd3, 0xf7, 0x88, 0x17, 0xcd, 0xfb, 0x5e, 0x8d, 0x4b, 0xa6, 0x5e, 0x31,\n\t0x44, 0x27, 0xe7, 0x13, 0xa2, 0x93, 0x13, 0xe9, 0x1a, 0x9a, 0xf4, 0xe4, 0xa3, 0xd0, 0x17, 0x46,\n\t0x4e, 0xd4, 0x0a, 0xc5, 0xc0, 0x3d, 0x2a, 0x97, 0x5d, 0x85, 0x95, 0x1e, 0xec, 0x95, 0xc6, 0x54,\n\t0x35, 0x5e, 0x84, 0x45, 0x05, 0xf4, 0x14, 0xf4, 0x37, 0x48, 0x18, 0x3a, 0x9b, 0x92, 0x6d, 0x18,\n\t0x13, 0x75, 0xfb, 0x57, 0x78, 0x31, 0x96, 0x70, 0xf4, 0x18, 0xf4, 0x92, 0x20, 0xf0, 0x03, 0xf1,\n\t0x6d, 0x23, 0x02, 0xb1, 0x77, 0x91, 0x16, 0x62, 0x0e, 0xb3, 0xff, 0x0f, 0x0b, 0xc6, 0x54, 0x5f,\n\t0x79, 0x5b, 0x47, 0xf0, 0x5c, 0x7b, 0x1b, 0xa0, 0x2a, 0x3f, 0x30, 0x64, 0xd7, 0xec, 0xd0, 0xf3,\n\t0xe7, 0x33, 0x39, 0x9a, 0xd4, 0x30, 0xc6, 0x94, 0x55, 0x51, 0x88, 0x35, 0x6a, 0xf6, 0x1f, 0x58,\n\t0x30, 0x99, 0xf8, 0xa2, 0xeb, 0x6e, 0x18, 0xa1, 0x77, 0x52, 0x5f, 0x35, 0xd3, 0xe5, 0xe2, 0x73,\n\t0x43, 0xfe, 0x4d, 0x6a, 0xcf, 0xcb, 0x12, 0xed, 0x8b, 0xae, 0x42, 0xaf, 0x1b, 0x91, 0x86, 0xfc,\n\t0x98, 0xc7, 0xda, 0x7e, 0x0c, 0xef, 0x55, 0x3c, 0x23, 0xcb, 0xb4, 0x26, 0xe6, 0x04, 0xec, 0x3f,\n\t0x2e, 0xc2, 0x20, 0xdf, 0xdf, 0x2b, 0x4e, 0xf3, 0x08, 0xe6, 0xe2, 0x19, 0x18, 0x74, 0x1b, 0x8d,\n\t0x56, 0xe4, 0xdc, 0x16, 0xf7, 0xde, 0x00, 0x3f, 0x83, 0x96, 0x65, 0x21, 0x8e, 0xe1, 0x68, 0x19,\n\t0x7a, 0x58, 0x57, 0xf8, 0x57, 0x3e, 0x99, 0xfd, 0x95, 0xa2, 0xef, 0x33, 0x0b, 0x4e, 0xe4, 0x70,\n\t0x96, 0x53, 0xed, 0x2b, 0x5a, 0x84, 0x19, 0x09, 0xe4, 0x00, 0xdc, 0x76, 0x3d, 0x27, 0xd8, 0xa5,\n\t0x65, 0x53, 0x45, 0x46, 0xf0, 0xb9, 0xf6, 0x04, 0xe7, 0x14, 0x3e, 0x27, 0xab, 0x3e, 0x2c, 0x06,\n\t0x60, 0x8d, 0xe8, 0xf4, 0xcb, 0x30, 0xa8, 0x90, 0x0f, 0xc3, 0x39, 0x4e, 0x7f, 0x0c, 0xc6, 0x12,\n\t0x6d, 0x75, 0xaa, 0x3e, 0xac, 0x33, 0x9e, 0xbf, 0xc7, 0x8e, 0x0c, 0xd1, 0xeb, 0x45, 0x6f, 0x47,\n\t0xdc, 0x4d, 0xf7, 0xe0, 0x58, 0x3d, 0xe3, 0xc8, 0x17, 0xf3, 0xda, 0xfd, 0x15, 0x71, 0x5a, 0x7c,\n\t0xf6, 0xb1, 0x2c, 0x28, 0xce, 0x6c, 0xc3, 0x38, 0x11, 0x0b, 0xed, 0x4e, 0x44, 0x7a, 0xde, 0x1d,\n\t0x53, 0x9d, 0xbf, 0x46, 0x76, 0xd5, 0xa1, 0xfa, 0x9d, 0xec, 0xfe, 0x19, 0x3e, 0xfa, 0xfc, 0xb8,\n\t0x1c, 0x12, 0x04, 0x8a, 0xd7, 0xc8, 0x2e, 0x9f, 0x0a, 0xfd, 0xeb, 0x8a, 0x6d, 0xbf, 0xee, 0x6b,\n\t0x16, 0x8c, 0xa8, 0xaf, 0x3b, 0x82, 0x73, 0x61, 0xce, 0x3c, 0x17, 0xce, 0xb4, 0x5d, 0xe0, 0x39,\n\t0x27, 0xc2, 0x37, 0x0a, 0x70, 0x4a, 0xe1, 0xd0, 0x47, 0x14, 0xff, 0x23, 0x56, 0xd5, 0x45, 0x18,\n\t0xf4, 0x94, 0x38, 0xd1, 0x32, 0xe5, 0x78, 0xb1, 0x30, 0x31, 0xc6, 0xa1, 0x57, 0x9e, 0x17, 0x5f,\n\t0xda, 0xc3, 0xba, 0x9c, 0x5d, 0x5c, 0xee, 0x73, 0x50, 0x6c, 0xb9, 0x35, 0x71, 0xc1, 0x7c, 0x58,\n\t0x8e, 0xf6, 0xfa, 0xf2, 0xc2, 0xc1, 0x5e, 0xe9, 0xd1, 0x3c, 0x95, 0x13, 0xbd, 0xd9, 0xc2, 0x99,\n\t0xf5, 0xe5, 0x05, 0x4c, 0x2b, 0xa3, 0x59, 0x18, 0x93, 0x5a, 0xb5, 0x9b, 0x94, 0x2f, 0xf5, 0x3d,\n\t0x71, 0x0f, 0x29, 0x61, 0x39, 0x36, 0xc1, 0x38, 0x89, 0x8f, 0x16, 0x60, 0x7c, 0xbb, 0x75, 0x9b,\n\t0xd4, 0x49, 0xc4, 0x3f, 0xf8, 0x1a, 0xe1, 0xa2, 0xe4, 0xc1, 0xf8, 0x09, 0x7b, 0x2d, 0x01, 0xc7,\n\t0xa9, 0x1a, 0xf6, 0xbf, 0xb2, 0xfb, 0x40, 0x8c, 0x9e, 0xc6, 0xdf, 0x7c, 0x27, 0x97, 0x73, 0x37,\n\t0xab, 0xe2, 0x1a, 0xd9, 0x5d, 0xf3, 0x29, 0x1f, 0x92, 0xbd, 0x2a, 0x8c, 0x35, 0xdf, 0xd3, 0x76,\n\t0xcd, 0xff, 0x56, 0x01, 0x8e, 0xab, 0x11, 0x30, 0xb8, 0xe5, 0xef, 0xf6, 0x31, 0xb8, 0x04, 0x43,\n\t0x35, 0xb2, 0xe1, 0xb4, 0xea, 0x91, 0xd2, 0x6b, 0xf4, 0x72, 0x55, 0xdb, 0x42, 0x5c, 0x8c, 0x75,\n\t0x9c, 0x43, 0x0c, 0xdb, 0xaf, 0x8f, 0xb0, 0x8b, 0x38, 0x72, 0xe8, 0x1a, 0x57, 0xbb, 0xc6, 0xca,\n\t0xdd, 0x35, 0x8f, 0x41, 0xaf, 0xdb, 0xa0, 0x8c, 0x59, 0xc1, 0xe4, 0xb7, 0x96, 0x69, 0x21, 0xe6,\n\t0x30, 0xf4, 0x04, 0xf4, 0x57, 0xfd, 0x46, 0xc3, 0xf1, 0x6a, 0xec, 0xca, 0x1b, 0x9c, 0x1b, 0xa2,\n\t0xbc, 0xdb, 0x3c, 0x2f, 0xc2, 0x12, 0x46, 0x99, 0x6f, 0x27, 0xd8, 0xe4, 0xc2, 0x1e, 0xc1, 0x7c,\n\t0xcf, 0x06, 0x9b, 0x21, 0x66, 0xa5, 0xf4, 0xad, 0x7a, 0xc7, 0x0f, 0xb6, 0x5d, 0x6f, 0x73, 0xc1,\n\t0x0d, 0xc4, 0x96, 0x50, 0x77, 0xe1, 0x2d, 0x05, 0xc1, 0x1a, 0x16, 0x5a, 0x82, 0xde, 0xa6, 0x1f,\n\t0x44, 0xe1, 0x54, 0x1f, 0x1b, 0xee, 0x47, 0x73, 0x0e, 0x22, 0xfe, 0xb5, 0x65, 0x3f, 0x88, 0xe2,\n\t0x0f, 0xa0, 0xff, 0x42, 0xcc, 0xab, 0xa3, 0xeb, 0xd0, 0x4f, 0xbc, 0x9d, 0xa5, 0xc0, 0x6f, 0x4c,\n\t0x4d, 0xe6, 0x53, 0x5a, 0xe4, 0x28, 0x7c, 0x99, 0xc5, 0x3c, 0xaa, 0x28, 0xc6, 0x92, 0x04, 0xfa,\n\t0x28, 0x14, 0x89, 0xb7, 0x33, 0xd5, 0xcf, 0x28, 0x4d, 0xe7, 0x50, 0xba, 0xe9, 0x04, 0xf1, 0x99,\n\t0xbf, 0xe8, 0xed, 0x60, 0x5a, 0x07, 0x7d, 0x02, 0x06, 0xe5, 0x81, 0x11, 0x0a, 0x29, 0x6a, 0xe6,\n\t0x82, 0x95, 0xc7, 0x0c, 0x26, 0xef, 0xb6, 0xdc, 0x80, 0x34, 0x88, 0x17, 0x85, 0xf1, 0x09, 0x29,\n\t0xa1, 0x21, 0x8e, 0xa9, 0xa1, 0x2a, 0x0c, 0x07, 0x24, 0x74, 0xef, 0x91, 0xb2, 0x5f, 0x77, 0xab,\n\t0xbb, 0x53, 0x27, 0x59, 0xf7, 0x9e, 0x6a, 0x3b, 0x64, 0x58, 0xab, 0x10, 0x4b, 0xf9, 0xf5, 0x52,\n\t0x6c, 0x10, 0x45, 0x6f, 0xc1, 0x48, 0x40, 0xc2, 0xc8, 0x09, 0x22, 0xd1, 0xca, 0x94, 0xd2, 0xca,\n\t0x8d, 0x60, 0x1d, 0xc0, 0x9f, 0x13, 0x71, 0x33, 0x31, 0x04, 0x9b, 0x14, 0xd0, 0x27, 0xa4, 0xca,\n\t0x61, 0xc5, 0x6f, 0x79, 0x51, 0x38, 0x35, 0xc8, 0xfa, 0x9d, 0xa9, 0x9b, 0xbe, 0x19, 0xe3, 0x25,\n\t0x75, 0x12, 0xbc, 0x32, 0x36, 0x48, 0xa1, 0x4f, 0xc1, 0x08, 0xff, 0xcf, 0x55, 0xaa, 0xe1, 0xd4,\n\t0x71, 0x46, 0xfb, 0x5c, 0x3e, 0x6d, 0x8e, 0x38, 0x77, 0x5c, 0x10, 0x1f, 0xd1, 0x4b, 0x43, 0x6c,\n\t0x52, 0x43, 0x18, 0x46, 0xea, 0xee, 0x0e, 0xf1, 0x48, 0x18, 0x96, 0x03, 0xff, 0x36, 0x11, 0x12,\n\t0xe2, 0x53, 0xd9, 0x2a, 0x58, 0xff, 0x36, 0x11, 0x8f, 0x40, 0xbd, 0x0e, 0x36, 0x49, 0xa0, 0x75,\n\t0x18, 0xa5, 0x4f, 0x72, 0x37, 0x26, 0x3a, 0xd4, 0x89, 0x28, 0x7b, 0x38, 0x63, 0xa3, 0x12, 0x4e,\n\t0x10, 0x41, 0x37, 0x60, 0x98, 0x8d, 0x79, 0xab, 0xc9, 0x89, 0x9e, 0xe8, 0x44, 0x94, 0x19, 0x14,\n\t0x54, 0xb4, 0x2a, 0xd8, 0x20, 0x80, 0xde, 0x84, 0xc1, 0xba, 0xbb, 0x41, 0xaa, 0xbb, 0xd5, 0x3a,\n\t0x99, 0x1a, 0x66, 0xd4, 0x32, 0x0f, 0xc3, 0xeb, 0x12, 0x89, 0xf3, 0xe7, 0xea, 0x2f, 0x8e, 0xab,\n\t0xa3, 0x9b, 0x70, 0x22, 0x22, 0x41, 0xc3, 0xf5, 0x1c, 0x7a, 0x88, 0x89, 0x27, 0x21, 0xd3, 0x8c,\n\t0x8f, 0xb0, 0xd5, 0x75, 0x56, 0xcc, 0xc6, 0x89, 0xb5, 0x4c, 0x2c, 0x9c, 0x53, 0x1b, 0xdd, 0x85,\n\t0xa9, 0x0c, 0x08, 0x5f, 0xb7, 0xc7, 0x18, 0xe5, 0xd7, 0x04, 0xe5, 0xa9, 0xb5, 0x1c, 0xbc, 0x83,\n\t0x36, 0x30, 0x9c, 0x4b, 0x1d, 0xdd, 0x80, 0x31, 0x76, 0x72, 0x96, 0x5b, 0xf5, 0xba, 0x68, 0x70,\n\t0x94, 0x35, 0xf8, 0x84, 0xe4, 0x23, 0x96, 0x4d, 0xf0, 0xc1, 0x5e, 0x09, 0xe2, 0x7f, 0x38, 0x59,\n\t0x1b, 0xdd, 0x66, 0x4a, 0xd8, 0x56, 0xe0, 0x46, 0xbb, 0x74, 0x57, 0x91, 0xbb, 0xd1, 0xd4, 0x58,\n\t0x5b, 0x81, 0x94, 0x8e, 0xaa, 0x34, 0xb5, 0x7a, 0x21, 0x4e, 0x12, 0xa4, 0x57, 0x41, 0x18, 0xd5,\n\t0x5c, 0x6f, 0x6a, 0x9c, 0xbf, 0xa7, 0xe4, 0x49, 0x5a, 0xa1, 0x85, 0x98, 0xc3, 0x98, 0x02, 0x96,\n\t0xfe, 0xb8, 0x41, 0x6f, 0xdc, 0x09, 0x86, 0x18, 0x2b, 0x60, 0x25, 0x00, 0xc7, 0x38, 0x94, 0x09,\n\t0x8e, 0xa2, 0xdd, 0x29, 0xc4, 0x50, 0xd5, 0x81, 0xb8, 0xb6, 0xf6, 0x09, 0x4c, 0xcb, 0xed, 0xdb,\n\t0x30, 0xaa, 0x8e, 0x09, 0x36, 0x26, 0xa8, 0x04, 0xbd, 0x8c, 0xed, 0x13, 0xe2, 0xd3, 0x41, 0xda,\n\t0x05, 0xc6, 0x12, 0x62, 0x5e, 0xce, 0xba, 0xe0, 0xde, 0x23, 0x73, 0xbb, 0x11, 0xe1, 0xb2, 0x88,\n\t0xa2, 0xd6, 0x05, 0x09, 0xc0, 0x31, 0x8e, 0xfd, 0x1f, 0x39, 0xfb, 0x1c, 0xdf, 0x12, 0x5d, 0xdc,\n\t0x8b, 0xcf, 0xc2, 0x00, 0x33, 0xfc, 0xf0, 0x03, 0xae, 0x9d, 0xed, 0x8d, 0x19, 0xe6, 0xab, 0xa2,\n\t0x1c, 0x2b, 0x0c, 0xf4, 0x2a, 0x8c, 0x54, 0xf5, 0x06, 0xc4, 0xa5, 0xae, 0x8e, 0x11, 0xa3, 0x75,\n\t0x6c, 0xe2, 0xa2, 0xcb, 0x30, 0xc0, 0x6c, 0x9c, 0xaa, 0x7e, 0x5d, 0x70, 0x9b, 0x92, 0x33, 0x19,\n\t0x28, 0x8b, 0xf2, 0x03, 0xed, 0x37, 0x56, 0xd8, 0xe8, 0x3c, 0xf4, 0xd1, 0x2e, 0x2c, 0x97, 0xc5,\n\t0x75, 0xaa, 0x24, 0x81, 0x57, 0x59, 0x29, 0x16, 0x50, 0xfb, 0x0f, 0x2c, 0xc6, 0x4b, 0xa5, 0xcf,\n\t0x7c, 0x74, 0x95, 0x5d, 0x1a, 0xec, 0x06, 0xd1, 0xb4, 0xf0, 0x8f, 0x6b, 0x37, 0x81, 0x82, 0x1d,\n\t0x24, 0xfe, 0x63, 0xa3, 0x26, 0x7a, 0x3b, 0x79, 0x33, 0x70, 0x86, 0xe2, 0x45, 0x39, 0x04, 0xc9,\n\t0xdb, 0xe1, 0x91, 0xf8, 0x8a, 0xa3, 0xfd, 0x69, 0x77, 0x45, 0xd8, 0x3f, 0x55, 0xd0, 0x56, 0x49,\n\t0x25, 0x72, 0x22, 0x82, 0xca, 0xd0, 0x7f, 0xc7, 0x71, 0x23, 0xd7, 0xdb, 0x14, 0x7c, 0x5f, 0xfb,\n\t0x8b, 0x8e, 0x55, 0xba, 0xc5, 0x2b, 0x70, 0xee, 0x45, 0xfc, 0xc1, 0x92, 0x0c, 0xa5, 0x18, 0xb4,\n\t0x3c, 0x8f, 0x52, 0x2c, 0x74, 0x4b, 0x11, 0xf3, 0x0a, 0x9c, 0xa2, 0xf8, 0x83, 0x25, 0x19, 0xf4,\n\t0x0e, 0x80, 0x3c, 0x21, 0x48, 0x4d, 0xc8, 0x0e, 0x9f, 0xed, 0x4c, 0x74, 0x4d, 0xd5, 0xe1, 0xc2,\n\t0xc9, 0xf8, 0x3f, 0xd6, 0xe8, 0xd9, 0x91, 0x36, 0xa7, 0x7a, 0x67, 0xd0, 0x27, 0xe9, 0x16, 0x75,\n\t0x82, 0x88, 0xd4, 0x66, 0x23, 0x31, 0x38, 0x4f, 0x77, 0xf7, 0x38, 0x5c, 0x73, 0x1b, 0x44, 0xdf,\n\t0xce, 0x82, 0x08, 0x8e, 0xe9, 0xd9, 0xbf, 0x53, 0x84, 0xa9, 0xbc, 0xee, 0xd2, 0x4d, 0x43, 0xee,\n\t0xba, 0xd1, 0x3c, 0x65, 0x6b, 0x2d, 0x73, 0xd3, 0x2c, 0x8a, 0x72, 0xac, 0x30, 0xe8, 0xea, 0x0d,\n\t0xdd, 0x4d, 0xf9, 0xb6, 0xef, 0x8d, 0x57, 0x6f, 0x85, 0x95, 0x62, 0x01, 0xa5, 0x78, 0x01, 0x71,\n\t0x42, 0x61, 0x7c, 0xa7, 0xad, 0x72, 0xcc, 0x4a, 0xb1, 0x80, 0xea, 0x52, 0xc6, 0x9e, 0x0e, 0x52,\n\t0x46, 0x63, 0x88, 0x7a, 0x1f, 0xec, 0x10, 0xa1, 0x4f, 0x03, 0x6c, 0xb8, 0x9e, 0x1b, 0x6e, 0x31,\n\t0xea, 0x7d, 0x87, 0xa6, 0xae, 0x98, 0xe2, 0x25, 0x45, 0x05, 0x6b, 0x14, 0xd1, 0x4b, 0x30, 0xa4,\n\t0x0e, 0x90, 0xe5, 0x05, 0xa6, 0xfa, 0xd7, 0x4c, 0xa9, 0xe2, 0xd3, 0x74, 0x01, 0xeb, 0x78, 0xf6,\n\t0x67, 0x93, 0xeb, 0x45, 0xec, 0x00, 0x6d, 0x7c, 0xad, 0x6e, 0xc7, 0xb7, 0xd0, 0x7e, 0x7c, 0xed,\n\t0x9f, 0x19, 0x84, 0x31, 0xa3, 0xb1, 0x56, 0xd8, 0xc5, 0x99, 0x7b, 0x85, 0x5e, 0x40, 0x4e, 0x44,\n\t0xc4, 0xfe, 0xb3, 0x3b, 0x6f, 0x15, 0xfd, 0x92, 0xa2, 0x3b, 0x80, 0xd7, 0x47, 0x9f, 0x86, 0xc1,\n\t0xba, 0x13, 0x32, 0x89, 0x25, 0x11, 0xfb, 0xae, 0x1b, 0x62, 0xf1, 0x83, 0xd0, 0x09, 0x23, 0xed,\n\t0xd6, 0xe7, 0xb4, 0x63, 0x92, 0xf4, 0xa6, 0xa4, 0xfc, 0x95, 0xb4, 0xee, 0x54, 0x9d, 0xa0, 0x4c,\n\t0xd8, 0x2e, 0xe6, 0x30, 0x74, 0x99, 0x1d, 0xad, 0x74, 0x55, 0xcc, 0x53, 0x6e, 0x94, 0x2d, 0xb3,\n\t0x5e, 0x83, 0xc9, 0x56, 0x30, 0x6c, 0x60, 0xc6, 0x6f, 0xb2, 0xbe, 0x36, 0x6f, 0xb2, 0xa7, 0xa0,\n\t0x9f, 0xfd, 0x50, 0x2b, 0x40, 0xcd, 0xc6, 0x32, 0x2f, 0xc6, 0x12, 0x9e, 0x5c, 0x30, 0x03, 0xdd,\n\t0x2d, 0x18, 0xfa, 0xea, 0x13, 0x8b, 0x9a, 0x99, 0x5d, 0x0c, 0xf0, 0x53, 0x4e, 0x2c, 0x79, 0x2c,\n\t0x61, 0xe8, 0x57, 0x2c, 0x40, 0x4e, 0x9d, 0xbe, 0x96, 0x69, 0xb1, 0x7a, 0xdc, 0x00, 0x63, 0xb5,\n\t0x5f, 0xed, 0x38, 0xec, 0xad, 0x70, 0x66, 0x36, 0x55, 0x9b, 0x4b, 0x4a, 0x5f, 0x11, 0x5d, 0x44,\n\t0x69, 0x04, 0xfd, 0x32, 0xba, 0xee, 0x86, 0xd1, 0xe7, 0xff, 0x26, 0x71, 0x39, 0x65, 0x74, 0x09,\n\t0xad, 0xeb, 0x8f, 0xaf, 0xa1, 0x43, 0x3e, 0xbe, 0x46, 0x72, 0x1f, 0x5e, 0xdf, 0x9f, 0x78, 0xc0,\n\t0x0c, 0xb3, 0x2f, 0x7f, 0xa2, 0xc3, 0x03, 0x46, 0x88, 0xd3, 0xbb, 0x79, 0xc6, 0x94, 0x85, 0x1e,\n\t0x78, 0x84, 0x75, 0xb9, 0xfd, 0x23, 0x78, 0x3d, 0x24, 0xc1, 0xdc, 0x29, 0xa9, 0x26, 0x3e, 0xd0,\n\t0x79, 0x0f, 0x4d, 0x6f, 0xfc, 0x43, 0x16, 0x4c, 0xa5, 0x07, 0x88, 0x77, 0x69, 0x6a, 0x94, 0xf5,\n\t0xdf, 0x6e, 0x37, 0x32, 0xa2, 0xf3, 0xd2, 0xdc, 0x75, 0x6a, 0x36, 0x87, 0x16, 0xce, 0x6d, 0x65,\n\t0xba, 0x05, 0x27, 0x73, 0xe6, 0x3d, 0x43, 0x6a, 0xbd, 0xa0, 0x4b, 0xad, 0x3b, 0xc8, 0x3a, 0x67,\n\t0xe4, 0xcc, 0xcc, 0xbc, 0xd5, 0x72, 0xbc, 0xc8, 0x8d, 0x76, 0x75, 0x29, 0xb7, 0x07, 0xe6, 0x80,\n\t0xa0, 0x4f, 0x41, 0x6f, 0xdd, 0xf5, 0x5a, 0x77, 0xc5, 0x4d, 0x79, 0x3e, 0xfb, 0x11, 0xe3, 0xb5,\n\t0xee, 0x9a, 0x43, 0x5c, 0xa2, 0x1b, 0x92, 0x95, 0x1f, 0xec, 0x95, 0x50, 0x1a, 0x01, 0x73, 0xaa,\n\t0xf6, 0xd3, 0x30, 0xba, 0xe0, 0x90, 0x86, 0xef, 0x2d, 0x7a, 0xb5, 0xa6, 0xef, 0x7a, 0x11, 0x9a,\n\t0x82, 0x1e, 0xc6, 0x22, 0xf2, 0x0b, 0xb2, 0x87, 0x0e, 0x21, 0x66, 0x25, 0xf6, 0x26, 0x1c, 0x5f,\n\t0xf0, 0xef, 0x78, 0x77, 0x9c, 0xa0, 0x36, 0x5b, 0x5e, 0xd6, 0xa4, 0x7e, 0xab, 0x52, 0xea, 0x64,\n\t0xe5, 0xbf, 0xe9, 0xb5, 0x9a, 0x7c, 0x29, 0x2d, 0xb9, 0x75, 0x92, 0x23, 0x9b, 0xfd, 0x99, 0x82,\n\t0xd1, 0x52, 0x8c, 0xaf, 0x34, 0x8b, 0x56, 0xae, 0x51, 0xc2, 0x5b, 0x30, 0xb0, 0xe1, 0x92, 0x7a,\n\t0x0d, 0x93, 0x0d, 0x31, 0x1b, 0x4f, 0xe6, 0x9b, 0x2d, 0x2e, 0x51, 0x4c, 0xa5, 0x02, 0x65, 0x32,\n\t0xab, 0x25, 0x51, 0x19, 0x2b, 0x32, 0x68, 0x1b, 0xc6, 0xe5, 0x9c, 0x49, 0xa8, 0x38, 0xb5, 0x9f,\n\t0x6a, 0xb7, 0x08, 0x4d, 0xe2, 0xcc, 0x84, 0x1b, 0x27, 0xc8, 0xe0, 0x14, 0x61, 0x74, 0x1a, 0x7a,\n\t0x1a, 0x94, 0x3f, 0xe9, 0x61, 0xc3, 0xcf, 0x84, 0x54, 0x4c, 0xde, 0xc6, 0x4a, 0xed, 0x9f, 0xb3,\n\t0xe0, 0x64, 0x6a, 0x64, 0x84, 0xdc, 0xf1, 0x01, 0xcf, 0x42, 0x52, 0x0e, 0x58, 0xe8, 0x2c, 0x07,\n\t0xb4, 0xff, 0x3b, 0x0b, 0x8e, 0x2d, 0x36, 0x9a, 0xd1, 0xee, 0x82, 0x6b, 0x5a, 0x10, 0xbc, 0x0c,\n\t0x7d, 0x0d, 0x52, 0x73, 0x5b, 0x0d, 0x31, 0x73, 0x25, 0x79, 0x87, 0xaf, 0xb0, 0x52, 0x7a, 0x0e,\n\t0x54, 0x22, 0x3f, 0x70, 0x36, 0x09, 0x2f, 0xc0, 0x02, 0x9d, 0x71, 0x42, 0xee, 0x3d, 0x72, 0xdd,\n\t0x6d, 0xb8, 0xd1, 0xfd, 0xed, 0x2e, 0xa1, 0xfc, 0x97, 0x44, 0x70, 0x4c, 0xcf, 0xfe, 0x96, 0x05,\n\t0x63, 0x72, 0xdd, 0xcf, 0xd6, 0x6a, 0x01, 0x09, 0x43, 0x34, 0x0d, 0x05, 0xb7, 0x29, 0x7a, 0x09,\n\t0xa2, 0x97, 0x85, 0xe5, 0x32, 0x2e, 0xb8, 0x4d, 0xf9, 0xe8, 0x62, 0x6c, 0x42, 0xd1, 0xb4, 0x83,\n\t0xb8, 0x2a, 0xca, 0xb1, 0xc2, 0x40, 0x17, 0x60, 0xc0, 0xf3, 0x6b, 0xfc, 0xdd, 0x22, 0x34, 0xe1,\n\t0x14, 0x73, 0x55, 0x94, 0x61, 0x05, 0x45, 0x65, 0x18, 0xe4, 0x56, 0xb2, 0xf1, 0xa2, 0xed, 0xca,\n\t0xd6, 0x96, 0x7d, 0xd9, 0x9a, 0xac, 0x89, 0x63, 0x22, 0xf6, 0x1f, 0x59, 0x30, 0x2c, 0xbf, 0xac,\n\t0xcb, 0x17, 0x25, 0xdd, 0x5a, 0xf1, 0x6b, 0x32, 0xde, 0x5a, 0xf4, 0x45, 0xc8, 0x20, 0xc6, 0x43,\n\t0xb0, 0x78, 0xa8, 0x87, 0xe0, 0x25, 0x18, 0x72, 0x9a, 0xcd, 0xb2, 0xf9, 0x8a, 0x64, 0x4b, 0x69,\n\t0x36, 0x2e, 0xc6, 0x3a, 0x8e, 0xfd, 0xb3, 0x05, 0x18, 0x95, 0x5f, 0x50, 0x69, 0xdd, 0x0e, 0x49,\n\t0x84, 0xd6, 0x60, 0xd0, 0xe1, 0xb3, 0x44, 0xe4, 0x22, 0x7f, 0x2c, 0x5b, 0xba, 0x69, 0x4c, 0x69,\n\t0xcc, 0x0e, 0xcf, 0xca, 0xda, 0x38, 0x26, 0x84, 0xea, 0x30, 0xe1, 0xf9, 0x11, 0x63, 0x8d, 0x14,\n\t0xbc, 0x9d, 0xc2, 0x39, 0x49, 0xfd, 0x94, 0xa0, 0x3e, 0xb1, 0x9a, 0xa4, 0x82, 0xd3, 0x84, 0xd1,\n\t0xa2, 0x94, 0x18, 0x17, 0xf3, 0x45, 0x7d, 0xfa, 0xc4, 0x65, 0x0b, 0x8c, 0xed, 0xdf, 0xb7, 0x60,\n\t0x50, 0xa2, 0x1d, 0x85, 0x6d, 0xc1, 0x0a, 0xf4, 0x87, 0x6c, 0x12, 0xe4, 0xd0, 0xd8, 0xed, 0x3a,\n\t0xce, 0xe7, 0x2b, 0xe6, 0xf8, 0xf8, 0xff, 0x10, 0x4b, 0x1a, 0x4c, 0x61, 0xa8, 0xba, 0xff, 0x3e,\n\t0x51, 0x18, 0xaa, 0xfe, 0xe4, 0x5c, 0x4a, 0x7f, 0xc7, 0xfa, 0xac, 0x49, 0xe0, 0xe9, 0xc3, 0xa4,\n\t0x19, 0x90, 0x0d, 0xf7, 0x6e, 0xf2, 0x61, 0x52, 0x66, 0xa5, 0x58, 0x40, 0xd1, 0x3b, 0x30, 0x5c,\n\t0x95, 0x9a, 0xa2, 0x78, 0x87, 0x9f, 0x6f, 0xab, 0xb5, 0x54, 0x0a, 0x6e, 0x2e, 0xe9, 0x9c, 0xd7,\n\t0xea, 0x63, 0x83, 0x9a, 0x69, 0x05, 0x56, 0xec, 0x64, 0x05, 0x16, 0xd3, 0xcd, 0xb7, 0x89, 0xfa,\n\t0x79, 0x0b, 0xfa, 0xb8, 0x86, 0xa0, 0x3b, 0x05, 0x8d, 0xa6, 0xef, 0x8f, 0xc7, 0xee, 0x26, 0x2d,\n\t0x14, 0x9c, 0x0d, 0x5a, 0x81, 0x41, 0xf6, 0x83, 0x69, 0x38, 0x8a, 0xf9, 0x3e, 0x63, 0xbc, 0x55,\n\t0xbd, 0x83, 0x37, 0x65, 0x35, 0x1c, 0x53, 0xb0, 0x7f, 0xba, 0x48, 0x4f, 0xb7, 0x18, 0xd5, 0xb8,\n\t0xf4, 0xad, 0x87, 0x77, 0xe9, 0x17, 0x1e, 0xd6, 0xa5, 0xbf, 0x09, 0x63, 0x55, 0xcd, 0x3a, 0x20,\n\t0x9e, 0xc9, 0x0b, 0x6d, 0x17, 0x89, 0x66, 0x48, 0xc0, 0x65, 0xa8, 0xf3, 0x26, 0x11, 0x9c, 0xa4,\n\t0x8a, 0x3e, 0x09, 0xc3, 0x7c, 0x9e, 0x45, 0x2b, 0xdc, 0x90, 0xee, 0x89, 0xfc, 0xf5, 0xa2, 0x37,\n\t0xc1, 0x65, 0xee, 0x5a, 0x75, 0x6c, 0x10, 0xb3, 0xff, 0xc9, 0x02, 0xb4, 0xd8, 0xdc, 0x22, 0x0d,\n\t0x12, 0x38, 0xf5, 0x58, 0xc9, 0xf7, 0x25, 0x0b, 0xa6, 0x48, 0xaa, 0x78, 0xde, 0x6f, 0x34, 0xc4,\n\t0x93, 0x3e, 0x47, 0xea, 0xb4, 0x98, 0x53, 0x27, 0x66, 0xeb, 0xf3, 0x30, 0x70, 0x6e, 0x7b, 0x68,\n\t0x05, 0x26, 0xf9, 0x2d, 0xa9, 0x00, 0x9a, 0xad, 0xdd, 0x23, 0x82, 0xf0, 0xe4, 0x5a, 0x1a, 0x05,\n\t0x67, 0xd5, 0xb3, 0x7f, 0x7f, 0x04, 0x72, 0x7b, 0xf1, 0x81, 0x76, 0xf3, 0x03, 0xed, 0xe6, 0x07,\n\t0xda, 0xcd, 0x0f, 0xb4, 0x9b, 0x1f, 0x68, 0x37, 0x3f, 0xd0, 0x6e, 0xbe, 0x4f, 0xb5, 0x9b, 0xff,\n\t0xa5, 0x05, 0xc7, 0xd5, 0xf5, 0x65, 0x3c, 0xd8, 0x3f, 0x07, 0x93, 0x7c, 0xbb, 0xcd, 0xd7, 0x1d,\n\t0xb7, 0xb1, 0x46, 0x1a, 0xcd, 0xba, 0x13, 0x49, 0x1b, 0xa6, 0x4b, 0x99, 0x2b, 0x37, 0xe1, 0x28,\n\t0x61, 0x54, 0xe4, 0x1e, 0x67, 0x19, 0x00, 0x9c, 0xd5, 0x8c, 0xfd, 0x3b, 0x03, 0xd0, 0xbb, 0xb8,\n\t0x43, 0xbc, 0xe8, 0x08, 0x9e, 0x36, 0x55, 0x18, 0x75, 0xbd, 0x1d, 0xbf, 0xbe, 0x43, 0x6a, 0x1c,\n\t0x7e, 0x98, 0x17, 0xf8, 0x09, 0x41, 0x7a, 0x74, 0xd9, 0x20, 0x81, 0x13, 0x24, 0x1f, 0x86, 0x8e,\n\t0xe8, 0x0a, 0xf4, 0xf1, 0xcb, 0x47, 0x28, 0x88, 0x32, 0xcf, 0x6c, 0x36, 0x88, 0xe2, 0x4a, 0x8d,\n\t0xf5, 0x57, 0xfc, 0x72, 0x13, 0xd5, 0xd1, 0x67, 0x61, 0x74, 0xc3, 0x0d, 0xc2, 0x68, 0xcd, 0x6d,\n\t0xd0, 0xab, 0xa1, 0xd1, 0xbc, 0x0f, 0x9d, 0x90, 0x1a, 0x87, 0x25, 0x83, 0x12, 0x4e, 0x50, 0x46,\n\t0x9b, 0x30, 0x52, 0x77, 0xf4, 0xa6, 0xfa, 0x0f, 0xdd, 0x94, 0xba, 0x1d, 0xae, 0xeb, 0x84, 0xb0,\n\t0x49, 0x97, 0x6e, 0xa7, 0x2a, 0x53, 0x6b, 0x0c, 0x30, 0x71, 0x86, 0xda, 0x4e, 0x5c, 0x9f, 0xc1,\n\t0x61, 0x94, 0x41, 0x63, 0xee, 0x06, 0x83, 0x26, 0x83, 0xa6, 0x39, 0x15, 0x7c, 0x06, 0x06, 0x09,\n\t0x1d, 0x42, 0x4a, 0x58, 0x5c, 0x30, 0x17, 0xbb, 0xeb, 0xeb, 0x8a, 0x5b, 0x0d, 0x7c, 0x53, 0x1b,\n\t0xb7, 0x28, 0x29, 0xe1, 0x98, 0x28, 0x9a, 0x87, 0xbe, 0x90, 0x04, 0xae, 0x92, 0xf8, 0xb7, 0x99,\n\t0x46, 0x86, 0xc6, 0x5d, 0x1a, 0xf9, 0x6f, 0x2c, 0xaa, 0xd2, 0xe5, 0xe5, 0x30, 0x51, 0x2c, 0xbb,\n\t0x0c, 0xb4, 0xe5, 0x35, 0xcb, 0x4a, 0xb1, 0x80, 0xa2, 0x37, 0xa1, 0x3f, 0x20, 0x75, 0xa6, 0xee,\n\t0x1d, 0xe9, 0x7e, 0x91, 0x73, 0xed, 0x31, 0xaf, 0x87, 0x25, 0x01, 0x74, 0x0d, 0x50, 0x40, 0x28,\n\t0x83, 0xe7, 0x7a, 0x9b, 0xca, 0x08, 0x5f, 0x1c, 0xb4, 0x8a, 0x91, 0xc6, 0x31, 0x86, 0xf4, 0x66,\n\t0xc5, 0x19, 0xd5, 0xd0, 0x15, 0x98, 0x50, 0xa5, 0xcb, 0x5e, 0x18, 0x39, 0xf4, 0x80, 0x1b, 0x63,\n\t0xb4, 0x94, 0x7c, 0x05, 0x27, 0x11, 0x70, 0xba, 0x8e, 0xfd, 0x6b, 0x16, 0xf0, 0x71, 0x3e, 0x02,\n\t0xa9, 0xc2, 0xeb, 0xa6, 0x54, 0xe1, 0x54, 0xee, 0xcc, 0xe5, 0x48, 0x14, 0x7e, 0xcd, 0x82, 0x21,\n\t0x6d, 0x66, 0xe3, 0x35, 0x6b, 0xb5, 0x59, 0xb3, 0x2d, 0x18, 0xa7, 0x2b, 0xfd, 0xc6, 0xed, 0x90,\n\t0x04, 0x3b, 0xa4, 0xc6, 0x16, 0x66, 0xe1, 0xfe, 0x16, 0xa6, 0x32, 0xf8, 0xbd, 0x9e, 0x20, 0x88,\n\t0x53, 0x4d, 0xd8, 0x9f, 0x91, 0x5d, 0x55, 0xf6, 0xd1, 0x55, 0x35, 0xe7, 0x09, 0xfb, 0x68, 0x35,\n\t0xab, 0x38, 0xc6, 0xa1, 0x5b, 0x6d, 0xcb, 0x0f, 0xa3, 0xa4, 0x7d, 0xf4, 0x55, 0x3f, 0x8c, 0x30,\n\t0x83, 0xd8, 0x2f, 0x00, 0x2c, 0xde, 0x25, 0x55, 0xbe, 0x62, 0xf5, 0x47, 0x8f, 0x95, 0xff, 0xe8,\n\t0xb1, 0xff, 0xd2, 0x82, 0xd1, 0xa5, 0x79, 0xe3, 0xe6, 0x9a, 0x01, 0xe0, 0x2f, 0xb5, 0x5b, 0xb7,\n\t0x56, 0xa5, 0x91, 0x0e, 0xb7, 0x53, 0x50, 0xa5, 0x58, 0xc3, 0x40, 0xa7, 0xa0, 0x58, 0x6f, 0x79,\n\t0x42, 0xec, 0xd9, 0x4f, 0xaf, 0xc7, 0xeb, 0x2d, 0x0f, 0xd3, 0x32, 0xcd, 0x93, 0xad, 0xd8, 0xb5,\n\t0x27, 0x5b, 0xc7, 0x80, 0x3a, 0xa8, 0x04, 0xbd, 0x77, 0xee, 0xb8, 0x35, 0x1e, 0x27, 0x40, 0x18,\n\t0x10, 0xdd, 0xba, 0xb5, 0xbc, 0x10, 0x62, 0x5e, 0x6e, 0x7f, 0xb9, 0x08, 0xd3, 0x4b, 0x75, 0x72,\n\t0xf7, 0x3d, 0xc6, 0x4a, 0xe8, 0xd6, 0x0f, 0xef, 0x70, 0x02, 0xa4, 0xc3, 0xfa, 0x5a, 0x76, 0x1e,\n\t0x8f, 0x0d, 0xe8, 0xe7, 0xe6, 0xc1, 0x32, 0x72, 0x42, 0xa6, 0x52, 0x36, 0x7f, 0x40, 0x66, 0xb8,\n\t0x99, 0xb1, 0x50, 0xca, 0xaa, 0x0b, 0x53, 0x94, 0x62, 0x49, 0x7c, 0xfa, 0x15, 0x18, 0xd6, 0x31,\n\t0x0f, 0xe5, 0xf5, 0xfc, 0xc3, 0x45, 0x18, 0xa7, 0x3d, 0x78, 0xa8, 0x13, 0xb1, 0x9e, 0x9e, 0x88,\n\t0x07, 0xed, 0xf9, 0xda, 0x79, 0x36, 0xde, 0x49, 0xce, 0xc6, 0xa5, 0xbc, 0xd9, 0x38, 0xea, 0x39,\n\t0xf8, 0x11, 0x0b, 0x26, 0x97, 0xea, 0x7e, 0x75, 0x3b, 0xe1, 0x9d, 0xfa, 0x12, 0x0c, 0xd1, 0xe3,\n\t0x38, 0x34, 0x02, 0xb5, 0x18, 0xa1, 0x7b, 0x04, 0x08, 0xeb, 0x78, 0x5a, 0xb5, 0xf5, 0xf5, 0xe5,\n\t0x85, 0xac, 0x88, 0x3f, 0x02, 0x84, 0x75, 0x3c, 0xfb, 0xcf, 0x2d, 0x38, 0x73, 0x65, 0x7e, 0x31,\n\t0x5e, 0x8a, 0xa9, 0xa0, 0x43, 0xe7, 0xa1, 0xaf, 0x59, 0xd3, 0xba, 0x12, 0x8b, 0x85, 0x17, 0x58,\n\t0x2f, 0x04, 0xf4, 0xfd, 0x12, 0xdf, 0x6b, 0x1d, 0xe0, 0x0a, 0x2e, 0xcf, 0x8b, 0x73, 0x57, 0x6a,\n\t0x81, 0xac, 0x5c, 0x2d, 0xd0, 0x13, 0xd0, 0x4f, 0xef, 0x05, 0xb7, 0x2a, 0xfb, 0xcd, 0xcd, 0x2e,\n\t0x78, 0x11, 0x96, 0x30, 0xfb, 0x57, 0x2d, 0x98, 0xbc, 0xe2, 0x46, 0xf4, 0xd2, 0x4e, 0x46, 0xd5,\n\t0xa1, 0xb7, 0x76, 0xe8, 0x46, 0x7e, 0xb0, 0x9b, 0x8c, 0xaa, 0x83, 0x15, 0x04, 0x6b, 0x58, 0xfc,\n\t0x83, 0x76, 0x5c, 0xe6, 0xef, 0x52, 0x30, 0xf5, 0x6e, 0x58, 0x94, 0x63, 0x85, 0x41, 0xc7, 0xab,\n\t0xe6, 0x06, 0x4c, 0x64, 0xb9, 0x2b, 0x0e, 0x6e, 0x35, 0x5e, 0x0b, 0x12, 0x80, 0x63, 0x1c, 0xfb,\n\t0x1f, 0x2c, 0x28, 0x5d, 0xe1, 0x5e, 0xbb, 0x1b, 0x61, 0xce, 0xa1, 0xfb, 0x02, 0x0c, 0x12, 0xa9,\n\t0x20, 0x10, 0xbd, 0x56, 0x8c, 0xa8, 0xd2, 0x1c, 0xf0, 0xe0, 0x3e, 0x0a, 0xaf, 0x0b, 0x17, 0xfa,\n\t0xc3, 0xf9, 0x40, 0x2f, 0x01, 0x22, 0x7a, 0x5b, 0x7a, 0xb4, 0x23, 0x16, 0x36, 0x65, 0x31, 0x05,\n\t0xc5, 0x19, 0x35, 0xec, 0x9f, 0xb3, 0xe0, 0xb8, 0xfa, 0xe0, 0xf7, 0xdd, 0x67, 0xda, 0x5f, 0x2f,\n\t0xc0, 0xc8, 0xd5, 0xb5, 0xb5, 0xf2, 0x15, 0x12, 0x69, 0xab, 0xb2, 0xbd, 0xda, 0x1f, 0x6b, 0xda,\n\t0xcb, 0x76, 0x6f, 0xc4, 0x56, 0xe4, 0xd6, 0x67, 0x78, 0x0c, 0xbf, 0x99, 0x65, 0x2f, 0xba, 0x11,\n\t0x54, 0xa2, 0xc0, 0xf5, 0x36, 0x33, 0x57, 0xba, 0xe4, 0x59, 0x8a, 0x79, 0x3c, 0x0b, 0x7a, 0x01,\n\t0xfa, 0x58, 0x10, 0x41, 0x39, 0x09, 0x8f, 0xa8, 0x27, 0x16, 0x2b, 0x3d, 0xd8, 0x2b, 0x0d, 0xae,\n\t0xe3, 0x65, 0xfe, 0x07, 0x0b, 0x54, 0xb4, 0x0e, 0x43, 0x5b, 0x51, 0xd4, 0xbc, 0x4a, 0x9c, 0x1a,\n\t0x09, 0xe4, 0x29, 0x7b, 0x36, 0xeb, 0x94, 0xa5, 0x83, 0xc0, 0xd1, 0xe2, 0x83, 0x29, 0x2e, 0x0b,\n\t0xb1, 0x4e, 0xc7, 0xae, 0x00, 0xc4, 0xb0, 0x07, 0xa4, 0xb8, 0xb1, 0xd7, 0x60, 0x90, 0x7e, 0xee,\n\t0x6c, 0xdd, 0x75, 0xda, 0xab, 0xc6, 0x9f, 0x81, 0x41, 0xa9, 0xf8, 0x0e, 0x45, 0x88, 0x0f, 0x76,\n\t0x23, 0x49, 0xbd, 0x78, 0x88, 0x63, 0xb8, 0xfd, 0x38, 0x08, 0x0b, 0xe0, 0x76, 0x24, 0xed, 0x0d,\n\t0x38, 0xc6, 0x4c, 0x99, 0x9d, 0x68, 0xcb, 0x58, 0xa3, 0x9d, 0x17, 0xc3, 0xb3, 0xe2, 0x5d, 0xc7,\n\t0xbf, 0x6c, 0x4a, 0x73, 0x21, 0x1f, 0x96, 0x14, 0xe3, 0x37, 0x9e, 0xfd, 0xf7, 0x3d, 0xf0, 0xc8,\n\t0x72, 0x25, 0x3f, 0x36, 0xd5, 0x65, 0x18, 0xe6, 0xec, 0x22, 0x5d, 0x1a, 0x4e, 0x5d, 0xb4, 0xab,\n\t0x24, 0xa0, 0x6b, 0x1a, 0x0c, 0x1b, 0x98, 0xe8, 0x0c, 0x14, 0xdd, 0x77, 0xbd, 0xa4, 0x83, 0xe5,\n\t0xf2, 0x5b, 0xab, 0x98, 0x96, 0x53, 0x30, 0xe5, 0x3c, 0xf9, 0x91, 0xae, 0xc0, 0x8a, 0xfb, 0x7c,\n\t0x1d, 0x46, 0xdd, 0xb0, 0x1a, 0xba, 0xcb, 0x1e, 0xdd, 0xa7, 0xda, 0x4e, 0x57, 0x32, 0x07, 0xda,\n\t0x69, 0x05, 0xc5, 0x09, 0x6c, 0xed, 0x7e, 0xe9, 0xed, 0x9a, 0x7b, 0xed, 0x18, 0x19, 0x83, 0x1e,\n\t0xff, 0x4d, 0xf6, 0x75, 0x21, 0x13, 0xc1, 0x8b, 0xe3, 0x9f, 0x7f, 0x70, 0x88, 0x25, 0x8c, 0x3e,\n\t0xe8, 0xaa, 0x5b, 0x4e, 0x73, 0xb6, 0x15, 0x6d, 0x2d, 0xb8, 0x61, 0xd5, 0xdf, 0x21, 0xc1, 0x2e,\n\t0x7b, 0x8b, 0x0f, 0xc4, 0x0f, 0x3a, 0x05, 0x98, 0xbf, 0x3a, 0x5b, 0xa6, 0x98, 0x38, 0x5d, 0x07,\n\t0xcd, 0xc2, 0x98, 0x2c, 0xac, 0x90, 0x90, 0x5d, 0x01, 0x43, 0x8c, 0x8c, 0x72, 0x79, 0x14, 0xc5,\n\t0x8a, 0x48, 0x12, 0xdf, 0x64, 0x70, 0xe1, 0x41, 0x30, 0xb8, 0x2f, 0xc3, 0x88, 0xeb, 0xb9, 0x91,\n\t0xeb, 0x44, 0x3e, 0xd7, 0x1f, 0xf1, 0x67, 0x37, 0x13, 0x30, 0x2f, 0xeb, 0x00, 0x6c, 0xe2, 0xd9,\n\t0xff, 0x5f, 0x0f, 0x4c, 0xb0, 0x69, 0xfb, 0x60, 0x85, 0x7d, 0x2f, 0xad, 0xb0, 0xf5, 0xf4, 0x0a,\n\t0x7b, 0x10, 0x9c, 0xfb, 0x7d, 0x2f, 0xb3, 0x2f, 0x58, 0x30, 0xc1, 0x64, 0xdc, 0xc6, 0x32, 0xbb,\n\t0x08, 0x83, 0x81, 0xe1, 0x8d, 0x3a, 0xa8, 0x2b, 0xb5, 0xa4, 0x63, 0x69, 0x8c, 0x83, 0xde, 0x00,\n\t0x68, 0xc6, 0x32, 0xf4, 0x82, 0x11, 0x42, 0x14, 0x72, 0xc5, 0xe7, 0x5a, 0x1d, 0xfb, 0xb3, 0x30,\n\t0xa8, 0xdc, 0x4d, 0xa5, 0xbf, 0xb9, 0x95, 0xe3, 0x6f, 0xde, 0x99, 0x8d, 0x90, 0xb6, 0x71, 0xc5,\n\t0x4c, 0xdb, 0xb8, 0xaf, 0x5a, 0x10, 0x6b, 0x38, 0xd0, 0x5b, 0x30, 0xd8, 0xf4, 0x99, 0x41, 0x74,\n\t0x20, 0xbd, 0x0c, 0x1e, 0x6f, 0xab, 0x22, 0xe1, 0x71, 0x02, 0x03, 0x3e, 0x1d, 0x65, 0x59, 0x15,\n\t0xc7, 0x54, 0xd0, 0x35, 0xe8, 0x6f, 0x06, 0xa4, 0x12, 0xb1, 0x20, 0x56, 0xdd, 0x13, 0xe4, 0xcb,\n\t0x97, 0x57, 0xc4, 0x92, 0x82, 0xfd, 0x1b, 0x05, 0x18, 0x4f, 0xa2, 0xa2, 0xd7, 0xa0, 0x87, 0xdc,\n\t0x25, 0x55, 0xd1, 0xdf, 0x4c, 0x9e, 0x20, 0x96, 0x91, 0xf0, 0x01, 0xa0, 0xff, 0x31, 0xab, 0x85,\n\t0xae, 0x42, 0x3f, 0x65, 0x08, 0xae, 0xa8, 0x80, 0x8d, 0x8f, 0xe6, 0x31, 0x15, 0x8a, 0xb3, 0xe2,\n\t0x9d, 0x13, 0x45, 0x58, 0x56, 0x67, 0x06, 0x69, 0xd5, 0x66, 0x85, 0xbe, 0xb5, 0xa2, 0x76, 0x22,\n\t0x81, 0xb5, 0xf9, 0x32, 0x47, 0x12, 0xd4, 0xb8, 0x41, 0x9a, 0x2c, 0xc4, 0x31, 0x11, 0xf4, 0x06,\n\t0xf4, 0x86, 0x75, 0x42, 0x9a, 0xc2, 0xe2, 0x20, 0x53, 0xca, 0x59, 0xa1, 0x08, 0x82, 0x12, 0x93,\n\t0x8a, 0xb0, 0x02, 0xcc, 0x2b, 0xda, 0xbf, 0x65, 0x01, 0x70, 0x0b, 0x3e, 0xc7, 0xdb, 0x24, 0x47,\n\t0xa0, 0x18, 0x58, 0x80, 0x9e, 0xb0, 0x49, 0xaa, 0xed, 0xac, 0xfd, 0xe3, 0xfe, 0x54, 0x9a, 0xa4,\n\t0x1a, 0xaf, 0x59, 0xfa, 0x0f, 0xb3, 0xda, 0xf6, 0x8f, 0x02, 0x8c, 0xc6, 0x68, 0xcb, 0x11, 0x69,\n\t0xa0, 0xe7, 0x8c, 0x28, 0x37, 0xa7, 0x12, 0x51, 0x6e, 0x06, 0x19, 0xb6, 0x26, 0x83, 0xfe, 0x2c,\n\t0x14, 0x1b, 0xce, 0x5d, 0x21, 0x64, 0x7c, 0xa6, 0x7d, 0x37, 0x28, 0xfd, 0x99, 0x15, 0xe7, 0x2e,\n\t0x7f, 0x87, 0x3f, 0x23, 0xf7, 0xd8, 0x8a, 0x73, 0xb7, 0xa3, 0x45, 0x3a, 0x6d, 0x84, 0xb5, 0xe5,\n\t0x7a, 0xc2, 0x38, 0xad, 0xab, 0xb6, 0x5c, 0x2f, 0xd9, 0x96, 0xeb, 0x75, 0xd1, 0x96, 0xeb, 0xa1,\n\t0x7b, 0xd0, 0x2f, 0x6c, 0x47, 0x45, 0xf8, 0xbd, 0x8b, 0x5d, 0xb4, 0x27, 0x4c, 0x4f, 0x79, 0x9b,\n\t0x17, 0xa5, 0x9c, 0x41, 0x94, 0x76, 0x6c, 0x57, 0x36, 0x88, 0xfe, 0x2b, 0x0b, 0x46, 0xc5, 0x6f,\n\t0x4c, 0xde, 0x6d, 0x91, 0x30, 0x12, 0x7c, 0xf8, 0x47, 0xba, 0xef, 0x83, 0xa8, 0xc8, 0xbb, 0xf2,\n\t0x11, 0x79, 0x65, 0x9a, 0xc0, 0x8e, 0x3d, 0x4a, 0xf4, 0x02, 0xfd, 0x86, 0x05, 0xc7, 0x1a, 0xce,\n\t0x5d, 0xde, 0x22, 0x2f, 0xc3, 0x4e, 0xe4, 0xfa, 0xc2, 0x06, 0xe3, 0xb5, 0xee, 0xa6, 0x3f, 0x55,\n\t0x9d, 0x77, 0x52, 0x2a, 0x5c, 0x8f, 0x65, 0xa1, 0x74, 0xec, 0x6a, 0x66, 0xbf, 0xa6, 0x37, 0x60,\n\t0x40, 0xae, 0xb7, 0x87, 0x69, 0x18, 0xcf, 0xda, 0x11, 0x6b, 0xed, 0xa1, 0xb6, 0xf3, 0x59, 0x18,\n\t0xd6, 0xd7, 0xd8, 0x43, 0x6d, 0xeb, 0x5d, 0x98, 0xcc, 0x58, 0x4b, 0x0f, 0xb5, 0xc9, 0x3b, 0x70,\n\t0x2a, 0x77, 0x7d, 0x3c, 0x54, 0xc7, 0x86, 0xaf, 0x5b, 0xfa, 0x39, 0x78, 0x04, 0xda, 0x99, 0x79,\n\t0x53, 0x3b, 0x73, 0xb6, 0xfd, 0xce, 0xc9, 0x51, 0xd1, 0xbc, 0xa3, 0x77, 0x9a, 0x9e, 0xea, 0xe8,\n\t0x4d, 0xe8, 0xab, 0xd3, 0x12, 0x69, 0x81, 0x6c, 0x77, 0xde, 0x91, 0x31, 0x5f, 0xcc, 0xca, 0x43,\n\t0x2c, 0x28, 0xd8, 0x5f, 0xb1, 0x20, 0xc3, 0x35, 0x83, 0xf2, 0x49, 0x2d, 0xb7, 0xc6, 0x86, 0xa4,\n\t0x18, 0xf3, 0x49, 0x2a, 0x08, 0xcc, 0x19, 0x28, 0x6e, 0xba, 0x35, 0xe1, 0x59, 0xac, 0xc0, 0x57,\n\t0x28, 0x78, 0xd3, 0xad, 0xa1, 0x25, 0x40, 0x61, 0xab, 0xd9, 0xac, 0x33, 0xb3, 0x25, 0xa7, 0x7e,\n\t0x25, 0xf0, 0x5b, 0x4d, 0x6e, 0x6e, 0x5c, 0xe4, 0x42, 0xa2, 0x4a, 0x0a, 0x8a, 0x33, 0x6a, 0xd8,\n\t0xbf, 0x6b, 0x41, 0xcf, 0x11, 0x4c, 0x13, 0x36, 0xa7, 0xe9, 0xb9, 0x5c, 0xd2, 0x22, 0x6b, 0xc3,\n\t0x0c, 0x76, 0xee, 0x2c, 0xde, 0x8d, 0x88, 0x17, 0x32, 0x86, 0x23, 0x73, 0xd6, 0xf6, 0x2c, 0x98,\n\t0xbc, 0xee, 0x3b, 0xb5, 0x39, 0xa7, 0xee, 0x78, 0x55, 0x12, 0x2c, 0x7b, 0x9b, 0x87, 0xb2, 0xed,\n\t0x2f, 0x74, 0xb4, 0xed, 0xbf, 0x0c, 0x7d, 0x6e, 0x53, 0x0b, 0xfb, 0x7e, 0x8e, 0xce, 0xee, 0x72,\n\t0x59, 0x44, 0x7c, 0x47, 0x46, 0xe3, 0xac, 0x14, 0x0b, 0x7c, 0xba, 0x2c, 0xb9, 0x51, 0x5d, 0x4f,\n\t0xfe, 0xb2, 0xa4, 0x6f, 0x9d, 0x64, 0x38, 0x33, 0xc3, 0xfc, 0x7b, 0x0b, 0x8c, 0x26, 0x84, 0x07,\n\t0x23, 0x86, 0x7e, 0x97, 0x7f, 0xa9, 0x58, 0x9b, 0x4f, 0x66, 0xbf, 0x41, 0x52, 0x03, 0xa3, 0xf9,\n\t0xe6, 0xf1, 0x02, 0x2c, 0x09, 0xd9, 0x97, 0x21, 0x33, 0xfc, 0x4c, 0x67, 0xf9, 0x92, 0xfd, 0x09,\n\t0x98, 0x60, 0x35, 0x0f, 0x29, 0xbb, 0xb1, 0x13, 0x52, 0xf1, 0x8c, 0x08, 0xbe, 0xf6, 0xff, 0x6d,\n\t0x01, 0x5a, 0xf1, 0x6b, 0xee, 0xc6, 0xae, 0x20, 0xce, 0xbf, 0xff, 0x5d, 0x28, 0xf1, 0xc7, 0x71,\n\t0x32, 0xca, 0xed, 0x7c, 0xdd, 0x09, 0x43, 0x4d, 0x22, 0xff, 0xa4, 0x68, 0xb7, 0xb4, 0xd6, 0x1e,\n\t0x1d, 0x77, 0xa2, 0x87, 0xde, 0x4a, 0x04, 0x1d, 0xfc, 0x68, 0x2a, 0xe8, 0xe0, 0x93, 0x99, 0x76,\n\t0x31, 0xe9, 0xde, 0xcb, 0x60, 0x84, 0xf6, 0x17, 0x2d, 0x18, 0x5b, 0x4d, 0x44, 0x6d, 0x3d, 0xcf,\n\t0x8c, 0x04, 0x32, 0x34, 0x4d, 0x15, 0x56, 0x8a, 0x05, 0xf4, 0x81, 0x4b, 0x62, 0xff, 0xd5, 0x82,\n\t0x38, 0xdc, 0xd5, 0x11, 0xb0, 0xdc, 0xf3, 0x06, 0xcb, 0x9d, 0xf9, 0x7c, 0x51, 0xdd, 0xc9, 0xe3,\n\t0xb8, 0xd1, 0x35, 0x35, 0x27, 0x6d, 0x5e, 0x2e, 0x31, 0x19, 0xbe, 0xcf, 0x46, 0xcd, 0x89, 0x53,\n\t0xb3, 0xf1, 0xcd, 0x02, 0x20, 0x85, 0xdb, 0x75, 0xa0, 0xca, 0x74, 0x8d, 0x07, 0x13, 0xa8, 0x72,\n\t0x07, 0x10, 0x33, 0x73, 0x09, 0x1c, 0x2f, 0xe4, 0x64, 0x5d, 0x21, 0x7b, 0x3e, 0x9c, 0x0d, 0xcd,\n\t0xb4, 0xf4, 0x5c, 0xbd, 0x9e, 0xa2, 0x86, 0x33, 0x5a, 0xd0, 0xcc, 0x97, 0x7a, 0xbb, 0x35, 0x5f,\n\t0xea, 0xeb, 0xe0, 0x82, 0xfd, 0x35, 0x0b, 0x46, 0xd4, 0x30, 0xbd, 0x4f, 0x5c, 0x40, 0x54, 0x7f,\n\t0x72, 0xee, 0x95, 0xb2, 0xd6, 0x65, 0xc6, 0x0c, 0x7c, 0x1f, 0x73, 0xa5, 0x77, 0xea, 0xee, 0x3d,\n\t0xa2, 0xe2, 0x29, 0x97, 0x84, 0x6b, 0xbc, 0x28, 0x3d, 0xd8, 0x2b, 0x8d, 0xa8, 0x7f, 0x3c, 0x82,\n\t0x6b, 0x5c, 0xc5, 0xfe, 0x25, 0xba, 0xd9, 0xcd, 0xa5, 0x88, 0x5e, 0x82, 0xde, 0xe6, 0x96, 0x13,\n\t0x92, 0x84, 0xab, 0x5c, 0x6f, 0x99, 0x16, 0x1e, 0xec, 0x95, 0x46, 0x55, 0x05, 0x56, 0x82, 0x39,\n\t0x76, 0xf7, 0xe1, 0x3f, 0xd3, 0x8b, 0xb3, 0x63, 0xf8, 0xcf, 0x7f, 0xb2, 0xa0, 0x67, 0x95, 0xde,\n\t0x5e, 0x0f, 0xff, 0x08, 0x78, 0xdd, 0x38, 0x02, 0x4e, 0xe7, 0x65, 0x16, 0xca, 0xdd, 0xfd, 0x4b,\n\t0x89, 0xdd, 0x7f, 0x36, 0x97, 0x42, 0xfb, 0x8d, 0xdf, 0x80, 0x21, 0x96, 0xaf, 0x48, 0xb8, 0x05,\n\t0xbe, 0x60, 0x6c, 0xf8, 0x52, 0x62, 0xc3, 0x8f, 0x69, 0xa8, 0xda, 0x4e, 0x7f, 0x0a, 0xfa, 0x85,\n\t0x9f, 0x59, 0x32, 0x22, 0x81, 0xc0, 0xc5, 0x12, 0x6e, 0xff, 0x7c, 0x11, 0x8c, 0xfc, 0x48, 0xe8,\n\t0xf7, 0x2d, 0x98, 0x09, 0xb8, 0xfd, 0x79, 0x6d, 0xa1, 0x15, 0xb8, 0xde, 0x66, 0xa5, 0xba, 0x45,\n\t0x6a, 0xad, 0xba, 0xeb, 0x6d, 0x2e, 0x6f, 0x7a, 0xbe, 0x2a, 0x5e, 0xbc, 0x4b, 0xaa, 0x2d, 0xa6,\n\t0x1b, 0xee, 0x90, 0x8c, 0x49, 0xf9, 0x71, 0x3c, 0xbf, 0xbf, 0x57, 0x9a, 0xc1, 0x87, 0xa2, 0x8d,\n\t0x0f, 0xd9, 0x17, 0xf4, 0xe7, 0x16, 0x5c, 0xe4, 0x79, 0x7a, 0xba, 0xef, 0x7f, 0x1b, 0x09, 0x47,\n\t0x59, 0x92, 0x8a, 0x89, 0xac, 0x91, 0xa0, 0x31, 0xf7, 0xb2, 0x18, 0xd0, 0x8b, 0xe5, 0xc3, 0xb5,\n\t0x85, 0x0f, 0xdb, 0x39, 0xfb, 0x7f, 0x2e, 0xc2, 0x88, 0x08, 0x13, 0x29, 0xee, 0x80, 0x97, 0x8c,\n\t0x25, 0xf1, 0x68, 0x62, 0x49, 0x4c, 0x18, 0xc8, 0x0f, 0xe6, 0xf8, 0x0f, 0x61, 0x82, 0x1e, 0xce,\n\t0x57, 0x89, 0x13, 0x44, 0xb7, 0x89, 0xc3, 0xad, 0x12, 0x8b, 0x87, 0x3e, 0xfd, 0x95, 0x78, 0xfc,\n\t0x7a, 0x92, 0x18, 0x4e, 0xd3, 0xff, 0x5e, 0xba, 0x73, 0x3c, 0x18, 0x4f, 0x45, 0xfa, 0x7c, 0x1b,\n\t0x06, 0x95, 0x93, 0x94, 0x38, 0x74, 0xda, 0x07, 0xcc, 0x4d, 0x52, 0xe0, 0x42, 0xcf, 0xd8, 0x41,\n\t0x2f, 0x26, 0x67, 0xff, 0x66, 0xc1, 0x68, 0x90, 0x4f, 0xe2, 0x2a, 0x0c, 0x38, 0x21, 0x0b, 0xe2,\n\t0x5d, 0x6b, 0x27, 0x97, 0x4e, 0x35, 0xc3, 0x1c, 0xd5, 0x66, 0x45, 0x4d, 0xac, 0x68, 0xa0, 0xab,\n\t0xdc, 0xf6, 0x73, 0x87, 0xb4, 0x13, 0x4a, 0xa7, 0xa8, 0x81, 0xb4, 0x0e, 0xdd, 0x21, 0x58, 0xd4,\n\t0x47, 0x9f, 0xe2, 0xc6, 0xb9, 0xd7, 0x3c, 0xff, 0x8e, 0x77, 0xc5, 0xf7, 0x65, 0x48, 0xa0, 0xee,\n\t0x08, 0x4e, 0x48, 0x93, 0x5c, 0x55, 0x1d, 0x9b, 0xd4, 0xba, 0x0b, 0x9d, 0xfd, 0x39, 0x60, 0x79,\n\t0x49, 0xcc, 0x98, 0x04, 0x21, 0x22, 0x30, 0x26, 0x62, 0x90, 0xca, 0x32, 0x31, 0x76, 0x99, 0xcf,\n\t0x6f, 0xb3, 0x76, 0xac, 0xc7, 0xb9, 0x66, 0x92, 0xc0, 0x49, 0x9a, 0xf6, 0x16, 0x3f, 0x84, 0x97,\n\t0x88, 0x13, 0xb5, 0x02, 0x12, 0xa2, 0x8f, 0xc3, 0x54, 0xfa, 0x65, 0x2c, 0xd4, 0x21, 0x16, 0xe3,\n\t0x9e, 0x4f, 0xef, 0xef, 0x95, 0xa6, 0x2a, 0x39, 0x38, 0x38, 0xb7, 0xb6, 0xfd, 0x2b, 0x16, 0x30,\n\t0x4f, 0xf0, 0x23, 0xe0, 0x7c, 0x3e, 0x66, 0x72, 0x3e, 0x53, 0x79, 0xd3, 0x99, 0xc3, 0xf4, 0xbc,\n\t0xc8, 0xd7, 0x70, 0x39, 0xf0, 0xef, 0xee, 0x0a, 0xdb, 0xad, 0xce, 0xcf, 0x38, 0xfb, 0xcb, 0x16,\n\t0xb0, 0x24, 0x3e, 0x98, 0xbf, 0xda, 0xa5, 0x82, 0xa3, 0xb3, 0x59, 0xc2, 0xc7, 0x61, 0x60, 0x43,\n\t0x0c, 0x7f, 0x86, 0xd0, 0xc9, 0xe8, 0xb0, 0x49, 0x5b, 0x4e, 0x9a, 0xf0, 0xe8, 0x14, 0xff, 0xb0,\n\t0xa2, 0x66, 0xff, 0xf7, 0x16, 0x4c, 0xe7, 0x57, 0x43, 0xeb, 0x70, 0x32, 0x20, 0xd5, 0x56, 0x10,\n\t0xd2, 0x2d, 0x21, 0x1e, 0x40, 0xc2, 0x29, 0x8a, 0x4f, 0xf5, 0x23, 0xfb, 0x7b, 0xa5, 0x93, 0x38,\n\t0x1b, 0x05, 0xe7, 0xd5, 0x45, 0xaf, 0xc0, 0x68, 0x2b, 0xe4, 0x9c, 0x1f, 0x63, 0xba, 0x42, 0x11,\n\t0x29, 0x9a, 0xf9, 0x0d, 0xad, 0x1b, 0x10, 0x9c, 0xc0, 0xb4, 0x7f, 0x80, 0x2f, 0x47, 0x15, 0x2c,\n\t0xba, 0x01, 0x13, 0x9e, 0xf6, 0x9f, 0xde, 0x80, 0xf2, 0xa9, 0xff, 0x78, 0xa7, 0x5b, 0x9f, 0x5d,\n\t0x97, 0x9a, 0xaf, 0x7a, 0x82, 0x0c, 0x4e, 0x53, 0xb6, 0x7f, 0xc1, 0x82, 0x93, 0x3a, 0xa2, 0xe6,\n\t0x0e, 0xd7, 0x49, 0x97, 0xb7, 0x00, 0x03, 0x7e, 0x93, 0x04, 0x4e, 0xe4, 0x07, 0xe2, 0x9a, 0xbb,\n\t0x20, 0x57, 0xe8, 0x0d, 0x51, 0x7e, 0x20, 0x92, 0xd7, 0x48, 0xea, 0xb2, 0x1c, 0xab, 0x9a, 0xc8,\n\t0x86, 0x3e, 0x26, 0x40, 0x0c, 0x85, 0xe3, 0x23, 0x3b, 0xb4, 0x98, 0x7d, 0x4a, 0x88, 0x05, 0xc4,\n\t0xfe, 0x7b, 0x8b, 0xaf, 0x4f, 0xbd, 0xeb, 0xe8, 0x5d, 0x18, 0x6f, 0x38, 0x51, 0x75, 0x6b, 0xf1,\n\t0x6e, 0x33, 0xe0, 0x2a, 0x5a, 0x39, 0x4e, 0xcf, 0x74, 0x1a, 0x27, 0xed, 0x23, 0x63, 0x03, 0xe9,\n\t0x95, 0x04, 0x31, 0x9c, 0x22, 0x8f, 0x6e, 0xc3, 0x10, 0x2b, 0x63, 0x3e, 0xbd, 0x61, 0x3b, 0x5e,\n\t0x26, 0xaf, 0x35, 0x65, 0xe2, 0xb3, 0x12, 0xd3, 0xc1, 0x3a, 0x51, 0xfb, 0xab, 0x45, 0x7e, 0x68,\n\t0xb0, 0xb7, 0xc7, 0x53, 0xd0, 0xdf, 0xf4, 0x6b, 0xf3, 0xcb, 0x0b, 0x58, 0xcc, 0x82, 0xba, 0xf7,\n\t0xca, 0xbc, 0x18, 0x4b, 0x38, 0xba, 0x00, 0x03, 0xe2, 0xa7, 0x54, 0xa9, 0xb3, 0x3d, 0x22, 0xf0,\n\t0x42, 0xac, 0xa0, 0xe8, 0x79, 0x80, 0x66, 0xe0, 0xef, 0xb8, 0x35, 0x16, 0x89, 0xa9, 0x68, 0x5a,\n\t0xe7, 0x95, 0x15, 0x04, 0x6b, 0x58, 0xe8, 0x55, 0x18, 0x69, 0x79, 0x21, 0xe7, 0x9f, 0xb4, 0x78,\n\t0xf7, 0xca, 0x6e, 0x6c, 0x5d, 0x07, 0x62, 0x13, 0x17, 0xcd, 0x42, 0x5f, 0xe4, 0x30, 0x6b, 0xb3,\n\t0xde, 0x7c, 0x23, 0xfa, 0x35, 0x8a, 0xa1, 0x67, 0x96, 0xa3, 0x15, 0xb0, 0xa8, 0x88, 0xde, 0x96,\n\t0xee, 0xf5, 0xfc, 0x26, 0x12, 0xde, 0x2b, 0xdd, 0xdd, 0x5a, 0x9a, 0x73, 0xbd, 0xf0, 0x8a, 0x31,\n\t0x68, 0xa1, 0x57, 0x00, 0xc8, 0xdd, 0x88, 0x04, 0x9e, 0x53, 0x57, 0x36, 0xa2, 0x8a, 0x91, 0x59,\n\t0xf0, 0x57, 0xfd, 0x68, 0x3d, 0x24, 0x8b, 0x0a, 0x03, 0x6b, 0xd8, 0xf6, 0x8f, 0x0e, 0x01, 0xc4,\n\t0x0f, 0x0d, 0x74, 0x0f, 0x06, 0xaa, 0x4e, 0xd3, 0xa9, 0xf2, 0xb4, 0xa9, 0xc5, 0x3c, 0xaf, 0xe7,\n\t0xb8, 0xc6, 0xcc, 0xbc, 0x40, 0xe7, 0xca, 0x1b, 0x19, 0x32, 0x7c, 0x40, 0x16, 0x77, 0x54, 0xd8,\n\t0xa8, 0xf6, 0xd0, 0x17, 0x2c, 0x18, 0x12, 0x91, 0x8e, 0xd8, 0x0c, 0x15, 0xf2, 0xf5, 0x6d, 0x5a,\n\t0xfb, 0xb3, 0x71, 0x0d, 0xde, 0x85, 0x17, 0xe4, 0x0a, 0xd5, 0x20, 0x1d, 0x7b, 0xa1, 0x37, 0x8c,\n\t0x3e, 0x2c, 0xdf, 0xb6, 0x45, 0x63, 0x28, 0xd5, 0xdb, 0x76, 0x90, 0x5d, 0x35, 0xfa, 0xb3, 0x76,\n\t0xdd, 0x78, 0xd6, 0xf6, 0xe4, 0xfb, 0x0f, 0x1b, 0xfc, 0x76, 0xa7, 0x17, 0x2d, 0x2a, 0xeb, 0xb1,\n\t0x44, 0x7a, 0xf3, 0x9d, 0x5e, 0xb5, 0x87, 0x5d, 0x87, 0x38, 0x22, 0x9f, 0x85, 0xb1, 0x9a, 0xc9,\n\t0xb5, 0x88, 0x95, 0xf8, 0x64, 0x1e, 0xdd, 0x04, 0x93, 0x13, 0xf3, 0x29, 0x09, 0x00, 0x4e, 0x12,\n\t0x46, 0x65, 0x1e, 0x5a, 0x66, 0xd9, 0xdb, 0xf0, 0x85, 0x07, 0x95, 0x9d, 0x3b, 0x97, 0xbb, 0x61,\n\t0x44, 0x1a, 0x14, 0x33, 0x66, 0x12, 0x56, 0x45, 0x5d, 0xac, 0xa8, 0xa0, 0x37, 0xa1, 0x8f, 0x79,\n\t0x3d, 0x86, 0x53, 0x03, 0xf9, 0x6a, 0x0d, 0x33, 0x12, 0x6a, 0xbc, 0x21, 0xd9, 0xdf, 0x10, 0x0b,\n\t0x0a, 0xe8, 0xaa, 0xf4, 0x29, 0x0e, 0x97, 0xbd, 0xf5, 0x90, 0x30, 0x9f, 0xe2, 0xc1, 0xb9, 0xc7,\n\t0x63, 0x77, 0x61, 0x5e, 0x9e, 0x99, 0x7f, 0xd6, 0xa8, 0x49, 0xd9, 0x3e, 0xf1, 0x5f, 0xa6, 0xb5,\n\t0x15, 0x71, 0xdb, 0x32, 0xbb, 0x67, 0xa6, 0xbe, 0x8d, 0x87, 0xf3, 0xa6, 0x49, 0x02, 0x27, 0x69,\n\t0x52, 0x16, 0x9a, 0xef, 0x7a, 0xe1, 0x83, 0xd5, 0xe9, 0xec, 0xe0, 0x92, 0x03, 0x76, 0x1b, 0xf1,\n\t0x12, 0x2c, 0xea, 0x23, 0x17, 0xc6, 0x02, 0x83, 0xbd, 0x90, 0xe1, 0xd6, 0xce, 0x77, 0xc7, 0xc4,\n\t0x68, 0x81, 0xfc, 0x4d, 0x32, 0x38, 0x49, 0x17, 0xbd, 0xa9, 0x31, 0x4a, 0x23, 0xed, 0x5f, 0xfe,\n\t0x9d, 0x58, 0xa3, 0xe9, 0x6d, 0x18, 0x31, 0x0e, 0x9b, 0x87, 0xaa, 0x82, 0xf4, 0x60, 0x3c, 0x79,\n\t0xb2, 0x3c, 0x54, 0xcd, 0xe3, 0xdf, 0xf6, 0xc0, 0xa8, 0xb9, 0x13, 0xd0, 0x45, 0x18, 0x14, 0x44,\n\t0x54, 0x46, 0x2b, 0xb5, 0xb9, 0x57, 0x24, 0x00, 0xc7, 0x38, 0x2c, 0x91, 0x19, 0xab, 0xae, 0xf9,\n\t0x0a, 0xc4, 0x89, 0xcc, 0x14, 0x04, 0x6b, 0x58, 0xf4, 0x01, 0x7b, 0xdb, 0xf7, 0x23, 0x75, 0x8f,\n\t0xaa, 0xed, 0x32, 0xc7, 0x4a, 0xb1, 0x80, 0xd2, 0xfb, 0x73, 0x9b, 0x04, 0x1e, 0xa9, 0x9b, 0x29,\n\t0x1d, 0xd4, 0xfd, 0x79, 0x4d, 0x07, 0x62, 0x13, 0x97, 0x72, 0x01, 0x7e, 0xc8, 0xf6, 0x9f, 0x78,\n\t0x26, 0xc7, 0xbe, 0x17, 0x15, 0x1e, 0x45, 0x42, 0xc2, 0xd1, 0x27, 0xe0, 0xa4, 0x0a, 0x9f, 0x28,\n\t0x56, 0x97, 0x6c, 0xb1, 0xcf, 0x90, 0x6a, 0x9d, 0x9c, 0xcf, 0x46, 0xc3, 0x79, 0xf5, 0xd1, 0xeb,\n\t0x30, 0x2a, 0x9e, 0x52, 0x92, 0x62, 0xbf, 0x69, 0x48, 0x78, 0xcd, 0x80, 0xe2, 0x04, 0xb6, 0x4c,\n\t0x4a, 0xc1, 0xde, 0x18, 0x92, 0xc2, 0x40, 0x3a, 0x29, 0x85, 0x0e, 0xc7, 0xa9, 0x1a, 0x68, 0x16,\n\t0xc6, 0x38, 0xeb, 0xe8, 0x7a, 0x9b, 0x7c, 0x4e, 0x84, 0x67, 0xa7, 0xda, 0x54, 0x37, 0x4c, 0x30,\n\t0x4e, 0xe2, 0xa3, 0xcb, 0x30, 0xec, 0x04, 0xd5, 0x2d, 0x37, 0x22, 0x55, 0xba, 0x33, 0x98, 0x2d,\n\t0x9f, 0x66, 0x89, 0x39, 0xab, 0xc1, 0xb0, 0x81, 0x69, 0xdf, 0x83, 0xc9, 0x8c, 0xf0, 0x32, 0x74,\n\t0xe1, 0x38, 0x4d, 0x57, 0x7e, 0x53, 0xc2, 0xdd, 0x61, 0xb6, 0xbc, 0x2c, 0xbf, 0x46, 0xc3, 0xa2,\n\t0xab, 0x93, 0x85, 0xa1, 0xd1, 0x92, 0x6f, 0xab, 0xd5, 0xb9, 0x24, 0x01, 0x38, 0xc6, 0xb1, 0xff,\n\t0xb9, 0x00, 0x63, 0x19, 0x0a, 0x3a, 0x96, 0x00, 0x3a, 0xf1, 0xd2, 0x8a, 0xf3, 0x3d, 0x9b, 0x39,\n\t0x4e, 0x0a, 0x87, 0xc8, 0x71, 0x52, 0xec, 0x94, 0xe3, 0xa4, 0xe7, 0xbd, 0xe4, 0x38, 0x31, 0x47,\n\t0xac, 0xb7, 0xab, 0x11, 0xcb, 0xc8, 0x8b, 0xd2, 0x77, 0xc8, 0xbc, 0x28, 0xc6, 0xa0, 0xf7, 0x77,\n\t0x31, 0xe8, 0x3f, 0x5d, 0x80, 0xf1, 0xa4, 0x6e, 0xef, 0x08, 0xe4, 0xe3, 0x6f, 0x1a, 0xf2, 0xf1,\n\t0x0b, 0xdd, 0x78, 0xe2, 0xe7, 0xca, 0xca, 0x71, 0x42, 0x56, 0xfe, 0x74, 0x57, 0xd4, 0xda, 0xcb,\n\t0xcd, 0x7f, 0xb1, 0x00, 0xc7, 0x33, 0x55, 0x9e, 0x47, 0x30, 0x36, 0x37, 0x8c, 0xb1, 0x79, 0xae,\n\t0xeb, 0x28, 0x05, 0xb9, 0x03, 0x74, 0x2b, 0x31, 0x40, 0x17, 0xbb, 0x27, 0xd9, 0x7e, 0x94, 0xbe,\n\t0x55, 0x84, 0xb3, 0x99, 0xf5, 0x62, 0xf1, 0xf2, 0x92, 0x21, 0x5e, 0x7e, 0x3e, 0x21, 0x5e, 0xb6,\n\t0xdb, 0xd7, 0x7e, 0x30, 0xf2, 0x66, 0xe1, 0xad, 0xcf, 0x62, 0x8e, 0xdc, 0xa7, 0xac, 0xd9, 0xf0,\n\t0xd6, 0x57, 0x84, 0xb0, 0x49, 0xf7, 0x7b, 0x49, 0xc6, 0xfc, 0x67, 0x16, 0x9c, 0xca, 0x9c, 0x9b,\n\t0x23, 0x90, 0xf4, 0xad, 0x9a, 0x92, 0xbe, 0xa7, 0xba, 0x5e, 0xad, 0x39, 0xa2, 0xbf, 0x2f, 0xf6,\n\t0xe5, 0x7c, 0x0b, 0x13, 0x40, 0xdc, 0x80, 0x21, 0xa7, 0x5a, 0x25, 0x61, 0xb8, 0xe2, 0xd7, 0x54,\n\t0x3a, 0x84, 0xe7, 0xd8, 0xf3, 0x30, 0x2e, 0x3e, 0xd8, 0x2b, 0x4d, 0x27, 0x49, 0xc4, 0x60, 0xac,\n\t0x53, 0x40, 0x9f, 0x82, 0x81, 0x50, 0x66, 0xb2, 0xec, 0xb9, 0xff, 0x4c, 0x96, 0x8c, 0xc9, 0x55,\n\t0x02, 0x16, 0x45, 0x12, 0x7d, 0xbf, 0x1e, 0xfd, 0xa9, 0x8d, 0x68, 0x91, 0x77, 0xf2, 0x3e, 0x62,\n\t0x40, 0x3d, 0x0f, 0xb0, 0xa3, 0x5e, 0x32, 0x49, 0xe1, 0x89, 0xf6, 0xc6, 0xd1, 0xb0, 0xd0, 0x1b,\n\t0x30, 0x1e, 0xf2, 0xc0, 0xa7, 0xb1, 0x91, 0x0a, 0x5f, 0x8b, 0x2c, 0x76, 0x5c, 0x25, 0x01, 0xc3,\n\t0x29, 0x6c, 0xb4, 0x24, 0x5b, 0x65, 0xe6, 0x48, 0x7c, 0x79, 0x9e, 0x8f, 0x5b, 0x14, 0x26, 0x49,\n\t0xc7, 0x92, 0x93, 0xc0, 0x86, 0x5f, 0xab, 0x89, 0x3e, 0x05, 0x40, 0x17, 0x91, 0x10, 0xa2, 0xf4,\n\t0xe7, 0x1f, 0xa1, 0xf4, 0x6c, 0xa9, 0x65, 0x7a, 0x32, 0x30, 0x37, 0xfb, 0x05, 0x45, 0x04, 0x6b,\n\t0x04, 0x91, 0x03, 0x23, 0xf1, 0xbf, 0x38, 0x47, 0xfb, 0x85, 0xdc, 0x16, 0x92, 0xc4, 0x99, 0x82,\n\t0x61, 0x41, 0x27, 0x81, 0x4d, 0x8a, 0xe8, 0x93, 0x70, 0x6a, 0x27, 0xd7, 0xf2, 0x87, 0x73, 0x82,\n\t0x2c, 0xe9, 0x7a, 0xbe, 0xbd, 0x4f, 0x7e, 0x7d, 0xfb, 0x7f, 0x07, 0x78, 0xa4, 0xcd, 0x49, 0x8f,\n\t0x66, 0x4d, 0xad, 0xfd, 0x33, 0x49, 0xc9, 0xc6, 0x74, 0x66, 0x65, 0x43, 0xd4, 0x91, 0xd8, 0x50,\n\t0x85, 0xf7, 0xbc, 0xa1, 0x7e, 0xc2, 0xd2, 0x64, 0x4e, 0xdc, 0xa6, 0xfb, 0x63, 0x87, 0xbc, 0xc1,\n\t0x1e, 0xa0, 0x10, 0x6a, 0x23, 0x43, 0x92, 0xf3, 0x7c, 0xd7, 0xdd, 0xe9, 0x5e, 0xb4, 0xf3, 0xf5,\n\t0xec, 0x80, 0xef, 0x5c, 0xc8, 0x73, 0xe5, 0xb0, 0xdf, 0x7f, 0x54, 0xc1, 0xdf, 0xbf, 0x69, 0xc1,\n\t0xa9, 0x54, 0x31, 0xef, 0x03, 0x09, 0x45, 0xb4, 0xbb, 0xd5, 0xf7, 0xdc, 0x79, 0x49, 0x90, 0x7f,\n\t0xc3, 0x55, 0xf1, 0x0d, 0xa7, 0x72, 0xf1, 0x92, 0x5d, 0xff, 0xd2, 0xdf, 0x94, 0x26, 0x59, 0x03,\n\t0x26, 0x22, 0xce, 0xef, 0x3a, 0x6a, 0xc2, 0xb9, 0x6a, 0x2b, 0x08, 0xe2, 0xc5, 0x9a, 0xb1, 0x39,\n\t0xf9, 0x5b, 0xef, 0xf1, 0xfd, 0xbd, 0xd2, 0xb9, 0xf9, 0x0e, 0xb8, 0xb8, 0x23, 0x35, 0xe4, 0x01,\n\t0x6a, 0xa4, 0xec, 0xeb, 0xd8, 0x01, 0x90, 0x23, 0x87, 0x49, 0x5b, 0xe3, 0x71, 0x4b, 0xd9, 0x0c,\n\t0x2b, 0xbd, 0x0c, 0xca, 0x47, 0x2b, 0x3d, 0xf9, 0xce, 0xc4, 0xa5, 0x9f, 0xbe, 0x0e, 0x67, 0xdb,\n\t0x2f, 0xa6, 0x43, 0x85, 0x72, 0xf8, 0x4b, 0x0b, 0xce, 0xb4, 0x8d, 0x17, 0xf6, 0x5d, 0xf8, 0x58,\n\t0xb0, 0x3f, 0x6f, 0xc1, 0xa3, 0x99, 0x35, 0x92, 0x4e, 0x78, 0x55, 0x5a, 0xa8, 0x99, 0xa3, 0xc6,\n\t0x91, 0x73, 0x24, 0x00, 0xc7, 0x38, 0x86, 0xc5, 0x66, 0xa1, 0xa3, 0xc5, 0xe6, 0x1f, 0x59, 0x90,\n\t0xba, 0xea, 0x8f, 0x80, 0xf3, 0x5c, 0x36, 0x39, 0xcf, 0xc7, 0xbb, 0x19, 0xcd, 0x1c, 0xa6, 0xf3,\n\t0x1f, 0xc7, 0xe0, 0x44, 0x8e, 0x27, 0xf6, 0x0e, 0x4c, 0x6c, 0x56, 0x89, 0x19, 0x7a, 0xa3, 0x5d,\n\t0x48, 0xba, 0xb6, 0x71, 0x3a, 0xe6, 0x8e, 0xef, 0xef, 0x95, 0x26, 0x52, 0x28, 0x38, 0xdd, 0x04,\n\t0xfa, 0xbc, 0x05, 0xc7, 0x9c, 0x3b, 0xe1, 0x22, 0x7d, 0x41, 0xb8, 0xd5, 0xb9, 0xba, 0x5f, 0xdd,\n\t0xa6, 0x8c, 0x99, 0xdc, 0x56, 0x2f, 0x66, 0x0a, 0xa3, 0x6f, 0x55, 0x52, 0xf8, 0x46, 0xf3, 0x53,\n\t0xfb, 0x7b, 0xa5, 0x63, 0x59, 0x58, 0x38, 0xb3, 0x2d, 0x84, 0x45, 0xc6, 0x2f, 0x27, 0xda, 0x6a,\n\t0x17, 0x1c, 0x26, 0xcb, 0x65, 0x9e, 0xb3, 0xc4, 0x12, 0x82, 0x15, 0x1d, 0xf4, 0x19, 0x18, 0xdc,\n\t0x94, 0x71, 0x20, 0x32, 0x58, 0xee, 0x78, 0x20, 0xdb, 0x47, 0xc7, 0xe0, 0x26, 0x30, 0x0a, 0x09,\n\t0xc7, 0x44, 0xd1, 0xeb, 0x50, 0xf4, 0x36, 0x42, 0x11, 0xa2, 0x2e, 0xdb, 0x12, 0xd7, 0xb4, 0x75,\n\t0xe6, 0x21, 0x98, 0x56, 0x97, 0x2a, 0x98, 0x56, 0x44, 0x57, 0xa1, 0x18, 0xdc, 0xae, 0x09, 0x4d,\n\t0x4a, 0xe6, 0x26, 0xc5, 0x73, 0x0b, 0x39, 0xbd, 0x62, 0x94, 0xf0, 0xdc, 0x02, 0xa6, 0x24, 0x50,\n\t0x19, 0x7a, 0x99, 0xfb, 0xb2, 0x60, 0x6d, 0x33, 0x9f, 0xf2, 0x6d, 0xc2, 0x00, 0x70, 0x8f, 0x44,\n\t0x86, 0x80, 0x39, 0x21, 0xb4, 0x06, 0x7d, 0x55, 0xd7, 0xab, 0x91, 0x40, 0xf0, 0xb2, 0x1f, 0xce,\n\t0xd4, 0x99, 0x30, 0x8c, 0x1c, 0x9a, 0x5c, 0x85, 0xc0, 0x30, 0xb0, 0xa0, 0xc5, 0xa8, 0x92, 0xe6,\n\t0xd6, 0x86, 0xbc, 0xb1, 0xb2, 0xa9, 0x92, 0xe6, 0xd6, 0x52, 0xa5, 0x2d, 0x55, 0x86, 0x81, 0x05,\n\t0x2d, 0xf4, 0x0a, 0x14, 0x36, 0xaa, 0xc2, 0x35, 0x39, 0x53, 0x79, 0x62, 0x46, 0xd1, 0x9a, 0xeb,\n\t0xdb, 0xdf, 0x2b, 0x15, 0x96, 0xe6, 0x71, 0x61, 0xa3, 0x8a, 0x56, 0xa1, 0x7f, 0x83, 0xc7, 0xdd,\n\t0x11, 0xfa, 0x91, 0x27, 0xb3, 0x43, 0x02, 0xa5, 0x42, 0xf3, 0x70, 0xef, 0x52, 0x01, 0xc0, 0x92,\n\t0x08, 0x4b, 0x40, 0xa5, 0xe2, 0x07, 0x89, 0xf0, 0xa5, 0x33, 0x87, 0x8b, 0xf9, 0xc4, 0x9f, 0x1a,\n\t0x71, 0x14, 0x22, 0xac, 0x51, 0xa4, 0xab, 0xda, 0xb9, 0xd7, 0x0a, 0x58, 0x6e, 0x0b, 0xa1, 0x1a,\n\t0xc9, 0x5c, 0xd5, 0xb3, 0x12, 0xa9, 0xdd, 0xaa, 0x56, 0x48, 0x38, 0x26, 0x8a, 0xb6, 0x61, 0x64,\n\t0x27, 0x6c, 0x6e, 0x11, 0xb9, 0xa5, 0x59, 0xd8, 0xbb, 0x1c, 0x6e, 0xf6, 0xa6, 0x40, 0x74, 0x83,\n\t0xa8, 0xe5, 0xd4, 0x53, 0xa7, 0x10, 0x7b, 0xd6, 0xdc, 0xd4, 0x89, 0x61, 0x93, 0x36, 0x1d, 0xfe,\n\t0x77, 0x5b, 0xfe, 0xed, 0xdd, 0x88, 0x88, 0xa8, 0xa3, 0x99, 0xc3, 0xff, 0x16, 0x47, 0x49, 0x0f,\n\t0xbf, 0x00, 0x60, 0x49, 0x04, 0xdd, 0x14, 0xc3, 0xc3, 0x4e, 0xcf, 0xf1, 0xfc, 0x90, 0xe6, 0xb3,\n\t0x12, 0x29, 0x67, 0x50, 0xd8, 0x69, 0x19, 0x93, 0x62, 0xa7, 0x64, 0x73, 0xcb, 0x8f, 0x7c, 0x2f,\n\t0x71, 0x42, 0x4f, 0xe4, 0x9f, 0x92, 0xe5, 0x0c, 0xfc, 0xf4, 0x29, 0x99, 0x85, 0x85, 0x33, 0xdb,\n\t0x42, 0x35, 0x18, 0x6d, 0xfa, 0x41, 0x74, 0xc7, 0x0f, 0xe4, 0xfa, 0x42, 0x6d, 0x04, 0xa5, 0x06,\n\t0xa6, 0x68, 0x91, 0x19, 0xe6, 0x98, 0x10, 0x9c, 0xa0, 0x89, 0x3e, 0x0e, 0xfd, 0x61, 0xd5, 0xa9,\n\t0x93, 0xe5, 0x1b, 0x53, 0x93, 0xf9, 0xd7, 0x4f, 0x85, 0xa3, 0xe4, 0xac, 0x2e, 0x1e, 0x36, 0x89,\n\t0xa3, 0x60, 0x49, 0x0e, 0x2d, 0x41, 0x2f, 0x4b, 0xec, 0xcc, 0x42, 0xe4, 0xe6, 0x44, 0x66, 0x4f,\n\t0xb9, 0xd5, 0xf0, 0xb3, 0x89, 0x15, 0x63, 0x5e, 0x9d, 0xee, 0x01, 0x21, 0x29, 0xf0, 0xc3, 0xa9,\n\t0xe3, 0xf9, 0x7b, 0x40, 0x08, 0x18, 0x6e, 0x54, 0xda, 0xed, 0x01, 0x85, 0x84, 0x63, 0xa2, 0xf4,\n\t0x64, 0xa6, 0xa7, 0xe9, 0x89, 0x36, 0x26, 0x93, 0xb9, 0x67, 0x29, 0x3b, 0x99, 0xe9, 0x49, 0x4a,\n\t0x49, 0xd8, 0x7f, 0x30, 0x90, 0xe6, 0x59, 0x98, 0x84, 0xe9, 0x3f, 0xb7, 0x52, 0x36, 0x13, 0x1f,\n\t0xe9, 0x56, 0xe0, 0xfd, 0x00, 0x1f, 0xae, 0x9f, 0xb7, 0xe0, 0x44, 0x33, 0xf3, 0x43, 0x04, 0x03,\n\t0xd0, 0x9d, 0xdc, 0x9c, 0x7f, 0xba, 0x0a, 0xa7, 0x9c, 0x0d, 0xc7, 0x39, 0x2d, 0x25, 0x85, 0x03,\n\t0xc5, 0xf7, 0x2c, 0x1c, 0x58, 0x81, 0x81, 0x2a, 0x7f, 0xc9, 0xc9, 0x34, 0x00, 0x5d, 0x05, 0x03,\n\t0x65, 0xac, 0x84, 0x78, 0x02, 0x6e, 0x60, 0x45, 0x02, 0xfd, 0xa4, 0x05, 0x67, 0x92, 0x5d, 0xc7,\n\t0x84, 0x81, 0x85, 0xc1, 0x24, 0x17, 0x6b, 0x2d, 0x89, 0xef, 0x4f, 0xf1, 0xff, 0x06, 0xf2, 0x41,\n\t0x27, 0x04, 0xdc, 0xbe, 0x31, 0xb4, 0x90, 0x21, 0x57, 0xeb, 0x33, 0x35, 0x8a, 0x5d, 0xc8, 0xd6,\n\t0x5e, 0x84, 0xe1, 0x86, 0xdf, 0xf2, 0x22, 0x61, 0xf7, 0x28, 0x8c, 0xa7, 0x98, 0xd1, 0xd0, 0x8a,\n\t0x56, 0x8e, 0x0d, 0xac, 0x84, 0x44, 0x6e, 0xe0, 0xbe, 0x25, 0x72, 0xef, 0xc0, 0xb0, 0xa7, 0xb9,\n\t0x04, 0xb4, 0x7b, 0xc1, 0x0a, 0xe9, 0xa2, 0x86, 0xcd, 0x7b, 0xa9, 0x97, 0x60, 0x83, 0x5a, 0x7b,\n\t0x69, 0x19, 0xbc, 0x37, 0x69, 0xd9, 0x91, 0x3e, 0x89, 0xed, 0x5f, 0x2f, 0x64, 0xbc, 0x18, 0xb8,\n\t0x54, 0xee, 0x35, 0x53, 0x2a, 0x77, 0x3e, 0x29, 0x95, 0x4b, 0xa9, 0xaa, 0x0c, 0x81, 0x5c, 0xf7,\n\t0x19, 0x25, 0xbb, 0x0e, 0xf0, 0xfc, 0xc3, 0x16, 0x9c, 0x64, 0xba, 0x0f, 0xda, 0xc0, 0x7b, 0xd6,\n\t0x77, 0x30, 0x93, 0xd4, 0xeb, 0xd9, 0xe4, 0x70, 0x5e, 0x3b, 0x76, 0x1d, 0xce, 0x75, 0xba, 0x77,\n\t0x99, 0x85, 0x6f, 0x4d, 0x19, 0x47, 0xc4, 0x16, 0xbe, 0xb5, 0xe5, 0x05, 0xcc, 0x20, 0xdd, 0x86,\n\t0x2f, 0xb4, 0xff, 0x7f, 0x0b, 0x8a, 0x65, 0xbf, 0x76, 0x04, 0x2f, 0xfa, 0x8f, 0x19, 0x2f, 0xfa,\n\t0x47, 0xb2, 0x6f, 0xfc, 0x5a, 0xae, 0xb2, 0x6f, 0x31, 0xa1, 0xec, 0x3b, 0x93, 0x47, 0xa0, 0xbd,\n\t0x6a, 0xef, 0x97, 0x8a, 0x30, 0x54, 0xf6, 0x6b, 0x6a, 0x9f, 0xfd, 0xaf, 0xf7, 0xe3, 0xc8, 0x93,\n\t0x9b, 0x7d, 0x4a, 0xa3, 0xcc, 0x2c, 0x7a, 0x65, 0xdc, 0x89, 0xef, 0x32, 0x7f, 0x9e, 0x5b, 0xc4,\n\t0xdd, 0xdc, 0x8a, 0x48, 0x2d, 0xf9, 0x39, 0x47, 0xe7, 0xcf, 0xf3, 0xed, 0x22, 0x8c, 0x25, 0x5a,\n\t0x47, 0x75, 0x18, 0xa9, 0xeb, 0xaa, 0x24, 0xb1, 0x4e, 0xef, 0x4b, 0x0b, 0x25, 0xfc, 0x21, 0xb4,\n\t0x22, 0x6c, 0x12, 0x47, 0x33, 0x00, 0x9e, 0x6e, 0x15, 0xae, 0x02, 0x15, 0x6b, 0x16, 0xe1, 0x1a,\n\t0x06, 0x7a, 0x09, 0x86, 0x22, 0xbf, 0xe9, 0xd7, 0xfd, 0xcd, 0xdd, 0x6b, 0x44, 0x46, 0xb6, 0x54,\n\t0x46, 0xc3, 0x6b, 0x31, 0x08, 0xeb, 0x78, 0xe8, 0x2e, 0x4c, 0x28, 0x22, 0x95, 0x07, 0xa0, 0x5e,\n\t0x63, 0x62, 0x93, 0xd5, 0x24, 0x45, 0x9c, 0x6e, 0x04, 0xbd, 0x02, 0xa3, 0xcc, 0x7a, 0x99, 0xd5,\n\t0xbf, 0x46, 0x76, 0x65, 0xc4, 0x63, 0xc6, 0x61, 0xaf, 0x18, 0x10, 0x9c, 0xc0, 0x44, 0xf3, 0x30,\n\t0xd1, 0x70, 0xc3, 0x44, 0xf5, 0x3e, 0x56, 0x9d, 0x75, 0x60, 0x25, 0x09, 0xc4, 0x69, 0x7c, 0xfb,\n\t0x57, 0xc5, 0x1c, 0x7b, 0x91, 0xfb, 0xc1, 0x76, 0x7c, 0x7f, 0x6f, 0xc7, 0x6f, 0x59, 0x30, 0x4e,\n\t0x5b, 0x67, 0x26, 0x99, 0x92, 0x91, 0x52, 0x39, 0x31, 0xac, 0x36, 0x39, 0x31, 0xce, 0xd3, 0x63,\n\t0xbb, 0xe6, 0xb7, 0x22, 0x21, 0x1d, 0xd5, 0xce, 0x65, 0x5a, 0x8a, 0x05, 0x54, 0xe0, 0x91, 0x20,\n\t0x10, 0x7e, 0xef, 0x3a, 0x1e, 0x09, 0x02, 0x2c, 0xa0, 0x32, 0x65, 0x46, 0x4f, 0x76, 0xca, 0x0c,\n\t0x1e, 0xf9, 0x5c, 0x58, 0xc1, 0x09, 0x96, 0x56, 0x8b, 0x7c, 0x2e, 0xcd, 0xe3, 0x62, 0x1c, 0xfb,\n\t0xeb, 0x45, 0x18, 0x2e, 0xfb, 0xb5, 0xd8, 0xb0, 0xe3, 0x45, 0xc3, 0xb0, 0xe3, 0x5c, 0xc2, 0xb0,\n\t0x63, 0x5c, 0xc7, 0xfd, 0xc0, 0x8c, 0xe3, 0x3b, 0x65, 0xc6, 0xf1, 0x87, 0x16, 0x9b, 0xb5, 0x85,\n\t0xd5, 0x0a, 0xb7, 0xf0, 0x45, 0x97, 0x60, 0x88, 0x9d, 0x70, 0x2c, 0xd0, 0x82, 0xb4, 0x76, 0x60,\n\t0x29, 0x2c, 0x57, 0xe3, 0x62, 0xac, 0xe3, 0xa0, 0x0b, 0x30, 0x10, 0x12, 0x27, 0xa8, 0x6e, 0xa9,\n\t0xe3, 0x5d, 0x98, 0x26, 0xf0, 0x32, 0xac, 0xa0, 0xe8, 0xad, 0x38, 0xe8, 0x76, 0x31, 0xdf, 0x5c,\n\t0x58, 0xef, 0x0f, 0xdf, 0x22, 0xf9, 0x91, 0xb6, 0xed, 0x5b, 0x80, 0xd2, 0xf8, 0x5d, 0xf8, 0x5f,\n\t0x95, 0xcc, 0xb0, 0xb0, 0x83, 0xa9, 0x90, 0xb0, 0xff, 0x62, 0xc1, 0x68, 0xd9, 0xaf, 0xd1, 0xad,\n\t0xfb, 0xbd, 0xb4, 0x4f, 0xf5, 0x8c, 0x03, 0x7d, 0x6d, 0x32, 0x0e, 0x3c, 0x06, 0xbd, 0x65, 0xbf,\n\t0xd6, 0x21, 0x74, 0xed, 0x7f, 0x63, 0x41, 0x7f, 0xd9, 0xaf, 0x1d, 0x81, 0xe2, 0xe5, 0x35, 0x53,\n\t0xf1, 0x72, 0x32, 0x67, 0xdd, 0xe4, 0xe8, 0x5a, 0xfe, 0xa4, 0x07, 0x46, 0x68, 0x3f, 0xfd, 0x4d,\n\t0x39, 0x95, 0xc6, 0xb0, 0x59, 0x5d, 0x0c, 0x1b, 0x7d, 0x06, 0xf8, 0xf5, 0xba, 0x7f, 0x27, 0x39,\n\t0xad, 0x4b, 0xac, 0x14, 0x0b, 0x28, 0x7a, 0x16, 0x06, 0x9a, 0x01, 0xd9, 0x71, 0x7d, 0xc1, 0x5f,\n\t0x6b, 0x6a, 0xac, 0xb2, 0x28, 0xc7, 0x0a, 0x83, 0x3e, 0xbc, 0x43, 0xd7, 0xa3, 0xbc, 0x44, 0xd5,\n\t0xf7, 0x6a, 0x5c, 0x37, 0x51, 0x14, 0x69, 0xb1, 0xb4, 0x72, 0x6c, 0x60, 0xa1, 0x5b, 0x30, 0xc8,\n\t0xfe, 0xb3, 0x63, 0xa7, 0xf7, 0xd0, 0xc7, 0x8e, 0x48, 0x14, 0x2c, 0x08, 0xe0, 0x98, 0x16, 0x7a,\n\t0x1e, 0x20, 0x92, 0xa9, 0x65, 0x42, 0x11, 0xc2, 0x54, 0xbd, 0x45, 0x54, 0xd2, 0x99, 0x10, 0x6b,\n\t0x58, 0xe8, 0x19, 0x18, 0x8c, 0x1c, 0xb7, 0x7e, 0xdd, 0xf5, 0x98, 0xfe, 0x9e, 0xf6, 0x5f, 0xe4,\n\t0xeb, 0x15, 0x85, 0x38, 0x86, 0x53, 0x5e, 0x90, 0xc5, 0x84, 0x9a, 0xdb, 0x8d, 0x44, 0x6a, 0xba,\n\t0x22, 0xe7, 0x05, 0xaf, 0xab, 0x52, 0xac, 0x61, 0xa0, 0x2d, 0x38, 0xed, 0x7a, 0x2c, 0x85, 0x14,\n\t0xa9, 0x6c, 0xbb, 0xcd, 0xb5, 0xeb, 0x95, 0x9b, 0x24, 0x70, 0x37, 0x76, 0xe7, 0x9c, 0xea, 0x36,\n\t0xf1, 0x64, 0x42, 0xfc, 0xc7, 0x45, 0x17, 0x4f, 0x2f, 0xb7, 0xc1, 0xc5, 0x6d, 0x29, 0x21, 0x9b,\n\t0x6e, 0xc7, 0x80, 0x38, 0x0d, 0x21, 0x13, 0xe0, 0xe9, 0x67, 0x58, 0x09, 0x16, 0x10, 0xfb, 0x05,\n\t0xb6, 0x27, 0x6e, 0x54, 0xd0, 0xd3, 0xc6, 0xf1, 0x72, 0x42, 0x3f, 0x5e, 0x0e, 0xf6, 0x4a, 0x7d,\n\t0x37, 0x2a, 0x5a, 0x7c, 0xa0, 0xcb, 0x70, 0xbc, 0xec, 0xd7, 0xca, 0x7e, 0x10, 0x2d, 0xf9, 0xc1,\n\t0x1d, 0x27, 0xa8, 0xc9, 0x25, 0x58, 0x92, 0x11, 0x92, 0xe8, 0x19, 0xdb, 0xcb, 0x4f, 0x20, 0x23,\n\t0xfa, 0xd1, 0x0b, 0x8c, 0xab, 0x3b, 0xa4, 0x43, 0x6a, 0x95, 0xf1, 0x17, 0x2a, 0x51, 0xdb, 0x15,\n\t0x27, 0x22, 0xe8, 0x06, 0x8c, 0x54, 0xf5, 0xab, 0x56, 0x54, 0x7f, 0x4a, 0x5e, 0x76, 0xc6, 0x3d,\n\t0x9c, 0x79, 0x37, 0x9b, 0xf5, 0xed, 0x6f, 0x5a, 0xa2, 0x15, 0x2e, 0xad, 0xe0, 0x76, 0xaf, 0x9d,\n\t0xcf, 0xdc, 0x79, 0x98, 0x08, 0xf4, 0x2a, 0x9a, 0xfd, 0xd8, 0x71, 0x9e, 0xf9, 0x26, 0x01, 0xc4,\n\t0x69, 0x7c, 0xf4, 0x49, 0x38, 0x65, 0x14, 0x4a, 0x55, 0xba, 0x96, 0x7f, 0x9a, 0xc9, 0x73, 0x70,\n\t0x1e, 0x12, 0xce, 0xaf, 0x6f, 0xff, 0x20, 0x9c, 0x48, 0x7e, 0x97, 0x90, 0xb0, 0xdc, 0xe7, 0xd7,\n\t0x15, 0x0e, 0xf7, 0x75, 0xf6, 0x4b, 0x30, 0x41, 0x9f, 0xde, 0x8a, 0x8d, 0x64, 0xf3, 0xd7, 0x39,\n\t0x08, 0xd5, 0x6f, 0x0e, 0xb0, 0x6b, 0x30, 0x91, 0x7d, 0x0d, 0x7d, 0x1a, 0x46, 0x43, 0xc2, 0x22,\n\t0xaf, 0x49, 0xc9, 0x5e, 0x1b, 0x6f, 0xf2, 0xca, 0xa2, 0x8e, 0xc9, 0x5f, 0x2f, 0x66, 0x19, 0x4e,\n\t0x50, 0x43, 0x0d, 0x18, 0xbd, 0xe3, 0x7a, 0x35, 0xff, 0x4e, 0x28, 0xe9, 0x0f, 0xe4, 0xab, 0x09,\n\t0x6e, 0x71, 0xcc, 0x44, 0x1f, 0x8d, 0xe6, 0x6e, 0x19, 0xc4, 0x70, 0x82, 0x38, 0x3d, 0x6a, 0x82,\n\t0x96, 0x37, 0x1b, 0xae, 0x87, 0x24, 0x10, 0x71, 0xe1, 0xd8, 0x51, 0x83, 0x65, 0x21, 0x8e, 0xe1,\n\t0xf4, 0xa8, 0x61, 0x7f, 0x98, 0x3b, 0x3a, 0x3b, 0xcb, 0xc4, 0x51, 0x83, 0x55, 0x29, 0xd6, 0x30,\n\t0xe8, 0x51, 0xcc, 0xfe, 0xad, 0xfa, 0x1e, 0xf6, 0xfd, 0x48, 0x1e, 0xde, 0x2c, 0x55, 0xa5, 0x56,\n\t0x8e, 0x0d, 0xac, 0x9c, 0x28, 0x74, 0x3d, 0x87, 0x8d, 0x42, 0x87, 0xa2, 0x36, 0x1e, 0xf8, 0x3c,\n\t0x1a, 0xf2, 0xe5, 0x76, 0x1e, 0xf8, 0x07, 0xf7, 0xe5, 0x9d, 0x4f, 0x79, 0x81, 0x0d, 0x31, 0x40,\n\t0xbd, 0x3c, 0xcc, 0x1e, 0x53, 0x64, 0x56, 0xf8, 0xe8, 0x48, 0x18, 0x5a, 0x84, 0xfe, 0x70, 0x37,\n\t0xac, 0x46, 0xf5, 0xb0, 0x5d, 0x3a, 0xd2, 0x0a, 0x43, 0xd1, 0xb2, 0x61, 0xf3, 0x2a, 0x58, 0xd6,\n\t0x45, 0x55, 0x98, 0x14, 0x14, 0xe7, 0xb7, 0x1c, 0x4f, 0x25, 0x49, 0xe4, 0x16, 0x8b, 0x97, 0xf6,\n\t0xf7, 0x4a, 0x93, 0xa2, 0x65, 0x1d, 0x7c, 0xb0, 0x57, 0xa2, 0x5b, 0x32, 0x03, 0x82, 0xb3, 0xa8,\n\t0xf1, 0x25, 0x5f, 0xad, 0xfa, 0x8d, 0x66, 0x39, 0xf0, 0x37, 0xdc, 0x3a, 0x69, 0xa7, 0x0c, 0xae,\n\t0x18, 0x98, 0x62, 0xc9, 0x1b, 0x65, 0x38, 0x41, 0x0d, 0xdd, 0x86, 0x31, 0xa7, 0xd9, 0x9c, 0x0d,\n\t0x1a, 0x7e, 0x20, 0x1b, 0x18, 0xca, 0xd7, 0x2a, 0xcc, 0x9a, 0xa8, 0x3c, 0x47, 0x62, 0xa2, 0x10,\n\t0x27, 0x09, 0xd2, 0x81, 0x12, 0x1b, 0xcd, 0x18, 0xa8, 0x91, 0x78, 0xa0, 0xc4, 0xbe, 0xcc, 0x18,\n\t0xa8, 0x0c, 0x08, 0xce, 0xa2, 0x66, 0xff, 0x00, 0x63, 0xfc, 0x2b, 0xee, 0xa6, 0xc7, 0x9c, 0xe3,\n\t0x50, 0x03, 0x46, 0x9a, 0xec, 0xd8, 0x17, 0xf9, 0xcb, 0xc4, 0x51, 0xf1, 0x62, 0x97, 0xc2, 0xcb,\n\t0x3b, 0x2c, 0x03, 0xab, 0x61, 0xc4, 0x5a, 0xd6, 0xc9, 0x61, 0x93, 0xba, 0xfd, 0x8b, 0xd3, 0x8c,\n\t0x75, 0xac, 0x70, 0x89, 0x64, 0xbf, 0x70, 0x55, 0x14, 0x32, 0x88, 0xe9, 0x7c, 0xd9, 0x7f, 0xbc,\n\t0xbe, 0x84, 0xbb, 0x23, 0x96, 0x75, 0xd1, 0xa7, 0x60, 0x94, 0x3e, 0xe9, 0x15, 0xfb, 0x16, 0x4e,\n\t0x1d, 0xcb, 0x8f, 0x81, 0xa5, 0xb0, 0xf4, 0xdc, 0x86, 0x7a, 0x65, 0x9c, 0x20, 0x86, 0xde, 0x62,\n\t0x76, 0x9d, 0x92, 0x74, 0xa1, 0x1b, 0xd2, 0xba, 0x09, 0xa7, 0x24, 0xab, 0x11, 0x41, 0x2d, 0x98,\n\t0x4c, 0x67, 0x70, 0x0e, 0xa7, 0xec, 0xfc, 0xb7, 0x51, 0x3a, 0x09, 0x73, 0x9c, 0x84, 0x2e, 0x0d,\n\t0x0b, 0x71, 0x16, 0x7d, 0x74, 0x3d, 0x99, 0x5f, 0xb7, 0x68, 0x68, 0x0d, 0x52, 0x39, 0x76, 0x47,\n\t0xda, 0xa6, 0xd6, 0xdd, 0x84, 0x33, 0x5a, 0x8a, 0xd2, 0x2b, 0x81, 0xc3, 0xec, 0x8a, 0x5c, 0x76,\n\t0x1b, 0x69, 0x4c, 0xed, 0xa3, 0xfb, 0x7b, 0xa5, 0x33, 0x6b, 0xed, 0x10, 0x71, 0x7b, 0x3a, 0xe8,\n\t0x06, 0x1c, 0xe7, 0x11, 0x5c, 0x16, 0x88, 0x53, 0xab, 0xbb, 0x9e, 0xe2, 0x9a, 0xf9, 0xd9, 0x75,\n\t0x6a, 0x7f, 0xaf, 0x74, 0x7c, 0x36, 0x0b, 0x01, 0x67, 0xd7, 0x43, 0xaf, 0xc1, 0x60, 0xcd, 0x93,\n\t0xa7, 0x6c, 0x9f, 0x91, 0x05, 0x76, 0x70, 0x61, 0xb5, 0xa2, 0xbe, 0x3f, 0xfe, 0x83, 0xe3, 0x0a,\n\t0x68, 0x93, 0xab, 0xad, 0x94, 0xac, 0xb1, 0x3f, 0x15, 0xd8, 0x33, 0x29, 0x8e, 0x37, 0x42, 0x22,\n\t0x70, 0x7d, 0xad, 0x72, 0xb9, 0x33, 0xa2, 0x25, 0x18, 0x84, 0xd1, 0x9b, 0x80, 0x44, 0xb6, 0xa1,\n\t0xd9, 0x2a, 0x4b, 0x8e, 0xa7, 0xd9, 0x92, 0x2a, 0x11, 0x42, 0x25, 0x85, 0x81, 0x33, 0x6a, 0xa1,\n\t0xab, 0xf4, 0x78, 0xd4, 0x4b, 0xc5, 0xf1, 0xab, 0x72, 0x8d, 0x2f, 0x90, 0x66, 0x40, 0x98, 0xf9,\n\t0xa3, 0x49, 0x11, 0x27, 0xea, 0xa1, 0x1a, 0x9c, 0x76, 0x5a, 0x91, 0xcf, 0x34, 0x82, 0x26, 0xea,\n\t0x9a, 0xbf, 0x4d, 0x3c, 0xa6, 0x8c, 0x1f, 0x60, 0x01, 0x43, 0x4f, 0xcf, 0xb6, 0xc1, 0xc3, 0x6d,\n\t0xa9, 0xd0, 0xe7, 0x14, 0x1d, 0x0b, 0x4d, 0x59, 0x67, 0x78, 0x77, 0x73, 0x0d, 0xb6, 0xc4, 0x40,\n\t0x2f, 0xc1, 0xd0, 0x96, 0x1f, 0x46, 0xab, 0x24, 0xba, 0xe3, 0x07, 0xdb, 0x22, 0xbd, 0x41, 0x9c,\n\t0x52, 0x26, 0x06, 0x61, 0x1d, 0x0f, 0x3d, 0x05, 0xfd, 0xcc, 0x54, 0x6c, 0x79, 0x81, 0xdd, 0xb5,\n\t0x03, 0xf1, 0x19, 0x73, 0x95, 0x17, 0x63, 0x09, 0x97, 0xa8, 0xcb, 0xe5, 0x79, 0x76, 0x1c, 0x27,\n\t0x50, 0x97, 0xcb, 0xf3, 0x58, 0xc2, 0xe9, 0x72, 0x0d, 0xb7, 0x9c, 0x80, 0x94, 0x03, 0xbf, 0x4a,\n\t0x42, 0x2d, 0x91, 0xd1, 0x23, 0x3c, 0x79, 0x03, 0x5d, 0xae, 0x95, 0x2c, 0x04, 0x9c, 0x5d, 0x0f,\n\t0x91, 0x74, 0x7a, 0xde, 0xd1, 0x7c, 0x55, 0x69, 0x9a, 0x1d, 0xec, 0x32, 0x43, 0xaf, 0x07, 0xe3,\n\t0x2a, 0x31, 0x30, 0x4f, 0xd7, 0x10, 0x4e, 0x8d, 0xb1, 0xb5, 0xdd, 0x7d, 0xae, 0x07, 0xa5, 0x7c,\n\t0x5e, 0x4e, 0x50, 0xc2, 0x29, 0xda, 0x46, 0x44, 0xda, 0xf1, 0x8e, 0x11, 0x69, 0x2f, 0xc2, 0x60,\n\t0xd8, 0xba, 0x5d, 0xf3, 0x1b, 0x8e, 0xeb, 0x31, 0x8b, 0x1b, 0xed, 0xe1, 0x5e, 0x91, 0x00, 0x1c,\n\t0xe3, 0xa0, 0x25, 0x18, 0x70, 0xa4, 0x66, 0x19, 0xe5, 0x07, 0xdb, 0x53, 0xfa, 0x64, 0x1e, 0x7f,\n\t0x4a, 0xea, 0x92, 0x55, 0x5d, 0xf4, 0x2a, 0x8c, 0x88, 0x80, 0x1e, 0x22, 0x97, 0xfe, 0xa4, 0xe9,\n\t0xbe, 0x5c, 0xd1, 0x81, 0xd8, 0xc4, 0x45, 0xeb, 0x30, 0x14, 0xf9, 0x75, 0xe6, 0x83, 0x4b, 0xb9,\n\t0xe4, 0x13, 0xf9, 0x31, 0x71, 0xd7, 0x14, 0x9a, 0xae, 0xf3, 0x50, 0x55, 0xb1, 0x4e, 0x07, 0xad,\n\t0xf1, 0xf5, 0xce, 0xd2, 0x16, 0x91, 0x50, 0x24, 0x63, 0x3f, 0x93, 0x67, 0x2e, 0xc9, 0xd0, 0xcc,\n\t0xed, 0x20, 0x6a, 0x62, 0x9d, 0x0c, 0xba, 0x02, 0x13, 0xcd, 0xc0, 0xf5, 0xd9, 0x9a, 0x50, 0x9a,\n\t0xf2, 0x29, 0x33, 0x49, 0x69, 0x39, 0x89, 0x80, 0xd3, 0x75, 0x58, 0x3c, 0x16, 0x51, 0x38, 0x75,\n\t0x8a, 0x27, 0x5a, 0xe3, 0x72, 0x10, 0x5e, 0x86, 0x15, 0x14, 0xad, 0xb0, 0x93, 0x98, 0x8b, 0xf0,\n\t0xa6, 0xa6, 0xf3, 0xbd, 0xfc, 0x75, 0x51, 0x1f, 0xe7, 0xfd, 0xd5, 0x5f, 0x1c, 0x53, 0x40, 0x35,\n\t0x2d, 0xbf, 0x39, 0x7d, 0x41, 0x85, 0x53, 0xa7, 0xdb, 0xd8, 0xeb, 0x26, 0x9e, 0xcb, 0x31, 0x43,\n\t0x60, 0x14, 0x87, 0x38, 0x41, 0x13, 0xbd, 0x01, 0xe3, 0x22, 0x58, 0x41, 0x3c, 0x4c, 0x67, 0x62,\n\t0x9f, 0x26, 0x9c, 0x80, 0xe1, 0x14, 0x36, 0x4f, 0x74, 0xe6, 0xdc, 0xae, 0x13, 0x71, 0xf4, 0x5d,\n\t0x77, 0xbd, 0xed, 0x70, 0xea, 0x2c, 0x3b, 0x1f, 0x44, 0xa2, 0xb3, 0x24, 0x14, 0x67, 0xd4, 0x40,\n\t0x6b, 0x30, 0xde, 0x0c, 0x08, 0x69, 0xb0, 0x77, 0x92, 0xb8, 0xcf, 0x4a, 0x3c, 0x1c, 0x11, 0xed,\n\t0x49, 0x39, 0x01, 0x3b, 0xc8, 0x28, 0xc3, 0x29, 0x0a, 0xe8, 0x0e, 0x0c, 0xf8, 0x3b, 0x24, 0xd8,\n\t0x22, 0x4e, 0x6d, 0xea, 0x5c, 0x1b, 0x4f, 0x3b, 0x71, 0xb9, 0xdd, 0x10, 0xb8, 0x09, 0x43, 0x24,\n\t0x59, 0xdc, 0xd9, 0x10, 0x49, 0x36, 0x86, 0xfe, 0x0b, 0x0b, 0x4e, 0x49, 0xd5, 0x5e, 0xa5, 0x49,\n\t0x47, 0x7d, 0xde, 0xf7, 0xc2, 0x28, 0xe0, 0x01, 0x74, 0x1e, 0xcd, 0x0f, 0x2a, 0xb3, 0x96, 0x53,\n\t0x49, 0x69, 0x11, 0x4e, 0xe5, 0x61, 0x84, 0x38, 0xbf, 0x45, 0xfa, 0xb2, 0x0f, 0x49, 0x24, 0x0f,\n\t0xa3, 0xd9, 0x70, 0xe9, 0xad, 0x85, 0xd5, 0xa9, 0xc7, 0x78, 0xf4, 0x1f, 0xba, 0x19, 0x2a, 0x49,\n\t0x20, 0x4e, 0xe3, 0xa3, 0x4b, 0x50, 0xf0, 0xc3, 0xa9, 0xc7, 0xdb, 0xa4, 0xc4, 0xf7, 0x6b, 0x37,\n\t0x2a, 0xdc, 0x20, 0xf5, 0x46, 0x05, 0x17, 0xfc, 0x50, 0x26, 0x1b, 0xa3, 0xcf, 0xd9, 0x70, 0xea,\n\t0x09, 0x2e, 0x73, 0x96, 0xc9, 0xc6, 0x58, 0x21, 0x8e, 0xe1, 0x68, 0x0b, 0xc6, 0x42, 0x43, 0x6c,\n\t0x10, 0x4e, 0x9d, 0x67, 0x23, 0xf5, 0x44, 0xde, 0xa4, 0x19, 0xd8, 0x5a, 0x16, 0x20, 0x93, 0x0a,\n\t0x4e, 0x92, 0xe5, 0xbb, 0x4b, 0x13, 0x5c, 0x84, 0x53, 0x4f, 0x76, 0xd8, 0x5d, 0x1a, 0xb2, 0xbe,\n\t0xbb, 0x74, 0x1a, 0x38, 0x41, 0x13, 0xad, 0xeb, 0x6e, 0x8c, 0x17, 0xf2, 0x8d, 0x1b, 0x33, 0x1d,\n\t0x18, 0x47, 0xf2, 0x9c, 0x17, 0xa7, 0xbf, 0x0f, 0x26, 0x52, 0x5c, 0xd8, 0x61, 0x7c, 0x3a, 0xa6,\n\t0xb7, 0x61, 0xc4, 0x58, 0xe9, 0x0f, 0xd5, 0xe4, 0xe7, 0xcf, 0x06, 0x61, 0x50, 0x99, 0x62, 0xa0,\n\t0x8b, 0xa6, 0x95, 0xcf, 0xa9, 0xa4, 0x95, 0xcf, 0x40, 0xd9, 0xaf, 0x19, 0x86, 0x3d, 0x6b, 0x19,\n\t0xb1, 0x72, 0xf3, 0xce, 0xd5, 0xee, 0x1d, 0xcf, 0x34, 0xf5, 0x52, 0xb1, 0x6b, 0x73, 0xa1, 0x9e,\n\t0xb6, 0x1a, 0xab, 0x2b, 0x30, 0xe1, 0xf9, 0x8c, 0xf5, 0x27, 0x35, 0xc9, 0xd7, 0x31, 0xf6, 0x6d,\n\t0x50, 0x8f, 0xe5, 0x96, 0x40, 0xc0, 0xe9, 0x3a, 0xb4, 0x41, 0xce, 0x7f, 0x25, 0x55, 0x64, 0x9c,\n\t0x3d, 0xc3, 0x02, 0x4a, 0x9f, 0x9c, 0xfc, 0x57, 0x38, 0x35, 0x9e, 0xff, 0xe4, 0xe4, 0x95, 0x92,\n\t0x3c, 0x5e, 0x28, 0x79, 0x3c, 0xa6, 0x11, 0x6a, 0xfa, 0xb5, 0xe5, 0xb2, 0x78, 0x3d, 0x68, 0x51,\n\t0xec, 0x6b, 0xcb, 0x65, 0xcc, 0x61, 0x68, 0x16, 0xfa, 0xd8, 0x0f, 0x19, 0x23, 0x27, 0x6f, 0xf7,\n\t0x2f, 0x97, 0xb5, 0x1c, 0xaa, 0xac, 0x02, 0x16, 0x15, 0x99, 0xc4, 0x9f, 0x3e, 0xb9, 0x98, 0xc4,\n\t0xbf, 0xff, 0x3e, 0x25, 0xfe, 0x92, 0x00, 0x8e, 0x69, 0xa1, 0xbb, 0x70, 0xdc, 0x78, 0xe6, 0x2a,\n\t0x4f, 0x3c, 0xc8, 0x37, 0x06, 0x48, 0x20, 0xcf, 0x9d, 0x11, 0x9d, 0x3e, 0xbe, 0x9c, 0x45, 0x09,\n\t0x67, 0x37, 0x80, 0xea, 0x30, 0x51, 0x4d, 0xb5, 0x3a, 0xd0, 0x7d, 0xab, 0x6a, 0x5d, 0xa4, 0x5b,\n\t0x4c, 0x13, 0x46, 0xaf, 0xc2, 0xc0, 0xbb, 0x3e, 0x37, 0xdc, 0x13, 0x2f, 0x1e, 0x19, 0x05, 0x66,\n\t0xe0, 0xad, 0x1b, 0x15, 0x56, 0x7e, 0xb0, 0x57, 0x1a, 0x2a, 0xfb, 0x35, 0xf9, 0x17, 0xab, 0x0a,\n\t0xe8, 0xc7, 0x2c, 0x98, 0x4e, 0xbf, 0xa3, 0x55, 0xa7, 0x47, 0xba, 0xef, 0xb4, 0x2d, 0x1a, 0x9d,\n\t0x5e, 0xcc, 0x25, 0x87, 0xdb, 0x34, 0x85, 0x3e, 0x4a, 0xf7, 0x53, 0xe8, 0xde, 0x23, 0x22, 0x01,\n\t0xfd, 0xa3, 0xf1, 0x7e, 0xa2, 0xa5, 0x07, 0x7b, 0xa5, 0x31, 0x7e, 0xe0, 0xba, 0xf7, 0x54, 0xbc,\n\t0x7d, 0x5e, 0x01, 0xfd, 0x20, 0x1c, 0x0f, 0xd2, 0x72, 0x6d, 0x22, 0x79, 0xfb, 0xa7, 0xbb, 0x39,\n\t0xbc, 0x93, 0x13, 0x8e, 0xb3, 0x08, 0xe2, 0xec, 0x76, 0xec, 0xdf, 0xb3, 0x98, 0x3e, 0x43, 0x74,\n\t0x8b, 0x84, 0xad, 0x7a, 0x74, 0x04, 0xc6, 0x72, 0x8b, 0x86, 0x3d, 0xc1, 0x7d, 0x5b, 0xbb, 0xfd,\n\t0x2f, 0x16, 0xb3, 0x76, 0x3b, 0x42, 0xbf, 0xbd, 0xb7, 0x60, 0x20, 0x12, 0xad, 0x89, 0xae, 0xe7,\n\t0x59, 0xe6, 0xc8, 0x4e, 0x31, 0x8b, 0x3f, 0xf5, 0x76, 0x92, 0xa5, 0x58, 0x91, 0xb1, 0xff, 0x47,\n\t0x3e, 0x03, 0x12, 0x72, 0x04, 0x6a, 0xdb, 0x05, 0x53, 0x6d, 0x5b, 0xea, 0xf0, 0x05, 0x39, 0xea,\n\t0xdb, 0xff, 0xc1, 0xec, 0x37, 0x93, 0x19, 0xbe, 0xdf, 0xcd, 0x2c, 0xed, 0x2f, 0x5a, 0x00, 0x71,\n\t0x82, 0x93, 0x2e, 0x12, 0x4e, 0x5f, 0xa6, 0xaf, 0x25, 0x3f, 0xf2, 0xab, 0x7e, 0x5d, 0xa8, 0x8d,\n\t0x4e, 0xc7, 0x9a, 0x63, 0x5e, 0x7e, 0xa0, 0xfd, 0xc6, 0x0a, 0x1b, 0x95, 0x64, 0xc4, 0xe1, 0x62,\n\t0x6c, 0xcb, 0x60, 0x44, 0x1b, 0xfe, 0x8a, 0x05, 0xc7, 0xb2, 0x9c, 0x40, 0xe8, 0xdb, 0x9b, 0x4b,\n\t0x4f, 0x95, 0x09, 0xac, 0x9a, 0xcd, 0x9b, 0xa2, 0x1c, 0x2b, 0x8c, 0xae, 0x33, 0x79, 0x1f, 0x2e,\n\t0xf9, 0xc6, 0x0d, 0x18, 0x29, 0x07, 0x44, 0xe3, 0x2f, 0x5e, 0x8f, 0xf3, 0x02, 0x0d, 0xce, 0x3d,\n\t0x7b, 0xe8, 0xc8, 0x4a, 0xf6, 0x57, 0x0b, 0x70, 0x8c, 0x1b, 0x72, 0xcd, 0xee, 0xf8, 0x6e, 0xad,\n\t0xec, 0xd7, 0x84, 0xeb, 0xee, 0xdb, 0x30, 0xdc, 0xd4, 0x44, 0xde, 0xed, 0x02, 0xc9, 0xeb, 0xa2,\n\t0xf1, 0x58, 0x48, 0xa7, 0x97, 0x62, 0x83, 0x16, 0xaa, 0xc1, 0x30, 0xd9, 0x71, 0xab, 0xca, 0x1a,\n\t0xa8, 0x70, 0xe8, 0x4b, 0x5a, 0xb5, 0xb2, 0xa8, 0xd1, 0xc1, 0x06, 0xd5, 0xae, 0xcd, 0xaf, 0x35,\n\t0x16, 0xad, 0xa7, 0x83, 0x05, 0xd0, 0xcf, 0x5a, 0x70, 0x32, 0x27, 0xec, 0x3c, 0x6d, 0xee, 0x0e,\n\t0x33, 0x99, 0x13, 0xcb, 0x56, 0x35, 0xc7, 0x0d, 0xe9, 0xb0, 0x80, 0xa2, 0x8f, 0x03, 0x34, 0xe3,\n\t0x94, 0x9b, 0x1d, 0xe2, 0x73, 0x1b, 0x91, 0x7a, 0xb5, 0xa0, 0xab, 0x2a, 0x33, 0xa7, 0x46, 0xcb,\n\t0xfe, 0x4a, 0x0f, 0xf4, 0x32, 0xc3, 0x2b, 0x54, 0x86, 0xfe, 0x2d, 0x1e, 0x13, 0xb0, 0xed, 0xbc,\n\t0x51, 0x5c, 0x19, 0x64, 0x30, 0x9e, 0x37, 0xad, 0x14, 0x4b, 0x32, 0x68, 0x05, 0x26, 0x79, 0x3a,\n\t0xd1, 0xfa, 0x02, 0xa9, 0x3b, 0xbb, 0x52, 0x9a, 0x5c, 0x60, 0x9f, 0xaa, 0xa4, 0xea, 0xcb, 0x69,\n\t0x14, 0x9c, 0x55, 0x0f, 0xbd, 0x0e, 0xa3, 0xf4, 0x75, 0xef, 0xb7, 0x22, 0x49, 0x89, 0xe7, 0xef,\n\t0x54, 0x0f, 0x9e, 0x35, 0x03, 0x8a, 0x13, 0xd8, 0xe8, 0x55, 0x18, 0x69, 0xa6, 0xe4, 0xe6, 0xbd,\n\t0xb1, 0x80, 0xc9, 0x94, 0x95, 0x9b, 0xb8, 0xcc, 0x0f, 0xa4, 0xc5, 0xbc, 0x5e, 0xd6, 0xb6, 0x02,\n\t0x12, 0x6e, 0xf9, 0xf5, 0x1a, 0xe3, 0x80, 0x7b, 0x35, 0x3f, 0x90, 0x04, 0x1c, 0xa7, 0x6a, 0x50,\n\t0x2a, 0x1b, 0x8e, 0x5b, 0x6f, 0x05, 0x24, 0xa6, 0xd2, 0x67, 0x52, 0x59, 0x4a, 0xc0, 0x71, 0xaa,\n\t0x46, 0x67, 0x85, 0x40, 0xff, 0x83, 0x51, 0x08, 0xd8, 0xbf, 0x5c, 0x00, 0x63, 0x6a, 0xbf, 0x87,\n\t0xf3, 0x8a, 0xbe, 0x06, 0x3d, 0x9b, 0x41, 0xb3, 0x2a, 0x8c, 0x0c, 0x33, 0xbf, 0xec, 0x0a, 0x2e,\n\t0xcf, 0xeb, 0x5f, 0x46, 0xff, 0x63, 0x56, 0x8b, 0xee, 0xf1, 0xe3, 0xe5, 0xc0, 0xa7, 0x97, 0x9c,\n\t0x0c, 0x1b, 0xaa, 0xdc, 0xad, 0xfa, 0xe5, 0x1b, 0xbb, 0x4d, 0x80, 0x6d, 0xe1, 0x33, 0xc2, 0x29,\n\t0x18, 0xf6, 0x78, 0x15, 0xf1, 0xc2, 0x96, 0x54, 0xd0, 0x25, 0x18, 0x12, 0xa9, 0x1e, 0x99, 0x57,\n\t0x10, 0xdf, 0x4c, 0xcc, 0x7e, 0x70, 0x21, 0x2e, 0xc6, 0x3a, 0x8e, 0xfd, 0xe3, 0x05, 0x98, 0xcc,\n\t0x70, 0xeb, 0xe4, 0xd7, 0xc8, 0xa6, 0x1b, 0x46, 0xc1, 0x6e, 0xf2, 0x72, 0xc2, 0xa2, 0x1c, 0x2b,\n\t0x0c, 0x7a, 0x56, 0xf1, 0x8b, 0x2a, 0x79, 0x39, 0x09, 0xb7, 0x29, 0x01, 0x3d, 0xdc, 0xe5, 0x44,\n\t0xaf, 0xed, 0x56, 0x48, 0x64, 0x2c, 0x7f, 0x75, 0x6d, 0x33, 0x63, 0x03, 0x06, 0xa1, 0x4f, 0xc0,\n\t0x4d, 0xa5, 0x41, 0xd7, 0x9e, 0x80, 0x5c, 0x87, 0xce, 0x61, 0xb4, 0x73, 0x11, 0xf1, 0x1c, 0x2f,\n\t0x12, 0x0f, 0xc5, 0x38, 0xc6, 0x33, 0x2b, 0xc5, 0x02, 0x6a, 0x7f, 0xb9, 0x08, 0xa7, 0x72, 0x1d,\n\t0xbd, 0x69, 0xd7, 0x1b, 0xbe, 0xe7, 0x46, 0xbe, 0x32, 0xcc, 0xe4, 0x71, 0x9d, 0x49, 0x73, 0x6b,\n\t0x45, 0x94, 0x63, 0x85, 0x81, 0xce, 0x43, 0x2f, 0x93, 0xb5, 0x27, 0xd3, 0xbc, 0xe1, 0xb9, 0x05,\n\t0x1e, 0x31, 0x93, 0x83, 0xb5, 0x5b, 0xbd, 0xd8, 0xf6, 0x56, 0x7f, 0x8c, 0x72, 0x30, 0x7e, 0x3d,\n\t0x79, 0xa1, 0xd0, 0xee, 0xfa, 0x7e, 0x1d, 0x33, 0x20, 0x7a, 0x42, 0x8c, 0x57, 0xc2, 0x12, 0x11,\n\t0x3b, 0x35, 0x3f, 0xd4, 0x06, 0xed, 0x29, 0xe8, 0xdf, 0x26, 0xbb, 0x81, 0xeb, 0x6d, 0x26, 0x2d,\n\t0x54, 0xaf, 0xf1, 0x62, 0x2c, 0xe1, 0x66, 0x56, 0xf3, 0xfe, 0x07, 0x91, 0xd5, 0x5c, 0x5f, 0x01,\n\t0x03, 0x1d, 0xd9, 0x93, 0x9f, 0x28, 0xc2, 0x18, 0x9e, 0x5b, 0xf8, 0x60, 0x22, 0xd6, 0xd3, 0x13,\n\t0xf1, 0x20, 0x92, 0x7f, 0x1f, 0x6e, 0x36, 0x7e, 0xdb, 0x82, 0x31, 0x96, 0x70, 0x52, 0x44, 0x69,\n\t0x71, 0x7d, 0xef, 0x08, 0x9e, 0x02, 0x8f, 0x41, 0x6f, 0x40, 0x1b, 0x15, 0x33, 0xa8, 0xf6, 0x38,\n\t0xeb, 0x09, 0xe6, 0x30, 0x74, 0x1a, 0x7a, 0x58, 0x17, 0xe8, 0xe4, 0x0d, 0xf3, 0x23, 0x78, 0xc1,\n\t0x89, 0x1c, 0xcc, 0x4a, 0x59, 0xbc, 0x48, 0x4c, 0x9a, 0x75, 0x97, 0x77, 0x3a, 0xb6, 0x84, 0x78,\n\t0x7f, 0x84, 0x80, 0xc9, 0xec, 0xda, 0x7b, 0x8b, 0x17, 0x99, 0x4d, 0xb2, 0xfd, 0x33, 0xfb, 0x1f,\n\t0x0a, 0x70, 0x36, 0xb3, 0x5e, 0xd7, 0xf1, 0x22, 0xdb, 0xd7, 0x7e, 0x98, 0xe9, 0xe9, 0x8a, 0x47,\n\t0x68, 0xff, 0xdf, 0xd3, 0x2d, 0xf7, 0xdf, 0xdb, 0x45, 0x18, 0xc7, 0xcc, 0x21, 0x7b, 0x9f, 0x84,\n\t0x71, 0xcc, 0xec, 0x5b, 0x8e, 0x98, 0xe0, 0x5f, 0x0b, 0x39, 0xdf, 0xc2, 0x04, 0x06, 0x17, 0xe8,\n\t0x39, 0xc3, 0x80, 0xa1, 0x7c, 0x84, 0xf3, 0x33, 0x86, 0x97, 0x61, 0x05, 0x45, 0xb3, 0x30, 0xd6,\n\t0x70, 0x3d, 0x7a, 0xf8, 0xec, 0x9a, 0xac, 0xb8, 0x52, 0x91, 0xac, 0x98, 0x60, 0x9c, 0xc4, 0x47,\n\t0xae, 0x16, 0xe2, 0x91, 0x7f, 0xdd, 0xab, 0x87, 0xda, 0x75, 0x33, 0xa6, 0x95, 0x88, 0x1a, 0xc5,\n\t0x8c, 0x70, 0x8f, 0x2b, 0x9a, 0x9c, 0xa8, 0xd8, 0xbd, 0x9c, 0x68, 0x38, 0x5b, 0x46, 0x34, 0xfd,\n\t0x2a, 0x8c, 0xdc, 0xb7, 0x6e, 0xc4, 0xfe, 0x56, 0x11, 0x1e, 0x69, 0xb3, 0xed, 0xf9, 0x59, 0x6f,\n\t0xcc, 0x81, 0x76, 0xd6, 0xa7, 0xe6, 0xa1, 0x0c, 0xc7, 0x36, 0x5a, 0xf5, 0xfa, 0x2e, 0x73, 0x74,\n\t0x23, 0x35, 0x89, 0x21, 0x78, 0x4a, 0x29, 0x1c, 0x39, 0xb6, 0x94, 0x81, 0x83, 0x33, 0x6b, 0xd2,\n\t0x27, 0x16, 0xbd, 0x49, 0x76, 0x15, 0xa9, 0xc4, 0x13, 0x0b, 0xeb, 0x40, 0x6c, 0xe2, 0xa2, 0x2b,\n\t0x30, 0xe1, 0xec, 0x38, 0x2e, 0x4f, 0xef, 0x21, 0x09, 0xf0, 0x37, 0x96, 0x92, 0x45, 0xcf, 0x26,\n\t0x11, 0x70, 0xba, 0x0e, 0x7a, 0x13, 0x90, 0x7f, 0x9b, 0x39, 0xcf, 0xd4, 0xae, 0x10, 0x4f, 0x28,\n\t0xf3, 0xd9, 0xdc, 0x15, 0xe3, 0x23, 0xe1, 0x46, 0x0a, 0x03, 0x67, 0xd4, 0x4a, 0x04, 0x1b, 0xec,\n\t0xcb, 0x0f, 0x36, 0xd8, 0xfe, 0x5c, 0xec, 0x98, 0x19, 0xf1, 0x1d, 0x18, 0x39, 0xac, 0xb5, 0xf7,\n\t0x53, 0xd0, 0x1f, 0x88, 0x9c, 0xf3, 0x09, 0xaf, 0x72, 0x99, 0x91, 0x5b, 0xc2, 0xed, 0xff, 0xc7,\n\t0x02, 0x25, 0x4b, 0x36, 0xe3, 0x8a, 0xbf, 0xca, 0x4c, 0xd7, 0xb9, 0x14, 0x5c, 0x0b, 0x25, 0x76,\n\t0x5c, 0x33, 0x5d, 0x8f, 0x81, 0xd8, 0xc4, 0xe5, 0xcb, 0x2d, 0x8c, 0x23, 0x58, 0x18, 0x0f, 0x08,\n\t0xa1, 0x35, 0x54, 0x18, 0xe8, 0x13, 0xd0, 0x5f, 0x73, 0x77, 0xdc, 0x50, 0xc8, 0xd1, 0x0e, 0xad,\n\t0xb7, 0x8b, 0xbf, 0x6f, 0x81, 0x93, 0xc1, 0x92, 0x9e, 0xfd, 0x53, 0x16, 0x28, 0x75, 0xe7, 0x55,\n\t0xe2, 0xd4, 0xa3, 0x2d, 0xf4, 0x06, 0x80, 0xa4, 0xa0, 0x64, 0x6f, 0xd2, 0x08, 0x0b, 0xb0, 0x82,\n\t0x1c, 0x18, 0xff, 0xb0, 0x56, 0x07, 0xbd, 0x0e, 0x7d, 0x5b, 0x8c, 0x96, 0xf8, 0xb6, 0xf3, 0x4a,\n\t0xd5, 0xc5, 0x4a, 0x0f, 0xf6, 0x4a, 0xc7, 0xcc, 0x36, 0xe5, 0x2d, 0xc6, 0x6b, 0xd9, 0x3f, 0x51,\n\t0x88, 0xe7, 0xf4, 0xad, 0x96, 0x1f, 0x39, 0x47, 0xc0, 0x89, 0x5c, 0x31, 0x38, 0x91, 0x27, 0xda,\n\t0xe9, 0x73, 0x59, 0x97, 0x72, 0x39, 0x90, 0x1b, 0x09, 0x0e, 0xe4, 0xc9, 0xce, 0xa4, 0xda, 0x73,\n\t0x1e, 0xff, 0x93, 0x05, 0x13, 0x06, 0xfe, 0x11, 0x5c, 0x80, 0x4b, 0xe6, 0x05, 0xf8, 0x68, 0xc7,\n\t0x6f, 0xc8, 0xb9, 0xf8, 0x7e, 0xb4, 0x98, 0xe8, 0x3b, 0xbb, 0xf0, 0xde, 0x85, 0x9e, 0x2d, 0x27,\n\t0xa8, 0x89, 0x77, 0xfd, 0xc5, 0xae, 0xc6, 0x7a, 0xe6, 0xaa, 0x13, 0x08, 0x03, 0x8e, 0x67, 0xe5,\n\t0xa8, 0xd3, 0xa2, 0x8e, 0xc6, 0x1b, 0xac, 0x29, 0x74, 0x19, 0xfa, 0xc2, 0xaa, 0xdf, 0x54, 0x7e,\n\t0x80, 0x2c, 0x5d, 0x78, 0x85, 0x95, 0x1c, 0xec, 0x95, 0x90, 0xd9, 0x1c, 0x2d, 0xc6, 0x02, 0x1f,\n\t0xbd, 0x0d, 0x23, 0xec, 0x97, 0xb2, 0xa6, 0x2c, 0xe6, 0x4b, 0x60, 0x2a, 0x3a, 0x22, 0x37, 0x35,\n\t0x36, 0x8a, 0xb0, 0x49, 0x6a, 0x7a, 0x13, 0x06, 0xd5, 0x67, 0x3d, 0x54, 0x6d, 0xfd, 0xff, 0x59,\n\t0x84, 0xc9, 0x8c, 0x35, 0x87, 0x42, 0x63, 0x26, 0x2e, 0x75, 0xb9, 0x54, 0xdf, 0xe3, 0x5c, 0x84,\n\t0xec, 0x01, 0x58, 0x13, 0x6b, 0xab, 0xeb, 0x46, 0xd7, 0x43, 0x92, 0x6c, 0x94, 0x16, 0x75, 0x6e,\n\t0x94, 0x36, 0x76, 0x64, 0x43, 0x4d, 0x1b, 0x52, 0x3d, 0x7d, 0xa8, 0x73, 0xfa, 0x87, 0x3d, 0x70,\n\t0x2c, 0xcb, 0xc4, 0x04, 0x7d, 0x0e, 0xfa, 0x98, 0xa3, 0x9a, 0x14, 0x9c, 0xbd, 0xd8, 0xad, 0x71,\n\t0xca, 0x0c, 0xf3, 0x75, 0x13, 0xa1, 0x69, 0x67, 0xe4, 0x71, 0xc4, 0x0b, 0x3b, 0x0e, 0xb3, 0x68,\n\t0x93, 0x85, 0x8c, 0x12, 0xb7, 0xa7, 0x3c, 0x3e, 0x3e, 0xd2, 0x75, 0x07, 0xc4, 0xfd, 0x1b, 0x26,\n\t0x2c, 0xb5, 0x64, 0x71, 0x67, 0x4b, 0x2d, 0xd9, 0x32, 0x5a, 0x86, 0xbe, 0x2a, 0x37, 0x01, 0x2a,\n\t0x76, 0x3e, 0xc2, 0xb8, 0xfd, 0x8f, 0x3a, 0x80, 0x85, 0xdd, 0x8f, 0x20, 0x30, 0xed, 0xc2, 0x90,\n\t0x36, 0x30, 0x0f, 0x75, 0xf1, 0x6c, 0xd3, 0x8b, 0x4f, 0x1b, 0x82, 0x87, 0xba, 0x80, 0x7e, 0x46,\n\t0xbb, 0xfb, 0xc5, 0x79, 0xf0, 0x61, 0x83, 0x77, 0x3a, 0x9d, 0x70, 0x1f, 0x4c, 0xec, 0x2b, 0xc6,\n\t0x4b, 0x55, 0xcc, 0x98, 0xee, 0xb9, 0xa9, 0xa1, 0xcc, 0x0b, 0xbf, 0x7d, 0x1c, 0x77, 0xfb, 0x67,\n\t0x2d, 0x48, 0x38, 0x78, 0x29, 0x71, 0xa7, 0x95, 0x2b, 0xee, 0x3c, 0x07, 0x3d, 0x81, 0x5f, 0x27,\n\t0xc9, 0xd4, 0xfb, 0xd8, 0xaf, 0x13, 0xcc, 0x20, 0x14, 0x23, 0x8a, 0x85, 0x58, 0xc3, 0xfa, 0x03,\n\t0x5d, 0x3c, 0xbd, 0x1f, 0x83, 0xde, 0x3a, 0xd9, 0x21, 0xf5, 0x64, 0x86, 0xd4, 0xeb, 0xb4, 0x10,\n\t0x73, 0x98, 0xfd, 0xdb, 0x3d, 0x70, 0xa6, 0x6d, 0x64, 0x39, 0xca, 0x60, 0x6e, 0x3a, 0x11, 0xb9,\n\t0xe3, 0xec, 0x26, 0x33, 0x03, 0x5e, 0xe1, 0xc5, 0x58, 0xc2, 0x99, 0xb3, 0x35, 0xcf, 0x94, 0x93,\n\t0x10, 0x0e, 0x8b, 0x04, 0x39, 0x02, 0x6a, 0x0a, 0x1b, 0x8b, 0x0f, 0x42, 0xd8, 0xf8, 0x3c, 0x40,\n\t0x18, 0xd6, 0xb9, 0x1d, 0x67, 0x4d, 0x78, 0x71, 0xc7, 0x19, 0x95, 0x2a, 0xd7, 0x05, 0x04, 0x6b,\n\t0x58, 0x68, 0x01, 0xc6, 0x9b, 0x81, 0x1f, 0x71, 0x59, 0xfb, 0x02, 0x37, 0x75, 0xee, 0x35, 0x83,\n\t0x7a, 0x95, 0x13, 0x70, 0x9c, 0xaa, 0x81, 0x5e, 0x82, 0x21, 0x11, 0xe8, 0xab, 0xec, 0xfb, 0x75,\n\t0x21, 0xde, 0x53, 0xd6, 0xbf, 0x95, 0x18, 0x84, 0x75, 0x3c, 0xad, 0x1a, 0x13, 0xe0, 0xf7, 0x67,\n\t0x56, 0xe3, 0x42, 0x7c, 0x0d, 0x2f, 0x91, 0x14, 0x60, 0xa0, 0xab, 0xa4, 0x00, 0xb1, 0xc0, 0x73,\n\t0xb0, 0x6b, 0x7d, 0x32, 0x74, 0x14, 0x11, 0x7e, 0xad, 0x07, 0x26, 0xc5, 0xc2, 0x79, 0xd8, 0xcb,\n\t0x65, 0x3d, 0xbd, 0x5c, 0x1e, 0x84, 0x48, 0xf4, 0x83, 0x35, 0x73, 0xd4, 0x6b, 0xe6, 0x27, 0x2d,\n\t0x30, 0x79, 0x48, 0xf4, 0x9f, 0xe5, 0xa6, 0x56, 0x7d, 0x29, 0x97, 0x27, 0x8d, 0x23, 0x86, 0xbf,\n\t0xb7, 0x24, 0xab, 0xf6, 0xff, 0x65, 0xc1, 0xa3, 0x1d, 0x29, 0xa2, 0x45, 0x18, 0x64, 0x8c, 0xae,\n\t0xf6, 0x2e, 0x7e, 0x52, 0xb9, 0x42, 0x48, 0x40, 0x0e, 0xdf, 0x1d, 0xd7, 0x44, 0x8b, 0xa9, 0x1c,\n\t0xb6, 0x4f, 0x65, 0xe4, 0xb0, 0x3d, 0x6e, 0x0c, 0xcf, 0x7d, 0x26, 0xb1, 0xfd, 0x12, 0xbd, 0x71,\n\t0x4c, 0x7f, 0xca, 0x8f, 0x18, 0xe2, 0x5c, 0x3b, 0x21, 0xce, 0x45, 0x26, 0xb6, 0x76, 0x87, 0xbc,\n\t0x01, 0xe3, 0x2c, 0x02, 0x28, 0x73, 0xcc, 0x11, 0x8e, 0x98, 0x85, 0xd8, 0xf8, 0xfe, 0x7a, 0x02,\n\t0x86, 0x53, 0xd8, 0xf6, 0xdf, 0x15, 0xa1, 0x8f, 0x6f, 0xbf, 0x23, 0x78, 0xf8, 0x3e, 0x03, 0x83,\n\t0x6e, 0xa3, 0xd1, 0xe2, 0x69, 0x49, 0x7b, 0x63, 0x53, 0xee, 0x65, 0x59, 0x88, 0x63, 0x38, 0x5a,\n\t0x12, 0x9a, 0x84, 0x36, 0x41, 0xc6, 0x79, 0xc7, 0x67, 0x16, 0x9c, 0xc8, 0xe1, 0x5c, 0x9c, 0xba,\n\t0x67, 0x63, 0x9d, 0x03, 0xfa, 0x34, 0x40, 0x18, 0x05, 0xae, 0xb7, 0x49, 0xcb, 0x44, 0x26, 0x8a,\n\t0xa7, 0xdb, 0x50, 0xab, 0x28, 0x64, 0x4e, 0x33, 0x3e, 0x73, 0x14, 0x00, 0x6b, 0x14, 0xd1, 0x8c,\n\t0x71, 0xd3, 0x4f, 0x27, 0xe6, 0x0e, 0x38, 0xd5, 0x78, 0xce, 0xa6, 0x5f, 0x86, 0x41, 0x45, 0xbc,\n\t0x93, 0x5c, 0x71, 0x58, 0x67, 0xd8, 0x3e, 0x06, 0x63, 0x89, 0xbe, 0x1d, 0x4a, 0x2c, 0xf9, 0x3b,\n\t0x16, 0x8c, 0xf1, 0xce, 0x2c, 0x7a, 0x3b, 0xe2, 0x36, 0xb8, 0x07, 0xc7, 0xea, 0x19, 0xa7, 0xb2,\n\t0x98, 0xfe, 0xee, 0x4f, 0x71, 0x25, 0x86, 0xcc, 0x82, 0xe2, 0xcc, 0x36, 0xd0, 0x05, 0xba, 0xe3,\n\t0xe8, 0xa9, 0xeb, 0xd4, 0x45, 0x34, 0x91, 0x61, 0xbe, 0xdb, 0x78, 0x19, 0x56, 0x50, 0xfb, 0xaf,\n\t0x2c, 0x98, 0xe0, 0x3d, 0xbf, 0x46, 0x76, 0xd5, 0xd9, 0xf4, 0x9d, 0xec, 0xbb, 0x48, 0x88, 0x5d,\n\t0xc8, 0x49, 0x88, 0xad, 0x7f, 0x5a, 0xb1, 0xed, 0xa7, 0x7d, 0xd5, 0x02, 0xb1, 0x42, 0x8e, 0x40,\n\t0xd2, 0xf2, 0x7d, 0xa6, 0xa4, 0x65, 0x3a, 0x7f, 0x13, 0xe4, 0x88, 0x58, 0xfe, 0xc5, 0x82, 0x71,\n\t0x8e, 0x10, 0x5b, 0x41, 0x7c, 0x47, 0xe7, 0x61, 0xce, 0xfc, 0xa2, 0x4c, 0xb3, 0xd6, 0x6b, 0x64,\n\t0x77, 0xcd, 0x2f, 0x3b, 0xd1, 0x56, 0xf6, 0x47, 0x19, 0x93, 0xd5, 0xd3, 0x76, 0xb2, 0x6a, 0x72,\n\t0x03, 0x19, 0x89, 0x17, 0x3b, 0x08, 0x80, 0x0f, 0x9b, 0x78, 0xd1, 0xfe, 0x7b, 0x0b, 0x10, 0x6f,\n\t0xc6, 0x60, 0xdc, 0x28, 0x3b, 0xc4, 0x4a, 0xb5, 0x8b, 0x2e, 0x3e, 0x9a, 0x14, 0x04, 0x6b, 0x58,\n\t0x0f, 0x64, 0x78, 0x12, 0xa6, 0x2c, 0xc5, 0xce, 0xa6, 0x2c, 0x87, 0x18, 0xd1, 0xaf, 0xf6, 0x43,\n\t0xd2, 0x15, 0x13, 0xdd, 0x84, 0xe1, 0xaa, 0xd3, 0x74, 0x6e, 0xbb, 0x75, 0x37, 0x72, 0x49, 0xd8,\n\t0xce, 0xce, 0x6d, 0x5e, 0xc3, 0x13, 0xc6, 0x07, 0x5a, 0x09, 0x36, 0xe8, 0xa0, 0x19, 0x80, 0x66,\n\t0xe0, 0xee, 0xb8, 0x75, 0xb2, 0xc9, 0x04, 0x42, 0x2c, 0x7e, 0x11, 0x37, 0xba, 0x93, 0xa5, 0x58,\n\t0xc3, 0xc8, 0x08, 0x1b, 0x52, 0x7c, 0xc8, 0x61, 0x43, 0xe0, 0xc8, 0xc2, 0x86, 0xf4, 0x1c, 0x2a,\n\t0x6c, 0xc8, 0xc0, 0xa1, 0xc3, 0x86, 0xf4, 0x76, 0x15, 0x36, 0x04, 0xc3, 0x09, 0xc9, 0x7b, 0xd2,\n\t0xff, 0x4b, 0x6e, 0x9d, 0x88, 0x07, 0x07, 0x0f, 0xba, 0x34, 0xbd, 0xbf, 0x57, 0x3a, 0x81, 0x33,\n\t0x31, 0x70, 0x4e, 0x4d, 0xf4, 0x71, 0x98, 0x72, 0xea, 0x75, 0xff, 0x8e, 0x9a, 0xd4, 0xc5, 0xb0,\n\t0xea, 0xd4, 0xb9, 0x72, 0xa9, 0x9f, 0x51, 0x3d, 0xbd, 0xbf, 0x57, 0x9a, 0x9a, 0xcd, 0xc1, 0xc1,\n\t0xb9, 0xb5, 0xd1, 0x6b, 0x30, 0xd8, 0x0c, 0xfc, 0xea, 0x8a, 0xe6, 0x2f, 0x7e, 0x96, 0x0e, 0x60,\n\t0x59, 0x16, 0x1e, 0xec, 0x95, 0x46, 0xd4, 0x1f, 0x76, 0xe1, 0xc7, 0x15, 0x32, 0x22, 0x72, 0x0c,\n\t0x3d, 0xec, 0x88, 0x1c, 0xc3, 0x0f, 0x38, 0x22, 0x87, 0xbd, 0x0d, 0x93, 0x15, 0x12, 0xb8, 0x4e,\n\t0xdd, 0xbd, 0x47, 0x79, 0x72, 0x79, 0x06, 0xae, 0xc1, 0x60, 0x90, 0x38, 0xf5, 0xbb, 0x0a, 0x2e,\n\t0xae, 0xc9, 0x65, 0xe4, 0x29, 0x1f, 0x13, 0xb2, 0xff, 0xbd, 0x05, 0xfd, 0xc2, 0xbd, 0xf3, 0x08,\n\t0x38, 0xd3, 0x59, 0x43, 0x25, 0x53, 0xca, 0x9e, 0x14, 0xd6, 0x99, 0x5c, 0x65, 0xcc, 0x72, 0x42,\n\t0x19, 0xf3, 0x68, 0x3b, 0x22, 0xed, 0xd5, 0x30, 0xff, 0x75, 0x91, 0xbe, 0x10, 0x8c, 0x40, 0x03,\n\t0x0f, 0x7f, 0x08, 0x56, 0xa1, 0x3f, 0x14, 0x8e, 0xee, 0x85, 0x7c, 0x5f, 0x9e, 0xe4, 0x24, 0xc6,\n\t0x36, 0x90, 0xc2, 0xb5, 0x5d, 0x12, 0xc9, 0xf4, 0xa0, 0x2f, 0x3e, 0x44, 0x0f, 0xfa, 0x4e, 0xa1,\n\t0x18, 0x7a, 0x1e, 0x44, 0x28, 0x06, 0xfb, 0x1b, 0xec, 0x76, 0xd6, 0xcb, 0x8f, 0x80, 0x71, 0xbb,\n\t0x62, 0xde, 0xe3, 0x76, 0x9b, 0x95, 0x25, 0x3a, 0x95, 0xc3, 0xc0, 0xfd, 0x96, 0x05, 0x67, 0x32,\n\t0xbe, 0x4a, 0xe3, 0xe6, 0x9e, 0x85, 0x01, 0xa7, 0x55, 0x73, 0xd5, 0x5e, 0xd6, 0xb4, 0xc5, 0xb3,\n\t0xa2, 0x1c, 0x2b, 0x0c, 0x34, 0x0f, 0x13, 0xe4, 0x6e, 0xd3, 0xe5, 0x6a, 0x78, 0xdd, 0x74, 0xbc,\n\t0xc8, 0x7d, 0x82, 0x17, 0x93, 0x40, 0x9c, 0xc6, 0x57, 0xe1, 0xdc, 0x8a, 0xb9, 0xe1, 0xdc, 0x7e,\n\t0xdd, 0x82, 0x21, 0xe5, 0xea, 0xfd, 0xd0, 0x47, 0xfb, 0x0d, 0x73, 0xb4, 0x1f, 0x69, 0x33, 0xda,\n\t0x39, 0xc3, 0xfc, 0x97, 0x05, 0xd5, 0xdf, 0xb2, 0x1f, 0x44, 0x5d, 0x70, 0x89, 0xf7, 0xef, 0xf6,\n\t0x72, 0x09, 0x86, 0x9c, 0x66, 0x53, 0x02, 0xa4, 0xfd, 0x22, 0x4b, 0x15, 0x11, 0x17, 0x63, 0x1d,\n\t0x47, 0x79, 0xe1, 0x14, 0x73, 0xbd, 0x70, 0x6a, 0x00, 0x91, 0x13, 0x6c, 0x92, 0x88, 0x96, 0x09,\n\t0x73, 0xeb, 0xfc, 0xf3, 0xa6, 0x15, 0xb9, 0xf5, 0x19, 0xd7, 0x8b, 0xc2, 0x28, 0x98, 0x59, 0xf6,\n\t0xa2, 0x1b, 0x01, 0x7f, 0xa6, 0x6a, 0x41, 0x13, 0x15, 0x2d, 0xac, 0xd1, 0x95, 0x61, 0x4d, 0x58,\n\t0x1b, 0xbd, 0xa6, 0x21, 0xcc, 0xaa, 0x28, 0xc7, 0x0a, 0xc3, 0x7e, 0x99, 0xdd, 0x3e, 0x6c, 0x4c,\n\t0x0f, 0x17, 0x0c, 0xf0, 0x1f, 0x86, 0xd5, 0x6c, 0x30, 0x95, 0xf0, 0x82, 0x1e, 0x72, 0xb0, 0xfd,\n\t0x61, 0x4f, 0x1b, 0xd6, 0xfd, 0x59, 0xe3, 0xb8, 0x84, 0xe8, 0x93, 0x29, 0xe3, 0xa6, 0xe7, 0x3a,\n\t0xdc, 0x1a, 0x87, 0x30, 0x67, 0x62, 0x79, 0xe3, 0x58, 0x56, 0xad, 0xe5, 0xb2, 0xd8, 0x17, 0x5a,\n\t0xde, 0x38, 0x01, 0xc0, 0x31, 0x0e, 0x65, 0xd8, 0xd4, 0x9f, 0x70, 0x0a, 0xc5, 0xe1, 0xc5, 0x15,\n\t0x76, 0x88, 0x35, 0x0c, 0x74, 0x51, 0x08, 0x2d, 0xb8, 0xee, 0xe1, 0x91, 0x84, 0xd0, 0x42, 0x0e,\n\t0x97, 0x26, 0x69, 0xba, 0x04, 0x43, 0xe4, 0x6e, 0x44, 0x02, 0xcf, 0xa9, 0xd3, 0x16, 0x7a, 0xe3,\n\t0x88, 0xb8, 0x8b, 0x71, 0x31, 0xd6, 0x71, 0xd0, 0x1a, 0x8c, 0x85, 0x5c, 0x96, 0xa7, 0x92, 0x5a,\n\t0x70, 0x99, 0xe8, 0xd3, 0xca, 0xc9, 0xde, 0x04, 0x1f, 0xb0, 0x22, 0x7e, 0x3a, 0xc9, 0xd0, 0x23,\n\t0x49, 0x12, 0xe8, 0x75, 0x18, 0xad, 0xfb, 0x4e, 0x6d, 0xce, 0xa9, 0x3b, 0x5e, 0x95, 0x8d, 0xcf,\n\t0x80, 0x11, 0x7f, 0x72, 0xf4, 0xba, 0x01, 0xc5, 0x09, 0x6c, 0xca, 0x20, 0xea, 0x25, 0x22, 0x11,\n\t0x8b, 0xe3, 0x6d, 0x92, 0x70, 0x6a, 0x90, 0x7d, 0x15, 0x63, 0x10, 0xaf, 0xe7, 0xe0, 0xe0, 0xdc,\n\t0xda, 0xe8, 0x32, 0x0c, 0xcb, 0xcf, 0xd7, 0x22, 0xf5, 0xc4, 0x0e, 0x4d, 0x1a, 0x0c, 0x1b, 0x98,\n\t0x28, 0x84, 0xe3, 0xf2, 0xff, 0x5a, 0xe0, 0x6c, 0x6c, 0xb8, 0x55, 0x11, 0xbe, 0x82, 0x3b, 0x7f,\n\t0x7f, 0x4c, 0x7a, 0x9a, 0x2e, 0x66, 0x21, 0x1d, 0xec, 0x95, 0x4e, 0x8b, 0x51, 0xcb, 0x84, 0xe3,\n\t0x6c, 0xda, 0x68, 0x05, 0x26, 0xb9, 0x0d, 0xcc, 0xfc, 0x16, 0xa9, 0x6e, 0xcb, 0x0d, 0xc7, 0xb8,\n\t0x46, 0xcd, 0xf1, 0xe7, 0x6a, 0x1a, 0x05, 0x67, 0xd5, 0x43, 0xef, 0xc0, 0x54, 0xb3, 0x75, 0xbb,\n\t0xee, 0x86, 0x5b, 0xab, 0x7e, 0xc4, 0x4c, 0xc8, 0x66, 0x6b, 0xb5, 0x80, 0x84, 0xdc, 0x37, 0x98,\n\t0x5d, 0xbd, 0x32, 0xba, 0x52, 0x39, 0x07, 0x0f, 0xe7, 0x52, 0x40, 0xf7, 0xe0, 0x78, 0x62, 0x21,\n\t0x88, 0x30, 0x29, 0xa3, 0xf9, 0x29, 0xad, 0x2a, 0x59, 0x15, 0x44, 0xc4, 0xa1, 0x2c, 0x10, 0xce,\n\t0x6e, 0x02, 0xbd, 0x02, 0xe0, 0x36, 0x97, 0x9c, 0x86, 0x5b, 0xa7, 0xcf, 0xd1, 0x49, 0xb6, 0x46,\n\t0xe8, 0xd3, 0x04, 0x96, 0xcb, 0xb2, 0x94, 0x9e, 0xcd, 0xe2, 0xdf, 0x2e, 0xd6, 0xb0, 0xd1, 0x75,\n\t0x18, 0x15, 0xff, 0x76, 0xc5, 0x94, 0x4e, 0xa8, 0xec, 0xa7, 0xa3, 0xb2, 0x86, 0x9a, 0xc7, 0x44,\n\t0x09, 0x4e, 0xd4, 0x45, 0x9b, 0x70, 0x46, 0xa6, 0x5e, 0xd5, 0xd7, 0xa7, 0x9c, 0x83, 0x90, 0xe5,\n\t0x91, 0x1a, 0xe0, 0x3e, 0x45, 0xb3, 0xed, 0x10, 0x71, 0x7b, 0x3a, 0xf4, 0x5e, 0xd7, 0x97, 0x39,\n\t0xf7, 0x18, 0x3f, 0x1e, 0x47, 0xf1, 0xbc, 0x9e, 0x04, 0xe2, 0x34, 0x3e, 0xf2, 0xe1, 0xb8, 0xeb,\n\t0x65, 0xad, 0xea, 0x13, 0x8c, 0xd0, 0x47, 0xb9, 0xb3, 0x7c, 0xfb, 0x15, 0x9d, 0x09, 0xc7, 0xd9,\n\t0x74, 0xd1, 0x32, 0x4c, 0x46, 0xbc, 0x60, 0xc1, 0x0d, 0x79, 0x9a, 0x1a, 0xfa, 0xec, 0x3b, 0xc9,\n\t0x9a, 0x3b, 0x49, 0x57, 0xf3, 0x5a, 0x1a, 0x8c, 0xb3, 0xea, 0xbc, 0x37, 0x03, 0xd0, 0x6f, 0x5a,\n\t0xb4, 0xb6, 0xc6, 0xe8, 0xa3, 0xcf, 0xc0, 0xb0, 0x3e, 0x3e, 0x82, 0x69, 0x39, 0x9f, 0xcd, 0x07,\n\t0x6b, 0xc7, 0x0b, 0x7f, 0x26, 0xa8, 0x23, 0x44, 0x87, 0x61, 0x83, 0x22, 0xaa, 0x66, 0x04, 0xb9,\n\t0xb8, 0xd8, 0x1d, 0x53, 0xd4, 0xbd, 0xfd, 0x23, 0x81, 0xec, 0x9d, 0x83, 0xae, 0xc3, 0x40, 0xb5,\n\t0xee, 0x12, 0x2f, 0x5a, 0x2e, 0xb7, 0x0b, 0xae, 0x3a, 0x2f, 0x70, 0xc4, 0x56, 0x14, 0xd9, 0xa5,\n\t0x78, 0x19, 0x56, 0x14, 0xec, 0xcb, 0x30, 0x54, 0xa9, 0x13, 0xd2, 0xe4, 0x7e, 0x5c, 0xe8, 0x29,\n\t0xf6, 0x30, 0x61, 0xac, 0xa5, 0xc5, 0x58, 0x4b, 0xfd, 0xcd, 0xc1, 0x98, 0x4a, 0x09, 0xb7, 0xff,\n\t0xb8, 0x00, 0xa5, 0x0e, 0x49, 0xce, 0x12, 0xfa, 0x36, 0xab, 0x2b, 0x7d, 0xdb, 0x2c, 0x8c, 0xc5,\n\t0xff, 0x74, 0x51, 0x9e, 0x32, 0x86, 0xbe, 0x69, 0x82, 0x71, 0x12, 0xbf, 0x6b, 0xbf, 0x16, 0x5d,\n\t0x65, 0xd7, 0xd3, 0xd1, 0x33, 0xcb, 0x50, 0xd5, 0xf7, 0x76, 0xff, 0xf6, 0xce, 0x55, 0xbb, 0xda,\n\t0xdf, 0x28, 0xc0, 0x71, 0x35, 0x84, 0xdf, 0xbb, 0x03, 0xb7, 0x9e, 0x1e, 0xb8, 0x07, 0xa0, 0xb4,\n\t0xb6, 0x6f, 0x40, 0x1f, 0x8f, 0xf8, 0xda, 0x05, 0xcf, 0xff, 0x98, 0x19, 0x7c, 0x5f, 0xb1, 0x99,\n\t0x46, 0x00, 0xfe, 0x1f, 0xb3, 0x60, 0x2c, 0xe1, 0x20, 0x89, 0xb0, 0xe6, 0x45, 0x7f, 0x3f, 0x7c,\n\t0x79, 0x16, 0xc7, 0x7f, 0x0e, 0x7a, 0xb6, 0x7c, 0x65, 0xa4, 0xac, 0x30, 0xae, 0xfa, 0x61, 0x84,\n\t0x19, 0xc4, 0xfe, 0x6b, 0x0b, 0x7a, 0xd7, 0x1c, 0xd7, 0x8b, 0xa4, 0xf6, 0xc3, 0xca, 0xd1, 0x7e,\n\t0x74, 0xf3, 0x5d, 0xe8, 0x25, 0xe8, 0x23, 0x1b, 0x1b, 0xa4, 0x1a, 0x89, 0x59, 0x95, 0xd1, 0x34,\n\t0xfa, 0x16, 0x59, 0x29, 0x65, 0x42, 0x59, 0x63, 0xfc, 0x2f, 0x16, 0xc8, 0xe8, 0x16, 0x0c, 0x46,\n\t0x6e, 0x83, 0xcc, 0xd6, 0x6a, 0xc2, 0x26, 0xe0, 0x3e, 0x42, 0xc0, 0xac, 0x49, 0x02, 0x38, 0xa6,\n\t0x65, 0x7f, 0xb9, 0x00, 0x10, 0x47, 0x98, 0xeb, 0xf4, 0x89, 0x73, 0x29, 0x6d, 0xf1, 0xf9, 0x0c,\n\t0x6d, 0x31, 0x8a, 0x09, 0x66, 0xa8, 0x8a, 0xd5, 0x30, 0x15, 0xbb, 0x1a, 0xa6, 0x9e, 0xc3, 0x0c,\n\t0xd3, 0x3c, 0x4c, 0xc4, 0x11, 0xf2, 0xcc, 0x00, 0xa1, 0xec, 0xfe, 0x5e, 0x4b, 0x02, 0x71, 0x1a,\n\t0xdf, 0x26, 0x70, 0x4e, 0x05, 0x0a, 0x13, 0x77, 0x21, 0x73, 0x25, 0xd0, 0xb5, 0xef, 0x1d, 0xc6,\n\t0x29, 0x56, 0x87, 0x17, 0x72, 0xd5, 0xe1, 0xbf, 0x60, 0xc1, 0xb1, 0x64, 0x3b, 0xcc, 0xef, 0xfe,\n\t0x8b, 0x16, 0x1c, 0x8f, 0x73, 0xfc, 0xa4, 0x4d, 0x10, 0x5e, 0x6c, 0x1b, 0xfc, 0x2c, 0xa7, 0xc7,\n\t0x71, 0xd8, 0x96, 0x95, 0x2c, 0xd2, 0x38, 0xbb, 0x45, 0xfb, 0xdf, 0xf5, 0xc0, 0x54, 0x5e, 0xd4,\n\t0x34, 0xe6, 0x69, 0xe4, 0xdc, 0xad, 0x6c, 0x93, 0x3b, 0xc2, 0x9f, 0x23, 0xf6, 0x34, 0xe2, 0xc5,\n\t0x58, 0xc2, 0x93, 0x69, 0x9d, 0x0a, 0x5d, 0xa6, 0x75, 0xda, 0x82, 0x89, 0x3b, 0x5b, 0xc4, 0x5b,\n\t0xf7, 0x42, 0x27, 0x72, 0xc3, 0x0d, 0x97, 0x29, 0xd0, 0xf9, 0xba, 0x79, 0x45, 0x7a, 0x5d, 0xdc,\n\t0x4a, 0x22, 0x1c, 0xec, 0x95, 0xce, 0x18, 0x05, 0x71, 0x97, 0xf9, 0x41, 0x82, 0xd3, 0x44, 0xd3,\n\t0x59, 0xb1, 0x7a, 0x1e, 0x72, 0x56, 0xac, 0x86, 0x2b, 0xcc, 0x6e, 0xa4, 0x1b, 0x09, 0x7b, 0xb6,\n\t0xae, 0xa8, 0x52, 0xac, 0x61, 0xa0, 0x4f, 0x01, 0xd2, 0xd3, 0x1a, 0x1a, 0x41, 0x6b, 0x9f, 0xdb,\n\t0xdf, 0x2b, 0xa1, 0xd5, 0x14, 0xf4, 0x60, 0xaf, 0x34, 0x49, 0x4b, 0x97, 0x3d, 0xfa, 0xfc, 0x8d,\n\t0x23, 0xfd, 0x65, 0x10, 0x42, 0xb7, 0x60, 0x9c, 0x96, 0xb2, 0x1d, 0x25, 0x23, 0xe2, 0xf2, 0x27,\n\t0xeb, 0x33, 0xfb, 0x7b, 0xa5, 0xf1, 0xd5, 0x04, 0x2c, 0x8f, 0x74, 0x8a, 0x48, 0x46, 0x72, 0xac,\n\t0x81, 0x6e, 0x93, 0x63, 0xd9, 0x5f, 0xb4, 0xe0, 0x14, 0xbd, 0xe0, 0x6a, 0xd7, 0x73, 0xb4, 0xe8,\n\t0x4e, 0xd3, 0xe5, 0x7a, 0x1a, 0x71, 0xd5, 0x30, 0x59, 0x5d, 0x79, 0x99, 0x6b, 0x69, 0x14, 0x94,\n\t0x9e, 0xf0, 0xdb, 0xae, 0x57, 0x4b, 0x9e, 0xf0, 0xd7, 0x5c, 0xaf, 0x86, 0x19, 0x44, 0x5d, 0x59,\n\t0xc5, 0xdc, 0x08, 0xfb, 0x5f, 0xa3, 0x7b, 0x95, 0xf6, 0xe5, 0x3b, 0xda, 0x0d, 0xf4, 0x8c, 0xae,\n\t0x53, 0x15, 0xe6, 0x93, 0xb9, 0xfa, 0xd4, 0x2f, 0x58, 0x20, 0xbc, 0xdf, 0xbb, 0xb8, 0x93, 0xdf,\n\t0x86, 0xe1, 0x9d, 0x74, 0xca, 0xd7, 0x73, 0xf9, 0xe1, 0x00, 0x44, 0xa2, 0x57, 0xc5, 0xa2, 0x1b,\n\t0xe9, 0x5d, 0x0d, 0x5a, 0x76, 0x0d, 0x04, 0x74, 0x81, 0x30, 0xad, 0x46, 0xe7, 0xde, 0x3c, 0x0f,\n\t0x50, 0x63, 0xb8, 0x2c, 0x0f, 0x7c, 0xc1, 0xe4, 0xb8, 0x16, 0x14, 0x04, 0x6b, 0x58, 0xf6, 0xaf,\n\t0x16, 0x61, 0x48, 0xa6, 0x18, 0x6d, 0x79, 0xdd, 0xc8, 0x1e, 0x75, 0xc6, 0xa9, 0xd0, 0x91, 0x71,\n\t0x7a, 0x07, 0x26, 0x02, 0x52, 0x6d, 0x05, 0xa1, 0xbb, 0x43, 0x24, 0x58, 0x6c, 0x92, 0x19, 0x9e,\n\t0xe0, 0x21, 0x01, 0x3c, 0x60, 0x21, 0xb2, 0x12, 0x85, 0x4c, 0x69, 0x9c, 0x26, 0x84, 0x2e, 0xc2,\n\t0x20, 0x13, 0xbd, 0x97, 0x63, 0x81, 0xb0, 0x12, 0x7c, 0xad, 0x48, 0x00, 0x8e, 0x71, 0xd8, 0xe3,\n\t0xa0, 0x75, 0x9b, 0xa1, 0x27, 0x3c, 0xc1, 0x2b, 0xbc, 0x18, 0x4b, 0x38, 0xfa, 0x38, 0x8c, 0xf3,\n\t0x7a, 0x81, 0xdf, 0x74, 0x36, 0xb9, 0x4a, 0xb0, 0x57, 0x85, 0xd7, 0x19, 0x5f, 0x49, 0xc0, 0x0e,\n\t0xf6, 0x4a, 0xc7, 0x92, 0x65, 0xac, 0xdb, 0x29, 0x2a, 0xcc, 0xf2, 0x8f, 0x37, 0x42, 0xef, 0x8c,\n\t0x94, 0xc1, 0x60, 0x0c, 0xc2, 0x3a, 0x9e, 0xfd, 0xcf, 0x16, 0x4c, 0x68, 0x53, 0xd5, 0x75, 0x8e,\n\t0x0d, 0x63, 0x90, 0x0a, 0x5d, 0x0c, 0xd2, 0xe1, 0xa2, 0x3d, 0x64, 0xce, 0x70, 0xcf, 0x03, 0x9a,\n\t0x61, 0xfb, 0x33, 0x80, 0xd2, 0xf9, 0x6b, 0xd1, 0x9b, 0xdc, 0x90, 0xdf, 0x0d, 0x48, 0xad, 0x9d,\n\t0xc2, 0x5f, 0x8f, 0x9c, 0x23, 0x3d, 0x57, 0x79, 0x2d, 0xac, 0xea, 0xdb, 0x3f, 0xde, 0x03, 0xe3,\n\t0xc9, 0x58, 0x1d, 0xe8, 0x2a, 0xf4, 0x71, 0x2e, 0x5d, 0x90, 0x6f, 0x63, 0x4f, 0xa6, 0x45, 0xf8,\n\t0xe0, 0xf9, 0x6f, 0x38, 0x77, 0x2f, 0xea, 0xa3, 0x77, 0x60, 0xa8, 0xe6, 0xdf, 0xf1, 0xee, 0x38,\n\t0x41, 0x6d, 0xb6, 0xbc, 0x2c, 0x4e, 0x88, 0x4c, 0x01, 0xd4, 0x42, 0x8c, 0xa6, 0x47, 0x0d, 0x61,\n\t0xb6, 0x13, 0x31, 0x08, 0xeb, 0xe4, 0xd0, 0x1a, 0x4b, 0xc9, 0xb4, 0xe1, 0x6e, 0xae, 0x38, 0xcd,\n\t0x76, 0x5e, 0x5d, 0xf3, 0x12, 0x49, 0xa3, 0x3c, 0x22, 0xf2, 0x36, 0x71, 0x00, 0x8e, 0x09, 0xa1,\n\t0xcf, 0xc1, 0x64, 0x98, 0xa3, 0x12, 0xcb, 0x4b, 0x67, 0xde, 0x4e, 0x4b, 0xc4, 0x85, 0x29, 0x59,\n\t0xca, 0xb3, 0xac, 0x66, 0xd0, 0x5d, 0x40, 0x42, 0xf4, 0xbc, 0x16, 0xb4, 0xc2, 0x68, 0xae, 0xe5,\n\t0xd5, 0xea, 0x32, 0x65, 0xd3, 0x87, 0xb3, 0xe5, 0x04, 0x49, 0x6c, 0xad, 0x6d, 0x16, 0x12, 0x38,\n\t0x8d, 0x81, 0x33, 0xda, 0xb0, 0xbf, 0xd0, 0x03, 0xd3, 0x32, 0x61, 0x74, 0x86, 0xf7, 0xca, 0xe7,\n\t0xad, 0x84, 0xfb, 0xca, 0x2b, 0xf9, 0x07, 0xfd, 0x43, 0x73, 0x62, 0xf9, 0x52, 0xda, 0x89, 0xe5,\n\t0xb5, 0x43, 0x76, 0xe3, 0x81, 0xb9, 0xb2, 0x7c, 0xcf, 0xfa, 0x9f, 0xec, 0x1f, 0x03, 0xe3, 0x6a,\n\t0x46, 0x98, 0xc7, 0x5b, 0x2f, 0x4b, 0xd5, 0x51, 0xce, 0xf3, 0xff, 0xaa, 0xc0, 0x31, 0x2e, 0xfb,\n\t0x61, 0x19, 0x95, 0x9d, 0x9d, 0xb3, 0x8a, 0x0e, 0xa5, 0x49, 0x1a, 0xcd, 0x68, 0x77, 0xc1, 0x0d,\n\t0x44, 0x8f, 0x33, 0x69, 0x2e, 0x0a, 0x9c, 0x34, 0x4d, 0x09, 0xc1, 0x8a, 0x0e, 0xda, 0x81, 0x89,\n\t0x4d, 0x16, 0xf1, 0x49, 0xcb, 0xdd, 0x2c, 0xce, 0x85, 0xcc, 0x7d, 0x7b, 0x65, 0x7e, 0x31, 0x3f,\n\t0xd1, 0x33, 0x7f, 0xfc, 0xa5, 0x50, 0x70, 0xba, 0x09, 0xba, 0x35, 0x8e, 0x39, 0x77, 0xc2, 0xc5,\n\t0xba, 0x13, 0x46, 0x6e, 0x75, 0xae, 0xee, 0x57, 0xb7, 0x2b, 0x91, 0x1f, 0xc8, 0x04, 0x8f, 0x99,\n\t0x6f, 0xaf, 0xd9, 0x5b, 0x95, 0x14, 0xbe, 0xd1, 0xfc, 0xd4, 0xfe, 0x5e, 0xe9, 0x58, 0x16, 0x16,\n\t0xce, 0x6c, 0x0b, 0xad, 0x42, 0xff, 0xa6, 0x1b, 0x61, 0xd2, 0xf4, 0xc5, 0x69, 0x91, 0x79, 0x14,\n\t0x5e, 0xe1, 0x28, 0x46, 0x4b, 0x2c, 0x22, 0x95, 0x00, 0x60, 0x49, 0x04, 0xbd, 0xa9, 0x2e, 0x81,\n\t0xbe, 0x7c, 0x01, 0x6c, 0xda, 0xf6, 0x2e, 0xf3, 0x1a, 0x78, 0x1d, 0x8a, 0xde, 0x46, 0xd8, 0x2e,\n\t0x16, 0xcf, 0xea, 0x92, 0x21, 0x3f, 0x9b, 0xeb, 0xa7, 0x4f, 0xe3, 0xd5, 0xa5, 0x0a, 0xa6, 0x15,\n\t0x99, 0xdb, 0x6b, 0x58, 0x0d, 0x5d, 0x91, 0x2c, 0x2a, 0xd3, 0x0b, 0x78, 0xb9, 0x32, 0x5f, 0x59,\n\t0x36, 0x68, 0xb0, 0xa8, 0x86, 0xac, 0x18, 0xf3, 0xea, 0xe8, 0x26, 0x0c, 0x6e, 0xf2, 0x83, 0x6f,\n\t0x23, 0x14, 0x49, 0xe3, 0x33, 0x2f, 0xa3, 0x2b, 0x12, 0xc9, 0xa0, 0xc7, 0xae, 0x0c, 0x05, 0xc2,\n\t0x31, 0x29, 0xf4, 0x05, 0x0b, 0x8e, 0x27, 0xb3, 0xee, 0x33, 0x67, 0x35, 0x61, 0xa6, 0x96, 0xe9,\n\t0x00, 0x50, 0xce, 0xaa, 0x60, 0x34, 0xc8, 0xd4, 0x2f, 0x99, 0x68, 0x38, 0xbb, 0x39, 0x3a, 0xd0,\n\t0xc1, 0xed, 0x5a, 0xbb, 0xfc, 0x42, 0x89, 0xc0, 0x44, 0x7c, 0xa0, 0xf1, 0xdc, 0x02, 0xa6, 0x15,\n\t0xd1, 0x1a, 0xc0, 0x46, 0x9d, 0x88, 0x88, 0x8f, 0xc2, 0x28, 0x2a, 0xf3, 0xf6, 0x5f, 0x52, 0x58,\n\t0x82, 0x0e, 0x7b, 0x89, 0xc6, 0xa5, 0x58, 0xa3, 0x43, 0x97, 0x52, 0xd5, 0xf5, 0x6a, 0x24, 0x60,\n\t0xca, 0xad, 0x9c, 0xa5, 0x34, 0xcf, 0x30, 0xd2, 0x4b, 0x89, 0x97, 0x63, 0x41, 0x81, 0xd1, 0x22,\n\t0xcd, 0xad, 0x8d, 0xb0, 0x5d, 0x26, 0x8b, 0x79, 0xd2, 0xdc, 0x4a, 0x2c, 0x28, 0x4e, 0x8b, 0x95,\n\t0x63, 0x41, 0x81, 0x6e, 0x99, 0x0d, 0xba, 0x81, 0x48, 0x30, 0x35, 0x96, 0xbf, 0x65, 0x96, 0x38,\n\t0x4a, 0x7a, 0xcb, 0x08, 0x00, 0x96, 0x44, 0xd0, 0xa7, 0x4d, 0x6e, 0x67, 0x9c, 0xd1, 0x7c, 0xa6,\n\t0x03, 0xb7, 0x63, 0xd0, 0x6d, 0xcf, 0xef, 0xbc, 0x02, 0x85, 0x8d, 0x2a, 0x53, 0x8a, 0xe5, 0xe8,\n\t0x0c, 0x96, 0xe6, 0x0d, 0x6a, 0x2c, 0x32, 0xfc, 0xd2, 0x3c, 0x2e, 0x6c, 0x54, 0xe9, 0xd2, 0x77,\n\t0xee, 0xb5, 0x02, 0xb2, 0xe4, 0xd6, 0x89, 0xc8, 0x6a, 0x91, 0xb9, 0xf4, 0x67, 0x25, 0x52, 0x7a,\n\t0xe9, 0x2b, 0x10, 0x8e, 0x49, 0x51, 0xba, 0x31, 0x0f, 0x36, 0x99, 0x4f, 0x57, 0xb1, 0x5a, 0x69,\n\t0xba, 0x99, 0x5c, 0xd8, 0x36, 0x8c, 0xec, 0x84, 0xcd, 0x2d, 0x22, 0x4f, 0x45, 0xa6, 0xae, 0xcb,\n\t0x89, 0x54, 0x71, 0x53, 0x20, 0xba, 0x41, 0xd4, 0x72, 0xea, 0xa9, 0x83, 0x9c, 0x89, 0x56, 0x6e,\n\t0xea, 0xc4, 0xb0, 0x49, 0x9b, 0x2e, 0x84, 0x77, 0x79, 0x38, 0x39, 0xa6, 0xb8, 0xcb, 0x59, 0x08,\n\t0x19, 0x11, 0xe7, 0xf8, 0x42, 0x10, 0x00, 0x2c, 0x89, 0xa8, 0xc1, 0x66, 0x17, 0xd0, 0x89, 0x0e,\n\t0x83, 0x9d, 0xea, 0x6f, 0x3c, 0xd8, 0xec, 0xc2, 0x89, 0x49, 0xb1, 0x8b, 0xa6, 0xb9, 0xe5, 0x47,\n\t0xbe, 0x97, 0xb8, 0xe4, 0x4e, 0xe6, 0x5f, 0x34, 0xe5, 0x0c, 0xfc, 0xf4, 0x45, 0x93, 0x85, 0x85,\n\t0x33, 0xdb, 0xa2, 0x1f, 0xd7, 0x94, 0x91, 0x01, 0x45, 0xe6, 0x8d, 0xa7, 0x72, 0x02, 0x6b, 0xa6,\n\t0xc3, 0x07, 0xf2, 0x8f, 0x53, 0x20, 0x1c, 0x93, 0x42, 0x35, 0x18, 0x6d, 0x1a, 0x11, 0x67, 0x59,\n\t0x06, 0x91, 0x1c, 0xbe, 0x20, 0x2b, 0x36, 0x2d, 0x97, 0x10, 0x99, 0x10, 0x9c, 0xa0, 0xc9, 0x2c,\n\t0xf7, 0xb8, 0xab, 0x1f, 0x4b, 0x30, 0x92, 0x33, 0xd5, 0x19, 0xde, 0x80, 0x7c, 0xaa, 0x05, 0x00,\n\t0x4b, 0x22, 0x74, 0x34, 0x84, 0x83, 0x9a, 0x1f, 0xb2, 0x3c, 0x3d, 0x79, 0x0a, 0xf6, 0x2c, 0x35,\n\t0x91, 0x0c, 0xb3, 0x2e, 0x40, 0x38, 0x26, 0x45, 0x4f, 0x72, 0x7a, 0xe1, 0x9d, 0xce, 0x3f, 0xc9,\n\t0x93, 0xd7, 0x1d, 0x3b, 0xc9, 0xe9, 0x65, 0x57, 0x14, 0x57, 0x9d, 0x8a, 0x0a, 0xce, 0x72, 0x8c,\n\t0xe4, 0xf4, 0x4b, 0x85, 0x15, 0x4f, 0xf7, 0x4b, 0x81, 0x70, 0x4c, 0x8a, 0x5d, 0xc5, 0x2c, 0x34,\n\t0xdd, 0xd9, 0x36, 0x57, 0x31, 0x45, 0xc8, 0xb8, 0x8a, 0xb5, 0xd0, 0x75, 0xf6, 0x8f, 0x17, 0xe0,\n\t0x6c, 0xfb, 0x7d, 0x1b, 0xeb, 0xd0, 0xca, 0xb1, 0xcd, 0x52, 0x42, 0x87, 0xc6, 0x25, 0x3a, 0x31,\n\t0x56, 0xd7, 0x01, 0x87, 0xaf, 0xc0, 0x84, 0x72, 0x47, 0xac, 0xbb, 0xd5, 0x5d, 0x2d, 0xb1, 0xa8,\n\t0x0a, 0xcd, 0x53, 0x49, 0x22, 0xe0, 0x74, 0x1d, 0x34, 0x0b, 0x63, 0x46, 0xe1, 0xf2, 0x82, 0x78,\n\t0xfe, 0xc7, 0xd9, 0x31, 0x4c, 0x30, 0x4e, 0xe2, 0xdb, 0xbf, 0x66, 0xc1, 0xc9, 0x9c, 0x3c, 0xf3,\n\t0x5d, 0xc7, 0xd3, 0xdd, 0x80, 0xb1, 0xa6, 0x59, 0xb5, 0x43, 0x08, 0x70, 0x23, 0x9b, 0xbd, 0xea,\n\t0x6b, 0x02, 0x80, 0x93, 0x44, 0xed, 0x5f, 0x29, 0xc0, 0x99, 0xb6, 0xf6, 0xf5, 0x08, 0xc3, 0x89,\n\t0xcd, 0x46, 0xe8, 0xcc, 0x07, 0xa4, 0x46, 0xbc, 0xc8, 0x75, 0xea, 0x95, 0x26, 0xa9, 0x6a, 0x5a,\n\t0x50, 0x66, 0xa8, 0x7e, 0x65, 0xa5, 0x32, 0x9b, 0xc6, 0xc0, 0x39, 0x35, 0xd1, 0x12, 0xa0, 0x34,\n\t0x44, 0xcc, 0x30, 0x7b, 0xe2, 0xa6, 0xe9, 0xe1, 0x8c, 0x1a, 0xe8, 0x65, 0x18, 0x51, 0x76, 0xfb,\n\t0xda, 0x8c, 0xb3, 0x0b, 0x02, 0xeb, 0x00, 0x6c, 0xe2, 0xa1, 0x4b, 0x3c, 0x6d, 0x92, 0x48, 0xb0,\n\t0x25, 0x54, 0xa6, 0x63, 0x32, 0x27, 0x92, 0x28, 0xc6, 0x3a, 0xce, 0xdc, 0xe5, 0x3f, 0xfd, 0xf6,\n\t0xd9, 0x0f, 0xfd, 0xc5, 0xb7, 0xcf, 0x7e, 0xe8, 0xaf, 0xbe, 0x7d, 0xf6, 0x43, 0x3f, 0xb4, 0x7f,\n\t0xd6, 0xfa, 0xd3, 0xfd, 0xb3, 0xd6, 0x5f, 0xec, 0x9f, 0xb5, 0xfe, 0x6a, 0xff, 0xac, 0xf5, 0xff,\n\t0xee, 0x9f, 0xb5, 0xbe, 0xfc, 0xb7, 0x67, 0x3f, 0xf4, 0x36, 0x8a, 0x23, 0x54, 0x5f, 0xa4, 0xb3,\n\t0x73, 0x71, 0xe7, 0xd2, 0x7f, 0x0a, 0x00, 0x00, 0xff, 0xff, 0x60, 0x45, 0x7a, 0xd6, 0xa3, 0x24,\n\t0x01, 0x00,\n}\n\nfunc (m *AWSElasticBlockStoreVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *AWSElasticBlockStoreVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *AWSElasticBlockStoreVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Partition))\n\ti--\n\tdAtA[i] = 0x18\n\ti -= len(m.FSType)\n\tcopy(dAtA[i:], m.FSType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.VolumeID)\n\tcopy(dAtA[i:], m.VolumeID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.VolumeID)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Affinity) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Affinity) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Affinity) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.PodAntiAffinity != nil {\n\t\t{\n\t\t\tsize, err := m.PodAntiAffinity.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.PodAffinity != nil {\n\t\t{\n\t\t\tsize, err := m.PodAffinity.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.NodeAffinity != nil {\n\t\t{\n\t\t\tsize, err := m.NodeAffinity.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *AppArmorProfile) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *AppArmorProfile) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *AppArmorProfile) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.LocalhostProfile != nil {\n\t\ti -= len(*m.LocalhostProfile)\n\t\tcopy(dAtA[i:], *m.LocalhostProfile)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.LocalhostProfile)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *AttachedVolume) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *AttachedVolume) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *AttachedVolume) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.DevicePath)\n\tcopy(dAtA[i:], m.DevicePath)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.DevicePath)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *AvoidPods) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *AvoidPods) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *AvoidPods) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.PreferAvoidPods) > 0 {\n\t\tfor iNdEx := len(m.PreferAvoidPods) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.PreferAvoidPods[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *AzureDiskVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *AzureDiskVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *AzureDiskVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Kind != nil {\n\t\ti -= len(*m.Kind)\n\t\tcopy(dAtA[i:], *m.Kind)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Kind)))\n\t\ti--\n\t\tdAtA[i] = 0x32\n\t}\n\tif m.ReadOnly != nil {\n\t\ti--\n\t\tif *m.ReadOnly {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x28\n\t}\n\tif m.FSType != nil {\n\t\ti -= len(*m.FSType)\n\t\tcopy(dAtA[i:], *m.FSType)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.FSType)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.CachingMode != nil {\n\t\ti -= len(*m.CachingMode)\n\t\tcopy(dAtA[i:], *m.CachingMode)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.CachingMode)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti -= len(m.DataDiskURI)\n\tcopy(dAtA[i:], m.DataDiskURI)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.DataDiskURI)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.DiskName)\n\tcopy(dAtA[i:], m.DiskName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.DiskName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *AzureFilePersistentVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *AzureFilePersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *AzureFilePersistentVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.SecretNamespace != nil {\n\t\ti -= len(*m.SecretNamespace)\n\t\tcopy(dAtA[i:], *m.SecretNamespace)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.SecretNamespace)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x18\n\ti -= len(m.ShareName)\n\tcopy(dAtA[i:], m.ShareName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ShareName)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.SecretName)\n\tcopy(dAtA[i:], m.SecretName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.SecretName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *AzureFileVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *AzureFileVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *AzureFileVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x18\n\ti -= len(m.ShareName)\n\tcopy(dAtA[i:], m.ShareName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ShareName)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.SecretName)\n\tcopy(dAtA[i:], m.SecretName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.SecretName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Binding) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Binding) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Binding) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Target.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CSIPersistentVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSIPersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSIPersistentVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.NodeExpandSecretRef != nil {\n\t\t{\n\t\t\tsize, err := m.NodeExpandSecretRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x52\n\t}\n\tif m.ControllerExpandSecretRef != nil {\n\t\t{\n\t\t\tsize, err := m.ControllerExpandSecretRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x4a\n\t}\n\tif m.NodePublishSecretRef != nil {\n\t\t{\n\t\t\tsize, err := m.NodePublishSecretRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x42\n\t}\n\tif m.NodeStageSecretRef != nil {\n\t\t{\n\t\t\tsize, err := m.NodeStageSecretRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif m.ControllerPublishSecretRef != nil {\n\t\t{\n\t\t\tsize, err := m.ControllerPublishSecretRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x32\n\t}\n\tif len(m.VolumeAttributes) > 0 {\n\t\tkeysForVolumeAttributes := make([]string, 0, len(m.VolumeAttributes))\n\t\tfor k := range m.VolumeAttributes {\n\t\t\tkeysForVolumeAttributes = append(keysForVolumeAttributes, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForVolumeAttributes)\n\t\tfor iNdEx := len(keysForVolumeAttributes) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.VolumeAttributes[string(keysForVolumeAttributes[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForVolumeAttributes[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForVolumeAttributes[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForVolumeAttributes[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\ti -= len(m.FSType)\n\tcopy(dAtA[i:], m.FSType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType)))\n\ti--\n\tdAtA[i] = 0x22\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x18\n\ti -= len(m.VolumeHandle)\n\tcopy(dAtA[i:], m.VolumeHandle)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.VolumeHandle)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Driver)\n\tcopy(dAtA[i:], m.Driver)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Driver)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CSIVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSIVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSIVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.NodePublishSecretRef != nil {\n\t\t{\n\t\t\tsize, err := m.NodePublishSecretRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif len(m.VolumeAttributes) > 0 {\n\t\tkeysForVolumeAttributes := make([]string, 0, len(m.VolumeAttributes))\n\t\tfor k := range m.VolumeAttributes {\n\t\t\tkeysForVolumeAttributes = append(keysForVolumeAttributes, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForVolumeAttributes)\n\t\tfor iNdEx := len(keysForVolumeAttributes) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.VolumeAttributes[string(keysForVolumeAttributes[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForVolumeAttributes[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForVolumeAttributes[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForVolumeAttributes[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif m.FSType != nil {\n\t\ti -= len(*m.FSType)\n\t\tcopy(dAtA[i:], *m.FSType)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.FSType)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.ReadOnly != nil {\n\t\ti--\n\t\tif *m.ReadOnly {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\ti -= len(m.Driver)\n\tcopy(dAtA[i:], m.Driver)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Driver)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Capabilities) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Capabilities) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Capabilities) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Drop) > 0 {\n\t\tfor iNdEx := len(m.Drop) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Drop[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Drop[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Drop[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Add) > 0 {\n\t\tfor iNdEx := len(m.Add) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Add[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Add[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Add[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CephFSPersistentVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CephFSPersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CephFSPersistentVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x30\n\tif m.SecretRef != nil {\n\t\t{\n\t\t\tsize, err := m.SecretRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\ti -= len(m.SecretFile)\n\tcopy(dAtA[i:], m.SecretFile)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.SecretFile)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.User)\n\tcopy(dAtA[i:], m.User)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.User)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Path)\n\tcopy(dAtA[i:], m.Path)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Path)))\n\ti--\n\tdAtA[i] = 0x12\n\tif len(m.Monitors) > 0 {\n\t\tfor iNdEx := len(m.Monitors) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Monitors[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Monitors[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Monitors[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CephFSVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CephFSVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CephFSVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x30\n\tif m.SecretRef != nil {\n\t\t{\n\t\t\tsize, err := m.SecretRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\ti -= len(m.SecretFile)\n\tcopy(dAtA[i:], m.SecretFile)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.SecretFile)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.User)\n\tcopy(dAtA[i:], m.User)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.User)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Path)\n\tcopy(dAtA[i:], m.Path)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Path)))\n\ti--\n\tdAtA[i] = 0x12\n\tif len(m.Monitors) > 0 {\n\t\tfor iNdEx := len(m.Monitors) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Monitors[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Monitors[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Monitors[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CinderPersistentVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CinderPersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CinderPersistentVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.SecretRef != nil {\n\t\t{\n\t\t\tsize, err := m.SecretRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x18\n\ti -= len(m.FSType)\n\tcopy(dAtA[i:], m.FSType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.VolumeID)\n\tcopy(dAtA[i:], m.VolumeID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.VolumeID)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CinderVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CinderVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CinderVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.SecretRef != nil {\n\t\t{\n\t\t\tsize, err := m.SecretRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x18\n\ti -= len(m.FSType)\n\tcopy(dAtA[i:], m.FSType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.VolumeID)\n\tcopy(dAtA[i:], m.VolumeID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.VolumeID)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ClientIPConfig) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ClientIPConfig) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ClientIPConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.TimeoutSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.TimeoutSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ClusterTrustBundleProjection) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ClusterTrustBundleProjection) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ClusterTrustBundleProjection) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Optional != nil {\n\t\ti--\n\t\tif *m.Optional {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x28\n\t}\n\ti -= len(m.Path)\n\tcopy(dAtA[i:], m.Path)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Path)))\n\ti--\n\tdAtA[i] = 0x22\n\tif m.LabelSelector != nil {\n\t\t{\n\t\t\tsize, err := m.LabelSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.SignerName != nil {\n\t\ti -= len(*m.SignerName)\n\t\tcopy(dAtA[i:], *m.SignerName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.SignerName)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Name != nil {\n\t\ti -= len(*m.Name)\n\t\tcopy(dAtA[i:], *m.Name)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Name)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ComponentCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ComponentCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ComponentCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Error)\n\tcopy(dAtA[i:], m.Error)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Error)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ComponentStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ComponentStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ComponentStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ComponentStatusList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ComponentStatusList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ComponentStatusList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ConfigMap) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ConfigMap) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ConfigMap) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Immutable != nil {\n\t\ti--\n\t\tif *m.Immutable {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif len(m.BinaryData) > 0 {\n\t\tkeysForBinaryData := make([]string, 0, len(m.BinaryData))\n\t\tfor k := range m.BinaryData {\n\t\t\tkeysForBinaryData = append(keysForBinaryData, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForBinaryData)\n\t\tfor iNdEx := len(keysForBinaryData) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.BinaryData[string(keysForBinaryData[iNdEx])]\n\t\t\tbaseI := i\n\t\t\tif v != nil {\n\t\t\t\ti -= len(v)\n\t\t\t\tcopy(dAtA[i:], v)\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\t\ti--\n\t\t\t\tdAtA[i] = 0x12\n\t\t\t}\n\t\t\ti -= len(keysForBinaryData[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForBinaryData[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForBinaryData[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.Data) > 0 {\n\t\tkeysForData := make([]string, 0, len(m.Data))\n\t\tfor k := range m.Data {\n\t\t\tkeysForData = append(keysForData, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForData)\n\t\tfor iNdEx := len(keysForData) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Data[string(keysForData[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForData[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForData[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForData[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ConfigMapEnvSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ConfigMapEnvSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ConfigMapEnvSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Optional != nil {\n\t\ti--\n\t\tif *m.Optional {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\t{\n\t\tsize, err := m.LocalObjectReference.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ConfigMapKeySelector) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ConfigMapKeySelector) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ConfigMapKeySelector) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Optional != nil {\n\t\ti--\n\t\tif *m.Optional {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\ti -= len(m.Key)\n\tcopy(dAtA[i:], m.Key)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Key)))\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.LocalObjectReference.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ConfigMapList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ConfigMapList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ConfigMapList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ConfigMapNodeConfigSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ConfigMapNodeConfigSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ConfigMapNodeConfigSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.KubeletConfigKey)\n\tcopy(dAtA[i:], m.KubeletConfigKey)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.KubeletConfigKey)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.ResourceVersion)\n\tcopy(dAtA[i:], m.ResourceVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ResourceVersion)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.UID)\n\tcopy(dAtA[i:], m.UID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.UID)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Namespace)\n\tcopy(dAtA[i:], m.Namespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ConfigMapProjection) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ConfigMapProjection) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ConfigMapProjection) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Optional != nil {\n\t\ti--\n\t\tif *m.Optional {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.LocalObjectReference.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ConfigMapVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ConfigMapVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ConfigMapVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Optional != nil {\n\t\ti--\n\t\tif *m.Optional {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif m.DefaultMode != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.DefaultMode))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.LocalObjectReference.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Container) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Container) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Container) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.RestartPolicy != nil {\n\t\ti -= len(*m.RestartPolicy)\n\t\tcopy(dAtA[i:], *m.RestartPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.RestartPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xc2\n\t}\n\tif len(m.ResizePolicy) > 0 {\n\t\tfor iNdEx := len(m.ResizePolicy) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ResizePolicy[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1\n\t\t\ti--\n\t\t\tdAtA[i] = 0xba\n\t\t}\n\t}\n\tif m.StartupProbe != nil {\n\t\t{\n\t\t\tsize, err := m.StartupProbe.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xb2\n\t}\n\tif len(m.VolumeDevices) > 0 {\n\t\tfor iNdEx := len(m.VolumeDevices) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.VolumeDevices[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1\n\t\t\ti--\n\t\t\tdAtA[i] = 0xaa\n\t\t}\n\t}\n\ti -= len(m.TerminationMessagePolicy)\n\tcopy(dAtA[i:], m.TerminationMessagePolicy)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.TerminationMessagePolicy)))\n\ti--\n\tdAtA[i] = 0x1\n\ti--\n\tdAtA[i] = 0xa2\n\tif len(m.EnvFrom) > 0 {\n\t\tfor iNdEx := len(m.EnvFrom) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.EnvFrom[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1\n\t\t\ti--\n\t\t\tdAtA[i] = 0x9a\n\t\t}\n\t}\n\ti--\n\tif m.TTY {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x1\n\ti--\n\tdAtA[i] = 0x90\n\ti--\n\tif m.StdinOnce {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x1\n\ti--\n\tdAtA[i] = 0x88\n\ti--\n\tif m.Stdin {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x1\n\ti--\n\tdAtA[i] = 0x80\n\tif m.SecurityContext != nil {\n\t\t{\n\t\t\tsize, err := m.SecurityContext.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x7a\n\t}\n\ti -= len(m.ImagePullPolicy)\n\tcopy(dAtA[i:], m.ImagePullPolicy)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ImagePullPolicy)))\n\ti--\n\tdAtA[i] = 0x72\n\ti -= len(m.TerminationMessagePath)\n\tcopy(dAtA[i:], m.TerminationMessagePath)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.TerminationMessagePath)))\n\ti--\n\tdAtA[i] = 0x6a\n\tif m.Lifecycle != nil {\n\t\t{\n\t\t\tsize, err := m.Lifecycle.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x62\n\t}\n\tif m.ReadinessProbe != nil {\n\t\t{\n\t\t\tsize, err := m.ReadinessProbe.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x5a\n\t}\n\tif m.LivenessProbe != nil {\n\t\t{\n\t\t\tsize, err := m.LivenessProbe.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x52\n\t}\n\tif len(m.VolumeMounts) > 0 {\n\t\tfor iNdEx := len(m.VolumeMounts) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.VolumeMounts[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x4a\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.Resources.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x42\n\tif len(m.Env) > 0 {\n\t\tfor iNdEx := len(m.Env) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Env[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x3a\n\t\t}\n\t}\n\tif len(m.Ports) > 0 {\n\t\tfor iNdEx := len(m.Ports) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ports[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\ti -= len(m.WorkingDir)\n\tcopy(dAtA[i:], m.WorkingDir)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.WorkingDir)))\n\ti--\n\tdAtA[i] = 0x2a\n\tif len(m.Args) > 0 {\n\t\tfor iNdEx := len(m.Args) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Args[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Args[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Args[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif len(m.Command) > 0 {\n\t\tfor iNdEx := len(m.Command) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Command[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Command[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Command[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\ti -= len(m.Image)\n\tcopy(dAtA[i:], m.Image)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Image)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerImage) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerImage) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerImage) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.SizeBytes))\n\ti--\n\tdAtA[i] = 0x10\n\tif len(m.Names) > 0 {\n\t\tfor iNdEx := len(m.Names) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Names[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Names[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Names[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerPort) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerPort) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerPort) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.HostIP)\n\tcopy(dAtA[i:], m.HostIP)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.HostIP)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Protocol)\n\tcopy(dAtA[i:], m.Protocol)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Protocol)))\n\ti--\n\tdAtA[i] = 0x22\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ContainerPort))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.HostPort))\n\ti--\n\tdAtA[i] = 0x10\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerResizePolicy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerResizePolicy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerResizePolicy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.RestartPolicy)\n\tcopy(dAtA[i:], m.RestartPolicy)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.RestartPolicy)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.ResourceName)\n\tcopy(dAtA[i:], m.ResourceName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ResourceName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerState) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerState) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerState) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Terminated != nil {\n\t\t{\n\t\t\tsize, err := m.Terminated.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Running != nil {\n\t\t{\n\t\t\tsize, err := m.Running.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Waiting != nil {\n\t\t{\n\t\t\tsize, err := m.Waiting.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerStateRunning) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerStateRunning) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerStateRunning) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.StartedAt.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerStateTerminated) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerStateTerminated) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerStateTerminated) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.ContainerID)\n\tcopy(dAtA[i:], m.ContainerID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ContainerID)))\n\ti--\n\tdAtA[i] = 0x3a\n\t{\n\t\tsize, err := m.FinishedAt.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x32\n\t{\n\t\tsize, err := m.StartedAt.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Signal))\n\ti--\n\tdAtA[i] = 0x10\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ExitCode))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerStateWaiting) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerStateWaiting) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerStateWaiting) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.AllocatedResourcesStatus) > 0 {\n\t\tfor iNdEx := len(m.AllocatedResourcesStatus) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.AllocatedResourcesStatus[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x72\n\t\t}\n\t}\n\tif m.User != nil {\n\t\t{\n\t\t\tsize, err := m.User.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x6a\n\t}\n\tif len(m.VolumeMounts) > 0 {\n\t\tfor iNdEx := len(m.VolumeMounts) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.VolumeMounts[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x62\n\t\t}\n\t}\n\tif m.Resources != nil {\n\t\t{\n\t\t\tsize, err := m.Resources.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x5a\n\t}\n\tif len(m.AllocatedResources) > 0 {\n\t\tkeysForAllocatedResources := make([]string, 0, len(m.AllocatedResources))\n\t\tfor k := range m.AllocatedResources {\n\t\t\tkeysForAllocatedResources = append(keysForAllocatedResources, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAllocatedResources)\n\t\tfor iNdEx := len(keysForAllocatedResources) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.AllocatedResources[ResourceName(keysForAllocatedResources[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForAllocatedResources[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForAllocatedResources[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForAllocatedResources[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x52\n\t\t}\n\t}\n\tif m.Started != nil {\n\t\ti--\n\t\tif *m.Started {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x48\n\t}\n\ti -= len(m.ContainerID)\n\tcopy(dAtA[i:], m.ContainerID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ContainerID)))\n\ti--\n\tdAtA[i] = 0x42\n\ti -= len(m.ImageID)\n\tcopy(dAtA[i:], m.ImageID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ImageID)))\n\ti--\n\tdAtA[i] = 0x3a\n\ti -= len(m.Image)\n\tcopy(dAtA[i:], m.Image)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Image)))\n\ti--\n\tdAtA[i] = 0x32\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.RestartCount))\n\ti--\n\tdAtA[i] = 0x28\n\ti--\n\tif m.Ready {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x20\n\t{\n\t\tsize, err := m.LastTerminationState.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.State.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ContainerUser) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ContainerUser) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ContainerUser) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Linux != nil {\n\t\t{\n\t\t\tsize, err := m.Linux.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DaemonEndpoint) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DaemonEndpoint) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DaemonEndpoint) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Port))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DownwardAPIProjection) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DownwardAPIProjection) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DownwardAPIProjection) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DownwardAPIVolumeFile) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DownwardAPIVolumeFile) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DownwardAPIVolumeFile) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Mode != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Mode))\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif m.ResourceFieldRef != nil {\n\t\t{\n\t\t\tsize, err := m.ResourceFieldRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.FieldRef != nil {\n\t\t{\n\t\t\tsize, err := m.FieldRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Path)\n\tcopy(dAtA[i:], m.Path)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Path)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DownwardAPIVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DownwardAPIVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DownwardAPIVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.DefaultMode != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.DefaultMode))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EmptyDirVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EmptyDirVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EmptyDirVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.SizeLimit != nil {\n\t\t{\n\t\t\tsize, err := m.SizeLimit.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Medium)\n\tcopy(dAtA[i:], m.Medium)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Medium)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EndpointAddress) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EndpointAddress) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EndpointAddress) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.NodeName != nil {\n\t\ti -= len(*m.NodeName)\n\t\tcopy(dAtA[i:], *m.NodeName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.NodeName)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\ti -= len(m.Hostname)\n\tcopy(dAtA[i:], m.Hostname)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Hostname)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.TargetRef != nil {\n\t\t{\n\t\t\tsize, err := m.TargetRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.IP)\n\tcopy(dAtA[i:], m.IP)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.IP)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EndpointPort) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EndpointPort) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EndpointPort) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.AppProtocol != nil {\n\t\ti -= len(*m.AppProtocol)\n\t\tcopy(dAtA[i:], *m.AppProtocol)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.AppProtocol)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\ti -= len(m.Protocol)\n\tcopy(dAtA[i:], m.Protocol)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Protocol)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Port))\n\ti--\n\tdAtA[i] = 0x10\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EndpointSubset) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EndpointSubset) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EndpointSubset) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Ports) > 0 {\n\t\tfor iNdEx := len(m.Ports) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ports[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.NotReadyAddresses) > 0 {\n\t\tfor iNdEx := len(m.NotReadyAddresses) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.NotReadyAddresses[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Addresses) > 0 {\n\t\tfor iNdEx := len(m.Addresses) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Addresses[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Endpoints) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Endpoints) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Endpoints) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Subsets) > 0 {\n\t\tfor iNdEx := len(m.Subsets) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Subsets[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EndpointsList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EndpointsList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EndpointsList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EnvFromSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EnvFromSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EnvFromSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.SecretRef != nil {\n\t\t{\n\t\t\tsize, err := m.SecretRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.ConfigMapRef != nil {\n\t\t{\n\t\t\tsize, err := m.ConfigMapRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Prefix)\n\tcopy(dAtA[i:], m.Prefix)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Prefix)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EnvVar) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EnvVar) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EnvVar) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ValueFrom != nil {\n\t\t{\n\t\t\tsize, err := m.ValueFrom.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti -= len(m.Value)\n\tcopy(dAtA[i:], m.Value)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Value)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EnvVarSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EnvVarSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EnvVarSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.SecretKeyRef != nil {\n\t\t{\n\t\t\tsize, err := m.SecretKeyRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.ConfigMapKeyRef != nil {\n\t\t{\n\t\t\tsize, err := m.ConfigMapKeyRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.ResourceFieldRef != nil {\n\t\t{\n\t\t\tsize, err := m.ResourceFieldRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.FieldRef != nil {\n\t\t{\n\t\t\tsize, err := m.FieldRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EphemeralContainer) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EphemeralContainer) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EphemeralContainer) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.TargetContainerName)\n\tcopy(dAtA[i:], m.TargetContainerName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.TargetContainerName)))\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.EphemeralContainerCommon.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EphemeralContainerCommon) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EphemeralContainerCommon) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EphemeralContainerCommon) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.RestartPolicy != nil {\n\t\ti -= len(*m.RestartPolicy)\n\t\tcopy(dAtA[i:], *m.RestartPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.RestartPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xc2\n\t}\n\tif len(m.ResizePolicy) > 0 {\n\t\tfor iNdEx := len(m.ResizePolicy) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ResizePolicy[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1\n\t\t\ti--\n\t\t\tdAtA[i] = 0xba\n\t\t}\n\t}\n\tif m.StartupProbe != nil {\n\t\t{\n\t\t\tsize, err := m.StartupProbe.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xb2\n\t}\n\tif len(m.VolumeDevices) > 0 {\n\t\tfor iNdEx := len(m.VolumeDevices) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.VolumeDevices[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1\n\t\t\ti--\n\t\t\tdAtA[i] = 0xaa\n\t\t}\n\t}\n\ti -= len(m.TerminationMessagePolicy)\n\tcopy(dAtA[i:], m.TerminationMessagePolicy)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.TerminationMessagePolicy)))\n\ti--\n\tdAtA[i] = 0x1\n\ti--\n\tdAtA[i] = 0xa2\n\tif len(m.EnvFrom) > 0 {\n\t\tfor iNdEx := len(m.EnvFrom) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.EnvFrom[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1\n\t\t\ti--\n\t\t\tdAtA[i] = 0x9a\n\t\t}\n\t}\n\ti--\n\tif m.TTY {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x1\n\ti--\n\tdAtA[i] = 0x90\n\ti--\n\tif m.StdinOnce {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x1\n\ti--\n\tdAtA[i] = 0x88\n\ti--\n\tif m.Stdin {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x1\n\ti--\n\tdAtA[i] = 0x80\n\tif m.SecurityContext != nil {\n\t\t{\n\t\t\tsize, err := m.SecurityContext.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x7a\n\t}\n\ti -= len(m.ImagePullPolicy)\n\tcopy(dAtA[i:], m.ImagePullPolicy)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ImagePullPolicy)))\n\ti--\n\tdAtA[i] = 0x72\n\ti -= len(m.TerminationMessagePath)\n\tcopy(dAtA[i:], m.TerminationMessagePath)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.TerminationMessagePath)))\n\ti--\n\tdAtA[i] = 0x6a\n\tif m.Lifecycle != nil {\n\t\t{\n\t\t\tsize, err := m.Lifecycle.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x62\n\t}\n\tif m.ReadinessProbe != nil {\n\t\t{\n\t\t\tsize, err := m.ReadinessProbe.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x5a\n\t}\n\tif m.LivenessProbe != nil {\n\t\t{\n\t\t\tsize, err := m.LivenessProbe.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x52\n\t}\n\tif len(m.VolumeMounts) > 0 {\n\t\tfor iNdEx := len(m.VolumeMounts) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.VolumeMounts[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x4a\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.Resources.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x42\n\tif len(m.Env) > 0 {\n\t\tfor iNdEx := len(m.Env) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Env[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x3a\n\t\t}\n\t}\n\tif len(m.Ports) > 0 {\n\t\tfor iNdEx := len(m.Ports) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ports[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\ti -= len(m.WorkingDir)\n\tcopy(dAtA[i:], m.WorkingDir)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.WorkingDir)))\n\ti--\n\tdAtA[i] = 0x2a\n\tif len(m.Args) > 0 {\n\t\tfor iNdEx := len(m.Args) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Args[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Args[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Args[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif len(m.Command) > 0 {\n\t\tfor iNdEx := len(m.Command) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Command[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Command[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Command[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\ti -= len(m.Image)\n\tcopy(dAtA[i:], m.Image)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Image)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EphemeralVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EphemeralVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EphemeralVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.VolumeClaimTemplate != nil {\n\t\t{\n\t\t\tsize, err := m.VolumeClaimTemplate.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Event) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Event) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Event) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.ReportingInstance)\n\tcopy(dAtA[i:], m.ReportingInstance)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ReportingInstance)))\n\ti--\n\tdAtA[i] = 0x7a\n\ti -= len(m.ReportingController)\n\tcopy(dAtA[i:], m.ReportingController)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ReportingController)))\n\ti--\n\tdAtA[i] = 0x72\n\tif m.Related != nil {\n\t\t{\n\t\t\tsize, err := m.Related.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x6a\n\t}\n\ti -= len(m.Action)\n\tcopy(dAtA[i:], m.Action)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Action)))\n\ti--\n\tdAtA[i] = 0x62\n\tif m.Series != nil {\n\t\t{\n\t\t\tsize, err := m.Series.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x5a\n\t}\n\t{\n\t\tsize, err := m.EventTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x52\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0x4a\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Count))\n\ti--\n\tdAtA[i] = 0x40\n\t{\n\t\tsize, err := m.LastTimestamp.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x3a\n\t{\n\t\tsize, err := m.FirstTimestamp.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x32\n\t{\n\t\tsize, err := m.Source.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.InvolvedObject.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EventList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EventList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EventList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EventSeries) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EventSeries) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EventSeries) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.LastObservedTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Count))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EventSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EventSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EventSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Host)\n\tcopy(dAtA[i:], m.Host)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Host)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Component)\n\tcopy(dAtA[i:], m.Component)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Component)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ExecAction) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ExecAction) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ExecAction) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Command) > 0 {\n\t\tfor iNdEx := len(m.Command) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Command[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Command[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Command[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FCVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FCVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FCVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.WWIDs) > 0 {\n\t\tfor iNdEx := len(m.WWIDs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.WWIDs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.WWIDs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.WWIDs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x20\n\ti -= len(m.FSType)\n\tcopy(dAtA[i:], m.FSType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.Lun != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Lun))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif len(m.TargetWWNs) > 0 {\n\t\tfor iNdEx := len(m.TargetWWNs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.TargetWWNs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.TargetWWNs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.TargetWWNs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlexPersistentVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlexPersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlexPersistentVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Options) > 0 {\n\t\tkeysForOptions := make([]string, 0, len(m.Options))\n\t\tfor k := range m.Options {\n\t\t\tkeysForOptions = append(keysForOptions, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForOptions)\n\t\tfor iNdEx := len(keysForOptions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Options[string(keysForOptions[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForOptions[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForOptions[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForOptions[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x20\n\tif m.SecretRef != nil {\n\t\t{\n\t\t\tsize, err := m.SecretRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti -= len(m.FSType)\n\tcopy(dAtA[i:], m.FSType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Driver)\n\tcopy(dAtA[i:], m.Driver)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Driver)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlexVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlexVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlexVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Options) > 0 {\n\t\tkeysForOptions := make([]string, 0, len(m.Options))\n\t\tfor k := range m.Options {\n\t\t\tkeysForOptions = append(keysForOptions, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForOptions)\n\t\tfor iNdEx := len(keysForOptions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Options[string(keysForOptions[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForOptions[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForOptions[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForOptions[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x20\n\tif m.SecretRef != nil {\n\t\t{\n\t\t\tsize, err := m.SecretRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti -= len(m.FSType)\n\tcopy(dAtA[i:], m.FSType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Driver)\n\tcopy(dAtA[i:], m.Driver)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Driver)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlockerVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlockerVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlockerVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.DatasetUUID)\n\tcopy(dAtA[i:], m.DatasetUUID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.DatasetUUID)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.DatasetName)\n\tcopy(dAtA[i:], m.DatasetName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.DatasetName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *GCEPersistentDiskVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GCEPersistentDiskVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *GCEPersistentDiskVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Partition))\n\ti--\n\tdAtA[i] = 0x18\n\ti -= len(m.FSType)\n\tcopy(dAtA[i:], m.FSType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.PDName)\n\tcopy(dAtA[i:], m.PDName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.PDName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *GRPCAction) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GRPCAction) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *GRPCAction) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Service != nil {\n\t\ti -= len(*m.Service)\n\t\tcopy(dAtA[i:], *m.Service)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Service)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Port))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *GitRepoVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GitRepoVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *GitRepoVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Directory)\n\tcopy(dAtA[i:], m.Directory)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Directory)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Revision)\n\tcopy(dAtA[i:], m.Revision)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Revision)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Repository)\n\tcopy(dAtA[i:], m.Repository)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Repository)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *GlusterfsPersistentVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GlusterfsPersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *GlusterfsPersistentVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.EndpointsNamespace != nil {\n\t\ti -= len(*m.EndpointsNamespace)\n\t\tcopy(dAtA[i:], *m.EndpointsNamespace)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.EndpointsNamespace)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x18\n\ti -= len(m.Path)\n\tcopy(dAtA[i:], m.Path)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Path)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.EndpointsName)\n\tcopy(dAtA[i:], m.EndpointsName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.EndpointsName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *GlusterfsVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GlusterfsVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *GlusterfsVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x18\n\ti -= len(m.Path)\n\tcopy(dAtA[i:], m.Path)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Path)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.EndpointsName)\n\tcopy(dAtA[i:], m.EndpointsName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.EndpointsName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HTTPGetAction) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HTTPGetAction) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HTTPGetAction) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.HTTPHeaders) > 0 {\n\t\tfor iNdEx := len(m.HTTPHeaders) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.HTTPHeaders[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\ti -= len(m.Scheme)\n\tcopy(dAtA[i:], m.Scheme)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Scheme)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Host)\n\tcopy(dAtA[i:], m.Host)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Host)))\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Port.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Path)\n\tcopy(dAtA[i:], m.Path)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Path)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HTTPHeader) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HTTPHeader) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HTTPHeader) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Value)\n\tcopy(dAtA[i:], m.Value)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Value)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HostAlias) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HostAlias) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HostAlias) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Hostnames) > 0 {\n\t\tfor iNdEx := len(m.Hostnames) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Hostnames[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Hostnames[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Hostnames[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.IP)\n\tcopy(dAtA[i:], m.IP)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.IP)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HostIP) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HostIP) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HostIP) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.IP)\n\tcopy(dAtA[i:], m.IP)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.IP)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HostPathVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HostPathVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HostPathVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Type != nil {\n\t\ti -= len(*m.Type)\n\t\tcopy(dAtA[i:], *m.Type)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Type)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Path)\n\tcopy(dAtA[i:], m.Path)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Path)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ISCSIPersistentVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ISCSIPersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ISCSIPersistentVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.InitiatorName != nil {\n\t\ti -= len(*m.InitiatorName)\n\t\tcopy(dAtA[i:], *m.InitiatorName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.InitiatorName)))\n\t\ti--\n\t\tdAtA[i] = 0x62\n\t}\n\ti--\n\tif m.SessionCHAPAuth {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x58\n\tif m.SecretRef != nil {\n\t\t{\n\t\t\tsize, err := m.SecretRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x52\n\t}\n\ti--\n\tif m.DiscoveryCHAPAuth {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x40\n\tif len(m.Portals) > 0 {\n\t\tfor iNdEx := len(m.Portals) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Portals[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Portals[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Portals[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x3a\n\t\t}\n\t}\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x30\n\ti -= len(m.FSType)\n\tcopy(dAtA[i:], m.FSType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.ISCSIInterface)\n\tcopy(dAtA[i:], m.ISCSIInterface)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ISCSIInterface)))\n\ti--\n\tdAtA[i] = 0x22\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Lun))\n\ti--\n\tdAtA[i] = 0x18\n\ti -= len(m.IQN)\n\tcopy(dAtA[i:], m.IQN)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.IQN)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.TargetPortal)\n\tcopy(dAtA[i:], m.TargetPortal)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.TargetPortal)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ISCSIVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ISCSIVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ISCSIVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.InitiatorName != nil {\n\t\ti -= len(*m.InitiatorName)\n\t\tcopy(dAtA[i:], *m.InitiatorName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.InitiatorName)))\n\t\ti--\n\t\tdAtA[i] = 0x62\n\t}\n\ti--\n\tif m.SessionCHAPAuth {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x58\n\tif m.SecretRef != nil {\n\t\t{\n\t\t\tsize, err := m.SecretRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x52\n\t}\n\ti--\n\tif m.DiscoveryCHAPAuth {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x40\n\tif len(m.Portals) > 0 {\n\t\tfor iNdEx := len(m.Portals) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Portals[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Portals[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Portals[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x3a\n\t\t}\n\t}\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x30\n\ti -= len(m.FSType)\n\tcopy(dAtA[i:], m.FSType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.ISCSIInterface)\n\tcopy(dAtA[i:], m.ISCSIInterface)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ISCSIInterface)))\n\ti--\n\tdAtA[i] = 0x22\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Lun))\n\ti--\n\tdAtA[i] = 0x18\n\ti -= len(m.IQN)\n\tcopy(dAtA[i:], m.IQN)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.IQN)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.TargetPortal)\n\tcopy(dAtA[i:], m.TargetPortal)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.TargetPortal)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ImageVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ImageVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ImageVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.PullPolicy)\n\tcopy(dAtA[i:], m.PullPolicy)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.PullPolicy)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Reference)\n\tcopy(dAtA[i:], m.Reference)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reference)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *KeyToPath) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *KeyToPath) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *KeyToPath) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Mode != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Mode))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\ti -= len(m.Path)\n\tcopy(dAtA[i:], m.Path)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Path)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Key)\n\tcopy(dAtA[i:], m.Key)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Key)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Lifecycle) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Lifecycle) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Lifecycle) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.PreStop != nil {\n\t\t{\n\t\t\tsize, err := m.PreStop.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.PostStart != nil {\n\t\t{\n\t\t\tsize, err := m.PostStart.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LifecycleHandler) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LifecycleHandler) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LifecycleHandler) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Sleep != nil {\n\t\t{\n\t\t\tsize, err := m.Sleep.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.TCPSocket != nil {\n\t\t{\n\t\t\tsize, err := m.TCPSocket.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.HTTPGet != nil {\n\t\t{\n\t\t\tsize, err := m.HTTPGet.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Exec != nil {\n\t\t{\n\t\t\tsize, err := m.Exec.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LimitRange) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LimitRange) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LimitRange) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LimitRangeItem) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LimitRangeItem) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LimitRangeItem) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.MaxLimitRequestRatio) > 0 {\n\t\tkeysForMaxLimitRequestRatio := make([]string, 0, len(m.MaxLimitRequestRatio))\n\t\tfor k := range m.MaxLimitRequestRatio {\n\t\t\tkeysForMaxLimitRequestRatio = append(keysForMaxLimitRequestRatio, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForMaxLimitRequestRatio)\n\t\tfor iNdEx := len(keysForMaxLimitRequestRatio) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.MaxLimitRequestRatio[ResourceName(keysForMaxLimitRequestRatio[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForMaxLimitRequestRatio[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForMaxLimitRequestRatio[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForMaxLimitRequestRatio[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\tif len(m.DefaultRequest) > 0 {\n\t\tkeysForDefaultRequest := make([]string, 0, len(m.DefaultRequest))\n\t\tfor k := range m.DefaultRequest {\n\t\t\tkeysForDefaultRequest = append(keysForDefaultRequest, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForDefaultRequest)\n\t\tfor iNdEx := len(keysForDefaultRequest) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.DefaultRequest[ResourceName(keysForDefaultRequest[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForDefaultRequest[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForDefaultRequest[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForDefaultRequest[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\tif len(m.Default) > 0 {\n\t\tkeysForDefault := make([]string, 0, len(m.Default))\n\t\tfor k := range m.Default {\n\t\t\tkeysForDefault = append(keysForDefault, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForDefault)\n\t\tfor iNdEx := len(keysForDefault) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Default[ResourceName(keysForDefault[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForDefault[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForDefault[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForDefault[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif len(m.Min) > 0 {\n\t\tkeysForMin := make([]string, 0, len(m.Min))\n\t\tfor k := range m.Min {\n\t\t\tkeysForMin = append(keysForMin, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForMin)\n\t\tfor iNdEx := len(keysForMin) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Min[ResourceName(keysForMin[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForMin[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForMin[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForMin[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.Max) > 0 {\n\t\tkeysForMax := make([]string, 0, len(m.Max))\n\t\tfor k := range m.Max {\n\t\t\tkeysForMax = append(keysForMax, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForMax)\n\t\tfor iNdEx := len(keysForMax) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Max[ResourceName(keysForMax[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForMax[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForMax[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForMax[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LimitRangeList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LimitRangeList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LimitRangeList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LimitRangeSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LimitRangeSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LimitRangeSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Limits) > 0 {\n\t\tfor iNdEx := len(m.Limits) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Limits[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LinuxContainerUser) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LinuxContainerUser) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LinuxContainerUser) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.SupplementalGroups) > 0 {\n\t\tfor iNdEx := len(m.SupplementalGroups) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(m.SupplementalGroups[iNdEx]))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x18\n\t\t}\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.GID))\n\ti--\n\tdAtA[i] = 0x10\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.UID))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *List) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *List) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *List) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LoadBalancerIngress) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LoadBalancerIngress) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LoadBalancerIngress) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Ports) > 0 {\n\t\tfor iNdEx := len(m.Ports) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ports[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif m.IPMode != nil {\n\t\ti -= len(*m.IPMode)\n\t\tcopy(dAtA[i:], *m.IPMode)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.IPMode)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti -= len(m.Hostname)\n\tcopy(dAtA[i:], m.Hostname)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Hostname)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.IP)\n\tcopy(dAtA[i:], m.IP)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.IP)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LoadBalancerStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LoadBalancerStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LoadBalancerStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Ingress) > 0 {\n\t\tfor iNdEx := len(m.Ingress) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ingress[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LocalObjectReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LocalObjectReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LocalObjectReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LocalVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LocalVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LocalVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.FSType != nil {\n\t\ti -= len(*m.FSType)\n\t\tcopy(dAtA[i:], *m.FSType)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.FSType)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Path)\n\tcopy(dAtA[i:], m.Path)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Path)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ModifyVolumeStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ModifyVolumeStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ModifyVolumeStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.TargetVolumeAttributesClassName)\n\tcopy(dAtA[i:], m.TargetVolumeAttributesClassName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.TargetVolumeAttributesClassName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NFSVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NFSVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NFSVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x18\n\ti -= len(m.Path)\n\tcopy(dAtA[i:], m.Path)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Path)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Server)\n\tcopy(dAtA[i:], m.Server)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Server)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Namespace) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Namespace) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Namespace) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NamespaceCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NamespaceCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NamespaceCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x2a\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NamespaceList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NamespaceList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NamespaceList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NamespaceSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NamespaceSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NamespaceSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Finalizers) > 0 {\n\t\tfor iNdEx := len(m.Finalizers) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Finalizers[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Finalizers[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Finalizers[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NamespaceStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NamespaceStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NamespaceStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.Phase)\n\tcopy(dAtA[i:], m.Phase)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Phase)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Node) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Node) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Node) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NodeAddress) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NodeAddress) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NodeAddress) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Address)\n\tcopy(dAtA[i:], m.Address)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Address)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NodeAffinity) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NodeAffinity) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NodeAffinity) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.PreferredDuringSchedulingIgnoredDuringExecution) > 0 {\n\t\tfor iNdEx := len(m.PreferredDuringSchedulingIgnoredDuringExecution) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.PreferredDuringSchedulingIgnoredDuringExecution[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif m.RequiredDuringSchedulingIgnoredDuringExecution != nil {\n\t\t{\n\t\t\tsize, err := m.RequiredDuringSchedulingIgnoredDuringExecution.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NodeCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NodeCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NodeCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x2a\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastHeartbeatTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NodeConfigSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NodeConfigSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NodeConfigSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ConfigMap != nil {\n\t\t{\n\t\t\tsize, err := m.ConfigMap.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NodeConfigStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NodeConfigStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NodeConfigStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Error)\n\tcopy(dAtA[i:], m.Error)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Error)))\n\ti--\n\tdAtA[i] = 0x22\n\tif m.LastKnownGood != nil {\n\t\t{\n\t\t\tsize, err := m.LastKnownGood.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Active != nil {\n\t\t{\n\t\t\tsize, err := m.Active.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Assigned != nil {\n\t\t{\n\t\t\tsize, err := m.Assigned.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NodeDaemonEndpoints) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NodeDaemonEndpoints) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NodeDaemonEndpoints) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.KubeletEndpoint.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NodeFeatures) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NodeFeatures) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NodeFeatures) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.SupplementalGroupsPolicy != nil {\n\t\ti--\n\t\tif *m.SupplementalGroupsPolicy {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NodeList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NodeList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NodeList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NodeProxyOptions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NodeProxyOptions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NodeProxyOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Path)\n\tcopy(dAtA[i:], m.Path)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Path)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NodeRuntimeHandler) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NodeRuntimeHandler) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NodeRuntimeHandler) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Features != nil {\n\t\t{\n\t\t\tsize, err := m.Features.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NodeRuntimeHandlerFeatures) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NodeRuntimeHandlerFeatures) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NodeRuntimeHandlerFeatures) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.UserNamespaces != nil {\n\t\ti--\n\t\tif *m.UserNamespaces {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif m.RecursiveReadOnlyMounts != nil {\n\t\ti--\n\t\tif *m.RecursiveReadOnlyMounts {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NodeSelector) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NodeSelector) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NodeSelector) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.NodeSelectorTerms) > 0 {\n\t\tfor iNdEx := len(m.NodeSelectorTerms) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.NodeSelectorTerms[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NodeSelectorRequirement) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NodeSelectorRequirement) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NodeSelectorRequirement) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Values) > 0 {\n\t\tfor iNdEx := len(m.Values) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Values[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Values[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Values[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\ti -= len(m.Operator)\n\tcopy(dAtA[i:], m.Operator)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Operator)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Key)\n\tcopy(dAtA[i:], m.Key)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Key)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NodeSelectorTerm) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NodeSelectorTerm) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NodeSelectorTerm) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.MatchFields) > 0 {\n\t\tfor iNdEx := len(m.MatchFields) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.MatchFields[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.MatchExpressions) > 0 {\n\t\tfor iNdEx := len(m.MatchExpressions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.MatchExpressions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NodeSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NodeSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NodeSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.PodCIDRs) > 0 {\n\t\tfor iNdEx := len(m.PodCIDRs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.PodCIDRs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.PodCIDRs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.PodCIDRs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x3a\n\t\t}\n\t}\n\tif m.ConfigSource != nil {\n\t\t{\n\t\t\tsize, err := m.ConfigSource.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x32\n\t}\n\tif len(m.Taints) > 0 {\n\t\tfor iNdEx := len(m.Taints) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Taints[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\ti--\n\tif m.Unschedulable {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x20\n\ti -= len(m.ProviderID)\n\tcopy(dAtA[i:], m.ProviderID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ProviderID)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.DoNotUseExternalID)\n\tcopy(dAtA[i:], m.DoNotUseExternalID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.DoNotUseExternalID)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.PodCIDR)\n\tcopy(dAtA[i:], m.PodCIDR)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.PodCIDR)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NodeStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NodeStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NodeStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Features != nil {\n\t\t{\n\t\t\tsize, err := m.Features.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x6a\n\t}\n\tif len(m.RuntimeHandlers) > 0 {\n\t\tfor iNdEx := len(m.RuntimeHandlers) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.RuntimeHandlers[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x62\n\t\t}\n\t}\n\tif m.Config != nil {\n\t\t{\n\t\t\tsize, err := m.Config.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x5a\n\t}\n\tif len(m.VolumesAttached) > 0 {\n\t\tfor iNdEx := len(m.VolumesAttached) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.VolumesAttached[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x52\n\t\t}\n\t}\n\tif len(m.VolumesInUse) > 0 {\n\t\tfor iNdEx := len(m.VolumesInUse) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.VolumesInUse[iNdEx])\n\t\t\tcopy(dAtA[i:], m.VolumesInUse[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.VolumesInUse[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x4a\n\t\t}\n\t}\n\tif len(m.Images) > 0 {\n\t\tfor iNdEx := len(m.Images) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Images[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x42\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.NodeInfo.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x3a\n\t{\n\t\tsize, err := m.DaemonEndpoints.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x32\n\tif len(m.Addresses) > 0 {\n\t\tfor iNdEx := len(m.Addresses) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Addresses[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\ti -= len(m.Phase)\n\tcopy(dAtA[i:], m.Phase)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Phase)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.Allocatable) > 0 {\n\t\tkeysForAllocatable := make([]string, 0, len(m.Allocatable))\n\t\tfor k := range m.Allocatable {\n\t\t\tkeysForAllocatable = append(keysForAllocatable, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAllocatable)\n\t\tfor iNdEx := len(keysForAllocatable) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Allocatable[ResourceName(keysForAllocatable[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForAllocatable[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForAllocatable[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForAllocatable[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Capacity) > 0 {\n\t\tkeysForCapacity := make([]string, 0, len(m.Capacity))\n\t\tfor k := range m.Capacity {\n\t\t\tkeysForCapacity = append(keysForCapacity, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForCapacity)\n\t\tfor iNdEx := len(keysForCapacity) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Capacity[ResourceName(keysForCapacity[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForCapacity[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForCapacity[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForCapacity[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NodeSystemInfo) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NodeSystemInfo) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NodeSystemInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Architecture)\n\tcopy(dAtA[i:], m.Architecture)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Architecture)))\n\ti--\n\tdAtA[i] = 0x52\n\ti -= len(m.OperatingSystem)\n\tcopy(dAtA[i:], m.OperatingSystem)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.OperatingSystem)))\n\ti--\n\tdAtA[i] = 0x4a\n\ti -= len(m.KubeProxyVersion)\n\tcopy(dAtA[i:], m.KubeProxyVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.KubeProxyVersion)))\n\ti--\n\tdAtA[i] = 0x42\n\ti -= len(m.KubeletVersion)\n\tcopy(dAtA[i:], m.KubeletVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.KubeletVersion)))\n\ti--\n\tdAtA[i] = 0x3a\n\ti -= len(m.ContainerRuntimeVersion)\n\tcopy(dAtA[i:], m.ContainerRuntimeVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ContainerRuntimeVersion)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.OSImage)\n\tcopy(dAtA[i:], m.OSImage)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.OSImage)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.KernelVersion)\n\tcopy(dAtA[i:], m.KernelVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.KernelVersion)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.BootID)\n\tcopy(dAtA[i:], m.BootID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.BootID)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.SystemUUID)\n\tcopy(dAtA[i:], m.SystemUUID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.SystemUUID)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.MachineID)\n\tcopy(dAtA[i:], m.MachineID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.MachineID)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ObjectFieldSelector) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ObjectFieldSelector) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ObjectFieldSelector) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.FieldPath)\n\tcopy(dAtA[i:], m.FieldPath)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FieldPath)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.APIVersion)\n\tcopy(dAtA[i:], m.APIVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIVersion)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ObjectReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ObjectReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ObjectReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.FieldPath)\n\tcopy(dAtA[i:], m.FieldPath)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FieldPath)))\n\ti--\n\tdAtA[i] = 0x3a\n\ti -= len(m.ResourceVersion)\n\tcopy(dAtA[i:], m.ResourceVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ResourceVersion)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.APIVersion)\n\tcopy(dAtA[i:], m.APIVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIVersion)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.UID)\n\tcopy(dAtA[i:], m.UID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.UID)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Namespace)\n\tcopy(dAtA[i:], m.Namespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PersistentVolume) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PersistentVolume) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PersistentVolume) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PersistentVolumeClaim) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PersistentVolumeClaim) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PersistentVolumeClaim) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PersistentVolumeClaimCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PersistentVolumeClaimCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PersistentVolumeClaimCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x2a\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastProbeTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PersistentVolumeClaimList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PersistentVolumeClaimList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PersistentVolumeClaimList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PersistentVolumeClaimSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PersistentVolumeClaimSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PersistentVolumeClaimSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.VolumeAttributesClassName != nil {\n\t\ti -= len(*m.VolumeAttributesClassName)\n\t\tcopy(dAtA[i:], *m.VolumeAttributesClassName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.VolumeAttributesClassName)))\n\t\ti--\n\t\tdAtA[i] = 0x4a\n\t}\n\tif m.DataSourceRef != nil {\n\t\t{\n\t\t\tsize, err := m.DataSourceRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x42\n\t}\n\tif m.DataSource != nil {\n\t\t{\n\t\t\tsize, err := m.DataSource.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif m.VolumeMode != nil {\n\t\ti -= len(*m.VolumeMode)\n\t\tcopy(dAtA[i:], *m.VolumeMode)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.VolumeMode)))\n\t\ti--\n\t\tdAtA[i] = 0x32\n\t}\n\tif m.StorageClassName != nil {\n\t\ti -= len(*m.StorageClassName)\n\t\tcopy(dAtA[i:], *m.StorageClassName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.StorageClassName)))\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\ti -= len(m.VolumeName)\n\tcopy(dAtA[i:], m.VolumeName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.VolumeName)))\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Resources.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\tif len(m.AccessModes) > 0 {\n\t\tfor iNdEx := len(m.AccessModes) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.AccessModes[iNdEx])\n\t\t\tcopy(dAtA[i:], m.AccessModes[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.AccessModes[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PersistentVolumeClaimStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PersistentVolumeClaimStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PersistentVolumeClaimStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ModifyVolumeStatus != nil {\n\t\t{\n\t\t\tsize, err := m.ModifyVolumeStatus.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x4a\n\t}\n\tif m.CurrentVolumeAttributesClassName != nil {\n\t\ti -= len(*m.CurrentVolumeAttributesClassName)\n\t\tcopy(dAtA[i:], *m.CurrentVolumeAttributesClassName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.CurrentVolumeAttributesClassName)))\n\t\ti--\n\t\tdAtA[i] = 0x42\n\t}\n\tif len(m.AllocatedResourceStatuses) > 0 {\n\t\tkeysForAllocatedResourceStatuses := make([]string, 0, len(m.AllocatedResourceStatuses))\n\t\tfor k := range m.AllocatedResourceStatuses {\n\t\t\tkeysForAllocatedResourceStatuses = append(keysForAllocatedResourceStatuses, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAllocatedResourceStatuses)\n\t\tfor iNdEx := len(keysForAllocatedResourceStatuses) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.AllocatedResourceStatuses[ResourceName(keysForAllocatedResourceStatuses[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForAllocatedResourceStatuses[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForAllocatedResourceStatuses[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForAllocatedResourceStatuses[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x3a\n\t\t}\n\t}\n\tif len(m.AllocatedResources) > 0 {\n\t\tkeysForAllocatedResources := make([]string, 0, len(m.AllocatedResources))\n\t\tfor k := range m.AllocatedResources {\n\t\t\tkeysForAllocatedResources = append(keysForAllocatedResources, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAllocatedResources)\n\t\tfor iNdEx := len(keysForAllocatedResources) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.AllocatedResources[ResourceName(keysForAllocatedResources[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForAllocatedResources[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForAllocatedResources[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForAllocatedResources[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif len(m.Capacity) > 0 {\n\t\tkeysForCapacity := make([]string, 0, len(m.Capacity))\n\t\tfor k := range m.Capacity {\n\t\t\tkeysForCapacity = append(keysForCapacity, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForCapacity)\n\t\tfor iNdEx := len(keysForCapacity) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Capacity[ResourceName(keysForCapacity[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForCapacity[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForCapacity[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForCapacity[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.AccessModes) > 0 {\n\t\tfor iNdEx := len(m.AccessModes) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.AccessModes[iNdEx])\n\t\t\tcopy(dAtA[i:], m.AccessModes[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.AccessModes[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.Phase)\n\tcopy(dAtA[i:], m.Phase)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Phase)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PersistentVolumeClaimTemplate) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PersistentVolumeClaimTemplate) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PersistentVolumeClaimTemplate) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PersistentVolumeClaimVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PersistentVolumeClaimVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PersistentVolumeClaimVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x10\n\ti -= len(m.ClaimName)\n\tcopy(dAtA[i:], m.ClaimName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ClaimName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PersistentVolumeList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PersistentVolumeList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PersistentVolumeList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PersistentVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PersistentVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.CSI != nil {\n\t\t{\n\t\t\tsize, err := m.CSI.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xb2\n\t}\n\tif m.StorageOS != nil {\n\t\t{\n\t\t\tsize, err := m.StorageOS.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xaa\n\t}\n\tif m.Local != nil {\n\t\t{\n\t\t\tsize, err := m.Local.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xa2\n\t}\n\tif m.ScaleIO != nil {\n\t\t{\n\t\t\tsize, err := m.ScaleIO.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0x9a\n\t}\n\tif m.PortworxVolume != nil {\n\t\t{\n\t\t\tsize, err := m.PortworxVolume.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0x92\n\t}\n\tif m.PhotonPersistentDisk != nil {\n\t\t{\n\t\t\tsize, err := m.PhotonPersistentDisk.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0x8a\n\t}\n\tif m.AzureDisk != nil {\n\t\t{\n\t\t\tsize, err := m.AzureDisk.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0x82\n\t}\n\tif m.Quobyte != nil {\n\t\t{\n\t\t\tsize, err := m.Quobyte.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x7a\n\t}\n\tif m.VsphereVolume != nil {\n\t\t{\n\t\t\tsize, err := m.VsphereVolume.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x72\n\t}\n\tif m.AzureFile != nil {\n\t\t{\n\t\t\tsize, err := m.AzureFile.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x6a\n\t}\n\tif m.FlexVolume != nil {\n\t\t{\n\t\t\tsize, err := m.FlexVolume.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x62\n\t}\n\tif m.Flocker != nil {\n\t\t{\n\t\t\tsize, err := m.Flocker.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x5a\n\t}\n\tif m.FC != nil {\n\t\t{\n\t\t\tsize, err := m.FC.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x52\n\t}\n\tif m.CephFS != nil {\n\t\t{\n\t\t\tsize, err := m.CephFS.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x4a\n\t}\n\tif m.Cinder != nil {\n\t\t{\n\t\t\tsize, err := m.Cinder.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x42\n\t}\n\tif m.ISCSI != nil {\n\t\t{\n\t\t\tsize, err := m.ISCSI.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif m.RBD != nil {\n\t\t{\n\t\t\tsize, err := m.RBD.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x32\n\t}\n\tif m.NFS != nil {\n\t\t{\n\t\t\tsize, err := m.NFS.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.Glusterfs != nil {\n\t\t{\n\t\t\tsize, err := m.Glusterfs.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.HostPath != nil {\n\t\t{\n\t\t\tsize, err := m.HostPath.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.AWSElasticBlockStore != nil {\n\t\t{\n\t\t\tsize, err := m.AWSElasticBlockStore.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.GCEPersistentDisk != nil {\n\t\t{\n\t\t\tsize, err := m.GCEPersistentDisk.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PersistentVolumeSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PersistentVolumeSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PersistentVolumeSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.VolumeAttributesClassName != nil {\n\t\ti -= len(*m.VolumeAttributesClassName)\n\t\tcopy(dAtA[i:], *m.VolumeAttributesClassName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.VolumeAttributesClassName)))\n\t\ti--\n\t\tdAtA[i] = 0x52\n\t}\n\tif m.NodeAffinity != nil {\n\t\t{\n\t\t\tsize, err := m.NodeAffinity.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x4a\n\t}\n\tif m.VolumeMode != nil {\n\t\ti -= len(*m.VolumeMode)\n\t\tcopy(dAtA[i:], *m.VolumeMode)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.VolumeMode)))\n\t\ti--\n\t\tdAtA[i] = 0x42\n\t}\n\tif len(m.MountOptions) > 0 {\n\t\tfor iNdEx := len(m.MountOptions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.MountOptions[iNdEx])\n\t\t\tcopy(dAtA[i:], m.MountOptions[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.MountOptions[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x3a\n\t\t}\n\t}\n\ti -= len(m.StorageClassName)\n\tcopy(dAtA[i:], m.StorageClassName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.StorageClassName)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.PersistentVolumeReclaimPolicy)\n\tcopy(dAtA[i:], m.PersistentVolumeReclaimPolicy)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.PersistentVolumeReclaimPolicy)))\n\ti--\n\tdAtA[i] = 0x2a\n\tif m.ClaimRef != nil {\n\t\t{\n\t\t\tsize, err := m.ClaimRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif len(m.AccessModes) > 0 {\n\t\tfor iNdEx := len(m.AccessModes) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.AccessModes[iNdEx])\n\t\t\tcopy(dAtA[i:], m.AccessModes[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.AccessModes[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.PersistentVolumeSource.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\tif len(m.Capacity) > 0 {\n\t\tkeysForCapacity := make([]string, 0, len(m.Capacity))\n\t\tfor k := range m.Capacity {\n\t\t\tkeysForCapacity = append(keysForCapacity, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForCapacity)\n\t\tfor iNdEx := len(keysForCapacity) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Capacity[ResourceName(keysForCapacity[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForCapacity[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForCapacity[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForCapacity[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PersistentVolumeStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PersistentVolumeStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PersistentVolumeStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.LastPhaseTransitionTime != nil {\n\t\t{\n\t\t\tsize, err := m.LastPhaseTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Phase)\n\tcopy(dAtA[i:], m.Phase)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Phase)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PhotonPersistentDiskVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PhotonPersistentDiskVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PhotonPersistentDiskVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.FSType)\n\tcopy(dAtA[i:], m.FSType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.PdID)\n\tcopy(dAtA[i:], m.PdID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.PdID)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Pod) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Pod) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Pod) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodAffinity) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodAffinity) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodAffinity) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.PreferredDuringSchedulingIgnoredDuringExecution) > 0 {\n\t\tfor iNdEx := len(m.PreferredDuringSchedulingIgnoredDuringExecution) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.PreferredDuringSchedulingIgnoredDuringExecution[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.RequiredDuringSchedulingIgnoredDuringExecution) > 0 {\n\t\tfor iNdEx := len(m.RequiredDuringSchedulingIgnoredDuringExecution) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.RequiredDuringSchedulingIgnoredDuringExecution[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodAffinityTerm) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodAffinityTerm) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodAffinityTerm) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.MismatchLabelKeys) > 0 {\n\t\tfor iNdEx := len(m.MismatchLabelKeys) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.MismatchLabelKeys[iNdEx])\n\t\t\tcopy(dAtA[i:], m.MismatchLabelKeys[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.MismatchLabelKeys[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\tif len(m.MatchLabelKeys) > 0 {\n\t\tfor iNdEx := len(m.MatchLabelKeys) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.MatchLabelKeys[iNdEx])\n\t\t\tcopy(dAtA[i:], m.MatchLabelKeys[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.MatchLabelKeys[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\tif m.NamespaceSelector != nil {\n\t\t{\n\t\t\tsize, err := m.NamespaceSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\ti -= len(m.TopologyKey)\n\tcopy(dAtA[i:], m.TopologyKey)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.TopologyKey)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.Namespaces) > 0 {\n\t\tfor iNdEx := len(m.Namespaces) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Namespaces[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Namespaces[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespaces[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif m.LabelSelector != nil {\n\t\t{\n\t\t\tsize, err := m.LabelSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodAntiAffinity) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodAntiAffinity) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodAntiAffinity) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.PreferredDuringSchedulingIgnoredDuringExecution) > 0 {\n\t\tfor iNdEx := len(m.PreferredDuringSchedulingIgnoredDuringExecution) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.PreferredDuringSchedulingIgnoredDuringExecution[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.RequiredDuringSchedulingIgnoredDuringExecution) > 0 {\n\t\tfor iNdEx := len(m.RequiredDuringSchedulingIgnoredDuringExecution) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.RequiredDuringSchedulingIgnoredDuringExecution[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodAttachOptions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodAttachOptions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodAttachOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Container)\n\tcopy(dAtA[i:], m.Container)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Container)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti--\n\tif m.TTY {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x20\n\ti--\n\tif m.Stderr {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x18\n\ti--\n\tif m.Stdout {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x10\n\ti--\n\tif m.Stdin {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x2a\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastProbeTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodDNSConfig) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodDNSConfig) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodDNSConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Options) > 0 {\n\t\tfor iNdEx := len(m.Options) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Options[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.Searches) > 0 {\n\t\tfor iNdEx := len(m.Searches) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Searches[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Searches[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Searches[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Nameservers) > 0 {\n\t\tfor iNdEx := len(m.Nameservers) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Nameservers[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Nameservers[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Nameservers[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodDNSConfigOption) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodDNSConfigOption) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodDNSConfigOption) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Value != nil {\n\t\ti -= len(*m.Value)\n\t\tcopy(dAtA[i:], *m.Value)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Value)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodExecOptions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodExecOptions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodExecOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Command) > 0 {\n\t\tfor iNdEx := len(m.Command) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Command[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Command[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Command[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\ti -= len(m.Container)\n\tcopy(dAtA[i:], m.Container)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Container)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti--\n\tif m.TTY {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x20\n\ti--\n\tif m.Stderr {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x18\n\ti--\n\tif m.Stdout {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x10\n\ti--\n\tif m.Stdin {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodIP) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodIP) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodIP) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.IP)\n\tcopy(dAtA[i:], m.IP)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.IP)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodLogOptions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodLogOptions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodLogOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Stream != nil {\n\t\ti -= len(*m.Stream)\n\t\tcopy(dAtA[i:], *m.Stream)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Stream)))\n\t\ti--\n\t\tdAtA[i] = 0x52\n\t}\n\ti--\n\tif m.InsecureSkipTLSVerifyBackend {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x48\n\tif m.LimitBytes != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.LimitBytes))\n\t\ti--\n\t\tdAtA[i] = 0x40\n\t}\n\tif m.TailLines != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.TailLines))\n\t\ti--\n\t\tdAtA[i] = 0x38\n\t}\n\ti--\n\tif m.Timestamps {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x30\n\tif m.SinceTime != nil {\n\t\t{\n\t\t\tsize, err := m.SinceTime.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.SinceSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.SinceSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\ti--\n\tif m.Previous {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x18\n\ti--\n\tif m.Follow {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x10\n\ti -= len(m.Container)\n\tcopy(dAtA[i:], m.Container)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Container)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodOS) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodOS) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodOS) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodPortForwardOptions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodPortForwardOptions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodPortForwardOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Ports) > 0 {\n\t\tfor iNdEx := len(m.Ports) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(m.Ports[iNdEx]))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x8\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodProxyOptions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodProxyOptions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodProxyOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Path)\n\tcopy(dAtA[i:], m.Path)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Path)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodReadinessGate) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodReadinessGate) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodReadinessGate) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.ConditionType)\n\tcopy(dAtA[i:], m.ConditionType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ConditionType)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodResourceClaim) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodResourceClaim) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodResourceClaim) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ResourceClaimTemplateName != nil {\n\t\ti -= len(*m.ResourceClaimTemplateName)\n\t\tcopy(dAtA[i:], *m.ResourceClaimTemplateName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.ResourceClaimTemplateName)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.ResourceClaimName != nil {\n\t\ti -= len(*m.ResourceClaimName)\n\t\tcopy(dAtA[i:], *m.ResourceClaimName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.ResourceClaimName)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodResourceClaimStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodResourceClaimStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodResourceClaimStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ResourceClaimName != nil {\n\t\ti -= len(*m.ResourceClaimName)\n\t\tcopy(dAtA[i:], *m.ResourceClaimName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.ResourceClaimName)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodSchedulingGate) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodSchedulingGate) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodSchedulingGate) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodSecurityContext) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodSecurityContext) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodSecurityContext) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.SELinuxChangePolicy != nil {\n\t\ti -= len(*m.SELinuxChangePolicy)\n\t\tcopy(dAtA[i:], *m.SELinuxChangePolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.SELinuxChangePolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x6a\n\t}\n\tif m.SupplementalGroupsPolicy != nil {\n\t\ti -= len(*m.SupplementalGroupsPolicy)\n\t\tcopy(dAtA[i:], *m.SupplementalGroupsPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.SupplementalGroupsPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x62\n\t}\n\tif m.AppArmorProfile != nil {\n\t\t{\n\t\t\tsize, err := m.AppArmorProfile.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x5a\n\t}\n\tif m.SeccompProfile != nil {\n\t\t{\n\t\t\tsize, err := m.SeccompProfile.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x52\n\t}\n\tif m.FSGroupChangePolicy != nil {\n\t\ti -= len(*m.FSGroupChangePolicy)\n\t\tcopy(dAtA[i:], *m.FSGroupChangePolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.FSGroupChangePolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x4a\n\t}\n\tif m.WindowsOptions != nil {\n\t\t{\n\t\t\tsize, err := m.WindowsOptions.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x42\n\t}\n\tif len(m.Sysctls) > 0 {\n\t\tfor iNdEx := len(m.Sysctls) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Sysctls[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x3a\n\t\t}\n\t}\n\tif m.RunAsGroup != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.RunAsGroup))\n\t\ti--\n\t\tdAtA[i] = 0x30\n\t}\n\tif m.FSGroup != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.FSGroup))\n\t\ti--\n\t\tdAtA[i] = 0x28\n\t}\n\tif len(m.SupplementalGroups) > 0 {\n\t\tfor iNdEx := len(m.SupplementalGroups) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(m.SupplementalGroups[iNdEx]))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x20\n\t\t}\n\t}\n\tif m.RunAsNonRoot != nil {\n\t\ti--\n\t\tif *m.RunAsNonRoot {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif m.RunAsUser != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.RunAsUser))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif m.SELinuxOptions != nil {\n\t\t{\n\t\t\tsize, err := m.SELinuxOptions.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodSignature) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodSignature) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodSignature) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.PodController != nil {\n\t\t{\n\t\t\tsize, err := m.PodController.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Resources != nil {\n\t\t{\n\t\t\tsize, err := m.Resources.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2\n\t\ti--\n\t\tdAtA[i] = 0xc2\n\t}\n\tif len(m.ResourceClaims) > 0 {\n\t\tfor iNdEx := len(m.ResourceClaims) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ResourceClaims[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2\n\t\t\ti--\n\t\t\tdAtA[i] = 0xba\n\t\t}\n\t}\n\tif len(m.SchedulingGates) > 0 {\n\t\tfor iNdEx := len(m.SchedulingGates) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.SchedulingGates[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2\n\t\t\ti--\n\t\t\tdAtA[i] = 0xb2\n\t\t}\n\t}\n\tif m.HostUsers != nil {\n\t\ti--\n\t\tif *m.HostUsers {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2\n\t\ti--\n\t\tdAtA[i] = 0xa8\n\t}\n\tif m.OS != nil {\n\t\t{\n\t\t\tsize, err := m.OS.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2\n\t\ti--\n\t\tdAtA[i] = 0xa2\n\t}\n\tif m.SetHostnameAsFQDN != nil {\n\t\ti--\n\t\tif *m.SetHostnameAsFQDN {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2\n\t\ti--\n\t\tdAtA[i] = 0x98\n\t}\n\tif len(m.EphemeralContainers) > 0 {\n\t\tfor iNdEx := len(m.EphemeralContainers) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.EphemeralContainers[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2\n\t\t\ti--\n\t\t\tdAtA[i] = 0x92\n\t\t}\n\t}\n\tif len(m.TopologySpreadConstraints) > 0 {\n\t\tfor iNdEx := len(m.TopologySpreadConstraints) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.TopologySpreadConstraints[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2\n\t\t\ti--\n\t\t\tdAtA[i] = 0x8a\n\t\t}\n\t}\n\tif len(m.Overhead) > 0 {\n\t\tkeysForOverhead := make([]string, 0, len(m.Overhead))\n\t\tfor k := range m.Overhead {\n\t\t\tkeysForOverhead = append(keysForOverhead, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForOverhead)\n\t\tfor iNdEx := len(keysForOverhead) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Overhead[ResourceName(keysForOverhead[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForOverhead[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForOverhead[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForOverhead[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2\n\t\t\ti--\n\t\t\tdAtA[i] = 0x82\n\t\t}\n\t}\n\tif m.PreemptionPolicy != nil {\n\t\ti -= len(*m.PreemptionPolicy)\n\t\tcopy(dAtA[i:], *m.PreemptionPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.PreemptionPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xfa\n\t}\n\tif m.EnableServiceLinks != nil {\n\t\ti--\n\t\tif *m.EnableServiceLinks {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xf0\n\t}\n\tif m.RuntimeClassName != nil {\n\t\ti -= len(*m.RuntimeClassName)\n\t\tcopy(dAtA[i:], *m.RuntimeClassName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.RuntimeClassName)))\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xea\n\t}\n\tif len(m.ReadinessGates) > 0 {\n\t\tfor iNdEx := len(m.ReadinessGates) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ReadinessGates[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1\n\t\t\ti--\n\t\t\tdAtA[i] = 0xe2\n\t\t}\n\t}\n\tif m.ShareProcessNamespace != nil {\n\t\ti--\n\t\tif *m.ShareProcessNamespace {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xd8\n\t}\n\tif m.DNSConfig != nil {\n\t\t{\n\t\t\tsize, err := m.DNSConfig.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xd2\n\t}\n\tif m.Priority != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Priority))\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xc8\n\t}\n\ti -= len(m.PriorityClassName)\n\tcopy(dAtA[i:], m.PriorityClassName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.PriorityClassName)))\n\ti--\n\tdAtA[i] = 0x1\n\ti--\n\tdAtA[i] = 0xc2\n\tif len(m.HostAliases) > 0 {\n\t\tfor iNdEx := len(m.HostAliases) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.HostAliases[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1\n\t\t\ti--\n\t\t\tdAtA[i] = 0xba\n\t\t}\n\t}\n\tif len(m.Tolerations) > 0 {\n\t\tfor iNdEx := len(m.Tolerations) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Tolerations[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1\n\t\t\ti--\n\t\t\tdAtA[i] = 0xb2\n\t\t}\n\t}\n\tif m.AutomountServiceAccountToken != nil {\n\t\ti--\n\t\tif *m.AutomountServiceAccountToken {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xa8\n\t}\n\tif len(m.InitContainers) > 0 {\n\t\tfor iNdEx := len(m.InitContainers) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.InitContainers[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa2\n\t\t}\n\t}\n\ti -= len(m.SchedulerName)\n\tcopy(dAtA[i:], m.SchedulerName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.SchedulerName)))\n\ti--\n\tdAtA[i] = 0x1\n\ti--\n\tdAtA[i] = 0x9a\n\tif m.Affinity != nil {\n\t\t{\n\t\t\tsize, err := m.Affinity.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0x92\n\t}\n\ti -= len(m.Subdomain)\n\tcopy(dAtA[i:], m.Subdomain)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Subdomain)))\n\ti--\n\tdAtA[i] = 0x1\n\ti--\n\tdAtA[i] = 0x8a\n\ti -= len(m.Hostname)\n\tcopy(dAtA[i:], m.Hostname)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Hostname)))\n\ti--\n\tdAtA[i] = 0x1\n\ti--\n\tdAtA[i] = 0x82\n\tif len(m.ImagePullSecrets) > 0 {\n\t\tfor iNdEx := len(m.ImagePullSecrets) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ImagePullSecrets[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x7a\n\t\t}\n\t}\n\tif m.SecurityContext != nil {\n\t\t{\n\t\t\tsize, err := m.SecurityContext.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x72\n\t}\n\ti--\n\tif m.HostIPC {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x68\n\ti--\n\tif m.HostPID {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x60\n\ti--\n\tif m.HostNetwork {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x58\n\ti -= len(m.NodeName)\n\tcopy(dAtA[i:], m.NodeName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.NodeName)))\n\ti--\n\tdAtA[i] = 0x52\n\ti -= len(m.DeprecatedServiceAccount)\n\tcopy(dAtA[i:], m.DeprecatedServiceAccount)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.DeprecatedServiceAccount)))\n\ti--\n\tdAtA[i] = 0x4a\n\ti -= len(m.ServiceAccountName)\n\tcopy(dAtA[i:], m.ServiceAccountName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ServiceAccountName)))\n\ti--\n\tdAtA[i] = 0x42\n\tif len(m.NodeSelector) > 0 {\n\t\tkeysForNodeSelector := make([]string, 0, len(m.NodeSelector))\n\t\tfor k := range m.NodeSelector {\n\t\t\tkeysForNodeSelector = append(keysForNodeSelector, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForNodeSelector)\n\t\tfor iNdEx := len(keysForNodeSelector) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.NodeSelector[string(keysForNodeSelector[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForNodeSelector[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForNodeSelector[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForNodeSelector[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x3a\n\t\t}\n\t}\n\ti -= len(m.DNSPolicy)\n\tcopy(dAtA[i:], m.DNSPolicy)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.DNSPolicy)))\n\ti--\n\tdAtA[i] = 0x32\n\tif m.ActiveDeadlineSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.ActiveDeadlineSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x28\n\t}\n\tif m.TerminationGracePeriodSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.TerminationGracePeriodSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\ti -= len(m.RestartPolicy)\n\tcopy(dAtA[i:], m.RestartPolicy)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.RestartPolicy)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.Containers) > 0 {\n\t\tfor iNdEx := len(m.Containers) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Containers[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Volumes) > 0 {\n\t\tfor iNdEx := len(m.Volumes) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Volumes[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.HostIPs) > 0 {\n\t\tfor iNdEx := len(m.HostIPs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.HostIPs[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1\n\t\t\ti--\n\t\t\tdAtA[i] = 0x82\n\t\t}\n\t}\n\tif len(m.ResourceClaimStatuses) > 0 {\n\t\tfor iNdEx := len(m.ResourceClaimStatuses) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ResourceClaimStatuses[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x7a\n\t\t}\n\t}\n\ti -= len(m.Resize)\n\tcopy(dAtA[i:], m.Resize)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Resize)))\n\ti--\n\tdAtA[i] = 0x72\n\tif len(m.EphemeralContainerStatuses) > 0 {\n\t\tfor iNdEx := len(m.EphemeralContainerStatuses) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.EphemeralContainerStatuses[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x6a\n\t\t}\n\t}\n\tif len(m.PodIPs) > 0 {\n\t\tfor iNdEx := len(m.PodIPs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.PodIPs[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x62\n\t\t}\n\t}\n\ti -= len(m.NominatedNodeName)\n\tcopy(dAtA[i:], m.NominatedNodeName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.NominatedNodeName)))\n\ti--\n\tdAtA[i] = 0x5a\n\tif len(m.InitContainerStatuses) > 0 {\n\t\tfor iNdEx := len(m.InitContainerStatuses) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.InitContainerStatuses[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x52\n\t\t}\n\t}\n\ti -= len(m.QOSClass)\n\tcopy(dAtA[i:], m.QOSClass)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.QOSClass)))\n\ti--\n\tdAtA[i] = 0x4a\n\tif len(m.ContainerStatuses) > 0 {\n\t\tfor iNdEx := len(m.ContainerStatuses) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ContainerStatuses[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x42\n\t\t}\n\t}\n\tif m.StartTime != nil {\n\t\t{\n\t\t\tsize, err := m.StartTime.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\ti -= len(m.PodIP)\n\tcopy(dAtA[i:], m.PodIP)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.PodIP)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.HostIP)\n\tcopy(dAtA[i:], m.HostIP)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.HostIP)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.Phase)\n\tcopy(dAtA[i:], m.Phase)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Phase)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodStatusResult) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodStatusResult) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodStatusResult) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodTemplate) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodTemplate) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodTemplate) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Template.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodTemplateList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodTemplateList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodTemplateList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodTemplateSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodTemplateSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodTemplateSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PortStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PortStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PortStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Error != nil {\n\t\ti -= len(*m.Error)\n\t\tcopy(dAtA[i:], *m.Error)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Error)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti -= len(m.Protocol)\n\tcopy(dAtA[i:], m.Protocol)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Protocol)))\n\ti--\n\tdAtA[i] = 0x12\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Port))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PortworxVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PortworxVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PortworxVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x18\n\ti -= len(m.FSType)\n\tcopy(dAtA[i:], m.FSType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.VolumeID)\n\tcopy(dAtA[i:], m.VolumeID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.VolumeID)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Preconditions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Preconditions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Preconditions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.UID != nil {\n\t\ti -= len(*m.UID)\n\t\tcopy(dAtA[i:], *m.UID)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.UID)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PreferAvoidPodsEntry) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PreferAvoidPodsEntry) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PreferAvoidPodsEntry) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.EvictionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.PodSignature.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PreferredSchedulingTerm) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PreferredSchedulingTerm) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PreferredSchedulingTerm) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Preference.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Weight))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Probe) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Probe) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Probe) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.TerminationGracePeriodSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.TerminationGracePeriodSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x38\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.FailureThreshold))\n\ti--\n\tdAtA[i] = 0x30\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.SuccessThreshold))\n\ti--\n\tdAtA[i] = 0x28\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.PeriodSeconds))\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.TimeoutSeconds))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.InitialDelaySeconds))\n\ti--\n\tdAtA[i] = 0x10\n\t{\n\t\tsize, err := m.ProbeHandler.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ProbeHandler) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ProbeHandler) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ProbeHandler) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.GRPC != nil {\n\t\t{\n\t\t\tsize, err := m.GRPC.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.TCPSocket != nil {\n\t\t{\n\t\t\tsize, err := m.TCPSocket.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.HTTPGet != nil {\n\t\t{\n\t\t\tsize, err := m.HTTPGet.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Exec != nil {\n\t\t{\n\t\t\tsize, err := m.Exec.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ProjectedVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ProjectedVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ProjectedVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.DefaultMode != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.DefaultMode))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif len(m.Sources) > 0 {\n\t\tfor iNdEx := len(m.Sources) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Sources[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *QuobyteVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *QuobyteVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *QuobyteVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Tenant)\n\tcopy(dAtA[i:], m.Tenant)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Tenant)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.Group)\n\tcopy(dAtA[i:], m.Group)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Group)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.User)\n\tcopy(dAtA[i:], m.User)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.User)))\n\ti--\n\tdAtA[i] = 0x22\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x18\n\ti -= len(m.Volume)\n\tcopy(dAtA[i:], m.Volume)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Volume)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Registry)\n\tcopy(dAtA[i:], m.Registry)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Registry)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RBDPersistentVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RBDPersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RBDPersistentVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x40\n\tif m.SecretRef != nil {\n\t\t{\n\t\t\tsize, err := m.SecretRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\ti -= len(m.Keyring)\n\tcopy(dAtA[i:], m.Keyring)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Keyring)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.RadosUser)\n\tcopy(dAtA[i:], m.RadosUser)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.RadosUser)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.RBDPool)\n\tcopy(dAtA[i:], m.RBDPool)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.RBDPool)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.FSType)\n\tcopy(dAtA[i:], m.FSType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.RBDImage)\n\tcopy(dAtA[i:], m.RBDImage)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.RBDImage)))\n\ti--\n\tdAtA[i] = 0x12\n\tif len(m.CephMonitors) > 0 {\n\t\tfor iNdEx := len(m.CephMonitors) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.CephMonitors[iNdEx])\n\t\t\tcopy(dAtA[i:], m.CephMonitors[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.CephMonitors[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RBDVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RBDVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RBDVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x40\n\tif m.SecretRef != nil {\n\t\t{\n\t\t\tsize, err := m.SecretRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\ti -= len(m.Keyring)\n\tcopy(dAtA[i:], m.Keyring)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Keyring)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.RadosUser)\n\tcopy(dAtA[i:], m.RadosUser)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.RadosUser)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.RBDPool)\n\tcopy(dAtA[i:], m.RBDPool)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.RBDPool)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.FSType)\n\tcopy(dAtA[i:], m.FSType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.RBDImage)\n\tcopy(dAtA[i:], m.RBDImage)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.RBDImage)))\n\ti--\n\tdAtA[i] = 0x12\n\tif len(m.CephMonitors) > 0 {\n\t\tfor iNdEx := len(m.CephMonitors) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.CephMonitors[iNdEx])\n\t\t\tcopy(dAtA[i:], m.CephMonitors[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.CephMonitors[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RangeAllocation) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RangeAllocation) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RangeAllocation) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Data != nil {\n\t\ti -= len(m.Data)\n\t\tcopy(dAtA[i:], m.Data)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Data)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti -= len(m.Range)\n\tcopy(dAtA[i:], m.Range)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Range)))\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ReplicationController) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ReplicationController) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ReplicationController) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ReplicationControllerCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ReplicationControllerCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ReplicationControllerCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ReplicationControllerList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ReplicationControllerList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ReplicationControllerList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ReplicationControllerSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ReplicationControllerSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ReplicationControllerSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds))\n\ti--\n\tdAtA[i] = 0x20\n\tif m.Template != nil {\n\t\t{\n\t\t\tsize, err := m.Template.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif len(m.Selector) > 0 {\n\t\tkeysForSelector := make([]string, 0, len(m.Selector))\n\t\tfor k := range m.Selector {\n\t\t\tkeysForSelector = append(keysForSelector, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForSelector)\n\t\tfor iNdEx := len(keysForSelector) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Selector[string(keysForSelector[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForSelector[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForSelector[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForSelector[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif m.Replicas != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Replicas))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ReplicationControllerStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ReplicationControllerStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ReplicationControllerStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.AvailableReplicas))\n\ti--\n\tdAtA[i] = 0x28\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ReadyReplicas))\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.FullyLabeledReplicas))\n\ti--\n\tdAtA[i] = 0x10\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Replicas))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceClaim) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceClaim) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceClaim) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Request)\n\tcopy(dAtA[i:], m.Request)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Request)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceFieldSelector) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceFieldSelector) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceFieldSelector) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Divisor.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Resource)\n\tcopy(dAtA[i:], m.Resource)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Resource)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.ContainerName)\n\tcopy(dAtA[i:], m.ContainerName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ContainerName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceHealth) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceHealth) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceHealth) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Health)\n\tcopy(dAtA[i:], m.Health)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Health)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.ResourceID)\n\tcopy(dAtA[i:], m.ResourceID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ResourceID)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceQuota) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceQuota) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceQuota) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceQuotaList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceQuotaList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceQuotaList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceQuotaSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceQuotaSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceQuotaSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ScopeSelector != nil {\n\t\t{\n\t\t\tsize, err := m.ScopeSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif len(m.Scopes) > 0 {\n\t\tfor iNdEx := len(m.Scopes) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Scopes[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Scopes[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Scopes[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Hard) > 0 {\n\t\tkeysForHard := make([]string, 0, len(m.Hard))\n\t\tfor k := range m.Hard {\n\t\t\tkeysForHard = append(keysForHard, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForHard)\n\t\tfor iNdEx := len(keysForHard) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Hard[ResourceName(keysForHard[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForHard[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForHard[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForHard[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceQuotaStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceQuotaStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceQuotaStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Used) > 0 {\n\t\tkeysForUsed := make([]string, 0, len(m.Used))\n\t\tfor k := range m.Used {\n\t\t\tkeysForUsed = append(keysForUsed, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForUsed)\n\t\tfor iNdEx := len(keysForUsed) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Used[ResourceName(keysForUsed[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForUsed[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForUsed[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForUsed[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Hard) > 0 {\n\t\tkeysForHard := make([]string, 0, len(m.Hard))\n\t\tfor k := range m.Hard {\n\t\t\tkeysForHard = append(keysForHard, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForHard)\n\t\tfor iNdEx := len(keysForHard) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Hard[ResourceName(keysForHard[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForHard[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForHard[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForHard[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceRequirements) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceRequirements) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceRequirements) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Claims) > 0 {\n\t\tfor iNdEx := len(m.Claims) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Claims[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.Requests) > 0 {\n\t\tkeysForRequests := make([]string, 0, len(m.Requests))\n\t\tfor k := range m.Requests {\n\t\t\tkeysForRequests = append(keysForRequests, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForRequests)\n\t\tfor iNdEx := len(keysForRequests) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Requests[ResourceName(keysForRequests[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForRequests[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForRequests[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForRequests[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Limits) > 0 {\n\t\tkeysForLimits := make([]string, 0, len(m.Limits))\n\t\tfor k := range m.Limits {\n\t\t\tkeysForLimits = append(keysForLimits, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForLimits)\n\t\tfor iNdEx := len(keysForLimits) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Limits[ResourceName(keysForLimits[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForLimits[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForLimits[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForLimits[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Resources) > 0 {\n\t\tfor iNdEx := len(m.Resources) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Resources[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SELinuxOptions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SELinuxOptions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SELinuxOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Level)\n\tcopy(dAtA[i:], m.Level)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Level)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Role)\n\tcopy(dAtA[i:], m.Role)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Role)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.User)\n\tcopy(dAtA[i:], m.User)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.User)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ScaleIOPersistentVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ScaleIOPersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ScaleIOPersistentVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x50\n\ti -= len(m.FSType)\n\tcopy(dAtA[i:], m.FSType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType)))\n\ti--\n\tdAtA[i] = 0x4a\n\ti -= len(m.VolumeName)\n\tcopy(dAtA[i:], m.VolumeName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.VolumeName)))\n\ti--\n\tdAtA[i] = 0x42\n\ti -= len(m.StorageMode)\n\tcopy(dAtA[i:], m.StorageMode)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.StorageMode)))\n\ti--\n\tdAtA[i] = 0x3a\n\ti -= len(m.StoragePool)\n\tcopy(dAtA[i:], m.StoragePool)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.StoragePool)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.ProtectionDomain)\n\tcopy(dAtA[i:], m.ProtectionDomain)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ProtectionDomain)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti--\n\tif m.SSLEnabled {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x20\n\tif m.SecretRef != nil {\n\t\t{\n\t\t\tsize, err := m.SecretRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti -= len(m.System)\n\tcopy(dAtA[i:], m.System)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.System)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Gateway)\n\tcopy(dAtA[i:], m.Gateway)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Gateway)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ScaleIOVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ScaleIOVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ScaleIOVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x50\n\ti -= len(m.FSType)\n\tcopy(dAtA[i:], m.FSType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType)))\n\ti--\n\tdAtA[i] = 0x4a\n\ti -= len(m.VolumeName)\n\tcopy(dAtA[i:], m.VolumeName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.VolumeName)))\n\ti--\n\tdAtA[i] = 0x42\n\ti -= len(m.StorageMode)\n\tcopy(dAtA[i:], m.StorageMode)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.StorageMode)))\n\ti--\n\tdAtA[i] = 0x3a\n\ti -= len(m.StoragePool)\n\tcopy(dAtA[i:], m.StoragePool)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.StoragePool)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.ProtectionDomain)\n\tcopy(dAtA[i:], m.ProtectionDomain)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ProtectionDomain)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti--\n\tif m.SSLEnabled {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x20\n\tif m.SecretRef != nil {\n\t\t{\n\t\t\tsize, err := m.SecretRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti -= len(m.System)\n\tcopy(dAtA[i:], m.System)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.System)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Gateway)\n\tcopy(dAtA[i:], m.Gateway)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Gateway)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ScopeSelector) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ScopeSelector) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ScopeSelector) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.MatchExpressions) > 0 {\n\t\tfor iNdEx := len(m.MatchExpressions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.MatchExpressions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ScopedResourceSelectorRequirement) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ScopedResourceSelectorRequirement) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ScopedResourceSelectorRequirement) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Values) > 0 {\n\t\tfor iNdEx := len(m.Values) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Values[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Values[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Values[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\ti -= len(m.Operator)\n\tcopy(dAtA[i:], m.Operator)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Operator)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.ScopeName)\n\tcopy(dAtA[i:], m.ScopeName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ScopeName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SeccompProfile) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SeccompProfile) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SeccompProfile) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.LocalhostProfile != nil {\n\t\ti -= len(*m.LocalhostProfile)\n\t\tcopy(dAtA[i:], *m.LocalhostProfile)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.LocalhostProfile)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Secret) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Secret) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Secret) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Immutable != nil {\n\t\ti--\n\t\tif *m.Immutable {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x28\n\t}\n\tif len(m.StringData) > 0 {\n\t\tkeysForStringData := make([]string, 0, len(m.StringData))\n\t\tfor k := range m.StringData {\n\t\t\tkeysForStringData = append(keysForStringData, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForStringData)\n\t\tfor iNdEx := len(keysForStringData) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.StringData[string(keysForStringData[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForStringData[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForStringData[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForStringData[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.Data) > 0 {\n\t\tkeysForData := make([]string, 0, len(m.Data))\n\t\tfor k := range m.Data {\n\t\t\tkeysForData = append(keysForData, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForData)\n\t\tfor iNdEx := len(keysForData) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Data[string(keysForData[iNdEx])]\n\t\t\tbaseI := i\n\t\t\tif v != nil {\n\t\t\t\ti -= len(v)\n\t\t\t\tcopy(dAtA[i:], v)\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\t\ti--\n\t\t\t\tdAtA[i] = 0x12\n\t\t\t}\n\t\t\ti -= len(keysForData[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForData[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForData[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SecretEnvSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SecretEnvSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SecretEnvSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Optional != nil {\n\t\ti--\n\t\tif *m.Optional {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\t{\n\t\tsize, err := m.LocalObjectReference.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SecretKeySelector) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SecretKeySelector) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SecretKeySelector) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Optional != nil {\n\t\ti--\n\t\tif *m.Optional {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\ti -= len(m.Key)\n\tcopy(dAtA[i:], m.Key)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Key)))\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.LocalObjectReference.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SecretList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SecretList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SecretList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SecretProjection) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SecretProjection) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SecretProjection) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Optional != nil {\n\t\ti--\n\t\tif *m.Optional {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.LocalObjectReference.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SecretReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SecretReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SecretReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Namespace)\n\tcopy(dAtA[i:], m.Namespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SecretVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SecretVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SecretVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Optional != nil {\n\t\ti--\n\t\tif *m.Optional {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif m.DefaultMode != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.DefaultMode))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.SecretName)\n\tcopy(dAtA[i:], m.SecretName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.SecretName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SecurityContext) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SecurityContext) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SecurityContext) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.AppArmorProfile != nil {\n\t\t{\n\t\t\tsize, err := m.AppArmorProfile.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x62\n\t}\n\tif m.SeccompProfile != nil {\n\t\t{\n\t\t\tsize, err := m.SeccompProfile.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x5a\n\t}\n\tif m.WindowsOptions != nil {\n\t\t{\n\t\t\tsize, err := m.WindowsOptions.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x52\n\t}\n\tif m.ProcMount != nil {\n\t\ti -= len(*m.ProcMount)\n\t\tcopy(dAtA[i:], *m.ProcMount)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.ProcMount)))\n\t\ti--\n\t\tdAtA[i] = 0x4a\n\t}\n\tif m.RunAsGroup != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.RunAsGroup))\n\t\ti--\n\t\tdAtA[i] = 0x40\n\t}\n\tif m.AllowPrivilegeEscalation != nil {\n\t\ti--\n\t\tif *m.AllowPrivilegeEscalation {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x38\n\t}\n\tif m.ReadOnlyRootFilesystem != nil {\n\t\ti--\n\t\tif *m.ReadOnlyRootFilesystem {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x30\n\t}\n\tif m.RunAsNonRoot != nil {\n\t\ti--\n\t\tif *m.RunAsNonRoot {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x28\n\t}\n\tif m.RunAsUser != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.RunAsUser))\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif m.SELinuxOptions != nil {\n\t\t{\n\t\t\tsize, err := m.SELinuxOptions.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Privileged != nil {\n\t\ti--\n\t\tif *m.Privileged {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif m.Capabilities != nil {\n\t\t{\n\t\t\tsize, err := m.Capabilities.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SerializedReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SerializedReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SerializedReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Reference.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Service) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Service) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Service) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ServiceAccount) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServiceAccount) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ServiceAccount) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.AutomountServiceAccountToken != nil {\n\t\ti--\n\t\tif *m.AutomountServiceAccountToken {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif len(m.ImagePullSecrets) > 0 {\n\t\tfor iNdEx := len(m.ImagePullSecrets) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ImagePullSecrets[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.Secrets) > 0 {\n\t\tfor iNdEx := len(m.Secrets) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Secrets[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ServiceAccountList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServiceAccountList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ServiceAccountList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ServiceAccountTokenProjection) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServiceAccountTokenProjection) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ServiceAccountTokenProjection) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Path)\n\tcopy(dAtA[i:], m.Path)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Path)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.ExpirationSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.ExpirationSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\ti -= len(m.Audience)\n\tcopy(dAtA[i:], m.Audience)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Audience)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ServiceList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServiceList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ServiceList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ServicePort) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServicePort) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ServicePort) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.AppProtocol != nil {\n\t\ti -= len(*m.AppProtocol)\n\t\tcopy(dAtA[i:], *m.AppProtocol)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.AppProtocol)))\n\t\ti--\n\t\tdAtA[i] = 0x32\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.NodePort))\n\ti--\n\tdAtA[i] = 0x28\n\t{\n\t\tsize, err := m.TargetPort.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x22\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Port))\n\ti--\n\tdAtA[i] = 0x18\n\ti -= len(m.Protocol)\n\tcopy(dAtA[i:], m.Protocol)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Protocol)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ServiceProxyOptions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServiceProxyOptions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ServiceProxyOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Path)\n\tcopy(dAtA[i:], m.Path)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Path)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ServiceSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServiceSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ServiceSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.TrafficDistribution != nil {\n\t\ti -= len(*m.TrafficDistribution)\n\t\tcopy(dAtA[i:], *m.TrafficDistribution)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.TrafficDistribution)))\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xba\n\t}\n\tif m.InternalTrafficPolicy != nil {\n\t\ti -= len(*m.InternalTrafficPolicy)\n\t\tcopy(dAtA[i:], *m.InternalTrafficPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.InternalTrafficPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xb2\n\t}\n\tif m.LoadBalancerClass != nil {\n\t\ti -= len(*m.LoadBalancerClass)\n\t\tcopy(dAtA[i:], *m.LoadBalancerClass)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.LoadBalancerClass)))\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xaa\n\t}\n\tif m.AllocateLoadBalancerNodePorts != nil {\n\t\ti--\n\t\tif *m.AllocateLoadBalancerNodePorts {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xa0\n\t}\n\tif len(m.IPFamilies) > 0 {\n\t\tfor iNdEx := len(m.IPFamilies) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.IPFamilies[iNdEx])\n\t\t\tcopy(dAtA[i:], m.IPFamilies[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.IPFamilies[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1\n\t\t\ti--\n\t\t\tdAtA[i] = 0x9a\n\t\t}\n\t}\n\tif len(m.ClusterIPs) > 0 {\n\t\tfor iNdEx := len(m.ClusterIPs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.ClusterIPs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.ClusterIPs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ClusterIPs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1\n\t\t\ti--\n\t\t\tdAtA[i] = 0x92\n\t\t}\n\t}\n\tif m.IPFamilyPolicy != nil {\n\t\ti -= len(*m.IPFamilyPolicy)\n\t\tcopy(dAtA[i:], *m.IPFamilyPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.IPFamilyPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0x8a\n\t}\n\tif m.SessionAffinityConfig != nil {\n\t\t{\n\t\t\tsize, err := m.SessionAffinityConfig.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x72\n\t}\n\ti--\n\tif m.PublishNotReadyAddresses {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x68\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.HealthCheckNodePort))\n\ti--\n\tdAtA[i] = 0x60\n\ti -= len(m.ExternalTrafficPolicy)\n\tcopy(dAtA[i:], m.ExternalTrafficPolicy)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ExternalTrafficPolicy)))\n\ti--\n\tdAtA[i] = 0x5a\n\ti -= len(m.ExternalName)\n\tcopy(dAtA[i:], m.ExternalName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ExternalName)))\n\ti--\n\tdAtA[i] = 0x52\n\tif len(m.LoadBalancerSourceRanges) > 0 {\n\t\tfor iNdEx := len(m.LoadBalancerSourceRanges) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.LoadBalancerSourceRanges[iNdEx])\n\t\t\tcopy(dAtA[i:], m.LoadBalancerSourceRanges[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.LoadBalancerSourceRanges[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x4a\n\t\t}\n\t}\n\ti -= len(m.LoadBalancerIP)\n\tcopy(dAtA[i:], m.LoadBalancerIP)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.LoadBalancerIP)))\n\ti--\n\tdAtA[i] = 0x42\n\ti -= len(m.SessionAffinity)\n\tcopy(dAtA[i:], m.SessionAffinity)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.SessionAffinity)))\n\ti--\n\tdAtA[i] = 0x3a\n\tif len(m.ExternalIPs) > 0 {\n\t\tfor iNdEx := len(m.ExternalIPs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.ExternalIPs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.ExternalIPs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ExternalIPs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.ClusterIP)\n\tcopy(dAtA[i:], m.ClusterIP)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ClusterIP)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.Selector) > 0 {\n\t\tkeysForSelector := make([]string, 0, len(m.Selector))\n\t\tfor k := range m.Selector {\n\t\t\tkeysForSelector = append(keysForSelector, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForSelector)\n\t\tfor iNdEx := len(keysForSelector) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Selector[string(keysForSelector[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForSelector[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForSelector[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForSelector[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Ports) > 0 {\n\t\tfor iNdEx := len(m.Ports) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ports[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ServiceStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServiceStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ServiceStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.LoadBalancer.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SessionAffinityConfig) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SessionAffinityConfig) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SessionAffinityConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ClientIP != nil {\n\t\t{\n\t\t\tsize, err := m.ClientIP.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *SleepAction) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *SleepAction) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *SleepAction) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Seconds))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StorageOSPersistentVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StorageOSPersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StorageOSPersistentVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.SecretRef != nil {\n\t\t{\n\t\t\tsize, err := m.SecretRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x20\n\ti -= len(m.FSType)\n\tcopy(dAtA[i:], m.FSType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.VolumeNamespace)\n\tcopy(dAtA[i:], m.VolumeNamespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.VolumeNamespace)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.VolumeName)\n\tcopy(dAtA[i:], m.VolumeName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.VolumeName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StorageOSVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StorageOSVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StorageOSVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.SecretRef != nil {\n\t\t{\n\t\t\tsize, err := m.SecretRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x20\n\ti -= len(m.FSType)\n\tcopy(dAtA[i:], m.FSType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.VolumeNamespace)\n\tcopy(dAtA[i:], m.VolumeNamespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.VolumeNamespace)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.VolumeName)\n\tcopy(dAtA[i:], m.VolumeName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.VolumeName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Sysctl) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Sysctl) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Sysctl) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Value)\n\tcopy(dAtA[i:], m.Value)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Value)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TCPSocketAction) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TCPSocketAction) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TCPSocketAction) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Host)\n\tcopy(dAtA[i:], m.Host)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Host)))\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.Port.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Taint) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Taint) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Taint) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.TimeAdded != nil {\n\t\t{\n\t\t\tsize, err := m.TimeAdded.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\ti -= len(m.Effect)\n\tcopy(dAtA[i:], m.Effect)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Effect)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Value)\n\tcopy(dAtA[i:], m.Value)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Value)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Key)\n\tcopy(dAtA[i:], m.Key)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Key)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Toleration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Toleration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Toleration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.TolerationSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.TolerationSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x28\n\t}\n\ti -= len(m.Effect)\n\tcopy(dAtA[i:], m.Effect)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Effect)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Value)\n\tcopy(dAtA[i:], m.Value)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Value)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Operator)\n\tcopy(dAtA[i:], m.Operator)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Operator)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Key)\n\tcopy(dAtA[i:], m.Key)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Key)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TopologySelectorLabelRequirement) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TopologySelectorLabelRequirement) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TopologySelectorLabelRequirement) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Values) > 0 {\n\t\tfor iNdEx := len(m.Values) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Values[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Values[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Values[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.Key)\n\tcopy(dAtA[i:], m.Key)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Key)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TopologySelectorTerm) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TopologySelectorTerm) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TopologySelectorTerm) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.MatchLabelExpressions) > 0 {\n\t\tfor iNdEx := len(m.MatchLabelExpressions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.MatchLabelExpressions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TopologySpreadConstraint) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TopologySpreadConstraint) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TopologySpreadConstraint) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.MatchLabelKeys) > 0 {\n\t\tfor iNdEx := len(m.MatchLabelKeys) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.MatchLabelKeys[iNdEx])\n\t\t\tcopy(dAtA[i:], m.MatchLabelKeys[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.MatchLabelKeys[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x42\n\t\t}\n\t}\n\tif m.NodeTaintsPolicy != nil {\n\t\ti -= len(*m.NodeTaintsPolicy)\n\t\tcopy(dAtA[i:], *m.NodeTaintsPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.NodeTaintsPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif m.NodeAffinityPolicy != nil {\n\t\ti -= len(*m.NodeAffinityPolicy)\n\t\tcopy(dAtA[i:], *m.NodeAffinityPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.NodeAffinityPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x32\n\t}\n\tif m.MinDomains != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.MinDomains))\n\t\ti--\n\t\tdAtA[i] = 0x28\n\t}\n\tif m.LabelSelector != nil {\n\t\t{\n\t\t\tsize, err := m.LabelSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\ti -= len(m.WhenUnsatisfiable)\n\tcopy(dAtA[i:], m.WhenUnsatisfiable)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.WhenUnsatisfiable)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.TopologyKey)\n\tcopy(dAtA[i:], m.TopologyKey)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.TopologyKey)))\n\ti--\n\tdAtA[i] = 0x12\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MaxSkew))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TypedLocalObjectReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TypedLocalObjectReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TypedLocalObjectReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0x12\n\tif m.APIGroup != nil {\n\t\ti -= len(*m.APIGroup)\n\t\tcopy(dAtA[i:], *m.APIGroup)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.APIGroup)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TypedObjectReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TypedObjectReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TypedObjectReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Namespace != nil {\n\t\ti -= len(*m.Namespace)\n\t\tcopy(dAtA[i:], *m.Namespace)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Namespace)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0x12\n\tif m.APIGroup != nil {\n\t\ti -= len(*m.APIGroup)\n\t\tcopy(dAtA[i:], *m.APIGroup)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.APIGroup)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Volume) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Volume) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Volume) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.VolumeSource.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeDevice) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeDevice) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeDevice) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.DevicePath)\n\tcopy(dAtA[i:], m.DevicePath)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.DevicePath)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeMount) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeMount) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeMount) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.RecursiveReadOnly != nil {\n\t\ti -= len(*m.RecursiveReadOnly)\n\t\tcopy(dAtA[i:], *m.RecursiveReadOnly)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.RecursiveReadOnly)))\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\ti -= len(m.SubPathExpr)\n\tcopy(dAtA[i:], m.SubPathExpr)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.SubPathExpr)))\n\ti--\n\tdAtA[i] = 0x32\n\tif m.MountPropagation != nil {\n\t\ti -= len(*m.MountPropagation)\n\t\tcopy(dAtA[i:], *m.MountPropagation)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.MountPropagation)))\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\ti -= len(m.SubPath)\n\tcopy(dAtA[i:], m.SubPath)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.SubPath)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.MountPath)\n\tcopy(dAtA[i:], m.MountPath)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.MountPath)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x10\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeMountStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeMountStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeMountStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.RecursiveReadOnly != nil {\n\t\ti -= len(*m.RecursiveReadOnly)\n\t\tcopy(dAtA[i:], *m.RecursiveReadOnly)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.RecursiveReadOnly)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\ti--\n\tif m.ReadOnly {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x18\n\ti -= len(m.MountPath)\n\tcopy(dAtA[i:], m.MountPath)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.MountPath)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeNodeAffinity) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeNodeAffinity) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeNodeAffinity) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Required != nil {\n\t\t{\n\t\t\tsize, err := m.Required.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeProjection) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeProjection) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeProjection) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ClusterTrustBundle != nil {\n\t\t{\n\t\t\tsize, err := m.ClusterTrustBundle.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.ServiceAccountToken != nil {\n\t\t{\n\t\t\tsize, err := m.ServiceAccountToken.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.ConfigMap != nil {\n\t\t{\n\t\t\tsize, err := m.ConfigMap.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.DownwardAPI != nil {\n\t\t{\n\t\t\tsize, err := m.DownwardAPI.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Secret != nil {\n\t\t{\n\t\t\tsize, err := m.Secret.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeResourceRequirements) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeResourceRequirements) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeResourceRequirements) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Requests) > 0 {\n\t\tkeysForRequests := make([]string, 0, len(m.Requests))\n\t\tfor k := range m.Requests {\n\t\t\tkeysForRequests = append(keysForRequests, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForRequests)\n\t\tfor iNdEx := len(keysForRequests) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Requests[ResourceName(keysForRequests[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForRequests[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForRequests[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForRequests[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Limits) > 0 {\n\t\tkeysForLimits := make([]string, 0, len(m.Limits))\n\t\tfor k := range m.Limits {\n\t\t\tkeysForLimits = append(keysForLimits, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForLimits)\n\t\tfor iNdEx := len(keysForLimits) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Limits[ResourceName(keysForLimits[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForLimits[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForLimits[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForLimits[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Image != nil {\n\t\t{\n\t\t\tsize, err := m.Image.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xf2\n\t}\n\tif m.Ephemeral != nil {\n\t\t{\n\t\t\tsize, err := m.Ephemeral.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xea\n\t}\n\tif m.CSI != nil {\n\t\t{\n\t\t\tsize, err := m.CSI.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xe2\n\t}\n\tif m.StorageOS != nil {\n\t\t{\n\t\t\tsize, err := m.StorageOS.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xda\n\t}\n\tif m.Projected != nil {\n\t\t{\n\t\t\tsize, err := m.Projected.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xd2\n\t}\n\tif m.ScaleIO != nil {\n\t\t{\n\t\t\tsize, err := m.ScaleIO.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xca\n\t}\n\tif m.PortworxVolume != nil {\n\t\t{\n\t\t\tsize, err := m.PortworxVolume.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xc2\n\t}\n\tif m.PhotonPersistentDisk != nil {\n\t\t{\n\t\t\tsize, err := m.PhotonPersistentDisk.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xba\n\t}\n\tif m.AzureDisk != nil {\n\t\t{\n\t\t\tsize, err := m.AzureDisk.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xb2\n\t}\n\tif m.Quobyte != nil {\n\t\t{\n\t\t\tsize, err := m.Quobyte.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xaa\n\t}\n\tif m.VsphereVolume != nil {\n\t\t{\n\t\t\tsize, err := m.VsphereVolume.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0xa2\n\t}\n\tif m.ConfigMap != nil {\n\t\t{\n\t\t\tsize, err := m.ConfigMap.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0x9a\n\t}\n\tif m.AzureFile != nil {\n\t\t{\n\t\t\tsize, err := m.AzureFile.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0x92\n\t}\n\tif m.FC != nil {\n\t\t{\n\t\t\tsize, err := m.FC.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0x8a\n\t}\n\tif m.DownwardAPI != nil {\n\t\t{\n\t\t\tsize, err := m.DownwardAPI.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1\n\t\ti--\n\t\tdAtA[i] = 0x82\n\t}\n\tif m.Flocker != nil {\n\t\t{\n\t\t\tsize, err := m.Flocker.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x7a\n\t}\n\tif m.CephFS != nil {\n\t\t{\n\t\t\tsize, err := m.CephFS.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x72\n\t}\n\tif m.Cinder != nil {\n\t\t{\n\t\t\tsize, err := m.Cinder.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x6a\n\t}\n\tif m.FlexVolume != nil {\n\t\t{\n\t\t\tsize, err := m.FlexVolume.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x62\n\t}\n\tif m.RBD != nil {\n\t\t{\n\t\t\tsize, err := m.RBD.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x5a\n\t}\n\tif m.PersistentVolumeClaim != nil {\n\t\t{\n\t\t\tsize, err := m.PersistentVolumeClaim.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x52\n\t}\n\tif m.Glusterfs != nil {\n\t\t{\n\t\t\tsize, err := m.Glusterfs.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x4a\n\t}\n\tif m.ISCSI != nil {\n\t\t{\n\t\t\tsize, err := m.ISCSI.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x42\n\t}\n\tif m.NFS != nil {\n\t\t{\n\t\t\tsize, err := m.NFS.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif m.Secret != nil {\n\t\t{\n\t\t\tsize, err := m.Secret.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x32\n\t}\n\tif m.GitRepo != nil {\n\t\t{\n\t\t\tsize, err := m.GitRepo.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.AWSElasticBlockStore != nil {\n\t\t{\n\t\t\tsize, err := m.AWSElasticBlockStore.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.GCEPersistentDisk != nil {\n\t\t{\n\t\t\tsize, err := m.GCEPersistentDisk.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.EmptyDir != nil {\n\t\t{\n\t\t\tsize, err := m.EmptyDir.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.HostPath != nil {\n\t\t{\n\t\t\tsize, err := m.HostPath.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VsphereVirtualDiskVolumeSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VsphereVirtualDiskVolumeSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VsphereVirtualDiskVolumeSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.StoragePolicyID)\n\tcopy(dAtA[i:], m.StoragePolicyID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.StoragePolicyID)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.StoragePolicyName)\n\tcopy(dAtA[i:], m.StoragePolicyName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.StoragePolicyName)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.FSType)\n\tcopy(dAtA[i:], m.FSType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FSType)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.VolumePath)\n\tcopy(dAtA[i:], m.VolumePath)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.VolumePath)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *WeightedPodAffinityTerm) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *WeightedPodAffinityTerm) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *WeightedPodAffinityTerm) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.PodAffinityTerm.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Weight))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *WindowsSecurityContextOptions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *WindowsSecurityContextOptions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *WindowsSecurityContextOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.HostProcess != nil {\n\t\ti--\n\t\tif *m.HostProcess {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif m.RunAsUserName != nil {\n\t\ti -= len(*m.RunAsUserName)\n\t\tcopy(dAtA[i:], *m.RunAsUserName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.RunAsUserName)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.GMSACredentialSpec != nil {\n\t\ti -= len(*m.GMSACredentialSpec)\n\t\tcopy(dAtA[i:], *m.GMSACredentialSpec)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.GMSACredentialSpec)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.GMSACredentialSpecName != nil {\n\t\ti -= len(*m.GMSACredentialSpecName)\n\t\tcopy(dAtA[i:], *m.GMSACredentialSpecName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.GMSACredentialSpecName)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *AWSElasticBlockStoreVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.VolumeID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FSType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.Partition))\n\tn += 2\n\treturn n\n}\n\nfunc (m *Affinity) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.NodeAffinity != nil {\n\t\tl = m.NodeAffinity.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.PodAffinity != nil {\n\t\tl = m.PodAffinity.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.PodAntiAffinity != nil {\n\t\tl = m.PodAntiAffinity.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *AppArmorProfile) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.LocalhostProfile != nil {\n\t\tl = len(*m.LocalhostProfile)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *AttachedVolume) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.DevicePath)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *AvoidPods) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.PreferAvoidPods) > 0 {\n\t\tfor _, e := range m.PreferAvoidPods {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *AzureDiskVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.DiskName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.DataDiskURI)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.CachingMode != nil {\n\t\tl = len(*m.CachingMode)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.FSType != nil {\n\t\tl = len(*m.FSType)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ReadOnly != nil {\n\t\tn += 2\n\t}\n\tif m.Kind != nil {\n\t\tl = len(*m.Kind)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *AzureFilePersistentVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.SecretName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.ShareName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\tif m.SecretNamespace != nil {\n\t\tl = len(*m.SecretNamespace)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *AzureFileVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.SecretName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.ShareName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\treturn n\n}\n\nfunc (m *Binding) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Target.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *CSIPersistentVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Driver)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.VolumeHandle)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\tl = len(m.FSType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.VolumeAttributes) > 0 {\n\t\tfor k, v := range m.VolumeAttributes {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif m.ControllerPublishSecretRef != nil {\n\t\tl = m.ControllerPublishSecretRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.NodeStageSecretRef != nil {\n\t\tl = m.NodeStageSecretRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.NodePublishSecretRef != nil {\n\t\tl = m.NodePublishSecretRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ControllerExpandSecretRef != nil {\n\t\tl = m.ControllerExpandSecretRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.NodeExpandSecretRef != nil {\n\t\tl = m.NodeExpandSecretRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *CSIVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Driver)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.ReadOnly != nil {\n\t\tn += 2\n\t}\n\tif m.FSType != nil {\n\t\tl = len(*m.FSType)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.VolumeAttributes) > 0 {\n\t\tfor k, v := range m.VolumeAttributes {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif m.NodePublishSecretRef != nil {\n\t\tl = m.NodePublishSecretRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *Capabilities) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Add) > 0 {\n\t\tfor _, s := range m.Add {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Drop) > 0 {\n\t\tfor _, s := range m.Drop {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *CephFSPersistentVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Monitors) > 0 {\n\t\tfor _, s := range m.Monitors {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.Path)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.User)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.SecretFile)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.SecretRef != nil {\n\t\tl = m.SecretRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 2\n\treturn n\n}\n\nfunc (m *CephFSVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Monitors) > 0 {\n\t\tfor _, s := range m.Monitors {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.Path)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.User)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.SecretFile)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.SecretRef != nil {\n\t\tl = m.SecretRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 2\n\treturn n\n}\n\nfunc (m *CinderPersistentVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.VolumeID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FSType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\tif m.SecretRef != nil {\n\t\tl = m.SecretRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *CinderVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.VolumeID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FSType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\tif m.SecretRef != nil {\n\t\tl = m.SecretRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ClientIPConfig) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.TimeoutSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.TimeoutSeconds))\n\t}\n\treturn n\n}\n\nfunc (m *ClusterTrustBundleProjection) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Name != nil {\n\t\tl = len(*m.Name)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.SignerName != nil {\n\t\tl = len(*m.SignerName)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.LabelSelector != nil {\n\t\tl = m.LabelSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.Path)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Optional != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *ComponentCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Error)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ComponentStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ComponentStatusList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ConfigMap) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Data) > 0 {\n\t\tfor k, v := range m.Data {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.BinaryData) > 0 {\n\t\tfor k, v := range m.BinaryData {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = 0\n\t\t\tif v != nil {\n\t\t\t\tl = 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\t}\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + l\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif m.Immutable != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *ConfigMapEnvSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.LocalObjectReference.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Optional != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *ConfigMapKeySelector) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.LocalObjectReference.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Key)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Optional != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *ConfigMapList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ConfigMapNodeConfigSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Namespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.UID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.ResourceVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.KubeletConfigKey)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ConfigMapProjection) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.LocalObjectReference.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.Optional != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *ConfigMapVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.LocalObjectReference.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.DefaultMode != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.DefaultMode))\n\t}\n\tif m.Optional != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *Container) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Image)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Command) > 0 {\n\t\tfor _, s := range m.Command {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Args) > 0 {\n\t\tfor _, s := range m.Args {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.WorkingDir)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Ports) > 0 {\n\t\tfor _, e := range m.Ports {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Env) > 0 {\n\t\tfor _, e := range m.Env {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = m.Resources.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.VolumeMounts) > 0 {\n\t\tfor _, e := range m.VolumeMounts {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.LivenessProbe != nil {\n\t\tl = m.LivenessProbe.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ReadinessProbe != nil {\n\t\tl = m.ReadinessProbe.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Lifecycle != nil {\n\t\tl = m.Lifecycle.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.TerminationMessagePath)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.ImagePullPolicy)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.SecurityContext != nil {\n\t\tl = m.SecurityContext.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 3\n\tn += 3\n\tn += 3\n\tif len(m.EnvFrom) > 0 {\n\t\tfor _, e := range m.EnvFrom {\n\t\t\tl = e.Size()\n\t\t\tn += 2 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.TerminationMessagePolicy)\n\tn += 2 + l + sovGenerated(uint64(l))\n\tif len(m.VolumeDevices) > 0 {\n\t\tfor _, e := range m.VolumeDevices {\n\t\t\tl = e.Size()\n\t\t\tn += 2 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.StartupProbe != nil {\n\t\tl = m.StartupProbe.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.ResizePolicy) > 0 {\n\t\tfor _, e := range m.ResizePolicy {\n\t\t\tl = e.Size()\n\t\t\tn += 2 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.RestartPolicy != nil {\n\t\tl = len(*m.RestartPolicy)\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ContainerImage) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Names) > 0 {\n\t\tfor _, s := range m.Names {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tn += 1 + sovGenerated(uint64(m.SizeBytes))\n\treturn n\n}\n\nfunc (m *ContainerPort) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.HostPort))\n\tn += 1 + sovGenerated(uint64(m.ContainerPort))\n\tl = len(m.Protocol)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.HostIP)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ContainerResizePolicy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.ResourceName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.RestartPolicy)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ContainerState) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Waiting != nil {\n\t\tl = m.Waiting.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Running != nil {\n\t\tl = m.Running.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Terminated != nil {\n\t\tl = m.Terminated.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ContainerStateRunning) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.StartedAt.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ContainerStateTerminated) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.ExitCode))\n\tn += 1 + sovGenerated(uint64(m.Signal))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.StartedAt.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.FinishedAt.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.ContainerID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ContainerStateWaiting) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ContainerStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.State.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTerminationState.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\tn += 1 + sovGenerated(uint64(m.RestartCount))\n\tl = len(m.Image)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.ImageID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.ContainerID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Started != nil {\n\t\tn += 2\n\t}\n\tif len(m.AllocatedResources) > 0 {\n\t\tfor k, v := range m.AllocatedResources {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif m.Resources != nil {\n\t\tl = m.Resources.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.VolumeMounts) > 0 {\n\t\tfor _, e := range m.VolumeMounts {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.User != nil {\n\t\tl = m.User.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.AllocatedResourcesStatus) > 0 {\n\t\tfor _, e := range m.AllocatedResourcesStatus {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ContainerUser) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Linux != nil {\n\t\tl = m.Linux.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *DaemonEndpoint) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Port))\n\treturn n\n}\n\nfunc (m *DownwardAPIProjection) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *DownwardAPIVolumeFile) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Path)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.FieldRef != nil {\n\t\tl = m.FieldRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ResourceFieldRef != nil {\n\t\tl = m.ResourceFieldRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Mode != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Mode))\n\t}\n\treturn n\n}\n\nfunc (m *DownwardAPIVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.DefaultMode != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.DefaultMode))\n\t}\n\treturn n\n}\n\nfunc (m *EmptyDirVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Medium)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.SizeLimit != nil {\n\t\tl = m.SizeLimit.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *EndpointAddress) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.IP)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.TargetRef != nil {\n\t\tl = m.TargetRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.Hostname)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.NodeName != nil {\n\t\tl = len(*m.NodeName)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *EndpointPort) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.Port))\n\tl = len(m.Protocol)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.AppProtocol != nil {\n\t\tl = len(*m.AppProtocol)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *EndpointSubset) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Addresses) > 0 {\n\t\tfor _, e := range m.Addresses {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.NotReadyAddresses) > 0 {\n\t\tfor _, e := range m.NotReadyAddresses {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Ports) > 0 {\n\t\tfor _, e := range m.Ports {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *Endpoints) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Subsets) > 0 {\n\t\tfor _, e := range m.Subsets {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *EndpointsList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *EnvFromSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Prefix)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.ConfigMapRef != nil {\n\t\tl = m.ConfigMapRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.SecretRef != nil {\n\t\tl = m.SecretRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *EnvVar) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Value)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.ValueFrom != nil {\n\t\tl = m.ValueFrom.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *EnvVarSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.FieldRef != nil {\n\t\tl = m.FieldRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ResourceFieldRef != nil {\n\t\tl = m.ResourceFieldRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ConfigMapKeyRef != nil {\n\t\tl = m.ConfigMapKeyRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.SecretKeyRef != nil {\n\t\tl = m.SecretKeyRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *EphemeralContainer) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.EphemeralContainerCommon.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.TargetContainerName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *EphemeralContainerCommon) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Image)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Command) > 0 {\n\t\tfor _, s := range m.Command {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Args) > 0 {\n\t\tfor _, s := range m.Args {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.WorkingDir)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Ports) > 0 {\n\t\tfor _, e := range m.Ports {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Env) > 0 {\n\t\tfor _, e := range m.Env {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = m.Resources.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.VolumeMounts) > 0 {\n\t\tfor _, e := range m.VolumeMounts {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.LivenessProbe != nil {\n\t\tl = m.LivenessProbe.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ReadinessProbe != nil {\n\t\tl = m.ReadinessProbe.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Lifecycle != nil {\n\t\tl = m.Lifecycle.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.TerminationMessagePath)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.ImagePullPolicy)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.SecurityContext != nil {\n\t\tl = m.SecurityContext.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 3\n\tn += 3\n\tn += 3\n\tif len(m.EnvFrom) > 0 {\n\t\tfor _, e := range m.EnvFrom {\n\t\t\tl = e.Size()\n\t\t\tn += 2 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.TerminationMessagePolicy)\n\tn += 2 + l + sovGenerated(uint64(l))\n\tif len(m.VolumeDevices) > 0 {\n\t\tfor _, e := range m.VolumeDevices {\n\t\t\tl = e.Size()\n\t\t\tn += 2 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.StartupProbe != nil {\n\t\tl = m.StartupProbe.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.ResizePolicy) > 0 {\n\t\tfor _, e := range m.ResizePolicy {\n\t\t\tl = e.Size()\n\t\t\tn += 2 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.RestartPolicy != nil {\n\t\tl = len(*m.RestartPolicy)\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *EphemeralVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.VolumeClaimTemplate != nil {\n\t\tl = m.VolumeClaimTemplate.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *Event) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.InvolvedObject.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Source.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.FirstTimestamp.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTimestamp.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.Count))\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.EventTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Series != nil {\n\t\tl = m.Series.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.Action)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Related != nil {\n\t\tl = m.Related.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.ReportingController)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.ReportingInstance)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *EventList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *EventSeries) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Count))\n\tl = m.LastObservedTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *EventSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Component)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Host)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ExecAction) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Command) > 0 {\n\t\tfor _, s := range m.Command {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *FCVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.TargetWWNs) > 0 {\n\t\tfor _, s := range m.TargetWWNs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.Lun != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Lun))\n\t}\n\tl = len(m.FSType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\tif len(m.WWIDs) > 0 {\n\t\tfor _, s := range m.WWIDs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *FlexPersistentVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Driver)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FSType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.SecretRef != nil {\n\t\tl = m.SecretRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 2\n\tif len(m.Options) > 0 {\n\t\tfor k, v := range m.Options {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *FlexVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Driver)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FSType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.SecretRef != nil {\n\t\tl = m.SecretRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 2\n\tif len(m.Options) > 0 {\n\t\tfor k, v := range m.Options {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *FlockerVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.DatasetName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.DatasetUUID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *GCEPersistentDiskVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.PDName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FSType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.Partition))\n\tn += 2\n\treturn n\n}\n\nfunc (m *GRPCAction) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Port))\n\tif m.Service != nil {\n\t\tl = len(*m.Service)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *GitRepoVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Repository)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Revision)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Directory)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *GlusterfsPersistentVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.EndpointsName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Path)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\tif m.EndpointsNamespace != nil {\n\t\tl = len(*m.EndpointsNamespace)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *GlusterfsVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.EndpointsName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Path)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\treturn n\n}\n\nfunc (m *HTTPGetAction) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Path)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Port.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Host)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Scheme)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.HTTPHeaders) > 0 {\n\t\tfor _, e := range m.HTTPHeaders {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *HTTPHeader) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Value)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *HostAlias) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.IP)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Hostnames) > 0 {\n\t\tfor _, s := range m.Hostnames {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *HostIP) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.IP)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *HostPathVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Path)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Type != nil {\n\t\tl = len(*m.Type)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ISCSIPersistentVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.TargetPortal)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.IQN)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.Lun))\n\tl = len(m.ISCSIInterface)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FSType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\tif len(m.Portals) > 0 {\n\t\tfor _, s := range m.Portals {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tn += 2\n\tif m.SecretRef != nil {\n\t\tl = m.SecretRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 2\n\tif m.InitiatorName != nil {\n\t\tl = len(*m.InitiatorName)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ISCSIVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.TargetPortal)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.IQN)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.Lun))\n\tl = len(m.ISCSIInterface)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FSType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\tif len(m.Portals) > 0 {\n\t\tfor _, s := range m.Portals {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tn += 2\n\tif m.SecretRef != nil {\n\t\tl = m.SecretRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 2\n\tif m.InitiatorName != nil {\n\t\tl = len(*m.InitiatorName)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ImageVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Reference)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.PullPolicy)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *KeyToPath) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Key)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Path)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Mode != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Mode))\n\t}\n\treturn n\n}\n\nfunc (m *Lifecycle) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.PostStart != nil {\n\t\tl = m.PostStart.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.PreStop != nil {\n\t\tl = m.PreStop.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *LifecycleHandler) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Exec != nil {\n\t\tl = m.Exec.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.HTTPGet != nil {\n\t\tl = m.HTTPGet.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.TCPSocket != nil {\n\t\tl = m.TCPSocket.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Sleep != nil {\n\t\tl = m.Sleep.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *LimitRange) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *LimitRangeItem) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Max) > 0 {\n\t\tfor k, v := range m.Max {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.Min) > 0 {\n\t\tfor k, v := range m.Min {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.Default) > 0 {\n\t\tfor k, v := range m.Default {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.DefaultRequest) > 0 {\n\t\tfor k, v := range m.DefaultRequest {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.MaxLimitRequestRatio) > 0 {\n\t\tfor k, v := range m.MaxLimitRequestRatio {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *LimitRangeList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *LimitRangeSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Limits) > 0 {\n\t\tfor _, e := range m.Limits {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *LinuxContainerUser) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.UID))\n\tn += 1 + sovGenerated(uint64(m.GID))\n\tif len(m.SupplementalGroups) > 0 {\n\t\tfor _, e := range m.SupplementalGroups {\n\t\t\tn += 1 + sovGenerated(uint64(e))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *List) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *LoadBalancerIngress) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.IP)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Hostname)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.IPMode != nil {\n\t\tl = len(*m.IPMode)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.Ports) > 0 {\n\t\tfor _, e := range m.Ports {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *LoadBalancerStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Ingress) > 0 {\n\t\tfor _, e := range m.Ingress {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *LocalObjectReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *LocalVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Path)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.FSType != nil {\n\t\tl = len(*m.FSType)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ModifyVolumeStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.TargetVolumeAttributesClassName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *NFSVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Server)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Path)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\treturn n\n}\n\nfunc (m *Namespace) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *NamespaceCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *NamespaceList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *NamespaceSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Finalizers) > 0 {\n\t\tfor _, s := range m.Finalizers {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *NamespaceStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Phase)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *Node) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *NodeAddress) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Address)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *NodeAffinity) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.RequiredDuringSchedulingIgnoredDuringExecution != nil {\n\t\tl = m.RequiredDuringSchedulingIgnoredDuringExecution.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.PreferredDuringSchedulingIgnoredDuringExecution) > 0 {\n\t\tfor _, e := range m.PreferredDuringSchedulingIgnoredDuringExecution {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *NodeCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastHeartbeatTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *NodeConfigSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.ConfigMap != nil {\n\t\tl = m.ConfigMap.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *NodeConfigStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Assigned != nil {\n\t\tl = m.Assigned.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Active != nil {\n\t\tl = m.Active.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.LastKnownGood != nil {\n\t\tl = m.LastKnownGood.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.Error)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *NodeDaemonEndpoints) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.KubeletEndpoint.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *NodeFeatures) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.SupplementalGroupsPolicy != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *NodeList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *NodeProxyOptions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Path)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *NodeRuntimeHandler) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Features != nil {\n\t\tl = m.Features.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *NodeRuntimeHandlerFeatures) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.RecursiveReadOnlyMounts != nil {\n\t\tn += 2\n\t}\n\tif m.UserNamespaces != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *NodeSelector) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.NodeSelectorTerms) > 0 {\n\t\tfor _, e := range m.NodeSelectorTerms {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *NodeSelectorRequirement) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Key)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Operator)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Values) > 0 {\n\t\tfor _, s := range m.Values {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *NodeSelectorTerm) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.MatchExpressions) > 0 {\n\t\tfor _, e := range m.MatchExpressions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.MatchFields) > 0 {\n\t\tfor _, e := range m.MatchFields {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *NodeSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.PodCIDR)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.DoNotUseExternalID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.ProviderID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\tif len(m.Taints) > 0 {\n\t\tfor _, e := range m.Taints {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.ConfigSource != nil {\n\t\tl = m.ConfigSource.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.PodCIDRs) > 0 {\n\t\tfor _, s := range m.PodCIDRs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *NodeStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Capacity) > 0 {\n\t\tfor k, v := range m.Capacity {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.Allocatable) > 0 {\n\t\tfor k, v := range m.Allocatable {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tl = len(m.Phase)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Addresses) > 0 {\n\t\tfor _, e := range m.Addresses {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = m.DaemonEndpoints.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.NodeInfo.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Images) > 0 {\n\t\tfor _, e := range m.Images {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.VolumesInUse) > 0 {\n\t\tfor _, s := range m.VolumesInUse {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.VolumesAttached) > 0 {\n\t\tfor _, e := range m.VolumesAttached {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.Config != nil {\n\t\tl = m.Config.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.RuntimeHandlers) > 0 {\n\t\tfor _, e := range m.RuntimeHandlers {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.Features != nil {\n\t\tl = m.Features.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *NodeSystemInfo) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.MachineID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.SystemUUID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.BootID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.KernelVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.OSImage)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.ContainerRuntimeVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.KubeletVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.KubeProxyVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.OperatingSystem)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Architecture)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ObjectFieldSelector) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.APIVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FieldPath)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ObjectReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Namespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.UID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.APIVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.ResourceVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FieldPath)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PersistentVolume) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PersistentVolumeClaim) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PersistentVolumeClaimCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastProbeTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PersistentVolumeClaimList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PersistentVolumeClaimSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.AccessModes) > 0 {\n\t\tfor _, s := range m.AccessModes {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = m.Resources.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.VolumeName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.StorageClassName != nil {\n\t\tl = len(*m.StorageClassName)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.VolumeMode != nil {\n\t\tl = len(*m.VolumeMode)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.DataSource != nil {\n\t\tl = m.DataSource.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.DataSourceRef != nil {\n\t\tl = m.DataSourceRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.VolumeAttributesClassName != nil {\n\t\tl = len(*m.VolumeAttributesClassName)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PersistentVolumeClaimStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Phase)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.AccessModes) > 0 {\n\t\tfor _, s := range m.AccessModes {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Capacity) > 0 {\n\t\tfor k, v := range m.Capacity {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.AllocatedResources) > 0 {\n\t\tfor k, v := range m.AllocatedResources {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.AllocatedResourceStatuses) > 0 {\n\t\tfor k, v := range m.AllocatedResourceStatuses {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif m.CurrentVolumeAttributesClassName != nil {\n\t\tl = len(*m.CurrentVolumeAttributesClassName)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ModifyVolumeStatus != nil {\n\t\tl = m.ModifyVolumeStatus.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PersistentVolumeClaimTemplate) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PersistentVolumeClaimVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.ClaimName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\treturn n\n}\n\nfunc (m *PersistentVolumeList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PersistentVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.GCEPersistentDisk != nil {\n\t\tl = m.GCEPersistentDisk.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.AWSElasticBlockStore != nil {\n\t\tl = m.AWSElasticBlockStore.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.HostPath != nil {\n\t\tl = m.HostPath.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Glusterfs != nil {\n\t\tl = m.Glusterfs.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.NFS != nil {\n\t\tl = m.NFS.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.RBD != nil {\n\t\tl = m.RBD.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ISCSI != nil {\n\t\tl = m.ISCSI.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Cinder != nil {\n\t\tl = m.Cinder.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.CephFS != nil {\n\t\tl = m.CephFS.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.FC != nil {\n\t\tl = m.FC.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Flocker != nil {\n\t\tl = m.Flocker.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.FlexVolume != nil {\n\t\tl = m.FlexVolume.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.AzureFile != nil {\n\t\tl = m.AzureFile.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.VsphereVolume != nil {\n\t\tl = m.VsphereVolume.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Quobyte != nil {\n\t\tl = m.Quobyte.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.AzureDisk != nil {\n\t\tl = m.AzureDisk.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.PhotonPersistentDisk != nil {\n\t\tl = m.PhotonPersistentDisk.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.PortworxVolume != nil {\n\t\tl = m.PortworxVolume.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ScaleIO != nil {\n\t\tl = m.ScaleIO.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Local != nil {\n\t\tl = m.Local.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.StorageOS != nil {\n\t\tl = m.StorageOS.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.CSI != nil {\n\t\tl = m.CSI.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PersistentVolumeSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Capacity) > 0 {\n\t\tfor k, v := range m.Capacity {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tl = m.PersistentVolumeSource.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.AccessModes) > 0 {\n\t\tfor _, s := range m.AccessModes {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.ClaimRef != nil {\n\t\tl = m.ClaimRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.PersistentVolumeReclaimPolicy)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.StorageClassName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.MountOptions) > 0 {\n\t\tfor _, s := range m.MountOptions {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.VolumeMode != nil {\n\t\tl = len(*m.VolumeMode)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.NodeAffinity != nil {\n\t\tl = m.NodeAffinity.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.VolumeAttributesClassName != nil {\n\t\tl = len(*m.VolumeAttributesClassName)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PersistentVolumeStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Phase)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.LastPhaseTransitionTime != nil {\n\t\tl = m.LastPhaseTransitionTime.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PhotonPersistentDiskVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.PdID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FSType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *Pod) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PodAffinity) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.RequiredDuringSchedulingIgnoredDuringExecution) > 0 {\n\t\tfor _, e := range m.RequiredDuringSchedulingIgnoredDuringExecution {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.PreferredDuringSchedulingIgnoredDuringExecution) > 0 {\n\t\tfor _, e := range m.PreferredDuringSchedulingIgnoredDuringExecution {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PodAffinityTerm) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.LabelSelector != nil {\n\t\tl = m.LabelSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.Namespaces) > 0 {\n\t\tfor _, s := range m.Namespaces {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.TopologyKey)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.NamespaceSelector != nil {\n\t\tl = m.NamespaceSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.MatchLabelKeys) > 0 {\n\t\tfor _, s := range m.MatchLabelKeys {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.MismatchLabelKeys) > 0 {\n\t\tfor _, s := range m.MismatchLabelKeys {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PodAntiAffinity) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.RequiredDuringSchedulingIgnoredDuringExecution) > 0 {\n\t\tfor _, e := range m.RequiredDuringSchedulingIgnoredDuringExecution {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.PreferredDuringSchedulingIgnoredDuringExecution) > 0 {\n\t\tfor _, e := range m.PreferredDuringSchedulingIgnoredDuringExecution {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PodAttachOptions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 2\n\tn += 2\n\tn += 2\n\tn += 2\n\tl = len(m.Container)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PodCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastProbeTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PodDNSConfig) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Nameservers) > 0 {\n\t\tfor _, s := range m.Nameservers {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Searches) > 0 {\n\t\tfor _, s := range m.Searches {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Options) > 0 {\n\t\tfor _, e := range m.Options {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PodDNSConfigOption) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Value != nil {\n\t\tl = len(*m.Value)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PodExecOptions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 2\n\tn += 2\n\tn += 2\n\tn += 2\n\tl = len(m.Container)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Command) > 0 {\n\t\tfor _, s := range m.Command {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PodIP) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.IP)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PodList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PodLogOptions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Container)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\tn += 2\n\tif m.SinceSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.SinceSeconds))\n\t}\n\tif m.SinceTime != nil {\n\t\tl = m.SinceTime.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 2\n\tif m.TailLines != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.TailLines))\n\t}\n\tif m.LimitBytes != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.LimitBytes))\n\t}\n\tn += 2\n\tif m.Stream != nil {\n\t\tl = len(*m.Stream)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PodOS) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PodPortForwardOptions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Ports) > 0 {\n\t\tfor _, e := range m.Ports {\n\t\t\tn += 1 + sovGenerated(uint64(e))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PodProxyOptions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Path)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PodReadinessGate) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.ConditionType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PodResourceClaim) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.ResourceClaimName != nil {\n\t\tl = len(*m.ResourceClaimName)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ResourceClaimTemplateName != nil {\n\t\tl = len(*m.ResourceClaimTemplateName)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PodResourceClaimStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.ResourceClaimName != nil {\n\t\tl = len(*m.ResourceClaimName)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PodSchedulingGate) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PodSecurityContext) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.SELinuxOptions != nil {\n\t\tl = m.SELinuxOptions.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.RunAsUser != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.RunAsUser))\n\t}\n\tif m.RunAsNonRoot != nil {\n\t\tn += 2\n\t}\n\tif len(m.SupplementalGroups) > 0 {\n\t\tfor _, e := range m.SupplementalGroups {\n\t\t\tn += 1 + sovGenerated(uint64(e))\n\t\t}\n\t}\n\tif m.FSGroup != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.FSGroup))\n\t}\n\tif m.RunAsGroup != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.RunAsGroup))\n\t}\n\tif len(m.Sysctls) > 0 {\n\t\tfor _, e := range m.Sysctls {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.WindowsOptions != nil {\n\t\tl = m.WindowsOptions.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.FSGroupChangePolicy != nil {\n\t\tl = len(*m.FSGroupChangePolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.SeccompProfile != nil {\n\t\tl = m.SeccompProfile.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.AppArmorProfile != nil {\n\t\tl = m.AppArmorProfile.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.SupplementalGroupsPolicy != nil {\n\t\tl = len(*m.SupplementalGroupsPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.SELinuxChangePolicy != nil {\n\t\tl = len(*m.SELinuxChangePolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PodSignature) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.PodController != nil {\n\t\tl = m.PodController.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PodSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Volumes) > 0 {\n\t\tfor _, e := range m.Volumes {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Containers) > 0 {\n\t\tfor _, e := range m.Containers {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.RestartPolicy)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.TerminationGracePeriodSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.TerminationGracePeriodSeconds))\n\t}\n\tif m.ActiveDeadlineSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.ActiveDeadlineSeconds))\n\t}\n\tl = len(m.DNSPolicy)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.NodeSelector) > 0 {\n\t\tfor k, v := range m.NodeSelector {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tl = len(m.ServiceAccountName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.DeprecatedServiceAccount)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.NodeName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\tn += 2\n\tn += 2\n\tif m.SecurityContext != nil {\n\t\tl = m.SecurityContext.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.ImagePullSecrets) > 0 {\n\t\tfor _, e := range m.ImagePullSecrets {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.Hostname)\n\tn += 2 + l + sovGenerated(uint64(l))\n\tl = len(m.Subdomain)\n\tn += 2 + l + sovGenerated(uint64(l))\n\tif m.Affinity != nil {\n\t\tl = m.Affinity.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.SchedulerName)\n\tn += 2 + l + sovGenerated(uint64(l))\n\tif len(m.InitContainers) > 0 {\n\t\tfor _, e := range m.InitContainers {\n\t\t\tl = e.Size()\n\t\t\tn += 2 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.AutomountServiceAccountToken != nil {\n\t\tn += 3\n\t}\n\tif len(m.Tolerations) > 0 {\n\t\tfor _, e := range m.Tolerations {\n\t\t\tl = e.Size()\n\t\t\tn += 2 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.HostAliases) > 0 {\n\t\tfor _, e := range m.HostAliases {\n\t\t\tl = e.Size()\n\t\t\tn += 2 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.PriorityClassName)\n\tn += 2 + l + sovGenerated(uint64(l))\n\tif m.Priority != nil {\n\t\tn += 2 + sovGenerated(uint64(*m.Priority))\n\t}\n\tif m.DNSConfig != nil {\n\t\tl = m.DNSConfig.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ShareProcessNamespace != nil {\n\t\tn += 3\n\t}\n\tif len(m.ReadinessGates) > 0 {\n\t\tfor _, e := range m.ReadinessGates {\n\t\t\tl = e.Size()\n\t\t\tn += 2 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.RuntimeClassName != nil {\n\t\tl = len(*m.RuntimeClassName)\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.EnableServiceLinks != nil {\n\t\tn += 3\n\t}\n\tif m.PreemptionPolicy != nil {\n\t\tl = len(*m.PreemptionPolicy)\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.Overhead) > 0 {\n\t\tfor k, v := range m.Overhead {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 2 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.TopologySpreadConstraints) > 0 {\n\t\tfor _, e := range m.TopologySpreadConstraints {\n\t\t\tl = e.Size()\n\t\t\tn += 2 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.EphemeralContainers) > 0 {\n\t\tfor _, e := range m.EphemeralContainers {\n\t\t\tl = e.Size()\n\t\t\tn += 2 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.SetHostnameAsFQDN != nil {\n\t\tn += 3\n\t}\n\tif m.OS != nil {\n\t\tl = m.OS.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.HostUsers != nil {\n\t\tn += 3\n\t}\n\tif len(m.SchedulingGates) > 0 {\n\t\tfor _, e := range m.SchedulingGates {\n\t\t\tl = e.Size()\n\t\t\tn += 2 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.ResourceClaims) > 0 {\n\t\tfor _, e := range m.ResourceClaims {\n\t\t\tl = e.Size()\n\t\t\tn += 2 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.Resources != nil {\n\t\tl = m.Resources.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PodStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Phase)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.HostIP)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.PodIP)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.StartTime != nil {\n\t\tl = m.StartTime.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.ContainerStatuses) > 0 {\n\t\tfor _, e := range m.ContainerStatuses {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.QOSClass)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.InitContainerStatuses) > 0 {\n\t\tfor _, e := range m.InitContainerStatuses {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.NominatedNodeName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.PodIPs) > 0 {\n\t\tfor _, e := range m.PodIPs {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.EphemeralContainerStatuses) > 0 {\n\t\tfor _, e := range m.EphemeralContainerStatuses {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.Resize)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.ResourceClaimStatuses) > 0 {\n\t\tfor _, e := range m.ResourceClaimStatuses {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.HostIPs) > 0 {\n\t\tfor _, e := range m.HostIPs {\n\t\t\tl = e.Size()\n\t\t\tn += 2 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PodStatusResult) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PodTemplate) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Template.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PodTemplateList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PodTemplateSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PortStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Port))\n\tl = len(m.Protocol)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Error != nil {\n\t\tl = len(*m.Error)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PortworxVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.VolumeID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FSType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\treturn n\n}\n\nfunc (m *Preconditions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.UID != nil {\n\t\tl = len(*m.UID)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PreferAvoidPodsEntry) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.PodSignature.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.EvictionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PreferredSchedulingTerm) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Weight))\n\tl = m.Preference.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *Probe) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ProbeHandler.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.InitialDelaySeconds))\n\tn += 1 + sovGenerated(uint64(m.TimeoutSeconds))\n\tn += 1 + sovGenerated(uint64(m.PeriodSeconds))\n\tn += 1 + sovGenerated(uint64(m.SuccessThreshold))\n\tn += 1 + sovGenerated(uint64(m.FailureThreshold))\n\tif m.TerminationGracePeriodSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.TerminationGracePeriodSeconds))\n\t}\n\treturn n\n}\n\nfunc (m *ProbeHandler) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Exec != nil {\n\t\tl = m.Exec.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.HTTPGet != nil {\n\t\tl = m.HTTPGet.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.TCPSocket != nil {\n\t\tl = m.TCPSocket.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.GRPC != nil {\n\t\tl = m.GRPC.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ProjectedVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Sources) > 0 {\n\t\tfor _, e := range m.Sources {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.DefaultMode != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.DefaultMode))\n\t}\n\treturn n\n}\n\nfunc (m *QuobyteVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Registry)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Volume)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\tl = len(m.User)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Group)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Tenant)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *RBDPersistentVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.CephMonitors) > 0 {\n\t\tfor _, s := range m.CephMonitors {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.RBDImage)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FSType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.RBDPool)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.RadosUser)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Keyring)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.SecretRef != nil {\n\t\tl = m.SecretRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 2\n\treturn n\n}\n\nfunc (m *RBDVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.CephMonitors) > 0 {\n\t\tfor _, s := range m.CephMonitors {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.RBDImage)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FSType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.RBDPool)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.RadosUser)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Keyring)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.SecretRef != nil {\n\t\tl = m.SecretRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 2\n\treturn n\n}\n\nfunc (m *RangeAllocation) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Range)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Data != nil {\n\t\tl = len(m.Data)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ReplicationController) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ReplicationControllerCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ReplicationControllerList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ReplicationControllerSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Replicas != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Replicas))\n\t}\n\tif len(m.Selector) > 0 {\n\t\tfor k, v := range m.Selector {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif m.Template != nil {\n\t\tl = m.Template.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 1 + sovGenerated(uint64(m.MinReadySeconds))\n\treturn n\n}\n\nfunc (m *ReplicationControllerStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Replicas))\n\tn += 1 + sovGenerated(uint64(m.FullyLabeledReplicas))\n\tn += 1 + sovGenerated(uint64(m.ObservedGeneration))\n\tn += 1 + sovGenerated(uint64(m.ReadyReplicas))\n\tn += 1 + sovGenerated(uint64(m.AvailableReplicas))\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ResourceClaim) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Request)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ResourceFieldSelector) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.ContainerName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Resource)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Divisor.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ResourceHealth) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.ResourceID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Health)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ResourceQuota) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ResourceQuotaList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ResourceQuotaSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Hard) > 0 {\n\t\tfor k, v := range m.Hard {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.Scopes) > 0 {\n\t\tfor _, s := range m.Scopes {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.ScopeSelector != nil {\n\t\tl = m.ScopeSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ResourceQuotaStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Hard) > 0 {\n\t\tfor k, v := range m.Hard {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.Used) > 0 {\n\t\tfor k, v := range m.Used {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ResourceRequirements) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Limits) > 0 {\n\t\tfor k, v := range m.Limits {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.Requests) > 0 {\n\t\tfor k, v := range m.Requests {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.Claims) > 0 {\n\t\tfor _, e := range m.Claims {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ResourceStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Resources) > 0 {\n\t\tfor _, e := range m.Resources {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *SELinuxOptions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.User)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Role)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Level)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ScaleIOPersistentVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Gateway)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.System)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.SecretRef != nil {\n\t\tl = m.SecretRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 2\n\tl = len(m.ProtectionDomain)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.StoragePool)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.StorageMode)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.VolumeName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FSType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\treturn n\n}\n\nfunc (m *ScaleIOVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Gateway)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.System)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.SecretRef != nil {\n\t\tl = m.SecretRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 2\n\tl = len(m.ProtectionDomain)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.StoragePool)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.StorageMode)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.VolumeName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FSType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\treturn n\n}\n\nfunc (m *ScopeSelector) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.MatchExpressions) > 0 {\n\t\tfor _, e := range m.MatchExpressions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ScopedResourceSelectorRequirement) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.ScopeName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Operator)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Values) > 0 {\n\t\tfor _, s := range m.Values {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *SeccompProfile) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.LocalhostProfile != nil {\n\t\tl = len(*m.LocalhostProfile)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *Secret) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Data) > 0 {\n\t\tfor k, v := range m.Data {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = 0\n\t\t\tif v != nil {\n\t\t\t\tl = 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\t}\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + l\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.StringData) > 0 {\n\t\tfor k, v := range m.StringData {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif m.Immutable != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *SecretEnvSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.LocalObjectReference.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Optional != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *SecretKeySelector) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.LocalObjectReference.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Key)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Optional != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *SecretList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *SecretProjection) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.LocalObjectReference.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.Optional != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *SecretReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Namespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *SecretVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.SecretName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.DefaultMode != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.DefaultMode))\n\t}\n\tif m.Optional != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *SecurityContext) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Capabilities != nil {\n\t\tl = m.Capabilities.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Privileged != nil {\n\t\tn += 2\n\t}\n\tif m.SELinuxOptions != nil {\n\t\tl = m.SELinuxOptions.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.RunAsUser != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.RunAsUser))\n\t}\n\tif m.RunAsNonRoot != nil {\n\t\tn += 2\n\t}\n\tif m.ReadOnlyRootFilesystem != nil {\n\t\tn += 2\n\t}\n\tif m.AllowPrivilegeEscalation != nil {\n\t\tn += 2\n\t}\n\tif m.RunAsGroup != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.RunAsGroup))\n\t}\n\tif m.ProcMount != nil {\n\t\tl = len(*m.ProcMount)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.WindowsOptions != nil {\n\t\tl = m.WindowsOptions.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.SeccompProfile != nil {\n\t\tl = m.SeccompProfile.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.AppArmorProfile != nil {\n\t\tl = m.AppArmorProfile.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *SerializedReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Reference.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *Service) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ServiceAccount) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Secrets) > 0 {\n\t\tfor _, e := range m.Secrets {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.ImagePullSecrets) > 0 {\n\t\tfor _, e := range m.ImagePullSecrets {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.AutomountServiceAccountToken != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *ServiceAccountList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ServiceAccountTokenProjection) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Audience)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.ExpirationSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.ExpirationSeconds))\n\t}\n\tl = len(m.Path)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ServiceList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ServicePort) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Protocol)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.Port))\n\tl = m.TargetPort.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.NodePort))\n\tif m.AppProtocol != nil {\n\t\tl = len(*m.AppProtocol)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ServiceProxyOptions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Path)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ServiceSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Ports) > 0 {\n\t\tfor _, e := range m.Ports {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Selector) > 0 {\n\t\tfor k, v := range m.Selector {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tl = len(m.ClusterIP)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.ExternalIPs) > 0 {\n\t\tfor _, s := range m.ExternalIPs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.SessionAffinity)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.LoadBalancerIP)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.LoadBalancerSourceRanges) > 0 {\n\t\tfor _, s := range m.LoadBalancerSourceRanges {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.ExternalName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.ExternalTrafficPolicy)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.HealthCheckNodePort))\n\tn += 2\n\tif m.SessionAffinityConfig != nil {\n\t\tl = m.SessionAffinityConfig.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.IPFamilyPolicy != nil {\n\t\tl = len(*m.IPFamilyPolicy)\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.ClusterIPs) > 0 {\n\t\tfor _, s := range m.ClusterIPs {\n\t\t\tl = len(s)\n\t\t\tn += 2 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.IPFamilies) > 0 {\n\t\tfor _, s := range m.IPFamilies {\n\t\t\tl = len(s)\n\t\t\tn += 2 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.AllocateLoadBalancerNodePorts != nil {\n\t\tn += 3\n\t}\n\tif m.LoadBalancerClass != nil {\n\t\tl = len(*m.LoadBalancerClass)\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.InternalTrafficPolicy != nil {\n\t\tl = len(*m.InternalTrafficPolicy)\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.TrafficDistribution != nil {\n\t\tl = len(*m.TrafficDistribution)\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ServiceStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.LoadBalancer.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *SessionAffinityConfig) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.ClientIP != nil {\n\t\tl = m.ClientIP.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *SleepAction) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Seconds))\n\treturn n\n}\n\nfunc (m *StorageOSPersistentVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.VolumeName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.VolumeNamespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FSType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\tif m.SecretRef != nil {\n\t\tl = m.SecretRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *StorageOSVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.VolumeName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.VolumeNamespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FSType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\tif m.SecretRef != nil {\n\t\tl = m.SecretRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *Sysctl) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Value)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *TCPSocketAction) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Port.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Host)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *Taint) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Key)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Value)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Effect)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.TimeAdded != nil {\n\t\tl = m.TimeAdded.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *Toleration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Key)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Operator)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Value)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Effect)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.TolerationSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.TolerationSeconds))\n\t}\n\treturn n\n}\n\nfunc (m *TopologySelectorLabelRequirement) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Key)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Values) > 0 {\n\t\tfor _, s := range m.Values {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *TopologySelectorTerm) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.MatchLabelExpressions) > 0 {\n\t\tfor _, e := range m.MatchLabelExpressions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *TopologySpreadConstraint) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.MaxSkew))\n\tl = len(m.TopologyKey)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.WhenUnsatisfiable)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.LabelSelector != nil {\n\t\tl = m.LabelSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.MinDomains != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.MinDomains))\n\t}\n\tif m.NodeAffinityPolicy != nil {\n\t\tl = len(*m.NodeAffinityPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.NodeTaintsPolicy != nil {\n\t\tl = len(*m.NodeTaintsPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.MatchLabelKeys) > 0 {\n\t\tfor _, s := range m.MatchLabelKeys {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *TypedLocalObjectReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.APIGroup != nil {\n\t\tl = len(*m.APIGroup)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *TypedObjectReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.APIGroup != nil {\n\t\tl = len(*m.APIGroup)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Namespace != nil {\n\t\tl = len(*m.Namespace)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *Volume) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.VolumeSource.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *VolumeDevice) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.DevicePath)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *VolumeMount) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\tl = len(m.MountPath)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.SubPath)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.MountPropagation != nil {\n\t\tl = len(*m.MountPropagation)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.SubPathExpr)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.RecursiveReadOnly != nil {\n\t\tl = len(*m.RecursiveReadOnly)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *VolumeMountStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.MountPath)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\tif m.RecursiveReadOnly != nil {\n\t\tl = len(*m.RecursiveReadOnly)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *VolumeNodeAffinity) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Required != nil {\n\t\tl = m.Required.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *VolumeProjection) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Secret != nil {\n\t\tl = m.Secret.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.DownwardAPI != nil {\n\t\tl = m.DownwardAPI.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ConfigMap != nil {\n\t\tl = m.ConfigMap.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ServiceAccountToken != nil {\n\t\tl = m.ServiceAccountToken.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ClusterTrustBundle != nil {\n\t\tl = m.ClusterTrustBundle.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *VolumeResourceRequirements) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Limits) > 0 {\n\t\tfor k, v := range m.Limits {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.Requests) > 0 {\n\t\tfor k, v := range m.Requests {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *VolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.HostPath != nil {\n\t\tl = m.HostPath.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.EmptyDir != nil {\n\t\tl = m.EmptyDir.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.GCEPersistentDisk != nil {\n\t\tl = m.GCEPersistentDisk.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.AWSElasticBlockStore != nil {\n\t\tl = m.AWSElasticBlockStore.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.GitRepo != nil {\n\t\tl = m.GitRepo.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Secret != nil {\n\t\tl = m.Secret.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.NFS != nil {\n\t\tl = m.NFS.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ISCSI != nil {\n\t\tl = m.ISCSI.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Glusterfs != nil {\n\t\tl = m.Glusterfs.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.PersistentVolumeClaim != nil {\n\t\tl = m.PersistentVolumeClaim.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.RBD != nil {\n\t\tl = m.RBD.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.FlexVolume != nil {\n\t\tl = m.FlexVolume.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Cinder != nil {\n\t\tl = m.Cinder.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.CephFS != nil {\n\t\tl = m.CephFS.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Flocker != nil {\n\t\tl = m.Flocker.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.DownwardAPI != nil {\n\t\tl = m.DownwardAPI.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.FC != nil {\n\t\tl = m.FC.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.AzureFile != nil {\n\t\tl = m.AzureFile.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ConfigMap != nil {\n\t\tl = m.ConfigMap.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.VsphereVolume != nil {\n\t\tl = m.VsphereVolume.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Quobyte != nil {\n\t\tl = m.Quobyte.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.AzureDisk != nil {\n\t\tl = m.AzureDisk.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.PhotonPersistentDisk != nil {\n\t\tl = m.PhotonPersistentDisk.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.PortworxVolume != nil {\n\t\tl = m.PortworxVolume.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ScaleIO != nil {\n\t\tl = m.ScaleIO.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Projected != nil {\n\t\tl = m.Projected.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.StorageOS != nil {\n\t\tl = m.StorageOS.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.CSI != nil {\n\t\tl = m.CSI.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Ephemeral != nil {\n\t\tl = m.Ephemeral.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Image != nil {\n\t\tl = m.Image.Size()\n\t\tn += 2 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *VsphereVirtualDiskVolumeSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.VolumePath)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FSType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.StoragePolicyName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.StoragePolicyID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *WeightedPodAffinityTerm) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Weight))\n\tl = m.PodAffinityTerm.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *WindowsSecurityContextOptions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.GMSACredentialSpecName != nil {\n\t\tl = len(*m.GMSACredentialSpecName)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.GMSACredentialSpec != nil {\n\t\tl = len(*m.GMSACredentialSpec)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.RunAsUserName != nil {\n\t\tl = len(*m.RunAsUserName)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.HostProcess != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *AWSElasticBlockStoreVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&AWSElasticBlockStoreVolumeSource{`,\n\t\t`VolumeID:` + fmt.Sprintf(\"%v\", this.VolumeID) + `,`,\n\t\t`FSType:` + fmt.Sprintf(\"%v\", this.FSType) + `,`,\n\t\t`Partition:` + fmt.Sprintf(\"%v\", this.Partition) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Affinity) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Affinity{`,\n\t\t`NodeAffinity:` + strings.Replace(this.NodeAffinity.String(), \"NodeAffinity\", \"NodeAffinity\", 1) + `,`,\n\t\t`PodAffinity:` + strings.Replace(this.PodAffinity.String(), \"PodAffinity\", \"PodAffinity\", 1) + `,`,\n\t\t`PodAntiAffinity:` + strings.Replace(this.PodAntiAffinity.String(), \"PodAntiAffinity\", \"PodAntiAffinity\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *AppArmorProfile) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&AppArmorProfile{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`LocalhostProfile:` + valueToStringGenerated(this.LocalhostProfile) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *AttachedVolume) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&AttachedVolume{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`DevicePath:` + fmt.Sprintf(\"%v\", this.DevicePath) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *AvoidPods) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForPreferAvoidPods := \"[]PreferAvoidPodsEntry{\"\n\tfor _, f := range this.PreferAvoidPods {\n\t\trepeatedStringForPreferAvoidPods += strings.Replace(strings.Replace(f.String(), \"PreferAvoidPodsEntry\", \"PreferAvoidPodsEntry\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPreferAvoidPods += \"}\"\n\ts := strings.Join([]string{`&AvoidPods{`,\n\t\t`PreferAvoidPods:` + repeatedStringForPreferAvoidPods + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *AzureDiskVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&AzureDiskVolumeSource{`,\n\t\t`DiskName:` + fmt.Sprintf(\"%v\", this.DiskName) + `,`,\n\t\t`DataDiskURI:` + fmt.Sprintf(\"%v\", this.DataDiskURI) + `,`,\n\t\t`CachingMode:` + valueToStringGenerated(this.CachingMode) + `,`,\n\t\t`FSType:` + valueToStringGenerated(this.FSType) + `,`,\n\t\t`ReadOnly:` + valueToStringGenerated(this.ReadOnly) + `,`,\n\t\t`Kind:` + valueToStringGenerated(this.Kind) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *AzureFilePersistentVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&AzureFilePersistentVolumeSource{`,\n\t\t`SecretName:` + fmt.Sprintf(\"%v\", this.SecretName) + `,`,\n\t\t`ShareName:` + fmt.Sprintf(\"%v\", this.ShareName) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`SecretNamespace:` + valueToStringGenerated(this.SecretNamespace) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *AzureFileVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&AzureFileVolumeSource{`,\n\t\t`SecretName:` + fmt.Sprintf(\"%v\", this.SecretName) + `,`,\n\t\t`ShareName:` + fmt.Sprintf(\"%v\", this.ShareName) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Binding) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Binding{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Target:` + strings.Replace(strings.Replace(this.Target.String(), \"ObjectReference\", \"ObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CSIPersistentVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForVolumeAttributes := make([]string, 0, len(this.VolumeAttributes))\n\tfor k := range this.VolumeAttributes {\n\t\tkeysForVolumeAttributes = append(keysForVolumeAttributes, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForVolumeAttributes)\n\tmapStringForVolumeAttributes := \"map[string]string{\"\n\tfor _, k := range keysForVolumeAttributes {\n\t\tmapStringForVolumeAttributes += fmt.Sprintf(\"%v: %v,\", k, this.VolumeAttributes[k])\n\t}\n\tmapStringForVolumeAttributes += \"}\"\n\ts := strings.Join([]string{`&CSIPersistentVolumeSource{`,\n\t\t`Driver:` + fmt.Sprintf(\"%v\", this.Driver) + `,`,\n\t\t`VolumeHandle:` + fmt.Sprintf(\"%v\", this.VolumeHandle) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`FSType:` + fmt.Sprintf(\"%v\", this.FSType) + `,`,\n\t\t`VolumeAttributes:` + mapStringForVolumeAttributes + `,`,\n\t\t`ControllerPublishSecretRef:` + strings.Replace(this.ControllerPublishSecretRef.String(), \"SecretReference\", \"SecretReference\", 1) + `,`,\n\t\t`NodeStageSecretRef:` + strings.Replace(this.NodeStageSecretRef.String(), \"SecretReference\", \"SecretReference\", 1) + `,`,\n\t\t`NodePublishSecretRef:` + strings.Replace(this.NodePublishSecretRef.String(), \"SecretReference\", \"SecretReference\", 1) + `,`,\n\t\t`ControllerExpandSecretRef:` + strings.Replace(this.ControllerExpandSecretRef.String(), \"SecretReference\", \"SecretReference\", 1) + `,`,\n\t\t`NodeExpandSecretRef:` + strings.Replace(this.NodeExpandSecretRef.String(), \"SecretReference\", \"SecretReference\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CSIVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForVolumeAttributes := make([]string, 0, len(this.VolumeAttributes))\n\tfor k := range this.VolumeAttributes {\n\t\tkeysForVolumeAttributes = append(keysForVolumeAttributes, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForVolumeAttributes)\n\tmapStringForVolumeAttributes := \"map[string]string{\"\n\tfor _, k := range keysForVolumeAttributes {\n\t\tmapStringForVolumeAttributes += fmt.Sprintf(\"%v: %v,\", k, this.VolumeAttributes[k])\n\t}\n\tmapStringForVolumeAttributes += \"}\"\n\ts := strings.Join([]string{`&CSIVolumeSource{`,\n\t\t`Driver:` + fmt.Sprintf(\"%v\", this.Driver) + `,`,\n\t\t`ReadOnly:` + valueToStringGenerated(this.ReadOnly) + `,`,\n\t\t`FSType:` + valueToStringGenerated(this.FSType) + `,`,\n\t\t`VolumeAttributes:` + mapStringForVolumeAttributes + `,`,\n\t\t`NodePublishSecretRef:` + strings.Replace(this.NodePublishSecretRef.String(), \"LocalObjectReference\", \"LocalObjectReference\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Capabilities) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Capabilities{`,\n\t\t`Add:` + fmt.Sprintf(\"%v\", this.Add) + `,`,\n\t\t`Drop:` + fmt.Sprintf(\"%v\", this.Drop) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CephFSPersistentVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CephFSPersistentVolumeSource{`,\n\t\t`Monitors:` + fmt.Sprintf(\"%v\", this.Monitors) + `,`,\n\t\t`Path:` + fmt.Sprintf(\"%v\", this.Path) + `,`,\n\t\t`User:` + fmt.Sprintf(\"%v\", this.User) + `,`,\n\t\t`SecretFile:` + fmt.Sprintf(\"%v\", this.SecretFile) + `,`,\n\t\t`SecretRef:` + strings.Replace(this.SecretRef.String(), \"SecretReference\", \"SecretReference\", 1) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CephFSVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CephFSVolumeSource{`,\n\t\t`Monitors:` + fmt.Sprintf(\"%v\", this.Monitors) + `,`,\n\t\t`Path:` + fmt.Sprintf(\"%v\", this.Path) + `,`,\n\t\t`User:` + fmt.Sprintf(\"%v\", this.User) + `,`,\n\t\t`SecretFile:` + fmt.Sprintf(\"%v\", this.SecretFile) + `,`,\n\t\t`SecretRef:` + strings.Replace(this.SecretRef.String(), \"LocalObjectReference\", \"LocalObjectReference\", 1) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CinderPersistentVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CinderPersistentVolumeSource{`,\n\t\t`VolumeID:` + fmt.Sprintf(\"%v\", this.VolumeID) + `,`,\n\t\t`FSType:` + fmt.Sprintf(\"%v\", this.FSType) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`SecretRef:` + strings.Replace(this.SecretRef.String(), \"SecretReference\", \"SecretReference\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CinderVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CinderVolumeSource{`,\n\t\t`VolumeID:` + fmt.Sprintf(\"%v\", this.VolumeID) + `,`,\n\t\t`FSType:` + fmt.Sprintf(\"%v\", this.FSType) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`SecretRef:` + strings.Replace(this.SecretRef.String(), \"LocalObjectReference\", \"LocalObjectReference\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ClientIPConfig) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ClientIPConfig{`,\n\t\t`TimeoutSeconds:` + valueToStringGenerated(this.TimeoutSeconds) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ClusterTrustBundleProjection) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ClusterTrustBundleProjection{`,\n\t\t`Name:` + valueToStringGenerated(this.Name) + `,`,\n\t\t`SignerName:` + valueToStringGenerated(this.SignerName) + `,`,\n\t\t`LabelSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.LabelSelector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`Path:` + fmt.Sprintf(\"%v\", this.Path) + `,`,\n\t\t`Optional:` + valueToStringGenerated(this.Optional) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ComponentCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ComponentCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`Error:` + fmt.Sprintf(\"%v\", this.Error) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ComponentStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]ComponentCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"ComponentCondition\", \"ComponentCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&ComponentStatus{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ComponentStatusList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ComponentStatus{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ComponentStatus\", \"ComponentStatus\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ComponentStatusList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ConfigMap) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForData := make([]string, 0, len(this.Data))\n\tfor k := range this.Data {\n\t\tkeysForData = append(keysForData, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForData)\n\tmapStringForData := \"map[string]string{\"\n\tfor _, k := range keysForData {\n\t\tmapStringForData += fmt.Sprintf(\"%v: %v,\", k, this.Data[k])\n\t}\n\tmapStringForData += \"}\"\n\tkeysForBinaryData := make([]string, 0, len(this.BinaryData))\n\tfor k := range this.BinaryData {\n\t\tkeysForBinaryData = append(keysForBinaryData, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForBinaryData)\n\tmapStringForBinaryData := \"map[string][]byte{\"\n\tfor _, k := range keysForBinaryData {\n\t\tmapStringForBinaryData += fmt.Sprintf(\"%v: %v,\", k, this.BinaryData[k])\n\t}\n\tmapStringForBinaryData += \"}\"\n\ts := strings.Join([]string{`&ConfigMap{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Data:` + mapStringForData + `,`,\n\t\t`BinaryData:` + mapStringForBinaryData + `,`,\n\t\t`Immutable:` + valueToStringGenerated(this.Immutable) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ConfigMapEnvSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ConfigMapEnvSource{`,\n\t\t`LocalObjectReference:` + strings.Replace(strings.Replace(this.LocalObjectReference.String(), \"LocalObjectReference\", \"LocalObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`Optional:` + valueToStringGenerated(this.Optional) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ConfigMapKeySelector) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ConfigMapKeySelector{`,\n\t\t`LocalObjectReference:` + strings.Replace(strings.Replace(this.LocalObjectReference.String(), \"LocalObjectReference\", \"LocalObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`Key:` + fmt.Sprintf(\"%v\", this.Key) + `,`,\n\t\t`Optional:` + valueToStringGenerated(this.Optional) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ConfigMapList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ConfigMap{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ConfigMap\", \"ConfigMap\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ConfigMapList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ConfigMapNodeConfigSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ConfigMapNodeConfigSource{`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`UID:` + fmt.Sprintf(\"%v\", this.UID) + `,`,\n\t\t`ResourceVersion:` + fmt.Sprintf(\"%v\", this.ResourceVersion) + `,`,\n\t\t`KubeletConfigKey:` + fmt.Sprintf(\"%v\", this.KubeletConfigKey) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ConfigMapProjection) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]KeyToPath{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"KeyToPath\", \"KeyToPath\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ConfigMapProjection{`,\n\t\t`LocalObjectReference:` + strings.Replace(strings.Replace(this.LocalObjectReference.String(), \"LocalObjectReference\", \"LocalObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`Optional:` + valueToStringGenerated(this.Optional) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ConfigMapVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]KeyToPath{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"KeyToPath\", \"KeyToPath\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ConfigMapVolumeSource{`,\n\t\t`LocalObjectReference:` + strings.Replace(strings.Replace(this.LocalObjectReference.String(), \"LocalObjectReference\", \"LocalObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`DefaultMode:` + valueToStringGenerated(this.DefaultMode) + `,`,\n\t\t`Optional:` + valueToStringGenerated(this.Optional) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Container) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForPorts := \"[]ContainerPort{\"\n\tfor _, f := range this.Ports {\n\t\trepeatedStringForPorts += strings.Replace(strings.Replace(f.String(), \"ContainerPort\", \"ContainerPort\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPorts += \"}\"\n\trepeatedStringForEnv := \"[]EnvVar{\"\n\tfor _, f := range this.Env {\n\t\trepeatedStringForEnv += strings.Replace(strings.Replace(f.String(), \"EnvVar\", \"EnvVar\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForEnv += \"}\"\n\trepeatedStringForVolumeMounts := \"[]VolumeMount{\"\n\tfor _, f := range this.VolumeMounts {\n\t\trepeatedStringForVolumeMounts += strings.Replace(strings.Replace(f.String(), \"VolumeMount\", \"VolumeMount\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForVolumeMounts += \"}\"\n\trepeatedStringForEnvFrom := \"[]EnvFromSource{\"\n\tfor _, f := range this.EnvFrom {\n\t\trepeatedStringForEnvFrom += strings.Replace(strings.Replace(f.String(), \"EnvFromSource\", \"EnvFromSource\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForEnvFrom += \"}\"\n\trepeatedStringForVolumeDevices := \"[]VolumeDevice{\"\n\tfor _, f := range this.VolumeDevices {\n\t\trepeatedStringForVolumeDevices += strings.Replace(strings.Replace(f.String(), \"VolumeDevice\", \"VolumeDevice\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForVolumeDevices += \"}\"\n\trepeatedStringForResizePolicy := \"[]ContainerResizePolicy{\"\n\tfor _, f := range this.ResizePolicy {\n\t\trepeatedStringForResizePolicy += strings.Replace(strings.Replace(f.String(), \"ContainerResizePolicy\", \"ContainerResizePolicy\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForResizePolicy += \"}\"\n\ts := strings.Join([]string{`&Container{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Image:` + fmt.Sprintf(\"%v\", this.Image) + `,`,\n\t\t`Command:` + fmt.Sprintf(\"%v\", this.Command) + `,`,\n\t\t`Args:` + fmt.Sprintf(\"%v\", this.Args) + `,`,\n\t\t`WorkingDir:` + fmt.Sprintf(\"%v\", this.WorkingDir) + `,`,\n\t\t`Ports:` + repeatedStringForPorts + `,`,\n\t\t`Env:` + repeatedStringForEnv + `,`,\n\t\t`Resources:` + strings.Replace(strings.Replace(this.Resources.String(), \"ResourceRequirements\", \"ResourceRequirements\", 1), `&`, ``, 1) + `,`,\n\t\t`VolumeMounts:` + repeatedStringForVolumeMounts + `,`,\n\t\t`LivenessProbe:` + strings.Replace(this.LivenessProbe.String(), \"Probe\", \"Probe\", 1) + `,`,\n\t\t`ReadinessProbe:` + strings.Replace(this.ReadinessProbe.String(), \"Probe\", \"Probe\", 1) + `,`,\n\t\t`Lifecycle:` + strings.Replace(this.Lifecycle.String(), \"Lifecycle\", \"Lifecycle\", 1) + `,`,\n\t\t`TerminationMessagePath:` + fmt.Sprintf(\"%v\", this.TerminationMessagePath) + `,`,\n\t\t`ImagePullPolicy:` + fmt.Sprintf(\"%v\", this.ImagePullPolicy) + `,`,\n\t\t`SecurityContext:` + strings.Replace(this.SecurityContext.String(), \"SecurityContext\", \"SecurityContext\", 1) + `,`,\n\t\t`Stdin:` + fmt.Sprintf(\"%v\", this.Stdin) + `,`,\n\t\t`StdinOnce:` + fmt.Sprintf(\"%v\", this.StdinOnce) + `,`,\n\t\t`TTY:` + fmt.Sprintf(\"%v\", this.TTY) + `,`,\n\t\t`EnvFrom:` + repeatedStringForEnvFrom + `,`,\n\t\t`TerminationMessagePolicy:` + fmt.Sprintf(\"%v\", this.TerminationMessagePolicy) + `,`,\n\t\t`VolumeDevices:` + repeatedStringForVolumeDevices + `,`,\n\t\t`StartupProbe:` + strings.Replace(this.StartupProbe.String(), \"Probe\", \"Probe\", 1) + `,`,\n\t\t`ResizePolicy:` + repeatedStringForResizePolicy + `,`,\n\t\t`RestartPolicy:` + valueToStringGenerated(this.RestartPolicy) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerImage) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ContainerImage{`,\n\t\t`Names:` + fmt.Sprintf(\"%v\", this.Names) + `,`,\n\t\t`SizeBytes:` + fmt.Sprintf(\"%v\", this.SizeBytes) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerPort) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ContainerPort{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`HostPort:` + fmt.Sprintf(\"%v\", this.HostPort) + `,`,\n\t\t`ContainerPort:` + fmt.Sprintf(\"%v\", this.ContainerPort) + `,`,\n\t\t`Protocol:` + fmt.Sprintf(\"%v\", this.Protocol) + `,`,\n\t\t`HostIP:` + fmt.Sprintf(\"%v\", this.HostIP) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerResizePolicy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ContainerResizePolicy{`,\n\t\t`ResourceName:` + fmt.Sprintf(\"%v\", this.ResourceName) + `,`,\n\t\t`RestartPolicy:` + fmt.Sprintf(\"%v\", this.RestartPolicy) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerState) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ContainerState{`,\n\t\t`Waiting:` + strings.Replace(this.Waiting.String(), \"ContainerStateWaiting\", \"ContainerStateWaiting\", 1) + `,`,\n\t\t`Running:` + strings.Replace(this.Running.String(), \"ContainerStateRunning\", \"ContainerStateRunning\", 1) + `,`,\n\t\t`Terminated:` + strings.Replace(this.Terminated.String(), \"ContainerStateTerminated\", \"ContainerStateTerminated\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerStateRunning) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ContainerStateRunning{`,\n\t\t`StartedAt:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.StartedAt), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerStateTerminated) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ContainerStateTerminated{`,\n\t\t`ExitCode:` + fmt.Sprintf(\"%v\", this.ExitCode) + `,`,\n\t\t`Signal:` + fmt.Sprintf(\"%v\", this.Signal) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`StartedAt:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.StartedAt), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`FinishedAt:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.FinishedAt), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`ContainerID:` + fmt.Sprintf(\"%v\", this.ContainerID) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerStateWaiting) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ContainerStateWaiting{`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForVolumeMounts := \"[]VolumeMountStatus{\"\n\tfor _, f := range this.VolumeMounts {\n\t\trepeatedStringForVolumeMounts += strings.Replace(strings.Replace(f.String(), \"VolumeMountStatus\", \"VolumeMountStatus\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForVolumeMounts += \"}\"\n\trepeatedStringForAllocatedResourcesStatus := \"[]ResourceStatus{\"\n\tfor _, f := range this.AllocatedResourcesStatus {\n\t\trepeatedStringForAllocatedResourcesStatus += strings.Replace(strings.Replace(f.String(), \"ResourceStatus\", \"ResourceStatus\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForAllocatedResourcesStatus += \"}\"\n\tkeysForAllocatedResources := make([]string, 0, len(this.AllocatedResources))\n\tfor k := range this.AllocatedResources {\n\t\tkeysForAllocatedResources = append(keysForAllocatedResources, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAllocatedResources)\n\tmapStringForAllocatedResources := \"ResourceList{\"\n\tfor _, k := range keysForAllocatedResources {\n\t\tmapStringForAllocatedResources += fmt.Sprintf(\"%v: %v,\", k, this.AllocatedResources[ResourceName(k)])\n\t}\n\tmapStringForAllocatedResources += \"}\"\n\ts := strings.Join([]string{`&ContainerStatus{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`State:` + strings.Replace(strings.Replace(this.State.String(), \"ContainerState\", \"ContainerState\", 1), `&`, ``, 1) + `,`,\n\t\t`LastTerminationState:` + strings.Replace(strings.Replace(this.LastTerminationState.String(), \"ContainerState\", \"ContainerState\", 1), `&`, ``, 1) + `,`,\n\t\t`Ready:` + fmt.Sprintf(\"%v\", this.Ready) + `,`,\n\t\t`RestartCount:` + fmt.Sprintf(\"%v\", this.RestartCount) + `,`,\n\t\t`Image:` + fmt.Sprintf(\"%v\", this.Image) + `,`,\n\t\t`ImageID:` + fmt.Sprintf(\"%v\", this.ImageID) + `,`,\n\t\t`ContainerID:` + fmt.Sprintf(\"%v\", this.ContainerID) + `,`,\n\t\t`Started:` + valueToStringGenerated(this.Started) + `,`,\n\t\t`AllocatedResources:` + mapStringForAllocatedResources + `,`,\n\t\t`Resources:` + strings.Replace(this.Resources.String(), \"ResourceRequirements\", \"ResourceRequirements\", 1) + `,`,\n\t\t`VolumeMounts:` + repeatedStringForVolumeMounts + `,`,\n\t\t`User:` + strings.Replace(this.User.String(), \"ContainerUser\", \"ContainerUser\", 1) + `,`,\n\t\t`AllocatedResourcesStatus:` + repeatedStringForAllocatedResourcesStatus + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ContainerUser) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ContainerUser{`,\n\t\t`Linux:` + strings.Replace(this.Linux.String(), \"LinuxContainerUser\", \"LinuxContainerUser\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DaemonEndpoint) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DaemonEndpoint{`,\n\t\t`Port:` + fmt.Sprintf(\"%v\", this.Port) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DownwardAPIProjection) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]DownwardAPIVolumeFile{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"DownwardAPIVolumeFile\", \"DownwardAPIVolumeFile\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&DownwardAPIProjection{`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DownwardAPIVolumeFile) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DownwardAPIVolumeFile{`,\n\t\t`Path:` + fmt.Sprintf(\"%v\", this.Path) + `,`,\n\t\t`FieldRef:` + strings.Replace(this.FieldRef.String(), \"ObjectFieldSelector\", \"ObjectFieldSelector\", 1) + `,`,\n\t\t`ResourceFieldRef:` + strings.Replace(this.ResourceFieldRef.String(), \"ResourceFieldSelector\", \"ResourceFieldSelector\", 1) + `,`,\n\t\t`Mode:` + valueToStringGenerated(this.Mode) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DownwardAPIVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]DownwardAPIVolumeFile{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"DownwardAPIVolumeFile\", \"DownwardAPIVolumeFile\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&DownwardAPIVolumeSource{`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`DefaultMode:` + valueToStringGenerated(this.DefaultMode) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EmptyDirVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&EmptyDirVolumeSource{`,\n\t\t`Medium:` + fmt.Sprintf(\"%v\", this.Medium) + `,`,\n\t\t`SizeLimit:` + strings.Replace(fmt.Sprintf(\"%v\", this.SizeLimit), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EndpointAddress) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&EndpointAddress{`,\n\t\t`IP:` + fmt.Sprintf(\"%v\", this.IP) + `,`,\n\t\t`TargetRef:` + strings.Replace(this.TargetRef.String(), \"ObjectReference\", \"ObjectReference\", 1) + `,`,\n\t\t`Hostname:` + fmt.Sprintf(\"%v\", this.Hostname) + `,`,\n\t\t`NodeName:` + valueToStringGenerated(this.NodeName) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EndpointPort) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&EndpointPort{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Port:` + fmt.Sprintf(\"%v\", this.Port) + `,`,\n\t\t`Protocol:` + fmt.Sprintf(\"%v\", this.Protocol) + `,`,\n\t\t`AppProtocol:` + valueToStringGenerated(this.AppProtocol) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EndpointSubset) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForAddresses := \"[]EndpointAddress{\"\n\tfor _, f := range this.Addresses {\n\t\trepeatedStringForAddresses += strings.Replace(strings.Replace(f.String(), \"EndpointAddress\", \"EndpointAddress\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForAddresses += \"}\"\n\trepeatedStringForNotReadyAddresses := \"[]EndpointAddress{\"\n\tfor _, f := range this.NotReadyAddresses {\n\t\trepeatedStringForNotReadyAddresses += strings.Replace(strings.Replace(f.String(), \"EndpointAddress\", \"EndpointAddress\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForNotReadyAddresses += \"}\"\n\trepeatedStringForPorts := \"[]EndpointPort{\"\n\tfor _, f := range this.Ports {\n\t\trepeatedStringForPorts += strings.Replace(strings.Replace(f.String(), \"EndpointPort\", \"EndpointPort\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPorts += \"}\"\n\ts := strings.Join([]string{`&EndpointSubset{`,\n\t\t`Addresses:` + repeatedStringForAddresses + `,`,\n\t\t`NotReadyAddresses:` + repeatedStringForNotReadyAddresses + `,`,\n\t\t`Ports:` + repeatedStringForPorts + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Endpoints) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForSubsets := \"[]EndpointSubset{\"\n\tfor _, f := range this.Subsets {\n\t\trepeatedStringForSubsets += strings.Replace(strings.Replace(f.String(), \"EndpointSubset\", \"EndpointSubset\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForSubsets += \"}\"\n\ts := strings.Join([]string{`&Endpoints{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Subsets:` + repeatedStringForSubsets + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EndpointsList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Endpoints{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Endpoints\", \"Endpoints\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&EndpointsList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EnvFromSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&EnvFromSource{`,\n\t\t`Prefix:` + fmt.Sprintf(\"%v\", this.Prefix) + `,`,\n\t\t`ConfigMapRef:` + strings.Replace(this.ConfigMapRef.String(), \"ConfigMapEnvSource\", \"ConfigMapEnvSource\", 1) + `,`,\n\t\t`SecretRef:` + strings.Replace(this.SecretRef.String(), \"SecretEnvSource\", \"SecretEnvSource\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EnvVar) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&EnvVar{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Value:` + fmt.Sprintf(\"%v\", this.Value) + `,`,\n\t\t`ValueFrom:` + strings.Replace(this.ValueFrom.String(), \"EnvVarSource\", \"EnvVarSource\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EnvVarSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&EnvVarSource{`,\n\t\t`FieldRef:` + strings.Replace(this.FieldRef.String(), \"ObjectFieldSelector\", \"ObjectFieldSelector\", 1) + `,`,\n\t\t`ResourceFieldRef:` + strings.Replace(this.ResourceFieldRef.String(), \"ResourceFieldSelector\", \"ResourceFieldSelector\", 1) + `,`,\n\t\t`ConfigMapKeyRef:` + strings.Replace(this.ConfigMapKeyRef.String(), \"ConfigMapKeySelector\", \"ConfigMapKeySelector\", 1) + `,`,\n\t\t`SecretKeyRef:` + strings.Replace(this.SecretKeyRef.String(), \"SecretKeySelector\", \"SecretKeySelector\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EphemeralContainer) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&EphemeralContainer{`,\n\t\t`EphemeralContainerCommon:` + strings.Replace(strings.Replace(this.EphemeralContainerCommon.String(), \"EphemeralContainerCommon\", \"EphemeralContainerCommon\", 1), `&`, ``, 1) + `,`,\n\t\t`TargetContainerName:` + fmt.Sprintf(\"%v\", this.TargetContainerName) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EphemeralContainerCommon) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForPorts := \"[]ContainerPort{\"\n\tfor _, f := range this.Ports {\n\t\trepeatedStringForPorts += strings.Replace(strings.Replace(f.String(), \"ContainerPort\", \"ContainerPort\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPorts += \"}\"\n\trepeatedStringForEnv := \"[]EnvVar{\"\n\tfor _, f := range this.Env {\n\t\trepeatedStringForEnv += strings.Replace(strings.Replace(f.String(), \"EnvVar\", \"EnvVar\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForEnv += \"}\"\n\trepeatedStringForVolumeMounts := \"[]VolumeMount{\"\n\tfor _, f := range this.VolumeMounts {\n\t\trepeatedStringForVolumeMounts += strings.Replace(strings.Replace(f.String(), \"VolumeMount\", \"VolumeMount\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForVolumeMounts += \"}\"\n\trepeatedStringForEnvFrom := \"[]EnvFromSource{\"\n\tfor _, f := range this.EnvFrom {\n\t\trepeatedStringForEnvFrom += strings.Replace(strings.Replace(f.String(), \"EnvFromSource\", \"EnvFromSource\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForEnvFrom += \"}\"\n\trepeatedStringForVolumeDevices := \"[]VolumeDevice{\"\n\tfor _, f := range this.VolumeDevices {\n\t\trepeatedStringForVolumeDevices += strings.Replace(strings.Replace(f.String(), \"VolumeDevice\", \"VolumeDevice\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForVolumeDevices += \"}\"\n\trepeatedStringForResizePolicy := \"[]ContainerResizePolicy{\"\n\tfor _, f := range this.ResizePolicy {\n\t\trepeatedStringForResizePolicy += strings.Replace(strings.Replace(f.String(), \"ContainerResizePolicy\", \"ContainerResizePolicy\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForResizePolicy += \"}\"\n\ts := strings.Join([]string{`&EphemeralContainerCommon{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Image:` + fmt.Sprintf(\"%v\", this.Image) + `,`,\n\t\t`Command:` + fmt.Sprintf(\"%v\", this.Command) + `,`,\n\t\t`Args:` + fmt.Sprintf(\"%v\", this.Args) + `,`,\n\t\t`WorkingDir:` + fmt.Sprintf(\"%v\", this.WorkingDir) + `,`,\n\t\t`Ports:` + repeatedStringForPorts + `,`,\n\t\t`Env:` + repeatedStringForEnv + `,`,\n\t\t`Resources:` + strings.Replace(strings.Replace(this.Resources.String(), \"ResourceRequirements\", \"ResourceRequirements\", 1), `&`, ``, 1) + `,`,\n\t\t`VolumeMounts:` + repeatedStringForVolumeMounts + `,`,\n\t\t`LivenessProbe:` + strings.Replace(this.LivenessProbe.String(), \"Probe\", \"Probe\", 1) + `,`,\n\t\t`ReadinessProbe:` + strings.Replace(this.ReadinessProbe.String(), \"Probe\", \"Probe\", 1) + `,`,\n\t\t`Lifecycle:` + strings.Replace(this.Lifecycle.String(), \"Lifecycle\", \"Lifecycle\", 1) + `,`,\n\t\t`TerminationMessagePath:` + fmt.Sprintf(\"%v\", this.TerminationMessagePath) + `,`,\n\t\t`ImagePullPolicy:` + fmt.Sprintf(\"%v\", this.ImagePullPolicy) + `,`,\n\t\t`SecurityContext:` + strings.Replace(this.SecurityContext.String(), \"SecurityContext\", \"SecurityContext\", 1) + `,`,\n\t\t`Stdin:` + fmt.Sprintf(\"%v\", this.Stdin) + `,`,\n\t\t`StdinOnce:` + fmt.Sprintf(\"%v\", this.StdinOnce) + `,`,\n\t\t`TTY:` + fmt.Sprintf(\"%v\", this.TTY) + `,`,\n\t\t`EnvFrom:` + repeatedStringForEnvFrom + `,`,\n\t\t`TerminationMessagePolicy:` + fmt.Sprintf(\"%v\", this.TerminationMessagePolicy) + `,`,\n\t\t`VolumeDevices:` + repeatedStringForVolumeDevices + `,`,\n\t\t`StartupProbe:` + strings.Replace(this.StartupProbe.String(), \"Probe\", \"Probe\", 1) + `,`,\n\t\t`ResizePolicy:` + repeatedStringForResizePolicy + `,`,\n\t\t`RestartPolicy:` + valueToStringGenerated(this.RestartPolicy) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EphemeralVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&EphemeralVolumeSource{`,\n\t\t`VolumeClaimTemplate:` + strings.Replace(this.VolumeClaimTemplate.String(), \"PersistentVolumeClaimTemplate\", \"PersistentVolumeClaimTemplate\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Event) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Event{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`InvolvedObject:` + strings.Replace(strings.Replace(this.InvolvedObject.String(), \"ObjectReference\", \"ObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`Source:` + strings.Replace(strings.Replace(this.Source.String(), \"EventSource\", \"EventSource\", 1), `&`, ``, 1) + `,`,\n\t\t`FirstTimestamp:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.FirstTimestamp), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`LastTimestamp:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTimestamp), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Count:` + fmt.Sprintf(\"%v\", this.Count) + `,`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`EventTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.EventTime), \"MicroTime\", \"v1.MicroTime\", 1), `&`, ``, 1) + `,`,\n\t\t`Series:` + strings.Replace(this.Series.String(), \"EventSeries\", \"EventSeries\", 1) + `,`,\n\t\t`Action:` + fmt.Sprintf(\"%v\", this.Action) + `,`,\n\t\t`Related:` + strings.Replace(this.Related.String(), \"ObjectReference\", \"ObjectReference\", 1) + `,`,\n\t\t`ReportingController:` + fmt.Sprintf(\"%v\", this.ReportingController) + `,`,\n\t\t`ReportingInstance:` + fmt.Sprintf(\"%v\", this.ReportingInstance) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EventList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Event{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Event\", \"Event\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&EventList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EventSeries) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&EventSeries{`,\n\t\t`Count:` + fmt.Sprintf(\"%v\", this.Count) + `,`,\n\t\t`LastObservedTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastObservedTime), \"MicroTime\", \"v1.MicroTime\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EventSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&EventSource{`,\n\t\t`Component:` + fmt.Sprintf(\"%v\", this.Component) + `,`,\n\t\t`Host:` + fmt.Sprintf(\"%v\", this.Host) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ExecAction) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ExecAction{`,\n\t\t`Command:` + fmt.Sprintf(\"%v\", this.Command) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FCVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&FCVolumeSource{`,\n\t\t`TargetWWNs:` + fmt.Sprintf(\"%v\", this.TargetWWNs) + `,`,\n\t\t`Lun:` + valueToStringGenerated(this.Lun) + `,`,\n\t\t`FSType:` + fmt.Sprintf(\"%v\", this.FSType) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`WWIDs:` + fmt.Sprintf(\"%v\", this.WWIDs) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlexPersistentVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForOptions := make([]string, 0, len(this.Options))\n\tfor k := range this.Options {\n\t\tkeysForOptions = append(keysForOptions, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForOptions)\n\tmapStringForOptions := \"map[string]string{\"\n\tfor _, k := range keysForOptions {\n\t\tmapStringForOptions += fmt.Sprintf(\"%v: %v,\", k, this.Options[k])\n\t}\n\tmapStringForOptions += \"}\"\n\ts := strings.Join([]string{`&FlexPersistentVolumeSource{`,\n\t\t`Driver:` + fmt.Sprintf(\"%v\", this.Driver) + `,`,\n\t\t`FSType:` + fmt.Sprintf(\"%v\", this.FSType) + `,`,\n\t\t`SecretRef:` + strings.Replace(this.SecretRef.String(), \"SecretReference\", \"SecretReference\", 1) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`Options:` + mapStringForOptions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlexVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForOptions := make([]string, 0, len(this.Options))\n\tfor k := range this.Options {\n\t\tkeysForOptions = append(keysForOptions, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForOptions)\n\tmapStringForOptions := \"map[string]string{\"\n\tfor _, k := range keysForOptions {\n\t\tmapStringForOptions += fmt.Sprintf(\"%v: %v,\", k, this.Options[k])\n\t}\n\tmapStringForOptions += \"}\"\n\ts := strings.Join([]string{`&FlexVolumeSource{`,\n\t\t`Driver:` + fmt.Sprintf(\"%v\", this.Driver) + `,`,\n\t\t`FSType:` + fmt.Sprintf(\"%v\", this.FSType) + `,`,\n\t\t`SecretRef:` + strings.Replace(this.SecretRef.String(), \"LocalObjectReference\", \"LocalObjectReference\", 1) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`Options:` + mapStringForOptions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlockerVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&FlockerVolumeSource{`,\n\t\t`DatasetName:` + fmt.Sprintf(\"%v\", this.DatasetName) + `,`,\n\t\t`DatasetUUID:` + fmt.Sprintf(\"%v\", this.DatasetUUID) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *GCEPersistentDiskVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&GCEPersistentDiskVolumeSource{`,\n\t\t`PDName:` + fmt.Sprintf(\"%v\", this.PDName) + `,`,\n\t\t`FSType:` + fmt.Sprintf(\"%v\", this.FSType) + `,`,\n\t\t`Partition:` + fmt.Sprintf(\"%v\", this.Partition) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *GRPCAction) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&GRPCAction{`,\n\t\t`Port:` + fmt.Sprintf(\"%v\", this.Port) + `,`,\n\t\t`Service:` + valueToStringGenerated(this.Service) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *GitRepoVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&GitRepoVolumeSource{`,\n\t\t`Repository:` + fmt.Sprintf(\"%v\", this.Repository) + `,`,\n\t\t`Revision:` + fmt.Sprintf(\"%v\", this.Revision) + `,`,\n\t\t`Directory:` + fmt.Sprintf(\"%v\", this.Directory) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *GlusterfsPersistentVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&GlusterfsPersistentVolumeSource{`,\n\t\t`EndpointsName:` + fmt.Sprintf(\"%v\", this.EndpointsName) + `,`,\n\t\t`Path:` + fmt.Sprintf(\"%v\", this.Path) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`EndpointsNamespace:` + valueToStringGenerated(this.EndpointsNamespace) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *GlusterfsVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&GlusterfsVolumeSource{`,\n\t\t`EndpointsName:` + fmt.Sprintf(\"%v\", this.EndpointsName) + `,`,\n\t\t`Path:` + fmt.Sprintf(\"%v\", this.Path) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HTTPGetAction) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForHTTPHeaders := \"[]HTTPHeader{\"\n\tfor _, f := range this.HTTPHeaders {\n\t\trepeatedStringForHTTPHeaders += strings.Replace(strings.Replace(f.String(), \"HTTPHeader\", \"HTTPHeader\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForHTTPHeaders += \"}\"\n\ts := strings.Join([]string{`&HTTPGetAction{`,\n\t\t`Path:` + fmt.Sprintf(\"%v\", this.Path) + `,`,\n\t\t`Port:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Port), \"IntOrString\", \"intstr.IntOrString\", 1), `&`, ``, 1) + `,`,\n\t\t`Host:` + fmt.Sprintf(\"%v\", this.Host) + `,`,\n\t\t`Scheme:` + fmt.Sprintf(\"%v\", this.Scheme) + `,`,\n\t\t`HTTPHeaders:` + repeatedStringForHTTPHeaders + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HTTPHeader) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HTTPHeader{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Value:` + fmt.Sprintf(\"%v\", this.Value) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HostAlias) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HostAlias{`,\n\t\t`IP:` + fmt.Sprintf(\"%v\", this.IP) + `,`,\n\t\t`Hostnames:` + fmt.Sprintf(\"%v\", this.Hostnames) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HostIP) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HostIP{`,\n\t\t`IP:` + fmt.Sprintf(\"%v\", this.IP) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HostPathVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HostPathVolumeSource{`,\n\t\t`Path:` + fmt.Sprintf(\"%v\", this.Path) + `,`,\n\t\t`Type:` + valueToStringGenerated(this.Type) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ISCSIPersistentVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ISCSIPersistentVolumeSource{`,\n\t\t`TargetPortal:` + fmt.Sprintf(\"%v\", this.TargetPortal) + `,`,\n\t\t`IQN:` + fmt.Sprintf(\"%v\", this.IQN) + `,`,\n\t\t`Lun:` + fmt.Sprintf(\"%v\", this.Lun) + `,`,\n\t\t`ISCSIInterface:` + fmt.Sprintf(\"%v\", this.ISCSIInterface) + `,`,\n\t\t`FSType:` + fmt.Sprintf(\"%v\", this.FSType) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`Portals:` + fmt.Sprintf(\"%v\", this.Portals) + `,`,\n\t\t`DiscoveryCHAPAuth:` + fmt.Sprintf(\"%v\", this.DiscoveryCHAPAuth) + `,`,\n\t\t`SecretRef:` + strings.Replace(this.SecretRef.String(), \"SecretReference\", \"SecretReference\", 1) + `,`,\n\t\t`SessionCHAPAuth:` + fmt.Sprintf(\"%v\", this.SessionCHAPAuth) + `,`,\n\t\t`InitiatorName:` + valueToStringGenerated(this.InitiatorName) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ISCSIVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ISCSIVolumeSource{`,\n\t\t`TargetPortal:` + fmt.Sprintf(\"%v\", this.TargetPortal) + `,`,\n\t\t`IQN:` + fmt.Sprintf(\"%v\", this.IQN) + `,`,\n\t\t`Lun:` + fmt.Sprintf(\"%v\", this.Lun) + `,`,\n\t\t`ISCSIInterface:` + fmt.Sprintf(\"%v\", this.ISCSIInterface) + `,`,\n\t\t`FSType:` + fmt.Sprintf(\"%v\", this.FSType) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`Portals:` + fmt.Sprintf(\"%v\", this.Portals) + `,`,\n\t\t`DiscoveryCHAPAuth:` + fmt.Sprintf(\"%v\", this.DiscoveryCHAPAuth) + `,`,\n\t\t`SecretRef:` + strings.Replace(this.SecretRef.String(), \"LocalObjectReference\", \"LocalObjectReference\", 1) + `,`,\n\t\t`SessionCHAPAuth:` + fmt.Sprintf(\"%v\", this.SessionCHAPAuth) + `,`,\n\t\t`InitiatorName:` + valueToStringGenerated(this.InitiatorName) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ImageVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ImageVolumeSource{`,\n\t\t`Reference:` + fmt.Sprintf(\"%v\", this.Reference) + `,`,\n\t\t`PullPolicy:` + fmt.Sprintf(\"%v\", this.PullPolicy) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *KeyToPath) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&KeyToPath{`,\n\t\t`Key:` + fmt.Sprintf(\"%v\", this.Key) + `,`,\n\t\t`Path:` + fmt.Sprintf(\"%v\", this.Path) + `,`,\n\t\t`Mode:` + valueToStringGenerated(this.Mode) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Lifecycle) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Lifecycle{`,\n\t\t`PostStart:` + strings.Replace(this.PostStart.String(), \"LifecycleHandler\", \"LifecycleHandler\", 1) + `,`,\n\t\t`PreStop:` + strings.Replace(this.PreStop.String(), \"LifecycleHandler\", \"LifecycleHandler\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LifecycleHandler) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LifecycleHandler{`,\n\t\t`Exec:` + strings.Replace(this.Exec.String(), \"ExecAction\", \"ExecAction\", 1) + `,`,\n\t\t`HTTPGet:` + strings.Replace(this.HTTPGet.String(), \"HTTPGetAction\", \"HTTPGetAction\", 1) + `,`,\n\t\t`TCPSocket:` + strings.Replace(this.TCPSocket.String(), \"TCPSocketAction\", \"TCPSocketAction\", 1) + `,`,\n\t\t`Sleep:` + strings.Replace(this.Sleep.String(), \"SleepAction\", \"SleepAction\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LimitRange) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LimitRange{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"LimitRangeSpec\", \"LimitRangeSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LimitRangeItem) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForMax := make([]string, 0, len(this.Max))\n\tfor k := range this.Max {\n\t\tkeysForMax = append(keysForMax, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForMax)\n\tmapStringForMax := \"ResourceList{\"\n\tfor _, k := range keysForMax {\n\t\tmapStringForMax += fmt.Sprintf(\"%v: %v,\", k, this.Max[ResourceName(k)])\n\t}\n\tmapStringForMax += \"}\"\n\tkeysForMin := make([]string, 0, len(this.Min))\n\tfor k := range this.Min {\n\t\tkeysForMin = append(keysForMin, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForMin)\n\tmapStringForMin := \"ResourceList{\"\n\tfor _, k := range keysForMin {\n\t\tmapStringForMin += fmt.Sprintf(\"%v: %v,\", k, this.Min[ResourceName(k)])\n\t}\n\tmapStringForMin += \"}\"\n\tkeysForDefault := make([]string, 0, len(this.Default))\n\tfor k := range this.Default {\n\t\tkeysForDefault = append(keysForDefault, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForDefault)\n\tmapStringForDefault := \"ResourceList{\"\n\tfor _, k := range keysForDefault {\n\t\tmapStringForDefault += fmt.Sprintf(\"%v: %v,\", k, this.Default[ResourceName(k)])\n\t}\n\tmapStringForDefault += \"}\"\n\tkeysForDefaultRequest := make([]string, 0, len(this.DefaultRequest))\n\tfor k := range this.DefaultRequest {\n\t\tkeysForDefaultRequest = append(keysForDefaultRequest, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForDefaultRequest)\n\tmapStringForDefaultRequest := \"ResourceList{\"\n\tfor _, k := range keysForDefaultRequest {\n\t\tmapStringForDefaultRequest += fmt.Sprintf(\"%v: %v,\", k, this.DefaultRequest[ResourceName(k)])\n\t}\n\tmapStringForDefaultRequest += \"}\"\n\tkeysForMaxLimitRequestRatio := make([]string, 0, len(this.MaxLimitRequestRatio))\n\tfor k := range this.MaxLimitRequestRatio {\n\t\tkeysForMaxLimitRequestRatio = append(keysForMaxLimitRequestRatio, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForMaxLimitRequestRatio)\n\tmapStringForMaxLimitRequestRatio := \"ResourceList{\"\n\tfor _, k := range keysForMaxLimitRequestRatio {\n\t\tmapStringForMaxLimitRequestRatio += fmt.Sprintf(\"%v: %v,\", k, this.MaxLimitRequestRatio[ResourceName(k)])\n\t}\n\tmapStringForMaxLimitRequestRatio += \"}\"\n\ts := strings.Join([]string{`&LimitRangeItem{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Max:` + mapStringForMax + `,`,\n\t\t`Min:` + mapStringForMin + `,`,\n\t\t`Default:` + mapStringForDefault + `,`,\n\t\t`DefaultRequest:` + mapStringForDefaultRequest + `,`,\n\t\t`MaxLimitRequestRatio:` + mapStringForMaxLimitRequestRatio + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LimitRangeList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]LimitRange{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"LimitRange\", \"LimitRange\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&LimitRangeList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LimitRangeSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForLimits := \"[]LimitRangeItem{\"\n\tfor _, f := range this.Limits {\n\t\trepeatedStringForLimits += strings.Replace(strings.Replace(f.String(), \"LimitRangeItem\", \"LimitRangeItem\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForLimits += \"}\"\n\ts := strings.Join([]string{`&LimitRangeSpec{`,\n\t\t`Limits:` + repeatedStringForLimits + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LinuxContainerUser) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LinuxContainerUser{`,\n\t\t`UID:` + fmt.Sprintf(\"%v\", this.UID) + `,`,\n\t\t`GID:` + fmt.Sprintf(\"%v\", this.GID) + `,`,\n\t\t`SupplementalGroups:` + fmt.Sprintf(\"%v\", this.SupplementalGroups) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *List) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]RawExtension{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&List{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LoadBalancerIngress) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForPorts := \"[]PortStatus{\"\n\tfor _, f := range this.Ports {\n\t\trepeatedStringForPorts += strings.Replace(strings.Replace(f.String(), \"PortStatus\", \"PortStatus\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPorts += \"}\"\n\ts := strings.Join([]string{`&LoadBalancerIngress{`,\n\t\t`IP:` + fmt.Sprintf(\"%v\", this.IP) + `,`,\n\t\t`Hostname:` + fmt.Sprintf(\"%v\", this.Hostname) + `,`,\n\t\t`IPMode:` + valueToStringGenerated(this.IPMode) + `,`,\n\t\t`Ports:` + repeatedStringForPorts + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LoadBalancerStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForIngress := \"[]LoadBalancerIngress{\"\n\tfor _, f := range this.Ingress {\n\t\trepeatedStringForIngress += strings.Replace(strings.Replace(f.String(), \"LoadBalancerIngress\", \"LoadBalancerIngress\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForIngress += \"}\"\n\ts := strings.Join([]string{`&LoadBalancerStatus{`,\n\t\t`Ingress:` + repeatedStringForIngress + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LocalObjectReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LocalObjectReference{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LocalVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LocalVolumeSource{`,\n\t\t`Path:` + fmt.Sprintf(\"%v\", this.Path) + `,`,\n\t\t`FSType:` + valueToStringGenerated(this.FSType) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ModifyVolumeStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ModifyVolumeStatus{`,\n\t\t`TargetVolumeAttributesClassName:` + fmt.Sprintf(\"%v\", this.TargetVolumeAttributesClassName) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NFSVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NFSVolumeSource{`,\n\t\t`Server:` + fmt.Sprintf(\"%v\", this.Server) + `,`,\n\t\t`Path:` + fmt.Sprintf(\"%v\", this.Path) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Namespace) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Namespace{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"NamespaceSpec\", \"NamespaceSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"NamespaceStatus\", \"NamespaceStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NamespaceCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NamespaceCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NamespaceList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Namespace{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Namespace\", \"Namespace\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&NamespaceList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NamespaceSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NamespaceSpec{`,\n\t\t`Finalizers:` + fmt.Sprintf(\"%v\", this.Finalizers) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NamespaceStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]NamespaceCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"NamespaceCondition\", \"NamespaceCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&NamespaceStatus{`,\n\t\t`Phase:` + fmt.Sprintf(\"%v\", this.Phase) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Node) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Node{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"NodeSpec\", \"NodeSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"NodeStatus\", \"NodeStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NodeAddress) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NodeAddress{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Address:` + fmt.Sprintf(\"%v\", this.Address) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NodeAffinity) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForPreferredDuringSchedulingIgnoredDuringExecution := \"[]PreferredSchedulingTerm{\"\n\tfor _, f := range this.PreferredDuringSchedulingIgnoredDuringExecution {\n\t\trepeatedStringForPreferredDuringSchedulingIgnoredDuringExecution += strings.Replace(strings.Replace(f.String(), \"PreferredSchedulingTerm\", \"PreferredSchedulingTerm\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPreferredDuringSchedulingIgnoredDuringExecution += \"}\"\n\ts := strings.Join([]string{`&NodeAffinity{`,\n\t\t`RequiredDuringSchedulingIgnoredDuringExecution:` + strings.Replace(this.RequiredDuringSchedulingIgnoredDuringExecution.String(), \"NodeSelector\", \"NodeSelector\", 1) + `,`,\n\t\t`PreferredDuringSchedulingIgnoredDuringExecution:` + repeatedStringForPreferredDuringSchedulingIgnoredDuringExecution + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NodeCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NodeCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastHeartbeatTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastHeartbeatTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NodeConfigSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NodeConfigSource{`,\n\t\t`ConfigMap:` + strings.Replace(this.ConfigMap.String(), \"ConfigMapNodeConfigSource\", \"ConfigMapNodeConfigSource\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NodeConfigStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NodeConfigStatus{`,\n\t\t`Assigned:` + strings.Replace(this.Assigned.String(), \"NodeConfigSource\", \"NodeConfigSource\", 1) + `,`,\n\t\t`Active:` + strings.Replace(this.Active.String(), \"NodeConfigSource\", \"NodeConfigSource\", 1) + `,`,\n\t\t`LastKnownGood:` + strings.Replace(this.LastKnownGood.String(), \"NodeConfigSource\", \"NodeConfigSource\", 1) + `,`,\n\t\t`Error:` + fmt.Sprintf(\"%v\", this.Error) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NodeDaemonEndpoints) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NodeDaemonEndpoints{`,\n\t\t`KubeletEndpoint:` + strings.Replace(strings.Replace(this.KubeletEndpoint.String(), \"DaemonEndpoint\", \"DaemonEndpoint\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NodeFeatures) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NodeFeatures{`,\n\t\t`SupplementalGroupsPolicy:` + valueToStringGenerated(this.SupplementalGroupsPolicy) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NodeList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Node{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Node\", \"Node\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&NodeList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NodeProxyOptions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NodeProxyOptions{`,\n\t\t`Path:` + fmt.Sprintf(\"%v\", this.Path) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NodeRuntimeHandler) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NodeRuntimeHandler{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Features:` + strings.Replace(this.Features.String(), \"NodeRuntimeHandlerFeatures\", \"NodeRuntimeHandlerFeatures\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NodeRuntimeHandlerFeatures) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NodeRuntimeHandlerFeatures{`,\n\t\t`RecursiveReadOnlyMounts:` + valueToStringGenerated(this.RecursiveReadOnlyMounts) + `,`,\n\t\t`UserNamespaces:` + valueToStringGenerated(this.UserNamespaces) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NodeSelector) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForNodeSelectorTerms := \"[]NodeSelectorTerm{\"\n\tfor _, f := range this.NodeSelectorTerms {\n\t\trepeatedStringForNodeSelectorTerms += strings.Replace(strings.Replace(f.String(), \"NodeSelectorTerm\", \"NodeSelectorTerm\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForNodeSelectorTerms += \"}\"\n\ts := strings.Join([]string{`&NodeSelector{`,\n\t\t`NodeSelectorTerms:` + repeatedStringForNodeSelectorTerms + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NodeSelectorRequirement) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NodeSelectorRequirement{`,\n\t\t`Key:` + fmt.Sprintf(\"%v\", this.Key) + `,`,\n\t\t`Operator:` + fmt.Sprintf(\"%v\", this.Operator) + `,`,\n\t\t`Values:` + fmt.Sprintf(\"%v\", this.Values) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NodeSelectorTerm) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForMatchExpressions := \"[]NodeSelectorRequirement{\"\n\tfor _, f := range this.MatchExpressions {\n\t\trepeatedStringForMatchExpressions += strings.Replace(strings.Replace(f.String(), \"NodeSelectorRequirement\", \"NodeSelectorRequirement\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForMatchExpressions += \"}\"\n\trepeatedStringForMatchFields := \"[]NodeSelectorRequirement{\"\n\tfor _, f := range this.MatchFields {\n\t\trepeatedStringForMatchFields += strings.Replace(strings.Replace(f.String(), \"NodeSelectorRequirement\", \"NodeSelectorRequirement\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForMatchFields += \"}\"\n\ts := strings.Join([]string{`&NodeSelectorTerm{`,\n\t\t`MatchExpressions:` + repeatedStringForMatchExpressions + `,`,\n\t\t`MatchFields:` + repeatedStringForMatchFields + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NodeSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForTaints := \"[]Taint{\"\n\tfor _, f := range this.Taints {\n\t\trepeatedStringForTaints += strings.Replace(strings.Replace(f.String(), \"Taint\", \"Taint\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForTaints += \"}\"\n\ts := strings.Join([]string{`&NodeSpec{`,\n\t\t`PodCIDR:` + fmt.Sprintf(\"%v\", this.PodCIDR) + `,`,\n\t\t`DoNotUseExternalID:` + fmt.Sprintf(\"%v\", this.DoNotUseExternalID) + `,`,\n\t\t`ProviderID:` + fmt.Sprintf(\"%v\", this.ProviderID) + `,`,\n\t\t`Unschedulable:` + fmt.Sprintf(\"%v\", this.Unschedulable) + `,`,\n\t\t`Taints:` + repeatedStringForTaints + `,`,\n\t\t`ConfigSource:` + strings.Replace(this.ConfigSource.String(), \"NodeConfigSource\", \"NodeConfigSource\", 1) + `,`,\n\t\t`PodCIDRs:` + fmt.Sprintf(\"%v\", this.PodCIDRs) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NodeStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]NodeCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"NodeCondition\", \"NodeCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\trepeatedStringForAddresses := \"[]NodeAddress{\"\n\tfor _, f := range this.Addresses {\n\t\trepeatedStringForAddresses += strings.Replace(strings.Replace(f.String(), \"NodeAddress\", \"NodeAddress\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForAddresses += \"}\"\n\trepeatedStringForImages := \"[]ContainerImage{\"\n\tfor _, f := range this.Images {\n\t\trepeatedStringForImages += strings.Replace(strings.Replace(f.String(), \"ContainerImage\", \"ContainerImage\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForImages += \"}\"\n\trepeatedStringForVolumesAttached := \"[]AttachedVolume{\"\n\tfor _, f := range this.VolumesAttached {\n\t\trepeatedStringForVolumesAttached += strings.Replace(strings.Replace(f.String(), \"AttachedVolume\", \"AttachedVolume\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForVolumesAttached += \"}\"\n\trepeatedStringForRuntimeHandlers := \"[]NodeRuntimeHandler{\"\n\tfor _, f := range this.RuntimeHandlers {\n\t\trepeatedStringForRuntimeHandlers += strings.Replace(strings.Replace(f.String(), \"NodeRuntimeHandler\", \"NodeRuntimeHandler\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRuntimeHandlers += \"}\"\n\tkeysForCapacity := make([]string, 0, len(this.Capacity))\n\tfor k := range this.Capacity {\n\t\tkeysForCapacity = append(keysForCapacity, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForCapacity)\n\tmapStringForCapacity := \"ResourceList{\"\n\tfor _, k := range keysForCapacity {\n\t\tmapStringForCapacity += fmt.Sprintf(\"%v: %v,\", k, this.Capacity[ResourceName(k)])\n\t}\n\tmapStringForCapacity += \"}\"\n\tkeysForAllocatable := make([]string, 0, len(this.Allocatable))\n\tfor k := range this.Allocatable {\n\t\tkeysForAllocatable = append(keysForAllocatable, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAllocatable)\n\tmapStringForAllocatable := \"ResourceList{\"\n\tfor _, k := range keysForAllocatable {\n\t\tmapStringForAllocatable += fmt.Sprintf(\"%v: %v,\", k, this.Allocatable[ResourceName(k)])\n\t}\n\tmapStringForAllocatable += \"}\"\n\ts := strings.Join([]string{`&NodeStatus{`,\n\t\t`Capacity:` + mapStringForCapacity + `,`,\n\t\t`Allocatable:` + mapStringForAllocatable + `,`,\n\t\t`Phase:` + fmt.Sprintf(\"%v\", this.Phase) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`Addresses:` + repeatedStringForAddresses + `,`,\n\t\t`DaemonEndpoints:` + strings.Replace(strings.Replace(this.DaemonEndpoints.String(), \"NodeDaemonEndpoints\", \"NodeDaemonEndpoints\", 1), `&`, ``, 1) + `,`,\n\t\t`NodeInfo:` + strings.Replace(strings.Replace(this.NodeInfo.String(), \"NodeSystemInfo\", \"NodeSystemInfo\", 1), `&`, ``, 1) + `,`,\n\t\t`Images:` + repeatedStringForImages + `,`,\n\t\t`VolumesInUse:` + fmt.Sprintf(\"%v\", this.VolumesInUse) + `,`,\n\t\t`VolumesAttached:` + repeatedStringForVolumesAttached + `,`,\n\t\t`Config:` + strings.Replace(this.Config.String(), \"NodeConfigStatus\", \"NodeConfigStatus\", 1) + `,`,\n\t\t`RuntimeHandlers:` + repeatedStringForRuntimeHandlers + `,`,\n\t\t`Features:` + strings.Replace(this.Features.String(), \"NodeFeatures\", \"NodeFeatures\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NodeSystemInfo) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NodeSystemInfo{`,\n\t\t`MachineID:` + fmt.Sprintf(\"%v\", this.MachineID) + `,`,\n\t\t`SystemUUID:` + fmt.Sprintf(\"%v\", this.SystemUUID) + `,`,\n\t\t`BootID:` + fmt.Sprintf(\"%v\", this.BootID) + `,`,\n\t\t`KernelVersion:` + fmt.Sprintf(\"%v\", this.KernelVersion) + `,`,\n\t\t`OSImage:` + fmt.Sprintf(\"%v\", this.OSImage) + `,`,\n\t\t`ContainerRuntimeVersion:` + fmt.Sprintf(\"%v\", this.ContainerRuntimeVersion) + `,`,\n\t\t`KubeletVersion:` + fmt.Sprintf(\"%v\", this.KubeletVersion) + `,`,\n\t\t`KubeProxyVersion:` + fmt.Sprintf(\"%v\", this.KubeProxyVersion) + `,`,\n\t\t`OperatingSystem:` + fmt.Sprintf(\"%v\", this.OperatingSystem) + `,`,\n\t\t`Architecture:` + fmt.Sprintf(\"%v\", this.Architecture) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ObjectFieldSelector) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ObjectFieldSelector{`,\n\t\t`APIVersion:` + fmt.Sprintf(\"%v\", this.APIVersion) + `,`,\n\t\t`FieldPath:` + fmt.Sprintf(\"%v\", this.FieldPath) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ObjectReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ObjectReference{`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`UID:` + fmt.Sprintf(\"%v\", this.UID) + `,`,\n\t\t`APIVersion:` + fmt.Sprintf(\"%v\", this.APIVersion) + `,`,\n\t\t`ResourceVersion:` + fmt.Sprintf(\"%v\", this.ResourceVersion) + `,`,\n\t\t`FieldPath:` + fmt.Sprintf(\"%v\", this.FieldPath) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PersistentVolume) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PersistentVolume{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"PersistentVolumeSpec\", \"PersistentVolumeSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"PersistentVolumeStatus\", \"PersistentVolumeStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PersistentVolumeClaim) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PersistentVolumeClaim{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"PersistentVolumeClaimSpec\", \"PersistentVolumeClaimSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"PersistentVolumeClaimStatus\", \"PersistentVolumeClaimStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PersistentVolumeClaimCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PersistentVolumeClaimCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastProbeTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastProbeTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PersistentVolumeClaimList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]PersistentVolumeClaim{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"PersistentVolumeClaim\", \"PersistentVolumeClaim\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&PersistentVolumeClaimList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PersistentVolumeClaimSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PersistentVolumeClaimSpec{`,\n\t\t`AccessModes:` + fmt.Sprintf(\"%v\", this.AccessModes) + `,`,\n\t\t`Resources:` + strings.Replace(strings.Replace(this.Resources.String(), \"VolumeResourceRequirements\", \"VolumeResourceRequirements\", 1), `&`, ``, 1) + `,`,\n\t\t`VolumeName:` + fmt.Sprintf(\"%v\", this.VolumeName) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`StorageClassName:` + valueToStringGenerated(this.StorageClassName) + `,`,\n\t\t`VolumeMode:` + valueToStringGenerated(this.VolumeMode) + `,`,\n\t\t`DataSource:` + strings.Replace(this.DataSource.String(), \"TypedLocalObjectReference\", \"TypedLocalObjectReference\", 1) + `,`,\n\t\t`DataSourceRef:` + strings.Replace(this.DataSourceRef.String(), \"TypedObjectReference\", \"TypedObjectReference\", 1) + `,`,\n\t\t`VolumeAttributesClassName:` + valueToStringGenerated(this.VolumeAttributesClassName) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PersistentVolumeClaimStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]PersistentVolumeClaimCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"PersistentVolumeClaimCondition\", \"PersistentVolumeClaimCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\tkeysForCapacity := make([]string, 0, len(this.Capacity))\n\tfor k := range this.Capacity {\n\t\tkeysForCapacity = append(keysForCapacity, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForCapacity)\n\tmapStringForCapacity := \"ResourceList{\"\n\tfor _, k := range keysForCapacity {\n\t\tmapStringForCapacity += fmt.Sprintf(\"%v: %v,\", k, this.Capacity[ResourceName(k)])\n\t}\n\tmapStringForCapacity += \"}\"\n\tkeysForAllocatedResources := make([]string, 0, len(this.AllocatedResources))\n\tfor k := range this.AllocatedResources {\n\t\tkeysForAllocatedResources = append(keysForAllocatedResources, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAllocatedResources)\n\tmapStringForAllocatedResources := \"ResourceList{\"\n\tfor _, k := range keysForAllocatedResources {\n\t\tmapStringForAllocatedResources += fmt.Sprintf(\"%v: %v,\", k, this.AllocatedResources[ResourceName(k)])\n\t}\n\tmapStringForAllocatedResources += \"}\"\n\tkeysForAllocatedResourceStatuses := make([]string, 0, len(this.AllocatedResourceStatuses))\n\tfor k := range this.AllocatedResourceStatuses {\n\t\tkeysForAllocatedResourceStatuses = append(keysForAllocatedResourceStatuses, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAllocatedResourceStatuses)\n\tmapStringForAllocatedResourceStatuses := \"map[ResourceName]ClaimResourceStatus{\"\n\tfor _, k := range keysForAllocatedResourceStatuses {\n\t\tmapStringForAllocatedResourceStatuses += fmt.Sprintf(\"%v: %v,\", k, this.AllocatedResourceStatuses[ResourceName(k)])\n\t}\n\tmapStringForAllocatedResourceStatuses += \"}\"\n\ts := strings.Join([]string{`&PersistentVolumeClaimStatus{`,\n\t\t`Phase:` + fmt.Sprintf(\"%v\", this.Phase) + `,`,\n\t\t`AccessModes:` + fmt.Sprintf(\"%v\", this.AccessModes) + `,`,\n\t\t`Capacity:` + mapStringForCapacity + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`AllocatedResources:` + mapStringForAllocatedResources + `,`,\n\t\t`AllocatedResourceStatuses:` + mapStringForAllocatedResourceStatuses + `,`,\n\t\t`CurrentVolumeAttributesClassName:` + valueToStringGenerated(this.CurrentVolumeAttributesClassName) + `,`,\n\t\t`ModifyVolumeStatus:` + strings.Replace(this.ModifyVolumeStatus.String(), \"ModifyVolumeStatus\", \"ModifyVolumeStatus\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PersistentVolumeClaimTemplate) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PersistentVolumeClaimTemplate{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"PersistentVolumeClaimSpec\", \"PersistentVolumeClaimSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PersistentVolumeClaimVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PersistentVolumeClaimVolumeSource{`,\n\t\t`ClaimName:` + fmt.Sprintf(\"%v\", this.ClaimName) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PersistentVolumeList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]PersistentVolume{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"PersistentVolume\", \"PersistentVolume\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&PersistentVolumeList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PersistentVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PersistentVolumeSource{`,\n\t\t`GCEPersistentDisk:` + strings.Replace(this.GCEPersistentDisk.String(), \"GCEPersistentDiskVolumeSource\", \"GCEPersistentDiskVolumeSource\", 1) + `,`,\n\t\t`AWSElasticBlockStore:` + strings.Replace(this.AWSElasticBlockStore.String(), \"AWSElasticBlockStoreVolumeSource\", \"AWSElasticBlockStoreVolumeSource\", 1) + `,`,\n\t\t`HostPath:` + strings.Replace(this.HostPath.String(), \"HostPathVolumeSource\", \"HostPathVolumeSource\", 1) + `,`,\n\t\t`Glusterfs:` + strings.Replace(this.Glusterfs.String(), \"GlusterfsPersistentVolumeSource\", \"GlusterfsPersistentVolumeSource\", 1) + `,`,\n\t\t`NFS:` + strings.Replace(this.NFS.String(), \"NFSVolumeSource\", \"NFSVolumeSource\", 1) + `,`,\n\t\t`RBD:` + strings.Replace(this.RBD.String(), \"RBDPersistentVolumeSource\", \"RBDPersistentVolumeSource\", 1) + `,`,\n\t\t`ISCSI:` + strings.Replace(this.ISCSI.String(), \"ISCSIPersistentVolumeSource\", \"ISCSIPersistentVolumeSource\", 1) + `,`,\n\t\t`Cinder:` + strings.Replace(this.Cinder.String(), \"CinderPersistentVolumeSource\", \"CinderPersistentVolumeSource\", 1) + `,`,\n\t\t`CephFS:` + strings.Replace(this.CephFS.String(), \"CephFSPersistentVolumeSource\", \"CephFSPersistentVolumeSource\", 1) + `,`,\n\t\t`FC:` + strings.Replace(this.FC.String(), \"FCVolumeSource\", \"FCVolumeSource\", 1) + `,`,\n\t\t`Flocker:` + strings.Replace(this.Flocker.String(), \"FlockerVolumeSource\", \"FlockerVolumeSource\", 1) + `,`,\n\t\t`FlexVolume:` + strings.Replace(this.FlexVolume.String(), \"FlexPersistentVolumeSource\", \"FlexPersistentVolumeSource\", 1) + `,`,\n\t\t`AzureFile:` + strings.Replace(this.AzureFile.String(), \"AzureFilePersistentVolumeSource\", \"AzureFilePersistentVolumeSource\", 1) + `,`,\n\t\t`VsphereVolume:` + strings.Replace(this.VsphereVolume.String(), \"VsphereVirtualDiskVolumeSource\", \"VsphereVirtualDiskVolumeSource\", 1) + `,`,\n\t\t`Quobyte:` + strings.Replace(this.Quobyte.String(), \"QuobyteVolumeSource\", \"QuobyteVolumeSource\", 1) + `,`,\n\t\t`AzureDisk:` + strings.Replace(this.AzureDisk.String(), \"AzureDiskVolumeSource\", \"AzureDiskVolumeSource\", 1) + `,`,\n\t\t`PhotonPersistentDisk:` + strings.Replace(this.PhotonPersistentDisk.String(), \"PhotonPersistentDiskVolumeSource\", \"PhotonPersistentDiskVolumeSource\", 1) + `,`,\n\t\t`PortworxVolume:` + strings.Replace(this.PortworxVolume.String(), \"PortworxVolumeSource\", \"PortworxVolumeSource\", 1) + `,`,\n\t\t`ScaleIO:` + strings.Replace(this.ScaleIO.String(), \"ScaleIOPersistentVolumeSource\", \"ScaleIOPersistentVolumeSource\", 1) + `,`,\n\t\t`Local:` + strings.Replace(this.Local.String(), \"LocalVolumeSource\", \"LocalVolumeSource\", 1) + `,`,\n\t\t`StorageOS:` + strings.Replace(this.StorageOS.String(), \"StorageOSPersistentVolumeSource\", \"StorageOSPersistentVolumeSource\", 1) + `,`,\n\t\t`CSI:` + strings.Replace(this.CSI.String(), \"CSIPersistentVolumeSource\", \"CSIPersistentVolumeSource\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PersistentVolumeSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForCapacity := make([]string, 0, len(this.Capacity))\n\tfor k := range this.Capacity {\n\t\tkeysForCapacity = append(keysForCapacity, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForCapacity)\n\tmapStringForCapacity := \"ResourceList{\"\n\tfor _, k := range keysForCapacity {\n\t\tmapStringForCapacity += fmt.Sprintf(\"%v: %v,\", k, this.Capacity[ResourceName(k)])\n\t}\n\tmapStringForCapacity += \"}\"\n\ts := strings.Join([]string{`&PersistentVolumeSpec{`,\n\t\t`Capacity:` + mapStringForCapacity + `,`,\n\t\t`PersistentVolumeSource:` + strings.Replace(strings.Replace(this.PersistentVolumeSource.String(), \"PersistentVolumeSource\", \"PersistentVolumeSource\", 1), `&`, ``, 1) + `,`,\n\t\t`AccessModes:` + fmt.Sprintf(\"%v\", this.AccessModes) + `,`,\n\t\t`ClaimRef:` + strings.Replace(this.ClaimRef.String(), \"ObjectReference\", \"ObjectReference\", 1) + `,`,\n\t\t`PersistentVolumeReclaimPolicy:` + fmt.Sprintf(\"%v\", this.PersistentVolumeReclaimPolicy) + `,`,\n\t\t`StorageClassName:` + fmt.Sprintf(\"%v\", this.StorageClassName) + `,`,\n\t\t`MountOptions:` + fmt.Sprintf(\"%v\", this.MountOptions) + `,`,\n\t\t`VolumeMode:` + valueToStringGenerated(this.VolumeMode) + `,`,\n\t\t`NodeAffinity:` + strings.Replace(this.NodeAffinity.String(), \"VolumeNodeAffinity\", \"VolumeNodeAffinity\", 1) + `,`,\n\t\t`VolumeAttributesClassName:` + valueToStringGenerated(this.VolumeAttributesClassName) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PersistentVolumeStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PersistentVolumeStatus{`,\n\t\t`Phase:` + fmt.Sprintf(\"%v\", this.Phase) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`LastPhaseTransitionTime:` + strings.Replace(fmt.Sprintf(\"%v\", this.LastPhaseTransitionTime), \"Time\", \"v1.Time\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PhotonPersistentDiskVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PhotonPersistentDiskVolumeSource{`,\n\t\t`PdID:` + fmt.Sprintf(\"%v\", this.PdID) + `,`,\n\t\t`FSType:` + fmt.Sprintf(\"%v\", this.FSType) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Pod) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Pod{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"PodSpec\", \"PodSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"PodStatus\", \"PodStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodAffinity) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForRequiredDuringSchedulingIgnoredDuringExecution := \"[]PodAffinityTerm{\"\n\tfor _, f := range this.RequiredDuringSchedulingIgnoredDuringExecution {\n\t\trepeatedStringForRequiredDuringSchedulingIgnoredDuringExecution += strings.Replace(strings.Replace(f.String(), \"PodAffinityTerm\", \"PodAffinityTerm\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRequiredDuringSchedulingIgnoredDuringExecution += \"}\"\n\trepeatedStringForPreferredDuringSchedulingIgnoredDuringExecution := \"[]WeightedPodAffinityTerm{\"\n\tfor _, f := range this.PreferredDuringSchedulingIgnoredDuringExecution {\n\t\trepeatedStringForPreferredDuringSchedulingIgnoredDuringExecution += strings.Replace(strings.Replace(f.String(), \"WeightedPodAffinityTerm\", \"WeightedPodAffinityTerm\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPreferredDuringSchedulingIgnoredDuringExecution += \"}\"\n\ts := strings.Join([]string{`&PodAffinity{`,\n\t\t`RequiredDuringSchedulingIgnoredDuringExecution:` + repeatedStringForRequiredDuringSchedulingIgnoredDuringExecution + `,`,\n\t\t`PreferredDuringSchedulingIgnoredDuringExecution:` + repeatedStringForPreferredDuringSchedulingIgnoredDuringExecution + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodAffinityTerm) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodAffinityTerm{`,\n\t\t`LabelSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.LabelSelector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`Namespaces:` + fmt.Sprintf(\"%v\", this.Namespaces) + `,`,\n\t\t`TopologyKey:` + fmt.Sprintf(\"%v\", this.TopologyKey) + `,`,\n\t\t`NamespaceSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.NamespaceSelector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`MatchLabelKeys:` + fmt.Sprintf(\"%v\", this.MatchLabelKeys) + `,`,\n\t\t`MismatchLabelKeys:` + fmt.Sprintf(\"%v\", this.MismatchLabelKeys) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodAntiAffinity) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForRequiredDuringSchedulingIgnoredDuringExecution := \"[]PodAffinityTerm{\"\n\tfor _, f := range this.RequiredDuringSchedulingIgnoredDuringExecution {\n\t\trepeatedStringForRequiredDuringSchedulingIgnoredDuringExecution += strings.Replace(strings.Replace(f.String(), \"PodAffinityTerm\", \"PodAffinityTerm\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRequiredDuringSchedulingIgnoredDuringExecution += \"}\"\n\trepeatedStringForPreferredDuringSchedulingIgnoredDuringExecution := \"[]WeightedPodAffinityTerm{\"\n\tfor _, f := range this.PreferredDuringSchedulingIgnoredDuringExecution {\n\t\trepeatedStringForPreferredDuringSchedulingIgnoredDuringExecution += strings.Replace(strings.Replace(f.String(), \"WeightedPodAffinityTerm\", \"WeightedPodAffinityTerm\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPreferredDuringSchedulingIgnoredDuringExecution += \"}\"\n\ts := strings.Join([]string{`&PodAntiAffinity{`,\n\t\t`RequiredDuringSchedulingIgnoredDuringExecution:` + repeatedStringForRequiredDuringSchedulingIgnoredDuringExecution + `,`,\n\t\t`PreferredDuringSchedulingIgnoredDuringExecution:` + repeatedStringForPreferredDuringSchedulingIgnoredDuringExecution + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodAttachOptions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodAttachOptions{`,\n\t\t`Stdin:` + fmt.Sprintf(\"%v\", this.Stdin) + `,`,\n\t\t`Stdout:` + fmt.Sprintf(\"%v\", this.Stdout) + `,`,\n\t\t`Stderr:` + fmt.Sprintf(\"%v\", this.Stderr) + `,`,\n\t\t`TTY:` + fmt.Sprintf(\"%v\", this.TTY) + `,`,\n\t\t`Container:` + fmt.Sprintf(\"%v\", this.Container) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastProbeTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastProbeTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodDNSConfig) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForOptions := \"[]PodDNSConfigOption{\"\n\tfor _, f := range this.Options {\n\t\trepeatedStringForOptions += strings.Replace(strings.Replace(f.String(), \"PodDNSConfigOption\", \"PodDNSConfigOption\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForOptions += \"}\"\n\ts := strings.Join([]string{`&PodDNSConfig{`,\n\t\t`Nameservers:` + fmt.Sprintf(\"%v\", this.Nameservers) + `,`,\n\t\t`Searches:` + fmt.Sprintf(\"%v\", this.Searches) + `,`,\n\t\t`Options:` + repeatedStringForOptions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodDNSConfigOption) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodDNSConfigOption{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Value:` + valueToStringGenerated(this.Value) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodExecOptions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodExecOptions{`,\n\t\t`Stdin:` + fmt.Sprintf(\"%v\", this.Stdin) + `,`,\n\t\t`Stdout:` + fmt.Sprintf(\"%v\", this.Stdout) + `,`,\n\t\t`Stderr:` + fmt.Sprintf(\"%v\", this.Stderr) + `,`,\n\t\t`TTY:` + fmt.Sprintf(\"%v\", this.TTY) + `,`,\n\t\t`Container:` + fmt.Sprintf(\"%v\", this.Container) + `,`,\n\t\t`Command:` + fmt.Sprintf(\"%v\", this.Command) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodIP) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodIP{`,\n\t\t`IP:` + fmt.Sprintf(\"%v\", this.IP) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Pod{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Pod\", \"Pod\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&PodList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodLogOptions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodLogOptions{`,\n\t\t`Container:` + fmt.Sprintf(\"%v\", this.Container) + `,`,\n\t\t`Follow:` + fmt.Sprintf(\"%v\", this.Follow) + `,`,\n\t\t`Previous:` + fmt.Sprintf(\"%v\", this.Previous) + `,`,\n\t\t`SinceSeconds:` + valueToStringGenerated(this.SinceSeconds) + `,`,\n\t\t`SinceTime:` + strings.Replace(fmt.Sprintf(\"%v\", this.SinceTime), \"Time\", \"v1.Time\", 1) + `,`,\n\t\t`Timestamps:` + fmt.Sprintf(\"%v\", this.Timestamps) + `,`,\n\t\t`TailLines:` + valueToStringGenerated(this.TailLines) + `,`,\n\t\t`LimitBytes:` + valueToStringGenerated(this.LimitBytes) + `,`,\n\t\t`InsecureSkipTLSVerifyBackend:` + fmt.Sprintf(\"%v\", this.InsecureSkipTLSVerifyBackend) + `,`,\n\t\t`Stream:` + valueToStringGenerated(this.Stream) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodOS) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodOS{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodPortForwardOptions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodPortForwardOptions{`,\n\t\t`Ports:` + fmt.Sprintf(\"%v\", this.Ports) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodProxyOptions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodProxyOptions{`,\n\t\t`Path:` + fmt.Sprintf(\"%v\", this.Path) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodReadinessGate) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodReadinessGate{`,\n\t\t`ConditionType:` + fmt.Sprintf(\"%v\", this.ConditionType) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodResourceClaim) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodResourceClaim{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`ResourceClaimName:` + valueToStringGenerated(this.ResourceClaimName) + `,`,\n\t\t`ResourceClaimTemplateName:` + valueToStringGenerated(this.ResourceClaimTemplateName) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodResourceClaimStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodResourceClaimStatus{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`ResourceClaimName:` + valueToStringGenerated(this.ResourceClaimName) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodSchedulingGate) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodSchedulingGate{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodSecurityContext) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForSysctls := \"[]Sysctl{\"\n\tfor _, f := range this.Sysctls {\n\t\trepeatedStringForSysctls += strings.Replace(strings.Replace(f.String(), \"Sysctl\", \"Sysctl\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForSysctls += \"}\"\n\ts := strings.Join([]string{`&PodSecurityContext{`,\n\t\t`SELinuxOptions:` + strings.Replace(this.SELinuxOptions.String(), \"SELinuxOptions\", \"SELinuxOptions\", 1) + `,`,\n\t\t`RunAsUser:` + valueToStringGenerated(this.RunAsUser) + `,`,\n\t\t`RunAsNonRoot:` + valueToStringGenerated(this.RunAsNonRoot) + `,`,\n\t\t`SupplementalGroups:` + fmt.Sprintf(\"%v\", this.SupplementalGroups) + `,`,\n\t\t`FSGroup:` + valueToStringGenerated(this.FSGroup) + `,`,\n\t\t`RunAsGroup:` + valueToStringGenerated(this.RunAsGroup) + `,`,\n\t\t`Sysctls:` + repeatedStringForSysctls + `,`,\n\t\t`WindowsOptions:` + strings.Replace(this.WindowsOptions.String(), \"WindowsSecurityContextOptions\", \"WindowsSecurityContextOptions\", 1) + `,`,\n\t\t`FSGroupChangePolicy:` + valueToStringGenerated(this.FSGroupChangePolicy) + `,`,\n\t\t`SeccompProfile:` + strings.Replace(this.SeccompProfile.String(), \"SeccompProfile\", \"SeccompProfile\", 1) + `,`,\n\t\t`AppArmorProfile:` + strings.Replace(this.AppArmorProfile.String(), \"AppArmorProfile\", \"AppArmorProfile\", 1) + `,`,\n\t\t`SupplementalGroupsPolicy:` + valueToStringGenerated(this.SupplementalGroupsPolicy) + `,`,\n\t\t`SELinuxChangePolicy:` + valueToStringGenerated(this.SELinuxChangePolicy) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodSignature) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodSignature{`,\n\t\t`PodController:` + strings.Replace(fmt.Sprintf(\"%v\", this.PodController), \"OwnerReference\", \"v1.OwnerReference\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForVolumes := \"[]Volume{\"\n\tfor _, f := range this.Volumes {\n\t\trepeatedStringForVolumes += strings.Replace(strings.Replace(f.String(), \"Volume\", \"Volume\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForVolumes += \"}\"\n\trepeatedStringForContainers := \"[]Container{\"\n\tfor _, f := range this.Containers {\n\t\trepeatedStringForContainers += strings.Replace(strings.Replace(f.String(), \"Container\", \"Container\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForContainers += \"}\"\n\trepeatedStringForImagePullSecrets := \"[]LocalObjectReference{\"\n\tfor _, f := range this.ImagePullSecrets {\n\t\trepeatedStringForImagePullSecrets += strings.Replace(strings.Replace(f.String(), \"LocalObjectReference\", \"LocalObjectReference\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForImagePullSecrets += \"}\"\n\trepeatedStringForInitContainers := \"[]Container{\"\n\tfor _, f := range this.InitContainers {\n\t\trepeatedStringForInitContainers += strings.Replace(strings.Replace(f.String(), \"Container\", \"Container\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForInitContainers += \"}\"\n\trepeatedStringForTolerations := \"[]Toleration{\"\n\tfor _, f := range this.Tolerations {\n\t\trepeatedStringForTolerations += strings.Replace(strings.Replace(f.String(), \"Toleration\", \"Toleration\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForTolerations += \"}\"\n\trepeatedStringForHostAliases := \"[]HostAlias{\"\n\tfor _, f := range this.HostAliases {\n\t\trepeatedStringForHostAliases += strings.Replace(strings.Replace(f.String(), \"HostAlias\", \"HostAlias\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForHostAliases += \"}\"\n\trepeatedStringForReadinessGates := \"[]PodReadinessGate{\"\n\tfor _, f := range this.ReadinessGates {\n\t\trepeatedStringForReadinessGates += strings.Replace(strings.Replace(f.String(), \"PodReadinessGate\", \"PodReadinessGate\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForReadinessGates += \"}\"\n\trepeatedStringForTopologySpreadConstraints := \"[]TopologySpreadConstraint{\"\n\tfor _, f := range this.TopologySpreadConstraints {\n\t\trepeatedStringForTopologySpreadConstraints += strings.Replace(strings.Replace(f.String(), \"TopologySpreadConstraint\", \"TopologySpreadConstraint\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForTopologySpreadConstraints += \"}\"\n\trepeatedStringForEphemeralContainers := \"[]EphemeralContainer{\"\n\tfor _, f := range this.EphemeralContainers {\n\t\trepeatedStringForEphemeralContainers += strings.Replace(strings.Replace(f.String(), \"EphemeralContainer\", \"EphemeralContainer\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForEphemeralContainers += \"}\"\n\trepeatedStringForSchedulingGates := \"[]PodSchedulingGate{\"\n\tfor _, f := range this.SchedulingGates {\n\t\trepeatedStringForSchedulingGates += strings.Replace(strings.Replace(f.String(), \"PodSchedulingGate\", \"PodSchedulingGate\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForSchedulingGates += \"}\"\n\trepeatedStringForResourceClaims := \"[]PodResourceClaim{\"\n\tfor _, f := range this.ResourceClaims {\n\t\trepeatedStringForResourceClaims += strings.Replace(strings.Replace(f.String(), \"PodResourceClaim\", \"PodResourceClaim\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForResourceClaims += \"}\"\n\tkeysForNodeSelector := make([]string, 0, len(this.NodeSelector))\n\tfor k := range this.NodeSelector {\n\t\tkeysForNodeSelector = append(keysForNodeSelector, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForNodeSelector)\n\tmapStringForNodeSelector := \"map[string]string{\"\n\tfor _, k := range keysForNodeSelector {\n\t\tmapStringForNodeSelector += fmt.Sprintf(\"%v: %v,\", k, this.NodeSelector[k])\n\t}\n\tmapStringForNodeSelector += \"}\"\n\tkeysForOverhead := make([]string, 0, len(this.Overhead))\n\tfor k := range this.Overhead {\n\t\tkeysForOverhead = append(keysForOverhead, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForOverhead)\n\tmapStringForOverhead := \"ResourceList{\"\n\tfor _, k := range keysForOverhead {\n\t\tmapStringForOverhead += fmt.Sprintf(\"%v: %v,\", k, this.Overhead[ResourceName(k)])\n\t}\n\tmapStringForOverhead += \"}\"\n\ts := strings.Join([]string{`&PodSpec{`,\n\t\t`Volumes:` + repeatedStringForVolumes + `,`,\n\t\t`Containers:` + repeatedStringForContainers + `,`,\n\t\t`RestartPolicy:` + fmt.Sprintf(\"%v\", this.RestartPolicy) + `,`,\n\t\t`TerminationGracePeriodSeconds:` + valueToStringGenerated(this.TerminationGracePeriodSeconds) + `,`,\n\t\t`ActiveDeadlineSeconds:` + valueToStringGenerated(this.ActiveDeadlineSeconds) + `,`,\n\t\t`DNSPolicy:` + fmt.Sprintf(\"%v\", this.DNSPolicy) + `,`,\n\t\t`NodeSelector:` + mapStringForNodeSelector + `,`,\n\t\t`ServiceAccountName:` + fmt.Sprintf(\"%v\", this.ServiceAccountName) + `,`,\n\t\t`DeprecatedServiceAccount:` + fmt.Sprintf(\"%v\", this.DeprecatedServiceAccount) + `,`,\n\t\t`NodeName:` + fmt.Sprintf(\"%v\", this.NodeName) + `,`,\n\t\t`HostNetwork:` + fmt.Sprintf(\"%v\", this.HostNetwork) + `,`,\n\t\t`HostPID:` + fmt.Sprintf(\"%v\", this.HostPID) + `,`,\n\t\t`HostIPC:` + fmt.Sprintf(\"%v\", this.HostIPC) + `,`,\n\t\t`SecurityContext:` + strings.Replace(this.SecurityContext.String(), \"PodSecurityContext\", \"PodSecurityContext\", 1) + `,`,\n\t\t`ImagePullSecrets:` + repeatedStringForImagePullSecrets + `,`,\n\t\t`Hostname:` + fmt.Sprintf(\"%v\", this.Hostname) + `,`,\n\t\t`Subdomain:` + fmt.Sprintf(\"%v\", this.Subdomain) + `,`,\n\t\t`Affinity:` + strings.Replace(this.Affinity.String(), \"Affinity\", \"Affinity\", 1) + `,`,\n\t\t`SchedulerName:` + fmt.Sprintf(\"%v\", this.SchedulerName) + `,`,\n\t\t`InitContainers:` + repeatedStringForInitContainers + `,`,\n\t\t`AutomountServiceAccountToken:` + valueToStringGenerated(this.AutomountServiceAccountToken) + `,`,\n\t\t`Tolerations:` + repeatedStringForTolerations + `,`,\n\t\t`HostAliases:` + repeatedStringForHostAliases + `,`,\n\t\t`PriorityClassName:` + fmt.Sprintf(\"%v\", this.PriorityClassName) + `,`,\n\t\t`Priority:` + valueToStringGenerated(this.Priority) + `,`,\n\t\t`DNSConfig:` + strings.Replace(this.DNSConfig.String(), \"PodDNSConfig\", \"PodDNSConfig\", 1) + `,`,\n\t\t`ShareProcessNamespace:` + valueToStringGenerated(this.ShareProcessNamespace) + `,`,\n\t\t`ReadinessGates:` + repeatedStringForReadinessGates + `,`,\n\t\t`RuntimeClassName:` + valueToStringGenerated(this.RuntimeClassName) + `,`,\n\t\t`EnableServiceLinks:` + valueToStringGenerated(this.EnableServiceLinks) + `,`,\n\t\t`PreemptionPolicy:` + valueToStringGenerated(this.PreemptionPolicy) + `,`,\n\t\t`Overhead:` + mapStringForOverhead + `,`,\n\t\t`TopologySpreadConstraints:` + repeatedStringForTopologySpreadConstraints + `,`,\n\t\t`EphemeralContainers:` + repeatedStringForEphemeralContainers + `,`,\n\t\t`SetHostnameAsFQDN:` + valueToStringGenerated(this.SetHostnameAsFQDN) + `,`,\n\t\t`OS:` + strings.Replace(this.OS.String(), \"PodOS\", \"PodOS\", 1) + `,`,\n\t\t`HostUsers:` + valueToStringGenerated(this.HostUsers) + `,`,\n\t\t`SchedulingGates:` + repeatedStringForSchedulingGates + `,`,\n\t\t`ResourceClaims:` + repeatedStringForResourceClaims + `,`,\n\t\t`Resources:` + strings.Replace(this.Resources.String(), \"ResourceRequirements\", \"ResourceRequirements\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]PodCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"PodCondition\", \"PodCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\trepeatedStringForContainerStatuses := \"[]ContainerStatus{\"\n\tfor _, f := range this.ContainerStatuses {\n\t\trepeatedStringForContainerStatuses += strings.Replace(strings.Replace(f.String(), \"ContainerStatus\", \"ContainerStatus\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForContainerStatuses += \"}\"\n\trepeatedStringForInitContainerStatuses := \"[]ContainerStatus{\"\n\tfor _, f := range this.InitContainerStatuses {\n\t\trepeatedStringForInitContainerStatuses += strings.Replace(strings.Replace(f.String(), \"ContainerStatus\", \"ContainerStatus\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForInitContainerStatuses += \"}\"\n\trepeatedStringForPodIPs := \"[]PodIP{\"\n\tfor _, f := range this.PodIPs {\n\t\trepeatedStringForPodIPs += strings.Replace(strings.Replace(f.String(), \"PodIP\", \"PodIP\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPodIPs += \"}\"\n\trepeatedStringForEphemeralContainerStatuses := \"[]ContainerStatus{\"\n\tfor _, f := range this.EphemeralContainerStatuses {\n\t\trepeatedStringForEphemeralContainerStatuses += strings.Replace(strings.Replace(f.String(), \"ContainerStatus\", \"ContainerStatus\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForEphemeralContainerStatuses += \"}\"\n\trepeatedStringForResourceClaimStatuses := \"[]PodResourceClaimStatus{\"\n\tfor _, f := range this.ResourceClaimStatuses {\n\t\trepeatedStringForResourceClaimStatuses += strings.Replace(strings.Replace(f.String(), \"PodResourceClaimStatus\", \"PodResourceClaimStatus\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForResourceClaimStatuses += \"}\"\n\trepeatedStringForHostIPs := \"[]HostIP{\"\n\tfor _, f := range this.HostIPs {\n\t\trepeatedStringForHostIPs += strings.Replace(strings.Replace(f.String(), \"HostIP\", \"HostIP\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForHostIPs += \"}\"\n\ts := strings.Join([]string{`&PodStatus{`,\n\t\t`Phase:` + fmt.Sprintf(\"%v\", this.Phase) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`HostIP:` + fmt.Sprintf(\"%v\", this.HostIP) + `,`,\n\t\t`PodIP:` + fmt.Sprintf(\"%v\", this.PodIP) + `,`,\n\t\t`StartTime:` + strings.Replace(fmt.Sprintf(\"%v\", this.StartTime), \"Time\", \"v1.Time\", 1) + `,`,\n\t\t`ContainerStatuses:` + repeatedStringForContainerStatuses + `,`,\n\t\t`QOSClass:` + fmt.Sprintf(\"%v\", this.QOSClass) + `,`,\n\t\t`InitContainerStatuses:` + repeatedStringForInitContainerStatuses + `,`,\n\t\t`NominatedNodeName:` + fmt.Sprintf(\"%v\", this.NominatedNodeName) + `,`,\n\t\t`PodIPs:` + repeatedStringForPodIPs + `,`,\n\t\t`EphemeralContainerStatuses:` + repeatedStringForEphemeralContainerStatuses + `,`,\n\t\t`Resize:` + fmt.Sprintf(\"%v\", this.Resize) + `,`,\n\t\t`ResourceClaimStatuses:` + repeatedStringForResourceClaimStatuses + `,`,\n\t\t`HostIPs:` + repeatedStringForHostIPs + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodStatusResult) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodStatusResult{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"PodStatus\", \"PodStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodTemplate) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodTemplate{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Template:` + strings.Replace(strings.Replace(this.Template.String(), \"PodTemplateSpec\", \"PodTemplateSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodTemplateList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]PodTemplate{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"PodTemplate\", \"PodTemplate\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&PodTemplateList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodTemplateSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodTemplateSpec{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"PodSpec\", \"PodSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PortStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PortStatus{`,\n\t\t`Port:` + fmt.Sprintf(\"%v\", this.Port) + `,`,\n\t\t`Protocol:` + fmt.Sprintf(\"%v\", this.Protocol) + `,`,\n\t\t`Error:` + valueToStringGenerated(this.Error) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PortworxVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PortworxVolumeSource{`,\n\t\t`VolumeID:` + fmt.Sprintf(\"%v\", this.VolumeID) + `,`,\n\t\t`FSType:` + fmt.Sprintf(\"%v\", this.FSType) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Preconditions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Preconditions{`,\n\t\t`UID:` + valueToStringGenerated(this.UID) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PreferAvoidPodsEntry) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PreferAvoidPodsEntry{`,\n\t\t`PodSignature:` + strings.Replace(strings.Replace(this.PodSignature.String(), \"PodSignature\", \"PodSignature\", 1), `&`, ``, 1) + `,`,\n\t\t`EvictionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.EvictionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PreferredSchedulingTerm) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PreferredSchedulingTerm{`,\n\t\t`Weight:` + fmt.Sprintf(\"%v\", this.Weight) + `,`,\n\t\t`Preference:` + strings.Replace(strings.Replace(this.Preference.String(), \"NodeSelectorTerm\", \"NodeSelectorTerm\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Probe) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Probe{`,\n\t\t`ProbeHandler:` + strings.Replace(strings.Replace(this.ProbeHandler.String(), \"ProbeHandler\", \"ProbeHandler\", 1), `&`, ``, 1) + `,`,\n\t\t`InitialDelaySeconds:` + fmt.Sprintf(\"%v\", this.InitialDelaySeconds) + `,`,\n\t\t`TimeoutSeconds:` + fmt.Sprintf(\"%v\", this.TimeoutSeconds) + `,`,\n\t\t`PeriodSeconds:` + fmt.Sprintf(\"%v\", this.PeriodSeconds) + `,`,\n\t\t`SuccessThreshold:` + fmt.Sprintf(\"%v\", this.SuccessThreshold) + `,`,\n\t\t`FailureThreshold:` + fmt.Sprintf(\"%v\", this.FailureThreshold) + `,`,\n\t\t`TerminationGracePeriodSeconds:` + valueToStringGenerated(this.TerminationGracePeriodSeconds) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ProbeHandler) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ProbeHandler{`,\n\t\t`Exec:` + strings.Replace(this.Exec.String(), \"ExecAction\", \"ExecAction\", 1) + `,`,\n\t\t`HTTPGet:` + strings.Replace(this.HTTPGet.String(), \"HTTPGetAction\", \"HTTPGetAction\", 1) + `,`,\n\t\t`TCPSocket:` + strings.Replace(this.TCPSocket.String(), \"TCPSocketAction\", \"TCPSocketAction\", 1) + `,`,\n\t\t`GRPC:` + strings.Replace(this.GRPC.String(), \"GRPCAction\", \"GRPCAction\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ProjectedVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForSources := \"[]VolumeProjection{\"\n\tfor _, f := range this.Sources {\n\t\trepeatedStringForSources += strings.Replace(strings.Replace(f.String(), \"VolumeProjection\", \"VolumeProjection\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForSources += \"}\"\n\ts := strings.Join([]string{`&ProjectedVolumeSource{`,\n\t\t`Sources:` + repeatedStringForSources + `,`,\n\t\t`DefaultMode:` + valueToStringGenerated(this.DefaultMode) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *QuobyteVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&QuobyteVolumeSource{`,\n\t\t`Registry:` + fmt.Sprintf(\"%v\", this.Registry) + `,`,\n\t\t`Volume:` + fmt.Sprintf(\"%v\", this.Volume) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`User:` + fmt.Sprintf(\"%v\", this.User) + `,`,\n\t\t`Group:` + fmt.Sprintf(\"%v\", this.Group) + `,`,\n\t\t`Tenant:` + fmt.Sprintf(\"%v\", this.Tenant) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RBDPersistentVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RBDPersistentVolumeSource{`,\n\t\t`CephMonitors:` + fmt.Sprintf(\"%v\", this.CephMonitors) + `,`,\n\t\t`RBDImage:` + fmt.Sprintf(\"%v\", this.RBDImage) + `,`,\n\t\t`FSType:` + fmt.Sprintf(\"%v\", this.FSType) + `,`,\n\t\t`RBDPool:` + fmt.Sprintf(\"%v\", this.RBDPool) + `,`,\n\t\t`RadosUser:` + fmt.Sprintf(\"%v\", this.RadosUser) + `,`,\n\t\t`Keyring:` + fmt.Sprintf(\"%v\", this.Keyring) + `,`,\n\t\t`SecretRef:` + strings.Replace(this.SecretRef.String(), \"SecretReference\", \"SecretReference\", 1) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RBDVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RBDVolumeSource{`,\n\t\t`CephMonitors:` + fmt.Sprintf(\"%v\", this.CephMonitors) + `,`,\n\t\t`RBDImage:` + fmt.Sprintf(\"%v\", this.RBDImage) + `,`,\n\t\t`FSType:` + fmt.Sprintf(\"%v\", this.FSType) + `,`,\n\t\t`RBDPool:` + fmt.Sprintf(\"%v\", this.RBDPool) + `,`,\n\t\t`RadosUser:` + fmt.Sprintf(\"%v\", this.RadosUser) + `,`,\n\t\t`Keyring:` + fmt.Sprintf(\"%v\", this.Keyring) + `,`,\n\t\t`SecretRef:` + strings.Replace(this.SecretRef.String(), \"LocalObjectReference\", \"LocalObjectReference\", 1) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RangeAllocation) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RangeAllocation{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Range:` + fmt.Sprintf(\"%v\", this.Range) + `,`,\n\t\t`Data:` + valueToStringGenerated(this.Data) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ReplicationController) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ReplicationController{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ReplicationControllerSpec\", \"ReplicationControllerSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"ReplicationControllerStatus\", \"ReplicationControllerStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ReplicationControllerCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ReplicationControllerCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ReplicationControllerList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ReplicationController{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ReplicationController\", \"ReplicationController\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ReplicationControllerList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ReplicationControllerSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForSelector := make([]string, 0, len(this.Selector))\n\tfor k := range this.Selector {\n\t\tkeysForSelector = append(keysForSelector, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForSelector)\n\tmapStringForSelector := \"map[string]string{\"\n\tfor _, k := range keysForSelector {\n\t\tmapStringForSelector += fmt.Sprintf(\"%v: %v,\", k, this.Selector[k])\n\t}\n\tmapStringForSelector += \"}\"\n\ts := strings.Join([]string{`&ReplicationControllerSpec{`,\n\t\t`Replicas:` + valueToStringGenerated(this.Replicas) + `,`,\n\t\t`Selector:` + mapStringForSelector + `,`,\n\t\t`Template:` + strings.Replace(this.Template.String(), \"PodTemplateSpec\", \"PodTemplateSpec\", 1) + `,`,\n\t\t`MinReadySeconds:` + fmt.Sprintf(\"%v\", this.MinReadySeconds) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ReplicationControllerStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]ReplicationControllerCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"ReplicationControllerCondition\", \"ReplicationControllerCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&ReplicationControllerStatus{`,\n\t\t`Replicas:` + fmt.Sprintf(\"%v\", this.Replicas) + `,`,\n\t\t`FullyLabeledReplicas:` + fmt.Sprintf(\"%v\", this.FullyLabeledReplicas) + `,`,\n\t\t`ObservedGeneration:` + fmt.Sprintf(\"%v\", this.ObservedGeneration) + `,`,\n\t\t`ReadyReplicas:` + fmt.Sprintf(\"%v\", this.ReadyReplicas) + `,`,\n\t\t`AvailableReplicas:` + fmt.Sprintf(\"%v\", this.AvailableReplicas) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceClaim) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceClaim{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Request:` + fmt.Sprintf(\"%v\", this.Request) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceFieldSelector) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceFieldSelector{`,\n\t\t`ContainerName:` + fmt.Sprintf(\"%v\", this.ContainerName) + `,`,\n\t\t`Resource:` + fmt.Sprintf(\"%v\", this.Resource) + `,`,\n\t\t`Divisor:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Divisor), \"Quantity\", \"resource.Quantity\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceHealth) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceHealth{`,\n\t\t`ResourceID:` + fmt.Sprintf(\"%v\", this.ResourceID) + `,`,\n\t\t`Health:` + fmt.Sprintf(\"%v\", this.Health) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceQuota) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceQuota{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ResourceQuotaSpec\", \"ResourceQuotaSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"ResourceQuotaStatus\", \"ResourceQuotaStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceQuotaList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ResourceQuota{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ResourceQuota\", \"ResourceQuota\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ResourceQuotaList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceQuotaSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForHard := make([]string, 0, len(this.Hard))\n\tfor k := range this.Hard {\n\t\tkeysForHard = append(keysForHard, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForHard)\n\tmapStringForHard := \"ResourceList{\"\n\tfor _, k := range keysForHard {\n\t\tmapStringForHard += fmt.Sprintf(\"%v: %v,\", k, this.Hard[ResourceName(k)])\n\t}\n\tmapStringForHard += \"}\"\n\ts := strings.Join([]string{`&ResourceQuotaSpec{`,\n\t\t`Hard:` + mapStringForHard + `,`,\n\t\t`Scopes:` + fmt.Sprintf(\"%v\", this.Scopes) + `,`,\n\t\t`ScopeSelector:` + strings.Replace(this.ScopeSelector.String(), \"ScopeSelector\", \"ScopeSelector\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceQuotaStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForHard := make([]string, 0, len(this.Hard))\n\tfor k := range this.Hard {\n\t\tkeysForHard = append(keysForHard, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForHard)\n\tmapStringForHard := \"ResourceList{\"\n\tfor _, k := range keysForHard {\n\t\tmapStringForHard += fmt.Sprintf(\"%v: %v,\", k, this.Hard[ResourceName(k)])\n\t}\n\tmapStringForHard += \"}\"\n\tkeysForUsed := make([]string, 0, len(this.Used))\n\tfor k := range this.Used {\n\t\tkeysForUsed = append(keysForUsed, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForUsed)\n\tmapStringForUsed := \"ResourceList{\"\n\tfor _, k := range keysForUsed {\n\t\tmapStringForUsed += fmt.Sprintf(\"%v: %v,\", k, this.Used[ResourceName(k)])\n\t}\n\tmapStringForUsed += \"}\"\n\ts := strings.Join([]string{`&ResourceQuotaStatus{`,\n\t\t`Hard:` + mapStringForHard + `,`,\n\t\t`Used:` + mapStringForUsed + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceRequirements) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForClaims := \"[]ResourceClaim{\"\n\tfor _, f := range this.Claims {\n\t\trepeatedStringForClaims += strings.Replace(strings.Replace(f.String(), \"ResourceClaim\", \"ResourceClaim\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForClaims += \"}\"\n\tkeysForLimits := make([]string, 0, len(this.Limits))\n\tfor k := range this.Limits {\n\t\tkeysForLimits = append(keysForLimits, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForLimits)\n\tmapStringForLimits := \"ResourceList{\"\n\tfor _, k := range keysForLimits {\n\t\tmapStringForLimits += fmt.Sprintf(\"%v: %v,\", k, this.Limits[ResourceName(k)])\n\t}\n\tmapStringForLimits += \"}\"\n\tkeysForRequests := make([]string, 0, len(this.Requests))\n\tfor k := range this.Requests {\n\t\tkeysForRequests = append(keysForRequests, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForRequests)\n\tmapStringForRequests := \"ResourceList{\"\n\tfor _, k := range keysForRequests {\n\t\tmapStringForRequests += fmt.Sprintf(\"%v: %v,\", k, this.Requests[ResourceName(k)])\n\t}\n\tmapStringForRequests += \"}\"\n\ts := strings.Join([]string{`&ResourceRequirements{`,\n\t\t`Limits:` + mapStringForLimits + `,`,\n\t\t`Requests:` + mapStringForRequests + `,`,\n\t\t`Claims:` + repeatedStringForClaims + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForResources := \"[]ResourceHealth{\"\n\tfor _, f := range this.Resources {\n\t\trepeatedStringForResources += strings.Replace(strings.Replace(f.String(), \"ResourceHealth\", \"ResourceHealth\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForResources += \"}\"\n\ts := strings.Join([]string{`&ResourceStatus{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Resources:` + repeatedStringForResources + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SELinuxOptions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SELinuxOptions{`,\n\t\t`User:` + fmt.Sprintf(\"%v\", this.User) + `,`,\n\t\t`Role:` + fmt.Sprintf(\"%v\", this.Role) + `,`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Level:` + fmt.Sprintf(\"%v\", this.Level) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ScaleIOPersistentVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ScaleIOPersistentVolumeSource{`,\n\t\t`Gateway:` + fmt.Sprintf(\"%v\", this.Gateway) + `,`,\n\t\t`System:` + fmt.Sprintf(\"%v\", this.System) + `,`,\n\t\t`SecretRef:` + strings.Replace(this.SecretRef.String(), \"SecretReference\", \"SecretReference\", 1) + `,`,\n\t\t`SSLEnabled:` + fmt.Sprintf(\"%v\", this.SSLEnabled) + `,`,\n\t\t`ProtectionDomain:` + fmt.Sprintf(\"%v\", this.ProtectionDomain) + `,`,\n\t\t`StoragePool:` + fmt.Sprintf(\"%v\", this.StoragePool) + `,`,\n\t\t`StorageMode:` + fmt.Sprintf(\"%v\", this.StorageMode) + `,`,\n\t\t`VolumeName:` + fmt.Sprintf(\"%v\", this.VolumeName) + `,`,\n\t\t`FSType:` + fmt.Sprintf(\"%v\", this.FSType) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ScaleIOVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ScaleIOVolumeSource{`,\n\t\t`Gateway:` + fmt.Sprintf(\"%v\", this.Gateway) + `,`,\n\t\t`System:` + fmt.Sprintf(\"%v\", this.System) + `,`,\n\t\t`SecretRef:` + strings.Replace(this.SecretRef.String(), \"LocalObjectReference\", \"LocalObjectReference\", 1) + `,`,\n\t\t`SSLEnabled:` + fmt.Sprintf(\"%v\", this.SSLEnabled) + `,`,\n\t\t`ProtectionDomain:` + fmt.Sprintf(\"%v\", this.ProtectionDomain) + `,`,\n\t\t`StoragePool:` + fmt.Sprintf(\"%v\", this.StoragePool) + `,`,\n\t\t`StorageMode:` + fmt.Sprintf(\"%v\", this.StorageMode) + `,`,\n\t\t`VolumeName:` + fmt.Sprintf(\"%v\", this.VolumeName) + `,`,\n\t\t`FSType:` + fmt.Sprintf(\"%v\", this.FSType) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ScopeSelector) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForMatchExpressions := \"[]ScopedResourceSelectorRequirement{\"\n\tfor _, f := range this.MatchExpressions {\n\t\trepeatedStringForMatchExpressions += strings.Replace(strings.Replace(f.String(), \"ScopedResourceSelectorRequirement\", \"ScopedResourceSelectorRequirement\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForMatchExpressions += \"}\"\n\ts := strings.Join([]string{`&ScopeSelector{`,\n\t\t`MatchExpressions:` + repeatedStringForMatchExpressions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ScopedResourceSelectorRequirement) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ScopedResourceSelectorRequirement{`,\n\t\t`ScopeName:` + fmt.Sprintf(\"%v\", this.ScopeName) + `,`,\n\t\t`Operator:` + fmt.Sprintf(\"%v\", this.Operator) + `,`,\n\t\t`Values:` + fmt.Sprintf(\"%v\", this.Values) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SeccompProfile) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SeccompProfile{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`LocalhostProfile:` + valueToStringGenerated(this.LocalhostProfile) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Secret) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForData := make([]string, 0, len(this.Data))\n\tfor k := range this.Data {\n\t\tkeysForData = append(keysForData, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForData)\n\tmapStringForData := \"map[string][]byte{\"\n\tfor _, k := range keysForData {\n\t\tmapStringForData += fmt.Sprintf(\"%v: %v,\", k, this.Data[k])\n\t}\n\tmapStringForData += \"}\"\n\tkeysForStringData := make([]string, 0, len(this.StringData))\n\tfor k := range this.StringData {\n\t\tkeysForStringData = append(keysForStringData, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForStringData)\n\tmapStringForStringData := \"map[string]string{\"\n\tfor _, k := range keysForStringData {\n\t\tmapStringForStringData += fmt.Sprintf(\"%v: %v,\", k, this.StringData[k])\n\t}\n\tmapStringForStringData += \"}\"\n\ts := strings.Join([]string{`&Secret{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Data:` + mapStringForData + `,`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`StringData:` + mapStringForStringData + `,`,\n\t\t`Immutable:` + valueToStringGenerated(this.Immutable) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SecretEnvSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SecretEnvSource{`,\n\t\t`LocalObjectReference:` + strings.Replace(strings.Replace(this.LocalObjectReference.String(), \"LocalObjectReference\", \"LocalObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`Optional:` + valueToStringGenerated(this.Optional) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SecretKeySelector) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SecretKeySelector{`,\n\t\t`LocalObjectReference:` + strings.Replace(strings.Replace(this.LocalObjectReference.String(), \"LocalObjectReference\", \"LocalObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`Key:` + fmt.Sprintf(\"%v\", this.Key) + `,`,\n\t\t`Optional:` + valueToStringGenerated(this.Optional) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SecretList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Secret{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Secret\", \"Secret\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&SecretList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SecretProjection) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]KeyToPath{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"KeyToPath\", \"KeyToPath\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&SecretProjection{`,\n\t\t`LocalObjectReference:` + strings.Replace(strings.Replace(this.LocalObjectReference.String(), \"LocalObjectReference\", \"LocalObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`Optional:` + valueToStringGenerated(this.Optional) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SecretReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SecretReference{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SecretVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]KeyToPath{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"KeyToPath\", \"KeyToPath\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&SecretVolumeSource{`,\n\t\t`SecretName:` + fmt.Sprintf(\"%v\", this.SecretName) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`DefaultMode:` + valueToStringGenerated(this.DefaultMode) + `,`,\n\t\t`Optional:` + valueToStringGenerated(this.Optional) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SecurityContext) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SecurityContext{`,\n\t\t`Capabilities:` + strings.Replace(this.Capabilities.String(), \"Capabilities\", \"Capabilities\", 1) + `,`,\n\t\t`Privileged:` + valueToStringGenerated(this.Privileged) + `,`,\n\t\t`SELinuxOptions:` + strings.Replace(this.SELinuxOptions.String(), \"SELinuxOptions\", \"SELinuxOptions\", 1) + `,`,\n\t\t`RunAsUser:` + valueToStringGenerated(this.RunAsUser) + `,`,\n\t\t`RunAsNonRoot:` + valueToStringGenerated(this.RunAsNonRoot) + `,`,\n\t\t`ReadOnlyRootFilesystem:` + valueToStringGenerated(this.ReadOnlyRootFilesystem) + `,`,\n\t\t`AllowPrivilegeEscalation:` + valueToStringGenerated(this.AllowPrivilegeEscalation) + `,`,\n\t\t`RunAsGroup:` + valueToStringGenerated(this.RunAsGroup) + `,`,\n\t\t`ProcMount:` + valueToStringGenerated(this.ProcMount) + `,`,\n\t\t`WindowsOptions:` + strings.Replace(this.WindowsOptions.String(), \"WindowsSecurityContextOptions\", \"WindowsSecurityContextOptions\", 1) + `,`,\n\t\t`SeccompProfile:` + strings.Replace(this.SeccompProfile.String(), \"SeccompProfile\", \"SeccompProfile\", 1) + `,`,\n\t\t`AppArmorProfile:` + strings.Replace(this.AppArmorProfile.String(), \"AppArmorProfile\", \"AppArmorProfile\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SerializedReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SerializedReference{`,\n\t\t`Reference:` + strings.Replace(strings.Replace(this.Reference.String(), \"ObjectReference\", \"ObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Service) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Service{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ServiceSpec\", \"ServiceSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"ServiceStatus\", \"ServiceStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ServiceAccount) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForSecrets := \"[]ObjectReference{\"\n\tfor _, f := range this.Secrets {\n\t\trepeatedStringForSecrets += strings.Replace(strings.Replace(f.String(), \"ObjectReference\", \"ObjectReference\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForSecrets += \"}\"\n\trepeatedStringForImagePullSecrets := \"[]LocalObjectReference{\"\n\tfor _, f := range this.ImagePullSecrets {\n\t\trepeatedStringForImagePullSecrets += strings.Replace(strings.Replace(f.String(), \"LocalObjectReference\", \"LocalObjectReference\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForImagePullSecrets += \"}\"\n\ts := strings.Join([]string{`&ServiceAccount{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Secrets:` + repeatedStringForSecrets + `,`,\n\t\t`ImagePullSecrets:` + repeatedStringForImagePullSecrets + `,`,\n\t\t`AutomountServiceAccountToken:` + valueToStringGenerated(this.AutomountServiceAccountToken) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ServiceAccountList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ServiceAccount{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ServiceAccount\", \"ServiceAccount\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ServiceAccountList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ServiceAccountTokenProjection) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ServiceAccountTokenProjection{`,\n\t\t`Audience:` + fmt.Sprintf(\"%v\", this.Audience) + `,`,\n\t\t`ExpirationSeconds:` + valueToStringGenerated(this.ExpirationSeconds) + `,`,\n\t\t`Path:` + fmt.Sprintf(\"%v\", this.Path) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ServiceList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Service{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Service\", \"Service\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ServiceList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ServicePort) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ServicePort{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Protocol:` + fmt.Sprintf(\"%v\", this.Protocol) + `,`,\n\t\t`Port:` + fmt.Sprintf(\"%v\", this.Port) + `,`,\n\t\t`TargetPort:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.TargetPort), \"IntOrString\", \"intstr.IntOrString\", 1), `&`, ``, 1) + `,`,\n\t\t`NodePort:` + fmt.Sprintf(\"%v\", this.NodePort) + `,`,\n\t\t`AppProtocol:` + valueToStringGenerated(this.AppProtocol) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ServiceProxyOptions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ServiceProxyOptions{`,\n\t\t`Path:` + fmt.Sprintf(\"%v\", this.Path) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ServiceSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForPorts := \"[]ServicePort{\"\n\tfor _, f := range this.Ports {\n\t\trepeatedStringForPorts += strings.Replace(strings.Replace(f.String(), \"ServicePort\", \"ServicePort\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPorts += \"}\"\n\tkeysForSelector := make([]string, 0, len(this.Selector))\n\tfor k := range this.Selector {\n\t\tkeysForSelector = append(keysForSelector, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForSelector)\n\tmapStringForSelector := \"map[string]string{\"\n\tfor _, k := range keysForSelector {\n\t\tmapStringForSelector += fmt.Sprintf(\"%v: %v,\", k, this.Selector[k])\n\t}\n\tmapStringForSelector += \"}\"\n\ts := strings.Join([]string{`&ServiceSpec{`,\n\t\t`Ports:` + repeatedStringForPorts + `,`,\n\t\t`Selector:` + mapStringForSelector + `,`,\n\t\t`ClusterIP:` + fmt.Sprintf(\"%v\", this.ClusterIP) + `,`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`ExternalIPs:` + fmt.Sprintf(\"%v\", this.ExternalIPs) + `,`,\n\t\t`SessionAffinity:` + fmt.Sprintf(\"%v\", this.SessionAffinity) + `,`,\n\t\t`LoadBalancerIP:` + fmt.Sprintf(\"%v\", this.LoadBalancerIP) + `,`,\n\t\t`LoadBalancerSourceRanges:` + fmt.Sprintf(\"%v\", this.LoadBalancerSourceRanges) + `,`,\n\t\t`ExternalName:` + fmt.Sprintf(\"%v\", this.ExternalName) + `,`,\n\t\t`ExternalTrafficPolicy:` + fmt.Sprintf(\"%v\", this.ExternalTrafficPolicy) + `,`,\n\t\t`HealthCheckNodePort:` + fmt.Sprintf(\"%v\", this.HealthCheckNodePort) + `,`,\n\t\t`PublishNotReadyAddresses:` + fmt.Sprintf(\"%v\", this.PublishNotReadyAddresses) + `,`,\n\t\t`SessionAffinityConfig:` + strings.Replace(this.SessionAffinityConfig.String(), \"SessionAffinityConfig\", \"SessionAffinityConfig\", 1) + `,`,\n\t\t`IPFamilyPolicy:` + valueToStringGenerated(this.IPFamilyPolicy) + `,`,\n\t\t`ClusterIPs:` + fmt.Sprintf(\"%v\", this.ClusterIPs) + `,`,\n\t\t`IPFamilies:` + fmt.Sprintf(\"%v\", this.IPFamilies) + `,`,\n\t\t`AllocateLoadBalancerNodePorts:` + valueToStringGenerated(this.AllocateLoadBalancerNodePorts) + `,`,\n\t\t`LoadBalancerClass:` + valueToStringGenerated(this.LoadBalancerClass) + `,`,\n\t\t`InternalTrafficPolicy:` + valueToStringGenerated(this.InternalTrafficPolicy) + `,`,\n\t\t`TrafficDistribution:` + valueToStringGenerated(this.TrafficDistribution) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ServiceStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]Condition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&ServiceStatus{`,\n\t\t`LoadBalancer:` + strings.Replace(strings.Replace(this.LoadBalancer.String(), \"LoadBalancerStatus\", \"LoadBalancerStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SessionAffinityConfig) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SessionAffinityConfig{`,\n\t\t`ClientIP:` + strings.Replace(this.ClientIP.String(), \"ClientIPConfig\", \"ClientIPConfig\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *SleepAction) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&SleepAction{`,\n\t\t`Seconds:` + fmt.Sprintf(\"%v\", this.Seconds) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StorageOSPersistentVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StorageOSPersistentVolumeSource{`,\n\t\t`VolumeName:` + fmt.Sprintf(\"%v\", this.VolumeName) + `,`,\n\t\t`VolumeNamespace:` + fmt.Sprintf(\"%v\", this.VolumeNamespace) + `,`,\n\t\t`FSType:` + fmt.Sprintf(\"%v\", this.FSType) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`SecretRef:` + strings.Replace(this.SecretRef.String(), \"ObjectReference\", \"ObjectReference\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StorageOSVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StorageOSVolumeSource{`,\n\t\t`VolumeName:` + fmt.Sprintf(\"%v\", this.VolumeName) + `,`,\n\t\t`VolumeNamespace:` + fmt.Sprintf(\"%v\", this.VolumeNamespace) + `,`,\n\t\t`FSType:` + fmt.Sprintf(\"%v\", this.FSType) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`SecretRef:` + strings.Replace(this.SecretRef.String(), \"LocalObjectReference\", \"LocalObjectReference\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Sysctl) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Sysctl{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Value:` + fmt.Sprintf(\"%v\", this.Value) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TCPSocketAction) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&TCPSocketAction{`,\n\t\t`Port:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Port), \"IntOrString\", \"intstr.IntOrString\", 1), `&`, ``, 1) + `,`,\n\t\t`Host:` + fmt.Sprintf(\"%v\", this.Host) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Taint) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Taint{`,\n\t\t`Key:` + fmt.Sprintf(\"%v\", this.Key) + `,`,\n\t\t`Value:` + fmt.Sprintf(\"%v\", this.Value) + `,`,\n\t\t`Effect:` + fmt.Sprintf(\"%v\", this.Effect) + `,`,\n\t\t`TimeAdded:` + strings.Replace(fmt.Sprintf(\"%v\", this.TimeAdded), \"Time\", \"v1.Time\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Toleration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Toleration{`,\n\t\t`Key:` + fmt.Sprintf(\"%v\", this.Key) + `,`,\n\t\t`Operator:` + fmt.Sprintf(\"%v\", this.Operator) + `,`,\n\t\t`Value:` + fmt.Sprintf(\"%v\", this.Value) + `,`,\n\t\t`Effect:` + fmt.Sprintf(\"%v\", this.Effect) + `,`,\n\t\t`TolerationSeconds:` + valueToStringGenerated(this.TolerationSeconds) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TopologySelectorLabelRequirement) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&TopologySelectorLabelRequirement{`,\n\t\t`Key:` + fmt.Sprintf(\"%v\", this.Key) + `,`,\n\t\t`Values:` + fmt.Sprintf(\"%v\", this.Values) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TopologySelectorTerm) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForMatchLabelExpressions := \"[]TopologySelectorLabelRequirement{\"\n\tfor _, f := range this.MatchLabelExpressions {\n\t\trepeatedStringForMatchLabelExpressions += strings.Replace(strings.Replace(f.String(), \"TopologySelectorLabelRequirement\", \"TopologySelectorLabelRequirement\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForMatchLabelExpressions += \"}\"\n\ts := strings.Join([]string{`&TopologySelectorTerm{`,\n\t\t`MatchLabelExpressions:` + repeatedStringForMatchLabelExpressions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TopologySpreadConstraint) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&TopologySpreadConstraint{`,\n\t\t`MaxSkew:` + fmt.Sprintf(\"%v\", this.MaxSkew) + `,`,\n\t\t`TopologyKey:` + fmt.Sprintf(\"%v\", this.TopologyKey) + `,`,\n\t\t`WhenUnsatisfiable:` + fmt.Sprintf(\"%v\", this.WhenUnsatisfiable) + `,`,\n\t\t`LabelSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.LabelSelector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`MinDomains:` + valueToStringGenerated(this.MinDomains) + `,`,\n\t\t`NodeAffinityPolicy:` + valueToStringGenerated(this.NodeAffinityPolicy) + `,`,\n\t\t`NodeTaintsPolicy:` + valueToStringGenerated(this.NodeTaintsPolicy) + `,`,\n\t\t`MatchLabelKeys:` + fmt.Sprintf(\"%v\", this.MatchLabelKeys) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TypedLocalObjectReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&TypedLocalObjectReference{`,\n\t\t`APIGroup:` + valueToStringGenerated(this.APIGroup) + `,`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TypedObjectReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&TypedObjectReference{`,\n\t\t`APIGroup:` + valueToStringGenerated(this.APIGroup) + `,`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Namespace:` + valueToStringGenerated(this.Namespace) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Volume) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Volume{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`VolumeSource:` + strings.Replace(strings.Replace(this.VolumeSource.String(), \"VolumeSource\", \"VolumeSource\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeDevice) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&VolumeDevice{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`DevicePath:` + fmt.Sprintf(\"%v\", this.DevicePath) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeMount) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&VolumeMount{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`MountPath:` + fmt.Sprintf(\"%v\", this.MountPath) + `,`,\n\t\t`SubPath:` + fmt.Sprintf(\"%v\", this.SubPath) + `,`,\n\t\t`MountPropagation:` + valueToStringGenerated(this.MountPropagation) + `,`,\n\t\t`SubPathExpr:` + fmt.Sprintf(\"%v\", this.SubPathExpr) + `,`,\n\t\t`RecursiveReadOnly:` + valueToStringGenerated(this.RecursiveReadOnly) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeMountStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&VolumeMountStatus{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`MountPath:` + fmt.Sprintf(\"%v\", this.MountPath) + `,`,\n\t\t`ReadOnly:` + fmt.Sprintf(\"%v\", this.ReadOnly) + `,`,\n\t\t`RecursiveReadOnly:` + valueToStringGenerated(this.RecursiveReadOnly) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeNodeAffinity) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&VolumeNodeAffinity{`,\n\t\t`Required:` + strings.Replace(this.Required.String(), \"NodeSelector\", \"NodeSelector\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeProjection) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&VolumeProjection{`,\n\t\t`Secret:` + strings.Replace(this.Secret.String(), \"SecretProjection\", \"SecretProjection\", 1) + `,`,\n\t\t`DownwardAPI:` + strings.Replace(this.DownwardAPI.String(), \"DownwardAPIProjection\", \"DownwardAPIProjection\", 1) + `,`,\n\t\t`ConfigMap:` + strings.Replace(this.ConfigMap.String(), \"ConfigMapProjection\", \"ConfigMapProjection\", 1) + `,`,\n\t\t`ServiceAccountToken:` + strings.Replace(this.ServiceAccountToken.String(), \"ServiceAccountTokenProjection\", \"ServiceAccountTokenProjection\", 1) + `,`,\n\t\t`ClusterTrustBundle:` + strings.Replace(this.ClusterTrustBundle.String(), \"ClusterTrustBundleProjection\", \"ClusterTrustBundleProjection\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeResourceRequirements) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForLimits := make([]string, 0, len(this.Limits))\n\tfor k := range this.Limits {\n\t\tkeysForLimits = append(keysForLimits, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForLimits)\n\tmapStringForLimits := \"ResourceList{\"\n\tfor _, k := range keysForLimits {\n\t\tmapStringForLimits += fmt.Sprintf(\"%v: %v,\", k, this.Limits[ResourceName(k)])\n\t}\n\tmapStringForLimits += \"}\"\n\tkeysForRequests := make([]string, 0, len(this.Requests))\n\tfor k := range this.Requests {\n\t\tkeysForRequests = append(keysForRequests, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForRequests)\n\tmapStringForRequests := \"ResourceList{\"\n\tfor _, k := range keysForRequests {\n\t\tmapStringForRequests += fmt.Sprintf(\"%v: %v,\", k, this.Requests[ResourceName(k)])\n\t}\n\tmapStringForRequests += \"}\"\n\ts := strings.Join([]string{`&VolumeResourceRequirements{`,\n\t\t`Limits:` + mapStringForLimits + `,`,\n\t\t`Requests:` + mapStringForRequests + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&VolumeSource{`,\n\t\t`HostPath:` + strings.Replace(this.HostPath.String(), \"HostPathVolumeSource\", \"HostPathVolumeSource\", 1) + `,`,\n\t\t`EmptyDir:` + strings.Replace(this.EmptyDir.String(), \"EmptyDirVolumeSource\", \"EmptyDirVolumeSource\", 1) + `,`,\n\t\t`GCEPersistentDisk:` + strings.Replace(this.GCEPersistentDisk.String(), \"GCEPersistentDiskVolumeSource\", \"GCEPersistentDiskVolumeSource\", 1) + `,`,\n\t\t`AWSElasticBlockStore:` + strings.Replace(this.AWSElasticBlockStore.String(), \"AWSElasticBlockStoreVolumeSource\", \"AWSElasticBlockStoreVolumeSource\", 1) + `,`,\n\t\t`GitRepo:` + strings.Replace(this.GitRepo.String(), \"GitRepoVolumeSource\", \"GitRepoVolumeSource\", 1) + `,`,\n\t\t`Secret:` + strings.Replace(this.Secret.String(), \"SecretVolumeSource\", \"SecretVolumeSource\", 1) + `,`,\n\t\t`NFS:` + strings.Replace(this.NFS.String(), \"NFSVolumeSource\", \"NFSVolumeSource\", 1) + `,`,\n\t\t`ISCSI:` + strings.Replace(this.ISCSI.String(), \"ISCSIVolumeSource\", \"ISCSIVolumeSource\", 1) + `,`,\n\t\t`Glusterfs:` + strings.Replace(this.Glusterfs.String(), \"GlusterfsVolumeSource\", \"GlusterfsVolumeSource\", 1) + `,`,\n\t\t`PersistentVolumeClaim:` + strings.Replace(this.PersistentVolumeClaim.String(), \"PersistentVolumeClaimVolumeSource\", \"PersistentVolumeClaimVolumeSource\", 1) + `,`,\n\t\t`RBD:` + strings.Replace(this.RBD.String(), \"RBDVolumeSource\", \"RBDVolumeSource\", 1) + `,`,\n\t\t`FlexVolume:` + strings.Replace(this.FlexVolume.String(), \"FlexVolumeSource\", \"FlexVolumeSource\", 1) + `,`,\n\t\t`Cinder:` + strings.Replace(this.Cinder.String(), \"CinderVolumeSource\", \"CinderVolumeSource\", 1) + `,`,\n\t\t`CephFS:` + strings.Replace(this.CephFS.String(), \"CephFSVolumeSource\", \"CephFSVolumeSource\", 1) + `,`,\n\t\t`Flocker:` + strings.Replace(this.Flocker.String(), \"FlockerVolumeSource\", \"FlockerVolumeSource\", 1) + `,`,\n\t\t`DownwardAPI:` + strings.Replace(this.DownwardAPI.String(), \"DownwardAPIVolumeSource\", \"DownwardAPIVolumeSource\", 1) + `,`,\n\t\t`FC:` + strings.Replace(this.FC.String(), \"FCVolumeSource\", \"FCVolumeSource\", 1) + `,`,\n\t\t`AzureFile:` + strings.Replace(this.AzureFile.String(), \"AzureFileVolumeSource\", \"AzureFileVolumeSource\", 1) + `,`,\n\t\t`ConfigMap:` + strings.Replace(this.ConfigMap.String(), \"ConfigMapVolumeSource\", \"ConfigMapVolumeSource\", 1) + `,`,\n\t\t`VsphereVolume:` + strings.Replace(this.VsphereVolume.String(), \"VsphereVirtualDiskVolumeSource\", \"VsphereVirtualDiskVolumeSource\", 1) + `,`,\n\t\t`Quobyte:` + strings.Replace(this.Quobyte.String(), \"QuobyteVolumeSource\", \"QuobyteVolumeSource\", 1) + `,`,\n\t\t`AzureDisk:` + strings.Replace(this.AzureDisk.String(), \"AzureDiskVolumeSource\", \"AzureDiskVolumeSource\", 1) + `,`,\n\t\t`PhotonPersistentDisk:` + strings.Replace(this.PhotonPersistentDisk.String(), \"PhotonPersistentDiskVolumeSource\", \"PhotonPersistentDiskVolumeSource\", 1) + `,`,\n\t\t`PortworxVolume:` + strings.Replace(this.PortworxVolume.String(), \"PortworxVolumeSource\", \"PortworxVolumeSource\", 1) + `,`,\n\t\t`ScaleIO:` + strings.Replace(this.ScaleIO.String(), \"ScaleIOVolumeSource\", \"ScaleIOVolumeSource\", 1) + `,`,\n\t\t`Projected:` + strings.Replace(this.Projected.String(), \"ProjectedVolumeSource\", \"ProjectedVolumeSource\", 1) + `,`,\n\t\t`StorageOS:` + strings.Replace(this.StorageOS.String(), \"StorageOSVolumeSource\", \"StorageOSVolumeSource\", 1) + `,`,\n\t\t`CSI:` + strings.Replace(this.CSI.String(), \"CSIVolumeSource\", \"CSIVolumeSource\", 1) + `,`,\n\t\t`Ephemeral:` + strings.Replace(this.Ephemeral.String(), \"EphemeralVolumeSource\", \"EphemeralVolumeSource\", 1) + `,`,\n\t\t`Image:` + strings.Replace(this.Image.String(), \"ImageVolumeSource\", \"ImageVolumeSource\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VsphereVirtualDiskVolumeSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&VsphereVirtualDiskVolumeSource{`,\n\t\t`VolumePath:` + fmt.Sprintf(\"%v\", this.VolumePath) + `,`,\n\t\t`FSType:` + fmt.Sprintf(\"%v\", this.FSType) + `,`,\n\t\t`StoragePolicyName:` + fmt.Sprintf(\"%v\", this.StoragePolicyName) + `,`,\n\t\t`StoragePolicyID:` + fmt.Sprintf(\"%v\", this.StoragePolicyID) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *WeightedPodAffinityTerm) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&WeightedPodAffinityTerm{`,\n\t\t`Weight:` + fmt.Sprintf(\"%v\", this.Weight) + `,`,\n\t\t`PodAffinityTerm:` + strings.Replace(strings.Replace(this.PodAffinityTerm.String(), \"PodAffinityTerm\", \"PodAffinityTerm\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *WindowsSecurityContextOptions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&WindowsSecurityContextOptions{`,\n\t\t`GMSACredentialSpecName:` + valueToStringGenerated(this.GMSACredentialSpecName) + `,`,\n\t\t`GMSACredentialSpec:` + valueToStringGenerated(this.GMSACredentialSpec) + `,`,\n\t\t`RunAsUserName:` + valueToStringGenerated(this.RunAsUserName) + `,`,\n\t\t`HostProcess:` + valueToStringGenerated(this.HostProcess) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *AWSElasticBlockStoreVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: AWSElasticBlockStoreVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: AWSElasticBlockStoreVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumeID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FSType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Partition\", wireType)\n\t\t\t}\n\t\t\tm.Partition = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Partition |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Affinity) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Affinity: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Affinity: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeAffinity\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NodeAffinity == nil {\n\t\t\t\tm.NodeAffinity = &NodeAffinity{}\n\t\t\t}\n\t\t\tif err := m.NodeAffinity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodAffinity\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.PodAffinity == nil {\n\t\t\t\tm.PodAffinity = &PodAffinity{}\n\t\t\t}\n\t\t\tif err := m.PodAffinity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodAntiAffinity\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.PodAntiAffinity == nil {\n\t\t\t\tm.PodAntiAffinity = &PodAntiAffinity{}\n\t\t\t}\n\t\t\tif err := m.PodAntiAffinity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *AppArmorProfile) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: AppArmorProfile: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: AppArmorProfile: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = AppArmorProfileType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LocalhostProfile\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.LocalhostProfile = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *AttachedVolume) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: AttachedVolume: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: AttachedVolume: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = UniqueVolumeName(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DevicePath\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.DevicePath = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *AvoidPods) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: AvoidPods: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: AvoidPods: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PreferAvoidPods\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PreferAvoidPods = append(m.PreferAvoidPods, PreferAvoidPodsEntry{})\n\t\t\tif err := m.PreferAvoidPods[len(m.PreferAvoidPods)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *AzureDiskVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: AzureDiskVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: AzureDiskVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DiskName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.DiskName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DataDiskURI\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.DataDiskURI = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CachingMode\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := AzureDataDiskCachingMode(dAtA[iNdEx:postIndex])\n\t\t\tm.CachingMode = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.FSType = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.ReadOnly = &b\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := AzureDataDiskKind(dAtA[iNdEx:postIndex])\n\t\t\tm.Kind = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *AzureFilePersistentVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: AzureFilePersistentVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: AzureFilePersistentVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SecretName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ShareName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ShareName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretNamespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.SecretNamespace = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *AzureFileVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: AzureFileVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: AzureFileVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SecretName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ShareName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ShareName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Binding) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Binding: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Binding: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Target\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Target.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CSIPersistentVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSIPersistentVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSIPersistentVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Driver\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Driver = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeHandle\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumeHandle = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FSType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeAttributes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.VolumeAttributes == nil {\n\t\t\t\tm.VolumeAttributes = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.VolumeAttributes[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ControllerPublishSecretRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ControllerPublishSecretRef == nil {\n\t\t\t\tm.ControllerPublishSecretRef = &SecretReference{}\n\t\t\t}\n\t\t\tif err := m.ControllerPublishSecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeStageSecretRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NodeStageSecretRef == nil {\n\t\t\t\tm.NodeStageSecretRef = &SecretReference{}\n\t\t\t}\n\t\t\tif err := m.NodeStageSecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodePublishSecretRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NodePublishSecretRef == nil {\n\t\t\t\tm.NodePublishSecretRef = &SecretReference{}\n\t\t\t}\n\t\t\tif err := m.NodePublishSecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ControllerExpandSecretRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ControllerExpandSecretRef == nil {\n\t\t\t\tm.ControllerExpandSecretRef = &SecretReference{}\n\t\t\t}\n\t\t\tif err := m.ControllerExpandSecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeExpandSecretRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NodeExpandSecretRef == nil {\n\t\t\t\tm.NodeExpandSecretRef = &SecretReference{}\n\t\t\t}\n\t\t\tif err := m.NodeExpandSecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CSIVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSIVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSIVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Driver\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Driver = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.ReadOnly = &b\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.FSType = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeAttributes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.VolumeAttributes == nil {\n\t\t\t\tm.VolumeAttributes = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.VolumeAttributes[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodePublishSecretRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NodePublishSecretRef == nil {\n\t\t\t\tm.NodePublishSecretRef = &LocalObjectReference{}\n\t\t\t}\n\t\t\tif err := m.NodePublishSecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Capabilities) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Capabilities: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Capabilities: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Add\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Add = append(m.Add, Capability(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Drop\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Drop = append(m.Drop, Capability(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CephFSPersistentVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CephFSPersistentVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CephFSPersistentVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Monitors\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Monitors = append(m.Monitors, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Path\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Path = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field User\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.User = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretFile\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SecretFile = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SecretRef == nil {\n\t\t\t\tm.SecretRef = &SecretReference{}\n\t\t\t}\n\t\t\tif err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CephFSVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CephFSVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CephFSVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Monitors\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Monitors = append(m.Monitors, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Path\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Path = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field User\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.User = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretFile\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SecretFile = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SecretRef == nil {\n\t\t\t\tm.SecretRef = &LocalObjectReference{}\n\t\t\t}\n\t\t\tif err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CinderPersistentVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CinderPersistentVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CinderPersistentVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumeID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FSType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SecretRef == nil {\n\t\t\t\tm.SecretRef = &SecretReference{}\n\t\t\t}\n\t\t\tif err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CinderVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CinderVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CinderVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumeID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FSType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SecretRef == nil {\n\t\t\t\tm.SecretRef = &LocalObjectReference{}\n\t\t\t}\n\t\t\tif err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ClientIPConfig) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ClientIPConfig: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ClientIPConfig: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TimeoutSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.TimeoutSeconds = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ClusterTrustBundleProjection) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterTrustBundleProjection: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterTrustBundleProjection: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.Name = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SignerName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.SignerName = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LabelSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.LabelSelector == nil {\n\t\t\t\tm.LabelSelector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.LabelSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Path\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Path = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Optional\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Optional = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ComponentCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ComponentCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ComponentCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = ComponentConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Error\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Error = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ComponentStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ComponentStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ComponentStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, ComponentCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ComponentStatusList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ComponentStatusList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ComponentStatusList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ComponentStatus{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ConfigMap) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ConfigMap: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ConfigMap: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Data\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Data == nil {\n\t\t\t\tm.Data = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Data[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field BinaryData\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.BinaryData == nil {\n\t\t\t\tm.BinaryData = make(map[string][]byte)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tmapvalue := []byte{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapbyteLen uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapbyteLen |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintMapbyteLen := int(mapbyteLen)\n\t\t\t\t\tif intMapbyteLen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostbytesIndex := iNdEx + intMapbyteLen\n\t\t\t\t\tif postbytesIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postbytesIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = make([]byte, mapbyteLen)\n\t\t\t\t\tcopy(mapvalue, dAtA[iNdEx:postbytesIndex])\n\t\t\t\t\tiNdEx = postbytesIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.BinaryData[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Immutable\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Immutable = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ConfigMapEnvSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ConfigMapEnvSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ConfigMapEnvSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LocalObjectReference\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LocalObjectReference.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Optional\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Optional = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ConfigMapKeySelector) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ConfigMapKeySelector: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ConfigMapKeySelector: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LocalObjectReference\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LocalObjectReference.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Key\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Key = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Optional\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Optional = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ConfigMapList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ConfigMapList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ConfigMapList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ConfigMap{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ConfigMapNodeConfigSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ConfigMapNodeConfigSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ConfigMapNodeConfigSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.UID = k8s_io_apimachinery_pkg_types.UID(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field KubeletConfigKey\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.KubeletConfigKey = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ConfigMapProjection) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ConfigMapProjection: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ConfigMapProjection: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LocalObjectReference\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LocalObjectReference.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, KeyToPath{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Optional\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Optional = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ConfigMapVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ConfigMapVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ConfigMapVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LocalObjectReference\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LocalObjectReference.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, KeyToPath{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DefaultMode\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.DefaultMode = &v\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Optional\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Optional = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Container) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Container: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Container: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Image\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Image = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Command\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Command = append(m.Command, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Args\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Args = append(m.Args, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field WorkingDir\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.WorkingDir = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ports\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ports = append(m.Ports, ContainerPort{})\n\t\t\tif err := m.Ports[len(m.Ports)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Env\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Env = append(m.Env, EnvVar{})\n\t\t\tif err := m.Env[len(m.Env)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resources\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Resources.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeMounts\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumeMounts = append(m.VolumeMounts, VolumeMount{})\n\t\t\tif err := m.VolumeMounts[len(m.VolumeMounts)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LivenessProbe\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.LivenessProbe == nil {\n\t\t\t\tm.LivenessProbe = &Probe{}\n\t\t\t}\n\t\t\tif err := m.LivenessProbe.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadinessProbe\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ReadinessProbe == nil {\n\t\t\t\tm.ReadinessProbe = &Probe{}\n\t\t\t}\n\t\t\tif err := m.ReadinessProbe.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 12:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Lifecycle\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Lifecycle == nil {\n\t\t\t\tm.Lifecycle = &Lifecycle{}\n\t\t\t}\n\t\t\tif err := m.Lifecycle.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 13:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TerminationMessagePath\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TerminationMessagePath = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 14:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ImagePullPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ImagePullPolicy = PullPolicy(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 15:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecurityContext\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SecurityContext == nil {\n\t\t\t\tm.SecurityContext = &SecurityContext{}\n\t\t\t}\n\t\t\tif err := m.SecurityContext.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 16:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Stdin\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Stdin = bool(v != 0)\n\t\tcase 17:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StdinOnce\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.StdinOnce = bool(v != 0)\n\t\tcase 18:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TTY\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.TTY = bool(v != 0)\n\t\tcase 19:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EnvFrom\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.EnvFrom = append(m.EnvFrom, EnvFromSource{})\n\t\t\tif err := m.EnvFrom[len(m.EnvFrom)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 20:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TerminationMessagePolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TerminationMessagePolicy = TerminationMessagePolicy(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 21:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeDevices\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumeDevices = append(m.VolumeDevices, VolumeDevice{})\n\t\t\tif err := m.VolumeDevices[len(m.VolumeDevices)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 22:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StartupProbe\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.StartupProbe == nil {\n\t\t\t\tm.StartupProbe = &Probe{}\n\t\t\t}\n\t\t\tif err := m.StartupProbe.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 23:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResizePolicy\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResizePolicy = append(m.ResizePolicy, ContainerResizePolicy{})\n\t\t\tif err := m.ResizePolicy[len(m.ResizePolicy)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 24:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RestartPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := ContainerRestartPolicy(dAtA[iNdEx:postIndex])\n\t\t\tm.RestartPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerImage) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerImage: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerImage: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Names\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Names = append(m.Names, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SizeBytes\", wireType)\n\t\t\t}\n\t\t\tm.SizeBytes = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.SizeBytes |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerPort) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerPort: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerPort: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HostPort\", wireType)\n\t\t\t}\n\t\t\tm.HostPort = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.HostPort |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerPort\", wireType)\n\t\t\t}\n\t\t\tm.ContainerPort = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ContainerPort |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Protocol\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Protocol = Protocol(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HostIP\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.HostIP = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerResizePolicy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerResizePolicy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerResizePolicy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceName = ResourceName(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RestartPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RestartPolicy = ResourceResizeRestartPolicy(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerState) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerState: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerState: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Waiting\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Waiting == nil {\n\t\t\t\tm.Waiting = &ContainerStateWaiting{}\n\t\t\t}\n\t\t\tif err := m.Waiting.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Running\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Running == nil {\n\t\t\t\tm.Running = &ContainerStateRunning{}\n\t\t\t}\n\t\t\tif err := m.Running.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Terminated\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Terminated == nil {\n\t\t\t\tm.Terminated = &ContainerStateTerminated{}\n\t\t\t}\n\t\t\tif err := m.Terminated.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerStateRunning) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerStateRunning: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerStateRunning: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StartedAt\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.StartedAt.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerStateTerminated) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerStateTerminated: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerStateTerminated: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ExitCode\", wireType)\n\t\t\t}\n\t\t\tm.ExitCode = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ExitCode |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Signal\", wireType)\n\t\t\t}\n\t\t\tm.Signal = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Signal |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StartedAt\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.StartedAt.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FinishedAt\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.FinishedAt.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ContainerID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerStateWaiting) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerStateWaiting: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerStateWaiting: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field State\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.State.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTerminationState\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTerminationState.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ready\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Ready = bool(v != 0)\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RestartCount\", wireType)\n\t\t\t}\n\t\t\tm.RestartCount = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.RestartCount |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Image\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Image = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ImageID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ImageID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ContainerID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Started\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Started = &b\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AllocatedResources\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AllocatedResources == nil {\n\t\t\t\tm.AllocatedResources = make(ResourceList)\n\t\t\t}\n\t\t\tvar mapkey ResourceName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.AllocatedResources[ResourceName(mapkey)] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resources\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Resources == nil {\n\t\t\t\tm.Resources = &ResourceRequirements{}\n\t\t\t}\n\t\t\tif err := m.Resources.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 12:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeMounts\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumeMounts = append(m.VolumeMounts, VolumeMountStatus{})\n\t\t\tif err := m.VolumeMounts[len(m.VolumeMounts)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 13:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field User\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.User == nil {\n\t\t\t\tm.User = &ContainerUser{}\n\t\t\t}\n\t\t\tif err := m.User.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 14:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AllocatedResourcesStatus\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AllocatedResourcesStatus = append(m.AllocatedResourcesStatus, ResourceStatus{})\n\t\t\tif err := m.AllocatedResourcesStatus[len(m.AllocatedResourcesStatus)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ContainerUser) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerUser: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ContainerUser: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Linux\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Linux == nil {\n\t\t\t\tm.Linux = &LinuxContainerUser{}\n\t\t\t}\n\t\t\tif err := m.Linux.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DaemonEndpoint) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonEndpoint: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonEndpoint: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Port\", wireType)\n\t\t\t}\n\t\t\tm.Port = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Port |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DownwardAPIProjection) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DownwardAPIProjection: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DownwardAPIProjection: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, DownwardAPIVolumeFile{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DownwardAPIVolumeFile) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DownwardAPIVolumeFile: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DownwardAPIVolumeFile: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Path\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Path = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FieldRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.FieldRef == nil {\n\t\t\t\tm.FieldRef = &ObjectFieldSelector{}\n\t\t\t}\n\t\t\tif err := m.FieldRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceFieldRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ResourceFieldRef == nil {\n\t\t\t\tm.ResourceFieldRef = &ResourceFieldSelector{}\n\t\t\t}\n\t\t\tif err := m.ResourceFieldRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Mode\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Mode = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DownwardAPIVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DownwardAPIVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DownwardAPIVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, DownwardAPIVolumeFile{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DefaultMode\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.DefaultMode = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EmptyDirVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EmptyDirVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EmptyDirVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Medium\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Medium = StorageMedium(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SizeLimit\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SizeLimit == nil {\n\t\t\t\tm.SizeLimit = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.SizeLimit.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EndpointAddress) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointAddress: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointAddress: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IP\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.IP = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.TargetRef == nil {\n\t\t\t\tm.TargetRef = &ObjectReference{}\n\t\t\t}\n\t\t\tif err := m.TargetRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Hostname\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Hostname = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.NodeName = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EndpointPort) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointPort: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointPort: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Port\", wireType)\n\t\t\t}\n\t\t\tm.Port = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Port |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Protocol\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Protocol = Protocol(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AppProtocol\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.AppProtocol = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EndpointSubset) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointSubset: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointSubset: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Addresses\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Addresses = append(m.Addresses, EndpointAddress{})\n\t\t\tif err := m.Addresses[len(m.Addresses)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NotReadyAddresses\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NotReadyAddresses = append(m.NotReadyAddresses, EndpointAddress{})\n\t\t\tif err := m.NotReadyAddresses[len(m.NotReadyAddresses)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ports\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ports = append(m.Ports, EndpointPort{})\n\t\t\tif err := m.Ports[len(m.Ports)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Endpoints) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Endpoints: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Endpoints: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Subsets\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Subsets = append(m.Subsets, EndpointSubset{})\n\t\t\tif err := m.Subsets[len(m.Subsets)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EndpointsList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointsList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointsList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Endpoints{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EnvFromSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EnvFromSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EnvFromSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Prefix\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Prefix = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ConfigMapRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ConfigMapRef == nil {\n\t\t\t\tm.ConfigMapRef = &ConfigMapEnvSource{}\n\t\t\t}\n\t\t\tif err := m.ConfigMapRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SecretRef == nil {\n\t\t\t\tm.SecretRef = &SecretEnvSource{}\n\t\t\t}\n\t\t\tif err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EnvVar) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EnvVar: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EnvVar: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Value\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Value = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ValueFrom\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ValueFrom == nil {\n\t\t\t\tm.ValueFrom = &EnvVarSource{}\n\t\t\t}\n\t\t\tif err := m.ValueFrom.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EnvVarSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EnvVarSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EnvVarSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FieldRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.FieldRef == nil {\n\t\t\t\tm.FieldRef = &ObjectFieldSelector{}\n\t\t\t}\n\t\t\tif err := m.FieldRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceFieldRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ResourceFieldRef == nil {\n\t\t\t\tm.ResourceFieldRef = &ResourceFieldSelector{}\n\t\t\t}\n\t\t\tif err := m.ResourceFieldRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ConfigMapKeyRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ConfigMapKeyRef == nil {\n\t\t\t\tm.ConfigMapKeyRef = &ConfigMapKeySelector{}\n\t\t\t}\n\t\t\tif err := m.ConfigMapKeyRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretKeyRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SecretKeyRef == nil {\n\t\t\t\tm.SecretKeyRef = &SecretKeySelector{}\n\t\t\t}\n\t\t\tif err := m.SecretKeyRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EphemeralContainer) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EphemeralContainer: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EphemeralContainer: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EphemeralContainerCommon\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.EphemeralContainerCommon.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetContainerName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TargetContainerName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EphemeralContainerCommon) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EphemeralContainerCommon: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EphemeralContainerCommon: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Image\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Image = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Command\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Command = append(m.Command, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Args\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Args = append(m.Args, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field WorkingDir\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.WorkingDir = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ports\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ports = append(m.Ports, ContainerPort{})\n\t\t\tif err := m.Ports[len(m.Ports)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Env\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Env = append(m.Env, EnvVar{})\n\t\t\tif err := m.Env[len(m.Env)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resources\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Resources.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeMounts\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumeMounts = append(m.VolumeMounts, VolumeMount{})\n\t\t\tif err := m.VolumeMounts[len(m.VolumeMounts)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LivenessProbe\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.LivenessProbe == nil {\n\t\t\t\tm.LivenessProbe = &Probe{}\n\t\t\t}\n\t\t\tif err := m.LivenessProbe.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadinessProbe\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ReadinessProbe == nil {\n\t\t\t\tm.ReadinessProbe = &Probe{}\n\t\t\t}\n\t\t\tif err := m.ReadinessProbe.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 12:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Lifecycle\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Lifecycle == nil {\n\t\t\t\tm.Lifecycle = &Lifecycle{}\n\t\t\t}\n\t\t\tif err := m.Lifecycle.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 13:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TerminationMessagePath\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TerminationMessagePath = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 14:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ImagePullPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ImagePullPolicy = PullPolicy(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 15:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecurityContext\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SecurityContext == nil {\n\t\t\t\tm.SecurityContext = &SecurityContext{}\n\t\t\t}\n\t\t\tif err := m.SecurityContext.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 16:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Stdin\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Stdin = bool(v != 0)\n\t\tcase 17:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StdinOnce\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.StdinOnce = bool(v != 0)\n\t\tcase 18:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TTY\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.TTY = bool(v != 0)\n\t\tcase 19:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EnvFrom\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.EnvFrom = append(m.EnvFrom, EnvFromSource{})\n\t\t\tif err := m.EnvFrom[len(m.EnvFrom)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 20:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TerminationMessagePolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TerminationMessagePolicy = TerminationMessagePolicy(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 21:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeDevices\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumeDevices = append(m.VolumeDevices, VolumeDevice{})\n\t\t\tif err := m.VolumeDevices[len(m.VolumeDevices)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 22:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StartupProbe\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.StartupProbe == nil {\n\t\t\t\tm.StartupProbe = &Probe{}\n\t\t\t}\n\t\t\tif err := m.StartupProbe.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 23:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResizePolicy\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResizePolicy = append(m.ResizePolicy, ContainerResizePolicy{})\n\t\t\tif err := m.ResizePolicy[len(m.ResizePolicy)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 24:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RestartPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := ContainerRestartPolicy(dAtA[iNdEx:postIndex])\n\t\t\tm.RestartPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EphemeralVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EphemeralVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EphemeralVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeClaimTemplate\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.VolumeClaimTemplate == nil {\n\t\t\t\tm.VolumeClaimTemplate = &PersistentVolumeClaimTemplate{}\n\t\t\t}\n\t\t\tif err := m.VolumeClaimTemplate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Event) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Event: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Event: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field InvolvedObject\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.InvolvedObject.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Source\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Source.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FirstTimestamp\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.FirstTimestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTimestamp\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTimestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Count\", wireType)\n\t\t\t}\n\t\t\tm.Count = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Count |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EventTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.EventTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Series\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Series == nil {\n\t\t\t\tm.Series = &EventSeries{}\n\t\t\t}\n\t\t\tif err := m.Series.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 12:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Action\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Action = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 13:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Related\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Related == nil {\n\t\t\t\tm.Related = &ObjectReference{}\n\t\t\t}\n\t\t\tif err := m.Related.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 14:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReportingController\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ReportingController = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 15:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReportingInstance\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ReportingInstance = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EventList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EventList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EventList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Event{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EventSeries) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EventSeries: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EventSeries: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Count\", wireType)\n\t\t\t}\n\t\t\tm.Count = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Count |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastObservedTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastObservedTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EventSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EventSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EventSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Component\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Component = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Host\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Host = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ExecAction) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ExecAction: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ExecAction: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Command\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Command = append(m.Command, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FCVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FCVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FCVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetWWNs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TargetWWNs = append(m.TargetWWNs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Lun\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Lun = &v\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FSType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field WWIDs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.WWIDs = append(m.WWIDs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlexPersistentVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlexPersistentVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlexPersistentVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Driver\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Driver = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FSType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SecretRef == nil {\n\t\t\t\tm.SecretRef = &SecretReference{}\n\t\t\t}\n\t\t\tif err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Options\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Options == nil {\n\t\t\t\tm.Options = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Options[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlexVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlexVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlexVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Driver\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Driver = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FSType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SecretRef == nil {\n\t\t\t\tm.SecretRef = &LocalObjectReference{}\n\t\t\t}\n\t\t\tif err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Options\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Options == nil {\n\t\t\t\tm.Options = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Options[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlockerVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlockerVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlockerVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DatasetName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.DatasetName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DatasetUUID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.DatasetUUID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *GCEPersistentDiskVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GCEPersistentDiskVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GCEPersistentDiskVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PDName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PDName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FSType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Partition\", wireType)\n\t\t\t}\n\t\t\tm.Partition = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Partition |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *GRPCAction) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GRPCAction: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GRPCAction: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Port\", wireType)\n\t\t\t}\n\t\t\tm.Port = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Port |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Service\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.Service = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *GitRepoVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GitRepoVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GitRepoVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Repository\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Repository = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Revision\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Revision = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Directory\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Directory = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *GlusterfsPersistentVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GlusterfsPersistentVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GlusterfsPersistentVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EndpointsName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.EndpointsName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Path\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Path = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EndpointsNamespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.EndpointsNamespace = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *GlusterfsVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GlusterfsVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GlusterfsVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EndpointsName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.EndpointsName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Path\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Path = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HTTPGetAction) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HTTPGetAction: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HTTPGetAction: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Path\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Path = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Port\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Port.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Host\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Host = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Scheme\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Scheme = URIScheme(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HTTPHeaders\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.HTTPHeaders = append(m.HTTPHeaders, HTTPHeader{})\n\t\t\tif err := m.HTTPHeaders[len(m.HTTPHeaders)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HTTPHeader) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HTTPHeader: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HTTPHeader: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Value\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Value = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HostAlias) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HostAlias: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HostAlias: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IP\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.IP = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Hostnames\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Hostnames = append(m.Hostnames, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HostIP) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HostIP: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HostIP: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IP\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.IP = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HostPathVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HostPathVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HostPathVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Path\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Path = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := HostPathType(dAtA[iNdEx:postIndex])\n\t\t\tm.Type = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ISCSIPersistentVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ISCSIPersistentVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ISCSIPersistentVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetPortal\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TargetPortal = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IQN\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.IQN = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Lun\", wireType)\n\t\t\t}\n\t\t\tm.Lun = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Lun |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ISCSIInterface\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ISCSIInterface = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FSType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Portals\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Portals = append(m.Portals, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DiscoveryCHAPAuth\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.DiscoveryCHAPAuth = bool(v != 0)\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SecretRef == nil {\n\t\t\t\tm.SecretRef = &SecretReference{}\n\t\t\t}\n\t\t\tif err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SessionCHAPAuth\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.SessionCHAPAuth = bool(v != 0)\n\t\tcase 12:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field InitiatorName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.InitiatorName = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ISCSIVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ISCSIVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ISCSIVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetPortal\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TargetPortal = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IQN\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.IQN = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Lun\", wireType)\n\t\t\t}\n\t\t\tm.Lun = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Lun |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ISCSIInterface\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ISCSIInterface = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FSType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Portals\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Portals = append(m.Portals, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DiscoveryCHAPAuth\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.DiscoveryCHAPAuth = bool(v != 0)\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SecretRef == nil {\n\t\t\t\tm.SecretRef = &LocalObjectReference{}\n\t\t\t}\n\t\t\tif err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SessionCHAPAuth\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.SessionCHAPAuth = bool(v != 0)\n\t\tcase 12:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field InitiatorName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.InitiatorName = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ImageVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ImageVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ImageVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reference\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reference = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PullPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PullPolicy = PullPolicy(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *KeyToPath) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: KeyToPath: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: KeyToPath: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Key\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Key = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Path\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Path = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Mode\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Mode = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Lifecycle) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Lifecycle: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Lifecycle: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PostStart\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.PostStart == nil {\n\t\t\t\tm.PostStart = &LifecycleHandler{}\n\t\t\t}\n\t\t\tif err := m.PostStart.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PreStop\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.PreStop == nil {\n\t\t\t\tm.PreStop = &LifecycleHandler{}\n\t\t\t}\n\t\t\tif err := m.PreStop.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LifecycleHandler) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LifecycleHandler: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LifecycleHandler: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Exec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Exec == nil {\n\t\t\t\tm.Exec = &ExecAction{}\n\t\t\t}\n\t\t\tif err := m.Exec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HTTPGet\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.HTTPGet == nil {\n\t\t\t\tm.HTTPGet = &HTTPGetAction{}\n\t\t\t}\n\t\t\tif err := m.HTTPGet.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TCPSocket\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.TCPSocket == nil {\n\t\t\t\tm.TCPSocket = &TCPSocketAction{}\n\t\t\t}\n\t\t\tif err := m.TCPSocket.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Sleep\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Sleep == nil {\n\t\t\t\tm.Sleep = &SleepAction{}\n\t\t\t}\n\t\t\tif err := m.Sleep.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LimitRange) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LimitRange: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LimitRange: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LimitRangeItem) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LimitRangeItem: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LimitRangeItem: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = LimitType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Max\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Max == nil {\n\t\t\t\tm.Max = make(ResourceList)\n\t\t\t}\n\t\t\tvar mapkey ResourceName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Max[ResourceName(mapkey)] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Min\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Min == nil {\n\t\t\t\tm.Min = make(ResourceList)\n\t\t\t}\n\t\t\tvar mapkey ResourceName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Min[ResourceName(mapkey)] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Default\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Default == nil {\n\t\t\t\tm.Default = make(ResourceList)\n\t\t\t}\n\t\t\tvar mapkey ResourceName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Default[ResourceName(mapkey)] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DefaultRequest\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.DefaultRequest == nil {\n\t\t\t\tm.DefaultRequest = make(ResourceList)\n\t\t\t}\n\t\t\tvar mapkey ResourceName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.DefaultRequest[ResourceName(mapkey)] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxLimitRequestRatio\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaxLimitRequestRatio == nil {\n\t\t\t\tm.MaxLimitRequestRatio = make(ResourceList)\n\t\t\t}\n\t\t\tvar mapkey ResourceName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.MaxLimitRequestRatio[ResourceName(mapkey)] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LimitRangeList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LimitRangeList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LimitRangeList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, LimitRange{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LimitRangeSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LimitRangeSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LimitRangeSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Limits\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Limits = append(m.Limits, LimitRangeItem{})\n\t\t\tif err := m.Limits[len(m.Limits)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LinuxContainerUser) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LinuxContainerUser: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LinuxContainerUser: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UID\", wireType)\n\t\t\t}\n\t\t\tm.UID = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.UID |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field GID\", wireType)\n\t\t\t}\n\t\t\tm.GID = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.GID |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType == 0 {\n\t\t\t\tvar v int64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tm.SupplementalGroups = append(m.SupplementalGroups, v)\n\t\t\t} else if wireType == 2 {\n\t\t\t\tvar packedLen int\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\tpackedLen |= int(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif packedLen < 0 {\n\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t}\n\t\t\t\tpostIndex := iNdEx + packedLen\n\t\t\t\tif postIndex < 0 {\n\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t}\n\t\t\t\tif postIndex > l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tvar elementCount int\n\t\t\t\tvar count int\n\t\t\t\tfor _, integer := range dAtA[iNdEx:postIndex] {\n\t\t\t\t\tif integer < 128 {\n\t\t\t\t\t\tcount++\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telementCount = count\n\t\t\t\tif elementCount != 0 && len(m.SupplementalGroups) == 0 {\n\t\t\t\t\tm.SupplementalGroups = make([]int64, 0, elementCount)\n\t\t\t\t}\n\t\t\t\tfor iNdEx < postIndex {\n\t\t\t\t\tvar v int64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tm.SupplementalGroups = append(m.SupplementalGroups, v)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SupplementalGroups\", wireType)\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *List) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: List: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: List: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, runtime.RawExtension{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LoadBalancerIngress) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LoadBalancerIngress: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LoadBalancerIngress: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IP\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.IP = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Hostname\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Hostname = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IPMode\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := LoadBalancerIPMode(dAtA[iNdEx:postIndex])\n\t\t\tm.IPMode = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ports\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ports = append(m.Ports, PortStatus{})\n\t\t\tif err := m.Ports[len(m.Ports)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LoadBalancerStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LoadBalancerStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LoadBalancerStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ingress\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ingress = append(m.Ingress, LoadBalancerIngress{})\n\t\t\tif err := m.Ingress[len(m.Ingress)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LocalObjectReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LocalObjectReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LocalObjectReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LocalVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LocalVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LocalVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Path\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Path = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.FSType = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ModifyVolumeStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ModifyVolumeStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ModifyVolumeStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetVolumeAttributesClassName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TargetVolumeAttributesClassName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = PersistentVolumeClaimModifyVolumeStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NFSVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NFSVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NFSVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Server\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Server = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Path\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Path = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Namespace) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Namespace: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Namespace: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NamespaceCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NamespaceCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NamespaceCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = NamespaceConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NamespaceList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NamespaceList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NamespaceList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Namespace{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NamespaceSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NamespaceSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NamespaceSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Finalizers\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Finalizers = append(m.Finalizers, FinalizerName(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NamespaceStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NamespaceStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NamespaceStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Phase\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Phase = NamespacePhase(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, NamespaceCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Node) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Node: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Node: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NodeAddress) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NodeAddress: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NodeAddress: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = NodeAddressType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Address\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Address = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NodeAffinity) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NodeAffinity: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NodeAffinity: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RequiredDuringSchedulingIgnoredDuringExecution\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RequiredDuringSchedulingIgnoredDuringExecution == nil {\n\t\t\t\tm.RequiredDuringSchedulingIgnoredDuringExecution = &NodeSelector{}\n\t\t\t}\n\t\t\tif err := m.RequiredDuringSchedulingIgnoredDuringExecution.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PreferredDuringSchedulingIgnoredDuringExecution\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PreferredDuringSchedulingIgnoredDuringExecution = append(m.PreferredDuringSchedulingIgnoredDuringExecution, PreferredSchedulingTerm{})\n\t\t\tif err := m.PreferredDuringSchedulingIgnoredDuringExecution[len(m.PreferredDuringSchedulingIgnoredDuringExecution)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NodeCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NodeCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NodeCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = NodeConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastHeartbeatTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastHeartbeatTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NodeConfigSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NodeConfigSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NodeConfigSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ConfigMap\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ConfigMap == nil {\n\t\t\t\tm.ConfigMap = &ConfigMapNodeConfigSource{}\n\t\t\t}\n\t\t\tif err := m.ConfigMap.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NodeConfigStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NodeConfigStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NodeConfigStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Assigned\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Assigned == nil {\n\t\t\t\tm.Assigned = &NodeConfigSource{}\n\t\t\t}\n\t\t\tif err := m.Assigned.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Active\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Active == nil {\n\t\t\t\tm.Active = &NodeConfigSource{}\n\t\t\t}\n\t\t\tif err := m.Active.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastKnownGood\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.LastKnownGood == nil {\n\t\t\t\tm.LastKnownGood = &NodeConfigSource{}\n\t\t\t}\n\t\t\tif err := m.LastKnownGood.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Error\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Error = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NodeDaemonEndpoints) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NodeDaemonEndpoints: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NodeDaemonEndpoints: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field KubeletEndpoint\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.KubeletEndpoint.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NodeFeatures) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NodeFeatures: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NodeFeatures: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SupplementalGroupsPolicy\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.SupplementalGroupsPolicy = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NodeList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NodeList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NodeList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Node{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NodeProxyOptions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NodeProxyOptions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NodeProxyOptions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Path\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Path = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NodeRuntimeHandler) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NodeRuntimeHandler: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NodeRuntimeHandler: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Features\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Features == nil {\n\t\t\t\tm.Features = &NodeRuntimeHandlerFeatures{}\n\t\t\t}\n\t\t\tif err := m.Features.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NodeRuntimeHandlerFeatures) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NodeRuntimeHandlerFeatures: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NodeRuntimeHandlerFeatures: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RecursiveReadOnlyMounts\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.RecursiveReadOnlyMounts = &b\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UserNamespaces\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.UserNamespaces = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NodeSelector) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NodeSelector: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NodeSelector: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeSelectorTerms\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NodeSelectorTerms = append(m.NodeSelectorTerms, NodeSelectorTerm{})\n\t\t\tif err := m.NodeSelectorTerms[len(m.NodeSelectorTerms)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NodeSelectorRequirement) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NodeSelectorRequirement: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NodeSelectorRequirement: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Key\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Key = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Operator\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Operator = NodeSelectorOperator(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Values\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Values = append(m.Values, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NodeSelectorTerm) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NodeSelectorTerm: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NodeSelectorTerm: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchExpressions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MatchExpressions = append(m.MatchExpressions, NodeSelectorRequirement{})\n\t\t\tif err := m.MatchExpressions[len(m.MatchExpressions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchFields\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MatchFields = append(m.MatchFields, NodeSelectorRequirement{})\n\t\t\tif err := m.MatchFields[len(m.MatchFields)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NodeSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NodeSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NodeSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodCIDR\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PodCIDR = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DoNotUseExternalID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.DoNotUseExternalID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ProviderID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ProviderID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Unschedulable\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Unschedulable = bool(v != 0)\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Taints\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Taints = append(m.Taints, Taint{})\n\t\t\tif err := m.Taints[len(m.Taints)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ConfigSource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ConfigSource == nil {\n\t\t\t\tm.ConfigSource = &NodeConfigSource{}\n\t\t\t}\n\t\t\tif err := m.ConfigSource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodCIDRs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PodCIDRs = append(m.PodCIDRs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NodeStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NodeStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NodeStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Capacity\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Capacity == nil {\n\t\t\t\tm.Capacity = make(ResourceList)\n\t\t\t}\n\t\t\tvar mapkey ResourceName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Capacity[ResourceName(mapkey)] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Allocatable\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Allocatable == nil {\n\t\t\t\tm.Allocatable = make(ResourceList)\n\t\t\t}\n\t\t\tvar mapkey ResourceName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Allocatable[ResourceName(mapkey)] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Phase\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Phase = NodePhase(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, NodeCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Addresses\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Addresses = append(m.Addresses, NodeAddress{})\n\t\t\tif err := m.Addresses[len(m.Addresses)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DaemonEndpoints\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.DaemonEndpoints.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeInfo\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.NodeInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Images\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Images = append(m.Images, ContainerImage{})\n\t\t\tif err := m.Images[len(m.Images)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumesInUse\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumesInUse = append(m.VolumesInUse, UniqueVolumeName(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumesAttached\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumesAttached = append(m.VolumesAttached, AttachedVolume{})\n\t\t\tif err := m.VolumesAttached[len(m.VolumesAttached)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Config\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Config == nil {\n\t\t\t\tm.Config = &NodeConfigStatus{}\n\t\t\t}\n\t\t\tif err := m.Config.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 12:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RuntimeHandlers\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RuntimeHandlers = append(m.RuntimeHandlers, NodeRuntimeHandler{})\n\t\t\tif err := m.RuntimeHandlers[len(m.RuntimeHandlers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 13:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Features\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Features == nil {\n\t\t\t\tm.Features = &NodeFeatures{}\n\t\t\t}\n\t\t\tif err := m.Features.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NodeSystemInfo) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NodeSystemInfo: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NodeSystemInfo: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MachineID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MachineID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SystemUUID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SystemUUID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field BootID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.BootID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field KernelVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.KernelVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field OSImage\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.OSImage = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerRuntimeVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ContainerRuntimeVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field KubeletVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.KubeletVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field KubeProxyVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.KubeProxyVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field OperatingSystem\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.OperatingSystem = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Architecture\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Architecture = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ObjectFieldSelector) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectFieldSelector: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectFieldSelector: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FieldPath\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FieldPath = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ObjectReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.UID = k8s_io_apimachinery_pkg_types.UID(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FieldPath\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FieldPath = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PersistentVolume) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolume: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolume: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PersistentVolumeClaim) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeClaim: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeClaim: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PersistentVolumeClaimCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeClaimCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeClaimCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = PersistentVolumeClaimConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastProbeTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastProbeTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PersistentVolumeClaimList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeClaimList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeClaimList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, PersistentVolumeClaim{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PersistentVolumeClaimSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeClaimSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeClaimSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AccessModes\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AccessModes = append(m.AccessModes, PersistentVolumeAccessMode(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resources\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Resources.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumeName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StorageClassName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.StorageClassName = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeMode\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := PersistentVolumeMode(dAtA[iNdEx:postIndex])\n\t\t\tm.VolumeMode = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DataSource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.DataSource == nil {\n\t\t\t\tm.DataSource = &TypedLocalObjectReference{}\n\t\t\t}\n\t\t\tif err := m.DataSource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DataSourceRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.DataSourceRef == nil {\n\t\t\t\tm.DataSourceRef = &TypedObjectReference{}\n\t\t\t}\n\t\t\tif err := m.DataSourceRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeAttributesClassName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.VolumeAttributesClassName = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PersistentVolumeClaimStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeClaimStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeClaimStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Phase\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Phase = PersistentVolumeClaimPhase(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AccessModes\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AccessModes = append(m.AccessModes, PersistentVolumeAccessMode(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Capacity\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Capacity == nil {\n\t\t\t\tm.Capacity = make(ResourceList)\n\t\t\t}\n\t\t\tvar mapkey ResourceName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Capacity[ResourceName(mapkey)] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, PersistentVolumeClaimCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AllocatedResources\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AllocatedResources == nil {\n\t\t\t\tm.AllocatedResources = make(ResourceList)\n\t\t\t}\n\t\t\tvar mapkey ResourceName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.AllocatedResources[ResourceName(mapkey)] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AllocatedResourceStatuses\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AllocatedResourceStatuses == nil {\n\t\t\t\tm.AllocatedResourceStatuses = make(map[ResourceName]ClaimResourceStatus)\n\t\t\t}\n\t\t\tvar mapkey ResourceName\n\t\t\tvar mapvalue ClaimResourceStatus\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = ClaimResourceStatus(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.AllocatedResourceStatuses[ResourceName(mapkey)] = ((ClaimResourceStatus)(mapvalue))\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentVolumeAttributesClassName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.CurrentVolumeAttributesClassName = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ModifyVolumeStatus\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ModifyVolumeStatus == nil {\n\t\t\t\tm.ModifyVolumeStatus = &ModifyVolumeStatus{}\n\t\t\t}\n\t\t\tif err := m.ModifyVolumeStatus.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PersistentVolumeClaimTemplate) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeClaimTemplate: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeClaimTemplate: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PersistentVolumeClaimVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeClaimVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeClaimVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ClaimName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ClaimName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PersistentVolumeList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, PersistentVolume{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PersistentVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field GCEPersistentDisk\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.GCEPersistentDisk == nil {\n\t\t\t\tm.GCEPersistentDisk = &GCEPersistentDiskVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.GCEPersistentDisk.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AWSElasticBlockStore\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AWSElasticBlockStore == nil {\n\t\t\t\tm.AWSElasticBlockStore = &AWSElasticBlockStoreVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.AWSElasticBlockStore.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HostPath\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.HostPath == nil {\n\t\t\t\tm.HostPath = &HostPathVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.HostPath.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Glusterfs\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Glusterfs == nil {\n\t\t\t\tm.Glusterfs = &GlusterfsPersistentVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.Glusterfs.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NFS\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NFS == nil {\n\t\t\t\tm.NFS = &NFSVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.NFS.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RBD\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RBD == nil {\n\t\t\t\tm.RBD = &RBDPersistentVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.RBD.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ISCSI\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ISCSI == nil {\n\t\t\t\tm.ISCSI = &ISCSIPersistentVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.ISCSI.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Cinder\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Cinder == nil {\n\t\t\t\tm.Cinder = &CinderPersistentVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.Cinder.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CephFS\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.CephFS == nil {\n\t\t\t\tm.CephFS = &CephFSPersistentVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.CephFS.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FC\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.FC == nil {\n\t\t\t\tm.FC = &FCVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.FC.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Flocker\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Flocker == nil {\n\t\t\t\tm.Flocker = &FlockerVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.Flocker.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 12:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FlexVolume\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.FlexVolume == nil {\n\t\t\t\tm.FlexVolume = &FlexPersistentVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.FlexVolume.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 13:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AzureFile\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AzureFile == nil {\n\t\t\t\tm.AzureFile = &AzureFilePersistentVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.AzureFile.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 14:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VsphereVolume\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.VsphereVolume == nil {\n\t\t\t\tm.VsphereVolume = &VsphereVirtualDiskVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.VsphereVolume.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 15:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Quobyte\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Quobyte == nil {\n\t\t\t\tm.Quobyte = &QuobyteVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.Quobyte.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 16:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AzureDisk\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AzureDisk == nil {\n\t\t\t\tm.AzureDisk = &AzureDiskVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.AzureDisk.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 17:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PhotonPersistentDisk\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.PhotonPersistentDisk == nil {\n\t\t\t\tm.PhotonPersistentDisk = &PhotonPersistentDiskVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.PhotonPersistentDisk.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 18:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PortworxVolume\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.PortworxVolume == nil {\n\t\t\t\tm.PortworxVolume = &PortworxVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.PortworxVolume.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 19:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ScaleIO\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ScaleIO == nil {\n\t\t\t\tm.ScaleIO = &ScaleIOPersistentVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.ScaleIO.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 20:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Local\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Local == nil {\n\t\t\t\tm.Local = &LocalVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.Local.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 21:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StorageOS\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.StorageOS == nil {\n\t\t\t\tm.StorageOS = &StorageOSPersistentVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.StorageOS.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 22:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CSI\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.CSI == nil {\n\t\t\t\tm.CSI = &CSIPersistentVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.CSI.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PersistentVolumeSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Capacity\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Capacity == nil {\n\t\t\t\tm.Capacity = make(ResourceList)\n\t\t\t}\n\t\t\tvar mapkey ResourceName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Capacity[ResourceName(mapkey)] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PersistentVolumeSource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.PersistentVolumeSource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AccessModes\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AccessModes = append(m.AccessModes, PersistentVolumeAccessMode(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ClaimRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ClaimRef == nil {\n\t\t\t\tm.ClaimRef = &ObjectReference{}\n\t\t\t}\n\t\t\tif err := m.ClaimRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PersistentVolumeReclaimPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PersistentVolumeReclaimPolicy = PersistentVolumeReclaimPolicy(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StorageClassName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.StorageClassName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MountOptions\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MountOptions = append(m.MountOptions, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeMode\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := PersistentVolumeMode(dAtA[iNdEx:postIndex])\n\t\t\tm.VolumeMode = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeAffinity\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NodeAffinity == nil {\n\t\t\t\tm.NodeAffinity = &VolumeNodeAffinity{}\n\t\t\t}\n\t\t\tif err := m.NodeAffinity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeAttributesClassName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.VolumeAttributesClassName = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PersistentVolumeStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PersistentVolumeStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Phase\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Phase = PersistentVolumePhase(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastPhaseTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.LastPhaseTransitionTime == nil {\n\t\t\t\tm.LastPhaseTransitionTime = &v1.Time{}\n\t\t\t}\n\t\t\tif err := m.LastPhaseTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PhotonPersistentDiskVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PhotonPersistentDiskVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PhotonPersistentDiskVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PdID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PdID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FSType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Pod) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Pod: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Pod: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodAffinity) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodAffinity: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodAffinity: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RequiredDuringSchedulingIgnoredDuringExecution\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RequiredDuringSchedulingIgnoredDuringExecution = append(m.RequiredDuringSchedulingIgnoredDuringExecution, PodAffinityTerm{})\n\t\t\tif err := m.RequiredDuringSchedulingIgnoredDuringExecution[len(m.RequiredDuringSchedulingIgnoredDuringExecution)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PreferredDuringSchedulingIgnoredDuringExecution\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PreferredDuringSchedulingIgnoredDuringExecution = append(m.PreferredDuringSchedulingIgnoredDuringExecution, WeightedPodAffinityTerm{})\n\t\t\tif err := m.PreferredDuringSchedulingIgnoredDuringExecution[len(m.PreferredDuringSchedulingIgnoredDuringExecution)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodAffinityTerm) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodAffinityTerm: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodAffinityTerm: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LabelSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.LabelSelector == nil {\n\t\t\t\tm.LabelSelector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.LabelSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespaces\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespaces = append(m.Namespaces, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TopologyKey\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TopologyKey = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NamespaceSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NamespaceSelector == nil {\n\t\t\t\tm.NamespaceSelector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.NamespaceSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchLabelKeys\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MatchLabelKeys = append(m.MatchLabelKeys, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MismatchLabelKeys\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MismatchLabelKeys = append(m.MismatchLabelKeys, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodAntiAffinity) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodAntiAffinity: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodAntiAffinity: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RequiredDuringSchedulingIgnoredDuringExecution\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RequiredDuringSchedulingIgnoredDuringExecution = append(m.RequiredDuringSchedulingIgnoredDuringExecution, PodAffinityTerm{})\n\t\t\tif err := m.RequiredDuringSchedulingIgnoredDuringExecution[len(m.RequiredDuringSchedulingIgnoredDuringExecution)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PreferredDuringSchedulingIgnoredDuringExecution\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PreferredDuringSchedulingIgnoredDuringExecution = append(m.PreferredDuringSchedulingIgnoredDuringExecution, WeightedPodAffinityTerm{})\n\t\t\tif err := m.PreferredDuringSchedulingIgnoredDuringExecution[len(m.PreferredDuringSchedulingIgnoredDuringExecution)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodAttachOptions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodAttachOptions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodAttachOptions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Stdin\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Stdin = bool(v != 0)\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Stdout\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Stdout = bool(v != 0)\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Stderr\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Stderr = bool(v != 0)\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TTY\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.TTY = bool(v != 0)\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Container\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Container = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = PodConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastProbeTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastProbeTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodDNSConfig) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodDNSConfig: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodDNSConfig: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Nameservers\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Nameservers = append(m.Nameservers, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Searches\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Searches = append(m.Searches, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Options\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Options = append(m.Options, PodDNSConfigOption{})\n\t\t\tif err := m.Options[len(m.Options)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodDNSConfigOption) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodDNSConfigOption: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodDNSConfigOption: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Value\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.Value = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodExecOptions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodExecOptions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodExecOptions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Stdin\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Stdin = bool(v != 0)\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Stdout\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Stdout = bool(v != 0)\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Stderr\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Stderr = bool(v != 0)\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TTY\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.TTY = bool(v != 0)\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Container\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Container = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Command\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Command = append(m.Command, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodIP) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodIP: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodIP: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IP\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.IP = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Pod{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodLogOptions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodLogOptions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodLogOptions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Container\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Container = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Follow\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Follow = bool(v != 0)\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Previous\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Previous = bool(v != 0)\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SinceSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.SinceSeconds = &v\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SinceTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SinceTime == nil {\n\t\t\t\tm.SinceTime = &v1.Time{}\n\t\t\t}\n\t\t\tif err := m.SinceTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Timestamps\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Timestamps = bool(v != 0)\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TailLines\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.TailLines = &v\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LimitBytes\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.LimitBytes = &v\n\t\tcase 9:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field InsecureSkipTLSVerifyBackend\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.InsecureSkipTLSVerifyBackend = bool(v != 0)\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Stream\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.Stream = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodOS) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodOS: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodOS: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = OSName(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodPortForwardOptions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodPortForwardOptions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodPortForwardOptions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType == 0 {\n\t\t\t\tvar v int32\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tm.Ports = append(m.Ports, v)\n\t\t\t} else if wireType == 2 {\n\t\t\t\tvar packedLen int\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\tpackedLen |= int(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif packedLen < 0 {\n\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t}\n\t\t\t\tpostIndex := iNdEx + packedLen\n\t\t\t\tif postIndex < 0 {\n\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t}\n\t\t\t\tif postIndex > l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tvar elementCount int\n\t\t\t\tvar count int\n\t\t\t\tfor _, integer := range dAtA[iNdEx:postIndex] {\n\t\t\t\t\tif integer < 128 {\n\t\t\t\t\t\tcount++\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telementCount = count\n\t\t\t\tif elementCount != 0 && len(m.Ports) == 0 {\n\t\t\t\t\tm.Ports = make([]int32, 0, elementCount)\n\t\t\t\t}\n\t\t\t\tfor iNdEx < postIndex {\n\t\t\t\t\tvar v int32\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tm.Ports = append(m.Ports, v)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ports\", wireType)\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodProxyOptions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodProxyOptions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodProxyOptions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Path\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Path = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodReadinessGate) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodReadinessGate: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodReadinessGate: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ConditionType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ConditionType = PodConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodResourceClaim) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodResourceClaim: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodResourceClaim: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceClaimName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.ResourceClaimName = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceClaimTemplateName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.ResourceClaimTemplateName = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodResourceClaimStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodResourceClaimStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodResourceClaimStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceClaimName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.ResourceClaimName = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodSchedulingGate) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodSchedulingGate: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodSchedulingGate: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodSecurityContext) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodSecurityContext: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodSecurityContext: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SELinuxOptions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SELinuxOptions == nil {\n\t\t\t\tm.SELinuxOptions = &SELinuxOptions{}\n\t\t\t}\n\t\t\tif err := m.SELinuxOptions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RunAsUser\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.RunAsUser = &v\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RunAsNonRoot\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.RunAsNonRoot = &b\n\t\tcase 4:\n\t\t\tif wireType == 0 {\n\t\t\t\tvar v int64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tm.SupplementalGroups = append(m.SupplementalGroups, v)\n\t\t\t} else if wireType == 2 {\n\t\t\t\tvar packedLen int\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\tpackedLen |= int(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif packedLen < 0 {\n\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t}\n\t\t\t\tpostIndex := iNdEx + packedLen\n\t\t\t\tif postIndex < 0 {\n\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t}\n\t\t\t\tif postIndex > l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tvar elementCount int\n\t\t\t\tvar count int\n\t\t\t\tfor _, integer := range dAtA[iNdEx:postIndex] {\n\t\t\t\t\tif integer < 128 {\n\t\t\t\t\t\tcount++\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telementCount = count\n\t\t\t\tif elementCount != 0 && len(m.SupplementalGroups) == 0 {\n\t\t\t\t\tm.SupplementalGroups = make([]int64, 0, elementCount)\n\t\t\t\t}\n\t\t\t\tfor iNdEx < postIndex {\n\t\t\t\t\tvar v int64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tm.SupplementalGroups = append(m.SupplementalGroups, v)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SupplementalGroups\", wireType)\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSGroup\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.FSGroup = &v\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RunAsGroup\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.RunAsGroup = &v\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Sysctls\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Sysctls = append(m.Sysctls, Sysctl{})\n\t\t\tif err := m.Sysctls[len(m.Sysctls)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field WindowsOptions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.WindowsOptions == nil {\n\t\t\t\tm.WindowsOptions = &WindowsSecurityContextOptions{}\n\t\t\t}\n\t\t\tif err := m.WindowsOptions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSGroupChangePolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := PodFSGroupChangePolicy(dAtA[iNdEx:postIndex])\n\t\t\tm.FSGroupChangePolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SeccompProfile\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SeccompProfile == nil {\n\t\t\t\tm.SeccompProfile = &SeccompProfile{}\n\t\t\t}\n\t\t\tif err := m.SeccompProfile.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AppArmorProfile\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AppArmorProfile == nil {\n\t\t\t\tm.AppArmorProfile = &AppArmorProfile{}\n\t\t\t}\n\t\t\tif err := m.AppArmorProfile.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 12:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SupplementalGroupsPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := SupplementalGroupsPolicy(dAtA[iNdEx:postIndex])\n\t\t\tm.SupplementalGroupsPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 13:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SELinuxChangePolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := PodSELinuxChangePolicy(dAtA[iNdEx:postIndex])\n\t\t\tm.SELinuxChangePolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodSignature) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodSignature: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodSignature: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodController\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.PodController == nil {\n\t\t\t\tm.PodController = &v1.OwnerReference{}\n\t\t\t}\n\t\t\tif err := m.PodController.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Volumes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Volumes = append(m.Volumes, Volume{})\n\t\t\tif err := m.Volumes[len(m.Volumes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Containers\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Containers = append(m.Containers, Container{})\n\t\t\tif err := m.Containers[len(m.Containers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RestartPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RestartPolicy = RestartPolicy(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TerminationGracePeriodSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.TerminationGracePeriodSeconds = &v\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ActiveDeadlineSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ActiveDeadlineSeconds = &v\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DNSPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.DNSPolicy = DNSPolicy(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NodeSelector == nil {\n\t\t\t\tm.NodeSelector = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.NodeSelector[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServiceAccountName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ServiceAccountName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DeprecatedServiceAccount\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.DeprecatedServiceAccount = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NodeName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HostNetwork\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.HostNetwork = bool(v != 0)\n\t\tcase 12:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HostPID\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.HostPID = bool(v != 0)\n\t\tcase 13:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HostIPC\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.HostIPC = bool(v != 0)\n\t\tcase 14:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecurityContext\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SecurityContext == nil {\n\t\t\t\tm.SecurityContext = &PodSecurityContext{}\n\t\t\t}\n\t\t\tif err := m.SecurityContext.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 15:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ImagePullSecrets\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ImagePullSecrets = append(m.ImagePullSecrets, LocalObjectReference{})\n\t\t\tif err := m.ImagePullSecrets[len(m.ImagePullSecrets)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 16:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Hostname\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Hostname = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 17:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Subdomain\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Subdomain = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 18:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Affinity\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Affinity == nil {\n\t\t\t\tm.Affinity = &Affinity{}\n\t\t\t}\n\t\t\tif err := m.Affinity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 19:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SchedulerName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SchedulerName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 20:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field InitContainers\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.InitContainers = append(m.InitContainers, Container{})\n\t\t\tif err := m.InitContainers[len(m.InitContainers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 21:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AutomountServiceAccountToken\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.AutomountServiceAccountToken = &b\n\t\tcase 22:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Tolerations\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Tolerations = append(m.Tolerations, Toleration{})\n\t\t\tif err := m.Tolerations[len(m.Tolerations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 23:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HostAliases\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.HostAliases = append(m.HostAliases, HostAlias{})\n\t\t\tif err := m.HostAliases[len(m.HostAliases)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 24:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PriorityClassName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PriorityClassName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 25:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Priority\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Priority = &v\n\t\tcase 26:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DNSConfig\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.DNSConfig == nil {\n\t\t\t\tm.DNSConfig = &PodDNSConfig{}\n\t\t\t}\n\t\t\tif err := m.DNSConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 27:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ShareProcessNamespace\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.ShareProcessNamespace = &b\n\t\tcase 28:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadinessGates\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ReadinessGates = append(m.ReadinessGates, PodReadinessGate{})\n\t\t\tif err := m.ReadinessGates[len(m.ReadinessGates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 29:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RuntimeClassName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.RuntimeClassName = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 30:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EnableServiceLinks\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.EnableServiceLinks = &b\n\t\tcase 31:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PreemptionPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := PreemptionPolicy(dAtA[iNdEx:postIndex])\n\t\t\tm.PreemptionPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 32:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Overhead\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Overhead == nil {\n\t\t\t\tm.Overhead = make(ResourceList)\n\t\t\t}\n\t\t\tvar mapkey ResourceName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Overhead[ResourceName(mapkey)] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 33:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TopologySpreadConstraints\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TopologySpreadConstraints = append(m.TopologySpreadConstraints, TopologySpreadConstraint{})\n\t\t\tif err := m.TopologySpreadConstraints[len(m.TopologySpreadConstraints)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 34:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EphemeralContainers\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.EphemeralContainers = append(m.EphemeralContainers, EphemeralContainer{})\n\t\t\tif err := m.EphemeralContainers[len(m.EphemeralContainers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 35:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SetHostnameAsFQDN\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.SetHostnameAsFQDN = &b\n\t\tcase 36:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field OS\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.OS == nil {\n\t\t\t\tm.OS = &PodOS{}\n\t\t\t}\n\t\t\tif err := m.OS.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 37:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HostUsers\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.HostUsers = &b\n\t\tcase 38:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SchedulingGates\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SchedulingGates = append(m.SchedulingGates, PodSchedulingGate{})\n\t\t\tif err := m.SchedulingGates[len(m.SchedulingGates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 39:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceClaims\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceClaims = append(m.ResourceClaims, PodResourceClaim{})\n\t\t\tif err := m.ResourceClaims[len(m.ResourceClaims)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 40:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resources\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Resources == nil {\n\t\t\t\tm.Resources = &ResourceRequirements{}\n\t\t\t}\n\t\t\tif err := m.Resources.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Phase\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Phase = PodPhase(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, PodCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HostIP\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.HostIP = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodIP\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PodIP = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StartTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.StartTime == nil {\n\t\t\t\tm.StartTime = &v1.Time{}\n\t\t\t}\n\t\t\tif err := m.StartTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerStatuses\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ContainerStatuses = append(m.ContainerStatuses, ContainerStatus{})\n\t\t\tif err := m.ContainerStatuses[len(m.ContainerStatuses)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field QOSClass\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.QOSClass = PodQOSClass(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field InitContainerStatuses\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.InitContainerStatuses = append(m.InitContainerStatuses, ContainerStatus{})\n\t\t\tif err := m.InitContainerStatuses[len(m.InitContainerStatuses)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NominatedNodeName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NominatedNodeName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 12:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodIPs\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PodIPs = append(m.PodIPs, PodIP{})\n\t\t\tif err := m.PodIPs[len(m.PodIPs)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 13:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EphemeralContainerStatuses\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.EphemeralContainerStatuses = append(m.EphemeralContainerStatuses, ContainerStatus{})\n\t\t\tif err := m.EphemeralContainerStatuses[len(m.EphemeralContainerStatuses)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 14:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resize\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resize = PodResizeStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 15:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceClaimStatuses\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceClaimStatuses = append(m.ResourceClaimStatuses, PodResourceClaimStatus{})\n\t\t\tif err := m.ResourceClaimStatuses[len(m.ResourceClaimStatuses)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 16:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HostIPs\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.HostIPs = append(m.HostIPs, HostIP{})\n\t\t\tif err := m.HostIPs[len(m.HostIPs)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodStatusResult) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodStatusResult: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodStatusResult: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodTemplate) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodTemplate: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodTemplate: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Template\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodTemplateList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodTemplateList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodTemplateList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, PodTemplate{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodTemplateSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodTemplateSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodTemplateSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PortStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PortStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PortStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Port\", wireType)\n\t\t\t}\n\t\t\tm.Port = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Port |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Protocol\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Protocol = Protocol(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Error\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.Error = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PortworxVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PortworxVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PortworxVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumeID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FSType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Preconditions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Preconditions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Preconditions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := k8s_io_apimachinery_pkg_types.UID(dAtA[iNdEx:postIndex])\n\t\t\tm.UID = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PreferAvoidPodsEntry) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PreferAvoidPodsEntry: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PreferAvoidPodsEntry: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodSignature\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.PodSignature.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EvictionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.EvictionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PreferredSchedulingTerm) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PreferredSchedulingTerm: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PreferredSchedulingTerm: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Weight\", wireType)\n\t\t\t}\n\t\t\tm.Weight = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Weight |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Preference\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Preference.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Probe) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Probe: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Probe: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ProbeHandler\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ProbeHandler.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field InitialDelaySeconds\", wireType)\n\t\t\t}\n\t\t\tm.InitialDelaySeconds = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.InitialDelaySeconds |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TimeoutSeconds\", wireType)\n\t\t\t}\n\t\t\tm.TimeoutSeconds = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.TimeoutSeconds |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PeriodSeconds\", wireType)\n\t\t\t}\n\t\t\tm.PeriodSeconds = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.PeriodSeconds |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SuccessThreshold\", wireType)\n\t\t\t}\n\t\t\tm.SuccessThreshold = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.SuccessThreshold |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FailureThreshold\", wireType)\n\t\t\t}\n\t\t\tm.FailureThreshold = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.FailureThreshold |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TerminationGracePeriodSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.TerminationGracePeriodSeconds = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ProbeHandler) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ProbeHandler: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ProbeHandler: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Exec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Exec == nil {\n\t\t\t\tm.Exec = &ExecAction{}\n\t\t\t}\n\t\t\tif err := m.Exec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HTTPGet\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.HTTPGet == nil {\n\t\t\t\tm.HTTPGet = &HTTPGetAction{}\n\t\t\t}\n\t\t\tif err := m.HTTPGet.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TCPSocket\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.TCPSocket == nil {\n\t\t\t\tm.TCPSocket = &TCPSocketAction{}\n\t\t\t}\n\t\t\tif err := m.TCPSocket.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field GRPC\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.GRPC == nil {\n\t\t\t\tm.GRPC = &GRPCAction{}\n\t\t\t}\n\t\t\tif err := m.GRPC.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ProjectedVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ProjectedVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ProjectedVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Sources\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Sources = append(m.Sources, VolumeProjection{})\n\t\t\tif err := m.Sources[len(m.Sources)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DefaultMode\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.DefaultMode = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *QuobyteVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: QuobyteVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: QuobyteVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Registry\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Registry = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Volume\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Volume = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field User\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.User = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Group\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Group = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Tenant\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Tenant = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RBDPersistentVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RBDPersistentVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RBDPersistentVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CephMonitors\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.CephMonitors = append(m.CephMonitors, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RBDImage\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RBDImage = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FSType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RBDPool\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RBDPool = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RadosUser\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RadosUser = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Keyring\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Keyring = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SecretRef == nil {\n\t\t\t\tm.SecretRef = &SecretReference{}\n\t\t\t}\n\t\t\tif err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RBDVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RBDVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RBDVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CephMonitors\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.CephMonitors = append(m.CephMonitors, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RBDImage\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RBDImage = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FSType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RBDPool\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RBDPool = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RadosUser\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RadosUser = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Keyring\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Keyring = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SecretRef == nil {\n\t\t\t\tm.SecretRef = &LocalObjectReference{}\n\t\t\t}\n\t\t\tif err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RangeAllocation) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RangeAllocation: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RangeAllocation: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Range\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Range = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Data\", wireType)\n\t\t\t}\n\t\t\tvar byteLen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tbyteLen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif byteLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + byteLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...)\n\t\t\tif m.Data == nil {\n\t\t\t\tm.Data = []byte{}\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ReplicationController) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicationController: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicationController: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ReplicationControllerCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicationControllerCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicationControllerCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = ReplicationControllerConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ReplicationControllerList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicationControllerList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicationControllerList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ReplicationController{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ReplicationControllerSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicationControllerSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicationControllerSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Replicas = &v\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Selector[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Template\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Template == nil {\n\t\t\t\tm.Template = &PodTemplateSpec{}\n\t\t\t}\n\t\t\tif err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MinReadySeconds\", wireType)\n\t\t\t}\n\t\t\tm.MinReadySeconds = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MinReadySeconds |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ReplicationControllerStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicationControllerStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicationControllerStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tm.Replicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Replicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FullyLabeledReplicas\", wireType)\n\t\t\t}\n\t\t\tm.FullyLabeledReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.FullyLabeledReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tm.ObservedGeneration = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ObservedGeneration |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadyReplicas\", wireType)\n\t\t\t}\n\t\t\tm.ReadyReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ReadyReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AvailableReplicas\", wireType)\n\t\t\t}\n\t\t\tm.AvailableReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.AvailableReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, ReplicationControllerCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceClaim) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaim: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaim: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Request\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Request = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceFieldSelector) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceFieldSelector: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceFieldSelector: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContainerName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ContainerName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resource\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resource = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Divisor\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Divisor.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceHealth) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceHealth: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceHealth: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceID = ResourceID(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Health\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Health = ResourceHealthStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceQuota) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceQuota: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceQuota: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceQuotaList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceQuotaList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceQuotaList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ResourceQuota{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceQuotaSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceQuotaSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceQuotaSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Hard\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Hard == nil {\n\t\t\t\tm.Hard = make(ResourceList)\n\t\t\t}\n\t\t\tvar mapkey ResourceName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Hard[ResourceName(mapkey)] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Scopes\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Scopes = append(m.Scopes, ResourceQuotaScope(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ScopeSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ScopeSelector == nil {\n\t\t\t\tm.ScopeSelector = &ScopeSelector{}\n\t\t\t}\n\t\t\tif err := m.ScopeSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceQuotaStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceQuotaStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceQuotaStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Hard\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Hard == nil {\n\t\t\t\tm.Hard = make(ResourceList)\n\t\t\t}\n\t\t\tvar mapkey ResourceName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Hard[ResourceName(mapkey)] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Used\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Used == nil {\n\t\t\t\tm.Used = make(ResourceList)\n\t\t\t}\n\t\t\tvar mapkey ResourceName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Used[ResourceName(mapkey)] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceRequirements) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceRequirements: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceRequirements: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Limits\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Limits == nil {\n\t\t\t\tm.Limits = make(ResourceList)\n\t\t\t}\n\t\t\tvar mapkey ResourceName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Limits[ResourceName(mapkey)] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Requests\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Requests == nil {\n\t\t\t\tm.Requests = make(ResourceList)\n\t\t\t}\n\t\t\tvar mapkey ResourceName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Requests[ResourceName(mapkey)] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Claims\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Claims = append(m.Claims, ResourceClaim{})\n\t\t\tif err := m.Claims[len(m.Claims)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = ResourceName(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resources\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resources = append(m.Resources, ResourceHealth{})\n\t\t\tif err := m.Resources[len(m.Resources)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SELinuxOptions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SELinuxOptions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SELinuxOptions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field User\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.User = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Role\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Role = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Level\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Level = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ScaleIOPersistentVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ScaleIOPersistentVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ScaleIOPersistentVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Gateway\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Gateway = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field System\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.System = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SecretRef == nil {\n\t\t\t\tm.SecretRef = &SecretReference{}\n\t\t\t}\n\t\t\tif err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SSLEnabled\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.SSLEnabled = bool(v != 0)\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ProtectionDomain\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ProtectionDomain = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StoragePool\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.StoragePool = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StorageMode\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.StorageMode = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumeName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FSType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ScaleIOVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ScaleIOVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ScaleIOVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Gateway\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Gateway = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field System\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.System = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SecretRef == nil {\n\t\t\t\tm.SecretRef = &LocalObjectReference{}\n\t\t\t}\n\t\t\tif err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SSLEnabled\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.SSLEnabled = bool(v != 0)\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ProtectionDomain\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ProtectionDomain = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StoragePool\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.StoragePool = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StorageMode\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.StorageMode = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumeName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FSType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ScopeSelector) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ScopeSelector: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ScopeSelector: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchExpressions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MatchExpressions = append(m.MatchExpressions, ScopedResourceSelectorRequirement{})\n\t\t\tif err := m.MatchExpressions[len(m.MatchExpressions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ScopedResourceSelectorRequirement) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ScopedResourceSelectorRequirement: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ScopedResourceSelectorRequirement: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ScopeName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ScopeName = ResourceQuotaScope(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Operator\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Operator = ScopeSelectorOperator(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Values\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Values = append(m.Values, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SeccompProfile) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SeccompProfile: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SeccompProfile: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = SeccompProfileType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LocalhostProfile\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.LocalhostProfile = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Secret) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Secret: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Secret: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Data\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Data == nil {\n\t\t\t\tm.Data = make(map[string][]byte)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tmapvalue := []byte{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapbyteLen uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapbyteLen |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintMapbyteLen := int(mapbyteLen)\n\t\t\t\t\tif intMapbyteLen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostbytesIndex := iNdEx + intMapbyteLen\n\t\t\t\t\tif postbytesIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postbytesIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = make([]byte, mapbyteLen)\n\t\t\t\t\tcopy(mapvalue, dAtA[iNdEx:postbytesIndex])\n\t\t\t\t\tiNdEx = postbytesIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Data[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = SecretType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StringData\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.StringData == nil {\n\t\t\t\tm.StringData = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.StringData[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Immutable\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Immutable = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SecretEnvSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SecretEnvSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SecretEnvSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LocalObjectReference\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LocalObjectReference.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Optional\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Optional = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SecretKeySelector) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SecretKeySelector: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SecretKeySelector: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LocalObjectReference\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LocalObjectReference.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Key\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Key = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Optional\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Optional = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SecretList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SecretList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SecretList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Secret{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SecretProjection) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SecretProjection: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SecretProjection: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LocalObjectReference\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LocalObjectReference.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, KeyToPath{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Optional\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Optional = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SecretReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SecretReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SecretReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SecretVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SecretVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SecretVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SecretName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, KeyToPath{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DefaultMode\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.DefaultMode = &v\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Optional\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Optional = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SecurityContext) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SecurityContext: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SecurityContext: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Capabilities\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Capabilities == nil {\n\t\t\t\tm.Capabilities = &Capabilities{}\n\t\t\t}\n\t\t\tif err := m.Capabilities.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Privileged\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Privileged = &b\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SELinuxOptions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SELinuxOptions == nil {\n\t\t\t\tm.SELinuxOptions = &SELinuxOptions{}\n\t\t\t}\n\t\t\tif err := m.SELinuxOptions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RunAsUser\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.RunAsUser = &v\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RunAsNonRoot\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.RunAsNonRoot = &b\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnlyRootFilesystem\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.ReadOnlyRootFilesystem = &b\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AllowPrivilegeEscalation\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.AllowPrivilegeEscalation = &b\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RunAsGroup\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.RunAsGroup = &v\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ProcMount\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := ProcMountType(dAtA[iNdEx:postIndex])\n\t\t\tm.ProcMount = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field WindowsOptions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.WindowsOptions == nil {\n\t\t\t\tm.WindowsOptions = &WindowsSecurityContextOptions{}\n\t\t\t}\n\t\t\tif err := m.WindowsOptions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SeccompProfile\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SeccompProfile == nil {\n\t\t\t\tm.SeccompProfile = &SeccompProfile{}\n\t\t\t}\n\t\t\tif err := m.SeccompProfile.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 12:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AppArmorProfile\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AppArmorProfile == nil {\n\t\t\t\tm.AppArmorProfile = &AppArmorProfile{}\n\t\t\t}\n\t\t\tif err := m.AppArmorProfile.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SerializedReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SerializedReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SerializedReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reference\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Reference.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Service) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Service: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Service: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ServiceAccount) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceAccount: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceAccount: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Secrets\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Secrets = append(m.Secrets, ObjectReference{})\n\t\t\tif err := m.Secrets[len(m.Secrets)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ImagePullSecrets\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ImagePullSecrets = append(m.ImagePullSecrets, LocalObjectReference{})\n\t\t\tif err := m.ImagePullSecrets[len(m.ImagePullSecrets)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AutomountServiceAccountToken\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.AutomountServiceAccountToken = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ServiceAccountList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceAccountList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceAccountList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ServiceAccount{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ServiceAccountTokenProjection) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceAccountTokenProjection: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceAccountTokenProjection: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Audience\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Audience = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ExpirationSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ExpirationSeconds = &v\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Path\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Path = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ServiceList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Service{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ServicePort) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServicePort: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServicePort: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Protocol\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Protocol = Protocol(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Port\", wireType)\n\t\t\t}\n\t\t\tm.Port = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Port |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetPort\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.TargetPort.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodePort\", wireType)\n\t\t\t}\n\t\t\tm.NodePort = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.NodePort |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AppProtocol\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.AppProtocol = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ServiceProxyOptions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceProxyOptions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceProxyOptions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Path\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Path = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ServiceSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ports\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ports = append(m.Ports, ServicePort{})\n\t\t\tif err := m.Ports[len(m.Ports)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Selector[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ClusterIP\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ClusterIP = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = ServiceType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ExternalIPs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ExternalIPs = append(m.ExternalIPs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SessionAffinity\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SessionAffinity = ServiceAffinity(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LoadBalancerIP\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.LoadBalancerIP = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LoadBalancerSourceRanges\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.LoadBalancerSourceRanges = append(m.LoadBalancerSourceRanges, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ExternalName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ExternalName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ExternalTrafficPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ExternalTrafficPolicy = ServiceExternalTrafficPolicy(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 12:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HealthCheckNodePort\", wireType)\n\t\t\t}\n\t\t\tm.HealthCheckNodePort = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.HealthCheckNodePort |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 13:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PublishNotReadyAddresses\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.PublishNotReadyAddresses = bool(v != 0)\n\t\tcase 14:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SessionAffinityConfig\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SessionAffinityConfig == nil {\n\t\t\t\tm.SessionAffinityConfig = &SessionAffinityConfig{}\n\t\t\t}\n\t\t\tif err := m.SessionAffinityConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 17:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IPFamilyPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := IPFamilyPolicy(dAtA[iNdEx:postIndex])\n\t\t\tm.IPFamilyPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 18:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ClusterIPs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ClusterIPs = append(m.ClusterIPs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 19:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IPFamilies\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.IPFamilies = append(m.IPFamilies, IPFamily(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 20:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AllocateLoadBalancerNodePorts\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.AllocateLoadBalancerNodePorts = &b\n\t\tcase 21:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LoadBalancerClass\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.LoadBalancerClass = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 22:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field InternalTrafficPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := ServiceInternalTrafficPolicy(dAtA[iNdEx:postIndex])\n\t\t\tm.InternalTrafficPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 23:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TrafficDistribution\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.TrafficDistribution = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ServiceStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LoadBalancer\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LoadBalancer.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, v1.Condition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SessionAffinityConfig) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SessionAffinityConfig: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SessionAffinityConfig: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ClientIP\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ClientIP == nil {\n\t\t\t\tm.ClientIP = &ClientIPConfig{}\n\t\t\t}\n\t\t\tif err := m.ClientIP.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *SleepAction) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: SleepAction: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: SleepAction: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Seconds\", wireType)\n\t\t\t}\n\t\t\tm.Seconds = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Seconds |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StorageOSPersistentVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StorageOSPersistentVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StorageOSPersistentVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumeName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeNamespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumeNamespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FSType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SecretRef == nil {\n\t\t\t\tm.SecretRef = &ObjectReference{}\n\t\t\t}\n\t\t\tif err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StorageOSVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StorageOSVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StorageOSVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumeName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeNamespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumeNamespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FSType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.SecretRef == nil {\n\t\t\t\tm.SecretRef = &LocalObjectReference{}\n\t\t\t}\n\t\t\tif err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Sysctl) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Sysctl: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Sysctl: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Value\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Value = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TCPSocketAction) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TCPSocketAction: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TCPSocketAction: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Port\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Port.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Host\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Host = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Taint) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Taint: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Taint: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Key\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Key = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Value\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Value = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Effect\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Effect = TaintEffect(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TimeAdded\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.TimeAdded == nil {\n\t\t\t\tm.TimeAdded = &v1.Time{}\n\t\t\t}\n\t\t\tif err := m.TimeAdded.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Toleration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Toleration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Toleration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Key\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Key = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Operator\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Operator = TolerationOperator(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Value\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Value = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Effect\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Effect = TaintEffect(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TolerationSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.TolerationSeconds = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TopologySelectorLabelRequirement) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TopologySelectorLabelRequirement: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TopologySelectorLabelRequirement: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Key\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Key = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Values\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Values = append(m.Values, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TopologySelectorTerm) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TopologySelectorTerm: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TopologySelectorTerm: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchLabelExpressions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MatchLabelExpressions = append(m.MatchLabelExpressions, TopologySelectorLabelRequirement{})\n\t\t\tif err := m.MatchLabelExpressions[len(m.MatchLabelExpressions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TopologySpreadConstraint) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TopologySpreadConstraint: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TopologySpreadConstraint: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxSkew\", wireType)\n\t\t\t}\n\t\t\tm.MaxSkew = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MaxSkew |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TopologyKey\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TopologyKey = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field WhenUnsatisfiable\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.WhenUnsatisfiable = UnsatisfiableConstraintAction(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LabelSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.LabelSelector == nil {\n\t\t\t\tm.LabelSelector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.LabelSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MinDomains\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.MinDomains = &v\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeAffinityPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := NodeInclusionPolicy(dAtA[iNdEx:postIndex])\n\t\t\tm.NodeAffinityPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeTaintsPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := NodeInclusionPolicy(dAtA[iNdEx:postIndex])\n\t\t\tm.NodeTaintsPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchLabelKeys\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MatchLabelKeys = append(m.MatchLabelKeys, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TypedLocalObjectReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TypedLocalObjectReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TypedLocalObjectReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIGroup\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.APIGroup = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TypedObjectReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TypedObjectReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TypedObjectReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIGroup\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.APIGroup = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.Namespace = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Volume) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Volume: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Volume: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeSource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.VolumeSource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeDevice) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeDevice: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeDevice: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DevicePath\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.DevicePath = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeMount) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeMount: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeMount: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MountPath\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MountPath = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SubPath\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SubPath = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MountPropagation\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := MountPropagationMode(dAtA[iNdEx:postIndex])\n\t\t\tm.MountPropagation = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SubPathExpr\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SubPathExpr = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RecursiveReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := RecursiveReadOnlyMode(dAtA[iNdEx:postIndex])\n\t\t\tm.RecursiveReadOnly = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeMountStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeMountStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeMountStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MountPath\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MountPath = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ReadOnly = bool(v != 0)\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RecursiveReadOnly\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := RecursiveReadOnlyMode(dAtA[iNdEx:postIndex])\n\t\t\tm.RecursiveReadOnly = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeNodeAffinity) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeNodeAffinity: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeNodeAffinity: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Required\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Required == nil {\n\t\t\t\tm.Required = &NodeSelector{}\n\t\t\t}\n\t\t\tif err := m.Required.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeProjection) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeProjection: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeProjection: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Secret\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Secret == nil {\n\t\t\t\tm.Secret = &SecretProjection{}\n\t\t\t}\n\t\t\tif err := m.Secret.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DownwardAPI\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.DownwardAPI == nil {\n\t\t\t\tm.DownwardAPI = &DownwardAPIProjection{}\n\t\t\t}\n\t\t\tif err := m.DownwardAPI.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ConfigMap\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ConfigMap == nil {\n\t\t\t\tm.ConfigMap = &ConfigMapProjection{}\n\t\t\t}\n\t\t\tif err := m.ConfigMap.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServiceAccountToken\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ServiceAccountToken == nil {\n\t\t\t\tm.ServiceAccountToken = &ServiceAccountTokenProjection{}\n\t\t\t}\n\t\t\tif err := m.ServiceAccountToken.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ClusterTrustBundle\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ClusterTrustBundle == nil {\n\t\t\t\tm.ClusterTrustBundle = &ClusterTrustBundleProjection{}\n\t\t\t}\n\t\t\tif err := m.ClusterTrustBundle.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeResourceRequirements) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeResourceRequirements: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeResourceRequirements: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Limits\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Limits == nil {\n\t\t\t\tm.Limits = make(ResourceList)\n\t\t\t}\n\t\t\tvar mapkey ResourceName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Limits[ResourceName(mapkey)] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Requests\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Requests == nil {\n\t\t\t\tm.Requests = make(ResourceList)\n\t\t\t}\n\t\t\tvar mapkey ResourceName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Requests[ResourceName(mapkey)] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HostPath\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.HostPath == nil {\n\t\t\t\tm.HostPath = &HostPathVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.HostPath.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EmptyDir\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.EmptyDir == nil {\n\t\t\t\tm.EmptyDir = &EmptyDirVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.EmptyDir.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field GCEPersistentDisk\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.GCEPersistentDisk == nil {\n\t\t\t\tm.GCEPersistentDisk = &GCEPersistentDiskVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.GCEPersistentDisk.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AWSElasticBlockStore\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AWSElasticBlockStore == nil {\n\t\t\t\tm.AWSElasticBlockStore = &AWSElasticBlockStoreVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.AWSElasticBlockStore.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field GitRepo\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.GitRepo == nil {\n\t\t\t\tm.GitRepo = &GitRepoVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.GitRepo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Secret\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Secret == nil {\n\t\t\t\tm.Secret = &SecretVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.Secret.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NFS\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NFS == nil {\n\t\t\t\tm.NFS = &NFSVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.NFS.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ISCSI\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ISCSI == nil {\n\t\t\t\tm.ISCSI = &ISCSIVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.ISCSI.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Glusterfs\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Glusterfs == nil {\n\t\t\t\tm.Glusterfs = &GlusterfsVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.Glusterfs.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PersistentVolumeClaim\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.PersistentVolumeClaim == nil {\n\t\t\t\tm.PersistentVolumeClaim = &PersistentVolumeClaimVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.PersistentVolumeClaim.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RBD\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RBD == nil {\n\t\t\t\tm.RBD = &RBDVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.RBD.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 12:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FlexVolume\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.FlexVolume == nil {\n\t\t\t\tm.FlexVolume = &FlexVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.FlexVolume.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 13:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Cinder\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Cinder == nil {\n\t\t\t\tm.Cinder = &CinderVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.Cinder.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 14:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CephFS\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.CephFS == nil {\n\t\t\t\tm.CephFS = &CephFSVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.CephFS.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 15:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Flocker\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Flocker == nil {\n\t\t\t\tm.Flocker = &FlockerVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.Flocker.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 16:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DownwardAPI\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.DownwardAPI == nil {\n\t\t\t\tm.DownwardAPI = &DownwardAPIVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.DownwardAPI.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 17:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FC\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.FC == nil {\n\t\t\t\tm.FC = &FCVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.FC.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 18:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AzureFile\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AzureFile == nil {\n\t\t\t\tm.AzureFile = &AzureFileVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.AzureFile.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 19:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ConfigMap\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ConfigMap == nil {\n\t\t\t\tm.ConfigMap = &ConfigMapVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.ConfigMap.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 20:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VsphereVolume\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.VsphereVolume == nil {\n\t\t\t\tm.VsphereVolume = &VsphereVirtualDiskVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.VsphereVolume.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 21:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Quobyte\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Quobyte == nil {\n\t\t\t\tm.Quobyte = &QuobyteVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.Quobyte.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 22:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AzureDisk\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AzureDisk == nil {\n\t\t\t\tm.AzureDisk = &AzureDiskVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.AzureDisk.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 23:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PhotonPersistentDisk\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.PhotonPersistentDisk == nil {\n\t\t\t\tm.PhotonPersistentDisk = &PhotonPersistentDiskVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.PhotonPersistentDisk.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 24:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PortworxVolume\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.PortworxVolume == nil {\n\t\t\t\tm.PortworxVolume = &PortworxVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.PortworxVolume.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 25:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ScaleIO\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ScaleIO == nil {\n\t\t\t\tm.ScaleIO = &ScaleIOVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.ScaleIO.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 26:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Projected\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Projected == nil {\n\t\t\t\tm.Projected = &ProjectedVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.Projected.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 27:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StorageOS\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.StorageOS == nil {\n\t\t\t\tm.StorageOS = &StorageOSVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.StorageOS.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 28:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CSI\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.CSI == nil {\n\t\t\t\tm.CSI = &CSIVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.CSI.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 29:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ephemeral\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Ephemeral == nil {\n\t\t\t\tm.Ephemeral = &EphemeralVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.Ephemeral.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 30:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Image\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Image == nil {\n\t\t\t\tm.Image = &ImageVolumeSource{}\n\t\t\t}\n\t\t\tif err := m.Image.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VsphereVirtualDiskVolumeSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VsphereVirtualDiskVolumeSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VsphereVirtualDiskVolumeSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumePath\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumePath = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FSType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StoragePolicyName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.StoragePolicyName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StoragePolicyID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.StoragePolicyID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *WeightedPodAffinityTerm) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: WeightedPodAffinityTerm: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: WeightedPodAffinityTerm: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Weight\", wireType)\n\t\t\t}\n\t\t\tm.Weight = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Weight |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodAffinityTerm\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.PodAffinityTerm.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *WindowsSecurityContextOptions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: WindowsSecurityContextOptions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: WindowsSecurityContextOptions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field GMSACredentialSpecName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.GMSACredentialSpecName = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field GMSACredentialSpec\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.GMSACredentialSpec = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RunAsUserName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.RunAsUserName = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HostProcess\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.HostProcess = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/core/v1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.core.v1;\n\nimport \"k8s.io/apimachinery/pkg/api/resource/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/util/intstr/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/core/v1\";\n\n// Represents a Persistent Disk resource in AWS.\n//\n// An AWS EBS disk must exist before mounting to a container. The disk\n// must also be in the same AWS zone as the kubelet. An AWS EBS disk\n// can only be mounted as read/write once. AWS EBS volumes support\n// ownership management and SELinux relabeling.\nmessage AWSElasticBlockStoreVolumeSource {\n  // volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume).\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\n  optional string volumeID = 1;\n\n  // fsType is the filesystem type of the volume that you want to mount.\n  // Tip: Ensure that the filesystem type is supported by the host operating system.\n  // Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\n  // TODO: how do we prevent errors in the filesystem from compromising the machine\n  // +optional\n  optional string fsType = 2;\n\n  // partition is the partition in the volume that you want to mount.\n  // If omitted, the default is to mount by volume name.\n  // Examples: For volume /dev/sda1, you specify the partition as \"1\".\n  // Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty).\n  // +optional\n  optional int32 partition = 3;\n\n  // readOnly value true will force the readOnly setting in VolumeMounts.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\n  // +optional\n  optional bool readOnly = 4;\n}\n\n// Affinity is a group of affinity scheduling rules.\nmessage Affinity {\n  // Describes node affinity scheduling rules for the pod.\n  // +optional\n  optional NodeAffinity nodeAffinity = 1;\n\n  // Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\n  // +optional\n  optional PodAffinity podAffinity = 2;\n\n  // Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).\n  // +optional\n  optional PodAntiAffinity podAntiAffinity = 3;\n}\n\n// AppArmorProfile defines a pod or container's AppArmor settings.\n// +union\nmessage AppArmorProfile {\n  // type indicates which kind of AppArmor profile will be applied.\n  // Valid options are:\n  //   Localhost - a profile pre-loaded on the node.\n  //   RuntimeDefault - the container runtime's default profile.\n  //   Unconfined - no AppArmor enforcement.\n  // +unionDiscriminator\n  optional string type = 1;\n\n  // localhostProfile indicates a profile loaded on the node that should be used.\n  // The profile must be preconfigured on the node to work.\n  // Must match the loaded name of the profile.\n  // Must be set if and only if type is \"Localhost\".\n  // +optional\n  optional string localhostProfile = 2;\n}\n\n// AttachedVolume describes a volume attached to a node\nmessage AttachedVolume {\n  // Name of the attached volume\n  optional string name = 1;\n\n  // DevicePath represents the device path where the volume should be available\n  optional string devicePath = 2;\n}\n\n// AvoidPods describes pods that should avoid this node. This is the value for a\n// Node annotation with key scheduler.alpha.kubernetes.io/preferAvoidPods and\n// will eventually become a field of NodeStatus.\nmessage AvoidPods {\n  // Bounded-sized list of signatures of pods that should avoid this node, sorted\n  // in timestamp order from oldest to newest. Size of the slice is unspecified.\n  // +optional\n  // +listType=atomic\n  repeated PreferAvoidPodsEntry preferAvoidPods = 1;\n}\n\n// AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\nmessage AzureDiskVolumeSource {\n  // diskName is the Name of the data disk in the blob storage\n  optional string diskName = 1;\n\n  // diskURI is the URI of data disk in the blob storage\n  optional string diskURI = 2;\n\n  // cachingMode is the Host Caching mode: None, Read Only, Read Write.\n  // +optional\n  // +default=ref(AzureDataDiskCachingReadWrite)\n  optional string cachingMode = 3;\n\n  // fsType is Filesystem type to mount.\n  // Must be a filesystem type supported by the host operating system.\n  // Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n  // +optional\n  // +default=\"ext4\"\n  optional string fsType = 4;\n\n  // readOnly Defaults to false (read/write). ReadOnly here will force\n  // the ReadOnly setting in VolumeMounts.\n  // +optional\n  // +default=false\n  optional bool readOnly = 5;\n\n  // kind expected values are Shared: multiple blob disks per storage account  Dedicated: single blob disk per storage account  Managed: azure managed data disk (only in managed availability set). defaults to shared\n  // +default=ref(AzureSharedBlobDisk)\n  optional string kind = 6;\n}\n\n// AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\nmessage AzureFilePersistentVolumeSource {\n  // secretName is the name of secret that contains Azure Storage Account Name and Key\n  optional string secretName = 1;\n\n  // shareName is the azure Share Name\n  optional string shareName = 2;\n\n  // readOnly defaults to false (read/write). ReadOnly here will force\n  // the ReadOnly setting in VolumeMounts.\n  // +optional\n  optional bool readOnly = 3;\n\n  // secretNamespace is the namespace of the secret that contains Azure Storage Account Name and Key\n  // default is the same as the Pod\n  // +optional\n  optional string secretNamespace = 4;\n}\n\n// AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\nmessage AzureFileVolumeSource {\n  // secretName is the  name of secret that contains Azure Storage Account Name and Key\n  optional string secretName = 1;\n\n  // shareName is the azure share Name\n  optional string shareName = 2;\n\n  // readOnly defaults to false (read/write). ReadOnly here will force\n  // the ReadOnly setting in VolumeMounts.\n  // +optional\n  optional bool readOnly = 3;\n}\n\n// Binding ties one object to another; for example, a pod is bound to a node by a scheduler.\nmessage Binding {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // The target object that you want to bind to the standard object.\n  optional ObjectReference target = 2;\n}\n\n// Represents storage that is managed by an external CSI volume driver\nmessage CSIPersistentVolumeSource {\n  // driver is the name of the driver to use for this volume.\n  // Required.\n  optional string driver = 1;\n\n  // volumeHandle is the unique volume name returned by the CSI volume\n  // plugin’s CreateVolume to refer to the volume on all subsequent calls.\n  // Required.\n  optional string volumeHandle = 2;\n\n  // readOnly value to pass to ControllerPublishVolumeRequest.\n  // Defaults to false (read/write).\n  // +optional\n  optional bool readOnly = 3;\n\n  // fsType to mount. Must be a filesystem type supported by the host operating system.\n  // Ex. \"ext4\", \"xfs\", \"ntfs\".\n  // +optional\n  optional string fsType = 4;\n\n  // volumeAttributes of the volume to publish.\n  // +optional\n  map<string, string> volumeAttributes = 5;\n\n  // controllerPublishSecretRef is a reference to the secret object containing\n  // sensitive information to pass to the CSI driver to complete the CSI\n  // ControllerPublishVolume and ControllerUnpublishVolume calls.\n  // This field is optional, and may be empty if no secret is required. If the\n  // secret object contains more than one secret, all secrets are passed.\n  // +optional\n  optional SecretReference controllerPublishSecretRef = 6;\n\n  // nodeStageSecretRef is a reference to the secret object containing sensitive\n  // information to pass to the CSI driver to complete the CSI NodeStageVolume\n  // and NodeStageVolume and NodeUnstageVolume calls.\n  // This field is optional, and may be empty if no secret is required. If the\n  // secret object contains more than one secret, all secrets are passed.\n  // +optional\n  optional SecretReference nodeStageSecretRef = 7;\n\n  // nodePublishSecretRef is a reference to the secret object containing\n  // sensitive information to pass to the CSI driver to complete the CSI\n  // NodePublishVolume and NodeUnpublishVolume calls.\n  // This field is optional, and may be empty if no secret is required. If the\n  // secret object contains more than one secret, all secrets are passed.\n  // +optional\n  optional SecretReference nodePublishSecretRef = 8;\n\n  // controllerExpandSecretRef is a reference to the secret object containing\n  // sensitive information to pass to the CSI driver to complete the CSI\n  // ControllerExpandVolume call.\n  // This field is optional, and may be empty if no secret is required. If the\n  // secret object contains more than one secret, all secrets are passed.\n  // +optional\n  optional SecretReference controllerExpandSecretRef = 9;\n\n  // nodeExpandSecretRef is a reference to the secret object containing\n  // sensitive information to pass to the CSI driver to complete the CSI\n  // NodeExpandVolume call.\n  // This field is optional, may be omitted if no secret is required. If the\n  // secret object contains more than one secret, all secrets are passed.\n  // +optional\n  optional SecretReference nodeExpandSecretRef = 10;\n}\n\n// Represents a source location of a volume to mount, managed by an external CSI driver\nmessage CSIVolumeSource {\n  // driver is the name of the CSI driver that handles this volume.\n  // Consult with your admin for the correct name as registered in the cluster.\n  optional string driver = 1;\n\n  // readOnly specifies a read-only configuration for the volume.\n  // Defaults to false (read/write).\n  // +optional\n  optional bool readOnly = 2;\n\n  // fsType to mount. Ex. \"ext4\", \"xfs\", \"ntfs\".\n  // If not provided, the empty value is passed to the associated CSI driver\n  // which will determine the default filesystem to apply.\n  // +optional\n  optional string fsType = 3;\n\n  // volumeAttributes stores driver-specific properties that are passed to the CSI\n  // driver. Consult your driver's documentation for supported values.\n  // +optional\n  map<string, string> volumeAttributes = 4;\n\n  // nodePublishSecretRef is a reference to the secret object containing\n  // sensitive information to pass to the CSI driver to complete the CSI\n  // NodePublishVolume and NodeUnpublishVolume calls.\n  // This field is optional, and  may be empty if no secret is required. If the\n  // secret object contains more than one secret, all secret references are passed.\n  // +optional\n  optional LocalObjectReference nodePublishSecretRef = 5;\n}\n\n// Adds and removes POSIX capabilities from running containers.\nmessage Capabilities {\n  // Added capabilities\n  // +optional\n  // +listType=atomic\n  repeated string add = 1;\n\n  // Removed capabilities\n  // +optional\n  // +listType=atomic\n  repeated string drop = 2;\n}\n\n// Represents a Ceph Filesystem mount that lasts the lifetime of a pod\n// Cephfs volumes do not support ownership management or SELinux relabeling.\nmessage CephFSPersistentVolumeSource {\n  // monitors is Required: Monitors is a collection of Ceph monitors\n  // More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n  // +listType=atomic\n  repeated string monitors = 1;\n\n  // path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\n  // +optional\n  optional string path = 2;\n\n  // user is Optional: User is the rados user name, default is admin\n  // More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n  // +optional\n  optional string user = 3;\n\n  // secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret\n  // More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n  // +optional\n  optional string secretFile = 4;\n\n  // secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty.\n  // More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n  // +optional\n  optional SecretReference secretRef = 5;\n\n  // readOnly is Optional: Defaults to false (read/write). ReadOnly here will force\n  // the ReadOnly setting in VolumeMounts.\n  // More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n  // +optional\n  optional bool readOnly = 6;\n}\n\n// Represents a Ceph Filesystem mount that lasts the lifetime of a pod\n// Cephfs volumes do not support ownership management or SELinux relabeling.\nmessage CephFSVolumeSource {\n  // monitors is Required: Monitors is a collection of Ceph monitors\n  // More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n  // +listType=atomic\n  repeated string monitors = 1;\n\n  // path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\n  // +optional\n  optional string path = 2;\n\n  // user is optional: User is the rados user name, default is admin\n  // More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n  // +optional\n  optional string user = 3;\n\n  // secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret\n  // More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n  // +optional\n  optional string secretFile = 4;\n\n  // secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty.\n  // More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n  // +optional\n  optional LocalObjectReference secretRef = 5;\n\n  // readOnly is Optional: Defaults to false (read/write). ReadOnly here will force\n  // the ReadOnly setting in VolumeMounts.\n  // More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n  // +optional\n  optional bool readOnly = 6;\n}\n\n// Represents a cinder volume resource in Openstack.\n// A Cinder volume must exist before mounting to a container.\n// The volume must also be in the same region as the kubelet.\n// Cinder volumes support ownership management and SELinux relabeling.\nmessage CinderPersistentVolumeSource {\n  // volumeID used to identify the volume in cinder.\n  // More info: https://examples.k8s.io/mysql-cinder-pd/README.md\n  optional string volumeID = 1;\n\n  // fsType Filesystem type to mount.\n  // Must be a filesystem type supported by the host operating system.\n  // Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n  // More info: https://examples.k8s.io/mysql-cinder-pd/README.md\n  // +optional\n  optional string fsType = 2;\n\n  // readOnly is Optional: Defaults to false (read/write). ReadOnly here will force\n  // the ReadOnly setting in VolumeMounts.\n  // More info: https://examples.k8s.io/mysql-cinder-pd/README.md\n  // +optional\n  optional bool readOnly = 3;\n\n  // secretRef is Optional: points to a secret object containing parameters used to connect\n  // to OpenStack.\n  // +optional\n  optional SecretReference secretRef = 4;\n}\n\n// Represents a cinder volume resource in Openstack.\n// A Cinder volume must exist before mounting to a container.\n// The volume must also be in the same region as the kubelet.\n// Cinder volumes support ownership management and SELinux relabeling.\nmessage CinderVolumeSource {\n  // volumeID used to identify the volume in cinder.\n  // More info: https://examples.k8s.io/mysql-cinder-pd/README.md\n  optional string volumeID = 1;\n\n  // fsType is the filesystem type to mount.\n  // Must be a filesystem type supported by the host operating system.\n  // Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n  // More info: https://examples.k8s.io/mysql-cinder-pd/README.md\n  // +optional\n  optional string fsType = 2;\n\n  // readOnly defaults to false (read/write). ReadOnly here will force\n  // the ReadOnly setting in VolumeMounts.\n  // More info: https://examples.k8s.io/mysql-cinder-pd/README.md\n  // +optional\n  optional bool readOnly = 3;\n\n  // secretRef is optional: points to a secret object containing parameters used to connect\n  // to OpenStack.\n  // +optional\n  optional LocalObjectReference secretRef = 4;\n}\n\n// ClientIPConfig represents the configurations of Client IP based session affinity.\nmessage ClientIPConfig {\n  // timeoutSeconds specifies the seconds of ClientIP type session sticky time.\n  // The value must be >0 && <=86400(for 1 day) if ServiceAffinity == \"ClientIP\".\n  // Default value is 10800(for 3 hours).\n  // +optional\n  optional int32 timeoutSeconds = 1;\n}\n\n// ClusterTrustBundleProjection describes how to select a set of\n// ClusterTrustBundle objects and project their contents into the pod\n// filesystem.\nmessage ClusterTrustBundleProjection {\n  // Select a single ClusterTrustBundle by object name.  Mutually-exclusive\n  // with signerName and labelSelector.\n  // +optional\n  optional string name = 1;\n\n  // Select all ClusterTrustBundles that match this signer name.\n  // Mutually-exclusive with name.  The contents of all selected\n  // ClusterTrustBundles will be unified and deduplicated.\n  // +optional\n  optional string signerName = 2;\n\n  // Select all ClusterTrustBundles that match this label selector.  Only has\n  // effect if signerName is set.  Mutually-exclusive with name.  If unset,\n  // interpreted as \"match nothing\".  If set but empty, interpreted as \"match\n  // everything\".\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector labelSelector = 3;\n\n  // If true, don't block pod startup if the referenced ClusterTrustBundle(s)\n  // aren't available.  If using name, then the named ClusterTrustBundle is\n  // allowed not to exist.  If using signerName, then the combination of\n  // signerName and labelSelector is allowed to match zero\n  // ClusterTrustBundles.\n  // +optional\n  optional bool optional = 5;\n\n  // Relative path from the volume root to write the bundle.\n  optional string path = 4;\n}\n\n// Information about the condition of a component.\nmessage ComponentCondition {\n  // Type of condition for a component.\n  // Valid value: \"Healthy\"\n  optional string type = 1;\n\n  // Status of the condition for a component.\n  // Valid values for \"Healthy\": \"True\", \"False\", or \"Unknown\".\n  optional string status = 2;\n\n  // Message about the condition for a component.\n  // For example, information about a health check.\n  // +optional\n  optional string message = 3;\n\n  // Condition error code for a component.\n  // For example, a health check error code.\n  // +optional\n  optional string error = 4;\n}\n\n// ComponentStatus (and ComponentStatusList) holds the cluster validation info.\n// Deprecated: This API is deprecated in v1.19+\nmessage ComponentStatus {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // List of component conditions observed\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=type\n  repeated ComponentCondition conditions = 2;\n}\n\n// Status of all the conditions for the component as a list of ComponentStatus objects.\n// Deprecated: This API is deprecated in v1.19+\nmessage ComponentStatusList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of ComponentStatus objects.\n  repeated ComponentStatus items = 2;\n}\n\n// ConfigMap holds configuration data for pods to consume.\nmessage ConfigMap {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Immutable, if set to true, ensures that data stored in the ConfigMap cannot\n  // be updated (only object metadata can be modified).\n  // If not set to true, the field can be modified at any time.\n  // Defaulted to nil.\n  // +optional\n  optional bool immutable = 4;\n\n  // Data contains the configuration data.\n  // Each key must consist of alphanumeric characters, '-', '_' or '.'.\n  // Values with non-UTF-8 byte sequences must use the BinaryData field.\n  // The keys stored in Data must not overlap with the keys in\n  // the BinaryData field, this is enforced during validation process.\n  // +optional\n  map<string, string> data = 2;\n\n  // BinaryData contains the binary data.\n  // Each key must consist of alphanumeric characters, '-', '_' or '.'.\n  // BinaryData can contain byte sequences that are not in the UTF-8 range.\n  // The keys stored in BinaryData must not overlap with the ones in\n  // the Data field, this is enforced during validation process.\n  // Using this field will require 1.10+ apiserver and\n  // kubelet.\n  // +optional\n  map<string, bytes> binaryData = 3;\n}\n\n// ConfigMapEnvSource selects a ConfigMap to populate the environment\n// variables with.\n//\n// The contents of the target ConfigMap's Data field will represent the\n// key-value pairs as environment variables.\nmessage ConfigMapEnvSource {\n  // The ConfigMap to select from.\n  optional LocalObjectReference localObjectReference = 1;\n\n  // Specify whether the ConfigMap must be defined\n  // +optional\n  optional bool optional = 2;\n}\n\n// Selects a key from a ConfigMap.\n// +structType=atomic\nmessage ConfigMapKeySelector {\n  // The ConfigMap to select from.\n  optional LocalObjectReference localObjectReference = 1;\n\n  // The key to select.\n  optional string key = 2;\n\n  // Specify whether the ConfigMap or its key must be defined\n  // +optional\n  optional bool optional = 3;\n}\n\n// ConfigMapList is a resource containing a list of ConfigMap objects.\nmessage ConfigMapList {\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is the list of ConfigMaps.\n  repeated ConfigMap items = 2;\n}\n\n// ConfigMapNodeConfigSource contains the information to reference a ConfigMap as a config source for the Node.\n// This API is deprecated since 1.22: https://git.k8s.io/enhancements/keps/sig-node/281-dynamic-kubelet-configuration\nmessage ConfigMapNodeConfigSource {\n  // Namespace is the metadata.namespace of the referenced ConfigMap.\n  // This field is required in all cases.\n  optional string namespace = 1;\n\n  // Name is the metadata.name of the referenced ConfigMap.\n  // This field is required in all cases.\n  optional string name = 2;\n\n  // UID is the metadata.UID of the referenced ConfigMap.\n  // This field is forbidden in Node.Spec, and required in Node.Status.\n  // +optional\n  optional string uid = 3;\n\n  // ResourceVersion is the metadata.ResourceVersion of the referenced ConfigMap.\n  // This field is forbidden in Node.Spec, and required in Node.Status.\n  // +optional\n  optional string resourceVersion = 4;\n\n  // KubeletConfigKey declares which key of the referenced ConfigMap corresponds to the KubeletConfiguration structure\n  // This field is required in all cases.\n  optional string kubeletConfigKey = 5;\n}\n\n// Adapts a ConfigMap into a projected volume.\n//\n// The contents of the target ConfigMap's Data field will be presented in a\n// projected volume as files using the keys in the Data field as the file names,\n// unless the items element is populated with specific mappings of keys to paths.\n// Note that this is identical to a configmap volume source without the default\n// mode.\nmessage ConfigMapProjection {\n  optional LocalObjectReference localObjectReference = 1;\n\n  // items if unspecified, each key-value pair in the Data field of the referenced\n  // ConfigMap will be projected into the volume as a file whose name is the\n  // key and content is the value. If specified, the listed keys will be\n  // projected into the specified paths, and unlisted keys will not be\n  // present. If a key is specified which is not present in the ConfigMap,\n  // the volume setup will error unless it is marked optional. Paths must be\n  // relative and may not contain the '..' path or start with '..'.\n  // +optional\n  // +listType=atomic\n  repeated KeyToPath items = 2;\n\n  // optional specify whether the ConfigMap or its keys must be defined\n  // +optional\n  optional bool optional = 4;\n}\n\n// Adapts a ConfigMap into a volume.\n//\n// The contents of the target ConfigMap's Data field will be presented in a\n// volume as files using the keys in the Data field as the file names, unless\n// the items element is populated with specific mappings of keys to paths.\n// ConfigMap volumes support ownership management and SELinux relabeling.\nmessage ConfigMapVolumeSource {\n  optional LocalObjectReference localObjectReference = 1;\n\n  // items if unspecified, each key-value pair in the Data field of the referenced\n  // ConfigMap will be projected into the volume as a file whose name is the\n  // key and content is the value. If specified, the listed keys will be\n  // projected into the specified paths, and unlisted keys will not be\n  // present. If a key is specified which is not present in the ConfigMap,\n  // the volume setup will error unless it is marked optional. Paths must be\n  // relative and may not contain the '..' path or start with '..'.\n  // +optional\n  // +listType=atomic\n  repeated KeyToPath items = 2;\n\n  // defaultMode is optional: mode bits used to set permissions on created files by default.\n  // Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\n  // YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\n  // Defaults to 0644.\n  // Directories within the path are not affected by this setting.\n  // This might be in conflict with other options that affect the file\n  // mode, like fsGroup, and the result can be other mode bits set.\n  // +optional\n  optional int32 defaultMode = 3;\n\n  // optional specify whether the ConfigMap or its keys must be defined\n  // +optional\n  optional bool optional = 4;\n}\n\n// A single application container that you want to run within a pod.\nmessage Container {\n  // Name of the container specified as a DNS_LABEL.\n  // Each container in a pod must have a unique name (DNS_LABEL).\n  // Cannot be updated.\n  optional string name = 1;\n\n  // Container image name.\n  // More info: https://kubernetes.io/docs/concepts/containers/images\n  // This field is optional to allow higher level config management to default or override\n  // container images in workload controllers like Deployments and StatefulSets.\n  // +optional\n  optional string image = 2;\n\n  // Entrypoint array. Not executed within a shell.\n  // The container image's ENTRYPOINT is used if this is not provided.\n  // Variable references $(VAR_NAME) are expanded using the container's environment. If a variable\n  // cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\n  // to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will\n  // produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless\n  // of whether the variable exists or not. Cannot be updated.\n  // More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\n  // +optional\n  // +listType=atomic\n  repeated string command = 3;\n\n  // Arguments to the entrypoint.\n  // The container image's CMD is used if this is not provided.\n  // Variable references $(VAR_NAME) are expanded using the container's environment. If a variable\n  // cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\n  // to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will\n  // produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless\n  // of whether the variable exists or not. Cannot be updated.\n  // More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\n  // +optional\n  // +listType=atomic\n  repeated string args = 4;\n\n  // Container's working directory.\n  // If not specified, the container runtime's default will be used, which\n  // might be configured in the container image.\n  // Cannot be updated.\n  // +optional\n  optional string workingDir = 5;\n\n  // List of ports to expose from the container. Not specifying a port here\n  // DOES NOT prevent that port from being exposed. Any port which is\n  // listening on the default \"0.0.0.0\" address inside a container will be\n  // accessible from the network.\n  // Modifying this array with strategic merge patch may corrupt the data.\n  // For more information See https://github.com/kubernetes/kubernetes/issues/108255.\n  // Cannot be updated.\n  // +optional\n  // +patchMergeKey=containerPort\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=containerPort\n  // +listMapKey=protocol\n  repeated ContainerPort ports = 6;\n\n  // List of sources to populate environment variables in the container.\n  // The keys defined within a source must be a C_IDENTIFIER. All invalid keys\n  // will be reported as an event when the container is starting. When a key exists in multiple\n  // sources, the value associated with the last source will take precedence.\n  // Values defined by an Env with a duplicate key will take precedence.\n  // Cannot be updated.\n  // +optional\n  // +listType=atomic\n  repeated EnvFromSource envFrom = 19;\n\n  // List of environment variables to set in the container.\n  // Cannot be updated.\n  // +optional\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=name\n  repeated EnvVar env = 7;\n\n  // Compute Resources required by this container.\n  // Cannot be updated.\n  // More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\n  // +optional\n  optional ResourceRequirements resources = 8;\n\n  // Resources resize policy for the container.\n  // +featureGate=InPlacePodVerticalScaling\n  // +optional\n  // +listType=atomic\n  repeated ContainerResizePolicy resizePolicy = 23;\n\n  // RestartPolicy defines the restart behavior of individual containers in a pod.\n  // This field may only be set for init containers, and the only allowed value is \"Always\".\n  // For non-init containers or when this field is not specified,\n  // the restart behavior is defined by the Pod's restart policy and the container type.\n  // Setting the RestartPolicy as \"Always\" for the init container will have the following effect:\n  // this init container will be continually restarted on\n  // exit until all regular containers have terminated. Once all regular\n  // containers have completed, all init containers with restartPolicy \"Always\"\n  // will be shut down. This lifecycle differs from normal init containers and\n  // is often referred to as a \"sidecar\" container. Although this init\n  // container still starts in the init container sequence, it does not wait\n  // for the container to complete before proceeding to the next init\n  // container. Instead, the next init container starts immediately after this\n  // init container is started, or after any startupProbe has successfully\n  // completed.\n  // +featureGate=SidecarContainers\n  // +optional\n  optional string restartPolicy = 24;\n\n  // Pod volumes to mount into the container's filesystem.\n  // Cannot be updated.\n  // +optional\n  // +patchMergeKey=mountPath\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=mountPath\n  repeated VolumeMount volumeMounts = 9;\n\n  // volumeDevices is the list of block devices to be used by the container.\n  // +patchMergeKey=devicePath\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=devicePath\n  // +optional\n  repeated VolumeDevice volumeDevices = 21;\n\n  // Periodic probe of container liveness.\n  // Container will be restarted if the probe fails.\n  // Cannot be updated.\n  // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\n  // +optional\n  optional Probe livenessProbe = 10;\n\n  // Periodic probe of container service readiness.\n  // Container will be removed from service endpoints if the probe fails.\n  // Cannot be updated.\n  // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\n  // +optional\n  optional Probe readinessProbe = 11;\n\n  // StartupProbe indicates that the Pod has successfully initialized.\n  // If specified, no other probes are executed until this completes successfully.\n  // If this probe fails, the Pod will be restarted, just as if the livenessProbe failed.\n  // This can be used to provide different probe parameters at the beginning of a Pod's lifecycle,\n  // when it might take a long time to load data or warm a cache, than during steady-state operation.\n  // This cannot be updated.\n  // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\n  // +optional\n  optional Probe startupProbe = 22;\n\n  // Actions that the management system should take in response to container lifecycle events.\n  // Cannot be updated.\n  // +optional\n  optional Lifecycle lifecycle = 12;\n\n  // Optional: Path at which the file to which the container's termination message\n  // will be written is mounted into the container's filesystem.\n  // Message written is intended to be brief final status, such as an assertion failure message.\n  // Will be truncated by the node if greater than 4096 bytes. The total message length across\n  // all containers will be limited to 12kb.\n  // Defaults to /dev/termination-log.\n  // Cannot be updated.\n  // +optional\n  optional string terminationMessagePath = 13;\n\n  // Indicate how the termination message should be populated. File will use the contents of\n  // terminationMessagePath to populate the container status message on both success and failure.\n  // FallbackToLogsOnError will use the last chunk of container log output if the termination\n  // message file is empty and the container exited with an error.\n  // The log output is limited to 2048 bytes or 80 lines, whichever is smaller.\n  // Defaults to File.\n  // Cannot be updated.\n  // +optional\n  optional string terminationMessagePolicy = 20;\n\n  // Image pull policy.\n  // One of Always, Never, IfNotPresent.\n  // Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.\n  // Cannot be updated.\n  // More info: https://kubernetes.io/docs/concepts/containers/images#updating-images\n  // +optional\n  optional string imagePullPolicy = 14;\n\n  // SecurityContext defines the security options the container should be run with.\n  // If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\n  // More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\n  // +optional\n  optional SecurityContext securityContext = 15;\n\n  // Whether this container should allocate a buffer for stdin in the container runtime. If this\n  // is not set, reads from stdin in the container will always result in EOF.\n  // Default is false.\n  // +optional\n  optional bool stdin = 16;\n\n  // Whether the container runtime should close the stdin channel after it has been opened by\n  // a single attach. When stdin is true the stdin stream will remain open across multiple attach\n  // sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\n  // first client attaches to stdin, and then remains open and accepts data until the client disconnects,\n  // at which time stdin is closed and remains closed until the container is restarted. If this\n  // flag is false, a container processes that reads from stdin will never receive an EOF.\n  // Default is false\n  // +optional\n  optional bool stdinOnce = 17;\n\n  // Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\n  // Default is false.\n  // +optional\n  optional bool tty = 18;\n}\n\n// Describe a container image\nmessage ContainerImage {\n  // Names by which this image is known.\n  // e.g. [\"kubernetes.example/hyperkube:v1.0.7\", \"cloud-vendor.registry.example/cloud-vendor/hyperkube:v1.0.7\"]\n  // +optional\n  // +listType=atomic\n  repeated string names = 1;\n\n  // The size of the image in bytes.\n  // +optional\n  optional int64 sizeBytes = 2;\n}\n\n// ContainerPort represents a network port in a single container.\nmessage ContainerPort {\n  // If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\n  // named port in a pod must have a unique name. Name for the port that can be\n  // referred to by services.\n  // +optional\n  optional string name = 1;\n\n  // Number of port to expose on the host.\n  // If specified, this must be a valid port number, 0 < x < 65536.\n  // If HostNetwork is specified, this must match ContainerPort.\n  // Most containers do not need this.\n  // +optional\n  optional int32 hostPort = 2;\n\n  // Number of port to expose on the pod's IP address.\n  // This must be a valid port number, 0 < x < 65536.\n  optional int32 containerPort = 3;\n\n  // Protocol for port. Must be UDP, TCP, or SCTP.\n  // Defaults to \"TCP\".\n  // +optional\n  // +default=\"TCP\"\n  optional string protocol = 4;\n\n  // What host IP to bind the external port to.\n  // +optional\n  optional string hostIP = 5;\n}\n\n// ContainerResizePolicy represents resource resize policy for the container.\nmessage ContainerResizePolicy {\n  // Name of the resource to which this resource resize policy applies.\n  // Supported values: cpu, memory.\n  optional string resourceName = 1;\n\n  // Restart policy to apply when specified resource is resized.\n  // If not specified, it defaults to NotRequired.\n  optional string restartPolicy = 2;\n}\n\n// ContainerState holds a possible state of container.\n// Only one of its members may be specified.\n// If none of them is specified, the default one is ContainerStateWaiting.\nmessage ContainerState {\n  // Details about a waiting container\n  // +optional\n  optional ContainerStateWaiting waiting = 1;\n\n  // Details about a running container\n  // +optional\n  optional ContainerStateRunning running = 2;\n\n  // Details about a terminated container\n  // +optional\n  optional ContainerStateTerminated terminated = 3;\n}\n\n// ContainerStateRunning is a running state of a container.\nmessage ContainerStateRunning {\n  // Time at which the container was last (re-)started\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startedAt = 1;\n}\n\n// ContainerStateTerminated is a terminated state of a container.\nmessage ContainerStateTerminated {\n  // Exit status from the last termination of the container\n  optional int32 exitCode = 1;\n\n  // Signal from the last termination of the container\n  // +optional\n  optional int32 signal = 2;\n\n  // (brief) reason from the last termination of the container\n  // +optional\n  optional string reason = 3;\n\n  // Message regarding the last termination of the container\n  // +optional\n  optional string message = 4;\n\n  // Time at which previous execution of the container started\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startedAt = 5;\n\n  // Time at which the container last terminated\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time finishedAt = 6;\n\n  // Container's ID in the format '<type>://<container_id>'\n  // +optional\n  optional string containerID = 7;\n}\n\n// ContainerStateWaiting is a waiting state of a container.\nmessage ContainerStateWaiting {\n  // (brief) reason the container is not yet running.\n  // +optional\n  optional string reason = 1;\n\n  // Message regarding why the container is not yet running.\n  // +optional\n  optional string message = 2;\n}\n\n// ContainerStatus contains details for the current status of this container.\nmessage ContainerStatus {\n  // Name is a DNS_LABEL representing the unique name of the container.\n  // Each container in a pod must have a unique name across all container types.\n  // Cannot be updated.\n  optional string name = 1;\n\n  // State holds details about the container's current condition.\n  // +optional\n  optional ContainerState state = 2;\n\n  // LastTerminationState holds the last termination state of the container to\n  // help debug container crashes and restarts. This field is not\n  // populated if the container is still running and RestartCount is 0.\n  // +optional\n  optional ContainerState lastState = 3;\n\n  // Ready specifies whether the container is currently passing its readiness check.\n  // The value will change as readiness probes keep executing. If no readiness\n  // probes are specified, this field defaults to true once the container is\n  // fully started (see Started field).\n  //\n  // The value is typically used to determine whether a container is ready to\n  // accept traffic.\n  optional bool ready = 4;\n\n  // RestartCount holds the number of times the container has been restarted.\n  // Kubelet makes an effort to always increment the value, but there\n  // are cases when the state may be lost due to node restarts and then the value\n  // may be reset to 0. The value is never negative.\n  optional int32 restartCount = 5;\n\n  // Image is the name of container image that the container is running.\n  // The container image may not match the image used in the PodSpec,\n  // as it may have been resolved by the runtime.\n  // More info: https://kubernetes.io/docs/concepts/containers/images.\n  optional string image = 6;\n\n  // ImageID is the image ID of the container's image. The image ID may not\n  // match the image ID of the image used in the PodSpec, as it may have been\n  // resolved by the runtime.\n  optional string imageID = 7;\n\n  // ContainerID is the ID of the container in the format '<type>://<container_id>'.\n  // Where type is a container runtime identifier, returned from Version call of CRI API\n  // (for example \"containerd\").\n  // +optional\n  optional string containerID = 8;\n\n  // Started indicates whether the container has finished its postStart lifecycle hook\n  // and passed its startup probe.\n  // Initialized as false, becomes true after startupProbe is considered\n  // successful. Resets to false when the container is restarted, or if kubelet\n  // loses state temporarily. In both cases, startup probes will run again.\n  // Is always true when no startupProbe is defined and container is running and\n  // has passed the postStart lifecycle hook. The null value must be treated the\n  // same as false.\n  // +optional\n  optional bool started = 9;\n\n  // AllocatedResources represents the compute resources allocated for this container by the\n  // node. Kubelet sets this value to Container.Resources.Requests upon successful pod admission\n  // and after successfully admitting desired pod resize.\n  // +featureGate=InPlacePodVerticalScalingAllocatedStatus\n  // +optional\n  map<string, .k8s.io.apimachinery.pkg.api.resource.Quantity> allocatedResources = 10;\n\n  // Resources represents the compute resource requests and limits that have been successfully\n  // enacted on the running container after it has been started or has been successfully resized.\n  // +featureGate=InPlacePodVerticalScaling\n  // +optional\n  optional ResourceRequirements resources = 11;\n\n  // Status of volume mounts.\n  // +optional\n  // +patchMergeKey=mountPath\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=mountPath\n  // +featureGate=RecursiveReadOnlyMounts\n  repeated VolumeMountStatus volumeMounts = 12;\n\n  // User represents user identity information initially attached to the first process of the container\n  // +featureGate=SupplementalGroupsPolicy\n  // +optional\n  optional ContainerUser user = 13;\n\n  // AllocatedResourcesStatus represents the status of various resources\n  // allocated for this Pod.\n  // +featureGate=ResourceHealthStatus\n  // +optional\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=name\n  repeated ResourceStatus allocatedResourcesStatus = 14;\n}\n\n// ContainerUser represents user identity information\nmessage ContainerUser {\n  // Linux holds user identity information initially attached to the first process of the containers in Linux.\n  // Note that the actual running identity can be changed if the process has enough privilege to do so.\n  // +optional\n  optional LinuxContainerUser linux = 1;\n}\n\n// DaemonEndpoint contains information about a single Daemon endpoint.\nmessage DaemonEndpoint {\n  // Port number of the given endpoint.\n  optional int32 Port = 1;\n}\n\n// Represents downward API info for projecting into a projected volume.\n// Note that this is identical to a downwardAPI volume source without the default\n// mode.\nmessage DownwardAPIProjection {\n  // Items is a list of DownwardAPIVolume file\n  // +optional\n  // +listType=atomic\n  repeated DownwardAPIVolumeFile items = 1;\n}\n\n// DownwardAPIVolumeFile represents information to create the file containing the pod field\nmessage DownwardAPIVolumeFile {\n  // Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\n  optional string path = 1;\n\n  // Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.\n  // +optional\n  optional ObjectFieldSelector fieldRef = 2;\n\n  // Selects a resource of the container: only resources limits and requests\n  // (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\n  // +optional\n  optional ResourceFieldSelector resourceFieldRef = 3;\n\n  // Optional: mode bits used to set permissions on this file, must be an octal value\n  // between 0000 and 0777 or a decimal value between 0 and 511.\n  // YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\n  // If not specified, the volume defaultMode will be used.\n  // This might be in conflict with other options that affect the file\n  // mode, like fsGroup, and the result can be other mode bits set.\n  // +optional\n  optional int32 mode = 4;\n}\n\n// DownwardAPIVolumeSource represents a volume containing downward API info.\n// Downward API volumes support ownership management and SELinux relabeling.\nmessage DownwardAPIVolumeSource {\n  // Items is a list of downward API volume file\n  // +optional\n  // +listType=atomic\n  repeated DownwardAPIVolumeFile items = 1;\n\n  // Optional: mode bits to use on created files by default. Must be a\n  // Optional: mode bits used to set permissions on created files by default.\n  // Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\n  // YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\n  // Defaults to 0644.\n  // Directories within the path are not affected by this setting.\n  // This might be in conflict with other options that affect the file\n  // mode, like fsGroup, and the result can be other mode bits set.\n  // +optional\n  optional int32 defaultMode = 2;\n}\n\n// Represents an empty directory for a pod.\n// Empty directory volumes support ownership management and SELinux relabeling.\nmessage EmptyDirVolumeSource {\n  // medium represents what type of storage medium should back this directory.\n  // The default is \"\" which means to use the node's default medium.\n  // Must be an empty string (default) or Memory.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\n  // +optional\n  optional string medium = 1;\n\n  // sizeLimit is the total amount of local storage required for this EmptyDir volume.\n  // The size limit is also applicable for memory medium.\n  // The maximum usage on memory medium EmptyDir would be the minimum value between\n  // the SizeLimit specified here and the sum of memory limits of all containers in a pod.\n  // The default is nil which means that the limit is undefined.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\n  // +optional\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity sizeLimit = 2;\n}\n\n// EndpointAddress is a tuple that describes single IP address.\n// +structType=atomic\nmessage EndpointAddress {\n  // The IP of this endpoint.\n  // May not be loopback (127.0.0.0/8 or ::1), link-local (169.254.0.0/16 or fe80::/10),\n  // or link-local multicast (224.0.0.0/24 or ff02::/16).\n  optional string ip = 1;\n\n  // The Hostname of this endpoint\n  // +optional\n  optional string hostname = 3;\n\n  // Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.\n  // +optional\n  optional string nodeName = 4;\n\n  // Reference to object providing the endpoint.\n  // +optional\n  optional ObjectReference targetRef = 2;\n}\n\n// EndpointPort is a tuple that describes a single port.\n// +structType=atomic\nmessage EndpointPort {\n  // The name of this port.  This must match the 'name' field in the\n  // corresponding ServicePort.\n  // Must be a DNS_LABEL.\n  // Optional only if one port is defined.\n  // +optional\n  optional string name = 1;\n\n  // The port number of the endpoint.\n  optional int32 port = 2;\n\n  // The IP protocol for this port.\n  // Must be UDP, TCP, or SCTP.\n  // Default is TCP.\n  // +optional\n  optional string protocol = 3;\n\n  // The application protocol for this port.\n  // This is used as a hint for implementations to offer richer behavior for protocols that they understand.\n  // This field follows standard Kubernetes label syntax.\n  // Valid values are either:\n  //\n  // * Un-prefixed protocol names - reserved for IANA standard service names (as per\n  // RFC-6335 and https://www.iana.org/assignments/service-names).\n  //\n  // * Kubernetes-defined prefixed names:\n  //   * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior-\n  //   * 'kubernetes.io/ws'  - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455\n  //   * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455\n  //\n  // * Other protocols should use implementation-defined prefixed names such as\n  // mycompany.com/my-custom-protocol.\n  // +optional\n  optional string appProtocol = 4;\n}\n\n// EndpointSubset is a group of addresses with a common set of ports. The\n// expanded set of endpoints is the Cartesian product of Addresses x Ports.\n// For example, given:\n//\n// \t{\n// \t  Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n// \t  Ports:     [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n// \t}\n//\n// The resulting set of endpoints can be viewed as:\n//\n// \ta: [ 10.10.1.1:8675, 10.10.2.2:8675 ],\n// \tb: [ 10.10.1.1:309, 10.10.2.2:309 ]\nmessage EndpointSubset {\n  // IP addresses which offer the related ports that are marked as ready. These endpoints\n  // should be considered safe for load balancers and clients to utilize.\n  // +optional\n  // +listType=atomic\n  repeated EndpointAddress addresses = 1;\n\n  // IP addresses which offer the related ports but are not currently marked as ready\n  // because they have not yet finished starting, have recently failed a readiness check,\n  // or have recently failed a liveness check.\n  // +optional\n  // +listType=atomic\n  repeated EndpointAddress notReadyAddresses = 2;\n\n  // Port numbers available on the related IP addresses.\n  // +optional\n  // +listType=atomic\n  repeated EndpointPort ports = 3;\n}\n\n// Endpoints is a collection of endpoints that implement the actual service. Example:\n//\n// \t Name: \"mysvc\",\n// \t Subsets: [\n// \t   {\n// \t     Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n// \t     Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n// \t   },\n// \t   {\n// \t     Addresses: [{\"ip\": \"10.10.3.3\"}],\n// \t     Ports: [{\"name\": \"a\", \"port\": 93}, {\"name\": \"b\", \"port\": 76}]\n// \t   },\n// \t]\nmessage Endpoints {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // The set of all endpoints is the union of all subsets. Addresses are placed into\n  // subsets according to the IPs they share. A single address with multiple ports,\n  // some of which are ready and some of which are not (because they come from\n  // different containers) will result in the address being displayed in different\n  // subsets for the different ports. No address will appear in both Addresses and\n  // NotReadyAddresses in the same subset.\n  // Sets of addresses and ports that comprise a service.\n  // +optional\n  // +listType=atomic\n  repeated EndpointSubset subsets = 2;\n}\n\n// EndpointsList is a list of endpoints.\nmessage EndpointsList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of endpoints.\n  repeated Endpoints items = 2;\n}\n\n// EnvFromSource represents the source of a set of ConfigMaps\nmessage EnvFromSource {\n  // An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\n  // +optional\n  optional string prefix = 1;\n\n  // The ConfigMap to select from\n  // +optional\n  optional ConfigMapEnvSource configMapRef = 2;\n\n  // The Secret to select from\n  // +optional\n  optional SecretEnvSource secretRef = 3;\n}\n\n// EnvVar represents an environment variable present in a Container.\nmessage EnvVar {\n  // Name of the environment variable. Must be a C_IDENTIFIER.\n  optional string name = 1;\n\n  // Variable references $(VAR_NAME) are expanded\n  // using the previously defined environment variables in the container and\n  // any service environment variables. If a variable cannot be resolved,\n  // the reference in the input string will be unchanged. Double $$ are reduced\n  // to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\n  // \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\".\n  // Escaped references will never be expanded, regardless of whether the variable\n  // exists or not.\n  // Defaults to \"\".\n  // +optional\n  optional string value = 2;\n\n  // Source for the environment variable's value. Cannot be used if value is not empty.\n  // +optional\n  optional EnvVarSource valueFrom = 3;\n}\n\n// EnvVarSource represents a source for the value of an EnvVar.\nmessage EnvVarSource {\n  // Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['<KEY>']`, `metadata.annotations['<KEY>']`,\n  // spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\n  // +optional\n  optional ObjectFieldSelector fieldRef = 1;\n\n  // Selects a resource of the container: only resources limits and requests\n  // (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\n  // +optional\n  optional ResourceFieldSelector resourceFieldRef = 2;\n\n  // Selects a key of a ConfigMap.\n  // +optional\n  optional ConfigMapKeySelector configMapKeyRef = 3;\n\n  // Selects a key of a secret in the pod's namespace\n  // +optional\n  optional SecretKeySelector secretKeyRef = 4;\n}\n\n// An EphemeralContainer is a temporary container that you may add to an existing Pod for\n// user-initiated activities such as debugging. Ephemeral containers have no resource or\n// scheduling guarantees, and they will not be restarted when they exit or when a Pod is\n// removed or restarted. The kubelet may evict a Pod if an ephemeral container causes the\n// Pod to exceed its resource allocation.\n//\n// To add an ephemeral container, use the ephemeralcontainers subresource of an existing\n// Pod. Ephemeral containers may not be removed or restarted.\nmessage EphemeralContainer {\n  // Ephemeral containers have all of the fields of Container, plus additional fields\n  // specific to ephemeral containers. Fields in common with Container are in the\n  // following inlined struct so than an EphemeralContainer may easily be converted\n  // to a Container.\n  optional EphemeralContainerCommon ephemeralContainerCommon = 1;\n\n  // If set, the name of the container from PodSpec that this ephemeral container targets.\n  // The ephemeral container will be run in the namespaces (IPC, PID, etc) of this container.\n  // If not set then the ephemeral container uses the namespaces configured in the Pod spec.\n  //\n  // The container runtime must implement support for this feature. If the runtime does not\n  // support namespace targeting then the result of setting this field is undefined.\n  // +optional\n  optional string targetContainerName = 2;\n}\n\n// EphemeralContainerCommon is a copy of all fields in Container to be inlined in\n// EphemeralContainer. This separate type allows easy conversion from EphemeralContainer\n// to Container and allows separate documentation for the fields of EphemeralContainer.\n// When a new field is added to Container it must be added here as well.\nmessage EphemeralContainerCommon {\n  // Name of the ephemeral container specified as a DNS_LABEL.\n  // This name must be unique among all containers, init containers and ephemeral containers.\n  optional string name = 1;\n\n  // Container image name.\n  // More info: https://kubernetes.io/docs/concepts/containers/images\n  optional string image = 2;\n\n  // Entrypoint array. Not executed within a shell.\n  // The image's ENTRYPOINT is used if this is not provided.\n  // Variable references $(VAR_NAME) are expanded using the container's environment. If a variable\n  // cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\n  // to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will\n  // produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless\n  // of whether the variable exists or not. Cannot be updated.\n  // More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\n  // +optional\n  // +listType=atomic\n  repeated string command = 3;\n\n  // Arguments to the entrypoint.\n  // The image's CMD is used if this is not provided.\n  // Variable references $(VAR_NAME) are expanded using the container's environment. If a variable\n  // cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\n  // to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will\n  // produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless\n  // of whether the variable exists or not. Cannot be updated.\n  // More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\n  // +optional\n  // +listType=atomic\n  repeated string args = 4;\n\n  // Container's working directory.\n  // If not specified, the container runtime's default will be used, which\n  // might be configured in the container image.\n  // Cannot be updated.\n  // +optional\n  optional string workingDir = 5;\n\n  // Ports are not allowed for ephemeral containers.\n  // +optional\n  // +patchMergeKey=containerPort\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=containerPort\n  // +listMapKey=protocol\n  repeated ContainerPort ports = 6;\n\n  // List of sources to populate environment variables in the container.\n  // The keys defined within a source must be a C_IDENTIFIER. All invalid keys\n  // will be reported as an event when the container is starting. When a key exists in multiple\n  // sources, the value associated with the last source will take precedence.\n  // Values defined by an Env with a duplicate key will take precedence.\n  // Cannot be updated.\n  // +optional\n  // +listType=atomic\n  repeated EnvFromSource envFrom = 19;\n\n  // List of environment variables to set in the container.\n  // Cannot be updated.\n  // +optional\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=name\n  repeated EnvVar env = 7;\n\n  // Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources\n  // already allocated to the pod.\n  // +optional\n  optional ResourceRequirements resources = 8;\n\n  // Resources resize policy for the container.\n  // +featureGate=InPlacePodVerticalScaling\n  // +optional\n  // +listType=atomic\n  repeated ContainerResizePolicy resizePolicy = 23;\n\n  // Restart policy for the container to manage the restart behavior of each\n  // container within a pod.\n  // This may only be set for init containers. You cannot set this field on\n  // ephemeral containers.\n  // +featureGate=SidecarContainers\n  // +optional\n  optional string restartPolicy = 24;\n\n  // Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers.\n  // Cannot be updated.\n  // +optional\n  // +patchMergeKey=mountPath\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=mountPath\n  repeated VolumeMount volumeMounts = 9;\n\n  // volumeDevices is the list of block devices to be used by the container.\n  // +patchMergeKey=devicePath\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=devicePath\n  // +optional\n  repeated VolumeDevice volumeDevices = 21;\n\n  // Probes are not allowed for ephemeral containers.\n  // +optional\n  optional Probe livenessProbe = 10;\n\n  // Probes are not allowed for ephemeral containers.\n  // +optional\n  optional Probe readinessProbe = 11;\n\n  // Probes are not allowed for ephemeral containers.\n  // +optional\n  optional Probe startupProbe = 22;\n\n  // Lifecycle is not allowed for ephemeral containers.\n  // +optional\n  optional Lifecycle lifecycle = 12;\n\n  // Optional: Path at which the file to which the container's termination message\n  // will be written is mounted into the container's filesystem.\n  // Message written is intended to be brief final status, such as an assertion failure message.\n  // Will be truncated by the node if greater than 4096 bytes. The total message length across\n  // all containers will be limited to 12kb.\n  // Defaults to /dev/termination-log.\n  // Cannot be updated.\n  // +optional\n  optional string terminationMessagePath = 13;\n\n  // Indicate how the termination message should be populated. File will use the contents of\n  // terminationMessagePath to populate the container status message on both success and failure.\n  // FallbackToLogsOnError will use the last chunk of container log output if the termination\n  // message file is empty and the container exited with an error.\n  // The log output is limited to 2048 bytes or 80 lines, whichever is smaller.\n  // Defaults to File.\n  // Cannot be updated.\n  // +optional\n  optional string terminationMessagePolicy = 20;\n\n  // Image pull policy.\n  // One of Always, Never, IfNotPresent.\n  // Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.\n  // Cannot be updated.\n  // More info: https://kubernetes.io/docs/concepts/containers/images#updating-images\n  // +optional\n  optional string imagePullPolicy = 14;\n\n  // Optional: SecurityContext defines the security options the ephemeral container should be run with.\n  // If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\n  // +optional\n  optional SecurityContext securityContext = 15;\n\n  // Whether this container should allocate a buffer for stdin in the container runtime. If this\n  // is not set, reads from stdin in the container will always result in EOF.\n  // Default is false.\n  // +optional\n  optional bool stdin = 16;\n\n  // Whether the container runtime should close the stdin channel after it has been opened by\n  // a single attach. When stdin is true the stdin stream will remain open across multiple attach\n  // sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\n  // first client attaches to stdin, and then remains open and accepts data until the client disconnects,\n  // at which time stdin is closed and remains closed until the container is restarted. If this\n  // flag is false, a container processes that reads from stdin will never receive an EOF.\n  // Default is false\n  // +optional\n  optional bool stdinOnce = 17;\n\n  // Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\n  // Default is false.\n  // +optional\n  optional bool tty = 18;\n}\n\n// Represents an ephemeral volume that is handled by a normal storage driver.\nmessage EphemeralVolumeSource {\n  // Will be used to create a stand-alone PVC to provision the volume.\n  // The pod in which this EphemeralVolumeSource is embedded will be the\n  // owner of the PVC, i.e. the PVC will be deleted together with the\n  // pod.  The name of the PVC will be `<pod name>-<volume name>` where\n  // `<volume name>` is the name from the `PodSpec.Volumes` array\n  // entry. Pod validation will reject the pod if the concatenated name\n  // is not valid for a PVC (for example, too long).\n  //\n  // An existing PVC with that name that is not owned by the pod\n  // will *not* be used for the pod to avoid using an unrelated\n  // volume by mistake. Starting the pod is then blocked until\n  // the unrelated PVC is removed. If such a pre-created PVC is\n  // meant to be used by the pod, the PVC has to updated with an\n  // owner reference to the pod once the pod exists. Normally\n  // this should not be necessary, but it may be useful when\n  // manually reconstructing a broken cluster.\n  //\n  // This field is read-only and no changes will be made by Kubernetes\n  // to the PVC after it has been created.\n  //\n  // Required, must not be nil.\n  optional PersistentVolumeClaimTemplate volumeClaimTemplate = 1;\n}\n\n// Event is a report of an event somewhere in the cluster.  Events\n// have a limited retention time and triggers and messages may evolve\n// with time.  Event consumers should not rely on the timing of an event\n// with a given Reason reflecting a consistent underlying trigger, or the\n// continued existence of events with that Reason.  Events should be\n// treated as informative, best-effort, supplemental data.\nmessage Event {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // The object that this event is about.\n  optional ObjectReference involvedObject = 2;\n\n  // This should be a short, machine understandable string that gives the reason\n  // for the transition into the object's current status.\n  // TODO: provide exact specification for format.\n  // +optional\n  optional string reason = 3;\n\n  // A human-readable description of the status of this operation.\n  // TODO: decide on maximum length.\n  // +optional\n  optional string message = 4;\n\n  // The component reporting this event. Should be a short machine understandable string.\n  // +optional\n  optional EventSource source = 5;\n\n  // The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time firstTimestamp = 6;\n\n  // The time at which the most recent occurrence of this event was recorded.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTimestamp = 7;\n\n  // The number of times this event has occurred.\n  // +optional\n  optional int32 count = 8;\n\n  // Type of this event (Normal, Warning), new types could be added in the future\n  // +optional\n  optional string type = 9;\n\n  // Time when this Event was first observed.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime eventTime = 10;\n\n  // Data about the Event series this event represents or nil if it's a singleton Event.\n  // +optional\n  optional EventSeries series = 11;\n\n  // What action was taken/failed regarding to the Regarding object.\n  // +optional\n  optional string action = 12;\n\n  // Optional secondary object for more complex actions.\n  // +optional\n  optional ObjectReference related = 13;\n\n  // Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.\n  // +optional\n  optional string reportingComponent = 14;\n\n  // ID of the controller instance, e.g. `kubelet-xyzf`.\n  // +optional\n  optional string reportingInstance = 15;\n}\n\n// EventList is a list of events.\nmessage EventList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of events\n  repeated Event items = 2;\n}\n\n// EventSeries contain information on series of events, i.e. thing that was/is happening\n// continuously for some time.\nmessage EventSeries {\n  // Number of occurrences in this series up to the last heartbeat time\n  optional int32 count = 1;\n\n  // Time of the last occurrence observed\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime lastObservedTime = 2;\n}\n\n// EventSource contains information for an event.\nmessage EventSource {\n  // Component from which the event is generated.\n  // +optional\n  optional string component = 1;\n\n  // Node name on which the event is generated.\n  // +optional\n  optional string host = 2;\n}\n\n// ExecAction describes a \"run in container\" action.\nmessage ExecAction {\n  // Command is the command line to execute inside the container, the working directory for the\n  // command  is root ('/') in the container's filesystem. The command is simply exec'd, it is\n  // not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\n  // a shell, you need to explicitly call out to that shell.\n  // Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\n  // +optional\n  // +listType=atomic\n  repeated string command = 1;\n}\n\n// Represents a Fibre Channel volume.\n// Fibre Channel volumes can only be mounted as read/write once.\n// Fibre Channel volumes support ownership management and SELinux relabeling.\nmessage FCVolumeSource {\n  // targetWWNs is Optional: FC target worldwide names (WWNs)\n  // +optional\n  // +listType=atomic\n  repeated string targetWWNs = 1;\n\n  // lun is Optional: FC target lun number\n  // +optional\n  optional int32 lun = 2;\n\n  // fsType is the filesystem type to mount.\n  // Must be a filesystem type supported by the host operating system.\n  // Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n  // TODO: how do we prevent errors in the filesystem from compromising the machine\n  // +optional\n  optional string fsType = 3;\n\n  // readOnly is Optional: Defaults to false (read/write). ReadOnly here will force\n  // the ReadOnly setting in VolumeMounts.\n  // +optional\n  optional bool readOnly = 4;\n\n  // wwids Optional: FC volume world wide identifiers (wwids)\n  // Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\n  // +optional\n  // +listType=atomic\n  repeated string wwids = 5;\n}\n\n// FlexPersistentVolumeSource represents a generic persistent volume resource that is\n// provisioned/attached using an exec based plugin.\nmessage FlexPersistentVolumeSource {\n  // driver is the name of the driver to use for this volume.\n  optional string driver = 1;\n\n  // fsType is the Filesystem type to mount.\n  // Must be a filesystem type supported by the host operating system.\n  // Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script.\n  // +optional\n  optional string fsType = 2;\n\n  // secretRef is Optional: SecretRef is reference to the secret object containing\n  // sensitive information to pass to the plugin scripts. This may be\n  // empty if no secret object is specified. If the secret object\n  // contains more than one secret, all secrets are passed to the plugin\n  // scripts.\n  // +optional\n  optional SecretReference secretRef = 3;\n\n  // readOnly is Optional: defaults to false (read/write). ReadOnly here will force\n  // the ReadOnly setting in VolumeMounts.\n  // +optional\n  optional bool readOnly = 4;\n\n  // options is Optional: this field holds extra command options if any.\n  // +optional\n  map<string, string> options = 5;\n}\n\n// FlexVolume represents a generic volume resource that is\n// provisioned/attached using an exec based plugin.\nmessage FlexVolumeSource {\n  // driver is the name of the driver to use for this volume.\n  optional string driver = 1;\n\n  // fsType is the filesystem type to mount.\n  // Must be a filesystem type supported by the host operating system.\n  // Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script.\n  // +optional\n  optional string fsType = 2;\n\n  // secretRef is Optional: secretRef is reference to the secret object containing\n  // sensitive information to pass to the plugin scripts. This may be\n  // empty if no secret object is specified. If the secret object\n  // contains more than one secret, all secrets are passed to the plugin\n  // scripts.\n  // +optional\n  optional LocalObjectReference secretRef = 3;\n\n  // readOnly is Optional: defaults to false (read/write). ReadOnly here will force\n  // the ReadOnly setting in VolumeMounts.\n  // +optional\n  optional bool readOnly = 4;\n\n  // options is Optional: this field holds extra command options if any.\n  // +optional\n  map<string, string> options = 5;\n}\n\n// Represents a Flocker volume mounted by the Flocker agent.\n// One and only one of datasetName and datasetUUID should be set.\n// Flocker volumes do not support ownership management or SELinux relabeling.\nmessage FlockerVolumeSource {\n  // datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker\n  // should be considered as deprecated\n  // +optional\n  optional string datasetName = 1;\n\n  // datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset\n  // +optional\n  optional string datasetUUID = 2;\n}\n\n// Represents a Persistent Disk resource in Google Compute Engine.\n//\n// A GCE PD must exist before mounting to a container. The disk must\n// also be in the same GCE project and zone as the kubelet. A GCE PD\n// can only be mounted as read/write once or read-only many times. GCE\n// PDs support ownership management and SELinux relabeling.\nmessage GCEPersistentDiskVolumeSource {\n  // pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\n  optional string pdName = 1;\n\n  // fsType is filesystem type of the volume that you want to mount.\n  // Tip: Ensure that the filesystem type is supported by the host operating system.\n  // Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\n  // TODO: how do we prevent errors in the filesystem from compromising the machine\n  // +optional\n  optional string fsType = 2;\n\n  // partition is the partition in the volume that you want to mount.\n  // If omitted, the default is to mount by volume name.\n  // Examples: For volume /dev/sda1, you specify the partition as \"1\".\n  // Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty).\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\n  // +optional\n  optional int32 partition = 3;\n\n  // readOnly here will force the ReadOnly setting in VolumeMounts.\n  // Defaults to false.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\n  // +optional\n  optional bool readOnly = 4;\n}\n\n// GRPCAction specifies an action involving a GRPC service.\nmessage GRPCAction {\n  // Port number of the gRPC service. Number must be in the range 1 to 65535.\n  optional int32 port = 1;\n\n  // Service is the name of the service to place in the gRPC HealthCheckRequest\n  // (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\n  //\n  // If this is not specified, the default behavior is defined by gRPC.\n  // +optional\n  // +default=\"\"\n  optional string service = 2;\n}\n\n// Represents a volume that is populated with the contents of a git repository.\n// Git repo volumes do not support ownership management.\n// Git repo volumes support SELinux relabeling.\n//\n// DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an\n// EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir\n// into the Pod's container.\nmessage GitRepoVolumeSource {\n  // repository is the URL\n  optional string repository = 1;\n\n  // revision is the commit hash for the specified revision.\n  // +optional\n  optional string revision = 2;\n\n  // directory is the target directory name.\n  // Must not contain or start with '..'.  If '.' is supplied, the volume directory will be the\n  // git repository.  Otherwise, if specified, the volume will contain the git repository in\n  // the subdirectory with the given name.\n  // +optional\n  optional string directory = 3;\n}\n\n// Represents a Glusterfs mount that lasts the lifetime of a pod.\n// Glusterfs volumes do not support ownership management or SELinux relabeling.\nmessage GlusterfsPersistentVolumeSource {\n  // endpoints is the endpoint name that details Glusterfs topology.\n  // More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\n  optional string endpoints = 1;\n\n  // path is the Glusterfs volume path.\n  // More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\n  optional string path = 2;\n\n  // readOnly here will force the Glusterfs volume to be mounted with read-only permissions.\n  // Defaults to false.\n  // More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\n  // +optional\n  optional bool readOnly = 3;\n\n  // endpointsNamespace is the namespace that contains Glusterfs endpoint.\n  // If this field is empty, the EndpointNamespace defaults to the same namespace as the bound PVC.\n  // More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\n  // +optional\n  optional string endpointsNamespace = 4;\n}\n\n// Represents a Glusterfs mount that lasts the lifetime of a pod.\n// Glusterfs volumes do not support ownership management or SELinux relabeling.\nmessage GlusterfsVolumeSource {\n  // endpoints is the endpoint name that details Glusterfs topology.\n  // More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\n  optional string endpoints = 1;\n\n  // path is the Glusterfs volume path.\n  // More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\n  optional string path = 2;\n\n  // readOnly here will force the Glusterfs volume to be mounted with read-only permissions.\n  // Defaults to false.\n  // More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\n  // +optional\n  optional bool readOnly = 3;\n}\n\n// HTTPGetAction describes an action based on HTTP Get requests.\nmessage HTTPGetAction {\n  // Path to access on the HTTP server.\n  // +optional\n  optional string path = 1;\n\n  // Name or number of the port to access on the container.\n  // Number must be in the range 1 to 65535.\n  // Name must be an IANA_SVC_NAME.\n  optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString port = 2;\n\n  // Host name to connect to, defaults to the pod IP. You probably want to set\n  // \"Host\" in httpHeaders instead.\n  // +optional\n  optional string host = 3;\n\n  // Scheme to use for connecting to the host.\n  // Defaults to HTTP.\n  // +optional\n  optional string scheme = 4;\n\n  // Custom headers to set in the request. HTTP allows repeated headers.\n  // +optional\n  // +listType=atomic\n  repeated HTTPHeader httpHeaders = 5;\n}\n\n// HTTPHeader describes a custom header to be used in HTTP probes\nmessage HTTPHeader {\n  // The header field name.\n  // This will be canonicalized upon output, so case-variant names will be understood as the same header.\n  optional string name = 1;\n\n  // The header field value\n  optional string value = 2;\n}\n\n// HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the\n// pod's hosts file.\nmessage HostAlias {\n  // IP address of the host file entry.\n  // +required\n  optional string ip = 1;\n\n  // Hostnames for the above IP address.\n  // +listType=atomic\n  repeated string hostnames = 2;\n}\n\n// HostIP represents a single IP address allocated to the host.\nmessage HostIP {\n  // IP is the IP address assigned to the host\n  // +required\n  optional string ip = 1;\n}\n\n// Represents a host path mapped into a pod.\n// Host path volumes do not support ownership management or SELinux relabeling.\nmessage HostPathVolumeSource {\n  // path of the directory on the host.\n  // If the path is a symlink, it will follow the link to the real path.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\n  optional string path = 1;\n\n  // type for HostPath Volume\n  // Defaults to \"\"\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\n  // +optional\n  optional string type = 2;\n}\n\n// ISCSIPersistentVolumeSource represents an ISCSI disk.\n// ISCSI volumes can only be mounted as read/write once.\n// ISCSI volumes support ownership management and SELinux relabeling.\nmessage ISCSIPersistentVolumeSource {\n  // targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port\n  // is other than default (typically TCP ports 860 and 3260).\n  optional string targetPortal = 1;\n\n  // iqn is Target iSCSI Qualified Name.\n  optional string iqn = 2;\n\n  // lun is iSCSI Target Lun number.\n  optional int32 lun = 3;\n\n  // iscsiInterface is the interface Name that uses an iSCSI transport.\n  // Defaults to 'default' (tcp).\n  // +optional\n  // +default=\"default\"\n  optional string iscsiInterface = 4;\n\n  // fsType is the filesystem type of the volume that you want to mount.\n  // Tip: Ensure that the filesystem type is supported by the host operating system.\n  // Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi\n  // TODO: how do we prevent errors in the filesystem from compromising the machine\n  // +optional\n  optional string fsType = 5;\n\n  // readOnly here will force the ReadOnly setting in VolumeMounts.\n  // Defaults to false.\n  // +optional\n  optional bool readOnly = 6;\n\n  // portals is the iSCSI Target Portal List. The Portal is either an IP or ip_addr:port if the port\n  // is other than default (typically TCP ports 860 and 3260).\n  // +optional\n  // +listType=atomic\n  repeated string portals = 7;\n\n  // chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\n  // +optional\n  optional bool chapAuthDiscovery = 8;\n\n  // chapAuthSession defines whether support iSCSI Session CHAP authentication\n  // +optional\n  optional bool chapAuthSession = 11;\n\n  // secretRef is the CHAP Secret for iSCSI target and initiator authentication\n  // +optional\n  optional SecretReference secretRef = 10;\n\n  // initiatorName is the custom iSCSI Initiator Name.\n  // If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface\n  // <target portal>:<volume name> will be created for the connection.\n  // +optional\n  optional string initiatorName = 12;\n}\n\n// Represents an ISCSI disk.\n// ISCSI volumes can only be mounted as read/write once.\n// ISCSI volumes support ownership management and SELinux relabeling.\nmessage ISCSIVolumeSource {\n  // targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port\n  // is other than default (typically TCP ports 860 and 3260).\n  optional string targetPortal = 1;\n\n  // iqn is the target iSCSI Qualified Name.\n  optional string iqn = 2;\n\n  // lun represents iSCSI Target Lun number.\n  optional int32 lun = 3;\n\n  // iscsiInterface is the interface Name that uses an iSCSI transport.\n  // Defaults to 'default' (tcp).\n  // +optional\n  // +default=\"default\"\n  optional string iscsiInterface = 4;\n\n  // fsType is the filesystem type of the volume that you want to mount.\n  // Tip: Ensure that the filesystem type is supported by the host operating system.\n  // Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi\n  // TODO: how do we prevent errors in the filesystem from compromising the machine\n  // +optional\n  optional string fsType = 5;\n\n  // readOnly here will force the ReadOnly setting in VolumeMounts.\n  // Defaults to false.\n  // +optional\n  optional bool readOnly = 6;\n\n  // portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port\n  // is other than default (typically TCP ports 860 and 3260).\n  // +optional\n  // +listType=atomic\n  repeated string portals = 7;\n\n  // chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\n  // +optional\n  optional bool chapAuthDiscovery = 8;\n\n  // chapAuthSession defines whether support iSCSI Session CHAP authentication\n  // +optional\n  optional bool chapAuthSession = 11;\n\n  // secretRef is the CHAP Secret for iSCSI target and initiator authentication\n  // +optional\n  optional LocalObjectReference secretRef = 10;\n\n  // initiatorName is the custom iSCSI Initiator Name.\n  // If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface\n  // <target portal>:<volume name> will be created for the connection.\n  // +optional\n  optional string initiatorName = 12;\n}\n\n// ImageVolumeSource represents a image volume resource.\nmessage ImageVolumeSource {\n  // Required: Image or artifact reference to be used.\n  // Behaves in the same way as pod.spec.containers[*].image.\n  // Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets.\n  // More info: https://kubernetes.io/docs/concepts/containers/images\n  // This field is optional to allow higher level config management to default or override\n  // container images in workload controllers like Deployments and StatefulSets.\n  // +optional\n  optional string reference = 1;\n\n  // Policy for pulling OCI objects. Possible values are:\n  // Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.\n  // Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present.\n  // IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.\n  // Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.\n  // +optional\n  optional string pullPolicy = 2;\n}\n\n// Maps a string key to a path within a volume.\nmessage KeyToPath {\n  // key is the key to project.\n  optional string key = 1;\n\n  // path is the relative path of the file to map the key to.\n  // May not be an absolute path.\n  // May not contain the path element '..'.\n  // May not start with the string '..'.\n  optional string path = 2;\n\n  // mode is Optional: mode bits used to set permissions on this file.\n  // Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\n  // YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\n  // If not specified, the volume defaultMode will be used.\n  // This might be in conflict with other options that affect the file\n  // mode, like fsGroup, and the result can be other mode bits set.\n  // +optional\n  optional int32 mode = 3;\n}\n\n// Lifecycle describes actions that the management system should take in response to container lifecycle\n// events. For the PostStart and PreStop lifecycle handlers, management of the container blocks\n// until the action is complete, unless the container process fails, in which case the handler is aborted.\nmessage Lifecycle {\n  // PostStart is called immediately after a container is created. If the handler fails,\n  // the container is terminated and restarted according to its restart policy.\n  // Other management of the container blocks until the hook completes.\n  // More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\n  // +optional\n  optional LifecycleHandler postStart = 1;\n\n  // PreStop is called immediately before a container is terminated due to an\n  // API request or management event such as liveness/startup probe failure,\n  // preemption, resource contention, etc. The handler is not called if the\n  // container crashes or exits. The Pod's termination grace period countdown begins before the\n  // PreStop hook is executed. Regardless of the outcome of the handler, the\n  // container will eventually terminate within the Pod's termination grace\n  // period (unless delayed by finalizers). Other management of the container blocks until the hook completes\n  // or until the termination grace period is reached.\n  // More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\n  // +optional\n  optional LifecycleHandler preStop = 2;\n}\n\n// LifecycleHandler defines a specific action that should be taken in a lifecycle\n// hook. One and only one of the fields, except TCPSocket must be specified.\nmessage LifecycleHandler {\n  // Exec specifies a command to execute in the container.\n  // +optional\n  optional ExecAction exec = 1;\n\n  // HTTPGet specifies an HTTP GET request to perform.\n  // +optional\n  optional HTTPGetAction httpGet = 2;\n\n  // Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\n  // for backward compatibility. There is no validation of this field and\n  // lifecycle hooks will fail at runtime when it is specified.\n  // +optional\n  optional TCPSocketAction tcpSocket = 3;\n\n  // Sleep represents a duration that the container should sleep.\n  // +featureGate=PodLifecycleSleepAction\n  // +optional\n  optional SleepAction sleep = 4;\n}\n\n// LimitRange sets resource usage limits for each kind of resource in a Namespace.\nmessage LimitRange {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec defines the limits enforced.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional LimitRangeSpec spec = 2;\n}\n\n// LimitRangeItem defines a min/max usage limit for any resource that matches on kind.\nmessage LimitRangeItem {\n  // Type of resource that this limit applies to.\n  optional string type = 1;\n\n  // Max usage constraints on this kind by resource name.\n  // +optional\n  map<string, .k8s.io.apimachinery.pkg.api.resource.Quantity> max = 2;\n\n  // Min usage constraints on this kind by resource name.\n  // +optional\n  map<string, .k8s.io.apimachinery.pkg.api.resource.Quantity> min = 3;\n\n  // Default resource requirement limit value by resource name if resource limit is omitted.\n  // +optional\n  map<string, .k8s.io.apimachinery.pkg.api.resource.Quantity> default = 4;\n\n  // DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.\n  // +optional\n  map<string, .k8s.io.apimachinery.pkg.api.resource.Quantity> defaultRequest = 5;\n\n  // MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource.\n  // +optional\n  map<string, .k8s.io.apimachinery.pkg.api.resource.Quantity> maxLimitRequestRatio = 6;\n}\n\n// LimitRangeList is a list of LimitRange items.\nmessage LimitRangeList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is a list of LimitRange objects.\n  // More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\n  repeated LimitRange items = 2;\n}\n\n// LimitRangeSpec defines a min/max usage limit for resources that match on kind.\nmessage LimitRangeSpec {\n  // Limits is the list of LimitRangeItem objects that are enforced.\n  // +listType=atomic\n  repeated LimitRangeItem limits = 1;\n}\n\n// LinuxContainerUser represents user identity information in Linux containers\nmessage LinuxContainerUser {\n  // UID is the primary uid initially attached to the first process in the container\n  optional int64 uid = 1;\n\n  // GID is the primary gid initially attached to the first process in the container\n  optional int64 gid = 2;\n\n  // SupplementalGroups are the supplemental groups initially attached to the first process in the container\n  // +optional\n  // +listType=atomic\n  repeated int64 supplementalGroups = 3;\n}\n\n// List holds a list of objects, which may not be known by the server.\nmessage List {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of objects\n  repeated .k8s.io.apimachinery.pkg.runtime.RawExtension items = 2;\n}\n\n// LoadBalancerIngress represents the status of a load-balancer ingress point:\n// traffic intended for the service should be sent to an ingress point.\nmessage LoadBalancerIngress {\n  // IP is set for load-balancer ingress points that are IP based\n  // (typically GCE or OpenStack load-balancers)\n  // +optional\n  optional string ip = 1;\n\n  // Hostname is set for load-balancer ingress points that are DNS based\n  // (typically AWS load-balancers)\n  // +optional\n  optional string hostname = 2;\n\n  // IPMode specifies how the load-balancer IP behaves, and may only be specified when the ip field is specified.\n  // Setting this to \"VIP\" indicates that traffic is delivered to the node with\n  // the destination set to the load-balancer's IP and port.\n  // Setting this to \"Proxy\" indicates that traffic is delivered to the node or pod with\n  // the destination set to the node's IP and node port or the pod's IP and port.\n  // Service implementations may use this information to adjust traffic routing.\n  // +optional\n  optional string ipMode = 3;\n\n  // Ports is a list of records of service ports\n  // If used, every port defined in the service should have an entry in it\n  // +listType=atomic\n  // +optional\n  repeated PortStatus ports = 4;\n}\n\n// LoadBalancerStatus represents the status of a load-balancer.\nmessage LoadBalancerStatus {\n  // Ingress is a list containing ingress points for the load-balancer.\n  // Traffic intended for the service should be sent to these ingress points.\n  // +optional\n  // +listType=atomic\n  repeated LoadBalancerIngress ingress = 1;\n}\n\n// LocalObjectReference contains enough information to let you locate the\n// referenced object inside the same namespace.\n// ---\n// New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs.\n//  1. Invalid usage help.  It is impossible to add specific help for individual usage.  In most embedded usages, there are particular\n//     restrictions like, \"must refer only to types A and B\" or \"UID not honored\" or \"name must be restricted\".\n//     Those cannot be well described when embedded.\n//  2. Inconsistent validation.  Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen.\n//  3. We cannot easily change it.  Because this type is embedded in many locations, updates to this type\n//     will affect numerous schemas.  Don't make new APIs embed an underspecified API type they do not control.\n//\n// Instead of using this type, create a locally provided and used type that is well-focused on your reference.\n// For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 .\n// +structType=atomic\nmessage LocalObjectReference {\n  // Name of the referent.\n  // This field is effectively required, but due to backwards compatibility is\n  // allowed to be empty. Instances of this type with an empty value here are\n  // almost certainly wrong.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\n  // +optional\n  // +default=\"\"\n  // +kubebuilder:default=\"\"\n  // TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\n  optional string name = 1;\n}\n\n// Local represents directly-attached storage with node affinity\nmessage LocalVolumeSource {\n  // path of the full path to the volume on the node.\n  // It can be either a directory or block device (disk, partition, ...).\n  optional string path = 1;\n\n  // fsType is the filesystem type to mount.\n  // It applies only when the Path is a block device.\n  // Must be a filesystem type supported by the host operating system.\n  // Ex. \"ext4\", \"xfs\", \"ntfs\". The default value is to auto-select a filesystem if unspecified.\n  // +optional\n  optional string fsType = 2;\n}\n\n// ModifyVolumeStatus represents the status object of ControllerModifyVolume operation\nmessage ModifyVolumeStatus {\n  // targetVolumeAttributesClassName is the name of the VolumeAttributesClass the PVC currently being reconciled\n  optional string targetVolumeAttributesClassName = 1;\n\n  // status is the status of the ControllerModifyVolume operation. It can be in any of following states:\n  //  - Pending\n  //    Pending indicates that the PersistentVolumeClaim cannot be modified due to unmet requirements, such as\n  //    the specified VolumeAttributesClass not existing.\n  //  - InProgress\n  //    InProgress indicates that the volume is being modified.\n  //  - Infeasible\n  //   Infeasible indicates that the request has been rejected as invalid by the CSI driver. To\n  // \t  resolve the error, a valid VolumeAttributesClass needs to be specified.\n  // Note: New statuses can be added in the future. Consumers should check for unknown statuses and fail appropriately.\n  optional string status = 2;\n}\n\n// Represents an NFS mount that lasts the lifetime of a pod.\n// NFS volumes do not support ownership management or SELinux relabeling.\nmessage NFSVolumeSource {\n  // server is the hostname or IP address of the NFS server.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\n  optional string server = 1;\n\n  // path that is exported by the NFS server.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\n  optional string path = 2;\n\n  // readOnly here will force the NFS export to be mounted with read-only permissions.\n  // Defaults to false.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\n  // +optional\n  optional bool readOnly = 3;\n}\n\n// Namespace provides a scope for Names.\n// Use of multiple namespaces is optional.\nmessage Namespace {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec defines the behavior of the Namespace.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional NamespaceSpec spec = 2;\n\n  // Status describes the current status of a Namespace.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional NamespaceStatus status = 3;\n}\n\n// NamespaceCondition contains details about state of namespace.\nmessage NamespaceCondition {\n  // Type of namespace controller condition.\n  optional string type = 1;\n\n  // Status of the condition, one of True, False, Unknown.\n  optional string status = 2;\n\n  // Last time the condition transitioned from one status to another.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;\n\n  // Unique, one-word, CamelCase reason for the condition's last transition.\n  // +optional\n  optional string reason = 5;\n\n  // Human-readable message indicating details about last transition.\n  // +optional\n  optional string message = 6;\n}\n\n// NamespaceList is a list of Namespaces.\nmessage NamespaceList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is the list of Namespace objects in the list.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/\n  repeated Namespace items = 2;\n}\n\n// NamespaceSpec describes the attributes on a Namespace.\nmessage NamespaceSpec {\n  // Finalizers is an opaque list of values that must be empty to permanently remove object from storage.\n  // More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/\n  // +optional\n  // +listType=atomic\n  repeated string finalizers = 1;\n}\n\n// NamespaceStatus is information about the current status of a Namespace.\nmessage NamespaceStatus {\n  // Phase is the current lifecycle phase of the namespace.\n  // More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/\n  // +optional\n  optional string phase = 1;\n\n  // Represents the latest available observations of a namespace's current state.\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=type\n  repeated NamespaceCondition conditions = 2;\n}\n\n// Node is a worker node in Kubernetes.\n// Each node will have a unique identifier in the cache (i.e. in etcd).\nmessage Node {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec defines the behavior of a node.\n  // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional NodeSpec spec = 2;\n\n  // Most recently observed status of the node.\n  // Populated by the system.\n  // Read-only.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional NodeStatus status = 3;\n}\n\n// NodeAddress contains information for the node's address.\nmessage NodeAddress {\n  // Node address type, one of Hostname, ExternalIP or InternalIP.\n  optional string type = 1;\n\n  // The node address.\n  optional string address = 2;\n}\n\n// Node affinity is a group of node affinity scheduling rules.\nmessage NodeAffinity {\n  // If the affinity requirements specified by this field are not met at\n  // scheduling time, the pod will not be scheduled onto the node.\n  // If the affinity requirements specified by this field cease to be met\n  // at some point during pod execution (e.g. due to an update), the system\n  // may or may not try to eventually evict the pod from its node.\n  // +optional\n  optional NodeSelector requiredDuringSchedulingIgnoredDuringExecution = 1;\n\n  // The scheduler will prefer to schedule pods to nodes that satisfy\n  // the affinity expressions specified by this field, but it may choose\n  // a node that violates one or more of the expressions. The node that is\n  // most preferred is the one with the greatest sum of weights, i.e.\n  // for each node that meets all of the scheduling requirements (resource\n  // request, requiredDuringScheduling affinity expressions, etc.),\n  // compute a sum by iterating through the elements of this field and adding\n  // \"weight\" to the sum if the node matches the corresponding matchExpressions; the\n  // node(s) with the highest sum are the most preferred.\n  // +optional\n  // +listType=atomic\n  repeated PreferredSchedulingTerm preferredDuringSchedulingIgnoredDuringExecution = 2;\n}\n\n// NodeCondition contains condition information for a node.\nmessage NodeCondition {\n  // Type of node condition.\n  optional string type = 1;\n\n  // Status of the condition, one of True, False, Unknown.\n  optional string status = 2;\n\n  // Last time we got an update on a given condition.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastHeartbeatTime = 3;\n\n  // Last time the condition transit from one status to another.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;\n\n  // (brief) reason for the condition's last transition.\n  // +optional\n  optional string reason = 5;\n\n  // Human readable message indicating details about last transition.\n  // +optional\n  optional string message = 6;\n}\n\n// NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil.\n// This API is deprecated since 1.22\nmessage NodeConfigSource {\n  // ConfigMap is a reference to a Node's ConfigMap\n  optional ConfigMapNodeConfigSource configMap = 2;\n}\n\n// NodeConfigStatus describes the status of the config assigned by Node.Spec.ConfigSource.\nmessage NodeConfigStatus {\n  // Assigned reports the checkpointed config the node will try to use.\n  // When Node.Spec.ConfigSource is updated, the node checkpoints the associated\n  // config payload to local disk, along with a record indicating intended\n  // config. The node refers to this record to choose its config checkpoint, and\n  // reports this record in Assigned. Assigned only updates in the status after\n  // the record has been checkpointed to disk. When the Kubelet is restarted,\n  // it tries to make the Assigned config the Active config by loading and\n  // validating the checkpointed payload identified by Assigned.\n  // +optional\n  optional NodeConfigSource assigned = 1;\n\n  // Active reports the checkpointed config the node is actively using.\n  // Active will represent either the current version of the Assigned config,\n  // or the current LastKnownGood config, depending on whether attempting to use the\n  // Assigned config results in an error.\n  // +optional\n  optional NodeConfigSource active = 2;\n\n  // LastKnownGood reports the checkpointed config the node will fall back to\n  // when it encounters an error attempting to use the Assigned config.\n  // The Assigned config becomes the LastKnownGood config when the node determines\n  // that the Assigned config is stable and correct.\n  // This is currently implemented as a 10-minute soak period starting when the local\n  // record of Assigned config is updated. If the Assigned config is Active at the end\n  // of this period, it becomes the LastKnownGood. Note that if Spec.ConfigSource is\n  // reset to nil (use local defaults), the LastKnownGood is also immediately reset to nil,\n  // because the local default config is always assumed good.\n  // You should not make assumptions about the node's method of determining config stability\n  // and correctness, as this may change or become configurable in the future.\n  // +optional\n  optional NodeConfigSource lastKnownGood = 3;\n\n  // Error describes any problems reconciling the Spec.ConfigSource to the Active config.\n  // Errors may occur, for example, attempting to checkpoint Spec.ConfigSource to the local Assigned\n  // record, attempting to checkpoint the payload associated with Spec.ConfigSource, attempting\n  // to load or validate the Assigned config, etc.\n  // Errors may occur at different points while syncing config. Earlier errors (e.g. download or\n  // checkpointing errors) will not result in a rollback to LastKnownGood, and may resolve across\n  // Kubelet retries. Later errors (e.g. loading or validating a checkpointed config) will result in\n  // a rollback to LastKnownGood. In the latter case, it is usually possible to resolve the error\n  // by fixing the config assigned in Spec.ConfigSource.\n  // You can find additional information for debugging by searching the error message in the Kubelet log.\n  // Error is a human-readable description of the error state; machines can check whether or not Error\n  // is empty, but should not rely on the stability of the Error text across Kubelet versions.\n  // +optional\n  optional string error = 4;\n}\n\n// NodeDaemonEndpoints lists ports opened by daemons running on the Node.\nmessage NodeDaemonEndpoints {\n  // Endpoint on which Kubelet is listening.\n  // +optional\n  optional DaemonEndpoint kubeletEndpoint = 1;\n}\n\n// NodeFeatures describes the set of features implemented by the CRI implementation.\n// The features contained in the NodeFeatures should depend only on the cri implementation\n// independent of runtime handlers.\nmessage NodeFeatures {\n  // SupplementalGroupsPolicy is set to true if the runtime supports SupplementalGroupsPolicy and ContainerUser.\n  // +optional\n  optional bool supplementalGroupsPolicy = 1;\n}\n\n// NodeList is the whole list of all Nodes which have been registered with master.\nmessage NodeList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of nodes\n  repeated Node items = 2;\n}\n\n// NodeProxyOptions is the query options to a Node's proxy call.\nmessage NodeProxyOptions {\n  // Path is the URL path to use for the current proxy request to node.\n  // +optional\n  optional string path = 1;\n}\n\n// NodeRuntimeHandler is a set of runtime handler information.\nmessage NodeRuntimeHandler {\n  // Runtime handler name.\n  // Empty for the default runtime handler.\n  // +optional\n  optional string name = 1;\n\n  // Supported features.\n  // +optional\n  optional NodeRuntimeHandlerFeatures features = 2;\n}\n\n// NodeRuntimeHandlerFeatures is a set of features implemented by the runtime handler.\nmessage NodeRuntimeHandlerFeatures {\n  // RecursiveReadOnlyMounts is set to true if the runtime handler supports RecursiveReadOnlyMounts.\n  // +featureGate=RecursiveReadOnlyMounts\n  // +optional\n  optional bool recursiveReadOnlyMounts = 1;\n\n  // UserNamespaces is set to true if the runtime handler supports UserNamespaces, including for volumes.\n  // +featureGate=UserNamespacesSupport\n  // +optional\n  optional bool userNamespaces = 2;\n}\n\n// A node selector represents the union of the results of one or more label queries\n// over a set of nodes; that is, it represents the OR of the selectors represented\n// by the node selector terms.\n// +structType=atomic\nmessage NodeSelector {\n  // Required. A list of node selector terms. The terms are ORed.\n  // +listType=atomic\n  repeated NodeSelectorTerm nodeSelectorTerms = 1;\n}\n\n// A node selector requirement is a selector that contains values, a key, and an operator\n// that relates the key and values.\nmessage NodeSelectorRequirement {\n  // The label key that the selector applies to.\n  optional string key = 1;\n\n  // Represents a key's relationship to a set of values.\n  // Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\n  optional string operator = 2;\n\n  // An array of string values. If the operator is In or NotIn,\n  // the values array must be non-empty. If the operator is Exists or DoesNotExist,\n  // the values array must be empty. If the operator is Gt or Lt, the values\n  // array must have a single element, which will be interpreted as an integer.\n  // This array is replaced during a strategic merge patch.\n  // +optional\n  // +listType=atomic\n  repeated string values = 3;\n}\n\n// A null or empty node selector term matches no objects. The requirements of\n// them are ANDed.\n// The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.\n// +structType=atomic\nmessage NodeSelectorTerm {\n  // A list of node selector requirements by node's labels.\n  // +optional\n  // +listType=atomic\n  repeated NodeSelectorRequirement matchExpressions = 1;\n\n  // A list of node selector requirements by node's fields.\n  // +optional\n  // +listType=atomic\n  repeated NodeSelectorRequirement matchFields = 2;\n}\n\n// NodeSpec describes the attributes that a node is created with.\nmessage NodeSpec {\n  // PodCIDR represents the pod IP range assigned to the node.\n  // +optional\n  optional string podCIDR = 1;\n\n  // podCIDRs represents the IP ranges assigned to the node for usage by Pods on that node. If this\n  // field is specified, the 0th entry must match the podCIDR field. It may contain at most 1 value for\n  // each of IPv4 and IPv6.\n  // +optional\n  // +patchStrategy=merge\n  // +listType=set\n  repeated string podCIDRs = 7;\n\n  // ID of the node assigned by the cloud provider in the format: <ProviderName>://<ProviderSpecificNodeID>\n  // +optional\n  optional string providerID = 3;\n\n  // Unschedulable controls node schedulability of new pods. By default, node is schedulable.\n  // More info: https://kubernetes.io/docs/concepts/nodes/node/#manual-node-administration\n  // +optional\n  optional bool unschedulable = 4;\n\n  // If specified, the node's taints.\n  // +optional\n  // +listType=atomic\n  repeated Taint taints = 5;\n\n  // Deprecated: Previously used to specify the source of the node's configuration for the DynamicKubeletConfig feature. This feature is removed.\n  // +optional\n  optional NodeConfigSource configSource = 6;\n\n  // Deprecated. Not all kubelets will set this field. Remove field after 1.13.\n  // see: https://issues.k8s.io/61966\n  // +optional\n  optional string externalID = 2;\n}\n\n// NodeStatus is information about the current status of a node.\nmessage NodeStatus {\n  // Capacity represents the total resources of a node.\n  // More info: https://kubernetes.io/docs/reference/node/node-status/#capacity\n  // +optional\n  map<string, .k8s.io.apimachinery.pkg.api.resource.Quantity> capacity = 1;\n\n  // Allocatable represents the resources of a node that are available for scheduling.\n  // Defaults to Capacity.\n  // +optional\n  map<string, .k8s.io.apimachinery.pkg.api.resource.Quantity> allocatable = 2;\n\n  // NodePhase is the recently observed lifecycle phase of the node.\n  // More info: https://kubernetes.io/docs/concepts/nodes/node/#phase\n  // The field is never populated, and now is deprecated.\n  // +optional\n  optional string phase = 3;\n\n  // Conditions is an array of current observed node conditions.\n  // More info: https://kubernetes.io/docs/reference/node/node-status/#condition\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=type\n  repeated NodeCondition conditions = 4;\n\n  // List of addresses reachable to the node.\n  // Queried from cloud provider, if available.\n  // More info: https://kubernetes.io/docs/reference/node/node-status/#addresses\n  // Note: This field is declared as mergeable, but the merge key is not sufficiently\n  // unique, which can cause data corruption when it is merged. Callers should instead\n  // use a full-replacement patch. See https://pr.k8s.io/79391 for an example.\n  // Consumers should assume that addresses can change during the\n  // lifetime of a Node. However, there are some exceptions where this may not\n  // be possible, such as Pods that inherit a Node's address in its own status or\n  // consumers of the downward API (status.hostIP).\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=type\n  repeated NodeAddress addresses = 5;\n\n  // Endpoints of daemons running on the Node.\n  // +optional\n  optional NodeDaemonEndpoints daemonEndpoints = 6;\n\n  // Set of ids/uuids to uniquely identify the node.\n  // More info: https://kubernetes.io/docs/reference/node/node-status/#info\n  // +optional\n  optional NodeSystemInfo nodeInfo = 7;\n\n  // List of container images on this node\n  // +optional\n  // +listType=atomic\n  repeated ContainerImage images = 8;\n\n  // List of attachable volumes in use (mounted) by the node.\n  // +optional\n  // +listType=atomic\n  repeated string volumesInUse = 9;\n\n  // List of volumes that are attached to the node.\n  // +optional\n  // +listType=atomic\n  repeated AttachedVolume volumesAttached = 10;\n\n  // Status of the config assigned to the node via the dynamic Kubelet config feature.\n  // +optional\n  optional NodeConfigStatus config = 11;\n\n  // The available runtime handlers.\n  // +featureGate=RecursiveReadOnlyMounts\n  // +featureGate=UserNamespacesSupport\n  // +optional\n  // +listType=atomic\n  repeated NodeRuntimeHandler runtimeHandlers = 12;\n\n  // Features describes the set of features implemented by the CRI implementation.\n  // +featureGate=SupplementalGroupsPolicy\n  // +optional\n  optional NodeFeatures features = 13;\n}\n\n// NodeSystemInfo is a set of ids/uuids to uniquely identify the node.\nmessage NodeSystemInfo {\n  // MachineID reported by the node. For unique machine identification\n  // in the cluster this field is preferred. Learn more from man(5)\n  // machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html\n  optional string machineID = 1;\n\n  // SystemUUID reported by the node. For unique machine identification\n  // MachineID is preferred. This field is specific to Red Hat hosts\n  // https://access.redhat.com/documentation/en-us/red_hat_subscription_management/1/html/rhsm/uuid\n  optional string systemUUID = 2;\n\n  // Boot ID reported by the node.\n  optional string bootID = 3;\n\n  // Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64).\n  optional string kernelVersion = 4;\n\n  // OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)).\n  optional string osImage = 5;\n\n  // ContainerRuntime Version reported by the node through runtime remote API (e.g. containerd://1.4.2).\n  optional string containerRuntimeVersion = 6;\n\n  // Kubelet Version reported by the node.\n  optional string kubeletVersion = 7;\n\n  // Deprecated: KubeProxy Version reported by the node.\n  optional string kubeProxyVersion = 8;\n\n  // The Operating System reported by the node\n  optional string operatingSystem = 9;\n\n  // The Architecture reported by the node\n  optional string architecture = 10;\n}\n\n// ObjectFieldSelector selects an APIVersioned field of an object.\n// +structType=atomic\nmessage ObjectFieldSelector {\n  // Version of the schema the FieldPath is written in terms of, defaults to \"v1\".\n  // +optional\n  optional string apiVersion = 1;\n\n  // Path of the field to select in the specified API version.\n  optional string fieldPath = 2;\n}\n\n// ObjectReference contains enough information to let you inspect or modify the referred object.\n// ---\n// New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs.\n//  1. Ignored fields.  It includes many fields which are not generally honored.  For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage.\n//  2. Invalid usage help.  It is impossible to add specific help for individual usage.  In most embedded usages, there are particular\n//     restrictions like, \"must refer only to types A and B\" or \"UID not honored\" or \"name must be restricted\".\n//     Those cannot be well described when embedded.\n//  3. Inconsistent validation.  Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen.\n//  4. The fields are both imprecise and overly precise.  Kind is not a precise mapping to a URL. This can produce ambiguity\n//     during interpretation and require a REST mapping.  In most cases, the dependency is on the group,resource tuple\n//     and the version of the actual struct is irrelevant.\n//  5. We cannot easily change it.  Because this type is embedded in many locations, updates to this type\n//     will affect numerous schemas.  Don't make new APIs embed an underspecified API type they do not control.\n//\n// Instead of using this type, create a locally provided and used type that is well-focused on your reference.\n// For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 .\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +structType=atomic\nmessage ObjectReference {\n  // Kind of the referent.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional string kind = 1;\n\n  // Namespace of the referent.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/\n  // +optional\n  optional string namespace = 2;\n\n  // Name of the referent.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\n  // +optional\n  optional string name = 3;\n\n  // UID of the referent.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids\n  // +optional\n  optional string uid = 4;\n\n  // API version of the referent.\n  // +optional\n  optional string apiVersion = 5;\n\n  // Specific resourceVersion to which this reference is made, if any.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency\n  // +optional\n  optional string resourceVersion = 6;\n\n  // If referring to a piece of an object instead of an entire object, this string\n  // should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].\n  // For example, if the object reference is to a container within a pod, this would take on a value like:\n  // \"spec.containers{name}\" (where \"name\" refers to the name of the container that triggered\n  // the event) or if no container name is specified \"spec.containers[2]\" (container with\n  // index 2 in this pod). This syntax is chosen only to have some well-defined way of\n  // referencing a part of an object.\n  // TODO: this design is not final and this field is subject to change in the future.\n  // +optional\n  optional string fieldPath = 7;\n}\n\n// PersistentVolume (PV) is a storage resource provisioned by an administrator.\n// It is analogous to a node.\n// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes\nmessage PersistentVolume {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec defines a specification of a persistent volume owned by the cluster.\n  // Provisioned by an administrator.\n  // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes\n  // +optional\n  optional PersistentVolumeSpec spec = 2;\n\n  // status represents the current information/status for the persistent volume.\n  // Populated by the system.\n  // Read-only.\n  // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes\n  // +optional\n  optional PersistentVolumeStatus status = 3;\n}\n\n// PersistentVolumeClaim is a user's request for and claim to a persistent volume\nmessage PersistentVolumeClaim {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec defines the desired characteristics of a volume requested by a pod author.\n  // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\n  // +optional\n  optional PersistentVolumeClaimSpec spec = 2;\n\n  // status represents the current information/status of a persistent volume claim.\n  // Read-only.\n  // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\n  // +optional\n  optional PersistentVolumeClaimStatus status = 3;\n}\n\n// PersistentVolumeClaimCondition contains details about state of pvc\nmessage PersistentVolumeClaimCondition {\n  // Type is the type of the condition.\n  // More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about\n  optional string type = 1;\n\n  // Status is the status of the condition.\n  // Can be True, False, Unknown.\n  // More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required\n  optional string status = 2;\n\n  // lastProbeTime is the time we probed the condition.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastProbeTime = 3;\n\n  // lastTransitionTime is the time the condition transitioned from one status to another.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;\n\n  // reason is a unique, this should be a short, machine understandable string that gives the reason\n  // for condition's last transition. If it reports \"Resizing\" that means the underlying\n  // persistent volume is being resized.\n  // +optional\n  optional string reason = 5;\n\n  // message is the human-readable message indicating details about last transition.\n  // +optional\n  optional string message = 6;\n}\n\n// PersistentVolumeClaimList is a list of PersistentVolumeClaim items.\nmessage PersistentVolumeClaimList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is a list of persistent volume claims.\n  // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\n  repeated PersistentVolumeClaim items = 2;\n}\n\n// PersistentVolumeClaimSpec describes the common attributes of storage devices\n// and allows a Source for provider-specific attributes\nmessage PersistentVolumeClaimSpec {\n  // accessModes contains the desired access modes the volume should have.\n  // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\n  // +optional\n  // +listType=atomic\n  repeated string accessModes = 1;\n\n  // selector is a label query over volumes to consider for binding.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 4;\n\n  // resources represents the minimum resources the volume should have.\n  // If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements\n  // that are lower than previous value but must still be higher than capacity recorded in the\n  // status field of the claim.\n  // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\n  // +optional\n  optional VolumeResourceRequirements resources = 2;\n\n  // volumeName is the binding reference to the PersistentVolume backing this claim.\n  // +optional\n  optional string volumeName = 3;\n\n  // storageClassName is the name of the StorageClass required by the claim.\n  // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\n  // +optional\n  optional string storageClassName = 5;\n\n  // volumeMode defines what type of volume is required by the claim.\n  // Value of Filesystem is implied when not included in claim spec.\n  // +optional\n  optional string volumeMode = 6;\n\n  // dataSource field can be used to specify either:\n  // * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)\n  // * An existing PVC (PersistentVolumeClaim)\n  // If the provisioner or an external controller can support the specified data source,\n  // it will create a new volume based on the contents of the specified data source.\n  // When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,\n  // and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.\n  // If the namespace is specified, then dataSourceRef will not be copied to dataSource.\n  // +optional\n  optional TypedLocalObjectReference dataSource = 7;\n\n  // dataSourceRef specifies the object from which to populate the volume with data, if a non-empty\n  // volume is desired. This may be any object from a non-empty API group (non\n  // core object) or a PersistentVolumeClaim object.\n  // When this field is specified, volume binding will only succeed if the type of\n  // the specified object matches some installed volume populator or dynamic\n  // provisioner.\n  // This field will replace the functionality of the dataSource field and as such\n  // if both fields are non-empty, they must have the same value. For backwards\n  // compatibility, when namespace isn't specified in dataSourceRef,\n  // both fields (dataSource and dataSourceRef) will be set to the same\n  // value automatically if one of them is empty and the other is non-empty.\n  // When namespace is specified in dataSourceRef,\n  // dataSource isn't set to the same value and must be empty.\n  // There are three important differences between dataSource and dataSourceRef:\n  // * While dataSource only allows two specific types of objects, dataSourceRef\n  //   allows any non-core object, as well as PersistentVolumeClaim objects.\n  // * While dataSource ignores disallowed values (dropping them), dataSourceRef\n  //   preserves all values, and generates an error if a disallowed value is\n  //   specified.\n  // * While dataSource only allows local objects, dataSourceRef allows objects\n  //   in any namespaces.\n  // (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\n  // (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\n  // +optional\n  optional TypedObjectReference dataSourceRef = 8;\n\n  // volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.\n  // If specified, the CSI driver will create or update the volume with the attributes defined\n  // in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,\n  // it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass\n  // will be applied to the claim but it's not allowed to reset this field to empty string once it is set.\n  // If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass\n  // will be set by the persistentvolume controller if it exists.\n  // If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be\n  // set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource\n  // exists.\n  // More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/\n  // (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).\n  // +featureGate=VolumeAttributesClass\n  // +optional\n  optional string volumeAttributesClassName = 9;\n}\n\n// PersistentVolumeClaimStatus is the current status of a persistent volume claim.\nmessage PersistentVolumeClaimStatus {\n  // phase represents the current phase of PersistentVolumeClaim.\n  // +optional\n  optional string phase = 1;\n\n  // accessModes contains the actual access modes the volume backing the PVC has.\n  // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\n  // +optional\n  // +listType=atomic\n  repeated string accessModes = 2;\n\n  // capacity represents the actual resources of the underlying volume.\n  // +optional\n  map<string, .k8s.io.apimachinery.pkg.api.resource.Quantity> capacity = 3;\n\n  // conditions is the current Condition of persistent volume claim. If underlying persistent volume is being\n  // resized then the Condition will be set to 'Resizing'.\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=type\n  repeated PersistentVolumeClaimCondition conditions = 4;\n\n  // allocatedResources tracks the resources allocated to a PVC including its capacity.\n  // Key names follow standard Kubernetes label syntax. Valid values are either:\n  // \t* Un-prefixed keys:\n  // \t\t- storage - the capacity of the volume.\n  // \t* Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\"\n  // Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered\n  // reserved and hence may not be used.\n  //\n  // Capacity reported here may be larger than the actual capacity when a volume expansion operation\n  // is requested.\n  // For storage quota, the larger value from allocatedResources and PVC.spec.resources is used.\n  // If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation.\n  // If a volume expansion capacity request is lowered, allocatedResources is only\n  // lowered if there are no expansion operations in progress and if the actual volume capacity\n  // is equal or lower than the requested capacity.\n  //\n  // A controller that receives PVC update with previously unknown resourceName\n  // should ignore the update for the purpose it was designed. For example - a controller that\n  // only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid\n  // resources associated with PVC.\n  //\n  // This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.\n  // +featureGate=RecoverVolumeExpansionFailure\n  // +optional\n  map<string, .k8s.io.apimachinery.pkg.api.resource.Quantity> allocatedResources = 5;\n\n  // allocatedResourceStatuses stores status of resource being resized for the given PVC.\n  // Key names follow standard Kubernetes label syntax. Valid values are either:\n  // \t* Un-prefixed keys:\n  // \t\t- storage - the capacity of the volume.\n  // \t* Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\"\n  // Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered\n  // reserved and hence may not be used.\n  //\n  // ClaimResourceStatus can be in any of following states:\n  // \t- ControllerResizeInProgress:\n  // \t\tState set when resize controller starts resizing the volume in control-plane.\n  // \t- ControllerResizeFailed:\n  // \t\tState set when resize has failed in resize controller with a terminal error.\n  // \t- NodeResizePending:\n  // \t\tState set when resize controller has finished resizing the volume but further resizing of\n  // \t\tvolume is needed on the node.\n  // \t- NodeResizeInProgress:\n  // \t\tState set when kubelet starts resizing the volume.\n  // \t- NodeResizeFailed:\n  // \t\tState set when resizing has failed in kubelet with a terminal error. Transient errors don't set\n  // \t\tNodeResizeFailed.\n  // For example: if expanding a PVC for more capacity - this field can be one of the following states:\n  // \t- pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeInProgress\"\n  //      - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeFailed\"\n  //      - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizePending\"\n  //      - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeInProgress\"\n  //      - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeFailed\"\n  // When this field is not set, it means that no resize operation is in progress for the given PVC.\n  //\n  // A controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus\n  // should ignore the update for the purpose it was designed. For example - a controller that\n  // only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid\n  // resources associated with PVC.\n  //\n  // This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.\n  // +featureGate=RecoverVolumeExpansionFailure\n  // +mapType=granular\n  // +optional\n  map<string, string> allocatedResourceStatuses = 7;\n\n  // currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using.\n  // When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim\n  // This is a beta field and requires enabling VolumeAttributesClass feature (off by default).\n  // +featureGate=VolumeAttributesClass\n  // +optional\n  optional string currentVolumeAttributesClassName = 8;\n\n  // ModifyVolumeStatus represents the status object of ControllerModifyVolume operation.\n  // When this is unset, there is no ModifyVolume operation being attempted.\n  // This is a beta field and requires enabling VolumeAttributesClass feature (off by default).\n  // +featureGate=VolumeAttributesClass\n  // +optional\n  optional ModifyVolumeStatus modifyVolumeStatus = 9;\n}\n\n// PersistentVolumeClaimTemplate is used to produce\n// PersistentVolumeClaim objects as part of an EphemeralVolumeSource.\nmessage PersistentVolumeClaimTemplate {\n  // May contain labels and annotations that will be copied into the PVC\n  // when creating it. No other fields are allowed and will be rejected during\n  // validation.\n  //\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // The specification for the PersistentVolumeClaim. The entire content is\n  // copied unchanged into the PVC that gets created from this\n  // template. The same fields as in a PersistentVolumeClaim\n  // are also valid here.\n  optional PersistentVolumeClaimSpec spec = 2;\n}\n\n// PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace.\n// This volume finds the bound PV and mounts that volume for the pod. A\n// PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another\n// type of volume that is owned by someone else (the system).\nmessage PersistentVolumeClaimVolumeSource {\n  // claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.\n  // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\n  optional string claimName = 1;\n\n  // readOnly Will force the ReadOnly setting in VolumeMounts.\n  // Default false.\n  // +optional\n  optional bool readOnly = 2;\n}\n\n// PersistentVolumeList is a list of PersistentVolume items.\nmessage PersistentVolumeList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is a list of persistent volumes.\n  // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes\n  repeated PersistentVolume items = 2;\n}\n\n// PersistentVolumeSource is similar to VolumeSource but meant for the\n// administrator who creates PVs. Exactly one of its members must be set.\nmessage PersistentVolumeSource {\n  // gcePersistentDisk represents a GCE Disk resource that is attached to a\n  // kubelet's host machine and then exposed to the pod. Provisioned by an admin.\n  // Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree\n  // gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\n  // +optional\n  optional GCEPersistentDiskVolumeSource gcePersistentDisk = 1;\n\n  // awsElasticBlockStore represents an AWS Disk resource that is attached to a\n  // kubelet's host machine and then exposed to the pod.\n  // Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree\n  // awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\n  // +optional\n  optional AWSElasticBlockStoreVolumeSource awsElasticBlockStore = 2;\n\n  // hostPath represents a directory on the host.\n  // Provisioned by a developer or tester.\n  // This is useful for single-node development and testing only!\n  // On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\n  // +optional\n  optional HostPathVolumeSource hostPath = 3;\n\n  // glusterfs represents a Glusterfs volume that is attached to a host and\n  // exposed to the pod. Provisioned by an admin.\n  // Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.\n  // More info: https://examples.k8s.io/volumes/glusterfs/README.md\n  // +optional\n  optional GlusterfsPersistentVolumeSource glusterfs = 4;\n\n  // nfs represents an NFS mount on the host. Provisioned by an admin.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\n  // +optional\n  optional NFSVolumeSource nfs = 5;\n\n  // rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.\n  // Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported.\n  // More info: https://examples.k8s.io/volumes/rbd/README.md\n  // +optional\n  optional RBDPersistentVolumeSource rbd = 6;\n\n  // iscsi represents an ISCSI Disk resource that is attached to a\n  // kubelet's host machine and then exposed to the pod. Provisioned by an admin.\n  // +optional\n  optional ISCSIPersistentVolumeSource iscsi = 7;\n\n  // cinder represents a cinder volume attached and mounted on kubelets host machine.\n  // Deprecated: Cinder is deprecated. All operations for the in-tree cinder type\n  // are redirected to the cinder.csi.openstack.org CSI driver.\n  // More info: https://examples.k8s.io/mysql-cinder-pd/README.md\n  // +optional\n  optional CinderPersistentVolumeSource cinder = 8;\n\n  // cephFS represents a Ceph FS mount on the host that shares a pod's lifetime.\n  // Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.\n  // +optional\n  optional CephFSPersistentVolumeSource cephfs = 9;\n\n  // fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\n  // +optional\n  optional FCVolumeSource fc = 10;\n\n  // flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running.\n  // Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.\n  // +optional\n  optional FlockerVolumeSource flocker = 11;\n\n  // flexVolume represents a generic volume resource that is\n  // provisioned/attached using an exec based plugin.\n  // Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.\n  // +optional\n  optional FlexPersistentVolumeSource flexVolume = 12;\n\n  // azureFile represents an Azure File Service mount on the host and bind mount to the pod.\n  // Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type\n  // are redirected to the file.csi.azure.com CSI driver.\n  // +optional\n  optional AzureFilePersistentVolumeSource azureFile = 13;\n\n  // vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine.\n  // Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type\n  // are redirected to the csi.vsphere.vmware.com CSI driver.\n  // +optional\n  optional VsphereVirtualDiskVolumeSource vsphereVolume = 14;\n\n  // quobyte represents a Quobyte mount on the host that shares a pod's lifetime.\n  // Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.\n  // +optional\n  optional QuobyteVolumeSource quobyte = 15;\n\n  // azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\n  // Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type\n  // are redirected to the disk.csi.azure.com CSI driver.\n  // +optional\n  optional AzureDiskVolumeSource azureDisk = 16;\n\n  // photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine.\n  // Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.\n  optional PhotonPersistentDiskVolumeSource photonPersistentDisk = 17;\n\n  // portworxVolume represents a portworx volume attached and mounted on kubelets host machine.\n  // Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type\n  // are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate\n  // is on.\n  // +optional\n  optional PortworxVolumeSource portworxVolume = 18;\n\n  // scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\n  // Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.\n  // +optional\n  optional ScaleIOPersistentVolumeSource scaleIO = 19;\n\n  // local represents directly-attached storage with node affinity\n  // +optional\n  optional LocalVolumeSource local = 20;\n\n  // storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod.\n  // Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.\n  // More info: https://examples.k8s.io/volumes/storageos/README.md\n  // +optional\n  optional StorageOSPersistentVolumeSource storageos = 21;\n\n  // csi represents storage that is handled by an external CSI driver.\n  // +optional\n  optional CSIPersistentVolumeSource csi = 22;\n}\n\n// PersistentVolumeSpec is the specification of a persistent volume.\nmessage PersistentVolumeSpec {\n  // capacity is the description of the persistent volume's resources and capacity.\n  // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity\n  // +optional\n  map<string, .k8s.io.apimachinery.pkg.api.resource.Quantity> capacity = 1;\n\n  // persistentVolumeSource is the actual volume backing the persistent volume.\n  optional PersistentVolumeSource persistentVolumeSource = 2;\n\n  // accessModes contains all ways the volume can be mounted.\n  // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes\n  // +optional\n  // +listType=atomic\n  repeated string accessModes = 3;\n\n  // claimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim.\n  // Expected to be non-nil when bound.\n  // claim.VolumeName is the authoritative bind between PV and PVC.\n  // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding\n  // +optional\n  // +structType=granular\n  optional ObjectReference claimRef = 4;\n\n  // persistentVolumeReclaimPolicy defines what happens to a persistent volume when released from its claim.\n  // Valid options are Retain (default for manually created PersistentVolumes), Delete (default\n  // for dynamically provisioned PersistentVolumes), and Recycle (deprecated).\n  // Recycle must be supported by the volume plugin underlying this PersistentVolume.\n  // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming\n  // +optional\n  optional string persistentVolumeReclaimPolicy = 5;\n\n  // storageClassName is the name of StorageClass to which this persistent volume belongs. Empty value\n  // means that this volume does not belong to any StorageClass.\n  // +optional\n  optional string storageClassName = 6;\n\n  // mountOptions is the list of mount options, e.g. [\"ro\", \"soft\"]. Not validated - mount will\n  // simply fail if one is invalid.\n  // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options\n  // +optional\n  // +listType=atomic\n  repeated string mountOptions = 7;\n\n  // volumeMode defines if a volume is intended to be used with a formatted filesystem\n  // or to remain in raw block state. Value of Filesystem is implied when not included in spec.\n  // +optional\n  optional string volumeMode = 8;\n\n  // nodeAffinity defines constraints that limit what nodes this volume can be accessed from.\n  // This field influences the scheduling of pods that use this volume.\n  // +optional\n  optional VolumeNodeAffinity nodeAffinity = 9;\n\n  // Name of VolumeAttributesClass to which this persistent volume belongs. Empty value\n  // is not allowed. When this field is not set, it indicates that this volume does not belong to any\n  // VolumeAttributesClass. This field is mutable and can be changed by the CSI driver\n  // after a volume has been updated successfully to a new class.\n  // For an unbound PersistentVolume, the volumeAttributesClassName will be matched with unbound\n  // PersistentVolumeClaims during the binding process.\n  // This is a beta field and requires enabling VolumeAttributesClass feature (off by default).\n  // +featureGate=VolumeAttributesClass\n  // +optional\n  optional string volumeAttributesClassName = 10;\n}\n\n// PersistentVolumeStatus is the current status of a persistent volume.\nmessage PersistentVolumeStatus {\n  // phase indicates if a volume is available, bound to a claim, or released by a claim.\n  // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#phase\n  // +optional\n  optional string phase = 1;\n\n  // message is a human-readable message indicating details about why the volume is in this state.\n  // +optional\n  optional string message = 2;\n\n  // reason is a brief CamelCase string that describes any failure and is meant\n  // for machine parsing and tidy display in the CLI.\n  // +optional\n  optional string reason = 3;\n\n  // lastPhaseTransitionTime is the time the phase transitioned from one to another\n  // and automatically resets to current time everytime a volume phase transitions.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastPhaseTransitionTime = 4;\n}\n\n// Represents a Photon Controller persistent disk resource.\nmessage PhotonPersistentDiskVolumeSource {\n  // pdID is the ID that identifies Photon Controller persistent disk\n  optional string pdID = 1;\n\n  // fsType is the filesystem type to mount.\n  // Must be a filesystem type supported by the host operating system.\n  // Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n  optional string fsType = 2;\n}\n\n// Pod is a collection of containers that can run on a host. This resource is created\n// by clients and scheduled onto hosts.\nmessage Pod {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Specification of the desired behavior of the pod.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional PodSpec spec = 2;\n\n  // Most recently observed status of the pod.\n  // This data may not be up to date.\n  // Populated by the system.\n  // Read-only.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional PodStatus status = 3;\n}\n\n// Pod affinity is a group of inter pod affinity scheduling rules.\nmessage PodAffinity {\n  // If the affinity requirements specified by this field are not met at\n  // scheduling time, the pod will not be scheduled onto the node.\n  // If the affinity requirements specified by this field cease to be met\n  // at some point during pod execution (e.g. due to a pod label update), the\n  // system may or may not try to eventually evict the pod from its node.\n  // When there are multiple elements, the lists of nodes corresponding to each\n  // podAffinityTerm are intersected, i.e. all terms must be satisfied.\n  // +optional\n  // +listType=atomic\n  repeated PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;\n\n  // The scheduler will prefer to schedule pods to nodes that satisfy\n  // the affinity expressions specified by this field, but it may choose\n  // a node that violates one or more of the expressions. The node that is\n  // most preferred is the one with the greatest sum of weights, i.e.\n  // for each node that meets all of the scheduling requirements (resource\n  // request, requiredDuringScheduling affinity expressions, etc.),\n  // compute a sum by iterating through the elements of this field and adding\n  // \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\n  // node(s) with the highest sum are the most preferred.\n  // +optional\n  // +listType=atomic\n  repeated WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;\n}\n\n// Defines a set of pods (namely those matching the labelSelector\n// relative to the given namespace(s)) that this pod should be\n// co-located (affinity) or not co-located (anti-affinity) with,\n// where co-located is defined as running on a node whose value of\n// the label with key <topologyKey> matches that of any node on which\n// a pod of the set of pods is running\nmessage PodAffinityTerm {\n  // A label query over a set of resources, in this case pods.\n  // If it's null, this PodAffinityTerm matches with no Pods.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector labelSelector = 1;\n\n  // namespaces specifies a static list of namespace names that the term applies to.\n  // The term is applied to the union of the namespaces listed in this field\n  // and the ones selected by namespaceSelector.\n  // null or empty namespaces list and null namespaceSelector means \"this pod's namespace\".\n  // +optional\n  // +listType=atomic\n  repeated string namespaces = 2;\n\n  // This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\n  // the labelSelector in the specified namespaces, where co-located is defined as running on a node\n  // whose value of the label with key topologyKey matches that of any node on which any of the\n  // selected pods is running.\n  // Empty topologyKey is not allowed.\n  optional string topologyKey = 3;\n\n  // A label query over the set of namespaces that the term applies to.\n  // The term is applied to the union of the namespaces selected by this field\n  // and the ones listed in the namespaces field.\n  // null selector and null or empty namespaces list means \"this pod's namespace\".\n  // An empty selector ({}) matches all namespaces.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector namespaceSelector = 4;\n\n  // MatchLabelKeys is a set of pod label keys to select which pods will\n  // be taken into consideration. The keys are used to lookup values from the\n  // incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\n  // to select the group of existing pods which pods will be taken into consideration\n  // for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\n  // pod labels will be ignored. The default value is empty.\n  // The same key is forbidden to exist in both matchLabelKeys and labelSelector.\n  // Also, matchLabelKeys cannot be set when labelSelector isn't set.\n  // This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\n  //\n  // +listType=atomic\n  // +optional\n  repeated string matchLabelKeys = 5;\n\n  // MismatchLabelKeys is a set of pod label keys to select which pods will\n  // be taken into consideration. The keys are used to lookup values from the\n  // incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\n  // to select the group of existing pods which pods will be taken into consideration\n  // for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\n  // pod labels will be ignored. The default value is empty.\n  // The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\n  // Also, mismatchLabelKeys cannot be set when labelSelector isn't set.\n  // This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\n  //\n  // +listType=atomic\n  // +optional\n  repeated string mismatchLabelKeys = 6;\n}\n\n// Pod anti affinity is a group of inter pod anti affinity scheduling rules.\nmessage PodAntiAffinity {\n  // If the anti-affinity requirements specified by this field are not met at\n  // scheduling time, the pod will not be scheduled onto the node.\n  // If the anti-affinity requirements specified by this field cease to be met\n  // at some point during pod execution (e.g. due to a pod label update), the\n  // system may or may not try to eventually evict the pod from its node.\n  // When there are multiple elements, the lists of nodes corresponding to each\n  // podAffinityTerm are intersected, i.e. all terms must be satisfied.\n  // +optional\n  // +listType=atomic\n  repeated PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;\n\n  // The scheduler will prefer to schedule pods to nodes that satisfy\n  // the anti-affinity expressions specified by this field, but it may choose\n  // a node that violates one or more of the expressions. The node that is\n  // most preferred is the one with the greatest sum of weights, i.e.\n  // for each node that meets all of the scheduling requirements (resource\n  // request, requiredDuringScheduling anti-affinity expressions, etc.),\n  // compute a sum by iterating through the elements of this field and adding\n  // \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\n  // node(s) with the highest sum are the most preferred.\n  // +optional\n  // +listType=atomic\n  repeated WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;\n}\n\n// PodAttachOptions is the query options to a Pod's remote attach call.\n// ---\n// TODO: merge w/ PodExecOptions below for stdin, stdout, etc\n// and also when we cut V2, we should export a \"StreamOptions\" or somesuch that contains Stdin, Stdout, Stder and TTY\nmessage PodAttachOptions {\n  // Stdin if true, redirects the standard input stream of the pod for this call.\n  // Defaults to false.\n  // +optional\n  optional bool stdin = 1;\n\n  // Stdout if true indicates that stdout is to be redirected for the attach call.\n  // Defaults to true.\n  // +optional\n  optional bool stdout = 2;\n\n  // Stderr if true indicates that stderr is to be redirected for the attach call.\n  // Defaults to true.\n  // +optional\n  optional bool stderr = 3;\n\n  // TTY if true indicates that a tty will be allocated for the attach call.\n  // This is passed through the container runtime so the tty\n  // is allocated on the worker node by the container runtime.\n  // Defaults to false.\n  // +optional\n  optional bool tty = 4;\n\n  // The container in which to execute the command.\n  // Defaults to only container if there is only one container in the pod.\n  // +optional\n  optional string container = 5;\n}\n\n// PodCondition contains details for the current condition of this pod.\nmessage PodCondition {\n  // Type is the type of the condition.\n  // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions\n  optional string type = 1;\n\n  // Status is the status of the condition.\n  // Can be True, False, Unknown.\n  // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions\n  optional string status = 2;\n\n  // Last time we probed the condition.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastProbeTime = 3;\n\n  // Last time the condition transitioned from one status to another.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;\n\n  // Unique, one-word, CamelCase reason for the condition's last transition.\n  // +optional\n  optional string reason = 5;\n\n  // Human-readable message indicating details about last transition.\n  // +optional\n  optional string message = 6;\n}\n\n// PodDNSConfig defines the DNS parameters of a pod in addition to\n// those generated from DNSPolicy.\nmessage PodDNSConfig {\n  // A list of DNS name server IP addresses.\n  // This will be appended to the base nameservers generated from DNSPolicy.\n  // Duplicated nameservers will be removed.\n  // +optional\n  // +listType=atomic\n  repeated string nameservers = 1;\n\n  // A list of DNS search domains for host-name lookup.\n  // This will be appended to the base search paths generated from DNSPolicy.\n  // Duplicated search paths will be removed.\n  // +optional\n  // +listType=atomic\n  repeated string searches = 2;\n\n  // A list of DNS resolver options.\n  // This will be merged with the base options generated from DNSPolicy.\n  // Duplicated entries will be removed. Resolution options given in Options\n  // will override those that appear in the base DNSPolicy.\n  // +optional\n  // +listType=atomic\n  repeated PodDNSConfigOption options = 3;\n}\n\n// PodDNSConfigOption defines DNS resolver options of a pod.\nmessage PodDNSConfigOption {\n  // Name is this DNS resolver option's name.\n  // Required.\n  optional string name = 1;\n\n  // Value is this DNS resolver option's value.\n  // +optional\n  optional string value = 2;\n}\n\n// PodExecOptions is the query options to a Pod's remote exec call.\n// ---\n// TODO: This is largely identical to PodAttachOptions above, make sure they stay in sync and see about merging\n// and also when we cut V2, we should export a \"StreamOptions\" or somesuch that contains Stdin, Stdout, Stder and TTY\nmessage PodExecOptions {\n  // Redirect the standard input stream of the pod for this call.\n  // Defaults to false.\n  // +optional\n  optional bool stdin = 1;\n\n  // Redirect the standard output stream of the pod for this call.\n  // +optional\n  optional bool stdout = 2;\n\n  // Redirect the standard error stream of the pod for this call.\n  // +optional\n  optional bool stderr = 3;\n\n  // TTY if true indicates that a tty will be allocated for the exec call.\n  // Defaults to false.\n  // +optional\n  optional bool tty = 4;\n\n  // Container in which to execute the command.\n  // Defaults to only container if there is only one container in the pod.\n  // +optional\n  optional string container = 5;\n\n  // Command is the remote command to execute. argv array. Not executed within a shell.\n  // +listType=atomic\n  repeated string command = 6;\n}\n\n// PodIP represents a single IP address allocated to the pod.\nmessage PodIP {\n  // IP is the IP address assigned to the pod\n  // +required\n  optional string ip = 1;\n}\n\n// PodList is a list of Pods.\nmessage PodList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of pods.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md\n  repeated Pod items = 2;\n}\n\n// PodLogOptions is the query options for a Pod's logs REST call.\nmessage PodLogOptions {\n  // The container for which to stream logs. Defaults to only container if there is one container in the pod.\n  // +optional\n  optional string container = 1;\n\n  // Follow the log stream of the pod. Defaults to false.\n  // +optional\n  optional bool follow = 2;\n\n  // Return previous terminated container logs. Defaults to false.\n  // +optional\n  optional bool previous = 3;\n\n  // A relative time in seconds before the current time from which to show logs. If this value\n  // precedes the time a pod was started, only logs since the pod start will be returned.\n  // If this value is in the future, no logs will be returned.\n  // Only one of sinceSeconds or sinceTime may be specified.\n  // +optional\n  optional int64 sinceSeconds = 4;\n\n  // An RFC3339 timestamp from which to show logs. If this value\n  // precedes the time a pod was started, only logs since the pod start will be returned.\n  // If this value is in the future, no logs will be returned.\n  // Only one of sinceSeconds or sinceTime may be specified.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time sinceTime = 5;\n\n  // If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line\n  // of log output. Defaults to false.\n  // +optional\n  optional bool timestamps = 6;\n\n  // If set, the number of lines from the end of the logs to show. If not specified,\n  // logs are shown from the creation of the container or sinceSeconds or sinceTime.\n  // Note that when \"TailLines\" is specified, \"Stream\" can only be set to nil or \"All\".\n  // +optional\n  optional int64 tailLines = 7;\n\n  // If set, the number of bytes to read from the server before terminating the\n  // log output. This may not display a complete final line of logging, and may return\n  // slightly more or slightly less than the specified limit.\n  // +optional\n  optional int64 limitBytes = 8;\n\n  // insecureSkipTLSVerifyBackend indicates that the apiserver should not confirm the validity of the\n  // serving certificate of the backend it is connecting to.  This will make the HTTPS connection between the apiserver\n  // and the backend insecure. This means the apiserver cannot verify the log data it is receiving came from the real\n  // kubelet.  If the kubelet is configured to verify the apiserver's TLS credentials, it does not mean the\n  // connection to the real kubelet is vulnerable to a man in the middle attack (e.g. an attacker could not intercept\n  // the actual log data coming from the real kubelet).\n  // +optional\n  optional bool insecureSkipTLSVerifyBackend = 9;\n\n  // Specify which container log stream to return to the client.\n  // Acceptable values are \"All\", \"Stdout\" and \"Stderr\". If not specified, \"All\" is used, and both stdout and stderr\n  // are returned interleaved.\n  // Note that when \"TailLines\" is specified, \"Stream\" can only be set to nil or \"All\".\n  // +featureGate=PodLogsQuerySplitStreams\n  // +optional\n  optional string stream = 10;\n}\n\n// PodOS defines the OS parameters of a pod.\nmessage PodOS {\n  // Name is the name of the operating system. The currently supported values are linux and windows.\n  // Additional value may be defined in future and can be one of:\n  // https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration\n  // Clients should expect to handle additional values and treat unrecognized values in this field as os: null\n  optional string name = 1;\n}\n\n// PodPortForwardOptions is the query options to a Pod's port forward call\n// when using WebSockets.\n// The `port` query parameter must specify the port or\n// ports (comma separated) to forward over.\n// Port forwarding over SPDY does not use these options. It requires the port\n// to be passed in the `port` header as part of request.\nmessage PodPortForwardOptions {\n  // List of ports to forward\n  // Required when using WebSockets\n  // +optional\n  // +listType=atomic\n  repeated int32 ports = 1;\n}\n\n// PodProxyOptions is the query options to a Pod's proxy call.\nmessage PodProxyOptions {\n  // Path is the URL path to use for the current proxy request to pod.\n  // +optional\n  optional string path = 1;\n}\n\n// PodReadinessGate contains the reference to a pod condition\nmessage PodReadinessGate {\n  // ConditionType refers to a condition in the pod's condition list with matching type.\n  optional string conditionType = 1;\n}\n\n// PodResourceClaim references exactly one ResourceClaim, either directly\n// or by naming a ResourceClaimTemplate which is then turned into a ResourceClaim\n// for the pod.\n//\n// It adds a name to it that uniquely identifies the ResourceClaim inside the Pod.\n// Containers that need access to the ResourceClaim reference it with this name.\nmessage PodResourceClaim {\n  // Name uniquely identifies this resource claim inside the pod.\n  // This must be a DNS_LABEL.\n  optional string name = 1;\n\n  // ResourceClaimName is the name of a ResourceClaim object in the same\n  // namespace as this pod.\n  //\n  // Exactly one of ResourceClaimName and ResourceClaimTemplateName must\n  // be set.\n  optional string resourceClaimName = 3;\n\n  // ResourceClaimTemplateName is the name of a ResourceClaimTemplate\n  // object in the same namespace as this pod.\n  //\n  // The template will be used to create a new ResourceClaim, which will\n  // be bound to this pod. When this pod is deleted, the ResourceClaim\n  // will also be deleted. The pod name and resource name, along with a\n  // generated component, will be used to form a unique name for the\n  // ResourceClaim, which will be recorded in pod.status.resourceClaimStatuses.\n  //\n  // This field is immutable and no changes will be made to the\n  // corresponding ResourceClaim by the control plane after creating the\n  // ResourceClaim.\n  //\n  // Exactly one of ResourceClaimName and ResourceClaimTemplateName must\n  // be set.\n  optional string resourceClaimTemplateName = 4;\n}\n\n// PodResourceClaimStatus is stored in the PodStatus for each PodResourceClaim\n// which references a ResourceClaimTemplate. It stores the generated name for\n// the corresponding ResourceClaim.\nmessage PodResourceClaimStatus {\n  // Name uniquely identifies this resource claim inside the pod.\n  // This must match the name of an entry in pod.spec.resourceClaims,\n  // which implies that the string must be a DNS_LABEL.\n  optional string name = 1;\n\n  // ResourceClaimName is the name of the ResourceClaim that was\n  // generated for the Pod in the namespace of the Pod. If this is\n  // unset, then generating a ResourceClaim was not necessary. The\n  // pod.spec.resourceClaims entry can be ignored in this case.\n  //\n  // +optional\n  optional string resourceClaimName = 2;\n}\n\n// PodSchedulingGate is associated to a Pod to guard its scheduling.\nmessage PodSchedulingGate {\n  // Name of the scheduling gate.\n  // Each scheduling gate must have a unique name field.\n  optional string name = 1;\n}\n\n// PodSecurityContext holds pod-level security attributes and common container settings.\n// Some fields are also present in container.securityContext.  Field values of\n// container.securityContext take precedence over field values of PodSecurityContext.\nmessage PodSecurityContext {\n  // The SELinux context to be applied to all containers.\n  // If unspecified, the container runtime will allocate a random SELinux context for each\n  // container.  May also be set in SecurityContext.  If set in\n  // both SecurityContext and PodSecurityContext, the value specified in SecurityContext\n  // takes precedence for that container.\n  // Note that this field cannot be set when spec.os.name is windows.\n  // +optional\n  optional SELinuxOptions seLinuxOptions = 1;\n\n  // The Windows specific settings applied to all containers.\n  // If unspecified, the options within a container's SecurityContext will be used.\n  // If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\n  // Note that this field cannot be set when spec.os.name is linux.\n  // +optional\n  optional WindowsSecurityContextOptions windowsOptions = 8;\n\n  // The UID to run the entrypoint of the container process.\n  // Defaults to user specified in image metadata if unspecified.\n  // May also be set in SecurityContext.  If set in both SecurityContext and\n  // PodSecurityContext, the value specified in SecurityContext takes precedence\n  // for that container.\n  // Note that this field cannot be set when spec.os.name is windows.\n  // +optional\n  optional int64 runAsUser = 2;\n\n  // The GID to run the entrypoint of the container process.\n  // Uses runtime default if unset.\n  // May also be set in SecurityContext.  If set in both SecurityContext and\n  // PodSecurityContext, the value specified in SecurityContext takes precedence\n  // for that container.\n  // Note that this field cannot be set when spec.os.name is windows.\n  // +optional\n  optional int64 runAsGroup = 6;\n\n  // Indicates that the container must run as a non-root user.\n  // If true, the Kubelet will validate the image at runtime to ensure that it\n  // does not run as UID 0 (root) and fail to start the container if it does.\n  // If unset or false, no such validation will be performed.\n  // May also be set in SecurityContext.  If set in both SecurityContext and\n  // PodSecurityContext, the value specified in SecurityContext takes precedence.\n  // +optional\n  optional bool runAsNonRoot = 3;\n\n  // A list of groups applied to the first process run in each container, in\n  // addition to the container's primary GID and fsGroup (if specified).  If\n  // the SupplementalGroupsPolicy feature is enabled, the\n  // supplementalGroupsPolicy field determines whether these are in addition\n  // to or instead of any group memberships defined in the container image.\n  // If unspecified, no additional groups are added, though group memberships\n  // defined in the container image may still be used, depending on the\n  // supplementalGroupsPolicy field.\n  // Note that this field cannot be set when spec.os.name is windows.\n  // +optional\n  // +listType=atomic\n  repeated int64 supplementalGroups = 4;\n\n  // Defines how supplemental groups of the first container processes are calculated.\n  // Valid values are \"Merge\" and \"Strict\". If not specified, \"Merge\" is used.\n  // (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled\n  // and the container runtime must implement support for this feature.\n  // Note that this field cannot be set when spec.os.name is windows.\n  // TODO: update the default value to \"Merge\" when spec.os.name is not windows in v1.34\n  // +featureGate=SupplementalGroupsPolicy\n  // +optional\n  optional string supplementalGroupsPolicy = 12;\n\n  // A special supplemental group that applies to all containers in a pod.\n  // Some volume types allow the Kubelet to change the ownership of that volume\n  // to be owned by the pod:\n  //\n  // 1. The owning GID will be the FSGroup\n  // 2. The setgid bit is set (new files created in the volume will be owned by FSGroup)\n  // 3. The permission bits are OR'd with rw-rw----\n  //\n  // If unset, the Kubelet will not modify the ownership and permissions of any volume.\n  // Note that this field cannot be set when spec.os.name is windows.\n  // +optional\n  optional int64 fsGroup = 5;\n\n  // Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported\n  // sysctls (by the container runtime) might fail to launch.\n  // Note that this field cannot be set when spec.os.name is windows.\n  // +optional\n  // +listType=atomic\n  repeated Sysctl sysctls = 7;\n\n  // fsGroupChangePolicy defines behavior of changing ownership and permission of the volume\n  // before being exposed inside Pod. This field will only apply to\n  // volume types which support fsGroup based ownership(and permissions).\n  // It will have no effect on ephemeral volume types such as: secret, configmaps\n  // and emptydir.\n  // Valid values are \"OnRootMismatch\" and \"Always\". If not specified, \"Always\" is used.\n  // Note that this field cannot be set when spec.os.name is windows.\n  // +optional\n  optional string fsGroupChangePolicy = 9;\n\n  // The seccomp options to use by the containers in this pod.\n  // Note that this field cannot be set when spec.os.name is windows.\n  // +optional\n  optional SeccompProfile seccompProfile = 10;\n\n  // appArmorProfile is the AppArmor options to use by the containers in this pod.\n  // Note that this field cannot be set when spec.os.name is windows.\n  // +optional\n  optional AppArmorProfile appArmorProfile = 11;\n\n  // seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod.\n  // It has no effect on nodes that do not support SELinux or to volumes does not support SELinux.\n  // Valid values are \"MountOption\" and \"Recursive\".\n  //\n  // \"Recursive\" means relabeling of all files on all Pod volumes by the container runtime.\n  // This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node.\n  //\n  // \"MountOption\" mounts all eligible Pod volumes with `-o context` mount option.\n  // This requires all Pods that share the same volume to use the same SELinux label.\n  // It is not possible to share the same volume among privileged and unprivileged Pods.\n  // Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes\n  // whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their\n  // CSIDriver instance. Other volumes are always re-labelled recursively.\n  // \"MountOption\" value is allowed only when SELinuxMount feature gate is enabled.\n  //\n  // If not specified and SELinuxMount feature gate is enabled, \"MountOption\" is used.\n  // If not specified and SELinuxMount feature gate is disabled, \"MountOption\" is used for ReadWriteOncePod volumes\n  // and \"Recursive\" for all other volumes.\n  //\n  // This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers.\n  //\n  // All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state.\n  // Note that this field cannot be set when spec.os.name is windows.\n  // +featureGate=SELinuxChangePolicy\n  // +optional\n  optional string seLinuxChangePolicy = 13;\n}\n\n// Describes the class of pods that should avoid this node.\n// Exactly one field should be set.\nmessage PodSignature {\n  // Reference to controller whose pods should avoid this node.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference podController = 1;\n}\n\n// PodSpec is a description of a pod.\nmessage PodSpec {\n  // List of volumes that can be mounted by containers belonging to the pod.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes\n  // +optional\n  // +patchMergeKey=name\n  // +patchStrategy=merge,retainKeys\n  // +listType=map\n  // +listMapKey=name\n  repeated Volume volumes = 1;\n\n  // List of initialization containers belonging to the pod.\n  // Init containers are executed in order prior to containers being started. If any\n  // init container fails, the pod is considered to have failed and is handled according\n  // to its restartPolicy. The name for an init container or normal container must be\n  // unique among all containers.\n  // Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes.\n  // The resourceRequirements of an init container are taken into account during scheduling\n  // by finding the highest request/limit for each resource type, and then using the max of\n  // of that value or the sum of the normal containers. Limits are applied to init containers\n  // in a similar fashion.\n  // Init containers cannot currently be added or removed.\n  // Cannot be updated.\n  // More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=name\n  repeated Container initContainers = 20;\n\n  // List of containers belonging to the pod.\n  // Containers cannot currently be added or removed.\n  // There must be at least one container in a Pod.\n  // Cannot be updated.\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=name\n  repeated Container containers = 2;\n\n  // List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing\n  // pod to perform user-initiated actions such as debugging. This list cannot be specified when\n  // creating a pod, and it cannot be modified by updating the pod spec. In order to add an\n  // ephemeral container to an existing pod, use the pod's ephemeralcontainers subresource.\n  // +optional\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=name\n  repeated EphemeralContainer ephemeralContainers = 34;\n\n  // Restart policy for all containers within the pod.\n  // One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted.\n  // Default to Always.\n  // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy\n  // +optional\n  optional string restartPolicy = 3;\n\n  // Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request.\n  // Value must be non-negative integer. The value zero indicates stop immediately via\n  // the kill signal (no opportunity to shut down).\n  // If this value is nil, the default grace period will be used instead.\n  // The grace period is the duration in seconds after the processes running in the pod are sent\n  // a termination signal and the time when the processes are forcibly halted with a kill signal.\n  // Set this value longer than the expected cleanup time for your process.\n  // Defaults to 30 seconds.\n  // +optional\n  optional int64 terminationGracePeriodSeconds = 4;\n\n  // Optional duration in seconds the pod may be active on the node relative to\n  // StartTime before the system will actively try to mark it failed and kill associated containers.\n  // Value must be a positive integer.\n  // +optional\n  optional int64 activeDeadlineSeconds = 5;\n\n  // Set DNS policy for the pod.\n  // Defaults to \"ClusterFirst\".\n  // Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'.\n  // DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy.\n  // To have DNS options set along with hostNetwork, you have to specify DNS policy\n  // explicitly to 'ClusterFirstWithHostNet'.\n  // +optional\n  optional string dnsPolicy = 6;\n\n  // NodeSelector is a selector which must be true for the pod to fit on a node.\n  // Selector which must match a node's labels for the pod to be scheduled on that node.\n  // More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/\n  // +optional\n  // +mapType=atomic\n  map<string, string> nodeSelector = 7;\n\n  // ServiceAccountName is the name of the ServiceAccount to use to run this pod.\n  // More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/\n  // +optional\n  optional string serviceAccountName = 8;\n\n  // DeprecatedServiceAccount is a deprecated alias for ServiceAccountName.\n  // Deprecated: Use serviceAccountName instead.\n  // +k8s:conversion-gen=false\n  // +optional\n  optional string serviceAccount = 9;\n\n  // AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.\n  // +optional\n  optional bool automountServiceAccountToken = 21;\n\n  // NodeName indicates in which node this pod is scheduled.\n  // If empty, this pod is a candidate for scheduling by the scheduler defined in schedulerName.\n  // Once this field is set, the kubelet for this node becomes responsible for the lifecycle of this pod.\n  // This field should not be used to express a desire for the pod to be scheduled on a specific node.\n  // https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodename\n  // +optional\n  optional string nodeName = 10;\n\n  // Host networking requested for this pod. Use the host's network namespace.\n  // If this option is set, the ports that will be used must be specified.\n  // Default to false.\n  // +k8s:conversion-gen=false\n  // +optional\n  optional bool hostNetwork = 11;\n\n  // Use the host's pid namespace.\n  // Optional: Default to false.\n  // +k8s:conversion-gen=false\n  // +optional\n  optional bool hostPID = 12;\n\n  // Use the host's ipc namespace.\n  // Optional: Default to false.\n  // +k8s:conversion-gen=false\n  // +optional\n  optional bool hostIPC = 13;\n\n  // Share a single process namespace between all of the containers in a pod.\n  // When this is set containers will be able to view and signal processes from other containers\n  // in the same pod, and the first process in each container will not be assigned PID 1.\n  // HostPID and ShareProcessNamespace cannot both be set.\n  // Optional: Default to false.\n  // +k8s:conversion-gen=false\n  // +optional\n  optional bool shareProcessNamespace = 27;\n\n  // SecurityContext holds pod-level security attributes and common container settings.\n  // Optional: Defaults to empty.  See type description for default values of each field.\n  // +optional\n  optional PodSecurityContext securityContext = 14;\n\n  // ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.\n  // If specified, these secrets will be passed to individual puller implementations for them to use.\n  // More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod\n  // +optional\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=name\n  repeated LocalObjectReference imagePullSecrets = 15;\n\n  // Specifies the hostname of the Pod\n  // If not specified, the pod's hostname will be set to a system-defined value.\n  // +optional\n  optional string hostname = 16;\n\n  // If specified, the fully qualified Pod hostname will be \"<hostname>.<subdomain>.<pod namespace>.svc.<cluster domain>\".\n  // If not specified, the pod will not have a domainname at all.\n  // +optional\n  optional string subdomain = 17;\n\n  // If specified, the pod's scheduling constraints\n  // +optional\n  optional Affinity affinity = 18;\n\n  // If specified, the pod will be dispatched by specified scheduler.\n  // If not specified, the pod will be dispatched by default scheduler.\n  // +optional\n  optional string schedulerName = 19;\n\n  // If specified, the pod's tolerations.\n  // +optional\n  // +listType=atomic\n  repeated Toleration tolerations = 22;\n\n  // HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts\n  // file if specified.\n  // +optional\n  // +patchMergeKey=ip\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=ip\n  repeated HostAlias hostAliases = 23;\n\n  // If specified, indicates the pod's priority. \"system-node-critical\" and\n  // \"system-cluster-critical\" are two special keywords which indicate the\n  // highest priorities with the former being the highest priority. Any other\n  // name must be defined by creating a PriorityClass object with that name.\n  // If not specified, the pod priority will be default or zero if there is no\n  // default.\n  // +optional\n  optional string priorityClassName = 24;\n\n  // The priority value. Various system components use this field to find the\n  // priority of the pod. When Priority Admission Controller is enabled, it\n  // prevents users from setting this field. The admission controller populates\n  // this field from PriorityClassName.\n  // The higher the value, the higher the priority.\n  // +optional\n  optional int32 priority = 25;\n\n  // Specifies the DNS parameters of a pod.\n  // Parameters specified here will be merged to the generated DNS\n  // configuration based on DNSPolicy.\n  // +optional\n  optional PodDNSConfig dnsConfig = 26;\n\n  // If specified, all readiness gates will be evaluated for pod readiness.\n  // A pod is ready when all its containers are ready AND\n  // all conditions specified in the readiness gates have status equal to \"True\"\n  // More info: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates\n  // +optional\n  // +listType=atomic\n  repeated PodReadinessGate readinessGates = 28;\n\n  // RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used\n  // to run this pod.  If no RuntimeClass resource matches the named class, the pod will not be run.\n  // If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an\n  // empty definition that uses the default runtime handler.\n  // More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class\n  // +optional\n  optional string runtimeClassName = 29;\n\n  // EnableServiceLinks indicates whether information about services should be injected into pod's\n  // environment variables, matching the syntax of Docker links.\n  // Optional: Defaults to true.\n  // +optional\n  optional bool enableServiceLinks = 30;\n\n  // PreemptionPolicy is the Policy for preempting pods with lower priority.\n  // One of Never, PreemptLowerPriority.\n  // Defaults to PreemptLowerPriority if unset.\n  // +optional\n  optional string preemptionPolicy = 31;\n\n  // Overhead represents the resource overhead associated with running a pod for a given RuntimeClass.\n  // This field will be autopopulated at admission time by the RuntimeClass admission controller. If\n  // the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests.\n  // The RuntimeClass admission controller will reject Pod create requests which have the overhead already\n  // set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value\n  // defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero.\n  // More info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md\n  // +optional\n  map<string, .k8s.io.apimachinery.pkg.api.resource.Quantity> overhead = 32;\n\n  // TopologySpreadConstraints describes how a group of pods ought to spread across topology\n  // domains. Scheduler will schedule pods in a way which abides by the constraints.\n  // All topologySpreadConstraints are ANDed.\n  // +optional\n  // +patchMergeKey=topologyKey\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=topologyKey\n  // +listMapKey=whenUnsatisfiable\n  repeated TopologySpreadConstraint topologySpreadConstraints = 33;\n\n  // If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default).\n  // In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname).\n  // In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\CurrentControlSet\\\\Services\\\\Tcpip\\\\Parameters to FQDN.\n  // If a pod does not have FQDN, this has no effect.\n  // Default to false.\n  // +optional\n  optional bool setHostnameAsFQDN = 35;\n\n  // Specifies the OS of the containers in the pod.\n  // Some pod and container fields are restricted if this is set.\n  //\n  // If the OS field is set to linux, the following fields must be unset:\n  // -securityContext.windowsOptions\n  //\n  // If the OS field is set to windows, following fields must be unset:\n  // - spec.hostPID\n  // - spec.hostIPC\n  // - spec.hostUsers\n  // - spec.securityContext.appArmorProfile\n  // - spec.securityContext.seLinuxOptions\n  // - spec.securityContext.seccompProfile\n  // - spec.securityContext.fsGroup\n  // - spec.securityContext.fsGroupChangePolicy\n  // - spec.securityContext.sysctls\n  // - spec.shareProcessNamespace\n  // - spec.securityContext.runAsUser\n  // - spec.securityContext.runAsGroup\n  // - spec.securityContext.supplementalGroups\n  // - spec.securityContext.supplementalGroupsPolicy\n  // - spec.containers[*].securityContext.appArmorProfile\n  // - spec.containers[*].securityContext.seLinuxOptions\n  // - spec.containers[*].securityContext.seccompProfile\n  // - spec.containers[*].securityContext.capabilities\n  // - spec.containers[*].securityContext.readOnlyRootFilesystem\n  // - spec.containers[*].securityContext.privileged\n  // - spec.containers[*].securityContext.allowPrivilegeEscalation\n  // - spec.containers[*].securityContext.procMount\n  // - spec.containers[*].securityContext.runAsUser\n  // - spec.containers[*].securityContext.runAsGroup\n  // +optional\n  optional PodOS os = 36;\n\n  // Use the host's user namespace.\n  // Optional: Default to true.\n  // If set to true or not present, the pod will be run in the host user namespace, useful\n  // for when the pod needs a feature only available to the host user namespace, such as\n  // loading a kernel module with CAP_SYS_MODULE.\n  // When set to false, a new userns is created for the pod. Setting false is useful for\n  // mitigating container breakout vulnerabilities even allowing users to run their\n  // containers as root without actually having root privileges on the host.\n  // This field is alpha-level and is only honored by servers that enable the UserNamespacesSupport feature.\n  // +k8s:conversion-gen=false\n  // +optional\n  optional bool hostUsers = 37;\n\n  // SchedulingGates is an opaque list of values that if specified will block scheduling the pod.\n  // If schedulingGates is not empty, the pod will stay in the SchedulingGated state and the\n  // scheduler will not attempt to schedule the pod.\n  //\n  // SchedulingGates can only be set at pod creation time, and be removed only afterwards.\n  //\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=name\n  // +optional\n  repeated PodSchedulingGate schedulingGates = 38;\n\n  // ResourceClaims defines which ResourceClaims must be allocated\n  // and reserved before the Pod is allowed to start. The resources\n  // will be made available to those containers which consume them\n  // by name.\n  //\n  // This is an alpha field and requires enabling the\n  // DynamicResourceAllocation feature gate.\n  //\n  // This field is immutable.\n  //\n  // +patchMergeKey=name\n  // +patchStrategy=merge,retainKeys\n  // +listType=map\n  // +listMapKey=name\n  // +featureGate=DynamicResourceAllocation\n  // +optional\n  repeated PodResourceClaim resourceClaims = 39;\n\n  // Resources is the total amount of CPU and Memory resources required by all\n  // containers in the pod. It supports specifying Requests and Limits for\n  // \"cpu\" and \"memory\" resource names only. ResourceClaims are not supported.\n  //\n  // This field enables fine-grained control over resource allocation for the\n  // entire pod, allowing resource sharing among containers in a pod.\n  // TODO: For beta graduation, expand this comment with a detailed explanation.\n  //\n  // This is an alpha field and requires enabling the PodLevelResources feature\n  // gate.\n  //\n  // +featureGate=PodLevelResources\n  // +optional\n  optional ResourceRequirements resources = 40;\n}\n\n// PodStatus represents information about the status of a pod. Status may trail the actual\n// state of a system, especially if the node that hosts the pod cannot contact the control\n// plane.\nmessage PodStatus {\n  // The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle.\n  // The conditions array, the reason and message fields, and the individual container status\n  // arrays contain more detail about the pod's status.\n  // There are five possible phase values:\n  //\n  // Pending: The pod has been accepted by the Kubernetes system, but one or more of the\n  // container images has not been created. This includes time before being scheduled as\n  // well as time spent downloading images over the network, which could take a while.\n  // Running: The pod has been bound to a node, and all of the containers have been created.\n  // At least one container is still running, or is in the process of starting or restarting.\n  // Succeeded: All containers in the pod have terminated in success, and will not be restarted.\n  // Failed: All containers in the pod have terminated, and at least one container has\n  // terminated in failure. The container either exited with non-zero status or was terminated\n  // by the system.\n  // Unknown: For some reason the state of the pod could not be obtained, typically due to an\n  // error in communicating with the host of the pod.\n  //\n  // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase\n  // +optional\n  optional string phase = 1;\n\n  // Current service state of pod.\n  // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=type\n  repeated PodCondition conditions = 2;\n\n  // A human readable message indicating details about why the pod is in this condition.\n  // +optional\n  optional string message = 3;\n\n  // A brief CamelCase message indicating details about why the pod is in this state.\n  // e.g. 'Evicted'\n  // +optional\n  optional string reason = 4;\n\n  // nominatedNodeName is set only when this pod preempts other pods on the node, but it cannot be\n  // scheduled right away as preemption victims receive their graceful termination periods.\n  // This field does not guarantee that the pod will be scheduled on this node. Scheduler may decide\n  // to place the pod elsewhere if other nodes become available sooner. Scheduler may also decide to\n  // give the resources on this node to a higher priority pod that is created after preemption.\n  // As a result, this field may be different than PodSpec.nodeName when the pod is\n  // scheduled.\n  // +optional\n  optional string nominatedNodeName = 11;\n\n  // hostIP holds the IP address of the host to which the pod is assigned. Empty if the pod has not started yet.\n  // A pod can be assigned to a node that has a problem in kubelet which in turns mean that HostIP will\n  // not be updated even if there is a node is assigned to pod\n  // +optional\n  optional string hostIP = 5;\n\n  // hostIPs holds the IP addresses allocated to the host. If this field is specified, the first entry must\n  // match the hostIP field. This list is empty if the pod has not started yet.\n  // A pod can be assigned to a node that has a problem in kubelet which in turns means that HostIPs will\n  // not be updated even if there is a node is assigned to this pod.\n  // +optional\n  // +patchStrategy=merge\n  // +patchMergeKey=ip\n  // +listType=atomic\n  repeated HostIP hostIPs = 16;\n\n  // podIP address allocated to the pod. Routable at least within the cluster.\n  // Empty if not yet allocated.\n  // +optional\n  optional string podIP = 6;\n\n  // podIPs holds the IP addresses allocated to the pod. If this field is specified, the 0th entry must\n  // match the podIP field. Pods may be allocated at most 1 value for each of IPv4 and IPv6. This list\n  // is empty if no IPs have been allocated yet.\n  // +optional\n  // +patchStrategy=merge\n  // +patchMergeKey=ip\n  // +listType=map\n  // +listMapKey=ip\n  repeated PodIP podIPs = 12;\n\n  // RFC 3339 date and time at which the object was acknowledged by the Kubelet.\n  // This is before the Kubelet pulled the container image(s) for the pod.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startTime = 7;\n\n  // Statuses of init containers in this pod. The most recent successful non-restartable\n  // init container will have ready = true, the most recently started container will have\n  // startTime set.\n  // Each init container in the pod should have at most one status in this list,\n  // and all statuses should be for containers in the pod.\n  // However this is not enforced.\n  // If a status for a non-existent container is present in the list, or the list has duplicate names,\n  // the behavior of various Kubernetes components is not defined and those statuses might be\n  // ignored.\n  // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-and-container-status\n  // +listType=atomic\n  repeated ContainerStatus initContainerStatuses = 10;\n\n  // Statuses of containers in this pod.\n  // Each container in the pod should have at most one status in this list,\n  // and all statuses should be for containers in the pod.\n  // However this is not enforced.\n  // If a status for a non-existent container is present in the list, or the list has duplicate names,\n  // the behavior of various Kubernetes components is not defined and those statuses might be\n  // ignored.\n  // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status\n  // +optional\n  // +listType=atomic\n  repeated ContainerStatus containerStatuses = 8;\n\n  // The Quality of Service (QOS) classification assigned to the pod based on resource requirements\n  // See PodQOSClass type for available QOS classes\n  // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-qos/#quality-of-service-classes\n  // +optional\n  optional string qosClass = 9;\n\n  // Statuses for any ephemeral containers that have run in this pod.\n  // Each ephemeral container in the pod should have at most one status in this list,\n  // and all statuses should be for containers in the pod.\n  // However this is not enforced.\n  // If a status for a non-existent container is present in the list, or the list has duplicate names,\n  // the behavior of various Kubernetes components is not defined and those statuses might be\n  // ignored.\n  // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status\n  // +optional\n  // +listType=atomic\n  repeated ContainerStatus ephemeralContainerStatuses = 13;\n\n  // Status of resources resize desired for pod's containers.\n  // It is empty if no resources resize is pending.\n  // Any changes to container resources will automatically set this to \"Proposed\"\n  // +featureGate=InPlacePodVerticalScaling\n  // +optional\n  optional string resize = 14;\n\n  // Status of resource claims.\n  // +patchMergeKey=name\n  // +patchStrategy=merge,retainKeys\n  // +listType=map\n  // +listMapKey=name\n  // +featureGate=DynamicResourceAllocation\n  // +optional\n  repeated PodResourceClaimStatus resourceClaimStatuses = 15;\n}\n\n// PodStatusResult is a wrapper for PodStatus returned by kubelet that can be encode/decoded\nmessage PodStatusResult {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Most recently observed status of the pod.\n  // This data may not be up to date.\n  // Populated by the system.\n  // Read-only.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional PodStatus status = 2;\n}\n\n// PodTemplate describes a template for creating copies of a predefined pod.\nmessage PodTemplate {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Template defines the pods that will be created from this pod template.\n  // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional PodTemplateSpec template = 2;\n}\n\n// PodTemplateList is a list of PodTemplates.\nmessage PodTemplateList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of pod templates\n  repeated PodTemplate items = 2;\n}\n\n// PodTemplateSpec describes the data a pod should have when created from a template\nmessage PodTemplateSpec {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Specification of the desired behavior of the pod.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional PodSpec spec = 2;\n}\n\n// PortStatus represents the error condition of a service port\nmessage PortStatus {\n  // Port is the port number of the service port of which status is recorded here\n  optional int32 port = 1;\n\n  // Protocol is the protocol of the service port of which status is recorded here\n  // The supported values are: \"TCP\", \"UDP\", \"SCTP\"\n  optional string protocol = 2;\n\n  // Error is to record the problem with the service port\n  // The format of the error shall comply with the following rules:\n  // - built-in error values shall be specified in this file and those shall use\n  //   CamelCase names\n  // - cloud provider specific error values must have names that comply with the\n  //   format foo.example.com/CamelCase.\n  // ---\n  // The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)\n  // +optional\n  // +kubebuilder:validation:Required\n  // +kubebuilder:validation:Pattern=`^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$`\n  // +kubebuilder:validation:MaxLength=316\n  optional string error = 3;\n}\n\n// PortworxVolumeSource represents a Portworx volume resource.\nmessage PortworxVolumeSource {\n  // volumeID uniquely identifies a Portworx volume\n  optional string volumeID = 1;\n\n  // fSType represents the filesystem type to mount\n  // Must be a filesystem type supported by the host operating system.\n  // Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified.\n  optional string fsType = 2;\n\n  // readOnly defaults to false (read/write). ReadOnly here will force\n  // the ReadOnly setting in VolumeMounts.\n  // +optional\n  optional bool readOnly = 3;\n}\n\n// Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.\n// +k8s:openapi-gen=false\nmessage Preconditions {\n  // Specifies the target UID.\n  // +optional\n  optional string uid = 1;\n}\n\n// Describes a class of pods that should avoid this node.\nmessage PreferAvoidPodsEntry {\n  // The class of pods.\n  optional PodSignature podSignature = 1;\n\n  // Time at which this entry was added to the list.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time evictionTime = 2;\n\n  // (brief) reason why this entry was added to the list.\n  // +optional\n  optional string reason = 3;\n\n  // Human readable message indicating why this entry was added to the list.\n  // +optional\n  optional string message = 4;\n}\n\n// An empty preferred scheduling term matches all objects with implicit weight 0\n// (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).\nmessage PreferredSchedulingTerm {\n  // Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\n  optional int32 weight = 1;\n\n  // A node selector term, associated with the corresponding weight.\n  optional NodeSelectorTerm preference = 2;\n}\n\n// Probe describes a health check to be performed against a container to determine whether it is\n// alive or ready to receive traffic.\nmessage Probe {\n  // The action taken to determine the health of a container\n  optional ProbeHandler handler = 1;\n\n  // Number of seconds after the container has started before liveness probes are initiated.\n  // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\n  // +optional\n  optional int32 initialDelaySeconds = 2;\n\n  // Number of seconds after which the probe times out.\n  // Defaults to 1 second. Minimum value is 1.\n  // More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\n  // +optional\n  optional int32 timeoutSeconds = 3;\n\n  // How often (in seconds) to perform the probe.\n  // Default to 10 seconds. Minimum value is 1.\n  // +optional\n  optional int32 periodSeconds = 4;\n\n  // Minimum consecutive successes for the probe to be considered successful after having failed.\n  // Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\n  // +optional\n  optional int32 successThreshold = 5;\n\n  // Minimum consecutive failures for the probe to be considered failed after having succeeded.\n  // Defaults to 3. Minimum value is 1.\n  // +optional\n  optional int32 failureThreshold = 6;\n\n  // Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\n  // The grace period is the duration in seconds after the processes running in the pod are sent\n  // a termination signal and the time when the processes are forcibly halted with a kill signal.\n  // Set this value longer than the expected cleanup time for your process.\n  // If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\n  // value overrides the value provided by the pod spec.\n  // Value must be non-negative integer. The value zero indicates stop immediately via\n  // the kill signal (no opportunity to shut down).\n  // This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\n  // Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\n  // +optional\n  optional int64 terminationGracePeriodSeconds = 7;\n}\n\n// ProbeHandler defines a specific action that should be taken in a probe.\n// One and only one of the fields must be specified.\nmessage ProbeHandler {\n  // Exec specifies a command to execute in the container.\n  // +optional\n  optional ExecAction exec = 1;\n\n  // HTTPGet specifies an HTTP GET request to perform.\n  // +optional\n  optional HTTPGetAction httpGet = 2;\n\n  // TCPSocket specifies a connection to a TCP port.\n  // +optional\n  optional TCPSocketAction tcpSocket = 3;\n\n  // GRPC specifies a GRPC HealthCheckRequest.\n  // +optional\n  optional GRPCAction grpc = 4;\n}\n\n// Represents a projected volume source\nmessage ProjectedVolumeSource {\n  // sources is the list of volume projections. Each entry in this list\n  // handles one source.\n  // +optional\n  // +listType=atomic\n  repeated VolumeProjection sources = 1;\n\n  // defaultMode are the mode bits used to set permissions on created files by default.\n  // Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\n  // YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\n  // Directories within the path are not affected by this setting.\n  // This might be in conflict with other options that affect the file\n  // mode, like fsGroup, and the result can be other mode bits set.\n  // +optional\n  optional int32 defaultMode = 2;\n}\n\n// Represents a Quobyte mount that lasts the lifetime of a pod.\n// Quobyte volumes do not support ownership management or SELinux relabeling.\nmessage QuobyteVolumeSource {\n  // registry represents a single or multiple Quobyte Registry services\n  // specified as a string as host:port pair (multiple entries are separated with commas)\n  // which acts as the central registry for volumes\n  optional string registry = 1;\n\n  // volume is a string that references an already created Quobyte volume by name.\n  optional string volume = 2;\n\n  // readOnly here will force the Quobyte volume to be mounted with read-only permissions.\n  // Defaults to false.\n  // +optional\n  optional bool readOnly = 3;\n\n  // user to map volume access to\n  // Defaults to serivceaccount user\n  // +optional\n  optional string user = 4;\n\n  // group to map volume access to\n  // Default is no group\n  // +optional\n  optional string group = 5;\n\n  // tenant owning the given Quobyte volume in the Backend\n  // Used with dynamically provisioned Quobyte volumes, value is set by the plugin\n  // +optional\n  optional string tenant = 6;\n}\n\n// Represents a Rados Block Device mount that lasts the lifetime of a pod.\n// RBD volumes support ownership management and SELinux relabeling.\nmessage RBDPersistentVolumeSource {\n  // monitors is a collection of Ceph monitors.\n  // More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n  // +listType=atomic\n  repeated string monitors = 1;\n\n  // image is the rados image name.\n  // More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n  optional string image = 2;\n\n  // fsType is the filesystem type of the volume that you want to mount.\n  // Tip: Ensure that the filesystem type is supported by the host operating system.\n  // Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd\n  // TODO: how do we prevent errors in the filesystem from compromising the machine\n  // +optional\n  optional string fsType = 3;\n\n  // pool is the rados pool name.\n  // Default is rbd.\n  // More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n  // +optional\n  // +default=\"rbd\"\n  optional string pool = 4;\n\n  // user is the rados user name.\n  // Default is admin.\n  // More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n  // +optional\n  // +default=\"admin\"\n  optional string user = 5;\n\n  // keyring is the path to key ring for RBDUser.\n  // Default is /etc/ceph/keyring.\n  // More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n  // +optional\n  // +default=\"/etc/ceph/keyring\"\n  optional string keyring = 6;\n\n  // secretRef is name of the authentication secret for RBDUser. If provided\n  // overrides keyring.\n  // Default is nil.\n  // More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n  // +optional\n  optional SecretReference secretRef = 7;\n\n  // readOnly here will force the ReadOnly setting in VolumeMounts.\n  // Defaults to false.\n  // More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n  // +optional\n  optional bool readOnly = 8;\n}\n\n// Represents a Rados Block Device mount that lasts the lifetime of a pod.\n// RBD volumes support ownership management and SELinux relabeling.\nmessage RBDVolumeSource {\n  // monitors is a collection of Ceph monitors.\n  // More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n  // +listType=atomic\n  repeated string monitors = 1;\n\n  // image is the rados image name.\n  // More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n  optional string image = 2;\n\n  // fsType is the filesystem type of the volume that you want to mount.\n  // Tip: Ensure that the filesystem type is supported by the host operating system.\n  // Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd\n  // TODO: how do we prevent errors in the filesystem from compromising the machine\n  // +optional\n  optional string fsType = 3;\n\n  // pool is the rados pool name.\n  // Default is rbd.\n  // More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n  // +optional\n  // +default=\"rbd\"\n  optional string pool = 4;\n\n  // user is the rados user name.\n  // Default is admin.\n  // More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n  // +optional\n  // +default=\"admin\"\n  optional string user = 5;\n\n  // keyring is the path to key ring for RBDUser.\n  // Default is /etc/ceph/keyring.\n  // More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n  // +optional\n  // +default=\"/etc/ceph/keyring\"\n  optional string keyring = 6;\n\n  // secretRef is name of the authentication secret for RBDUser. If provided\n  // overrides keyring.\n  // Default is nil.\n  // More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n  // +optional\n  optional LocalObjectReference secretRef = 7;\n\n  // readOnly here will force the ReadOnly setting in VolumeMounts.\n  // Defaults to false.\n  // More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n  // +optional\n  optional bool readOnly = 8;\n}\n\n// RangeAllocation is not a public type.\nmessage RangeAllocation {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Range is string that identifies the range represented by 'data'.\n  optional string range = 2;\n\n  // Data is a bit array containing all allocated addresses in the previous segment.\n  optional bytes data = 3;\n}\n\n// ReplicationController represents the configuration of a replication controller.\nmessage ReplicationController {\n  // If the Labels of a ReplicationController are empty, they are defaulted to\n  // be the same as the Pod(s) that the replication controller manages.\n  // Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec defines the specification of the desired behavior of the replication controller.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional ReplicationControllerSpec spec = 2;\n\n  // Status is the most recently observed status of the replication controller.\n  // This data may be out of date by some window of time.\n  // Populated by the system.\n  // Read-only.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional ReplicationControllerStatus status = 3;\n}\n\n// ReplicationControllerCondition describes the state of a replication controller at a certain point.\nmessage ReplicationControllerCondition {\n  // Type of replication controller condition.\n  optional string type = 1;\n\n  // Status of the condition, one of True, False, Unknown.\n  optional string status = 2;\n\n  // The last time the condition transitioned from one status to another.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // The reason for the condition's last transition.\n  // +optional\n  optional string reason = 4;\n\n  // A human readable message indicating details about the transition.\n  // +optional\n  optional string message = 5;\n}\n\n// ReplicationControllerList is a collection of replication controllers.\nmessage ReplicationControllerList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of replication controllers.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller\n  repeated ReplicationController items = 2;\n}\n\n// ReplicationControllerSpec is the specification of a replication controller.\nmessage ReplicationControllerSpec {\n  // Replicas is the number of desired replicas.\n  // This is a pointer to distinguish between explicit zero and unspecified.\n  // Defaults to 1.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller\n  // +optional\n  optional int32 replicas = 1;\n\n  // Minimum number of seconds for which a newly created pod should be ready\n  // without any of its container crashing, for it to be considered available.\n  // Defaults to 0 (pod will be considered available as soon as it is ready)\n  // +optional\n  optional int32 minReadySeconds = 4;\n\n  // Selector is a label query over pods that should match the Replicas count.\n  // If Selector is empty, it is defaulted to the labels present on the Pod template.\n  // Label keys and values that must match in order to be controlled by this replication\n  // controller, if empty defaulted to labels on Pod template.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n  // +optional\n  // +mapType=atomic\n  map<string, string> selector = 2;\n\n  // Template is the object that describes the pod that will be created if\n  // insufficient replicas are detected. This takes precedence over a TemplateRef.\n  // The only allowed template.spec.restartPolicy value is \"Always\".\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\n  // +optional\n  optional PodTemplateSpec template = 3;\n}\n\n// ReplicationControllerStatus represents the current status of a replication\n// controller.\nmessage ReplicationControllerStatus {\n  // Replicas is the most recently observed number of replicas.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller\n  optional int32 replicas = 1;\n\n  // The number of pods that have labels matching the labels of the pod template of the replication controller.\n  // +optional\n  optional int32 fullyLabeledReplicas = 2;\n\n  // The number of ready replicas for this replication controller.\n  // +optional\n  optional int32 readyReplicas = 4;\n\n  // The number of available replicas (ready for at least minReadySeconds) for this replication controller.\n  // +optional\n  optional int32 availableReplicas = 5;\n\n  // ObservedGeneration reflects the generation of the most recently observed replication controller.\n  // +optional\n  optional int64 observedGeneration = 3;\n\n  // Represents the latest available observations of a replication controller's current state.\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=type\n  repeated ReplicationControllerCondition conditions = 6;\n}\n\n// ResourceClaim references one entry in PodSpec.ResourceClaims.\nmessage ResourceClaim {\n  // Name must match the name of one entry in pod.spec.resourceClaims of\n  // the Pod where this field is used. It makes that resource available\n  // inside a container.\n  optional string name = 1;\n\n  // Request is the name chosen for a request in the referenced claim.\n  // If empty, everything from the claim is made available, otherwise\n  // only the result of this request.\n  //\n  // +optional\n  optional string request = 2;\n}\n\n// ResourceFieldSelector represents container resources (cpu, memory) and their output format\n// +structType=atomic\nmessage ResourceFieldSelector {\n  // Container name: required for volumes, optional for env vars\n  // +optional\n  optional string containerName = 1;\n\n  // Required: resource to select\n  optional string resource = 2;\n\n  // Specifies the output format of the exposed resources, defaults to \"1\"\n  // +optional\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity divisor = 3;\n}\n\n// ResourceHealth represents the health of a resource. It has the latest device health information.\n// This is a part of KEP https://kep.k8s.io/4680.\nmessage ResourceHealth {\n  // ResourceID is the unique identifier of the resource. See the ResourceID type for more information.\n  optional string resourceID = 1;\n\n  // Health of the resource.\n  // can be one of:\n  //  - Healthy: operates as normal\n  //  - Unhealthy: reported unhealthy. We consider this a temporary health issue\n  //               since we do not have a mechanism today to distinguish\n  //               temporary and permanent issues.\n  //  - Unknown: The status cannot be determined.\n  //             For example, Device Plugin got unregistered and hasn't been re-registered since.\n  //\n  // In future we may want to introduce the PermanentlyUnhealthy Status.\n  optional string health = 2;\n}\n\n// ResourceQuota sets aggregate quota restrictions enforced per namespace\nmessage ResourceQuota {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec defines the desired quota.\n  // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional ResourceQuotaSpec spec = 2;\n\n  // Status defines the actual enforced quota and its current usage.\n  // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional ResourceQuotaStatus status = 3;\n}\n\n// ResourceQuotaList is a list of ResourceQuota items.\nmessage ResourceQuotaList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is a list of ResourceQuota objects.\n  // More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/\n  repeated ResourceQuota items = 2;\n}\n\n// ResourceQuotaSpec defines the desired hard limits to enforce for Quota.\nmessage ResourceQuotaSpec {\n  // hard is the set of desired hard limits for each named resource.\n  // More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/\n  // +optional\n  map<string, .k8s.io.apimachinery.pkg.api.resource.Quantity> hard = 1;\n\n  // A collection of filters that must match each object tracked by a quota.\n  // If not specified, the quota matches all objects.\n  // +optional\n  // +listType=atomic\n  repeated string scopes = 2;\n\n  // scopeSelector is also a collection of filters like scopes that must match each object tracked by a quota\n  // but expressed using ScopeSelectorOperator in combination with possible values.\n  // For a resource to match, both scopes AND scopeSelector (if specified in spec), must be matched.\n  // +optional\n  optional ScopeSelector scopeSelector = 3;\n}\n\n// ResourceQuotaStatus defines the enforced hard limits and observed use.\nmessage ResourceQuotaStatus {\n  // Hard is the set of enforced hard limits for each named resource.\n  // More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/\n  // +optional\n  map<string, .k8s.io.apimachinery.pkg.api.resource.Quantity> hard = 1;\n\n  // Used is the current observed total usage of the resource in the namespace.\n  // +optional\n  map<string, .k8s.io.apimachinery.pkg.api.resource.Quantity> used = 2;\n}\n\n// ResourceRequirements describes the compute resource requirements.\nmessage ResourceRequirements {\n  // Limits describes the maximum amount of compute resources allowed.\n  // More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\n  // +optional\n  map<string, .k8s.io.apimachinery.pkg.api.resource.Quantity> limits = 1;\n\n  // Requests describes the minimum amount of compute resources required.\n  // If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\n  // otherwise to an implementation-defined value. Requests cannot exceed Limits.\n  // More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\n  // +optional\n  map<string, .k8s.io.apimachinery.pkg.api.resource.Quantity> requests = 2;\n\n  // Claims lists the names of resources, defined in spec.resourceClaims,\n  // that are used by this container.\n  //\n  // This is an alpha field and requires enabling the\n  // DynamicResourceAllocation feature gate.\n  //\n  // This field is immutable. It can only be set for containers.\n  //\n  // +listType=map\n  // +listMapKey=name\n  // +featureGate=DynamicResourceAllocation\n  // +optional\n  repeated ResourceClaim claims = 3;\n}\n\n// ResourceStatus represents the status of a single resource allocated to a Pod.\nmessage ResourceStatus {\n  // Name of the resource. Must be unique within the pod and in case of non-DRA resource, match one of the resources from the pod spec.\n  // For DRA resources, the value must be \"claim:<claim_name>/<request>\".\n  // When this status is reported about a container, the \"claim_name\" and \"request\" must match one of the claims of this container.\n  // +required\n  optional string name = 1;\n\n  // List of unique resources health. Each element in the list contains an unique resource ID and its health.\n  // At a minimum, for the lifetime of a Pod, resource ID must uniquely identify the resource allocated to the Pod on the Node.\n  // If other Pod on the same Node reports the status with the same resource ID, it must be the same resource they share.\n  // See ResourceID type definition for a specific format it has in various use cases.\n  // +listType=map\n  // +listMapKey=resourceID\n  repeated ResourceHealth resources = 2;\n}\n\n// SELinuxOptions are the labels to be applied to the container\nmessage SELinuxOptions {\n  // User is a SELinux user label that applies to the container.\n  // +optional\n  optional string user = 1;\n\n  // Role is a SELinux role label that applies to the container.\n  // +optional\n  optional string role = 2;\n\n  // Type is a SELinux type label that applies to the container.\n  // +optional\n  optional string type = 3;\n\n  // Level is SELinux level label that applies to the container.\n  // +optional\n  optional string level = 4;\n}\n\n// ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume\nmessage ScaleIOPersistentVolumeSource {\n  // gateway is the host address of the ScaleIO API Gateway.\n  optional string gateway = 1;\n\n  // system is the name of the storage system as configured in ScaleIO.\n  optional string system = 2;\n\n  // secretRef references to the secret for ScaleIO user and other\n  // sensitive information. If this is not provided, Login operation will fail.\n  optional SecretReference secretRef = 3;\n\n  // sslEnabled is the flag to enable/disable SSL communication with Gateway, default false\n  // +optional\n  optional bool sslEnabled = 4;\n\n  // protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\n  // +optional\n  optional string protectionDomain = 5;\n\n  // storagePool is the ScaleIO Storage Pool associated with the protection domain.\n  // +optional\n  optional string storagePool = 6;\n\n  // storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.\n  // Default is ThinProvisioned.\n  // +optional\n  // +default=\"ThinProvisioned\"\n  optional string storageMode = 7;\n\n  // volumeName is the name of a volume already created in the ScaleIO system\n  // that is associated with this volume source.\n  optional string volumeName = 8;\n\n  // fsType is the filesystem type to mount.\n  // Must be a filesystem type supported by the host operating system.\n  // Ex. \"ext4\", \"xfs\", \"ntfs\".\n  // Default is \"xfs\"\n  // +optional\n  // +default=\"xfs\"\n  optional string fsType = 9;\n\n  // readOnly defaults to false (read/write). ReadOnly here will force\n  // the ReadOnly setting in VolumeMounts.\n  // +optional\n  optional bool readOnly = 10;\n}\n\n// ScaleIOVolumeSource represents a persistent ScaleIO volume\nmessage ScaleIOVolumeSource {\n  // gateway is the host address of the ScaleIO API Gateway.\n  optional string gateway = 1;\n\n  // system is the name of the storage system as configured in ScaleIO.\n  optional string system = 2;\n\n  // secretRef references to the secret for ScaleIO user and other\n  // sensitive information. If this is not provided, Login operation will fail.\n  optional LocalObjectReference secretRef = 3;\n\n  // sslEnabled Flag enable/disable SSL communication with Gateway, default false\n  // +optional\n  optional bool sslEnabled = 4;\n\n  // protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\n  // +optional\n  optional string protectionDomain = 5;\n\n  // storagePool is the ScaleIO Storage Pool associated with the protection domain.\n  // +optional\n  optional string storagePool = 6;\n\n  // storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.\n  // Default is ThinProvisioned.\n  // +optional\n  // +default=\"ThinProvisioned\"\n  optional string storageMode = 7;\n\n  // volumeName is the name of a volume already created in the ScaleIO system\n  // that is associated with this volume source.\n  optional string volumeName = 8;\n\n  // fsType is the filesystem type to mount.\n  // Must be a filesystem type supported by the host operating system.\n  // Ex. \"ext4\", \"xfs\", \"ntfs\".\n  // Default is \"xfs\".\n  // +optional\n  // +default=\"xfs\"\n  optional string fsType = 9;\n\n  // readOnly Defaults to false (read/write). ReadOnly here will force\n  // the ReadOnly setting in VolumeMounts.\n  // +optional\n  optional bool readOnly = 10;\n}\n\n// A scope selector represents the AND of the selectors represented\n// by the scoped-resource selector requirements.\n// +structType=atomic\nmessage ScopeSelector {\n  // A list of scope selector requirements by scope of the resources.\n  // +optional\n  // +listType=atomic\n  repeated ScopedResourceSelectorRequirement matchExpressions = 1;\n}\n\n// A scoped-resource selector requirement is a selector that contains values, a scope name, and an operator\n// that relates the scope name and values.\nmessage ScopedResourceSelectorRequirement {\n  // The name of the scope that the selector applies to.\n  optional string scopeName = 1;\n\n  // Represents a scope's relationship to a set of values.\n  // Valid operators are In, NotIn, Exists, DoesNotExist.\n  optional string operator = 2;\n\n  // An array of string values. If the operator is In or NotIn,\n  // the values array must be non-empty. If the operator is Exists or DoesNotExist,\n  // the values array must be empty.\n  // This array is replaced during a strategic merge patch.\n  // +optional\n  // +listType=atomic\n  repeated string values = 3;\n}\n\n// SeccompProfile defines a pod/container's seccomp profile settings.\n// Only one profile source may be set.\n// +union\nmessage SeccompProfile {\n  // type indicates which kind of seccomp profile will be applied.\n  // Valid options are:\n  //\n  // Localhost - a profile defined in a file on the node should be used.\n  // RuntimeDefault - the container runtime default profile should be used.\n  // Unconfined - no profile should be applied.\n  // +unionDiscriminator\n  optional string type = 1;\n\n  // localhostProfile indicates a profile defined in a file on the node should be used.\n  // The profile must be preconfigured on the node to work.\n  // Must be a descending path, relative to the kubelet's configured seccomp profile location.\n  // Must be set if type is \"Localhost\". Must NOT be set for any other type.\n  // +optional\n  optional string localhostProfile = 2;\n}\n\n// Secret holds secret data of a certain type. The total bytes of the values in\n// the Data field must be less than MaxSecretSize bytes.\nmessage Secret {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Immutable, if set to true, ensures that data stored in the Secret cannot\n  // be updated (only object metadata can be modified).\n  // If not set to true, the field can be modified at any time.\n  // Defaulted to nil.\n  // +optional\n  optional bool immutable = 5;\n\n  // Data contains the secret data. Each key must consist of alphanumeric\n  // characters, '-', '_' or '.'. The serialized form of the secret data is a\n  // base64 encoded string, representing the arbitrary (possibly non-string)\n  // data value here. Described in https://tools.ietf.org/html/rfc4648#section-4\n  // +optional\n  map<string, bytes> data = 2;\n\n  // stringData allows specifying non-binary secret data in string form.\n  // It is provided as a write-only input field for convenience.\n  // All keys and values are merged into the data field on write, overwriting any existing values.\n  // The stringData field is never output when reading from the API.\n  // +k8s:conversion-gen=false\n  // +optional\n  map<string, string> stringData = 4;\n\n  // Used to facilitate programmatic handling of secret data.\n  // More info: https://kubernetes.io/docs/concepts/configuration/secret/#secret-types\n  // +optional\n  optional string type = 3;\n}\n\n// SecretEnvSource selects a Secret to populate the environment\n// variables with.\n//\n// The contents of the target Secret's Data field will represent the\n// key-value pairs as environment variables.\nmessage SecretEnvSource {\n  // The Secret to select from.\n  optional LocalObjectReference localObjectReference = 1;\n\n  // Specify whether the Secret must be defined\n  // +optional\n  optional bool optional = 2;\n}\n\n// SecretKeySelector selects a key of a Secret.\n// +structType=atomic\nmessage SecretKeySelector {\n  // The name of the secret in the pod's namespace to select from.\n  optional LocalObjectReference localObjectReference = 1;\n\n  // The key of the secret to select from.  Must be a valid secret key.\n  optional string key = 2;\n\n  // Specify whether the Secret or its key must be defined\n  // +optional\n  optional bool optional = 3;\n}\n\n// SecretList is a list of Secret.\nmessage SecretList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is a list of secret objects.\n  // More info: https://kubernetes.io/docs/concepts/configuration/secret\n  repeated Secret items = 2;\n}\n\n// Adapts a secret into a projected volume.\n//\n// The contents of the target Secret's Data field will be presented in a\n// projected volume as files using the keys in the Data field as the file names.\n// Note that this is identical to a secret volume source without the default\n// mode.\nmessage SecretProjection {\n  optional LocalObjectReference localObjectReference = 1;\n\n  // items if unspecified, each key-value pair in the Data field of the referenced\n  // Secret will be projected into the volume as a file whose name is the\n  // key and content is the value. If specified, the listed keys will be\n  // projected into the specified paths, and unlisted keys will not be\n  // present. If a key is specified which is not present in the Secret,\n  // the volume setup will error unless it is marked optional. Paths must be\n  // relative and may not contain the '..' path or start with '..'.\n  // +optional\n  // +listType=atomic\n  repeated KeyToPath items = 2;\n\n  // optional field specify whether the Secret or its key must be defined\n  // +optional\n  optional bool optional = 4;\n}\n\n// SecretReference represents a Secret Reference. It has enough information to retrieve secret\n// in any namespace\n// +structType=atomic\nmessage SecretReference {\n  // name is unique within a namespace to reference a secret resource.\n  // +optional\n  optional string name = 1;\n\n  // namespace defines the space within which the secret name must be unique.\n  // +optional\n  optional string namespace = 2;\n}\n\n// Adapts a Secret into a volume.\n//\n// The contents of the target Secret's Data field will be presented in a volume\n// as files using the keys in the Data field as the file names.\n// Secret volumes support ownership management and SELinux relabeling.\nmessage SecretVolumeSource {\n  // secretName is the name of the secret in the pod's namespace to use.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\n  // +optional\n  optional string secretName = 1;\n\n  // items If unspecified, each key-value pair in the Data field of the referenced\n  // Secret will be projected into the volume as a file whose name is the\n  // key and content is the value. If specified, the listed keys will be\n  // projected into the specified paths, and unlisted keys will not be\n  // present. If a key is specified which is not present in the Secret,\n  // the volume setup will error unless it is marked optional. Paths must be\n  // relative and may not contain the '..' path or start with '..'.\n  // +optional\n  // +listType=atomic\n  repeated KeyToPath items = 2;\n\n  // defaultMode is Optional: mode bits used to set permissions on created files by default.\n  // Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\n  // YAML accepts both octal and decimal values, JSON requires decimal values\n  // for mode bits. Defaults to 0644.\n  // Directories within the path are not affected by this setting.\n  // This might be in conflict with other options that affect the file\n  // mode, like fsGroup, and the result can be other mode bits set.\n  // +optional\n  optional int32 defaultMode = 3;\n\n  // optional field specify whether the Secret or its keys must be defined\n  // +optional\n  optional bool optional = 4;\n}\n\n// SecurityContext holds security configuration that will be applied to a container.\n// Some fields are present in both SecurityContext and PodSecurityContext.  When both\n// are set, the values in SecurityContext take precedence.\nmessage SecurityContext {\n  // The capabilities to add/drop when running containers.\n  // Defaults to the default set of capabilities granted by the container runtime.\n  // Note that this field cannot be set when spec.os.name is windows.\n  // +optional\n  optional Capabilities capabilities = 1;\n\n  // Run container in privileged mode.\n  // Processes in privileged containers are essentially equivalent to root on the host.\n  // Defaults to false.\n  // Note that this field cannot be set when spec.os.name is windows.\n  // +optional\n  optional bool privileged = 2;\n\n  // The SELinux context to be applied to the container.\n  // If unspecified, the container runtime will allocate a random SELinux context for each\n  // container.  May also be set in PodSecurityContext.  If set in both SecurityContext and\n  // PodSecurityContext, the value specified in SecurityContext takes precedence.\n  // Note that this field cannot be set when spec.os.name is windows.\n  // +optional\n  optional SELinuxOptions seLinuxOptions = 3;\n\n  // The Windows specific settings applied to all containers.\n  // If unspecified, the options from the PodSecurityContext will be used.\n  // If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\n  // Note that this field cannot be set when spec.os.name is linux.\n  // +optional\n  optional WindowsSecurityContextOptions windowsOptions = 10;\n\n  // The UID to run the entrypoint of the container process.\n  // Defaults to user specified in image metadata if unspecified.\n  // May also be set in PodSecurityContext.  If set in both SecurityContext and\n  // PodSecurityContext, the value specified in SecurityContext takes precedence.\n  // Note that this field cannot be set when spec.os.name is windows.\n  // +optional\n  optional int64 runAsUser = 4;\n\n  // The GID to run the entrypoint of the container process.\n  // Uses runtime default if unset.\n  // May also be set in PodSecurityContext.  If set in both SecurityContext and\n  // PodSecurityContext, the value specified in SecurityContext takes precedence.\n  // Note that this field cannot be set when spec.os.name is windows.\n  // +optional\n  optional int64 runAsGroup = 8;\n\n  // Indicates that the container must run as a non-root user.\n  // If true, the Kubelet will validate the image at runtime to ensure that it\n  // does not run as UID 0 (root) and fail to start the container if it does.\n  // If unset or false, no such validation will be performed.\n  // May also be set in PodSecurityContext.  If set in both SecurityContext and\n  // PodSecurityContext, the value specified in SecurityContext takes precedence.\n  // +optional\n  optional bool runAsNonRoot = 5;\n\n  // Whether this container has a read-only root filesystem.\n  // Default is false.\n  // Note that this field cannot be set when spec.os.name is windows.\n  // +optional\n  optional bool readOnlyRootFilesystem = 6;\n\n  // AllowPrivilegeEscalation controls whether a process can gain more\n  // privileges than its parent process. This bool directly controls if\n  // the no_new_privs flag will be set on the container process.\n  // AllowPrivilegeEscalation is true always when the container is:\n  // 1) run as Privileged\n  // 2) has CAP_SYS_ADMIN\n  // Note that this field cannot be set when spec.os.name is windows.\n  // +optional\n  optional bool allowPrivilegeEscalation = 7;\n\n  // procMount denotes the type of proc mount to use for the containers.\n  // The default value is Default which uses the container runtime defaults for\n  // readonly paths and masked paths.\n  // This requires the ProcMountType feature flag to be enabled.\n  // Note that this field cannot be set when spec.os.name is windows.\n  // +optional\n  optional string procMount = 9;\n\n  // The seccomp options to use by this container. If seccomp options are\n  // provided at both the pod & container level, the container options\n  // override the pod options.\n  // Note that this field cannot be set when spec.os.name is windows.\n  // +optional\n  optional SeccompProfile seccompProfile = 11;\n\n  // appArmorProfile is the AppArmor options to use by this container. If set, this profile\n  // overrides the pod's appArmorProfile.\n  // Note that this field cannot be set when spec.os.name is windows.\n  // +optional\n  optional AppArmorProfile appArmorProfile = 12;\n}\n\n// SerializedReference is a reference to serialized object.\nmessage SerializedReference {\n  // The reference to an object in the system.\n  // +optional\n  optional ObjectReference reference = 1;\n}\n\n// Service is a named abstraction of software service (for example, mysql) consisting of local port\n// (for example 3306) that the proxy listens on, and the selector that determines which pods\n// will answer requests sent through the proxy.\nmessage Service {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec defines the behavior of a service.\n  // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional ServiceSpec spec = 2;\n\n  // Most recently observed status of the service.\n  // Populated by the system.\n  // Read-only.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional ServiceStatus status = 3;\n}\n\n// ServiceAccount binds together:\n// * a name, understood by users, and perhaps by peripheral systems, for an identity\n// * a principal that can be authenticated and authorized\n// * a set of secrets\nmessage ServiceAccount {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use.\n  // Pods are only limited to this list if this service account has a \"kubernetes.io/enforce-mountable-secrets\" annotation set to \"true\".\n  // The \"kubernetes.io/enforce-mountable-secrets\" annotation is deprecated since v1.32.\n  // Prefer separate namespaces to isolate access to mounted secrets.\n  // This field should not be used to find auto-generated service account token secrets for use outside of pods.\n  // Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created.\n  // More info: https://kubernetes.io/docs/concepts/configuration/secret\n  // +optional\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=name\n  repeated ObjectReference secrets = 2;\n\n  // ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images\n  // in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets\n  // can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet.\n  // More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod\n  // +optional\n  // +listType=atomic\n  repeated LocalObjectReference imagePullSecrets = 3;\n\n  // AutomountServiceAccountToken indicates whether pods running as this service account should have an API token automatically mounted.\n  // Can be overridden at the pod level.\n  // +optional\n  optional bool automountServiceAccountToken = 4;\n}\n\n// ServiceAccountList is a list of ServiceAccount objects\nmessage ServiceAccountList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of ServiceAccounts.\n  // More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/\n  repeated ServiceAccount items = 2;\n}\n\n// ServiceAccountTokenProjection represents a projected service account token\n// volume. This projection can be used to insert a service account token into\n// the pods runtime filesystem for use against APIs (Kubernetes API Server or\n// otherwise).\nmessage ServiceAccountTokenProjection {\n  // audience is the intended audience of the token. A recipient of a token\n  // must identify itself with an identifier specified in the audience of the\n  // token, and otherwise should reject the token. The audience defaults to the\n  // identifier of the apiserver.\n  // +optional\n  optional string audience = 1;\n\n  // expirationSeconds is the requested duration of validity of the service\n  // account token. As the token approaches expiration, the kubelet volume\n  // plugin will proactively rotate the service account token. The kubelet will\n  // start trying to rotate the token if the token is older than 80 percent of\n  // its time to live or if the token is older than 24 hours.Defaults to 1 hour\n  // and must be at least 10 minutes.\n  // +optional\n  optional int64 expirationSeconds = 2;\n\n  // path is the path relative to the mount point of the file to project the\n  // token into.\n  optional string path = 3;\n}\n\n// ServiceList holds a list of services.\nmessage ServiceList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of services\n  repeated Service items = 2;\n}\n\n// ServicePort contains information on service's port.\nmessage ServicePort {\n  // The name of this port within the service. This must be a DNS_LABEL.\n  // All ports within a ServiceSpec must have unique names. When considering\n  // the endpoints for a Service, this must match the 'name' field in the\n  // EndpointPort.\n  // Optional if only one ServicePort is defined on this service.\n  // +optional\n  optional string name = 1;\n\n  // The IP protocol for this port. Supports \"TCP\", \"UDP\", and \"SCTP\".\n  // Default is TCP.\n  // +default=\"TCP\"\n  // +optional\n  optional string protocol = 2;\n\n  // The application protocol for this port.\n  // This is used as a hint for implementations to offer richer behavior for protocols that they understand.\n  // This field follows standard Kubernetes label syntax.\n  // Valid values are either:\n  //\n  // * Un-prefixed protocol names - reserved for IANA standard service names (as per\n  // RFC-6335 and https://www.iana.org/assignments/service-names).\n  //\n  // * Kubernetes-defined prefixed names:\n  //   * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior-\n  //   * 'kubernetes.io/ws'  - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455\n  //   * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455\n  //\n  // * Other protocols should use implementation-defined prefixed names such as\n  // mycompany.com/my-custom-protocol.\n  // +optional\n  optional string appProtocol = 6;\n\n  // The port that will be exposed by this service.\n  optional int32 port = 3;\n\n  // Number or name of the port to access on the pods targeted by the service.\n  // Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\n  // If this is a string, it will be looked up as a named port in the\n  // target Pod's container ports. If this is not specified, the value\n  // of the 'port' field is used (an identity map).\n  // This field is ignored for services with clusterIP=None, and should be\n  // omitted or set equal to the 'port' field.\n  // More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service\n  // +optional\n  optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString targetPort = 4;\n\n  // The port on each node on which this service is exposed when type is\n  // NodePort or LoadBalancer.  Usually assigned by the system. If a value is\n  // specified, in-range, and not in use it will be used, otherwise the\n  // operation will fail.  If not specified, a port will be allocated if this\n  // Service requires one.  If this field is specified when creating a\n  // Service which does not need it, creation will fail. This field will be\n  // wiped when updating a Service to no longer need it (e.g. changing type\n  // from NodePort to ClusterIP).\n  // More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport\n  // +optional\n  optional int32 nodePort = 5;\n}\n\n// ServiceProxyOptions is the query options to a Service's proxy call.\nmessage ServiceProxyOptions {\n  // Path is the part of URLs that include service endpoints, suffixes,\n  // and parameters to use for the current proxy request to service.\n  // For example, the whole request URL is\n  // http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy.\n  // Path is _search?q=user:kimchy.\n  // +optional\n  optional string path = 1;\n}\n\n// ServiceSpec describes the attributes that a user creates on a service.\nmessage ServiceSpec {\n  // The list of ports that are exposed by this service.\n  // More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\n  // +patchMergeKey=port\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=port\n  // +listMapKey=protocol\n  repeated ServicePort ports = 1;\n\n  // Route service traffic to pods with label keys and values matching this\n  // selector. If empty or not present, the service is assumed to have an\n  // external process managing its endpoints, which Kubernetes will not\n  // modify. Only applies to types ClusterIP, NodePort, and LoadBalancer.\n  // Ignored if type is ExternalName.\n  // More info: https://kubernetes.io/docs/concepts/services-networking/service/\n  // +optional\n  // +mapType=atomic\n  map<string, string> selector = 2;\n\n  // clusterIP is the IP address of the service and is usually assigned\n  // randomly. If an address is specified manually, is in-range (as per\n  // system configuration), and is not in use, it will be allocated to the\n  // service; otherwise creation of the service will fail. This field may not\n  // be changed through updates unless the type field is also being changed\n  // to ExternalName (which requires this field to be blank) or the type\n  // field is being changed from ExternalName (in which case this field may\n  // optionally be specified, as describe above).  Valid values are \"None\",\n  // empty string (\"\"), or a valid IP address. Setting this to \"None\" makes a\n  // \"headless service\" (no virtual IP), which is useful when direct endpoint\n  // connections are preferred and proxying is not required.  Only applies to\n  // types ClusterIP, NodePort, and LoadBalancer. If this field is specified\n  // when creating a Service of type ExternalName, creation will fail. This\n  // field will be wiped when updating a Service to type ExternalName.\n  // More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\n  // +optional\n  optional string clusterIP = 3;\n\n  // ClusterIPs is a list of IP addresses assigned to this service, and are\n  // usually assigned randomly.  If an address is specified manually, is\n  // in-range (as per system configuration), and is not in use, it will be\n  // allocated to the service; otherwise creation of the service will fail.\n  // This field may not be changed through updates unless the type field is\n  // also being changed to ExternalName (which requires this field to be\n  // empty) or the type field is being changed from ExternalName (in which\n  // case this field may optionally be specified, as describe above).  Valid\n  // values are \"None\", empty string (\"\"), or a valid IP address.  Setting\n  // this to \"None\" makes a \"headless service\" (no virtual IP), which is\n  // useful when direct endpoint connections are preferred and proxying is\n  // not required.  Only applies to types ClusterIP, NodePort, and\n  // LoadBalancer. If this field is specified when creating a Service of type\n  // ExternalName, creation will fail. This field will be wiped when updating\n  // a Service to type ExternalName.  If this field is not specified, it will\n  // be initialized from the clusterIP field.  If this field is specified,\n  // clients must ensure that clusterIPs[0] and clusterIP have the same\n  // value.\n  //\n  // This field may hold a maximum of two entries (dual-stack IPs, in either order).\n  // These IPs must correspond to the values of the ipFamilies field. Both\n  // clusterIPs and ipFamilies are governed by the ipFamilyPolicy field.\n  // More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\n  // +listType=atomic\n  // +optional\n  repeated string clusterIPs = 18;\n\n  // type determines how the Service is exposed. Defaults to ClusterIP. Valid\n  // options are ExternalName, ClusterIP, NodePort, and LoadBalancer.\n  // \"ClusterIP\" allocates a cluster-internal IP address for load-balancing\n  // to endpoints. Endpoints are determined by the selector or if that is not\n  // specified, by manual construction of an Endpoints object or\n  // EndpointSlice objects. If clusterIP is \"None\", no virtual IP is\n  // allocated and the endpoints are published as a set of endpoints rather\n  // than a virtual IP.\n  // \"NodePort\" builds on ClusterIP and allocates a port on every node which\n  // routes to the same endpoints as the clusterIP.\n  // \"LoadBalancer\" builds on NodePort and creates an external load-balancer\n  // (if supported in the current cloud) which routes to the same endpoints\n  // as the clusterIP.\n  // \"ExternalName\" aliases this service to the specified externalName.\n  // Several other fields do not apply to ExternalName services.\n  // More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types\n  // +optional\n  optional string type = 4;\n\n  // externalIPs is a list of IP addresses for which nodes in the cluster\n  // will also accept traffic for this service.  These IPs are not managed by\n  // Kubernetes.  The user is responsible for ensuring that traffic arrives\n  // at a node with this IP.  A common example is external load-balancers\n  // that are not part of the Kubernetes system.\n  // +optional\n  // +listType=atomic\n  repeated string externalIPs = 5;\n\n  // Supports \"ClientIP\" and \"None\". Used to maintain session affinity.\n  // Enable client IP based session affinity.\n  // Must be ClientIP or None.\n  // Defaults to None.\n  // More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\n  // +optional\n  optional string sessionAffinity = 7;\n\n  // Only applies to Service Type: LoadBalancer.\n  // This feature depends on whether the underlying cloud-provider supports specifying\n  // the loadBalancerIP when a load balancer is created.\n  // This field will be ignored if the cloud-provider does not support the feature.\n  // Deprecated: This field was under-specified and its meaning varies across implementations.\n  // Using it is non-portable and it may not support dual-stack.\n  // Users are encouraged to use implementation-specific annotations when available.\n  // +optional\n  optional string loadBalancerIP = 8;\n\n  // If specified and supported by the platform, this will restrict traffic through the cloud-provider\n  // load-balancer will be restricted to the specified client IPs. This field will be ignored if the\n  // cloud-provider does not support the feature.\"\n  // More info: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/\n  // +optional\n  // +listType=atomic\n  repeated string loadBalancerSourceRanges = 9;\n\n  // externalName is the external reference that discovery mechanisms will\n  // return as an alias for this service (e.g. a DNS CNAME record). No\n  // proxying will be involved.  Must be a lowercase RFC-1123 hostname\n  // (https://tools.ietf.org/html/rfc1123) and requires `type` to be \"ExternalName\".\n  // +optional\n  optional string externalName = 10;\n\n  // externalTrafficPolicy describes how nodes distribute service traffic they\n  // receive on one of the Service's \"externally-facing\" addresses (NodePorts,\n  // ExternalIPs, and LoadBalancer IPs). If set to \"Local\", the proxy will configure\n  // the service in a way that assumes that external load balancers will take care\n  // of balancing the service traffic between nodes, and so each node will deliver\n  // traffic only to the node-local endpoints of the service, without masquerading\n  // the client source IP. (Traffic mistakenly sent to a node with no endpoints will\n  // be dropped.) The default value, \"Cluster\", uses the standard behavior of\n  // routing to all endpoints evenly (possibly modified by topology and other\n  // features). Note that traffic sent to an External IP or LoadBalancer IP from\n  // within the cluster will always get \"Cluster\" semantics, but clients sending to\n  // a NodePort from within the cluster may need to take traffic policy into account\n  // when picking a node.\n  // +optional\n  optional string externalTrafficPolicy = 11;\n\n  // healthCheckNodePort specifies the healthcheck nodePort for the service.\n  // This only applies when type is set to LoadBalancer and\n  // externalTrafficPolicy is set to Local. If a value is specified, is\n  // in-range, and is not in use, it will be used.  If not specified, a value\n  // will be automatically allocated.  External systems (e.g. load-balancers)\n  // can use this port to determine if a given node holds endpoints for this\n  // service or not.  If this field is specified when creating a Service\n  // which does not need it, creation will fail. This field will be wiped\n  // when updating a Service to no longer need it (e.g. changing type).\n  // This field cannot be updated once set.\n  // +optional\n  optional int32 healthCheckNodePort = 12;\n\n  // publishNotReadyAddresses indicates that any agent which deals with endpoints for this\n  // Service should disregard any indications of ready/not-ready.\n  // The primary use case for setting this field is for a StatefulSet's Headless Service to\n  // propagate SRV DNS records for its Pods for the purpose of peer discovery.\n  // The Kubernetes controllers that generate Endpoints and EndpointSlice resources for\n  // Services interpret this to mean that all endpoints are considered \"ready\" even if the\n  // Pods themselves are not. Agents which consume only Kubernetes generated endpoints\n  // through the Endpoints or EndpointSlice resources can safely assume this behavior.\n  // +optional\n  optional bool publishNotReadyAddresses = 13;\n\n  // sessionAffinityConfig contains the configurations of session affinity.\n  // +optional\n  optional SessionAffinityConfig sessionAffinityConfig = 14;\n\n  // IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this\n  // service. This field is usually assigned automatically based on cluster\n  // configuration and the ipFamilyPolicy field. If this field is specified\n  // manually, the requested family is available in the cluster,\n  // and ipFamilyPolicy allows it, it will be used; otherwise creation of\n  // the service will fail. This field is conditionally mutable: it allows\n  // for adding or removing a secondary IP family, but it does not allow\n  // changing the primary IP family of the Service. Valid values are \"IPv4\"\n  // and \"IPv6\".  This field only applies to Services of types ClusterIP,\n  // NodePort, and LoadBalancer, and does apply to \"headless\" services.\n  // This field will be wiped when updating a Service to type ExternalName.\n  //\n  // This field may hold a maximum of two entries (dual-stack families, in\n  // either order).  These families must correspond to the values of the\n  // clusterIPs field, if specified. Both clusterIPs and ipFamilies are\n  // governed by the ipFamilyPolicy field.\n  // +listType=atomic\n  // +optional\n  repeated string ipFamilies = 19;\n\n  // IPFamilyPolicy represents the dual-stack-ness requested or required by\n  // this Service. If there is no value provided, then this field will be set\n  // to SingleStack. Services can be \"SingleStack\" (a single IP family),\n  // \"PreferDualStack\" (two IP families on dual-stack configured clusters or\n  // a single IP family on single-stack clusters), or \"RequireDualStack\"\n  // (two IP families on dual-stack configured clusters, otherwise fail). The\n  // ipFamilies and clusterIPs fields depend on the value of this field. This\n  // field will be wiped when updating a service to type ExternalName.\n  // +optional\n  optional string ipFamilyPolicy = 17;\n\n  // allocateLoadBalancerNodePorts defines if NodePorts will be automatically\n  // allocated for services with type LoadBalancer.  Default is \"true\". It\n  // may be set to \"false\" if the cluster load-balancer does not rely on\n  // NodePorts.  If the caller requests specific NodePorts (by specifying a\n  // value), those requests will be respected, regardless of this field.\n  // This field may only be set for services with type LoadBalancer and will\n  // be cleared if the type is changed to any other type.\n  // +optional\n  optional bool allocateLoadBalancerNodePorts = 20;\n\n  // loadBalancerClass is the class of the load balancer implementation this Service belongs to.\n  // If specified, the value of this field must be a label-style identifier, with an optional prefix,\n  // e.g. \"internal-vip\" or \"example.com/internal-vip\". Unprefixed names are reserved for end-users.\n  // This field can only be set when the Service type is 'LoadBalancer'. If not set, the default load\n  // balancer implementation is used, today this is typically done through the cloud provider integration,\n  // but should apply for any default implementation. If set, it is assumed that a load balancer\n  // implementation is watching for Services with a matching class. Any default load balancer\n  // implementation (e.g. cloud providers) should ignore Services that set this field.\n  // This field can only be set when creating or updating a Service to type 'LoadBalancer'.\n  // Once set, it can not be changed. This field will be wiped when a service is updated to a non 'LoadBalancer' type.\n  // +optional\n  optional string loadBalancerClass = 21;\n\n  // InternalTrafficPolicy describes how nodes distribute service traffic they\n  // receive on the ClusterIP. If set to \"Local\", the proxy will assume that pods\n  // only want to talk to endpoints of the service on the same node as the pod,\n  // dropping the traffic if there are no local endpoints. The default value,\n  // \"Cluster\", uses the standard behavior of routing to all endpoints evenly\n  // (possibly modified by topology and other features).\n  // +optional\n  optional string internalTrafficPolicy = 22;\n\n  // TrafficDistribution offers a way to express preferences for how traffic is\n  // distributed to Service endpoints. Implementations can use this field as a\n  // hint, but are not required to guarantee strict adherence. If the field is\n  // not set, the implementation will apply its default routing strategy. If set\n  // to \"PreferClose\", implementations should prioritize endpoints that are\n  // topologically close (e.g., same zone).\n  // This is a beta field and requires enabling ServiceTrafficDistribution feature.\n  // +featureGate=ServiceTrafficDistribution\n  // +optional\n  optional string trafficDistribution = 23;\n}\n\n// ServiceStatus represents the current status of a service.\nmessage ServiceStatus {\n  // LoadBalancer contains the current status of the load-balancer,\n  // if one is present.\n  // +optional\n  optional LoadBalancerStatus loadBalancer = 1;\n\n  // Current service state\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=type\n  repeated .k8s.io.apimachinery.pkg.apis.meta.v1.Condition conditions = 2;\n}\n\n// SessionAffinityConfig represents the configurations of session affinity.\nmessage SessionAffinityConfig {\n  // clientIP contains the configurations of Client IP based session affinity.\n  // +optional\n  optional ClientIPConfig clientIP = 1;\n}\n\n// SleepAction describes a \"sleep\" action.\nmessage SleepAction {\n  // Seconds is the number of seconds to sleep.\n  optional int64 seconds = 1;\n}\n\n// Represents a StorageOS persistent volume resource.\nmessage StorageOSPersistentVolumeSource {\n  // volumeName is the human-readable name of the StorageOS volume.  Volume\n  // names are only unique within a namespace.\n  optional string volumeName = 1;\n\n  // volumeNamespace specifies the scope of the volume within StorageOS.  If no\n  // namespace is specified then the Pod's namespace will be used.  This allows the\n  // Kubernetes name scoping to be mirrored within StorageOS for tighter integration.\n  // Set VolumeName to any name to override the default behaviour.\n  // Set to \"default\" if you are not using namespaces within StorageOS.\n  // Namespaces that do not pre-exist within StorageOS will be created.\n  // +optional\n  optional string volumeNamespace = 2;\n\n  // fsType is the filesystem type to mount.\n  // Must be a filesystem type supported by the host operating system.\n  // Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n  // +optional\n  optional string fsType = 3;\n\n  // readOnly defaults to false (read/write). ReadOnly here will force\n  // the ReadOnly setting in VolumeMounts.\n  // +optional\n  optional bool readOnly = 4;\n\n  // secretRef specifies the secret to use for obtaining the StorageOS API\n  // credentials.  If not specified, default values will be attempted.\n  // +optional\n  optional ObjectReference secretRef = 5;\n}\n\n// Represents a StorageOS persistent volume resource.\nmessage StorageOSVolumeSource {\n  // volumeName is the human-readable name of the StorageOS volume.  Volume\n  // names are only unique within a namespace.\n  optional string volumeName = 1;\n\n  // volumeNamespace specifies the scope of the volume within StorageOS.  If no\n  // namespace is specified then the Pod's namespace will be used.  This allows the\n  // Kubernetes name scoping to be mirrored within StorageOS for tighter integration.\n  // Set VolumeName to any name to override the default behaviour.\n  // Set to \"default\" if you are not using namespaces within StorageOS.\n  // Namespaces that do not pre-exist within StorageOS will be created.\n  // +optional\n  optional string volumeNamespace = 2;\n\n  // fsType is the filesystem type to mount.\n  // Must be a filesystem type supported by the host operating system.\n  // Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n  // +optional\n  optional string fsType = 3;\n\n  // readOnly defaults to false (read/write). ReadOnly here will force\n  // the ReadOnly setting in VolumeMounts.\n  // +optional\n  optional bool readOnly = 4;\n\n  // secretRef specifies the secret to use for obtaining the StorageOS API\n  // credentials.  If not specified, default values will be attempted.\n  // +optional\n  optional LocalObjectReference secretRef = 5;\n}\n\n// Sysctl defines a kernel parameter to be set\nmessage Sysctl {\n  // Name of a property to set\n  optional string name = 1;\n\n  // Value of a property to set\n  optional string value = 2;\n}\n\n// TCPSocketAction describes an action based on opening a socket\nmessage TCPSocketAction {\n  // Number or name of the port to access on the container.\n  // Number must be in the range 1 to 65535.\n  // Name must be an IANA_SVC_NAME.\n  optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString port = 1;\n\n  // Optional: Host name to connect to, defaults to the pod IP.\n  // +optional\n  optional string host = 2;\n}\n\n// The node this Taint is attached to has the \"effect\" on\n// any pod that does not tolerate the Taint.\nmessage Taint {\n  // Required. The taint key to be applied to a node.\n  optional string key = 1;\n\n  // The taint value corresponding to the taint key.\n  // +optional\n  optional string value = 2;\n\n  // Required. The effect of the taint on pods\n  // that do not tolerate the taint.\n  // Valid effects are NoSchedule, PreferNoSchedule and NoExecute.\n  optional string effect = 3;\n\n  // TimeAdded represents the time at which the taint was added.\n  // It is only written for NoExecute taints.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time timeAdded = 4;\n}\n\n// The pod this Toleration is attached to tolerates any taint that matches\n// the triple <key,value,effect> using the matching operator <operator>.\nmessage Toleration {\n  // Key is the taint key that the toleration applies to. Empty means match all taint keys.\n  // If the key is empty, operator must be Exists; this combination means to match all values and all keys.\n  // +optional\n  optional string key = 1;\n\n  // Operator represents a key's relationship to the value.\n  // Valid operators are Exists and Equal. Defaults to Equal.\n  // Exists is equivalent to wildcard for value, so that a pod can\n  // tolerate all taints of a particular category.\n  // +optional\n  optional string operator = 2;\n\n  // Value is the taint value the toleration matches to.\n  // If the operator is Exists, the value should be empty, otherwise just a regular string.\n  // +optional\n  optional string value = 3;\n\n  // Effect indicates the taint effect to match. Empty means match all taint effects.\n  // When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\n  // +optional\n  optional string effect = 4;\n\n  // TolerationSeconds represents the period of time the toleration (which must be\n  // of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,\n  // it is not set, which means tolerate the taint forever (do not evict). Zero and\n  // negative values will be treated as 0 (evict immediately) by the system.\n  // +optional\n  optional int64 tolerationSeconds = 5;\n}\n\n// A topology selector requirement is a selector that matches given label.\n// This is an alpha feature and may change in the future.\nmessage TopologySelectorLabelRequirement {\n  // The label key that the selector applies to.\n  optional string key = 1;\n\n  // An array of string values. One value must match the label to be selected.\n  // Each entry in Values is ORed.\n  // +listType=atomic\n  repeated string values = 2;\n}\n\n// A topology selector term represents the result of label queries.\n// A null or empty topology selector term matches no objects.\n// The requirements of them are ANDed.\n// It provides a subset of functionality as NodeSelectorTerm.\n// This is an alpha feature and may change in the future.\n// +structType=atomic\nmessage TopologySelectorTerm {\n  // A list of topology selector requirements by labels.\n  // +optional\n  // +listType=atomic\n  repeated TopologySelectorLabelRequirement matchLabelExpressions = 1;\n}\n\n// TopologySpreadConstraint specifies how to spread matching pods among the given topology.\nmessage TopologySpreadConstraint {\n  // MaxSkew describes the degree to which pods may be unevenly distributed.\n  // When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference\n  // between the number of matching pods in the target topology and the global minimum.\n  // The global minimum is the minimum number of matching pods in an eligible domain\n  // or zero if the number of eligible domains is less than MinDomains.\n  // For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same\n  // labelSelector spread as 2/2/1:\n  // In this case, the global minimum is 1.\n  // +-------+-------+-------+\n  // | zone1 | zone2 | zone3 |\n  // +-------+-------+-------+\n  // |  P P  |  P P  |   P   |\n  // +-------+-------+-------+\n  // - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2;\n  // scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2)\n  // violate MaxSkew(1).\n  // - if MaxSkew is 2, incoming pod can be scheduled onto any zone.\n  // When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence\n  // to topologies that satisfy it.\n  // It's a required field. Default value is 1 and 0 is not allowed.\n  optional int32 maxSkew = 1;\n\n  // TopologyKey is the key of node labels. Nodes that have a label with this key\n  // and identical values are considered to be in the same topology.\n  // We consider each <key, value> as a \"bucket\", and try to put balanced number\n  // of pods into each bucket.\n  // We define a domain as a particular instance of a topology.\n  // Also, we define an eligible domain as a domain whose nodes meet the requirements of\n  // nodeAffinityPolicy and nodeTaintsPolicy.\n  // e.g. If TopologyKey is \"kubernetes.io/hostname\", each Node is a domain of that topology.\n  // And, if TopologyKey is \"topology.kubernetes.io/zone\", each zone is a domain of that topology.\n  // It's a required field.\n  optional string topologyKey = 2;\n\n  // WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy\n  // the spread constraint.\n  // - DoNotSchedule (default) tells the scheduler not to schedule it.\n  // - ScheduleAnyway tells the scheduler to schedule the pod in any location,\n  //   but giving higher precedence to topologies that would help reduce the\n  //   skew.\n  // A constraint is considered \"Unsatisfiable\" for an incoming pod\n  // if and only if every possible node assignment for that pod would violate\n  // \"MaxSkew\" on some topology.\n  // For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same\n  // labelSelector spread as 3/1/1:\n  // +-------+-------+-------+\n  // | zone1 | zone2 | zone3 |\n  // +-------+-------+-------+\n  // | P P P |   P   |   P   |\n  // +-------+-------+-------+\n  // If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled\n  // to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies\n  // MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler\n  // won't make it *more* imbalanced.\n  // It's a required field.\n  optional string whenUnsatisfiable = 3;\n\n  // LabelSelector is used to find matching pods.\n  // Pods that match this label selector are counted to determine the number of pods\n  // in their corresponding topology domain.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector labelSelector = 4;\n\n  // MinDomains indicates a minimum number of eligible domains.\n  // When the number of eligible domains with matching topology keys is less than minDomains,\n  // Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed.\n  // And when the number of eligible domains with matching topology keys equals or greater than minDomains,\n  // this value has no effect on scheduling.\n  // As a result, when the number of eligible domains is less than minDomains,\n  // scheduler won't schedule more than maxSkew Pods to those domains.\n  // If value is nil, the constraint behaves as if MinDomains is equal to 1.\n  // Valid values are integers greater than 0.\n  // When value is not nil, WhenUnsatisfiable must be DoNotSchedule.\n  //\n  // For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same\n  // labelSelector spread as 2/2/2:\n  // +-------+-------+-------+\n  // | zone1 | zone2 | zone3 |\n  // +-------+-------+-------+\n  // |  P P  |  P P  |  P P  |\n  // +-------+-------+-------+\n  // The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0.\n  // In this situation, new pod with the same labelSelector cannot be scheduled,\n  // because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones,\n  // it will violate MaxSkew.\n  // +optional\n  optional int32 minDomains = 5;\n\n  // NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector\n  // when calculating pod topology spread skew. Options are:\n  // - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations.\n  // - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.\n  //\n  // If this value is nil, the behavior is equivalent to the Honor policy.\n  // This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\n  // +optional\n  optional string nodeAffinityPolicy = 6;\n\n  // NodeTaintsPolicy indicates how we will treat node taints when calculating\n  // pod topology spread skew. Options are:\n  // - Honor: nodes without taints, along with tainted nodes for which the incoming pod\n  // has a toleration, are included.\n  // - Ignore: node taints are ignored. All nodes are included.\n  //\n  // If this value is nil, the behavior is equivalent to the Ignore policy.\n  // This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\n  // +optional\n  optional string nodeTaintsPolicy = 7;\n\n  // MatchLabelKeys is a set of pod label keys to select the pods over which\n  // spreading will be calculated. The keys are used to lookup values from the\n  // incoming pod labels, those key-value labels are ANDed with labelSelector\n  // to select the group of existing pods over which spreading will be calculated\n  // for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector.\n  // MatchLabelKeys cannot be set when LabelSelector isn't set.\n  // Keys that don't exist in the incoming pod labels will\n  // be ignored. A null or empty list means only match against labelSelector.\n  //\n  // This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).\n  // +listType=atomic\n  // +optional\n  repeated string matchLabelKeys = 8;\n}\n\n// TypedLocalObjectReference contains enough information to let you locate the\n// typed referenced object inside the same namespace.\n// ---\n// New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs.\n//  1. Invalid usage help.  It is impossible to add specific help for individual usage.  In most embedded usages, there are particular\n//     restrictions like, \"must refer only to types A and B\" or \"UID not honored\" or \"name must be restricted\".\n//     Those cannot be well described when embedded.\n//  2. Inconsistent validation.  Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen.\n//  3. The fields are both imprecise and overly precise.  Kind is not a precise mapping to a URL. This can produce ambiguity\n//     during interpretation and require a REST mapping.  In most cases, the dependency is on the group,resource tuple\n//     and the version of the actual struct is irrelevant.\n//  4. We cannot easily change it.  Because this type is embedded in many locations, updates to this type\n//     will affect numerous schemas.  Don't make new APIs embed an underspecified API type they do not control.\n//\n// Instead of using this type, create a locally provided and used type that is well-focused on your reference.\n// For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 .\n// +structType=atomic\nmessage TypedLocalObjectReference {\n  // APIGroup is the group for the resource being referenced.\n  // If APIGroup is not specified, the specified Kind must be in the core API group.\n  // For any other third-party types, APIGroup is required.\n  // +optional\n  optional string apiGroup = 1;\n\n  // Kind is the type of resource being referenced\n  optional string kind = 2;\n\n  // Name is the name of resource being referenced\n  optional string name = 3;\n}\n\n// TypedObjectReference contains enough information to let you locate the typed referenced object\nmessage TypedObjectReference {\n  // APIGroup is the group for the resource being referenced.\n  // If APIGroup is not specified, the specified Kind must be in the core API group.\n  // For any other third-party types, APIGroup is required.\n  // +optional\n  optional string apiGroup = 1;\n\n  // Kind is the type of resource being referenced\n  optional string kind = 2;\n\n  // Name is the name of resource being referenced\n  optional string name = 3;\n\n  // Namespace is the namespace of resource being referenced\n  // Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details.\n  // (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\n  // +featureGate=CrossNamespaceVolumeDataSource\n  // +optional\n  optional string namespace = 4;\n}\n\n// Volume represents a named volume in a pod that may be accessed by any container in the pod.\nmessage Volume {\n  // name of the volume.\n  // Must be a DNS_LABEL and unique within the pod.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\n  optional string name = 1;\n\n  // volumeSource represents the location and type of the mounted volume.\n  // If not specified, the Volume is implied to be an EmptyDir.\n  // This implied behavior is deprecated and will be removed in a future version.\n  optional VolumeSource volumeSource = 2;\n}\n\n// volumeDevice describes a mapping of a raw block device within a container.\nmessage VolumeDevice {\n  // name must match the name of a persistentVolumeClaim in the pod\n  optional string name = 1;\n\n  // devicePath is the path inside of the container that the device will be mapped to.\n  optional string devicePath = 2;\n}\n\n// VolumeMount describes a mounting of a Volume within a container.\nmessage VolumeMount {\n  // This must match the Name of a Volume.\n  optional string name = 1;\n\n  // Mounted read-only if true, read-write otherwise (false or unspecified).\n  // Defaults to false.\n  // +optional\n  optional bool readOnly = 2;\n\n  // RecursiveReadOnly specifies whether read-only mounts should be handled\n  // recursively.\n  //\n  // If ReadOnly is false, this field has no meaning and must be unspecified.\n  //\n  // If ReadOnly is true, and this field is set to Disabled, the mount is not made\n  // recursively read-only.  If this field is set to IfPossible, the mount is made\n  // recursively read-only, if it is supported by the container runtime.  If this\n  // field is set to Enabled, the mount is made recursively read-only if it is\n  // supported by the container runtime, otherwise the pod will not be started and\n  // an error will be generated to indicate the reason.\n  //\n  // If this field is set to IfPossible or Enabled, MountPropagation must be set to\n  // None (or be unspecified, which defaults to None).\n  //\n  // If this field is not specified, it is treated as an equivalent of Disabled.\n  //\n  // +featureGate=RecursiveReadOnlyMounts\n  // +optional\n  optional string recursiveReadOnly = 7;\n\n  // Path within the container at which the volume should be mounted.  Must\n  // not contain ':'.\n  optional string mountPath = 3;\n\n  // Path within the volume from which the container's volume should be mounted.\n  // Defaults to \"\" (volume's root).\n  // +optional\n  optional string subPath = 4;\n\n  // mountPropagation determines how mounts are propagated from the host\n  // to container and the other way around.\n  // When not set, MountPropagationNone is used.\n  // This field is beta in 1.10.\n  // When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified\n  // (which defaults to None).\n  // +optional\n  optional string mountPropagation = 5;\n\n  // Expanded path within the volume from which the container's volume should be mounted.\n  // Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.\n  // Defaults to \"\" (volume's root).\n  // SubPathExpr and SubPath are mutually exclusive.\n  // +optional\n  optional string subPathExpr = 6;\n}\n\n// VolumeMountStatus shows status of volume mounts.\nmessage VolumeMountStatus {\n  // Name corresponds to the name of the original VolumeMount.\n  optional string name = 1;\n\n  // MountPath corresponds to the original VolumeMount.\n  optional string mountPath = 2;\n\n  // ReadOnly corresponds to the original VolumeMount.\n  // +optional\n  optional bool readOnly = 3;\n\n  // RecursiveReadOnly must be set to Disabled, Enabled, or unspecified (for non-readonly mounts).\n  // An IfPossible value in the original VolumeMount must be translated to Disabled or Enabled,\n  // depending on the mount result.\n  // +featureGate=RecursiveReadOnlyMounts\n  // +optional\n  optional string recursiveReadOnly = 4;\n}\n\n// VolumeNodeAffinity defines constraints that limit what nodes this volume can be accessed from.\nmessage VolumeNodeAffinity {\n  // required specifies hard node constraints that must be met.\n  optional NodeSelector required = 1;\n}\n\n// Projection that may be projected along with other supported volume types.\n// Exactly one of these fields must be set.\nmessage VolumeProjection {\n  // secret information about the secret data to project\n  // +optional\n  optional SecretProjection secret = 1;\n\n  // downwardAPI information about the downwardAPI data to project\n  // +optional\n  optional DownwardAPIProjection downwardAPI = 2;\n\n  // configMap information about the configMap data to project\n  // +optional\n  optional ConfigMapProjection configMap = 3;\n\n  // serviceAccountToken is information about the serviceAccountToken data to project\n  // +optional\n  optional ServiceAccountTokenProjection serviceAccountToken = 4;\n\n  // ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field\n  // of ClusterTrustBundle objects in an auto-updating file.\n  //\n  // Alpha, gated by the ClusterTrustBundleProjection feature gate.\n  //\n  // ClusterTrustBundle objects can either be selected by name, or by the\n  // combination of signer name and a label selector.\n  //\n  // Kubelet performs aggressive normalization of the PEM contents written\n  // into the pod filesystem.  Esoteric PEM features such as inter-block\n  // comments and block headers are stripped.  Certificates are deduplicated.\n  // The ordering of certificates within the file is arbitrary, and Kubelet\n  // may change the order over time.\n  //\n  // +featureGate=ClusterTrustBundleProjection\n  // +optional\n  optional ClusterTrustBundleProjection clusterTrustBundle = 5;\n}\n\n// VolumeResourceRequirements describes the storage resource requirements for a volume.\nmessage VolumeResourceRequirements {\n  // Limits describes the maximum amount of compute resources allowed.\n  // More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\n  // +optional\n  map<string, .k8s.io.apimachinery.pkg.api.resource.Quantity> limits = 1;\n\n  // Requests describes the minimum amount of compute resources required.\n  // If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\n  // otherwise to an implementation-defined value. Requests cannot exceed Limits.\n  // More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\n  // +optional\n  map<string, .k8s.io.apimachinery.pkg.api.resource.Quantity> requests = 2;\n}\n\n// Represents the source of a volume to mount.\n// Only one of its members may be specified.\nmessage VolumeSource {\n  // hostPath represents a pre-existing file or directory on the host\n  // machine that is directly exposed to the container. This is generally\n  // used for system agents or other privileged things that are allowed\n  // to see the host machine. Most containers will NOT need this.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\n  // ---\n  // TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not\n  // mount host directories as read/write.\n  // +optional\n  optional HostPathVolumeSource hostPath = 1;\n\n  // emptyDir represents a temporary directory that shares a pod's lifetime.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\n  // +optional\n  optional EmptyDirVolumeSource emptyDir = 2;\n\n  // gcePersistentDisk represents a GCE Disk resource that is attached to a\n  // kubelet's host machine and then exposed to the pod.\n  // Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree\n  // gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\n  // +optional\n  optional GCEPersistentDiskVolumeSource gcePersistentDisk = 3;\n\n  // awsElasticBlockStore represents an AWS Disk resource that is attached to a\n  // kubelet's host machine and then exposed to the pod.\n  // Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree\n  // awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\n  // +optional\n  optional AWSElasticBlockStoreVolumeSource awsElasticBlockStore = 4;\n\n  // gitRepo represents a git repository at a particular revision.\n  // Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an\n  // EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir\n  // into the Pod's container.\n  // +optional\n  optional GitRepoVolumeSource gitRepo = 5;\n\n  // secret represents a secret that should populate this volume.\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\n  // +optional\n  optional SecretVolumeSource secret = 6;\n\n  // nfs represents an NFS mount on the host that shares a pod's lifetime\n  // More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\n  // +optional\n  optional NFSVolumeSource nfs = 7;\n\n  // iscsi represents an ISCSI Disk resource that is attached to a\n  // kubelet's host machine and then exposed to the pod.\n  // More info: https://examples.k8s.io/volumes/iscsi/README.md\n  // +optional\n  optional ISCSIVolumeSource iscsi = 8;\n\n  // glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.\n  // Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.\n  // More info: https://examples.k8s.io/volumes/glusterfs/README.md\n  // +optional\n  optional GlusterfsVolumeSource glusterfs = 9;\n\n  // persistentVolumeClaimVolumeSource represents a reference to a\n  // PersistentVolumeClaim in the same namespace.\n  // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\n  // +optional\n  optional PersistentVolumeClaimVolumeSource persistentVolumeClaim = 10;\n\n  // rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.\n  // Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported.\n  // More info: https://examples.k8s.io/volumes/rbd/README.md\n  // +optional\n  optional RBDVolumeSource rbd = 11;\n\n  // flexVolume represents a generic volume resource that is\n  // provisioned/attached using an exec based plugin.\n  // Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.\n  // +optional\n  optional FlexVolumeSource flexVolume = 12;\n\n  // cinder represents a cinder volume attached and mounted on kubelets host machine.\n  // Deprecated: Cinder is deprecated. All operations for the in-tree cinder type\n  // are redirected to the cinder.csi.openstack.org CSI driver.\n  // More info: https://examples.k8s.io/mysql-cinder-pd/README.md\n  // +optional\n  optional CinderVolumeSource cinder = 13;\n\n  // cephFS represents a Ceph FS mount on the host that shares a pod's lifetime.\n  // Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.\n  // +optional\n  optional CephFSVolumeSource cephfs = 14;\n\n  // flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running.\n  // Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.\n  // +optional\n  optional FlockerVolumeSource flocker = 15;\n\n  // downwardAPI represents downward API about the pod that should populate this volume\n  // +optional\n  optional DownwardAPIVolumeSource downwardAPI = 16;\n\n  // fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\n  // +optional\n  optional FCVolumeSource fc = 17;\n\n  // azureFile represents an Azure File Service mount on the host and bind mount to the pod.\n  // Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type\n  // are redirected to the file.csi.azure.com CSI driver.\n  // +optional\n  optional AzureFileVolumeSource azureFile = 18;\n\n  // configMap represents a configMap that should populate this volume\n  // +optional\n  optional ConfigMapVolumeSource configMap = 19;\n\n  // vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine.\n  // Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type\n  // are redirected to the csi.vsphere.vmware.com CSI driver.\n  // +optional\n  optional VsphereVirtualDiskVolumeSource vsphereVolume = 20;\n\n  // quobyte represents a Quobyte mount on the host that shares a pod's lifetime.\n  // Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.\n  // +optional\n  optional QuobyteVolumeSource quobyte = 21;\n\n  // azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\n  // Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type\n  // are redirected to the disk.csi.azure.com CSI driver.\n  // +optional\n  optional AzureDiskVolumeSource azureDisk = 22;\n\n  // photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine.\n  // Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.\n  optional PhotonPersistentDiskVolumeSource photonPersistentDisk = 23;\n\n  // projected items for all in one resources secrets, configmaps, and downward API\n  optional ProjectedVolumeSource projected = 26;\n\n  // portworxVolume represents a portworx volume attached and mounted on kubelets host machine.\n  // Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type\n  // are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate\n  // is on.\n  // +optional\n  optional PortworxVolumeSource portworxVolume = 24;\n\n  // scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\n  // Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.\n  // +optional\n  optional ScaleIOVolumeSource scaleIO = 25;\n\n  // storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\n  // Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.\n  // +optional\n  optional StorageOSVolumeSource storageos = 27;\n\n  // csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers.\n  // +optional\n  optional CSIVolumeSource csi = 28;\n\n  // ephemeral represents a volume that is handled by a cluster storage driver.\n  // The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts,\n  // and deleted when the pod is removed.\n  //\n  // Use this if:\n  // a) the volume is only needed while the pod runs,\n  // b) features of normal volumes like restoring from snapshot or capacity\n  //    tracking are needed,\n  // c) the storage driver is specified through a storage class, and\n  // d) the storage driver supports dynamic volume provisioning through\n  //    a PersistentVolumeClaim (see EphemeralVolumeSource for more\n  //    information on the connection between this volume type\n  //    and PersistentVolumeClaim).\n  //\n  // Use PersistentVolumeClaim or one of the vendor-specific\n  // APIs for volumes that persist for longer than the lifecycle\n  // of an individual pod.\n  //\n  // Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to\n  // be used that way - see the documentation of the driver for\n  // more information.\n  //\n  // A pod can use both types of ephemeral volumes and\n  // persistent volumes at the same time.\n  //\n  // +optional\n  optional EphemeralVolumeSource ephemeral = 29;\n\n  // image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine.\n  // The volume is resolved at pod startup depending on which PullPolicy value is provided:\n  //\n  // - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.\n  // - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present.\n  // - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.\n  //\n  // The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation.\n  // A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message.\n  // The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field.\n  // The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images.\n  // The volume will be mounted read-only (ro) and non-executable files (noexec).\n  // Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath).\n  // The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.\n  // +featureGate=ImageVolume\n  // +optional\n  optional ImageVolumeSource image = 30;\n}\n\n// Represents a vSphere volume resource.\nmessage VsphereVirtualDiskVolumeSource {\n  // volumePath is the path that identifies vSphere volume vmdk\n  optional string volumePath = 1;\n\n  // fsType is filesystem type to mount.\n  // Must be a filesystem type supported by the host operating system.\n  // Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n  // +optional\n  optional string fsType = 2;\n\n  // storagePolicyName is the storage Policy Based Management (SPBM) profile name.\n  // +optional\n  optional string storagePolicyName = 3;\n\n  // storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.\n  // +optional\n  optional string storagePolicyID = 4;\n}\n\n// The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\nmessage WeightedPodAffinityTerm {\n  // weight associated with matching the corresponding podAffinityTerm,\n  // in the range 1-100.\n  optional int32 weight = 1;\n\n  // Required. A pod affinity term, associated with the corresponding weight.\n  optional PodAffinityTerm podAffinityTerm = 2;\n}\n\n// WindowsSecurityContextOptions contain Windows-specific options and credentials.\nmessage WindowsSecurityContextOptions {\n  // GMSACredentialSpecName is the name of the GMSA credential spec to use.\n  // +optional\n  optional string gmsaCredentialSpecName = 1;\n\n  // GMSACredentialSpec is where the GMSA admission webhook\n  // (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\n  // GMSA credential spec named by the GMSACredentialSpecName field.\n  // +optional\n  optional string gmsaCredentialSpec = 2;\n\n  // The UserName in Windows to run the entrypoint of the container process.\n  // Defaults to the user specified in image metadata if unspecified.\n  // May also be set in PodSecurityContext. If set in both SecurityContext and\n  // PodSecurityContext, the value specified in SecurityContext takes precedence.\n  // +optional\n  optional string runAsUserName = 3;\n\n  // HostProcess determines if a container should be run as a 'Host Process' container.\n  // All of a Pod's containers must have the same effective HostProcess value\n  // (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\n  // In addition, if HostProcess is true then HostNetwork must also be set to true.\n  // +optional\n  optional bool hostProcess = 4;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/core/v1/lifecycle.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// APILifecycleIntroduced returns the release in which the API struct was introduced as int versions of major and minor for comparison.\nfunc (in *ComponentStatus) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 0\n}\n\n// APILifecycleDeprecated returns the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\nfunc (in *ComponentStatus) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleIntroduced returns the release in which the API struct was introduced as int versions of major and minor for comparison.\nfunc (in *ComponentStatusList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 0\n}\n\n// APILifecycleDeprecated returns the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\nfunc (in *ComponentStatusList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 19\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/core/v1/objectreference.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// SetGroupVersionKind allows clients to preemptively get a reference to an API object and pass it to places that\n// intend only to get a reference to that object. This simplifies the event recording interface.\nfunc (obj *ObjectReference) SetGroupVersionKind(gvk schema.GroupVersionKind) {\n\tobj.APIVersion, obj.Kind = gvk.ToAPIVersionAndKind()\n}\n\nfunc (obj *ObjectReference) GroupVersionKind() schema.GroupVersionKind {\n\treturn schema.FromAPIVersionAndKind(obj.APIVersion, obj.Kind)\n}\n\nfunc (obj *ObjectReference) GetObjectKind() schema.ObjectKind { return obj }\n"
  },
  {
    "path": "vendor/k8s.io/api/core/v1/register.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// We only register manually written functions here. The registration of the\n\t// generated functions takes place in the generated files. The separation\n\t// makes the code compile even when the generated files are missing.\n\tSchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)\n\tAddToScheme   = SchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&Pod{},\n\t\t&PodList{},\n\t\t&PodStatusResult{},\n\t\t&PodTemplate{},\n\t\t&PodTemplateList{},\n\t\t&ReplicationController{},\n\t\t&ReplicationControllerList{},\n\t\t&Service{},\n\t\t&ServiceProxyOptions{},\n\t\t&ServiceList{},\n\t\t&Endpoints{},\n\t\t&EndpointsList{},\n\t\t&Node{},\n\t\t&NodeList{},\n\t\t&NodeProxyOptions{},\n\t\t&Binding{},\n\t\t&Event{},\n\t\t&EventList{},\n\t\t&List{},\n\t\t&LimitRange{},\n\t\t&LimitRangeList{},\n\t\t&ResourceQuota{},\n\t\t&ResourceQuotaList{},\n\t\t&Namespace{},\n\t\t&NamespaceList{},\n\t\t&Secret{},\n\t\t&SecretList{},\n\t\t&ServiceAccount{},\n\t\t&ServiceAccountList{},\n\t\t&PersistentVolume{},\n\t\t&PersistentVolumeList{},\n\t\t&PersistentVolumeClaim{},\n\t\t&PersistentVolumeClaimList{},\n\t\t&PodAttachOptions{},\n\t\t&PodLogOptions{},\n\t\t&PodExecOptions{},\n\t\t&PodPortForwardOptions{},\n\t\t&PodProxyOptions{},\n\t\t&ComponentStatus{},\n\t\t&ComponentStatusList{},\n\t\t&SerializedReference{},\n\t\t&RangeAllocation{},\n\t\t&ConfigMap{},\n\t\t&ConfigMapList{},\n\t)\n\n\t// Add common types\n\tscheme.AddKnownTypes(SchemeGroupVersion, &metav1.Status{})\n\n\t// Add the watch version that applies\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/core/v1/resource.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"k8s.io/apimachinery/pkg/api/resource\"\n)\n\n// Returns string version of ResourceName.\nfunc (rn ResourceName) String() string {\n\treturn string(rn)\n}\n\n// Cpu returns the Cpu limit if specified.\nfunc (rl *ResourceList) Cpu() *resource.Quantity {\n\treturn rl.Name(ResourceCPU, resource.DecimalSI)\n}\n\n// Memory returns the Memory limit if specified.\nfunc (rl *ResourceList) Memory() *resource.Quantity {\n\treturn rl.Name(ResourceMemory, resource.BinarySI)\n}\n\n// Storage returns the Storage limit if specified.\nfunc (rl *ResourceList) Storage() *resource.Quantity {\n\treturn rl.Name(ResourceStorage, resource.BinarySI)\n}\n\n// Pods returns the list of pods\nfunc (rl *ResourceList) Pods() *resource.Quantity {\n\treturn rl.Name(ResourcePods, resource.DecimalSI)\n}\n\n// StorageEphemeral returns the list of ephemeral storage volumes, if any\nfunc (rl *ResourceList) StorageEphemeral() *resource.Quantity {\n\treturn rl.Name(ResourceEphemeralStorage, resource.BinarySI)\n}\n\n// Name returns the resource with name if specified, otherwise it returns a nil quantity with default format.\nfunc (rl *ResourceList) Name(name ResourceName, defaultFormat resource.Format) *resource.Quantity {\n\tif val, ok := (*rl)[name]; ok {\n\t\treturn &val\n\t}\n\treturn &resource.Quantity{Format: defaultFormat}\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/core/v1/taint.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport \"fmt\"\n\n// MatchTaint checks if the taint matches taintToMatch. Taints are unique by key:effect,\n// if the two taints have same key:effect, regard as they match.\nfunc (t *Taint) MatchTaint(taintToMatch *Taint) bool {\n\treturn t.Key == taintToMatch.Key && t.Effect == taintToMatch.Effect\n}\n\n// taint.ToString() converts taint struct to string in format '<key>=<value>:<effect>', '<key>=<value>:', '<key>:<effect>', or '<key>'.\nfunc (t *Taint) ToString() string {\n\tif len(t.Effect) == 0 {\n\t\tif len(t.Value) == 0 {\n\t\t\treturn fmt.Sprintf(\"%v\", t.Key)\n\t\t}\n\t\treturn fmt.Sprintf(\"%v=%v:\", t.Key, t.Value)\n\t}\n\tif len(t.Value) == 0 {\n\t\treturn fmt.Sprintf(\"%v:%v\", t.Key, t.Effect)\n\t}\n\treturn fmt.Sprintf(\"%v=%v:%v\", t.Key, t.Value, t.Effect)\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/core/v1/toleration.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// MatchToleration checks if the toleration matches tolerationToMatch. Tolerations are unique by <key,effect,operator,value>,\n// if the two tolerations have same <key,effect,operator,value> combination, regard as they match.\n// TODO: uniqueness check for tolerations in api validations.\nfunc (t *Toleration) MatchToleration(tolerationToMatch *Toleration) bool {\n\treturn t.Key == tolerationToMatch.Key &&\n\t\tt.Effect == tolerationToMatch.Effect &&\n\t\tt.Operator == tolerationToMatch.Operator &&\n\t\tt.Value == tolerationToMatch.Value\n}\n\n// ToleratesTaint checks if the toleration tolerates the taint.\n// The matching follows the rules below:\n//\n//  1. Empty toleration.effect means to match all taint effects,\n//     otherwise taint effect must equal to toleration.effect.\n//  2. If toleration.operator is 'Exists', it means to match all taint values.\n//  3. Empty toleration.key means to match all taint keys.\n//     If toleration.key is empty, toleration.operator must be 'Exists';\n//     this combination means to match all taint values and all taint keys.\nfunc (t *Toleration) ToleratesTaint(taint *Taint) bool {\n\tif len(t.Effect) > 0 && t.Effect != taint.Effect {\n\t\treturn false\n\t}\n\n\tif len(t.Key) > 0 && t.Key != taint.Key {\n\t\treturn false\n\t}\n\n\t// TODO: Use proper defaulting when Toleration becomes a field of PodSpec\n\tswitch t.Operator {\n\t// empty operator means Equal\n\tcase \"\", TolerationOpEqual:\n\t\treturn t.Value == taint.Value\n\tcase TolerationOpExists:\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/core/v1/types.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"k8s.io/apimachinery/pkg/api/resource\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/types\"\n\t\"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\nconst (\n\t// NamespaceDefault means the object is in the default namespace which is applied when not specified by clients\n\tNamespaceDefault string = \"default\"\n\t// NamespaceAll is the default argument to specify on a context when you want to list or filter resources across all namespaces\n\tNamespaceAll string = \"\"\n\t// NamespaceNodeLease is the namespace where we place node lease objects (used for node heartbeats)\n\tNamespaceNodeLease string = \"kube-node-lease\"\n)\n\n// Volume represents a named volume in a pod that may be accessed by any container in the pod.\ntype Volume struct {\n\t// name of the volume.\n\t// Must be a DNS_LABEL and unique within the pod.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\t// volumeSource represents the location and type of the mounted volume.\n\t// If not specified, the Volume is implied to be an EmptyDir.\n\t// This implied behavior is deprecated and will be removed in a future version.\n\tVolumeSource `json:\",inline\" protobuf:\"bytes,2,opt,name=volumeSource\"`\n}\n\n// Represents the source of a volume to mount.\n// Only one of its members may be specified.\ntype VolumeSource struct {\n\t// hostPath represents a pre-existing file or directory on the host\n\t// machine that is directly exposed to the container. This is generally\n\t// used for system agents or other privileged things that are allowed\n\t// to see the host machine. Most containers will NOT need this.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\n\t// ---\n\t// TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not\n\t// mount host directories as read/write.\n\t// +optional\n\tHostPath *HostPathVolumeSource `json:\"hostPath,omitempty\" protobuf:\"bytes,1,opt,name=hostPath\"`\n\t// emptyDir represents a temporary directory that shares a pod's lifetime.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\n\t// +optional\n\tEmptyDir *EmptyDirVolumeSource `json:\"emptyDir,omitempty\" protobuf:\"bytes,2,opt,name=emptyDir\"`\n\t// gcePersistentDisk represents a GCE Disk resource that is attached to a\n\t// kubelet's host machine and then exposed to the pod.\n\t// Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree\n\t// gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\n\t// +optional\n\tGCEPersistentDisk *GCEPersistentDiskVolumeSource `json:\"gcePersistentDisk,omitempty\" protobuf:\"bytes,3,opt,name=gcePersistentDisk\"`\n\t// awsElasticBlockStore represents an AWS Disk resource that is attached to a\n\t// kubelet's host machine and then exposed to the pod.\n\t// Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree\n\t// awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\n\t// +optional\n\tAWSElasticBlockStore *AWSElasticBlockStoreVolumeSource `json:\"awsElasticBlockStore,omitempty\" protobuf:\"bytes,4,opt,name=awsElasticBlockStore\"`\n\t// gitRepo represents a git repository at a particular revision.\n\t// Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an\n\t// EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir\n\t// into the Pod's container.\n\t// +optional\n\tGitRepo *GitRepoVolumeSource `json:\"gitRepo,omitempty\" protobuf:\"bytes,5,opt,name=gitRepo\"`\n\t// secret represents a secret that should populate this volume.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\n\t// +optional\n\tSecret *SecretVolumeSource `json:\"secret,omitempty\" protobuf:\"bytes,6,opt,name=secret\"`\n\t// nfs represents an NFS mount on the host that shares a pod's lifetime\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\n\t// +optional\n\tNFS *NFSVolumeSource `json:\"nfs,omitempty\" protobuf:\"bytes,7,opt,name=nfs\"`\n\t// iscsi represents an ISCSI Disk resource that is attached to a\n\t// kubelet's host machine and then exposed to the pod.\n\t// More info: https://examples.k8s.io/volumes/iscsi/README.md\n\t// +optional\n\tISCSI *ISCSIVolumeSource `json:\"iscsi,omitempty\" protobuf:\"bytes,8,opt,name=iscsi\"`\n\t// glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.\n\t// Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.\n\t// More info: https://examples.k8s.io/volumes/glusterfs/README.md\n\t// +optional\n\tGlusterfs *GlusterfsVolumeSource `json:\"glusterfs,omitempty\" protobuf:\"bytes,9,opt,name=glusterfs\"`\n\t// persistentVolumeClaimVolumeSource represents a reference to a\n\t// PersistentVolumeClaim in the same namespace.\n\t// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\n\t// +optional\n\tPersistentVolumeClaim *PersistentVolumeClaimVolumeSource `json:\"persistentVolumeClaim,omitempty\" protobuf:\"bytes,10,opt,name=persistentVolumeClaim\"`\n\t// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.\n\t// Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported.\n\t// More info: https://examples.k8s.io/volumes/rbd/README.md\n\t// +optional\n\tRBD *RBDVolumeSource `json:\"rbd,omitempty\" protobuf:\"bytes,11,opt,name=rbd\"`\n\t// flexVolume represents a generic volume resource that is\n\t// provisioned/attached using an exec based plugin.\n\t// Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.\n\t// +optional\n\tFlexVolume *FlexVolumeSource `json:\"flexVolume,omitempty\" protobuf:\"bytes,12,opt,name=flexVolume\"`\n\t// cinder represents a cinder volume attached and mounted on kubelets host machine.\n\t// Deprecated: Cinder is deprecated. All operations for the in-tree cinder type\n\t// are redirected to the cinder.csi.openstack.org CSI driver.\n\t// More info: https://examples.k8s.io/mysql-cinder-pd/README.md\n\t// +optional\n\tCinder *CinderVolumeSource `json:\"cinder,omitempty\" protobuf:\"bytes,13,opt,name=cinder\"`\n\t// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime.\n\t// Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.\n\t// +optional\n\tCephFS *CephFSVolumeSource `json:\"cephfs,omitempty\" protobuf:\"bytes,14,opt,name=cephfs\"`\n\t// flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running.\n\t// Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.\n\t// +optional\n\tFlocker *FlockerVolumeSource `json:\"flocker,omitempty\" protobuf:\"bytes,15,opt,name=flocker\"`\n\t// downwardAPI represents downward API about the pod that should populate this volume\n\t// +optional\n\tDownwardAPI *DownwardAPIVolumeSource `json:\"downwardAPI,omitempty\" protobuf:\"bytes,16,opt,name=downwardAPI\"`\n\t// fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\n\t// +optional\n\tFC *FCVolumeSource `json:\"fc,omitempty\" protobuf:\"bytes,17,opt,name=fc\"`\n\t// azureFile represents an Azure File Service mount on the host and bind mount to the pod.\n\t// Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type\n\t// are redirected to the file.csi.azure.com CSI driver.\n\t// +optional\n\tAzureFile *AzureFileVolumeSource `json:\"azureFile,omitempty\" protobuf:\"bytes,18,opt,name=azureFile\"`\n\t// configMap represents a configMap that should populate this volume\n\t// +optional\n\tConfigMap *ConfigMapVolumeSource `json:\"configMap,omitempty\" protobuf:\"bytes,19,opt,name=configMap\"`\n\t// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine.\n\t// Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type\n\t// are redirected to the csi.vsphere.vmware.com CSI driver.\n\t// +optional\n\tVsphereVolume *VsphereVirtualDiskVolumeSource `json:\"vsphereVolume,omitempty\" protobuf:\"bytes,20,opt,name=vsphereVolume\"`\n\t// quobyte represents a Quobyte mount on the host that shares a pod's lifetime.\n\t// Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.\n\t// +optional\n\tQuobyte *QuobyteVolumeSource `json:\"quobyte,omitempty\" protobuf:\"bytes,21,opt,name=quobyte\"`\n\t// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\n\t// Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type\n\t// are redirected to the disk.csi.azure.com CSI driver.\n\t// +optional\n\tAzureDisk *AzureDiskVolumeSource `json:\"azureDisk,omitempty\" protobuf:\"bytes,22,opt,name=azureDisk\"`\n\t// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine.\n\t// Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.\n\tPhotonPersistentDisk *PhotonPersistentDiskVolumeSource `json:\"photonPersistentDisk,omitempty\" protobuf:\"bytes,23,opt,name=photonPersistentDisk\"`\n\t// projected items for all in one resources secrets, configmaps, and downward API\n\tProjected *ProjectedVolumeSource `json:\"projected,omitempty\" protobuf:\"bytes,26,opt,name=projected\"`\n\t// portworxVolume represents a portworx volume attached and mounted on kubelets host machine.\n\t// Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type\n\t// are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate\n\t// is on.\n\t// +optional\n\tPortworxVolume *PortworxVolumeSource `json:\"portworxVolume,omitempty\" protobuf:\"bytes,24,opt,name=portworxVolume\"`\n\t// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\n\t// Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.\n\t// +optional\n\tScaleIO *ScaleIOVolumeSource `json:\"scaleIO,omitempty\" protobuf:\"bytes,25,opt,name=scaleIO\"`\n\t// storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\n\t// Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.\n\t// +optional\n\tStorageOS *StorageOSVolumeSource `json:\"storageos,omitempty\" protobuf:\"bytes,27,opt,name=storageos\"`\n\t// csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers.\n\t// +optional\n\tCSI *CSIVolumeSource `json:\"csi,omitempty\" protobuf:\"bytes,28,opt,name=csi\"`\n\t// ephemeral represents a volume that is handled by a cluster storage driver.\n\t// The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts,\n\t// and deleted when the pod is removed.\n\t//\n\t// Use this if:\n\t// a) the volume is only needed while the pod runs,\n\t// b) features of normal volumes like restoring from snapshot or capacity\n\t//    tracking are needed,\n\t// c) the storage driver is specified through a storage class, and\n\t// d) the storage driver supports dynamic volume provisioning through\n\t//    a PersistentVolumeClaim (see EphemeralVolumeSource for more\n\t//    information on the connection between this volume type\n\t//    and PersistentVolumeClaim).\n\t//\n\t// Use PersistentVolumeClaim or one of the vendor-specific\n\t// APIs for volumes that persist for longer than the lifecycle\n\t// of an individual pod.\n\t//\n\t// Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to\n\t// be used that way - see the documentation of the driver for\n\t// more information.\n\t//\n\t// A pod can use both types of ephemeral volumes and\n\t// persistent volumes at the same time.\n\t//\n\t// +optional\n\tEphemeral *EphemeralVolumeSource `json:\"ephemeral,omitempty\" protobuf:\"bytes,29,opt,name=ephemeral\"`\n\t// image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine.\n\t// The volume is resolved at pod startup depending on which PullPolicy value is provided:\n\t//\n\t// - Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.\n\t// - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present.\n\t// - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.\n\t//\n\t// The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation.\n\t// A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message.\n\t// The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field.\n\t// The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images.\n\t// The volume will be mounted read-only (ro) and non-executable files (noexec).\n\t// Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath).\n\t// The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.\n\t// +featureGate=ImageVolume\n\t// +optional\n\tImage *ImageVolumeSource `json:\"image,omitempty\" protobuf:\"bytes,30,opt,name=image\"`\n}\n\n// PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace.\n// This volume finds the bound PV and mounts that volume for the pod. A\n// PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another\n// type of volume that is owned by someone else (the system).\ntype PersistentVolumeClaimVolumeSource struct {\n\t// claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.\n\t// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\n\tClaimName string `json:\"claimName\" protobuf:\"bytes,1,opt,name=claimName\"`\n\t// readOnly Will force the ReadOnly setting in VolumeMounts.\n\t// Default false.\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,2,opt,name=readOnly\"`\n}\n\n// PersistentVolumeSource is similar to VolumeSource but meant for the\n// administrator who creates PVs. Exactly one of its members must be set.\ntype PersistentVolumeSource struct {\n\t// gcePersistentDisk represents a GCE Disk resource that is attached to a\n\t// kubelet's host machine and then exposed to the pod. Provisioned by an admin.\n\t// Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree\n\t// gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\n\t// +optional\n\tGCEPersistentDisk *GCEPersistentDiskVolumeSource `json:\"gcePersistentDisk,omitempty\" protobuf:\"bytes,1,opt,name=gcePersistentDisk\"`\n\t// awsElasticBlockStore represents an AWS Disk resource that is attached to a\n\t// kubelet's host machine and then exposed to the pod.\n\t// Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree\n\t// awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\n\t// +optional\n\tAWSElasticBlockStore *AWSElasticBlockStoreVolumeSource `json:\"awsElasticBlockStore,omitempty\" protobuf:\"bytes,2,opt,name=awsElasticBlockStore\"`\n\t// hostPath represents a directory on the host.\n\t// Provisioned by a developer or tester.\n\t// This is useful for single-node development and testing only!\n\t// On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\n\t// +optional\n\tHostPath *HostPathVolumeSource `json:\"hostPath,omitempty\" protobuf:\"bytes,3,opt,name=hostPath\"`\n\t// glusterfs represents a Glusterfs volume that is attached to a host and\n\t// exposed to the pod. Provisioned by an admin.\n\t// Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.\n\t// More info: https://examples.k8s.io/volumes/glusterfs/README.md\n\t// +optional\n\tGlusterfs *GlusterfsPersistentVolumeSource `json:\"glusterfs,omitempty\" protobuf:\"bytes,4,opt,name=glusterfs\"`\n\t// nfs represents an NFS mount on the host. Provisioned by an admin.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\n\t// +optional\n\tNFS *NFSVolumeSource `json:\"nfs,omitempty\" protobuf:\"bytes,5,opt,name=nfs\"`\n\t// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.\n\t// Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported.\n\t// More info: https://examples.k8s.io/volumes/rbd/README.md\n\t// +optional\n\tRBD *RBDPersistentVolumeSource `json:\"rbd,omitempty\" protobuf:\"bytes,6,opt,name=rbd\"`\n\t// iscsi represents an ISCSI Disk resource that is attached to a\n\t// kubelet's host machine and then exposed to the pod. Provisioned by an admin.\n\t// +optional\n\tISCSI *ISCSIPersistentVolumeSource `json:\"iscsi,omitempty\" protobuf:\"bytes,7,opt,name=iscsi\"`\n\t// cinder represents a cinder volume attached and mounted on kubelets host machine.\n\t// Deprecated: Cinder is deprecated. All operations for the in-tree cinder type\n\t// are redirected to the cinder.csi.openstack.org CSI driver.\n\t// More info: https://examples.k8s.io/mysql-cinder-pd/README.md\n\t// +optional\n\tCinder *CinderPersistentVolumeSource `json:\"cinder,omitempty\" protobuf:\"bytes,8,opt,name=cinder\"`\n\t// cephFS represents a Ceph FS mount on the host that shares a pod's lifetime.\n\t// Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.\n\t// +optional\n\tCephFS *CephFSPersistentVolumeSource `json:\"cephfs,omitempty\" protobuf:\"bytes,9,opt,name=cephfs\"`\n\t// fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\n\t// +optional\n\tFC *FCVolumeSource `json:\"fc,omitempty\" protobuf:\"bytes,10,opt,name=fc\"`\n\t// flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running.\n\t// Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.\n\t// +optional\n\tFlocker *FlockerVolumeSource `json:\"flocker,omitempty\" protobuf:\"bytes,11,opt,name=flocker\"`\n\t// flexVolume represents a generic volume resource that is\n\t// provisioned/attached using an exec based plugin.\n\t// Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.\n\t// +optional\n\tFlexVolume *FlexPersistentVolumeSource `json:\"flexVolume,omitempty\" protobuf:\"bytes,12,opt,name=flexVolume\"`\n\t// azureFile represents an Azure File Service mount on the host and bind mount to the pod.\n\t// Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type\n\t// are redirected to the file.csi.azure.com CSI driver.\n\t// +optional\n\tAzureFile *AzureFilePersistentVolumeSource `json:\"azureFile,omitempty\" protobuf:\"bytes,13,opt,name=azureFile\"`\n\t// vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine.\n\t// Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type\n\t// are redirected to the csi.vsphere.vmware.com CSI driver.\n\t// +optional\n\tVsphereVolume *VsphereVirtualDiskVolumeSource `json:\"vsphereVolume,omitempty\" protobuf:\"bytes,14,opt,name=vsphereVolume\"`\n\t// quobyte represents a Quobyte mount on the host that shares a pod's lifetime.\n\t// Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.\n\t// +optional\n\tQuobyte *QuobyteVolumeSource `json:\"quobyte,omitempty\" protobuf:\"bytes,15,opt,name=quobyte\"`\n\t// azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\n\t// Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type\n\t// are redirected to the disk.csi.azure.com CSI driver.\n\t// +optional\n\tAzureDisk *AzureDiskVolumeSource `json:\"azureDisk,omitempty\" protobuf:\"bytes,16,opt,name=azureDisk\"`\n\t// photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine.\n\t// Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.\n\tPhotonPersistentDisk *PhotonPersistentDiskVolumeSource `json:\"photonPersistentDisk,omitempty\" protobuf:\"bytes,17,opt,name=photonPersistentDisk\"`\n\t// portworxVolume represents a portworx volume attached and mounted on kubelets host machine.\n\t// Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type\n\t// are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate\n\t// is on.\n\t// +optional\n\tPortworxVolume *PortworxVolumeSource `json:\"portworxVolume,omitempty\" protobuf:\"bytes,18,opt,name=portworxVolume\"`\n\t// scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\n\t// Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.\n\t// +optional\n\tScaleIO *ScaleIOPersistentVolumeSource `json:\"scaleIO,omitempty\" protobuf:\"bytes,19,opt,name=scaleIO\"`\n\t// local represents directly-attached storage with node affinity\n\t// +optional\n\tLocal *LocalVolumeSource `json:\"local,omitempty\" protobuf:\"bytes,20,opt,name=local\"`\n\t// storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod.\n\t// Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.\n\t// More info: https://examples.k8s.io/volumes/storageos/README.md\n\t// +optional\n\tStorageOS *StorageOSPersistentVolumeSource `json:\"storageos,omitempty\" protobuf:\"bytes,21,opt,name=storageos\"`\n\t// csi represents storage that is handled by an external CSI driver.\n\t// +optional\n\tCSI *CSIPersistentVolumeSource `json:\"csi,omitempty\" protobuf:\"bytes,22,opt,name=csi\"`\n}\n\nconst (\n\t// BetaStorageClassAnnotation represents the beta/previous StorageClass annotation.\n\t// It's currently still used and will be held for backwards compatibility\n\tBetaStorageClassAnnotation = \"volume.beta.kubernetes.io/storage-class\"\n\n\t// MountOptionAnnotation defines mount option annotation used in PVs\n\tMountOptionAnnotation = \"volume.beta.kubernetes.io/mount-options\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.0\n\n// PersistentVolume (PV) is a storage resource provisioned by an administrator.\n// It is analogous to a node.\n// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes\ntype PersistentVolume struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec defines a specification of a persistent volume owned by the cluster.\n\t// Provisioned by an administrator.\n\t// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes\n\t// +optional\n\tSpec PersistentVolumeSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// status represents the current information/status for the persistent volume.\n\t// Populated by the system.\n\t// Read-only.\n\t// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes\n\t// +optional\n\tStatus PersistentVolumeStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// PersistentVolumeSpec is the specification of a persistent volume.\ntype PersistentVolumeSpec struct {\n\t// capacity is the description of the persistent volume's resources and capacity.\n\t// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity\n\t// +optional\n\tCapacity ResourceList `json:\"capacity,omitempty\" protobuf:\"bytes,1,rep,name=capacity,casttype=ResourceList,castkey=ResourceName\"`\n\t// persistentVolumeSource is the actual volume backing the persistent volume.\n\tPersistentVolumeSource `json:\",inline\" protobuf:\"bytes,2,opt,name=persistentVolumeSource\"`\n\t// accessModes contains all ways the volume can be mounted.\n\t// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes\n\t// +optional\n\t// +listType=atomic\n\tAccessModes []PersistentVolumeAccessMode `json:\"accessModes,omitempty\" protobuf:\"bytes,3,rep,name=accessModes,casttype=PersistentVolumeAccessMode\"`\n\t// claimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim.\n\t// Expected to be non-nil when bound.\n\t// claim.VolumeName is the authoritative bind between PV and PVC.\n\t// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding\n\t// +optional\n\t// +structType=granular\n\tClaimRef *ObjectReference `json:\"claimRef,omitempty\" protobuf:\"bytes,4,opt,name=claimRef\"`\n\t// persistentVolumeReclaimPolicy defines what happens to a persistent volume when released from its claim.\n\t// Valid options are Retain (default for manually created PersistentVolumes), Delete (default\n\t// for dynamically provisioned PersistentVolumes), and Recycle (deprecated).\n\t// Recycle must be supported by the volume plugin underlying this PersistentVolume.\n\t// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming\n\t// +optional\n\tPersistentVolumeReclaimPolicy PersistentVolumeReclaimPolicy `json:\"persistentVolumeReclaimPolicy,omitempty\" protobuf:\"bytes,5,opt,name=persistentVolumeReclaimPolicy,casttype=PersistentVolumeReclaimPolicy\"`\n\t// storageClassName is the name of StorageClass to which this persistent volume belongs. Empty value\n\t// means that this volume does not belong to any StorageClass.\n\t// +optional\n\tStorageClassName string `json:\"storageClassName,omitempty\" protobuf:\"bytes,6,opt,name=storageClassName\"`\n\t// mountOptions is the list of mount options, e.g. [\"ro\", \"soft\"]. Not validated - mount will\n\t// simply fail if one is invalid.\n\t// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options\n\t// +optional\n\t// +listType=atomic\n\tMountOptions []string `json:\"mountOptions,omitempty\" protobuf:\"bytes,7,opt,name=mountOptions\"`\n\t// volumeMode defines if a volume is intended to be used with a formatted filesystem\n\t// or to remain in raw block state. Value of Filesystem is implied when not included in spec.\n\t// +optional\n\tVolumeMode *PersistentVolumeMode `json:\"volumeMode,omitempty\" protobuf:\"bytes,8,opt,name=volumeMode,casttype=PersistentVolumeMode\"`\n\t// nodeAffinity defines constraints that limit what nodes this volume can be accessed from.\n\t// This field influences the scheduling of pods that use this volume.\n\t// +optional\n\tNodeAffinity *VolumeNodeAffinity `json:\"nodeAffinity,omitempty\" protobuf:\"bytes,9,opt,name=nodeAffinity\"`\n\t// Name of VolumeAttributesClass to which this persistent volume belongs. Empty value\n\t// is not allowed. When this field is not set, it indicates that this volume does not belong to any\n\t// VolumeAttributesClass. This field is mutable and can be changed by the CSI driver\n\t// after a volume has been updated successfully to a new class.\n\t// For an unbound PersistentVolume, the volumeAttributesClassName will be matched with unbound\n\t// PersistentVolumeClaims during the binding process.\n\t// This is a beta field and requires enabling VolumeAttributesClass feature (off by default).\n\t// +featureGate=VolumeAttributesClass\n\t// +optional\n\tVolumeAttributesClassName *string `json:\"volumeAttributesClassName,omitempty\" protobuf:\"bytes,10,opt,name=volumeAttributesClassName\"`\n}\n\n// VolumeNodeAffinity defines constraints that limit what nodes this volume can be accessed from.\ntype VolumeNodeAffinity struct {\n\t// required specifies hard node constraints that must be met.\n\tRequired *NodeSelector `json:\"required,omitempty\" protobuf:\"bytes,1,opt,name=required\"`\n}\n\n// PersistentVolumeReclaimPolicy describes a policy for end-of-life maintenance of persistent volumes.\n// +enum\ntype PersistentVolumeReclaimPolicy string\n\nconst (\n\t// PersistentVolumeReclaimRecycle means the volume will be recycled back into the pool of unbound persistent volumes on release from its claim.\n\t// The volume plugin must support Recycling.\n\tPersistentVolumeReclaimRecycle PersistentVolumeReclaimPolicy = \"Recycle\"\n\t// PersistentVolumeReclaimDelete means the volume will be deleted from Kubernetes on release from its claim.\n\t// The volume plugin must support Deletion.\n\tPersistentVolumeReclaimDelete PersistentVolumeReclaimPolicy = \"Delete\"\n\t// PersistentVolumeReclaimRetain means the volume will be left in its current phase (Released) for manual reclamation by the administrator.\n\t// The default policy is Retain.\n\tPersistentVolumeReclaimRetain PersistentVolumeReclaimPolicy = \"Retain\"\n)\n\n// PersistentVolumeMode describes how a volume is intended to be consumed, either Block or Filesystem.\n// +enum\ntype PersistentVolumeMode string\n\nconst (\n\t// PersistentVolumeBlock means the volume will not be formatted with a filesystem and will remain a raw block device.\n\tPersistentVolumeBlock PersistentVolumeMode = \"Block\"\n\t// PersistentVolumeFilesystem means the volume will be or is formatted with a filesystem.\n\tPersistentVolumeFilesystem PersistentVolumeMode = \"Filesystem\"\n)\n\n// PersistentVolumeStatus is the current status of a persistent volume.\ntype PersistentVolumeStatus struct {\n\t// phase indicates if a volume is available, bound to a claim, or released by a claim.\n\t// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#phase\n\t// +optional\n\tPhase PersistentVolumePhase `json:\"phase,omitempty\" protobuf:\"bytes,1,opt,name=phase,casttype=PersistentVolumePhase\"`\n\t// message is a human-readable message indicating details about why the volume is in this state.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,2,opt,name=message\"`\n\t// reason is a brief CamelCase string that describes any failure and is meant\n\t// for machine parsing and tidy display in the CLI.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,3,opt,name=reason\"`\n\t// lastPhaseTransitionTime is the time the phase transitioned from one to another\n\t// and automatically resets to current time everytime a volume phase transitions.\n\t// +optional\n\tLastPhaseTransitionTime *metav1.Time `json:\"lastPhaseTransitionTime,omitempty\" protobuf:\"bytes,4,opt,name=lastPhaseTransitionTime\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.0\n\n// PersistentVolumeList is a list of PersistentVolume items.\ntype PersistentVolumeList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// items is a list of persistent volumes.\n\t// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes\n\tItems []PersistentVolume `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.0\n\n// PersistentVolumeClaim is a user's request for and claim to a persistent volume\ntype PersistentVolumeClaim struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec defines the desired characteristics of a volume requested by a pod author.\n\t// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\n\t// +optional\n\tSpec PersistentVolumeClaimSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// status represents the current information/status of a persistent volume claim.\n\t// Read-only.\n\t// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\n\t// +optional\n\tStatus PersistentVolumeClaimStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.0\n\n// PersistentVolumeClaimList is a list of PersistentVolumeClaim items.\ntype PersistentVolumeClaimList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// items is a list of persistent volume claims.\n\t// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\n\tItems []PersistentVolumeClaim `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// PersistentVolumeClaimSpec describes the common attributes of storage devices\n// and allows a Source for provider-specific attributes\ntype PersistentVolumeClaimSpec struct {\n\t// accessModes contains the desired access modes the volume should have.\n\t// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\n\t// +optional\n\t// +listType=atomic\n\tAccessModes []PersistentVolumeAccessMode `json:\"accessModes,omitempty\" protobuf:\"bytes,1,rep,name=accessModes,casttype=PersistentVolumeAccessMode\"`\n\t// selector is a label query over volumes to consider for binding.\n\t// +optional\n\tSelector *metav1.LabelSelector `json:\"selector,omitempty\" protobuf:\"bytes,4,opt,name=selector\"`\n\t// resources represents the minimum resources the volume should have.\n\t// If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements\n\t// that are lower than previous value but must still be higher than capacity recorded in the\n\t// status field of the claim.\n\t// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\n\t// +optional\n\tResources VolumeResourceRequirements `json:\"resources,omitempty\" protobuf:\"bytes,2,opt,name=resources\"`\n\t// volumeName is the binding reference to the PersistentVolume backing this claim.\n\t// +optional\n\tVolumeName string `json:\"volumeName,omitempty\" protobuf:\"bytes,3,opt,name=volumeName\"`\n\t// storageClassName is the name of the StorageClass required by the claim.\n\t// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\n\t// +optional\n\tStorageClassName *string `json:\"storageClassName,omitempty\" protobuf:\"bytes,5,opt,name=storageClassName\"`\n\t// volumeMode defines what type of volume is required by the claim.\n\t// Value of Filesystem is implied when not included in claim spec.\n\t// +optional\n\tVolumeMode *PersistentVolumeMode `json:\"volumeMode,omitempty\" protobuf:\"bytes,6,opt,name=volumeMode,casttype=PersistentVolumeMode\"`\n\t// dataSource field can be used to specify either:\n\t// * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)\n\t// * An existing PVC (PersistentVolumeClaim)\n\t// If the provisioner or an external controller can support the specified data source,\n\t// it will create a new volume based on the contents of the specified data source.\n\t// When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,\n\t// and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.\n\t// If the namespace is specified, then dataSourceRef will not be copied to dataSource.\n\t// +optional\n\tDataSource *TypedLocalObjectReference `json:\"dataSource,omitempty\" protobuf:\"bytes,7,opt,name=dataSource\"`\n\t// dataSourceRef specifies the object from which to populate the volume with data, if a non-empty\n\t// volume is desired. This may be any object from a non-empty API group (non\n\t// core object) or a PersistentVolumeClaim object.\n\t// When this field is specified, volume binding will only succeed if the type of\n\t// the specified object matches some installed volume populator or dynamic\n\t// provisioner.\n\t// This field will replace the functionality of the dataSource field and as such\n\t// if both fields are non-empty, they must have the same value. For backwards\n\t// compatibility, when namespace isn't specified in dataSourceRef,\n\t// both fields (dataSource and dataSourceRef) will be set to the same\n\t// value automatically if one of them is empty and the other is non-empty.\n\t// When namespace is specified in dataSourceRef,\n\t// dataSource isn't set to the same value and must be empty.\n\t// There are three important differences between dataSource and dataSourceRef:\n\t// * While dataSource only allows two specific types of objects, dataSourceRef\n\t//   allows any non-core object, as well as PersistentVolumeClaim objects.\n\t// * While dataSource ignores disallowed values (dropping them), dataSourceRef\n\t//   preserves all values, and generates an error if a disallowed value is\n\t//   specified.\n\t// * While dataSource only allows local objects, dataSourceRef allows objects\n\t//   in any namespaces.\n\t// (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.\n\t// (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\n\t// +optional\n\tDataSourceRef *TypedObjectReference `json:\"dataSourceRef,omitempty\" protobuf:\"bytes,8,opt,name=dataSourceRef\"`\n\t// volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.\n\t// If specified, the CSI driver will create or update the volume with the attributes defined\n\t// in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,\n\t// it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass\n\t// will be applied to the claim but it's not allowed to reset this field to empty string once it is set.\n\t// If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass\n\t// will be set by the persistentvolume controller if it exists.\n\t// If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be\n\t// set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource\n\t// exists.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/\n\t// (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).\n\t// +featureGate=VolumeAttributesClass\n\t// +optional\n\tVolumeAttributesClassName *string `json:\"volumeAttributesClassName,omitempty\" protobuf:\"bytes,9,opt,name=volumeAttributesClassName\"`\n}\n\n// TypedObjectReference contains enough information to let you locate the typed referenced object\ntype TypedObjectReference struct {\n\t// APIGroup is the group for the resource being referenced.\n\t// If APIGroup is not specified, the specified Kind must be in the core API group.\n\t// For any other third-party types, APIGroup is required.\n\t// +optional\n\tAPIGroup *string `json:\"apiGroup\" protobuf:\"bytes,1,opt,name=apiGroup\"`\n\t// Kind is the type of resource being referenced\n\tKind string `json:\"kind\" protobuf:\"bytes,2,opt,name=kind\"`\n\t// Name is the name of resource being referenced\n\tName string `json:\"name\" protobuf:\"bytes,3,opt,name=name\"`\n\t// Namespace is the namespace of resource being referenced\n\t// Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details.\n\t// (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\n\t// +featureGate=CrossNamespaceVolumeDataSource\n\t// +optional\n\tNamespace *string `json:\"namespace,omitempty\" protobuf:\"bytes,4,opt,name=namespace\"`\n}\n\n// PersistentVolumeClaimConditionType defines the condition of PV claim.\n// Valid values are:\n//   - \"Resizing\", \"FileSystemResizePending\"\n//\n// If RecoverVolumeExpansionFailure feature gate is enabled, then following additional values can be expected:\n//   - \"ControllerResizeError\", \"NodeResizeError\"\n//\n// If VolumeAttributesClass feature gate is enabled, then following additional values can be expected:\n//   - \"ModifyVolumeError\", \"ModifyingVolume\"\ntype PersistentVolumeClaimConditionType string\n\n// These are valid conditions of PVC\nconst (\n\t// PersistentVolumeClaimResizing - a user trigger resize of pvc has been started\n\tPersistentVolumeClaimResizing PersistentVolumeClaimConditionType = \"Resizing\"\n\t// PersistentVolumeClaimFileSystemResizePending - controller resize is finished and a file system resize is pending on node\n\tPersistentVolumeClaimFileSystemResizePending PersistentVolumeClaimConditionType = \"FileSystemResizePending\"\n\n\t// PersistentVolumeClaimControllerResizeError indicates an error while resizing volume for size in the controller\n\tPersistentVolumeClaimControllerResizeError PersistentVolumeClaimConditionType = \"ControllerResizeError\"\n\t// PersistentVolumeClaimNodeResizeError indicates an error while resizing volume for size in the node.\n\tPersistentVolumeClaimNodeResizeError PersistentVolumeClaimConditionType = \"NodeResizeError\"\n\n\t// Applying the target VolumeAttributesClass encountered an error\n\tPersistentVolumeClaimVolumeModifyVolumeError PersistentVolumeClaimConditionType = \"ModifyVolumeError\"\n\t// Volume is being modified\n\tPersistentVolumeClaimVolumeModifyingVolume PersistentVolumeClaimConditionType = \"ModifyingVolume\"\n)\n\n// +enum\n// When a controller receives persistentvolume claim update with ClaimResourceStatus for a resource\n// that it does not recognizes, then it should ignore that update and let other controllers\n// handle it.\ntype ClaimResourceStatus string\n\nconst (\n\t// State set when resize controller starts resizing the volume in control-plane.\n\tPersistentVolumeClaimControllerResizeInProgress ClaimResourceStatus = \"ControllerResizeInProgress\"\n\n\t// State set when resize has failed in resize controller with a terminal unrecoverable error.\n\t// Transient errors such as timeout should not set this status and should leave allocatedResourceStatus\n\t// unmodified, so as resize controller can resume the volume expansion.\n\tPersistentVolumeClaimControllerResizeInfeasible ClaimResourceStatus = \"ControllerResizeInfeasible\"\n\n\t// State set when resize controller has finished resizing the volume but further resizing of volume\n\t// is needed on the node.\n\tPersistentVolumeClaimNodeResizePending ClaimResourceStatus = \"NodeResizePending\"\n\t// State set when kubelet starts resizing the volume.\n\tPersistentVolumeClaimNodeResizeInProgress ClaimResourceStatus = \"NodeResizeInProgress\"\n\t// State set when resizing has failed in kubelet with a terminal unrecoverable error. Transient errors\n\t// shouldn't set this status\n\tPersistentVolumeClaimNodeResizeInfeasible ClaimResourceStatus = \"NodeResizeInfeasible\"\n)\n\n// +enum\n// New statuses can be added in the future. Consumers should check for unknown statuses and fail appropriately\ntype PersistentVolumeClaimModifyVolumeStatus string\n\nconst (\n\t// Pending indicates that the PersistentVolumeClaim cannot be modified due to unmet requirements, such as\n\t// the specified VolumeAttributesClass not existing\n\tPersistentVolumeClaimModifyVolumePending PersistentVolumeClaimModifyVolumeStatus = \"Pending\"\n\t// InProgress indicates that the volume is being modified\n\tPersistentVolumeClaimModifyVolumeInProgress PersistentVolumeClaimModifyVolumeStatus = \"InProgress\"\n\t// Infeasible indicates that the request has been rejected as invalid by the CSI driver. To\n\t// resolve the error, a valid VolumeAttributesClass needs to be specified\n\tPersistentVolumeClaimModifyVolumeInfeasible PersistentVolumeClaimModifyVolumeStatus = \"Infeasible\"\n)\n\n// ModifyVolumeStatus represents the status object of ControllerModifyVolume operation\ntype ModifyVolumeStatus struct {\n\t// targetVolumeAttributesClassName is the name of the VolumeAttributesClass the PVC currently being reconciled\n\tTargetVolumeAttributesClassName string `json:\"targetVolumeAttributesClassName,omitempty\" protobuf:\"bytes,1,opt,name=targetVolumeAttributesClassName\"`\n\t// status is the status of the ControllerModifyVolume operation. It can be in any of following states:\n\t//  - Pending\n\t//    Pending indicates that the PersistentVolumeClaim cannot be modified due to unmet requirements, such as\n\t//    the specified VolumeAttributesClass not existing.\n\t//  - InProgress\n\t//    InProgress indicates that the volume is being modified.\n\t//  - Infeasible\n\t//   Infeasible indicates that the request has been rejected as invalid by the CSI driver. To\n\t// \t  resolve the error, a valid VolumeAttributesClass needs to be specified.\n\t// Note: New statuses can be added in the future. Consumers should check for unknown statuses and fail appropriately.\n\tStatus PersistentVolumeClaimModifyVolumeStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status,casttype=PersistentVolumeClaimModifyVolumeStatus\"`\n}\n\n// PersistentVolumeClaimCondition contains details about state of pvc\ntype PersistentVolumeClaimCondition struct {\n\t// Type is the type of the condition.\n\t// More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about\n\tType PersistentVolumeClaimConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=PersistentVolumeClaimConditionType\"`\n\t// Status is the status of the condition.\n\t// Can be True, False, Unknown.\n\t// More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required\n\tStatus ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status,casttype=ConditionStatus\"`\n\t// lastProbeTime is the time we probed the condition.\n\t// +optional\n\tLastProbeTime metav1.Time `json:\"lastProbeTime,omitempty\" protobuf:\"bytes,3,opt,name=lastProbeTime\"`\n\t// lastTransitionTime is the time the condition transitioned from one status to another.\n\t// +optional\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,4,opt,name=lastTransitionTime\"`\n\t// reason is a unique, this should be a short, machine understandable string that gives the reason\n\t// for condition's last transition. If it reports \"Resizing\" that means the underlying\n\t// persistent volume is being resized.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,5,opt,name=reason\"`\n\t// message is the human-readable message indicating details about last transition.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,6,opt,name=message\"`\n}\n\n// PersistentVolumeClaimStatus is the current status of a persistent volume claim.\ntype PersistentVolumeClaimStatus struct {\n\t// phase represents the current phase of PersistentVolumeClaim.\n\t// +optional\n\tPhase PersistentVolumeClaimPhase `json:\"phase,omitempty\" protobuf:\"bytes,1,opt,name=phase,casttype=PersistentVolumeClaimPhase\"`\n\t// accessModes contains the actual access modes the volume backing the PVC has.\n\t// More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\n\t// +optional\n\t// +listType=atomic\n\tAccessModes []PersistentVolumeAccessMode `json:\"accessModes,omitempty\" protobuf:\"bytes,2,rep,name=accessModes,casttype=PersistentVolumeAccessMode\"`\n\t// capacity represents the actual resources of the underlying volume.\n\t// +optional\n\tCapacity ResourceList `json:\"capacity,omitempty\" protobuf:\"bytes,3,rep,name=capacity,casttype=ResourceList,castkey=ResourceName\"`\n\t// conditions is the current Condition of persistent volume claim. If underlying persistent volume is being\n\t// resized then the Condition will be set to 'Resizing'.\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=type\n\tConditions []PersistentVolumeClaimCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,4,rep,name=conditions\"`\n\t// allocatedResources tracks the resources allocated to a PVC including its capacity.\n\t// Key names follow standard Kubernetes label syntax. Valid values are either:\n\t// \t* Un-prefixed keys:\n\t//\t\t- storage - the capacity of the volume.\n\t//\t* Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\"\n\t// Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered\n\t// reserved and hence may not be used.\n\t//\n\t// Capacity reported here may be larger than the actual capacity when a volume expansion operation\n\t// is requested.\n\t// For storage quota, the larger value from allocatedResources and PVC.spec.resources is used.\n\t// If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation.\n\t// If a volume expansion capacity request is lowered, allocatedResources is only\n\t// lowered if there are no expansion operations in progress and if the actual volume capacity\n\t// is equal or lower than the requested capacity.\n\t//\n\t// A controller that receives PVC update with previously unknown resourceName\n\t// should ignore the update for the purpose it was designed. For example - a controller that\n\t// only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid\n\t// resources associated with PVC.\n\t//\n\t// This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.\n\t// +featureGate=RecoverVolumeExpansionFailure\n\t// +optional\n\tAllocatedResources ResourceList `json:\"allocatedResources,omitempty\" protobuf:\"bytes,5,rep,name=allocatedResources,casttype=ResourceList,castkey=ResourceName\"`\n\n\t// resizestatus is tombstoned since the field was replaced by allocatedResourceStatus\n\t// ResizeStatus *PersistentVolumeClaimResizeStatus `json:\"resizeStatus,omitempty\" protobuf:\"bytes,6,opt,name=resizeStatus,casttype=PersistentVolumeClaimResizeStatus\"`\n\n\t// allocatedResourceStatuses stores status of resource being resized for the given PVC.\n\t// Key names follow standard Kubernetes label syntax. Valid values are either:\n\t// \t* Un-prefixed keys:\n\t//\t\t- storage - the capacity of the volume.\n\t//\t* Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\"\n\t// Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered\n\t// reserved and hence may not be used.\n\t//\n\t// ClaimResourceStatus can be in any of following states:\n\t//\t- ControllerResizeInProgress:\n\t//\t\tState set when resize controller starts resizing the volume in control-plane.\n\t// \t- ControllerResizeFailed:\n\t//\t\tState set when resize has failed in resize controller with a terminal error.\n\t//\t- NodeResizePending:\n\t//\t\tState set when resize controller has finished resizing the volume but further resizing of\n\t//\t\tvolume is needed on the node.\n\t//\t- NodeResizeInProgress:\n\t//\t\tState set when kubelet starts resizing the volume.\n\t//\t- NodeResizeFailed:\n\t//\t\tState set when resizing has failed in kubelet with a terminal error. Transient errors don't set\n\t//\t\tNodeResizeFailed.\n\t// For example: if expanding a PVC for more capacity - this field can be one of the following states:\n\t// \t- pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeInProgress\"\n\t//      - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeFailed\"\n\t//      - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizePending\"\n\t//      - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeInProgress\"\n\t//      - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeFailed\"\n\t// When this field is not set, it means that no resize operation is in progress for the given PVC.\n\t//\n\t// A controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus\n\t// should ignore the update for the purpose it was designed. For example - a controller that\n\t// only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid\n\t// resources associated with PVC.\n\t//\n\t// This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.\n\t// +featureGate=RecoverVolumeExpansionFailure\n\t// +mapType=granular\n\t// +optional\n\tAllocatedResourceStatuses map[ResourceName]ClaimResourceStatus `json:\"allocatedResourceStatuses,omitempty\" protobuf:\"bytes,7,rep,name=allocatedResourceStatuses\"`\n\t// currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using.\n\t// When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim\n\t// This is a beta field and requires enabling VolumeAttributesClass feature (off by default).\n\t// +featureGate=VolumeAttributesClass\n\t// +optional\n\tCurrentVolumeAttributesClassName *string `json:\"currentVolumeAttributesClassName,omitempty\" protobuf:\"bytes,8,opt,name=currentVolumeAttributesClassName\"`\n\t// ModifyVolumeStatus represents the status object of ControllerModifyVolume operation.\n\t// When this is unset, there is no ModifyVolume operation being attempted.\n\t// This is a beta field and requires enabling VolumeAttributesClass feature (off by default).\n\t// +featureGate=VolumeAttributesClass\n\t// +optional\n\tModifyVolumeStatus *ModifyVolumeStatus `json:\"modifyVolumeStatus,omitempty\" protobuf:\"bytes,9,opt,name=modifyVolumeStatus\"`\n}\n\n// +enum\ntype PersistentVolumeAccessMode string\n\nconst (\n\t// can be mounted in read/write mode to exactly 1 host\n\tReadWriteOnce PersistentVolumeAccessMode = \"ReadWriteOnce\"\n\t// can be mounted in read-only mode to many hosts\n\tReadOnlyMany PersistentVolumeAccessMode = \"ReadOnlyMany\"\n\t// can be mounted in read/write mode to many hosts\n\tReadWriteMany PersistentVolumeAccessMode = \"ReadWriteMany\"\n\t// can be mounted in read/write mode to exactly 1 pod\n\t// cannot be used in combination with other access modes\n\tReadWriteOncePod PersistentVolumeAccessMode = \"ReadWriteOncePod\"\n)\n\n// +enum\ntype PersistentVolumePhase string\n\nconst (\n\t// used for PersistentVolumes that are not available\n\tVolumePending PersistentVolumePhase = \"Pending\"\n\t// used for PersistentVolumes that are not yet bound\n\t// Available volumes are held by the binder and matched to PersistentVolumeClaims\n\tVolumeAvailable PersistentVolumePhase = \"Available\"\n\t// used for PersistentVolumes that are bound\n\tVolumeBound PersistentVolumePhase = \"Bound\"\n\t// used for PersistentVolumes where the bound PersistentVolumeClaim was deleted\n\t// released volumes must be recycled before becoming available again\n\t// this phase is used by the persistent volume claim binder to signal to another process to reclaim the resource\n\tVolumeReleased PersistentVolumePhase = \"Released\"\n\t// used for PersistentVolumes that failed to be correctly recycled or deleted after being released from a claim\n\tVolumeFailed PersistentVolumePhase = \"Failed\"\n)\n\n// +enum\ntype PersistentVolumeClaimPhase string\n\nconst (\n\t// used for PersistentVolumeClaims that are not yet bound\n\tClaimPending PersistentVolumeClaimPhase = \"Pending\"\n\t// used for PersistentVolumeClaims that are bound\n\tClaimBound PersistentVolumeClaimPhase = \"Bound\"\n\t// used for PersistentVolumeClaims that lost their underlying\n\t// PersistentVolume. The claim was bound to a PersistentVolume and this\n\t// volume does not exist any longer and all data on it was lost.\n\tClaimLost PersistentVolumeClaimPhase = \"Lost\"\n)\n\n// +enum\ntype HostPathType string\n\nconst (\n\t// For backwards compatible, leave it empty if unset\n\tHostPathUnset HostPathType = \"\"\n\t// If nothing exists at the given path, an empty directory will be created there\n\t// as needed with file mode 0755, having the same group and ownership with Kubelet.\n\tHostPathDirectoryOrCreate HostPathType = \"DirectoryOrCreate\"\n\t// A directory must exist at the given path\n\tHostPathDirectory HostPathType = \"Directory\"\n\t// If nothing exists at the given path, an empty file will be created there\n\t// as needed with file mode 0644, having the same group and ownership with Kubelet.\n\tHostPathFileOrCreate HostPathType = \"FileOrCreate\"\n\t// A file must exist at the given path\n\tHostPathFile HostPathType = \"File\"\n\t// A UNIX socket must exist at the given path\n\tHostPathSocket HostPathType = \"Socket\"\n\t// A character device must exist at the given path\n\tHostPathCharDev HostPathType = \"CharDevice\"\n\t// A block device must exist at the given path\n\tHostPathBlockDev HostPathType = \"BlockDevice\"\n)\n\n// Represents a host path mapped into a pod.\n// Host path volumes do not support ownership management or SELinux relabeling.\ntype HostPathVolumeSource struct {\n\t// path of the directory on the host.\n\t// If the path is a symlink, it will follow the link to the real path.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\n\tPath string `json:\"path\" protobuf:\"bytes,1,opt,name=path\"`\n\t// type for HostPath Volume\n\t// Defaults to \"\"\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\n\t// +optional\n\tType *HostPathType `json:\"type,omitempty\" protobuf:\"bytes,2,opt,name=type\"`\n}\n\n// Represents an empty directory for a pod.\n// Empty directory volumes support ownership management and SELinux relabeling.\ntype EmptyDirVolumeSource struct {\n\t// medium represents what type of storage medium should back this directory.\n\t// The default is \"\" which means to use the node's default medium.\n\t// Must be an empty string (default) or Memory.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\n\t// +optional\n\tMedium StorageMedium `json:\"medium,omitempty\" protobuf:\"bytes,1,opt,name=medium,casttype=StorageMedium\"`\n\t// sizeLimit is the total amount of local storage required for this EmptyDir volume.\n\t// The size limit is also applicable for memory medium.\n\t// The maximum usage on memory medium EmptyDir would be the minimum value between\n\t// the SizeLimit specified here and the sum of memory limits of all containers in a pod.\n\t// The default is nil which means that the limit is undefined.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\n\t// +optional\n\tSizeLimit *resource.Quantity `json:\"sizeLimit,omitempty\" protobuf:\"bytes,2,opt,name=sizeLimit\"`\n}\n\n// Represents a Glusterfs mount that lasts the lifetime of a pod.\n// Glusterfs volumes do not support ownership management or SELinux relabeling.\ntype GlusterfsVolumeSource struct {\n\t// endpoints is the endpoint name that details Glusterfs topology.\n\t// More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\n\tEndpointsName string `json:\"endpoints\" protobuf:\"bytes,1,opt,name=endpoints\"`\n\n\t// path is the Glusterfs volume path.\n\t// More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\n\tPath string `json:\"path\" protobuf:\"bytes,2,opt,name=path\"`\n\n\t// readOnly here will force the Glusterfs volume to be mounted with read-only permissions.\n\t// Defaults to false.\n\t// More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,3,opt,name=readOnly\"`\n}\n\n// Represents a Glusterfs mount that lasts the lifetime of a pod.\n// Glusterfs volumes do not support ownership management or SELinux relabeling.\ntype GlusterfsPersistentVolumeSource struct {\n\t// endpoints is the endpoint name that details Glusterfs topology.\n\t// More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\n\tEndpointsName string `json:\"endpoints\" protobuf:\"bytes,1,opt,name=endpoints\"`\n\n\t// path is the Glusterfs volume path.\n\t// More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\n\tPath string `json:\"path\" protobuf:\"bytes,2,opt,name=path\"`\n\n\t// readOnly here will force the Glusterfs volume to be mounted with read-only permissions.\n\t// Defaults to false.\n\t// More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,3,opt,name=readOnly\"`\n\n\t// endpointsNamespace is the namespace that contains Glusterfs endpoint.\n\t// If this field is empty, the EndpointNamespace defaults to the same namespace as the bound PVC.\n\t// More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\n\t// +optional\n\tEndpointsNamespace *string `json:\"endpointsNamespace,omitempty\" protobuf:\"bytes,4,opt,name=endpointsNamespace\"`\n}\n\n// Represents a Rados Block Device mount that lasts the lifetime of a pod.\n// RBD volumes support ownership management and SELinux relabeling.\ntype RBDVolumeSource struct {\n\t// monitors is a collection of Ceph monitors.\n\t// More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n\t// +listType=atomic\n\tCephMonitors []string `json:\"monitors\" protobuf:\"bytes,1,rep,name=monitors\"`\n\t// image is the rados image name.\n\t// More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n\tRBDImage string `json:\"image\" protobuf:\"bytes,2,opt,name=image\"`\n\t// fsType is the filesystem type of the volume that you want to mount.\n\t// Tip: Ensure that the filesystem type is supported by the host operating system.\n\t// Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd\n\t// TODO: how do we prevent errors in the filesystem from compromising the machine\n\t// +optional\n\tFSType string `json:\"fsType,omitempty\" protobuf:\"bytes,3,opt,name=fsType\"`\n\t// pool is the rados pool name.\n\t// Default is rbd.\n\t// More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n\t// +optional\n\t// +default=\"rbd\"\n\tRBDPool string `json:\"pool,omitempty\" protobuf:\"bytes,4,opt,name=pool\"`\n\t// user is the rados user name.\n\t// Default is admin.\n\t// More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n\t// +optional\n\t// +default=\"admin\"\n\tRadosUser string `json:\"user,omitempty\" protobuf:\"bytes,5,opt,name=user\"`\n\t// keyring is the path to key ring for RBDUser.\n\t// Default is /etc/ceph/keyring.\n\t// More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n\t// +optional\n\t// +default=\"/etc/ceph/keyring\"\n\tKeyring string `json:\"keyring,omitempty\" protobuf:\"bytes,6,opt,name=keyring\"`\n\t// secretRef is name of the authentication secret for RBDUser. If provided\n\t// overrides keyring.\n\t// Default is nil.\n\t// More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n\t// +optional\n\tSecretRef *LocalObjectReference `json:\"secretRef,omitempty\" protobuf:\"bytes,7,opt,name=secretRef\"`\n\t// readOnly here will force the ReadOnly setting in VolumeMounts.\n\t// Defaults to false.\n\t// More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,8,opt,name=readOnly\"`\n}\n\n// Represents a Rados Block Device mount that lasts the lifetime of a pod.\n// RBD volumes support ownership management and SELinux relabeling.\ntype RBDPersistentVolumeSource struct {\n\t// monitors is a collection of Ceph monitors.\n\t// More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n\t// +listType=atomic\n\tCephMonitors []string `json:\"monitors\" protobuf:\"bytes,1,rep,name=monitors\"`\n\t// image is the rados image name.\n\t// More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n\tRBDImage string `json:\"image\" protobuf:\"bytes,2,opt,name=image\"`\n\t// fsType is the filesystem type of the volume that you want to mount.\n\t// Tip: Ensure that the filesystem type is supported by the host operating system.\n\t// Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd\n\t// TODO: how do we prevent errors in the filesystem from compromising the machine\n\t// +optional\n\tFSType string `json:\"fsType,omitempty\" protobuf:\"bytes,3,opt,name=fsType\"`\n\t// pool is the rados pool name.\n\t// Default is rbd.\n\t// More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n\t// +optional\n\t// +default=\"rbd\"\n\tRBDPool string `json:\"pool,omitempty\" protobuf:\"bytes,4,opt,name=pool\"`\n\t// user is the rados user name.\n\t// Default is admin.\n\t// More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n\t// +optional\n\t// +default=\"admin\"\n\tRadosUser string `json:\"user,omitempty\" protobuf:\"bytes,5,opt,name=user\"`\n\t// keyring is the path to key ring for RBDUser.\n\t// Default is /etc/ceph/keyring.\n\t// More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n\t// +optional\n\t// +default=\"/etc/ceph/keyring\"\n\tKeyring string `json:\"keyring,omitempty\" protobuf:\"bytes,6,opt,name=keyring\"`\n\t// secretRef is name of the authentication secret for RBDUser. If provided\n\t// overrides keyring.\n\t// Default is nil.\n\t// More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n\t// +optional\n\tSecretRef *SecretReference `json:\"secretRef,omitempty\" protobuf:\"bytes,7,opt,name=secretRef\"`\n\t// readOnly here will force the ReadOnly setting in VolumeMounts.\n\t// Defaults to false.\n\t// More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,8,opt,name=readOnly\"`\n}\n\n// Represents a cinder volume resource in Openstack.\n// A Cinder volume must exist before mounting to a container.\n// The volume must also be in the same region as the kubelet.\n// Cinder volumes support ownership management and SELinux relabeling.\ntype CinderVolumeSource struct {\n\t// volumeID used to identify the volume in cinder.\n\t// More info: https://examples.k8s.io/mysql-cinder-pd/README.md\n\tVolumeID string `json:\"volumeID\" protobuf:\"bytes,1,opt,name=volumeID\"`\n\t// fsType is the filesystem type to mount.\n\t// Must be a filesystem type supported by the host operating system.\n\t// Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n\t// More info: https://examples.k8s.io/mysql-cinder-pd/README.md\n\t// +optional\n\tFSType string `json:\"fsType,omitempty\" protobuf:\"bytes,2,opt,name=fsType\"`\n\t// readOnly defaults to false (read/write). ReadOnly here will force\n\t// the ReadOnly setting in VolumeMounts.\n\t// More info: https://examples.k8s.io/mysql-cinder-pd/README.md\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,3,opt,name=readOnly\"`\n\t// secretRef is optional: points to a secret object containing parameters used to connect\n\t// to OpenStack.\n\t// +optional\n\tSecretRef *LocalObjectReference `json:\"secretRef,omitempty\" protobuf:\"bytes,4,opt,name=secretRef\"`\n}\n\n// Represents a cinder volume resource in Openstack.\n// A Cinder volume must exist before mounting to a container.\n// The volume must also be in the same region as the kubelet.\n// Cinder volumes support ownership management and SELinux relabeling.\ntype CinderPersistentVolumeSource struct {\n\t// volumeID used to identify the volume in cinder.\n\t// More info: https://examples.k8s.io/mysql-cinder-pd/README.md\n\tVolumeID string `json:\"volumeID\" protobuf:\"bytes,1,opt,name=volumeID\"`\n\t// fsType Filesystem type to mount.\n\t// Must be a filesystem type supported by the host operating system.\n\t// Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n\t// More info: https://examples.k8s.io/mysql-cinder-pd/README.md\n\t// +optional\n\tFSType string `json:\"fsType,omitempty\" protobuf:\"bytes,2,opt,name=fsType\"`\n\t// readOnly is Optional: Defaults to false (read/write). ReadOnly here will force\n\t// the ReadOnly setting in VolumeMounts.\n\t// More info: https://examples.k8s.io/mysql-cinder-pd/README.md\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,3,opt,name=readOnly\"`\n\t// secretRef is Optional: points to a secret object containing parameters used to connect\n\t// to OpenStack.\n\t// +optional\n\tSecretRef *SecretReference `json:\"secretRef,omitempty\" protobuf:\"bytes,4,opt,name=secretRef\"`\n}\n\n// Represents a Ceph Filesystem mount that lasts the lifetime of a pod\n// Cephfs volumes do not support ownership management or SELinux relabeling.\ntype CephFSVolumeSource struct {\n\t// monitors is Required: Monitors is a collection of Ceph monitors\n\t// More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n\t// +listType=atomic\n\tMonitors []string `json:\"monitors\" protobuf:\"bytes,1,rep,name=monitors\"`\n\t// path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\n\t// +optional\n\tPath string `json:\"path,omitempty\" protobuf:\"bytes,2,opt,name=path\"`\n\t// user is optional: User is the rados user name, default is admin\n\t// More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n\t// +optional\n\tUser string `json:\"user,omitempty\" protobuf:\"bytes,3,opt,name=user\"`\n\t// secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret\n\t// More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n\t// +optional\n\tSecretFile string `json:\"secretFile,omitempty\" protobuf:\"bytes,4,opt,name=secretFile\"`\n\t// secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty.\n\t// More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n\t// +optional\n\tSecretRef *LocalObjectReference `json:\"secretRef,omitempty\" protobuf:\"bytes,5,opt,name=secretRef\"`\n\t// readOnly is Optional: Defaults to false (read/write). ReadOnly here will force\n\t// the ReadOnly setting in VolumeMounts.\n\t// More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,6,opt,name=readOnly\"`\n}\n\n// SecretReference represents a Secret Reference. It has enough information to retrieve secret\n// in any namespace\n// +structType=atomic\ntype SecretReference struct {\n\t// name is unique within a namespace to reference a secret resource.\n\t// +optional\n\tName string `json:\"name,omitempty\" protobuf:\"bytes,1,opt,name=name\"`\n\t// namespace defines the space within which the secret name must be unique.\n\t// +optional\n\tNamespace string `json:\"namespace,omitempty\" protobuf:\"bytes,2,opt,name=namespace\"`\n}\n\n// Represents a Ceph Filesystem mount that lasts the lifetime of a pod\n// Cephfs volumes do not support ownership management or SELinux relabeling.\ntype CephFSPersistentVolumeSource struct {\n\t// monitors is Required: Monitors is a collection of Ceph monitors\n\t// More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n\t// +listType=atomic\n\tMonitors []string `json:\"monitors\" protobuf:\"bytes,1,rep,name=monitors\"`\n\t// path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\n\t// +optional\n\tPath string `json:\"path,omitempty\" protobuf:\"bytes,2,opt,name=path\"`\n\t// user is Optional: User is the rados user name, default is admin\n\t// More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n\t// +optional\n\tUser string `json:\"user,omitempty\" protobuf:\"bytes,3,opt,name=user\"`\n\t// secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret\n\t// More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n\t// +optional\n\tSecretFile string `json:\"secretFile,omitempty\" protobuf:\"bytes,4,opt,name=secretFile\"`\n\t// secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty.\n\t// More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n\t// +optional\n\tSecretRef *SecretReference `json:\"secretRef,omitempty\" protobuf:\"bytes,5,opt,name=secretRef\"`\n\t// readOnly is Optional: Defaults to false (read/write). ReadOnly here will force\n\t// the ReadOnly setting in VolumeMounts.\n\t// More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,6,opt,name=readOnly\"`\n}\n\n// Represents a Flocker volume mounted by the Flocker agent.\n// One and only one of datasetName and datasetUUID should be set.\n// Flocker volumes do not support ownership management or SELinux relabeling.\ntype FlockerVolumeSource struct {\n\t// datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker\n\t// should be considered as deprecated\n\t// +optional\n\tDatasetName string `json:\"datasetName,omitempty\" protobuf:\"bytes,1,opt,name=datasetName\"`\n\t// datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset\n\t// +optional\n\tDatasetUUID string `json:\"datasetUUID,omitempty\" protobuf:\"bytes,2,opt,name=datasetUUID\"`\n}\n\n// StorageMedium defines ways that storage can be allocated to a volume.\ntype StorageMedium string\n\nconst (\n\tStorageMediumDefault         StorageMedium = \"\"           // use whatever the default is for the node, assume anything we don't explicitly handle is this\n\tStorageMediumMemory          StorageMedium = \"Memory\"     // use memory (e.g. tmpfs on linux)\n\tStorageMediumHugePages       StorageMedium = \"HugePages\"  // use hugepages\n\tStorageMediumHugePagesPrefix StorageMedium = \"HugePages-\" // prefix for full medium notation HugePages-<size>\n)\n\n// Protocol defines network protocols supported for things like container ports.\n// +enum\ntype Protocol string\n\nconst (\n\t// ProtocolTCP is the TCP protocol.\n\tProtocolTCP Protocol = \"TCP\"\n\t// ProtocolUDP is the UDP protocol.\n\tProtocolUDP Protocol = \"UDP\"\n\t// ProtocolSCTP is the SCTP protocol.\n\tProtocolSCTP Protocol = \"SCTP\"\n)\n\n// Represents a Persistent Disk resource in Google Compute Engine.\n//\n// A GCE PD must exist before mounting to a container. The disk must\n// also be in the same GCE project and zone as the kubelet. A GCE PD\n// can only be mounted as read/write once or read-only many times. GCE\n// PDs support ownership management and SELinux relabeling.\ntype GCEPersistentDiskVolumeSource struct {\n\t// pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\n\tPDName string `json:\"pdName\" protobuf:\"bytes,1,opt,name=pdName\"`\n\t// fsType is filesystem type of the volume that you want to mount.\n\t// Tip: Ensure that the filesystem type is supported by the host operating system.\n\t// Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\n\t// TODO: how do we prevent errors in the filesystem from compromising the machine\n\t// +optional\n\tFSType string `json:\"fsType,omitempty\" protobuf:\"bytes,2,opt,name=fsType\"`\n\t// partition is the partition in the volume that you want to mount.\n\t// If omitted, the default is to mount by volume name.\n\t// Examples: For volume /dev/sda1, you specify the partition as \"1\".\n\t// Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty).\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\n\t// +optional\n\tPartition int32 `json:\"partition,omitempty\" protobuf:\"varint,3,opt,name=partition\"`\n\t// readOnly here will force the ReadOnly setting in VolumeMounts.\n\t// Defaults to false.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,4,opt,name=readOnly\"`\n}\n\n// Represents a Quobyte mount that lasts the lifetime of a pod.\n// Quobyte volumes do not support ownership management or SELinux relabeling.\ntype QuobyteVolumeSource struct {\n\t// registry represents a single or multiple Quobyte Registry services\n\t// specified as a string as host:port pair (multiple entries are separated with commas)\n\t// which acts as the central registry for volumes\n\tRegistry string `json:\"registry\" protobuf:\"bytes,1,opt,name=registry\"`\n\n\t// volume is a string that references an already created Quobyte volume by name.\n\tVolume string `json:\"volume\" protobuf:\"bytes,2,opt,name=volume\"`\n\n\t// readOnly here will force the Quobyte volume to be mounted with read-only permissions.\n\t// Defaults to false.\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,3,opt,name=readOnly\"`\n\n\t// user to map volume access to\n\t// Defaults to serivceaccount user\n\t// +optional\n\tUser string `json:\"user,omitempty\" protobuf:\"bytes,4,opt,name=user\"`\n\n\t// group to map volume access to\n\t// Default is no group\n\t// +optional\n\tGroup string `json:\"group,omitempty\" protobuf:\"bytes,5,opt,name=group\"`\n\n\t// tenant owning the given Quobyte volume in the Backend\n\t// Used with dynamically provisioned Quobyte volumes, value is set by the plugin\n\t// +optional\n\tTenant string `json:\"tenant,omitempty\" protobuf:\"bytes,6,opt,name=tenant\"`\n}\n\n// FlexPersistentVolumeSource represents a generic persistent volume resource that is\n// provisioned/attached using an exec based plugin.\ntype FlexPersistentVolumeSource struct {\n\t// driver is the name of the driver to use for this volume.\n\tDriver string `json:\"driver\" protobuf:\"bytes,1,opt,name=driver\"`\n\t// fsType is the Filesystem type to mount.\n\t// Must be a filesystem type supported by the host operating system.\n\t// Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script.\n\t// +optional\n\tFSType string `json:\"fsType,omitempty\" protobuf:\"bytes,2,opt,name=fsType\"`\n\t// secretRef is Optional: SecretRef is reference to the secret object containing\n\t// sensitive information to pass to the plugin scripts. This may be\n\t// empty if no secret object is specified. If the secret object\n\t// contains more than one secret, all secrets are passed to the plugin\n\t// scripts.\n\t// +optional\n\tSecretRef *SecretReference `json:\"secretRef,omitempty\" protobuf:\"bytes,3,opt,name=secretRef\"`\n\t// readOnly is Optional: defaults to false (read/write). ReadOnly here will force\n\t// the ReadOnly setting in VolumeMounts.\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,4,opt,name=readOnly\"`\n\t// options is Optional: this field holds extra command options if any.\n\t// +optional\n\tOptions map[string]string `json:\"options,omitempty\" protobuf:\"bytes,5,rep,name=options\"`\n}\n\n// FlexVolume represents a generic volume resource that is\n// provisioned/attached using an exec based plugin.\ntype FlexVolumeSource struct {\n\t// driver is the name of the driver to use for this volume.\n\tDriver string `json:\"driver\" protobuf:\"bytes,1,opt,name=driver\"`\n\t// fsType is the filesystem type to mount.\n\t// Must be a filesystem type supported by the host operating system.\n\t// Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script.\n\t// +optional\n\tFSType string `json:\"fsType,omitempty\" protobuf:\"bytes,2,opt,name=fsType\"`\n\t// secretRef is Optional: secretRef is reference to the secret object containing\n\t// sensitive information to pass to the plugin scripts. This may be\n\t// empty if no secret object is specified. If the secret object\n\t// contains more than one secret, all secrets are passed to the plugin\n\t// scripts.\n\t// +optional\n\tSecretRef *LocalObjectReference `json:\"secretRef,omitempty\" protobuf:\"bytes,3,opt,name=secretRef\"`\n\t// readOnly is Optional: defaults to false (read/write). ReadOnly here will force\n\t// the ReadOnly setting in VolumeMounts.\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,4,opt,name=readOnly\"`\n\t// options is Optional: this field holds extra command options if any.\n\t// +optional\n\tOptions map[string]string `json:\"options,omitempty\" protobuf:\"bytes,5,rep,name=options\"`\n}\n\n// Represents a Persistent Disk resource in AWS.\n//\n// An AWS EBS disk must exist before mounting to a container. The disk\n// must also be in the same AWS zone as the kubelet. An AWS EBS disk\n// can only be mounted as read/write once. AWS EBS volumes support\n// ownership management and SELinux relabeling.\ntype AWSElasticBlockStoreVolumeSource struct {\n\t// volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume).\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\n\tVolumeID string `json:\"volumeID\" protobuf:\"bytes,1,opt,name=volumeID\"`\n\t// fsType is the filesystem type of the volume that you want to mount.\n\t// Tip: Ensure that the filesystem type is supported by the host operating system.\n\t// Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\n\t// TODO: how do we prevent errors in the filesystem from compromising the machine\n\t// +optional\n\tFSType string `json:\"fsType,omitempty\" protobuf:\"bytes,2,opt,name=fsType\"`\n\t// partition is the partition in the volume that you want to mount.\n\t// If omitted, the default is to mount by volume name.\n\t// Examples: For volume /dev/sda1, you specify the partition as \"1\".\n\t// Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty).\n\t// +optional\n\tPartition int32 `json:\"partition,omitempty\" protobuf:\"varint,3,opt,name=partition\"`\n\t// readOnly value true will force the readOnly setting in VolumeMounts.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,4,opt,name=readOnly\"`\n}\n\n// Represents a volume that is populated with the contents of a git repository.\n// Git repo volumes do not support ownership management.\n// Git repo volumes support SELinux relabeling.\n//\n// DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an\n// EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir\n// into the Pod's container.\ntype GitRepoVolumeSource struct {\n\t// repository is the URL\n\tRepository string `json:\"repository\" protobuf:\"bytes,1,opt,name=repository\"`\n\t// revision is the commit hash for the specified revision.\n\t// +optional\n\tRevision string `json:\"revision,omitempty\" protobuf:\"bytes,2,opt,name=revision\"`\n\t// directory is the target directory name.\n\t// Must not contain or start with '..'.  If '.' is supplied, the volume directory will be the\n\t// git repository.  Otherwise, if specified, the volume will contain the git repository in\n\t// the subdirectory with the given name.\n\t// +optional\n\tDirectory string `json:\"directory,omitempty\" protobuf:\"bytes,3,opt,name=directory\"`\n}\n\n// Adapts a Secret into a volume.\n//\n// The contents of the target Secret's Data field will be presented in a volume\n// as files using the keys in the Data field as the file names.\n// Secret volumes support ownership management and SELinux relabeling.\ntype SecretVolumeSource struct {\n\t// secretName is the name of the secret in the pod's namespace to use.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\n\t// +optional\n\tSecretName string `json:\"secretName,omitempty\" protobuf:\"bytes,1,opt,name=secretName\"`\n\t// items If unspecified, each key-value pair in the Data field of the referenced\n\t// Secret will be projected into the volume as a file whose name is the\n\t// key and content is the value. If specified, the listed keys will be\n\t// projected into the specified paths, and unlisted keys will not be\n\t// present. If a key is specified which is not present in the Secret,\n\t// the volume setup will error unless it is marked optional. Paths must be\n\t// relative and may not contain the '..' path or start with '..'.\n\t// +optional\n\t// +listType=atomic\n\tItems []KeyToPath `json:\"items,omitempty\" protobuf:\"bytes,2,rep,name=items\"`\n\t// defaultMode is Optional: mode bits used to set permissions on created files by default.\n\t// Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\n\t// YAML accepts both octal and decimal values, JSON requires decimal values\n\t// for mode bits. Defaults to 0644.\n\t// Directories within the path are not affected by this setting.\n\t// This might be in conflict with other options that affect the file\n\t// mode, like fsGroup, and the result can be other mode bits set.\n\t// +optional\n\tDefaultMode *int32 `json:\"defaultMode,omitempty\" protobuf:\"bytes,3,opt,name=defaultMode\"`\n\t// optional field specify whether the Secret or its keys must be defined\n\t// +optional\n\tOptional *bool `json:\"optional,omitempty\" protobuf:\"varint,4,opt,name=optional\"`\n}\n\nconst (\n\tSecretVolumeSourceDefaultMode int32 = 0644\n)\n\n// Adapts a secret into a projected volume.\n//\n// The contents of the target Secret's Data field will be presented in a\n// projected volume as files using the keys in the Data field as the file names.\n// Note that this is identical to a secret volume source without the default\n// mode.\ntype SecretProjection struct {\n\tLocalObjectReference `json:\",inline\" protobuf:\"bytes,1,opt,name=localObjectReference\"`\n\t// items if unspecified, each key-value pair in the Data field of the referenced\n\t// Secret will be projected into the volume as a file whose name is the\n\t// key and content is the value. If specified, the listed keys will be\n\t// projected into the specified paths, and unlisted keys will not be\n\t// present. If a key is specified which is not present in the Secret,\n\t// the volume setup will error unless it is marked optional. Paths must be\n\t// relative and may not contain the '..' path or start with '..'.\n\t// +optional\n\t// +listType=atomic\n\tItems []KeyToPath `json:\"items,omitempty\" protobuf:\"bytes,2,rep,name=items\"`\n\t// optional field specify whether the Secret or its key must be defined\n\t// +optional\n\tOptional *bool `json:\"optional,omitempty\" protobuf:\"varint,4,opt,name=optional\"`\n}\n\n// Represents an NFS mount that lasts the lifetime of a pod.\n// NFS volumes do not support ownership management or SELinux relabeling.\ntype NFSVolumeSource struct {\n\t// server is the hostname or IP address of the NFS server.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\n\tServer string `json:\"server\" protobuf:\"bytes,1,opt,name=server\"`\n\n\t// path that is exported by the NFS server.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\n\tPath string `json:\"path\" protobuf:\"bytes,2,opt,name=path\"`\n\n\t// readOnly here will force the NFS export to be mounted with read-only permissions.\n\t// Defaults to false.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,3,opt,name=readOnly\"`\n}\n\n// Represents an ISCSI disk.\n// ISCSI volumes can only be mounted as read/write once.\n// ISCSI volumes support ownership management and SELinux relabeling.\ntype ISCSIVolumeSource struct {\n\t// targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port\n\t// is other than default (typically TCP ports 860 and 3260).\n\tTargetPortal string `json:\"targetPortal\" protobuf:\"bytes,1,opt,name=targetPortal\"`\n\t// iqn is the target iSCSI Qualified Name.\n\tIQN string `json:\"iqn\" protobuf:\"bytes,2,opt,name=iqn\"`\n\t// lun represents iSCSI Target Lun number.\n\tLun int32 `json:\"lun\" protobuf:\"varint,3,opt,name=lun\"`\n\t// iscsiInterface is the interface Name that uses an iSCSI transport.\n\t// Defaults to 'default' (tcp).\n\t// +optional\n\t// +default=\"default\"\n\tISCSIInterface string `json:\"iscsiInterface,omitempty\" protobuf:\"bytes,4,opt,name=iscsiInterface\"`\n\t// fsType is the filesystem type of the volume that you want to mount.\n\t// Tip: Ensure that the filesystem type is supported by the host operating system.\n\t// Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi\n\t// TODO: how do we prevent errors in the filesystem from compromising the machine\n\t// +optional\n\tFSType string `json:\"fsType,omitempty\" protobuf:\"bytes,5,opt,name=fsType\"`\n\t// readOnly here will force the ReadOnly setting in VolumeMounts.\n\t// Defaults to false.\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,6,opt,name=readOnly\"`\n\t// portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port\n\t// is other than default (typically TCP ports 860 and 3260).\n\t// +optional\n\t// +listType=atomic\n\tPortals []string `json:\"portals,omitempty\" protobuf:\"bytes,7,opt,name=portals\"`\n\t// chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\n\t// +optional\n\tDiscoveryCHAPAuth bool `json:\"chapAuthDiscovery,omitempty\" protobuf:\"varint,8,opt,name=chapAuthDiscovery\"`\n\t// chapAuthSession defines whether support iSCSI Session CHAP authentication\n\t// +optional\n\tSessionCHAPAuth bool `json:\"chapAuthSession,omitempty\" protobuf:\"varint,11,opt,name=chapAuthSession\"`\n\t// secretRef is the CHAP Secret for iSCSI target and initiator authentication\n\t// +optional\n\tSecretRef *LocalObjectReference `json:\"secretRef,omitempty\" protobuf:\"bytes,10,opt,name=secretRef\"`\n\t// initiatorName is the custom iSCSI Initiator Name.\n\t// If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface\n\t// <target portal>:<volume name> will be created for the connection.\n\t// +optional\n\tInitiatorName *string `json:\"initiatorName,omitempty\" protobuf:\"bytes,12,opt,name=initiatorName\"`\n}\n\n// ISCSIPersistentVolumeSource represents an ISCSI disk.\n// ISCSI volumes can only be mounted as read/write once.\n// ISCSI volumes support ownership management and SELinux relabeling.\ntype ISCSIPersistentVolumeSource struct {\n\t// targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port\n\t// is other than default (typically TCP ports 860 and 3260).\n\tTargetPortal string `json:\"targetPortal\" protobuf:\"bytes,1,opt,name=targetPortal\"`\n\t// iqn is Target iSCSI Qualified Name.\n\tIQN string `json:\"iqn\" protobuf:\"bytes,2,opt,name=iqn\"`\n\t// lun is iSCSI Target Lun number.\n\tLun int32 `json:\"lun\" protobuf:\"varint,3,opt,name=lun\"`\n\t// iscsiInterface is the interface Name that uses an iSCSI transport.\n\t// Defaults to 'default' (tcp).\n\t// +optional\n\t// +default=\"default\"\n\tISCSIInterface string `json:\"iscsiInterface,omitempty\" protobuf:\"bytes,4,opt,name=iscsiInterface\"`\n\t// fsType is the filesystem type of the volume that you want to mount.\n\t// Tip: Ensure that the filesystem type is supported by the host operating system.\n\t// Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi\n\t// TODO: how do we prevent errors in the filesystem from compromising the machine\n\t// +optional\n\tFSType string `json:\"fsType,omitempty\" protobuf:\"bytes,5,opt,name=fsType\"`\n\t// readOnly here will force the ReadOnly setting in VolumeMounts.\n\t// Defaults to false.\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,6,opt,name=readOnly\"`\n\t// portals is the iSCSI Target Portal List. The Portal is either an IP or ip_addr:port if the port\n\t// is other than default (typically TCP ports 860 and 3260).\n\t// +optional\n\t// +listType=atomic\n\tPortals []string `json:\"portals,omitempty\" protobuf:\"bytes,7,opt,name=portals\"`\n\t// chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\n\t// +optional\n\tDiscoveryCHAPAuth bool `json:\"chapAuthDiscovery,omitempty\" protobuf:\"varint,8,opt,name=chapAuthDiscovery\"`\n\t// chapAuthSession defines whether support iSCSI Session CHAP authentication\n\t// +optional\n\tSessionCHAPAuth bool `json:\"chapAuthSession,omitempty\" protobuf:\"varint,11,opt,name=chapAuthSession\"`\n\t// secretRef is the CHAP Secret for iSCSI target and initiator authentication\n\t// +optional\n\tSecretRef *SecretReference `json:\"secretRef,omitempty\" protobuf:\"bytes,10,opt,name=secretRef\"`\n\t// initiatorName is the custom iSCSI Initiator Name.\n\t// If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface\n\t// <target portal>:<volume name> will be created for the connection.\n\t// +optional\n\tInitiatorName *string `json:\"initiatorName,omitempty\" protobuf:\"bytes,12,opt,name=initiatorName\"`\n}\n\n// Represents a Fibre Channel volume.\n// Fibre Channel volumes can only be mounted as read/write once.\n// Fibre Channel volumes support ownership management and SELinux relabeling.\ntype FCVolumeSource struct {\n\t// targetWWNs is Optional: FC target worldwide names (WWNs)\n\t// +optional\n\t// +listType=atomic\n\tTargetWWNs []string `json:\"targetWWNs,omitempty\" protobuf:\"bytes,1,rep,name=targetWWNs\"`\n\t// lun is Optional: FC target lun number\n\t// +optional\n\tLun *int32 `json:\"lun,omitempty\" protobuf:\"varint,2,opt,name=lun\"`\n\t// fsType is the filesystem type to mount.\n\t// Must be a filesystem type supported by the host operating system.\n\t// Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n\t// TODO: how do we prevent errors in the filesystem from compromising the machine\n\t// +optional\n\tFSType string `json:\"fsType,omitempty\" protobuf:\"bytes,3,opt,name=fsType\"`\n\t// readOnly is Optional: Defaults to false (read/write). ReadOnly here will force\n\t// the ReadOnly setting in VolumeMounts.\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,4,opt,name=readOnly\"`\n\t// wwids Optional: FC volume world wide identifiers (wwids)\n\t// Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\n\t// +optional\n\t// +listType=atomic\n\tWWIDs []string `json:\"wwids,omitempty\" protobuf:\"bytes,5,rep,name=wwids\"`\n}\n\n// AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\ntype AzureFileVolumeSource struct {\n\t// secretName is the  name of secret that contains Azure Storage Account Name and Key\n\tSecretName string `json:\"secretName\" protobuf:\"bytes,1,opt,name=secretName\"`\n\t// shareName is the azure share Name\n\tShareName string `json:\"shareName\" protobuf:\"bytes,2,opt,name=shareName\"`\n\t// readOnly defaults to false (read/write). ReadOnly here will force\n\t// the ReadOnly setting in VolumeMounts.\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,3,opt,name=readOnly\"`\n}\n\n// AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\ntype AzureFilePersistentVolumeSource struct {\n\t// secretName is the name of secret that contains Azure Storage Account Name and Key\n\tSecretName string `json:\"secretName\" protobuf:\"bytes,1,opt,name=secretName\"`\n\t// shareName is the azure Share Name\n\tShareName string `json:\"shareName\" protobuf:\"bytes,2,opt,name=shareName\"`\n\t// readOnly defaults to false (read/write). ReadOnly here will force\n\t// the ReadOnly setting in VolumeMounts.\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,3,opt,name=readOnly\"`\n\t// secretNamespace is the namespace of the secret that contains Azure Storage Account Name and Key\n\t// default is the same as the Pod\n\t// +optional\n\tSecretNamespace *string `json:\"secretNamespace\" protobuf:\"bytes,4,opt,name=secretNamespace\"`\n}\n\n// Represents a vSphere volume resource.\ntype VsphereVirtualDiskVolumeSource struct {\n\t// volumePath is the path that identifies vSphere volume vmdk\n\tVolumePath string `json:\"volumePath\" protobuf:\"bytes,1,opt,name=volumePath\"`\n\t// fsType is filesystem type to mount.\n\t// Must be a filesystem type supported by the host operating system.\n\t// Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n\t// +optional\n\tFSType string `json:\"fsType,omitempty\" protobuf:\"bytes,2,opt,name=fsType\"`\n\t// storagePolicyName is the storage Policy Based Management (SPBM) profile name.\n\t// +optional\n\tStoragePolicyName string `json:\"storagePolicyName,omitempty\" protobuf:\"bytes,3,opt,name=storagePolicyName\"`\n\t// storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.\n\t// +optional\n\tStoragePolicyID string `json:\"storagePolicyID,omitempty\" protobuf:\"bytes,4,opt,name=storagePolicyID\"`\n}\n\n// Represents a Photon Controller persistent disk resource.\ntype PhotonPersistentDiskVolumeSource struct {\n\t// pdID is the ID that identifies Photon Controller persistent disk\n\tPdID string `json:\"pdID\" protobuf:\"bytes,1,opt,name=pdID\"`\n\t// fsType is the filesystem type to mount.\n\t// Must be a filesystem type supported by the host operating system.\n\t// Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n\tFSType string `json:\"fsType,omitempty\" protobuf:\"bytes,2,opt,name=fsType\"`\n}\n\n// +enum\ntype AzureDataDiskCachingMode string\n\n// +enum\ntype AzureDataDiskKind string\n\nconst (\n\tAzureDataDiskCachingNone      AzureDataDiskCachingMode = \"None\"\n\tAzureDataDiskCachingReadOnly  AzureDataDiskCachingMode = \"ReadOnly\"\n\tAzureDataDiskCachingReadWrite AzureDataDiskCachingMode = \"ReadWrite\"\n\n\tAzureSharedBlobDisk    AzureDataDiskKind = \"Shared\"\n\tAzureDedicatedBlobDisk AzureDataDiskKind = \"Dedicated\"\n\tAzureManagedDisk       AzureDataDiskKind = \"Managed\"\n)\n\n// AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\ntype AzureDiskVolumeSource struct {\n\t// diskName is the Name of the data disk in the blob storage\n\tDiskName string `json:\"diskName\" protobuf:\"bytes,1,opt,name=diskName\"`\n\t// diskURI is the URI of data disk in the blob storage\n\tDataDiskURI string `json:\"diskURI\" protobuf:\"bytes,2,opt,name=diskURI\"`\n\t// cachingMode is the Host Caching mode: None, Read Only, Read Write.\n\t// +optional\n\t// +default=ref(AzureDataDiskCachingReadWrite)\n\tCachingMode *AzureDataDiskCachingMode `json:\"cachingMode,omitempty\" protobuf:\"bytes,3,opt,name=cachingMode,casttype=AzureDataDiskCachingMode\"`\n\t// fsType is Filesystem type to mount.\n\t// Must be a filesystem type supported by the host operating system.\n\t// Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n\t// +optional\n\t// +default=\"ext4\"\n\tFSType *string `json:\"fsType,omitempty\" protobuf:\"bytes,4,opt,name=fsType\"`\n\t// readOnly Defaults to false (read/write). ReadOnly here will force\n\t// the ReadOnly setting in VolumeMounts.\n\t// +optional\n\t// +default=false\n\tReadOnly *bool `json:\"readOnly,omitempty\" protobuf:\"varint,5,opt,name=readOnly\"`\n\t// kind expected values are Shared: multiple blob disks per storage account  Dedicated: single blob disk per storage account  Managed: azure managed data disk (only in managed availability set). defaults to shared\n\t// +default=ref(AzureSharedBlobDisk)\n\tKind *AzureDataDiskKind `json:\"kind,omitempty\" protobuf:\"bytes,6,opt,name=kind,casttype=AzureDataDiskKind\"`\n}\n\n// PortworxVolumeSource represents a Portworx volume resource.\ntype PortworxVolumeSource struct {\n\t// volumeID uniquely identifies a Portworx volume\n\tVolumeID string `json:\"volumeID\" protobuf:\"bytes,1,opt,name=volumeID\"`\n\t// fSType represents the filesystem type to mount\n\t// Must be a filesystem type supported by the host operating system.\n\t// Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified.\n\tFSType string `json:\"fsType,omitempty\" protobuf:\"bytes,2,opt,name=fsType\"`\n\t// readOnly defaults to false (read/write). ReadOnly here will force\n\t// the ReadOnly setting in VolumeMounts.\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,3,opt,name=readOnly\"`\n}\n\n// ScaleIOVolumeSource represents a persistent ScaleIO volume\ntype ScaleIOVolumeSource struct {\n\t// gateway is the host address of the ScaleIO API Gateway.\n\tGateway string `json:\"gateway\" protobuf:\"bytes,1,opt,name=gateway\"`\n\t// system is the name of the storage system as configured in ScaleIO.\n\tSystem string `json:\"system\" protobuf:\"bytes,2,opt,name=system\"`\n\t// secretRef references to the secret for ScaleIO user and other\n\t// sensitive information. If this is not provided, Login operation will fail.\n\tSecretRef *LocalObjectReference `json:\"secretRef\" protobuf:\"bytes,3,opt,name=secretRef\"`\n\t// sslEnabled Flag enable/disable SSL communication with Gateway, default false\n\t// +optional\n\tSSLEnabled bool `json:\"sslEnabled,omitempty\" protobuf:\"varint,4,opt,name=sslEnabled\"`\n\t// protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\n\t// +optional\n\tProtectionDomain string `json:\"protectionDomain,omitempty\" protobuf:\"bytes,5,opt,name=protectionDomain\"`\n\t// storagePool is the ScaleIO Storage Pool associated with the protection domain.\n\t// +optional\n\tStoragePool string `json:\"storagePool,omitempty\" protobuf:\"bytes,6,opt,name=storagePool\"`\n\t// storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.\n\t// Default is ThinProvisioned.\n\t// +optional\n\t// +default=\"ThinProvisioned\"\n\tStorageMode string `json:\"storageMode,omitempty\" protobuf:\"bytes,7,opt,name=storageMode\"`\n\t// volumeName is the name of a volume already created in the ScaleIO system\n\t// that is associated with this volume source.\n\tVolumeName string `json:\"volumeName,omitempty\" protobuf:\"bytes,8,opt,name=volumeName\"`\n\t// fsType is the filesystem type to mount.\n\t// Must be a filesystem type supported by the host operating system.\n\t// Ex. \"ext4\", \"xfs\", \"ntfs\".\n\t// Default is \"xfs\".\n\t// +optional\n\t// +default=\"xfs\"\n\tFSType string `json:\"fsType,omitempty\" protobuf:\"bytes,9,opt,name=fsType\"`\n\t// readOnly Defaults to false (read/write). ReadOnly here will force\n\t// the ReadOnly setting in VolumeMounts.\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,10,opt,name=readOnly\"`\n}\n\n// ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume\ntype ScaleIOPersistentVolumeSource struct {\n\t// gateway is the host address of the ScaleIO API Gateway.\n\tGateway string `json:\"gateway\" protobuf:\"bytes,1,opt,name=gateway\"`\n\t// system is the name of the storage system as configured in ScaleIO.\n\tSystem string `json:\"system\" protobuf:\"bytes,2,opt,name=system\"`\n\t// secretRef references to the secret for ScaleIO user and other\n\t// sensitive information. If this is not provided, Login operation will fail.\n\tSecretRef *SecretReference `json:\"secretRef\" protobuf:\"bytes,3,opt,name=secretRef\"`\n\t// sslEnabled is the flag to enable/disable SSL communication with Gateway, default false\n\t// +optional\n\tSSLEnabled bool `json:\"sslEnabled,omitempty\" protobuf:\"varint,4,opt,name=sslEnabled\"`\n\t// protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\n\t// +optional\n\tProtectionDomain string `json:\"protectionDomain,omitempty\" protobuf:\"bytes,5,opt,name=protectionDomain\"`\n\t// storagePool is the ScaleIO Storage Pool associated with the protection domain.\n\t// +optional\n\tStoragePool string `json:\"storagePool,omitempty\" protobuf:\"bytes,6,opt,name=storagePool\"`\n\t// storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.\n\t// Default is ThinProvisioned.\n\t// +optional\n\t// +default=\"ThinProvisioned\"\n\tStorageMode string `json:\"storageMode,omitempty\" protobuf:\"bytes,7,opt,name=storageMode\"`\n\t// volumeName is the name of a volume already created in the ScaleIO system\n\t// that is associated with this volume source.\n\tVolumeName string `json:\"volumeName,omitempty\" protobuf:\"bytes,8,opt,name=volumeName\"`\n\t// fsType is the filesystem type to mount.\n\t// Must be a filesystem type supported by the host operating system.\n\t// Ex. \"ext4\", \"xfs\", \"ntfs\".\n\t// Default is \"xfs\"\n\t// +optional\n\t// +default=\"xfs\"\n\tFSType string `json:\"fsType,omitempty\" protobuf:\"bytes,9,opt,name=fsType\"`\n\t// readOnly defaults to false (read/write). ReadOnly here will force\n\t// the ReadOnly setting in VolumeMounts.\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,10,opt,name=readOnly\"`\n}\n\n// Represents a StorageOS persistent volume resource.\ntype StorageOSVolumeSource struct {\n\t// volumeName is the human-readable name of the StorageOS volume.  Volume\n\t// names are only unique within a namespace.\n\tVolumeName string `json:\"volumeName,omitempty\" protobuf:\"bytes,1,opt,name=volumeName\"`\n\t// volumeNamespace specifies the scope of the volume within StorageOS.  If no\n\t// namespace is specified then the Pod's namespace will be used.  This allows the\n\t// Kubernetes name scoping to be mirrored within StorageOS for tighter integration.\n\t// Set VolumeName to any name to override the default behaviour.\n\t// Set to \"default\" if you are not using namespaces within StorageOS.\n\t// Namespaces that do not pre-exist within StorageOS will be created.\n\t// +optional\n\tVolumeNamespace string `json:\"volumeNamespace,omitempty\" protobuf:\"bytes,2,opt,name=volumeNamespace\"`\n\t// fsType is the filesystem type to mount.\n\t// Must be a filesystem type supported by the host operating system.\n\t// Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n\t// +optional\n\tFSType string `json:\"fsType,omitempty\" protobuf:\"bytes,3,opt,name=fsType\"`\n\t// readOnly defaults to false (read/write). ReadOnly here will force\n\t// the ReadOnly setting in VolumeMounts.\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,4,opt,name=readOnly\"`\n\t// secretRef specifies the secret to use for obtaining the StorageOS API\n\t// credentials.  If not specified, default values will be attempted.\n\t// +optional\n\tSecretRef *LocalObjectReference `json:\"secretRef,omitempty\" protobuf:\"bytes,5,opt,name=secretRef\"`\n}\n\n// Represents a StorageOS persistent volume resource.\ntype StorageOSPersistentVolumeSource struct {\n\t// volumeName is the human-readable name of the StorageOS volume.  Volume\n\t// names are only unique within a namespace.\n\tVolumeName string `json:\"volumeName,omitempty\" protobuf:\"bytes,1,opt,name=volumeName\"`\n\t// volumeNamespace specifies the scope of the volume within StorageOS.  If no\n\t// namespace is specified then the Pod's namespace will be used.  This allows the\n\t// Kubernetes name scoping to be mirrored within StorageOS for tighter integration.\n\t// Set VolumeName to any name to override the default behaviour.\n\t// Set to \"default\" if you are not using namespaces within StorageOS.\n\t// Namespaces that do not pre-exist within StorageOS will be created.\n\t// +optional\n\tVolumeNamespace string `json:\"volumeNamespace,omitempty\" protobuf:\"bytes,2,opt,name=volumeNamespace\"`\n\t// fsType is the filesystem type to mount.\n\t// Must be a filesystem type supported by the host operating system.\n\t// Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n\t// +optional\n\tFSType string `json:\"fsType,omitempty\" protobuf:\"bytes,3,opt,name=fsType\"`\n\t// readOnly defaults to false (read/write). ReadOnly here will force\n\t// the ReadOnly setting in VolumeMounts.\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,4,opt,name=readOnly\"`\n\t// secretRef specifies the secret to use for obtaining the StorageOS API\n\t// credentials.  If not specified, default values will be attempted.\n\t// +optional\n\tSecretRef *ObjectReference `json:\"secretRef,omitempty\" protobuf:\"bytes,5,opt,name=secretRef\"`\n}\n\n// Adapts a ConfigMap into a volume.\n//\n// The contents of the target ConfigMap's Data field will be presented in a\n// volume as files using the keys in the Data field as the file names, unless\n// the items element is populated with specific mappings of keys to paths.\n// ConfigMap volumes support ownership management and SELinux relabeling.\ntype ConfigMapVolumeSource struct {\n\tLocalObjectReference `json:\",inline\" protobuf:\"bytes,1,opt,name=localObjectReference\"`\n\t// items if unspecified, each key-value pair in the Data field of the referenced\n\t// ConfigMap will be projected into the volume as a file whose name is the\n\t// key and content is the value. If specified, the listed keys will be\n\t// projected into the specified paths, and unlisted keys will not be\n\t// present. If a key is specified which is not present in the ConfigMap,\n\t// the volume setup will error unless it is marked optional. Paths must be\n\t// relative and may not contain the '..' path or start with '..'.\n\t// +optional\n\t// +listType=atomic\n\tItems []KeyToPath `json:\"items,omitempty\" protobuf:\"bytes,2,rep,name=items\"`\n\t// defaultMode is optional: mode bits used to set permissions on created files by default.\n\t// Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\n\t// YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\n\t// Defaults to 0644.\n\t// Directories within the path are not affected by this setting.\n\t// This might be in conflict with other options that affect the file\n\t// mode, like fsGroup, and the result can be other mode bits set.\n\t// +optional\n\tDefaultMode *int32 `json:\"defaultMode,omitempty\" protobuf:\"varint,3,opt,name=defaultMode\"`\n\t// optional specify whether the ConfigMap or its keys must be defined\n\t// +optional\n\tOptional *bool `json:\"optional,omitempty\" protobuf:\"varint,4,opt,name=optional\"`\n}\n\nconst (\n\tConfigMapVolumeSourceDefaultMode int32 = 0644\n)\n\n// Adapts a ConfigMap into a projected volume.\n//\n// The contents of the target ConfigMap's Data field will be presented in a\n// projected volume as files using the keys in the Data field as the file names,\n// unless the items element is populated with specific mappings of keys to paths.\n// Note that this is identical to a configmap volume source without the default\n// mode.\ntype ConfigMapProjection struct {\n\tLocalObjectReference `json:\",inline\" protobuf:\"bytes,1,opt,name=localObjectReference\"`\n\t// items if unspecified, each key-value pair in the Data field of the referenced\n\t// ConfigMap will be projected into the volume as a file whose name is the\n\t// key and content is the value. If specified, the listed keys will be\n\t// projected into the specified paths, and unlisted keys will not be\n\t// present. If a key is specified which is not present in the ConfigMap,\n\t// the volume setup will error unless it is marked optional. Paths must be\n\t// relative and may not contain the '..' path or start with '..'.\n\t// +optional\n\t// +listType=atomic\n\tItems []KeyToPath `json:\"items,omitempty\" protobuf:\"bytes,2,rep,name=items\"`\n\t// optional specify whether the ConfigMap or its keys must be defined\n\t// +optional\n\tOptional *bool `json:\"optional,omitempty\" protobuf:\"varint,4,opt,name=optional\"`\n}\n\n// ServiceAccountTokenProjection represents a projected service account token\n// volume. This projection can be used to insert a service account token into\n// the pods runtime filesystem for use against APIs (Kubernetes API Server or\n// otherwise).\ntype ServiceAccountTokenProjection struct {\n\t// audience is the intended audience of the token. A recipient of a token\n\t// must identify itself with an identifier specified in the audience of the\n\t// token, and otherwise should reject the token. The audience defaults to the\n\t// identifier of the apiserver.\n\t// +optional\n\tAudience string `json:\"audience,omitempty\" protobuf:\"bytes,1,rep,name=audience\"`\n\t// expirationSeconds is the requested duration of validity of the service\n\t// account token. As the token approaches expiration, the kubelet volume\n\t// plugin will proactively rotate the service account token. The kubelet will\n\t// start trying to rotate the token if the token is older than 80 percent of\n\t// its time to live or if the token is older than 24 hours.Defaults to 1 hour\n\t// and must be at least 10 minutes.\n\t// +optional\n\tExpirationSeconds *int64 `json:\"expirationSeconds,omitempty\" protobuf:\"varint,2,opt,name=expirationSeconds\"`\n\t// path is the path relative to the mount point of the file to project the\n\t// token into.\n\tPath string `json:\"path\" protobuf:\"bytes,3,opt,name=path\"`\n}\n\n// ClusterTrustBundleProjection describes how to select a set of\n// ClusterTrustBundle objects and project their contents into the pod\n// filesystem.\ntype ClusterTrustBundleProjection struct {\n\t// Select a single ClusterTrustBundle by object name.  Mutually-exclusive\n\t// with signerName and labelSelector.\n\t// +optional\n\tName *string `json:\"name,omitempty\" protobuf:\"bytes,1,rep,name=name\"`\n\n\t// Select all ClusterTrustBundles that match this signer name.\n\t// Mutually-exclusive with name.  The contents of all selected\n\t// ClusterTrustBundles will be unified and deduplicated.\n\t// +optional\n\tSignerName *string `json:\"signerName,omitempty\" protobuf:\"bytes,2,rep,name=signerName\"`\n\n\t// Select all ClusterTrustBundles that match this label selector.  Only has\n\t// effect if signerName is set.  Mutually-exclusive with name.  If unset,\n\t// interpreted as \"match nothing\".  If set but empty, interpreted as \"match\n\t// everything\".\n\t// +optional\n\tLabelSelector *metav1.LabelSelector `json:\"labelSelector,omitempty\" protobuf:\"bytes,3,rep,name=labelSelector\"`\n\n\t// If true, don't block pod startup if the referenced ClusterTrustBundle(s)\n\t// aren't available.  If using name, then the named ClusterTrustBundle is\n\t// allowed not to exist.  If using signerName, then the combination of\n\t// signerName and labelSelector is allowed to match zero\n\t// ClusterTrustBundles.\n\t// +optional\n\tOptional *bool `json:\"optional,omitempty\" protobuf:\"varint,5,opt,name=optional\"`\n\n\t// Relative path from the volume root to write the bundle.\n\tPath string `json:\"path\" protobuf:\"bytes,4,rep,name=path\"`\n}\n\n// Represents a projected volume source\ntype ProjectedVolumeSource struct {\n\t// sources is the list of volume projections. Each entry in this list\n\t// handles one source.\n\t// +optional\n\t// +listType=atomic\n\tSources []VolumeProjection `json:\"sources\" protobuf:\"bytes,1,rep,name=sources\"`\n\t// defaultMode are the mode bits used to set permissions on created files by default.\n\t// Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\n\t// YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\n\t// Directories within the path are not affected by this setting.\n\t// This might be in conflict with other options that affect the file\n\t// mode, like fsGroup, and the result can be other mode bits set.\n\t// +optional\n\tDefaultMode *int32 `json:\"defaultMode,omitempty\" protobuf:\"varint,2,opt,name=defaultMode\"`\n}\n\n// Projection that may be projected along with other supported volume types.\n// Exactly one of these fields must be set.\ntype VolumeProjection struct {\n\t// secret information about the secret data to project\n\t// +optional\n\tSecret *SecretProjection `json:\"secret,omitempty\" protobuf:\"bytes,1,opt,name=secret\"`\n\t// downwardAPI information about the downwardAPI data to project\n\t// +optional\n\tDownwardAPI *DownwardAPIProjection `json:\"downwardAPI,omitempty\" protobuf:\"bytes,2,opt,name=downwardAPI\"`\n\t// configMap information about the configMap data to project\n\t// +optional\n\tConfigMap *ConfigMapProjection `json:\"configMap,omitempty\" protobuf:\"bytes,3,opt,name=configMap\"`\n\t// serviceAccountToken is information about the serviceAccountToken data to project\n\t// +optional\n\tServiceAccountToken *ServiceAccountTokenProjection `json:\"serviceAccountToken,omitempty\" protobuf:\"bytes,4,opt,name=serviceAccountToken\"`\n\n\t// ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field\n\t// of ClusterTrustBundle objects in an auto-updating file.\n\t//\n\t// Alpha, gated by the ClusterTrustBundleProjection feature gate.\n\t//\n\t// ClusterTrustBundle objects can either be selected by name, or by the\n\t// combination of signer name and a label selector.\n\t//\n\t// Kubelet performs aggressive normalization of the PEM contents written\n\t// into the pod filesystem.  Esoteric PEM features such as inter-block\n\t// comments and block headers are stripped.  Certificates are deduplicated.\n\t// The ordering of certificates within the file is arbitrary, and Kubelet\n\t// may change the order over time.\n\t//\n\t// +featureGate=ClusterTrustBundleProjection\n\t// +optional\n\tClusterTrustBundle *ClusterTrustBundleProjection `json:\"clusterTrustBundle,omitempty\" protobuf:\"bytes,5,opt,name=clusterTrustBundle\"`\n}\n\nconst (\n\tProjectedVolumeSourceDefaultMode int32 = 0644\n)\n\n// Maps a string key to a path within a volume.\ntype KeyToPath struct {\n\t// key is the key to project.\n\tKey string `json:\"key\" protobuf:\"bytes,1,opt,name=key\"`\n\n\t// path is the relative path of the file to map the key to.\n\t// May not be an absolute path.\n\t// May not contain the path element '..'.\n\t// May not start with the string '..'.\n\tPath string `json:\"path\" protobuf:\"bytes,2,opt,name=path\"`\n\t// mode is Optional: mode bits used to set permissions on this file.\n\t// Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\n\t// YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\n\t// If not specified, the volume defaultMode will be used.\n\t// This might be in conflict with other options that affect the file\n\t// mode, like fsGroup, and the result can be other mode bits set.\n\t// +optional\n\tMode *int32 `json:\"mode,omitempty\" protobuf:\"varint,3,opt,name=mode\"`\n}\n\n// Local represents directly-attached storage with node affinity\ntype LocalVolumeSource struct {\n\t// path of the full path to the volume on the node.\n\t// It can be either a directory or block device (disk, partition, ...).\n\tPath string `json:\"path\" protobuf:\"bytes,1,opt,name=path\"`\n\n\t// fsType is the filesystem type to mount.\n\t// It applies only when the Path is a block device.\n\t// Must be a filesystem type supported by the host operating system.\n\t// Ex. \"ext4\", \"xfs\", \"ntfs\". The default value is to auto-select a filesystem if unspecified.\n\t// +optional\n\tFSType *string `json:\"fsType,omitempty\" protobuf:\"bytes,2,opt,name=fsType\"`\n}\n\n// Represents storage that is managed by an external CSI volume driver\ntype CSIPersistentVolumeSource struct {\n\t// driver is the name of the driver to use for this volume.\n\t// Required.\n\tDriver string `json:\"driver\" protobuf:\"bytes,1,opt,name=driver\"`\n\n\t// volumeHandle is the unique volume name returned by the CSI volume\n\t// plugin’s CreateVolume to refer to the volume on all subsequent calls.\n\t// Required.\n\tVolumeHandle string `json:\"volumeHandle\" protobuf:\"bytes,2,opt,name=volumeHandle\"`\n\n\t// readOnly value to pass to ControllerPublishVolumeRequest.\n\t// Defaults to false (read/write).\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,3,opt,name=readOnly\"`\n\n\t// fsType to mount. Must be a filesystem type supported by the host operating system.\n\t// Ex. \"ext4\", \"xfs\", \"ntfs\".\n\t// +optional\n\tFSType string `json:\"fsType,omitempty\" protobuf:\"bytes,4,opt,name=fsType\"`\n\n\t// volumeAttributes of the volume to publish.\n\t// +optional\n\tVolumeAttributes map[string]string `json:\"volumeAttributes,omitempty\" protobuf:\"bytes,5,rep,name=volumeAttributes\"`\n\n\t// controllerPublishSecretRef is a reference to the secret object containing\n\t// sensitive information to pass to the CSI driver to complete the CSI\n\t// ControllerPublishVolume and ControllerUnpublishVolume calls.\n\t// This field is optional, and may be empty if no secret is required. If the\n\t// secret object contains more than one secret, all secrets are passed.\n\t// +optional\n\tControllerPublishSecretRef *SecretReference `json:\"controllerPublishSecretRef,omitempty\" protobuf:\"bytes,6,opt,name=controllerPublishSecretRef\"`\n\n\t// nodeStageSecretRef is a reference to the secret object containing sensitive\n\t// information to pass to the CSI driver to complete the CSI NodeStageVolume\n\t// and NodeStageVolume and NodeUnstageVolume calls.\n\t// This field is optional, and may be empty if no secret is required. If the\n\t// secret object contains more than one secret, all secrets are passed.\n\t// +optional\n\tNodeStageSecretRef *SecretReference `json:\"nodeStageSecretRef,omitempty\" protobuf:\"bytes,7,opt,name=nodeStageSecretRef\"`\n\n\t// nodePublishSecretRef is a reference to the secret object containing\n\t// sensitive information to pass to the CSI driver to complete the CSI\n\t// NodePublishVolume and NodeUnpublishVolume calls.\n\t// This field is optional, and may be empty if no secret is required. If the\n\t// secret object contains more than one secret, all secrets are passed.\n\t// +optional\n\tNodePublishSecretRef *SecretReference `json:\"nodePublishSecretRef,omitempty\" protobuf:\"bytes,8,opt,name=nodePublishSecretRef\"`\n\n\t// controllerExpandSecretRef is a reference to the secret object containing\n\t// sensitive information to pass to the CSI driver to complete the CSI\n\t// ControllerExpandVolume call.\n\t// This field is optional, and may be empty if no secret is required. If the\n\t// secret object contains more than one secret, all secrets are passed.\n\t// +optional\n\tControllerExpandSecretRef *SecretReference `json:\"controllerExpandSecretRef,omitempty\" protobuf:\"bytes,9,opt,name=controllerExpandSecretRef\"`\n\n\t// nodeExpandSecretRef is a reference to the secret object containing\n\t// sensitive information to pass to the CSI driver to complete the CSI\n\t// NodeExpandVolume call.\n\t// This field is optional, may be omitted if no secret is required. If the\n\t// secret object contains more than one secret, all secrets are passed.\n\t// +optional\n\tNodeExpandSecretRef *SecretReference `json:\"nodeExpandSecretRef,omitempty\" protobuf:\"bytes,10,opt,name=nodeExpandSecretRef\"`\n}\n\n// Represents a source location of a volume to mount, managed by an external CSI driver\ntype CSIVolumeSource struct {\n\t// driver is the name of the CSI driver that handles this volume.\n\t// Consult with your admin for the correct name as registered in the cluster.\n\tDriver string `json:\"driver\" protobuf:\"bytes,1,opt,name=driver\"`\n\n\t// readOnly specifies a read-only configuration for the volume.\n\t// Defaults to false (read/write).\n\t// +optional\n\tReadOnly *bool `json:\"readOnly,omitempty\" protobuf:\"varint,2,opt,name=readOnly\"`\n\n\t// fsType to mount. Ex. \"ext4\", \"xfs\", \"ntfs\".\n\t// If not provided, the empty value is passed to the associated CSI driver\n\t// which will determine the default filesystem to apply.\n\t// +optional\n\tFSType *string `json:\"fsType,omitempty\" protobuf:\"bytes,3,opt,name=fsType\"`\n\n\t// volumeAttributes stores driver-specific properties that are passed to the CSI\n\t// driver. Consult your driver's documentation for supported values.\n\t// +optional\n\tVolumeAttributes map[string]string `json:\"volumeAttributes,omitempty\" protobuf:\"bytes,4,rep,name=volumeAttributes\"`\n\n\t// nodePublishSecretRef is a reference to the secret object containing\n\t// sensitive information to pass to the CSI driver to complete the CSI\n\t// NodePublishVolume and NodeUnpublishVolume calls.\n\t// This field is optional, and  may be empty if no secret is required. If the\n\t// secret object contains more than one secret, all secret references are passed.\n\t// +optional\n\tNodePublishSecretRef *LocalObjectReference `json:\"nodePublishSecretRef,omitempty\" protobuf:\"bytes,5,opt,name=nodePublishSecretRef\"`\n}\n\n// Represents an ephemeral volume that is handled by a normal storage driver.\ntype EphemeralVolumeSource struct {\n\t// Will be used to create a stand-alone PVC to provision the volume.\n\t// The pod in which this EphemeralVolumeSource is embedded will be the\n\t// owner of the PVC, i.e. the PVC will be deleted together with the\n\t// pod.  The name of the PVC will be `<pod name>-<volume name>` where\n\t// `<volume name>` is the name from the `PodSpec.Volumes` array\n\t// entry. Pod validation will reject the pod if the concatenated name\n\t// is not valid for a PVC (for example, too long).\n\t//\n\t// An existing PVC with that name that is not owned by the pod\n\t// will *not* be used for the pod to avoid using an unrelated\n\t// volume by mistake. Starting the pod is then blocked until\n\t// the unrelated PVC is removed. If such a pre-created PVC is\n\t// meant to be used by the pod, the PVC has to updated with an\n\t// owner reference to the pod once the pod exists. Normally\n\t// this should not be necessary, but it may be useful when\n\t// manually reconstructing a broken cluster.\n\t//\n\t// This field is read-only and no changes will be made by Kubernetes\n\t// to the PVC after it has been created.\n\t//\n\t// Required, must not be nil.\n\tVolumeClaimTemplate *PersistentVolumeClaimTemplate `json:\"volumeClaimTemplate,omitempty\" protobuf:\"bytes,1,opt,name=volumeClaimTemplate\"`\n\n\t// ReadOnly is tombstoned to show why 2 is a reserved protobuf tag.\n\t// ReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,2,opt,name=readOnly\"`\n}\n\n// PersistentVolumeClaimTemplate is used to produce\n// PersistentVolumeClaim objects as part of an EphemeralVolumeSource.\ntype PersistentVolumeClaimTemplate struct {\n\t// May contain labels and annotations that will be copied into the PVC\n\t// when creating it. No other fields are allowed and will be rejected during\n\t// validation.\n\t//\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// The specification for the PersistentVolumeClaim. The entire content is\n\t// copied unchanged into the PVC that gets created from this\n\t// template. The same fields as in a PersistentVolumeClaim\n\t// are also valid here.\n\tSpec PersistentVolumeClaimSpec `json:\"spec\" protobuf:\"bytes,2,name=spec\"`\n}\n\n// ContainerPort represents a network port in a single container.\ntype ContainerPort struct {\n\t// If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\n\t// named port in a pod must have a unique name. Name for the port that can be\n\t// referred to by services.\n\t// +optional\n\tName string `json:\"name,omitempty\" protobuf:\"bytes,1,opt,name=name\"`\n\t// Number of port to expose on the host.\n\t// If specified, this must be a valid port number, 0 < x < 65536.\n\t// If HostNetwork is specified, this must match ContainerPort.\n\t// Most containers do not need this.\n\t// +optional\n\tHostPort int32 `json:\"hostPort,omitempty\" protobuf:\"varint,2,opt,name=hostPort\"`\n\t// Number of port to expose on the pod's IP address.\n\t// This must be a valid port number, 0 < x < 65536.\n\tContainerPort int32 `json:\"containerPort\" protobuf:\"varint,3,opt,name=containerPort\"`\n\t// Protocol for port. Must be UDP, TCP, or SCTP.\n\t// Defaults to \"TCP\".\n\t// +optional\n\t// +default=\"TCP\"\n\tProtocol Protocol `json:\"protocol,omitempty\" protobuf:\"bytes,4,opt,name=protocol,casttype=Protocol\"`\n\t// What host IP to bind the external port to.\n\t// +optional\n\tHostIP string `json:\"hostIP,omitempty\" protobuf:\"bytes,5,opt,name=hostIP\"`\n}\n\n// VolumeMount describes a mounting of a Volume within a container.\ntype VolumeMount struct {\n\t// This must match the Name of a Volume.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\t// Mounted read-only if true, read-write otherwise (false or unspecified).\n\t// Defaults to false.\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,2,opt,name=readOnly\"`\n\t// RecursiveReadOnly specifies whether read-only mounts should be handled\n\t// recursively.\n\t//\n\t// If ReadOnly is false, this field has no meaning and must be unspecified.\n\t//\n\t// If ReadOnly is true, and this field is set to Disabled, the mount is not made\n\t// recursively read-only.  If this field is set to IfPossible, the mount is made\n\t// recursively read-only, if it is supported by the container runtime.  If this\n\t// field is set to Enabled, the mount is made recursively read-only if it is\n\t// supported by the container runtime, otherwise the pod will not be started and\n\t// an error will be generated to indicate the reason.\n\t//\n\t// If this field is set to IfPossible or Enabled, MountPropagation must be set to\n\t// None (or be unspecified, which defaults to None).\n\t//\n\t// If this field is not specified, it is treated as an equivalent of Disabled.\n\t//\n\t// +featureGate=RecursiveReadOnlyMounts\n\t// +optional\n\tRecursiveReadOnly *RecursiveReadOnlyMode `json:\"recursiveReadOnly,omitempty\" protobuf:\"bytes,7,opt,name=recursiveReadOnly,casttype=RecursiveReadOnlyMode\"`\n\t// Path within the container at which the volume should be mounted.  Must\n\t// not contain ':'.\n\tMountPath string `json:\"mountPath\" protobuf:\"bytes,3,opt,name=mountPath\"`\n\t// Path within the volume from which the container's volume should be mounted.\n\t// Defaults to \"\" (volume's root).\n\t// +optional\n\tSubPath string `json:\"subPath,omitempty\" protobuf:\"bytes,4,opt,name=subPath\"`\n\t// mountPropagation determines how mounts are propagated from the host\n\t// to container and the other way around.\n\t// When not set, MountPropagationNone is used.\n\t// This field is beta in 1.10.\n\t// When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified\n\t// (which defaults to None).\n\t// +optional\n\tMountPropagation *MountPropagationMode `json:\"mountPropagation,omitempty\" protobuf:\"bytes,5,opt,name=mountPropagation,casttype=MountPropagationMode\"`\n\t// Expanded path within the volume from which the container's volume should be mounted.\n\t// Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.\n\t// Defaults to \"\" (volume's root).\n\t// SubPathExpr and SubPath are mutually exclusive.\n\t// +optional\n\tSubPathExpr string `json:\"subPathExpr,omitempty\" protobuf:\"bytes,6,opt,name=subPathExpr\"`\n}\n\n// MountPropagationMode describes mount propagation.\n// +enum\ntype MountPropagationMode string\n\nconst (\n\t// MountPropagationNone means that the volume in a container will\n\t// not receive new mounts from the host or other containers, and filesystems\n\t// mounted inside the container won't be propagated to the host or other\n\t// containers.\n\t// Note that this mode corresponds to \"private\" in Linux terminology.\n\tMountPropagationNone MountPropagationMode = \"None\"\n\t// MountPropagationHostToContainer means that the volume in a container will\n\t// receive new mounts from the host or other containers, but filesystems\n\t// mounted inside the container won't be propagated to the host or other\n\t// containers.\n\t// Note that this mode is recursively applied to all mounts in the volume\n\t// (\"rslave\" in Linux terminology).\n\tMountPropagationHostToContainer MountPropagationMode = \"HostToContainer\"\n\t// MountPropagationBidirectional means that the volume in a container will\n\t// receive new mounts from the host or other containers, and its own mounts\n\t// will be propagated from the container to the host or other containers.\n\t// Note that this mode is recursively applied to all mounts in the volume\n\t// (\"rshared\" in Linux terminology).\n\tMountPropagationBidirectional MountPropagationMode = \"Bidirectional\"\n)\n\n// RecursiveReadOnlyMode describes recursive-readonly mode.\ntype RecursiveReadOnlyMode string\n\nconst (\n\t// RecursiveReadOnlyDisabled disables recursive-readonly mode.\n\tRecursiveReadOnlyDisabled RecursiveReadOnlyMode = \"Disabled\"\n\t// RecursiveReadOnlyIfPossible enables recursive-readonly mode if possible.\n\tRecursiveReadOnlyIfPossible RecursiveReadOnlyMode = \"IfPossible\"\n\t// RecursiveReadOnlyEnabled enables recursive-readonly mode, or raise an error.\n\tRecursiveReadOnlyEnabled RecursiveReadOnlyMode = \"Enabled\"\n)\n\n// volumeDevice describes a mapping of a raw block device within a container.\ntype VolumeDevice struct {\n\t// name must match the name of a persistentVolumeClaim in the pod\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\t// devicePath is the path inside of the container that the device will be mapped to.\n\tDevicePath string `json:\"devicePath\" protobuf:\"bytes,2,opt,name=devicePath\"`\n}\n\n// EnvVar represents an environment variable present in a Container.\ntype EnvVar struct {\n\t// Name of the environment variable. Must be a C_IDENTIFIER.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\n\t// Optional: no more than one of the following may be specified.\n\n\t// Variable references $(VAR_NAME) are expanded\n\t// using the previously defined environment variables in the container and\n\t// any service environment variables. If a variable cannot be resolved,\n\t// the reference in the input string will be unchanged. Double $$ are reduced\n\t// to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.\n\t// \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\".\n\t// Escaped references will never be expanded, regardless of whether the variable\n\t// exists or not.\n\t// Defaults to \"\".\n\t// +optional\n\tValue string `json:\"value,omitempty\" protobuf:\"bytes,2,opt,name=value\"`\n\t// Source for the environment variable's value. Cannot be used if value is not empty.\n\t// +optional\n\tValueFrom *EnvVarSource `json:\"valueFrom,omitempty\" protobuf:\"bytes,3,opt,name=valueFrom\"`\n}\n\n// EnvVarSource represents a source for the value of an EnvVar.\ntype EnvVarSource struct {\n\t// Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['<KEY>']`, `metadata.annotations['<KEY>']`,\n\t// spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\n\t// +optional\n\tFieldRef *ObjectFieldSelector `json:\"fieldRef,omitempty\" protobuf:\"bytes,1,opt,name=fieldRef\"`\n\t// Selects a resource of the container: only resources limits and requests\n\t// (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\n\t// +optional\n\tResourceFieldRef *ResourceFieldSelector `json:\"resourceFieldRef,omitempty\" protobuf:\"bytes,2,opt,name=resourceFieldRef\"`\n\t// Selects a key of a ConfigMap.\n\t// +optional\n\tConfigMapKeyRef *ConfigMapKeySelector `json:\"configMapKeyRef,omitempty\" protobuf:\"bytes,3,opt,name=configMapKeyRef\"`\n\t// Selects a key of a secret in the pod's namespace\n\t// +optional\n\tSecretKeyRef *SecretKeySelector `json:\"secretKeyRef,omitempty\" protobuf:\"bytes,4,opt,name=secretKeyRef\"`\n}\n\n// ObjectFieldSelector selects an APIVersioned field of an object.\n// +structType=atomic\ntype ObjectFieldSelector struct {\n\t// Version of the schema the FieldPath is written in terms of, defaults to \"v1\".\n\t// +optional\n\tAPIVersion string `json:\"apiVersion,omitempty\" protobuf:\"bytes,1,opt,name=apiVersion\"`\n\t// Path of the field to select in the specified API version.\n\tFieldPath string `json:\"fieldPath\" protobuf:\"bytes,2,opt,name=fieldPath\"`\n}\n\n// ResourceFieldSelector represents container resources (cpu, memory) and their output format\n// +structType=atomic\ntype ResourceFieldSelector struct {\n\t// Container name: required for volumes, optional for env vars\n\t// +optional\n\tContainerName string `json:\"containerName,omitempty\" protobuf:\"bytes,1,opt,name=containerName\"`\n\t// Required: resource to select\n\tResource string `json:\"resource\" protobuf:\"bytes,2,opt,name=resource\"`\n\t// Specifies the output format of the exposed resources, defaults to \"1\"\n\t// +optional\n\tDivisor resource.Quantity `json:\"divisor,omitempty\" protobuf:\"bytes,3,opt,name=divisor\"`\n}\n\n// Selects a key from a ConfigMap.\n// +structType=atomic\ntype ConfigMapKeySelector struct {\n\t// The ConfigMap to select from.\n\tLocalObjectReference `json:\",inline\" protobuf:\"bytes,1,opt,name=localObjectReference\"`\n\t// The key to select.\n\tKey string `json:\"key\" protobuf:\"bytes,2,opt,name=key\"`\n\t// Specify whether the ConfigMap or its key must be defined\n\t// +optional\n\tOptional *bool `json:\"optional,omitempty\" protobuf:\"varint,3,opt,name=optional\"`\n}\n\n// SecretKeySelector selects a key of a Secret.\n// +structType=atomic\ntype SecretKeySelector struct {\n\t// The name of the secret in the pod's namespace to select from.\n\tLocalObjectReference `json:\",inline\" protobuf:\"bytes,1,opt,name=localObjectReference\"`\n\t// The key of the secret to select from.  Must be a valid secret key.\n\tKey string `json:\"key\" protobuf:\"bytes,2,opt,name=key\"`\n\t// Specify whether the Secret or its key must be defined\n\t// +optional\n\tOptional *bool `json:\"optional,omitempty\" protobuf:\"varint,3,opt,name=optional\"`\n}\n\n// EnvFromSource represents the source of a set of ConfigMaps\ntype EnvFromSource struct {\n\t// An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\n\t// +optional\n\tPrefix string `json:\"prefix,omitempty\" protobuf:\"bytes,1,opt,name=prefix\"`\n\t// The ConfigMap to select from\n\t// +optional\n\tConfigMapRef *ConfigMapEnvSource `json:\"configMapRef,omitempty\" protobuf:\"bytes,2,opt,name=configMapRef\"`\n\t// The Secret to select from\n\t// +optional\n\tSecretRef *SecretEnvSource `json:\"secretRef,omitempty\" protobuf:\"bytes,3,opt,name=secretRef\"`\n}\n\n// ConfigMapEnvSource selects a ConfigMap to populate the environment\n// variables with.\n//\n// The contents of the target ConfigMap's Data field will represent the\n// key-value pairs as environment variables.\ntype ConfigMapEnvSource struct {\n\t// The ConfigMap to select from.\n\tLocalObjectReference `json:\",inline\" protobuf:\"bytes,1,opt,name=localObjectReference\"`\n\t// Specify whether the ConfigMap must be defined\n\t// +optional\n\tOptional *bool `json:\"optional,omitempty\" protobuf:\"varint,2,opt,name=optional\"`\n}\n\n// SecretEnvSource selects a Secret to populate the environment\n// variables with.\n//\n// The contents of the target Secret's Data field will represent the\n// key-value pairs as environment variables.\ntype SecretEnvSource struct {\n\t// The Secret to select from.\n\tLocalObjectReference `json:\",inline\" protobuf:\"bytes,1,opt,name=localObjectReference\"`\n\t// Specify whether the Secret must be defined\n\t// +optional\n\tOptional *bool `json:\"optional,omitempty\" protobuf:\"varint,2,opt,name=optional\"`\n}\n\n// HTTPHeader describes a custom header to be used in HTTP probes\ntype HTTPHeader struct {\n\t// The header field name.\n\t// This will be canonicalized upon output, so case-variant names will be understood as the same header.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\t// The header field value\n\tValue string `json:\"value\" protobuf:\"bytes,2,opt,name=value\"`\n}\n\n// HTTPGetAction describes an action based on HTTP Get requests.\ntype HTTPGetAction struct {\n\t// Path to access on the HTTP server.\n\t// +optional\n\tPath string `json:\"path,omitempty\" protobuf:\"bytes,1,opt,name=path\"`\n\t// Name or number of the port to access on the container.\n\t// Number must be in the range 1 to 65535.\n\t// Name must be an IANA_SVC_NAME.\n\tPort intstr.IntOrString `json:\"port\" protobuf:\"bytes,2,opt,name=port\"`\n\t// Host name to connect to, defaults to the pod IP. You probably want to set\n\t// \"Host\" in httpHeaders instead.\n\t// +optional\n\tHost string `json:\"host,omitempty\" protobuf:\"bytes,3,opt,name=host\"`\n\t// Scheme to use for connecting to the host.\n\t// Defaults to HTTP.\n\t// +optional\n\tScheme URIScheme `json:\"scheme,omitempty\" protobuf:\"bytes,4,opt,name=scheme,casttype=URIScheme\"`\n\t// Custom headers to set in the request. HTTP allows repeated headers.\n\t// +optional\n\t// +listType=atomic\n\tHTTPHeaders []HTTPHeader `json:\"httpHeaders,omitempty\" protobuf:\"bytes,5,rep,name=httpHeaders\"`\n}\n\n// URIScheme identifies the scheme used for connection to a host for Get actions\n// +enum\ntype URIScheme string\n\nconst (\n\t// URISchemeHTTP means that the scheme used will be http://\n\tURISchemeHTTP URIScheme = \"HTTP\"\n\t// URISchemeHTTPS means that the scheme used will be https://\n\tURISchemeHTTPS URIScheme = \"HTTPS\"\n)\n\n// TCPSocketAction describes an action based on opening a socket\ntype TCPSocketAction struct {\n\t// Number or name of the port to access on the container.\n\t// Number must be in the range 1 to 65535.\n\t// Name must be an IANA_SVC_NAME.\n\tPort intstr.IntOrString `json:\"port\" protobuf:\"bytes,1,opt,name=port\"`\n\t// Optional: Host name to connect to, defaults to the pod IP.\n\t// +optional\n\tHost string `json:\"host,omitempty\" protobuf:\"bytes,2,opt,name=host\"`\n}\n\n// GRPCAction specifies an action involving a GRPC service.\ntype GRPCAction struct {\n\t// Port number of the gRPC service. Number must be in the range 1 to 65535.\n\tPort int32 `json:\"port\" protobuf:\"bytes,1,opt,name=port\"`\n\n\t// Service is the name of the service to place in the gRPC HealthCheckRequest\n\t// (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\n\t//\n\t// If this is not specified, the default behavior is defined by gRPC.\n\t// +optional\n\t// +default=\"\"\n\tService *string `json:\"service\" protobuf:\"bytes,2,opt,name=service\"`\n}\n\n// ExecAction describes a \"run in container\" action.\ntype ExecAction struct {\n\t// Command is the command line to execute inside the container, the working directory for the\n\t// command  is root ('/') in the container's filesystem. The command is simply exec'd, it is\n\t// not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\n\t// a shell, you need to explicitly call out to that shell.\n\t// Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\n\t// +optional\n\t// +listType=atomic\n\tCommand []string `json:\"command,omitempty\" protobuf:\"bytes,1,rep,name=command\"`\n}\n\n// SleepAction describes a \"sleep\" action.\ntype SleepAction struct {\n\t// Seconds is the number of seconds to sleep.\n\tSeconds int64 `json:\"seconds\" protobuf:\"bytes,1,opt,name=seconds\"`\n}\n\n// Probe describes a health check to be performed against a container to determine whether it is\n// alive or ready to receive traffic.\ntype Probe struct {\n\t// The action taken to determine the health of a container\n\tProbeHandler `json:\",inline\" protobuf:\"bytes,1,opt,name=handler\"`\n\t// Number of seconds after the container has started before liveness probes are initiated.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\n\t// +optional\n\tInitialDelaySeconds int32 `json:\"initialDelaySeconds,omitempty\" protobuf:\"varint,2,opt,name=initialDelaySeconds\"`\n\t// Number of seconds after which the probe times out.\n\t// Defaults to 1 second. Minimum value is 1.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\n\t// +optional\n\tTimeoutSeconds int32 `json:\"timeoutSeconds,omitempty\" protobuf:\"varint,3,opt,name=timeoutSeconds\"`\n\t// How often (in seconds) to perform the probe.\n\t// Default to 10 seconds. Minimum value is 1.\n\t// +optional\n\tPeriodSeconds int32 `json:\"periodSeconds,omitempty\" protobuf:\"varint,4,opt,name=periodSeconds\"`\n\t// Minimum consecutive successes for the probe to be considered successful after having failed.\n\t// Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\n\t// +optional\n\tSuccessThreshold int32 `json:\"successThreshold,omitempty\" protobuf:\"varint,5,opt,name=successThreshold\"`\n\t// Minimum consecutive failures for the probe to be considered failed after having succeeded.\n\t// Defaults to 3. Minimum value is 1.\n\t// +optional\n\tFailureThreshold int32 `json:\"failureThreshold,omitempty\" protobuf:\"varint,6,opt,name=failureThreshold\"`\n\t// Optional duration in seconds the pod needs to terminate gracefully upon probe failure.\n\t// The grace period is the duration in seconds after the processes running in the pod are sent\n\t// a termination signal and the time when the processes are forcibly halted with a kill signal.\n\t// Set this value longer than the expected cleanup time for your process.\n\t// If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this\n\t// value overrides the value provided by the pod spec.\n\t// Value must be non-negative integer. The value zero indicates stop immediately via\n\t// the kill signal (no opportunity to shut down).\n\t// This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.\n\t// Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\n\t// +optional\n\tTerminationGracePeriodSeconds *int64 `json:\"terminationGracePeriodSeconds,omitempty\" protobuf:\"varint,7,opt,name=terminationGracePeriodSeconds\"`\n}\n\n// PullPolicy describes a policy for if/when to pull a container image\n// +enum\ntype PullPolicy string\n\nconst (\n\t// PullAlways means that kubelet always attempts to pull the latest image. Container will fail If the pull fails.\n\tPullAlways PullPolicy = \"Always\"\n\t// PullNever means that kubelet never pulls an image, but only uses a local image. Container will fail if the image isn't present\n\tPullNever PullPolicy = \"Never\"\n\t// PullIfNotPresent means that kubelet pulls if the image isn't present on disk. Container will fail if the image isn't present and the pull fails.\n\tPullIfNotPresent PullPolicy = \"IfNotPresent\"\n)\n\n// ResourceResizeRestartPolicy specifies how to handle container resource resize.\ntype ResourceResizeRestartPolicy string\n\n// These are the valid resource resize restart policy values:\nconst (\n\t// 'NotRequired' means Kubernetes will try to resize the container\n\t// without restarting it, if possible. Kubernetes may however choose to\n\t// restart the container if it is unable to actuate resize without a\n\t// restart. For e.g. the runtime doesn't support restart-free resizing.\n\tNotRequired ResourceResizeRestartPolicy = \"NotRequired\"\n\t// 'RestartContainer' means Kubernetes will resize the container in-place\n\t// by stopping and starting the container when new resources are applied.\n\t// This is needed for legacy applications. For e.g. java apps using the\n\t// -xmxN flag which are unable to use resized memory without restarting.\n\tRestartContainer ResourceResizeRestartPolicy = \"RestartContainer\"\n)\n\n// ContainerResizePolicy represents resource resize policy for the container.\ntype ContainerResizePolicy struct {\n\t// Name of the resource to which this resource resize policy applies.\n\t// Supported values: cpu, memory.\n\tResourceName ResourceName `json:\"resourceName\" protobuf:\"bytes,1,opt,name=resourceName,casttype=ResourceName\"`\n\t// Restart policy to apply when specified resource is resized.\n\t// If not specified, it defaults to NotRequired.\n\tRestartPolicy ResourceResizeRestartPolicy `json:\"restartPolicy\" protobuf:\"bytes,2,opt,name=restartPolicy,casttype=ResourceResizeRestartPolicy\"`\n}\n\n// PreemptionPolicy describes a policy for if/when to preempt a pod.\n// +enum\ntype PreemptionPolicy string\n\nconst (\n\t// PreemptLowerPriority means that pod can preempt other pods with lower priority.\n\tPreemptLowerPriority PreemptionPolicy = \"PreemptLowerPriority\"\n\t// PreemptNever means that pod never preempts other pods with lower priority.\n\tPreemptNever PreemptionPolicy = \"Never\"\n)\n\n// TerminationMessagePolicy describes how termination messages are retrieved from a container.\n// +enum\ntype TerminationMessagePolicy string\n\nconst (\n\t// TerminationMessageReadFile is the default behavior and will set the container status message to\n\t// the contents of the container's terminationMessagePath when the container exits.\n\tTerminationMessageReadFile TerminationMessagePolicy = \"File\"\n\t// TerminationMessageFallbackToLogsOnError will read the most recent contents of the container logs\n\t// for the container status message when the container exits with an error and the\n\t// terminationMessagePath has no contents.\n\tTerminationMessageFallbackToLogsOnError TerminationMessagePolicy = \"FallbackToLogsOnError\"\n)\n\n// Capability represent POSIX capabilities type\ntype Capability string\n\n// Adds and removes POSIX capabilities from running containers.\ntype Capabilities struct {\n\t// Added capabilities\n\t// +optional\n\t// +listType=atomic\n\tAdd []Capability `json:\"add,omitempty\" protobuf:\"bytes,1,rep,name=add,casttype=Capability\"`\n\t// Removed capabilities\n\t// +optional\n\t// +listType=atomic\n\tDrop []Capability `json:\"drop,omitempty\" protobuf:\"bytes,2,rep,name=drop,casttype=Capability\"`\n}\n\n// ResourceRequirements describes the compute resource requirements.\ntype ResourceRequirements struct {\n\t// Limits describes the maximum amount of compute resources allowed.\n\t// More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\n\t// +optional\n\tLimits ResourceList `json:\"limits,omitempty\" protobuf:\"bytes,1,rep,name=limits,casttype=ResourceList,castkey=ResourceName\"`\n\t// Requests describes the minimum amount of compute resources required.\n\t// If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\n\t// otherwise to an implementation-defined value. Requests cannot exceed Limits.\n\t// More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\n\t// +optional\n\tRequests ResourceList `json:\"requests,omitempty\" protobuf:\"bytes,2,rep,name=requests,casttype=ResourceList,castkey=ResourceName\"`\n\t// Claims lists the names of resources, defined in spec.resourceClaims,\n\t// that are used by this container.\n\t//\n\t// This is an alpha field and requires enabling the\n\t// DynamicResourceAllocation feature gate.\n\t//\n\t// This field is immutable. It can only be set for containers.\n\t//\n\t// +listType=map\n\t// +listMapKey=name\n\t// +featureGate=DynamicResourceAllocation\n\t// +optional\n\tClaims []ResourceClaim `json:\"claims,omitempty\" protobuf:\"bytes,3,opt,name=claims\"`\n}\n\n// VolumeResourceRequirements describes the storage resource requirements for a volume.\ntype VolumeResourceRequirements struct {\n\t// Limits describes the maximum amount of compute resources allowed.\n\t// More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\n\t// +optional\n\tLimits ResourceList `json:\"limits,omitempty\" protobuf:\"bytes,1,rep,name=limits,casttype=ResourceList,castkey=ResourceName\"`\n\t// Requests describes the minimum amount of compute resources required.\n\t// If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\n\t// otherwise to an implementation-defined value. Requests cannot exceed Limits.\n\t// More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\n\t// +optional\n\tRequests ResourceList `json:\"requests,omitempty\" protobuf:\"bytes,2,rep,name=requests,casttype=ResourceList,castkey=ResourceName\"`\n\n\t// Claims got added by accident when volumes shared the ResourceRequirements struct\n\t// with containers. Stripping the field got added in 1.27 and was backported to 1.26.\n\t// Starting with Kubernetes 1.28, this field is not part of the volume API anymore.\n\t//\n\t// Future extensions must not use \"claims\" or field number 3.\n\t// Claims []ResourceClaim `json:\"claims,omitempty\" protobuf:\"bytes,3,opt,name=claims\"`\n}\n\n// ResourceClaim references one entry in PodSpec.ResourceClaims.\ntype ResourceClaim struct {\n\t// Name must match the name of one entry in pod.spec.resourceClaims of\n\t// the Pod where this field is used. It makes that resource available\n\t// inside a container.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\n\t// Request is the name chosen for a request in the referenced claim.\n\t// If empty, everything from the claim is made available, otherwise\n\t// only the result of this request.\n\t//\n\t// +optional\n\tRequest string `json:\"request,omitempty\" protobuf:\"bytes,2,opt,name=request\"`\n}\n\nconst (\n\t// TerminationMessagePathDefault means the default path to capture the application termination message running in a container\n\tTerminationMessagePathDefault string = \"/dev/termination-log\"\n)\n\n// A single application container that you want to run within a pod.\ntype Container struct {\n\t// Name of the container specified as a DNS_LABEL.\n\t// Each container in a pod must have a unique name (DNS_LABEL).\n\t// Cannot be updated.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\t// Container image name.\n\t// More info: https://kubernetes.io/docs/concepts/containers/images\n\t// This field is optional to allow higher level config management to default or override\n\t// container images in workload controllers like Deployments and StatefulSets.\n\t// +optional\n\tImage string `json:\"image,omitempty\" protobuf:\"bytes,2,opt,name=image\"`\n\t// Entrypoint array. Not executed within a shell.\n\t// The container image's ENTRYPOINT is used if this is not provided.\n\t// Variable references $(VAR_NAME) are expanded using the container's environment. If a variable\n\t// cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\n\t// to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will\n\t// produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless\n\t// of whether the variable exists or not. Cannot be updated.\n\t// More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\n\t// +optional\n\t// +listType=atomic\n\tCommand []string `json:\"command,omitempty\" protobuf:\"bytes,3,rep,name=command\"`\n\t// Arguments to the entrypoint.\n\t// The container image's CMD is used if this is not provided.\n\t// Variable references $(VAR_NAME) are expanded using the container's environment. If a variable\n\t// cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\n\t// to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will\n\t// produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless\n\t// of whether the variable exists or not. Cannot be updated.\n\t// More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\n\t// +optional\n\t// +listType=atomic\n\tArgs []string `json:\"args,omitempty\" protobuf:\"bytes,4,rep,name=args\"`\n\t// Container's working directory.\n\t// If not specified, the container runtime's default will be used, which\n\t// might be configured in the container image.\n\t// Cannot be updated.\n\t// +optional\n\tWorkingDir string `json:\"workingDir,omitempty\" protobuf:\"bytes,5,opt,name=workingDir\"`\n\t// List of ports to expose from the container. Not specifying a port here\n\t// DOES NOT prevent that port from being exposed. Any port which is\n\t// listening on the default \"0.0.0.0\" address inside a container will be\n\t// accessible from the network.\n\t// Modifying this array with strategic merge patch may corrupt the data.\n\t// For more information See https://github.com/kubernetes/kubernetes/issues/108255.\n\t// Cannot be updated.\n\t// +optional\n\t// +patchMergeKey=containerPort\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=containerPort\n\t// +listMapKey=protocol\n\tPorts []ContainerPort `json:\"ports,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"containerPort\" protobuf:\"bytes,6,rep,name=ports\"`\n\t// List of sources to populate environment variables in the container.\n\t// The keys defined within a source must be a C_IDENTIFIER. All invalid keys\n\t// will be reported as an event when the container is starting. When a key exists in multiple\n\t// sources, the value associated with the last source will take precedence.\n\t// Values defined by an Env with a duplicate key will take precedence.\n\t// Cannot be updated.\n\t// +optional\n\t// +listType=atomic\n\tEnvFrom []EnvFromSource `json:\"envFrom,omitempty\" protobuf:\"bytes,19,rep,name=envFrom\"`\n\t// List of environment variables to set in the container.\n\t// Cannot be updated.\n\t// +optional\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=name\n\tEnv []EnvVar `json:\"env,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,7,rep,name=env\"`\n\t// Compute Resources required by this container.\n\t// Cannot be updated.\n\t// More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\n\t// +optional\n\tResources ResourceRequirements `json:\"resources,omitempty\" protobuf:\"bytes,8,opt,name=resources\"`\n\t// Resources resize policy for the container.\n\t// +featureGate=InPlacePodVerticalScaling\n\t// +optional\n\t// +listType=atomic\n\tResizePolicy []ContainerResizePolicy `json:\"resizePolicy,omitempty\" protobuf:\"bytes,23,rep,name=resizePolicy\"`\n\t// RestartPolicy defines the restart behavior of individual containers in a pod.\n\t// This field may only be set for init containers, and the only allowed value is \"Always\".\n\t// For non-init containers or when this field is not specified,\n\t// the restart behavior is defined by the Pod's restart policy and the container type.\n\t// Setting the RestartPolicy as \"Always\" for the init container will have the following effect:\n\t// this init container will be continually restarted on\n\t// exit until all regular containers have terminated. Once all regular\n\t// containers have completed, all init containers with restartPolicy \"Always\"\n\t// will be shut down. This lifecycle differs from normal init containers and\n\t// is often referred to as a \"sidecar\" container. Although this init\n\t// container still starts in the init container sequence, it does not wait\n\t// for the container to complete before proceeding to the next init\n\t// container. Instead, the next init container starts immediately after this\n\t// init container is started, or after any startupProbe has successfully\n\t// completed.\n\t// +featureGate=SidecarContainers\n\t// +optional\n\tRestartPolicy *ContainerRestartPolicy `json:\"restartPolicy,omitempty\" protobuf:\"bytes,24,opt,name=restartPolicy,casttype=ContainerRestartPolicy\"`\n\t// Pod volumes to mount into the container's filesystem.\n\t// Cannot be updated.\n\t// +optional\n\t// +patchMergeKey=mountPath\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=mountPath\n\tVolumeMounts []VolumeMount `json:\"volumeMounts,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"mountPath\" protobuf:\"bytes,9,rep,name=volumeMounts\"`\n\t// volumeDevices is the list of block devices to be used by the container.\n\t// +patchMergeKey=devicePath\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=devicePath\n\t// +optional\n\tVolumeDevices []VolumeDevice `json:\"volumeDevices,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"devicePath\" protobuf:\"bytes,21,rep,name=volumeDevices\"`\n\t// Periodic probe of container liveness.\n\t// Container will be restarted if the probe fails.\n\t// Cannot be updated.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\n\t// +optional\n\tLivenessProbe *Probe `json:\"livenessProbe,omitempty\" protobuf:\"bytes,10,opt,name=livenessProbe\"`\n\t// Periodic probe of container service readiness.\n\t// Container will be removed from service endpoints if the probe fails.\n\t// Cannot be updated.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\n\t// +optional\n\tReadinessProbe *Probe `json:\"readinessProbe,omitempty\" protobuf:\"bytes,11,opt,name=readinessProbe\"`\n\t// StartupProbe indicates that the Pod has successfully initialized.\n\t// If specified, no other probes are executed until this completes successfully.\n\t// If this probe fails, the Pod will be restarted, just as if the livenessProbe failed.\n\t// This can be used to provide different probe parameters at the beginning of a Pod's lifecycle,\n\t// when it might take a long time to load data or warm a cache, than during steady-state operation.\n\t// This cannot be updated.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\n\t// +optional\n\tStartupProbe *Probe `json:\"startupProbe,omitempty\" protobuf:\"bytes,22,opt,name=startupProbe\"`\n\t// Actions that the management system should take in response to container lifecycle events.\n\t// Cannot be updated.\n\t// +optional\n\tLifecycle *Lifecycle `json:\"lifecycle,omitempty\" protobuf:\"bytes,12,opt,name=lifecycle\"`\n\t// Optional: Path at which the file to which the container's termination message\n\t// will be written is mounted into the container's filesystem.\n\t// Message written is intended to be brief final status, such as an assertion failure message.\n\t// Will be truncated by the node if greater than 4096 bytes. The total message length across\n\t// all containers will be limited to 12kb.\n\t// Defaults to /dev/termination-log.\n\t// Cannot be updated.\n\t// +optional\n\tTerminationMessagePath string `json:\"terminationMessagePath,omitempty\" protobuf:\"bytes,13,opt,name=terminationMessagePath\"`\n\t// Indicate how the termination message should be populated. File will use the contents of\n\t// terminationMessagePath to populate the container status message on both success and failure.\n\t// FallbackToLogsOnError will use the last chunk of container log output if the termination\n\t// message file is empty and the container exited with an error.\n\t// The log output is limited to 2048 bytes or 80 lines, whichever is smaller.\n\t// Defaults to File.\n\t// Cannot be updated.\n\t// +optional\n\tTerminationMessagePolicy TerminationMessagePolicy `json:\"terminationMessagePolicy,omitempty\" protobuf:\"bytes,20,opt,name=terminationMessagePolicy,casttype=TerminationMessagePolicy\"`\n\t// Image pull policy.\n\t// One of Always, Never, IfNotPresent.\n\t// Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.\n\t// Cannot be updated.\n\t// More info: https://kubernetes.io/docs/concepts/containers/images#updating-images\n\t// +optional\n\tImagePullPolicy PullPolicy `json:\"imagePullPolicy,omitempty\" protobuf:\"bytes,14,opt,name=imagePullPolicy,casttype=PullPolicy\"`\n\t// SecurityContext defines the security options the container should be run with.\n\t// If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\n\t// More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\n\t// +optional\n\tSecurityContext *SecurityContext `json:\"securityContext,omitempty\" protobuf:\"bytes,15,opt,name=securityContext\"`\n\n\t// Variables for interactive containers, these have very specialized use-cases (e.g. debugging)\n\t// and shouldn't be used for general purpose containers.\n\n\t// Whether this container should allocate a buffer for stdin in the container runtime. If this\n\t// is not set, reads from stdin in the container will always result in EOF.\n\t// Default is false.\n\t// +optional\n\tStdin bool `json:\"stdin,omitempty\" protobuf:\"varint,16,opt,name=stdin\"`\n\t// Whether the container runtime should close the stdin channel after it has been opened by\n\t// a single attach. When stdin is true the stdin stream will remain open across multiple attach\n\t// sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\n\t// first client attaches to stdin, and then remains open and accepts data until the client disconnects,\n\t// at which time stdin is closed and remains closed until the container is restarted. If this\n\t// flag is false, a container processes that reads from stdin will never receive an EOF.\n\t// Default is false\n\t// +optional\n\tStdinOnce bool `json:\"stdinOnce,omitempty\" protobuf:\"varint,17,opt,name=stdinOnce\"`\n\t// Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\n\t// Default is false.\n\t// +optional\n\tTTY bool `json:\"tty,omitempty\" protobuf:\"varint,18,opt,name=tty\"`\n}\n\n// ProbeHandler defines a specific action that should be taken in a probe.\n// One and only one of the fields must be specified.\ntype ProbeHandler struct {\n\t// Exec specifies a command to execute in the container.\n\t// +optional\n\tExec *ExecAction `json:\"exec,omitempty\" protobuf:\"bytes,1,opt,name=exec\"`\n\t// HTTPGet specifies an HTTP GET request to perform.\n\t// +optional\n\tHTTPGet *HTTPGetAction `json:\"httpGet,omitempty\" protobuf:\"bytes,2,opt,name=httpGet\"`\n\t// TCPSocket specifies a connection to a TCP port.\n\t// +optional\n\tTCPSocket *TCPSocketAction `json:\"tcpSocket,omitempty\" protobuf:\"bytes,3,opt,name=tcpSocket\"`\n\t// GRPC specifies a GRPC HealthCheckRequest.\n\t// +optional\n\tGRPC *GRPCAction `json:\"grpc,omitempty\" protobuf:\"bytes,4,opt,name=grpc\"`\n}\n\n// LifecycleHandler defines a specific action that should be taken in a lifecycle\n// hook. One and only one of the fields, except TCPSocket must be specified.\ntype LifecycleHandler struct {\n\t// Exec specifies a command to execute in the container.\n\t// +optional\n\tExec *ExecAction `json:\"exec,omitempty\" protobuf:\"bytes,1,opt,name=exec\"`\n\t// HTTPGet specifies an HTTP GET request to perform.\n\t// +optional\n\tHTTPGet *HTTPGetAction `json:\"httpGet,omitempty\" protobuf:\"bytes,2,opt,name=httpGet\"`\n\t// Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept\n\t// for backward compatibility. There is no validation of this field and\n\t// lifecycle hooks will fail at runtime when it is specified.\n\t// +optional\n\tTCPSocket *TCPSocketAction `json:\"tcpSocket,omitempty\" protobuf:\"bytes,3,opt,name=tcpSocket\"`\n\t// Sleep represents a duration that the container should sleep.\n\t// +featureGate=PodLifecycleSleepAction\n\t// +optional\n\tSleep *SleepAction `json:\"sleep,omitempty\" protobuf:\"bytes,4,opt,name=sleep\"`\n}\n\n// Lifecycle describes actions that the management system should take in response to container lifecycle\n// events. For the PostStart and PreStop lifecycle handlers, management of the container blocks\n// until the action is complete, unless the container process fails, in which case the handler is aborted.\ntype Lifecycle struct {\n\t// PostStart is called immediately after a container is created. If the handler fails,\n\t// the container is terminated and restarted according to its restart policy.\n\t// Other management of the container blocks until the hook completes.\n\t// More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\n\t// +optional\n\tPostStart *LifecycleHandler `json:\"postStart,omitempty\" protobuf:\"bytes,1,opt,name=postStart\"`\n\t// PreStop is called immediately before a container is terminated due to an\n\t// API request or management event such as liveness/startup probe failure,\n\t// preemption, resource contention, etc. The handler is not called if the\n\t// container crashes or exits. The Pod's termination grace period countdown begins before the\n\t// PreStop hook is executed. Regardless of the outcome of the handler, the\n\t// container will eventually terminate within the Pod's termination grace\n\t// period (unless delayed by finalizers). Other management of the container blocks until the hook completes\n\t// or until the termination grace period is reached.\n\t// More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\n\t// +optional\n\tPreStop *LifecycleHandler `json:\"preStop,omitempty\" protobuf:\"bytes,2,opt,name=preStop\"`\n}\n\ntype ConditionStatus string\n\n// These are valid condition statuses. \"ConditionTrue\" means a resource is in the condition.\n// \"ConditionFalse\" means a resource is not in the condition. \"ConditionUnknown\" means kubernetes\n// can't decide if a resource is in the condition or not. In the future, we could add other\n// intermediate conditions, e.g. ConditionDegraded.\nconst (\n\tConditionTrue    ConditionStatus = \"True\"\n\tConditionFalse   ConditionStatus = \"False\"\n\tConditionUnknown ConditionStatus = \"Unknown\"\n)\n\n// ContainerStateWaiting is a waiting state of a container.\ntype ContainerStateWaiting struct {\n\t// (brief) reason the container is not yet running.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,1,opt,name=reason\"`\n\t// Message regarding why the container is not yet running.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,2,opt,name=message\"`\n}\n\n// ContainerStateRunning is a running state of a container.\ntype ContainerStateRunning struct {\n\t// Time at which the container was last (re-)started\n\t// +optional\n\tStartedAt metav1.Time `json:\"startedAt,omitempty\" protobuf:\"bytes,1,opt,name=startedAt\"`\n}\n\n// ContainerStateTerminated is a terminated state of a container.\ntype ContainerStateTerminated struct {\n\t// Exit status from the last termination of the container\n\tExitCode int32 `json:\"exitCode\" protobuf:\"varint,1,opt,name=exitCode\"`\n\t// Signal from the last termination of the container\n\t// +optional\n\tSignal int32 `json:\"signal,omitempty\" protobuf:\"varint,2,opt,name=signal\"`\n\t// (brief) reason from the last termination of the container\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,3,opt,name=reason\"`\n\t// Message regarding the last termination of the container\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,4,opt,name=message\"`\n\t// Time at which previous execution of the container started\n\t// +optional\n\tStartedAt metav1.Time `json:\"startedAt,omitempty\" protobuf:\"bytes,5,opt,name=startedAt\"`\n\t// Time at which the container last terminated\n\t// +optional\n\tFinishedAt metav1.Time `json:\"finishedAt,omitempty\" protobuf:\"bytes,6,opt,name=finishedAt\"`\n\t// Container's ID in the format '<type>://<container_id>'\n\t// +optional\n\tContainerID string `json:\"containerID,omitempty\" protobuf:\"bytes,7,opt,name=containerID\"`\n}\n\n// ContainerState holds a possible state of container.\n// Only one of its members may be specified.\n// If none of them is specified, the default one is ContainerStateWaiting.\ntype ContainerState struct {\n\t// Details about a waiting container\n\t// +optional\n\tWaiting *ContainerStateWaiting `json:\"waiting,omitempty\" protobuf:\"bytes,1,opt,name=waiting\"`\n\t// Details about a running container\n\t// +optional\n\tRunning *ContainerStateRunning `json:\"running,omitempty\" protobuf:\"bytes,2,opt,name=running\"`\n\t// Details about a terminated container\n\t// +optional\n\tTerminated *ContainerStateTerminated `json:\"terminated,omitempty\" protobuf:\"bytes,3,opt,name=terminated\"`\n}\n\n// ContainerStatus contains details for the current status of this container.\ntype ContainerStatus struct {\n\t// Name is a DNS_LABEL representing the unique name of the container.\n\t// Each container in a pod must have a unique name across all container types.\n\t// Cannot be updated.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\t// State holds details about the container's current condition.\n\t// +optional\n\tState ContainerState `json:\"state,omitempty\" protobuf:\"bytes,2,opt,name=state\"`\n\t// LastTerminationState holds the last termination state of the container to\n\t// help debug container crashes and restarts. This field is not\n\t// populated if the container is still running and RestartCount is 0.\n\t// +optional\n\tLastTerminationState ContainerState `json:\"lastState,omitempty\" protobuf:\"bytes,3,opt,name=lastState\"`\n\t// Ready specifies whether the container is currently passing its readiness check.\n\t// The value will change as readiness probes keep executing. If no readiness\n\t// probes are specified, this field defaults to true once the container is\n\t// fully started (see Started field).\n\t//\n\t// The value is typically used to determine whether a container is ready to\n\t// accept traffic.\n\tReady bool `json:\"ready\" protobuf:\"varint,4,opt,name=ready\"`\n\t// RestartCount holds the number of times the container has been restarted.\n\t// Kubelet makes an effort to always increment the value, but there\n\t// are cases when the state may be lost due to node restarts and then the value\n\t// may be reset to 0. The value is never negative.\n\tRestartCount int32 `json:\"restartCount\" protobuf:\"varint,5,opt,name=restartCount\"`\n\t// Image is the name of container image that the container is running.\n\t// The container image may not match the image used in the PodSpec,\n\t// as it may have been resolved by the runtime.\n\t// More info: https://kubernetes.io/docs/concepts/containers/images.\n\tImage string `json:\"image\" protobuf:\"bytes,6,opt,name=image\"`\n\t// ImageID is the image ID of the container's image. The image ID may not\n\t// match the image ID of the image used in the PodSpec, as it may have been\n\t// resolved by the runtime.\n\tImageID string `json:\"imageID\" protobuf:\"bytes,7,opt,name=imageID\"`\n\t// ContainerID is the ID of the container in the format '<type>://<container_id>'.\n\t// Where type is a container runtime identifier, returned from Version call of CRI API\n\t// (for example \"containerd\").\n\t// +optional\n\tContainerID string `json:\"containerID,omitempty\" protobuf:\"bytes,8,opt,name=containerID\"`\n\t// Started indicates whether the container has finished its postStart lifecycle hook\n\t// and passed its startup probe.\n\t// Initialized as false, becomes true after startupProbe is considered\n\t// successful. Resets to false when the container is restarted, or if kubelet\n\t// loses state temporarily. In both cases, startup probes will run again.\n\t// Is always true when no startupProbe is defined and container is running and\n\t// has passed the postStart lifecycle hook. The null value must be treated the\n\t// same as false.\n\t// +optional\n\tStarted *bool `json:\"started,omitempty\" protobuf:\"varint,9,opt,name=started\"`\n\t// AllocatedResources represents the compute resources allocated for this container by the\n\t// node. Kubelet sets this value to Container.Resources.Requests upon successful pod admission\n\t// and after successfully admitting desired pod resize.\n\t// +featureGate=InPlacePodVerticalScalingAllocatedStatus\n\t// +optional\n\tAllocatedResources ResourceList `json:\"allocatedResources,omitempty\" protobuf:\"bytes,10,rep,name=allocatedResources,casttype=ResourceList,castkey=ResourceName\"`\n\t// Resources represents the compute resource requests and limits that have been successfully\n\t// enacted on the running container after it has been started or has been successfully resized.\n\t// +featureGate=InPlacePodVerticalScaling\n\t// +optional\n\tResources *ResourceRequirements `json:\"resources,omitempty\" protobuf:\"bytes,11,opt,name=resources\"`\n\t// Status of volume mounts.\n\t// +optional\n\t// +patchMergeKey=mountPath\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=mountPath\n\t// +featureGate=RecursiveReadOnlyMounts\n\tVolumeMounts []VolumeMountStatus `json:\"volumeMounts,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"mountPath\" protobuf:\"bytes,12,rep,name=volumeMounts\"`\n\t// User represents user identity information initially attached to the first process of the container\n\t// +featureGate=SupplementalGroupsPolicy\n\t// +optional\n\tUser *ContainerUser `json:\"user,omitempty\" protobuf:\"bytes,13,opt,name=user,casttype=ContainerUser\"`\n\t// AllocatedResourcesStatus represents the status of various resources\n\t// allocated for this Pod.\n\t// +featureGate=ResourceHealthStatus\n\t// +optional\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=name\n\tAllocatedResourcesStatus []ResourceStatus `json:\"allocatedResourcesStatus,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,14,rep,name=allocatedResourcesStatus\"`\n}\n\n// ResourceStatus represents the status of a single resource allocated to a Pod.\ntype ResourceStatus struct {\n\t// Name of the resource. Must be unique within the pod and in case of non-DRA resource, match one of the resources from the pod spec.\n\t// For DRA resources, the value must be \"claim:<claim_name>/<request>\".\n\t// When this status is reported about a container, the \"claim_name\" and \"request\" must match one of the claims of this container.\n\t// +required\n\tName ResourceName `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\t// List of unique resources health. Each element in the list contains an unique resource ID and its health.\n\t// At a minimum, for the lifetime of a Pod, resource ID must uniquely identify the resource allocated to the Pod on the Node.\n\t// If other Pod on the same Node reports the status with the same resource ID, it must be the same resource they share.\n\t// See ResourceID type definition for a specific format it has in various use cases.\n\t// +listType=map\n\t// +listMapKey=resourceID\n\tResources []ResourceHealth `json:\"resources,omitempty\" protobuf:\"bytes,2,rep,name=resources\"`\n}\n\ntype ResourceHealthStatus string\n\nconst (\n\tResourceHealthStatusHealthy   ResourceHealthStatus = \"Healthy\"\n\tResourceHealthStatusUnhealthy ResourceHealthStatus = \"Unhealthy\"\n\tResourceHealthStatusUnknown   ResourceHealthStatus = \"Unknown\"\n)\n\n// ResourceID is calculated based on the source of this resource health information.\n// For DevicePlugin:\n//\n//\tDeviceID, where DeviceID is from the Device structure of DevicePlugin's ListAndWatchResponse type: https://github.com/kubernetes/kubernetes/blob/eda1c780543a27c078450e2f17d674471e00f494/staging/src/k8s.io/kubelet/pkg/apis/deviceplugin/v1alpha/api.proto#L61-L73\n//\n// DevicePlugin ID is usually a constant for the lifetime of a Node and typically can be used to uniquely identify the device on the node.\n// For DRA:\n//\n//\t<driver name>/<pool name>/<device name>: such a device can be looked up in the information published by that DRA driver to learn more about it. It is designed to be globally unique in a cluster.\ntype ResourceID string\n\n// ResourceHealth represents the health of a resource. It has the latest device health information.\n// This is a part of KEP https://kep.k8s.io/4680.\ntype ResourceHealth struct {\n\t// ResourceID is the unique identifier of the resource. See the ResourceID type for more information.\n\tResourceID ResourceID `json:\"resourceID\" protobuf:\"bytes,1,opt,name=resourceID\"`\n\t// Health of the resource.\n\t// can be one of:\n\t//  - Healthy: operates as normal\n\t//  - Unhealthy: reported unhealthy. We consider this a temporary health issue\n\t//               since we do not have a mechanism today to distinguish\n\t//               temporary and permanent issues.\n\t//  - Unknown: The status cannot be determined.\n\t//             For example, Device Plugin got unregistered and hasn't been re-registered since.\n\t//\n\t// In future we may want to introduce the PermanentlyUnhealthy Status.\n\tHealth ResourceHealthStatus `json:\"health,omitempty\" protobuf:\"bytes,2,name=health\"`\n}\n\n// ContainerUser represents user identity information\ntype ContainerUser struct {\n\t// Linux holds user identity information initially attached to the first process of the containers in Linux.\n\t// Note that the actual running identity can be changed if the process has enough privilege to do so.\n\t// +optional\n\tLinux *LinuxContainerUser `json:\"linux,omitempty\" protobuf:\"bytes,1,opt,name=linux,casttype=LinuxContainerUser\"`\n\n\t// Windows holds user identity information initially attached to the first process of the containers in Windows\n\t// This is just reserved for future use.\n\t// Windows *WindowsContainerUser\n}\n\n// LinuxContainerUser represents user identity information in Linux containers\ntype LinuxContainerUser struct {\n\t// UID is the primary uid initially attached to the first process in the container\n\tUID int64 `json:\"uid\" protobuf:\"varint,1,name=uid\"`\n\t// GID is the primary gid initially attached to the first process in the container\n\tGID int64 `json:\"gid\" protobuf:\"varint,2,name=gid\"`\n\t// SupplementalGroups are the supplemental groups initially attached to the first process in the container\n\t// +optional\n\t// +listType=atomic\n\tSupplementalGroups []int64 `json:\"supplementalGroups,omitempty\" protobuf:\"varint,3,rep,name=supplementalGroups\"`\n}\n\n// PodPhase is a label for the condition of a pod at the current time.\n// +enum\ntype PodPhase string\n\n// These are the valid statuses of pods.\nconst (\n\t// PodPending means the pod has been accepted by the system, but one or more of the containers\n\t// has not been started. This includes time before being bound to a node, as well as time spent\n\t// pulling images onto the host.\n\tPodPending PodPhase = \"Pending\"\n\t// PodRunning means the pod has been bound to a node and all of the containers have been started.\n\t// At least one container is still running or is in the process of being restarted.\n\tPodRunning PodPhase = \"Running\"\n\t// PodSucceeded means that all containers in the pod have voluntarily terminated\n\t// with a container exit code of 0, and the system is not going to restart any of these containers.\n\tPodSucceeded PodPhase = \"Succeeded\"\n\t// PodFailed means that all containers in the pod have terminated, and at least one container has\n\t// terminated in a failure (exited with a non-zero exit code or was stopped by the system).\n\tPodFailed PodPhase = \"Failed\"\n\t// PodUnknown means that for some reason the state of the pod could not be obtained, typically due\n\t// to an error in communicating with the host of the pod.\n\t// Deprecated: It isn't being set since 2015 (74da3b14b0c0f658b3bb8d2def5094686d0e9095)\n\tPodUnknown PodPhase = \"Unknown\"\n)\n\n// PodConditionType is a valid value for PodCondition.Type\ntype PodConditionType string\n\n// These are built-in conditions of pod. An application may use a custom condition not listed here.\nconst (\n\t// ContainersReady indicates whether all containers in the pod are ready.\n\tContainersReady PodConditionType = \"ContainersReady\"\n\t// PodInitialized means that all init containers in the pod have started successfully.\n\tPodInitialized PodConditionType = \"Initialized\"\n\t// PodReady means the pod is able to service requests and should be added to the\n\t// load balancing pools of all matching services.\n\tPodReady PodConditionType = \"Ready\"\n\t// PodScheduled represents status of the scheduling process for this pod.\n\tPodScheduled PodConditionType = \"PodScheduled\"\n\t// DisruptionTarget indicates the pod is about to be terminated due to a\n\t// disruption (such as preemption, eviction API or garbage-collection).\n\tDisruptionTarget PodConditionType = \"DisruptionTarget\"\n\t// PodReadyToStartContainers pod sandbox is successfully configured and\n\t// the pod is ready to launch containers.\n\tPodReadyToStartContainers PodConditionType = \"PodReadyToStartContainers\"\n)\n\n// These are reasons for a pod's transition to a condition.\nconst (\n\t// PodReasonUnschedulable reason in PodScheduled PodCondition means that the scheduler\n\t// can't schedule the pod right now, for example due to insufficient resources in the cluster.\n\tPodReasonUnschedulable = \"Unschedulable\"\n\n\t// PodReasonSchedulingGated reason in PodScheduled PodCondition means that the scheduler\n\t// skips scheduling the pod because one or more scheduling gates are still present.\n\tPodReasonSchedulingGated = \"SchedulingGated\"\n\n\t// PodReasonSchedulerError reason in PodScheduled PodCondition means that some internal error happens\n\t// during scheduling, for example due to nodeAffinity parsing errors.\n\tPodReasonSchedulerError = \"SchedulerError\"\n\n\t// PodReasonTerminationByKubelet reason in DisruptionTarget pod condition indicates that the termination\n\t// is initiated by kubelet\n\tPodReasonTerminationByKubelet = \"TerminationByKubelet\"\n\n\t// PodReasonPreemptionByScheduler reason in DisruptionTarget pod condition indicates that the\n\t// disruption was initiated by scheduler's preemption.\n\tPodReasonPreemptionByScheduler = \"PreemptionByScheduler\"\n)\n\n// PodCondition contains details for the current condition of this pod.\ntype PodCondition struct {\n\t// Type is the type of the condition.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions\n\tType PodConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=PodConditionType\"`\n\t// Status is the status of the condition.\n\t// Can be True, False, Unknown.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions\n\tStatus ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status,casttype=ConditionStatus\"`\n\t// Last time we probed the condition.\n\t// +optional\n\tLastProbeTime metav1.Time `json:\"lastProbeTime,omitempty\" protobuf:\"bytes,3,opt,name=lastProbeTime\"`\n\t// Last time the condition transitioned from one status to another.\n\t// +optional\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,4,opt,name=lastTransitionTime\"`\n\t// Unique, one-word, CamelCase reason for the condition's last transition.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,5,opt,name=reason\"`\n\t// Human-readable message indicating details about last transition.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,6,opt,name=message\"`\n}\n\n// PodResizeStatus shows status of desired resize of a pod's containers.\ntype PodResizeStatus string\n\nconst (\n\t// Pod resources resize has been requested and will be evaluated by node.\n\tPodResizeStatusProposed PodResizeStatus = \"Proposed\"\n\t// Pod resources resize has been accepted by node and is being actuated.\n\tPodResizeStatusInProgress PodResizeStatus = \"InProgress\"\n\t// Node cannot resize the pod at this time and will keep retrying.\n\tPodResizeStatusDeferred PodResizeStatus = \"Deferred\"\n\t// Requested pod resize is not feasible and will not be re-evaluated.\n\tPodResizeStatusInfeasible PodResizeStatus = \"Infeasible\"\n)\n\n// VolumeMountStatus shows status of volume mounts.\ntype VolumeMountStatus struct {\n\t// Name corresponds to the name of the original VolumeMount.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\t// MountPath corresponds to the original VolumeMount.\n\tMountPath string `json:\"mountPath\" protobuf:\"bytes,2,opt,name=mountPath\"`\n\t// ReadOnly corresponds to the original VolumeMount.\n\t// +optional\n\tReadOnly bool `json:\"readOnly,omitempty\" protobuf:\"varint,3,opt,name=readOnly\"`\n\t// RecursiveReadOnly must be set to Disabled, Enabled, or unspecified (for non-readonly mounts).\n\t// An IfPossible value in the original VolumeMount must be translated to Disabled or Enabled,\n\t// depending on the mount result.\n\t// +featureGate=RecursiveReadOnlyMounts\n\t// +optional\n\tRecursiveReadOnly *RecursiveReadOnlyMode `json:\"recursiveReadOnly,omitempty\" protobuf:\"bytes,4,opt,name=recursiveReadOnly,casttype=RecursiveReadOnlyMode\"`\n}\n\n// RestartPolicy describes how the container should be restarted.\n// Only one of the following restart policies may be specified.\n// If none of the following policies is specified, the default one\n// is RestartPolicyAlways.\n// +enum\ntype RestartPolicy string\n\nconst (\n\tRestartPolicyAlways    RestartPolicy = \"Always\"\n\tRestartPolicyOnFailure RestartPolicy = \"OnFailure\"\n\tRestartPolicyNever     RestartPolicy = \"Never\"\n)\n\n// ContainerRestartPolicy is the restart policy for a single container.\n// This may only be set for init containers and only allowed value is \"Always\".\ntype ContainerRestartPolicy string\n\nconst (\n\tContainerRestartPolicyAlways ContainerRestartPolicy = \"Always\"\n)\n\n// DNSPolicy defines how a pod's DNS will be configured.\n// +enum\ntype DNSPolicy string\n\nconst (\n\t// DNSClusterFirstWithHostNet indicates that the pod should use cluster DNS\n\t// first, if it is available, then fall back on the default\n\t// (as determined by kubelet) DNS settings.\n\tDNSClusterFirstWithHostNet DNSPolicy = \"ClusterFirstWithHostNet\"\n\n\t// DNSClusterFirst indicates that the pod should use cluster DNS\n\t// first unless hostNetwork is true, if it is available, then\n\t// fall back on the default (as determined by kubelet) DNS settings.\n\tDNSClusterFirst DNSPolicy = \"ClusterFirst\"\n\n\t// DNSDefault indicates that the pod should use the default (as\n\t// determined by kubelet) DNS settings.\n\tDNSDefault DNSPolicy = \"Default\"\n\n\t// DNSNone indicates that the pod should use empty DNS settings. DNS\n\t// parameters such as nameservers and search paths should be defined via\n\t// DNSConfig.\n\tDNSNone DNSPolicy = \"None\"\n)\n\nconst (\n\t// DefaultTerminationGracePeriodSeconds indicates the default duration in\n\t// seconds a pod needs to terminate gracefully.\n\tDefaultTerminationGracePeriodSeconds = 30\n)\n\n// A node selector represents the union of the results of one or more label queries\n// over a set of nodes; that is, it represents the OR of the selectors represented\n// by the node selector terms.\n// +structType=atomic\ntype NodeSelector struct {\n\t// Required. A list of node selector terms. The terms are ORed.\n\t// +listType=atomic\n\tNodeSelectorTerms []NodeSelectorTerm `json:\"nodeSelectorTerms\" protobuf:\"bytes,1,rep,name=nodeSelectorTerms\"`\n}\n\n// A null or empty node selector term matches no objects. The requirements of\n// them are ANDed.\n// The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.\n// +structType=atomic\ntype NodeSelectorTerm struct {\n\t// A list of node selector requirements by node's labels.\n\t// +optional\n\t// +listType=atomic\n\tMatchExpressions []NodeSelectorRequirement `json:\"matchExpressions,omitempty\" protobuf:\"bytes,1,rep,name=matchExpressions\"`\n\t// A list of node selector requirements by node's fields.\n\t// +optional\n\t// +listType=atomic\n\tMatchFields []NodeSelectorRequirement `json:\"matchFields,omitempty\" protobuf:\"bytes,2,rep,name=matchFields\"`\n}\n\n// A node selector requirement is a selector that contains values, a key, and an operator\n// that relates the key and values.\ntype NodeSelectorRequirement struct {\n\t// The label key that the selector applies to.\n\tKey string `json:\"key\" protobuf:\"bytes,1,opt,name=key\"`\n\t// Represents a key's relationship to a set of values.\n\t// Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\n\tOperator NodeSelectorOperator `json:\"operator\" protobuf:\"bytes,2,opt,name=operator,casttype=NodeSelectorOperator\"`\n\t// An array of string values. If the operator is In or NotIn,\n\t// the values array must be non-empty. If the operator is Exists or DoesNotExist,\n\t// the values array must be empty. If the operator is Gt or Lt, the values\n\t// array must have a single element, which will be interpreted as an integer.\n\t// This array is replaced during a strategic merge patch.\n\t// +optional\n\t// +listType=atomic\n\tValues []string `json:\"values,omitempty\" protobuf:\"bytes,3,rep,name=values\"`\n}\n\n// A node selector operator is the set of operators that can be used in\n// a node selector requirement.\n// +enum\ntype NodeSelectorOperator string\n\nconst (\n\tNodeSelectorOpIn           NodeSelectorOperator = \"In\"\n\tNodeSelectorOpNotIn        NodeSelectorOperator = \"NotIn\"\n\tNodeSelectorOpExists       NodeSelectorOperator = \"Exists\"\n\tNodeSelectorOpDoesNotExist NodeSelectorOperator = \"DoesNotExist\"\n\tNodeSelectorOpGt           NodeSelectorOperator = \"Gt\"\n\tNodeSelectorOpLt           NodeSelectorOperator = \"Lt\"\n)\n\n// A topology selector term represents the result of label queries.\n// A null or empty topology selector term matches no objects.\n// The requirements of them are ANDed.\n// It provides a subset of functionality as NodeSelectorTerm.\n// This is an alpha feature and may change in the future.\n// +structType=atomic\ntype TopologySelectorTerm struct {\n\t// Usage: Fields of type []TopologySelectorTerm must be listType=atomic.\n\n\t// A list of topology selector requirements by labels.\n\t// +optional\n\t// +listType=atomic\n\tMatchLabelExpressions []TopologySelectorLabelRequirement `json:\"matchLabelExpressions,omitempty\" protobuf:\"bytes,1,rep,name=matchLabelExpressions\"`\n}\n\n// A topology selector requirement is a selector that matches given label.\n// This is an alpha feature and may change in the future.\ntype TopologySelectorLabelRequirement struct {\n\t// The label key that the selector applies to.\n\tKey string `json:\"key\" protobuf:\"bytes,1,opt,name=key\"`\n\t// An array of string values. One value must match the label to be selected.\n\t// Each entry in Values is ORed.\n\t// +listType=atomic\n\tValues []string `json:\"values\" protobuf:\"bytes,2,rep,name=values\"`\n}\n\n// Affinity is a group of affinity scheduling rules.\ntype Affinity struct {\n\t// Describes node affinity scheduling rules for the pod.\n\t// +optional\n\tNodeAffinity *NodeAffinity `json:\"nodeAffinity,omitempty\" protobuf:\"bytes,1,opt,name=nodeAffinity\"`\n\t// Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\n\t// +optional\n\tPodAffinity *PodAffinity `json:\"podAffinity,omitempty\" protobuf:\"bytes,2,opt,name=podAffinity\"`\n\t// Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).\n\t// +optional\n\tPodAntiAffinity *PodAntiAffinity `json:\"podAntiAffinity,omitempty\" protobuf:\"bytes,3,opt,name=podAntiAffinity\"`\n}\n\n// Pod affinity is a group of inter pod affinity scheduling rules.\ntype PodAffinity struct {\n\t// NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.\n\t// If the affinity requirements specified by this field are not met at\n\t// scheduling time, the pod will not be scheduled onto the node.\n\t// If the affinity requirements specified by this field cease to be met\n\t// at some point during pod execution (e.g. due to a pod label update), the\n\t// system will try to eventually evict the pod from its node.\n\t// When there are multiple elements, the lists of nodes corresponding to each\n\t// podAffinityTerm are intersected, i.e. all terms must be satisfied.\n\t// +optional\n\t// RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:\"requiredDuringSchedulingRequiredDuringExecution,omitempty\"`\n\n\t// If the affinity requirements specified by this field are not met at\n\t// scheduling time, the pod will not be scheduled onto the node.\n\t// If the affinity requirements specified by this field cease to be met\n\t// at some point during pod execution (e.g. due to a pod label update), the\n\t// system may or may not try to eventually evict the pod from its node.\n\t// When there are multiple elements, the lists of nodes corresponding to each\n\t// podAffinityTerm are intersected, i.e. all terms must be satisfied.\n\t// +optional\n\t// +listType=atomic\n\tRequiredDuringSchedulingIgnoredDuringExecution []PodAffinityTerm `json:\"requiredDuringSchedulingIgnoredDuringExecution,omitempty\" protobuf:\"bytes,1,rep,name=requiredDuringSchedulingIgnoredDuringExecution\"`\n\t// The scheduler will prefer to schedule pods to nodes that satisfy\n\t// the affinity expressions specified by this field, but it may choose\n\t// a node that violates one or more of the expressions. The node that is\n\t// most preferred is the one with the greatest sum of weights, i.e.\n\t// for each node that meets all of the scheduling requirements (resource\n\t// request, requiredDuringScheduling affinity expressions, etc.),\n\t// compute a sum by iterating through the elements of this field and adding\n\t// \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\n\t// node(s) with the highest sum are the most preferred.\n\t// +optional\n\t// +listType=atomic\n\tPreferredDuringSchedulingIgnoredDuringExecution []WeightedPodAffinityTerm `json:\"preferredDuringSchedulingIgnoredDuringExecution,omitempty\" protobuf:\"bytes,2,rep,name=preferredDuringSchedulingIgnoredDuringExecution\"`\n}\n\n// Pod anti affinity is a group of inter pod anti affinity scheduling rules.\ntype PodAntiAffinity struct {\n\t// NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.\n\t// If the anti-affinity requirements specified by this field are not met at\n\t// scheduling time, the pod will not be scheduled onto the node.\n\t// If the anti-affinity requirements specified by this field cease to be met\n\t// at some point during pod execution (e.g. due to a pod label update), the\n\t// system will try to eventually evict the pod from its node.\n\t// When there are multiple elements, the lists of nodes corresponding to each\n\t// podAffinityTerm are intersected, i.e. all terms must be satisfied.\n\t// +optional\n\t// RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm  `json:\"requiredDuringSchedulingRequiredDuringExecution,omitempty\"`\n\n\t// If the anti-affinity requirements specified by this field are not met at\n\t// scheduling time, the pod will not be scheduled onto the node.\n\t// If the anti-affinity requirements specified by this field cease to be met\n\t// at some point during pod execution (e.g. due to a pod label update), the\n\t// system may or may not try to eventually evict the pod from its node.\n\t// When there are multiple elements, the lists of nodes corresponding to each\n\t// podAffinityTerm are intersected, i.e. all terms must be satisfied.\n\t// +optional\n\t// +listType=atomic\n\tRequiredDuringSchedulingIgnoredDuringExecution []PodAffinityTerm `json:\"requiredDuringSchedulingIgnoredDuringExecution,omitempty\" protobuf:\"bytes,1,rep,name=requiredDuringSchedulingIgnoredDuringExecution\"`\n\t// The scheduler will prefer to schedule pods to nodes that satisfy\n\t// the anti-affinity expressions specified by this field, but it may choose\n\t// a node that violates one or more of the expressions. The node that is\n\t// most preferred is the one with the greatest sum of weights, i.e.\n\t// for each node that meets all of the scheduling requirements (resource\n\t// request, requiredDuringScheduling anti-affinity expressions, etc.),\n\t// compute a sum by iterating through the elements of this field and adding\n\t// \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\n\t// node(s) with the highest sum are the most preferred.\n\t// +optional\n\t// +listType=atomic\n\tPreferredDuringSchedulingIgnoredDuringExecution []WeightedPodAffinityTerm `json:\"preferredDuringSchedulingIgnoredDuringExecution,omitempty\" protobuf:\"bytes,2,rep,name=preferredDuringSchedulingIgnoredDuringExecution\"`\n}\n\n// The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\ntype WeightedPodAffinityTerm struct {\n\t// weight associated with matching the corresponding podAffinityTerm,\n\t// in the range 1-100.\n\tWeight int32 `json:\"weight\" protobuf:\"varint,1,opt,name=weight\"`\n\t// Required. A pod affinity term, associated with the corresponding weight.\n\tPodAffinityTerm PodAffinityTerm `json:\"podAffinityTerm\" protobuf:\"bytes,2,opt,name=podAffinityTerm\"`\n}\n\n// Defines a set of pods (namely those matching the labelSelector\n// relative to the given namespace(s)) that this pod should be\n// co-located (affinity) or not co-located (anti-affinity) with,\n// where co-located is defined as running on a node whose value of\n// the label with key <topologyKey> matches that of any node on which\n// a pod of the set of pods is running\ntype PodAffinityTerm struct {\n\t// A label query over a set of resources, in this case pods.\n\t// If it's null, this PodAffinityTerm matches with no Pods.\n\t// +optional\n\tLabelSelector *metav1.LabelSelector `json:\"labelSelector,omitempty\" protobuf:\"bytes,1,opt,name=labelSelector\"`\n\t// namespaces specifies a static list of namespace names that the term applies to.\n\t// The term is applied to the union of the namespaces listed in this field\n\t// and the ones selected by namespaceSelector.\n\t// null or empty namespaces list and null namespaceSelector means \"this pod's namespace\".\n\t// +optional\n\t// +listType=atomic\n\tNamespaces []string `json:\"namespaces,omitempty\" protobuf:\"bytes,2,rep,name=namespaces\"`\n\t// This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\n\t// the labelSelector in the specified namespaces, where co-located is defined as running on a node\n\t// whose value of the label with key topologyKey matches that of any node on which any of the\n\t// selected pods is running.\n\t// Empty topologyKey is not allowed.\n\tTopologyKey string `json:\"topologyKey\" protobuf:\"bytes,3,opt,name=topologyKey\"`\n\t// A label query over the set of namespaces that the term applies to.\n\t// The term is applied to the union of the namespaces selected by this field\n\t// and the ones listed in the namespaces field.\n\t// null selector and null or empty namespaces list means \"this pod's namespace\".\n\t// An empty selector ({}) matches all namespaces.\n\t// +optional\n\tNamespaceSelector *metav1.LabelSelector `json:\"namespaceSelector,omitempty\" protobuf:\"bytes,4,opt,name=namespaceSelector\"`\n\t// MatchLabelKeys is a set of pod label keys to select which pods will\n\t// be taken into consideration. The keys are used to lookup values from the\n\t// incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)`\n\t// to select the group of existing pods which pods will be taken into consideration\n\t// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\n\t// pod labels will be ignored. The default value is empty.\n\t// The same key is forbidden to exist in both matchLabelKeys and labelSelector.\n\t// Also, matchLabelKeys cannot be set when labelSelector isn't set.\n\t// This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\n\t//\n\t// +listType=atomic\n\t// +optional\n\tMatchLabelKeys []string `json:\"matchLabelKeys,omitempty\" protobuf:\"bytes,5,opt,name=matchLabelKeys\"`\n\t// MismatchLabelKeys is a set of pod label keys to select which pods will\n\t// be taken into consideration. The keys are used to lookup values from the\n\t// incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)`\n\t// to select the group of existing pods which pods will be taken into consideration\n\t// for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming\n\t// pod labels will be ignored. The default value is empty.\n\t// The same key is forbidden to exist in both mismatchLabelKeys and labelSelector.\n\t// Also, mismatchLabelKeys cannot be set when labelSelector isn't set.\n\t// This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\n\t//\n\t// +listType=atomic\n\t// +optional\n\tMismatchLabelKeys []string `json:\"mismatchLabelKeys,omitempty\" protobuf:\"bytes,6,opt,name=mismatchLabelKeys\"`\n}\n\n// Node affinity is a group of node affinity scheduling rules.\ntype NodeAffinity struct {\n\t// NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.\n\t// If the affinity requirements specified by this field are not met at\n\t// scheduling time, the pod will not be scheduled onto the node.\n\t// If the affinity requirements specified by this field cease to be met\n\t// at some point during pod execution (e.g. due to an update), the system\n\t// will try to eventually evict the pod from its node.\n\t// +optional\n\t// RequiredDuringSchedulingRequiredDuringExecution *NodeSelector `json:\"requiredDuringSchedulingRequiredDuringExecution,omitempty\"`\n\n\t// If the affinity requirements specified by this field are not met at\n\t// scheduling time, the pod will not be scheduled onto the node.\n\t// If the affinity requirements specified by this field cease to be met\n\t// at some point during pod execution (e.g. due to an update), the system\n\t// may or may not try to eventually evict the pod from its node.\n\t// +optional\n\tRequiredDuringSchedulingIgnoredDuringExecution *NodeSelector `json:\"requiredDuringSchedulingIgnoredDuringExecution,omitempty\" protobuf:\"bytes,1,opt,name=requiredDuringSchedulingIgnoredDuringExecution\"`\n\t// The scheduler will prefer to schedule pods to nodes that satisfy\n\t// the affinity expressions specified by this field, but it may choose\n\t// a node that violates one or more of the expressions. The node that is\n\t// most preferred is the one with the greatest sum of weights, i.e.\n\t// for each node that meets all of the scheduling requirements (resource\n\t// request, requiredDuringScheduling affinity expressions, etc.),\n\t// compute a sum by iterating through the elements of this field and adding\n\t// \"weight\" to the sum if the node matches the corresponding matchExpressions; the\n\t// node(s) with the highest sum are the most preferred.\n\t// +optional\n\t// +listType=atomic\n\tPreferredDuringSchedulingIgnoredDuringExecution []PreferredSchedulingTerm `json:\"preferredDuringSchedulingIgnoredDuringExecution,omitempty\" protobuf:\"bytes,2,rep,name=preferredDuringSchedulingIgnoredDuringExecution\"`\n}\n\n// An empty preferred scheduling term matches all objects with implicit weight 0\n// (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).\ntype PreferredSchedulingTerm struct {\n\t// Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\n\tWeight int32 `json:\"weight\" protobuf:\"varint,1,opt,name=weight\"`\n\t// A node selector term, associated with the corresponding weight.\n\tPreference NodeSelectorTerm `json:\"preference\" protobuf:\"bytes,2,opt,name=preference\"`\n}\n\n// The node this Taint is attached to has the \"effect\" on\n// any pod that does not tolerate the Taint.\ntype Taint struct {\n\t// Required. The taint key to be applied to a node.\n\tKey string `json:\"key\" protobuf:\"bytes,1,opt,name=key\"`\n\t// The taint value corresponding to the taint key.\n\t// +optional\n\tValue string `json:\"value,omitempty\" protobuf:\"bytes,2,opt,name=value\"`\n\t// Required. The effect of the taint on pods\n\t// that do not tolerate the taint.\n\t// Valid effects are NoSchedule, PreferNoSchedule and NoExecute.\n\tEffect TaintEffect `json:\"effect\" protobuf:\"bytes,3,opt,name=effect,casttype=TaintEffect\"`\n\t// TimeAdded represents the time at which the taint was added.\n\t// It is only written for NoExecute taints.\n\t// +optional\n\tTimeAdded *metav1.Time `json:\"timeAdded,omitempty\" protobuf:\"bytes,4,opt,name=timeAdded\"`\n}\n\n// +enum\ntype TaintEffect string\n\nconst (\n\t// Do not allow new pods to schedule onto the node unless they tolerate the taint,\n\t// but allow all pods submitted to Kubelet without going through the scheduler\n\t// to start, and allow all already-running pods to continue running.\n\t// Enforced by the scheduler.\n\tTaintEffectNoSchedule TaintEffect = \"NoSchedule\"\n\t// Like TaintEffectNoSchedule, but the scheduler tries not to schedule\n\t// new pods onto the node, rather than prohibiting new pods from scheduling\n\t// onto the node entirely. Enforced by the scheduler.\n\tTaintEffectPreferNoSchedule TaintEffect = \"PreferNoSchedule\"\n\t// NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented.\n\t// Like TaintEffectNoSchedule, but additionally do not allow pods submitted to\n\t// Kubelet without going through the scheduler to start.\n\t// Enforced by Kubelet and the scheduler.\n\t// TaintEffectNoScheduleNoAdmit TaintEffect = \"NoScheduleNoAdmit\"\n\n\t// Evict any already-running pods that do not tolerate the taint.\n\t// Currently enforced by NodeController.\n\tTaintEffectNoExecute TaintEffect = \"NoExecute\"\n)\n\n// The pod this Toleration is attached to tolerates any taint that matches\n// the triple <key,value,effect> using the matching operator <operator>.\ntype Toleration struct {\n\t// Key is the taint key that the toleration applies to. Empty means match all taint keys.\n\t// If the key is empty, operator must be Exists; this combination means to match all values and all keys.\n\t// +optional\n\tKey string `json:\"key,omitempty\" protobuf:\"bytes,1,opt,name=key\"`\n\t// Operator represents a key's relationship to the value.\n\t// Valid operators are Exists and Equal. Defaults to Equal.\n\t// Exists is equivalent to wildcard for value, so that a pod can\n\t// tolerate all taints of a particular category.\n\t// +optional\n\tOperator TolerationOperator `json:\"operator,omitempty\" protobuf:\"bytes,2,opt,name=operator,casttype=TolerationOperator\"`\n\t// Value is the taint value the toleration matches to.\n\t// If the operator is Exists, the value should be empty, otherwise just a regular string.\n\t// +optional\n\tValue string `json:\"value,omitempty\" protobuf:\"bytes,3,opt,name=value\"`\n\t// Effect indicates the taint effect to match. Empty means match all taint effects.\n\t// When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\n\t// +optional\n\tEffect TaintEffect `json:\"effect,omitempty\" protobuf:\"bytes,4,opt,name=effect,casttype=TaintEffect\"`\n\t// TolerationSeconds represents the period of time the toleration (which must be\n\t// of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,\n\t// it is not set, which means tolerate the taint forever (do not evict). Zero and\n\t// negative values will be treated as 0 (evict immediately) by the system.\n\t// +optional\n\tTolerationSeconds *int64 `json:\"tolerationSeconds,omitempty\" protobuf:\"varint,5,opt,name=tolerationSeconds\"`\n}\n\n// A toleration operator is the set of operators that can be used in a toleration.\n// +enum\ntype TolerationOperator string\n\nconst (\n\tTolerationOpExists TolerationOperator = \"Exists\"\n\tTolerationOpEqual  TolerationOperator = \"Equal\"\n)\n\n// PodReadinessGate contains the reference to a pod condition\ntype PodReadinessGate struct {\n\t// ConditionType refers to a condition in the pod's condition list with matching type.\n\tConditionType PodConditionType `json:\"conditionType\" protobuf:\"bytes,1,opt,name=conditionType,casttype=PodConditionType\"`\n}\n\n// PodSpec is a description of a pod.\ntype PodSpec struct {\n\t// List of volumes that can be mounted by containers belonging to the pod.\n\t// More info: https://kubernetes.io/docs/concepts/storage/volumes\n\t// +optional\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge,retainKeys\n\t// +listType=map\n\t// +listMapKey=name\n\tVolumes []Volume `json:\"volumes,omitempty\" patchStrategy:\"merge,retainKeys\" patchMergeKey:\"name\" protobuf:\"bytes,1,rep,name=volumes\"`\n\t// List of initialization containers belonging to the pod.\n\t// Init containers are executed in order prior to containers being started. If any\n\t// init container fails, the pod is considered to have failed and is handled according\n\t// to its restartPolicy. The name for an init container or normal container must be\n\t// unique among all containers.\n\t// Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes.\n\t// The resourceRequirements of an init container are taken into account during scheduling\n\t// by finding the highest request/limit for each resource type, and then using the max of\n\t// of that value or the sum of the normal containers. Limits are applied to init containers\n\t// in a similar fashion.\n\t// Init containers cannot currently be added or removed.\n\t// Cannot be updated.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=name\n\tInitContainers []Container `json:\"initContainers,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,20,rep,name=initContainers\"`\n\t// List of containers belonging to the pod.\n\t// Containers cannot currently be added or removed.\n\t// There must be at least one container in a Pod.\n\t// Cannot be updated.\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=name\n\tContainers []Container `json:\"containers\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,2,rep,name=containers\"`\n\t// List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing\n\t// pod to perform user-initiated actions such as debugging. This list cannot be specified when\n\t// creating a pod, and it cannot be modified by updating the pod spec. In order to add an\n\t// ephemeral container to an existing pod, use the pod's ephemeralcontainers subresource.\n\t// +optional\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=name\n\tEphemeralContainers []EphemeralContainer `json:\"ephemeralContainers,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,34,rep,name=ephemeralContainers\"`\n\t// Restart policy for all containers within the pod.\n\t// One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted.\n\t// Default to Always.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy\n\t// +optional\n\tRestartPolicy RestartPolicy `json:\"restartPolicy,omitempty\" protobuf:\"bytes,3,opt,name=restartPolicy,casttype=RestartPolicy\"`\n\t// Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request.\n\t// Value must be non-negative integer. The value zero indicates stop immediately via\n\t// the kill signal (no opportunity to shut down).\n\t// If this value is nil, the default grace period will be used instead.\n\t// The grace period is the duration in seconds after the processes running in the pod are sent\n\t// a termination signal and the time when the processes are forcibly halted with a kill signal.\n\t// Set this value longer than the expected cleanup time for your process.\n\t// Defaults to 30 seconds.\n\t// +optional\n\tTerminationGracePeriodSeconds *int64 `json:\"terminationGracePeriodSeconds,omitempty\" protobuf:\"varint,4,opt,name=terminationGracePeriodSeconds\"`\n\t// Optional duration in seconds the pod may be active on the node relative to\n\t// StartTime before the system will actively try to mark it failed and kill associated containers.\n\t// Value must be a positive integer.\n\t// +optional\n\tActiveDeadlineSeconds *int64 `json:\"activeDeadlineSeconds,omitempty\" protobuf:\"varint,5,opt,name=activeDeadlineSeconds\"`\n\t// Set DNS policy for the pod.\n\t// Defaults to \"ClusterFirst\".\n\t// Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'.\n\t// DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy.\n\t// To have DNS options set along with hostNetwork, you have to specify DNS policy\n\t// explicitly to 'ClusterFirstWithHostNet'.\n\t// +optional\n\tDNSPolicy DNSPolicy `json:\"dnsPolicy,omitempty\" protobuf:\"bytes,6,opt,name=dnsPolicy,casttype=DNSPolicy\"`\n\t// NodeSelector is a selector which must be true for the pod to fit on a node.\n\t// Selector which must match a node's labels for the pod to be scheduled on that node.\n\t// More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/\n\t// +optional\n\t// +mapType=atomic\n\tNodeSelector map[string]string `json:\"nodeSelector,omitempty\" protobuf:\"bytes,7,rep,name=nodeSelector\"`\n\n\t// ServiceAccountName is the name of the ServiceAccount to use to run this pod.\n\t// More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/\n\t// +optional\n\tServiceAccountName string `json:\"serviceAccountName,omitempty\" protobuf:\"bytes,8,opt,name=serviceAccountName\"`\n\t// DeprecatedServiceAccount is a deprecated alias for ServiceAccountName.\n\t// Deprecated: Use serviceAccountName instead.\n\t// +k8s:conversion-gen=false\n\t// +optional\n\tDeprecatedServiceAccount string `json:\"serviceAccount,omitempty\" protobuf:\"bytes,9,opt,name=serviceAccount\"`\n\t// AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.\n\t// +optional\n\tAutomountServiceAccountToken *bool `json:\"automountServiceAccountToken,omitempty\" protobuf:\"varint,21,opt,name=automountServiceAccountToken\"`\n\n\t// NodeName indicates in which node this pod is scheduled.\n\t// If empty, this pod is a candidate for scheduling by the scheduler defined in schedulerName.\n\t// Once this field is set, the kubelet for this node becomes responsible for the lifecycle of this pod.\n\t// This field should not be used to express a desire for the pod to be scheduled on a specific node.\n\t// https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodename\n\t// +optional\n\tNodeName string `json:\"nodeName,omitempty\" protobuf:\"bytes,10,opt,name=nodeName\"`\n\t// Host networking requested for this pod. Use the host's network namespace.\n\t// If this option is set, the ports that will be used must be specified.\n\t// Default to false.\n\t// +k8s:conversion-gen=false\n\t// +optional\n\tHostNetwork bool `json:\"hostNetwork,omitempty\" protobuf:\"varint,11,opt,name=hostNetwork\"`\n\t// Use the host's pid namespace.\n\t// Optional: Default to false.\n\t// +k8s:conversion-gen=false\n\t// +optional\n\tHostPID bool `json:\"hostPID,omitempty\" protobuf:\"varint,12,opt,name=hostPID\"`\n\t// Use the host's ipc namespace.\n\t// Optional: Default to false.\n\t// +k8s:conversion-gen=false\n\t// +optional\n\tHostIPC bool `json:\"hostIPC,omitempty\" protobuf:\"varint,13,opt,name=hostIPC\"`\n\t// Share a single process namespace between all of the containers in a pod.\n\t// When this is set containers will be able to view and signal processes from other containers\n\t// in the same pod, and the first process in each container will not be assigned PID 1.\n\t// HostPID and ShareProcessNamespace cannot both be set.\n\t// Optional: Default to false.\n\t// +k8s:conversion-gen=false\n\t// +optional\n\tShareProcessNamespace *bool `json:\"shareProcessNamespace,omitempty\" protobuf:\"varint,27,opt,name=shareProcessNamespace\"`\n\t// SecurityContext holds pod-level security attributes and common container settings.\n\t// Optional: Defaults to empty.  See type description for default values of each field.\n\t// +optional\n\tSecurityContext *PodSecurityContext `json:\"securityContext,omitempty\" protobuf:\"bytes,14,opt,name=securityContext\"`\n\t// ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.\n\t// If specified, these secrets will be passed to individual puller implementations for them to use.\n\t// More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod\n\t// +optional\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=name\n\tImagePullSecrets []LocalObjectReference `json:\"imagePullSecrets,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,15,rep,name=imagePullSecrets\"`\n\t// Specifies the hostname of the Pod\n\t// If not specified, the pod's hostname will be set to a system-defined value.\n\t// +optional\n\tHostname string `json:\"hostname,omitempty\" protobuf:\"bytes,16,opt,name=hostname\"`\n\t// If specified, the fully qualified Pod hostname will be \"<hostname>.<subdomain>.<pod namespace>.svc.<cluster domain>\".\n\t// If not specified, the pod will not have a domainname at all.\n\t// +optional\n\tSubdomain string `json:\"subdomain,omitempty\" protobuf:\"bytes,17,opt,name=subdomain\"`\n\t// If specified, the pod's scheduling constraints\n\t// +optional\n\tAffinity *Affinity `json:\"affinity,omitempty\" protobuf:\"bytes,18,opt,name=affinity\"`\n\t// If specified, the pod will be dispatched by specified scheduler.\n\t// If not specified, the pod will be dispatched by default scheduler.\n\t// +optional\n\tSchedulerName string `json:\"schedulerName,omitempty\" protobuf:\"bytes,19,opt,name=schedulerName\"`\n\t// If specified, the pod's tolerations.\n\t// +optional\n\t// +listType=atomic\n\tTolerations []Toleration `json:\"tolerations,omitempty\" protobuf:\"bytes,22,opt,name=tolerations\"`\n\t// HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts\n\t// file if specified.\n\t// +optional\n\t// +patchMergeKey=ip\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=ip\n\tHostAliases []HostAlias `json:\"hostAliases,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"ip\" protobuf:\"bytes,23,rep,name=hostAliases\"`\n\t// If specified, indicates the pod's priority. \"system-node-critical\" and\n\t// \"system-cluster-critical\" are two special keywords which indicate the\n\t// highest priorities with the former being the highest priority. Any other\n\t// name must be defined by creating a PriorityClass object with that name.\n\t// If not specified, the pod priority will be default or zero if there is no\n\t// default.\n\t// +optional\n\tPriorityClassName string `json:\"priorityClassName,omitempty\" protobuf:\"bytes,24,opt,name=priorityClassName\"`\n\t// The priority value. Various system components use this field to find the\n\t// priority of the pod. When Priority Admission Controller is enabled, it\n\t// prevents users from setting this field. The admission controller populates\n\t// this field from PriorityClassName.\n\t// The higher the value, the higher the priority.\n\t// +optional\n\tPriority *int32 `json:\"priority,omitempty\" protobuf:\"bytes,25,opt,name=priority\"`\n\t// Specifies the DNS parameters of a pod.\n\t// Parameters specified here will be merged to the generated DNS\n\t// configuration based on DNSPolicy.\n\t// +optional\n\tDNSConfig *PodDNSConfig `json:\"dnsConfig,omitempty\" protobuf:\"bytes,26,opt,name=dnsConfig\"`\n\t// If specified, all readiness gates will be evaluated for pod readiness.\n\t// A pod is ready when all its containers are ready AND\n\t// all conditions specified in the readiness gates have status equal to \"True\"\n\t// More info: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates\n\t// +optional\n\t// +listType=atomic\n\tReadinessGates []PodReadinessGate `json:\"readinessGates,omitempty\" protobuf:\"bytes,28,opt,name=readinessGates\"`\n\t// RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used\n\t// to run this pod.  If no RuntimeClass resource matches the named class, the pod will not be run.\n\t// If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an\n\t// empty definition that uses the default runtime handler.\n\t// More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class\n\t// +optional\n\tRuntimeClassName *string `json:\"runtimeClassName,omitempty\" protobuf:\"bytes,29,opt,name=runtimeClassName\"`\n\t// EnableServiceLinks indicates whether information about services should be injected into pod's\n\t// environment variables, matching the syntax of Docker links.\n\t// Optional: Defaults to true.\n\t// +optional\n\tEnableServiceLinks *bool `json:\"enableServiceLinks,omitempty\" protobuf:\"varint,30,opt,name=enableServiceLinks\"`\n\t// PreemptionPolicy is the Policy for preempting pods with lower priority.\n\t// One of Never, PreemptLowerPriority.\n\t// Defaults to PreemptLowerPriority if unset.\n\t// +optional\n\tPreemptionPolicy *PreemptionPolicy `json:\"preemptionPolicy,omitempty\" protobuf:\"bytes,31,opt,name=preemptionPolicy\"`\n\t// Overhead represents the resource overhead associated with running a pod for a given RuntimeClass.\n\t// This field will be autopopulated at admission time by the RuntimeClass admission controller. If\n\t// the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests.\n\t// The RuntimeClass admission controller will reject Pod create requests which have the overhead already\n\t// set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value\n\t// defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero.\n\t// More info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md\n\t// +optional\n\tOverhead ResourceList `json:\"overhead,omitempty\" protobuf:\"bytes,32,opt,name=overhead\"`\n\t// TopologySpreadConstraints describes how a group of pods ought to spread across topology\n\t// domains. Scheduler will schedule pods in a way which abides by the constraints.\n\t// All topologySpreadConstraints are ANDed.\n\t// +optional\n\t// +patchMergeKey=topologyKey\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=topologyKey\n\t// +listMapKey=whenUnsatisfiable\n\tTopologySpreadConstraints []TopologySpreadConstraint `json:\"topologySpreadConstraints,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"topologyKey\" protobuf:\"bytes,33,opt,name=topologySpreadConstraints\"`\n\t// If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default).\n\t// In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname).\n\t// In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\CurrentControlSet\\\\Services\\\\Tcpip\\\\Parameters to FQDN.\n\t// If a pod does not have FQDN, this has no effect.\n\t// Default to false.\n\t// +optional\n\tSetHostnameAsFQDN *bool `json:\"setHostnameAsFQDN,omitempty\" protobuf:\"varint,35,opt,name=setHostnameAsFQDN\"`\n\t// Specifies the OS of the containers in the pod.\n\t// Some pod and container fields are restricted if this is set.\n\t//\n\t// If the OS field is set to linux, the following fields must be unset:\n\t// -securityContext.windowsOptions\n\t//\n\t// If the OS field is set to windows, following fields must be unset:\n\t// - spec.hostPID\n\t// - spec.hostIPC\n\t// - spec.hostUsers\n\t// - spec.securityContext.appArmorProfile\n\t// - spec.securityContext.seLinuxOptions\n\t// - spec.securityContext.seccompProfile\n\t// - spec.securityContext.fsGroup\n\t// - spec.securityContext.fsGroupChangePolicy\n\t// - spec.securityContext.sysctls\n\t// - spec.shareProcessNamespace\n\t// - spec.securityContext.runAsUser\n\t// - spec.securityContext.runAsGroup\n\t// - spec.securityContext.supplementalGroups\n\t// - spec.securityContext.supplementalGroupsPolicy\n\t// - spec.containers[*].securityContext.appArmorProfile\n\t// - spec.containers[*].securityContext.seLinuxOptions\n\t// - spec.containers[*].securityContext.seccompProfile\n\t// - spec.containers[*].securityContext.capabilities\n\t// - spec.containers[*].securityContext.readOnlyRootFilesystem\n\t// - spec.containers[*].securityContext.privileged\n\t// - spec.containers[*].securityContext.allowPrivilegeEscalation\n\t// - spec.containers[*].securityContext.procMount\n\t// - spec.containers[*].securityContext.runAsUser\n\t// - spec.containers[*].securityContext.runAsGroup\n\t// +optional\n\tOS *PodOS `json:\"os,omitempty\" protobuf:\"bytes,36,opt,name=os\"`\n\n\t// Use the host's user namespace.\n\t// Optional: Default to true.\n\t// If set to true or not present, the pod will be run in the host user namespace, useful\n\t// for when the pod needs a feature only available to the host user namespace, such as\n\t// loading a kernel module with CAP_SYS_MODULE.\n\t// When set to false, a new userns is created for the pod. Setting false is useful for\n\t// mitigating container breakout vulnerabilities even allowing users to run their\n\t// containers as root without actually having root privileges on the host.\n\t// This field is alpha-level and is only honored by servers that enable the UserNamespacesSupport feature.\n\t// +k8s:conversion-gen=false\n\t// +optional\n\tHostUsers *bool `json:\"hostUsers,omitempty\" protobuf:\"bytes,37,opt,name=hostUsers\"`\n\n\t// SchedulingGates is an opaque list of values that if specified will block scheduling the pod.\n\t// If schedulingGates is not empty, the pod will stay in the SchedulingGated state and the\n\t// scheduler will not attempt to schedule the pod.\n\t//\n\t// SchedulingGates can only be set at pod creation time, and be removed only afterwards.\n\t//\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=name\n\t// +optional\n\tSchedulingGates []PodSchedulingGate `json:\"schedulingGates,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,38,opt,name=schedulingGates\"`\n\t// ResourceClaims defines which ResourceClaims must be allocated\n\t// and reserved before the Pod is allowed to start. The resources\n\t// will be made available to those containers which consume them\n\t// by name.\n\t//\n\t// This is an alpha field and requires enabling the\n\t// DynamicResourceAllocation feature gate.\n\t//\n\t// This field is immutable.\n\t//\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge,retainKeys\n\t// +listType=map\n\t// +listMapKey=name\n\t// +featureGate=DynamicResourceAllocation\n\t// +optional\n\tResourceClaims []PodResourceClaim `json:\"resourceClaims,omitempty\" patchStrategy:\"merge,retainKeys\" patchMergeKey:\"name\" protobuf:\"bytes,39,rep,name=resourceClaims\"`\n\t// Resources is the total amount of CPU and Memory resources required by all\n\t// containers in the pod. It supports specifying Requests and Limits for\n\t// \"cpu\" and \"memory\" resource names only. ResourceClaims are not supported.\n\t//\n\t// This field enables fine-grained control over resource allocation for the\n\t// entire pod, allowing resource sharing among containers in a pod.\n\t// TODO: For beta graduation, expand this comment with a detailed explanation.\n\t//\n\t// This is an alpha field and requires enabling the PodLevelResources feature\n\t// gate.\n\t//\n\t// +featureGate=PodLevelResources\n\t// +optional\n\tResources *ResourceRequirements `json:\"resources,omitempty\" protobuf:\"bytes,40,opt,name=resources\"`\n}\n\n// PodResourceClaim references exactly one ResourceClaim, either directly\n// or by naming a ResourceClaimTemplate which is then turned into a ResourceClaim\n// for the pod.\n//\n// It adds a name to it that uniquely identifies the ResourceClaim inside the Pod.\n// Containers that need access to the ResourceClaim reference it with this name.\ntype PodResourceClaim struct {\n\t// Name uniquely identifies this resource claim inside the pod.\n\t// This must be a DNS_LABEL.\n\tName string `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\n\t// Source is tombstoned since Kubernetes 1.31 where it got replaced with\n\t// the inlined fields below.\n\t//\n\t// Source ClaimSource `json:\"source,omitempty\" protobuf:\"bytes,2,name=source\"`\n\n\t// ResourceClaimName is the name of a ResourceClaim object in the same\n\t// namespace as this pod.\n\t//\n\t// Exactly one of ResourceClaimName and ResourceClaimTemplateName must\n\t// be set.\n\tResourceClaimName *string `json:\"resourceClaimName,omitempty\" protobuf:\"bytes,3,opt,name=resourceClaimName\"`\n\n\t// ResourceClaimTemplateName is the name of a ResourceClaimTemplate\n\t// object in the same namespace as this pod.\n\t//\n\t// The template will be used to create a new ResourceClaim, which will\n\t// be bound to this pod. When this pod is deleted, the ResourceClaim\n\t// will also be deleted. The pod name and resource name, along with a\n\t// generated component, will be used to form a unique name for the\n\t// ResourceClaim, which will be recorded in pod.status.resourceClaimStatuses.\n\t//\n\t// This field is immutable and no changes will be made to the\n\t// corresponding ResourceClaim by the control plane after creating the\n\t// ResourceClaim.\n\t//\n\t// Exactly one of ResourceClaimName and ResourceClaimTemplateName must\n\t// be set.\n\tResourceClaimTemplateName *string `json:\"resourceClaimTemplateName,omitempty\" protobuf:\"bytes,4,opt,name=resourceClaimTemplateName\"`\n}\n\n// PodResourceClaimStatus is stored in the PodStatus for each PodResourceClaim\n// which references a ResourceClaimTemplate. It stores the generated name for\n// the corresponding ResourceClaim.\ntype PodResourceClaimStatus struct {\n\t// Name uniquely identifies this resource claim inside the pod.\n\t// This must match the name of an entry in pod.spec.resourceClaims,\n\t// which implies that the string must be a DNS_LABEL.\n\tName string `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\n\t// ResourceClaimName is the name of the ResourceClaim that was\n\t// generated for the Pod in the namespace of the Pod. If this is\n\t// unset, then generating a ResourceClaim was not necessary. The\n\t// pod.spec.resourceClaims entry can be ignored in this case.\n\t//\n\t// +optional\n\tResourceClaimName *string `json:\"resourceClaimName,omitempty\" protobuf:\"bytes,2,opt,name=resourceClaimName\"`\n}\n\n// OSName is the set of OS'es that can be used in OS.\ntype OSName string\n\n// These are valid values for OSName\nconst (\n\tLinux   OSName = \"linux\"\n\tWindows OSName = \"windows\"\n)\n\n// PodOS defines the OS parameters of a pod.\ntype PodOS struct {\n\t// Name is the name of the operating system. The currently supported values are linux and windows.\n\t// Additional value may be defined in future and can be one of:\n\t// https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration\n\t// Clients should expect to handle additional values and treat unrecognized values in this field as os: null\n\tName OSName `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n}\n\n// PodSchedulingGate is associated to a Pod to guard its scheduling.\ntype PodSchedulingGate struct {\n\t// Name of the scheduling gate.\n\t// Each scheduling gate must have a unique name field.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n}\n\n// +enum\ntype UnsatisfiableConstraintAction string\n\nconst (\n\t// DoNotSchedule instructs the scheduler not to schedule the pod\n\t// when constraints are not satisfied.\n\tDoNotSchedule UnsatisfiableConstraintAction = \"DoNotSchedule\"\n\t// ScheduleAnyway instructs the scheduler to schedule the pod\n\t// even if constraints are not satisfied.\n\tScheduleAnyway UnsatisfiableConstraintAction = \"ScheduleAnyway\"\n)\n\n// NodeInclusionPolicy defines the type of node inclusion policy\n// +enum\ntype NodeInclusionPolicy string\n\nconst (\n\t// NodeInclusionPolicyIgnore means ignore this scheduling directive when calculating pod topology spread skew.\n\tNodeInclusionPolicyIgnore NodeInclusionPolicy = \"Ignore\"\n\t// NodeInclusionPolicyHonor means use this scheduling directive when calculating pod topology spread skew.\n\tNodeInclusionPolicyHonor NodeInclusionPolicy = \"Honor\"\n)\n\n// TopologySpreadConstraint specifies how to spread matching pods among the given topology.\ntype TopologySpreadConstraint struct {\n\t// MaxSkew describes the degree to which pods may be unevenly distributed.\n\t// When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference\n\t// between the number of matching pods in the target topology and the global minimum.\n\t// The global minimum is the minimum number of matching pods in an eligible domain\n\t// or zero if the number of eligible domains is less than MinDomains.\n\t// For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same\n\t// labelSelector spread as 2/2/1:\n\t// In this case, the global minimum is 1.\n\t// +-------+-------+-------+\n\t// | zone1 | zone2 | zone3 |\n\t// +-------+-------+-------+\n\t// |  P P  |  P P  |   P   |\n\t// +-------+-------+-------+\n\t// - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2;\n\t// scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2)\n\t// violate MaxSkew(1).\n\t// - if MaxSkew is 2, incoming pod can be scheduled onto any zone.\n\t// When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence\n\t// to topologies that satisfy it.\n\t// It's a required field. Default value is 1 and 0 is not allowed.\n\tMaxSkew int32 `json:\"maxSkew\" protobuf:\"varint,1,opt,name=maxSkew\"`\n\t// TopologyKey is the key of node labels. Nodes that have a label with this key\n\t// and identical values are considered to be in the same topology.\n\t// We consider each <key, value> as a \"bucket\", and try to put balanced number\n\t// of pods into each bucket.\n\t// We define a domain as a particular instance of a topology.\n\t// Also, we define an eligible domain as a domain whose nodes meet the requirements of\n\t// nodeAffinityPolicy and nodeTaintsPolicy.\n\t// e.g. If TopologyKey is \"kubernetes.io/hostname\", each Node is a domain of that topology.\n\t// And, if TopologyKey is \"topology.kubernetes.io/zone\", each zone is a domain of that topology.\n\t// It's a required field.\n\tTopologyKey string `json:\"topologyKey\" protobuf:\"bytes,2,opt,name=topologyKey\"`\n\t// WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy\n\t// the spread constraint.\n\t// - DoNotSchedule (default) tells the scheduler not to schedule it.\n\t// - ScheduleAnyway tells the scheduler to schedule the pod in any location,\n\t//   but giving higher precedence to topologies that would help reduce the\n\t//   skew.\n\t// A constraint is considered \"Unsatisfiable\" for an incoming pod\n\t// if and only if every possible node assignment for that pod would violate\n\t// \"MaxSkew\" on some topology.\n\t// For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same\n\t// labelSelector spread as 3/1/1:\n\t// +-------+-------+-------+\n\t// | zone1 | zone2 | zone3 |\n\t// +-------+-------+-------+\n\t// | P P P |   P   |   P   |\n\t// +-------+-------+-------+\n\t// If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled\n\t// to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies\n\t// MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler\n\t// won't make it *more* imbalanced.\n\t// It's a required field.\n\tWhenUnsatisfiable UnsatisfiableConstraintAction `json:\"whenUnsatisfiable\" protobuf:\"bytes,3,opt,name=whenUnsatisfiable,casttype=UnsatisfiableConstraintAction\"`\n\t// LabelSelector is used to find matching pods.\n\t// Pods that match this label selector are counted to determine the number of pods\n\t// in their corresponding topology domain.\n\t// +optional\n\tLabelSelector *metav1.LabelSelector `json:\"labelSelector,omitempty\" protobuf:\"bytes,4,opt,name=labelSelector\"`\n\t// MinDomains indicates a minimum number of eligible domains.\n\t// When the number of eligible domains with matching topology keys is less than minDomains,\n\t// Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed.\n\t// And when the number of eligible domains with matching topology keys equals or greater than minDomains,\n\t// this value has no effect on scheduling.\n\t// As a result, when the number of eligible domains is less than minDomains,\n\t// scheduler won't schedule more than maxSkew Pods to those domains.\n\t// If value is nil, the constraint behaves as if MinDomains is equal to 1.\n\t// Valid values are integers greater than 0.\n\t// When value is not nil, WhenUnsatisfiable must be DoNotSchedule.\n\t//\n\t// For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same\n\t// labelSelector spread as 2/2/2:\n\t// +-------+-------+-------+\n\t// | zone1 | zone2 | zone3 |\n\t// +-------+-------+-------+\n\t// |  P P  |  P P  |  P P  |\n\t// +-------+-------+-------+\n\t// The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0.\n\t// In this situation, new pod with the same labelSelector cannot be scheduled,\n\t// because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones,\n\t// it will violate MaxSkew.\n\t// +optional\n\tMinDomains *int32 `json:\"minDomains,omitempty\" protobuf:\"varint,5,opt,name=minDomains\"`\n\t// NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector\n\t// when calculating pod topology spread skew. Options are:\n\t// - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations.\n\t// - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.\n\t//\n\t// If this value is nil, the behavior is equivalent to the Honor policy.\n\t// This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\n\t// +optional\n\tNodeAffinityPolicy *NodeInclusionPolicy `json:\"nodeAffinityPolicy,omitempty\" protobuf:\"bytes,6,opt,name=nodeAffinityPolicy\"`\n\t// NodeTaintsPolicy indicates how we will treat node taints when calculating\n\t// pod topology spread skew. Options are:\n\t// - Honor: nodes without taints, along with tainted nodes for which the incoming pod\n\t// has a toleration, are included.\n\t// - Ignore: node taints are ignored. All nodes are included.\n\t//\n\t// If this value is nil, the behavior is equivalent to the Ignore policy.\n\t// This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\n\t// +optional\n\tNodeTaintsPolicy *NodeInclusionPolicy `json:\"nodeTaintsPolicy,omitempty\" protobuf:\"bytes,7,opt,name=nodeTaintsPolicy\"`\n\t// MatchLabelKeys is a set of pod label keys to select the pods over which\n\t// spreading will be calculated. The keys are used to lookup values from the\n\t// incoming pod labels, those key-value labels are ANDed with labelSelector\n\t// to select the group of existing pods over which spreading will be calculated\n\t// for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector.\n\t// MatchLabelKeys cannot be set when LabelSelector isn't set.\n\t// Keys that don't exist in the incoming pod labels will\n\t// be ignored. A null or empty list means only match against labelSelector.\n\t//\n\t// This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).\n\t// +listType=atomic\n\t// +optional\n\tMatchLabelKeys []string `json:\"matchLabelKeys,omitempty\" protobuf:\"bytes,8,opt,name=matchLabelKeys\"`\n}\n\nconst (\n\t// The default value for enableServiceLinks attribute.\n\tDefaultEnableServiceLinks = true\n)\n\n// HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the\n// pod's hosts file.\ntype HostAlias struct {\n\t// IP address of the host file entry.\n\t// +required\n\tIP string `json:\"ip\" protobuf:\"bytes,1,opt,name=ip\"`\n\t// Hostnames for the above IP address.\n\t// +listType=atomic\n\tHostnames []string `json:\"hostnames,omitempty\" protobuf:\"bytes,2,rep,name=hostnames\"`\n}\n\n// PodFSGroupChangePolicy holds policies that will be used for applying fsGroup to a volume\n// when volume is mounted.\n// +enum\ntype PodFSGroupChangePolicy string\n\nconst (\n\t// FSGroupChangeOnRootMismatch indicates that volume's ownership and permissions will be changed\n\t// only when permission and ownership of root directory does not match with expected\n\t// permissions on the volume. This can help shorten the time it takes to change\n\t// ownership and permissions of a volume.\n\tFSGroupChangeOnRootMismatch PodFSGroupChangePolicy = \"OnRootMismatch\"\n\t// FSGroupChangeAlways indicates that volume's ownership and permissions\n\t// should always be changed whenever volume is mounted inside a Pod. This the default\n\t// behavior.\n\tFSGroupChangeAlways PodFSGroupChangePolicy = \"Always\"\n)\n\n// SupplementalGroupsPolicy defines how supplemental groups\n// of the first container processes are calculated.\n// +enum\ntype SupplementalGroupsPolicy string\n\nconst (\n\t// SupplementalGroupsPolicyMerge means that the container's provided\n\t// SupplementalGroups and FsGroup (specified in SecurityContext) will be\n\t// merged with the primary user's groups as defined in the container image\n\t// (in /etc/group).\n\tSupplementalGroupsPolicyMerge SupplementalGroupsPolicy = \"Merge\"\n\t// SupplementalGroupsPolicyStrict means that the container's provided\n\t// SupplementalGroups and FsGroup (specified in SecurityContext) will be\n\t// used instead of any groups defined in the container image.\n\tSupplementalGroupsPolicyStrict SupplementalGroupsPolicy = \"Strict\"\n)\n\n// PodSELinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod.\ntype PodSELinuxChangePolicy string\n\nconst (\n\t// Recursive relabeling of all Pod volumes by the container runtime.\n\t// This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node.\n\tSELinuxChangePolicyRecursive PodSELinuxChangePolicy = \"Recursive\"\n\t// MountOption mounts all eligible Pod volumes with `-o context` mount option.\n\t// This requires all Pods that share the same volume to use the same SELinux label.\n\t// It is not possible to share the same volume among privileged and unprivileged Pods.\n\t// Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes\n\t// whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their\n\t// CSIDriver instance. Other volumes are always re-labelled recursively.\n\tSELinuxChangePolicyMountOption PodSELinuxChangePolicy = \"MountOption\"\n)\n\n// PodSecurityContext holds pod-level security attributes and common container settings.\n// Some fields are also present in container.securityContext.  Field values of\n// container.securityContext take precedence over field values of PodSecurityContext.\ntype PodSecurityContext struct {\n\t// The SELinux context to be applied to all containers.\n\t// If unspecified, the container runtime will allocate a random SELinux context for each\n\t// container.  May also be set in SecurityContext.  If set in\n\t// both SecurityContext and PodSecurityContext, the value specified in SecurityContext\n\t// takes precedence for that container.\n\t// Note that this field cannot be set when spec.os.name is windows.\n\t// +optional\n\tSELinuxOptions *SELinuxOptions `json:\"seLinuxOptions,omitempty\" protobuf:\"bytes,1,opt,name=seLinuxOptions\"`\n\t// The Windows specific settings applied to all containers.\n\t// If unspecified, the options within a container's SecurityContext will be used.\n\t// If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\n\t// Note that this field cannot be set when spec.os.name is linux.\n\t// +optional\n\tWindowsOptions *WindowsSecurityContextOptions `json:\"windowsOptions,omitempty\" protobuf:\"bytes,8,opt,name=windowsOptions\"`\n\t// The UID to run the entrypoint of the container process.\n\t// Defaults to user specified in image metadata if unspecified.\n\t// May also be set in SecurityContext.  If set in both SecurityContext and\n\t// PodSecurityContext, the value specified in SecurityContext takes precedence\n\t// for that container.\n\t// Note that this field cannot be set when spec.os.name is windows.\n\t// +optional\n\tRunAsUser *int64 `json:\"runAsUser,omitempty\" protobuf:\"varint,2,opt,name=runAsUser\"`\n\t// The GID to run the entrypoint of the container process.\n\t// Uses runtime default if unset.\n\t// May also be set in SecurityContext.  If set in both SecurityContext and\n\t// PodSecurityContext, the value specified in SecurityContext takes precedence\n\t// for that container.\n\t// Note that this field cannot be set when spec.os.name is windows.\n\t// +optional\n\tRunAsGroup *int64 `json:\"runAsGroup,omitempty\" protobuf:\"varint,6,opt,name=runAsGroup\"`\n\t// Indicates that the container must run as a non-root user.\n\t// If true, the Kubelet will validate the image at runtime to ensure that it\n\t// does not run as UID 0 (root) and fail to start the container if it does.\n\t// If unset or false, no such validation will be performed.\n\t// May also be set in SecurityContext.  If set in both SecurityContext and\n\t// PodSecurityContext, the value specified in SecurityContext takes precedence.\n\t// +optional\n\tRunAsNonRoot *bool `json:\"runAsNonRoot,omitempty\" protobuf:\"varint,3,opt,name=runAsNonRoot\"`\n\t// A list of groups applied to the first process run in each container, in\n\t// addition to the container's primary GID and fsGroup (if specified).  If\n\t// the SupplementalGroupsPolicy feature is enabled, the\n\t// supplementalGroupsPolicy field determines whether these are in addition\n\t// to or instead of any group memberships defined in the container image.\n\t// If unspecified, no additional groups are added, though group memberships\n\t// defined in the container image may still be used, depending on the\n\t// supplementalGroupsPolicy field.\n\t// Note that this field cannot be set when spec.os.name is windows.\n\t// +optional\n\t// +listType=atomic\n\tSupplementalGroups []int64 `json:\"supplementalGroups,omitempty\" protobuf:\"varint,4,rep,name=supplementalGroups\"`\n\t// Defines how supplemental groups of the first container processes are calculated.\n\t// Valid values are \"Merge\" and \"Strict\". If not specified, \"Merge\" is used.\n\t// (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled\n\t// and the container runtime must implement support for this feature.\n\t// Note that this field cannot be set when spec.os.name is windows.\n\t// TODO: update the default value to \"Merge\" when spec.os.name is not windows in v1.34\n\t// +featureGate=SupplementalGroupsPolicy\n\t// +optional\n\tSupplementalGroupsPolicy *SupplementalGroupsPolicy `json:\"supplementalGroupsPolicy,omitempty\" protobuf:\"bytes,12,opt,name=supplementalGroupsPolicy\"`\n\t// A special supplemental group that applies to all containers in a pod.\n\t// Some volume types allow the Kubelet to change the ownership of that volume\n\t// to be owned by the pod:\n\t//\n\t// 1. The owning GID will be the FSGroup\n\t// 2. The setgid bit is set (new files created in the volume will be owned by FSGroup)\n\t// 3. The permission bits are OR'd with rw-rw----\n\t//\n\t// If unset, the Kubelet will not modify the ownership and permissions of any volume.\n\t// Note that this field cannot be set when spec.os.name is windows.\n\t// +optional\n\tFSGroup *int64 `json:\"fsGroup,omitempty\" protobuf:\"varint,5,opt,name=fsGroup\"`\n\t// Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported\n\t// sysctls (by the container runtime) might fail to launch.\n\t// Note that this field cannot be set when spec.os.name is windows.\n\t// +optional\n\t// +listType=atomic\n\tSysctls []Sysctl `json:\"sysctls,omitempty\" protobuf:\"bytes,7,rep,name=sysctls\"`\n\t// fsGroupChangePolicy defines behavior of changing ownership and permission of the volume\n\t// before being exposed inside Pod. This field will only apply to\n\t// volume types which support fsGroup based ownership(and permissions).\n\t// It will have no effect on ephemeral volume types such as: secret, configmaps\n\t// and emptydir.\n\t// Valid values are \"OnRootMismatch\" and \"Always\". If not specified, \"Always\" is used.\n\t// Note that this field cannot be set when spec.os.name is windows.\n\t// +optional\n\tFSGroupChangePolicy *PodFSGroupChangePolicy `json:\"fsGroupChangePolicy,omitempty\" protobuf:\"bytes,9,opt,name=fsGroupChangePolicy\"`\n\t// The seccomp options to use by the containers in this pod.\n\t// Note that this field cannot be set when spec.os.name is windows.\n\t// +optional\n\tSeccompProfile *SeccompProfile `json:\"seccompProfile,omitempty\" protobuf:\"bytes,10,opt,name=seccompProfile\"`\n\t// appArmorProfile is the AppArmor options to use by the containers in this pod.\n\t// Note that this field cannot be set when spec.os.name is windows.\n\t// +optional\n\tAppArmorProfile *AppArmorProfile `json:\"appArmorProfile,omitempty\" protobuf:\"bytes,11,opt,name=appArmorProfile\"`\n\t// seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod.\n\t// It has no effect on nodes that do not support SELinux or to volumes does not support SELinux.\n\t// Valid values are \"MountOption\" and \"Recursive\".\n\t//\n\t// \"Recursive\" means relabeling of all files on all Pod volumes by the container runtime.\n\t// This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node.\n\t//\n\t// \"MountOption\" mounts all eligible Pod volumes with `-o context` mount option.\n\t// This requires all Pods that share the same volume to use the same SELinux label.\n\t// It is not possible to share the same volume among privileged and unprivileged Pods.\n\t// Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes\n\t// whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their\n\t// CSIDriver instance. Other volumes are always re-labelled recursively.\n\t// \"MountOption\" value is allowed only when SELinuxMount feature gate is enabled.\n\t//\n\t// If not specified and SELinuxMount feature gate is enabled, \"MountOption\" is used.\n\t// If not specified and SELinuxMount feature gate is disabled, \"MountOption\" is used for ReadWriteOncePod volumes\n\t// and \"Recursive\" for all other volumes.\n\t//\n\t// This field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers.\n\t//\n\t// All Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state.\n\t// Note that this field cannot be set when spec.os.name is windows.\n\t// +featureGate=SELinuxChangePolicy\n\t// +optional\n\tSELinuxChangePolicy *PodSELinuxChangePolicy `json:\"seLinuxChangePolicy,omitempty\" protobuf:\"bytes,13,opt,name=seLinuxChangePolicy\"`\n}\n\n// SeccompProfile defines a pod/container's seccomp profile settings.\n// Only one profile source may be set.\n// +union\ntype SeccompProfile struct {\n\t// type indicates which kind of seccomp profile will be applied.\n\t// Valid options are:\n\t//\n\t// Localhost - a profile defined in a file on the node should be used.\n\t// RuntimeDefault - the container runtime default profile should be used.\n\t// Unconfined - no profile should be applied.\n\t// +unionDiscriminator\n\tType SeccompProfileType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=SeccompProfileType\"`\n\t// localhostProfile indicates a profile defined in a file on the node should be used.\n\t// The profile must be preconfigured on the node to work.\n\t// Must be a descending path, relative to the kubelet's configured seccomp profile location.\n\t// Must be set if type is \"Localhost\". Must NOT be set for any other type.\n\t// +optional\n\tLocalhostProfile *string `json:\"localhostProfile,omitempty\" protobuf:\"bytes,2,opt,name=localhostProfile\"`\n}\n\n// SeccompProfileType defines the supported seccomp profile types.\n// +enum\ntype SeccompProfileType string\n\nconst (\n\t// SeccompProfileTypeUnconfined indicates no seccomp profile is applied (A.K.A. unconfined).\n\tSeccompProfileTypeUnconfined SeccompProfileType = \"Unconfined\"\n\t// SeccompProfileTypeRuntimeDefault represents the default container runtime seccomp profile.\n\tSeccompProfileTypeRuntimeDefault SeccompProfileType = \"RuntimeDefault\"\n\t// SeccompProfileTypeLocalhost indicates a profile defined in a file on the node should be used.\n\t// The file's location relative to <kubelet-root-dir>/seccomp.\n\tSeccompProfileTypeLocalhost SeccompProfileType = \"Localhost\"\n)\n\n// AppArmorProfile defines a pod or container's AppArmor settings.\n// +union\ntype AppArmorProfile struct {\n\t// type indicates which kind of AppArmor profile will be applied.\n\t// Valid options are:\n\t//   Localhost - a profile pre-loaded on the node.\n\t//   RuntimeDefault - the container runtime's default profile.\n\t//   Unconfined - no AppArmor enforcement.\n\t// +unionDiscriminator\n\tType AppArmorProfileType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=AppArmorProfileType\"`\n\n\t// localhostProfile indicates a profile loaded on the node that should be used.\n\t// The profile must be preconfigured on the node to work.\n\t// Must match the loaded name of the profile.\n\t// Must be set if and only if type is \"Localhost\".\n\t// +optional\n\tLocalhostProfile *string `json:\"localhostProfile,omitempty\" protobuf:\"bytes,2,opt,name=localhostProfile\"`\n}\n\n// +enum\ntype AppArmorProfileType string\n\nconst (\n\t// AppArmorProfileTypeUnconfined indicates that no AppArmor profile should be enforced.\n\tAppArmorProfileTypeUnconfined AppArmorProfileType = \"Unconfined\"\n\t// AppArmorProfileTypeRuntimeDefault indicates that the container runtime's default AppArmor\n\t// profile should be used.\n\tAppArmorProfileTypeRuntimeDefault AppArmorProfileType = \"RuntimeDefault\"\n\t// AppArmorProfileTypeLocalhost indicates that a profile pre-loaded on the node should be used.\n\tAppArmorProfileTypeLocalhost AppArmorProfileType = \"Localhost\"\n)\n\n// PodQOSClass defines the supported qos classes of Pods.\n// +enum\ntype PodQOSClass string\n\nconst (\n\t// PodQOSGuaranteed is the Guaranteed qos class.\n\tPodQOSGuaranteed PodQOSClass = \"Guaranteed\"\n\t// PodQOSBurstable is the Burstable qos class.\n\tPodQOSBurstable PodQOSClass = \"Burstable\"\n\t// PodQOSBestEffort is the BestEffort qos class.\n\tPodQOSBestEffort PodQOSClass = \"BestEffort\"\n)\n\n// PodDNSConfig defines the DNS parameters of a pod in addition to\n// those generated from DNSPolicy.\ntype PodDNSConfig struct {\n\t// A list of DNS name server IP addresses.\n\t// This will be appended to the base nameservers generated from DNSPolicy.\n\t// Duplicated nameservers will be removed.\n\t// +optional\n\t// +listType=atomic\n\tNameservers []string `json:\"nameservers,omitempty\" protobuf:\"bytes,1,rep,name=nameservers\"`\n\t// A list of DNS search domains for host-name lookup.\n\t// This will be appended to the base search paths generated from DNSPolicy.\n\t// Duplicated search paths will be removed.\n\t// +optional\n\t// +listType=atomic\n\tSearches []string `json:\"searches,omitempty\" protobuf:\"bytes,2,rep,name=searches\"`\n\t// A list of DNS resolver options.\n\t// This will be merged with the base options generated from DNSPolicy.\n\t// Duplicated entries will be removed. Resolution options given in Options\n\t// will override those that appear in the base DNSPolicy.\n\t// +optional\n\t// +listType=atomic\n\tOptions []PodDNSConfigOption `json:\"options,omitempty\" protobuf:\"bytes,3,rep,name=options\"`\n}\n\n// PodDNSConfigOption defines DNS resolver options of a pod.\ntype PodDNSConfigOption struct {\n\t// Name is this DNS resolver option's name.\n\t// Required.\n\tName string `json:\"name,omitempty\" protobuf:\"bytes,1,opt,name=name\"`\n\t// Value is this DNS resolver option's value.\n\t// +optional\n\tValue *string `json:\"value,omitempty\" protobuf:\"bytes,2,opt,name=value\"`\n}\n\n// PodIP represents a single IP address allocated to the pod.\ntype PodIP struct {\n\t// IP is the IP address assigned to the pod\n\t// +required\n\tIP string `json:\"ip\" protobuf:\"bytes,1,opt,name=ip\"`\n}\n\n// HostIP represents a single IP address allocated to the host.\ntype HostIP struct {\n\t// IP is the IP address assigned to the host\n\t// +required\n\tIP string `json:\"ip\" protobuf:\"bytes,1,opt,name=ip\"`\n}\n\n// EphemeralContainerCommon is a copy of all fields in Container to be inlined in\n// EphemeralContainer. This separate type allows easy conversion from EphemeralContainer\n// to Container and allows separate documentation for the fields of EphemeralContainer.\n// When a new field is added to Container it must be added here as well.\ntype EphemeralContainerCommon struct {\n\t// Name of the ephemeral container specified as a DNS_LABEL.\n\t// This name must be unique among all containers, init containers and ephemeral containers.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\t// Container image name.\n\t// More info: https://kubernetes.io/docs/concepts/containers/images\n\tImage string `json:\"image,omitempty\" protobuf:\"bytes,2,opt,name=image\"`\n\t// Entrypoint array. Not executed within a shell.\n\t// The image's ENTRYPOINT is used if this is not provided.\n\t// Variable references $(VAR_NAME) are expanded using the container's environment. If a variable\n\t// cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\n\t// to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will\n\t// produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless\n\t// of whether the variable exists or not. Cannot be updated.\n\t// More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\n\t// +optional\n\t// +listType=atomic\n\tCommand []string `json:\"command,omitempty\" protobuf:\"bytes,3,rep,name=command\"`\n\t// Arguments to the entrypoint.\n\t// The image's CMD is used if this is not provided.\n\t// Variable references $(VAR_NAME) are expanded using the container's environment. If a variable\n\t// cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced\n\t// to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will\n\t// produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless\n\t// of whether the variable exists or not. Cannot be updated.\n\t// More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\n\t// +optional\n\t// +listType=atomic\n\tArgs []string `json:\"args,omitempty\" protobuf:\"bytes,4,rep,name=args\"`\n\t// Container's working directory.\n\t// If not specified, the container runtime's default will be used, which\n\t// might be configured in the container image.\n\t// Cannot be updated.\n\t// +optional\n\tWorkingDir string `json:\"workingDir,omitempty\" protobuf:\"bytes,5,opt,name=workingDir\"`\n\t// Ports are not allowed for ephemeral containers.\n\t// +optional\n\t// +patchMergeKey=containerPort\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=containerPort\n\t// +listMapKey=protocol\n\tPorts []ContainerPort `json:\"ports,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"containerPort\" protobuf:\"bytes,6,rep,name=ports\"`\n\t// List of sources to populate environment variables in the container.\n\t// The keys defined within a source must be a C_IDENTIFIER. All invalid keys\n\t// will be reported as an event when the container is starting. When a key exists in multiple\n\t// sources, the value associated with the last source will take precedence.\n\t// Values defined by an Env with a duplicate key will take precedence.\n\t// Cannot be updated.\n\t// +optional\n\t// +listType=atomic\n\tEnvFrom []EnvFromSource `json:\"envFrom,omitempty\" protobuf:\"bytes,19,rep,name=envFrom\"`\n\t// List of environment variables to set in the container.\n\t// Cannot be updated.\n\t// +optional\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=name\n\tEnv []EnvVar `json:\"env,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,7,rep,name=env\"`\n\t// Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources\n\t// already allocated to the pod.\n\t// +optional\n\tResources ResourceRequirements `json:\"resources,omitempty\" protobuf:\"bytes,8,opt,name=resources\"`\n\t// Resources resize policy for the container.\n\t// +featureGate=InPlacePodVerticalScaling\n\t// +optional\n\t// +listType=atomic\n\tResizePolicy []ContainerResizePolicy `json:\"resizePolicy,omitempty\" protobuf:\"bytes,23,rep,name=resizePolicy\"`\n\t// Restart policy for the container to manage the restart behavior of each\n\t// container within a pod.\n\t// This may only be set for init containers. You cannot set this field on\n\t// ephemeral containers.\n\t// +featureGate=SidecarContainers\n\t// +optional\n\tRestartPolicy *ContainerRestartPolicy `json:\"restartPolicy,omitempty\" protobuf:\"bytes,24,opt,name=restartPolicy,casttype=ContainerRestartPolicy\"`\n\t// Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers.\n\t// Cannot be updated.\n\t// +optional\n\t// +patchMergeKey=mountPath\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=mountPath\n\tVolumeMounts []VolumeMount `json:\"volumeMounts,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"mountPath\" protobuf:\"bytes,9,rep,name=volumeMounts\"`\n\t// volumeDevices is the list of block devices to be used by the container.\n\t// +patchMergeKey=devicePath\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=devicePath\n\t// +optional\n\tVolumeDevices []VolumeDevice `json:\"volumeDevices,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"devicePath\" protobuf:\"bytes,21,rep,name=volumeDevices\"`\n\t// Probes are not allowed for ephemeral containers.\n\t// +optional\n\tLivenessProbe *Probe `json:\"livenessProbe,omitempty\" protobuf:\"bytes,10,opt,name=livenessProbe\"`\n\t// Probes are not allowed for ephemeral containers.\n\t// +optional\n\tReadinessProbe *Probe `json:\"readinessProbe,omitempty\" protobuf:\"bytes,11,opt,name=readinessProbe\"`\n\t// Probes are not allowed for ephemeral containers.\n\t// +optional\n\tStartupProbe *Probe `json:\"startupProbe,omitempty\" protobuf:\"bytes,22,opt,name=startupProbe\"`\n\t// Lifecycle is not allowed for ephemeral containers.\n\t// +optional\n\tLifecycle *Lifecycle `json:\"lifecycle,omitempty\" protobuf:\"bytes,12,opt,name=lifecycle\"`\n\t// Optional: Path at which the file to which the container's termination message\n\t// will be written is mounted into the container's filesystem.\n\t// Message written is intended to be brief final status, such as an assertion failure message.\n\t// Will be truncated by the node if greater than 4096 bytes. The total message length across\n\t// all containers will be limited to 12kb.\n\t// Defaults to /dev/termination-log.\n\t// Cannot be updated.\n\t// +optional\n\tTerminationMessagePath string `json:\"terminationMessagePath,omitempty\" protobuf:\"bytes,13,opt,name=terminationMessagePath\"`\n\t// Indicate how the termination message should be populated. File will use the contents of\n\t// terminationMessagePath to populate the container status message on both success and failure.\n\t// FallbackToLogsOnError will use the last chunk of container log output if the termination\n\t// message file is empty and the container exited with an error.\n\t// The log output is limited to 2048 bytes or 80 lines, whichever is smaller.\n\t// Defaults to File.\n\t// Cannot be updated.\n\t// +optional\n\tTerminationMessagePolicy TerminationMessagePolicy `json:\"terminationMessagePolicy,omitempty\" protobuf:\"bytes,20,opt,name=terminationMessagePolicy,casttype=TerminationMessagePolicy\"`\n\t// Image pull policy.\n\t// One of Always, Never, IfNotPresent.\n\t// Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.\n\t// Cannot be updated.\n\t// More info: https://kubernetes.io/docs/concepts/containers/images#updating-images\n\t// +optional\n\tImagePullPolicy PullPolicy `json:\"imagePullPolicy,omitempty\" protobuf:\"bytes,14,opt,name=imagePullPolicy,casttype=PullPolicy\"`\n\t// Optional: SecurityContext defines the security options the ephemeral container should be run with.\n\t// If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\n\t// +optional\n\tSecurityContext *SecurityContext `json:\"securityContext,omitempty\" protobuf:\"bytes,15,opt,name=securityContext\"`\n\n\t// Variables for interactive containers, these have very specialized use-cases (e.g. debugging)\n\t// and shouldn't be used for general purpose containers.\n\n\t// Whether this container should allocate a buffer for stdin in the container runtime. If this\n\t// is not set, reads from stdin in the container will always result in EOF.\n\t// Default is false.\n\t// +optional\n\tStdin bool `json:\"stdin,omitempty\" protobuf:\"varint,16,opt,name=stdin\"`\n\t// Whether the container runtime should close the stdin channel after it has been opened by\n\t// a single attach. When stdin is true the stdin stream will remain open across multiple attach\n\t// sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\n\t// first client attaches to stdin, and then remains open and accepts data until the client disconnects,\n\t// at which time stdin is closed and remains closed until the container is restarted. If this\n\t// flag is false, a container processes that reads from stdin will never receive an EOF.\n\t// Default is false\n\t// +optional\n\tStdinOnce bool `json:\"stdinOnce,omitempty\" protobuf:\"varint,17,opt,name=stdinOnce\"`\n\t// Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\n\t// Default is false.\n\t// +optional\n\tTTY bool `json:\"tty,omitempty\" protobuf:\"varint,18,opt,name=tty\"`\n}\n\n// EphemeralContainerCommon converts to Container. All fields must be kept in sync between\n// these two types.\nvar _ = Container(EphemeralContainerCommon{})\n\n// An EphemeralContainer is a temporary container that you may add to an existing Pod for\n// user-initiated activities such as debugging. Ephemeral containers have no resource or\n// scheduling guarantees, and they will not be restarted when they exit or when a Pod is\n// removed or restarted. The kubelet may evict a Pod if an ephemeral container causes the\n// Pod to exceed its resource allocation.\n//\n// To add an ephemeral container, use the ephemeralcontainers subresource of an existing\n// Pod. Ephemeral containers may not be removed or restarted.\ntype EphemeralContainer struct {\n\t// Ephemeral containers have all of the fields of Container, plus additional fields\n\t// specific to ephemeral containers. Fields in common with Container are in the\n\t// following inlined struct so than an EphemeralContainer may easily be converted\n\t// to a Container.\n\tEphemeralContainerCommon `json:\",inline\" protobuf:\"bytes,1,req\"`\n\n\t// If set, the name of the container from PodSpec that this ephemeral container targets.\n\t// The ephemeral container will be run in the namespaces (IPC, PID, etc) of this container.\n\t// If not set then the ephemeral container uses the namespaces configured in the Pod spec.\n\t//\n\t// The container runtime must implement support for this feature. If the runtime does not\n\t// support namespace targeting then the result of setting this field is undefined.\n\t// +optional\n\tTargetContainerName string `json:\"targetContainerName,omitempty\" protobuf:\"bytes,2,opt,name=targetContainerName\"`\n}\n\n// PodStatus represents information about the status of a pod. Status may trail the actual\n// state of a system, especially if the node that hosts the pod cannot contact the control\n// plane.\ntype PodStatus struct {\n\t// The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle.\n\t// The conditions array, the reason and message fields, and the individual container status\n\t// arrays contain more detail about the pod's status.\n\t// There are five possible phase values:\n\t//\n\t// Pending: The pod has been accepted by the Kubernetes system, but one or more of the\n\t// container images has not been created. This includes time before being scheduled as\n\t// well as time spent downloading images over the network, which could take a while.\n\t// Running: The pod has been bound to a node, and all of the containers have been created.\n\t// At least one container is still running, or is in the process of starting or restarting.\n\t// Succeeded: All containers in the pod have terminated in success, and will not be restarted.\n\t// Failed: All containers in the pod have terminated, and at least one container has\n\t// terminated in failure. The container either exited with non-zero status or was terminated\n\t// by the system.\n\t// Unknown: For some reason the state of the pod could not be obtained, typically due to an\n\t// error in communicating with the host of the pod.\n\t//\n\t// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase\n\t// +optional\n\tPhase PodPhase `json:\"phase,omitempty\" protobuf:\"bytes,1,opt,name=phase,casttype=PodPhase\"`\n\t// Current service state of pod.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=type\n\tConditions []PodCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,2,rep,name=conditions\"`\n\t// A human readable message indicating details about why the pod is in this condition.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,3,opt,name=message\"`\n\t// A brief CamelCase message indicating details about why the pod is in this state.\n\t// e.g. 'Evicted'\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// nominatedNodeName is set only when this pod preempts other pods on the node, but it cannot be\n\t// scheduled right away as preemption victims receive their graceful termination periods.\n\t// This field does not guarantee that the pod will be scheduled on this node. Scheduler may decide\n\t// to place the pod elsewhere if other nodes become available sooner. Scheduler may also decide to\n\t// give the resources on this node to a higher priority pod that is created after preemption.\n\t// As a result, this field may be different than PodSpec.nodeName when the pod is\n\t// scheduled.\n\t// +optional\n\tNominatedNodeName string `json:\"nominatedNodeName,omitempty\" protobuf:\"bytes,11,opt,name=nominatedNodeName\"`\n\n\t// hostIP holds the IP address of the host to which the pod is assigned. Empty if the pod has not started yet.\n\t// A pod can be assigned to a node that has a problem in kubelet which in turns mean that HostIP will\n\t// not be updated even if there is a node is assigned to pod\n\t// +optional\n\tHostIP string `json:\"hostIP,omitempty\" protobuf:\"bytes,5,opt,name=hostIP\"`\n\n\t// hostIPs holds the IP addresses allocated to the host. If this field is specified, the first entry must\n\t// match the hostIP field. This list is empty if the pod has not started yet.\n\t// A pod can be assigned to a node that has a problem in kubelet which in turns means that HostIPs will\n\t// not be updated even if there is a node is assigned to this pod.\n\t// +optional\n\t// +patchStrategy=merge\n\t// +patchMergeKey=ip\n\t// +listType=atomic\n\tHostIPs []HostIP `json:\"hostIPs,omitempty\" protobuf:\"bytes,16,rep,name=hostIPs\" patchStrategy:\"merge\" patchMergeKey:\"ip\"`\n\n\t// podIP address allocated to the pod. Routable at least within the cluster.\n\t// Empty if not yet allocated.\n\t// +optional\n\tPodIP string `json:\"podIP,omitempty\" protobuf:\"bytes,6,opt,name=podIP\"`\n\n\t// podIPs holds the IP addresses allocated to the pod. If this field is specified, the 0th entry must\n\t// match the podIP field. Pods may be allocated at most 1 value for each of IPv4 and IPv6. This list\n\t// is empty if no IPs have been allocated yet.\n\t// +optional\n\t// +patchStrategy=merge\n\t// +patchMergeKey=ip\n\t// +listType=map\n\t// +listMapKey=ip\n\tPodIPs []PodIP `json:\"podIPs,omitempty\" protobuf:\"bytes,12,rep,name=podIPs\" patchStrategy:\"merge\" patchMergeKey:\"ip\"`\n\n\t// RFC 3339 date and time at which the object was acknowledged by the Kubelet.\n\t// This is before the Kubelet pulled the container image(s) for the pod.\n\t// +optional\n\tStartTime *metav1.Time `json:\"startTime,omitempty\" protobuf:\"bytes,7,opt,name=startTime\"`\n\n\t// Statuses of init containers in this pod. The most recent successful non-restartable\n\t// init container will have ready = true, the most recently started container will have\n\t// startTime set.\n\t// Each init container in the pod should have at most one status in this list,\n\t// and all statuses should be for containers in the pod.\n\t// However this is not enforced.\n\t// If a status for a non-existent container is present in the list, or the list has duplicate names,\n\t// the behavior of various Kubernetes components is not defined and those statuses might be\n\t// ignored.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-and-container-status\n\t// +listType=atomic\n\tInitContainerStatuses []ContainerStatus `json:\"initContainerStatuses,omitempty\" protobuf:\"bytes,10,rep,name=initContainerStatuses\"`\n\n\t// Statuses of containers in this pod.\n\t// Each container in the pod should have at most one status in this list,\n\t// and all statuses should be for containers in the pod.\n\t// However this is not enforced.\n\t// If a status for a non-existent container is present in the list, or the list has duplicate names,\n\t// the behavior of various Kubernetes components is not defined and those statuses might be\n\t// ignored.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status\n\t// +optional\n\t// +listType=atomic\n\tContainerStatuses []ContainerStatus `json:\"containerStatuses,omitempty\" protobuf:\"bytes,8,rep,name=containerStatuses\"`\n\n\t// The Quality of Service (QOS) classification assigned to the pod based on resource requirements\n\t// See PodQOSClass type for available QOS classes\n\t// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-qos/#quality-of-service-classes\n\t// +optional\n\tQOSClass PodQOSClass `json:\"qosClass,omitempty\" protobuf:\"bytes,9,rep,name=qosClass\"`\n\n\t// Statuses for any ephemeral containers that have run in this pod.\n\t// Each ephemeral container in the pod should have at most one status in this list,\n\t// and all statuses should be for containers in the pod.\n\t// However this is not enforced.\n\t// If a status for a non-existent container is present in the list, or the list has duplicate names,\n\t// the behavior of various Kubernetes components is not defined and those statuses might be\n\t// ignored.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status\n\t// +optional\n\t// +listType=atomic\n\tEphemeralContainerStatuses []ContainerStatus `json:\"ephemeralContainerStatuses,omitempty\" protobuf:\"bytes,13,rep,name=ephemeralContainerStatuses\"`\n\n\t// Status of resources resize desired for pod's containers.\n\t// It is empty if no resources resize is pending.\n\t// Any changes to container resources will automatically set this to \"Proposed\"\n\t// +featureGate=InPlacePodVerticalScaling\n\t// +optional\n\tResize PodResizeStatus `json:\"resize,omitempty\" protobuf:\"bytes,14,opt,name=resize,casttype=PodResizeStatus\"`\n\n\t// Status of resource claims.\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge,retainKeys\n\t// +listType=map\n\t// +listMapKey=name\n\t// +featureGate=DynamicResourceAllocation\n\t// +optional\n\tResourceClaimStatuses []PodResourceClaimStatus `json:\"resourceClaimStatuses,omitempty\" patchStrategy:\"merge,retainKeys\" patchMergeKey:\"name\" protobuf:\"bytes,15,rep,name=resourceClaimStatuses\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.0\n\n// PodStatusResult is a wrapper for PodStatus returned by kubelet that can be encode/decoded\ntype PodStatusResult struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// Most recently observed status of the pod.\n\t// This data may not be up to date.\n\t// Populated by the system.\n\t// Read-only.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus PodStatus `json:\"status,omitempty\" protobuf:\"bytes,2,opt,name=status\"`\n}\n\n// +genclient\n// +genclient:method=UpdateEphemeralContainers,verb=update,subresource=ephemeralcontainers\n// +genclient:method=UpdateResize,verb=update,subresource=resize\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.0\n\n// Pod is a collection of containers that can run on a host. This resource is created\n// by clients and scheduled onto hosts.\ntype Pod struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Specification of the desired behavior of the pod.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec PodSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Most recently observed status of the pod.\n\t// This data may not be up to date.\n\t// Populated by the system.\n\t// Read-only.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus PodStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.0\n\n// PodList is a list of Pods.\ntype PodList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// List of pods.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md\n\tItems []Pod `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// PodTemplateSpec describes the data a pod should have when created from a template\ntype PodTemplateSpec struct {\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Specification of the desired behavior of the pod.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec PodSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.0\n\n// PodTemplate describes a template for creating copies of a predefined pod.\ntype PodTemplate struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Template defines the pods that will be created from this pod template.\n\t// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tTemplate PodTemplateSpec `json:\"template,omitempty\" protobuf:\"bytes,2,opt,name=template\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.0\n\n// PodTemplateList is a list of PodTemplates.\ntype PodTemplateList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// List of pod templates\n\tItems []PodTemplate `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// ReplicationControllerSpec is the specification of a replication controller.\ntype ReplicationControllerSpec struct {\n\t// Replicas is the number of desired replicas.\n\t// This is a pointer to distinguish between explicit zero and unspecified.\n\t// Defaults to 1.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller\n\t// +optional\n\tReplicas *int32 `json:\"replicas,omitempty\" protobuf:\"varint,1,opt,name=replicas\"`\n\n\t// Minimum number of seconds for which a newly created pod should be ready\n\t// without any of its container crashing, for it to be considered available.\n\t// Defaults to 0 (pod will be considered available as soon as it is ready)\n\t// +optional\n\tMinReadySeconds int32 `json:\"minReadySeconds,omitempty\" protobuf:\"varint,4,opt,name=minReadySeconds\"`\n\n\t// Selector is a label query over pods that should match the Replicas count.\n\t// If Selector is empty, it is defaulted to the labels present on the Pod template.\n\t// Label keys and values that must match in order to be controlled by this replication\n\t// controller, if empty defaulted to labels on Pod template.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n\t// +optional\n\t// +mapType=atomic\n\tSelector map[string]string `json:\"selector,omitempty\" protobuf:\"bytes,2,rep,name=selector\"`\n\n\t// TemplateRef is a reference to an object that describes the pod that will be created if\n\t// insufficient replicas are detected.\n\t// Reference to an object that describes the pod that will be created if insufficient replicas are detected.\n\t// +optional\n\t// TemplateRef *ObjectReference `json:\"templateRef,omitempty\"`\n\n\t// Template is the object that describes the pod that will be created if\n\t// insufficient replicas are detected. This takes precedence over a TemplateRef.\n\t// The only allowed template.spec.restartPolicy value is \"Always\".\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\n\t// +optional\n\tTemplate *PodTemplateSpec `json:\"template,omitempty\" protobuf:\"bytes,3,opt,name=template\"`\n}\n\n// ReplicationControllerStatus represents the current status of a replication\n// controller.\ntype ReplicationControllerStatus struct {\n\t// Replicas is the most recently observed number of replicas.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller\n\tReplicas int32 `json:\"replicas\" protobuf:\"varint,1,opt,name=replicas\"`\n\n\t// The number of pods that have labels matching the labels of the pod template of the replication controller.\n\t// +optional\n\tFullyLabeledReplicas int32 `json:\"fullyLabeledReplicas,omitempty\" protobuf:\"varint,2,opt,name=fullyLabeledReplicas\"`\n\n\t// The number of ready replicas for this replication controller.\n\t// +optional\n\tReadyReplicas int32 `json:\"readyReplicas,omitempty\" protobuf:\"varint,4,opt,name=readyReplicas\"`\n\n\t// The number of available replicas (ready for at least minReadySeconds) for this replication controller.\n\t// +optional\n\tAvailableReplicas int32 `json:\"availableReplicas,omitempty\" protobuf:\"varint,5,opt,name=availableReplicas\"`\n\n\t// ObservedGeneration reflects the generation of the most recently observed replication controller.\n\t// +optional\n\tObservedGeneration int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,3,opt,name=observedGeneration\"`\n\n\t// Represents the latest available observations of a replication controller's current state.\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=type\n\tConditions []ReplicationControllerCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,6,rep,name=conditions\"`\n}\n\ntype ReplicationControllerConditionType string\n\n// These are valid conditions of a replication controller.\nconst (\n\t// ReplicationControllerReplicaFailure is added in a replication controller when one of its pods\n\t// fails to be created due to insufficient quota, limit ranges, pod security policy, node selectors,\n\t// etc. or deleted due to kubelet being down or finalizers are failing.\n\tReplicationControllerReplicaFailure ReplicationControllerConditionType = \"ReplicaFailure\"\n)\n\n// ReplicationControllerCondition describes the state of a replication controller at a certain point.\ntype ReplicationControllerCondition struct {\n\t// Type of replication controller condition.\n\tType ReplicationControllerConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=ReplicationControllerConditionType\"`\n\t// Status of the condition, one of True, False, Unknown.\n\tStatus ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status,casttype=ConditionStatus\"`\n\t// The last time the condition transitioned from one status to another.\n\t// +optional\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\t// The reason for the condition's last transition.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// A human readable message indicating details about the transition.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// +genclient\n// +genclient:method=GetScale,verb=get,subresource=scale,result=k8s.io/api/autoscaling/v1.Scale\n// +genclient:method=UpdateScale,verb=update,subresource=scale,input=k8s.io/api/autoscaling/v1.Scale,result=k8s.io/api/autoscaling/v1.Scale\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.0\n\n// ReplicationController represents the configuration of a replication controller.\ntype ReplicationController struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// If the Labels of a ReplicationController are empty, they are defaulted to\n\t// be the same as the Pod(s) that the replication controller manages.\n\t// Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec defines the specification of the desired behavior of the replication controller.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec ReplicationControllerSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status is the most recently observed status of the replication controller.\n\t// This data may be out of date by some window of time.\n\t// Populated by the system.\n\t// Read-only.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus ReplicationControllerStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.0\n\n// ReplicationControllerList is a collection of replication controllers.\ntype ReplicationControllerList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// List of replication controllers.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller\n\tItems []ReplicationController `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// Session Affinity Type string\n// +enum\ntype ServiceAffinity string\n\nconst (\n\t// ServiceAffinityClientIP is the Client IP based.\n\tServiceAffinityClientIP ServiceAffinity = \"ClientIP\"\n\n\t// ServiceAffinityNone - no session affinity.\n\tServiceAffinityNone ServiceAffinity = \"None\"\n)\n\nconst DefaultClientIPServiceAffinitySeconds int32 = 10800\n\n// SessionAffinityConfig represents the configurations of session affinity.\ntype SessionAffinityConfig struct {\n\t// clientIP contains the configurations of Client IP based session affinity.\n\t// +optional\n\tClientIP *ClientIPConfig `json:\"clientIP,omitempty\" protobuf:\"bytes,1,opt,name=clientIP\"`\n}\n\n// ClientIPConfig represents the configurations of Client IP based session affinity.\ntype ClientIPConfig struct {\n\t// timeoutSeconds specifies the seconds of ClientIP type session sticky time.\n\t// The value must be >0 && <=86400(for 1 day) if ServiceAffinity == \"ClientIP\".\n\t// Default value is 10800(for 3 hours).\n\t// +optional\n\tTimeoutSeconds *int32 `json:\"timeoutSeconds,omitempty\" protobuf:\"varint,1,opt,name=timeoutSeconds\"`\n}\n\n// Service Type string describes ingress methods for a service\n// +enum\ntype ServiceType string\n\nconst (\n\t// ServiceTypeClusterIP means a service will only be accessible inside the\n\t// cluster, via the cluster IP.\n\tServiceTypeClusterIP ServiceType = \"ClusterIP\"\n\n\t// ServiceTypeNodePort means a service will be exposed on one port of\n\t// every node, in addition to 'ClusterIP' type.\n\tServiceTypeNodePort ServiceType = \"NodePort\"\n\n\t// ServiceTypeLoadBalancer means a service will be exposed via an\n\t// external load balancer (if the cloud provider supports it), in addition\n\t// to 'NodePort' type.\n\tServiceTypeLoadBalancer ServiceType = \"LoadBalancer\"\n\n\t// ServiceTypeExternalName means a service consists of only a reference to\n\t// an external name that kubedns or equivalent will return as a CNAME\n\t// record, with no exposing or proxying of any pods involved.\n\tServiceTypeExternalName ServiceType = \"ExternalName\"\n)\n\n// ServiceInternalTrafficPolicy describes how nodes distribute service traffic they\n// receive on the ClusterIP.\n// +enum\ntype ServiceInternalTrafficPolicy string\n\nconst (\n\t// ServiceInternalTrafficPolicyCluster routes traffic to all endpoints.\n\tServiceInternalTrafficPolicyCluster ServiceInternalTrafficPolicy = \"Cluster\"\n\n\t// ServiceInternalTrafficPolicyLocal routes traffic only to endpoints on the same\n\t// node as the client pod (dropping the traffic if there are no local endpoints).\n\tServiceInternalTrafficPolicyLocal ServiceInternalTrafficPolicy = \"Local\"\n)\n\n// for backwards compat\n// +enum\ntype ServiceInternalTrafficPolicyType = ServiceInternalTrafficPolicy\n\n// ServiceExternalTrafficPolicy describes how nodes distribute service traffic they\n// receive on one of the Service's \"externally-facing\" addresses (NodePorts, ExternalIPs,\n// and LoadBalancer IPs.\n// +enum\ntype ServiceExternalTrafficPolicy string\n\nconst (\n\t// ServiceExternalTrafficPolicyCluster routes traffic to all endpoints.\n\tServiceExternalTrafficPolicyCluster ServiceExternalTrafficPolicy = \"Cluster\"\n\n\t// ServiceExternalTrafficPolicyLocal preserves the source IP of the traffic by\n\t// routing only to endpoints on the same node as the traffic was received on\n\t// (dropping the traffic if there are no local endpoints).\n\tServiceExternalTrafficPolicyLocal ServiceExternalTrafficPolicy = \"Local\"\n)\n\n// for backwards compat\n// +enum\ntype ServiceExternalTrafficPolicyType = ServiceExternalTrafficPolicy\n\nconst (\n\tServiceExternalTrafficPolicyTypeLocal   = ServiceExternalTrafficPolicyLocal\n\tServiceExternalTrafficPolicyTypeCluster = ServiceExternalTrafficPolicyCluster\n)\n\n// These are valid values for the TrafficDistribution field of a Service.\nconst (\n\t// Indicates a preference for routing traffic to endpoints that are\n\t// topologically proximate to the client. The interpretation of \"topologically\n\t// proximate\" may vary across implementations and could encompass endpoints\n\t// within the same node, rack, zone, or even region. Setting this value gives\n\t// implementations permission to make different tradeoffs, e.g. optimizing for\n\t// proximity rather than equal distribution of load. Users should not set this\n\t// value if such tradeoffs are not acceptable.\n\tServiceTrafficDistributionPreferClose = \"PreferClose\"\n)\n\n// These are the valid conditions of a service.\nconst (\n\t// LoadBalancerPortsError represents the condition of the requested ports\n\t// on the cloud load balancer instance.\n\tLoadBalancerPortsError = \"LoadBalancerPortsError\"\n\t// LoadBalancerPortsErrorReason reason in ServiceStatus condition LoadBalancerPortsError\n\t// means the LoadBalancer was not able to be configured correctly.\n\tLoadBalancerPortsErrorReason = \"LoadBalancerMixedProtocolNotSupported\"\n)\n\n// ServiceStatus represents the current status of a service.\ntype ServiceStatus struct {\n\t// LoadBalancer contains the current status of the load-balancer,\n\t// if one is present.\n\t// +optional\n\tLoadBalancer LoadBalancerStatus `json:\"loadBalancer,omitempty\" protobuf:\"bytes,1,opt,name=loadBalancer\"`\n\t// Current service state\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=type\n\tConditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,2,rep,name=conditions\"`\n}\n\n// LoadBalancerStatus represents the status of a load-balancer.\ntype LoadBalancerStatus struct {\n\t// Ingress is a list containing ingress points for the load-balancer.\n\t// Traffic intended for the service should be sent to these ingress points.\n\t// +optional\n\t// +listType=atomic\n\tIngress []LoadBalancerIngress `json:\"ingress,omitempty\" protobuf:\"bytes,1,rep,name=ingress\"`\n}\n\n// LoadBalancerIngress represents the status of a load-balancer ingress point:\n// traffic intended for the service should be sent to an ingress point.\ntype LoadBalancerIngress struct {\n\t// IP is set for load-balancer ingress points that are IP based\n\t// (typically GCE or OpenStack load-balancers)\n\t// +optional\n\tIP string `json:\"ip,omitempty\" protobuf:\"bytes,1,opt,name=ip\"`\n\n\t// Hostname is set for load-balancer ingress points that are DNS based\n\t// (typically AWS load-balancers)\n\t// +optional\n\tHostname string `json:\"hostname,omitempty\" protobuf:\"bytes,2,opt,name=hostname\"`\n\n\t// IPMode specifies how the load-balancer IP behaves, and may only be specified when the ip field is specified.\n\t// Setting this to \"VIP\" indicates that traffic is delivered to the node with\n\t// the destination set to the load-balancer's IP and port.\n\t// Setting this to \"Proxy\" indicates that traffic is delivered to the node or pod with\n\t// the destination set to the node's IP and node port or the pod's IP and port.\n\t// Service implementations may use this information to adjust traffic routing.\n\t// +optional\n\tIPMode *LoadBalancerIPMode `json:\"ipMode,omitempty\" protobuf:\"bytes,3,opt,name=ipMode\"`\n\n\t// Ports is a list of records of service ports\n\t// If used, every port defined in the service should have an entry in it\n\t// +listType=atomic\n\t// +optional\n\tPorts []PortStatus `json:\"ports,omitempty\" protobuf:\"bytes,4,rep,name=ports\"`\n}\n\n// IPFamily represents the IP Family (IPv4 or IPv6). This type is used\n// to express the family of an IP expressed by a type (e.g. service.spec.ipFamilies).\n// +enum\ntype IPFamily string\n\nconst (\n\t// IPv4Protocol indicates that this IP is IPv4 protocol\n\tIPv4Protocol IPFamily = \"IPv4\"\n\t// IPv6Protocol indicates that this IP is IPv6 protocol\n\tIPv6Protocol IPFamily = \"IPv6\"\n\t// IPFamilyUnknown indicates that this IP is unknown protocol\n\tIPFamilyUnknown IPFamily = \"\"\n)\n\n// IPFamilyPolicy represents the dual-stack-ness requested or required by a Service\n// +enum\ntype IPFamilyPolicy string\n\nconst (\n\t// IPFamilyPolicySingleStack indicates that this service is required to have a single IPFamily.\n\t// The IPFamily assigned is based on the default IPFamily used by the cluster\n\t// or as identified by service.spec.ipFamilies field\n\tIPFamilyPolicySingleStack IPFamilyPolicy = \"SingleStack\"\n\t// IPFamilyPolicyPreferDualStack indicates that this service prefers dual-stack when\n\t// the cluster is configured for dual-stack. If the cluster is not configured\n\t// for dual-stack the service will be assigned a single IPFamily. If the IPFamily is not\n\t// set in service.spec.ipFamilies then the service will be assigned the default IPFamily\n\t// configured on the cluster\n\tIPFamilyPolicyPreferDualStack IPFamilyPolicy = \"PreferDualStack\"\n\t// IPFamilyPolicyRequireDualStack indicates that this service requires dual-stack. Using\n\t// IPFamilyPolicyRequireDualStack on a single stack cluster will result in validation errors. The\n\t// IPFamilies (and their order) assigned  to this service is based on service.spec.ipFamilies. If\n\t// service.spec.ipFamilies was not provided then it will be assigned according to how they are\n\t// configured on the cluster. If service.spec.ipFamilies has only one entry then the alternative\n\t// IPFamily will be added by apiserver\n\tIPFamilyPolicyRequireDualStack IPFamilyPolicy = \"RequireDualStack\"\n)\n\n// for backwards compat\n// +enum\ntype IPFamilyPolicyType = IPFamilyPolicy\n\n// ServiceSpec describes the attributes that a user creates on a service.\ntype ServiceSpec struct {\n\t// The list of ports that are exposed by this service.\n\t// More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\n\t// +patchMergeKey=port\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=port\n\t// +listMapKey=protocol\n\tPorts []ServicePort `json:\"ports,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"port\" protobuf:\"bytes,1,rep,name=ports\"`\n\n\t// Route service traffic to pods with label keys and values matching this\n\t// selector. If empty or not present, the service is assumed to have an\n\t// external process managing its endpoints, which Kubernetes will not\n\t// modify. Only applies to types ClusterIP, NodePort, and LoadBalancer.\n\t// Ignored if type is ExternalName.\n\t// More info: https://kubernetes.io/docs/concepts/services-networking/service/\n\t// +optional\n\t// +mapType=atomic\n\tSelector map[string]string `json:\"selector,omitempty\" protobuf:\"bytes,2,rep,name=selector\"`\n\n\t// clusterIP is the IP address of the service and is usually assigned\n\t// randomly. If an address is specified manually, is in-range (as per\n\t// system configuration), and is not in use, it will be allocated to the\n\t// service; otherwise creation of the service will fail. This field may not\n\t// be changed through updates unless the type field is also being changed\n\t// to ExternalName (which requires this field to be blank) or the type\n\t// field is being changed from ExternalName (in which case this field may\n\t// optionally be specified, as describe above).  Valid values are \"None\",\n\t// empty string (\"\"), or a valid IP address. Setting this to \"None\" makes a\n\t// \"headless service\" (no virtual IP), which is useful when direct endpoint\n\t// connections are preferred and proxying is not required.  Only applies to\n\t// types ClusterIP, NodePort, and LoadBalancer. If this field is specified\n\t// when creating a Service of type ExternalName, creation will fail. This\n\t// field will be wiped when updating a Service to type ExternalName.\n\t// More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\n\t// +optional\n\tClusterIP string `json:\"clusterIP,omitempty\" protobuf:\"bytes,3,opt,name=clusterIP\"`\n\n\t// ClusterIPs is a list of IP addresses assigned to this service, and are\n\t// usually assigned randomly.  If an address is specified manually, is\n\t// in-range (as per system configuration), and is not in use, it will be\n\t// allocated to the service; otherwise creation of the service will fail.\n\t// This field may not be changed through updates unless the type field is\n\t// also being changed to ExternalName (which requires this field to be\n\t// empty) or the type field is being changed from ExternalName (in which\n\t// case this field may optionally be specified, as describe above).  Valid\n\t// values are \"None\", empty string (\"\"), or a valid IP address.  Setting\n\t// this to \"None\" makes a \"headless service\" (no virtual IP), which is\n\t// useful when direct endpoint connections are preferred and proxying is\n\t// not required.  Only applies to types ClusterIP, NodePort, and\n\t// LoadBalancer. If this field is specified when creating a Service of type\n\t// ExternalName, creation will fail. This field will be wiped when updating\n\t// a Service to type ExternalName.  If this field is not specified, it will\n\t// be initialized from the clusterIP field.  If this field is specified,\n\t// clients must ensure that clusterIPs[0] and clusterIP have the same\n\t// value.\n\t//\n\t// This field may hold a maximum of two entries (dual-stack IPs, in either order).\n\t// These IPs must correspond to the values of the ipFamilies field. Both\n\t// clusterIPs and ipFamilies are governed by the ipFamilyPolicy field.\n\t// More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\n\t// +listType=atomic\n\t// +optional\n\tClusterIPs []string `json:\"clusterIPs,omitempty\" protobuf:\"bytes,18,opt,name=clusterIPs\"`\n\n\t// type determines how the Service is exposed. Defaults to ClusterIP. Valid\n\t// options are ExternalName, ClusterIP, NodePort, and LoadBalancer.\n\t// \"ClusterIP\" allocates a cluster-internal IP address for load-balancing\n\t// to endpoints. Endpoints are determined by the selector or if that is not\n\t// specified, by manual construction of an Endpoints object or\n\t// EndpointSlice objects. If clusterIP is \"None\", no virtual IP is\n\t// allocated and the endpoints are published as a set of endpoints rather\n\t// than a virtual IP.\n\t// \"NodePort\" builds on ClusterIP and allocates a port on every node which\n\t// routes to the same endpoints as the clusterIP.\n\t// \"LoadBalancer\" builds on NodePort and creates an external load-balancer\n\t// (if supported in the current cloud) which routes to the same endpoints\n\t// as the clusterIP.\n\t// \"ExternalName\" aliases this service to the specified externalName.\n\t// Several other fields do not apply to ExternalName services.\n\t// More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types\n\t// +optional\n\tType ServiceType `json:\"type,omitempty\" protobuf:\"bytes,4,opt,name=type,casttype=ServiceType\"`\n\n\t// externalIPs is a list of IP addresses for which nodes in the cluster\n\t// will also accept traffic for this service.  These IPs are not managed by\n\t// Kubernetes.  The user is responsible for ensuring that traffic arrives\n\t// at a node with this IP.  A common example is external load-balancers\n\t// that are not part of the Kubernetes system.\n\t// +optional\n\t// +listType=atomic\n\tExternalIPs []string `json:\"externalIPs,omitempty\" protobuf:\"bytes,5,rep,name=externalIPs\"`\n\n\t// Supports \"ClientIP\" and \"None\". Used to maintain session affinity.\n\t// Enable client IP based session affinity.\n\t// Must be ClientIP or None.\n\t// Defaults to None.\n\t// More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\n\t// +optional\n\tSessionAffinity ServiceAffinity `json:\"sessionAffinity,omitempty\" protobuf:\"bytes,7,opt,name=sessionAffinity,casttype=ServiceAffinity\"`\n\n\t// Only applies to Service Type: LoadBalancer.\n\t// This feature depends on whether the underlying cloud-provider supports specifying\n\t// the loadBalancerIP when a load balancer is created.\n\t// This field will be ignored if the cloud-provider does not support the feature.\n\t// Deprecated: This field was under-specified and its meaning varies across implementations.\n\t// Using it is non-portable and it may not support dual-stack.\n\t// Users are encouraged to use implementation-specific annotations when available.\n\t// +optional\n\tLoadBalancerIP string `json:\"loadBalancerIP,omitempty\" protobuf:\"bytes,8,opt,name=loadBalancerIP\"`\n\n\t// If specified and supported by the platform, this will restrict traffic through the cloud-provider\n\t// load-balancer will be restricted to the specified client IPs. This field will be ignored if the\n\t// cloud-provider does not support the feature.\"\n\t// More info: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/\n\t// +optional\n\t// +listType=atomic\n\tLoadBalancerSourceRanges []string `json:\"loadBalancerSourceRanges,omitempty\" protobuf:\"bytes,9,opt,name=loadBalancerSourceRanges\"`\n\n\t// externalName is the external reference that discovery mechanisms will\n\t// return as an alias for this service (e.g. a DNS CNAME record). No\n\t// proxying will be involved.  Must be a lowercase RFC-1123 hostname\n\t// (https://tools.ietf.org/html/rfc1123) and requires `type` to be \"ExternalName\".\n\t// +optional\n\tExternalName string `json:\"externalName,omitempty\" protobuf:\"bytes,10,opt,name=externalName\"`\n\n\t// externalTrafficPolicy describes how nodes distribute service traffic they\n\t// receive on one of the Service's \"externally-facing\" addresses (NodePorts,\n\t// ExternalIPs, and LoadBalancer IPs). If set to \"Local\", the proxy will configure\n\t// the service in a way that assumes that external load balancers will take care\n\t// of balancing the service traffic between nodes, and so each node will deliver\n\t// traffic only to the node-local endpoints of the service, without masquerading\n\t// the client source IP. (Traffic mistakenly sent to a node with no endpoints will\n\t// be dropped.) The default value, \"Cluster\", uses the standard behavior of\n\t// routing to all endpoints evenly (possibly modified by topology and other\n\t// features). Note that traffic sent to an External IP or LoadBalancer IP from\n\t// within the cluster will always get \"Cluster\" semantics, but clients sending to\n\t// a NodePort from within the cluster may need to take traffic policy into account\n\t// when picking a node.\n\t// +optional\n\tExternalTrafficPolicy ServiceExternalTrafficPolicy `json:\"externalTrafficPolicy,omitempty\" protobuf:\"bytes,11,opt,name=externalTrafficPolicy\"`\n\n\t// healthCheckNodePort specifies the healthcheck nodePort for the service.\n\t// This only applies when type is set to LoadBalancer and\n\t// externalTrafficPolicy is set to Local. If a value is specified, is\n\t// in-range, and is not in use, it will be used.  If not specified, a value\n\t// will be automatically allocated.  External systems (e.g. load-balancers)\n\t// can use this port to determine if a given node holds endpoints for this\n\t// service or not.  If this field is specified when creating a Service\n\t// which does not need it, creation will fail. This field will be wiped\n\t// when updating a Service to no longer need it (e.g. changing type).\n\t// This field cannot be updated once set.\n\t// +optional\n\tHealthCheckNodePort int32 `json:\"healthCheckNodePort,omitempty\" protobuf:\"bytes,12,opt,name=healthCheckNodePort\"`\n\n\t// publishNotReadyAddresses indicates that any agent which deals with endpoints for this\n\t// Service should disregard any indications of ready/not-ready.\n\t// The primary use case for setting this field is for a StatefulSet's Headless Service to\n\t// propagate SRV DNS records for its Pods for the purpose of peer discovery.\n\t// The Kubernetes controllers that generate Endpoints and EndpointSlice resources for\n\t// Services interpret this to mean that all endpoints are considered \"ready\" even if the\n\t// Pods themselves are not. Agents which consume only Kubernetes generated endpoints\n\t// through the Endpoints or EndpointSlice resources can safely assume this behavior.\n\t// +optional\n\tPublishNotReadyAddresses bool `json:\"publishNotReadyAddresses,omitempty\" protobuf:\"varint,13,opt,name=publishNotReadyAddresses\"`\n\n\t// sessionAffinityConfig contains the configurations of session affinity.\n\t// +optional\n\tSessionAffinityConfig *SessionAffinityConfig `json:\"sessionAffinityConfig,omitempty\" protobuf:\"bytes,14,opt,name=sessionAffinityConfig\"`\n\n\t// TopologyKeys is tombstoned to show why 16 is reserved protobuf tag.\n\t// TopologyKeys []string `json:\"topologyKeys,omitempty\" protobuf:\"bytes,16,opt,name=topologyKeys\"`\n\n\t// IPFamily is tombstoned to show why 15 is a reserved protobuf tag.\n\t// IPFamily *IPFamily `json:\"ipFamily,omitempty\" protobuf:\"bytes,15,opt,name=ipFamily,Configcasttype=IPFamily\"`\n\n\t// IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this\n\t// service. This field is usually assigned automatically based on cluster\n\t// configuration and the ipFamilyPolicy field. If this field is specified\n\t// manually, the requested family is available in the cluster,\n\t// and ipFamilyPolicy allows it, it will be used; otherwise creation of\n\t// the service will fail. This field is conditionally mutable: it allows\n\t// for adding or removing a secondary IP family, but it does not allow\n\t// changing the primary IP family of the Service. Valid values are \"IPv4\"\n\t// and \"IPv6\".  This field only applies to Services of types ClusterIP,\n\t// NodePort, and LoadBalancer, and does apply to \"headless\" services.\n\t// This field will be wiped when updating a Service to type ExternalName.\n\t//\n\t// This field may hold a maximum of two entries (dual-stack families, in\n\t// either order).  These families must correspond to the values of the\n\t// clusterIPs field, if specified. Both clusterIPs and ipFamilies are\n\t// governed by the ipFamilyPolicy field.\n\t// +listType=atomic\n\t// +optional\n\tIPFamilies []IPFamily `json:\"ipFamilies,omitempty\" protobuf:\"bytes,19,opt,name=ipFamilies,casttype=IPFamily\"`\n\n\t// IPFamilyPolicy represents the dual-stack-ness requested or required by\n\t// this Service. If there is no value provided, then this field will be set\n\t// to SingleStack. Services can be \"SingleStack\" (a single IP family),\n\t// \"PreferDualStack\" (two IP families on dual-stack configured clusters or\n\t// a single IP family on single-stack clusters), or \"RequireDualStack\"\n\t// (two IP families on dual-stack configured clusters, otherwise fail). The\n\t// ipFamilies and clusterIPs fields depend on the value of this field. This\n\t// field will be wiped when updating a service to type ExternalName.\n\t// +optional\n\tIPFamilyPolicy *IPFamilyPolicy `json:\"ipFamilyPolicy,omitempty\" protobuf:\"bytes,17,opt,name=ipFamilyPolicy,casttype=IPFamilyPolicy\"`\n\n\t// allocateLoadBalancerNodePorts defines if NodePorts will be automatically\n\t// allocated for services with type LoadBalancer.  Default is \"true\". It\n\t// may be set to \"false\" if the cluster load-balancer does not rely on\n\t// NodePorts.  If the caller requests specific NodePorts (by specifying a\n\t// value), those requests will be respected, regardless of this field.\n\t// This field may only be set for services with type LoadBalancer and will\n\t// be cleared if the type is changed to any other type.\n\t// +optional\n\tAllocateLoadBalancerNodePorts *bool `json:\"allocateLoadBalancerNodePorts,omitempty\" protobuf:\"bytes,20,opt,name=allocateLoadBalancerNodePorts\"`\n\n\t// loadBalancerClass is the class of the load balancer implementation this Service belongs to.\n\t// If specified, the value of this field must be a label-style identifier, with an optional prefix,\n\t// e.g. \"internal-vip\" or \"example.com/internal-vip\". Unprefixed names are reserved for end-users.\n\t// This field can only be set when the Service type is 'LoadBalancer'. If not set, the default load\n\t// balancer implementation is used, today this is typically done through the cloud provider integration,\n\t// but should apply for any default implementation. If set, it is assumed that a load balancer\n\t// implementation is watching for Services with a matching class. Any default load balancer\n\t// implementation (e.g. cloud providers) should ignore Services that set this field.\n\t// This field can only be set when creating or updating a Service to type 'LoadBalancer'.\n\t// Once set, it can not be changed. This field will be wiped when a service is updated to a non 'LoadBalancer' type.\n\t// +optional\n\tLoadBalancerClass *string `json:\"loadBalancerClass,omitempty\" protobuf:\"bytes,21,opt,name=loadBalancerClass\"`\n\n\t// InternalTrafficPolicy describes how nodes distribute service traffic they\n\t// receive on the ClusterIP. If set to \"Local\", the proxy will assume that pods\n\t// only want to talk to endpoints of the service on the same node as the pod,\n\t// dropping the traffic if there are no local endpoints. The default value,\n\t// \"Cluster\", uses the standard behavior of routing to all endpoints evenly\n\t// (possibly modified by topology and other features).\n\t// +optional\n\tInternalTrafficPolicy *ServiceInternalTrafficPolicy `json:\"internalTrafficPolicy,omitempty\" protobuf:\"bytes,22,opt,name=internalTrafficPolicy\"`\n\n\t// TrafficDistribution offers a way to express preferences for how traffic is\n\t// distributed to Service endpoints. Implementations can use this field as a\n\t// hint, but are not required to guarantee strict adherence. If the field is\n\t// not set, the implementation will apply its default routing strategy. If set\n\t// to \"PreferClose\", implementations should prioritize endpoints that are\n\t// topologically close (e.g., same zone).\n\t// This is a beta field and requires enabling ServiceTrafficDistribution feature.\n\t// +featureGate=ServiceTrafficDistribution\n\t// +optional\n\tTrafficDistribution *string `json:\"trafficDistribution,omitempty\" protobuf:\"bytes,23,opt,name=trafficDistribution\"`\n}\n\n// ServicePort contains information on service's port.\ntype ServicePort struct {\n\t// The name of this port within the service. This must be a DNS_LABEL.\n\t// All ports within a ServiceSpec must have unique names. When considering\n\t// the endpoints for a Service, this must match the 'name' field in the\n\t// EndpointPort.\n\t// Optional if only one ServicePort is defined on this service.\n\t// +optional\n\tName string `json:\"name,omitempty\" protobuf:\"bytes,1,opt,name=name\"`\n\n\t// The IP protocol for this port. Supports \"TCP\", \"UDP\", and \"SCTP\".\n\t// Default is TCP.\n\t// +default=\"TCP\"\n\t// +optional\n\tProtocol Protocol `json:\"protocol,omitempty\" protobuf:\"bytes,2,opt,name=protocol,casttype=Protocol\"`\n\n\t// The application protocol for this port.\n\t// This is used as a hint for implementations to offer richer behavior for protocols that they understand.\n\t// This field follows standard Kubernetes label syntax.\n\t// Valid values are either:\n\t//\n\t// * Un-prefixed protocol names - reserved for IANA standard service names (as per\n\t// RFC-6335 and https://www.iana.org/assignments/service-names).\n\t//\n\t// * Kubernetes-defined prefixed names:\n\t//   * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior-\n\t//   * 'kubernetes.io/ws'  - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455\n\t//   * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455\n\t//\n\t// * Other protocols should use implementation-defined prefixed names such as\n\t// mycompany.com/my-custom-protocol.\n\t// +optional\n\tAppProtocol *string `json:\"appProtocol,omitempty\" protobuf:\"bytes,6,opt,name=appProtocol\"`\n\n\t// The port that will be exposed by this service.\n\tPort int32 `json:\"port\" protobuf:\"varint,3,opt,name=port\"`\n\n\t// Number or name of the port to access on the pods targeted by the service.\n\t// Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\n\t// If this is a string, it will be looked up as a named port in the\n\t// target Pod's container ports. If this is not specified, the value\n\t// of the 'port' field is used (an identity map).\n\t// This field is ignored for services with clusterIP=None, and should be\n\t// omitted or set equal to the 'port' field.\n\t// More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service\n\t// +optional\n\tTargetPort intstr.IntOrString `json:\"targetPort,omitempty\" protobuf:\"bytes,4,opt,name=targetPort\"`\n\n\t// The port on each node on which this service is exposed when type is\n\t// NodePort or LoadBalancer.  Usually assigned by the system. If a value is\n\t// specified, in-range, and not in use it will be used, otherwise the\n\t// operation will fail.  If not specified, a port will be allocated if this\n\t// Service requires one.  If this field is specified when creating a\n\t// Service which does not need it, creation will fail. This field will be\n\t// wiped when updating a Service to no longer need it (e.g. changing type\n\t// from NodePort to ClusterIP).\n\t// More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport\n\t// +optional\n\tNodePort int32 `json:\"nodePort,omitempty\" protobuf:\"varint,5,opt,name=nodePort\"`\n}\n\n// +genclient\n// +genclient:skipVerbs=deleteCollection\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.0\n\n// Service is a named abstraction of software service (for example, mysql) consisting of local port\n// (for example 3306) that the proxy listens on, and the selector that determines which pods\n// will answer requests sent through the proxy.\ntype Service struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec defines the behavior of a service.\n\t// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec ServiceSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Most recently observed status of the service.\n\t// Populated by the system.\n\t// Read-only.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus ServiceStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\nconst (\n\t// ClusterIPNone - do not assign a cluster IP\n\t// no proxying required and no environment variables should be created for pods\n\tClusterIPNone = \"None\"\n)\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.0\n\n// ServiceList holds a list of services.\ntype ServiceList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// List of services\n\tItems []Service `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +genclient:method=CreateToken,verb=create,subresource=token,input=k8s.io/api/authentication/v1.TokenRequest,result=k8s.io/api/authentication/v1.TokenRequest\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.0\n\n// ServiceAccount binds together:\n// * a name, understood by users, and perhaps by peripheral systems, for an identity\n// * a principal that can be authenticated and authorized\n// * a set of secrets\ntype ServiceAccount struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use.\n\t// Pods are only limited to this list if this service account has a \"kubernetes.io/enforce-mountable-secrets\" annotation set to \"true\".\n\t// The \"kubernetes.io/enforce-mountable-secrets\" annotation is deprecated since v1.32.\n\t// Prefer separate namespaces to isolate access to mounted secrets.\n\t// This field should not be used to find auto-generated service account token secrets for use outside of pods.\n\t// Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created.\n\t// More info: https://kubernetes.io/docs/concepts/configuration/secret\n\t// +optional\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=name\n\tSecrets []ObjectReference `json:\"secrets,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,2,rep,name=secrets\"`\n\n\t// ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images\n\t// in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets\n\t// can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet.\n\t// More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod\n\t// +optional\n\t// +listType=atomic\n\tImagePullSecrets []LocalObjectReference `json:\"imagePullSecrets,omitempty\" protobuf:\"bytes,3,rep,name=imagePullSecrets\"`\n\n\t// AutomountServiceAccountToken indicates whether pods running as this service account should have an API token automatically mounted.\n\t// Can be overridden at the pod level.\n\t// +optional\n\tAutomountServiceAccountToken *bool `json:\"automountServiceAccountToken,omitempty\" protobuf:\"varint,4,opt,name=automountServiceAccountToken\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.0\n\n// ServiceAccountList is a list of ServiceAccount objects\ntype ServiceAccountList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// List of ServiceAccounts.\n\t// More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/\n\tItems []ServiceAccount `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.0\n\n// Endpoints is a collection of endpoints that implement the actual service. Example:\n//\n//\t Name: \"mysvc\",\n//\t Subsets: [\n//\t   {\n//\t     Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n//\t     Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n//\t   },\n//\t   {\n//\t     Addresses: [{\"ip\": \"10.10.3.3\"}],\n//\t     Ports: [{\"name\": \"a\", \"port\": 93}, {\"name\": \"b\", \"port\": 76}]\n//\t   },\n//\t]\ntype Endpoints struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// The set of all endpoints is the union of all subsets. Addresses are placed into\n\t// subsets according to the IPs they share. A single address with multiple ports,\n\t// some of which are ready and some of which are not (because they come from\n\t// different containers) will result in the address being displayed in different\n\t// subsets for the different ports. No address will appear in both Addresses and\n\t// NotReadyAddresses in the same subset.\n\t// Sets of addresses and ports that comprise a service.\n\t// +optional\n\t// +listType=atomic\n\tSubsets []EndpointSubset `json:\"subsets,omitempty\" protobuf:\"bytes,2,rep,name=subsets\"`\n}\n\n// EndpointSubset is a group of addresses with a common set of ports. The\n// expanded set of endpoints is the Cartesian product of Addresses x Ports.\n// For example, given:\n//\n//\t{\n//\t  Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n//\t  Ports:     [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n//\t}\n//\n// The resulting set of endpoints can be viewed as:\n//\n//\ta: [ 10.10.1.1:8675, 10.10.2.2:8675 ],\n//\tb: [ 10.10.1.1:309, 10.10.2.2:309 ]\ntype EndpointSubset struct {\n\t// IP addresses which offer the related ports that are marked as ready. These endpoints\n\t// should be considered safe for load balancers and clients to utilize.\n\t// +optional\n\t// +listType=atomic\n\tAddresses []EndpointAddress `json:\"addresses,omitempty\" protobuf:\"bytes,1,rep,name=addresses\"`\n\t// IP addresses which offer the related ports but are not currently marked as ready\n\t// because they have not yet finished starting, have recently failed a readiness check,\n\t// or have recently failed a liveness check.\n\t// +optional\n\t// +listType=atomic\n\tNotReadyAddresses []EndpointAddress `json:\"notReadyAddresses,omitempty\" protobuf:\"bytes,2,rep,name=notReadyAddresses\"`\n\t// Port numbers available on the related IP addresses.\n\t// +optional\n\t// +listType=atomic\n\tPorts []EndpointPort `json:\"ports,omitempty\" protobuf:\"bytes,3,rep,name=ports\"`\n}\n\n// EndpointAddress is a tuple that describes single IP address.\n// +structType=atomic\ntype EndpointAddress struct {\n\t// The IP of this endpoint.\n\t// May not be loopback (127.0.0.0/8 or ::1), link-local (169.254.0.0/16 or fe80::/10),\n\t// or link-local multicast (224.0.0.0/24 or ff02::/16).\n\tIP string `json:\"ip\" protobuf:\"bytes,1,opt,name=ip\"`\n\t// The Hostname of this endpoint\n\t// +optional\n\tHostname string `json:\"hostname,omitempty\" protobuf:\"bytes,3,opt,name=hostname\"`\n\t// Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.\n\t// +optional\n\tNodeName *string `json:\"nodeName,omitempty\" protobuf:\"bytes,4,opt,name=nodeName\"`\n\t// Reference to object providing the endpoint.\n\t// +optional\n\tTargetRef *ObjectReference `json:\"targetRef,omitempty\" protobuf:\"bytes,2,opt,name=targetRef\"`\n}\n\n// EndpointPort is a tuple that describes a single port.\n// +structType=atomic\ntype EndpointPort struct {\n\t// The name of this port.  This must match the 'name' field in the\n\t// corresponding ServicePort.\n\t// Must be a DNS_LABEL.\n\t// Optional only if one port is defined.\n\t// +optional\n\tName string `json:\"name,omitempty\" protobuf:\"bytes,1,opt,name=name\"`\n\n\t// The port number of the endpoint.\n\tPort int32 `json:\"port\" protobuf:\"varint,2,opt,name=port\"`\n\n\t// The IP protocol for this port.\n\t// Must be UDP, TCP, or SCTP.\n\t// Default is TCP.\n\t// +optional\n\tProtocol Protocol `json:\"protocol,omitempty\" protobuf:\"bytes,3,opt,name=protocol,casttype=Protocol\"`\n\n\t// The application protocol for this port.\n\t// This is used as a hint for implementations to offer richer behavior for protocols that they understand.\n\t// This field follows standard Kubernetes label syntax.\n\t// Valid values are either:\n\t//\n\t// * Un-prefixed protocol names - reserved for IANA standard service names (as per\n\t// RFC-6335 and https://www.iana.org/assignments/service-names).\n\t//\n\t// * Kubernetes-defined prefixed names:\n\t//   * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior-\n\t//   * 'kubernetes.io/ws'  - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455\n\t//   * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455\n\t//\n\t// * Other protocols should use implementation-defined prefixed names such as\n\t// mycompany.com/my-custom-protocol.\n\t// +optional\n\tAppProtocol *string `json:\"appProtocol,omitempty\" protobuf:\"bytes,4,opt,name=appProtocol\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.0\n\n// EndpointsList is a list of endpoints.\ntype EndpointsList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// List of endpoints.\n\tItems []Endpoints `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// NodeSpec describes the attributes that a node is created with.\ntype NodeSpec struct {\n\t// PodCIDR represents the pod IP range assigned to the node.\n\t// +optional\n\tPodCIDR string `json:\"podCIDR,omitempty\" protobuf:\"bytes,1,opt,name=podCIDR\"`\n\n\t// podCIDRs represents the IP ranges assigned to the node for usage by Pods on that node. If this\n\t// field is specified, the 0th entry must match the podCIDR field. It may contain at most 1 value for\n\t// each of IPv4 and IPv6.\n\t// +optional\n\t// +patchStrategy=merge\n\t// +listType=set\n\tPodCIDRs []string `json:\"podCIDRs,omitempty\" protobuf:\"bytes,7,opt,name=podCIDRs\" patchStrategy:\"merge\"`\n\n\t// ID of the node assigned by the cloud provider in the format: <ProviderName>://<ProviderSpecificNodeID>\n\t// +optional\n\tProviderID string `json:\"providerID,omitempty\" protobuf:\"bytes,3,opt,name=providerID\"`\n\t// Unschedulable controls node schedulability of new pods. By default, node is schedulable.\n\t// More info: https://kubernetes.io/docs/concepts/nodes/node/#manual-node-administration\n\t// +optional\n\tUnschedulable bool `json:\"unschedulable,omitempty\" protobuf:\"varint,4,opt,name=unschedulable\"`\n\t// If specified, the node's taints.\n\t// +optional\n\t// +listType=atomic\n\tTaints []Taint `json:\"taints,omitempty\" protobuf:\"bytes,5,opt,name=taints\"`\n\n\t// Deprecated: Previously used to specify the source of the node's configuration for the DynamicKubeletConfig feature. This feature is removed.\n\t// +optional\n\tConfigSource *NodeConfigSource `json:\"configSource,omitempty\" protobuf:\"bytes,6,opt,name=configSource\"`\n\n\t// Deprecated. Not all kubelets will set this field. Remove field after 1.13.\n\t// see: https://issues.k8s.io/61966\n\t// +optional\n\tDoNotUseExternalID string `json:\"externalID,omitempty\" protobuf:\"bytes,2,opt,name=externalID\"`\n}\n\n// NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil.\n// This API is deprecated since 1.22\ntype NodeConfigSource struct {\n\t// For historical context, regarding the below kind, apiVersion, and configMapRef deprecation tags:\n\t// 1. kind/apiVersion were used by the kubelet to persist this struct to disk (they had no protobuf tags)\n\t// 2. configMapRef and proto tag 1 were used by the API to refer to a configmap,\n\t//    but used a generic ObjectReference type that didn't really have the fields we needed\n\t// All uses/persistence of the NodeConfigSource struct prior to 1.11 were gated by alpha feature flags,\n\t// so there was no persisted data for these fields that needed to be migrated/handled.\n\n\t// +k8s:deprecated=kind\n\t// +k8s:deprecated=apiVersion\n\t// +k8s:deprecated=configMapRef,protobuf=1\n\n\t// ConfigMap is a reference to a Node's ConfigMap\n\tConfigMap *ConfigMapNodeConfigSource `json:\"configMap,omitempty\" protobuf:\"bytes,2,opt,name=configMap\"`\n}\n\n// ConfigMapNodeConfigSource contains the information to reference a ConfigMap as a config source for the Node.\n// This API is deprecated since 1.22: https://git.k8s.io/enhancements/keps/sig-node/281-dynamic-kubelet-configuration\ntype ConfigMapNodeConfigSource struct {\n\t// Namespace is the metadata.namespace of the referenced ConfigMap.\n\t// This field is required in all cases.\n\tNamespace string `json:\"namespace\" protobuf:\"bytes,1,opt,name=namespace\"`\n\n\t// Name is the metadata.name of the referenced ConfigMap.\n\t// This field is required in all cases.\n\tName string `json:\"name\" protobuf:\"bytes,2,opt,name=name\"`\n\n\t// UID is the metadata.UID of the referenced ConfigMap.\n\t// This field is forbidden in Node.Spec, and required in Node.Status.\n\t// +optional\n\tUID types.UID `json:\"uid,omitempty\" protobuf:\"bytes,3,opt,name=uid\"`\n\n\t// ResourceVersion is the metadata.ResourceVersion of the referenced ConfigMap.\n\t// This field is forbidden in Node.Spec, and required in Node.Status.\n\t// +optional\n\tResourceVersion string `json:\"resourceVersion,omitempty\" protobuf:\"bytes,4,opt,name=resourceVersion\"`\n\n\t// KubeletConfigKey declares which key of the referenced ConfigMap corresponds to the KubeletConfiguration structure\n\t// This field is required in all cases.\n\tKubeletConfigKey string `json:\"kubeletConfigKey\" protobuf:\"bytes,5,opt,name=kubeletConfigKey\"`\n}\n\n// DaemonEndpoint contains information about a single Daemon endpoint.\ntype DaemonEndpoint struct {\n\t/*\n\t\tThe port tag was not properly in quotes in earlier releases, so it must be\n\t\tuppercased for backwards compat (since it was falling back to var name of\n\t\t'Port').\n\t*/\n\n\t// Port number of the given endpoint.\n\tPort int32 `json:\"Port\" protobuf:\"varint,1,opt,name=Port\"`\n}\n\n// NodeDaemonEndpoints lists ports opened by daemons running on the Node.\ntype NodeDaemonEndpoints struct {\n\t// Endpoint on which Kubelet is listening.\n\t// +optional\n\tKubeletEndpoint DaemonEndpoint `json:\"kubeletEndpoint,omitempty\" protobuf:\"bytes,1,opt,name=kubeletEndpoint\"`\n}\n\n// NodeRuntimeHandlerFeatures is a set of features implemented by the runtime handler.\ntype NodeRuntimeHandlerFeatures struct {\n\t// RecursiveReadOnlyMounts is set to true if the runtime handler supports RecursiveReadOnlyMounts.\n\t// +featureGate=RecursiveReadOnlyMounts\n\t// +optional\n\tRecursiveReadOnlyMounts *bool `json:\"recursiveReadOnlyMounts,omitempty\" protobuf:\"varint,1,opt,name=recursiveReadOnlyMounts\"`\n\t// UserNamespaces is set to true if the runtime handler supports UserNamespaces, including for volumes.\n\t// +featureGate=UserNamespacesSupport\n\t// +optional\n\tUserNamespaces *bool `json:\"userNamespaces,omitempty\" protobuf:\"varint,2,opt,name=userNamespaces\"`\n}\n\n// NodeRuntimeHandler is a set of runtime handler information.\ntype NodeRuntimeHandler struct {\n\t// Runtime handler name.\n\t// Empty for the default runtime handler.\n\t// +optional\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\t// Supported features.\n\t// +optional\n\tFeatures *NodeRuntimeHandlerFeatures `json:\"features,omitempty\" protobuf:\"bytes,2,opt,name=features\"`\n}\n\n// NodeFeatures describes the set of features implemented by the CRI implementation.\n// The features contained in the NodeFeatures should depend only on the cri implementation\n// independent of runtime handlers.\ntype NodeFeatures struct {\n\t// SupplementalGroupsPolicy is set to true if the runtime supports SupplementalGroupsPolicy and ContainerUser.\n\t// +optional\n\tSupplementalGroupsPolicy *bool `json:\"supplementalGroupsPolicy,omitempty\" protobuf:\"varint,1,opt,name=supplementalGroupsPolicy\"`\n}\n\n// NodeSystemInfo is a set of ids/uuids to uniquely identify the node.\ntype NodeSystemInfo struct {\n\t// MachineID reported by the node. For unique machine identification\n\t// in the cluster this field is preferred. Learn more from man(5)\n\t// machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html\n\tMachineID string `json:\"machineID\" protobuf:\"bytes,1,opt,name=machineID\"`\n\t// SystemUUID reported by the node. For unique machine identification\n\t// MachineID is preferred. This field is specific to Red Hat hosts\n\t// https://access.redhat.com/documentation/en-us/red_hat_subscription_management/1/html/rhsm/uuid\n\tSystemUUID string `json:\"systemUUID\" protobuf:\"bytes,2,opt,name=systemUUID\"`\n\t// Boot ID reported by the node.\n\tBootID string `json:\"bootID\" protobuf:\"bytes,3,opt,name=bootID\"`\n\t// Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64).\n\tKernelVersion string `json:\"kernelVersion\" protobuf:\"bytes,4,opt,name=kernelVersion\"`\n\t// OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)).\n\tOSImage string `json:\"osImage\" protobuf:\"bytes,5,opt,name=osImage\"`\n\t// ContainerRuntime Version reported by the node through runtime remote API (e.g. containerd://1.4.2).\n\tContainerRuntimeVersion string `json:\"containerRuntimeVersion\" protobuf:\"bytes,6,opt,name=containerRuntimeVersion\"`\n\t// Kubelet Version reported by the node.\n\tKubeletVersion string `json:\"kubeletVersion\" protobuf:\"bytes,7,opt,name=kubeletVersion\"`\n\t// Deprecated: KubeProxy Version reported by the node.\n\tKubeProxyVersion string `json:\"kubeProxyVersion\" protobuf:\"bytes,8,opt,name=kubeProxyVersion\"`\n\t// The Operating System reported by the node\n\tOperatingSystem string `json:\"operatingSystem\" protobuf:\"bytes,9,opt,name=operatingSystem\"`\n\t// The Architecture reported by the node\n\tArchitecture string `json:\"architecture\" protobuf:\"bytes,10,opt,name=architecture\"`\n}\n\n// NodeConfigStatus describes the status of the config assigned by Node.Spec.ConfigSource.\ntype NodeConfigStatus struct {\n\t// Assigned reports the checkpointed config the node will try to use.\n\t// When Node.Spec.ConfigSource is updated, the node checkpoints the associated\n\t// config payload to local disk, along with a record indicating intended\n\t// config. The node refers to this record to choose its config checkpoint, and\n\t// reports this record in Assigned. Assigned only updates in the status after\n\t// the record has been checkpointed to disk. When the Kubelet is restarted,\n\t// it tries to make the Assigned config the Active config by loading and\n\t// validating the checkpointed payload identified by Assigned.\n\t// +optional\n\tAssigned *NodeConfigSource `json:\"assigned,omitempty\" protobuf:\"bytes,1,opt,name=assigned\"`\n\t// Active reports the checkpointed config the node is actively using.\n\t// Active will represent either the current version of the Assigned config,\n\t// or the current LastKnownGood config, depending on whether attempting to use the\n\t// Assigned config results in an error.\n\t// +optional\n\tActive *NodeConfigSource `json:\"active,omitempty\" protobuf:\"bytes,2,opt,name=active\"`\n\t// LastKnownGood reports the checkpointed config the node will fall back to\n\t// when it encounters an error attempting to use the Assigned config.\n\t// The Assigned config becomes the LastKnownGood config when the node determines\n\t// that the Assigned config is stable and correct.\n\t// This is currently implemented as a 10-minute soak period starting when the local\n\t// record of Assigned config is updated. If the Assigned config is Active at the end\n\t// of this period, it becomes the LastKnownGood. Note that if Spec.ConfigSource is\n\t// reset to nil (use local defaults), the LastKnownGood is also immediately reset to nil,\n\t// because the local default config is always assumed good.\n\t// You should not make assumptions about the node's method of determining config stability\n\t// and correctness, as this may change or become configurable in the future.\n\t// +optional\n\tLastKnownGood *NodeConfigSource `json:\"lastKnownGood,omitempty\" protobuf:\"bytes,3,opt,name=lastKnownGood\"`\n\t// Error describes any problems reconciling the Spec.ConfigSource to the Active config.\n\t// Errors may occur, for example, attempting to checkpoint Spec.ConfigSource to the local Assigned\n\t// record, attempting to checkpoint the payload associated with Spec.ConfigSource, attempting\n\t// to load or validate the Assigned config, etc.\n\t// Errors may occur at different points while syncing config. Earlier errors (e.g. download or\n\t// checkpointing errors) will not result in a rollback to LastKnownGood, and may resolve across\n\t// Kubelet retries. Later errors (e.g. loading or validating a checkpointed config) will result in\n\t// a rollback to LastKnownGood. In the latter case, it is usually possible to resolve the error\n\t// by fixing the config assigned in Spec.ConfigSource.\n\t// You can find additional information for debugging by searching the error message in the Kubelet log.\n\t// Error is a human-readable description of the error state; machines can check whether or not Error\n\t// is empty, but should not rely on the stability of the Error text across Kubelet versions.\n\t// +optional\n\tError string `json:\"error,omitempty\" protobuf:\"bytes,4,opt,name=error\"`\n}\n\n// NodeStatus is information about the current status of a node.\ntype NodeStatus struct {\n\t// Capacity represents the total resources of a node.\n\t// More info: https://kubernetes.io/docs/reference/node/node-status/#capacity\n\t// +optional\n\tCapacity ResourceList `json:\"capacity,omitempty\" protobuf:\"bytes,1,rep,name=capacity,casttype=ResourceList,castkey=ResourceName\"`\n\t// Allocatable represents the resources of a node that are available for scheduling.\n\t// Defaults to Capacity.\n\t// +optional\n\tAllocatable ResourceList `json:\"allocatable,omitempty\" protobuf:\"bytes,2,rep,name=allocatable,casttype=ResourceList,castkey=ResourceName\"`\n\t// NodePhase is the recently observed lifecycle phase of the node.\n\t// More info: https://kubernetes.io/docs/concepts/nodes/node/#phase\n\t// The field is never populated, and now is deprecated.\n\t// +optional\n\tPhase NodePhase `json:\"phase,omitempty\" protobuf:\"bytes,3,opt,name=phase,casttype=NodePhase\"`\n\t// Conditions is an array of current observed node conditions.\n\t// More info: https://kubernetes.io/docs/reference/node/node-status/#condition\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=type\n\tConditions []NodeCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,4,rep,name=conditions\"`\n\t// List of addresses reachable to the node.\n\t// Queried from cloud provider, if available.\n\t// More info: https://kubernetes.io/docs/reference/node/node-status/#addresses\n\t// Note: This field is declared as mergeable, but the merge key is not sufficiently\n\t// unique, which can cause data corruption when it is merged. Callers should instead\n\t// use a full-replacement patch. See https://pr.k8s.io/79391 for an example.\n\t// Consumers should assume that addresses can change during the\n\t// lifetime of a Node. However, there are some exceptions where this may not\n\t// be possible, such as Pods that inherit a Node's address in its own status or\n\t// consumers of the downward API (status.hostIP).\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=type\n\tAddresses []NodeAddress `json:\"addresses,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,5,rep,name=addresses\"`\n\t// Endpoints of daemons running on the Node.\n\t// +optional\n\tDaemonEndpoints NodeDaemonEndpoints `json:\"daemonEndpoints,omitempty\" protobuf:\"bytes,6,opt,name=daemonEndpoints\"`\n\t// Set of ids/uuids to uniquely identify the node.\n\t// More info: https://kubernetes.io/docs/reference/node/node-status/#info\n\t// +optional\n\tNodeInfo NodeSystemInfo `json:\"nodeInfo,omitempty\" protobuf:\"bytes,7,opt,name=nodeInfo\"`\n\t// List of container images on this node\n\t// +optional\n\t// +listType=atomic\n\tImages []ContainerImage `json:\"images,omitempty\" protobuf:\"bytes,8,rep,name=images\"`\n\t// List of attachable volumes in use (mounted) by the node.\n\t// +optional\n\t// +listType=atomic\n\tVolumesInUse []UniqueVolumeName `json:\"volumesInUse,omitempty\" protobuf:\"bytes,9,rep,name=volumesInUse\"`\n\t// List of volumes that are attached to the node.\n\t// +optional\n\t// +listType=atomic\n\tVolumesAttached []AttachedVolume `json:\"volumesAttached,omitempty\" protobuf:\"bytes,10,rep,name=volumesAttached\"`\n\t// Status of the config assigned to the node via the dynamic Kubelet config feature.\n\t// +optional\n\tConfig *NodeConfigStatus `json:\"config,omitempty\" protobuf:\"bytes,11,opt,name=config\"`\n\t// The available runtime handlers.\n\t// +featureGate=RecursiveReadOnlyMounts\n\t// +featureGate=UserNamespacesSupport\n\t// +optional\n\t// +listType=atomic\n\tRuntimeHandlers []NodeRuntimeHandler `json:\"runtimeHandlers,omitempty\" protobuf:\"bytes,12,rep,name=runtimeHandlers\"`\n\t// Features describes the set of features implemented by the CRI implementation.\n\t// +featureGate=SupplementalGroupsPolicy\n\t// +optional\n\tFeatures *NodeFeatures `json:\"features,omitempty\" protobuf:\"bytes,13,rep,name=features\"`\n}\n\ntype UniqueVolumeName string\n\n// AttachedVolume describes a volume attached to a node\ntype AttachedVolume struct {\n\t// Name of the attached volume\n\tName UniqueVolumeName `json:\"name\" protobuf:\"bytes,1,rep,name=name\"`\n\n\t// DevicePath represents the device path where the volume should be available\n\tDevicePath string `json:\"devicePath\" protobuf:\"bytes,2,rep,name=devicePath\"`\n}\n\n// AvoidPods describes pods that should avoid this node. This is the value for a\n// Node annotation with key scheduler.alpha.kubernetes.io/preferAvoidPods and\n// will eventually become a field of NodeStatus.\ntype AvoidPods struct {\n\t// Bounded-sized list of signatures of pods that should avoid this node, sorted\n\t// in timestamp order from oldest to newest. Size of the slice is unspecified.\n\t// +optional\n\t// +listType=atomic\n\tPreferAvoidPods []PreferAvoidPodsEntry `json:\"preferAvoidPods,omitempty\" protobuf:\"bytes,1,rep,name=preferAvoidPods\"`\n}\n\n// Describes a class of pods that should avoid this node.\ntype PreferAvoidPodsEntry struct {\n\t// The class of pods.\n\tPodSignature PodSignature `json:\"podSignature\" protobuf:\"bytes,1,opt,name=podSignature\"`\n\t// Time at which this entry was added to the list.\n\t// +optional\n\tEvictionTime metav1.Time `json:\"evictionTime,omitempty\" protobuf:\"bytes,2,opt,name=evictionTime\"`\n\t// (brief) reason why this entry was added to the list.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,3,opt,name=reason\"`\n\t// Human readable message indicating why this entry was added to the list.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,4,opt,name=message\"`\n}\n\n// Describes the class of pods that should avoid this node.\n// Exactly one field should be set.\ntype PodSignature struct {\n\t// Reference to controller whose pods should avoid this node.\n\t// +optional\n\tPodController *metav1.OwnerReference `json:\"podController,omitempty\" protobuf:\"bytes,1,opt,name=podController\"`\n}\n\n// Describe a container image\ntype ContainerImage struct {\n\t// Names by which this image is known.\n\t// e.g. [\"kubernetes.example/hyperkube:v1.0.7\", \"cloud-vendor.registry.example/cloud-vendor/hyperkube:v1.0.7\"]\n\t// +optional\n\t// +listType=atomic\n\tNames []string `json:\"names\" protobuf:\"bytes,1,rep,name=names\"`\n\t// The size of the image in bytes.\n\t// +optional\n\tSizeBytes int64 `json:\"sizeBytes,omitempty\" protobuf:\"varint,2,opt,name=sizeBytes\"`\n}\n\n// +enum\ntype NodePhase string\n\n// These are the valid phases of node.\nconst (\n\t// NodePending means the node has been created/added by the system, but not configured.\n\tNodePending NodePhase = \"Pending\"\n\t// NodeRunning means the node has been configured and has Kubernetes components running.\n\tNodeRunning NodePhase = \"Running\"\n\t// NodeTerminated means the node has been removed from the cluster.\n\tNodeTerminated NodePhase = \"Terminated\"\n)\n\ntype NodeConditionType string\n\n// These are valid but not exhaustive conditions of node. A cloud provider may set a condition not listed here.\n// Relevant events contain \"NodeReady\", \"NodeNotReady\", \"NodeSchedulable\", and \"NodeNotSchedulable\".\nconst (\n\t// NodeReady means kubelet is healthy and ready to accept pods.\n\tNodeReady NodeConditionType = \"Ready\"\n\t// NodeMemoryPressure means the kubelet is under pressure due to insufficient available memory.\n\tNodeMemoryPressure NodeConditionType = \"MemoryPressure\"\n\t// NodeDiskPressure means the kubelet is under pressure due to insufficient available disk.\n\tNodeDiskPressure NodeConditionType = \"DiskPressure\"\n\t// NodePIDPressure means the kubelet is under pressure due to insufficient available PID.\n\tNodePIDPressure NodeConditionType = \"PIDPressure\"\n\t// NodeNetworkUnavailable means that network for the node is not correctly configured.\n\tNodeNetworkUnavailable NodeConditionType = \"NetworkUnavailable\"\n)\n\n// NodeCondition contains condition information for a node.\ntype NodeCondition struct {\n\t// Type of node condition.\n\tType NodeConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=NodeConditionType\"`\n\t// Status of the condition, one of True, False, Unknown.\n\tStatus ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status,casttype=ConditionStatus\"`\n\t// Last time we got an update on a given condition.\n\t// +optional\n\tLastHeartbeatTime metav1.Time `json:\"lastHeartbeatTime,omitempty\" protobuf:\"bytes,3,opt,name=lastHeartbeatTime\"`\n\t// Last time the condition transit from one status to another.\n\t// +optional\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,4,opt,name=lastTransitionTime\"`\n\t// (brief) reason for the condition's last transition.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,5,opt,name=reason\"`\n\t// Human readable message indicating details about last transition.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,6,opt,name=message\"`\n}\n\ntype NodeAddressType string\n\n// These are built-in addresses type of node. A cloud provider may set a type not listed here.\nconst (\n\t// NodeHostName identifies a name of the node. Although every node can be assumed\n\t// to have a NodeAddress of this type, its exact syntax and semantics are not\n\t// defined, and are not consistent between different clusters.\n\tNodeHostName NodeAddressType = \"Hostname\"\n\n\t// NodeInternalIP identifies an IP address which is assigned to one of the node's\n\t// network interfaces. Every node should have at least one address of this type.\n\t//\n\t// An internal IP is normally expected to be reachable from every other node, but\n\t// may not be visible to hosts outside the cluster. By default it is assumed that\n\t// kube-apiserver can reach node internal IPs, though it is possible to configure\n\t// clusters where this is not the case.\n\t//\n\t// NodeInternalIP is the default type of node IP, and does not necessarily imply\n\t// that the IP is ONLY reachable internally. If a node has multiple internal IPs,\n\t// no specific semantics are assigned to the additional IPs.\n\tNodeInternalIP NodeAddressType = \"InternalIP\"\n\n\t// NodeExternalIP identifies an IP address which is, in some way, intended to be\n\t// more usable from outside the cluster then an internal IP, though no specific\n\t// semantics are defined. It may be a globally routable IP, though it is not\n\t// required to be.\n\t//\n\t// External IPs may be assigned directly to an interface on the node, like a\n\t// NodeInternalIP, or alternatively, packets sent to the external IP may be NAT'ed\n\t// to an internal node IP rather than being delivered directly (making the IP less\n\t// efficient for node-to-node traffic than a NodeInternalIP).\n\tNodeExternalIP NodeAddressType = \"ExternalIP\"\n\n\t// NodeInternalDNS identifies a DNS name which resolves to an IP address which has\n\t// the characteristics of a NodeInternalIP. The IP it resolves to may or may not\n\t// be a listed NodeInternalIP address.\n\tNodeInternalDNS NodeAddressType = \"InternalDNS\"\n\n\t// NodeExternalDNS identifies a DNS name which resolves to an IP address which has\n\t// the characteristics of a NodeExternalIP. The IP it resolves to may or may not\n\t// be a listed NodeExternalIP address.\n\tNodeExternalDNS NodeAddressType = \"ExternalDNS\"\n)\n\n// NodeAddress contains information for the node's address.\ntype NodeAddress struct {\n\t// Node address type, one of Hostname, ExternalIP or InternalIP.\n\tType NodeAddressType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=NodeAddressType\"`\n\t// The node address.\n\tAddress string `json:\"address\" protobuf:\"bytes,2,opt,name=address\"`\n}\n\n// ResourceName is the name identifying various resources in a ResourceList.\ntype ResourceName string\n\n// Resource names must be not more than 63 characters, consisting of upper- or lower-case alphanumeric characters,\n// with the -, _, and . characters allowed anywhere, except the first or last character.\n// The default convention, matching that for annotations, is to use lower-case names, with dashes, rather than\n// camel case, separating compound words.\n// Fully-qualified resource typenames are constructed from a DNS-style subdomain, followed by a slash `/` and a name.\nconst (\n\t// CPU, in cores. (500m = .5 cores)\n\tResourceCPU ResourceName = \"cpu\"\n\t// Memory, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)\n\tResourceMemory ResourceName = \"memory\"\n\t// Volume size, in bytes (e,g. 5Gi = 5GiB = 5 * 1024 * 1024 * 1024)\n\tResourceStorage ResourceName = \"storage\"\n\t// Local ephemeral storage, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)\n\tResourceEphemeralStorage ResourceName = \"ephemeral-storage\"\n)\n\nconst (\n\t// Default namespace prefix.\n\tResourceDefaultNamespacePrefix = \"kubernetes.io/\"\n\t// Name prefix for huge page resources (alpha).\n\tResourceHugePagesPrefix = \"hugepages-\"\n\t// Name prefix for storage resource limits\n\tResourceAttachableVolumesPrefix = \"attachable-volumes-\"\n)\n\n// ResourceList is a set of (resource name, quantity) pairs.\ntype ResourceList map[ResourceName]resource.Quantity\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.0\n\n// Node is a worker node in Kubernetes.\n// Each node will have a unique identifier in the cache (i.e. in etcd).\ntype Node struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec defines the behavior of a node.\n\t// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec NodeSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Most recently observed status of the node.\n\t// Populated by the system.\n\t// Read-only.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus NodeStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.0\n\n// NodeList is the whole list of all Nodes which have been registered with master.\ntype NodeList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// List of nodes\n\tItems []Node `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// FinalizerName is the name identifying a finalizer during namespace lifecycle.\ntype FinalizerName string\n\n// These are internal finalizer values to Kubernetes, must be qualified name unless defined here or\n// in metav1.\nconst (\n\tFinalizerKubernetes FinalizerName = \"kubernetes\"\n)\n\n// NamespaceSpec describes the attributes on a Namespace.\ntype NamespaceSpec struct {\n\t// Finalizers is an opaque list of values that must be empty to permanently remove object from storage.\n\t// More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/\n\t// +optional\n\t// +listType=atomic\n\tFinalizers []FinalizerName `json:\"finalizers,omitempty\" protobuf:\"bytes,1,rep,name=finalizers,casttype=FinalizerName\"`\n}\n\n// NamespaceStatus is information about the current status of a Namespace.\ntype NamespaceStatus struct {\n\t// Phase is the current lifecycle phase of the namespace.\n\t// More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/\n\t// +optional\n\tPhase NamespacePhase `json:\"phase,omitempty\" protobuf:\"bytes,1,opt,name=phase,casttype=NamespacePhase\"`\n\n\t// Represents the latest available observations of a namespace's current state.\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=type\n\tConditions []NamespaceCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,2,rep,name=conditions\"`\n}\n\n// +enum\ntype NamespacePhase string\n\n// These are the valid phases of a namespace.\nconst (\n\t// NamespaceActive means the namespace is available for use in the system\n\tNamespaceActive NamespacePhase = \"Active\"\n\t// NamespaceTerminating means the namespace is undergoing graceful termination\n\tNamespaceTerminating NamespacePhase = \"Terminating\"\n)\n\nconst (\n\t// NamespaceTerminatingCause is returned as a defaults.cause item when a change is\n\t// forbidden due to the namespace being terminated.\n\tNamespaceTerminatingCause metav1.CauseType = \"NamespaceTerminating\"\n)\n\ntype NamespaceConditionType string\n\n// These are built-in conditions of a namespace.\nconst (\n\t// NamespaceDeletionDiscoveryFailure contains information about namespace deleter errors during resource discovery.\n\tNamespaceDeletionDiscoveryFailure NamespaceConditionType = \"NamespaceDeletionDiscoveryFailure\"\n\t// NamespaceDeletionContentFailure contains information about namespace deleter errors during deletion of resources.\n\tNamespaceDeletionContentFailure NamespaceConditionType = \"NamespaceDeletionContentFailure\"\n\t// NamespaceDeletionGVParsingFailure contains information about namespace deleter errors parsing GV for legacy types.\n\tNamespaceDeletionGVParsingFailure NamespaceConditionType = \"NamespaceDeletionGroupVersionParsingFailure\"\n\t// NamespaceContentRemaining contains information about resources remaining in a namespace.\n\tNamespaceContentRemaining NamespaceConditionType = \"NamespaceContentRemaining\"\n\t// NamespaceFinalizersRemaining contains information about which finalizers are on resources remaining in a namespace.\n\tNamespaceFinalizersRemaining NamespaceConditionType = \"NamespaceFinalizersRemaining\"\n)\n\n// NamespaceCondition contains details about state of namespace.\ntype NamespaceCondition struct {\n\t// Type of namespace controller condition.\n\tType NamespaceConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=NamespaceConditionType\"`\n\t// Status of the condition, one of True, False, Unknown.\n\tStatus ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status,casttype=ConditionStatus\"`\n\t// Last time the condition transitioned from one status to another.\n\t// +optional\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,4,opt,name=lastTransitionTime\"`\n\t// Unique, one-word, CamelCase reason for the condition's last transition.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,5,opt,name=reason\"`\n\t// Human-readable message indicating details about last transition.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,6,opt,name=message\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +genclient:skipVerbs=deleteCollection\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.0\n\n// Namespace provides a scope for Names.\n// Use of multiple namespaces is optional.\ntype Namespace struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec defines the behavior of the Namespace.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec NamespaceSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status describes the current status of a Namespace.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus NamespaceStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.0\n\n// NamespaceList is a list of Namespaces.\ntype NamespaceList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is the list of Namespace objects in the list.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/\n\tItems []Namespace `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.0\n\n// Binding ties one object to another; for example, a pod is bound to a node by a scheduler.\ntype Binding struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// The target object that you want to bind to the standard object.\n\tTarget ObjectReference `json:\"target\" protobuf:\"bytes,2,opt,name=target\"`\n}\n\n// Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.\n// +k8s:openapi-gen=false\ntype Preconditions struct {\n\t// Specifies the target UID.\n\t// +optional\n\tUID *types.UID `json:\"uid,omitempty\" protobuf:\"bytes,1,opt,name=uid,casttype=k8s.io/apimachinery/pkg/types.UID\"`\n}\n\nconst (\n\t// LogStreamStdout is the stream type for stdout.\n\tLogStreamStdout = \"Stdout\"\n\t// LogStreamStderr is the stream type for stderr.\n\tLogStreamStderr = \"Stderr\"\n\t// LogStreamAll represents the combined stdout and stderr.\n\tLogStreamAll = \"All\"\n)\n\n// +k8s:conversion-gen:explicit-from=net/url.Values\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.0\n\n// PodLogOptions is the query options for a Pod's logs REST call.\ntype PodLogOptions struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// The container for which to stream logs. Defaults to only container if there is one container in the pod.\n\t// +optional\n\tContainer string `json:\"container,omitempty\" protobuf:\"bytes,1,opt,name=container\"`\n\t// Follow the log stream of the pod. Defaults to false.\n\t// +optional\n\tFollow bool `json:\"follow,omitempty\" protobuf:\"varint,2,opt,name=follow\"`\n\t// Return previous terminated container logs. Defaults to false.\n\t// +optional\n\tPrevious bool `json:\"previous,omitempty\" protobuf:\"varint,3,opt,name=previous\"`\n\t// A relative time in seconds before the current time from which to show logs. If this value\n\t// precedes the time a pod was started, only logs since the pod start will be returned.\n\t// If this value is in the future, no logs will be returned.\n\t// Only one of sinceSeconds or sinceTime may be specified.\n\t// +optional\n\tSinceSeconds *int64 `json:\"sinceSeconds,omitempty\" protobuf:\"varint,4,opt,name=sinceSeconds\"`\n\t// An RFC3339 timestamp from which to show logs. If this value\n\t// precedes the time a pod was started, only logs since the pod start will be returned.\n\t// If this value is in the future, no logs will be returned.\n\t// Only one of sinceSeconds or sinceTime may be specified.\n\t// +optional\n\tSinceTime *metav1.Time `json:\"sinceTime,omitempty\" protobuf:\"bytes,5,opt,name=sinceTime\"`\n\t// If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line\n\t// of log output. Defaults to false.\n\t// +optional\n\tTimestamps bool `json:\"timestamps,omitempty\" protobuf:\"varint,6,opt,name=timestamps\"`\n\t// If set, the number of lines from the end of the logs to show. If not specified,\n\t// logs are shown from the creation of the container or sinceSeconds or sinceTime.\n\t// Note that when \"TailLines\" is specified, \"Stream\" can only be set to nil or \"All\".\n\t// +optional\n\tTailLines *int64 `json:\"tailLines,omitempty\" protobuf:\"varint,7,opt,name=tailLines\"`\n\t// If set, the number of bytes to read from the server before terminating the\n\t// log output. This may not display a complete final line of logging, and may return\n\t// slightly more or slightly less than the specified limit.\n\t// +optional\n\tLimitBytes *int64 `json:\"limitBytes,omitempty\" protobuf:\"varint,8,opt,name=limitBytes\"`\n\n\t// insecureSkipTLSVerifyBackend indicates that the apiserver should not confirm the validity of the\n\t// serving certificate of the backend it is connecting to.  This will make the HTTPS connection between the apiserver\n\t// and the backend insecure. This means the apiserver cannot verify the log data it is receiving came from the real\n\t// kubelet.  If the kubelet is configured to verify the apiserver's TLS credentials, it does not mean the\n\t// connection to the real kubelet is vulnerable to a man in the middle attack (e.g. an attacker could not intercept\n\t// the actual log data coming from the real kubelet).\n\t// +optional\n\tInsecureSkipTLSVerifyBackend bool `json:\"insecureSkipTLSVerifyBackend,omitempty\" protobuf:\"varint,9,opt,name=insecureSkipTLSVerifyBackend\"`\n\n\t// Specify which container log stream to return to the client.\n\t// Acceptable values are \"All\", \"Stdout\" and \"Stderr\". If not specified, \"All\" is used, and both stdout and stderr\n\t// are returned interleaved.\n\t// Note that when \"TailLines\" is specified, \"Stream\" can only be set to nil or \"All\".\n\t// +featureGate=PodLogsQuerySplitStreams\n\t// +optional\n\tStream *string `json:\"stream,omitempty\" protobuf:\"varint,10,opt,name=stream\"`\n}\n\n// +k8s:conversion-gen:explicit-from=net/url.Values\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.1\n\n// PodAttachOptions is the query options to a Pod's remote attach call.\n// ---\n// TODO: merge w/ PodExecOptions below for stdin, stdout, etc\n// and also when we cut V2, we should export a \"StreamOptions\" or somesuch that contains Stdin, Stdout, Stder and TTY\ntype PodAttachOptions struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Stdin if true, redirects the standard input stream of the pod for this call.\n\t// Defaults to false.\n\t// +optional\n\tStdin bool `json:\"stdin,omitempty\" protobuf:\"varint,1,opt,name=stdin\"`\n\n\t// Stdout if true indicates that stdout is to be redirected for the attach call.\n\t// Defaults to true.\n\t// +optional\n\tStdout bool `json:\"stdout,omitempty\" protobuf:\"varint,2,opt,name=stdout\"`\n\n\t// Stderr if true indicates that stderr is to be redirected for the attach call.\n\t// Defaults to true.\n\t// +optional\n\tStderr bool `json:\"stderr,omitempty\" protobuf:\"varint,3,opt,name=stderr\"`\n\n\t// TTY if true indicates that a tty will be allocated for the attach call.\n\t// This is passed through the container runtime so the tty\n\t// is allocated on the worker node by the container runtime.\n\t// Defaults to false.\n\t// +optional\n\tTTY bool `json:\"tty,omitempty\" protobuf:\"varint,4,opt,name=tty\"`\n\n\t// The container in which to execute the command.\n\t// Defaults to only container if there is only one container in the pod.\n\t// +optional\n\tContainer string `json:\"container,omitempty\" protobuf:\"bytes,5,opt,name=container\"`\n}\n\n// +k8s:conversion-gen:explicit-from=net/url.Values\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.0\n\n// PodExecOptions is the query options to a Pod's remote exec call.\n// ---\n// TODO: This is largely identical to PodAttachOptions above, make sure they stay in sync and see about merging\n// and also when we cut V2, we should export a \"StreamOptions\" or somesuch that contains Stdin, Stdout, Stder and TTY\ntype PodExecOptions struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Redirect the standard input stream of the pod for this call.\n\t// Defaults to false.\n\t// +optional\n\tStdin bool `json:\"stdin,omitempty\" protobuf:\"varint,1,opt,name=stdin\"`\n\n\t// Redirect the standard output stream of the pod for this call.\n\t// +optional\n\tStdout bool `json:\"stdout,omitempty\" protobuf:\"varint,2,opt,name=stdout\"`\n\n\t// Redirect the standard error stream of the pod for this call.\n\t// +optional\n\tStderr bool `json:\"stderr,omitempty\" protobuf:\"varint,3,opt,name=stderr\"`\n\n\t// TTY if true indicates that a tty will be allocated for the exec call.\n\t// Defaults to false.\n\t// +optional\n\tTTY bool `json:\"tty,omitempty\" protobuf:\"varint,4,opt,name=tty\"`\n\n\t// Container in which to execute the command.\n\t// Defaults to only container if there is only one container in the pod.\n\t// +optional\n\tContainer string `json:\"container,omitempty\" protobuf:\"bytes,5,opt,name=container\"`\n\n\t// Command is the remote command to execute. argv array. Not executed within a shell.\n\t// +listType=atomic\n\tCommand []string `json:\"command\" protobuf:\"bytes,6,rep,name=command\"`\n}\n\n// +k8s:conversion-gen:explicit-from=net/url.Values\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.6\n\n// PodPortForwardOptions is the query options to a Pod's port forward call\n// when using WebSockets.\n// The `port` query parameter must specify the port or\n// ports (comma separated) to forward over.\n// Port forwarding over SPDY does not use these options. It requires the port\n// to be passed in the `port` header as part of request.\ntype PodPortForwardOptions struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// List of ports to forward\n\t// Required when using WebSockets\n\t// +optional\n\t// +listType=atomic\n\tPorts []int32 `json:\"ports,omitempty\" protobuf:\"varint,1,rep,name=ports\"`\n}\n\n// +k8s:conversion-gen:explicit-from=net/url.Values\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.0\n\n// PodProxyOptions is the query options to a Pod's proxy call.\ntype PodProxyOptions struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Path is the URL path to use for the current proxy request to pod.\n\t// +optional\n\tPath string `json:\"path,omitempty\" protobuf:\"bytes,1,opt,name=path\"`\n}\n\n// +k8s:conversion-gen:explicit-from=net/url.Values\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.2\n\n// NodeProxyOptions is the query options to a Node's proxy call.\ntype NodeProxyOptions struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Path is the URL path to use for the current proxy request to node.\n\t// +optional\n\tPath string `json:\"path,omitempty\" protobuf:\"bytes,1,opt,name=path\"`\n}\n\n// +k8s:conversion-gen:explicit-from=net/url.Values\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.2\n\n// ServiceProxyOptions is the query options to a Service's proxy call.\ntype ServiceProxyOptions struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Path is the part of URLs that include service endpoints, suffixes,\n\t// and parameters to use for the current proxy request to service.\n\t// For example, the whole request URL is\n\t// http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy.\n\t// Path is _search?q=user:kimchy.\n\t// +optional\n\tPath string `json:\"path,omitempty\" protobuf:\"bytes,1,opt,name=path\"`\n}\n\n// ObjectReference contains enough information to let you inspect or modify the referred object.\n// ---\n// New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs.\n//  1. Ignored fields.  It includes many fields which are not generally honored.  For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage.\n//  2. Invalid usage help.  It is impossible to add specific help for individual usage.  In most embedded usages, there are particular\n//     restrictions like, \"must refer only to types A and B\" or \"UID not honored\" or \"name must be restricted\".\n//     Those cannot be well described when embedded.\n//  3. Inconsistent validation.  Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen.\n//  4. The fields are both imprecise and overly precise.  Kind is not a precise mapping to a URL. This can produce ambiguity\n//     during interpretation and require a REST mapping.  In most cases, the dependency is on the group,resource tuple\n//     and the version of the actual struct is irrelevant.\n//  5. We cannot easily change it.  Because this type is embedded in many locations, updates to this type\n//     will affect numerous schemas.  Don't make new APIs embed an underspecified API type they do not control.\n//\n// Instead of using this type, create a locally provided and used type that is well-focused on your reference.\n// For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 .\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +structType=atomic\ntype ObjectReference struct {\n\t// Kind of the referent.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tKind string `json:\"kind,omitempty\" protobuf:\"bytes,1,opt,name=kind\"`\n\t// Namespace of the referent.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/\n\t// +optional\n\tNamespace string `json:\"namespace,omitempty\" protobuf:\"bytes,2,opt,name=namespace\"`\n\t// Name of the referent.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\n\t// +optional\n\tName string `json:\"name,omitempty\" protobuf:\"bytes,3,opt,name=name\"`\n\t// UID of the referent.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids\n\t// +optional\n\tUID types.UID `json:\"uid,omitempty\" protobuf:\"bytes,4,opt,name=uid,casttype=k8s.io/apimachinery/pkg/types.UID\"`\n\t// API version of the referent.\n\t// +optional\n\tAPIVersion string `json:\"apiVersion,omitempty\" protobuf:\"bytes,5,opt,name=apiVersion\"`\n\t// Specific resourceVersion to which this reference is made, if any.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency\n\t// +optional\n\tResourceVersion string `json:\"resourceVersion,omitempty\" protobuf:\"bytes,6,opt,name=resourceVersion\"`\n\n\t// If referring to a piece of an object instead of an entire object, this string\n\t// should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].\n\t// For example, if the object reference is to a container within a pod, this would take on a value like:\n\t// \"spec.containers{name}\" (where \"name\" refers to the name of the container that triggered\n\t// the event) or if no container name is specified \"spec.containers[2]\" (container with\n\t// index 2 in this pod). This syntax is chosen only to have some well-defined way of\n\t// referencing a part of an object.\n\t// TODO: this design is not final and this field is subject to change in the future.\n\t// +optional\n\tFieldPath string `json:\"fieldPath,omitempty\" protobuf:\"bytes,7,opt,name=fieldPath\"`\n}\n\n// LocalObjectReference contains enough information to let you locate the\n// referenced object inside the same namespace.\n// ---\n// New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs.\n//  1. Invalid usage help.  It is impossible to add specific help for individual usage.  In most embedded usages, there are particular\n//     restrictions like, \"must refer only to types A and B\" or \"UID not honored\" or \"name must be restricted\".\n//     Those cannot be well described when embedded.\n//  2. Inconsistent validation.  Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen.\n//  3. We cannot easily change it.  Because this type is embedded in many locations, updates to this type\n//     will affect numerous schemas.  Don't make new APIs embed an underspecified API type they do not control.\n//\n// Instead of using this type, create a locally provided and used type that is well-focused on your reference.\n// For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 .\n// +structType=atomic\ntype LocalObjectReference struct {\n\t// Name of the referent.\n\t// This field is effectively required, but due to backwards compatibility is\n\t// allowed to be empty. Instances of this type with an empty value here are\n\t// almost certainly wrong.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\n\t// +optional\n\t// +default=\"\"\n\t// +kubebuilder:default=\"\"\n\t// TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896.\n\tName string `json:\"name,omitempty\" protobuf:\"bytes,1,opt,name=name\"`\n}\n\n// TypedLocalObjectReference contains enough information to let you locate the\n// typed referenced object inside the same namespace.\n// ---\n// New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs.\n//  1. Invalid usage help.  It is impossible to add specific help for individual usage.  In most embedded usages, there are particular\n//     restrictions like, \"must refer only to types A and B\" or \"UID not honored\" or \"name must be restricted\".\n//     Those cannot be well described when embedded.\n//  2. Inconsistent validation.  Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen.\n//  3. The fields are both imprecise and overly precise.  Kind is not a precise mapping to a URL. This can produce ambiguity\n//     during interpretation and require a REST mapping.  In most cases, the dependency is on the group,resource tuple\n//     and the version of the actual struct is irrelevant.\n//  4. We cannot easily change it.  Because this type is embedded in many locations, updates to this type\n//     will affect numerous schemas.  Don't make new APIs embed an underspecified API type they do not control.\n//\n// Instead of using this type, create a locally provided and used type that is well-focused on your reference.\n// For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 .\n// +structType=atomic\ntype TypedLocalObjectReference struct {\n\t// APIGroup is the group for the resource being referenced.\n\t// If APIGroup is not specified, the specified Kind must be in the core API group.\n\t// For any other third-party types, APIGroup is required.\n\t// +optional\n\tAPIGroup *string `json:\"apiGroup\" protobuf:\"bytes,1,opt,name=apiGroup\"`\n\t// Kind is the type of resource being referenced\n\tKind string `json:\"kind\" protobuf:\"bytes,2,opt,name=kind\"`\n\t// Name is the name of resource being referenced\n\tName string `json:\"name\" protobuf:\"bytes,3,opt,name=name\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.0\n\n// SerializedReference is a reference to serialized object.\ntype SerializedReference struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// The reference to an object in the system.\n\t// +optional\n\tReference ObjectReference `json:\"reference,omitempty\" protobuf:\"bytes,1,opt,name=reference\"`\n}\n\n// EventSource contains information for an event.\ntype EventSource struct {\n\t// Component from which the event is generated.\n\t// +optional\n\tComponent string `json:\"component,omitempty\" protobuf:\"bytes,1,opt,name=component\"`\n\t// Node name on which the event is generated.\n\t// +optional\n\tHost string `json:\"host,omitempty\" protobuf:\"bytes,2,opt,name=host\"`\n}\n\n// Valid values for event types (new types could be added in future)\nconst (\n\t// Information only and will not cause any problems\n\tEventTypeNormal string = \"Normal\"\n\t// These events are to warn that something might go wrong\n\tEventTypeWarning string = \"Warning\"\n)\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.0\n\n// Event is a report of an event somewhere in the cluster.  Events\n// have a limited retention time and triggers and messages may evolve\n// with time.  Event consumers should not rely on the timing of an event\n// with a given Reason reflecting a consistent underlying trigger, or the\n// continued existence of events with that Reason.  Events should be\n// treated as informative, best-effort, supplemental data.\ntype Event struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\tmetav1.ObjectMeta `json:\"metadata\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// The object that this event is about.\n\tInvolvedObject ObjectReference `json:\"involvedObject\" protobuf:\"bytes,2,opt,name=involvedObject\"`\n\n\t// This should be a short, machine understandable string that gives the reason\n\t// for the transition into the object's current status.\n\t// TODO: provide exact specification for format.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,3,opt,name=reason\"`\n\n\t// A human-readable description of the status of this operation.\n\t// TODO: decide on maximum length.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,4,opt,name=message\"`\n\n\t// The component reporting this event. Should be a short machine understandable string.\n\t// +optional\n\tSource EventSource `json:\"source,omitempty\" protobuf:\"bytes,5,opt,name=source\"`\n\n\t// The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)\n\t// +optional\n\tFirstTimestamp metav1.Time `json:\"firstTimestamp,omitempty\" protobuf:\"bytes,6,opt,name=firstTimestamp\"`\n\n\t// The time at which the most recent occurrence of this event was recorded.\n\t// +optional\n\tLastTimestamp metav1.Time `json:\"lastTimestamp,omitempty\" protobuf:\"bytes,7,opt,name=lastTimestamp\"`\n\n\t// The number of times this event has occurred.\n\t// +optional\n\tCount int32 `json:\"count,omitempty\" protobuf:\"varint,8,opt,name=count\"`\n\n\t// Type of this event (Normal, Warning), new types could be added in the future\n\t// +optional\n\tType string `json:\"type,omitempty\" protobuf:\"bytes,9,opt,name=type\"`\n\n\t// Time when this Event was first observed.\n\t// +optional\n\tEventTime metav1.MicroTime `json:\"eventTime,omitempty\" protobuf:\"bytes,10,opt,name=eventTime\"`\n\n\t// Data about the Event series this event represents or nil if it's a singleton Event.\n\t// +optional\n\tSeries *EventSeries `json:\"series,omitempty\" protobuf:\"bytes,11,opt,name=series\"`\n\n\t// What action was taken/failed regarding to the Regarding object.\n\t// +optional\n\tAction string `json:\"action,omitempty\" protobuf:\"bytes,12,opt,name=action\"`\n\n\t// Optional secondary object for more complex actions.\n\t// +optional\n\tRelated *ObjectReference `json:\"related,omitempty\" protobuf:\"bytes,13,opt,name=related\"`\n\n\t// Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.\n\t// +optional\n\tReportingController string `json:\"reportingComponent\" protobuf:\"bytes,14,opt,name=reportingComponent\"`\n\n\t// ID of the controller instance, e.g. `kubelet-xyzf`.\n\t// +optional\n\tReportingInstance string `json:\"reportingInstance\" protobuf:\"bytes,15,opt,name=reportingInstance\"`\n}\n\n// EventSeries contain information on series of events, i.e. thing that was/is happening\n// continuously for some time.\ntype EventSeries struct {\n\t// Number of occurrences in this series up to the last heartbeat time\n\tCount int32 `json:\"count,omitempty\" protobuf:\"varint,1,name=count\"`\n\t// Time of the last occurrence observed\n\tLastObservedTime metav1.MicroTime `json:\"lastObservedTime,omitempty\" protobuf:\"bytes,2,name=lastObservedTime\"`\n\n\t// +k8s:deprecated=state,protobuf=3\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.0\n\n// EventList is a list of events.\ntype EventList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// List of events\n\tItems []Event `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.0\n\n// List holds a list of objects, which may not be known by the server.\ntype List metav1.List\n\n// LimitType is a type of object that is limited. It can be Pod, Container, PersistentVolumeClaim or\n// a fully qualified resource name.\ntype LimitType string\n\nconst (\n\t// Limit that applies to all pods in a namespace\n\tLimitTypePod LimitType = \"Pod\"\n\t// Limit that applies to all containers in a namespace\n\tLimitTypeContainer LimitType = \"Container\"\n\t// Limit that applies to all persistent volume claims in a namespace\n\tLimitTypePersistentVolumeClaim LimitType = \"PersistentVolumeClaim\"\n)\n\n// LimitRangeItem defines a min/max usage limit for any resource that matches on kind.\ntype LimitRangeItem struct {\n\t// Type of resource that this limit applies to.\n\tType LimitType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=LimitType\"`\n\t// Max usage constraints on this kind by resource name.\n\t// +optional\n\tMax ResourceList `json:\"max,omitempty\" protobuf:\"bytes,2,rep,name=max,casttype=ResourceList,castkey=ResourceName\"`\n\t// Min usage constraints on this kind by resource name.\n\t// +optional\n\tMin ResourceList `json:\"min,omitempty\" protobuf:\"bytes,3,rep,name=min,casttype=ResourceList,castkey=ResourceName\"`\n\t// Default resource requirement limit value by resource name if resource limit is omitted.\n\t// +optional\n\tDefault ResourceList `json:\"default,omitempty\" protobuf:\"bytes,4,rep,name=default,casttype=ResourceList,castkey=ResourceName\"`\n\t// DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.\n\t// +optional\n\tDefaultRequest ResourceList `json:\"defaultRequest,omitempty\" protobuf:\"bytes,5,rep,name=defaultRequest,casttype=ResourceList,castkey=ResourceName\"`\n\t// MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource.\n\t// +optional\n\tMaxLimitRequestRatio ResourceList `json:\"maxLimitRequestRatio,omitempty\" protobuf:\"bytes,6,rep,name=maxLimitRequestRatio,casttype=ResourceList,castkey=ResourceName\"`\n}\n\n// LimitRangeSpec defines a min/max usage limit for resources that match on kind.\ntype LimitRangeSpec struct {\n\t// Limits is the list of LimitRangeItem objects that are enforced.\n\t// +listType=atomic\n\tLimits []LimitRangeItem `json:\"limits\" protobuf:\"bytes,1,rep,name=limits\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.0\n\n// LimitRange sets resource usage limits for each kind of resource in a Namespace.\ntype LimitRange struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec defines the limits enforced.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec LimitRangeSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.0\n\n// LimitRangeList is a list of LimitRange items.\ntype LimitRangeList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is a list of LimitRange objects.\n\t// More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\n\tItems []LimitRange `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// The following identify resource constants for Kubernetes object types\nconst (\n\t// Pods, number\n\tResourcePods ResourceName = \"pods\"\n\t// Services, number\n\tResourceServices ResourceName = \"services\"\n\t// ReplicationControllers, number\n\tResourceReplicationControllers ResourceName = \"replicationcontrollers\"\n\t// ResourceQuotas, number\n\tResourceQuotas ResourceName = \"resourcequotas\"\n\t// ResourceSecrets, number\n\tResourceSecrets ResourceName = \"secrets\"\n\t// ResourceConfigMaps, number\n\tResourceConfigMaps ResourceName = \"configmaps\"\n\t// ResourcePersistentVolumeClaims, number\n\tResourcePersistentVolumeClaims ResourceName = \"persistentvolumeclaims\"\n\t// ResourceServicesNodePorts, number\n\tResourceServicesNodePorts ResourceName = \"services.nodeports\"\n\t// ResourceServicesLoadBalancers, number\n\tResourceServicesLoadBalancers ResourceName = \"services.loadbalancers\"\n\t// CPU request, in cores. (500m = .5 cores)\n\tResourceRequestsCPU ResourceName = \"requests.cpu\"\n\t// Memory request, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)\n\tResourceRequestsMemory ResourceName = \"requests.memory\"\n\t// Storage request, in bytes\n\tResourceRequestsStorage ResourceName = \"requests.storage\"\n\t// Local ephemeral storage request, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)\n\tResourceRequestsEphemeralStorage ResourceName = \"requests.ephemeral-storage\"\n\t// CPU limit, in cores. (500m = .5 cores)\n\tResourceLimitsCPU ResourceName = \"limits.cpu\"\n\t// Memory limit, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)\n\tResourceLimitsMemory ResourceName = \"limits.memory\"\n\t// Local ephemeral storage limit, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)\n\tResourceLimitsEphemeralStorage ResourceName = \"limits.ephemeral-storage\"\n\t// resource.k8s.io devices requested with a certain DeviceClass, number\n\tResourceClaimsPerClass string = \".deviceclass.resource.k8s.io/devices\"\n)\n\n// The following identify resource prefix for Kubernetes object types\nconst (\n\t// HugePages request, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)\n\t// As burst is not supported for HugePages, we would only quota its request, and ignore the limit.\n\tResourceRequestsHugePagesPrefix = \"requests.hugepages-\"\n\t// Default resource requests prefix\n\tDefaultResourceRequestsPrefix = \"requests.\"\n)\n\n// A ResourceQuotaScope defines a filter that must match each object tracked by a quota\n// +enum\ntype ResourceQuotaScope string\n\nconst (\n\t// Match all pod objects where spec.activeDeadlineSeconds >=0\n\tResourceQuotaScopeTerminating ResourceQuotaScope = \"Terminating\"\n\t// Match all pod objects where spec.activeDeadlineSeconds is nil\n\tResourceQuotaScopeNotTerminating ResourceQuotaScope = \"NotTerminating\"\n\t// Match all pod objects that have best effort quality of service\n\tResourceQuotaScopeBestEffort ResourceQuotaScope = \"BestEffort\"\n\t// Match all pod objects that do not have best effort quality of service\n\tResourceQuotaScopeNotBestEffort ResourceQuotaScope = \"NotBestEffort\"\n\t// Match all pod objects that have priority class mentioned\n\tResourceQuotaScopePriorityClass ResourceQuotaScope = \"PriorityClass\"\n\t// Match all pod objects that have cross-namespace pod (anti)affinity mentioned.\n\tResourceQuotaScopeCrossNamespacePodAffinity ResourceQuotaScope = \"CrossNamespacePodAffinity\"\n)\n\n// ResourceQuotaSpec defines the desired hard limits to enforce for Quota.\ntype ResourceQuotaSpec struct {\n\t// hard is the set of desired hard limits for each named resource.\n\t// More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/\n\t// +optional\n\tHard ResourceList `json:\"hard,omitempty\" protobuf:\"bytes,1,rep,name=hard,casttype=ResourceList,castkey=ResourceName\"`\n\t// A collection of filters that must match each object tracked by a quota.\n\t// If not specified, the quota matches all objects.\n\t// +optional\n\t// +listType=atomic\n\tScopes []ResourceQuotaScope `json:\"scopes,omitempty\" protobuf:\"bytes,2,rep,name=scopes,casttype=ResourceQuotaScope\"`\n\t// scopeSelector is also a collection of filters like scopes that must match each object tracked by a quota\n\t// but expressed using ScopeSelectorOperator in combination with possible values.\n\t// For a resource to match, both scopes AND scopeSelector (if specified in spec), must be matched.\n\t// +optional\n\tScopeSelector *ScopeSelector `json:\"scopeSelector,omitempty\" protobuf:\"bytes,3,opt,name=scopeSelector\"`\n}\n\n// A scope selector represents the AND of the selectors represented\n// by the scoped-resource selector requirements.\n// +structType=atomic\ntype ScopeSelector struct {\n\t// A list of scope selector requirements by scope of the resources.\n\t// +optional\n\t// +listType=atomic\n\tMatchExpressions []ScopedResourceSelectorRequirement `json:\"matchExpressions,omitempty\" protobuf:\"bytes,1,rep,name=matchExpressions\"`\n}\n\n// A scoped-resource selector requirement is a selector that contains values, a scope name, and an operator\n// that relates the scope name and values.\ntype ScopedResourceSelectorRequirement struct {\n\t// The name of the scope that the selector applies to.\n\tScopeName ResourceQuotaScope `json:\"scopeName\" protobuf:\"bytes,1,opt,name=scopeName\"`\n\t// Represents a scope's relationship to a set of values.\n\t// Valid operators are In, NotIn, Exists, DoesNotExist.\n\tOperator ScopeSelectorOperator `json:\"operator\" protobuf:\"bytes,2,opt,name=operator,casttype=ScopedResourceSelectorOperator\"`\n\t// An array of string values. If the operator is In or NotIn,\n\t// the values array must be non-empty. If the operator is Exists or DoesNotExist,\n\t// the values array must be empty.\n\t// This array is replaced during a strategic merge patch.\n\t// +optional\n\t// +listType=atomic\n\tValues []string `json:\"values,omitempty\" protobuf:\"bytes,3,rep,name=values\"`\n}\n\n// A scope selector operator is the set of operators that can be used in\n// a scope selector requirement.\n// +enum\ntype ScopeSelectorOperator string\n\nconst (\n\tScopeSelectorOpIn           ScopeSelectorOperator = \"In\"\n\tScopeSelectorOpNotIn        ScopeSelectorOperator = \"NotIn\"\n\tScopeSelectorOpExists       ScopeSelectorOperator = \"Exists\"\n\tScopeSelectorOpDoesNotExist ScopeSelectorOperator = \"DoesNotExist\"\n)\n\n// ResourceQuotaStatus defines the enforced hard limits and observed use.\ntype ResourceQuotaStatus struct {\n\t// Hard is the set of enforced hard limits for each named resource.\n\t// More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/\n\t// +optional\n\tHard ResourceList `json:\"hard,omitempty\" protobuf:\"bytes,1,rep,name=hard,casttype=ResourceList,castkey=ResourceName\"`\n\t// Used is the current observed total usage of the resource in the namespace.\n\t// +optional\n\tUsed ResourceList `json:\"used,omitempty\" protobuf:\"bytes,2,rep,name=used,casttype=ResourceList,castkey=ResourceName\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.0\n\n// ResourceQuota sets aggregate quota restrictions enforced per namespace\ntype ResourceQuota struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec defines the desired quota.\n\t// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec ResourceQuotaSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status defines the actual enforced quota and its current usage.\n\t// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus ResourceQuotaStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.0\n\n// ResourceQuotaList is a list of ResourceQuota items.\ntype ResourceQuotaList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is a list of ResourceQuota objects.\n\t// More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/\n\tItems []ResourceQuota `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.0\n\n// Secret holds secret data of a certain type. The total bytes of the values in\n// the Data field must be less than MaxSecretSize bytes.\ntype Secret struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Immutable, if set to true, ensures that data stored in the Secret cannot\n\t// be updated (only object metadata can be modified).\n\t// If not set to true, the field can be modified at any time.\n\t// Defaulted to nil.\n\t// +optional\n\tImmutable *bool `json:\"immutable,omitempty\" protobuf:\"varint,5,opt,name=immutable\"`\n\n\t// Data contains the secret data. Each key must consist of alphanumeric\n\t// characters, '-', '_' or '.'. The serialized form of the secret data is a\n\t// base64 encoded string, representing the arbitrary (possibly non-string)\n\t// data value here. Described in https://tools.ietf.org/html/rfc4648#section-4\n\t// +optional\n\tData map[string][]byte `json:\"data,omitempty\" protobuf:\"bytes,2,rep,name=data\"`\n\n\t// stringData allows specifying non-binary secret data in string form.\n\t// It is provided as a write-only input field for convenience.\n\t// All keys and values are merged into the data field on write, overwriting any existing values.\n\t// The stringData field is never output when reading from the API.\n\t// +k8s:conversion-gen=false\n\t// +optional\n\tStringData map[string]string `json:\"stringData,omitempty\" protobuf:\"bytes,4,rep,name=stringData\"`\n\n\t// Used to facilitate programmatic handling of secret data.\n\t// More info: https://kubernetes.io/docs/concepts/configuration/secret/#secret-types\n\t// +optional\n\tType SecretType `json:\"type,omitempty\" protobuf:\"bytes,3,opt,name=type,casttype=SecretType\"`\n}\n\nconst MaxSecretSize = 1 * 1024 * 1024\n\ntype SecretType string\n\nconst (\n\t// SecretTypeOpaque is the default. Arbitrary user-defined data\n\tSecretTypeOpaque SecretType = \"Opaque\"\n\n\t// SecretTypeServiceAccountToken contains a token that identifies a service account to the API\n\t//\n\t// Required fields:\n\t// - Secret.Annotations[\"kubernetes.io/service-account.name\"] - the name of the ServiceAccount the token identifies\n\t// - Secret.Annotations[\"kubernetes.io/service-account.uid\"] - the UID of the ServiceAccount the token identifies\n\t// - Secret.Data[\"token\"] - a token that identifies the service account to the API\n\tSecretTypeServiceAccountToken SecretType = \"kubernetes.io/service-account-token\"\n\n\t// ServiceAccountNameKey is the key of the required annotation for SecretTypeServiceAccountToken secrets\n\tServiceAccountNameKey = \"kubernetes.io/service-account.name\"\n\t// ServiceAccountUIDKey is the key of the required annotation for SecretTypeServiceAccountToken secrets\n\tServiceAccountUIDKey = \"kubernetes.io/service-account.uid\"\n\t// ServiceAccountTokenKey is the key of the required data for SecretTypeServiceAccountToken secrets\n\tServiceAccountTokenKey = \"token\"\n\t// ServiceAccountKubeconfigKey is the key of the optional kubeconfig data for SecretTypeServiceAccountToken secrets\n\tServiceAccountKubeconfigKey = \"kubernetes.kubeconfig\"\n\t// ServiceAccountRootCAKey is the key of the optional root certificate authority for SecretTypeServiceAccountToken secrets\n\tServiceAccountRootCAKey = \"ca.crt\"\n\t// ServiceAccountNamespaceKey is the key of the optional namespace to use as the default for namespaced API calls\n\tServiceAccountNamespaceKey = \"namespace\"\n\n\t// SecretTypeDockercfg contains a dockercfg file that follows the same format rules as ~/.dockercfg\n\t//\n\t// Required fields:\n\t// - Secret.Data[\".dockercfg\"] - a serialized ~/.dockercfg file\n\tSecretTypeDockercfg SecretType = \"kubernetes.io/dockercfg\"\n\n\t// DockerConfigKey is the key of the required data for SecretTypeDockercfg secrets\n\tDockerConfigKey = \".dockercfg\"\n\n\t// SecretTypeDockerConfigJson contains a dockercfg file that follows the same format rules as ~/.docker/config.json\n\t//\n\t// Required fields:\n\t// - Secret.Data[\".dockerconfigjson\"] - a serialized ~/.docker/config.json file\n\tSecretTypeDockerConfigJson SecretType = \"kubernetes.io/dockerconfigjson\"\n\n\t// DockerConfigJsonKey is the key of the required data for SecretTypeDockerConfigJson secrets\n\tDockerConfigJsonKey = \".dockerconfigjson\"\n\n\t// SecretTypeBasicAuth contains data needed for basic authentication.\n\t//\n\t// Required at least one of fields:\n\t// - Secret.Data[\"username\"] - username used for authentication\n\t// - Secret.Data[\"password\"] - password or token needed for authentication\n\tSecretTypeBasicAuth SecretType = \"kubernetes.io/basic-auth\"\n\n\t// BasicAuthUsernameKey is the key of the username for SecretTypeBasicAuth secrets\n\tBasicAuthUsernameKey = \"username\"\n\t// BasicAuthPasswordKey is the key of the password or token for SecretTypeBasicAuth secrets\n\tBasicAuthPasswordKey = \"password\"\n\n\t// SecretTypeSSHAuth contains data needed for SSH authetication.\n\t//\n\t// Required field:\n\t// - Secret.Data[\"ssh-privatekey\"] - private SSH key needed for authentication\n\tSecretTypeSSHAuth SecretType = \"kubernetes.io/ssh-auth\"\n\n\t// SSHAuthPrivateKey is the key of the required SSH private key for SecretTypeSSHAuth secrets\n\tSSHAuthPrivateKey = \"ssh-privatekey\"\n\t// SecretTypeTLS contains information about a TLS client or server secret. It\n\t// is primarily used with TLS termination of the Ingress resource, but may be\n\t// used in other types.\n\t//\n\t// Required fields:\n\t// - Secret.Data[\"tls.key\"] - TLS private key.\n\t//   Secret.Data[\"tls.crt\"] - TLS certificate.\n\t// TODO: Consider supporting different formats, specifying CA/destinationCA.\n\tSecretTypeTLS SecretType = \"kubernetes.io/tls\"\n\n\t// TLSCertKey is the key for tls certificates in a TLS secret.\n\tTLSCertKey = \"tls.crt\"\n\t// TLSPrivateKeyKey is the key for the private key field in a TLS secret.\n\tTLSPrivateKeyKey = \"tls.key\"\n\t// SecretTypeBootstrapToken is used during the automated bootstrap process (first\n\t// implemented by kubeadm). It stores tokens that are used to sign well known\n\t// ConfigMaps. They are used for authn.\n\tSecretTypeBootstrapToken SecretType = \"bootstrap.kubernetes.io/token\"\n)\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.0\n\n// SecretList is a list of Secret.\ntype SecretList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is a list of secret objects.\n\t// More info: https://kubernetes.io/docs/concepts/configuration/secret\n\tItems []Secret `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.2\n\n// ConfigMap holds configuration data for pods to consume.\ntype ConfigMap struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Immutable, if set to true, ensures that data stored in the ConfigMap cannot\n\t// be updated (only object metadata can be modified).\n\t// If not set to true, the field can be modified at any time.\n\t// Defaulted to nil.\n\t// +optional\n\tImmutable *bool `json:\"immutable,omitempty\" protobuf:\"varint,4,opt,name=immutable\"`\n\n\t// Data contains the configuration data.\n\t// Each key must consist of alphanumeric characters, '-', '_' or '.'.\n\t// Values with non-UTF-8 byte sequences must use the BinaryData field.\n\t// The keys stored in Data must not overlap with the keys in\n\t// the BinaryData field, this is enforced during validation process.\n\t// +optional\n\tData map[string]string `json:\"data,omitempty\" protobuf:\"bytes,2,rep,name=data\"`\n\n\t// BinaryData contains the binary data.\n\t// Each key must consist of alphanumeric characters, '-', '_' or '.'.\n\t// BinaryData can contain byte sequences that are not in the UTF-8 range.\n\t// The keys stored in BinaryData must not overlap with the ones in\n\t// the Data field, this is enforced during validation process.\n\t// Using this field will require 1.10+ apiserver and\n\t// kubelet.\n\t// +optional\n\tBinaryData map[string][]byte `json:\"binaryData,omitempty\" protobuf:\"bytes,3,rep,name=binaryData\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.2\n\n// ConfigMapList is a resource containing a list of ConfigMap objects.\ntype ConfigMapList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is the list of ConfigMaps.\n\tItems []ConfigMap `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// Type and constants for component health validation.\ntype ComponentConditionType string\n\n// These are the valid conditions for the component.\nconst (\n\tComponentHealthy ComponentConditionType = \"Healthy\"\n)\n\n// Information about the condition of a component.\ntype ComponentCondition struct {\n\t// Type of condition for a component.\n\t// Valid value: \"Healthy\"\n\tType ComponentConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=ComponentConditionType\"`\n\t// Status of the condition for a component.\n\t// Valid values for \"Healthy\": \"True\", \"False\", or \"Unknown\".\n\tStatus ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status,casttype=ConditionStatus\"`\n\t// Message about the condition for a component.\n\t// For example, information about a health check.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,3,opt,name=message\"`\n\t// Condition error code for a component.\n\t// For example, a health check error code.\n\t// +optional\n\tError string `json:\"error,omitempty\" protobuf:\"bytes,4,opt,name=error\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.0\n\n// ComponentStatus (and ComponentStatusList) holds the cluster validation info.\n// Deprecated: This API is deprecated in v1.19+\ntype ComponentStatus struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// List of component conditions observed\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=type\n\tConditions []ComponentCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,2,rep,name=conditions\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.0\n\n// Status of all the conditions for the component as a list of ComponentStatus objects.\n// Deprecated: This API is deprecated in v1.19+\ntype ComponentStatusList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// List of ComponentStatus objects.\n\tItems []ComponentStatus `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// DownwardAPIVolumeSource represents a volume containing downward API info.\n// Downward API volumes support ownership management and SELinux relabeling.\ntype DownwardAPIVolumeSource struct {\n\t// Items is a list of downward API volume file\n\t// +optional\n\t// +listType=atomic\n\tItems []DownwardAPIVolumeFile `json:\"items,omitempty\" protobuf:\"bytes,1,rep,name=items\"`\n\t// Optional: mode bits to use on created files by default. Must be a\n\t// Optional: mode bits used to set permissions on created files by default.\n\t// Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\n\t// YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\n\t// Defaults to 0644.\n\t// Directories within the path are not affected by this setting.\n\t// This might be in conflict with other options that affect the file\n\t// mode, like fsGroup, and the result can be other mode bits set.\n\t// +optional\n\tDefaultMode *int32 `json:\"defaultMode,omitempty\" protobuf:\"varint,2,opt,name=defaultMode\"`\n}\n\nconst (\n\tDownwardAPIVolumeSourceDefaultMode int32 = 0644\n)\n\n// DownwardAPIVolumeFile represents information to create the file containing the pod field\ntype DownwardAPIVolumeFile struct {\n\t// Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\n\tPath string `json:\"path\" protobuf:\"bytes,1,opt,name=path\"`\n\t// Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.\n\t// +optional\n\tFieldRef *ObjectFieldSelector `json:\"fieldRef,omitempty\" protobuf:\"bytes,2,opt,name=fieldRef\"`\n\t// Selects a resource of the container: only resources limits and requests\n\t// (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\n\t// +optional\n\tResourceFieldRef *ResourceFieldSelector `json:\"resourceFieldRef,omitempty\" protobuf:\"bytes,3,opt,name=resourceFieldRef\"`\n\t// Optional: mode bits used to set permissions on this file, must be an octal value\n\t// between 0000 and 0777 or a decimal value between 0 and 511.\n\t// YAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\n\t// If not specified, the volume defaultMode will be used.\n\t// This might be in conflict with other options that affect the file\n\t// mode, like fsGroup, and the result can be other mode bits set.\n\t// +optional\n\tMode *int32 `json:\"mode,omitempty\" protobuf:\"varint,4,opt,name=mode\"`\n}\n\n// Represents downward API info for projecting into a projected volume.\n// Note that this is identical to a downwardAPI volume source without the default\n// mode.\ntype DownwardAPIProjection struct {\n\t// Items is a list of DownwardAPIVolume file\n\t// +optional\n\t// +listType=atomic\n\tItems []DownwardAPIVolumeFile `json:\"items,omitempty\" protobuf:\"bytes,1,rep,name=items\"`\n}\n\n// SecurityContext holds security configuration that will be applied to a container.\n// Some fields are present in both SecurityContext and PodSecurityContext.  When both\n// are set, the values in SecurityContext take precedence.\ntype SecurityContext struct {\n\t// The capabilities to add/drop when running containers.\n\t// Defaults to the default set of capabilities granted by the container runtime.\n\t// Note that this field cannot be set when spec.os.name is windows.\n\t// +optional\n\tCapabilities *Capabilities `json:\"capabilities,omitempty\" protobuf:\"bytes,1,opt,name=capabilities\"`\n\t// Run container in privileged mode.\n\t// Processes in privileged containers are essentially equivalent to root on the host.\n\t// Defaults to false.\n\t// Note that this field cannot be set when spec.os.name is windows.\n\t// +optional\n\tPrivileged *bool `json:\"privileged,omitempty\" protobuf:\"varint,2,opt,name=privileged\"`\n\t// The SELinux context to be applied to the container.\n\t// If unspecified, the container runtime will allocate a random SELinux context for each\n\t// container.  May also be set in PodSecurityContext.  If set in both SecurityContext and\n\t// PodSecurityContext, the value specified in SecurityContext takes precedence.\n\t// Note that this field cannot be set when spec.os.name is windows.\n\t// +optional\n\tSELinuxOptions *SELinuxOptions `json:\"seLinuxOptions,omitempty\" protobuf:\"bytes,3,opt,name=seLinuxOptions\"`\n\t// The Windows specific settings applied to all containers.\n\t// If unspecified, the options from the PodSecurityContext will be used.\n\t// If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\n\t// Note that this field cannot be set when spec.os.name is linux.\n\t// +optional\n\tWindowsOptions *WindowsSecurityContextOptions `json:\"windowsOptions,omitempty\" protobuf:\"bytes,10,opt,name=windowsOptions\"`\n\t// The UID to run the entrypoint of the container process.\n\t// Defaults to user specified in image metadata if unspecified.\n\t// May also be set in PodSecurityContext.  If set in both SecurityContext and\n\t// PodSecurityContext, the value specified in SecurityContext takes precedence.\n\t// Note that this field cannot be set when spec.os.name is windows.\n\t// +optional\n\tRunAsUser *int64 `json:\"runAsUser,omitempty\" protobuf:\"varint,4,opt,name=runAsUser\"`\n\t// The GID to run the entrypoint of the container process.\n\t// Uses runtime default if unset.\n\t// May also be set in PodSecurityContext.  If set in both SecurityContext and\n\t// PodSecurityContext, the value specified in SecurityContext takes precedence.\n\t// Note that this field cannot be set when spec.os.name is windows.\n\t// +optional\n\tRunAsGroup *int64 `json:\"runAsGroup,omitempty\" protobuf:\"varint,8,opt,name=runAsGroup\"`\n\t// Indicates that the container must run as a non-root user.\n\t// If true, the Kubelet will validate the image at runtime to ensure that it\n\t// does not run as UID 0 (root) and fail to start the container if it does.\n\t// If unset or false, no such validation will be performed.\n\t// May also be set in PodSecurityContext.  If set in both SecurityContext and\n\t// PodSecurityContext, the value specified in SecurityContext takes precedence.\n\t// +optional\n\tRunAsNonRoot *bool `json:\"runAsNonRoot,omitempty\" protobuf:\"varint,5,opt,name=runAsNonRoot\"`\n\t// Whether this container has a read-only root filesystem.\n\t// Default is false.\n\t// Note that this field cannot be set when spec.os.name is windows.\n\t// +optional\n\tReadOnlyRootFilesystem *bool `json:\"readOnlyRootFilesystem,omitempty\" protobuf:\"varint,6,opt,name=readOnlyRootFilesystem\"`\n\t// AllowPrivilegeEscalation controls whether a process can gain more\n\t// privileges than its parent process. This bool directly controls if\n\t// the no_new_privs flag will be set on the container process.\n\t// AllowPrivilegeEscalation is true always when the container is:\n\t// 1) run as Privileged\n\t// 2) has CAP_SYS_ADMIN\n\t// Note that this field cannot be set when spec.os.name is windows.\n\t// +optional\n\tAllowPrivilegeEscalation *bool `json:\"allowPrivilegeEscalation,omitempty\" protobuf:\"varint,7,opt,name=allowPrivilegeEscalation\"`\n\t// procMount denotes the type of proc mount to use for the containers.\n\t// The default value is Default which uses the container runtime defaults for\n\t// readonly paths and masked paths.\n\t// This requires the ProcMountType feature flag to be enabled.\n\t// Note that this field cannot be set when spec.os.name is windows.\n\t// +optional\n\tProcMount *ProcMountType `json:\"procMount,omitempty\" protobuf:\"bytes,9,opt,name=procMount\"`\n\t// The seccomp options to use by this container. If seccomp options are\n\t// provided at both the pod & container level, the container options\n\t// override the pod options.\n\t// Note that this field cannot be set when spec.os.name is windows.\n\t// +optional\n\tSeccompProfile *SeccompProfile `json:\"seccompProfile,omitempty\" protobuf:\"bytes,11,opt,name=seccompProfile\"`\n\t// appArmorProfile is the AppArmor options to use by this container. If set, this profile\n\t// overrides the pod's appArmorProfile.\n\t// Note that this field cannot be set when spec.os.name is windows.\n\t// +optional\n\tAppArmorProfile *AppArmorProfile `json:\"appArmorProfile,omitempty\" protobuf:\"bytes,12,opt,name=appArmorProfile\"`\n}\n\n// +enum\ntype ProcMountType string\n\nconst (\n\t// DefaultProcMount uses the container runtime defaults for readonly and masked\n\t// paths for /proc.  Most container runtimes mask certain paths in /proc to avoid\n\t// accidental security exposure of special devices or information.\n\tDefaultProcMount ProcMountType = \"Default\"\n\n\t// UnmaskedProcMount bypasses the default masking behavior of the container\n\t// runtime and ensures the newly created /proc the container stays in tact with\n\t// no modifications.\n\tUnmaskedProcMount ProcMountType = \"Unmasked\"\n)\n\n// SELinuxOptions are the labels to be applied to the container\ntype SELinuxOptions struct {\n\t// User is a SELinux user label that applies to the container.\n\t// +optional\n\tUser string `json:\"user,omitempty\" protobuf:\"bytes,1,opt,name=user\"`\n\t// Role is a SELinux role label that applies to the container.\n\t// +optional\n\tRole string `json:\"role,omitempty\" protobuf:\"bytes,2,opt,name=role\"`\n\t// Type is a SELinux type label that applies to the container.\n\t// +optional\n\tType string `json:\"type,omitempty\" protobuf:\"bytes,3,opt,name=type\"`\n\t// Level is SELinux level label that applies to the container.\n\t// +optional\n\tLevel string `json:\"level,omitempty\" protobuf:\"bytes,4,opt,name=level\"`\n}\n\n// WindowsSecurityContextOptions contain Windows-specific options and credentials.\ntype WindowsSecurityContextOptions struct {\n\t// GMSACredentialSpecName is the name of the GMSA credential spec to use.\n\t// +optional\n\tGMSACredentialSpecName *string `json:\"gmsaCredentialSpecName,omitempty\" protobuf:\"bytes,1,opt,name=gmsaCredentialSpecName\"`\n\n\t// GMSACredentialSpec is where the GMSA admission webhook\n\t// (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\n\t// GMSA credential spec named by the GMSACredentialSpecName field.\n\t// +optional\n\tGMSACredentialSpec *string `json:\"gmsaCredentialSpec,omitempty\" protobuf:\"bytes,2,opt,name=gmsaCredentialSpec\"`\n\n\t// The UserName in Windows to run the entrypoint of the container process.\n\t// Defaults to the user specified in image metadata if unspecified.\n\t// May also be set in PodSecurityContext. If set in both SecurityContext and\n\t// PodSecurityContext, the value specified in SecurityContext takes precedence.\n\t// +optional\n\tRunAsUserName *string `json:\"runAsUserName,omitempty\" protobuf:\"bytes,3,opt,name=runAsUserName\"`\n\n\t// HostProcess determines if a container should be run as a 'Host Process' container.\n\t// All of a Pod's containers must have the same effective HostProcess value\n\t// (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\n\t// In addition, if HostProcess is true then HostNetwork must also be set to true.\n\t// +optional\n\tHostProcess *bool `json:\"hostProcess,omitempty\" protobuf:\"bytes,4,opt,name=hostProcess\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.0\n\n// RangeAllocation is not a public type.\ntype RangeAllocation struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Range is string that identifies the range represented by 'data'.\n\tRange string `json:\"range\" protobuf:\"bytes,2,opt,name=range\"`\n\t// Data is a bit array containing all allocated addresses in the previous segment.\n\tData []byte `json:\"data\" protobuf:\"bytes,3,opt,name=data\"`\n}\n\nconst (\n\t// DefaultSchedulerName defines the name of default scheduler.\n\tDefaultSchedulerName = \"default-scheduler\"\n\n\t// RequiredDuringScheduling affinity is not symmetric, but there is an implicit PreferredDuringScheduling affinity rule\n\t// corresponding to every RequiredDuringScheduling affinity rule.\n\t// When the --hard-pod-affinity-weight scheduler flag is not specified,\n\t// DefaultHardPodAffinityWeight defines the weight of the implicit PreferredDuringScheduling affinity rule.\n\tDefaultHardPodAffinitySymmetricWeight int32 = 1\n)\n\n// Sysctl defines a kernel parameter to be set\ntype Sysctl struct {\n\t// Name of a property to set\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\t// Value of a property to set\n\tValue string `json:\"value\" protobuf:\"bytes,2,opt,name=value\"`\n}\n\nconst (\n\t// Enable stdin for remote command execution\n\tExecStdinParam = \"input\"\n\t// Enable stdout for remote command execution\n\tExecStdoutParam = \"output\"\n\t// Enable stderr for remote command execution\n\tExecStderrParam = \"error\"\n\t// Enable TTY for remote command execution\n\tExecTTYParam = \"tty\"\n\t// Command to run for remote command execution\n\tExecCommandParam = \"command\"\n\n\t// Name of header that specifies stream type\n\tStreamType = \"streamType\"\n\t// Value for streamType header for stdin stream\n\tStreamTypeStdin = \"stdin\"\n\t// Value for streamType header for stdout stream\n\tStreamTypeStdout = \"stdout\"\n\t// Value for streamType header for stderr stream\n\tStreamTypeStderr = \"stderr\"\n\t// Value for streamType header for data stream\n\tStreamTypeData = \"data\"\n\t// Value for streamType header for error stream\n\tStreamTypeError = \"error\"\n\t// Value for streamType header for terminal resize stream\n\tStreamTypeResize = \"resize\"\n\n\t// Name of header that specifies the port being forwarded\n\tPortHeader = \"port\"\n\t// Name of header that specifies a request ID used to associate the error\n\t// and data streams for a single forwarded connection\n\tPortForwardRequestIDHeader = \"requestID\"\n)\n\nconst (\n\t// MixedProtocolNotSupported error in PortStatus means that the cloud provider\n\t// can't publish the port on the load balancer because mixed values of protocols\n\t// on the same LoadBalancer type of Service are not supported by the cloud provider.\n\tMixedProtocolNotSupported = \"MixedProtocolNotSupported\"\n)\n\n// PortStatus represents the error condition of a service port\ntype PortStatus struct {\n\t// Port is the port number of the service port of which status is recorded here\n\tPort int32 `json:\"port\" protobuf:\"varint,1,opt,name=port\"`\n\t// Protocol is the protocol of the service port of which status is recorded here\n\t// The supported values are: \"TCP\", \"UDP\", \"SCTP\"\n\tProtocol Protocol `json:\"protocol\" protobuf:\"bytes,2,opt,name=protocol,casttype=Protocol\"`\n\t// Error is to record the problem with the service port\n\t// The format of the error shall comply with the following rules:\n\t// - built-in error values shall be specified in this file and those shall use\n\t//   CamelCase names\n\t// - cloud provider specific error values must have names that comply with the\n\t//   format foo.example.com/CamelCase.\n\t// ---\n\t// The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)\n\t// +optional\n\t// +kubebuilder:validation:Required\n\t// +kubebuilder:validation:Pattern=`^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$`\n\t// +kubebuilder:validation:MaxLength=316\n\tError *string `json:\"error,omitempty\" protobuf:\"bytes,3,opt,name=error\"`\n}\n\n// LoadBalancerIPMode represents the mode of the LoadBalancer ingress IP\ntype LoadBalancerIPMode string\n\nconst (\n\t// LoadBalancerIPModeVIP indicates that traffic is delivered to the node with\n\t// the destination set to the load-balancer's IP and port.\n\tLoadBalancerIPModeVIP LoadBalancerIPMode = \"VIP\"\n\t// LoadBalancerIPModeProxy indicates that traffic is delivered to the node or pod with\n\t// the destination set to the node's IP and port or the pod's IP and port.\n\tLoadBalancerIPModeProxy LoadBalancerIPMode = \"Proxy\"\n)\n\n// ImageVolumeSource represents a image volume resource.\ntype ImageVolumeSource struct {\n\t// Required: Image or artifact reference to be used.\n\t// Behaves in the same way as pod.spec.containers[*].image.\n\t// Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets.\n\t// More info: https://kubernetes.io/docs/concepts/containers/images\n\t// This field is optional to allow higher level config management to default or override\n\t// container images in workload controllers like Deployments and StatefulSets.\n\t// +optional\n\tReference string `json:\"reference,omitempty\" protobuf:\"bytes,1,opt,name=reference\"`\n\n\t// Policy for pulling OCI objects. Possible values are:\n\t// Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails.\n\t// Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present.\n\t// IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.\n\t// Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.\n\t// +optional\n\tPullPolicy PullPolicy `json:\"pullPolicy,omitempty\" protobuf:\"bytes,2,opt,name=pullPolicy,casttype=PullPolicy\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/core/v1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_AWSElasticBlockStoreVolumeSource = map[string]string{\n\t\"\":          \"Represents a Persistent Disk resource in AWS.\\n\\nAn AWS EBS disk must exist before mounting to a container. The disk must also be in the same AWS zone as the kubelet. An AWS EBS disk can only be mounted as read/write once. AWS EBS volumes support ownership management and SELinux relabeling.\",\n\t\"volumeID\":  \"volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n\t\"fsType\":    \"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n\t\"partition\": \"partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty).\",\n\t\"readOnly\":  \"readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n}\n\nfunc (AWSElasticBlockStoreVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_AWSElasticBlockStoreVolumeSource\n}\n\nvar map_Affinity = map[string]string{\n\t\"\":                \"Affinity is a group of affinity scheduling rules.\",\n\t\"nodeAffinity\":    \"Describes node affinity scheduling rules for the pod.\",\n\t\"podAffinity\":     \"Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\",\n\t\"podAntiAffinity\": \"Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).\",\n}\n\nfunc (Affinity) SwaggerDoc() map[string]string {\n\treturn map_Affinity\n}\n\nvar map_AppArmorProfile = map[string]string{\n\t\"\":                 \"AppArmorProfile defines a pod or container's AppArmor settings.\",\n\t\"type\":             \"type indicates which kind of AppArmor profile will be applied. Valid options are:\\n  Localhost - a profile pre-loaded on the node.\\n  RuntimeDefault - the container runtime's default profile.\\n  Unconfined - no AppArmor enforcement.\",\n\t\"localhostProfile\": \"localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is \\\"Localhost\\\".\",\n}\n\nfunc (AppArmorProfile) SwaggerDoc() map[string]string {\n\treturn map_AppArmorProfile\n}\n\nvar map_AttachedVolume = map[string]string{\n\t\"\":           \"AttachedVolume describes a volume attached to a node\",\n\t\"name\":       \"Name of the attached volume\",\n\t\"devicePath\": \"DevicePath represents the device path where the volume should be available\",\n}\n\nfunc (AttachedVolume) SwaggerDoc() map[string]string {\n\treturn map_AttachedVolume\n}\n\nvar map_AvoidPods = map[string]string{\n\t\"\":                \"AvoidPods describes pods that should avoid this node. This is the value for a Node annotation with key scheduler.alpha.kubernetes.io/preferAvoidPods and will eventually become a field of NodeStatus.\",\n\t\"preferAvoidPods\": \"Bounded-sized list of signatures of pods that should avoid this node, sorted in timestamp order from oldest to newest. Size of the slice is unspecified.\",\n}\n\nfunc (AvoidPods) SwaggerDoc() map[string]string {\n\treturn map_AvoidPods\n}\n\nvar map_AzureDiskVolumeSource = map[string]string{\n\t\"\":            \"AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\",\n\t\"diskName\":    \"diskName is the Name of the data disk in the blob storage\",\n\t\"diskURI\":     \"diskURI is the URI of data disk in the blob storage\",\n\t\"cachingMode\": \"cachingMode is the Host Caching mode: None, Read Only, Read Write.\",\n\t\"fsType\":      \"fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n\t\"readOnly\":    \"readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n\t\"kind\":        \"kind expected values are Shared: multiple blob disks per storage account  Dedicated: single blob disk per storage account  Managed: azure managed data disk (only in managed availability set). defaults to shared\",\n}\n\nfunc (AzureDiskVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_AzureDiskVolumeSource\n}\n\nvar map_AzureFilePersistentVolumeSource = map[string]string{\n\t\"\":                \"AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\n\t\"secretName\":      \"secretName is the name of secret that contains Azure Storage Account Name and Key\",\n\t\"shareName\":       \"shareName is the azure Share Name\",\n\t\"readOnly\":        \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n\t\"secretNamespace\": \"secretNamespace is the namespace of the secret that contains Azure Storage Account Name and Key default is the same as the Pod\",\n}\n\nfunc (AzureFilePersistentVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_AzureFilePersistentVolumeSource\n}\n\nvar map_AzureFileVolumeSource = map[string]string{\n\t\"\":           \"AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\",\n\t\"secretName\": \"secretName is the  name of secret that contains Azure Storage Account Name and Key\",\n\t\"shareName\":  \"shareName is the azure share Name\",\n\t\"readOnly\":   \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n}\n\nfunc (AzureFileVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_AzureFileVolumeSource\n}\n\nvar map_Binding = map[string]string{\n\t\"\":         \"Binding ties one object to another; for example, a pod is bound to a node by a scheduler.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"target\":   \"The target object that you want to bind to the standard object.\",\n}\n\nfunc (Binding) SwaggerDoc() map[string]string {\n\treturn map_Binding\n}\n\nvar map_CSIPersistentVolumeSource = map[string]string{\n\t\"\":                           \"Represents storage that is managed by an external CSI volume driver\",\n\t\"driver\":                     \"driver is the name of the driver to use for this volume. Required.\",\n\t\"volumeHandle\":               \"volumeHandle is the unique volume name returned by the CSI volume plugin’s CreateVolume to refer to the volume on all subsequent calls. Required.\",\n\t\"readOnly\":                   \"readOnly value to pass to ControllerPublishVolumeRequest. Defaults to false (read/write).\",\n\t\"fsType\":                     \"fsType to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\".\",\n\t\"volumeAttributes\":           \"volumeAttributes of the volume to publish.\",\n\t\"controllerPublishSecretRef\": \"controllerPublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI ControllerPublishVolume and ControllerUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.\",\n\t\"nodeStageSecretRef\":         \"nodeStageSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodeStageVolume and NodeStageVolume and NodeUnstageVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.\",\n\t\"nodePublishSecretRef\":       \"nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.\",\n\t\"controllerExpandSecretRef\":  \"controllerExpandSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI ControllerExpandVolume call. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.\",\n\t\"nodeExpandSecretRef\":        \"nodeExpandSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodeExpandVolume call. This field is optional, may be omitted if no secret is required. If the secret object contains more than one secret, all secrets are passed.\",\n}\n\nfunc (CSIPersistentVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_CSIPersistentVolumeSource\n}\n\nvar map_CSIVolumeSource = map[string]string{\n\t\"\":                     \"Represents a source location of a volume to mount, managed by an external CSI driver\",\n\t\"driver\":               \"driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.\",\n\t\"readOnly\":             \"readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).\",\n\t\"fsType\":               \"fsType to mount. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.\",\n\t\"volumeAttributes\":     \"volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.\",\n\t\"nodePublishSecretRef\": \"nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and  may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.\",\n}\n\nfunc (CSIVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_CSIVolumeSource\n}\n\nvar map_Capabilities = map[string]string{\n\t\"\":     \"Adds and removes POSIX capabilities from running containers.\",\n\t\"add\":  \"Added capabilities\",\n\t\"drop\": \"Removed capabilities\",\n}\n\nfunc (Capabilities) SwaggerDoc() map[string]string {\n\treturn map_Capabilities\n}\n\nvar map_CephFSPersistentVolumeSource = map[string]string{\n\t\"\":           \"Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.\",\n\t\"monitors\":   \"monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n\t\"path\":       \"path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\n\t\"user\":       \"user is Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n\t\"secretFile\": \"secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n\t\"secretRef\":  \"secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n\t\"readOnly\":   \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n}\n\nfunc (CephFSPersistentVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_CephFSPersistentVolumeSource\n}\n\nvar map_CephFSVolumeSource = map[string]string{\n\t\"\":           \"Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.\",\n\t\"monitors\":   \"monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n\t\"path\":       \"path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /\",\n\t\"user\":       \"user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n\t\"secretFile\": \"secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n\t\"secretRef\":  \"secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n\t\"readOnly\":   \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\",\n}\n\nfunc (CephFSVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_CephFSVolumeSource\n}\n\nvar map_CinderPersistentVolumeSource = map[string]string{\n\t\"\":          \"Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.\",\n\t\"volumeID\":  \"volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n\t\"fsType\":    \"fsType Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n\t\"readOnly\":  \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n\t\"secretRef\": \"secretRef is Optional: points to a secret object containing parameters used to connect to OpenStack.\",\n}\n\nfunc (CinderPersistentVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_CinderPersistentVolumeSource\n}\n\nvar map_CinderVolumeSource = map[string]string{\n\t\"\":          \"Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.\",\n\t\"volumeID\":  \"volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n\t\"fsType\":    \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n\t\"readOnly\":  \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n\t\"secretRef\": \"secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.\",\n}\n\nfunc (CinderVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_CinderVolumeSource\n}\n\nvar map_ClientIPConfig = map[string]string{\n\t\"\":               \"ClientIPConfig represents the configurations of Client IP based session affinity.\",\n\t\"timeoutSeconds\": \"timeoutSeconds specifies the seconds of ClientIP type session sticky time. The value must be >0 && <=86400(for 1 day) if ServiceAffinity == \\\"ClientIP\\\". Default value is 10800(for 3 hours).\",\n}\n\nfunc (ClientIPConfig) SwaggerDoc() map[string]string {\n\treturn map_ClientIPConfig\n}\n\nvar map_ClusterTrustBundleProjection = map[string]string{\n\t\"\":              \"ClusterTrustBundleProjection describes how to select a set of ClusterTrustBundle objects and project their contents into the pod filesystem.\",\n\t\"name\":          \"Select a single ClusterTrustBundle by object name.  Mutually-exclusive with signerName and labelSelector.\",\n\t\"signerName\":    \"Select all ClusterTrustBundles that match this signer name. Mutually-exclusive with name.  The contents of all selected ClusterTrustBundles will be unified and deduplicated.\",\n\t\"labelSelector\": \"Select all ClusterTrustBundles that match this label selector.  Only has effect if signerName is set.  Mutually-exclusive with name.  If unset, interpreted as \\\"match nothing\\\".  If set but empty, interpreted as \\\"match everything\\\".\",\n\t\"optional\":      \"If true, don't block pod startup if the referenced ClusterTrustBundle(s) aren't available.  If using name, then the named ClusterTrustBundle is allowed not to exist.  If using signerName, then the combination of signerName and labelSelector is allowed to match zero ClusterTrustBundles.\",\n\t\"path\":          \"Relative path from the volume root to write the bundle.\",\n}\n\nfunc (ClusterTrustBundleProjection) SwaggerDoc() map[string]string {\n\treturn map_ClusterTrustBundleProjection\n}\n\nvar map_ComponentCondition = map[string]string{\n\t\"\":        \"Information about the condition of a component.\",\n\t\"type\":    \"Type of condition for a component. Valid value: \\\"Healthy\\\"\",\n\t\"status\":  \"Status of the condition for a component. Valid values for \\\"Healthy\\\": \\\"True\\\", \\\"False\\\", or \\\"Unknown\\\".\",\n\t\"message\": \"Message about the condition for a component. For example, information about a health check.\",\n\t\"error\":   \"Condition error code for a component. For example, a health check error code.\",\n}\n\nfunc (ComponentCondition) SwaggerDoc() map[string]string {\n\treturn map_ComponentCondition\n}\n\nvar map_ComponentStatus = map[string]string{\n\t\"\":           \"ComponentStatus (and ComponentStatusList) holds the cluster validation info. Deprecated: This API is deprecated in v1.19+\",\n\t\"metadata\":   \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"conditions\": \"List of component conditions observed\",\n}\n\nfunc (ComponentStatus) SwaggerDoc() map[string]string {\n\treturn map_ComponentStatus\n}\n\nvar map_ComponentStatusList = map[string]string{\n\t\"\":         \"Status of all the conditions for the component as a list of ComponentStatus objects. Deprecated: This API is deprecated in v1.19+\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of ComponentStatus objects.\",\n}\n\nfunc (ComponentStatusList) SwaggerDoc() map[string]string {\n\treturn map_ComponentStatusList\n}\n\nvar map_ConfigMap = map[string]string{\n\t\"\":           \"ConfigMap holds configuration data for pods to consume.\",\n\t\"metadata\":   \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"immutable\":  \"Immutable, if set to true, ensures that data stored in the ConfigMap cannot be updated (only object metadata can be modified). If not set to true, the field can be modified at any time. Defaulted to nil.\",\n\t\"data\":       \"Data contains the configuration data. Each key must consist of alphanumeric characters, '-', '_' or '.'. Values with non-UTF-8 byte sequences must use the BinaryData field. The keys stored in Data must not overlap with the keys in the BinaryData field, this is enforced during validation process.\",\n\t\"binaryData\": \"BinaryData contains the binary data. Each key must consist of alphanumeric characters, '-', '_' or '.'. BinaryData can contain byte sequences that are not in the UTF-8 range. The keys stored in BinaryData must not overlap with the ones in the Data field, this is enforced during validation process. Using this field will require 1.10+ apiserver and kubelet.\",\n}\n\nfunc (ConfigMap) SwaggerDoc() map[string]string {\n\treturn map_ConfigMap\n}\n\nvar map_ConfigMapEnvSource = map[string]string{\n\t\"\":         \"ConfigMapEnvSource selects a ConfigMap to populate the environment variables with.\\n\\nThe contents of the target ConfigMap's Data field will represent the key-value pairs as environment variables.\",\n\t\"optional\": \"Specify whether the ConfigMap must be defined\",\n}\n\nfunc (ConfigMapEnvSource) SwaggerDoc() map[string]string {\n\treturn map_ConfigMapEnvSource\n}\n\nvar map_ConfigMapKeySelector = map[string]string{\n\t\"\":         \"Selects a key from a ConfigMap.\",\n\t\"key\":      \"The key to select.\",\n\t\"optional\": \"Specify whether the ConfigMap or its key must be defined\",\n}\n\nfunc (ConfigMapKeySelector) SwaggerDoc() map[string]string {\n\treturn map_ConfigMapKeySelector\n}\n\nvar map_ConfigMapList = map[string]string{\n\t\"\":         \"ConfigMapList is a resource containing a list of ConfigMap objects.\",\n\t\"metadata\": \"More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"Items is the list of ConfigMaps.\",\n}\n\nfunc (ConfigMapList) SwaggerDoc() map[string]string {\n\treturn map_ConfigMapList\n}\n\nvar map_ConfigMapNodeConfigSource = map[string]string{\n\t\"\":                 \"ConfigMapNodeConfigSource contains the information to reference a ConfigMap as a config source for the Node. This API is deprecated since 1.22: https://git.k8s.io/enhancements/keps/sig-node/281-dynamic-kubelet-configuration\",\n\t\"namespace\":        \"Namespace is the metadata.namespace of the referenced ConfigMap. This field is required in all cases.\",\n\t\"name\":             \"Name is the metadata.name of the referenced ConfigMap. This field is required in all cases.\",\n\t\"uid\":              \"UID is the metadata.UID of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status.\",\n\t\"resourceVersion\":  \"ResourceVersion is the metadata.ResourceVersion of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status.\",\n\t\"kubeletConfigKey\": \"KubeletConfigKey declares which key of the referenced ConfigMap corresponds to the KubeletConfiguration structure This field is required in all cases.\",\n}\n\nfunc (ConfigMapNodeConfigSource) SwaggerDoc() map[string]string {\n\treturn map_ConfigMapNodeConfigSource\n}\n\nvar map_ConfigMapProjection = map[string]string{\n\t\"\":         \"Adapts a ConfigMap into a projected volume.\\n\\nThe contents of the target ConfigMap's Data field will be presented in a projected volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. Note that this is identical to a configmap volume source without the default mode.\",\n\t\"items\":    \"items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n\t\"optional\": \"optional specify whether the ConfigMap or its keys must be defined\",\n}\n\nfunc (ConfigMapProjection) SwaggerDoc() map[string]string {\n\treturn map_ConfigMapProjection\n}\n\nvar map_ConfigMapVolumeSource = map[string]string{\n\t\"\":            \"Adapts a ConfigMap into a volume.\\n\\nThe contents of the target ConfigMap's Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. ConfigMap volumes support ownership management and SELinux relabeling.\",\n\t\"items\":       \"items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n\t\"defaultMode\": \"defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n\t\"optional\":    \"optional specify whether the ConfigMap or its keys must be defined\",\n}\n\nfunc (ConfigMapVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_ConfigMapVolumeSource\n}\n\nvar map_Container = map[string]string{\n\t\"\":                         \"A single application container that you want to run within a pod.\",\n\t\"name\":                     \"Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.\",\n\t\"image\":                    \"Container image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.\",\n\t\"command\":                  \"Entrypoint array. Not executed within a shell. The container image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n\t\"args\":                     \"Arguments to the entrypoint. The container image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n\t\"workingDir\":               \"Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.\",\n\t\"ports\":                    \"List of ports to expose from the container. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \\\"0.0.0.0\\\" address inside a container will be accessible from the network. Modifying this array with strategic merge patch may corrupt the data. For more information See https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated.\",\n\t\"envFrom\":                  \"List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.\",\n\t\"env\":                      \"List of environment variables to set in the container. Cannot be updated.\",\n\t\"resources\":                \"Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n\t\"resizePolicy\":             \"Resources resize policy for the container.\",\n\t\"restartPolicy\":            \"RestartPolicy defines the restart behavior of individual containers in a pod. This field may only be set for init containers, and the only allowed value is \\\"Always\\\". For non-init containers or when this field is not specified, the restart behavior is defined by the Pod's restart policy and the container type. Setting the RestartPolicy as \\\"Always\\\" for the init container will have the following effect: this init container will be continually restarted on exit until all regular containers have terminated. Once all regular containers have completed, all init containers with restartPolicy \\\"Always\\\" will be shut down. This lifecycle differs from normal init containers and is often referred to as a \\\"sidecar\\\" container. Although this init container still starts in the init container sequence, it does not wait for the container to complete before proceeding to the next init container. Instead, the next init container starts immediately after this init container is started, or after any startupProbe has successfully completed.\",\n\t\"volumeMounts\":             \"Pod volumes to mount into the container's filesystem. Cannot be updated.\",\n\t\"volumeDevices\":            \"volumeDevices is the list of block devices to be used by the container.\",\n\t\"livenessProbe\":            \"Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n\t\"readinessProbe\":           \"Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n\t\"startupProbe\":             \"StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n\t\"lifecycle\":                \"Actions that the management system should take in response to container lifecycle events. Cannot be updated.\",\n\t\"terminationMessagePath\":   \"Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.\",\n\t\"terminationMessagePolicy\": \"Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.\",\n\t\"imagePullPolicy\":          \"Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n\t\"securityContext\":          \"SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\",\n\t\"stdin\":                    \"Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.\",\n\t\"stdinOnce\":                \"Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false\",\n\t\"tty\":                      \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.\",\n}\n\nfunc (Container) SwaggerDoc() map[string]string {\n\treturn map_Container\n}\n\nvar map_ContainerImage = map[string]string{\n\t\"\":          \"Describe a container image\",\n\t\"names\":     \"Names by which this image is known. e.g. [\\\"kubernetes.example/hyperkube:v1.0.7\\\", \\\"cloud-vendor.registry.example/cloud-vendor/hyperkube:v1.0.7\\\"]\",\n\t\"sizeBytes\": \"The size of the image in bytes.\",\n}\n\nfunc (ContainerImage) SwaggerDoc() map[string]string {\n\treturn map_ContainerImage\n}\n\nvar map_ContainerPort = map[string]string{\n\t\"\":              \"ContainerPort represents a network port in a single container.\",\n\t\"name\":          \"If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.\",\n\t\"hostPort\":      \"Number of port to expose on the host. If specified, this must be a valid port number, 0 < x < 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this.\",\n\t\"containerPort\": \"Number of port to expose on the pod's IP address. This must be a valid port number, 0 < x < 65536.\",\n\t\"protocol\":      \"Protocol for port. Must be UDP, TCP, or SCTP. Defaults to \\\"TCP\\\".\",\n\t\"hostIP\":        \"What host IP to bind the external port to.\",\n}\n\nfunc (ContainerPort) SwaggerDoc() map[string]string {\n\treturn map_ContainerPort\n}\n\nvar map_ContainerResizePolicy = map[string]string{\n\t\"\":              \"ContainerResizePolicy represents resource resize policy for the container.\",\n\t\"resourceName\":  \"Name of the resource to which this resource resize policy applies. Supported values: cpu, memory.\",\n\t\"restartPolicy\": \"Restart policy to apply when specified resource is resized. If not specified, it defaults to NotRequired.\",\n}\n\nfunc (ContainerResizePolicy) SwaggerDoc() map[string]string {\n\treturn map_ContainerResizePolicy\n}\n\nvar map_ContainerState = map[string]string{\n\t\"\":           \"ContainerState holds a possible state of container. Only one of its members may be specified. If none of them is specified, the default one is ContainerStateWaiting.\",\n\t\"waiting\":    \"Details about a waiting container\",\n\t\"running\":    \"Details about a running container\",\n\t\"terminated\": \"Details about a terminated container\",\n}\n\nfunc (ContainerState) SwaggerDoc() map[string]string {\n\treturn map_ContainerState\n}\n\nvar map_ContainerStateRunning = map[string]string{\n\t\"\":          \"ContainerStateRunning is a running state of a container.\",\n\t\"startedAt\": \"Time at which the container was last (re-)started\",\n}\n\nfunc (ContainerStateRunning) SwaggerDoc() map[string]string {\n\treturn map_ContainerStateRunning\n}\n\nvar map_ContainerStateTerminated = map[string]string{\n\t\"\":            \"ContainerStateTerminated is a terminated state of a container.\",\n\t\"exitCode\":    \"Exit status from the last termination of the container\",\n\t\"signal\":      \"Signal from the last termination of the container\",\n\t\"reason\":      \"(brief) reason from the last termination of the container\",\n\t\"message\":     \"Message regarding the last termination of the container\",\n\t\"startedAt\":   \"Time at which previous execution of the container started\",\n\t\"finishedAt\":  \"Time at which the container last terminated\",\n\t\"containerID\": \"Container's ID in the format '<type>://<container_id>'\",\n}\n\nfunc (ContainerStateTerminated) SwaggerDoc() map[string]string {\n\treturn map_ContainerStateTerminated\n}\n\nvar map_ContainerStateWaiting = map[string]string{\n\t\"\":        \"ContainerStateWaiting is a waiting state of a container.\",\n\t\"reason\":  \"(brief) reason the container is not yet running.\",\n\t\"message\": \"Message regarding why the container is not yet running.\",\n}\n\nfunc (ContainerStateWaiting) SwaggerDoc() map[string]string {\n\treturn map_ContainerStateWaiting\n}\n\nvar map_ContainerStatus = map[string]string{\n\t\"\":                         \"ContainerStatus contains details for the current status of this container.\",\n\t\"name\":                     \"Name is a DNS_LABEL representing the unique name of the container. Each container in a pod must have a unique name across all container types. Cannot be updated.\",\n\t\"state\":                    \"State holds details about the container's current condition.\",\n\t\"lastState\":                \"LastTerminationState holds the last termination state of the container to help debug container crashes and restarts. This field is not populated if the container is still running and RestartCount is 0.\",\n\t\"ready\":                    \"Ready specifies whether the container is currently passing its readiness check. The value will change as readiness probes keep executing. If no readiness probes are specified, this field defaults to true once the container is fully started (see Started field).\\n\\nThe value is typically used to determine whether a container is ready to accept traffic.\",\n\t\"restartCount\":             \"RestartCount holds the number of times the container has been restarted. Kubelet makes an effort to always increment the value, but there are cases when the state may be lost due to node restarts and then the value may be reset to 0. The value is never negative.\",\n\t\"image\":                    \"Image is the name of container image that the container is running. The container image may not match the image used in the PodSpec, as it may have been resolved by the runtime. More info: https://kubernetes.io/docs/concepts/containers/images.\",\n\t\"imageID\":                  \"ImageID is the image ID of the container's image. The image ID may not match the image ID of the image used in the PodSpec, as it may have been resolved by the runtime.\",\n\t\"containerID\":              \"ContainerID is the ID of the container in the format '<type>://<container_id>'. Where type is a container runtime identifier, returned from Version call of CRI API (for example \\\"containerd\\\").\",\n\t\"started\":                  \"Started indicates whether the container has finished its postStart lifecycle hook and passed its startup probe. Initialized as false, becomes true after startupProbe is considered successful. Resets to false when the container is restarted, or if kubelet loses state temporarily. In both cases, startup probes will run again. Is always true when no startupProbe is defined and container is running and has passed the postStart lifecycle hook. The null value must be treated the same as false.\",\n\t\"allocatedResources\":       \"AllocatedResources represents the compute resources allocated for this container by the node. Kubelet sets this value to Container.Resources.Requests upon successful pod admission and after successfully admitting desired pod resize.\",\n\t\"resources\":                \"Resources represents the compute resource requests and limits that have been successfully enacted on the running container after it has been started or has been successfully resized.\",\n\t\"volumeMounts\":             \"Status of volume mounts.\",\n\t\"user\":                     \"User represents user identity information initially attached to the first process of the container\",\n\t\"allocatedResourcesStatus\": \"AllocatedResourcesStatus represents the status of various resources allocated for this Pod.\",\n}\n\nfunc (ContainerStatus) SwaggerDoc() map[string]string {\n\treturn map_ContainerStatus\n}\n\nvar map_ContainerUser = map[string]string{\n\t\"\":      \"ContainerUser represents user identity information\",\n\t\"linux\": \"Linux holds user identity information initially attached to the first process of the containers in Linux. Note that the actual running identity can be changed if the process has enough privilege to do so.\",\n}\n\nfunc (ContainerUser) SwaggerDoc() map[string]string {\n\treturn map_ContainerUser\n}\n\nvar map_DaemonEndpoint = map[string]string{\n\t\"\":     \"DaemonEndpoint contains information about a single Daemon endpoint.\",\n\t\"Port\": \"Port number of the given endpoint.\",\n}\n\nfunc (DaemonEndpoint) SwaggerDoc() map[string]string {\n\treturn map_DaemonEndpoint\n}\n\nvar map_DownwardAPIProjection = map[string]string{\n\t\"\":      \"Represents downward API info for projecting into a projected volume. Note that this is identical to a downwardAPI volume source without the default mode.\",\n\t\"items\": \"Items is a list of DownwardAPIVolume file\",\n}\n\nfunc (DownwardAPIProjection) SwaggerDoc() map[string]string {\n\treturn map_DownwardAPIProjection\n}\n\nvar map_DownwardAPIVolumeFile = map[string]string{\n\t\"\":                 \"DownwardAPIVolumeFile represents information to create the file containing the pod field\",\n\t\"path\":             \"Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'\",\n\t\"fieldRef\":         \"Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.\",\n\t\"resourceFieldRef\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\",\n\t\"mode\":             \"Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n}\n\nfunc (DownwardAPIVolumeFile) SwaggerDoc() map[string]string {\n\treturn map_DownwardAPIVolumeFile\n}\n\nvar map_DownwardAPIVolumeSource = map[string]string{\n\t\"\":            \"DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling.\",\n\t\"items\":       \"Items is a list of downward API volume file\",\n\t\"defaultMode\": \"Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n}\n\nfunc (DownwardAPIVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_DownwardAPIVolumeSource\n}\n\nvar map_EmptyDirVolumeSource = map[string]string{\n\t\"\":          \"Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.\",\n\t\"medium\":    \"medium represents what type of storage medium should back this directory. The default is \\\"\\\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n\t\"sizeLimit\": \"sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n}\n\nfunc (EmptyDirVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_EmptyDirVolumeSource\n}\n\nvar map_EndpointAddress = map[string]string{\n\t\"\":          \"EndpointAddress is a tuple that describes single IP address.\",\n\t\"ip\":        \"The IP of this endpoint. May not be loopback (127.0.0.0/8 or ::1), link-local (169.254.0.0/16 or fe80::/10), or link-local multicast (224.0.0.0/24 or ff02::/16).\",\n\t\"hostname\":  \"The Hostname of this endpoint\",\n\t\"nodeName\":  \"Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.\",\n\t\"targetRef\": \"Reference to object providing the endpoint.\",\n}\n\nfunc (EndpointAddress) SwaggerDoc() map[string]string {\n\treturn map_EndpointAddress\n}\n\nvar map_EndpointPort = map[string]string{\n\t\"\":            \"EndpointPort is a tuple that describes a single port.\",\n\t\"name\":        \"The name of this port.  This must match the 'name' field in the corresponding ServicePort. Must be a DNS_LABEL. Optional only if one port is defined.\",\n\t\"port\":        \"The port number of the endpoint.\",\n\t\"protocol\":    \"The IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.\",\n\t\"appProtocol\": \"The application protocol for this port. This is used as a hint for implementations to offer richer behavior for protocols that they understand. This field follows standard Kubernetes label syntax. Valid values are either:\\n\\n* Un-prefixed protocol names - reserved for IANA standard service names (as per RFC-6335 and https://www.iana.org/assignments/service-names).\\n\\n* Kubernetes-defined prefixed names:\\n  * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior-\\n  * 'kubernetes.io/ws'  - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455\\n  * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455\\n\\n* Other protocols should use implementation-defined prefixed names such as mycompany.com/my-custom-protocol.\",\n}\n\nfunc (EndpointPort) SwaggerDoc() map[string]string {\n\treturn map_EndpointPort\n}\n\nvar map_EndpointSubset = map[string]string{\n\t\"\":                  \"EndpointSubset is a group of addresses with a common set of ports. The expanded set of endpoints is the Cartesian product of Addresses x Ports. For example, given:\\n\\n\\t{\\n\\t  Addresses: [{\\\"ip\\\": \\\"10.10.1.1\\\"}, {\\\"ip\\\": \\\"10.10.2.2\\\"}],\\n\\t  Ports:     [{\\\"name\\\": \\\"a\\\", \\\"port\\\": 8675}, {\\\"name\\\": \\\"b\\\", \\\"port\\\": 309}]\\n\\t}\\n\\nThe resulting set of endpoints can be viewed as:\\n\\n\\ta: [ 10.10.1.1:8675, 10.10.2.2:8675 ],\\n\\tb: [ 10.10.1.1:309, 10.10.2.2:309 ]\",\n\t\"addresses\":         \"IP addresses which offer the related ports that are marked as ready. These endpoints should be considered safe for load balancers and clients to utilize.\",\n\t\"notReadyAddresses\": \"IP addresses which offer the related ports but are not currently marked as ready because they have not yet finished starting, have recently failed a readiness check, or have recently failed a liveness check.\",\n\t\"ports\":             \"Port numbers available on the related IP addresses.\",\n}\n\nfunc (EndpointSubset) SwaggerDoc() map[string]string {\n\treturn map_EndpointSubset\n}\n\nvar map_Endpoints = map[string]string{\n\t\"\":         \"Endpoints is a collection of endpoints that implement the actual service. Example:\\n\\n\\t Name: \\\"mysvc\\\",\\n\\t Subsets: [\\n\\t   {\\n\\t     Addresses: [{\\\"ip\\\": \\\"10.10.1.1\\\"}, {\\\"ip\\\": \\\"10.10.2.2\\\"}],\\n\\t     Ports: [{\\\"name\\\": \\\"a\\\", \\\"port\\\": 8675}, {\\\"name\\\": \\\"b\\\", \\\"port\\\": 309}]\\n\\t   },\\n\\t   {\\n\\t     Addresses: [{\\\"ip\\\": \\\"10.10.3.3\\\"}],\\n\\t     Ports: [{\\\"name\\\": \\\"a\\\", \\\"port\\\": 93}, {\\\"name\\\": \\\"b\\\", \\\"port\\\": 76}]\\n\\t   },\\n\\t]\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"subsets\":  \"The set of all endpoints is the union of all subsets. Addresses are placed into subsets according to the IPs they share. A single address with multiple ports, some of which are ready and some of which are not (because they come from different containers) will result in the address being displayed in different subsets for the different ports. No address will appear in both Addresses and NotReadyAddresses in the same subset. Sets of addresses and ports that comprise a service.\",\n}\n\nfunc (Endpoints) SwaggerDoc() map[string]string {\n\treturn map_Endpoints\n}\n\nvar map_EndpointsList = map[string]string{\n\t\"\":         \"EndpointsList is a list of endpoints.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of endpoints.\",\n}\n\nfunc (EndpointsList) SwaggerDoc() map[string]string {\n\treturn map_EndpointsList\n}\n\nvar map_EnvFromSource = map[string]string{\n\t\"\":             \"EnvFromSource represents the source of a set of ConfigMaps\",\n\t\"prefix\":       \"An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\",\n\t\"configMapRef\": \"The ConfigMap to select from\",\n\t\"secretRef\":    \"The Secret to select from\",\n}\n\nfunc (EnvFromSource) SwaggerDoc() map[string]string {\n\treturn map_EnvFromSource\n}\n\nvar map_EnvVar = map[string]string{\n\t\"\":          \"EnvVar represents an environment variable present in a Container.\",\n\t\"name\":      \"Name of the environment variable. Must be a C_IDENTIFIER.\",\n\t\"value\":     \"Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \\\"\\\".\",\n\t\"valueFrom\": \"Source for the environment variable's value. Cannot be used if value is not empty.\",\n}\n\nfunc (EnvVar) SwaggerDoc() map[string]string {\n\treturn map_EnvVar\n}\n\nvar map_EnvVarSource = map[string]string{\n\t\"\":                 \"EnvVarSource represents a source for the value of an EnvVar.\",\n\t\"fieldRef\":         \"Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['<KEY>']`, `metadata.annotations['<KEY>']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\",\n\t\"resourceFieldRef\": \"Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\",\n\t\"configMapKeyRef\":  \"Selects a key of a ConfigMap.\",\n\t\"secretKeyRef\":     \"Selects a key of a secret in the pod's namespace\",\n}\n\nfunc (EnvVarSource) SwaggerDoc() map[string]string {\n\treturn map_EnvVarSource\n}\n\nvar map_EphemeralContainer = map[string]string{\n\t\"\":                    \"An EphemeralContainer is a temporary container that you may add to an existing Pod for user-initiated activities such as debugging. Ephemeral containers have no resource or scheduling guarantees, and they will not be restarted when they exit or when a Pod is removed or restarted. The kubelet may evict a Pod if an ephemeral container causes the Pod to exceed its resource allocation.\\n\\nTo add an ephemeral container, use the ephemeralcontainers subresource of an existing Pod. Ephemeral containers may not be removed or restarted.\",\n\t\"targetContainerName\": \"If set, the name of the container from PodSpec that this ephemeral container targets. The ephemeral container will be run in the namespaces (IPC, PID, etc) of this container. If not set then the ephemeral container uses the namespaces configured in the Pod spec.\\n\\nThe container runtime must implement support for this feature. If the runtime does not support namespace targeting then the result of setting this field is undefined.\",\n}\n\nfunc (EphemeralContainer) SwaggerDoc() map[string]string {\n\treturn map_EphemeralContainer\n}\n\nvar map_EphemeralContainerCommon = map[string]string{\n\t\"\":                         \"EphemeralContainerCommon is a copy of all fields in Container to be inlined in EphemeralContainer. This separate type allows easy conversion from EphemeralContainer to Container and allows separate documentation for the fields of EphemeralContainer. When a new field is added to Container it must be added here as well.\",\n\t\"name\":                     \"Name of the ephemeral container specified as a DNS_LABEL. This name must be unique among all containers, init containers and ephemeral containers.\",\n\t\"image\":                    \"Container image name. More info: https://kubernetes.io/docs/concepts/containers/images\",\n\t\"command\":                  \"Entrypoint array. Not executed within a shell. The image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n\t\"args\":                     \"Arguments to the entrypoint. The image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \\\"$$(VAR_NAME)\\\" will produce the string literal \\\"$(VAR_NAME)\\\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\",\n\t\"workingDir\":               \"Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.\",\n\t\"ports\":                    \"Ports are not allowed for ephemeral containers.\",\n\t\"envFrom\":                  \"List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.\",\n\t\"env\":                      \"List of environment variables to set in the container. Cannot be updated.\",\n\t\"resources\":                \"Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod.\",\n\t\"resizePolicy\":             \"Resources resize policy for the container.\",\n\t\"restartPolicy\":            \"Restart policy for the container to manage the restart behavior of each container within a pod. This may only be set for init containers. You cannot set this field on ephemeral containers.\",\n\t\"volumeMounts\":             \"Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers. Cannot be updated.\",\n\t\"volumeDevices\":            \"volumeDevices is the list of block devices to be used by the container.\",\n\t\"livenessProbe\":            \"Probes are not allowed for ephemeral containers.\",\n\t\"readinessProbe\":           \"Probes are not allowed for ephemeral containers.\",\n\t\"startupProbe\":             \"Probes are not allowed for ephemeral containers.\",\n\t\"lifecycle\":                \"Lifecycle is not allowed for ephemeral containers.\",\n\t\"terminationMessagePath\":   \"Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.\",\n\t\"terminationMessagePolicy\": \"Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.\",\n\t\"imagePullPolicy\":          \"Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images\",\n\t\"securityContext\":          \"Optional: SecurityContext defines the security options the ephemeral container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.\",\n\t\"stdin\":                    \"Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.\",\n\t\"stdinOnce\":                \"Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false\",\n\t\"tty\":                      \"Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.\",\n}\n\nfunc (EphemeralContainerCommon) SwaggerDoc() map[string]string {\n\treturn map_EphemeralContainerCommon\n}\n\nvar map_EphemeralVolumeSource = map[string]string{\n\t\"\":                    \"Represents an ephemeral volume that is handled by a normal storage driver.\",\n\t\"volumeClaimTemplate\": \"Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod.  The name of the PVC will be `<pod name>-<volume name>` where `<volume name>` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long).\\n\\nAn existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster.\\n\\nThis field is read-only and no changes will be made by Kubernetes to the PVC after it has been created.\\n\\nRequired, must not be nil.\",\n}\n\nfunc (EphemeralVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_EphemeralVolumeSource\n}\n\nvar map_Event = map[string]string{\n\t\"\":                   \"Event is a report of an event somewhere in the cluster.  Events have a limited retention time and triggers and messages may evolve with time.  Event consumers should not rely on the timing of an event with a given Reason reflecting a consistent underlying trigger, or the continued existence of events with that Reason.  Events should be treated as informative, best-effort, supplemental data.\",\n\t\"metadata\":           \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"involvedObject\":     \"The object that this event is about.\",\n\t\"reason\":             \"This should be a short, machine understandable string that gives the reason for the transition into the object's current status.\",\n\t\"message\":            \"A human-readable description of the status of this operation.\",\n\t\"source\":             \"The component reporting this event. Should be a short machine understandable string.\",\n\t\"firstTimestamp\":     \"The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)\",\n\t\"lastTimestamp\":      \"The time at which the most recent occurrence of this event was recorded.\",\n\t\"count\":              \"The number of times this event has occurred.\",\n\t\"type\":               \"Type of this event (Normal, Warning), new types could be added in the future\",\n\t\"eventTime\":          \"Time when this Event was first observed.\",\n\t\"series\":             \"Data about the Event series this event represents or nil if it's a singleton Event.\",\n\t\"action\":             \"What action was taken/failed regarding to the Regarding object.\",\n\t\"related\":            \"Optional secondary object for more complex actions.\",\n\t\"reportingComponent\": \"Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.\",\n\t\"reportingInstance\":  \"ID of the controller instance, e.g. `kubelet-xyzf`.\",\n}\n\nfunc (Event) SwaggerDoc() map[string]string {\n\treturn map_Event\n}\n\nvar map_EventList = map[string]string{\n\t\"\":         \"EventList is a list of events.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of events\",\n}\n\nfunc (EventList) SwaggerDoc() map[string]string {\n\treturn map_EventList\n}\n\nvar map_EventSeries = map[string]string{\n\t\"\":                 \"EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time.\",\n\t\"count\":            \"Number of occurrences in this series up to the last heartbeat time\",\n\t\"lastObservedTime\": \"Time of the last occurrence observed\",\n}\n\nfunc (EventSeries) SwaggerDoc() map[string]string {\n\treturn map_EventSeries\n}\n\nvar map_EventSource = map[string]string{\n\t\"\":          \"EventSource contains information for an event.\",\n\t\"component\": \"Component from which the event is generated.\",\n\t\"host\":      \"Node name on which the event is generated.\",\n}\n\nfunc (EventSource) SwaggerDoc() map[string]string {\n\treturn map_EventSource\n}\n\nvar map_ExecAction = map[string]string{\n\t\"\":        \"ExecAction describes a \\\"run in container\\\" action.\",\n\t\"command\": \"Command is the command line to execute inside the container, the working directory for the command  is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.\",\n}\n\nfunc (ExecAction) SwaggerDoc() map[string]string {\n\treturn map_ExecAction\n}\n\nvar map_FCVolumeSource = map[string]string{\n\t\"\":           \"Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling.\",\n\t\"targetWWNs\": \"targetWWNs is Optional: FC target worldwide names (WWNs)\",\n\t\"lun\":        \"lun is Optional: FC target lun number\",\n\t\"fsType\":     \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n\t\"readOnly\":   \"readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n\t\"wwids\":      \"wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\",\n}\n\nfunc (FCVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_FCVolumeSource\n}\n\nvar map_FlexPersistentVolumeSource = map[string]string{\n\t\"\":          \"FlexPersistentVolumeSource represents a generic persistent volume resource that is provisioned/attached using an exec based plugin.\",\n\t\"driver\":    \"driver is the name of the driver to use for this volume.\",\n\t\"fsType\":    \"fsType is the Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\n\t\"secretRef\": \"secretRef is Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.\",\n\t\"readOnly\":  \"readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n\t\"options\":   \"options is Optional: this field holds extra command options if any.\",\n}\n\nfunc (FlexPersistentVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_FlexPersistentVolumeSource\n}\n\nvar map_FlexVolumeSource = map[string]string{\n\t\"\":          \"FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.\",\n\t\"driver\":    \"driver is the name of the driver to use for this volume.\",\n\t\"fsType\":    \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default filesystem depends on FlexVolume script.\",\n\t\"secretRef\": \"secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.\",\n\t\"readOnly\":  \"readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n\t\"options\":   \"options is Optional: this field holds extra command options if any.\",\n}\n\nfunc (FlexVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_FlexVolumeSource\n}\n\nvar map_FlockerVolumeSource = map[string]string{\n\t\"\":            \"Represents a Flocker volume mounted by the Flocker agent. One and only one of datasetName and datasetUUID should be set. Flocker volumes do not support ownership management or SELinux relabeling.\",\n\t\"datasetName\": \"datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated\",\n\t\"datasetUUID\": \"datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset\",\n}\n\nfunc (FlockerVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_FlockerVolumeSource\n}\n\nvar map_GCEPersistentDiskVolumeSource = map[string]string{\n\t\"\":          \"Represents a Persistent Disk resource in Google Compute Engine.\\n\\nA GCE PD must exist before mounting to a container. The disk must also be in the same GCE project and zone as the kubelet. A GCE PD can only be mounted as read/write once or read-only many times. GCE PDs support ownership management and SELinux relabeling.\",\n\t\"pdName\":    \"pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n\t\"fsType\":    \"fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n\t\"partition\": \"partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \\\"1\\\". Similarly, the volume partition for /dev/sda is \\\"0\\\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n\t\"readOnly\":  \"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n}\n\nfunc (GCEPersistentDiskVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_GCEPersistentDiskVolumeSource\n}\n\nvar map_GRPCAction = map[string]string{\n\t\"\":        \"GRPCAction specifies an action involving a GRPC service.\",\n\t\"port\":    \"Port number of the gRPC service. Number must be in the range 1 to 65535.\",\n\t\"service\": \"Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\\n\\nIf this is not specified, the default behavior is defined by gRPC.\",\n}\n\nfunc (GRPCAction) SwaggerDoc() map[string]string {\n\treturn map_GRPCAction\n}\n\nvar map_GitRepoVolumeSource = map[string]string{\n\t\"\":           \"Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.\\n\\nDEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.\",\n\t\"repository\": \"repository is the URL\",\n\t\"revision\":   \"revision is the commit hash for the specified revision.\",\n\t\"directory\":  \"directory is the target directory name. Must not contain or start with '..'.  If '.' is supplied, the volume directory will be the git repository.  Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.\",\n}\n\nfunc (GitRepoVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_GitRepoVolumeSource\n}\n\nvar map_GlusterfsPersistentVolumeSource = map[string]string{\n\t\"\":                   \"Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.\",\n\t\"endpoints\":          \"endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n\t\"path\":               \"path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n\t\"readOnly\":           \"readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n\t\"endpointsNamespace\": \"endpointsNamespace is the namespace that contains Glusterfs endpoint. If this field is empty, the EndpointNamespace defaults to the same namespace as the bound PVC. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n}\n\nfunc (GlusterfsPersistentVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_GlusterfsPersistentVolumeSource\n}\n\nvar map_GlusterfsVolumeSource = map[string]string{\n\t\"\":          \"Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.\",\n\t\"endpoints\": \"endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n\t\"path\":      \"path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n\t\"readOnly\":  \"readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\",\n}\n\nfunc (GlusterfsVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_GlusterfsVolumeSource\n}\n\nvar map_HTTPGetAction = map[string]string{\n\t\"\":            \"HTTPGetAction describes an action based on HTTP Get requests.\",\n\t\"path\":        \"Path to access on the HTTP server.\",\n\t\"port\":        \"Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n\t\"host\":        \"Host name to connect to, defaults to the pod IP. You probably want to set \\\"Host\\\" in httpHeaders instead.\",\n\t\"scheme\":      \"Scheme to use for connecting to the host. Defaults to HTTP.\",\n\t\"httpHeaders\": \"Custom headers to set in the request. HTTP allows repeated headers.\",\n}\n\nfunc (HTTPGetAction) SwaggerDoc() map[string]string {\n\treturn map_HTTPGetAction\n}\n\nvar map_HTTPHeader = map[string]string{\n\t\"\":      \"HTTPHeader describes a custom header to be used in HTTP probes\",\n\t\"name\":  \"The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.\",\n\t\"value\": \"The header field value\",\n}\n\nfunc (HTTPHeader) SwaggerDoc() map[string]string {\n\treturn map_HTTPHeader\n}\n\nvar map_HostAlias = map[string]string{\n\t\"\":          \"HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file.\",\n\t\"ip\":        \"IP address of the host file entry.\",\n\t\"hostnames\": \"Hostnames for the above IP address.\",\n}\n\nfunc (HostAlias) SwaggerDoc() map[string]string {\n\treturn map_HostAlias\n}\n\nvar map_HostIP = map[string]string{\n\t\"\":   \"HostIP represents a single IP address allocated to the host.\",\n\t\"ip\": \"IP is the IP address assigned to the host\",\n}\n\nfunc (HostIP) SwaggerDoc() map[string]string {\n\treturn map_HostIP\n}\n\nvar map_HostPathVolumeSource = map[string]string{\n\t\"\":     \"Represents a host path mapped into a pod. Host path volumes do not support ownership management or SELinux relabeling.\",\n\t\"path\": \"path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n\t\"type\": \"type for HostPath Volume Defaults to \\\"\\\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n}\n\nfunc (HostPathVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_HostPathVolumeSource\n}\n\nvar map_ISCSIPersistentVolumeSource = map[string]string{\n\t\"\":                  \"ISCSIPersistentVolumeSource represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.\",\n\t\"targetPortal\":      \"targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\n\t\"iqn\":               \"iqn is Target iSCSI Qualified Name.\",\n\t\"lun\":               \"lun is iSCSI Target Lun number.\",\n\t\"iscsiInterface\":    \"iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).\",\n\t\"fsType\":            \"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi\",\n\t\"readOnly\":          \"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.\",\n\t\"portals\":           \"portals is the iSCSI Target Portal List. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\n\t\"chapAuthDiscovery\": \"chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\",\n\t\"chapAuthSession\":   \"chapAuthSession defines whether support iSCSI Session CHAP authentication\",\n\t\"secretRef\":         \"secretRef is the CHAP Secret for iSCSI target and initiator authentication\",\n\t\"initiatorName\":     \"initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface <target portal>:<volume name> will be created for the connection.\",\n}\n\nfunc (ISCSIPersistentVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_ISCSIPersistentVolumeSource\n}\n\nvar map_ISCSIVolumeSource = map[string]string{\n\t\"\":                  \"Represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.\",\n\t\"targetPortal\":      \"targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\n\t\"iqn\":               \"iqn is the target iSCSI Qualified Name.\",\n\t\"lun\":               \"lun represents iSCSI Target Lun number.\",\n\t\"iscsiInterface\":    \"iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).\",\n\t\"fsType\":            \"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi\",\n\t\"readOnly\":          \"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.\",\n\t\"portals\":           \"portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).\",\n\t\"chapAuthDiscovery\": \"chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication\",\n\t\"chapAuthSession\":   \"chapAuthSession defines whether support iSCSI Session CHAP authentication\",\n\t\"secretRef\":         \"secretRef is the CHAP Secret for iSCSI target and initiator authentication\",\n\t\"initiatorName\":     \"initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface <target portal>:<volume name> will be created for the connection.\",\n}\n\nfunc (ISCSIVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_ISCSIVolumeSource\n}\n\nvar map_ImageVolumeSource = map[string]string{\n\t\"\":           \"ImageVolumeSource represents a image volume resource.\",\n\t\"reference\":  \"Required: Image or artifact reference to be used. Behaves in the same way as pod.spec.containers[*].image. Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.\",\n\t\"pullPolicy\": \"Policy for pulling OCI objects. Possible values are: Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.\",\n}\n\nfunc (ImageVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_ImageVolumeSource\n}\n\nvar map_KeyToPath = map[string]string{\n\t\"\":     \"Maps a string key to a path within a volume.\",\n\t\"key\":  \"key is the key to project.\",\n\t\"path\": \"path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.\",\n\t\"mode\": \"mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n}\n\nfunc (KeyToPath) SwaggerDoc() map[string]string {\n\treturn map_KeyToPath\n}\n\nvar map_Lifecycle = map[string]string{\n\t\"\":          \"Lifecycle describes actions that the management system should take in response to container lifecycle events. For the PostStart and PreStop lifecycle handlers, management of the container blocks until the action is complete, unless the container process fails, in which case the handler is aborted.\",\n\t\"postStart\": \"PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n\t\"preStop\":   \"PreStop is called immediately before a container is terminated due to an API request or management event such as liveness/startup probe failure, preemption, resource contention, etc. The handler is not called if the container crashes or exits. The Pod's termination grace period countdown begins before the PreStop hook is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period (unless delayed by finalizers). Other management of the container blocks until the hook completes or until the termination grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\",\n}\n\nfunc (Lifecycle) SwaggerDoc() map[string]string {\n\treturn map_Lifecycle\n}\n\nvar map_LifecycleHandler = map[string]string{\n\t\"\":          \"LifecycleHandler defines a specific action that should be taken in a lifecycle hook. One and only one of the fields, except TCPSocket must be specified.\",\n\t\"exec\":      \"Exec specifies a command to execute in the container.\",\n\t\"httpGet\":   \"HTTPGet specifies an HTTP GET request to perform.\",\n\t\"tcpSocket\": \"Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified.\",\n\t\"sleep\":     \"Sleep represents a duration that the container should sleep.\",\n}\n\nfunc (LifecycleHandler) SwaggerDoc() map[string]string {\n\treturn map_LifecycleHandler\n}\n\nvar map_LimitRange = map[string]string{\n\t\"\":         \"LimitRange sets resource usage limits for each kind of resource in a Namespace.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec defines the limits enforced. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (LimitRange) SwaggerDoc() map[string]string {\n\treturn map_LimitRange\n}\n\nvar map_LimitRangeItem = map[string]string{\n\t\"\":                     \"LimitRangeItem defines a min/max usage limit for any resource that matches on kind.\",\n\t\"type\":                 \"Type of resource that this limit applies to.\",\n\t\"max\":                  \"Max usage constraints on this kind by resource name.\",\n\t\"min\":                  \"Min usage constraints on this kind by resource name.\",\n\t\"default\":              \"Default resource requirement limit value by resource name if resource limit is omitted.\",\n\t\"defaultRequest\":       \"DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.\",\n\t\"maxLimitRequestRatio\": \"MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource.\",\n}\n\nfunc (LimitRangeItem) SwaggerDoc() map[string]string {\n\treturn map_LimitRangeItem\n}\n\nvar map_LimitRangeList = map[string]string{\n\t\"\":         \"LimitRangeList is a list of LimitRange items.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"Items is a list of LimitRange objects. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n}\n\nfunc (LimitRangeList) SwaggerDoc() map[string]string {\n\treturn map_LimitRangeList\n}\n\nvar map_LimitRangeSpec = map[string]string{\n\t\"\":       \"LimitRangeSpec defines a min/max usage limit for resources that match on kind.\",\n\t\"limits\": \"Limits is the list of LimitRangeItem objects that are enforced.\",\n}\n\nfunc (LimitRangeSpec) SwaggerDoc() map[string]string {\n\treturn map_LimitRangeSpec\n}\n\nvar map_LinuxContainerUser = map[string]string{\n\t\"\":                   \"LinuxContainerUser represents user identity information in Linux containers\",\n\t\"uid\":                \"UID is the primary uid initially attached to the first process in the container\",\n\t\"gid\":                \"GID is the primary gid initially attached to the first process in the container\",\n\t\"supplementalGroups\": \"SupplementalGroups are the supplemental groups initially attached to the first process in the container\",\n}\n\nfunc (LinuxContainerUser) SwaggerDoc() map[string]string {\n\treturn map_LinuxContainerUser\n}\n\nvar map_LoadBalancerIngress = map[string]string{\n\t\"\":         \"LoadBalancerIngress represents the status of a load-balancer ingress point: traffic intended for the service should be sent to an ingress point.\",\n\t\"ip\":       \"IP is set for load-balancer ingress points that are IP based (typically GCE or OpenStack load-balancers)\",\n\t\"hostname\": \"Hostname is set for load-balancer ingress points that are DNS based (typically AWS load-balancers)\",\n\t\"ipMode\":   \"IPMode specifies how the load-balancer IP behaves, and may only be specified when the ip field is specified. Setting this to \\\"VIP\\\" indicates that traffic is delivered to the node with the destination set to the load-balancer's IP and port. Setting this to \\\"Proxy\\\" indicates that traffic is delivered to the node or pod with the destination set to the node's IP and node port or the pod's IP and port. Service implementations may use this information to adjust traffic routing.\",\n\t\"ports\":    \"Ports is a list of records of service ports If used, every port defined in the service should have an entry in it\",\n}\n\nfunc (LoadBalancerIngress) SwaggerDoc() map[string]string {\n\treturn map_LoadBalancerIngress\n}\n\nvar map_LoadBalancerStatus = map[string]string{\n\t\"\":        \"LoadBalancerStatus represents the status of a load-balancer.\",\n\t\"ingress\": \"Ingress is a list containing ingress points for the load-balancer. Traffic intended for the service should be sent to these ingress points.\",\n}\n\nfunc (LoadBalancerStatus) SwaggerDoc() map[string]string {\n\treturn map_LoadBalancerStatus\n}\n\nvar map_LocalObjectReference = map[string]string{\n\t\"\":     \"LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.\",\n\t\"name\": \"Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n}\n\nfunc (LocalObjectReference) SwaggerDoc() map[string]string {\n\treturn map_LocalObjectReference\n}\n\nvar map_LocalVolumeSource = map[string]string{\n\t\"\":       \"Local represents directly-attached storage with node affinity\",\n\t\"path\":   \"path of the full path to the volume on the node. It can be either a directory or block device (disk, partition, ...).\",\n\t\"fsType\": \"fsType is the filesystem type to mount. It applies only when the Path is a block device. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". The default value is to auto-select a filesystem if unspecified.\",\n}\n\nfunc (LocalVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_LocalVolumeSource\n}\n\nvar map_ModifyVolumeStatus = map[string]string{\n\t\"\":                                \"ModifyVolumeStatus represents the status object of ControllerModifyVolume operation\",\n\t\"targetVolumeAttributesClassName\": \"targetVolumeAttributesClassName is the name of the VolumeAttributesClass the PVC currently being reconciled\",\n\t\"status\":                          \"status is the status of the ControllerModifyVolume operation. It can be in any of following states:\\n - Pending\\n   Pending indicates that the PersistentVolumeClaim cannot be modified due to unmet requirements, such as\\n   the specified VolumeAttributesClass not existing.\\n - InProgress\\n   InProgress indicates that the volume is being modified.\\n - Infeasible\\n  Infeasible indicates that the request has been rejected as invalid by the CSI driver. To\\n\\t  resolve the error, a valid VolumeAttributesClass needs to be specified.\\nNote: New statuses can be added in the future. Consumers should check for unknown statuses and fail appropriately.\",\n}\n\nfunc (ModifyVolumeStatus) SwaggerDoc() map[string]string {\n\treturn map_ModifyVolumeStatus\n}\n\nvar map_NFSVolumeSource = map[string]string{\n\t\"\":         \"Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.\",\n\t\"server\":   \"server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n\t\"path\":     \"path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n\t\"readOnly\": \"readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n}\n\nfunc (NFSVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_NFSVolumeSource\n}\n\nvar map_Namespace = map[string]string{\n\t\"\":         \"Namespace provides a scope for Names. Use of multiple namespaces is optional.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec defines the behavior of the Namespace. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"Status describes the current status of a Namespace. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (Namespace) SwaggerDoc() map[string]string {\n\treturn map_Namespace\n}\n\nvar map_NamespaceCondition = map[string]string{\n\t\"\":                   \"NamespaceCondition contains details about state of namespace.\",\n\t\"type\":               \"Type of namespace controller condition.\",\n\t\"status\":             \"Status of the condition, one of True, False, Unknown.\",\n\t\"lastTransitionTime\": \"Last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"Unique, one-word, CamelCase reason for the condition's last transition.\",\n\t\"message\":            \"Human-readable message indicating details about last transition.\",\n}\n\nfunc (NamespaceCondition) SwaggerDoc() map[string]string {\n\treturn map_NamespaceCondition\n}\n\nvar map_NamespaceList = map[string]string{\n\t\"\":         \"NamespaceList is a list of Namespaces.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"Items is the list of Namespace objects in the list. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/\",\n}\n\nfunc (NamespaceList) SwaggerDoc() map[string]string {\n\treturn map_NamespaceList\n}\n\nvar map_NamespaceSpec = map[string]string{\n\t\"\":           \"NamespaceSpec describes the attributes on a Namespace.\",\n\t\"finalizers\": \"Finalizers is an opaque list of values that must be empty to permanently remove object from storage. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/\",\n}\n\nfunc (NamespaceSpec) SwaggerDoc() map[string]string {\n\treturn map_NamespaceSpec\n}\n\nvar map_NamespaceStatus = map[string]string{\n\t\"\":           \"NamespaceStatus is information about the current status of a Namespace.\",\n\t\"phase\":      \"Phase is the current lifecycle phase of the namespace. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/\",\n\t\"conditions\": \"Represents the latest available observations of a namespace's current state.\",\n}\n\nfunc (NamespaceStatus) SwaggerDoc() map[string]string {\n\treturn map_NamespaceStatus\n}\n\nvar map_Node = map[string]string{\n\t\"\":         \"Node is a worker node in Kubernetes. Each node will have a unique identifier in the cache (i.e. in etcd).\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec defines the behavior of a node. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"Most recently observed status of the node. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (Node) SwaggerDoc() map[string]string {\n\treturn map_Node\n}\n\nvar map_NodeAddress = map[string]string{\n\t\"\":        \"NodeAddress contains information for the node's address.\",\n\t\"type\":    \"Node address type, one of Hostname, ExternalIP or InternalIP.\",\n\t\"address\": \"The node address.\",\n}\n\nfunc (NodeAddress) SwaggerDoc() map[string]string {\n\treturn map_NodeAddress\n}\n\nvar map_NodeAffinity = map[string]string{\n\t\"\": \"Node affinity is a group of node affinity scheduling rules.\",\n\t\"requiredDuringSchedulingIgnoredDuringExecution\":  \"If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.\",\n\t\"preferredDuringSchedulingIgnoredDuringExecution\": \"The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \\\"weight\\\" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.\",\n}\n\nfunc (NodeAffinity) SwaggerDoc() map[string]string {\n\treturn map_NodeAffinity\n}\n\nvar map_NodeCondition = map[string]string{\n\t\"\":                   \"NodeCondition contains condition information for a node.\",\n\t\"type\":               \"Type of node condition.\",\n\t\"status\":             \"Status of the condition, one of True, False, Unknown.\",\n\t\"lastHeartbeatTime\":  \"Last time we got an update on a given condition.\",\n\t\"lastTransitionTime\": \"Last time the condition transit from one status to another.\",\n\t\"reason\":             \"(brief) reason for the condition's last transition.\",\n\t\"message\":            \"Human readable message indicating details about last transition.\",\n}\n\nfunc (NodeCondition) SwaggerDoc() map[string]string {\n\treturn map_NodeCondition\n}\n\nvar map_NodeConfigSource = map[string]string{\n\t\"\":          \"NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil. This API is deprecated since 1.22\",\n\t\"configMap\": \"ConfigMap is a reference to a Node's ConfigMap\",\n}\n\nfunc (NodeConfigSource) SwaggerDoc() map[string]string {\n\treturn map_NodeConfigSource\n}\n\nvar map_NodeConfigStatus = map[string]string{\n\t\"\":              \"NodeConfigStatus describes the status of the config assigned by Node.Spec.ConfigSource.\",\n\t\"assigned\":      \"Assigned reports the checkpointed config the node will try to use. When Node.Spec.ConfigSource is updated, the node checkpoints the associated config payload to local disk, along with a record indicating intended config. The node refers to this record to choose its config checkpoint, and reports this record in Assigned. Assigned only updates in the status after the record has been checkpointed to disk. When the Kubelet is restarted, it tries to make the Assigned config the Active config by loading and validating the checkpointed payload identified by Assigned.\",\n\t\"active\":        \"Active reports the checkpointed config the node is actively using. Active will represent either the current version of the Assigned config, or the current LastKnownGood config, depending on whether attempting to use the Assigned config results in an error.\",\n\t\"lastKnownGood\": \"LastKnownGood reports the checkpointed config the node will fall back to when it encounters an error attempting to use the Assigned config. The Assigned config becomes the LastKnownGood config when the node determines that the Assigned config is stable and correct. This is currently implemented as a 10-minute soak period starting when the local record of Assigned config is updated. If the Assigned config is Active at the end of this period, it becomes the LastKnownGood. Note that if Spec.ConfigSource is reset to nil (use local defaults), the LastKnownGood is also immediately reset to nil, because the local default config is always assumed good. You should not make assumptions about the node's method of determining config stability and correctness, as this may change or become configurable in the future.\",\n\t\"error\":         \"Error describes any problems reconciling the Spec.ConfigSource to the Active config. Errors may occur, for example, attempting to checkpoint Spec.ConfigSource to the local Assigned record, attempting to checkpoint the payload associated with Spec.ConfigSource, attempting to load or validate the Assigned config, etc. Errors may occur at different points while syncing config. Earlier errors (e.g. download or checkpointing errors) will not result in a rollback to LastKnownGood, and may resolve across Kubelet retries. Later errors (e.g. loading or validating a checkpointed config) will result in a rollback to LastKnownGood. In the latter case, it is usually possible to resolve the error by fixing the config assigned in Spec.ConfigSource. You can find additional information for debugging by searching the error message in the Kubelet log. Error is a human-readable description of the error state; machines can check whether or not Error is empty, but should not rely on the stability of the Error text across Kubelet versions.\",\n}\n\nfunc (NodeConfigStatus) SwaggerDoc() map[string]string {\n\treturn map_NodeConfigStatus\n}\n\nvar map_NodeDaemonEndpoints = map[string]string{\n\t\"\":                \"NodeDaemonEndpoints lists ports opened by daemons running on the Node.\",\n\t\"kubeletEndpoint\": \"Endpoint on which Kubelet is listening.\",\n}\n\nfunc (NodeDaemonEndpoints) SwaggerDoc() map[string]string {\n\treturn map_NodeDaemonEndpoints\n}\n\nvar map_NodeFeatures = map[string]string{\n\t\"\":                         \"NodeFeatures describes the set of features implemented by the CRI implementation. The features contained in the NodeFeatures should depend only on the cri implementation independent of runtime handlers.\",\n\t\"supplementalGroupsPolicy\": \"SupplementalGroupsPolicy is set to true if the runtime supports SupplementalGroupsPolicy and ContainerUser.\",\n}\n\nfunc (NodeFeatures) SwaggerDoc() map[string]string {\n\treturn map_NodeFeatures\n}\n\nvar map_NodeList = map[string]string{\n\t\"\":         \"NodeList is the whole list of all Nodes which have been registered with master.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of nodes\",\n}\n\nfunc (NodeList) SwaggerDoc() map[string]string {\n\treturn map_NodeList\n}\n\nvar map_NodeProxyOptions = map[string]string{\n\t\"\":     \"NodeProxyOptions is the query options to a Node's proxy call.\",\n\t\"path\": \"Path is the URL path to use for the current proxy request to node.\",\n}\n\nfunc (NodeProxyOptions) SwaggerDoc() map[string]string {\n\treturn map_NodeProxyOptions\n}\n\nvar map_NodeRuntimeHandler = map[string]string{\n\t\"\":         \"NodeRuntimeHandler is a set of runtime handler information.\",\n\t\"name\":     \"Runtime handler name. Empty for the default runtime handler.\",\n\t\"features\": \"Supported features.\",\n}\n\nfunc (NodeRuntimeHandler) SwaggerDoc() map[string]string {\n\treturn map_NodeRuntimeHandler\n}\n\nvar map_NodeRuntimeHandlerFeatures = map[string]string{\n\t\"\":                        \"NodeRuntimeHandlerFeatures is a set of features implemented by the runtime handler.\",\n\t\"recursiveReadOnlyMounts\": \"RecursiveReadOnlyMounts is set to true if the runtime handler supports RecursiveReadOnlyMounts.\",\n\t\"userNamespaces\":          \"UserNamespaces is set to true if the runtime handler supports UserNamespaces, including for volumes.\",\n}\n\nfunc (NodeRuntimeHandlerFeatures) SwaggerDoc() map[string]string {\n\treturn map_NodeRuntimeHandlerFeatures\n}\n\nvar map_NodeSelector = map[string]string{\n\t\"\":                  \"A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.\",\n\t\"nodeSelectorTerms\": \"Required. A list of node selector terms. The terms are ORed.\",\n}\n\nfunc (NodeSelector) SwaggerDoc() map[string]string {\n\treturn map_NodeSelector\n}\n\nvar map_NodeSelectorRequirement = map[string]string{\n\t\"\":         \"A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n\t\"key\":      \"The label key that the selector applies to.\",\n\t\"operator\": \"Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\",\n\t\"values\":   \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.\",\n}\n\nfunc (NodeSelectorRequirement) SwaggerDoc() map[string]string {\n\treturn map_NodeSelectorRequirement\n}\n\nvar map_NodeSelectorTerm = map[string]string{\n\t\"\":                 \"A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.\",\n\t\"matchExpressions\": \"A list of node selector requirements by node's labels.\",\n\t\"matchFields\":      \"A list of node selector requirements by node's fields.\",\n}\n\nfunc (NodeSelectorTerm) SwaggerDoc() map[string]string {\n\treturn map_NodeSelectorTerm\n}\n\nvar map_NodeSpec = map[string]string{\n\t\"\":              \"NodeSpec describes the attributes that a node is created with.\",\n\t\"podCIDR\":       \"PodCIDR represents the pod IP range assigned to the node.\",\n\t\"podCIDRs\":      \"podCIDRs represents the IP ranges assigned to the node for usage by Pods on that node. If this field is specified, the 0th entry must match the podCIDR field. It may contain at most 1 value for each of IPv4 and IPv6.\",\n\t\"providerID\":    \"ID of the node assigned by the cloud provider in the format: <ProviderName>://<ProviderSpecificNodeID>\",\n\t\"unschedulable\": \"Unschedulable controls node schedulability of new pods. By default, node is schedulable. More info: https://kubernetes.io/docs/concepts/nodes/node/#manual-node-administration\",\n\t\"taints\":        \"If specified, the node's taints.\",\n\t\"configSource\":  \"Deprecated: Previously used to specify the source of the node's configuration for the DynamicKubeletConfig feature. This feature is removed.\",\n\t\"externalID\":    \"Deprecated. Not all kubelets will set this field. Remove field after 1.13. see: https://issues.k8s.io/61966\",\n}\n\nfunc (NodeSpec) SwaggerDoc() map[string]string {\n\treturn map_NodeSpec\n}\n\nvar map_NodeStatus = map[string]string{\n\t\"\":                \"NodeStatus is information about the current status of a node.\",\n\t\"capacity\":        \"Capacity represents the total resources of a node. More info: https://kubernetes.io/docs/reference/node/node-status/#capacity\",\n\t\"allocatable\":     \"Allocatable represents the resources of a node that are available for scheduling. Defaults to Capacity.\",\n\t\"phase\":           \"NodePhase is the recently observed lifecycle phase of the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#phase The field is never populated, and now is deprecated.\",\n\t\"conditions\":      \"Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/reference/node/node-status/#condition\",\n\t\"addresses\":       \"List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/reference/node/node-status/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP).\",\n\t\"daemonEndpoints\": \"Endpoints of daemons running on the Node.\",\n\t\"nodeInfo\":        \"Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/reference/node/node-status/#info\",\n\t\"images\":          \"List of container images on this node\",\n\t\"volumesInUse\":    \"List of attachable volumes in use (mounted) by the node.\",\n\t\"volumesAttached\": \"List of volumes that are attached to the node.\",\n\t\"config\":          \"Status of the config assigned to the node via the dynamic Kubelet config feature.\",\n\t\"runtimeHandlers\": \"The available runtime handlers.\",\n\t\"features\":        \"Features describes the set of features implemented by the CRI implementation.\",\n}\n\nfunc (NodeStatus) SwaggerDoc() map[string]string {\n\treturn map_NodeStatus\n}\n\nvar map_NodeSystemInfo = map[string]string{\n\t\"\":                        \"NodeSystemInfo is a set of ids/uuids to uniquely identify the node.\",\n\t\"machineID\":               \"MachineID reported by the node. For unique machine identification in the cluster this field is preferred. Learn more from man(5) machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html\",\n\t\"systemUUID\":              \"SystemUUID reported by the node. For unique machine identification MachineID is preferred. This field is specific to Red Hat hosts https://access.redhat.com/documentation/en-us/red_hat_subscription_management/1/html/rhsm/uuid\",\n\t\"bootID\":                  \"Boot ID reported by the node.\",\n\t\"kernelVersion\":           \"Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64).\",\n\t\"osImage\":                 \"OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)).\",\n\t\"containerRuntimeVersion\": \"ContainerRuntime Version reported by the node through runtime remote API (e.g. containerd://1.4.2).\",\n\t\"kubeletVersion\":          \"Kubelet Version reported by the node.\",\n\t\"kubeProxyVersion\":        \"Deprecated: KubeProxy Version reported by the node.\",\n\t\"operatingSystem\":         \"The Operating System reported by the node\",\n\t\"architecture\":            \"The Architecture reported by the node\",\n}\n\nfunc (NodeSystemInfo) SwaggerDoc() map[string]string {\n\treturn map_NodeSystemInfo\n}\n\nvar map_ObjectFieldSelector = map[string]string{\n\t\"\":           \"ObjectFieldSelector selects an APIVersioned field of an object.\",\n\t\"apiVersion\": \"Version of the schema the FieldPath is written in terms of, defaults to \\\"v1\\\".\",\n\t\"fieldPath\":  \"Path of the field to select in the specified API version.\",\n}\n\nfunc (ObjectFieldSelector) SwaggerDoc() map[string]string {\n\treturn map_ObjectFieldSelector\n}\n\nvar map_ObjectReference = map[string]string{\n\t\"\":                \"ObjectReference contains enough information to let you inspect or modify the referred object.\",\n\t\"kind\":            \"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"namespace\":       \"Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/\",\n\t\"name\":            \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n\t\"uid\":             \"UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids\",\n\t\"apiVersion\":      \"API version of the referent.\",\n\t\"resourceVersion\": \"Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency\",\n\t\"fieldPath\":       \"If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: \\\"spec.containers{name}\\\" (where \\\"name\\\" refers to the name of the container that triggered the event) or if no container name is specified \\\"spec.containers[2]\\\" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.\",\n}\n\nfunc (ObjectReference) SwaggerDoc() map[string]string {\n\treturn map_ObjectReference\n}\n\nvar map_PersistentVolume = map[string]string{\n\t\"\":         \"PersistentVolume (PV) is a storage resource provisioned by an administrator. It is analogous to a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec defines a specification of a persistent volume owned by the cluster. Provisioned by an administrator. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes\",\n\t\"status\":   \"status represents the current information/status for the persistent volume. Populated by the system. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes\",\n}\n\nfunc (PersistentVolume) SwaggerDoc() map[string]string {\n\treturn map_PersistentVolume\n}\n\nvar map_PersistentVolumeClaim = map[string]string{\n\t\"\":         \"PersistentVolumeClaim is a user's request for and claim to a persistent volume\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n\t\"status\":   \"status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n}\n\nfunc (PersistentVolumeClaim) SwaggerDoc() map[string]string {\n\treturn map_PersistentVolumeClaim\n}\n\nvar map_PersistentVolumeClaimCondition = map[string]string{\n\t\"\":                   \"PersistentVolumeClaimCondition contains details about state of pvc\",\n\t\"type\":               \"Type is the type of the condition. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about\",\n\t\"status\":             \"Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required\",\n\t\"lastProbeTime\":      \"lastProbeTime is the time we probed the condition.\",\n\t\"lastTransitionTime\": \"lastTransitionTime is the time the condition transitioned from one status to another.\",\n\t\"reason\":             \"reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports \\\"Resizing\\\" that means the underlying persistent volume is being resized.\",\n\t\"message\":            \"message is the human-readable message indicating details about last transition.\",\n}\n\nfunc (PersistentVolumeClaimCondition) SwaggerDoc() map[string]string {\n\treturn map_PersistentVolumeClaimCondition\n}\n\nvar map_PersistentVolumeClaimList = map[string]string{\n\t\"\":         \"PersistentVolumeClaimList is a list of PersistentVolumeClaim items.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"items is a list of persistent volume claims. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n}\n\nfunc (PersistentVolumeClaimList) SwaggerDoc() map[string]string {\n\treturn map_PersistentVolumeClaimList\n}\n\nvar map_PersistentVolumeClaimSpec = map[string]string{\n\t\"\":                          \"PersistentVolumeClaimSpec describes the common attributes of storage devices and allows a Source for provider-specific attributes\",\n\t\"accessModes\":               \"accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n\t\"selector\":                  \"selector is a label query over volumes to consider for binding.\",\n\t\"resources\":                 \"resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\",\n\t\"volumeName\":                \"volumeName is the binding reference to the PersistentVolume backing this claim.\",\n\t\"storageClassName\":          \"storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\",\n\t\"volumeMode\":                \"volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.\",\n\t\"dataSource\":                \"dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.\",\n\t\"dataSourceRef\":             \"dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef\\n  allows any non-core object, as well as PersistentVolumeClaim objects.\\n* While dataSource ignores disallowed values (dropping them), dataSourceRef\\n  preserves all values, and generates an error if a disallowed value is\\n  specified.\\n* While dataSource only allows local objects, dataSourceRef allows objects\\n  in any namespaces.\\n(Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n\t\"volumeAttributesClassName\": \"volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).\",\n}\n\nfunc (PersistentVolumeClaimSpec) SwaggerDoc() map[string]string {\n\treturn map_PersistentVolumeClaimSpec\n}\n\nvar map_PersistentVolumeClaimStatus = map[string]string{\n\t\"\":                                 \"PersistentVolumeClaimStatus is the current status of a persistent volume claim.\",\n\t\"phase\":                            \"phase represents the current phase of PersistentVolumeClaim.\",\n\t\"accessModes\":                      \"accessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\",\n\t\"capacity\":                         \"capacity represents the actual resources of the underlying volume.\",\n\t\"conditions\":                       \"conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'Resizing'.\",\n\t\"allocatedResources\":               \"allocatedResources tracks the resources allocated to a PVC including its capacity. Key names follow standard Kubernetes label syntax. Valid values are either:\\n\\t* Un-prefixed keys:\\n\\t\\t- storage - the capacity of the volume.\\n\\t* Custom resources must use implementation-defined prefixed names such as \\\"example.com/my-custom-resource\\\"\\nApart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used.\\n\\nCapacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity.\\n\\nA controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC.\\n\\nThis is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.\",\n\t\"allocatedResourceStatuses\":        \"allocatedResourceStatuses stores status of resource being resized for the given PVC. Key names follow standard Kubernetes label syntax. Valid values are either:\\n\\t* Un-prefixed keys:\\n\\t\\t- storage - the capacity of the volume.\\n\\t* Custom resources must use implementation-defined prefixed names such as \\\"example.com/my-custom-resource\\\"\\nApart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used.\\n\\nClaimResourceStatus can be in any of following states:\\n\\t- ControllerResizeInProgress:\\n\\t\\tState set when resize controller starts resizing the volume in control-plane.\\n\\t- ControllerResizeFailed:\\n\\t\\tState set when resize has failed in resize controller with a terminal error.\\n\\t- NodeResizePending:\\n\\t\\tState set when resize controller has finished resizing the volume but further resizing of\\n\\t\\tvolume is needed on the node.\\n\\t- NodeResizeInProgress:\\n\\t\\tState set when kubelet starts resizing the volume.\\n\\t- NodeResizeFailed:\\n\\t\\tState set when resizing has failed in kubelet with a terminal error. Transient errors don't set\\n\\t\\tNodeResizeFailed.\\nFor example: if expanding a PVC for more capacity - this field can be one of the following states:\\n\\t- pvc.status.allocatedResourceStatus['storage'] = \\\"ControllerResizeInProgress\\\"\\n     - pvc.status.allocatedResourceStatus['storage'] = \\\"ControllerResizeFailed\\\"\\n     - pvc.status.allocatedResourceStatus['storage'] = \\\"NodeResizePending\\\"\\n     - pvc.status.allocatedResourceStatus['storage'] = \\\"NodeResizeInProgress\\\"\\n     - pvc.status.allocatedResourceStatus['storage'] = \\\"NodeResizeFailed\\\"\\nWhen this field is not set, it means that no resize operation is in progress for the given PVC.\\n\\nA controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC.\\n\\nThis is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.\",\n\t\"currentVolumeAttributesClassName\": \"currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim This is a beta field and requires enabling VolumeAttributesClass feature (off by default).\",\n\t\"modifyVolumeStatus\":               \"ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted. This is a beta field and requires enabling VolumeAttributesClass feature (off by default).\",\n}\n\nfunc (PersistentVolumeClaimStatus) SwaggerDoc() map[string]string {\n\treturn map_PersistentVolumeClaimStatus\n}\n\nvar map_PersistentVolumeClaimTemplate = map[string]string{\n\t\"\":         \"PersistentVolumeClaimTemplate is used to produce PersistentVolumeClaim objects as part of an EphemeralVolumeSource.\",\n\t\"metadata\": \"May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.\",\n\t\"spec\":     \"The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.\",\n}\n\nfunc (PersistentVolumeClaimTemplate) SwaggerDoc() map[string]string {\n\treturn map_PersistentVolumeClaimTemplate\n}\n\nvar map_PersistentVolumeClaimVolumeSource = map[string]string{\n\t\"\":          \"PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system).\",\n\t\"claimName\": \"claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n\t\"readOnly\":  \"readOnly Will force the ReadOnly setting in VolumeMounts. Default false.\",\n}\n\nfunc (PersistentVolumeClaimVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_PersistentVolumeClaimVolumeSource\n}\n\nvar map_PersistentVolumeList = map[string]string{\n\t\"\":         \"PersistentVolumeList is a list of PersistentVolume items.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"items is a list of persistent volumes. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes\",\n}\n\nfunc (PersistentVolumeList) SwaggerDoc() map[string]string {\n\treturn map_PersistentVolumeList\n}\n\nvar map_PersistentVolumeSource = map[string]string{\n\t\"\":                     \"PersistentVolumeSource is similar to VolumeSource but meant for the administrator who creates PVs. Exactly one of its members must be set.\",\n\t\"gcePersistentDisk\":    \"gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n\t\"awsElasticBlockStore\": \"awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n\t\"hostPath\":             \"hostPath represents a directory on the host. Provisioned by a developer or tester. This is useful for single-node development and testing only! On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n\t\"glusterfs\":            \"glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md\",\n\t\"nfs\":                  \"nfs represents an NFS mount on the host. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n\t\"rbd\":                  \"rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md\",\n\t\"iscsi\":                \"iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin.\",\n\t\"cinder\":               \"cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n\t\"cephfs\":               \"cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.\",\n\t\"fc\":                   \"fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\n\t\"flocker\":              \"flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.\",\n\t\"flexVolume\":           \"flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.\",\n\t\"azureFile\":            \"azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver.\",\n\t\"vsphereVolume\":        \"vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver.\",\n\t\"quobyte\":              \"quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.\",\n\t\"azureDisk\":            \"azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver.\",\n\t\"photonPersistentDisk\": \"photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.\",\n\t\"portworxVolume\":       \"portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on.\",\n\t\"scaleIO\":              \"scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.\",\n\t\"local\":                \"local represents directly-attached storage with node affinity\",\n\t\"storageos\":            \"storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md\",\n\t\"csi\":                  \"csi represents storage that is handled by an external CSI driver.\",\n}\n\nfunc (PersistentVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_PersistentVolumeSource\n}\n\nvar map_PersistentVolumeSpec = map[string]string{\n\t\"\":                              \"PersistentVolumeSpec is the specification of a persistent volume.\",\n\t\"capacity\":                      \"capacity is the description of the persistent volume's resources and capacity. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity\",\n\t\"accessModes\":                   \"accessModes contains all ways the volume can be mounted. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes\",\n\t\"claimRef\":                      \"claimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim. Expected to be non-nil when bound. claim.VolumeName is the authoritative bind between PV and PVC. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding\",\n\t\"persistentVolumeReclaimPolicy\": \"persistentVolumeReclaimPolicy defines what happens to a persistent volume when released from its claim. Valid options are Retain (default for manually created PersistentVolumes), Delete (default for dynamically provisioned PersistentVolumes), and Recycle (deprecated). Recycle must be supported by the volume plugin underlying this PersistentVolume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming\",\n\t\"storageClassName\":              \"storageClassName is the name of StorageClass to which this persistent volume belongs. Empty value means that this volume does not belong to any StorageClass.\",\n\t\"mountOptions\":                  \"mountOptions is the list of mount options, e.g. [\\\"ro\\\", \\\"soft\\\"]. Not validated - mount will simply fail if one is invalid. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options\",\n\t\"volumeMode\":                    \"volumeMode defines if a volume is intended to be used with a formatted filesystem or to remain in raw block state. Value of Filesystem is implied when not included in spec.\",\n\t\"nodeAffinity\":                  \"nodeAffinity defines constraints that limit what nodes this volume can be accessed from. This field influences the scheduling of pods that use this volume.\",\n\t\"volumeAttributesClassName\":     \"Name of VolumeAttributesClass to which this persistent volume belongs. Empty value is not allowed. When this field is not set, it indicates that this volume does not belong to any VolumeAttributesClass. This field is mutable and can be changed by the CSI driver after a volume has been updated successfully to a new class. For an unbound PersistentVolume, the volumeAttributesClassName will be matched with unbound PersistentVolumeClaims during the binding process. This is a beta field and requires enabling VolumeAttributesClass feature (off by default).\",\n}\n\nfunc (PersistentVolumeSpec) SwaggerDoc() map[string]string {\n\treturn map_PersistentVolumeSpec\n}\n\nvar map_PersistentVolumeStatus = map[string]string{\n\t\"\":                        \"PersistentVolumeStatus is the current status of a persistent volume.\",\n\t\"phase\":                   \"phase indicates if a volume is available, bound to a claim, or released by a claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#phase\",\n\t\"message\":                 \"message is a human-readable message indicating details about why the volume is in this state.\",\n\t\"reason\":                  \"reason is a brief CamelCase string that describes any failure and is meant for machine parsing and tidy display in the CLI.\",\n\t\"lastPhaseTransitionTime\": \"lastPhaseTransitionTime is the time the phase transitioned from one to another and automatically resets to current time everytime a volume phase transitions.\",\n}\n\nfunc (PersistentVolumeStatus) SwaggerDoc() map[string]string {\n\treturn map_PersistentVolumeStatus\n}\n\nvar map_PhotonPersistentDiskVolumeSource = map[string]string{\n\t\"\":       \"Represents a Photon Controller persistent disk resource.\",\n\t\"pdID\":   \"pdID is the ID that identifies Photon Controller persistent disk\",\n\t\"fsType\": \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n}\n\nfunc (PhotonPersistentDiskVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_PhotonPersistentDiskVolumeSource\n}\n\nvar map_Pod = map[string]string{\n\t\"\":         \"Pod is a collection of containers that can run on a host. This resource is created by clients and scheduled onto hosts.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"Most recently observed status of the pod. This data may not be up to date. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (Pod) SwaggerDoc() map[string]string {\n\treturn map_Pod\n}\n\nvar map_PodAffinity = map[string]string{\n\t\"\": \"Pod affinity is a group of inter pod affinity scheduling rules.\",\n\t\"requiredDuringSchedulingIgnoredDuringExecution\":  \"If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n\t\"preferredDuringSchedulingIgnoredDuringExecution\": \"The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.\",\n}\n\nfunc (PodAffinity) SwaggerDoc() map[string]string {\n\treturn map_PodAffinity\n}\n\nvar map_PodAffinityTerm = map[string]string{\n\t\"\":                  \"Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> matches that of any node on which a pod of the set of pods is running\",\n\t\"labelSelector\":     \"A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.\",\n\t\"namespaces\":        \"namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \\\"this pod's namespace\\\".\",\n\t\"topologyKey\":       \"This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.\",\n\t\"namespaceSelector\": \"A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \\\"this pod's namespace\\\". An empty selector ({}) matches all namespaces.\",\n\t\"matchLabelKeys\":    \"MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\n\t\"mismatchLabelKeys\": \"MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).\",\n}\n\nfunc (PodAffinityTerm) SwaggerDoc() map[string]string {\n\treturn map_PodAffinityTerm\n}\n\nvar map_PodAntiAffinity = map[string]string{\n\t\"\": \"Pod anti affinity is a group of inter pod anti affinity scheduling rules.\",\n\t\"requiredDuringSchedulingIgnoredDuringExecution\":  \"If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.\",\n\t\"preferredDuringSchedulingIgnoredDuringExecution\": \"The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \\\"weight\\\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.\",\n}\n\nfunc (PodAntiAffinity) SwaggerDoc() map[string]string {\n\treturn map_PodAntiAffinity\n}\n\nvar map_PodAttachOptions = map[string]string{\n\t\"\":          \"PodAttachOptions is the query options to a Pod's remote attach call.\",\n\t\"stdin\":     \"Stdin if true, redirects the standard input stream of the pod for this call. Defaults to false.\",\n\t\"stdout\":    \"Stdout if true indicates that stdout is to be redirected for the attach call. Defaults to true.\",\n\t\"stderr\":    \"Stderr if true indicates that stderr is to be redirected for the attach call. Defaults to true.\",\n\t\"tty\":       \"TTY if true indicates that a tty will be allocated for the attach call. This is passed through the container runtime so the tty is allocated on the worker node by the container runtime. Defaults to false.\",\n\t\"container\": \"The container in which to execute the command. Defaults to only container if there is only one container in the pod.\",\n}\n\nfunc (PodAttachOptions) SwaggerDoc() map[string]string {\n\treturn map_PodAttachOptions\n}\n\nvar map_PodCondition = map[string]string{\n\t\"\":                   \"PodCondition contains details for the current condition of this pod.\",\n\t\"type\":               \"Type is the type of the condition. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions\",\n\t\"status\":             \"Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions\",\n\t\"lastProbeTime\":      \"Last time we probed the condition.\",\n\t\"lastTransitionTime\": \"Last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"Unique, one-word, CamelCase reason for the condition's last transition.\",\n\t\"message\":            \"Human-readable message indicating details about last transition.\",\n}\n\nfunc (PodCondition) SwaggerDoc() map[string]string {\n\treturn map_PodCondition\n}\n\nvar map_PodDNSConfig = map[string]string{\n\t\"\":            \"PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy.\",\n\t\"nameservers\": \"A list of DNS name server IP addresses. This will be appended to the base nameservers generated from DNSPolicy. Duplicated nameservers will be removed.\",\n\t\"searches\":    \"A list of DNS search domains for host-name lookup. This will be appended to the base search paths generated from DNSPolicy. Duplicated search paths will be removed.\",\n\t\"options\":     \"A list of DNS resolver options. This will be merged with the base options generated from DNSPolicy. Duplicated entries will be removed. Resolution options given in Options will override those that appear in the base DNSPolicy.\",\n}\n\nfunc (PodDNSConfig) SwaggerDoc() map[string]string {\n\treturn map_PodDNSConfig\n}\n\nvar map_PodDNSConfigOption = map[string]string{\n\t\"\":      \"PodDNSConfigOption defines DNS resolver options of a pod.\",\n\t\"name\":  \"Name is this DNS resolver option's name. Required.\",\n\t\"value\": \"Value is this DNS resolver option's value.\",\n}\n\nfunc (PodDNSConfigOption) SwaggerDoc() map[string]string {\n\treturn map_PodDNSConfigOption\n}\n\nvar map_PodExecOptions = map[string]string{\n\t\"\":          \"PodExecOptions is the query options to a Pod's remote exec call.\",\n\t\"stdin\":     \"Redirect the standard input stream of the pod for this call. Defaults to false.\",\n\t\"stdout\":    \"Redirect the standard output stream of the pod for this call.\",\n\t\"stderr\":    \"Redirect the standard error stream of the pod for this call.\",\n\t\"tty\":       \"TTY if true indicates that a tty will be allocated for the exec call. Defaults to false.\",\n\t\"container\": \"Container in which to execute the command. Defaults to only container if there is only one container in the pod.\",\n\t\"command\":   \"Command is the remote command to execute. argv array. Not executed within a shell.\",\n}\n\nfunc (PodExecOptions) SwaggerDoc() map[string]string {\n\treturn map_PodExecOptions\n}\n\nvar map_PodIP = map[string]string{\n\t\"\":   \"PodIP represents a single IP address allocated to the pod.\",\n\t\"ip\": \"IP is the IP address assigned to the pod\",\n}\n\nfunc (PodIP) SwaggerDoc() map[string]string {\n\treturn map_PodIP\n}\n\nvar map_PodList = map[string]string{\n\t\"\":         \"PodList is a list of Pods.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of pods. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md\",\n}\n\nfunc (PodList) SwaggerDoc() map[string]string {\n\treturn map_PodList\n}\n\nvar map_PodLogOptions = map[string]string{\n\t\"\":                             \"PodLogOptions is the query options for a Pod's logs REST call.\",\n\t\"container\":                    \"The container for which to stream logs. Defaults to only container if there is one container in the pod.\",\n\t\"follow\":                       \"Follow the log stream of the pod. Defaults to false.\",\n\t\"previous\":                     \"Return previous terminated container logs. Defaults to false.\",\n\t\"sinceSeconds\":                 \"A relative time in seconds before the current time from which to show logs. If this value precedes the time a pod was started, only logs since the pod start will be returned. If this value is in the future, no logs will be returned. Only one of sinceSeconds or sinceTime may be specified.\",\n\t\"sinceTime\":                    \"An RFC3339 timestamp from which to show logs. If this value precedes the time a pod was started, only logs since the pod start will be returned. If this value is in the future, no logs will be returned. Only one of sinceSeconds or sinceTime may be specified.\",\n\t\"timestamps\":                   \"If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line of log output. Defaults to false.\",\n\t\"tailLines\":                    \"If set, the number of lines from the end of the logs to show. If not specified, logs are shown from the creation of the container or sinceSeconds or sinceTime. Note that when \\\"TailLines\\\" is specified, \\\"Stream\\\" can only be set to nil or \\\"All\\\".\",\n\t\"limitBytes\":                   \"If set, the number of bytes to read from the server before terminating the log output. This may not display a complete final line of logging, and may return slightly more or slightly less than the specified limit.\",\n\t\"insecureSkipTLSVerifyBackend\": \"insecureSkipTLSVerifyBackend indicates that the apiserver should not confirm the validity of the serving certificate of the backend it is connecting to.  This will make the HTTPS connection between the apiserver and the backend insecure. This means the apiserver cannot verify the log data it is receiving came from the real kubelet.  If the kubelet is configured to verify the apiserver's TLS credentials, it does not mean the connection to the real kubelet is vulnerable to a man in the middle attack (e.g. an attacker could not intercept the actual log data coming from the real kubelet).\",\n\t\"stream\":                       \"Specify which container log stream to return to the client. Acceptable values are \\\"All\\\", \\\"Stdout\\\" and \\\"Stderr\\\". If not specified, \\\"All\\\" is used, and both stdout and stderr are returned interleaved. Note that when \\\"TailLines\\\" is specified, \\\"Stream\\\" can only be set to nil or \\\"All\\\".\",\n}\n\nfunc (PodLogOptions) SwaggerDoc() map[string]string {\n\treturn map_PodLogOptions\n}\n\nvar map_PodOS = map[string]string{\n\t\"\":     \"PodOS defines the OS parameters of a pod.\",\n\t\"name\": \"Name is the name of the operating system. The currently supported values are linux and windows. Additional value may be defined in future and can be one of: https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration Clients should expect to handle additional values and treat unrecognized values in this field as os: null\",\n}\n\nfunc (PodOS) SwaggerDoc() map[string]string {\n\treturn map_PodOS\n}\n\nvar map_PodPortForwardOptions = map[string]string{\n\t\"\":      \"PodPortForwardOptions is the query options to a Pod's port forward call when using WebSockets. The `port` query parameter must specify the port or ports (comma separated) to forward over. Port forwarding over SPDY does not use these options. It requires the port to be passed in the `port` header as part of request.\",\n\t\"ports\": \"List of ports to forward Required when using WebSockets\",\n}\n\nfunc (PodPortForwardOptions) SwaggerDoc() map[string]string {\n\treturn map_PodPortForwardOptions\n}\n\nvar map_PodProxyOptions = map[string]string{\n\t\"\":     \"PodProxyOptions is the query options to a Pod's proxy call.\",\n\t\"path\": \"Path is the URL path to use for the current proxy request to pod.\",\n}\n\nfunc (PodProxyOptions) SwaggerDoc() map[string]string {\n\treturn map_PodProxyOptions\n}\n\nvar map_PodReadinessGate = map[string]string{\n\t\"\":              \"PodReadinessGate contains the reference to a pod condition\",\n\t\"conditionType\": \"ConditionType refers to a condition in the pod's condition list with matching type.\",\n}\n\nfunc (PodReadinessGate) SwaggerDoc() map[string]string {\n\treturn map_PodReadinessGate\n}\n\nvar map_PodResourceClaim = map[string]string{\n\t\"\":                          \"PodResourceClaim references exactly one ResourceClaim, either directly or by naming a ResourceClaimTemplate which is then turned into a ResourceClaim for the pod.\\n\\nIt adds a name to it that uniquely identifies the ResourceClaim inside the Pod. Containers that need access to the ResourceClaim reference it with this name.\",\n\t\"name\":                      \"Name uniquely identifies this resource claim inside the pod. This must be a DNS_LABEL.\",\n\t\"resourceClaimName\":         \"ResourceClaimName is the name of a ResourceClaim object in the same namespace as this pod.\\n\\nExactly one of ResourceClaimName and ResourceClaimTemplateName must be set.\",\n\t\"resourceClaimTemplateName\": \"ResourceClaimTemplateName is the name of a ResourceClaimTemplate object in the same namespace as this pod.\\n\\nThe template will be used to create a new ResourceClaim, which will be bound to this pod. When this pod is deleted, the ResourceClaim will also be deleted. The pod name and resource name, along with a generated component, will be used to form a unique name for the ResourceClaim, which will be recorded in pod.status.resourceClaimStatuses.\\n\\nThis field is immutable and no changes will be made to the corresponding ResourceClaim by the control plane after creating the ResourceClaim.\\n\\nExactly one of ResourceClaimName and ResourceClaimTemplateName must be set.\",\n}\n\nfunc (PodResourceClaim) SwaggerDoc() map[string]string {\n\treturn map_PodResourceClaim\n}\n\nvar map_PodResourceClaimStatus = map[string]string{\n\t\"\":                  \"PodResourceClaimStatus is stored in the PodStatus for each PodResourceClaim which references a ResourceClaimTemplate. It stores the generated name for the corresponding ResourceClaim.\",\n\t\"name\":              \"Name uniquely identifies this resource claim inside the pod. This must match the name of an entry in pod.spec.resourceClaims, which implies that the string must be a DNS_LABEL.\",\n\t\"resourceClaimName\": \"ResourceClaimName is the name of the ResourceClaim that was generated for the Pod in the namespace of the Pod. If this is unset, then generating a ResourceClaim was not necessary. The pod.spec.resourceClaims entry can be ignored in this case.\",\n}\n\nfunc (PodResourceClaimStatus) SwaggerDoc() map[string]string {\n\treturn map_PodResourceClaimStatus\n}\n\nvar map_PodSchedulingGate = map[string]string{\n\t\"\":     \"PodSchedulingGate is associated to a Pod to guard its scheduling.\",\n\t\"name\": \"Name of the scheduling gate. Each scheduling gate must have a unique name field.\",\n}\n\nfunc (PodSchedulingGate) SwaggerDoc() map[string]string {\n\treturn map_PodSchedulingGate\n}\n\nvar map_PodSecurityContext = map[string]string{\n\t\"\":                         \"PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext.  Field values of container.securityContext take precedence over field values of PodSecurityContext.\",\n\t\"seLinuxOptions\":           \"The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container.  May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\n\t\"windowsOptions\":           \"The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.\",\n\t\"runAsUser\":                \"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\n\t\"runAsGroup\":               \"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.\",\n\t\"runAsNonRoot\":             \"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n\t\"supplementalGroups\":       \"A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified).  If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.\",\n\t\"supplementalGroupsPolicy\": \"Defines how supplemental groups of the first container processes are calculated. Valid values are \\\"Merge\\\" and \\\"Strict\\\". If not specified, \\\"Merge\\\" is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.\",\n\t\"fsGroup\":                  \"A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:\\n\\n1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw \",\n\t\"sysctls\":                  \"Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.\",\n\t\"fsGroupChangePolicy\":      \"fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are \\\"OnRootMismatch\\\" and \\\"Always\\\". If not specified, \\\"Always\\\" is used. Note that this field cannot be set when spec.os.name is windows.\",\n\t\"seccompProfile\":           \"The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.\",\n\t\"appArmorProfile\":          \"appArmorProfile is the AppArmor options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.\",\n\t\"seLinuxChangePolicy\":      \"seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux. Valid values are \\\"MountOption\\\" and \\\"Recursive\\\".\\n\\n\\\"Recursive\\\" means relabeling of all files on all Pod volumes by the container runtime. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node.\\n\\n\\\"MountOption\\\" mounts all eligible Pod volumes with `-o context` mount option. This requires all Pods that share the same volume to use the same SELinux label. It is not possible to share the same volume among privileged and unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes are always re-labelled recursively. \\\"MountOption\\\" value is allowed only when SELinuxMount feature gate is enabled.\\n\\nIf not specified and SELinuxMount feature gate is enabled, \\\"MountOption\\\" is used. If not specified and SELinuxMount feature gate is disabled, \\\"MountOption\\\" is used for ReadWriteOncePod volumes and \\\"Recursive\\\" for all other volumes.\\n\\nThis field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers.\\n\\nAll Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state. Note that this field cannot be set when spec.os.name is windows.\",\n}\n\nfunc (PodSecurityContext) SwaggerDoc() map[string]string {\n\treturn map_PodSecurityContext\n}\n\nvar map_PodSignature = map[string]string{\n\t\"\":              \"Describes the class of pods that should avoid this node. Exactly one field should be set.\",\n\t\"podController\": \"Reference to controller whose pods should avoid this node.\",\n}\n\nfunc (PodSignature) SwaggerDoc() map[string]string {\n\treturn map_PodSignature\n}\n\nvar map_PodSpec = map[string]string{\n\t\"\":                              \"PodSpec is a description of a pod.\",\n\t\"volumes\":                       \"List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes\",\n\t\"initContainers\":                \"List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/\",\n\t\"containers\":                    \"List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated.\",\n\t\"ephemeralContainers\":           \"List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing pod to perform user-initiated actions such as debugging. This list cannot be specified when creating a pod, and it cannot be modified by updating the pod spec. In order to add an ephemeral container to an existing pod, use the pod's ephemeralcontainers subresource.\",\n\t\"restartPolicy\":                 \"Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy\",\n\t\"terminationGracePeriodSeconds\": \"Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 30 seconds.\",\n\t\"activeDeadlineSeconds\":         \"Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers. Value must be a positive integer.\",\n\t\"dnsPolicy\":                     \"Set DNS policy for the pod. Defaults to \\\"ClusterFirst\\\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.\",\n\t\"nodeSelector\":                  \"NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/\",\n\t\"serviceAccountName\":            \"ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/\",\n\t\"serviceAccount\":                \"DeprecatedServiceAccount is a deprecated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead.\",\n\t\"automountServiceAccountToken\":  \"AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.\",\n\t\"nodeName\":                      \"NodeName indicates in which node this pod is scheduled. If empty, this pod is a candidate for scheduling by the scheduler defined in schedulerName. Once this field is set, the kubelet for this node becomes responsible for the lifecycle of this pod. This field should not be used to express a desire for the pod to be scheduled on a specific node. https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodename\",\n\t\"hostNetwork\":                   \"Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false.\",\n\t\"hostPID\":                       \"Use the host's pid namespace. Optional: Default to false.\",\n\t\"hostIPC\":                       \"Use the host's ipc namespace. Optional: Default to false.\",\n\t\"shareProcessNamespace\":         \"Share a single process namespace between all of the containers in a pod. When this is set containers will be able to view and signal processes from other containers in the same pod, and the first process in each container will not be assigned PID 1. HostPID and ShareProcessNamespace cannot both be set. Optional: Default to false.\",\n\t\"securityContext\":               \"SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty.  See type description for default values of each field.\",\n\t\"imagePullSecrets\":              \"ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod\",\n\t\"hostname\":                      \"Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value.\",\n\t\"subdomain\":                     \"If specified, the fully qualified Pod hostname will be \\\"<hostname>.<subdomain>.<pod namespace>.svc.<cluster domain>\\\". If not specified, the pod will not have a domainname at all.\",\n\t\"affinity\":                      \"If specified, the pod's scheduling constraints\",\n\t\"schedulerName\":                 \"If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.\",\n\t\"tolerations\":                   \"If specified, the pod's tolerations.\",\n\t\"hostAliases\":                   \"HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified.\",\n\t\"priorityClassName\":             \"If specified, indicates the pod's priority. \\\"system-node-critical\\\" and \\\"system-cluster-critical\\\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.\",\n\t\"priority\":                      \"The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.\",\n\t\"dnsConfig\":                     \"Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.\",\n\t\"readinessGates\":                \"If specified, all readiness gates will be evaluated for pod readiness. A pod is ready when all its containers are ready AND all conditions specified in the readiness gates have status equal to \\\"True\\\" More info: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates\",\n\t\"runtimeClassName\":              \"RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod.  If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \\\"legacy\\\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class\",\n\t\"enableServiceLinks\":            \"EnableServiceLinks indicates whether information about services should be injected into pod's environment variables, matching the syntax of Docker links. Optional: Defaults to true.\",\n\t\"preemptionPolicy\":              \"PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset.\",\n\t\"overhead\":                      \"Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. This field will be autopopulated at admission time by the RuntimeClass admission controller. If the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests. The RuntimeClass admission controller will reject Pod create requests which have the overhead already set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero. More info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md\",\n\t\"topologySpreadConstraints\":     \"TopologySpreadConstraints describes how a group of pods ought to spread across topology domains. Scheduler will schedule pods in a way which abides by the constraints. All topologySpreadConstraints are ANDed.\",\n\t\"setHostnameAsFQDN\":             \"If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\CurrentControlSet\\\\Services\\\\Tcpip\\\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false.\",\n\t\"os\":                            \"Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set.\\n\\nIf the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions\\n\\nIf the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers - spec.securityContext.appArmorProfile - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.securityContext.supplementalGroupsPolicy - spec.containers[*].securityContext.appArmorProfile - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup\",\n\t\"hostUsers\":                     \"Use the host's user namespace. Optional: Default to true. If set to true or not present, the pod will be run in the host user namespace, useful for when the pod needs a feature only available to the host user namespace, such as loading a kernel module with CAP_SYS_MODULE. When set to false, a new userns is created for the pod. Setting false is useful for mitigating container breakout vulnerabilities even allowing users to run their containers as root without actually having root privileges on the host. This field is alpha-level and is only honored by servers that enable the UserNamespacesSupport feature.\",\n\t\"schedulingGates\":               \"SchedulingGates is an opaque list of values that if specified will block scheduling the pod. If schedulingGates is not empty, the pod will stay in the SchedulingGated state and the scheduler will not attempt to schedule the pod.\\n\\nSchedulingGates can only be set at pod creation time, and be removed only afterwards.\",\n\t\"resourceClaims\":                \"ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.\\n\\nThis is an alpha field and requires enabling the DynamicResourceAllocation feature gate.\\n\\nThis field is immutable.\",\n\t\"resources\":                     \"Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for \\\"cpu\\\" and \\\"memory\\\" resource names only. ResourceClaims are not supported.\\n\\nThis field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod.\\n\\nThis is an alpha field and requires enabling the PodLevelResources feature gate.\",\n}\n\nfunc (PodSpec) SwaggerDoc() map[string]string {\n\treturn map_PodSpec\n}\n\nvar map_PodStatus = map[string]string{\n\t\"\":                           \"PodStatus represents information about the status of a pod. Status may trail the actual state of a system, especially if the node that hosts the pod cannot contact the control plane.\",\n\t\"phase\":                      \"The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle. The conditions array, the reason and message fields, and the individual container status arrays contain more detail about the pod's status. There are five possible phase values:\\n\\nPending: The pod has been accepted by the Kubernetes system, but one or more of the container images has not been created. This includes time before being scheduled as well as time spent downloading images over the network, which could take a while. Running: The pod has been bound to a node, and all of the containers have been created. At least one container is still running, or is in the process of starting or restarting. Succeeded: All containers in the pod have terminated in success, and will not be restarted. Failed: All containers in the pod have terminated, and at least one container has terminated in failure. The container either exited with non-zero status or was terminated by the system. Unknown: For some reason the state of the pod could not be obtained, typically due to an error in communicating with the host of the pod.\\n\\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase\",\n\t\"conditions\":                 \"Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions\",\n\t\"message\":                    \"A human readable message indicating details about why the pod is in this condition.\",\n\t\"reason\":                     \"A brief CamelCase message indicating details about why the pod is in this state. e.g. 'Evicted'\",\n\t\"nominatedNodeName\":          \"nominatedNodeName is set only when this pod preempts other pods on the node, but it cannot be scheduled right away as preemption victims receive their graceful termination periods. This field does not guarantee that the pod will be scheduled on this node. Scheduler may decide to place the pod elsewhere if other nodes become available sooner. Scheduler may also decide to give the resources on this node to a higher priority pod that is created after preemption. As a result, this field may be different than PodSpec.nodeName when the pod is scheduled.\",\n\t\"hostIP\":                     \"hostIP holds the IP address of the host to which the pod is assigned. Empty if the pod has not started yet. A pod can be assigned to a node that has a problem in kubelet which in turns mean that HostIP will not be updated even if there is a node is assigned to pod\",\n\t\"hostIPs\":                    \"hostIPs holds the IP addresses allocated to the host. If this field is specified, the first entry must match the hostIP field. This list is empty if the pod has not started yet. A pod can be assigned to a node that has a problem in kubelet which in turns means that HostIPs will not be updated even if there is a node is assigned to this pod.\",\n\t\"podIP\":                      \"podIP address allocated to the pod. Routable at least within the cluster. Empty if not yet allocated.\",\n\t\"podIPs\":                     \"podIPs holds the IP addresses allocated to the pod. If this field is specified, the 0th entry must match the podIP field. Pods may be allocated at most 1 value for each of IPv4 and IPv6. This list is empty if no IPs have been allocated yet.\",\n\t\"startTime\":                  \"RFC 3339 date and time at which the object was acknowledged by the Kubelet. This is before the Kubelet pulled the container image(s) for the pod.\",\n\t\"initContainerStatuses\":      \"Statuses of init containers in this pod. The most recent successful non-restartable init container will have ready = true, the most recently started container will have startTime set. Each init container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-and-container-status\",\n\t\"containerStatuses\":          \"Statuses of containers in this pod. Each container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status\",\n\t\"qosClass\":                   \"The Quality of Service (QOS) classification assigned to the pod based on resource requirements See PodQOSClass type for available QOS classes More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-qos/#quality-of-service-classes\",\n\t\"ephemeralContainerStatuses\": \"Statuses for any ephemeral containers that have run in this pod. Each ephemeral container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status\",\n\t\"resize\":                     \"Status of resources resize desired for pod's containers. It is empty if no resources resize is pending. Any changes to container resources will automatically set this to \\\"Proposed\\\"\",\n\t\"resourceClaimStatuses\":      \"Status of resource claims.\",\n}\n\nfunc (PodStatus) SwaggerDoc() map[string]string {\n\treturn map_PodStatus\n}\n\nvar map_PodStatusResult = map[string]string{\n\t\"\":         \"PodStatusResult is a wrapper for PodStatus returned by kubelet that can be encode/decoded\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"status\":   \"Most recently observed status of the pod. This data may not be up to date. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (PodStatusResult) SwaggerDoc() map[string]string {\n\treturn map_PodStatusResult\n}\n\nvar map_PodTemplate = map[string]string{\n\t\"\":         \"PodTemplate describes a template for creating copies of a predefined pod.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"template\": \"Template defines the pods that will be created from this pod template. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (PodTemplate) SwaggerDoc() map[string]string {\n\treturn map_PodTemplate\n}\n\nvar map_PodTemplateList = map[string]string{\n\t\"\":         \"PodTemplateList is a list of PodTemplates.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of pod templates\",\n}\n\nfunc (PodTemplateList) SwaggerDoc() map[string]string {\n\treturn map_PodTemplateList\n}\n\nvar map_PodTemplateSpec = map[string]string{\n\t\"\":         \"PodTemplateSpec describes the data a pod should have when created from a template\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (PodTemplateSpec) SwaggerDoc() map[string]string {\n\treturn map_PodTemplateSpec\n}\n\nvar map_PortStatus = map[string]string{\n\t\"\":         \"PortStatus represents the error condition of a service port\",\n\t\"port\":     \"Port is the port number of the service port of which status is recorded here\",\n\t\"protocol\": \"Protocol is the protocol of the service port of which status is recorded here The supported values are: \\\"TCP\\\", \\\"UDP\\\", \\\"SCTP\\\"\",\n\t\"error\":    \"Error is to record the problem with the service port The format of the error shall comply with the following rules: - built-in error values shall be specified in this file and those shall use\\n  CamelCase names\\n- cloud provider specific error values must have names that comply with the\\n  format foo.example.com/CamelCase.\",\n}\n\nfunc (PortStatus) SwaggerDoc() map[string]string {\n\treturn map_PortStatus\n}\n\nvar map_PortworxVolumeSource = map[string]string{\n\t\"\":         \"PortworxVolumeSource represents a Portworx volume resource.\",\n\t\"volumeID\": \"volumeID uniquely identifies a Portworx volume\",\n\t\"fsType\":   \"fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n\t\"readOnly\": \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n}\n\nfunc (PortworxVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_PortworxVolumeSource\n}\n\nvar map_Preconditions = map[string]string{\n\t\"\":    \"Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.\",\n\t\"uid\": \"Specifies the target UID.\",\n}\n\nfunc (Preconditions) SwaggerDoc() map[string]string {\n\treturn map_Preconditions\n}\n\nvar map_PreferAvoidPodsEntry = map[string]string{\n\t\"\":             \"Describes a class of pods that should avoid this node.\",\n\t\"podSignature\": \"The class of pods.\",\n\t\"evictionTime\": \"Time at which this entry was added to the list.\",\n\t\"reason\":       \"(brief) reason why this entry was added to the list.\",\n\t\"message\":      \"Human readable message indicating why this entry was added to the list.\",\n}\n\nfunc (PreferAvoidPodsEntry) SwaggerDoc() map[string]string {\n\treturn map_PreferAvoidPodsEntry\n}\n\nvar map_PreferredSchedulingTerm = map[string]string{\n\t\"\":           \"An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).\",\n\t\"weight\":     \"Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.\",\n\t\"preference\": \"A node selector term, associated with the corresponding weight.\",\n}\n\nfunc (PreferredSchedulingTerm) SwaggerDoc() map[string]string {\n\treturn map_PreferredSchedulingTerm\n}\n\nvar map_Probe = map[string]string{\n\t\"\":                              \"Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.\",\n\t\"initialDelaySeconds\":           \"Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n\t\"timeoutSeconds\":                \"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\",\n\t\"periodSeconds\":                 \"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.\",\n\t\"successThreshold\":              \"Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\",\n\t\"failureThreshold\":              \"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\",\n\t\"terminationGracePeriodSeconds\": \"Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.\",\n}\n\nfunc (Probe) SwaggerDoc() map[string]string {\n\treturn map_Probe\n}\n\nvar map_ProbeHandler = map[string]string{\n\t\"\":          \"ProbeHandler defines a specific action that should be taken in a probe. One and only one of the fields must be specified.\",\n\t\"exec\":      \"Exec specifies a command to execute in the container.\",\n\t\"httpGet\":   \"HTTPGet specifies an HTTP GET request to perform.\",\n\t\"tcpSocket\": \"TCPSocket specifies a connection to a TCP port.\",\n\t\"grpc\":      \"GRPC specifies a GRPC HealthCheckRequest.\",\n}\n\nfunc (ProbeHandler) SwaggerDoc() map[string]string {\n\treturn map_ProbeHandler\n}\n\nvar map_ProjectedVolumeSource = map[string]string{\n\t\"\":            \"Represents a projected volume source\",\n\t\"sources\":     \"sources is the list of volume projections. Each entry in this list handles one source.\",\n\t\"defaultMode\": \"defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n}\n\nfunc (ProjectedVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_ProjectedVolumeSource\n}\n\nvar map_QuobyteVolumeSource = map[string]string{\n\t\"\":         \"Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not support ownership management or SELinux relabeling.\",\n\t\"registry\": \"registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes\",\n\t\"volume\":   \"volume is a string that references an already created Quobyte volume by name.\",\n\t\"readOnly\": \"readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.\",\n\t\"user\":     \"user to map volume access to Defaults to serivceaccount user\",\n\t\"group\":    \"group to map volume access to Default is no group\",\n\t\"tenant\":   \"tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin\",\n}\n\nfunc (QuobyteVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_QuobyteVolumeSource\n}\n\nvar map_RBDPersistentVolumeSource = map[string]string{\n\t\"\":          \"Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.\",\n\t\"monitors\":  \"monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n\t\"image\":     \"image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n\t\"fsType\":    \"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd\",\n\t\"pool\":      \"pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n\t\"user\":      \"user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n\t\"keyring\":   \"keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n\t\"secretRef\": \"secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n\t\"readOnly\":  \"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n}\n\nfunc (RBDPersistentVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_RBDPersistentVolumeSource\n}\n\nvar map_RBDVolumeSource = map[string]string{\n\t\"\":          \"Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.\",\n\t\"monitors\":  \"monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n\t\"image\":     \"image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n\t\"fsType\":    \"fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd\",\n\t\"pool\":      \"pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n\t\"user\":      \"user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n\t\"keyring\":   \"keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n\t\"secretRef\": \"secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n\t\"readOnly\":  \"readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\",\n}\n\nfunc (RBDVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_RBDVolumeSource\n}\n\nvar map_RangeAllocation = map[string]string{\n\t\"\":         \"RangeAllocation is not a public type.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"range\":    \"Range is string that identifies the range represented by 'data'.\",\n\t\"data\":     \"Data is a bit array containing all allocated addresses in the previous segment.\",\n}\n\nfunc (RangeAllocation) SwaggerDoc() map[string]string {\n\treturn map_RangeAllocation\n}\n\nvar map_ReplicationController = map[string]string{\n\t\"\":         \"ReplicationController represents the configuration of a replication controller.\",\n\t\"metadata\": \"If the Labels of a ReplicationController are empty, they are defaulted to be the same as the Pod(s) that the replication controller manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec defines the specification of the desired behavior of the replication controller. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"Status is the most recently observed status of the replication controller. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (ReplicationController) SwaggerDoc() map[string]string {\n\treturn map_ReplicationController\n}\n\nvar map_ReplicationControllerCondition = map[string]string{\n\t\"\":                   \"ReplicationControllerCondition describes the state of a replication controller at a certain point.\",\n\t\"type\":               \"Type of replication controller condition.\",\n\t\"status\":             \"Status of the condition, one of True, False, Unknown.\",\n\t\"lastTransitionTime\": \"The last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"The reason for the condition's last transition.\",\n\t\"message\":            \"A human readable message indicating details about the transition.\",\n}\n\nfunc (ReplicationControllerCondition) SwaggerDoc() map[string]string {\n\treturn map_ReplicationControllerCondition\n}\n\nvar map_ReplicationControllerList = map[string]string{\n\t\"\":         \"ReplicationControllerList is a collection of replication controllers.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of replication controllers. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller\",\n}\n\nfunc (ReplicationControllerList) SwaggerDoc() map[string]string {\n\treturn map_ReplicationControllerList\n}\n\nvar map_ReplicationControllerSpec = map[string]string{\n\t\"\":                \"ReplicationControllerSpec is the specification of a replication controller.\",\n\t\"replicas\":        \"Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller\",\n\t\"minReadySeconds\": \"Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)\",\n\t\"selector\":        \"Selector is a label query over pods that should match the Replicas count. If Selector is empty, it is defaulted to the labels present on the Pod template. Label keys and values that must match in order to be controlled by this replication controller, if empty defaulted to labels on Pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\n\t\"template\":        \"Template is the object that describes the pod that will be created if insufficient replicas are detected. This takes precedence over a TemplateRef. The only allowed template.spec.restartPolicy value is \\\"Always\\\". More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\",\n}\n\nfunc (ReplicationControllerSpec) SwaggerDoc() map[string]string {\n\treturn map_ReplicationControllerSpec\n}\n\nvar map_ReplicationControllerStatus = map[string]string{\n\t\"\":                     \"ReplicationControllerStatus represents the current status of a replication controller.\",\n\t\"replicas\":             \"Replicas is the most recently observed number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller\",\n\t\"fullyLabeledReplicas\": \"The number of pods that have labels matching the labels of the pod template of the replication controller.\",\n\t\"readyReplicas\":        \"The number of ready replicas for this replication controller.\",\n\t\"availableReplicas\":    \"The number of available replicas (ready for at least minReadySeconds) for this replication controller.\",\n\t\"observedGeneration\":   \"ObservedGeneration reflects the generation of the most recently observed replication controller.\",\n\t\"conditions\":           \"Represents the latest available observations of a replication controller's current state.\",\n}\n\nfunc (ReplicationControllerStatus) SwaggerDoc() map[string]string {\n\treturn map_ReplicationControllerStatus\n}\n\nvar map_ResourceClaim = map[string]string{\n\t\"\":        \"ResourceClaim references one entry in PodSpec.ResourceClaims.\",\n\t\"name\":    \"Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.\",\n\t\"request\": \"Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.\",\n}\n\nfunc (ResourceClaim) SwaggerDoc() map[string]string {\n\treturn map_ResourceClaim\n}\n\nvar map_ResourceFieldSelector = map[string]string{\n\t\"\":              \"ResourceFieldSelector represents container resources (cpu, memory) and their output format\",\n\t\"containerName\": \"Container name: required for volumes, optional for env vars\",\n\t\"resource\":      \"Required: resource to select\",\n\t\"divisor\":       \"Specifies the output format of the exposed resources, defaults to \\\"1\\\"\",\n}\n\nfunc (ResourceFieldSelector) SwaggerDoc() map[string]string {\n\treturn map_ResourceFieldSelector\n}\n\nvar map_ResourceHealth = map[string]string{\n\t\"\":           \"ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680.\",\n\t\"resourceID\": \"ResourceID is the unique identifier of the resource. See the ResourceID type for more information.\",\n\t\"health\":     \"Health of the resource. can be one of:\\n - Healthy: operates as normal\\n - Unhealthy: reported unhealthy. We consider this a temporary health issue\\n              since we do not have a mechanism today to distinguish\\n              temporary and permanent issues.\\n - Unknown: The status cannot be determined.\\n            For example, Device Plugin got unregistered and hasn't been re-registered since.\\n\\nIn future we may want to introduce the PermanentlyUnhealthy Status.\",\n}\n\nfunc (ResourceHealth) SwaggerDoc() map[string]string {\n\treturn map_ResourceHealth\n}\n\nvar map_ResourceQuota = map[string]string{\n\t\"\":         \"ResourceQuota sets aggregate quota restrictions enforced per namespace\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec defines the desired quota. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"Status defines the actual enforced quota and its current usage. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (ResourceQuota) SwaggerDoc() map[string]string {\n\treturn map_ResourceQuota\n}\n\nvar map_ResourceQuotaList = map[string]string{\n\t\"\":         \"ResourceQuotaList is a list of ResourceQuota items.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"Items is a list of ResourceQuota objects. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/\",\n}\n\nfunc (ResourceQuotaList) SwaggerDoc() map[string]string {\n\treturn map_ResourceQuotaList\n}\n\nvar map_ResourceQuotaSpec = map[string]string{\n\t\"\":              \"ResourceQuotaSpec defines the desired hard limits to enforce for Quota.\",\n\t\"hard\":          \"hard is the set of desired hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/\",\n\t\"scopes\":        \"A collection of filters that must match each object tracked by a quota. If not specified, the quota matches all objects.\",\n\t\"scopeSelector\": \"scopeSelector is also a collection of filters like scopes that must match each object tracked by a quota but expressed using ScopeSelectorOperator in combination with possible values. For a resource to match, both scopes AND scopeSelector (if specified in spec), must be matched.\",\n}\n\nfunc (ResourceQuotaSpec) SwaggerDoc() map[string]string {\n\treturn map_ResourceQuotaSpec\n}\n\nvar map_ResourceQuotaStatus = map[string]string{\n\t\"\":     \"ResourceQuotaStatus defines the enforced hard limits and observed use.\",\n\t\"hard\": \"Hard is the set of enforced hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/\",\n\t\"used\": \"Used is the current observed total usage of the resource in the namespace.\",\n}\n\nfunc (ResourceQuotaStatus) SwaggerDoc() map[string]string {\n\treturn map_ResourceQuotaStatus\n}\n\nvar map_ResourceRequirements = map[string]string{\n\t\"\":         \"ResourceRequirements describes the compute resource requirements.\",\n\t\"limits\":   \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n\t\"requests\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n\t\"claims\":   \"Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container.\\n\\nThis is an alpha field and requires enabling the DynamicResourceAllocation feature gate.\\n\\nThis field is immutable. It can only be set for containers.\",\n}\n\nfunc (ResourceRequirements) SwaggerDoc() map[string]string {\n\treturn map_ResourceRequirements\n}\n\nvar map_ResourceStatus = map[string]string{\n\t\"\":          \"ResourceStatus represents the status of a single resource allocated to a Pod.\",\n\t\"name\":      \"Name of the resource. Must be unique within the pod and in case of non-DRA resource, match one of the resources from the pod spec. For DRA resources, the value must be \\\"claim:<claim_name>/<request>\\\". When this status is reported about a container, the \\\"claim_name\\\" and \\\"request\\\" must match one of the claims of this container.\",\n\t\"resources\": \"List of unique resources health. Each element in the list contains an unique resource ID and its health. At a minimum, for the lifetime of a Pod, resource ID must uniquely identify the resource allocated to the Pod on the Node. If other Pod on the same Node reports the status with the same resource ID, it must be the same resource they share. See ResourceID type definition for a specific format it has in various use cases.\",\n}\n\nfunc (ResourceStatus) SwaggerDoc() map[string]string {\n\treturn map_ResourceStatus\n}\n\nvar map_SELinuxOptions = map[string]string{\n\t\"\":      \"SELinuxOptions are the labels to be applied to the container\",\n\t\"user\":  \"User is a SELinux user label that applies to the container.\",\n\t\"role\":  \"Role is a SELinux role label that applies to the container.\",\n\t\"type\":  \"Type is a SELinux type label that applies to the container.\",\n\t\"level\": \"Level is SELinux level label that applies to the container.\",\n}\n\nfunc (SELinuxOptions) SwaggerDoc() map[string]string {\n\treturn map_SELinuxOptions\n}\n\nvar map_ScaleIOPersistentVolumeSource = map[string]string{\n\t\"\":                 \"ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume\",\n\t\"gateway\":          \"gateway is the host address of the ScaleIO API Gateway.\",\n\t\"system\":           \"system is the name of the storage system as configured in ScaleIO.\",\n\t\"secretRef\":        \"secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.\",\n\t\"sslEnabled\":       \"sslEnabled is the flag to enable/disable SSL communication with Gateway, default false\",\n\t\"protectionDomain\": \"protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\",\n\t\"storagePool\":      \"storagePool is the ScaleIO Storage Pool associated with the protection domain.\",\n\t\"storageMode\":      \"storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.\",\n\t\"volumeName\":       \"volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.\",\n\t\"fsType\":           \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Default is \\\"xfs\\\"\",\n\t\"readOnly\":         \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n}\n\nfunc (ScaleIOPersistentVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_ScaleIOPersistentVolumeSource\n}\n\nvar map_ScaleIOVolumeSource = map[string]string{\n\t\"\":                 \"ScaleIOVolumeSource represents a persistent ScaleIO volume\",\n\t\"gateway\":          \"gateway is the host address of the ScaleIO API Gateway.\",\n\t\"system\":           \"system is the name of the storage system as configured in ScaleIO.\",\n\t\"secretRef\":        \"secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.\",\n\t\"sslEnabled\":       \"sslEnabled Flag enable/disable SSL communication with Gateway, default false\",\n\t\"protectionDomain\": \"protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.\",\n\t\"storagePool\":      \"storagePool is the ScaleIO Storage Pool associated with the protection domain.\",\n\t\"storageMode\":      \"storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.\",\n\t\"volumeName\":       \"volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.\",\n\t\"fsType\":           \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Default is \\\"xfs\\\".\",\n\t\"readOnly\":         \"readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n}\n\nfunc (ScaleIOVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_ScaleIOVolumeSource\n}\n\nvar map_ScopeSelector = map[string]string{\n\t\"\":                 \"A scope selector represents the AND of the selectors represented by the scoped-resource selector requirements.\",\n\t\"matchExpressions\": \"A list of scope selector requirements by scope of the resources.\",\n}\n\nfunc (ScopeSelector) SwaggerDoc() map[string]string {\n\treturn map_ScopeSelector\n}\n\nvar map_ScopedResourceSelectorRequirement = map[string]string{\n\t\"\":          \"A scoped-resource selector requirement is a selector that contains values, a scope name, and an operator that relates the scope name and values.\",\n\t\"scopeName\": \"The name of the scope that the selector applies to.\",\n\t\"operator\":  \"Represents a scope's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist.\",\n\t\"values\":    \"An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n}\n\nfunc (ScopedResourceSelectorRequirement) SwaggerDoc() map[string]string {\n\treturn map_ScopedResourceSelectorRequirement\n}\n\nvar map_SeccompProfile = map[string]string{\n\t\"\":                 \"SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set.\",\n\t\"type\":             \"type indicates which kind of seccomp profile will be applied. Valid options are:\\n\\nLocalhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.\",\n\t\"localhostProfile\": \"localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is \\\"Localhost\\\". Must NOT be set for any other type.\",\n}\n\nfunc (SeccompProfile) SwaggerDoc() map[string]string {\n\treturn map_SeccompProfile\n}\n\nvar map_Secret = map[string]string{\n\t\"\":           \"Secret holds secret data of a certain type. The total bytes of the values in the Data field must be less than MaxSecretSize bytes.\",\n\t\"metadata\":   \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"immutable\":  \"Immutable, if set to true, ensures that data stored in the Secret cannot be updated (only object metadata can be modified). If not set to true, the field can be modified at any time. Defaulted to nil.\",\n\t\"data\":       \"Data contains the secret data. Each key must consist of alphanumeric characters, '-', '_' or '.'. The serialized form of the secret data is a base64 encoded string, representing the arbitrary (possibly non-string) data value here. Described in https://tools.ietf.org/html/rfc4648#section-4\",\n\t\"stringData\": \"stringData allows specifying non-binary secret data in string form. It is provided as a write-only input field for convenience. All keys and values are merged into the data field on write, overwriting any existing values. The stringData field is never output when reading from the API.\",\n\t\"type\":       \"Used to facilitate programmatic handling of secret data. More info: https://kubernetes.io/docs/concepts/configuration/secret/#secret-types\",\n}\n\nfunc (Secret) SwaggerDoc() map[string]string {\n\treturn map_Secret\n}\n\nvar map_SecretEnvSource = map[string]string{\n\t\"\":         \"SecretEnvSource selects a Secret to populate the environment variables with.\\n\\nThe contents of the target Secret's Data field will represent the key-value pairs as environment variables.\",\n\t\"optional\": \"Specify whether the Secret must be defined\",\n}\n\nfunc (SecretEnvSource) SwaggerDoc() map[string]string {\n\treturn map_SecretEnvSource\n}\n\nvar map_SecretKeySelector = map[string]string{\n\t\"\":         \"SecretKeySelector selects a key of a Secret.\",\n\t\"key\":      \"The key of the secret to select from.  Must be a valid secret key.\",\n\t\"optional\": \"Specify whether the Secret or its key must be defined\",\n}\n\nfunc (SecretKeySelector) SwaggerDoc() map[string]string {\n\treturn map_SecretKeySelector\n}\n\nvar map_SecretList = map[string]string{\n\t\"\":         \"SecretList is a list of Secret.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"Items is a list of secret objects. More info: https://kubernetes.io/docs/concepts/configuration/secret\",\n}\n\nfunc (SecretList) SwaggerDoc() map[string]string {\n\treturn map_SecretList\n}\n\nvar map_SecretProjection = map[string]string{\n\t\"\":         \"Adapts a secret into a projected volume.\\n\\nThe contents of the target Secret's Data field will be presented in a projected volume as files using the keys in the Data field as the file names. Note that this is identical to a secret volume source without the default mode.\",\n\t\"items\":    \"items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n\t\"optional\": \"optional field specify whether the Secret or its key must be defined\",\n}\n\nfunc (SecretProjection) SwaggerDoc() map[string]string {\n\treturn map_SecretProjection\n}\n\nvar map_SecretReference = map[string]string{\n\t\"\":          \"SecretReference represents a Secret Reference. It has enough information to retrieve secret in any namespace\",\n\t\"name\":      \"name is unique within a namespace to reference a secret resource.\",\n\t\"namespace\": \"namespace defines the space within which the secret name must be unique.\",\n}\n\nfunc (SecretReference) SwaggerDoc() map[string]string {\n\treturn map_SecretReference\n}\n\nvar map_SecretVolumeSource = map[string]string{\n\t\"\":            \"Adapts a Secret into a volume.\\n\\nThe contents of the target Secret's Data field will be presented in a volume as files using the keys in the Data field as the file names. Secret volumes support ownership management and SELinux relabeling.\",\n\t\"secretName\":  \"secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n\t\"items\":       \"items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.\",\n\t\"defaultMode\": \"defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.\",\n\t\"optional\":    \"optional field specify whether the Secret or its keys must be defined\",\n}\n\nfunc (SecretVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_SecretVolumeSource\n}\n\nvar map_SecurityContext = map[string]string{\n\t\"\":                         \"SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext.  When both are set, the values in SecurityContext take precedence.\",\n\t\"capabilities\":             \"The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.\",\n\t\"privileged\":               \"Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.\",\n\t\"seLinuxOptions\":           \"The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container.  May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n\t\"windowsOptions\":           \"The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.\",\n\t\"runAsUser\":                \"The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n\t\"runAsGroup\":               \"The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.\",\n\t\"runAsNonRoot\":             \"Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext.  If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n\t\"readOnlyRootFilesystem\":   \"Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.\",\n\t\"allowPrivilegeEscalation\": \"AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.\",\n\t\"procMount\":                \"procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.\",\n\t\"seccompProfile\":           \"The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.\",\n\t\"appArmorProfile\":          \"appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows.\",\n}\n\nfunc (SecurityContext) SwaggerDoc() map[string]string {\n\treturn map_SecurityContext\n}\n\nvar map_SerializedReference = map[string]string{\n\t\"\":          \"SerializedReference is a reference to serialized object.\",\n\t\"reference\": \"The reference to an object in the system.\",\n}\n\nfunc (SerializedReference) SwaggerDoc() map[string]string {\n\treturn map_SerializedReference\n}\n\nvar map_Service = map[string]string{\n\t\"\":         \"Service is a named abstraction of software service (for example, mysql) consisting of local port (for example 3306) that the proxy listens on, and the selector that determines which pods will answer requests sent through the proxy.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec defines the behavior of a service. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"Most recently observed status of the service. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (Service) SwaggerDoc() map[string]string {\n\treturn map_Service\n}\n\nvar map_ServiceAccount = map[string]string{\n\t\"\":                             \"ServiceAccount binds together: * a name, understood by users, and perhaps by peripheral systems, for an identity * a principal that can be authenticated and authorized * a set of secrets\",\n\t\"metadata\":                     \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"secrets\":                      \"Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a \\\"kubernetes.io/enforce-mountable-secrets\\\" annotation set to \\\"true\\\". The \\\"kubernetes.io/enforce-mountable-secrets\\\" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret\",\n\t\"imagePullSecrets\":             \"ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet. More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod\",\n\t\"automountServiceAccountToken\": \"AutomountServiceAccountToken indicates whether pods running as this service account should have an API token automatically mounted. Can be overridden at the pod level.\",\n}\n\nfunc (ServiceAccount) SwaggerDoc() map[string]string {\n\treturn map_ServiceAccount\n}\n\nvar map_ServiceAccountList = map[string]string{\n\t\"\":         \"ServiceAccountList is a list of ServiceAccount objects\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of ServiceAccounts. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/\",\n}\n\nfunc (ServiceAccountList) SwaggerDoc() map[string]string {\n\treturn map_ServiceAccountList\n}\n\nvar map_ServiceAccountTokenProjection = map[string]string{\n\t\"\":                  \"ServiceAccountTokenProjection represents a projected service account token volume. This projection can be used to insert a service account token into the pods runtime filesystem for use against APIs (Kubernetes API Server or otherwise).\",\n\t\"audience\":          \"audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.\",\n\t\"expirationSeconds\": \"expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.\",\n\t\"path\":              \"path is the path relative to the mount point of the file to project the token into.\",\n}\n\nfunc (ServiceAccountTokenProjection) SwaggerDoc() map[string]string {\n\treturn map_ServiceAccountTokenProjection\n}\n\nvar map_ServiceList = map[string]string{\n\t\"\":         \"ServiceList holds a list of services.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of services\",\n}\n\nfunc (ServiceList) SwaggerDoc() map[string]string {\n\treturn map_ServiceList\n}\n\nvar map_ServicePort = map[string]string{\n\t\"\":            \"ServicePort contains information on service's port.\",\n\t\"name\":        \"The name of this port within the service. This must be a DNS_LABEL. All ports within a ServiceSpec must have unique names. When considering the endpoints for a Service, this must match the 'name' field in the EndpointPort. Optional if only one ServicePort is defined on this service.\",\n\t\"protocol\":    \"The IP protocol for this port. Supports \\\"TCP\\\", \\\"UDP\\\", and \\\"SCTP\\\". Default is TCP.\",\n\t\"appProtocol\": \"The application protocol for this port. This is used as a hint for implementations to offer richer behavior for protocols that they understand. This field follows standard Kubernetes label syntax. Valid values are either:\\n\\n* Un-prefixed protocol names - reserved for IANA standard service names (as per RFC-6335 and https://www.iana.org/assignments/service-names).\\n\\n* Kubernetes-defined prefixed names:\\n  * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior-\\n  * 'kubernetes.io/ws'  - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455\\n  * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455\\n\\n* Other protocols should use implementation-defined prefixed names such as mycompany.com/my-custom-protocol.\",\n\t\"port\":        \"The port that will be exposed by this service.\",\n\t\"targetPort\":  \"Number or name of the port to access on the pods targeted by the service. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. If this is a string, it will be looked up as a named port in the target Pod's container ports. If this is not specified, the value of the 'port' field is used (an identity map). This field is ignored for services with clusterIP=None, and should be omitted or set equal to the 'port' field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service\",\n\t\"nodePort\":    \"The port on each node on which this service is exposed when type is NodePort or LoadBalancer.  Usually assigned by the system. If a value is specified, in-range, and not in use it will be used, otherwise the operation will fail.  If not specified, a port will be allocated if this Service requires one.  If this field is specified when creating a Service which does not need it, creation will fail. This field will be wiped when updating a Service to no longer need it (e.g. changing type from NodePort to ClusterIP). More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport\",\n}\n\nfunc (ServicePort) SwaggerDoc() map[string]string {\n\treturn map_ServicePort\n}\n\nvar map_ServiceProxyOptions = map[string]string{\n\t\"\":     \"ServiceProxyOptions is the query options to a Service's proxy call.\",\n\t\"path\": \"Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.\",\n}\n\nfunc (ServiceProxyOptions) SwaggerDoc() map[string]string {\n\treturn map_ServiceProxyOptions\n}\n\nvar map_ServiceSpec = map[string]string{\n\t\"\":                              \"ServiceSpec describes the attributes that a user creates on a service.\",\n\t\"ports\":                         \"The list of ports that are exposed by this service. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\",\n\t\"selector\":                      \"Route service traffic to pods with label keys and values matching this selector. If empty or not present, the service is assumed to have an external process managing its endpoints, which Kubernetes will not modify. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/\",\n\t\"clusterIP\":                     \"clusterIP is the IP address of the service and is usually assigned randomly. If an address is specified manually, is in-range (as per system configuration), and is not in use, it will be allocated to the service; otherwise creation of the service will fail. This field may not be changed through updates unless the type field is also being changed to ExternalName (which requires this field to be blank) or the type field is being changed from ExternalName (in which case this field may optionally be specified, as describe above).  Valid values are \\\"None\\\", empty string (\\\"\\\"), or a valid IP address. Setting this to \\\"None\\\" makes a \\\"headless service\\\" (no virtual IP), which is useful when direct endpoint connections are preferred and proxying is not required.  Only applies to types ClusterIP, NodePort, and LoadBalancer. If this field is specified when creating a Service of type ExternalName, creation will fail. This field will be wiped when updating a Service to type ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\",\n\t\"clusterIPs\":                    \"ClusterIPs is a list of IP addresses assigned to this service, and are usually assigned randomly.  If an address is specified manually, is in-range (as per system configuration), and is not in use, it will be allocated to the service; otherwise creation of the service will fail. This field may not be changed through updates unless the type field is also being changed to ExternalName (which requires this field to be empty) or the type field is being changed from ExternalName (in which case this field may optionally be specified, as describe above).  Valid values are \\\"None\\\", empty string (\\\"\\\"), or a valid IP address.  Setting this to \\\"None\\\" makes a \\\"headless service\\\" (no virtual IP), which is useful when direct endpoint connections are preferred and proxying is not required.  Only applies to types ClusterIP, NodePort, and LoadBalancer. If this field is specified when creating a Service of type ExternalName, creation will fail. This field will be wiped when updating a Service to type ExternalName.  If this field is not specified, it will be initialized from the clusterIP field.  If this field is specified, clients must ensure that clusterIPs[0] and clusterIP have the same value.\\n\\nThis field may hold a maximum of two entries (dual-stack IPs, in either order). These IPs must correspond to the values of the ipFamilies field. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\",\n\t\"type\":                          \"type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. \\\"ClusterIP\\\" allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object or EndpointSlice objects. If clusterIP is \\\"None\\\", no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a virtual IP. \\\"NodePort\\\" builds on ClusterIP and allocates a port on every node which routes to the same endpoints as the clusterIP. \\\"LoadBalancer\\\" builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the same endpoints as the clusterIP. \\\"ExternalName\\\" aliases this service to the specified externalName. Several other fields do not apply to ExternalName services. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types\",\n\t\"externalIPs\":                   \"externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service.  These IPs are not managed by Kubernetes.  The user is responsible for ensuring that traffic arrives at a node with this IP.  A common example is external load-balancers that are not part of the Kubernetes system.\",\n\t\"sessionAffinity\":               \"Supports \\\"ClientIP\\\" and \\\"None\\\". Used to maintain session affinity. Enable client IP based session affinity. Must be ClientIP or None. Defaults to None. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\",\n\t\"loadBalancerIP\":                \"Only applies to Service Type: LoadBalancer. This feature depends on whether the underlying cloud-provider supports specifying the loadBalancerIP when a load balancer is created. This field will be ignored if the cloud-provider does not support the feature. Deprecated: This field was under-specified and its meaning varies across implementations. Using it is non-portable and it may not support dual-stack. Users are encouraged to use implementation-specific annotations when available.\",\n\t\"loadBalancerSourceRanges\":      \"If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature.\\\" More info: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/\",\n\t\"externalName\":                  \"externalName is the external reference that discovery mechanisms will return as an alias for this service (e.g. a DNS CNAME record). No proxying will be involved.  Must be a lowercase RFC-1123 hostname (https://tools.ietf.org/html/rfc1123) and requires `type` to be \\\"ExternalName\\\".\",\n\t\"externalTrafficPolicy\":         \"externalTrafficPolicy describes how nodes distribute service traffic they receive on one of the Service's \\\"externally-facing\\\" addresses (NodePorts, ExternalIPs, and LoadBalancer IPs). If set to \\\"Local\\\", the proxy will configure the service in a way that assumes that external load balancers will take care of balancing the service traffic between nodes, and so each node will deliver traffic only to the node-local endpoints of the service, without masquerading the client source IP. (Traffic mistakenly sent to a node with no endpoints will be dropped.) The default value, \\\"Cluster\\\", uses the standard behavior of routing to all endpoints evenly (possibly modified by topology and other features). Note that traffic sent to an External IP or LoadBalancer IP from within the cluster will always get \\\"Cluster\\\" semantics, but clients sending to a NodePort from within the cluster may need to take traffic policy into account when picking a node.\",\n\t\"healthCheckNodePort\":           \"healthCheckNodePort specifies the healthcheck nodePort for the service. This only applies when type is set to LoadBalancer and externalTrafficPolicy is set to Local. If a value is specified, is in-range, and is not in use, it will be used.  If not specified, a value will be automatically allocated.  External systems (e.g. load-balancers) can use this port to determine if a given node holds endpoints for this service or not.  If this field is specified when creating a Service which does not need it, creation will fail. This field will be wiped when updating a Service to no longer need it (e.g. changing type). This field cannot be updated once set.\",\n\t\"publishNotReadyAddresses\":      \"publishNotReadyAddresses indicates that any agent which deals with endpoints for this Service should disregard any indications of ready/not-ready. The primary use case for setting this field is for a StatefulSet's Headless Service to propagate SRV DNS records for its Pods for the purpose of peer discovery. The Kubernetes controllers that generate Endpoints and EndpointSlice resources for Services interpret this to mean that all endpoints are considered \\\"ready\\\" even if the Pods themselves are not. Agents which consume only Kubernetes generated endpoints through the Endpoints or EndpointSlice resources can safely assume this behavior.\",\n\t\"sessionAffinityConfig\":         \"sessionAffinityConfig contains the configurations of session affinity.\",\n\t\"ipFamilies\":                    \"IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this service. This field is usually assigned automatically based on cluster configuration and the ipFamilyPolicy field. If this field is specified manually, the requested family is available in the cluster, and ipFamilyPolicy allows it, it will be used; otherwise creation of the service will fail. This field is conditionally mutable: it allows for adding or removing a secondary IP family, but it does not allow changing the primary IP family of the Service. Valid values are \\\"IPv4\\\" and \\\"IPv6\\\".  This field only applies to Services of types ClusterIP, NodePort, and LoadBalancer, and does apply to \\\"headless\\\" services. This field will be wiped when updating a Service to type ExternalName.\\n\\nThis field may hold a maximum of two entries (dual-stack families, in either order).  These families must correspond to the values of the clusterIPs field, if specified. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field.\",\n\t\"ipFamilyPolicy\":                \"IPFamilyPolicy represents the dual-stack-ness requested or required by this Service. If there is no value provided, then this field will be set to SingleStack. Services can be \\\"SingleStack\\\" (a single IP family), \\\"PreferDualStack\\\" (two IP families on dual-stack configured clusters or a single IP family on single-stack clusters), or \\\"RequireDualStack\\\" (two IP families on dual-stack configured clusters, otherwise fail). The ipFamilies and clusterIPs fields depend on the value of this field. This field will be wiped when updating a service to type ExternalName.\",\n\t\"allocateLoadBalancerNodePorts\": \"allocateLoadBalancerNodePorts defines if NodePorts will be automatically allocated for services with type LoadBalancer.  Default is \\\"true\\\". It may be set to \\\"false\\\" if the cluster load-balancer does not rely on NodePorts.  If the caller requests specific NodePorts (by specifying a value), those requests will be respected, regardless of this field. This field may only be set for services with type LoadBalancer and will be cleared if the type is changed to any other type.\",\n\t\"loadBalancerClass\":             \"loadBalancerClass is the class of the load balancer implementation this Service belongs to. If specified, the value of this field must be a label-style identifier, with an optional prefix, e.g. \\\"internal-vip\\\" or \\\"example.com/internal-vip\\\". Unprefixed names are reserved for end-users. This field can only be set when the Service type is 'LoadBalancer'. If not set, the default load balancer implementation is used, today this is typically done through the cloud provider integration, but should apply for any default implementation. If set, it is assumed that a load balancer implementation is watching for Services with a matching class. Any default load balancer implementation (e.g. cloud providers) should ignore Services that set this field. This field can only be set when creating or updating a Service to type 'LoadBalancer'. Once set, it can not be changed. This field will be wiped when a service is updated to a non 'LoadBalancer' type.\",\n\t\"internalTrafficPolicy\":         \"InternalTrafficPolicy describes how nodes distribute service traffic they receive on the ClusterIP. If set to \\\"Local\\\", the proxy will assume that pods only want to talk to endpoints of the service on the same node as the pod, dropping the traffic if there are no local endpoints. The default value, \\\"Cluster\\\", uses the standard behavior of routing to all endpoints evenly (possibly modified by topology and other features).\",\n\t\"trafficDistribution\":           \"TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to \\\"PreferClose\\\", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is a beta field and requires enabling ServiceTrafficDistribution feature.\",\n}\n\nfunc (ServiceSpec) SwaggerDoc() map[string]string {\n\treturn map_ServiceSpec\n}\n\nvar map_ServiceStatus = map[string]string{\n\t\"\":             \"ServiceStatus represents the current status of a service.\",\n\t\"loadBalancer\": \"LoadBalancer contains the current status of the load-balancer, if one is present.\",\n\t\"conditions\":   \"Current service state\",\n}\n\nfunc (ServiceStatus) SwaggerDoc() map[string]string {\n\treturn map_ServiceStatus\n}\n\nvar map_SessionAffinityConfig = map[string]string{\n\t\"\":         \"SessionAffinityConfig represents the configurations of session affinity.\",\n\t\"clientIP\": \"clientIP contains the configurations of Client IP based session affinity.\",\n}\n\nfunc (SessionAffinityConfig) SwaggerDoc() map[string]string {\n\treturn map_SessionAffinityConfig\n}\n\nvar map_SleepAction = map[string]string{\n\t\"\":        \"SleepAction describes a \\\"sleep\\\" action.\",\n\t\"seconds\": \"Seconds is the number of seconds to sleep.\",\n}\n\nfunc (SleepAction) SwaggerDoc() map[string]string {\n\treturn map_SleepAction\n}\n\nvar map_StorageOSPersistentVolumeSource = map[string]string{\n\t\"\":                \"Represents a StorageOS persistent volume resource.\",\n\t\"volumeName\":      \"volumeName is the human-readable name of the StorageOS volume.  Volume names are only unique within a namespace.\",\n\t\"volumeNamespace\": \"volumeNamespace specifies the scope of the volume within StorageOS.  If no namespace is specified then the Pod's namespace will be used.  This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \\\"default\\\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.\",\n\t\"fsType\":          \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n\t\"readOnly\":        \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n\t\"secretRef\":       \"secretRef specifies the secret to use for obtaining the StorageOS API credentials.  If not specified, default values will be attempted.\",\n}\n\nfunc (StorageOSPersistentVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_StorageOSPersistentVolumeSource\n}\n\nvar map_StorageOSVolumeSource = map[string]string{\n\t\"\":                \"Represents a StorageOS persistent volume resource.\",\n\t\"volumeName\":      \"volumeName is the human-readable name of the StorageOS volume.  Volume names are only unique within a namespace.\",\n\t\"volumeNamespace\": \"volumeNamespace specifies the scope of the volume within StorageOS.  If no namespace is specified then the Pod's namespace will be used.  This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \\\"default\\\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.\",\n\t\"fsType\":          \"fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n\t\"readOnly\":        \"readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.\",\n\t\"secretRef\":       \"secretRef specifies the secret to use for obtaining the StorageOS API credentials.  If not specified, default values will be attempted.\",\n}\n\nfunc (StorageOSVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_StorageOSVolumeSource\n}\n\nvar map_Sysctl = map[string]string{\n\t\"\":      \"Sysctl defines a kernel parameter to be set\",\n\t\"name\":  \"Name of a property to set\",\n\t\"value\": \"Value of a property to set\",\n}\n\nfunc (Sysctl) SwaggerDoc() map[string]string {\n\treturn map_Sysctl\n}\n\nvar map_TCPSocketAction = map[string]string{\n\t\"\":     \"TCPSocketAction describes an action based on opening a socket\",\n\t\"port\": \"Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.\",\n\t\"host\": \"Optional: Host name to connect to, defaults to the pod IP.\",\n}\n\nfunc (TCPSocketAction) SwaggerDoc() map[string]string {\n\treturn map_TCPSocketAction\n}\n\nvar map_Taint = map[string]string{\n\t\"\":          \"The node this Taint is attached to has the \\\"effect\\\" on any pod that does not tolerate the Taint.\",\n\t\"key\":       \"Required. The taint key to be applied to a node.\",\n\t\"value\":     \"The taint value corresponding to the taint key.\",\n\t\"effect\":    \"Required. The effect of the taint on pods that do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule and NoExecute.\",\n\t\"timeAdded\": \"TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints.\",\n}\n\nfunc (Taint) SwaggerDoc() map[string]string {\n\treturn map_Taint\n}\n\nvar map_Toleration = map[string]string{\n\t\"\":                  \"The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.\",\n\t\"key\":               \"Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.\",\n\t\"operator\":          \"Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.\",\n\t\"value\":             \"Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.\",\n\t\"effect\":            \"Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\",\n\t\"tolerationSeconds\": \"TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.\",\n}\n\nfunc (Toleration) SwaggerDoc() map[string]string {\n\treturn map_Toleration\n}\n\nvar map_TopologySelectorLabelRequirement = map[string]string{\n\t\"\":       \"A topology selector requirement is a selector that matches given label. This is an alpha feature and may change in the future.\",\n\t\"key\":    \"The label key that the selector applies to.\",\n\t\"values\": \"An array of string values. One value must match the label to be selected. Each entry in Values is ORed.\",\n}\n\nfunc (TopologySelectorLabelRequirement) SwaggerDoc() map[string]string {\n\treturn map_TopologySelectorLabelRequirement\n}\n\nvar map_TopologySelectorTerm = map[string]string{\n\t\"\":                      \"A topology selector term represents the result of label queries. A null or empty topology selector term matches no objects. The requirements of them are ANDed. It provides a subset of functionality as NodeSelectorTerm. This is an alpha feature and may change in the future.\",\n\t\"matchLabelExpressions\": \"A list of topology selector requirements by labels.\",\n}\n\nfunc (TopologySelectorTerm) SwaggerDoc() map[string]string {\n\treturn map_TopologySelectorTerm\n}\n\nvar map_TopologySpreadConstraint = map[string]string{\n\t\"\":                   \"TopologySpreadConstraint specifies how to spread matching pods among the given topology.\",\n\t\"maxSkew\":            \"MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. \",\n\t\"topologyKey\":        \"TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each <key, value> as a \\\"bucket\\\", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is \\\"kubernetes.io/hostname\\\", each Node is a domain of that topology. And, if TopologyKey is \\\"topology.kubernetes.io/zone\\\", each zone is a domain of that topology. It's a required field.\",\n\t\"whenUnsatisfiable\":  \"WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location,\\n  but giving higher precedence to topologies that would help reduce the\\n  skew.\\nA constraint is considered \\\"Unsatisfiable\\\" for an incoming pod if and only if every possible node assignment for that pod would violate \\\"MaxSkew\\\" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: \",\n\t\"labelSelector\":      \"LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.\",\n\t\"minDomains\":         \"MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \\\"global minimum\\\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule.\\n\\nFor example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: \",\n\t\"nodeAffinityPolicy\": \"NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.\\n\\nIf this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\",\n\t\"nodeTaintsPolicy\":   \"NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included.\\n\\nIf this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\",\n\t\"matchLabelKeys\":     \"MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector.\\n\\nThis is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).\",\n}\n\nfunc (TopologySpreadConstraint) SwaggerDoc() map[string]string {\n\treturn map_TopologySpreadConstraint\n}\n\nvar map_TypedLocalObjectReference = map[string]string{\n\t\"\":         \"TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace.\",\n\t\"apiGroup\": \"APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\n\t\"kind\":     \"Kind is the type of resource being referenced\",\n\t\"name\":     \"Name is the name of resource being referenced\",\n}\n\nfunc (TypedLocalObjectReference) SwaggerDoc() map[string]string {\n\treturn map_TypedLocalObjectReference\n}\n\nvar map_TypedObjectReference = map[string]string{\n\t\"\":          \"TypedObjectReference contains enough information to let you locate the typed referenced object\",\n\t\"apiGroup\":  \"APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\n\t\"kind\":      \"Kind is the type of resource being referenced\",\n\t\"name\":      \"Name is the name of resource being referenced\",\n\t\"namespace\": \"Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.\",\n}\n\nfunc (TypedObjectReference) SwaggerDoc() map[string]string {\n\treturn map_TypedObjectReference\n}\n\nvar map_Volume = map[string]string{\n\t\"\":     \"Volume represents a named volume in a pod that may be accessed by any container in the pod.\",\n\t\"name\": \"name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\",\n}\n\nfunc (Volume) SwaggerDoc() map[string]string {\n\treturn map_Volume\n}\n\nvar map_VolumeDevice = map[string]string{\n\t\"\":           \"volumeDevice describes a mapping of a raw block device within a container.\",\n\t\"name\":       \"name must match the name of a persistentVolumeClaim in the pod\",\n\t\"devicePath\": \"devicePath is the path inside of the container that the device will be mapped to.\",\n}\n\nfunc (VolumeDevice) SwaggerDoc() map[string]string {\n\treturn map_VolumeDevice\n}\n\nvar map_VolumeMount = map[string]string{\n\t\"\":                  \"VolumeMount describes a mounting of a Volume within a container.\",\n\t\"name\":              \"This must match the Name of a Volume.\",\n\t\"readOnly\":          \"Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.\",\n\t\"recursiveReadOnly\": \"RecursiveReadOnly specifies whether read-only mounts should be handled recursively.\\n\\nIf ReadOnly is false, this field has no meaning and must be unspecified.\\n\\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only.  If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime.  If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason.\\n\\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None).\\n\\nIf this field is not specified, it is treated as an equivalent of Disabled.\",\n\t\"mountPath\":         \"Path within the container at which the volume should be mounted.  Must not contain ':'.\",\n\t\"subPath\":           \"Path within the volume from which the container's volume should be mounted. Defaults to \\\"\\\" (volume's root).\",\n\t\"mountPropagation\":  \"mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).\",\n\t\"subPathExpr\":       \"Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to \\\"\\\" (volume's root). SubPathExpr and SubPath are mutually exclusive.\",\n}\n\nfunc (VolumeMount) SwaggerDoc() map[string]string {\n\treturn map_VolumeMount\n}\n\nvar map_VolumeMountStatus = map[string]string{\n\t\"\":                  \"VolumeMountStatus shows status of volume mounts.\",\n\t\"name\":              \"Name corresponds to the name of the original VolumeMount.\",\n\t\"mountPath\":         \"MountPath corresponds to the original VolumeMount.\",\n\t\"readOnly\":          \"ReadOnly corresponds to the original VolumeMount.\",\n\t\"recursiveReadOnly\": \"RecursiveReadOnly must be set to Disabled, Enabled, or unspecified (for non-readonly mounts). An IfPossible value in the original VolumeMount must be translated to Disabled or Enabled, depending on the mount result.\",\n}\n\nfunc (VolumeMountStatus) SwaggerDoc() map[string]string {\n\treturn map_VolumeMountStatus\n}\n\nvar map_VolumeNodeAffinity = map[string]string{\n\t\"\":         \"VolumeNodeAffinity defines constraints that limit what nodes this volume can be accessed from.\",\n\t\"required\": \"required specifies hard node constraints that must be met.\",\n}\n\nfunc (VolumeNodeAffinity) SwaggerDoc() map[string]string {\n\treturn map_VolumeNodeAffinity\n}\n\nvar map_VolumeProjection = map[string]string{\n\t\"\":                    \"Projection that may be projected along with other supported volume types. Exactly one of these fields must be set.\",\n\t\"secret\":              \"secret information about the secret data to project\",\n\t\"downwardAPI\":         \"downwardAPI information about the downwardAPI data to project\",\n\t\"configMap\":           \"configMap information about the configMap data to project\",\n\t\"serviceAccountToken\": \"serviceAccountToken is information about the serviceAccountToken data to project\",\n\t\"clusterTrustBundle\":  \"ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field of ClusterTrustBundle objects in an auto-updating file.\\n\\nAlpha, gated by the ClusterTrustBundleProjection feature gate.\\n\\nClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector.\\n\\nKubelet performs aggressive normalization of the PEM contents written into the pod filesystem.  Esoteric PEM features such as inter-block comments and block headers are stripped.  Certificates are deduplicated. The ordering of certificates within the file is arbitrary, and Kubelet may change the order over time.\",\n}\n\nfunc (VolumeProjection) SwaggerDoc() map[string]string {\n\treturn map_VolumeProjection\n}\n\nvar map_VolumeResourceRequirements = map[string]string{\n\t\"\":         \"VolumeResourceRequirements describes the storage resource requirements for a volume.\",\n\t\"limits\":   \"Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n\t\"requests\": \"Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/\",\n}\n\nfunc (VolumeResourceRequirements) SwaggerDoc() map[string]string {\n\treturn map_VolumeResourceRequirements\n}\n\nvar map_VolumeSource = map[string]string{\n\t\"\":                      \"Represents the source of a volume to mount. Only one of its members may be specified.\",\n\t\"hostPath\":              \"hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\",\n\t\"emptyDir\":              \"emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\",\n\t\"gcePersistentDisk\":     \"gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\",\n\t\"awsElasticBlockStore\":  \"awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\",\n\t\"gitRepo\":               \"gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.\",\n\t\"secret\":                \"secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\",\n\t\"nfs\":                   \"nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\",\n\t\"iscsi\":                 \"iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md\",\n\t\"glusterfs\":             \"glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md\",\n\t\"persistentVolumeClaim\": \"persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\",\n\t\"rbd\":                   \"rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md\",\n\t\"flexVolume\":            \"flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.\",\n\t\"cinder\":                \"cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md\",\n\t\"cephfs\":                \"cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.\",\n\t\"flocker\":               \"flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.\",\n\t\"downwardAPI\":           \"downwardAPI represents downward API about the pod that should populate this volume\",\n\t\"fc\":                    \"fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\",\n\t\"azureFile\":             \"azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver.\",\n\t\"configMap\":             \"configMap represents a configMap that should populate this volume\",\n\t\"vsphereVolume\":         \"vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver.\",\n\t\"quobyte\":               \"quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.\",\n\t\"azureDisk\":             \"azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver.\",\n\t\"photonPersistentDisk\":  \"photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.\",\n\t\"projected\":             \"projected items for all in one resources secrets, configmaps, and downward API\",\n\t\"portworxVolume\":        \"portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on.\",\n\t\"scaleIO\":               \"scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.\",\n\t\"storageos\":             \"storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.\",\n\t\"csi\":                   \"csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers.\",\n\t\"ephemeral\":             \"ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed.\\n\\nUse this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity\\n   tracking are needed,\\nc) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through\\n   a PersistentVolumeClaim (see EphemeralVolumeSource for more\\n   information on the connection between this volume type\\n   and PersistentVolumeClaim).\\n\\nUse PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod.\\n\\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information.\\n\\nA pod can use both types of ephemeral volumes and persistent volumes at the same time.\",\n\t\"image\":                 \"image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. The volume is resolved at pod startup depending on which PullPolicy value is provided:\\n\\n- Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.\\n\\nThe volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. The volume will be mounted read-only (ro) and non-executable files (noexec). Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath). The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.\",\n}\n\nfunc (VolumeSource) SwaggerDoc() map[string]string {\n\treturn map_VolumeSource\n}\n\nvar map_VsphereVirtualDiskVolumeSource = map[string]string{\n\t\"\":                  \"Represents a vSphere volume resource.\",\n\t\"volumePath\":        \"volumePath is the path that identifies vSphere volume vmdk\",\n\t\"fsType\":            \"fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \\\"ext4\\\", \\\"xfs\\\", \\\"ntfs\\\". Implicitly inferred to be \\\"ext4\\\" if unspecified.\",\n\t\"storagePolicyName\": \"storagePolicyName is the storage Policy Based Management (SPBM) profile name.\",\n\t\"storagePolicyID\":   \"storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.\",\n}\n\nfunc (VsphereVirtualDiskVolumeSource) SwaggerDoc() map[string]string {\n\treturn map_VsphereVirtualDiskVolumeSource\n}\n\nvar map_WeightedPodAffinityTerm = map[string]string{\n\t\"\":                \"The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)\",\n\t\"weight\":          \"weight associated with matching the corresponding podAffinityTerm, in the range 1-100.\",\n\t\"podAffinityTerm\": \"Required. A pod affinity term, associated with the corresponding weight.\",\n}\n\nfunc (WeightedPodAffinityTerm) SwaggerDoc() map[string]string {\n\treturn map_WeightedPodAffinityTerm\n}\n\nvar map_WindowsSecurityContextOptions = map[string]string{\n\t\"\":                       \"WindowsSecurityContextOptions contain Windows-specific options and credentials.\",\n\t\"gmsaCredentialSpecName\": \"GMSACredentialSpecName is the name of the GMSA credential spec to use.\",\n\t\"gmsaCredentialSpec\":     \"GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.\",\n\t\"runAsUserName\":          \"The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\",\n\t\"hostProcess\":            \"HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.\",\n}\n\nfunc (WindowsSecurityContextOptions) SwaggerDoc() map[string]string {\n\treturn map_WindowsSecurityContextOptions\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/core/v1/well_known_labels.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nconst (\n\tLabelHostname = \"kubernetes.io/hostname\"\n\n\t// Label value is the network location of kube-apiserver stored as <ip:port>\n\t// Stored in APIServer Identity lease objects to view what address is used for peer proxy\n\tAnnotationPeerAdvertiseAddress = \"kubernetes.io/peer-advertise-address\"\n\n\tLabelTopologyZone   = \"topology.kubernetes.io/zone\"\n\tLabelTopologyRegion = \"topology.kubernetes.io/region\"\n\n\t// These label have been deprecated since 1.17, but will be supported for\n\t// the foreseeable future, to accommodate things like long-lived PVs that\n\t// use them.  New users should prefer the \"topology.kubernetes.io/*\"\n\t// equivalents.\n\tLabelFailureDomainBetaZone   = \"failure-domain.beta.kubernetes.io/zone\"   // deprecated\n\tLabelFailureDomainBetaRegion = \"failure-domain.beta.kubernetes.io/region\" // deprecated\n\n\t// Retained for compat when vendored.  Do not use these consts in new code.\n\tLabelZoneFailureDomain       = LabelFailureDomainBetaZone   // deprecated\n\tLabelZoneRegion              = LabelFailureDomainBetaRegion // deprecated\n\tLabelZoneFailureDomainStable = LabelTopologyZone            // deprecated\n\tLabelZoneRegionStable        = LabelTopologyRegion          // deprecated\n\n\tLabelInstanceType       = \"beta.kubernetes.io/instance-type\"\n\tLabelInstanceTypeStable = \"node.kubernetes.io/instance-type\"\n\n\tLabelOSStable   = \"kubernetes.io/os\"\n\tLabelArchStable = \"kubernetes.io/arch\"\n\n\t// LabelWindowsBuild is used on Windows nodes to specify the Windows build number starting with v1.17.0.\n\t// It's in the format MajorVersion.MinorVersion.BuildNumber (for ex: 10.0.17763)\n\tLabelWindowsBuild = \"node.kubernetes.io/windows-build\"\n\n\t// LabelNamespaceSuffixKubelet is an allowed label namespace suffix kubelets can self-set ([*.]kubelet.kubernetes.io/*)\n\tLabelNamespaceSuffixKubelet = \"kubelet.kubernetes.io\"\n\t// LabelNamespaceSuffixNode is an allowed label namespace suffix kubelets can self-set ([*.]node.kubernetes.io/*)\n\tLabelNamespaceSuffixNode = \"node.kubernetes.io\"\n\n\t// LabelNamespaceNodeRestriction is a forbidden label namespace that kubelets may not self-set when the NodeRestriction admission plugin is enabled\n\tLabelNamespaceNodeRestriction = \"node-restriction.kubernetes.io\"\n\n\t// IsHeadlessService is added by Controller to an Endpoint denoting if its parent\n\t// Service is Headless. The existence of this label can be used further by other\n\t// controllers and kube-proxy to check if the Endpoint objects should be replicated when\n\t// using Headless Services\n\tIsHeadlessService = \"service.kubernetes.io/headless\"\n\n\t// LabelNodeExcludeBalancers specifies that the node should not be considered as a target\n\t// for external load-balancers which use nodes as a second hop (e.g. many cloud LBs which only\n\t// understand nodes). For services that use externalTrafficPolicy=Local, this may mean that\n\t// any backends on excluded nodes are not reachable by those external load-balancers.\n\t// Implementations of this exclusion may vary based on provider.\n\tLabelNodeExcludeBalancers = \"node.kubernetes.io/exclude-from-external-load-balancers\"\n\t// LabelMetadataName is the label name which, in-tree, is used to automatically label namespaces, so they can be selected easily by tools which require definitive labels\n\tLabelMetadataName = \"kubernetes.io/metadata.name\"\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/core/v1/well_known_taints.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nconst (\n\t// TaintNodeNotReady will be added when node is not ready\n\t// and removed when node becomes ready.\n\tTaintNodeNotReady = \"node.kubernetes.io/not-ready\"\n\n\t// TaintNodeUnreachable will be added when node becomes unreachable\n\t// (corresponding to NodeReady status ConditionUnknown)\n\t// and removed when node becomes reachable (NodeReady status ConditionTrue).\n\tTaintNodeUnreachable = \"node.kubernetes.io/unreachable\"\n\n\t// TaintNodeUnschedulable will be added when node becomes unschedulable\n\t// and removed when node becomes schedulable.\n\tTaintNodeUnschedulable = \"node.kubernetes.io/unschedulable\"\n\n\t// TaintNodeMemoryPressure will be added when node has memory pressure\n\t// and removed when node has enough memory.\n\tTaintNodeMemoryPressure = \"node.kubernetes.io/memory-pressure\"\n\n\t// TaintNodeDiskPressure will be added when node has disk pressure\n\t// and removed when node has enough disk.\n\tTaintNodeDiskPressure = \"node.kubernetes.io/disk-pressure\"\n\n\t// TaintNodeNetworkUnavailable will be added when node's network is unavailable\n\t// and removed when network becomes ready.\n\tTaintNodeNetworkUnavailable = \"node.kubernetes.io/network-unavailable\"\n\n\t// TaintNodePIDPressure will be added when node has pid pressure\n\t// and removed when node has enough pid.\n\tTaintNodePIDPressure = \"node.kubernetes.io/pid-pressure\"\n\n\t// TaintNodeOutOfService can be added when node is out of service in case of\n\t// a non-graceful shutdown\n\tTaintNodeOutOfService = \"node.kubernetes.io/out-of-service\"\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/core/v1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *AWSElasticBlockStoreVolumeSource) DeepCopyInto(out *AWSElasticBlockStoreVolumeSource) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AWSElasticBlockStoreVolumeSource.\nfunc (in *AWSElasticBlockStoreVolumeSource) DeepCopy() *AWSElasticBlockStoreVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(AWSElasticBlockStoreVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Affinity) DeepCopyInto(out *Affinity) {\n\t*out = *in\n\tif in.NodeAffinity != nil {\n\t\tin, out := &in.NodeAffinity, &out.NodeAffinity\n\t\t*out = new(NodeAffinity)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.PodAffinity != nil {\n\t\tin, out := &in.PodAffinity, &out.PodAffinity\n\t\t*out = new(PodAffinity)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.PodAntiAffinity != nil {\n\t\tin, out := &in.PodAntiAffinity, &out.PodAntiAffinity\n\t\t*out = new(PodAntiAffinity)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Affinity.\nfunc (in *Affinity) DeepCopy() *Affinity {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Affinity)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *AppArmorProfile) DeepCopyInto(out *AppArmorProfile) {\n\t*out = *in\n\tif in.LocalhostProfile != nil {\n\t\tin, out := &in.LocalhostProfile, &out.LocalhostProfile\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AppArmorProfile.\nfunc (in *AppArmorProfile) DeepCopy() *AppArmorProfile {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(AppArmorProfile)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *AttachedVolume) DeepCopyInto(out *AttachedVolume) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AttachedVolume.\nfunc (in *AttachedVolume) DeepCopy() *AttachedVolume {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(AttachedVolume)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *AvoidPods) DeepCopyInto(out *AvoidPods) {\n\t*out = *in\n\tif in.PreferAvoidPods != nil {\n\t\tin, out := &in.PreferAvoidPods, &out.PreferAvoidPods\n\t\t*out = make([]PreferAvoidPodsEntry, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AvoidPods.\nfunc (in *AvoidPods) DeepCopy() *AvoidPods {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(AvoidPods)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *AzureDiskVolumeSource) DeepCopyInto(out *AzureDiskVolumeSource) {\n\t*out = *in\n\tif in.CachingMode != nil {\n\t\tin, out := &in.CachingMode, &out.CachingMode\n\t\t*out = new(AzureDataDiskCachingMode)\n\t\t**out = **in\n\t}\n\tif in.FSType != nil {\n\t\tin, out := &in.FSType, &out.FSType\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.ReadOnly != nil {\n\t\tin, out := &in.ReadOnly, &out.ReadOnly\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.Kind != nil {\n\t\tin, out := &in.Kind, &out.Kind\n\t\t*out = new(AzureDataDiskKind)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AzureDiskVolumeSource.\nfunc (in *AzureDiskVolumeSource) DeepCopy() *AzureDiskVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(AzureDiskVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *AzureFilePersistentVolumeSource) DeepCopyInto(out *AzureFilePersistentVolumeSource) {\n\t*out = *in\n\tif in.SecretNamespace != nil {\n\t\tin, out := &in.SecretNamespace, &out.SecretNamespace\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AzureFilePersistentVolumeSource.\nfunc (in *AzureFilePersistentVolumeSource) DeepCopy() *AzureFilePersistentVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(AzureFilePersistentVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *AzureFileVolumeSource) DeepCopyInto(out *AzureFileVolumeSource) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AzureFileVolumeSource.\nfunc (in *AzureFileVolumeSource) DeepCopy() *AzureFileVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(AzureFileVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Binding) DeepCopyInto(out *Binding) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tout.Target = in.Target\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Binding.\nfunc (in *Binding) DeepCopy() *Binding {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Binding)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Binding) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSIPersistentVolumeSource) DeepCopyInto(out *CSIPersistentVolumeSource) {\n\t*out = *in\n\tif in.VolumeAttributes != nil {\n\t\tin, out := &in.VolumeAttributes, &out.VolumeAttributes\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.ControllerPublishSecretRef != nil {\n\t\tin, out := &in.ControllerPublishSecretRef, &out.ControllerPublishSecretRef\n\t\t*out = new(SecretReference)\n\t\t**out = **in\n\t}\n\tif in.NodeStageSecretRef != nil {\n\t\tin, out := &in.NodeStageSecretRef, &out.NodeStageSecretRef\n\t\t*out = new(SecretReference)\n\t\t**out = **in\n\t}\n\tif in.NodePublishSecretRef != nil {\n\t\tin, out := &in.NodePublishSecretRef, &out.NodePublishSecretRef\n\t\t*out = new(SecretReference)\n\t\t**out = **in\n\t}\n\tif in.ControllerExpandSecretRef != nil {\n\t\tin, out := &in.ControllerExpandSecretRef, &out.ControllerExpandSecretRef\n\t\t*out = new(SecretReference)\n\t\t**out = **in\n\t}\n\tif in.NodeExpandSecretRef != nil {\n\t\tin, out := &in.NodeExpandSecretRef, &out.NodeExpandSecretRef\n\t\t*out = new(SecretReference)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSIPersistentVolumeSource.\nfunc (in *CSIPersistentVolumeSource) DeepCopy() *CSIPersistentVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSIPersistentVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSIVolumeSource) DeepCopyInto(out *CSIVolumeSource) {\n\t*out = *in\n\tif in.ReadOnly != nil {\n\t\tin, out := &in.ReadOnly, &out.ReadOnly\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.FSType != nil {\n\t\tin, out := &in.FSType, &out.FSType\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.VolumeAttributes != nil {\n\t\tin, out := &in.VolumeAttributes, &out.VolumeAttributes\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.NodePublishSecretRef != nil {\n\t\tin, out := &in.NodePublishSecretRef, &out.NodePublishSecretRef\n\t\t*out = new(LocalObjectReference)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSIVolumeSource.\nfunc (in *CSIVolumeSource) DeepCopy() *CSIVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSIVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Capabilities) DeepCopyInto(out *Capabilities) {\n\t*out = *in\n\tif in.Add != nil {\n\t\tin, out := &in.Add, &out.Add\n\t\t*out = make([]Capability, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Drop != nil {\n\t\tin, out := &in.Drop, &out.Drop\n\t\t*out = make([]Capability, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Capabilities.\nfunc (in *Capabilities) DeepCopy() *Capabilities {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Capabilities)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CephFSPersistentVolumeSource) DeepCopyInto(out *CephFSPersistentVolumeSource) {\n\t*out = *in\n\tif in.Monitors != nil {\n\t\tin, out := &in.Monitors, &out.Monitors\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.SecretRef != nil {\n\t\tin, out := &in.SecretRef, &out.SecretRef\n\t\t*out = new(SecretReference)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CephFSPersistentVolumeSource.\nfunc (in *CephFSPersistentVolumeSource) DeepCopy() *CephFSPersistentVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CephFSPersistentVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CephFSVolumeSource) DeepCopyInto(out *CephFSVolumeSource) {\n\t*out = *in\n\tif in.Monitors != nil {\n\t\tin, out := &in.Monitors, &out.Monitors\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.SecretRef != nil {\n\t\tin, out := &in.SecretRef, &out.SecretRef\n\t\t*out = new(LocalObjectReference)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CephFSVolumeSource.\nfunc (in *CephFSVolumeSource) DeepCopy() *CephFSVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CephFSVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CinderPersistentVolumeSource) DeepCopyInto(out *CinderPersistentVolumeSource) {\n\t*out = *in\n\tif in.SecretRef != nil {\n\t\tin, out := &in.SecretRef, &out.SecretRef\n\t\t*out = new(SecretReference)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CinderPersistentVolumeSource.\nfunc (in *CinderPersistentVolumeSource) DeepCopy() *CinderPersistentVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CinderPersistentVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CinderVolumeSource) DeepCopyInto(out *CinderVolumeSource) {\n\t*out = *in\n\tif in.SecretRef != nil {\n\t\tin, out := &in.SecretRef, &out.SecretRef\n\t\t*out = new(LocalObjectReference)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CinderVolumeSource.\nfunc (in *CinderVolumeSource) DeepCopy() *CinderVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CinderVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ClientIPConfig) DeepCopyInto(out *ClientIPConfig) {\n\t*out = *in\n\tif in.TimeoutSeconds != nil {\n\t\tin, out := &in.TimeoutSeconds, &out.TimeoutSeconds\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClientIPConfig.\nfunc (in *ClientIPConfig) DeepCopy() *ClientIPConfig {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ClientIPConfig)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ClusterTrustBundleProjection) DeepCopyInto(out *ClusterTrustBundleProjection) {\n\t*out = *in\n\tif in.Name != nil {\n\t\tin, out := &in.Name, &out.Name\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.SignerName != nil {\n\t\tin, out := &in.SignerName, &out.SignerName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.LabelSelector != nil {\n\t\tin, out := &in.LabelSelector, &out.LabelSelector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Optional != nil {\n\t\tin, out := &in.Optional, &out.Optional\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterTrustBundleProjection.\nfunc (in *ClusterTrustBundleProjection) DeepCopy() *ClusterTrustBundleProjection {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ClusterTrustBundleProjection)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ComponentCondition) DeepCopyInto(out *ComponentCondition) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentCondition.\nfunc (in *ComponentCondition) DeepCopy() *ComponentCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ComponentCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ComponentStatus) DeepCopyInto(out *ComponentStatus) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]ComponentCondition, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentStatus.\nfunc (in *ComponentStatus) DeepCopy() *ComponentStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ComponentStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ComponentStatus) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ComponentStatusList) DeepCopyInto(out *ComponentStatusList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ComponentStatus, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentStatusList.\nfunc (in *ComponentStatusList) DeepCopy() *ComponentStatusList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ComponentStatusList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ComponentStatusList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ConfigMap) DeepCopyInto(out *ConfigMap) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Immutable != nil {\n\t\tin, out := &in.Immutable, &out.Immutable\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.Data != nil {\n\t\tin, out := &in.Data, &out.Data\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.BinaryData != nil {\n\t\tin, out := &in.BinaryData, &out.BinaryData\n\t\t*out = make(map[string][]byte, len(*in))\n\t\tfor key, val := range *in {\n\t\t\tvar outVal []byte\n\t\t\tif val == nil {\n\t\t\t\t(*out)[key] = nil\n\t\t\t} else {\n\t\t\t\tin, out := &val, &outVal\n\t\t\t\t*out = make([]byte, len(*in))\n\t\t\t\tcopy(*out, *in)\n\t\t\t}\n\t\t\t(*out)[key] = outVal\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMap.\nfunc (in *ConfigMap) DeepCopy() *ConfigMap {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ConfigMap)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ConfigMap) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ConfigMapEnvSource) DeepCopyInto(out *ConfigMapEnvSource) {\n\t*out = *in\n\tout.LocalObjectReference = in.LocalObjectReference\n\tif in.Optional != nil {\n\t\tin, out := &in.Optional, &out.Optional\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMapEnvSource.\nfunc (in *ConfigMapEnvSource) DeepCopy() *ConfigMapEnvSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ConfigMapEnvSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ConfigMapKeySelector) DeepCopyInto(out *ConfigMapKeySelector) {\n\t*out = *in\n\tout.LocalObjectReference = in.LocalObjectReference\n\tif in.Optional != nil {\n\t\tin, out := &in.Optional, &out.Optional\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMapKeySelector.\nfunc (in *ConfigMapKeySelector) DeepCopy() *ConfigMapKeySelector {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ConfigMapKeySelector)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ConfigMapList) DeepCopyInto(out *ConfigMapList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ConfigMap, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMapList.\nfunc (in *ConfigMapList) DeepCopy() *ConfigMapList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ConfigMapList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ConfigMapList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ConfigMapNodeConfigSource) DeepCopyInto(out *ConfigMapNodeConfigSource) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMapNodeConfigSource.\nfunc (in *ConfigMapNodeConfigSource) DeepCopy() *ConfigMapNodeConfigSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ConfigMapNodeConfigSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ConfigMapProjection) DeepCopyInto(out *ConfigMapProjection) {\n\t*out = *in\n\tout.LocalObjectReference = in.LocalObjectReference\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]KeyToPath, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Optional != nil {\n\t\tin, out := &in.Optional, &out.Optional\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMapProjection.\nfunc (in *ConfigMapProjection) DeepCopy() *ConfigMapProjection {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ConfigMapProjection)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ConfigMapVolumeSource) DeepCopyInto(out *ConfigMapVolumeSource) {\n\t*out = *in\n\tout.LocalObjectReference = in.LocalObjectReference\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]KeyToPath, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.DefaultMode != nil {\n\t\tin, out := &in.DefaultMode, &out.DefaultMode\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Optional != nil {\n\t\tin, out := &in.Optional, &out.Optional\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMapVolumeSource.\nfunc (in *ConfigMapVolumeSource) DeepCopy() *ConfigMapVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ConfigMapVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Container) DeepCopyInto(out *Container) {\n\t*out = *in\n\tif in.Command != nil {\n\t\tin, out := &in.Command, &out.Command\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Args != nil {\n\t\tin, out := &in.Args, &out.Args\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Ports != nil {\n\t\tin, out := &in.Ports, &out.Ports\n\t\t*out = make([]ContainerPort, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.EnvFrom != nil {\n\t\tin, out := &in.EnvFrom, &out.EnvFrom\n\t\t*out = make([]EnvFromSource, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Env != nil {\n\t\tin, out := &in.Env, &out.Env\n\t\t*out = make([]EnvVar, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tin.Resources.DeepCopyInto(&out.Resources)\n\tif in.ResizePolicy != nil {\n\t\tin, out := &in.ResizePolicy, &out.ResizePolicy\n\t\t*out = make([]ContainerResizePolicy, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.RestartPolicy != nil {\n\t\tin, out := &in.RestartPolicy, &out.RestartPolicy\n\t\t*out = new(ContainerRestartPolicy)\n\t\t**out = **in\n\t}\n\tif in.VolumeMounts != nil {\n\t\tin, out := &in.VolumeMounts, &out.VolumeMounts\n\t\t*out = make([]VolumeMount, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.VolumeDevices != nil {\n\t\tin, out := &in.VolumeDevices, &out.VolumeDevices\n\t\t*out = make([]VolumeDevice, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.LivenessProbe != nil {\n\t\tin, out := &in.LivenessProbe, &out.LivenessProbe\n\t\t*out = new(Probe)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ReadinessProbe != nil {\n\t\tin, out := &in.ReadinessProbe, &out.ReadinessProbe\n\t\t*out = new(Probe)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.StartupProbe != nil {\n\t\tin, out := &in.StartupProbe, &out.StartupProbe\n\t\t*out = new(Probe)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Lifecycle != nil {\n\t\tin, out := &in.Lifecycle, &out.Lifecycle\n\t\t*out = new(Lifecycle)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.SecurityContext != nil {\n\t\tin, out := &in.SecurityContext, &out.SecurityContext\n\t\t*out = new(SecurityContext)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Container.\nfunc (in *Container) DeepCopy() *Container {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Container)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ContainerImage) DeepCopyInto(out *ContainerImage) {\n\t*out = *in\n\tif in.Names != nil {\n\t\tin, out := &in.Names, &out.Names\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerImage.\nfunc (in *ContainerImage) DeepCopy() *ContainerImage {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ContainerImage)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ContainerPort) DeepCopyInto(out *ContainerPort) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerPort.\nfunc (in *ContainerPort) DeepCopy() *ContainerPort {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ContainerPort)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ContainerResizePolicy) DeepCopyInto(out *ContainerResizePolicy) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerResizePolicy.\nfunc (in *ContainerResizePolicy) DeepCopy() *ContainerResizePolicy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ContainerResizePolicy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ContainerState) DeepCopyInto(out *ContainerState) {\n\t*out = *in\n\tif in.Waiting != nil {\n\t\tin, out := &in.Waiting, &out.Waiting\n\t\t*out = new(ContainerStateWaiting)\n\t\t**out = **in\n\t}\n\tif in.Running != nil {\n\t\tin, out := &in.Running, &out.Running\n\t\t*out = new(ContainerStateRunning)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Terminated != nil {\n\t\tin, out := &in.Terminated, &out.Terminated\n\t\t*out = new(ContainerStateTerminated)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerState.\nfunc (in *ContainerState) DeepCopy() *ContainerState {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ContainerState)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ContainerStateRunning) DeepCopyInto(out *ContainerStateRunning) {\n\t*out = *in\n\tin.StartedAt.DeepCopyInto(&out.StartedAt)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerStateRunning.\nfunc (in *ContainerStateRunning) DeepCopy() *ContainerStateRunning {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ContainerStateRunning)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ContainerStateTerminated) DeepCopyInto(out *ContainerStateTerminated) {\n\t*out = *in\n\tin.StartedAt.DeepCopyInto(&out.StartedAt)\n\tin.FinishedAt.DeepCopyInto(&out.FinishedAt)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerStateTerminated.\nfunc (in *ContainerStateTerminated) DeepCopy() *ContainerStateTerminated {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ContainerStateTerminated)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ContainerStateWaiting) DeepCopyInto(out *ContainerStateWaiting) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerStateWaiting.\nfunc (in *ContainerStateWaiting) DeepCopy() *ContainerStateWaiting {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ContainerStateWaiting)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ContainerStatus) DeepCopyInto(out *ContainerStatus) {\n\t*out = *in\n\tin.State.DeepCopyInto(&out.State)\n\tin.LastTerminationState.DeepCopyInto(&out.LastTerminationState)\n\tif in.Started != nil {\n\t\tin, out := &in.Started, &out.Started\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.AllocatedResources != nil {\n\t\tin, out := &in.AllocatedResources, &out.AllocatedResources\n\t\t*out = make(ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\tif in.Resources != nil {\n\t\tin, out := &in.Resources, &out.Resources\n\t\t*out = new(ResourceRequirements)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.VolumeMounts != nil {\n\t\tin, out := &in.VolumeMounts, &out.VolumeMounts\n\t\t*out = make([]VolumeMountStatus, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.User != nil {\n\t\tin, out := &in.User, &out.User\n\t\t*out = new(ContainerUser)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.AllocatedResourcesStatus != nil {\n\t\tin, out := &in.AllocatedResourcesStatus, &out.AllocatedResourcesStatus\n\t\t*out = make([]ResourceStatus, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerStatus.\nfunc (in *ContainerStatus) DeepCopy() *ContainerStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ContainerStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ContainerUser) DeepCopyInto(out *ContainerUser) {\n\t*out = *in\n\tif in.Linux != nil {\n\t\tin, out := &in.Linux, &out.Linux\n\t\t*out = new(LinuxContainerUser)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerUser.\nfunc (in *ContainerUser) DeepCopy() *ContainerUser {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ContainerUser)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DaemonEndpoint) DeepCopyInto(out *DaemonEndpoint) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonEndpoint.\nfunc (in *DaemonEndpoint) DeepCopy() *DaemonEndpoint {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DaemonEndpoint)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DownwardAPIProjection) DeepCopyInto(out *DownwardAPIProjection) {\n\t*out = *in\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]DownwardAPIVolumeFile, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DownwardAPIProjection.\nfunc (in *DownwardAPIProjection) DeepCopy() *DownwardAPIProjection {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DownwardAPIProjection)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DownwardAPIVolumeFile) DeepCopyInto(out *DownwardAPIVolumeFile) {\n\t*out = *in\n\tif in.FieldRef != nil {\n\t\tin, out := &in.FieldRef, &out.FieldRef\n\t\t*out = new(ObjectFieldSelector)\n\t\t**out = **in\n\t}\n\tif in.ResourceFieldRef != nil {\n\t\tin, out := &in.ResourceFieldRef, &out.ResourceFieldRef\n\t\t*out = new(ResourceFieldSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Mode != nil {\n\t\tin, out := &in.Mode, &out.Mode\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DownwardAPIVolumeFile.\nfunc (in *DownwardAPIVolumeFile) DeepCopy() *DownwardAPIVolumeFile {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DownwardAPIVolumeFile)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DownwardAPIVolumeSource) DeepCopyInto(out *DownwardAPIVolumeSource) {\n\t*out = *in\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]DownwardAPIVolumeFile, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.DefaultMode != nil {\n\t\tin, out := &in.DefaultMode, &out.DefaultMode\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DownwardAPIVolumeSource.\nfunc (in *DownwardAPIVolumeSource) DeepCopy() *DownwardAPIVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DownwardAPIVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EmptyDirVolumeSource) DeepCopyInto(out *EmptyDirVolumeSource) {\n\t*out = *in\n\tif in.SizeLimit != nil {\n\t\tin, out := &in.SizeLimit, &out.SizeLimit\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EmptyDirVolumeSource.\nfunc (in *EmptyDirVolumeSource) DeepCopy() *EmptyDirVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EmptyDirVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EndpointAddress) DeepCopyInto(out *EndpointAddress) {\n\t*out = *in\n\tif in.NodeName != nil {\n\t\tin, out := &in.NodeName, &out.NodeName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.TargetRef != nil {\n\t\tin, out := &in.TargetRef, &out.TargetRef\n\t\t*out = new(ObjectReference)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointAddress.\nfunc (in *EndpointAddress) DeepCopy() *EndpointAddress {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EndpointAddress)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EndpointPort) DeepCopyInto(out *EndpointPort) {\n\t*out = *in\n\tif in.AppProtocol != nil {\n\t\tin, out := &in.AppProtocol, &out.AppProtocol\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointPort.\nfunc (in *EndpointPort) DeepCopy() *EndpointPort {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EndpointPort)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EndpointSubset) DeepCopyInto(out *EndpointSubset) {\n\t*out = *in\n\tif in.Addresses != nil {\n\t\tin, out := &in.Addresses, &out.Addresses\n\t\t*out = make([]EndpointAddress, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.NotReadyAddresses != nil {\n\t\tin, out := &in.NotReadyAddresses, &out.NotReadyAddresses\n\t\t*out = make([]EndpointAddress, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Ports != nil {\n\t\tin, out := &in.Ports, &out.Ports\n\t\t*out = make([]EndpointPort, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointSubset.\nfunc (in *EndpointSubset) DeepCopy() *EndpointSubset {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EndpointSubset)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Endpoints) DeepCopyInto(out *Endpoints) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Subsets != nil {\n\t\tin, out := &in.Subsets, &out.Subsets\n\t\t*out = make([]EndpointSubset, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Endpoints.\nfunc (in *Endpoints) DeepCopy() *Endpoints {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Endpoints)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Endpoints) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EndpointsList) DeepCopyInto(out *EndpointsList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Endpoints, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointsList.\nfunc (in *EndpointsList) DeepCopy() *EndpointsList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EndpointsList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *EndpointsList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EnvFromSource) DeepCopyInto(out *EnvFromSource) {\n\t*out = *in\n\tif in.ConfigMapRef != nil {\n\t\tin, out := &in.ConfigMapRef, &out.ConfigMapRef\n\t\t*out = new(ConfigMapEnvSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.SecretRef != nil {\n\t\tin, out := &in.SecretRef, &out.SecretRef\n\t\t*out = new(SecretEnvSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvFromSource.\nfunc (in *EnvFromSource) DeepCopy() *EnvFromSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EnvFromSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EnvVar) DeepCopyInto(out *EnvVar) {\n\t*out = *in\n\tif in.ValueFrom != nil {\n\t\tin, out := &in.ValueFrom, &out.ValueFrom\n\t\t*out = new(EnvVarSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvVar.\nfunc (in *EnvVar) DeepCopy() *EnvVar {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EnvVar)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EnvVarSource) DeepCopyInto(out *EnvVarSource) {\n\t*out = *in\n\tif in.FieldRef != nil {\n\t\tin, out := &in.FieldRef, &out.FieldRef\n\t\t*out = new(ObjectFieldSelector)\n\t\t**out = **in\n\t}\n\tif in.ResourceFieldRef != nil {\n\t\tin, out := &in.ResourceFieldRef, &out.ResourceFieldRef\n\t\t*out = new(ResourceFieldSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ConfigMapKeyRef != nil {\n\t\tin, out := &in.ConfigMapKeyRef, &out.ConfigMapKeyRef\n\t\t*out = new(ConfigMapKeySelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.SecretKeyRef != nil {\n\t\tin, out := &in.SecretKeyRef, &out.SecretKeyRef\n\t\t*out = new(SecretKeySelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvVarSource.\nfunc (in *EnvVarSource) DeepCopy() *EnvVarSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EnvVarSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EphemeralContainer) DeepCopyInto(out *EphemeralContainer) {\n\t*out = *in\n\tin.EphemeralContainerCommon.DeepCopyInto(&out.EphemeralContainerCommon)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EphemeralContainer.\nfunc (in *EphemeralContainer) DeepCopy() *EphemeralContainer {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EphemeralContainer)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EphemeralContainerCommon) DeepCopyInto(out *EphemeralContainerCommon) {\n\t*out = *in\n\tif in.Command != nil {\n\t\tin, out := &in.Command, &out.Command\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Args != nil {\n\t\tin, out := &in.Args, &out.Args\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Ports != nil {\n\t\tin, out := &in.Ports, &out.Ports\n\t\t*out = make([]ContainerPort, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.EnvFrom != nil {\n\t\tin, out := &in.EnvFrom, &out.EnvFrom\n\t\t*out = make([]EnvFromSource, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Env != nil {\n\t\tin, out := &in.Env, &out.Env\n\t\t*out = make([]EnvVar, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tin.Resources.DeepCopyInto(&out.Resources)\n\tif in.ResizePolicy != nil {\n\t\tin, out := &in.ResizePolicy, &out.ResizePolicy\n\t\t*out = make([]ContainerResizePolicy, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.RestartPolicy != nil {\n\t\tin, out := &in.RestartPolicy, &out.RestartPolicy\n\t\t*out = new(ContainerRestartPolicy)\n\t\t**out = **in\n\t}\n\tif in.VolumeMounts != nil {\n\t\tin, out := &in.VolumeMounts, &out.VolumeMounts\n\t\t*out = make([]VolumeMount, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.VolumeDevices != nil {\n\t\tin, out := &in.VolumeDevices, &out.VolumeDevices\n\t\t*out = make([]VolumeDevice, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.LivenessProbe != nil {\n\t\tin, out := &in.LivenessProbe, &out.LivenessProbe\n\t\t*out = new(Probe)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ReadinessProbe != nil {\n\t\tin, out := &in.ReadinessProbe, &out.ReadinessProbe\n\t\t*out = new(Probe)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.StartupProbe != nil {\n\t\tin, out := &in.StartupProbe, &out.StartupProbe\n\t\t*out = new(Probe)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Lifecycle != nil {\n\t\tin, out := &in.Lifecycle, &out.Lifecycle\n\t\t*out = new(Lifecycle)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.SecurityContext != nil {\n\t\tin, out := &in.SecurityContext, &out.SecurityContext\n\t\t*out = new(SecurityContext)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EphemeralContainerCommon.\nfunc (in *EphemeralContainerCommon) DeepCopy() *EphemeralContainerCommon {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EphemeralContainerCommon)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EphemeralVolumeSource) DeepCopyInto(out *EphemeralVolumeSource) {\n\t*out = *in\n\tif in.VolumeClaimTemplate != nil {\n\t\tin, out := &in.VolumeClaimTemplate, &out.VolumeClaimTemplate\n\t\t*out = new(PersistentVolumeClaimTemplate)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EphemeralVolumeSource.\nfunc (in *EphemeralVolumeSource) DeepCopy() *EphemeralVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EphemeralVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Event) DeepCopyInto(out *Event) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tout.InvolvedObject = in.InvolvedObject\n\tout.Source = in.Source\n\tin.FirstTimestamp.DeepCopyInto(&out.FirstTimestamp)\n\tin.LastTimestamp.DeepCopyInto(&out.LastTimestamp)\n\tin.EventTime.DeepCopyInto(&out.EventTime)\n\tif in.Series != nil {\n\t\tin, out := &in.Series, &out.Series\n\t\t*out = new(EventSeries)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Related != nil {\n\t\tin, out := &in.Related, &out.Related\n\t\t*out = new(ObjectReference)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Event.\nfunc (in *Event) DeepCopy() *Event {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Event)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Event) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EventList) DeepCopyInto(out *EventList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Event, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EventList.\nfunc (in *EventList) DeepCopy() *EventList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EventList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *EventList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EventSeries) DeepCopyInto(out *EventSeries) {\n\t*out = *in\n\tin.LastObservedTime.DeepCopyInto(&out.LastObservedTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EventSeries.\nfunc (in *EventSeries) DeepCopy() *EventSeries {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EventSeries)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EventSource) DeepCopyInto(out *EventSource) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EventSource.\nfunc (in *EventSource) DeepCopy() *EventSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EventSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExecAction) DeepCopyInto(out *ExecAction) {\n\t*out = *in\n\tif in.Command != nil {\n\t\tin, out := &in.Command, &out.Command\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecAction.\nfunc (in *ExecAction) DeepCopy() *ExecAction {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExecAction)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FCVolumeSource) DeepCopyInto(out *FCVolumeSource) {\n\t*out = *in\n\tif in.TargetWWNs != nil {\n\t\tin, out := &in.TargetWWNs, &out.TargetWWNs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Lun != nil {\n\t\tin, out := &in.Lun, &out.Lun\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.WWIDs != nil {\n\t\tin, out := &in.WWIDs, &out.WWIDs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FCVolumeSource.\nfunc (in *FCVolumeSource) DeepCopy() *FCVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FCVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlexPersistentVolumeSource) DeepCopyInto(out *FlexPersistentVolumeSource) {\n\t*out = *in\n\tif in.SecretRef != nil {\n\t\tin, out := &in.SecretRef, &out.SecretRef\n\t\t*out = new(SecretReference)\n\t\t**out = **in\n\t}\n\tif in.Options != nil {\n\t\tin, out := &in.Options, &out.Options\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlexPersistentVolumeSource.\nfunc (in *FlexPersistentVolumeSource) DeepCopy() *FlexPersistentVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlexPersistentVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlexVolumeSource) DeepCopyInto(out *FlexVolumeSource) {\n\t*out = *in\n\tif in.SecretRef != nil {\n\t\tin, out := &in.SecretRef, &out.SecretRef\n\t\t*out = new(LocalObjectReference)\n\t\t**out = **in\n\t}\n\tif in.Options != nil {\n\t\tin, out := &in.Options, &out.Options\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlexVolumeSource.\nfunc (in *FlexVolumeSource) DeepCopy() *FlexVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlexVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlockerVolumeSource) DeepCopyInto(out *FlockerVolumeSource) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlockerVolumeSource.\nfunc (in *FlockerVolumeSource) DeepCopy() *FlockerVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlockerVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *GCEPersistentDiskVolumeSource) DeepCopyInto(out *GCEPersistentDiskVolumeSource) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GCEPersistentDiskVolumeSource.\nfunc (in *GCEPersistentDiskVolumeSource) DeepCopy() *GCEPersistentDiskVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(GCEPersistentDiskVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *GRPCAction) DeepCopyInto(out *GRPCAction) {\n\t*out = *in\n\tif in.Service != nil {\n\t\tin, out := &in.Service, &out.Service\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GRPCAction.\nfunc (in *GRPCAction) DeepCopy() *GRPCAction {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(GRPCAction)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *GitRepoVolumeSource) DeepCopyInto(out *GitRepoVolumeSource) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitRepoVolumeSource.\nfunc (in *GitRepoVolumeSource) DeepCopy() *GitRepoVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(GitRepoVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *GlusterfsPersistentVolumeSource) DeepCopyInto(out *GlusterfsPersistentVolumeSource) {\n\t*out = *in\n\tif in.EndpointsNamespace != nil {\n\t\tin, out := &in.EndpointsNamespace, &out.EndpointsNamespace\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GlusterfsPersistentVolumeSource.\nfunc (in *GlusterfsPersistentVolumeSource) DeepCopy() *GlusterfsPersistentVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(GlusterfsPersistentVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *GlusterfsVolumeSource) DeepCopyInto(out *GlusterfsVolumeSource) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GlusterfsVolumeSource.\nfunc (in *GlusterfsVolumeSource) DeepCopy() *GlusterfsVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(GlusterfsVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HTTPGetAction) DeepCopyInto(out *HTTPGetAction) {\n\t*out = *in\n\tout.Port = in.Port\n\tif in.HTTPHeaders != nil {\n\t\tin, out := &in.HTTPHeaders, &out.HTTPHeaders\n\t\t*out = make([]HTTPHeader, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPGetAction.\nfunc (in *HTTPGetAction) DeepCopy() *HTTPGetAction {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HTTPGetAction)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HTTPHeader) DeepCopyInto(out *HTTPHeader) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPHeader.\nfunc (in *HTTPHeader) DeepCopy() *HTTPHeader {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HTTPHeader)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HostAlias) DeepCopyInto(out *HostAlias) {\n\t*out = *in\n\tif in.Hostnames != nil {\n\t\tin, out := &in.Hostnames, &out.Hostnames\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostAlias.\nfunc (in *HostAlias) DeepCopy() *HostAlias {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HostAlias)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HostIP) DeepCopyInto(out *HostIP) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostIP.\nfunc (in *HostIP) DeepCopy() *HostIP {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HostIP)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HostPathVolumeSource) DeepCopyInto(out *HostPathVolumeSource) {\n\t*out = *in\n\tif in.Type != nil {\n\t\tin, out := &in.Type, &out.Type\n\t\t*out = new(HostPathType)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostPathVolumeSource.\nfunc (in *HostPathVolumeSource) DeepCopy() *HostPathVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HostPathVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ISCSIPersistentVolumeSource) DeepCopyInto(out *ISCSIPersistentVolumeSource) {\n\t*out = *in\n\tif in.Portals != nil {\n\t\tin, out := &in.Portals, &out.Portals\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.SecretRef != nil {\n\t\tin, out := &in.SecretRef, &out.SecretRef\n\t\t*out = new(SecretReference)\n\t\t**out = **in\n\t}\n\tif in.InitiatorName != nil {\n\t\tin, out := &in.InitiatorName, &out.InitiatorName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ISCSIPersistentVolumeSource.\nfunc (in *ISCSIPersistentVolumeSource) DeepCopy() *ISCSIPersistentVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ISCSIPersistentVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ISCSIVolumeSource) DeepCopyInto(out *ISCSIVolumeSource) {\n\t*out = *in\n\tif in.Portals != nil {\n\t\tin, out := &in.Portals, &out.Portals\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.SecretRef != nil {\n\t\tin, out := &in.SecretRef, &out.SecretRef\n\t\t*out = new(LocalObjectReference)\n\t\t**out = **in\n\t}\n\tif in.InitiatorName != nil {\n\t\tin, out := &in.InitiatorName, &out.InitiatorName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ISCSIVolumeSource.\nfunc (in *ISCSIVolumeSource) DeepCopy() *ISCSIVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ISCSIVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ImageVolumeSource) DeepCopyInto(out *ImageVolumeSource) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageVolumeSource.\nfunc (in *ImageVolumeSource) DeepCopy() *ImageVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ImageVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *KeyToPath) DeepCopyInto(out *KeyToPath) {\n\t*out = *in\n\tif in.Mode != nil {\n\t\tin, out := &in.Mode, &out.Mode\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeyToPath.\nfunc (in *KeyToPath) DeepCopy() *KeyToPath {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(KeyToPath)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Lifecycle) DeepCopyInto(out *Lifecycle) {\n\t*out = *in\n\tif in.PostStart != nil {\n\t\tin, out := &in.PostStart, &out.PostStart\n\t\t*out = new(LifecycleHandler)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.PreStop != nil {\n\t\tin, out := &in.PreStop, &out.PreStop\n\t\t*out = new(LifecycleHandler)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Lifecycle.\nfunc (in *Lifecycle) DeepCopy() *Lifecycle {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Lifecycle)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LifecycleHandler) DeepCopyInto(out *LifecycleHandler) {\n\t*out = *in\n\tif in.Exec != nil {\n\t\tin, out := &in.Exec, &out.Exec\n\t\t*out = new(ExecAction)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.HTTPGet != nil {\n\t\tin, out := &in.HTTPGet, &out.HTTPGet\n\t\t*out = new(HTTPGetAction)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.TCPSocket != nil {\n\t\tin, out := &in.TCPSocket, &out.TCPSocket\n\t\t*out = new(TCPSocketAction)\n\t\t**out = **in\n\t}\n\tif in.Sleep != nil {\n\t\tin, out := &in.Sleep, &out.Sleep\n\t\t*out = new(SleepAction)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LifecycleHandler.\nfunc (in *LifecycleHandler) DeepCopy() *LifecycleHandler {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LifecycleHandler)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LimitRange) DeepCopyInto(out *LimitRange) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LimitRange.\nfunc (in *LimitRange) DeepCopy() *LimitRange {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LimitRange)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *LimitRange) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LimitRangeItem) DeepCopyInto(out *LimitRangeItem) {\n\t*out = *in\n\tif in.Max != nil {\n\t\tin, out := &in.Max, &out.Max\n\t\t*out = make(ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\tif in.Min != nil {\n\t\tin, out := &in.Min, &out.Min\n\t\t*out = make(ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\tif in.Default != nil {\n\t\tin, out := &in.Default, &out.Default\n\t\t*out = make(ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\tif in.DefaultRequest != nil {\n\t\tin, out := &in.DefaultRequest, &out.DefaultRequest\n\t\t*out = make(ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\tif in.MaxLimitRequestRatio != nil {\n\t\tin, out := &in.MaxLimitRequestRatio, &out.MaxLimitRequestRatio\n\t\t*out = make(ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LimitRangeItem.\nfunc (in *LimitRangeItem) DeepCopy() *LimitRangeItem {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LimitRangeItem)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LimitRangeList) DeepCopyInto(out *LimitRangeList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]LimitRange, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LimitRangeList.\nfunc (in *LimitRangeList) DeepCopy() *LimitRangeList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LimitRangeList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *LimitRangeList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LimitRangeSpec) DeepCopyInto(out *LimitRangeSpec) {\n\t*out = *in\n\tif in.Limits != nil {\n\t\tin, out := &in.Limits, &out.Limits\n\t\t*out = make([]LimitRangeItem, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LimitRangeSpec.\nfunc (in *LimitRangeSpec) DeepCopy() *LimitRangeSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LimitRangeSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LinuxContainerUser) DeepCopyInto(out *LinuxContainerUser) {\n\t*out = *in\n\tif in.SupplementalGroups != nil {\n\t\tin, out := &in.SupplementalGroups, &out.SupplementalGroups\n\t\t*out = make([]int64, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LinuxContainerUser.\nfunc (in *LinuxContainerUser) DeepCopy() *LinuxContainerUser {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LinuxContainerUser)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *List) DeepCopyInto(out *List) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]runtime.RawExtension, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new List.\nfunc (in *List) DeepCopy() *List {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(List)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *List) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LoadBalancerIngress) DeepCopyInto(out *LoadBalancerIngress) {\n\t*out = *in\n\tif in.IPMode != nil {\n\t\tin, out := &in.IPMode, &out.IPMode\n\t\t*out = new(LoadBalancerIPMode)\n\t\t**out = **in\n\t}\n\tif in.Ports != nil {\n\t\tin, out := &in.Ports, &out.Ports\n\t\t*out = make([]PortStatus, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancerIngress.\nfunc (in *LoadBalancerIngress) DeepCopy() *LoadBalancerIngress {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LoadBalancerIngress)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LoadBalancerStatus) DeepCopyInto(out *LoadBalancerStatus) {\n\t*out = *in\n\tif in.Ingress != nil {\n\t\tin, out := &in.Ingress, &out.Ingress\n\t\t*out = make([]LoadBalancerIngress, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancerStatus.\nfunc (in *LoadBalancerStatus) DeepCopy() *LoadBalancerStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LoadBalancerStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LocalObjectReference) DeepCopyInto(out *LocalObjectReference) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LocalObjectReference.\nfunc (in *LocalObjectReference) DeepCopy() *LocalObjectReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LocalObjectReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LocalVolumeSource) DeepCopyInto(out *LocalVolumeSource) {\n\t*out = *in\n\tif in.FSType != nil {\n\t\tin, out := &in.FSType, &out.FSType\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LocalVolumeSource.\nfunc (in *LocalVolumeSource) DeepCopy() *LocalVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LocalVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ModifyVolumeStatus) DeepCopyInto(out *ModifyVolumeStatus) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ModifyVolumeStatus.\nfunc (in *ModifyVolumeStatus) DeepCopy() *ModifyVolumeStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ModifyVolumeStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NFSVolumeSource) DeepCopyInto(out *NFSVolumeSource) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NFSVolumeSource.\nfunc (in *NFSVolumeSource) DeepCopy() *NFSVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NFSVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Namespace) DeepCopyInto(out *Namespace) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Namespace.\nfunc (in *Namespace) DeepCopy() *Namespace {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Namespace)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Namespace) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NamespaceCondition) DeepCopyInto(out *NamespaceCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespaceCondition.\nfunc (in *NamespaceCondition) DeepCopy() *NamespaceCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NamespaceCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NamespaceList) DeepCopyInto(out *NamespaceList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Namespace, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespaceList.\nfunc (in *NamespaceList) DeepCopy() *NamespaceList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NamespaceList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *NamespaceList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NamespaceSpec) DeepCopyInto(out *NamespaceSpec) {\n\t*out = *in\n\tif in.Finalizers != nil {\n\t\tin, out := &in.Finalizers, &out.Finalizers\n\t\t*out = make([]FinalizerName, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespaceSpec.\nfunc (in *NamespaceSpec) DeepCopy() *NamespaceSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NamespaceSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NamespaceStatus) DeepCopyInto(out *NamespaceStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]NamespaceCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamespaceStatus.\nfunc (in *NamespaceStatus) DeepCopy() *NamespaceStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NamespaceStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Node) DeepCopyInto(out *Node) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Node.\nfunc (in *Node) DeepCopy() *Node {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Node)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Node) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NodeAddress) DeepCopyInto(out *NodeAddress) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeAddress.\nfunc (in *NodeAddress) DeepCopy() *NodeAddress {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NodeAddress)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NodeAffinity) DeepCopyInto(out *NodeAffinity) {\n\t*out = *in\n\tif in.RequiredDuringSchedulingIgnoredDuringExecution != nil {\n\t\tin, out := &in.RequiredDuringSchedulingIgnoredDuringExecution, &out.RequiredDuringSchedulingIgnoredDuringExecution\n\t\t*out = new(NodeSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.PreferredDuringSchedulingIgnoredDuringExecution != nil {\n\t\tin, out := &in.PreferredDuringSchedulingIgnoredDuringExecution, &out.PreferredDuringSchedulingIgnoredDuringExecution\n\t\t*out = make([]PreferredSchedulingTerm, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeAffinity.\nfunc (in *NodeAffinity) DeepCopy() *NodeAffinity {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NodeAffinity)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NodeCondition) DeepCopyInto(out *NodeCondition) {\n\t*out = *in\n\tin.LastHeartbeatTime.DeepCopyInto(&out.LastHeartbeatTime)\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeCondition.\nfunc (in *NodeCondition) DeepCopy() *NodeCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NodeCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NodeConfigSource) DeepCopyInto(out *NodeConfigSource) {\n\t*out = *in\n\tif in.ConfigMap != nil {\n\t\tin, out := &in.ConfigMap, &out.ConfigMap\n\t\t*out = new(ConfigMapNodeConfigSource)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeConfigSource.\nfunc (in *NodeConfigSource) DeepCopy() *NodeConfigSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NodeConfigSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NodeConfigStatus) DeepCopyInto(out *NodeConfigStatus) {\n\t*out = *in\n\tif in.Assigned != nil {\n\t\tin, out := &in.Assigned, &out.Assigned\n\t\t*out = new(NodeConfigSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Active != nil {\n\t\tin, out := &in.Active, &out.Active\n\t\t*out = new(NodeConfigSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.LastKnownGood != nil {\n\t\tin, out := &in.LastKnownGood, &out.LastKnownGood\n\t\t*out = new(NodeConfigSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeConfigStatus.\nfunc (in *NodeConfigStatus) DeepCopy() *NodeConfigStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NodeConfigStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NodeDaemonEndpoints) DeepCopyInto(out *NodeDaemonEndpoints) {\n\t*out = *in\n\tout.KubeletEndpoint = in.KubeletEndpoint\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeDaemonEndpoints.\nfunc (in *NodeDaemonEndpoints) DeepCopy() *NodeDaemonEndpoints {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NodeDaemonEndpoints)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NodeFeatures) DeepCopyInto(out *NodeFeatures) {\n\t*out = *in\n\tif in.SupplementalGroupsPolicy != nil {\n\t\tin, out := &in.SupplementalGroupsPolicy, &out.SupplementalGroupsPolicy\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeFeatures.\nfunc (in *NodeFeatures) DeepCopy() *NodeFeatures {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NodeFeatures)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NodeList) DeepCopyInto(out *NodeList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Node, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeList.\nfunc (in *NodeList) DeepCopy() *NodeList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NodeList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *NodeList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NodeProxyOptions) DeepCopyInto(out *NodeProxyOptions) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeProxyOptions.\nfunc (in *NodeProxyOptions) DeepCopy() *NodeProxyOptions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NodeProxyOptions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *NodeProxyOptions) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NodeRuntimeHandler) DeepCopyInto(out *NodeRuntimeHandler) {\n\t*out = *in\n\tif in.Features != nil {\n\t\tin, out := &in.Features, &out.Features\n\t\t*out = new(NodeRuntimeHandlerFeatures)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeRuntimeHandler.\nfunc (in *NodeRuntimeHandler) DeepCopy() *NodeRuntimeHandler {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NodeRuntimeHandler)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NodeRuntimeHandlerFeatures) DeepCopyInto(out *NodeRuntimeHandlerFeatures) {\n\t*out = *in\n\tif in.RecursiveReadOnlyMounts != nil {\n\t\tin, out := &in.RecursiveReadOnlyMounts, &out.RecursiveReadOnlyMounts\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.UserNamespaces != nil {\n\t\tin, out := &in.UserNamespaces, &out.UserNamespaces\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeRuntimeHandlerFeatures.\nfunc (in *NodeRuntimeHandlerFeatures) DeepCopy() *NodeRuntimeHandlerFeatures {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NodeRuntimeHandlerFeatures)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NodeSelector) DeepCopyInto(out *NodeSelector) {\n\t*out = *in\n\tif in.NodeSelectorTerms != nil {\n\t\tin, out := &in.NodeSelectorTerms, &out.NodeSelectorTerms\n\t\t*out = make([]NodeSelectorTerm, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeSelector.\nfunc (in *NodeSelector) DeepCopy() *NodeSelector {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NodeSelector)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NodeSelectorRequirement) DeepCopyInto(out *NodeSelectorRequirement) {\n\t*out = *in\n\tif in.Values != nil {\n\t\tin, out := &in.Values, &out.Values\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeSelectorRequirement.\nfunc (in *NodeSelectorRequirement) DeepCopy() *NodeSelectorRequirement {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NodeSelectorRequirement)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NodeSelectorTerm) DeepCopyInto(out *NodeSelectorTerm) {\n\t*out = *in\n\tif in.MatchExpressions != nil {\n\t\tin, out := &in.MatchExpressions, &out.MatchExpressions\n\t\t*out = make([]NodeSelectorRequirement, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.MatchFields != nil {\n\t\tin, out := &in.MatchFields, &out.MatchFields\n\t\t*out = make([]NodeSelectorRequirement, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeSelectorTerm.\nfunc (in *NodeSelectorTerm) DeepCopy() *NodeSelectorTerm {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NodeSelectorTerm)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NodeSpec) DeepCopyInto(out *NodeSpec) {\n\t*out = *in\n\tif in.PodCIDRs != nil {\n\t\tin, out := &in.PodCIDRs, &out.PodCIDRs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Taints != nil {\n\t\tin, out := &in.Taints, &out.Taints\n\t\t*out = make([]Taint, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.ConfigSource != nil {\n\t\tin, out := &in.ConfigSource, &out.ConfigSource\n\t\t*out = new(NodeConfigSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeSpec.\nfunc (in *NodeSpec) DeepCopy() *NodeSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NodeSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NodeStatus) DeepCopyInto(out *NodeStatus) {\n\t*out = *in\n\tif in.Capacity != nil {\n\t\tin, out := &in.Capacity, &out.Capacity\n\t\t*out = make(ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\tif in.Allocatable != nil {\n\t\tin, out := &in.Allocatable, &out.Allocatable\n\t\t*out = make(ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]NodeCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Addresses != nil {\n\t\tin, out := &in.Addresses, &out.Addresses\n\t\t*out = make([]NodeAddress, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tout.DaemonEndpoints = in.DaemonEndpoints\n\tout.NodeInfo = in.NodeInfo\n\tif in.Images != nil {\n\t\tin, out := &in.Images, &out.Images\n\t\t*out = make([]ContainerImage, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.VolumesInUse != nil {\n\t\tin, out := &in.VolumesInUse, &out.VolumesInUse\n\t\t*out = make([]UniqueVolumeName, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.VolumesAttached != nil {\n\t\tin, out := &in.VolumesAttached, &out.VolumesAttached\n\t\t*out = make([]AttachedVolume, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Config != nil {\n\t\tin, out := &in.Config, &out.Config\n\t\t*out = new(NodeConfigStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.RuntimeHandlers != nil {\n\t\tin, out := &in.RuntimeHandlers, &out.RuntimeHandlers\n\t\t*out = make([]NodeRuntimeHandler, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Features != nil {\n\t\tin, out := &in.Features, &out.Features\n\t\t*out = new(NodeFeatures)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeStatus.\nfunc (in *NodeStatus) DeepCopy() *NodeStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NodeStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NodeSystemInfo) DeepCopyInto(out *NodeSystemInfo) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeSystemInfo.\nfunc (in *NodeSystemInfo) DeepCopy() *NodeSystemInfo {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NodeSystemInfo)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ObjectFieldSelector) DeepCopyInto(out *ObjectFieldSelector) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectFieldSelector.\nfunc (in *ObjectFieldSelector) DeepCopy() *ObjectFieldSelector {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ObjectFieldSelector)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ObjectReference) DeepCopyInto(out *ObjectReference) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectReference.\nfunc (in *ObjectReference) DeepCopy() *ObjectReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ObjectReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ObjectReference) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PersistentVolume) DeepCopyInto(out *PersistentVolume) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolume.\nfunc (in *PersistentVolume) DeepCopy() *PersistentVolume {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PersistentVolume)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PersistentVolume) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PersistentVolumeClaim) DeepCopyInto(out *PersistentVolumeClaim) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeClaim.\nfunc (in *PersistentVolumeClaim) DeepCopy() *PersistentVolumeClaim {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PersistentVolumeClaim)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PersistentVolumeClaim) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PersistentVolumeClaimCondition) DeepCopyInto(out *PersistentVolumeClaimCondition) {\n\t*out = *in\n\tin.LastProbeTime.DeepCopyInto(&out.LastProbeTime)\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeClaimCondition.\nfunc (in *PersistentVolumeClaimCondition) DeepCopy() *PersistentVolumeClaimCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PersistentVolumeClaimCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PersistentVolumeClaimList) DeepCopyInto(out *PersistentVolumeClaimList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]PersistentVolumeClaim, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeClaimList.\nfunc (in *PersistentVolumeClaimList) DeepCopy() *PersistentVolumeClaimList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PersistentVolumeClaimList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PersistentVolumeClaimList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PersistentVolumeClaimSpec) DeepCopyInto(out *PersistentVolumeClaimSpec) {\n\t*out = *in\n\tif in.AccessModes != nil {\n\t\tin, out := &in.AccessModes, &out.AccessModes\n\t\t*out = make([]PersistentVolumeAccessMode, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tin.Resources.DeepCopyInto(&out.Resources)\n\tif in.StorageClassName != nil {\n\t\tin, out := &in.StorageClassName, &out.StorageClassName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.VolumeMode != nil {\n\t\tin, out := &in.VolumeMode, &out.VolumeMode\n\t\t*out = new(PersistentVolumeMode)\n\t\t**out = **in\n\t}\n\tif in.DataSource != nil {\n\t\tin, out := &in.DataSource, &out.DataSource\n\t\t*out = new(TypedLocalObjectReference)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.DataSourceRef != nil {\n\t\tin, out := &in.DataSourceRef, &out.DataSourceRef\n\t\t*out = new(TypedObjectReference)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.VolumeAttributesClassName != nil {\n\t\tin, out := &in.VolumeAttributesClassName, &out.VolumeAttributesClassName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeClaimSpec.\nfunc (in *PersistentVolumeClaimSpec) DeepCopy() *PersistentVolumeClaimSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PersistentVolumeClaimSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PersistentVolumeClaimStatus) DeepCopyInto(out *PersistentVolumeClaimStatus) {\n\t*out = *in\n\tif in.AccessModes != nil {\n\t\tin, out := &in.AccessModes, &out.AccessModes\n\t\t*out = make([]PersistentVolumeAccessMode, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Capacity != nil {\n\t\tin, out := &in.Capacity, &out.Capacity\n\t\t*out = make(ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]PersistentVolumeClaimCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.AllocatedResources != nil {\n\t\tin, out := &in.AllocatedResources, &out.AllocatedResources\n\t\t*out = make(ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\tif in.AllocatedResourceStatuses != nil {\n\t\tin, out := &in.AllocatedResourceStatuses, &out.AllocatedResourceStatuses\n\t\t*out = make(map[ResourceName]ClaimResourceStatus, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.CurrentVolumeAttributesClassName != nil {\n\t\tin, out := &in.CurrentVolumeAttributesClassName, &out.CurrentVolumeAttributesClassName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.ModifyVolumeStatus != nil {\n\t\tin, out := &in.ModifyVolumeStatus, &out.ModifyVolumeStatus\n\t\t*out = new(ModifyVolumeStatus)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeClaimStatus.\nfunc (in *PersistentVolumeClaimStatus) DeepCopy() *PersistentVolumeClaimStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PersistentVolumeClaimStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PersistentVolumeClaimTemplate) DeepCopyInto(out *PersistentVolumeClaimTemplate) {\n\t*out = *in\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeClaimTemplate.\nfunc (in *PersistentVolumeClaimTemplate) DeepCopy() *PersistentVolumeClaimTemplate {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PersistentVolumeClaimTemplate)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PersistentVolumeClaimVolumeSource) DeepCopyInto(out *PersistentVolumeClaimVolumeSource) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeClaimVolumeSource.\nfunc (in *PersistentVolumeClaimVolumeSource) DeepCopy() *PersistentVolumeClaimVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PersistentVolumeClaimVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PersistentVolumeList) DeepCopyInto(out *PersistentVolumeList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]PersistentVolume, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeList.\nfunc (in *PersistentVolumeList) DeepCopy() *PersistentVolumeList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PersistentVolumeList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PersistentVolumeList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PersistentVolumeSource) DeepCopyInto(out *PersistentVolumeSource) {\n\t*out = *in\n\tif in.GCEPersistentDisk != nil {\n\t\tin, out := &in.GCEPersistentDisk, &out.GCEPersistentDisk\n\t\t*out = new(GCEPersistentDiskVolumeSource)\n\t\t**out = **in\n\t}\n\tif in.AWSElasticBlockStore != nil {\n\t\tin, out := &in.AWSElasticBlockStore, &out.AWSElasticBlockStore\n\t\t*out = new(AWSElasticBlockStoreVolumeSource)\n\t\t**out = **in\n\t}\n\tif in.HostPath != nil {\n\t\tin, out := &in.HostPath, &out.HostPath\n\t\t*out = new(HostPathVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Glusterfs != nil {\n\t\tin, out := &in.Glusterfs, &out.Glusterfs\n\t\t*out = new(GlusterfsPersistentVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.NFS != nil {\n\t\tin, out := &in.NFS, &out.NFS\n\t\t*out = new(NFSVolumeSource)\n\t\t**out = **in\n\t}\n\tif in.RBD != nil {\n\t\tin, out := &in.RBD, &out.RBD\n\t\t*out = new(RBDPersistentVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ISCSI != nil {\n\t\tin, out := &in.ISCSI, &out.ISCSI\n\t\t*out = new(ISCSIPersistentVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Cinder != nil {\n\t\tin, out := &in.Cinder, &out.Cinder\n\t\t*out = new(CinderPersistentVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.CephFS != nil {\n\t\tin, out := &in.CephFS, &out.CephFS\n\t\t*out = new(CephFSPersistentVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.FC != nil {\n\t\tin, out := &in.FC, &out.FC\n\t\t*out = new(FCVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Flocker != nil {\n\t\tin, out := &in.Flocker, &out.Flocker\n\t\t*out = new(FlockerVolumeSource)\n\t\t**out = **in\n\t}\n\tif in.FlexVolume != nil {\n\t\tin, out := &in.FlexVolume, &out.FlexVolume\n\t\t*out = new(FlexPersistentVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.AzureFile != nil {\n\t\tin, out := &in.AzureFile, &out.AzureFile\n\t\t*out = new(AzureFilePersistentVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.VsphereVolume != nil {\n\t\tin, out := &in.VsphereVolume, &out.VsphereVolume\n\t\t*out = new(VsphereVirtualDiskVolumeSource)\n\t\t**out = **in\n\t}\n\tif in.Quobyte != nil {\n\t\tin, out := &in.Quobyte, &out.Quobyte\n\t\t*out = new(QuobyteVolumeSource)\n\t\t**out = **in\n\t}\n\tif in.AzureDisk != nil {\n\t\tin, out := &in.AzureDisk, &out.AzureDisk\n\t\t*out = new(AzureDiskVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.PhotonPersistentDisk != nil {\n\t\tin, out := &in.PhotonPersistentDisk, &out.PhotonPersistentDisk\n\t\t*out = new(PhotonPersistentDiskVolumeSource)\n\t\t**out = **in\n\t}\n\tif in.PortworxVolume != nil {\n\t\tin, out := &in.PortworxVolume, &out.PortworxVolume\n\t\t*out = new(PortworxVolumeSource)\n\t\t**out = **in\n\t}\n\tif in.ScaleIO != nil {\n\t\tin, out := &in.ScaleIO, &out.ScaleIO\n\t\t*out = new(ScaleIOPersistentVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Local != nil {\n\t\tin, out := &in.Local, &out.Local\n\t\t*out = new(LocalVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.StorageOS != nil {\n\t\tin, out := &in.StorageOS, &out.StorageOS\n\t\t*out = new(StorageOSPersistentVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.CSI != nil {\n\t\tin, out := &in.CSI, &out.CSI\n\t\t*out = new(CSIPersistentVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeSource.\nfunc (in *PersistentVolumeSource) DeepCopy() *PersistentVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PersistentVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PersistentVolumeSpec) DeepCopyInto(out *PersistentVolumeSpec) {\n\t*out = *in\n\tif in.Capacity != nil {\n\t\tin, out := &in.Capacity, &out.Capacity\n\t\t*out = make(ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\tin.PersistentVolumeSource.DeepCopyInto(&out.PersistentVolumeSource)\n\tif in.AccessModes != nil {\n\t\tin, out := &in.AccessModes, &out.AccessModes\n\t\t*out = make([]PersistentVolumeAccessMode, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ClaimRef != nil {\n\t\tin, out := &in.ClaimRef, &out.ClaimRef\n\t\t*out = new(ObjectReference)\n\t\t**out = **in\n\t}\n\tif in.MountOptions != nil {\n\t\tin, out := &in.MountOptions, &out.MountOptions\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.VolumeMode != nil {\n\t\tin, out := &in.VolumeMode, &out.VolumeMode\n\t\t*out = new(PersistentVolumeMode)\n\t\t**out = **in\n\t}\n\tif in.NodeAffinity != nil {\n\t\tin, out := &in.NodeAffinity, &out.NodeAffinity\n\t\t*out = new(VolumeNodeAffinity)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.VolumeAttributesClassName != nil {\n\t\tin, out := &in.VolumeAttributesClassName, &out.VolumeAttributesClassName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeSpec.\nfunc (in *PersistentVolumeSpec) DeepCopy() *PersistentVolumeSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PersistentVolumeSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PersistentVolumeStatus) DeepCopyInto(out *PersistentVolumeStatus) {\n\t*out = *in\n\tif in.LastPhaseTransitionTime != nil {\n\t\tin, out := &in.LastPhaseTransitionTime, &out.LastPhaseTransitionTime\n\t\t*out = (*in).DeepCopy()\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersistentVolumeStatus.\nfunc (in *PersistentVolumeStatus) DeepCopy() *PersistentVolumeStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PersistentVolumeStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PhotonPersistentDiskVolumeSource) DeepCopyInto(out *PhotonPersistentDiskVolumeSource) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PhotonPersistentDiskVolumeSource.\nfunc (in *PhotonPersistentDiskVolumeSource) DeepCopy() *PhotonPersistentDiskVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PhotonPersistentDiskVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Pod) DeepCopyInto(out *Pod) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Pod.\nfunc (in *Pod) DeepCopy() *Pod {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Pod)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Pod) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodAffinity) DeepCopyInto(out *PodAffinity) {\n\t*out = *in\n\tif in.RequiredDuringSchedulingIgnoredDuringExecution != nil {\n\t\tin, out := &in.RequiredDuringSchedulingIgnoredDuringExecution, &out.RequiredDuringSchedulingIgnoredDuringExecution\n\t\t*out = make([]PodAffinityTerm, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.PreferredDuringSchedulingIgnoredDuringExecution != nil {\n\t\tin, out := &in.PreferredDuringSchedulingIgnoredDuringExecution, &out.PreferredDuringSchedulingIgnoredDuringExecution\n\t\t*out = make([]WeightedPodAffinityTerm, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodAffinity.\nfunc (in *PodAffinity) DeepCopy() *PodAffinity {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodAffinity)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodAffinityTerm) DeepCopyInto(out *PodAffinityTerm) {\n\t*out = *in\n\tif in.LabelSelector != nil {\n\t\tin, out := &in.LabelSelector, &out.LabelSelector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Namespaces != nil {\n\t\tin, out := &in.Namespaces, &out.Namespaces\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.NamespaceSelector != nil {\n\t\tin, out := &in.NamespaceSelector, &out.NamespaceSelector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.MatchLabelKeys != nil {\n\t\tin, out := &in.MatchLabelKeys, &out.MatchLabelKeys\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.MismatchLabelKeys != nil {\n\t\tin, out := &in.MismatchLabelKeys, &out.MismatchLabelKeys\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodAffinityTerm.\nfunc (in *PodAffinityTerm) DeepCopy() *PodAffinityTerm {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodAffinityTerm)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodAntiAffinity) DeepCopyInto(out *PodAntiAffinity) {\n\t*out = *in\n\tif in.RequiredDuringSchedulingIgnoredDuringExecution != nil {\n\t\tin, out := &in.RequiredDuringSchedulingIgnoredDuringExecution, &out.RequiredDuringSchedulingIgnoredDuringExecution\n\t\t*out = make([]PodAffinityTerm, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.PreferredDuringSchedulingIgnoredDuringExecution != nil {\n\t\tin, out := &in.PreferredDuringSchedulingIgnoredDuringExecution, &out.PreferredDuringSchedulingIgnoredDuringExecution\n\t\t*out = make([]WeightedPodAffinityTerm, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodAntiAffinity.\nfunc (in *PodAntiAffinity) DeepCopy() *PodAntiAffinity {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodAntiAffinity)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodAttachOptions) DeepCopyInto(out *PodAttachOptions) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodAttachOptions.\nfunc (in *PodAttachOptions) DeepCopy() *PodAttachOptions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodAttachOptions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PodAttachOptions) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodCondition) DeepCopyInto(out *PodCondition) {\n\t*out = *in\n\tin.LastProbeTime.DeepCopyInto(&out.LastProbeTime)\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodCondition.\nfunc (in *PodCondition) DeepCopy() *PodCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodDNSConfig) DeepCopyInto(out *PodDNSConfig) {\n\t*out = *in\n\tif in.Nameservers != nil {\n\t\tin, out := &in.Nameservers, &out.Nameservers\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Searches != nil {\n\t\tin, out := &in.Searches, &out.Searches\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Options != nil {\n\t\tin, out := &in.Options, &out.Options\n\t\t*out = make([]PodDNSConfigOption, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodDNSConfig.\nfunc (in *PodDNSConfig) DeepCopy() *PodDNSConfig {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodDNSConfig)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodDNSConfigOption) DeepCopyInto(out *PodDNSConfigOption) {\n\t*out = *in\n\tif in.Value != nil {\n\t\tin, out := &in.Value, &out.Value\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodDNSConfigOption.\nfunc (in *PodDNSConfigOption) DeepCopy() *PodDNSConfigOption {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodDNSConfigOption)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodExecOptions) DeepCopyInto(out *PodExecOptions) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tif in.Command != nil {\n\t\tin, out := &in.Command, &out.Command\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodExecOptions.\nfunc (in *PodExecOptions) DeepCopy() *PodExecOptions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodExecOptions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PodExecOptions) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodIP) DeepCopyInto(out *PodIP) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodIP.\nfunc (in *PodIP) DeepCopy() *PodIP {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodIP)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodList) DeepCopyInto(out *PodList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Pod, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodList.\nfunc (in *PodList) DeepCopy() *PodList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PodList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodLogOptions) DeepCopyInto(out *PodLogOptions) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tif in.SinceSeconds != nil {\n\t\tin, out := &in.SinceSeconds, &out.SinceSeconds\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.SinceTime != nil {\n\t\tin, out := &in.SinceTime, &out.SinceTime\n\t\t*out = (*in).DeepCopy()\n\t}\n\tif in.TailLines != nil {\n\t\tin, out := &in.TailLines, &out.TailLines\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.LimitBytes != nil {\n\t\tin, out := &in.LimitBytes, &out.LimitBytes\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.Stream != nil {\n\t\tin, out := &in.Stream, &out.Stream\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodLogOptions.\nfunc (in *PodLogOptions) DeepCopy() *PodLogOptions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodLogOptions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PodLogOptions) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodOS) DeepCopyInto(out *PodOS) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodOS.\nfunc (in *PodOS) DeepCopy() *PodOS {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodOS)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodPortForwardOptions) DeepCopyInto(out *PodPortForwardOptions) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tif in.Ports != nil {\n\t\tin, out := &in.Ports, &out.Ports\n\t\t*out = make([]int32, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodPortForwardOptions.\nfunc (in *PodPortForwardOptions) DeepCopy() *PodPortForwardOptions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodPortForwardOptions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PodPortForwardOptions) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodProxyOptions) DeepCopyInto(out *PodProxyOptions) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodProxyOptions.\nfunc (in *PodProxyOptions) DeepCopy() *PodProxyOptions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodProxyOptions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PodProxyOptions) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodReadinessGate) DeepCopyInto(out *PodReadinessGate) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodReadinessGate.\nfunc (in *PodReadinessGate) DeepCopy() *PodReadinessGate {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodReadinessGate)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodResourceClaim) DeepCopyInto(out *PodResourceClaim) {\n\t*out = *in\n\tif in.ResourceClaimName != nil {\n\t\tin, out := &in.ResourceClaimName, &out.ResourceClaimName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.ResourceClaimTemplateName != nil {\n\t\tin, out := &in.ResourceClaimTemplateName, &out.ResourceClaimTemplateName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodResourceClaim.\nfunc (in *PodResourceClaim) DeepCopy() *PodResourceClaim {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodResourceClaim)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodResourceClaimStatus) DeepCopyInto(out *PodResourceClaimStatus) {\n\t*out = *in\n\tif in.ResourceClaimName != nil {\n\t\tin, out := &in.ResourceClaimName, &out.ResourceClaimName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodResourceClaimStatus.\nfunc (in *PodResourceClaimStatus) DeepCopy() *PodResourceClaimStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodResourceClaimStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodSchedulingGate) DeepCopyInto(out *PodSchedulingGate) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSchedulingGate.\nfunc (in *PodSchedulingGate) DeepCopy() *PodSchedulingGate {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodSchedulingGate)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodSecurityContext) DeepCopyInto(out *PodSecurityContext) {\n\t*out = *in\n\tif in.SELinuxOptions != nil {\n\t\tin, out := &in.SELinuxOptions, &out.SELinuxOptions\n\t\t*out = new(SELinuxOptions)\n\t\t**out = **in\n\t}\n\tif in.WindowsOptions != nil {\n\t\tin, out := &in.WindowsOptions, &out.WindowsOptions\n\t\t*out = new(WindowsSecurityContextOptions)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.RunAsUser != nil {\n\t\tin, out := &in.RunAsUser, &out.RunAsUser\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.RunAsGroup != nil {\n\t\tin, out := &in.RunAsGroup, &out.RunAsGroup\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.RunAsNonRoot != nil {\n\t\tin, out := &in.RunAsNonRoot, &out.RunAsNonRoot\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.SupplementalGroups != nil {\n\t\tin, out := &in.SupplementalGroups, &out.SupplementalGroups\n\t\t*out = make([]int64, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.SupplementalGroupsPolicy != nil {\n\t\tin, out := &in.SupplementalGroupsPolicy, &out.SupplementalGroupsPolicy\n\t\t*out = new(SupplementalGroupsPolicy)\n\t\t**out = **in\n\t}\n\tif in.FSGroup != nil {\n\t\tin, out := &in.FSGroup, &out.FSGroup\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.Sysctls != nil {\n\t\tin, out := &in.Sysctls, &out.Sysctls\n\t\t*out = make([]Sysctl, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.FSGroupChangePolicy != nil {\n\t\tin, out := &in.FSGroupChangePolicy, &out.FSGroupChangePolicy\n\t\t*out = new(PodFSGroupChangePolicy)\n\t\t**out = **in\n\t}\n\tif in.SeccompProfile != nil {\n\t\tin, out := &in.SeccompProfile, &out.SeccompProfile\n\t\t*out = new(SeccompProfile)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.AppArmorProfile != nil {\n\t\tin, out := &in.AppArmorProfile, &out.AppArmorProfile\n\t\t*out = new(AppArmorProfile)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.SELinuxChangePolicy != nil {\n\t\tin, out := &in.SELinuxChangePolicy, &out.SELinuxChangePolicy\n\t\t*out = new(PodSELinuxChangePolicy)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSecurityContext.\nfunc (in *PodSecurityContext) DeepCopy() *PodSecurityContext {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodSecurityContext)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodSignature) DeepCopyInto(out *PodSignature) {\n\t*out = *in\n\tif in.PodController != nil {\n\t\tin, out := &in.PodController, &out.PodController\n\t\t*out = new(metav1.OwnerReference)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSignature.\nfunc (in *PodSignature) DeepCopy() *PodSignature {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodSignature)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodSpec) DeepCopyInto(out *PodSpec) {\n\t*out = *in\n\tif in.Volumes != nil {\n\t\tin, out := &in.Volumes, &out.Volumes\n\t\t*out = make([]Volume, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.InitContainers != nil {\n\t\tin, out := &in.InitContainers, &out.InitContainers\n\t\t*out = make([]Container, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Containers != nil {\n\t\tin, out := &in.Containers, &out.Containers\n\t\t*out = make([]Container, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.EphemeralContainers != nil {\n\t\tin, out := &in.EphemeralContainers, &out.EphemeralContainers\n\t\t*out = make([]EphemeralContainer, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.TerminationGracePeriodSeconds != nil {\n\t\tin, out := &in.TerminationGracePeriodSeconds, &out.TerminationGracePeriodSeconds\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.ActiveDeadlineSeconds != nil {\n\t\tin, out := &in.ActiveDeadlineSeconds, &out.ActiveDeadlineSeconds\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.NodeSelector != nil {\n\t\tin, out := &in.NodeSelector, &out.NodeSelector\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.AutomountServiceAccountToken != nil {\n\t\tin, out := &in.AutomountServiceAccountToken, &out.AutomountServiceAccountToken\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.ShareProcessNamespace != nil {\n\t\tin, out := &in.ShareProcessNamespace, &out.ShareProcessNamespace\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.SecurityContext != nil {\n\t\tin, out := &in.SecurityContext, &out.SecurityContext\n\t\t*out = new(PodSecurityContext)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ImagePullSecrets != nil {\n\t\tin, out := &in.ImagePullSecrets, &out.ImagePullSecrets\n\t\t*out = make([]LocalObjectReference, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Affinity != nil {\n\t\tin, out := &in.Affinity, &out.Affinity\n\t\t*out = new(Affinity)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Tolerations != nil {\n\t\tin, out := &in.Tolerations, &out.Tolerations\n\t\t*out = make([]Toleration, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.HostAliases != nil {\n\t\tin, out := &in.HostAliases, &out.HostAliases\n\t\t*out = make([]HostAlias, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Priority != nil {\n\t\tin, out := &in.Priority, &out.Priority\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.DNSConfig != nil {\n\t\tin, out := &in.DNSConfig, &out.DNSConfig\n\t\t*out = new(PodDNSConfig)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ReadinessGates != nil {\n\t\tin, out := &in.ReadinessGates, &out.ReadinessGates\n\t\t*out = make([]PodReadinessGate, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.RuntimeClassName != nil {\n\t\tin, out := &in.RuntimeClassName, &out.RuntimeClassName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.EnableServiceLinks != nil {\n\t\tin, out := &in.EnableServiceLinks, &out.EnableServiceLinks\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.PreemptionPolicy != nil {\n\t\tin, out := &in.PreemptionPolicy, &out.PreemptionPolicy\n\t\t*out = new(PreemptionPolicy)\n\t\t**out = **in\n\t}\n\tif in.Overhead != nil {\n\t\tin, out := &in.Overhead, &out.Overhead\n\t\t*out = make(ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\tif in.TopologySpreadConstraints != nil {\n\t\tin, out := &in.TopologySpreadConstraints, &out.TopologySpreadConstraints\n\t\t*out = make([]TopologySpreadConstraint, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.SetHostnameAsFQDN != nil {\n\t\tin, out := &in.SetHostnameAsFQDN, &out.SetHostnameAsFQDN\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.OS != nil {\n\t\tin, out := &in.OS, &out.OS\n\t\t*out = new(PodOS)\n\t\t**out = **in\n\t}\n\tif in.HostUsers != nil {\n\t\tin, out := &in.HostUsers, &out.HostUsers\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.SchedulingGates != nil {\n\t\tin, out := &in.SchedulingGates, &out.SchedulingGates\n\t\t*out = make([]PodSchedulingGate, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ResourceClaims != nil {\n\t\tin, out := &in.ResourceClaims, &out.ResourceClaims\n\t\t*out = make([]PodResourceClaim, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Resources != nil {\n\t\tin, out := &in.Resources, &out.Resources\n\t\t*out = new(ResourceRequirements)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodSpec.\nfunc (in *PodSpec) DeepCopy() *PodSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodStatus) DeepCopyInto(out *PodStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]PodCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.HostIPs != nil {\n\t\tin, out := &in.HostIPs, &out.HostIPs\n\t\t*out = make([]HostIP, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.PodIPs != nil {\n\t\tin, out := &in.PodIPs, &out.PodIPs\n\t\t*out = make([]PodIP, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.StartTime != nil {\n\t\tin, out := &in.StartTime, &out.StartTime\n\t\t*out = (*in).DeepCopy()\n\t}\n\tif in.InitContainerStatuses != nil {\n\t\tin, out := &in.InitContainerStatuses, &out.InitContainerStatuses\n\t\t*out = make([]ContainerStatus, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.ContainerStatuses != nil {\n\t\tin, out := &in.ContainerStatuses, &out.ContainerStatuses\n\t\t*out = make([]ContainerStatus, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.EphemeralContainerStatuses != nil {\n\t\tin, out := &in.EphemeralContainerStatuses, &out.EphemeralContainerStatuses\n\t\t*out = make([]ContainerStatus, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.ResourceClaimStatuses != nil {\n\t\tin, out := &in.ResourceClaimStatuses, &out.ResourceClaimStatuses\n\t\t*out = make([]PodResourceClaimStatus, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodStatus.\nfunc (in *PodStatus) DeepCopy() *PodStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodStatusResult) DeepCopyInto(out *PodStatusResult) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodStatusResult.\nfunc (in *PodStatusResult) DeepCopy() *PodStatusResult {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodStatusResult)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PodStatusResult) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodTemplate) DeepCopyInto(out *PodTemplate) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Template.DeepCopyInto(&out.Template)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodTemplate.\nfunc (in *PodTemplate) DeepCopy() *PodTemplate {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodTemplate)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PodTemplate) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodTemplateList) DeepCopyInto(out *PodTemplateList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]PodTemplate, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodTemplateList.\nfunc (in *PodTemplateList) DeepCopy() *PodTemplateList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodTemplateList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PodTemplateList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodTemplateSpec) DeepCopyInto(out *PodTemplateSpec) {\n\t*out = *in\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodTemplateSpec.\nfunc (in *PodTemplateSpec) DeepCopy() *PodTemplateSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodTemplateSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PortStatus) DeepCopyInto(out *PortStatus) {\n\t*out = *in\n\tif in.Error != nil {\n\t\tin, out := &in.Error, &out.Error\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortStatus.\nfunc (in *PortStatus) DeepCopy() *PortStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PortStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PortworxVolumeSource) DeepCopyInto(out *PortworxVolumeSource) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortworxVolumeSource.\nfunc (in *PortworxVolumeSource) DeepCopy() *PortworxVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PortworxVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Preconditions) DeepCopyInto(out *Preconditions) {\n\t*out = *in\n\tif in.UID != nil {\n\t\tin, out := &in.UID, &out.UID\n\t\t*out = new(types.UID)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Preconditions.\nfunc (in *Preconditions) DeepCopy() *Preconditions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Preconditions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PreferAvoidPodsEntry) DeepCopyInto(out *PreferAvoidPodsEntry) {\n\t*out = *in\n\tin.PodSignature.DeepCopyInto(&out.PodSignature)\n\tin.EvictionTime.DeepCopyInto(&out.EvictionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PreferAvoidPodsEntry.\nfunc (in *PreferAvoidPodsEntry) DeepCopy() *PreferAvoidPodsEntry {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PreferAvoidPodsEntry)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PreferredSchedulingTerm) DeepCopyInto(out *PreferredSchedulingTerm) {\n\t*out = *in\n\tin.Preference.DeepCopyInto(&out.Preference)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PreferredSchedulingTerm.\nfunc (in *PreferredSchedulingTerm) DeepCopy() *PreferredSchedulingTerm {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PreferredSchedulingTerm)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Probe) DeepCopyInto(out *Probe) {\n\t*out = *in\n\tin.ProbeHandler.DeepCopyInto(&out.ProbeHandler)\n\tif in.TerminationGracePeriodSeconds != nil {\n\t\tin, out := &in.TerminationGracePeriodSeconds, &out.TerminationGracePeriodSeconds\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Probe.\nfunc (in *Probe) DeepCopy() *Probe {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Probe)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ProbeHandler) DeepCopyInto(out *ProbeHandler) {\n\t*out = *in\n\tif in.Exec != nil {\n\t\tin, out := &in.Exec, &out.Exec\n\t\t*out = new(ExecAction)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.HTTPGet != nil {\n\t\tin, out := &in.HTTPGet, &out.HTTPGet\n\t\t*out = new(HTTPGetAction)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.TCPSocket != nil {\n\t\tin, out := &in.TCPSocket, &out.TCPSocket\n\t\t*out = new(TCPSocketAction)\n\t\t**out = **in\n\t}\n\tif in.GRPC != nil {\n\t\tin, out := &in.GRPC, &out.GRPC\n\t\t*out = new(GRPCAction)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProbeHandler.\nfunc (in *ProbeHandler) DeepCopy() *ProbeHandler {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ProbeHandler)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ProjectedVolumeSource) DeepCopyInto(out *ProjectedVolumeSource) {\n\t*out = *in\n\tif in.Sources != nil {\n\t\tin, out := &in.Sources, &out.Sources\n\t\t*out = make([]VolumeProjection, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.DefaultMode != nil {\n\t\tin, out := &in.DefaultMode, &out.DefaultMode\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectedVolumeSource.\nfunc (in *ProjectedVolumeSource) DeepCopy() *ProjectedVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ProjectedVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *QuobyteVolumeSource) DeepCopyInto(out *QuobyteVolumeSource) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new QuobyteVolumeSource.\nfunc (in *QuobyteVolumeSource) DeepCopy() *QuobyteVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(QuobyteVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RBDPersistentVolumeSource) DeepCopyInto(out *RBDPersistentVolumeSource) {\n\t*out = *in\n\tif in.CephMonitors != nil {\n\t\tin, out := &in.CephMonitors, &out.CephMonitors\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.SecretRef != nil {\n\t\tin, out := &in.SecretRef, &out.SecretRef\n\t\t*out = new(SecretReference)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RBDPersistentVolumeSource.\nfunc (in *RBDPersistentVolumeSource) DeepCopy() *RBDPersistentVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RBDPersistentVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RBDVolumeSource) DeepCopyInto(out *RBDVolumeSource) {\n\t*out = *in\n\tif in.CephMonitors != nil {\n\t\tin, out := &in.CephMonitors, &out.CephMonitors\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.SecretRef != nil {\n\t\tin, out := &in.SecretRef, &out.SecretRef\n\t\t*out = new(LocalObjectReference)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RBDVolumeSource.\nfunc (in *RBDVolumeSource) DeepCopy() *RBDVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RBDVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RangeAllocation) DeepCopyInto(out *RangeAllocation) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Data != nil {\n\t\tin, out := &in.Data, &out.Data\n\t\t*out = make([]byte, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RangeAllocation.\nfunc (in *RangeAllocation) DeepCopy() *RangeAllocation {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RangeAllocation)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *RangeAllocation) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ReplicationController) DeepCopyInto(out *ReplicationController) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationController.\nfunc (in *ReplicationController) DeepCopy() *ReplicationController {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ReplicationController)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ReplicationController) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ReplicationControllerCondition) DeepCopyInto(out *ReplicationControllerCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationControllerCondition.\nfunc (in *ReplicationControllerCondition) DeepCopy() *ReplicationControllerCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ReplicationControllerCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ReplicationControllerList) DeepCopyInto(out *ReplicationControllerList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ReplicationController, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationControllerList.\nfunc (in *ReplicationControllerList) DeepCopy() *ReplicationControllerList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ReplicationControllerList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ReplicationControllerList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ReplicationControllerSpec) DeepCopyInto(out *ReplicationControllerSpec) {\n\t*out = *in\n\tif in.Replicas != nil {\n\t\tin, out := &in.Replicas, &out.Replicas\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.Template != nil {\n\t\tin, out := &in.Template, &out.Template\n\t\t*out = new(PodTemplateSpec)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationControllerSpec.\nfunc (in *ReplicationControllerSpec) DeepCopy() *ReplicationControllerSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ReplicationControllerSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ReplicationControllerStatus) DeepCopyInto(out *ReplicationControllerStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]ReplicationControllerCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicationControllerStatus.\nfunc (in *ReplicationControllerStatus) DeepCopy() *ReplicationControllerStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ReplicationControllerStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceClaim) DeepCopyInto(out *ResourceClaim) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceClaim.\nfunc (in *ResourceClaim) DeepCopy() *ResourceClaim {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceClaim)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceFieldSelector) DeepCopyInto(out *ResourceFieldSelector) {\n\t*out = *in\n\tout.Divisor = in.Divisor.DeepCopy()\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceFieldSelector.\nfunc (in *ResourceFieldSelector) DeepCopy() *ResourceFieldSelector {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceFieldSelector)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceHealth) DeepCopyInto(out *ResourceHealth) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceHealth.\nfunc (in *ResourceHealth) DeepCopy() *ResourceHealth {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceHealth)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in ResourceList) DeepCopyInto(out *ResourceList) {\n\t{\n\t\tin := &in\n\t\t*out = make(ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t\treturn\n\t}\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceList.\nfunc (in ResourceList) DeepCopy() ResourceList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceList)\n\tin.DeepCopyInto(out)\n\treturn *out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceQuota) DeepCopyInto(out *ResourceQuota) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceQuota.\nfunc (in *ResourceQuota) DeepCopy() *ResourceQuota {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceQuota)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ResourceQuota) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceQuotaList) DeepCopyInto(out *ResourceQuotaList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ResourceQuota, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceQuotaList.\nfunc (in *ResourceQuotaList) DeepCopy() *ResourceQuotaList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceQuotaList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ResourceQuotaList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceQuotaSpec) DeepCopyInto(out *ResourceQuotaSpec) {\n\t*out = *in\n\tif in.Hard != nil {\n\t\tin, out := &in.Hard, &out.Hard\n\t\t*out = make(ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\tif in.Scopes != nil {\n\t\tin, out := &in.Scopes, &out.Scopes\n\t\t*out = make([]ResourceQuotaScope, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ScopeSelector != nil {\n\t\tin, out := &in.ScopeSelector, &out.ScopeSelector\n\t\t*out = new(ScopeSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceQuotaSpec.\nfunc (in *ResourceQuotaSpec) DeepCopy() *ResourceQuotaSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceQuotaSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceQuotaStatus) DeepCopyInto(out *ResourceQuotaStatus) {\n\t*out = *in\n\tif in.Hard != nil {\n\t\tin, out := &in.Hard, &out.Hard\n\t\t*out = make(ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\tif in.Used != nil {\n\t\tin, out := &in.Used, &out.Used\n\t\t*out = make(ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceQuotaStatus.\nfunc (in *ResourceQuotaStatus) DeepCopy() *ResourceQuotaStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceQuotaStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceRequirements) DeepCopyInto(out *ResourceRequirements) {\n\t*out = *in\n\tif in.Limits != nil {\n\t\tin, out := &in.Limits, &out.Limits\n\t\t*out = make(ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\tif in.Requests != nil {\n\t\tin, out := &in.Requests, &out.Requests\n\t\t*out = make(ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\tif in.Claims != nil {\n\t\tin, out := &in.Claims, &out.Claims\n\t\t*out = make([]ResourceClaim, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceRequirements.\nfunc (in *ResourceRequirements) DeepCopy() *ResourceRequirements {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceRequirements)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceStatus) DeepCopyInto(out *ResourceStatus) {\n\t*out = *in\n\tif in.Resources != nil {\n\t\tin, out := &in.Resources, &out.Resources\n\t\t*out = make([]ResourceHealth, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceStatus.\nfunc (in *ResourceStatus) DeepCopy() *ResourceStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SELinuxOptions) DeepCopyInto(out *SELinuxOptions) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SELinuxOptions.\nfunc (in *SELinuxOptions) DeepCopy() *SELinuxOptions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SELinuxOptions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ScaleIOPersistentVolumeSource) DeepCopyInto(out *ScaleIOPersistentVolumeSource) {\n\t*out = *in\n\tif in.SecretRef != nil {\n\t\tin, out := &in.SecretRef, &out.SecretRef\n\t\t*out = new(SecretReference)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleIOPersistentVolumeSource.\nfunc (in *ScaleIOPersistentVolumeSource) DeepCopy() *ScaleIOPersistentVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ScaleIOPersistentVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ScaleIOVolumeSource) DeepCopyInto(out *ScaleIOVolumeSource) {\n\t*out = *in\n\tif in.SecretRef != nil {\n\t\tin, out := &in.SecretRef, &out.SecretRef\n\t\t*out = new(LocalObjectReference)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleIOVolumeSource.\nfunc (in *ScaleIOVolumeSource) DeepCopy() *ScaleIOVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ScaleIOVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ScopeSelector) DeepCopyInto(out *ScopeSelector) {\n\t*out = *in\n\tif in.MatchExpressions != nil {\n\t\tin, out := &in.MatchExpressions, &out.MatchExpressions\n\t\t*out = make([]ScopedResourceSelectorRequirement, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScopeSelector.\nfunc (in *ScopeSelector) DeepCopy() *ScopeSelector {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ScopeSelector)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ScopedResourceSelectorRequirement) DeepCopyInto(out *ScopedResourceSelectorRequirement) {\n\t*out = *in\n\tif in.Values != nil {\n\t\tin, out := &in.Values, &out.Values\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScopedResourceSelectorRequirement.\nfunc (in *ScopedResourceSelectorRequirement) DeepCopy() *ScopedResourceSelectorRequirement {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ScopedResourceSelectorRequirement)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SeccompProfile) DeepCopyInto(out *SeccompProfile) {\n\t*out = *in\n\tif in.LocalhostProfile != nil {\n\t\tin, out := &in.LocalhostProfile, &out.LocalhostProfile\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SeccompProfile.\nfunc (in *SeccompProfile) DeepCopy() *SeccompProfile {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SeccompProfile)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Secret) DeepCopyInto(out *Secret) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Immutable != nil {\n\t\tin, out := &in.Immutable, &out.Immutable\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.Data != nil {\n\t\tin, out := &in.Data, &out.Data\n\t\t*out = make(map[string][]byte, len(*in))\n\t\tfor key, val := range *in {\n\t\t\tvar outVal []byte\n\t\t\tif val == nil {\n\t\t\t\t(*out)[key] = nil\n\t\t\t} else {\n\t\t\t\tin, out := &val, &outVal\n\t\t\t\t*out = make([]byte, len(*in))\n\t\t\t\tcopy(*out, *in)\n\t\t\t}\n\t\t\t(*out)[key] = outVal\n\t\t}\n\t}\n\tif in.StringData != nil {\n\t\tin, out := &in.StringData, &out.StringData\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Secret.\nfunc (in *Secret) DeepCopy() *Secret {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Secret)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Secret) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SecretEnvSource) DeepCopyInto(out *SecretEnvSource) {\n\t*out = *in\n\tout.LocalObjectReference = in.LocalObjectReference\n\tif in.Optional != nil {\n\t\tin, out := &in.Optional, &out.Optional\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretEnvSource.\nfunc (in *SecretEnvSource) DeepCopy() *SecretEnvSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SecretEnvSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SecretKeySelector) DeepCopyInto(out *SecretKeySelector) {\n\t*out = *in\n\tout.LocalObjectReference = in.LocalObjectReference\n\tif in.Optional != nil {\n\t\tin, out := &in.Optional, &out.Optional\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretKeySelector.\nfunc (in *SecretKeySelector) DeepCopy() *SecretKeySelector {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SecretKeySelector)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SecretList) DeepCopyInto(out *SecretList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Secret, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretList.\nfunc (in *SecretList) DeepCopy() *SecretList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SecretList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *SecretList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SecretProjection) DeepCopyInto(out *SecretProjection) {\n\t*out = *in\n\tout.LocalObjectReference = in.LocalObjectReference\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]KeyToPath, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Optional != nil {\n\t\tin, out := &in.Optional, &out.Optional\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretProjection.\nfunc (in *SecretProjection) DeepCopy() *SecretProjection {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SecretProjection)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SecretReference) DeepCopyInto(out *SecretReference) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretReference.\nfunc (in *SecretReference) DeepCopy() *SecretReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SecretReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SecretVolumeSource) DeepCopyInto(out *SecretVolumeSource) {\n\t*out = *in\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]KeyToPath, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.DefaultMode != nil {\n\t\tin, out := &in.DefaultMode, &out.DefaultMode\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Optional != nil {\n\t\tin, out := &in.Optional, &out.Optional\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretVolumeSource.\nfunc (in *SecretVolumeSource) DeepCopy() *SecretVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SecretVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SecurityContext) DeepCopyInto(out *SecurityContext) {\n\t*out = *in\n\tif in.Capabilities != nil {\n\t\tin, out := &in.Capabilities, &out.Capabilities\n\t\t*out = new(Capabilities)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Privileged != nil {\n\t\tin, out := &in.Privileged, &out.Privileged\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.SELinuxOptions != nil {\n\t\tin, out := &in.SELinuxOptions, &out.SELinuxOptions\n\t\t*out = new(SELinuxOptions)\n\t\t**out = **in\n\t}\n\tif in.WindowsOptions != nil {\n\t\tin, out := &in.WindowsOptions, &out.WindowsOptions\n\t\t*out = new(WindowsSecurityContextOptions)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.RunAsUser != nil {\n\t\tin, out := &in.RunAsUser, &out.RunAsUser\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.RunAsGroup != nil {\n\t\tin, out := &in.RunAsGroup, &out.RunAsGroup\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.RunAsNonRoot != nil {\n\t\tin, out := &in.RunAsNonRoot, &out.RunAsNonRoot\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.ReadOnlyRootFilesystem != nil {\n\t\tin, out := &in.ReadOnlyRootFilesystem, &out.ReadOnlyRootFilesystem\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.AllowPrivilegeEscalation != nil {\n\t\tin, out := &in.AllowPrivilegeEscalation, &out.AllowPrivilegeEscalation\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.ProcMount != nil {\n\t\tin, out := &in.ProcMount, &out.ProcMount\n\t\t*out = new(ProcMountType)\n\t\t**out = **in\n\t}\n\tif in.SeccompProfile != nil {\n\t\tin, out := &in.SeccompProfile, &out.SeccompProfile\n\t\t*out = new(SeccompProfile)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.AppArmorProfile != nil {\n\t\tin, out := &in.AppArmorProfile, &out.AppArmorProfile\n\t\t*out = new(AppArmorProfile)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityContext.\nfunc (in *SecurityContext) DeepCopy() *SecurityContext {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SecurityContext)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SerializedReference) DeepCopyInto(out *SerializedReference) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tout.Reference = in.Reference\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SerializedReference.\nfunc (in *SerializedReference) DeepCopy() *SerializedReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SerializedReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *SerializedReference) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Service) DeepCopyInto(out *Service) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Service.\nfunc (in *Service) DeepCopy() *Service {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Service)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Service) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ServiceAccount) DeepCopyInto(out *ServiceAccount) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Secrets != nil {\n\t\tin, out := &in.Secrets, &out.Secrets\n\t\t*out = make([]ObjectReference, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ImagePullSecrets != nil {\n\t\tin, out := &in.ImagePullSecrets, &out.ImagePullSecrets\n\t\t*out = make([]LocalObjectReference, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.AutomountServiceAccountToken != nil {\n\t\tin, out := &in.AutomountServiceAccountToken, &out.AutomountServiceAccountToken\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceAccount.\nfunc (in *ServiceAccount) DeepCopy() *ServiceAccount {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ServiceAccount)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ServiceAccount) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ServiceAccountList) DeepCopyInto(out *ServiceAccountList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ServiceAccount, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceAccountList.\nfunc (in *ServiceAccountList) DeepCopy() *ServiceAccountList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ServiceAccountList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ServiceAccountList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ServiceAccountTokenProjection) DeepCopyInto(out *ServiceAccountTokenProjection) {\n\t*out = *in\n\tif in.ExpirationSeconds != nil {\n\t\tin, out := &in.ExpirationSeconds, &out.ExpirationSeconds\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceAccountTokenProjection.\nfunc (in *ServiceAccountTokenProjection) DeepCopy() *ServiceAccountTokenProjection {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ServiceAccountTokenProjection)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ServiceList) DeepCopyInto(out *ServiceList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Service, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceList.\nfunc (in *ServiceList) DeepCopy() *ServiceList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ServiceList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ServiceList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ServicePort) DeepCopyInto(out *ServicePort) {\n\t*out = *in\n\tif in.AppProtocol != nil {\n\t\tin, out := &in.AppProtocol, &out.AppProtocol\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tout.TargetPort = in.TargetPort\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServicePort.\nfunc (in *ServicePort) DeepCopy() *ServicePort {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ServicePort)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ServiceProxyOptions) DeepCopyInto(out *ServiceProxyOptions) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceProxyOptions.\nfunc (in *ServiceProxyOptions) DeepCopy() *ServiceProxyOptions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ServiceProxyOptions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ServiceProxyOptions) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ServiceSpec) DeepCopyInto(out *ServiceSpec) {\n\t*out = *in\n\tif in.Ports != nil {\n\t\tin, out := &in.Ports, &out.Ports\n\t\t*out = make([]ServicePort, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.ClusterIPs != nil {\n\t\tin, out := &in.ClusterIPs, &out.ClusterIPs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ExternalIPs != nil {\n\t\tin, out := &in.ExternalIPs, &out.ExternalIPs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.LoadBalancerSourceRanges != nil {\n\t\tin, out := &in.LoadBalancerSourceRanges, &out.LoadBalancerSourceRanges\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.SessionAffinityConfig != nil {\n\t\tin, out := &in.SessionAffinityConfig, &out.SessionAffinityConfig\n\t\t*out = new(SessionAffinityConfig)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.IPFamilies != nil {\n\t\tin, out := &in.IPFamilies, &out.IPFamilies\n\t\t*out = make([]IPFamily, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.IPFamilyPolicy != nil {\n\t\tin, out := &in.IPFamilyPolicy, &out.IPFamilyPolicy\n\t\t*out = new(IPFamilyPolicy)\n\t\t**out = **in\n\t}\n\tif in.AllocateLoadBalancerNodePorts != nil {\n\t\tin, out := &in.AllocateLoadBalancerNodePorts, &out.AllocateLoadBalancerNodePorts\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.LoadBalancerClass != nil {\n\t\tin, out := &in.LoadBalancerClass, &out.LoadBalancerClass\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.InternalTrafficPolicy != nil {\n\t\tin, out := &in.InternalTrafficPolicy, &out.InternalTrafficPolicy\n\t\t*out = new(ServiceInternalTrafficPolicy)\n\t\t**out = **in\n\t}\n\tif in.TrafficDistribution != nil {\n\t\tin, out := &in.TrafficDistribution, &out.TrafficDistribution\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceSpec.\nfunc (in *ServiceSpec) DeepCopy() *ServiceSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ServiceSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ServiceStatus) DeepCopyInto(out *ServiceStatus) {\n\t*out = *in\n\tin.LoadBalancer.DeepCopyInto(&out.LoadBalancer)\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]metav1.Condition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceStatus.\nfunc (in *ServiceStatus) DeepCopy() *ServiceStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ServiceStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SessionAffinityConfig) DeepCopyInto(out *SessionAffinityConfig) {\n\t*out = *in\n\tif in.ClientIP != nil {\n\t\tin, out := &in.ClientIP, &out.ClientIP\n\t\t*out = new(ClientIPConfig)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SessionAffinityConfig.\nfunc (in *SessionAffinityConfig) DeepCopy() *SessionAffinityConfig {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SessionAffinityConfig)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *SleepAction) DeepCopyInto(out *SleepAction) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SleepAction.\nfunc (in *SleepAction) DeepCopy() *SleepAction {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(SleepAction)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StorageOSPersistentVolumeSource) DeepCopyInto(out *StorageOSPersistentVolumeSource) {\n\t*out = *in\n\tif in.SecretRef != nil {\n\t\tin, out := &in.SecretRef, &out.SecretRef\n\t\t*out = new(ObjectReference)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageOSPersistentVolumeSource.\nfunc (in *StorageOSPersistentVolumeSource) DeepCopy() *StorageOSPersistentVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StorageOSPersistentVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StorageOSVolumeSource) DeepCopyInto(out *StorageOSVolumeSource) {\n\t*out = *in\n\tif in.SecretRef != nil {\n\t\tin, out := &in.SecretRef, &out.SecretRef\n\t\t*out = new(LocalObjectReference)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageOSVolumeSource.\nfunc (in *StorageOSVolumeSource) DeepCopy() *StorageOSVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StorageOSVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Sysctl) DeepCopyInto(out *Sysctl) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Sysctl.\nfunc (in *Sysctl) DeepCopy() *Sysctl {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Sysctl)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TCPSocketAction) DeepCopyInto(out *TCPSocketAction) {\n\t*out = *in\n\tout.Port = in.Port\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TCPSocketAction.\nfunc (in *TCPSocketAction) DeepCopy() *TCPSocketAction {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TCPSocketAction)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Taint) DeepCopyInto(out *Taint) {\n\t*out = *in\n\tif in.TimeAdded != nil {\n\t\tin, out := &in.TimeAdded, &out.TimeAdded\n\t\t*out = (*in).DeepCopy()\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Taint.\nfunc (in *Taint) DeepCopy() *Taint {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Taint)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Toleration) DeepCopyInto(out *Toleration) {\n\t*out = *in\n\tif in.TolerationSeconds != nil {\n\t\tin, out := &in.TolerationSeconds, &out.TolerationSeconds\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Toleration.\nfunc (in *Toleration) DeepCopy() *Toleration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Toleration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TopologySelectorLabelRequirement) DeepCopyInto(out *TopologySelectorLabelRequirement) {\n\t*out = *in\n\tif in.Values != nil {\n\t\tin, out := &in.Values, &out.Values\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TopologySelectorLabelRequirement.\nfunc (in *TopologySelectorLabelRequirement) DeepCopy() *TopologySelectorLabelRequirement {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TopologySelectorLabelRequirement)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TopologySelectorTerm) DeepCopyInto(out *TopologySelectorTerm) {\n\t*out = *in\n\tif in.MatchLabelExpressions != nil {\n\t\tin, out := &in.MatchLabelExpressions, &out.MatchLabelExpressions\n\t\t*out = make([]TopologySelectorLabelRequirement, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TopologySelectorTerm.\nfunc (in *TopologySelectorTerm) DeepCopy() *TopologySelectorTerm {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TopologySelectorTerm)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TopologySpreadConstraint) DeepCopyInto(out *TopologySpreadConstraint) {\n\t*out = *in\n\tif in.LabelSelector != nil {\n\t\tin, out := &in.LabelSelector, &out.LabelSelector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.MinDomains != nil {\n\t\tin, out := &in.MinDomains, &out.MinDomains\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.NodeAffinityPolicy != nil {\n\t\tin, out := &in.NodeAffinityPolicy, &out.NodeAffinityPolicy\n\t\t*out = new(NodeInclusionPolicy)\n\t\t**out = **in\n\t}\n\tif in.NodeTaintsPolicy != nil {\n\t\tin, out := &in.NodeTaintsPolicy, &out.NodeTaintsPolicy\n\t\t*out = new(NodeInclusionPolicy)\n\t\t**out = **in\n\t}\n\tif in.MatchLabelKeys != nil {\n\t\tin, out := &in.MatchLabelKeys, &out.MatchLabelKeys\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TopologySpreadConstraint.\nfunc (in *TopologySpreadConstraint) DeepCopy() *TopologySpreadConstraint {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TopologySpreadConstraint)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TypedLocalObjectReference) DeepCopyInto(out *TypedLocalObjectReference) {\n\t*out = *in\n\tif in.APIGroup != nil {\n\t\tin, out := &in.APIGroup, &out.APIGroup\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TypedLocalObjectReference.\nfunc (in *TypedLocalObjectReference) DeepCopy() *TypedLocalObjectReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TypedLocalObjectReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TypedObjectReference) DeepCopyInto(out *TypedObjectReference) {\n\t*out = *in\n\tif in.APIGroup != nil {\n\t\tin, out := &in.APIGroup, &out.APIGroup\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.Namespace != nil {\n\t\tin, out := &in.Namespace, &out.Namespace\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TypedObjectReference.\nfunc (in *TypedObjectReference) DeepCopy() *TypedObjectReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TypedObjectReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Volume) DeepCopyInto(out *Volume) {\n\t*out = *in\n\tin.VolumeSource.DeepCopyInto(&out.VolumeSource)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Volume.\nfunc (in *Volume) DeepCopy() *Volume {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Volume)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeDevice) DeepCopyInto(out *VolumeDevice) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeDevice.\nfunc (in *VolumeDevice) DeepCopy() *VolumeDevice {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeDevice)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeMount) DeepCopyInto(out *VolumeMount) {\n\t*out = *in\n\tif in.RecursiveReadOnly != nil {\n\t\tin, out := &in.RecursiveReadOnly, &out.RecursiveReadOnly\n\t\t*out = new(RecursiveReadOnlyMode)\n\t\t**out = **in\n\t}\n\tif in.MountPropagation != nil {\n\t\tin, out := &in.MountPropagation, &out.MountPropagation\n\t\t*out = new(MountPropagationMode)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeMount.\nfunc (in *VolumeMount) DeepCopy() *VolumeMount {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeMount)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeMountStatus) DeepCopyInto(out *VolumeMountStatus) {\n\t*out = *in\n\tif in.RecursiveReadOnly != nil {\n\t\tin, out := &in.RecursiveReadOnly, &out.RecursiveReadOnly\n\t\t*out = new(RecursiveReadOnlyMode)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeMountStatus.\nfunc (in *VolumeMountStatus) DeepCopy() *VolumeMountStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeMountStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeNodeAffinity) DeepCopyInto(out *VolumeNodeAffinity) {\n\t*out = *in\n\tif in.Required != nil {\n\t\tin, out := &in.Required, &out.Required\n\t\t*out = new(NodeSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeNodeAffinity.\nfunc (in *VolumeNodeAffinity) DeepCopy() *VolumeNodeAffinity {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeNodeAffinity)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeProjection) DeepCopyInto(out *VolumeProjection) {\n\t*out = *in\n\tif in.Secret != nil {\n\t\tin, out := &in.Secret, &out.Secret\n\t\t*out = new(SecretProjection)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.DownwardAPI != nil {\n\t\tin, out := &in.DownwardAPI, &out.DownwardAPI\n\t\t*out = new(DownwardAPIProjection)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ConfigMap != nil {\n\t\tin, out := &in.ConfigMap, &out.ConfigMap\n\t\t*out = new(ConfigMapProjection)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ServiceAccountToken != nil {\n\t\tin, out := &in.ServiceAccountToken, &out.ServiceAccountToken\n\t\t*out = new(ServiceAccountTokenProjection)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ClusterTrustBundle != nil {\n\t\tin, out := &in.ClusterTrustBundle, &out.ClusterTrustBundle\n\t\t*out = new(ClusterTrustBundleProjection)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeProjection.\nfunc (in *VolumeProjection) DeepCopy() *VolumeProjection {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeProjection)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeResourceRequirements) DeepCopyInto(out *VolumeResourceRequirements) {\n\t*out = *in\n\tif in.Limits != nil {\n\t\tin, out := &in.Limits, &out.Limits\n\t\t*out = make(ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\tif in.Requests != nil {\n\t\tin, out := &in.Requests, &out.Requests\n\t\t*out = make(ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeResourceRequirements.\nfunc (in *VolumeResourceRequirements) DeepCopy() *VolumeResourceRequirements {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeResourceRequirements)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeSource) DeepCopyInto(out *VolumeSource) {\n\t*out = *in\n\tif in.HostPath != nil {\n\t\tin, out := &in.HostPath, &out.HostPath\n\t\t*out = new(HostPathVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.EmptyDir != nil {\n\t\tin, out := &in.EmptyDir, &out.EmptyDir\n\t\t*out = new(EmptyDirVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.GCEPersistentDisk != nil {\n\t\tin, out := &in.GCEPersistentDisk, &out.GCEPersistentDisk\n\t\t*out = new(GCEPersistentDiskVolumeSource)\n\t\t**out = **in\n\t}\n\tif in.AWSElasticBlockStore != nil {\n\t\tin, out := &in.AWSElasticBlockStore, &out.AWSElasticBlockStore\n\t\t*out = new(AWSElasticBlockStoreVolumeSource)\n\t\t**out = **in\n\t}\n\tif in.GitRepo != nil {\n\t\tin, out := &in.GitRepo, &out.GitRepo\n\t\t*out = new(GitRepoVolumeSource)\n\t\t**out = **in\n\t}\n\tif in.Secret != nil {\n\t\tin, out := &in.Secret, &out.Secret\n\t\t*out = new(SecretVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.NFS != nil {\n\t\tin, out := &in.NFS, &out.NFS\n\t\t*out = new(NFSVolumeSource)\n\t\t**out = **in\n\t}\n\tif in.ISCSI != nil {\n\t\tin, out := &in.ISCSI, &out.ISCSI\n\t\t*out = new(ISCSIVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Glusterfs != nil {\n\t\tin, out := &in.Glusterfs, &out.Glusterfs\n\t\t*out = new(GlusterfsVolumeSource)\n\t\t**out = **in\n\t}\n\tif in.PersistentVolumeClaim != nil {\n\t\tin, out := &in.PersistentVolumeClaim, &out.PersistentVolumeClaim\n\t\t*out = new(PersistentVolumeClaimVolumeSource)\n\t\t**out = **in\n\t}\n\tif in.RBD != nil {\n\t\tin, out := &in.RBD, &out.RBD\n\t\t*out = new(RBDVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.FlexVolume != nil {\n\t\tin, out := &in.FlexVolume, &out.FlexVolume\n\t\t*out = new(FlexVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Cinder != nil {\n\t\tin, out := &in.Cinder, &out.Cinder\n\t\t*out = new(CinderVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.CephFS != nil {\n\t\tin, out := &in.CephFS, &out.CephFS\n\t\t*out = new(CephFSVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Flocker != nil {\n\t\tin, out := &in.Flocker, &out.Flocker\n\t\t*out = new(FlockerVolumeSource)\n\t\t**out = **in\n\t}\n\tif in.DownwardAPI != nil {\n\t\tin, out := &in.DownwardAPI, &out.DownwardAPI\n\t\t*out = new(DownwardAPIVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.FC != nil {\n\t\tin, out := &in.FC, &out.FC\n\t\t*out = new(FCVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.AzureFile != nil {\n\t\tin, out := &in.AzureFile, &out.AzureFile\n\t\t*out = new(AzureFileVolumeSource)\n\t\t**out = **in\n\t}\n\tif in.ConfigMap != nil {\n\t\tin, out := &in.ConfigMap, &out.ConfigMap\n\t\t*out = new(ConfigMapVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.VsphereVolume != nil {\n\t\tin, out := &in.VsphereVolume, &out.VsphereVolume\n\t\t*out = new(VsphereVirtualDiskVolumeSource)\n\t\t**out = **in\n\t}\n\tif in.Quobyte != nil {\n\t\tin, out := &in.Quobyte, &out.Quobyte\n\t\t*out = new(QuobyteVolumeSource)\n\t\t**out = **in\n\t}\n\tif in.AzureDisk != nil {\n\t\tin, out := &in.AzureDisk, &out.AzureDisk\n\t\t*out = new(AzureDiskVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.PhotonPersistentDisk != nil {\n\t\tin, out := &in.PhotonPersistentDisk, &out.PhotonPersistentDisk\n\t\t*out = new(PhotonPersistentDiskVolumeSource)\n\t\t**out = **in\n\t}\n\tif in.Projected != nil {\n\t\tin, out := &in.Projected, &out.Projected\n\t\t*out = new(ProjectedVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.PortworxVolume != nil {\n\t\tin, out := &in.PortworxVolume, &out.PortworxVolume\n\t\t*out = new(PortworxVolumeSource)\n\t\t**out = **in\n\t}\n\tif in.ScaleIO != nil {\n\t\tin, out := &in.ScaleIO, &out.ScaleIO\n\t\t*out = new(ScaleIOVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.StorageOS != nil {\n\t\tin, out := &in.StorageOS, &out.StorageOS\n\t\t*out = new(StorageOSVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.CSI != nil {\n\t\tin, out := &in.CSI, &out.CSI\n\t\t*out = new(CSIVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Ephemeral != nil {\n\t\tin, out := &in.Ephemeral, &out.Ephemeral\n\t\t*out = new(EphemeralVolumeSource)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Image != nil {\n\t\tin, out := &in.Image, &out.Image\n\t\t*out = new(ImageVolumeSource)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeSource.\nfunc (in *VolumeSource) DeepCopy() *VolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VsphereVirtualDiskVolumeSource) DeepCopyInto(out *VsphereVirtualDiskVolumeSource) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VsphereVirtualDiskVolumeSource.\nfunc (in *VsphereVirtualDiskVolumeSource) DeepCopy() *VsphereVirtualDiskVolumeSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VsphereVirtualDiskVolumeSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *WeightedPodAffinityTerm) DeepCopyInto(out *WeightedPodAffinityTerm) {\n\t*out = *in\n\tin.PodAffinityTerm.DeepCopyInto(&out.PodAffinityTerm)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WeightedPodAffinityTerm.\nfunc (in *WeightedPodAffinityTerm) DeepCopy() *WeightedPodAffinityTerm {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(WeightedPodAffinityTerm)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *WindowsSecurityContextOptions) DeepCopyInto(out *WindowsSecurityContextOptions) {\n\t*out = *in\n\tif in.GMSACredentialSpecName != nil {\n\t\tin, out := &in.GMSACredentialSpecName, &out.GMSACredentialSpecName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.GMSACredentialSpec != nil {\n\t\tin, out := &in.GMSACredentialSpec, &out.GMSACredentialSpec\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.RunAsUserName != nil {\n\t\tin, out := &in.RunAsUserName, &out.RunAsUserName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.HostProcess != nil {\n\t\tin, out := &in.HostProcess, &out.HostProcess\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WindowsSecurityContextOptions.\nfunc (in *WindowsSecurityContextOptions) DeepCopy() *WindowsSecurityContextOptions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(WindowsSecurityContextOptions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/core/v1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *Binding) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 0\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ConfigMap) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 2\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ConfigMapList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 2\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *Endpoints) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 0\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *EndpointsList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 0\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *Event) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 0\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *EventList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 0\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *LimitRange) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 0\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *LimitRangeList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 0\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *List) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 0\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *Namespace) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 0\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *NamespaceList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 0\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *Node) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 0\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *NodeList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 0\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *NodeProxyOptions) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 2\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *PersistentVolume) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 0\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *PersistentVolumeClaim) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 0\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *PersistentVolumeClaimList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 0\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *PersistentVolumeList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 0\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *Pod) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 0\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *PodAttachOptions) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 1\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *PodExecOptions) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 0\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *PodList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 0\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *PodLogOptions) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 0\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *PodPortForwardOptions) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 6\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *PodProxyOptions) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 0\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *PodStatusResult) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 0\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *PodTemplate) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 0\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *PodTemplateList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 0\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *RangeAllocation) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 0\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ReplicationController) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 0\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ReplicationControllerList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 0\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ResourceQuota) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 0\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ResourceQuotaList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 0\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *Secret) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 0\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *SecretList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 0\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *SerializedReference) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 0\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *Service) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 0\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ServiceAccount) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 0\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ServiceAccountList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 0\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ServiceList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 0\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ServiceProxyOptions) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 2\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/discovery/v1/doc.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n// +groupName=discovery.k8s.io\n\npackage v1 // import \"k8s.io/api/discovery/v1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/discovery/v1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/discovery/v1/generated.proto\n\npackage v1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\tv1 \"k8s.io/api/core/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *Endpoint) Reset()      { *m = Endpoint{} }\nfunc (*Endpoint) ProtoMessage() {}\nfunc (*Endpoint) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2237b452324cf77e, []int{0}\n}\nfunc (m *Endpoint) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Endpoint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Endpoint) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Endpoint.Merge(m, src)\n}\nfunc (m *Endpoint) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Endpoint) XXX_DiscardUnknown() {\n\txxx_messageInfo_Endpoint.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Endpoint proto.InternalMessageInfo\n\nfunc (m *EndpointConditions) Reset()      { *m = EndpointConditions{} }\nfunc (*EndpointConditions) ProtoMessage() {}\nfunc (*EndpointConditions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2237b452324cf77e, []int{1}\n}\nfunc (m *EndpointConditions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EndpointConditions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EndpointConditions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EndpointConditions.Merge(m, src)\n}\nfunc (m *EndpointConditions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EndpointConditions) XXX_DiscardUnknown() {\n\txxx_messageInfo_EndpointConditions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EndpointConditions proto.InternalMessageInfo\n\nfunc (m *EndpointHints) Reset()      { *m = EndpointHints{} }\nfunc (*EndpointHints) ProtoMessage() {}\nfunc (*EndpointHints) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2237b452324cf77e, []int{2}\n}\nfunc (m *EndpointHints) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EndpointHints) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EndpointHints) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EndpointHints.Merge(m, src)\n}\nfunc (m *EndpointHints) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EndpointHints) XXX_DiscardUnknown() {\n\txxx_messageInfo_EndpointHints.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EndpointHints proto.InternalMessageInfo\n\nfunc (m *EndpointPort) Reset()      { *m = EndpointPort{} }\nfunc (*EndpointPort) ProtoMessage() {}\nfunc (*EndpointPort) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2237b452324cf77e, []int{3}\n}\nfunc (m *EndpointPort) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EndpointPort) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EndpointPort) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EndpointPort.Merge(m, src)\n}\nfunc (m *EndpointPort) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EndpointPort) XXX_DiscardUnknown() {\n\txxx_messageInfo_EndpointPort.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EndpointPort proto.InternalMessageInfo\n\nfunc (m *EndpointSlice) Reset()      { *m = EndpointSlice{} }\nfunc (*EndpointSlice) ProtoMessage() {}\nfunc (*EndpointSlice) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2237b452324cf77e, []int{4}\n}\nfunc (m *EndpointSlice) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EndpointSlice) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EndpointSlice) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EndpointSlice.Merge(m, src)\n}\nfunc (m *EndpointSlice) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EndpointSlice) XXX_DiscardUnknown() {\n\txxx_messageInfo_EndpointSlice.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EndpointSlice proto.InternalMessageInfo\n\nfunc (m *EndpointSliceList) Reset()      { *m = EndpointSliceList{} }\nfunc (*EndpointSliceList) ProtoMessage() {}\nfunc (*EndpointSliceList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2237b452324cf77e, []int{5}\n}\nfunc (m *EndpointSliceList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EndpointSliceList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EndpointSliceList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EndpointSliceList.Merge(m, src)\n}\nfunc (m *EndpointSliceList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EndpointSliceList) XXX_DiscardUnknown() {\n\txxx_messageInfo_EndpointSliceList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EndpointSliceList proto.InternalMessageInfo\n\nfunc (m *ForZone) Reset()      { *m = ForZone{} }\nfunc (*ForZone) ProtoMessage() {}\nfunc (*ForZone) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2237b452324cf77e, []int{6}\n}\nfunc (m *ForZone) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ForZone) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ForZone) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ForZone.Merge(m, src)\n}\nfunc (m *ForZone) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ForZone) XXX_DiscardUnknown() {\n\txxx_messageInfo_ForZone.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ForZone proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*Endpoint)(nil), \"k8s.io.api.discovery.v1.Endpoint\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.discovery.v1.Endpoint.DeprecatedTopologyEntry\")\n\tproto.RegisterType((*EndpointConditions)(nil), \"k8s.io.api.discovery.v1.EndpointConditions\")\n\tproto.RegisterType((*EndpointHints)(nil), \"k8s.io.api.discovery.v1.EndpointHints\")\n\tproto.RegisterType((*EndpointPort)(nil), \"k8s.io.api.discovery.v1.EndpointPort\")\n\tproto.RegisterType((*EndpointSlice)(nil), \"k8s.io.api.discovery.v1.EndpointSlice\")\n\tproto.RegisterType((*EndpointSliceList)(nil), \"k8s.io.api.discovery.v1.EndpointSliceList\")\n\tproto.RegisterType((*ForZone)(nil), \"k8s.io.api.discovery.v1.ForZone\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/discovery/v1/generated.proto\", fileDescriptor_2237b452324cf77e)\n}\n\nvar fileDescriptor_2237b452324cf77e = []byte{\n\t// 877 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x55, 0x4d, 0x6f, 0xdc, 0x44,\n\t0x18, 0x5e, 0x67, 0x63, 0x62, 0x8f, 0x13, 0xd1, 0x8e, 0x90, 0x62, 0x2d, 0xc8, 0x5e, 0x8c, 0x0a,\n\t0x2b, 0x45, 0x78, 0x49, 0x84, 0x50, 0x41, 0xe2, 0x10, 0xd3, 0xd0, 0xf2, 0x15, 0xa2, 0x69, 0x4e,\n\t0x15, 0x52, 0x71, 0xec, 0x37, 0x5e, 0x93, 0xd8, 0x63, 0x79, 0x26, 0x2b, 0x2d, 0x27, 0x2e, 0x9c,\n\t0xe1, 0x17, 0x71, 0x44, 0x39, 0xf6, 0x46, 0x4f, 0x16, 0x31, 0x7f, 0x81, 0x53, 0x4f, 0x68, 0xc6,\n\t0x9f, 0x61, 0xb3, 0xda, 0xde, 0x3c, 0xcf, 0x3c, 0xcf, 0xfb, 0xf1, 0xcc, 0xcc, 0x6b, 0xf4, 0xc1,\n\t0xc5, 0x43, 0xe6, 0xc6, 0x74, 0xea, 0x67, 0xf1, 0x34, 0x8c, 0x59, 0x40, 0xe7, 0x90, 0x2f, 0xa6,\n\t0xf3, 0xfd, 0x69, 0x04, 0x29, 0xe4, 0x3e, 0x87, 0xd0, 0xcd, 0x72, 0xca, 0x29, 0xde, 0xad, 0x88,\n\t0xae, 0x9f, 0xc5, 0x6e, 0x4b, 0x74, 0xe7, 0xfb, 0xa3, 0x0f, 0xa3, 0x98, 0xcf, 0xae, 0xce, 0xdc,\n\t0x80, 0x26, 0xd3, 0x88, 0x46, 0x74, 0x2a, 0xf9, 0x67, 0x57, 0xe7, 0x72, 0x25, 0x17, 0xf2, 0xab,\n\t0x8a, 0x33, 0x72, 0x7a, 0x09, 0x03, 0x9a, 0xc3, 0x1d, 0xb9, 0x46, 0x1f, 0x77, 0x9c, 0xc4, 0x0f,\n\t0x66, 0x71, 0x2a, 0x6a, 0xca, 0x2e, 0x22, 0x01, 0xb0, 0x69, 0x02, 0xdc, 0xbf, 0x4b, 0x35, 0x5d,\n\t0xa5, 0xca, 0xaf, 0x52, 0x1e, 0x27, 0xb0, 0x24, 0xf8, 0x64, 0x9d, 0x80, 0x05, 0x33, 0x48, 0xfc,\n\t0xff, 0xeb, 0x9c, 0x7f, 0x37, 0x91, 0x76, 0x94, 0x86, 0x19, 0x8d, 0x53, 0x8e, 0xf7, 0x90, 0xee,\n\t0x87, 0x61, 0x0e, 0x8c, 0x01, 0x33, 0x95, 0xf1, 0x70, 0xa2, 0x7b, 0x3b, 0x65, 0x61, 0xeb, 0x87,\n\t0x0d, 0x48, 0xba, 0x7d, 0xfc, 0x1c, 0xa1, 0x80, 0xa6, 0x61, 0xcc, 0x63, 0x9a, 0x32, 0x73, 0x63,\n\t0xac, 0x4c, 0x8c, 0x83, 0x3d, 0x77, 0x85, 0xb3, 0x6e, 0x93, 0xe3, 0x8b, 0x56, 0xe2, 0xe1, 0xeb,\n\t0xc2, 0x1e, 0x94, 0x85, 0x8d, 0x3a, 0x8c, 0xf4, 0x42, 0xe2, 0x09, 0xd2, 0x66, 0x94, 0xf1, 0xd4,\n\t0x4f, 0xc0, 0x1c, 0x8e, 0x95, 0x89, 0xee, 0x6d, 0x97, 0x85, 0xad, 0x3d, 0xa9, 0x31, 0xd2, 0xee,\n\t0xe2, 0x13, 0xa4, 0x73, 0x3f, 0x8f, 0x80, 0x13, 0x38, 0x37, 0x37, 0x65, 0x25, 0xef, 0xf5, 0x2b,\n\t0x11, 0x67, 0x23, 0x8a, 0xf8, 0xfe, 0xec, 0x27, 0x08, 0x04, 0x09, 0x72, 0x48, 0x03, 0xa8, 0x9a,\n\t0x3b, 0x6d, 0x94, 0xa4, 0x0b, 0x82, 0x7f, 0x55, 0x10, 0x0e, 0x21, 0xcb, 0x21, 0x10, 0x5e, 0x9d,\n\t0xd2, 0x8c, 0x5e, 0xd2, 0x68, 0x61, 0xaa, 0xe3, 0xe1, 0xc4, 0x38, 0xf8, 0x74, 0x6d, 0x97, 0xee,\n\t0xa3, 0x25, 0xed, 0x51, 0xca, 0xf3, 0x85, 0x37, 0xaa, 0x7b, 0xc6, 0xcb, 0x04, 0x72, 0x47, 0x42,\n\t0xe1, 0x41, 0x4a, 0x43, 0x38, 0x16, 0x1e, 0xbc, 0xd1, 0x79, 0x70, 0x5c, 0x63, 0xa4, 0xdd, 0xc5,\n\t0xef, 0xa0, 0xcd, 0x9f, 0x69, 0x0a, 0xe6, 0x96, 0x64, 0x69, 0x65, 0x61, 0x6f, 0x3e, 0xa3, 0x29,\n\t0x10, 0x89, 0xe2, 0xc7, 0x48, 0x9d, 0xc5, 0x29, 0x67, 0xa6, 0x26, 0xdd, 0x79, 0x7f, 0x6d, 0x07,\n\t0x4f, 0x04, 0xdb, 0xd3, 0xcb, 0xc2, 0x56, 0xe5, 0x27, 0xa9, 0xf4, 0xa3, 0x23, 0xb4, 0xbb, 0xa2,\n\t0x37, 0x7c, 0x0f, 0x0d, 0x2f, 0x60, 0x61, 0x2a, 0xa2, 0x00, 0x22, 0x3e, 0xf1, 0x5b, 0x48, 0x9d,\n\t0xfb, 0x97, 0x57, 0x20, 0x6f, 0x87, 0x4e, 0xaa, 0xc5, 0x67, 0x1b, 0x0f, 0x15, 0xe7, 0x37, 0x05,\n\t0xe1, 0xe5, 0x2b, 0x81, 0x6d, 0xa4, 0xe6, 0xe0, 0x87, 0x55, 0x10, 0xad, 0x4a, 0x4f, 0x04, 0x40,\n\t0x2a, 0x1c, 0x3f, 0x40, 0x5b, 0x0c, 0xf2, 0x79, 0x9c, 0x46, 0x32, 0xa6, 0xe6, 0x19, 0x65, 0x61,\n\t0x6f, 0x3d, 0xad, 0x20, 0xd2, 0xec, 0xe1, 0x7d, 0x64, 0x70, 0xc8, 0x93, 0x38, 0xf5, 0xb9, 0xa0,\n\t0x0e, 0x25, 0xf5, 0xcd, 0xb2, 0xb0, 0x8d, 0xd3, 0x0e, 0x26, 0x7d, 0x8e, 0xf3, 0x1c, 0xed, 0xdc,\n\t0xea, 0x1d, 0x1f, 0x23, 0xed, 0x9c, 0xe6, 0xc2, 0xc3, 0xea, 0x2d, 0x18, 0x07, 0xe3, 0x95, 0xae,\n\t0x7d, 0x59, 0x11, 0xbd, 0x7b, 0xf5, 0xf1, 0x6a, 0x35, 0xc0, 0x48, 0x1b, 0xc3, 0xf9, 0x53, 0x41,\n\t0xdb, 0x4d, 0x86, 0x13, 0x9a, 0x73, 0x71, 0x62, 0xf2, 0x6e, 0x2b, 0xdd, 0x89, 0xc9, 0x33, 0x95,\n\t0x28, 0x7e, 0x8c, 0x34, 0xf9, 0x42, 0x03, 0x7a, 0x59, 0xd9, 0xe7, 0xed, 0x89, 0xc0, 0x27, 0x35,\n\t0xf6, 0xaa, 0xb0, 0xdf, 0x5e, 0x9e, 0x3e, 0x6e, 0xb3, 0x4d, 0x5a, 0xb1, 0x48, 0x93, 0xd1, 0x9c,\n\t0x4b, 0x13, 0xd4, 0x2a, 0x8d, 0x48, 0x4f, 0x24, 0x2a, 0x9c, 0xf2, 0xb3, 0xac, 0x91, 0xc9, 0xc7,\n\t0xa3, 0x57, 0x4e, 0x1d, 0x76, 0x30, 0xe9, 0x73, 0x9c, 0xbf, 0x36, 0x3a, 0xab, 0x9e, 0x5e, 0xc6,\n\t0x01, 0xe0, 0x1f, 0x91, 0x26, 0x06, 0x59, 0xe8, 0x73, 0x5f, 0x76, 0x63, 0x1c, 0x7c, 0xd4, 0xb3,\n\t0xaa, 0x9d, 0x47, 0x6e, 0x76, 0x11, 0x09, 0x80, 0xb9, 0x82, 0xdd, 0x3d, 0xc8, 0xef, 0x80, 0xfb,\n\t0xdd, 0x34, 0xe8, 0x30, 0xd2, 0x46, 0xc5, 0x8f, 0x90, 0x51, 0x4f, 0x9e, 0xd3, 0x45, 0x06, 0x75,\n\t0x99, 0x4e, 0x2d, 0x31, 0x0e, 0xbb, 0xad, 0x57, 0xb7, 0x97, 0xa4, 0x2f, 0xc3, 0x04, 0xe9, 0x50,\n\t0x17, 0x2e, 0x26, 0x96, 0x38, 0xd3, 0x77, 0xd7, 0xbe, 0x04, 0xef, 0x7e, 0x9d, 0x46, 0x6f, 0x10,\n\t0x46, 0xba, 0x30, 0xf8, 0x6b, 0xa4, 0x0a, 0x23, 0x99, 0x39, 0x94, 0xf1, 0x1e, 0xac, 0x8d, 0x27,\n\t0xcc, 0xf7, 0x76, 0xea, 0x98, 0xaa, 0x58, 0x31, 0x52, 0x85, 0x70, 0xfe, 0x50, 0xd0, 0xfd, 0x5b,\n\t0xce, 0x7e, 0x1b, 0x33, 0x8e, 0x7f, 0x58, 0x72, 0xd7, 0x7d, 0x3d, 0x77, 0x85, 0x5a, 0x7a, 0xdb,\n\t0x5e, 0xcb, 0x06, 0xe9, 0x39, 0xfb, 0x0d, 0x52, 0x63, 0x0e, 0x49, 0xe3, 0xc7, 0xfa, 0xc9, 0x20,\n\t0x0b, 0xeb, 0x1a, 0xf8, 0x4a, 0x88, 0x49, 0x15, 0xc3, 0xd9, 0x43, 0x5b, 0xf5, 0xcd, 0xc7, 0xe3,\n\t0x5b, 0xb7, 0x7b, 0xbb, 0xa6, 0xf7, 0x6e, 0xb8, 0xf7, 0xf9, 0xf5, 0x8d, 0x35, 0x78, 0x71, 0x63,\n\t0x0d, 0x5e, 0xde, 0x58, 0x83, 0x5f, 0x4a, 0x4b, 0xb9, 0x2e, 0x2d, 0xe5, 0x45, 0x69, 0x29, 0x2f,\n\t0x4b, 0x4b, 0xf9, 0xbb, 0xb4, 0x94, 0xdf, 0xff, 0xb1, 0x06, 0xcf, 0x76, 0x57, 0xfc, 0xd4, 0xff,\n\t0x0b, 0x00, 0x00, 0xff, 0xff, 0x76, 0x4b, 0x26, 0xe3, 0xee, 0x07, 0x00, 0x00,\n}\n\nfunc (m *Endpoint) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Endpoint) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Endpoint) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Hints != nil {\n\t\t{\n\t\t\tsize, err := m.Hints.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x42\n\t}\n\tif m.Zone != nil {\n\t\ti -= len(*m.Zone)\n\t\tcopy(dAtA[i:], *m.Zone)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Zone)))\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif m.NodeName != nil {\n\t\ti -= len(*m.NodeName)\n\t\tcopy(dAtA[i:], *m.NodeName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.NodeName)))\n\t\ti--\n\t\tdAtA[i] = 0x32\n\t}\n\tif len(m.DeprecatedTopology) > 0 {\n\t\tkeysForDeprecatedTopology := make([]string, 0, len(m.DeprecatedTopology))\n\t\tfor k := range m.DeprecatedTopology {\n\t\t\tkeysForDeprecatedTopology = append(keysForDeprecatedTopology, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForDeprecatedTopology)\n\t\tfor iNdEx := len(keysForDeprecatedTopology) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.DeprecatedTopology[string(keysForDeprecatedTopology[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForDeprecatedTopology[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForDeprecatedTopology[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForDeprecatedTopology[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\tif m.TargetRef != nil {\n\t\t{\n\t\t\tsize, err := m.TargetRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Hostname != nil {\n\t\ti -= len(*m.Hostname)\n\t\tcopy(dAtA[i:], *m.Hostname)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Hostname)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\t{\n\t\tsize, err := m.Conditions.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\tif len(m.Addresses) > 0 {\n\t\tfor iNdEx := len(m.Addresses) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Addresses[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Addresses[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Addresses[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EndpointConditions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EndpointConditions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EndpointConditions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Terminating != nil {\n\t\ti--\n\t\tif *m.Terminating {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif m.Serving != nil {\n\t\ti--\n\t\tif *m.Serving {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif m.Ready != nil {\n\t\ti--\n\t\tif *m.Ready {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EndpointHints) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EndpointHints) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EndpointHints) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ForZones) > 0 {\n\t\tfor iNdEx := len(m.ForZones) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ForZones[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EndpointPort) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EndpointPort) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EndpointPort) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.AppProtocol != nil {\n\t\ti -= len(*m.AppProtocol)\n\t\tcopy(dAtA[i:], *m.AppProtocol)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.AppProtocol)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Port != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Port))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif m.Protocol != nil {\n\t\ti -= len(*m.Protocol)\n\t\tcopy(dAtA[i:], *m.Protocol)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Protocol)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Name != nil {\n\t\ti -= len(*m.Name)\n\t\tcopy(dAtA[i:], *m.Name)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Name)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EndpointSlice) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EndpointSlice) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EndpointSlice) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.AddressType)\n\tcopy(dAtA[i:], m.AddressType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.AddressType)))\n\ti--\n\tdAtA[i] = 0x22\n\tif len(m.Ports) > 0 {\n\t\tfor iNdEx := len(m.Ports) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ports[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.Endpoints) > 0 {\n\t\tfor iNdEx := len(m.Endpoints) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Endpoints[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EndpointSliceList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EndpointSliceList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EndpointSliceList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ForZone) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ForZone) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ForZone) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *Endpoint) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Addresses) > 0 {\n\t\tfor _, s := range m.Addresses {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = m.Conditions.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Hostname != nil {\n\t\tl = len(*m.Hostname)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.TargetRef != nil {\n\t\tl = m.TargetRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.DeprecatedTopology) > 0 {\n\t\tfor k, v := range m.DeprecatedTopology {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif m.NodeName != nil {\n\t\tl = len(*m.NodeName)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Zone != nil {\n\t\tl = len(*m.Zone)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Hints != nil {\n\t\tl = m.Hints.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *EndpointConditions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Ready != nil {\n\t\tn += 2\n\t}\n\tif m.Serving != nil {\n\t\tn += 2\n\t}\n\tif m.Terminating != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *EndpointHints) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.ForZones) > 0 {\n\t\tfor _, e := range m.ForZones {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *EndpointPort) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Name != nil {\n\t\tl = len(*m.Name)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Protocol != nil {\n\t\tl = len(*m.Protocol)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Port != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Port))\n\t}\n\tif m.AppProtocol != nil {\n\t\tl = len(*m.AppProtocol)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *EndpointSlice) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Endpoints) > 0 {\n\t\tfor _, e := range m.Endpoints {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Ports) > 0 {\n\t\tfor _, e := range m.Ports {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.AddressType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *EndpointSliceList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ForZone) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *Endpoint) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForDeprecatedTopology := make([]string, 0, len(this.DeprecatedTopology))\n\tfor k := range this.DeprecatedTopology {\n\t\tkeysForDeprecatedTopology = append(keysForDeprecatedTopology, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForDeprecatedTopology)\n\tmapStringForDeprecatedTopology := \"map[string]string{\"\n\tfor _, k := range keysForDeprecatedTopology {\n\t\tmapStringForDeprecatedTopology += fmt.Sprintf(\"%v: %v,\", k, this.DeprecatedTopology[k])\n\t}\n\tmapStringForDeprecatedTopology += \"}\"\n\ts := strings.Join([]string{`&Endpoint{`,\n\t\t`Addresses:` + fmt.Sprintf(\"%v\", this.Addresses) + `,`,\n\t\t`Conditions:` + strings.Replace(strings.Replace(this.Conditions.String(), \"EndpointConditions\", \"EndpointConditions\", 1), `&`, ``, 1) + `,`,\n\t\t`Hostname:` + valueToStringGenerated(this.Hostname) + `,`,\n\t\t`TargetRef:` + strings.Replace(fmt.Sprintf(\"%v\", this.TargetRef), \"ObjectReference\", \"v1.ObjectReference\", 1) + `,`,\n\t\t`DeprecatedTopology:` + mapStringForDeprecatedTopology + `,`,\n\t\t`NodeName:` + valueToStringGenerated(this.NodeName) + `,`,\n\t\t`Zone:` + valueToStringGenerated(this.Zone) + `,`,\n\t\t`Hints:` + strings.Replace(this.Hints.String(), \"EndpointHints\", \"EndpointHints\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EndpointConditions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&EndpointConditions{`,\n\t\t`Ready:` + valueToStringGenerated(this.Ready) + `,`,\n\t\t`Serving:` + valueToStringGenerated(this.Serving) + `,`,\n\t\t`Terminating:` + valueToStringGenerated(this.Terminating) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EndpointHints) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForForZones := \"[]ForZone{\"\n\tfor _, f := range this.ForZones {\n\t\trepeatedStringForForZones += strings.Replace(strings.Replace(f.String(), \"ForZone\", \"ForZone\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForForZones += \"}\"\n\ts := strings.Join([]string{`&EndpointHints{`,\n\t\t`ForZones:` + repeatedStringForForZones + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EndpointPort) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&EndpointPort{`,\n\t\t`Name:` + valueToStringGenerated(this.Name) + `,`,\n\t\t`Protocol:` + valueToStringGenerated(this.Protocol) + `,`,\n\t\t`Port:` + valueToStringGenerated(this.Port) + `,`,\n\t\t`AppProtocol:` + valueToStringGenerated(this.AppProtocol) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EndpointSlice) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForEndpoints := \"[]Endpoint{\"\n\tfor _, f := range this.Endpoints {\n\t\trepeatedStringForEndpoints += strings.Replace(strings.Replace(f.String(), \"Endpoint\", \"Endpoint\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForEndpoints += \"}\"\n\trepeatedStringForPorts := \"[]EndpointPort{\"\n\tfor _, f := range this.Ports {\n\t\trepeatedStringForPorts += strings.Replace(strings.Replace(f.String(), \"EndpointPort\", \"EndpointPort\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPorts += \"}\"\n\ts := strings.Join([]string{`&EndpointSlice{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v11.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Endpoints:` + repeatedStringForEndpoints + `,`,\n\t\t`Ports:` + repeatedStringForPorts + `,`,\n\t\t`AddressType:` + fmt.Sprintf(\"%v\", this.AddressType) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EndpointSliceList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]EndpointSlice{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"EndpointSlice\", \"EndpointSlice\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&EndpointSliceList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v11.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ForZone) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ForZone{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *Endpoint) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Endpoint: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Endpoint: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Addresses\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Addresses = append(m.Addresses, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Conditions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Hostname\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.Hostname = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.TargetRef == nil {\n\t\t\t\tm.TargetRef = &v1.ObjectReference{}\n\t\t\t}\n\t\t\tif err := m.TargetRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DeprecatedTopology\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.DeprecatedTopology == nil {\n\t\t\t\tm.DeprecatedTopology = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.DeprecatedTopology[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.NodeName = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Zone\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.Zone = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Hints\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Hints == nil {\n\t\t\t\tm.Hints = &EndpointHints{}\n\t\t\t}\n\t\t\tif err := m.Hints.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EndpointConditions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointConditions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointConditions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ready\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Ready = &b\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Serving\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Serving = &b\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Terminating\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Terminating = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EndpointHints) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointHints: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointHints: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ForZones\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ForZones = append(m.ForZones, ForZone{})\n\t\t\tif err := m.ForZones[len(m.ForZones)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EndpointPort) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointPort: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointPort: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.Name = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Protocol\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := k8s_io_api_core_v1.Protocol(dAtA[iNdEx:postIndex])\n\t\t\tm.Protocol = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Port\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Port = &v\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AppProtocol\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.AppProtocol = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EndpointSlice) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointSlice: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointSlice: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Endpoints\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Endpoints = append(m.Endpoints, Endpoint{})\n\t\t\tif err := m.Endpoints[len(m.Endpoints)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ports\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ports = append(m.Ports, EndpointPort{})\n\t\t\tif err := m.Ports[len(m.Ports)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AddressType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AddressType = AddressType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EndpointSliceList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointSliceList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointSliceList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, EndpointSlice{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ForZone) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ForZone: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ForZone: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/discovery/v1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.discovery.v1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/discovery/v1\";\n\n// Endpoint represents a single logical \"backend\" implementing a service.\nmessage Endpoint {\n  // addresses of this endpoint. The contents of this field are interpreted\n  // according to the corresponding EndpointSlice addressType field. Consumers\n  // must handle different types of addresses in the context of their own\n  // capabilities. This must contain at least one address but no more than\n  // 100. These are all assumed to be fungible and clients may choose to only\n  // use the first element. Refer to: https://issue.k8s.io/106267\n  // +listType=set\n  repeated string addresses = 1;\n\n  // conditions contains information about the current status of the endpoint.\n  optional EndpointConditions conditions = 2;\n\n  // hostname of this endpoint. This field may be used by consumers of\n  // endpoints to distinguish endpoints from each other (e.g. in DNS names).\n  // Multiple endpoints which use the same hostname should be considered\n  // fungible (e.g. multiple A values in DNS). Must be lowercase and pass DNS\n  // Label (RFC 1123) validation.\n  // +optional\n  optional string hostname = 3;\n\n  // targetRef is a reference to a Kubernetes object that represents this\n  // endpoint.\n  // +optional\n  optional .k8s.io.api.core.v1.ObjectReference targetRef = 4;\n\n  // deprecatedTopology contains topology information part of the v1beta1\n  // API. This field is deprecated, and will be removed when the v1beta1\n  // API is removed (no sooner than kubernetes v1.24).  While this field can\n  // hold values, it is not writable through the v1 API, and any attempts to\n  // write to it will be silently ignored. Topology information can be found\n  // in the zone and nodeName fields instead.\n  // +optional\n  map<string, string> deprecatedTopology = 5;\n\n  // nodeName represents the name of the Node hosting this endpoint. This can\n  // be used to determine endpoints local to a Node.\n  // +optional\n  optional string nodeName = 6;\n\n  // zone is the name of the Zone this endpoint exists in.\n  // +optional\n  optional string zone = 7;\n\n  // hints contains information associated with how an endpoint should be\n  // consumed.\n  // +optional\n  optional EndpointHints hints = 8;\n}\n\n// EndpointConditions represents the current condition of an endpoint.\nmessage EndpointConditions {\n  // ready indicates that this endpoint is prepared to receive traffic,\n  // according to whatever system is managing the endpoint. A nil value\n  // indicates an unknown state. In most cases consumers should interpret this\n  // unknown state as ready. For compatibility reasons, ready should never be\n  // \"true\" for terminating endpoints, except when the normal readiness\n  // behavior is being explicitly overridden, for example when the associated\n  // Service has set the publishNotReadyAddresses flag.\n  // +optional\n  optional bool ready = 1;\n\n  // serving is identical to ready except that it is set regardless of the\n  // terminating state of endpoints. This condition should be set to true for\n  // a ready endpoint that is terminating. If nil, consumers should defer to\n  // the ready condition.\n  // +optional\n  optional bool serving = 2;\n\n  // terminating indicates that this endpoint is terminating. A nil value\n  // indicates an unknown state. Consumers should interpret this unknown state\n  // to mean that the endpoint is not terminating.\n  // +optional\n  optional bool terminating = 3;\n}\n\n// EndpointHints provides hints describing how an endpoint should be consumed.\nmessage EndpointHints {\n  // forZones indicates the zone(s) this endpoint should be consumed by to\n  // enable topology aware routing.\n  // +listType=atomic\n  repeated ForZone forZones = 1;\n}\n\n// EndpointPort represents a Port used by an EndpointSlice\n// +structType=atomic\nmessage EndpointPort {\n  // name represents the name of this port. All ports in an EndpointSlice must have a unique name.\n  // If the EndpointSlice is derived from a Kubernetes service, this corresponds to the Service.ports[].name.\n  // Name must either be an empty string or pass DNS_LABEL validation:\n  // * must be no more than 63 characters long.\n  // * must consist of lower case alphanumeric characters or '-'.\n  // * must start and end with an alphanumeric character.\n  // Default is empty string.\n  optional string name = 1;\n\n  // protocol represents the IP protocol for this port.\n  // Must be UDP, TCP, or SCTP.\n  // Default is TCP.\n  optional string protocol = 2;\n\n  // port represents the port number of the endpoint.\n  // If this is not specified, ports are not restricted and must be\n  // interpreted in the context of the specific consumer.\n  optional int32 port = 3;\n\n  // The application protocol for this port.\n  // This is used as a hint for implementations to offer richer behavior for protocols that they understand.\n  // This field follows standard Kubernetes label syntax.\n  // Valid values are either:\n  //\n  // * Un-prefixed protocol names - reserved for IANA standard service names (as per\n  // RFC-6335 and https://www.iana.org/assignments/service-names).\n  //\n  // * Kubernetes-defined prefixed names:\n  //   * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior-\n  //   * 'kubernetes.io/ws'  - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455\n  //   * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455\n  //\n  // * Other protocols should use implementation-defined prefixed names such as\n  // mycompany.com/my-custom-protocol.\n  // +optional\n  optional string appProtocol = 4;\n}\n\n// EndpointSlice represents a subset of the endpoints that implement a service.\n// For a given service there may be multiple EndpointSlice objects, selected by\n// labels, which must be joined to produce the full set of endpoints.\nmessage EndpointSlice {\n  // Standard object's metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // addressType specifies the type of address carried by this EndpointSlice.\n  // All addresses in this slice must be the same type. This field is\n  // immutable after creation. The following address types are currently\n  // supported:\n  // * IPv4: Represents an IPv4 Address.\n  // * IPv6: Represents an IPv6 Address.\n  // * FQDN: Represents a Fully Qualified Domain Name.\n  optional string addressType = 4;\n\n  // endpoints is a list of unique endpoints in this slice. Each slice may\n  // include a maximum of 1000 endpoints.\n  // +listType=atomic\n  repeated Endpoint endpoints = 2;\n\n  // ports specifies the list of network ports exposed by each endpoint in\n  // this slice. Each port must have a unique name. When ports is empty, it\n  // indicates that there are no defined ports. When a port is defined with a\n  // nil port value, it indicates \"all ports\". Each slice may include a\n  // maximum of 100 ports.\n  // +optional\n  // +listType=atomic\n  repeated EndpointPort ports = 3;\n}\n\n// EndpointSliceList represents a list of endpoint slices\nmessage EndpointSliceList {\n  // Standard list metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of endpoint slices\n  repeated EndpointSlice items = 2;\n}\n\n// ForZone provides information about which zones should consume this endpoint.\nmessage ForZone {\n  // name represents the name of the zone.\n  optional string name = 1;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/discovery/v1/register.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name used in this package\nconst GroupName = \"discovery.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1\"}\n\n// Kind takes an unqualified kind and returns a Group qualified GroupKind\nfunc Kind(kind string) schema.GroupKind {\n\treturn SchemeGroupVersion.WithKind(kind).GroupKind()\n}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// SchemeBuilder is the scheme builder with scheme init functions to run for this API package\n\tSchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)\n\t// AddToScheme is a common registration function for mapping packaged scoped group & version keys to a scheme\n\tAddToScheme = SchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&EndpointSlice{},\n\t\t&EndpointSliceList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/discovery/v1/types.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.21\n\n// EndpointSlice represents a subset of the endpoints that implement a service.\n// For a given service there may be multiple EndpointSlice objects, selected by\n// labels, which must be joined to produce the full set of endpoints.\ntype EndpointSlice struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// addressType specifies the type of address carried by this EndpointSlice.\n\t// All addresses in this slice must be the same type. This field is\n\t// immutable after creation. The following address types are currently\n\t// supported:\n\t// * IPv4: Represents an IPv4 Address.\n\t// * IPv6: Represents an IPv6 Address.\n\t// * FQDN: Represents a Fully Qualified Domain Name.\n\tAddressType AddressType `json:\"addressType\" protobuf:\"bytes,4,rep,name=addressType\"`\n\n\t// endpoints is a list of unique endpoints in this slice. Each slice may\n\t// include a maximum of 1000 endpoints.\n\t// +listType=atomic\n\tEndpoints []Endpoint `json:\"endpoints\" protobuf:\"bytes,2,rep,name=endpoints\"`\n\n\t// ports specifies the list of network ports exposed by each endpoint in\n\t// this slice. Each port must have a unique name. When ports is empty, it\n\t// indicates that there are no defined ports. When a port is defined with a\n\t// nil port value, it indicates \"all ports\". Each slice may include a\n\t// maximum of 100 ports.\n\t// +optional\n\t// +listType=atomic\n\tPorts []EndpointPort `json:\"ports\" protobuf:\"bytes,3,rep,name=ports\"`\n}\n\n// AddressType represents the type of address referred to by an endpoint.\n// +enum\ntype AddressType string\n\nconst (\n\t// AddressTypeIPv4 represents an IPv4 Address.\n\tAddressTypeIPv4 = AddressType(v1.IPv4Protocol)\n\n\t// AddressTypeIPv6 represents an IPv6 Address.\n\tAddressTypeIPv6 = AddressType(v1.IPv6Protocol)\n\n\t// AddressTypeFQDN represents a FQDN.\n\tAddressTypeFQDN = AddressType(\"FQDN\")\n)\n\n// Endpoint represents a single logical \"backend\" implementing a service.\ntype Endpoint struct {\n\t// addresses of this endpoint. The contents of this field are interpreted\n\t// according to the corresponding EndpointSlice addressType field. Consumers\n\t// must handle different types of addresses in the context of their own\n\t// capabilities. This must contain at least one address but no more than\n\t// 100. These are all assumed to be fungible and clients may choose to only\n\t// use the first element. Refer to: https://issue.k8s.io/106267\n\t// +listType=set\n\tAddresses []string `json:\"addresses\" protobuf:\"bytes,1,rep,name=addresses\"`\n\n\t// conditions contains information about the current status of the endpoint.\n\tConditions EndpointConditions `json:\"conditions,omitempty\" protobuf:\"bytes,2,opt,name=conditions\"`\n\n\t// hostname of this endpoint. This field may be used by consumers of\n\t// endpoints to distinguish endpoints from each other (e.g. in DNS names).\n\t// Multiple endpoints which use the same hostname should be considered\n\t// fungible (e.g. multiple A values in DNS). Must be lowercase and pass DNS\n\t// Label (RFC 1123) validation.\n\t// +optional\n\tHostname *string `json:\"hostname,omitempty\" protobuf:\"bytes,3,opt,name=hostname\"`\n\n\t// targetRef is a reference to a Kubernetes object that represents this\n\t// endpoint.\n\t// +optional\n\tTargetRef *v1.ObjectReference `json:\"targetRef,omitempty\" protobuf:\"bytes,4,opt,name=targetRef\"`\n\n\t// deprecatedTopology contains topology information part of the v1beta1\n\t// API. This field is deprecated, and will be removed when the v1beta1\n\t// API is removed (no sooner than kubernetes v1.24).  While this field can\n\t// hold values, it is not writable through the v1 API, and any attempts to\n\t// write to it will be silently ignored. Topology information can be found\n\t// in the zone and nodeName fields instead.\n\t// +optional\n\tDeprecatedTopology map[string]string `json:\"deprecatedTopology,omitempty\" protobuf:\"bytes,5,opt,name=deprecatedTopology\"`\n\n\t// nodeName represents the name of the Node hosting this endpoint. This can\n\t// be used to determine endpoints local to a Node.\n\t// +optional\n\tNodeName *string `json:\"nodeName,omitempty\" protobuf:\"bytes,6,opt,name=nodeName\"`\n\n\t// zone is the name of the Zone this endpoint exists in.\n\t// +optional\n\tZone *string `json:\"zone,omitempty\" protobuf:\"bytes,7,opt,name=zone\"`\n\n\t// hints contains information associated with how an endpoint should be\n\t// consumed.\n\t// +optional\n\tHints *EndpointHints `json:\"hints,omitempty\" protobuf:\"bytes,8,opt,name=hints\"`\n}\n\n// EndpointConditions represents the current condition of an endpoint.\ntype EndpointConditions struct {\n\t// ready indicates that this endpoint is prepared to receive traffic,\n\t// according to whatever system is managing the endpoint. A nil value\n\t// indicates an unknown state. In most cases consumers should interpret this\n\t// unknown state as ready. For compatibility reasons, ready should never be\n\t// \"true\" for terminating endpoints, except when the normal readiness\n\t// behavior is being explicitly overridden, for example when the associated\n\t// Service has set the publishNotReadyAddresses flag.\n\t// +optional\n\tReady *bool `json:\"ready,omitempty\" protobuf:\"bytes,1,name=ready\"`\n\n\t// serving is identical to ready except that it is set regardless of the\n\t// terminating state of endpoints. This condition should be set to true for\n\t// a ready endpoint that is terminating. If nil, consumers should defer to\n\t// the ready condition.\n\t// +optional\n\tServing *bool `json:\"serving,omitempty\" protobuf:\"bytes,2,name=serving\"`\n\n\t// terminating indicates that this endpoint is terminating. A nil value\n\t// indicates an unknown state. Consumers should interpret this unknown state\n\t// to mean that the endpoint is not terminating.\n\t// +optional\n\tTerminating *bool `json:\"terminating,omitempty\" protobuf:\"bytes,3,name=terminating\"`\n}\n\n// EndpointHints provides hints describing how an endpoint should be consumed.\ntype EndpointHints struct {\n\t// forZones indicates the zone(s) this endpoint should be consumed by to\n\t// enable topology aware routing.\n\t// +listType=atomic\n\tForZones []ForZone `json:\"forZones,omitempty\" protobuf:\"bytes,1,name=forZones\"`\n}\n\n// ForZone provides information about which zones should consume this endpoint.\ntype ForZone struct {\n\t// name represents the name of the zone.\n\tName string `json:\"name\" protobuf:\"bytes,1,name=name\"`\n}\n\n// EndpointPort represents a Port used by an EndpointSlice\n// +structType=atomic\ntype EndpointPort struct {\n\t// name represents the name of this port. All ports in an EndpointSlice must have a unique name.\n\t// If the EndpointSlice is derived from a Kubernetes service, this corresponds to the Service.ports[].name.\n\t// Name must either be an empty string or pass DNS_LABEL validation:\n\t// * must be no more than 63 characters long.\n\t// * must consist of lower case alphanumeric characters or '-'.\n\t// * must start and end with an alphanumeric character.\n\t// Default is empty string.\n\tName *string `json:\"name,omitempty\" protobuf:\"bytes,1,name=name\"`\n\n\t// protocol represents the IP protocol for this port.\n\t// Must be UDP, TCP, or SCTP.\n\t// Default is TCP.\n\tProtocol *v1.Protocol `json:\"protocol,omitempty\" protobuf:\"bytes,2,name=protocol\"`\n\n\t// port represents the port number of the endpoint.\n\t// If this is not specified, ports are not restricted and must be\n\t// interpreted in the context of the specific consumer.\n\tPort *int32 `json:\"port,omitempty\" protobuf:\"bytes,3,opt,name=port\"`\n\n\t// The application protocol for this port.\n\t// This is used as a hint for implementations to offer richer behavior for protocols that they understand.\n\t// This field follows standard Kubernetes label syntax.\n\t// Valid values are either:\n\t//\n\t// * Un-prefixed protocol names - reserved for IANA standard service names (as per\n\t// RFC-6335 and https://www.iana.org/assignments/service-names).\n\t//\n\t// * Kubernetes-defined prefixed names:\n\t//   * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior-\n\t//   * 'kubernetes.io/ws'  - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455\n\t//   * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455\n\t//\n\t// * Other protocols should use implementation-defined prefixed names such as\n\t// mycompany.com/my-custom-protocol.\n\t// +optional\n\tAppProtocol *string `json:\"appProtocol,omitempty\" protobuf:\"bytes,4,name=appProtocol\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.21\n\n// EndpointSliceList represents a list of endpoint slices\ntype EndpointSliceList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of endpoint slices\n\tItems []EndpointSlice `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/discovery/v1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_Endpoint = map[string]string{\n\t\"\":                   \"Endpoint represents a single logical \\\"backend\\\" implementing a service.\",\n\t\"addresses\":          \"addresses of this endpoint. The contents of this field are interpreted according to the corresponding EndpointSlice addressType field. Consumers must handle different types of addresses in the context of their own capabilities. This must contain at least one address but no more than 100. These are all assumed to be fungible and clients may choose to only use the first element. Refer to: https://issue.k8s.io/106267\",\n\t\"conditions\":         \"conditions contains information about the current status of the endpoint.\",\n\t\"hostname\":           \"hostname of this endpoint. This field may be used by consumers of endpoints to distinguish endpoints from each other (e.g. in DNS names). Multiple endpoints which use the same hostname should be considered fungible (e.g. multiple A values in DNS). Must be lowercase and pass DNS Label (RFC 1123) validation.\",\n\t\"targetRef\":          \"targetRef is a reference to a Kubernetes object that represents this endpoint.\",\n\t\"deprecatedTopology\": \"deprecatedTopology contains topology information part of the v1beta1 API. This field is deprecated, and will be removed when the v1beta1 API is removed (no sooner than kubernetes v1.24).  While this field can hold values, it is not writable through the v1 API, and any attempts to write to it will be silently ignored. Topology information can be found in the zone and nodeName fields instead.\",\n\t\"nodeName\":           \"nodeName represents the name of the Node hosting this endpoint. This can be used to determine endpoints local to a Node.\",\n\t\"zone\":               \"zone is the name of the Zone this endpoint exists in.\",\n\t\"hints\":              \"hints contains information associated with how an endpoint should be consumed.\",\n}\n\nfunc (Endpoint) SwaggerDoc() map[string]string {\n\treturn map_Endpoint\n}\n\nvar map_EndpointConditions = map[string]string{\n\t\"\":            \"EndpointConditions represents the current condition of an endpoint.\",\n\t\"ready\":       \"ready indicates that this endpoint is prepared to receive traffic, according to whatever system is managing the endpoint. A nil value indicates an unknown state. In most cases consumers should interpret this unknown state as ready. For compatibility reasons, ready should never be \\\"true\\\" for terminating endpoints, except when the normal readiness behavior is being explicitly overridden, for example when the associated Service has set the publishNotReadyAddresses flag.\",\n\t\"serving\":     \"serving is identical to ready except that it is set regardless of the terminating state of endpoints. This condition should be set to true for a ready endpoint that is terminating. If nil, consumers should defer to the ready condition.\",\n\t\"terminating\": \"terminating indicates that this endpoint is terminating. A nil value indicates an unknown state. Consumers should interpret this unknown state to mean that the endpoint is not terminating.\",\n}\n\nfunc (EndpointConditions) SwaggerDoc() map[string]string {\n\treturn map_EndpointConditions\n}\n\nvar map_EndpointHints = map[string]string{\n\t\"\":         \"EndpointHints provides hints describing how an endpoint should be consumed.\",\n\t\"forZones\": \"forZones indicates the zone(s) this endpoint should be consumed by to enable topology aware routing.\",\n}\n\nfunc (EndpointHints) SwaggerDoc() map[string]string {\n\treturn map_EndpointHints\n}\n\nvar map_EndpointPort = map[string]string{\n\t\"\":            \"EndpointPort represents a Port used by an EndpointSlice\",\n\t\"name\":        \"name represents the name of this port. All ports in an EndpointSlice must have a unique name. If the EndpointSlice is derived from a Kubernetes service, this corresponds to the Service.ports[].name. Name must either be an empty string or pass DNS_LABEL validation: * must be no more than 63 characters long. * must consist of lower case alphanumeric characters or '-'. * must start and end with an alphanumeric character. Default is empty string.\",\n\t\"protocol\":    \"protocol represents the IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.\",\n\t\"port\":        \"port represents the port number of the endpoint. If this is not specified, ports are not restricted and must be interpreted in the context of the specific consumer.\",\n\t\"appProtocol\": \"The application protocol for this port. This is used as a hint for implementations to offer richer behavior for protocols that they understand. This field follows standard Kubernetes label syntax. Valid values are either:\\n\\n* Un-prefixed protocol names - reserved for IANA standard service names (as per RFC-6335 and https://www.iana.org/assignments/service-names).\\n\\n* Kubernetes-defined prefixed names:\\n  * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior-\\n  * 'kubernetes.io/ws'  - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455\\n  * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455\\n\\n* Other protocols should use implementation-defined prefixed names such as mycompany.com/my-custom-protocol.\",\n}\n\nfunc (EndpointPort) SwaggerDoc() map[string]string {\n\treturn map_EndpointPort\n}\n\nvar map_EndpointSlice = map[string]string{\n\t\"\":            \"EndpointSlice represents a subset of the endpoints that implement a service. For a given service there may be multiple EndpointSlice objects, selected by labels, which must be joined to produce the full set of endpoints.\",\n\t\"metadata\":    \"Standard object's metadata.\",\n\t\"addressType\": \"addressType specifies the type of address carried by this EndpointSlice. All addresses in this slice must be the same type. This field is immutable after creation. The following address types are currently supported: * IPv4: Represents an IPv4 Address. * IPv6: Represents an IPv6 Address. * FQDN: Represents a Fully Qualified Domain Name.\",\n\t\"endpoints\":   \"endpoints is a list of unique endpoints in this slice. Each slice may include a maximum of 1000 endpoints.\",\n\t\"ports\":       \"ports specifies the list of network ports exposed by each endpoint in this slice. Each port must have a unique name. When ports is empty, it indicates that there are no defined ports. When a port is defined with a nil port value, it indicates \\\"all ports\\\". Each slice may include a maximum of 100 ports.\",\n}\n\nfunc (EndpointSlice) SwaggerDoc() map[string]string {\n\treturn map_EndpointSlice\n}\n\nvar map_EndpointSliceList = map[string]string{\n\t\"\":         \"EndpointSliceList represents a list of endpoint slices\",\n\t\"metadata\": \"Standard list metadata.\",\n\t\"items\":    \"items is the list of endpoint slices\",\n}\n\nfunc (EndpointSliceList) SwaggerDoc() map[string]string {\n\treturn map_EndpointSliceList\n}\n\nvar map_ForZone = map[string]string{\n\t\"\":     \"ForZone provides information about which zones should consume this endpoint.\",\n\t\"name\": \"name represents the name of the zone.\",\n}\n\nfunc (ForZone) SwaggerDoc() map[string]string {\n\treturn map_ForZone\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/discovery/v1/well_known_labels.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nconst (\n\t// LabelServiceName is used to indicate the name of a Kubernetes service.\n\tLabelServiceName = \"kubernetes.io/service-name\"\n\t// LabelManagedBy is used to indicate the controller or entity that manages\n\t// an EndpointSlice. This label aims to enable different EndpointSlice\n\t// objects to be managed by different controllers or entities within the\n\t// same cluster. It is highly recommended to configure this label for all\n\t// EndpointSlices.\n\tLabelManagedBy = \"endpointslice.kubernetes.io/managed-by\"\n\t// LabelSkipMirror can be set to true on an Endpoints resource to indicate\n\t// that the EndpointSliceMirroring controller should not mirror this\n\t// resource with EndpointSlices.\n\tLabelSkipMirror = \"endpointslice.kubernetes.io/skip-mirror\"\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/discovery/v1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Endpoint) DeepCopyInto(out *Endpoint) {\n\t*out = *in\n\tif in.Addresses != nil {\n\t\tin, out := &in.Addresses, &out.Addresses\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tin.Conditions.DeepCopyInto(&out.Conditions)\n\tif in.Hostname != nil {\n\t\tin, out := &in.Hostname, &out.Hostname\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.TargetRef != nil {\n\t\tin, out := &in.TargetRef, &out.TargetRef\n\t\t*out = new(corev1.ObjectReference)\n\t\t**out = **in\n\t}\n\tif in.DeprecatedTopology != nil {\n\t\tin, out := &in.DeprecatedTopology, &out.DeprecatedTopology\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.NodeName != nil {\n\t\tin, out := &in.NodeName, &out.NodeName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.Zone != nil {\n\t\tin, out := &in.Zone, &out.Zone\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.Hints != nil {\n\t\tin, out := &in.Hints, &out.Hints\n\t\t*out = new(EndpointHints)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Endpoint.\nfunc (in *Endpoint) DeepCopy() *Endpoint {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Endpoint)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EndpointConditions) DeepCopyInto(out *EndpointConditions) {\n\t*out = *in\n\tif in.Ready != nil {\n\t\tin, out := &in.Ready, &out.Ready\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.Serving != nil {\n\t\tin, out := &in.Serving, &out.Serving\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.Terminating != nil {\n\t\tin, out := &in.Terminating, &out.Terminating\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointConditions.\nfunc (in *EndpointConditions) DeepCopy() *EndpointConditions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EndpointConditions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EndpointHints) DeepCopyInto(out *EndpointHints) {\n\t*out = *in\n\tif in.ForZones != nil {\n\t\tin, out := &in.ForZones, &out.ForZones\n\t\t*out = make([]ForZone, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointHints.\nfunc (in *EndpointHints) DeepCopy() *EndpointHints {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EndpointHints)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EndpointPort) DeepCopyInto(out *EndpointPort) {\n\t*out = *in\n\tif in.Name != nil {\n\t\tin, out := &in.Name, &out.Name\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.Protocol != nil {\n\t\tin, out := &in.Protocol, &out.Protocol\n\t\t*out = new(corev1.Protocol)\n\t\t**out = **in\n\t}\n\tif in.Port != nil {\n\t\tin, out := &in.Port, &out.Port\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.AppProtocol != nil {\n\t\tin, out := &in.AppProtocol, &out.AppProtocol\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointPort.\nfunc (in *EndpointPort) DeepCopy() *EndpointPort {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EndpointPort)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EndpointSlice) DeepCopyInto(out *EndpointSlice) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Endpoints != nil {\n\t\tin, out := &in.Endpoints, &out.Endpoints\n\t\t*out = make([]Endpoint, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Ports != nil {\n\t\tin, out := &in.Ports, &out.Ports\n\t\t*out = make([]EndpointPort, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointSlice.\nfunc (in *EndpointSlice) DeepCopy() *EndpointSlice {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EndpointSlice)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *EndpointSlice) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EndpointSliceList) DeepCopyInto(out *EndpointSliceList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]EndpointSlice, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointSliceList.\nfunc (in *EndpointSliceList) DeepCopy() *EndpointSliceList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EndpointSliceList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *EndpointSliceList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ForZone) DeepCopyInto(out *ForZone) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ForZone.\nfunc (in *ForZone) DeepCopy() *ForZone {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ForZone)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/discovery/v1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *EndpointSlice) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 21\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *EndpointSliceList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 21\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/discovery/v1beta1/doc.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n// +groupName=discovery.k8s.io\n\npackage v1beta1 // import \"k8s.io/api/discovery/v1beta1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/discovery/v1beta1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/discovery/v1beta1/generated.proto\n\npackage v1beta1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\tv1 \"k8s.io/api/core/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *Endpoint) Reset()      { *m = Endpoint{} }\nfunc (*Endpoint) ProtoMessage() {}\nfunc (*Endpoint) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6555bad15de200e0, []int{0}\n}\nfunc (m *Endpoint) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Endpoint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Endpoint) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Endpoint.Merge(m, src)\n}\nfunc (m *Endpoint) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Endpoint) XXX_DiscardUnknown() {\n\txxx_messageInfo_Endpoint.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Endpoint proto.InternalMessageInfo\n\nfunc (m *EndpointConditions) Reset()      { *m = EndpointConditions{} }\nfunc (*EndpointConditions) ProtoMessage() {}\nfunc (*EndpointConditions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6555bad15de200e0, []int{1}\n}\nfunc (m *EndpointConditions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EndpointConditions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EndpointConditions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EndpointConditions.Merge(m, src)\n}\nfunc (m *EndpointConditions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EndpointConditions) XXX_DiscardUnknown() {\n\txxx_messageInfo_EndpointConditions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EndpointConditions proto.InternalMessageInfo\n\nfunc (m *EndpointHints) Reset()      { *m = EndpointHints{} }\nfunc (*EndpointHints) ProtoMessage() {}\nfunc (*EndpointHints) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6555bad15de200e0, []int{2}\n}\nfunc (m *EndpointHints) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EndpointHints) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EndpointHints) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EndpointHints.Merge(m, src)\n}\nfunc (m *EndpointHints) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EndpointHints) XXX_DiscardUnknown() {\n\txxx_messageInfo_EndpointHints.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EndpointHints proto.InternalMessageInfo\n\nfunc (m *EndpointPort) Reset()      { *m = EndpointPort{} }\nfunc (*EndpointPort) ProtoMessage() {}\nfunc (*EndpointPort) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6555bad15de200e0, []int{3}\n}\nfunc (m *EndpointPort) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EndpointPort) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EndpointPort) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EndpointPort.Merge(m, src)\n}\nfunc (m *EndpointPort) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EndpointPort) XXX_DiscardUnknown() {\n\txxx_messageInfo_EndpointPort.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EndpointPort proto.InternalMessageInfo\n\nfunc (m *EndpointSlice) Reset()      { *m = EndpointSlice{} }\nfunc (*EndpointSlice) ProtoMessage() {}\nfunc (*EndpointSlice) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6555bad15de200e0, []int{4}\n}\nfunc (m *EndpointSlice) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EndpointSlice) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EndpointSlice) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EndpointSlice.Merge(m, src)\n}\nfunc (m *EndpointSlice) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EndpointSlice) XXX_DiscardUnknown() {\n\txxx_messageInfo_EndpointSlice.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EndpointSlice proto.InternalMessageInfo\n\nfunc (m *EndpointSliceList) Reset()      { *m = EndpointSliceList{} }\nfunc (*EndpointSliceList) ProtoMessage() {}\nfunc (*EndpointSliceList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6555bad15de200e0, []int{5}\n}\nfunc (m *EndpointSliceList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EndpointSliceList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EndpointSliceList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EndpointSliceList.Merge(m, src)\n}\nfunc (m *EndpointSliceList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EndpointSliceList) XXX_DiscardUnknown() {\n\txxx_messageInfo_EndpointSliceList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EndpointSliceList proto.InternalMessageInfo\n\nfunc (m *ForZone) Reset()      { *m = ForZone{} }\nfunc (*ForZone) ProtoMessage() {}\nfunc (*ForZone) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_6555bad15de200e0, []int{6}\n}\nfunc (m *ForZone) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ForZone) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ForZone) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ForZone.Merge(m, src)\n}\nfunc (m *ForZone) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ForZone) XXX_DiscardUnknown() {\n\txxx_messageInfo_ForZone.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ForZone proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*Endpoint)(nil), \"k8s.io.api.discovery.v1beta1.Endpoint\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.discovery.v1beta1.Endpoint.TopologyEntry\")\n\tproto.RegisterType((*EndpointConditions)(nil), \"k8s.io.api.discovery.v1beta1.EndpointConditions\")\n\tproto.RegisterType((*EndpointHints)(nil), \"k8s.io.api.discovery.v1beta1.EndpointHints\")\n\tproto.RegisterType((*EndpointPort)(nil), \"k8s.io.api.discovery.v1beta1.EndpointPort\")\n\tproto.RegisterType((*EndpointSlice)(nil), \"k8s.io.api.discovery.v1beta1.EndpointSlice\")\n\tproto.RegisterType((*EndpointSliceList)(nil), \"k8s.io.api.discovery.v1beta1.EndpointSliceList\")\n\tproto.RegisterType((*ForZone)(nil), \"k8s.io.api.discovery.v1beta1.ForZone\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/discovery/v1beta1/generated.proto\", fileDescriptor_6555bad15de200e0)\n}\n\nvar fileDescriptor_6555bad15de200e0 = []byte{\n\t// 857 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x55, 0x4f, 0x6f, 0xe4, 0x34,\n\t0x14, 0x9f, 0x74, 0x1a, 0x9a, 0x78, 0x5a, 0xb1, 0x6b, 0x71, 0x18, 0x95, 0x2a, 0x19, 0x05, 0x2d,\n\t0x1a, 0x51, 0x48, 0x68, 0xb5, 0x42, 0x2b, 0x38, 0x35, 0xb0, 0xb0, 0x48, 0xcb, 0x6e, 0xe5, 0x56,\n\t0x42, 0x5a, 0x71, 0xc0, 0x93, 0xb8, 0x19, 0xd3, 0x26, 0x8e, 0x62, 0x77, 0xa4, 0xb9, 0xf1, 0x0d,\n\t0xe0, 0xb3, 0xf0, 0x15, 0x90, 0x50, 0x8f, 0x7b, 0xdc, 0x53, 0xc4, 0x84, 0x6f, 0xb1, 0x27, 0x64,\n\t0xc7, 0xf9, 0x33, 0x0c, 0x94, 0xb9, 0xc5, 0x3f, 0xbf, 0xdf, 0xef, 0xbd, 0xf7, 0x7b, 0xb6, 0x03,\n\t0x3e, 0xbe, 0x7e, 0xc2, 0x7d, 0xca, 0x02, 0x9c, 0xd3, 0x20, 0xa6, 0x3c, 0x62, 0x0b, 0x52, 0x2c,\n\t0x83, 0xc5, 0xc9, 0x8c, 0x08, 0x7c, 0x12, 0x24, 0x24, 0x23, 0x05, 0x16, 0x24, 0xf6, 0xf3, 0x82,\n\t0x09, 0x06, 0x8f, 0xea, 0x68, 0x1f, 0xe7, 0xd4, 0x6f, 0xa3, 0x7d, 0x1d, 0x7d, 0xf8, 0x49, 0x42,\n\t0xc5, 0xfc, 0x76, 0xe6, 0x47, 0x2c, 0x0d, 0x12, 0x96, 0xb0, 0x40, 0x91, 0x66, 0xb7, 0x57, 0x6a,\n\t0xa5, 0x16, 0xea, 0xab, 0x16, 0x3b, 0xf4, 0x7a, 0xa9, 0x23, 0x56, 0x90, 0x60, 0xb1, 0x91, 0xf0,\n\t0xf0, 0x71, 0x17, 0x93, 0xe2, 0x68, 0x4e, 0x33, 0x59, 0x5d, 0x7e, 0x9d, 0x48, 0x80, 0x07, 0x29,\n\t0x11, 0xf8, 0xdf, 0x58, 0xc1, 0x7f, 0xb1, 0x8a, 0xdb, 0x4c, 0xd0, 0x94, 0x6c, 0x10, 0x3e, 0xfb,\n\t0x3f, 0x02, 0x8f, 0xe6, 0x24, 0xc5, 0xff, 0xe4, 0x79, 0xbf, 0xed, 0x02, 0xeb, 0x69, 0x16, 0xe7,\n\t0x8c, 0x66, 0x02, 0x1e, 0x03, 0x1b, 0xc7, 0x71, 0x41, 0x38, 0x27, 0x7c, 0x6c, 0x4c, 0x86, 0x53,\n\t0x3b, 0x3c, 0xa8, 0x4a, 0xd7, 0x3e, 0x6b, 0x40, 0xd4, 0xed, 0xc3, 0x18, 0x80, 0x88, 0x65, 0x31,\n\t0x15, 0x94, 0x65, 0x7c, 0xbc, 0x33, 0x31, 0xa6, 0xa3, 0xd3, 0x4f, 0xfd, 0xfb, 0xec, 0xf5, 0x9b,\n\t0x44, 0x5f, 0xb6, 0xbc, 0x10, 0xde, 0x95, 0xee, 0xa0, 0x2a, 0x5d, 0xd0, 0x61, 0xa8, 0xa7, 0x0b,\n\t0xa7, 0xc0, 0x9a, 0x33, 0x2e, 0x32, 0x9c, 0x92, 0xf1, 0x70, 0x62, 0x4c, 0xed, 0x70, 0xbf, 0x2a,\n\t0x5d, 0xeb, 0x99, 0xc6, 0x50, 0xbb, 0x0b, 0xcf, 0x81, 0x2d, 0x70, 0x91, 0x10, 0x81, 0xc8, 0xd5,\n\t0x78, 0x57, 0x95, 0xf3, 0x41, 0xbf, 0x1c, 0x39, 0x20, 0x7f, 0x71, 0xe2, 0xbf, 0x9c, 0xfd, 0x44,\n\t0x22, 0x19, 0x44, 0x0a, 0x92, 0x45, 0xa4, 0xee, 0xf0, 0xb2, 0x61, 0xa2, 0x4e, 0x04, 0xce, 0x80,\n\t0x25, 0x58, 0xce, 0x6e, 0x58, 0xb2, 0x1c, 0x9b, 0x93, 0xe1, 0x74, 0x74, 0xfa, 0x78, 0xbb, 0xfe,\n\t0xfc, 0x4b, 0x4d, 0x7b, 0x9a, 0x89, 0x62, 0x19, 0x3e, 0xd0, 0x3d, 0x5a, 0x0d, 0x8c, 0x5a, 0x5d,\n\t0xd9, 0x5f, 0xc6, 0x62, 0xf2, 0x42, 0xf6, 0xf7, 0x4e, 0xd7, 0xdf, 0x0b, 0x8d, 0xa1, 0x76, 0x17,\n\t0x3e, 0x07, 0xe6, 0x9c, 0x66, 0x82, 0x8f, 0xf7, 0x54, 0x6f, 0xc7, 0xdb, 0x95, 0xf2, 0x4c, 0x52,\n\t0x42, 0xbb, 0x2a, 0x5d, 0x53, 0x7d, 0xa2, 0x5a, 0xe4, 0xf0, 0x0b, 0x70, 0xb0, 0x56, 0x24, 0x7c,\n\t0x00, 0x86, 0xd7, 0x64, 0x39, 0x36, 0x64, 0x0d, 0x48, 0x7e, 0xc2, 0xf7, 0x80, 0xb9, 0xc0, 0x37,\n\t0xb7, 0x44, 0xcd, 0xd6, 0x46, 0xf5, 0xe2, 0xf3, 0x9d, 0x27, 0x86, 0xf7, 0x8b, 0x01, 0xe0, 0xe6,\n\t0x2c, 0xa1, 0x0b, 0xcc, 0x82, 0xe0, 0xb8, 0x16, 0xb1, 0xea, 0xa4, 0x48, 0x02, 0xa8, 0xc6, 0xe1,\n\t0x23, 0xb0, 0xc7, 0x49, 0xb1, 0xa0, 0x59, 0xa2, 0x34, 0xad, 0x70, 0x54, 0x95, 0xee, 0xde, 0x45,\n\t0x0d, 0xa1, 0x66, 0x0f, 0x9e, 0x80, 0x91, 0x20, 0x45, 0x4a, 0x33, 0x2c, 0x64, 0xe8, 0x50, 0x85,\n\t0xbe, 0x5b, 0x95, 0xee, 0xe8, 0xb2, 0x83, 0x51, 0x3f, 0xc6, 0x8b, 0xc1, 0xc1, 0x5a, 0xc7, 0xf0,\n\t0x02, 0x58, 0x57, 0xac, 0x78, 0xc5, 0x32, 0x7d, 0x92, 0x47, 0xa7, 0x8f, 0xee, 0x37, 0xec, 0xeb,\n\t0x3a, 0xba, 0x1b, 0x96, 0x06, 0x38, 0x6a, 0x85, 0xbc, 0x3f, 0x0c, 0xb0, 0xdf, 0xa4, 0x39, 0x67,\n\t0x85, 0x80, 0x47, 0x60, 0x57, 0x9d, 0x4c, 0xe5, 0x5a, 0x68, 0x55, 0xa5, 0xbb, 0xab, 0xa6, 0xa6,\n\t0x50, 0xf8, 0x0d, 0xb0, 0xd4, 0x25, 0x8b, 0xd8, 0x4d, 0xed, 0x61, 0x78, 0x2c, 0x85, 0xcf, 0x35,\n\t0xf6, 0xb6, 0x74, 0xdf, 0xdf, 0x7c, 0x40, 0xfc, 0x66, 0x1b, 0xb5, 0x64, 0x99, 0x26, 0x67, 0x85,\n\t0x50, 0x4e, 0x98, 0x75, 0x1a, 0x99, 0x1e, 0x29, 0x54, 0xda, 0x85, 0xf3, 0xbc, 0xa1, 0xa9, 0xa3,\n\t0x6f, 0xd7, 0x76, 0x9d, 0x75, 0x30, 0xea, 0xc7, 0x78, 0xab, 0x9d, 0xce, 0xaf, 0x8b, 0x1b, 0x1a,\n\t0x11, 0xf8, 0x23, 0xb0, 0xe4, 0x5b, 0x14, 0x63, 0x81, 0x55, 0x37, 0xeb, 0x77, 0xb9, 0x7d, 0x52,\n\t0xfc, 0xfc, 0x3a, 0x91, 0x00, 0xf7, 0x65, 0x74, 0x77, 0x9d, 0xbe, 0x23, 0x02, 0x77, 0x77, 0xb9,\n\t0xc3, 0x50, 0xab, 0x0a, 0xbf, 0x02, 0x23, 0xfd, 0x78, 0x5c, 0x2e, 0x73, 0xa2, 0xcb, 0xf4, 0x34,\n\t0x65, 0x74, 0xd6, 0x6d, 0xbd, 0x5d, 0x5f, 0xa2, 0x3e, 0x0d, 0x7e, 0x0f, 0x6c, 0xa2, 0x0b, 0x97,\n\t0x8f, 0x8e, 0x1c, 0xec, 0x87, 0xdb, 0xdd, 0x84, 0xf0, 0xa1, 0xce, 0x65, 0x37, 0x08, 0x47, 0x9d,\n\t0x16, 0x7c, 0x09, 0x4c, 0xe9, 0x26, 0x1f, 0x0f, 0x95, 0xe8, 0x47, 0xdb, 0x89, 0xca, 0x31, 0x84,\n\t0x07, 0x5a, 0xd8, 0x94, 0x2b, 0x8e, 0x6a, 0x1d, 0xef, 0x77, 0x03, 0x3c, 0x5c, 0xf3, 0xf8, 0x39,\n\t0xe5, 0x02, 0xfe, 0xb0, 0xe1, 0xb3, 0xbf, 0x9d, 0xcf, 0x92, 0xad, 0x5c, 0x6e, 0x0f, 0x68, 0x83,\n\t0xf4, 0x3c, 0x3e, 0x07, 0x26, 0x15, 0x24, 0x6d, 0x9c, 0xd9, 0xf2, 0x8d, 0x50, 0xd5, 0x75, 0x5d,\n\t0x7c, 0x2b, 0x15, 0x50, 0x2d, 0xe4, 0x1d, 0x83, 0x3d, 0x7d, 0x11, 0xe0, 0x64, 0xed, 0xb0, 0xef,\n\t0xeb, 0xf0, 0xde, 0x81, 0x0f, 0xc3, 0xbb, 0x95, 0x33, 0x78, 0xbd, 0x72, 0x06, 0x6f, 0x56, 0xce,\n\t0xe0, 0xe7, 0xca, 0x31, 0xee, 0x2a, 0xc7, 0x78, 0x5d, 0x39, 0xc6, 0x9b, 0xca, 0x31, 0xfe, 0xac,\n\t0x1c, 0xe3, 0xd7, 0xbf, 0x9c, 0xc1, 0xab, 0xa3, 0xfb, 0x7e, 0xd8, 0x7f, 0x07, 0x00, 0x00, 0xff,\n\t0xff, 0x1c, 0xe6, 0x20, 0x06, 0xcf, 0x07, 0x00, 0x00,\n}\n\nfunc (m *Endpoint) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Endpoint) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Endpoint) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Hints != nil {\n\t\t{\n\t\t\tsize, err := m.Hints.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif m.NodeName != nil {\n\t\ti -= len(*m.NodeName)\n\t\tcopy(dAtA[i:], *m.NodeName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.NodeName)))\n\t\ti--\n\t\tdAtA[i] = 0x32\n\t}\n\tif len(m.Topology) > 0 {\n\t\tkeysForTopology := make([]string, 0, len(m.Topology))\n\t\tfor k := range m.Topology {\n\t\t\tkeysForTopology = append(keysForTopology, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForTopology)\n\t\tfor iNdEx := len(keysForTopology) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Topology[string(keysForTopology[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForTopology[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForTopology[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForTopology[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\tif m.TargetRef != nil {\n\t\t{\n\t\t\tsize, err := m.TargetRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Hostname != nil {\n\t\ti -= len(*m.Hostname)\n\t\tcopy(dAtA[i:], *m.Hostname)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Hostname)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\t{\n\t\tsize, err := m.Conditions.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\tif len(m.Addresses) > 0 {\n\t\tfor iNdEx := len(m.Addresses) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Addresses[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Addresses[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Addresses[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EndpointConditions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EndpointConditions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EndpointConditions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Terminating != nil {\n\t\ti--\n\t\tif *m.Terminating {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif m.Serving != nil {\n\t\ti--\n\t\tif *m.Serving {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif m.Ready != nil {\n\t\ti--\n\t\tif *m.Ready {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EndpointHints) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EndpointHints) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EndpointHints) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ForZones) > 0 {\n\t\tfor iNdEx := len(m.ForZones) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ForZones[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EndpointPort) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EndpointPort) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EndpointPort) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.AppProtocol != nil {\n\t\ti -= len(*m.AppProtocol)\n\t\tcopy(dAtA[i:], *m.AppProtocol)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.AppProtocol)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Port != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Port))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif m.Protocol != nil {\n\t\ti -= len(*m.Protocol)\n\t\tcopy(dAtA[i:], *m.Protocol)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Protocol)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Name != nil {\n\t\ti -= len(*m.Name)\n\t\tcopy(dAtA[i:], *m.Name)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Name)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EndpointSlice) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EndpointSlice) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EndpointSlice) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.AddressType)\n\tcopy(dAtA[i:], m.AddressType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.AddressType)))\n\ti--\n\tdAtA[i] = 0x22\n\tif len(m.Ports) > 0 {\n\t\tfor iNdEx := len(m.Ports) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ports[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.Endpoints) > 0 {\n\t\tfor iNdEx := len(m.Endpoints) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Endpoints[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EndpointSliceList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EndpointSliceList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EndpointSliceList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ForZone) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ForZone) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ForZone) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *Endpoint) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Addresses) > 0 {\n\t\tfor _, s := range m.Addresses {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = m.Conditions.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Hostname != nil {\n\t\tl = len(*m.Hostname)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.TargetRef != nil {\n\t\tl = m.TargetRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.Topology) > 0 {\n\t\tfor k, v := range m.Topology {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif m.NodeName != nil {\n\t\tl = len(*m.NodeName)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Hints != nil {\n\t\tl = m.Hints.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *EndpointConditions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Ready != nil {\n\t\tn += 2\n\t}\n\tif m.Serving != nil {\n\t\tn += 2\n\t}\n\tif m.Terminating != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *EndpointHints) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.ForZones) > 0 {\n\t\tfor _, e := range m.ForZones {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *EndpointPort) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Name != nil {\n\t\tl = len(*m.Name)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Protocol != nil {\n\t\tl = len(*m.Protocol)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Port != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Port))\n\t}\n\tif m.AppProtocol != nil {\n\t\tl = len(*m.AppProtocol)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *EndpointSlice) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Endpoints) > 0 {\n\t\tfor _, e := range m.Endpoints {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Ports) > 0 {\n\t\tfor _, e := range m.Ports {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.AddressType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *EndpointSliceList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ForZone) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *Endpoint) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForTopology := make([]string, 0, len(this.Topology))\n\tfor k := range this.Topology {\n\t\tkeysForTopology = append(keysForTopology, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForTopology)\n\tmapStringForTopology := \"map[string]string{\"\n\tfor _, k := range keysForTopology {\n\t\tmapStringForTopology += fmt.Sprintf(\"%v: %v,\", k, this.Topology[k])\n\t}\n\tmapStringForTopology += \"}\"\n\ts := strings.Join([]string{`&Endpoint{`,\n\t\t`Addresses:` + fmt.Sprintf(\"%v\", this.Addresses) + `,`,\n\t\t`Conditions:` + strings.Replace(strings.Replace(this.Conditions.String(), \"EndpointConditions\", \"EndpointConditions\", 1), `&`, ``, 1) + `,`,\n\t\t`Hostname:` + valueToStringGenerated(this.Hostname) + `,`,\n\t\t`TargetRef:` + strings.Replace(fmt.Sprintf(\"%v\", this.TargetRef), \"ObjectReference\", \"v1.ObjectReference\", 1) + `,`,\n\t\t`Topology:` + mapStringForTopology + `,`,\n\t\t`NodeName:` + valueToStringGenerated(this.NodeName) + `,`,\n\t\t`Hints:` + strings.Replace(this.Hints.String(), \"EndpointHints\", \"EndpointHints\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EndpointConditions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&EndpointConditions{`,\n\t\t`Ready:` + valueToStringGenerated(this.Ready) + `,`,\n\t\t`Serving:` + valueToStringGenerated(this.Serving) + `,`,\n\t\t`Terminating:` + valueToStringGenerated(this.Terminating) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EndpointHints) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForForZones := \"[]ForZone{\"\n\tfor _, f := range this.ForZones {\n\t\trepeatedStringForForZones += strings.Replace(strings.Replace(f.String(), \"ForZone\", \"ForZone\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForForZones += \"}\"\n\ts := strings.Join([]string{`&EndpointHints{`,\n\t\t`ForZones:` + repeatedStringForForZones + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EndpointPort) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&EndpointPort{`,\n\t\t`Name:` + valueToStringGenerated(this.Name) + `,`,\n\t\t`Protocol:` + valueToStringGenerated(this.Protocol) + `,`,\n\t\t`Port:` + valueToStringGenerated(this.Port) + `,`,\n\t\t`AppProtocol:` + valueToStringGenerated(this.AppProtocol) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EndpointSlice) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForEndpoints := \"[]Endpoint{\"\n\tfor _, f := range this.Endpoints {\n\t\trepeatedStringForEndpoints += strings.Replace(strings.Replace(f.String(), \"Endpoint\", \"Endpoint\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForEndpoints += \"}\"\n\trepeatedStringForPorts := \"[]EndpointPort{\"\n\tfor _, f := range this.Ports {\n\t\trepeatedStringForPorts += strings.Replace(strings.Replace(f.String(), \"EndpointPort\", \"EndpointPort\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPorts += \"}\"\n\ts := strings.Join([]string{`&EndpointSlice{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v11.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Endpoints:` + repeatedStringForEndpoints + `,`,\n\t\t`Ports:` + repeatedStringForPorts + `,`,\n\t\t`AddressType:` + fmt.Sprintf(\"%v\", this.AddressType) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EndpointSliceList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]EndpointSlice{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"EndpointSlice\", \"EndpointSlice\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&EndpointSliceList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v11.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ForZone) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ForZone{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *Endpoint) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Endpoint: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Endpoint: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Addresses\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Addresses = append(m.Addresses, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Conditions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Hostname\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.Hostname = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.TargetRef == nil {\n\t\t\t\tm.TargetRef = &v1.ObjectReference{}\n\t\t\t}\n\t\t\tif err := m.TargetRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Topology\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Topology == nil {\n\t\t\t\tm.Topology = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Topology[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.NodeName = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Hints\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Hints == nil {\n\t\t\t\tm.Hints = &EndpointHints{}\n\t\t\t}\n\t\t\tif err := m.Hints.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EndpointConditions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointConditions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointConditions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ready\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Ready = &b\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Serving\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Serving = &b\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Terminating\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Terminating = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EndpointHints) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointHints: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointHints: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ForZones\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ForZones = append(m.ForZones, ForZone{})\n\t\t\tif err := m.ForZones[len(m.ForZones)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EndpointPort) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointPort: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointPort: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.Name = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Protocol\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := k8s_io_api_core_v1.Protocol(dAtA[iNdEx:postIndex])\n\t\t\tm.Protocol = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Port\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Port = &v\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AppProtocol\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.AppProtocol = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EndpointSlice) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointSlice: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointSlice: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Endpoints\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Endpoints = append(m.Endpoints, Endpoint{})\n\t\t\tif err := m.Endpoints[len(m.Endpoints)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ports\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ports = append(m.Ports, EndpointPort{})\n\t\t\tif err := m.Ports[len(m.Ports)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AddressType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AddressType = AddressType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EndpointSliceList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointSliceList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EndpointSliceList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, EndpointSlice{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ForZone) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ForZone: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ForZone: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/discovery/v1beta1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.discovery.v1beta1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/discovery/v1beta1\";\n\n// Endpoint represents a single logical \"backend\" implementing a service.\nmessage Endpoint {\n  // addresses of this endpoint. The contents of this field are interpreted\n  // according to the corresponding EndpointSlice addressType field. Consumers\n  // must handle different types of addresses in the context of their own\n  // capabilities. This must contain at least one address but no more than\n  // 100. These are all assumed to be fungible and clients may choose to only\n  // use the first element. Refer to: https://issue.k8s.io/106267\n  // +listType=set\n  repeated string addresses = 1;\n\n  // conditions contains information about the current status of the endpoint.\n  optional EndpointConditions conditions = 2;\n\n  // hostname of this endpoint. This field may be used by consumers of\n  // endpoints to distinguish endpoints from each other (e.g. in DNS names).\n  // Multiple endpoints which use the same hostname should be considered\n  // fungible (e.g. multiple A values in DNS). Must be lowercase and pass DNS\n  // Label (RFC 1123) validation.\n  // +optional\n  optional string hostname = 3;\n\n  // targetRef is a reference to a Kubernetes object that represents this\n  // endpoint.\n  // +optional\n  optional .k8s.io.api.core.v1.ObjectReference targetRef = 4;\n\n  // topology contains arbitrary topology information associated with the\n  // endpoint. These key/value pairs must conform with the label format.\n  // https://kubernetes.io/docs/concepts/overview/working-with-objects/labels\n  // Topology may include a maximum of 16 key/value pairs. This includes, but\n  // is not limited to the following well known keys:\n  // * kubernetes.io/hostname: the value indicates the hostname of the node\n  //   where the endpoint is located. This should match the corresponding\n  //   node label.\n  // * topology.kubernetes.io/zone: the value indicates the zone where the\n  //   endpoint is located. This should match the corresponding node label.\n  // * topology.kubernetes.io/region: the value indicates the region where the\n  //   endpoint is located. This should match the corresponding node label.\n  // This field is deprecated and will be removed in future api versions.\n  // +optional\n  map<string, string> topology = 5;\n\n  // nodeName represents the name of the Node hosting this endpoint. This can\n  // be used to determine endpoints local to a Node.\n  // +optional\n  optional string nodeName = 6;\n\n  // hints contains information associated with how an endpoint should be\n  // consumed.\n  // +featureGate=TopologyAwareHints\n  // +optional\n  optional EndpointHints hints = 7;\n}\n\n// EndpointConditions represents the current condition of an endpoint.\nmessage EndpointConditions {\n  // ready indicates that this endpoint is prepared to receive traffic,\n  // according to whatever system is managing the endpoint. A nil value\n  // indicates an unknown state. In most cases consumers should interpret this\n  // unknown state as ready. For compatibility reasons, ready should never be\n  // \"true\" for terminating endpoints.\n  // +optional\n  optional bool ready = 1;\n\n  // serving is identical to ready except that it is set regardless of the\n  // terminating state of endpoints. This condition should be set to true for\n  // a ready endpoint that is terminating. If nil, consumers should defer to\n  // the ready condition.\n  // +optional\n  optional bool serving = 2;\n\n  // terminating indicates that this endpoint is terminating. A nil value\n  // indicates an unknown state. Consumers should interpret this unknown state\n  // to mean that the endpoint is not terminating.\n  // +optional\n  optional bool terminating = 3;\n}\n\n// EndpointHints provides hints describing how an endpoint should be consumed.\nmessage EndpointHints {\n  // forZones indicates the zone(s) this endpoint should be consumed by to\n  // enable topology aware routing. May contain a maximum of 8 entries.\n  // +listType=atomic\n  repeated ForZone forZones = 1;\n}\n\n// EndpointPort represents a Port used by an EndpointSlice\nmessage EndpointPort {\n  // name represents the name of this port. All ports in an EndpointSlice must have a unique name.\n  // If the EndpointSlice is derived from a Kubernetes service, this corresponds to the Service.ports[].name.\n  // Name must either be an empty string or pass DNS_LABEL validation:\n  // * must be no more than 63 characters long.\n  // * must consist of lower case alphanumeric characters or '-'.\n  // * must start and end with an alphanumeric character.\n  // Default is empty string.\n  optional string name = 1;\n\n  // protocol represents the IP protocol for this port.\n  // Must be UDP, TCP, or SCTP.\n  // Default is TCP.\n  optional string protocol = 2;\n\n  // port represents the port number of the endpoint.\n  // If this is not specified, ports are not restricted and must be\n  // interpreted in the context of the specific consumer.\n  optional int32 port = 3;\n\n  // appProtocol represents the application protocol for this port.\n  // This field follows standard Kubernetes label syntax.\n  // Un-prefixed names are reserved for IANA standard service names (as per\n  // RFC-6335 and https://www.iana.org/assignments/service-names).\n  // Non-standard protocols should use prefixed names such as\n  // mycompany.com/my-custom-protocol.\n  // +optional\n  optional string appProtocol = 4;\n}\n\n// EndpointSlice represents a subset of the endpoints that implement a service.\n// For a given service there may be multiple EndpointSlice objects, selected by\n// labels, which must be joined to produce the full set of endpoints.\nmessage EndpointSlice {\n  // Standard object's metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // addressType specifies the type of address carried by this EndpointSlice.\n  // All addresses in this slice must be the same type. This field is\n  // immutable after creation. The following address types are currently\n  // supported:\n  // * IPv4: Represents an IPv4 Address.\n  // * IPv6: Represents an IPv6 Address.\n  // * FQDN: Represents a Fully Qualified Domain Name.\n  optional string addressType = 4;\n\n  // endpoints is a list of unique endpoints in this slice. Each slice may\n  // include a maximum of 1000 endpoints.\n  // +listType=atomic\n  repeated Endpoint endpoints = 2;\n\n  // ports specifies the list of network ports exposed by each endpoint in\n  // this slice. Each port must have a unique name. When ports is empty, it\n  // indicates that there are no defined ports. When a port is defined with a\n  // nil port value, it indicates \"all ports\". Each slice may include a\n  // maximum of 100 ports.\n  // +optional\n  // +listType=atomic\n  repeated EndpointPort ports = 3;\n}\n\n// EndpointSliceList represents a list of endpoint slices\nmessage EndpointSliceList {\n  // Standard list metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of endpoint slices\n  repeated EndpointSlice items = 2;\n}\n\n// ForZone provides information about which zones should consume this endpoint.\nmessage ForZone {\n  // name represents the name of the zone.\n  optional string name = 1;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/discovery/v1beta1/register.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name used in this package\nconst GroupName = \"discovery.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta1\"}\n\n// Kind takes an unqualified kind and returns a Group qualified GroupKind\nfunc Kind(kind string) schema.GroupKind {\n\treturn SchemeGroupVersion.WithKind(kind).GroupKind()\n}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// SchemeBuilder is the scheme builder with scheme init functions to run for this API package\n\tSchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)\n\t// AddToScheme is a common registration function for mapping packaged scoped group & version keys to a scheme\n\tAddToScheme = SchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&EndpointSlice{},\n\t\t&EndpointSliceList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/discovery/v1beta1/types.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.16\n// +k8s:prerelease-lifecycle-gen:deprecated=1.21\n// +k8s:prerelease-lifecycle-gen:removed=1.25\n// +k8s:prerelease-lifecycle-gen:replacement=discovery.k8s.io,v1,EndpointSlice\n\n// EndpointSlice represents a subset of the endpoints that implement a service.\n// For a given service there may be multiple EndpointSlice objects, selected by\n// labels, which must be joined to produce the full set of endpoints.\ntype EndpointSlice struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// addressType specifies the type of address carried by this EndpointSlice.\n\t// All addresses in this slice must be the same type. This field is\n\t// immutable after creation. The following address types are currently\n\t// supported:\n\t// * IPv4: Represents an IPv4 Address.\n\t// * IPv6: Represents an IPv6 Address.\n\t// * FQDN: Represents a Fully Qualified Domain Name.\n\tAddressType AddressType `json:\"addressType\" protobuf:\"bytes,4,rep,name=addressType\"`\n\n\t// endpoints is a list of unique endpoints in this slice. Each slice may\n\t// include a maximum of 1000 endpoints.\n\t// +listType=atomic\n\tEndpoints []Endpoint `json:\"endpoints\" protobuf:\"bytes,2,rep,name=endpoints\"`\n\n\t// ports specifies the list of network ports exposed by each endpoint in\n\t// this slice. Each port must have a unique name. When ports is empty, it\n\t// indicates that there are no defined ports. When a port is defined with a\n\t// nil port value, it indicates \"all ports\". Each slice may include a\n\t// maximum of 100 ports.\n\t// +optional\n\t// +listType=atomic\n\tPorts []EndpointPort `json:\"ports\" protobuf:\"bytes,3,rep,name=ports\"`\n}\n\n// AddressType represents the type of address referred to by an endpoint.\ntype AddressType string\n\nconst (\n\t// AddressTypeIPv4 represents an IPv4 Address.\n\tAddressTypeIPv4 = AddressType(v1.IPv4Protocol)\n\n\t// AddressTypeIPv6 represents an IPv6 Address.\n\tAddressTypeIPv6 = AddressType(v1.IPv6Protocol)\n\n\t// AddressTypeFQDN represents a FQDN.\n\tAddressTypeFQDN = AddressType(\"FQDN\")\n)\n\n// Endpoint represents a single logical \"backend\" implementing a service.\ntype Endpoint struct {\n\t// addresses of this endpoint. The contents of this field are interpreted\n\t// according to the corresponding EndpointSlice addressType field. Consumers\n\t// must handle different types of addresses in the context of their own\n\t// capabilities. This must contain at least one address but no more than\n\t// 100. These are all assumed to be fungible and clients may choose to only\n\t// use the first element. Refer to: https://issue.k8s.io/106267\n\t// +listType=set\n\tAddresses []string `json:\"addresses\" protobuf:\"bytes,1,rep,name=addresses\"`\n\n\t// conditions contains information about the current status of the endpoint.\n\tConditions EndpointConditions `json:\"conditions,omitempty\" protobuf:\"bytes,2,opt,name=conditions\"`\n\n\t// hostname of this endpoint. This field may be used by consumers of\n\t// endpoints to distinguish endpoints from each other (e.g. in DNS names).\n\t// Multiple endpoints which use the same hostname should be considered\n\t// fungible (e.g. multiple A values in DNS). Must be lowercase and pass DNS\n\t// Label (RFC 1123) validation.\n\t// +optional\n\tHostname *string `json:\"hostname,omitempty\" protobuf:\"bytes,3,opt,name=hostname\"`\n\n\t// targetRef is a reference to a Kubernetes object that represents this\n\t// endpoint.\n\t// +optional\n\tTargetRef *v1.ObjectReference `json:\"targetRef,omitempty\" protobuf:\"bytes,4,opt,name=targetRef\"`\n\n\t// topology contains arbitrary topology information associated with the\n\t// endpoint. These key/value pairs must conform with the label format.\n\t// https://kubernetes.io/docs/concepts/overview/working-with-objects/labels\n\t// Topology may include a maximum of 16 key/value pairs. This includes, but\n\t// is not limited to the following well known keys:\n\t// * kubernetes.io/hostname: the value indicates the hostname of the node\n\t//   where the endpoint is located. This should match the corresponding\n\t//   node label.\n\t// * topology.kubernetes.io/zone: the value indicates the zone where the\n\t//   endpoint is located. This should match the corresponding node label.\n\t// * topology.kubernetes.io/region: the value indicates the region where the\n\t//   endpoint is located. This should match the corresponding node label.\n\t// This field is deprecated and will be removed in future api versions.\n\t// +optional\n\tTopology map[string]string `json:\"topology,omitempty\" protobuf:\"bytes,5,opt,name=topology\"`\n\n\t// nodeName represents the name of the Node hosting this endpoint. This can\n\t// be used to determine endpoints local to a Node.\n\t// +optional\n\tNodeName *string `json:\"nodeName,omitempty\" protobuf:\"bytes,6,opt,name=nodeName\"`\n\n\t// hints contains information associated with how an endpoint should be\n\t// consumed.\n\t// +featureGate=TopologyAwareHints\n\t// +optional\n\tHints *EndpointHints `json:\"hints,omitempty\" protobuf:\"bytes,7,opt,name=hints\"`\n}\n\n// EndpointConditions represents the current condition of an endpoint.\ntype EndpointConditions struct {\n\t// ready indicates that this endpoint is prepared to receive traffic,\n\t// according to whatever system is managing the endpoint. A nil value\n\t// indicates an unknown state. In most cases consumers should interpret this\n\t// unknown state as ready. For compatibility reasons, ready should never be\n\t// \"true\" for terminating endpoints.\n\t// +optional\n\tReady *bool `json:\"ready,omitempty\" protobuf:\"bytes,1,name=ready\"`\n\n\t// serving is identical to ready except that it is set regardless of the\n\t// terminating state of endpoints. This condition should be set to true for\n\t// a ready endpoint that is terminating. If nil, consumers should defer to\n\t// the ready condition.\n\t// +optional\n\tServing *bool `json:\"serving,omitempty\" protobuf:\"bytes,2,name=serving\"`\n\n\t// terminating indicates that this endpoint is terminating. A nil value\n\t// indicates an unknown state. Consumers should interpret this unknown state\n\t// to mean that the endpoint is not terminating.\n\t// +optional\n\tTerminating *bool `json:\"terminating,omitempty\" protobuf:\"bytes,3,name=terminating\"`\n}\n\n// EndpointHints provides hints describing how an endpoint should be consumed.\ntype EndpointHints struct {\n\t// forZones indicates the zone(s) this endpoint should be consumed by to\n\t// enable topology aware routing. May contain a maximum of 8 entries.\n\t// +listType=atomic\n\tForZones []ForZone `json:\"forZones,omitempty\" protobuf:\"bytes,1,name=forZones\"`\n}\n\n// ForZone provides information about which zones should consume this endpoint.\ntype ForZone struct {\n\t// name represents the name of the zone.\n\tName string `json:\"name\" protobuf:\"bytes,1,name=name\"`\n}\n\n// EndpointPort represents a Port used by an EndpointSlice\ntype EndpointPort struct {\n\t// name represents the name of this port. All ports in an EndpointSlice must have a unique name.\n\t// If the EndpointSlice is derived from a Kubernetes service, this corresponds to the Service.ports[].name.\n\t// Name must either be an empty string or pass DNS_LABEL validation:\n\t// * must be no more than 63 characters long.\n\t// * must consist of lower case alphanumeric characters or '-'.\n\t// * must start and end with an alphanumeric character.\n\t// Default is empty string.\n\tName *string `json:\"name,omitempty\" protobuf:\"bytes,1,name=name\"`\n\n\t// protocol represents the IP protocol for this port.\n\t// Must be UDP, TCP, or SCTP.\n\t// Default is TCP.\n\tProtocol *v1.Protocol `json:\"protocol,omitempty\" protobuf:\"bytes,2,name=protocol\"`\n\n\t// port represents the port number of the endpoint.\n\t// If this is not specified, ports are not restricted and must be\n\t// interpreted in the context of the specific consumer.\n\tPort *int32 `json:\"port,omitempty\" protobuf:\"bytes,3,opt,name=port\"`\n\n\t// appProtocol represents the application protocol for this port.\n\t// This field follows standard Kubernetes label syntax.\n\t// Un-prefixed names are reserved for IANA standard service names (as per\n\t// RFC-6335 and https://www.iana.org/assignments/service-names).\n\t// Non-standard protocols should use prefixed names such as\n\t// mycompany.com/my-custom-protocol.\n\t// +optional\n\tAppProtocol *string `json:\"appProtocol,omitempty\" protobuf:\"bytes,4,name=appProtocol\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.16\n// +k8s:prerelease-lifecycle-gen:deprecated=1.21\n// +k8s:prerelease-lifecycle-gen:removed=1.25\n// +k8s:prerelease-lifecycle-gen:replacement=discovery.k8s.io,v1,EndpointSlice\n\n// EndpointSliceList represents a list of endpoint slices\ntype EndpointSliceList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of endpoint slices\n\tItems []EndpointSlice `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/discovery/v1beta1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_Endpoint = map[string]string{\n\t\"\":           \"Endpoint represents a single logical \\\"backend\\\" implementing a service.\",\n\t\"addresses\":  \"addresses of this endpoint. The contents of this field are interpreted according to the corresponding EndpointSlice addressType field. Consumers must handle different types of addresses in the context of their own capabilities. This must contain at least one address but no more than 100. These are all assumed to be fungible and clients may choose to only use the first element. Refer to: https://issue.k8s.io/106267\",\n\t\"conditions\": \"conditions contains information about the current status of the endpoint.\",\n\t\"hostname\":   \"hostname of this endpoint. This field may be used by consumers of endpoints to distinguish endpoints from each other (e.g. in DNS names). Multiple endpoints which use the same hostname should be considered fungible (e.g. multiple A values in DNS). Must be lowercase and pass DNS Label (RFC 1123) validation.\",\n\t\"targetRef\":  \"targetRef is a reference to a Kubernetes object that represents this endpoint.\",\n\t\"topology\":   \"topology contains arbitrary topology information associated with the endpoint. These key/value pairs must conform with the label format. https://kubernetes.io/docs/concepts/overview/working-with-objects/labels Topology may include a maximum of 16 key/value pairs. This includes, but is not limited to the following well known keys: * kubernetes.io/hostname: the value indicates the hostname of the node\\n  where the endpoint is located. This should match the corresponding\\n  node label.\\n* topology.kubernetes.io/zone: the value indicates the zone where the\\n  endpoint is located. This should match the corresponding node label.\\n* topology.kubernetes.io/region: the value indicates the region where the\\n  endpoint is located. This should match the corresponding node label.\\nThis field is deprecated and will be removed in future api versions.\",\n\t\"nodeName\":   \"nodeName represents the name of the Node hosting this endpoint. This can be used to determine endpoints local to a Node.\",\n\t\"hints\":      \"hints contains information associated with how an endpoint should be consumed.\",\n}\n\nfunc (Endpoint) SwaggerDoc() map[string]string {\n\treturn map_Endpoint\n}\n\nvar map_EndpointConditions = map[string]string{\n\t\"\":            \"EndpointConditions represents the current condition of an endpoint.\",\n\t\"ready\":       \"ready indicates that this endpoint is prepared to receive traffic, according to whatever system is managing the endpoint. A nil value indicates an unknown state. In most cases consumers should interpret this unknown state as ready. For compatibility reasons, ready should never be \\\"true\\\" for terminating endpoints.\",\n\t\"serving\":     \"serving is identical to ready except that it is set regardless of the terminating state of endpoints. This condition should be set to true for a ready endpoint that is terminating. If nil, consumers should defer to the ready condition.\",\n\t\"terminating\": \"terminating indicates that this endpoint is terminating. A nil value indicates an unknown state. Consumers should interpret this unknown state to mean that the endpoint is not terminating.\",\n}\n\nfunc (EndpointConditions) SwaggerDoc() map[string]string {\n\treturn map_EndpointConditions\n}\n\nvar map_EndpointHints = map[string]string{\n\t\"\":         \"EndpointHints provides hints describing how an endpoint should be consumed.\",\n\t\"forZones\": \"forZones indicates the zone(s) this endpoint should be consumed by to enable topology aware routing. May contain a maximum of 8 entries.\",\n}\n\nfunc (EndpointHints) SwaggerDoc() map[string]string {\n\treturn map_EndpointHints\n}\n\nvar map_EndpointPort = map[string]string{\n\t\"\":            \"EndpointPort represents a Port used by an EndpointSlice\",\n\t\"name\":        \"name represents the name of this port. All ports in an EndpointSlice must have a unique name. If the EndpointSlice is derived from a Kubernetes service, this corresponds to the Service.ports[].name. Name must either be an empty string or pass DNS_LABEL validation: * must be no more than 63 characters long. * must consist of lower case alphanumeric characters or '-'. * must start and end with an alphanumeric character. Default is empty string.\",\n\t\"protocol\":    \"protocol represents the IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.\",\n\t\"port\":        \"port represents the port number of the endpoint. If this is not specified, ports are not restricted and must be interpreted in the context of the specific consumer.\",\n\t\"appProtocol\": \"appProtocol represents the application protocol for this port. This field follows standard Kubernetes label syntax. Un-prefixed names are reserved for IANA standard service names (as per RFC-6335 and https://www.iana.org/assignments/service-names). Non-standard protocols should use prefixed names such as mycompany.com/my-custom-protocol.\",\n}\n\nfunc (EndpointPort) SwaggerDoc() map[string]string {\n\treturn map_EndpointPort\n}\n\nvar map_EndpointSlice = map[string]string{\n\t\"\":            \"EndpointSlice represents a subset of the endpoints that implement a service. For a given service there may be multiple EndpointSlice objects, selected by labels, which must be joined to produce the full set of endpoints.\",\n\t\"metadata\":    \"Standard object's metadata.\",\n\t\"addressType\": \"addressType specifies the type of address carried by this EndpointSlice. All addresses in this slice must be the same type. This field is immutable after creation. The following address types are currently supported: * IPv4: Represents an IPv4 Address. * IPv6: Represents an IPv6 Address. * FQDN: Represents a Fully Qualified Domain Name.\",\n\t\"endpoints\":   \"endpoints is a list of unique endpoints in this slice. Each slice may include a maximum of 1000 endpoints.\",\n\t\"ports\":       \"ports specifies the list of network ports exposed by each endpoint in this slice. Each port must have a unique name. When ports is empty, it indicates that there are no defined ports. When a port is defined with a nil port value, it indicates \\\"all ports\\\". Each slice may include a maximum of 100 ports.\",\n}\n\nfunc (EndpointSlice) SwaggerDoc() map[string]string {\n\treturn map_EndpointSlice\n}\n\nvar map_EndpointSliceList = map[string]string{\n\t\"\":         \"EndpointSliceList represents a list of endpoint slices\",\n\t\"metadata\": \"Standard list metadata.\",\n\t\"items\":    \"items is the list of endpoint slices\",\n}\n\nfunc (EndpointSliceList) SwaggerDoc() map[string]string {\n\treturn map_EndpointSliceList\n}\n\nvar map_ForZone = map[string]string{\n\t\"\":     \"ForZone provides information about which zones should consume this endpoint.\",\n\t\"name\": \"name represents the name of the zone.\",\n}\n\nfunc (ForZone) SwaggerDoc() map[string]string {\n\treturn map_ForZone\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/discovery/v1beta1/well_known_labels.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nconst (\n\t// LabelServiceName is used to indicate the name of a Kubernetes service.\n\tLabelServiceName = \"kubernetes.io/service-name\"\n\t// LabelManagedBy is used to indicate the controller or entity that manages\n\t// an EndpointSlice. This label aims to enable different EndpointSlice\n\t// objects to be managed by different controllers or entities within the\n\t// same cluster. It is highly recommended to configure this label for all\n\t// EndpointSlices.\n\tLabelManagedBy = \"endpointslice.kubernetes.io/managed-by\"\n\t// LabelSkipMirror can be set to true on an Endpoints resource to indicate\n\t// that the EndpointSliceMirroring controller should not mirror this\n\t// resource with EndpointSlices.\n\tLabelSkipMirror = \"endpointslice.kubernetes.io/skip-mirror\"\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/discovery/v1beta1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Endpoint) DeepCopyInto(out *Endpoint) {\n\t*out = *in\n\tif in.Addresses != nil {\n\t\tin, out := &in.Addresses, &out.Addresses\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tin.Conditions.DeepCopyInto(&out.Conditions)\n\tif in.Hostname != nil {\n\t\tin, out := &in.Hostname, &out.Hostname\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.TargetRef != nil {\n\t\tin, out := &in.TargetRef, &out.TargetRef\n\t\t*out = new(v1.ObjectReference)\n\t\t**out = **in\n\t}\n\tif in.Topology != nil {\n\t\tin, out := &in.Topology, &out.Topology\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.NodeName != nil {\n\t\tin, out := &in.NodeName, &out.NodeName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.Hints != nil {\n\t\tin, out := &in.Hints, &out.Hints\n\t\t*out = new(EndpointHints)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Endpoint.\nfunc (in *Endpoint) DeepCopy() *Endpoint {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Endpoint)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EndpointConditions) DeepCopyInto(out *EndpointConditions) {\n\t*out = *in\n\tif in.Ready != nil {\n\t\tin, out := &in.Ready, &out.Ready\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.Serving != nil {\n\t\tin, out := &in.Serving, &out.Serving\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.Terminating != nil {\n\t\tin, out := &in.Terminating, &out.Terminating\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointConditions.\nfunc (in *EndpointConditions) DeepCopy() *EndpointConditions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EndpointConditions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EndpointHints) DeepCopyInto(out *EndpointHints) {\n\t*out = *in\n\tif in.ForZones != nil {\n\t\tin, out := &in.ForZones, &out.ForZones\n\t\t*out = make([]ForZone, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointHints.\nfunc (in *EndpointHints) DeepCopy() *EndpointHints {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EndpointHints)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EndpointPort) DeepCopyInto(out *EndpointPort) {\n\t*out = *in\n\tif in.Name != nil {\n\t\tin, out := &in.Name, &out.Name\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.Protocol != nil {\n\t\tin, out := &in.Protocol, &out.Protocol\n\t\t*out = new(v1.Protocol)\n\t\t**out = **in\n\t}\n\tif in.Port != nil {\n\t\tin, out := &in.Port, &out.Port\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.AppProtocol != nil {\n\t\tin, out := &in.AppProtocol, &out.AppProtocol\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointPort.\nfunc (in *EndpointPort) DeepCopy() *EndpointPort {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EndpointPort)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EndpointSlice) DeepCopyInto(out *EndpointSlice) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Endpoints != nil {\n\t\tin, out := &in.Endpoints, &out.Endpoints\n\t\t*out = make([]Endpoint, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Ports != nil {\n\t\tin, out := &in.Ports, &out.Ports\n\t\t*out = make([]EndpointPort, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointSlice.\nfunc (in *EndpointSlice) DeepCopy() *EndpointSlice {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EndpointSlice)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *EndpointSlice) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EndpointSliceList) DeepCopyInto(out *EndpointSliceList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]EndpointSlice, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointSliceList.\nfunc (in *EndpointSliceList) DeepCopy() *EndpointSliceList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EndpointSliceList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *EndpointSliceList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ForZone) DeepCopyInto(out *ForZone) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ForZone.\nfunc (in *ForZone) DeepCopy() *ForZone {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ForZone)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/discovery/v1beta1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *EndpointSlice) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *EndpointSlice) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 21\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *EndpointSlice) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"discovery.k8s.io\", Version: \"v1\", Kind: \"EndpointSlice\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *EndpointSlice) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 25\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *EndpointSliceList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *EndpointSliceList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 21\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *EndpointSliceList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"discovery.k8s.io\", Version: \"v1\", Kind: \"EndpointSlice\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *EndpointSliceList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 25\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/events/v1/doc.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n// +groupName=events.k8s.io\n\npackage v1 // import \"k8s.io/api/events/v1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/events/v1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/events/v1/generated.proto\n\npackage v1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tv11 \"k8s.io/api/core/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *Event) Reset()      { *m = Event{} }\nfunc (*Event) ProtoMessage() {}\nfunc (*Event) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_d3a3e1495c224e47, []int{0}\n}\nfunc (m *Event) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Event) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Event) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Event.Merge(m, src)\n}\nfunc (m *Event) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Event) XXX_DiscardUnknown() {\n\txxx_messageInfo_Event.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Event proto.InternalMessageInfo\n\nfunc (m *EventList) Reset()      { *m = EventList{} }\nfunc (*EventList) ProtoMessage() {}\nfunc (*EventList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_d3a3e1495c224e47, []int{1}\n}\nfunc (m *EventList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EventList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EventList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EventList.Merge(m, src)\n}\nfunc (m *EventList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EventList) XXX_DiscardUnknown() {\n\txxx_messageInfo_EventList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EventList proto.InternalMessageInfo\n\nfunc (m *EventSeries) Reset()      { *m = EventSeries{} }\nfunc (*EventSeries) ProtoMessage() {}\nfunc (*EventSeries) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_d3a3e1495c224e47, []int{2}\n}\nfunc (m *EventSeries) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EventSeries) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EventSeries) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EventSeries.Merge(m, src)\n}\nfunc (m *EventSeries) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EventSeries) XXX_DiscardUnknown() {\n\txxx_messageInfo_EventSeries.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EventSeries proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*Event)(nil), \"k8s.io.api.events.v1.Event\")\n\tproto.RegisterType((*EventList)(nil), \"k8s.io.api.events.v1.EventList\")\n\tproto.RegisterType((*EventSeries)(nil), \"k8s.io.api.events.v1.EventSeries\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/events/v1/generated.proto\", fileDescriptor_d3a3e1495c224e47)\n}\n\nvar fileDescriptor_d3a3e1495c224e47 = []byte{\n\t// 759 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x55, 0x4f, 0x4f, 0xdb, 0x48,\n\t0x14, 0x8f, 0x81, 0x04, 0x32, 0xe1, 0x4f, 0x18, 0x90, 0x98, 0x05, 0xc9, 0xc9, 0x86, 0xd5, 0x2a,\n\t0x5a, 0x69, 0xed, 0x05, 0xad, 0x56, 0xab, 0x3d, 0x2d, 0x26, 0xec, 0x8a, 0x0a, 0x8a, 0x34, 0x70,\n\t0xaa, 0x7a, 0x60, 0xe2, 0x3c, 0x8c, 0x4b, 0xec, 0xb1, 0xc6, 0x93, 0x48, 0xdc, 0x7a, 0xa9, 0xd4,\n\t0x63, 0xbf, 0x40, 0x3f, 0x40, 0xd5, 0x2f, 0xc2, 0x91, 0x23, 0xa7, 0xa8, 0xb8, 0x5f, 0xa4, 0xf2,\n\t0xd8, 0x89, 0x43, 0xfe, 0xb4, 0xa9, 0x7a, 0xf3, 0xbc, 0xf7, 0xfb, 0xf3, 0xde, 0xcc, 0xcb, 0x0b,\n\t0xfa, 0xe5, 0xe6, 0xef, 0xd0, 0x70, 0xb9, 0xc9, 0x02, 0xd7, 0x84, 0x2e, 0xf8, 0x32, 0x34, 0xbb,\n\t0x7b, 0xa6, 0x03, 0x3e, 0x08, 0x26, 0xa1, 0x65, 0x04, 0x82, 0x4b, 0x8e, 0x37, 0x13, 0x94, 0xc1,\n\t0x02, 0xd7, 0x48, 0x50, 0x46, 0x77, 0x6f, 0xfb, 0x77, 0xc7, 0x95, 0xd7, 0x9d, 0xa6, 0x61, 0x73,\n\t0xcf, 0x74, 0xb8, 0xc3, 0x4d, 0x05, 0x6e, 0x76, 0xae, 0xd4, 0x49, 0x1d, 0xd4, 0x57, 0x22, 0xb2,\n\t0x5d, 0x1b, 0xb2, 0xb2, 0xb9, 0x80, 0x09, 0x46, 0xdb, 0x7f, 0x66, 0x18, 0x8f, 0xd9, 0xd7, 0xae,\n\t0x0f, 0xe2, 0xd6, 0x0c, 0x6e, 0x9c, 0x38, 0x10, 0x9a, 0x1e, 0x48, 0x36, 0x89, 0x65, 0x4e, 0x63,\n\t0x89, 0x8e, 0x2f, 0x5d, 0x0f, 0xc6, 0x08, 0x7f, 0x7d, 0x8b, 0x10, 0xda, 0xd7, 0xe0, 0xb1, 0x51,\n\t0x5e, 0xed, 0x7d, 0x11, 0xe5, 0x8f, 0xe2, 0xfe, 0xf1, 0x25, 0x5a, 0x8a, 0xab, 0x69, 0x31, 0xc9,\n\t0x88, 0x56, 0xd5, 0xea, 0xa5, 0xfd, 0x3f, 0x8c, 0xec, 0x92, 0x06, 0xa2, 0x46, 0x70, 0xe3, 0xc4,\n\t0x81, 0xd0, 0x88, 0xd1, 0x46, 0x77, 0xcf, 0x38, 0x6b, 0xbe, 0x02, 0x5b, 0x9e, 0x82, 0x64, 0x16,\n\t0xbe, 0xeb, 0x55, 0x72, 0x51, 0xaf, 0x82, 0xb2, 0x18, 0x1d, 0xa8, 0xe2, 0x4b, 0x54, 0x54, 0x57,\n\t0x7d, 0xe1, 0x7a, 0x40, 0xe6, 0x94, 0x85, 0x39, 0x9b, 0xc5, 0xa9, 0x6b, 0x0b, 0x1e, 0xd3, 0xac,\n\t0xf5, 0xd4, 0xa1, 0x78, 0xd4, 0x57, 0xa2, 0x99, 0x28, 0x3e, 0x42, 0x85, 0x10, 0x84, 0x0b, 0x21,\n\t0x99, 0x57, 0xf2, 0x3f, 0x1b, 0x93, 0x9e, 0xd9, 0x50, 0xdc, 0x73, 0x05, 0xb4, 0x50, 0xd4, 0xab,\n\t0x14, 0x92, 0x6f, 0x9a, 0x92, 0xf1, 0x29, 0xda, 0x10, 0x10, 0x70, 0x21, 0x5d, 0xdf, 0x39, 0xe4,\n\t0xbe, 0x14, 0xbc, 0xdd, 0x06, 0x41, 0x16, 0xaa, 0x5a, 0xbd, 0x68, 0xed, 0xa4, 0x15, 0x6c, 0xd0,\n\t0x71, 0x08, 0x9d, 0xc4, 0xc3, 0xff, 0xa3, 0xf5, 0x41, 0xf8, 0xd8, 0x0f, 0x25, 0xf3, 0x6d, 0x20,\n\t0x79, 0x25, 0xf6, 0x53, 0x2a, 0xb6, 0x4e, 0x47, 0x01, 0x74, 0x9c, 0x83, 0x7f, 0x45, 0x05, 0x66,\n\t0x4b, 0x97, 0xfb, 0xa4, 0xa0, 0xd8, 0xab, 0x29, 0xbb, 0x70, 0xa0, 0xa2, 0x34, 0xcd, 0xc6, 0x38,\n\t0x01, 0x2c, 0xe4, 0x3e, 0x59, 0x7c, 0x8a, 0xa3, 0x2a, 0x4a, 0xd3, 0x2c, 0xbe, 0x40, 0x45, 0x01,\n\t0x0e, 0x13, 0x2d, 0xd7, 0x77, 0xc8, 0x92, 0xba, 0xb1, 0xdd, 0xe1, 0x1b, 0x8b, 0x67, 0x3a, 0x7b,\n\t0x61, 0x0a, 0x57, 0x20, 0xc0, 0xb7, 0x87, 0x1e, 0x81, 0xf6, 0xd9, 0x34, 0x13, 0xc2, 0xcf, 0xd0,\n\t0xa2, 0x80, 0x76, 0x3c, 0x63, 0xa4, 0x38, 0xbb, 0x66, 0x29, 0xea, 0x55, 0x16, 0x69, 0xc2, 0xa3,\n\t0x7d, 0x01, 0x5c, 0x45, 0x0b, 0x3e, 0x97, 0x40, 0x90, 0xea, 0x63, 0x39, 0xf5, 0x5d, 0x78, 0xce,\n\t0x25, 0x50, 0x95, 0x89, 0x11, 0xf2, 0x36, 0x00, 0x52, 0x7a, 0x8a, 0xb8, 0xb8, 0x0d, 0x80, 0xaa,\n\t0x0c, 0x06, 0x54, 0x6e, 0x41, 0x20, 0xc0, 0x8e, 0x15, 0xcf, 0x79, 0x47, 0xd8, 0x40, 0x96, 0x55,\n\t0x61, 0x95, 0x49, 0x85, 0x25, 0xc3, 0xa1, 0x60, 0x16, 0x49, 0xe5, 0xca, 0x8d, 0x11, 0x01, 0x3a,\n\t0x26, 0x89, 0xdf, 0x6a, 0x88, 0x64, 0xc1, 0xff, 0x5c, 0x11, 0xaa, 0x99, 0x0c, 0x25, 0xf3, 0x02,\n\t0xb2, 0xa2, 0xfc, 0x7e, 0x9b, 0x6d, 0xda, 0xd5, 0xa0, 0x57, 0x53, 0x6b, 0xd2, 0x98, 0xa2, 0x49,\n\t0xa7, 0xba, 0xe1, 0x37, 0x1a, 0xda, 0xca, 0x92, 0x27, 0x6c, 0xb8, 0x92, 0xd5, 0xef, 0xae, 0xa4,\n\t0x92, 0x56, 0xb2, 0xd5, 0x98, 0x2c, 0x49, 0xa7, 0x79, 0xe1, 0x03, 0xb4, 0x96, 0xa5, 0x0e, 0x79,\n\t0xc7, 0x97, 0x64, 0xad, 0xaa, 0xd5, 0xf3, 0xd6, 0x56, 0x2a, 0xb9, 0xd6, 0x78, 0x9a, 0xa6, 0xa3,\n\t0xf8, 0xda, 0x47, 0x0d, 0x25, 0x3f, 0xf5, 0x13, 0x37, 0x94, 0xf8, 0xe5, 0xd8, 0x8e, 0x32, 0x66,\n\t0x6b, 0x24, 0x66, 0xab, 0x0d, 0x55, 0x4e, 0x9d, 0x97, 0xfa, 0x91, 0xa1, 0xfd, 0xf4, 0x2f, 0xca,\n\t0xbb, 0x12, 0xbc, 0x90, 0xcc, 0x55, 0xe7, 0xeb, 0xa5, 0xfd, 0x9d, 0xaf, 0x2c, 0x0f, 0x6b, 0x25,\n\t0xd5, 0xc9, 0x1f, 0xc7, 0x0c, 0x9a, 0x10, 0x6b, 0x1f, 0x34, 0x54, 0x1a, 0x5a, 0x2e, 0x78, 0x17,\n\t0xe5, 0x6d, 0xd5, 0xb6, 0xa6, 0xda, 0x1e, 0x90, 0x92, 0x66, 0x93, 0x1c, 0xee, 0xa0, 0x72, 0x9b,\n\t0x85, 0xf2, 0xac, 0x19, 0x82, 0xe8, 0x42, 0xeb, 0x47, 0xb6, 0xe3, 0x60, 0x5e, 0x4f, 0x46, 0x04,\n\t0xe9, 0x98, 0x85, 0xf5, 0xcf, 0xdd, 0xa3, 0x9e, 0xbb, 0x7f, 0xd4, 0x73, 0x0f, 0x8f, 0x7a, 0xee,\n\t0x75, 0xa4, 0x6b, 0x77, 0x91, 0xae, 0xdd, 0x47, 0xba, 0xf6, 0x10, 0xe9, 0xda, 0xa7, 0x48, 0xd7,\n\t0xde, 0x7d, 0xd6, 0x73, 0x2f, 0x36, 0x27, 0xfd, 0x9b, 0x7e, 0x09, 0x00, 0x00, 0xff, 0xff, 0x6f,\n\t0x4f, 0x7a, 0xe4, 0x64, 0x07, 0x00, 0x00,\n}\n\nfunc (m *Event) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Event) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Event) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.DeprecatedCount))\n\ti--\n\tdAtA[i] = 0x78\n\t{\n\t\tsize, err := m.DeprecatedLastTimestamp.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x72\n\t{\n\t\tsize, err := m.DeprecatedFirstTimestamp.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x6a\n\t{\n\t\tsize, err := m.DeprecatedSource.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x62\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0x5a\n\ti -= len(m.Note)\n\tcopy(dAtA[i:], m.Note)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Note)))\n\ti--\n\tdAtA[i] = 0x52\n\tif m.Related != nil {\n\t\t{\n\t\t\tsize, err := m.Related.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x4a\n\t}\n\t{\n\t\tsize, err := m.Regarding.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x42\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x3a\n\ti -= len(m.Action)\n\tcopy(dAtA[i:], m.Action)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Action)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.ReportingInstance)\n\tcopy(dAtA[i:], m.ReportingInstance)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ReportingInstance)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.ReportingController)\n\tcopy(dAtA[i:], m.ReportingController)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ReportingController)))\n\ti--\n\tdAtA[i] = 0x22\n\tif m.Series != nil {\n\t\t{\n\t\t\tsize, err := m.Series.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\t{\n\t\tsize, err := m.EventTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EventList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EventList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EventList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EventSeries) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EventSeries) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EventSeries) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.LastObservedTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Count))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *Event) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.EventTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Series != nil {\n\t\tl = m.Series.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.ReportingController)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.ReportingInstance)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Action)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Regarding.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Related != nil {\n\t\tl = m.Related.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.Note)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.DeprecatedSource.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.DeprecatedFirstTimestamp.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.DeprecatedLastTimestamp.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.DeprecatedCount))\n\treturn n\n}\n\nfunc (m *EventList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *EventSeries) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Count))\n\tl = m.LastObservedTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *Event) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Event{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`EventTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.EventTime), \"MicroTime\", \"v1.MicroTime\", 1), `&`, ``, 1) + `,`,\n\t\t`Series:` + strings.Replace(this.Series.String(), \"EventSeries\", \"EventSeries\", 1) + `,`,\n\t\t`ReportingController:` + fmt.Sprintf(\"%v\", this.ReportingController) + `,`,\n\t\t`ReportingInstance:` + fmt.Sprintf(\"%v\", this.ReportingInstance) + `,`,\n\t\t`Action:` + fmt.Sprintf(\"%v\", this.Action) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Regarding:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Regarding), \"ObjectReference\", \"v11.ObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`Related:` + strings.Replace(fmt.Sprintf(\"%v\", this.Related), \"ObjectReference\", \"v11.ObjectReference\", 1) + `,`,\n\t\t`Note:` + fmt.Sprintf(\"%v\", this.Note) + `,`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`DeprecatedSource:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.DeprecatedSource), \"EventSource\", \"v11.EventSource\", 1), `&`, ``, 1) + `,`,\n\t\t`DeprecatedFirstTimestamp:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.DeprecatedFirstTimestamp), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`DeprecatedLastTimestamp:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.DeprecatedLastTimestamp), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`DeprecatedCount:` + fmt.Sprintf(\"%v\", this.DeprecatedCount) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EventList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Event{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Event\", \"Event\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&EventList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EventSeries) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&EventSeries{`,\n\t\t`Count:` + fmt.Sprintf(\"%v\", this.Count) + `,`,\n\t\t`LastObservedTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastObservedTime), \"MicroTime\", \"v1.MicroTime\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *Event) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Event: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Event: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EventTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.EventTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Series\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Series == nil {\n\t\t\t\tm.Series = &EventSeries{}\n\t\t\t}\n\t\t\tif err := m.Series.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReportingController\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ReportingController = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReportingInstance\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ReportingInstance = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Action\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Action = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Regarding\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Regarding.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Related\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Related == nil {\n\t\t\t\tm.Related = &v11.ObjectReference{}\n\t\t\t}\n\t\t\tif err := m.Related.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Note\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Note = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 12:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DeprecatedSource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.DeprecatedSource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 13:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DeprecatedFirstTimestamp\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.DeprecatedFirstTimestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 14:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DeprecatedLastTimestamp\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.DeprecatedLastTimestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 15:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DeprecatedCount\", wireType)\n\t\t\t}\n\t\t\tm.DeprecatedCount = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.DeprecatedCount |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EventList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EventList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EventList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Event{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EventSeries) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EventSeries: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EventSeries: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Count\", wireType)\n\t\t\t}\n\t\t\tm.Count = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Count |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastObservedTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastObservedTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/events/v1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.events.v1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/events/v1\";\n\n// Event is a report of an event somewhere in the cluster. It generally denotes some state change in the system.\n// Events have a limited retention time and triggers and messages may evolve\n// with time.  Event consumers should not rely on the timing of an event\n// with a given Reason reflecting a consistent underlying trigger, or the\n// continued existence of events with that Reason.  Events should be\n// treated as informative, best-effort, supplemental data.\nmessage Event {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // eventTime is the time when this Event was first observed. It is required.\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime eventTime = 2;\n\n  // series is data about the Event series this event represents or nil if it's a singleton Event.\n  // +optional\n  optional EventSeries series = 3;\n\n  // reportingController is the name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.\n  // This field cannot be empty for new Events.\n  optional string reportingController = 4;\n\n  // reportingInstance is the ID of the controller instance, e.g. `kubelet-xyzf`.\n  // This field cannot be empty for new Events and it can have at most 128 characters.\n  optional string reportingInstance = 5;\n\n  // action is what action was taken/failed regarding to the regarding object. It is machine-readable.\n  // This field cannot be empty for new Events and it can have at most 128 characters.\n  optional string action = 6;\n\n  // reason is why the action was taken. It is human-readable.\n  // This field cannot be empty for new Events and it can have at most 128 characters.\n  optional string reason = 7;\n\n  // regarding contains the object this Event is about. In most cases it's an Object reporting controller\n  // implements, e.g. ReplicaSetController implements ReplicaSets and this event is emitted because\n  // it acts on some changes in a ReplicaSet object.\n  // +optional\n  optional .k8s.io.api.core.v1.ObjectReference regarding = 8;\n\n  // related is the optional secondary object for more complex actions. E.g. when regarding object triggers\n  // a creation or deletion of related object.\n  // +optional\n  optional .k8s.io.api.core.v1.ObjectReference related = 9;\n\n  // note is a human-readable description of the status of this operation.\n  // Maximal length of the note is 1kB, but libraries should be prepared to\n  // handle values up to 64kB.\n  // +optional\n  optional string note = 10;\n\n  // type is the type of this event (Normal, Warning), new types could be added in the future.\n  // It is machine-readable.\n  // This field cannot be empty for new Events.\n  optional string type = 11;\n\n  // deprecatedSource is the deprecated field assuring backward compatibility with core.v1 Event type.\n  // +optional\n  optional .k8s.io.api.core.v1.EventSource deprecatedSource = 12;\n\n  // deprecatedFirstTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time deprecatedFirstTimestamp = 13;\n\n  // deprecatedLastTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time deprecatedLastTimestamp = 14;\n\n  // deprecatedCount is the deprecated field assuring backward compatibility with core.v1 Event type.\n  // +optional\n  optional int32 deprecatedCount = 15;\n}\n\n// EventList is a list of Event objects.\nmessage EventList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is a list of schema objects.\n  repeated Event items = 2;\n}\n\n// EventSeries contain information on series of events, i.e. thing that was/is happening\n// continuously for some time. How often to update the EventSeries is up to the event reporters.\n// The default event reporter in \"k8s.io/client-go/tools/events/event_broadcaster.go\" shows\n// how this struct is updated on heartbeats and can guide customized reporter implementations.\nmessage EventSeries {\n  // count is the number of occurrences in this series up to the last heartbeat time.\n  optional int32 count = 1;\n\n  // lastObservedTime is the time when last Event from the series was seen before last heartbeat.\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime lastObservedTime = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/events/v1/register.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"events.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to api.Scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&Event{},\n\t\t&EventList{},\n\t)\n\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/events/v1/types.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.19\n\n// Event is a report of an event somewhere in the cluster. It generally denotes some state change in the system.\n// Events have a limited retention time and triggers and messages may evolve\n// with time.  Event consumers should not rely on the timing of an event\n// with a given Reason reflecting a consistent underlying trigger, or the\n// continued existence of events with that Reason.  Events should be\n// treated as informative, best-effort, supplemental data.\ntype Event struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// eventTime is the time when this Event was first observed. It is required.\n\tEventTime metav1.MicroTime `json:\"eventTime\" protobuf:\"bytes,2,opt,name=eventTime\"`\n\n\t// series is data about the Event series this event represents or nil if it's a singleton Event.\n\t// +optional\n\tSeries *EventSeries `json:\"series,omitempty\" protobuf:\"bytes,3,opt,name=series\"`\n\n\t// reportingController is the name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.\n\t// This field cannot be empty for new Events.\n\tReportingController string `json:\"reportingController,omitempty\" protobuf:\"bytes,4,opt,name=reportingController\"`\n\n\t// reportingInstance is the ID of the controller instance, e.g. `kubelet-xyzf`.\n\t// This field cannot be empty for new Events and it can have at most 128 characters.\n\tReportingInstance string `json:\"reportingInstance,omitempty\" protobuf:\"bytes,5,opt,name=reportingInstance\"`\n\n\t// action is what action was taken/failed regarding to the regarding object. It is machine-readable.\n\t// This field cannot be empty for new Events and it can have at most 128 characters.\n\tAction string `json:\"action,omitempty\" protobuf:\"bytes,6,name=action\"`\n\n\t// reason is why the action was taken. It is human-readable.\n\t// This field cannot be empty for new Events and it can have at most 128 characters.\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,7,name=reason\"`\n\n\t// regarding contains the object this Event is about. In most cases it's an Object reporting controller\n\t// implements, e.g. ReplicaSetController implements ReplicaSets and this event is emitted because\n\t// it acts on some changes in a ReplicaSet object.\n\t// +optional\n\tRegarding corev1.ObjectReference `json:\"regarding,omitempty\" protobuf:\"bytes,8,opt,name=regarding\"`\n\n\t// related is the optional secondary object for more complex actions. E.g. when regarding object triggers\n\t// a creation or deletion of related object.\n\t// +optional\n\tRelated *corev1.ObjectReference `json:\"related,omitempty\" protobuf:\"bytes,9,opt,name=related\"`\n\n\t// note is a human-readable description of the status of this operation.\n\t// Maximal length of the note is 1kB, but libraries should be prepared to\n\t// handle values up to 64kB.\n\t// +optional\n\tNote string `json:\"note,omitempty\" protobuf:\"bytes,10,opt,name=note\"`\n\n\t// type is the type of this event (Normal, Warning), new types could be added in the future.\n\t// It is machine-readable.\n\t// This field cannot be empty for new Events.\n\tType string `json:\"type,omitempty\" protobuf:\"bytes,11,opt,name=type\"`\n\n\t// deprecatedSource is the deprecated field assuring backward compatibility with core.v1 Event type.\n\t// +optional\n\tDeprecatedSource corev1.EventSource `json:\"deprecatedSource,omitempty\" protobuf:\"bytes,12,opt,name=deprecatedSource\"`\n\t// deprecatedFirstTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type.\n\t// +optional\n\tDeprecatedFirstTimestamp metav1.Time `json:\"deprecatedFirstTimestamp,omitempty\" protobuf:\"bytes,13,opt,name=deprecatedFirstTimestamp\"`\n\t// deprecatedLastTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type.\n\t// +optional\n\tDeprecatedLastTimestamp metav1.Time `json:\"deprecatedLastTimestamp,omitempty\" protobuf:\"bytes,14,opt,name=deprecatedLastTimestamp\"`\n\t// deprecatedCount is the deprecated field assuring backward compatibility with core.v1 Event type.\n\t// +optional\n\tDeprecatedCount int32 `json:\"deprecatedCount,omitempty\" protobuf:\"varint,15,opt,name=deprecatedCount\"`\n}\n\n// EventSeries contain information on series of events, i.e. thing that was/is happening\n// continuously for some time. How often to update the EventSeries is up to the event reporters.\n// The default event reporter in \"k8s.io/client-go/tools/events/event_broadcaster.go\" shows\n// how this struct is updated on heartbeats and can guide customized reporter implementations.\ntype EventSeries struct {\n\t// count is the number of occurrences in this series up to the last heartbeat time.\n\tCount int32 `json:\"count\" protobuf:\"varint,1,opt,name=count\"`\n\t// lastObservedTime is the time when last Event from the series was seen before last heartbeat.\n\tLastObservedTime metav1.MicroTime `json:\"lastObservedTime\" protobuf:\"bytes,2,opt,name=lastObservedTime\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.19\n\n// EventList is a list of Event objects.\ntype EventList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is a list of schema objects.\n\tItems []Event `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/events/v1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_Event = map[string]string{\n\t\"\":                         \"Event is a report of an event somewhere in the cluster. It generally denotes some state change in the system. Events have a limited retention time and triggers and messages may evolve with time.  Event consumers should not rely on the timing of an event with a given Reason reflecting a consistent underlying trigger, or the continued existence of events with that Reason.  Events should be treated as informative, best-effort, supplemental data.\",\n\t\"metadata\":                 \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"eventTime\":                \"eventTime is the time when this Event was first observed. It is required.\",\n\t\"series\":                   \"series is data about the Event series this event represents or nil if it's a singleton Event.\",\n\t\"reportingController\":      \"reportingController is the name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`. This field cannot be empty for new Events.\",\n\t\"reportingInstance\":        \"reportingInstance is the ID of the controller instance, e.g. `kubelet-xyzf`. This field cannot be empty for new Events and it can have at most 128 characters.\",\n\t\"action\":                   \"action is what action was taken/failed regarding to the regarding object. It is machine-readable. This field cannot be empty for new Events and it can have at most 128 characters.\",\n\t\"reason\":                   \"reason is why the action was taken. It is human-readable. This field cannot be empty for new Events and it can have at most 128 characters.\",\n\t\"regarding\":                \"regarding contains the object this Event is about. In most cases it's an Object reporting controller implements, e.g. ReplicaSetController implements ReplicaSets and this event is emitted because it acts on some changes in a ReplicaSet object.\",\n\t\"related\":                  \"related is the optional secondary object for more complex actions. E.g. when regarding object triggers a creation or deletion of related object.\",\n\t\"note\":                     \"note is a human-readable description of the status of this operation. Maximal length of the note is 1kB, but libraries should be prepared to handle values up to 64kB.\",\n\t\"type\":                     \"type is the type of this event (Normal, Warning), new types could be added in the future. It is machine-readable. This field cannot be empty for new Events.\",\n\t\"deprecatedSource\":         \"deprecatedSource is the deprecated field assuring backward compatibility with core.v1 Event type.\",\n\t\"deprecatedFirstTimestamp\": \"deprecatedFirstTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type.\",\n\t\"deprecatedLastTimestamp\":  \"deprecatedLastTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type.\",\n\t\"deprecatedCount\":          \"deprecatedCount is the deprecated field assuring backward compatibility with core.v1 Event type.\",\n}\n\nfunc (Event) SwaggerDoc() map[string]string {\n\treturn map_Event\n}\n\nvar map_EventList = map[string]string{\n\t\"\":         \"EventList is a list of Event objects.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is a list of schema objects.\",\n}\n\nfunc (EventList) SwaggerDoc() map[string]string {\n\treturn map_EventList\n}\n\nvar map_EventSeries = map[string]string{\n\t\"\":                 \"EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time. How often to update the EventSeries is up to the event reporters. The default event reporter in \\\"k8s.io/client-go/tools/events/event_broadcaster.go\\\" shows how this struct is updated on heartbeats and can guide customized reporter implementations.\",\n\t\"count\":            \"count is the number of occurrences in this series up to the last heartbeat time.\",\n\t\"lastObservedTime\": \"lastObservedTime is the time when last Event from the series was seen before last heartbeat.\",\n}\n\nfunc (EventSeries) SwaggerDoc() map[string]string {\n\treturn map_EventSeries\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/events/v1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Event) DeepCopyInto(out *Event) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.EventTime.DeepCopyInto(&out.EventTime)\n\tif in.Series != nil {\n\t\tin, out := &in.Series, &out.Series\n\t\t*out = new(EventSeries)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tout.Regarding = in.Regarding\n\tif in.Related != nil {\n\t\tin, out := &in.Related, &out.Related\n\t\t*out = new(corev1.ObjectReference)\n\t\t**out = **in\n\t}\n\tout.DeprecatedSource = in.DeprecatedSource\n\tin.DeprecatedFirstTimestamp.DeepCopyInto(&out.DeprecatedFirstTimestamp)\n\tin.DeprecatedLastTimestamp.DeepCopyInto(&out.DeprecatedLastTimestamp)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Event.\nfunc (in *Event) DeepCopy() *Event {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Event)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Event) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EventList) DeepCopyInto(out *EventList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Event, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EventList.\nfunc (in *EventList) DeepCopy() *EventList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EventList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *EventList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EventSeries) DeepCopyInto(out *EventSeries) {\n\t*out = *in\n\tin.LastObservedTime.DeepCopyInto(&out.LastObservedTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EventSeries.\nfunc (in *EventSeries) DeepCopy() *EventSeries {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EventSeries)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/events/v1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *Event) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *EventList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 19\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/events/v1beta1/doc.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\n// +groupName=events.k8s.io\n\npackage v1beta1 // import \"k8s.io/api/events/v1beta1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/events/v1beta1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/events/v1beta1/generated.proto\n\npackage v1beta1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tv11 \"k8s.io/api/core/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *Event) Reset()      { *m = Event{} }\nfunc (*Event) ProtoMessage() {}\nfunc (*Event) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_99027a32dee7673b, []int{0}\n}\nfunc (m *Event) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Event) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Event) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Event.Merge(m, src)\n}\nfunc (m *Event) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Event) XXX_DiscardUnknown() {\n\txxx_messageInfo_Event.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Event proto.InternalMessageInfo\n\nfunc (m *EventList) Reset()      { *m = EventList{} }\nfunc (*EventList) ProtoMessage() {}\nfunc (*EventList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_99027a32dee7673b, []int{1}\n}\nfunc (m *EventList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EventList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EventList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EventList.Merge(m, src)\n}\nfunc (m *EventList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EventList) XXX_DiscardUnknown() {\n\txxx_messageInfo_EventList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EventList proto.InternalMessageInfo\n\nfunc (m *EventSeries) Reset()      { *m = EventSeries{} }\nfunc (*EventSeries) ProtoMessage() {}\nfunc (*EventSeries) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_99027a32dee7673b, []int{2}\n}\nfunc (m *EventSeries) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *EventSeries) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *EventSeries) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_EventSeries.Merge(m, src)\n}\nfunc (m *EventSeries) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *EventSeries) XXX_DiscardUnknown() {\n\txxx_messageInfo_EventSeries.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_EventSeries proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*Event)(nil), \"k8s.io.api.events.v1beta1.Event\")\n\tproto.RegisterType((*EventList)(nil), \"k8s.io.api.events.v1beta1.EventList\")\n\tproto.RegisterType((*EventSeries)(nil), \"k8s.io.api.events.v1beta1.EventSeries\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/events/v1beta1/generated.proto\", fileDescriptor_99027a32dee7673b)\n}\n\nvar fileDescriptor_99027a32dee7673b = []byte{\n\t// 764 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x95, 0xcf, 0x4f, 0xdb, 0x48,\n\t0x14, 0xc7, 0x63, 0x20, 0x81, 0x4c, 0xf8, 0x11, 0x86, 0x03, 0x03, 0x2b, 0x39, 0x51, 0x90, 0x50,\n\t0x76, 0xa5, 0xb5, 0x17, 0xb4, 0x5a, 0xed, 0x6d, 0x85, 0x09, 0x5b, 0x81, 0xa0, 0x48, 0x03, 0xa7,\n\t0xaa, 0x07, 0x26, 0xce, 0xc3, 0xb8, 0xc4, 0x1e, 0x6b, 0x3c, 0x89, 0xc4, 0xad, 0x97, 0x4a, 0x3d,\n\t0xf6, 0x6f, 0xe8, 0xad, 0xb7, 0xfe, 0x19, 0x1c, 0x39, 0x72, 0x8a, 0x8a, 0xfb, 0x8f, 0x54, 0x1e,\n\t0x3b, 0x71, 0xc8, 0x0f, 0x91, 0xaa, 0x37, 0xfb, 0xbd, 0xef, 0xf7, 0xf3, 0xde, 0x8c, 0x5f, 0x5e,\n\t0xd0, 0xef, 0xb7, 0xff, 0x86, 0x86, 0xcb, 0x4d, 0x16, 0xb8, 0x26, 0x74, 0xc1, 0x97, 0xa1, 0xd9,\n\t0xdd, 0x6b, 0x82, 0x64, 0x7b, 0xa6, 0x03, 0x3e, 0x08, 0x26, 0xa1, 0x65, 0x04, 0x82, 0x4b, 0x8e,\n\t0xb7, 0x12, 0xa9, 0xc1, 0x02, 0xd7, 0x48, 0xa4, 0x46, 0x2a, 0xdd, 0xfe, 0xd3, 0x71, 0xe5, 0x4d,\n\t0xa7, 0x69, 0xd8, 0xdc, 0x33, 0x1d, 0xee, 0x70, 0x53, 0x39, 0x9a, 0x9d, 0x6b, 0xf5, 0xa6, 0x5e,\n\t0xd4, 0x53, 0x42, 0xda, 0xae, 0x0d, 0x15, 0xb5, 0xb9, 0x00, 0xb3, 0x3b, 0x56, 0x6d, 0xfb, 0xef,\n\t0x4c, 0xe3, 0x31, 0xfb, 0xc6, 0xf5, 0x41, 0xdc, 0x99, 0xc1, 0xad, 0x13, 0x07, 0x42, 0xd3, 0x03,\n\t0xc9, 0x26, 0xb9, 0xcc, 0x69, 0x2e, 0xd1, 0xf1, 0xa5, 0xeb, 0xc1, 0x98, 0xe1, 0x9f, 0x97, 0x0c,\n\t0xa1, 0x7d, 0x03, 0x1e, 0x1b, 0xf5, 0xd5, 0x3e, 0x17, 0x51, 0xfe, 0x28, 0xbe, 0x04, 0x7c, 0x85,\n\t0x96, 0xe2, 0x6e, 0x5a, 0x4c, 0x32, 0xa2, 0x55, 0xb5, 0x7a, 0x69, 0xff, 0x2f, 0x23, 0xbb, 0xa9,\n\t0x01, 0xd4, 0x08, 0x6e, 0x9d, 0x38, 0x10, 0x1a, 0xb1, 0xda, 0xe8, 0xee, 0x19, 0xe7, 0xcd, 0x77,\n\t0x60, 0xcb, 0x33, 0x90, 0xcc, 0xc2, 0xf7, 0xbd, 0x4a, 0x2e, 0xea, 0x55, 0x50, 0x16, 0xa3, 0x03,\n\t0x2a, 0xbe, 0x42, 0x45, 0x75, 0xdf, 0x97, 0xae, 0x07, 0x64, 0x4e, 0x95, 0x30, 0x67, 0x2b, 0x71,\n\t0xe6, 0xda, 0x82, 0xc7, 0x36, 0x6b, 0x3d, 0xad, 0x50, 0x3c, 0xea, 0x93, 0x68, 0x06, 0xc5, 0x27,\n\t0xa8, 0x10, 0x82, 0x70, 0x21, 0x24, 0xf3, 0x0a, 0xbf, 0x6b, 0x4c, 0xfd, 0xd6, 0x86, 0x02, 0x5c,\n\t0x28, 0xb5, 0x85, 0xa2, 0x5e, 0xa5, 0x90, 0x3c, 0xd3, 0x94, 0x80, 0xcf, 0xd0, 0x86, 0x80, 0x80,\n\t0x0b, 0xe9, 0xfa, 0xce, 0x21, 0xf7, 0xa5, 0xe0, 0xed, 0x36, 0x08, 0xb2, 0x50, 0xd5, 0xea, 0x45,\n\t0xeb, 0xb7, 0xb4, 0x8d, 0x0d, 0x3a, 0x2e, 0xa1, 0x93, 0x7c, 0xf8, 0x15, 0x5a, 0x1f, 0x84, 0x8f,\n\t0xfd, 0x50, 0x32, 0xdf, 0x06, 0x92, 0x57, 0xb0, 0xad, 0x14, 0xb6, 0x4e, 0x47, 0x05, 0x74, 0xdc,\n\t0x83, 0x77, 0x51, 0x81, 0xd9, 0xd2, 0xe5, 0x3e, 0x29, 0x28, 0xf7, 0x6a, 0xea, 0x2e, 0x1c, 0xa8,\n\t0x28, 0x4d, 0xb3, 0xb1, 0x4e, 0x00, 0x0b, 0xb9, 0x4f, 0x16, 0x9f, 0xeb, 0xa8, 0x8a, 0xd2, 0x34,\n\t0x8b, 0x2f, 0x51, 0x51, 0x80, 0xc3, 0x44, 0xcb, 0xf5, 0x1d, 0xb2, 0xa4, 0xae, 0x6d, 0x67, 0xf8,\n\t0xda, 0xe2, 0xc1, 0xce, 0x3e, 0x33, 0x85, 0x6b, 0x10, 0xe0, 0xdb, 0x43, 0x5f, 0x82, 0xf6, 0xdd,\n\t0x34, 0x03, 0xe1, 0x13, 0xb4, 0x28, 0xa0, 0x1d, 0x0f, 0x1a, 0x29, 0xce, 0xce, 0x2c, 0x45, 0xbd,\n\t0xca, 0x22, 0x4d, 0x7c, 0xb4, 0x0f, 0xc0, 0x55, 0xb4, 0xe0, 0x73, 0x09, 0x04, 0xa9, 0x73, 0x2c,\n\t0xa7, 0x75, 0x17, 0x5e, 0x73, 0x09, 0x54, 0x65, 0x62, 0x85, 0xbc, 0x0b, 0x80, 0x94, 0x9e, 0x2b,\n\t0x2e, 0xef, 0x02, 0xa0, 0x2a, 0x83, 0x01, 0x95, 0x5b, 0x10, 0x08, 0xb0, 0x63, 0xe2, 0x05, 0xef,\n\t0x08, 0x1b, 0xc8, 0xb2, 0x6a, 0xac, 0x32, 0xa9, 0xb1, 0x64, 0x38, 0x94, 0xcc, 0x22, 0x29, 0xae,\n\t0xdc, 0x18, 0x01, 0xd0, 0x31, 0x24, 0xfe, 0xa8, 0x21, 0x92, 0x05, 0xff, 0x77, 0x45, 0xa8, 0x06,\n\t0x33, 0x94, 0xcc, 0x0b, 0xc8, 0x8a, 0xaa, 0xf7, 0xc7, 0x6c, 0x23, 0xaf, 0xa6, 0xbd, 0x9a, 0x96,\n\t0x26, 0x8d, 0x29, 0x4c, 0x3a, 0xb5, 0x1a, 0xfe, 0xa0, 0xa1, 0xcd, 0x2c, 0x79, 0xca, 0x86, 0x3b,\n\t0x59, 0xfd, 0xe9, 0x4e, 0x2a, 0x69, 0x27, 0x9b, 0x8d, 0xc9, 0x48, 0x3a, 0xad, 0x16, 0x3e, 0x40,\n\t0x6b, 0x59, 0xea, 0x90, 0x77, 0x7c, 0x49, 0xd6, 0xaa, 0x5a, 0x3d, 0x6f, 0x6d, 0xa6, 0xc8, 0xb5,\n\t0xc6, 0xf3, 0x34, 0x1d, 0xd5, 0xd7, 0xbe, 0x6a, 0x28, 0xf9, 0xbd, 0x9f, 0xba, 0xa1, 0xc4, 0x6f,\n\t0xc7, 0x16, 0x95, 0x31, 0xdb, 0x41, 0x62, 0xb7, 0x5a, 0x53, 0xe5, 0xb4, 0xf2, 0x52, 0x3f, 0x32,\n\t0xb4, 0xa4, 0x8e, 0x50, 0xde, 0x95, 0xe0, 0x85, 0x64, 0xae, 0x3a, 0x5f, 0x2f, 0xed, 0x57, 0x5f,\n\t0xda, 0x20, 0xd6, 0x4a, 0x0a, 0xcb, 0x1f, 0xc7, 0x36, 0x9a, 0xb8, 0x6b, 0x5f, 0x34, 0x54, 0x1a,\n\t0xda, 0x30, 0x78, 0x07, 0xe5, 0x6d, 0x75, 0x76, 0x4d, 0x9d, 0x7d, 0x60, 0x4a, 0x4e, 0x9c, 0xe4,\n\t0x70, 0x07, 0x95, 0xdb, 0x2c, 0x94, 0xe7, 0xcd, 0x10, 0x44, 0x17, 0x5a, 0xbf, 0xb2, 0x27, 0x07,\n\t0x43, 0x7b, 0x3a, 0x02, 0xa4, 0x63, 0x25, 0xac, 0xff, 0xee, 0x9f, 0xf4, 0xdc, 0xc3, 0x93, 0x9e,\n\t0x7b, 0x7c, 0xd2, 0x73, 0xef, 0x23, 0x5d, 0xbb, 0x8f, 0x74, 0xed, 0x21, 0xd2, 0xb5, 0xc7, 0x48,\n\t0xd7, 0xbe, 0x45, 0xba, 0xf6, 0xe9, 0xbb, 0x9e, 0x7b, 0xb3, 0x35, 0xf5, 0x1f, 0xf6, 0x47, 0x00,\n\t0x00, 0x00, 0xff, 0xff, 0x2b, 0xc1, 0x64, 0x36, 0x7d, 0x07, 0x00, 0x00,\n}\n\nfunc (m *Event) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Event) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Event) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.DeprecatedCount))\n\ti--\n\tdAtA[i] = 0x78\n\t{\n\t\tsize, err := m.DeprecatedLastTimestamp.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x72\n\t{\n\t\tsize, err := m.DeprecatedFirstTimestamp.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x6a\n\t{\n\t\tsize, err := m.DeprecatedSource.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x62\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0x5a\n\ti -= len(m.Note)\n\tcopy(dAtA[i:], m.Note)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Note)))\n\ti--\n\tdAtA[i] = 0x52\n\tif m.Related != nil {\n\t\t{\n\t\t\tsize, err := m.Related.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x4a\n\t}\n\t{\n\t\tsize, err := m.Regarding.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x42\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x3a\n\ti -= len(m.Action)\n\tcopy(dAtA[i:], m.Action)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Action)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.ReportingInstance)\n\tcopy(dAtA[i:], m.ReportingInstance)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ReportingInstance)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.ReportingController)\n\tcopy(dAtA[i:], m.ReportingController)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ReportingController)))\n\ti--\n\tdAtA[i] = 0x22\n\tif m.Series != nil {\n\t\t{\n\t\t\tsize, err := m.Series.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\t{\n\t\tsize, err := m.EventTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EventList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EventList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EventList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *EventSeries) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *EventSeries) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *EventSeries) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.LastObservedTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Count))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *Event) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.EventTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Series != nil {\n\t\tl = m.Series.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.ReportingController)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.ReportingInstance)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Action)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Regarding.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Related != nil {\n\t\tl = m.Related.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.Note)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.DeprecatedSource.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.DeprecatedFirstTimestamp.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.DeprecatedLastTimestamp.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.DeprecatedCount))\n\treturn n\n}\n\nfunc (m *EventList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *EventSeries) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Count))\n\tl = m.LastObservedTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *Event) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Event{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`EventTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.EventTime), \"MicroTime\", \"v1.MicroTime\", 1), `&`, ``, 1) + `,`,\n\t\t`Series:` + strings.Replace(this.Series.String(), \"EventSeries\", \"EventSeries\", 1) + `,`,\n\t\t`ReportingController:` + fmt.Sprintf(\"%v\", this.ReportingController) + `,`,\n\t\t`ReportingInstance:` + fmt.Sprintf(\"%v\", this.ReportingInstance) + `,`,\n\t\t`Action:` + fmt.Sprintf(\"%v\", this.Action) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Regarding:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Regarding), \"ObjectReference\", \"v11.ObjectReference\", 1), `&`, ``, 1) + `,`,\n\t\t`Related:` + strings.Replace(fmt.Sprintf(\"%v\", this.Related), \"ObjectReference\", \"v11.ObjectReference\", 1) + `,`,\n\t\t`Note:` + fmt.Sprintf(\"%v\", this.Note) + `,`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`DeprecatedSource:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.DeprecatedSource), \"EventSource\", \"v11.EventSource\", 1), `&`, ``, 1) + `,`,\n\t\t`DeprecatedFirstTimestamp:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.DeprecatedFirstTimestamp), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`DeprecatedLastTimestamp:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.DeprecatedLastTimestamp), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`DeprecatedCount:` + fmt.Sprintf(\"%v\", this.DeprecatedCount) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EventList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Event{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Event\", \"Event\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&EventList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *EventSeries) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&EventSeries{`,\n\t\t`Count:` + fmt.Sprintf(\"%v\", this.Count) + `,`,\n\t\t`LastObservedTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastObservedTime), \"MicroTime\", \"v1.MicroTime\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *Event) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Event: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Event: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EventTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.EventTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Series\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Series == nil {\n\t\t\t\tm.Series = &EventSeries{}\n\t\t\t}\n\t\t\tif err := m.Series.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReportingController\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ReportingController = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReportingInstance\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ReportingInstance = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Action\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Action = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Regarding\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Regarding.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Related\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Related == nil {\n\t\t\t\tm.Related = &v11.ObjectReference{}\n\t\t\t}\n\t\t\tif err := m.Related.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Note\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Note = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 12:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DeprecatedSource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.DeprecatedSource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 13:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DeprecatedFirstTimestamp\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.DeprecatedFirstTimestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 14:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DeprecatedLastTimestamp\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.DeprecatedLastTimestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 15:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DeprecatedCount\", wireType)\n\t\t\t}\n\t\t\tm.DeprecatedCount = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.DeprecatedCount |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EventList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EventList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EventList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Event{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *EventSeries) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: EventSeries: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: EventSeries: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Count\", wireType)\n\t\t\t}\n\t\t\tm.Count = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Count |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastObservedTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastObservedTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/events/v1beta1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.events.v1beta1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/events/v1beta1\";\n\n// Event is a report of an event somewhere in the cluster. It generally denotes some state change in the system.\n// Events have a limited retention time and triggers and messages may evolve\n// with time.  Event consumers should not rely on the timing of an event\n// with a given Reason reflecting a consistent underlying trigger, or the\n// continued existence of events with that Reason.  Events should be\n// treated as informative, best-effort, supplemental data.\nmessage Event {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // eventTime is the time when this Event was first observed. It is required.\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime eventTime = 2;\n\n  // series is data about the Event series this event represents or nil if it's a singleton Event.\n  // +optional\n  optional EventSeries series = 3;\n\n  // reportingController is the name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.\n  // This field cannot be empty for new Events.\n  // +optional\n  optional string reportingController = 4;\n\n  // reportingInstance is the ID of the controller instance, e.g. `kubelet-xyzf`.\n  // This field cannot be empty for new Events and it can have at most 128 characters.\n  // +optional\n  optional string reportingInstance = 5;\n\n  // action is what action was taken/failed regarding to the regarding object. It is machine-readable.\n  // This field can have at most 128 characters.\n  // +optional\n  optional string action = 6;\n\n  // reason is why the action was taken. It is human-readable.\n  // This field can have at most 128 characters.\n  // +optional\n  optional string reason = 7;\n\n  // regarding contains the object this Event is about. In most cases it's an Object reporting controller\n  // implements, e.g. ReplicaSetController implements ReplicaSets and this event is emitted because\n  // it acts on some changes in a ReplicaSet object.\n  // +optional\n  optional .k8s.io.api.core.v1.ObjectReference regarding = 8;\n\n  // related is the optional secondary object for more complex actions. E.g. when regarding object triggers\n  // a creation or deletion of related object.\n  // +optional\n  optional .k8s.io.api.core.v1.ObjectReference related = 9;\n\n  // note is a human-readable description of the status of this operation.\n  // Maximal length of the note is 1kB, but libraries should be prepared to\n  // handle values up to 64kB.\n  // +optional\n  optional string note = 10;\n\n  // type is the type of this event (Normal, Warning), new types could be added in the future.\n  // It is machine-readable.\n  // +optional\n  optional string type = 11;\n\n  // deprecatedSource is the deprecated field assuring backward compatibility with core.v1 Event type.\n  // +optional\n  optional .k8s.io.api.core.v1.EventSource deprecatedSource = 12;\n\n  // deprecatedFirstTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time deprecatedFirstTimestamp = 13;\n\n  // deprecatedLastTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time deprecatedLastTimestamp = 14;\n\n  // deprecatedCount is the deprecated field assuring backward compatibility with core.v1 Event type.\n  // +optional\n  optional int32 deprecatedCount = 15;\n}\n\n// EventList is a list of Event objects.\nmessage EventList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is a list of schema objects.\n  repeated Event items = 2;\n}\n\n// EventSeries contain information on series of events, i.e. thing that was/is happening\n// continuously for some time.\nmessage EventSeries {\n  // count is the number of occurrences in this series up to the last heartbeat time.\n  optional int32 count = 1;\n\n  // lastObservedTime is the time when last Event from the series was seen before last heartbeat.\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime lastObservedTime = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/events/v1beta1/register.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"events.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to api.Scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&Event{},\n\t\t&EventList{},\n\t)\n\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/events/v1beta1/types.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n// +k8s:prerelease-lifecycle-gen:deprecated=1.22\n\n// Event is a report of an event somewhere in the cluster. It generally denotes some state change in the system.\n// Events have a limited retention time and triggers and messages may evolve\n// with time.  Event consumers should not rely on the timing of an event\n// with a given Reason reflecting a consistent underlying trigger, or the\n// continued existence of events with that Reason.  Events should be\n// treated as informative, best-effort, supplemental data.\ntype Event struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// eventTime is the time when this Event was first observed. It is required.\n\tEventTime metav1.MicroTime `json:\"eventTime\" protobuf:\"bytes,2,opt,name=eventTime\"`\n\n\t// series is data about the Event series this event represents or nil if it's a singleton Event.\n\t// +optional\n\tSeries *EventSeries `json:\"series,omitempty\" protobuf:\"bytes,3,opt,name=series\"`\n\n\t// reportingController is the name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.\n\t// This field cannot be empty for new Events.\n\t// +optional\n\tReportingController string `json:\"reportingController,omitempty\" protobuf:\"bytes,4,opt,name=reportingController\"`\n\n\t// reportingInstance is the ID of the controller instance, e.g. `kubelet-xyzf`.\n\t// This field cannot be empty for new Events and it can have at most 128 characters.\n\t// +optional\n\tReportingInstance string `json:\"reportingInstance,omitempty\" protobuf:\"bytes,5,opt,name=reportingInstance\"`\n\n\t// action is what action was taken/failed regarding to the regarding object. It is machine-readable.\n\t// This field can have at most 128 characters.\n\t// +optional\n\tAction string `json:\"action,omitempty\" protobuf:\"bytes,6,name=action\"`\n\n\t// reason is why the action was taken. It is human-readable.\n\t// This field can have at most 128 characters.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,7,name=reason\"`\n\n\t// regarding contains the object this Event is about. In most cases it's an Object reporting controller\n\t// implements, e.g. ReplicaSetController implements ReplicaSets and this event is emitted because\n\t// it acts on some changes in a ReplicaSet object.\n\t// +optional\n\tRegarding corev1.ObjectReference `json:\"regarding,omitempty\" protobuf:\"bytes,8,opt,name=regarding\"`\n\n\t// related is the optional secondary object for more complex actions. E.g. when regarding object triggers\n\t// a creation or deletion of related object.\n\t// +optional\n\tRelated *corev1.ObjectReference `json:\"related,omitempty\" protobuf:\"bytes,9,opt,name=related\"`\n\n\t// note is a human-readable description of the status of this operation.\n\t// Maximal length of the note is 1kB, but libraries should be prepared to\n\t// handle values up to 64kB.\n\t// +optional\n\tNote string `json:\"note,omitempty\" protobuf:\"bytes,10,opt,name=note\"`\n\n\t// type is the type of this event (Normal, Warning), new types could be added in the future.\n\t// It is machine-readable.\n\t// +optional\n\tType string `json:\"type,omitempty\" protobuf:\"bytes,11,opt,name=type\"`\n\n\t// deprecatedSource is the deprecated field assuring backward compatibility with core.v1 Event type.\n\t// +optional\n\tDeprecatedSource corev1.EventSource `json:\"deprecatedSource,omitempty\" protobuf:\"bytes,12,opt,name=deprecatedSource\"`\n\t// deprecatedFirstTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type.\n\t// +optional\n\tDeprecatedFirstTimestamp metav1.Time `json:\"deprecatedFirstTimestamp,omitempty\" protobuf:\"bytes,13,opt,name=deprecatedFirstTimestamp\"`\n\t// deprecatedLastTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type.\n\t// +optional\n\tDeprecatedLastTimestamp metav1.Time `json:\"deprecatedLastTimestamp,omitempty\" protobuf:\"bytes,14,opt,name=deprecatedLastTimestamp\"`\n\t// deprecatedCount is the deprecated field assuring backward compatibility with core.v1 Event type.\n\t// +optional\n\tDeprecatedCount int32 `json:\"deprecatedCount,omitempty\" protobuf:\"varint,15,opt,name=deprecatedCount\"`\n}\n\n// EventSeries contain information on series of events, i.e. thing that was/is happening\n// continuously for some time.\ntype EventSeries struct {\n\t// count is the number of occurrences in this series up to the last heartbeat time.\n\tCount int32 `json:\"count\" protobuf:\"varint,1,opt,name=count\"`\n\t// lastObservedTime is the time when last Event from the series was seen before last heartbeat.\n\tLastObservedTime metav1.MicroTime `json:\"lastObservedTime\" protobuf:\"bytes,2,opt,name=lastObservedTime\"`\n\n\t// +k8s:deprecated=state,protobuf=3\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n// +k8s:prerelease-lifecycle-gen:deprecated=1.22\n\n// EventList is a list of Event objects.\ntype EventList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is a list of schema objects.\n\tItems []Event `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/events/v1beta1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_Event = map[string]string{\n\t\"\":                         \"Event is a report of an event somewhere in the cluster. It generally denotes some state change in the system. Events have a limited retention time and triggers and messages may evolve with time.  Event consumers should not rely on the timing of an event with a given Reason reflecting a consistent underlying trigger, or the continued existence of events with that Reason.  Events should be treated as informative, best-effort, supplemental data.\",\n\t\"metadata\":                 \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"eventTime\":                \"eventTime is the time when this Event was first observed. It is required.\",\n\t\"series\":                   \"series is data about the Event series this event represents or nil if it's a singleton Event.\",\n\t\"reportingController\":      \"reportingController is the name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`. This field cannot be empty for new Events.\",\n\t\"reportingInstance\":        \"reportingInstance is the ID of the controller instance, e.g. `kubelet-xyzf`. This field cannot be empty for new Events and it can have at most 128 characters.\",\n\t\"action\":                   \"action is what action was taken/failed regarding to the regarding object. It is machine-readable. This field can have at most 128 characters.\",\n\t\"reason\":                   \"reason is why the action was taken. It is human-readable. This field can have at most 128 characters.\",\n\t\"regarding\":                \"regarding contains the object this Event is about. In most cases it's an Object reporting controller implements, e.g. ReplicaSetController implements ReplicaSets and this event is emitted because it acts on some changes in a ReplicaSet object.\",\n\t\"related\":                  \"related is the optional secondary object for more complex actions. E.g. when regarding object triggers a creation or deletion of related object.\",\n\t\"note\":                     \"note is a human-readable description of the status of this operation. Maximal length of the note is 1kB, but libraries should be prepared to handle values up to 64kB.\",\n\t\"type\":                     \"type is the type of this event (Normal, Warning), new types could be added in the future. It is machine-readable.\",\n\t\"deprecatedSource\":         \"deprecatedSource is the deprecated field assuring backward compatibility with core.v1 Event type.\",\n\t\"deprecatedFirstTimestamp\": \"deprecatedFirstTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type.\",\n\t\"deprecatedLastTimestamp\":  \"deprecatedLastTimestamp is the deprecated field assuring backward compatibility with core.v1 Event type.\",\n\t\"deprecatedCount\":          \"deprecatedCount is the deprecated field assuring backward compatibility with core.v1 Event type.\",\n}\n\nfunc (Event) SwaggerDoc() map[string]string {\n\treturn map_Event\n}\n\nvar map_EventList = map[string]string{\n\t\"\":         \"EventList is a list of Event objects.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is a list of schema objects.\",\n}\n\nfunc (EventList) SwaggerDoc() map[string]string {\n\treturn map_EventList\n}\n\nvar map_EventSeries = map[string]string{\n\t\"\":                 \"EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time.\",\n\t\"count\":            \"count is the number of occurrences in this series up to the last heartbeat time.\",\n\t\"lastObservedTime\": \"lastObservedTime is the time when last Event from the series was seen before last heartbeat.\",\n}\n\nfunc (EventSeries) SwaggerDoc() map[string]string {\n\treturn map_EventSeries\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/events/v1beta1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Event) DeepCopyInto(out *Event) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.EventTime.DeepCopyInto(&out.EventTime)\n\tif in.Series != nil {\n\t\tin, out := &in.Series, &out.Series\n\t\t*out = new(EventSeries)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tout.Regarding = in.Regarding\n\tif in.Related != nil {\n\t\tin, out := &in.Related, &out.Related\n\t\t*out = new(v1.ObjectReference)\n\t\t**out = **in\n\t}\n\tout.DeprecatedSource = in.DeprecatedSource\n\tin.DeprecatedFirstTimestamp.DeepCopyInto(&out.DeprecatedFirstTimestamp)\n\tin.DeprecatedLastTimestamp.DeepCopyInto(&out.DeprecatedLastTimestamp)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Event.\nfunc (in *Event) DeepCopy() *Event {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Event)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Event) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EventList) DeepCopyInto(out *EventList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Event, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EventList.\nfunc (in *EventList) DeepCopy() *EventList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EventList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *EventList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *EventSeries) DeepCopyInto(out *EventSeries) {\n\t*out = *in\n\tin.LastObservedTime.DeepCopyInto(&out.LastObservedTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EventSeries.\nfunc (in *EventSeries) DeepCopy() *EventSeries {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(EventSeries)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/events/v1beta1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *Event) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *Event) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *Event) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 25\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *EventList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *EventList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *EventList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 25\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/extensions/v1beta1/doc.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\npackage v1beta1 // import \"k8s.io/api/extensions/v1beta1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/extensions/v1beta1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/extensions/v1beta1/generated.proto\n\npackage v1beta1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\tv11 \"k8s.io/api/core/v1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *DaemonSet) Reset()      { *m = DaemonSet{} }\nfunc (*DaemonSet) ProtoMessage() {}\nfunc (*DaemonSet) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{0}\n}\nfunc (m *DaemonSet) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DaemonSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DaemonSet) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DaemonSet.Merge(m, src)\n}\nfunc (m *DaemonSet) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DaemonSet) XXX_DiscardUnknown() {\n\txxx_messageInfo_DaemonSet.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DaemonSet proto.InternalMessageInfo\n\nfunc (m *DaemonSetCondition) Reset()      { *m = DaemonSetCondition{} }\nfunc (*DaemonSetCondition) ProtoMessage() {}\nfunc (*DaemonSetCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{1}\n}\nfunc (m *DaemonSetCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DaemonSetCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DaemonSetCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DaemonSetCondition.Merge(m, src)\n}\nfunc (m *DaemonSetCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DaemonSetCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_DaemonSetCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DaemonSetCondition proto.InternalMessageInfo\n\nfunc (m *DaemonSetList) Reset()      { *m = DaemonSetList{} }\nfunc (*DaemonSetList) ProtoMessage() {}\nfunc (*DaemonSetList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{2}\n}\nfunc (m *DaemonSetList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DaemonSetList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DaemonSetList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DaemonSetList.Merge(m, src)\n}\nfunc (m *DaemonSetList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DaemonSetList) XXX_DiscardUnknown() {\n\txxx_messageInfo_DaemonSetList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DaemonSetList proto.InternalMessageInfo\n\nfunc (m *DaemonSetSpec) Reset()      { *m = DaemonSetSpec{} }\nfunc (*DaemonSetSpec) ProtoMessage() {}\nfunc (*DaemonSetSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{3}\n}\nfunc (m *DaemonSetSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DaemonSetSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DaemonSetSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DaemonSetSpec.Merge(m, src)\n}\nfunc (m *DaemonSetSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DaemonSetSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_DaemonSetSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DaemonSetSpec proto.InternalMessageInfo\n\nfunc (m *DaemonSetStatus) Reset()      { *m = DaemonSetStatus{} }\nfunc (*DaemonSetStatus) ProtoMessage() {}\nfunc (*DaemonSetStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{4}\n}\nfunc (m *DaemonSetStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DaemonSetStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DaemonSetStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DaemonSetStatus.Merge(m, src)\n}\nfunc (m *DaemonSetStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DaemonSetStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_DaemonSetStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DaemonSetStatus proto.InternalMessageInfo\n\nfunc (m *DaemonSetUpdateStrategy) Reset()      { *m = DaemonSetUpdateStrategy{} }\nfunc (*DaemonSetUpdateStrategy) ProtoMessage() {}\nfunc (*DaemonSetUpdateStrategy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{5}\n}\nfunc (m *DaemonSetUpdateStrategy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DaemonSetUpdateStrategy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DaemonSetUpdateStrategy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DaemonSetUpdateStrategy.Merge(m, src)\n}\nfunc (m *DaemonSetUpdateStrategy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DaemonSetUpdateStrategy) XXX_DiscardUnknown() {\n\txxx_messageInfo_DaemonSetUpdateStrategy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DaemonSetUpdateStrategy proto.InternalMessageInfo\n\nfunc (m *Deployment) Reset()      { *m = Deployment{} }\nfunc (*Deployment) ProtoMessage() {}\nfunc (*Deployment) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{6}\n}\nfunc (m *Deployment) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Deployment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Deployment) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Deployment.Merge(m, src)\n}\nfunc (m *Deployment) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Deployment) XXX_DiscardUnknown() {\n\txxx_messageInfo_Deployment.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Deployment proto.InternalMessageInfo\n\nfunc (m *DeploymentCondition) Reset()      { *m = DeploymentCondition{} }\nfunc (*DeploymentCondition) ProtoMessage() {}\nfunc (*DeploymentCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{7}\n}\nfunc (m *DeploymentCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentCondition.Merge(m, src)\n}\nfunc (m *DeploymentCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentCondition proto.InternalMessageInfo\n\nfunc (m *DeploymentList) Reset()      { *m = DeploymentList{} }\nfunc (*DeploymentList) ProtoMessage() {}\nfunc (*DeploymentList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{8}\n}\nfunc (m *DeploymentList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentList.Merge(m, src)\n}\nfunc (m *DeploymentList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentList) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentList proto.InternalMessageInfo\n\nfunc (m *DeploymentRollback) Reset()      { *m = DeploymentRollback{} }\nfunc (*DeploymentRollback) ProtoMessage() {}\nfunc (*DeploymentRollback) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{9}\n}\nfunc (m *DeploymentRollback) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentRollback) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentRollback) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentRollback.Merge(m, src)\n}\nfunc (m *DeploymentRollback) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentRollback) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentRollback.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentRollback proto.InternalMessageInfo\n\nfunc (m *DeploymentSpec) Reset()      { *m = DeploymentSpec{} }\nfunc (*DeploymentSpec) ProtoMessage() {}\nfunc (*DeploymentSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{10}\n}\nfunc (m *DeploymentSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentSpec.Merge(m, src)\n}\nfunc (m *DeploymentSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentSpec proto.InternalMessageInfo\n\nfunc (m *DeploymentStatus) Reset()      { *m = DeploymentStatus{} }\nfunc (*DeploymentStatus) ProtoMessage() {}\nfunc (*DeploymentStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{11}\n}\nfunc (m *DeploymentStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentStatus.Merge(m, src)\n}\nfunc (m *DeploymentStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentStatus proto.InternalMessageInfo\n\nfunc (m *DeploymentStrategy) Reset()      { *m = DeploymentStrategy{} }\nfunc (*DeploymentStrategy) ProtoMessage() {}\nfunc (*DeploymentStrategy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{12}\n}\nfunc (m *DeploymentStrategy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeploymentStrategy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeploymentStrategy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeploymentStrategy.Merge(m, src)\n}\nfunc (m *DeploymentStrategy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeploymentStrategy) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeploymentStrategy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeploymentStrategy proto.InternalMessageInfo\n\nfunc (m *HTTPIngressPath) Reset()      { *m = HTTPIngressPath{} }\nfunc (*HTTPIngressPath) ProtoMessage() {}\nfunc (*HTTPIngressPath) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{13}\n}\nfunc (m *HTTPIngressPath) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HTTPIngressPath) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HTTPIngressPath) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HTTPIngressPath.Merge(m, src)\n}\nfunc (m *HTTPIngressPath) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HTTPIngressPath) XXX_DiscardUnknown() {\n\txxx_messageInfo_HTTPIngressPath.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HTTPIngressPath proto.InternalMessageInfo\n\nfunc (m *HTTPIngressRuleValue) Reset()      { *m = HTTPIngressRuleValue{} }\nfunc (*HTTPIngressRuleValue) ProtoMessage() {}\nfunc (*HTTPIngressRuleValue) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{14}\n}\nfunc (m *HTTPIngressRuleValue) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HTTPIngressRuleValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HTTPIngressRuleValue) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HTTPIngressRuleValue.Merge(m, src)\n}\nfunc (m *HTTPIngressRuleValue) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HTTPIngressRuleValue) XXX_DiscardUnknown() {\n\txxx_messageInfo_HTTPIngressRuleValue.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HTTPIngressRuleValue proto.InternalMessageInfo\n\nfunc (m *IPBlock) Reset()      { *m = IPBlock{} }\nfunc (*IPBlock) ProtoMessage() {}\nfunc (*IPBlock) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{15}\n}\nfunc (m *IPBlock) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IPBlock) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IPBlock) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IPBlock.Merge(m, src)\n}\nfunc (m *IPBlock) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IPBlock) XXX_DiscardUnknown() {\n\txxx_messageInfo_IPBlock.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IPBlock proto.InternalMessageInfo\n\nfunc (m *Ingress) Reset()      { *m = Ingress{} }\nfunc (*Ingress) ProtoMessage() {}\nfunc (*Ingress) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{16}\n}\nfunc (m *Ingress) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Ingress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Ingress) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Ingress.Merge(m, src)\n}\nfunc (m *Ingress) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Ingress) XXX_DiscardUnknown() {\n\txxx_messageInfo_Ingress.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Ingress proto.InternalMessageInfo\n\nfunc (m *IngressBackend) Reset()      { *m = IngressBackend{} }\nfunc (*IngressBackend) ProtoMessage() {}\nfunc (*IngressBackend) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{17}\n}\nfunc (m *IngressBackend) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressBackend) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressBackend) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressBackend.Merge(m, src)\n}\nfunc (m *IngressBackend) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressBackend) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressBackend.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressBackend proto.InternalMessageInfo\n\nfunc (m *IngressList) Reset()      { *m = IngressList{} }\nfunc (*IngressList) ProtoMessage() {}\nfunc (*IngressList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{18}\n}\nfunc (m *IngressList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressList.Merge(m, src)\n}\nfunc (m *IngressList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressList) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressList proto.InternalMessageInfo\n\nfunc (m *IngressLoadBalancerIngress) Reset()      { *m = IngressLoadBalancerIngress{} }\nfunc (*IngressLoadBalancerIngress) ProtoMessage() {}\nfunc (*IngressLoadBalancerIngress) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{19}\n}\nfunc (m *IngressLoadBalancerIngress) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressLoadBalancerIngress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressLoadBalancerIngress) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressLoadBalancerIngress.Merge(m, src)\n}\nfunc (m *IngressLoadBalancerIngress) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressLoadBalancerIngress) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressLoadBalancerIngress.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressLoadBalancerIngress proto.InternalMessageInfo\n\nfunc (m *IngressLoadBalancerStatus) Reset()      { *m = IngressLoadBalancerStatus{} }\nfunc (*IngressLoadBalancerStatus) ProtoMessage() {}\nfunc (*IngressLoadBalancerStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{20}\n}\nfunc (m *IngressLoadBalancerStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressLoadBalancerStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressLoadBalancerStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressLoadBalancerStatus.Merge(m, src)\n}\nfunc (m *IngressLoadBalancerStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressLoadBalancerStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressLoadBalancerStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressLoadBalancerStatus proto.InternalMessageInfo\n\nfunc (m *IngressPortStatus) Reset()      { *m = IngressPortStatus{} }\nfunc (*IngressPortStatus) ProtoMessage() {}\nfunc (*IngressPortStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{21}\n}\nfunc (m *IngressPortStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressPortStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressPortStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressPortStatus.Merge(m, src)\n}\nfunc (m *IngressPortStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressPortStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressPortStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressPortStatus proto.InternalMessageInfo\n\nfunc (m *IngressRule) Reset()      { *m = IngressRule{} }\nfunc (*IngressRule) ProtoMessage() {}\nfunc (*IngressRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{22}\n}\nfunc (m *IngressRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressRule.Merge(m, src)\n}\nfunc (m *IngressRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressRule proto.InternalMessageInfo\n\nfunc (m *IngressRuleValue) Reset()      { *m = IngressRuleValue{} }\nfunc (*IngressRuleValue) ProtoMessage() {}\nfunc (*IngressRuleValue) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{23}\n}\nfunc (m *IngressRuleValue) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressRuleValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressRuleValue) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressRuleValue.Merge(m, src)\n}\nfunc (m *IngressRuleValue) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressRuleValue) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressRuleValue.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressRuleValue proto.InternalMessageInfo\n\nfunc (m *IngressSpec) Reset()      { *m = IngressSpec{} }\nfunc (*IngressSpec) ProtoMessage() {}\nfunc (*IngressSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{24}\n}\nfunc (m *IngressSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressSpec.Merge(m, src)\n}\nfunc (m *IngressSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressSpec proto.InternalMessageInfo\n\nfunc (m *IngressStatus) Reset()      { *m = IngressStatus{} }\nfunc (*IngressStatus) ProtoMessage() {}\nfunc (*IngressStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{25}\n}\nfunc (m *IngressStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressStatus.Merge(m, src)\n}\nfunc (m *IngressStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressStatus proto.InternalMessageInfo\n\nfunc (m *IngressTLS) Reset()      { *m = IngressTLS{} }\nfunc (*IngressTLS) ProtoMessage() {}\nfunc (*IngressTLS) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{26}\n}\nfunc (m *IngressTLS) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressTLS) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressTLS) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressTLS.Merge(m, src)\n}\nfunc (m *IngressTLS) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressTLS) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressTLS.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressTLS proto.InternalMessageInfo\n\nfunc (m *NetworkPolicy) Reset()      { *m = NetworkPolicy{} }\nfunc (*NetworkPolicy) ProtoMessage() {}\nfunc (*NetworkPolicy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{27}\n}\nfunc (m *NetworkPolicy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NetworkPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NetworkPolicy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NetworkPolicy.Merge(m, src)\n}\nfunc (m *NetworkPolicy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NetworkPolicy) XXX_DiscardUnknown() {\n\txxx_messageInfo_NetworkPolicy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NetworkPolicy proto.InternalMessageInfo\n\nfunc (m *NetworkPolicyEgressRule) Reset()      { *m = NetworkPolicyEgressRule{} }\nfunc (*NetworkPolicyEgressRule) ProtoMessage() {}\nfunc (*NetworkPolicyEgressRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{28}\n}\nfunc (m *NetworkPolicyEgressRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NetworkPolicyEgressRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NetworkPolicyEgressRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NetworkPolicyEgressRule.Merge(m, src)\n}\nfunc (m *NetworkPolicyEgressRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NetworkPolicyEgressRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_NetworkPolicyEgressRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NetworkPolicyEgressRule proto.InternalMessageInfo\n\nfunc (m *NetworkPolicyIngressRule) Reset()      { *m = NetworkPolicyIngressRule{} }\nfunc (*NetworkPolicyIngressRule) ProtoMessage() {}\nfunc (*NetworkPolicyIngressRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{29}\n}\nfunc (m *NetworkPolicyIngressRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NetworkPolicyIngressRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NetworkPolicyIngressRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NetworkPolicyIngressRule.Merge(m, src)\n}\nfunc (m *NetworkPolicyIngressRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NetworkPolicyIngressRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_NetworkPolicyIngressRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NetworkPolicyIngressRule proto.InternalMessageInfo\n\nfunc (m *NetworkPolicyList) Reset()      { *m = NetworkPolicyList{} }\nfunc (*NetworkPolicyList) ProtoMessage() {}\nfunc (*NetworkPolicyList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{30}\n}\nfunc (m *NetworkPolicyList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NetworkPolicyList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NetworkPolicyList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NetworkPolicyList.Merge(m, src)\n}\nfunc (m *NetworkPolicyList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NetworkPolicyList) XXX_DiscardUnknown() {\n\txxx_messageInfo_NetworkPolicyList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NetworkPolicyList proto.InternalMessageInfo\n\nfunc (m *NetworkPolicyPeer) Reset()      { *m = NetworkPolicyPeer{} }\nfunc (*NetworkPolicyPeer) ProtoMessage() {}\nfunc (*NetworkPolicyPeer) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{31}\n}\nfunc (m *NetworkPolicyPeer) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NetworkPolicyPeer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NetworkPolicyPeer) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NetworkPolicyPeer.Merge(m, src)\n}\nfunc (m *NetworkPolicyPeer) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NetworkPolicyPeer) XXX_DiscardUnknown() {\n\txxx_messageInfo_NetworkPolicyPeer.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NetworkPolicyPeer proto.InternalMessageInfo\n\nfunc (m *NetworkPolicyPort) Reset()      { *m = NetworkPolicyPort{} }\nfunc (*NetworkPolicyPort) ProtoMessage() {}\nfunc (*NetworkPolicyPort) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{32}\n}\nfunc (m *NetworkPolicyPort) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NetworkPolicyPort) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NetworkPolicyPort) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NetworkPolicyPort.Merge(m, src)\n}\nfunc (m *NetworkPolicyPort) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NetworkPolicyPort) XXX_DiscardUnknown() {\n\txxx_messageInfo_NetworkPolicyPort.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NetworkPolicyPort proto.InternalMessageInfo\n\nfunc (m *NetworkPolicySpec) Reset()      { *m = NetworkPolicySpec{} }\nfunc (*NetworkPolicySpec) ProtoMessage() {}\nfunc (*NetworkPolicySpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{33}\n}\nfunc (m *NetworkPolicySpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NetworkPolicySpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NetworkPolicySpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NetworkPolicySpec.Merge(m, src)\n}\nfunc (m *NetworkPolicySpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NetworkPolicySpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_NetworkPolicySpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NetworkPolicySpec proto.InternalMessageInfo\n\nfunc (m *ReplicaSet) Reset()      { *m = ReplicaSet{} }\nfunc (*ReplicaSet) ProtoMessage() {}\nfunc (*ReplicaSet) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{34}\n}\nfunc (m *ReplicaSet) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ReplicaSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ReplicaSet) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ReplicaSet.Merge(m, src)\n}\nfunc (m *ReplicaSet) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ReplicaSet) XXX_DiscardUnknown() {\n\txxx_messageInfo_ReplicaSet.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ReplicaSet proto.InternalMessageInfo\n\nfunc (m *ReplicaSetCondition) Reset()      { *m = ReplicaSetCondition{} }\nfunc (*ReplicaSetCondition) ProtoMessage() {}\nfunc (*ReplicaSetCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{35}\n}\nfunc (m *ReplicaSetCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ReplicaSetCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ReplicaSetCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ReplicaSetCondition.Merge(m, src)\n}\nfunc (m *ReplicaSetCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ReplicaSetCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_ReplicaSetCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ReplicaSetCondition proto.InternalMessageInfo\n\nfunc (m *ReplicaSetList) Reset()      { *m = ReplicaSetList{} }\nfunc (*ReplicaSetList) ProtoMessage() {}\nfunc (*ReplicaSetList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{36}\n}\nfunc (m *ReplicaSetList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ReplicaSetList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ReplicaSetList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ReplicaSetList.Merge(m, src)\n}\nfunc (m *ReplicaSetList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ReplicaSetList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ReplicaSetList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ReplicaSetList proto.InternalMessageInfo\n\nfunc (m *ReplicaSetSpec) Reset()      { *m = ReplicaSetSpec{} }\nfunc (*ReplicaSetSpec) ProtoMessage() {}\nfunc (*ReplicaSetSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{37}\n}\nfunc (m *ReplicaSetSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ReplicaSetSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ReplicaSetSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ReplicaSetSpec.Merge(m, src)\n}\nfunc (m *ReplicaSetSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ReplicaSetSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ReplicaSetSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ReplicaSetSpec proto.InternalMessageInfo\n\nfunc (m *ReplicaSetStatus) Reset()      { *m = ReplicaSetStatus{} }\nfunc (*ReplicaSetStatus) ProtoMessage() {}\nfunc (*ReplicaSetStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{38}\n}\nfunc (m *ReplicaSetStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ReplicaSetStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ReplicaSetStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ReplicaSetStatus.Merge(m, src)\n}\nfunc (m *ReplicaSetStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ReplicaSetStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ReplicaSetStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ReplicaSetStatus proto.InternalMessageInfo\n\nfunc (m *RollbackConfig) Reset()      { *m = RollbackConfig{} }\nfunc (*RollbackConfig) ProtoMessage() {}\nfunc (*RollbackConfig) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{39}\n}\nfunc (m *RollbackConfig) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RollbackConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RollbackConfig) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RollbackConfig.Merge(m, src)\n}\nfunc (m *RollbackConfig) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RollbackConfig) XXX_DiscardUnknown() {\n\txxx_messageInfo_RollbackConfig.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RollbackConfig proto.InternalMessageInfo\n\nfunc (m *RollingUpdateDaemonSet) Reset()      { *m = RollingUpdateDaemonSet{} }\nfunc (*RollingUpdateDaemonSet) ProtoMessage() {}\nfunc (*RollingUpdateDaemonSet) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{40}\n}\nfunc (m *RollingUpdateDaemonSet) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RollingUpdateDaemonSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RollingUpdateDaemonSet) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RollingUpdateDaemonSet.Merge(m, src)\n}\nfunc (m *RollingUpdateDaemonSet) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RollingUpdateDaemonSet) XXX_DiscardUnknown() {\n\txxx_messageInfo_RollingUpdateDaemonSet.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RollingUpdateDaemonSet proto.InternalMessageInfo\n\nfunc (m *RollingUpdateDeployment) Reset()      { *m = RollingUpdateDeployment{} }\nfunc (*RollingUpdateDeployment) ProtoMessage() {}\nfunc (*RollingUpdateDeployment) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{41}\n}\nfunc (m *RollingUpdateDeployment) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RollingUpdateDeployment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RollingUpdateDeployment) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RollingUpdateDeployment.Merge(m, src)\n}\nfunc (m *RollingUpdateDeployment) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RollingUpdateDeployment) XXX_DiscardUnknown() {\n\txxx_messageInfo_RollingUpdateDeployment.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RollingUpdateDeployment proto.InternalMessageInfo\n\nfunc (m *Scale) Reset()      { *m = Scale{} }\nfunc (*Scale) ProtoMessage() {}\nfunc (*Scale) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{42}\n}\nfunc (m *Scale) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Scale) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Scale) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Scale.Merge(m, src)\n}\nfunc (m *Scale) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Scale) XXX_DiscardUnknown() {\n\txxx_messageInfo_Scale.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Scale proto.InternalMessageInfo\n\nfunc (m *ScaleSpec) Reset()      { *m = ScaleSpec{} }\nfunc (*ScaleSpec) ProtoMessage() {}\nfunc (*ScaleSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{43}\n}\nfunc (m *ScaleSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ScaleSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ScaleSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ScaleSpec.Merge(m, src)\n}\nfunc (m *ScaleSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ScaleSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ScaleSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ScaleSpec proto.InternalMessageInfo\n\nfunc (m *ScaleStatus) Reset()      { *m = ScaleStatus{} }\nfunc (*ScaleStatus) ProtoMessage() {}\nfunc (*ScaleStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_90a532284de28347, []int{44}\n}\nfunc (m *ScaleStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ScaleStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ScaleStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ScaleStatus.Merge(m, src)\n}\nfunc (m *ScaleStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ScaleStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ScaleStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ScaleStatus proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*DaemonSet)(nil), \"k8s.io.api.extensions.v1beta1.DaemonSet\")\n\tproto.RegisterType((*DaemonSetCondition)(nil), \"k8s.io.api.extensions.v1beta1.DaemonSetCondition\")\n\tproto.RegisterType((*DaemonSetList)(nil), \"k8s.io.api.extensions.v1beta1.DaemonSetList\")\n\tproto.RegisterType((*DaemonSetSpec)(nil), \"k8s.io.api.extensions.v1beta1.DaemonSetSpec\")\n\tproto.RegisterType((*DaemonSetStatus)(nil), \"k8s.io.api.extensions.v1beta1.DaemonSetStatus\")\n\tproto.RegisterType((*DaemonSetUpdateStrategy)(nil), \"k8s.io.api.extensions.v1beta1.DaemonSetUpdateStrategy\")\n\tproto.RegisterType((*Deployment)(nil), \"k8s.io.api.extensions.v1beta1.Deployment\")\n\tproto.RegisterType((*DeploymentCondition)(nil), \"k8s.io.api.extensions.v1beta1.DeploymentCondition\")\n\tproto.RegisterType((*DeploymentList)(nil), \"k8s.io.api.extensions.v1beta1.DeploymentList\")\n\tproto.RegisterType((*DeploymentRollback)(nil), \"k8s.io.api.extensions.v1beta1.DeploymentRollback\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.extensions.v1beta1.DeploymentRollback.UpdatedAnnotationsEntry\")\n\tproto.RegisterType((*DeploymentSpec)(nil), \"k8s.io.api.extensions.v1beta1.DeploymentSpec\")\n\tproto.RegisterType((*DeploymentStatus)(nil), \"k8s.io.api.extensions.v1beta1.DeploymentStatus\")\n\tproto.RegisterType((*DeploymentStrategy)(nil), \"k8s.io.api.extensions.v1beta1.DeploymentStrategy\")\n\tproto.RegisterType((*HTTPIngressPath)(nil), \"k8s.io.api.extensions.v1beta1.HTTPIngressPath\")\n\tproto.RegisterType((*HTTPIngressRuleValue)(nil), \"k8s.io.api.extensions.v1beta1.HTTPIngressRuleValue\")\n\tproto.RegisterType((*IPBlock)(nil), \"k8s.io.api.extensions.v1beta1.IPBlock\")\n\tproto.RegisterType((*Ingress)(nil), \"k8s.io.api.extensions.v1beta1.Ingress\")\n\tproto.RegisterType((*IngressBackend)(nil), \"k8s.io.api.extensions.v1beta1.IngressBackend\")\n\tproto.RegisterType((*IngressList)(nil), \"k8s.io.api.extensions.v1beta1.IngressList\")\n\tproto.RegisterType((*IngressLoadBalancerIngress)(nil), \"k8s.io.api.extensions.v1beta1.IngressLoadBalancerIngress\")\n\tproto.RegisterType((*IngressLoadBalancerStatus)(nil), \"k8s.io.api.extensions.v1beta1.IngressLoadBalancerStatus\")\n\tproto.RegisterType((*IngressPortStatus)(nil), \"k8s.io.api.extensions.v1beta1.IngressPortStatus\")\n\tproto.RegisterType((*IngressRule)(nil), \"k8s.io.api.extensions.v1beta1.IngressRule\")\n\tproto.RegisterType((*IngressRuleValue)(nil), \"k8s.io.api.extensions.v1beta1.IngressRuleValue\")\n\tproto.RegisterType((*IngressSpec)(nil), \"k8s.io.api.extensions.v1beta1.IngressSpec\")\n\tproto.RegisterType((*IngressStatus)(nil), \"k8s.io.api.extensions.v1beta1.IngressStatus\")\n\tproto.RegisterType((*IngressTLS)(nil), \"k8s.io.api.extensions.v1beta1.IngressTLS\")\n\tproto.RegisterType((*NetworkPolicy)(nil), \"k8s.io.api.extensions.v1beta1.NetworkPolicy\")\n\tproto.RegisterType((*NetworkPolicyEgressRule)(nil), \"k8s.io.api.extensions.v1beta1.NetworkPolicyEgressRule\")\n\tproto.RegisterType((*NetworkPolicyIngressRule)(nil), \"k8s.io.api.extensions.v1beta1.NetworkPolicyIngressRule\")\n\tproto.RegisterType((*NetworkPolicyList)(nil), \"k8s.io.api.extensions.v1beta1.NetworkPolicyList\")\n\tproto.RegisterType((*NetworkPolicyPeer)(nil), \"k8s.io.api.extensions.v1beta1.NetworkPolicyPeer\")\n\tproto.RegisterType((*NetworkPolicyPort)(nil), \"k8s.io.api.extensions.v1beta1.NetworkPolicyPort\")\n\tproto.RegisterType((*NetworkPolicySpec)(nil), \"k8s.io.api.extensions.v1beta1.NetworkPolicySpec\")\n\tproto.RegisterType((*ReplicaSet)(nil), \"k8s.io.api.extensions.v1beta1.ReplicaSet\")\n\tproto.RegisterType((*ReplicaSetCondition)(nil), \"k8s.io.api.extensions.v1beta1.ReplicaSetCondition\")\n\tproto.RegisterType((*ReplicaSetList)(nil), \"k8s.io.api.extensions.v1beta1.ReplicaSetList\")\n\tproto.RegisterType((*ReplicaSetSpec)(nil), \"k8s.io.api.extensions.v1beta1.ReplicaSetSpec\")\n\tproto.RegisterType((*ReplicaSetStatus)(nil), \"k8s.io.api.extensions.v1beta1.ReplicaSetStatus\")\n\tproto.RegisterType((*RollbackConfig)(nil), \"k8s.io.api.extensions.v1beta1.RollbackConfig\")\n\tproto.RegisterType((*RollingUpdateDaemonSet)(nil), \"k8s.io.api.extensions.v1beta1.RollingUpdateDaemonSet\")\n\tproto.RegisterType((*RollingUpdateDeployment)(nil), \"k8s.io.api.extensions.v1beta1.RollingUpdateDeployment\")\n\tproto.RegisterType((*Scale)(nil), \"k8s.io.api.extensions.v1beta1.Scale\")\n\tproto.RegisterType((*ScaleSpec)(nil), \"k8s.io.api.extensions.v1beta1.ScaleSpec\")\n\tproto.RegisterType((*ScaleStatus)(nil), \"k8s.io.api.extensions.v1beta1.ScaleStatus\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.extensions.v1beta1.ScaleStatus.SelectorEntry\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/extensions/v1beta1/generated.proto\", fileDescriptor_90a532284de28347)\n}\n\nvar fileDescriptor_90a532284de28347 = []byte{\n\t// 2842 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0xcd, 0x6f, 0x24, 0x47,\n\t0x15, 0xdf, 0x9e, 0xf1, 0xd8, 0xe3, 0xe7, 0xb5, 0xbd, 0x5b, 0xeb, 0xac, 0x1d, 0x2f, 0xb1, 0xa3,\n\t0x46, 0x84, 0x4d, 0xd8, 0x9d, 0x61, 0x37, 0xc9, 0x92, 0x0f, 0x29, 0x61, 0xc7, 0xbb, 0xc9, 0x3a,\n\t0xb1, 0xc7, 0x93, 0x9a, 0x71, 0x82, 0x22, 0x02, 0xb4, 0x7b, 0xca, 0xe3, 0x8e, 0x7b, 0xba, 0x47,\n\t0xdd, 0x35, 0x66, 0x7d, 0x03, 0xc1, 0x25, 0x27, 0xb8, 0x04, 0x38, 0x22, 0x21, 0x71, 0xe5, 0xca,\n\t0x21, 0x44, 0x20, 0x82, 0xb4, 0x42, 0x1c, 0x22, 0x71, 0x20, 0x27, 0x8b, 0x38, 0x27, 0xc4, 0x3f,\n\t0x80, 0xf6, 0x84, 0xea, 0xa3, 0xab, 0xbf, 0xed, 0x1e, 0xe3, 0x58, 0x04, 0x71, 0x5a, 0x4f, 0xbd,\n\t0xf7, 0x7e, 0xf5, 0xaa, 0xea, 0xd5, 0x7b, 0xbf, 0xaa, 0xea, 0x85, 0xeb, 0xbb, 0xcf, 0xf9, 0x35,\n\t0xcb, 0xad, 0x1b, 0x03, 0xab, 0x4e, 0xee, 0x53, 0xe2, 0xf8, 0x96, 0xeb, 0xf8, 0xf5, 0xbd, 0x1b,\n\t0x5b, 0x84, 0x1a, 0x37, 0xea, 0x3d, 0xe2, 0x10, 0xcf, 0xa0, 0xa4, 0x5b, 0x1b, 0x78, 0x2e, 0x75,\n\t0xd1, 0x63, 0x42, 0xbd, 0x66, 0x0c, 0xac, 0x5a, 0xa8, 0x5e, 0x93, 0xea, 0x8b, 0xd7, 0x7b, 0x16,\n\t0xdd, 0x19, 0x6e, 0xd5, 0x4c, 0xb7, 0x5f, 0xef, 0xb9, 0x3d, 0xb7, 0xce, 0xad, 0xb6, 0x86, 0xdb,\n\t0xfc, 0x17, 0xff, 0xc1, 0xff, 0x12, 0x68, 0x8b, 0x7a, 0xa4, 0x73, 0xd3, 0xf5, 0x48, 0x7d, 0x2f,\n\t0xd5, 0xe3, 0xe2, 0x33, 0xa1, 0x4e, 0xdf, 0x30, 0x77, 0x2c, 0x87, 0x78, 0xfb, 0xf5, 0xc1, 0x6e,\n\t0x8f, 0x35, 0xf8, 0xf5, 0x3e, 0xa1, 0x46, 0x96, 0x55, 0x3d, 0xcf, 0xca, 0x1b, 0x3a, 0xd4, 0xea,\n\t0x93, 0x94, 0xc1, 0xad, 0xe3, 0x0c, 0x7c, 0x73, 0x87, 0xf4, 0x8d, 0x94, 0xdd, 0xd3, 0x79, 0x76,\n\t0x43, 0x6a, 0xd9, 0x75, 0xcb, 0xa1, 0x3e, 0xf5, 0x92, 0x46, 0xfa, 0xfb, 0x25, 0x98, 0xbc, 0x63,\n\t0x90, 0xbe, 0xeb, 0xb4, 0x09, 0x45, 0xdf, 0x83, 0x2a, 0x1b, 0x46, 0xd7, 0xa0, 0xc6, 0x82, 0xf6,\n\t0xb8, 0x76, 0x75, 0xea, 0xe6, 0xd7, 0x6b, 0xe1, 0x34, 0x2b, 0xd4, 0xda, 0x60, 0xb7, 0xc7, 0x1a,\n\t0xfc, 0x1a, 0xd3, 0xae, 0xed, 0xdd, 0xa8, 0x6d, 0x6c, 0xbd, 0x4b, 0x4c, 0xba, 0x4e, 0xa8, 0xd1,\n\t0x40, 0x0f, 0x0e, 0x96, 0xcf, 0x1d, 0x1e, 0x2c, 0x43, 0xd8, 0x86, 0x15, 0x2a, 0x6a, 0xc2, 0x98,\n\t0x3f, 0x20, 0xe6, 0x42, 0x89, 0xa3, 0x5f, 0xab, 0x1d, 0xb9, 0x88, 0x35, 0xe5, 0x59, 0x7b, 0x40,\n\t0xcc, 0xc6, 0x79, 0x89, 0x3c, 0xc6, 0x7e, 0x61, 0x8e, 0x83, 0xde, 0x84, 0x71, 0x9f, 0x1a, 0x74,\n\t0xe8, 0x2f, 0x94, 0x39, 0x62, 0xad, 0x30, 0x22, 0xb7, 0x6a, 0xcc, 0x48, 0xcc, 0x71, 0xf1, 0x1b,\n\t0x4b, 0x34, 0xfd, 0x1f, 0x25, 0x40, 0x4a, 0x77, 0xc5, 0x75, 0xba, 0x16, 0xb5, 0x5c, 0x07, 0xbd,\n\t0x00, 0x63, 0x74, 0x7f, 0x40, 0xf8, 0xe4, 0x4c, 0x36, 0x9e, 0x08, 0x1c, 0xea, 0xec, 0x0f, 0xc8,\n\t0xc3, 0x83, 0xe5, 0xcb, 0x69, 0x0b, 0x26, 0xc1, 0xdc, 0x06, 0xad, 0x29, 0x57, 0x4b, 0xdc, 0xfa,\n\t0x99, 0x78, 0xd7, 0x0f, 0x0f, 0x96, 0x33, 0x82, 0xb0, 0xa6, 0x90, 0xe2, 0x0e, 0xa2, 0x3d, 0x40,\n\t0xb6, 0xe1, 0xd3, 0x8e, 0x67, 0x38, 0xbe, 0xe8, 0xc9, 0xea, 0x13, 0x39, 0x09, 0x4f, 0x15, 0x5b,\n\t0x34, 0x66, 0xd1, 0x58, 0x94, 0x5e, 0xa0, 0xb5, 0x14, 0x1a, 0xce, 0xe8, 0x01, 0x3d, 0x01, 0xe3,\n\t0x1e, 0x31, 0x7c, 0xd7, 0x59, 0x18, 0xe3, 0xa3, 0x50, 0x13, 0x88, 0x79, 0x2b, 0x96, 0x52, 0xf4,\n\t0x24, 0x4c, 0xf4, 0x89, 0xef, 0x1b, 0x3d, 0xb2, 0x50, 0xe1, 0x8a, 0xb3, 0x52, 0x71, 0x62, 0x5d,\n\t0x34, 0xe3, 0x40, 0xae, 0x7f, 0xa0, 0xc1, 0xb4, 0x9a, 0xb9, 0x35, 0xcb, 0xa7, 0xe8, 0xdb, 0xa9,\n\t0x38, 0xac, 0x15, 0x1b, 0x12, 0xb3, 0xe6, 0x51, 0x78, 0x41, 0xf6, 0x56, 0x0d, 0x5a, 0x22, 0x31,\n\t0xb8, 0x0e, 0x15, 0x8b, 0x92, 0x3e, 0x5b, 0x87, 0xf2, 0xd5, 0xa9, 0x9b, 0x57, 0x8b, 0x86, 0x4c,\n\t0x63, 0x5a, 0x82, 0x56, 0x56, 0x99, 0x39, 0x16, 0x28, 0xfa, 0xcf, 0xc6, 0x22, 0xee, 0xb3, 0xd0,\n\t0x44, 0xef, 0x40, 0xd5, 0x27, 0x36, 0x31, 0xa9, 0xeb, 0x49, 0xf7, 0x9f, 0x2e, 0xe8, 0xbe, 0xb1,\n\t0x45, 0xec, 0xb6, 0x34, 0x6d, 0x9c, 0x67, 0xfe, 0x07, 0xbf, 0xb0, 0x82, 0x44, 0x6f, 0x40, 0x95,\n\t0x92, 0xfe, 0xc0, 0x36, 0x28, 0x91, 0xfb, 0xe8, 0xcb, 0xd1, 0x21, 0xb0, 0xc8, 0x61, 0x60, 0x2d,\n\t0xb7, 0xdb, 0x91, 0x6a, 0x7c, 0xfb, 0xa8, 0x29, 0x09, 0x5a, 0xb1, 0x82, 0x41, 0x7b, 0x30, 0x33,\n\t0x1c, 0x74, 0x99, 0x26, 0x65, 0xd9, 0xa1, 0xb7, 0x2f, 0x23, 0xe9, 0x56, 0xd1, 0xb9, 0xd9, 0x8c,\n\t0x59, 0x37, 0x2e, 0xcb, 0xbe, 0x66, 0xe2, 0xed, 0x38, 0xd1, 0x0b, 0xba, 0x0d, 0xb3, 0x7d, 0xcb,\n\t0xc1, 0xc4, 0xe8, 0xee, 0xb7, 0x89, 0xe9, 0x3a, 0x5d, 0x9f, 0x87, 0x55, 0xa5, 0x31, 0x2f, 0x01,\n\t0x66, 0xd7, 0xe3, 0x62, 0x9c, 0xd4, 0x47, 0xaf, 0x01, 0x0a, 0x86, 0xf1, 0xaa, 0x48, 0x6e, 0x96,\n\t0xeb, 0xf0, 0x98, 0x2b, 0x87, 0xc1, 0xdd, 0x49, 0x69, 0xe0, 0x0c, 0x2b, 0xb4, 0x06, 0x73, 0x1e,\n\t0xd9, 0xb3, 0xd8, 0x18, 0xef, 0x59, 0x3e, 0x75, 0xbd, 0xfd, 0x35, 0xab, 0x6f, 0xd1, 0x85, 0x71,\n\t0xee, 0xd3, 0xc2, 0xe1, 0xc1, 0xf2, 0x1c, 0xce, 0x90, 0xe3, 0x4c, 0x2b, 0xfd, 0xe7, 0xe3, 0x30,\n\t0x9b, 0xc8, 0x37, 0xe8, 0x4d, 0xb8, 0x6c, 0x0e, 0x3d, 0x8f, 0x38, 0xb4, 0x39, 0xec, 0x6f, 0x11,\n\t0xaf, 0x6d, 0xee, 0x90, 0xee, 0xd0, 0x26, 0x5d, 0x1e, 0x28, 0x95, 0xc6, 0x92, 0xf4, 0xf8, 0xf2,\n\t0x4a, 0xa6, 0x16, 0xce, 0xb1, 0x66, 0xb3, 0xe0, 0xf0, 0xa6, 0x75, 0xcb, 0xf7, 0x15, 0x66, 0x89,\n\t0x63, 0xaa, 0x59, 0x68, 0xa6, 0x34, 0x70, 0x86, 0x15, 0xf3, 0xb1, 0x4b, 0x7c, 0xcb, 0x23, 0xdd,\n\t0xa4, 0x8f, 0xe5, 0xb8, 0x8f, 0x77, 0x32, 0xb5, 0x70, 0x8e, 0x35, 0x7a, 0x16, 0xa6, 0x44, 0x6f,\n\t0x7c, 0xfd, 0xe4, 0x42, 0x5f, 0x92, 0x60, 0x53, 0xcd, 0x50, 0x84, 0xa3, 0x7a, 0x6c, 0x68, 0xee,\n\t0x96, 0x4f, 0xbc, 0x3d, 0xd2, 0xcd, 0x5f, 0xe0, 0x8d, 0x94, 0x06, 0xce, 0xb0, 0x62, 0x43, 0x13,\n\t0x11, 0x98, 0x1a, 0xda, 0x78, 0x7c, 0x68, 0x9b, 0x99, 0x5a, 0x38, 0xc7, 0x9a, 0xc5, 0xb1, 0x70,\n\t0xf9, 0xf6, 0x9e, 0x61, 0xd9, 0xc6, 0x96, 0x4d, 0x16, 0x26, 0xe2, 0x71, 0xdc, 0x8c, 0x8b, 0x71,\n\t0x52, 0x1f, 0xbd, 0x0a, 0x17, 0x45, 0xd3, 0xa6, 0x63, 0x28, 0x90, 0x2a, 0x07, 0x79, 0x54, 0x82,\n\t0x5c, 0x6c, 0x26, 0x15, 0x70, 0xda, 0x06, 0xbd, 0x00, 0x33, 0xa6, 0x6b, 0xdb, 0x3c, 0x1e, 0x57,\n\t0xdc, 0xa1, 0x43, 0x17, 0x26, 0x39, 0x0a, 0x62, 0xfb, 0x71, 0x25, 0x26, 0xc1, 0x09, 0x4d, 0x44,\n\t0x00, 0xcc, 0xa0, 0xe0, 0xf8, 0x0b, 0xc0, 0xf3, 0xe3, 0x8d, 0xa2, 0x39, 0x40, 0x95, 0xaa, 0x90,\n\t0x03, 0xa8, 0x26, 0x1f, 0x47, 0x80, 0xf5, 0x3f, 0x6b, 0x30, 0x9f, 0x93, 0x3a, 0xd0, 0xcb, 0xb1,\n\t0x12, 0xfb, 0xb5, 0x44, 0x89, 0xbd, 0x92, 0x63, 0x16, 0xa9, 0xb3, 0x0e, 0x4c, 0x7b, 0x6c, 0x54,\n\t0x4e, 0x4f, 0xa8, 0xc8, 0x1c, 0xf9, 0xec, 0x31, 0xc3, 0xc0, 0x51, 0x9b, 0x30, 0xe7, 0x5f, 0x3c,\n\t0x3c, 0x58, 0x9e, 0x8e, 0xc9, 0x70, 0x1c, 0x5e, 0xff, 0x45, 0x09, 0xe0, 0x0e, 0x19, 0xd8, 0xee,\n\t0x7e, 0x9f, 0x38, 0x67, 0xc1, 0xa1, 0x36, 0x62, 0x1c, 0xea, 0xfa, 0x71, 0xcb, 0xa3, 0x5c, 0xcb,\n\t0x25, 0x51, 0x6f, 0x25, 0x48, 0x54, 0xbd, 0x38, 0xe4, 0xd1, 0x2c, 0xea, 0x6f, 0x65, 0xb8, 0x14,\n\t0x2a, 0x87, 0x34, 0xea, 0xc5, 0xd8, 0x1a, 0x7f, 0x35, 0xb1, 0xc6, 0xf3, 0x19, 0x26, 0x9f, 0x1b,\n\t0x8f, 0x7a, 0x17, 0x66, 0x18, 0xcb, 0x11, 0x6b, 0xc9, 0x39, 0xd4, 0xf8, 0xc8, 0x1c, 0x4a, 0x55,\n\t0xbb, 0xb5, 0x18, 0x12, 0x4e, 0x20, 0xe7, 0x70, 0xb6, 0x89, 0x2f, 0x22, 0x67, 0xfb, 0x50, 0x83,\n\t0x99, 0x70, 0x99, 0xce, 0x80, 0xb4, 0x35, 0xe3, 0xa4, 0xed, 0xc9, 0xc2, 0x21, 0x9a, 0xc3, 0xda,\n\t0xfe, 0xc5, 0x08, 0xbe, 0x52, 0x62, 0x1b, 0x7c, 0xcb, 0x30, 0x77, 0xd1, 0xe3, 0x30, 0xe6, 0x18,\n\t0xfd, 0x20, 0x32, 0xd5, 0x66, 0x69, 0x1a, 0x7d, 0x82, 0xb9, 0x04, 0xbd, 0xaf, 0x01, 0x92, 0x55,\n\t0xe0, 0xb6, 0xe3, 0xb8, 0xd4, 0x10, 0xb9, 0x52, 0xb8, 0xb5, 0x5a, 0xd8, 0xad, 0xa0, 0xc7, 0xda,\n\t0x66, 0x0a, 0xeb, 0xae, 0x43, 0xbd, 0xfd, 0x70, 0x91, 0xd3, 0x0a, 0x38, 0xc3, 0x01, 0x64, 0x00,\n\t0x78, 0x12, 0xb3, 0xe3, 0xca, 0x8d, 0x7c, 0xbd, 0x40, 0xce, 0x63, 0x06, 0x2b, 0xae, 0xb3, 0x6d,\n\t0xf5, 0xc2, 0xb4, 0x83, 0x15, 0x10, 0x8e, 0x80, 0x2e, 0xde, 0x85, 0xf9, 0x1c, 0x6f, 0xd1, 0x05,\n\t0x28, 0xef, 0x92, 0x7d, 0x31, 0x6d, 0x98, 0xfd, 0x89, 0xe6, 0xa0, 0xb2, 0x67, 0xd8, 0x43, 0x91,\n\t0x7e, 0x27, 0xb1, 0xf8, 0xf1, 0x42, 0xe9, 0x39, 0x4d, 0xff, 0xa0, 0x12, 0x8d, 0x1d, 0xce, 0x98,\n\t0xaf, 0x42, 0xd5, 0x23, 0x03, 0xdb, 0x32, 0x0d, 0x5f, 0x12, 0x21, 0x4e, 0x7e, 0xb1, 0x6c, 0xc3,\n\t0x4a, 0x1a, 0xe3, 0xd6, 0xa5, 0xcf, 0x97, 0x5b, 0x97, 0x4f, 0x87, 0x5b, 0x7f, 0x17, 0xaa, 0x7e,\n\t0xc0, 0xaa, 0xc7, 0x38, 0xe4, 0x8d, 0x11, 0xf2, 0xab, 0x24, 0xd4, 0xaa, 0x03, 0x45, 0xa5, 0x15,\n\t0x68, 0x16, 0x89, 0xae, 0x8c, 0x48, 0xa2, 0x4f, 0x95, 0xf8, 0xb2, 0x7c, 0x33, 0x30, 0x86, 0x3e,\n\t0xe9, 0xf2, 0xdc, 0x56, 0x0d, 0xf3, 0x4d, 0x8b, 0xb7, 0x62, 0x29, 0x45, 0xef, 0xc4, 0x42, 0xb6,\n\t0x7a, 0x92, 0x90, 0x9d, 0xc9, 0x0f, 0x57, 0xb4, 0x09, 0xf3, 0x03, 0xcf, 0xed, 0x79, 0xc4, 0xf7,\n\t0xef, 0x10, 0xa3, 0x6b, 0x5b, 0x0e, 0x09, 0xe6, 0x47, 0x30, 0xa2, 0x2b, 0x87, 0x07, 0xcb, 0xf3,\n\t0xad, 0x6c, 0x15, 0x9c, 0x67, 0xab, 0x3f, 0x18, 0x83, 0x0b, 0xc9, 0x0a, 0x98, 0x43, 0x52, 0xb5,\n\t0x13, 0x91, 0xd4, 0x6b, 0x91, 0xcd, 0x20, 0x18, 0xbc, 0x5a, 0xfd, 0x8c, 0x0d, 0x71, 0x1b, 0x66,\n\t0x65, 0x36, 0x08, 0x84, 0x92, 0xa6, 0xab, 0xd5, 0xdf, 0x8c, 0x8b, 0x71, 0x52, 0x1f, 0xbd, 0x08,\n\t0xd3, 0x1e, 0xe7, 0xdd, 0x01, 0x80, 0xe0, 0xae, 0x8f, 0x48, 0x80, 0x69, 0x1c, 0x15, 0xe2, 0xb8,\n\t0x2e, 0xe3, 0xad, 0x21, 0x1d, 0x0d, 0x00, 0xc6, 0xe2, 0xbc, 0xf5, 0x76, 0x52, 0x01, 0xa7, 0x6d,\n\t0xd0, 0x3a, 0x5c, 0x1a, 0x3a, 0x69, 0x28, 0x11, 0xca, 0x57, 0x24, 0xd4, 0xa5, 0xcd, 0xb4, 0x0a,\n\t0xce, 0xb2, 0x43, 0xdb, 0x31, 0x2a, 0x3b, 0xce, 0xd3, 0xf3, 0xcd, 0xc2, 0x1b, 0xaf, 0x30, 0x97,\n\t0xcd, 0xa0, 0xdb, 0xd5, 0xa2, 0x74, 0x5b, 0xff, 0x83, 0x16, 0x2d, 0x42, 0x8a, 0x02, 0x1f, 0x77,\n\t0xcb, 0x94, 0xb2, 0x88, 0xb0, 0x23, 0x37, 0x9b, 0xfd, 0xde, 0x1a, 0x89, 0xfd, 0x86, 0xc5, 0xf3,\n\t0x78, 0xfa, 0xfb, 0x47, 0x0d, 0x66, 0xef, 0x75, 0x3a, 0xad, 0x55, 0x87, 0xef, 0x96, 0x96, 0x41,\n\t0x77, 0x58, 0x15, 0x1d, 0x18, 0x74, 0x27, 0x59, 0x45, 0x99, 0x0c, 0x73, 0x09, 0x7a, 0x06, 0xaa,\n\t0xec, 0x5f, 0xe6, 0x38, 0x0f, 0xd7, 0x49, 0x9e, 0x64, 0xaa, 0x2d, 0xd9, 0xf6, 0x30, 0xf2, 0x37,\n\t0x56, 0x9a, 0xe8, 0x5b, 0x30, 0xc1, 0xf6, 0x36, 0x71, 0xba, 0x05, 0xc9, 0xaf, 0x74, 0xaa, 0x21,\n\t0x8c, 0x42, 0x3e, 0x23, 0x1b, 0x70, 0x00, 0xa7, 0xef, 0xc2, 0x5c, 0x64, 0x10, 0x78, 0x68, 0x93,\n\t0x37, 0x59, 0xbd, 0x42, 0x6d, 0xa8, 0xb0, 0xde, 0x59, 0x55, 0x2a, 0x17, 0xb8, 0x5e, 0x4c, 0x4c,\n\t0x44, 0xc8, 0x3d, 0xd8, 0x2f, 0x1f, 0x0b, 0x2c, 0x7d, 0x03, 0x26, 0x56, 0x5b, 0x0d, 0xdb, 0x15,\n\t0x7c, 0xc3, 0xb4, 0xba, 0x5e, 0x72, 0xa6, 0x56, 0x56, 0xef, 0x60, 0xcc, 0x25, 0x48, 0x87, 0x71,\n\t0x72, 0xdf, 0x24, 0x03, 0xca, 0x29, 0xc6, 0x64, 0x03, 0x58, 0x22, 0xbd, 0xcb, 0x5b, 0xb0, 0x94,\n\t0xe8, 0x3f, 0x29, 0xc1, 0x84, 0xec, 0xf6, 0x0c, 0xce, 0x1f, 0x6b, 0xb1, 0xf3, 0xc7, 0x53, 0xc5,\n\t0x96, 0x20, 0xf7, 0xf0, 0xd1, 0x49, 0x1c, 0x3e, 0xae, 0x15, 0xc4, 0x3b, 0xfa, 0xe4, 0xf1, 0x5e,\n\t0x09, 0x66, 0xe2, 0x8b, 0x8f, 0x9e, 0x85, 0x29, 0x96, 0x6a, 0x2d, 0x93, 0x34, 0x43, 0x86, 0xa7,\n\t0xae, 0x1f, 0xda, 0xa1, 0x08, 0x47, 0xf5, 0x50, 0x4f, 0x99, 0xb5, 0x5c, 0x8f, 0xca, 0x41, 0xe7,\n\t0x4f, 0xe9, 0x90, 0x5a, 0x76, 0x4d, 0x5c, 0xb6, 0xd7, 0x56, 0x1d, 0xba, 0xe1, 0xb5, 0xa9, 0x67,\n\t0x39, 0xbd, 0x54, 0x47, 0x0c, 0x0c, 0x47, 0x91, 0xd1, 0x5b, 0x2c, 0xed, 0xfb, 0xee, 0xd0, 0x33,\n\t0x49, 0x16, 0x7d, 0x0b, 0xa8, 0x07, 0xdb, 0x08, 0xdd, 0x35, 0xd7, 0x34, 0x6c, 0xb1, 0x38, 0x98,\n\t0x6c, 0x13, 0x8f, 0x38, 0x26, 0x09, 0x28, 0x93, 0x80, 0xc0, 0x0a, 0x4c, 0xff, 0xad, 0x06, 0x53,\n\t0x72, 0x2e, 0xce, 0x80, 0xa8, 0xbf, 0x1e, 0x27, 0xea, 0x4f, 0x14, 0xdc, 0xa1, 0xd9, 0x2c, 0xfd,\n\t0x77, 0x1a, 0x2c, 0x06, 0xae, 0xbb, 0x46, 0xb7, 0x61, 0xd8, 0x86, 0x63, 0x12, 0x2f, 0x88, 0xf5,\n\t0x45, 0x28, 0x59, 0x03, 0xb9, 0x92, 0x20, 0x01, 0x4a, 0xab, 0x2d, 0x5c, 0xb2, 0x06, 0xac, 0x8a,\n\t0xee, 0xb8, 0x3e, 0xe5, 0x6c, 0x5e, 0x1c, 0x14, 0x95, 0xd7, 0xf7, 0x64, 0x3b, 0x56, 0x1a, 0x68,\n\t0x13, 0x2a, 0x03, 0xd7, 0xa3, 0xac, 0x72, 0x95, 0x13, 0xeb, 0x7b, 0x84, 0xd7, 0x6c, 0xdd, 0x64,\n\t0x20, 0x86, 0x3b, 0x9d, 0xc1, 0x60, 0x81, 0xa6, 0xff, 0x50, 0x83, 0x47, 0x33, 0xfc, 0x97, 0xa4,\n\t0xa1, 0x0b, 0x13, 0x96, 0x10, 0xca, 0xf4, 0xf2, 0x7c, 0xb1, 0x6e, 0x33, 0xa6, 0x22, 0x4c, 0x6d,\n\t0x41, 0x0a, 0x0b, 0xa0, 0xf5, 0x5f, 0x69, 0x70, 0x31, 0xe5, 0x2f, 0x4f, 0xd1, 0x2c, 0x9e, 0x25,\n\t0xdb, 0x56, 0x29, 0x9a, 0x85, 0x25, 0x97, 0xa0, 0xd7, 0xa1, 0xca, 0xdf, 0x88, 0x4c, 0xd7, 0x96,\n\t0x13, 0x58, 0x0f, 0x26, 0xb0, 0x25, 0xdb, 0x1f, 0x1e, 0x2c, 0x5f, 0xc9, 0x38, 0x6b, 0x07, 0x62,\n\t0xac, 0x00, 0xd0, 0x32, 0x54, 0x88, 0xe7, 0xb9, 0x9e, 0x4c, 0xf6, 0x93, 0x6c, 0xa6, 0xee, 0xb2,\n\t0x06, 0x2c, 0xda, 0xf5, 0x5f, 0x87, 0x41, 0xca, 0xb2, 0x2f, 0xf3, 0x8f, 0x2d, 0x4e, 0x32, 0x31,\n\t0xb2, 0xa5, 0xc3, 0x5c, 0x82, 0x86, 0x70, 0xc1, 0x4a, 0xa4, 0x6b, 0xb9, 0x3b, 0xeb, 0xc5, 0xa6,\n\t0x51, 0x99, 0x35, 0x16, 0x24, 0xfc, 0x85, 0xa4, 0x04, 0xa7, 0xba, 0xd0, 0x09, 0xa4, 0xb4, 0xd0,\n\t0x1b, 0x30, 0xb6, 0x43, 0xe9, 0x20, 0xe3, 0xb2, 0xff, 0x98, 0x22, 0x11, 0xba, 0x50, 0xe5, 0xa3,\n\t0xeb, 0x74, 0x5a, 0x98, 0x43, 0xe9, 0xbf, 0x2f, 0xa9, 0xf9, 0xe0, 0x27, 0xa4, 0x6f, 0xaa, 0xd1,\n\t0xae, 0xd8, 0x86, 0xef, 0xf3, 0x14, 0x26, 0x4e, 0xf3, 0x73, 0x11, 0xc7, 0x95, 0x0c, 0xa7, 0xb4,\n\t0x51, 0x27, 0x2c, 0x9e, 0xda, 0x49, 0x8a, 0xe7, 0x54, 0x56, 0xe1, 0x44, 0xf7, 0xa0, 0x4c, 0xed,\n\t0xa2, 0xa7, 0x72, 0x89, 0xd8, 0x59, 0x6b, 0x37, 0xa6, 0xe4, 0x94, 0x97, 0x3b, 0x6b, 0x6d, 0xcc,\n\t0x20, 0xd0, 0x06, 0x54, 0xbc, 0xa1, 0x4d, 0x58, 0x1d, 0x28, 0x17, 0xaf, 0x2b, 0x6c, 0x06, 0xc3,\n\t0xcd, 0xc7, 0x7e, 0xf9, 0x58, 0xe0, 0xe8, 0x3f, 0xd2, 0x60, 0x3a, 0x56, 0x2d, 0x90, 0x07, 0xe7,\n\t0xed, 0xc8, 0xde, 0x91, 0xf3, 0xf0, 0xdc, 0xe8, 0xbb, 0x4e, 0x6e, 0xfa, 0x39, 0xd9, 0xef, 0xf9,\n\t0xa8, 0x0c, 0xc7, 0xfa, 0xd0, 0x0d, 0x80, 0x70, 0xd8, 0x6c, 0x1f, 0xb0, 0xe0, 0x15, 0x1b, 0x5e,\n\t0xee, 0x03, 0x16, 0xd3, 0x3e, 0x16, 0xed, 0xe8, 0x26, 0x80, 0x4f, 0x4c, 0x8f, 0xd0, 0x66, 0x98,\n\t0xb8, 0x54, 0x39, 0x6e, 0x2b, 0x09, 0x8e, 0x68, 0xe9, 0x7f, 0xd2, 0x60, 0xba, 0x49, 0xe8, 0xf7,\n\t0x5d, 0x6f, 0xb7, 0xe5, 0xda, 0x96, 0xb9, 0x7f, 0x06, 0x24, 0x00, 0xc7, 0x48, 0xc0, 0x71, 0xf9,\n\t0x32, 0xe6, 0x5d, 0x1e, 0x15, 0xd0, 0x3f, 0xd4, 0x60, 0x3e, 0xa6, 0x79, 0x37, 0xcc, 0x07, 0x2a,\n\t0x41, 0x6b, 0x85, 0x12, 0x74, 0x0c, 0x86, 0x25, 0xb5, 0xec, 0x04, 0x8d, 0xd6, 0xa0, 0x44, 0x5d,\n\t0x19, 0xbd, 0xa3, 0x61, 0x12, 0xe2, 0x85, 0x35, 0xa7, 0xe3, 0xe2, 0x12, 0x75, 0xd9, 0x42, 0x2c,\n\t0xc4, 0xb4, 0xa2, 0x19, 0xed, 0x73, 0x1a, 0x01, 0x86, 0xb1, 0x6d, 0xcf, 0xed, 0x9f, 0x78, 0x0c,\n\t0x6a, 0x21, 0x5e, 0xf1, 0xdc, 0x3e, 0xe6, 0x58, 0xfa, 0x47, 0x1a, 0x5c, 0x8c, 0x69, 0x9e, 0x01,\n\t0x6f, 0x78, 0x23, 0xce, 0x1b, 0xae, 0x8d, 0x32, 0x90, 0x1c, 0xf6, 0xf0, 0x51, 0x29, 0x31, 0x0c,\n\t0x36, 0x60, 0xb4, 0x0d, 0x53, 0x03, 0xb7, 0xdb, 0x3e, 0x85, 0x07, 0xda, 0x59, 0xc6, 0xe7, 0x5a,\n\t0x21, 0x16, 0x8e, 0x02, 0xa3, 0xfb, 0x70, 0x91, 0x51, 0x0b, 0x7f, 0x60, 0x98, 0xa4, 0x7d, 0x0a,\n\t0x57, 0x56, 0x8f, 0xf0, 0x17, 0xa0, 0x24, 0x22, 0x4e, 0x77, 0x82, 0xd6, 0x61, 0xc2, 0x1a, 0xf0,\n\t0xf3, 0x85, 0x24, 0x92, 0xc7, 0x92, 0x30, 0x71, 0x1a, 0x11, 0x29, 0x5e, 0xfe, 0xc0, 0x01, 0x86,\n\t0xfe, 0xd7, 0x64, 0x34, 0x70, 0xba, 0xfa, 0x6a, 0x84, 0x1e, 0xc8, 0xb7, 0x9a, 0x93, 0x51, 0x83,\n\t0xa6, 0x64, 0x22, 0x27, 0x65, 0xd6, 0xd5, 0x04, 0x6f, 0xf9, 0x0a, 0x4c, 0x10, 0xa7, 0xcb, 0xc9,\n\t0xba, 0xb8, 0x08, 0xe1, 0xa3, 0xba, 0x2b, 0x9a, 0x70, 0x20, 0xd3, 0x7f, 0x5c, 0x4e, 0x8c, 0x8a,\n\t0x97, 0xd9, 0x77, 0x4f, 0x2d, 0x38, 0x14, 0xe1, 0xcf, 0x0d, 0x90, 0xad, 0x90, 0xfe, 0x89, 0x98,\n\t0xff, 0xc6, 0x28, 0x31, 0x1f, 0xad, 0x7f, 0xb9, 0xe4, 0x0f, 0x7d, 0x07, 0xc6, 0x89, 0xe8, 0x42,\n\t0x54, 0xd5, 0x5b, 0xa3, 0x74, 0x11, 0xa6, 0xdf, 0xf0, 0x9c, 0x25, 0xdb, 0x24, 0x2a, 0x7a, 0x99,\n\t0xcd, 0x17, 0xd3, 0x65, 0xc7, 0x12, 0xc1, 0x9e, 0x27, 0x1b, 0x8f, 0x89, 0x61, 0xab, 0xe6, 0x87,\n\t0x07, 0xcb, 0x10, 0xfe, 0xc4, 0x51, 0x0b, 0xfe, 0x7a, 0x26, 0xef, 0x6c, 0xce, 0xe6, 0x0b, 0xa4,\n\t0xd1, 0x5e, 0xcf, 0x42, 0xd7, 0x4e, 0xed, 0xf5, 0x2c, 0x02, 0x79, 0xf4, 0x19, 0xf6, 0x9f, 0x25,\n\t0xb8, 0x14, 0x2a, 0x17, 0x7e, 0x3d, 0xcb, 0x30, 0xf9, 0xff, 0x57, 0x48, 0xc5, 0x5e, 0xb4, 0xc2,\n\t0xa9, 0xfb, 0xef, 0x7b, 0xd1, 0x0a, 0x7d, 0xcb, 0xa9, 0x76, 0xbf, 0x29, 0x45, 0x07, 0x30, 0xe2,\n\t0xb3, 0xca, 0x29, 0x7c, 0x88, 0xf3, 0x85, 0x7b, 0x99, 0xd1, 0xff, 0x52, 0x86, 0x0b, 0xc9, 0xdd,\n\t0x18, 0xbb, 0x7d, 0xd7, 0x8e, 0xbd, 0x7d, 0x6f, 0xc1, 0xdc, 0xf6, 0xd0, 0xb6, 0xf7, 0xf9, 0x18,\n\t0x22, 0x57, 0xf0, 0xe2, 0xde, 0xfe, 0x4b, 0xd2, 0x72, 0xee, 0x95, 0x0c, 0x1d, 0x9c, 0x69, 0x99,\n\t0xbe, 0x8c, 0x1f, 0xfb, 0x4f, 0x2f, 0xe3, 0x2b, 0x27, 0xb8, 0x8c, 0xcf, 0x7e, 0xcf, 0x28, 0x9f,\n\t0xe8, 0x3d, 0xe3, 0x24, 0x37, 0xf1, 0x19, 0x49, 0xec, 0xd8, 0xaf, 0x4a, 0x5e, 0x82, 0x99, 0xf8,\n\t0xeb, 0x90, 0x58, 0x4b, 0xf1, 0x40, 0x25, 0xdf, 0x62, 0x22, 0x6b, 0x29, 0xda, 0xb1, 0xd2, 0xd0,\n\t0x0f, 0x35, 0xb8, 0x9c, 0xfd, 0x15, 0x08, 0xb2, 0x61, 0xa6, 0x6f, 0xdc, 0x8f, 0x7e, 0x99, 0xa3,\n\t0x9d, 0x90, 0xad, 0xf0, 0x67, 0x81, 0xf5, 0x18, 0x16, 0x4e, 0x60, 0xa3, 0xb7, 0xa1, 0xda, 0x37,\n\t0xee, 0xb7, 0x87, 0x5e, 0x8f, 0x9c, 0x98, 0x15, 0xf1, 0x6d, 0xb4, 0x2e, 0x51, 0xb0, 0xc2, 0xd3,\n\t0x3f, 0xd3, 0x60, 0x3e, 0xe7, 0xb2, 0xff, 0x7f, 0x68, 0x94, 0xef, 0x95, 0xa0, 0xd2, 0x36, 0x0d,\n\t0x9b, 0x9c, 0x01, 0xa1, 0x78, 0x2d, 0x46, 0x28, 0x8e, 0xfb, 0x9a, 0x94, 0x7b, 0x95, 0xcb, 0x25,\n\t0x70, 0x82, 0x4b, 0x3c, 0x55, 0x08, 0xed, 0x68, 0x1a, 0xf1, 0x3c, 0x4c, 0xaa, 0x4e, 0x47, 0xcb,\n\t0x6e, 0xfa, 0x2f, 0x4b, 0x30, 0x15, 0xe9, 0x62, 0xc4, 0xdc, 0xb8, 0x1d, 0x2b, 0x08, 0xe5, 0x02,\n\t0x37, 0x2d, 0x91, 0xbe, 0x6a, 0x41, 0x09, 0x10, 0x5f, 0x43, 0x84, 0xef, 0xdf, 0xe9, 0xca, 0xf0,\n\t0x12, 0xcc, 0x50, 0xc3, 0xeb, 0x11, 0xaa, 0x68, 0xbb, 0xb8, 0x64, 0x54, 0x9f, 0xe5, 0x74, 0x62,\n\t0x52, 0x9c, 0xd0, 0x5e, 0x7c, 0x11, 0xa6, 0x63, 0x9d, 0x8d, 0xf2, 0x31, 0x43, 0x63, 0xe5, 0xc1,\n\t0xa7, 0x4b, 0xe7, 0x3e, 0xfe, 0x74, 0xe9, 0xdc, 0x27, 0x9f, 0x2e, 0x9d, 0xfb, 0xc1, 0xe1, 0x92,\n\t0xf6, 0xe0, 0x70, 0x49, 0xfb, 0xf8, 0x70, 0x49, 0xfb, 0xe4, 0x70, 0x49, 0xfb, 0xfb, 0xe1, 0x92,\n\t0xf6, 0xd3, 0xcf, 0x96, 0xce, 0xbd, 0xfd, 0xd8, 0x91, 0xff, 0xb7, 0xe1, 0xdf, 0x01, 0x00, 0x00,\n\t0xff, 0xff, 0x5f, 0xd8, 0x14, 0x50, 0xfb, 0x30, 0x00, 0x00,\n}\n\nfunc (m *DaemonSet) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DaemonSet) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DaemonSet) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DaemonSetCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DaemonSetCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DaemonSetCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DaemonSetList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DaemonSetList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DaemonSetList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DaemonSetSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DaemonSetSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DaemonSetSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.RevisionHistoryLimit != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.RevisionHistoryLimit))\n\t\ti--\n\t\tdAtA[i] = 0x30\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.TemplateGeneration))\n\ti--\n\tdAtA[i] = 0x28\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds))\n\ti--\n\tdAtA[i] = 0x20\n\t{\n\t\tsize, err := m.UpdateStrategy.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Template.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DaemonSetStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DaemonSetStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DaemonSetStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x52\n\t\t}\n\t}\n\tif m.CollisionCount != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.CollisionCount))\n\t\ti--\n\t\tdAtA[i] = 0x48\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.NumberUnavailable))\n\ti--\n\tdAtA[i] = 0x40\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.NumberAvailable))\n\ti--\n\tdAtA[i] = 0x38\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.UpdatedNumberScheduled))\n\ti--\n\tdAtA[i] = 0x30\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration))\n\ti--\n\tdAtA[i] = 0x28\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.NumberReady))\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.DesiredNumberScheduled))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.NumberMisscheduled))\n\ti--\n\tdAtA[i] = 0x10\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.CurrentNumberScheduled))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DaemonSetUpdateStrategy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DaemonSetUpdateStrategy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DaemonSetUpdateStrategy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.RollingUpdate != nil {\n\t\t{\n\t\t\tsize, err := m.RollingUpdate.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Deployment) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Deployment) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Deployment) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x3a\n\t{\n\t\tsize, err := m.LastUpdateTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentRollback) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentRollback) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentRollback) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.RollbackTo.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.UpdatedAnnotations) > 0 {\n\t\tkeysForUpdatedAnnotations := make([]string, 0, len(m.UpdatedAnnotations))\n\t\tfor k := range m.UpdatedAnnotations {\n\t\t\tkeysForUpdatedAnnotations = append(keysForUpdatedAnnotations, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForUpdatedAnnotations)\n\t\tfor iNdEx := len(keysForUpdatedAnnotations) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.UpdatedAnnotations[string(keysForUpdatedAnnotations[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForUpdatedAnnotations[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForUpdatedAnnotations[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForUpdatedAnnotations[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ProgressDeadlineSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.ProgressDeadlineSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x48\n\t}\n\tif m.RollbackTo != nil {\n\t\t{\n\t\t\tsize, err := m.RollbackTo.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x42\n\t}\n\ti--\n\tif m.Paused {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x38\n\tif m.RevisionHistoryLimit != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.RevisionHistoryLimit))\n\t\ti--\n\t\tdAtA[i] = 0x30\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds))\n\ti--\n\tdAtA[i] = 0x28\n\t{\n\t\tsize, err := m.Strategy.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.Template.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Replicas != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Replicas))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.CollisionCount != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.CollisionCount))\n\t\ti--\n\t\tdAtA[i] = 0x40\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ReadyReplicas))\n\ti--\n\tdAtA[i] = 0x38\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.UnavailableReplicas))\n\ti--\n\tdAtA[i] = 0x28\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.AvailableReplicas))\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.UpdatedReplicas))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Replicas))\n\ti--\n\tdAtA[i] = 0x10\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeploymentStrategy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeploymentStrategy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeploymentStrategy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.RollingUpdate != nil {\n\t\t{\n\t\t\tsize, err := m.RollingUpdate.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HTTPIngressPath) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HTTPIngressPath) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HTTPIngressPath) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.PathType != nil {\n\t\ti -= len(*m.PathType)\n\t\tcopy(dAtA[i:], *m.PathType)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.PathType)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\t{\n\t\tsize, err := m.Backend.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Path)\n\tcopy(dAtA[i:], m.Path)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Path)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HTTPIngressRuleValue) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HTTPIngressRuleValue) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HTTPIngressRuleValue) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Paths) > 0 {\n\t\tfor iNdEx := len(m.Paths) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Paths[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IPBlock) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IPBlock) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IPBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Except) > 0 {\n\t\tfor iNdEx := len(m.Except) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Except[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Except[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Except[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.CIDR)\n\tcopy(dAtA[i:], m.CIDR)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.CIDR)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Ingress) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Ingress) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Ingress) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressBackend) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressBackend) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressBackend) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Resource != nil {\n\t\t{\n\t\t\tsize, err := m.Resource.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\t{\n\t\tsize, err := m.ServicePort.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.ServiceName)\n\tcopy(dAtA[i:], m.ServiceName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ServiceName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressLoadBalancerIngress) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressLoadBalancerIngress) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressLoadBalancerIngress) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Ports) > 0 {\n\t\tfor iNdEx := len(m.Ports) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ports[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\ti -= len(m.Hostname)\n\tcopy(dAtA[i:], m.Hostname)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Hostname)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.IP)\n\tcopy(dAtA[i:], m.IP)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.IP)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressLoadBalancerStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressLoadBalancerStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressLoadBalancerStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Ingress) > 0 {\n\t\tfor iNdEx := len(m.Ingress) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ingress[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressPortStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressPortStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressPortStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Error != nil {\n\t\ti -= len(*m.Error)\n\t\tcopy(dAtA[i:], *m.Error)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Error)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti -= len(m.Protocol)\n\tcopy(dAtA[i:], m.Protocol)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Protocol)))\n\ti--\n\tdAtA[i] = 0x12\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Port))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.IngressRuleValue.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Host)\n\tcopy(dAtA[i:], m.Host)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Host)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressRuleValue) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressRuleValue) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressRuleValue) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.HTTP != nil {\n\t\t{\n\t\t\tsize, err := m.HTTP.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.IngressClassName != nil {\n\t\ti -= len(*m.IngressClassName)\n\t\tcopy(dAtA[i:], *m.IngressClassName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.IngressClassName)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif len(m.Rules) > 0 {\n\t\tfor iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Rules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.TLS) > 0 {\n\t\tfor iNdEx := len(m.TLS) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.TLS[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif m.Backend != nil {\n\t\t{\n\t\t\tsize, err := m.Backend.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.LoadBalancer.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressTLS) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressTLS) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressTLS) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.SecretName)\n\tcopy(dAtA[i:], m.SecretName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.SecretName)))\n\ti--\n\tdAtA[i] = 0x12\n\tif len(m.Hosts) > 0 {\n\t\tfor iNdEx := len(m.Hosts) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Hosts[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Hosts[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Hosts[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NetworkPolicy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NetworkPolicy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NetworkPolicy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NetworkPolicyEgressRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NetworkPolicyEgressRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NetworkPolicyEgressRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.To) > 0 {\n\t\tfor iNdEx := len(m.To) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.To[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Ports) > 0 {\n\t\tfor iNdEx := len(m.Ports) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ports[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NetworkPolicyIngressRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NetworkPolicyIngressRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NetworkPolicyIngressRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.From) > 0 {\n\t\tfor iNdEx := len(m.From) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.From[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Ports) > 0 {\n\t\tfor iNdEx := len(m.Ports) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ports[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NetworkPolicyList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NetworkPolicyList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NetworkPolicyList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NetworkPolicyPeer) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NetworkPolicyPeer) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NetworkPolicyPeer) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.IPBlock != nil {\n\t\t{\n\t\t\tsize, err := m.IPBlock.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.NamespaceSelector != nil {\n\t\t{\n\t\t\tsize, err := m.NamespaceSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.PodSelector != nil {\n\t\t{\n\t\t\tsize, err := m.PodSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NetworkPolicyPort) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NetworkPolicyPort) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NetworkPolicyPort) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.EndPort != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.EndPort))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif m.Port != nil {\n\t\t{\n\t\t\tsize, err := m.Port.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Protocol != nil {\n\t\ti -= len(*m.Protocol)\n\t\tcopy(dAtA[i:], *m.Protocol)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Protocol)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NetworkPolicySpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NetworkPolicySpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NetworkPolicySpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.PolicyTypes) > 0 {\n\t\tfor iNdEx := len(m.PolicyTypes) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.PolicyTypes[iNdEx])\n\t\t\tcopy(dAtA[i:], m.PolicyTypes[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.PolicyTypes[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif len(m.Egress) > 0 {\n\t\tfor iNdEx := len(m.Egress) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Egress[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.Ingress) > 0 {\n\t\tfor iNdEx := len(m.Ingress) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ingress[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.PodSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ReplicaSet) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ReplicaSet) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ReplicaSet) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ReplicaSetCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ReplicaSetCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ReplicaSetCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ReplicaSetList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ReplicaSetList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ReplicaSetList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ReplicaSetSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ReplicaSetSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ReplicaSetSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds))\n\ti--\n\tdAtA[i] = 0x20\n\t{\n\t\tsize, err := m.Template.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Replicas != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Replicas))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ReplicaSetStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ReplicaSetStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ReplicaSetStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.AvailableReplicas))\n\ti--\n\tdAtA[i] = 0x28\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ReadyReplicas))\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.FullyLabeledReplicas))\n\ti--\n\tdAtA[i] = 0x10\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Replicas))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RollbackConfig) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RollbackConfig) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RollbackConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Revision))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RollingUpdateDaemonSet) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RollingUpdateDaemonSet) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RollingUpdateDaemonSet) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.MaxSurge != nil {\n\t\t{\n\t\t\tsize, err := m.MaxSurge.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.MaxUnavailable != nil {\n\t\t{\n\t\t\tsize, err := m.MaxUnavailable.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RollingUpdateDeployment) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RollingUpdateDeployment) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RollingUpdateDeployment) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.MaxSurge != nil {\n\t\t{\n\t\t\tsize, err := m.MaxSurge.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.MaxUnavailable != nil {\n\t\t{\n\t\t\tsize, err := m.MaxUnavailable.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Scale) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Scale) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Scale) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ScaleSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ScaleSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ScaleSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Replicas))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ScaleStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ScaleStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ScaleStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.TargetSelector)\n\tcopy(dAtA[i:], m.TargetSelector)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.TargetSelector)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.Selector) > 0 {\n\t\tkeysForSelector := make([]string, 0, len(m.Selector))\n\t\tfor k := range m.Selector {\n\t\t\tkeysForSelector = append(keysForSelector, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForSelector)\n\t\tfor iNdEx := len(keysForSelector) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Selector[string(keysForSelector[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForSelector[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForSelector[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForSelector[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Replicas))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *DaemonSet) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *DaemonSetCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *DaemonSetList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *DaemonSetSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = m.Template.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.UpdateStrategy.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.MinReadySeconds))\n\tn += 1 + sovGenerated(uint64(m.TemplateGeneration))\n\tif m.RevisionHistoryLimit != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.RevisionHistoryLimit))\n\t}\n\treturn n\n}\n\nfunc (m *DaemonSetStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.CurrentNumberScheduled))\n\tn += 1 + sovGenerated(uint64(m.NumberMisscheduled))\n\tn += 1 + sovGenerated(uint64(m.DesiredNumberScheduled))\n\tn += 1 + sovGenerated(uint64(m.NumberReady))\n\tn += 1 + sovGenerated(uint64(m.ObservedGeneration))\n\tn += 1 + sovGenerated(uint64(m.UpdatedNumberScheduled))\n\tn += 1 + sovGenerated(uint64(m.NumberAvailable))\n\tn += 1 + sovGenerated(uint64(m.NumberUnavailable))\n\tif m.CollisionCount != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.CollisionCount))\n\t}\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *DaemonSetUpdateStrategy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.RollingUpdate != nil {\n\t\tl = m.RollingUpdate.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *Deployment) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *DeploymentCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastUpdateTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *DeploymentList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *DeploymentRollback) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.UpdatedAnnotations) > 0 {\n\t\tfor k, v := range m.UpdatedAnnotations {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tl = m.RollbackTo.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *DeploymentSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Replicas != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Replicas))\n\t}\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = m.Template.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Strategy.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.MinReadySeconds))\n\tif m.RevisionHistoryLimit != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.RevisionHistoryLimit))\n\t}\n\tn += 2\n\tif m.RollbackTo != nil {\n\t\tl = m.RollbackTo.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ProgressDeadlineSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.ProgressDeadlineSeconds))\n\t}\n\treturn n\n}\n\nfunc (m *DeploymentStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.ObservedGeneration))\n\tn += 1 + sovGenerated(uint64(m.Replicas))\n\tn += 1 + sovGenerated(uint64(m.UpdatedReplicas))\n\tn += 1 + sovGenerated(uint64(m.AvailableReplicas))\n\tn += 1 + sovGenerated(uint64(m.UnavailableReplicas))\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tn += 1 + sovGenerated(uint64(m.ReadyReplicas))\n\tif m.CollisionCount != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.CollisionCount))\n\t}\n\treturn n\n}\n\nfunc (m *DeploymentStrategy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.RollingUpdate != nil {\n\t\tl = m.RollingUpdate.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *HTTPIngressPath) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Path)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Backend.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.PathType != nil {\n\t\tl = len(*m.PathType)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *HTTPIngressRuleValue) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Paths) > 0 {\n\t\tfor _, e := range m.Paths {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *IPBlock) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.CIDR)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Except) > 0 {\n\t\tfor _, s := range m.Except {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *Ingress) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *IngressBackend) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.ServiceName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.ServicePort.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Resource != nil {\n\t\tl = m.Resource.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *IngressList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *IngressLoadBalancerIngress) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.IP)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Hostname)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Ports) > 0 {\n\t\tfor _, e := range m.Ports {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *IngressLoadBalancerStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Ingress) > 0 {\n\t\tfor _, e := range m.Ingress {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *IngressPortStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Port))\n\tl = len(m.Protocol)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Error != nil {\n\t\tl = len(*m.Error)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *IngressRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Host)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.IngressRuleValue.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *IngressRuleValue) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.HTTP != nil {\n\t\tl = m.HTTP.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *IngressSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Backend != nil {\n\t\tl = m.Backend.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.TLS) > 0 {\n\t\tfor _, e := range m.TLS {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Rules) > 0 {\n\t\tfor _, e := range m.Rules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.IngressClassName != nil {\n\t\tl = len(*m.IngressClassName)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *IngressStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.LoadBalancer.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *IngressTLS) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Hosts) > 0 {\n\t\tfor _, s := range m.Hosts {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.SecretName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *NetworkPolicy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *NetworkPolicyEgressRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Ports) > 0 {\n\t\tfor _, e := range m.Ports {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.To) > 0 {\n\t\tfor _, e := range m.To {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *NetworkPolicyIngressRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Ports) > 0 {\n\t\tfor _, e := range m.Ports {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.From) > 0 {\n\t\tfor _, e := range m.From {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *NetworkPolicyList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *NetworkPolicyPeer) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.PodSelector != nil {\n\t\tl = m.PodSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.NamespaceSelector != nil {\n\t\tl = m.NamespaceSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.IPBlock != nil {\n\t\tl = m.IPBlock.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *NetworkPolicyPort) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Protocol != nil {\n\t\tl = len(*m.Protocol)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Port != nil {\n\t\tl = m.Port.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.EndPort != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.EndPort))\n\t}\n\treturn n\n}\n\nfunc (m *NetworkPolicySpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.PodSelector.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Ingress) > 0 {\n\t\tfor _, e := range m.Ingress {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Egress) > 0 {\n\t\tfor _, e := range m.Egress {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.PolicyTypes) > 0 {\n\t\tfor _, s := range m.PolicyTypes {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ReplicaSet) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ReplicaSetCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ReplicaSetList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ReplicaSetSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Replicas != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Replicas))\n\t}\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = m.Template.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.MinReadySeconds))\n\treturn n\n}\n\nfunc (m *ReplicaSetStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Replicas))\n\tn += 1 + sovGenerated(uint64(m.FullyLabeledReplicas))\n\tn += 1 + sovGenerated(uint64(m.ObservedGeneration))\n\tn += 1 + sovGenerated(uint64(m.ReadyReplicas))\n\tn += 1 + sovGenerated(uint64(m.AvailableReplicas))\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *RollbackConfig) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Revision))\n\treturn n\n}\n\nfunc (m *RollingUpdateDaemonSet) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.MaxUnavailable != nil {\n\t\tl = m.MaxUnavailable.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.MaxSurge != nil {\n\t\tl = m.MaxSurge.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *RollingUpdateDeployment) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.MaxUnavailable != nil {\n\t\tl = m.MaxUnavailable.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.MaxSurge != nil {\n\t\tl = m.MaxSurge.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *Scale) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ScaleSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Replicas))\n\treturn n\n}\n\nfunc (m *ScaleStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Replicas))\n\tif len(m.Selector) > 0 {\n\t\tfor k, v := range m.Selector {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tl = len(m.TargetSelector)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *DaemonSet) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DaemonSet{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"DaemonSetSpec\", \"DaemonSetSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"DaemonSetStatus\", \"DaemonSetStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DaemonSetCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DaemonSetCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DaemonSetList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]DaemonSet{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"DaemonSet\", \"DaemonSet\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&DaemonSetList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DaemonSetSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DaemonSetSpec{`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`Template:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Template), \"PodTemplateSpec\", \"v11.PodTemplateSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`UpdateStrategy:` + strings.Replace(strings.Replace(this.UpdateStrategy.String(), \"DaemonSetUpdateStrategy\", \"DaemonSetUpdateStrategy\", 1), `&`, ``, 1) + `,`,\n\t\t`MinReadySeconds:` + fmt.Sprintf(\"%v\", this.MinReadySeconds) + `,`,\n\t\t`TemplateGeneration:` + fmt.Sprintf(\"%v\", this.TemplateGeneration) + `,`,\n\t\t`RevisionHistoryLimit:` + valueToStringGenerated(this.RevisionHistoryLimit) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DaemonSetStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]DaemonSetCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"DaemonSetCondition\", \"DaemonSetCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&DaemonSetStatus{`,\n\t\t`CurrentNumberScheduled:` + fmt.Sprintf(\"%v\", this.CurrentNumberScheduled) + `,`,\n\t\t`NumberMisscheduled:` + fmt.Sprintf(\"%v\", this.NumberMisscheduled) + `,`,\n\t\t`DesiredNumberScheduled:` + fmt.Sprintf(\"%v\", this.DesiredNumberScheduled) + `,`,\n\t\t`NumberReady:` + fmt.Sprintf(\"%v\", this.NumberReady) + `,`,\n\t\t`ObservedGeneration:` + fmt.Sprintf(\"%v\", this.ObservedGeneration) + `,`,\n\t\t`UpdatedNumberScheduled:` + fmt.Sprintf(\"%v\", this.UpdatedNumberScheduled) + `,`,\n\t\t`NumberAvailable:` + fmt.Sprintf(\"%v\", this.NumberAvailable) + `,`,\n\t\t`NumberUnavailable:` + fmt.Sprintf(\"%v\", this.NumberUnavailable) + `,`,\n\t\t`CollisionCount:` + valueToStringGenerated(this.CollisionCount) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DaemonSetUpdateStrategy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DaemonSetUpdateStrategy{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`RollingUpdate:` + strings.Replace(this.RollingUpdate.String(), \"RollingUpdateDaemonSet\", \"RollingUpdateDaemonSet\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Deployment) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Deployment{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"DeploymentSpec\", \"DeploymentSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"DeploymentStatus\", \"DeploymentStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeploymentCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`LastUpdateTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastUpdateTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Deployment{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Deployment\", \"Deployment\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&DeploymentList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentRollback) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForUpdatedAnnotations := make([]string, 0, len(this.UpdatedAnnotations))\n\tfor k := range this.UpdatedAnnotations {\n\t\tkeysForUpdatedAnnotations = append(keysForUpdatedAnnotations, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForUpdatedAnnotations)\n\tmapStringForUpdatedAnnotations := \"map[string]string{\"\n\tfor _, k := range keysForUpdatedAnnotations {\n\t\tmapStringForUpdatedAnnotations += fmt.Sprintf(\"%v: %v,\", k, this.UpdatedAnnotations[k])\n\t}\n\tmapStringForUpdatedAnnotations += \"}\"\n\ts := strings.Join([]string{`&DeploymentRollback{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`UpdatedAnnotations:` + mapStringForUpdatedAnnotations + `,`,\n\t\t`RollbackTo:` + strings.Replace(strings.Replace(this.RollbackTo.String(), \"RollbackConfig\", \"RollbackConfig\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeploymentSpec{`,\n\t\t`Replicas:` + valueToStringGenerated(this.Replicas) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`Template:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Template), \"PodTemplateSpec\", \"v11.PodTemplateSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Strategy:` + strings.Replace(strings.Replace(this.Strategy.String(), \"DeploymentStrategy\", \"DeploymentStrategy\", 1), `&`, ``, 1) + `,`,\n\t\t`MinReadySeconds:` + fmt.Sprintf(\"%v\", this.MinReadySeconds) + `,`,\n\t\t`RevisionHistoryLimit:` + valueToStringGenerated(this.RevisionHistoryLimit) + `,`,\n\t\t`Paused:` + fmt.Sprintf(\"%v\", this.Paused) + `,`,\n\t\t`RollbackTo:` + strings.Replace(this.RollbackTo.String(), \"RollbackConfig\", \"RollbackConfig\", 1) + `,`,\n\t\t`ProgressDeadlineSeconds:` + valueToStringGenerated(this.ProgressDeadlineSeconds) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]DeploymentCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"DeploymentCondition\", \"DeploymentCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&DeploymentStatus{`,\n\t\t`ObservedGeneration:` + fmt.Sprintf(\"%v\", this.ObservedGeneration) + `,`,\n\t\t`Replicas:` + fmt.Sprintf(\"%v\", this.Replicas) + `,`,\n\t\t`UpdatedReplicas:` + fmt.Sprintf(\"%v\", this.UpdatedReplicas) + `,`,\n\t\t`AvailableReplicas:` + fmt.Sprintf(\"%v\", this.AvailableReplicas) + `,`,\n\t\t`UnavailableReplicas:` + fmt.Sprintf(\"%v\", this.UnavailableReplicas) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`ReadyReplicas:` + fmt.Sprintf(\"%v\", this.ReadyReplicas) + `,`,\n\t\t`CollisionCount:` + valueToStringGenerated(this.CollisionCount) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeploymentStrategy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeploymentStrategy{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`RollingUpdate:` + strings.Replace(this.RollingUpdate.String(), \"RollingUpdateDeployment\", \"RollingUpdateDeployment\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HTTPIngressPath) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HTTPIngressPath{`,\n\t\t`Path:` + fmt.Sprintf(\"%v\", this.Path) + `,`,\n\t\t`Backend:` + strings.Replace(strings.Replace(this.Backend.String(), \"IngressBackend\", \"IngressBackend\", 1), `&`, ``, 1) + `,`,\n\t\t`PathType:` + valueToStringGenerated(this.PathType) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HTTPIngressRuleValue) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForPaths := \"[]HTTPIngressPath{\"\n\tfor _, f := range this.Paths {\n\t\trepeatedStringForPaths += strings.Replace(strings.Replace(f.String(), \"HTTPIngressPath\", \"HTTPIngressPath\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPaths += \"}\"\n\ts := strings.Join([]string{`&HTTPIngressRuleValue{`,\n\t\t`Paths:` + repeatedStringForPaths + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IPBlock) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IPBlock{`,\n\t\t`CIDR:` + fmt.Sprintf(\"%v\", this.CIDR) + `,`,\n\t\t`Except:` + fmt.Sprintf(\"%v\", this.Except) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Ingress) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Ingress{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"IngressSpec\", \"IngressSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"IngressStatus\", \"IngressStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressBackend) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressBackend{`,\n\t\t`ServiceName:` + fmt.Sprintf(\"%v\", this.ServiceName) + `,`,\n\t\t`ServicePort:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ServicePort), \"IntOrString\", \"intstr.IntOrString\", 1), `&`, ``, 1) + `,`,\n\t\t`Resource:` + strings.Replace(fmt.Sprintf(\"%v\", this.Resource), \"TypedLocalObjectReference\", \"v11.TypedLocalObjectReference\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Ingress{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Ingress\", \"Ingress\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&IngressList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressLoadBalancerIngress) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForPorts := \"[]IngressPortStatus{\"\n\tfor _, f := range this.Ports {\n\t\trepeatedStringForPorts += strings.Replace(strings.Replace(f.String(), \"IngressPortStatus\", \"IngressPortStatus\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPorts += \"}\"\n\ts := strings.Join([]string{`&IngressLoadBalancerIngress{`,\n\t\t`IP:` + fmt.Sprintf(\"%v\", this.IP) + `,`,\n\t\t`Hostname:` + fmt.Sprintf(\"%v\", this.Hostname) + `,`,\n\t\t`Ports:` + repeatedStringForPorts + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressLoadBalancerStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForIngress := \"[]IngressLoadBalancerIngress{\"\n\tfor _, f := range this.Ingress {\n\t\trepeatedStringForIngress += strings.Replace(strings.Replace(f.String(), \"IngressLoadBalancerIngress\", \"IngressLoadBalancerIngress\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForIngress += \"}\"\n\ts := strings.Join([]string{`&IngressLoadBalancerStatus{`,\n\t\t`Ingress:` + repeatedStringForIngress + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressPortStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressPortStatus{`,\n\t\t`Port:` + fmt.Sprintf(\"%v\", this.Port) + `,`,\n\t\t`Protocol:` + fmt.Sprintf(\"%v\", this.Protocol) + `,`,\n\t\t`Error:` + valueToStringGenerated(this.Error) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressRule{`,\n\t\t`Host:` + fmt.Sprintf(\"%v\", this.Host) + `,`,\n\t\t`IngressRuleValue:` + strings.Replace(strings.Replace(this.IngressRuleValue.String(), \"IngressRuleValue\", \"IngressRuleValue\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressRuleValue) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressRuleValue{`,\n\t\t`HTTP:` + strings.Replace(this.HTTP.String(), \"HTTPIngressRuleValue\", \"HTTPIngressRuleValue\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForTLS := \"[]IngressTLS{\"\n\tfor _, f := range this.TLS {\n\t\trepeatedStringForTLS += strings.Replace(strings.Replace(f.String(), \"IngressTLS\", \"IngressTLS\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForTLS += \"}\"\n\trepeatedStringForRules := \"[]IngressRule{\"\n\tfor _, f := range this.Rules {\n\t\trepeatedStringForRules += strings.Replace(strings.Replace(f.String(), \"IngressRule\", \"IngressRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRules += \"}\"\n\ts := strings.Join([]string{`&IngressSpec{`,\n\t\t`Backend:` + strings.Replace(this.Backend.String(), \"IngressBackend\", \"IngressBackend\", 1) + `,`,\n\t\t`TLS:` + repeatedStringForTLS + `,`,\n\t\t`Rules:` + repeatedStringForRules + `,`,\n\t\t`IngressClassName:` + valueToStringGenerated(this.IngressClassName) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressStatus{`,\n\t\t`LoadBalancer:` + strings.Replace(strings.Replace(this.LoadBalancer.String(), \"IngressLoadBalancerStatus\", \"IngressLoadBalancerStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressTLS) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressTLS{`,\n\t\t`Hosts:` + fmt.Sprintf(\"%v\", this.Hosts) + `,`,\n\t\t`SecretName:` + fmt.Sprintf(\"%v\", this.SecretName) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NetworkPolicy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NetworkPolicy{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"NetworkPolicySpec\", \"NetworkPolicySpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NetworkPolicyEgressRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForPorts := \"[]NetworkPolicyPort{\"\n\tfor _, f := range this.Ports {\n\t\trepeatedStringForPorts += strings.Replace(strings.Replace(f.String(), \"NetworkPolicyPort\", \"NetworkPolicyPort\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPorts += \"}\"\n\trepeatedStringForTo := \"[]NetworkPolicyPeer{\"\n\tfor _, f := range this.To {\n\t\trepeatedStringForTo += strings.Replace(strings.Replace(f.String(), \"NetworkPolicyPeer\", \"NetworkPolicyPeer\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForTo += \"}\"\n\ts := strings.Join([]string{`&NetworkPolicyEgressRule{`,\n\t\t`Ports:` + repeatedStringForPorts + `,`,\n\t\t`To:` + repeatedStringForTo + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NetworkPolicyIngressRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForPorts := \"[]NetworkPolicyPort{\"\n\tfor _, f := range this.Ports {\n\t\trepeatedStringForPorts += strings.Replace(strings.Replace(f.String(), \"NetworkPolicyPort\", \"NetworkPolicyPort\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPorts += \"}\"\n\trepeatedStringForFrom := \"[]NetworkPolicyPeer{\"\n\tfor _, f := range this.From {\n\t\trepeatedStringForFrom += strings.Replace(strings.Replace(f.String(), \"NetworkPolicyPeer\", \"NetworkPolicyPeer\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForFrom += \"}\"\n\ts := strings.Join([]string{`&NetworkPolicyIngressRule{`,\n\t\t`Ports:` + repeatedStringForPorts + `,`,\n\t\t`From:` + repeatedStringForFrom + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NetworkPolicyList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]NetworkPolicy{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"NetworkPolicy\", \"NetworkPolicy\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&NetworkPolicyList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NetworkPolicyPeer) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NetworkPolicyPeer{`,\n\t\t`PodSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.PodSelector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`NamespaceSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.NamespaceSelector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`IPBlock:` + strings.Replace(this.IPBlock.String(), \"IPBlock\", \"IPBlock\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NetworkPolicyPort) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NetworkPolicyPort{`,\n\t\t`Protocol:` + valueToStringGenerated(this.Protocol) + `,`,\n\t\t`Port:` + strings.Replace(fmt.Sprintf(\"%v\", this.Port), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`EndPort:` + valueToStringGenerated(this.EndPort) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NetworkPolicySpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForIngress := \"[]NetworkPolicyIngressRule{\"\n\tfor _, f := range this.Ingress {\n\t\trepeatedStringForIngress += strings.Replace(strings.Replace(f.String(), \"NetworkPolicyIngressRule\", \"NetworkPolicyIngressRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForIngress += \"}\"\n\trepeatedStringForEgress := \"[]NetworkPolicyEgressRule{\"\n\tfor _, f := range this.Egress {\n\t\trepeatedStringForEgress += strings.Replace(strings.Replace(f.String(), \"NetworkPolicyEgressRule\", \"NetworkPolicyEgressRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForEgress += \"}\"\n\ts := strings.Join([]string{`&NetworkPolicySpec{`,\n\t\t`PodSelector:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.PodSelector), \"LabelSelector\", \"v1.LabelSelector\", 1), `&`, ``, 1) + `,`,\n\t\t`Ingress:` + repeatedStringForIngress + `,`,\n\t\t`Egress:` + repeatedStringForEgress + `,`,\n\t\t`PolicyTypes:` + fmt.Sprintf(\"%v\", this.PolicyTypes) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ReplicaSet) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ReplicaSet{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ReplicaSetSpec\", \"ReplicaSetSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"ReplicaSetStatus\", \"ReplicaSetStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ReplicaSetCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ReplicaSetCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ReplicaSetList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ReplicaSet{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ReplicaSet\", \"ReplicaSet\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ReplicaSetList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ReplicaSetSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ReplicaSetSpec{`,\n\t\t`Replicas:` + valueToStringGenerated(this.Replicas) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`Template:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Template), \"PodTemplateSpec\", \"v11.PodTemplateSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`MinReadySeconds:` + fmt.Sprintf(\"%v\", this.MinReadySeconds) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ReplicaSetStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]ReplicaSetCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"ReplicaSetCondition\", \"ReplicaSetCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&ReplicaSetStatus{`,\n\t\t`Replicas:` + fmt.Sprintf(\"%v\", this.Replicas) + `,`,\n\t\t`FullyLabeledReplicas:` + fmt.Sprintf(\"%v\", this.FullyLabeledReplicas) + `,`,\n\t\t`ObservedGeneration:` + fmt.Sprintf(\"%v\", this.ObservedGeneration) + `,`,\n\t\t`ReadyReplicas:` + fmt.Sprintf(\"%v\", this.ReadyReplicas) + `,`,\n\t\t`AvailableReplicas:` + fmt.Sprintf(\"%v\", this.AvailableReplicas) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RollbackConfig) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RollbackConfig{`,\n\t\t`Revision:` + fmt.Sprintf(\"%v\", this.Revision) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RollingUpdateDaemonSet) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RollingUpdateDaemonSet{`,\n\t\t`MaxUnavailable:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaxUnavailable), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`MaxSurge:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaxSurge), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RollingUpdateDeployment) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RollingUpdateDeployment{`,\n\t\t`MaxUnavailable:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaxUnavailable), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`MaxSurge:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaxSurge), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Scale) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Scale{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ScaleSpec\", \"ScaleSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"ScaleStatus\", \"ScaleStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ScaleSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ScaleSpec{`,\n\t\t`Replicas:` + fmt.Sprintf(\"%v\", this.Replicas) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ScaleStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForSelector := make([]string, 0, len(this.Selector))\n\tfor k := range this.Selector {\n\t\tkeysForSelector = append(keysForSelector, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForSelector)\n\tmapStringForSelector := \"map[string]string{\"\n\tfor _, k := range keysForSelector {\n\t\tmapStringForSelector += fmt.Sprintf(\"%v: %v,\", k, this.Selector[k])\n\t}\n\tmapStringForSelector += \"}\"\n\ts := strings.Join([]string{`&ScaleStatus{`,\n\t\t`Replicas:` + fmt.Sprintf(\"%v\", this.Replicas) + `,`,\n\t\t`Selector:` + mapStringForSelector + `,`,\n\t\t`TargetSelector:` + fmt.Sprintf(\"%v\", this.TargetSelector) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *DaemonSet) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSet: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSet: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DaemonSetCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = DaemonSetConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DaemonSetList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, DaemonSet{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DaemonSetSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Template\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UpdateStrategy\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.UpdateStrategy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MinReadySeconds\", wireType)\n\t\t\t}\n\t\t\tm.MinReadySeconds = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MinReadySeconds |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TemplateGeneration\", wireType)\n\t\t\t}\n\t\t\tm.TemplateGeneration = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.TemplateGeneration |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RevisionHistoryLimit\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.RevisionHistoryLimit = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DaemonSetStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentNumberScheduled\", wireType)\n\t\t\t}\n\t\t\tm.CurrentNumberScheduled = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.CurrentNumberScheduled |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NumberMisscheduled\", wireType)\n\t\t\t}\n\t\t\tm.NumberMisscheduled = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.NumberMisscheduled |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DesiredNumberScheduled\", wireType)\n\t\t\t}\n\t\t\tm.DesiredNumberScheduled = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.DesiredNumberScheduled |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NumberReady\", wireType)\n\t\t\t}\n\t\t\tm.NumberReady = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.NumberReady |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tm.ObservedGeneration = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ObservedGeneration |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UpdatedNumberScheduled\", wireType)\n\t\t\t}\n\t\t\tm.UpdatedNumberScheduled = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.UpdatedNumberScheduled |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NumberAvailable\", wireType)\n\t\t\t}\n\t\t\tm.NumberAvailable = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.NumberAvailable |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NumberUnavailable\", wireType)\n\t\t\t}\n\t\t\tm.NumberUnavailable = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.NumberUnavailable |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 9:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CollisionCount\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.CollisionCount = &v\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, DaemonSetCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DaemonSetUpdateStrategy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetUpdateStrategy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DaemonSetUpdateStrategy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = DaemonSetUpdateStrategyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RollingUpdate\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RollingUpdate == nil {\n\t\t\t\tm.RollingUpdate = &RollingUpdateDaemonSet{}\n\t\t\t}\n\t\t\tif err := m.RollingUpdate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Deployment) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Deployment: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Deployment: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = DeploymentConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastUpdateTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastUpdateTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Deployment{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentRollback) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentRollback: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentRollback: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UpdatedAnnotations\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.UpdatedAnnotations == nil {\n\t\t\t\tm.UpdatedAnnotations = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.UpdatedAnnotations[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RollbackTo\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.RollbackTo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Replicas = &v\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Template\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Strategy\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Strategy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MinReadySeconds\", wireType)\n\t\t\t}\n\t\t\tm.MinReadySeconds = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MinReadySeconds |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RevisionHistoryLimit\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.RevisionHistoryLimit = &v\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Paused\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Paused = bool(v != 0)\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RollbackTo\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RollbackTo == nil {\n\t\t\t\tm.RollbackTo = &RollbackConfig{}\n\t\t\t}\n\t\t\tif err := m.RollbackTo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ProgressDeadlineSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ProgressDeadlineSeconds = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tm.ObservedGeneration = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ObservedGeneration |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tm.Replicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Replicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UpdatedReplicas\", wireType)\n\t\t\t}\n\t\t\tm.UpdatedReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.UpdatedReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AvailableReplicas\", wireType)\n\t\t\t}\n\t\t\tm.AvailableReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.AvailableReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UnavailableReplicas\", wireType)\n\t\t\t}\n\t\t\tm.UnavailableReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.UnavailableReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, DeploymentCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadyReplicas\", wireType)\n\t\t\t}\n\t\t\tm.ReadyReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ReadyReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CollisionCount\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.CollisionCount = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeploymentStrategy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentStrategy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeploymentStrategy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = DeploymentStrategyType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RollingUpdate\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.RollingUpdate == nil {\n\t\t\t\tm.RollingUpdate = &RollingUpdateDeployment{}\n\t\t\t}\n\t\t\tif err := m.RollingUpdate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HTTPIngressPath) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HTTPIngressPath: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HTTPIngressPath: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Path\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Path = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Backend\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Backend.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PathType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := PathType(dAtA[iNdEx:postIndex])\n\t\t\tm.PathType = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HTTPIngressRuleValue) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HTTPIngressRuleValue: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HTTPIngressRuleValue: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Paths\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Paths = append(m.Paths, HTTPIngressPath{})\n\t\t\tif err := m.Paths[len(m.Paths)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IPBlock) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IPBlock: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IPBlock: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CIDR\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.CIDR = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Except\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Except = append(m.Except, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Ingress) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Ingress: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Ingress: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressBackend) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressBackend: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressBackend: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServiceName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ServiceName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServicePort\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ServicePort.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Resource == nil {\n\t\t\t\tm.Resource = &v11.TypedLocalObjectReference{}\n\t\t\t}\n\t\t\tif err := m.Resource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Ingress{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressLoadBalancerIngress) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressLoadBalancerIngress: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressLoadBalancerIngress: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IP\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.IP = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Hostname\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Hostname = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ports\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ports = append(m.Ports, IngressPortStatus{})\n\t\t\tif err := m.Ports[len(m.Ports)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressLoadBalancerStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressLoadBalancerStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressLoadBalancerStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ingress\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ingress = append(m.Ingress, IngressLoadBalancerIngress{})\n\t\t\tif err := m.Ingress[len(m.Ingress)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressPortStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressPortStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressPortStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Port\", wireType)\n\t\t\t}\n\t\t\tm.Port = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Port |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Protocol\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Protocol = k8s_io_api_core_v1.Protocol(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Error\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.Error = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Host\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Host = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IngressRuleValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.IngressRuleValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressRuleValue) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressRuleValue: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressRuleValue: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HTTP\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.HTTP == nil {\n\t\t\t\tm.HTTP = &HTTPIngressRuleValue{}\n\t\t\t}\n\t\t\tif err := m.HTTP.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Backend\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Backend == nil {\n\t\t\t\tm.Backend = &IngressBackend{}\n\t\t\t}\n\t\t\tif err := m.Backend.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TLS\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TLS = append(m.TLS, IngressTLS{})\n\t\t\tif err := m.TLS[len(m.TLS)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Rules = append(m.Rules, IngressRule{})\n\t\t\tif err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IngressClassName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.IngressClassName = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LoadBalancer\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LoadBalancer.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressTLS) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressTLS: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressTLS: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Hosts\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Hosts = append(m.Hosts, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SecretName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NetworkPolicy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NetworkPolicyEgressRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyEgressRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyEgressRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ports\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ports = append(m.Ports, NetworkPolicyPort{})\n\t\t\tif err := m.Ports[len(m.Ports)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field To\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.To = append(m.To, NetworkPolicyPeer{})\n\t\t\tif err := m.To[len(m.To)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NetworkPolicyIngressRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyIngressRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyIngressRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ports\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ports = append(m.Ports, NetworkPolicyPort{})\n\t\t\tif err := m.Ports[len(m.Ports)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field From\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.From = append(m.From, NetworkPolicyPeer{})\n\t\t\tif err := m.From[len(m.From)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NetworkPolicyList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, NetworkPolicy{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NetworkPolicyPeer) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyPeer: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyPeer: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.PodSelector == nil {\n\t\t\t\tm.PodSelector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.PodSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NamespaceSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NamespaceSelector == nil {\n\t\t\t\tm.NamespaceSelector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.NamespaceSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IPBlock\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.IPBlock == nil {\n\t\t\t\tm.IPBlock = &IPBlock{}\n\t\t\t}\n\t\t\tif err := m.IPBlock.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NetworkPolicyPort) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyPort: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyPort: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Protocol\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := k8s_io_api_core_v1.Protocol(dAtA[iNdEx:postIndex])\n\t\t\tm.Protocol = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Port\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Port == nil {\n\t\t\t\tm.Port = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.Port.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EndPort\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.EndPort = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NetworkPolicySpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicySpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicySpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.PodSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ingress\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ingress = append(m.Ingress, NetworkPolicyIngressRule{})\n\t\t\tif err := m.Ingress[len(m.Ingress)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Egress\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Egress = append(m.Egress, NetworkPolicyEgressRule{})\n\t\t\tif err := m.Egress[len(m.Egress)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PolicyTypes\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PolicyTypes = append(m.PolicyTypes, PolicyType(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ReplicaSet) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSet: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSet: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ReplicaSetCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = ReplicaSetConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ReplicaSetList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ReplicaSet{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ReplicaSetSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Replicas = &v\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Template\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MinReadySeconds\", wireType)\n\t\t\t}\n\t\t\tm.MinReadySeconds = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MinReadySeconds |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ReplicaSetStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ReplicaSetStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tm.Replicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Replicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FullyLabeledReplicas\", wireType)\n\t\t\t}\n\t\t\tm.FullyLabeledReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.FullyLabeledReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tm.ObservedGeneration = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ObservedGeneration |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReadyReplicas\", wireType)\n\t\t\t}\n\t\t\tm.ReadyReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ReadyReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AvailableReplicas\", wireType)\n\t\t\t}\n\t\t\tm.AvailableReplicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.AvailableReplicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, ReplicaSetCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RollbackConfig) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RollbackConfig: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RollbackConfig: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Revision\", wireType)\n\t\t\t}\n\t\t\tm.Revision = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Revision |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RollingUpdateDaemonSet) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RollingUpdateDaemonSet: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RollingUpdateDaemonSet: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxUnavailable\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaxUnavailable == nil {\n\t\t\t\tm.MaxUnavailable = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.MaxUnavailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxSurge\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaxSurge == nil {\n\t\t\t\tm.MaxSurge = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.MaxSurge.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RollingUpdateDeployment) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RollingUpdateDeployment: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RollingUpdateDeployment: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxUnavailable\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaxUnavailable == nil {\n\t\t\t\tm.MaxUnavailable = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.MaxUnavailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxSurge\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaxSurge == nil {\n\t\t\t\tm.MaxSurge = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.MaxSurge.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Scale) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Scale: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Scale: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ScaleSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ScaleSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ScaleSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tm.Replicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Replicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ScaleStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ScaleStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ScaleStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Replicas\", wireType)\n\t\t\t}\n\t\t\tm.Replicas = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Replicas |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Selector[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TargetSelector\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TargetSelector = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/extensions/v1beta1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.extensions.v1beta1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/util/intstr/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/extensions/v1beta1\";\n\n// DEPRECATED - This group version of DaemonSet is deprecated by apps/v1beta2/DaemonSet. See the release notes for\n// more information.\n// DaemonSet represents the configuration of a daemon set.\nmessage DaemonSet {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // The desired behavior of this daemon set.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional DaemonSetSpec spec = 2;\n\n  // The current status of this daemon set. This data may be\n  // out of date by some window of time.\n  // Populated by the system.\n  // Read-only.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional DaemonSetStatus status = 3;\n}\n\n// DaemonSetCondition describes the state of a DaemonSet at a certain point.\nmessage DaemonSetCondition {\n  // Type of DaemonSet condition.\n  optional string type = 1;\n\n  // Status of the condition, one of True, False, Unknown.\n  optional string status = 2;\n\n  // Last time the condition transitioned from one status to another.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // The reason for the condition's last transition.\n  // +optional\n  optional string reason = 4;\n\n  // A human readable message indicating details about the transition.\n  // +optional\n  optional string message = 5;\n}\n\n// DaemonSetList is a collection of daemon sets.\nmessage DaemonSetList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // A list of daemon sets.\n  repeated DaemonSet items = 2;\n}\n\n// DaemonSetSpec is the specification of a daemon set.\nmessage DaemonSetSpec {\n  // A label query over pods that are managed by the daemon set.\n  // Must match in order to be controlled.\n  // If empty, defaulted to labels on Pod template.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 1;\n\n  // An object that describes the pod that will be created.\n  // The DaemonSet will create exactly one copy of this pod on every node\n  // that matches the template's node selector (or on every node if no node\n  // selector is specified).\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\n  optional .k8s.io.api.core.v1.PodTemplateSpec template = 2;\n\n  // An update strategy to replace existing DaemonSet pods with new pods.\n  // +optional\n  optional DaemonSetUpdateStrategy updateStrategy = 3;\n\n  // The minimum number of seconds for which a newly created DaemonSet pod should\n  // be ready without any of its container crashing, for it to be considered\n  // available. Defaults to 0 (pod will be considered available as soon as it\n  // is ready).\n  // +optional\n  optional int32 minReadySeconds = 4;\n\n  // DEPRECATED.\n  // A sequence number representing a specific generation of the template.\n  // Populated by the system. It can be set only during the creation.\n  // +optional\n  optional int64 templateGeneration = 5;\n\n  // The number of old history to retain to allow rollback.\n  // This is a pointer to distinguish between explicit zero and not specified.\n  // Defaults to 10.\n  // +optional\n  optional int32 revisionHistoryLimit = 6;\n}\n\n// DaemonSetStatus represents the current status of a daemon set.\nmessage DaemonSetStatus {\n  // The number of nodes that are running at least 1\n  // daemon pod and are supposed to run the daemon pod.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\n  optional int32 currentNumberScheduled = 1;\n\n  // The number of nodes that are running the daemon pod, but are\n  // not supposed to run the daemon pod.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\n  optional int32 numberMisscheduled = 2;\n\n  // The total number of nodes that should be running the daemon\n  // pod (including nodes correctly running the daemon pod).\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\n  optional int32 desiredNumberScheduled = 3;\n\n  // The number of nodes that should be running the daemon pod and have one\n  // or more of the daemon pod running and ready.\n  optional int32 numberReady = 4;\n\n  // The most recent generation observed by the daemon set controller.\n  // +optional\n  optional int64 observedGeneration = 5;\n\n  // The total number of nodes that are running updated daemon pod\n  // +optional\n  optional int32 updatedNumberScheduled = 6;\n\n  // The number of nodes that should be running the\n  // daemon pod and have one or more of the daemon pod running and\n  // available (ready for at least spec.minReadySeconds)\n  // +optional\n  optional int32 numberAvailable = 7;\n\n  // The number of nodes that should be running the\n  // daemon pod and have none of the daemon pod running and available\n  // (ready for at least spec.minReadySeconds)\n  // +optional\n  optional int32 numberUnavailable = 8;\n\n  // Count of hash collisions for the DaemonSet. The DaemonSet controller\n  // uses this field as a collision avoidance mechanism when it needs to\n  // create the name for the newest ControllerRevision.\n  // +optional\n  optional int32 collisionCount = 9;\n\n  // Represents the latest available observations of a DaemonSet's current state.\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=type\n  repeated DaemonSetCondition conditions = 10;\n}\n\n// DaemonSetUpdateStrategy indicates the strategy that the DaemonSet\n// controller will use to perform updates. It includes any additional parameters\n// necessary to perform the update for the indicated strategy.\nmessage DaemonSetUpdateStrategy {\n  // Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\".\n  // Default is OnDelete.\n  // +optional\n  optional string type = 1;\n\n  // Rolling update config params. Present only if type = \"RollingUpdate\".\n  // ---\n  // TODO: Update this to follow our convention for oneOf, whatever we decide it\n  // to be. Same as Deployment `strategy.rollingUpdate`.\n  // See https://github.com/kubernetes/kubernetes/issues/35345\n  // +optional\n  optional RollingUpdateDaemonSet rollingUpdate = 2;\n}\n\n// DEPRECATED - This group version of Deployment is deprecated by apps/v1beta2/Deployment. See the release notes for\n// more information.\n// Deployment enables declarative updates for Pods and ReplicaSets.\nmessage Deployment {\n  // Standard object metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Specification of the desired behavior of the Deployment.\n  // +optional\n  optional DeploymentSpec spec = 2;\n\n  // Most recently observed status of the Deployment.\n  // +optional\n  optional DeploymentStatus status = 3;\n}\n\n// DeploymentCondition describes the state of a deployment at a certain point.\nmessage DeploymentCondition {\n  // Type of deployment condition.\n  optional string type = 1;\n\n  // Status of the condition, one of True, False, Unknown.\n  optional string status = 2;\n\n  // The last time this condition was updated.\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastUpdateTime = 6;\n\n  // Last time the condition transitioned from one status to another.\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 7;\n\n  // The reason for the condition's last transition.\n  optional string reason = 4;\n\n  // A human readable message indicating details about the transition.\n  optional string message = 5;\n}\n\n// DeploymentList is a list of Deployments.\nmessage DeploymentList {\n  // Standard list metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is the list of Deployments.\n  repeated Deployment items = 2;\n}\n\n// DEPRECATED.\n// DeploymentRollback stores the information required to rollback a deployment.\nmessage DeploymentRollback {\n  // Required: This must match the Name of a deployment.\n  optional string name = 1;\n\n  // The annotations to be updated to a deployment\n  // +optional\n  map<string, string> updatedAnnotations = 2;\n\n  // The config of this deployment rollback.\n  optional RollbackConfig rollbackTo = 3;\n}\n\n// DeploymentSpec is the specification of the desired behavior of the Deployment.\nmessage DeploymentSpec {\n  // Number of desired pods. This is a pointer to distinguish between explicit\n  // zero and not specified. Defaults to 1.\n  // +optional\n  optional int32 replicas = 1;\n\n  // Label selector for pods. Existing ReplicaSets whose pods are\n  // selected by this will be the ones affected by this deployment.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2;\n\n  // Template describes the pods that will be created.\n  optional .k8s.io.api.core.v1.PodTemplateSpec template = 3;\n\n  // The deployment strategy to use to replace existing pods with new ones.\n  // +optional\n  // +patchStrategy=retainKeys\n  optional DeploymentStrategy strategy = 4;\n\n  // Minimum number of seconds for which a newly created pod should be ready\n  // without any of its container crashing, for it to be considered available.\n  // Defaults to 0 (pod will be considered available as soon as it is ready)\n  // +optional\n  optional int32 minReadySeconds = 5;\n\n  // The number of old ReplicaSets to retain to allow rollback.\n  // This is a pointer to distinguish between explicit zero and not specified.\n  // This is set to the max value of int32 (i.e. 2147483647) by default, which\n  // means \"retaining all old ReplicaSets\".\n  // +optional\n  optional int32 revisionHistoryLimit = 6;\n\n  // Indicates that the deployment is paused and will not be processed by the\n  // deployment controller.\n  // +optional\n  optional bool paused = 7;\n\n  // DEPRECATED.\n  // The config this deployment is rolling back to. Will be cleared after rollback is done.\n  // +optional\n  optional RollbackConfig rollbackTo = 8;\n\n  // The maximum time in seconds for a deployment to make progress before it\n  // is considered to be failed. The deployment controller will continue to\n  // process failed deployments and a condition with a ProgressDeadlineExceeded\n  // reason will be surfaced in the deployment status. Note that progress will\n  // not be estimated during the time a deployment is paused. This is set to\n  // the max value of int32 (i.e. 2147483647) by default, which means \"no deadline\".\n  // +optional\n  optional int32 progressDeadlineSeconds = 9;\n}\n\n// DeploymentStatus is the most recently observed status of the Deployment.\nmessage DeploymentStatus {\n  // The generation observed by the deployment controller.\n  // +optional\n  optional int64 observedGeneration = 1;\n\n  // Total number of non-terminated pods targeted by this deployment (their labels match the selector).\n  // +optional\n  optional int32 replicas = 2;\n\n  // Total number of non-terminated pods targeted by this deployment that have the desired template spec.\n  // +optional\n  optional int32 updatedReplicas = 3;\n\n  // Total number of ready pods targeted by this deployment.\n  // +optional\n  optional int32 readyReplicas = 7;\n\n  // Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.\n  // +optional\n  optional int32 availableReplicas = 4;\n\n  // Total number of unavailable pods targeted by this deployment. This is the total number of\n  // pods that are still required for the deployment to have 100% available capacity. They may\n  // either be pods that are running but not yet available or pods that still have not been created.\n  // +optional\n  optional int32 unavailableReplicas = 5;\n\n  // Represents the latest available observations of a deployment's current state.\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=type\n  repeated DeploymentCondition conditions = 6;\n\n  // Count of hash collisions for the Deployment. The Deployment controller uses this\n  // field as a collision avoidance mechanism when it needs to create the name for the\n  // newest ReplicaSet.\n  // +optional\n  optional int32 collisionCount = 8;\n}\n\n// DeploymentStrategy describes how to replace existing pods with new ones.\nmessage DeploymentStrategy {\n  // Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.\n  // +optional\n  optional string type = 1;\n\n  // Rolling update config params. Present only if DeploymentStrategyType =\n  // RollingUpdate.\n  // ---\n  // TODO: Update this to follow our convention for oneOf, whatever we decide it\n  // to be.\n  // +optional\n  optional RollingUpdateDeployment rollingUpdate = 2;\n}\n\n// HTTPIngressPath associates a path with a backend. Incoming urls matching the\n// path are forwarded to the backend.\nmessage HTTPIngressPath {\n  // Path is matched against the path of an incoming request. Currently it can\n  // contain characters disallowed from the conventional \"path\" part of a URL\n  // as defined by RFC 3986. Paths must begin with a '/'. When unspecified,\n  // all paths from incoming requests are matched.\n  // +optional\n  optional string path = 1;\n\n  // PathType determines the interpretation of the Path matching. PathType can\n  // be one of the following values:\n  // * Exact: Matches the URL path exactly.\n  // * Prefix: Matches based on a URL path prefix split by '/'. Matching is\n  //   done on a path element by element basis. A path element refers is the\n  //   list of labels in the path split by the '/' separator. A request is a\n  //   match for path p if every p is an element-wise prefix of p of the\n  //   request path. Note that if the last element of the path is a substring\n  //   of the last element in request path, it is not a match (e.g. /foo/bar\n  //   matches /foo/bar/baz, but does not match /foo/barbaz).\n  // * ImplementationSpecific: Interpretation of the Path matching is up to\n  //   the IngressClass. Implementations can treat this as a separate PathType\n  //   or treat it identically to Prefix or Exact path types.\n  // Implementations are required to support all path types.\n  // Defaults to ImplementationSpecific.\n  optional string pathType = 3;\n\n  // Backend defines the referenced service endpoint to which the traffic\n  // will be forwarded to.\n  optional IngressBackend backend = 2;\n}\n\n// HTTPIngressRuleValue is a list of http selectors pointing to backends.\n// In the example: http://<host>/<path>?<searchpart> -> backend where\n// where parts of the url correspond to RFC 3986, this resource will be used\n// to match against everything after the last '/' and before the first '?'\n// or '#'.\nmessage HTTPIngressRuleValue {\n  // A collection of paths that map requests to backends.\n  // +listType=atomic\n  repeated HTTPIngressPath paths = 1;\n}\n\n// DEPRECATED 1.9 - This group version of IPBlock is deprecated by networking/v1/IPBlock.\n// IPBlock describes a particular CIDR (Ex. \"192.168.1.0/24\",\"2001:db8::/64\") that is allowed\n// to the pods matched by a NetworkPolicySpec's podSelector. The except entry describes CIDRs\n// that should not be included within this rule.\nmessage IPBlock {\n  // CIDR is a string representing the IP Block\n  // Valid examples are \"192.168.1.0/24\" or \"2001:db8::/64\"\n  optional string cidr = 1;\n\n  // Except is a slice of CIDRs that should not be included within an IP Block\n  // Valid examples are \"192.168.1.0/24\" or \"2001:db8::/64\"\n  // Except values will be rejected if they are outside the CIDR range\n  // +optional\n  // +listType=atomic\n  repeated string except = 2;\n}\n\n// Ingress is a collection of rules that allow inbound connections to reach the\n// endpoints defined by a backend. An Ingress can be configured to give services\n// externally-reachable urls, load balance traffic, terminate SSL, offer name\n// based virtual hosting etc.\n// DEPRECATED - This group version of Ingress is deprecated by networking.k8s.io/v1beta1 Ingress. See the release notes for more information.\nmessage Ingress {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec is the desired state of the Ingress.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional IngressSpec spec = 2;\n\n  // Status is the current state of the Ingress.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional IngressStatus status = 3;\n}\n\n// IngressBackend describes all endpoints for a given service and port.\nmessage IngressBackend {\n  // Specifies the name of the referenced service.\n  // +optional\n  optional string serviceName = 1;\n\n  // Specifies the port of the referenced service.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString servicePort = 2;\n\n  // Resource is an ObjectRef to another Kubernetes resource in the namespace\n  // of the Ingress object. If resource is specified, serviceName and servicePort\n  // must not be specified.\n  // +optional\n  optional .k8s.io.api.core.v1.TypedLocalObjectReference resource = 3;\n}\n\n// IngressList is a collection of Ingress.\nmessage IngressList {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is the list of Ingress.\n  repeated Ingress items = 2;\n}\n\n// IngressLoadBalancerIngress represents the status of a load-balancer ingress point.\nmessage IngressLoadBalancerIngress {\n  // IP is set for load-balancer ingress points that are IP based.\n  // +optional\n  optional string ip = 1;\n\n  // Hostname is set for load-balancer ingress points that are DNS based.\n  // +optional\n  optional string hostname = 2;\n\n  // Ports provides information about the ports exposed by this LoadBalancer.\n  // +listType=atomic\n  // +optional\n  repeated IngressPortStatus ports = 4;\n}\n\n// LoadBalancerStatus represents the status of a load-balancer.\nmessage IngressLoadBalancerStatus {\n  // Ingress is a list containing ingress points for the load-balancer.\n  // +optional\n  // +listType=atomic\n  repeated IngressLoadBalancerIngress ingress = 1;\n}\n\n// IngressPortStatus represents the error condition of a service port\nmessage IngressPortStatus {\n  // Port is the port number of the ingress port.\n  optional int32 port = 1;\n\n  // Protocol is the protocol of the ingress port.\n  // The supported values are: \"TCP\", \"UDP\", \"SCTP\"\n  optional string protocol = 2;\n\n  // Error is to record the problem with the service port\n  // The format of the error shall comply with the following rules:\n  // - built-in error values shall be specified in this file and those shall use\n  //   CamelCase names\n  // - cloud provider specific error values must have names that comply with the\n  //   format foo.example.com/CamelCase.\n  // ---\n  // The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)\n  // +optional\n  // +kubebuilder:validation:Required\n  // +kubebuilder:validation:Pattern=`^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$`\n  // +kubebuilder:validation:MaxLength=316\n  optional string error = 3;\n}\n\n// IngressRule represents the rules mapping the paths under a specified host to\n// the related backend services. Incoming requests are first evaluated for a host\n// match, then routed to the backend associated with the matching IngressRuleValue.\nmessage IngressRule {\n  // Host is the fully qualified domain name of a network host, as defined by RFC 3986.\n  // Note the following deviations from the \"host\" part of the\n  // URI as defined in RFC 3986:\n  // 1. IPs are not allowed. Currently an IngressRuleValue can only apply to\n  //    the IP in the Spec of the parent Ingress.\n  // 2. The `:` delimiter is not respected because ports are not allowed.\n  // \t  Currently the port of an Ingress is implicitly :80 for http and\n  // \t  :443 for https.\n  // Both these may change in the future.\n  // Incoming requests are matched against the host before the\n  // IngressRuleValue. If the host is unspecified, the Ingress routes all\n  // traffic based on the specified IngressRuleValue.\n  //\n  // Host can be \"precise\" which is a domain name without the terminating dot of\n  // a network host (e.g. \"foo.bar.com\") or \"wildcard\", which is a domain name\n  // prefixed with a single wildcard label (e.g. \"*.foo.com\").\n  // The wildcard character '*' must appear by itself as the first DNS label and\n  // matches only a single label. You cannot have a wildcard label by itself (e.g. Host == \"*\").\n  // Requests will be matched against the Host field in the following way:\n  // 1. If Host is precise, the request matches this rule if the http host header is equal to Host.\n  // 2. If Host is a wildcard, then the request matches this rule if the http host header\n  // is to equal to the suffix (removing the first label) of the wildcard rule.\n  // +optional\n  optional string host = 1;\n\n  // IngressRuleValue represents a rule to route requests for this IngressRule.\n  // If unspecified, the rule defaults to a http catch-all. Whether that sends\n  // just traffic matching the host to the default backend or all traffic to the\n  // default backend, is left to the controller fulfilling the Ingress. Http is\n  // currently the only supported IngressRuleValue.\n  // +optional\n  optional IngressRuleValue ingressRuleValue = 2;\n}\n\n// IngressRuleValue represents a rule to apply against incoming requests. If the\n// rule is satisfied, the request is routed to the specified backend. Currently\n// mixing different types of rules in a single Ingress is disallowed, so exactly\n// one of the following must be set.\nmessage IngressRuleValue {\n  // http is a list of http selectors pointing to backends.\n  // A path is matched against the path of an incoming request. Currently it can\n  // contain characters disallowed from the conventional \"path\" part of a URL\n  // as defined by RFC 3986. Paths must begin with a '/'.\n  // A backend defines the referenced service endpoint to which the traffic\n  // will be forwarded to.\n  optional HTTPIngressRuleValue http = 1;\n}\n\n// IngressSpec describes the Ingress the user wishes to exist.\nmessage IngressSpec {\n  // IngressClassName is the name of the IngressClass cluster resource. The\n  // associated IngressClass defines which controller will implement the\n  // resource. This replaces the deprecated `kubernetes.io/ingress.class`\n  // annotation. For backwards compatibility, when that annotation is set, it\n  // must be given precedence over this field. The controller may emit a\n  // warning if the field and annotation have different values.\n  // Implementations of this API should ignore Ingresses without a class\n  // specified. An IngressClass resource may be marked as default, which can\n  // be used to set a default value for this field. For more information,\n  // refer to the IngressClass documentation.\n  // +optional\n  optional string ingressClassName = 4;\n\n  // A default backend capable of servicing requests that don't match any\n  // rule. At least one of 'backend' or 'rules' must be specified. This field\n  // is optional to allow the loadbalancer controller or defaulting logic to\n  // specify a global default.\n  // +optional\n  optional IngressBackend backend = 1;\n\n  // TLS configuration. Currently the Ingress only supports a single TLS\n  // port, 443. If multiple members of this list specify different hosts, they\n  // will be multiplexed on the same port according to the hostname specified\n  // through the SNI TLS extension, if the ingress controller fulfilling the\n  // ingress supports SNI.\n  // +optional\n  // +listType=atomic\n  repeated IngressTLS tls = 2;\n\n  // A list of host rules used to configure the Ingress. If unspecified, or\n  // no rule matches, all traffic is sent to the default backend.\n  // +optional\n  // +listType=atomic\n  repeated IngressRule rules = 3;\n}\n\n// IngressStatus describe the current state of the Ingress.\nmessage IngressStatus {\n  // LoadBalancer contains the current status of the load-balancer.\n  // +optional\n  optional IngressLoadBalancerStatus loadBalancer = 1;\n}\n\n// IngressTLS describes the transport layer security associated with an Ingress.\nmessage IngressTLS {\n  // Hosts are a list of hosts included in the TLS certificate. The values in\n  // this list must match the name/s used in the tlsSecret. Defaults to the\n  // wildcard host setting for the loadbalancer controller fulfilling this\n  // Ingress, if left unspecified.\n  // +optional\n  // +listType=atomic\n  repeated string hosts = 1;\n\n  // SecretName is the name of the secret used to terminate SSL traffic on 443.\n  // Field is left optional to allow SSL routing based on SNI hostname alone.\n  // If the SNI host in a listener conflicts with the \"Host\" header field used\n  // by an IngressRule, the SNI host is used for termination and value of the\n  // Host header is used for routing.\n  // +optional\n  optional string secretName = 2;\n}\n\n// DEPRECATED 1.9 - This group version of NetworkPolicy is deprecated by networking/v1/NetworkPolicy.\n// NetworkPolicy describes what network traffic is allowed for a set of Pods\nmessage NetworkPolicy {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Specification of the desired behavior for this NetworkPolicy.\n  // +optional\n  optional NetworkPolicySpec spec = 2;\n}\n\n// DEPRECATED 1.9 - This group version of NetworkPolicyEgressRule is deprecated by networking/v1/NetworkPolicyEgressRule.\n// NetworkPolicyEgressRule describes a particular set of traffic that is allowed out of pods\n// matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and to.\n// This type is beta-level in 1.8\nmessage NetworkPolicyEgressRule {\n  // List of destination ports for outgoing traffic.\n  // Each item in this list is combined using a logical OR. If this field is\n  // empty or missing, this rule matches all ports (traffic not restricted by port).\n  // If this field is present and contains at least one item, then this rule allows\n  // traffic only if the traffic matches at least one port in the list.\n  // +optional\n  // +listType=atomic\n  repeated NetworkPolicyPort ports = 1;\n\n  // List of destinations for outgoing traffic of pods selected for this rule.\n  // Items in this list are combined using a logical OR operation. If this field is\n  // empty or missing, this rule matches all destinations (traffic not restricted by\n  // destination). If this field is present and contains at least one item, this rule\n  // allows traffic only if the traffic matches at least one item in the to list.\n  // +optional\n  // +listType=atomic\n  repeated NetworkPolicyPeer to = 2;\n}\n\n// DEPRECATED 1.9 - This group version of NetworkPolicyIngressRule is deprecated by networking/v1/NetworkPolicyIngressRule.\n// This NetworkPolicyIngressRule matches traffic if and only if the traffic matches both ports AND from.\nmessage NetworkPolicyIngressRule {\n  // List of ports which should be made accessible on the pods selected for this rule.\n  // Each item in this list is combined using a logical OR.\n  // If this field is empty or missing, this rule matches all ports (traffic not restricted by port).\n  // If this field is present and contains at least one item, then this rule allows traffic\n  // only if the traffic matches at least one port in the list.\n  // +optional\n  // +listType=atomic\n  repeated NetworkPolicyPort ports = 1;\n\n  // List of sources which should be able to access the pods selected for this rule.\n  // Items in this list are combined using a logical OR operation.\n  // If this field is empty or missing, this rule matches all sources (traffic not restricted by source).\n  // If this field is present and contains at least one item, this rule allows traffic only if the\n  // traffic matches at least one item in the from list.\n  // +optional\n  // +listType=atomic\n  repeated NetworkPolicyPeer from = 2;\n}\n\n// DEPRECATED 1.9 - This group version of NetworkPolicyList is deprecated by networking/v1/NetworkPolicyList.\n// Network Policy List is a list of NetworkPolicy objects.\nmessage NetworkPolicyList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is a list of schema objects.\n  repeated NetworkPolicy items = 2;\n}\n\n// DEPRECATED 1.9 - This group version of NetworkPolicyPeer is deprecated by networking/v1/NetworkPolicyPeer.\nmessage NetworkPolicyPeer {\n  // This is a label selector which selects Pods. This field follows standard label\n  // selector semantics; if present but empty, it selects all pods.\n  //\n  // If NamespaceSelector is also set, then the NetworkPolicyPeer as a whole selects\n  // the Pods matching PodSelector in the Namespaces selected by NamespaceSelector.\n  // Otherwise it selects the Pods matching PodSelector in the policy's own Namespace.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector podSelector = 1;\n\n  // Selects Namespaces using cluster-scoped labels. This field follows standard label\n  // selector semantics; if present but empty, it selects all namespaces.\n  //\n  // If PodSelector is also set, then the NetworkPolicyPeer as a whole selects\n  // the Pods matching PodSelector in the Namespaces selected by NamespaceSelector.\n  // Otherwise it selects all Pods in the Namespaces selected by NamespaceSelector.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector namespaceSelector = 2;\n\n  // IPBlock defines policy on a particular IPBlock. If this field is set then\n  // neither of the other fields can be.\n  // +optional\n  optional IPBlock ipBlock = 3;\n}\n\n// DEPRECATED 1.9 - This group version of NetworkPolicyPort is deprecated by networking/v1/NetworkPolicyPort.\nmessage NetworkPolicyPort {\n  // Optional.  The protocol (TCP, UDP, or SCTP) which traffic must match.\n  // If not specified, this field defaults to TCP.\n  // +optional\n  optional string protocol = 1;\n\n  // The port on the given protocol. This can either be a numerical or named\n  // port on a pod. If this field is not provided, this matches all port names and\n  // numbers.\n  // If present, only traffic on the specified protocol AND port will be matched.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString port = 2;\n\n  // If set, indicates that the range of ports from port to endPort, inclusive,\n  // should be allowed by the policy. This field cannot be defined if the port field\n  // is not defined or if the port field is defined as a named (string) port.\n  // The endPort must be equal or greater than port.\n  // +optional\n  optional int32 endPort = 3;\n}\n\n// DEPRECATED 1.9 - This group version of NetworkPolicySpec is deprecated by networking/v1/NetworkPolicySpec.\nmessage NetworkPolicySpec {\n  // Selects the pods to which this NetworkPolicy object applies.  The array of ingress rules\n  // is applied to any pods selected by this field. Multiple network policies can select the\n  // same set of pods.  In this case, the ingress rules for each are combined additively.\n  // This field is NOT optional and follows standard label selector semantics.\n  // An empty podSelector matches all pods in this namespace.\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector podSelector = 1;\n\n  // List of ingress rules to be applied to the selected pods.\n  // Traffic is allowed to a pod if there are no NetworkPolicies selecting the pod\n  // OR if the traffic source is the pod's local node,\n  // OR if the traffic matches at least one ingress rule across all of the NetworkPolicy\n  // objects whose podSelector matches the pod.\n  // If this field is empty then this NetworkPolicy does not allow any traffic\n  // (and serves solely to ensure that the pods it selects are isolated by default).\n  // +optional\n  // +listType=atomic\n  repeated NetworkPolicyIngressRule ingress = 2;\n\n  // List of egress rules to be applied to the selected pods. Outgoing traffic is\n  // allowed if there are no NetworkPolicies selecting the pod (and cluster policy\n  // otherwise allows the traffic), OR if the traffic matches at least one egress rule\n  // across all of the NetworkPolicy objects whose podSelector matches the pod. If\n  // this field is empty then this NetworkPolicy limits all outgoing traffic (and serves\n  // solely to ensure that the pods it selects are isolated by default).\n  // This field is beta-level in 1.8\n  // +optional\n  // +listType=atomic\n  repeated NetworkPolicyEgressRule egress = 3;\n\n  // List of rule types that the NetworkPolicy relates to.\n  // Valid options are [\"Ingress\"], [\"Egress\"], or [\"Ingress\", \"Egress\"].\n  // If this field is not specified, it will default based on the existence of Ingress or Egress rules;\n  // policies that contain an Egress section are assumed to affect Egress, and all policies\n  // (whether or not they contain an Ingress section) are assumed to affect Ingress.\n  // If you want to write an egress-only policy, you must explicitly specify policyTypes [ \"Egress\" ].\n  // Likewise, if you want to write a policy that specifies that no egress is allowed,\n  // you must specify a policyTypes value that include \"Egress\" (since such a policy would not include\n  // an Egress section and would otherwise default to just [ \"Ingress\" ]).\n  // This field is beta-level in 1.8\n  // +optional\n  // +listType=atomic\n  repeated string policyTypes = 4;\n}\n\n// DEPRECATED - This group version of ReplicaSet is deprecated by apps/v1beta2/ReplicaSet. See the release notes for\n// more information.\n// ReplicaSet ensures that a specified number of pod replicas are running at any given time.\nmessage ReplicaSet {\n  // If the Labels of a ReplicaSet are empty, they are defaulted to\n  // be the same as the Pod(s) that the ReplicaSet manages.\n  // Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec defines the specification of the desired behavior of the ReplicaSet.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional ReplicaSetSpec spec = 2;\n\n  // Status is the most recently observed status of the ReplicaSet.\n  // This data may be out of date by some window of time.\n  // Populated by the system.\n  // Read-only.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional ReplicaSetStatus status = 3;\n}\n\n// ReplicaSetCondition describes the state of a replica set at a certain point.\nmessage ReplicaSetCondition {\n  // Type of replica set condition.\n  optional string type = 1;\n\n  // Status of the condition, one of True, False, Unknown.\n  optional string status = 2;\n\n  // The last time the condition transitioned from one status to another.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // The reason for the condition's last transition.\n  // +optional\n  optional string reason = 4;\n\n  // A human readable message indicating details about the transition.\n  // +optional\n  optional string message = 5;\n}\n\n// ReplicaSetList is a collection of ReplicaSets.\nmessage ReplicaSetList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // List of ReplicaSets.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller\n  repeated ReplicaSet items = 2;\n}\n\n// ReplicaSetSpec is the specification of a ReplicaSet.\nmessage ReplicaSetSpec {\n  // Replicas is the number of desired replicas.\n  // This is a pointer to distinguish between explicit zero and unspecified.\n  // Defaults to 1.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller\n  // +optional\n  optional int32 replicas = 1;\n\n  // Minimum number of seconds for which a newly created pod should be ready\n  // without any of its container crashing, for it to be considered available.\n  // Defaults to 0 (pod will be considered available as soon as it is ready)\n  // +optional\n  optional int32 minReadySeconds = 4;\n\n  // Selector is a label query over pods that should match the replica count.\n  // If the selector is empty, it is defaulted to the labels present on the pod template.\n  // Label keys and values that must match in order to be controlled by this replica set.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2;\n\n  // Template is the object that describes the pod that will be created if\n  // insufficient replicas are detected.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\n  // +optional\n  optional .k8s.io.api.core.v1.PodTemplateSpec template = 3;\n}\n\n// ReplicaSetStatus represents the current status of a ReplicaSet.\nmessage ReplicaSetStatus {\n  // Replicas is the most recently observed number of replicas.\n  // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller\n  optional int32 replicas = 1;\n\n  // The number of pods that have labels matching the labels of the pod template of the replicaset.\n  // +optional\n  optional int32 fullyLabeledReplicas = 2;\n\n  // The number of ready replicas for this replica set.\n  // +optional\n  optional int32 readyReplicas = 4;\n\n  // The number of available replicas (ready for at least minReadySeconds) for this replica set.\n  // +optional\n  optional int32 availableReplicas = 5;\n\n  // ObservedGeneration reflects the generation of the most recently observed ReplicaSet.\n  // +optional\n  optional int64 observedGeneration = 3;\n\n  // Represents the latest available observations of a replica set's current state.\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=type\n  repeated ReplicaSetCondition conditions = 6;\n}\n\n// DEPRECATED.\nmessage RollbackConfig {\n  // The revision to rollback to. If set to 0, rollback to the last revision.\n  // +optional\n  optional int64 revision = 1;\n}\n\n// Spec to control the desired behavior of daemon set rolling update.\nmessage RollingUpdateDaemonSet {\n  // The maximum number of DaemonSet pods that can be unavailable during the\n  // update. Value can be an absolute number (ex: 5) or a percentage of total\n  // number of DaemonSet pods at the start of the update (ex: 10%). Absolute\n  // number is calculated from percentage by rounding up.\n  // This cannot be 0 if MaxSurge is 0\n  // Default value is 1.\n  // Example: when this is set to 30%, at most 30% of the total number of nodes\n  // that should be running the daemon pod (i.e. status.desiredNumberScheduled)\n  // can have their pods stopped for an update at any given time. The update\n  // starts by stopping at most 30% of those DaemonSet pods and then brings\n  // up new DaemonSet pods in their place. Once the new pods are available,\n  // it then proceeds onto other DaemonSet pods, thus ensuring that at least\n  // 70% of original number of DaemonSet pods are available at all times during\n  // the update.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString maxUnavailable = 1;\n\n  // The maximum number of nodes with an existing available DaemonSet pod that\n  // can have an updated DaemonSet pod during during an update.\n  // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n  // This can not be 0 if MaxUnavailable is 0.\n  // Absolute number is calculated from percentage by rounding up to a minimum of 1.\n  // Default value is 0.\n  // Example: when this is set to 30%, at most 30% of the total number of nodes\n  // that should be running the daemon pod (i.e. status.desiredNumberScheduled)\n  // can have their a new pod created before the old pod is marked as deleted.\n  // The update starts by launching new pods on 30% of nodes. Once an updated\n  // pod is available (Ready for at least minReadySeconds) the old DaemonSet pod\n  // on that node is marked deleted. If the old pod becomes unavailable for any\n  // reason (Ready transitions to false, is evicted, or is drained) an updated\n  // pod is immediatedly created on that node without considering surge limits.\n  // Allowing surge implies the possibility that the resources consumed by the\n  // daemonset on any given node can double if the readiness check fails, and\n  // so resource intensive daemonsets should take into account that they may\n  // cause evictions during disruption.\n  // This is an alpha field and requires enabling DaemonSetUpdateSurge feature gate.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString maxSurge = 2;\n}\n\n// Spec to control the desired behavior of rolling update.\nmessage RollingUpdateDeployment {\n  // The maximum number of pods that can be unavailable during the update.\n  // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n  // Absolute number is calculated from percentage by rounding down.\n  // This can not be 0 if MaxSurge is 0.\n  // By default, a fixed value of 1 is used.\n  // Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods\n  // immediately when the rolling update starts. Once new pods are ready, old RC\n  // can be scaled down further, followed by scaling up the new RC, ensuring\n  // that the total number of pods available at all times during the update is at\n  // least 70% of desired pods.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString maxUnavailable = 1;\n\n  // The maximum number of pods that can be scheduled above the desired number of\n  // pods.\n  // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n  // This can not be 0 if MaxUnavailable is 0.\n  // Absolute number is calculated from percentage by rounding up.\n  // By default, a value of 1 is used.\n  // Example: when this is set to 30%, the new RC can be scaled up immediately when\n  // the rolling update starts, such that the total number of old and new pods do not exceed\n  // 130% of desired pods. Once old pods have been killed,\n  // new RC can be scaled up further, ensuring that total number of pods running\n  // at any time during the update is at most 130% of desired pods.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString maxSurge = 2;\n}\n\n// represents a scaling request for a resource.\nmessage Scale {\n  // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\n  // +optional\n  optional ScaleSpec spec = 2;\n\n  // current status of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. Read-only.\n  // +optional\n  optional ScaleStatus status = 3;\n}\n\n// describes the attributes of a scale subresource\nmessage ScaleSpec {\n  // desired number of instances for the scaled object.\n  // +optional\n  optional int32 replicas = 1;\n}\n\n// represents the current status of a scale subresource.\nmessage ScaleStatus {\n  // actual number of observed instances of the scaled object.\n  optional int32 replicas = 1;\n\n  // selector is a label query over pods that should match the replicas count. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\n  // +optional\n  // +mapType=atomic\n  map<string, string> selector = 2;\n\n  // label selector for pods that should match the replicas count. This is a serializated\n  // version of both map-based and more expressive set-based selectors. This is done to\n  // avoid introspection in the clients. The string will be in the same format as the\n  // query-param syntax. If the target type only supports map-based selectors, both this\n  // field and map-based selector field are populated.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n  // +optional\n  optional string targetSelector = 3;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/extensions/v1beta1/register.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"extensions\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&Deployment{},\n\t\t&DeploymentList{},\n\t\t&DeploymentRollback{},\n\t\t&Scale{},\n\t\t&DaemonSetList{},\n\t\t&DaemonSet{},\n\t\t&Ingress{},\n\t\t&IngressList{},\n\t\t&ReplicaSet{},\n\t\t&ReplicaSetList{},\n\t\t&NetworkPolicy{},\n\t\t&NetworkPolicyList{},\n\t)\n\t// Add the watch version that applies\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/extensions/v1beta1/types.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tappsv1beta1 \"k8s.io/api/apps/v1beta1\"\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// describes the attributes of a scale subresource\ntype ScaleSpec struct {\n\t// desired number of instances for the scaled object.\n\t// +optional\n\tReplicas int32 `json:\"replicas,omitempty\" protobuf:\"varint,1,opt,name=replicas\"`\n}\n\n// represents the current status of a scale subresource.\ntype ScaleStatus struct {\n\t// actual number of observed instances of the scaled object.\n\tReplicas int32 `json:\"replicas\" protobuf:\"varint,1,opt,name=replicas\"`\n\n\t// selector is a label query over pods that should match the replicas count. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\n\t// +optional\n\t// +mapType=atomic\n\tSelector map[string]string `json:\"selector,omitempty\" protobuf:\"bytes,2,rep,name=selector\"`\n\n\t// label selector for pods that should match the replicas count. This is a serializated\n\t// version of both map-based and more expressive set-based selectors. This is done to\n\t// avoid introspection in the clients. The string will be in the same format as the\n\t// query-param syntax. If the target type only supports map-based selectors, both this\n\t// field and map-based selector field are populated.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n\t// +optional\n\tTargetSelector string `json:\"targetSelector,omitempty\" protobuf:\"bytes,3,opt,name=targetSelector\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.1\n// +k8s:prerelease-lifecycle-gen:deprecated=1.2\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n\n// represents a scaling request for a resource.\ntype Scale struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\n\t// +optional\n\tSpec ScaleSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// current status of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. Read-only.\n\t// +optional\n\tStatus ScaleStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +genclient\n// +genclient:method=GetScale,verb=get,subresource=scale,result=Scale\n// +genclient:method=UpdateScale,verb=update,subresource=scale,input=Scale,result=Scale\n// +genclient:method=ApplyScale,verb=apply,subresource=scale,input=Scale,result=Scale\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.1\n// +k8s:prerelease-lifecycle-gen:deprecated=1.8\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,Deployment\n\n// DEPRECATED - This group version of Deployment is deprecated by apps/v1beta2/Deployment. See the release notes for\n// more information.\n// Deployment enables declarative updates for Pods and ReplicaSets.\ntype Deployment struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Specification of the desired behavior of the Deployment.\n\t// +optional\n\tSpec DeploymentSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Most recently observed status of the Deployment.\n\t// +optional\n\tStatus DeploymentStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// DeploymentSpec is the specification of the desired behavior of the Deployment.\ntype DeploymentSpec struct {\n\t// Number of desired pods. This is a pointer to distinguish between explicit\n\t// zero and not specified. Defaults to 1.\n\t// +optional\n\tReplicas *int32 `json:\"replicas,omitempty\" protobuf:\"varint,1,opt,name=replicas\"`\n\n\t// Label selector for pods. Existing ReplicaSets whose pods are\n\t// selected by this will be the ones affected by this deployment.\n\t// +optional\n\tSelector *metav1.LabelSelector `json:\"selector,omitempty\" protobuf:\"bytes,2,opt,name=selector\"`\n\n\t// Template describes the pods that will be created.\n\tTemplate v1.PodTemplateSpec `json:\"template\" protobuf:\"bytes,3,opt,name=template\"`\n\n\t// The deployment strategy to use to replace existing pods with new ones.\n\t// +optional\n\t// +patchStrategy=retainKeys\n\tStrategy DeploymentStrategy `json:\"strategy,omitempty\" patchStrategy:\"retainKeys\" protobuf:\"bytes,4,opt,name=strategy\"`\n\n\t// Minimum number of seconds for which a newly created pod should be ready\n\t// without any of its container crashing, for it to be considered available.\n\t// Defaults to 0 (pod will be considered available as soon as it is ready)\n\t// +optional\n\tMinReadySeconds int32 `json:\"minReadySeconds,omitempty\" protobuf:\"varint,5,opt,name=minReadySeconds\"`\n\n\t// The number of old ReplicaSets to retain to allow rollback.\n\t// This is a pointer to distinguish between explicit zero and not specified.\n\t// This is set to the max value of int32 (i.e. 2147483647) by default, which\n\t// means \"retaining all old ReplicaSets\".\n\t// +optional\n\tRevisionHistoryLimit *int32 `json:\"revisionHistoryLimit,omitempty\" protobuf:\"varint,6,opt,name=revisionHistoryLimit\"`\n\n\t// Indicates that the deployment is paused and will not be processed by the\n\t// deployment controller.\n\t// +optional\n\tPaused bool `json:\"paused,omitempty\" protobuf:\"varint,7,opt,name=paused\"`\n\n\t// DEPRECATED.\n\t// The config this deployment is rolling back to. Will be cleared after rollback is done.\n\t// +optional\n\tRollbackTo *RollbackConfig `json:\"rollbackTo,omitempty\" protobuf:\"bytes,8,opt,name=rollbackTo\"`\n\n\t// The maximum time in seconds for a deployment to make progress before it\n\t// is considered to be failed. The deployment controller will continue to\n\t// process failed deployments and a condition with a ProgressDeadlineExceeded\n\t// reason will be surfaced in the deployment status. Note that progress will\n\t// not be estimated during the time a deployment is paused. This is set to\n\t// the max value of int32 (i.e. 2147483647) by default, which means \"no deadline\".\n\t// +optional\n\tProgressDeadlineSeconds *int32 `json:\"progressDeadlineSeconds,omitempty\" protobuf:\"varint,9,opt,name=progressDeadlineSeconds\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.2\n// +k8s:prerelease-lifecycle-gen:deprecated=1.8\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n\n// DEPRECATED.\n// DeploymentRollback stores the information required to rollback a deployment.\ntype DeploymentRollback struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Required: This must match the Name of a deployment.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\t// The annotations to be updated to a deployment\n\t// +optional\n\tUpdatedAnnotations map[string]string `json:\"updatedAnnotations,omitempty\" protobuf:\"bytes,2,rep,name=updatedAnnotations\"`\n\t// The config of this deployment rollback.\n\tRollbackTo RollbackConfig `json:\"rollbackTo\" protobuf:\"bytes,3,opt,name=rollbackTo\"`\n}\n\n// DEPRECATED.\ntype RollbackConfig struct {\n\t// The revision to rollback to. If set to 0, rollback to the last revision.\n\t// +optional\n\tRevision int64 `json:\"revision,omitempty\" protobuf:\"varint,1,opt,name=revision\"`\n}\n\nconst (\n\t// DefaultDeploymentUniqueLabelKey is the default key of the selector that is added\n\t// to existing RCs (and label key that is added to its pods) to prevent the existing RCs\n\t// to select new pods (and old pods being select by new RC).\n\tDefaultDeploymentUniqueLabelKey string = \"pod-template-hash\"\n)\n\n// DeploymentStrategy describes how to replace existing pods with new ones.\ntype DeploymentStrategy struct {\n\t// Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.\n\t// +optional\n\tType DeploymentStrategyType `json:\"type,omitempty\" protobuf:\"bytes,1,opt,name=type,casttype=DeploymentStrategyType\"`\n\n\t// Rolling update config params. Present only if DeploymentStrategyType =\n\t// RollingUpdate.\n\t//---\n\t// TODO: Update this to follow our convention for oneOf, whatever we decide it\n\t// to be.\n\t// +optional\n\tRollingUpdate *RollingUpdateDeployment `json:\"rollingUpdate,omitempty\" protobuf:\"bytes,2,opt,name=rollingUpdate\"`\n}\n\ntype DeploymentStrategyType string\n\nconst (\n\t// Kill all existing pods before creating new ones.\n\tRecreateDeploymentStrategyType DeploymentStrategyType = \"Recreate\"\n\n\t// Replace the old RCs by new one using rolling update i.e gradually scale down the old RCs and scale up the new one.\n\tRollingUpdateDeploymentStrategyType DeploymentStrategyType = \"RollingUpdate\"\n)\n\n// Spec to control the desired behavior of rolling update.\ntype RollingUpdateDeployment struct {\n\t// The maximum number of pods that can be unavailable during the update.\n\t// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n\t// Absolute number is calculated from percentage by rounding down.\n\t// This can not be 0 if MaxSurge is 0.\n\t// By default, a fixed value of 1 is used.\n\t// Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods\n\t// immediately when the rolling update starts. Once new pods are ready, old RC\n\t// can be scaled down further, followed by scaling up the new RC, ensuring\n\t// that the total number of pods available at all times during the update is at\n\t// least 70% of desired pods.\n\t// +optional\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\" protobuf:\"bytes,1,opt,name=maxUnavailable\"`\n\n\t// The maximum number of pods that can be scheduled above the desired number of\n\t// pods.\n\t// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n\t// This can not be 0 if MaxUnavailable is 0.\n\t// Absolute number is calculated from percentage by rounding up.\n\t// By default, a value of 1 is used.\n\t// Example: when this is set to 30%, the new RC can be scaled up immediately when\n\t// the rolling update starts, such that the total number of old and new pods do not exceed\n\t// 130% of desired pods. Once old pods have been killed,\n\t// new RC can be scaled up further, ensuring that total number of pods running\n\t// at any time during the update is at most 130% of desired pods.\n\t// +optional\n\tMaxSurge *intstr.IntOrString `json:\"maxSurge,omitempty\" protobuf:\"bytes,2,opt,name=maxSurge\"`\n}\n\n// DeploymentStatus is the most recently observed status of the Deployment.\ntype DeploymentStatus struct {\n\t// The generation observed by the deployment controller.\n\t// +optional\n\tObservedGeneration int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,1,opt,name=observedGeneration\"`\n\n\t// Total number of non-terminated pods targeted by this deployment (their labels match the selector).\n\t// +optional\n\tReplicas int32 `json:\"replicas,omitempty\" protobuf:\"varint,2,opt,name=replicas\"`\n\n\t// Total number of non-terminated pods targeted by this deployment that have the desired template spec.\n\t// +optional\n\tUpdatedReplicas int32 `json:\"updatedReplicas,omitempty\" protobuf:\"varint,3,opt,name=updatedReplicas\"`\n\n\t// Total number of ready pods targeted by this deployment.\n\t// +optional\n\tReadyReplicas int32 `json:\"readyReplicas,omitempty\" protobuf:\"varint,7,opt,name=readyReplicas\"`\n\n\t// Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.\n\t// +optional\n\tAvailableReplicas int32 `json:\"availableReplicas,omitempty\" protobuf:\"varint,4,opt,name=availableReplicas\"`\n\n\t// Total number of unavailable pods targeted by this deployment. This is the total number of\n\t// pods that are still required for the deployment to have 100% available capacity. They may\n\t// either be pods that are running but not yet available or pods that still have not been created.\n\t// +optional\n\tUnavailableReplicas int32 `json:\"unavailableReplicas,omitempty\" protobuf:\"varint,5,opt,name=unavailableReplicas\"`\n\n\t// Represents the latest available observations of a deployment's current state.\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=type\n\tConditions []DeploymentCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,6,rep,name=conditions\"`\n\n\t// Count of hash collisions for the Deployment. The Deployment controller uses this\n\t// field as a collision avoidance mechanism when it needs to create the name for the\n\t// newest ReplicaSet.\n\t// +optional\n\tCollisionCount *int32 `json:\"collisionCount,omitempty\" protobuf:\"varint,8,opt,name=collisionCount\"`\n}\n\ntype DeploymentConditionType string\n\n// These are valid conditions of a deployment.\nconst (\n\t// Available means the deployment is available, ie. at least the minimum available\n\t// replicas required are up and running for at least minReadySeconds.\n\tDeploymentAvailable DeploymentConditionType = \"Available\"\n\t// Progressing means the deployment is progressing. Progress for a deployment is\n\t// considered when a new replica set is created or adopted, and when new pods scale\n\t// up or old pods scale down. Progress is not estimated for paused deployments or\n\t// when progressDeadlineSeconds is not specified.\n\tDeploymentProgressing DeploymentConditionType = \"Progressing\"\n\t// ReplicaFailure is added in a deployment when one of its pods fails to be created\n\t// or deleted.\n\tDeploymentReplicaFailure DeploymentConditionType = \"ReplicaFailure\"\n)\n\n// DeploymentCondition describes the state of a deployment at a certain point.\ntype DeploymentCondition struct {\n\t// Type of deployment condition.\n\tType DeploymentConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=DeploymentConditionType\"`\n\t// Status of the condition, one of True, False, Unknown.\n\tStatus v1.ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus\"`\n\t// The last time this condition was updated.\n\tLastUpdateTime metav1.Time `json:\"lastUpdateTime,omitempty\" protobuf:\"bytes,6,opt,name=lastUpdateTime\"`\n\t// Last time the condition transitioned from one status to another.\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,7,opt,name=lastTransitionTime\"`\n\t// The reason for the condition's last transition.\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// A human readable message indicating details about the transition.\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.1\n// +k8s:prerelease-lifecycle-gen:deprecated=1.8\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,DeploymentList\n\n// DeploymentList is a list of Deployments.\ntype DeploymentList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is the list of Deployments.\n\tItems []Deployment `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// DaemonSetUpdateStrategy indicates the strategy that the DaemonSet\n// controller will use to perform updates. It includes any additional parameters\n// necessary to perform the update for the indicated strategy.\ntype DaemonSetUpdateStrategy struct {\n\t// Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\".\n\t// Default is OnDelete.\n\t// +optional\n\tType DaemonSetUpdateStrategyType `json:\"type,omitempty\" protobuf:\"bytes,1,opt,name=type\"`\n\n\t// Rolling update config params. Present only if type = \"RollingUpdate\".\n\t//---\n\t// TODO: Update this to follow our convention for oneOf, whatever we decide it\n\t// to be. Same as Deployment `strategy.rollingUpdate`.\n\t// See https://github.com/kubernetes/kubernetes/issues/35345\n\t// +optional\n\tRollingUpdate *RollingUpdateDaemonSet `json:\"rollingUpdate,omitempty\" protobuf:\"bytes,2,opt,name=rollingUpdate\"`\n}\n\ntype DaemonSetUpdateStrategyType string\n\nconst (\n\t// Replace the old daemons by new ones using rolling update i.e replace them on each node one after the other.\n\tRollingUpdateDaemonSetStrategyType DaemonSetUpdateStrategyType = \"RollingUpdate\"\n\n\t// Replace the old daemons only when it's killed\n\tOnDeleteDaemonSetStrategyType DaemonSetUpdateStrategyType = \"OnDelete\"\n)\n\n// Spec to control the desired behavior of daemon set rolling update.\ntype RollingUpdateDaemonSet struct {\n\t// The maximum number of DaemonSet pods that can be unavailable during the\n\t// update. Value can be an absolute number (ex: 5) or a percentage of total\n\t// number of DaemonSet pods at the start of the update (ex: 10%). Absolute\n\t// number is calculated from percentage by rounding up.\n\t// This cannot be 0 if MaxSurge is 0\n\t// Default value is 1.\n\t// Example: when this is set to 30%, at most 30% of the total number of nodes\n\t// that should be running the daemon pod (i.e. status.desiredNumberScheduled)\n\t// can have their pods stopped for an update at any given time. The update\n\t// starts by stopping at most 30% of those DaemonSet pods and then brings\n\t// up new DaemonSet pods in their place. Once the new pods are available,\n\t// it then proceeds onto other DaemonSet pods, thus ensuring that at least\n\t// 70% of original number of DaemonSet pods are available at all times during\n\t// the update.\n\t// +optional\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\" protobuf:\"bytes,1,opt,name=maxUnavailable\"`\n\n\t// The maximum number of nodes with an existing available DaemonSet pod that\n\t// can have an updated DaemonSet pod during during an update.\n\t// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).\n\t// This can not be 0 if MaxUnavailable is 0.\n\t// Absolute number is calculated from percentage by rounding up to a minimum of 1.\n\t// Default value is 0.\n\t// Example: when this is set to 30%, at most 30% of the total number of nodes\n\t// that should be running the daemon pod (i.e. status.desiredNumberScheduled)\n\t// can have their a new pod created before the old pod is marked as deleted.\n\t// The update starts by launching new pods on 30% of nodes. Once an updated\n\t// pod is available (Ready for at least minReadySeconds) the old DaemonSet pod\n\t// on that node is marked deleted. If the old pod becomes unavailable for any\n\t// reason (Ready transitions to false, is evicted, or is drained) an updated\n\t// pod is immediatedly created on that node without considering surge limits.\n\t// Allowing surge implies the possibility that the resources consumed by the\n\t// daemonset on any given node can double if the readiness check fails, and\n\t// so resource intensive daemonsets should take into account that they may\n\t// cause evictions during disruption.\n\t// This is an alpha field and requires enabling DaemonSetUpdateSurge feature gate.\n\t// +optional\n\tMaxSurge *intstr.IntOrString `json:\"maxSurge,omitempty\" protobuf:\"bytes,2,opt,name=maxSurge\"`\n}\n\n// DaemonSetSpec is the specification of a daemon set.\ntype DaemonSetSpec struct {\n\t// A label query over pods that are managed by the daemon set.\n\t// Must match in order to be controlled.\n\t// If empty, defaulted to labels on Pod template.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n\t// +optional\n\tSelector *metav1.LabelSelector `json:\"selector,omitempty\" protobuf:\"bytes,1,opt,name=selector\"`\n\n\t// An object that describes the pod that will be created.\n\t// The DaemonSet will create exactly one copy of this pod on every node\n\t// that matches the template's node selector (or on every node if no node\n\t// selector is specified).\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\n\tTemplate v1.PodTemplateSpec `json:\"template\" protobuf:\"bytes,2,opt,name=template\"`\n\n\t// An update strategy to replace existing DaemonSet pods with new pods.\n\t// +optional\n\tUpdateStrategy DaemonSetUpdateStrategy `json:\"updateStrategy,omitempty\" protobuf:\"bytes,3,opt,name=updateStrategy\"`\n\n\t// The minimum number of seconds for which a newly created DaemonSet pod should\n\t// be ready without any of its container crashing, for it to be considered\n\t// available. Defaults to 0 (pod will be considered available as soon as it\n\t// is ready).\n\t// +optional\n\tMinReadySeconds int32 `json:\"minReadySeconds,omitempty\" protobuf:\"varint,4,opt,name=minReadySeconds\"`\n\n\t// DEPRECATED.\n\t// A sequence number representing a specific generation of the template.\n\t// Populated by the system. It can be set only during the creation.\n\t// +optional\n\tTemplateGeneration int64 `json:\"templateGeneration,omitempty\" protobuf:\"varint,5,opt,name=templateGeneration\"`\n\n\t// The number of old history to retain to allow rollback.\n\t// This is a pointer to distinguish between explicit zero and not specified.\n\t// Defaults to 10.\n\t// +optional\n\tRevisionHistoryLimit *int32 `json:\"revisionHistoryLimit,omitempty\" protobuf:\"varint,6,opt,name=revisionHistoryLimit\"`\n}\n\n// DaemonSetStatus represents the current status of a daemon set.\ntype DaemonSetStatus struct {\n\t// The number of nodes that are running at least 1\n\t// daemon pod and are supposed to run the daemon pod.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\n\tCurrentNumberScheduled int32 `json:\"currentNumberScheduled\" protobuf:\"varint,1,opt,name=currentNumberScheduled\"`\n\n\t// The number of nodes that are running the daemon pod, but are\n\t// not supposed to run the daemon pod.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\n\tNumberMisscheduled int32 `json:\"numberMisscheduled\" protobuf:\"varint,2,opt,name=numberMisscheduled\"`\n\n\t// The total number of nodes that should be running the daemon\n\t// pod (including nodes correctly running the daemon pod).\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\n\tDesiredNumberScheduled int32 `json:\"desiredNumberScheduled\" protobuf:\"varint,3,opt,name=desiredNumberScheduled\"`\n\n\t// The number of nodes that should be running the daemon pod and have one\n\t// or more of the daemon pod running and ready.\n\tNumberReady int32 `json:\"numberReady\" protobuf:\"varint,4,opt,name=numberReady\"`\n\n\t// The most recent generation observed by the daemon set controller.\n\t// +optional\n\tObservedGeneration int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,5,opt,name=observedGeneration\"`\n\n\t// The total number of nodes that are running updated daemon pod\n\t// +optional\n\tUpdatedNumberScheduled int32 `json:\"updatedNumberScheduled,omitempty\" protobuf:\"varint,6,opt,name=updatedNumberScheduled\"`\n\n\t// The number of nodes that should be running the\n\t// daemon pod and have one or more of the daemon pod running and\n\t// available (ready for at least spec.minReadySeconds)\n\t// +optional\n\tNumberAvailable int32 `json:\"numberAvailable,omitempty\" protobuf:\"varint,7,opt,name=numberAvailable\"`\n\n\t// The number of nodes that should be running the\n\t// daemon pod and have none of the daemon pod running and available\n\t// (ready for at least spec.minReadySeconds)\n\t// +optional\n\tNumberUnavailable int32 `json:\"numberUnavailable,omitempty\" protobuf:\"varint,8,opt,name=numberUnavailable\"`\n\n\t// Count of hash collisions for the DaemonSet. The DaemonSet controller\n\t// uses this field as a collision avoidance mechanism when it needs to\n\t// create the name for the newest ControllerRevision.\n\t// +optional\n\tCollisionCount *int32 `json:\"collisionCount,omitempty\" protobuf:\"varint,9,opt,name=collisionCount\"`\n\n\t// Represents the latest available observations of a DaemonSet's current state.\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=type\n\tConditions []DaemonSetCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,10,rep,name=conditions\"`\n}\n\ntype DaemonSetConditionType string\n\n// TODO: Add valid condition types of a DaemonSet.\n\n// DaemonSetCondition describes the state of a DaemonSet at a certain point.\ntype DaemonSetCondition struct {\n\t// Type of DaemonSet condition.\n\tType DaemonSetConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=DaemonSetConditionType\"`\n\t// Status of the condition, one of True, False, Unknown.\n\tStatus v1.ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus\"`\n\t// Last time the condition transitioned from one status to another.\n\t// +optional\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\t// The reason for the condition's last transition.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// A human readable message indicating details about the transition.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.1\n// +k8s:prerelease-lifecycle-gen:deprecated=1.8\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,DaemonSet\n\n// DEPRECATED - This group version of DaemonSet is deprecated by apps/v1beta2/DaemonSet. See the release notes for\n// more information.\n// DaemonSet represents the configuration of a daemon set.\ntype DaemonSet struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// The desired behavior of this daemon set.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec DaemonSetSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// The current status of this daemon set. This data may be\n\t// out of date by some window of time.\n\t// Populated by the system.\n\t// Read-only.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus DaemonSetStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\nconst (\n\t// DEPRECATED: DefaultDaemonSetUniqueLabelKey is used instead.\n\t// DaemonSetTemplateGenerationKey is the key of the labels that is added\n\t// to daemon set pods to distinguish between old and new pod templates\n\t// during DaemonSet template update.\n\tDaemonSetTemplateGenerationKey string = \"pod-template-generation\"\n\n\t// DefaultDaemonSetUniqueLabelKey is the default label key that is added\n\t// to existing DaemonSet pods to distinguish between old and new\n\t// DaemonSet pods during DaemonSet template updates.\n\tDefaultDaemonSetUniqueLabelKey = appsv1beta1.ControllerRevisionHashLabelKey\n)\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.1\n// +k8s:prerelease-lifecycle-gen:deprecated=1.8\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,DaemonSetList\n\n// DaemonSetList is a collection of daemon sets.\ntype DaemonSetList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// A list of daemon sets.\n\tItems []DaemonSet `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.1\n// +k8s:prerelease-lifecycle-gen:deprecated=1.14\n// +k8s:prerelease-lifecycle-gen:removed=1.22\n// +k8s:prerelease-lifecycle-gen:replacement=networking.k8s.io,v1,Ingress\n\n// Ingress is a collection of rules that allow inbound connections to reach the\n// endpoints defined by a backend. An Ingress can be configured to give services\n// externally-reachable urls, load balance traffic, terminate SSL, offer name\n// based virtual hosting etc.\n// DEPRECATED - This group version of Ingress is deprecated by networking.k8s.io/v1beta1 Ingress. See the release notes for more information.\ntype Ingress struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec is the desired state of the Ingress.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec IngressSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status is the current state of the Ingress.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus IngressStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.1\n// +k8s:prerelease-lifecycle-gen:deprecated=1.14\n// +k8s:prerelease-lifecycle-gen:removed=1.22\n// +k8s:prerelease-lifecycle-gen:replacement=networking.k8s.io,v1,IngressList\n\n// IngressList is a collection of Ingress.\ntype IngressList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is the list of Ingress.\n\tItems []Ingress `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// IngressSpec describes the Ingress the user wishes to exist.\ntype IngressSpec struct {\n\t// IngressClassName is the name of the IngressClass cluster resource. The\n\t// associated IngressClass defines which controller will implement the\n\t// resource. This replaces the deprecated `kubernetes.io/ingress.class`\n\t// annotation. For backwards compatibility, when that annotation is set, it\n\t// must be given precedence over this field. The controller may emit a\n\t// warning if the field and annotation have different values.\n\t// Implementations of this API should ignore Ingresses without a class\n\t// specified. An IngressClass resource may be marked as default, which can\n\t// be used to set a default value for this field. For more information,\n\t// refer to the IngressClass documentation.\n\t// +optional\n\tIngressClassName *string `json:\"ingressClassName,omitempty\" protobuf:\"bytes,4,opt,name=ingressClassName\"`\n\n\t// A default backend capable of servicing requests that don't match any\n\t// rule. At least one of 'backend' or 'rules' must be specified. This field\n\t// is optional to allow the loadbalancer controller or defaulting logic to\n\t// specify a global default.\n\t// +optional\n\tBackend *IngressBackend `json:\"backend,omitempty\" protobuf:\"bytes,1,opt,name=backend\"`\n\n\t// TLS configuration. Currently the Ingress only supports a single TLS\n\t// port, 443. If multiple members of this list specify different hosts, they\n\t// will be multiplexed on the same port according to the hostname specified\n\t// through the SNI TLS extension, if the ingress controller fulfilling the\n\t// ingress supports SNI.\n\t// +optional\n\t// +listType=atomic\n\tTLS []IngressTLS `json:\"tls,omitempty\" protobuf:\"bytes,2,rep,name=tls\"`\n\n\t// A list of host rules used to configure the Ingress. If unspecified, or\n\t// no rule matches, all traffic is sent to the default backend.\n\t// +optional\n\t// +listType=atomic\n\tRules []IngressRule `json:\"rules,omitempty\" protobuf:\"bytes,3,rep,name=rules\"`\n\t// TODO: Add the ability to specify load-balancer IP through claims\n}\n\n// IngressTLS describes the transport layer security associated with an Ingress.\ntype IngressTLS struct {\n\t// Hosts are a list of hosts included in the TLS certificate. The values in\n\t// this list must match the name/s used in the tlsSecret. Defaults to the\n\t// wildcard host setting for the loadbalancer controller fulfilling this\n\t// Ingress, if left unspecified.\n\t// +optional\n\t// +listType=atomic\n\tHosts []string `json:\"hosts,omitempty\" protobuf:\"bytes,1,rep,name=hosts\"`\n\t// SecretName is the name of the secret used to terminate SSL traffic on 443.\n\t// Field is left optional to allow SSL routing based on SNI hostname alone.\n\t// If the SNI host in a listener conflicts with the \"Host\" header field used\n\t// by an IngressRule, the SNI host is used for termination and value of the\n\t// Host header is used for routing.\n\t// +optional\n\tSecretName string `json:\"secretName,omitempty\" protobuf:\"bytes,2,opt,name=secretName\"`\n\t// TODO: Consider specifying different modes of termination, protocols etc.\n}\n\n// IngressStatus describe the current state of the Ingress.\ntype IngressStatus struct {\n\t// LoadBalancer contains the current status of the load-balancer.\n\t// +optional\n\tLoadBalancer IngressLoadBalancerStatus `json:\"loadBalancer,omitempty\" protobuf:\"bytes,1,opt,name=loadBalancer\"`\n}\n\n// LoadBalancerStatus represents the status of a load-balancer.\ntype IngressLoadBalancerStatus struct {\n\t// Ingress is a list containing ingress points for the load-balancer.\n\t// +optional\n\t// +listType=atomic\n\tIngress []IngressLoadBalancerIngress `json:\"ingress,omitempty\" protobuf:\"bytes,1,rep,name=ingress\"`\n}\n\n// IngressLoadBalancerIngress represents the status of a load-balancer ingress point.\ntype IngressLoadBalancerIngress struct {\n\t// IP is set for load-balancer ingress points that are IP based.\n\t// +optional\n\tIP string `json:\"ip,omitempty\" protobuf:\"bytes,1,opt,name=ip\"`\n\n\t// Hostname is set for load-balancer ingress points that are DNS based.\n\t// +optional\n\tHostname string `json:\"hostname,omitempty\" protobuf:\"bytes,2,opt,name=hostname\"`\n\n\t// Ports provides information about the ports exposed by this LoadBalancer.\n\t// +listType=atomic\n\t// +optional\n\tPorts []IngressPortStatus `json:\"ports,omitempty\" protobuf:\"bytes,4,rep,name=ports\"`\n}\n\n// IngressPortStatus represents the error condition of a service port\ntype IngressPortStatus struct {\n\t// Port is the port number of the ingress port.\n\tPort int32 `json:\"port\" protobuf:\"varint,1,opt,name=port\"`\n\n\t// Protocol is the protocol of the ingress port.\n\t// The supported values are: \"TCP\", \"UDP\", \"SCTP\"\n\tProtocol v1.Protocol `json:\"protocol\" protobuf:\"bytes,2,opt,name=protocol,casttype=Protocol\"`\n\n\t// Error is to record the problem with the service port\n\t// The format of the error shall comply with the following rules:\n\t// - built-in error values shall be specified in this file and those shall use\n\t//   CamelCase names\n\t// - cloud provider specific error values must have names that comply with the\n\t//   format foo.example.com/CamelCase.\n\t// ---\n\t// The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)\n\t// +optional\n\t// +kubebuilder:validation:Required\n\t// +kubebuilder:validation:Pattern=`^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$`\n\t// +kubebuilder:validation:MaxLength=316\n\tError *string `json:\"error,omitempty\" protobuf:\"bytes,3,opt,name=error\"`\n}\n\n// IngressRule represents the rules mapping the paths under a specified host to\n// the related backend services. Incoming requests are first evaluated for a host\n// match, then routed to the backend associated with the matching IngressRuleValue.\ntype IngressRule struct {\n\t// Host is the fully qualified domain name of a network host, as defined by RFC 3986.\n\t// Note the following deviations from the \"host\" part of the\n\t// URI as defined in RFC 3986:\n\t// 1. IPs are not allowed. Currently an IngressRuleValue can only apply to\n\t//    the IP in the Spec of the parent Ingress.\n\t// 2. The `:` delimiter is not respected because ports are not allowed.\n\t//\t  Currently the port of an Ingress is implicitly :80 for http and\n\t//\t  :443 for https.\n\t// Both these may change in the future.\n\t// Incoming requests are matched against the host before the\n\t// IngressRuleValue. If the host is unspecified, the Ingress routes all\n\t// traffic based on the specified IngressRuleValue.\n\t//\n\t// Host can be \"precise\" which is a domain name without the terminating dot of\n\t// a network host (e.g. \"foo.bar.com\") or \"wildcard\", which is a domain name\n\t// prefixed with a single wildcard label (e.g. \"*.foo.com\").\n\t// The wildcard character '*' must appear by itself as the first DNS label and\n\t// matches only a single label. You cannot have a wildcard label by itself (e.g. Host == \"*\").\n\t// Requests will be matched against the Host field in the following way:\n\t// 1. If Host is precise, the request matches this rule if the http host header is equal to Host.\n\t// 2. If Host is a wildcard, then the request matches this rule if the http host header\n\t// is to equal to the suffix (removing the first label) of the wildcard rule.\n\t// +optional\n\tHost string `json:\"host,omitempty\" protobuf:\"bytes,1,opt,name=host\"`\n\t// IngressRuleValue represents a rule to route requests for this IngressRule.\n\t// If unspecified, the rule defaults to a http catch-all. Whether that sends\n\t// just traffic matching the host to the default backend or all traffic to the\n\t// default backend, is left to the controller fulfilling the Ingress. Http is\n\t// currently the only supported IngressRuleValue.\n\t// +optional\n\tIngressRuleValue `json:\",inline\" protobuf:\"bytes,2,opt,name=ingressRuleValue\"`\n}\n\n// IngressRuleValue represents a rule to apply against incoming requests. If the\n// rule is satisfied, the request is routed to the specified backend. Currently\n// mixing different types of rules in a single Ingress is disallowed, so exactly\n// one of the following must be set.\ntype IngressRuleValue struct {\n\t//TODO:\n\t// 1. Consider renaming this resource and the associated rules so they\n\t// aren't tied to Ingress. They can be used to route intra-cluster traffic.\n\t// 2. Consider adding fields for ingress-type specific global options\n\t// usable by a loadbalancer, like http keep-alive.\n\n\t// http is a list of http selectors pointing to backends.\n\t// A path is matched against the path of an incoming request. Currently it can\n\t// contain characters disallowed from the conventional \"path\" part of a URL\n\t// as defined by RFC 3986. Paths must begin with a '/'.\n\t// A backend defines the referenced service endpoint to which the traffic\n\t// will be forwarded to.\n\tHTTP *HTTPIngressRuleValue `json:\"http,omitempty\" protobuf:\"bytes,1,opt,name=http\"`\n}\n\n// HTTPIngressRuleValue is a list of http selectors pointing to backends.\n// In the example: http://<host>/<path>?<searchpart> -> backend where\n// where parts of the url correspond to RFC 3986, this resource will be used\n// to match against everything after the last '/' and before the first '?'\n// or '#'.\ntype HTTPIngressRuleValue struct {\n\t// A collection of paths that map requests to backends.\n\t// +listType=atomic\n\tPaths []HTTPIngressPath `json:\"paths\" protobuf:\"bytes,1,rep,name=paths\"`\n\t// TODO: Consider adding fields for ingress-type specific global\n\t// options usable by a loadbalancer, like http keep-alive.\n}\n\n// PathType represents the type of path referred to by a HTTPIngressPath.\ntype PathType string\n\nconst (\n\t// PathTypeExact matches the URL path exactly and with case sensitivity.\n\tPathTypeExact = PathType(\"Exact\")\n\n\t// PathTypePrefix matches based on a URL path prefix split by '/'. Matching\n\t// is case sensitive and done on a path element by element basis. A path\n\t// element refers to the list of labels in the path split by the '/'\n\t// separator. A request is a match for path p if every p is an element-wise\n\t// prefix of p of the request path. Note that if the last element of the\n\t// path is a substring of the last element in request path, it is not a\n\t// match (e.g. /foo/bar matches /foo/bar/baz, but does not match\n\t// /foo/barbaz). If multiple matching paths exist in an Ingress spec, the\n\t// longest matching path is given priority.\n\t// Examples:\n\t// - /foo/bar does not match requests to /foo/barbaz\n\t// - /foo/bar matches request to /foo/bar and /foo/bar/baz\n\t// - /foo and /foo/ both match requests to /foo and /foo/. If both paths are\n\t//   present in an Ingress spec, the longest matching path (/foo/) is given\n\t//   priority.\n\tPathTypePrefix = PathType(\"Prefix\")\n\n\t// PathTypeImplementationSpecific matching is up to the IngressClass.\n\t// Implementations can treat this as a separate PathType or treat it\n\t// identically to Prefix or Exact path types.\n\tPathTypeImplementationSpecific = PathType(\"ImplementationSpecific\")\n)\n\n// HTTPIngressPath associates a path with a backend. Incoming urls matching the\n// path are forwarded to the backend.\ntype HTTPIngressPath struct {\n\t// Path is matched against the path of an incoming request. Currently it can\n\t// contain characters disallowed from the conventional \"path\" part of a URL\n\t// as defined by RFC 3986. Paths must begin with a '/'. When unspecified,\n\t// all paths from incoming requests are matched.\n\t// +optional\n\tPath string `json:\"path,omitempty\" protobuf:\"bytes,1,opt,name=path\"`\n\n\t// PathType determines the interpretation of the Path matching. PathType can\n\t// be one of the following values:\n\t// * Exact: Matches the URL path exactly.\n\t// * Prefix: Matches based on a URL path prefix split by '/'. Matching is\n\t//   done on a path element by element basis. A path element refers is the\n\t//   list of labels in the path split by the '/' separator. A request is a\n\t//   match for path p if every p is an element-wise prefix of p of the\n\t//   request path. Note that if the last element of the path is a substring\n\t//   of the last element in request path, it is not a match (e.g. /foo/bar\n\t//   matches /foo/bar/baz, but does not match /foo/barbaz).\n\t// * ImplementationSpecific: Interpretation of the Path matching is up to\n\t//   the IngressClass. Implementations can treat this as a separate PathType\n\t//   or treat it identically to Prefix or Exact path types.\n\t// Implementations are required to support all path types.\n\t// Defaults to ImplementationSpecific.\n\tPathType *PathType `json:\"pathType,omitempty\" protobuf:\"bytes,3,opt,name=pathType\"`\n\n\t// Backend defines the referenced service endpoint to which the traffic\n\t// will be forwarded to.\n\tBackend IngressBackend `json:\"backend\" protobuf:\"bytes,2,opt,name=backend\"`\n}\n\n// IngressBackend describes all endpoints for a given service and port.\ntype IngressBackend struct {\n\t// Specifies the name of the referenced service.\n\t// +optional\n\tServiceName string `json:\"serviceName,omitempty\" protobuf:\"bytes,1,opt,name=serviceName\"`\n\n\t// Specifies the port of the referenced service.\n\t// +optional\n\tServicePort intstr.IntOrString `json:\"servicePort,omitempty\" protobuf:\"bytes,2,opt,name=servicePort\"`\n\n\t// Resource is an ObjectRef to another Kubernetes resource in the namespace\n\t// of the Ingress object. If resource is specified, serviceName and servicePort\n\t// must not be specified.\n\t// +optional\n\tResource *v1.TypedLocalObjectReference `json:\"resource,omitempty\" protobuf:\"bytes,3,opt,name=resource\"`\n}\n\n// +genclient\n// +genclient:method=GetScale,verb=get,subresource=scale,result=Scale\n// +genclient:method=UpdateScale,verb=update,subresource=scale,input=Scale,result=Scale\n// +genclient:method=ApplyScale,verb=apply,subresource=scale,input=Scale,result=Scale\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.2\n// +k8s:prerelease-lifecycle-gen:deprecated=1.8\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,ReplicaSet\n\n// DEPRECATED - This group version of ReplicaSet is deprecated by apps/v1beta2/ReplicaSet. See the release notes for\n// more information.\n// ReplicaSet ensures that a specified number of pod replicas are running at any given time.\ntype ReplicaSet struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// If the Labels of a ReplicaSet are empty, they are defaulted to\n\t// be the same as the Pod(s) that the ReplicaSet manages.\n\t// Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec defines the specification of the desired behavior of the ReplicaSet.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec ReplicaSetSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status is the most recently observed status of the ReplicaSet.\n\t// This data may be out of date by some window of time.\n\t// Populated by the system.\n\t// Read-only.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus ReplicaSetStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.2\n// +k8s:prerelease-lifecycle-gen:deprecated=1.8\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=apps,v1,ReplicaSetList\n\n// ReplicaSetList is a collection of ReplicaSets.\ntype ReplicaSetList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// List of ReplicaSets.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller\n\tItems []ReplicaSet `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// ReplicaSetSpec is the specification of a ReplicaSet.\ntype ReplicaSetSpec struct {\n\t// Replicas is the number of desired replicas.\n\t// This is a pointer to distinguish between explicit zero and unspecified.\n\t// Defaults to 1.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller\n\t// +optional\n\tReplicas *int32 `json:\"replicas,omitempty\" protobuf:\"varint,1,opt,name=replicas\"`\n\n\t// Minimum number of seconds for which a newly created pod should be ready\n\t// without any of its container crashing, for it to be considered available.\n\t// Defaults to 0 (pod will be considered available as soon as it is ready)\n\t// +optional\n\tMinReadySeconds int32 `json:\"minReadySeconds,omitempty\" protobuf:\"varint,4,opt,name=minReadySeconds\"`\n\n\t// Selector is a label query over pods that should match the replica count.\n\t// If the selector is empty, it is defaulted to the labels present on the pod template.\n\t// Label keys and values that must match in order to be controlled by this replica set.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\n\t// +optional\n\tSelector *metav1.LabelSelector `json:\"selector,omitempty\" protobuf:\"bytes,2,opt,name=selector\"`\n\n\t// Template is the object that describes the pod that will be created if\n\t// insufficient replicas are detected.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\n\t// +optional\n\tTemplate v1.PodTemplateSpec `json:\"template,omitempty\" protobuf:\"bytes,3,opt,name=template\"`\n}\n\n// ReplicaSetStatus represents the current status of a ReplicaSet.\ntype ReplicaSetStatus struct {\n\t// Replicas is the most recently observed number of replicas.\n\t// More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller\n\tReplicas int32 `json:\"replicas\" protobuf:\"varint,1,opt,name=replicas\"`\n\n\t// The number of pods that have labels matching the labels of the pod template of the replicaset.\n\t// +optional\n\tFullyLabeledReplicas int32 `json:\"fullyLabeledReplicas,omitempty\" protobuf:\"varint,2,opt,name=fullyLabeledReplicas\"`\n\n\t// The number of ready replicas for this replica set.\n\t// +optional\n\tReadyReplicas int32 `json:\"readyReplicas,omitempty\" protobuf:\"varint,4,opt,name=readyReplicas\"`\n\n\t// The number of available replicas (ready for at least minReadySeconds) for this replica set.\n\t// +optional\n\tAvailableReplicas int32 `json:\"availableReplicas,omitempty\" protobuf:\"varint,5,opt,name=availableReplicas\"`\n\n\t// ObservedGeneration reflects the generation of the most recently observed ReplicaSet.\n\t// +optional\n\tObservedGeneration int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,3,opt,name=observedGeneration\"`\n\n\t// Represents the latest available observations of a replica set's current state.\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=type\n\tConditions []ReplicaSetCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,6,rep,name=conditions\"`\n}\n\ntype ReplicaSetConditionType string\n\n// These are valid conditions of a replica set.\nconst (\n\t// ReplicaSetReplicaFailure is added in a replica set when one of its pods fails to be created\n\t// due to insufficient quota, limit ranges, pod security policy, node selectors, etc. or deleted\n\t// due to kubelet being down or finalizers are failing.\n\tReplicaSetReplicaFailure ReplicaSetConditionType = \"ReplicaFailure\"\n)\n\n// ReplicaSetCondition describes the state of a replica set at a certain point.\ntype ReplicaSetCondition struct {\n\t// Type of replica set condition.\n\tType ReplicaSetConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=ReplicaSetConditionType\"`\n\t// Status of the condition, one of True, False, Unknown.\n\tStatus v1.ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus\"`\n\t// The last time the condition transitioned from one status to another.\n\t// +optional\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\t// The reason for the condition's last transition.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// A human readable message indicating details about the transition.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.3\n// +k8s:prerelease-lifecycle-gen:deprecated=1.9\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=networking.k8s.io,v1,NetworkPolicy\n\n// DEPRECATED 1.9 - This group version of NetworkPolicy is deprecated by networking/v1/NetworkPolicy.\n// NetworkPolicy describes what network traffic is allowed for a set of Pods\ntype NetworkPolicy struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Specification of the desired behavior for this NetworkPolicy.\n\t// +optional\n\tSpec NetworkPolicySpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status is tombstoned to show why 3 is a reserved protobuf tag.\n\t// This commented field should remain, so in the future if we decide to reimplement\n\t// NetworkPolicyStatus a different protobuf name and tag SHOULD be used!\n\t// Status NetworkPolicyStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// DEPRECATED 1.9 - This group version of PolicyType is deprecated by networking/v1/PolicyType.\n// Policy Type string describes the NetworkPolicy type\n// This type is beta-level in 1.8\ntype PolicyType string\n\nconst (\n\t// PolicyTypeIngress is a NetworkPolicy that affects ingress traffic on selected pods\n\tPolicyTypeIngress PolicyType = \"Ingress\"\n\t// PolicyTypeEgress is a NetworkPolicy that affects egress traffic on selected pods\n\tPolicyTypeEgress PolicyType = \"Egress\"\n)\n\n// DEPRECATED 1.9 - This group version of NetworkPolicySpec is deprecated by networking/v1/NetworkPolicySpec.\ntype NetworkPolicySpec struct {\n\t// Selects the pods to which this NetworkPolicy object applies.  The array of ingress rules\n\t// is applied to any pods selected by this field. Multiple network policies can select the\n\t// same set of pods.  In this case, the ingress rules for each are combined additively.\n\t// This field is NOT optional and follows standard label selector semantics.\n\t// An empty podSelector matches all pods in this namespace.\n\tPodSelector metav1.LabelSelector `json:\"podSelector\" protobuf:\"bytes,1,opt,name=podSelector\"`\n\n\t// List of ingress rules to be applied to the selected pods.\n\t// Traffic is allowed to a pod if there are no NetworkPolicies selecting the pod\n\t// OR if the traffic source is the pod's local node,\n\t// OR if the traffic matches at least one ingress rule across all of the NetworkPolicy\n\t// objects whose podSelector matches the pod.\n\t// If this field is empty then this NetworkPolicy does not allow any traffic\n\t// (and serves solely to ensure that the pods it selects are isolated by default).\n\t// +optional\n\t// +listType=atomic\n\tIngress []NetworkPolicyIngressRule `json:\"ingress,omitempty\" protobuf:\"bytes,2,rep,name=ingress\"`\n\n\t// List of egress rules to be applied to the selected pods. Outgoing traffic is\n\t// allowed if there are no NetworkPolicies selecting the pod (and cluster policy\n\t// otherwise allows the traffic), OR if the traffic matches at least one egress rule\n\t// across all of the NetworkPolicy objects whose podSelector matches the pod. If\n\t// this field is empty then this NetworkPolicy limits all outgoing traffic (and serves\n\t// solely to ensure that the pods it selects are isolated by default).\n\t// This field is beta-level in 1.8\n\t// +optional\n\t// +listType=atomic\n\tEgress []NetworkPolicyEgressRule `json:\"egress,omitempty\" protobuf:\"bytes,3,rep,name=egress\"`\n\n\t// List of rule types that the NetworkPolicy relates to.\n\t// Valid options are [\"Ingress\"], [\"Egress\"], or [\"Ingress\", \"Egress\"].\n\t// If this field is not specified, it will default based on the existence of Ingress or Egress rules;\n\t// policies that contain an Egress section are assumed to affect Egress, and all policies\n\t// (whether or not they contain an Ingress section) are assumed to affect Ingress.\n\t// If you want to write an egress-only policy, you must explicitly specify policyTypes [ \"Egress\" ].\n\t// Likewise, if you want to write a policy that specifies that no egress is allowed,\n\t// you must specify a policyTypes value that include \"Egress\" (since such a policy would not include\n\t// an Egress section and would otherwise default to just [ \"Ingress\" ]).\n\t// This field is beta-level in 1.8\n\t// +optional\n\t// +listType=atomic\n\tPolicyTypes []PolicyType `json:\"policyTypes,omitempty\" protobuf:\"bytes,4,rep,name=policyTypes,casttype=PolicyType\"`\n}\n\n// DEPRECATED 1.9 - This group version of NetworkPolicyIngressRule is deprecated by networking/v1/NetworkPolicyIngressRule.\n// This NetworkPolicyIngressRule matches traffic if and only if the traffic matches both ports AND from.\ntype NetworkPolicyIngressRule struct {\n\t// List of ports which should be made accessible on the pods selected for this rule.\n\t// Each item in this list is combined using a logical OR.\n\t// If this field is empty or missing, this rule matches all ports (traffic not restricted by port).\n\t// If this field is present and contains at least one item, then this rule allows traffic\n\t// only if the traffic matches at least one port in the list.\n\t// +optional\n\t// +listType=atomic\n\tPorts []NetworkPolicyPort `json:\"ports,omitempty\" protobuf:\"bytes,1,rep,name=ports\"`\n\n\t// List of sources which should be able to access the pods selected for this rule.\n\t// Items in this list are combined using a logical OR operation.\n\t// If this field is empty or missing, this rule matches all sources (traffic not restricted by source).\n\t// If this field is present and contains at least one item, this rule allows traffic only if the\n\t// traffic matches at least one item in the from list.\n\t// +optional\n\t// +listType=atomic\n\tFrom []NetworkPolicyPeer `json:\"from,omitempty\" protobuf:\"bytes,2,rep,name=from\"`\n}\n\n// DEPRECATED 1.9 - This group version of NetworkPolicyEgressRule is deprecated by networking/v1/NetworkPolicyEgressRule.\n// NetworkPolicyEgressRule describes a particular set of traffic that is allowed out of pods\n// matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and to.\n// This type is beta-level in 1.8\ntype NetworkPolicyEgressRule struct {\n\t// List of destination ports for outgoing traffic.\n\t// Each item in this list is combined using a logical OR. If this field is\n\t// empty or missing, this rule matches all ports (traffic not restricted by port).\n\t// If this field is present and contains at least one item, then this rule allows\n\t// traffic only if the traffic matches at least one port in the list.\n\t// +optional\n\t// +listType=atomic\n\tPorts []NetworkPolicyPort `json:\"ports,omitempty\" protobuf:\"bytes,1,rep,name=ports\"`\n\n\t// List of destinations for outgoing traffic of pods selected for this rule.\n\t// Items in this list are combined using a logical OR operation. If this field is\n\t// empty or missing, this rule matches all destinations (traffic not restricted by\n\t// destination). If this field is present and contains at least one item, this rule\n\t// allows traffic only if the traffic matches at least one item in the to list.\n\t// +optional\n\t// +listType=atomic\n\tTo []NetworkPolicyPeer `json:\"to,omitempty\" protobuf:\"bytes,2,rep,name=to\"`\n}\n\n// DEPRECATED 1.9 - This group version of NetworkPolicyPort is deprecated by networking/v1/NetworkPolicyPort.\ntype NetworkPolicyPort struct {\n\t// Optional.  The protocol (TCP, UDP, or SCTP) which traffic must match.\n\t// If not specified, this field defaults to TCP.\n\t// +optional\n\tProtocol *v1.Protocol `json:\"protocol,omitempty\" protobuf:\"bytes,1,opt,name=protocol,casttype=k8s.io/api/core/v1.Protocol\"`\n\n\t// The port on the given protocol. This can either be a numerical or named\n\t// port on a pod. If this field is not provided, this matches all port names and\n\t// numbers.\n\t// If present, only traffic on the specified protocol AND port will be matched.\n\t// +optional\n\tPort *intstr.IntOrString `json:\"port,omitempty\" protobuf:\"bytes,2,opt,name=port\"`\n\n\t// If set, indicates that the range of ports from port to endPort, inclusive,\n\t// should be allowed by the policy. This field cannot be defined if the port field\n\t// is not defined or if the port field is defined as a named (string) port.\n\t// The endPort must be equal or greater than port.\n\t// +optional\n\tEndPort *int32 `json:\"endPort,omitempty\" protobuf:\"bytes,3,opt,name=endPort\"`\n}\n\n// DEPRECATED 1.9 - This group version of IPBlock is deprecated by networking/v1/IPBlock.\n// IPBlock describes a particular CIDR (Ex. \"192.168.1.0/24\",\"2001:db8::/64\") that is allowed\n// to the pods matched by a NetworkPolicySpec's podSelector. The except entry describes CIDRs\n// that should not be included within this rule.\ntype IPBlock struct {\n\t// CIDR is a string representing the IP Block\n\t// Valid examples are \"192.168.1.0/24\" or \"2001:db8::/64\"\n\tCIDR string `json:\"cidr\" protobuf:\"bytes,1,name=cidr\"`\n\t// Except is a slice of CIDRs that should not be included within an IP Block\n\t// Valid examples are \"192.168.1.0/24\" or \"2001:db8::/64\"\n\t// Except values will be rejected if they are outside the CIDR range\n\t// +optional\n\t// +listType=atomic\n\tExcept []string `json:\"except,omitempty\" protobuf:\"bytes,2,rep,name=except\"`\n}\n\n// DEPRECATED 1.9 - This group version of NetworkPolicyPeer is deprecated by networking/v1/NetworkPolicyPeer.\ntype NetworkPolicyPeer struct {\n\t// This is a label selector which selects Pods. This field follows standard label\n\t// selector semantics; if present but empty, it selects all pods.\n\t//\n\t// If NamespaceSelector is also set, then the NetworkPolicyPeer as a whole selects\n\t// the Pods matching PodSelector in the Namespaces selected by NamespaceSelector.\n\t// Otherwise it selects the Pods matching PodSelector in the policy's own Namespace.\n\t// +optional\n\tPodSelector *metav1.LabelSelector `json:\"podSelector,omitempty\" protobuf:\"bytes,1,opt,name=podSelector\"`\n\n\t// Selects Namespaces using cluster-scoped labels. This field follows standard label\n\t// selector semantics; if present but empty, it selects all namespaces.\n\t//\n\t// If PodSelector is also set, then the NetworkPolicyPeer as a whole selects\n\t// the Pods matching PodSelector in the Namespaces selected by NamespaceSelector.\n\t// Otherwise it selects all Pods in the Namespaces selected by NamespaceSelector.\n\t// +optional\n\tNamespaceSelector *metav1.LabelSelector `json:\"namespaceSelector,omitempty\" protobuf:\"bytes,2,opt,name=namespaceSelector\"`\n\n\t// IPBlock defines policy on a particular IPBlock. If this field is set then\n\t// neither of the other fields can be.\n\t// +optional\n\tIPBlock *IPBlock `json:\"ipBlock,omitempty\" protobuf:\"bytes,3,rep,name=ipBlock\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.3\n// +k8s:prerelease-lifecycle-gen:deprecated=1.9\n// +k8s:prerelease-lifecycle-gen:removed=1.16\n// +k8s:prerelease-lifecycle-gen:replacement=networking.k8s.io,v1,NetworkPolicyList\n\n// DEPRECATED 1.9 - This group version of NetworkPolicyList is deprecated by networking/v1/NetworkPolicyList.\n// Network Policy List is a list of NetworkPolicy objects.\ntype NetworkPolicyList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is a list of schema objects.\n\tItems []NetworkPolicy `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/extensions/v1beta1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_DaemonSet = map[string]string{\n\t\"\":         \"DEPRECATED - This group version of DaemonSet is deprecated by apps/v1beta2/DaemonSet. See the release notes for more information. DaemonSet represents the configuration of a daemon set.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"The current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (DaemonSet) SwaggerDoc() map[string]string {\n\treturn map_DaemonSet\n}\n\nvar map_DaemonSetCondition = map[string]string{\n\t\"\":                   \"DaemonSetCondition describes the state of a DaemonSet at a certain point.\",\n\t\"type\":               \"Type of DaemonSet condition.\",\n\t\"status\":             \"Status of the condition, one of True, False, Unknown.\",\n\t\"lastTransitionTime\": \"Last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"The reason for the condition's last transition.\",\n\t\"message\":            \"A human readable message indicating details about the transition.\",\n}\n\nfunc (DaemonSetCondition) SwaggerDoc() map[string]string {\n\treturn map_DaemonSetCondition\n}\n\nvar map_DaemonSetList = map[string]string{\n\t\"\":         \"DaemonSetList is a collection of daemon sets.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"A list of daemon sets.\",\n}\n\nfunc (DaemonSetList) SwaggerDoc() map[string]string {\n\treturn map_DaemonSetList\n}\n\nvar map_DaemonSetSpec = map[string]string{\n\t\"\":                     \"DaemonSetSpec is the specification of a daemon set.\",\n\t\"selector\":             \"A label query over pods that are managed by the daemon set. Must match in order to be controlled. If empty, defaulted to labels on Pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\n\t\"template\":             \"An object that describes the pod that will be created. The DaemonSet will create exactly one copy of this pod on every node that matches the template's node selector (or on every node if no node selector is specified). More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\",\n\t\"updateStrategy\":       \"An update strategy to replace existing DaemonSet pods with new pods.\",\n\t\"minReadySeconds\":      \"The minimum number of seconds for which a newly created DaemonSet pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).\",\n\t\"templateGeneration\":   \"DEPRECATED. A sequence number representing a specific generation of the template. Populated by the system. It can be set only during the creation.\",\n\t\"revisionHistoryLimit\": \"The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.\",\n}\n\nfunc (DaemonSetSpec) SwaggerDoc() map[string]string {\n\treturn map_DaemonSetSpec\n}\n\nvar map_DaemonSetStatus = map[string]string{\n\t\"\":                       \"DaemonSetStatus represents the current status of a daemon set.\",\n\t\"currentNumberScheduled\": \"The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\",\n\t\"numberMisscheduled\":     \"The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\",\n\t\"desiredNumberScheduled\": \"The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/\",\n\t\"numberReady\":            \"The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready.\",\n\t\"observedGeneration\":     \"The most recent generation observed by the daemon set controller.\",\n\t\"updatedNumberScheduled\": \"The total number of nodes that are running updated daemon pod\",\n\t\"numberAvailable\":        \"The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds)\",\n\t\"numberUnavailable\":      \"The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds)\",\n\t\"collisionCount\":         \"Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.\",\n\t\"conditions\":             \"Represents the latest available observations of a DaemonSet's current state.\",\n}\n\nfunc (DaemonSetStatus) SwaggerDoc() map[string]string {\n\treturn map_DaemonSetStatus\n}\n\nvar map_DaemonSetUpdateStrategy = map[string]string{\n\t\"\":              \"DaemonSetUpdateStrategy indicates the strategy that the DaemonSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.\",\n\t\"type\":          \"Type of daemon set update. Can be \\\"RollingUpdate\\\" or \\\"OnDelete\\\". Default is OnDelete.\",\n\t\"rollingUpdate\": \"Rolling update config params. Present only if type = \\\"RollingUpdate\\\".\",\n}\n\nfunc (DaemonSetUpdateStrategy) SwaggerDoc() map[string]string {\n\treturn map_DaemonSetUpdateStrategy\n}\n\nvar map_Deployment = map[string]string{\n\t\"\":         \"DEPRECATED - This group version of Deployment is deprecated by apps/v1beta2/Deployment. See the release notes for more information. Deployment enables declarative updates for Pods and ReplicaSets.\",\n\t\"metadata\": \"Standard object metadata.\",\n\t\"spec\":     \"Specification of the desired behavior of the Deployment.\",\n\t\"status\":   \"Most recently observed status of the Deployment.\",\n}\n\nfunc (Deployment) SwaggerDoc() map[string]string {\n\treturn map_Deployment\n}\n\nvar map_DeploymentCondition = map[string]string{\n\t\"\":                   \"DeploymentCondition describes the state of a deployment at a certain point.\",\n\t\"type\":               \"Type of deployment condition.\",\n\t\"status\":             \"Status of the condition, one of True, False, Unknown.\",\n\t\"lastUpdateTime\":     \"The last time this condition was updated.\",\n\t\"lastTransitionTime\": \"Last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"The reason for the condition's last transition.\",\n\t\"message\":            \"A human readable message indicating details about the transition.\",\n}\n\nfunc (DeploymentCondition) SwaggerDoc() map[string]string {\n\treturn map_DeploymentCondition\n}\n\nvar map_DeploymentList = map[string]string{\n\t\"\":         \"DeploymentList is a list of Deployments.\",\n\t\"metadata\": \"Standard list metadata.\",\n\t\"items\":    \"Items is the list of Deployments.\",\n}\n\nfunc (DeploymentList) SwaggerDoc() map[string]string {\n\treturn map_DeploymentList\n}\n\nvar map_DeploymentRollback = map[string]string{\n\t\"\":                   \"DEPRECATED. DeploymentRollback stores the information required to rollback a deployment.\",\n\t\"name\":               \"Required: This must match the Name of a deployment.\",\n\t\"updatedAnnotations\": \"The annotations to be updated to a deployment\",\n\t\"rollbackTo\":         \"The config of this deployment rollback.\",\n}\n\nfunc (DeploymentRollback) SwaggerDoc() map[string]string {\n\treturn map_DeploymentRollback\n}\n\nvar map_DeploymentSpec = map[string]string{\n\t\"\":                        \"DeploymentSpec is the specification of the desired behavior of the Deployment.\",\n\t\"replicas\":                \"Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.\",\n\t\"selector\":                \"Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment.\",\n\t\"template\":                \"Template describes the pods that will be created.\",\n\t\"strategy\":                \"The deployment strategy to use to replace existing pods with new ones.\",\n\t\"minReadySeconds\":         \"Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)\",\n\t\"revisionHistoryLimit\":    \"The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. This is set to the max value of int32 (i.e. 2147483647) by default, which means \\\"retaining all old ReplicaSets\\\".\",\n\t\"paused\":                  \"Indicates that the deployment is paused and will not be processed by the deployment controller.\",\n\t\"rollbackTo\":              \"DEPRECATED. The config this deployment is rolling back to. Will be cleared after rollback is done.\",\n\t\"progressDeadlineSeconds\": \"The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. This is set to the max value of int32 (i.e. 2147483647) by default, which means \\\"no deadline\\\".\",\n}\n\nfunc (DeploymentSpec) SwaggerDoc() map[string]string {\n\treturn map_DeploymentSpec\n}\n\nvar map_DeploymentStatus = map[string]string{\n\t\"\":                    \"DeploymentStatus is the most recently observed status of the Deployment.\",\n\t\"observedGeneration\":  \"The generation observed by the deployment controller.\",\n\t\"replicas\":            \"Total number of non-terminated pods targeted by this deployment (their labels match the selector).\",\n\t\"updatedReplicas\":     \"Total number of non-terminated pods targeted by this deployment that have the desired template spec.\",\n\t\"readyReplicas\":       \"Total number of ready pods targeted by this deployment.\",\n\t\"availableReplicas\":   \"Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.\",\n\t\"unavailableReplicas\": \"Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created.\",\n\t\"conditions\":          \"Represents the latest available observations of a deployment's current state.\",\n\t\"collisionCount\":      \"Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.\",\n}\n\nfunc (DeploymentStatus) SwaggerDoc() map[string]string {\n\treturn map_DeploymentStatus\n}\n\nvar map_DeploymentStrategy = map[string]string{\n\t\"\":              \"DeploymentStrategy describes how to replace existing pods with new ones.\",\n\t\"type\":          \"Type of deployment. Can be \\\"Recreate\\\" or \\\"RollingUpdate\\\". Default is RollingUpdate.\",\n\t\"rollingUpdate\": \"Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.\",\n}\n\nfunc (DeploymentStrategy) SwaggerDoc() map[string]string {\n\treturn map_DeploymentStrategy\n}\n\nvar map_HTTPIngressPath = map[string]string{\n\t\"\":         \"HTTPIngressPath associates a path with a backend. Incoming urls matching the path are forwarded to the backend.\",\n\t\"path\":     \"Path is matched against the path of an incoming request. Currently it can contain characters disallowed from the conventional \\\"path\\\" part of a URL as defined by RFC 3986. Paths must begin with a '/'. When unspecified, all paths from incoming requests are matched.\",\n\t\"pathType\": \"PathType determines the interpretation of the Path matching. PathType can be one of the following values: * Exact: Matches the URL path exactly. * Prefix: Matches based on a URL path prefix split by '/'. Matching is\\n  done on a path element by element basis. A path element refers is the\\n  list of labels in the path split by the '/' separator. A request is a\\n  match for path p if every p is an element-wise prefix of p of the\\n  request path. Note that if the last element of the path is a substring\\n  of the last element in request path, it is not a match (e.g. /foo/bar\\n  matches /foo/bar/baz, but does not match /foo/barbaz).\\n* ImplementationSpecific: Interpretation of the Path matching is up to\\n  the IngressClass. Implementations can treat this as a separate PathType\\n  or treat it identically to Prefix or Exact path types.\\nImplementations are required to support all path types. Defaults to ImplementationSpecific.\",\n\t\"backend\":  \"Backend defines the referenced service endpoint to which the traffic will be forwarded to.\",\n}\n\nfunc (HTTPIngressPath) SwaggerDoc() map[string]string {\n\treturn map_HTTPIngressPath\n}\n\nvar map_HTTPIngressRuleValue = map[string]string{\n\t\"\":      \"HTTPIngressRuleValue is a list of http selectors pointing to backends. In the example: http://<host>/<path>?<searchpart> -> backend where where parts of the url correspond to RFC 3986, this resource will be used to match against everything after the last '/' and before the first '?' or '#'.\",\n\t\"paths\": \"A collection of paths that map requests to backends.\",\n}\n\nfunc (HTTPIngressRuleValue) SwaggerDoc() map[string]string {\n\treturn map_HTTPIngressRuleValue\n}\n\nvar map_IPBlock = map[string]string{\n\t\"\":       \"DEPRECATED 1.9 - This group version of IPBlock is deprecated by networking/v1/IPBlock. IPBlock describes a particular CIDR (Ex. \\\"192.168.1.0/24\\\",\\\"2001:db8::/64\\\") that is allowed to the pods matched by a NetworkPolicySpec's podSelector. The except entry describes CIDRs that should not be included within this rule.\",\n\t\"cidr\":   \"CIDR is a string representing the IP Block Valid examples are \\\"192.168.1.0/24\\\" or \\\"2001:db8::/64\\\"\",\n\t\"except\": \"Except is a slice of CIDRs that should not be included within an IP Block Valid examples are \\\"192.168.1.0/24\\\" or \\\"2001:db8::/64\\\" Except values will be rejected if they are outside the CIDR range\",\n}\n\nfunc (IPBlock) SwaggerDoc() map[string]string {\n\treturn map_IPBlock\n}\n\nvar map_Ingress = map[string]string{\n\t\"\":         \"Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc. DEPRECATED - This group version of Ingress is deprecated by networking.k8s.io/v1beta1 Ingress. See the release notes for more information.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec is the desired state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"Status is the current state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (Ingress) SwaggerDoc() map[string]string {\n\treturn map_Ingress\n}\n\nvar map_IngressBackend = map[string]string{\n\t\"\":            \"IngressBackend describes all endpoints for a given service and port.\",\n\t\"serviceName\": \"Specifies the name of the referenced service.\",\n\t\"servicePort\": \"Specifies the port of the referenced service.\",\n\t\"resource\":    \"Resource is an ObjectRef to another Kubernetes resource in the namespace of the Ingress object. If resource is specified, serviceName and servicePort must not be specified.\",\n}\n\nfunc (IngressBackend) SwaggerDoc() map[string]string {\n\treturn map_IngressBackend\n}\n\nvar map_IngressList = map[string]string{\n\t\"\":         \"IngressList is a collection of Ingress.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"Items is the list of Ingress.\",\n}\n\nfunc (IngressList) SwaggerDoc() map[string]string {\n\treturn map_IngressList\n}\n\nvar map_IngressLoadBalancerIngress = map[string]string{\n\t\"\":         \"IngressLoadBalancerIngress represents the status of a load-balancer ingress point.\",\n\t\"ip\":       \"IP is set for load-balancer ingress points that are IP based.\",\n\t\"hostname\": \"Hostname is set for load-balancer ingress points that are DNS based.\",\n\t\"ports\":    \"Ports provides information about the ports exposed by this LoadBalancer.\",\n}\n\nfunc (IngressLoadBalancerIngress) SwaggerDoc() map[string]string {\n\treturn map_IngressLoadBalancerIngress\n}\n\nvar map_IngressLoadBalancerStatus = map[string]string{\n\t\"\":        \"LoadBalancerStatus represents the status of a load-balancer.\",\n\t\"ingress\": \"Ingress is a list containing ingress points for the load-balancer.\",\n}\n\nfunc (IngressLoadBalancerStatus) SwaggerDoc() map[string]string {\n\treturn map_IngressLoadBalancerStatus\n}\n\nvar map_IngressPortStatus = map[string]string{\n\t\"\":         \"IngressPortStatus represents the error condition of a service port\",\n\t\"port\":     \"Port is the port number of the ingress port.\",\n\t\"protocol\": \"Protocol is the protocol of the ingress port. The supported values are: \\\"TCP\\\", \\\"UDP\\\", \\\"SCTP\\\"\",\n\t\"error\":    \"Error is to record the problem with the service port The format of the error shall comply with the following rules: - built-in error values shall be specified in this file and those shall use\\n  CamelCase names\\n- cloud provider specific error values must have names that comply with the\\n  format foo.example.com/CamelCase.\",\n}\n\nfunc (IngressPortStatus) SwaggerDoc() map[string]string {\n\treturn map_IngressPortStatus\n}\n\nvar map_IngressRule = map[string]string{\n\t\"\":     \"IngressRule represents the rules mapping the paths under a specified host to the related backend services. Incoming requests are first evaluated for a host match, then routed to the backend associated with the matching IngressRuleValue.\",\n\t\"host\": \"Host is the fully qualified domain name of a network host, as defined by RFC 3986. Note the following deviations from the \\\"host\\\" part of the URI as defined in RFC 3986: 1. IPs are not allowed. Currently an IngressRuleValue can only apply to\\n   the IP in the Spec of the parent Ingress.\\n2. The `:` delimiter is not respected because ports are not allowed.\\n\\t  Currently the port of an Ingress is implicitly :80 for http and\\n\\t  :443 for https.\\nBoth these may change in the future. Incoming requests are matched against the host before the IngressRuleValue. If the host is unspecified, the Ingress routes all traffic based on the specified IngressRuleValue.\\n\\nHost can be \\\"precise\\\" which is a domain name without the terminating dot of a network host (e.g. \\\"foo.bar.com\\\") or \\\"wildcard\\\", which is a domain name prefixed with a single wildcard label (e.g. \\\"*.foo.com\\\"). The wildcard character '*' must appear by itself as the first DNS label and matches only a single label. You cannot have a wildcard label by itself (e.g. Host == \\\"*\\\"). Requests will be matched against the Host field in the following way: 1. If Host is precise, the request matches this rule if the http host header is equal to Host. 2. If Host is a wildcard, then the request matches this rule if the http host header is to equal to the suffix (removing the first label) of the wildcard rule.\",\n}\n\nfunc (IngressRule) SwaggerDoc() map[string]string {\n\treturn map_IngressRule\n}\n\nvar map_IngressRuleValue = map[string]string{\n\t\"\":     \"IngressRuleValue represents a rule to apply against incoming requests. If the rule is satisfied, the request is routed to the specified backend. Currently mixing different types of rules in a single Ingress is disallowed, so exactly one of the following must be set.\",\n\t\"http\": \"http is a list of http selectors pointing to backends. A path is matched against the path of an incoming request. Currently it can contain characters disallowed from the conventional \\\"path\\\" part of a URL as defined by RFC 3986. Paths must begin with a '/'. A backend defines the referenced service endpoint to which the traffic will be forwarded to.\",\n}\n\nfunc (IngressRuleValue) SwaggerDoc() map[string]string {\n\treturn map_IngressRuleValue\n}\n\nvar map_IngressSpec = map[string]string{\n\t\"\":                 \"IngressSpec describes the Ingress the user wishes to exist.\",\n\t\"ingressClassName\": \"IngressClassName is the name of the IngressClass cluster resource. The associated IngressClass defines which controller will implement the resource. This replaces the deprecated `kubernetes.io/ingress.class` annotation. For backwards compatibility, when that annotation is set, it must be given precedence over this field. The controller may emit a warning if the field and annotation have different values. Implementations of this API should ignore Ingresses without a class specified. An IngressClass resource may be marked as default, which can be used to set a default value for this field. For more information, refer to the IngressClass documentation.\",\n\t\"backend\":          \"A default backend capable of servicing requests that don't match any rule. At least one of 'backend' or 'rules' must be specified. This field is optional to allow the loadbalancer controller or defaulting logic to specify a global default.\",\n\t\"tls\":              \"TLS configuration. Currently the Ingress only supports a single TLS port, 443. If multiple members of this list specify different hosts, they will be multiplexed on the same port according to the hostname specified through the SNI TLS extension, if the ingress controller fulfilling the ingress supports SNI.\",\n\t\"rules\":            \"A list of host rules used to configure the Ingress. If unspecified, or no rule matches, all traffic is sent to the default backend.\",\n}\n\nfunc (IngressSpec) SwaggerDoc() map[string]string {\n\treturn map_IngressSpec\n}\n\nvar map_IngressStatus = map[string]string{\n\t\"\":             \"IngressStatus describe the current state of the Ingress.\",\n\t\"loadBalancer\": \"LoadBalancer contains the current status of the load-balancer.\",\n}\n\nfunc (IngressStatus) SwaggerDoc() map[string]string {\n\treturn map_IngressStatus\n}\n\nvar map_IngressTLS = map[string]string{\n\t\"\":           \"IngressTLS describes the transport layer security associated with an Ingress.\",\n\t\"hosts\":      \"Hosts are a list of hosts included in the TLS certificate. The values in this list must match the name/s used in the tlsSecret. Defaults to the wildcard host setting for the loadbalancer controller fulfilling this Ingress, if left unspecified.\",\n\t\"secretName\": \"SecretName is the name of the secret used to terminate SSL traffic on 443. Field is left optional to allow SSL routing based on SNI hostname alone. If the SNI host in a listener conflicts with the \\\"Host\\\" header field used by an IngressRule, the SNI host is used for termination and value of the Host header is used for routing.\",\n}\n\nfunc (IngressTLS) SwaggerDoc() map[string]string {\n\treturn map_IngressTLS\n}\n\nvar map_NetworkPolicy = map[string]string{\n\t\"\":         \"DEPRECATED 1.9 - This group version of NetworkPolicy is deprecated by networking/v1/NetworkPolicy. NetworkPolicy describes what network traffic is allowed for a set of Pods\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Specification of the desired behavior for this NetworkPolicy.\",\n}\n\nfunc (NetworkPolicy) SwaggerDoc() map[string]string {\n\treturn map_NetworkPolicy\n}\n\nvar map_NetworkPolicyEgressRule = map[string]string{\n\t\"\":      \"DEPRECATED 1.9 - This group version of NetworkPolicyEgressRule is deprecated by networking/v1/NetworkPolicyEgressRule. NetworkPolicyEgressRule describes a particular set of traffic that is allowed out of pods matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and to. This type is beta-level in 1.8\",\n\t\"ports\": \"List of destination ports for outgoing traffic. Each item in this list is combined using a logical OR. If this field is empty or missing, this rule matches all ports (traffic not restricted by port). If this field is present and contains at least one item, then this rule allows traffic only if the traffic matches at least one port in the list.\",\n\t\"to\":    \"List of destinations for outgoing traffic of pods selected for this rule. Items in this list are combined using a logical OR operation. If this field is empty or missing, this rule matches all destinations (traffic not restricted by destination). If this field is present and contains at least one item, this rule allows traffic only if the traffic matches at least one item in the to list.\",\n}\n\nfunc (NetworkPolicyEgressRule) SwaggerDoc() map[string]string {\n\treturn map_NetworkPolicyEgressRule\n}\n\nvar map_NetworkPolicyIngressRule = map[string]string{\n\t\"\":      \"DEPRECATED 1.9 - This group version of NetworkPolicyIngressRule is deprecated by networking/v1/NetworkPolicyIngressRule. This NetworkPolicyIngressRule matches traffic if and only if the traffic matches both ports AND from.\",\n\t\"ports\": \"List of ports which should be made accessible on the pods selected for this rule. Each item in this list is combined using a logical OR. If this field is empty or missing, this rule matches all ports (traffic not restricted by port). If this field is present and contains at least one item, then this rule allows traffic only if the traffic matches at least one port in the list.\",\n\t\"from\":  \"List of sources which should be able to access the pods selected for this rule. Items in this list are combined using a logical OR operation. If this field is empty or missing, this rule matches all sources (traffic not restricted by source). If this field is present and contains at least one item, this rule allows traffic only if the traffic matches at least one item in the from list.\",\n}\n\nfunc (NetworkPolicyIngressRule) SwaggerDoc() map[string]string {\n\treturn map_NetworkPolicyIngressRule\n}\n\nvar map_NetworkPolicyList = map[string]string{\n\t\"\":         \"DEPRECATED 1.9 - This group version of NetworkPolicyList is deprecated by networking/v1/NetworkPolicyList. Network Policy List is a list of NetworkPolicy objects.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"Items is a list of schema objects.\",\n}\n\nfunc (NetworkPolicyList) SwaggerDoc() map[string]string {\n\treturn map_NetworkPolicyList\n}\n\nvar map_NetworkPolicyPeer = map[string]string{\n\t\"\":                  \"DEPRECATED 1.9 - This group version of NetworkPolicyPeer is deprecated by networking/v1/NetworkPolicyPeer.\",\n\t\"podSelector\":       \"This is a label selector which selects Pods. This field follows standard label selector semantics; if present but empty, it selects all pods.\\n\\nIf NamespaceSelector is also set, then the NetworkPolicyPeer as a whole selects the Pods matching PodSelector in the Namespaces selected by NamespaceSelector. Otherwise it selects the Pods matching PodSelector in the policy's own Namespace.\",\n\t\"namespaceSelector\": \"Selects Namespaces using cluster-scoped labels. This field follows standard label selector semantics; if present but empty, it selects all namespaces.\\n\\nIf PodSelector is also set, then the NetworkPolicyPeer as a whole selects the Pods matching PodSelector in the Namespaces selected by NamespaceSelector. Otherwise it selects all Pods in the Namespaces selected by NamespaceSelector.\",\n\t\"ipBlock\":           \"IPBlock defines policy on a particular IPBlock. If this field is set then neither of the other fields can be.\",\n}\n\nfunc (NetworkPolicyPeer) SwaggerDoc() map[string]string {\n\treturn map_NetworkPolicyPeer\n}\n\nvar map_NetworkPolicyPort = map[string]string{\n\t\"\":         \"DEPRECATED 1.9 - This group version of NetworkPolicyPort is deprecated by networking/v1/NetworkPolicyPort.\",\n\t\"protocol\": \"Optional.  The protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP.\",\n\t\"port\":     \"The port on the given protocol. This can either be a numerical or named port on a pod. If this field is not provided, this matches all port names and numbers. If present, only traffic on the specified protocol AND port will be matched.\",\n\t\"endPort\":  \"If set, indicates that the range of ports from port to endPort, inclusive, should be allowed by the policy. This field cannot be defined if the port field is not defined or if the port field is defined as a named (string) port. The endPort must be equal or greater than port.\",\n}\n\nfunc (NetworkPolicyPort) SwaggerDoc() map[string]string {\n\treturn map_NetworkPolicyPort\n}\n\nvar map_NetworkPolicySpec = map[string]string{\n\t\"\":            \"DEPRECATED 1.9 - This group version of NetworkPolicySpec is deprecated by networking/v1/NetworkPolicySpec.\",\n\t\"podSelector\": \"Selects the pods to which this NetworkPolicy object applies.  The array of ingress rules is applied to any pods selected by this field. Multiple network policies can select the same set of pods.  In this case, the ingress rules for each are combined additively. This field is NOT optional and follows standard label selector semantics. An empty podSelector matches all pods in this namespace.\",\n\t\"ingress\":     \"List of ingress rules to be applied to the selected pods. Traffic is allowed to a pod if there are no NetworkPolicies selecting the pod OR if the traffic source is the pod's local node, OR if the traffic matches at least one ingress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy does not allow any traffic (and serves solely to ensure that the pods it selects are isolated by default).\",\n\t\"egress\":      \"List of egress rules to be applied to the selected pods. Outgoing traffic is allowed if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic matches at least one egress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy limits all outgoing traffic (and serves solely to ensure that the pods it selects are isolated by default). This field is beta-level in 1.8\",\n\t\"policyTypes\": \"List of rule types that the NetworkPolicy relates to. Valid options are [\\\"Ingress\\\"], [\\\"Egress\\\"], or [\\\"Ingress\\\", \\\"Egress\\\"]. If this field is not specified, it will default based on the existence of Ingress or Egress rules; policies that contain an Egress section are assumed to affect Egress, and all policies (whether or not they contain an Ingress section) are assumed to affect Ingress. If you want to write an egress-only policy, you must explicitly specify policyTypes [ \\\"Egress\\\" ]. Likewise, if you want to write a policy that specifies that no egress is allowed, you must specify a policyTypes value that include \\\"Egress\\\" (since such a policy would not include an Egress section and would otherwise default to just [ \\\"Ingress\\\" ]). This field is beta-level in 1.8\",\n}\n\nfunc (NetworkPolicySpec) SwaggerDoc() map[string]string {\n\treturn map_NetworkPolicySpec\n}\n\nvar map_ReplicaSet = map[string]string{\n\t\"\":         \"DEPRECATED - This group version of ReplicaSet is deprecated by apps/v1beta2/ReplicaSet. See the release notes for more information. ReplicaSet ensures that a specified number of pod replicas are running at any given time.\",\n\t\"metadata\": \"If the Labels of a ReplicaSet are empty, they are defaulted to be the same as the Pod(s) that the ReplicaSet manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (ReplicaSet) SwaggerDoc() map[string]string {\n\treturn map_ReplicaSet\n}\n\nvar map_ReplicaSetCondition = map[string]string{\n\t\"\":                   \"ReplicaSetCondition describes the state of a replica set at a certain point.\",\n\t\"type\":               \"Type of replica set condition.\",\n\t\"status\":             \"Status of the condition, one of True, False, Unknown.\",\n\t\"lastTransitionTime\": \"The last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"The reason for the condition's last transition.\",\n\t\"message\":            \"A human readable message indicating details about the transition.\",\n}\n\nfunc (ReplicaSetCondition) SwaggerDoc() map[string]string {\n\treturn map_ReplicaSetCondition\n}\n\nvar map_ReplicaSetList = map[string]string{\n\t\"\":         \"ReplicaSetList is a collection of ReplicaSets.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller\",\n}\n\nfunc (ReplicaSetList) SwaggerDoc() map[string]string {\n\treturn map_ReplicaSetList\n}\n\nvar map_ReplicaSetSpec = map[string]string{\n\t\"\":                \"ReplicaSetSpec is the specification of a ReplicaSet.\",\n\t\"replicas\":        \"Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller\",\n\t\"minReadySeconds\": \"Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)\",\n\t\"selector\":        \"Selector is a label query over pods that should match the replica count. If the selector is empty, it is defaulted to the labels present on the pod template. Label keys and values that must match in order to be controlled by this replica set. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\n\t\"template\":        \"Template is the object that describes the pod that will be created if insufficient replicas are detected. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template\",\n}\n\nfunc (ReplicaSetSpec) SwaggerDoc() map[string]string {\n\treturn map_ReplicaSetSpec\n}\n\nvar map_ReplicaSetStatus = map[string]string{\n\t\"\":                     \"ReplicaSetStatus represents the current status of a ReplicaSet.\",\n\t\"replicas\":             \"Replicas is the most recently observed number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller\",\n\t\"fullyLabeledReplicas\": \"The number of pods that have labels matching the labels of the pod template of the replicaset.\",\n\t\"readyReplicas\":        \"The number of ready replicas for this replica set.\",\n\t\"availableReplicas\":    \"The number of available replicas (ready for at least minReadySeconds) for this replica set.\",\n\t\"observedGeneration\":   \"ObservedGeneration reflects the generation of the most recently observed ReplicaSet.\",\n\t\"conditions\":           \"Represents the latest available observations of a replica set's current state.\",\n}\n\nfunc (ReplicaSetStatus) SwaggerDoc() map[string]string {\n\treturn map_ReplicaSetStatus\n}\n\nvar map_RollbackConfig = map[string]string{\n\t\"\":         \"DEPRECATED.\",\n\t\"revision\": \"The revision to rollback to. If set to 0, rollback to the last revision.\",\n}\n\nfunc (RollbackConfig) SwaggerDoc() map[string]string {\n\treturn map_RollbackConfig\n}\n\nvar map_RollingUpdateDaemonSet = map[string]string{\n\t\"\":               \"Spec to control the desired behavior of daemon set rolling update.\",\n\t\"maxUnavailable\": \"The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0 if MaxSurge is 0 Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update.\",\n\t\"maxSurge\":       \"The maximum number of nodes with an existing available DaemonSet pod that can have an updated DaemonSet pod during during an update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up to a minimum of 1. Default value is 0. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their a new pod created before the old pod is marked as deleted. The update starts by launching new pods on 30% of nodes. Once an updated pod is available (Ready for at least minReadySeconds) the old DaemonSet pod on that node is marked deleted. If the old pod becomes unavailable for any reason (Ready transitions to false, is evicted, or is drained) an updated pod is immediatedly created on that node without considering surge limits. Allowing surge implies the possibility that the resources consumed by the daemonset on any given node can double if the readiness check fails, and so resource intensive daemonsets should take into account that they may cause evictions during disruption. This is an alpha field and requires enabling DaemonSetUpdateSurge feature gate.\",\n}\n\nfunc (RollingUpdateDaemonSet) SwaggerDoc() map[string]string {\n\treturn map_RollingUpdateDaemonSet\n}\n\nvar map_RollingUpdateDeployment = map[string]string{\n\t\"\":               \"Spec to control the desired behavior of rolling update.\",\n\t\"maxUnavailable\": \"The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. By default, a fixed value of 1 is used. Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old RC can be scaled down further, followed by scaling up the new RC, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.\",\n\t\"maxSurge\":       \"The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. By default, a value of 1 is used. Example: when this is set to 30%, the new RC can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new RC can be scaled up further, ensuring that total number of pods running at any time during the update is at most 130% of desired pods.\",\n}\n\nfunc (RollingUpdateDeployment) SwaggerDoc() map[string]string {\n\treturn map_RollingUpdateDeployment\n}\n\nvar map_Scale = map[string]string{\n\t\"\":         \"represents a scaling request for a resource.\",\n\t\"metadata\": \"Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.\",\n\t\"spec\":     \"defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.\",\n\t\"status\":   \"current status of the scale. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status. Read-only.\",\n}\n\nfunc (Scale) SwaggerDoc() map[string]string {\n\treturn map_Scale\n}\n\nvar map_ScaleSpec = map[string]string{\n\t\"\":         \"describes the attributes of a scale subresource\",\n\t\"replicas\": \"desired number of instances for the scaled object.\",\n}\n\nfunc (ScaleSpec) SwaggerDoc() map[string]string {\n\treturn map_ScaleSpec\n}\n\nvar map_ScaleStatus = map[string]string{\n\t\"\":               \"represents the current status of a scale subresource.\",\n\t\"replicas\":       \"actual number of observed instances of the scaled object.\",\n\t\"selector\":       \"selector is a label query over pods that should match the replicas count. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/\",\n\t\"targetSelector\": \"label selector for pods that should match the replicas count. This is a serializated version of both map-based and more expressive set-based selectors. This is done to avoid introspection in the clients. The string will be in the same format as the query-param syntax. If the target type only supports map-based selectors, both this field and map-based selector field are populated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors\",\n}\n\nfunc (ScaleStatus) SwaggerDoc() map[string]string {\n\treturn map_ScaleStatus\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/extensions/v1beta1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DaemonSet) DeepCopyInto(out *DaemonSet) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSet.\nfunc (in *DaemonSet) DeepCopy() *DaemonSet {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DaemonSet)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *DaemonSet) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DaemonSetCondition) DeepCopyInto(out *DaemonSetCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetCondition.\nfunc (in *DaemonSetCondition) DeepCopy() *DaemonSetCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DaemonSetCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DaemonSetList) DeepCopyInto(out *DaemonSetList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]DaemonSet, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetList.\nfunc (in *DaemonSetList) DeepCopy() *DaemonSetList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DaemonSetList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *DaemonSetList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DaemonSetSpec) DeepCopyInto(out *DaemonSetSpec) {\n\t*out = *in\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tin.Template.DeepCopyInto(&out.Template)\n\tin.UpdateStrategy.DeepCopyInto(&out.UpdateStrategy)\n\tif in.RevisionHistoryLimit != nil {\n\t\tin, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetSpec.\nfunc (in *DaemonSetSpec) DeepCopy() *DaemonSetSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DaemonSetSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DaemonSetStatus) DeepCopyInto(out *DaemonSetStatus) {\n\t*out = *in\n\tif in.CollisionCount != nil {\n\t\tin, out := &in.CollisionCount, &out.CollisionCount\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]DaemonSetCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetStatus.\nfunc (in *DaemonSetStatus) DeepCopy() *DaemonSetStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DaemonSetStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DaemonSetUpdateStrategy) DeepCopyInto(out *DaemonSetUpdateStrategy) {\n\t*out = *in\n\tif in.RollingUpdate != nil {\n\t\tin, out := &in.RollingUpdate, &out.RollingUpdate\n\t\t*out = new(RollingUpdateDaemonSet)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetUpdateStrategy.\nfunc (in *DaemonSetUpdateStrategy) DeepCopy() *DaemonSetUpdateStrategy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DaemonSetUpdateStrategy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Deployment) DeepCopyInto(out *Deployment) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Deployment.\nfunc (in *Deployment) DeepCopy() *Deployment {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Deployment)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Deployment) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentCondition) DeepCopyInto(out *DeploymentCondition) {\n\t*out = *in\n\tin.LastUpdateTime.DeepCopyInto(&out.LastUpdateTime)\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentCondition.\nfunc (in *DeploymentCondition) DeepCopy() *DeploymentCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentList) DeepCopyInto(out *DeploymentList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Deployment, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentList.\nfunc (in *DeploymentList) DeepCopy() *DeploymentList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *DeploymentList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentRollback) DeepCopyInto(out *DeploymentRollback) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tif in.UpdatedAnnotations != nil {\n\t\tin, out := &in.UpdatedAnnotations, &out.UpdatedAnnotations\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tout.RollbackTo = in.RollbackTo\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentRollback.\nfunc (in *DeploymentRollback) DeepCopy() *DeploymentRollback {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentRollback)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *DeploymentRollback) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentSpec) DeepCopyInto(out *DeploymentSpec) {\n\t*out = *in\n\tif in.Replicas != nil {\n\t\tin, out := &in.Replicas, &out.Replicas\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tin.Template.DeepCopyInto(&out.Template)\n\tin.Strategy.DeepCopyInto(&out.Strategy)\n\tif in.RevisionHistoryLimit != nil {\n\t\tin, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.RollbackTo != nil {\n\t\tin, out := &in.RollbackTo, &out.RollbackTo\n\t\t*out = new(RollbackConfig)\n\t\t**out = **in\n\t}\n\tif in.ProgressDeadlineSeconds != nil {\n\t\tin, out := &in.ProgressDeadlineSeconds, &out.ProgressDeadlineSeconds\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentSpec.\nfunc (in *DeploymentSpec) DeepCopy() *DeploymentSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentStatus) DeepCopyInto(out *DeploymentStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]DeploymentCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.CollisionCount != nil {\n\t\tin, out := &in.CollisionCount, &out.CollisionCount\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentStatus.\nfunc (in *DeploymentStatus) DeepCopy() *DeploymentStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeploymentStrategy) DeepCopyInto(out *DeploymentStrategy) {\n\t*out = *in\n\tif in.RollingUpdate != nil {\n\t\tin, out := &in.RollingUpdate, &out.RollingUpdate\n\t\t*out = new(RollingUpdateDeployment)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentStrategy.\nfunc (in *DeploymentStrategy) DeepCopy() *DeploymentStrategy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeploymentStrategy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HTTPIngressPath) DeepCopyInto(out *HTTPIngressPath) {\n\t*out = *in\n\tif in.PathType != nil {\n\t\tin, out := &in.PathType, &out.PathType\n\t\t*out = new(PathType)\n\t\t**out = **in\n\t}\n\tin.Backend.DeepCopyInto(&out.Backend)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPIngressPath.\nfunc (in *HTTPIngressPath) DeepCopy() *HTTPIngressPath {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HTTPIngressPath)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HTTPIngressRuleValue) DeepCopyInto(out *HTTPIngressRuleValue) {\n\t*out = *in\n\tif in.Paths != nil {\n\t\tin, out := &in.Paths, &out.Paths\n\t\t*out = make([]HTTPIngressPath, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPIngressRuleValue.\nfunc (in *HTTPIngressRuleValue) DeepCopy() *HTTPIngressRuleValue {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HTTPIngressRuleValue)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IPBlock) DeepCopyInto(out *IPBlock) {\n\t*out = *in\n\tif in.Except != nil {\n\t\tin, out := &in.Except, &out.Except\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPBlock.\nfunc (in *IPBlock) DeepCopy() *IPBlock {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IPBlock)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Ingress) DeepCopyInto(out *Ingress) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Ingress.\nfunc (in *Ingress) DeepCopy() *Ingress {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Ingress)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Ingress) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressBackend) DeepCopyInto(out *IngressBackend) {\n\t*out = *in\n\tout.ServicePort = in.ServicePort\n\tif in.Resource != nil {\n\t\tin, out := &in.Resource, &out.Resource\n\t\t*out = new(corev1.TypedLocalObjectReference)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressBackend.\nfunc (in *IngressBackend) DeepCopy() *IngressBackend {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressBackend)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressList) DeepCopyInto(out *IngressList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Ingress, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressList.\nfunc (in *IngressList) DeepCopy() *IngressList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *IngressList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressLoadBalancerIngress) DeepCopyInto(out *IngressLoadBalancerIngress) {\n\t*out = *in\n\tif in.Ports != nil {\n\t\tin, out := &in.Ports, &out.Ports\n\t\t*out = make([]IngressPortStatus, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressLoadBalancerIngress.\nfunc (in *IngressLoadBalancerIngress) DeepCopy() *IngressLoadBalancerIngress {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressLoadBalancerIngress)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressLoadBalancerStatus) DeepCopyInto(out *IngressLoadBalancerStatus) {\n\t*out = *in\n\tif in.Ingress != nil {\n\t\tin, out := &in.Ingress, &out.Ingress\n\t\t*out = make([]IngressLoadBalancerIngress, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressLoadBalancerStatus.\nfunc (in *IngressLoadBalancerStatus) DeepCopy() *IngressLoadBalancerStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressLoadBalancerStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressPortStatus) DeepCopyInto(out *IngressPortStatus) {\n\t*out = *in\n\tif in.Error != nil {\n\t\tin, out := &in.Error, &out.Error\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressPortStatus.\nfunc (in *IngressPortStatus) DeepCopy() *IngressPortStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressPortStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressRule) DeepCopyInto(out *IngressRule) {\n\t*out = *in\n\tin.IngressRuleValue.DeepCopyInto(&out.IngressRuleValue)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressRule.\nfunc (in *IngressRule) DeepCopy() *IngressRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressRuleValue) DeepCopyInto(out *IngressRuleValue) {\n\t*out = *in\n\tif in.HTTP != nil {\n\t\tin, out := &in.HTTP, &out.HTTP\n\t\t*out = new(HTTPIngressRuleValue)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressRuleValue.\nfunc (in *IngressRuleValue) DeepCopy() *IngressRuleValue {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressRuleValue)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressSpec) DeepCopyInto(out *IngressSpec) {\n\t*out = *in\n\tif in.IngressClassName != nil {\n\t\tin, out := &in.IngressClassName, &out.IngressClassName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.Backend != nil {\n\t\tin, out := &in.Backend, &out.Backend\n\t\t*out = new(IngressBackend)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.TLS != nil {\n\t\tin, out := &in.TLS, &out.TLS\n\t\t*out = make([]IngressTLS, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Rules != nil {\n\t\tin, out := &in.Rules, &out.Rules\n\t\t*out = make([]IngressRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressSpec.\nfunc (in *IngressSpec) DeepCopy() *IngressSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressStatus) DeepCopyInto(out *IngressStatus) {\n\t*out = *in\n\tin.LoadBalancer.DeepCopyInto(&out.LoadBalancer)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressStatus.\nfunc (in *IngressStatus) DeepCopy() *IngressStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressTLS) DeepCopyInto(out *IngressTLS) {\n\t*out = *in\n\tif in.Hosts != nil {\n\t\tin, out := &in.Hosts, &out.Hosts\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressTLS.\nfunc (in *IngressTLS) DeepCopy() *IngressTLS {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressTLS)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NetworkPolicy) DeepCopyInto(out *NetworkPolicy) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicy.\nfunc (in *NetworkPolicy) DeepCopy() *NetworkPolicy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NetworkPolicy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *NetworkPolicy) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NetworkPolicyEgressRule) DeepCopyInto(out *NetworkPolicyEgressRule) {\n\t*out = *in\n\tif in.Ports != nil {\n\t\tin, out := &in.Ports, &out.Ports\n\t\t*out = make([]NetworkPolicyPort, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.To != nil {\n\t\tin, out := &in.To, &out.To\n\t\t*out = make([]NetworkPolicyPeer, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyEgressRule.\nfunc (in *NetworkPolicyEgressRule) DeepCopy() *NetworkPolicyEgressRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NetworkPolicyEgressRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NetworkPolicyIngressRule) DeepCopyInto(out *NetworkPolicyIngressRule) {\n\t*out = *in\n\tif in.Ports != nil {\n\t\tin, out := &in.Ports, &out.Ports\n\t\t*out = make([]NetworkPolicyPort, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.From != nil {\n\t\tin, out := &in.From, &out.From\n\t\t*out = make([]NetworkPolicyPeer, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyIngressRule.\nfunc (in *NetworkPolicyIngressRule) DeepCopy() *NetworkPolicyIngressRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NetworkPolicyIngressRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NetworkPolicyList) DeepCopyInto(out *NetworkPolicyList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]NetworkPolicy, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyList.\nfunc (in *NetworkPolicyList) DeepCopy() *NetworkPolicyList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NetworkPolicyList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *NetworkPolicyList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NetworkPolicyPeer) DeepCopyInto(out *NetworkPolicyPeer) {\n\t*out = *in\n\tif in.PodSelector != nil {\n\t\tin, out := &in.PodSelector, &out.PodSelector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.NamespaceSelector != nil {\n\t\tin, out := &in.NamespaceSelector, &out.NamespaceSelector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.IPBlock != nil {\n\t\tin, out := &in.IPBlock, &out.IPBlock\n\t\t*out = new(IPBlock)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyPeer.\nfunc (in *NetworkPolicyPeer) DeepCopy() *NetworkPolicyPeer {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NetworkPolicyPeer)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NetworkPolicyPort) DeepCopyInto(out *NetworkPolicyPort) {\n\t*out = *in\n\tif in.Protocol != nil {\n\t\tin, out := &in.Protocol, &out.Protocol\n\t\t*out = new(corev1.Protocol)\n\t\t**out = **in\n\t}\n\tif in.Port != nil {\n\t\tin, out := &in.Port, &out.Port\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\tif in.EndPort != nil {\n\t\tin, out := &in.EndPort, &out.EndPort\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyPort.\nfunc (in *NetworkPolicyPort) DeepCopy() *NetworkPolicyPort {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NetworkPolicyPort)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NetworkPolicySpec) DeepCopyInto(out *NetworkPolicySpec) {\n\t*out = *in\n\tin.PodSelector.DeepCopyInto(&out.PodSelector)\n\tif in.Ingress != nil {\n\t\tin, out := &in.Ingress, &out.Ingress\n\t\t*out = make([]NetworkPolicyIngressRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Egress != nil {\n\t\tin, out := &in.Egress, &out.Egress\n\t\t*out = make([]NetworkPolicyEgressRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.PolicyTypes != nil {\n\t\tin, out := &in.PolicyTypes, &out.PolicyTypes\n\t\t*out = make([]PolicyType, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicySpec.\nfunc (in *NetworkPolicySpec) DeepCopy() *NetworkPolicySpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NetworkPolicySpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ReplicaSet) DeepCopyInto(out *ReplicaSet) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSet.\nfunc (in *ReplicaSet) DeepCopy() *ReplicaSet {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ReplicaSet)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ReplicaSet) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ReplicaSetCondition) DeepCopyInto(out *ReplicaSetCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetCondition.\nfunc (in *ReplicaSetCondition) DeepCopy() *ReplicaSetCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ReplicaSetCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ReplicaSetList) DeepCopyInto(out *ReplicaSetList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ReplicaSet, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetList.\nfunc (in *ReplicaSetList) DeepCopy() *ReplicaSetList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ReplicaSetList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ReplicaSetList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ReplicaSetSpec) DeepCopyInto(out *ReplicaSetSpec) {\n\t*out = *in\n\tif in.Replicas != nil {\n\t\tin, out := &in.Replicas, &out.Replicas\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tin.Template.DeepCopyInto(&out.Template)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetSpec.\nfunc (in *ReplicaSetSpec) DeepCopy() *ReplicaSetSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ReplicaSetSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ReplicaSetStatus) DeepCopyInto(out *ReplicaSetStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]ReplicaSetCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetStatus.\nfunc (in *ReplicaSetStatus) DeepCopy() *ReplicaSetStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ReplicaSetStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RollbackConfig) DeepCopyInto(out *RollbackConfig) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollbackConfig.\nfunc (in *RollbackConfig) DeepCopy() *RollbackConfig {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RollbackConfig)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RollingUpdateDaemonSet) DeepCopyInto(out *RollingUpdateDaemonSet) {\n\t*out = *in\n\tif in.MaxUnavailable != nil {\n\t\tin, out := &in.MaxUnavailable, &out.MaxUnavailable\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\tif in.MaxSurge != nil {\n\t\tin, out := &in.MaxSurge, &out.MaxSurge\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollingUpdateDaemonSet.\nfunc (in *RollingUpdateDaemonSet) DeepCopy() *RollingUpdateDaemonSet {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RollingUpdateDaemonSet)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RollingUpdateDeployment) DeepCopyInto(out *RollingUpdateDeployment) {\n\t*out = *in\n\tif in.MaxUnavailable != nil {\n\t\tin, out := &in.MaxUnavailable, &out.MaxUnavailable\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\tif in.MaxSurge != nil {\n\t\tin, out := &in.MaxSurge, &out.MaxSurge\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollingUpdateDeployment.\nfunc (in *RollingUpdateDeployment) DeepCopy() *RollingUpdateDeployment {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RollingUpdateDeployment)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Scale) DeepCopyInto(out *Scale) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tout.Spec = in.Spec\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Scale.\nfunc (in *Scale) DeepCopy() *Scale {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Scale)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Scale) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ScaleSpec) DeepCopyInto(out *ScaleSpec) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleSpec.\nfunc (in *ScaleSpec) DeepCopy() *ScaleSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ScaleSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ScaleStatus) DeepCopyInto(out *ScaleStatus) {\n\t*out = *in\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleStatus.\nfunc (in *ScaleStatus) DeepCopy() *ScaleStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ScaleStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/extensions/v1beta1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *DaemonSet) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 1\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *DaemonSet) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *DaemonSet) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"DaemonSet\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *DaemonSet) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *DaemonSetList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 1\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *DaemonSetList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *DaemonSetList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"DaemonSetList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *DaemonSetList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *Deployment) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 1\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *Deployment) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *Deployment) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"Deployment\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *Deployment) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *DeploymentList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 1\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *DeploymentList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *DeploymentList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"DeploymentList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *DeploymentList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *DeploymentRollback) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 2\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *DeploymentRollback) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *DeploymentRollback) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *Ingress) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 1\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *Ingress) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 14\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *Ingress) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"networking.k8s.io\", Version: \"v1\", Kind: \"Ingress\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *Ingress) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *IngressList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 1\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *IngressList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 14\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *IngressList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"networking.k8s.io\", Version: \"v1\", Kind: \"IngressList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *IngressList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *NetworkPolicy) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 3\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *NetworkPolicy) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *NetworkPolicy) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"networking.k8s.io\", Version: \"v1\", Kind: \"NetworkPolicy\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *NetworkPolicy) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *NetworkPolicyList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 3\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *NetworkPolicyList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *NetworkPolicyList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"networking.k8s.io\", Version: \"v1\", Kind: \"NetworkPolicyList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *NetworkPolicyList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ReplicaSet) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 2\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ReplicaSet) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *ReplicaSet) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"ReplicaSet\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ReplicaSet) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ReplicaSetList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 2\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ReplicaSetList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *ReplicaSetList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"apps\", Version: \"v1\", Kind: \"ReplicaSetList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ReplicaSetList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *Scale) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 1\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *Scale) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 2\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *Scale) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 16\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1/doc.go",
    "content": "/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\n// +groupName=flowcontrol.apiserver.k8s.io\n\n// Package v1 holds api types of version v1 for group \"flowcontrol.apiserver.k8s.io\".\npackage v1 // import \"k8s.io/api/flowcontrol/v1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/flowcontrol/v1/generated.proto\n\npackage v1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *ExemptPriorityLevelConfiguration) Reset()      { *m = ExemptPriorityLevelConfiguration{} }\nfunc (*ExemptPriorityLevelConfiguration) ProtoMessage() {}\nfunc (*ExemptPriorityLevelConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5d08a1401821035d, []int{0}\n}\nfunc (m *ExemptPriorityLevelConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ExemptPriorityLevelConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ExemptPriorityLevelConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ExemptPriorityLevelConfiguration.Merge(m, src)\n}\nfunc (m *ExemptPriorityLevelConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ExemptPriorityLevelConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_ExemptPriorityLevelConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ExemptPriorityLevelConfiguration proto.InternalMessageInfo\n\nfunc (m *FlowDistinguisherMethod) Reset()      { *m = FlowDistinguisherMethod{} }\nfunc (*FlowDistinguisherMethod) ProtoMessage() {}\nfunc (*FlowDistinguisherMethod) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5d08a1401821035d, []int{1}\n}\nfunc (m *FlowDistinguisherMethod) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowDistinguisherMethod) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowDistinguisherMethod) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowDistinguisherMethod.Merge(m, src)\n}\nfunc (m *FlowDistinguisherMethod) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowDistinguisherMethod) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowDistinguisherMethod.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowDistinguisherMethod proto.InternalMessageInfo\n\nfunc (m *FlowSchema) Reset()      { *m = FlowSchema{} }\nfunc (*FlowSchema) ProtoMessage() {}\nfunc (*FlowSchema) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5d08a1401821035d, []int{2}\n}\nfunc (m *FlowSchema) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowSchema) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowSchema) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowSchema.Merge(m, src)\n}\nfunc (m *FlowSchema) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowSchema) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowSchema.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowSchema proto.InternalMessageInfo\n\nfunc (m *FlowSchemaCondition) Reset()      { *m = FlowSchemaCondition{} }\nfunc (*FlowSchemaCondition) ProtoMessage() {}\nfunc (*FlowSchemaCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5d08a1401821035d, []int{3}\n}\nfunc (m *FlowSchemaCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowSchemaCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowSchemaCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowSchemaCondition.Merge(m, src)\n}\nfunc (m *FlowSchemaCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowSchemaCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowSchemaCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowSchemaCondition proto.InternalMessageInfo\n\nfunc (m *FlowSchemaList) Reset()      { *m = FlowSchemaList{} }\nfunc (*FlowSchemaList) ProtoMessage() {}\nfunc (*FlowSchemaList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5d08a1401821035d, []int{4}\n}\nfunc (m *FlowSchemaList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowSchemaList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowSchemaList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowSchemaList.Merge(m, src)\n}\nfunc (m *FlowSchemaList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowSchemaList) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowSchemaList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowSchemaList proto.InternalMessageInfo\n\nfunc (m *FlowSchemaSpec) Reset()      { *m = FlowSchemaSpec{} }\nfunc (*FlowSchemaSpec) ProtoMessage() {}\nfunc (*FlowSchemaSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5d08a1401821035d, []int{5}\n}\nfunc (m *FlowSchemaSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowSchemaSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowSchemaSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowSchemaSpec.Merge(m, src)\n}\nfunc (m *FlowSchemaSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowSchemaSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowSchemaSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowSchemaSpec proto.InternalMessageInfo\n\nfunc (m *FlowSchemaStatus) Reset()      { *m = FlowSchemaStatus{} }\nfunc (*FlowSchemaStatus) ProtoMessage() {}\nfunc (*FlowSchemaStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5d08a1401821035d, []int{6}\n}\nfunc (m *FlowSchemaStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowSchemaStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowSchemaStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowSchemaStatus.Merge(m, src)\n}\nfunc (m *FlowSchemaStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowSchemaStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowSchemaStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowSchemaStatus proto.InternalMessageInfo\n\nfunc (m *GroupSubject) Reset()      { *m = GroupSubject{} }\nfunc (*GroupSubject) ProtoMessage() {}\nfunc (*GroupSubject) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5d08a1401821035d, []int{7}\n}\nfunc (m *GroupSubject) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *GroupSubject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *GroupSubject) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_GroupSubject.Merge(m, src)\n}\nfunc (m *GroupSubject) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *GroupSubject) XXX_DiscardUnknown() {\n\txxx_messageInfo_GroupSubject.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_GroupSubject proto.InternalMessageInfo\n\nfunc (m *LimitResponse) Reset()      { *m = LimitResponse{} }\nfunc (*LimitResponse) ProtoMessage() {}\nfunc (*LimitResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5d08a1401821035d, []int{8}\n}\nfunc (m *LimitResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LimitResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LimitResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LimitResponse.Merge(m, src)\n}\nfunc (m *LimitResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LimitResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_LimitResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LimitResponse proto.InternalMessageInfo\n\nfunc (m *LimitedPriorityLevelConfiguration) Reset()      { *m = LimitedPriorityLevelConfiguration{} }\nfunc (*LimitedPriorityLevelConfiguration) ProtoMessage() {}\nfunc (*LimitedPriorityLevelConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5d08a1401821035d, []int{9}\n}\nfunc (m *LimitedPriorityLevelConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LimitedPriorityLevelConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LimitedPriorityLevelConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LimitedPriorityLevelConfiguration.Merge(m, src)\n}\nfunc (m *LimitedPriorityLevelConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LimitedPriorityLevelConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_LimitedPriorityLevelConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LimitedPriorityLevelConfiguration proto.InternalMessageInfo\n\nfunc (m *NonResourcePolicyRule) Reset()      { *m = NonResourcePolicyRule{} }\nfunc (*NonResourcePolicyRule) ProtoMessage() {}\nfunc (*NonResourcePolicyRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5d08a1401821035d, []int{10}\n}\nfunc (m *NonResourcePolicyRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NonResourcePolicyRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NonResourcePolicyRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NonResourcePolicyRule.Merge(m, src)\n}\nfunc (m *NonResourcePolicyRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NonResourcePolicyRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_NonResourcePolicyRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NonResourcePolicyRule proto.InternalMessageInfo\n\nfunc (m *PolicyRulesWithSubjects) Reset()      { *m = PolicyRulesWithSubjects{} }\nfunc (*PolicyRulesWithSubjects) ProtoMessage() {}\nfunc (*PolicyRulesWithSubjects) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5d08a1401821035d, []int{11}\n}\nfunc (m *PolicyRulesWithSubjects) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PolicyRulesWithSubjects) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PolicyRulesWithSubjects) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PolicyRulesWithSubjects.Merge(m, src)\n}\nfunc (m *PolicyRulesWithSubjects) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PolicyRulesWithSubjects) XXX_DiscardUnknown() {\n\txxx_messageInfo_PolicyRulesWithSubjects.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PolicyRulesWithSubjects proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfiguration) Reset()      { *m = PriorityLevelConfiguration{} }\nfunc (*PriorityLevelConfiguration) ProtoMessage() {}\nfunc (*PriorityLevelConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5d08a1401821035d, []int{12}\n}\nfunc (m *PriorityLevelConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfiguration.Merge(m, src)\n}\nfunc (m *PriorityLevelConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfiguration proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfigurationCondition) Reset()      { *m = PriorityLevelConfigurationCondition{} }\nfunc (*PriorityLevelConfigurationCondition) ProtoMessage() {}\nfunc (*PriorityLevelConfigurationCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5d08a1401821035d, []int{13}\n}\nfunc (m *PriorityLevelConfigurationCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfigurationCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfigurationCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfigurationCondition.Merge(m, src)\n}\nfunc (m *PriorityLevelConfigurationCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfigurationCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfigurationCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfigurationCondition proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfigurationList) Reset()      { *m = PriorityLevelConfigurationList{} }\nfunc (*PriorityLevelConfigurationList) ProtoMessage() {}\nfunc (*PriorityLevelConfigurationList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5d08a1401821035d, []int{14}\n}\nfunc (m *PriorityLevelConfigurationList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfigurationList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfigurationList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfigurationList.Merge(m, src)\n}\nfunc (m *PriorityLevelConfigurationList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfigurationList) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfigurationList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfigurationList proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfigurationReference) Reset()      { *m = PriorityLevelConfigurationReference{} }\nfunc (*PriorityLevelConfigurationReference) ProtoMessage() {}\nfunc (*PriorityLevelConfigurationReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5d08a1401821035d, []int{15}\n}\nfunc (m *PriorityLevelConfigurationReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfigurationReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfigurationReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfigurationReference.Merge(m, src)\n}\nfunc (m *PriorityLevelConfigurationReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfigurationReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfigurationReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfigurationReference proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfigurationSpec) Reset()      { *m = PriorityLevelConfigurationSpec{} }\nfunc (*PriorityLevelConfigurationSpec) ProtoMessage() {}\nfunc (*PriorityLevelConfigurationSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5d08a1401821035d, []int{16}\n}\nfunc (m *PriorityLevelConfigurationSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfigurationSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfigurationSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfigurationSpec.Merge(m, src)\n}\nfunc (m *PriorityLevelConfigurationSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfigurationSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfigurationSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfigurationSpec proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfigurationStatus) Reset()      { *m = PriorityLevelConfigurationStatus{} }\nfunc (*PriorityLevelConfigurationStatus) ProtoMessage() {}\nfunc (*PriorityLevelConfigurationStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5d08a1401821035d, []int{17}\n}\nfunc (m *PriorityLevelConfigurationStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfigurationStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfigurationStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfigurationStatus.Merge(m, src)\n}\nfunc (m *PriorityLevelConfigurationStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfigurationStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfigurationStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfigurationStatus proto.InternalMessageInfo\n\nfunc (m *QueuingConfiguration) Reset()      { *m = QueuingConfiguration{} }\nfunc (*QueuingConfiguration) ProtoMessage() {}\nfunc (*QueuingConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5d08a1401821035d, []int{18}\n}\nfunc (m *QueuingConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *QueuingConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *QueuingConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_QueuingConfiguration.Merge(m, src)\n}\nfunc (m *QueuingConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *QueuingConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_QueuingConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_QueuingConfiguration proto.InternalMessageInfo\n\nfunc (m *ResourcePolicyRule) Reset()      { *m = ResourcePolicyRule{} }\nfunc (*ResourcePolicyRule) ProtoMessage() {}\nfunc (*ResourcePolicyRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5d08a1401821035d, []int{19}\n}\nfunc (m *ResourcePolicyRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourcePolicyRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourcePolicyRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourcePolicyRule.Merge(m, src)\n}\nfunc (m *ResourcePolicyRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourcePolicyRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourcePolicyRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourcePolicyRule proto.InternalMessageInfo\n\nfunc (m *ServiceAccountSubject) Reset()      { *m = ServiceAccountSubject{} }\nfunc (*ServiceAccountSubject) ProtoMessage() {}\nfunc (*ServiceAccountSubject) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5d08a1401821035d, []int{20}\n}\nfunc (m *ServiceAccountSubject) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ServiceAccountSubject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ServiceAccountSubject) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServiceAccountSubject.Merge(m, src)\n}\nfunc (m *ServiceAccountSubject) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ServiceAccountSubject) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServiceAccountSubject.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServiceAccountSubject proto.InternalMessageInfo\n\nfunc (m *Subject) Reset()      { *m = Subject{} }\nfunc (*Subject) ProtoMessage() {}\nfunc (*Subject) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5d08a1401821035d, []int{21}\n}\nfunc (m *Subject) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Subject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Subject) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Subject.Merge(m, src)\n}\nfunc (m *Subject) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Subject) XXX_DiscardUnknown() {\n\txxx_messageInfo_Subject.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Subject proto.InternalMessageInfo\n\nfunc (m *UserSubject) Reset()      { *m = UserSubject{} }\nfunc (*UserSubject) ProtoMessage() {}\nfunc (*UserSubject) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_5d08a1401821035d, []int{22}\n}\nfunc (m *UserSubject) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *UserSubject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *UserSubject) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_UserSubject.Merge(m, src)\n}\nfunc (m *UserSubject) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *UserSubject) XXX_DiscardUnknown() {\n\txxx_messageInfo_UserSubject.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_UserSubject proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*ExemptPriorityLevelConfiguration)(nil), \"k8s.io.api.flowcontrol.v1.ExemptPriorityLevelConfiguration\")\n\tproto.RegisterType((*FlowDistinguisherMethod)(nil), \"k8s.io.api.flowcontrol.v1.FlowDistinguisherMethod\")\n\tproto.RegisterType((*FlowSchema)(nil), \"k8s.io.api.flowcontrol.v1.FlowSchema\")\n\tproto.RegisterType((*FlowSchemaCondition)(nil), \"k8s.io.api.flowcontrol.v1.FlowSchemaCondition\")\n\tproto.RegisterType((*FlowSchemaList)(nil), \"k8s.io.api.flowcontrol.v1.FlowSchemaList\")\n\tproto.RegisterType((*FlowSchemaSpec)(nil), \"k8s.io.api.flowcontrol.v1.FlowSchemaSpec\")\n\tproto.RegisterType((*FlowSchemaStatus)(nil), \"k8s.io.api.flowcontrol.v1.FlowSchemaStatus\")\n\tproto.RegisterType((*GroupSubject)(nil), \"k8s.io.api.flowcontrol.v1.GroupSubject\")\n\tproto.RegisterType((*LimitResponse)(nil), \"k8s.io.api.flowcontrol.v1.LimitResponse\")\n\tproto.RegisterType((*LimitedPriorityLevelConfiguration)(nil), \"k8s.io.api.flowcontrol.v1.LimitedPriorityLevelConfiguration\")\n\tproto.RegisterType((*NonResourcePolicyRule)(nil), \"k8s.io.api.flowcontrol.v1.NonResourcePolicyRule\")\n\tproto.RegisterType((*PolicyRulesWithSubjects)(nil), \"k8s.io.api.flowcontrol.v1.PolicyRulesWithSubjects\")\n\tproto.RegisterType((*PriorityLevelConfiguration)(nil), \"k8s.io.api.flowcontrol.v1.PriorityLevelConfiguration\")\n\tproto.RegisterType((*PriorityLevelConfigurationCondition)(nil), \"k8s.io.api.flowcontrol.v1.PriorityLevelConfigurationCondition\")\n\tproto.RegisterType((*PriorityLevelConfigurationList)(nil), \"k8s.io.api.flowcontrol.v1.PriorityLevelConfigurationList\")\n\tproto.RegisterType((*PriorityLevelConfigurationReference)(nil), \"k8s.io.api.flowcontrol.v1.PriorityLevelConfigurationReference\")\n\tproto.RegisterType((*PriorityLevelConfigurationSpec)(nil), \"k8s.io.api.flowcontrol.v1.PriorityLevelConfigurationSpec\")\n\tproto.RegisterType((*PriorityLevelConfigurationStatus)(nil), \"k8s.io.api.flowcontrol.v1.PriorityLevelConfigurationStatus\")\n\tproto.RegisterType((*QueuingConfiguration)(nil), \"k8s.io.api.flowcontrol.v1.QueuingConfiguration\")\n\tproto.RegisterType((*ResourcePolicyRule)(nil), \"k8s.io.api.flowcontrol.v1.ResourcePolicyRule\")\n\tproto.RegisterType((*ServiceAccountSubject)(nil), \"k8s.io.api.flowcontrol.v1.ServiceAccountSubject\")\n\tproto.RegisterType((*Subject)(nil), \"k8s.io.api.flowcontrol.v1.Subject\")\n\tproto.RegisterType((*UserSubject)(nil), \"k8s.io.api.flowcontrol.v1.UserSubject\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/flowcontrol/v1/generated.proto\", fileDescriptor_5d08a1401821035d)\n}\n\nvar fileDescriptor_5d08a1401821035d = []byte{\n\t// 1575 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x58, 0x4b, 0x6f, 0xdb, 0x56,\n\t0x16, 0x36, 0x65, 0xc9, 0xb6, 0x8e, 0x9f, 0xb9, 0x8e, 0x61, 0xc5, 0x19, 0x48, 0x0e, 0x07, 0x93,\n\t0xc7, 0x64, 0x42, 0x25, 0xc6, 0x64, 0x26, 0x41, 0x66, 0x26, 0x08, 0x93, 0x4c, 0x5e, 0xb6, 0xe3,\n\t0x5c, 0xe5, 0x51, 0xa4, 0x05, 0x5a, 0x9a, 0xba, 0x96, 0x18, 0x8b, 0x8f, 0xf2, 0x92, 0x72, 0x5d,\n\t0xa0, 0x40, 0x7f, 0x42, 0x56, 0x5d, 0x76, 0xd1, 0xfe, 0x83, 0xae, 0x8a, 0x76, 0xd3, 0x65, 0x76,\n\t0xcd, 0x32, 0xed, 0x42, 0x68, 0xd4, 0xbf, 0xd0, 0x45, 0x9b, 0x55, 0x71, 0x2f, 0x2f, 0x49, 0x51,\n\t0x12, 0x69, 0xc1, 0x8b, 0x74, 0xd3, 0x9d, 0x79, 0xce, 0x77, 0xbe, 0x73, 0xef, 0xb9, 0xe7, 0x25,\n\t0xc3, 0x99, 0xdd, 0x4b, 0x54, 0x31, 0xec, 0xaa, 0xe6, 0x18, 0xd5, 0x9d, 0x96, 0xbd, 0xa7, 0xdb,\n\t0x96, 0xe7, 0xda, 0xad, 0x6a, 0xfb, 0x42, 0xb5, 0x41, 0x2c, 0xe2, 0x6a, 0x1e, 0xa9, 0x2b, 0x8e,\n\t0x6b, 0x7b, 0x36, 0x3a, 0x16, 0x40, 0x15, 0xcd, 0x31, 0x94, 0x1e, 0xa8, 0xd2, 0xbe, 0xb0, 0x72,\n\t0xae, 0x61, 0x78, 0x4d, 0x7f, 0x5b, 0xd1, 0x6d, 0xb3, 0xda, 0xb0, 0x1b, 0x76, 0x95, 0x5b, 0x6c,\n\t0xfb, 0x3b, 0xfc, 0x8b, 0x7f, 0xf0, 0xbf, 0x02, 0xa6, 0x95, 0x7f, 0xc6, 0x4e, 0x4d, 0x4d, 0x6f,\n\t0x1a, 0x16, 0x71, 0xf7, 0xab, 0xce, 0x6e, 0x83, 0x09, 0x68, 0xd5, 0x24, 0x9e, 0x36, 0xc4, 0xff,\n\t0x4a, 0x35, 0xcd, 0xca, 0xf5, 0x2d, 0xcf, 0x30, 0xc9, 0x80, 0xc1, 0xbf, 0x0e, 0x32, 0xa0, 0x7a,\n\t0x93, 0x98, 0x5a, 0xbf, 0x9d, 0xfc, 0xad, 0x04, 0xab, 0x37, 0x3f, 0x22, 0xa6, 0xe3, 0x6d, 0xb9,\n\t0x86, 0xed, 0x1a, 0xde, 0xfe, 0x3a, 0x69, 0x93, 0xd6, 0x75, 0xdb, 0xda, 0x31, 0x1a, 0xbe, 0xab,\n\t0x79, 0x86, 0x6d, 0xa1, 0x77, 0xa0, 0x64, 0xd9, 0xa6, 0x61, 0x69, 0x4c, 0xae, 0xfb, 0xae, 0x4b,\n\t0x2c, 0x7d, 0xbf, 0xd6, 0xd4, 0x5c, 0x42, 0x4b, 0xd2, 0xaa, 0x74, 0xba, 0xa0, 0xfe, 0xa5, 0xdb,\n\t0xa9, 0x94, 0x36, 0x53, 0x30, 0x38, 0xd5, 0x1a, 0xfd, 0x17, 0xe6, 0x5b, 0xc4, 0xaa, 0x6b, 0xdb,\n\t0x2d, 0xb2, 0x45, 0x5c, 0x9d, 0x58, 0x5e, 0x29, 0xc7, 0x09, 0x17, 0xbb, 0x9d, 0xca, 0xfc, 0x7a,\n\t0x52, 0x85, 0xfb, 0xb1, 0xf2, 0x53, 0x58, 0xfe, 0x7f, 0xcb, 0xde, 0xbb, 0x61, 0x50, 0xcf, 0xb0,\n\t0x1a, 0xbe, 0x41, 0x9b, 0xc4, 0xdd, 0x20, 0x5e, 0xd3, 0xae, 0xa3, 0xab, 0x90, 0xf7, 0xf6, 0x1d,\n\t0xc2, 0xcf, 0x57, 0x54, 0xcf, 0xbe, 0xe8, 0x54, 0xc6, 0xba, 0x9d, 0x4a, 0xfe, 0xe1, 0xbe, 0x43,\n\t0xde, 0x74, 0x2a, 0xc7, 0x53, 0xcc, 0x98, 0x1a, 0x73, 0x43, 0xf9, 0x79, 0x0e, 0x80, 0xa1, 0x6a,\n\t0x3c, 0x70, 0xe8, 0x03, 0x98, 0x62, 0x8f, 0x55, 0xd7, 0x3c, 0x8d, 0x73, 0x4e, 0xaf, 0x9d, 0x57,\n\t0xe2, 0x24, 0x89, 0x62, 0xae, 0x38, 0xbb, 0x0d, 0x26, 0xa0, 0x0a, 0x43, 0x2b, 0xed, 0x0b, 0xca,\n\t0xfd, 0xed, 0x67, 0x44, 0xf7, 0x36, 0x88, 0xa7, 0xa9, 0x48, 0x9c, 0x02, 0x62, 0x19, 0x8e, 0x58,\n\t0xd1, 0x3d, 0xc8, 0x53, 0x87, 0xe8, 0x3c, 0x00, 0xd3, 0x6b, 0x67, 0x94, 0xd4, 0x14, 0x54, 0xe2,\n\t0x63, 0xd5, 0x1c, 0xa2, 0xab, 0x33, 0xe1, 0xe5, 0xd8, 0x17, 0xe6, 0x24, 0xa8, 0x06, 0x13, 0xd4,\n\t0xd3, 0x3c, 0x9f, 0x96, 0xc6, 0x39, 0xdd, 0xd9, 0xd1, 0xe8, 0xb8, 0x89, 0x3a, 0x27, 0x08, 0x27,\n\t0x82, 0x6f, 0x2c, 0xa8, 0xe4, 0x57, 0x39, 0x58, 0x8c, 0xc1, 0xd7, 0x6d, 0xab, 0x6e, 0xf0, 0xfc,\n\t0xb8, 0x92, 0x88, 0xf5, 0xa9, 0xbe, 0x58, 0x2f, 0x0f, 0x31, 0x89, 0xe3, 0x8c, 0x2e, 0x47, 0x27,\n\t0xcd, 0x71, 0xf3, 0x13, 0x49, 0xe7, 0x6f, 0x3a, 0x95, 0xf9, 0xc8, 0x2c, 0x79, 0x1e, 0xd4, 0x06,\n\t0xd4, 0xd2, 0xa8, 0xf7, 0xd0, 0xd5, 0x2c, 0x1a, 0xd0, 0x1a, 0x26, 0x11, 0x17, 0xfe, 0xfb, 0x68,\n\t0xaf, 0xc3, 0x2c, 0xd4, 0x15, 0xe1, 0x12, 0xad, 0x0f, 0xb0, 0xe1, 0x21, 0x1e, 0xd0, 0x49, 0x98,\n\t0x70, 0x89, 0x46, 0x6d, 0xab, 0x94, 0xe7, 0x47, 0x8e, 0xe2, 0x85, 0xb9, 0x14, 0x0b, 0x2d, 0x3a,\n\t0x03, 0x93, 0x26, 0xa1, 0x54, 0x6b, 0x90, 0x52, 0x81, 0x03, 0xe7, 0x05, 0x70, 0x72, 0x23, 0x10,\n\t0xe3, 0x50, 0x2f, 0x7f, 0x23, 0xc1, 0x5c, 0x1c, 0xa7, 0x75, 0x83, 0x7a, 0xe8, 0xbd, 0x81, 0x8c,\n\t0x53, 0x46, 0xbb, 0x13, 0xb3, 0xe6, 0xf9, 0xb6, 0x20, 0xdc, 0x4d, 0x85, 0x92, 0x9e, 0x6c, 0xbb,\n\t0x0b, 0x05, 0xc3, 0x23, 0x26, 0x8b, 0xfa, 0xf8, 0xe9, 0xe9, 0xb5, 0xbf, 0x8d, 0x94, 0x1f, 0xea,\n\t0xac, 0x60, 0x2c, 0xdc, 0x61, 0xb6, 0x38, 0xa0, 0x90, 0x7f, 0x18, 0xef, 0x3d, 0x3c, 0xcb, 0x42,\n\t0xf4, 0x85, 0x04, 0x2b, 0x4e, 0x6a, 0x47, 0x11, 0xf7, 0xf9, 0x5f, 0x86, 0xd3, 0xf4, 0x76, 0x84,\n\t0xc9, 0x0e, 0x61, 0x3d, 0x84, 0xa8, 0xb2, 0x38, 0xcd, 0x4a, 0x06, 0x38, 0xe3, 0x14, 0xe8, 0x2e,\n\t0x20, 0x53, 0xf3, 0x58, 0x1c, 0x1b, 0x5b, 0x2e, 0xd1, 0x49, 0x9d, 0xb1, 0x8a, 0x06, 0x14, 0xe5,\n\t0xc4, 0xc6, 0x00, 0x02, 0x0f, 0xb1, 0x42, 0x9f, 0xc0, 0x62, 0x7d, 0xb0, 0x9f, 0x88, 0x64, 0x5c,\n\t0x3b, 0x20, 0xba, 0x43, 0x3a, 0x91, 0xba, 0xdc, 0xed, 0x54, 0x16, 0x87, 0x28, 0xf0, 0x30, 0x3f,\n\t0xe8, 0x09, 0x14, 0x5c, 0xbf, 0x45, 0x68, 0x29, 0xcf, 0x9f, 0x33, 0xcb, 0xe1, 0x96, 0xdd, 0x32,\n\t0xf4, 0x7d, 0xcc, 0xd0, 0x4f, 0x0c, 0xaf, 0x59, 0xf3, 0x79, 0x33, 0xa2, 0xf1, 0xdb, 0x72, 0x15,\n\t0x0e, 0xf8, 0xe4, 0x36, 0x2c, 0xf4, 0xf7, 0x07, 0xb4, 0x0d, 0xa0, 0x87, 0x25, 0xc9, 0x26, 0xc0,\n\t0x78, 0x5f, 0x6e, 0xa6, 0x27, 0x50, 0x54, 0xc9, 0x71, 0x2f, 0x8c, 0x44, 0x14, 0xf7, 0xb0, 0xca,\n\t0xe7, 0x61, 0xe6, 0x96, 0x6b, 0xfb, 0x8e, 0x38, 0x1e, 0x5a, 0x85, 0xbc, 0xa5, 0x99, 0x61, 0x8f,\n\t0x89, 0x5a, 0xde, 0xa6, 0x66, 0x12, 0xcc, 0x35, 0xf2, 0xe7, 0x12, 0xcc, 0xae, 0x1b, 0xa6, 0xe1,\n\t0x61, 0x42, 0x1d, 0xdb, 0xa2, 0x04, 0x5d, 0x4c, 0xf4, 0xa5, 0x13, 0x7d, 0x7d, 0xe9, 0x48, 0x02,\n\t0xdc, 0xd3, 0x91, 0x1e, 0xc3, 0xe4, 0x87, 0x3e, 0xf1, 0x0d, 0xab, 0x21, 0x7a, 0x71, 0x35, 0xe3,\n\t0x6e, 0x0f, 0x02, 0x64, 0x22, 0xb1, 0xd4, 0x69, 0x56, 0xe3, 0x42, 0x83, 0x43, 0x32, 0xf9, 0x97,\n\t0x1c, 0x9c, 0xe0, 0x3e, 0x49, 0xfd, 0x0f, 0x19, 0xb6, 0x04, 0x66, 0x5b, 0xbd, 0x57, 0x16, 0xb7,\n\t0x3b, 0x9d, 0x71, 0xbb, 0x44, 0x88, 0xd4, 0x25, 0x11, 0xc1, 0x64, 0x98, 0x71, 0x92, 0x75, 0xd8,\n\t0x4c, 0x1f, 0x1f, 0x7d, 0xa6, 0xa3, 0xfb, 0xb0, 0xb4, 0x6d, 0xbb, 0xae, 0xbd, 0x67, 0x58, 0x0d,\n\t0xee, 0x27, 0x24, 0xc9, 0x73, 0x92, 0x63, 0xdd, 0x4e, 0x65, 0x49, 0x1d, 0x06, 0xc0, 0xc3, 0xed,\n\t0xe4, 0x3d, 0x58, 0xda, 0x64, 0x5d, 0x83, 0xda, 0xbe, 0xab, 0x93, 0x38, 0xfb, 0x51, 0x05, 0x0a,\n\t0x6d, 0xe2, 0x6e, 0x07, 0x19, 0x5c, 0x54, 0x8b, 0x2c, 0xf7, 0x1f, 0x33, 0x01, 0x0e, 0xe4, 0xec,\n\t0x26, 0x56, 0x6c, 0xf9, 0x08, 0xaf, 0xd3, 0xd2, 0x04, 0x87, 0xf2, 0x9b, 0x6c, 0x26, 0x55, 0xb8,\n\t0x1f, 0x2b, 0x7f, 0x9f, 0x83, 0xe5, 0x94, 0x62, 0x43, 0x5b, 0x30, 0x45, 0xc5, 0xdf, 0xa2, 0x80,\n\t0xe4, 0x8c, 0x67, 0x10, 0x66, 0x71, 0x43, 0x0f, 0x79, 0x70, 0xc4, 0x82, 0x9e, 0xc1, 0xac, 0x2b,\n\t0xbc, 0x73, 0x77, 0xa2, 0xb1, 0x9f, 0xcb, 0xa0, 0x1d, 0x8c, 0x49, 0xfc, 0xc4, 0xb8, 0x97, 0x0b,\n\t0x27, 0xa9, 0x51, 0x1b, 0x16, 0x7a, 0x2e, 0x1b, 0xb8, 0x1b, 0xe7, 0xee, 0xce, 0x67, 0xb8, 0x1b,\n\t0xfa, 0x0a, 0x6a, 0x49, 0x78, 0x5c, 0xd8, 0xec, 0x63, 0xc4, 0x03, 0x3e, 0xe4, 0xef, 0x72, 0x90,\n\t0xd1, 0xeb, 0xdf, 0xc2, 0x8e, 0xf6, 0x6e, 0x62, 0x47, 0xbb, 0x7c, 0xa8, 0xf9, 0x95, 0xba, 0xb3,\n\t0xe9, 0x7d, 0x3b, 0xdb, 0x95, 0xc3, 0xd1, 0x67, 0xef, 0x70, 0xbf, 0xe6, 0xe0, 0xaf, 0xe9, 0xc6,\n\t0xf1, 0x4e, 0x77, 0x2f, 0xd1, 0x3b, 0xff, 0xdd, 0xd7, 0x3b, 0x4f, 0x8d, 0x40, 0xf1, 0xe7, 0x8e,\n\t0xd7, 0xb7, 0xe3, 0xfd, 0x28, 0x41, 0x39, 0x3d, 0x6e, 0x6f, 0x61, 0xe7, 0x7b, 0x9a, 0xdc, 0xf9,\n\t0x2e, 0x1e, 0x2a, 0xbf, 0x52, 0x76, 0xc0, 0x5b, 0x59, 0x69, 0x15, 0xad, 0x6c, 0x23, 0x8c, 0xf1,\n\t0x2f, 0x73, 0x59, 0x51, 0xe2, 0xcb, 0xe5, 0x01, 0xbf, 0x37, 0x12, 0xd6, 0x37, 0x2d, 0x36, 0x5c,\n\t0x4c, 0x36, 0x1f, 0x82, 0x5c, 0xd4, 0x61, 0xb2, 0x15, 0x0c, 0x61, 0x51, 0xc5, 0xff, 0x39, 0x68,\n\t0xfe, 0x65, 0x8d, 0xeb, 0x60, 0xd4, 0x0b, 0x18, 0x0e, 0x99, 0xd1, 0xfb, 0x30, 0x41, 0xf8, 0xaf,\n\t0xea, 0x11, 0x4a, 0xf9, 0xa0, 0x9f, 0xdf, 0x2a, 0xb0, 0xb4, 0x0b, 0x50, 0x58, 0xd0, 0xca, 0x9f,\n\t0x49, 0xb0, 0x7a, 0x50, 0x0f, 0x40, 0xee, 0x90, 0x3d, 0xed, 0x70, 0x3b, 0xf7, 0xe8, 0x7b, 0xdb,\n\t0x57, 0x12, 0x1c, 0x1d, 0xb6, 0x13, 0xb1, 0x82, 0x62, 0x8b, 0x50, 0xb4, 0xc5, 0x44, 0x05, 0xf5,\n\t0x80, 0x4b, 0xb1, 0xd0, 0xa2, 0x7f, 0xc0, 0x54, 0x53, 0xb3, 0xea, 0x35, 0xe3, 0xe3, 0x70, 0x15,\n\t0x8f, 0x52, 0xfa, 0xb6, 0x90, 0xe3, 0x08, 0x81, 0x6e, 0xc0, 0x02, 0xb7, 0x5b, 0x27, 0x56, 0xc3,\n\t0x6b, 0xf2, 0x77, 0x10, 0xdb, 0x46, 0x34, 0x57, 0x1e, 0xf4, 0xe9, 0xf1, 0x80, 0x85, 0xfc, 0x9b,\n\t0x04, 0xe8, 0x30, 0x0b, 0xc2, 0x59, 0x28, 0x6a, 0x8e, 0xc1, 0xf7, 0xd4, 0xa0, 0xa8, 0x8a, 0xea,\n\t0x6c, 0xb7, 0x53, 0x29, 0x5e, 0xdb, 0xba, 0x13, 0x08, 0x71, 0xac, 0x67, 0xe0, 0x70, 0x8a, 0x06,\n\t0xd3, 0x52, 0x80, 0x43, 0xc7, 0x14, 0xc7, 0x7a, 0x74, 0x09, 0x66, 0xf4, 0x96, 0x4f, 0x3d, 0xe2,\n\t0xd6, 0x74, 0xdb, 0x21, 0xbc, 0x09, 0x4d, 0xa9, 0x47, 0xc5, 0x9d, 0x66, 0xae, 0xf7, 0xe8, 0x70,\n\t0x02, 0x89, 0x14, 0x00, 0x56, 0x47, 0xd4, 0xd1, 0x98, 0x9f, 0x02, 0xf7, 0x33, 0xc7, 0x1e, 0x6c,\n\t0x33, 0x92, 0xe2, 0x1e, 0x84, 0xfc, 0x0c, 0x96, 0x6a, 0xc4, 0x6d, 0x1b, 0x3a, 0xb9, 0xa6, 0xeb,\n\t0xb6, 0x6f, 0x79, 0xe1, 0xc6, 0x5d, 0x85, 0x62, 0x04, 0x13, 0xa5, 0x76, 0x44, 0xf8, 0x2f, 0x46,\n\t0x5c, 0x38, 0xc6, 0x44, 0xb5, 0x9d, 0x4b, 0xad, 0xed, 0xaf, 0x73, 0x30, 0x19, 0xd3, 0xe7, 0x77,\n\t0x0d, 0xab, 0x2e, 0x98, 0x8f, 0x87, 0xe8, 0x7b, 0x86, 0x55, 0x7f, 0xd3, 0xa9, 0x4c, 0x0b, 0x18,\n\t0xfb, 0xc4, 0x1c, 0x88, 0x6e, 0x40, 0xde, 0xa7, 0xc4, 0x15, 0x55, 0x7b, 0x32, 0x23, 0x8f, 0x1f,\n\t0x51, 0xe2, 0x86, 0x2b, 0xd3, 0x14, 0x23, 0x65, 0x02, 0xcc, 0xad, 0xd1, 0x6d, 0x28, 0x34, 0xd8,\n\t0x7b, 0x88, 0xc2, 0x3c, 0x95, 0x41, 0xd3, 0xfb, 0xfb, 0x23, 0x78, 0x7c, 0x2e, 0xc1, 0x01, 0x01,\n\t0x6a, 0xc1, 0x1c, 0x4d, 0x04, 0x8e, 0x3f, 0x52, 0xf6, 0x0a, 0x34, 0x34, 0xd2, 0x2a, 0xea, 0x76,\n\t0x2a, 0x73, 0x49, 0x15, 0xee, 0xe3, 0x96, 0xab, 0x30, 0xdd, 0x73, 0xad, 0x83, 0xfb, 0xa8, 0x7a,\n\t0xf5, 0xc5, 0xeb, 0xf2, 0xd8, 0xcb, 0xd7, 0xe5, 0xb1, 0x57, 0xaf, 0xcb, 0x63, 0x9f, 0x76, 0xcb,\n\t0xd2, 0x8b, 0x6e, 0x59, 0x7a, 0xd9, 0x2d, 0x4b, 0xaf, 0xba, 0x65, 0xe9, 0xa7, 0x6e, 0x59, 0x7a,\n\t0xfe, 0x73, 0x79, 0xec, 0xe9, 0xb1, 0xd4, 0xff, 0x89, 0xfe, 0x1e, 0x00, 0x00, 0xff, 0xff, 0x16,\n\t0x4e, 0x14, 0xcf, 0x2f, 0x15, 0x00, 0x00,\n}\n\nfunc (m *ExemptPriorityLevelConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ExemptPriorityLevelConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ExemptPriorityLevelConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.LendablePercent != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.LendablePercent))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif m.NominalConcurrencyShares != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.NominalConcurrencyShares))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowDistinguisherMethod) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowDistinguisherMethod) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowDistinguisherMethod) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowSchema) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowSchema) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowSchema) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowSchemaCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowSchemaCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowSchemaCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowSchemaList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowSchemaList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowSchemaList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowSchemaSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowSchemaSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowSchemaSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Rules) > 0 {\n\t\tfor iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Rules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif m.DistinguisherMethod != nil {\n\t\t{\n\t\t\tsize, err := m.DistinguisherMethod.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MatchingPrecedence))\n\ti--\n\tdAtA[i] = 0x10\n\t{\n\t\tsize, err := m.PriorityLevelConfiguration.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowSchemaStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowSchemaStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowSchemaStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *GroupSubject) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GroupSubject) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *GroupSubject) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LimitResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LimitResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LimitResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Queuing != nil {\n\t\t{\n\t\t\tsize, err := m.Queuing.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LimitedPriorityLevelConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LimitedPriorityLevelConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LimitedPriorityLevelConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.BorrowingLimitPercent != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.BorrowingLimitPercent))\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif m.LendablePercent != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.LendablePercent))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\t{\n\t\tsize, err := m.LimitResponse.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\tif m.NominalConcurrencyShares != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.NominalConcurrencyShares))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NonResourcePolicyRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NonResourcePolicyRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NonResourcePolicyRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.NonResourceURLs) > 0 {\n\t\tfor iNdEx := len(m.NonResourceURLs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.NonResourceURLs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.NonResourceURLs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.NonResourceURLs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\tif len(m.Verbs) > 0 {\n\t\tfor iNdEx := len(m.Verbs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Verbs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Verbs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verbs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PolicyRulesWithSubjects) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PolicyRulesWithSubjects) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PolicyRulesWithSubjects) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.NonResourceRules) > 0 {\n\t\tfor iNdEx := len(m.NonResourceRules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.NonResourceRules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.ResourceRules) > 0 {\n\t\tfor iNdEx := len(m.ResourceRules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ResourceRules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Subjects) > 0 {\n\t\tfor iNdEx := len(m.Subjects) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Subjects[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfigurationCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfigurationCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfigurationCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfigurationList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfigurationList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfigurationList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfigurationReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfigurationReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfigurationReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfigurationSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfigurationSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfigurationSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Exempt != nil {\n\t\t{\n\t\t\tsize, err := m.Exempt.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Limited != nil {\n\t\t{\n\t\t\tsize, err := m.Limited.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfigurationStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfigurationStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfigurationStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *QueuingConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *QueuingConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *QueuingConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.QueueLengthLimit))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.HandSize))\n\ti--\n\tdAtA[i] = 0x10\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Queues))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourcePolicyRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourcePolicyRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourcePolicyRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Namespaces) > 0 {\n\t\tfor iNdEx := len(m.Namespaces) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Namespaces[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Namespaces[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespaces[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\ti--\n\tif m.ClusterScope {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x20\n\tif len(m.Resources) > 0 {\n\t\tfor iNdEx := len(m.Resources) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Resources[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Resources[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Resources[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.APIGroups) > 0 {\n\t\tfor iNdEx := len(m.APIGroups) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.APIGroups[iNdEx])\n\t\t\tcopy(dAtA[i:], m.APIGroups[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIGroups[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Verbs) > 0 {\n\t\tfor iNdEx := len(m.Verbs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Verbs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Verbs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verbs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ServiceAccountSubject) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServiceAccountSubject) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ServiceAccountSubject) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Namespace)\n\tcopy(dAtA[i:], m.Namespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Subject) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Subject) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Subject) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ServiceAccount != nil {\n\t\t{\n\t\t\tsize, err := m.ServiceAccount.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Group != nil {\n\t\t{\n\t\t\tsize, err := m.Group.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.User != nil {\n\t\t{\n\t\t\tsize, err := m.User.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *UserSubject) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *UserSubject) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *UserSubject) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *ExemptPriorityLevelConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.NominalConcurrencyShares != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.NominalConcurrencyShares))\n\t}\n\tif m.LendablePercent != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.LendablePercent))\n\t}\n\treturn n\n}\n\nfunc (m *FlowDistinguisherMethod) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *FlowSchema) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *FlowSchemaCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *FlowSchemaList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *FlowSchemaSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.PriorityLevelConfiguration.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.MatchingPrecedence))\n\tif m.DistinguisherMethod != nil {\n\t\tl = m.DistinguisherMethod.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.Rules) > 0 {\n\t\tfor _, e := range m.Rules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *FlowSchemaStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *GroupSubject) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *LimitResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Queuing != nil {\n\t\tl = m.Queuing.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *LimitedPriorityLevelConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.NominalConcurrencyShares != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.NominalConcurrencyShares))\n\t}\n\tl = m.LimitResponse.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.LendablePercent != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.LendablePercent))\n\t}\n\tif m.BorrowingLimitPercent != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.BorrowingLimitPercent))\n\t}\n\treturn n\n}\n\nfunc (m *NonResourcePolicyRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Verbs) > 0 {\n\t\tfor _, s := range m.Verbs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.NonResourceURLs) > 0 {\n\t\tfor _, s := range m.NonResourceURLs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PolicyRulesWithSubjects) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Subjects) > 0 {\n\t\tfor _, e := range m.Subjects {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.ResourceRules) > 0 {\n\t\tfor _, e := range m.ResourceRules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.NonResourceRules) > 0 {\n\t\tfor _, e := range m.NonResourceRules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PriorityLevelConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PriorityLevelConfigurationCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PriorityLevelConfigurationList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PriorityLevelConfigurationReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PriorityLevelConfigurationSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Limited != nil {\n\t\tl = m.Limited.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Exempt != nil {\n\t\tl = m.Exempt.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PriorityLevelConfigurationStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *QueuingConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Queues))\n\tn += 1 + sovGenerated(uint64(m.HandSize))\n\tn += 1 + sovGenerated(uint64(m.QueueLengthLimit))\n\treturn n\n}\n\nfunc (m *ResourcePolicyRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Verbs) > 0 {\n\t\tfor _, s := range m.Verbs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.APIGroups) > 0 {\n\t\tfor _, s := range m.APIGroups {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Resources) > 0 {\n\t\tfor _, s := range m.Resources {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tn += 2\n\tif len(m.Namespaces) > 0 {\n\t\tfor _, s := range m.Namespaces {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ServiceAccountSubject) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Namespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *Subject) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.User != nil {\n\t\tl = m.User.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Group != nil {\n\t\tl = m.Group.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ServiceAccount != nil {\n\t\tl = m.ServiceAccount.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *UserSubject) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *ExemptPriorityLevelConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ExemptPriorityLevelConfiguration{`,\n\t\t`NominalConcurrencyShares:` + valueToStringGenerated(this.NominalConcurrencyShares) + `,`,\n\t\t`LendablePercent:` + valueToStringGenerated(this.LendablePercent) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowDistinguisherMethod) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&FlowDistinguisherMethod{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowSchema) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&FlowSchema{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"FlowSchemaSpec\", \"FlowSchemaSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"FlowSchemaStatus\", \"FlowSchemaStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowSchemaCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&FlowSchemaCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowSchemaList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]FlowSchema{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"FlowSchema\", \"FlowSchema\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&FlowSchemaList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowSchemaSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForRules := \"[]PolicyRulesWithSubjects{\"\n\tfor _, f := range this.Rules {\n\t\trepeatedStringForRules += strings.Replace(strings.Replace(f.String(), \"PolicyRulesWithSubjects\", \"PolicyRulesWithSubjects\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRules += \"}\"\n\ts := strings.Join([]string{`&FlowSchemaSpec{`,\n\t\t`PriorityLevelConfiguration:` + strings.Replace(strings.Replace(this.PriorityLevelConfiguration.String(), \"PriorityLevelConfigurationReference\", \"PriorityLevelConfigurationReference\", 1), `&`, ``, 1) + `,`,\n\t\t`MatchingPrecedence:` + fmt.Sprintf(\"%v\", this.MatchingPrecedence) + `,`,\n\t\t`DistinguisherMethod:` + strings.Replace(this.DistinguisherMethod.String(), \"FlowDistinguisherMethod\", \"FlowDistinguisherMethod\", 1) + `,`,\n\t\t`Rules:` + repeatedStringForRules + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowSchemaStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]FlowSchemaCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"FlowSchemaCondition\", \"FlowSchemaCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&FlowSchemaStatus{`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *GroupSubject) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&GroupSubject{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LimitResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LimitResponse{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Queuing:` + strings.Replace(this.Queuing.String(), \"QueuingConfiguration\", \"QueuingConfiguration\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LimitedPriorityLevelConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LimitedPriorityLevelConfiguration{`,\n\t\t`NominalConcurrencyShares:` + valueToStringGenerated(this.NominalConcurrencyShares) + `,`,\n\t\t`LimitResponse:` + strings.Replace(strings.Replace(this.LimitResponse.String(), \"LimitResponse\", \"LimitResponse\", 1), `&`, ``, 1) + `,`,\n\t\t`LendablePercent:` + valueToStringGenerated(this.LendablePercent) + `,`,\n\t\t`BorrowingLimitPercent:` + valueToStringGenerated(this.BorrowingLimitPercent) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NonResourcePolicyRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NonResourcePolicyRule{`,\n\t\t`Verbs:` + fmt.Sprintf(\"%v\", this.Verbs) + `,`,\n\t\t`NonResourceURLs:` + fmt.Sprintf(\"%v\", this.NonResourceURLs) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PolicyRulesWithSubjects) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForSubjects := \"[]Subject{\"\n\tfor _, f := range this.Subjects {\n\t\trepeatedStringForSubjects += strings.Replace(strings.Replace(f.String(), \"Subject\", \"Subject\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForSubjects += \"}\"\n\trepeatedStringForResourceRules := \"[]ResourcePolicyRule{\"\n\tfor _, f := range this.ResourceRules {\n\t\trepeatedStringForResourceRules += strings.Replace(strings.Replace(f.String(), \"ResourcePolicyRule\", \"ResourcePolicyRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForResourceRules += \"}\"\n\trepeatedStringForNonResourceRules := \"[]NonResourcePolicyRule{\"\n\tfor _, f := range this.NonResourceRules {\n\t\trepeatedStringForNonResourceRules += strings.Replace(strings.Replace(f.String(), \"NonResourcePolicyRule\", \"NonResourcePolicyRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForNonResourceRules += \"}\"\n\ts := strings.Join([]string{`&PolicyRulesWithSubjects{`,\n\t\t`Subjects:` + repeatedStringForSubjects + `,`,\n\t\t`ResourceRules:` + repeatedStringForResourceRules + `,`,\n\t\t`NonResourceRules:` + repeatedStringForNonResourceRules + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PriorityLevelConfiguration{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"PriorityLevelConfigurationSpec\", \"PriorityLevelConfigurationSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"PriorityLevelConfigurationStatus\", \"PriorityLevelConfigurationStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfigurationCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PriorityLevelConfigurationCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfigurationList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]PriorityLevelConfiguration{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"PriorityLevelConfiguration\", \"PriorityLevelConfiguration\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&PriorityLevelConfigurationList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfigurationReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PriorityLevelConfigurationReference{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfigurationSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PriorityLevelConfigurationSpec{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Limited:` + strings.Replace(this.Limited.String(), \"LimitedPriorityLevelConfiguration\", \"LimitedPriorityLevelConfiguration\", 1) + `,`,\n\t\t`Exempt:` + strings.Replace(this.Exempt.String(), \"ExemptPriorityLevelConfiguration\", \"ExemptPriorityLevelConfiguration\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfigurationStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]PriorityLevelConfigurationCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"PriorityLevelConfigurationCondition\", \"PriorityLevelConfigurationCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&PriorityLevelConfigurationStatus{`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *QueuingConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&QueuingConfiguration{`,\n\t\t`Queues:` + fmt.Sprintf(\"%v\", this.Queues) + `,`,\n\t\t`HandSize:` + fmt.Sprintf(\"%v\", this.HandSize) + `,`,\n\t\t`QueueLengthLimit:` + fmt.Sprintf(\"%v\", this.QueueLengthLimit) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourcePolicyRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourcePolicyRule{`,\n\t\t`Verbs:` + fmt.Sprintf(\"%v\", this.Verbs) + `,`,\n\t\t`APIGroups:` + fmt.Sprintf(\"%v\", this.APIGroups) + `,`,\n\t\t`Resources:` + fmt.Sprintf(\"%v\", this.Resources) + `,`,\n\t\t`ClusterScope:` + fmt.Sprintf(\"%v\", this.ClusterScope) + `,`,\n\t\t`Namespaces:` + fmt.Sprintf(\"%v\", this.Namespaces) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ServiceAccountSubject) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ServiceAccountSubject{`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Subject) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Subject{`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`User:` + strings.Replace(this.User.String(), \"UserSubject\", \"UserSubject\", 1) + `,`,\n\t\t`Group:` + strings.Replace(this.Group.String(), \"GroupSubject\", \"GroupSubject\", 1) + `,`,\n\t\t`ServiceAccount:` + strings.Replace(this.ServiceAccount.String(), \"ServiceAccountSubject\", \"ServiceAccountSubject\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *UserSubject) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&UserSubject{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *ExemptPriorityLevelConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ExemptPriorityLevelConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ExemptPriorityLevelConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NominalConcurrencyShares\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.NominalConcurrencyShares = &v\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LendablePercent\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.LendablePercent = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowDistinguisherMethod) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowDistinguisherMethod: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowDistinguisherMethod: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = FlowDistinguisherMethodType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowSchema) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchema: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchema: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowSchemaCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = FlowSchemaConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowSchemaList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, FlowSchema{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowSchemaSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PriorityLevelConfiguration\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.PriorityLevelConfiguration.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchingPrecedence\", wireType)\n\t\t\t}\n\t\t\tm.MatchingPrecedence = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MatchingPrecedence |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DistinguisherMethod\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.DistinguisherMethod == nil {\n\t\t\t\tm.DistinguisherMethod = &FlowDistinguisherMethod{}\n\t\t\t}\n\t\t\tif err := m.DistinguisherMethod.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Rules = append(m.Rules, PolicyRulesWithSubjects{})\n\t\t\tif err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowSchemaStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, FlowSchemaCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *GroupSubject) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GroupSubject: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GroupSubject: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LimitResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LimitResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LimitResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = LimitResponseType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Queuing\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Queuing == nil {\n\t\t\t\tm.Queuing = &QueuingConfiguration{}\n\t\t\t}\n\t\t\tif err := m.Queuing.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LimitedPriorityLevelConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LimitedPriorityLevelConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LimitedPriorityLevelConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NominalConcurrencyShares\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.NominalConcurrencyShares = &v\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LimitResponse\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LimitResponse.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LendablePercent\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.LendablePercent = &v\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field BorrowingLimitPercent\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.BorrowingLimitPercent = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NonResourcePolicyRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NonResourcePolicyRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NonResourcePolicyRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verbs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verbs = append(m.Verbs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NonResourceURLs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NonResourceURLs = append(m.NonResourceURLs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PolicyRulesWithSubjects) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PolicyRulesWithSubjects: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PolicyRulesWithSubjects: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Subjects\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Subjects = append(m.Subjects, Subject{})\n\t\t\tif err := m.Subjects[len(m.Subjects)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceRules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceRules = append(m.ResourceRules, ResourcePolicyRule{})\n\t\t\tif err := m.ResourceRules[len(m.ResourceRules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NonResourceRules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NonResourceRules = append(m.NonResourceRules, NonResourcePolicyRule{})\n\t\t\tif err := m.NonResourceRules[len(m.NonResourceRules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfigurationCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = PriorityLevelConfigurationConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfigurationList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, PriorityLevelConfiguration{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfigurationReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfigurationSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = PriorityLevelEnablement(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Limited\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Limited == nil {\n\t\t\t\tm.Limited = &LimitedPriorityLevelConfiguration{}\n\t\t\t}\n\t\t\tif err := m.Limited.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Exempt\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Exempt == nil {\n\t\t\t\tm.Exempt = &ExemptPriorityLevelConfiguration{}\n\t\t\t}\n\t\t\tif err := m.Exempt.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfigurationStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, PriorityLevelConfigurationCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *QueuingConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: QueuingConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: QueuingConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Queues\", wireType)\n\t\t\t}\n\t\t\tm.Queues = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Queues |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HandSize\", wireType)\n\t\t\t}\n\t\t\tm.HandSize = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.HandSize |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field QueueLengthLimit\", wireType)\n\t\t\t}\n\t\t\tm.QueueLengthLimit = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.QueueLengthLimit |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourcePolicyRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourcePolicyRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourcePolicyRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verbs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verbs = append(m.Verbs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIGroups\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIGroups = append(m.APIGroups, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resources\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resources = append(m.Resources, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ClusterScope\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ClusterScope = bool(v != 0)\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespaces\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespaces = append(m.Namespaces, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ServiceAccountSubject) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceAccountSubject: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceAccountSubject: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Subject) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Subject: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Subject: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = SubjectKind(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field User\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.User == nil {\n\t\t\t\tm.User = &UserSubject{}\n\t\t\t}\n\t\t\tif err := m.User.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Group\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Group == nil {\n\t\t\t\tm.Group = &GroupSubject{}\n\t\t\t}\n\t\t\tif err := m.Group.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServiceAccount\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ServiceAccount == nil {\n\t\t\t\tm.ServiceAccount = &ServiceAccountSubject{}\n\t\t\t}\n\t\t\tif err := m.ServiceAccount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *UserSubject) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: UserSubject: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: UserSubject: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.flowcontrol.v1;\n\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/flowcontrol/v1\";\n\n// ExemptPriorityLevelConfiguration describes the configurable aspects\n// of the handling of exempt requests.\n// In the mandatory exempt configuration object the values in the fields\n// here can be modified by authorized users, unlike the rest of the `spec`.\nmessage ExemptPriorityLevelConfiguration {\n  // `nominalConcurrencyShares` (NCS) contributes to the computation of the\n  // NominalConcurrencyLimit (NominalCL) of this level.\n  // This is the number of execution seats nominally reserved for this priority level.\n  // This DOES NOT limit the dispatching from this priority level\n  // but affects the other priority levels through the borrowing mechanism.\n  // The server's concurrency limit (ServerCL) is divided among all the\n  // priority levels in proportion to their NCS values:\n  //\n  // NominalCL(i)  = ceil( ServerCL * NCS(i) / sum_ncs )\n  // sum_ncs = sum[priority level k] NCS(k)\n  //\n  // Bigger numbers mean a larger nominal concurrency limit,\n  // at the expense of every other priority level.\n  // This field has a default value of zero.\n  // +optional\n  optional int32 nominalConcurrencyShares = 1;\n\n  // `lendablePercent` prescribes the fraction of the level's NominalCL that\n  // can be borrowed by other priority levels.  This value of this\n  // field must be between 0 and 100, inclusive, and it defaults to 0.\n  // The number of seats that other levels can borrow from this level, known\n  // as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\n  //\n  // LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )\n  //\n  // +optional\n  optional int32 lendablePercent = 2;\n}\n\n// FlowDistinguisherMethod specifies the method of a flow distinguisher.\nmessage FlowDistinguisherMethod {\n  // `type` is the type of flow distinguisher method\n  // The supported types are \"ByUser\" and \"ByNamespace\".\n  // Required.\n  optional string type = 1;\n}\n\n// FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of inbound API requests with\n// similar attributes and is identified by a pair of strings: the name of the FlowSchema and a \"flow distinguisher\".\nmessage FlowSchema {\n  // `metadata` is the standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // `spec` is the specification of the desired behavior of a FlowSchema.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional FlowSchemaSpec spec = 2;\n\n  // `status` is the current status of a FlowSchema.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional FlowSchemaStatus status = 3;\n}\n\n// FlowSchemaCondition describes conditions for a FlowSchema.\nmessage FlowSchemaCondition {\n  // `type` is the type of the condition.\n  // Required.\n  optional string type = 1;\n\n  // `status` is the status of the condition.\n  // Can be True, False, Unknown.\n  // Required.\n  optional string status = 2;\n\n  // `lastTransitionTime` is the last time the condition transitioned from one status to another.\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // `reason` is a unique, one-word, CamelCase reason for the condition's last transition.\n  optional string reason = 4;\n\n  // `message` is a human-readable message indicating details about last transition.\n  optional string message = 5;\n}\n\n// FlowSchemaList is a list of FlowSchema objects.\nmessage FlowSchemaList {\n  // `metadata` is the standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // `items` is a list of FlowSchemas.\n  repeated FlowSchema items = 2;\n}\n\n// FlowSchemaSpec describes how the FlowSchema's specification looks like.\nmessage FlowSchemaSpec {\n  // `priorityLevelConfiguration` should reference a PriorityLevelConfiguration in the cluster. If the reference cannot\n  // be resolved, the FlowSchema will be ignored and marked as invalid in its status.\n  // Required.\n  optional PriorityLevelConfigurationReference priorityLevelConfiguration = 1;\n\n  // `matchingPrecedence` is used to choose among the FlowSchemas that match a given request. The chosen\n  // FlowSchema is among those with the numerically lowest (which we take to be logically highest)\n  // MatchingPrecedence.  Each MatchingPrecedence value must be ranged in [1,10000].\n  // Note that if the precedence is not specified, it will be set to 1000 as default.\n  // +optional\n  optional int32 matchingPrecedence = 2;\n\n  // `distinguisherMethod` defines how to compute the flow distinguisher for requests that match this schema.\n  // `nil` specifies that the distinguisher is disabled and thus will always be the empty string.\n  // +optional\n  optional FlowDistinguisherMethod distinguisherMethod = 3;\n\n  // `rules` describes which requests will match this flow schema. This FlowSchema matches a request if and only if\n  // at least one member of rules matches the request.\n  // if it is an empty slice, there will be no requests matching the FlowSchema.\n  // +listType=atomic\n  // +optional\n  repeated PolicyRulesWithSubjects rules = 4;\n}\n\n// FlowSchemaStatus represents the current state of a FlowSchema.\nmessage FlowSchemaStatus {\n  // `conditions` is a list of the current states of FlowSchema.\n  // +listType=map\n  // +listMapKey=type\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  // +optional\n  repeated FlowSchemaCondition conditions = 1;\n}\n\n// GroupSubject holds detailed information for group-kind subject.\nmessage GroupSubject {\n  // name is the user group that matches, or \"*\" to match all user groups.\n  // See https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go for some\n  // well-known group names.\n  // Required.\n  optional string name = 1;\n}\n\n// LimitResponse defines how to handle requests that can not be executed right now.\n// +union\nmessage LimitResponse {\n  // `type` is \"Queue\" or \"Reject\".\n  // \"Queue\" means that requests that can not be executed upon arrival\n  // are held in a queue until they can be executed or a queuing limit\n  // is reached.\n  // \"Reject\" means that requests that can not be executed upon arrival\n  // are rejected.\n  // Required.\n  // +unionDiscriminator\n  optional string type = 1;\n\n  // `queuing` holds the configuration parameters for queuing.\n  // This field may be non-empty only if `type` is `\"Queue\"`.\n  // +optional\n  optional QueuingConfiguration queuing = 2;\n}\n\n// LimitedPriorityLevelConfiguration specifies how to handle requests that are subject to limits.\n// It addresses two issues:\n//   - How are requests for this priority level limited?\n//   - What should be done with requests that exceed the limit?\nmessage LimitedPriorityLevelConfiguration {\n  // `nominalConcurrencyShares` (NCS) contributes to the computation of the\n  // NominalConcurrencyLimit (NominalCL) of this level.\n  // This is the number of execution seats available at this priority level.\n  // This is used both for requests dispatched from this priority level\n  // as well as requests dispatched from other priority levels\n  // borrowing seats from this level.\n  // The server's concurrency limit (ServerCL) is divided among the\n  // Limited priority levels in proportion to their NCS values:\n  //\n  // NominalCL(i)  = ceil( ServerCL * NCS(i) / sum_ncs )\n  // sum_ncs = sum[priority level k] NCS(k)\n  //\n  // Bigger numbers mean a larger nominal concurrency limit,\n  // at the expense of every other priority level.\n  //\n  // If not specified, this field defaults to a value of 30.\n  //\n  // Setting this field to zero supports the construction of a\n  // \"jail\" for this priority level that is used to hold some request(s)\n  //\n  // +optional\n  optional int32 nominalConcurrencyShares = 1;\n\n  // `limitResponse` indicates what to do with requests that can not be executed right now\n  optional LimitResponse limitResponse = 2;\n\n  // `lendablePercent` prescribes the fraction of the level's NominalCL that\n  // can be borrowed by other priority levels. The value of this\n  // field must be between 0 and 100, inclusive, and it defaults to 0.\n  // The number of seats that other levels can borrow from this level, known\n  // as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\n  //\n  // LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )\n  //\n  // +optional\n  optional int32 lendablePercent = 3;\n\n  // `borrowingLimitPercent`, if present, configures a limit on how many\n  // seats this priority level can borrow from other priority levels.\n  // The limit is known as this level's BorrowingConcurrencyLimit\n  // (BorrowingCL) and is a limit on the total number of seats that this\n  // level may borrow at any one time.\n  // This field holds the ratio of that limit to the level's nominal\n  // concurrency limit. When this field is non-nil, it must hold a\n  // non-negative integer and the limit is calculated as follows.\n  //\n  // BorrowingCL(i) = round( NominalCL(i) * borrowingLimitPercent(i)/100.0 )\n  //\n  // The value of this field can be more than 100, implying that this\n  // priority level can borrow a number of seats that is greater than\n  // its own nominal concurrency limit (NominalCL).\n  // When this field is left `nil`, the limit is effectively infinite.\n  // +optional\n  optional int32 borrowingLimitPercent = 4;\n}\n\n// NonResourcePolicyRule is a predicate that matches non-resource requests according to their verb and the\n// target non-resource URL. A NonResourcePolicyRule matches a request if and only if both (a) at least one member\n// of verbs matches the request and (b) at least one member of nonResourceURLs matches the request.\nmessage NonResourcePolicyRule {\n  // `verbs` is a list of matching verbs and may not be empty.\n  // \"*\" matches all verbs. If it is present, it must be the only entry.\n  // +listType=set\n  // Required.\n  repeated string verbs = 1;\n\n  // `nonResourceURLs` is a set of url prefixes that a user should have access to and may not be empty.\n  // For example:\n  //   - \"/healthz\" is legal\n  //   - \"/hea*\" is illegal\n  //   - \"/hea\" is legal but matches nothing\n  //   - \"/hea/*\" also matches nothing\n  //   - \"/healthz/*\" matches all per-component health checks.\n  // \"*\" matches all non-resource urls. if it is present, it must be the only entry.\n  // +listType=set\n  // Required.\n  repeated string nonResourceURLs = 6;\n}\n\n// PolicyRulesWithSubjects prescribes a test that applies to a request to an apiserver. The test considers the subject\n// making the request, the verb being requested, and the resource to be acted upon. This PolicyRulesWithSubjects matches\n// a request if and only if both (a) at least one member of subjects matches the request and (b) at least one member\n// of resourceRules or nonResourceRules matches the request.\nmessage PolicyRulesWithSubjects {\n  // subjects is the list of normal user, serviceaccount, or group that this rule cares about.\n  // There must be at least one member in this slice.\n  // A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request.\n  // +listType=atomic\n  // Required.\n  repeated Subject subjects = 1;\n\n  // `resourceRules` is a slice of ResourcePolicyRules that identify matching requests according to their verb and the\n  // target resource.\n  // At least one of `resourceRules` and `nonResourceRules` has to be non-empty.\n  // +listType=atomic\n  // +optional\n  repeated ResourcePolicyRule resourceRules = 2;\n\n  // `nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests according to their verb\n  // and the target non-resource URL.\n  // +listType=atomic\n  // +optional\n  repeated NonResourcePolicyRule nonResourceRules = 3;\n}\n\n// PriorityLevelConfiguration represents the configuration of a priority level.\nmessage PriorityLevelConfiguration {\n  // `metadata` is the standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // `spec` is the specification of the desired behavior of a \"request-priority\".\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional PriorityLevelConfigurationSpec spec = 2;\n\n  // `status` is the current status of a \"request-priority\".\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional PriorityLevelConfigurationStatus status = 3;\n}\n\n// PriorityLevelConfigurationCondition defines the condition of priority level.\nmessage PriorityLevelConfigurationCondition {\n  // `type` is the type of the condition.\n  // Required.\n  optional string type = 1;\n\n  // `status` is the status of the condition.\n  // Can be True, False, Unknown.\n  // Required.\n  optional string status = 2;\n\n  // `lastTransitionTime` is the last time the condition transitioned from one status to another.\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // `reason` is a unique, one-word, CamelCase reason for the condition's last transition.\n  optional string reason = 4;\n\n  // `message` is a human-readable message indicating details about last transition.\n  optional string message = 5;\n}\n\n// PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects.\nmessage PriorityLevelConfigurationList {\n  // `metadata` is the standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // `items` is a list of request-priorities.\n  repeated PriorityLevelConfiguration items = 2;\n}\n\n// PriorityLevelConfigurationReference contains information that points to the \"request-priority\" being used.\nmessage PriorityLevelConfigurationReference {\n  // `name` is the name of the priority level configuration being referenced\n  // Required.\n  optional string name = 1;\n}\n\n// PriorityLevelConfigurationSpec specifies the configuration of a priority level.\n// +union\nmessage PriorityLevelConfigurationSpec {\n  // `type` indicates whether this priority level is subject to\n  // limitation on request execution.  A value of `\"Exempt\"` means\n  // that requests of this priority level are not subject to a limit\n  // (and thus are never queued) and do not detract from the\n  // capacity made available to other priority levels.  A value of\n  // `\"Limited\"` means that (a) requests of this priority level\n  // _are_ subject to limits and (b) some of the server's limited\n  // capacity is made available exclusively to this priority level.\n  // Required.\n  // +unionDiscriminator\n  optional string type = 1;\n\n  // `limited` specifies how requests are handled for a Limited priority level.\n  // This field must be non-empty if and only if `type` is `\"Limited\"`.\n  // +optional\n  optional LimitedPriorityLevelConfiguration limited = 2;\n\n  // `exempt` specifies how requests are handled for an exempt priority level.\n  // This field MUST be empty if `type` is `\"Limited\"`.\n  // This field MAY be non-empty if `type` is `\"Exempt\"`.\n  // If empty and `type` is `\"Exempt\"` then the default values\n  // for `ExemptPriorityLevelConfiguration` apply.\n  // +optional\n  optional ExemptPriorityLevelConfiguration exempt = 3;\n}\n\n// PriorityLevelConfigurationStatus represents the current state of a \"request-priority\".\nmessage PriorityLevelConfigurationStatus {\n  // `conditions` is the current state of \"request-priority\".\n  // +listType=map\n  // +listMapKey=type\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  // +optional\n  repeated PriorityLevelConfigurationCondition conditions = 1;\n}\n\n// QueuingConfiguration holds the configuration parameters for queuing\nmessage QueuingConfiguration {\n  // `queues` is the number of queues for this priority level. The\n  // queues exist independently at each apiserver. The value must be\n  // positive.  Setting it to 1 effectively precludes\n  // shufflesharding and thus makes the distinguisher method of\n  // associated flow schemas irrelevant.  This field has a default\n  // value of 64.\n  // +optional\n  optional int32 queues = 1;\n\n  // `handSize` is a small positive number that configures the\n  // shuffle sharding of requests into queues.  When enqueuing a request\n  // at this priority level the request's flow identifier (a string\n  // pair) is hashed and the hash value is used to shuffle the list\n  // of queues and deal a hand of the size specified here.  The\n  // request is put into one of the shortest queues in that hand.\n  // `handSize` must be no larger than `queues`, and should be\n  // significantly smaller (so that a few heavy flows do not\n  // saturate most of the queues).  See the user-facing\n  // documentation for more extensive guidance on setting this\n  // field.  This field has a default value of 8.\n  // +optional\n  optional int32 handSize = 2;\n\n  // `queueLengthLimit` is the maximum number of requests allowed to\n  // be waiting in a given queue of this priority level at a time;\n  // excess requests are rejected.  This value must be positive.  If\n  // not specified, it will be defaulted to 50.\n  // +optional\n  optional int32 queueLengthLimit = 3;\n}\n\n// ResourcePolicyRule is a predicate that matches some resource\n// requests, testing the request's verb and the target resource. A\n// ResourcePolicyRule matches a resource request if and only if: (a)\n// at least one member of verbs matches the request, (b) at least one\n// member of apiGroups matches the request, (c) at least one member of\n// resources matches the request, and (d) either (d1) the request does\n// not specify a namespace (i.e., `Namespace==\"\"`) and clusterScope is\n// true or (d2) the request specifies a namespace and least one member\n// of namespaces matches the request's namespace.\nmessage ResourcePolicyRule {\n  // `verbs` is a list of matching verbs and may not be empty.\n  // \"*\" matches all verbs and, if present, must be the only entry.\n  // +listType=set\n  // Required.\n  repeated string verbs = 1;\n\n  // `apiGroups` is a list of matching API groups and may not be empty.\n  // \"*\" matches all API groups and, if present, must be the only entry.\n  // +listType=set\n  // Required.\n  repeated string apiGroups = 2;\n\n  // `resources` is a list of matching resources (i.e., lowercase\n  // and plural) with, if desired, subresource.  For example, [\n  // \"services\", \"nodes/status\" ].  This list may not be empty.\n  // \"*\" matches all resources and, if present, must be the only entry.\n  // Required.\n  // +listType=set\n  repeated string resources = 3;\n\n  // `clusterScope` indicates whether to match requests that do not\n  // specify a namespace (which happens either because the resource\n  // is not namespaced or the request targets all namespaces).\n  // If this field is omitted or false then the `namespaces` field\n  // must contain a non-empty list.\n  // +optional\n  optional bool clusterScope = 4;\n\n  // `namespaces` is a list of target namespaces that restricts\n  // matches.  A request that specifies a target namespace matches\n  // only if either (a) this list contains that target namespace or\n  // (b) this list contains \"*\".  Note that \"*\" matches any\n  // specified namespace but does not match a request that _does\n  // not specify_ a namespace (see the `clusterScope` field for\n  // that).\n  // This list may be empty, but only if `clusterScope` is true.\n  // +optional\n  // +listType=set\n  repeated string namespaces = 5;\n}\n\n// ServiceAccountSubject holds detailed information for service-account-kind subject.\nmessage ServiceAccountSubject {\n  // `namespace` is the namespace of matching ServiceAccount objects.\n  // Required.\n  optional string namespace = 1;\n\n  // `name` is the name of matching ServiceAccount objects, or \"*\" to match regardless of name.\n  // Required.\n  optional string name = 2;\n}\n\n// Subject matches the originator of a request, as identified by the request authentication system. There are three\n// ways of matching an originator; by user, group, or service account.\n// +union\nmessage Subject {\n  // `kind` indicates which one of the other fields is non-empty.\n  // Required\n  // +unionDiscriminator\n  optional string kind = 1;\n\n  // `user` matches based on username.\n  // +optional\n  optional UserSubject user = 2;\n\n  // `group` matches based on user group name.\n  // +optional\n  optional GroupSubject group = 3;\n\n  // `serviceAccount` matches ServiceAccounts.\n  // +optional\n  optional ServiceAccountSubject serviceAccount = 4;\n}\n\n// UserSubject holds detailed information for user-kind subject.\nmessage UserSubject {\n  // `name` is the username that matches, or \"*\" to match all usernames.\n  // Required.\n  optional string name = 1;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1/register.go",
    "content": "/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the name of api group\nconst GroupName = \"flowcontrol.apiserver.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1\"}\n\n// Kind takes an unqualified kind and returns a Group qualified GroupKind\nfunc Kind(kind string) schema.GroupKind {\n\treturn SchemeGroupVersion.WithKind(kind).GroupKind()\n}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// SchemeBuilder installs the api group to a scheme\n\tSchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)\n\t// AddToScheme adds api to a scheme\n\tAddToScheme = SchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&FlowSchema{},\n\t\t&FlowSchemaList{},\n\t\t&PriorityLevelConfiguration{},\n\t\t&PriorityLevelConfigurationList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1/types.go",
    "content": "/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// These are valid wildcards.\nconst (\n\tAPIGroupAll    = \"*\"\n\tResourceAll    = \"*\"\n\tVerbAll        = \"*\"\n\tNonResourceAll = \"*\"\n\tNameAll        = \"*\"\n\n\tNamespaceEvery = \"*\" // matches every particular namespace\n)\n\n// System preset priority level names\nconst (\n\tPriorityLevelConfigurationNameExempt   = \"exempt\"\n\tPriorityLevelConfigurationNameCatchAll = \"catch-all\"\n\tFlowSchemaNameExempt                   = \"exempt\"\n\tFlowSchemaNameCatchAll                 = \"catch-all\"\n)\n\n// Conditions\nconst (\n\tFlowSchemaConditionDangling = \"Dangling\"\n\n\tPriorityLevelConfigurationConditionConcurrencyShared = \"ConcurrencyShared\"\n)\n\n// Constants used by api validation.\nconst (\n\tFlowSchemaMaxMatchingPrecedence int32 = 10000\n)\n\n// Constants for apiserver response headers.\nconst (\n\tResponseHeaderMatchedPriorityLevelConfigurationUID = \"X-Kubernetes-PF-PriorityLevel-UID\"\n\tResponseHeaderMatchedFlowSchemaUID                 = \"X-Kubernetes-PF-FlowSchema-UID\"\n)\n\nconst (\n\t// AutoUpdateAnnotationKey is the name of an annotation that enables\n\t// automatic update of the spec of the bootstrap configuration\n\t// object(s), if set to 'true'.\n\t//\n\t// On a fresh install, all bootstrap configuration objects will have auto\n\t// update enabled with the following annotation key:\n\t//    apf.kubernetes.io/autoupdate-spec: 'true'\n\t//\n\t// The kube-apiserver periodically checks the bootstrap configuration\n\t// objects on the cluster and applies updates if necessary.\n\t//\n\t// kube-apiserver enforces an 'always auto-update' policy for the\n\t// mandatory configuration object(s). This implies:\n\t// - the auto-update annotation key is added with a value of 'true'\n\t//   if it is missing.\n\t// - the auto-update annotation key is set to 'true' if its current value\n\t//   is a boolean false or has an invalid boolean representation\n\t//   (if the cluster operator sets it to 'false' it will be stomped)\n\t// - any changes to the spec made by the cluster operator will be\n\t//   stomped, except for changes to the `nominalConcurrencyShares`\n\t//   and `lendablePercent` fields of the PriorityLevelConfiguration\n\t//   named \"exempt\".\n\t//\n\t// The kube-apiserver will apply updates on the suggested configuration if:\n\t// - the cluster operator has enabled auto-update by setting the annotation\n\t//   (apf.kubernetes.io/autoupdate-spec: 'true') or\n\t// - the annotation key is missing but the generation is 1\n\t//\n\t// If the suggested configuration object is missing the annotation key,\n\t// kube-apiserver will update the annotation appropriately:\n\t// - it is set to 'true' if generation of the object is '1' which usually\n\t//   indicates that the spec of the object has not been changed.\n\t// - it is set to 'false' if generation of the object is greater than 1.\n\t//\n\t// The goal is to enable the kube-apiserver to apply update on suggested\n\t// configuration objects installed by previous releases but not overwrite\n\t// changes made by the cluster operators.\n\t// Note that this distinction is imperfectly detected: in the case where an\n\t// operator deletes a suggested configuration object and later creates it\n\t// but with a variant spec and then does no updates of the object\n\t// (generation is 1), the technique outlined above will incorrectly\n\t// determine that the object should be auto-updated.\n\tAutoUpdateAnnotationKey = \"apf.kubernetes.io/autoupdate-spec\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.29\n\n// FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of inbound API requests with\n// similar attributes and is identified by a pair of strings: the name of the FlowSchema and a \"flow distinguisher\".\ntype FlowSchema struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// `metadata` is the standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// `spec` is the specification of the desired behavior of a FlowSchema.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec FlowSchemaSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\t// `status` is the current status of a FlowSchema.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus FlowSchemaStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.29\n\n// FlowSchemaList is a list of FlowSchema objects.\ntype FlowSchemaList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// `metadata` is the standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// `items` is a list of FlowSchemas.\n\tItems []FlowSchema `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// FlowSchemaSpec describes how the FlowSchema's specification looks like.\ntype FlowSchemaSpec struct {\n\t// `priorityLevelConfiguration` should reference a PriorityLevelConfiguration in the cluster. If the reference cannot\n\t// be resolved, the FlowSchema will be ignored and marked as invalid in its status.\n\t// Required.\n\tPriorityLevelConfiguration PriorityLevelConfigurationReference `json:\"priorityLevelConfiguration\" protobuf:\"bytes,1,opt,name=priorityLevelConfiguration\"`\n\t// `matchingPrecedence` is used to choose among the FlowSchemas that match a given request. The chosen\n\t// FlowSchema is among those with the numerically lowest (which we take to be logically highest)\n\t// MatchingPrecedence.  Each MatchingPrecedence value must be ranged in [1,10000].\n\t// Note that if the precedence is not specified, it will be set to 1000 as default.\n\t// +optional\n\tMatchingPrecedence int32 `json:\"matchingPrecedence\" protobuf:\"varint,2,opt,name=matchingPrecedence\"`\n\t// `distinguisherMethod` defines how to compute the flow distinguisher for requests that match this schema.\n\t// `nil` specifies that the distinguisher is disabled and thus will always be the empty string.\n\t// +optional\n\tDistinguisherMethod *FlowDistinguisherMethod `json:\"distinguisherMethod,omitempty\" protobuf:\"bytes,3,opt,name=distinguisherMethod\"`\n\t// `rules` describes which requests will match this flow schema. This FlowSchema matches a request if and only if\n\t// at least one member of rules matches the request.\n\t// if it is an empty slice, there will be no requests matching the FlowSchema.\n\t// +listType=atomic\n\t// +optional\n\tRules []PolicyRulesWithSubjects `json:\"rules,omitempty\" protobuf:\"bytes,4,rep,name=rules\"`\n}\n\n// FlowDistinguisherMethodType is the type of flow distinguisher method\ntype FlowDistinguisherMethodType string\n\n// These are valid flow-distinguisher methods.\nconst (\n\t// FlowDistinguisherMethodByUserType specifies that the flow distinguisher is the username in the request.\n\t// This type is used to provide some insulation between users.\n\tFlowDistinguisherMethodByUserType FlowDistinguisherMethodType = \"ByUser\"\n\n\t// FlowDistinguisherMethodByNamespaceType specifies that the flow distinguisher is the namespace of the\n\t// object that the request acts upon. If the object is not namespaced, or if the request is a non-resource\n\t// request, then the distinguisher will be the empty string. An example usage of this type is to provide\n\t// some insulation between tenants in a situation where there are multiple tenants and each namespace\n\t// is dedicated to a tenant.\n\tFlowDistinguisherMethodByNamespaceType FlowDistinguisherMethodType = \"ByNamespace\"\n)\n\n// FlowDistinguisherMethod specifies the method of a flow distinguisher.\ntype FlowDistinguisherMethod struct {\n\t// `type` is the type of flow distinguisher method\n\t// The supported types are \"ByUser\" and \"ByNamespace\".\n\t// Required.\n\tType FlowDistinguisherMethodType `json:\"type\" protobuf:\"bytes,1,opt,name=type\"`\n}\n\n// PriorityLevelConfigurationReference contains information that points to the \"request-priority\" being used.\ntype PriorityLevelConfigurationReference struct {\n\t// `name` is the name of the priority level configuration being referenced\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n}\n\n// PolicyRulesWithSubjects prescribes a test that applies to a request to an apiserver. The test considers the subject\n// making the request, the verb being requested, and the resource to be acted upon. This PolicyRulesWithSubjects matches\n// a request if and only if both (a) at least one member of subjects matches the request and (b) at least one member\n// of resourceRules or nonResourceRules matches the request.\ntype PolicyRulesWithSubjects struct {\n\t// subjects is the list of normal user, serviceaccount, or group that this rule cares about.\n\t// There must be at least one member in this slice.\n\t// A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request.\n\t// +listType=atomic\n\t// Required.\n\tSubjects []Subject `json:\"subjects\" protobuf:\"bytes,1,rep,name=subjects\"`\n\t// `resourceRules` is a slice of ResourcePolicyRules that identify matching requests according to their verb and the\n\t// target resource.\n\t// At least one of `resourceRules` and `nonResourceRules` has to be non-empty.\n\t// +listType=atomic\n\t// +optional\n\tResourceRules []ResourcePolicyRule `json:\"resourceRules,omitempty\" protobuf:\"bytes,2,opt,name=resourceRules\"`\n\t// `nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests according to their verb\n\t// and the target non-resource URL.\n\t// +listType=atomic\n\t// +optional\n\tNonResourceRules []NonResourcePolicyRule `json:\"nonResourceRules,omitempty\" protobuf:\"bytes,3,opt,name=nonResourceRules\"`\n}\n\n// Subject matches the originator of a request, as identified by the request authentication system. There are three\n// ways of matching an originator; by user, group, or service account.\n// +union\ntype Subject struct {\n\t// `kind` indicates which one of the other fields is non-empty.\n\t// Required\n\t// +unionDiscriminator\n\tKind SubjectKind `json:\"kind\" protobuf:\"bytes,1,opt,name=kind\"`\n\t// `user` matches based on username.\n\t// +optional\n\tUser *UserSubject `json:\"user,omitempty\" protobuf:\"bytes,2,opt,name=user\"`\n\t// `group` matches based on user group name.\n\t// +optional\n\tGroup *GroupSubject `json:\"group,omitempty\" protobuf:\"bytes,3,opt,name=group\"`\n\t// `serviceAccount` matches ServiceAccounts.\n\t// +optional\n\tServiceAccount *ServiceAccountSubject `json:\"serviceAccount,omitempty\" protobuf:\"bytes,4,opt,name=serviceAccount\"`\n}\n\n// SubjectKind is the kind of subject.\ntype SubjectKind string\n\n// Supported subject's kinds.\nconst (\n\tSubjectKindUser           SubjectKind = \"User\"\n\tSubjectKindGroup          SubjectKind = \"Group\"\n\tSubjectKindServiceAccount SubjectKind = \"ServiceAccount\"\n)\n\n// UserSubject holds detailed information for user-kind subject.\ntype UserSubject struct {\n\t// `name` is the username that matches, or \"*\" to match all usernames.\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n}\n\n// GroupSubject holds detailed information for group-kind subject.\ntype GroupSubject struct {\n\t// name is the user group that matches, or \"*\" to match all user groups.\n\t// See https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go for some\n\t// well-known group names.\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n}\n\n// ServiceAccountSubject holds detailed information for service-account-kind subject.\ntype ServiceAccountSubject struct {\n\t// `namespace` is the namespace of matching ServiceAccount objects.\n\t// Required.\n\tNamespace string `json:\"namespace\" protobuf:\"bytes,1,opt,name=namespace\"`\n\t// `name` is the name of matching ServiceAccount objects, or \"*\" to match regardless of name.\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,2,opt,name=name\"`\n}\n\n// ResourcePolicyRule is a predicate that matches some resource\n// requests, testing the request's verb and the target resource. A\n// ResourcePolicyRule matches a resource request if and only if: (a)\n// at least one member of verbs matches the request, (b) at least one\n// member of apiGroups matches the request, (c) at least one member of\n// resources matches the request, and (d) either (d1) the request does\n// not specify a namespace (i.e., `Namespace==\"\"`) and clusterScope is\n// true or (d2) the request specifies a namespace and least one member\n// of namespaces matches the request's namespace.\ntype ResourcePolicyRule struct {\n\t// `verbs` is a list of matching verbs and may not be empty.\n\t// \"*\" matches all verbs and, if present, must be the only entry.\n\t// +listType=set\n\t// Required.\n\tVerbs []string `json:\"verbs\" protobuf:\"bytes,1,rep,name=verbs\"`\n\n\t// `apiGroups` is a list of matching API groups and may not be empty.\n\t// \"*\" matches all API groups and, if present, must be the only entry.\n\t// +listType=set\n\t// Required.\n\tAPIGroups []string `json:\"apiGroups\" protobuf:\"bytes,2,rep,name=apiGroups\"`\n\n\t// `resources` is a list of matching resources (i.e., lowercase\n\t// and plural) with, if desired, subresource.  For example, [\n\t// \"services\", \"nodes/status\" ].  This list may not be empty.\n\t// \"*\" matches all resources and, if present, must be the only entry.\n\t// Required.\n\t// +listType=set\n\tResources []string `json:\"resources\" protobuf:\"bytes,3,rep,name=resources\"`\n\n\t// `clusterScope` indicates whether to match requests that do not\n\t// specify a namespace (which happens either because the resource\n\t// is not namespaced or the request targets all namespaces).\n\t// If this field is omitted or false then the `namespaces` field\n\t// must contain a non-empty list.\n\t// +optional\n\tClusterScope bool `json:\"clusterScope,omitempty\" protobuf:\"varint,4,opt,name=clusterScope\"`\n\n\t// `namespaces` is a list of target namespaces that restricts\n\t// matches.  A request that specifies a target namespace matches\n\t// only if either (a) this list contains that target namespace or\n\t// (b) this list contains \"*\".  Note that \"*\" matches any\n\t// specified namespace but does not match a request that _does\n\t// not specify_ a namespace (see the `clusterScope` field for\n\t// that).\n\t// This list may be empty, but only if `clusterScope` is true.\n\t// +optional\n\t// +listType=set\n\tNamespaces []string `json:\"namespaces\" protobuf:\"bytes,5,rep,name=namespaces\"`\n}\n\n// NonResourcePolicyRule is a predicate that matches non-resource requests according to their verb and the\n// target non-resource URL. A NonResourcePolicyRule matches a request if and only if both (a) at least one member\n// of verbs matches the request and (b) at least one member of nonResourceURLs matches the request.\ntype NonResourcePolicyRule struct {\n\t// `verbs` is a list of matching verbs and may not be empty.\n\t// \"*\" matches all verbs. If it is present, it must be the only entry.\n\t// +listType=set\n\t// Required.\n\tVerbs []string `json:\"verbs\" protobuf:\"bytes,1,rep,name=verbs\"`\n\t// `nonResourceURLs` is a set of url prefixes that a user should have access to and may not be empty.\n\t// For example:\n\t//   - \"/healthz\" is legal\n\t//   - \"/hea*\" is illegal\n\t//   - \"/hea\" is legal but matches nothing\n\t//   - \"/hea/*\" also matches nothing\n\t//   - \"/healthz/*\" matches all per-component health checks.\n\t// \"*\" matches all non-resource urls. if it is present, it must be the only entry.\n\t// +listType=set\n\t// Required.\n\tNonResourceURLs []string `json:\"nonResourceURLs\" protobuf:\"bytes,6,rep,name=nonResourceURLs\"`\n}\n\n// FlowSchemaStatus represents the current state of a FlowSchema.\ntype FlowSchemaStatus struct {\n\t// `conditions` is a list of the current states of FlowSchema.\n\t// +listType=map\n\t// +listMapKey=type\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\t// +optional\n\tConditions []FlowSchemaCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n}\n\n// FlowSchemaCondition describes conditions for a FlowSchema.\ntype FlowSchemaCondition struct {\n\t// `type` is the type of the condition.\n\t// Required.\n\tType FlowSchemaConditionType `json:\"type,omitempty\" protobuf:\"bytes,1,opt,name=type\"`\n\t// `status` is the status of the condition.\n\t// Can be True, False, Unknown.\n\t// Required.\n\tStatus ConditionStatus `json:\"status,omitempty\" protobuf:\"bytes,2,opt,name=status\"`\n\t// `lastTransitionTime` is the last time the condition transitioned from one status to another.\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\t// `reason` is a unique, one-word, CamelCase reason for the condition's last transition.\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// `message` is a human-readable message indicating details about last transition.\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// FlowSchemaConditionType is a valid value for FlowSchemaStatusCondition.Type\ntype FlowSchemaConditionType string\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.29\n\n// PriorityLevelConfiguration represents the configuration of a priority level.\ntype PriorityLevelConfiguration struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// `metadata` is the standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// `spec` is the specification of the desired behavior of a \"request-priority\".\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec PriorityLevelConfigurationSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\t// `status` is the current status of a \"request-priority\".\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus PriorityLevelConfigurationStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.29\n\n// PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects.\ntype PriorityLevelConfigurationList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// `metadata` is the standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// `items` is a list of request-priorities.\n\tItems []PriorityLevelConfiguration `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// PriorityLevelConfigurationSpec specifies the configuration of a priority level.\n// +union\ntype PriorityLevelConfigurationSpec struct {\n\t// `type` indicates whether this priority level is subject to\n\t// limitation on request execution.  A value of `\"Exempt\"` means\n\t// that requests of this priority level are not subject to a limit\n\t// (and thus are never queued) and do not detract from the\n\t// capacity made available to other priority levels.  A value of\n\t// `\"Limited\"` means that (a) requests of this priority level\n\t// _are_ subject to limits and (b) some of the server's limited\n\t// capacity is made available exclusively to this priority level.\n\t// Required.\n\t// +unionDiscriminator\n\tType PriorityLevelEnablement `json:\"type\" protobuf:\"bytes,1,opt,name=type\"`\n\n\t// `limited` specifies how requests are handled for a Limited priority level.\n\t// This field must be non-empty if and only if `type` is `\"Limited\"`.\n\t// +optional\n\tLimited *LimitedPriorityLevelConfiguration `json:\"limited,omitempty\" protobuf:\"bytes,2,opt,name=limited\"`\n\n\t// `exempt` specifies how requests are handled for an exempt priority level.\n\t// This field MUST be empty if `type` is `\"Limited\"`.\n\t// This field MAY be non-empty if `type` is `\"Exempt\"`.\n\t// If empty and `type` is `\"Exempt\"` then the default values\n\t// for `ExemptPriorityLevelConfiguration` apply.\n\t// +optional\n\tExempt *ExemptPriorityLevelConfiguration `json:\"exempt,omitempty\" protobuf:\"bytes,3,opt,name=exempt\"`\n}\n\n// PriorityLevelEnablement indicates whether limits on execution are enabled for the priority level\ntype PriorityLevelEnablement string\n\n// Supported priority level enablement values.\nconst (\n\t// PriorityLevelEnablementExempt means that requests are not subject to limits\n\tPriorityLevelEnablementExempt PriorityLevelEnablement = \"Exempt\"\n\n\t// PriorityLevelEnablementLimited means that requests are subject to limits\n\tPriorityLevelEnablementLimited PriorityLevelEnablement = \"Limited\"\n)\n\n// LimitedPriorityLevelConfiguration specifies how to handle requests that are subject to limits.\n// It addresses two issues:\n//   - How are requests for this priority level limited?\n//   - What should be done with requests that exceed the limit?\ntype LimitedPriorityLevelConfiguration struct {\n\t// `nominalConcurrencyShares` (NCS) contributes to the computation of the\n\t// NominalConcurrencyLimit (NominalCL) of this level.\n\t// This is the number of execution seats available at this priority level.\n\t// This is used both for requests dispatched from this priority level\n\t// as well as requests dispatched from other priority levels\n\t// borrowing seats from this level.\n\t// The server's concurrency limit (ServerCL) is divided among the\n\t// Limited priority levels in proportion to their NCS values:\n\t//\n\t// NominalCL(i)  = ceil( ServerCL * NCS(i) / sum_ncs )\n\t// sum_ncs = sum[priority level k] NCS(k)\n\t//\n\t// Bigger numbers mean a larger nominal concurrency limit,\n\t// at the expense of every other priority level.\n\t//\n\t// If not specified, this field defaults to a value of 30.\n\t//\n\t// Setting this field to zero supports the construction of a\n\t// \"jail\" for this priority level that is used to hold some request(s)\n\t//\n\t// +optional\n\tNominalConcurrencyShares *int32 `json:\"nominalConcurrencyShares\" protobuf:\"varint,1,opt,name=nominalConcurrencyShares\"`\n\n\t// `limitResponse` indicates what to do with requests that can not be executed right now\n\tLimitResponse LimitResponse `json:\"limitResponse,omitempty\" protobuf:\"bytes,2,opt,name=limitResponse\"`\n\n\t// `lendablePercent` prescribes the fraction of the level's NominalCL that\n\t// can be borrowed by other priority levels. The value of this\n\t// field must be between 0 and 100, inclusive, and it defaults to 0.\n\t// The number of seats that other levels can borrow from this level, known\n\t// as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\n\t//\n\t// LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )\n\t//\n\t// +optional\n\tLendablePercent *int32 `json:\"lendablePercent,omitempty\" protobuf:\"varint,3,opt,name=lendablePercent\"`\n\n\t// `borrowingLimitPercent`, if present, configures a limit on how many\n\t// seats this priority level can borrow from other priority levels.\n\t// The limit is known as this level's BorrowingConcurrencyLimit\n\t// (BorrowingCL) and is a limit on the total number of seats that this\n\t// level may borrow at any one time.\n\t// This field holds the ratio of that limit to the level's nominal\n\t// concurrency limit. When this field is non-nil, it must hold a\n\t// non-negative integer and the limit is calculated as follows.\n\t//\n\t// BorrowingCL(i) = round( NominalCL(i) * borrowingLimitPercent(i)/100.0 )\n\t//\n\t// The value of this field can be more than 100, implying that this\n\t// priority level can borrow a number of seats that is greater than\n\t// its own nominal concurrency limit (NominalCL).\n\t// When this field is left `nil`, the limit is effectively infinite.\n\t// +optional\n\tBorrowingLimitPercent *int32 `json:\"borrowingLimitPercent,omitempty\" protobuf:\"varint,4,opt,name=borrowingLimitPercent\"`\n}\n\n// ExemptPriorityLevelConfiguration describes the configurable aspects\n// of the handling of exempt requests.\n// In the mandatory exempt configuration object the values in the fields\n// here can be modified by authorized users, unlike the rest of the `spec`.\ntype ExemptPriorityLevelConfiguration struct {\n\t// `nominalConcurrencyShares` (NCS) contributes to the computation of the\n\t// NominalConcurrencyLimit (NominalCL) of this level.\n\t// This is the number of execution seats nominally reserved for this priority level.\n\t// This DOES NOT limit the dispatching from this priority level\n\t// but affects the other priority levels through the borrowing mechanism.\n\t// The server's concurrency limit (ServerCL) is divided among all the\n\t// priority levels in proportion to their NCS values:\n\t//\n\t// NominalCL(i)  = ceil( ServerCL * NCS(i) / sum_ncs )\n\t// sum_ncs = sum[priority level k] NCS(k)\n\t//\n\t// Bigger numbers mean a larger nominal concurrency limit,\n\t// at the expense of every other priority level.\n\t// This field has a default value of zero.\n\t// +optional\n\tNominalConcurrencyShares *int32 `json:\"nominalConcurrencyShares,omitempty\" protobuf:\"varint,1,opt,name=nominalConcurrencyShares\"`\n\t// `lendablePercent` prescribes the fraction of the level's NominalCL that\n\t// can be borrowed by other priority levels.  This value of this\n\t// field must be between 0 and 100, inclusive, and it defaults to 0.\n\t// The number of seats that other levels can borrow from this level, known\n\t// as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\n\t//\n\t// LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )\n\t//\n\t// +optional\n\tLendablePercent *int32 `json:\"lendablePercent,omitempty\" protobuf:\"varint,2,opt,name=lendablePercent\"`\n\t// The `BorrowingCL` of an Exempt priority level is implicitly `ServerCL`.\n\t// In other words, an exempt priority level\n\t// has no meaningful limit on how much it borrows.\n\t// There is no explicit representation of that here.\n}\n\n// LimitResponse defines how to handle requests that can not be executed right now.\n// +union\ntype LimitResponse struct {\n\t// `type` is \"Queue\" or \"Reject\".\n\t// \"Queue\" means that requests that can not be executed upon arrival\n\t// are held in a queue until they can be executed or a queuing limit\n\t// is reached.\n\t// \"Reject\" means that requests that can not be executed upon arrival\n\t// are rejected.\n\t// Required.\n\t// +unionDiscriminator\n\tType LimitResponseType `json:\"type\" protobuf:\"bytes,1,opt,name=type\"`\n\n\t// `queuing` holds the configuration parameters for queuing.\n\t// This field may be non-empty only if `type` is `\"Queue\"`.\n\t// +optional\n\tQueuing *QueuingConfiguration `json:\"queuing,omitempty\" protobuf:\"bytes,2,opt,name=queuing\"`\n}\n\n// LimitResponseType identifies how a Limited priority level handles a request that can not be executed right now\ntype LimitResponseType string\n\n// Supported limit responses.\nconst (\n\t// LimitResponseTypeQueue means that requests that can not be executed right now are queued until they can be executed or a queuing limit is hit\n\tLimitResponseTypeQueue LimitResponseType = \"Queue\"\n\n\t// LimitResponseTypeReject means that requests that can not be executed right now are rejected\n\tLimitResponseTypeReject LimitResponseType = \"Reject\"\n)\n\n// QueuingConfiguration holds the configuration parameters for queuing\ntype QueuingConfiguration struct {\n\t// `queues` is the number of queues for this priority level. The\n\t// queues exist independently at each apiserver. The value must be\n\t// positive.  Setting it to 1 effectively precludes\n\t// shufflesharding and thus makes the distinguisher method of\n\t// associated flow schemas irrelevant.  This field has a default\n\t// value of 64.\n\t// +optional\n\tQueues int32 `json:\"queues\" protobuf:\"varint,1,opt,name=queues\"`\n\n\t// `handSize` is a small positive number that configures the\n\t// shuffle sharding of requests into queues.  When enqueuing a request\n\t// at this priority level the request's flow identifier (a string\n\t// pair) is hashed and the hash value is used to shuffle the list\n\t// of queues and deal a hand of the size specified here.  The\n\t// request is put into one of the shortest queues in that hand.\n\t// `handSize` must be no larger than `queues`, and should be\n\t// significantly smaller (so that a few heavy flows do not\n\t// saturate most of the queues).  See the user-facing\n\t// documentation for more extensive guidance on setting this\n\t// field.  This field has a default value of 8.\n\t// +optional\n\tHandSize int32 `json:\"handSize\" protobuf:\"varint,2,opt,name=handSize\"`\n\n\t// `queueLengthLimit` is the maximum number of requests allowed to\n\t// be waiting in a given queue of this priority level at a time;\n\t// excess requests are rejected.  This value must be positive.  If\n\t// not specified, it will be defaulted to 50.\n\t// +optional\n\tQueueLengthLimit int32 `json:\"queueLengthLimit\" protobuf:\"varint,3,opt,name=queueLengthLimit\"`\n}\n\n// PriorityLevelConfigurationConditionType is a valid value for PriorityLevelConfigurationStatusCondition.Type\ntype PriorityLevelConfigurationConditionType string\n\n// PriorityLevelConfigurationStatus represents the current state of a \"request-priority\".\ntype PriorityLevelConfigurationStatus struct {\n\t// `conditions` is the current state of \"request-priority\".\n\t// +listType=map\n\t// +listMapKey=type\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\t// +optional\n\tConditions []PriorityLevelConfigurationCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n}\n\n// PriorityLevelConfigurationCondition defines the condition of priority level.\ntype PriorityLevelConfigurationCondition struct {\n\t// `type` is the type of the condition.\n\t// Required.\n\tType PriorityLevelConfigurationConditionType `json:\"type,omitempty\" protobuf:\"bytes,1,opt,name=type\"`\n\t// `status` is the status of the condition.\n\t// Can be True, False, Unknown.\n\t// Required.\n\tStatus ConditionStatus `json:\"status,omitempty\" protobuf:\"bytes,2,opt,name=status\"`\n\t// `lastTransitionTime` is the last time the condition transitioned from one status to another.\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\t// `reason` is a unique, one-word, CamelCase reason for the condition's last transition.\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// `message` is a human-readable message indicating details about last transition.\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// ConditionStatus is the status of the condition.\ntype ConditionStatus string\n\n// These are valid condition statuses. \"ConditionTrue\" means a resource is in the condition.\n// \"ConditionFalse\" means a resource is not in the condition. \"ConditionUnknown\" means kubernetes\n// can't decide if a resource is in the condition or not. In the future, we could add other\n// intermediate conditions, e.g. ConditionDegraded.\nconst (\n\tConditionTrue    ConditionStatus = \"True\"\n\tConditionFalse   ConditionStatus = \"False\"\n\tConditionUnknown ConditionStatus = \"Unknown\"\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_ExemptPriorityLevelConfiguration = map[string]string{\n\t\"\":                         \"ExemptPriorityLevelConfiguration describes the configurable aspects of the handling of exempt requests. In the mandatory exempt configuration object the values in the fields here can be modified by authorized users, unlike the rest of the `spec`.\",\n\t\"nominalConcurrencyShares\": \"`nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats nominally reserved for this priority level. This DOES NOT limit the dispatching from this priority level but affects the other priority levels through the borrowing mechanism. The server's concurrency limit (ServerCL) is divided among all the priority levels in proportion to their NCS values:\\n\\nNominalCL(i)  = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k)\\n\\nBigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of zero.\",\n\t\"lendablePercent\":          \"`lendablePercent` prescribes the fraction of the level's NominalCL that can be borrowed by other priority levels.  This value of this field must be between 0 and 100, inclusive, and it defaults to 0. The number of seats that other levels can borrow from this level, known as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\\n\\nLendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )\",\n}\n\nfunc (ExemptPriorityLevelConfiguration) SwaggerDoc() map[string]string {\n\treturn map_ExemptPriorityLevelConfiguration\n}\n\nvar map_FlowDistinguisherMethod = map[string]string{\n\t\"\":     \"FlowDistinguisherMethod specifies the method of a flow distinguisher.\",\n\t\"type\": \"`type` is the type of flow distinguisher method The supported types are \\\"ByUser\\\" and \\\"ByNamespace\\\". Required.\",\n}\n\nfunc (FlowDistinguisherMethod) SwaggerDoc() map[string]string {\n\treturn map_FlowDistinguisherMethod\n}\n\nvar map_FlowSchema = map[string]string{\n\t\"\":         \"FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of inbound API requests with similar attributes and is identified by a pair of strings: the name of the FlowSchema and a \\\"flow distinguisher\\\".\",\n\t\"metadata\": \"`metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"`spec` is the specification of the desired behavior of a FlowSchema. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"`status` is the current status of a FlowSchema. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (FlowSchema) SwaggerDoc() map[string]string {\n\treturn map_FlowSchema\n}\n\nvar map_FlowSchemaCondition = map[string]string{\n\t\"\":                   \"FlowSchemaCondition describes conditions for a FlowSchema.\",\n\t\"type\":               \"`type` is the type of the condition. Required.\",\n\t\"status\":             \"`status` is the status of the condition. Can be True, False, Unknown. Required.\",\n\t\"lastTransitionTime\": \"`lastTransitionTime` is the last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"`reason` is a unique, one-word, CamelCase reason for the condition's last transition.\",\n\t\"message\":            \"`message` is a human-readable message indicating details about last transition.\",\n}\n\nfunc (FlowSchemaCondition) SwaggerDoc() map[string]string {\n\treturn map_FlowSchemaCondition\n}\n\nvar map_FlowSchemaList = map[string]string{\n\t\"\":         \"FlowSchemaList is a list of FlowSchema objects.\",\n\t\"metadata\": \"`metadata` is the standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"`items` is a list of FlowSchemas.\",\n}\n\nfunc (FlowSchemaList) SwaggerDoc() map[string]string {\n\treturn map_FlowSchemaList\n}\n\nvar map_FlowSchemaSpec = map[string]string{\n\t\"\":                           \"FlowSchemaSpec describes how the FlowSchema's specification looks like.\",\n\t\"priorityLevelConfiguration\": \"`priorityLevelConfiguration` should reference a PriorityLevelConfiguration in the cluster. If the reference cannot be resolved, the FlowSchema will be ignored and marked as invalid in its status. Required.\",\n\t\"matchingPrecedence\":         \"`matchingPrecedence` is used to choose among the FlowSchemas that match a given request. The chosen FlowSchema is among those with the numerically lowest (which we take to be logically highest) MatchingPrecedence.  Each MatchingPrecedence value must be ranged in [1,10000]. Note that if the precedence is not specified, it will be set to 1000 as default.\",\n\t\"distinguisherMethod\":        \"`distinguisherMethod` defines how to compute the flow distinguisher for requests that match this schema. `nil` specifies that the distinguisher is disabled and thus will always be the empty string.\",\n\t\"rules\":                      \"`rules` describes which requests will match this flow schema. This FlowSchema matches a request if and only if at least one member of rules matches the request. if it is an empty slice, there will be no requests matching the FlowSchema.\",\n}\n\nfunc (FlowSchemaSpec) SwaggerDoc() map[string]string {\n\treturn map_FlowSchemaSpec\n}\n\nvar map_FlowSchemaStatus = map[string]string{\n\t\"\":           \"FlowSchemaStatus represents the current state of a FlowSchema.\",\n\t\"conditions\": \"`conditions` is a list of the current states of FlowSchema.\",\n}\n\nfunc (FlowSchemaStatus) SwaggerDoc() map[string]string {\n\treturn map_FlowSchemaStatus\n}\n\nvar map_GroupSubject = map[string]string{\n\t\"\":     \"GroupSubject holds detailed information for group-kind subject.\",\n\t\"name\": \"name is the user group that matches, or \\\"*\\\" to match all user groups. See https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go for some well-known group names. Required.\",\n}\n\nfunc (GroupSubject) SwaggerDoc() map[string]string {\n\treturn map_GroupSubject\n}\n\nvar map_LimitResponse = map[string]string{\n\t\"\":        \"LimitResponse defines how to handle requests that can not be executed right now.\",\n\t\"type\":    \"`type` is \\\"Queue\\\" or \\\"Reject\\\". \\\"Queue\\\" means that requests that can not be executed upon arrival are held in a queue until they can be executed or a queuing limit is reached. \\\"Reject\\\" means that requests that can not be executed upon arrival are rejected. Required.\",\n\t\"queuing\": \"`queuing` holds the configuration parameters for queuing. This field may be non-empty only if `type` is `\\\"Queue\\\"`.\",\n}\n\nfunc (LimitResponse) SwaggerDoc() map[string]string {\n\treturn map_LimitResponse\n}\n\nvar map_LimitedPriorityLevelConfiguration = map[string]string{\n\t\"\":                         \"LimitedPriorityLevelConfiguration specifies how to handle requests that are subject to limits. It addresses two issues:\\n  - How are requests for this priority level limited?\\n  - What should be done with requests that exceed the limit?\",\n\t\"nominalConcurrencyShares\": \"`nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values:\\n\\nNominalCL(i)  = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k)\\n\\nBigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level.\\n\\nIf not specified, this field defaults to a value of 30.\\n\\nSetting this field to zero supports the construction of a \\\"jail\\\" for this priority level that is used to hold some request(s)\",\n\t\"limitResponse\":            \"`limitResponse` indicates what to do with requests that can not be executed right now\",\n\t\"lendablePercent\":          \"`lendablePercent` prescribes the fraction of the level's NominalCL that can be borrowed by other priority levels. The value of this field must be between 0 and 100, inclusive, and it defaults to 0. The number of seats that other levels can borrow from this level, known as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\\n\\nLendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )\",\n\t\"borrowingLimitPercent\":    \"`borrowingLimitPercent`, if present, configures a limit on how many seats this priority level can borrow from other priority levels. The limit is known as this level's BorrowingConcurrencyLimit (BorrowingCL) and is a limit on the total number of seats that this level may borrow at any one time. This field holds the ratio of that limit to the level's nominal concurrency limit. When this field is non-nil, it must hold a non-negative integer and the limit is calculated as follows.\\n\\nBorrowingCL(i) = round( NominalCL(i) * borrowingLimitPercent(i)/100.0 )\\n\\nThe value of this field can be more than 100, implying that this priority level can borrow a number of seats that is greater than its own nominal concurrency limit (NominalCL). When this field is left `nil`, the limit is effectively infinite.\",\n}\n\nfunc (LimitedPriorityLevelConfiguration) SwaggerDoc() map[string]string {\n\treturn map_LimitedPriorityLevelConfiguration\n}\n\nvar map_NonResourcePolicyRule = map[string]string{\n\t\"\":                \"NonResourcePolicyRule is a predicate that matches non-resource requests according to their verb and the target non-resource URL. A NonResourcePolicyRule matches a request if and only if both (a) at least one member of verbs matches the request and (b) at least one member of nonResourceURLs matches the request.\",\n\t\"verbs\":           \"`verbs` is a list of matching verbs and may not be empty. \\\"*\\\" matches all verbs. If it is present, it must be the only entry. Required.\",\n\t\"nonResourceURLs\": \"`nonResourceURLs` is a set of url prefixes that a user should have access to and may not be empty. For example:\\n  - \\\"/healthz\\\" is legal\\n  - \\\"/hea*\\\" is illegal\\n  - \\\"/hea\\\" is legal but matches nothing\\n  - \\\"/hea/*\\\" also matches nothing\\n  - \\\"/healthz/*\\\" matches all per-component health checks.\\n\\\"*\\\" matches all non-resource urls. if it is present, it must be the only entry. Required.\",\n}\n\nfunc (NonResourcePolicyRule) SwaggerDoc() map[string]string {\n\treturn map_NonResourcePolicyRule\n}\n\nvar map_PolicyRulesWithSubjects = map[string]string{\n\t\"\":                 \"PolicyRulesWithSubjects prescribes a test that applies to a request to an apiserver. The test considers the subject making the request, the verb being requested, and the resource to be acted upon. This PolicyRulesWithSubjects matches a request if and only if both (a) at least one member of subjects matches the request and (b) at least one member of resourceRules or nonResourceRules matches the request.\",\n\t\"subjects\":         \"subjects is the list of normal user, serviceaccount, or group that this rule cares about. There must be at least one member in this slice. A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request. Required.\",\n\t\"resourceRules\":    \"`resourceRules` is a slice of ResourcePolicyRules that identify matching requests according to their verb and the target resource. At least one of `resourceRules` and `nonResourceRules` has to be non-empty.\",\n\t\"nonResourceRules\": \"`nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests according to their verb and the target non-resource URL.\",\n}\n\nfunc (PolicyRulesWithSubjects) SwaggerDoc() map[string]string {\n\treturn map_PolicyRulesWithSubjects\n}\n\nvar map_PriorityLevelConfiguration = map[string]string{\n\t\"\":         \"PriorityLevelConfiguration represents the configuration of a priority level.\",\n\t\"metadata\": \"`metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"`spec` is the specification of the desired behavior of a \\\"request-priority\\\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"`status` is the current status of a \\\"request-priority\\\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (PriorityLevelConfiguration) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfiguration\n}\n\nvar map_PriorityLevelConfigurationCondition = map[string]string{\n\t\"\":                   \"PriorityLevelConfigurationCondition defines the condition of priority level.\",\n\t\"type\":               \"`type` is the type of the condition. Required.\",\n\t\"status\":             \"`status` is the status of the condition. Can be True, False, Unknown. Required.\",\n\t\"lastTransitionTime\": \"`lastTransitionTime` is the last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"`reason` is a unique, one-word, CamelCase reason for the condition's last transition.\",\n\t\"message\":            \"`message` is a human-readable message indicating details about last transition.\",\n}\n\nfunc (PriorityLevelConfigurationCondition) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfigurationCondition\n}\n\nvar map_PriorityLevelConfigurationList = map[string]string{\n\t\"\":         \"PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects.\",\n\t\"metadata\": \"`metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"`items` is a list of request-priorities.\",\n}\n\nfunc (PriorityLevelConfigurationList) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfigurationList\n}\n\nvar map_PriorityLevelConfigurationReference = map[string]string{\n\t\"\":     \"PriorityLevelConfigurationReference contains information that points to the \\\"request-priority\\\" being used.\",\n\t\"name\": \"`name` is the name of the priority level configuration being referenced Required.\",\n}\n\nfunc (PriorityLevelConfigurationReference) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfigurationReference\n}\n\nvar map_PriorityLevelConfigurationSpec = map[string]string{\n\t\"\":        \"PriorityLevelConfigurationSpec specifies the configuration of a priority level.\",\n\t\"type\":    \"`type` indicates whether this priority level is subject to limitation on request execution.  A value of `\\\"Exempt\\\"` means that requests of this priority level are not subject to a limit (and thus are never queued) and do not detract from the capacity made available to other priority levels.  A value of `\\\"Limited\\\"` means that (a) requests of this priority level _are_ subject to limits and (b) some of the server's limited capacity is made available exclusively to this priority level. Required.\",\n\t\"limited\": \"`limited` specifies how requests are handled for a Limited priority level. This field must be non-empty if and only if `type` is `\\\"Limited\\\"`.\",\n\t\"exempt\":  \"`exempt` specifies how requests are handled for an exempt priority level. This field MUST be empty if `type` is `\\\"Limited\\\"`. This field MAY be non-empty if `type` is `\\\"Exempt\\\"`. If empty and `type` is `\\\"Exempt\\\"` then the default values for `ExemptPriorityLevelConfiguration` apply.\",\n}\n\nfunc (PriorityLevelConfigurationSpec) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfigurationSpec\n}\n\nvar map_PriorityLevelConfigurationStatus = map[string]string{\n\t\"\":           \"PriorityLevelConfigurationStatus represents the current state of a \\\"request-priority\\\".\",\n\t\"conditions\": \"`conditions` is the current state of \\\"request-priority\\\".\",\n}\n\nfunc (PriorityLevelConfigurationStatus) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfigurationStatus\n}\n\nvar map_QueuingConfiguration = map[string]string{\n\t\"\":                 \"QueuingConfiguration holds the configuration parameters for queuing\",\n\t\"queues\":           \"`queues` is the number of queues for this priority level. The queues exist independently at each apiserver. The value must be positive.  Setting it to 1 effectively precludes shufflesharding and thus makes the distinguisher method of associated flow schemas irrelevant.  This field has a default value of 64.\",\n\t\"handSize\":         \"`handSize` is a small positive number that configures the shuffle sharding of requests into queues.  When enqueuing a request at this priority level the request's flow identifier (a string pair) is hashed and the hash value is used to shuffle the list of queues and deal a hand of the size specified here.  The request is put into one of the shortest queues in that hand. `handSize` must be no larger than `queues`, and should be significantly smaller (so that a few heavy flows do not saturate most of the queues).  See the user-facing documentation for more extensive guidance on setting this field.  This field has a default value of 8.\",\n\t\"queueLengthLimit\": \"`queueLengthLimit` is the maximum number of requests allowed to be waiting in a given queue of this priority level at a time; excess requests are rejected.  This value must be positive.  If not specified, it will be defaulted to 50.\",\n}\n\nfunc (QueuingConfiguration) SwaggerDoc() map[string]string {\n\treturn map_QueuingConfiguration\n}\n\nvar map_ResourcePolicyRule = map[string]string{\n\t\"\":             \"ResourcePolicyRule is a predicate that matches some resource requests, testing the request's verb and the target resource. A ResourcePolicyRule matches a resource request if and only if: (a) at least one member of verbs matches the request, (b) at least one member of apiGroups matches the request, (c) at least one member of resources matches the request, and (d) either (d1) the request does not specify a namespace (i.e., `Namespace==\\\"\\\"`) and clusterScope is true or (d2) the request specifies a namespace and least one member of namespaces matches the request's namespace.\",\n\t\"verbs\":        \"`verbs` is a list of matching verbs and may not be empty. \\\"*\\\" matches all verbs and, if present, must be the only entry. Required.\",\n\t\"apiGroups\":    \"`apiGroups` is a list of matching API groups and may not be empty. \\\"*\\\" matches all API groups and, if present, must be the only entry. Required.\",\n\t\"resources\":    \"`resources` is a list of matching resources (i.e., lowercase and plural) with, if desired, subresource.  For example, [ \\\"services\\\", \\\"nodes/status\\\" ].  This list may not be empty. \\\"*\\\" matches all resources and, if present, must be the only entry. Required.\",\n\t\"clusterScope\": \"`clusterScope` indicates whether to match requests that do not specify a namespace (which happens either because the resource is not namespaced or the request targets all namespaces). If this field is omitted or false then the `namespaces` field must contain a non-empty list.\",\n\t\"namespaces\":   \"`namespaces` is a list of target namespaces that restricts matches.  A request that specifies a target namespace matches only if either (a) this list contains that target namespace or (b) this list contains \\\"*\\\".  Note that \\\"*\\\" matches any specified namespace but does not match a request that _does not specify_ a namespace (see the `clusterScope` field for that). This list may be empty, but only if `clusterScope` is true.\",\n}\n\nfunc (ResourcePolicyRule) SwaggerDoc() map[string]string {\n\treturn map_ResourcePolicyRule\n}\n\nvar map_ServiceAccountSubject = map[string]string{\n\t\"\":          \"ServiceAccountSubject holds detailed information for service-account-kind subject.\",\n\t\"namespace\": \"`namespace` is the namespace of matching ServiceAccount objects. Required.\",\n\t\"name\":      \"`name` is the name of matching ServiceAccount objects, or \\\"*\\\" to match regardless of name. Required.\",\n}\n\nfunc (ServiceAccountSubject) SwaggerDoc() map[string]string {\n\treturn map_ServiceAccountSubject\n}\n\nvar map_Subject = map[string]string{\n\t\"\":               \"Subject matches the originator of a request, as identified by the request authentication system. There are three ways of matching an originator; by user, group, or service account.\",\n\t\"kind\":           \"`kind` indicates which one of the other fields is non-empty. Required\",\n\t\"user\":           \"`user` matches based on username.\",\n\t\"group\":          \"`group` matches based on user group name.\",\n\t\"serviceAccount\": \"`serviceAccount` matches ServiceAccounts.\",\n}\n\nfunc (Subject) SwaggerDoc() map[string]string {\n\treturn map_Subject\n}\n\nvar map_UserSubject = map[string]string{\n\t\"\":     \"UserSubject holds detailed information for user-kind subject.\",\n\t\"name\": \"`name` is the username that matches, or \\\"*\\\" to match all usernames. Required.\",\n}\n\nfunc (UserSubject) SwaggerDoc() map[string]string {\n\treturn map_UserSubject\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExemptPriorityLevelConfiguration) DeepCopyInto(out *ExemptPriorityLevelConfiguration) {\n\t*out = *in\n\tif in.NominalConcurrencyShares != nil {\n\t\tin, out := &in.NominalConcurrencyShares, &out.NominalConcurrencyShares\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.LendablePercent != nil {\n\t\tin, out := &in.LendablePercent, &out.LendablePercent\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExemptPriorityLevelConfiguration.\nfunc (in *ExemptPriorityLevelConfiguration) DeepCopy() *ExemptPriorityLevelConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExemptPriorityLevelConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowDistinguisherMethod) DeepCopyInto(out *FlowDistinguisherMethod) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowDistinguisherMethod.\nfunc (in *FlowDistinguisherMethod) DeepCopy() *FlowDistinguisherMethod {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowDistinguisherMethod)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowSchema) DeepCopyInto(out *FlowSchema) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowSchema.\nfunc (in *FlowSchema) DeepCopy() *FlowSchema {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowSchema)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *FlowSchema) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowSchemaCondition) DeepCopyInto(out *FlowSchemaCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowSchemaCondition.\nfunc (in *FlowSchemaCondition) DeepCopy() *FlowSchemaCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowSchemaCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowSchemaList) DeepCopyInto(out *FlowSchemaList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]FlowSchema, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowSchemaList.\nfunc (in *FlowSchemaList) DeepCopy() *FlowSchemaList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowSchemaList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *FlowSchemaList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowSchemaSpec) DeepCopyInto(out *FlowSchemaSpec) {\n\t*out = *in\n\tout.PriorityLevelConfiguration = in.PriorityLevelConfiguration\n\tif in.DistinguisherMethod != nil {\n\t\tin, out := &in.DistinguisherMethod, &out.DistinguisherMethod\n\t\t*out = new(FlowDistinguisherMethod)\n\t\t**out = **in\n\t}\n\tif in.Rules != nil {\n\t\tin, out := &in.Rules, &out.Rules\n\t\t*out = make([]PolicyRulesWithSubjects, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowSchemaSpec.\nfunc (in *FlowSchemaSpec) DeepCopy() *FlowSchemaSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowSchemaSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowSchemaStatus) DeepCopyInto(out *FlowSchemaStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]FlowSchemaCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowSchemaStatus.\nfunc (in *FlowSchemaStatus) DeepCopy() *FlowSchemaStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowSchemaStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *GroupSubject) DeepCopyInto(out *GroupSubject) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupSubject.\nfunc (in *GroupSubject) DeepCopy() *GroupSubject {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(GroupSubject)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LimitResponse) DeepCopyInto(out *LimitResponse) {\n\t*out = *in\n\tif in.Queuing != nil {\n\t\tin, out := &in.Queuing, &out.Queuing\n\t\t*out = new(QueuingConfiguration)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LimitResponse.\nfunc (in *LimitResponse) DeepCopy() *LimitResponse {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LimitResponse)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LimitedPriorityLevelConfiguration) DeepCopyInto(out *LimitedPriorityLevelConfiguration) {\n\t*out = *in\n\tif in.NominalConcurrencyShares != nil {\n\t\tin, out := &in.NominalConcurrencyShares, &out.NominalConcurrencyShares\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tin.LimitResponse.DeepCopyInto(&out.LimitResponse)\n\tif in.LendablePercent != nil {\n\t\tin, out := &in.LendablePercent, &out.LendablePercent\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.BorrowingLimitPercent != nil {\n\t\tin, out := &in.BorrowingLimitPercent, &out.BorrowingLimitPercent\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LimitedPriorityLevelConfiguration.\nfunc (in *LimitedPriorityLevelConfiguration) DeepCopy() *LimitedPriorityLevelConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LimitedPriorityLevelConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NonResourcePolicyRule) DeepCopyInto(out *NonResourcePolicyRule) {\n\t*out = *in\n\tif in.Verbs != nil {\n\t\tin, out := &in.Verbs, &out.Verbs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.NonResourceURLs != nil {\n\t\tin, out := &in.NonResourceURLs, &out.NonResourceURLs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NonResourcePolicyRule.\nfunc (in *NonResourcePolicyRule) DeepCopy() *NonResourcePolicyRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NonResourcePolicyRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PolicyRulesWithSubjects) DeepCopyInto(out *PolicyRulesWithSubjects) {\n\t*out = *in\n\tif in.Subjects != nil {\n\t\tin, out := &in.Subjects, &out.Subjects\n\t\t*out = make([]Subject, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.ResourceRules != nil {\n\t\tin, out := &in.ResourceRules, &out.ResourceRules\n\t\t*out = make([]ResourcePolicyRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.NonResourceRules != nil {\n\t\tin, out := &in.NonResourceRules, &out.NonResourceRules\n\t\t*out = make([]NonResourcePolicyRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyRulesWithSubjects.\nfunc (in *PolicyRulesWithSubjects) DeepCopy() *PolicyRulesWithSubjects {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PolicyRulesWithSubjects)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfiguration) DeepCopyInto(out *PriorityLevelConfiguration) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfiguration.\nfunc (in *PriorityLevelConfiguration) DeepCopy() *PriorityLevelConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PriorityLevelConfiguration) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfigurationCondition) DeepCopyInto(out *PriorityLevelConfigurationCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfigurationCondition.\nfunc (in *PriorityLevelConfigurationCondition) DeepCopy() *PriorityLevelConfigurationCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfigurationCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfigurationList) DeepCopyInto(out *PriorityLevelConfigurationList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]PriorityLevelConfiguration, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfigurationList.\nfunc (in *PriorityLevelConfigurationList) DeepCopy() *PriorityLevelConfigurationList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfigurationList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PriorityLevelConfigurationList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfigurationReference) DeepCopyInto(out *PriorityLevelConfigurationReference) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfigurationReference.\nfunc (in *PriorityLevelConfigurationReference) DeepCopy() *PriorityLevelConfigurationReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfigurationReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfigurationSpec) DeepCopyInto(out *PriorityLevelConfigurationSpec) {\n\t*out = *in\n\tif in.Limited != nil {\n\t\tin, out := &in.Limited, &out.Limited\n\t\t*out = new(LimitedPriorityLevelConfiguration)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Exempt != nil {\n\t\tin, out := &in.Exempt, &out.Exempt\n\t\t*out = new(ExemptPriorityLevelConfiguration)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfigurationSpec.\nfunc (in *PriorityLevelConfigurationSpec) DeepCopy() *PriorityLevelConfigurationSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfigurationSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfigurationStatus) DeepCopyInto(out *PriorityLevelConfigurationStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]PriorityLevelConfigurationCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfigurationStatus.\nfunc (in *PriorityLevelConfigurationStatus) DeepCopy() *PriorityLevelConfigurationStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfigurationStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *QueuingConfiguration) DeepCopyInto(out *QueuingConfiguration) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new QueuingConfiguration.\nfunc (in *QueuingConfiguration) DeepCopy() *QueuingConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(QueuingConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourcePolicyRule) DeepCopyInto(out *ResourcePolicyRule) {\n\t*out = *in\n\tif in.Verbs != nil {\n\t\tin, out := &in.Verbs, &out.Verbs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.APIGroups != nil {\n\t\tin, out := &in.APIGroups, &out.APIGroups\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Resources != nil {\n\t\tin, out := &in.Resources, &out.Resources\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Namespaces != nil {\n\t\tin, out := &in.Namespaces, &out.Namespaces\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourcePolicyRule.\nfunc (in *ResourcePolicyRule) DeepCopy() *ResourcePolicyRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourcePolicyRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ServiceAccountSubject) DeepCopyInto(out *ServiceAccountSubject) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceAccountSubject.\nfunc (in *ServiceAccountSubject) DeepCopy() *ServiceAccountSubject {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ServiceAccountSubject)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Subject) DeepCopyInto(out *Subject) {\n\t*out = *in\n\tif in.User != nil {\n\t\tin, out := &in.User, &out.User\n\t\t*out = new(UserSubject)\n\t\t**out = **in\n\t}\n\tif in.Group != nil {\n\t\tin, out := &in.Group, &out.Group\n\t\t*out = new(GroupSubject)\n\t\t**out = **in\n\t}\n\tif in.ServiceAccount != nil {\n\t\tin, out := &in.ServiceAccount, &out.ServiceAccount\n\t\t*out = new(ServiceAccountSubject)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Subject.\nfunc (in *Subject) DeepCopy() *Subject {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Subject)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *UserSubject) DeepCopyInto(out *UserSubject) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserSubject.\nfunc (in *UserSubject) DeepCopy() *UserSubject {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(UserSubject)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *FlowSchema) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 29\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *FlowSchemaList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 29\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *PriorityLevelConfiguration) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 29\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *PriorityLevelConfigurationList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 29\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta1/doc.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\n// +groupName=flowcontrol.apiserver.k8s.io\n\n// Package v1beta1 holds api types of version v1alpha1 for group \"flowcontrol.apiserver.k8s.io\".\npackage v1beta1 // import \"k8s.io/api/flowcontrol/v1beta1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/flowcontrol/v1beta1/generated.proto\n\npackage v1beta1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *ExemptPriorityLevelConfiguration) Reset()      { *m = ExemptPriorityLevelConfiguration{} }\nfunc (*ExemptPriorityLevelConfiguration) ProtoMessage() {}\nfunc (*ExemptPriorityLevelConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3a5cb22a034fcb2a, []int{0}\n}\nfunc (m *ExemptPriorityLevelConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ExemptPriorityLevelConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ExemptPriorityLevelConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ExemptPriorityLevelConfiguration.Merge(m, src)\n}\nfunc (m *ExemptPriorityLevelConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ExemptPriorityLevelConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_ExemptPriorityLevelConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ExemptPriorityLevelConfiguration proto.InternalMessageInfo\n\nfunc (m *FlowDistinguisherMethod) Reset()      { *m = FlowDistinguisherMethod{} }\nfunc (*FlowDistinguisherMethod) ProtoMessage() {}\nfunc (*FlowDistinguisherMethod) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3a5cb22a034fcb2a, []int{1}\n}\nfunc (m *FlowDistinguisherMethod) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowDistinguisherMethod) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowDistinguisherMethod) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowDistinguisherMethod.Merge(m, src)\n}\nfunc (m *FlowDistinguisherMethod) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowDistinguisherMethod) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowDistinguisherMethod.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowDistinguisherMethod proto.InternalMessageInfo\n\nfunc (m *FlowSchema) Reset()      { *m = FlowSchema{} }\nfunc (*FlowSchema) ProtoMessage() {}\nfunc (*FlowSchema) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3a5cb22a034fcb2a, []int{2}\n}\nfunc (m *FlowSchema) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowSchema) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowSchema) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowSchema.Merge(m, src)\n}\nfunc (m *FlowSchema) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowSchema) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowSchema.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowSchema proto.InternalMessageInfo\n\nfunc (m *FlowSchemaCondition) Reset()      { *m = FlowSchemaCondition{} }\nfunc (*FlowSchemaCondition) ProtoMessage() {}\nfunc (*FlowSchemaCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3a5cb22a034fcb2a, []int{3}\n}\nfunc (m *FlowSchemaCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowSchemaCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowSchemaCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowSchemaCondition.Merge(m, src)\n}\nfunc (m *FlowSchemaCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowSchemaCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowSchemaCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowSchemaCondition proto.InternalMessageInfo\n\nfunc (m *FlowSchemaList) Reset()      { *m = FlowSchemaList{} }\nfunc (*FlowSchemaList) ProtoMessage() {}\nfunc (*FlowSchemaList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3a5cb22a034fcb2a, []int{4}\n}\nfunc (m *FlowSchemaList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowSchemaList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowSchemaList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowSchemaList.Merge(m, src)\n}\nfunc (m *FlowSchemaList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowSchemaList) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowSchemaList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowSchemaList proto.InternalMessageInfo\n\nfunc (m *FlowSchemaSpec) Reset()      { *m = FlowSchemaSpec{} }\nfunc (*FlowSchemaSpec) ProtoMessage() {}\nfunc (*FlowSchemaSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3a5cb22a034fcb2a, []int{5}\n}\nfunc (m *FlowSchemaSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowSchemaSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowSchemaSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowSchemaSpec.Merge(m, src)\n}\nfunc (m *FlowSchemaSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowSchemaSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowSchemaSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowSchemaSpec proto.InternalMessageInfo\n\nfunc (m *FlowSchemaStatus) Reset()      { *m = FlowSchemaStatus{} }\nfunc (*FlowSchemaStatus) ProtoMessage() {}\nfunc (*FlowSchemaStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3a5cb22a034fcb2a, []int{6}\n}\nfunc (m *FlowSchemaStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowSchemaStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowSchemaStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowSchemaStatus.Merge(m, src)\n}\nfunc (m *FlowSchemaStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowSchemaStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowSchemaStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowSchemaStatus proto.InternalMessageInfo\n\nfunc (m *GroupSubject) Reset()      { *m = GroupSubject{} }\nfunc (*GroupSubject) ProtoMessage() {}\nfunc (*GroupSubject) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3a5cb22a034fcb2a, []int{7}\n}\nfunc (m *GroupSubject) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *GroupSubject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *GroupSubject) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_GroupSubject.Merge(m, src)\n}\nfunc (m *GroupSubject) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *GroupSubject) XXX_DiscardUnknown() {\n\txxx_messageInfo_GroupSubject.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_GroupSubject proto.InternalMessageInfo\n\nfunc (m *LimitResponse) Reset()      { *m = LimitResponse{} }\nfunc (*LimitResponse) ProtoMessage() {}\nfunc (*LimitResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3a5cb22a034fcb2a, []int{8}\n}\nfunc (m *LimitResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LimitResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LimitResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LimitResponse.Merge(m, src)\n}\nfunc (m *LimitResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LimitResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_LimitResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LimitResponse proto.InternalMessageInfo\n\nfunc (m *LimitedPriorityLevelConfiguration) Reset()      { *m = LimitedPriorityLevelConfiguration{} }\nfunc (*LimitedPriorityLevelConfiguration) ProtoMessage() {}\nfunc (*LimitedPriorityLevelConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3a5cb22a034fcb2a, []int{9}\n}\nfunc (m *LimitedPriorityLevelConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LimitedPriorityLevelConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LimitedPriorityLevelConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LimitedPriorityLevelConfiguration.Merge(m, src)\n}\nfunc (m *LimitedPriorityLevelConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LimitedPriorityLevelConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_LimitedPriorityLevelConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LimitedPriorityLevelConfiguration proto.InternalMessageInfo\n\nfunc (m *NonResourcePolicyRule) Reset()      { *m = NonResourcePolicyRule{} }\nfunc (*NonResourcePolicyRule) ProtoMessage() {}\nfunc (*NonResourcePolicyRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3a5cb22a034fcb2a, []int{10}\n}\nfunc (m *NonResourcePolicyRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NonResourcePolicyRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NonResourcePolicyRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NonResourcePolicyRule.Merge(m, src)\n}\nfunc (m *NonResourcePolicyRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NonResourcePolicyRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_NonResourcePolicyRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NonResourcePolicyRule proto.InternalMessageInfo\n\nfunc (m *PolicyRulesWithSubjects) Reset()      { *m = PolicyRulesWithSubjects{} }\nfunc (*PolicyRulesWithSubjects) ProtoMessage() {}\nfunc (*PolicyRulesWithSubjects) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3a5cb22a034fcb2a, []int{11}\n}\nfunc (m *PolicyRulesWithSubjects) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PolicyRulesWithSubjects) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PolicyRulesWithSubjects) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PolicyRulesWithSubjects.Merge(m, src)\n}\nfunc (m *PolicyRulesWithSubjects) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PolicyRulesWithSubjects) XXX_DiscardUnknown() {\n\txxx_messageInfo_PolicyRulesWithSubjects.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PolicyRulesWithSubjects proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfiguration) Reset()      { *m = PriorityLevelConfiguration{} }\nfunc (*PriorityLevelConfiguration) ProtoMessage() {}\nfunc (*PriorityLevelConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3a5cb22a034fcb2a, []int{12}\n}\nfunc (m *PriorityLevelConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfiguration.Merge(m, src)\n}\nfunc (m *PriorityLevelConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfiguration proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfigurationCondition) Reset()      { *m = PriorityLevelConfigurationCondition{} }\nfunc (*PriorityLevelConfigurationCondition) ProtoMessage() {}\nfunc (*PriorityLevelConfigurationCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3a5cb22a034fcb2a, []int{13}\n}\nfunc (m *PriorityLevelConfigurationCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfigurationCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfigurationCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfigurationCondition.Merge(m, src)\n}\nfunc (m *PriorityLevelConfigurationCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfigurationCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfigurationCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfigurationCondition proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfigurationList) Reset()      { *m = PriorityLevelConfigurationList{} }\nfunc (*PriorityLevelConfigurationList) ProtoMessage() {}\nfunc (*PriorityLevelConfigurationList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3a5cb22a034fcb2a, []int{14}\n}\nfunc (m *PriorityLevelConfigurationList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfigurationList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfigurationList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfigurationList.Merge(m, src)\n}\nfunc (m *PriorityLevelConfigurationList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfigurationList) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfigurationList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfigurationList proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfigurationReference) Reset()      { *m = PriorityLevelConfigurationReference{} }\nfunc (*PriorityLevelConfigurationReference) ProtoMessage() {}\nfunc (*PriorityLevelConfigurationReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3a5cb22a034fcb2a, []int{15}\n}\nfunc (m *PriorityLevelConfigurationReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfigurationReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfigurationReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfigurationReference.Merge(m, src)\n}\nfunc (m *PriorityLevelConfigurationReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfigurationReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfigurationReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfigurationReference proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfigurationSpec) Reset()      { *m = PriorityLevelConfigurationSpec{} }\nfunc (*PriorityLevelConfigurationSpec) ProtoMessage() {}\nfunc (*PriorityLevelConfigurationSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3a5cb22a034fcb2a, []int{16}\n}\nfunc (m *PriorityLevelConfigurationSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfigurationSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfigurationSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfigurationSpec.Merge(m, src)\n}\nfunc (m *PriorityLevelConfigurationSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfigurationSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfigurationSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfigurationSpec proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfigurationStatus) Reset()      { *m = PriorityLevelConfigurationStatus{} }\nfunc (*PriorityLevelConfigurationStatus) ProtoMessage() {}\nfunc (*PriorityLevelConfigurationStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3a5cb22a034fcb2a, []int{17}\n}\nfunc (m *PriorityLevelConfigurationStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfigurationStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfigurationStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfigurationStatus.Merge(m, src)\n}\nfunc (m *PriorityLevelConfigurationStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfigurationStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfigurationStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfigurationStatus proto.InternalMessageInfo\n\nfunc (m *QueuingConfiguration) Reset()      { *m = QueuingConfiguration{} }\nfunc (*QueuingConfiguration) ProtoMessage() {}\nfunc (*QueuingConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3a5cb22a034fcb2a, []int{18}\n}\nfunc (m *QueuingConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *QueuingConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *QueuingConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_QueuingConfiguration.Merge(m, src)\n}\nfunc (m *QueuingConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *QueuingConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_QueuingConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_QueuingConfiguration proto.InternalMessageInfo\n\nfunc (m *ResourcePolicyRule) Reset()      { *m = ResourcePolicyRule{} }\nfunc (*ResourcePolicyRule) ProtoMessage() {}\nfunc (*ResourcePolicyRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3a5cb22a034fcb2a, []int{19}\n}\nfunc (m *ResourcePolicyRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourcePolicyRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourcePolicyRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourcePolicyRule.Merge(m, src)\n}\nfunc (m *ResourcePolicyRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourcePolicyRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourcePolicyRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourcePolicyRule proto.InternalMessageInfo\n\nfunc (m *ServiceAccountSubject) Reset()      { *m = ServiceAccountSubject{} }\nfunc (*ServiceAccountSubject) ProtoMessage() {}\nfunc (*ServiceAccountSubject) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3a5cb22a034fcb2a, []int{20}\n}\nfunc (m *ServiceAccountSubject) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ServiceAccountSubject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ServiceAccountSubject) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServiceAccountSubject.Merge(m, src)\n}\nfunc (m *ServiceAccountSubject) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ServiceAccountSubject) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServiceAccountSubject.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServiceAccountSubject proto.InternalMessageInfo\n\nfunc (m *Subject) Reset()      { *m = Subject{} }\nfunc (*Subject) ProtoMessage() {}\nfunc (*Subject) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3a5cb22a034fcb2a, []int{21}\n}\nfunc (m *Subject) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Subject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Subject) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Subject.Merge(m, src)\n}\nfunc (m *Subject) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Subject) XXX_DiscardUnknown() {\n\txxx_messageInfo_Subject.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Subject proto.InternalMessageInfo\n\nfunc (m *UserSubject) Reset()      { *m = UserSubject{} }\nfunc (*UserSubject) ProtoMessage() {}\nfunc (*UserSubject) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3a5cb22a034fcb2a, []int{22}\n}\nfunc (m *UserSubject) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *UserSubject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *UserSubject) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_UserSubject.Merge(m, src)\n}\nfunc (m *UserSubject) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *UserSubject) XXX_DiscardUnknown() {\n\txxx_messageInfo_UserSubject.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_UserSubject proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*ExemptPriorityLevelConfiguration)(nil), \"k8s.io.api.flowcontrol.v1beta1.ExemptPriorityLevelConfiguration\")\n\tproto.RegisterType((*FlowDistinguisherMethod)(nil), \"k8s.io.api.flowcontrol.v1beta1.FlowDistinguisherMethod\")\n\tproto.RegisterType((*FlowSchema)(nil), \"k8s.io.api.flowcontrol.v1beta1.FlowSchema\")\n\tproto.RegisterType((*FlowSchemaCondition)(nil), \"k8s.io.api.flowcontrol.v1beta1.FlowSchemaCondition\")\n\tproto.RegisterType((*FlowSchemaList)(nil), \"k8s.io.api.flowcontrol.v1beta1.FlowSchemaList\")\n\tproto.RegisterType((*FlowSchemaSpec)(nil), \"k8s.io.api.flowcontrol.v1beta1.FlowSchemaSpec\")\n\tproto.RegisterType((*FlowSchemaStatus)(nil), \"k8s.io.api.flowcontrol.v1beta1.FlowSchemaStatus\")\n\tproto.RegisterType((*GroupSubject)(nil), \"k8s.io.api.flowcontrol.v1beta1.GroupSubject\")\n\tproto.RegisterType((*LimitResponse)(nil), \"k8s.io.api.flowcontrol.v1beta1.LimitResponse\")\n\tproto.RegisterType((*LimitedPriorityLevelConfiguration)(nil), \"k8s.io.api.flowcontrol.v1beta1.LimitedPriorityLevelConfiguration\")\n\tproto.RegisterType((*NonResourcePolicyRule)(nil), \"k8s.io.api.flowcontrol.v1beta1.NonResourcePolicyRule\")\n\tproto.RegisterType((*PolicyRulesWithSubjects)(nil), \"k8s.io.api.flowcontrol.v1beta1.PolicyRulesWithSubjects\")\n\tproto.RegisterType((*PriorityLevelConfiguration)(nil), \"k8s.io.api.flowcontrol.v1beta1.PriorityLevelConfiguration\")\n\tproto.RegisterType((*PriorityLevelConfigurationCondition)(nil), \"k8s.io.api.flowcontrol.v1beta1.PriorityLevelConfigurationCondition\")\n\tproto.RegisterType((*PriorityLevelConfigurationList)(nil), \"k8s.io.api.flowcontrol.v1beta1.PriorityLevelConfigurationList\")\n\tproto.RegisterType((*PriorityLevelConfigurationReference)(nil), \"k8s.io.api.flowcontrol.v1beta1.PriorityLevelConfigurationReference\")\n\tproto.RegisterType((*PriorityLevelConfigurationSpec)(nil), \"k8s.io.api.flowcontrol.v1beta1.PriorityLevelConfigurationSpec\")\n\tproto.RegisterType((*PriorityLevelConfigurationStatus)(nil), \"k8s.io.api.flowcontrol.v1beta1.PriorityLevelConfigurationStatus\")\n\tproto.RegisterType((*QueuingConfiguration)(nil), \"k8s.io.api.flowcontrol.v1beta1.QueuingConfiguration\")\n\tproto.RegisterType((*ResourcePolicyRule)(nil), \"k8s.io.api.flowcontrol.v1beta1.ResourcePolicyRule\")\n\tproto.RegisterType((*ServiceAccountSubject)(nil), \"k8s.io.api.flowcontrol.v1beta1.ServiceAccountSubject\")\n\tproto.RegisterType((*Subject)(nil), \"k8s.io.api.flowcontrol.v1beta1.Subject\")\n\tproto.RegisterType((*UserSubject)(nil), \"k8s.io.api.flowcontrol.v1beta1.UserSubject\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/flowcontrol/v1beta1/generated.proto\", fileDescriptor_3a5cb22a034fcb2a)\n}\n\nvar fileDescriptor_3a5cb22a034fcb2a = []byte{\n\t// 1599 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x58, 0xcf, 0x73, 0xdb, 0xc4,\n\t0x17, 0x8f, 0x1c, 0x3b, 0x89, 0x5f, 0x7e, 0x76, 0xd3, 0x4c, 0xfc, 0x4d, 0xbf, 0x63, 0xa7, 0x62,\n\t0x86, 0x02, 0x6d, 0xe5, 0xb6, 0xb4, 0xb4, 0xc0, 0xf0, 0x23, 0x4a, 0x4b, 0x29, 0x4d, 0xd2, 0x74,\n\t0xd3, 0x42, 0xa7, 0x74, 0x86, 0x2a, 0xf2, 0xc6, 0x56, 0x63, 0xfd, 0xa8, 0x56, 0x4a, 0x08, 0xbd,\n\t0x30, 0xfc, 0x05, 0x9c, 0xe1, 0xc8, 0x81, 0x13, 0x17, 0xae, 0x1c, 0x38, 0xd2, 0xe1, 0xd4, 0x63,\n\t0x4f, 0x86, 0x9a, 0x13, 0xff, 0x01, 0x74, 0x86, 0x19, 0x66, 0x57, 0x2b, 0xc9, 0xb2, 0x2d, 0xcb,\n\t0xd3, 0xce, 0xf4, 0xc4, 0x2d, 0x7a, 0xfb, 0x79, 0x9f, 0xb7, 0xef, 0xed, 0xfb, 0xe5, 0x80, 0xb2,\n\t0x7b, 0x81, 0x2a, 0x86, 0x5d, 0xd5, 0x1c, 0xa3, 0xba, 0xd3, 0xb4, 0xf7, 0x75, 0xdb, 0xf2, 0x5c,\n\t0xbb, 0x59, 0xdd, 0x3b, 0xbd, 0x4d, 0x3c, 0xed, 0x74, 0xb5, 0x4e, 0x2c, 0xe2, 0x6a, 0x1e, 0xa9,\n\t0x29, 0x8e, 0x6b, 0x7b, 0x36, 0x2a, 0x07, 0x78, 0x45, 0x73, 0x0c, 0xa5, 0x03, 0xaf, 0x08, 0xfc,\n\t0xd2, 0xc9, 0xba, 0xe1, 0x35, 0xfc, 0x6d, 0x45, 0xb7, 0xcd, 0x6a, 0xdd, 0xae, 0xdb, 0x55, 0xae,\n\t0xb6, 0xed, 0xef, 0xf0, 0x2f, 0xfe, 0xc1, 0xff, 0x0a, 0xe8, 0x96, 0xce, 0xc6, 0xe6, 0x4d, 0x4d,\n\t0x6f, 0x18, 0x16, 0x71, 0x0f, 0xaa, 0xce, 0x6e, 0x9d, 0x09, 0x68, 0xd5, 0x24, 0x9e, 0x56, 0xdd,\n\t0xeb, 0xb9, 0xc4, 0x52, 0x35, 0x4d, 0xcb, 0xf5, 0x2d, 0xcf, 0x30, 0x49, 0x8f, 0xc2, 0x1b, 0x59,\n\t0x0a, 0x54, 0x6f, 0x10, 0x53, 0xeb, 0xd6, 0x93, 0x7f, 0x92, 0x60, 0xf9, 0xd2, 0xe7, 0xc4, 0x74,\n\t0xbc, 0x4d, 0xd7, 0xb0, 0x5d, 0xc3, 0x3b, 0x58, 0x23, 0x7b, 0xa4, 0xb9, 0x6a, 0x5b, 0x3b, 0x46,\n\t0xdd, 0x77, 0x35, 0xcf, 0xb0, 0x2d, 0x74, 0x0b, 0x4a, 0x96, 0x6d, 0x1a, 0x96, 0xc6, 0xe4, 0xba,\n\t0xef, 0xba, 0xc4, 0xd2, 0x0f, 0xb6, 0x1a, 0x9a, 0x4b, 0x68, 0x49, 0x5a, 0x96, 0x5e, 0x29, 0xa8,\n\t0xff, 0x6f, 0xb7, 0x2a, 0xa5, 0x8d, 0x14, 0x0c, 0x4e, 0xd5, 0x46, 0xef, 0xc0, 0x6c, 0x93, 0x58,\n\t0x35, 0x6d, 0xbb, 0x49, 0x36, 0x89, 0xab, 0x13, 0xcb, 0x2b, 0xe5, 0x38, 0xe1, 0x7c, 0xbb, 0x55,\n\t0x99, 0x5d, 0x4b, 0x1e, 0xe1, 0x6e, 0xac, 0x7c, 0x1b, 0x16, 0x3f, 0x68, 0xda, 0xfb, 0x17, 0x0d,\n\t0xea, 0x19, 0x56, 0xdd, 0x37, 0x68, 0x83, 0xb8, 0xeb, 0xc4, 0x6b, 0xd8, 0x35, 0xf4, 0x1e, 0xe4,\n\t0xbd, 0x03, 0x87, 0xf0, 0xfb, 0x15, 0xd5, 0xe3, 0x0f, 0x5b, 0x95, 0x91, 0x76, 0xab, 0x92, 0xbf,\n\t0x71, 0xe0, 0x90, 0xa7, 0xad, 0xca, 0x91, 0x14, 0x35, 0x76, 0x8c, 0xb9, 0xa2, 0xfc, 0x4d, 0x0e,\n\t0x80, 0xa1, 0xb6, 0x78, 0xe0, 0xd0, 0x5d, 0x98, 0x60, 0x8f, 0x55, 0xd3, 0x3c, 0x8d, 0x73, 0x4e,\n\t0x9e, 0x39, 0xa5, 0xc4, 0x99, 0x12, 0xc5, 0x5c, 0x71, 0x76, 0xeb, 0x4c, 0x40, 0x15, 0x86, 0x56,\n\t0xf6, 0x4e, 0x2b, 0xd7, 0xb6, 0xef, 0x11, 0xdd, 0x5b, 0x27, 0x9e, 0xa6, 0x22, 0x71, 0x0b, 0x88,\n\t0x65, 0x38, 0x62, 0x45, 0x9b, 0x90, 0xa7, 0x0e, 0xd1, 0x79, 0x00, 0x26, 0xcf, 0x28, 0xca, 0xe0,\n\t0x3c, 0x54, 0xe2, 0xbb, 0x6d, 0x39, 0x44, 0x57, 0xa7, 0x42, 0x0f, 0xd9, 0x17, 0xe6, 0x4c, 0xe8,\n\t0x16, 0x8c, 0x51, 0x4f, 0xf3, 0x7c, 0x5a, 0x1a, 0xed, 0xb9, 0x71, 0x16, 0x27, 0xd7, 0x53, 0x67,\n\t0x04, 0xeb, 0x58, 0xf0, 0x8d, 0x05, 0x9f, 0xfc, 0x38, 0x07, 0xf3, 0x31, 0x78, 0xd5, 0xb6, 0x6a,\n\t0x06, 0xcf, 0x94, 0xb7, 0x13, 0x51, 0x3f, 0xd6, 0x15, 0xf5, 0xc5, 0x3e, 0x2a, 0x71, 0xc4, 0xd1,\n\t0x9b, 0xd1, 0x75, 0x73, 0x5c, 0xfd, 0x68, 0xd2, 0xf8, 0xd3, 0x56, 0x65, 0x36, 0x52, 0x4b, 0xde,\n\t0x07, 0xed, 0x01, 0x6a, 0x6a, 0xd4, 0xbb, 0xe1, 0x6a, 0x16, 0x0d, 0x68, 0x0d, 0x93, 0x08, 0xaf,\n\t0x5f, 0x1b, 0xee, 0x9d, 0x98, 0x86, 0xba, 0x24, 0x4c, 0xa2, 0xb5, 0x1e, 0x36, 0xdc, 0xc7, 0x02,\n\t0x7a, 0x19, 0xc6, 0x5c, 0xa2, 0x51, 0xdb, 0x2a, 0xe5, 0xf9, 0x95, 0xa3, 0x78, 0x61, 0x2e, 0xc5,\n\t0xe2, 0x14, 0xbd, 0x0a, 0xe3, 0x26, 0xa1, 0x54, 0xab, 0x93, 0x52, 0x81, 0x03, 0x67, 0x05, 0x70,\n\t0x7c, 0x3d, 0x10, 0xe3, 0xf0, 0x5c, 0xfe, 0x59, 0x82, 0x99, 0x38, 0x4e, 0x6b, 0x06, 0xf5, 0xd0,\n\t0x9d, 0x9e, 0xdc, 0x53, 0x86, 0xf3, 0x89, 0x69, 0xf3, 0xcc, 0x9b, 0x13, 0xe6, 0x26, 0x42, 0x49,\n\t0x47, 0xde, 0x5d, 0x83, 0x82, 0xe1, 0x11, 0x93, 0x45, 0x7d, 0xb4, 0x2b, 0x5c, 0x19, 0x49, 0xa2,\n\t0x4e, 0x0b, 0xda, 0xc2, 0x15, 0x46, 0x80, 0x03, 0x1e, 0xf9, 0xcf, 0xd1, 0x4e, 0x0f, 0x58, 0x3e,\n\t0xa2, 0xef, 0x25, 0x58, 0x72, 0x52, 0x1b, 0x8c, 0x70, 0x6a, 0x35, 0xcb, 0x72, 0x7a, 0x8b, 0xc2,\n\t0x64, 0x87, 0xb0, 0xbe, 0x42, 0x54, 0x59, 0x5c, 0x69, 0x69, 0x00, 0x78, 0xc0, 0x55, 0xd0, 0x47,\n\t0x80, 0x4c, 0xcd, 0x63, 0x11, 0xad, 0x6f, 0xba, 0x44, 0x27, 0x35, 0xc6, 0x2a, 0x9a, 0x52, 0x94,\n\t0x1d, 0xeb, 0x3d, 0x08, 0xdc, 0x47, 0x0b, 0x7d, 0x25, 0xc1, 0x7c, 0xad, 0xb7, 0xc9, 0x88, 0xbc,\n\t0x3c, 0x3f, 0x4c, 0xa0, 0xfb, 0xf4, 0x28, 0x75, 0xb1, 0xdd, 0xaa, 0xcc, 0xf7, 0x39, 0xc0, 0xfd,\n\t0x8c, 0xa1, 0x3b, 0x50, 0x70, 0xfd, 0x26, 0xa1, 0xa5, 0x3c, 0x7f, 0xde, 0x4c, 0xab, 0x9b, 0x76,\n\t0xd3, 0xd0, 0x0f, 0x30, 0x53, 0xf9, 0xc4, 0xf0, 0x1a, 0x5b, 0x3e, 0xef, 0x55, 0x34, 0x7e, 0x6b,\n\t0x7e, 0x84, 0x03, 0x52, 0xf9, 0x01, 0xcc, 0x75, 0x37, 0x0d, 0x54, 0x07, 0xd0, 0xc3, 0x3a, 0x65,\n\t0x03, 0x82, 0x99, 0x7d, 0x7d, 0xf8, 0xac, 0x8a, 0x6a, 0x3c, 0xee, 0x97, 0x91, 0x88, 0xe2, 0x0e,\n\t0x6a, 0xf9, 0x14, 0x4c, 0x5d, 0x76, 0x6d, 0xdf, 0x11, 0x77, 0x44, 0xcb, 0x90, 0xb7, 0x34, 0x33,\n\t0xec, 0x3e, 0x51, 0x47, 0xdc, 0xd0, 0x4c, 0x82, 0xf9, 0x89, 0xfc, 0x9d, 0x04, 0xd3, 0x6b, 0x86,\n\t0x69, 0x78, 0x98, 0x50, 0xc7, 0xb6, 0x28, 0x41, 0xe7, 0x12, 0x1d, 0xeb, 0x68, 0x57, 0xc7, 0x3a,\n\t0x94, 0x00, 0x77, 0xf4, 0xaa, 0x4f, 0x61, 0xfc, 0xbe, 0x4f, 0x7c, 0xc3, 0xaa, 0x8b, 0x7e, 0x7d,\n\t0x36, 0xcb, 0xc1, 0xeb, 0x01, 0x3c, 0x91, 0x6d, 0xea, 0x24, 0x6b, 0x01, 0xe2, 0x04, 0x87, 0x8c,\n\t0xf2, 0x3f, 0x39, 0x38, 0xca, 0x0d, 0x93, 0xda, 0x80, 0xa9, 0x7c, 0x07, 0x4a, 0x1a, 0xa5, 0xbe,\n\t0x4b, 0x6a, 0x69, 0x53, 0x79, 0x59, 0x78, 0x53, 0x5a, 0x49, 0xc1, 0xe1, 0x54, 0x06, 0x74, 0x0f,\n\t0xa6, 0x9b, 0x9d, 0xbe, 0x0b, 0x37, 0x4f, 0x66, 0xb9, 0x99, 0x08, 0x98, 0xba, 0x20, 0x6e, 0x90,\n\t0x0c, 0x3a, 0x4e, 0x52, 0xf7, 0xdb, 0x02, 0x46, 0x87, 0xdf, 0x02, 0xd0, 0x35, 0x58, 0xd8, 0xb6,\n\t0x5d, 0xd7, 0xde, 0x37, 0xac, 0x3a, 0xb7, 0x13, 0x92, 0xe4, 0x39, 0xc9, 0xff, 0xda, 0xad, 0xca,\n\t0x82, 0xda, 0x0f, 0x80, 0xfb, 0xeb, 0xc9, 0xfb, 0xb0, 0xb0, 0xc1, 0x7a, 0x0a, 0xb5, 0x7d, 0x57,\n\t0x27, 0x71, 0x41, 0xa0, 0x0a, 0x14, 0xf6, 0x88, 0xbb, 0x1d, 0x24, 0x75, 0x51, 0x2d, 0xb2, 0x72,\n\t0xf8, 0x98, 0x09, 0x70, 0x20, 0x67, 0x9e, 0x58, 0xb1, 0xe6, 0x4d, 0xbc, 0x46, 0x4b, 0x63, 0x1c,\n\t0xca, 0x3d, 0xd9, 0x48, 0x1e, 0xe1, 0x6e, 0xac, 0xdc, 0xca, 0xc1, 0x62, 0x4a, 0xfd, 0xa1, 0x9b,\n\t0x30, 0x41, 0xc5, 0xdf, 0xa2, 0xa6, 0x8e, 0x65, 0xbd, 0x85, 0xd0, 0x8d, 0xbb, 0x7f, 0x48, 0x86,\n\t0x23, 0x2a, 0x64, 0xc3, 0xb4, 0x2b, 0xae, 0xc0, 0x6d, 0x8a, 0x29, 0x70, 0x26, 0x8b, 0xbb, 0x37,\n\t0x3a, 0xf1, 0x63, 0xe3, 0x4e, 0x42, 0x9c, 0xe4, 0x47, 0x0f, 0x60, 0xae, 0xc3, 0xed, 0xc0, 0xe6,\n\t0x28, 0xb7, 0x79, 0x2e, 0xcb, 0x66, 0xdf, 0x47, 0x51, 0x4b, 0xc2, 0xec, 0xdc, 0x46, 0x17, 0x2d,\n\t0xee, 0x31, 0x24, 0xff, 0x9a, 0x83, 0x01, 0x83, 0xe1, 0x05, 0x2c, 0x79, 0x77, 0x13, 0x4b, 0xde,\n\t0xbb, 0xcf, 0x3e, 0xf1, 0x52, 0x97, 0xbe, 0x46, 0xd7, 0xd2, 0xf7, 0xfe, 0x73, 0xd8, 0x18, 0xbc,\n\t0x04, 0xfe, 0x95, 0x83, 0x97, 0xd2, 0x95, 0xe3, 0xa5, 0xf0, 0x6a, 0xa2, 0xc5, 0x9e, 0xef, 0x6a,\n\t0xb1, 0xc7, 0x86, 0xa0, 0xf8, 0x6f, 0x49, 0xec, 0x5a, 0x12, 0x7f, 0x93, 0xa0, 0x9c, 0x1e, 0xb7,\n\t0x17, 0xb0, 0x34, 0x7e, 0x96, 0x5c, 0x1a, 0xdf, 0x7a, 0xf6, 0x24, 0x4b, 0x59, 0x22, 0x2f, 0x0f,\n\t0xca, 0xad, 0x68, 0xdd, 0x1b, 0x62, 0xe4, 0xff, 0x90, 0x1b, 0x14, 0x2a, 0xbe, 0x9d, 0x66, 0xfc,\n\t0x6a, 0x49, 0x68, 0x5f, 0xb2, 0xd8, 0xe8, 0x31, 0xd9, 0xf4, 0x08, 0x12, 0xb2, 0x01, 0xe3, 0xcd,\n\t0x60, 0x56, 0x8b, 0xa2, 0x5e, 0x19, 0x6a, 0x44, 0x0e, 0x1a, 0xed, 0xc1, 0x5a, 0x20, 0x60, 0x38,\n\t0xa4, 0x47, 0x35, 0x18, 0x23, 0xfc, 0xa7, 0xfa, 0xb0, 0x95, 0x9d, 0xf5, 0xc3, 0x5e, 0x05, 0x96,\n\t0x85, 0x01, 0x0a, 0x0b, 0x6e, 0xf9, 0x5b, 0x09, 0x96, 0xb3, 0x5a, 0x02, 0xda, 0xef, 0xb3, 0xe2,\n\t0x3d, 0xc7, 0xfa, 0x3e, 0xfc, 0xca, 0xf7, 0xa3, 0x04, 0x87, 0xfb, 0x6d, 0x52, 0xac, 0xc8, 0xd8,\n\t0xfa, 0x14, 0xed, 0x3e, 0x51, 0x91, 0x5d, 0xe7, 0x52, 0x2c, 0x4e, 0xd1, 0x09, 0x98, 0x68, 0x68,\n\t0x56, 0x6d, 0xcb, 0xf8, 0x22, 0xdc, 0xea, 0xa3, 0x34, 0xff, 0x50, 0xc8, 0x71, 0x84, 0x40, 0x17,\n\t0x61, 0x8e, 0xeb, 0xad, 0x11, 0xab, 0xee, 0x35, 0xf8, 0x8b, 0x88, 0xd5, 0x24, 0x9a, 0x3a, 0xd7,\n\t0xbb, 0xce, 0x71, 0x8f, 0x86, 0xfc, 0xb7, 0x04, 0xe8, 0x59, 0xb6, 0x89, 0xe3, 0x50, 0xd4, 0x1c,\n\t0x83, 0xaf, 0xb8, 0x41, 0xa1, 0x15, 0xd5, 0xe9, 0x76, 0xab, 0x52, 0x5c, 0xd9, 0xbc, 0x12, 0x08,\n\t0x71, 0x7c, 0xce, 0xc0, 0xe1, 0xa0, 0x0d, 0x06, 0xaa, 0x00, 0x87, 0x86, 0x29, 0x8e, 0xcf, 0xd1,\n\t0x05, 0x98, 0xd2, 0x9b, 0x3e, 0xf5, 0x88, 0xbb, 0xa5, 0xdb, 0x0e, 0xe1, 0x8d, 0x69, 0x42, 0x3d,\n\t0x2c, 0x7c, 0x9a, 0x5a, 0xed, 0x38, 0xc3, 0x09, 0x24, 0x52, 0x00, 0x58, 0x59, 0x51, 0x47, 0x63,\n\t0x76, 0x0a, 0xdc, 0xce, 0x0c, 0x7b, 0xb0, 0x8d, 0x48, 0x8a, 0x3b, 0x10, 0xf2, 0x3d, 0x58, 0xd8,\n\t0x22, 0xee, 0x9e, 0xa1, 0x93, 0x15, 0x5d, 0xb7, 0x7d, 0xcb, 0x0b, 0x97, 0xf5, 0x2a, 0x14, 0x23,\n\t0x98, 0xa8, 0xbc, 0x43, 0xc2, 0x7e, 0x31, 0xe2, 0xc2, 0x31, 0x26, 0x2a, 0xf5, 0x5c, 0x6a, 0xa9,\n\t0xff, 0x92, 0x83, 0xf1, 0x98, 0x3e, 0xbf, 0x6b, 0x58, 0x35, 0xc1, 0x7c, 0x24, 0x44, 0x5f, 0x35,\n\t0xac, 0xda, 0xd3, 0x56, 0x65, 0x52, 0xc0, 0xd8, 0x27, 0xe6, 0x40, 0x74, 0x05, 0xf2, 0x3e, 0x25,\n\t0xae, 0x28, 0xe2, 0xe3, 0x59, 0xc9, 0x7c, 0x93, 0x12, 0x37, 0xdc, 0xaf, 0x26, 0x18, 0x33, 0x13,\n\t0x60, 0x4e, 0x81, 0xd6, 0xa1, 0x50, 0x67, 0x8f, 0x22, 0xea, 0xf4, 0x44, 0x16, 0x57, 0xe7, 0x8f,\n\t0x98, 0x20, 0x0d, 0xb8, 0x04, 0x07, 0x2c, 0xe8, 0x3e, 0xcc, 0xd0, 0x44, 0x08, 0xf9, 0x73, 0x0d,\n\t0xb1, 0x2f, 0xf5, 0x0d, 0xbc, 0x8a, 0xda, 0xad, 0xca, 0x4c, 0xf2, 0x08, 0x77, 0x19, 0x90, 0xab,\n\t0x30, 0xd9, 0xe1, 0x60, 0x76, 0x97, 0x55, 0x2f, 0x3e, 0x7c, 0x52, 0x1e, 0x79, 0xf4, 0xa4, 0x3c,\n\t0xf2, 0xf8, 0x49, 0x79, 0xe4, 0xcb, 0x76, 0x59, 0x7a, 0xd8, 0x2e, 0x4b, 0x8f, 0xda, 0x65, 0xe9,\n\t0x71, 0xbb, 0x2c, 0xfd, 0xde, 0x2e, 0x4b, 0x5f, 0xff, 0x51, 0x1e, 0xb9, 0x5d, 0x1e, 0xfc, 0xbf,\n\t0xd8, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x24, 0x42, 0x4c, 0x0f, 0xac, 0x15, 0x00, 0x00,\n}\n\nfunc (m *ExemptPriorityLevelConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ExemptPriorityLevelConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ExemptPriorityLevelConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.LendablePercent != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.LendablePercent))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif m.NominalConcurrencyShares != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.NominalConcurrencyShares))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowDistinguisherMethod) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowDistinguisherMethod) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowDistinguisherMethod) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowSchema) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowSchema) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowSchema) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowSchemaCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowSchemaCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowSchemaCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowSchemaList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowSchemaList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowSchemaList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowSchemaSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowSchemaSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowSchemaSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Rules) > 0 {\n\t\tfor iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Rules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif m.DistinguisherMethod != nil {\n\t\t{\n\t\t\tsize, err := m.DistinguisherMethod.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MatchingPrecedence))\n\ti--\n\tdAtA[i] = 0x10\n\t{\n\t\tsize, err := m.PriorityLevelConfiguration.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowSchemaStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowSchemaStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowSchemaStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *GroupSubject) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GroupSubject) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *GroupSubject) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LimitResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LimitResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LimitResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Queuing != nil {\n\t\t{\n\t\t\tsize, err := m.Queuing.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LimitedPriorityLevelConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LimitedPriorityLevelConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LimitedPriorityLevelConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.BorrowingLimitPercent != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.BorrowingLimitPercent))\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif m.LendablePercent != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.LendablePercent))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\t{\n\t\tsize, err := m.LimitResponse.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.AssuredConcurrencyShares))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NonResourcePolicyRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NonResourcePolicyRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NonResourcePolicyRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.NonResourceURLs) > 0 {\n\t\tfor iNdEx := len(m.NonResourceURLs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.NonResourceURLs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.NonResourceURLs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.NonResourceURLs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\tif len(m.Verbs) > 0 {\n\t\tfor iNdEx := len(m.Verbs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Verbs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Verbs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verbs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PolicyRulesWithSubjects) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PolicyRulesWithSubjects) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PolicyRulesWithSubjects) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.NonResourceRules) > 0 {\n\t\tfor iNdEx := len(m.NonResourceRules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.NonResourceRules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.ResourceRules) > 0 {\n\t\tfor iNdEx := len(m.ResourceRules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ResourceRules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Subjects) > 0 {\n\t\tfor iNdEx := len(m.Subjects) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Subjects[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfigurationCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfigurationCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfigurationCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfigurationList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfigurationList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfigurationList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfigurationReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfigurationReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfigurationReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfigurationSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfigurationSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfigurationSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Exempt != nil {\n\t\t{\n\t\t\tsize, err := m.Exempt.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Limited != nil {\n\t\t{\n\t\t\tsize, err := m.Limited.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfigurationStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfigurationStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfigurationStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *QueuingConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *QueuingConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *QueuingConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.QueueLengthLimit))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.HandSize))\n\ti--\n\tdAtA[i] = 0x10\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Queues))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourcePolicyRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourcePolicyRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourcePolicyRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Namespaces) > 0 {\n\t\tfor iNdEx := len(m.Namespaces) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Namespaces[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Namespaces[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespaces[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\ti--\n\tif m.ClusterScope {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x20\n\tif len(m.Resources) > 0 {\n\t\tfor iNdEx := len(m.Resources) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Resources[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Resources[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Resources[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.APIGroups) > 0 {\n\t\tfor iNdEx := len(m.APIGroups) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.APIGroups[iNdEx])\n\t\t\tcopy(dAtA[i:], m.APIGroups[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIGroups[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Verbs) > 0 {\n\t\tfor iNdEx := len(m.Verbs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Verbs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Verbs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verbs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ServiceAccountSubject) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServiceAccountSubject) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ServiceAccountSubject) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Namespace)\n\tcopy(dAtA[i:], m.Namespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Subject) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Subject) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Subject) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ServiceAccount != nil {\n\t\t{\n\t\t\tsize, err := m.ServiceAccount.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Group != nil {\n\t\t{\n\t\t\tsize, err := m.Group.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.User != nil {\n\t\t{\n\t\t\tsize, err := m.User.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *UserSubject) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *UserSubject) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *UserSubject) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *ExemptPriorityLevelConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.NominalConcurrencyShares != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.NominalConcurrencyShares))\n\t}\n\tif m.LendablePercent != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.LendablePercent))\n\t}\n\treturn n\n}\n\nfunc (m *FlowDistinguisherMethod) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *FlowSchema) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *FlowSchemaCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *FlowSchemaList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *FlowSchemaSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.PriorityLevelConfiguration.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.MatchingPrecedence))\n\tif m.DistinguisherMethod != nil {\n\t\tl = m.DistinguisherMethod.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.Rules) > 0 {\n\t\tfor _, e := range m.Rules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *FlowSchemaStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *GroupSubject) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *LimitResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Queuing != nil {\n\t\tl = m.Queuing.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *LimitedPriorityLevelConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.AssuredConcurrencyShares))\n\tl = m.LimitResponse.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.LendablePercent != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.LendablePercent))\n\t}\n\tif m.BorrowingLimitPercent != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.BorrowingLimitPercent))\n\t}\n\treturn n\n}\n\nfunc (m *NonResourcePolicyRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Verbs) > 0 {\n\t\tfor _, s := range m.Verbs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.NonResourceURLs) > 0 {\n\t\tfor _, s := range m.NonResourceURLs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PolicyRulesWithSubjects) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Subjects) > 0 {\n\t\tfor _, e := range m.Subjects {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.ResourceRules) > 0 {\n\t\tfor _, e := range m.ResourceRules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.NonResourceRules) > 0 {\n\t\tfor _, e := range m.NonResourceRules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PriorityLevelConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PriorityLevelConfigurationCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PriorityLevelConfigurationList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PriorityLevelConfigurationReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PriorityLevelConfigurationSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Limited != nil {\n\t\tl = m.Limited.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Exempt != nil {\n\t\tl = m.Exempt.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PriorityLevelConfigurationStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *QueuingConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Queues))\n\tn += 1 + sovGenerated(uint64(m.HandSize))\n\tn += 1 + sovGenerated(uint64(m.QueueLengthLimit))\n\treturn n\n}\n\nfunc (m *ResourcePolicyRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Verbs) > 0 {\n\t\tfor _, s := range m.Verbs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.APIGroups) > 0 {\n\t\tfor _, s := range m.APIGroups {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Resources) > 0 {\n\t\tfor _, s := range m.Resources {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tn += 2\n\tif len(m.Namespaces) > 0 {\n\t\tfor _, s := range m.Namespaces {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ServiceAccountSubject) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Namespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *Subject) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.User != nil {\n\t\tl = m.User.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Group != nil {\n\t\tl = m.Group.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ServiceAccount != nil {\n\t\tl = m.ServiceAccount.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *UserSubject) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *ExemptPriorityLevelConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ExemptPriorityLevelConfiguration{`,\n\t\t`NominalConcurrencyShares:` + valueToStringGenerated(this.NominalConcurrencyShares) + `,`,\n\t\t`LendablePercent:` + valueToStringGenerated(this.LendablePercent) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowDistinguisherMethod) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&FlowDistinguisherMethod{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowSchema) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&FlowSchema{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"FlowSchemaSpec\", \"FlowSchemaSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"FlowSchemaStatus\", \"FlowSchemaStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowSchemaCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&FlowSchemaCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowSchemaList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]FlowSchema{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"FlowSchema\", \"FlowSchema\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&FlowSchemaList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowSchemaSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForRules := \"[]PolicyRulesWithSubjects{\"\n\tfor _, f := range this.Rules {\n\t\trepeatedStringForRules += strings.Replace(strings.Replace(f.String(), \"PolicyRulesWithSubjects\", \"PolicyRulesWithSubjects\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRules += \"}\"\n\ts := strings.Join([]string{`&FlowSchemaSpec{`,\n\t\t`PriorityLevelConfiguration:` + strings.Replace(strings.Replace(this.PriorityLevelConfiguration.String(), \"PriorityLevelConfigurationReference\", \"PriorityLevelConfigurationReference\", 1), `&`, ``, 1) + `,`,\n\t\t`MatchingPrecedence:` + fmt.Sprintf(\"%v\", this.MatchingPrecedence) + `,`,\n\t\t`DistinguisherMethod:` + strings.Replace(this.DistinguisherMethod.String(), \"FlowDistinguisherMethod\", \"FlowDistinguisherMethod\", 1) + `,`,\n\t\t`Rules:` + repeatedStringForRules + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowSchemaStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]FlowSchemaCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"FlowSchemaCondition\", \"FlowSchemaCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&FlowSchemaStatus{`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *GroupSubject) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&GroupSubject{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LimitResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LimitResponse{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Queuing:` + strings.Replace(this.Queuing.String(), \"QueuingConfiguration\", \"QueuingConfiguration\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LimitedPriorityLevelConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LimitedPriorityLevelConfiguration{`,\n\t\t`AssuredConcurrencyShares:` + fmt.Sprintf(\"%v\", this.AssuredConcurrencyShares) + `,`,\n\t\t`LimitResponse:` + strings.Replace(strings.Replace(this.LimitResponse.String(), \"LimitResponse\", \"LimitResponse\", 1), `&`, ``, 1) + `,`,\n\t\t`LendablePercent:` + valueToStringGenerated(this.LendablePercent) + `,`,\n\t\t`BorrowingLimitPercent:` + valueToStringGenerated(this.BorrowingLimitPercent) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NonResourcePolicyRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NonResourcePolicyRule{`,\n\t\t`Verbs:` + fmt.Sprintf(\"%v\", this.Verbs) + `,`,\n\t\t`NonResourceURLs:` + fmt.Sprintf(\"%v\", this.NonResourceURLs) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PolicyRulesWithSubjects) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForSubjects := \"[]Subject{\"\n\tfor _, f := range this.Subjects {\n\t\trepeatedStringForSubjects += strings.Replace(strings.Replace(f.String(), \"Subject\", \"Subject\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForSubjects += \"}\"\n\trepeatedStringForResourceRules := \"[]ResourcePolicyRule{\"\n\tfor _, f := range this.ResourceRules {\n\t\trepeatedStringForResourceRules += strings.Replace(strings.Replace(f.String(), \"ResourcePolicyRule\", \"ResourcePolicyRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForResourceRules += \"}\"\n\trepeatedStringForNonResourceRules := \"[]NonResourcePolicyRule{\"\n\tfor _, f := range this.NonResourceRules {\n\t\trepeatedStringForNonResourceRules += strings.Replace(strings.Replace(f.String(), \"NonResourcePolicyRule\", \"NonResourcePolicyRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForNonResourceRules += \"}\"\n\ts := strings.Join([]string{`&PolicyRulesWithSubjects{`,\n\t\t`Subjects:` + repeatedStringForSubjects + `,`,\n\t\t`ResourceRules:` + repeatedStringForResourceRules + `,`,\n\t\t`NonResourceRules:` + repeatedStringForNonResourceRules + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PriorityLevelConfiguration{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"PriorityLevelConfigurationSpec\", \"PriorityLevelConfigurationSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"PriorityLevelConfigurationStatus\", \"PriorityLevelConfigurationStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfigurationCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PriorityLevelConfigurationCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfigurationList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]PriorityLevelConfiguration{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"PriorityLevelConfiguration\", \"PriorityLevelConfiguration\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&PriorityLevelConfigurationList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfigurationReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PriorityLevelConfigurationReference{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfigurationSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PriorityLevelConfigurationSpec{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Limited:` + strings.Replace(this.Limited.String(), \"LimitedPriorityLevelConfiguration\", \"LimitedPriorityLevelConfiguration\", 1) + `,`,\n\t\t`Exempt:` + strings.Replace(this.Exempt.String(), \"ExemptPriorityLevelConfiguration\", \"ExemptPriorityLevelConfiguration\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfigurationStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]PriorityLevelConfigurationCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"PriorityLevelConfigurationCondition\", \"PriorityLevelConfigurationCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&PriorityLevelConfigurationStatus{`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *QueuingConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&QueuingConfiguration{`,\n\t\t`Queues:` + fmt.Sprintf(\"%v\", this.Queues) + `,`,\n\t\t`HandSize:` + fmt.Sprintf(\"%v\", this.HandSize) + `,`,\n\t\t`QueueLengthLimit:` + fmt.Sprintf(\"%v\", this.QueueLengthLimit) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourcePolicyRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourcePolicyRule{`,\n\t\t`Verbs:` + fmt.Sprintf(\"%v\", this.Verbs) + `,`,\n\t\t`APIGroups:` + fmt.Sprintf(\"%v\", this.APIGroups) + `,`,\n\t\t`Resources:` + fmt.Sprintf(\"%v\", this.Resources) + `,`,\n\t\t`ClusterScope:` + fmt.Sprintf(\"%v\", this.ClusterScope) + `,`,\n\t\t`Namespaces:` + fmt.Sprintf(\"%v\", this.Namespaces) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ServiceAccountSubject) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ServiceAccountSubject{`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Subject) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Subject{`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`User:` + strings.Replace(this.User.String(), \"UserSubject\", \"UserSubject\", 1) + `,`,\n\t\t`Group:` + strings.Replace(this.Group.String(), \"GroupSubject\", \"GroupSubject\", 1) + `,`,\n\t\t`ServiceAccount:` + strings.Replace(this.ServiceAccount.String(), \"ServiceAccountSubject\", \"ServiceAccountSubject\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *UserSubject) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&UserSubject{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *ExemptPriorityLevelConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ExemptPriorityLevelConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ExemptPriorityLevelConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NominalConcurrencyShares\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.NominalConcurrencyShares = &v\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LendablePercent\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.LendablePercent = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowDistinguisherMethod) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowDistinguisherMethod: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowDistinguisherMethod: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = FlowDistinguisherMethodType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowSchema) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchema: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchema: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowSchemaCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = FlowSchemaConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowSchemaList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, FlowSchema{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowSchemaSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PriorityLevelConfiguration\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.PriorityLevelConfiguration.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchingPrecedence\", wireType)\n\t\t\t}\n\t\t\tm.MatchingPrecedence = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MatchingPrecedence |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DistinguisherMethod\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.DistinguisherMethod == nil {\n\t\t\t\tm.DistinguisherMethod = &FlowDistinguisherMethod{}\n\t\t\t}\n\t\t\tif err := m.DistinguisherMethod.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Rules = append(m.Rules, PolicyRulesWithSubjects{})\n\t\t\tif err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowSchemaStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, FlowSchemaCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *GroupSubject) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GroupSubject: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GroupSubject: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LimitResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LimitResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LimitResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = LimitResponseType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Queuing\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Queuing == nil {\n\t\t\t\tm.Queuing = &QueuingConfiguration{}\n\t\t\t}\n\t\t\tif err := m.Queuing.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LimitedPriorityLevelConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LimitedPriorityLevelConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LimitedPriorityLevelConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AssuredConcurrencyShares\", wireType)\n\t\t\t}\n\t\t\tm.AssuredConcurrencyShares = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.AssuredConcurrencyShares |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LimitResponse\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LimitResponse.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LendablePercent\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.LendablePercent = &v\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field BorrowingLimitPercent\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.BorrowingLimitPercent = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NonResourcePolicyRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NonResourcePolicyRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NonResourcePolicyRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verbs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verbs = append(m.Verbs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NonResourceURLs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NonResourceURLs = append(m.NonResourceURLs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PolicyRulesWithSubjects) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PolicyRulesWithSubjects: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PolicyRulesWithSubjects: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Subjects\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Subjects = append(m.Subjects, Subject{})\n\t\t\tif err := m.Subjects[len(m.Subjects)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceRules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceRules = append(m.ResourceRules, ResourcePolicyRule{})\n\t\t\tif err := m.ResourceRules[len(m.ResourceRules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NonResourceRules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NonResourceRules = append(m.NonResourceRules, NonResourcePolicyRule{})\n\t\t\tif err := m.NonResourceRules[len(m.NonResourceRules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfigurationCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = PriorityLevelConfigurationConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfigurationList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, PriorityLevelConfiguration{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfigurationReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfigurationSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = PriorityLevelEnablement(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Limited\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Limited == nil {\n\t\t\t\tm.Limited = &LimitedPriorityLevelConfiguration{}\n\t\t\t}\n\t\t\tif err := m.Limited.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Exempt\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Exempt == nil {\n\t\t\t\tm.Exempt = &ExemptPriorityLevelConfiguration{}\n\t\t\t}\n\t\t\tif err := m.Exempt.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfigurationStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, PriorityLevelConfigurationCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *QueuingConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: QueuingConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: QueuingConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Queues\", wireType)\n\t\t\t}\n\t\t\tm.Queues = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Queues |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HandSize\", wireType)\n\t\t\t}\n\t\t\tm.HandSize = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.HandSize |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field QueueLengthLimit\", wireType)\n\t\t\t}\n\t\t\tm.QueueLengthLimit = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.QueueLengthLimit |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourcePolicyRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourcePolicyRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourcePolicyRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verbs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verbs = append(m.Verbs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIGroups\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIGroups = append(m.APIGroups, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resources\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resources = append(m.Resources, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ClusterScope\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ClusterScope = bool(v != 0)\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespaces\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespaces = append(m.Namespaces, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ServiceAccountSubject) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceAccountSubject: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceAccountSubject: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Subject) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Subject: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Subject: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = SubjectKind(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field User\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.User == nil {\n\t\t\t\tm.User = &UserSubject{}\n\t\t\t}\n\t\t\tif err := m.User.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Group\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Group == nil {\n\t\t\t\tm.Group = &GroupSubject{}\n\t\t\t}\n\t\t\tif err := m.Group.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServiceAccount\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ServiceAccount == nil {\n\t\t\t\tm.ServiceAccount = &ServiceAccountSubject{}\n\t\t\t}\n\t\t\tif err := m.ServiceAccount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *UserSubject) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: UserSubject: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: UserSubject: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.flowcontrol.v1beta1;\n\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/flowcontrol/v1beta1\";\n\n// ExemptPriorityLevelConfiguration describes the configurable aspects\n// of the handling of exempt requests.\n// In the mandatory exempt configuration object the values in the fields\n// here can be modified by authorized users, unlike the rest of the `spec`.\nmessage ExemptPriorityLevelConfiguration {\n  // `nominalConcurrencyShares` (NCS) contributes to the computation of the\n  // NominalConcurrencyLimit (NominalCL) of this level.\n  // This is the number of execution seats nominally reserved for this priority level.\n  // This DOES NOT limit the dispatching from this priority level\n  // but affects the other priority levels through the borrowing mechanism.\n  // The server's concurrency limit (ServerCL) is divided among all the\n  // priority levels in proportion to their NCS values:\n  //\n  // NominalCL(i)  = ceil( ServerCL * NCS(i) / sum_ncs )\n  // sum_ncs = sum[priority level k] NCS(k)\n  //\n  // Bigger numbers mean a larger nominal concurrency limit,\n  // at the expense of every other priority level.\n  // This field has a default value of zero.\n  // +optional\n  optional int32 nominalConcurrencyShares = 1;\n\n  // `lendablePercent` prescribes the fraction of the level's NominalCL that\n  // can be borrowed by other priority levels.  This value of this\n  // field must be between 0 and 100, inclusive, and it defaults to 0.\n  // The number of seats that other levels can borrow from this level, known\n  // as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\n  //\n  // LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )\n  //\n  // +optional\n  optional int32 lendablePercent = 2;\n}\n\n// FlowDistinguisherMethod specifies the method of a flow distinguisher.\nmessage FlowDistinguisherMethod {\n  // `type` is the type of flow distinguisher method\n  // The supported types are \"ByUser\" and \"ByNamespace\".\n  // Required.\n  optional string type = 1;\n}\n\n// FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of inbound API requests with\n// similar attributes and is identified by a pair of strings: the name of the FlowSchema and a \"flow distinguisher\".\nmessage FlowSchema {\n  // `metadata` is the standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // `spec` is the specification of the desired behavior of a FlowSchema.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional FlowSchemaSpec spec = 2;\n\n  // `status` is the current status of a FlowSchema.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional FlowSchemaStatus status = 3;\n}\n\n// FlowSchemaCondition describes conditions for a FlowSchema.\nmessage FlowSchemaCondition {\n  // `type` is the type of the condition.\n  // Required.\n  optional string type = 1;\n\n  // `status` is the status of the condition.\n  // Can be True, False, Unknown.\n  // Required.\n  optional string status = 2;\n\n  // `lastTransitionTime` is the last time the condition transitioned from one status to another.\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // `reason` is a unique, one-word, CamelCase reason for the condition's last transition.\n  optional string reason = 4;\n\n  // `message` is a human-readable message indicating details about last transition.\n  optional string message = 5;\n}\n\n// FlowSchemaList is a list of FlowSchema objects.\nmessage FlowSchemaList {\n  // `metadata` is the standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // `items` is a list of FlowSchemas.\n  repeated FlowSchema items = 2;\n}\n\n// FlowSchemaSpec describes how the FlowSchema's specification looks like.\nmessage FlowSchemaSpec {\n  // `priorityLevelConfiguration` should reference a PriorityLevelConfiguration in the cluster. If the reference cannot\n  // be resolved, the FlowSchema will be ignored and marked as invalid in its status.\n  // Required.\n  optional PriorityLevelConfigurationReference priorityLevelConfiguration = 1;\n\n  // `matchingPrecedence` is used to choose among the FlowSchemas that match a given request. The chosen\n  // FlowSchema is among those with the numerically lowest (which we take to be logically highest)\n  // MatchingPrecedence.  Each MatchingPrecedence value must be ranged in [1,10000].\n  // Note that if the precedence is not specified, it will be set to 1000 as default.\n  // +optional\n  optional int32 matchingPrecedence = 2;\n\n  // `distinguisherMethod` defines how to compute the flow distinguisher for requests that match this schema.\n  // `nil` specifies that the distinguisher is disabled and thus will always be the empty string.\n  // +optional\n  optional FlowDistinguisherMethod distinguisherMethod = 3;\n\n  // `rules` describes which requests will match this flow schema. This FlowSchema matches a request if and only if\n  // at least one member of rules matches the request.\n  // if it is an empty slice, there will be no requests matching the FlowSchema.\n  // +listType=atomic\n  // +optional\n  repeated PolicyRulesWithSubjects rules = 4;\n}\n\n// FlowSchemaStatus represents the current state of a FlowSchema.\nmessage FlowSchemaStatus {\n  // `conditions` is a list of the current states of FlowSchema.\n  // +listType=map\n  // +listMapKey=type\n  // +optional\n  repeated FlowSchemaCondition conditions = 1;\n}\n\n// GroupSubject holds detailed information for group-kind subject.\nmessage GroupSubject {\n  // name is the user group that matches, or \"*\" to match all user groups.\n  // See https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go for some\n  // well-known group names.\n  // Required.\n  optional string name = 1;\n}\n\n// LimitResponse defines how to handle requests that can not be executed right now.\n// +union\nmessage LimitResponse {\n  // `type` is \"Queue\" or \"Reject\".\n  // \"Queue\" means that requests that can not be executed upon arrival\n  // are held in a queue until they can be executed or a queuing limit\n  // is reached.\n  // \"Reject\" means that requests that can not be executed upon arrival\n  // are rejected.\n  // Required.\n  // +unionDiscriminator\n  optional string type = 1;\n\n  // `queuing` holds the configuration parameters for queuing.\n  // This field may be non-empty only if `type` is `\"Queue\"`.\n  // +optional\n  optional QueuingConfiguration queuing = 2;\n}\n\n// LimitedPriorityLevelConfiguration specifies how to handle requests that are subject to limits.\n// It addresses two issues:\n//   - How are requests for this priority level limited?\n//   - What should be done with requests that exceed the limit?\nmessage LimitedPriorityLevelConfiguration {\n  // `assuredConcurrencyShares` (ACS) configures the execution\n  // limit, which is a limit on the number of requests of this\n  // priority level that may be executing at a given time.  ACS must\n  // be a positive number. The server's concurrency limit (SCL) is\n  // divided among the concurrency-controlled priority levels in\n  // proportion to their assured concurrency shares. This produces\n  // the assured concurrency value (ACV) --- the number of requests\n  // that may be executing at a time --- for each such priority\n  // level:\n  //\n  //             ACV(l) = ceil( SCL * ACS(l) / ( sum[priority levels k] ACS(k) ) )\n  //\n  // bigger numbers of ACS mean more reserved concurrent requests (at the\n  // expense of every other PL).\n  // This field has a default value of 30.\n  // +optional\n  optional int32 assuredConcurrencyShares = 1;\n\n  // `limitResponse` indicates what to do with requests that can not be executed right now\n  optional LimitResponse limitResponse = 2;\n\n  // `lendablePercent` prescribes the fraction of the level's NominalCL that\n  // can be borrowed by other priority levels. The value of this\n  // field must be between 0 and 100, inclusive, and it defaults to 0.\n  // The number of seats that other levels can borrow from this level, known\n  // as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\n  //\n  // LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )\n  //\n  // +optional\n  optional int32 lendablePercent = 3;\n\n  // `borrowingLimitPercent`, if present, configures a limit on how many\n  // seats this priority level can borrow from other priority levels.\n  // The limit is known as this level's BorrowingConcurrencyLimit\n  // (BorrowingCL) and is a limit on the total number of seats that this\n  // level may borrow at any one time.\n  // This field holds the ratio of that limit to the level's nominal\n  // concurrency limit. When this field is non-nil, it must hold a\n  // non-negative integer and the limit is calculated as follows.\n  //\n  // BorrowingCL(i) = round( NominalCL(i) * borrowingLimitPercent(i)/100.0 )\n  //\n  // The value of this field can be more than 100, implying that this\n  // priority level can borrow a number of seats that is greater than\n  // its own nominal concurrency limit (NominalCL).\n  // When this field is left `nil`, the limit is effectively infinite.\n  // +optional\n  optional int32 borrowingLimitPercent = 4;\n}\n\n// NonResourcePolicyRule is a predicate that matches non-resource requests according to their verb and the\n// target non-resource URL. A NonResourcePolicyRule matches a request if and only if both (a) at least one member\n// of verbs matches the request and (b) at least one member of nonResourceURLs matches the request.\nmessage NonResourcePolicyRule {\n  // `verbs` is a list of matching verbs and may not be empty.\n  // \"*\" matches all verbs. If it is present, it must be the only entry.\n  // +listType=set\n  // Required.\n  repeated string verbs = 1;\n\n  // `nonResourceURLs` is a set of url prefixes that a user should have access to and may not be empty.\n  // For example:\n  //   - \"/healthz\" is legal\n  //   - \"/hea*\" is illegal\n  //   - \"/hea\" is legal but matches nothing\n  //   - \"/hea/*\" also matches nothing\n  //   - \"/healthz/*\" matches all per-component health checks.\n  // \"*\" matches all non-resource urls. if it is present, it must be the only entry.\n  // +listType=set\n  // Required.\n  repeated string nonResourceURLs = 6;\n}\n\n// PolicyRulesWithSubjects prescribes a test that applies to a request to an apiserver. The test considers the subject\n// making the request, the verb being requested, and the resource to be acted upon. This PolicyRulesWithSubjects matches\n// a request if and only if both (a) at least one member of subjects matches the request and (b) at least one member\n// of resourceRules or nonResourceRules matches the request.\nmessage PolicyRulesWithSubjects {\n  // subjects is the list of normal user, serviceaccount, or group that this rule cares about.\n  // There must be at least one member in this slice.\n  // A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request.\n  // +listType=atomic\n  // Required.\n  repeated Subject subjects = 1;\n\n  // `resourceRules` is a slice of ResourcePolicyRules that identify matching requests according to their verb and the\n  // target resource.\n  // At least one of `resourceRules` and `nonResourceRules` has to be non-empty.\n  // +listType=atomic\n  // +optional\n  repeated ResourcePolicyRule resourceRules = 2;\n\n  // `nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests according to their verb\n  // and the target non-resource URL.\n  // +listType=atomic\n  // +optional\n  repeated NonResourcePolicyRule nonResourceRules = 3;\n}\n\n// PriorityLevelConfiguration represents the configuration of a priority level.\nmessage PriorityLevelConfiguration {\n  // `metadata` is the standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // `spec` is the specification of the desired behavior of a \"request-priority\".\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional PriorityLevelConfigurationSpec spec = 2;\n\n  // `status` is the current status of a \"request-priority\".\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional PriorityLevelConfigurationStatus status = 3;\n}\n\n// PriorityLevelConfigurationCondition defines the condition of priority level.\nmessage PriorityLevelConfigurationCondition {\n  // `type` is the type of the condition.\n  // Required.\n  optional string type = 1;\n\n  // `status` is the status of the condition.\n  // Can be True, False, Unknown.\n  // Required.\n  optional string status = 2;\n\n  // `lastTransitionTime` is the last time the condition transitioned from one status to another.\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // `reason` is a unique, one-word, CamelCase reason for the condition's last transition.\n  optional string reason = 4;\n\n  // `message` is a human-readable message indicating details about last transition.\n  optional string message = 5;\n}\n\n// PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects.\nmessage PriorityLevelConfigurationList {\n  // `metadata` is the standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // `items` is a list of request-priorities.\n  repeated PriorityLevelConfiguration items = 2;\n}\n\n// PriorityLevelConfigurationReference contains information that points to the \"request-priority\" being used.\nmessage PriorityLevelConfigurationReference {\n  // `name` is the name of the priority level configuration being referenced\n  // Required.\n  optional string name = 1;\n}\n\n// PriorityLevelConfigurationSpec specifies the configuration of a priority level.\n// +union\nmessage PriorityLevelConfigurationSpec {\n  // `type` indicates whether this priority level is subject to\n  // limitation on request execution.  A value of `\"Exempt\"` means\n  // that requests of this priority level are not subject to a limit\n  // (and thus are never queued) and do not detract from the\n  // capacity made available to other priority levels.  A value of\n  // `\"Limited\"` means that (a) requests of this priority level\n  // _are_ subject to limits and (b) some of the server's limited\n  // capacity is made available exclusively to this priority level.\n  // Required.\n  // +unionDiscriminator\n  optional string type = 1;\n\n  // `limited` specifies how requests are handled for a Limited priority level.\n  // This field must be non-empty if and only if `type` is `\"Limited\"`.\n  // +optional\n  optional LimitedPriorityLevelConfiguration limited = 2;\n\n  // `exempt` specifies how requests are handled for an exempt priority level.\n  // This field MUST be empty if `type` is `\"Limited\"`.\n  // This field MAY be non-empty if `type` is `\"Exempt\"`.\n  // If empty and `type` is `\"Exempt\"` then the default values\n  // for `ExemptPriorityLevelConfiguration` apply.\n  // +optional\n  optional ExemptPriorityLevelConfiguration exempt = 3;\n}\n\n// PriorityLevelConfigurationStatus represents the current state of a \"request-priority\".\nmessage PriorityLevelConfigurationStatus {\n  // `conditions` is the current state of \"request-priority\".\n  // +listType=map\n  // +listMapKey=type\n  // +optional\n  repeated PriorityLevelConfigurationCondition conditions = 1;\n}\n\n// QueuingConfiguration holds the configuration parameters for queuing\nmessage QueuingConfiguration {\n  // `queues` is the number of queues for this priority level. The\n  // queues exist independently at each apiserver. The value must be\n  // positive.  Setting it to 1 effectively precludes\n  // shufflesharding and thus makes the distinguisher method of\n  // associated flow schemas irrelevant.  This field has a default\n  // value of 64.\n  // +optional\n  optional int32 queues = 1;\n\n  // `handSize` is a small positive number that configures the\n  // shuffle sharding of requests into queues.  When enqueuing a request\n  // at this priority level the request's flow identifier (a string\n  // pair) is hashed and the hash value is used to shuffle the list\n  // of queues and deal a hand of the size specified here.  The\n  // request is put into one of the shortest queues in that hand.\n  // `handSize` must be no larger than `queues`, and should be\n  // significantly smaller (so that a few heavy flows do not\n  // saturate most of the queues).  See the user-facing\n  // documentation for more extensive guidance on setting this\n  // field.  This field has a default value of 8.\n  // +optional\n  optional int32 handSize = 2;\n\n  // `queueLengthLimit` is the maximum number of requests allowed to\n  // be waiting in a given queue of this priority level at a time;\n  // excess requests are rejected.  This value must be positive.  If\n  // not specified, it will be defaulted to 50.\n  // +optional\n  optional int32 queueLengthLimit = 3;\n}\n\n// ResourcePolicyRule is a predicate that matches some resource\n// requests, testing the request's verb and the target resource. A\n// ResourcePolicyRule matches a resource request if and only if: (a)\n// at least one member of verbs matches the request, (b) at least one\n// member of apiGroups matches the request, (c) at least one member of\n// resources matches the request, and (d) either (d1) the request does\n// not specify a namespace (i.e., `Namespace==\"\"`) and clusterScope is\n// true or (d2) the request specifies a namespace and least one member\n// of namespaces matches the request's namespace.\nmessage ResourcePolicyRule {\n  // `verbs` is a list of matching verbs and may not be empty.\n  // \"*\" matches all verbs and, if present, must be the only entry.\n  // +listType=set\n  // Required.\n  repeated string verbs = 1;\n\n  // `apiGroups` is a list of matching API groups and may not be empty.\n  // \"*\" matches all API groups and, if present, must be the only entry.\n  // +listType=set\n  // Required.\n  repeated string apiGroups = 2;\n\n  // `resources` is a list of matching resources (i.e., lowercase\n  // and plural) with, if desired, subresource.  For example, [\n  // \"services\", \"nodes/status\" ].  This list may not be empty.\n  // \"*\" matches all resources and, if present, must be the only entry.\n  // Required.\n  // +listType=set\n  repeated string resources = 3;\n\n  // `clusterScope` indicates whether to match requests that do not\n  // specify a namespace (which happens either because the resource\n  // is not namespaced or the request targets all namespaces).\n  // If this field is omitted or false then the `namespaces` field\n  // must contain a non-empty list.\n  // +optional\n  optional bool clusterScope = 4;\n\n  // `namespaces` is a list of target namespaces that restricts\n  // matches.  A request that specifies a target namespace matches\n  // only if either (a) this list contains that target namespace or\n  // (b) this list contains \"*\".  Note that \"*\" matches any\n  // specified namespace but does not match a request that _does\n  // not specify_ a namespace (see the `clusterScope` field for\n  // that).\n  // This list may be empty, but only if `clusterScope` is true.\n  // +optional\n  // +listType=set\n  repeated string namespaces = 5;\n}\n\n// ServiceAccountSubject holds detailed information for service-account-kind subject.\nmessage ServiceAccountSubject {\n  // `namespace` is the namespace of matching ServiceAccount objects.\n  // Required.\n  optional string namespace = 1;\n\n  // `name` is the name of matching ServiceAccount objects, or \"*\" to match regardless of name.\n  // Required.\n  optional string name = 2;\n}\n\n// Subject matches the originator of a request, as identified by the request authentication system. There are three\n// ways of matching an originator; by user, group, or service account.\n// +union\nmessage Subject {\n  // `kind` indicates which one of the other fields is non-empty.\n  // Required\n  // +unionDiscriminator\n  optional string kind = 1;\n\n  // `user` matches based on username.\n  // +optional\n  optional UserSubject user = 2;\n\n  // `group` matches based on user group name.\n  // +optional\n  optional GroupSubject group = 3;\n\n  // `serviceAccount` matches ServiceAccounts.\n  // +optional\n  optional ServiceAccountSubject serviceAccount = 4;\n}\n\n// UserSubject holds detailed information for user-kind subject.\nmessage UserSubject {\n  // `name` is the username that matches, or \"*\" to match all usernames.\n  // Required.\n  optional string name = 1;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta1/register.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the name of api group\nconst GroupName = \"flowcontrol.apiserver.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta1\"}\n\n// Kind takes an unqualified kind and returns a Group qualified GroupKind\nfunc Kind(kind string) schema.GroupKind {\n\treturn SchemeGroupVersion.WithKind(kind).GroupKind()\n}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// SchemeBuilder installs the api group to a scheme\n\tSchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)\n\t// AddToScheme adds api to a scheme\n\tAddToScheme = SchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&FlowSchema{},\n\t\t&FlowSchemaList{},\n\t\t&PriorityLevelConfiguration{},\n\t\t&PriorityLevelConfigurationList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta1/types.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// These are valid wildcards.\nconst (\n\tAPIGroupAll    = \"*\"\n\tResourceAll    = \"*\"\n\tVerbAll        = \"*\"\n\tNonResourceAll = \"*\"\n\tNameAll        = \"*\"\n\n\tNamespaceEvery = \"*\" // matches every particular namespace\n)\n\n// System preset priority level names\nconst (\n\tPriorityLevelConfigurationNameExempt   = \"exempt\"\n\tPriorityLevelConfigurationNameCatchAll = \"catch-all\"\n\tFlowSchemaNameExempt                   = \"exempt\"\n\tFlowSchemaNameCatchAll                 = \"catch-all\"\n)\n\n// Conditions\nconst (\n\tFlowSchemaConditionDangling = \"Dangling\"\n\n\tPriorityLevelConfigurationConditionConcurrencyShared = \"ConcurrencyShared\"\n)\n\n// Constants used by api validation.\nconst (\n\tFlowSchemaMaxMatchingPrecedence int32 = 10000\n)\n\n// Constants for apiserver response headers.\nconst (\n\tResponseHeaderMatchedPriorityLevelConfigurationUID = \"X-Kubernetes-PF-PriorityLevel-UID\"\n\tResponseHeaderMatchedFlowSchemaUID                 = \"X-Kubernetes-PF-FlowSchema-UID\"\n)\n\nconst (\n\t// AutoUpdateAnnotationKey is the name of an annotation that enables\n\t// automatic update of the spec of the bootstrap configuration\n\t// object(s), if set to 'true'.\n\t//\n\t// On a fresh install, all bootstrap configuration objects will have auto\n\t// update enabled with the following annotation key:\n\t//    apf.kubernetes.io/autoupdate-spec: 'true'\n\t//\n\t// The kube-apiserver periodically checks the bootstrap configuration\n\t// objects on the cluster and applies updates if necessary.\n\t//\n\t// kube-apiserver enforces an 'always auto-update' policy for the\n\t// mandatory configuration object(s). This implies:\n\t// - the auto-update annotation key is added with a value of 'true'\n\t//   if it is missing.\n\t// - the auto-update annotation key is set to 'true' if its current value\n\t//   is a boolean false or has an invalid boolean representation\n\t//   (if the cluster operator sets it to 'false' it will be stomped)\n\t// - any changes to the spec made by the cluster operator will be\n\t//   stomped, except for changes to the `nominalConcurrencyShares`\n\t//   and `lendablePercent` fields of the PriorityLevelConfiguration\n\t//   named \"exempt\".\n\t//\n\t// The kube-apiserver will apply updates on the suggested configuration if:\n\t// - the cluster operator has enabled auto-update by setting the annotation\n\t//   (apf.kubernetes.io/autoupdate-spec: 'true') or\n\t// - the annotation key is missing but the generation is 1\n\t//\n\t// If the suggested configuration object is missing the annotation key,\n\t// kube-apiserver will update the annotation appropriately:\n\t// - it is set to 'true' if generation of the object is '1' which usually\n\t//   indicates that the spec of the object has not been changed.\n\t// - it is set to 'false' if generation of the object is greater than 1.\n\t//\n\t// The goal is to enable the kube-apiserver to apply update on suggested\n\t// configuration objects installed by previous releases but not overwrite\n\t// changes made by the cluster operators.\n\t// Note that this distinction is imperfectly detected: in the case where an\n\t// operator deletes a suggested configuration object and later creates it\n\t// but with a variant spec and then does no updates of the object\n\t// (generation is 1), the technique outlined above will incorrectly\n\t// determine that the object should be auto-updated.\n\tAutoUpdateAnnotationKey = \"apf.kubernetes.io/autoupdate-spec\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.20\n// +k8s:prerelease-lifecycle-gen:replacement=flowcontrol.apiserver.k8s.io,v1beta3,FlowSchema\n\n// FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of inbound API requests with\n// similar attributes and is identified by a pair of strings: the name of the FlowSchema and a \"flow distinguisher\".\ntype FlowSchema struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// `metadata` is the standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// `spec` is the specification of the desired behavior of a FlowSchema.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec FlowSchemaSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\t// `status` is the current status of a FlowSchema.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus FlowSchemaStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.20\n// +k8s:prerelease-lifecycle-gen:replacement=flowcontrol.apiserver.k8s.io,v1beta3,FlowSchemaList\n\n// FlowSchemaList is a list of FlowSchema objects.\ntype FlowSchemaList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// `metadata` is the standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// `items` is a list of FlowSchemas.\n\tItems []FlowSchema `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// FlowSchemaSpec describes how the FlowSchema's specification looks like.\ntype FlowSchemaSpec struct {\n\t// `priorityLevelConfiguration` should reference a PriorityLevelConfiguration in the cluster. If the reference cannot\n\t// be resolved, the FlowSchema will be ignored and marked as invalid in its status.\n\t// Required.\n\tPriorityLevelConfiguration PriorityLevelConfigurationReference `json:\"priorityLevelConfiguration\" protobuf:\"bytes,1,opt,name=priorityLevelConfiguration\"`\n\t// `matchingPrecedence` is used to choose among the FlowSchemas that match a given request. The chosen\n\t// FlowSchema is among those with the numerically lowest (which we take to be logically highest)\n\t// MatchingPrecedence.  Each MatchingPrecedence value must be ranged in [1,10000].\n\t// Note that if the precedence is not specified, it will be set to 1000 as default.\n\t// +optional\n\tMatchingPrecedence int32 `json:\"matchingPrecedence\" protobuf:\"varint,2,opt,name=matchingPrecedence\"`\n\t// `distinguisherMethod` defines how to compute the flow distinguisher for requests that match this schema.\n\t// `nil` specifies that the distinguisher is disabled and thus will always be the empty string.\n\t// +optional\n\tDistinguisherMethod *FlowDistinguisherMethod `json:\"distinguisherMethod,omitempty\" protobuf:\"bytes,3,opt,name=distinguisherMethod\"`\n\t// `rules` describes which requests will match this flow schema. This FlowSchema matches a request if and only if\n\t// at least one member of rules matches the request.\n\t// if it is an empty slice, there will be no requests matching the FlowSchema.\n\t// +listType=atomic\n\t// +optional\n\tRules []PolicyRulesWithSubjects `json:\"rules,omitempty\" protobuf:\"bytes,4,rep,name=rules\"`\n}\n\n// FlowDistinguisherMethodType is the type of flow distinguisher method\ntype FlowDistinguisherMethodType string\n\n// These are valid flow-distinguisher methods.\nconst (\n\t// FlowDistinguisherMethodByUserType specifies that the flow distinguisher is the username in the request.\n\t// This type is used to provide some insulation between users.\n\tFlowDistinguisherMethodByUserType FlowDistinguisherMethodType = \"ByUser\"\n\n\t// FlowDistinguisherMethodByNamespaceType specifies that the flow distinguisher is the namespace of the\n\t// object that the request acts upon. If the object is not namespaced, or if the request is a non-resource\n\t// request, then the distinguisher will be the empty string. An example usage of this type is to provide\n\t// some insulation between tenants in a situation where there are multiple tenants and each namespace\n\t// is dedicated to a tenant.\n\tFlowDistinguisherMethodByNamespaceType FlowDistinguisherMethodType = \"ByNamespace\"\n)\n\n// FlowDistinguisherMethod specifies the method of a flow distinguisher.\ntype FlowDistinguisherMethod struct {\n\t// `type` is the type of flow distinguisher method\n\t// The supported types are \"ByUser\" and \"ByNamespace\".\n\t// Required.\n\tType FlowDistinguisherMethodType `json:\"type\" protobuf:\"bytes,1,opt,name=type\"`\n}\n\n// PriorityLevelConfigurationReference contains information that points to the \"request-priority\" being used.\ntype PriorityLevelConfigurationReference struct {\n\t// `name` is the name of the priority level configuration being referenced\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n}\n\n// PolicyRulesWithSubjects prescribes a test that applies to a request to an apiserver. The test considers the subject\n// making the request, the verb being requested, and the resource to be acted upon. This PolicyRulesWithSubjects matches\n// a request if and only if both (a) at least one member of subjects matches the request and (b) at least one member\n// of resourceRules or nonResourceRules matches the request.\ntype PolicyRulesWithSubjects struct {\n\t// subjects is the list of normal user, serviceaccount, or group that this rule cares about.\n\t// There must be at least one member in this slice.\n\t// A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request.\n\t// +listType=atomic\n\t// Required.\n\tSubjects []Subject `json:\"subjects\" protobuf:\"bytes,1,rep,name=subjects\"`\n\t// `resourceRules` is a slice of ResourcePolicyRules that identify matching requests according to their verb and the\n\t// target resource.\n\t// At least one of `resourceRules` and `nonResourceRules` has to be non-empty.\n\t// +listType=atomic\n\t// +optional\n\tResourceRules []ResourcePolicyRule `json:\"resourceRules,omitempty\" protobuf:\"bytes,2,opt,name=resourceRules\"`\n\t// `nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests according to their verb\n\t// and the target non-resource URL.\n\t// +listType=atomic\n\t// +optional\n\tNonResourceRules []NonResourcePolicyRule `json:\"nonResourceRules,omitempty\" protobuf:\"bytes,3,opt,name=nonResourceRules\"`\n}\n\n// Subject matches the originator of a request, as identified by the request authentication system. There are three\n// ways of matching an originator; by user, group, or service account.\n// +union\ntype Subject struct {\n\t// `kind` indicates which one of the other fields is non-empty.\n\t// Required\n\t// +unionDiscriminator\n\tKind SubjectKind `json:\"kind\" protobuf:\"bytes,1,opt,name=kind\"`\n\t// `user` matches based on username.\n\t// +optional\n\tUser *UserSubject `json:\"user,omitempty\" protobuf:\"bytes,2,opt,name=user\"`\n\t// `group` matches based on user group name.\n\t// +optional\n\tGroup *GroupSubject `json:\"group,omitempty\" protobuf:\"bytes,3,opt,name=group\"`\n\t// `serviceAccount` matches ServiceAccounts.\n\t// +optional\n\tServiceAccount *ServiceAccountSubject `json:\"serviceAccount,omitempty\" protobuf:\"bytes,4,opt,name=serviceAccount\"`\n}\n\n// SubjectKind is the kind of subject.\ntype SubjectKind string\n\n// Supported subject's kinds.\nconst (\n\tSubjectKindUser           SubjectKind = \"User\"\n\tSubjectKindGroup          SubjectKind = \"Group\"\n\tSubjectKindServiceAccount SubjectKind = \"ServiceAccount\"\n)\n\n// UserSubject holds detailed information for user-kind subject.\ntype UserSubject struct {\n\t// `name` is the username that matches, or \"*\" to match all usernames.\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n}\n\n// GroupSubject holds detailed information for group-kind subject.\ntype GroupSubject struct {\n\t// name is the user group that matches, or \"*\" to match all user groups.\n\t// See https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go for some\n\t// well-known group names.\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n}\n\n// ServiceAccountSubject holds detailed information for service-account-kind subject.\ntype ServiceAccountSubject struct {\n\t// `namespace` is the namespace of matching ServiceAccount objects.\n\t// Required.\n\tNamespace string `json:\"namespace\" protobuf:\"bytes,1,opt,name=namespace\"`\n\t// `name` is the name of matching ServiceAccount objects, or \"*\" to match regardless of name.\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,2,opt,name=name\"`\n}\n\n// ResourcePolicyRule is a predicate that matches some resource\n// requests, testing the request's verb and the target resource. A\n// ResourcePolicyRule matches a resource request if and only if: (a)\n// at least one member of verbs matches the request, (b) at least one\n// member of apiGroups matches the request, (c) at least one member of\n// resources matches the request, and (d) either (d1) the request does\n// not specify a namespace (i.e., `Namespace==\"\"`) and clusterScope is\n// true or (d2) the request specifies a namespace and least one member\n// of namespaces matches the request's namespace.\ntype ResourcePolicyRule struct {\n\t// `verbs` is a list of matching verbs and may not be empty.\n\t// \"*\" matches all verbs and, if present, must be the only entry.\n\t// +listType=set\n\t// Required.\n\tVerbs []string `json:\"verbs\" protobuf:\"bytes,1,rep,name=verbs\"`\n\n\t// `apiGroups` is a list of matching API groups and may not be empty.\n\t// \"*\" matches all API groups and, if present, must be the only entry.\n\t// +listType=set\n\t// Required.\n\tAPIGroups []string `json:\"apiGroups\" protobuf:\"bytes,2,rep,name=apiGroups\"`\n\n\t// `resources` is a list of matching resources (i.e., lowercase\n\t// and plural) with, if desired, subresource.  For example, [\n\t// \"services\", \"nodes/status\" ].  This list may not be empty.\n\t// \"*\" matches all resources and, if present, must be the only entry.\n\t// Required.\n\t// +listType=set\n\tResources []string `json:\"resources\" protobuf:\"bytes,3,rep,name=resources\"`\n\n\t// `clusterScope` indicates whether to match requests that do not\n\t// specify a namespace (which happens either because the resource\n\t// is not namespaced or the request targets all namespaces).\n\t// If this field is omitted or false then the `namespaces` field\n\t// must contain a non-empty list.\n\t// +optional\n\tClusterScope bool `json:\"clusterScope,omitempty\" protobuf:\"varint,4,opt,name=clusterScope\"`\n\n\t// `namespaces` is a list of target namespaces that restricts\n\t// matches.  A request that specifies a target namespace matches\n\t// only if either (a) this list contains that target namespace or\n\t// (b) this list contains \"*\".  Note that \"*\" matches any\n\t// specified namespace but does not match a request that _does\n\t// not specify_ a namespace (see the `clusterScope` field for\n\t// that).\n\t// This list may be empty, but only if `clusterScope` is true.\n\t// +optional\n\t// +listType=set\n\tNamespaces []string `json:\"namespaces\" protobuf:\"bytes,5,rep,name=namespaces\"`\n}\n\n// NonResourcePolicyRule is a predicate that matches non-resource requests according to their verb and the\n// target non-resource URL. A NonResourcePolicyRule matches a request if and only if both (a) at least one member\n// of verbs matches the request and (b) at least one member of nonResourceURLs matches the request.\ntype NonResourcePolicyRule struct {\n\t// `verbs` is a list of matching verbs and may not be empty.\n\t// \"*\" matches all verbs. If it is present, it must be the only entry.\n\t// +listType=set\n\t// Required.\n\tVerbs []string `json:\"verbs\" protobuf:\"bytes,1,rep,name=verbs\"`\n\t// `nonResourceURLs` is a set of url prefixes that a user should have access to and may not be empty.\n\t// For example:\n\t//   - \"/healthz\" is legal\n\t//   - \"/hea*\" is illegal\n\t//   - \"/hea\" is legal but matches nothing\n\t//   - \"/hea/*\" also matches nothing\n\t//   - \"/healthz/*\" matches all per-component health checks.\n\t// \"*\" matches all non-resource urls. if it is present, it must be the only entry.\n\t// +listType=set\n\t// Required.\n\tNonResourceURLs []string `json:\"nonResourceURLs\" protobuf:\"bytes,6,rep,name=nonResourceURLs\"`\n}\n\n// FlowSchemaStatus represents the current state of a FlowSchema.\ntype FlowSchemaStatus struct {\n\t// `conditions` is a list of the current states of FlowSchema.\n\t// +listType=map\n\t// +listMapKey=type\n\t// +optional\n\tConditions []FlowSchemaCondition `json:\"conditions,omitempty\" protobuf:\"bytes,1,rep,name=conditions\"`\n}\n\n// FlowSchemaCondition describes conditions for a FlowSchema.\ntype FlowSchemaCondition struct {\n\t// `type` is the type of the condition.\n\t// Required.\n\tType FlowSchemaConditionType `json:\"type,omitempty\" protobuf:\"bytes,1,opt,name=type\"`\n\t// `status` is the status of the condition.\n\t// Can be True, False, Unknown.\n\t// Required.\n\tStatus ConditionStatus `json:\"status,omitempty\" protobuf:\"bytes,2,opt,name=status\"`\n\t// `lastTransitionTime` is the last time the condition transitioned from one status to another.\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\t// `reason` is a unique, one-word, CamelCase reason for the condition's last transition.\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// `message` is a human-readable message indicating details about last transition.\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// FlowSchemaConditionType is a valid value for FlowSchemaStatusCondition.Type\ntype FlowSchemaConditionType string\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.20\n// +k8s:prerelease-lifecycle-gen:replacement=flowcontrol.apiserver.k8s.io,v1beta3,PriorityLevelConfiguration\n\n// PriorityLevelConfiguration represents the configuration of a priority level.\ntype PriorityLevelConfiguration struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// `metadata` is the standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// `spec` is the specification of the desired behavior of a \"request-priority\".\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec PriorityLevelConfigurationSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\t// `status` is the current status of a \"request-priority\".\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus PriorityLevelConfigurationStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.20\n// +k8s:prerelease-lifecycle-gen:replacement=flowcontrol.apiserver.k8s.io,v1beta3,PriorityLevelConfigurationList\n\n// PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects.\ntype PriorityLevelConfigurationList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// `metadata` is the standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// `items` is a list of request-priorities.\n\tItems []PriorityLevelConfiguration `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// PriorityLevelConfigurationSpec specifies the configuration of a priority level.\n// +union\ntype PriorityLevelConfigurationSpec struct {\n\t// `type` indicates whether this priority level is subject to\n\t// limitation on request execution.  A value of `\"Exempt\"` means\n\t// that requests of this priority level are not subject to a limit\n\t// (and thus are never queued) and do not detract from the\n\t// capacity made available to other priority levels.  A value of\n\t// `\"Limited\"` means that (a) requests of this priority level\n\t// _are_ subject to limits and (b) some of the server's limited\n\t// capacity is made available exclusively to this priority level.\n\t// Required.\n\t// +unionDiscriminator\n\tType PriorityLevelEnablement `json:\"type\" protobuf:\"bytes,1,opt,name=type\"`\n\n\t// `limited` specifies how requests are handled for a Limited priority level.\n\t// This field must be non-empty if and only if `type` is `\"Limited\"`.\n\t// +optional\n\tLimited *LimitedPriorityLevelConfiguration `json:\"limited,omitempty\" protobuf:\"bytes,2,opt,name=limited\"`\n\n\t// `exempt` specifies how requests are handled for an exempt priority level.\n\t// This field MUST be empty if `type` is `\"Limited\"`.\n\t// This field MAY be non-empty if `type` is `\"Exempt\"`.\n\t// If empty and `type` is `\"Exempt\"` then the default values\n\t// for `ExemptPriorityLevelConfiguration` apply.\n\t// +optional\n\tExempt *ExemptPriorityLevelConfiguration `json:\"exempt,omitempty\" protobuf:\"bytes,3,opt,name=exempt\"`\n}\n\n// PriorityLevelEnablement indicates whether limits on execution are enabled for the priority level\ntype PriorityLevelEnablement string\n\n// Supported priority level enablement values.\nconst (\n\t// PriorityLevelEnablementExempt means that requests are not subject to limits\n\tPriorityLevelEnablementExempt PriorityLevelEnablement = \"Exempt\"\n\n\t// PriorityLevelEnablementLimited means that requests are subject to limits\n\tPriorityLevelEnablementLimited PriorityLevelEnablement = \"Limited\"\n)\n\n// LimitedPriorityLevelConfiguration specifies how to handle requests that are subject to limits.\n// It addresses two issues:\n//   - How are requests for this priority level limited?\n//   - What should be done with requests that exceed the limit?\ntype LimitedPriorityLevelConfiguration struct {\n\t// `assuredConcurrencyShares` (ACS) configures the execution\n\t// limit, which is a limit on the number of requests of this\n\t// priority level that may be executing at a given time.  ACS must\n\t// be a positive number. The server's concurrency limit (SCL) is\n\t// divided among the concurrency-controlled priority levels in\n\t// proportion to their assured concurrency shares. This produces\n\t// the assured concurrency value (ACV) --- the number of requests\n\t// that may be executing at a time --- for each such priority\n\t// level:\n\t//\n\t//             ACV(l) = ceil( SCL * ACS(l) / ( sum[priority levels k] ACS(k) ) )\n\t//\n\t// bigger numbers of ACS mean more reserved concurrent requests (at the\n\t// expense of every other PL).\n\t// This field has a default value of 30.\n\t// +optional\n\tAssuredConcurrencyShares int32 `json:\"assuredConcurrencyShares\" protobuf:\"varint,1,opt,name=assuredConcurrencyShares\"`\n\n\t// `limitResponse` indicates what to do with requests that can not be executed right now\n\tLimitResponse LimitResponse `json:\"limitResponse,omitempty\" protobuf:\"bytes,2,opt,name=limitResponse\"`\n\n\t// `lendablePercent` prescribes the fraction of the level's NominalCL that\n\t// can be borrowed by other priority levels. The value of this\n\t// field must be between 0 and 100, inclusive, and it defaults to 0.\n\t// The number of seats that other levels can borrow from this level, known\n\t// as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\n\t//\n\t// LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )\n\t//\n\t// +optional\n\tLendablePercent *int32 `json:\"lendablePercent,omitempty\" protobuf:\"varint,3,opt,name=lendablePercent\"`\n\n\t// `borrowingLimitPercent`, if present, configures a limit on how many\n\t// seats this priority level can borrow from other priority levels.\n\t// The limit is known as this level's BorrowingConcurrencyLimit\n\t// (BorrowingCL) and is a limit on the total number of seats that this\n\t// level may borrow at any one time.\n\t// This field holds the ratio of that limit to the level's nominal\n\t// concurrency limit. When this field is non-nil, it must hold a\n\t// non-negative integer and the limit is calculated as follows.\n\t//\n\t// BorrowingCL(i) = round( NominalCL(i) * borrowingLimitPercent(i)/100.0 )\n\t//\n\t// The value of this field can be more than 100, implying that this\n\t// priority level can borrow a number of seats that is greater than\n\t// its own nominal concurrency limit (NominalCL).\n\t// When this field is left `nil`, the limit is effectively infinite.\n\t// +optional\n\tBorrowingLimitPercent *int32 `json:\"borrowingLimitPercent,omitempty\" protobuf:\"varint,4,opt,name=borrowingLimitPercent\"`\n}\n\n// ExemptPriorityLevelConfiguration describes the configurable aspects\n// of the handling of exempt requests.\n// In the mandatory exempt configuration object the values in the fields\n// here can be modified by authorized users, unlike the rest of the `spec`.\ntype ExemptPriorityLevelConfiguration struct {\n\t// `nominalConcurrencyShares` (NCS) contributes to the computation of the\n\t// NominalConcurrencyLimit (NominalCL) of this level.\n\t// This is the number of execution seats nominally reserved for this priority level.\n\t// This DOES NOT limit the dispatching from this priority level\n\t// but affects the other priority levels through the borrowing mechanism.\n\t// The server's concurrency limit (ServerCL) is divided among all the\n\t// priority levels in proportion to their NCS values:\n\t//\n\t// NominalCL(i)  = ceil( ServerCL * NCS(i) / sum_ncs )\n\t// sum_ncs = sum[priority level k] NCS(k)\n\t//\n\t// Bigger numbers mean a larger nominal concurrency limit,\n\t// at the expense of every other priority level.\n\t// This field has a default value of zero.\n\t// +optional\n\tNominalConcurrencyShares *int32 `json:\"nominalConcurrencyShares,omitempty\" protobuf:\"varint,1,opt,name=nominalConcurrencyShares\"`\n\t// `lendablePercent` prescribes the fraction of the level's NominalCL that\n\t// can be borrowed by other priority levels.  This value of this\n\t// field must be between 0 and 100, inclusive, and it defaults to 0.\n\t// The number of seats that other levels can borrow from this level, known\n\t// as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\n\t//\n\t// LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )\n\t//\n\t// +optional\n\tLendablePercent *int32 `json:\"lendablePercent,omitempty\" protobuf:\"varint,2,opt,name=lendablePercent\"`\n\t// The `BorrowingCL` of an Exempt priority level is implicitly `ServerCL`.\n\t// In other words, an exempt priority level\n\t// has no meaningful limit on how much it borrows.\n\t// There is no explicit representation of that here.\n}\n\n// LimitResponse defines how to handle requests that can not be executed right now.\n// +union\ntype LimitResponse struct {\n\t// `type` is \"Queue\" or \"Reject\".\n\t// \"Queue\" means that requests that can not be executed upon arrival\n\t// are held in a queue until they can be executed or a queuing limit\n\t// is reached.\n\t// \"Reject\" means that requests that can not be executed upon arrival\n\t// are rejected.\n\t// Required.\n\t// +unionDiscriminator\n\tType LimitResponseType `json:\"type\" protobuf:\"bytes,1,opt,name=type\"`\n\n\t// `queuing` holds the configuration parameters for queuing.\n\t// This field may be non-empty only if `type` is `\"Queue\"`.\n\t// +optional\n\tQueuing *QueuingConfiguration `json:\"queuing,omitempty\" protobuf:\"bytes,2,opt,name=queuing\"`\n}\n\n// LimitResponseType identifies how a Limited priority level handles a request that can not be executed right now\ntype LimitResponseType string\n\n// Supported limit responses.\nconst (\n\t// LimitResponseTypeQueue means that requests that can not be executed right now are queued until they can be executed or a queuing limit is hit\n\tLimitResponseTypeQueue LimitResponseType = \"Queue\"\n\n\t// LimitResponseTypeReject means that requests that can not be executed right now are rejected\n\tLimitResponseTypeReject LimitResponseType = \"Reject\"\n)\n\n// QueuingConfiguration holds the configuration parameters for queuing\ntype QueuingConfiguration struct {\n\t// `queues` is the number of queues for this priority level. The\n\t// queues exist independently at each apiserver. The value must be\n\t// positive.  Setting it to 1 effectively precludes\n\t// shufflesharding and thus makes the distinguisher method of\n\t// associated flow schemas irrelevant.  This field has a default\n\t// value of 64.\n\t// +optional\n\tQueues int32 `json:\"queues\" protobuf:\"varint,1,opt,name=queues\"`\n\n\t// `handSize` is a small positive number that configures the\n\t// shuffle sharding of requests into queues.  When enqueuing a request\n\t// at this priority level the request's flow identifier (a string\n\t// pair) is hashed and the hash value is used to shuffle the list\n\t// of queues and deal a hand of the size specified here.  The\n\t// request is put into one of the shortest queues in that hand.\n\t// `handSize` must be no larger than `queues`, and should be\n\t// significantly smaller (so that a few heavy flows do not\n\t// saturate most of the queues).  See the user-facing\n\t// documentation for more extensive guidance on setting this\n\t// field.  This field has a default value of 8.\n\t// +optional\n\tHandSize int32 `json:\"handSize\" protobuf:\"varint,2,opt,name=handSize\"`\n\n\t// `queueLengthLimit` is the maximum number of requests allowed to\n\t// be waiting in a given queue of this priority level at a time;\n\t// excess requests are rejected.  This value must be positive.  If\n\t// not specified, it will be defaulted to 50.\n\t// +optional\n\tQueueLengthLimit int32 `json:\"queueLengthLimit\" protobuf:\"varint,3,opt,name=queueLengthLimit\"`\n}\n\n// PriorityLevelConfigurationConditionType is a valid value for PriorityLevelConfigurationStatusCondition.Type\ntype PriorityLevelConfigurationConditionType string\n\n// PriorityLevelConfigurationStatus represents the current state of a \"request-priority\".\ntype PriorityLevelConfigurationStatus struct {\n\t// `conditions` is the current state of \"request-priority\".\n\t// +listType=map\n\t// +listMapKey=type\n\t// +optional\n\tConditions []PriorityLevelConfigurationCondition `json:\"conditions,omitempty\" protobuf:\"bytes,1,rep,name=conditions\"`\n}\n\n// PriorityLevelConfigurationCondition defines the condition of priority level.\ntype PriorityLevelConfigurationCondition struct {\n\t// `type` is the type of the condition.\n\t// Required.\n\tType PriorityLevelConfigurationConditionType `json:\"type,omitempty\" protobuf:\"bytes,1,opt,name=type\"`\n\t// `status` is the status of the condition.\n\t// Can be True, False, Unknown.\n\t// Required.\n\tStatus ConditionStatus `json:\"status,omitempty\" protobuf:\"bytes,2,opt,name=status\"`\n\t// `lastTransitionTime` is the last time the condition transitioned from one status to another.\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\t// `reason` is a unique, one-word, CamelCase reason for the condition's last transition.\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// `message` is a human-readable message indicating details about last transition.\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// ConditionStatus is the status of the condition.\ntype ConditionStatus string\n\n// These are valid condition statuses. \"ConditionTrue\" means a resource is in the condition.\n// \"ConditionFalse\" means a resource is not in the condition. \"ConditionUnknown\" means kubernetes\n// can't decide if a resource is in the condition or not. In the future, we could add other\n// intermediate conditions, e.g. ConditionDegraded.\nconst (\n\tConditionTrue    ConditionStatus = \"True\"\n\tConditionFalse   ConditionStatus = \"False\"\n\tConditionUnknown ConditionStatus = \"Unknown\"\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_ExemptPriorityLevelConfiguration = map[string]string{\n\t\"\":                         \"ExemptPriorityLevelConfiguration describes the configurable aspects of the handling of exempt requests. In the mandatory exempt configuration object the values in the fields here can be modified by authorized users, unlike the rest of the `spec`.\",\n\t\"nominalConcurrencyShares\": \"`nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats nominally reserved for this priority level. This DOES NOT limit the dispatching from this priority level but affects the other priority levels through the borrowing mechanism. The server's concurrency limit (ServerCL) is divided among all the priority levels in proportion to their NCS values:\\n\\nNominalCL(i)  = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k)\\n\\nBigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of zero.\",\n\t\"lendablePercent\":          \"`lendablePercent` prescribes the fraction of the level's NominalCL that can be borrowed by other priority levels.  This value of this field must be between 0 and 100, inclusive, and it defaults to 0. The number of seats that other levels can borrow from this level, known as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\\n\\nLendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )\",\n}\n\nfunc (ExemptPriorityLevelConfiguration) SwaggerDoc() map[string]string {\n\treturn map_ExemptPriorityLevelConfiguration\n}\n\nvar map_FlowDistinguisherMethod = map[string]string{\n\t\"\":     \"FlowDistinguisherMethod specifies the method of a flow distinguisher.\",\n\t\"type\": \"`type` is the type of flow distinguisher method The supported types are \\\"ByUser\\\" and \\\"ByNamespace\\\". Required.\",\n}\n\nfunc (FlowDistinguisherMethod) SwaggerDoc() map[string]string {\n\treturn map_FlowDistinguisherMethod\n}\n\nvar map_FlowSchema = map[string]string{\n\t\"\":         \"FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of inbound API requests with similar attributes and is identified by a pair of strings: the name of the FlowSchema and a \\\"flow distinguisher\\\".\",\n\t\"metadata\": \"`metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"`spec` is the specification of the desired behavior of a FlowSchema. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"`status` is the current status of a FlowSchema. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (FlowSchema) SwaggerDoc() map[string]string {\n\treturn map_FlowSchema\n}\n\nvar map_FlowSchemaCondition = map[string]string{\n\t\"\":                   \"FlowSchemaCondition describes conditions for a FlowSchema.\",\n\t\"type\":               \"`type` is the type of the condition. Required.\",\n\t\"status\":             \"`status` is the status of the condition. Can be True, False, Unknown. Required.\",\n\t\"lastTransitionTime\": \"`lastTransitionTime` is the last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"`reason` is a unique, one-word, CamelCase reason for the condition's last transition.\",\n\t\"message\":            \"`message` is a human-readable message indicating details about last transition.\",\n}\n\nfunc (FlowSchemaCondition) SwaggerDoc() map[string]string {\n\treturn map_FlowSchemaCondition\n}\n\nvar map_FlowSchemaList = map[string]string{\n\t\"\":         \"FlowSchemaList is a list of FlowSchema objects.\",\n\t\"metadata\": \"`metadata` is the standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"`items` is a list of FlowSchemas.\",\n}\n\nfunc (FlowSchemaList) SwaggerDoc() map[string]string {\n\treturn map_FlowSchemaList\n}\n\nvar map_FlowSchemaSpec = map[string]string{\n\t\"\":                           \"FlowSchemaSpec describes how the FlowSchema's specification looks like.\",\n\t\"priorityLevelConfiguration\": \"`priorityLevelConfiguration` should reference a PriorityLevelConfiguration in the cluster. If the reference cannot be resolved, the FlowSchema will be ignored and marked as invalid in its status. Required.\",\n\t\"matchingPrecedence\":         \"`matchingPrecedence` is used to choose among the FlowSchemas that match a given request. The chosen FlowSchema is among those with the numerically lowest (which we take to be logically highest) MatchingPrecedence.  Each MatchingPrecedence value must be ranged in [1,10000]. Note that if the precedence is not specified, it will be set to 1000 as default.\",\n\t\"distinguisherMethod\":        \"`distinguisherMethod` defines how to compute the flow distinguisher for requests that match this schema. `nil` specifies that the distinguisher is disabled and thus will always be the empty string.\",\n\t\"rules\":                      \"`rules` describes which requests will match this flow schema. This FlowSchema matches a request if and only if at least one member of rules matches the request. if it is an empty slice, there will be no requests matching the FlowSchema.\",\n}\n\nfunc (FlowSchemaSpec) SwaggerDoc() map[string]string {\n\treturn map_FlowSchemaSpec\n}\n\nvar map_FlowSchemaStatus = map[string]string{\n\t\"\":           \"FlowSchemaStatus represents the current state of a FlowSchema.\",\n\t\"conditions\": \"`conditions` is a list of the current states of FlowSchema.\",\n}\n\nfunc (FlowSchemaStatus) SwaggerDoc() map[string]string {\n\treturn map_FlowSchemaStatus\n}\n\nvar map_GroupSubject = map[string]string{\n\t\"\":     \"GroupSubject holds detailed information for group-kind subject.\",\n\t\"name\": \"name is the user group that matches, or \\\"*\\\" to match all user groups. See https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go for some well-known group names. Required.\",\n}\n\nfunc (GroupSubject) SwaggerDoc() map[string]string {\n\treturn map_GroupSubject\n}\n\nvar map_LimitResponse = map[string]string{\n\t\"\":        \"LimitResponse defines how to handle requests that can not be executed right now.\",\n\t\"type\":    \"`type` is \\\"Queue\\\" or \\\"Reject\\\". \\\"Queue\\\" means that requests that can not be executed upon arrival are held in a queue until they can be executed or a queuing limit is reached. \\\"Reject\\\" means that requests that can not be executed upon arrival are rejected. Required.\",\n\t\"queuing\": \"`queuing` holds the configuration parameters for queuing. This field may be non-empty only if `type` is `\\\"Queue\\\"`.\",\n}\n\nfunc (LimitResponse) SwaggerDoc() map[string]string {\n\treturn map_LimitResponse\n}\n\nvar map_LimitedPriorityLevelConfiguration = map[string]string{\n\t\"\":                         \"LimitedPriorityLevelConfiguration specifies how to handle requests that are subject to limits. It addresses two issues:\\n  - How are requests for this priority level limited?\\n  - What should be done with requests that exceed the limit?\",\n\t\"assuredConcurrencyShares\": \"`assuredConcurrencyShares` (ACS) configures the execution limit, which is a limit on the number of requests of this priority level that may be executing at a given time.  ACS must be a positive number. The server's concurrency limit (SCL) is divided among the concurrency-controlled priority levels in proportion to their assured concurrency shares. This produces the assured concurrency value (ACV) \",\n\t\"limitResponse\":            \"`limitResponse` indicates what to do with requests that can not be executed right now\",\n\t\"lendablePercent\":          \"`lendablePercent` prescribes the fraction of the level's NominalCL that can be borrowed by other priority levels. The value of this field must be between 0 and 100, inclusive, and it defaults to 0. The number of seats that other levels can borrow from this level, known as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\\n\\nLendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )\",\n\t\"borrowingLimitPercent\":    \"`borrowingLimitPercent`, if present, configures a limit on how many seats this priority level can borrow from other priority levels. The limit is known as this level's BorrowingConcurrencyLimit (BorrowingCL) and is a limit on the total number of seats that this level may borrow at any one time. This field holds the ratio of that limit to the level's nominal concurrency limit. When this field is non-nil, it must hold a non-negative integer and the limit is calculated as follows.\\n\\nBorrowingCL(i) = round( NominalCL(i) * borrowingLimitPercent(i)/100.0 )\\n\\nThe value of this field can be more than 100, implying that this priority level can borrow a number of seats that is greater than its own nominal concurrency limit (NominalCL). When this field is left `nil`, the limit is effectively infinite.\",\n}\n\nfunc (LimitedPriorityLevelConfiguration) SwaggerDoc() map[string]string {\n\treturn map_LimitedPriorityLevelConfiguration\n}\n\nvar map_NonResourcePolicyRule = map[string]string{\n\t\"\":                \"NonResourcePolicyRule is a predicate that matches non-resource requests according to their verb and the target non-resource URL. A NonResourcePolicyRule matches a request if and only if both (a) at least one member of verbs matches the request and (b) at least one member of nonResourceURLs matches the request.\",\n\t\"verbs\":           \"`verbs` is a list of matching verbs and may not be empty. \\\"*\\\" matches all verbs. If it is present, it must be the only entry. Required.\",\n\t\"nonResourceURLs\": \"`nonResourceURLs` is a set of url prefixes that a user should have access to and may not be empty. For example:\\n  - \\\"/healthz\\\" is legal\\n  - \\\"/hea*\\\" is illegal\\n  - \\\"/hea\\\" is legal but matches nothing\\n  - \\\"/hea/*\\\" also matches nothing\\n  - \\\"/healthz/*\\\" matches all per-component health checks.\\n\\\"*\\\" matches all non-resource urls. if it is present, it must be the only entry. Required.\",\n}\n\nfunc (NonResourcePolicyRule) SwaggerDoc() map[string]string {\n\treturn map_NonResourcePolicyRule\n}\n\nvar map_PolicyRulesWithSubjects = map[string]string{\n\t\"\":                 \"PolicyRulesWithSubjects prescribes a test that applies to a request to an apiserver. The test considers the subject making the request, the verb being requested, and the resource to be acted upon. This PolicyRulesWithSubjects matches a request if and only if both (a) at least one member of subjects matches the request and (b) at least one member of resourceRules or nonResourceRules matches the request.\",\n\t\"subjects\":         \"subjects is the list of normal user, serviceaccount, or group that this rule cares about. There must be at least one member in this slice. A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request. Required.\",\n\t\"resourceRules\":    \"`resourceRules` is a slice of ResourcePolicyRules that identify matching requests according to their verb and the target resource. At least one of `resourceRules` and `nonResourceRules` has to be non-empty.\",\n\t\"nonResourceRules\": \"`nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests according to their verb and the target non-resource URL.\",\n}\n\nfunc (PolicyRulesWithSubjects) SwaggerDoc() map[string]string {\n\treturn map_PolicyRulesWithSubjects\n}\n\nvar map_PriorityLevelConfiguration = map[string]string{\n\t\"\":         \"PriorityLevelConfiguration represents the configuration of a priority level.\",\n\t\"metadata\": \"`metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"`spec` is the specification of the desired behavior of a \\\"request-priority\\\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"`status` is the current status of a \\\"request-priority\\\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (PriorityLevelConfiguration) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfiguration\n}\n\nvar map_PriorityLevelConfigurationCondition = map[string]string{\n\t\"\":                   \"PriorityLevelConfigurationCondition defines the condition of priority level.\",\n\t\"type\":               \"`type` is the type of the condition. Required.\",\n\t\"status\":             \"`status` is the status of the condition. Can be True, False, Unknown. Required.\",\n\t\"lastTransitionTime\": \"`lastTransitionTime` is the last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"`reason` is a unique, one-word, CamelCase reason for the condition's last transition.\",\n\t\"message\":            \"`message` is a human-readable message indicating details about last transition.\",\n}\n\nfunc (PriorityLevelConfigurationCondition) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfigurationCondition\n}\n\nvar map_PriorityLevelConfigurationList = map[string]string{\n\t\"\":         \"PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects.\",\n\t\"metadata\": \"`metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"`items` is a list of request-priorities.\",\n}\n\nfunc (PriorityLevelConfigurationList) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfigurationList\n}\n\nvar map_PriorityLevelConfigurationReference = map[string]string{\n\t\"\":     \"PriorityLevelConfigurationReference contains information that points to the \\\"request-priority\\\" being used.\",\n\t\"name\": \"`name` is the name of the priority level configuration being referenced Required.\",\n}\n\nfunc (PriorityLevelConfigurationReference) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfigurationReference\n}\n\nvar map_PriorityLevelConfigurationSpec = map[string]string{\n\t\"\":        \"PriorityLevelConfigurationSpec specifies the configuration of a priority level.\",\n\t\"type\":    \"`type` indicates whether this priority level is subject to limitation on request execution.  A value of `\\\"Exempt\\\"` means that requests of this priority level are not subject to a limit (and thus are never queued) and do not detract from the capacity made available to other priority levels.  A value of `\\\"Limited\\\"` means that (a) requests of this priority level _are_ subject to limits and (b) some of the server's limited capacity is made available exclusively to this priority level. Required.\",\n\t\"limited\": \"`limited` specifies how requests are handled for a Limited priority level. This field must be non-empty if and only if `type` is `\\\"Limited\\\"`.\",\n\t\"exempt\":  \"`exempt` specifies how requests are handled for an exempt priority level. This field MUST be empty if `type` is `\\\"Limited\\\"`. This field MAY be non-empty if `type` is `\\\"Exempt\\\"`. If empty and `type` is `\\\"Exempt\\\"` then the default values for `ExemptPriorityLevelConfiguration` apply.\",\n}\n\nfunc (PriorityLevelConfigurationSpec) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfigurationSpec\n}\n\nvar map_PriorityLevelConfigurationStatus = map[string]string{\n\t\"\":           \"PriorityLevelConfigurationStatus represents the current state of a \\\"request-priority\\\".\",\n\t\"conditions\": \"`conditions` is the current state of \\\"request-priority\\\".\",\n}\n\nfunc (PriorityLevelConfigurationStatus) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfigurationStatus\n}\n\nvar map_QueuingConfiguration = map[string]string{\n\t\"\":                 \"QueuingConfiguration holds the configuration parameters for queuing\",\n\t\"queues\":           \"`queues` is the number of queues for this priority level. The queues exist independently at each apiserver. The value must be positive.  Setting it to 1 effectively precludes shufflesharding and thus makes the distinguisher method of associated flow schemas irrelevant.  This field has a default value of 64.\",\n\t\"handSize\":         \"`handSize` is a small positive number that configures the shuffle sharding of requests into queues.  When enqueuing a request at this priority level the request's flow identifier (a string pair) is hashed and the hash value is used to shuffle the list of queues and deal a hand of the size specified here.  The request is put into one of the shortest queues in that hand. `handSize` must be no larger than `queues`, and should be significantly smaller (so that a few heavy flows do not saturate most of the queues).  See the user-facing documentation for more extensive guidance on setting this field.  This field has a default value of 8.\",\n\t\"queueLengthLimit\": \"`queueLengthLimit` is the maximum number of requests allowed to be waiting in a given queue of this priority level at a time; excess requests are rejected.  This value must be positive.  If not specified, it will be defaulted to 50.\",\n}\n\nfunc (QueuingConfiguration) SwaggerDoc() map[string]string {\n\treturn map_QueuingConfiguration\n}\n\nvar map_ResourcePolicyRule = map[string]string{\n\t\"\":             \"ResourcePolicyRule is a predicate that matches some resource requests, testing the request's verb and the target resource. A ResourcePolicyRule matches a resource request if and only if: (a) at least one member of verbs matches the request, (b) at least one member of apiGroups matches the request, (c) at least one member of resources matches the request, and (d) either (d1) the request does not specify a namespace (i.e., `Namespace==\\\"\\\"`) and clusterScope is true or (d2) the request specifies a namespace and least one member of namespaces matches the request's namespace.\",\n\t\"verbs\":        \"`verbs` is a list of matching verbs and may not be empty. \\\"*\\\" matches all verbs and, if present, must be the only entry. Required.\",\n\t\"apiGroups\":    \"`apiGroups` is a list of matching API groups and may not be empty. \\\"*\\\" matches all API groups and, if present, must be the only entry. Required.\",\n\t\"resources\":    \"`resources` is a list of matching resources (i.e., lowercase and plural) with, if desired, subresource.  For example, [ \\\"services\\\", \\\"nodes/status\\\" ].  This list may not be empty. \\\"*\\\" matches all resources and, if present, must be the only entry. Required.\",\n\t\"clusterScope\": \"`clusterScope` indicates whether to match requests that do not specify a namespace (which happens either because the resource is not namespaced or the request targets all namespaces). If this field is omitted or false then the `namespaces` field must contain a non-empty list.\",\n\t\"namespaces\":   \"`namespaces` is a list of target namespaces that restricts matches.  A request that specifies a target namespace matches only if either (a) this list contains that target namespace or (b) this list contains \\\"*\\\".  Note that \\\"*\\\" matches any specified namespace but does not match a request that _does not specify_ a namespace (see the `clusterScope` field for that). This list may be empty, but only if `clusterScope` is true.\",\n}\n\nfunc (ResourcePolicyRule) SwaggerDoc() map[string]string {\n\treturn map_ResourcePolicyRule\n}\n\nvar map_ServiceAccountSubject = map[string]string{\n\t\"\":          \"ServiceAccountSubject holds detailed information for service-account-kind subject.\",\n\t\"namespace\": \"`namespace` is the namespace of matching ServiceAccount objects. Required.\",\n\t\"name\":      \"`name` is the name of matching ServiceAccount objects, or \\\"*\\\" to match regardless of name. Required.\",\n}\n\nfunc (ServiceAccountSubject) SwaggerDoc() map[string]string {\n\treturn map_ServiceAccountSubject\n}\n\nvar map_Subject = map[string]string{\n\t\"\":               \"Subject matches the originator of a request, as identified by the request authentication system. There are three ways of matching an originator; by user, group, or service account.\",\n\t\"kind\":           \"`kind` indicates which one of the other fields is non-empty. Required\",\n\t\"user\":           \"`user` matches based on username.\",\n\t\"group\":          \"`group` matches based on user group name.\",\n\t\"serviceAccount\": \"`serviceAccount` matches ServiceAccounts.\",\n}\n\nfunc (Subject) SwaggerDoc() map[string]string {\n\treturn map_Subject\n}\n\nvar map_UserSubject = map[string]string{\n\t\"\":     \"UserSubject holds detailed information for user-kind subject.\",\n\t\"name\": \"`name` is the username that matches, or \\\"*\\\" to match all usernames. Required.\",\n}\n\nfunc (UserSubject) SwaggerDoc() map[string]string {\n\treturn map_UserSubject\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExemptPriorityLevelConfiguration) DeepCopyInto(out *ExemptPriorityLevelConfiguration) {\n\t*out = *in\n\tif in.NominalConcurrencyShares != nil {\n\t\tin, out := &in.NominalConcurrencyShares, &out.NominalConcurrencyShares\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.LendablePercent != nil {\n\t\tin, out := &in.LendablePercent, &out.LendablePercent\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExemptPriorityLevelConfiguration.\nfunc (in *ExemptPriorityLevelConfiguration) DeepCopy() *ExemptPriorityLevelConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExemptPriorityLevelConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowDistinguisherMethod) DeepCopyInto(out *FlowDistinguisherMethod) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowDistinguisherMethod.\nfunc (in *FlowDistinguisherMethod) DeepCopy() *FlowDistinguisherMethod {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowDistinguisherMethod)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowSchema) DeepCopyInto(out *FlowSchema) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowSchema.\nfunc (in *FlowSchema) DeepCopy() *FlowSchema {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowSchema)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *FlowSchema) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowSchemaCondition) DeepCopyInto(out *FlowSchemaCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowSchemaCondition.\nfunc (in *FlowSchemaCondition) DeepCopy() *FlowSchemaCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowSchemaCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowSchemaList) DeepCopyInto(out *FlowSchemaList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]FlowSchema, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowSchemaList.\nfunc (in *FlowSchemaList) DeepCopy() *FlowSchemaList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowSchemaList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *FlowSchemaList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowSchemaSpec) DeepCopyInto(out *FlowSchemaSpec) {\n\t*out = *in\n\tout.PriorityLevelConfiguration = in.PriorityLevelConfiguration\n\tif in.DistinguisherMethod != nil {\n\t\tin, out := &in.DistinguisherMethod, &out.DistinguisherMethod\n\t\t*out = new(FlowDistinguisherMethod)\n\t\t**out = **in\n\t}\n\tif in.Rules != nil {\n\t\tin, out := &in.Rules, &out.Rules\n\t\t*out = make([]PolicyRulesWithSubjects, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowSchemaSpec.\nfunc (in *FlowSchemaSpec) DeepCopy() *FlowSchemaSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowSchemaSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowSchemaStatus) DeepCopyInto(out *FlowSchemaStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]FlowSchemaCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowSchemaStatus.\nfunc (in *FlowSchemaStatus) DeepCopy() *FlowSchemaStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowSchemaStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *GroupSubject) DeepCopyInto(out *GroupSubject) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupSubject.\nfunc (in *GroupSubject) DeepCopy() *GroupSubject {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(GroupSubject)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LimitResponse) DeepCopyInto(out *LimitResponse) {\n\t*out = *in\n\tif in.Queuing != nil {\n\t\tin, out := &in.Queuing, &out.Queuing\n\t\t*out = new(QueuingConfiguration)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LimitResponse.\nfunc (in *LimitResponse) DeepCopy() *LimitResponse {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LimitResponse)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LimitedPriorityLevelConfiguration) DeepCopyInto(out *LimitedPriorityLevelConfiguration) {\n\t*out = *in\n\tin.LimitResponse.DeepCopyInto(&out.LimitResponse)\n\tif in.LendablePercent != nil {\n\t\tin, out := &in.LendablePercent, &out.LendablePercent\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.BorrowingLimitPercent != nil {\n\t\tin, out := &in.BorrowingLimitPercent, &out.BorrowingLimitPercent\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LimitedPriorityLevelConfiguration.\nfunc (in *LimitedPriorityLevelConfiguration) DeepCopy() *LimitedPriorityLevelConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LimitedPriorityLevelConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NonResourcePolicyRule) DeepCopyInto(out *NonResourcePolicyRule) {\n\t*out = *in\n\tif in.Verbs != nil {\n\t\tin, out := &in.Verbs, &out.Verbs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.NonResourceURLs != nil {\n\t\tin, out := &in.NonResourceURLs, &out.NonResourceURLs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NonResourcePolicyRule.\nfunc (in *NonResourcePolicyRule) DeepCopy() *NonResourcePolicyRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NonResourcePolicyRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PolicyRulesWithSubjects) DeepCopyInto(out *PolicyRulesWithSubjects) {\n\t*out = *in\n\tif in.Subjects != nil {\n\t\tin, out := &in.Subjects, &out.Subjects\n\t\t*out = make([]Subject, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.ResourceRules != nil {\n\t\tin, out := &in.ResourceRules, &out.ResourceRules\n\t\t*out = make([]ResourcePolicyRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.NonResourceRules != nil {\n\t\tin, out := &in.NonResourceRules, &out.NonResourceRules\n\t\t*out = make([]NonResourcePolicyRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyRulesWithSubjects.\nfunc (in *PolicyRulesWithSubjects) DeepCopy() *PolicyRulesWithSubjects {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PolicyRulesWithSubjects)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfiguration) DeepCopyInto(out *PriorityLevelConfiguration) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfiguration.\nfunc (in *PriorityLevelConfiguration) DeepCopy() *PriorityLevelConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PriorityLevelConfiguration) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfigurationCondition) DeepCopyInto(out *PriorityLevelConfigurationCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfigurationCondition.\nfunc (in *PriorityLevelConfigurationCondition) DeepCopy() *PriorityLevelConfigurationCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfigurationCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfigurationList) DeepCopyInto(out *PriorityLevelConfigurationList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]PriorityLevelConfiguration, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfigurationList.\nfunc (in *PriorityLevelConfigurationList) DeepCopy() *PriorityLevelConfigurationList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfigurationList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PriorityLevelConfigurationList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfigurationReference) DeepCopyInto(out *PriorityLevelConfigurationReference) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfigurationReference.\nfunc (in *PriorityLevelConfigurationReference) DeepCopy() *PriorityLevelConfigurationReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfigurationReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfigurationSpec) DeepCopyInto(out *PriorityLevelConfigurationSpec) {\n\t*out = *in\n\tif in.Limited != nil {\n\t\tin, out := &in.Limited, &out.Limited\n\t\t*out = new(LimitedPriorityLevelConfiguration)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Exempt != nil {\n\t\tin, out := &in.Exempt, &out.Exempt\n\t\t*out = new(ExemptPriorityLevelConfiguration)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfigurationSpec.\nfunc (in *PriorityLevelConfigurationSpec) DeepCopy() *PriorityLevelConfigurationSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfigurationSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfigurationStatus) DeepCopyInto(out *PriorityLevelConfigurationStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]PriorityLevelConfigurationCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfigurationStatus.\nfunc (in *PriorityLevelConfigurationStatus) DeepCopy() *PriorityLevelConfigurationStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfigurationStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *QueuingConfiguration) DeepCopyInto(out *QueuingConfiguration) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new QueuingConfiguration.\nfunc (in *QueuingConfiguration) DeepCopy() *QueuingConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(QueuingConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourcePolicyRule) DeepCopyInto(out *ResourcePolicyRule) {\n\t*out = *in\n\tif in.Verbs != nil {\n\t\tin, out := &in.Verbs, &out.Verbs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.APIGroups != nil {\n\t\tin, out := &in.APIGroups, &out.APIGroups\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Resources != nil {\n\t\tin, out := &in.Resources, &out.Resources\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Namespaces != nil {\n\t\tin, out := &in.Namespaces, &out.Namespaces\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourcePolicyRule.\nfunc (in *ResourcePolicyRule) DeepCopy() *ResourcePolicyRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourcePolicyRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ServiceAccountSubject) DeepCopyInto(out *ServiceAccountSubject) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceAccountSubject.\nfunc (in *ServiceAccountSubject) DeepCopy() *ServiceAccountSubject {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ServiceAccountSubject)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Subject) DeepCopyInto(out *Subject) {\n\t*out = *in\n\tif in.User != nil {\n\t\tin, out := &in.User, &out.User\n\t\t*out = new(UserSubject)\n\t\t**out = **in\n\t}\n\tif in.Group != nil {\n\t\tin, out := &in.Group, &out.Group\n\t\t*out = new(GroupSubject)\n\t\t**out = **in\n\t}\n\tif in.ServiceAccount != nil {\n\t\tin, out := &in.ServiceAccount, &out.ServiceAccount\n\t\t*out = new(ServiceAccountSubject)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Subject.\nfunc (in *Subject) DeepCopy() *Subject {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Subject)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *UserSubject) DeepCopyInto(out *UserSubject) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserSubject.\nfunc (in *UserSubject) DeepCopy() *UserSubject {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(UserSubject)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *FlowSchema) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 20\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *FlowSchema) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 23\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *FlowSchema) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"flowcontrol.apiserver.k8s.io\", Version: \"v1beta3\", Kind: \"FlowSchema\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *FlowSchema) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 26\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *FlowSchemaList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 20\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *FlowSchemaList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 23\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *FlowSchemaList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"flowcontrol.apiserver.k8s.io\", Version: \"v1beta3\", Kind: \"FlowSchemaList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *FlowSchemaList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 26\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *PriorityLevelConfiguration) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 20\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *PriorityLevelConfiguration) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 23\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *PriorityLevelConfiguration) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"flowcontrol.apiserver.k8s.io\", Version: \"v1beta3\", Kind: \"PriorityLevelConfiguration\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *PriorityLevelConfiguration) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 26\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *PriorityLevelConfigurationList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 20\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *PriorityLevelConfigurationList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 23\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *PriorityLevelConfigurationList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"flowcontrol.apiserver.k8s.io\", Version: \"v1beta3\", Kind: \"PriorityLevelConfigurationList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *PriorityLevelConfigurationList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 26\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta2/doc.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\n// +groupName=flowcontrol.apiserver.k8s.io\n\n// Package v1beta2 holds api types of version v1alpha1 for group \"flowcontrol.apiserver.k8s.io\".\npackage v1beta2 // import \"k8s.io/api/flowcontrol/v1beta2\"\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta2/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/flowcontrol/v1beta2/generated.proto\n\npackage v1beta2\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *ExemptPriorityLevelConfiguration) Reset()      { *m = ExemptPriorityLevelConfiguration{} }\nfunc (*ExemptPriorityLevelConfiguration) ProtoMessage() {}\nfunc (*ExemptPriorityLevelConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2e620af2eea53237, []int{0}\n}\nfunc (m *ExemptPriorityLevelConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ExemptPriorityLevelConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ExemptPriorityLevelConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ExemptPriorityLevelConfiguration.Merge(m, src)\n}\nfunc (m *ExemptPriorityLevelConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ExemptPriorityLevelConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_ExemptPriorityLevelConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ExemptPriorityLevelConfiguration proto.InternalMessageInfo\n\nfunc (m *FlowDistinguisherMethod) Reset()      { *m = FlowDistinguisherMethod{} }\nfunc (*FlowDistinguisherMethod) ProtoMessage() {}\nfunc (*FlowDistinguisherMethod) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2e620af2eea53237, []int{1}\n}\nfunc (m *FlowDistinguisherMethod) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowDistinguisherMethod) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowDistinguisherMethod) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowDistinguisherMethod.Merge(m, src)\n}\nfunc (m *FlowDistinguisherMethod) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowDistinguisherMethod) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowDistinguisherMethod.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowDistinguisherMethod proto.InternalMessageInfo\n\nfunc (m *FlowSchema) Reset()      { *m = FlowSchema{} }\nfunc (*FlowSchema) ProtoMessage() {}\nfunc (*FlowSchema) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2e620af2eea53237, []int{2}\n}\nfunc (m *FlowSchema) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowSchema) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowSchema) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowSchema.Merge(m, src)\n}\nfunc (m *FlowSchema) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowSchema) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowSchema.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowSchema proto.InternalMessageInfo\n\nfunc (m *FlowSchemaCondition) Reset()      { *m = FlowSchemaCondition{} }\nfunc (*FlowSchemaCondition) ProtoMessage() {}\nfunc (*FlowSchemaCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2e620af2eea53237, []int{3}\n}\nfunc (m *FlowSchemaCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowSchemaCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowSchemaCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowSchemaCondition.Merge(m, src)\n}\nfunc (m *FlowSchemaCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowSchemaCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowSchemaCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowSchemaCondition proto.InternalMessageInfo\n\nfunc (m *FlowSchemaList) Reset()      { *m = FlowSchemaList{} }\nfunc (*FlowSchemaList) ProtoMessage() {}\nfunc (*FlowSchemaList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2e620af2eea53237, []int{4}\n}\nfunc (m *FlowSchemaList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowSchemaList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowSchemaList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowSchemaList.Merge(m, src)\n}\nfunc (m *FlowSchemaList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowSchemaList) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowSchemaList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowSchemaList proto.InternalMessageInfo\n\nfunc (m *FlowSchemaSpec) Reset()      { *m = FlowSchemaSpec{} }\nfunc (*FlowSchemaSpec) ProtoMessage() {}\nfunc (*FlowSchemaSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2e620af2eea53237, []int{5}\n}\nfunc (m *FlowSchemaSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowSchemaSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowSchemaSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowSchemaSpec.Merge(m, src)\n}\nfunc (m *FlowSchemaSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowSchemaSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowSchemaSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowSchemaSpec proto.InternalMessageInfo\n\nfunc (m *FlowSchemaStatus) Reset()      { *m = FlowSchemaStatus{} }\nfunc (*FlowSchemaStatus) ProtoMessage() {}\nfunc (*FlowSchemaStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2e620af2eea53237, []int{6}\n}\nfunc (m *FlowSchemaStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowSchemaStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowSchemaStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowSchemaStatus.Merge(m, src)\n}\nfunc (m *FlowSchemaStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowSchemaStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowSchemaStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowSchemaStatus proto.InternalMessageInfo\n\nfunc (m *GroupSubject) Reset()      { *m = GroupSubject{} }\nfunc (*GroupSubject) ProtoMessage() {}\nfunc (*GroupSubject) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2e620af2eea53237, []int{7}\n}\nfunc (m *GroupSubject) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *GroupSubject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *GroupSubject) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_GroupSubject.Merge(m, src)\n}\nfunc (m *GroupSubject) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *GroupSubject) XXX_DiscardUnknown() {\n\txxx_messageInfo_GroupSubject.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_GroupSubject proto.InternalMessageInfo\n\nfunc (m *LimitResponse) Reset()      { *m = LimitResponse{} }\nfunc (*LimitResponse) ProtoMessage() {}\nfunc (*LimitResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2e620af2eea53237, []int{8}\n}\nfunc (m *LimitResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LimitResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LimitResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LimitResponse.Merge(m, src)\n}\nfunc (m *LimitResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LimitResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_LimitResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LimitResponse proto.InternalMessageInfo\n\nfunc (m *LimitedPriorityLevelConfiguration) Reset()      { *m = LimitedPriorityLevelConfiguration{} }\nfunc (*LimitedPriorityLevelConfiguration) ProtoMessage() {}\nfunc (*LimitedPriorityLevelConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2e620af2eea53237, []int{9}\n}\nfunc (m *LimitedPriorityLevelConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LimitedPriorityLevelConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LimitedPriorityLevelConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LimitedPriorityLevelConfiguration.Merge(m, src)\n}\nfunc (m *LimitedPriorityLevelConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LimitedPriorityLevelConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_LimitedPriorityLevelConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LimitedPriorityLevelConfiguration proto.InternalMessageInfo\n\nfunc (m *NonResourcePolicyRule) Reset()      { *m = NonResourcePolicyRule{} }\nfunc (*NonResourcePolicyRule) ProtoMessage() {}\nfunc (*NonResourcePolicyRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2e620af2eea53237, []int{10}\n}\nfunc (m *NonResourcePolicyRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NonResourcePolicyRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NonResourcePolicyRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NonResourcePolicyRule.Merge(m, src)\n}\nfunc (m *NonResourcePolicyRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NonResourcePolicyRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_NonResourcePolicyRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NonResourcePolicyRule proto.InternalMessageInfo\n\nfunc (m *PolicyRulesWithSubjects) Reset()      { *m = PolicyRulesWithSubjects{} }\nfunc (*PolicyRulesWithSubjects) ProtoMessage() {}\nfunc (*PolicyRulesWithSubjects) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2e620af2eea53237, []int{11}\n}\nfunc (m *PolicyRulesWithSubjects) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PolicyRulesWithSubjects) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PolicyRulesWithSubjects) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PolicyRulesWithSubjects.Merge(m, src)\n}\nfunc (m *PolicyRulesWithSubjects) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PolicyRulesWithSubjects) XXX_DiscardUnknown() {\n\txxx_messageInfo_PolicyRulesWithSubjects.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PolicyRulesWithSubjects proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfiguration) Reset()      { *m = PriorityLevelConfiguration{} }\nfunc (*PriorityLevelConfiguration) ProtoMessage() {}\nfunc (*PriorityLevelConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2e620af2eea53237, []int{12}\n}\nfunc (m *PriorityLevelConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfiguration.Merge(m, src)\n}\nfunc (m *PriorityLevelConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfiguration proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfigurationCondition) Reset()      { *m = PriorityLevelConfigurationCondition{} }\nfunc (*PriorityLevelConfigurationCondition) ProtoMessage() {}\nfunc (*PriorityLevelConfigurationCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2e620af2eea53237, []int{13}\n}\nfunc (m *PriorityLevelConfigurationCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfigurationCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfigurationCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfigurationCondition.Merge(m, src)\n}\nfunc (m *PriorityLevelConfigurationCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfigurationCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfigurationCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfigurationCondition proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfigurationList) Reset()      { *m = PriorityLevelConfigurationList{} }\nfunc (*PriorityLevelConfigurationList) ProtoMessage() {}\nfunc (*PriorityLevelConfigurationList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2e620af2eea53237, []int{14}\n}\nfunc (m *PriorityLevelConfigurationList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfigurationList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfigurationList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfigurationList.Merge(m, src)\n}\nfunc (m *PriorityLevelConfigurationList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfigurationList) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfigurationList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfigurationList proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfigurationReference) Reset()      { *m = PriorityLevelConfigurationReference{} }\nfunc (*PriorityLevelConfigurationReference) ProtoMessage() {}\nfunc (*PriorityLevelConfigurationReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2e620af2eea53237, []int{15}\n}\nfunc (m *PriorityLevelConfigurationReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfigurationReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfigurationReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfigurationReference.Merge(m, src)\n}\nfunc (m *PriorityLevelConfigurationReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfigurationReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfigurationReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfigurationReference proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfigurationSpec) Reset()      { *m = PriorityLevelConfigurationSpec{} }\nfunc (*PriorityLevelConfigurationSpec) ProtoMessage() {}\nfunc (*PriorityLevelConfigurationSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2e620af2eea53237, []int{16}\n}\nfunc (m *PriorityLevelConfigurationSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfigurationSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfigurationSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfigurationSpec.Merge(m, src)\n}\nfunc (m *PriorityLevelConfigurationSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfigurationSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfigurationSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfigurationSpec proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfigurationStatus) Reset()      { *m = PriorityLevelConfigurationStatus{} }\nfunc (*PriorityLevelConfigurationStatus) ProtoMessage() {}\nfunc (*PriorityLevelConfigurationStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2e620af2eea53237, []int{17}\n}\nfunc (m *PriorityLevelConfigurationStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfigurationStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfigurationStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfigurationStatus.Merge(m, src)\n}\nfunc (m *PriorityLevelConfigurationStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfigurationStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfigurationStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfigurationStatus proto.InternalMessageInfo\n\nfunc (m *QueuingConfiguration) Reset()      { *m = QueuingConfiguration{} }\nfunc (*QueuingConfiguration) ProtoMessage() {}\nfunc (*QueuingConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2e620af2eea53237, []int{18}\n}\nfunc (m *QueuingConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *QueuingConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *QueuingConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_QueuingConfiguration.Merge(m, src)\n}\nfunc (m *QueuingConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *QueuingConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_QueuingConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_QueuingConfiguration proto.InternalMessageInfo\n\nfunc (m *ResourcePolicyRule) Reset()      { *m = ResourcePolicyRule{} }\nfunc (*ResourcePolicyRule) ProtoMessage() {}\nfunc (*ResourcePolicyRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2e620af2eea53237, []int{19}\n}\nfunc (m *ResourcePolicyRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourcePolicyRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourcePolicyRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourcePolicyRule.Merge(m, src)\n}\nfunc (m *ResourcePolicyRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourcePolicyRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourcePolicyRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourcePolicyRule proto.InternalMessageInfo\n\nfunc (m *ServiceAccountSubject) Reset()      { *m = ServiceAccountSubject{} }\nfunc (*ServiceAccountSubject) ProtoMessage() {}\nfunc (*ServiceAccountSubject) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2e620af2eea53237, []int{20}\n}\nfunc (m *ServiceAccountSubject) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ServiceAccountSubject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ServiceAccountSubject) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServiceAccountSubject.Merge(m, src)\n}\nfunc (m *ServiceAccountSubject) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ServiceAccountSubject) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServiceAccountSubject.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServiceAccountSubject proto.InternalMessageInfo\n\nfunc (m *Subject) Reset()      { *m = Subject{} }\nfunc (*Subject) ProtoMessage() {}\nfunc (*Subject) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2e620af2eea53237, []int{21}\n}\nfunc (m *Subject) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Subject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Subject) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Subject.Merge(m, src)\n}\nfunc (m *Subject) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Subject) XXX_DiscardUnknown() {\n\txxx_messageInfo_Subject.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Subject proto.InternalMessageInfo\n\nfunc (m *UserSubject) Reset()      { *m = UserSubject{} }\nfunc (*UserSubject) ProtoMessage() {}\nfunc (*UserSubject) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2e620af2eea53237, []int{22}\n}\nfunc (m *UserSubject) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *UserSubject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *UserSubject) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_UserSubject.Merge(m, src)\n}\nfunc (m *UserSubject) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *UserSubject) XXX_DiscardUnknown() {\n\txxx_messageInfo_UserSubject.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_UserSubject proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*ExemptPriorityLevelConfiguration)(nil), \"k8s.io.api.flowcontrol.v1beta2.ExemptPriorityLevelConfiguration\")\n\tproto.RegisterType((*FlowDistinguisherMethod)(nil), \"k8s.io.api.flowcontrol.v1beta2.FlowDistinguisherMethod\")\n\tproto.RegisterType((*FlowSchema)(nil), \"k8s.io.api.flowcontrol.v1beta2.FlowSchema\")\n\tproto.RegisterType((*FlowSchemaCondition)(nil), \"k8s.io.api.flowcontrol.v1beta2.FlowSchemaCondition\")\n\tproto.RegisterType((*FlowSchemaList)(nil), \"k8s.io.api.flowcontrol.v1beta2.FlowSchemaList\")\n\tproto.RegisterType((*FlowSchemaSpec)(nil), \"k8s.io.api.flowcontrol.v1beta2.FlowSchemaSpec\")\n\tproto.RegisterType((*FlowSchemaStatus)(nil), \"k8s.io.api.flowcontrol.v1beta2.FlowSchemaStatus\")\n\tproto.RegisterType((*GroupSubject)(nil), \"k8s.io.api.flowcontrol.v1beta2.GroupSubject\")\n\tproto.RegisterType((*LimitResponse)(nil), \"k8s.io.api.flowcontrol.v1beta2.LimitResponse\")\n\tproto.RegisterType((*LimitedPriorityLevelConfiguration)(nil), \"k8s.io.api.flowcontrol.v1beta2.LimitedPriorityLevelConfiguration\")\n\tproto.RegisterType((*NonResourcePolicyRule)(nil), \"k8s.io.api.flowcontrol.v1beta2.NonResourcePolicyRule\")\n\tproto.RegisterType((*PolicyRulesWithSubjects)(nil), \"k8s.io.api.flowcontrol.v1beta2.PolicyRulesWithSubjects\")\n\tproto.RegisterType((*PriorityLevelConfiguration)(nil), \"k8s.io.api.flowcontrol.v1beta2.PriorityLevelConfiguration\")\n\tproto.RegisterType((*PriorityLevelConfigurationCondition)(nil), \"k8s.io.api.flowcontrol.v1beta2.PriorityLevelConfigurationCondition\")\n\tproto.RegisterType((*PriorityLevelConfigurationList)(nil), \"k8s.io.api.flowcontrol.v1beta2.PriorityLevelConfigurationList\")\n\tproto.RegisterType((*PriorityLevelConfigurationReference)(nil), \"k8s.io.api.flowcontrol.v1beta2.PriorityLevelConfigurationReference\")\n\tproto.RegisterType((*PriorityLevelConfigurationSpec)(nil), \"k8s.io.api.flowcontrol.v1beta2.PriorityLevelConfigurationSpec\")\n\tproto.RegisterType((*PriorityLevelConfigurationStatus)(nil), \"k8s.io.api.flowcontrol.v1beta2.PriorityLevelConfigurationStatus\")\n\tproto.RegisterType((*QueuingConfiguration)(nil), \"k8s.io.api.flowcontrol.v1beta2.QueuingConfiguration\")\n\tproto.RegisterType((*ResourcePolicyRule)(nil), \"k8s.io.api.flowcontrol.v1beta2.ResourcePolicyRule\")\n\tproto.RegisterType((*ServiceAccountSubject)(nil), \"k8s.io.api.flowcontrol.v1beta2.ServiceAccountSubject\")\n\tproto.RegisterType((*Subject)(nil), \"k8s.io.api.flowcontrol.v1beta2.Subject\")\n\tproto.RegisterType((*UserSubject)(nil), \"k8s.io.api.flowcontrol.v1beta2.UserSubject\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/flowcontrol/v1beta2/generated.proto\", fileDescriptor_2e620af2eea53237)\n}\n\nvar fileDescriptor_2e620af2eea53237 = []byte{\n\t// 1602 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x58, 0xcd, 0x73, 0xdb, 0xd4,\n\t0x16, 0x8f, 0x1c, 0x3b, 0x89, 0x4f, 0x3e, 0x7b, 0xd3, 0x4c, 0xfc, 0xd2, 0x37, 0x76, 0xaa, 0x37,\n\t0xf3, 0xfa, 0x1e, 0x6d, 0xe5, 0x36, 0xb4, 0xb4, 0xc0, 0xf0, 0x11, 0xa5, 0xa5, 0x94, 0x26, 0x69,\n\t0x7a, 0xd3, 0x42, 0xa7, 0x74, 0x86, 0x2a, 0xf2, 0x8d, 0xad, 0xc6, 0xfa, 0xa8, 0xae, 0x94, 0x10,\n\t0xba, 0x61, 0xf8, 0x0b, 0x58, 0xc3, 0x92, 0x05, 0x2b, 0x36, 0x6c, 0x59, 0xb0, 0xa4, 0xc3, 0xaa,\n\t0xcb, 0xae, 0x0c, 0x35, 0x2b, 0xfe, 0x03, 0xe8, 0x0c, 0x33, 0xcc, 0xbd, 0xba, 0x92, 0x2c, 0xdb,\n\t0xb2, 0x3c, 0xed, 0x4c, 0x57, 0xec, 0xa2, 0x73, 0x7f, 0xe7, 0x77, 0xee, 0x39, 0xf7, 0x7c, 0x39,\n\t0xa0, 0xec, 0x5d, 0xa4, 0x8a, 0x61, 0x57, 0x35, 0xc7, 0xa8, 0xee, 0x36, 0xed, 0x03, 0xdd, 0xb6,\n\t0x3c, 0xd7, 0x6e, 0x56, 0xf7, 0xcf, 0xee, 0x10, 0x4f, 0x5b, 0xa9, 0xd6, 0x89, 0x45, 0x5c, 0xcd,\n\t0x23, 0x35, 0xc5, 0x71, 0x6d, 0xcf, 0x46, 0xe5, 0x00, 0xaf, 0x68, 0x8e, 0xa1, 0x74, 0xe0, 0x15,\n\t0x81, 0x5f, 0x3a, 0x5d, 0x37, 0xbc, 0x86, 0xbf, 0xa3, 0xe8, 0xb6, 0x59, 0xad, 0xdb, 0x75, 0xbb,\n\t0xca, 0xd5, 0x76, 0xfc, 0x5d, 0xfe, 0xc5, 0x3f, 0xf8, 0x5f, 0x01, 0xdd, 0xd2, 0xb9, 0xd8, 0xbc,\n\t0xa9, 0xe9, 0x0d, 0xc3, 0x22, 0xee, 0x61, 0xd5, 0xd9, 0xab, 0x33, 0x01, 0xad, 0x9a, 0xc4, 0xd3,\n\t0xaa, 0xfb, 0x67, 0xbb, 0x2f, 0xb1, 0x54, 0x4d, 0xd3, 0x72, 0x7d, 0xcb, 0x33, 0x4c, 0xd2, 0xa3,\n\t0xf0, 0x5a, 0x96, 0x02, 0xd5, 0x1b, 0xc4, 0xd4, 0xba, 0xf5, 0xe4, 0x1f, 0x24, 0x58, 0xbe, 0xfc,\n\t0x29, 0x31, 0x1d, 0x6f, 0xcb, 0x35, 0x6c, 0xd7, 0xf0, 0x0e, 0xd7, 0xc9, 0x3e, 0x69, 0xae, 0xd9,\n\t0xd6, 0xae, 0x51, 0xf7, 0x5d, 0xcd, 0x33, 0x6c, 0x0b, 0xdd, 0x86, 0x92, 0x65, 0x9b, 0x86, 0xa5,\n\t0x31, 0xb9, 0xee, 0xbb, 0x2e, 0xb1, 0xf4, 0xc3, 0xed, 0x86, 0xe6, 0x12, 0x5a, 0x92, 0x96, 0xa5,\n\t0xff, 0x15, 0xd4, 0x7f, 0xb7, 0x5b, 0x95, 0xd2, 0x66, 0x0a, 0x06, 0xa7, 0x6a, 0xa3, 0xb7, 0x60,\n\t0xb6, 0x49, 0xac, 0x9a, 0xb6, 0xd3, 0x24, 0x5b, 0xc4, 0xd5, 0x89, 0xe5, 0x95, 0x72, 0x9c, 0x70,\n\t0xbe, 0xdd, 0xaa, 0xcc, 0xae, 0x27, 0x8f, 0x70, 0x37, 0x56, 0xbe, 0x03, 0x8b, 0xef, 0x35, 0xed,\n\t0x83, 0x4b, 0x06, 0xf5, 0x0c, 0xab, 0xee, 0x1b, 0xb4, 0x41, 0xdc, 0x0d, 0xe2, 0x35, 0xec, 0x1a,\n\t0x7a, 0x07, 0xf2, 0xde, 0xa1, 0x43, 0xf8, 0xfd, 0x8a, 0xea, 0xc9, 0x47, 0xad, 0xca, 0x48, 0xbb,\n\t0x55, 0xc9, 0xdf, 0x3c, 0x74, 0xc8, 0xb3, 0x56, 0xe5, 0x58, 0x8a, 0x1a, 0x3b, 0xc6, 0x5c, 0x51,\n\t0xfe, 0x2a, 0x07, 0xc0, 0x50, 0xdb, 0x3c, 0x70, 0xe8, 0x1e, 0x4c, 0xb0, 0xc7, 0xaa, 0x69, 0x9e,\n\t0xc6, 0x39, 0x27, 0x57, 0xce, 0x28, 0x71, 0xa6, 0x44, 0x31, 0x57, 0x9c, 0xbd, 0x3a, 0x13, 0x50,\n\t0x85, 0xa1, 0x95, 0xfd, 0xb3, 0xca, 0xf5, 0x9d, 0xfb, 0x44, 0xf7, 0x36, 0x88, 0xa7, 0xa9, 0x48,\n\t0xdc, 0x02, 0x62, 0x19, 0x8e, 0x58, 0xd1, 0x16, 0xe4, 0xa9, 0x43, 0x74, 0x1e, 0x80, 0xc9, 0x15,\n\t0x45, 0x19, 0x9c, 0x87, 0x4a, 0x7c, 0xb7, 0x6d, 0x87, 0xe8, 0xea, 0x54, 0xe8, 0x21, 0xfb, 0xc2,\n\t0x9c, 0x09, 0xdd, 0x86, 0x31, 0xea, 0x69, 0x9e, 0x4f, 0x4b, 0xa3, 0x3d, 0x37, 0xce, 0xe2, 0xe4,\n\t0x7a, 0xea, 0x8c, 0x60, 0x1d, 0x0b, 0xbe, 0xb1, 0xe0, 0x93, 0x9f, 0xe4, 0x60, 0x3e, 0x06, 0xaf,\n\t0xd9, 0x56, 0xcd, 0xe0, 0x99, 0xf2, 0x66, 0x22, 0xea, 0x27, 0xba, 0xa2, 0xbe, 0xd8, 0x47, 0x25,\n\t0x8e, 0x38, 0x7a, 0x3d, 0xba, 0x6e, 0x8e, 0xab, 0x1f, 0x4f, 0x1a, 0x7f, 0xd6, 0xaa, 0xcc, 0x46,\n\t0x6a, 0xc9, 0xfb, 0xa0, 0x7d, 0x40, 0x4d, 0x8d, 0x7a, 0x37, 0x5d, 0xcd, 0xa2, 0x01, 0xad, 0x61,\n\t0x12, 0xe1, 0xf5, 0x2b, 0xc3, 0xbd, 0x13, 0xd3, 0x50, 0x97, 0x84, 0x49, 0xb4, 0xde, 0xc3, 0x86,\n\t0xfb, 0x58, 0x40, 0xff, 0x85, 0x31, 0x97, 0x68, 0xd4, 0xb6, 0x4a, 0x79, 0x7e, 0xe5, 0x28, 0x5e,\n\t0x98, 0x4b, 0xb1, 0x38, 0x45, 0xff, 0x87, 0x71, 0x93, 0x50, 0xaa, 0xd5, 0x49, 0xa9, 0xc0, 0x81,\n\t0xb3, 0x02, 0x38, 0xbe, 0x11, 0x88, 0x71, 0x78, 0x2e, 0xff, 0x28, 0xc1, 0x4c, 0x1c, 0xa7, 0x75,\n\t0x83, 0x7a, 0xe8, 0x6e, 0x4f, 0xee, 0x29, 0xc3, 0xf9, 0xc4, 0xb4, 0x79, 0xe6, 0xcd, 0x09, 0x73,\n\t0x13, 0xa1, 0xa4, 0x23, 0xef, 0xae, 0x43, 0xc1, 0xf0, 0x88, 0xc9, 0xa2, 0x3e, 0xda, 0x15, 0xae,\n\t0x8c, 0x24, 0x51, 0xa7, 0x05, 0x6d, 0xe1, 0x2a, 0x23, 0xc0, 0x01, 0x8f, 0xfc, 0xfb, 0x68, 0xa7,\n\t0x07, 0x2c, 0x1f, 0xd1, 0xb7, 0x12, 0x2c, 0x39, 0xa9, 0x0d, 0x46, 0x38, 0xb5, 0x96, 0x65, 0x39,\n\t0xbd, 0x45, 0x61, 0xb2, 0x4b, 0x58, 0x5f, 0x21, 0xaa, 0x2c, 0xae, 0xb4, 0x34, 0x00, 0x3c, 0xe0,\n\t0x2a, 0xe8, 0x03, 0x40, 0xa6, 0xe6, 0xb1, 0x88, 0xd6, 0xb7, 0x5c, 0xa2, 0x93, 0x1a, 0x63, 0x15,\n\t0x4d, 0x29, 0xca, 0x8e, 0x8d, 0x1e, 0x04, 0xee, 0xa3, 0x85, 0xbe, 0x90, 0x60, 0xbe, 0xd6, 0xdb,\n\t0x64, 0x44, 0x5e, 0x5e, 0x18, 0x26, 0xd0, 0x7d, 0x7a, 0x94, 0xba, 0xd8, 0x6e, 0x55, 0xe6, 0xfb,\n\t0x1c, 0xe0, 0x7e, 0xc6, 0xd0, 0x5d, 0x28, 0xb8, 0x7e, 0x93, 0xd0, 0x52, 0x9e, 0x3f, 0x6f, 0xa6,\n\t0xd5, 0x2d, 0xbb, 0x69, 0xe8, 0x87, 0x98, 0xa9, 0x7c, 0x64, 0x78, 0x8d, 0x6d, 0x9f, 0xf7, 0x2a,\n\t0x1a, 0xbf, 0x35, 0x3f, 0xc2, 0x01, 0xa9, 0xfc, 0x10, 0xe6, 0xba, 0x9b, 0x06, 0xaa, 0x03, 0xe8,\n\t0x61, 0x9d, 0xb2, 0x01, 0xc1, 0xcc, 0xbe, 0x3a, 0x7c, 0x56, 0x45, 0x35, 0x1e, 0xf7, 0xcb, 0x48,\n\t0x44, 0x71, 0x07, 0xb5, 0x7c, 0x06, 0xa6, 0xae, 0xb8, 0xb6, 0xef, 0x88, 0x3b, 0xa2, 0x65, 0xc8,\n\t0x5b, 0x9a, 0x19, 0x76, 0x9f, 0xa8, 0x23, 0x6e, 0x6a, 0x26, 0xc1, 0xfc, 0x44, 0xfe, 0x46, 0x82,\n\t0xe9, 0x75, 0xc3, 0x34, 0x3c, 0x4c, 0xa8, 0x63, 0x5b, 0x94, 0xa0, 0xf3, 0x89, 0x8e, 0x75, 0xbc,\n\t0xab, 0x63, 0x1d, 0x49, 0x80, 0x3b, 0x7a, 0xd5, 0xc7, 0x30, 0xfe, 0xc0, 0x27, 0xbe, 0x61, 0xd5,\n\t0x45, 0xbf, 0x3e, 0x97, 0xe5, 0xe0, 0x8d, 0x00, 0x9e, 0xc8, 0x36, 0x75, 0x92, 0xb5, 0x00, 0x71,\n\t0x82, 0x43, 0x46, 0xf9, 0xaf, 0x1c, 0x1c, 0xe7, 0x86, 0x49, 0x6d, 0xc0, 0x54, 0xbe, 0x0b, 0x25,\n\t0x8d, 0x52, 0xdf, 0x25, 0xb5, 0xb4, 0xa9, 0xbc, 0x2c, 0xbc, 0x29, 0xad, 0xa6, 0xe0, 0x70, 0x2a,\n\t0x03, 0xba, 0x0f, 0xd3, 0xcd, 0x4e, 0xdf, 0x85, 0x9b, 0xa7, 0xb3, 0xdc, 0x4c, 0x04, 0x4c, 0x5d,\n\t0x10, 0x37, 0x48, 0x06, 0x1d, 0x27, 0xa9, 0xfb, 0x6d, 0x01, 0xa3, 0xc3, 0x6f, 0x01, 0xe8, 0x3a,\n\t0x2c, 0xec, 0xd8, 0xae, 0x6b, 0x1f, 0x18, 0x56, 0x9d, 0xdb, 0x09, 0x49, 0xf2, 0x9c, 0xe4, 0x5f,\n\t0xed, 0x56, 0x65, 0x41, 0xed, 0x07, 0xc0, 0xfd, 0xf5, 0xe4, 0x03, 0x58, 0xd8, 0x64, 0x3d, 0x85,\n\t0xda, 0xbe, 0xab, 0x93, 0xb8, 0x20, 0x50, 0x05, 0x0a, 0xfb, 0xc4, 0xdd, 0x09, 0x92, 0xba, 0xa8,\n\t0x16, 0x59, 0x39, 0x7c, 0xc8, 0x04, 0x38, 0x90, 0x33, 0x4f, 0xac, 0x58, 0xf3, 0x16, 0x5e, 0xa7,\n\t0xa5, 0x31, 0x0e, 0xe5, 0x9e, 0x6c, 0x26, 0x8f, 0x70, 0x37, 0x56, 0x6e, 0xe5, 0x60, 0x31, 0xa5,\n\t0xfe, 0xd0, 0x2d, 0x98, 0xa0, 0xe2, 0x6f, 0x51, 0x53, 0x27, 0xb2, 0xde, 0x42, 0xe8, 0xc6, 0xdd,\n\t0x3f, 0x24, 0xc3, 0x11, 0x15, 0xb2, 0x61, 0xda, 0x15, 0x57, 0xe0, 0x36, 0xc5, 0x14, 0x58, 0xc9,\n\t0xe2, 0xee, 0x8d, 0x4e, 0xfc, 0xd8, 0xb8, 0x93, 0x10, 0x27, 0xf9, 0xd1, 0x43, 0x98, 0xeb, 0x70,\n\t0x3b, 0xb0, 0x39, 0xca, 0x6d, 0x9e, 0xcf, 0xb2, 0xd9, 0xf7, 0x51, 0xd4, 0x92, 0x30, 0x3b, 0xb7,\n\t0xd9, 0x45, 0x8b, 0x7b, 0x0c, 0xc9, 0x3f, 0xe7, 0x60, 0xc0, 0x60, 0x78, 0x09, 0x4b, 0xde, 0xbd,\n\t0xc4, 0x92, 0xf7, 0xf6, 0xf3, 0x4f, 0xbc, 0xd4, 0xa5, 0xaf, 0xd1, 0xb5, 0xf4, 0xbd, 0xfb, 0x02,\n\t0x36, 0x06, 0x2f, 0x81, 0x7f, 0xe4, 0xe0, 0x3f, 0xe9, 0xca, 0xf1, 0x52, 0x78, 0x2d, 0xd1, 0x62,\n\t0x2f, 0x74, 0xb5, 0xd8, 0x13, 0x43, 0x50, 0xfc, 0xb3, 0x24, 0x76, 0x2d, 0x89, 0xbf, 0x48, 0x50,\n\t0x4e, 0x8f, 0xdb, 0x4b, 0x58, 0x1a, 0x3f, 0x49, 0x2e, 0x8d, 0x6f, 0x3c, 0x7f, 0x92, 0xa5, 0x2c,\n\t0x91, 0x57, 0x06, 0xe5, 0x56, 0xb4, 0xee, 0x0d, 0x31, 0xf2, 0xbf, 0xcb, 0x0d, 0x0a, 0x15, 0xdf,\n\t0x4e, 0x33, 0x7e, 0xb5, 0x24, 0xb4, 0x2f, 0x5b, 0x6c, 0xf4, 0x98, 0x6c, 0x7a, 0x04, 0x09, 0xd9,\n\t0x80, 0xf1, 0x66, 0x30, 0xab, 0x45, 0x51, 0xaf, 0x0e, 0x35, 0x22, 0x07, 0x8d, 0xf6, 0x60, 0x2d,\n\t0x10, 0x30, 0x1c, 0xd2, 0xa3, 0x1a, 0x8c, 0x11, 0xfe, 0x53, 0x7d, 0xd8, 0xca, 0xce, 0xfa, 0x61,\n\t0xaf, 0x02, 0xcb, 0xc2, 0x00, 0x85, 0x05, 0xb7, 0xfc, 0xb5, 0x04, 0xcb, 0x59, 0x2d, 0x01, 0x1d,\n\t0xf4, 0x59, 0xf1, 0x5e, 0x60, 0x7d, 0x1f, 0x7e, 0xe5, 0xfb, 0x5e, 0x82, 0xa3, 0xfd, 0x36, 0x29,\n\t0x56, 0x64, 0x6c, 0x7d, 0x8a, 0x76, 0x9f, 0xa8, 0xc8, 0x6e, 0x70, 0x29, 0x16, 0xa7, 0xe8, 0x14,\n\t0x4c, 0x34, 0x34, 0xab, 0xb6, 0x6d, 0x7c, 0x16, 0x6e, 0xf5, 0x51, 0x9a, 0xbf, 0x2f, 0xe4, 0x38,\n\t0x42, 0xa0, 0x4b, 0x30, 0xc7, 0xf5, 0xd6, 0x89, 0x55, 0xf7, 0x1a, 0xfc, 0x45, 0xc4, 0x6a, 0x12,\n\t0x4d, 0x9d, 0x1b, 0x5d, 0xe7, 0xb8, 0x47, 0x43, 0xfe, 0x53, 0x02, 0xf4, 0x3c, 0xdb, 0xc4, 0x49,\n\t0x28, 0x6a, 0x8e, 0xc1, 0x57, 0xdc, 0xa0, 0xd0, 0x8a, 0xea, 0x74, 0xbb, 0x55, 0x29, 0xae, 0x6e,\n\t0x5d, 0x0d, 0x84, 0x38, 0x3e, 0x67, 0xe0, 0x70, 0xd0, 0x06, 0x03, 0x55, 0x80, 0x43, 0xc3, 0x14,\n\t0xc7, 0xe7, 0xe8, 0x22, 0x4c, 0xe9, 0x4d, 0x9f, 0x7a, 0xc4, 0xdd, 0xd6, 0x6d, 0x87, 0xf0, 0xc6,\n\t0x34, 0xa1, 0x1e, 0x15, 0x3e, 0x4d, 0xad, 0x75, 0x9c, 0xe1, 0x04, 0x12, 0x29, 0x00, 0xac, 0xac,\n\t0xa8, 0xa3, 0x31, 0x3b, 0x05, 0x6e, 0x67, 0x86, 0x3d, 0xd8, 0x66, 0x24, 0xc5, 0x1d, 0x08, 0xf9,\n\t0x3e, 0x2c, 0x6c, 0x13, 0x77, 0xdf, 0xd0, 0xc9, 0xaa, 0xae, 0xdb, 0xbe, 0xe5, 0x85, 0xcb, 0x7a,\n\t0x15, 0x8a, 0x11, 0x4c, 0x54, 0xde, 0x11, 0x61, 0xbf, 0x18, 0x71, 0xe1, 0x18, 0x13, 0x95, 0x7a,\n\t0x2e, 0xb5, 0xd4, 0x7f, 0xca, 0xc1, 0x78, 0x4c, 0x9f, 0xdf, 0x33, 0xac, 0x9a, 0x60, 0x3e, 0x16,\n\t0xa2, 0xaf, 0x19, 0x56, 0xed, 0x59, 0xab, 0x32, 0x29, 0x60, 0xec, 0x13, 0x73, 0x20, 0xba, 0x0a,\n\t0x79, 0x9f, 0x12, 0x57, 0x14, 0xf1, 0xc9, 0xac, 0x64, 0xbe, 0x45, 0x89, 0x1b, 0xee, 0x57, 0x13,\n\t0x8c, 0x99, 0x09, 0x30, 0xa7, 0x40, 0x1b, 0x50, 0xa8, 0xb3, 0x47, 0x11, 0x75, 0x7a, 0x2a, 0x8b,\n\t0xab, 0xf3, 0x47, 0x4c, 0x90, 0x06, 0x5c, 0x82, 0x03, 0x16, 0xf4, 0x00, 0x66, 0x68, 0x22, 0x84,\n\t0xfc, 0xb9, 0x86, 0xd8, 0x97, 0xfa, 0x06, 0x5e, 0x45, 0xed, 0x56, 0x65, 0x26, 0x79, 0x84, 0xbb,\n\t0x0c, 0xc8, 0x55, 0x98, 0xec, 0x70, 0x30, 0xbb, 0xcb, 0xaa, 0x97, 0x1e, 0x3d, 0x2d, 0x8f, 0x3c,\n\t0x7e, 0x5a, 0x1e, 0x79, 0xf2, 0xb4, 0x3c, 0xf2, 0x79, 0xbb, 0x2c, 0x3d, 0x6a, 0x97, 0xa5, 0xc7,\n\t0xed, 0xb2, 0xf4, 0xa4, 0x5d, 0x96, 0x7e, 0x6d, 0x97, 0xa5, 0x2f, 0x7f, 0x2b, 0x8f, 0xdc, 0x29,\n\t0x0f, 0xfe, 0x5f, 0xec, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xe3, 0xd5, 0xd0, 0x62, 0xac, 0x15,\n\t0x00, 0x00,\n}\n\nfunc (m *ExemptPriorityLevelConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ExemptPriorityLevelConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ExemptPriorityLevelConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.LendablePercent != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.LendablePercent))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif m.NominalConcurrencyShares != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.NominalConcurrencyShares))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowDistinguisherMethod) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowDistinguisherMethod) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowDistinguisherMethod) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowSchema) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowSchema) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowSchema) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowSchemaCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowSchemaCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowSchemaCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowSchemaList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowSchemaList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowSchemaList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowSchemaSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowSchemaSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowSchemaSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Rules) > 0 {\n\t\tfor iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Rules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif m.DistinguisherMethod != nil {\n\t\t{\n\t\t\tsize, err := m.DistinguisherMethod.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MatchingPrecedence))\n\ti--\n\tdAtA[i] = 0x10\n\t{\n\t\tsize, err := m.PriorityLevelConfiguration.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowSchemaStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowSchemaStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowSchemaStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *GroupSubject) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GroupSubject) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *GroupSubject) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LimitResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LimitResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LimitResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Queuing != nil {\n\t\t{\n\t\t\tsize, err := m.Queuing.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LimitedPriorityLevelConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LimitedPriorityLevelConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LimitedPriorityLevelConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.BorrowingLimitPercent != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.BorrowingLimitPercent))\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif m.LendablePercent != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.LendablePercent))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\t{\n\t\tsize, err := m.LimitResponse.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.AssuredConcurrencyShares))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NonResourcePolicyRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NonResourcePolicyRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NonResourcePolicyRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.NonResourceURLs) > 0 {\n\t\tfor iNdEx := len(m.NonResourceURLs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.NonResourceURLs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.NonResourceURLs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.NonResourceURLs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\tif len(m.Verbs) > 0 {\n\t\tfor iNdEx := len(m.Verbs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Verbs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Verbs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verbs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PolicyRulesWithSubjects) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PolicyRulesWithSubjects) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PolicyRulesWithSubjects) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.NonResourceRules) > 0 {\n\t\tfor iNdEx := len(m.NonResourceRules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.NonResourceRules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.ResourceRules) > 0 {\n\t\tfor iNdEx := len(m.ResourceRules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ResourceRules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Subjects) > 0 {\n\t\tfor iNdEx := len(m.Subjects) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Subjects[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfigurationCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfigurationCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfigurationCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfigurationList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfigurationList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfigurationList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfigurationReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfigurationReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfigurationReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfigurationSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfigurationSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfigurationSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Exempt != nil {\n\t\t{\n\t\t\tsize, err := m.Exempt.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Limited != nil {\n\t\t{\n\t\t\tsize, err := m.Limited.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfigurationStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfigurationStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfigurationStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *QueuingConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *QueuingConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *QueuingConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.QueueLengthLimit))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.HandSize))\n\ti--\n\tdAtA[i] = 0x10\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Queues))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourcePolicyRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourcePolicyRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourcePolicyRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Namespaces) > 0 {\n\t\tfor iNdEx := len(m.Namespaces) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Namespaces[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Namespaces[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespaces[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\ti--\n\tif m.ClusterScope {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x20\n\tif len(m.Resources) > 0 {\n\t\tfor iNdEx := len(m.Resources) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Resources[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Resources[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Resources[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.APIGroups) > 0 {\n\t\tfor iNdEx := len(m.APIGroups) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.APIGroups[iNdEx])\n\t\t\tcopy(dAtA[i:], m.APIGroups[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIGroups[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Verbs) > 0 {\n\t\tfor iNdEx := len(m.Verbs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Verbs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Verbs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verbs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ServiceAccountSubject) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServiceAccountSubject) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ServiceAccountSubject) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Namespace)\n\tcopy(dAtA[i:], m.Namespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Subject) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Subject) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Subject) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ServiceAccount != nil {\n\t\t{\n\t\t\tsize, err := m.ServiceAccount.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Group != nil {\n\t\t{\n\t\t\tsize, err := m.Group.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.User != nil {\n\t\t{\n\t\t\tsize, err := m.User.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *UserSubject) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *UserSubject) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *UserSubject) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *ExemptPriorityLevelConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.NominalConcurrencyShares != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.NominalConcurrencyShares))\n\t}\n\tif m.LendablePercent != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.LendablePercent))\n\t}\n\treturn n\n}\n\nfunc (m *FlowDistinguisherMethod) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *FlowSchema) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *FlowSchemaCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *FlowSchemaList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *FlowSchemaSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.PriorityLevelConfiguration.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.MatchingPrecedence))\n\tif m.DistinguisherMethod != nil {\n\t\tl = m.DistinguisherMethod.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.Rules) > 0 {\n\t\tfor _, e := range m.Rules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *FlowSchemaStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *GroupSubject) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *LimitResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Queuing != nil {\n\t\tl = m.Queuing.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *LimitedPriorityLevelConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.AssuredConcurrencyShares))\n\tl = m.LimitResponse.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.LendablePercent != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.LendablePercent))\n\t}\n\tif m.BorrowingLimitPercent != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.BorrowingLimitPercent))\n\t}\n\treturn n\n}\n\nfunc (m *NonResourcePolicyRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Verbs) > 0 {\n\t\tfor _, s := range m.Verbs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.NonResourceURLs) > 0 {\n\t\tfor _, s := range m.NonResourceURLs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PolicyRulesWithSubjects) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Subjects) > 0 {\n\t\tfor _, e := range m.Subjects {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.ResourceRules) > 0 {\n\t\tfor _, e := range m.ResourceRules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.NonResourceRules) > 0 {\n\t\tfor _, e := range m.NonResourceRules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PriorityLevelConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PriorityLevelConfigurationCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PriorityLevelConfigurationList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PriorityLevelConfigurationReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PriorityLevelConfigurationSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Limited != nil {\n\t\tl = m.Limited.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Exempt != nil {\n\t\tl = m.Exempt.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PriorityLevelConfigurationStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *QueuingConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Queues))\n\tn += 1 + sovGenerated(uint64(m.HandSize))\n\tn += 1 + sovGenerated(uint64(m.QueueLengthLimit))\n\treturn n\n}\n\nfunc (m *ResourcePolicyRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Verbs) > 0 {\n\t\tfor _, s := range m.Verbs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.APIGroups) > 0 {\n\t\tfor _, s := range m.APIGroups {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Resources) > 0 {\n\t\tfor _, s := range m.Resources {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tn += 2\n\tif len(m.Namespaces) > 0 {\n\t\tfor _, s := range m.Namespaces {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ServiceAccountSubject) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Namespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *Subject) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.User != nil {\n\t\tl = m.User.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Group != nil {\n\t\tl = m.Group.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ServiceAccount != nil {\n\t\tl = m.ServiceAccount.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *UserSubject) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *ExemptPriorityLevelConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ExemptPriorityLevelConfiguration{`,\n\t\t`NominalConcurrencyShares:` + valueToStringGenerated(this.NominalConcurrencyShares) + `,`,\n\t\t`LendablePercent:` + valueToStringGenerated(this.LendablePercent) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowDistinguisherMethod) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&FlowDistinguisherMethod{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowSchema) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&FlowSchema{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"FlowSchemaSpec\", \"FlowSchemaSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"FlowSchemaStatus\", \"FlowSchemaStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowSchemaCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&FlowSchemaCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowSchemaList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]FlowSchema{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"FlowSchema\", \"FlowSchema\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&FlowSchemaList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowSchemaSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForRules := \"[]PolicyRulesWithSubjects{\"\n\tfor _, f := range this.Rules {\n\t\trepeatedStringForRules += strings.Replace(strings.Replace(f.String(), \"PolicyRulesWithSubjects\", \"PolicyRulesWithSubjects\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRules += \"}\"\n\ts := strings.Join([]string{`&FlowSchemaSpec{`,\n\t\t`PriorityLevelConfiguration:` + strings.Replace(strings.Replace(this.PriorityLevelConfiguration.String(), \"PriorityLevelConfigurationReference\", \"PriorityLevelConfigurationReference\", 1), `&`, ``, 1) + `,`,\n\t\t`MatchingPrecedence:` + fmt.Sprintf(\"%v\", this.MatchingPrecedence) + `,`,\n\t\t`DistinguisherMethod:` + strings.Replace(this.DistinguisherMethod.String(), \"FlowDistinguisherMethod\", \"FlowDistinguisherMethod\", 1) + `,`,\n\t\t`Rules:` + repeatedStringForRules + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowSchemaStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]FlowSchemaCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"FlowSchemaCondition\", \"FlowSchemaCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&FlowSchemaStatus{`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *GroupSubject) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&GroupSubject{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LimitResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LimitResponse{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Queuing:` + strings.Replace(this.Queuing.String(), \"QueuingConfiguration\", \"QueuingConfiguration\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LimitedPriorityLevelConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LimitedPriorityLevelConfiguration{`,\n\t\t`AssuredConcurrencyShares:` + fmt.Sprintf(\"%v\", this.AssuredConcurrencyShares) + `,`,\n\t\t`LimitResponse:` + strings.Replace(strings.Replace(this.LimitResponse.String(), \"LimitResponse\", \"LimitResponse\", 1), `&`, ``, 1) + `,`,\n\t\t`LendablePercent:` + valueToStringGenerated(this.LendablePercent) + `,`,\n\t\t`BorrowingLimitPercent:` + valueToStringGenerated(this.BorrowingLimitPercent) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NonResourcePolicyRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NonResourcePolicyRule{`,\n\t\t`Verbs:` + fmt.Sprintf(\"%v\", this.Verbs) + `,`,\n\t\t`NonResourceURLs:` + fmt.Sprintf(\"%v\", this.NonResourceURLs) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PolicyRulesWithSubjects) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForSubjects := \"[]Subject{\"\n\tfor _, f := range this.Subjects {\n\t\trepeatedStringForSubjects += strings.Replace(strings.Replace(f.String(), \"Subject\", \"Subject\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForSubjects += \"}\"\n\trepeatedStringForResourceRules := \"[]ResourcePolicyRule{\"\n\tfor _, f := range this.ResourceRules {\n\t\trepeatedStringForResourceRules += strings.Replace(strings.Replace(f.String(), \"ResourcePolicyRule\", \"ResourcePolicyRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForResourceRules += \"}\"\n\trepeatedStringForNonResourceRules := \"[]NonResourcePolicyRule{\"\n\tfor _, f := range this.NonResourceRules {\n\t\trepeatedStringForNonResourceRules += strings.Replace(strings.Replace(f.String(), \"NonResourcePolicyRule\", \"NonResourcePolicyRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForNonResourceRules += \"}\"\n\ts := strings.Join([]string{`&PolicyRulesWithSubjects{`,\n\t\t`Subjects:` + repeatedStringForSubjects + `,`,\n\t\t`ResourceRules:` + repeatedStringForResourceRules + `,`,\n\t\t`NonResourceRules:` + repeatedStringForNonResourceRules + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PriorityLevelConfiguration{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"PriorityLevelConfigurationSpec\", \"PriorityLevelConfigurationSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"PriorityLevelConfigurationStatus\", \"PriorityLevelConfigurationStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfigurationCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PriorityLevelConfigurationCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfigurationList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]PriorityLevelConfiguration{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"PriorityLevelConfiguration\", \"PriorityLevelConfiguration\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&PriorityLevelConfigurationList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfigurationReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PriorityLevelConfigurationReference{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfigurationSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PriorityLevelConfigurationSpec{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Limited:` + strings.Replace(this.Limited.String(), \"LimitedPriorityLevelConfiguration\", \"LimitedPriorityLevelConfiguration\", 1) + `,`,\n\t\t`Exempt:` + strings.Replace(this.Exempt.String(), \"ExemptPriorityLevelConfiguration\", \"ExemptPriorityLevelConfiguration\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfigurationStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]PriorityLevelConfigurationCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"PriorityLevelConfigurationCondition\", \"PriorityLevelConfigurationCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&PriorityLevelConfigurationStatus{`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *QueuingConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&QueuingConfiguration{`,\n\t\t`Queues:` + fmt.Sprintf(\"%v\", this.Queues) + `,`,\n\t\t`HandSize:` + fmt.Sprintf(\"%v\", this.HandSize) + `,`,\n\t\t`QueueLengthLimit:` + fmt.Sprintf(\"%v\", this.QueueLengthLimit) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourcePolicyRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourcePolicyRule{`,\n\t\t`Verbs:` + fmt.Sprintf(\"%v\", this.Verbs) + `,`,\n\t\t`APIGroups:` + fmt.Sprintf(\"%v\", this.APIGroups) + `,`,\n\t\t`Resources:` + fmt.Sprintf(\"%v\", this.Resources) + `,`,\n\t\t`ClusterScope:` + fmt.Sprintf(\"%v\", this.ClusterScope) + `,`,\n\t\t`Namespaces:` + fmt.Sprintf(\"%v\", this.Namespaces) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ServiceAccountSubject) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ServiceAccountSubject{`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Subject) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Subject{`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`User:` + strings.Replace(this.User.String(), \"UserSubject\", \"UserSubject\", 1) + `,`,\n\t\t`Group:` + strings.Replace(this.Group.String(), \"GroupSubject\", \"GroupSubject\", 1) + `,`,\n\t\t`ServiceAccount:` + strings.Replace(this.ServiceAccount.String(), \"ServiceAccountSubject\", \"ServiceAccountSubject\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *UserSubject) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&UserSubject{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *ExemptPriorityLevelConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ExemptPriorityLevelConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ExemptPriorityLevelConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NominalConcurrencyShares\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.NominalConcurrencyShares = &v\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LendablePercent\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.LendablePercent = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowDistinguisherMethod) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowDistinguisherMethod: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowDistinguisherMethod: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = FlowDistinguisherMethodType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowSchema) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchema: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchema: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowSchemaCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = FlowSchemaConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowSchemaList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, FlowSchema{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowSchemaSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PriorityLevelConfiguration\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.PriorityLevelConfiguration.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchingPrecedence\", wireType)\n\t\t\t}\n\t\t\tm.MatchingPrecedence = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MatchingPrecedence |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DistinguisherMethod\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.DistinguisherMethod == nil {\n\t\t\t\tm.DistinguisherMethod = &FlowDistinguisherMethod{}\n\t\t\t}\n\t\t\tif err := m.DistinguisherMethod.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Rules = append(m.Rules, PolicyRulesWithSubjects{})\n\t\t\tif err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowSchemaStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, FlowSchemaCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *GroupSubject) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GroupSubject: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GroupSubject: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LimitResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LimitResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LimitResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = LimitResponseType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Queuing\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Queuing == nil {\n\t\t\t\tm.Queuing = &QueuingConfiguration{}\n\t\t\t}\n\t\t\tif err := m.Queuing.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LimitedPriorityLevelConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LimitedPriorityLevelConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LimitedPriorityLevelConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AssuredConcurrencyShares\", wireType)\n\t\t\t}\n\t\t\tm.AssuredConcurrencyShares = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.AssuredConcurrencyShares |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LimitResponse\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LimitResponse.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LendablePercent\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.LendablePercent = &v\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field BorrowingLimitPercent\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.BorrowingLimitPercent = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NonResourcePolicyRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NonResourcePolicyRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NonResourcePolicyRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verbs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verbs = append(m.Verbs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NonResourceURLs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NonResourceURLs = append(m.NonResourceURLs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PolicyRulesWithSubjects) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PolicyRulesWithSubjects: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PolicyRulesWithSubjects: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Subjects\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Subjects = append(m.Subjects, Subject{})\n\t\t\tif err := m.Subjects[len(m.Subjects)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceRules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceRules = append(m.ResourceRules, ResourcePolicyRule{})\n\t\t\tif err := m.ResourceRules[len(m.ResourceRules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NonResourceRules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NonResourceRules = append(m.NonResourceRules, NonResourcePolicyRule{})\n\t\t\tif err := m.NonResourceRules[len(m.NonResourceRules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfigurationCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = PriorityLevelConfigurationConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfigurationList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, PriorityLevelConfiguration{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfigurationReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfigurationSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = PriorityLevelEnablement(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Limited\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Limited == nil {\n\t\t\t\tm.Limited = &LimitedPriorityLevelConfiguration{}\n\t\t\t}\n\t\t\tif err := m.Limited.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Exempt\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Exempt == nil {\n\t\t\t\tm.Exempt = &ExemptPriorityLevelConfiguration{}\n\t\t\t}\n\t\t\tif err := m.Exempt.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfigurationStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, PriorityLevelConfigurationCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *QueuingConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: QueuingConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: QueuingConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Queues\", wireType)\n\t\t\t}\n\t\t\tm.Queues = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Queues |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HandSize\", wireType)\n\t\t\t}\n\t\t\tm.HandSize = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.HandSize |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field QueueLengthLimit\", wireType)\n\t\t\t}\n\t\t\tm.QueueLengthLimit = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.QueueLengthLimit |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourcePolicyRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourcePolicyRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourcePolicyRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verbs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verbs = append(m.Verbs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIGroups\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIGroups = append(m.APIGroups, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resources\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resources = append(m.Resources, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ClusterScope\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ClusterScope = bool(v != 0)\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespaces\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespaces = append(m.Namespaces, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ServiceAccountSubject) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceAccountSubject: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceAccountSubject: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Subject) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Subject: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Subject: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = SubjectKind(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field User\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.User == nil {\n\t\t\t\tm.User = &UserSubject{}\n\t\t\t}\n\t\t\tif err := m.User.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Group\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Group == nil {\n\t\t\t\tm.Group = &GroupSubject{}\n\t\t\t}\n\t\t\tif err := m.Group.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServiceAccount\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ServiceAccount == nil {\n\t\t\t\tm.ServiceAccount = &ServiceAccountSubject{}\n\t\t\t}\n\t\t\tif err := m.ServiceAccount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *UserSubject) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: UserSubject: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: UserSubject: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta2/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.flowcontrol.v1beta2;\n\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/flowcontrol/v1beta2\";\n\n// ExemptPriorityLevelConfiguration describes the configurable aspects\n// of the handling of exempt requests.\n// In the mandatory exempt configuration object the values in the fields\n// here can be modified by authorized users, unlike the rest of the `spec`.\nmessage ExemptPriorityLevelConfiguration {\n  // `nominalConcurrencyShares` (NCS) contributes to the computation of the\n  // NominalConcurrencyLimit (NominalCL) of this level.\n  // This is the number of execution seats nominally reserved for this priority level.\n  // This DOES NOT limit the dispatching from this priority level\n  // but affects the other priority levels through the borrowing mechanism.\n  // The server's concurrency limit (ServerCL) is divided among all the\n  // priority levels in proportion to their NCS values:\n  //\n  // NominalCL(i)  = ceil( ServerCL * NCS(i) / sum_ncs )\n  // sum_ncs = sum[priority level k] NCS(k)\n  //\n  // Bigger numbers mean a larger nominal concurrency limit,\n  // at the expense of every other priority level.\n  // This field has a default value of zero.\n  // +optional\n  optional int32 nominalConcurrencyShares = 1;\n\n  // `lendablePercent` prescribes the fraction of the level's NominalCL that\n  // can be borrowed by other priority levels.  This value of this\n  // field must be between 0 and 100, inclusive, and it defaults to 0.\n  // The number of seats that other levels can borrow from this level, known\n  // as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\n  //\n  // LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )\n  //\n  // +optional\n  optional int32 lendablePercent = 2;\n}\n\n// FlowDistinguisherMethod specifies the method of a flow distinguisher.\nmessage FlowDistinguisherMethod {\n  // `type` is the type of flow distinguisher method\n  // The supported types are \"ByUser\" and \"ByNamespace\".\n  // Required.\n  optional string type = 1;\n}\n\n// FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of inbound API requests with\n// similar attributes and is identified by a pair of strings: the name of the FlowSchema and a \"flow distinguisher\".\nmessage FlowSchema {\n  // `metadata` is the standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // `spec` is the specification of the desired behavior of a FlowSchema.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional FlowSchemaSpec spec = 2;\n\n  // `status` is the current status of a FlowSchema.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional FlowSchemaStatus status = 3;\n}\n\n// FlowSchemaCondition describes conditions for a FlowSchema.\nmessage FlowSchemaCondition {\n  // `type` is the type of the condition.\n  // Required.\n  optional string type = 1;\n\n  // `status` is the status of the condition.\n  // Can be True, False, Unknown.\n  // Required.\n  optional string status = 2;\n\n  // `lastTransitionTime` is the last time the condition transitioned from one status to another.\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // `reason` is a unique, one-word, CamelCase reason for the condition's last transition.\n  optional string reason = 4;\n\n  // `message` is a human-readable message indicating details about last transition.\n  optional string message = 5;\n}\n\n// FlowSchemaList is a list of FlowSchema objects.\nmessage FlowSchemaList {\n  // `metadata` is the standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // `items` is a list of FlowSchemas.\n  repeated FlowSchema items = 2;\n}\n\n// FlowSchemaSpec describes how the FlowSchema's specification looks like.\nmessage FlowSchemaSpec {\n  // `priorityLevelConfiguration` should reference a PriorityLevelConfiguration in the cluster. If the reference cannot\n  // be resolved, the FlowSchema will be ignored and marked as invalid in its status.\n  // Required.\n  optional PriorityLevelConfigurationReference priorityLevelConfiguration = 1;\n\n  // `matchingPrecedence` is used to choose among the FlowSchemas that match a given request. The chosen\n  // FlowSchema is among those with the numerically lowest (which we take to be logically highest)\n  // MatchingPrecedence.  Each MatchingPrecedence value must be ranged in [1,10000].\n  // Note that if the precedence is not specified, it will be set to 1000 as default.\n  // +optional\n  optional int32 matchingPrecedence = 2;\n\n  // `distinguisherMethod` defines how to compute the flow distinguisher for requests that match this schema.\n  // `nil` specifies that the distinguisher is disabled and thus will always be the empty string.\n  // +optional\n  optional FlowDistinguisherMethod distinguisherMethod = 3;\n\n  // `rules` describes which requests will match this flow schema. This FlowSchema matches a request if and only if\n  // at least one member of rules matches the request.\n  // if it is an empty slice, there will be no requests matching the FlowSchema.\n  // +listType=atomic\n  // +optional\n  repeated PolicyRulesWithSubjects rules = 4;\n}\n\n// FlowSchemaStatus represents the current state of a FlowSchema.\nmessage FlowSchemaStatus {\n  // `conditions` is a list of the current states of FlowSchema.\n  // +listType=map\n  // +listMapKey=type\n  // +optional\n  repeated FlowSchemaCondition conditions = 1;\n}\n\n// GroupSubject holds detailed information for group-kind subject.\nmessage GroupSubject {\n  // name is the user group that matches, or \"*\" to match all user groups.\n  // See https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go for some\n  // well-known group names.\n  // Required.\n  optional string name = 1;\n}\n\n// LimitResponse defines how to handle requests that can not be executed right now.\n// +union\nmessage LimitResponse {\n  // `type` is \"Queue\" or \"Reject\".\n  // \"Queue\" means that requests that can not be executed upon arrival\n  // are held in a queue until they can be executed or a queuing limit\n  // is reached.\n  // \"Reject\" means that requests that can not be executed upon arrival\n  // are rejected.\n  // Required.\n  // +unionDiscriminator\n  optional string type = 1;\n\n  // `queuing` holds the configuration parameters for queuing.\n  // This field may be non-empty only if `type` is `\"Queue\"`.\n  // +optional\n  optional QueuingConfiguration queuing = 2;\n}\n\n// LimitedPriorityLevelConfiguration specifies how to handle requests that are subject to limits.\n// It addresses two issues:\n//   - How are requests for this priority level limited?\n//   - What should be done with requests that exceed the limit?\nmessage LimitedPriorityLevelConfiguration {\n  // `assuredConcurrencyShares` (ACS) configures the execution\n  // limit, which is a limit on the number of requests of this\n  // priority level that may be executing at a given time.  ACS must\n  // be a positive number. The server's concurrency limit (SCL) is\n  // divided among the concurrency-controlled priority levels in\n  // proportion to their assured concurrency shares. This produces\n  // the assured concurrency value (ACV) --- the number of requests\n  // that may be executing at a time --- for each such priority\n  // level:\n  //\n  //             ACV(l) = ceil( SCL * ACS(l) / ( sum[priority levels k] ACS(k) ) )\n  //\n  // bigger numbers of ACS mean more reserved concurrent requests (at the\n  // expense of every other PL).\n  // This field has a default value of 30.\n  // +optional\n  optional int32 assuredConcurrencyShares = 1;\n\n  // `limitResponse` indicates what to do with requests that can not be executed right now\n  optional LimitResponse limitResponse = 2;\n\n  // `lendablePercent` prescribes the fraction of the level's NominalCL that\n  // can be borrowed by other priority levels. The value of this\n  // field must be between 0 and 100, inclusive, and it defaults to 0.\n  // The number of seats that other levels can borrow from this level, known\n  // as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\n  //\n  // LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )\n  //\n  // +optional\n  optional int32 lendablePercent = 3;\n\n  // `borrowingLimitPercent`, if present, configures a limit on how many\n  // seats this priority level can borrow from other priority levels.\n  // The limit is known as this level's BorrowingConcurrencyLimit\n  // (BorrowingCL) and is a limit on the total number of seats that this\n  // level may borrow at any one time.\n  // This field holds the ratio of that limit to the level's nominal\n  // concurrency limit. When this field is non-nil, it must hold a\n  // non-negative integer and the limit is calculated as follows.\n  //\n  // BorrowingCL(i) = round( NominalCL(i) * borrowingLimitPercent(i)/100.0 )\n  //\n  // The value of this field can be more than 100, implying that this\n  // priority level can borrow a number of seats that is greater than\n  // its own nominal concurrency limit (NominalCL).\n  // When this field is left `nil`, the limit is effectively infinite.\n  // +optional\n  optional int32 borrowingLimitPercent = 4;\n}\n\n// NonResourcePolicyRule is a predicate that matches non-resource requests according to their verb and the\n// target non-resource URL. A NonResourcePolicyRule matches a request if and only if both (a) at least one member\n// of verbs matches the request and (b) at least one member of nonResourceURLs matches the request.\nmessage NonResourcePolicyRule {\n  // `verbs` is a list of matching verbs and may not be empty.\n  // \"*\" matches all verbs. If it is present, it must be the only entry.\n  // +listType=set\n  // Required.\n  repeated string verbs = 1;\n\n  // `nonResourceURLs` is a set of url prefixes that a user should have access to and may not be empty.\n  // For example:\n  //   - \"/healthz\" is legal\n  //   - \"/hea*\" is illegal\n  //   - \"/hea\" is legal but matches nothing\n  //   - \"/hea/*\" also matches nothing\n  //   - \"/healthz/*\" matches all per-component health checks.\n  // \"*\" matches all non-resource urls. if it is present, it must be the only entry.\n  // +listType=set\n  // Required.\n  repeated string nonResourceURLs = 6;\n}\n\n// PolicyRulesWithSubjects prescribes a test that applies to a request to an apiserver. The test considers the subject\n// making the request, the verb being requested, and the resource to be acted upon. This PolicyRulesWithSubjects matches\n// a request if and only if both (a) at least one member of subjects matches the request and (b) at least one member\n// of resourceRules or nonResourceRules matches the request.\nmessage PolicyRulesWithSubjects {\n  // subjects is the list of normal user, serviceaccount, or group that this rule cares about.\n  // There must be at least one member in this slice.\n  // A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request.\n  // +listType=atomic\n  // Required.\n  repeated Subject subjects = 1;\n\n  // `resourceRules` is a slice of ResourcePolicyRules that identify matching requests according to their verb and the\n  // target resource.\n  // At least one of `resourceRules` and `nonResourceRules` has to be non-empty.\n  // +listType=atomic\n  // +optional\n  repeated ResourcePolicyRule resourceRules = 2;\n\n  // `nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests according to their verb\n  // and the target non-resource URL.\n  // +listType=atomic\n  // +optional\n  repeated NonResourcePolicyRule nonResourceRules = 3;\n}\n\n// PriorityLevelConfiguration represents the configuration of a priority level.\nmessage PriorityLevelConfiguration {\n  // `metadata` is the standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // `spec` is the specification of the desired behavior of a \"request-priority\".\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional PriorityLevelConfigurationSpec spec = 2;\n\n  // `status` is the current status of a \"request-priority\".\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional PriorityLevelConfigurationStatus status = 3;\n}\n\n// PriorityLevelConfigurationCondition defines the condition of priority level.\nmessage PriorityLevelConfigurationCondition {\n  // `type` is the type of the condition.\n  // Required.\n  optional string type = 1;\n\n  // `status` is the status of the condition.\n  // Can be True, False, Unknown.\n  // Required.\n  optional string status = 2;\n\n  // `lastTransitionTime` is the last time the condition transitioned from one status to another.\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // `reason` is a unique, one-word, CamelCase reason for the condition's last transition.\n  optional string reason = 4;\n\n  // `message` is a human-readable message indicating details about last transition.\n  optional string message = 5;\n}\n\n// PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects.\nmessage PriorityLevelConfigurationList {\n  // `metadata` is the standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // `items` is a list of request-priorities.\n  repeated PriorityLevelConfiguration items = 2;\n}\n\n// PriorityLevelConfigurationReference contains information that points to the \"request-priority\" being used.\nmessage PriorityLevelConfigurationReference {\n  // `name` is the name of the priority level configuration being referenced\n  // Required.\n  optional string name = 1;\n}\n\n// PriorityLevelConfigurationSpec specifies the configuration of a priority level.\n// +union\nmessage PriorityLevelConfigurationSpec {\n  // `type` indicates whether this priority level is subject to\n  // limitation on request execution.  A value of `\"Exempt\"` means\n  // that requests of this priority level are not subject to a limit\n  // (and thus are never queued) and do not detract from the\n  // capacity made available to other priority levels.  A value of\n  // `\"Limited\"` means that (a) requests of this priority level\n  // _are_ subject to limits and (b) some of the server's limited\n  // capacity is made available exclusively to this priority level.\n  // Required.\n  // +unionDiscriminator\n  optional string type = 1;\n\n  // `limited` specifies how requests are handled for a Limited priority level.\n  // This field must be non-empty if and only if `type` is `\"Limited\"`.\n  // +optional\n  optional LimitedPriorityLevelConfiguration limited = 2;\n\n  // `exempt` specifies how requests are handled for an exempt priority level.\n  // This field MUST be empty if `type` is `\"Limited\"`.\n  // This field MAY be non-empty if `type` is `\"Exempt\"`.\n  // If empty and `type` is `\"Exempt\"` then the default values\n  // for `ExemptPriorityLevelConfiguration` apply.\n  // +optional\n  optional ExemptPriorityLevelConfiguration exempt = 3;\n}\n\n// PriorityLevelConfigurationStatus represents the current state of a \"request-priority\".\nmessage PriorityLevelConfigurationStatus {\n  // `conditions` is the current state of \"request-priority\".\n  // +listType=map\n  // +listMapKey=type\n  // +optional\n  repeated PriorityLevelConfigurationCondition conditions = 1;\n}\n\n// QueuingConfiguration holds the configuration parameters for queuing\nmessage QueuingConfiguration {\n  // `queues` is the number of queues for this priority level. The\n  // queues exist independently at each apiserver. The value must be\n  // positive.  Setting it to 1 effectively precludes\n  // shufflesharding and thus makes the distinguisher method of\n  // associated flow schemas irrelevant.  This field has a default\n  // value of 64.\n  // +optional\n  optional int32 queues = 1;\n\n  // `handSize` is a small positive number that configures the\n  // shuffle sharding of requests into queues.  When enqueuing a request\n  // at this priority level the request's flow identifier (a string\n  // pair) is hashed and the hash value is used to shuffle the list\n  // of queues and deal a hand of the size specified here.  The\n  // request is put into one of the shortest queues in that hand.\n  // `handSize` must be no larger than `queues`, and should be\n  // significantly smaller (so that a few heavy flows do not\n  // saturate most of the queues).  See the user-facing\n  // documentation for more extensive guidance on setting this\n  // field.  This field has a default value of 8.\n  // +optional\n  optional int32 handSize = 2;\n\n  // `queueLengthLimit` is the maximum number of requests allowed to\n  // be waiting in a given queue of this priority level at a time;\n  // excess requests are rejected.  This value must be positive.  If\n  // not specified, it will be defaulted to 50.\n  // +optional\n  optional int32 queueLengthLimit = 3;\n}\n\n// ResourcePolicyRule is a predicate that matches some resource\n// requests, testing the request's verb and the target resource. A\n// ResourcePolicyRule matches a resource request if and only if: (a)\n// at least one member of verbs matches the request, (b) at least one\n// member of apiGroups matches the request, (c) at least one member of\n// resources matches the request, and (d) either (d1) the request does\n// not specify a namespace (i.e., `Namespace==\"\"`) and clusterScope is\n// true or (d2) the request specifies a namespace and least one member\n// of namespaces matches the request's namespace.\nmessage ResourcePolicyRule {\n  // `verbs` is a list of matching verbs and may not be empty.\n  // \"*\" matches all verbs and, if present, must be the only entry.\n  // +listType=set\n  // Required.\n  repeated string verbs = 1;\n\n  // `apiGroups` is a list of matching API groups and may not be empty.\n  // \"*\" matches all API groups and, if present, must be the only entry.\n  // +listType=set\n  // Required.\n  repeated string apiGroups = 2;\n\n  // `resources` is a list of matching resources (i.e., lowercase\n  // and plural) with, if desired, subresource.  For example, [\n  // \"services\", \"nodes/status\" ].  This list may not be empty.\n  // \"*\" matches all resources and, if present, must be the only entry.\n  // Required.\n  // +listType=set\n  repeated string resources = 3;\n\n  // `clusterScope` indicates whether to match requests that do not\n  // specify a namespace (which happens either because the resource\n  // is not namespaced or the request targets all namespaces).\n  // If this field is omitted or false then the `namespaces` field\n  // must contain a non-empty list.\n  // +optional\n  optional bool clusterScope = 4;\n\n  // `namespaces` is a list of target namespaces that restricts\n  // matches.  A request that specifies a target namespace matches\n  // only if either (a) this list contains that target namespace or\n  // (b) this list contains \"*\".  Note that \"*\" matches any\n  // specified namespace but does not match a request that _does\n  // not specify_ a namespace (see the `clusterScope` field for\n  // that).\n  // This list may be empty, but only if `clusterScope` is true.\n  // +optional\n  // +listType=set\n  repeated string namespaces = 5;\n}\n\n// ServiceAccountSubject holds detailed information for service-account-kind subject.\nmessage ServiceAccountSubject {\n  // `namespace` is the namespace of matching ServiceAccount objects.\n  // Required.\n  optional string namespace = 1;\n\n  // `name` is the name of matching ServiceAccount objects, or \"*\" to match regardless of name.\n  // Required.\n  optional string name = 2;\n}\n\n// Subject matches the originator of a request, as identified by the request authentication system. There are three\n// ways of matching an originator; by user, group, or service account.\n// +union\nmessage Subject {\n  // `kind` indicates which one of the other fields is non-empty.\n  // Required\n  // +unionDiscriminator\n  optional string kind = 1;\n\n  // `user` matches based on username.\n  // +optional\n  optional UserSubject user = 2;\n\n  // `group` matches based on user group name.\n  // +optional\n  optional GroupSubject group = 3;\n\n  // `serviceAccount` matches ServiceAccounts.\n  // +optional\n  optional ServiceAccountSubject serviceAccount = 4;\n}\n\n// UserSubject holds detailed information for user-kind subject.\nmessage UserSubject {\n  // `name` is the username that matches, or \"*\" to match all usernames.\n  // Required.\n  optional string name = 1;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta2/register.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta2\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the name of api group\nconst GroupName = \"flowcontrol.apiserver.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta2\"}\n\n// Kind takes an unqualified kind and returns a Group qualified GroupKind\nfunc Kind(kind string) schema.GroupKind {\n\treturn SchemeGroupVersion.WithKind(kind).GroupKind()\n}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// SchemeBuilder installs the api group to a scheme\n\tSchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)\n\t// AddToScheme adds api to a scheme\n\tAddToScheme = SchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&FlowSchema{},\n\t\t&FlowSchemaList{},\n\t\t&PriorityLevelConfiguration{},\n\t\t&PriorityLevelConfigurationList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta2/types.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta2\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// These are valid wildcards.\nconst (\n\tAPIGroupAll    = \"*\"\n\tResourceAll    = \"*\"\n\tVerbAll        = \"*\"\n\tNonResourceAll = \"*\"\n\tNameAll        = \"*\"\n\n\tNamespaceEvery = \"*\" // matches every particular namespace\n)\n\n// System preset priority level names\nconst (\n\tPriorityLevelConfigurationNameExempt   = \"exempt\"\n\tPriorityLevelConfigurationNameCatchAll = \"catch-all\"\n\tFlowSchemaNameExempt                   = \"exempt\"\n\tFlowSchemaNameCatchAll                 = \"catch-all\"\n)\n\n// Conditions\nconst (\n\tFlowSchemaConditionDangling = \"Dangling\"\n\n\tPriorityLevelConfigurationConditionConcurrencyShared = \"ConcurrencyShared\"\n)\n\n// Constants used by api validation.\nconst (\n\tFlowSchemaMaxMatchingPrecedence int32 = 10000\n)\n\n// Constants for apiserver response headers.\nconst (\n\tResponseHeaderMatchedPriorityLevelConfigurationUID = \"X-Kubernetes-PF-PriorityLevel-UID\"\n\tResponseHeaderMatchedFlowSchemaUID                 = \"X-Kubernetes-PF-FlowSchema-UID\"\n)\n\nconst (\n\t// AutoUpdateAnnotationKey is the name of an annotation that enables\n\t// automatic update of the spec of the bootstrap configuration\n\t// object(s), if set to 'true'.\n\t//\n\t// On a fresh install, all bootstrap configuration objects will have auto\n\t// update enabled with the following annotation key:\n\t//    apf.kubernetes.io/autoupdate-spec: 'true'\n\t//\n\t// The kube-apiserver periodically checks the bootstrap configuration\n\t// objects on the cluster and applies updates if necessary.\n\t//\n\t// kube-apiserver enforces an 'always auto-update' policy for the\n\t// mandatory configuration object(s). This implies:\n\t// - the auto-update annotation key is added with a value of 'true'\n\t//   if it is missing.\n\t// - the auto-update annotation key is set to 'true' if its current value\n\t//   is a boolean false or has an invalid boolean representation\n\t//   (if the cluster operator sets it to 'false' it will be stomped)\n\t// - any changes to the spec made by the cluster operator will be\n\t//   stomped, except for changes to the `nominalConcurrencyShares`\n\t//   and `lendablePercent` fields of the PriorityLevelConfiguration\n\t//   named \"exempt\".\n\t//\n\t// The kube-apiserver will apply updates on the suggested configuration if:\n\t// - the cluster operator has enabled auto-update by setting the annotation\n\t//   (apf.kubernetes.io/autoupdate-spec: 'true') or\n\t// - the annotation key is missing but the generation is 1\n\t//\n\t// If the suggested configuration object is missing the annotation key,\n\t// kube-apiserver will update the annotation appropriately:\n\t// - it is set to 'true' if generation of the object is '1' which usually\n\t//   indicates that the spec of the object has not been changed.\n\t// - it is set to 'false' if generation of the object is greater than 1.\n\t//\n\t// The goal is to enable the kube-apiserver to apply update on suggested\n\t// configuration objects installed by previous releases but not overwrite\n\t// changes made by the cluster operators.\n\t// Note that this distinction is imperfectly detected: in the case where an\n\t// operator deletes a suggested configuration object and later creates it\n\t// but with a variant spec and then does no updates of the object\n\t// (generation is 1), the technique outlined above will incorrectly\n\t// determine that the object should be auto-updated.\n\tAutoUpdateAnnotationKey = \"apf.kubernetes.io/autoupdate-spec\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.23\n// +k8s:prerelease-lifecycle-gen:replacement=flowcontrol.apiserver.k8s.io,v1beta3,FlowSchema\n\n// FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of inbound API requests with\n// similar attributes and is identified by a pair of strings: the name of the FlowSchema and a \"flow distinguisher\".\ntype FlowSchema struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// `metadata` is the standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// `spec` is the specification of the desired behavior of a FlowSchema.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec FlowSchemaSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\t// `status` is the current status of a FlowSchema.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus FlowSchemaStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.23\n// +k8s:prerelease-lifecycle-gen:replacement=flowcontrol.apiserver.k8s.io,v1beta3,FlowSchemaList\n\n// FlowSchemaList is a list of FlowSchema objects.\ntype FlowSchemaList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// `metadata` is the standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// `items` is a list of FlowSchemas.\n\tItems []FlowSchema `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// FlowSchemaSpec describes how the FlowSchema's specification looks like.\ntype FlowSchemaSpec struct {\n\t// `priorityLevelConfiguration` should reference a PriorityLevelConfiguration in the cluster. If the reference cannot\n\t// be resolved, the FlowSchema will be ignored and marked as invalid in its status.\n\t// Required.\n\tPriorityLevelConfiguration PriorityLevelConfigurationReference `json:\"priorityLevelConfiguration\" protobuf:\"bytes,1,opt,name=priorityLevelConfiguration\"`\n\t// `matchingPrecedence` is used to choose among the FlowSchemas that match a given request. The chosen\n\t// FlowSchema is among those with the numerically lowest (which we take to be logically highest)\n\t// MatchingPrecedence.  Each MatchingPrecedence value must be ranged in [1,10000].\n\t// Note that if the precedence is not specified, it will be set to 1000 as default.\n\t// +optional\n\tMatchingPrecedence int32 `json:\"matchingPrecedence\" protobuf:\"varint,2,opt,name=matchingPrecedence\"`\n\t// `distinguisherMethod` defines how to compute the flow distinguisher for requests that match this schema.\n\t// `nil` specifies that the distinguisher is disabled and thus will always be the empty string.\n\t// +optional\n\tDistinguisherMethod *FlowDistinguisherMethod `json:\"distinguisherMethod,omitempty\" protobuf:\"bytes,3,opt,name=distinguisherMethod\"`\n\t// `rules` describes which requests will match this flow schema. This FlowSchema matches a request if and only if\n\t// at least one member of rules matches the request.\n\t// if it is an empty slice, there will be no requests matching the FlowSchema.\n\t// +listType=atomic\n\t// +optional\n\tRules []PolicyRulesWithSubjects `json:\"rules,omitempty\" protobuf:\"bytes,4,rep,name=rules\"`\n}\n\n// FlowDistinguisherMethodType is the type of flow distinguisher method\ntype FlowDistinguisherMethodType string\n\n// These are valid flow-distinguisher methods.\nconst (\n\t// FlowDistinguisherMethodByUserType specifies that the flow distinguisher is the username in the request.\n\t// This type is used to provide some insulation between users.\n\tFlowDistinguisherMethodByUserType FlowDistinguisherMethodType = \"ByUser\"\n\n\t// FlowDistinguisherMethodByNamespaceType specifies that the flow distinguisher is the namespace of the\n\t// object that the request acts upon. If the object is not namespaced, or if the request is a non-resource\n\t// request, then the distinguisher will be the empty string. An example usage of this type is to provide\n\t// some insulation between tenants in a situation where there are multiple tenants and each namespace\n\t// is dedicated to a tenant.\n\tFlowDistinguisherMethodByNamespaceType FlowDistinguisherMethodType = \"ByNamespace\"\n)\n\n// FlowDistinguisherMethod specifies the method of a flow distinguisher.\ntype FlowDistinguisherMethod struct {\n\t// `type` is the type of flow distinguisher method\n\t// The supported types are \"ByUser\" and \"ByNamespace\".\n\t// Required.\n\tType FlowDistinguisherMethodType `json:\"type\" protobuf:\"bytes,1,opt,name=type\"`\n}\n\n// PriorityLevelConfigurationReference contains information that points to the \"request-priority\" being used.\ntype PriorityLevelConfigurationReference struct {\n\t// `name` is the name of the priority level configuration being referenced\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n}\n\n// PolicyRulesWithSubjects prescribes a test that applies to a request to an apiserver. The test considers the subject\n// making the request, the verb being requested, and the resource to be acted upon. This PolicyRulesWithSubjects matches\n// a request if and only if both (a) at least one member of subjects matches the request and (b) at least one member\n// of resourceRules or nonResourceRules matches the request.\ntype PolicyRulesWithSubjects struct {\n\t// subjects is the list of normal user, serviceaccount, or group that this rule cares about.\n\t// There must be at least one member in this slice.\n\t// A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request.\n\t// +listType=atomic\n\t// Required.\n\tSubjects []Subject `json:\"subjects\" protobuf:\"bytes,1,rep,name=subjects\"`\n\t// `resourceRules` is a slice of ResourcePolicyRules that identify matching requests according to their verb and the\n\t// target resource.\n\t// At least one of `resourceRules` and `nonResourceRules` has to be non-empty.\n\t// +listType=atomic\n\t// +optional\n\tResourceRules []ResourcePolicyRule `json:\"resourceRules,omitempty\" protobuf:\"bytes,2,opt,name=resourceRules\"`\n\t// `nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests according to their verb\n\t// and the target non-resource URL.\n\t// +listType=atomic\n\t// +optional\n\tNonResourceRules []NonResourcePolicyRule `json:\"nonResourceRules,omitempty\" protobuf:\"bytes,3,opt,name=nonResourceRules\"`\n}\n\n// Subject matches the originator of a request, as identified by the request authentication system. There are three\n// ways of matching an originator; by user, group, or service account.\n// +union\ntype Subject struct {\n\t// `kind` indicates which one of the other fields is non-empty.\n\t// Required\n\t// +unionDiscriminator\n\tKind SubjectKind `json:\"kind\" protobuf:\"bytes,1,opt,name=kind\"`\n\t// `user` matches based on username.\n\t// +optional\n\tUser *UserSubject `json:\"user,omitempty\" protobuf:\"bytes,2,opt,name=user\"`\n\t// `group` matches based on user group name.\n\t// +optional\n\tGroup *GroupSubject `json:\"group,omitempty\" protobuf:\"bytes,3,opt,name=group\"`\n\t// `serviceAccount` matches ServiceAccounts.\n\t// +optional\n\tServiceAccount *ServiceAccountSubject `json:\"serviceAccount,omitempty\" protobuf:\"bytes,4,opt,name=serviceAccount\"`\n}\n\n// SubjectKind is the kind of subject.\ntype SubjectKind string\n\n// Supported subject's kinds.\nconst (\n\tSubjectKindUser           SubjectKind = \"User\"\n\tSubjectKindGroup          SubjectKind = \"Group\"\n\tSubjectKindServiceAccount SubjectKind = \"ServiceAccount\"\n)\n\n// UserSubject holds detailed information for user-kind subject.\ntype UserSubject struct {\n\t// `name` is the username that matches, or \"*\" to match all usernames.\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n}\n\n// GroupSubject holds detailed information for group-kind subject.\ntype GroupSubject struct {\n\t// name is the user group that matches, or \"*\" to match all user groups.\n\t// See https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go for some\n\t// well-known group names.\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n}\n\n// ServiceAccountSubject holds detailed information for service-account-kind subject.\ntype ServiceAccountSubject struct {\n\t// `namespace` is the namespace of matching ServiceAccount objects.\n\t// Required.\n\tNamespace string `json:\"namespace\" protobuf:\"bytes,1,opt,name=namespace\"`\n\t// `name` is the name of matching ServiceAccount objects, or \"*\" to match regardless of name.\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,2,opt,name=name\"`\n}\n\n// ResourcePolicyRule is a predicate that matches some resource\n// requests, testing the request's verb and the target resource. A\n// ResourcePolicyRule matches a resource request if and only if: (a)\n// at least one member of verbs matches the request, (b) at least one\n// member of apiGroups matches the request, (c) at least one member of\n// resources matches the request, and (d) either (d1) the request does\n// not specify a namespace (i.e., `Namespace==\"\"`) and clusterScope is\n// true or (d2) the request specifies a namespace and least one member\n// of namespaces matches the request's namespace.\ntype ResourcePolicyRule struct {\n\t// `verbs` is a list of matching verbs and may not be empty.\n\t// \"*\" matches all verbs and, if present, must be the only entry.\n\t// +listType=set\n\t// Required.\n\tVerbs []string `json:\"verbs\" protobuf:\"bytes,1,rep,name=verbs\"`\n\n\t// `apiGroups` is a list of matching API groups and may not be empty.\n\t// \"*\" matches all API groups and, if present, must be the only entry.\n\t// +listType=set\n\t// Required.\n\tAPIGroups []string `json:\"apiGroups\" protobuf:\"bytes,2,rep,name=apiGroups\"`\n\n\t// `resources` is a list of matching resources (i.e., lowercase\n\t// and plural) with, if desired, subresource.  For example, [\n\t// \"services\", \"nodes/status\" ].  This list may not be empty.\n\t// \"*\" matches all resources and, if present, must be the only entry.\n\t// Required.\n\t// +listType=set\n\tResources []string `json:\"resources\" protobuf:\"bytes,3,rep,name=resources\"`\n\n\t// `clusterScope` indicates whether to match requests that do not\n\t// specify a namespace (which happens either because the resource\n\t// is not namespaced or the request targets all namespaces).\n\t// If this field is omitted or false then the `namespaces` field\n\t// must contain a non-empty list.\n\t// +optional\n\tClusterScope bool `json:\"clusterScope,omitempty\" protobuf:\"varint,4,opt,name=clusterScope\"`\n\n\t// `namespaces` is a list of target namespaces that restricts\n\t// matches.  A request that specifies a target namespace matches\n\t// only if either (a) this list contains that target namespace or\n\t// (b) this list contains \"*\".  Note that \"*\" matches any\n\t// specified namespace but does not match a request that _does\n\t// not specify_ a namespace (see the `clusterScope` field for\n\t// that).\n\t// This list may be empty, but only if `clusterScope` is true.\n\t// +optional\n\t// +listType=set\n\tNamespaces []string `json:\"namespaces\" protobuf:\"bytes,5,rep,name=namespaces\"`\n}\n\n// NonResourcePolicyRule is a predicate that matches non-resource requests according to their verb and the\n// target non-resource URL. A NonResourcePolicyRule matches a request if and only if both (a) at least one member\n// of verbs matches the request and (b) at least one member of nonResourceURLs matches the request.\ntype NonResourcePolicyRule struct {\n\t// `verbs` is a list of matching verbs and may not be empty.\n\t// \"*\" matches all verbs. If it is present, it must be the only entry.\n\t// +listType=set\n\t// Required.\n\tVerbs []string `json:\"verbs\" protobuf:\"bytes,1,rep,name=verbs\"`\n\t// `nonResourceURLs` is a set of url prefixes that a user should have access to and may not be empty.\n\t// For example:\n\t//   - \"/healthz\" is legal\n\t//   - \"/hea*\" is illegal\n\t//   - \"/hea\" is legal but matches nothing\n\t//   - \"/hea/*\" also matches nothing\n\t//   - \"/healthz/*\" matches all per-component health checks.\n\t// \"*\" matches all non-resource urls. if it is present, it must be the only entry.\n\t// +listType=set\n\t// Required.\n\tNonResourceURLs []string `json:\"nonResourceURLs\" protobuf:\"bytes,6,rep,name=nonResourceURLs\"`\n}\n\n// FlowSchemaStatus represents the current state of a FlowSchema.\ntype FlowSchemaStatus struct {\n\t// `conditions` is a list of the current states of FlowSchema.\n\t// +listType=map\n\t// +listMapKey=type\n\t// +optional\n\tConditions []FlowSchemaCondition `json:\"conditions,omitempty\" protobuf:\"bytes,1,rep,name=conditions\"`\n}\n\n// FlowSchemaCondition describes conditions for a FlowSchema.\ntype FlowSchemaCondition struct {\n\t// `type` is the type of the condition.\n\t// Required.\n\tType FlowSchemaConditionType `json:\"type,omitempty\" protobuf:\"bytes,1,opt,name=type\"`\n\t// `status` is the status of the condition.\n\t// Can be True, False, Unknown.\n\t// Required.\n\tStatus ConditionStatus `json:\"status,omitempty\" protobuf:\"bytes,2,opt,name=status\"`\n\t// `lastTransitionTime` is the last time the condition transitioned from one status to another.\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\t// `reason` is a unique, one-word, CamelCase reason for the condition's last transition.\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// `message` is a human-readable message indicating details about last transition.\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// FlowSchemaConditionType is a valid value for FlowSchemaStatusCondition.Type\ntype FlowSchemaConditionType string\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.23\n// +k8s:prerelease-lifecycle-gen:replacement=flowcontrol.apiserver.k8s.io,v1beta3,PriorityLevelConfiguration\n\n// PriorityLevelConfiguration represents the configuration of a priority level.\ntype PriorityLevelConfiguration struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// `metadata` is the standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// `spec` is the specification of the desired behavior of a \"request-priority\".\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec PriorityLevelConfigurationSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\t// `status` is the current status of a \"request-priority\".\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus PriorityLevelConfigurationStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.23\n// +k8s:prerelease-lifecycle-gen:replacement=flowcontrol.apiserver.k8s.io,v1beta3,PriorityLevelConfigurationList\n\n// PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects.\ntype PriorityLevelConfigurationList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// `metadata` is the standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// `items` is a list of request-priorities.\n\tItems []PriorityLevelConfiguration `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// PriorityLevelConfigurationSpec specifies the configuration of a priority level.\n// +union\ntype PriorityLevelConfigurationSpec struct {\n\t// `type` indicates whether this priority level is subject to\n\t// limitation on request execution.  A value of `\"Exempt\"` means\n\t// that requests of this priority level are not subject to a limit\n\t// (and thus are never queued) and do not detract from the\n\t// capacity made available to other priority levels.  A value of\n\t// `\"Limited\"` means that (a) requests of this priority level\n\t// _are_ subject to limits and (b) some of the server's limited\n\t// capacity is made available exclusively to this priority level.\n\t// Required.\n\t// +unionDiscriminator\n\tType PriorityLevelEnablement `json:\"type\" protobuf:\"bytes,1,opt,name=type\"`\n\n\t// `limited` specifies how requests are handled for a Limited priority level.\n\t// This field must be non-empty if and only if `type` is `\"Limited\"`.\n\t// +optional\n\tLimited *LimitedPriorityLevelConfiguration `json:\"limited,omitempty\" protobuf:\"bytes,2,opt,name=limited\"`\n\n\t// `exempt` specifies how requests are handled for an exempt priority level.\n\t// This field MUST be empty if `type` is `\"Limited\"`.\n\t// This field MAY be non-empty if `type` is `\"Exempt\"`.\n\t// If empty and `type` is `\"Exempt\"` then the default values\n\t// for `ExemptPriorityLevelConfiguration` apply.\n\t// +optional\n\tExempt *ExemptPriorityLevelConfiguration `json:\"exempt,omitempty\" protobuf:\"bytes,3,opt,name=exempt\"`\n}\n\n// PriorityLevelEnablement indicates whether limits on execution are enabled for the priority level\ntype PriorityLevelEnablement string\n\n// Supported priority level enablement values.\nconst (\n\t// PriorityLevelEnablementExempt means that requests are not subject to limits\n\tPriorityLevelEnablementExempt PriorityLevelEnablement = \"Exempt\"\n\n\t// PriorityLevelEnablementLimited means that requests are subject to limits\n\tPriorityLevelEnablementLimited PriorityLevelEnablement = \"Limited\"\n)\n\n// LimitedPriorityLevelConfiguration specifies how to handle requests that are subject to limits.\n// It addresses two issues:\n//   - How are requests for this priority level limited?\n//   - What should be done with requests that exceed the limit?\ntype LimitedPriorityLevelConfiguration struct {\n\t// `assuredConcurrencyShares` (ACS) configures the execution\n\t// limit, which is a limit on the number of requests of this\n\t// priority level that may be executing at a given time.  ACS must\n\t// be a positive number. The server's concurrency limit (SCL) is\n\t// divided among the concurrency-controlled priority levels in\n\t// proportion to their assured concurrency shares. This produces\n\t// the assured concurrency value (ACV) --- the number of requests\n\t// that may be executing at a time --- for each such priority\n\t// level:\n\t//\n\t//             ACV(l) = ceil( SCL * ACS(l) / ( sum[priority levels k] ACS(k) ) )\n\t//\n\t// bigger numbers of ACS mean more reserved concurrent requests (at the\n\t// expense of every other PL).\n\t// This field has a default value of 30.\n\t// +optional\n\tAssuredConcurrencyShares int32 `json:\"assuredConcurrencyShares\" protobuf:\"varint,1,opt,name=assuredConcurrencyShares\"`\n\n\t// `limitResponse` indicates what to do with requests that can not be executed right now\n\tLimitResponse LimitResponse `json:\"limitResponse,omitempty\" protobuf:\"bytes,2,opt,name=limitResponse\"`\n\n\t// `lendablePercent` prescribes the fraction of the level's NominalCL that\n\t// can be borrowed by other priority levels. The value of this\n\t// field must be between 0 and 100, inclusive, and it defaults to 0.\n\t// The number of seats that other levels can borrow from this level, known\n\t// as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\n\t//\n\t// LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )\n\t//\n\t// +optional\n\tLendablePercent *int32 `json:\"lendablePercent,omitempty\" protobuf:\"varint,3,opt,name=lendablePercent\"`\n\n\t// `borrowingLimitPercent`, if present, configures a limit on how many\n\t// seats this priority level can borrow from other priority levels.\n\t// The limit is known as this level's BorrowingConcurrencyLimit\n\t// (BorrowingCL) and is a limit on the total number of seats that this\n\t// level may borrow at any one time.\n\t// This field holds the ratio of that limit to the level's nominal\n\t// concurrency limit. When this field is non-nil, it must hold a\n\t// non-negative integer and the limit is calculated as follows.\n\t//\n\t// BorrowingCL(i) = round( NominalCL(i) * borrowingLimitPercent(i)/100.0 )\n\t//\n\t// The value of this field can be more than 100, implying that this\n\t// priority level can borrow a number of seats that is greater than\n\t// its own nominal concurrency limit (NominalCL).\n\t// When this field is left `nil`, the limit is effectively infinite.\n\t// +optional\n\tBorrowingLimitPercent *int32 `json:\"borrowingLimitPercent,omitempty\" protobuf:\"varint,4,opt,name=borrowingLimitPercent\"`\n}\n\n// ExemptPriorityLevelConfiguration describes the configurable aspects\n// of the handling of exempt requests.\n// In the mandatory exempt configuration object the values in the fields\n// here can be modified by authorized users, unlike the rest of the `spec`.\ntype ExemptPriorityLevelConfiguration struct {\n\t// `nominalConcurrencyShares` (NCS) contributes to the computation of the\n\t// NominalConcurrencyLimit (NominalCL) of this level.\n\t// This is the number of execution seats nominally reserved for this priority level.\n\t// This DOES NOT limit the dispatching from this priority level\n\t// but affects the other priority levels through the borrowing mechanism.\n\t// The server's concurrency limit (ServerCL) is divided among all the\n\t// priority levels in proportion to their NCS values:\n\t//\n\t// NominalCL(i)  = ceil( ServerCL * NCS(i) / sum_ncs )\n\t// sum_ncs = sum[priority level k] NCS(k)\n\t//\n\t// Bigger numbers mean a larger nominal concurrency limit,\n\t// at the expense of every other priority level.\n\t// This field has a default value of zero.\n\t// +optional\n\tNominalConcurrencyShares *int32 `json:\"nominalConcurrencyShares,omitempty\" protobuf:\"varint,1,opt,name=nominalConcurrencyShares\"`\n\t// `lendablePercent` prescribes the fraction of the level's NominalCL that\n\t// can be borrowed by other priority levels.  This value of this\n\t// field must be between 0 and 100, inclusive, and it defaults to 0.\n\t// The number of seats that other levels can borrow from this level, known\n\t// as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\n\t//\n\t// LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )\n\t//\n\t// +optional\n\tLendablePercent *int32 `json:\"lendablePercent,omitempty\" protobuf:\"varint,2,opt,name=lendablePercent\"`\n\t// The `BorrowingCL` of an Exempt priority level is implicitly `ServerCL`.\n\t// In other words, an exempt priority level\n\t// has no meaningful limit on how much it borrows.\n\t// There is no explicit representation of that here.\n}\n\n// LimitResponse defines how to handle requests that can not be executed right now.\n// +union\ntype LimitResponse struct {\n\t// `type` is \"Queue\" or \"Reject\".\n\t// \"Queue\" means that requests that can not be executed upon arrival\n\t// are held in a queue until they can be executed or a queuing limit\n\t// is reached.\n\t// \"Reject\" means that requests that can not be executed upon arrival\n\t// are rejected.\n\t// Required.\n\t// +unionDiscriminator\n\tType LimitResponseType `json:\"type\" protobuf:\"bytes,1,opt,name=type\"`\n\n\t// `queuing` holds the configuration parameters for queuing.\n\t// This field may be non-empty only if `type` is `\"Queue\"`.\n\t// +optional\n\tQueuing *QueuingConfiguration `json:\"queuing,omitempty\" protobuf:\"bytes,2,opt,name=queuing\"`\n}\n\n// LimitResponseType identifies how a Limited priority level handles a request that can not be executed right now\ntype LimitResponseType string\n\n// Supported limit responses.\nconst (\n\t// LimitResponseTypeQueue means that requests that can not be executed right now are queued until they can be executed or a queuing limit is hit\n\tLimitResponseTypeQueue LimitResponseType = \"Queue\"\n\n\t// LimitResponseTypeReject means that requests that can not be executed right now are rejected\n\tLimitResponseTypeReject LimitResponseType = \"Reject\"\n)\n\n// QueuingConfiguration holds the configuration parameters for queuing\ntype QueuingConfiguration struct {\n\t// `queues` is the number of queues for this priority level. The\n\t// queues exist independently at each apiserver. The value must be\n\t// positive.  Setting it to 1 effectively precludes\n\t// shufflesharding and thus makes the distinguisher method of\n\t// associated flow schemas irrelevant.  This field has a default\n\t// value of 64.\n\t// +optional\n\tQueues int32 `json:\"queues\" protobuf:\"varint,1,opt,name=queues\"`\n\n\t// `handSize` is a small positive number that configures the\n\t// shuffle sharding of requests into queues.  When enqueuing a request\n\t// at this priority level the request's flow identifier (a string\n\t// pair) is hashed and the hash value is used to shuffle the list\n\t// of queues and deal a hand of the size specified here.  The\n\t// request is put into one of the shortest queues in that hand.\n\t// `handSize` must be no larger than `queues`, and should be\n\t// significantly smaller (so that a few heavy flows do not\n\t// saturate most of the queues).  See the user-facing\n\t// documentation for more extensive guidance on setting this\n\t// field.  This field has a default value of 8.\n\t// +optional\n\tHandSize int32 `json:\"handSize\" protobuf:\"varint,2,opt,name=handSize\"`\n\n\t// `queueLengthLimit` is the maximum number of requests allowed to\n\t// be waiting in a given queue of this priority level at a time;\n\t// excess requests are rejected.  This value must be positive.  If\n\t// not specified, it will be defaulted to 50.\n\t// +optional\n\tQueueLengthLimit int32 `json:\"queueLengthLimit\" protobuf:\"varint,3,opt,name=queueLengthLimit\"`\n}\n\n// PriorityLevelConfigurationConditionType is a valid value for PriorityLevelConfigurationStatusCondition.Type\ntype PriorityLevelConfigurationConditionType string\n\n// PriorityLevelConfigurationStatus represents the current state of a \"request-priority\".\ntype PriorityLevelConfigurationStatus struct {\n\t// `conditions` is the current state of \"request-priority\".\n\t// +listType=map\n\t// +listMapKey=type\n\t// +optional\n\tConditions []PriorityLevelConfigurationCondition `json:\"conditions,omitempty\" protobuf:\"bytes,1,rep,name=conditions\"`\n}\n\n// PriorityLevelConfigurationCondition defines the condition of priority level.\ntype PriorityLevelConfigurationCondition struct {\n\t// `type` is the type of the condition.\n\t// Required.\n\tType PriorityLevelConfigurationConditionType `json:\"type,omitempty\" protobuf:\"bytes,1,opt,name=type\"`\n\t// `status` is the status of the condition.\n\t// Can be True, False, Unknown.\n\t// Required.\n\tStatus ConditionStatus `json:\"status,omitempty\" protobuf:\"bytes,2,opt,name=status\"`\n\t// `lastTransitionTime` is the last time the condition transitioned from one status to another.\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\t// `reason` is a unique, one-word, CamelCase reason for the condition's last transition.\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// `message` is a human-readable message indicating details about last transition.\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// ConditionStatus is the status of the condition.\ntype ConditionStatus string\n\n// These are valid condition statuses. \"ConditionTrue\" means a resource is in the condition.\n// \"ConditionFalse\" means a resource is not in the condition. \"ConditionUnknown\" means kubernetes\n// can't decide if a resource is in the condition or not. In the future, we could add other\n// intermediate conditions, e.g. ConditionDegraded.\nconst (\n\tConditionTrue    ConditionStatus = \"True\"\n\tConditionFalse   ConditionStatus = \"False\"\n\tConditionUnknown ConditionStatus = \"Unknown\"\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta2/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta2\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_ExemptPriorityLevelConfiguration = map[string]string{\n\t\"\":                         \"ExemptPriorityLevelConfiguration describes the configurable aspects of the handling of exempt requests. In the mandatory exempt configuration object the values in the fields here can be modified by authorized users, unlike the rest of the `spec`.\",\n\t\"nominalConcurrencyShares\": \"`nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats nominally reserved for this priority level. This DOES NOT limit the dispatching from this priority level but affects the other priority levels through the borrowing mechanism. The server's concurrency limit (ServerCL) is divided among all the priority levels in proportion to their NCS values:\\n\\nNominalCL(i)  = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k)\\n\\nBigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of zero.\",\n\t\"lendablePercent\":          \"`lendablePercent` prescribes the fraction of the level's NominalCL that can be borrowed by other priority levels.  This value of this field must be between 0 and 100, inclusive, and it defaults to 0. The number of seats that other levels can borrow from this level, known as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\\n\\nLendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )\",\n}\n\nfunc (ExemptPriorityLevelConfiguration) SwaggerDoc() map[string]string {\n\treturn map_ExemptPriorityLevelConfiguration\n}\n\nvar map_FlowDistinguisherMethod = map[string]string{\n\t\"\":     \"FlowDistinguisherMethod specifies the method of a flow distinguisher.\",\n\t\"type\": \"`type` is the type of flow distinguisher method The supported types are \\\"ByUser\\\" and \\\"ByNamespace\\\". Required.\",\n}\n\nfunc (FlowDistinguisherMethod) SwaggerDoc() map[string]string {\n\treturn map_FlowDistinguisherMethod\n}\n\nvar map_FlowSchema = map[string]string{\n\t\"\":         \"FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of inbound API requests with similar attributes and is identified by a pair of strings: the name of the FlowSchema and a \\\"flow distinguisher\\\".\",\n\t\"metadata\": \"`metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"`spec` is the specification of the desired behavior of a FlowSchema. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"`status` is the current status of a FlowSchema. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (FlowSchema) SwaggerDoc() map[string]string {\n\treturn map_FlowSchema\n}\n\nvar map_FlowSchemaCondition = map[string]string{\n\t\"\":                   \"FlowSchemaCondition describes conditions for a FlowSchema.\",\n\t\"type\":               \"`type` is the type of the condition. Required.\",\n\t\"status\":             \"`status` is the status of the condition. Can be True, False, Unknown. Required.\",\n\t\"lastTransitionTime\": \"`lastTransitionTime` is the last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"`reason` is a unique, one-word, CamelCase reason for the condition's last transition.\",\n\t\"message\":            \"`message` is a human-readable message indicating details about last transition.\",\n}\n\nfunc (FlowSchemaCondition) SwaggerDoc() map[string]string {\n\treturn map_FlowSchemaCondition\n}\n\nvar map_FlowSchemaList = map[string]string{\n\t\"\":         \"FlowSchemaList is a list of FlowSchema objects.\",\n\t\"metadata\": \"`metadata` is the standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"`items` is a list of FlowSchemas.\",\n}\n\nfunc (FlowSchemaList) SwaggerDoc() map[string]string {\n\treturn map_FlowSchemaList\n}\n\nvar map_FlowSchemaSpec = map[string]string{\n\t\"\":                           \"FlowSchemaSpec describes how the FlowSchema's specification looks like.\",\n\t\"priorityLevelConfiguration\": \"`priorityLevelConfiguration` should reference a PriorityLevelConfiguration in the cluster. If the reference cannot be resolved, the FlowSchema will be ignored and marked as invalid in its status. Required.\",\n\t\"matchingPrecedence\":         \"`matchingPrecedence` is used to choose among the FlowSchemas that match a given request. The chosen FlowSchema is among those with the numerically lowest (which we take to be logically highest) MatchingPrecedence.  Each MatchingPrecedence value must be ranged in [1,10000]. Note that if the precedence is not specified, it will be set to 1000 as default.\",\n\t\"distinguisherMethod\":        \"`distinguisherMethod` defines how to compute the flow distinguisher for requests that match this schema. `nil` specifies that the distinguisher is disabled and thus will always be the empty string.\",\n\t\"rules\":                      \"`rules` describes which requests will match this flow schema. This FlowSchema matches a request if and only if at least one member of rules matches the request. if it is an empty slice, there will be no requests matching the FlowSchema.\",\n}\n\nfunc (FlowSchemaSpec) SwaggerDoc() map[string]string {\n\treturn map_FlowSchemaSpec\n}\n\nvar map_FlowSchemaStatus = map[string]string{\n\t\"\":           \"FlowSchemaStatus represents the current state of a FlowSchema.\",\n\t\"conditions\": \"`conditions` is a list of the current states of FlowSchema.\",\n}\n\nfunc (FlowSchemaStatus) SwaggerDoc() map[string]string {\n\treturn map_FlowSchemaStatus\n}\n\nvar map_GroupSubject = map[string]string{\n\t\"\":     \"GroupSubject holds detailed information for group-kind subject.\",\n\t\"name\": \"name is the user group that matches, or \\\"*\\\" to match all user groups. See https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go for some well-known group names. Required.\",\n}\n\nfunc (GroupSubject) SwaggerDoc() map[string]string {\n\treturn map_GroupSubject\n}\n\nvar map_LimitResponse = map[string]string{\n\t\"\":        \"LimitResponse defines how to handle requests that can not be executed right now.\",\n\t\"type\":    \"`type` is \\\"Queue\\\" or \\\"Reject\\\". \\\"Queue\\\" means that requests that can not be executed upon arrival are held in a queue until they can be executed or a queuing limit is reached. \\\"Reject\\\" means that requests that can not be executed upon arrival are rejected. Required.\",\n\t\"queuing\": \"`queuing` holds the configuration parameters for queuing. This field may be non-empty only if `type` is `\\\"Queue\\\"`.\",\n}\n\nfunc (LimitResponse) SwaggerDoc() map[string]string {\n\treturn map_LimitResponse\n}\n\nvar map_LimitedPriorityLevelConfiguration = map[string]string{\n\t\"\":                         \"LimitedPriorityLevelConfiguration specifies how to handle requests that are subject to limits. It addresses two issues:\\n  - How are requests for this priority level limited?\\n  - What should be done with requests that exceed the limit?\",\n\t\"assuredConcurrencyShares\": \"`assuredConcurrencyShares` (ACS) configures the execution limit, which is a limit on the number of requests of this priority level that may be executing at a given time.  ACS must be a positive number. The server's concurrency limit (SCL) is divided among the concurrency-controlled priority levels in proportion to their assured concurrency shares. This produces the assured concurrency value (ACV) \",\n\t\"limitResponse\":            \"`limitResponse` indicates what to do with requests that can not be executed right now\",\n\t\"lendablePercent\":          \"`lendablePercent` prescribes the fraction of the level's NominalCL that can be borrowed by other priority levels. The value of this field must be between 0 and 100, inclusive, and it defaults to 0. The number of seats that other levels can borrow from this level, known as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\\n\\nLendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )\",\n\t\"borrowingLimitPercent\":    \"`borrowingLimitPercent`, if present, configures a limit on how many seats this priority level can borrow from other priority levels. The limit is known as this level's BorrowingConcurrencyLimit (BorrowingCL) and is a limit on the total number of seats that this level may borrow at any one time. This field holds the ratio of that limit to the level's nominal concurrency limit. When this field is non-nil, it must hold a non-negative integer and the limit is calculated as follows.\\n\\nBorrowingCL(i) = round( NominalCL(i) * borrowingLimitPercent(i)/100.0 )\\n\\nThe value of this field can be more than 100, implying that this priority level can borrow a number of seats that is greater than its own nominal concurrency limit (NominalCL). When this field is left `nil`, the limit is effectively infinite.\",\n}\n\nfunc (LimitedPriorityLevelConfiguration) SwaggerDoc() map[string]string {\n\treturn map_LimitedPriorityLevelConfiguration\n}\n\nvar map_NonResourcePolicyRule = map[string]string{\n\t\"\":                \"NonResourcePolicyRule is a predicate that matches non-resource requests according to their verb and the target non-resource URL. A NonResourcePolicyRule matches a request if and only if both (a) at least one member of verbs matches the request and (b) at least one member of nonResourceURLs matches the request.\",\n\t\"verbs\":           \"`verbs` is a list of matching verbs and may not be empty. \\\"*\\\" matches all verbs. If it is present, it must be the only entry. Required.\",\n\t\"nonResourceURLs\": \"`nonResourceURLs` is a set of url prefixes that a user should have access to and may not be empty. For example:\\n  - \\\"/healthz\\\" is legal\\n  - \\\"/hea*\\\" is illegal\\n  - \\\"/hea\\\" is legal but matches nothing\\n  - \\\"/hea/*\\\" also matches nothing\\n  - \\\"/healthz/*\\\" matches all per-component health checks.\\n\\\"*\\\" matches all non-resource urls. if it is present, it must be the only entry. Required.\",\n}\n\nfunc (NonResourcePolicyRule) SwaggerDoc() map[string]string {\n\treturn map_NonResourcePolicyRule\n}\n\nvar map_PolicyRulesWithSubjects = map[string]string{\n\t\"\":                 \"PolicyRulesWithSubjects prescribes a test that applies to a request to an apiserver. The test considers the subject making the request, the verb being requested, and the resource to be acted upon. This PolicyRulesWithSubjects matches a request if and only if both (a) at least one member of subjects matches the request and (b) at least one member of resourceRules or nonResourceRules matches the request.\",\n\t\"subjects\":         \"subjects is the list of normal user, serviceaccount, or group that this rule cares about. There must be at least one member in this slice. A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request. Required.\",\n\t\"resourceRules\":    \"`resourceRules` is a slice of ResourcePolicyRules that identify matching requests according to their verb and the target resource. At least one of `resourceRules` and `nonResourceRules` has to be non-empty.\",\n\t\"nonResourceRules\": \"`nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests according to their verb and the target non-resource URL.\",\n}\n\nfunc (PolicyRulesWithSubjects) SwaggerDoc() map[string]string {\n\treturn map_PolicyRulesWithSubjects\n}\n\nvar map_PriorityLevelConfiguration = map[string]string{\n\t\"\":         \"PriorityLevelConfiguration represents the configuration of a priority level.\",\n\t\"metadata\": \"`metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"`spec` is the specification of the desired behavior of a \\\"request-priority\\\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"`status` is the current status of a \\\"request-priority\\\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (PriorityLevelConfiguration) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfiguration\n}\n\nvar map_PriorityLevelConfigurationCondition = map[string]string{\n\t\"\":                   \"PriorityLevelConfigurationCondition defines the condition of priority level.\",\n\t\"type\":               \"`type` is the type of the condition. Required.\",\n\t\"status\":             \"`status` is the status of the condition. Can be True, False, Unknown. Required.\",\n\t\"lastTransitionTime\": \"`lastTransitionTime` is the last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"`reason` is a unique, one-word, CamelCase reason for the condition's last transition.\",\n\t\"message\":            \"`message` is a human-readable message indicating details about last transition.\",\n}\n\nfunc (PriorityLevelConfigurationCondition) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfigurationCondition\n}\n\nvar map_PriorityLevelConfigurationList = map[string]string{\n\t\"\":         \"PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects.\",\n\t\"metadata\": \"`metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"`items` is a list of request-priorities.\",\n}\n\nfunc (PriorityLevelConfigurationList) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfigurationList\n}\n\nvar map_PriorityLevelConfigurationReference = map[string]string{\n\t\"\":     \"PriorityLevelConfigurationReference contains information that points to the \\\"request-priority\\\" being used.\",\n\t\"name\": \"`name` is the name of the priority level configuration being referenced Required.\",\n}\n\nfunc (PriorityLevelConfigurationReference) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfigurationReference\n}\n\nvar map_PriorityLevelConfigurationSpec = map[string]string{\n\t\"\":        \"PriorityLevelConfigurationSpec specifies the configuration of a priority level.\",\n\t\"type\":    \"`type` indicates whether this priority level is subject to limitation on request execution.  A value of `\\\"Exempt\\\"` means that requests of this priority level are not subject to a limit (and thus are never queued) and do not detract from the capacity made available to other priority levels.  A value of `\\\"Limited\\\"` means that (a) requests of this priority level _are_ subject to limits and (b) some of the server's limited capacity is made available exclusively to this priority level. Required.\",\n\t\"limited\": \"`limited` specifies how requests are handled for a Limited priority level. This field must be non-empty if and only if `type` is `\\\"Limited\\\"`.\",\n\t\"exempt\":  \"`exempt` specifies how requests are handled for an exempt priority level. This field MUST be empty if `type` is `\\\"Limited\\\"`. This field MAY be non-empty if `type` is `\\\"Exempt\\\"`. If empty and `type` is `\\\"Exempt\\\"` then the default values for `ExemptPriorityLevelConfiguration` apply.\",\n}\n\nfunc (PriorityLevelConfigurationSpec) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfigurationSpec\n}\n\nvar map_PriorityLevelConfigurationStatus = map[string]string{\n\t\"\":           \"PriorityLevelConfigurationStatus represents the current state of a \\\"request-priority\\\".\",\n\t\"conditions\": \"`conditions` is the current state of \\\"request-priority\\\".\",\n}\n\nfunc (PriorityLevelConfigurationStatus) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfigurationStatus\n}\n\nvar map_QueuingConfiguration = map[string]string{\n\t\"\":                 \"QueuingConfiguration holds the configuration parameters for queuing\",\n\t\"queues\":           \"`queues` is the number of queues for this priority level. The queues exist independently at each apiserver. The value must be positive.  Setting it to 1 effectively precludes shufflesharding and thus makes the distinguisher method of associated flow schemas irrelevant.  This field has a default value of 64.\",\n\t\"handSize\":         \"`handSize` is a small positive number that configures the shuffle sharding of requests into queues.  When enqueuing a request at this priority level the request's flow identifier (a string pair) is hashed and the hash value is used to shuffle the list of queues and deal a hand of the size specified here.  The request is put into one of the shortest queues in that hand. `handSize` must be no larger than `queues`, and should be significantly smaller (so that a few heavy flows do not saturate most of the queues).  See the user-facing documentation for more extensive guidance on setting this field.  This field has a default value of 8.\",\n\t\"queueLengthLimit\": \"`queueLengthLimit` is the maximum number of requests allowed to be waiting in a given queue of this priority level at a time; excess requests are rejected.  This value must be positive.  If not specified, it will be defaulted to 50.\",\n}\n\nfunc (QueuingConfiguration) SwaggerDoc() map[string]string {\n\treturn map_QueuingConfiguration\n}\n\nvar map_ResourcePolicyRule = map[string]string{\n\t\"\":             \"ResourcePolicyRule is a predicate that matches some resource requests, testing the request's verb and the target resource. A ResourcePolicyRule matches a resource request if and only if: (a) at least one member of verbs matches the request, (b) at least one member of apiGroups matches the request, (c) at least one member of resources matches the request, and (d) either (d1) the request does not specify a namespace (i.e., `Namespace==\\\"\\\"`) and clusterScope is true or (d2) the request specifies a namespace and least one member of namespaces matches the request's namespace.\",\n\t\"verbs\":        \"`verbs` is a list of matching verbs and may not be empty. \\\"*\\\" matches all verbs and, if present, must be the only entry. Required.\",\n\t\"apiGroups\":    \"`apiGroups` is a list of matching API groups and may not be empty. \\\"*\\\" matches all API groups and, if present, must be the only entry. Required.\",\n\t\"resources\":    \"`resources` is a list of matching resources (i.e., lowercase and plural) with, if desired, subresource.  For example, [ \\\"services\\\", \\\"nodes/status\\\" ].  This list may not be empty. \\\"*\\\" matches all resources and, if present, must be the only entry. Required.\",\n\t\"clusterScope\": \"`clusterScope` indicates whether to match requests that do not specify a namespace (which happens either because the resource is not namespaced or the request targets all namespaces). If this field is omitted or false then the `namespaces` field must contain a non-empty list.\",\n\t\"namespaces\":   \"`namespaces` is a list of target namespaces that restricts matches.  A request that specifies a target namespace matches only if either (a) this list contains that target namespace or (b) this list contains \\\"*\\\".  Note that \\\"*\\\" matches any specified namespace but does not match a request that _does not specify_ a namespace (see the `clusterScope` field for that). This list may be empty, but only if `clusterScope` is true.\",\n}\n\nfunc (ResourcePolicyRule) SwaggerDoc() map[string]string {\n\treturn map_ResourcePolicyRule\n}\n\nvar map_ServiceAccountSubject = map[string]string{\n\t\"\":          \"ServiceAccountSubject holds detailed information for service-account-kind subject.\",\n\t\"namespace\": \"`namespace` is the namespace of matching ServiceAccount objects. Required.\",\n\t\"name\":      \"`name` is the name of matching ServiceAccount objects, or \\\"*\\\" to match regardless of name. Required.\",\n}\n\nfunc (ServiceAccountSubject) SwaggerDoc() map[string]string {\n\treturn map_ServiceAccountSubject\n}\n\nvar map_Subject = map[string]string{\n\t\"\":               \"Subject matches the originator of a request, as identified by the request authentication system. There are three ways of matching an originator; by user, group, or service account.\",\n\t\"kind\":           \"`kind` indicates which one of the other fields is non-empty. Required\",\n\t\"user\":           \"`user` matches based on username.\",\n\t\"group\":          \"`group` matches based on user group name.\",\n\t\"serviceAccount\": \"`serviceAccount` matches ServiceAccounts.\",\n}\n\nfunc (Subject) SwaggerDoc() map[string]string {\n\treturn map_Subject\n}\n\nvar map_UserSubject = map[string]string{\n\t\"\":     \"UserSubject holds detailed information for user-kind subject.\",\n\t\"name\": \"`name` is the username that matches, or \\\"*\\\" to match all usernames. Required.\",\n}\n\nfunc (UserSubject) SwaggerDoc() map[string]string {\n\treturn map_UserSubject\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta2/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExemptPriorityLevelConfiguration) DeepCopyInto(out *ExemptPriorityLevelConfiguration) {\n\t*out = *in\n\tif in.NominalConcurrencyShares != nil {\n\t\tin, out := &in.NominalConcurrencyShares, &out.NominalConcurrencyShares\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.LendablePercent != nil {\n\t\tin, out := &in.LendablePercent, &out.LendablePercent\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExemptPriorityLevelConfiguration.\nfunc (in *ExemptPriorityLevelConfiguration) DeepCopy() *ExemptPriorityLevelConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExemptPriorityLevelConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowDistinguisherMethod) DeepCopyInto(out *FlowDistinguisherMethod) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowDistinguisherMethod.\nfunc (in *FlowDistinguisherMethod) DeepCopy() *FlowDistinguisherMethod {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowDistinguisherMethod)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowSchema) DeepCopyInto(out *FlowSchema) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowSchema.\nfunc (in *FlowSchema) DeepCopy() *FlowSchema {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowSchema)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *FlowSchema) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowSchemaCondition) DeepCopyInto(out *FlowSchemaCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowSchemaCondition.\nfunc (in *FlowSchemaCondition) DeepCopy() *FlowSchemaCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowSchemaCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowSchemaList) DeepCopyInto(out *FlowSchemaList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]FlowSchema, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowSchemaList.\nfunc (in *FlowSchemaList) DeepCopy() *FlowSchemaList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowSchemaList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *FlowSchemaList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowSchemaSpec) DeepCopyInto(out *FlowSchemaSpec) {\n\t*out = *in\n\tout.PriorityLevelConfiguration = in.PriorityLevelConfiguration\n\tif in.DistinguisherMethod != nil {\n\t\tin, out := &in.DistinguisherMethod, &out.DistinguisherMethod\n\t\t*out = new(FlowDistinguisherMethod)\n\t\t**out = **in\n\t}\n\tif in.Rules != nil {\n\t\tin, out := &in.Rules, &out.Rules\n\t\t*out = make([]PolicyRulesWithSubjects, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowSchemaSpec.\nfunc (in *FlowSchemaSpec) DeepCopy() *FlowSchemaSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowSchemaSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowSchemaStatus) DeepCopyInto(out *FlowSchemaStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]FlowSchemaCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowSchemaStatus.\nfunc (in *FlowSchemaStatus) DeepCopy() *FlowSchemaStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowSchemaStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *GroupSubject) DeepCopyInto(out *GroupSubject) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupSubject.\nfunc (in *GroupSubject) DeepCopy() *GroupSubject {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(GroupSubject)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LimitResponse) DeepCopyInto(out *LimitResponse) {\n\t*out = *in\n\tif in.Queuing != nil {\n\t\tin, out := &in.Queuing, &out.Queuing\n\t\t*out = new(QueuingConfiguration)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LimitResponse.\nfunc (in *LimitResponse) DeepCopy() *LimitResponse {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LimitResponse)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LimitedPriorityLevelConfiguration) DeepCopyInto(out *LimitedPriorityLevelConfiguration) {\n\t*out = *in\n\tin.LimitResponse.DeepCopyInto(&out.LimitResponse)\n\tif in.LendablePercent != nil {\n\t\tin, out := &in.LendablePercent, &out.LendablePercent\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.BorrowingLimitPercent != nil {\n\t\tin, out := &in.BorrowingLimitPercent, &out.BorrowingLimitPercent\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LimitedPriorityLevelConfiguration.\nfunc (in *LimitedPriorityLevelConfiguration) DeepCopy() *LimitedPriorityLevelConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LimitedPriorityLevelConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NonResourcePolicyRule) DeepCopyInto(out *NonResourcePolicyRule) {\n\t*out = *in\n\tif in.Verbs != nil {\n\t\tin, out := &in.Verbs, &out.Verbs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.NonResourceURLs != nil {\n\t\tin, out := &in.NonResourceURLs, &out.NonResourceURLs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NonResourcePolicyRule.\nfunc (in *NonResourcePolicyRule) DeepCopy() *NonResourcePolicyRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NonResourcePolicyRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PolicyRulesWithSubjects) DeepCopyInto(out *PolicyRulesWithSubjects) {\n\t*out = *in\n\tif in.Subjects != nil {\n\t\tin, out := &in.Subjects, &out.Subjects\n\t\t*out = make([]Subject, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.ResourceRules != nil {\n\t\tin, out := &in.ResourceRules, &out.ResourceRules\n\t\t*out = make([]ResourcePolicyRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.NonResourceRules != nil {\n\t\tin, out := &in.NonResourceRules, &out.NonResourceRules\n\t\t*out = make([]NonResourcePolicyRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyRulesWithSubjects.\nfunc (in *PolicyRulesWithSubjects) DeepCopy() *PolicyRulesWithSubjects {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PolicyRulesWithSubjects)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfiguration) DeepCopyInto(out *PriorityLevelConfiguration) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfiguration.\nfunc (in *PriorityLevelConfiguration) DeepCopy() *PriorityLevelConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PriorityLevelConfiguration) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfigurationCondition) DeepCopyInto(out *PriorityLevelConfigurationCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfigurationCondition.\nfunc (in *PriorityLevelConfigurationCondition) DeepCopy() *PriorityLevelConfigurationCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfigurationCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfigurationList) DeepCopyInto(out *PriorityLevelConfigurationList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]PriorityLevelConfiguration, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfigurationList.\nfunc (in *PriorityLevelConfigurationList) DeepCopy() *PriorityLevelConfigurationList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfigurationList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PriorityLevelConfigurationList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfigurationReference) DeepCopyInto(out *PriorityLevelConfigurationReference) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfigurationReference.\nfunc (in *PriorityLevelConfigurationReference) DeepCopy() *PriorityLevelConfigurationReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfigurationReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfigurationSpec) DeepCopyInto(out *PriorityLevelConfigurationSpec) {\n\t*out = *in\n\tif in.Limited != nil {\n\t\tin, out := &in.Limited, &out.Limited\n\t\t*out = new(LimitedPriorityLevelConfiguration)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Exempt != nil {\n\t\tin, out := &in.Exempt, &out.Exempt\n\t\t*out = new(ExemptPriorityLevelConfiguration)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfigurationSpec.\nfunc (in *PriorityLevelConfigurationSpec) DeepCopy() *PriorityLevelConfigurationSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfigurationSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfigurationStatus) DeepCopyInto(out *PriorityLevelConfigurationStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]PriorityLevelConfigurationCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfigurationStatus.\nfunc (in *PriorityLevelConfigurationStatus) DeepCopy() *PriorityLevelConfigurationStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfigurationStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *QueuingConfiguration) DeepCopyInto(out *QueuingConfiguration) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new QueuingConfiguration.\nfunc (in *QueuingConfiguration) DeepCopy() *QueuingConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(QueuingConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourcePolicyRule) DeepCopyInto(out *ResourcePolicyRule) {\n\t*out = *in\n\tif in.Verbs != nil {\n\t\tin, out := &in.Verbs, &out.Verbs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.APIGroups != nil {\n\t\tin, out := &in.APIGroups, &out.APIGroups\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Resources != nil {\n\t\tin, out := &in.Resources, &out.Resources\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Namespaces != nil {\n\t\tin, out := &in.Namespaces, &out.Namespaces\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourcePolicyRule.\nfunc (in *ResourcePolicyRule) DeepCopy() *ResourcePolicyRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourcePolicyRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ServiceAccountSubject) DeepCopyInto(out *ServiceAccountSubject) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceAccountSubject.\nfunc (in *ServiceAccountSubject) DeepCopy() *ServiceAccountSubject {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ServiceAccountSubject)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Subject) DeepCopyInto(out *Subject) {\n\t*out = *in\n\tif in.User != nil {\n\t\tin, out := &in.User, &out.User\n\t\t*out = new(UserSubject)\n\t\t**out = **in\n\t}\n\tif in.Group != nil {\n\t\tin, out := &in.Group, &out.Group\n\t\t*out = new(GroupSubject)\n\t\t**out = **in\n\t}\n\tif in.ServiceAccount != nil {\n\t\tin, out := &in.ServiceAccount, &out.ServiceAccount\n\t\t*out = new(ServiceAccountSubject)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Subject.\nfunc (in *Subject) DeepCopy() *Subject {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Subject)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *UserSubject) DeepCopyInto(out *UserSubject) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserSubject.\nfunc (in *UserSubject) DeepCopy() *UserSubject {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(UserSubject)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta2/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *FlowSchema) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 23\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *FlowSchema) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 26\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *FlowSchema) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"flowcontrol.apiserver.k8s.io\", Version: \"v1beta3\", Kind: \"FlowSchema\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *FlowSchema) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 29\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *FlowSchemaList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 23\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *FlowSchemaList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 26\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *FlowSchemaList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"flowcontrol.apiserver.k8s.io\", Version: \"v1beta3\", Kind: \"FlowSchemaList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *FlowSchemaList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 29\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *PriorityLevelConfiguration) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 23\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *PriorityLevelConfiguration) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 26\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *PriorityLevelConfiguration) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"flowcontrol.apiserver.k8s.io\", Version: \"v1beta3\", Kind: \"PriorityLevelConfiguration\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *PriorityLevelConfiguration) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 29\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *PriorityLevelConfigurationList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 23\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *PriorityLevelConfigurationList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 26\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *PriorityLevelConfigurationList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"flowcontrol.apiserver.k8s.io\", Version: \"v1beta3\", Kind: \"PriorityLevelConfigurationList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *PriorityLevelConfigurationList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 29\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta3/doc.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\n// +groupName=flowcontrol.apiserver.k8s.io\n\n// Package v1beta3 holds api types of version v1beta3 for group \"flowcontrol.apiserver.k8s.io\".\npackage v1beta3 // import \"k8s.io/api/flowcontrol/v1beta3\"\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta3/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/flowcontrol/v1beta3/generated.proto\n\npackage v1beta3\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *ExemptPriorityLevelConfiguration) Reset()      { *m = ExemptPriorityLevelConfiguration{} }\nfunc (*ExemptPriorityLevelConfiguration) ProtoMessage() {}\nfunc (*ExemptPriorityLevelConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_52ab6629c083d251, []int{0}\n}\nfunc (m *ExemptPriorityLevelConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ExemptPriorityLevelConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ExemptPriorityLevelConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ExemptPriorityLevelConfiguration.Merge(m, src)\n}\nfunc (m *ExemptPriorityLevelConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ExemptPriorityLevelConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_ExemptPriorityLevelConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ExemptPriorityLevelConfiguration proto.InternalMessageInfo\n\nfunc (m *FlowDistinguisherMethod) Reset()      { *m = FlowDistinguisherMethod{} }\nfunc (*FlowDistinguisherMethod) ProtoMessage() {}\nfunc (*FlowDistinguisherMethod) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_52ab6629c083d251, []int{1}\n}\nfunc (m *FlowDistinguisherMethod) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowDistinguisherMethod) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowDistinguisherMethod) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowDistinguisherMethod.Merge(m, src)\n}\nfunc (m *FlowDistinguisherMethod) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowDistinguisherMethod) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowDistinguisherMethod.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowDistinguisherMethod proto.InternalMessageInfo\n\nfunc (m *FlowSchema) Reset()      { *m = FlowSchema{} }\nfunc (*FlowSchema) ProtoMessage() {}\nfunc (*FlowSchema) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_52ab6629c083d251, []int{2}\n}\nfunc (m *FlowSchema) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowSchema) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowSchema) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowSchema.Merge(m, src)\n}\nfunc (m *FlowSchema) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowSchema) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowSchema.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowSchema proto.InternalMessageInfo\n\nfunc (m *FlowSchemaCondition) Reset()      { *m = FlowSchemaCondition{} }\nfunc (*FlowSchemaCondition) ProtoMessage() {}\nfunc (*FlowSchemaCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_52ab6629c083d251, []int{3}\n}\nfunc (m *FlowSchemaCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowSchemaCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowSchemaCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowSchemaCondition.Merge(m, src)\n}\nfunc (m *FlowSchemaCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowSchemaCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowSchemaCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowSchemaCondition proto.InternalMessageInfo\n\nfunc (m *FlowSchemaList) Reset()      { *m = FlowSchemaList{} }\nfunc (*FlowSchemaList) ProtoMessage() {}\nfunc (*FlowSchemaList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_52ab6629c083d251, []int{4}\n}\nfunc (m *FlowSchemaList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowSchemaList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowSchemaList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowSchemaList.Merge(m, src)\n}\nfunc (m *FlowSchemaList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowSchemaList) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowSchemaList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowSchemaList proto.InternalMessageInfo\n\nfunc (m *FlowSchemaSpec) Reset()      { *m = FlowSchemaSpec{} }\nfunc (*FlowSchemaSpec) ProtoMessage() {}\nfunc (*FlowSchemaSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_52ab6629c083d251, []int{5}\n}\nfunc (m *FlowSchemaSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowSchemaSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowSchemaSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowSchemaSpec.Merge(m, src)\n}\nfunc (m *FlowSchemaSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowSchemaSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowSchemaSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowSchemaSpec proto.InternalMessageInfo\n\nfunc (m *FlowSchemaStatus) Reset()      { *m = FlowSchemaStatus{} }\nfunc (*FlowSchemaStatus) ProtoMessage() {}\nfunc (*FlowSchemaStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_52ab6629c083d251, []int{6}\n}\nfunc (m *FlowSchemaStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FlowSchemaStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FlowSchemaStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FlowSchemaStatus.Merge(m, src)\n}\nfunc (m *FlowSchemaStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FlowSchemaStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_FlowSchemaStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FlowSchemaStatus proto.InternalMessageInfo\n\nfunc (m *GroupSubject) Reset()      { *m = GroupSubject{} }\nfunc (*GroupSubject) ProtoMessage() {}\nfunc (*GroupSubject) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_52ab6629c083d251, []int{7}\n}\nfunc (m *GroupSubject) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *GroupSubject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *GroupSubject) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_GroupSubject.Merge(m, src)\n}\nfunc (m *GroupSubject) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *GroupSubject) XXX_DiscardUnknown() {\n\txxx_messageInfo_GroupSubject.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_GroupSubject proto.InternalMessageInfo\n\nfunc (m *LimitResponse) Reset()      { *m = LimitResponse{} }\nfunc (*LimitResponse) ProtoMessage() {}\nfunc (*LimitResponse) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_52ab6629c083d251, []int{8}\n}\nfunc (m *LimitResponse) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LimitResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LimitResponse) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LimitResponse.Merge(m, src)\n}\nfunc (m *LimitResponse) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LimitResponse) XXX_DiscardUnknown() {\n\txxx_messageInfo_LimitResponse.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LimitResponse proto.InternalMessageInfo\n\nfunc (m *LimitedPriorityLevelConfiguration) Reset()      { *m = LimitedPriorityLevelConfiguration{} }\nfunc (*LimitedPriorityLevelConfiguration) ProtoMessage() {}\nfunc (*LimitedPriorityLevelConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_52ab6629c083d251, []int{9}\n}\nfunc (m *LimitedPriorityLevelConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LimitedPriorityLevelConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LimitedPriorityLevelConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LimitedPriorityLevelConfiguration.Merge(m, src)\n}\nfunc (m *LimitedPriorityLevelConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LimitedPriorityLevelConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_LimitedPriorityLevelConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LimitedPriorityLevelConfiguration proto.InternalMessageInfo\n\nfunc (m *NonResourcePolicyRule) Reset()      { *m = NonResourcePolicyRule{} }\nfunc (*NonResourcePolicyRule) ProtoMessage() {}\nfunc (*NonResourcePolicyRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_52ab6629c083d251, []int{10}\n}\nfunc (m *NonResourcePolicyRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NonResourcePolicyRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NonResourcePolicyRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NonResourcePolicyRule.Merge(m, src)\n}\nfunc (m *NonResourcePolicyRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NonResourcePolicyRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_NonResourcePolicyRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NonResourcePolicyRule proto.InternalMessageInfo\n\nfunc (m *PolicyRulesWithSubjects) Reset()      { *m = PolicyRulesWithSubjects{} }\nfunc (*PolicyRulesWithSubjects) ProtoMessage() {}\nfunc (*PolicyRulesWithSubjects) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_52ab6629c083d251, []int{11}\n}\nfunc (m *PolicyRulesWithSubjects) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PolicyRulesWithSubjects) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PolicyRulesWithSubjects) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PolicyRulesWithSubjects.Merge(m, src)\n}\nfunc (m *PolicyRulesWithSubjects) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PolicyRulesWithSubjects) XXX_DiscardUnknown() {\n\txxx_messageInfo_PolicyRulesWithSubjects.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PolicyRulesWithSubjects proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfiguration) Reset()      { *m = PriorityLevelConfiguration{} }\nfunc (*PriorityLevelConfiguration) ProtoMessage() {}\nfunc (*PriorityLevelConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_52ab6629c083d251, []int{12}\n}\nfunc (m *PriorityLevelConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfiguration.Merge(m, src)\n}\nfunc (m *PriorityLevelConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfiguration proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfigurationCondition) Reset()      { *m = PriorityLevelConfigurationCondition{} }\nfunc (*PriorityLevelConfigurationCondition) ProtoMessage() {}\nfunc (*PriorityLevelConfigurationCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_52ab6629c083d251, []int{13}\n}\nfunc (m *PriorityLevelConfigurationCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfigurationCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfigurationCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfigurationCondition.Merge(m, src)\n}\nfunc (m *PriorityLevelConfigurationCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfigurationCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfigurationCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfigurationCondition proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfigurationList) Reset()      { *m = PriorityLevelConfigurationList{} }\nfunc (*PriorityLevelConfigurationList) ProtoMessage() {}\nfunc (*PriorityLevelConfigurationList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_52ab6629c083d251, []int{14}\n}\nfunc (m *PriorityLevelConfigurationList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfigurationList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfigurationList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfigurationList.Merge(m, src)\n}\nfunc (m *PriorityLevelConfigurationList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfigurationList) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfigurationList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfigurationList proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfigurationReference) Reset()      { *m = PriorityLevelConfigurationReference{} }\nfunc (*PriorityLevelConfigurationReference) ProtoMessage() {}\nfunc (*PriorityLevelConfigurationReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_52ab6629c083d251, []int{15}\n}\nfunc (m *PriorityLevelConfigurationReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfigurationReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfigurationReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfigurationReference.Merge(m, src)\n}\nfunc (m *PriorityLevelConfigurationReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfigurationReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfigurationReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfigurationReference proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfigurationSpec) Reset()      { *m = PriorityLevelConfigurationSpec{} }\nfunc (*PriorityLevelConfigurationSpec) ProtoMessage() {}\nfunc (*PriorityLevelConfigurationSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_52ab6629c083d251, []int{16}\n}\nfunc (m *PriorityLevelConfigurationSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfigurationSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfigurationSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfigurationSpec.Merge(m, src)\n}\nfunc (m *PriorityLevelConfigurationSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfigurationSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfigurationSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfigurationSpec proto.InternalMessageInfo\n\nfunc (m *PriorityLevelConfigurationStatus) Reset()      { *m = PriorityLevelConfigurationStatus{} }\nfunc (*PriorityLevelConfigurationStatus) ProtoMessage() {}\nfunc (*PriorityLevelConfigurationStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_52ab6629c083d251, []int{17}\n}\nfunc (m *PriorityLevelConfigurationStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityLevelConfigurationStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityLevelConfigurationStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityLevelConfigurationStatus.Merge(m, src)\n}\nfunc (m *PriorityLevelConfigurationStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityLevelConfigurationStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityLevelConfigurationStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityLevelConfigurationStatus proto.InternalMessageInfo\n\nfunc (m *QueuingConfiguration) Reset()      { *m = QueuingConfiguration{} }\nfunc (*QueuingConfiguration) ProtoMessage() {}\nfunc (*QueuingConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_52ab6629c083d251, []int{18}\n}\nfunc (m *QueuingConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *QueuingConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *QueuingConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_QueuingConfiguration.Merge(m, src)\n}\nfunc (m *QueuingConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *QueuingConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_QueuingConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_QueuingConfiguration proto.InternalMessageInfo\n\nfunc (m *ResourcePolicyRule) Reset()      { *m = ResourcePolicyRule{} }\nfunc (*ResourcePolicyRule) ProtoMessage() {}\nfunc (*ResourcePolicyRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_52ab6629c083d251, []int{19}\n}\nfunc (m *ResourcePolicyRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourcePolicyRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourcePolicyRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourcePolicyRule.Merge(m, src)\n}\nfunc (m *ResourcePolicyRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourcePolicyRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourcePolicyRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourcePolicyRule proto.InternalMessageInfo\n\nfunc (m *ServiceAccountSubject) Reset()      { *m = ServiceAccountSubject{} }\nfunc (*ServiceAccountSubject) ProtoMessage() {}\nfunc (*ServiceAccountSubject) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_52ab6629c083d251, []int{20}\n}\nfunc (m *ServiceAccountSubject) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ServiceAccountSubject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ServiceAccountSubject) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServiceAccountSubject.Merge(m, src)\n}\nfunc (m *ServiceAccountSubject) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ServiceAccountSubject) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServiceAccountSubject.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServiceAccountSubject proto.InternalMessageInfo\n\nfunc (m *Subject) Reset()      { *m = Subject{} }\nfunc (*Subject) ProtoMessage() {}\nfunc (*Subject) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_52ab6629c083d251, []int{21}\n}\nfunc (m *Subject) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Subject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Subject) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Subject.Merge(m, src)\n}\nfunc (m *Subject) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Subject) XXX_DiscardUnknown() {\n\txxx_messageInfo_Subject.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Subject proto.InternalMessageInfo\n\nfunc (m *UserSubject) Reset()      { *m = UserSubject{} }\nfunc (*UserSubject) ProtoMessage() {}\nfunc (*UserSubject) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_52ab6629c083d251, []int{22}\n}\nfunc (m *UserSubject) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *UserSubject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *UserSubject) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_UserSubject.Merge(m, src)\n}\nfunc (m *UserSubject) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *UserSubject) XXX_DiscardUnknown() {\n\txxx_messageInfo_UserSubject.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_UserSubject proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*ExemptPriorityLevelConfiguration)(nil), \"k8s.io.api.flowcontrol.v1beta3.ExemptPriorityLevelConfiguration\")\n\tproto.RegisterType((*FlowDistinguisherMethod)(nil), \"k8s.io.api.flowcontrol.v1beta3.FlowDistinguisherMethod\")\n\tproto.RegisterType((*FlowSchema)(nil), \"k8s.io.api.flowcontrol.v1beta3.FlowSchema\")\n\tproto.RegisterType((*FlowSchemaCondition)(nil), \"k8s.io.api.flowcontrol.v1beta3.FlowSchemaCondition\")\n\tproto.RegisterType((*FlowSchemaList)(nil), \"k8s.io.api.flowcontrol.v1beta3.FlowSchemaList\")\n\tproto.RegisterType((*FlowSchemaSpec)(nil), \"k8s.io.api.flowcontrol.v1beta3.FlowSchemaSpec\")\n\tproto.RegisterType((*FlowSchemaStatus)(nil), \"k8s.io.api.flowcontrol.v1beta3.FlowSchemaStatus\")\n\tproto.RegisterType((*GroupSubject)(nil), \"k8s.io.api.flowcontrol.v1beta3.GroupSubject\")\n\tproto.RegisterType((*LimitResponse)(nil), \"k8s.io.api.flowcontrol.v1beta3.LimitResponse\")\n\tproto.RegisterType((*LimitedPriorityLevelConfiguration)(nil), \"k8s.io.api.flowcontrol.v1beta3.LimitedPriorityLevelConfiguration\")\n\tproto.RegisterType((*NonResourcePolicyRule)(nil), \"k8s.io.api.flowcontrol.v1beta3.NonResourcePolicyRule\")\n\tproto.RegisterType((*PolicyRulesWithSubjects)(nil), \"k8s.io.api.flowcontrol.v1beta3.PolicyRulesWithSubjects\")\n\tproto.RegisterType((*PriorityLevelConfiguration)(nil), \"k8s.io.api.flowcontrol.v1beta3.PriorityLevelConfiguration\")\n\tproto.RegisterType((*PriorityLevelConfigurationCondition)(nil), \"k8s.io.api.flowcontrol.v1beta3.PriorityLevelConfigurationCondition\")\n\tproto.RegisterType((*PriorityLevelConfigurationList)(nil), \"k8s.io.api.flowcontrol.v1beta3.PriorityLevelConfigurationList\")\n\tproto.RegisterType((*PriorityLevelConfigurationReference)(nil), \"k8s.io.api.flowcontrol.v1beta3.PriorityLevelConfigurationReference\")\n\tproto.RegisterType((*PriorityLevelConfigurationSpec)(nil), \"k8s.io.api.flowcontrol.v1beta3.PriorityLevelConfigurationSpec\")\n\tproto.RegisterType((*PriorityLevelConfigurationStatus)(nil), \"k8s.io.api.flowcontrol.v1beta3.PriorityLevelConfigurationStatus\")\n\tproto.RegisterType((*QueuingConfiguration)(nil), \"k8s.io.api.flowcontrol.v1beta3.QueuingConfiguration\")\n\tproto.RegisterType((*ResourcePolicyRule)(nil), \"k8s.io.api.flowcontrol.v1beta3.ResourcePolicyRule\")\n\tproto.RegisterType((*ServiceAccountSubject)(nil), \"k8s.io.api.flowcontrol.v1beta3.ServiceAccountSubject\")\n\tproto.RegisterType((*Subject)(nil), \"k8s.io.api.flowcontrol.v1beta3.Subject\")\n\tproto.RegisterType((*UserSubject)(nil), \"k8s.io.api.flowcontrol.v1beta3.UserSubject\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/flowcontrol/v1beta3/generated.proto\", fileDescriptor_52ab6629c083d251)\n}\n\nvar fileDescriptor_52ab6629c083d251 = []byte{\n\t// 1589 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x58, 0xcb, 0x6f, 0xdc, 0x54,\n\t0x17, 0x8f, 0x27, 0x33, 0x49, 0xe6, 0xe4, 0xd9, 0x9b, 0x46, 0x99, 0x2f, 0xfd, 0x34, 0x93, 0xfa,\n\t0x93, 0xbe, 0x02, 0x6d, 0x3d, 0x7d, 0xd2, 0x02, 0xe2, 0x51, 0xa7, 0xa5, 0x94, 0x26, 0x69, 0x7a,\n\t0xd3, 0x42, 0x55, 0x2a, 0x51, 0xc7, 0x73, 0xe3, 0x71, 0x33, 0x7e, 0xd4, 0xd7, 0x4e, 0x08, 0xdd,\n\t0x20, 0xfe, 0x02, 0xd6, 0xb0, 0x64, 0xc1, 0x8a, 0x0d, 0x5b, 0x16, 0x2c, 0xa9, 0x58, 0x75, 0xd9,\n\t0xd5, 0x40, 0x87, 0x15, 0xff, 0x01, 0x54, 0x42, 0x42, 0xf7, 0xfa, 0xda, 0x1e, 0xcf, 0xcb, 0xa3,\n\t0x54, 0xea, 0x8a, 0x5d, 0x7c, 0xee, 0x39, 0xbf, 0x73, 0xcf, 0xb9, 0xe7, 0xf1, 0x9b, 0x80, 0xb2,\n\t0x73, 0x91, 0x2a, 0xa6, 0x53, 0xd5, 0x5c, 0xb3, 0xba, 0xdd, 0x70, 0xf6, 0x74, 0xc7, 0xf6, 0x3d,\n\t0xa7, 0x51, 0xdd, 0x3d, 0xbd, 0x45, 0x7c, 0xed, 0x6c, 0xd5, 0x20, 0x36, 0xf1, 0x34, 0x9f, 0xd4,\n\t0x14, 0xd7, 0x73, 0x7c, 0x07, 0x95, 0x43, 0x7d, 0x45, 0x73, 0x4d, 0xa5, 0x4d, 0x5f, 0x11, 0xfa,\n\t0x4b, 0x27, 0x0d, 0xd3, 0xaf, 0x07, 0x5b, 0x8a, 0xee, 0x58, 0x55, 0xc3, 0x31, 0x9c, 0x2a, 0x37,\n\t0xdb, 0x0a, 0xb6, 0xf9, 0x17, 0xff, 0xe0, 0x7f, 0x85, 0x70, 0x4b, 0xe7, 0x12, 0xf7, 0x96, 0xa6,\n\t0xd7, 0x4d, 0x9b, 0x78, 0xfb, 0x55, 0x77, 0xc7, 0x60, 0x02, 0x5a, 0xb5, 0x88, 0xaf, 0x55, 0x77,\n\t0x4f, 0x77, 0x5e, 0x62, 0xa9, 0xda, 0xcf, 0xca, 0x0b, 0x6c, 0xdf, 0xb4, 0x48, 0x97, 0xc1, 0xeb,\n\t0x59, 0x06, 0x54, 0xaf, 0x13, 0x4b, 0xeb, 0xb4, 0x93, 0x7f, 0x94, 0x60, 0xf9, 0xca, 0x67, 0xc4,\n\t0x72, 0xfd, 0x0d, 0xcf, 0x74, 0x3c, 0xd3, 0xdf, 0x5f, 0x25, 0xbb, 0xa4, 0xb1, 0xe2, 0xd8, 0xdb,\n\t0xa6, 0x11, 0x78, 0x9a, 0x6f, 0x3a, 0x36, 0xba, 0x03, 0x25, 0xdb, 0xb1, 0x4c, 0x5b, 0x63, 0x72,\n\t0x3d, 0xf0, 0x3c, 0x62, 0xeb, 0xfb, 0x9b, 0x75, 0xcd, 0x23, 0xb4, 0x24, 0x2d, 0x4b, 0xaf, 0x14,\n\t0xd4, 0xff, 0xb6, 0x9a, 0x95, 0xd2, 0x7a, 0x1f, 0x1d, 0xdc, 0xd7, 0x1a, 0xbd, 0x0d, 0xb3, 0x0d,\n\t0x62, 0xd7, 0xb4, 0xad, 0x06, 0xd9, 0x20, 0x9e, 0x4e, 0x6c, 0xbf, 0x94, 0xe3, 0x80, 0xf3, 0xad,\n\t0x66, 0x65, 0x76, 0x35, 0x7d, 0x84, 0x3b, 0x75, 0xe5, 0xbb, 0xb0, 0xf8, 0x7e, 0xc3, 0xd9, 0xbb,\n\t0x6c, 0x52, 0xdf, 0xb4, 0x8d, 0xc0, 0xa4, 0x75, 0xe2, 0xad, 0x11, 0xbf, 0xee, 0xd4, 0xd0, 0xbb,\n\t0x90, 0xf7, 0xf7, 0x5d, 0xc2, 0xef, 0x57, 0x54, 0x8f, 0x3f, 0x6e, 0x56, 0x46, 0x5a, 0xcd, 0x4a,\n\t0xfe, 0xd6, 0xbe, 0x4b, 0x9e, 0x37, 0x2b, 0x47, 0xfa, 0x98, 0xb1, 0x63, 0xcc, 0x0d, 0xe5, 0xaf,\n\t0x73, 0x00, 0x4c, 0x6b, 0x93, 0x27, 0x0e, 0xdd, 0x87, 0x09, 0xf6, 0x58, 0x35, 0xcd, 0xd7, 0x38,\n\t0xe6, 0xe4, 0x99, 0x53, 0x4a, 0x52, 0x29, 0x71, 0xce, 0x15, 0x77, 0xc7, 0x60, 0x02, 0xaa, 0x30,\n\t0x6d, 0x65, 0xf7, 0xb4, 0x72, 0x63, 0xeb, 0x01, 0xd1, 0xfd, 0x35, 0xe2, 0x6b, 0x2a, 0x12, 0xb7,\n\t0x80, 0x44, 0x86, 0x63, 0x54, 0xb4, 0x01, 0x79, 0xea, 0x12, 0x9d, 0x27, 0x60, 0xf2, 0x8c, 0xa2,\n\t0x0c, 0xae, 0x43, 0x25, 0xb9, 0xdb, 0xa6, 0x4b, 0x74, 0x75, 0x2a, 0x8a, 0x90, 0x7d, 0x61, 0x8e,\n\t0x84, 0xee, 0xc0, 0x18, 0xf5, 0x35, 0x3f, 0xa0, 0xa5, 0xd1, 0xae, 0x1b, 0x67, 0x61, 0x72, 0x3b,\n\t0x75, 0x46, 0xa0, 0x8e, 0x85, 0xdf, 0x58, 0xe0, 0xc9, 0x4f, 0x73, 0x30, 0x9f, 0x28, 0xaf, 0x38,\n\t0x76, 0xcd, 0xe4, 0x95, 0xf2, 0x56, 0x2a, 0xeb, 0xc7, 0x3a, 0xb2, 0xbe, 0xd8, 0xc3, 0x24, 0xc9,\n\t0x38, 0x7a, 0x23, 0xbe, 0x6e, 0x8e, 0x9b, 0x1f, 0x4d, 0x3b, 0x7f, 0xde, 0xac, 0xcc, 0xc6, 0x66,\n\t0xe9, 0xfb, 0xa0, 0x5d, 0x40, 0x0d, 0x8d, 0xfa, 0xb7, 0x3c, 0xcd, 0xa6, 0x21, 0xac, 0x69, 0x11,\n\t0x11, 0xf5, 0x6b, 0xc3, 0xbd, 0x13, 0xb3, 0x50, 0x97, 0x84, 0x4b, 0xb4, 0xda, 0x85, 0x86, 0x7b,\n\t0x78, 0x40, 0xff, 0x87, 0x31, 0x8f, 0x68, 0xd4, 0xb1, 0x4b, 0x79, 0x7e, 0xe5, 0x38, 0x5f, 0x98,\n\t0x4b, 0xb1, 0x38, 0x45, 0xaf, 0xc2, 0xb8, 0x45, 0x28, 0xd5, 0x0c, 0x52, 0x2a, 0x70, 0xc5, 0x59,\n\t0xa1, 0x38, 0xbe, 0x16, 0x8a, 0x71, 0x74, 0x2e, 0xff, 0x24, 0xc1, 0x4c, 0x92, 0xa7, 0x55, 0x93,\n\t0xfa, 0xe8, 0x5e, 0x57, 0xed, 0x29, 0xc3, 0xc5, 0xc4, 0xac, 0x79, 0xe5, 0xcd, 0x09, 0x77, 0x13,\n\t0x91, 0xa4, 0xad, 0xee, 0x6e, 0x40, 0xc1, 0xf4, 0x89, 0xc5, 0xb2, 0x3e, 0xda, 0x91, 0xae, 0x8c,\n\t0x22, 0x51, 0xa7, 0x05, 0x6c, 0xe1, 0x1a, 0x03, 0xc0, 0x21, 0x8e, 0xfc, 0xc7, 0x68, 0x7b, 0x04,\n\t0xac, 0x1e, 0xd1, 0x77, 0x12, 0x2c, 0xb9, 0x7d, 0x07, 0x8c, 0x08, 0x6a, 0x25, 0xcb, 0x73, 0xff,\n\t0x11, 0x85, 0xc9, 0x36, 0x61, 0x73, 0x85, 0xa8, 0xb2, 0xb8, 0xd2, 0xd2, 0x00, 0xe5, 0x01, 0x57,\n\t0x41, 0x1f, 0x02, 0xb2, 0x34, 0x9f, 0x65, 0xd4, 0xd8, 0xf0, 0x88, 0x4e, 0x6a, 0x0c, 0x55, 0x0c,\n\t0xa5, 0xb8, 0x3a, 0xd6, 0xba, 0x34, 0x70, 0x0f, 0x2b, 0xf4, 0xa5, 0x04, 0xf3, 0xb5, 0xee, 0x21,\n\t0x23, 0xea, 0xf2, 0xc2, 0x30, 0x89, 0xee, 0x31, 0xa3, 0xd4, 0xc5, 0x56, 0xb3, 0x32, 0xdf, 0xe3,\n\t0x00, 0xf7, 0x72, 0x86, 0xee, 0x41, 0xc1, 0x0b, 0x1a, 0x84, 0x96, 0xf2, 0xfc, 0x79, 0x33, 0xbd,\n\t0x6e, 0x38, 0x0d, 0x53, 0xdf, 0xc7, 0xcc, 0xe4, 0x63, 0xd3, 0xaf, 0x6f, 0x06, 0x7c, 0x56, 0xd1,\n\t0xe4, 0xad, 0xf9, 0x11, 0x0e, 0x41, 0xe5, 0x47, 0x30, 0xd7, 0x39, 0x34, 0x90, 0x01, 0xa0, 0x47,\n\t0x7d, 0xca, 0x16, 0x04, 0x73, 0x7b, 0x76, 0xf8, 0xaa, 0x8a, 0x7b, 0x3c, 0x99, 0x97, 0xb1, 0x88,\n\t0xe2, 0x36, 0x68, 0xf9, 0x14, 0x4c, 0x5d, 0xf5, 0x9c, 0xc0, 0x15, 0x77, 0x44, 0xcb, 0x90, 0xb7,\n\t0x35, 0x2b, 0x9a, 0x3e, 0xf1, 0x44, 0x5c, 0xd7, 0x2c, 0x82, 0xf9, 0x89, 0xfc, 0xad, 0x04, 0xd3,\n\t0xab, 0xa6, 0x65, 0xfa, 0x98, 0x50, 0xd7, 0xb1, 0x29, 0x41, 0xe7, 0x53, 0x13, 0xeb, 0x68, 0xc7,\n\t0xc4, 0x3a, 0x94, 0x52, 0x6e, 0x9b, 0x55, 0x9f, 0xc0, 0xf8, 0xc3, 0x80, 0x04, 0xa6, 0x6d, 0x88,\n\t0x79, 0x7d, 0x2e, 0x2b, 0xc0, 0x9b, 0xa1, 0x7a, 0xaa, 0xda, 0xd4, 0x49, 0x36, 0x02, 0xc4, 0x09,\n\t0x8e, 0x10, 0xe5, 0xbf, 0x73, 0x70, 0x94, 0x3b, 0x26, 0xb5, 0x01, 0x5b, 0xf9, 0x5e, 0xe6, 0x56,\n\t0x5e, 0x16, 0xd1, 0x1c, 0x64, 0x33, 0x3f, 0x80, 0xe9, 0x46, 0x7b, 0xec, 0x22, 0xcc, 0x93, 0x59,\n\t0x61, 0xa6, 0x12, 0xa6, 0x2e, 0x88, 0x1b, 0xa4, 0x93, 0x8e, 0xd3, 0xd0, 0xbd, 0x58, 0xc0, 0xe8,\n\t0xf0, 0x2c, 0x00, 0xdd, 0x80, 0x85, 0x2d, 0xc7, 0xf3, 0x9c, 0x3d, 0xd3, 0x36, 0xb8, 0x9f, 0x08,\n\t0x24, 0xcf, 0x41, 0xfe, 0xd3, 0x6a, 0x56, 0x16, 0xd4, 0x5e, 0x0a, 0xb8, 0xb7, 0x9d, 0xbc, 0x07,\n\t0x0b, 0xeb, 0x6c, 0xa6, 0x50, 0x27, 0xf0, 0x74, 0x92, 0x34, 0x04, 0xaa, 0x40, 0x61, 0x97, 0x78,\n\t0x5b, 0x61, 0x51, 0x17, 0xd5, 0x22, 0x6b, 0x87, 0x8f, 0x98, 0x00, 0x87, 0x72, 0x16, 0x89, 0x9d,\n\t0x58, 0xde, 0xc6, 0xab, 0xb4, 0x34, 0xc6, 0x55, 0x79, 0x24, 0xeb, 0xe9, 0x23, 0xdc, 0xa9, 0x2b,\n\t0x37, 0x73, 0xb0, 0xd8, 0xa7, 0xff, 0xd0, 0x6d, 0x98, 0xa0, 0xe2, 0x6f, 0xd1, 0x53, 0xc7, 0xb2,\n\t0xde, 0x42, 0xd8, 0x26, 0xd3, 0x3f, 0x02, 0xc3, 0x31, 0x14, 0x72, 0x60, 0xda, 0x13, 0x57, 0xe0,\n\t0x3e, 0xc5, 0x16, 0x38, 0x93, 0x85, 0xdd, 0x9d, 0x9d, 0xe4, 0xb1, 0x71, 0x3b, 0x20, 0x4e, 0xe3,\n\t0xa3, 0x47, 0x30, 0xd7, 0x16, 0x76, 0xe8, 0x73, 0x94, 0xfb, 0x3c, 0x9f, 0xe5, 0xb3, 0xe7, 0xa3,\n\t0xa8, 0x25, 0xe1, 0x76, 0x6e, 0xbd, 0x03, 0x16, 0x77, 0x39, 0x92, 0x7f, 0xc9, 0xc1, 0x80, 0xc5,\n\t0xf0, 0x12, 0x48, 0xde, 0xfd, 0x14, 0xc9, 0x7b, 0xe7, 0xe0, 0x1b, 0xaf, 0x2f, 0xe9, 0xab, 0x77,\n\t0x90, 0xbe, 0xf7, 0x5e, 0xc0, 0xc7, 0x60, 0x12, 0xf8, 0x67, 0x0e, 0xfe, 0xd7, 0xdf, 0x38, 0x21,\n\t0x85, 0xd7, 0x53, 0x23, 0xf6, 0x42, 0xc7, 0x88, 0x3d, 0x36, 0x04, 0xc4, 0xbf, 0x24, 0xb1, 0x83,\n\t0x24, 0xfe, 0x2a, 0x41, 0xb9, 0x7f, 0xde, 0x5e, 0x02, 0x69, 0xfc, 0x34, 0x4d, 0x1a, 0xdf, 0x3c,\n\t0x78, 0x91, 0xf5, 0x21, 0x91, 0x57, 0x07, 0xd5, 0x56, 0x4c, 0xf7, 0x86, 0x58, 0xf9, 0xdf, 0xe7,\n\t0x06, 0xa5, 0x8a, 0xb3, 0xd3, 0x8c, 0x5f, 0x2d, 0x29, 0xeb, 0x2b, 0x36, 0x5b, 0x3d, 0x16, 0xdb,\n\t0x1e, 0x61, 0x41, 0xd6, 0x61, 0xbc, 0x11, 0xee, 0x6a, 0xd1, 0xd4, 0x97, 0x86, 0x5a, 0x91, 0x83,\n\t0x56, 0x7b, 0x48, 0x0b, 0x84, 0x1a, 0x8e, 0xe0, 0x51, 0x0d, 0xc6, 0x08, 0xff, 0xa9, 0x3e, 0x6c,\n\t0x67, 0x67, 0xfd, 0xb0, 0x57, 0x81, 0x55, 0x61, 0xa8, 0x85, 0x05, 0xb6, 0xfc, 0x8d, 0x04, 0xcb,\n\t0x59, 0x23, 0x01, 0xed, 0xf5, 0xa0, 0x78, 0x2f, 0x40, 0xdf, 0x87, 0xa7, 0x7c, 0x3f, 0x48, 0x70,\n\t0xb8, 0x17, 0x93, 0x62, 0x4d, 0xc6, 0xe8, 0x53, 0xcc, 0x7d, 0xe2, 0x26, 0xbb, 0xc9, 0xa5, 0x58,\n\t0x9c, 0xa2, 0x13, 0x30, 0x51, 0xd7, 0xec, 0xda, 0xa6, 0xf9, 0x79, 0xc4, 0xea, 0xe3, 0x32, 0xff,\n\t0x40, 0xc8, 0x71, 0xac, 0x81, 0x2e, 0xc3, 0x1c, 0xb7, 0x5b, 0x25, 0xb6, 0xe1, 0xd7, 0xf9, 0x8b,\n\t0x08, 0x6a, 0x12, 0x6f, 0x9d, 0x9b, 0x1d, 0xe7, 0xb8, 0xcb, 0x42, 0xfe, 0x4b, 0x02, 0x74, 0x10,\n\t0x36, 0x71, 0x1c, 0x8a, 0x9a, 0x6b, 0x72, 0x8a, 0x1b, 0x36, 0x5a, 0x51, 0x9d, 0x6e, 0x35, 0x2b,\n\t0xc5, 0x4b, 0x1b, 0xd7, 0x42, 0x21, 0x4e, 0xce, 0x99, 0x72, 0xb4, 0x68, 0xc3, 0x85, 0x2a, 0x94,\n\t0x23, 0xc7, 0x14, 0x27, 0xe7, 0xe8, 0x22, 0x4c, 0xe9, 0x8d, 0x80, 0xfa, 0xc4, 0xdb, 0xd4, 0x1d,\n\t0x97, 0xf0, 0xc1, 0x34, 0xa1, 0x1e, 0x16, 0x31, 0x4d, 0xad, 0xb4, 0x9d, 0xe1, 0x94, 0x26, 0x52,\n\t0x00, 0x58, 0x5b, 0x51, 0x57, 0x63, 0x7e, 0x0a, 0xdc, 0xcf, 0x0c, 0x7b, 0xb0, 0xf5, 0x58, 0x8a,\n\t0xdb, 0x34, 0xe4, 0x07, 0xb0, 0xb0, 0x49, 0xbc, 0x5d, 0x53, 0x27, 0x97, 0x74, 0xdd, 0x09, 0x6c,\n\t0x3f, 0x22, 0xeb, 0x55, 0x28, 0xc6, 0x6a, 0xa2, 0xf3, 0x0e, 0x09, 0xff, 0xc5, 0x18, 0x0b, 0x27,\n\t0x3a, 0x71, 0xab, 0xe7, 0xfa, 0xb6, 0xfa, 0xcf, 0x39, 0x18, 0x4f, 0xe0, 0xf3, 0x3b, 0xa6, 0x5d,\n\t0x13, 0xc8, 0x47, 0x22, 0xed, 0xeb, 0xa6, 0x5d, 0x7b, 0xde, 0xac, 0x4c, 0x0a, 0x35, 0xf6, 0x89,\n\t0xb9, 0x22, 0xba, 0x06, 0xf9, 0x80, 0x12, 0x4f, 0x34, 0xf1, 0xf1, 0xac, 0x62, 0xbe, 0x4d, 0x89,\n\t0x17, 0xf1, 0xab, 0x09, 0x86, 0xcc, 0x04, 0x98, 0x43, 0xa0, 0x35, 0x28, 0x18, 0xec, 0x51, 0x44,\n\t0x9f, 0x9e, 0xc8, 0xc2, 0x6a, 0xff, 0x11, 0x13, 0x96, 0x01, 0x97, 0xe0, 0x10, 0x05, 0x3d, 0x84,\n\t0x19, 0x9a, 0x4a, 0x21, 0x7f, 0xae, 0x21, 0xf8, 0x52, 0xcf, 0xc4, 0xab, 0xa8, 0xd5, 0xac, 0xcc,\n\t0xa4, 0x8f, 0x70, 0x87, 0x03, 0xb9, 0x0a, 0x93, 0x6d, 0x01, 0x66, 0x4f, 0x59, 0xf5, 0xf2, 0xe3,\n\t0x67, 0xe5, 0x91, 0x27, 0xcf, 0xca, 0x23, 0x4f, 0x9f, 0x95, 0x47, 0xbe, 0x68, 0x95, 0xa5, 0xc7,\n\t0xad, 0xb2, 0xf4, 0xa4, 0x55, 0x96, 0x9e, 0xb6, 0xca, 0xd2, 0x6f, 0xad, 0xb2, 0xf4, 0xd5, 0xef,\n\t0xe5, 0x91, 0xbb, 0xe5, 0xc1, 0xff, 0x8b, 0xfd, 0x27, 0x00, 0x00, 0xff, 0xff, 0x03, 0x5d, 0xec,\n\t0x01, 0xac, 0x15, 0x00, 0x00,\n}\n\nfunc (m *ExemptPriorityLevelConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ExemptPriorityLevelConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ExemptPriorityLevelConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.LendablePercent != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.LendablePercent))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif m.NominalConcurrencyShares != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.NominalConcurrencyShares))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowDistinguisherMethod) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowDistinguisherMethod) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowDistinguisherMethod) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowSchema) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowSchema) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowSchema) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowSchemaCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowSchemaCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowSchemaCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowSchemaList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowSchemaList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowSchemaList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowSchemaSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowSchemaSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowSchemaSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Rules) > 0 {\n\t\tfor iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Rules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif m.DistinguisherMethod != nil {\n\t\t{\n\t\t\tsize, err := m.DistinguisherMethod.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.MatchingPrecedence))\n\ti--\n\tdAtA[i] = 0x10\n\t{\n\t\tsize, err := m.PriorityLevelConfiguration.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FlowSchemaStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FlowSchemaStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FlowSchemaStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *GroupSubject) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GroupSubject) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *GroupSubject) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LimitResponse) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LimitResponse) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LimitResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Queuing != nil {\n\t\t{\n\t\t\tsize, err := m.Queuing.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LimitedPriorityLevelConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LimitedPriorityLevelConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LimitedPriorityLevelConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.BorrowingLimitPercent != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.BorrowingLimitPercent))\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif m.LendablePercent != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.LendablePercent))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\t{\n\t\tsize, err := m.LimitResponse.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.NominalConcurrencyShares))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NonResourcePolicyRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NonResourcePolicyRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NonResourcePolicyRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.NonResourceURLs) > 0 {\n\t\tfor iNdEx := len(m.NonResourceURLs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.NonResourceURLs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.NonResourceURLs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.NonResourceURLs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\tif len(m.Verbs) > 0 {\n\t\tfor iNdEx := len(m.Verbs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Verbs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Verbs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verbs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PolicyRulesWithSubjects) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PolicyRulesWithSubjects) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PolicyRulesWithSubjects) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.NonResourceRules) > 0 {\n\t\tfor iNdEx := len(m.NonResourceRules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.NonResourceRules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.ResourceRules) > 0 {\n\t\tfor iNdEx := len(m.ResourceRules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ResourceRules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Subjects) > 0 {\n\t\tfor iNdEx := len(m.Subjects) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Subjects[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfigurationCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfigurationCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfigurationCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfigurationList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfigurationList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfigurationList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfigurationReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfigurationReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfigurationReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfigurationSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfigurationSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfigurationSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Exempt != nil {\n\t\t{\n\t\t\tsize, err := m.Exempt.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Limited != nil {\n\t\t{\n\t\t\tsize, err := m.Limited.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityLevelConfigurationStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityLevelConfigurationStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityLevelConfigurationStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *QueuingConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *QueuingConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *QueuingConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.QueueLengthLimit))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.HandSize))\n\ti--\n\tdAtA[i] = 0x10\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Queues))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourcePolicyRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourcePolicyRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourcePolicyRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Namespaces) > 0 {\n\t\tfor iNdEx := len(m.Namespaces) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Namespaces[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Namespaces[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespaces[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\ti--\n\tif m.ClusterScope {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x20\n\tif len(m.Resources) > 0 {\n\t\tfor iNdEx := len(m.Resources) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Resources[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Resources[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Resources[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.APIGroups) > 0 {\n\t\tfor iNdEx := len(m.APIGroups) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.APIGroups[iNdEx])\n\t\t\tcopy(dAtA[i:], m.APIGroups[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIGroups[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Verbs) > 0 {\n\t\tfor iNdEx := len(m.Verbs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Verbs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Verbs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verbs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ServiceAccountSubject) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServiceAccountSubject) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ServiceAccountSubject) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Namespace)\n\tcopy(dAtA[i:], m.Namespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Subject) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Subject) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Subject) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ServiceAccount != nil {\n\t\t{\n\t\t\tsize, err := m.ServiceAccount.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Group != nil {\n\t\t{\n\t\t\tsize, err := m.Group.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.User != nil {\n\t\t{\n\t\t\tsize, err := m.User.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *UserSubject) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *UserSubject) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *UserSubject) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *ExemptPriorityLevelConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.NominalConcurrencyShares != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.NominalConcurrencyShares))\n\t}\n\tif m.LendablePercent != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.LendablePercent))\n\t}\n\treturn n\n}\n\nfunc (m *FlowDistinguisherMethod) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *FlowSchema) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *FlowSchemaCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *FlowSchemaList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *FlowSchemaSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.PriorityLevelConfiguration.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.MatchingPrecedence))\n\tif m.DistinguisherMethod != nil {\n\t\tl = m.DistinguisherMethod.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.Rules) > 0 {\n\t\tfor _, e := range m.Rules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *FlowSchemaStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *GroupSubject) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *LimitResponse) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Queuing != nil {\n\t\tl = m.Queuing.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *LimitedPriorityLevelConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.NominalConcurrencyShares))\n\tl = m.LimitResponse.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.LendablePercent != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.LendablePercent))\n\t}\n\tif m.BorrowingLimitPercent != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.BorrowingLimitPercent))\n\t}\n\treturn n\n}\n\nfunc (m *NonResourcePolicyRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Verbs) > 0 {\n\t\tfor _, s := range m.Verbs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.NonResourceURLs) > 0 {\n\t\tfor _, s := range m.NonResourceURLs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PolicyRulesWithSubjects) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Subjects) > 0 {\n\t\tfor _, e := range m.Subjects {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.ResourceRules) > 0 {\n\t\tfor _, e := range m.ResourceRules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.NonResourceRules) > 0 {\n\t\tfor _, e := range m.NonResourceRules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PriorityLevelConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PriorityLevelConfigurationCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PriorityLevelConfigurationList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PriorityLevelConfigurationReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PriorityLevelConfigurationSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Limited != nil {\n\t\tl = m.Limited.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Exempt != nil {\n\t\tl = m.Exempt.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PriorityLevelConfigurationStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *QueuingConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Queues))\n\tn += 1 + sovGenerated(uint64(m.HandSize))\n\tn += 1 + sovGenerated(uint64(m.QueueLengthLimit))\n\treturn n\n}\n\nfunc (m *ResourcePolicyRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Verbs) > 0 {\n\t\tfor _, s := range m.Verbs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.APIGroups) > 0 {\n\t\tfor _, s := range m.APIGroups {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Resources) > 0 {\n\t\tfor _, s := range m.Resources {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tn += 2\n\tif len(m.Namespaces) > 0 {\n\t\tfor _, s := range m.Namespaces {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ServiceAccountSubject) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Namespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *Subject) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.User != nil {\n\t\tl = m.User.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Group != nil {\n\t\tl = m.Group.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ServiceAccount != nil {\n\t\tl = m.ServiceAccount.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *UserSubject) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *ExemptPriorityLevelConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ExemptPriorityLevelConfiguration{`,\n\t\t`NominalConcurrencyShares:` + valueToStringGenerated(this.NominalConcurrencyShares) + `,`,\n\t\t`LendablePercent:` + valueToStringGenerated(this.LendablePercent) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowDistinguisherMethod) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&FlowDistinguisherMethod{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowSchema) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&FlowSchema{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"FlowSchemaSpec\", \"FlowSchemaSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"FlowSchemaStatus\", \"FlowSchemaStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowSchemaCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&FlowSchemaCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowSchemaList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]FlowSchema{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"FlowSchema\", \"FlowSchema\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&FlowSchemaList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowSchemaSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForRules := \"[]PolicyRulesWithSubjects{\"\n\tfor _, f := range this.Rules {\n\t\trepeatedStringForRules += strings.Replace(strings.Replace(f.String(), \"PolicyRulesWithSubjects\", \"PolicyRulesWithSubjects\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRules += \"}\"\n\ts := strings.Join([]string{`&FlowSchemaSpec{`,\n\t\t`PriorityLevelConfiguration:` + strings.Replace(strings.Replace(this.PriorityLevelConfiguration.String(), \"PriorityLevelConfigurationReference\", \"PriorityLevelConfigurationReference\", 1), `&`, ``, 1) + `,`,\n\t\t`MatchingPrecedence:` + fmt.Sprintf(\"%v\", this.MatchingPrecedence) + `,`,\n\t\t`DistinguisherMethod:` + strings.Replace(this.DistinguisherMethod.String(), \"FlowDistinguisherMethod\", \"FlowDistinguisherMethod\", 1) + `,`,\n\t\t`Rules:` + repeatedStringForRules + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FlowSchemaStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]FlowSchemaCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"FlowSchemaCondition\", \"FlowSchemaCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&FlowSchemaStatus{`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *GroupSubject) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&GroupSubject{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LimitResponse) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LimitResponse{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Queuing:` + strings.Replace(this.Queuing.String(), \"QueuingConfiguration\", \"QueuingConfiguration\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LimitedPriorityLevelConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LimitedPriorityLevelConfiguration{`,\n\t\t`NominalConcurrencyShares:` + fmt.Sprintf(\"%v\", this.NominalConcurrencyShares) + `,`,\n\t\t`LimitResponse:` + strings.Replace(strings.Replace(this.LimitResponse.String(), \"LimitResponse\", \"LimitResponse\", 1), `&`, ``, 1) + `,`,\n\t\t`LendablePercent:` + valueToStringGenerated(this.LendablePercent) + `,`,\n\t\t`BorrowingLimitPercent:` + valueToStringGenerated(this.BorrowingLimitPercent) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NonResourcePolicyRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NonResourcePolicyRule{`,\n\t\t`Verbs:` + fmt.Sprintf(\"%v\", this.Verbs) + `,`,\n\t\t`NonResourceURLs:` + fmt.Sprintf(\"%v\", this.NonResourceURLs) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PolicyRulesWithSubjects) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForSubjects := \"[]Subject{\"\n\tfor _, f := range this.Subjects {\n\t\trepeatedStringForSubjects += strings.Replace(strings.Replace(f.String(), \"Subject\", \"Subject\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForSubjects += \"}\"\n\trepeatedStringForResourceRules := \"[]ResourcePolicyRule{\"\n\tfor _, f := range this.ResourceRules {\n\t\trepeatedStringForResourceRules += strings.Replace(strings.Replace(f.String(), \"ResourcePolicyRule\", \"ResourcePolicyRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForResourceRules += \"}\"\n\trepeatedStringForNonResourceRules := \"[]NonResourcePolicyRule{\"\n\tfor _, f := range this.NonResourceRules {\n\t\trepeatedStringForNonResourceRules += strings.Replace(strings.Replace(f.String(), \"NonResourcePolicyRule\", \"NonResourcePolicyRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForNonResourceRules += \"}\"\n\ts := strings.Join([]string{`&PolicyRulesWithSubjects{`,\n\t\t`Subjects:` + repeatedStringForSubjects + `,`,\n\t\t`ResourceRules:` + repeatedStringForResourceRules + `,`,\n\t\t`NonResourceRules:` + repeatedStringForNonResourceRules + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PriorityLevelConfiguration{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"PriorityLevelConfigurationSpec\", \"PriorityLevelConfigurationSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"PriorityLevelConfigurationStatus\", \"PriorityLevelConfigurationStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfigurationCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PriorityLevelConfigurationCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfigurationList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]PriorityLevelConfiguration{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"PriorityLevelConfiguration\", \"PriorityLevelConfiguration\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&PriorityLevelConfigurationList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfigurationReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PriorityLevelConfigurationReference{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfigurationSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PriorityLevelConfigurationSpec{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Limited:` + strings.Replace(this.Limited.String(), \"LimitedPriorityLevelConfiguration\", \"LimitedPriorityLevelConfiguration\", 1) + `,`,\n\t\t`Exempt:` + strings.Replace(this.Exempt.String(), \"ExemptPriorityLevelConfiguration\", \"ExemptPriorityLevelConfiguration\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityLevelConfigurationStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]PriorityLevelConfigurationCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"PriorityLevelConfigurationCondition\", \"PriorityLevelConfigurationCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&PriorityLevelConfigurationStatus{`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *QueuingConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&QueuingConfiguration{`,\n\t\t`Queues:` + fmt.Sprintf(\"%v\", this.Queues) + `,`,\n\t\t`HandSize:` + fmt.Sprintf(\"%v\", this.HandSize) + `,`,\n\t\t`QueueLengthLimit:` + fmt.Sprintf(\"%v\", this.QueueLengthLimit) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourcePolicyRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourcePolicyRule{`,\n\t\t`Verbs:` + fmt.Sprintf(\"%v\", this.Verbs) + `,`,\n\t\t`APIGroups:` + fmt.Sprintf(\"%v\", this.APIGroups) + `,`,\n\t\t`Resources:` + fmt.Sprintf(\"%v\", this.Resources) + `,`,\n\t\t`ClusterScope:` + fmt.Sprintf(\"%v\", this.ClusterScope) + `,`,\n\t\t`Namespaces:` + fmt.Sprintf(\"%v\", this.Namespaces) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ServiceAccountSubject) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ServiceAccountSubject{`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Subject) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Subject{`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`User:` + strings.Replace(this.User.String(), \"UserSubject\", \"UserSubject\", 1) + `,`,\n\t\t`Group:` + strings.Replace(this.Group.String(), \"GroupSubject\", \"GroupSubject\", 1) + `,`,\n\t\t`ServiceAccount:` + strings.Replace(this.ServiceAccount.String(), \"ServiceAccountSubject\", \"ServiceAccountSubject\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *UserSubject) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&UserSubject{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *ExemptPriorityLevelConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ExemptPriorityLevelConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ExemptPriorityLevelConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NominalConcurrencyShares\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.NominalConcurrencyShares = &v\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LendablePercent\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.LendablePercent = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowDistinguisherMethod) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowDistinguisherMethod: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowDistinguisherMethod: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = FlowDistinguisherMethodType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowSchema) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchema: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchema: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowSchemaCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = FlowSchemaConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowSchemaList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, FlowSchema{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowSchemaSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PriorityLevelConfiguration\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.PriorityLevelConfiguration.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchingPrecedence\", wireType)\n\t\t\t}\n\t\t\tm.MatchingPrecedence = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.MatchingPrecedence |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DistinguisherMethod\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.DistinguisherMethod == nil {\n\t\t\t\tm.DistinguisherMethod = &FlowDistinguisherMethod{}\n\t\t\t}\n\t\t\tif err := m.DistinguisherMethod.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Rules = append(m.Rules, PolicyRulesWithSubjects{})\n\t\t\tif err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FlowSchemaStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FlowSchemaStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, FlowSchemaCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *GroupSubject) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GroupSubject: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GroupSubject: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LimitResponse) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LimitResponse: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LimitResponse: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = LimitResponseType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Queuing\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Queuing == nil {\n\t\t\t\tm.Queuing = &QueuingConfiguration{}\n\t\t\t}\n\t\t\tif err := m.Queuing.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LimitedPriorityLevelConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LimitedPriorityLevelConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LimitedPriorityLevelConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NominalConcurrencyShares\", wireType)\n\t\t\t}\n\t\t\tm.NominalConcurrencyShares = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.NominalConcurrencyShares |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LimitResponse\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LimitResponse.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LendablePercent\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.LendablePercent = &v\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field BorrowingLimitPercent\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.BorrowingLimitPercent = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NonResourcePolicyRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NonResourcePolicyRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NonResourcePolicyRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verbs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verbs = append(m.Verbs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NonResourceURLs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NonResourceURLs = append(m.NonResourceURLs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PolicyRulesWithSubjects) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PolicyRulesWithSubjects: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PolicyRulesWithSubjects: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Subjects\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Subjects = append(m.Subjects, Subject{})\n\t\t\tif err := m.Subjects[len(m.Subjects)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceRules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceRules = append(m.ResourceRules, ResourcePolicyRule{})\n\t\t\tif err := m.ResourceRules[len(m.ResourceRules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NonResourceRules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NonResourceRules = append(m.NonResourceRules, NonResourcePolicyRule{})\n\t\t\tif err := m.NonResourceRules[len(m.NonResourceRules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfigurationCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = PriorityLevelConfigurationConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfigurationList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, PriorityLevelConfiguration{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfigurationReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfigurationSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = PriorityLevelEnablement(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Limited\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Limited == nil {\n\t\t\t\tm.Limited = &LimitedPriorityLevelConfiguration{}\n\t\t\t}\n\t\t\tif err := m.Limited.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Exempt\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Exempt == nil {\n\t\t\t\tm.Exempt = &ExemptPriorityLevelConfiguration{}\n\t\t\t}\n\t\t\tif err := m.Exempt.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityLevelConfigurationStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityLevelConfigurationStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, PriorityLevelConfigurationCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *QueuingConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: QueuingConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: QueuingConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Queues\", wireType)\n\t\t\t}\n\t\t\tm.Queues = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Queues |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HandSize\", wireType)\n\t\t\t}\n\t\t\tm.HandSize = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.HandSize |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field QueueLengthLimit\", wireType)\n\t\t\t}\n\t\t\tm.QueueLengthLimit = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.QueueLengthLimit |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourcePolicyRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourcePolicyRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourcePolicyRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verbs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verbs = append(m.Verbs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIGroups\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIGroups = append(m.APIGroups, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resources\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resources = append(m.Resources, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ClusterScope\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ClusterScope = bool(v != 0)\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespaces\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespaces = append(m.Namespaces, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ServiceAccountSubject) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceAccountSubject: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceAccountSubject: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Subject) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Subject: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Subject: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = SubjectKind(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field User\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.User == nil {\n\t\t\t\tm.User = &UserSubject{}\n\t\t\t}\n\t\t\tif err := m.User.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Group\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Group == nil {\n\t\t\t\tm.Group = &GroupSubject{}\n\t\t\t}\n\t\t\tif err := m.Group.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServiceAccount\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ServiceAccount == nil {\n\t\t\t\tm.ServiceAccount = &ServiceAccountSubject{}\n\t\t\t}\n\t\t\tif err := m.ServiceAccount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *UserSubject) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: UserSubject: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: UserSubject: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta3/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.flowcontrol.v1beta3;\n\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/flowcontrol/v1beta3\";\n\n// ExemptPriorityLevelConfiguration describes the configurable aspects\n// of the handling of exempt requests.\n// In the mandatory exempt configuration object the values in the fields\n// here can be modified by authorized users, unlike the rest of the `spec`.\nmessage ExemptPriorityLevelConfiguration {\n  // `nominalConcurrencyShares` (NCS) contributes to the computation of the\n  // NominalConcurrencyLimit (NominalCL) of this level.\n  // This is the number of execution seats nominally reserved for this priority level.\n  // This DOES NOT limit the dispatching from this priority level\n  // but affects the other priority levels through the borrowing mechanism.\n  // The server's concurrency limit (ServerCL) is divided among all the\n  // priority levels in proportion to their NCS values:\n  //\n  // NominalCL(i)  = ceil( ServerCL * NCS(i) / sum_ncs )\n  // sum_ncs = sum[priority level k] NCS(k)\n  //\n  // Bigger numbers mean a larger nominal concurrency limit,\n  // at the expense of every other priority level.\n  // This field has a default value of zero.\n  // +optional\n  optional int32 nominalConcurrencyShares = 1;\n\n  // `lendablePercent` prescribes the fraction of the level's NominalCL that\n  // can be borrowed by other priority levels.  This value of this\n  // field must be between 0 and 100, inclusive, and it defaults to 0.\n  // The number of seats that other levels can borrow from this level, known\n  // as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\n  //\n  // LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )\n  //\n  // +optional\n  optional int32 lendablePercent = 2;\n}\n\n// FlowDistinguisherMethod specifies the method of a flow distinguisher.\nmessage FlowDistinguisherMethod {\n  // `type` is the type of flow distinguisher method\n  // The supported types are \"ByUser\" and \"ByNamespace\".\n  // Required.\n  optional string type = 1;\n}\n\n// FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of inbound API requests with\n// similar attributes and is identified by a pair of strings: the name of the FlowSchema and a \"flow distinguisher\".\nmessage FlowSchema {\n  // `metadata` is the standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // `spec` is the specification of the desired behavior of a FlowSchema.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional FlowSchemaSpec spec = 2;\n\n  // `status` is the current status of a FlowSchema.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional FlowSchemaStatus status = 3;\n}\n\n// FlowSchemaCondition describes conditions for a FlowSchema.\nmessage FlowSchemaCondition {\n  // `type` is the type of the condition.\n  // Required.\n  optional string type = 1;\n\n  // `status` is the status of the condition.\n  // Can be True, False, Unknown.\n  // Required.\n  optional string status = 2;\n\n  // `lastTransitionTime` is the last time the condition transitioned from one status to another.\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // `reason` is a unique, one-word, CamelCase reason for the condition's last transition.\n  optional string reason = 4;\n\n  // `message` is a human-readable message indicating details about last transition.\n  optional string message = 5;\n}\n\n// FlowSchemaList is a list of FlowSchema objects.\nmessage FlowSchemaList {\n  // `metadata` is the standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // `items` is a list of FlowSchemas.\n  repeated FlowSchema items = 2;\n}\n\n// FlowSchemaSpec describes how the FlowSchema's specification looks like.\nmessage FlowSchemaSpec {\n  // `priorityLevelConfiguration` should reference a PriorityLevelConfiguration in the cluster. If the reference cannot\n  // be resolved, the FlowSchema will be ignored and marked as invalid in its status.\n  // Required.\n  optional PriorityLevelConfigurationReference priorityLevelConfiguration = 1;\n\n  // `matchingPrecedence` is used to choose among the FlowSchemas that match a given request. The chosen\n  // FlowSchema is among those with the numerically lowest (which we take to be logically highest)\n  // MatchingPrecedence.  Each MatchingPrecedence value must be ranged in [1,10000].\n  // Note that if the precedence is not specified, it will be set to 1000 as default.\n  // +optional\n  optional int32 matchingPrecedence = 2;\n\n  // `distinguisherMethod` defines how to compute the flow distinguisher for requests that match this schema.\n  // `nil` specifies that the distinguisher is disabled and thus will always be the empty string.\n  // +optional\n  optional FlowDistinguisherMethod distinguisherMethod = 3;\n\n  // `rules` describes which requests will match this flow schema. This FlowSchema matches a request if and only if\n  // at least one member of rules matches the request.\n  // if it is an empty slice, there will be no requests matching the FlowSchema.\n  // +listType=atomic\n  // +optional\n  repeated PolicyRulesWithSubjects rules = 4;\n}\n\n// FlowSchemaStatus represents the current state of a FlowSchema.\nmessage FlowSchemaStatus {\n  // `conditions` is a list of the current states of FlowSchema.\n  // +listType=map\n  // +listMapKey=type\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  // +optional\n  repeated FlowSchemaCondition conditions = 1;\n}\n\n// GroupSubject holds detailed information for group-kind subject.\nmessage GroupSubject {\n  // name is the user group that matches, or \"*\" to match all user groups.\n  // See https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go for some\n  // well-known group names.\n  // Required.\n  optional string name = 1;\n}\n\n// LimitResponse defines how to handle requests that can not be executed right now.\n// +union\nmessage LimitResponse {\n  // `type` is \"Queue\" or \"Reject\".\n  // \"Queue\" means that requests that can not be executed upon arrival\n  // are held in a queue until they can be executed or a queuing limit\n  // is reached.\n  // \"Reject\" means that requests that can not be executed upon arrival\n  // are rejected.\n  // Required.\n  // +unionDiscriminator\n  optional string type = 1;\n\n  // `queuing` holds the configuration parameters for queuing.\n  // This field may be non-empty only if `type` is `\"Queue\"`.\n  // +optional\n  optional QueuingConfiguration queuing = 2;\n}\n\n// LimitedPriorityLevelConfiguration specifies how to handle requests that are subject to limits.\n// It addresses two issues:\n//   - How are requests for this priority level limited?\n//   - What should be done with requests that exceed the limit?\nmessage LimitedPriorityLevelConfiguration {\n  // `nominalConcurrencyShares` (NCS) contributes to the computation of the\n  // NominalConcurrencyLimit (NominalCL) of this level.\n  // This is the number of execution seats available at this priority level.\n  // This is used both for requests dispatched from this priority level\n  // as well as requests dispatched from other priority levels\n  // borrowing seats from this level.\n  // The server's concurrency limit (ServerCL) is divided among the\n  // Limited priority levels in proportion to their NCS values:\n  //\n  // NominalCL(i)  = ceil( ServerCL * NCS(i) / sum_ncs )\n  // sum_ncs = sum[priority level k] NCS(k)\n  //\n  // Bigger numbers mean a larger nominal concurrency limit,\n  // at the expense of every other priority level.\n  // This field has a default value of 30.\n  // +optional\n  optional int32 nominalConcurrencyShares = 1;\n\n  // `limitResponse` indicates what to do with requests that can not be executed right now\n  optional LimitResponse limitResponse = 2;\n\n  // `lendablePercent` prescribes the fraction of the level's NominalCL that\n  // can be borrowed by other priority levels. The value of this\n  // field must be between 0 and 100, inclusive, and it defaults to 0.\n  // The number of seats that other levels can borrow from this level, known\n  // as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\n  //\n  // LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )\n  //\n  // +optional\n  optional int32 lendablePercent = 3;\n\n  // `borrowingLimitPercent`, if present, configures a limit on how many\n  // seats this priority level can borrow from other priority levels.\n  // The limit is known as this level's BorrowingConcurrencyLimit\n  // (BorrowingCL) and is a limit on the total number of seats that this\n  // level may borrow at any one time.\n  // This field holds the ratio of that limit to the level's nominal\n  // concurrency limit. When this field is non-nil, it must hold a\n  // non-negative integer and the limit is calculated as follows.\n  //\n  // BorrowingCL(i) = round( NominalCL(i) * borrowingLimitPercent(i)/100.0 )\n  //\n  // The value of this field can be more than 100, implying that this\n  // priority level can borrow a number of seats that is greater than\n  // its own nominal concurrency limit (NominalCL).\n  // When this field is left `nil`, the limit is effectively infinite.\n  // +optional\n  optional int32 borrowingLimitPercent = 4;\n}\n\n// NonResourcePolicyRule is a predicate that matches non-resource requests according to their verb and the\n// target non-resource URL. A NonResourcePolicyRule matches a request if and only if both (a) at least one member\n// of verbs matches the request and (b) at least one member of nonResourceURLs matches the request.\nmessage NonResourcePolicyRule {\n  // `verbs` is a list of matching verbs and may not be empty.\n  // \"*\" matches all verbs. If it is present, it must be the only entry.\n  // +listType=set\n  // Required.\n  repeated string verbs = 1;\n\n  // `nonResourceURLs` is a set of url prefixes that a user should have access to and may not be empty.\n  // For example:\n  //   - \"/healthz\" is legal\n  //   - \"/hea*\" is illegal\n  //   - \"/hea\" is legal but matches nothing\n  //   - \"/hea/*\" also matches nothing\n  //   - \"/healthz/*\" matches all per-component health checks.\n  // \"*\" matches all non-resource urls. if it is present, it must be the only entry.\n  // +listType=set\n  // Required.\n  repeated string nonResourceURLs = 6;\n}\n\n// PolicyRulesWithSubjects prescribes a test that applies to a request to an apiserver. The test considers the subject\n// making the request, the verb being requested, and the resource to be acted upon. This PolicyRulesWithSubjects matches\n// a request if and only if both (a) at least one member of subjects matches the request and (b) at least one member\n// of resourceRules or nonResourceRules matches the request.\nmessage PolicyRulesWithSubjects {\n  // subjects is the list of normal user, serviceaccount, or group that this rule cares about.\n  // There must be at least one member in this slice.\n  // A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request.\n  // +listType=atomic\n  // Required.\n  repeated Subject subjects = 1;\n\n  // `resourceRules` is a slice of ResourcePolicyRules that identify matching requests according to their verb and the\n  // target resource.\n  // At least one of `resourceRules` and `nonResourceRules` has to be non-empty.\n  // +listType=atomic\n  // +optional\n  repeated ResourcePolicyRule resourceRules = 2;\n\n  // `nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests according to their verb\n  // and the target non-resource URL.\n  // +listType=atomic\n  // +optional\n  repeated NonResourcePolicyRule nonResourceRules = 3;\n}\n\n// PriorityLevelConfiguration represents the configuration of a priority level.\nmessage PriorityLevelConfiguration {\n  // `metadata` is the standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // `spec` is the specification of the desired behavior of a \"request-priority\".\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional PriorityLevelConfigurationSpec spec = 2;\n\n  // `status` is the current status of a \"request-priority\".\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional PriorityLevelConfigurationStatus status = 3;\n}\n\n// PriorityLevelConfigurationCondition defines the condition of priority level.\nmessage PriorityLevelConfigurationCondition {\n  // `type` is the type of the condition.\n  // Required.\n  optional string type = 1;\n\n  // `status` is the status of the condition.\n  // Can be True, False, Unknown.\n  // Required.\n  optional string status = 2;\n\n  // `lastTransitionTime` is the last time the condition transitioned from one status to another.\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;\n\n  // `reason` is a unique, one-word, CamelCase reason for the condition's last transition.\n  optional string reason = 4;\n\n  // `message` is a human-readable message indicating details about last transition.\n  optional string message = 5;\n}\n\n// PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects.\nmessage PriorityLevelConfigurationList {\n  // `metadata` is the standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // `items` is a list of request-priorities.\n  repeated PriorityLevelConfiguration items = 2;\n}\n\n// PriorityLevelConfigurationReference contains information that points to the \"request-priority\" being used.\nmessage PriorityLevelConfigurationReference {\n  // `name` is the name of the priority level configuration being referenced\n  // Required.\n  optional string name = 1;\n}\n\n// PriorityLevelConfigurationSpec specifies the configuration of a priority level.\n// +union\nmessage PriorityLevelConfigurationSpec {\n  // `type` indicates whether this priority level is subject to\n  // limitation on request execution.  A value of `\"Exempt\"` means\n  // that requests of this priority level are not subject to a limit\n  // (and thus are never queued) and do not detract from the\n  // capacity made available to other priority levels.  A value of\n  // `\"Limited\"` means that (a) requests of this priority level\n  // _are_ subject to limits and (b) some of the server's limited\n  // capacity is made available exclusively to this priority level.\n  // Required.\n  // +unionDiscriminator\n  optional string type = 1;\n\n  // `limited` specifies how requests are handled for a Limited priority level.\n  // This field must be non-empty if and only if `type` is `\"Limited\"`.\n  // +optional\n  optional LimitedPriorityLevelConfiguration limited = 2;\n\n  // `exempt` specifies how requests are handled for an exempt priority level.\n  // This field MUST be empty if `type` is `\"Limited\"`.\n  // This field MAY be non-empty if `type` is `\"Exempt\"`.\n  // If empty and `type` is `\"Exempt\"` then the default values\n  // for `ExemptPriorityLevelConfiguration` apply.\n  // +optional\n  optional ExemptPriorityLevelConfiguration exempt = 3;\n}\n\n// PriorityLevelConfigurationStatus represents the current state of a \"request-priority\".\nmessage PriorityLevelConfigurationStatus {\n  // `conditions` is the current state of \"request-priority\".\n  // +listType=map\n  // +listMapKey=type\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  // +optional\n  repeated PriorityLevelConfigurationCondition conditions = 1;\n}\n\n// QueuingConfiguration holds the configuration parameters for queuing\nmessage QueuingConfiguration {\n  // `queues` is the number of queues for this priority level. The\n  // queues exist independently at each apiserver. The value must be\n  // positive.  Setting it to 1 effectively precludes\n  // shufflesharding and thus makes the distinguisher method of\n  // associated flow schemas irrelevant.  This field has a default\n  // value of 64.\n  // +optional\n  optional int32 queues = 1;\n\n  // `handSize` is a small positive number that configures the\n  // shuffle sharding of requests into queues.  When enqueuing a request\n  // at this priority level the request's flow identifier (a string\n  // pair) is hashed and the hash value is used to shuffle the list\n  // of queues and deal a hand of the size specified here.  The\n  // request is put into one of the shortest queues in that hand.\n  // `handSize` must be no larger than `queues`, and should be\n  // significantly smaller (so that a few heavy flows do not\n  // saturate most of the queues).  See the user-facing\n  // documentation for more extensive guidance on setting this\n  // field.  This field has a default value of 8.\n  // +optional\n  optional int32 handSize = 2;\n\n  // `queueLengthLimit` is the maximum number of requests allowed to\n  // be waiting in a given queue of this priority level at a time;\n  // excess requests are rejected.  This value must be positive.  If\n  // not specified, it will be defaulted to 50.\n  // +optional\n  optional int32 queueLengthLimit = 3;\n}\n\n// ResourcePolicyRule is a predicate that matches some resource\n// requests, testing the request's verb and the target resource. A\n// ResourcePolicyRule matches a resource request if and only if: (a)\n// at least one member of verbs matches the request, (b) at least one\n// member of apiGroups matches the request, (c) at least one member of\n// resources matches the request, and (d) either (d1) the request does\n// not specify a namespace (i.e., `Namespace==\"\"`) and clusterScope is\n// true or (d2) the request specifies a namespace and least one member\n// of namespaces matches the request's namespace.\nmessage ResourcePolicyRule {\n  // `verbs` is a list of matching verbs and may not be empty.\n  // \"*\" matches all verbs and, if present, must be the only entry.\n  // +listType=set\n  // Required.\n  repeated string verbs = 1;\n\n  // `apiGroups` is a list of matching API groups and may not be empty.\n  // \"*\" matches all API groups and, if present, must be the only entry.\n  // +listType=set\n  // Required.\n  repeated string apiGroups = 2;\n\n  // `resources` is a list of matching resources (i.e., lowercase\n  // and plural) with, if desired, subresource.  For example, [\n  // \"services\", \"nodes/status\" ].  This list may not be empty.\n  // \"*\" matches all resources and, if present, must be the only entry.\n  // Required.\n  // +listType=set\n  repeated string resources = 3;\n\n  // `clusterScope` indicates whether to match requests that do not\n  // specify a namespace (which happens either because the resource\n  // is not namespaced or the request targets all namespaces).\n  // If this field is omitted or false then the `namespaces` field\n  // must contain a non-empty list.\n  // +optional\n  optional bool clusterScope = 4;\n\n  // `namespaces` is a list of target namespaces that restricts\n  // matches.  A request that specifies a target namespace matches\n  // only if either (a) this list contains that target namespace or\n  // (b) this list contains \"*\".  Note that \"*\" matches any\n  // specified namespace but does not match a request that _does\n  // not specify_ a namespace (see the `clusterScope` field for\n  // that).\n  // This list may be empty, but only if `clusterScope` is true.\n  // +optional\n  // +listType=set\n  repeated string namespaces = 5;\n}\n\n// ServiceAccountSubject holds detailed information for service-account-kind subject.\nmessage ServiceAccountSubject {\n  // `namespace` is the namespace of matching ServiceAccount objects.\n  // Required.\n  optional string namespace = 1;\n\n  // `name` is the name of matching ServiceAccount objects, or \"*\" to match regardless of name.\n  // Required.\n  optional string name = 2;\n}\n\n// Subject matches the originator of a request, as identified by the request authentication system. There are three\n// ways of matching an originator; by user, group, or service account.\n// +union\nmessage Subject {\n  // `kind` indicates which one of the other fields is non-empty.\n  // Required\n  // +unionDiscriminator\n  optional string kind = 1;\n\n  // `user` matches based on username.\n  // +optional\n  optional UserSubject user = 2;\n\n  // `group` matches based on user group name.\n  // +optional\n  optional GroupSubject group = 3;\n\n  // `serviceAccount` matches ServiceAccounts.\n  // +optional\n  optional ServiceAccountSubject serviceAccount = 4;\n}\n\n// UserSubject holds detailed information for user-kind subject.\nmessage UserSubject {\n  // `name` is the username that matches, or \"*\" to match all usernames.\n  // Required.\n  optional string name = 1;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta3/register.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta3\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the name of api group\nconst GroupName = \"flowcontrol.apiserver.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta3\"}\n\n// Kind takes an unqualified kind and returns a Group qualified GroupKind\nfunc Kind(kind string) schema.GroupKind {\n\treturn SchemeGroupVersion.WithKind(kind).GroupKind()\n}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// SchemeBuilder installs the api group to a scheme\n\tSchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)\n\t// AddToScheme adds api to a scheme\n\tAddToScheme = SchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&FlowSchema{},\n\t\t&FlowSchemaList{},\n\t\t&PriorityLevelConfiguration{},\n\t\t&PriorityLevelConfigurationList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta3/types.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta3\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// These are valid wildcards.\nconst (\n\tAPIGroupAll    = \"*\"\n\tResourceAll    = \"*\"\n\tVerbAll        = \"*\"\n\tNonResourceAll = \"*\"\n\tNameAll        = \"*\"\n\n\tNamespaceEvery = \"*\" // matches every particular namespace\n)\n\n// System preset priority level names\nconst (\n\tPriorityLevelConfigurationNameExempt   = \"exempt\"\n\tPriorityLevelConfigurationNameCatchAll = \"catch-all\"\n\tFlowSchemaNameExempt                   = \"exempt\"\n\tFlowSchemaNameCatchAll                 = \"catch-all\"\n)\n\n// Conditions\nconst (\n\tFlowSchemaConditionDangling = \"Dangling\"\n\n\tPriorityLevelConfigurationConditionConcurrencyShared = \"ConcurrencyShared\"\n)\n\n// Constants used by api validation.\nconst (\n\tFlowSchemaMaxMatchingPrecedence int32 = 10000\n)\n\n// Constants for apiserver response headers.\nconst (\n\tResponseHeaderMatchedPriorityLevelConfigurationUID = \"X-Kubernetes-PF-PriorityLevel-UID\"\n\tResponseHeaderMatchedFlowSchemaUID                 = \"X-Kubernetes-PF-FlowSchema-UID\"\n)\n\nconst (\n\t// AutoUpdateAnnotationKey is the name of an annotation that enables\n\t// automatic update of the spec of the bootstrap configuration\n\t// object(s), if set to 'true'.\n\t//\n\t// On a fresh install, all bootstrap configuration objects will have auto\n\t// update enabled with the following annotation key:\n\t//    apf.kubernetes.io/autoupdate-spec: 'true'\n\t//\n\t// The kube-apiserver periodically checks the bootstrap configuration\n\t// objects on the cluster and applies updates if necessary.\n\t//\n\t// kube-apiserver enforces an 'always auto-update' policy for the\n\t// mandatory configuration object(s). This implies:\n\t// - the auto-update annotation key is added with a value of 'true'\n\t//   if it is missing.\n\t// - the auto-update annotation key is set to 'true' if its current value\n\t//   is a boolean false or has an invalid boolean representation\n\t//   (if the cluster operator sets it to 'false' it will be stomped)\n\t// - any changes to the spec made by the cluster operator will be\n\t//   stomped, except for changes to the `nominalConcurrencyShares`\n\t//   and `lendablePercent` fields of the PriorityLevelConfiguration\n\t//   named \"exempt\".\n\t//\n\t// The kube-apiserver will apply updates on the suggested configuration if:\n\t// - the cluster operator has enabled auto-update by setting the annotation\n\t//   (apf.kubernetes.io/autoupdate-spec: 'true') or\n\t// - the annotation key is missing but the generation is 1\n\t//\n\t// If the suggested configuration object is missing the annotation key,\n\t// kube-apiserver will update the annotation appropriately:\n\t// - it is set to 'true' if generation of the object is '1' which usually\n\t//   indicates that the spec of the object has not been changed.\n\t// - it is set to 'false' if generation of the object is greater than 1.\n\t//\n\t// The goal is to enable the kube-apiserver to apply update on suggested\n\t// configuration objects installed by previous releases but not overwrite\n\t// changes made by the cluster operators.\n\t// Note that this distinction is imperfectly detected: in the case where an\n\t// operator deletes a suggested configuration object and later creates it\n\t// but with a variant spec and then does no updates of the object\n\t// (generation is 1), the technique outlined above will incorrectly\n\t// determine that the object should be auto-updated.\n\tAutoUpdateAnnotationKey = \"apf.kubernetes.io/autoupdate-spec\"\n)\n\nconst (\n\t// This annotation is only for use in v1beta3.\n\t//\n\t// The presence of this annotation in a v1beta3 object means that\n\t// a zero value in the 'NominalConcurrencyShares' field means zero\n\t// rather than the old default of 30.\n\t//\n\t// To set a zero value for the 'NominalConcurrencyShares' field in v1beta3,\n\t// set the annotation to an empty string:\n\t//   \"flowcontrol.k8s.io/v1beta3-preserve-zero-concurrency-shares\": \"\"\n\t//\n\tPriorityLevelPreserveZeroConcurrencySharesKey = \"flowcontrol.k8s.io/v1beta3-preserve-zero-concurrency-shares\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.26\n// +k8s:prerelease-lifecycle-gen:replacement=flowcontrol.apiserver.k8s.io,v1,FlowSchema\n\n// FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of inbound API requests with\n// similar attributes and is identified by a pair of strings: the name of the FlowSchema and a \"flow distinguisher\".\ntype FlowSchema struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// `metadata` is the standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// `spec` is the specification of the desired behavior of a FlowSchema.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec FlowSchemaSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\t// `status` is the current status of a FlowSchema.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus FlowSchemaStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.26\n// +k8s:prerelease-lifecycle-gen:replacement=flowcontrol.apiserver.k8s.io,v1,FlowSchemaList\n\n// FlowSchemaList is a list of FlowSchema objects.\ntype FlowSchemaList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// `metadata` is the standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// `items` is a list of FlowSchemas.\n\tItems []FlowSchema `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// FlowSchemaSpec describes how the FlowSchema's specification looks like.\ntype FlowSchemaSpec struct {\n\t// `priorityLevelConfiguration` should reference a PriorityLevelConfiguration in the cluster. If the reference cannot\n\t// be resolved, the FlowSchema will be ignored and marked as invalid in its status.\n\t// Required.\n\tPriorityLevelConfiguration PriorityLevelConfigurationReference `json:\"priorityLevelConfiguration\" protobuf:\"bytes,1,opt,name=priorityLevelConfiguration\"`\n\t// `matchingPrecedence` is used to choose among the FlowSchemas that match a given request. The chosen\n\t// FlowSchema is among those with the numerically lowest (which we take to be logically highest)\n\t// MatchingPrecedence.  Each MatchingPrecedence value must be ranged in [1,10000].\n\t// Note that if the precedence is not specified, it will be set to 1000 as default.\n\t// +optional\n\tMatchingPrecedence int32 `json:\"matchingPrecedence\" protobuf:\"varint,2,opt,name=matchingPrecedence\"`\n\t// `distinguisherMethod` defines how to compute the flow distinguisher for requests that match this schema.\n\t// `nil` specifies that the distinguisher is disabled and thus will always be the empty string.\n\t// +optional\n\tDistinguisherMethod *FlowDistinguisherMethod `json:\"distinguisherMethod,omitempty\" protobuf:\"bytes,3,opt,name=distinguisherMethod\"`\n\t// `rules` describes which requests will match this flow schema. This FlowSchema matches a request if and only if\n\t// at least one member of rules matches the request.\n\t// if it is an empty slice, there will be no requests matching the FlowSchema.\n\t// +listType=atomic\n\t// +optional\n\tRules []PolicyRulesWithSubjects `json:\"rules,omitempty\" protobuf:\"bytes,4,rep,name=rules\"`\n}\n\n// FlowDistinguisherMethodType is the type of flow distinguisher method\ntype FlowDistinguisherMethodType string\n\n// These are valid flow-distinguisher methods.\nconst (\n\t// FlowDistinguisherMethodByUserType specifies that the flow distinguisher is the username in the request.\n\t// This type is used to provide some insulation between users.\n\tFlowDistinguisherMethodByUserType FlowDistinguisherMethodType = \"ByUser\"\n\n\t// FlowDistinguisherMethodByNamespaceType specifies that the flow distinguisher is the namespace of the\n\t// object that the request acts upon. If the object is not namespaced, or if the request is a non-resource\n\t// request, then the distinguisher will be the empty string. An example usage of this type is to provide\n\t// some insulation between tenants in a situation where there are multiple tenants and each namespace\n\t// is dedicated to a tenant.\n\tFlowDistinguisherMethodByNamespaceType FlowDistinguisherMethodType = \"ByNamespace\"\n)\n\n// FlowDistinguisherMethod specifies the method of a flow distinguisher.\ntype FlowDistinguisherMethod struct {\n\t// `type` is the type of flow distinguisher method\n\t// The supported types are \"ByUser\" and \"ByNamespace\".\n\t// Required.\n\tType FlowDistinguisherMethodType `json:\"type\" protobuf:\"bytes,1,opt,name=type\"`\n}\n\n// PriorityLevelConfigurationReference contains information that points to the \"request-priority\" being used.\ntype PriorityLevelConfigurationReference struct {\n\t// `name` is the name of the priority level configuration being referenced\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n}\n\n// PolicyRulesWithSubjects prescribes a test that applies to a request to an apiserver. The test considers the subject\n// making the request, the verb being requested, and the resource to be acted upon. This PolicyRulesWithSubjects matches\n// a request if and only if both (a) at least one member of subjects matches the request and (b) at least one member\n// of resourceRules or nonResourceRules matches the request.\ntype PolicyRulesWithSubjects struct {\n\t// subjects is the list of normal user, serviceaccount, or group that this rule cares about.\n\t// There must be at least one member in this slice.\n\t// A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request.\n\t// +listType=atomic\n\t// Required.\n\tSubjects []Subject `json:\"subjects\" protobuf:\"bytes,1,rep,name=subjects\"`\n\t// `resourceRules` is a slice of ResourcePolicyRules that identify matching requests according to their verb and the\n\t// target resource.\n\t// At least one of `resourceRules` and `nonResourceRules` has to be non-empty.\n\t// +listType=atomic\n\t// +optional\n\tResourceRules []ResourcePolicyRule `json:\"resourceRules,omitempty\" protobuf:\"bytes,2,opt,name=resourceRules\"`\n\t// `nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests according to their verb\n\t// and the target non-resource URL.\n\t// +listType=atomic\n\t// +optional\n\tNonResourceRules []NonResourcePolicyRule `json:\"nonResourceRules,omitempty\" protobuf:\"bytes,3,opt,name=nonResourceRules\"`\n}\n\n// Subject matches the originator of a request, as identified by the request authentication system. There are three\n// ways of matching an originator; by user, group, or service account.\n// +union\ntype Subject struct {\n\t// `kind` indicates which one of the other fields is non-empty.\n\t// Required\n\t// +unionDiscriminator\n\tKind SubjectKind `json:\"kind\" protobuf:\"bytes,1,opt,name=kind\"`\n\t// `user` matches based on username.\n\t// +optional\n\tUser *UserSubject `json:\"user,omitempty\" protobuf:\"bytes,2,opt,name=user\"`\n\t// `group` matches based on user group name.\n\t// +optional\n\tGroup *GroupSubject `json:\"group,omitempty\" protobuf:\"bytes,3,opt,name=group\"`\n\t// `serviceAccount` matches ServiceAccounts.\n\t// +optional\n\tServiceAccount *ServiceAccountSubject `json:\"serviceAccount,omitempty\" protobuf:\"bytes,4,opt,name=serviceAccount\"`\n}\n\n// SubjectKind is the kind of subject.\ntype SubjectKind string\n\n// Supported subject's kinds.\nconst (\n\tSubjectKindUser           SubjectKind = \"User\"\n\tSubjectKindGroup          SubjectKind = \"Group\"\n\tSubjectKindServiceAccount SubjectKind = \"ServiceAccount\"\n)\n\n// UserSubject holds detailed information for user-kind subject.\ntype UserSubject struct {\n\t// `name` is the username that matches, or \"*\" to match all usernames.\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n}\n\n// GroupSubject holds detailed information for group-kind subject.\ntype GroupSubject struct {\n\t// name is the user group that matches, or \"*\" to match all user groups.\n\t// See https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go for some\n\t// well-known group names.\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n}\n\n// ServiceAccountSubject holds detailed information for service-account-kind subject.\ntype ServiceAccountSubject struct {\n\t// `namespace` is the namespace of matching ServiceAccount objects.\n\t// Required.\n\tNamespace string `json:\"namespace\" protobuf:\"bytes,1,opt,name=namespace\"`\n\t// `name` is the name of matching ServiceAccount objects, or \"*\" to match regardless of name.\n\t// Required.\n\tName string `json:\"name\" protobuf:\"bytes,2,opt,name=name\"`\n}\n\n// ResourcePolicyRule is a predicate that matches some resource\n// requests, testing the request's verb and the target resource. A\n// ResourcePolicyRule matches a resource request if and only if: (a)\n// at least one member of verbs matches the request, (b) at least one\n// member of apiGroups matches the request, (c) at least one member of\n// resources matches the request, and (d) either (d1) the request does\n// not specify a namespace (i.e., `Namespace==\"\"`) and clusterScope is\n// true or (d2) the request specifies a namespace and least one member\n// of namespaces matches the request's namespace.\ntype ResourcePolicyRule struct {\n\t// `verbs` is a list of matching verbs and may not be empty.\n\t// \"*\" matches all verbs and, if present, must be the only entry.\n\t// +listType=set\n\t// Required.\n\tVerbs []string `json:\"verbs\" protobuf:\"bytes,1,rep,name=verbs\"`\n\n\t// `apiGroups` is a list of matching API groups and may not be empty.\n\t// \"*\" matches all API groups and, if present, must be the only entry.\n\t// +listType=set\n\t// Required.\n\tAPIGroups []string `json:\"apiGroups\" protobuf:\"bytes,2,rep,name=apiGroups\"`\n\n\t// `resources` is a list of matching resources (i.e., lowercase\n\t// and plural) with, if desired, subresource.  For example, [\n\t// \"services\", \"nodes/status\" ].  This list may not be empty.\n\t// \"*\" matches all resources and, if present, must be the only entry.\n\t// Required.\n\t// +listType=set\n\tResources []string `json:\"resources\" protobuf:\"bytes,3,rep,name=resources\"`\n\n\t// `clusterScope` indicates whether to match requests that do not\n\t// specify a namespace (which happens either because the resource\n\t// is not namespaced or the request targets all namespaces).\n\t// If this field is omitted or false then the `namespaces` field\n\t// must contain a non-empty list.\n\t// +optional\n\tClusterScope bool `json:\"clusterScope,omitempty\" protobuf:\"varint,4,opt,name=clusterScope\"`\n\n\t// `namespaces` is a list of target namespaces that restricts\n\t// matches.  A request that specifies a target namespace matches\n\t// only if either (a) this list contains that target namespace or\n\t// (b) this list contains \"*\".  Note that \"*\" matches any\n\t// specified namespace but does not match a request that _does\n\t// not specify_ a namespace (see the `clusterScope` field for\n\t// that).\n\t// This list may be empty, but only if `clusterScope` is true.\n\t// +optional\n\t// +listType=set\n\tNamespaces []string `json:\"namespaces\" protobuf:\"bytes,5,rep,name=namespaces\"`\n}\n\n// NonResourcePolicyRule is a predicate that matches non-resource requests according to their verb and the\n// target non-resource URL. A NonResourcePolicyRule matches a request if and only if both (a) at least one member\n// of verbs matches the request and (b) at least one member of nonResourceURLs matches the request.\ntype NonResourcePolicyRule struct {\n\t// `verbs` is a list of matching verbs and may not be empty.\n\t// \"*\" matches all verbs. If it is present, it must be the only entry.\n\t// +listType=set\n\t// Required.\n\tVerbs []string `json:\"verbs\" protobuf:\"bytes,1,rep,name=verbs\"`\n\t// `nonResourceURLs` is a set of url prefixes that a user should have access to and may not be empty.\n\t// For example:\n\t//   - \"/healthz\" is legal\n\t//   - \"/hea*\" is illegal\n\t//   - \"/hea\" is legal but matches nothing\n\t//   - \"/hea/*\" also matches nothing\n\t//   - \"/healthz/*\" matches all per-component health checks.\n\t// \"*\" matches all non-resource urls. if it is present, it must be the only entry.\n\t// +listType=set\n\t// Required.\n\tNonResourceURLs []string `json:\"nonResourceURLs\" protobuf:\"bytes,6,rep,name=nonResourceURLs\"`\n}\n\n// FlowSchemaStatus represents the current state of a FlowSchema.\ntype FlowSchemaStatus struct {\n\t// `conditions` is a list of the current states of FlowSchema.\n\t// +listType=map\n\t// +listMapKey=type\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\t// +optional\n\tConditions []FlowSchemaCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n}\n\n// FlowSchemaCondition describes conditions for a FlowSchema.\ntype FlowSchemaCondition struct {\n\t// `type` is the type of the condition.\n\t// Required.\n\tType FlowSchemaConditionType `json:\"type,omitempty\" protobuf:\"bytes,1,opt,name=type\"`\n\t// `status` is the status of the condition.\n\t// Can be True, False, Unknown.\n\t// Required.\n\tStatus ConditionStatus `json:\"status,omitempty\" protobuf:\"bytes,2,opt,name=status\"`\n\t// `lastTransitionTime` is the last time the condition transitioned from one status to another.\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\t// `reason` is a unique, one-word, CamelCase reason for the condition's last transition.\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// `message` is a human-readable message indicating details about last transition.\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// FlowSchemaConditionType is a valid value for FlowSchemaStatusCondition.Type\ntype FlowSchemaConditionType string\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.26\n// +k8s:prerelease-lifecycle-gen:replacement=flowcontrol.apiserver.k8s.io,v1,PriorityLevelConfiguration\n\n// PriorityLevelConfiguration represents the configuration of a priority level.\ntype PriorityLevelConfiguration struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// `metadata` is the standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// `spec` is the specification of the desired behavior of a \"request-priority\".\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec PriorityLevelConfigurationSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\t// `status` is the current status of a \"request-priority\".\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus PriorityLevelConfigurationStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.26\n// +k8s:prerelease-lifecycle-gen:replacement=flowcontrol.apiserver.k8s.io,v1,PriorityLevelConfigurationList\n\n// PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects.\ntype PriorityLevelConfigurationList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// `metadata` is the standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// `items` is a list of request-priorities.\n\tItems []PriorityLevelConfiguration `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// PriorityLevelConfigurationSpec specifies the configuration of a priority level.\n// +union\ntype PriorityLevelConfigurationSpec struct {\n\t// `type` indicates whether this priority level is subject to\n\t// limitation on request execution.  A value of `\"Exempt\"` means\n\t// that requests of this priority level are not subject to a limit\n\t// (and thus are never queued) and do not detract from the\n\t// capacity made available to other priority levels.  A value of\n\t// `\"Limited\"` means that (a) requests of this priority level\n\t// _are_ subject to limits and (b) some of the server's limited\n\t// capacity is made available exclusively to this priority level.\n\t// Required.\n\t// +unionDiscriminator\n\tType PriorityLevelEnablement `json:\"type\" protobuf:\"bytes,1,opt,name=type\"`\n\n\t// `limited` specifies how requests are handled for a Limited priority level.\n\t// This field must be non-empty if and only if `type` is `\"Limited\"`.\n\t// +optional\n\tLimited *LimitedPriorityLevelConfiguration `json:\"limited,omitempty\" protobuf:\"bytes,2,opt,name=limited\"`\n\n\t// `exempt` specifies how requests are handled for an exempt priority level.\n\t// This field MUST be empty if `type` is `\"Limited\"`.\n\t// This field MAY be non-empty if `type` is `\"Exempt\"`.\n\t// If empty and `type` is `\"Exempt\"` then the default values\n\t// for `ExemptPriorityLevelConfiguration` apply.\n\t// +optional\n\tExempt *ExemptPriorityLevelConfiguration `json:\"exempt,omitempty\" protobuf:\"bytes,3,opt,name=exempt\"`\n}\n\n// PriorityLevelEnablement indicates whether limits on execution are enabled for the priority level\ntype PriorityLevelEnablement string\n\n// Supported priority level enablement values.\nconst (\n\t// PriorityLevelEnablementExempt means that requests are not subject to limits\n\tPriorityLevelEnablementExempt PriorityLevelEnablement = \"Exempt\"\n\n\t// PriorityLevelEnablementLimited means that requests are subject to limits\n\tPriorityLevelEnablementLimited PriorityLevelEnablement = \"Limited\"\n)\n\n// LimitedPriorityLevelConfiguration specifies how to handle requests that are subject to limits.\n// It addresses two issues:\n//   - How are requests for this priority level limited?\n//   - What should be done with requests that exceed the limit?\ntype LimitedPriorityLevelConfiguration struct {\n\t// `nominalConcurrencyShares` (NCS) contributes to the computation of the\n\t// NominalConcurrencyLimit (NominalCL) of this level.\n\t// This is the number of execution seats available at this priority level.\n\t// This is used both for requests dispatched from this priority level\n\t// as well as requests dispatched from other priority levels\n\t// borrowing seats from this level.\n\t// The server's concurrency limit (ServerCL) is divided among the\n\t// Limited priority levels in proportion to their NCS values:\n\t//\n\t// NominalCL(i)  = ceil( ServerCL * NCS(i) / sum_ncs )\n\t// sum_ncs = sum[priority level k] NCS(k)\n\t//\n\t// Bigger numbers mean a larger nominal concurrency limit,\n\t// at the expense of every other priority level.\n\t// This field has a default value of 30.\n\t// +optional\n\tNominalConcurrencyShares int32 `json:\"nominalConcurrencyShares\" protobuf:\"varint,1,opt,name=nominalConcurrencyShares\"`\n\n\t// `limitResponse` indicates what to do with requests that can not be executed right now\n\tLimitResponse LimitResponse `json:\"limitResponse,omitempty\" protobuf:\"bytes,2,opt,name=limitResponse\"`\n\n\t// `lendablePercent` prescribes the fraction of the level's NominalCL that\n\t// can be borrowed by other priority levels. The value of this\n\t// field must be between 0 and 100, inclusive, and it defaults to 0.\n\t// The number of seats that other levels can borrow from this level, known\n\t// as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\n\t//\n\t// LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )\n\t//\n\t// +optional\n\tLendablePercent *int32 `json:\"lendablePercent,omitempty\" protobuf:\"varint,3,opt,name=lendablePercent\"`\n\n\t// `borrowingLimitPercent`, if present, configures a limit on how many\n\t// seats this priority level can borrow from other priority levels.\n\t// The limit is known as this level's BorrowingConcurrencyLimit\n\t// (BorrowingCL) and is a limit on the total number of seats that this\n\t// level may borrow at any one time.\n\t// This field holds the ratio of that limit to the level's nominal\n\t// concurrency limit. When this field is non-nil, it must hold a\n\t// non-negative integer and the limit is calculated as follows.\n\t//\n\t// BorrowingCL(i) = round( NominalCL(i) * borrowingLimitPercent(i)/100.0 )\n\t//\n\t// The value of this field can be more than 100, implying that this\n\t// priority level can borrow a number of seats that is greater than\n\t// its own nominal concurrency limit (NominalCL).\n\t// When this field is left `nil`, the limit is effectively infinite.\n\t// +optional\n\tBorrowingLimitPercent *int32 `json:\"borrowingLimitPercent,omitempty\" protobuf:\"varint,4,opt,name=borrowingLimitPercent\"`\n}\n\n// ExemptPriorityLevelConfiguration describes the configurable aspects\n// of the handling of exempt requests.\n// In the mandatory exempt configuration object the values in the fields\n// here can be modified by authorized users, unlike the rest of the `spec`.\ntype ExemptPriorityLevelConfiguration struct {\n\t// `nominalConcurrencyShares` (NCS) contributes to the computation of the\n\t// NominalConcurrencyLimit (NominalCL) of this level.\n\t// This is the number of execution seats nominally reserved for this priority level.\n\t// This DOES NOT limit the dispatching from this priority level\n\t// but affects the other priority levels through the borrowing mechanism.\n\t// The server's concurrency limit (ServerCL) is divided among all the\n\t// priority levels in proportion to their NCS values:\n\t//\n\t// NominalCL(i)  = ceil( ServerCL * NCS(i) / sum_ncs )\n\t// sum_ncs = sum[priority level k] NCS(k)\n\t//\n\t// Bigger numbers mean a larger nominal concurrency limit,\n\t// at the expense of every other priority level.\n\t// This field has a default value of zero.\n\t// +optional\n\tNominalConcurrencyShares *int32 `json:\"nominalConcurrencyShares,omitempty\" protobuf:\"varint,1,opt,name=nominalConcurrencyShares\"`\n\t// `lendablePercent` prescribes the fraction of the level's NominalCL that\n\t// can be borrowed by other priority levels.  This value of this\n\t// field must be between 0 and 100, inclusive, and it defaults to 0.\n\t// The number of seats that other levels can borrow from this level, known\n\t// as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\n\t//\n\t// LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )\n\t//\n\t// +optional\n\tLendablePercent *int32 `json:\"lendablePercent,omitempty\" protobuf:\"varint,2,opt,name=lendablePercent\"`\n\t// The `BorrowingCL` of an Exempt priority level is implicitly `ServerCL`.\n\t// In other words, an exempt priority level\n\t// has no meaningful limit on how much it borrows.\n\t// There is no explicit representation of that here.\n}\n\n// LimitResponse defines how to handle requests that can not be executed right now.\n// +union\ntype LimitResponse struct {\n\t// `type` is \"Queue\" or \"Reject\".\n\t// \"Queue\" means that requests that can not be executed upon arrival\n\t// are held in a queue until they can be executed or a queuing limit\n\t// is reached.\n\t// \"Reject\" means that requests that can not be executed upon arrival\n\t// are rejected.\n\t// Required.\n\t// +unionDiscriminator\n\tType LimitResponseType `json:\"type\" protobuf:\"bytes,1,opt,name=type\"`\n\n\t// `queuing` holds the configuration parameters for queuing.\n\t// This field may be non-empty only if `type` is `\"Queue\"`.\n\t// +optional\n\tQueuing *QueuingConfiguration `json:\"queuing,omitempty\" protobuf:\"bytes,2,opt,name=queuing\"`\n}\n\n// LimitResponseType identifies how a Limited priority level handles a request that can not be executed right now\ntype LimitResponseType string\n\n// Supported limit responses.\nconst (\n\t// LimitResponseTypeQueue means that requests that can not be executed right now are queued until they can be executed or a queuing limit is hit\n\tLimitResponseTypeQueue LimitResponseType = \"Queue\"\n\n\t// LimitResponseTypeReject means that requests that can not be executed right now are rejected\n\tLimitResponseTypeReject LimitResponseType = \"Reject\"\n)\n\n// QueuingConfiguration holds the configuration parameters for queuing\ntype QueuingConfiguration struct {\n\t// `queues` is the number of queues for this priority level. The\n\t// queues exist independently at each apiserver. The value must be\n\t// positive.  Setting it to 1 effectively precludes\n\t// shufflesharding and thus makes the distinguisher method of\n\t// associated flow schemas irrelevant.  This field has a default\n\t// value of 64.\n\t// +optional\n\tQueues int32 `json:\"queues\" protobuf:\"varint,1,opt,name=queues\"`\n\n\t// `handSize` is a small positive number that configures the\n\t// shuffle sharding of requests into queues.  When enqueuing a request\n\t// at this priority level the request's flow identifier (a string\n\t// pair) is hashed and the hash value is used to shuffle the list\n\t// of queues and deal a hand of the size specified here.  The\n\t// request is put into one of the shortest queues in that hand.\n\t// `handSize` must be no larger than `queues`, and should be\n\t// significantly smaller (so that a few heavy flows do not\n\t// saturate most of the queues).  See the user-facing\n\t// documentation for more extensive guidance on setting this\n\t// field.  This field has a default value of 8.\n\t// +optional\n\tHandSize int32 `json:\"handSize\" protobuf:\"varint,2,opt,name=handSize\"`\n\n\t// `queueLengthLimit` is the maximum number of requests allowed to\n\t// be waiting in a given queue of this priority level at a time;\n\t// excess requests are rejected.  This value must be positive.  If\n\t// not specified, it will be defaulted to 50.\n\t// +optional\n\tQueueLengthLimit int32 `json:\"queueLengthLimit\" protobuf:\"varint,3,opt,name=queueLengthLimit\"`\n}\n\n// PriorityLevelConfigurationConditionType is a valid value for PriorityLevelConfigurationStatusCondition.Type\ntype PriorityLevelConfigurationConditionType string\n\n// PriorityLevelConfigurationStatus represents the current state of a \"request-priority\".\ntype PriorityLevelConfigurationStatus struct {\n\t// `conditions` is the current state of \"request-priority\".\n\t// +listType=map\n\t// +listMapKey=type\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\t// +optional\n\tConditions []PriorityLevelConfigurationCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n}\n\n// PriorityLevelConfigurationCondition defines the condition of priority level.\ntype PriorityLevelConfigurationCondition struct {\n\t// `type` is the type of the condition.\n\t// Required.\n\tType PriorityLevelConfigurationConditionType `json:\"type,omitempty\" protobuf:\"bytes,1,opt,name=type\"`\n\t// `status` is the status of the condition.\n\t// Can be True, False, Unknown.\n\t// Required.\n\tStatus ConditionStatus `json:\"status,omitempty\" protobuf:\"bytes,2,opt,name=status\"`\n\t// `lastTransitionTime` is the last time the condition transitioned from one status to another.\n\tLastTransitionTime metav1.Time `json:\"lastTransitionTime,omitempty\" protobuf:\"bytes,3,opt,name=lastTransitionTime\"`\n\t// `reason` is a unique, one-word, CamelCase reason for the condition's last transition.\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// `message` is a human-readable message indicating details about last transition.\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// ConditionStatus is the status of the condition.\ntype ConditionStatus string\n\n// These are valid condition statuses. \"ConditionTrue\" means a resource is in the condition.\n// \"ConditionFalse\" means a resource is not in the condition. \"ConditionUnknown\" means kubernetes\n// can't decide if a resource is in the condition or not. In the future, we could add other\n// intermediate conditions, e.g. ConditionDegraded.\nconst (\n\tConditionTrue    ConditionStatus = \"True\"\n\tConditionFalse   ConditionStatus = \"False\"\n\tConditionUnknown ConditionStatus = \"Unknown\"\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta3/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta3\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_ExemptPriorityLevelConfiguration = map[string]string{\n\t\"\":                         \"ExemptPriorityLevelConfiguration describes the configurable aspects of the handling of exempt requests. In the mandatory exempt configuration object the values in the fields here can be modified by authorized users, unlike the rest of the `spec`.\",\n\t\"nominalConcurrencyShares\": \"`nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats nominally reserved for this priority level. This DOES NOT limit the dispatching from this priority level but affects the other priority levels through the borrowing mechanism. The server's concurrency limit (ServerCL) is divided among all the priority levels in proportion to their NCS values:\\n\\nNominalCL(i)  = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k)\\n\\nBigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of zero.\",\n\t\"lendablePercent\":          \"`lendablePercent` prescribes the fraction of the level's NominalCL that can be borrowed by other priority levels.  This value of this field must be between 0 and 100, inclusive, and it defaults to 0. The number of seats that other levels can borrow from this level, known as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\\n\\nLendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )\",\n}\n\nfunc (ExemptPriorityLevelConfiguration) SwaggerDoc() map[string]string {\n\treturn map_ExemptPriorityLevelConfiguration\n}\n\nvar map_FlowDistinguisherMethod = map[string]string{\n\t\"\":     \"FlowDistinguisherMethod specifies the method of a flow distinguisher.\",\n\t\"type\": \"`type` is the type of flow distinguisher method The supported types are \\\"ByUser\\\" and \\\"ByNamespace\\\". Required.\",\n}\n\nfunc (FlowDistinguisherMethod) SwaggerDoc() map[string]string {\n\treturn map_FlowDistinguisherMethod\n}\n\nvar map_FlowSchema = map[string]string{\n\t\"\":         \"FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of inbound API requests with similar attributes and is identified by a pair of strings: the name of the FlowSchema and a \\\"flow distinguisher\\\".\",\n\t\"metadata\": \"`metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"`spec` is the specification of the desired behavior of a FlowSchema. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"`status` is the current status of a FlowSchema. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (FlowSchema) SwaggerDoc() map[string]string {\n\treturn map_FlowSchema\n}\n\nvar map_FlowSchemaCondition = map[string]string{\n\t\"\":                   \"FlowSchemaCondition describes conditions for a FlowSchema.\",\n\t\"type\":               \"`type` is the type of the condition. Required.\",\n\t\"status\":             \"`status` is the status of the condition. Can be True, False, Unknown. Required.\",\n\t\"lastTransitionTime\": \"`lastTransitionTime` is the last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"`reason` is a unique, one-word, CamelCase reason for the condition's last transition.\",\n\t\"message\":            \"`message` is a human-readable message indicating details about last transition.\",\n}\n\nfunc (FlowSchemaCondition) SwaggerDoc() map[string]string {\n\treturn map_FlowSchemaCondition\n}\n\nvar map_FlowSchemaList = map[string]string{\n\t\"\":         \"FlowSchemaList is a list of FlowSchema objects.\",\n\t\"metadata\": \"`metadata` is the standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"`items` is a list of FlowSchemas.\",\n}\n\nfunc (FlowSchemaList) SwaggerDoc() map[string]string {\n\treturn map_FlowSchemaList\n}\n\nvar map_FlowSchemaSpec = map[string]string{\n\t\"\":                           \"FlowSchemaSpec describes how the FlowSchema's specification looks like.\",\n\t\"priorityLevelConfiguration\": \"`priorityLevelConfiguration` should reference a PriorityLevelConfiguration in the cluster. If the reference cannot be resolved, the FlowSchema will be ignored and marked as invalid in its status. Required.\",\n\t\"matchingPrecedence\":         \"`matchingPrecedence` is used to choose among the FlowSchemas that match a given request. The chosen FlowSchema is among those with the numerically lowest (which we take to be logically highest) MatchingPrecedence.  Each MatchingPrecedence value must be ranged in [1,10000]. Note that if the precedence is not specified, it will be set to 1000 as default.\",\n\t\"distinguisherMethod\":        \"`distinguisherMethod` defines how to compute the flow distinguisher for requests that match this schema. `nil` specifies that the distinguisher is disabled and thus will always be the empty string.\",\n\t\"rules\":                      \"`rules` describes which requests will match this flow schema. This FlowSchema matches a request if and only if at least one member of rules matches the request. if it is an empty slice, there will be no requests matching the FlowSchema.\",\n}\n\nfunc (FlowSchemaSpec) SwaggerDoc() map[string]string {\n\treturn map_FlowSchemaSpec\n}\n\nvar map_FlowSchemaStatus = map[string]string{\n\t\"\":           \"FlowSchemaStatus represents the current state of a FlowSchema.\",\n\t\"conditions\": \"`conditions` is a list of the current states of FlowSchema.\",\n}\n\nfunc (FlowSchemaStatus) SwaggerDoc() map[string]string {\n\treturn map_FlowSchemaStatus\n}\n\nvar map_GroupSubject = map[string]string{\n\t\"\":     \"GroupSubject holds detailed information for group-kind subject.\",\n\t\"name\": \"name is the user group that matches, or \\\"*\\\" to match all user groups. See https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go for some well-known group names. Required.\",\n}\n\nfunc (GroupSubject) SwaggerDoc() map[string]string {\n\treturn map_GroupSubject\n}\n\nvar map_LimitResponse = map[string]string{\n\t\"\":        \"LimitResponse defines how to handle requests that can not be executed right now.\",\n\t\"type\":    \"`type` is \\\"Queue\\\" or \\\"Reject\\\". \\\"Queue\\\" means that requests that can not be executed upon arrival are held in a queue until they can be executed or a queuing limit is reached. \\\"Reject\\\" means that requests that can not be executed upon arrival are rejected. Required.\",\n\t\"queuing\": \"`queuing` holds the configuration parameters for queuing. This field may be non-empty only if `type` is `\\\"Queue\\\"`.\",\n}\n\nfunc (LimitResponse) SwaggerDoc() map[string]string {\n\treturn map_LimitResponse\n}\n\nvar map_LimitedPriorityLevelConfiguration = map[string]string{\n\t\"\":                         \"LimitedPriorityLevelConfiguration specifies how to handle requests that are subject to limits. It addresses two issues:\\n  - How are requests for this priority level limited?\\n  - What should be done with requests that exceed the limit?\",\n\t\"nominalConcurrencyShares\": \"`nominalConcurrencyShares` (NCS) contributes to the computation of the NominalConcurrencyLimit (NominalCL) of this level. This is the number of execution seats available at this priority level. This is used both for requests dispatched from this priority level as well as requests dispatched from other priority levels borrowing seats from this level. The server's concurrency limit (ServerCL) is divided among the Limited priority levels in proportion to their NCS values:\\n\\nNominalCL(i)  = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k)\\n\\nBigger numbers mean a larger nominal concurrency limit, at the expense of every other priority level. This field has a default value of 30.\",\n\t\"limitResponse\":            \"`limitResponse` indicates what to do with requests that can not be executed right now\",\n\t\"lendablePercent\":          \"`lendablePercent` prescribes the fraction of the level's NominalCL that can be borrowed by other priority levels. The value of this field must be between 0 and 100, inclusive, and it defaults to 0. The number of seats that other levels can borrow from this level, known as this level's LendableConcurrencyLimit (LendableCL), is defined as follows.\\n\\nLendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )\",\n\t\"borrowingLimitPercent\":    \"`borrowingLimitPercent`, if present, configures a limit on how many seats this priority level can borrow from other priority levels. The limit is known as this level's BorrowingConcurrencyLimit (BorrowingCL) and is a limit on the total number of seats that this level may borrow at any one time. This field holds the ratio of that limit to the level's nominal concurrency limit. When this field is non-nil, it must hold a non-negative integer and the limit is calculated as follows.\\n\\nBorrowingCL(i) = round( NominalCL(i) * borrowingLimitPercent(i)/100.0 )\\n\\nThe value of this field can be more than 100, implying that this priority level can borrow a number of seats that is greater than its own nominal concurrency limit (NominalCL). When this field is left `nil`, the limit is effectively infinite.\",\n}\n\nfunc (LimitedPriorityLevelConfiguration) SwaggerDoc() map[string]string {\n\treturn map_LimitedPriorityLevelConfiguration\n}\n\nvar map_NonResourcePolicyRule = map[string]string{\n\t\"\":                \"NonResourcePolicyRule is a predicate that matches non-resource requests according to their verb and the target non-resource URL. A NonResourcePolicyRule matches a request if and only if both (a) at least one member of verbs matches the request and (b) at least one member of nonResourceURLs matches the request.\",\n\t\"verbs\":           \"`verbs` is a list of matching verbs and may not be empty. \\\"*\\\" matches all verbs. If it is present, it must be the only entry. Required.\",\n\t\"nonResourceURLs\": \"`nonResourceURLs` is a set of url prefixes that a user should have access to and may not be empty. For example:\\n  - \\\"/healthz\\\" is legal\\n  - \\\"/hea*\\\" is illegal\\n  - \\\"/hea\\\" is legal but matches nothing\\n  - \\\"/hea/*\\\" also matches nothing\\n  - \\\"/healthz/*\\\" matches all per-component health checks.\\n\\\"*\\\" matches all non-resource urls. if it is present, it must be the only entry. Required.\",\n}\n\nfunc (NonResourcePolicyRule) SwaggerDoc() map[string]string {\n\treturn map_NonResourcePolicyRule\n}\n\nvar map_PolicyRulesWithSubjects = map[string]string{\n\t\"\":                 \"PolicyRulesWithSubjects prescribes a test that applies to a request to an apiserver. The test considers the subject making the request, the verb being requested, and the resource to be acted upon. This PolicyRulesWithSubjects matches a request if and only if both (a) at least one member of subjects matches the request and (b) at least one member of resourceRules or nonResourceRules matches the request.\",\n\t\"subjects\":         \"subjects is the list of normal user, serviceaccount, or group that this rule cares about. There must be at least one member in this slice. A slice that includes both the system:authenticated and system:unauthenticated user groups matches every request. Required.\",\n\t\"resourceRules\":    \"`resourceRules` is a slice of ResourcePolicyRules that identify matching requests according to their verb and the target resource. At least one of `resourceRules` and `nonResourceRules` has to be non-empty.\",\n\t\"nonResourceRules\": \"`nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests according to their verb and the target non-resource URL.\",\n}\n\nfunc (PolicyRulesWithSubjects) SwaggerDoc() map[string]string {\n\treturn map_PolicyRulesWithSubjects\n}\n\nvar map_PriorityLevelConfiguration = map[string]string{\n\t\"\":         \"PriorityLevelConfiguration represents the configuration of a priority level.\",\n\t\"metadata\": \"`metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"`spec` is the specification of the desired behavior of a \\\"request-priority\\\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"`status` is the current status of a \\\"request-priority\\\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (PriorityLevelConfiguration) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfiguration\n}\n\nvar map_PriorityLevelConfigurationCondition = map[string]string{\n\t\"\":                   \"PriorityLevelConfigurationCondition defines the condition of priority level.\",\n\t\"type\":               \"`type` is the type of the condition. Required.\",\n\t\"status\":             \"`status` is the status of the condition. Can be True, False, Unknown. Required.\",\n\t\"lastTransitionTime\": \"`lastTransitionTime` is the last time the condition transitioned from one status to another.\",\n\t\"reason\":             \"`reason` is a unique, one-word, CamelCase reason for the condition's last transition.\",\n\t\"message\":            \"`message` is a human-readable message indicating details about last transition.\",\n}\n\nfunc (PriorityLevelConfigurationCondition) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfigurationCondition\n}\n\nvar map_PriorityLevelConfigurationList = map[string]string{\n\t\"\":         \"PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects.\",\n\t\"metadata\": \"`metadata` is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"`items` is a list of request-priorities.\",\n}\n\nfunc (PriorityLevelConfigurationList) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfigurationList\n}\n\nvar map_PriorityLevelConfigurationReference = map[string]string{\n\t\"\":     \"PriorityLevelConfigurationReference contains information that points to the \\\"request-priority\\\" being used.\",\n\t\"name\": \"`name` is the name of the priority level configuration being referenced Required.\",\n}\n\nfunc (PriorityLevelConfigurationReference) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfigurationReference\n}\n\nvar map_PriorityLevelConfigurationSpec = map[string]string{\n\t\"\":        \"PriorityLevelConfigurationSpec specifies the configuration of a priority level.\",\n\t\"type\":    \"`type` indicates whether this priority level is subject to limitation on request execution.  A value of `\\\"Exempt\\\"` means that requests of this priority level are not subject to a limit (and thus are never queued) and do not detract from the capacity made available to other priority levels.  A value of `\\\"Limited\\\"` means that (a) requests of this priority level _are_ subject to limits and (b) some of the server's limited capacity is made available exclusively to this priority level. Required.\",\n\t\"limited\": \"`limited` specifies how requests are handled for a Limited priority level. This field must be non-empty if and only if `type` is `\\\"Limited\\\"`.\",\n\t\"exempt\":  \"`exempt` specifies how requests are handled for an exempt priority level. This field MUST be empty if `type` is `\\\"Limited\\\"`. This field MAY be non-empty if `type` is `\\\"Exempt\\\"`. If empty and `type` is `\\\"Exempt\\\"` then the default values for `ExemptPriorityLevelConfiguration` apply.\",\n}\n\nfunc (PriorityLevelConfigurationSpec) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfigurationSpec\n}\n\nvar map_PriorityLevelConfigurationStatus = map[string]string{\n\t\"\":           \"PriorityLevelConfigurationStatus represents the current state of a \\\"request-priority\\\".\",\n\t\"conditions\": \"`conditions` is the current state of \\\"request-priority\\\".\",\n}\n\nfunc (PriorityLevelConfigurationStatus) SwaggerDoc() map[string]string {\n\treturn map_PriorityLevelConfigurationStatus\n}\n\nvar map_QueuingConfiguration = map[string]string{\n\t\"\":                 \"QueuingConfiguration holds the configuration parameters for queuing\",\n\t\"queues\":           \"`queues` is the number of queues for this priority level. The queues exist independently at each apiserver. The value must be positive.  Setting it to 1 effectively precludes shufflesharding and thus makes the distinguisher method of associated flow schemas irrelevant.  This field has a default value of 64.\",\n\t\"handSize\":         \"`handSize` is a small positive number that configures the shuffle sharding of requests into queues.  When enqueuing a request at this priority level the request's flow identifier (a string pair) is hashed and the hash value is used to shuffle the list of queues and deal a hand of the size specified here.  The request is put into one of the shortest queues in that hand. `handSize` must be no larger than `queues`, and should be significantly smaller (so that a few heavy flows do not saturate most of the queues).  See the user-facing documentation for more extensive guidance on setting this field.  This field has a default value of 8.\",\n\t\"queueLengthLimit\": \"`queueLengthLimit` is the maximum number of requests allowed to be waiting in a given queue of this priority level at a time; excess requests are rejected.  This value must be positive.  If not specified, it will be defaulted to 50.\",\n}\n\nfunc (QueuingConfiguration) SwaggerDoc() map[string]string {\n\treturn map_QueuingConfiguration\n}\n\nvar map_ResourcePolicyRule = map[string]string{\n\t\"\":             \"ResourcePolicyRule is a predicate that matches some resource requests, testing the request's verb and the target resource. A ResourcePolicyRule matches a resource request if and only if: (a) at least one member of verbs matches the request, (b) at least one member of apiGroups matches the request, (c) at least one member of resources matches the request, and (d) either (d1) the request does not specify a namespace (i.e., `Namespace==\\\"\\\"`) and clusterScope is true or (d2) the request specifies a namespace and least one member of namespaces matches the request's namespace.\",\n\t\"verbs\":        \"`verbs` is a list of matching verbs and may not be empty. \\\"*\\\" matches all verbs and, if present, must be the only entry. Required.\",\n\t\"apiGroups\":    \"`apiGroups` is a list of matching API groups and may not be empty. \\\"*\\\" matches all API groups and, if present, must be the only entry. Required.\",\n\t\"resources\":    \"`resources` is a list of matching resources (i.e., lowercase and plural) with, if desired, subresource.  For example, [ \\\"services\\\", \\\"nodes/status\\\" ].  This list may not be empty. \\\"*\\\" matches all resources and, if present, must be the only entry. Required.\",\n\t\"clusterScope\": \"`clusterScope` indicates whether to match requests that do not specify a namespace (which happens either because the resource is not namespaced or the request targets all namespaces). If this field is omitted or false then the `namespaces` field must contain a non-empty list.\",\n\t\"namespaces\":   \"`namespaces` is a list of target namespaces that restricts matches.  A request that specifies a target namespace matches only if either (a) this list contains that target namespace or (b) this list contains \\\"*\\\".  Note that \\\"*\\\" matches any specified namespace but does not match a request that _does not specify_ a namespace (see the `clusterScope` field for that). This list may be empty, but only if `clusterScope` is true.\",\n}\n\nfunc (ResourcePolicyRule) SwaggerDoc() map[string]string {\n\treturn map_ResourcePolicyRule\n}\n\nvar map_ServiceAccountSubject = map[string]string{\n\t\"\":          \"ServiceAccountSubject holds detailed information for service-account-kind subject.\",\n\t\"namespace\": \"`namespace` is the namespace of matching ServiceAccount objects. Required.\",\n\t\"name\":      \"`name` is the name of matching ServiceAccount objects, or \\\"*\\\" to match regardless of name. Required.\",\n}\n\nfunc (ServiceAccountSubject) SwaggerDoc() map[string]string {\n\treturn map_ServiceAccountSubject\n}\n\nvar map_Subject = map[string]string{\n\t\"\":               \"Subject matches the originator of a request, as identified by the request authentication system. There are three ways of matching an originator; by user, group, or service account.\",\n\t\"kind\":           \"`kind` indicates which one of the other fields is non-empty. Required\",\n\t\"user\":           \"`user` matches based on username.\",\n\t\"group\":          \"`group` matches based on user group name.\",\n\t\"serviceAccount\": \"`serviceAccount` matches ServiceAccounts.\",\n}\n\nfunc (Subject) SwaggerDoc() map[string]string {\n\treturn map_Subject\n}\n\nvar map_UserSubject = map[string]string{\n\t\"\":     \"UserSubject holds detailed information for user-kind subject.\",\n\t\"name\": \"`name` is the username that matches, or \\\"*\\\" to match all usernames. Required.\",\n}\n\nfunc (UserSubject) SwaggerDoc() map[string]string {\n\treturn map_UserSubject\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta3/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta3\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExemptPriorityLevelConfiguration) DeepCopyInto(out *ExemptPriorityLevelConfiguration) {\n\t*out = *in\n\tif in.NominalConcurrencyShares != nil {\n\t\tin, out := &in.NominalConcurrencyShares, &out.NominalConcurrencyShares\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.LendablePercent != nil {\n\t\tin, out := &in.LendablePercent, &out.LendablePercent\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExemptPriorityLevelConfiguration.\nfunc (in *ExemptPriorityLevelConfiguration) DeepCopy() *ExemptPriorityLevelConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExemptPriorityLevelConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowDistinguisherMethod) DeepCopyInto(out *FlowDistinguisherMethod) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowDistinguisherMethod.\nfunc (in *FlowDistinguisherMethod) DeepCopy() *FlowDistinguisherMethod {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowDistinguisherMethod)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowSchema) DeepCopyInto(out *FlowSchema) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowSchema.\nfunc (in *FlowSchema) DeepCopy() *FlowSchema {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowSchema)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *FlowSchema) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowSchemaCondition) DeepCopyInto(out *FlowSchemaCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowSchemaCondition.\nfunc (in *FlowSchemaCondition) DeepCopy() *FlowSchemaCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowSchemaCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowSchemaList) DeepCopyInto(out *FlowSchemaList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]FlowSchema, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowSchemaList.\nfunc (in *FlowSchemaList) DeepCopy() *FlowSchemaList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowSchemaList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *FlowSchemaList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowSchemaSpec) DeepCopyInto(out *FlowSchemaSpec) {\n\t*out = *in\n\tout.PriorityLevelConfiguration = in.PriorityLevelConfiguration\n\tif in.DistinguisherMethod != nil {\n\t\tin, out := &in.DistinguisherMethod, &out.DistinguisherMethod\n\t\t*out = new(FlowDistinguisherMethod)\n\t\t**out = **in\n\t}\n\tif in.Rules != nil {\n\t\tin, out := &in.Rules, &out.Rules\n\t\t*out = make([]PolicyRulesWithSubjects, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowSchemaSpec.\nfunc (in *FlowSchemaSpec) DeepCopy() *FlowSchemaSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowSchemaSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FlowSchemaStatus) DeepCopyInto(out *FlowSchemaStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]FlowSchemaCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowSchemaStatus.\nfunc (in *FlowSchemaStatus) DeepCopy() *FlowSchemaStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FlowSchemaStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *GroupSubject) DeepCopyInto(out *GroupSubject) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupSubject.\nfunc (in *GroupSubject) DeepCopy() *GroupSubject {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(GroupSubject)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LimitResponse) DeepCopyInto(out *LimitResponse) {\n\t*out = *in\n\tif in.Queuing != nil {\n\t\tin, out := &in.Queuing, &out.Queuing\n\t\t*out = new(QueuingConfiguration)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LimitResponse.\nfunc (in *LimitResponse) DeepCopy() *LimitResponse {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LimitResponse)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LimitedPriorityLevelConfiguration) DeepCopyInto(out *LimitedPriorityLevelConfiguration) {\n\t*out = *in\n\tin.LimitResponse.DeepCopyInto(&out.LimitResponse)\n\tif in.LendablePercent != nil {\n\t\tin, out := &in.LendablePercent, &out.LendablePercent\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\tif in.BorrowingLimitPercent != nil {\n\t\tin, out := &in.BorrowingLimitPercent, &out.BorrowingLimitPercent\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LimitedPriorityLevelConfiguration.\nfunc (in *LimitedPriorityLevelConfiguration) DeepCopy() *LimitedPriorityLevelConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LimitedPriorityLevelConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NonResourcePolicyRule) DeepCopyInto(out *NonResourcePolicyRule) {\n\t*out = *in\n\tif in.Verbs != nil {\n\t\tin, out := &in.Verbs, &out.Verbs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.NonResourceURLs != nil {\n\t\tin, out := &in.NonResourceURLs, &out.NonResourceURLs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NonResourcePolicyRule.\nfunc (in *NonResourcePolicyRule) DeepCopy() *NonResourcePolicyRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NonResourcePolicyRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PolicyRulesWithSubjects) DeepCopyInto(out *PolicyRulesWithSubjects) {\n\t*out = *in\n\tif in.Subjects != nil {\n\t\tin, out := &in.Subjects, &out.Subjects\n\t\t*out = make([]Subject, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.ResourceRules != nil {\n\t\tin, out := &in.ResourceRules, &out.ResourceRules\n\t\t*out = make([]ResourcePolicyRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.NonResourceRules != nil {\n\t\tin, out := &in.NonResourceRules, &out.NonResourceRules\n\t\t*out = make([]NonResourcePolicyRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyRulesWithSubjects.\nfunc (in *PolicyRulesWithSubjects) DeepCopy() *PolicyRulesWithSubjects {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PolicyRulesWithSubjects)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfiguration) DeepCopyInto(out *PriorityLevelConfiguration) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfiguration.\nfunc (in *PriorityLevelConfiguration) DeepCopy() *PriorityLevelConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PriorityLevelConfiguration) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfigurationCondition) DeepCopyInto(out *PriorityLevelConfigurationCondition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfigurationCondition.\nfunc (in *PriorityLevelConfigurationCondition) DeepCopy() *PriorityLevelConfigurationCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfigurationCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfigurationList) DeepCopyInto(out *PriorityLevelConfigurationList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]PriorityLevelConfiguration, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfigurationList.\nfunc (in *PriorityLevelConfigurationList) DeepCopy() *PriorityLevelConfigurationList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfigurationList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PriorityLevelConfigurationList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfigurationReference) DeepCopyInto(out *PriorityLevelConfigurationReference) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfigurationReference.\nfunc (in *PriorityLevelConfigurationReference) DeepCopy() *PriorityLevelConfigurationReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfigurationReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfigurationSpec) DeepCopyInto(out *PriorityLevelConfigurationSpec) {\n\t*out = *in\n\tif in.Limited != nil {\n\t\tin, out := &in.Limited, &out.Limited\n\t\t*out = new(LimitedPriorityLevelConfiguration)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Exempt != nil {\n\t\tin, out := &in.Exempt, &out.Exempt\n\t\t*out = new(ExemptPriorityLevelConfiguration)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfigurationSpec.\nfunc (in *PriorityLevelConfigurationSpec) DeepCopy() *PriorityLevelConfigurationSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfigurationSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityLevelConfigurationStatus) DeepCopyInto(out *PriorityLevelConfigurationStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]PriorityLevelConfigurationCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityLevelConfigurationStatus.\nfunc (in *PriorityLevelConfigurationStatus) DeepCopy() *PriorityLevelConfigurationStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityLevelConfigurationStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *QueuingConfiguration) DeepCopyInto(out *QueuingConfiguration) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new QueuingConfiguration.\nfunc (in *QueuingConfiguration) DeepCopy() *QueuingConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(QueuingConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourcePolicyRule) DeepCopyInto(out *ResourcePolicyRule) {\n\t*out = *in\n\tif in.Verbs != nil {\n\t\tin, out := &in.Verbs, &out.Verbs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.APIGroups != nil {\n\t\tin, out := &in.APIGroups, &out.APIGroups\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Resources != nil {\n\t\tin, out := &in.Resources, &out.Resources\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Namespaces != nil {\n\t\tin, out := &in.Namespaces, &out.Namespaces\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourcePolicyRule.\nfunc (in *ResourcePolicyRule) DeepCopy() *ResourcePolicyRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourcePolicyRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ServiceAccountSubject) DeepCopyInto(out *ServiceAccountSubject) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceAccountSubject.\nfunc (in *ServiceAccountSubject) DeepCopy() *ServiceAccountSubject {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ServiceAccountSubject)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Subject) DeepCopyInto(out *Subject) {\n\t*out = *in\n\tif in.User != nil {\n\t\tin, out := &in.User, &out.User\n\t\t*out = new(UserSubject)\n\t\t**out = **in\n\t}\n\tif in.Group != nil {\n\t\tin, out := &in.Group, &out.Group\n\t\t*out = new(GroupSubject)\n\t\t**out = **in\n\t}\n\tif in.ServiceAccount != nil {\n\t\tin, out := &in.ServiceAccount, &out.ServiceAccount\n\t\t*out = new(ServiceAccountSubject)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Subject.\nfunc (in *Subject) DeepCopy() *Subject {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Subject)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *UserSubject) DeepCopyInto(out *UserSubject) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserSubject.\nfunc (in *UserSubject) DeepCopy() *UserSubject {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(UserSubject)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/flowcontrol/v1beta3/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1beta3\n\nimport (\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *FlowSchema) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 26\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *FlowSchema) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 29\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *FlowSchema) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"flowcontrol.apiserver.k8s.io\", Version: \"v1\", Kind: \"FlowSchema\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *FlowSchema) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 32\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *FlowSchemaList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 26\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *FlowSchemaList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 29\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *FlowSchemaList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"flowcontrol.apiserver.k8s.io\", Version: \"v1\", Kind: \"FlowSchemaList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *FlowSchemaList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 32\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *PriorityLevelConfiguration) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 26\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *PriorityLevelConfiguration) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 29\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *PriorityLevelConfiguration) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"flowcontrol.apiserver.k8s.io\", Version: \"v1\", Kind: \"PriorityLevelConfiguration\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *PriorityLevelConfiguration) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 32\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *PriorityLevelConfigurationList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 26\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *PriorityLevelConfigurationList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 29\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *PriorityLevelConfigurationList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"flowcontrol.apiserver.k8s.io\", Version: \"v1\", Kind: \"PriorityLevelConfigurationList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *PriorityLevelConfigurationList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 32\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/imagepolicy/v1alpha1/doc.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n\n// +groupName=imagepolicy.k8s.io\n\npackage v1alpha1 // import \"k8s.io/api/imagepolicy/v1alpha1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/imagepolicy/v1alpha1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/imagepolicy/v1alpha1/generated.proto\n\npackage v1alpha1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *ImageReview) Reset()      { *m = ImageReview{} }\nfunc (*ImageReview) ProtoMessage() {}\nfunc (*ImageReview) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7620d1538838ac6f, []int{0}\n}\nfunc (m *ImageReview) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ImageReview) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ImageReview) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ImageReview.Merge(m, src)\n}\nfunc (m *ImageReview) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ImageReview) XXX_DiscardUnknown() {\n\txxx_messageInfo_ImageReview.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ImageReview proto.InternalMessageInfo\n\nfunc (m *ImageReviewContainerSpec) Reset()      { *m = ImageReviewContainerSpec{} }\nfunc (*ImageReviewContainerSpec) ProtoMessage() {}\nfunc (*ImageReviewContainerSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7620d1538838ac6f, []int{1}\n}\nfunc (m *ImageReviewContainerSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ImageReviewContainerSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ImageReviewContainerSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ImageReviewContainerSpec.Merge(m, src)\n}\nfunc (m *ImageReviewContainerSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ImageReviewContainerSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ImageReviewContainerSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ImageReviewContainerSpec proto.InternalMessageInfo\n\nfunc (m *ImageReviewSpec) Reset()      { *m = ImageReviewSpec{} }\nfunc (*ImageReviewSpec) ProtoMessage() {}\nfunc (*ImageReviewSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7620d1538838ac6f, []int{2}\n}\nfunc (m *ImageReviewSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ImageReviewSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ImageReviewSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ImageReviewSpec.Merge(m, src)\n}\nfunc (m *ImageReviewSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ImageReviewSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ImageReviewSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ImageReviewSpec proto.InternalMessageInfo\n\nfunc (m *ImageReviewStatus) Reset()      { *m = ImageReviewStatus{} }\nfunc (*ImageReviewStatus) ProtoMessage() {}\nfunc (*ImageReviewStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7620d1538838ac6f, []int{3}\n}\nfunc (m *ImageReviewStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ImageReviewStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ImageReviewStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ImageReviewStatus.Merge(m, src)\n}\nfunc (m *ImageReviewStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ImageReviewStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ImageReviewStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ImageReviewStatus proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*ImageReview)(nil), \"k8s.io.api.imagepolicy.v1alpha1.ImageReview\")\n\tproto.RegisterType((*ImageReviewContainerSpec)(nil), \"k8s.io.api.imagepolicy.v1alpha1.ImageReviewContainerSpec\")\n\tproto.RegisterType((*ImageReviewSpec)(nil), \"k8s.io.api.imagepolicy.v1alpha1.ImageReviewSpec\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.imagepolicy.v1alpha1.ImageReviewSpec.AnnotationsEntry\")\n\tproto.RegisterType((*ImageReviewStatus)(nil), \"k8s.io.api.imagepolicy.v1alpha1.ImageReviewStatus\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.imagepolicy.v1alpha1.ImageReviewStatus.AuditAnnotationsEntry\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/imagepolicy/v1alpha1/generated.proto\", fileDescriptor_7620d1538838ac6f)\n}\n\nvar fileDescriptor_7620d1538838ac6f = []byte{\n\t// 593 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x94, 0x4f, 0x6f, 0xd3, 0x30,\n\t0x18, 0xc6, 0x9b, 0x74, 0xff, 0xea, 0x02, 0xeb, 0x0c, 0x48, 0x51, 0x0f, 0xe9, 0x54, 0x24, 0x34,\n\t0x0e, 0xd8, 0xb4, 0x42, 0x68, 0x70, 0x00, 0x35, 0xd3, 0x24, 0x38, 0x00, 0x92, 0xb9, 0xed, 0x84,\n\t0x9b, 0x9a, 0xd4, 0xb4, 0x89, 0xa3, 0xd8, 0xe9, 0xe8, 0x8d, 0x4f, 0x80, 0xf8, 0x06, 0x7c, 0x11,\n\t0x3e, 0x40, 0x8f, 0x3b, 0xee, 0x34, 0xd1, 0x70, 0xe4, 0x4b, 0xa0, 0x38, 0x69, 0x13, 0xda, 0xa1,\n\t0xa9, 0xb7, 0xbc, 0xef, 0xeb, 0xe7, 0xf7, 0x3e, 0x79, 0x62, 0x05, 0xe0, 0xd1, 0xb1, 0x44, 0x5c,\n\t0x60, 0x1a, 0x72, 0xcc, 0x7d, 0xea, 0xb1, 0x50, 0x8c, 0xb9, 0x3b, 0xc5, 0x93, 0x0e, 0x1d, 0x87,\n\t0x43, 0xda, 0xc1, 0x1e, 0x0b, 0x58, 0x44, 0x15, 0x1b, 0xa0, 0x30, 0x12, 0x4a, 0xc0, 0x56, 0x26,\n\t0x40, 0x34, 0xe4, 0xa8, 0x24, 0x40, 0x0b, 0x41, 0xf3, 0xb1, 0xc7, 0xd5, 0x30, 0xee, 0x23, 0x57,\n\t0xf8, 0xd8, 0x13, 0x9e, 0xc0, 0x5a, 0xd7, 0x8f, 0x3f, 0xe9, 0x4a, 0x17, 0xfa, 0x29, 0xe3, 0x35,\n\t0x9f, 0x16, 0x06, 0x7c, 0xea, 0x0e, 0x79, 0xc0, 0xa2, 0x29, 0x0e, 0x47, 0x5e, 0xda, 0x90, 0xd8,\n\t0x67, 0x8a, 0xe2, 0xc9, 0x9a, 0x8b, 0x26, 0xfe, 0x9f, 0x2a, 0x8a, 0x03, 0xc5, 0x7d, 0xb6, 0x26,\n\t0x78, 0x76, 0x93, 0x40, 0xba, 0x43, 0xe6, 0xd3, 0x55, 0x5d, 0xfb, 0x87, 0x09, 0xea, 0x6f, 0xd2,\n\t0xd7, 0x24, 0x6c, 0xc2, 0xd9, 0x39, 0xfc, 0x08, 0xf6, 0x52, 0x4f, 0x03, 0xaa, 0xa8, 0x65, 0x1c,\n\t0x1a, 0x47, 0xf5, 0xee, 0x13, 0x54, 0x24, 0xb2, 0x44, 0xa3, 0x70, 0xe4, 0xa5, 0x0d, 0x89, 0xd2,\n\t0xd3, 0x68, 0xd2, 0x41, 0xef, 0xfb, 0x9f, 0x99, 0xab, 0xde, 0x32, 0x45, 0x1d, 0x38, 0xbb, 0x6a,\n\t0x55, 0x92, 0xab, 0x16, 0x28, 0x7a, 0x64, 0x49, 0x85, 0x04, 0x6c, 0xc9, 0x90, 0xb9, 0x96, 0xb9,\n\t0x46, 0xbf, 0x36, 0x6f, 0x54, 0x72, 0xf7, 0x21, 0x64, 0xae, 0x73, 0x2b, 0xa7, 0x6f, 0xa5, 0x15,\n\t0xd1, 0x2c, 0x78, 0x06, 0x76, 0xa4, 0xa2, 0x2a, 0x96, 0x56, 0x55, 0x53, 0xbb, 0x1b, 0x51, 0xb5,\n\t0xd2, 0xb9, 0x93, 0x73, 0x77, 0xb2, 0x9a, 0xe4, 0xc4, 0xf6, 0x2b, 0x60, 0x95, 0x0e, 0x9f, 0x88,\n\t0x40, 0xd1, 0x34, 0x82, 0x74, 0x3b, 0x7c, 0x00, 0xb6, 0x35, 0x5d, 0x47, 0x55, 0x73, 0x6e, 0xe7,\n\t0x88, 0xed, 0x4c, 0x90, 0xcd, 0xda, 0x7f, 0x4c, 0xb0, 0xbf, 0xf2, 0x12, 0xd0, 0x07, 0xc0, 0x5d,\n\t0x90, 0xa4, 0x65, 0x1c, 0x56, 0x8f, 0xea, 0xdd, 0xe7, 0x9b, 0x98, 0xfe, 0xc7, 0x47, 0x91, 0xf8,\n\t0xb2, 0x2d, 0x49, 0x69, 0x01, 0xfc, 0x02, 0xea, 0x34, 0x08, 0x84, 0xa2, 0x8a, 0x8b, 0x40, 0x5a,\n\t0xa6, 0xde, 0xd7, 0xdb, 0x34, 0x7a, 0xd4, 0x2b, 0x18, 0xa7, 0x81, 0x8a, 0xa6, 0xce, 0xdd, 0x7c,\n\t0x6f, 0xbd, 0x34, 0x21, 0xe5, 0x55, 0x10, 0x83, 0x5a, 0x40, 0x7d, 0x26, 0x43, 0xea, 0x32, 0xfd,\n\t0x71, 0x6a, 0xce, 0x41, 0x2e, 0xaa, 0xbd, 0x5b, 0x0c, 0x48, 0x71, 0xa6, 0xf9, 0x12, 0x34, 0x56,\n\t0xd7, 0xc0, 0x06, 0xa8, 0x8e, 0xd8, 0x34, 0x0b, 0x99, 0xa4, 0x8f, 0xf0, 0x1e, 0xd8, 0x9e, 0xd0,\n\t0x71, 0xcc, 0xf4, 0x2d, 0xaa, 0x91, 0xac, 0x78, 0x61, 0x1e, 0x1b, 0xed, 0x9f, 0x26, 0x38, 0x58,\n\t0xfb, 0xb8, 0xf0, 0x11, 0xd8, 0xa5, 0xe3, 0xb1, 0x38, 0x67, 0x03, 0x4d, 0xd9, 0x73, 0xf6, 0x73,\n\t0x13, 0xbb, 0xbd, 0xac, 0x4d, 0x16, 0x73, 0xf8, 0x10, 0xec, 0x44, 0x8c, 0x4a, 0x11, 0x64, 0xec,\n\t0xe2, 0x5e, 0x10, 0xdd, 0x25, 0xf9, 0x14, 0x7e, 0x33, 0x40, 0x83, 0xc6, 0x03, 0xae, 0x4a, 0x76,\n\t0xad, 0xaa, 0x4e, 0xf6, 0xf5, 0xe6, 0xd7, 0x0f, 0xf5, 0x56, 0x50, 0x59, 0xc0, 0x56, 0xbe, 0xbc,\n\t0xb1, 0x3a, 0x26, 0x6b, 0xbb, 0x9b, 0x27, 0xe0, 0xfe, 0xb5, 0x90, 0x4d, 0xe2, 0x73, 0x4e, 0x67,\n\t0x73, 0xbb, 0x72, 0x31, 0xb7, 0x2b, 0x97, 0x73, 0xbb, 0xf2, 0x35, 0xb1, 0x8d, 0x59, 0x62, 0x1b,\n\t0x17, 0x89, 0x6d, 0x5c, 0x26, 0xb6, 0xf1, 0x2b, 0xb1, 0x8d, 0xef, 0xbf, 0xed, 0xca, 0x59, 0xeb,\n\t0x86, 0xbf, 0xea, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x59, 0x86, 0x92, 0x15, 0x77, 0x05, 0x00,\n\t0x00,\n}\n\nfunc (m *ImageReview) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ImageReview) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ImageReview) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ImageReviewContainerSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ImageReviewContainerSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ImageReviewContainerSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Image)\n\tcopy(dAtA[i:], m.Image)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Image)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ImageReviewSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ImageReviewSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ImageReviewSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Namespace)\n\tcopy(dAtA[i:], m.Namespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.Annotations) > 0 {\n\t\tkeysForAnnotations := make([]string, 0, len(m.Annotations))\n\t\tfor k := range m.Annotations {\n\t\t\tkeysForAnnotations = append(keysForAnnotations, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAnnotations)\n\t\tfor iNdEx := len(keysForAnnotations) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Annotations[string(keysForAnnotations[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForAnnotations[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForAnnotations[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForAnnotations[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Containers) > 0 {\n\t\tfor iNdEx := len(m.Containers) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Containers[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ImageReviewStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ImageReviewStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ImageReviewStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.AuditAnnotations) > 0 {\n\t\tkeysForAuditAnnotations := make([]string, 0, len(m.AuditAnnotations))\n\t\tfor k := range m.AuditAnnotations {\n\t\t\tkeysForAuditAnnotations = append(keysForAuditAnnotations, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAuditAnnotations)\n\t\tfor iNdEx := len(keysForAuditAnnotations) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.AuditAnnotations[string(keysForAuditAnnotations[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForAuditAnnotations[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForAuditAnnotations[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForAuditAnnotations[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x12\n\ti--\n\tif m.Allowed {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *ImageReview) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ImageReviewContainerSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Image)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ImageReviewSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Containers) > 0 {\n\t\tfor _, e := range m.Containers {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Annotations) > 0 {\n\t\tfor k, v := range m.Annotations {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tl = len(m.Namespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ImageReviewStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 2\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.AuditAnnotations) > 0 {\n\t\tfor k, v := range m.AuditAnnotations {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *ImageReview) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ImageReview{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ImageReviewSpec\", \"ImageReviewSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"ImageReviewStatus\", \"ImageReviewStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ImageReviewContainerSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ImageReviewContainerSpec{`,\n\t\t`Image:` + fmt.Sprintf(\"%v\", this.Image) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ImageReviewSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForContainers := \"[]ImageReviewContainerSpec{\"\n\tfor _, f := range this.Containers {\n\t\trepeatedStringForContainers += strings.Replace(strings.Replace(f.String(), \"ImageReviewContainerSpec\", \"ImageReviewContainerSpec\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForContainers += \"}\"\n\tkeysForAnnotations := make([]string, 0, len(this.Annotations))\n\tfor k := range this.Annotations {\n\t\tkeysForAnnotations = append(keysForAnnotations, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAnnotations)\n\tmapStringForAnnotations := \"map[string]string{\"\n\tfor _, k := range keysForAnnotations {\n\t\tmapStringForAnnotations += fmt.Sprintf(\"%v: %v,\", k, this.Annotations[k])\n\t}\n\tmapStringForAnnotations += \"}\"\n\ts := strings.Join([]string{`&ImageReviewSpec{`,\n\t\t`Containers:` + repeatedStringForContainers + `,`,\n\t\t`Annotations:` + mapStringForAnnotations + `,`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ImageReviewStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForAuditAnnotations := make([]string, 0, len(this.AuditAnnotations))\n\tfor k := range this.AuditAnnotations {\n\t\tkeysForAuditAnnotations = append(keysForAuditAnnotations, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAuditAnnotations)\n\tmapStringForAuditAnnotations := \"map[string]string{\"\n\tfor _, k := range keysForAuditAnnotations {\n\t\tmapStringForAuditAnnotations += fmt.Sprintf(\"%v: %v,\", k, this.AuditAnnotations[k])\n\t}\n\tmapStringForAuditAnnotations += \"}\"\n\ts := strings.Join([]string{`&ImageReviewStatus{`,\n\t\t`Allowed:` + fmt.Sprintf(\"%v\", this.Allowed) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`AuditAnnotations:` + mapStringForAuditAnnotations + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *ImageReview) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ImageReview: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ImageReview: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ImageReviewContainerSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ImageReviewContainerSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ImageReviewContainerSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Image\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Image = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ImageReviewSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ImageReviewSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ImageReviewSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Containers\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Containers = append(m.Containers, ImageReviewContainerSpec{})\n\t\t\tif err := m.Containers[len(m.Containers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Annotations\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Annotations == nil {\n\t\t\t\tm.Annotations = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Annotations[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ImageReviewStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ImageReviewStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ImageReviewStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Allowed\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Allowed = bool(v != 0)\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AuditAnnotations\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AuditAnnotations == nil {\n\t\t\t\tm.AuditAnnotations = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.AuditAnnotations[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/imagepolicy/v1alpha1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.imagepolicy.v1alpha1;\n\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/imagepolicy/v1alpha1\";\n\n// ImageReview checks if the set of images in a pod are allowed.\nmessage ImageReview {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec holds information about the pod being evaluated\n  optional ImageReviewSpec spec = 2;\n\n  // Status is filled in by the backend and indicates whether the pod should be allowed.\n  // +optional\n  optional ImageReviewStatus status = 3;\n}\n\n// ImageReviewContainerSpec is a description of a container within the pod creation request.\nmessage ImageReviewContainerSpec {\n  // This can be in the form image:tag or image@SHA:012345679abcdef.\n  // +optional\n  optional string image = 1;\n}\n\n// ImageReviewSpec is a description of the pod creation request.\nmessage ImageReviewSpec {\n  // Containers is a list of a subset of the information in each container of the Pod being created.\n  // +optional\n  // +listType=atomic\n  repeated ImageReviewContainerSpec containers = 1;\n\n  // Annotations is a list of key-value pairs extracted from the Pod's annotations.\n  // It only includes keys which match the pattern `*.image-policy.k8s.io/*`.\n  // It is up to each webhook backend to determine how to interpret these annotations, if at all.\n  // +optional\n  map<string, string> annotations = 2;\n\n  // Namespace is the namespace the pod is being created in.\n  // +optional\n  optional string namespace = 3;\n}\n\n// ImageReviewStatus is the result of the review for the pod creation request.\nmessage ImageReviewStatus {\n  // Allowed indicates that all images were allowed to be run.\n  optional bool allowed = 1;\n\n  // Reason should be empty unless Allowed is false in which case it\n  // may contain a short description of what is wrong.  Kubernetes\n  // may truncate excessively long errors when displaying to the user.\n  // +optional\n  optional string reason = 2;\n\n  // AuditAnnotations will be added to the attributes object of the\n  // admission controller request using 'AddAnnotation'.  The keys should\n  // be prefix-less (i.e., the admission controller will add an\n  // appropriate prefix).\n  // +optional\n  map<string, string> auditAnnotations = 3;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/imagepolicy/v1alpha1/register.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name for this API.\nconst GroupName = \"imagepolicy.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1alpha1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&ImageReview{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/imagepolicy/v1alpha1/types.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +genclient:noVerbs\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// ImageReview checks if the set of images in a pod are allowed.\ntype ImageReview struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec holds information about the pod being evaluated\n\tSpec ImageReviewSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status is filled in by the backend and indicates whether the pod should be allowed.\n\t// +optional\n\tStatus ImageReviewStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// ImageReviewSpec is a description of the pod creation request.\ntype ImageReviewSpec struct {\n\t// Containers is a list of a subset of the information in each container of the Pod being created.\n\t// +optional\n\t// +listType=atomic\n\tContainers []ImageReviewContainerSpec `json:\"containers,omitempty\" protobuf:\"bytes,1,rep,name=containers\"`\n\t// Annotations is a list of key-value pairs extracted from the Pod's annotations.\n\t// It only includes keys which match the pattern `*.image-policy.k8s.io/*`.\n\t// It is up to each webhook backend to determine how to interpret these annotations, if at all.\n\t// +optional\n\tAnnotations map[string]string `json:\"annotations,omitempty\" protobuf:\"bytes,2,rep,name=annotations\"`\n\t// Namespace is the namespace the pod is being created in.\n\t// +optional\n\tNamespace string `json:\"namespace,omitempty\" protobuf:\"bytes,3,opt,name=namespace\"`\n}\n\n// ImageReviewContainerSpec is a description of a container within the pod creation request.\ntype ImageReviewContainerSpec struct {\n\t// This can be in the form image:tag or image@SHA:012345679abcdef.\n\t// +optional\n\tImage string `json:\"image,omitempty\" protobuf:\"bytes,1,opt,name=image\"`\n\t// In future, we may add command line overrides, exec health check command lines, and so on.\n}\n\n// ImageReviewStatus is the result of the review for the pod creation request.\ntype ImageReviewStatus struct {\n\t// Allowed indicates that all images were allowed to be run.\n\tAllowed bool `json:\"allowed\" protobuf:\"varint,1,opt,name=allowed\"`\n\t// Reason should be empty unless Allowed is false in which case it\n\t// may contain a short description of what is wrong.  Kubernetes\n\t// may truncate excessively long errors when displaying to the user.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,2,opt,name=reason\"`\n\t// AuditAnnotations will be added to the attributes object of the\n\t// admission controller request using 'AddAnnotation'.  The keys should\n\t// be prefix-less (i.e., the admission controller will add an\n\t// appropriate prefix).\n\t// +optional\n\tAuditAnnotations map[string]string `json:\"auditAnnotations,omitempty\" protobuf:\"bytes,3,rep,name=auditAnnotations\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/imagepolicy/v1alpha1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_ImageReview = map[string]string{\n\t\"\":         \"ImageReview checks if the set of images in a pod are allowed.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Spec holds information about the pod being evaluated\",\n\t\"status\":   \"Status is filled in by the backend and indicates whether the pod should be allowed.\",\n}\n\nfunc (ImageReview) SwaggerDoc() map[string]string {\n\treturn map_ImageReview\n}\n\nvar map_ImageReviewContainerSpec = map[string]string{\n\t\"\":      \"ImageReviewContainerSpec is a description of a container within the pod creation request.\",\n\t\"image\": \"This can be in the form image:tag or image@SHA:012345679abcdef.\",\n}\n\nfunc (ImageReviewContainerSpec) SwaggerDoc() map[string]string {\n\treturn map_ImageReviewContainerSpec\n}\n\nvar map_ImageReviewSpec = map[string]string{\n\t\"\":            \"ImageReviewSpec is a description of the pod creation request.\",\n\t\"containers\":  \"Containers is a list of a subset of the information in each container of the Pod being created.\",\n\t\"annotations\": \"Annotations is a list of key-value pairs extracted from the Pod's annotations. It only includes keys which match the pattern `*.image-policy.k8s.io/*`. It is up to each webhook backend to determine how to interpret these annotations, if at all.\",\n\t\"namespace\":   \"Namespace is the namespace the pod is being created in.\",\n}\n\nfunc (ImageReviewSpec) SwaggerDoc() map[string]string {\n\treturn map_ImageReviewSpec\n}\n\nvar map_ImageReviewStatus = map[string]string{\n\t\"\":                 \"ImageReviewStatus is the result of the review for the pod creation request.\",\n\t\"allowed\":          \"Allowed indicates that all images were allowed to be run.\",\n\t\"reason\":           \"Reason should be empty unless Allowed is false in which case it may contain a short description of what is wrong.  Kubernetes may truncate excessively long errors when displaying to the user.\",\n\t\"auditAnnotations\": \"AuditAnnotations will be added to the attributes object of the admission controller request using 'AddAnnotation'.  The keys should be prefix-less (i.e., the admission controller will add an appropriate prefix).\",\n}\n\nfunc (ImageReviewStatus) SwaggerDoc() map[string]string {\n\treturn map_ImageReviewStatus\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/imagepolicy/v1alpha1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ImageReview) DeepCopyInto(out *ImageReview) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageReview.\nfunc (in *ImageReview) DeepCopy() *ImageReview {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ImageReview)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ImageReview) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ImageReviewContainerSpec) DeepCopyInto(out *ImageReviewContainerSpec) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageReviewContainerSpec.\nfunc (in *ImageReviewContainerSpec) DeepCopy() *ImageReviewContainerSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ImageReviewContainerSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ImageReviewSpec) DeepCopyInto(out *ImageReviewSpec) {\n\t*out = *in\n\tif in.Containers != nil {\n\t\tin, out := &in.Containers, &out.Containers\n\t\t*out = make([]ImageReviewContainerSpec, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Annotations != nil {\n\t\tin, out := &in.Annotations, &out.Annotations\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageReviewSpec.\nfunc (in *ImageReviewSpec) DeepCopy() *ImageReviewSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ImageReviewSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ImageReviewStatus) DeepCopyInto(out *ImageReviewStatus) {\n\t*out = *in\n\tif in.AuditAnnotations != nil {\n\t\tin, out := &in.AuditAnnotations, &out.AuditAnnotations\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageReviewStatus.\nfunc (in *ImageReviewStatus) DeepCopy() *ImageReviewStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ImageReviewStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1/doc.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n// +groupName=networking.k8s.io\n\npackage v1 // import \"k8s.io/api/networking/v1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/networking/v1/generated.proto\n\npackage v1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\tv11 \"k8s.io/api/core/v1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *HTTPIngressPath) Reset()      { *m = HTTPIngressPath{} }\nfunc (*HTTPIngressPath) ProtoMessage() {}\nfunc (*HTTPIngressPath) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c41434372fec1d7, []int{0}\n}\nfunc (m *HTTPIngressPath) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HTTPIngressPath) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HTTPIngressPath) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HTTPIngressPath.Merge(m, src)\n}\nfunc (m *HTTPIngressPath) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HTTPIngressPath) XXX_DiscardUnknown() {\n\txxx_messageInfo_HTTPIngressPath.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HTTPIngressPath proto.InternalMessageInfo\n\nfunc (m *HTTPIngressRuleValue) Reset()      { *m = HTTPIngressRuleValue{} }\nfunc (*HTTPIngressRuleValue) ProtoMessage() {}\nfunc (*HTTPIngressRuleValue) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c41434372fec1d7, []int{1}\n}\nfunc (m *HTTPIngressRuleValue) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HTTPIngressRuleValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HTTPIngressRuleValue) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HTTPIngressRuleValue.Merge(m, src)\n}\nfunc (m *HTTPIngressRuleValue) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HTTPIngressRuleValue) XXX_DiscardUnknown() {\n\txxx_messageInfo_HTTPIngressRuleValue.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HTTPIngressRuleValue proto.InternalMessageInfo\n\nfunc (m *IPBlock) Reset()      { *m = IPBlock{} }\nfunc (*IPBlock) ProtoMessage() {}\nfunc (*IPBlock) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c41434372fec1d7, []int{2}\n}\nfunc (m *IPBlock) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IPBlock) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IPBlock) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IPBlock.Merge(m, src)\n}\nfunc (m *IPBlock) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IPBlock) XXX_DiscardUnknown() {\n\txxx_messageInfo_IPBlock.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IPBlock proto.InternalMessageInfo\n\nfunc (m *Ingress) Reset()      { *m = Ingress{} }\nfunc (*Ingress) ProtoMessage() {}\nfunc (*Ingress) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c41434372fec1d7, []int{3}\n}\nfunc (m *Ingress) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Ingress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Ingress) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Ingress.Merge(m, src)\n}\nfunc (m *Ingress) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Ingress) XXX_DiscardUnknown() {\n\txxx_messageInfo_Ingress.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Ingress proto.InternalMessageInfo\n\nfunc (m *IngressBackend) Reset()      { *m = IngressBackend{} }\nfunc (*IngressBackend) ProtoMessage() {}\nfunc (*IngressBackend) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c41434372fec1d7, []int{4}\n}\nfunc (m *IngressBackend) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressBackend) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressBackend) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressBackend.Merge(m, src)\n}\nfunc (m *IngressBackend) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressBackend) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressBackend.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressBackend proto.InternalMessageInfo\n\nfunc (m *IngressClass) Reset()      { *m = IngressClass{} }\nfunc (*IngressClass) ProtoMessage() {}\nfunc (*IngressClass) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c41434372fec1d7, []int{5}\n}\nfunc (m *IngressClass) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressClass) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressClass) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressClass.Merge(m, src)\n}\nfunc (m *IngressClass) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressClass) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressClass.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressClass proto.InternalMessageInfo\n\nfunc (m *IngressClassList) Reset()      { *m = IngressClassList{} }\nfunc (*IngressClassList) ProtoMessage() {}\nfunc (*IngressClassList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c41434372fec1d7, []int{6}\n}\nfunc (m *IngressClassList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressClassList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressClassList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressClassList.Merge(m, src)\n}\nfunc (m *IngressClassList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressClassList) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressClassList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressClassList proto.InternalMessageInfo\n\nfunc (m *IngressClassParametersReference) Reset()      { *m = IngressClassParametersReference{} }\nfunc (*IngressClassParametersReference) ProtoMessage() {}\nfunc (*IngressClassParametersReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c41434372fec1d7, []int{7}\n}\nfunc (m *IngressClassParametersReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressClassParametersReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressClassParametersReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressClassParametersReference.Merge(m, src)\n}\nfunc (m *IngressClassParametersReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressClassParametersReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressClassParametersReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressClassParametersReference proto.InternalMessageInfo\n\nfunc (m *IngressClassSpec) Reset()      { *m = IngressClassSpec{} }\nfunc (*IngressClassSpec) ProtoMessage() {}\nfunc (*IngressClassSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c41434372fec1d7, []int{8}\n}\nfunc (m *IngressClassSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressClassSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressClassSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressClassSpec.Merge(m, src)\n}\nfunc (m *IngressClassSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressClassSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressClassSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressClassSpec proto.InternalMessageInfo\n\nfunc (m *IngressList) Reset()      { *m = IngressList{} }\nfunc (*IngressList) ProtoMessage() {}\nfunc (*IngressList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c41434372fec1d7, []int{9}\n}\nfunc (m *IngressList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressList.Merge(m, src)\n}\nfunc (m *IngressList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressList) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressList proto.InternalMessageInfo\n\nfunc (m *IngressLoadBalancerIngress) Reset()      { *m = IngressLoadBalancerIngress{} }\nfunc (*IngressLoadBalancerIngress) ProtoMessage() {}\nfunc (*IngressLoadBalancerIngress) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c41434372fec1d7, []int{10}\n}\nfunc (m *IngressLoadBalancerIngress) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressLoadBalancerIngress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressLoadBalancerIngress) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressLoadBalancerIngress.Merge(m, src)\n}\nfunc (m *IngressLoadBalancerIngress) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressLoadBalancerIngress) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressLoadBalancerIngress.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressLoadBalancerIngress proto.InternalMessageInfo\n\nfunc (m *IngressLoadBalancerStatus) Reset()      { *m = IngressLoadBalancerStatus{} }\nfunc (*IngressLoadBalancerStatus) ProtoMessage() {}\nfunc (*IngressLoadBalancerStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c41434372fec1d7, []int{11}\n}\nfunc (m *IngressLoadBalancerStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressLoadBalancerStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressLoadBalancerStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressLoadBalancerStatus.Merge(m, src)\n}\nfunc (m *IngressLoadBalancerStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressLoadBalancerStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressLoadBalancerStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressLoadBalancerStatus proto.InternalMessageInfo\n\nfunc (m *IngressPortStatus) Reset()      { *m = IngressPortStatus{} }\nfunc (*IngressPortStatus) ProtoMessage() {}\nfunc (*IngressPortStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c41434372fec1d7, []int{12}\n}\nfunc (m *IngressPortStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressPortStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressPortStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressPortStatus.Merge(m, src)\n}\nfunc (m *IngressPortStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressPortStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressPortStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressPortStatus proto.InternalMessageInfo\n\nfunc (m *IngressRule) Reset()      { *m = IngressRule{} }\nfunc (*IngressRule) ProtoMessage() {}\nfunc (*IngressRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c41434372fec1d7, []int{13}\n}\nfunc (m *IngressRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressRule.Merge(m, src)\n}\nfunc (m *IngressRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressRule proto.InternalMessageInfo\n\nfunc (m *IngressRuleValue) Reset()      { *m = IngressRuleValue{} }\nfunc (*IngressRuleValue) ProtoMessage() {}\nfunc (*IngressRuleValue) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c41434372fec1d7, []int{14}\n}\nfunc (m *IngressRuleValue) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressRuleValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressRuleValue) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressRuleValue.Merge(m, src)\n}\nfunc (m *IngressRuleValue) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressRuleValue) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressRuleValue.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressRuleValue proto.InternalMessageInfo\n\nfunc (m *IngressServiceBackend) Reset()      { *m = IngressServiceBackend{} }\nfunc (*IngressServiceBackend) ProtoMessage() {}\nfunc (*IngressServiceBackend) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c41434372fec1d7, []int{15}\n}\nfunc (m *IngressServiceBackend) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressServiceBackend) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressServiceBackend) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressServiceBackend.Merge(m, src)\n}\nfunc (m *IngressServiceBackend) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressServiceBackend) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressServiceBackend.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressServiceBackend proto.InternalMessageInfo\n\nfunc (m *IngressSpec) Reset()      { *m = IngressSpec{} }\nfunc (*IngressSpec) ProtoMessage() {}\nfunc (*IngressSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c41434372fec1d7, []int{16}\n}\nfunc (m *IngressSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressSpec.Merge(m, src)\n}\nfunc (m *IngressSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressSpec proto.InternalMessageInfo\n\nfunc (m *IngressStatus) Reset()      { *m = IngressStatus{} }\nfunc (*IngressStatus) ProtoMessage() {}\nfunc (*IngressStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c41434372fec1d7, []int{17}\n}\nfunc (m *IngressStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressStatus.Merge(m, src)\n}\nfunc (m *IngressStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressStatus proto.InternalMessageInfo\n\nfunc (m *IngressTLS) Reset()      { *m = IngressTLS{} }\nfunc (*IngressTLS) ProtoMessage() {}\nfunc (*IngressTLS) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c41434372fec1d7, []int{18}\n}\nfunc (m *IngressTLS) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressTLS) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressTLS) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressTLS.Merge(m, src)\n}\nfunc (m *IngressTLS) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressTLS) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressTLS.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressTLS proto.InternalMessageInfo\n\nfunc (m *NetworkPolicy) Reset()      { *m = NetworkPolicy{} }\nfunc (*NetworkPolicy) ProtoMessage() {}\nfunc (*NetworkPolicy) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c41434372fec1d7, []int{19}\n}\nfunc (m *NetworkPolicy) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NetworkPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NetworkPolicy) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NetworkPolicy.Merge(m, src)\n}\nfunc (m *NetworkPolicy) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NetworkPolicy) XXX_DiscardUnknown() {\n\txxx_messageInfo_NetworkPolicy.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NetworkPolicy proto.InternalMessageInfo\n\nfunc (m *NetworkPolicyEgressRule) Reset()      { *m = NetworkPolicyEgressRule{} }\nfunc (*NetworkPolicyEgressRule) ProtoMessage() {}\nfunc (*NetworkPolicyEgressRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c41434372fec1d7, []int{20}\n}\nfunc (m *NetworkPolicyEgressRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NetworkPolicyEgressRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NetworkPolicyEgressRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NetworkPolicyEgressRule.Merge(m, src)\n}\nfunc (m *NetworkPolicyEgressRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NetworkPolicyEgressRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_NetworkPolicyEgressRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NetworkPolicyEgressRule proto.InternalMessageInfo\n\nfunc (m *NetworkPolicyIngressRule) Reset()      { *m = NetworkPolicyIngressRule{} }\nfunc (*NetworkPolicyIngressRule) ProtoMessage() {}\nfunc (*NetworkPolicyIngressRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c41434372fec1d7, []int{21}\n}\nfunc (m *NetworkPolicyIngressRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NetworkPolicyIngressRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NetworkPolicyIngressRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NetworkPolicyIngressRule.Merge(m, src)\n}\nfunc (m *NetworkPolicyIngressRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NetworkPolicyIngressRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_NetworkPolicyIngressRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NetworkPolicyIngressRule proto.InternalMessageInfo\n\nfunc (m *NetworkPolicyList) Reset()      { *m = NetworkPolicyList{} }\nfunc (*NetworkPolicyList) ProtoMessage() {}\nfunc (*NetworkPolicyList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c41434372fec1d7, []int{22}\n}\nfunc (m *NetworkPolicyList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NetworkPolicyList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NetworkPolicyList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NetworkPolicyList.Merge(m, src)\n}\nfunc (m *NetworkPolicyList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NetworkPolicyList) XXX_DiscardUnknown() {\n\txxx_messageInfo_NetworkPolicyList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NetworkPolicyList proto.InternalMessageInfo\n\nfunc (m *NetworkPolicyPeer) Reset()      { *m = NetworkPolicyPeer{} }\nfunc (*NetworkPolicyPeer) ProtoMessage() {}\nfunc (*NetworkPolicyPeer) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c41434372fec1d7, []int{23}\n}\nfunc (m *NetworkPolicyPeer) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NetworkPolicyPeer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NetworkPolicyPeer) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NetworkPolicyPeer.Merge(m, src)\n}\nfunc (m *NetworkPolicyPeer) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NetworkPolicyPeer) XXX_DiscardUnknown() {\n\txxx_messageInfo_NetworkPolicyPeer.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NetworkPolicyPeer proto.InternalMessageInfo\n\nfunc (m *NetworkPolicyPort) Reset()      { *m = NetworkPolicyPort{} }\nfunc (*NetworkPolicyPort) ProtoMessage() {}\nfunc (*NetworkPolicyPort) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c41434372fec1d7, []int{24}\n}\nfunc (m *NetworkPolicyPort) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NetworkPolicyPort) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NetworkPolicyPort) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NetworkPolicyPort.Merge(m, src)\n}\nfunc (m *NetworkPolicyPort) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NetworkPolicyPort) XXX_DiscardUnknown() {\n\txxx_messageInfo_NetworkPolicyPort.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NetworkPolicyPort proto.InternalMessageInfo\n\nfunc (m *NetworkPolicySpec) Reset()      { *m = NetworkPolicySpec{} }\nfunc (*NetworkPolicySpec) ProtoMessage() {}\nfunc (*NetworkPolicySpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c41434372fec1d7, []int{25}\n}\nfunc (m *NetworkPolicySpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NetworkPolicySpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NetworkPolicySpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NetworkPolicySpec.Merge(m, src)\n}\nfunc (m *NetworkPolicySpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NetworkPolicySpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_NetworkPolicySpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NetworkPolicySpec proto.InternalMessageInfo\n\nfunc (m *ServiceBackendPort) Reset()      { *m = ServiceBackendPort{} }\nfunc (*ServiceBackendPort) ProtoMessage() {}\nfunc (*ServiceBackendPort) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2c41434372fec1d7, []int{26}\n}\nfunc (m *ServiceBackendPort) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ServiceBackendPort) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ServiceBackendPort) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServiceBackendPort.Merge(m, src)\n}\nfunc (m *ServiceBackendPort) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ServiceBackendPort) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServiceBackendPort.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServiceBackendPort proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*HTTPIngressPath)(nil), \"k8s.io.api.networking.v1.HTTPIngressPath\")\n\tproto.RegisterType((*HTTPIngressRuleValue)(nil), \"k8s.io.api.networking.v1.HTTPIngressRuleValue\")\n\tproto.RegisterType((*IPBlock)(nil), \"k8s.io.api.networking.v1.IPBlock\")\n\tproto.RegisterType((*Ingress)(nil), \"k8s.io.api.networking.v1.Ingress\")\n\tproto.RegisterType((*IngressBackend)(nil), \"k8s.io.api.networking.v1.IngressBackend\")\n\tproto.RegisterType((*IngressClass)(nil), \"k8s.io.api.networking.v1.IngressClass\")\n\tproto.RegisterType((*IngressClassList)(nil), \"k8s.io.api.networking.v1.IngressClassList\")\n\tproto.RegisterType((*IngressClassParametersReference)(nil), \"k8s.io.api.networking.v1.IngressClassParametersReference\")\n\tproto.RegisterType((*IngressClassSpec)(nil), \"k8s.io.api.networking.v1.IngressClassSpec\")\n\tproto.RegisterType((*IngressList)(nil), \"k8s.io.api.networking.v1.IngressList\")\n\tproto.RegisterType((*IngressLoadBalancerIngress)(nil), \"k8s.io.api.networking.v1.IngressLoadBalancerIngress\")\n\tproto.RegisterType((*IngressLoadBalancerStatus)(nil), \"k8s.io.api.networking.v1.IngressLoadBalancerStatus\")\n\tproto.RegisterType((*IngressPortStatus)(nil), \"k8s.io.api.networking.v1.IngressPortStatus\")\n\tproto.RegisterType((*IngressRule)(nil), \"k8s.io.api.networking.v1.IngressRule\")\n\tproto.RegisterType((*IngressRuleValue)(nil), \"k8s.io.api.networking.v1.IngressRuleValue\")\n\tproto.RegisterType((*IngressServiceBackend)(nil), \"k8s.io.api.networking.v1.IngressServiceBackend\")\n\tproto.RegisterType((*IngressSpec)(nil), \"k8s.io.api.networking.v1.IngressSpec\")\n\tproto.RegisterType((*IngressStatus)(nil), \"k8s.io.api.networking.v1.IngressStatus\")\n\tproto.RegisterType((*IngressTLS)(nil), \"k8s.io.api.networking.v1.IngressTLS\")\n\tproto.RegisterType((*NetworkPolicy)(nil), \"k8s.io.api.networking.v1.NetworkPolicy\")\n\tproto.RegisterType((*NetworkPolicyEgressRule)(nil), \"k8s.io.api.networking.v1.NetworkPolicyEgressRule\")\n\tproto.RegisterType((*NetworkPolicyIngressRule)(nil), \"k8s.io.api.networking.v1.NetworkPolicyIngressRule\")\n\tproto.RegisterType((*NetworkPolicyList)(nil), \"k8s.io.api.networking.v1.NetworkPolicyList\")\n\tproto.RegisterType((*NetworkPolicyPeer)(nil), \"k8s.io.api.networking.v1.NetworkPolicyPeer\")\n\tproto.RegisterType((*NetworkPolicyPort)(nil), \"k8s.io.api.networking.v1.NetworkPolicyPort\")\n\tproto.RegisterType((*NetworkPolicySpec)(nil), \"k8s.io.api.networking.v1.NetworkPolicySpec\")\n\tproto.RegisterType((*ServiceBackendPort)(nil), \"k8s.io.api.networking.v1.ServiceBackendPort\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/networking/v1/generated.proto\", fileDescriptor_2c41434372fec1d7)\n}\n\nvar fileDescriptor_2c41434372fec1d7 = []byte{\n\t// 1652 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0x4b, 0x6f, 0x1b, 0x55,\n\t0x14, 0xce, 0x38, 0x71, 0xec, 0x1c, 0x27, 0x69, 0x72, 0x69, 0x85, 0x09, 0xc2, 0x0e, 0x23, 0xda,\n\t0x06, 0xda, 0xda, 0x34, 0xad, 0x10, 0x6c, 0x78, 0x4c, 0x9a, 0xa6, 0xa1, 0xa9, 0x63, 0x5d, 0x5b,\n\t0x45, 0x20, 0x1e, 0x9d, 0x8c, 0x6f, 0x9c, 0x69, 0xc6, 0x33, 0xa3, 0x3b, 0xd7, 0xa5, 0x95, 0x10,\n\t0x62, 0xc3, 0x82, 0x1d, 0x7f, 0x01, 0xf1, 0x0b, 0x10, 0x2c, 0x90, 0x10, 0x14, 0x36, 0xa8, 0xcb,\n\t0x4a, 0x6c, 0xba, 0xc1, 0xa2, 0xe6, 0x5f, 0x64, 0x85, 0xee, 0x63, 0x1e, 0x7e, 0xd5, 0xa6, 0xaa,\n\t0xb2, 0x4a, 0xee, 0x39, 0xe7, 0x7e, 0xe7, 0x71, 0xcf, 0x6b, 0x0c, 0x6b, 0x87, 0x6f, 0x06, 0x25,\n\t0xdb, 0x2b, 0x9b, 0xbe, 0x5d, 0x76, 0x09, 0xfb, 0xdc, 0xa3, 0x87, 0xb6, 0xdb, 0x2c, 0xdf, 0xb9,\n\t0x58, 0x6e, 0x12, 0x97, 0x50, 0x93, 0x91, 0x46, 0xc9, 0xa7, 0x1e, 0xf3, 0x50, 0x5e, 0x4a, 0x96,\n\t0x4c, 0xdf, 0x2e, 0xc5, 0x92, 0xa5, 0x3b, 0x17, 0x57, 0x2e, 0x34, 0x6d, 0x76, 0xd0, 0xde, 0x2b,\n\t0x59, 0x5e, 0xab, 0xdc, 0xf4, 0x9a, 0x5e, 0x59, 0x5c, 0xd8, 0x6b, 0xef, 0x8b, 0x93, 0x38, 0x88,\n\t0xff, 0x24, 0xd0, 0x8a, 0x9e, 0x50, 0x69, 0x79, 0x94, 0x0c, 0x51, 0xb6, 0x72, 0x39, 0x96, 0x69,\n\t0x99, 0xd6, 0x81, 0xed, 0x12, 0x7a, 0xaf, 0xec, 0x1f, 0x36, 0x39, 0x21, 0x28, 0xb7, 0x08, 0x33,\n\t0x87, 0xdd, 0x2a, 0x8f, 0xba, 0x45, 0xdb, 0x2e, 0xb3, 0x5b, 0x64, 0xe0, 0xc2, 0x1b, 0xe3, 0x2e,\n\t0x04, 0xd6, 0x01, 0x69, 0x99, 0x03, 0xf7, 0x2e, 0x8d, 0xba, 0xd7, 0x66, 0xb6, 0x53, 0xb6, 0x5d,\n\t0x16, 0x30, 0xda, 0x7f, 0x49, 0xff, 0x4d, 0x83, 0x13, 0xd7, 0xea, 0xf5, 0xea, 0xb6, 0xdb, 0xa4,\n\t0x24, 0x08, 0xaa, 0x26, 0x3b, 0x40, 0xab, 0x30, 0xe3, 0x9b, 0xec, 0x20, 0xaf, 0xad, 0x6a, 0x6b,\n\t0x73, 0xc6, 0xfc, 0x83, 0x4e, 0x71, 0xaa, 0xdb, 0x29, 0xce, 0x70, 0x1e, 0x16, 0x1c, 0x74, 0x19,\n\t0xb2, 0xfc, 0x6f, 0xfd, 0x9e, 0x4f, 0xf2, 0xd3, 0x42, 0x2a, 0xdf, 0xed, 0x14, 0xb3, 0x55, 0x45,\n\t0x3b, 0x4a, 0xfc, 0x8f, 0x23, 0x49, 0x54, 0x83, 0xcc, 0x9e, 0x69, 0x1d, 0x12, 0xb7, 0x91, 0x4f,\n\t0xad, 0x6a, 0x6b, 0xb9, 0xf5, 0xb5, 0xd2, 0xa8, 0xe7, 0x2b, 0x29, 0x7b, 0x0c, 0x29, 0x6f, 0x9c,\n\t0x50, 0x46, 0x64, 0x14, 0x01, 0x87, 0x48, 0xfa, 0x3e, 0x9c, 0x4c, 0xd8, 0x8f, 0xdb, 0x0e, 0xb9,\n\t0x69, 0x3a, 0x6d, 0x82, 0x2a, 0x90, 0xe6, 0x8a, 0x83, 0xbc, 0xb6, 0x3a, 0xbd, 0x96, 0x5b, 0x7f,\n\t0x75, 0xb4, 0xaa, 0x3e, 0xf7, 0x8d, 0x05, 0xa5, 0x2b, 0xcd, 0x4f, 0x01, 0x96, 0x30, 0xfa, 0x2e,\n\t0x64, 0xb6, 0xab, 0x86, 0xe3, 0x59, 0x87, 0x3c, 0x3e, 0x96, 0xdd, 0xa0, 0xfd, 0xf1, 0xd9, 0xd8,\n\t0xbe, 0x82, 0xb1, 0xe0, 0x20, 0x1d, 0x66, 0xc9, 0x5d, 0x8b, 0xf8, 0x2c, 0x9f, 0x5a, 0x9d, 0x5e,\n\t0x9b, 0x33, 0xa0, 0xdb, 0x29, 0xce, 0x6e, 0x0a, 0x0a, 0x56, 0x1c, 0xfd, 0xeb, 0x14, 0x64, 0x94,\n\t0x5a, 0x74, 0x0b, 0xb2, 0x3c, 0x7d, 0x1a, 0x26, 0x33, 0x05, 0x6a, 0x6e, 0xfd, 0xf5, 0x84, 0xbd,\n\t0xd1, 0x6b, 0x96, 0xfc, 0xc3, 0x26, 0x27, 0x04, 0x25, 0x2e, 0xcd, 0x6d, 0xdf, 0xdd, 0xbb, 0x4d,\n\t0x2c, 0x76, 0x83, 0x30, 0xd3, 0x40, 0xca, 0x0e, 0x88, 0x69, 0x38, 0x42, 0x45, 0x5b, 0x30, 0x13,\n\t0xf8, 0xc4, 0x52, 0x81, 0x3f, 0x3d, 0x36, 0xf0, 0x35, 0x9f, 0x58, 0xb1, 0x6b, 0xfc, 0x84, 0x05,\n\t0x00, 0xda, 0x85, 0xd9, 0x80, 0x99, 0xac, 0x1d, 0x88, 0x87, 0xcf, 0xad, 0x9f, 0x1d, 0x0f, 0x25,\n\t0xc4, 0x8d, 0x45, 0x05, 0x36, 0x2b, 0xcf, 0x58, 0xc1, 0xe8, 0x7f, 0x68, 0xb0, 0xd8, 0xfb, 0xda,\n\t0xe8, 0x26, 0x64, 0x02, 0x42, 0xef, 0xd8, 0x16, 0xc9, 0xcf, 0x08, 0x25, 0xe5, 0xf1, 0x4a, 0xa4,\n\t0x7c, 0x98, 0x2f, 0x39, 0x9e, 0x2b, 0x8a, 0x86, 0x43, 0x30, 0xf4, 0x01, 0x64, 0x29, 0x09, 0xbc,\n\t0x36, 0xb5, 0x88, 0xb2, 0xfe, 0x42, 0x12, 0x98, 0xd7, 0x3d, 0x87, 0xe4, 0xc9, 0xda, 0xd8, 0xf1,\n\t0x2c, 0xd3, 0x91, 0xa1, 0xc4, 0x64, 0x9f, 0x50, 0xe2, 0x5a, 0xc4, 0x98, 0xe7, 0x59, 0x8e, 0x15,\n\t0x04, 0x8e, 0xc0, 0x78, 0x15, 0xcd, 0x2b, 0x43, 0x36, 0x1c, 0xf3, 0x58, 0x1e, 0x74, 0xa7, 0xe7,\n\t0x41, 0x5f, 0x1b, 0x1b, 0x20, 0x61, 0xd7, 0xa8, 0x57, 0xd5, 0x7f, 0xd5, 0x60, 0x29, 0x29, 0xb8,\n\t0x63, 0x07, 0x0c, 0x7d, 0x3c, 0xe0, 0x44, 0x69, 0x32, 0x27, 0xf8, 0x6d, 0xe1, 0xc2, 0x92, 0x52,\n\t0x95, 0x0d, 0x29, 0x09, 0x07, 0xae, 0x43, 0xda, 0x66, 0xa4, 0x15, 0x88, 0x12, 0xc9, 0xad, 0x9f,\n\t0x99, 0xcc, 0x83, 0xb8, 0x3a, 0xb7, 0xf9, 0x65, 0x2c, 0x31, 0xf4, 0xbf, 0x35, 0x28, 0x26, 0xc5,\n\t0xaa, 0x26, 0x35, 0x5b, 0x84, 0x11, 0x1a, 0x44, 0x8f, 0x87, 0xd6, 0x20, 0x6b, 0x56, 0xb7, 0xb7,\n\t0xa8, 0xd7, 0xf6, 0xc3, 0xd2, 0xe5, 0xa6, 0xbd, 0xa7, 0x68, 0x38, 0xe2, 0xf2, 0x02, 0x3f, 0xb4,\n\t0x55, 0x97, 0x4a, 0x14, 0xf8, 0x75, 0xdb, 0x6d, 0x60, 0xc1, 0xe1, 0x12, 0xae, 0xd9, 0x0a, 0x9b,\n\t0x5f, 0x24, 0x51, 0x31, 0x5b, 0x04, 0x0b, 0x0e, 0x2a, 0x42, 0x3a, 0xb0, 0x3c, 0x5f, 0x66, 0xf0,\n\t0x9c, 0x31, 0xc7, 0x4d, 0xae, 0x71, 0x02, 0x96, 0x74, 0x74, 0x0e, 0xe6, 0xb8, 0x60, 0xe0, 0x9b,\n\t0x16, 0xc9, 0xa7, 0x85, 0xd0, 0x42, 0xb7, 0x53, 0x9c, 0xab, 0x84, 0x44, 0x1c, 0xf3, 0xf5, 0x1f,\n\t0xfa, 0xde, 0x87, 0x3f, 0x1d, 0x5a, 0x07, 0xb0, 0x3c, 0x97, 0x51, 0xcf, 0x71, 0x48, 0xd8, 0x8d,\n\t0xa2, 0xa4, 0xd9, 0x88, 0x38, 0x38, 0x21, 0x85, 0x6c, 0x00, 0x3f, 0x8a, 0x8d, 0x4a, 0x9e, 0xb7,\n\t0x26, 0x0b, 0xfd, 0x90, 0x98, 0x1a, 0x8b, 0x5c, 0x55, 0x82, 0x91, 0x00, 0xd7, 0x7f, 0xd4, 0x20,\n\t0xa7, 0xee, 0x1f, 0x43, 0x3a, 0x5d, 0xed, 0x4d, 0xa7, 0x97, 0xc7, 0x8f, 0x96, 0xe1, 0x99, 0xf4,\n\t0xb3, 0x06, 0x2b, 0xa1, 0xd5, 0x9e, 0xd9, 0x30, 0x4c, 0xc7, 0x74, 0x2d, 0x42, 0xc3, 0x4e, 0xbd,\n\t0x02, 0x29, 0x3b, 0x4c, 0x1f, 0x50, 0x00, 0xa9, 0xed, 0x2a, 0x4e, 0xd9, 0x3e, 0x3a, 0x0f, 0xd9,\n\t0x03, 0x2f, 0x60, 0x22, 0x31, 0x64, 0xea, 0x44, 0x06, 0x5f, 0x53, 0x74, 0x1c, 0x49, 0xa0, 0x2a,\n\t0xa4, 0x7d, 0x8f, 0xb2, 0x20, 0x3f, 0x23, 0x0c, 0x3e, 0x37, 0xd6, 0xe0, 0xaa, 0x47, 0x99, 0xea,\n\t0xa5, 0xf1, 0x88, 0xe2, 0x08, 0x58, 0x02, 0xe9, 0x5f, 0xc0, 0x0b, 0x43, 0x2c, 0x97, 0x57, 0xd0,\n\t0x67, 0x90, 0xb1, 0x25, 0x53, 0x4d, 0xc4, 0xcb, 0x63, 0x15, 0x0e, 0xf1, 0x3f, 0x1e, 0xc4, 0xe1,\n\t0xc0, 0x0d, 0x51, 0xf5, 0xef, 0x35, 0x58, 0x1e, 0xb0, 0x54, 0xec, 0x12, 0x1e, 0x65, 0x22, 0x62,\n\t0xe9, 0xc4, 0x2e, 0xe1, 0x51, 0x86, 0x05, 0x07, 0x5d, 0x87, 0xac, 0x58, 0x45, 0x2c, 0xcf, 0x51,\n\t0x51, 0x2b, 0x87, 0x51, 0xab, 0x2a, 0xfa, 0x51, 0xa7, 0xf8, 0xe2, 0xe0, 0x7e, 0x56, 0x0a, 0xd9,\n\t0x38, 0x02, 0xe0, 0x55, 0x47, 0x28, 0xf5, 0xa8, 0x2a, 0x4c, 0x51, 0x75, 0x9b, 0x9c, 0x80, 0x25,\n\t0x5d, 0xff, 0x2e, 0x4e, 0x4a, 0xbe, 0x2b, 0x70, 0xfb, 0xf8, 0x8b, 0xf4, 0xcf, 0x72, 0xfe, 0x5e,\n\t0x58, 0x70, 0x90, 0x0f, 0x4b, 0x76, 0xdf, 0x72, 0x31, 0x71, 0xd3, 0x8d, 0x6e, 0x18, 0x79, 0x85,\n\t0xbc, 0xd4, 0xcf, 0xc1, 0x03, 0xe8, 0xfa, 0x2d, 0x18, 0x90, 0xe2, 0xed, 0xfe, 0x80, 0x31, 0x7f,\n\t0x48, 0xe1, 0x8c, 0xde, 0x66, 0x62, 0xed, 0x59, 0xe1, 0x53, 0xbd, 0x5e, 0xc5, 0x02, 0x45, 0xff,\n\t0x46, 0x83, 0x53, 0x43, 0x07, 0x67, 0xd4, 0xd8, 0xb4, 0x91, 0x8d, 0xad, 0xa2, 0x5e, 0x54, 0xc6,\n\t0xe0, 0xfc, 0x68, 0x4b, 0x7a, 0x91, 0xf9, 0x8b, 0x0f, 0x7b, 0x7f, 0xfd, 0xcf, 0x54, 0xf4, 0x22,\n\t0xa2, 0xab, 0xbd, 0x1b, 0xc5, 0x5b, 0x74, 0x1d, 0xae, 0x59, 0xf5, 0xd0, 0x93, 0x89, 0xf8, 0x45,\n\t0x3c, 0x3c, 0x20, 0x8d, 0x1a, 0xb0, 0xd8, 0x20, 0xfb, 0x66, 0xdb, 0x61, 0x4a, 0xb7, 0x8a, 0xda,\n\t0xe4, 0xeb, 0x26, 0xea, 0x76, 0x8a, 0x8b, 0x57, 0x7a, 0x30, 0x70, 0x1f, 0x26, 0xda, 0x80, 0x69,\n\t0xe6, 0x84, 0xed, 0xe6, 0x95, 0xb1, 0xd0, 0xf5, 0x9d, 0x9a, 0x91, 0x53, 0xee, 0x4f, 0xd7, 0x77,\n\t0x6a, 0x98, 0xdf, 0x46, 0xef, 0x43, 0x9a, 0xb6, 0x1d, 0xc2, 0x97, 0xa9, 0xe9, 0x89, 0xf6, 0x32,\n\t0xfe, 0xa6, 0x71, 0xf9, 0xf3, 0x53, 0x80, 0x25, 0x84, 0xfe, 0x25, 0x2c, 0xf4, 0x6c, 0x5c, 0xa8,\n\t0x05, 0xf3, 0x4e, 0xa2, 0x84, 0x55, 0x14, 0x2e, 0xfd, 0xaf, 0xba, 0x57, 0x0d, 0xe7, 0xa4, 0xd2,\n\t0x38, 0x9f, 0xe4, 0xe1, 0x1e, 0x78, 0xdd, 0x04, 0x88, 0x7d, 0xe5, 0x95, 0xc8, 0xcb, 0x47, 0x76,\n\t0x1b, 0x55, 0x89, 0xbc, 0xaa, 0x02, 0x2c, 0xe9, 0x7c, 0x7a, 0x05, 0xc4, 0xa2, 0x84, 0x55, 0xe2,\n\t0x7e, 0x19, 0x4d, 0xaf, 0x5a, 0xc4, 0xc1, 0x09, 0x29, 0xfd, 0x77, 0x0d, 0x16, 0x2a, 0xd2, 0xe4,\n\t0xaa, 0xe7, 0xd8, 0xd6, 0xbd, 0x63, 0x58, 0xb4, 0x6e, 0xf4, 0x2c, 0x5a, 0x4f, 0x68, 0xd3, 0x3d,\n\t0x86, 0x8d, 0xdc, 0xb4, 0x7e, 0xd2, 0xe0, 0xf9, 0x1e, 0xc9, 0xcd, 0xb8, 0x19, 0x45, 0x23, 0x41,\n\t0x1b, 0x37, 0x12, 0x7a, 0x10, 0x44, 0x69, 0x0d, 0x1d, 0x09, 0x68, 0x0b, 0x52, 0xcc, 0x53, 0x39,\n\t0x3a, 0x31, 0x1c, 0x21, 0x34, 0x9e, 0x6d, 0x75, 0x0f, 0xa7, 0x98, 0xa7, 0xff, 0xa2, 0x41, 0xbe,\n\t0x47, 0x2a, 0xd9, 0x44, 0x9f, 0xbd, 0xdd, 0x37, 0x60, 0x66, 0x9f, 0x7a, 0xad, 0xa7, 0xb1, 0x3c,\n\t0x0a, 0xfa, 0x55, 0xea, 0xb5, 0xb0, 0x80, 0xd1, 0xef, 0x6b, 0xb0, 0xdc, 0x23, 0x79, 0x0c, 0x0b,\n\t0xc9, 0x4e, 0xef, 0x42, 0x72, 0x76, 0x42, 0x1f, 0x46, 0xac, 0x25, 0xf7, 0x53, 0x7d, 0x1e, 0x70,\n\t0x5f, 0xd1, 0x3e, 0xe4, 0x7c, 0xaf, 0x51, 0x23, 0x0e, 0xb1, 0x98, 0x37, 0xac, 0xc0, 0x9f, 0xe4,\n\t0x84, 0xb9, 0x47, 0x9c, 0xf0, 0xaa, 0x71, 0xa2, 0xdb, 0x29, 0xe6, 0xaa, 0x31, 0x16, 0x4e, 0x02,\n\t0xa3, 0xbb, 0xb0, 0x1c, 0xed, 0xa2, 0x91, 0xb6, 0xd4, 0xd3, 0x6b, 0x3b, 0xd5, 0xed, 0x14, 0x97,\n\t0x2b, 0xfd, 0x88, 0x78, 0x50, 0x09, 0xba, 0x06, 0x19, 0xdb, 0x17, 0x9f, 0xdd, 0xea, 0x8b, 0xed,\n\t0x49, 0x8b, 0x9d, 0xfc, 0x3e, 0x97, 0x1f, 0x7f, 0xea, 0x80, 0xc3, 0xeb, 0xfa, 0x5f, 0xfd, 0x39,\n\t0xc0, 0x13, 0x0e, 0x6d, 0x25, 0xb6, 0x0f, 0x39, 0xf3, 0xce, 0x3d, 0xdd, 0xe6, 0xd1, 0x3b, 0x16,\n\t0x47, 0x37, 0xa1, 0x36, 0xb3, 0x9d, 0x92, 0xfc, 0x31, 0xa6, 0xb4, 0xed, 0xb2, 0x5d, 0x5a, 0x63,\n\t0xd4, 0x76, 0x9b, 0x72, 0x44, 0x27, 0xd6, 0xa2, 0xd3, 0x90, 0x51, 0x53, 0x53, 0x38, 0x9e, 0x96,\n\t0x5e, 0x6d, 0x4a, 0x12, 0x0e, 0x79, 0xfa, 0x51, 0x7f, 0x5e, 0x88, 0x19, 0x7a, 0xfb, 0x99, 0xe5,\n\t0xc5, 0x73, 0x2a, 0x1b, 0x47, 0xe7, 0xc6, 0x27, 0xf1, 0x62, 0x29, 0x33, 0x7d, 0x7d, 0xc2, 0x4c,\n\t0x4f, 0x4e, 0xb4, 0x91, 0x6b, 0x25, 0xfa, 0x10, 0x66, 0x89, 0x44, 0x97, 0x23, 0xf2, 0xe2, 0x84,\n\t0xe8, 0x71, 0x5b, 0x8d, 0x7f, 0x79, 0x50, 0x34, 0x05, 0x88, 0xde, 0xe1, 0x51, 0xe2, 0xb2, 0xfc,\n\t0x83, 0x5f, 0xee, 0xe1, 0x73, 0xc6, 0x4b, 0xd2, 0xd9, 0x88, 0x7c, 0xc4, 0x3f, 0x70, 0xa2, 0x23,\n\t0x4e, 0xde, 0xd0, 0x3f, 0x05, 0x34, 0xb8, 0xe4, 0x4c, 0xb0, 0x42, 0x9d, 0x81, 0x59, 0xb7, 0xdd,\n\t0xda, 0x23, 0xb2, 0x86, 0xd2, 0xb1, 0x81, 0x15, 0x41, 0xc5, 0x8a, 0x6b, 0xbc, 0xfd, 0xe0, 0x71,\n\t0x61, 0xea, 0xe1, 0xe3, 0xc2, 0xd4, 0xa3, 0xc7, 0x85, 0xa9, 0xaf, 0xba, 0x05, 0xed, 0x41, 0xb7,\n\t0xa0, 0x3d, 0xec, 0x16, 0xb4, 0x47, 0xdd, 0x82, 0xf6, 0x4f, 0xb7, 0xa0, 0x7d, 0xfb, 0x6f, 0x61,\n\t0xea, 0xa3, 0xfc, 0xa8, 0x5f, 0x4b, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0x24, 0x03, 0xec, 0x04,\n\t0x48, 0x15, 0x00, 0x00,\n}\n\nfunc (m *HTTPIngressPath) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HTTPIngressPath) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HTTPIngressPath) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.PathType != nil {\n\t\ti -= len(*m.PathType)\n\t\tcopy(dAtA[i:], *m.PathType)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.PathType)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\t{\n\t\tsize, err := m.Backend.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Path)\n\tcopy(dAtA[i:], m.Path)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Path)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HTTPIngressRuleValue) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HTTPIngressRuleValue) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HTTPIngressRuleValue) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Paths) > 0 {\n\t\tfor iNdEx := len(m.Paths) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Paths[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IPBlock) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IPBlock) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IPBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Except) > 0 {\n\t\tfor iNdEx := len(m.Except) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Except[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Except[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Except[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.CIDR)\n\tcopy(dAtA[i:], m.CIDR)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.CIDR)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Ingress) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Ingress) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Ingress) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressBackend) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressBackend) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressBackend) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Service != nil {\n\t\t{\n\t\t\tsize, err := m.Service.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Resource != nil {\n\t\t{\n\t\t\tsize, err := m.Resource.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressClass) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressClass) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressClass) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressClassList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressClassList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressClassList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressClassParametersReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressClassParametersReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressClassParametersReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Namespace != nil {\n\t\ti -= len(*m.Namespace)\n\t\tcopy(dAtA[i:], *m.Namespace)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Namespace)))\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.Scope != nil {\n\t\ti -= len(*m.Scope)\n\t\tcopy(dAtA[i:], *m.Scope)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Scope)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0x12\n\tif m.APIGroup != nil {\n\t\ti -= len(*m.APIGroup)\n\t\tcopy(dAtA[i:], *m.APIGroup)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.APIGroup)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressClassSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressClassSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressClassSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Parameters != nil {\n\t\t{\n\t\t\tsize, err := m.Parameters.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Controller)\n\tcopy(dAtA[i:], m.Controller)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Controller)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressLoadBalancerIngress) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressLoadBalancerIngress) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressLoadBalancerIngress) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Ports) > 0 {\n\t\tfor iNdEx := len(m.Ports) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ports[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\ti -= len(m.Hostname)\n\tcopy(dAtA[i:], m.Hostname)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Hostname)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.IP)\n\tcopy(dAtA[i:], m.IP)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.IP)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressLoadBalancerStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressLoadBalancerStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressLoadBalancerStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Ingress) > 0 {\n\t\tfor iNdEx := len(m.Ingress) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ingress[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressPortStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressPortStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressPortStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Error != nil {\n\t\ti -= len(*m.Error)\n\t\tcopy(dAtA[i:], *m.Error)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Error)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti -= len(m.Protocol)\n\tcopy(dAtA[i:], m.Protocol)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Protocol)))\n\ti--\n\tdAtA[i] = 0x12\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Port))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.IngressRuleValue.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Host)\n\tcopy(dAtA[i:], m.Host)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Host)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressRuleValue) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressRuleValue) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressRuleValue) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.HTTP != nil {\n\t\t{\n\t\t\tsize, err := m.HTTP.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressServiceBackend) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressServiceBackend) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressServiceBackend) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Port.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.IngressClassName != nil {\n\t\ti -= len(*m.IngressClassName)\n\t\tcopy(dAtA[i:], *m.IngressClassName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.IngressClassName)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif len(m.Rules) > 0 {\n\t\tfor iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Rules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.TLS) > 0 {\n\t\tfor iNdEx := len(m.TLS) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.TLS[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif m.DefaultBackend != nil {\n\t\t{\n\t\t\tsize, err := m.DefaultBackend.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.LoadBalancer.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressTLS) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressTLS) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressTLS) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.SecretName)\n\tcopy(dAtA[i:], m.SecretName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.SecretName)))\n\ti--\n\tdAtA[i] = 0x12\n\tif len(m.Hosts) > 0 {\n\t\tfor iNdEx := len(m.Hosts) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Hosts[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Hosts[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Hosts[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NetworkPolicy) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NetworkPolicy) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NetworkPolicy) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NetworkPolicyEgressRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NetworkPolicyEgressRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NetworkPolicyEgressRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.To) > 0 {\n\t\tfor iNdEx := len(m.To) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.To[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Ports) > 0 {\n\t\tfor iNdEx := len(m.Ports) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ports[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NetworkPolicyIngressRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NetworkPolicyIngressRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NetworkPolicyIngressRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.From) > 0 {\n\t\tfor iNdEx := len(m.From) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.From[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Ports) > 0 {\n\t\tfor iNdEx := len(m.Ports) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ports[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NetworkPolicyList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NetworkPolicyList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NetworkPolicyList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NetworkPolicyPeer) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NetworkPolicyPeer) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NetworkPolicyPeer) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.IPBlock != nil {\n\t\t{\n\t\t\tsize, err := m.IPBlock.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.NamespaceSelector != nil {\n\t\t{\n\t\t\tsize, err := m.NamespaceSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.PodSelector != nil {\n\t\t{\n\t\t\tsize, err := m.PodSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NetworkPolicyPort) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NetworkPolicyPort) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NetworkPolicyPort) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.EndPort != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.EndPort))\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif m.Port != nil {\n\t\t{\n\t\t\tsize, err := m.Port.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.Protocol != nil {\n\t\ti -= len(*m.Protocol)\n\t\tcopy(dAtA[i:], *m.Protocol)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Protocol)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NetworkPolicySpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NetworkPolicySpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NetworkPolicySpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.PolicyTypes) > 0 {\n\t\tfor iNdEx := len(m.PolicyTypes) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.PolicyTypes[iNdEx])\n\t\t\tcopy(dAtA[i:], m.PolicyTypes[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.PolicyTypes[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif len(m.Egress) > 0 {\n\t\tfor iNdEx := len(m.Egress) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Egress[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.Ingress) > 0 {\n\t\tfor iNdEx := len(m.Ingress) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ingress[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.PodSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ServiceBackendPort) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServiceBackendPort) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ServiceBackendPort) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Number))\n\ti--\n\tdAtA[i] = 0x10\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *HTTPIngressPath) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Path)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Backend.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.PathType != nil {\n\t\tl = len(*m.PathType)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *HTTPIngressRuleValue) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Paths) > 0 {\n\t\tfor _, e := range m.Paths {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *IPBlock) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.CIDR)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Except) > 0 {\n\t\tfor _, s := range m.Except {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *Ingress) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *IngressBackend) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Resource != nil {\n\t\tl = m.Resource.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Service != nil {\n\t\tl = m.Service.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *IngressClass) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *IngressClassList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *IngressClassParametersReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.APIGroup != nil {\n\t\tl = len(*m.APIGroup)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Scope != nil {\n\t\tl = len(*m.Scope)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Namespace != nil {\n\t\tl = len(*m.Namespace)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *IngressClassSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Controller)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Parameters != nil {\n\t\tl = m.Parameters.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *IngressList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *IngressLoadBalancerIngress) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.IP)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Hostname)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Ports) > 0 {\n\t\tfor _, e := range m.Ports {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *IngressLoadBalancerStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Ingress) > 0 {\n\t\tfor _, e := range m.Ingress {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *IngressPortStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Port))\n\tl = len(m.Protocol)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Error != nil {\n\t\tl = len(*m.Error)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *IngressRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Host)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.IngressRuleValue.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *IngressRuleValue) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.HTTP != nil {\n\t\tl = m.HTTP.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *IngressServiceBackend) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Port.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *IngressSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.DefaultBackend != nil {\n\t\tl = m.DefaultBackend.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.TLS) > 0 {\n\t\tfor _, e := range m.TLS {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Rules) > 0 {\n\t\tfor _, e := range m.Rules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.IngressClassName != nil {\n\t\tl = len(*m.IngressClassName)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *IngressStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.LoadBalancer.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *IngressTLS) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Hosts) > 0 {\n\t\tfor _, s := range m.Hosts {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.SecretName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *NetworkPolicy) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *NetworkPolicyEgressRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Ports) > 0 {\n\t\tfor _, e := range m.Ports {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.To) > 0 {\n\t\tfor _, e := range m.To {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *NetworkPolicyIngressRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Ports) > 0 {\n\t\tfor _, e := range m.Ports {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.From) > 0 {\n\t\tfor _, e := range m.From {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *NetworkPolicyList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *NetworkPolicyPeer) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.PodSelector != nil {\n\t\tl = m.PodSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.NamespaceSelector != nil {\n\t\tl = m.NamespaceSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.IPBlock != nil {\n\t\tl = m.IPBlock.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *NetworkPolicyPort) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Protocol != nil {\n\t\tl = len(*m.Protocol)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Port != nil {\n\t\tl = m.Port.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.EndPort != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.EndPort))\n\t}\n\treturn n\n}\n\nfunc (m *NetworkPolicySpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.PodSelector.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Ingress) > 0 {\n\t\tfor _, e := range m.Ingress {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Egress) > 0 {\n\t\tfor _, e := range m.Egress {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.PolicyTypes) > 0 {\n\t\tfor _, s := range m.PolicyTypes {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ServiceBackendPort) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.Number))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *HTTPIngressPath) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HTTPIngressPath{`,\n\t\t`Path:` + fmt.Sprintf(\"%v\", this.Path) + `,`,\n\t\t`Backend:` + strings.Replace(strings.Replace(this.Backend.String(), \"IngressBackend\", \"IngressBackend\", 1), `&`, ``, 1) + `,`,\n\t\t`PathType:` + valueToStringGenerated(this.PathType) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HTTPIngressRuleValue) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForPaths := \"[]HTTPIngressPath{\"\n\tfor _, f := range this.Paths {\n\t\trepeatedStringForPaths += strings.Replace(strings.Replace(f.String(), \"HTTPIngressPath\", \"HTTPIngressPath\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPaths += \"}\"\n\ts := strings.Join([]string{`&HTTPIngressRuleValue{`,\n\t\t`Paths:` + repeatedStringForPaths + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IPBlock) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IPBlock{`,\n\t\t`CIDR:` + fmt.Sprintf(\"%v\", this.CIDR) + `,`,\n\t\t`Except:` + fmt.Sprintf(\"%v\", this.Except) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Ingress) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Ingress{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"IngressSpec\", \"IngressSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"IngressStatus\", \"IngressStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressBackend) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressBackend{`,\n\t\t`Resource:` + strings.Replace(fmt.Sprintf(\"%v\", this.Resource), \"TypedLocalObjectReference\", \"v11.TypedLocalObjectReference\", 1) + `,`,\n\t\t`Service:` + strings.Replace(this.Service.String(), \"IngressServiceBackend\", \"IngressServiceBackend\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressClass) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressClass{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"IngressClassSpec\", \"IngressClassSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressClassList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]IngressClass{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"IngressClass\", \"IngressClass\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&IngressClassList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressClassParametersReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressClassParametersReference{`,\n\t\t`APIGroup:` + valueToStringGenerated(this.APIGroup) + `,`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Scope:` + valueToStringGenerated(this.Scope) + `,`,\n\t\t`Namespace:` + valueToStringGenerated(this.Namespace) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressClassSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressClassSpec{`,\n\t\t`Controller:` + fmt.Sprintf(\"%v\", this.Controller) + `,`,\n\t\t`Parameters:` + strings.Replace(this.Parameters.String(), \"IngressClassParametersReference\", \"IngressClassParametersReference\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Ingress{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Ingress\", \"Ingress\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&IngressList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressLoadBalancerIngress) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForPorts := \"[]IngressPortStatus{\"\n\tfor _, f := range this.Ports {\n\t\trepeatedStringForPorts += strings.Replace(strings.Replace(f.String(), \"IngressPortStatus\", \"IngressPortStatus\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPorts += \"}\"\n\ts := strings.Join([]string{`&IngressLoadBalancerIngress{`,\n\t\t`IP:` + fmt.Sprintf(\"%v\", this.IP) + `,`,\n\t\t`Hostname:` + fmt.Sprintf(\"%v\", this.Hostname) + `,`,\n\t\t`Ports:` + repeatedStringForPorts + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressLoadBalancerStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForIngress := \"[]IngressLoadBalancerIngress{\"\n\tfor _, f := range this.Ingress {\n\t\trepeatedStringForIngress += strings.Replace(strings.Replace(f.String(), \"IngressLoadBalancerIngress\", \"IngressLoadBalancerIngress\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForIngress += \"}\"\n\ts := strings.Join([]string{`&IngressLoadBalancerStatus{`,\n\t\t`Ingress:` + repeatedStringForIngress + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressPortStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressPortStatus{`,\n\t\t`Port:` + fmt.Sprintf(\"%v\", this.Port) + `,`,\n\t\t`Protocol:` + fmt.Sprintf(\"%v\", this.Protocol) + `,`,\n\t\t`Error:` + valueToStringGenerated(this.Error) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressRule{`,\n\t\t`Host:` + fmt.Sprintf(\"%v\", this.Host) + `,`,\n\t\t`IngressRuleValue:` + strings.Replace(strings.Replace(this.IngressRuleValue.String(), \"IngressRuleValue\", \"IngressRuleValue\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressRuleValue) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressRuleValue{`,\n\t\t`HTTP:` + strings.Replace(this.HTTP.String(), \"HTTPIngressRuleValue\", \"HTTPIngressRuleValue\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressServiceBackend) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressServiceBackend{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Port:` + strings.Replace(strings.Replace(this.Port.String(), \"ServiceBackendPort\", \"ServiceBackendPort\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForTLS := \"[]IngressTLS{\"\n\tfor _, f := range this.TLS {\n\t\trepeatedStringForTLS += strings.Replace(strings.Replace(f.String(), \"IngressTLS\", \"IngressTLS\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForTLS += \"}\"\n\trepeatedStringForRules := \"[]IngressRule{\"\n\tfor _, f := range this.Rules {\n\t\trepeatedStringForRules += strings.Replace(strings.Replace(f.String(), \"IngressRule\", \"IngressRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRules += \"}\"\n\ts := strings.Join([]string{`&IngressSpec{`,\n\t\t`DefaultBackend:` + strings.Replace(this.DefaultBackend.String(), \"IngressBackend\", \"IngressBackend\", 1) + `,`,\n\t\t`TLS:` + repeatedStringForTLS + `,`,\n\t\t`Rules:` + repeatedStringForRules + `,`,\n\t\t`IngressClassName:` + valueToStringGenerated(this.IngressClassName) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressStatus{`,\n\t\t`LoadBalancer:` + strings.Replace(strings.Replace(this.LoadBalancer.String(), \"IngressLoadBalancerStatus\", \"IngressLoadBalancerStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressTLS) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressTLS{`,\n\t\t`Hosts:` + fmt.Sprintf(\"%v\", this.Hosts) + `,`,\n\t\t`SecretName:` + fmt.Sprintf(\"%v\", this.SecretName) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NetworkPolicy) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NetworkPolicy{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"NetworkPolicySpec\", \"NetworkPolicySpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NetworkPolicyEgressRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForPorts := \"[]NetworkPolicyPort{\"\n\tfor _, f := range this.Ports {\n\t\trepeatedStringForPorts += strings.Replace(strings.Replace(f.String(), \"NetworkPolicyPort\", \"NetworkPolicyPort\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPorts += \"}\"\n\trepeatedStringForTo := \"[]NetworkPolicyPeer{\"\n\tfor _, f := range this.To {\n\t\trepeatedStringForTo += strings.Replace(strings.Replace(f.String(), \"NetworkPolicyPeer\", \"NetworkPolicyPeer\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForTo += \"}\"\n\ts := strings.Join([]string{`&NetworkPolicyEgressRule{`,\n\t\t`Ports:` + repeatedStringForPorts + `,`,\n\t\t`To:` + repeatedStringForTo + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NetworkPolicyIngressRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForPorts := \"[]NetworkPolicyPort{\"\n\tfor _, f := range this.Ports {\n\t\trepeatedStringForPorts += strings.Replace(strings.Replace(f.String(), \"NetworkPolicyPort\", \"NetworkPolicyPort\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPorts += \"}\"\n\trepeatedStringForFrom := \"[]NetworkPolicyPeer{\"\n\tfor _, f := range this.From {\n\t\trepeatedStringForFrom += strings.Replace(strings.Replace(f.String(), \"NetworkPolicyPeer\", \"NetworkPolicyPeer\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForFrom += \"}\"\n\ts := strings.Join([]string{`&NetworkPolicyIngressRule{`,\n\t\t`Ports:` + repeatedStringForPorts + `,`,\n\t\t`From:` + repeatedStringForFrom + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NetworkPolicyList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]NetworkPolicy{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"NetworkPolicy\", \"NetworkPolicy\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&NetworkPolicyList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NetworkPolicyPeer) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NetworkPolicyPeer{`,\n\t\t`PodSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.PodSelector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`NamespaceSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.NamespaceSelector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`IPBlock:` + strings.Replace(this.IPBlock.String(), \"IPBlock\", \"IPBlock\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NetworkPolicyPort) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NetworkPolicyPort{`,\n\t\t`Protocol:` + valueToStringGenerated(this.Protocol) + `,`,\n\t\t`Port:` + strings.Replace(fmt.Sprintf(\"%v\", this.Port), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`EndPort:` + valueToStringGenerated(this.EndPort) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NetworkPolicySpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForIngress := \"[]NetworkPolicyIngressRule{\"\n\tfor _, f := range this.Ingress {\n\t\trepeatedStringForIngress += strings.Replace(strings.Replace(f.String(), \"NetworkPolicyIngressRule\", \"NetworkPolicyIngressRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForIngress += \"}\"\n\trepeatedStringForEgress := \"[]NetworkPolicyEgressRule{\"\n\tfor _, f := range this.Egress {\n\t\trepeatedStringForEgress += strings.Replace(strings.Replace(f.String(), \"NetworkPolicyEgressRule\", \"NetworkPolicyEgressRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForEgress += \"}\"\n\ts := strings.Join([]string{`&NetworkPolicySpec{`,\n\t\t`PodSelector:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.PodSelector), \"LabelSelector\", \"v1.LabelSelector\", 1), `&`, ``, 1) + `,`,\n\t\t`Ingress:` + repeatedStringForIngress + `,`,\n\t\t`Egress:` + repeatedStringForEgress + `,`,\n\t\t`PolicyTypes:` + fmt.Sprintf(\"%v\", this.PolicyTypes) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ServiceBackendPort) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ServiceBackendPort{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Number:` + fmt.Sprintf(\"%v\", this.Number) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *HTTPIngressPath) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HTTPIngressPath: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HTTPIngressPath: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Path\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Path = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Backend\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Backend.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PathType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := PathType(dAtA[iNdEx:postIndex])\n\t\t\tm.PathType = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HTTPIngressRuleValue) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HTTPIngressRuleValue: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HTTPIngressRuleValue: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Paths\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Paths = append(m.Paths, HTTPIngressPath{})\n\t\t\tif err := m.Paths[len(m.Paths)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IPBlock) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IPBlock: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IPBlock: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CIDR\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.CIDR = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Except\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Except = append(m.Except, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Ingress) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Ingress: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Ingress: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressBackend) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressBackend: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressBackend: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Resource == nil {\n\t\t\t\tm.Resource = &v11.TypedLocalObjectReference{}\n\t\t\t}\n\t\t\tif err := m.Resource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Service\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Service == nil {\n\t\t\t\tm.Service = &IngressServiceBackend{}\n\t\t\t}\n\t\t\tif err := m.Service.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressClass) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressClass: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressClass: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressClassList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressClassList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressClassList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, IngressClass{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressClassParametersReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressClassParametersReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressClassParametersReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIGroup\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.APIGroup = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Scope\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.Scope = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.Namespace = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressClassSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressClassSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressClassSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Controller\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Controller = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Parameters\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Parameters == nil {\n\t\t\t\tm.Parameters = &IngressClassParametersReference{}\n\t\t\t}\n\t\t\tif err := m.Parameters.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Ingress{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressLoadBalancerIngress) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressLoadBalancerIngress: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressLoadBalancerIngress: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IP\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.IP = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Hostname\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Hostname = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ports\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ports = append(m.Ports, IngressPortStatus{})\n\t\t\tif err := m.Ports[len(m.Ports)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressLoadBalancerStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressLoadBalancerStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressLoadBalancerStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ingress\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ingress = append(m.Ingress, IngressLoadBalancerIngress{})\n\t\t\tif err := m.Ingress[len(m.Ingress)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressPortStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressPortStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressPortStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Port\", wireType)\n\t\t\t}\n\t\t\tm.Port = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Port |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Protocol\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Protocol = k8s_io_api_core_v1.Protocol(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Error\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.Error = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Host\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Host = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IngressRuleValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.IngressRuleValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressRuleValue) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressRuleValue: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressRuleValue: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HTTP\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.HTTP == nil {\n\t\t\t\tm.HTTP = &HTTPIngressRuleValue{}\n\t\t\t}\n\t\t\tif err := m.HTTP.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressServiceBackend) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressServiceBackend: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressServiceBackend: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Port\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Port.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DefaultBackend\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.DefaultBackend == nil {\n\t\t\t\tm.DefaultBackend = &IngressBackend{}\n\t\t\t}\n\t\t\tif err := m.DefaultBackend.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TLS\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TLS = append(m.TLS, IngressTLS{})\n\t\t\tif err := m.TLS[len(m.TLS)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Rules = append(m.Rules, IngressRule{})\n\t\t\tif err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IngressClassName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.IngressClassName = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LoadBalancer\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LoadBalancer.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressTLS) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressTLS: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressTLS: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Hosts\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Hosts = append(m.Hosts, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SecretName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NetworkPolicy) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicy: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicy: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NetworkPolicyEgressRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyEgressRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyEgressRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ports\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ports = append(m.Ports, NetworkPolicyPort{})\n\t\t\tif err := m.Ports[len(m.Ports)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field To\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.To = append(m.To, NetworkPolicyPeer{})\n\t\t\tif err := m.To[len(m.To)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NetworkPolicyIngressRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyIngressRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyIngressRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ports\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ports = append(m.Ports, NetworkPolicyPort{})\n\t\t\tif err := m.Ports[len(m.Ports)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field From\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.From = append(m.From, NetworkPolicyPeer{})\n\t\t\tif err := m.From[len(m.From)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NetworkPolicyList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, NetworkPolicy{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NetworkPolicyPeer) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyPeer: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyPeer: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.PodSelector == nil {\n\t\t\t\tm.PodSelector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.PodSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NamespaceSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NamespaceSelector == nil {\n\t\t\t\tm.NamespaceSelector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.NamespaceSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IPBlock\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.IPBlock == nil {\n\t\t\t\tm.IPBlock = &IPBlock{}\n\t\t\t}\n\t\t\tif err := m.IPBlock.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NetworkPolicyPort) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyPort: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicyPort: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Protocol\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := k8s_io_api_core_v1.Protocol(dAtA[iNdEx:postIndex])\n\t\t\tm.Protocol = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Port\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Port == nil {\n\t\t\t\tm.Port = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.Port.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field EndPort\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.EndPort = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NetworkPolicySpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicySpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkPolicySpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.PodSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ingress\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ingress = append(m.Ingress, NetworkPolicyIngressRule{})\n\t\t\tif err := m.Ingress[len(m.Ingress)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Egress\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Egress = append(m.Egress, NetworkPolicyEgressRule{})\n\t\t\tif err := m.Egress[len(m.Egress)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PolicyTypes\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.PolicyTypes = append(m.PolicyTypes, PolicyType(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ServiceBackendPort) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceBackendPort: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceBackendPort: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Number\", wireType)\n\t\t\t}\n\t\t\tm.Number = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Number |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.networking.v1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/util/intstr/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/networking/v1\";\n\n// HTTPIngressPath associates a path with a backend. Incoming urls matching the\n// path are forwarded to the backend.\nmessage HTTPIngressPath {\n  // path is matched against the path of an incoming request. Currently it can\n  // contain characters disallowed from the conventional \"path\" part of a URL\n  // as defined by RFC 3986. Paths must begin with a '/' and must be present\n  // when using PathType with value \"Exact\" or \"Prefix\".\n  // +optional\n  optional string path = 1;\n\n  // pathType determines the interpretation of the path matching. PathType can\n  // be one of the following values:\n  // * Exact: Matches the URL path exactly.\n  // * Prefix: Matches based on a URL path prefix split by '/'. Matching is\n  //   done on a path element by element basis. A path element refers is the\n  //   list of labels in the path split by the '/' separator. A request is a\n  //   match for path p if every p is an element-wise prefix of p of the\n  //   request path. Note that if the last element of the path is a substring\n  //   of the last element in request path, it is not a match (e.g. /foo/bar\n  //   matches /foo/bar/baz, but does not match /foo/barbaz).\n  // * ImplementationSpecific: Interpretation of the Path matching is up to\n  //   the IngressClass. Implementations can treat this as a separate PathType\n  //   or treat it identically to Prefix or Exact path types.\n  // Implementations are required to support all path types.\n  optional string pathType = 3;\n\n  // backend defines the referenced service endpoint to which the traffic\n  // will be forwarded to.\n  optional IngressBackend backend = 2;\n}\n\n// HTTPIngressRuleValue is a list of http selectors pointing to backends.\n// In the example: http://<host>/<path>?<searchpart> -> backend where\n// where parts of the url correspond to RFC 3986, this resource will be used\n// to match against everything after the last '/' and before the first '?'\n// or '#'.\nmessage HTTPIngressRuleValue {\n  // paths is a collection of paths that map requests to backends.\n  // +listType=atomic\n  repeated HTTPIngressPath paths = 1;\n}\n\n// IPBlock describes a particular CIDR (Ex. \"192.168.1.0/24\",\"2001:db8::/64\") that is allowed\n// to the pods matched by a NetworkPolicySpec's podSelector. The except entry describes CIDRs\n// that should not be included within this rule.\nmessage IPBlock {\n  // cidr is a string representing the IPBlock\n  // Valid examples are \"192.168.1.0/24\" or \"2001:db8::/64\"\n  optional string cidr = 1;\n\n  // except is a slice of CIDRs that should not be included within an IPBlock\n  // Valid examples are \"192.168.1.0/24\" or \"2001:db8::/64\"\n  // Except values will be rejected if they are outside the cidr range\n  // +optional\n  // +listType=atomic\n  repeated string except = 2;\n}\n\n// Ingress is a collection of rules that allow inbound connections to reach the\n// endpoints defined by a backend. An Ingress can be configured to give services\n// externally-reachable urls, load balance traffic, terminate SSL, offer name\n// based virtual hosting etc.\nmessage Ingress {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec is the desired state of the Ingress.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional IngressSpec spec = 2;\n\n  // status is the current state of the Ingress.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional IngressStatus status = 3;\n}\n\n// IngressBackend describes all endpoints for a given service and port.\nmessage IngressBackend {\n  // service references a service as a backend.\n  // This is a mutually exclusive setting with \"Resource\".\n  // +optional\n  optional IngressServiceBackend service = 4;\n\n  // resource is an ObjectRef to another Kubernetes resource in the namespace\n  // of the Ingress object. If resource is specified, a service.Name and\n  // service.Port must not be specified.\n  // This is a mutually exclusive setting with \"Service\".\n  // +optional\n  optional .k8s.io.api.core.v1.TypedLocalObjectReference resource = 3;\n}\n\n// IngressClass represents the class of the Ingress, referenced by the Ingress\n// Spec. The `ingressclass.kubernetes.io/is-default-class` annotation can be\n// used to indicate that an IngressClass should be considered default. When a\n// single IngressClass resource has this annotation set to true, new Ingress\n// resources without a class specified will be assigned this default class.\nmessage IngressClass {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec is the desired state of the IngressClass.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional IngressClassSpec spec = 2;\n}\n\n// IngressClassList is a collection of IngressClasses.\nmessage IngressClassList {\n  // Standard list metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of IngressClasses.\n  repeated IngressClass items = 2;\n}\n\n// IngressClassParametersReference identifies an API object. This can be used\n// to specify a cluster or namespace-scoped resource.\nmessage IngressClassParametersReference {\n  // apiGroup is the group for the resource being referenced. If APIGroup is\n  // not specified, the specified Kind must be in the core API group. For any\n  // other third-party types, APIGroup is required.\n  // +optional\n  optional string aPIGroup = 1;\n\n  // kind is the type of resource being referenced.\n  optional string kind = 2;\n\n  // name is the name of resource being referenced.\n  optional string name = 3;\n\n  // scope represents if this refers to a cluster or namespace scoped resource.\n  // This may be set to \"Cluster\" (default) or \"Namespace\".\n  // +optional\n  optional string scope = 4;\n\n  // namespace is the namespace of the resource being referenced. This field is\n  // required when scope is set to \"Namespace\" and must be unset when scope is set to\n  // \"Cluster\".\n  // +optional\n  optional string namespace = 5;\n}\n\n// IngressClassSpec provides information about the class of an Ingress.\nmessage IngressClassSpec {\n  // controller refers to the name of the controller that should handle this\n  // class. This allows for different \"flavors\" that are controlled by the\n  // same controller. For example, you may have different parameters for the\n  // same implementing controller. This should be specified as a\n  // domain-prefixed path no more than 250 characters in length, e.g.\n  // \"acme.io/ingress-controller\". This field is immutable.\n  optional string controller = 1;\n\n  // parameters is a link to a custom resource containing additional\n  // configuration for the controller. This is optional if the controller does\n  // not require extra parameters.\n  // +optional\n  optional IngressClassParametersReference parameters = 2;\n}\n\n// IngressList is a collection of Ingress.\nmessage IngressList {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of Ingress.\n  repeated Ingress items = 2;\n}\n\n// IngressLoadBalancerIngress represents the status of a load-balancer ingress point.\nmessage IngressLoadBalancerIngress {\n  // ip is set for load-balancer ingress points that are IP based.\n  // +optional\n  optional string ip = 1;\n\n  // hostname is set for load-balancer ingress points that are DNS based.\n  // +optional\n  optional string hostname = 2;\n\n  // ports provides information about the ports exposed by this LoadBalancer.\n  // +listType=atomic\n  // +optional\n  repeated IngressPortStatus ports = 4;\n}\n\n// IngressLoadBalancerStatus represents the status of a load-balancer.\nmessage IngressLoadBalancerStatus {\n  // ingress is a list containing ingress points for the load-balancer.\n  // +optional\n  // +listType=atomic\n  repeated IngressLoadBalancerIngress ingress = 1;\n}\n\n// IngressPortStatus represents the error condition of a service port\nmessage IngressPortStatus {\n  // port is the port number of the ingress port.\n  optional int32 port = 1;\n\n  // protocol is the protocol of the ingress port.\n  // The supported values are: \"TCP\", \"UDP\", \"SCTP\"\n  optional string protocol = 2;\n\n  // error is to record the problem with the service port\n  // The format of the error shall comply with the following rules:\n  // - built-in error values shall be specified in this file and those shall use\n  //   CamelCase names\n  // - cloud provider specific error values must have names that comply with the\n  //   format foo.example.com/CamelCase.\n  // ---\n  // The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)\n  // +optional\n  // +kubebuilder:validation:Required\n  // +kubebuilder:validation:Pattern=`^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$`\n  // +kubebuilder:validation:MaxLength=316\n  optional string error = 3;\n}\n\n// IngressRule represents the rules mapping the paths under a specified host to\n// the related backend services. Incoming requests are first evaluated for a host\n// match, then routed to the backend associated with the matching IngressRuleValue.\nmessage IngressRule {\n  // host is the fully qualified domain name of a network host, as defined by RFC 3986.\n  // Note the following deviations from the \"host\" part of the\n  // URI as defined in RFC 3986:\n  // 1. IPs are not allowed. Currently an IngressRuleValue can only apply to\n  //    the IP in the Spec of the parent Ingress.\n  // 2. The `:` delimiter is not respected because ports are not allowed.\n  // \t  Currently the port of an Ingress is implicitly :80 for http and\n  // \t  :443 for https.\n  // Both these may change in the future.\n  // Incoming requests are matched against the host before the\n  // IngressRuleValue. If the host is unspecified, the Ingress routes all\n  // traffic based on the specified IngressRuleValue.\n  //\n  // host can be \"precise\" which is a domain name without the terminating dot of\n  // a network host (e.g. \"foo.bar.com\") or \"wildcard\", which is a domain name\n  // prefixed with a single wildcard label (e.g. \"*.foo.com\").\n  // The wildcard character '*' must appear by itself as the first DNS label and\n  // matches only a single label. You cannot have a wildcard label by itself (e.g. Host == \"*\").\n  // Requests will be matched against the Host field in the following way:\n  // 1. If host is precise, the request matches this rule if the http host header is equal to Host.\n  // 2. If host is a wildcard, then the request matches this rule if the http host header\n  // is to equal to the suffix (removing the first label) of the wildcard rule.\n  // +optional\n  optional string host = 1;\n\n  // IngressRuleValue represents a rule to route requests for this IngressRule.\n  // If unspecified, the rule defaults to a http catch-all. Whether that sends\n  // just traffic matching the host to the default backend or all traffic to the\n  // default backend, is left to the controller fulfilling the Ingress. Http is\n  // currently the only supported IngressRuleValue.\n  // +optional\n  optional IngressRuleValue ingressRuleValue = 2;\n}\n\n// IngressRuleValue represents a rule to apply against incoming requests. If the\n// rule is satisfied, the request is routed to the specified backend. Currently\n// mixing different types of rules in a single Ingress is disallowed, so exactly\n// one of the following must be set.\nmessage IngressRuleValue {\n  // +optional\n  optional HTTPIngressRuleValue http = 1;\n}\n\n// IngressServiceBackend references a Kubernetes Service as a Backend.\nmessage IngressServiceBackend {\n  // name is the referenced service. The service must exist in\n  // the same namespace as the Ingress object.\n  optional string name = 1;\n\n  // port of the referenced service. A port name or port number\n  // is required for a IngressServiceBackend.\n  optional ServiceBackendPort port = 2;\n}\n\n// IngressSpec describes the Ingress the user wishes to exist.\nmessage IngressSpec {\n  // ingressClassName is the name of an IngressClass cluster resource. Ingress\n  // controller implementations use this field to know whether they should be\n  // serving this Ingress resource, by a transitive connection\n  // (controller -> IngressClass -> Ingress resource). Although the\n  // `kubernetes.io/ingress.class` annotation (simple constant name) was never\n  // formally defined, it was widely supported by Ingress controllers to create\n  // a direct binding between Ingress controller and Ingress resources. Newly\n  // created Ingress resources should prefer using the field. However, even\n  // though the annotation is officially deprecated, for backwards compatibility\n  // reasons, ingress controllers should still honor that annotation if present.\n  // +optional\n  optional string ingressClassName = 4;\n\n  // defaultBackend is the backend that should handle requests that don't\n  // match any rule. If Rules are not specified, DefaultBackend must be specified.\n  // If DefaultBackend is not set, the handling of requests that do not match any\n  // of the rules will be up to the Ingress controller.\n  // +optional\n  optional IngressBackend defaultBackend = 1;\n\n  // tls represents the TLS configuration. Currently the Ingress only supports a\n  // single TLS port, 443. If multiple members of this list specify different hosts,\n  // they will be multiplexed on the same port according to the hostname specified\n  // through the SNI TLS extension, if the ingress controller fulfilling the\n  // ingress supports SNI.\n  // +listType=atomic\n  // +optional\n  repeated IngressTLS tls = 2;\n\n  // rules is a list of host rules used to configure the Ingress. If unspecified,\n  // or no rule matches, all traffic is sent to the default backend.\n  // +listType=atomic\n  // +optional\n  repeated IngressRule rules = 3;\n}\n\n// IngressStatus describe the current state of the Ingress.\nmessage IngressStatus {\n  // loadBalancer contains the current status of the load-balancer.\n  // +optional\n  optional IngressLoadBalancerStatus loadBalancer = 1;\n}\n\n// IngressTLS describes the transport layer security associated with an ingress.\nmessage IngressTLS {\n  // hosts is a list of hosts included in the TLS certificate. The values in\n  // this list must match the name/s used in the tlsSecret. Defaults to the\n  // wildcard host setting for the loadbalancer controller fulfilling this\n  // Ingress, if left unspecified.\n  // +listType=atomic\n  // +optional\n  repeated string hosts = 1;\n\n  // secretName is the name of the secret used to terminate TLS traffic on\n  // port 443. Field is left optional to allow TLS routing based on SNI\n  // hostname alone. If the SNI host in a listener conflicts with the \"Host\"\n  // header field used by an IngressRule, the SNI host is used for termination\n  // and value of the \"Host\" header is used for routing.\n  // +optional\n  optional string secretName = 2;\n}\n\n// NetworkPolicy describes what network traffic is allowed for a set of Pods\nmessage NetworkPolicy {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec represents the specification of the desired behavior for this NetworkPolicy.\n  // +optional\n  optional NetworkPolicySpec spec = 2;\n}\n\n// NetworkPolicyEgressRule describes a particular set of traffic that is allowed out of pods\n// matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and to.\n// This type is beta-level in 1.8\nmessage NetworkPolicyEgressRule {\n  // ports is a list of destination ports for outgoing traffic.\n  // Each item in this list is combined using a logical OR. If this field is\n  // empty or missing, this rule matches all ports (traffic not restricted by port).\n  // If this field is present and contains at least one item, then this rule allows\n  // traffic only if the traffic matches at least one port in the list.\n  // +optional\n  // +listType=atomic\n  repeated NetworkPolicyPort ports = 1;\n\n  // to is a list of destinations for outgoing traffic of pods selected for this rule.\n  // Items in this list are combined using a logical OR operation. If this field is\n  // empty or missing, this rule matches all destinations (traffic not restricted by\n  // destination). If this field is present and contains at least one item, this rule\n  // allows traffic only if the traffic matches at least one item in the to list.\n  // +optional\n  // +listType=atomic\n  repeated NetworkPolicyPeer to = 2;\n}\n\n// NetworkPolicyIngressRule describes a particular set of traffic that is allowed to the pods\n// matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and from.\nmessage NetworkPolicyIngressRule {\n  // ports is a list of ports which should be made accessible on the pods selected for\n  // this rule. Each item in this list is combined using a logical OR. If this field is\n  // empty or missing, this rule matches all ports (traffic not restricted by port).\n  // If this field is present and contains at least one item, then this rule allows\n  // traffic only if the traffic matches at least one port in the list.\n  // +optional\n  // +listType=atomic\n  repeated NetworkPolicyPort ports = 1;\n\n  // from is a list of sources which should be able to access the pods selected for this rule.\n  // Items in this list are combined using a logical OR operation. If this field is\n  // empty or missing, this rule matches all sources (traffic not restricted by\n  // source). If this field is present and contains at least one item, this rule\n  // allows traffic only if the traffic matches at least one item in the from list.\n  // +optional\n  // +listType=atomic\n  repeated NetworkPolicyPeer from = 2;\n}\n\n// NetworkPolicyList is a list of NetworkPolicy objects.\nmessage NetworkPolicyList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is a list of schema objects.\n  repeated NetworkPolicy items = 2;\n}\n\n// NetworkPolicyPeer describes a peer to allow traffic to/from. Only certain combinations of\n// fields are allowed\nmessage NetworkPolicyPeer {\n  // podSelector is a label selector which selects pods. This field follows standard label\n  // selector semantics; if present but empty, it selects all pods.\n  //\n  // If namespaceSelector is also set, then the NetworkPolicyPeer as a whole selects\n  // the pods matching podSelector in the Namespaces selected by NamespaceSelector.\n  // Otherwise it selects the pods matching podSelector in the policy's own namespace.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector podSelector = 1;\n\n  // namespaceSelector selects namespaces using cluster-scoped labels. This field follows\n  // standard label selector semantics; if present but empty, it selects all namespaces.\n  //\n  // If podSelector is also set, then the NetworkPolicyPeer as a whole selects\n  // the pods matching podSelector in the namespaces selected by namespaceSelector.\n  // Otherwise it selects all pods in the namespaces selected by namespaceSelector.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector namespaceSelector = 2;\n\n  // ipBlock defines policy on a particular IPBlock. If this field is set then\n  // neither of the other fields can be.\n  // +optional\n  optional IPBlock ipBlock = 3;\n}\n\n// NetworkPolicyPort describes a port to allow traffic on\nmessage NetworkPolicyPort {\n  // protocol represents the protocol (TCP, UDP, or SCTP) which traffic must match.\n  // If not specified, this field defaults to TCP.\n  // +optional\n  optional string protocol = 1;\n\n  // port represents the port on the given protocol. This can either be a numerical or named\n  // port on a pod. If this field is not provided, this matches all port names and\n  // numbers.\n  // If present, only traffic on the specified protocol AND port will be matched.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString port = 2;\n\n  // endPort indicates that the range of ports from port to endPort if set, inclusive,\n  // should be allowed by the policy. This field cannot be defined if the port field\n  // is not defined or if the port field is defined as a named (string) port.\n  // The endPort must be equal or greater than port.\n  // +optional\n  optional int32 endPort = 3;\n}\n\n// NetworkPolicySpec provides the specification of a NetworkPolicy\nmessage NetworkPolicySpec {\n  // podSelector selects the pods to which this NetworkPolicy object applies.\n  // The array of ingress rules is applied to any pods selected by this field.\n  // Multiple network policies can select the same set of pods. In this case,\n  // the ingress rules for each are combined additively.\n  // This field is NOT optional and follows standard label selector semantics.\n  // An empty podSelector matches all pods in this namespace.\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector podSelector = 1;\n\n  // ingress is a list of ingress rules to be applied to the selected pods.\n  // Traffic is allowed to a pod if there are no NetworkPolicies selecting the pod\n  // (and cluster policy otherwise allows the traffic), OR if the traffic source is\n  // the pod's local node, OR if the traffic matches at least one ingress rule\n  // across all of the NetworkPolicy objects whose podSelector matches the pod. If\n  // this field is empty then this NetworkPolicy does not allow any traffic (and serves\n  // solely to ensure that the pods it selects are isolated by default)\n  // +optional\n  // +listType=atomic\n  repeated NetworkPolicyIngressRule ingress = 2;\n\n  // egress is a list of egress rules to be applied to the selected pods. Outgoing traffic\n  // is allowed if there are no NetworkPolicies selecting the pod (and cluster policy\n  // otherwise allows the traffic), OR if the traffic matches at least one egress rule\n  // across all of the NetworkPolicy objects whose podSelector matches the pod. If\n  // this field is empty then this NetworkPolicy limits all outgoing traffic (and serves\n  // solely to ensure that the pods it selects are isolated by default).\n  // This field is beta-level in 1.8\n  // +optional\n  // +listType=atomic\n  repeated NetworkPolicyEgressRule egress = 3;\n\n  // policyTypes is a list of rule types that the NetworkPolicy relates to.\n  // Valid options are [\"Ingress\"], [\"Egress\"], or [\"Ingress\", \"Egress\"].\n  // If this field is not specified, it will default based on the existence of ingress or egress rules;\n  // policies that contain an egress section are assumed to affect egress, and all policies\n  // (whether or not they contain an ingress section) are assumed to affect ingress.\n  // If you want to write an egress-only policy, you must explicitly specify policyTypes [ \"Egress\" ].\n  // Likewise, if you want to write a policy that specifies that no egress is allowed,\n  // you must specify a policyTypes value that include \"Egress\" (since such a policy would not include\n  // an egress section and would otherwise default to just [ \"Ingress\" ]).\n  // This field is beta-level in 1.8\n  // +optional\n  // +listType=atomic\n  repeated string policyTypes = 4;\n}\n\n// ServiceBackendPort is the service port being referenced.\n// +structType=atomic\nmessage ServiceBackendPort {\n  // name is the name of the port on the Service.\n  // This is a mutually exclusive setting with \"Number\".\n  // +optional\n  optional string name = 1;\n\n  // number is the numerical port number (e.g. 80) on the Service.\n  // This is a mutually exclusive setting with \"Name\".\n  // +optional\n  optional int32 number = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1/register.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"networking.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&Ingress{},\n\t\t&IngressList{},\n\t\t&IngressClass{},\n\t\t&IngressClassList{},\n\t\t&NetworkPolicy{},\n\t\t&NetworkPolicyList{},\n\t)\n\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1/types.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.7\n\n// NetworkPolicy describes what network traffic is allowed for a set of Pods\ntype NetworkPolicy struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec represents the specification of the desired behavior for this NetworkPolicy.\n\t// +optional\n\tSpec NetworkPolicySpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// Status is tombstoned to show why 3 is a reserved protobuf tag.\n\t// This commented field should remain, so in the future if we decide to reimplement\n\t// NetworkPolicyStatus a different protobuf name and tag SHOULD be used!\n\t// Status NetworkPolicyStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// PolicyType string describes the NetworkPolicy type\n// This type is beta-level in 1.8\n// +enum\ntype PolicyType string\n\nconst (\n\t// PolicyTypeIngress is a NetworkPolicy that affects ingress traffic on selected pods\n\tPolicyTypeIngress PolicyType = \"Ingress\"\n\t// PolicyTypeEgress is a NetworkPolicy that affects egress traffic on selected pods\n\tPolicyTypeEgress PolicyType = \"Egress\"\n)\n\n// NetworkPolicySpec provides the specification of a NetworkPolicy\ntype NetworkPolicySpec struct {\n\t// podSelector selects the pods to which this NetworkPolicy object applies.\n\t// The array of ingress rules is applied to any pods selected by this field.\n\t// Multiple network policies can select the same set of pods. In this case,\n\t// the ingress rules for each are combined additively.\n\t// This field is NOT optional and follows standard label selector semantics.\n\t// An empty podSelector matches all pods in this namespace.\n\tPodSelector metav1.LabelSelector `json:\"podSelector\" protobuf:\"bytes,1,opt,name=podSelector\"`\n\n\t// ingress is a list of ingress rules to be applied to the selected pods.\n\t// Traffic is allowed to a pod if there are no NetworkPolicies selecting the pod\n\t// (and cluster policy otherwise allows the traffic), OR if the traffic source is\n\t// the pod's local node, OR if the traffic matches at least one ingress rule\n\t// across all of the NetworkPolicy objects whose podSelector matches the pod. If\n\t// this field is empty then this NetworkPolicy does not allow any traffic (and serves\n\t// solely to ensure that the pods it selects are isolated by default)\n\t// +optional\n\t// +listType=atomic\n\tIngress []NetworkPolicyIngressRule `json:\"ingress,omitempty\" protobuf:\"bytes,2,rep,name=ingress\"`\n\n\t// egress is a list of egress rules to be applied to the selected pods. Outgoing traffic\n\t// is allowed if there are no NetworkPolicies selecting the pod (and cluster policy\n\t// otherwise allows the traffic), OR if the traffic matches at least one egress rule\n\t// across all of the NetworkPolicy objects whose podSelector matches the pod. If\n\t// this field is empty then this NetworkPolicy limits all outgoing traffic (and serves\n\t// solely to ensure that the pods it selects are isolated by default).\n\t// This field is beta-level in 1.8\n\t// +optional\n\t// +listType=atomic\n\tEgress []NetworkPolicyEgressRule `json:\"egress,omitempty\" protobuf:\"bytes,3,rep,name=egress\"`\n\n\t// policyTypes is a list of rule types that the NetworkPolicy relates to.\n\t// Valid options are [\"Ingress\"], [\"Egress\"], or [\"Ingress\", \"Egress\"].\n\t// If this field is not specified, it will default based on the existence of ingress or egress rules;\n\t// policies that contain an egress section are assumed to affect egress, and all policies\n\t// (whether or not they contain an ingress section) are assumed to affect ingress.\n\t// If you want to write an egress-only policy, you must explicitly specify policyTypes [ \"Egress\" ].\n\t// Likewise, if you want to write a policy that specifies that no egress is allowed,\n\t// you must specify a policyTypes value that include \"Egress\" (since such a policy would not include\n\t// an egress section and would otherwise default to just [ \"Ingress\" ]).\n\t// This field is beta-level in 1.8\n\t// +optional\n\t// +listType=atomic\n\tPolicyTypes []PolicyType `json:\"policyTypes,omitempty\" protobuf:\"bytes,4,rep,name=policyTypes,casttype=PolicyType\"`\n}\n\n// NetworkPolicyIngressRule describes a particular set of traffic that is allowed to the pods\n// matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and from.\ntype NetworkPolicyIngressRule struct {\n\t// ports is a list of ports which should be made accessible on the pods selected for\n\t// this rule. Each item in this list is combined using a logical OR. If this field is\n\t// empty or missing, this rule matches all ports (traffic not restricted by port).\n\t// If this field is present and contains at least one item, then this rule allows\n\t// traffic only if the traffic matches at least one port in the list.\n\t// +optional\n\t// +listType=atomic\n\tPorts []NetworkPolicyPort `json:\"ports,omitempty\" protobuf:\"bytes,1,rep,name=ports\"`\n\n\t// from is a list of sources which should be able to access the pods selected for this rule.\n\t// Items in this list are combined using a logical OR operation. If this field is\n\t// empty or missing, this rule matches all sources (traffic not restricted by\n\t// source). If this field is present and contains at least one item, this rule\n\t// allows traffic only if the traffic matches at least one item in the from list.\n\t// +optional\n\t// +listType=atomic\n\tFrom []NetworkPolicyPeer `json:\"from,omitempty\" protobuf:\"bytes,2,rep,name=from\"`\n}\n\n// NetworkPolicyEgressRule describes a particular set of traffic that is allowed out of pods\n// matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and to.\n// This type is beta-level in 1.8\ntype NetworkPolicyEgressRule struct {\n\t// ports is a list of destination ports for outgoing traffic.\n\t// Each item in this list is combined using a logical OR. If this field is\n\t// empty or missing, this rule matches all ports (traffic not restricted by port).\n\t// If this field is present and contains at least one item, then this rule allows\n\t// traffic only if the traffic matches at least one port in the list.\n\t// +optional\n\t// +listType=atomic\n\tPorts []NetworkPolicyPort `json:\"ports,omitempty\" protobuf:\"bytes,1,rep,name=ports\"`\n\n\t// to is a list of destinations for outgoing traffic of pods selected for this rule.\n\t// Items in this list are combined using a logical OR operation. If this field is\n\t// empty or missing, this rule matches all destinations (traffic not restricted by\n\t// destination). If this field is present and contains at least one item, this rule\n\t// allows traffic only if the traffic matches at least one item in the to list.\n\t// +optional\n\t// +listType=atomic\n\tTo []NetworkPolicyPeer `json:\"to,omitempty\" protobuf:\"bytes,2,rep,name=to\"`\n}\n\n// NetworkPolicyPort describes a port to allow traffic on\ntype NetworkPolicyPort struct {\n\t// protocol represents the protocol (TCP, UDP, or SCTP) which traffic must match.\n\t// If not specified, this field defaults to TCP.\n\t// +optional\n\tProtocol *v1.Protocol `json:\"protocol,omitempty\" protobuf:\"bytes,1,opt,name=protocol,casttype=k8s.io/api/core/v1.Protocol\"`\n\n\t// port represents the port on the given protocol. This can either be a numerical or named\n\t// port on a pod. If this field is not provided, this matches all port names and\n\t// numbers.\n\t// If present, only traffic on the specified protocol AND port will be matched.\n\t// +optional\n\tPort *intstr.IntOrString `json:\"port,omitempty\" protobuf:\"bytes,2,opt,name=port\"`\n\n\t// endPort indicates that the range of ports from port to endPort if set, inclusive,\n\t// should be allowed by the policy. This field cannot be defined if the port field\n\t// is not defined or if the port field is defined as a named (string) port.\n\t// The endPort must be equal or greater than port.\n\t// +optional\n\tEndPort *int32 `json:\"endPort,omitempty\" protobuf:\"bytes,3,opt,name=endPort\"`\n}\n\n// IPBlock describes a particular CIDR (Ex. \"192.168.1.0/24\",\"2001:db8::/64\") that is allowed\n// to the pods matched by a NetworkPolicySpec's podSelector. The except entry describes CIDRs\n// that should not be included within this rule.\ntype IPBlock struct {\n\t// cidr is a string representing the IPBlock\n\t// Valid examples are \"192.168.1.0/24\" or \"2001:db8::/64\"\n\tCIDR string `json:\"cidr\" protobuf:\"bytes,1,name=cidr\"`\n\n\t// except is a slice of CIDRs that should not be included within an IPBlock\n\t// Valid examples are \"192.168.1.0/24\" or \"2001:db8::/64\"\n\t// Except values will be rejected if they are outside the cidr range\n\t// +optional\n\t// +listType=atomic\n\tExcept []string `json:\"except,omitempty\" protobuf:\"bytes,2,rep,name=except\"`\n}\n\n// NetworkPolicyPeer describes a peer to allow traffic to/from. Only certain combinations of\n// fields are allowed\ntype NetworkPolicyPeer struct {\n\t// podSelector is a label selector which selects pods. This field follows standard label\n\t// selector semantics; if present but empty, it selects all pods.\n\t//\n\t// If namespaceSelector is also set, then the NetworkPolicyPeer as a whole selects\n\t// the pods matching podSelector in the Namespaces selected by NamespaceSelector.\n\t// Otherwise it selects the pods matching podSelector in the policy's own namespace.\n\t// +optional\n\tPodSelector *metav1.LabelSelector `json:\"podSelector,omitempty\" protobuf:\"bytes,1,opt,name=podSelector\"`\n\n\t// namespaceSelector selects namespaces using cluster-scoped labels. This field follows\n\t// standard label selector semantics; if present but empty, it selects all namespaces.\n\t//\n\t// If podSelector is also set, then the NetworkPolicyPeer as a whole selects\n\t// the pods matching podSelector in the namespaces selected by namespaceSelector.\n\t// Otherwise it selects all pods in the namespaces selected by namespaceSelector.\n\t// +optional\n\tNamespaceSelector *metav1.LabelSelector `json:\"namespaceSelector,omitempty\" protobuf:\"bytes,2,opt,name=namespaceSelector\"`\n\n\t// ipBlock defines policy on a particular IPBlock. If this field is set then\n\t// neither of the other fields can be.\n\t// +optional\n\tIPBlock *IPBlock `json:\"ipBlock,omitempty\" protobuf:\"bytes,3,rep,name=ipBlock\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.19\n\n// NetworkPolicyList is a list of NetworkPolicy objects.\ntype NetworkPolicyList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is a list of schema objects.\n\tItems []NetworkPolicy `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.19\n\n// Ingress is a collection of rules that allow inbound connections to reach the\n// endpoints defined by a backend. An Ingress can be configured to give services\n// externally-reachable urls, load balance traffic, terminate SSL, offer name\n// based virtual hosting etc.\ntype Ingress struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec is the desired state of the Ingress.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec IngressSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// status is the current state of the Ingress.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus IngressStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.19\n\n// IngressList is a collection of Ingress.\ntype IngressList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of Ingress.\n\tItems []Ingress `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// IngressSpec describes the Ingress the user wishes to exist.\ntype IngressSpec struct {\n\t// ingressClassName is the name of an IngressClass cluster resource. Ingress\n\t// controller implementations use this field to know whether they should be\n\t// serving this Ingress resource, by a transitive connection\n\t// (controller -> IngressClass -> Ingress resource). Although the\n\t// `kubernetes.io/ingress.class` annotation (simple constant name) was never\n\t// formally defined, it was widely supported by Ingress controllers to create\n\t// a direct binding between Ingress controller and Ingress resources. Newly\n\t// created Ingress resources should prefer using the field. However, even\n\t// though the annotation is officially deprecated, for backwards compatibility\n\t// reasons, ingress controllers should still honor that annotation if present.\n\t// +optional\n\tIngressClassName *string `json:\"ingressClassName,omitempty\" protobuf:\"bytes,4,opt,name=ingressClassName\"`\n\n\t// defaultBackend is the backend that should handle requests that don't\n\t// match any rule. If Rules are not specified, DefaultBackend must be specified.\n\t// If DefaultBackend is not set, the handling of requests that do not match any\n\t// of the rules will be up to the Ingress controller.\n\t// +optional\n\tDefaultBackend *IngressBackend `json:\"defaultBackend,omitempty\" protobuf:\"bytes,1,opt,name=defaultBackend\"`\n\n\t// tls represents the TLS configuration. Currently the Ingress only supports a\n\t// single TLS port, 443. If multiple members of this list specify different hosts,\n\t// they will be multiplexed on the same port according to the hostname specified\n\t// through the SNI TLS extension, if the ingress controller fulfilling the\n\t// ingress supports SNI.\n\t// +listType=atomic\n\t// +optional\n\tTLS []IngressTLS `json:\"tls,omitempty\" protobuf:\"bytes,2,rep,name=tls\"`\n\n\t// rules is a list of host rules used to configure the Ingress. If unspecified,\n\t// or no rule matches, all traffic is sent to the default backend.\n\t// +listType=atomic\n\t// +optional\n\tRules []IngressRule `json:\"rules,omitempty\" protobuf:\"bytes,3,rep,name=rules\"`\n}\n\n// IngressTLS describes the transport layer security associated with an ingress.\ntype IngressTLS struct {\n\t// hosts is a list of hosts included in the TLS certificate. The values in\n\t// this list must match the name/s used in the tlsSecret. Defaults to the\n\t// wildcard host setting for the loadbalancer controller fulfilling this\n\t// Ingress, if left unspecified.\n\t// +listType=atomic\n\t// +optional\n\tHosts []string `json:\"hosts,omitempty\" protobuf:\"bytes,1,rep,name=hosts\"`\n\n\t// secretName is the name of the secret used to terminate TLS traffic on\n\t// port 443. Field is left optional to allow TLS routing based on SNI\n\t// hostname alone. If the SNI host in a listener conflicts with the \"Host\"\n\t// header field used by an IngressRule, the SNI host is used for termination\n\t// and value of the \"Host\" header is used for routing.\n\t// +optional\n\tSecretName string `json:\"secretName,omitempty\" protobuf:\"bytes,2,opt,name=secretName\"`\n}\n\n// IngressStatus describe the current state of the Ingress.\ntype IngressStatus struct {\n\t// loadBalancer contains the current status of the load-balancer.\n\t// +optional\n\tLoadBalancer IngressLoadBalancerStatus `json:\"loadBalancer,omitempty\" protobuf:\"bytes,1,opt,name=loadBalancer\"`\n}\n\n// IngressLoadBalancerStatus represents the status of a load-balancer.\ntype IngressLoadBalancerStatus struct {\n\t// ingress is a list containing ingress points for the load-balancer.\n\t// +optional\n\t// +listType=atomic\n\tIngress []IngressLoadBalancerIngress `json:\"ingress,omitempty\" protobuf:\"bytes,1,rep,name=ingress\"`\n}\n\n// IngressLoadBalancerIngress represents the status of a load-balancer ingress point.\ntype IngressLoadBalancerIngress struct {\n\t// ip is set for load-balancer ingress points that are IP based.\n\t// +optional\n\tIP string `json:\"ip,omitempty\" protobuf:\"bytes,1,opt,name=ip\"`\n\n\t// hostname is set for load-balancer ingress points that are DNS based.\n\t// +optional\n\tHostname string `json:\"hostname,omitempty\" protobuf:\"bytes,2,opt,name=hostname\"`\n\n\t// ports provides information about the ports exposed by this LoadBalancer.\n\t// +listType=atomic\n\t// +optional\n\tPorts []IngressPortStatus `json:\"ports,omitempty\" protobuf:\"bytes,4,rep,name=ports\"`\n}\n\n// IngressPortStatus represents the error condition of a service port\ntype IngressPortStatus struct {\n\t// port is the port number of the ingress port.\n\tPort int32 `json:\"port\" protobuf:\"varint,1,opt,name=port\"`\n\n\t// protocol is the protocol of the ingress port.\n\t// The supported values are: \"TCP\", \"UDP\", \"SCTP\"\n\tProtocol v1.Protocol `json:\"protocol\" protobuf:\"bytes,2,opt,name=protocol,casttype=Protocol\"`\n\n\t// error is to record the problem with the service port\n\t// The format of the error shall comply with the following rules:\n\t// - built-in error values shall be specified in this file and those shall use\n\t//   CamelCase names\n\t// - cloud provider specific error values must have names that comply with the\n\t//   format foo.example.com/CamelCase.\n\t// ---\n\t// The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)\n\t// +optional\n\t// +kubebuilder:validation:Required\n\t// +kubebuilder:validation:Pattern=`^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$`\n\t// +kubebuilder:validation:MaxLength=316\n\tError *string `json:\"error,omitempty\" protobuf:\"bytes,3,opt,name=error\"`\n}\n\n// IngressRule represents the rules mapping the paths under a specified host to\n// the related backend services. Incoming requests are first evaluated for a host\n// match, then routed to the backend associated with the matching IngressRuleValue.\ntype IngressRule struct {\n\t// host is the fully qualified domain name of a network host, as defined by RFC 3986.\n\t// Note the following deviations from the \"host\" part of the\n\t// URI as defined in RFC 3986:\n\t// 1. IPs are not allowed. Currently an IngressRuleValue can only apply to\n\t//    the IP in the Spec of the parent Ingress.\n\t// 2. The `:` delimiter is not respected because ports are not allowed.\n\t//\t  Currently the port of an Ingress is implicitly :80 for http and\n\t//\t  :443 for https.\n\t// Both these may change in the future.\n\t// Incoming requests are matched against the host before the\n\t// IngressRuleValue. If the host is unspecified, the Ingress routes all\n\t// traffic based on the specified IngressRuleValue.\n\t//\n\t// host can be \"precise\" which is a domain name without the terminating dot of\n\t// a network host (e.g. \"foo.bar.com\") or \"wildcard\", which is a domain name\n\t// prefixed with a single wildcard label (e.g. \"*.foo.com\").\n\t// The wildcard character '*' must appear by itself as the first DNS label and\n\t// matches only a single label. You cannot have a wildcard label by itself (e.g. Host == \"*\").\n\t// Requests will be matched against the Host field in the following way:\n\t// 1. If host is precise, the request matches this rule if the http host header is equal to Host.\n\t// 2. If host is a wildcard, then the request matches this rule if the http host header\n\t// is to equal to the suffix (removing the first label) of the wildcard rule.\n\t// +optional\n\tHost string `json:\"host,omitempty\" protobuf:\"bytes,1,opt,name=host\"`\n\t// IngressRuleValue represents a rule to route requests for this IngressRule.\n\t// If unspecified, the rule defaults to a http catch-all. Whether that sends\n\t// just traffic matching the host to the default backend or all traffic to the\n\t// default backend, is left to the controller fulfilling the Ingress. Http is\n\t// currently the only supported IngressRuleValue.\n\t// +optional\n\tIngressRuleValue `json:\",inline\" protobuf:\"bytes,2,opt,name=ingressRuleValue\"`\n}\n\n// IngressRuleValue represents a rule to apply against incoming requests. If the\n// rule is satisfied, the request is routed to the specified backend. Currently\n// mixing different types of rules in a single Ingress is disallowed, so exactly\n// one of the following must be set.\ntype IngressRuleValue struct {\n\t// +optional\n\tHTTP *HTTPIngressRuleValue `json:\"http,omitempty\" protobuf:\"bytes,1,opt,name=http\"`\n}\n\n// HTTPIngressRuleValue is a list of http selectors pointing to backends.\n// In the example: http://<host>/<path>?<searchpart> -> backend where\n// where parts of the url correspond to RFC 3986, this resource will be used\n// to match against everything after the last '/' and before the first '?'\n// or '#'.\ntype HTTPIngressRuleValue struct {\n\t// paths is a collection of paths that map requests to backends.\n\t// +listType=atomic\n\tPaths []HTTPIngressPath `json:\"paths\" protobuf:\"bytes,1,rep,name=paths\"`\n}\n\n// PathType represents the type of path referred to by a HTTPIngressPath.\n// +enum\ntype PathType string\n\nconst (\n\t// PathTypeExact matches the URL path exactly and with case sensitivity.\n\tPathTypeExact = PathType(\"Exact\")\n\n\t// PathTypePrefix matches based on a URL path prefix split by '/'. Matching\n\t// is case sensitive and done on a path element by element basis. A path\n\t// element refers to the list of labels in the path split by the '/'\n\t// separator. A request is a match for path p if every p is an element-wise\n\t// prefix of p of the request path. Note that if the last element of the\n\t// path is a substring of the last element in request path, it is not a\n\t// match (e.g. /foo/bar matches /foo/bar/baz, but does not match\n\t// /foo/barbaz). If multiple matching paths exist in an Ingress spec, the\n\t// longest matching path is given priority.\n\t// Examples:\n\t// - /foo/bar does not match requests to /foo/barbaz\n\t// - /foo/bar matches request to /foo/bar and /foo/bar/baz\n\t// - /foo and /foo/ both match requests to /foo and /foo/. If both paths are\n\t//   present in an Ingress spec, the longest matching path (/foo/) is given\n\t//   priority.\n\tPathTypePrefix = PathType(\"Prefix\")\n\n\t// PathTypeImplementationSpecific matching is up to the IngressClass.\n\t// Implementations can treat this as a separate PathType or treat it\n\t// identically to Prefix or Exact path types.\n\tPathTypeImplementationSpecific = PathType(\"ImplementationSpecific\")\n)\n\n// HTTPIngressPath associates a path with a backend. Incoming urls matching the\n// path are forwarded to the backend.\ntype HTTPIngressPath struct {\n\t// path is matched against the path of an incoming request. Currently it can\n\t// contain characters disallowed from the conventional \"path\" part of a URL\n\t// as defined by RFC 3986. Paths must begin with a '/' and must be present\n\t// when using PathType with value \"Exact\" or \"Prefix\".\n\t// +optional\n\tPath string `json:\"path,omitempty\" protobuf:\"bytes,1,opt,name=path\"`\n\n\t// pathType determines the interpretation of the path matching. PathType can\n\t// be one of the following values:\n\t// * Exact: Matches the URL path exactly.\n\t// * Prefix: Matches based on a URL path prefix split by '/'. Matching is\n\t//   done on a path element by element basis. A path element refers is the\n\t//   list of labels in the path split by the '/' separator. A request is a\n\t//   match for path p if every p is an element-wise prefix of p of the\n\t//   request path. Note that if the last element of the path is a substring\n\t//   of the last element in request path, it is not a match (e.g. /foo/bar\n\t//   matches /foo/bar/baz, but does not match /foo/barbaz).\n\t// * ImplementationSpecific: Interpretation of the Path matching is up to\n\t//   the IngressClass. Implementations can treat this as a separate PathType\n\t//   or treat it identically to Prefix or Exact path types.\n\t// Implementations are required to support all path types.\n\tPathType *PathType `json:\"pathType\" protobuf:\"bytes,3,opt,name=pathType\"`\n\n\t// backend defines the referenced service endpoint to which the traffic\n\t// will be forwarded to.\n\tBackend IngressBackend `json:\"backend\" protobuf:\"bytes,2,opt,name=backend\"`\n}\n\n// IngressBackend describes all endpoints for a given service and port.\ntype IngressBackend struct {\n\t// service references a service as a backend.\n\t// This is a mutually exclusive setting with \"Resource\".\n\t// +optional\n\tService *IngressServiceBackend `json:\"service,omitempty\" protobuf:\"bytes,4,opt,name=service\"`\n\n\t// resource is an ObjectRef to another Kubernetes resource in the namespace\n\t// of the Ingress object. If resource is specified, a service.Name and\n\t// service.Port must not be specified.\n\t// This is a mutually exclusive setting with \"Service\".\n\t// +optional\n\tResource *v1.TypedLocalObjectReference `json:\"resource,omitempty\" protobuf:\"bytes,3,opt,name=resource\"`\n}\n\n// IngressServiceBackend references a Kubernetes Service as a Backend.\ntype IngressServiceBackend struct {\n\t// name is the referenced service. The service must exist in\n\t// the same namespace as the Ingress object.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\n\t// port of the referenced service. A port name or port number\n\t// is required for a IngressServiceBackend.\n\tPort ServiceBackendPort `json:\"port,omitempty\" protobuf:\"bytes,2,opt,name=port\"`\n}\n\n// ServiceBackendPort is the service port being referenced.\n// +structType=atomic\ntype ServiceBackendPort struct {\n\t// name is the name of the port on the Service.\n\t// This is a mutually exclusive setting with \"Number\".\n\t// +optional\n\tName string `json:\"name,omitempty\" protobuf:\"bytes,1,opt,name=name\"`\n\n\t// number is the numerical port number (e.g. 80) on the Service.\n\t// This is a mutually exclusive setting with \"Name\".\n\t// +optional\n\tNumber int32 `json:\"number,omitempty\" protobuf:\"bytes,2,opt,name=number\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.19\n\n// IngressClass represents the class of the Ingress, referenced by the Ingress\n// Spec. The `ingressclass.kubernetes.io/is-default-class` annotation can be\n// used to indicate that an IngressClass should be considered default. When a\n// single IngressClass resource has this annotation set to true, new Ingress\n// resources without a class specified will be assigned this default class.\ntype IngressClass struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec is the desired state of the IngressClass.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec IngressClassSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n}\n\n// IngressClassSpec provides information about the class of an Ingress.\ntype IngressClassSpec struct {\n\t// controller refers to the name of the controller that should handle this\n\t// class. This allows for different \"flavors\" that are controlled by the\n\t// same controller. For example, you may have different parameters for the\n\t// same implementing controller. This should be specified as a\n\t// domain-prefixed path no more than 250 characters in length, e.g.\n\t// \"acme.io/ingress-controller\". This field is immutable.\n\tController string `json:\"controller,omitempty\" protobuf:\"bytes,1,opt,name=controller\"`\n\n\t// parameters is a link to a custom resource containing additional\n\t// configuration for the controller. This is optional if the controller does\n\t// not require extra parameters.\n\t// +optional\n\tParameters *IngressClassParametersReference `json:\"parameters,omitempty\" protobuf:\"bytes,2,opt,name=parameters\"`\n}\n\nconst (\n\t// IngressClassParametersReferenceScopeNamespace indicates that the\n\t// referenced Parameters resource is namespace-scoped.\n\tIngressClassParametersReferenceScopeNamespace = \"Namespace\"\n\t// IngressClassParametersReferenceScopeCluster indicates that the\n\t// referenced Parameters resource is cluster-scoped.\n\tIngressClassParametersReferenceScopeCluster = \"Cluster\"\n)\n\n// IngressClassParametersReference identifies an API object. This can be used\n// to specify a cluster or namespace-scoped resource.\ntype IngressClassParametersReference struct {\n\t// apiGroup is the group for the resource being referenced. If APIGroup is\n\t// not specified, the specified Kind must be in the core API group. For any\n\t// other third-party types, APIGroup is required.\n\t// +optional\n\tAPIGroup *string `json:\"apiGroup,omitempty\" protobuf:\"bytes,1,opt,name=aPIGroup\"`\n\n\t// kind is the type of resource being referenced.\n\tKind string `json:\"kind\" protobuf:\"bytes,2,opt,name=kind\"`\n\n\t// name is the name of resource being referenced.\n\tName string `json:\"name\" protobuf:\"bytes,3,opt,name=name\"`\n\n\t// scope represents if this refers to a cluster or namespace scoped resource.\n\t// This may be set to \"Cluster\" (default) or \"Namespace\".\n\t// +optional\n\tScope *string `json:\"scope\" protobuf:\"bytes,4,opt,name=scope\"`\n\n\t// namespace is the namespace of the resource being referenced. This field is\n\t// required when scope is set to \"Namespace\" and must be unset when scope is set to\n\t// \"Cluster\".\n\t// +optional\n\tNamespace *string `json:\"namespace,omitempty\" protobuf:\"bytes,5,opt,name=namespace\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.19\n\n// IngressClassList is a collection of IngressClasses.\ntype IngressClassList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of IngressClasses.\n\tItems []IngressClass `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_HTTPIngressPath = map[string]string{\n\t\"\":         \"HTTPIngressPath associates a path with a backend. Incoming urls matching the path are forwarded to the backend.\",\n\t\"path\":     \"path is matched against the path of an incoming request. Currently it can contain characters disallowed from the conventional \\\"path\\\" part of a URL as defined by RFC 3986. Paths must begin with a '/' and must be present when using PathType with value \\\"Exact\\\" or \\\"Prefix\\\".\",\n\t\"pathType\": \"pathType determines the interpretation of the path matching. PathType can be one of the following values: * Exact: Matches the URL path exactly. * Prefix: Matches based on a URL path prefix split by '/'. Matching is\\n  done on a path element by element basis. A path element refers is the\\n  list of labels in the path split by the '/' separator. A request is a\\n  match for path p if every p is an element-wise prefix of p of the\\n  request path. Note that if the last element of the path is a substring\\n  of the last element in request path, it is not a match (e.g. /foo/bar\\n  matches /foo/bar/baz, but does not match /foo/barbaz).\\n* ImplementationSpecific: Interpretation of the Path matching is up to\\n  the IngressClass. Implementations can treat this as a separate PathType\\n  or treat it identically to Prefix or Exact path types.\\nImplementations are required to support all path types.\",\n\t\"backend\":  \"backend defines the referenced service endpoint to which the traffic will be forwarded to.\",\n}\n\nfunc (HTTPIngressPath) SwaggerDoc() map[string]string {\n\treturn map_HTTPIngressPath\n}\n\nvar map_HTTPIngressRuleValue = map[string]string{\n\t\"\":      \"HTTPIngressRuleValue is a list of http selectors pointing to backends. In the example: http://<host>/<path>?<searchpart> -> backend where where parts of the url correspond to RFC 3986, this resource will be used to match against everything after the last '/' and before the first '?' or '#'.\",\n\t\"paths\": \"paths is a collection of paths that map requests to backends.\",\n}\n\nfunc (HTTPIngressRuleValue) SwaggerDoc() map[string]string {\n\treturn map_HTTPIngressRuleValue\n}\n\nvar map_IPBlock = map[string]string{\n\t\"\":       \"IPBlock describes a particular CIDR (Ex. \\\"192.168.1.0/24\\\",\\\"2001:db8::/64\\\") that is allowed to the pods matched by a NetworkPolicySpec's podSelector. The except entry describes CIDRs that should not be included within this rule.\",\n\t\"cidr\":   \"cidr is a string representing the IPBlock Valid examples are \\\"192.168.1.0/24\\\" or \\\"2001:db8::/64\\\"\",\n\t\"except\": \"except is a slice of CIDRs that should not be included within an IPBlock Valid examples are \\\"192.168.1.0/24\\\" or \\\"2001:db8::/64\\\" Except values will be rejected if they are outside the cidr range\",\n}\n\nfunc (IPBlock) SwaggerDoc() map[string]string {\n\treturn map_IPBlock\n}\n\nvar map_Ingress = map[string]string{\n\t\"\":         \"Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec is the desired state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"status is the current state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (Ingress) SwaggerDoc() map[string]string {\n\treturn map_Ingress\n}\n\nvar map_IngressBackend = map[string]string{\n\t\"\":         \"IngressBackend describes all endpoints for a given service and port.\",\n\t\"service\":  \"service references a service as a backend. This is a mutually exclusive setting with \\\"Resource\\\".\",\n\t\"resource\": \"resource is an ObjectRef to another Kubernetes resource in the namespace of the Ingress object. If resource is specified, a service.Name and service.Port must not be specified. This is a mutually exclusive setting with \\\"Service\\\".\",\n}\n\nfunc (IngressBackend) SwaggerDoc() map[string]string {\n\treturn map_IngressBackend\n}\n\nvar map_IngressClass = map[string]string{\n\t\"\":         \"IngressClass represents the class of the Ingress, referenced by the Ingress Spec. The `ingressclass.kubernetes.io/is-default-class` annotation can be used to indicate that an IngressClass should be considered default. When a single IngressClass resource has this annotation set to true, new Ingress resources without a class specified will be assigned this default class.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec is the desired state of the IngressClass. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (IngressClass) SwaggerDoc() map[string]string {\n\treturn map_IngressClass\n}\n\nvar map_IngressClassList = map[string]string{\n\t\"\":         \"IngressClassList is a collection of IngressClasses.\",\n\t\"metadata\": \"Standard list metadata.\",\n\t\"items\":    \"items is the list of IngressClasses.\",\n}\n\nfunc (IngressClassList) SwaggerDoc() map[string]string {\n\treturn map_IngressClassList\n}\n\nvar map_IngressClassParametersReference = map[string]string{\n\t\"\":          \"IngressClassParametersReference identifies an API object. This can be used to specify a cluster or namespace-scoped resource.\",\n\t\"apiGroup\":  \"apiGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\n\t\"kind\":      \"kind is the type of resource being referenced.\",\n\t\"name\":      \"name is the name of resource being referenced.\",\n\t\"scope\":     \"scope represents if this refers to a cluster or namespace scoped resource. This may be set to \\\"Cluster\\\" (default) or \\\"Namespace\\\".\",\n\t\"namespace\": \"namespace is the namespace of the resource being referenced. This field is required when scope is set to \\\"Namespace\\\" and must be unset when scope is set to \\\"Cluster\\\".\",\n}\n\nfunc (IngressClassParametersReference) SwaggerDoc() map[string]string {\n\treturn map_IngressClassParametersReference\n}\n\nvar map_IngressClassSpec = map[string]string{\n\t\"\":           \"IngressClassSpec provides information about the class of an Ingress.\",\n\t\"controller\": \"controller refers to the name of the controller that should handle this class. This allows for different \\\"flavors\\\" that are controlled by the same controller. For example, you may have different parameters for the same implementing controller. This should be specified as a domain-prefixed path no more than 250 characters in length, e.g. \\\"acme.io/ingress-controller\\\". This field is immutable.\",\n\t\"parameters\": \"parameters is a link to a custom resource containing additional configuration for the controller. This is optional if the controller does not require extra parameters.\",\n}\n\nfunc (IngressClassSpec) SwaggerDoc() map[string]string {\n\treturn map_IngressClassSpec\n}\n\nvar map_IngressList = map[string]string{\n\t\"\":         \"IngressList is a collection of Ingress.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of Ingress.\",\n}\n\nfunc (IngressList) SwaggerDoc() map[string]string {\n\treturn map_IngressList\n}\n\nvar map_IngressLoadBalancerIngress = map[string]string{\n\t\"\":         \"IngressLoadBalancerIngress represents the status of a load-balancer ingress point.\",\n\t\"ip\":       \"ip is set for load-balancer ingress points that are IP based.\",\n\t\"hostname\": \"hostname is set for load-balancer ingress points that are DNS based.\",\n\t\"ports\":    \"ports provides information about the ports exposed by this LoadBalancer.\",\n}\n\nfunc (IngressLoadBalancerIngress) SwaggerDoc() map[string]string {\n\treturn map_IngressLoadBalancerIngress\n}\n\nvar map_IngressLoadBalancerStatus = map[string]string{\n\t\"\":        \"IngressLoadBalancerStatus represents the status of a load-balancer.\",\n\t\"ingress\": \"ingress is a list containing ingress points for the load-balancer.\",\n}\n\nfunc (IngressLoadBalancerStatus) SwaggerDoc() map[string]string {\n\treturn map_IngressLoadBalancerStatus\n}\n\nvar map_IngressPortStatus = map[string]string{\n\t\"\":         \"IngressPortStatus represents the error condition of a service port\",\n\t\"port\":     \"port is the port number of the ingress port.\",\n\t\"protocol\": \"protocol is the protocol of the ingress port. The supported values are: \\\"TCP\\\", \\\"UDP\\\", \\\"SCTP\\\"\",\n\t\"error\":    \"error is to record the problem with the service port The format of the error shall comply with the following rules: - built-in error values shall be specified in this file and those shall use\\n  CamelCase names\\n- cloud provider specific error values must have names that comply with the\\n  format foo.example.com/CamelCase.\",\n}\n\nfunc (IngressPortStatus) SwaggerDoc() map[string]string {\n\treturn map_IngressPortStatus\n}\n\nvar map_IngressRule = map[string]string{\n\t\"\":     \"IngressRule represents the rules mapping the paths under a specified host to the related backend services. Incoming requests are first evaluated for a host match, then routed to the backend associated with the matching IngressRuleValue.\",\n\t\"host\": \"host is the fully qualified domain name of a network host, as defined by RFC 3986. Note the following deviations from the \\\"host\\\" part of the URI as defined in RFC 3986: 1. IPs are not allowed. Currently an IngressRuleValue can only apply to\\n   the IP in the Spec of the parent Ingress.\\n2. The `:` delimiter is not respected because ports are not allowed.\\n\\t  Currently the port of an Ingress is implicitly :80 for http and\\n\\t  :443 for https.\\nBoth these may change in the future. Incoming requests are matched against the host before the IngressRuleValue. If the host is unspecified, the Ingress routes all traffic based on the specified IngressRuleValue.\\n\\nhost can be \\\"precise\\\" which is a domain name without the terminating dot of a network host (e.g. \\\"foo.bar.com\\\") or \\\"wildcard\\\", which is a domain name prefixed with a single wildcard label (e.g. \\\"*.foo.com\\\"). The wildcard character '*' must appear by itself as the first DNS label and matches only a single label. You cannot have a wildcard label by itself (e.g. Host == \\\"*\\\"). Requests will be matched against the Host field in the following way: 1. If host is precise, the request matches this rule if the http host header is equal to Host. 2. If host is a wildcard, then the request matches this rule if the http host header is to equal to the suffix (removing the first label) of the wildcard rule.\",\n}\n\nfunc (IngressRule) SwaggerDoc() map[string]string {\n\treturn map_IngressRule\n}\n\nvar map_IngressRuleValue = map[string]string{\n\t\"\": \"IngressRuleValue represents a rule to apply against incoming requests. If the rule is satisfied, the request is routed to the specified backend. Currently mixing different types of rules in a single Ingress is disallowed, so exactly one of the following must be set.\",\n}\n\nfunc (IngressRuleValue) SwaggerDoc() map[string]string {\n\treturn map_IngressRuleValue\n}\n\nvar map_IngressServiceBackend = map[string]string{\n\t\"\":     \"IngressServiceBackend references a Kubernetes Service as a Backend.\",\n\t\"name\": \"name is the referenced service. The service must exist in the same namespace as the Ingress object.\",\n\t\"port\": \"port of the referenced service. A port name or port number is required for a IngressServiceBackend.\",\n}\n\nfunc (IngressServiceBackend) SwaggerDoc() map[string]string {\n\treturn map_IngressServiceBackend\n}\n\nvar map_IngressSpec = map[string]string{\n\t\"\":                 \"IngressSpec describes the Ingress the user wishes to exist.\",\n\t\"ingressClassName\": \"ingressClassName is the name of an IngressClass cluster resource. Ingress controller implementations use this field to know whether they should be serving this Ingress resource, by a transitive connection (controller -> IngressClass -> Ingress resource). Although the `kubernetes.io/ingress.class` annotation (simple constant name) was never formally defined, it was widely supported by Ingress controllers to create a direct binding between Ingress controller and Ingress resources. Newly created Ingress resources should prefer using the field. However, even though the annotation is officially deprecated, for backwards compatibility reasons, ingress controllers should still honor that annotation if present.\",\n\t\"defaultBackend\":   \"defaultBackend is the backend that should handle requests that don't match any rule. If Rules are not specified, DefaultBackend must be specified. If DefaultBackend is not set, the handling of requests that do not match any of the rules will be up to the Ingress controller.\",\n\t\"tls\":              \"tls represents the TLS configuration. Currently the Ingress only supports a single TLS port, 443. If multiple members of this list specify different hosts, they will be multiplexed on the same port according to the hostname specified through the SNI TLS extension, if the ingress controller fulfilling the ingress supports SNI.\",\n\t\"rules\":            \"rules is a list of host rules used to configure the Ingress. If unspecified, or no rule matches, all traffic is sent to the default backend.\",\n}\n\nfunc (IngressSpec) SwaggerDoc() map[string]string {\n\treturn map_IngressSpec\n}\n\nvar map_IngressStatus = map[string]string{\n\t\"\":             \"IngressStatus describe the current state of the Ingress.\",\n\t\"loadBalancer\": \"loadBalancer contains the current status of the load-balancer.\",\n}\n\nfunc (IngressStatus) SwaggerDoc() map[string]string {\n\treturn map_IngressStatus\n}\n\nvar map_IngressTLS = map[string]string{\n\t\"\":           \"IngressTLS describes the transport layer security associated with an ingress.\",\n\t\"hosts\":      \"hosts is a list of hosts included in the TLS certificate. The values in this list must match the name/s used in the tlsSecret. Defaults to the wildcard host setting for the loadbalancer controller fulfilling this Ingress, if left unspecified.\",\n\t\"secretName\": \"secretName is the name of the secret used to terminate TLS traffic on port 443. Field is left optional to allow TLS routing based on SNI hostname alone. If the SNI host in a listener conflicts with the \\\"Host\\\" header field used by an IngressRule, the SNI host is used for termination and value of the \\\"Host\\\" header is used for routing.\",\n}\n\nfunc (IngressTLS) SwaggerDoc() map[string]string {\n\treturn map_IngressTLS\n}\n\nvar map_NetworkPolicy = map[string]string{\n\t\"\":         \"NetworkPolicy describes what network traffic is allowed for a set of Pods\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec represents the specification of the desired behavior for this NetworkPolicy.\",\n}\n\nfunc (NetworkPolicy) SwaggerDoc() map[string]string {\n\treturn map_NetworkPolicy\n}\n\nvar map_NetworkPolicyEgressRule = map[string]string{\n\t\"\":      \"NetworkPolicyEgressRule describes a particular set of traffic that is allowed out of pods matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and to. This type is beta-level in 1.8\",\n\t\"ports\": \"ports is a list of destination ports for outgoing traffic. Each item in this list is combined using a logical OR. If this field is empty or missing, this rule matches all ports (traffic not restricted by port). If this field is present and contains at least one item, then this rule allows traffic only if the traffic matches at least one port in the list.\",\n\t\"to\":    \"to is a list of destinations for outgoing traffic of pods selected for this rule. Items in this list are combined using a logical OR operation. If this field is empty or missing, this rule matches all destinations (traffic not restricted by destination). If this field is present and contains at least one item, this rule allows traffic only if the traffic matches at least one item in the to list.\",\n}\n\nfunc (NetworkPolicyEgressRule) SwaggerDoc() map[string]string {\n\treturn map_NetworkPolicyEgressRule\n}\n\nvar map_NetworkPolicyIngressRule = map[string]string{\n\t\"\":      \"NetworkPolicyIngressRule describes a particular set of traffic that is allowed to the pods matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and from.\",\n\t\"ports\": \"ports is a list of ports which should be made accessible on the pods selected for this rule. Each item in this list is combined using a logical OR. If this field is empty or missing, this rule matches all ports (traffic not restricted by port). If this field is present and contains at least one item, then this rule allows traffic only if the traffic matches at least one port in the list.\",\n\t\"from\":  \"from is a list of sources which should be able to access the pods selected for this rule. Items in this list are combined using a logical OR operation. If this field is empty or missing, this rule matches all sources (traffic not restricted by source). If this field is present and contains at least one item, this rule allows traffic only if the traffic matches at least one item in the from list.\",\n}\n\nfunc (NetworkPolicyIngressRule) SwaggerDoc() map[string]string {\n\treturn map_NetworkPolicyIngressRule\n}\n\nvar map_NetworkPolicyList = map[string]string{\n\t\"\":         \"NetworkPolicyList is a list of NetworkPolicy objects.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is a list of schema objects.\",\n}\n\nfunc (NetworkPolicyList) SwaggerDoc() map[string]string {\n\treturn map_NetworkPolicyList\n}\n\nvar map_NetworkPolicyPeer = map[string]string{\n\t\"\":                  \"NetworkPolicyPeer describes a peer to allow traffic to/from. Only certain combinations of fields are allowed\",\n\t\"podSelector\":       \"podSelector is a label selector which selects pods. This field follows standard label selector semantics; if present but empty, it selects all pods.\\n\\nIf namespaceSelector is also set, then the NetworkPolicyPeer as a whole selects the pods matching podSelector in the Namespaces selected by NamespaceSelector. Otherwise it selects the pods matching podSelector in the policy's own namespace.\",\n\t\"namespaceSelector\": \"namespaceSelector selects namespaces using cluster-scoped labels. This field follows standard label selector semantics; if present but empty, it selects all namespaces.\\n\\nIf podSelector is also set, then the NetworkPolicyPeer as a whole selects the pods matching podSelector in the namespaces selected by namespaceSelector. Otherwise it selects all pods in the namespaces selected by namespaceSelector.\",\n\t\"ipBlock\":           \"ipBlock defines policy on a particular IPBlock. If this field is set then neither of the other fields can be.\",\n}\n\nfunc (NetworkPolicyPeer) SwaggerDoc() map[string]string {\n\treturn map_NetworkPolicyPeer\n}\n\nvar map_NetworkPolicyPort = map[string]string{\n\t\"\":         \"NetworkPolicyPort describes a port to allow traffic on\",\n\t\"protocol\": \"protocol represents the protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP.\",\n\t\"port\":     \"port represents the port on the given protocol. This can either be a numerical or named port on a pod. If this field is not provided, this matches all port names and numbers. If present, only traffic on the specified protocol AND port will be matched.\",\n\t\"endPort\":  \"endPort indicates that the range of ports from port to endPort if set, inclusive, should be allowed by the policy. This field cannot be defined if the port field is not defined or if the port field is defined as a named (string) port. The endPort must be equal or greater than port.\",\n}\n\nfunc (NetworkPolicyPort) SwaggerDoc() map[string]string {\n\treturn map_NetworkPolicyPort\n}\n\nvar map_NetworkPolicySpec = map[string]string{\n\t\"\":            \"NetworkPolicySpec provides the specification of a NetworkPolicy\",\n\t\"podSelector\": \"podSelector selects the pods to which this NetworkPolicy object applies. The array of ingress rules is applied to any pods selected by this field. Multiple network policies can select the same set of pods. In this case, the ingress rules for each are combined additively. This field is NOT optional and follows standard label selector semantics. An empty podSelector matches all pods in this namespace.\",\n\t\"ingress\":     \"ingress is a list of ingress rules to be applied to the selected pods. Traffic is allowed to a pod if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic source is the pod's local node, OR if the traffic matches at least one ingress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy does not allow any traffic (and serves solely to ensure that the pods it selects are isolated by default)\",\n\t\"egress\":      \"egress is a list of egress rules to be applied to the selected pods. Outgoing traffic is allowed if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic matches at least one egress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy limits all outgoing traffic (and serves solely to ensure that the pods it selects are isolated by default). This field is beta-level in 1.8\",\n\t\"policyTypes\": \"policyTypes is a list of rule types that the NetworkPolicy relates to. Valid options are [\\\"Ingress\\\"], [\\\"Egress\\\"], or [\\\"Ingress\\\", \\\"Egress\\\"]. If this field is not specified, it will default based on the existence of ingress or egress rules; policies that contain an egress section are assumed to affect egress, and all policies (whether or not they contain an ingress section) are assumed to affect ingress. If you want to write an egress-only policy, you must explicitly specify policyTypes [ \\\"Egress\\\" ]. Likewise, if you want to write a policy that specifies that no egress is allowed, you must specify a policyTypes value that include \\\"Egress\\\" (since such a policy would not include an egress section and would otherwise default to just [ \\\"Ingress\\\" ]). This field is beta-level in 1.8\",\n}\n\nfunc (NetworkPolicySpec) SwaggerDoc() map[string]string {\n\treturn map_NetworkPolicySpec\n}\n\nvar map_ServiceBackendPort = map[string]string{\n\t\"\":       \"ServiceBackendPort is the service port being referenced.\",\n\t\"name\":   \"name is the name of the port on the Service. This is a mutually exclusive setting with \\\"Number\\\".\",\n\t\"number\": \"number is the numerical port number (e.g. 80) on the Service. This is a mutually exclusive setting with \\\"Name\\\".\",\n}\n\nfunc (ServiceBackendPort) SwaggerDoc() map[string]string {\n\treturn map_ServiceBackendPort\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1/well_known_annotations.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nconst (\n\t// AnnotationIsDefaultIngressClass can be used to indicate that an\n\t// IngressClass should be considered default. When a single IngressClass\n\t// resource has this annotation set to true, new Ingress resources without a\n\t// class specified will be assigned this default class.\n\tAnnotationIsDefaultIngressClass = \"ingressclass.kubernetes.io/is-default-class\"\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HTTPIngressPath) DeepCopyInto(out *HTTPIngressPath) {\n\t*out = *in\n\tif in.PathType != nil {\n\t\tin, out := &in.PathType, &out.PathType\n\t\t*out = new(PathType)\n\t\t**out = **in\n\t}\n\tin.Backend.DeepCopyInto(&out.Backend)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPIngressPath.\nfunc (in *HTTPIngressPath) DeepCopy() *HTTPIngressPath {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HTTPIngressPath)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HTTPIngressRuleValue) DeepCopyInto(out *HTTPIngressRuleValue) {\n\t*out = *in\n\tif in.Paths != nil {\n\t\tin, out := &in.Paths, &out.Paths\n\t\t*out = make([]HTTPIngressPath, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPIngressRuleValue.\nfunc (in *HTTPIngressRuleValue) DeepCopy() *HTTPIngressRuleValue {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HTTPIngressRuleValue)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IPBlock) DeepCopyInto(out *IPBlock) {\n\t*out = *in\n\tif in.Except != nil {\n\t\tin, out := &in.Except, &out.Except\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPBlock.\nfunc (in *IPBlock) DeepCopy() *IPBlock {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IPBlock)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Ingress) DeepCopyInto(out *Ingress) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Ingress.\nfunc (in *Ingress) DeepCopy() *Ingress {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Ingress)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Ingress) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressBackend) DeepCopyInto(out *IngressBackend) {\n\t*out = *in\n\tif in.Service != nil {\n\t\tin, out := &in.Service, &out.Service\n\t\t*out = new(IngressServiceBackend)\n\t\t**out = **in\n\t}\n\tif in.Resource != nil {\n\t\tin, out := &in.Resource, &out.Resource\n\t\t*out = new(corev1.TypedLocalObjectReference)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressBackend.\nfunc (in *IngressBackend) DeepCopy() *IngressBackend {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressBackend)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressClass) DeepCopyInto(out *IngressClass) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressClass.\nfunc (in *IngressClass) DeepCopy() *IngressClass {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressClass)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *IngressClass) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressClassList) DeepCopyInto(out *IngressClassList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]IngressClass, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressClassList.\nfunc (in *IngressClassList) DeepCopy() *IngressClassList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressClassList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *IngressClassList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressClassParametersReference) DeepCopyInto(out *IngressClassParametersReference) {\n\t*out = *in\n\tif in.APIGroup != nil {\n\t\tin, out := &in.APIGroup, &out.APIGroup\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.Scope != nil {\n\t\tin, out := &in.Scope, &out.Scope\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.Namespace != nil {\n\t\tin, out := &in.Namespace, &out.Namespace\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressClassParametersReference.\nfunc (in *IngressClassParametersReference) DeepCopy() *IngressClassParametersReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressClassParametersReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressClassSpec) DeepCopyInto(out *IngressClassSpec) {\n\t*out = *in\n\tif in.Parameters != nil {\n\t\tin, out := &in.Parameters, &out.Parameters\n\t\t*out = new(IngressClassParametersReference)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressClassSpec.\nfunc (in *IngressClassSpec) DeepCopy() *IngressClassSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressClassSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressList) DeepCopyInto(out *IngressList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Ingress, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressList.\nfunc (in *IngressList) DeepCopy() *IngressList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *IngressList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressLoadBalancerIngress) DeepCopyInto(out *IngressLoadBalancerIngress) {\n\t*out = *in\n\tif in.Ports != nil {\n\t\tin, out := &in.Ports, &out.Ports\n\t\t*out = make([]IngressPortStatus, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressLoadBalancerIngress.\nfunc (in *IngressLoadBalancerIngress) DeepCopy() *IngressLoadBalancerIngress {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressLoadBalancerIngress)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressLoadBalancerStatus) DeepCopyInto(out *IngressLoadBalancerStatus) {\n\t*out = *in\n\tif in.Ingress != nil {\n\t\tin, out := &in.Ingress, &out.Ingress\n\t\t*out = make([]IngressLoadBalancerIngress, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressLoadBalancerStatus.\nfunc (in *IngressLoadBalancerStatus) DeepCopy() *IngressLoadBalancerStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressLoadBalancerStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressPortStatus) DeepCopyInto(out *IngressPortStatus) {\n\t*out = *in\n\tif in.Error != nil {\n\t\tin, out := &in.Error, &out.Error\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressPortStatus.\nfunc (in *IngressPortStatus) DeepCopy() *IngressPortStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressPortStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressRule) DeepCopyInto(out *IngressRule) {\n\t*out = *in\n\tin.IngressRuleValue.DeepCopyInto(&out.IngressRuleValue)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressRule.\nfunc (in *IngressRule) DeepCopy() *IngressRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressRuleValue) DeepCopyInto(out *IngressRuleValue) {\n\t*out = *in\n\tif in.HTTP != nil {\n\t\tin, out := &in.HTTP, &out.HTTP\n\t\t*out = new(HTTPIngressRuleValue)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressRuleValue.\nfunc (in *IngressRuleValue) DeepCopy() *IngressRuleValue {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressRuleValue)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressServiceBackend) DeepCopyInto(out *IngressServiceBackend) {\n\t*out = *in\n\tout.Port = in.Port\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressServiceBackend.\nfunc (in *IngressServiceBackend) DeepCopy() *IngressServiceBackend {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressServiceBackend)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressSpec) DeepCopyInto(out *IngressSpec) {\n\t*out = *in\n\tif in.IngressClassName != nil {\n\t\tin, out := &in.IngressClassName, &out.IngressClassName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.DefaultBackend != nil {\n\t\tin, out := &in.DefaultBackend, &out.DefaultBackend\n\t\t*out = new(IngressBackend)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.TLS != nil {\n\t\tin, out := &in.TLS, &out.TLS\n\t\t*out = make([]IngressTLS, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Rules != nil {\n\t\tin, out := &in.Rules, &out.Rules\n\t\t*out = make([]IngressRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressSpec.\nfunc (in *IngressSpec) DeepCopy() *IngressSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressStatus) DeepCopyInto(out *IngressStatus) {\n\t*out = *in\n\tin.LoadBalancer.DeepCopyInto(&out.LoadBalancer)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressStatus.\nfunc (in *IngressStatus) DeepCopy() *IngressStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressTLS) DeepCopyInto(out *IngressTLS) {\n\t*out = *in\n\tif in.Hosts != nil {\n\t\tin, out := &in.Hosts, &out.Hosts\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressTLS.\nfunc (in *IngressTLS) DeepCopy() *IngressTLS {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressTLS)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NetworkPolicy) DeepCopyInto(out *NetworkPolicy) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicy.\nfunc (in *NetworkPolicy) DeepCopy() *NetworkPolicy {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NetworkPolicy)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *NetworkPolicy) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NetworkPolicyEgressRule) DeepCopyInto(out *NetworkPolicyEgressRule) {\n\t*out = *in\n\tif in.Ports != nil {\n\t\tin, out := &in.Ports, &out.Ports\n\t\t*out = make([]NetworkPolicyPort, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.To != nil {\n\t\tin, out := &in.To, &out.To\n\t\t*out = make([]NetworkPolicyPeer, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyEgressRule.\nfunc (in *NetworkPolicyEgressRule) DeepCopy() *NetworkPolicyEgressRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NetworkPolicyEgressRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NetworkPolicyIngressRule) DeepCopyInto(out *NetworkPolicyIngressRule) {\n\t*out = *in\n\tif in.Ports != nil {\n\t\tin, out := &in.Ports, &out.Ports\n\t\t*out = make([]NetworkPolicyPort, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.From != nil {\n\t\tin, out := &in.From, &out.From\n\t\t*out = make([]NetworkPolicyPeer, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyIngressRule.\nfunc (in *NetworkPolicyIngressRule) DeepCopy() *NetworkPolicyIngressRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NetworkPolicyIngressRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NetworkPolicyList) DeepCopyInto(out *NetworkPolicyList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]NetworkPolicy, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyList.\nfunc (in *NetworkPolicyList) DeepCopy() *NetworkPolicyList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NetworkPolicyList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *NetworkPolicyList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NetworkPolicyPeer) DeepCopyInto(out *NetworkPolicyPeer) {\n\t*out = *in\n\tif in.PodSelector != nil {\n\t\tin, out := &in.PodSelector, &out.PodSelector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.NamespaceSelector != nil {\n\t\tin, out := &in.NamespaceSelector, &out.NamespaceSelector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.IPBlock != nil {\n\t\tin, out := &in.IPBlock, &out.IPBlock\n\t\t*out = new(IPBlock)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyPeer.\nfunc (in *NetworkPolicyPeer) DeepCopy() *NetworkPolicyPeer {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NetworkPolicyPeer)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NetworkPolicyPort) DeepCopyInto(out *NetworkPolicyPort) {\n\t*out = *in\n\tif in.Protocol != nil {\n\t\tin, out := &in.Protocol, &out.Protocol\n\t\t*out = new(corev1.Protocol)\n\t\t**out = **in\n\t}\n\tif in.Port != nil {\n\t\tin, out := &in.Port, &out.Port\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\tif in.EndPort != nil {\n\t\tin, out := &in.EndPort, &out.EndPort\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicyPort.\nfunc (in *NetworkPolicyPort) DeepCopy() *NetworkPolicyPort {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NetworkPolicyPort)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NetworkPolicySpec) DeepCopyInto(out *NetworkPolicySpec) {\n\t*out = *in\n\tin.PodSelector.DeepCopyInto(&out.PodSelector)\n\tif in.Ingress != nil {\n\t\tin, out := &in.Ingress, &out.Ingress\n\t\t*out = make([]NetworkPolicyIngressRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Egress != nil {\n\t\tin, out := &in.Egress, &out.Egress\n\t\t*out = make([]NetworkPolicyEgressRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.PolicyTypes != nil {\n\t\tin, out := &in.PolicyTypes, &out.PolicyTypes\n\t\t*out = make([]PolicyType, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkPolicySpec.\nfunc (in *NetworkPolicySpec) DeepCopy() *NetworkPolicySpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NetworkPolicySpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ServiceBackendPort) DeepCopyInto(out *ServiceBackendPort) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceBackendPort.\nfunc (in *ServiceBackendPort) DeepCopy() *ServiceBackendPort {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ServiceBackendPort)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *Ingress) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *IngressClass) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *IngressClassList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *IngressList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *NetworkPolicy) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 7\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *NetworkPolicyList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 19\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1alpha1/doc.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n// +groupName=networking.k8s.io\n\npackage v1alpha1 // import \"k8s.io/api/networking/v1alpha1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1alpha1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/networking/v1alpha1/generated.proto\n\npackage v1alpha1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *IPAddress) Reset()      { *m = IPAddress{} }\nfunc (*IPAddress) ProtoMessage() {}\nfunc (*IPAddress) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c1cb39e7b48ce50d, []int{0}\n}\nfunc (m *IPAddress) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IPAddress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IPAddress) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IPAddress.Merge(m, src)\n}\nfunc (m *IPAddress) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IPAddress) XXX_DiscardUnknown() {\n\txxx_messageInfo_IPAddress.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IPAddress proto.InternalMessageInfo\n\nfunc (m *IPAddressList) Reset()      { *m = IPAddressList{} }\nfunc (*IPAddressList) ProtoMessage() {}\nfunc (*IPAddressList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c1cb39e7b48ce50d, []int{1}\n}\nfunc (m *IPAddressList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IPAddressList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IPAddressList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IPAddressList.Merge(m, src)\n}\nfunc (m *IPAddressList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IPAddressList) XXX_DiscardUnknown() {\n\txxx_messageInfo_IPAddressList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IPAddressList proto.InternalMessageInfo\n\nfunc (m *IPAddressSpec) Reset()      { *m = IPAddressSpec{} }\nfunc (*IPAddressSpec) ProtoMessage() {}\nfunc (*IPAddressSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c1cb39e7b48ce50d, []int{2}\n}\nfunc (m *IPAddressSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IPAddressSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IPAddressSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IPAddressSpec.Merge(m, src)\n}\nfunc (m *IPAddressSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IPAddressSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_IPAddressSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IPAddressSpec proto.InternalMessageInfo\n\nfunc (m *ParentReference) Reset()      { *m = ParentReference{} }\nfunc (*ParentReference) ProtoMessage() {}\nfunc (*ParentReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c1cb39e7b48ce50d, []int{3}\n}\nfunc (m *ParentReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ParentReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ParentReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ParentReference.Merge(m, src)\n}\nfunc (m *ParentReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ParentReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_ParentReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ParentReference proto.InternalMessageInfo\n\nfunc (m *ServiceCIDR) Reset()      { *m = ServiceCIDR{} }\nfunc (*ServiceCIDR) ProtoMessage() {}\nfunc (*ServiceCIDR) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c1cb39e7b48ce50d, []int{4}\n}\nfunc (m *ServiceCIDR) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ServiceCIDR) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ServiceCIDR) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServiceCIDR.Merge(m, src)\n}\nfunc (m *ServiceCIDR) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ServiceCIDR) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServiceCIDR.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServiceCIDR proto.InternalMessageInfo\n\nfunc (m *ServiceCIDRList) Reset()      { *m = ServiceCIDRList{} }\nfunc (*ServiceCIDRList) ProtoMessage() {}\nfunc (*ServiceCIDRList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c1cb39e7b48ce50d, []int{5}\n}\nfunc (m *ServiceCIDRList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ServiceCIDRList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ServiceCIDRList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServiceCIDRList.Merge(m, src)\n}\nfunc (m *ServiceCIDRList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ServiceCIDRList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServiceCIDRList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServiceCIDRList proto.InternalMessageInfo\n\nfunc (m *ServiceCIDRSpec) Reset()      { *m = ServiceCIDRSpec{} }\nfunc (*ServiceCIDRSpec) ProtoMessage() {}\nfunc (*ServiceCIDRSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c1cb39e7b48ce50d, []int{6}\n}\nfunc (m *ServiceCIDRSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ServiceCIDRSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ServiceCIDRSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServiceCIDRSpec.Merge(m, src)\n}\nfunc (m *ServiceCIDRSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ServiceCIDRSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServiceCIDRSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServiceCIDRSpec proto.InternalMessageInfo\n\nfunc (m *ServiceCIDRStatus) Reset()      { *m = ServiceCIDRStatus{} }\nfunc (*ServiceCIDRStatus) ProtoMessage() {}\nfunc (*ServiceCIDRStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c1cb39e7b48ce50d, []int{7}\n}\nfunc (m *ServiceCIDRStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ServiceCIDRStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ServiceCIDRStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServiceCIDRStatus.Merge(m, src)\n}\nfunc (m *ServiceCIDRStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ServiceCIDRStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServiceCIDRStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServiceCIDRStatus proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*IPAddress)(nil), \"k8s.io.api.networking.v1alpha1.IPAddress\")\n\tproto.RegisterType((*IPAddressList)(nil), \"k8s.io.api.networking.v1alpha1.IPAddressList\")\n\tproto.RegisterType((*IPAddressSpec)(nil), \"k8s.io.api.networking.v1alpha1.IPAddressSpec\")\n\tproto.RegisterType((*ParentReference)(nil), \"k8s.io.api.networking.v1alpha1.ParentReference\")\n\tproto.RegisterType((*ServiceCIDR)(nil), \"k8s.io.api.networking.v1alpha1.ServiceCIDR\")\n\tproto.RegisterType((*ServiceCIDRList)(nil), \"k8s.io.api.networking.v1alpha1.ServiceCIDRList\")\n\tproto.RegisterType((*ServiceCIDRSpec)(nil), \"k8s.io.api.networking.v1alpha1.ServiceCIDRSpec\")\n\tproto.RegisterType((*ServiceCIDRStatus)(nil), \"k8s.io.api.networking.v1alpha1.ServiceCIDRStatus\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/networking/v1alpha1/generated.proto\", fileDescriptor_c1cb39e7b48ce50d)\n}\n\nvar fileDescriptor_c1cb39e7b48ce50d = []byte{\n\t// 634 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x55, 0xcd, 0x6e, 0xd3, 0x4a,\n\t0x18, 0x8d, 0xdb, 0xa4, 0xaa, 0x27, 0xb7, 0xb7, 0xb7, 0x5e, 0x45, 0x5d, 0x38, 0x91, 0xef, 0xa6,\n\t0x08, 0x3a, 0x26, 0x11, 0x42, 0x6c, 0x71, 0x2b, 0xa1, 0x4a, 0xd0, 0x96, 0xe9, 0x0a, 0xd4, 0x05,\n\t0xd3, 0xc9, 0x57, 0x67, 0x08, 0xfe, 0xd1, 0xcc, 0x24, 0xc0, 0x8e, 0x47, 0xe0, 0x05, 0x78, 0x0e,\n\t0x56, 0x20, 0xb1, 0xeb, 0xb2, 0xcb, 0xae, 0x2a, 0x6a, 0x5e, 0x04, 0xcd, 0xd8, 0xb1, 0x93, 0x46,\n\t0xfd, 0xdb, 0x74, 0xe7, 0xef, 0xcc, 0x39, 0x67, 0xbe, 0xf3, 0xcd, 0x8c, 0x8c, 0xf0, 0xf0, 0x99,\n\t0xc4, 0x3c, 0xf1, 0x69, 0xca, 0xfd, 0x18, 0xd4, 0xc7, 0x44, 0x0c, 0x79, 0x1c, 0xfa, 0xe3, 0x2e,\n\t0xfd, 0x90, 0x0e, 0x68, 0xd7, 0x0f, 0x21, 0x06, 0x41, 0x15, 0xf4, 0x71, 0x2a, 0x12, 0x95, 0x38,\n\t0x6e, 0xce, 0xc7, 0x34, 0xe5, 0xb8, 0xe2, 0xe3, 0x09, 0x7f, 0x7d, 0x33, 0xe4, 0x6a, 0x30, 0x3a,\n\t0xc2, 0x2c, 0x89, 0xfc, 0x30, 0x09, 0x13, 0xdf, 0xc8, 0x8e, 0x46, 0xc7, 0xa6, 0x32, 0x85, 0xf9,\n\t0xca, 0xed, 0xd6, 0x9f, 0x54, 0xdb, 0x47, 0x94, 0x0d, 0x78, 0x0c, 0xe2, 0xb3, 0x9f, 0x0e, 0x43,\n\t0x0d, 0x48, 0x3f, 0x02, 0x45, 0xfd, 0xf1, 0x5c, 0x13, 0xeb, 0xfe, 0x55, 0x2a, 0x31, 0x8a, 0x15,\n\t0x8f, 0x60, 0x4e, 0xf0, 0xf4, 0x26, 0x81, 0x64, 0x03, 0x88, 0xe8, 0x65, 0x9d, 0xf7, 0xd3, 0x42,\n\t0xf6, 0xce, 0xfe, 0xf3, 0x7e, 0x5f, 0x80, 0x94, 0xce, 0x3b, 0xb4, 0xac, 0x3b, 0xea, 0x53, 0x45,\n\t0x5b, 0x56, 0xc7, 0xda, 0x68, 0xf6, 0x1e, 0xe3, 0x6a, 0x1c, 0xa5, 0x31, 0x4e, 0x87, 0xa1, 0x06,\n\t0x24, 0xd6, 0x6c, 0x3c, 0xee, 0xe2, 0xbd, 0xa3, 0xf7, 0xc0, 0xd4, 0x2b, 0x50, 0x34, 0x70, 0x4e,\n\t0xce, 0xdb, 0xb5, 0xec, 0xbc, 0x8d, 0x2a, 0x8c, 0x94, 0xae, 0xce, 0x1e, 0xaa, 0xcb, 0x14, 0x58,\n\t0x6b, 0xc1, 0xb8, 0x6f, 0xe2, 0xeb, 0x87, 0x8d, 0xcb, 0xd6, 0x0e, 0x52, 0x60, 0xc1, 0x3f, 0x85,\n\t0x75, 0x5d, 0x57, 0xc4, 0x18, 0x79, 0x3f, 0x2c, 0xb4, 0x52, 0xb2, 0x5e, 0x72, 0xa9, 0x9c, 0xc3,\n\t0xb9, 0x10, 0xf8, 0x76, 0x21, 0xb4, 0xda, 0x44, 0xf8, 0xaf, 0xd8, 0x67, 0x79, 0x82, 0x4c, 0x05,\n\t0xd8, 0x45, 0x0d, 0xae, 0x20, 0x92, 0xad, 0x85, 0xce, 0xe2, 0x46, 0xb3, 0xf7, 0xe0, 0xd6, 0x09,\n\t0x82, 0x95, 0xc2, 0xb5, 0xb1, 0xa3, 0xf5, 0x24, 0xb7, 0xf1, 0xa2, 0xa9, 0xf6, 0x75, 0x2c, 0xe7,\n\t0x10, 0xd9, 0x29, 0x15, 0x10, 0x2b, 0x02, 0xc7, 0x45, 0xff, 0xfe, 0x4d, 0x9b, 0xec, 0x4f, 0x04,\n\t0x20, 0x20, 0x66, 0x10, 0xac, 0x64, 0xe7, 0x6d, 0xbb, 0x04, 0x49, 0x65, 0xe8, 0x7d, 0xb7, 0xd0,\n\t0xea, 0x25, 0xb6, 0xf3, 0x3f, 0x6a, 0x84, 0x22, 0x19, 0xa5, 0x66, 0x37, 0xbb, 0xea, 0xf3, 0x85,\n\t0x06, 0x49, 0xbe, 0xe6, 0x3c, 0x42, 0xcb, 0x02, 0x64, 0x32, 0x12, 0x0c, 0xcc, 0xe1, 0xd9, 0xd5,\n\t0x94, 0x48, 0x81, 0x93, 0x92, 0xe1, 0xf8, 0xc8, 0x8e, 0x69, 0x04, 0x32, 0xa5, 0x0c, 0x5a, 0x8b,\n\t0x86, 0xbe, 0x56, 0xd0, 0xed, 0xdd, 0xc9, 0x02, 0xa9, 0x38, 0x4e, 0x07, 0xd5, 0x75, 0xd1, 0xaa,\n\t0x1b, 0x6e, 0x79, 0xd0, 0x9a, 0x4b, 0xcc, 0x8a, 0xf7, 0x6d, 0x01, 0x35, 0x0f, 0x40, 0x8c, 0x39,\n\t0x83, 0xad, 0x9d, 0x6d, 0x72, 0x0f, 0x77, 0xf5, 0xf5, 0xcc, 0x5d, 0xbd, 0xf1, 0x10, 0xa6, 0x9a,\n\t0xbb, 0xea, 0xb6, 0x3a, 0x6f, 0xd0, 0x92, 0x54, 0x54, 0x8d, 0xa4, 0x19, 0x4a, 0xb3, 0xd7, 0xbd,\n\t0x8b, 0xa9, 0x11, 0x06, 0xff, 0x16, 0xb6, 0x4b, 0x79, 0x4d, 0x0a, 0x43, 0xef, 0x97, 0x85, 0x56,\n\t0xa7, 0xd8, 0xf7, 0xf0, 0x14, 0xf6, 0x67, 0x9f, 0xc2, 0xc3, 0x3b, 0x64, 0xb9, 0xe2, 0x31, 0xf4,\n\t0x66, 0x22, 0x98, 0xe7, 0xd0, 0x46, 0x0d, 0xc6, 0xfb, 0x42, 0xb6, 0xac, 0xce, 0xe2, 0x86, 0x1d,\n\t0xd8, 0x5a, 0xa3, 0x17, 0x25, 0xc9, 0x71, 0xef, 0x13, 0x5a, 0x9b, 0x1b, 0x92, 0xc3, 0x10, 0x62,\n\t0x49, 0xdc, 0xe7, 0x8a, 0x27, 0x71, 0x2e, 0x9d, 0x3d, 0xc0, 0x6b, 0xa2, 0x6f, 0x4d, 0x74, 0xd5,\n\t0xed, 0x28, 0x21, 0x49, 0xa6, 0x6c, 0x83, 0xed, 0x93, 0x0b, 0xb7, 0x76, 0x7a, 0xe1, 0xd6, 0xce,\n\t0x2e, 0xdc, 0xda, 0x97, 0xcc, 0xb5, 0x4e, 0x32, 0xd7, 0x3a, 0xcd, 0x5c, 0xeb, 0x2c, 0x73, 0xad,\n\t0xdf, 0x99, 0x6b, 0x7d, 0xfd, 0xe3, 0xd6, 0xde, 0xba, 0xd7, 0xff, 0x7f, 0xfe, 0x06, 0x00, 0x00,\n\t0xff, 0xff, 0xb1, 0xd0, 0x33, 0x02, 0xa0, 0x06, 0x00, 0x00,\n}\n\nfunc (m *IPAddress) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IPAddress) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IPAddress) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IPAddressList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IPAddressList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IPAddressList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IPAddressSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IPAddressSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IPAddressSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ParentRef != nil {\n\t\t{\n\t\t\tsize, err := m.ParentRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ParentReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ParentReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ParentReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Namespace)\n\tcopy(dAtA[i:], m.Namespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Resource)\n\tcopy(dAtA[i:], m.Resource)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Resource)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Group)\n\tcopy(dAtA[i:], m.Group)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Group)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ServiceCIDR) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServiceCIDR) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ServiceCIDR) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ServiceCIDRList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServiceCIDRList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ServiceCIDRList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ServiceCIDRSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServiceCIDRSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ServiceCIDRSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.CIDRs) > 0 {\n\t\tfor iNdEx := len(m.CIDRs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.CIDRs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.CIDRs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.CIDRs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ServiceCIDRStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServiceCIDRStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ServiceCIDRStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *IPAddress) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *IPAddressList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *IPAddressSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.ParentRef != nil {\n\t\tl = m.ParentRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ParentReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Group)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Resource)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Namespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ServiceCIDR) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ServiceCIDRList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ServiceCIDRSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.CIDRs) > 0 {\n\t\tfor _, s := range m.CIDRs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ServiceCIDRStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *IPAddress) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IPAddress{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"IPAddressSpec\", \"IPAddressSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IPAddressList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]IPAddress{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"IPAddress\", \"IPAddress\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&IPAddressList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IPAddressSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IPAddressSpec{`,\n\t\t`ParentRef:` + strings.Replace(this.ParentRef.String(), \"ParentReference\", \"ParentReference\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ParentReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ParentReference{`,\n\t\t`Group:` + fmt.Sprintf(\"%v\", this.Group) + `,`,\n\t\t`Resource:` + fmt.Sprintf(\"%v\", this.Resource) + `,`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ServiceCIDR) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ServiceCIDR{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ServiceCIDRSpec\", \"ServiceCIDRSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"ServiceCIDRStatus\", \"ServiceCIDRStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ServiceCIDRList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ServiceCIDR{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ServiceCIDR\", \"ServiceCIDR\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ServiceCIDRList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ServiceCIDRSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ServiceCIDRSpec{`,\n\t\t`CIDRs:` + fmt.Sprintf(\"%v\", this.CIDRs) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ServiceCIDRStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]Condition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&ServiceCIDRStatus{`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *IPAddress) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IPAddress: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IPAddress: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IPAddressList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IPAddressList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IPAddressList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, IPAddress{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IPAddressSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IPAddressSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IPAddressSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ParentRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ParentRef == nil {\n\t\t\t\tm.ParentRef = &ParentReference{}\n\t\t\t}\n\t\t\tif err := m.ParentRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ParentReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ParentReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ParentReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Group\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Group = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resource\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resource = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ServiceCIDR) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceCIDR: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceCIDR: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ServiceCIDRList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceCIDRList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceCIDRList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ServiceCIDR{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ServiceCIDRSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceCIDRSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceCIDRSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CIDRs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.CIDRs = append(m.CIDRs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ServiceCIDRStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceCIDRStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceCIDRStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, v1.Condition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1alpha1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.networking.v1alpha1;\n\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/networking/v1alpha1\";\n\n// IPAddress represents a single IP of a single IP Family. The object is designed to be used by APIs\n// that operate on IP addresses. The object is used by the Service core API for allocation of IP addresses.\n// An IP address can be represented in different formats, to guarantee the uniqueness of the IP,\n// the name of the object is the IP address in canonical format, four decimal digits separated\n// by dots suppressing leading zeros for IPv4 and the representation defined by RFC 5952 for IPv6.\n// Valid: 192.168.1.5 or 2001:db8::1 or 2001:db8:aaaa:bbbb:cccc:dddd:eeee:1\n// Invalid: 10.01.2.3 or 2001:db8:0:0:0::1\nmessage IPAddress {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec is the desired state of the IPAddress.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional IPAddressSpec spec = 2;\n}\n\n// IPAddressList contains a list of IPAddress.\nmessage IPAddressList {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of IPAddresses.\n  repeated IPAddress items = 2;\n}\n\n// IPAddressSpec describe the attributes in an IP Address.\nmessage IPAddressSpec {\n  // ParentRef references the resource that an IPAddress is attached to.\n  // An IPAddress must reference a parent object.\n  // +required\n  optional ParentReference parentRef = 1;\n}\n\n// ParentReference describes a reference to a parent object.\nmessage ParentReference {\n  // Group is the group of the object being referenced.\n  // +optional\n  optional string group = 1;\n\n  // Resource is the resource of the object being referenced.\n  // +required\n  optional string resource = 2;\n\n  // Namespace is the namespace of the object being referenced.\n  // +optional\n  optional string namespace = 3;\n\n  // Name is the name of the object being referenced.\n  // +required\n  optional string name = 4;\n}\n\n// ServiceCIDR defines a range of IP addresses using CIDR format (e.g. 192.168.0.0/24 or 2001:db2::/64).\n// This range is used to allocate ClusterIPs to Service objects.\nmessage ServiceCIDR {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec is the desired state of the ServiceCIDR.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional ServiceCIDRSpec spec = 2;\n\n  // status represents the current state of the ServiceCIDR.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional ServiceCIDRStatus status = 3;\n}\n\n// ServiceCIDRList contains a list of ServiceCIDR objects.\nmessage ServiceCIDRList {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of ServiceCIDRs.\n  repeated ServiceCIDR items = 2;\n}\n\n// ServiceCIDRSpec define the CIDRs the user wants to use for allocating ClusterIPs for Services.\nmessage ServiceCIDRSpec {\n  // CIDRs defines the IP blocks in CIDR notation (e.g. \"192.168.0.0/24\" or \"2001:db8::/64\")\n  // from which to assign service cluster IPs. Max of two CIDRs is allowed, one of each IP family.\n  // The network address of each CIDR, the address that identifies the subnet of a host, is reserved\n  // and will not be allocated. The broadcast address for IPv4 CIDRs is also reserved and will not be\n  // allocated.\n  // This field is immutable.\n  // +optional\n  // +listType=atomic\n  repeated string cidrs = 1;\n}\n\n// ServiceCIDRStatus describes the current state of the ServiceCIDR.\nmessage ServiceCIDRStatus {\n  // conditions holds an array of metav1.Condition that describe the state of the ServiceCIDR.\n  // Current service state\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=type\n  repeated .k8s.io.apimachinery.pkg.apis.meta.v1.Condition conditions = 1;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1alpha1/register.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name used in this package.\nconst GroupName = \"networking.k8s.io\"\n\n// SchemeGroupVersion is group version used to register objects in this package.\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1alpha1\"}\n\n// Kind takes an unqualified kind and returns a Group qualified GroupKind.\nfunc Kind(kind string) schema.GroupKind {\n\treturn SchemeGroupVersion.WithKind(kind).GroupKind()\n}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource.\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// SchemeBuilder holds functions that add things to a scheme.\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\n\t// AddToScheme adds the types of this group into the given scheme.\n\tAddToScheme = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&IPAddress{},\n\t\t&IPAddressList{},\n\t\t&ServiceCIDR{},\n\t\t&ServiceCIDRList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1alpha1/types.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.27\n\n// IPAddress represents a single IP of a single IP Family. The object is designed to be used by APIs\n// that operate on IP addresses. The object is used by the Service core API for allocation of IP addresses.\n// An IP address can be represented in different formats, to guarantee the uniqueness of the IP,\n// the name of the object is the IP address in canonical format, four decimal digits separated\n// by dots suppressing leading zeros for IPv4 and the representation defined by RFC 5952 for IPv6.\n// Valid: 192.168.1.5 or 2001:db8::1 or 2001:db8:aaaa:bbbb:cccc:dddd:eeee:1\n// Invalid: 10.01.2.3 or 2001:db8:0:0:0::1\ntype IPAddress struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// spec is the desired state of the IPAddress.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec IPAddressSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n}\n\n// IPAddressSpec describe the attributes in an IP Address.\ntype IPAddressSpec struct {\n\t// ParentRef references the resource that an IPAddress is attached to.\n\t// An IPAddress must reference a parent object.\n\t// +required\n\tParentRef *ParentReference `json:\"parentRef,omitempty\" protobuf:\"bytes,1,opt,name=parentRef\"`\n}\n\n// ParentReference describes a reference to a parent object.\ntype ParentReference struct {\n\t// Group is the group of the object being referenced.\n\t// +optional\n\tGroup string `json:\"group,omitempty\" protobuf:\"bytes,1,opt,name=group\"`\n\t// Resource is the resource of the object being referenced.\n\t// +required\n\tResource string `json:\"resource,omitempty\" protobuf:\"bytes,2,opt,name=resource\"`\n\t// Namespace is the namespace of the object being referenced.\n\t// +optional\n\tNamespace string `json:\"namespace,omitempty\" protobuf:\"bytes,3,opt,name=namespace\"`\n\t// Name is the name of the object being referenced.\n\t// +required\n\tName string `json:\"name,omitempty\" protobuf:\"bytes,4,opt,name=name\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.27\n\n// IPAddressList contains a list of IPAddress.\ntype IPAddressList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// items is the list of IPAddresses.\n\tItems []IPAddress `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.27\n\n// ServiceCIDR defines a range of IP addresses using CIDR format (e.g. 192.168.0.0/24 or 2001:db2::/64).\n// This range is used to allocate ClusterIPs to Service objects.\ntype ServiceCIDR struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// spec is the desired state of the ServiceCIDR.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec ServiceCIDRSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\t// status represents the current state of the ServiceCIDR.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus ServiceCIDRStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// ServiceCIDRSpec define the CIDRs the user wants to use for allocating ClusterIPs for Services.\ntype ServiceCIDRSpec struct {\n\t// CIDRs defines the IP blocks in CIDR notation (e.g. \"192.168.0.0/24\" or \"2001:db8::/64\")\n\t// from which to assign service cluster IPs. Max of two CIDRs is allowed, one of each IP family.\n\t// The network address of each CIDR, the address that identifies the subnet of a host, is reserved\n\t// and will not be allocated. The broadcast address for IPv4 CIDRs is also reserved and will not be\n\t// allocated.\n\t// This field is immutable.\n\t// +optional\n\t// +listType=atomic\n\tCIDRs []string `json:\"cidrs,omitempty\" protobuf:\"bytes,1,opt,name=cidrs\"`\n}\n\nconst (\n\t// ServiceCIDRConditionReady represents status of a ServiceCIDR that is ready to be used by the\n\t// apiserver to allocate ClusterIPs for Services.\n\tServiceCIDRConditionReady = \"Ready\"\n\t// ServiceCIDRReasonTerminating represents a reason where a ServiceCIDR is not ready because it is\n\t// being deleted.\n\tServiceCIDRReasonTerminating = \"Terminating\"\n)\n\n// ServiceCIDRStatus describes the current state of the ServiceCIDR.\ntype ServiceCIDRStatus struct {\n\t// conditions holds an array of metav1.Condition that describe the state of the ServiceCIDR.\n\t// Current service state\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=type\n\tConditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.27\n\n// ServiceCIDRList contains a list of ServiceCIDR objects.\ntype ServiceCIDRList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// items is the list of ServiceCIDRs.\n\tItems []ServiceCIDR `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1alpha1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_IPAddress = map[string]string{\n\t\"\":         \"IPAddress represents a single IP of a single IP Family. The object is designed to be used by APIs that operate on IP addresses. The object is used by the Service core API for allocation of IP addresses. An IP address can be represented in different formats, to guarantee the uniqueness of the IP, the name of the object is the IP address in canonical format, four decimal digits separated by dots suppressing leading zeros for IPv4 and the representation defined by RFC 5952 for IPv6. Valid: 192.168.1.5 or 2001:db8::1 or 2001:db8:aaaa:bbbb:cccc:dddd:eeee:1 Invalid: 10.01.2.3 or 2001:db8:0:0:0::1\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec is the desired state of the IPAddress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (IPAddress) SwaggerDoc() map[string]string {\n\treturn map_IPAddress\n}\n\nvar map_IPAddressList = map[string]string{\n\t\"\":         \"IPAddressList contains a list of IPAddress.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of IPAddresses.\",\n}\n\nfunc (IPAddressList) SwaggerDoc() map[string]string {\n\treturn map_IPAddressList\n}\n\nvar map_IPAddressSpec = map[string]string{\n\t\"\":          \"IPAddressSpec describe the attributes in an IP Address.\",\n\t\"parentRef\": \"ParentRef references the resource that an IPAddress is attached to. An IPAddress must reference a parent object.\",\n}\n\nfunc (IPAddressSpec) SwaggerDoc() map[string]string {\n\treturn map_IPAddressSpec\n}\n\nvar map_ParentReference = map[string]string{\n\t\"\":          \"ParentReference describes a reference to a parent object.\",\n\t\"group\":     \"Group is the group of the object being referenced.\",\n\t\"resource\":  \"Resource is the resource of the object being referenced.\",\n\t\"namespace\": \"Namespace is the namespace of the object being referenced.\",\n\t\"name\":      \"Name is the name of the object being referenced.\",\n}\n\nfunc (ParentReference) SwaggerDoc() map[string]string {\n\treturn map_ParentReference\n}\n\nvar map_ServiceCIDR = map[string]string{\n\t\"\":         \"ServiceCIDR defines a range of IP addresses using CIDR format (e.g. 192.168.0.0/24 or 2001:db2::/64). This range is used to allocate ClusterIPs to Service objects.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec is the desired state of the ServiceCIDR. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"status represents the current state of the ServiceCIDR. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (ServiceCIDR) SwaggerDoc() map[string]string {\n\treturn map_ServiceCIDR\n}\n\nvar map_ServiceCIDRList = map[string]string{\n\t\"\":         \"ServiceCIDRList contains a list of ServiceCIDR objects.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of ServiceCIDRs.\",\n}\n\nfunc (ServiceCIDRList) SwaggerDoc() map[string]string {\n\treturn map_ServiceCIDRList\n}\n\nvar map_ServiceCIDRSpec = map[string]string{\n\t\"\":      \"ServiceCIDRSpec define the CIDRs the user wants to use for allocating ClusterIPs for Services.\",\n\t\"cidrs\": \"CIDRs defines the IP blocks in CIDR notation (e.g. \\\"192.168.0.0/24\\\" or \\\"2001:db8::/64\\\") from which to assign service cluster IPs. Max of two CIDRs is allowed, one of each IP family. The network address of each CIDR, the address that identifies the subnet of a host, is reserved and will not be allocated. The broadcast address for IPv4 CIDRs is also reserved and will not be allocated. This field is immutable.\",\n}\n\nfunc (ServiceCIDRSpec) SwaggerDoc() map[string]string {\n\treturn map_ServiceCIDRSpec\n}\n\nvar map_ServiceCIDRStatus = map[string]string{\n\t\"\":           \"ServiceCIDRStatus describes the current state of the ServiceCIDR.\",\n\t\"conditions\": \"conditions holds an array of metav1.Condition that describe the state of the ServiceCIDR. Current service state\",\n}\n\nfunc (ServiceCIDRStatus) SwaggerDoc() map[string]string {\n\treturn map_ServiceCIDRStatus\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1alpha1/well_known_labels.go",
    "content": "/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nconst (\n\n\t// TODO: Use IPFamily as field with a field selector,And the value is set based on\n\t// the name at create time and immutable.\n\t// LabelIPAddressFamily is used to indicate the IP family of a Kubernetes IPAddress.\n\t// This label simplify dual-stack client operations allowing to obtain the list of\n\t// IP addresses filtered by family.\n\tLabelIPAddressFamily = \"ipaddress.kubernetes.io/ip-family\"\n\t// LabelManagedBy is used to indicate the controller or entity that manages\n\t// an IPAddress. This label aims to enable different IPAddress\n\t// objects to be managed by different controllers or entities within the\n\t// same cluster. It is highly recommended to configure this label for all\n\t// IPAddress objects.\n\tLabelManagedBy = \"ipaddress.kubernetes.io/managed-by\"\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1alpha1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IPAddress) DeepCopyInto(out *IPAddress) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPAddress.\nfunc (in *IPAddress) DeepCopy() *IPAddress {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IPAddress)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *IPAddress) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IPAddressList) DeepCopyInto(out *IPAddressList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]IPAddress, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPAddressList.\nfunc (in *IPAddressList) DeepCopy() *IPAddressList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IPAddressList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *IPAddressList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IPAddressSpec) DeepCopyInto(out *IPAddressSpec) {\n\t*out = *in\n\tif in.ParentRef != nil {\n\t\tin, out := &in.ParentRef, &out.ParentRef\n\t\t*out = new(ParentReference)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPAddressSpec.\nfunc (in *IPAddressSpec) DeepCopy() *IPAddressSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IPAddressSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ParentReference) DeepCopyInto(out *ParentReference) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParentReference.\nfunc (in *ParentReference) DeepCopy() *ParentReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ParentReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ServiceCIDR) DeepCopyInto(out *ServiceCIDR) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceCIDR.\nfunc (in *ServiceCIDR) DeepCopy() *ServiceCIDR {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ServiceCIDR)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ServiceCIDR) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ServiceCIDRList) DeepCopyInto(out *ServiceCIDRList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ServiceCIDR, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceCIDRList.\nfunc (in *ServiceCIDRList) DeepCopy() *ServiceCIDRList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ServiceCIDRList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ServiceCIDRList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ServiceCIDRSpec) DeepCopyInto(out *ServiceCIDRSpec) {\n\t*out = *in\n\tif in.CIDRs != nil {\n\t\tin, out := &in.CIDRs, &out.CIDRs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceCIDRSpec.\nfunc (in *ServiceCIDRSpec) DeepCopy() *ServiceCIDRSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ServiceCIDRSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ServiceCIDRStatus) DeepCopyInto(out *ServiceCIDRStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]v1.Condition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceCIDRStatus.\nfunc (in *ServiceCIDRStatus) DeepCopy() *ServiceCIDRStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ServiceCIDRStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1alpha1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *IPAddress) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 27\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *IPAddress) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 30\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *IPAddress) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 33\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *IPAddressList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 27\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *IPAddressList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 30\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *IPAddressList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 33\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ServiceCIDR) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 27\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ServiceCIDR) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 30\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ServiceCIDR) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 33\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ServiceCIDRList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 27\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ServiceCIDRList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 30\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ServiceCIDRList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 33\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1beta1/doc.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n// +groupName=networking.k8s.io\n\npackage v1beta1 // import \"k8s.io/api/networking/v1beta1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1beta1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/networking/v1beta1/generated.proto\n\npackage v1beta1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\tv11 \"k8s.io/api/core/v1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *HTTPIngressPath) Reset()      { *m = HTTPIngressPath{} }\nfunc (*HTTPIngressPath) ProtoMessage() {}\nfunc (*HTTPIngressPath) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_9497719c79c89d2d, []int{0}\n}\nfunc (m *HTTPIngressPath) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HTTPIngressPath) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HTTPIngressPath) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HTTPIngressPath.Merge(m, src)\n}\nfunc (m *HTTPIngressPath) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HTTPIngressPath) XXX_DiscardUnknown() {\n\txxx_messageInfo_HTTPIngressPath.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HTTPIngressPath proto.InternalMessageInfo\n\nfunc (m *HTTPIngressRuleValue) Reset()      { *m = HTTPIngressRuleValue{} }\nfunc (*HTTPIngressRuleValue) ProtoMessage() {}\nfunc (*HTTPIngressRuleValue) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_9497719c79c89d2d, []int{1}\n}\nfunc (m *HTTPIngressRuleValue) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *HTTPIngressRuleValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *HTTPIngressRuleValue) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_HTTPIngressRuleValue.Merge(m, src)\n}\nfunc (m *HTTPIngressRuleValue) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *HTTPIngressRuleValue) XXX_DiscardUnknown() {\n\txxx_messageInfo_HTTPIngressRuleValue.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_HTTPIngressRuleValue proto.InternalMessageInfo\n\nfunc (m *IPAddress) Reset()      { *m = IPAddress{} }\nfunc (*IPAddress) ProtoMessage() {}\nfunc (*IPAddress) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_9497719c79c89d2d, []int{2}\n}\nfunc (m *IPAddress) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IPAddress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IPAddress) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IPAddress.Merge(m, src)\n}\nfunc (m *IPAddress) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IPAddress) XXX_DiscardUnknown() {\n\txxx_messageInfo_IPAddress.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IPAddress proto.InternalMessageInfo\n\nfunc (m *IPAddressList) Reset()      { *m = IPAddressList{} }\nfunc (*IPAddressList) ProtoMessage() {}\nfunc (*IPAddressList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_9497719c79c89d2d, []int{3}\n}\nfunc (m *IPAddressList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IPAddressList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IPAddressList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IPAddressList.Merge(m, src)\n}\nfunc (m *IPAddressList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IPAddressList) XXX_DiscardUnknown() {\n\txxx_messageInfo_IPAddressList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IPAddressList proto.InternalMessageInfo\n\nfunc (m *IPAddressSpec) Reset()      { *m = IPAddressSpec{} }\nfunc (*IPAddressSpec) ProtoMessage() {}\nfunc (*IPAddressSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_9497719c79c89d2d, []int{4}\n}\nfunc (m *IPAddressSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IPAddressSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IPAddressSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IPAddressSpec.Merge(m, src)\n}\nfunc (m *IPAddressSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IPAddressSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_IPAddressSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IPAddressSpec proto.InternalMessageInfo\n\nfunc (m *Ingress) Reset()      { *m = Ingress{} }\nfunc (*Ingress) ProtoMessage() {}\nfunc (*Ingress) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_9497719c79c89d2d, []int{5}\n}\nfunc (m *Ingress) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Ingress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Ingress) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Ingress.Merge(m, src)\n}\nfunc (m *Ingress) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Ingress) XXX_DiscardUnknown() {\n\txxx_messageInfo_Ingress.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Ingress proto.InternalMessageInfo\n\nfunc (m *IngressBackend) Reset()      { *m = IngressBackend{} }\nfunc (*IngressBackend) ProtoMessage() {}\nfunc (*IngressBackend) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_9497719c79c89d2d, []int{6}\n}\nfunc (m *IngressBackend) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressBackend) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressBackend) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressBackend.Merge(m, src)\n}\nfunc (m *IngressBackend) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressBackend) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressBackend.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressBackend proto.InternalMessageInfo\n\nfunc (m *IngressClass) Reset()      { *m = IngressClass{} }\nfunc (*IngressClass) ProtoMessage() {}\nfunc (*IngressClass) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_9497719c79c89d2d, []int{7}\n}\nfunc (m *IngressClass) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressClass) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressClass) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressClass.Merge(m, src)\n}\nfunc (m *IngressClass) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressClass) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressClass.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressClass proto.InternalMessageInfo\n\nfunc (m *IngressClassList) Reset()      { *m = IngressClassList{} }\nfunc (*IngressClassList) ProtoMessage() {}\nfunc (*IngressClassList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_9497719c79c89d2d, []int{8}\n}\nfunc (m *IngressClassList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressClassList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressClassList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressClassList.Merge(m, src)\n}\nfunc (m *IngressClassList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressClassList) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressClassList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressClassList proto.InternalMessageInfo\n\nfunc (m *IngressClassParametersReference) Reset()      { *m = IngressClassParametersReference{} }\nfunc (*IngressClassParametersReference) ProtoMessage() {}\nfunc (*IngressClassParametersReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_9497719c79c89d2d, []int{9}\n}\nfunc (m *IngressClassParametersReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressClassParametersReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressClassParametersReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressClassParametersReference.Merge(m, src)\n}\nfunc (m *IngressClassParametersReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressClassParametersReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressClassParametersReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressClassParametersReference proto.InternalMessageInfo\n\nfunc (m *IngressClassSpec) Reset()      { *m = IngressClassSpec{} }\nfunc (*IngressClassSpec) ProtoMessage() {}\nfunc (*IngressClassSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_9497719c79c89d2d, []int{10}\n}\nfunc (m *IngressClassSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressClassSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressClassSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressClassSpec.Merge(m, src)\n}\nfunc (m *IngressClassSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressClassSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressClassSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressClassSpec proto.InternalMessageInfo\n\nfunc (m *IngressList) Reset()      { *m = IngressList{} }\nfunc (*IngressList) ProtoMessage() {}\nfunc (*IngressList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_9497719c79c89d2d, []int{11}\n}\nfunc (m *IngressList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressList.Merge(m, src)\n}\nfunc (m *IngressList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressList) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressList proto.InternalMessageInfo\n\nfunc (m *IngressLoadBalancerIngress) Reset()      { *m = IngressLoadBalancerIngress{} }\nfunc (*IngressLoadBalancerIngress) ProtoMessage() {}\nfunc (*IngressLoadBalancerIngress) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_9497719c79c89d2d, []int{12}\n}\nfunc (m *IngressLoadBalancerIngress) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressLoadBalancerIngress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressLoadBalancerIngress) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressLoadBalancerIngress.Merge(m, src)\n}\nfunc (m *IngressLoadBalancerIngress) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressLoadBalancerIngress) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressLoadBalancerIngress.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressLoadBalancerIngress proto.InternalMessageInfo\n\nfunc (m *IngressLoadBalancerStatus) Reset()      { *m = IngressLoadBalancerStatus{} }\nfunc (*IngressLoadBalancerStatus) ProtoMessage() {}\nfunc (*IngressLoadBalancerStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_9497719c79c89d2d, []int{13}\n}\nfunc (m *IngressLoadBalancerStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressLoadBalancerStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressLoadBalancerStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressLoadBalancerStatus.Merge(m, src)\n}\nfunc (m *IngressLoadBalancerStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressLoadBalancerStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressLoadBalancerStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressLoadBalancerStatus proto.InternalMessageInfo\n\nfunc (m *IngressPortStatus) Reset()      { *m = IngressPortStatus{} }\nfunc (*IngressPortStatus) ProtoMessage() {}\nfunc (*IngressPortStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_9497719c79c89d2d, []int{14}\n}\nfunc (m *IngressPortStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressPortStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressPortStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressPortStatus.Merge(m, src)\n}\nfunc (m *IngressPortStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressPortStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressPortStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressPortStatus proto.InternalMessageInfo\n\nfunc (m *IngressRule) Reset()      { *m = IngressRule{} }\nfunc (*IngressRule) ProtoMessage() {}\nfunc (*IngressRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_9497719c79c89d2d, []int{15}\n}\nfunc (m *IngressRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressRule.Merge(m, src)\n}\nfunc (m *IngressRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressRule proto.InternalMessageInfo\n\nfunc (m *IngressRuleValue) Reset()      { *m = IngressRuleValue{} }\nfunc (*IngressRuleValue) ProtoMessage() {}\nfunc (*IngressRuleValue) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_9497719c79c89d2d, []int{16}\n}\nfunc (m *IngressRuleValue) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressRuleValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressRuleValue) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressRuleValue.Merge(m, src)\n}\nfunc (m *IngressRuleValue) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressRuleValue) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressRuleValue.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressRuleValue proto.InternalMessageInfo\n\nfunc (m *IngressSpec) Reset()      { *m = IngressSpec{} }\nfunc (*IngressSpec) ProtoMessage() {}\nfunc (*IngressSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_9497719c79c89d2d, []int{17}\n}\nfunc (m *IngressSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressSpec.Merge(m, src)\n}\nfunc (m *IngressSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressSpec proto.InternalMessageInfo\n\nfunc (m *IngressStatus) Reset()      { *m = IngressStatus{} }\nfunc (*IngressStatus) ProtoMessage() {}\nfunc (*IngressStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_9497719c79c89d2d, []int{18}\n}\nfunc (m *IngressStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressStatus.Merge(m, src)\n}\nfunc (m *IngressStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressStatus proto.InternalMessageInfo\n\nfunc (m *IngressTLS) Reset()      { *m = IngressTLS{} }\nfunc (*IngressTLS) ProtoMessage() {}\nfunc (*IngressTLS) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_9497719c79c89d2d, []int{19}\n}\nfunc (m *IngressTLS) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IngressTLS) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IngressTLS) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IngressTLS.Merge(m, src)\n}\nfunc (m *IngressTLS) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IngressTLS) XXX_DiscardUnknown() {\n\txxx_messageInfo_IngressTLS.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IngressTLS proto.InternalMessageInfo\n\nfunc (m *ParentReference) Reset()      { *m = ParentReference{} }\nfunc (*ParentReference) ProtoMessage() {}\nfunc (*ParentReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_9497719c79c89d2d, []int{20}\n}\nfunc (m *ParentReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ParentReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ParentReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ParentReference.Merge(m, src)\n}\nfunc (m *ParentReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ParentReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_ParentReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ParentReference proto.InternalMessageInfo\n\nfunc (m *ServiceCIDR) Reset()      { *m = ServiceCIDR{} }\nfunc (*ServiceCIDR) ProtoMessage() {}\nfunc (*ServiceCIDR) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_9497719c79c89d2d, []int{21}\n}\nfunc (m *ServiceCIDR) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ServiceCIDR) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ServiceCIDR) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServiceCIDR.Merge(m, src)\n}\nfunc (m *ServiceCIDR) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ServiceCIDR) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServiceCIDR.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServiceCIDR proto.InternalMessageInfo\n\nfunc (m *ServiceCIDRList) Reset()      { *m = ServiceCIDRList{} }\nfunc (*ServiceCIDRList) ProtoMessage() {}\nfunc (*ServiceCIDRList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_9497719c79c89d2d, []int{22}\n}\nfunc (m *ServiceCIDRList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ServiceCIDRList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ServiceCIDRList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServiceCIDRList.Merge(m, src)\n}\nfunc (m *ServiceCIDRList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ServiceCIDRList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServiceCIDRList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServiceCIDRList proto.InternalMessageInfo\n\nfunc (m *ServiceCIDRSpec) Reset()      { *m = ServiceCIDRSpec{} }\nfunc (*ServiceCIDRSpec) ProtoMessage() {}\nfunc (*ServiceCIDRSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_9497719c79c89d2d, []int{23}\n}\nfunc (m *ServiceCIDRSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ServiceCIDRSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ServiceCIDRSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServiceCIDRSpec.Merge(m, src)\n}\nfunc (m *ServiceCIDRSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ServiceCIDRSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServiceCIDRSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServiceCIDRSpec proto.InternalMessageInfo\n\nfunc (m *ServiceCIDRStatus) Reset()      { *m = ServiceCIDRStatus{} }\nfunc (*ServiceCIDRStatus) ProtoMessage() {}\nfunc (*ServiceCIDRStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_9497719c79c89d2d, []int{24}\n}\nfunc (m *ServiceCIDRStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ServiceCIDRStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ServiceCIDRStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServiceCIDRStatus.Merge(m, src)\n}\nfunc (m *ServiceCIDRStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ServiceCIDRStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServiceCIDRStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServiceCIDRStatus proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*HTTPIngressPath)(nil), \"k8s.io.api.networking.v1beta1.HTTPIngressPath\")\n\tproto.RegisterType((*HTTPIngressRuleValue)(nil), \"k8s.io.api.networking.v1beta1.HTTPIngressRuleValue\")\n\tproto.RegisterType((*IPAddress)(nil), \"k8s.io.api.networking.v1beta1.IPAddress\")\n\tproto.RegisterType((*IPAddressList)(nil), \"k8s.io.api.networking.v1beta1.IPAddressList\")\n\tproto.RegisterType((*IPAddressSpec)(nil), \"k8s.io.api.networking.v1beta1.IPAddressSpec\")\n\tproto.RegisterType((*Ingress)(nil), \"k8s.io.api.networking.v1beta1.Ingress\")\n\tproto.RegisterType((*IngressBackend)(nil), \"k8s.io.api.networking.v1beta1.IngressBackend\")\n\tproto.RegisterType((*IngressClass)(nil), \"k8s.io.api.networking.v1beta1.IngressClass\")\n\tproto.RegisterType((*IngressClassList)(nil), \"k8s.io.api.networking.v1beta1.IngressClassList\")\n\tproto.RegisterType((*IngressClassParametersReference)(nil), \"k8s.io.api.networking.v1beta1.IngressClassParametersReference\")\n\tproto.RegisterType((*IngressClassSpec)(nil), \"k8s.io.api.networking.v1beta1.IngressClassSpec\")\n\tproto.RegisterType((*IngressList)(nil), \"k8s.io.api.networking.v1beta1.IngressList\")\n\tproto.RegisterType((*IngressLoadBalancerIngress)(nil), \"k8s.io.api.networking.v1beta1.IngressLoadBalancerIngress\")\n\tproto.RegisterType((*IngressLoadBalancerStatus)(nil), \"k8s.io.api.networking.v1beta1.IngressLoadBalancerStatus\")\n\tproto.RegisterType((*IngressPortStatus)(nil), \"k8s.io.api.networking.v1beta1.IngressPortStatus\")\n\tproto.RegisterType((*IngressRule)(nil), \"k8s.io.api.networking.v1beta1.IngressRule\")\n\tproto.RegisterType((*IngressRuleValue)(nil), \"k8s.io.api.networking.v1beta1.IngressRuleValue\")\n\tproto.RegisterType((*IngressSpec)(nil), \"k8s.io.api.networking.v1beta1.IngressSpec\")\n\tproto.RegisterType((*IngressStatus)(nil), \"k8s.io.api.networking.v1beta1.IngressStatus\")\n\tproto.RegisterType((*IngressTLS)(nil), \"k8s.io.api.networking.v1beta1.IngressTLS\")\n\tproto.RegisterType((*ParentReference)(nil), \"k8s.io.api.networking.v1beta1.ParentReference\")\n\tproto.RegisterType((*ServiceCIDR)(nil), \"k8s.io.api.networking.v1beta1.ServiceCIDR\")\n\tproto.RegisterType((*ServiceCIDRList)(nil), \"k8s.io.api.networking.v1beta1.ServiceCIDRList\")\n\tproto.RegisterType((*ServiceCIDRSpec)(nil), \"k8s.io.api.networking.v1beta1.ServiceCIDRSpec\")\n\tproto.RegisterType((*ServiceCIDRStatus)(nil), \"k8s.io.api.networking.v1beta1.ServiceCIDRStatus\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/networking/v1beta1/generated.proto\", fileDescriptor_9497719c79c89d2d)\n}\n\nvar fileDescriptor_9497719c79c89d2d = []byte{\n\t// 1457 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0xcb, 0x6f, 0x1b, 0xc5,\n\t0x1f, 0xcf, 0x3a, 0x71, 0xe3, 0x8c, 0xd3, 0x26, 0x9d, 0x5f, 0x0f, 0xfe, 0x05, 0xd5, 0x8e, 0x16,\n\t0x09, 0x85, 0x3e, 0x76, 0xdb, 0xb4, 0xa0, 0x72, 0x41, 0xd4, 0x01, 0x51, 0xab, 0x69, 0xb2, 0x8c,\n\t0x0d, 0x54, 0xc0, 0x81, 0xc9, 0x7a, 0x6a, 0x2f, 0x5e, 0xef, 0xae, 0x66, 0xc7, 0x81, 0xde, 0x40,\n\t0x9c, 0x38, 0xc1, 0x9d, 0x23, 0x12, 0x7f, 0x02, 0x70, 0xa0, 0x52, 0x05, 0x97, 0x1e, 0x7b, 0xec,\n\t0x85, 0x88, 0x9a, 0xff, 0xa2, 0x27, 0xf4, 0x9d, 0x9d, 0x7d, 0xf9, 0xd1, 0x6c, 0x38, 0xe4, 0x54,\n\t0xef, 0xf7, 0x3d, 0xdf, 0xe7, 0xa7, 0x41, 0x57, 0x07, 0xb7, 0x42, 0xc3, 0xf1, 0x4d, 0x1a, 0x38,\n\t0xa6, 0xc7, 0xc4, 0x97, 0x3e, 0x1f, 0x38, 0x5e, 0xcf, 0x3c, 0xbc, 0x7e, 0xc0, 0x04, 0xbd, 0x6e,\n\t0xf6, 0x98, 0xc7, 0x38, 0x15, 0xac, 0x6b, 0x04, 0xdc, 0x17, 0x3e, 0xbe, 0x18, 0x89, 0x1b, 0x34,\n\t0x70, 0x8c, 0x54, 0xdc, 0x50, 0xe2, 0x1b, 0x57, 0x7b, 0x8e, 0xe8, 0x8f, 0x0e, 0x0c, 0xdb, 0x1f,\n\t0x9a, 0x3d, 0xbf, 0xe7, 0x9b, 0x52, 0xeb, 0x60, 0xf4, 0x40, 0x7e, 0xc9, 0x0f, 0xf9, 0x2b, 0xb2,\n\t0xb6, 0xa1, 0x67, 0x9c, 0xdb, 0x3e, 0x67, 0xe6, 0xe1, 0x94, 0xc7, 0x8d, 0x9b, 0xa9, 0xcc, 0x90,\n\t0xda, 0x7d, 0xc7, 0x63, 0xfc, 0xa1, 0x19, 0x0c, 0x7a, 0x40, 0x08, 0xcd, 0x21, 0x13, 0x74, 0x96,\n\t0x96, 0x39, 0x4f, 0x8b, 0x8f, 0x3c, 0xe1, 0x0c, 0xd9, 0x94, 0xc2, 0x9b, 0xc7, 0x29, 0x84, 0x76,\n\t0x9f, 0x0d, 0xe9, 0x94, 0xde, 0x8d, 0x79, 0x7a, 0x23, 0xe1, 0xb8, 0xa6, 0xe3, 0x89, 0x50, 0xf0,\n\t0x49, 0x25, 0xfd, 0x4f, 0x0d, 0xad, 0xdd, 0xe9, 0x74, 0xac, 0x96, 0xd7, 0xe3, 0x2c, 0x0c, 0x2d,\n\t0x2a, 0xfa, 0x78, 0x13, 0x2d, 0x05, 0x54, 0xf4, 0x6b, 0xda, 0xa6, 0xb6, 0xb5, 0xd2, 0x5c, 0x7d,\n\t0x72, 0xd4, 0x58, 0x18, 0x1f, 0x35, 0x96, 0x80, 0x47, 0x24, 0x07, 0xdf, 0x44, 0x15, 0xf8, 0xb7,\n\t0xf3, 0x30, 0x60, 0xb5, 0x45, 0x29, 0x55, 0x1b, 0x1f, 0x35, 0x2a, 0x96, 0xa2, 0xbd, 0xc8, 0xfc,\n\t0x26, 0x89, 0x24, 0xbe, 0x8f, 0x96, 0x0f, 0xa8, 0x3d, 0x60, 0x5e, 0xb7, 0x56, 0xda, 0xd4, 0xb6,\n\t0xaa, 0xdb, 0x57, 0x8d, 0x97, 0xd6, 0xd0, 0x50, 0x41, 0x35, 0x23, 0xa5, 0xe6, 0x9a, 0x8a, 0x64,\n\t0x59, 0x11, 0x48, 0x6c, 0x4e, 0x1f, 0xa0, 0x0b, 0x99, 0x47, 0x90, 0x91, 0xcb, 0x3e, 0xa2, 0xee,\n\t0x88, 0xe1, 0x36, 0x2a, 0x83, 0xf7, 0xb0, 0xa6, 0x6d, 0x2e, 0x6e, 0x55, 0xb7, 0x8d, 0x63, 0xfc,\n\t0x4d, 0x24, 0xa2, 0x79, 0x56, 0x39, 0x2c, 0xc3, 0x57, 0x48, 0x22, 0x5b, 0xfa, 0x23, 0x0d, 0xad,\n\t0xb4, 0xac, 0xdb, 0xdd, 0x2e, 0xc8, 0xe1, 0xcf, 0x51, 0x05, 0x2a, 0xdf, 0xa5, 0x82, 0xca, 0x84,\n\t0x55, 0xb7, 0xaf, 0x65, 0xbc, 0x24, 0x85, 0x30, 0x82, 0x41, 0x0f, 0x08, 0xa1, 0x01, 0xd2, 0xc6,\n\t0xe1, 0x75, 0x63, 0xff, 0xe0, 0x0b, 0x66, 0x8b, 0x7b, 0x4c, 0xd0, 0x26, 0x56, 0x7e, 0x50, 0x4a,\n\t0x23, 0x89, 0x55, 0xbc, 0x87, 0x96, 0xc2, 0x80, 0xd9, 0x2a, 0x67, 0x57, 0x8e, 0xcb, 0x59, 0x1c,\n\t0x59, 0x3b, 0x60, 0x76, 0x5a, 0x3c, 0xf8, 0x22, 0xd2, 0x8e, 0xfe, 0xbb, 0x86, 0xce, 0x26, 0x52,\n\t0xbb, 0x4e, 0x28, 0xf0, 0x67, 0x53, 0x6f, 0x30, 0x8a, 0xbd, 0x01, 0xb4, 0xe5, 0x0b, 0xd6, 0x95,\n\t0x9f, 0x4a, 0x4c, 0xc9, 0xc4, 0x7f, 0x0f, 0x95, 0x1d, 0xc1, 0x86, 0x61, 0xad, 0x24, 0x8b, 0xb0,\n\t0x55, 0xf4, 0x01, 0x69, 0xfa, 0x5b, 0xa0, 0x4e, 0x22, 0x2b, 0xba, 0x9b, 0x89, 0x1e, 0x5e, 0x85,\n\t0x3f, 0x45, 0x2b, 0x01, 0xe5, 0xcc, 0x13, 0x84, 0x3d, 0x98, 0x11, 0xfe, 0x2c, 0x1f, 0x56, 0x2c,\n\t0xcf, 0x38, 0xf3, 0x6c, 0xd6, 0x3c, 0x3b, 0x3e, 0x6a, 0xac, 0x24, 0x44, 0x92, 0xda, 0xd3, 0xbf,\n\t0x2f, 0xa1, 0x65, 0xd5, 0x12, 0xa7, 0x50, 0xea, 0xdd, 0x5c, 0xa9, 0x2f, 0x15, 0x1b, 0x8f, 0x79,\n\t0x85, 0xc6, 0x1d, 0x74, 0x26, 0x14, 0x54, 0x8c, 0x42, 0x39, 0xa3, 0x05, 0x5a, 0x47, 0xd9, 0x93,\n\t0x3a, 0xcd, 0x73, 0xca, 0xe2, 0x99, 0xe8, 0x9b, 0x28, 0x5b, 0xfa, 0x77, 0x25, 0x74, 0x2e, 0x3f,\n\t0x98, 0xf8, 0x0d, 0x54, 0x0d, 0x19, 0x3f, 0x74, 0x6c, 0xb6, 0x47, 0x87, 0x4c, 0xed, 0x8d, 0xff,\n\t0x29, 0xfd, 0x6a, 0x3b, 0x65, 0x91, 0xac, 0x1c, 0xee, 0x25, 0x6a, 0x96, 0xcf, 0x85, 0x7a, 0xf4,\n\t0xfc, 0x94, 0xc2, 0x1a, 0x33, 0xa2, 0x35, 0x66, 0xb4, 0x3c, 0xb1, 0xcf, 0xdb, 0x82, 0x3b, 0x5e,\n\t0x6f, 0xca, 0x11, 0x18, 0x23, 0x59, 0xcb, 0xf8, 0x63, 0x54, 0xe1, 0x2c, 0xf4, 0x47, 0xdc, 0x66,\n\t0x2a, 0x15, 0xb9, 0xcd, 0x03, 0xfb, 0x1e, 0xca, 0x04, 0x4b, 0xaa, 0xbb, 0xeb, 0xdb, 0xd4, 0x8d,\n\t0x8a, 0x93, 0xf6, 0xc7, 0x2a, 0xb4, 0x36, 0x51, 0x26, 0x48, 0x62, 0x0c, 0xb6, 0xe7, 0xaa, 0xca,\n\t0xc5, 0x8e, 0x4b, 0x4f, 0xa5, 0x45, 0x3e, 0xc8, 0xb5, 0x88, 0x59, 0xac, 0xa4, 0x32, 0xb8, 0xb9,\n\t0x0b, 0xe1, 0x0f, 0x0d, 0xad, 0x67, 0x05, 0x4f, 0x61, 0x27, 0x58, 0xf9, 0x9d, 0x70, 0xf9, 0x04,\n\t0xcf, 0x98, 0xb3, 0x16, 0xfe, 0xd2, 0x50, 0x23, 0x2b, 0x66, 0x51, 0x4e, 0x87, 0x4c, 0x30, 0x1e,\n\t0x26, 0x65, 0xc4, 0x5b, 0xa8, 0x42, 0xad, 0xd6, 0xfb, 0xdc, 0x1f, 0x05, 0xf1, 0x71, 0x83, 0xf8,\n\t0x6e, 0x2b, 0x1a, 0x49, 0xb8, 0x70, 0x02, 0x07, 0x8e, 0xba, 0x53, 0x99, 0x13, 0x78, 0xd7, 0xf1,\n\t0xba, 0x44, 0x72, 0x40, 0xc2, 0x83, 0x66, 0x5f, 0xcc, 0x4b, 0xc8, 0x2e, 0x97, 0x1c, 0xdc, 0x40,\n\t0xe5, 0xd0, 0xf6, 0x03, 0x56, 0x5b, 0x92, 0x22, 0x2b, 0x10, 0x72, 0x1b, 0x08, 0x24, 0xa2, 0xe3,\n\t0xcb, 0x68, 0x05, 0x04, 0xc3, 0x80, 0xda, 0xac, 0x56, 0x96, 0x42, 0x72, 0x11, 0xed, 0xc5, 0x44,\n\t0x92, 0xf2, 0xf5, 0x5f, 0x26, 0x8a, 0x24, 0x57, 0xdf, 0x36, 0x42, 0xb6, 0xef, 0x09, 0xee, 0xbb,\n\t0x2e, 0xe3, 0xea, 0x49, 0x49, 0xfb, 0xec, 0x24, 0x1c, 0x92, 0x91, 0xc2, 0x1e, 0x42, 0x41, 0x92,\n\t0x1b, 0xd5, 0x46, 0x6f, 0x9f, 0x20, 0xff, 0x33, 0x12, 0xdb, 0x3c, 0x07, 0xfe, 0x32, 0x8c, 0x8c,\n\t0x07, 0xfd, 0x37, 0x0d, 0x55, 0x95, 0xfe, 0x29, 0x34, 0xd6, 0xdd, 0x7c, 0x63, 0xbd, 0x56, 0x10,\n\t0x61, 0xcc, 0xee, 0xa9, 0x47, 0x1a, 0xda, 0x88, 0x43, 0xf7, 0x69, 0xb7, 0x49, 0x5d, 0xea, 0xd9,\n\t0x8c, 0xc7, 0xf7, 0x60, 0x03, 0x95, 0x9c, 0xb8, 0x91, 0x90, 0x32, 0x50, 0x6a, 0x59, 0xa4, 0xe4,\n\t0x04, 0xf8, 0x0a, 0xaa, 0xf4, 0xfd, 0x50, 0xc8, 0x16, 0x89, 0x9a, 0x28, 0x89, 0xfa, 0x8e, 0xa2,\n\t0x93, 0x44, 0x02, 0x7f, 0x88, 0xca, 0x81, 0xcf, 0x45, 0x58, 0x5b, 0x92, 0x51, 0x5f, 0x2b, 0x16,\n\t0x35, 0xec, 0x36, 0xb5, 0xac, 0x53, 0xa4, 0x02, 0x66, 0x48, 0x64, 0x4d, 0xff, 0x46, 0x43, 0xff,\n\t0x9f, 0x11, 0x7f, 0xa4, 0x83, 0xbb, 0x68, 0xd9, 0x89, 0x98, 0x0a, 0x1e, 0xbd, 0x55, 0xcc, 0xed,\n\t0x8c, 0x54, 0xa4, 0xd0, 0x2c, 0x86, 0x60, 0xb1, 0x69, 0xfd, 0x27, 0x0d, 0x9d, 0x9f, 0x8a, 0x57,\n\t0x42, 0x4c, 0xd8, 0xf9, 0x90, 0xbc, 0x72, 0x06, 0x62, 0xc2, 0xea, 0x96, 0x1c, 0x7c, 0x17, 0x55,\n\t0x24, 0x42, 0xb5, 0x7d, 0x57, 0x25, 0xd0, 0x8c, 0x13, 0x68, 0x29, 0xfa, 0x8b, 0xa3, 0xc6, 0x2b,\n\t0xd3, 0xb0, 0xdd, 0x88, 0xd9, 0x24, 0x31, 0x00, 0xa3, 0xc8, 0x38, 0xf7, 0xb9, 0x9a, 0x56, 0x39,\n\t0x8a, 0xef, 0x01, 0x81, 0x44, 0x74, 0xfd, 0xe7, 0xb4, 0x49, 0x01, 0x3d, 0x42, 0x7c, 0x50, 0x9c,\n\t0x49, 0x08, 0x0c, 0xa5, 0x23, 0x92, 0x83, 0x47, 0x68, 0xdd, 0x99, 0x80, 0x9b, 0x27, 0xdb, 0xc9,\n\t0x89, 0x5a, 0xb3, 0xa6, 0xcc, 0xaf, 0x4f, 0x72, 0xc8, 0x94, 0x0b, 0x9d, 0xa1, 0x29, 0x29, 0x38,\n\t0x09, 0x7d, 0x21, 0x02, 0x35, 0x4d, 0x37, 0x8a, 0x83, 0xdc, 0x34, 0x84, 0x8a, 0x7c, 0x5d, 0xa7,\n\t0x63, 0x11, 0x69, 0x4a, 0x7f, 0x5c, 0x4a, 0xf2, 0x21, 0x17, 0xcd, 0x3b, 0xc9, 0x6b, 0xe5, 0x0e,\n\t0x90, 0x67, 0x3e, 0x5a, 0x6b, 0x17, 0x32, 0x81, 0x27, 0x3c, 0x32, 0x25, 0x8d, 0x3b, 0x29, 0xf8,\n\t0xd7, 0xfe, 0x0b, 0xf8, 0xaf, 0xce, 0x02, 0xfe, 0xf8, 0x0e, 0x5a, 0x14, 0x6e, 0x3c, 0xec, 0xaf,\n\t0x17, 0xb3, 0xd8, 0xd9, 0x6d, 0x37, 0xab, 0x2a, 0xe5, 0x8b, 0x9d, 0xdd, 0x36, 0x01, 0x13, 0x78,\n\t0x1f, 0x95, 0xf9, 0xc8, 0x65, 0x80, 0x95, 0x16, 0x8b, 0x63, 0x2f, 0xc8, 0x60, 0x3a, 0x7c, 0xf0,\n\t0x15, 0x92, 0xc8, 0x8e, 0xfe, 0x2d, 0xc0, 0xec, 0x2c, 0xa2, 0xc2, 0x1c, 0xad, 0xba, 0x99, 0xd9,\n\t0x51, 0x79, 0xb8, 0x75, 0xf2, 0xa9, 0x53, 0x43, 0x7f, 0x41, 0xf9, 0x5d, 0xcd, 0xf2, 0x48, 0xce,\n\t0x87, 0x4e, 0x11, 0x4a, 0x9f, 0x0d, 0x73, 0x00, 0xcd, 0x1b, 0x0d, 0xbc, 0x9a, 0x03, 0xe8, 0xe9,\n\t0x90, 0x44, 0x74, 0x38, 0x28, 0x21, 0xb3, 0x39, 0x13, 0x7b, 0xe9, 0xe2, 0x4a, 0x0e, 0x4a, 0x3b,\n\t0xe1, 0x90, 0x8c, 0x94, 0xfe, 0xab, 0x86, 0xd6, 0x26, 0x00, 0x35, 0x7e, 0x15, 0x95, 0x7b, 0x99,\n\t0x33, 0x9b, 0x64, 0x28, 0xba, 0xb3, 0x11, 0x0f, 0x76, 0x64, 0x02, 0xcb, 0x26, 0x76, 0xe4, 0x34,\n\t0xd6, 0xc2, 0x66, 0xf6, 0x5a, 0x46, 0x73, 0x7c, 0x5e, 0x89, 0xcf, 0xbc, 0x98, 0xc9, 0x85, 0x5e,\n\t0x9a, 0x77, 0xa1, 0xf5, 0x1f, 0x4b, 0x28, 0x06, 0x8d, 0x3b, 0xad, 0x77, 0xc9, 0x29, 0xa0, 0x37,\n\t0x2b, 0x87, 0xde, 0x8e, 0xfb, 0x6f, 0x4a, 0x26, 0xb6, 0xb9, 0x20, 0xff, 0xfe, 0x04, 0xc8, 0xbf,\n\t0x76, 0x02, 0x9b, 0x2f, 0x07, 0xfa, 0x8f, 0x35, 0xb4, 0x96, 0x91, 0x3e, 0x85, 0xe3, 0xbd, 0x9f,\n\t0x3f, 0xde, 0x97, 0x8a, 0x3f, 0x65, 0xce, 0x01, 0xdf, 0xce, 0xbd, 0x40, 0x6e, 0xb2, 0x06, 0x2a,\n\t0xdb, 0x4e, 0x97, 0xe7, 0x46, 0x00, 0x98, 0x21, 0x89, 0xe8, 0xfa, 0x57, 0xe8, 0xfc, 0x54, 0x8e,\n\t0xb0, 0x2d, 0x81, 0x56, 0xd7, 0x11, 0x8e, 0xef, 0xc5, 0xe7, 0xd2, 0x2c, 0xf6, 0xf2, 0x9d, 0x58,\n\t0x2f, 0x87, 0xcc, 0x94, 0x29, 0x92, 0x31, 0xdb, 0xdc, 0x79, 0xf2, 0xbc, 0xbe, 0xf0, 0xf4, 0x79,\n\t0x7d, 0xe1, 0xd9, 0xf3, 0xfa, 0xc2, 0xd7, 0xe3, 0xba, 0xf6, 0x64, 0x5c, 0xd7, 0x9e, 0x8e, 0xeb,\n\t0xda, 0xb3, 0x71, 0x5d, 0xfb, 0x7b, 0x5c, 0xd7, 0x7e, 0xf8, 0xa7, 0xbe, 0xf0, 0xc9, 0xc5, 0x97,\n\t0xfe, 0x99, 0xec, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xb7, 0xc2, 0xa4, 0xff, 0x46, 0x13, 0x00,\n\t0x00,\n}\n\nfunc (m *HTTPIngressPath) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HTTPIngressPath) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HTTPIngressPath) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.PathType != nil {\n\t\ti -= len(*m.PathType)\n\t\tcopy(dAtA[i:], *m.PathType)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.PathType)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\t{\n\t\tsize, err := m.Backend.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Path)\n\tcopy(dAtA[i:], m.Path)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Path)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *HTTPIngressRuleValue) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *HTTPIngressRuleValue) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *HTTPIngressRuleValue) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Paths) > 0 {\n\t\tfor iNdEx := len(m.Paths) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Paths[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IPAddress) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IPAddress) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IPAddress) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IPAddressList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IPAddressList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IPAddressList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IPAddressSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IPAddressSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IPAddressSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ParentRef != nil {\n\t\t{\n\t\t\tsize, err := m.ParentRef.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Ingress) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Ingress) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Ingress) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressBackend) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressBackend) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressBackend) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Resource != nil {\n\t\t{\n\t\t\tsize, err := m.Resource.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\t{\n\t\tsize, err := m.ServicePort.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.ServiceName)\n\tcopy(dAtA[i:], m.ServiceName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ServiceName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressClass) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressClass) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressClass) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressClassList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressClassList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressClassList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressClassParametersReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressClassParametersReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressClassParametersReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Namespace != nil {\n\t\ti -= len(*m.Namespace)\n\t\tcopy(dAtA[i:], *m.Namespace)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Namespace)))\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.Scope != nil {\n\t\ti -= len(*m.Scope)\n\t\tcopy(dAtA[i:], *m.Scope)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Scope)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0x12\n\tif m.APIGroup != nil {\n\t\ti -= len(*m.APIGroup)\n\t\tcopy(dAtA[i:], *m.APIGroup)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.APIGroup)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressClassSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressClassSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressClassSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Parameters != nil {\n\t\t{\n\t\t\tsize, err := m.Parameters.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Controller)\n\tcopy(dAtA[i:], m.Controller)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Controller)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressLoadBalancerIngress) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressLoadBalancerIngress) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressLoadBalancerIngress) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Ports) > 0 {\n\t\tfor iNdEx := len(m.Ports) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ports[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\ti -= len(m.Hostname)\n\tcopy(dAtA[i:], m.Hostname)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Hostname)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.IP)\n\tcopy(dAtA[i:], m.IP)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.IP)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressLoadBalancerStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressLoadBalancerStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressLoadBalancerStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Ingress) > 0 {\n\t\tfor iNdEx := len(m.Ingress) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Ingress[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressPortStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressPortStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressPortStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Error != nil {\n\t\ti -= len(*m.Error)\n\t\tcopy(dAtA[i:], *m.Error)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.Error)))\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti -= len(m.Protocol)\n\tcopy(dAtA[i:], m.Protocol)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Protocol)))\n\ti--\n\tdAtA[i] = 0x12\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Port))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.IngressRuleValue.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Host)\n\tcopy(dAtA[i:], m.Host)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Host)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressRuleValue) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressRuleValue) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressRuleValue) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.HTTP != nil {\n\t\t{\n\t\t\tsize, err := m.HTTP.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.IngressClassName != nil {\n\t\ti -= len(*m.IngressClassName)\n\t\tcopy(dAtA[i:], *m.IngressClassName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.IngressClassName)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif len(m.Rules) > 0 {\n\t\tfor iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Rules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.TLS) > 0 {\n\t\tfor iNdEx := len(m.TLS) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.TLS[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif m.Backend != nil {\n\t\t{\n\t\t\tsize, err := m.Backend.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.LoadBalancer.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *IngressTLS) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IngressTLS) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IngressTLS) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.SecretName)\n\tcopy(dAtA[i:], m.SecretName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.SecretName)))\n\ti--\n\tdAtA[i] = 0x12\n\tif len(m.Hosts) > 0 {\n\t\tfor iNdEx := len(m.Hosts) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Hosts[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Hosts[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Hosts[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ParentReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ParentReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ParentReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Namespace)\n\tcopy(dAtA[i:], m.Namespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Resource)\n\tcopy(dAtA[i:], m.Resource)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Resource)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Group)\n\tcopy(dAtA[i:], m.Group)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Group)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ServiceCIDR) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServiceCIDR) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ServiceCIDR) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ServiceCIDRList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServiceCIDRList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ServiceCIDRList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ServiceCIDRSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServiceCIDRSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ServiceCIDRSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.CIDRs) > 0 {\n\t\tfor iNdEx := len(m.CIDRs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.CIDRs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.CIDRs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.CIDRs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ServiceCIDRStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServiceCIDRStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ServiceCIDRStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *HTTPIngressPath) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Path)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Backend.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.PathType != nil {\n\t\tl = len(*m.PathType)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *HTTPIngressRuleValue) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Paths) > 0 {\n\t\tfor _, e := range m.Paths {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *IPAddress) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *IPAddressList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *IPAddressSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.ParentRef != nil {\n\t\tl = m.ParentRef.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *Ingress) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *IngressBackend) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.ServiceName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.ServicePort.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Resource != nil {\n\t\tl = m.Resource.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *IngressClass) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *IngressClassList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *IngressClassParametersReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.APIGroup != nil {\n\t\tl = len(*m.APIGroup)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Scope != nil {\n\t\tl = len(*m.Scope)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Namespace != nil {\n\t\tl = len(*m.Namespace)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *IngressClassSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Controller)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Parameters != nil {\n\t\tl = m.Parameters.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *IngressList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *IngressLoadBalancerIngress) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.IP)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Hostname)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Ports) > 0 {\n\t\tfor _, e := range m.Ports {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *IngressLoadBalancerStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Ingress) > 0 {\n\t\tfor _, e := range m.Ingress {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *IngressPortStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Port))\n\tl = len(m.Protocol)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Error != nil {\n\t\tl = len(*m.Error)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *IngressRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Host)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.IngressRuleValue.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *IngressRuleValue) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.HTTP != nil {\n\t\tl = m.HTTP.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *IngressSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Backend != nil {\n\t\tl = m.Backend.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.TLS) > 0 {\n\t\tfor _, e := range m.TLS {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Rules) > 0 {\n\t\tfor _, e := range m.Rules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.IngressClassName != nil {\n\t\tl = len(*m.IngressClassName)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *IngressStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.LoadBalancer.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *IngressTLS) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Hosts) > 0 {\n\t\tfor _, s := range m.Hosts {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.SecretName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ParentReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Group)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Resource)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Namespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ServiceCIDR) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ServiceCIDRList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ServiceCIDRSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.CIDRs) > 0 {\n\t\tfor _, s := range m.CIDRs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ServiceCIDRStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *HTTPIngressPath) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&HTTPIngressPath{`,\n\t\t`Path:` + fmt.Sprintf(\"%v\", this.Path) + `,`,\n\t\t`Backend:` + strings.Replace(strings.Replace(this.Backend.String(), \"IngressBackend\", \"IngressBackend\", 1), `&`, ``, 1) + `,`,\n\t\t`PathType:` + valueToStringGenerated(this.PathType) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *HTTPIngressRuleValue) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForPaths := \"[]HTTPIngressPath{\"\n\tfor _, f := range this.Paths {\n\t\trepeatedStringForPaths += strings.Replace(strings.Replace(f.String(), \"HTTPIngressPath\", \"HTTPIngressPath\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPaths += \"}\"\n\ts := strings.Join([]string{`&HTTPIngressRuleValue{`,\n\t\t`Paths:` + repeatedStringForPaths + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IPAddress) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IPAddress{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"IPAddressSpec\", \"IPAddressSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IPAddressList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]IPAddress{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"IPAddress\", \"IPAddress\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&IPAddressList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IPAddressSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IPAddressSpec{`,\n\t\t`ParentRef:` + strings.Replace(this.ParentRef.String(), \"ParentReference\", \"ParentReference\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Ingress) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Ingress{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"IngressSpec\", \"IngressSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"IngressStatus\", \"IngressStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressBackend) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressBackend{`,\n\t\t`ServiceName:` + fmt.Sprintf(\"%v\", this.ServiceName) + `,`,\n\t\t`ServicePort:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ServicePort), \"IntOrString\", \"intstr.IntOrString\", 1), `&`, ``, 1) + `,`,\n\t\t`Resource:` + strings.Replace(fmt.Sprintf(\"%v\", this.Resource), \"TypedLocalObjectReference\", \"v11.TypedLocalObjectReference\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressClass) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressClass{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"IngressClassSpec\", \"IngressClassSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressClassList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]IngressClass{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"IngressClass\", \"IngressClass\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&IngressClassList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressClassParametersReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressClassParametersReference{`,\n\t\t`APIGroup:` + valueToStringGenerated(this.APIGroup) + `,`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Scope:` + valueToStringGenerated(this.Scope) + `,`,\n\t\t`Namespace:` + valueToStringGenerated(this.Namespace) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressClassSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressClassSpec{`,\n\t\t`Controller:` + fmt.Sprintf(\"%v\", this.Controller) + `,`,\n\t\t`Parameters:` + strings.Replace(this.Parameters.String(), \"IngressClassParametersReference\", \"IngressClassParametersReference\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Ingress{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Ingress\", \"Ingress\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&IngressList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressLoadBalancerIngress) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForPorts := \"[]IngressPortStatus{\"\n\tfor _, f := range this.Ports {\n\t\trepeatedStringForPorts += strings.Replace(strings.Replace(f.String(), \"IngressPortStatus\", \"IngressPortStatus\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForPorts += \"}\"\n\ts := strings.Join([]string{`&IngressLoadBalancerIngress{`,\n\t\t`IP:` + fmt.Sprintf(\"%v\", this.IP) + `,`,\n\t\t`Hostname:` + fmt.Sprintf(\"%v\", this.Hostname) + `,`,\n\t\t`Ports:` + repeatedStringForPorts + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressLoadBalancerStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForIngress := \"[]IngressLoadBalancerIngress{\"\n\tfor _, f := range this.Ingress {\n\t\trepeatedStringForIngress += strings.Replace(strings.Replace(f.String(), \"IngressLoadBalancerIngress\", \"IngressLoadBalancerIngress\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForIngress += \"}\"\n\ts := strings.Join([]string{`&IngressLoadBalancerStatus{`,\n\t\t`Ingress:` + repeatedStringForIngress + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressPortStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressPortStatus{`,\n\t\t`Port:` + fmt.Sprintf(\"%v\", this.Port) + `,`,\n\t\t`Protocol:` + fmt.Sprintf(\"%v\", this.Protocol) + `,`,\n\t\t`Error:` + valueToStringGenerated(this.Error) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressRule{`,\n\t\t`Host:` + fmt.Sprintf(\"%v\", this.Host) + `,`,\n\t\t`IngressRuleValue:` + strings.Replace(strings.Replace(this.IngressRuleValue.String(), \"IngressRuleValue\", \"IngressRuleValue\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressRuleValue) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressRuleValue{`,\n\t\t`HTTP:` + strings.Replace(this.HTTP.String(), \"HTTPIngressRuleValue\", \"HTTPIngressRuleValue\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForTLS := \"[]IngressTLS{\"\n\tfor _, f := range this.TLS {\n\t\trepeatedStringForTLS += strings.Replace(strings.Replace(f.String(), \"IngressTLS\", \"IngressTLS\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForTLS += \"}\"\n\trepeatedStringForRules := \"[]IngressRule{\"\n\tfor _, f := range this.Rules {\n\t\trepeatedStringForRules += strings.Replace(strings.Replace(f.String(), \"IngressRule\", \"IngressRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRules += \"}\"\n\ts := strings.Join([]string{`&IngressSpec{`,\n\t\t`Backend:` + strings.Replace(this.Backend.String(), \"IngressBackend\", \"IngressBackend\", 1) + `,`,\n\t\t`TLS:` + repeatedStringForTLS + `,`,\n\t\t`Rules:` + repeatedStringForRules + `,`,\n\t\t`IngressClassName:` + valueToStringGenerated(this.IngressClassName) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressStatus{`,\n\t\t`LoadBalancer:` + strings.Replace(strings.Replace(this.LoadBalancer.String(), \"IngressLoadBalancerStatus\", \"IngressLoadBalancerStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *IngressTLS) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&IngressTLS{`,\n\t\t`Hosts:` + fmt.Sprintf(\"%v\", this.Hosts) + `,`,\n\t\t`SecretName:` + fmt.Sprintf(\"%v\", this.SecretName) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ParentReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ParentReference{`,\n\t\t`Group:` + fmt.Sprintf(\"%v\", this.Group) + `,`,\n\t\t`Resource:` + fmt.Sprintf(\"%v\", this.Resource) + `,`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ServiceCIDR) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ServiceCIDR{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ServiceCIDRSpec\", \"ServiceCIDRSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"ServiceCIDRStatus\", \"ServiceCIDRStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ServiceCIDRList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ServiceCIDR{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ServiceCIDR\", \"ServiceCIDR\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ServiceCIDRList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ServiceCIDRSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ServiceCIDRSpec{`,\n\t\t`CIDRs:` + fmt.Sprintf(\"%v\", this.CIDRs) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ServiceCIDRStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]Condition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&ServiceCIDRStatus{`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *HTTPIngressPath) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HTTPIngressPath: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HTTPIngressPath: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Path\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Path = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Backend\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Backend.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PathType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := PathType(dAtA[iNdEx:postIndex])\n\t\t\tm.PathType = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *HTTPIngressRuleValue) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: HTTPIngressRuleValue: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: HTTPIngressRuleValue: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Paths\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Paths = append(m.Paths, HTTPIngressPath{})\n\t\t\tif err := m.Paths[len(m.Paths)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IPAddress) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IPAddress: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IPAddress: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IPAddressList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IPAddressList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IPAddressList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, IPAddress{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IPAddressSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IPAddressSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IPAddressSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ParentRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.ParentRef == nil {\n\t\t\t\tm.ParentRef = &ParentReference{}\n\t\t\t}\n\t\t\tif err := m.ParentRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Ingress) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Ingress: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Ingress: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressBackend) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressBackend: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressBackend: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServiceName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ServiceName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServicePort\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ServicePort.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Resource == nil {\n\t\t\t\tm.Resource = &v11.TypedLocalObjectReference{}\n\t\t\t}\n\t\t\tif err := m.Resource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressClass) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressClass: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressClass: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressClassList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressClassList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressClassList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, IngressClass{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressClassParametersReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressClassParametersReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressClassParametersReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIGroup\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.APIGroup = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Scope\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.Scope = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.Namespace = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressClassSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressClassSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressClassSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Controller\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Controller = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Parameters\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Parameters == nil {\n\t\t\t\tm.Parameters = &IngressClassParametersReference{}\n\t\t\t}\n\t\t\tif err := m.Parameters.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Ingress{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressLoadBalancerIngress) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressLoadBalancerIngress: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressLoadBalancerIngress: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IP\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.IP = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Hostname\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Hostname = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ports\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ports = append(m.Ports, IngressPortStatus{})\n\t\t\tif err := m.Ports[len(m.Ports)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressLoadBalancerStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressLoadBalancerStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressLoadBalancerStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Ingress\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Ingress = append(m.Ingress, IngressLoadBalancerIngress{})\n\t\t\tif err := m.Ingress[len(m.Ingress)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressPortStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressPortStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressPortStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Port\", wireType)\n\t\t\t}\n\t\t\tm.Port = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Port |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Protocol\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Protocol = k8s_io_api_core_v1.Protocol(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Error\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.Error = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Host\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Host = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IngressRuleValue\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.IngressRuleValue.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressRuleValue) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressRuleValue: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressRuleValue: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HTTP\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.HTTP == nil {\n\t\t\t\tm.HTTP = &HTTPIngressRuleValue{}\n\t\t\t}\n\t\t\tif err := m.HTTP.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Backend\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Backend == nil {\n\t\t\t\tm.Backend = &IngressBackend{}\n\t\t\t}\n\t\t\tif err := m.Backend.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TLS\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TLS = append(m.TLS, IngressTLS{})\n\t\t\tif err := m.TLS[len(m.TLS)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Rules = append(m.Rules, IngressRule{})\n\t\t\tif err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IngressClassName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.IngressClassName = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LoadBalancer\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LoadBalancer.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *IngressTLS) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IngressTLS: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IngressTLS: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Hosts\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Hosts = append(m.Hosts, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SecretName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SecretName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ParentReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ParentReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ParentReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Group\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Group = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resource\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resource = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ServiceCIDR) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceCIDR: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceCIDR: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ServiceCIDRList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceCIDRList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceCIDRList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ServiceCIDR{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ServiceCIDRSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceCIDRSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceCIDRSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CIDRs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.CIDRs = append(m.CIDRs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ServiceCIDRStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceCIDRStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServiceCIDRStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, v1.Condition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1beta1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.networking.v1beta1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/util/intstr/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/networking/v1beta1\";\n\n// HTTPIngressPath associates a path with a backend. Incoming urls matching the\n// path are forwarded to the backend.\nmessage HTTPIngressPath {\n  // path is matched against the path of an incoming request. Currently it can\n  // contain characters disallowed from the conventional \"path\" part of a URL\n  // as defined by RFC 3986. Paths must begin with a '/' and must be present\n  // when using PathType with value \"Exact\" or \"Prefix\".\n  // +optional\n  optional string path = 1;\n\n  // pathType determines the interpretation of the path matching. PathType can\n  // be one of the following values:\n  // * Exact: Matches the URL path exactly.\n  // * Prefix: Matches based on a URL path prefix split by '/'. Matching is\n  //   done on a path element by element basis. A path element refers is the\n  //   list of labels in the path split by the '/' separator. A request is a\n  //   match for path p if every p is an element-wise prefix of p of the\n  //   request path. Note that if the last element of the path is a substring\n  //   of the last element in request path, it is not a match (e.g. /foo/bar\n  //   matches /foo/bar/baz, but does not match /foo/barbaz).\n  // * ImplementationSpecific: Interpretation of the Path matching is up to\n  //   the IngressClass. Implementations can treat this as a separate PathType\n  //   or treat it identically to Prefix or Exact path types.\n  // Implementations are required to support all path types.\n  // Defaults to ImplementationSpecific.\n  optional string pathType = 3;\n\n  // backend defines the referenced service endpoint to which the traffic\n  // will be forwarded to.\n  optional IngressBackend backend = 2;\n}\n\n// HTTPIngressRuleValue is a list of http selectors pointing to backends.\n// In the example: http://<host>/<path>?<searchpart> -> backend where\n// where parts of the url correspond to RFC 3986, this resource will be used\n// to match against everything after the last '/' and before the first '?'\n// or '#'.\nmessage HTTPIngressRuleValue {\n  // paths is a collection of paths that map requests to backends.\n  // +listType=atomic\n  repeated HTTPIngressPath paths = 1;\n}\n\n// IPAddress represents a single IP of a single IP Family. The object is designed to be used by APIs\n// that operate on IP addresses. The object is used by the Service core API for allocation of IP addresses.\n// An IP address can be represented in different formats, to guarantee the uniqueness of the IP,\n// the name of the object is the IP address in canonical format, four decimal digits separated\n// by dots suppressing leading zeros for IPv4 and the representation defined by RFC 5952 for IPv6.\n// Valid: 192.168.1.5 or 2001:db8::1 or 2001:db8:aaaa:bbbb:cccc:dddd:eeee:1\n// Invalid: 10.01.2.3 or 2001:db8:0:0:0::1\nmessage IPAddress {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec is the desired state of the IPAddress.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional IPAddressSpec spec = 2;\n}\n\n// IPAddressList contains a list of IPAddress.\nmessage IPAddressList {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of IPAddresses.\n  repeated IPAddress items = 2;\n}\n\n// IPAddressSpec describe the attributes in an IP Address.\nmessage IPAddressSpec {\n  // ParentRef references the resource that an IPAddress is attached to.\n  // An IPAddress must reference a parent object.\n  // +required\n  optional ParentReference parentRef = 1;\n}\n\n// Ingress is a collection of rules that allow inbound connections to reach the\n// endpoints defined by a backend. An Ingress can be configured to give services\n// externally-reachable urls, load balance traffic, terminate SSL, offer name\n// based virtual hosting etc.\nmessage Ingress {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec is the desired state of the Ingress.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional IngressSpec spec = 2;\n\n  // status is the current state of the Ingress.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional IngressStatus status = 3;\n}\n\n// IngressBackend describes all endpoints for a given service and port.\nmessage IngressBackend {\n  // serviceName specifies the name of the referenced service.\n  // +optional\n  optional string serviceName = 1;\n\n  // servicePort Specifies the port of the referenced service.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString servicePort = 2;\n\n  // resource is an ObjectRef to another Kubernetes resource in the namespace\n  // of the Ingress object. If resource is specified, serviceName and servicePort\n  // must not be specified.\n  // +optional\n  optional .k8s.io.api.core.v1.TypedLocalObjectReference resource = 3;\n}\n\n// IngressClass represents the class of the Ingress, referenced by the Ingress\n// Spec. The `ingressclass.kubernetes.io/is-default-class` annotation can be\n// used to indicate that an IngressClass should be considered default. When a\n// single IngressClass resource has this annotation set to true, new Ingress\n// resources without a class specified will be assigned this default class.\nmessage IngressClass {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec is the desired state of the IngressClass.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional IngressClassSpec spec = 2;\n}\n\n// IngressClassList is a collection of IngressClasses.\nmessage IngressClassList {\n  // Standard list metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of IngressClasses.\n  repeated IngressClass items = 2;\n}\n\n// IngressClassParametersReference identifies an API object. This can be used\n// to specify a cluster or namespace-scoped resource.\nmessage IngressClassParametersReference {\n  // apiGroup is the group for the resource being referenced. If APIGroup is\n  // not specified, the specified Kind must be in the core API group. For any\n  // other third-party types, APIGroup is required.\n  // +optional\n  optional string aPIGroup = 1;\n\n  // kind is the type of resource being referenced.\n  optional string kind = 2;\n\n  // name is the name of resource being referenced.\n  optional string name = 3;\n\n  // scope represents if this refers to a cluster or namespace scoped resource.\n  // This may be set to \"Cluster\" (default) or \"Namespace\".\n  optional string scope = 4;\n\n  // namespace is the namespace of the resource being referenced. This field is\n  // required when scope is set to \"Namespace\" and must be unset when scope is set to\n  // \"Cluster\".\n  // +optional\n  optional string namespace = 5;\n}\n\n// IngressClassSpec provides information about the class of an Ingress.\nmessage IngressClassSpec {\n  // controller refers to the name of the controller that should handle this\n  // class. This allows for different \"flavors\" that are controlled by the\n  // same controller. For example, you may have different parameters for the\n  // same implementing controller. This should be specified as a\n  // domain-prefixed path no more than 250 characters in length, e.g.\n  // \"acme.io/ingress-controller\". This field is immutable.\n  optional string controller = 1;\n\n  // parameters is a link to a custom resource containing additional\n  // configuration for the controller. This is optional if the controller does\n  // not require extra parameters.\n  // +optional\n  optional IngressClassParametersReference parameters = 2;\n}\n\n// IngressList is a collection of Ingress.\nmessage IngressList {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of Ingress.\n  repeated Ingress items = 2;\n}\n\n// IngressLoadBalancerIngress represents the status of a load-balancer ingress point.\nmessage IngressLoadBalancerIngress {\n  // ip is set for load-balancer ingress points that are IP based.\n  // +optional\n  optional string ip = 1;\n\n  // hostname is set for load-balancer ingress points that are DNS based.\n  // +optional\n  optional string hostname = 2;\n\n  // ports provides information about the ports exposed by this LoadBalancer.\n  // +listType=atomic\n  // +optional\n  repeated IngressPortStatus ports = 4;\n}\n\n// LoadBalancerStatus represents the status of a load-balancer.\nmessage IngressLoadBalancerStatus {\n  // ingress is a list containing ingress points for the load-balancer.\n  // +optional\n  // +listType=atomic\n  repeated IngressLoadBalancerIngress ingress = 1;\n}\n\n// IngressPortStatus represents the error condition of a service port\nmessage IngressPortStatus {\n  // port is the port number of the ingress port.\n  optional int32 port = 1;\n\n  // protocol is the protocol of the ingress port.\n  // The supported values are: \"TCP\", \"UDP\", \"SCTP\"\n  optional string protocol = 2;\n\n  // error is to record the problem with the service port\n  // The format of the error shall comply with the following rules:\n  // - built-in error values shall be specified in this file and those shall use\n  //   CamelCase names\n  // - cloud provider specific error values must have names that comply with the\n  //   format foo.example.com/CamelCase.\n  // ---\n  // The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)\n  // +optional\n  // +kubebuilder:validation:Required\n  // +kubebuilder:validation:Pattern=`^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$`\n  // +kubebuilder:validation:MaxLength=316\n  optional string error = 3;\n}\n\n// IngressRule represents the rules mapping the paths under a specified host to\n// the related backend services. Incoming requests are first evaluated for a host\n// match, then routed to the backend associated with the matching IngressRuleValue.\nmessage IngressRule {\n  // host is the fully qualified domain name of a network host, as defined by RFC 3986.\n  // Note the following deviations from the \"host\" part of the\n  // URI as defined in RFC 3986:\n  // 1. IPs are not allowed. Currently an IngressRuleValue can only apply to\n  //    the IP in the Spec of the parent Ingress.\n  // 2. The `:` delimiter is not respected because ports are not allowed.\n  // \t  Currently the port of an Ingress is implicitly :80 for http and\n  // \t  :443 for https.\n  // Both these may change in the future.\n  // Incoming requests are matched against the host before the\n  // IngressRuleValue. If the host is unspecified, the Ingress routes all\n  // traffic based on the specified IngressRuleValue.\n  //\n  // host can be \"precise\" which is a domain name without the terminating dot of\n  // a network host (e.g. \"foo.bar.com\") or \"wildcard\", which is a domain name\n  // prefixed with a single wildcard label (e.g. \"*.foo.com\").\n  // The wildcard character '*' must appear by itself as the first DNS label and\n  // matches only a single label. You cannot have a wildcard label by itself (e.g. Host == \"*\").\n  // Requests will be matched against the Host field in the following way:\n  // 1. If Host is precise, the request matches this rule if the http host header is equal to Host.\n  // 2. If Host is a wildcard, then the request matches this rule if the http host header\n  // is to equal to the suffix (removing the first label) of the wildcard rule.\n  // +optional\n  optional string host = 1;\n\n  // IngressRuleValue represents a rule to route requests for this IngressRule.\n  // If unspecified, the rule defaults to a http catch-all. Whether that sends\n  // just traffic matching the host to the default backend or all traffic to the\n  // default backend, is left to the controller fulfilling the Ingress. Http is\n  // currently the only supported IngressRuleValue.\n  // +optional\n  optional IngressRuleValue ingressRuleValue = 2;\n}\n\n// IngressRuleValue represents a rule to apply against incoming requests. If the\n// rule is satisfied, the request is routed to the specified backend. Currently\n// mixing different types of rules in a single Ingress is disallowed, so exactly\n// one of the following must be set.\nmessage IngressRuleValue {\n  // +optional\n  optional HTTPIngressRuleValue http = 1;\n}\n\n// IngressSpec describes the Ingress the user wishes to exist.\nmessage IngressSpec {\n  // ingressClassName is the name of the IngressClass cluster resource. The\n  // associated IngressClass defines which controller will implement the\n  // resource. This replaces the deprecated `kubernetes.io/ingress.class`\n  // annotation. For backwards compatibility, when that annotation is set, it\n  // must be given precedence over this field. The controller may emit a\n  // warning if the field and annotation have different values.\n  // Implementations of this API should ignore Ingresses without a class\n  // specified. An IngressClass resource may be marked as default, which can\n  // be used to set a default value for this field. For more information,\n  // refer to the IngressClass documentation.\n  // +optional\n  optional string ingressClassName = 4;\n\n  // backend is the default backend capable of servicing requests that don't match any\n  // rule. At least one of 'backend' or 'rules' must be specified. This field\n  // is optional to allow the loadbalancer controller or defaulting logic to\n  // specify a global default.\n  // +optional\n  optional IngressBackend backend = 1;\n\n  // tls represents the TLS configuration. Currently the Ingress only supports a\n  // single TLS port, 443. If multiple members of this list specify different hosts,\n  // they will be multiplexed on the same port according to the hostname specified\n  // through the SNI TLS extension, if the ingress controller fulfilling the\n  // ingress supports SNI.\n  // +optional\n  // +listType=atomic\n  repeated IngressTLS tls = 2;\n\n  // rules is a list of host rules used to configure the Ingress. If unspecified, or\n  // no rule matches, all traffic is sent to the default backend.\n  // +optional\n  // +listType=atomic\n  repeated IngressRule rules = 3;\n}\n\n// IngressStatus describes the current state of the Ingress.\nmessage IngressStatus {\n  // loadBalancer contains the current status of the load-balancer.\n  // +optional\n  optional IngressLoadBalancerStatus loadBalancer = 1;\n}\n\n// IngressTLS describes the transport layer security associated with an Ingress.\nmessage IngressTLS {\n  // hosts is a list of hosts included in the TLS certificate. The values in\n  // this list must match the name/s used in the tlsSecret. Defaults to the\n  // wildcard host setting for the loadbalancer controller fulfilling this\n  // Ingress, if left unspecified.\n  // +optional\n  // +listType=atomic\n  repeated string hosts = 1;\n\n  // secretName is the name of the secret used to terminate TLS traffic on\n  // port 443. Field is left optional to allow TLS routing based on SNI\n  // hostname alone. If the SNI host in a listener conflicts with the \"Host\"\n  // header field used by an IngressRule, the SNI host is used for termination\n  // and value of the Host header is used for routing.\n  // +optional\n  optional string secretName = 2;\n}\n\n// ParentReference describes a reference to a parent object.\nmessage ParentReference {\n  // Group is the group of the object being referenced.\n  // +optional\n  optional string group = 1;\n\n  // Resource is the resource of the object being referenced.\n  // +required\n  optional string resource = 2;\n\n  // Namespace is the namespace of the object being referenced.\n  // +optional\n  optional string namespace = 3;\n\n  // Name is the name of the object being referenced.\n  // +required\n  optional string name = 4;\n}\n\n// ServiceCIDR defines a range of IP addresses using CIDR format (e.g. 192.168.0.0/24 or 2001:db2::/64).\n// This range is used to allocate ClusterIPs to Service objects.\nmessage ServiceCIDR {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec is the desired state of the ServiceCIDR.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional ServiceCIDRSpec spec = 2;\n\n  // status represents the current state of the ServiceCIDR.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional ServiceCIDRStatus status = 3;\n}\n\n// ServiceCIDRList contains a list of ServiceCIDR objects.\nmessage ServiceCIDRList {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of ServiceCIDRs.\n  repeated ServiceCIDR items = 2;\n}\n\n// ServiceCIDRSpec define the CIDRs the user wants to use for allocating ClusterIPs for Services.\nmessage ServiceCIDRSpec {\n  // CIDRs defines the IP blocks in CIDR notation (e.g. \"192.168.0.0/24\" or \"2001:db8::/64\")\n  // from which to assign service cluster IPs. Max of two CIDRs is allowed, one of each IP family.\n  // This field is immutable.\n  // +optional\n  // +listType=atomic\n  repeated string cidrs = 1;\n}\n\n// ServiceCIDRStatus describes the current state of the ServiceCIDR.\nmessage ServiceCIDRStatus {\n  // conditions holds an array of metav1.Condition that describe the state of the ServiceCIDR.\n  // Current service state\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=type\n  repeated .k8s.io.apimachinery.pkg.apis.meta.v1.Condition conditions = 1;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1beta1/register.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"networking.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// SchemeBuilder holds functions that add things to a scheme\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\n\t// AddToScheme adds the types of this group into the given scheme.\n\tAddToScheme = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&Ingress{},\n\t\t&IngressList{},\n\t\t&IngressClass{},\n\t\t&IngressClassList{},\n\t\t&IPAddress{},\n\t\t&IPAddressList{},\n\t\t&ServiceCIDR{},\n\t\t&ServiceCIDRList{},\n\t)\n\t// Add the watch version that applies\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1beta1/types.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.14\n// +k8s:prerelease-lifecycle-gen:deprecated=1.19\n// +k8s:prerelease-lifecycle-gen:replacement=networking.k8s.io,v1,Ingress\n\n// Ingress is a collection of rules that allow inbound connections to reach the\n// endpoints defined by a backend. An Ingress can be configured to give services\n// externally-reachable urls, load balance traffic, terminate SSL, offer name\n// based virtual hosting etc.\ntype Ingress struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec is the desired state of the Ingress.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec IngressSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// status is the current state of the Ingress.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus IngressStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.14\n// +k8s:prerelease-lifecycle-gen:deprecated=1.19\n// +k8s:prerelease-lifecycle-gen:replacement=networking.k8s.io,v1,IngressList\n\n// IngressList is a collection of Ingress.\ntype IngressList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of Ingress.\n\tItems []Ingress `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// IngressSpec describes the Ingress the user wishes to exist.\ntype IngressSpec struct {\n\t// ingressClassName is the name of the IngressClass cluster resource. The\n\t// associated IngressClass defines which controller will implement the\n\t// resource. This replaces the deprecated `kubernetes.io/ingress.class`\n\t// annotation. For backwards compatibility, when that annotation is set, it\n\t// must be given precedence over this field. The controller may emit a\n\t// warning if the field and annotation have different values.\n\t// Implementations of this API should ignore Ingresses without a class\n\t// specified. An IngressClass resource may be marked as default, which can\n\t// be used to set a default value for this field. For more information,\n\t// refer to the IngressClass documentation.\n\t// +optional\n\tIngressClassName *string `json:\"ingressClassName,omitempty\" protobuf:\"bytes,4,opt,name=ingressClassName\"`\n\n\t// backend is the default backend capable of servicing requests that don't match any\n\t// rule. At least one of 'backend' or 'rules' must be specified. This field\n\t// is optional to allow the loadbalancer controller or defaulting logic to\n\t// specify a global default.\n\t// +optional\n\tBackend *IngressBackend `json:\"backend,omitempty\" protobuf:\"bytes,1,opt,name=backend\"`\n\n\t// tls represents the TLS configuration. Currently the Ingress only supports a\n\t// single TLS port, 443. If multiple members of this list specify different hosts,\n\t// they will be multiplexed on the same port according to the hostname specified\n\t// through the SNI TLS extension, if the ingress controller fulfilling the\n\t// ingress supports SNI.\n\t// +optional\n\t// +listType=atomic\n\tTLS []IngressTLS `json:\"tls,omitempty\" protobuf:\"bytes,2,rep,name=tls\"`\n\n\t// rules is a list of host rules used to configure the Ingress. If unspecified, or\n\t// no rule matches, all traffic is sent to the default backend.\n\t// +optional\n\t// +listType=atomic\n\tRules []IngressRule `json:\"rules,omitempty\" protobuf:\"bytes,3,rep,name=rules\"`\n\t// TODO: Add the ability to specify load-balancer IP through claims\n}\n\n// IngressTLS describes the transport layer security associated with an Ingress.\ntype IngressTLS struct {\n\t// hosts is a list of hosts included in the TLS certificate. The values in\n\t// this list must match the name/s used in the tlsSecret. Defaults to the\n\t// wildcard host setting for the loadbalancer controller fulfilling this\n\t// Ingress, if left unspecified.\n\t// +optional\n\t// +listType=atomic\n\tHosts []string `json:\"hosts,omitempty\" protobuf:\"bytes,1,rep,name=hosts\"`\n\n\t// secretName is the name of the secret used to terminate TLS traffic on\n\t// port 443. Field is left optional to allow TLS routing based on SNI\n\t// hostname alone. If the SNI host in a listener conflicts with the \"Host\"\n\t// header field used by an IngressRule, the SNI host is used for termination\n\t// and value of the Host header is used for routing.\n\t// +optional\n\tSecretName string `json:\"secretName,omitempty\" protobuf:\"bytes,2,opt,name=secretName\"`\n\t// TODO: Consider specifying different modes of termination, protocols etc.\n}\n\n// IngressStatus describes the current state of the Ingress.\ntype IngressStatus struct {\n\t// loadBalancer contains the current status of the load-balancer.\n\t// +optional\n\tLoadBalancer IngressLoadBalancerStatus `json:\"loadBalancer,omitempty\" protobuf:\"bytes,1,opt,name=loadBalancer\"`\n}\n\n// LoadBalancerStatus represents the status of a load-balancer.\ntype IngressLoadBalancerStatus struct {\n\t// ingress is a list containing ingress points for the load-balancer.\n\t// +optional\n\t// +listType=atomic\n\tIngress []IngressLoadBalancerIngress `json:\"ingress,omitempty\" protobuf:\"bytes,1,rep,name=ingress\"`\n}\n\n// IngressLoadBalancerIngress represents the status of a load-balancer ingress point.\ntype IngressLoadBalancerIngress struct {\n\t// ip is set for load-balancer ingress points that are IP based.\n\t// +optional\n\tIP string `json:\"ip,omitempty\" protobuf:\"bytes,1,opt,name=ip\"`\n\n\t// hostname is set for load-balancer ingress points that are DNS based.\n\t// +optional\n\tHostname string `json:\"hostname,omitempty\" protobuf:\"bytes,2,opt,name=hostname\"`\n\n\t// ports provides information about the ports exposed by this LoadBalancer.\n\t// +listType=atomic\n\t// +optional\n\tPorts []IngressPortStatus `json:\"ports,omitempty\" protobuf:\"bytes,4,rep,name=ports\"`\n}\n\n// IngressPortStatus represents the error condition of a service port\ntype IngressPortStatus struct {\n\t// port is the port number of the ingress port.\n\tPort int32 `json:\"port\" protobuf:\"varint,1,opt,name=port\"`\n\n\t// protocol is the protocol of the ingress port.\n\t// The supported values are: \"TCP\", \"UDP\", \"SCTP\"\n\tProtocol v1.Protocol `json:\"protocol\" protobuf:\"bytes,2,opt,name=protocol,casttype=Protocol\"`\n\n\t// error is to record the problem with the service port\n\t// The format of the error shall comply with the following rules:\n\t// - built-in error values shall be specified in this file and those shall use\n\t//   CamelCase names\n\t// - cloud provider specific error values must have names that comply with the\n\t//   format foo.example.com/CamelCase.\n\t// ---\n\t// The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)\n\t// +optional\n\t// +kubebuilder:validation:Required\n\t// +kubebuilder:validation:Pattern=`^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$`\n\t// +kubebuilder:validation:MaxLength=316\n\tError *string `json:\"error,omitempty\" protobuf:\"bytes,3,opt,name=error\"`\n}\n\n// IngressRule represents the rules mapping the paths under a specified host to\n// the related backend services. Incoming requests are first evaluated for a host\n// match, then routed to the backend associated with the matching IngressRuleValue.\ntype IngressRule struct {\n\t// host is the fully qualified domain name of a network host, as defined by RFC 3986.\n\t// Note the following deviations from the \"host\" part of the\n\t// URI as defined in RFC 3986:\n\t// 1. IPs are not allowed. Currently an IngressRuleValue can only apply to\n\t//    the IP in the Spec of the parent Ingress.\n\t// 2. The `:` delimiter is not respected because ports are not allowed.\n\t//\t  Currently the port of an Ingress is implicitly :80 for http and\n\t//\t  :443 for https.\n\t// Both these may change in the future.\n\t// Incoming requests are matched against the host before the\n\t// IngressRuleValue. If the host is unspecified, the Ingress routes all\n\t// traffic based on the specified IngressRuleValue.\n\t//\n\t// host can be \"precise\" which is a domain name without the terminating dot of\n\t// a network host (e.g. \"foo.bar.com\") or \"wildcard\", which is a domain name\n\t// prefixed with a single wildcard label (e.g. \"*.foo.com\").\n\t// The wildcard character '*' must appear by itself as the first DNS label and\n\t// matches only a single label. You cannot have a wildcard label by itself (e.g. Host == \"*\").\n\t// Requests will be matched against the Host field in the following way:\n\t// 1. If Host is precise, the request matches this rule if the http host header is equal to Host.\n\t// 2. If Host is a wildcard, then the request matches this rule if the http host header\n\t// is to equal to the suffix (removing the first label) of the wildcard rule.\n\t// +optional\n\tHost string `json:\"host,omitempty\" protobuf:\"bytes,1,opt,name=host\"`\n\n\t// IngressRuleValue represents a rule to route requests for this IngressRule.\n\t// If unspecified, the rule defaults to a http catch-all. Whether that sends\n\t// just traffic matching the host to the default backend or all traffic to the\n\t// default backend, is left to the controller fulfilling the Ingress. Http is\n\t// currently the only supported IngressRuleValue.\n\t// +optional\n\tIngressRuleValue `json:\",inline\" protobuf:\"bytes,2,opt,name=ingressRuleValue\"`\n}\n\n// IngressRuleValue represents a rule to apply against incoming requests. If the\n// rule is satisfied, the request is routed to the specified backend. Currently\n// mixing different types of rules in a single Ingress is disallowed, so exactly\n// one of the following must be set.\ntype IngressRuleValue struct {\n\t//TODO:\n\t// 1. Consider renaming this resource and the associated rules so they\n\t// aren't tied to Ingress. They can be used to route intra-cluster traffic.\n\t// 2. Consider adding fields for ingress-type specific global options\n\t// usable by a loadbalancer, like http keep-alive.\n\n\t// +optional\n\tHTTP *HTTPIngressRuleValue `json:\"http,omitempty\" protobuf:\"bytes,1,opt,name=http\"`\n}\n\n// HTTPIngressRuleValue is a list of http selectors pointing to backends.\n// In the example: http://<host>/<path>?<searchpart> -> backend where\n// where parts of the url correspond to RFC 3986, this resource will be used\n// to match against everything after the last '/' and before the first '?'\n// or '#'.\ntype HTTPIngressRuleValue struct {\n\t// paths is a collection of paths that map requests to backends.\n\t// +listType=atomic\n\tPaths []HTTPIngressPath `json:\"paths\" protobuf:\"bytes,1,rep,name=paths\"`\n\t// TODO: Consider adding fields for ingress-type specific global\n\t// options usable by a loadbalancer, like http keep-alive.\n}\n\n// PathType represents the type of path referred to by a HTTPIngressPath.\ntype PathType string\n\nconst (\n\t// PathTypeExact matches the URL path exactly and with case sensitivity.\n\tPathTypeExact = PathType(\"Exact\")\n\n\t// PathTypePrefix matches based on a URL path prefix split by '/'. Matching\n\t// is case sensitive and done on a path element by element basis. A path\n\t// element refers to the list of labels in the path split by the '/'\n\t// separator. A request is a match for path p if every p is an element-wise\n\t// prefix of p of the request path. Note that if the last element of the\n\t// path is a substring of the last element in request path, it is not a\n\t// match (e.g. /foo/bar matches /foo/bar/baz, but does not match\n\t// /foo/barbaz). If multiple matching paths exist in an Ingress spec, the\n\t// longest matching path is given priority.\n\t// Examples:\n\t// - /foo/bar does not match requests to /foo/barbaz\n\t// - /foo/bar matches request to /foo/bar and /foo/bar/baz\n\t// - /foo and /foo/ both match requests to /foo and /foo/. If both paths are\n\t//   present in an Ingress spec, the longest matching path (/foo/) is given\n\t//   priority.\n\tPathTypePrefix = PathType(\"Prefix\")\n\n\t// PathTypeImplementationSpecific matching is up to the IngressClass.\n\t// Implementations can treat this as a separate PathType or treat it\n\t// identically to Prefix or Exact path types.\n\tPathTypeImplementationSpecific = PathType(\"ImplementationSpecific\")\n)\n\n// HTTPIngressPath associates a path with a backend. Incoming urls matching the\n// path are forwarded to the backend.\ntype HTTPIngressPath struct {\n\t// path is matched against the path of an incoming request. Currently it can\n\t// contain characters disallowed from the conventional \"path\" part of a URL\n\t// as defined by RFC 3986. Paths must begin with a '/' and must be present\n\t// when using PathType with value \"Exact\" or \"Prefix\".\n\t// +optional\n\tPath string `json:\"path,omitempty\" protobuf:\"bytes,1,opt,name=path\"`\n\n\t// pathType determines the interpretation of the path matching. PathType can\n\t// be one of the following values:\n\t// * Exact: Matches the URL path exactly.\n\t// * Prefix: Matches based on a URL path prefix split by '/'. Matching is\n\t//   done on a path element by element basis. A path element refers is the\n\t//   list of labels in the path split by the '/' separator. A request is a\n\t//   match for path p if every p is an element-wise prefix of p of the\n\t//   request path. Note that if the last element of the path is a substring\n\t//   of the last element in request path, it is not a match (e.g. /foo/bar\n\t//   matches /foo/bar/baz, but does not match /foo/barbaz).\n\t// * ImplementationSpecific: Interpretation of the Path matching is up to\n\t//   the IngressClass. Implementations can treat this as a separate PathType\n\t//   or treat it identically to Prefix or Exact path types.\n\t// Implementations are required to support all path types.\n\t// Defaults to ImplementationSpecific.\n\tPathType *PathType `json:\"pathType,omitempty\" protobuf:\"bytes,3,opt,name=pathType\"`\n\n\t// backend defines the referenced service endpoint to which the traffic\n\t// will be forwarded to.\n\tBackend IngressBackend `json:\"backend\" protobuf:\"bytes,2,opt,name=backend\"`\n}\n\n// IngressBackend describes all endpoints for a given service and port.\ntype IngressBackend struct {\n\t// serviceName specifies the name of the referenced service.\n\t// +optional\n\tServiceName string `json:\"serviceName,omitempty\" protobuf:\"bytes,1,opt,name=serviceName\"`\n\n\t// servicePort Specifies the port of the referenced service.\n\t// +optional\n\tServicePort intstr.IntOrString `json:\"servicePort,omitempty\" protobuf:\"bytes,2,opt,name=servicePort\"`\n\n\t// resource is an ObjectRef to another Kubernetes resource in the namespace\n\t// of the Ingress object. If resource is specified, serviceName and servicePort\n\t// must not be specified.\n\t// +optional\n\tResource *v1.TypedLocalObjectReference `json:\"resource,omitempty\" protobuf:\"bytes,3,opt,name=resource\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.18\n// +k8s:prerelease-lifecycle-gen:deprecated=1.19\n// +k8s:prerelease-lifecycle-gen:replacement=networking.k8s.io,v1,IngressClassList\n\n// IngressClass represents the class of the Ingress, referenced by the Ingress\n// Spec. The `ingressclass.kubernetes.io/is-default-class` annotation can be\n// used to indicate that an IngressClass should be considered default. When a\n// single IngressClass resource has this annotation set to true, new Ingress\n// resources without a class specified will be assigned this default class.\ntype IngressClass struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec is the desired state of the IngressClass.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec IngressClassSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n}\n\n// IngressClassSpec provides information about the class of an Ingress.\ntype IngressClassSpec struct {\n\t// controller refers to the name of the controller that should handle this\n\t// class. This allows for different \"flavors\" that are controlled by the\n\t// same controller. For example, you may have different parameters for the\n\t// same implementing controller. This should be specified as a\n\t// domain-prefixed path no more than 250 characters in length, e.g.\n\t// \"acme.io/ingress-controller\". This field is immutable.\n\tController string `json:\"controller,omitempty\" protobuf:\"bytes,1,opt,name=controller\"`\n\n\t// parameters is a link to a custom resource containing additional\n\t// configuration for the controller. This is optional if the controller does\n\t// not require extra parameters.\n\t// +optional\n\tParameters *IngressClassParametersReference `json:\"parameters,omitempty\" protobuf:\"bytes,2,opt,name=parameters\"`\n}\n\nconst (\n\t// IngressClassParametersReferenceScopeNamespace indicates that the\n\t// referenced Parameters resource is namespace-scoped.\n\tIngressClassParametersReferenceScopeNamespace = \"Namespace\"\n\t// IngressClassParametersReferenceScopeCluster indicates that the\n\t// referenced Parameters resource is cluster-scoped.\n\tIngressClassParametersReferenceScopeCluster = \"Cluster\"\n)\n\n// IngressClassParametersReference identifies an API object. This can be used\n// to specify a cluster or namespace-scoped resource.\ntype IngressClassParametersReference struct {\n\t// apiGroup is the group for the resource being referenced. If APIGroup is\n\t// not specified, the specified Kind must be in the core API group. For any\n\t// other third-party types, APIGroup is required.\n\t// +optional\n\tAPIGroup *string `json:\"apiGroup,omitempty\" protobuf:\"bytes,1,opt,name=aPIGroup\"`\n\n\t// kind is the type of resource being referenced.\n\tKind string `json:\"kind\" protobuf:\"bytes,2,opt,name=kind\"`\n\n\t// name is the name of resource being referenced.\n\tName string `json:\"name\" protobuf:\"bytes,3,opt,name=name\"`\n\n\t// scope represents if this refers to a cluster or namespace scoped resource.\n\t// This may be set to \"Cluster\" (default) or \"Namespace\".\n\tScope *string `json:\"scope\" protobuf:\"bytes,4,opt,name=scope\"`\n\n\t// namespace is the namespace of the resource being referenced. This field is\n\t// required when scope is set to \"Namespace\" and must be unset when scope is set to\n\t// \"Cluster\".\n\t// +optional\n\tNamespace *string `json:\"namespace,omitempty\" protobuf:\"bytes,5,opt,name=namespace\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.18\n// +k8s:prerelease-lifecycle-gen:deprecated=1.19\n// +k8s:prerelease-lifecycle-gen:replacement=networking.k8s.io,v1,IngressClassList\n\n// IngressClassList is a collection of IngressClasses.\ntype IngressClassList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of IngressClasses.\n\tItems []IngressClass `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.31\n\n// IPAddress represents a single IP of a single IP Family. The object is designed to be used by APIs\n// that operate on IP addresses. The object is used by the Service core API for allocation of IP addresses.\n// An IP address can be represented in different formats, to guarantee the uniqueness of the IP,\n// the name of the object is the IP address in canonical format, four decimal digits separated\n// by dots suppressing leading zeros for IPv4 and the representation defined by RFC 5952 for IPv6.\n// Valid: 192.168.1.5 or 2001:db8::1 or 2001:db8:aaaa:bbbb:cccc:dddd:eeee:1\n// Invalid: 10.01.2.3 or 2001:db8:0:0:0::1\ntype IPAddress struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// spec is the desired state of the IPAddress.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec IPAddressSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n}\n\n// IPAddressSpec describe the attributes in an IP Address.\ntype IPAddressSpec struct {\n\t// ParentRef references the resource that an IPAddress is attached to.\n\t// An IPAddress must reference a parent object.\n\t// +required\n\tParentRef *ParentReference `json:\"parentRef,omitempty\" protobuf:\"bytes,1,opt,name=parentRef\"`\n}\n\n// ParentReference describes a reference to a parent object.\ntype ParentReference struct {\n\t// Group is the group of the object being referenced.\n\t// +optional\n\tGroup string `json:\"group,omitempty\" protobuf:\"bytes,1,opt,name=group\"`\n\t// Resource is the resource of the object being referenced.\n\t// +required\n\tResource string `json:\"resource,omitempty\" protobuf:\"bytes,2,opt,name=resource\"`\n\t// Namespace is the namespace of the object being referenced.\n\t// +optional\n\tNamespace string `json:\"namespace,omitempty\" protobuf:\"bytes,3,opt,name=namespace\"`\n\t// Name is the name of the object being referenced.\n\t// +required\n\tName string `json:\"name,omitempty\" protobuf:\"bytes,4,opt,name=name\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.31\n\n// IPAddressList contains a list of IPAddress.\ntype IPAddressList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// items is the list of IPAddresses.\n\tItems []IPAddress `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.31\n\n// ServiceCIDR defines a range of IP addresses using CIDR format (e.g. 192.168.0.0/24 or 2001:db2::/64).\n// This range is used to allocate ClusterIPs to Service objects.\ntype ServiceCIDR struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// spec is the desired state of the ServiceCIDR.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tSpec ServiceCIDRSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\t// status represents the current state of the ServiceCIDR.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus ServiceCIDRStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// ServiceCIDRSpec define the CIDRs the user wants to use for allocating ClusterIPs for Services.\ntype ServiceCIDRSpec struct {\n\t// CIDRs defines the IP blocks in CIDR notation (e.g. \"192.168.0.0/24\" or \"2001:db8::/64\")\n\t// from which to assign service cluster IPs. Max of two CIDRs is allowed, one of each IP family.\n\t// This field is immutable.\n\t// +optional\n\t// +listType=atomic\n\tCIDRs []string `json:\"cidrs,omitempty\" protobuf:\"bytes,1,opt,name=cidrs\"`\n}\n\nconst (\n\t// ServiceCIDRConditionReady represents status of a ServiceCIDR that is ready to be used by the\n\t// apiserver to allocate ClusterIPs for Services.\n\tServiceCIDRConditionReady = \"Ready\"\n\t// ServiceCIDRReasonTerminating represents a reason where a ServiceCIDR is not ready because it is\n\t// being deleted.\n\tServiceCIDRReasonTerminating = \"Terminating\"\n)\n\n// ServiceCIDRStatus describes the current state of the ServiceCIDR.\ntype ServiceCIDRStatus struct {\n\t// conditions holds an array of metav1.Condition that describe the state of the ServiceCIDR.\n\t// Current service state\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=type\n\tConditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.31\n\n// ServiceCIDRList contains a list of ServiceCIDR objects.\ntype ServiceCIDRList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// items is the list of ServiceCIDRs.\n\tItems []ServiceCIDR `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1beta1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_HTTPIngressPath = map[string]string{\n\t\"\":         \"HTTPIngressPath associates a path with a backend. Incoming urls matching the path are forwarded to the backend.\",\n\t\"path\":     \"path is matched against the path of an incoming request. Currently it can contain characters disallowed from the conventional \\\"path\\\" part of a URL as defined by RFC 3986. Paths must begin with a '/' and must be present when using PathType with value \\\"Exact\\\" or \\\"Prefix\\\".\",\n\t\"pathType\": \"pathType determines the interpretation of the path matching. PathType can be one of the following values: * Exact: Matches the URL path exactly. * Prefix: Matches based on a URL path prefix split by '/'. Matching is\\n  done on a path element by element basis. A path element refers is the\\n  list of labels in the path split by the '/' separator. A request is a\\n  match for path p if every p is an element-wise prefix of p of the\\n  request path. Note that if the last element of the path is a substring\\n  of the last element in request path, it is not a match (e.g. /foo/bar\\n  matches /foo/bar/baz, but does not match /foo/barbaz).\\n* ImplementationSpecific: Interpretation of the Path matching is up to\\n  the IngressClass. Implementations can treat this as a separate PathType\\n  or treat it identically to Prefix or Exact path types.\\nImplementations are required to support all path types. Defaults to ImplementationSpecific.\",\n\t\"backend\":  \"backend defines the referenced service endpoint to which the traffic will be forwarded to.\",\n}\n\nfunc (HTTPIngressPath) SwaggerDoc() map[string]string {\n\treturn map_HTTPIngressPath\n}\n\nvar map_HTTPIngressRuleValue = map[string]string{\n\t\"\":      \"HTTPIngressRuleValue is a list of http selectors pointing to backends. In the example: http://<host>/<path>?<searchpart> -> backend where where parts of the url correspond to RFC 3986, this resource will be used to match against everything after the last '/' and before the first '?' or '#'.\",\n\t\"paths\": \"paths is a collection of paths that map requests to backends.\",\n}\n\nfunc (HTTPIngressRuleValue) SwaggerDoc() map[string]string {\n\treturn map_HTTPIngressRuleValue\n}\n\nvar map_IPAddress = map[string]string{\n\t\"\":         \"IPAddress represents a single IP of a single IP Family. The object is designed to be used by APIs that operate on IP addresses. The object is used by the Service core API for allocation of IP addresses. An IP address can be represented in different formats, to guarantee the uniqueness of the IP, the name of the object is the IP address in canonical format, four decimal digits separated by dots suppressing leading zeros for IPv4 and the representation defined by RFC 5952 for IPv6. Valid: 192.168.1.5 or 2001:db8::1 or 2001:db8:aaaa:bbbb:cccc:dddd:eeee:1 Invalid: 10.01.2.3 or 2001:db8:0:0:0::1\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec is the desired state of the IPAddress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (IPAddress) SwaggerDoc() map[string]string {\n\treturn map_IPAddress\n}\n\nvar map_IPAddressList = map[string]string{\n\t\"\":         \"IPAddressList contains a list of IPAddress.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of IPAddresses.\",\n}\n\nfunc (IPAddressList) SwaggerDoc() map[string]string {\n\treturn map_IPAddressList\n}\n\nvar map_IPAddressSpec = map[string]string{\n\t\"\":          \"IPAddressSpec describe the attributes in an IP Address.\",\n\t\"parentRef\": \"ParentRef references the resource that an IPAddress is attached to. An IPAddress must reference a parent object.\",\n}\n\nfunc (IPAddressSpec) SwaggerDoc() map[string]string {\n\treturn map_IPAddressSpec\n}\n\nvar map_Ingress = map[string]string{\n\t\"\":         \"Ingress is a collection of rules that allow inbound connections to reach the endpoints defined by a backend. An Ingress can be configured to give services externally-reachable urls, load balance traffic, terminate SSL, offer name based virtual hosting etc.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec is the desired state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"status is the current state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (Ingress) SwaggerDoc() map[string]string {\n\treturn map_Ingress\n}\n\nvar map_IngressBackend = map[string]string{\n\t\"\":            \"IngressBackend describes all endpoints for a given service and port.\",\n\t\"serviceName\": \"serviceName specifies the name of the referenced service.\",\n\t\"servicePort\": \"servicePort Specifies the port of the referenced service.\",\n\t\"resource\":    \"resource is an ObjectRef to another Kubernetes resource in the namespace of the Ingress object. If resource is specified, serviceName and servicePort must not be specified.\",\n}\n\nfunc (IngressBackend) SwaggerDoc() map[string]string {\n\treturn map_IngressBackend\n}\n\nvar map_IngressClass = map[string]string{\n\t\"\":         \"IngressClass represents the class of the Ingress, referenced by the Ingress Spec. The `ingressclass.kubernetes.io/is-default-class` annotation can be used to indicate that an IngressClass should be considered default. When a single IngressClass resource has this annotation set to true, new Ingress resources without a class specified will be assigned this default class.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec is the desired state of the IngressClass. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (IngressClass) SwaggerDoc() map[string]string {\n\treturn map_IngressClass\n}\n\nvar map_IngressClassList = map[string]string{\n\t\"\":         \"IngressClassList is a collection of IngressClasses.\",\n\t\"metadata\": \"Standard list metadata.\",\n\t\"items\":    \"items is the list of IngressClasses.\",\n}\n\nfunc (IngressClassList) SwaggerDoc() map[string]string {\n\treturn map_IngressClassList\n}\n\nvar map_IngressClassParametersReference = map[string]string{\n\t\"\":          \"IngressClassParametersReference identifies an API object. This can be used to specify a cluster or namespace-scoped resource.\",\n\t\"apiGroup\":  \"apiGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.\",\n\t\"kind\":      \"kind is the type of resource being referenced.\",\n\t\"name\":      \"name is the name of resource being referenced.\",\n\t\"scope\":     \"scope represents if this refers to a cluster or namespace scoped resource. This may be set to \\\"Cluster\\\" (default) or \\\"Namespace\\\".\",\n\t\"namespace\": \"namespace is the namespace of the resource being referenced. This field is required when scope is set to \\\"Namespace\\\" and must be unset when scope is set to \\\"Cluster\\\".\",\n}\n\nfunc (IngressClassParametersReference) SwaggerDoc() map[string]string {\n\treturn map_IngressClassParametersReference\n}\n\nvar map_IngressClassSpec = map[string]string{\n\t\"\":           \"IngressClassSpec provides information about the class of an Ingress.\",\n\t\"controller\": \"controller refers to the name of the controller that should handle this class. This allows for different \\\"flavors\\\" that are controlled by the same controller. For example, you may have different parameters for the same implementing controller. This should be specified as a domain-prefixed path no more than 250 characters in length, e.g. \\\"acme.io/ingress-controller\\\". This field is immutable.\",\n\t\"parameters\": \"parameters is a link to a custom resource containing additional configuration for the controller. This is optional if the controller does not require extra parameters.\",\n}\n\nfunc (IngressClassSpec) SwaggerDoc() map[string]string {\n\treturn map_IngressClassSpec\n}\n\nvar map_IngressList = map[string]string{\n\t\"\":         \"IngressList is a collection of Ingress.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of Ingress.\",\n}\n\nfunc (IngressList) SwaggerDoc() map[string]string {\n\treturn map_IngressList\n}\n\nvar map_IngressLoadBalancerIngress = map[string]string{\n\t\"\":         \"IngressLoadBalancerIngress represents the status of a load-balancer ingress point.\",\n\t\"ip\":       \"ip is set for load-balancer ingress points that are IP based.\",\n\t\"hostname\": \"hostname is set for load-balancer ingress points that are DNS based.\",\n\t\"ports\":    \"ports provides information about the ports exposed by this LoadBalancer.\",\n}\n\nfunc (IngressLoadBalancerIngress) SwaggerDoc() map[string]string {\n\treturn map_IngressLoadBalancerIngress\n}\n\nvar map_IngressLoadBalancerStatus = map[string]string{\n\t\"\":        \"LoadBalancerStatus represents the status of a load-balancer.\",\n\t\"ingress\": \"ingress is a list containing ingress points for the load-balancer.\",\n}\n\nfunc (IngressLoadBalancerStatus) SwaggerDoc() map[string]string {\n\treturn map_IngressLoadBalancerStatus\n}\n\nvar map_IngressPortStatus = map[string]string{\n\t\"\":         \"IngressPortStatus represents the error condition of a service port\",\n\t\"port\":     \"port is the port number of the ingress port.\",\n\t\"protocol\": \"protocol is the protocol of the ingress port. The supported values are: \\\"TCP\\\", \\\"UDP\\\", \\\"SCTP\\\"\",\n\t\"error\":    \"error is to record the problem with the service port The format of the error shall comply with the following rules: - built-in error values shall be specified in this file and those shall use\\n  CamelCase names\\n- cloud provider specific error values must have names that comply with the\\n  format foo.example.com/CamelCase.\",\n}\n\nfunc (IngressPortStatus) SwaggerDoc() map[string]string {\n\treturn map_IngressPortStatus\n}\n\nvar map_IngressRule = map[string]string{\n\t\"\":     \"IngressRule represents the rules mapping the paths under a specified host to the related backend services. Incoming requests are first evaluated for a host match, then routed to the backend associated with the matching IngressRuleValue.\",\n\t\"host\": \"host is the fully qualified domain name of a network host, as defined by RFC 3986. Note the following deviations from the \\\"host\\\" part of the URI as defined in RFC 3986: 1. IPs are not allowed. Currently an IngressRuleValue can only apply to\\n   the IP in the Spec of the parent Ingress.\\n2. The `:` delimiter is not respected because ports are not allowed.\\n\\t  Currently the port of an Ingress is implicitly :80 for http and\\n\\t  :443 for https.\\nBoth these may change in the future. Incoming requests are matched against the host before the IngressRuleValue. If the host is unspecified, the Ingress routes all traffic based on the specified IngressRuleValue.\\n\\nhost can be \\\"precise\\\" which is a domain name without the terminating dot of a network host (e.g. \\\"foo.bar.com\\\") or \\\"wildcard\\\", which is a domain name prefixed with a single wildcard label (e.g. \\\"*.foo.com\\\"). The wildcard character '*' must appear by itself as the first DNS label and matches only a single label. You cannot have a wildcard label by itself (e.g. Host == \\\"*\\\"). Requests will be matched against the Host field in the following way: 1. If Host is precise, the request matches this rule if the http host header is equal to Host. 2. If Host is a wildcard, then the request matches this rule if the http host header is to equal to the suffix (removing the first label) of the wildcard rule.\",\n}\n\nfunc (IngressRule) SwaggerDoc() map[string]string {\n\treturn map_IngressRule\n}\n\nvar map_IngressRuleValue = map[string]string{\n\t\"\": \"IngressRuleValue represents a rule to apply against incoming requests. If the rule is satisfied, the request is routed to the specified backend. Currently mixing different types of rules in a single Ingress is disallowed, so exactly one of the following must be set.\",\n}\n\nfunc (IngressRuleValue) SwaggerDoc() map[string]string {\n\treturn map_IngressRuleValue\n}\n\nvar map_IngressSpec = map[string]string{\n\t\"\":                 \"IngressSpec describes the Ingress the user wishes to exist.\",\n\t\"ingressClassName\": \"ingressClassName is the name of the IngressClass cluster resource. The associated IngressClass defines which controller will implement the resource. This replaces the deprecated `kubernetes.io/ingress.class` annotation. For backwards compatibility, when that annotation is set, it must be given precedence over this field. The controller may emit a warning if the field and annotation have different values. Implementations of this API should ignore Ingresses without a class specified. An IngressClass resource may be marked as default, which can be used to set a default value for this field. For more information, refer to the IngressClass documentation.\",\n\t\"backend\":          \"backend is the default backend capable of servicing requests that don't match any rule. At least one of 'backend' or 'rules' must be specified. This field is optional to allow the loadbalancer controller or defaulting logic to specify a global default.\",\n\t\"tls\":              \"tls represents the TLS configuration. Currently the Ingress only supports a single TLS port, 443. If multiple members of this list specify different hosts, they will be multiplexed on the same port according to the hostname specified through the SNI TLS extension, if the ingress controller fulfilling the ingress supports SNI.\",\n\t\"rules\":            \"rules is a list of host rules used to configure the Ingress. If unspecified, or no rule matches, all traffic is sent to the default backend.\",\n}\n\nfunc (IngressSpec) SwaggerDoc() map[string]string {\n\treturn map_IngressSpec\n}\n\nvar map_IngressStatus = map[string]string{\n\t\"\":             \"IngressStatus describes the current state of the Ingress.\",\n\t\"loadBalancer\": \"loadBalancer contains the current status of the load-balancer.\",\n}\n\nfunc (IngressStatus) SwaggerDoc() map[string]string {\n\treturn map_IngressStatus\n}\n\nvar map_IngressTLS = map[string]string{\n\t\"\":           \"IngressTLS describes the transport layer security associated with an Ingress.\",\n\t\"hosts\":      \"hosts is a list of hosts included in the TLS certificate. The values in this list must match the name/s used in the tlsSecret. Defaults to the wildcard host setting for the loadbalancer controller fulfilling this Ingress, if left unspecified.\",\n\t\"secretName\": \"secretName is the name of the secret used to terminate TLS traffic on port 443. Field is left optional to allow TLS routing based on SNI hostname alone. If the SNI host in a listener conflicts with the \\\"Host\\\" header field used by an IngressRule, the SNI host is used for termination and value of the Host header is used for routing.\",\n}\n\nfunc (IngressTLS) SwaggerDoc() map[string]string {\n\treturn map_IngressTLS\n}\n\nvar map_ParentReference = map[string]string{\n\t\"\":          \"ParentReference describes a reference to a parent object.\",\n\t\"group\":     \"Group is the group of the object being referenced.\",\n\t\"resource\":  \"Resource is the resource of the object being referenced.\",\n\t\"namespace\": \"Namespace is the namespace of the object being referenced.\",\n\t\"name\":      \"Name is the name of the object being referenced.\",\n}\n\nfunc (ParentReference) SwaggerDoc() map[string]string {\n\treturn map_ParentReference\n}\n\nvar map_ServiceCIDR = map[string]string{\n\t\"\":         \"ServiceCIDR defines a range of IP addresses using CIDR format (e.g. 192.168.0.0/24 or 2001:db2::/64). This range is used to allocate ClusterIPs to Service objects.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec is the desired state of the ServiceCIDR. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"status\":   \"status represents the current state of the ServiceCIDR. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (ServiceCIDR) SwaggerDoc() map[string]string {\n\treturn map_ServiceCIDR\n}\n\nvar map_ServiceCIDRList = map[string]string{\n\t\"\":         \"ServiceCIDRList contains a list of ServiceCIDR objects.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of ServiceCIDRs.\",\n}\n\nfunc (ServiceCIDRList) SwaggerDoc() map[string]string {\n\treturn map_ServiceCIDRList\n}\n\nvar map_ServiceCIDRSpec = map[string]string{\n\t\"\":      \"ServiceCIDRSpec define the CIDRs the user wants to use for allocating ClusterIPs for Services.\",\n\t\"cidrs\": \"CIDRs defines the IP blocks in CIDR notation (e.g. \\\"192.168.0.0/24\\\" or \\\"2001:db8::/64\\\") from which to assign service cluster IPs. Max of two CIDRs is allowed, one of each IP family. This field is immutable.\",\n}\n\nfunc (ServiceCIDRSpec) SwaggerDoc() map[string]string {\n\treturn map_ServiceCIDRSpec\n}\n\nvar map_ServiceCIDRStatus = map[string]string{\n\t\"\":           \"ServiceCIDRStatus describes the current state of the ServiceCIDR.\",\n\t\"conditions\": \"conditions holds an array of metav1.Condition that describe the state of the ServiceCIDR. Current service state\",\n}\n\nfunc (ServiceCIDRStatus) SwaggerDoc() map[string]string {\n\treturn map_ServiceCIDRStatus\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1beta1/well_known_annotations.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nconst (\n\t// AnnotationIsDefaultIngressClass can be used to indicate that an\n\t// IngressClass should be considered default. When a single IngressClass\n\t// resource has this annotation set to true, new Ingress resources without a\n\t// class specified will be assigned this default class.\n\tAnnotationIsDefaultIngressClass = \"ingressclass.kubernetes.io/is-default-class\"\n\n\t// AnnotationIngressClass indicates the class of an Ingress to be used when\n\t// determining which controller should implement the Ingress. Use of this\n\t// annotation is deprecated. The Ingress class field should be used instead\n\t// of this annotation.\n\t// +deprecated\n\tAnnotationIngressClass = \"kubernetes.io/ingress.class\"\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1beta1/well_known_labels.go",
    "content": "/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nconst (\n\n\t// TODO: Use IPFamily as field with a field selector,And the value is set based on\n\t// the name at create time and immutable.\n\t// LabelIPAddressFamily is used to indicate the IP family of a Kubernetes IPAddress.\n\t// This label simplify dual-stack client operations allowing to obtain the list of\n\t// IP addresses filtered by family.\n\tLabelIPAddressFamily = \"ipaddress.kubernetes.io/ip-family\"\n\t// LabelManagedBy is used to indicate the controller or entity that manages\n\t// an IPAddress. This label aims to enable different IPAddress\n\t// objects to be managed by different controllers or entities within the\n\t// same cluster. It is highly recommended to configure this label for all\n\t// IPAddress objects.\n\tLabelManagedBy = \"ipaddress.kubernetes.io/managed-by\"\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1beta1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HTTPIngressPath) DeepCopyInto(out *HTTPIngressPath) {\n\t*out = *in\n\tif in.PathType != nil {\n\t\tin, out := &in.PathType, &out.PathType\n\t\t*out = new(PathType)\n\t\t**out = **in\n\t}\n\tin.Backend.DeepCopyInto(&out.Backend)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPIngressPath.\nfunc (in *HTTPIngressPath) DeepCopy() *HTTPIngressPath {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HTTPIngressPath)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *HTTPIngressRuleValue) DeepCopyInto(out *HTTPIngressRuleValue) {\n\t*out = *in\n\tif in.Paths != nil {\n\t\tin, out := &in.Paths, &out.Paths\n\t\t*out = make([]HTTPIngressPath, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPIngressRuleValue.\nfunc (in *HTTPIngressRuleValue) DeepCopy() *HTTPIngressRuleValue {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(HTTPIngressRuleValue)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IPAddress) DeepCopyInto(out *IPAddress) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPAddress.\nfunc (in *IPAddress) DeepCopy() *IPAddress {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IPAddress)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *IPAddress) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IPAddressList) DeepCopyInto(out *IPAddressList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]IPAddress, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPAddressList.\nfunc (in *IPAddressList) DeepCopy() *IPAddressList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IPAddressList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *IPAddressList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IPAddressSpec) DeepCopyInto(out *IPAddressSpec) {\n\t*out = *in\n\tif in.ParentRef != nil {\n\t\tin, out := &in.ParentRef, &out.ParentRef\n\t\t*out = new(ParentReference)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPAddressSpec.\nfunc (in *IPAddressSpec) DeepCopy() *IPAddressSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IPAddressSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Ingress) DeepCopyInto(out *Ingress) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Ingress.\nfunc (in *Ingress) DeepCopy() *Ingress {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Ingress)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Ingress) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressBackend) DeepCopyInto(out *IngressBackend) {\n\t*out = *in\n\tout.ServicePort = in.ServicePort\n\tif in.Resource != nil {\n\t\tin, out := &in.Resource, &out.Resource\n\t\t*out = new(v1.TypedLocalObjectReference)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressBackend.\nfunc (in *IngressBackend) DeepCopy() *IngressBackend {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressBackend)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressClass) DeepCopyInto(out *IngressClass) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressClass.\nfunc (in *IngressClass) DeepCopy() *IngressClass {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressClass)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *IngressClass) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressClassList) DeepCopyInto(out *IngressClassList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]IngressClass, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressClassList.\nfunc (in *IngressClassList) DeepCopy() *IngressClassList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressClassList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *IngressClassList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressClassParametersReference) DeepCopyInto(out *IngressClassParametersReference) {\n\t*out = *in\n\tif in.APIGroup != nil {\n\t\tin, out := &in.APIGroup, &out.APIGroup\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.Scope != nil {\n\t\tin, out := &in.Scope, &out.Scope\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.Namespace != nil {\n\t\tin, out := &in.Namespace, &out.Namespace\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressClassParametersReference.\nfunc (in *IngressClassParametersReference) DeepCopy() *IngressClassParametersReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressClassParametersReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressClassSpec) DeepCopyInto(out *IngressClassSpec) {\n\t*out = *in\n\tif in.Parameters != nil {\n\t\tin, out := &in.Parameters, &out.Parameters\n\t\t*out = new(IngressClassParametersReference)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressClassSpec.\nfunc (in *IngressClassSpec) DeepCopy() *IngressClassSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressClassSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressList) DeepCopyInto(out *IngressList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Ingress, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressList.\nfunc (in *IngressList) DeepCopy() *IngressList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *IngressList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressLoadBalancerIngress) DeepCopyInto(out *IngressLoadBalancerIngress) {\n\t*out = *in\n\tif in.Ports != nil {\n\t\tin, out := &in.Ports, &out.Ports\n\t\t*out = make([]IngressPortStatus, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressLoadBalancerIngress.\nfunc (in *IngressLoadBalancerIngress) DeepCopy() *IngressLoadBalancerIngress {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressLoadBalancerIngress)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressLoadBalancerStatus) DeepCopyInto(out *IngressLoadBalancerStatus) {\n\t*out = *in\n\tif in.Ingress != nil {\n\t\tin, out := &in.Ingress, &out.Ingress\n\t\t*out = make([]IngressLoadBalancerIngress, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressLoadBalancerStatus.\nfunc (in *IngressLoadBalancerStatus) DeepCopy() *IngressLoadBalancerStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressLoadBalancerStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressPortStatus) DeepCopyInto(out *IngressPortStatus) {\n\t*out = *in\n\tif in.Error != nil {\n\t\tin, out := &in.Error, &out.Error\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressPortStatus.\nfunc (in *IngressPortStatus) DeepCopy() *IngressPortStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressPortStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressRule) DeepCopyInto(out *IngressRule) {\n\t*out = *in\n\tin.IngressRuleValue.DeepCopyInto(&out.IngressRuleValue)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressRule.\nfunc (in *IngressRule) DeepCopy() *IngressRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressRuleValue) DeepCopyInto(out *IngressRuleValue) {\n\t*out = *in\n\tif in.HTTP != nil {\n\t\tin, out := &in.HTTP, &out.HTTP\n\t\t*out = new(HTTPIngressRuleValue)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressRuleValue.\nfunc (in *IngressRuleValue) DeepCopy() *IngressRuleValue {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressRuleValue)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressSpec) DeepCopyInto(out *IngressSpec) {\n\t*out = *in\n\tif in.IngressClassName != nil {\n\t\tin, out := &in.IngressClassName, &out.IngressClassName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.Backend != nil {\n\t\tin, out := &in.Backend, &out.Backend\n\t\t*out = new(IngressBackend)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.TLS != nil {\n\t\tin, out := &in.TLS, &out.TLS\n\t\t*out = make([]IngressTLS, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Rules != nil {\n\t\tin, out := &in.Rules, &out.Rules\n\t\t*out = make([]IngressRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressSpec.\nfunc (in *IngressSpec) DeepCopy() *IngressSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressStatus) DeepCopyInto(out *IngressStatus) {\n\t*out = *in\n\tin.LoadBalancer.DeepCopyInto(&out.LoadBalancer)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressStatus.\nfunc (in *IngressStatus) DeepCopy() *IngressStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *IngressTLS) DeepCopyInto(out *IngressTLS) {\n\t*out = *in\n\tif in.Hosts != nil {\n\t\tin, out := &in.Hosts, &out.Hosts\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressTLS.\nfunc (in *IngressTLS) DeepCopy() *IngressTLS {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(IngressTLS)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ParentReference) DeepCopyInto(out *ParentReference) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParentReference.\nfunc (in *ParentReference) DeepCopy() *ParentReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ParentReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ServiceCIDR) DeepCopyInto(out *ServiceCIDR) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceCIDR.\nfunc (in *ServiceCIDR) DeepCopy() *ServiceCIDR {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ServiceCIDR)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ServiceCIDR) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ServiceCIDRList) DeepCopyInto(out *ServiceCIDRList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ServiceCIDR, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceCIDRList.\nfunc (in *ServiceCIDRList) DeepCopy() *ServiceCIDRList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ServiceCIDRList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ServiceCIDRList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ServiceCIDRSpec) DeepCopyInto(out *ServiceCIDRSpec) {\n\t*out = *in\n\tif in.CIDRs != nil {\n\t\tin, out := &in.CIDRs, &out.CIDRs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceCIDRSpec.\nfunc (in *ServiceCIDRSpec) DeepCopy() *ServiceCIDRSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ServiceCIDRSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ServiceCIDRStatus) DeepCopyInto(out *ServiceCIDRStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]metav1.Condition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceCIDRStatus.\nfunc (in *ServiceCIDRStatus) DeepCopy() *ServiceCIDRStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ServiceCIDRStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/networking/v1beta1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *IPAddress) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 31\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *IPAddress) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 34\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *IPAddress) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 37\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *IPAddressList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 31\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *IPAddressList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 34\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *IPAddressList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 37\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *Ingress) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 14\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *Ingress) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *Ingress) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"networking.k8s.io\", Version: \"v1\", Kind: \"Ingress\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *Ingress) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *IngressClass) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 18\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *IngressClass) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *IngressClass) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"networking.k8s.io\", Version: \"v1\", Kind: \"IngressClassList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *IngressClass) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *IngressClassList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 18\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *IngressClassList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *IngressClassList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"networking.k8s.io\", Version: \"v1\", Kind: \"IngressClassList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *IngressClassList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *IngressList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 14\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *IngressList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *IngressList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"networking.k8s.io\", Version: \"v1\", Kind: \"IngressList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *IngressList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ServiceCIDR) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 31\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ServiceCIDR) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 34\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ServiceCIDR) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 37\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ServiceCIDRList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 31\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ServiceCIDRList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 34\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ServiceCIDRList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 37\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1/doc.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n// +groupName=node.k8s.io\n\npackage v1 // import \"k8s.io/api/node/v1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/node/v1/generated.proto\n\npackage v1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\tv11 \"k8s.io/api/core/v1\"\n\tk8s_io_apimachinery_pkg_api_resource \"k8s.io/apimachinery/pkg/api/resource\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *Overhead) Reset()      { *m = Overhead{} }\nfunc (*Overhead) ProtoMessage() {}\nfunc (*Overhead) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_9007436710e7565b, []int{0}\n}\nfunc (m *Overhead) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Overhead) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Overhead) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Overhead.Merge(m, src)\n}\nfunc (m *Overhead) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Overhead) XXX_DiscardUnknown() {\n\txxx_messageInfo_Overhead.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Overhead proto.InternalMessageInfo\n\nfunc (m *RuntimeClass) Reset()      { *m = RuntimeClass{} }\nfunc (*RuntimeClass) ProtoMessage() {}\nfunc (*RuntimeClass) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_9007436710e7565b, []int{1}\n}\nfunc (m *RuntimeClass) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RuntimeClass) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RuntimeClass) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RuntimeClass.Merge(m, src)\n}\nfunc (m *RuntimeClass) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RuntimeClass) XXX_DiscardUnknown() {\n\txxx_messageInfo_RuntimeClass.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RuntimeClass proto.InternalMessageInfo\n\nfunc (m *RuntimeClassList) Reset()      { *m = RuntimeClassList{} }\nfunc (*RuntimeClassList) ProtoMessage() {}\nfunc (*RuntimeClassList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_9007436710e7565b, []int{2}\n}\nfunc (m *RuntimeClassList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RuntimeClassList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RuntimeClassList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RuntimeClassList.Merge(m, src)\n}\nfunc (m *RuntimeClassList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RuntimeClassList) XXX_DiscardUnknown() {\n\txxx_messageInfo_RuntimeClassList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RuntimeClassList proto.InternalMessageInfo\n\nfunc (m *Scheduling) Reset()      { *m = Scheduling{} }\nfunc (*Scheduling) ProtoMessage() {}\nfunc (*Scheduling) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_9007436710e7565b, []int{3}\n}\nfunc (m *Scheduling) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Scheduling) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Scheduling) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Scheduling.Merge(m, src)\n}\nfunc (m *Scheduling) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Scheduling) XXX_DiscardUnknown() {\n\txxx_messageInfo_Scheduling.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Scheduling proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*Overhead)(nil), \"k8s.io.api.node.v1.Overhead\")\n\tproto.RegisterMapType((k8s_io_api_core_v1.ResourceList)(nil), \"k8s.io.api.node.v1.Overhead.PodFixedEntry\")\n\tproto.RegisterType((*RuntimeClass)(nil), \"k8s.io.api.node.v1.RuntimeClass\")\n\tproto.RegisterType((*RuntimeClassList)(nil), \"k8s.io.api.node.v1.RuntimeClassList\")\n\tproto.RegisterType((*Scheduling)(nil), \"k8s.io.api.node.v1.Scheduling\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.node.v1.Scheduling.NodeSelectorEntry\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/node/v1/generated.proto\", fileDescriptor_9007436710e7565b)\n}\n\nvar fileDescriptor_9007436710e7565b = []byte{\n\t// 643 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0x4f, 0x6f, 0xd3, 0x4e,\n\t0x10, 0xcd, 0xa6, 0xbf, 0xaa, 0xe9, 0x26, 0xfd, 0x51, 0x96, 0x1e, 0xa2, 0x08, 0x39, 0x51, 0x4e,\n\t0x05, 0xa9, 0xeb, 0xb6, 0x42, 0xa8, 0xe2, 0x82, 0x64, 0x68, 0x05, 0x12, 0x14, 0x70, 0xe1, 0x82,\n\t0x38, 0xb0, 0xb5, 0x17, 0x67, 0x9b, 0xd8, 0x1b, 0xd9, 0xeb, 0x88, 0xdc, 0x10, 0x17, 0x24, 0x4e,\n\t0xfd, 0x2e, 0x1c, 0xf8, 0x0a, 0x15, 0xa7, 0x1e, 0x7b, 0x6a, 0xa9, 0xf9, 0x16, 0x9c, 0xd0, 0xae,\n\t0xff, 0x64, 0x83, 0x43, 0x28, 0x37, 0xef, 0xec, 0x7b, 0x6f, 0x66, 0xde, 0xec, 0x18, 0x76, 0xfb,\n\t0x3b, 0x11, 0x66, 0xdc, 0x24, 0x43, 0x66, 0x06, 0xdc, 0xa5, 0xe6, 0x68, 0xcb, 0xf4, 0x68, 0x40,\n\t0x43, 0x22, 0xa8, 0x8b, 0x87, 0x21, 0x17, 0x1c, 0xa1, 0x14, 0x83, 0xc9, 0x90, 0x61, 0x89, 0xc1,\n\t0xa3, 0xad, 0xd6, 0x86, 0xc7, 0x44, 0x2f, 0x3e, 0xc4, 0x0e, 0xf7, 0x4d, 0x8f, 0x7b, 0xdc, 0x54,\n\t0xd0, 0xc3, 0xf8, 0x9d, 0x3a, 0xa9, 0x83, 0xfa, 0x4a, 0x25, 0x5a, 0x7a, 0x1a, 0x87, 0x87, 0xb3,\n\t0xd2, 0xb4, 0xee, 0x4c, 0x30, 0x3e, 0x71, 0x7a, 0x2c, 0xa0, 0xe1, 0xd8, 0x1c, 0xf6, 0x3d, 0x45,\n\t0x0a, 0x69, 0xc4, 0xe3, 0xd0, 0xa1, 0xff, 0xc4, 0x8a, 0x4c, 0x9f, 0x0a, 0x32, 0x2b, 0x97, 0xf9,\n\t0x27, 0x56, 0x18, 0x07, 0x82, 0xf9, 0xe5, 0x34, 0x77, 0xff, 0x46, 0x88, 0x9c, 0x1e, 0xf5, 0xc9,\n\t0xef, 0xbc, 0xee, 0xb7, 0x2a, 0xac, 0x3d, 0x1b, 0xd1, 0xb0, 0x47, 0x89, 0x8b, 0x4e, 0x01, 0xac,\n\t0x0d, 0xb9, 0xbb, 0xc7, 0xde, 0x53, 0xb7, 0x09, 0x3a, 0x0b, 0xeb, 0xf5, 0xed, 0xdb, 0xb8, 0x6c,\n\t0x2e, 0xce, 0x09, 0xf8, 0x79, 0x06, 0xde, 0x0d, 0x44, 0x38, 0xb6, 0x3e, 0x81, 0x93, 0xf3, 0x76,\n\t0x25, 0x39, 0x6f, 0xd7, 0xf2, 0xf8, 0xcf, 0xf3, 0x76, 0xbb, 0xec, 0x2c, 0xb6, 0x33, 0xb3, 0x9e,\n\t0xb0, 0x48, 0x7c, 0xbc, 0x98, 0x0b, 0xd9, 0x27, 0x3e, 0xfd, 0x7c, 0xd1, 0xde, 0xb8, 0x8a, 0xf7,\n\t0xf8, 0x45, 0x4c, 0x02, 0xc1, 0xc4, 0xd8, 0x2e, 0xba, 0x68, 0xf5, 0xe1, 0xca, 0x54, 0x91, 0x68,\n\t0x15, 0x2e, 0xf4, 0xe9, 0xb8, 0x09, 0x3a, 0x60, 0x7d, 0xd9, 0x96, 0x9f, 0xe8, 0x21, 0x5c, 0x1c,\n\t0x91, 0x41, 0x4c, 0x9b, 0xd5, 0x0e, 0x58, 0xaf, 0x6f, 0x63, 0xad, 0xe3, 0x22, 0x17, 0x1e, 0xf6,\n\t0x3d, 0x65, 0x41, 0x39, 0x57, 0x4a, 0xbe, 0x57, 0xdd, 0x01, 0xdd, 0x2f, 0x55, 0xd8, 0xb0, 0x53,\n\t0xbf, 0x1f, 0x0c, 0x48, 0x14, 0xa1, 0xb7, 0xb0, 0x26, 0x27, 0xec, 0x12, 0x41, 0x54, 0xc6, 0xfa,\n\t0xf6, 0xe6, 0x3c, 0xf5, 0x08, 0x4b, 0xb4, 0x72, 0xf8, 0xf0, 0x88, 0x3a, 0xe2, 0x29, 0x15, 0xc4,\n\t0x42, 0x99, 0xa9, 0x70, 0x12, 0xb3, 0x0b, 0x55, 0x74, 0x0b, 0x2e, 0xf5, 0x48, 0xe0, 0x0e, 0x68,\n\t0xa8, 0xca, 0x5f, 0xb6, 0xae, 0x65, 0xf0, 0xa5, 0x47, 0x69, 0xd8, 0xce, 0xef, 0xd1, 0x1e, 0xac,\n\t0xf1, 0x6c, 0x70, 0xcd, 0x05, 0x55, 0xcc, 0xcd, 0x79, 0xc3, 0xb5, 0x1a, 0x72, 0x92, 0xf9, 0xc9,\n\t0x2e, 0xb8, 0x68, 0x1f, 0x42, 0xf9, 0x98, 0xdc, 0x78, 0xc0, 0x02, 0xaf, 0xf9, 0x9f, 0x52, 0x32,\n\t0x66, 0x29, 0x1d, 0x14, 0x28, 0xeb, 0x7f, 0xd9, 0xc0, 0xe4, 0x6c, 0x6b, 0x0a, 0xdd, 0xaf, 0x00,\n\t0xae, 0xea, 0xae, 0xc9, 0x57, 0x81, 0xde, 0x94, 0x9c, 0xc3, 0x57, 0x73, 0x4e, 0xb2, 0x95, 0x6f,\n\t0xab, 0xf9, 0x63, 0xcc, 0x23, 0x9a, 0x6b, 0xbb, 0x70, 0x91, 0x09, 0xea, 0x47, 0xcd, 0xaa, 0x7a,\n\t0xe4, 0x9d, 0x59, 0xd5, 0xeb, 0x25, 0x59, 0x2b, 0x99, 0xd8, 0xe2, 0x63, 0x49, 0xb3, 0x53, 0x76,\n\t0xf7, 0xb8, 0x0a, 0xb5, 0xa6, 0xd0, 0x11, 0x6c, 0x48, 0xf2, 0x01, 0x1d, 0x50, 0x47, 0xf0, 0x30,\n\t0xdb, 0xa0, 0xcd, 0xf9, 0xd6, 0xe0, 0x7d, 0x8d, 0x92, 0xee, 0xd1, 0x5a, 0x96, 0xac, 0xa1, 0x5f,\n\t0xd9, 0x53, 0xda, 0xe8, 0x15, 0xac, 0x0b, 0x3e, 0x90, 0xab, 0xcc, 0x78, 0x90, 0xf7, 0x31, 0x35,\n\t0x05, 0xb9, 0x49, 0x32, 0xd5, 0xcb, 0x02, 0x66, 0xdd, 0xc8, 0x84, 0xeb, 0x93, 0x58, 0x64, 0xeb,\n\t0x3a, 0xad, 0xfb, 0xf0, 0x7a, 0xa9, 0x9e, 0x19, 0x2b, 0xb3, 0xa6, 0xaf, 0xcc, 0xb2, 0xb6, 0x02,\n\t0xd6, 0xce, 0xc9, 0xa5, 0x51, 0x39, 0xbd, 0x34, 0x2a, 0x67, 0x97, 0x46, 0xe5, 0x43, 0x62, 0x80,\n\t0x93, 0xc4, 0x00, 0xa7, 0x89, 0x01, 0xce, 0x12, 0x03, 0x7c, 0x4f, 0x0c, 0x70, 0xfc, 0xc3, 0xa8,\n\t0xbc, 0x46, 0xe5, 0xbf, 0xfa, 0xaf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd3, 0x3f, 0x9c, 0xd0, 0xea,\n\t0x05, 0x00, 0x00,\n}\n\nfunc (m *Overhead) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Overhead) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Overhead) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.PodFixed) > 0 {\n\t\tkeysForPodFixed := make([]string, 0, len(m.PodFixed))\n\t\tfor k := range m.PodFixed {\n\t\t\tkeysForPodFixed = append(keysForPodFixed, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForPodFixed)\n\t\tfor iNdEx := len(keysForPodFixed) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.PodFixed[k8s_io_api_core_v1.ResourceName(keysForPodFixed[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := ((*resource.Quantity)(&v)).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForPodFixed[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForPodFixed[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForPodFixed[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RuntimeClass) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RuntimeClass) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RuntimeClass) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Scheduling != nil {\n\t\t{\n\t\t\tsize, err := m.Scheduling.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Overhead != nil {\n\t\t{\n\t\t\tsize, err := m.Overhead.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti -= len(m.Handler)\n\tcopy(dAtA[i:], m.Handler)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Handler)))\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RuntimeClassList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RuntimeClassList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RuntimeClassList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Scheduling) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Scheduling) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Scheduling) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Tolerations) > 0 {\n\t\tfor iNdEx := len(m.Tolerations) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Tolerations[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.NodeSelector) > 0 {\n\t\tkeysForNodeSelector := make([]string, 0, len(m.NodeSelector))\n\t\tfor k := range m.NodeSelector {\n\t\t\tkeysForNodeSelector = append(keysForNodeSelector, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForNodeSelector)\n\t\tfor iNdEx := len(keysForNodeSelector) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.NodeSelector[string(keysForNodeSelector[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForNodeSelector[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForNodeSelector[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForNodeSelector[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *Overhead) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.PodFixed) > 0 {\n\t\tfor k, v := range m.PodFixed {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = ((*resource.Quantity)(&v)).Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *RuntimeClass) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Handler)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Overhead != nil {\n\t\tl = m.Overhead.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Scheduling != nil {\n\t\tl = m.Scheduling.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *RuntimeClassList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *Scheduling) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.NodeSelector) > 0 {\n\t\tfor k, v := range m.NodeSelector {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.Tolerations) > 0 {\n\t\tfor _, e := range m.Tolerations {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *Overhead) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForPodFixed := make([]string, 0, len(this.PodFixed))\n\tfor k := range this.PodFixed {\n\t\tkeysForPodFixed = append(keysForPodFixed, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForPodFixed)\n\tmapStringForPodFixed := \"k8s_io_api_core_v1.ResourceList{\"\n\tfor _, k := range keysForPodFixed {\n\t\tmapStringForPodFixed += fmt.Sprintf(\"%v: %v,\", k, this.PodFixed[k8s_io_api_core_v1.ResourceName(k)])\n\t}\n\tmapStringForPodFixed += \"}\"\n\ts := strings.Join([]string{`&Overhead{`,\n\t\t`PodFixed:` + mapStringForPodFixed + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RuntimeClass) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RuntimeClass{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Handler:` + fmt.Sprintf(\"%v\", this.Handler) + `,`,\n\t\t`Overhead:` + strings.Replace(this.Overhead.String(), \"Overhead\", \"Overhead\", 1) + `,`,\n\t\t`Scheduling:` + strings.Replace(this.Scheduling.String(), \"Scheduling\", \"Scheduling\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RuntimeClassList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]RuntimeClass{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"RuntimeClass\", \"RuntimeClass\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&RuntimeClassList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Scheduling) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForTolerations := \"[]Toleration{\"\n\tfor _, f := range this.Tolerations {\n\t\trepeatedStringForTolerations += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForTolerations += \"}\"\n\tkeysForNodeSelector := make([]string, 0, len(this.NodeSelector))\n\tfor k := range this.NodeSelector {\n\t\tkeysForNodeSelector = append(keysForNodeSelector, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForNodeSelector)\n\tmapStringForNodeSelector := \"map[string]string{\"\n\tfor _, k := range keysForNodeSelector {\n\t\tmapStringForNodeSelector += fmt.Sprintf(\"%v: %v,\", k, this.NodeSelector[k])\n\t}\n\tmapStringForNodeSelector += \"}\"\n\ts := strings.Join([]string{`&Scheduling{`,\n\t\t`NodeSelector:` + mapStringForNodeSelector + `,`,\n\t\t`Tolerations:` + repeatedStringForTolerations + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *Overhead) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Overhead: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Overhead: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodFixed\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.PodFixed == nil {\n\t\t\t\tm.PodFixed = make(k8s_io_api_core_v1.ResourceList)\n\t\t\t}\n\t\t\tvar mapkey k8s_io_api_core_v1.ResourceName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.PodFixed[k8s_io_api_core_v1.ResourceName(mapkey)] = ((k8s_io_apimachinery_pkg_api_resource.Quantity)(*mapvalue))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RuntimeClass) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RuntimeClass: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RuntimeClass: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Handler\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Handler = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Overhead\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Overhead == nil {\n\t\t\t\tm.Overhead = &Overhead{}\n\t\t\t}\n\t\t\tif err := m.Overhead.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Scheduling\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Scheduling == nil {\n\t\t\t\tm.Scheduling = &Scheduling{}\n\t\t\t}\n\t\t\tif err := m.Scheduling.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RuntimeClassList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RuntimeClassList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RuntimeClassList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, RuntimeClass{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Scheduling) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Scheduling: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Scheduling: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NodeSelector == nil {\n\t\t\t\tm.NodeSelector = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.NodeSelector[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Tolerations\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Tolerations = append(m.Tolerations, v11.Toleration{})\n\t\t\tif err := m.Tolerations[len(m.Tolerations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.node.v1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/api/resource/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/node/v1\";\n\n// Overhead structure represents the resource overhead associated with running a pod.\nmessage Overhead {\n  // podFixed represents the fixed resource overhead associated with running a pod.\n  // +optional\n  map<string, .k8s.io.apimachinery.pkg.api.resource.Quantity> podFixed = 1;\n}\n\n// RuntimeClass defines a class of container runtime supported in the cluster.\n// The RuntimeClass is used to determine which container runtime is used to run\n// all containers in a pod. RuntimeClasses are manually defined by a\n// user or cluster provisioner, and referenced in the PodSpec. The Kubelet is\n// responsible for resolving the RuntimeClassName reference before running the\n// pod.  For more details, see\n// https://kubernetes.io/docs/concepts/containers/runtime-class/\nmessage RuntimeClass {\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // handler specifies the underlying runtime and configuration that the CRI\n  // implementation will use to handle pods of this class. The possible values\n  // are specific to the node & CRI configuration.  It is assumed that all\n  // handlers are available on every node, and handlers of the same name are\n  // equivalent on every node.\n  // For example, a handler called \"runc\" might specify that the runc OCI\n  // runtime (using native Linux containers) will be used to run the containers\n  // in a pod.\n  // The Handler must be lowercase, conform to the DNS Label (RFC 1123) requirements,\n  // and is immutable.\n  optional string handler = 2;\n\n  // overhead represents the resource overhead associated with running a pod for a\n  // given RuntimeClass. For more details, see\n  //  https://kubernetes.io/docs/concepts/scheduling-eviction/pod-overhead/\n  // +optional\n  optional Overhead overhead = 3;\n\n  // scheduling holds the scheduling constraints to ensure that pods running\n  // with this RuntimeClass are scheduled to nodes that support it.\n  // If scheduling is nil, this RuntimeClass is assumed to be supported by all\n  // nodes.\n  // +optional\n  optional Scheduling scheduling = 4;\n}\n\n// RuntimeClassList is a list of RuntimeClass objects.\nmessage RuntimeClassList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is a list of schema objects.\n  repeated RuntimeClass items = 2;\n}\n\n// Scheduling specifies the scheduling constraints for nodes supporting a\n// RuntimeClass.\nmessage Scheduling {\n  // nodeSelector lists labels that must be present on nodes that support this\n  // RuntimeClass. Pods using this RuntimeClass can only be scheduled to a\n  // node matched by this selector. The RuntimeClass nodeSelector is merged\n  // with a pod's existing nodeSelector. Any conflicts will cause the pod to\n  // be rejected in admission.\n  // +optional\n  // +mapType=atomic\n  map<string, string> nodeSelector = 1;\n\n  // tolerations are appended (excluding duplicates) to pods running with this\n  // RuntimeClass during admission, effectively unioning the set of nodes\n  // tolerated by the pod and the RuntimeClass.\n  // +optional\n  // +listType=atomic\n  repeated .k8s.io.api.core.v1.Toleration tolerations = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1/register.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"node.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// SchemeBuilder is the scheme builder with scheme init functions to run for this API package\n\tSchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)\n\t// AddToScheme is a common registration function for mapping packaged scoped group & version keys to a scheme\n\tAddToScheme = SchemeBuilder.AddToScheme\n)\n\n// addKnownTypes adds the list of known types to api.Scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&RuntimeClass{},\n\t\t&RuntimeClassList{},\n\t)\n\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1/types.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.20\n\n// RuntimeClass defines a class of container runtime supported in the cluster.\n// The RuntimeClass is used to determine which container runtime is used to run\n// all containers in a pod. RuntimeClasses are manually defined by a\n// user or cluster provisioner, and referenced in the PodSpec. The Kubelet is\n// responsible for resolving the RuntimeClassName reference before running the\n// pod.  For more details, see\n// https://kubernetes.io/docs/concepts/containers/runtime-class/\ntype RuntimeClass struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// handler specifies the underlying runtime and configuration that the CRI\n\t// implementation will use to handle pods of this class. The possible values\n\t// are specific to the node & CRI configuration.  It is assumed that all\n\t// handlers are available on every node, and handlers of the same name are\n\t// equivalent on every node.\n\t// For example, a handler called \"runc\" might specify that the runc OCI\n\t// runtime (using native Linux containers) will be used to run the containers\n\t// in a pod.\n\t// The Handler must be lowercase, conform to the DNS Label (RFC 1123) requirements,\n\t// and is immutable.\n\tHandler string `json:\"handler\" protobuf:\"bytes,2,opt,name=handler\"`\n\n\t// overhead represents the resource overhead associated with running a pod for a\n\t// given RuntimeClass. For more details, see\n\t//  https://kubernetes.io/docs/concepts/scheduling-eviction/pod-overhead/\n\t// +optional\n\tOverhead *Overhead `json:\"overhead,omitempty\" protobuf:\"bytes,3,opt,name=overhead\"`\n\n\t// scheduling holds the scheduling constraints to ensure that pods running\n\t// with this RuntimeClass are scheduled to nodes that support it.\n\t// If scheduling is nil, this RuntimeClass is assumed to be supported by all\n\t// nodes.\n\t// +optional\n\tScheduling *Scheduling `json:\"scheduling,omitempty\" protobuf:\"bytes,4,opt,name=scheduling\"`\n}\n\n// Overhead structure represents the resource overhead associated with running a pod.\ntype Overhead struct {\n\t// podFixed represents the fixed resource overhead associated with running a pod.\n\t// +optional\n\tPodFixed corev1.ResourceList `json:\"podFixed,omitempty\" protobuf:\"bytes,1,opt,name=podFixed,casttype=k8s.io/api/core/v1.ResourceList,castkey=k8s.io/api/core/v1.ResourceName,castvalue=k8s.io/apimachinery/pkg/api/resource.Quantity\"`\n}\n\n// Scheduling specifies the scheduling constraints for nodes supporting a\n// RuntimeClass.\ntype Scheduling struct {\n\t// nodeSelector lists labels that must be present on nodes that support this\n\t// RuntimeClass. Pods using this RuntimeClass can only be scheduled to a\n\t// node matched by this selector. The RuntimeClass nodeSelector is merged\n\t// with a pod's existing nodeSelector. Any conflicts will cause the pod to\n\t// be rejected in admission.\n\t// +optional\n\t// +mapType=atomic\n\tNodeSelector map[string]string `json:\"nodeSelector,omitempty\" protobuf:\"bytes,1,opt,name=nodeSelector\"`\n\n\t// tolerations are appended (excluding duplicates) to pods running with this\n\t// RuntimeClass during admission, effectively unioning the set of nodes\n\t// tolerated by the pod and the RuntimeClass.\n\t// +optional\n\t// +listType=atomic\n\tTolerations []corev1.Toleration `json:\"tolerations,omitempty\" protobuf:\"bytes,2,rep,name=tolerations\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.20\n\n// RuntimeClassList is a list of RuntimeClass objects.\ntype RuntimeClassList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is a list of schema objects.\n\tItems []RuntimeClass `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_Overhead = map[string]string{\n\t\"\":         \"Overhead structure represents the resource overhead associated with running a pod.\",\n\t\"podFixed\": \"podFixed represents the fixed resource overhead associated with running a pod.\",\n}\n\nfunc (Overhead) SwaggerDoc() map[string]string {\n\treturn map_Overhead\n}\n\nvar map_RuntimeClass = map[string]string{\n\t\"\":           \"RuntimeClass defines a class of container runtime supported in the cluster. The RuntimeClass is used to determine which container runtime is used to run all containers in a pod. RuntimeClasses are manually defined by a user or cluster provisioner, and referenced in the PodSpec. The Kubelet is responsible for resolving the RuntimeClassName reference before running the pod.  For more details, see https://kubernetes.io/docs/concepts/containers/runtime-class/\",\n\t\"metadata\":   \"More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"handler\":    \"handler specifies the underlying runtime and configuration that the CRI implementation will use to handle pods of this class. The possible values are specific to the node & CRI configuration.  It is assumed that all handlers are available on every node, and handlers of the same name are equivalent on every node. For example, a handler called \\\"runc\\\" might specify that the runc OCI runtime (using native Linux containers) will be used to run the containers in a pod. The Handler must be lowercase, conform to the DNS Label (RFC 1123) requirements, and is immutable.\",\n\t\"overhead\":   \"overhead represents the resource overhead associated with running a pod for a given RuntimeClass. For more details, see\\n https://kubernetes.io/docs/concepts/scheduling-eviction/pod-overhead/\",\n\t\"scheduling\": \"scheduling holds the scheduling constraints to ensure that pods running with this RuntimeClass are scheduled to nodes that support it. If scheduling is nil, this RuntimeClass is assumed to be supported by all nodes.\",\n}\n\nfunc (RuntimeClass) SwaggerDoc() map[string]string {\n\treturn map_RuntimeClass\n}\n\nvar map_RuntimeClassList = map[string]string{\n\t\"\":         \"RuntimeClassList is a list of RuntimeClass objects.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is a list of schema objects.\",\n}\n\nfunc (RuntimeClassList) SwaggerDoc() map[string]string {\n\treturn map_RuntimeClassList\n}\n\nvar map_Scheduling = map[string]string{\n\t\"\":             \"Scheduling specifies the scheduling constraints for nodes supporting a RuntimeClass.\",\n\t\"nodeSelector\": \"nodeSelector lists labels that must be present on nodes that support this RuntimeClass. Pods using this RuntimeClass can only be scheduled to a node matched by this selector. The RuntimeClass nodeSelector is merged with a pod's existing nodeSelector. Any conflicts will cause the pod to be rejected in admission.\",\n\t\"tolerations\":  \"tolerations are appended (excluding duplicates) to pods running with this RuntimeClass during admission, effectively unioning the set of nodes tolerated by the pod and the RuntimeClass.\",\n}\n\nfunc (Scheduling) SwaggerDoc() map[string]string {\n\treturn map_Scheduling\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Overhead) DeepCopyInto(out *Overhead) {\n\t*out = *in\n\tif in.PodFixed != nil {\n\t\tin, out := &in.PodFixed, &out.PodFixed\n\t\t*out = make(corev1.ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Overhead.\nfunc (in *Overhead) DeepCopy() *Overhead {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Overhead)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RuntimeClass) DeepCopyInto(out *RuntimeClass) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Overhead != nil {\n\t\tin, out := &in.Overhead, &out.Overhead\n\t\t*out = new(Overhead)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Scheduling != nil {\n\t\tin, out := &in.Scheduling, &out.Scheduling\n\t\t*out = new(Scheduling)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RuntimeClass.\nfunc (in *RuntimeClass) DeepCopy() *RuntimeClass {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RuntimeClass)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *RuntimeClass) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RuntimeClassList) DeepCopyInto(out *RuntimeClassList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]RuntimeClass, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RuntimeClassList.\nfunc (in *RuntimeClassList) DeepCopy() *RuntimeClassList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RuntimeClassList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *RuntimeClassList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Scheduling) DeepCopyInto(out *Scheduling) {\n\t*out = *in\n\tif in.NodeSelector != nil {\n\t\tin, out := &in.NodeSelector, &out.NodeSelector\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.Tolerations != nil {\n\t\tin, out := &in.Tolerations, &out.Tolerations\n\t\t*out = make([]corev1.Toleration, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Scheduling.\nfunc (in *Scheduling) DeepCopy() *Scheduling {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Scheduling)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *RuntimeClass) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 20\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *RuntimeClassList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 20\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1alpha1/doc.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n\n// +groupName=node.k8s.io\n\npackage v1alpha1 // import \"k8s.io/api/node/v1alpha1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1alpha1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/node/v1alpha1/generated.proto\n\npackage v1alpha1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\tv11 \"k8s.io/api/core/v1\"\n\tk8s_io_apimachinery_pkg_api_resource \"k8s.io/apimachinery/pkg/api/resource\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *Overhead) Reset()      { *m = Overhead{} }\nfunc (*Overhead) ProtoMessage() {}\nfunc (*Overhead) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8fee97bf5273e47, []int{0}\n}\nfunc (m *Overhead) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Overhead) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Overhead) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Overhead.Merge(m, src)\n}\nfunc (m *Overhead) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Overhead) XXX_DiscardUnknown() {\n\txxx_messageInfo_Overhead.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Overhead proto.InternalMessageInfo\n\nfunc (m *RuntimeClass) Reset()      { *m = RuntimeClass{} }\nfunc (*RuntimeClass) ProtoMessage() {}\nfunc (*RuntimeClass) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8fee97bf5273e47, []int{1}\n}\nfunc (m *RuntimeClass) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RuntimeClass) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RuntimeClass) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RuntimeClass.Merge(m, src)\n}\nfunc (m *RuntimeClass) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RuntimeClass) XXX_DiscardUnknown() {\n\txxx_messageInfo_RuntimeClass.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RuntimeClass proto.InternalMessageInfo\n\nfunc (m *RuntimeClassList) Reset()      { *m = RuntimeClassList{} }\nfunc (*RuntimeClassList) ProtoMessage() {}\nfunc (*RuntimeClassList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8fee97bf5273e47, []int{2}\n}\nfunc (m *RuntimeClassList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RuntimeClassList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RuntimeClassList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RuntimeClassList.Merge(m, src)\n}\nfunc (m *RuntimeClassList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RuntimeClassList) XXX_DiscardUnknown() {\n\txxx_messageInfo_RuntimeClassList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RuntimeClassList proto.InternalMessageInfo\n\nfunc (m *RuntimeClassSpec) Reset()      { *m = RuntimeClassSpec{} }\nfunc (*RuntimeClassSpec) ProtoMessage() {}\nfunc (*RuntimeClassSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8fee97bf5273e47, []int{3}\n}\nfunc (m *RuntimeClassSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RuntimeClassSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RuntimeClassSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RuntimeClassSpec.Merge(m, src)\n}\nfunc (m *RuntimeClassSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RuntimeClassSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_RuntimeClassSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RuntimeClassSpec proto.InternalMessageInfo\n\nfunc (m *Scheduling) Reset()      { *m = Scheduling{} }\nfunc (*Scheduling) ProtoMessage() {}\nfunc (*Scheduling) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8fee97bf5273e47, []int{4}\n}\nfunc (m *Scheduling) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Scheduling) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Scheduling) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Scheduling.Merge(m, src)\n}\nfunc (m *Scheduling) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Scheduling) XXX_DiscardUnknown() {\n\txxx_messageInfo_Scheduling.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Scheduling proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*Overhead)(nil), \"k8s.io.api.node.v1alpha1.Overhead\")\n\tproto.RegisterMapType((k8s_io_api_core_v1.ResourceList)(nil), \"k8s.io.api.node.v1alpha1.Overhead.PodFixedEntry\")\n\tproto.RegisterType((*RuntimeClass)(nil), \"k8s.io.api.node.v1alpha1.RuntimeClass\")\n\tproto.RegisterType((*RuntimeClassList)(nil), \"k8s.io.api.node.v1alpha1.RuntimeClassList\")\n\tproto.RegisterType((*RuntimeClassSpec)(nil), \"k8s.io.api.node.v1alpha1.RuntimeClassSpec\")\n\tproto.RegisterType((*Scheduling)(nil), \"k8s.io.api.node.v1alpha1.Scheduling\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.node.v1alpha1.Scheduling.NodeSelectorEntry\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/node/v1alpha1/generated.proto\", fileDescriptor_a8fee97bf5273e47)\n}\n\nvar fileDescriptor_a8fee97bf5273e47 = []byte{\n\t// 683 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x55, 0x3d, 0x6f, 0xd3, 0x4c,\n\t0x1c, 0xcf, 0xa5, 0xad, 0x94, 0x5e, 0xd2, 0xaa, 0x8f, 0x9f, 0x0a, 0x45, 0x19, 0x9c, 0xca, 0x42,\n\t0x28, 0x42, 0xea, 0x99, 0x56, 0xa8, 0xaa, 0x18, 0x8a, 0x64, 0x5e, 0x04, 0xa2, 0xb4, 0x70, 0x2d,\n\t0x0b, 0x62, 0xe0, 0x6a, 0x1f, 0x8e, 0x89, 0xed, 0xb3, 0xec, 0x73, 0x44, 0x36, 0xc4, 0x82, 0xc4,\n\t0xc4, 0xc4, 0xb7, 0x81, 0xb9, 0x63, 0x27, 0xd4, 0xa9, 0xa5, 0xe1, 0x3b, 0x30, 0x30, 0xa1, 0xb3,\n\t0xcf, 0xc9, 0x25, 0x69, 0x68, 0xd8, 0x7c, 0x77, 0xbf, 0x97, 0xff, 0x6b, 0x02, 0x5b, 0x9d, 0xed,\n\t0x04, 0x79, 0xcc, 0x24, 0x91, 0x67, 0x86, 0xcc, 0xa1, 0x66, 0x77, 0x83, 0xf8, 0x51, 0x9b, 0x6c,\n\t0x98, 0x2e, 0x0d, 0x69, 0x4c, 0x38, 0x75, 0x50, 0x14, 0x33, 0xce, 0xb4, 0x7a, 0x8e, 0x44, 0x24,\n\t0xf2, 0x90, 0x40, 0xa2, 0x02, 0xd9, 0x58, 0x77, 0x3d, 0xde, 0x4e, 0x8f, 0x90, 0xcd, 0x02, 0xd3,\n\t0x65, 0x2e, 0x33, 0x33, 0xc2, 0x51, 0xfa, 0x26, 0x3b, 0x65, 0x87, 0xec, 0x2b, 0x17, 0x6a, 0x18,\n\t0x8a, 0xa5, 0xcd, 0x62, 0x61, 0x39, 0x6e, 0xd6, 0xb8, 0x3d, 0xc4, 0x04, 0xc4, 0x6e, 0x7b, 0x21,\n\t0x8d, 0x7b, 0x66, 0xd4, 0x71, 0x33, 0x52, 0x4c, 0x13, 0x96, 0xc6, 0x36, 0xfd, 0x27, 0x56, 0x62,\n\t0x06, 0x94, 0x93, 0xcb, 0xbc, 0xcc, 0x69, 0xac, 0x38, 0x0d, 0xb9, 0x17, 0x4c, 0xda, 0x6c, 0x5d,\n\t0x45, 0x48, 0xec, 0x36, 0x0d, 0xc8, 0x38, 0xcf, 0x38, 0x29, 0xc3, 0xca, 0x7e, 0x97, 0xc6, 0x6d,\n\t0x4a, 0x1c, 0xed, 0x3b, 0x80, 0x95, 0x88, 0x39, 0x0f, 0xbd, 0x77, 0xd4, 0xa9, 0x83, 0xb5, 0xb9,\n\t0x56, 0x75, 0xf3, 0x16, 0x9a, 0x56, 0x62, 0x54, 0xd0, 0xd0, 0x33, 0x49, 0x79, 0x10, 0xf2, 0xb8,\n\t0x67, 0x7d, 0x04, 0xc7, 0x67, 0xcd, 0x52, 0xff, 0xac, 0x59, 0x29, 0xee, 0x7f, 0x9f, 0x35, 0x9b,\n\t0x93, 0xf5, 0x45, 0x58, 0x96, 0x6c, 0xd7, 0x4b, 0xf8, 0x87, 0xf3, 0xbf, 0x42, 0xf6, 0x48, 0x40,\n\t0x3f, 0x9d, 0x37, 0xd7, 0x67, 0xe9, 0x00, 0x7a, 0x9e, 0x92, 0x90, 0x7b, 0xbc, 0x87, 0x07, 0xb9,\n\t0x34, 0x3a, 0x70, 0x69, 0x24, 0x48, 0x6d, 0x05, 0xce, 0x75, 0x68, 0xaf, 0x0e, 0xd6, 0x40, 0x6b,\n\t0x11, 0x8b, 0x4f, 0xed, 0x3e, 0x5c, 0xe8, 0x12, 0x3f, 0xa5, 0xf5, 0xf2, 0x1a, 0x68, 0x55, 0x37,\n\t0x91, 0x92, 0xf7, 0xc0, 0x0b, 0x45, 0x1d, 0x37, 0x2b, 0xc4, 0xa4, 0x57, 0x4e, 0xbe, 0x53, 0xde,\n\t0x06, 0xc6, 0x37, 0x00, 0x6b, 0x38, 0xaf, 0xfa, 0x3d, 0x9f, 0x24, 0x89, 0xf6, 0x1a, 0x56, 0x44,\n\t0x9f, 0x1d, 0xc2, 0x49, 0xe6, 0x38, 0x5a, 0xd5, 0x09, 0xf5, 0x04, 0x09, 0x34, 0xea, 0x6e, 0xa0,\n\t0xfd, 0xa3, 0xb7, 0xd4, 0xe6, 0x4f, 0x29, 0x27, 0x96, 0x26, 0x8b, 0x0a, 0x87, 0x77, 0x78, 0xa0,\n\t0xaa, 0xed, 0xc2, 0xf9, 0x24, 0xa2, 0xb6, 0x8c, 0xfd, 0xe6, 0xf4, 0x9e, 0xa9, 0x71, 0x1d, 0x44,\n\t0xd4, 0xb6, 0x6a, 0x52, 0x77, 0x5e, 0x9c, 0x70, 0xa6, 0x62, 0x7c, 0x05, 0x70, 0x45, 0x05, 0x8a,\n\t0x06, 0x69, 0xaf, 0x26, 0x92, 0x40, 0xb3, 0x25, 0x21, 0xd8, 0x59, 0x0a, 0x2b, 0xc5, 0x5c, 0x14,\n\t0x37, 0x4a, 0x02, 0x4f, 0xe0, 0x82, 0xc7, 0x69, 0x90, 0xd4, 0xcb, 0xd9, 0xd4, 0xdd, 0x98, 0x2d,\n\t0x03, 0x6b, 0x49, 0x4a, 0x2e, 0x3c, 0x16, 0x64, 0x9c, 0x6b, 0x18, 0xbf, 0xc6, 0xe2, 0x17, 0xa9,\n\t0x69, 0x3b, 0x70, 0x59, 0xae, 0xc2, 0x23, 0x12, 0x3a, 0x3e, 0x8d, 0xf3, 0xe6, 0x5b, 0xd7, 0xa4,\n\t0xc4, 0x32, 0x1e, 0x79, 0xc5, 0x63, 0x68, 0x6d, 0x17, 0x56, 0x98, 0x1c, 0x78, 0x59, 0x66, 0xe3,\n\t0xea, 0xd5, 0xb0, 0x6a, 0x22, 0xdf, 0xe2, 0x84, 0x07, 0x0a, 0xda, 0x21, 0x84, 0x62, 0x21, 0x9d,\n\t0xd4, 0xf7, 0x42, 0xb7, 0x3e, 0x97, 0xe9, 0x5d, 0x9f, 0xae, 0x77, 0x30, 0xc0, 0x5a, 0xcb, 0x62,\n\t0x08, 0x86, 0x67, 0xac, 0xe8, 0x18, 0x5f, 0xca, 0x50, 0x79, 0xd2, 0x22, 0x58, 0x13, 0x32, 0x07,\n\t0xd4, 0xa7, 0x36, 0x67, 0xb1, 0xdc, 0xe8, 0xad, 0x59, 0x6c, 0xd0, 0x9e, 0x42, 0xcc, 0xf7, 0x7a,\n\t0x55, 0x16, 0xaa, 0xa6, 0x3e, 0xe1, 0x11, 0x07, 0xed, 0x05, 0xac, 0x72, 0xe6, 0x8b, 0x1f, 0x18,\n\t0x8f, 0x85, 0x45, 0x33, 0x75, 0xd5, 0x50, 0x6c, 0xb6, 0x98, 0x8a, 0xc3, 0x01, 0xcc, 0xfa, 0x5f,\n\t0x0a, 0x57, 0x87, 0x77, 0x09, 0x56, 0x75, 0x1a, 0x77, 0xe1, 0x7f, 0x13, 0xf1, 0x5c, 0xb2, 0xc2,\n\t0xab, 0xea, 0x0a, 0x2f, 0x2a, 0x2b, 0x69, 0xed, 0x1c, 0x5f, 0xe8, 0xa5, 0x93, 0x0b, 0xbd, 0x74,\n\t0x7a, 0xa1, 0x97, 0xde, 0xf7, 0x75, 0x70, 0xdc, 0xd7, 0xc1, 0x49, 0x5f, 0x07, 0xa7, 0x7d, 0x1d,\n\t0xfc, 0xe8, 0xeb, 0xe0, 0xf3, 0x4f, 0xbd, 0xf4, 0xb2, 0x3e, 0xed, 0x7f, 0xe7, 0x4f, 0x00, 0x00,\n\t0x00, 0xff, 0xff, 0xa7, 0x9b, 0x7f, 0x45, 0x92, 0x06, 0x00, 0x00,\n}\n\nfunc (m *Overhead) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Overhead) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Overhead) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.PodFixed) > 0 {\n\t\tkeysForPodFixed := make([]string, 0, len(m.PodFixed))\n\t\tfor k := range m.PodFixed {\n\t\t\tkeysForPodFixed = append(keysForPodFixed, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForPodFixed)\n\t\tfor iNdEx := len(keysForPodFixed) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.PodFixed[k8s_io_api_core_v1.ResourceName(keysForPodFixed[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := ((*resource.Quantity)(&v)).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForPodFixed[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForPodFixed[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForPodFixed[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RuntimeClass) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RuntimeClass) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RuntimeClass) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RuntimeClassList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RuntimeClassList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RuntimeClassList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RuntimeClassSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RuntimeClassSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RuntimeClassSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Scheduling != nil {\n\t\t{\n\t\t\tsize, err := m.Scheduling.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Overhead != nil {\n\t\t{\n\t\t\tsize, err := m.Overhead.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.RuntimeHandler)\n\tcopy(dAtA[i:], m.RuntimeHandler)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.RuntimeHandler)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Scheduling) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Scheduling) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Scheduling) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Tolerations) > 0 {\n\t\tfor iNdEx := len(m.Tolerations) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Tolerations[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.NodeSelector) > 0 {\n\t\tkeysForNodeSelector := make([]string, 0, len(m.NodeSelector))\n\t\tfor k := range m.NodeSelector {\n\t\t\tkeysForNodeSelector = append(keysForNodeSelector, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForNodeSelector)\n\t\tfor iNdEx := len(keysForNodeSelector) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.NodeSelector[string(keysForNodeSelector[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForNodeSelector[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForNodeSelector[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForNodeSelector[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *Overhead) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.PodFixed) > 0 {\n\t\tfor k, v := range m.PodFixed {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = ((*resource.Quantity)(&v)).Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *RuntimeClass) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *RuntimeClassList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *RuntimeClassSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.RuntimeHandler)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Overhead != nil {\n\t\tl = m.Overhead.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Scheduling != nil {\n\t\tl = m.Scheduling.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *Scheduling) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.NodeSelector) > 0 {\n\t\tfor k, v := range m.NodeSelector {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.Tolerations) > 0 {\n\t\tfor _, e := range m.Tolerations {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *Overhead) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForPodFixed := make([]string, 0, len(this.PodFixed))\n\tfor k := range this.PodFixed {\n\t\tkeysForPodFixed = append(keysForPodFixed, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForPodFixed)\n\tmapStringForPodFixed := \"k8s_io_api_core_v1.ResourceList{\"\n\tfor _, k := range keysForPodFixed {\n\t\tmapStringForPodFixed += fmt.Sprintf(\"%v: %v,\", k, this.PodFixed[k8s_io_api_core_v1.ResourceName(k)])\n\t}\n\tmapStringForPodFixed += \"}\"\n\ts := strings.Join([]string{`&Overhead{`,\n\t\t`PodFixed:` + mapStringForPodFixed + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RuntimeClass) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RuntimeClass{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"RuntimeClassSpec\", \"RuntimeClassSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RuntimeClassList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]RuntimeClass{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"RuntimeClass\", \"RuntimeClass\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&RuntimeClassList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RuntimeClassSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RuntimeClassSpec{`,\n\t\t`RuntimeHandler:` + fmt.Sprintf(\"%v\", this.RuntimeHandler) + `,`,\n\t\t`Overhead:` + strings.Replace(this.Overhead.String(), \"Overhead\", \"Overhead\", 1) + `,`,\n\t\t`Scheduling:` + strings.Replace(this.Scheduling.String(), \"Scheduling\", \"Scheduling\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Scheduling) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForTolerations := \"[]Toleration{\"\n\tfor _, f := range this.Tolerations {\n\t\trepeatedStringForTolerations += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForTolerations += \"}\"\n\tkeysForNodeSelector := make([]string, 0, len(this.NodeSelector))\n\tfor k := range this.NodeSelector {\n\t\tkeysForNodeSelector = append(keysForNodeSelector, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForNodeSelector)\n\tmapStringForNodeSelector := \"map[string]string{\"\n\tfor _, k := range keysForNodeSelector {\n\t\tmapStringForNodeSelector += fmt.Sprintf(\"%v: %v,\", k, this.NodeSelector[k])\n\t}\n\tmapStringForNodeSelector += \"}\"\n\ts := strings.Join([]string{`&Scheduling{`,\n\t\t`NodeSelector:` + mapStringForNodeSelector + `,`,\n\t\t`Tolerations:` + repeatedStringForTolerations + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *Overhead) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Overhead: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Overhead: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodFixed\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.PodFixed == nil {\n\t\t\t\tm.PodFixed = make(k8s_io_api_core_v1.ResourceList)\n\t\t\t}\n\t\t\tvar mapkey k8s_io_api_core_v1.ResourceName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.PodFixed[k8s_io_api_core_v1.ResourceName(mapkey)] = ((k8s_io_apimachinery_pkg_api_resource.Quantity)(*mapvalue))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RuntimeClass) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RuntimeClass: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RuntimeClass: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RuntimeClassList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RuntimeClassList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RuntimeClassList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, RuntimeClass{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RuntimeClassSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RuntimeClassSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RuntimeClassSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RuntimeHandler\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.RuntimeHandler = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Overhead\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Overhead == nil {\n\t\t\t\tm.Overhead = &Overhead{}\n\t\t\t}\n\t\t\tif err := m.Overhead.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Scheduling\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Scheduling == nil {\n\t\t\t\tm.Scheduling = &Scheduling{}\n\t\t\t}\n\t\t\tif err := m.Scheduling.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Scheduling) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Scheduling: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Scheduling: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NodeSelector == nil {\n\t\t\t\tm.NodeSelector = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.NodeSelector[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Tolerations\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Tolerations = append(m.Tolerations, v11.Toleration{})\n\t\t\tif err := m.Tolerations[len(m.Tolerations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1alpha1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.node.v1alpha1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/api/resource/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/node/v1alpha1\";\n\n// Overhead structure represents the resource overhead associated with running a pod.\nmessage Overhead {\n  // podFixed represents the fixed resource overhead associated with running a pod.\n  // +optional\n  map<string, .k8s.io.apimachinery.pkg.api.resource.Quantity> podFixed = 1;\n}\n\n// RuntimeClass defines a class of container runtime supported in the cluster.\n// The RuntimeClass is used to determine which container runtime is used to run\n// all containers in a pod. RuntimeClasses are (currently) manually defined by a\n// user or cluster provisioner, and referenced in the PodSpec. The Kubelet is\n// responsible for resolving the RuntimeClassName reference before running the\n// pod.  For more details, see\n// https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class\nmessage RuntimeClass {\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec represents specification of the RuntimeClass\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  optional RuntimeClassSpec spec = 2;\n}\n\n// RuntimeClassList is a list of RuntimeClass objects.\nmessage RuntimeClassList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is a list of schema objects.\n  repeated RuntimeClass items = 2;\n}\n\n// RuntimeClassSpec is a specification of a RuntimeClass. It contains parameters\n// that are required to describe the RuntimeClass to the Container Runtime\n// Interface (CRI) implementation, as well as any other components that need to\n// understand how the pod will be run. The RuntimeClassSpec is immutable.\nmessage RuntimeClassSpec {\n  // runtimeHandler specifies the underlying runtime and configuration that the\n  // CRI implementation will use to handle pods of this class. The possible\n  // values are specific to the node & CRI configuration.  It is assumed that\n  // all handlers are available on every node, and handlers of the same name are\n  // equivalent on every node.\n  // For example, a handler called \"runc\" might specify that the runc OCI\n  // runtime (using native Linux containers) will be used to run the containers\n  // in a pod.\n  // The runtimeHandler must be lowercase, conform to the DNS Label (RFC 1123)\n  // requirements, and is immutable.\n  optional string runtimeHandler = 1;\n\n  // overhead represents the resource overhead associated with running a pod for a\n  // given RuntimeClass. For more details, see\n  // https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md\n  // +optional\n  optional Overhead overhead = 2;\n\n  // scheduling holds the scheduling constraints to ensure that pods running\n  // with this RuntimeClass are scheduled to nodes that support it.\n  // If scheduling is nil, this RuntimeClass is assumed to be supported by all\n  // nodes.\n  // +optional\n  optional Scheduling scheduling = 3;\n}\n\n// Scheduling specifies the scheduling constraints for nodes supporting a\n// RuntimeClass.\nmessage Scheduling {\n  // nodeSelector lists labels that must be present on nodes that support this\n  // RuntimeClass. Pods using this RuntimeClass can only be scheduled to a\n  // node matched by this selector. The RuntimeClass nodeSelector is merged\n  // with a pod's existing nodeSelector. Any conflicts will cause the pod to\n  // be rejected in admission.\n  // +optional\n  // +mapType=atomic\n  map<string, string> nodeSelector = 1;\n\n  // tolerations are appended (excluding duplicates) to pods running with this\n  // RuntimeClass during admission, effectively unioning the set of nodes\n  // tolerated by the pod and the RuntimeClass.\n  // +optional\n  // +listType=atomic\n  repeated .k8s.io.api.core.v1.Toleration tolerations = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1alpha1/register.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"node.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1alpha1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// SchemeBuilder is the scheme builder with scheme init functions to run for this API package\n\tSchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)\n\t// AddToScheme is a common registration function for mapping packaged scoped group & version keys to a scheme\n\tAddToScheme = SchemeBuilder.AddToScheme\n)\n\n// addKnownTypes adds the list of known types to api.Scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&RuntimeClass{},\n\t\t&RuntimeClassList{},\n\t)\n\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1alpha1/types.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// RuntimeClass defines a class of container runtime supported in the cluster.\n// The RuntimeClass is used to determine which container runtime is used to run\n// all containers in a pod. RuntimeClasses are (currently) manually defined by a\n// user or cluster provisioner, and referenced in the PodSpec. The Kubelet is\n// responsible for resolving the RuntimeClassName reference before running the\n// pod.  For more details, see\n// https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class\ntype RuntimeClass struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec represents specification of the RuntimeClass\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\tSpec RuntimeClassSpec `json:\"spec\" protobuf:\"bytes,2,name=spec\"`\n}\n\n// RuntimeClassSpec is a specification of a RuntimeClass. It contains parameters\n// that are required to describe the RuntimeClass to the Container Runtime\n// Interface (CRI) implementation, as well as any other components that need to\n// understand how the pod will be run. The RuntimeClassSpec is immutable.\ntype RuntimeClassSpec struct {\n\t// runtimeHandler specifies the underlying runtime and configuration that the\n\t// CRI implementation will use to handle pods of this class. The possible\n\t// values are specific to the node & CRI configuration.  It is assumed that\n\t// all handlers are available on every node, and handlers of the same name are\n\t// equivalent on every node.\n\t// For example, a handler called \"runc\" might specify that the runc OCI\n\t// runtime (using native Linux containers) will be used to run the containers\n\t// in a pod.\n\t// The runtimeHandler must be lowercase, conform to the DNS Label (RFC 1123)\n\t// requirements, and is immutable.\n\tRuntimeHandler string `json:\"runtimeHandler\" protobuf:\"bytes,1,opt,name=runtimeHandler\"`\n\n\t// overhead represents the resource overhead associated with running a pod for a\n\t// given RuntimeClass. For more details, see\n\t// https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md\n\t// +optional\n\tOverhead *Overhead `json:\"overhead,omitempty\" protobuf:\"bytes,2,opt,name=overhead\"`\n\n\t// scheduling holds the scheduling constraints to ensure that pods running\n\t// with this RuntimeClass are scheduled to nodes that support it.\n\t// If scheduling is nil, this RuntimeClass is assumed to be supported by all\n\t// nodes.\n\t// +optional\n\tScheduling *Scheduling `json:\"scheduling,omitempty\" protobuf:\"bytes,3,opt,name=scheduling\"`\n}\n\n// Overhead structure represents the resource overhead associated with running a pod.\ntype Overhead struct {\n\t// podFixed represents the fixed resource overhead associated with running a pod.\n\t// +optional\n\tPodFixed corev1.ResourceList `json:\"podFixed,omitempty\" protobuf:\"bytes,1,opt,name=podFixed,casttype=k8s.io/api/core/v1.ResourceList,castkey=k8s.io/api/core/v1.ResourceName,castvalue=k8s.io/apimachinery/pkg/api/resource.Quantity\"`\n}\n\n// Scheduling specifies the scheduling constraints for nodes supporting a\n// RuntimeClass.\ntype Scheduling struct {\n\t// nodeSelector lists labels that must be present on nodes that support this\n\t// RuntimeClass. Pods using this RuntimeClass can only be scheduled to a\n\t// node matched by this selector. The RuntimeClass nodeSelector is merged\n\t// with a pod's existing nodeSelector. Any conflicts will cause the pod to\n\t// be rejected in admission.\n\t// +optional\n\t// +mapType=atomic\n\tNodeSelector map[string]string `json:\"nodeSelector,omitempty\" protobuf:\"bytes,1,opt,name=nodeSelector\"`\n\n\t// tolerations are appended (excluding duplicates) to pods running with this\n\t// RuntimeClass during admission, effectively unioning the set of nodes\n\t// tolerated by the pod and the RuntimeClass.\n\t// +optional\n\t// +listType=atomic\n\tTolerations []corev1.Toleration `json:\"tolerations,omitempty\" protobuf:\"bytes,2,rep,name=tolerations\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// RuntimeClassList is a list of RuntimeClass objects.\ntype RuntimeClassList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is a list of schema objects.\n\tItems []RuntimeClass `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1alpha1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_Overhead = map[string]string{\n\t\"\":         \"Overhead structure represents the resource overhead associated with running a pod.\",\n\t\"podFixed\": \"podFixed represents the fixed resource overhead associated with running a pod.\",\n}\n\nfunc (Overhead) SwaggerDoc() map[string]string {\n\treturn map_Overhead\n}\n\nvar map_RuntimeClass = map[string]string{\n\t\"\":         \"RuntimeClass defines a class of container runtime supported in the cluster. The RuntimeClass is used to determine which container runtime is used to run all containers in a pod. RuntimeClasses are (currently) manually defined by a user or cluster provisioner, and referenced in the PodSpec. The Kubelet is responsible for resolving the RuntimeClassName reference before running the pod.  For more details, see https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class\",\n\t\"metadata\": \"More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec represents specification of the RuntimeClass More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n}\n\nfunc (RuntimeClass) SwaggerDoc() map[string]string {\n\treturn map_RuntimeClass\n}\n\nvar map_RuntimeClassList = map[string]string{\n\t\"\":         \"RuntimeClassList is a list of RuntimeClass objects.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is a list of schema objects.\",\n}\n\nfunc (RuntimeClassList) SwaggerDoc() map[string]string {\n\treturn map_RuntimeClassList\n}\n\nvar map_RuntimeClassSpec = map[string]string{\n\t\"\":               \"RuntimeClassSpec is a specification of a RuntimeClass. It contains parameters that are required to describe the RuntimeClass to the Container Runtime Interface (CRI) implementation, as well as any other components that need to understand how the pod will be run. The RuntimeClassSpec is immutable.\",\n\t\"runtimeHandler\": \"runtimeHandler specifies the underlying runtime and configuration that the CRI implementation will use to handle pods of this class. The possible values are specific to the node & CRI configuration.  It is assumed that all handlers are available on every node, and handlers of the same name are equivalent on every node. For example, a handler called \\\"runc\\\" might specify that the runc OCI runtime (using native Linux containers) will be used to run the containers in a pod. The runtimeHandler must be lowercase, conform to the DNS Label (RFC 1123) requirements, and is immutable.\",\n\t\"overhead\":       \"overhead represents the resource overhead associated with running a pod for a given RuntimeClass. For more details, see https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md\",\n\t\"scheduling\":     \"scheduling holds the scheduling constraints to ensure that pods running with this RuntimeClass are scheduled to nodes that support it. If scheduling is nil, this RuntimeClass is assumed to be supported by all nodes.\",\n}\n\nfunc (RuntimeClassSpec) SwaggerDoc() map[string]string {\n\treturn map_RuntimeClassSpec\n}\n\nvar map_Scheduling = map[string]string{\n\t\"\":             \"Scheduling specifies the scheduling constraints for nodes supporting a RuntimeClass.\",\n\t\"nodeSelector\": \"nodeSelector lists labels that must be present on nodes that support this RuntimeClass. Pods using this RuntimeClass can only be scheduled to a node matched by this selector. The RuntimeClass nodeSelector is merged with a pod's existing nodeSelector. Any conflicts will cause the pod to be rejected in admission.\",\n\t\"tolerations\":  \"tolerations are appended (excluding duplicates) to pods running with this RuntimeClass during admission, effectively unioning the set of nodes tolerated by the pod and the RuntimeClass.\",\n}\n\nfunc (Scheduling) SwaggerDoc() map[string]string {\n\treturn map_Scheduling\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1alpha1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Overhead) DeepCopyInto(out *Overhead) {\n\t*out = *in\n\tif in.PodFixed != nil {\n\t\tin, out := &in.PodFixed, &out.PodFixed\n\t\t*out = make(v1.ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Overhead.\nfunc (in *Overhead) DeepCopy() *Overhead {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Overhead)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RuntimeClass) DeepCopyInto(out *RuntimeClass) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RuntimeClass.\nfunc (in *RuntimeClass) DeepCopy() *RuntimeClass {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RuntimeClass)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *RuntimeClass) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RuntimeClassList) DeepCopyInto(out *RuntimeClassList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]RuntimeClass, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RuntimeClassList.\nfunc (in *RuntimeClassList) DeepCopy() *RuntimeClassList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RuntimeClassList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *RuntimeClassList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RuntimeClassSpec) DeepCopyInto(out *RuntimeClassSpec) {\n\t*out = *in\n\tif in.Overhead != nil {\n\t\tin, out := &in.Overhead, &out.Overhead\n\t\t*out = new(Overhead)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Scheduling != nil {\n\t\tin, out := &in.Scheduling, &out.Scheduling\n\t\t*out = new(Scheduling)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RuntimeClassSpec.\nfunc (in *RuntimeClassSpec) DeepCopy() *RuntimeClassSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RuntimeClassSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Scheduling) DeepCopyInto(out *Scheduling) {\n\t*out = *in\n\tif in.NodeSelector != nil {\n\t\tin, out := &in.NodeSelector, &out.NodeSelector\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.Tolerations != nil {\n\t\tin, out := &in.Tolerations, &out.Tolerations\n\t\t*out = make([]v1.Toleration, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Scheduling.\nfunc (in *Scheduling) DeepCopy() *Scheduling {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Scheduling)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1beta1/doc.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\n// +groupName=node.k8s.io\n\npackage v1beta1 // import \"k8s.io/api/node/v1beta1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1beta1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/node/v1beta1/generated.proto\n\npackage v1beta1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\tv11 \"k8s.io/api/core/v1\"\n\tk8s_io_apimachinery_pkg_api_resource \"k8s.io/apimachinery/pkg/api/resource\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *Overhead) Reset()      { *m = Overhead{} }\nfunc (*Overhead) ProtoMessage() {}\nfunc (*Overhead) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_73bb62abe8438af4, []int{0}\n}\nfunc (m *Overhead) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Overhead) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Overhead) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Overhead.Merge(m, src)\n}\nfunc (m *Overhead) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Overhead) XXX_DiscardUnknown() {\n\txxx_messageInfo_Overhead.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Overhead proto.InternalMessageInfo\n\nfunc (m *RuntimeClass) Reset()      { *m = RuntimeClass{} }\nfunc (*RuntimeClass) ProtoMessage() {}\nfunc (*RuntimeClass) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_73bb62abe8438af4, []int{1}\n}\nfunc (m *RuntimeClass) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RuntimeClass) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RuntimeClass) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RuntimeClass.Merge(m, src)\n}\nfunc (m *RuntimeClass) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RuntimeClass) XXX_DiscardUnknown() {\n\txxx_messageInfo_RuntimeClass.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RuntimeClass proto.InternalMessageInfo\n\nfunc (m *RuntimeClassList) Reset()      { *m = RuntimeClassList{} }\nfunc (*RuntimeClassList) ProtoMessage() {}\nfunc (*RuntimeClassList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_73bb62abe8438af4, []int{2}\n}\nfunc (m *RuntimeClassList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RuntimeClassList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RuntimeClassList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RuntimeClassList.Merge(m, src)\n}\nfunc (m *RuntimeClassList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RuntimeClassList) XXX_DiscardUnknown() {\n\txxx_messageInfo_RuntimeClassList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RuntimeClassList proto.InternalMessageInfo\n\nfunc (m *Scheduling) Reset()      { *m = Scheduling{} }\nfunc (*Scheduling) ProtoMessage() {}\nfunc (*Scheduling) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_73bb62abe8438af4, []int{3}\n}\nfunc (m *Scheduling) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Scheduling) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Scheduling) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Scheduling.Merge(m, src)\n}\nfunc (m *Scheduling) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Scheduling) XXX_DiscardUnknown() {\n\txxx_messageInfo_Scheduling.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Scheduling proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*Overhead)(nil), \"k8s.io.api.node.v1beta1.Overhead\")\n\tproto.RegisterMapType((k8s_io_api_core_v1.ResourceList)(nil), \"k8s.io.api.node.v1beta1.Overhead.PodFixedEntry\")\n\tproto.RegisterType((*RuntimeClass)(nil), \"k8s.io.api.node.v1beta1.RuntimeClass\")\n\tproto.RegisterType((*RuntimeClassList)(nil), \"k8s.io.api.node.v1beta1.RuntimeClassList\")\n\tproto.RegisterType((*Scheduling)(nil), \"k8s.io.api.node.v1beta1.Scheduling\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.node.v1beta1.Scheduling.NodeSelectorEntry\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/node/v1beta1/generated.proto\", fileDescriptor_73bb62abe8438af4)\n}\n\nvar fileDescriptor_73bb62abe8438af4 = []byte{\n\t// 654 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0xbb, 0x6f, 0x13, 0x31,\n\t0x18, 0x8f, 0x53, 0xaa, 0xa6, 0x4e, 0x0a, 0xc5, 0x54, 0x6a, 0x94, 0xe1, 0x52, 0x82, 0x10, 0x65,\n\t0xa8, 0x8f, 0x56, 0x80, 0x2a, 0x24, 0x84, 0x74, 0x3c, 0xc4, 0xb3, 0x85, 0x2b, 0x2c, 0x88, 0x01,\n\t0xe7, 0xce, 0x5c, 0x4c, 0x72, 0xe7, 0xe8, 0xce, 0x17, 0x91, 0x0d, 0xb1, 0x20, 0x31, 0xb1, 0xf0,\n\t0xdf, 0xc0, 0xde, 0x8d, 0x2e, 0x48, 0x9d, 0x5a, 0x1a, 0xfe, 0x0b, 0x26, 0x64, 0xdf, 0x23, 0x6e,\n\t0xd3, 0xb4, 0x61, 0x8b, 0x7d, 0xbf, 0xc7, 0xf7, 0xfd, 0x3e, 0x7f, 0x81, 0x57, 0xda, 0xeb, 0x11,\n\t0x66, 0xdc, 0x24, 0x5d, 0x66, 0x06, 0xdc, 0xa5, 0x66, 0x6f, 0xb5, 0x49, 0x05, 0x59, 0x35, 0x3d,\n\t0x1a, 0xd0, 0x90, 0x08, 0xea, 0xe2, 0x6e, 0xc8, 0x05, 0x47, 0x8b, 0x09, 0x10, 0x93, 0x2e, 0xc3,\n\t0x12, 0x88, 0x53, 0x60, 0x6d, 0xc5, 0x63, 0xa2, 0x15, 0x37, 0xb1, 0xc3, 0x7d, 0xd3, 0xe3, 0x1e,\n\t0x37, 0x15, 0xbe, 0x19, 0xbf, 0x53, 0x27, 0x75, 0x50, 0xbf, 0x12, 0x9d, 0x5a, 0x43, 0x33, 0x74,\n\t0x78, 0x28, 0x0d, 0x8f, 0x7a, 0xd5, 0xae, 0x0f, 0x31, 0x3e, 0x71, 0x5a, 0x2c, 0xa0, 0x61, 0xdf,\n\t0xec, 0xb6, 0x3d, 0x45, 0x0a, 0x69, 0xc4, 0xe3, 0xd0, 0xa1, 0xff, 0xc5, 0x8a, 0x4c, 0x9f, 0x0a,\n\t0x72, 0x9c, 0x97, 0x39, 0x8e, 0x15, 0xc6, 0x81, 0x60, 0xfe, 0xa8, 0xcd, 0xcd, 0xd3, 0x08, 0x91,\n\t0xd3, 0xa2, 0x3e, 0x39, 0xca, 0x6b, 0xfc, 0x2c, 0xc2, 0xd2, 0x66, 0x8f, 0x86, 0x2d, 0x4a, 0x5c,\n\t0xf4, 0x0b, 0xc0, 0x52, 0x97, 0xbb, 0x0f, 0xd8, 0x07, 0xea, 0x56, 0xc1, 0xd2, 0xd4, 0x72, 0x79,\n\t0xcd, 0xc4, 0x63, 0x12, 0xc6, 0x19, 0x0b, 0x3f, 0x4f, 0x19, 0xf7, 0x03, 0x11, 0xf6, 0xad, 0xcf,\n\t0x60, 0x7b, 0xaf, 0x5e, 0x18, 0xec, 0xd5, 0x4b, 0xd9, 0xfd, 0xdf, 0xbd, 0x7a, 0x7d, 0x34, 0x5e,\n\t0x6c, 0xa7, 0x89, 0x3d, 0x65, 0x91, 0xf8, 0xb4, 0x7f, 0x22, 0x64, 0x83, 0xf8, 0xf4, 0xcb, 0x7e,\n\t0x7d, 0x65, 0x92, 0x01, 0xe0, 0x17, 0x31, 0x09, 0x04, 0x13, 0x7d, 0x3b, 0x6f, 0xa5, 0xd6, 0x86,\n\t0x73, 0x87, 0x8a, 0x44, 0xf3, 0x70, 0xaa, 0x4d, 0xfb, 0x55, 0xb0, 0x04, 0x96, 0x67, 0x6d, 0xf9,\n\t0x13, 0xdd, 0x83, 0xd3, 0x3d, 0xd2, 0x89, 0x69, 0xb5, 0xb8, 0x04, 0x96, 0xcb, 0x6b, 0x58, 0x6b,\n\t0x3b, 0xf7, 0xc2, 0xdd, 0xb6, 0xa7, 0x72, 0x18, 0xf5, 0x4a, 0xc8, 0xb7, 0x8a, 0xeb, 0xa0, 0xf1,\n\t0xa3, 0x08, 0x2b, 0x76, 0x12, 0xfa, 0xdd, 0x0e, 0x89, 0x22, 0xf4, 0x16, 0x96, 0xe4, 0x98, 0x5d,\n\t0x22, 0x88, 0x72, 0x2c, 0xaf, 0x5d, 0x3b, 0x49, 0x3d, 0xc2, 0x12, 0x8d, 0x7b, 0xab, 0x78, 0xb3,\n\t0xf9, 0x9e, 0x3a, 0xe2, 0x19, 0x15, 0xc4, 0x42, 0x69, 0xa8, 0x70, 0x78, 0x67, 0xe7, 0xaa, 0xe8,\n\t0x2a, 0x9c, 0x69, 0x91, 0xc0, 0xed, 0xd0, 0x50, 0x95, 0x3f, 0x6b, 0x9d, 0x4b, 0xe1, 0x33, 0x0f,\n\t0x93, 0x6b, 0x3b, 0xfb, 0x8e, 0x9e, 0xc0, 0x12, 0x4f, 0x07, 0x57, 0x9d, 0x52, 0xc5, 0x5c, 0x3c,\n\t0x75, 0xc2, 0x56, 0x45, 0x8e, 0x33, 0x3b, 0xd9, 0xb9, 0x00, 0xda, 0x82, 0x50, 0x3e, 0x2b, 0x37,\n\t0xee, 0xb0, 0xc0, 0xab, 0x9e, 0x51, 0x72, 0x97, 0xc6, 0xca, 0x6d, 0xe5, 0x50, 0xeb, 0xac, 0x6c,\n\t0x65, 0x78, 0xb6, 0x35, 0x99, 0xc6, 0x77, 0x00, 0xe7, 0xf5, 0xfc, 0xe4, 0xfb, 0x40, 0x6f, 0x46,\n\t0x32, 0xc4, 0x93, 0x65, 0x28, 0xd9, 0x2a, 0xc1, 0xf9, 0xec, 0x59, 0x66, 0x37, 0x5a, 0x7e, 0x8f,\n\t0xe1, 0x34, 0x13, 0xd4, 0x8f, 0xaa, 0x45, 0xf5, 0xe6, 0x2f, 0x8f, 0x6d, 0x41, 0xaf, 0xcb, 0x9a,\n\t0x4b, 0x15, 0xa7, 0x1f, 0x49, 0xae, 0x9d, 0x48, 0x34, 0xbe, 0x15, 0xa1, 0xd6, 0x19, 0xe2, 0xb0,\n\t0x22, 0x15, 0xb6, 0x68, 0x87, 0x3a, 0x82, 0x87, 0xe9, 0x56, 0xdd, 0x98, 0x20, 0x24, 0xbc, 0xa1,\n\t0xf1, 0x92, 0xdd, 0x5a, 0x48, 0x1d, 0x2b, 0xfa, 0x27, 0xfb, 0x90, 0x01, 0x7a, 0x05, 0xcb, 0x82,\n\t0x77, 0xe4, 0x8e, 0x33, 0x1e, 0x64, 0x1d, 0x19, 0xba, 0x9f, 0xdc, 0x2e, 0x19, 0xcd, 0xcb, 0x1c,\n\t0x66, 0x5d, 0x48, 0x85, 0xcb, 0xc3, 0xbb, 0xc8, 0xd6, 0x75, 0x6a, 0x77, 0xe0, 0xf9, 0x91, 0x7a,\n\t0x8e, 0x59, 0xa3, 0x05, 0x7d, 0x8d, 0x66, 0xb5, 0xb5, 0xb0, 0x6e, 0x6f, 0x1f, 0x18, 0x85, 0x9d,\n\t0x03, 0xa3, 0xb0, 0x7b, 0x60, 0x14, 0x3e, 0x0e, 0x0c, 0xb0, 0x3d, 0x30, 0xc0, 0xce, 0xc0, 0x00,\n\t0xbb, 0x03, 0x03, 0xfc, 0x1e, 0x18, 0xe0, 0xeb, 0x1f, 0xa3, 0xf0, 0x7a, 0x71, 0xcc, 0x1f, 0xff,\n\t0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x7c, 0x67, 0x22, 0x03, 0x12, 0x06, 0x00, 0x00,\n}\n\nfunc (m *Overhead) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Overhead) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Overhead) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.PodFixed) > 0 {\n\t\tkeysForPodFixed := make([]string, 0, len(m.PodFixed))\n\t\tfor k := range m.PodFixed {\n\t\t\tkeysForPodFixed = append(keysForPodFixed, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForPodFixed)\n\t\tfor iNdEx := len(keysForPodFixed) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.PodFixed[k8s_io_api_core_v1.ResourceName(keysForPodFixed[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := ((*resource.Quantity)(&v)).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForPodFixed[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForPodFixed[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForPodFixed[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RuntimeClass) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RuntimeClass) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RuntimeClass) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Scheduling != nil {\n\t\t{\n\t\t\tsize, err := m.Scheduling.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.Overhead != nil {\n\t\t{\n\t\t\tsize, err := m.Overhead.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\ti -= len(m.Handler)\n\tcopy(dAtA[i:], m.Handler)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Handler)))\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RuntimeClassList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RuntimeClassList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RuntimeClassList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Scheduling) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Scheduling) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Scheduling) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Tolerations) > 0 {\n\t\tfor iNdEx := len(m.Tolerations) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Tolerations[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.NodeSelector) > 0 {\n\t\tkeysForNodeSelector := make([]string, 0, len(m.NodeSelector))\n\t\tfor k := range m.NodeSelector {\n\t\t\tkeysForNodeSelector = append(keysForNodeSelector, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForNodeSelector)\n\t\tfor iNdEx := len(keysForNodeSelector) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.NodeSelector[string(keysForNodeSelector[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForNodeSelector[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForNodeSelector[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForNodeSelector[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *Overhead) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.PodFixed) > 0 {\n\t\tfor k, v := range m.PodFixed {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = ((*resource.Quantity)(&v)).Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *RuntimeClass) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Handler)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Overhead != nil {\n\t\tl = m.Overhead.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Scheduling != nil {\n\t\tl = m.Scheduling.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *RuntimeClassList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *Scheduling) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.NodeSelector) > 0 {\n\t\tfor k, v := range m.NodeSelector {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.Tolerations) > 0 {\n\t\tfor _, e := range m.Tolerations {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *Overhead) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForPodFixed := make([]string, 0, len(this.PodFixed))\n\tfor k := range this.PodFixed {\n\t\tkeysForPodFixed = append(keysForPodFixed, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForPodFixed)\n\tmapStringForPodFixed := \"k8s_io_api_core_v1.ResourceList{\"\n\tfor _, k := range keysForPodFixed {\n\t\tmapStringForPodFixed += fmt.Sprintf(\"%v: %v,\", k, this.PodFixed[k8s_io_api_core_v1.ResourceName(k)])\n\t}\n\tmapStringForPodFixed += \"}\"\n\ts := strings.Join([]string{`&Overhead{`,\n\t\t`PodFixed:` + mapStringForPodFixed + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RuntimeClass) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RuntimeClass{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Handler:` + fmt.Sprintf(\"%v\", this.Handler) + `,`,\n\t\t`Overhead:` + strings.Replace(this.Overhead.String(), \"Overhead\", \"Overhead\", 1) + `,`,\n\t\t`Scheduling:` + strings.Replace(this.Scheduling.String(), \"Scheduling\", \"Scheduling\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RuntimeClassList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]RuntimeClass{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"RuntimeClass\", \"RuntimeClass\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&RuntimeClassList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Scheduling) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForTolerations := \"[]Toleration{\"\n\tfor _, f := range this.Tolerations {\n\t\trepeatedStringForTolerations += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForTolerations += \"}\"\n\tkeysForNodeSelector := make([]string, 0, len(this.NodeSelector))\n\tfor k := range this.NodeSelector {\n\t\tkeysForNodeSelector = append(keysForNodeSelector, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForNodeSelector)\n\tmapStringForNodeSelector := \"map[string]string{\"\n\tfor _, k := range keysForNodeSelector {\n\t\tmapStringForNodeSelector += fmt.Sprintf(\"%v: %v,\", k, this.NodeSelector[k])\n\t}\n\tmapStringForNodeSelector += \"}\"\n\ts := strings.Join([]string{`&Scheduling{`,\n\t\t`NodeSelector:` + mapStringForNodeSelector + `,`,\n\t\t`Tolerations:` + repeatedStringForTolerations + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *Overhead) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Overhead: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Overhead: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodFixed\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.PodFixed == nil {\n\t\t\t\tm.PodFixed = make(k8s_io_api_core_v1.ResourceList)\n\t\t\t}\n\t\t\tvar mapkey k8s_io_api_core_v1.ResourceName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.PodFixed[k8s_io_api_core_v1.ResourceName(mapkey)] = ((k8s_io_apimachinery_pkg_api_resource.Quantity)(*mapvalue))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RuntimeClass) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RuntimeClass: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RuntimeClass: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Handler\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Handler = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Overhead\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Overhead == nil {\n\t\t\t\tm.Overhead = &Overhead{}\n\t\t\t}\n\t\t\tif err := m.Overhead.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Scheduling\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Scheduling == nil {\n\t\t\t\tm.Scheduling = &Scheduling{}\n\t\t\t}\n\t\t\tif err := m.Scheduling.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RuntimeClassList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RuntimeClassList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RuntimeClassList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, RuntimeClass{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Scheduling) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Scheduling: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Scheduling: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NodeSelector == nil {\n\t\t\t\tm.NodeSelector = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.NodeSelector[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Tolerations\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Tolerations = append(m.Tolerations, v11.Toleration{})\n\t\t\tif err := m.Tolerations[len(m.Tolerations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1beta1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.node.v1beta1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/api/resource/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/node/v1beta1\";\n\n// Overhead structure represents the resource overhead associated with running a pod.\nmessage Overhead {\n  // podFixed represents the fixed resource overhead associated with running a pod.\n  // +optional\n  map<string, .k8s.io.apimachinery.pkg.api.resource.Quantity> podFixed = 1;\n}\n\n// RuntimeClass defines a class of container runtime supported in the cluster.\n// The RuntimeClass is used to determine which container runtime is used to run\n// all containers in a pod. RuntimeClasses are (currently) manually defined by a\n// user or cluster provisioner, and referenced in the PodSpec. The Kubelet is\n// responsible for resolving the RuntimeClassName reference before running the\n// pod.  For more details, see\n// https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class\nmessage RuntimeClass {\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // handler specifies the underlying runtime and configuration that the CRI\n  // implementation will use to handle pods of this class. The possible values\n  // are specific to the node & CRI configuration.  It is assumed that all\n  // handlers are available on every node, and handlers of the same name are\n  // equivalent on every node.\n  // For example, a handler called \"runc\" might specify that the runc OCI\n  // runtime (using native Linux containers) will be used to run the containers\n  // in a pod.\n  // The handler must be lowercase, conform to the DNS Label (RFC 1123) requirements,\n  // and is immutable.\n  optional string handler = 2;\n\n  // overhead represents the resource overhead associated with running a pod for a\n  // given RuntimeClass. For more details, see\n  // https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md\n  // +optional\n  optional Overhead overhead = 3;\n\n  // scheduling holds the scheduling constraints to ensure that pods running\n  // with this RuntimeClass are scheduled to nodes that support it.\n  // If scheduling is nil, this RuntimeClass is assumed to be supported by all\n  // nodes.\n  // +optional\n  optional Scheduling scheduling = 4;\n}\n\n// RuntimeClassList is a list of RuntimeClass objects.\nmessage RuntimeClassList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is a list of schema objects.\n  repeated RuntimeClass items = 2;\n}\n\n// Scheduling specifies the scheduling constraints for nodes supporting a\n// RuntimeClass.\nmessage Scheduling {\n  // nodeSelector lists labels that must be present on nodes that support this\n  // RuntimeClass. Pods using this RuntimeClass can only be scheduled to a\n  // node matched by this selector. The RuntimeClass nodeSelector is merged\n  // with a pod's existing nodeSelector. Any conflicts will cause the pod to\n  // be rejected in admission.\n  // +optional\n  // +mapType=atomic\n  map<string, string> nodeSelector = 1;\n\n  // tolerations are appended (excluding duplicates) to pods running with this\n  // RuntimeClass during admission, effectively unioning the set of nodes\n  // tolerated by the pod and the RuntimeClass.\n  // +optional\n  // +listType=atomic\n  repeated .k8s.io.api.core.v1.Toleration tolerations = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1beta1/register.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"node.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// SchemeBuilder is the scheme builder with scheme init functions to run for this API package\n\tSchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)\n\t// AddToScheme is a common registration function for mapping packaged scoped group & version keys to a scheme\n\tAddToScheme = SchemeBuilder.AddToScheme\n)\n\n// addKnownTypes adds the list of known types to api.Scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&RuntimeClass{},\n\t\t&RuntimeClassList{},\n\t)\n\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1beta1/types.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.13\n// +k8s:prerelease-lifecycle-gen:deprecated=1.22\n\n// RuntimeClass defines a class of container runtime supported in the cluster.\n// The RuntimeClass is used to determine which container runtime is used to run\n// all containers in a pod. RuntimeClasses are (currently) manually defined by a\n// user or cluster provisioner, and referenced in the PodSpec. The Kubelet is\n// responsible for resolving the RuntimeClassName reference before running the\n// pod.  For more details, see\n// https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class\ntype RuntimeClass struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// handler specifies the underlying runtime and configuration that the CRI\n\t// implementation will use to handle pods of this class. The possible values\n\t// are specific to the node & CRI configuration.  It is assumed that all\n\t// handlers are available on every node, and handlers of the same name are\n\t// equivalent on every node.\n\t// For example, a handler called \"runc\" might specify that the runc OCI\n\t// runtime (using native Linux containers) will be used to run the containers\n\t// in a pod.\n\t// The handler must be lowercase, conform to the DNS Label (RFC 1123) requirements,\n\t// and is immutable.\n\tHandler string `json:\"handler\" protobuf:\"bytes,2,opt,name=handler\"`\n\n\t// overhead represents the resource overhead associated with running a pod for a\n\t// given RuntimeClass. For more details, see\n\t// https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md\n\t// +optional\n\tOverhead *Overhead `json:\"overhead,omitempty\" protobuf:\"bytes,3,opt,name=overhead\"`\n\n\t// scheduling holds the scheduling constraints to ensure that pods running\n\t// with this RuntimeClass are scheduled to nodes that support it.\n\t// If scheduling is nil, this RuntimeClass is assumed to be supported by all\n\t// nodes.\n\t// +optional\n\tScheduling *Scheduling `json:\"scheduling,omitempty\" protobuf:\"bytes,4,opt,name=scheduling\"`\n}\n\n// Overhead structure represents the resource overhead associated with running a pod.\ntype Overhead struct {\n\t// podFixed represents the fixed resource overhead associated with running a pod.\n\t// +optional\n\tPodFixed corev1.ResourceList `json:\"podFixed,omitempty\" protobuf:\"bytes,1,opt,name=podFixed,casttype=k8s.io/api/core/v1.ResourceList,castkey=k8s.io/api/core/v1.ResourceName,castvalue=k8s.io/apimachinery/pkg/api/resource.Quantity\"`\n}\n\n// Scheduling specifies the scheduling constraints for nodes supporting a\n// RuntimeClass.\ntype Scheduling struct {\n\t// nodeSelector lists labels that must be present on nodes that support this\n\t// RuntimeClass. Pods using this RuntimeClass can only be scheduled to a\n\t// node matched by this selector. The RuntimeClass nodeSelector is merged\n\t// with a pod's existing nodeSelector. Any conflicts will cause the pod to\n\t// be rejected in admission.\n\t// +optional\n\t// +mapType=atomic\n\tNodeSelector map[string]string `json:\"nodeSelector,omitempty\" protobuf:\"bytes,1,opt,name=nodeSelector\"`\n\n\t// tolerations are appended (excluding duplicates) to pods running with this\n\t// RuntimeClass during admission, effectively unioning the set of nodes\n\t// tolerated by the pod and the RuntimeClass.\n\t// +optional\n\t// +listType=atomic\n\tTolerations []corev1.Toleration `json:\"tolerations,omitempty\" protobuf:\"bytes,2,rep,name=tolerations\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.13\n// +k8s:prerelease-lifecycle-gen:deprecated=1.22\n\n// RuntimeClassList is a list of RuntimeClass objects.\ntype RuntimeClassList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is a list of schema objects.\n\tItems []RuntimeClass `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1beta1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_Overhead = map[string]string{\n\t\"\":         \"Overhead structure represents the resource overhead associated with running a pod.\",\n\t\"podFixed\": \"podFixed represents the fixed resource overhead associated with running a pod.\",\n}\n\nfunc (Overhead) SwaggerDoc() map[string]string {\n\treturn map_Overhead\n}\n\nvar map_RuntimeClass = map[string]string{\n\t\"\":           \"RuntimeClass defines a class of container runtime supported in the cluster. The RuntimeClass is used to determine which container runtime is used to run all containers in a pod. RuntimeClasses are (currently) manually defined by a user or cluster provisioner, and referenced in the PodSpec. The Kubelet is responsible for resolving the RuntimeClassName reference before running the pod.  For more details, see https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class\",\n\t\"metadata\":   \"More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"handler\":    \"handler specifies the underlying runtime and configuration that the CRI implementation will use to handle pods of this class. The possible values are specific to the node & CRI configuration.  It is assumed that all handlers are available on every node, and handlers of the same name are equivalent on every node. For example, a handler called \\\"runc\\\" might specify that the runc OCI runtime (using native Linux containers) will be used to run the containers in a pod. The handler must be lowercase, conform to the DNS Label (RFC 1123) requirements, and is immutable.\",\n\t\"overhead\":   \"overhead represents the resource overhead associated with running a pod for a given RuntimeClass. For more details, see https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md\",\n\t\"scheduling\": \"scheduling holds the scheduling constraints to ensure that pods running with this RuntimeClass are scheduled to nodes that support it. If scheduling is nil, this RuntimeClass is assumed to be supported by all nodes.\",\n}\n\nfunc (RuntimeClass) SwaggerDoc() map[string]string {\n\treturn map_RuntimeClass\n}\n\nvar map_RuntimeClassList = map[string]string{\n\t\"\":         \"RuntimeClassList is a list of RuntimeClass objects.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is a list of schema objects.\",\n}\n\nfunc (RuntimeClassList) SwaggerDoc() map[string]string {\n\treturn map_RuntimeClassList\n}\n\nvar map_Scheduling = map[string]string{\n\t\"\":             \"Scheduling specifies the scheduling constraints for nodes supporting a RuntimeClass.\",\n\t\"nodeSelector\": \"nodeSelector lists labels that must be present on nodes that support this RuntimeClass. Pods using this RuntimeClass can only be scheduled to a node matched by this selector. The RuntimeClass nodeSelector is merged with a pod's existing nodeSelector. Any conflicts will cause the pod to be rejected in admission.\",\n\t\"tolerations\":  \"tolerations are appended (excluding duplicates) to pods running with this RuntimeClass during admission, effectively unioning the set of nodes tolerated by the pod and the RuntimeClass.\",\n}\n\nfunc (Scheduling) SwaggerDoc() map[string]string {\n\treturn map_Scheduling\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1beta1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Overhead) DeepCopyInto(out *Overhead) {\n\t*out = *in\n\tif in.PodFixed != nil {\n\t\tin, out := &in.PodFixed, &out.PodFixed\n\t\t*out = make(v1.ResourceList, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Overhead.\nfunc (in *Overhead) DeepCopy() *Overhead {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Overhead)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RuntimeClass) DeepCopyInto(out *RuntimeClass) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Overhead != nil {\n\t\tin, out := &in.Overhead, &out.Overhead\n\t\t*out = new(Overhead)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Scheduling != nil {\n\t\tin, out := &in.Scheduling, &out.Scheduling\n\t\t*out = new(Scheduling)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RuntimeClass.\nfunc (in *RuntimeClass) DeepCopy() *RuntimeClass {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RuntimeClass)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *RuntimeClass) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RuntimeClassList) DeepCopyInto(out *RuntimeClassList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]RuntimeClass, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RuntimeClassList.\nfunc (in *RuntimeClassList) DeepCopy() *RuntimeClassList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RuntimeClassList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *RuntimeClassList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Scheduling) DeepCopyInto(out *Scheduling) {\n\t*out = *in\n\tif in.NodeSelector != nil {\n\t\tin, out := &in.NodeSelector, &out.NodeSelector\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.Tolerations != nil {\n\t\tin, out := &in.Tolerations, &out.Tolerations\n\t\t*out = make([]v1.Toleration, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Scheduling.\nfunc (in *Scheduling) DeepCopy() *Scheduling {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Scheduling)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/node/v1beta1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *RuntimeClass) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 13\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *RuntimeClass) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *RuntimeClass) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 25\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *RuntimeClassList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 13\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *RuntimeClassList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *RuntimeClassList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 25\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/policy/v1/doc.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\n// Package policy is for any kind of policy object.  Suitable examples, even if\n// they aren't all here, are PodDisruptionBudget,\n// NetworkPolicy, etc.\npackage v1 // import \"k8s.io/api/policy/v1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/policy/v1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/policy/v1/generated.proto\n\npackage v1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *Eviction) Reset()      { *m = Eviction{} }\nfunc (*Eviction) ProtoMessage() {}\nfunc (*Eviction) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_204bc6fa48ff56f7, []int{0}\n}\nfunc (m *Eviction) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Eviction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Eviction) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Eviction.Merge(m, src)\n}\nfunc (m *Eviction) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Eviction) XXX_DiscardUnknown() {\n\txxx_messageInfo_Eviction.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Eviction proto.InternalMessageInfo\n\nfunc (m *PodDisruptionBudget) Reset()      { *m = PodDisruptionBudget{} }\nfunc (*PodDisruptionBudget) ProtoMessage() {}\nfunc (*PodDisruptionBudget) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_204bc6fa48ff56f7, []int{1}\n}\nfunc (m *PodDisruptionBudget) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodDisruptionBudget) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodDisruptionBudget) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodDisruptionBudget.Merge(m, src)\n}\nfunc (m *PodDisruptionBudget) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodDisruptionBudget) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodDisruptionBudget.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodDisruptionBudget proto.InternalMessageInfo\n\nfunc (m *PodDisruptionBudgetList) Reset()      { *m = PodDisruptionBudgetList{} }\nfunc (*PodDisruptionBudgetList) ProtoMessage() {}\nfunc (*PodDisruptionBudgetList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_204bc6fa48ff56f7, []int{2}\n}\nfunc (m *PodDisruptionBudgetList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodDisruptionBudgetList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodDisruptionBudgetList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodDisruptionBudgetList.Merge(m, src)\n}\nfunc (m *PodDisruptionBudgetList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodDisruptionBudgetList) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodDisruptionBudgetList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodDisruptionBudgetList proto.InternalMessageInfo\n\nfunc (m *PodDisruptionBudgetSpec) Reset()      { *m = PodDisruptionBudgetSpec{} }\nfunc (*PodDisruptionBudgetSpec) ProtoMessage() {}\nfunc (*PodDisruptionBudgetSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_204bc6fa48ff56f7, []int{3}\n}\nfunc (m *PodDisruptionBudgetSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodDisruptionBudgetSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodDisruptionBudgetSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodDisruptionBudgetSpec.Merge(m, src)\n}\nfunc (m *PodDisruptionBudgetSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodDisruptionBudgetSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodDisruptionBudgetSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodDisruptionBudgetSpec proto.InternalMessageInfo\n\nfunc (m *PodDisruptionBudgetStatus) Reset()      { *m = PodDisruptionBudgetStatus{} }\nfunc (*PodDisruptionBudgetStatus) ProtoMessage() {}\nfunc (*PodDisruptionBudgetStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_204bc6fa48ff56f7, []int{4}\n}\nfunc (m *PodDisruptionBudgetStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodDisruptionBudgetStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodDisruptionBudgetStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodDisruptionBudgetStatus.Merge(m, src)\n}\nfunc (m *PodDisruptionBudgetStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodDisruptionBudgetStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodDisruptionBudgetStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodDisruptionBudgetStatus proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*Eviction)(nil), \"k8s.io.api.policy.v1.Eviction\")\n\tproto.RegisterType((*PodDisruptionBudget)(nil), \"k8s.io.api.policy.v1.PodDisruptionBudget\")\n\tproto.RegisterType((*PodDisruptionBudgetList)(nil), \"k8s.io.api.policy.v1.PodDisruptionBudgetList\")\n\tproto.RegisterType((*PodDisruptionBudgetSpec)(nil), \"k8s.io.api.policy.v1.PodDisruptionBudgetSpec\")\n\tproto.RegisterType((*PodDisruptionBudgetStatus)(nil), \"k8s.io.api.policy.v1.PodDisruptionBudgetStatus\")\n\tproto.RegisterMapType((map[string]v1.Time)(nil), \"k8s.io.api.policy.v1.PodDisruptionBudgetStatus.DisruptedPodsEntry\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/policy/v1/generated.proto\", fileDescriptor_204bc6fa48ff56f7)\n}\n\nvar fileDescriptor_204bc6fa48ff56f7 = []byte{\n\t// 840 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x96, 0x4d, 0x8f, 0xdb, 0x44,\n\t0x18, 0xc7, 0xe3, 0xcd, 0x66, 0xd9, 0x4e, 0x93, 0x68, 0x19, 0x16, 0x58, 0x72, 0x70, 0xaa, 0x88,\n\t0xc3, 0x82, 0xd4, 0x31, 0xdb, 0x22, 0xb4, 0xea, 0x01, 0xb5, 0x6e, 0x56, 0x50, 0xd4, 0x25, 0xab,\n\t0xd9, 0x56, 0x48, 0x08, 0x24, 0x26, 0xf6, 0xd3, 0x64, 0x58, 0xdb, 0x63, 0x79, 0xc6, 0xa1, 0x39,\n\t0xd1, 0x8f, 0xc0, 0x57, 0xe0, 0xa3, 0x70, 0x62, 0x8f, 0xe5, 0x56, 0x71, 0x88, 0x58, 0xf3, 0x2d,\n\t0x38, 0x21, 0x8f, 0x9d, 0x17, 0x27, 0x0e, 0xcd, 0x72, 0xe8, 0xcd, 0xf3, 0xcc, 0xf3, 0xff, 0x3d,\n\t0xf3, 0xbc, 0xcc, 0x24, 0xe8, 0xc3, 0x8b, 0x63, 0x49, 0xb8, 0xb0, 0x58, 0xc8, 0xad, 0x50, 0x78,\n\t0xdc, 0x19, 0x5b, 0xa3, 0x23, 0x6b, 0x00, 0x01, 0x44, 0x4c, 0x81, 0x4b, 0xc2, 0x48, 0x28, 0x81,\n\t0xf7, 0x33, 0x2f, 0xc2, 0x42, 0x4e, 0x32, 0x2f, 0x32, 0x3a, 0x6a, 0xdd, 0x1e, 0x70, 0x35, 0x8c,\n\t0xfb, 0xc4, 0x11, 0xbe, 0x35, 0x10, 0x03, 0x61, 0x69, 0xe7, 0x7e, 0xfc, 0x4c, 0xaf, 0xf4, 0x42,\n\t0x7f, 0x65, 0x90, 0xd6, 0xa7, 0xf3, 0x50, 0x3e, 0x73, 0x86, 0x3c, 0x80, 0x68, 0x6c, 0x85, 0x17,\n\t0x83, 0xd4, 0x20, 0x2d, 0x1f, 0x14, 0x2b, 0x09, 0xdd, 0xb2, 0xd6, 0xa9, 0xa2, 0x38, 0x50, 0xdc,\n\t0x87, 0x15, 0xc1, 0x67, 0xaf, 0x13, 0x48, 0x67, 0x08, 0x3e, 0x5b, 0xd1, 0xdd, 0x5d, 0xa7, 0x8b,\n\t0x15, 0xf7, 0x2c, 0x1e, 0x28, 0xa9, 0xa2, 0x65, 0x51, 0xe7, 0x4f, 0x03, 0xed, 0x9e, 0x8c, 0xb8,\n\t0xa3, 0xb8, 0x08, 0xf0, 0x0f, 0x68, 0x37, 0xcd, 0xc2, 0x65, 0x8a, 0x1d, 0x18, 0xb7, 0x8c, 0xc3,\n\t0x9b, 0x77, 0x3e, 0x21, 0xf3, 0xc2, 0xcd, 0xa0, 0x24, 0xbc, 0x18, 0xa4, 0x06, 0x49, 0x52, 0x6f,\n\t0x32, 0x3a, 0x22, 0xbd, 0xfe, 0x8f, 0xe0, 0xa8, 0x53, 0x50, 0xcc, 0xc6, 0x97, 0x93, 0x76, 0x25,\n\t0x99, 0xb4, 0xd1, 0xdc, 0x46, 0x67, 0x54, 0xec, 0xa1, 0x86, 0x0b, 0x1e, 0x28, 0xe8, 0x85, 0x69,\n\t0x44, 0x79, 0xb0, 0xa5, 0xc3, 0xdc, 0xdd, 0x2c, 0x4c, 0x77, 0x51, 0x6a, 0xbf, 0x9d, 0x4c, 0xda,\n\t0x8d, 0x82, 0x89, 0x16, 0xe1, 0x9d, 0x5f, 0xb7, 0xd0, 0x3b, 0x67, 0xc2, 0xed, 0x72, 0x19, 0xc5,\n\t0xda, 0x64, 0xc7, 0xee, 0x00, 0xd4, 0x1b, 0xc8, 0xb3, 0x87, 0xb6, 0x65, 0x08, 0x4e, 0x9e, 0xde,\n\t0x6d, 0x52, 0x36, 0x7e, 0xa4, 0xe4, 0x68, 0xe7, 0x21, 0x38, 0x76, 0x3d, 0x47, 0x6f, 0xa7, 0x2b,\n\t0xaa, 0x41, 0xf8, 0x1b, 0xb4, 0x23, 0x15, 0x53, 0xb1, 0x3c, 0xa8, 0x6a, 0xa4, 0xb5, 0x39, 0x52,\n\t0xcb, 0xec, 0x66, 0x0e, 0xdd, 0xc9, 0xd6, 0x34, 0xc7, 0x75, 0x7e, 0x37, 0xd0, 0xfb, 0x25, 0xaa,\n\t0xc7, 0x5c, 0x2a, 0xfc, 0xdd, 0x4a, 0x9d, 0xc8, 0x66, 0x75, 0x4a, 0xd5, 0xba, 0x4a, 0x7b, 0x79,\n\t0xd4, 0xdd, 0xa9, 0x65, 0xa1, 0x46, 0x5f, 0xa3, 0x1a, 0x57, 0xe0, 0xa7, 0x33, 0x50, 0x3d, 0xbc,\n\t0x79, 0xe7, 0xa3, 0x8d, 0x33, 0xb2, 0x1b, 0x39, 0xb5, 0xf6, 0x28, 0xd5, 0xd3, 0x0c, 0xd3, 0xf9,\n\t0xa3, 0x5a, 0x9a, 0x49, 0x5a, 0x44, 0xfc, 0x0c, 0xd5, 0x7d, 0x1e, 0x3c, 0x18, 0x31, 0xee, 0xb1,\n\t0xbe, 0x07, 0xaf, 0xed, 0x7a, 0x7a, 0x65, 0x48, 0x76, 0x65, 0xc8, 0xa3, 0x40, 0xf5, 0xa2, 0x73,\n\t0x15, 0xf1, 0x60, 0x60, 0xef, 0x25, 0x93, 0x76, 0xfd, 0x74, 0x81, 0x44, 0x0b, 0x5c, 0xfc, 0x3d,\n\t0xda, 0x95, 0xe0, 0x81, 0xa3, 0x44, 0x74, 0xbd, 0xd1, 0x7e, 0xcc, 0xfa, 0xe0, 0x9d, 0xe7, 0x52,\n\t0xbb, 0x9e, 0x96, 0x6c, 0xba, 0xa2, 0x33, 0x24, 0xf6, 0x50, 0xd3, 0x67, 0xcf, 0x9f, 0x06, 0x6c,\n\t0x96, 0x48, 0xf5, 0x7f, 0x26, 0x82, 0x93, 0x49, 0xbb, 0x79, 0x5a, 0x60, 0xd1, 0x25, 0x36, 0x7e,\n\t0x61, 0xa0, 0x56, 0x1c, 0x0c, 0x81, 0x79, 0x6a, 0x38, 0x3e, 0x13, 0xee, 0xf4, 0x9d, 0x38, 0xd3,\n\t0xcd, 0x39, 0xd8, 0xbe, 0x65, 0x1c, 0xde, 0xb0, 0xef, 0x27, 0x93, 0x76, 0xeb, 0xe9, 0x5a, 0xaf,\n\t0x7f, 0x26, 0x6d, 0x73, 0xfd, 0xee, 0x93, 0x71, 0x08, 0xf4, 0x3f, 0x62, 0x74, 0x7e, 0xab, 0xa1,\n\t0x0f, 0xd6, 0xce, 0x34, 0xfe, 0x0a, 0x61, 0xd1, 0x97, 0x10, 0x8d, 0xc0, 0xfd, 0x22, 0x7b, 0xd7,\n\t0xb8, 0x08, 0x74, 0x6f, 0xab, 0x76, 0x2b, 0x9f, 0x11, 0xdc, 0x5b, 0xf1, 0xa0, 0x25, 0x2a, 0xfc,\n\t0x33, 0x6a, 0xb8, 0x59, 0x14, 0x70, 0xcf, 0x84, 0x3b, 0x9d, 0x4a, 0xfb, 0x9a, 0xf7, 0x8c, 0x74,\n\t0x17, 0x21, 0x27, 0x81, 0x8a, 0xc6, 0xf6, 0xbb, 0xf9, 0x51, 0x1a, 0x85, 0x3d, 0x5a, 0x8c, 0x97,\n\t0x26, 0xe3, 0xce, 0x90, 0xf2, 0x81, 0xe7, 0x89, 0x9f, 0xc0, 0xd5, 0xfd, 0xad, 0xcd, 0x93, 0xe9,\n\t0xae, 0x78, 0xd0, 0x12, 0x15, 0xfe, 0x1c, 0x35, 0x9d, 0x38, 0x8a, 0x20, 0x50, 0x5f, 0x66, 0x95,\n\t0xd5, 0xcd, 0xaa, 0xd9, 0xef, 0xe5, 0x9c, 0xe6, 0xc3, 0xc2, 0x2e, 0x5d, 0xf2, 0x4e, 0xf5, 0x2e,\n\t0x48, 0x1e, 0x81, 0x3b, 0xd5, 0xd7, 0x8a, 0xfa, 0x6e, 0x61, 0x97, 0x2e, 0x79, 0xe3, 0x63, 0x54,\n\t0x87, 0xe7, 0x21, 0x38, 0xd3, 0x5a, 0xee, 0x68, 0xf5, 0x7e, 0xae, 0xae, 0x9f, 0x2c, 0xec, 0xd1,\n\t0x82, 0x27, 0x76, 0x10, 0x72, 0x44, 0xe0, 0xf2, 0xec, 0xd7, 0xe1, 0x2d, 0xdd, 0x03, 0x6b, 0xb3,\n\t0x2b, 0xf4, 0x70, 0xaa, 0x9b, 0xbf, 0xcd, 0x33, 0x93, 0xa4, 0x0b, 0xd8, 0x96, 0x87, 0xf0, 0x6a,\n\t0x9b, 0xf0, 0x1e, 0xaa, 0x5e, 0xc0, 0x58, 0x8f, 0xcf, 0x0d, 0x9a, 0x7e, 0xe2, 0xfb, 0xa8, 0x36,\n\t0x62, 0x5e, 0x0c, 0xf9, 0x55, 0xfe, 0x78, 0xb3, 0x73, 0x3c, 0xe1, 0x3e, 0xd0, 0x4c, 0x78, 0x6f,\n\t0xeb, 0xd8, 0xb0, 0xef, 0x5d, 0x5e, 0x99, 0x95, 0x97, 0x57, 0x66, 0xe5, 0xd5, 0x95, 0x59, 0x79,\n\t0x91, 0x98, 0xc6, 0x65, 0x62, 0x1a, 0x2f, 0x13, 0xd3, 0x78, 0x95, 0x98, 0xc6, 0x5f, 0x89, 0x69,\n\t0xfc, 0xf2, 0xb7, 0x59, 0xf9, 0x76, 0xbf, 0xec, 0x7f, 0xcc, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff,\n\t0x0f, 0x42, 0xd2, 0x33, 0xde, 0x08, 0x00, 0x00,\n}\n\nfunc (m *Eviction) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Eviction) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Eviction) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.DeleteOptions != nil {\n\t\t{\n\t\t\tsize, err := m.DeleteOptions.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodDisruptionBudget) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodDisruptionBudget) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodDisruptionBudget) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodDisruptionBudgetList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodDisruptionBudgetList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodDisruptionBudgetList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodDisruptionBudgetSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodDisruptionBudgetSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodDisruptionBudgetSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.UnhealthyPodEvictionPolicy != nil {\n\t\ti -= len(*m.UnhealthyPodEvictionPolicy)\n\t\tcopy(dAtA[i:], *m.UnhealthyPodEvictionPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.UnhealthyPodEvictionPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.MaxUnavailable != nil {\n\t\t{\n\t\t\tsize, err := m.MaxUnavailable.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.MinAvailable != nil {\n\t\t{\n\t\t\tsize, err := m.MinAvailable.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodDisruptionBudgetStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodDisruptionBudgetStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodDisruptionBudgetStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x3a\n\t\t}\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ExpectedPods))\n\ti--\n\tdAtA[i] = 0x30\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.DesiredHealthy))\n\ti--\n\tdAtA[i] = 0x28\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.CurrentHealthy))\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.DisruptionsAllowed))\n\ti--\n\tdAtA[i] = 0x18\n\tif len(m.DisruptedPods) > 0 {\n\t\tkeysForDisruptedPods := make([]string, 0, len(m.DisruptedPods))\n\t\tfor k := range m.DisruptedPods {\n\t\t\tkeysForDisruptedPods = append(keysForDisruptedPods, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForDisruptedPods)\n\t\tfor iNdEx := len(keysForDisruptedPods) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.DisruptedPods[string(keysForDisruptedPods[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForDisruptedPods[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForDisruptedPods[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForDisruptedPods[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *Eviction) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.DeleteOptions != nil {\n\t\tl = m.DeleteOptions.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PodDisruptionBudget) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PodDisruptionBudgetList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PodDisruptionBudgetSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.MinAvailable != nil {\n\t\tl = m.MinAvailable.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.MaxUnavailable != nil {\n\t\tl = m.MaxUnavailable.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.UnhealthyPodEvictionPolicy != nil {\n\t\tl = len(*m.UnhealthyPodEvictionPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PodDisruptionBudgetStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.ObservedGeneration))\n\tif len(m.DisruptedPods) > 0 {\n\t\tfor k, v := range m.DisruptedPods {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tn += 1 + sovGenerated(uint64(m.DisruptionsAllowed))\n\tn += 1 + sovGenerated(uint64(m.CurrentHealthy))\n\tn += 1 + sovGenerated(uint64(m.DesiredHealthy))\n\tn += 1 + sovGenerated(uint64(m.ExpectedPods))\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *Eviction) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Eviction{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`DeleteOptions:` + strings.Replace(fmt.Sprintf(\"%v\", this.DeleteOptions), \"DeleteOptions\", \"v1.DeleteOptions\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodDisruptionBudget) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodDisruptionBudget{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"PodDisruptionBudgetSpec\", \"PodDisruptionBudgetSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"PodDisruptionBudgetStatus\", \"PodDisruptionBudgetStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodDisruptionBudgetList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]PodDisruptionBudget{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"PodDisruptionBudget\", \"PodDisruptionBudget\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&PodDisruptionBudgetList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodDisruptionBudgetSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodDisruptionBudgetSpec{`,\n\t\t`MinAvailable:` + strings.Replace(fmt.Sprintf(\"%v\", this.MinAvailable), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`MaxUnavailable:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaxUnavailable), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`UnhealthyPodEvictionPolicy:` + valueToStringGenerated(this.UnhealthyPodEvictionPolicy) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodDisruptionBudgetStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]Condition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\tkeysForDisruptedPods := make([]string, 0, len(this.DisruptedPods))\n\tfor k := range this.DisruptedPods {\n\t\tkeysForDisruptedPods = append(keysForDisruptedPods, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForDisruptedPods)\n\tmapStringForDisruptedPods := \"map[string]v1.Time{\"\n\tfor _, k := range keysForDisruptedPods {\n\t\tmapStringForDisruptedPods += fmt.Sprintf(\"%v: %v,\", k, this.DisruptedPods[k])\n\t}\n\tmapStringForDisruptedPods += \"}\"\n\ts := strings.Join([]string{`&PodDisruptionBudgetStatus{`,\n\t\t`ObservedGeneration:` + fmt.Sprintf(\"%v\", this.ObservedGeneration) + `,`,\n\t\t`DisruptedPods:` + mapStringForDisruptedPods + `,`,\n\t\t`DisruptionsAllowed:` + fmt.Sprintf(\"%v\", this.DisruptionsAllowed) + `,`,\n\t\t`CurrentHealthy:` + fmt.Sprintf(\"%v\", this.CurrentHealthy) + `,`,\n\t\t`DesiredHealthy:` + fmt.Sprintf(\"%v\", this.DesiredHealthy) + `,`,\n\t\t`ExpectedPods:` + fmt.Sprintf(\"%v\", this.ExpectedPods) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *Eviction) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Eviction: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Eviction: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DeleteOptions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.DeleteOptions == nil {\n\t\t\t\tm.DeleteOptions = &v1.DeleteOptions{}\n\t\t\t}\n\t\t\tif err := m.DeleteOptions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodDisruptionBudget) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodDisruptionBudget: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodDisruptionBudget: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodDisruptionBudgetList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodDisruptionBudgetList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodDisruptionBudgetList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, PodDisruptionBudget{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodDisruptionBudgetSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodDisruptionBudgetSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodDisruptionBudgetSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MinAvailable\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MinAvailable == nil {\n\t\t\t\tm.MinAvailable = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.MinAvailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxUnavailable\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaxUnavailable == nil {\n\t\t\t\tm.MaxUnavailable = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.MaxUnavailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UnhealthyPodEvictionPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := UnhealthyPodEvictionPolicyType(dAtA[iNdEx:postIndex])\n\t\t\tm.UnhealthyPodEvictionPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodDisruptionBudgetStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodDisruptionBudgetStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodDisruptionBudgetStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tm.ObservedGeneration = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ObservedGeneration |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DisruptedPods\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.DisruptedPods == nil {\n\t\t\t\tm.DisruptedPods = make(map[string]v1.Time)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tmapvalue := &v1.Time{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &v1.Time{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.DisruptedPods[mapkey] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DisruptionsAllowed\", wireType)\n\t\t\t}\n\t\t\tm.DisruptionsAllowed = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.DisruptionsAllowed |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentHealthy\", wireType)\n\t\t\t}\n\t\t\tm.CurrentHealthy = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.CurrentHealthy |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DesiredHealthy\", wireType)\n\t\t\t}\n\t\t\tm.DesiredHealthy = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.DesiredHealthy |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ExpectedPods\", wireType)\n\t\t\t}\n\t\t\tm.ExpectedPods = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ExpectedPods |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, v1.Condition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/policy/v1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.policy.v1;\n\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/util/intstr/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/policy/v1\";\n\n// Eviction evicts a pod from its node subject to certain policies and safety constraints.\n// This is a subresource of Pod.  A request to cause such an eviction is\n// created by POSTing to .../pods/<pod name>/evictions.\nmessage Eviction {\n  // ObjectMeta describes the pod that is being evicted.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // DeleteOptions may be provided\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.DeleteOptions deleteOptions = 2;\n}\n\n// PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods\nmessage PodDisruptionBudget {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Specification of the desired behavior of the PodDisruptionBudget.\n  // +optional\n  optional PodDisruptionBudgetSpec spec = 2;\n\n  // Most recently observed status of the PodDisruptionBudget.\n  // +optional\n  optional PodDisruptionBudgetStatus status = 3;\n}\n\n// PodDisruptionBudgetList is a collection of PodDisruptionBudgets.\nmessage PodDisruptionBudgetList {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is a list of PodDisruptionBudgets\n  repeated PodDisruptionBudget items = 2;\n}\n\n// PodDisruptionBudgetSpec is a description of a PodDisruptionBudget.\nmessage PodDisruptionBudgetSpec {\n  // An eviction is allowed if at least \"minAvailable\" pods selected by\n  // \"selector\" will still be available after the eviction, i.e. even in the\n  // absence of the evicted pod.  So for example you can prevent all voluntary\n  // evictions by specifying \"100%\".\n  // +optional\n  optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString minAvailable = 1;\n\n  // Label query over pods whose evictions are managed by the disruption\n  // budget.\n  // A null selector will match no pods, while an empty ({}) selector will select\n  // all pods within the namespace.\n  // +patchStrategy=replace\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2;\n\n  // An eviction is allowed if at most \"maxUnavailable\" pods selected by\n  // \"selector\" are unavailable after the eviction, i.e. even in absence of\n  // the evicted pod. For example, one can prevent all voluntary evictions\n  // by specifying 0. This is a mutually exclusive setting with \"minAvailable\".\n  // +optional\n  optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString maxUnavailable = 3;\n\n  // UnhealthyPodEvictionPolicy defines the criteria for when unhealthy pods\n  // should be considered for eviction. Current implementation considers healthy pods,\n  // as pods that have status.conditions item with type=\"Ready\",status=\"True\".\n  //\n  // Valid policies are IfHealthyBudget and AlwaysAllow.\n  // If no policy is specified, the default behavior will be used,\n  // which corresponds to the IfHealthyBudget policy.\n  //\n  // IfHealthyBudget policy means that running pods (status.phase=\"Running\"),\n  // but not yet healthy can be evicted only if the guarded application is not\n  // disrupted (status.currentHealthy is at least equal to status.desiredHealthy).\n  // Healthy pods will be subject to the PDB for eviction.\n  //\n  // AlwaysAllow policy means that all running pods (status.phase=\"Running\"),\n  // but not yet healthy are considered disrupted and can be evicted regardless\n  // of whether the criteria in a PDB is met. This means perspective running\n  // pods of a disrupted application might not get a chance to become healthy.\n  // Healthy pods will be subject to the PDB for eviction.\n  //\n  // Additional policies may be added in the future.\n  // Clients making eviction decisions should disallow eviction of unhealthy pods\n  // if they encounter an unrecognized policy in this field.\n  //\n  // This field is beta-level. The eviction API uses this field when\n  // the feature gate PDBUnhealthyPodEvictionPolicy is enabled (enabled by default).\n  // +optional\n  optional string unhealthyPodEvictionPolicy = 4;\n}\n\n// PodDisruptionBudgetStatus represents information about the status of a\n// PodDisruptionBudget. Status may trail the actual state of a system.\nmessage PodDisruptionBudgetStatus {\n  // Most recent generation observed when updating this PDB status. DisruptionsAllowed and other\n  // status information is valid only if observedGeneration equals to PDB's object generation.\n  // +optional\n  optional int64 observedGeneration = 1;\n\n  // DisruptedPods contains information about pods whose eviction was\n  // processed by the API server eviction subresource handler but has not\n  // yet been observed by the PodDisruptionBudget controller.\n  // A pod will be in this map from the time when the API server processed the\n  // eviction request to the time when the pod is seen by PDB controller\n  // as having been marked for deletion (or after a timeout). The key in the map is the name of the pod\n  // and the value is the time when the API server processed the eviction request. If\n  // the deletion didn't occur and a pod is still there it will be removed from\n  // the list automatically by PodDisruptionBudget controller after some time.\n  // If everything goes smooth this map should be empty for the most of the time.\n  // Large number of entries in the map may indicate problems with pod deletions.\n  // +optional\n  map<string, .k8s.io.apimachinery.pkg.apis.meta.v1.Time> disruptedPods = 2;\n\n  // Number of pod disruptions that are currently allowed.\n  optional int32 disruptionsAllowed = 3;\n\n  // current number of healthy pods\n  optional int32 currentHealthy = 4;\n\n  // minimum desired number of healthy pods\n  optional int32 desiredHealthy = 5;\n\n  // total number of pods counted by this disruption budget\n  optional int32 expectedPods = 6;\n\n  // Conditions contain conditions for PDB. The disruption controller sets the\n  // DisruptionAllowed condition. The following are known values for the reason field\n  // (additional reasons could be added in the future):\n  // - SyncFailed: The controller encountered an error and wasn't able to compute\n  //               the number of allowed disruptions. Therefore no disruptions are\n  //               allowed and the status of the condition will be False.\n  // - InsufficientPods: The number of pods are either at or below the number\n  //                     required by the PodDisruptionBudget. No disruptions are\n  //                     allowed and the status of the condition will be False.\n  // - SufficientPods: There are more pods than required by the PodDisruptionBudget.\n  //                   The condition will be True, and the number of allowed\n  //                   disruptions are provided by the disruptionsAllowed property.\n  //\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=type\n  repeated .k8s.io.apimachinery.pkg.apis.meta.v1.Condition conditions = 7;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/policy/v1/register.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"policy\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&PodDisruptionBudget{},\n\t\t&PodDisruptionBudgetList{},\n\t\t&Eviction{},\n\t)\n\t// Add the watch version that applies\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/policy/v1/types.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// DisruptionBudgetCause is the status cause returned for eviction failures caused by PodDisruptionBudget violations.\nconst DisruptionBudgetCause metav1.CauseType = \"DisruptionBudget\"\n\n// PodDisruptionBudgetSpec is a description of a PodDisruptionBudget.\ntype PodDisruptionBudgetSpec struct {\n\t// An eviction is allowed if at least \"minAvailable\" pods selected by\n\t// \"selector\" will still be available after the eviction, i.e. even in the\n\t// absence of the evicted pod.  So for example you can prevent all voluntary\n\t// evictions by specifying \"100%\".\n\t// +optional\n\tMinAvailable *intstr.IntOrString `json:\"minAvailable,omitempty\" protobuf:\"bytes,1,opt,name=minAvailable\"`\n\n\t// Label query over pods whose evictions are managed by the disruption\n\t// budget.\n\t// A null selector will match no pods, while an empty ({}) selector will select\n\t// all pods within the namespace.\n\t// +patchStrategy=replace\n\t// +optional\n\tSelector *metav1.LabelSelector `json:\"selector,omitempty\" patchStrategy:\"replace\" protobuf:\"bytes,2,opt,name=selector\"`\n\n\t// An eviction is allowed if at most \"maxUnavailable\" pods selected by\n\t// \"selector\" are unavailable after the eviction, i.e. even in absence of\n\t// the evicted pod. For example, one can prevent all voluntary evictions\n\t// by specifying 0. This is a mutually exclusive setting with \"minAvailable\".\n\t// +optional\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\" protobuf:\"bytes,3,opt,name=maxUnavailable\"`\n\n\t// UnhealthyPodEvictionPolicy defines the criteria for when unhealthy pods\n\t// should be considered for eviction. Current implementation considers healthy pods,\n\t// as pods that have status.conditions item with type=\"Ready\",status=\"True\".\n\t//\n\t// Valid policies are IfHealthyBudget and AlwaysAllow.\n\t// If no policy is specified, the default behavior will be used,\n\t// which corresponds to the IfHealthyBudget policy.\n\t//\n\t// IfHealthyBudget policy means that running pods (status.phase=\"Running\"),\n\t// but not yet healthy can be evicted only if the guarded application is not\n\t// disrupted (status.currentHealthy is at least equal to status.desiredHealthy).\n\t// Healthy pods will be subject to the PDB for eviction.\n\t//\n\t// AlwaysAllow policy means that all running pods (status.phase=\"Running\"),\n\t// but not yet healthy are considered disrupted and can be evicted regardless\n\t// of whether the criteria in a PDB is met. This means perspective running\n\t// pods of a disrupted application might not get a chance to become healthy.\n\t// Healthy pods will be subject to the PDB for eviction.\n\t//\n\t// Additional policies may be added in the future.\n\t// Clients making eviction decisions should disallow eviction of unhealthy pods\n\t// if they encounter an unrecognized policy in this field.\n\t//\n\t// This field is beta-level. The eviction API uses this field when\n\t// the feature gate PDBUnhealthyPodEvictionPolicy is enabled (enabled by default).\n\t// +optional\n\tUnhealthyPodEvictionPolicy *UnhealthyPodEvictionPolicyType `json:\"unhealthyPodEvictionPolicy,omitempty\" protobuf:\"bytes,4,opt,name=unhealthyPodEvictionPolicy\"`\n}\n\n// UnhealthyPodEvictionPolicyType defines the criteria for when unhealthy pods\n// should be considered for eviction.\n// +enum\ntype UnhealthyPodEvictionPolicyType string\n\nconst (\n\t// IfHealthyBudget policy means that running pods (status.phase=\"Running\"),\n\t// but not yet healthy can be evicted only if the guarded application is not\n\t// disrupted (status.currentHealthy is at least equal to status.desiredHealthy).\n\t// Healthy pods will be subject to the PDB for eviction.\n\tIfHealthyBudget UnhealthyPodEvictionPolicyType = \"IfHealthyBudget\"\n\n\t// AlwaysAllow policy means that all running pods (status.phase=\"Running\"),\n\t// but not yet healthy are considered disrupted and can be evicted regardless\n\t// of whether the criteria in a PDB is met. This means perspective running\n\t// pods of a disrupted application might not get a chance to become healthy.\n\t// Healthy pods will be subject to the PDB for eviction.\n\tAlwaysAllow UnhealthyPodEvictionPolicyType = \"AlwaysAllow\"\n)\n\n// PodDisruptionBudgetStatus represents information about the status of a\n// PodDisruptionBudget. Status may trail the actual state of a system.\ntype PodDisruptionBudgetStatus struct {\n\t// Most recent generation observed when updating this PDB status. DisruptionsAllowed and other\n\t// status information is valid only if observedGeneration equals to PDB's object generation.\n\t// +optional\n\tObservedGeneration int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,1,opt,name=observedGeneration\"`\n\n\t// DisruptedPods contains information about pods whose eviction was\n\t// processed by the API server eviction subresource handler but has not\n\t// yet been observed by the PodDisruptionBudget controller.\n\t// A pod will be in this map from the time when the API server processed the\n\t// eviction request to the time when the pod is seen by PDB controller\n\t// as having been marked for deletion (or after a timeout). The key in the map is the name of the pod\n\t// and the value is the time when the API server processed the eviction request. If\n\t// the deletion didn't occur and a pod is still there it will be removed from\n\t// the list automatically by PodDisruptionBudget controller after some time.\n\t// If everything goes smooth this map should be empty for the most of the time.\n\t// Large number of entries in the map may indicate problems with pod deletions.\n\t// +optional\n\tDisruptedPods map[string]metav1.Time `json:\"disruptedPods,omitempty\" protobuf:\"bytes,2,rep,name=disruptedPods\"`\n\n\t// Number of pod disruptions that are currently allowed.\n\tDisruptionsAllowed int32 `json:\"disruptionsAllowed\" protobuf:\"varint,3,opt,name=disruptionsAllowed\"`\n\n\t// current number of healthy pods\n\tCurrentHealthy int32 `json:\"currentHealthy\" protobuf:\"varint,4,opt,name=currentHealthy\"`\n\n\t// minimum desired number of healthy pods\n\tDesiredHealthy int32 `json:\"desiredHealthy\" protobuf:\"varint,5,opt,name=desiredHealthy\"`\n\n\t// total number of pods counted by this disruption budget\n\tExpectedPods int32 `json:\"expectedPods\" protobuf:\"varint,6,opt,name=expectedPods\"`\n\n\t// Conditions contain conditions for PDB. The disruption controller sets the\n\t// DisruptionAllowed condition. The following are known values for the reason field\n\t// (additional reasons could be added in the future):\n\t// - SyncFailed: The controller encountered an error and wasn't able to compute\n\t//               the number of allowed disruptions. Therefore no disruptions are\n\t//               allowed and the status of the condition will be False.\n\t// - InsufficientPods: The number of pods are either at or below the number\n\t//                     required by the PodDisruptionBudget. No disruptions are\n\t//                     allowed and the status of the condition will be False.\n\t// - SufficientPods: There are more pods than required by the PodDisruptionBudget.\n\t//                   The condition will be True, and the number of allowed\n\t//                   disruptions are provided by the disruptionsAllowed property.\n\t//\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=type\n\tConditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,7,rep,name=conditions\"`\n}\n\nconst (\n\t// DisruptionAllowedCondition is a condition set by the disruption controller\n\t// that signal whether any of the pods covered by the PDB can be disrupted.\n\tDisruptionAllowedCondition = \"DisruptionAllowed\"\n\n\t// SyncFailedReason is set on the DisruptionAllowed condition if reconcile\n\t// of the PDB failed and therefore disruption of pods are not allowed.\n\tSyncFailedReason = \"SyncFailed\"\n\t// SufficientPodsReason is set on the DisruptionAllowed condition if there are\n\t// more pods covered by the PDB than required and at least one can be disrupted.\n\tSufficientPodsReason = \"SufficientPods\"\n\t// InsufficientPodsReason is set on the DisruptionAllowed condition if the number\n\t// of pods are equal to or fewer than required by the PDB.\n\tInsufficientPodsReason = \"InsufficientPods\"\n)\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.21\n\n// PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods\ntype PodDisruptionBudget struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Specification of the desired behavior of the PodDisruptionBudget.\n\t// +optional\n\tSpec PodDisruptionBudgetSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\t// Most recently observed status of the PodDisruptionBudget.\n\t// +optional\n\tStatus PodDisruptionBudgetStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.21\n\n// PodDisruptionBudgetList is a collection of PodDisruptionBudgets.\ntype PodDisruptionBudgetList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// Items is a list of PodDisruptionBudgets\n\tItems []PodDisruptionBudget `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +genclient:noVerbs\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.22\n\n// Eviction evicts a pod from its node subject to certain policies and safety constraints.\n// This is a subresource of Pod.  A request to cause such an eviction is\n// created by POSTing to .../pods/<pod name>/evictions.\ntype Eviction struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// ObjectMeta describes the pod that is being evicted.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// DeleteOptions may be provided\n\t// +optional\n\tDeleteOptions *metav1.DeleteOptions `json:\"deleteOptions,omitempty\" protobuf:\"bytes,2,opt,name=deleteOptions\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/policy/v1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_Eviction = map[string]string{\n\t\"\":              \"Eviction evicts a pod from its node subject to certain policies and safety constraints. This is a subresource of Pod.  A request to cause such an eviction is created by POSTing to .../pods/<pod name>/evictions.\",\n\t\"metadata\":      \"ObjectMeta describes the pod that is being evicted.\",\n\t\"deleteOptions\": \"DeleteOptions may be provided\",\n}\n\nfunc (Eviction) SwaggerDoc() map[string]string {\n\treturn map_Eviction\n}\n\nvar map_PodDisruptionBudget = map[string]string{\n\t\"\":         \"PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Specification of the desired behavior of the PodDisruptionBudget.\",\n\t\"status\":   \"Most recently observed status of the PodDisruptionBudget.\",\n}\n\nfunc (PodDisruptionBudget) SwaggerDoc() map[string]string {\n\treturn map_PodDisruptionBudget\n}\n\nvar map_PodDisruptionBudgetList = map[string]string{\n\t\"\":         \"PodDisruptionBudgetList is a collection of PodDisruptionBudgets.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"Items is a list of PodDisruptionBudgets\",\n}\n\nfunc (PodDisruptionBudgetList) SwaggerDoc() map[string]string {\n\treturn map_PodDisruptionBudgetList\n}\n\nvar map_PodDisruptionBudgetSpec = map[string]string{\n\t\"\":                           \"PodDisruptionBudgetSpec is a description of a PodDisruptionBudget.\",\n\t\"minAvailable\":               \"An eviction is allowed if at least \\\"minAvailable\\\" pods selected by \\\"selector\\\" will still be available after the eviction, i.e. even in the absence of the evicted pod.  So for example you can prevent all voluntary evictions by specifying \\\"100%\\\".\",\n\t\"selector\":                   \"Label query over pods whose evictions are managed by the disruption budget. A null selector will match no pods, while an empty ({}) selector will select all pods within the namespace.\",\n\t\"maxUnavailable\":             \"An eviction is allowed if at most \\\"maxUnavailable\\\" pods selected by \\\"selector\\\" are unavailable after the eviction, i.e. even in absence of the evicted pod. For example, one can prevent all voluntary evictions by specifying 0. This is a mutually exclusive setting with \\\"minAvailable\\\".\",\n\t\"unhealthyPodEvictionPolicy\": \"UnhealthyPodEvictionPolicy defines the criteria for when unhealthy pods should be considered for eviction. Current implementation considers healthy pods, as pods that have status.conditions item with type=\\\"Ready\\\",status=\\\"True\\\".\\n\\nValid policies are IfHealthyBudget and AlwaysAllow. If no policy is specified, the default behavior will be used, which corresponds to the IfHealthyBudget policy.\\n\\nIfHealthyBudget policy means that running pods (status.phase=\\\"Running\\\"), but not yet healthy can be evicted only if the guarded application is not disrupted (status.currentHealthy is at least equal to status.desiredHealthy). Healthy pods will be subject to the PDB for eviction.\\n\\nAlwaysAllow policy means that all running pods (status.phase=\\\"Running\\\"), but not yet healthy are considered disrupted and can be evicted regardless of whether the criteria in a PDB is met. This means perspective running pods of a disrupted application might not get a chance to become healthy. Healthy pods will be subject to the PDB for eviction.\\n\\nAdditional policies may be added in the future. Clients making eviction decisions should disallow eviction of unhealthy pods if they encounter an unrecognized policy in this field.\\n\\nThis field is beta-level. The eviction API uses this field when the feature gate PDBUnhealthyPodEvictionPolicy is enabled (enabled by default).\",\n}\n\nfunc (PodDisruptionBudgetSpec) SwaggerDoc() map[string]string {\n\treturn map_PodDisruptionBudgetSpec\n}\n\nvar map_PodDisruptionBudgetStatus = map[string]string{\n\t\"\":                   \"PodDisruptionBudgetStatus represents information about the status of a PodDisruptionBudget. Status may trail the actual state of a system.\",\n\t\"observedGeneration\": \"Most recent generation observed when updating this PDB status. DisruptionsAllowed and other status information is valid only if observedGeneration equals to PDB's object generation.\",\n\t\"disruptedPods\":      \"DisruptedPods contains information about pods whose eviction was processed by the API server eviction subresource handler but has not yet been observed by the PodDisruptionBudget controller. A pod will be in this map from the time when the API server processed the eviction request to the time when the pod is seen by PDB controller as having been marked for deletion (or after a timeout). The key in the map is the name of the pod and the value is the time when the API server processed the eviction request. If the deletion didn't occur and a pod is still there it will be removed from the list automatically by PodDisruptionBudget controller after some time. If everything goes smooth this map should be empty for the most of the time. Large number of entries in the map may indicate problems with pod deletions.\",\n\t\"disruptionsAllowed\": \"Number of pod disruptions that are currently allowed.\",\n\t\"currentHealthy\":     \"current number of healthy pods\",\n\t\"desiredHealthy\":     \"minimum desired number of healthy pods\",\n\t\"expectedPods\":       \"total number of pods counted by this disruption budget\",\n\t\"conditions\":         \"Conditions contain conditions for PDB. The disruption controller sets the DisruptionAllowed condition. The following are known values for the reason field (additional reasons could be added in the future): - SyncFailed: The controller encountered an error and wasn't able to compute\\n              the number of allowed disruptions. Therefore no disruptions are\\n              allowed and the status of the condition will be False.\\n- InsufficientPods: The number of pods are either at or below the number\\n                    required by the PodDisruptionBudget. No disruptions are\\n                    allowed and the status of the condition will be False.\\n- SufficientPods: There are more pods than required by the PodDisruptionBudget.\\n                  The condition will be True, and the number of allowed\\n                  disruptions are provided by the disruptionsAllowed property.\",\n}\n\nfunc (PodDisruptionBudgetStatus) SwaggerDoc() map[string]string {\n\treturn map_PodDisruptionBudgetStatus\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/policy/v1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Eviction) DeepCopyInto(out *Eviction) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.DeleteOptions != nil {\n\t\tin, out := &in.DeleteOptions, &out.DeleteOptions\n\t\t*out = new(metav1.DeleteOptions)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Eviction.\nfunc (in *Eviction) DeepCopy() *Eviction {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Eviction)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Eviction) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodDisruptionBudget) DeepCopyInto(out *PodDisruptionBudget) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodDisruptionBudget.\nfunc (in *PodDisruptionBudget) DeepCopy() *PodDisruptionBudget {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodDisruptionBudget)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PodDisruptionBudget) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodDisruptionBudgetList) DeepCopyInto(out *PodDisruptionBudgetList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]PodDisruptionBudget, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodDisruptionBudgetList.\nfunc (in *PodDisruptionBudgetList) DeepCopy() *PodDisruptionBudgetList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodDisruptionBudgetList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PodDisruptionBudgetList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodDisruptionBudgetSpec) DeepCopyInto(out *PodDisruptionBudgetSpec) {\n\t*out = *in\n\tif in.MinAvailable != nil {\n\t\tin, out := &in.MinAvailable, &out.MinAvailable\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.MaxUnavailable != nil {\n\t\tin, out := &in.MaxUnavailable, &out.MaxUnavailable\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\tif in.UnhealthyPodEvictionPolicy != nil {\n\t\tin, out := &in.UnhealthyPodEvictionPolicy, &out.UnhealthyPodEvictionPolicy\n\t\t*out = new(UnhealthyPodEvictionPolicyType)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodDisruptionBudgetSpec.\nfunc (in *PodDisruptionBudgetSpec) DeepCopy() *PodDisruptionBudgetSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodDisruptionBudgetSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodDisruptionBudgetStatus) DeepCopyInto(out *PodDisruptionBudgetStatus) {\n\t*out = *in\n\tif in.DisruptedPods != nil {\n\t\tin, out := &in.DisruptedPods, &out.DisruptedPods\n\t\t*out = make(map[string]metav1.Time, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = *val.DeepCopy()\n\t\t}\n\t}\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]metav1.Condition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodDisruptionBudgetStatus.\nfunc (in *PodDisruptionBudgetStatus) DeepCopy() *PodDisruptionBudgetStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodDisruptionBudgetStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/policy/v1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *Eviction) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *PodDisruptionBudget) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 21\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *PodDisruptionBudgetList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 21\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/policy/v1beta1/doc.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\n// Package policy is for any kind of policy object.  Suitable examples, even if\n// they aren't all here, are PodDisruptionBudget,\n// NetworkPolicy, etc.\npackage v1beta1 // import \"k8s.io/api/policy/v1beta1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/policy/v1beta1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/policy/v1beta1/generated.proto\n\npackage v1beta1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *Eviction) Reset()      { *m = Eviction{} }\nfunc (*Eviction) ProtoMessage() {}\nfunc (*Eviction) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_68b366237812cc96, []int{0}\n}\nfunc (m *Eviction) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Eviction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Eviction) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Eviction.Merge(m, src)\n}\nfunc (m *Eviction) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Eviction) XXX_DiscardUnknown() {\n\txxx_messageInfo_Eviction.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Eviction proto.InternalMessageInfo\n\nfunc (m *PodDisruptionBudget) Reset()      { *m = PodDisruptionBudget{} }\nfunc (*PodDisruptionBudget) ProtoMessage() {}\nfunc (*PodDisruptionBudget) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_68b366237812cc96, []int{1}\n}\nfunc (m *PodDisruptionBudget) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodDisruptionBudget) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodDisruptionBudget) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodDisruptionBudget.Merge(m, src)\n}\nfunc (m *PodDisruptionBudget) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodDisruptionBudget) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodDisruptionBudget.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodDisruptionBudget proto.InternalMessageInfo\n\nfunc (m *PodDisruptionBudgetList) Reset()      { *m = PodDisruptionBudgetList{} }\nfunc (*PodDisruptionBudgetList) ProtoMessage() {}\nfunc (*PodDisruptionBudgetList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_68b366237812cc96, []int{2}\n}\nfunc (m *PodDisruptionBudgetList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodDisruptionBudgetList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodDisruptionBudgetList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodDisruptionBudgetList.Merge(m, src)\n}\nfunc (m *PodDisruptionBudgetList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodDisruptionBudgetList) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodDisruptionBudgetList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodDisruptionBudgetList proto.InternalMessageInfo\n\nfunc (m *PodDisruptionBudgetSpec) Reset()      { *m = PodDisruptionBudgetSpec{} }\nfunc (*PodDisruptionBudgetSpec) ProtoMessage() {}\nfunc (*PodDisruptionBudgetSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_68b366237812cc96, []int{3}\n}\nfunc (m *PodDisruptionBudgetSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodDisruptionBudgetSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodDisruptionBudgetSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodDisruptionBudgetSpec.Merge(m, src)\n}\nfunc (m *PodDisruptionBudgetSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodDisruptionBudgetSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodDisruptionBudgetSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodDisruptionBudgetSpec proto.InternalMessageInfo\n\nfunc (m *PodDisruptionBudgetStatus) Reset()      { *m = PodDisruptionBudgetStatus{} }\nfunc (*PodDisruptionBudgetStatus) ProtoMessage() {}\nfunc (*PodDisruptionBudgetStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_68b366237812cc96, []int{4}\n}\nfunc (m *PodDisruptionBudgetStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PodDisruptionBudgetStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PodDisruptionBudgetStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PodDisruptionBudgetStatus.Merge(m, src)\n}\nfunc (m *PodDisruptionBudgetStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PodDisruptionBudgetStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_PodDisruptionBudgetStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PodDisruptionBudgetStatus proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*Eviction)(nil), \"k8s.io.api.policy.v1beta1.Eviction\")\n\tproto.RegisterType((*PodDisruptionBudget)(nil), \"k8s.io.api.policy.v1beta1.PodDisruptionBudget\")\n\tproto.RegisterType((*PodDisruptionBudgetList)(nil), \"k8s.io.api.policy.v1beta1.PodDisruptionBudgetList\")\n\tproto.RegisterType((*PodDisruptionBudgetSpec)(nil), \"k8s.io.api.policy.v1beta1.PodDisruptionBudgetSpec\")\n\tproto.RegisterType((*PodDisruptionBudgetStatus)(nil), \"k8s.io.api.policy.v1beta1.PodDisruptionBudgetStatus\")\n\tproto.RegisterMapType((map[string]v1.Time)(nil), \"k8s.io.api.policy.v1beta1.PodDisruptionBudgetStatus.DisruptedPodsEntry\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/policy/v1beta1/generated.proto\", fileDescriptor_68b366237812cc96)\n}\n\nvar fileDescriptor_68b366237812cc96 = []byte{\n\t// 843 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x96, 0x4d, 0x8f, 0xdb, 0x44,\n\t0x18, 0xc7, 0xe3, 0xcd, 0x66, 0xd9, 0x0e, 0x49, 0xb4, 0x0c, 0x6f, 0xbb, 0x39, 0x38, 0x55, 0x4e,\n\t0x05, 0x89, 0x31, 0xdb, 0x56, 0x68, 0xc5, 0x01, 0x5a, 0x37, 0xab, 0x52, 0xd4, 0xd5, 0xae, 0x26,\n\t0xdb, 0x0b, 0x2a, 0x12, 0x13, 0xfb, 0xa9, 0x33, 0xc4, 0xf6, 0x58, 0x9e, 0x71, 0x68, 0x6e, 0x3d,\n\t0xf0, 0x01, 0xf8, 0x1e, 0x7c, 0x10, 0xf6, 0xc0, 0xa1, 0xdc, 0x2a, 0x0e, 0x11, 0x6b, 0xbe, 0x05,\n\t0x27, 0xe4, 0xb1, 0xf3, 0xe2, 0xbc, 0xd0, 0xb4, 0x07, 0x6e, 0x9e, 0x67, 0x9e, 0xff, 0xef, 0x99,\n\t0xe7, 0x65, 0x26, 0x41, 0x9f, 0x0c, 0x4f, 0x24, 0xe1, 0xc2, 0x62, 0x11, 0xb7, 0x22, 0xe1, 0x73,\n\t0x67, 0x6c, 0x8d, 0x8e, 0xfb, 0xa0, 0xd8, 0xb1, 0xe5, 0x41, 0x08, 0x31, 0x53, 0xe0, 0x92, 0x28,\n\t0x16, 0x4a, 0xe0, 0xa3, 0xdc, 0x95, 0xb0, 0x88, 0x93, 0xdc, 0x95, 0x14, 0xae, 0xad, 0xcf, 0x3c,\n\t0xae, 0x06, 0x49, 0x9f, 0x38, 0x22, 0xb0, 0x3c, 0xe1, 0x09, 0x4b, 0x2b, 0xfa, 0xc9, 0x33, 0xbd,\n\t0xd2, 0x0b, 0xfd, 0x95, 0x93, 0x5a, 0x77, 0xe7, 0x41, 0x03, 0xe6, 0x0c, 0x78, 0x08, 0xf1, 0xd8,\n\t0x8a, 0x86, 0x5e, 0x66, 0x90, 0x56, 0x00, 0x8a, 0x59, 0xa3, 0x95, 0xf8, 0x2d, 0x6b, 0x93, 0x2a,\n\t0x4e, 0x42, 0xc5, 0x03, 0x58, 0x11, 0x7c, 0xf1, 0x3a, 0x81, 0x74, 0x06, 0x10, 0xb0, 0x15, 0xdd,\n\t0x9d, 0x4d, 0xba, 0x44, 0x71, 0xdf, 0xe2, 0xa1, 0x92, 0x2a, 0x5e, 0x16, 0x75, 0xfe, 0x34, 0xd0,\n\t0xfe, 0xe9, 0x88, 0x3b, 0x8a, 0x8b, 0x10, 0xff, 0x80, 0xf6, 0xb3, 0x2c, 0x5c, 0xa6, 0xd8, 0xa1,\n\t0x71, 0xd3, 0xb8, 0xf5, 0xee, 0xed, 0xcf, 0xc9, 0xbc, 0x7a, 0x33, 0x28, 0x89, 0x86, 0x5e, 0x66,\n\t0x90, 0x24, 0xf3, 0x26, 0xa3, 0x63, 0x72, 0xde, 0xff, 0x11, 0x1c, 0x75, 0x06, 0x8a, 0xd9, 0xf8,\n\t0x6a, 0xd2, 0xae, 0xa4, 0x93, 0x36, 0x9a, 0xdb, 0xe8, 0x8c, 0x8a, 0x7d, 0xd4, 0x70, 0xc1, 0x07,\n\t0x05, 0xe7, 0x51, 0x16, 0x51, 0x1e, 0xee, 0xe8, 0x30, 0x77, 0xb6, 0x0b, 0xd3, 0x5d, 0x94, 0xda,\n\t0xef, 0xa5, 0x93, 0x76, 0xa3, 0x64, 0xa2, 0x65, 0x78, 0xe7, 0xd7, 0x1d, 0xf4, 0xfe, 0x85, 0x70,\n\t0xbb, 0x5c, 0xc6, 0x89, 0x36, 0xd9, 0x89, 0xeb, 0x81, 0xfa, 0x1f, 0xf2, 0xbc, 0x44, 0xbb, 0x32,\n\t0x02, 0xa7, 0x48, 0xef, 0x36, 0xd9, 0x38, 0x83, 0x64, 0xcd, 0xf9, 0x7a, 0x11, 0x38, 0x76, 0xbd,\n\t0xe0, 0xef, 0x66, 0x2b, 0xaa, 0x69, 0xf8, 0x29, 0xda, 0x93, 0x8a, 0xa9, 0x44, 0x1e, 0x56, 0x35,\n\t0xf7, 0xee, 0x1b, 0x72, 0xb5, 0xd6, 0x6e, 0x16, 0xe4, 0xbd, 0x7c, 0x4d, 0x0b, 0x66, 0xe7, 0x77,\n\t0x03, 0x7d, 0xbc, 0x46, 0xf5, 0x98, 0x4b, 0x85, 0x9f, 0xae, 0x54, 0x8c, 0x6c, 0x57, 0xb1, 0x4c,\n\t0xad, 0xeb, 0x75, 0x50, 0x44, 0xdd, 0x9f, 0x5a, 0x16, 0xaa, 0xd5, 0x43, 0x35, 0xae, 0x20, 0xc8,\n\t0xa6, 0xa1, 0xba, 0x84, 0xde, 0x22, 0x2d, 0xbb, 0x51, 0xa0, 0x6b, 0x8f, 0x32, 0x08, 0xcd, 0x59,\n\t0x9d, 0x3f, 0xaa, 0x6b, 0xd3, 0xc9, 0xca, 0x89, 0x9f, 0xa1, 0x7a, 0xc0, 0xc3, 0xfb, 0x23, 0xc6,\n\t0x7d, 0xd6, 0xf7, 0xe1, 0xb5, 0x43, 0x90, 0xdd, 0x20, 0x92, 0xdf, 0x20, 0xf2, 0x28, 0x54, 0xe7,\n\t0x71, 0x4f, 0xc5, 0x3c, 0xf4, 0xec, 0x83, 0x74, 0xd2, 0xae, 0x9f, 0x2d, 0x90, 0x68, 0x89, 0x8b,\n\t0xbf, 0x47, 0xfb, 0x12, 0x7c, 0x70, 0x94, 0x88, 0xdf, 0x6c, 0xd2, 0x1f, 0xb3, 0x3e, 0xf8, 0xbd,\n\t0x42, 0x6a, 0xd7, 0xb3, 0xba, 0x4d, 0x57, 0x74, 0x86, 0xc4, 0x3e, 0x6a, 0x06, 0xec, 0xf9, 0x93,\n\t0x90, 0xcd, 0x12, 0xa9, 0xbe, 0x65, 0x22, 0x38, 0x9d, 0xb4, 0x9b, 0x67, 0x25, 0x16, 0x5d, 0x62,\n\t0xe3, 0x17, 0x06, 0x6a, 0x25, 0xe1, 0x00, 0x98, 0xaf, 0x06, 0xe3, 0x0b, 0xe1, 0x4e, 0x9f, 0x8d,\n\t0x0b, 0xdd, 0xa1, 0xc3, 0xdd, 0x9b, 0xc6, 0xad, 0x1b, 0xf6, 0xbd, 0x74, 0xd2, 0x6e, 0x3d, 0xd9,\n\t0xe8, 0xf5, 0xcf, 0xa4, 0x6d, 0x6e, 0xde, 0xbd, 0x1c, 0x47, 0x40, 0xff, 0x23, 0x46, 0xe7, 0xb7,\n\t0x1a, 0x3a, 0xda, 0x38, 0xd8, 0xf8, 0x5b, 0x84, 0x45, 0x5f, 0x42, 0x3c, 0x02, 0xf7, 0x61, 0xfe,\n\t0xcc, 0x71, 0x11, 0xea, 0xde, 0x56, 0xed, 0x56, 0x31, 0x23, 0xf8, 0x7c, 0xc5, 0x83, 0xae, 0x51,\n\t0xe1, 0x9f, 0x0d, 0xd4, 0x70, 0xf3, 0x30, 0xe0, 0x5e, 0x08, 0x77, 0x3a, 0x9b, 0x0f, 0xdf, 0xe6,\n\t0xca, 0x91, 0xee, 0x22, 0xe9, 0x34, 0x54, 0xf1, 0xd8, 0xfe, 0xb0, 0x38, 0x50, 0xa3, 0xb4, 0x47,\n\t0xcb, 0x41, 0xb3, 0x94, 0xdc, 0x19, 0x52, 0xde, 0xf7, 0x7d, 0xf1, 0x13, 0xb8, 0xba, 0xcb, 0xb5,\n\t0x79, 0x4a, 0xdd, 0x15, 0x0f, 0xba, 0x46, 0x85, 0xbf, 0x42, 0x4d, 0x27, 0x89, 0x63, 0x08, 0xd5,\n\t0x37, 0x79, 0x7d, 0x75, 0xcb, 0x6a, 0xf6, 0x47, 0x05, 0xa7, 0xf9, 0xa0, 0xb4, 0x4b, 0x97, 0xbc,\n\t0x33, 0xbd, 0x0b, 0x92, 0xc7, 0xe0, 0x4e, 0xf5, 0xb5, 0xb2, 0xbe, 0x5b, 0xda, 0xa5, 0x4b, 0xde,\n\t0xf8, 0x04, 0xd5, 0xe1, 0x79, 0x04, 0xce, 0xb4, 0xa0, 0x7b, 0x5a, 0xfd, 0x41, 0xa1, 0xae, 0x9f,\n\t0x2e, 0xec, 0xd1, 0x92, 0x27, 0x76, 0x10, 0x72, 0x44, 0xe8, 0xf2, 0xfc, 0x27, 0xe3, 0x1d, 0xdd,\n\t0x08, 0x6b, 0xbb, 0x8b, 0xf4, 0x60, 0xaa, 0x9b, 0x3f, 0xd8, 0x33, 0x93, 0xa4, 0x0b, 0xd8, 0x96,\n\t0x8f, 0xf0, 0x6a, 0x9b, 0xf0, 0x01, 0xaa, 0x0e, 0x61, 0xac, 0x87, 0xe8, 0x06, 0xcd, 0x3e, 0xf1,\n\t0x3d, 0x54, 0x1b, 0x31, 0x3f, 0x81, 0xe2, 0x42, 0x7f, 0xba, 0xdd, 0x39, 0x2e, 0x79, 0x00, 0x34,\n\t0x17, 0x7e, 0xb9, 0x73, 0x62, 0xd8, 0x5f, 0x5f, 0x5d, 0x9b, 0x95, 0x97, 0xd7, 0x66, 0xe5, 0xd5,\n\t0xb5, 0x59, 0x79, 0x91, 0x9a, 0xc6, 0x55, 0x6a, 0x1a, 0x2f, 0x53, 0xd3, 0x78, 0x95, 0x9a, 0xc6,\n\t0x5f, 0xa9, 0x69, 0xfc, 0xf2, 0xb7, 0x59, 0xf9, 0xee, 0x68, 0xe3, 0xdf, 0x9c, 0x7f, 0x03, 0x00,\n\t0x00, 0xff, 0xff, 0x3c, 0xbe, 0x15, 0xfb, 0x02, 0x09, 0x00, 0x00,\n}\n\nfunc (m *Eviction) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Eviction) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Eviction) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.DeleteOptions != nil {\n\t\t{\n\t\t\tsize, err := m.DeleteOptions.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodDisruptionBudget) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodDisruptionBudget) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodDisruptionBudget) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodDisruptionBudgetList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodDisruptionBudgetList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodDisruptionBudgetList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodDisruptionBudgetSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodDisruptionBudgetSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodDisruptionBudgetSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.UnhealthyPodEvictionPolicy != nil {\n\t\ti -= len(*m.UnhealthyPodEvictionPolicy)\n\t\tcopy(dAtA[i:], *m.UnhealthyPodEvictionPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.UnhealthyPodEvictionPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.MaxUnavailable != nil {\n\t\t{\n\t\t\tsize, err := m.MaxUnavailable.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif m.Selector != nil {\n\t\t{\n\t\t\tsize, err := m.Selector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.MinAvailable != nil {\n\t\t{\n\t\t\tsize, err := m.MinAvailable.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PodDisruptionBudgetStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PodDisruptionBudgetStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PodDisruptionBudgetStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x3a\n\t\t}\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ExpectedPods))\n\ti--\n\tdAtA[i] = 0x30\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.DesiredHealthy))\n\ti--\n\tdAtA[i] = 0x28\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.CurrentHealthy))\n\ti--\n\tdAtA[i] = 0x20\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.DisruptionsAllowed))\n\ti--\n\tdAtA[i] = 0x18\n\tif len(m.DisruptedPods) > 0 {\n\t\tkeysForDisruptedPods := make([]string, 0, len(m.DisruptedPods))\n\t\tfor k := range m.DisruptedPods {\n\t\t\tkeysForDisruptedPods = append(keysForDisruptedPods, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForDisruptedPods)\n\t\tfor iNdEx := len(keysForDisruptedPods) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.DisruptedPods[string(keysForDisruptedPods[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForDisruptedPods[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForDisruptedPods[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForDisruptedPods[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *Eviction) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.DeleteOptions != nil {\n\t\tl = m.DeleteOptions.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PodDisruptionBudget) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PodDisruptionBudgetList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PodDisruptionBudgetSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.MinAvailable != nil {\n\t\tl = m.MinAvailable.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.Selector != nil {\n\t\tl = m.Selector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.MaxUnavailable != nil {\n\t\tl = m.MaxUnavailable.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.UnhealthyPodEvictionPolicy != nil {\n\t\tl = len(*m.UnhealthyPodEvictionPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PodDisruptionBudgetStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.ObservedGeneration))\n\tif len(m.DisruptedPods) > 0 {\n\t\tfor k, v := range m.DisruptedPods {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tn += 1 + sovGenerated(uint64(m.DisruptionsAllowed))\n\tn += 1 + sovGenerated(uint64(m.CurrentHealthy))\n\tn += 1 + sovGenerated(uint64(m.DesiredHealthy))\n\tn += 1 + sovGenerated(uint64(m.ExpectedPods))\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *Eviction) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Eviction{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`DeleteOptions:` + strings.Replace(fmt.Sprintf(\"%v\", this.DeleteOptions), \"DeleteOptions\", \"v1.DeleteOptions\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodDisruptionBudget) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodDisruptionBudget{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"PodDisruptionBudgetSpec\", \"PodDisruptionBudgetSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"PodDisruptionBudgetStatus\", \"PodDisruptionBudgetStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodDisruptionBudgetList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]PodDisruptionBudget{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"PodDisruptionBudget\", \"PodDisruptionBudget\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&PodDisruptionBudgetList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodDisruptionBudgetSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PodDisruptionBudgetSpec{`,\n\t\t`MinAvailable:` + strings.Replace(fmt.Sprintf(\"%v\", this.MinAvailable), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`Selector:` + strings.Replace(fmt.Sprintf(\"%v\", this.Selector), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`MaxUnavailable:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaxUnavailable), \"IntOrString\", \"intstr.IntOrString\", 1) + `,`,\n\t\t`UnhealthyPodEvictionPolicy:` + valueToStringGenerated(this.UnhealthyPodEvictionPolicy) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PodDisruptionBudgetStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]Condition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\tkeysForDisruptedPods := make([]string, 0, len(this.DisruptedPods))\n\tfor k := range this.DisruptedPods {\n\t\tkeysForDisruptedPods = append(keysForDisruptedPods, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForDisruptedPods)\n\tmapStringForDisruptedPods := \"map[string]v1.Time{\"\n\tfor _, k := range keysForDisruptedPods {\n\t\tmapStringForDisruptedPods += fmt.Sprintf(\"%v: %v,\", k, this.DisruptedPods[k])\n\t}\n\tmapStringForDisruptedPods += \"}\"\n\ts := strings.Join([]string{`&PodDisruptionBudgetStatus{`,\n\t\t`ObservedGeneration:` + fmt.Sprintf(\"%v\", this.ObservedGeneration) + `,`,\n\t\t`DisruptedPods:` + mapStringForDisruptedPods + `,`,\n\t\t`DisruptionsAllowed:` + fmt.Sprintf(\"%v\", this.DisruptionsAllowed) + `,`,\n\t\t`CurrentHealthy:` + fmt.Sprintf(\"%v\", this.CurrentHealthy) + `,`,\n\t\t`DesiredHealthy:` + fmt.Sprintf(\"%v\", this.DesiredHealthy) + `,`,\n\t\t`ExpectedPods:` + fmt.Sprintf(\"%v\", this.ExpectedPods) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *Eviction) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Eviction: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Eviction: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DeleteOptions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.DeleteOptions == nil {\n\t\t\t\tm.DeleteOptions = &v1.DeleteOptions{}\n\t\t\t}\n\t\t\tif err := m.DeleteOptions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodDisruptionBudget) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodDisruptionBudget: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodDisruptionBudget: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodDisruptionBudgetList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodDisruptionBudgetList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodDisruptionBudgetList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, PodDisruptionBudget{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodDisruptionBudgetSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodDisruptionBudgetSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodDisruptionBudgetSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MinAvailable\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MinAvailable == nil {\n\t\t\t\tm.MinAvailable = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.MinAvailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Selector == nil {\n\t\t\t\tm.Selector = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaxUnavailable\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaxUnavailable == nil {\n\t\t\t\tm.MaxUnavailable = &intstr.IntOrString{}\n\t\t\t}\n\t\t\tif err := m.MaxUnavailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UnhealthyPodEvictionPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := UnhealthyPodEvictionPolicyType(dAtA[iNdEx:postIndex])\n\t\t\tm.UnhealthyPodEvictionPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PodDisruptionBudgetStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PodDisruptionBudgetStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PodDisruptionBudgetStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tm.ObservedGeneration = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ObservedGeneration |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DisruptedPods\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.DisruptedPods == nil {\n\t\t\t\tm.DisruptedPods = make(map[string]v1.Time)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tmapvalue := &v1.Time{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &v1.Time{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.DisruptedPods[mapkey] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DisruptionsAllowed\", wireType)\n\t\t\t}\n\t\t\tm.DisruptionsAllowed = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.DisruptionsAllowed |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CurrentHealthy\", wireType)\n\t\t\t}\n\t\t\tm.CurrentHealthy = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.CurrentHealthy |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DesiredHealthy\", wireType)\n\t\t\t}\n\t\t\tm.DesiredHealthy = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.DesiredHealthy |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ExpectedPods\", wireType)\n\t\t\t}\n\t\t\tm.ExpectedPods = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ExpectedPods |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, v1.Condition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/policy/v1beta1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.policy.v1beta1;\n\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/util/intstr/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/policy/v1beta1\";\n\n// Eviction evicts a pod from its node subject to certain policies and safety constraints.\n// This is a subresource of Pod.  A request to cause such an eviction is\n// created by POSTing to .../pods/<pod name>/evictions.\nmessage Eviction {\n  // ObjectMeta describes the pod that is being evicted.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // DeleteOptions may be provided\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.DeleteOptions deleteOptions = 2;\n}\n\n// PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods\nmessage PodDisruptionBudget {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Specification of the desired behavior of the PodDisruptionBudget.\n  // +optional\n  optional PodDisruptionBudgetSpec spec = 2;\n\n  // Most recently observed status of the PodDisruptionBudget.\n  // +optional\n  optional PodDisruptionBudgetStatus status = 3;\n}\n\n// PodDisruptionBudgetList is a collection of PodDisruptionBudgets.\nmessage PodDisruptionBudgetList {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items list individual PodDisruptionBudget objects\n  repeated PodDisruptionBudget items = 2;\n}\n\n// PodDisruptionBudgetSpec is a description of a PodDisruptionBudget.\nmessage PodDisruptionBudgetSpec {\n  // An eviction is allowed if at least \"minAvailable\" pods selected by\n  // \"selector\" will still be available after the eviction, i.e. even in the\n  // absence of the evicted pod.  So for example you can prevent all voluntary\n  // evictions by specifying \"100%\".\n  // +optional\n  optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString minAvailable = 1;\n\n  // Label query over pods whose evictions are managed by the disruption\n  // budget.\n  // A null selector selects no pods.\n  // An empty selector ({}) also selects no pods, which differs from standard behavior of selecting all pods.\n  // In policy/v1, an empty selector will select all pods in the namespace.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2;\n\n  // An eviction is allowed if at most \"maxUnavailable\" pods selected by\n  // \"selector\" are unavailable after the eviction, i.e. even in absence of\n  // the evicted pod. For example, one can prevent all voluntary evictions\n  // by specifying 0. This is a mutually exclusive setting with \"minAvailable\".\n  // +optional\n  optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString maxUnavailable = 3;\n\n  // UnhealthyPodEvictionPolicy defines the criteria for when unhealthy pods\n  // should be considered for eviction. Current implementation considers healthy pods,\n  // as pods that have status.conditions item with type=\"Ready\",status=\"True\".\n  //\n  // Valid policies are IfHealthyBudget and AlwaysAllow.\n  // If no policy is specified, the default behavior will be used,\n  // which corresponds to the IfHealthyBudget policy.\n  //\n  // IfHealthyBudget policy means that running pods (status.phase=\"Running\"),\n  // but not yet healthy can be evicted only if the guarded application is not\n  // disrupted (status.currentHealthy is at least equal to status.desiredHealthy).\n  // Healthy pods will be subject to the PDB for eviction.\n  //\n  // AlwaysAllow policy means that all running pods (status.phase=\"Running\"),\n  // but not yet healthy are considered disrupted and can be evicted regardless\n  // of whether the criteria in a PDB is met. This means perspective running\n  // pods of a disrupted application might not get a chance to become healthy.\n  // Healthy pods will be subject to the PDB for eviction.\n  //\n  // Additional policies may be added in the future.\n  // Clients making eviction decisions should disallow eviction of unhealthy pods\n  // if they encounter an unrecognized policy in this field.\n  //\n  // This field is beta-level. The eviction API uses this field when\n  // the feature gate PDBUnhealthyPodEvictionPolicy is enabled (enabled by default).\n  // +optional\n  optional string unhealthyPodEvictionPolicy = 4;\n}\n\n// PodDisruptionBudgetStatus represents information about the status of a\n// PodDisruptionBudget. Status may trail the actual state of a system.\nmessage PodDisruptionBudgetStatus {\n  // Most recent generation observed when updating this PDB status. DisruptionsAllowed and other\n  // status information is valid only if observedGeneration equals to PDB's object generation.\n  // +optional\n  optional int64 observedGeneration = 1;\n\n  // DisruptedPods contains information about pods whose eviction was\n  // processed by the API server eviction subresource handler but has not\n  // yet been observed by the PodDisruptionBudget controller.\n  // A pod will be in this map from the time when the API server processed the\n  // eviction request to the time when the pod is seen by PDB controller\n  // as having been marked for deletion (or after a timeout). The key in the map is the name of the pod\n  // and the value is the time when the API server processed the eviction request. If\n  // the deletion didn't occur and a pod is still there it will be removed from\n  // the list automatically by PodDisruptionBudget controller after some time.\n  // If everything goes smooth this map should be empty for the most of the time.\n  // Large number of entries in the map may indicate problems with pod deletions.\n  // +optional\n  map<string, .k8s.io.apimachinery.pkg.apis.meta.v1.Time> disruptedPods = 2;\n\n  // Number of pod disruptions that are currently allowed.\n  optional int32 disruptionsAllowed = 3;\n\n  // current number of healthy pods\n  optional int32 currentHealthy = 4;\n\n  // minimum desired number of healthy pods\n  optional int32 desiredHealthy = 5;\n\n  // total number of pods counted by this disruption budget\n  optional int32 expectedPods = 6;\n\n  // Conditions contain conditions for PDB. The disruption controller sets the\n  // DisruptionAllowed condition. The following are known values for the reason field\n  // (additional reasons could be added in the future):\n  // - SyncFailed: The controller encountered an error and wasn't able to compute\n  //               the number of allowed disruptions. Therefore no disruptions are\n  //               allowed and the status of the condition will be False.\n  // - InsufficientPods: The number of pods are either at or below the number\n  //                     required by the PodDisruptionBudget. No disruptions are\n  //                     allowed and the status of the condition will be False.\n  // - SufficientPods: There are more pods than required by the PodDisruptionBudget.\n  //                   The condition will be True, and the number of allowed\n  //                   disruptions are provided by the disruptionsAllowed property.\n  //\n  // +optional\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=type\n  repeated .k8s.io.apimachinery.pkg.apis.meta.v1.Condition conditions = 7;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/policy/v1beta1/register.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"policy\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&PodDisruptionBudget{},\n\t\t&PodDisruptionBudgetList{},\n\t\t&Eviction{},\n\t)\n\t// Add the watch version that applies\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/policy/v1beta1/types.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// PodDisruptionBudgetSpec is a description of a PodDisruptionBudget.\ntype PodDisruptionBudgetSpec struct {\n\t// An eviction is allowed if at least \"minAvailable\" pods selected by\n\t// \"selector\" will still be available after the eviction, i.e. even in the\n\t// absence of the evicted pod.  So for example you can prevent all voluntary\n\t// evictions by specifying \"100%\".\n\t// +optional\n\tMinAvailable *intstr.IntOrString `json:\"minAvailable,omitempty\" protobuf:\"bytes,1,opt,name=minAvailable\"`\n\n\t// Label query over pods whose evictions are managed by the disruption\n\t// budget.\n\t// A null selector selects no pods.\n\t// An empty selector ({}) also selects no pods, which differs from standard behavior of selecting all pods.\n\t// In policy/v1, an empty selector will select all pods in the namespace.\n\t// +optional\n\tSelector *metav1.LabelSelector `json:\"selector,omitempty\" protobuf:\"bytes,2,opt,name=selector\"`\n\n\t// An eviction is allowed if at most \"maxUnavailable\" pods selected by\n\t// \"selector\" are unavailable after the eviction, i.e. even in absence of\n\t// the evicted pod. For example, one can prevent all voluntary evictions\n\t// by specifying 0. This is a mutually exclusive setting with \"minAvailable\".\n\t// +optional\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\" protobuf:\"bytes,3,opt,name=maxUnavailable\"`\n\n\t// UnhealthyPodEvictionPolicy defines the criteria for when unhealthy pods\n\t// should be considered for eviction. Current implementation considers healthy pods,\n\t// as pods that have status.conditions item with type=\"Ready\",status=\"True\".\n\t//\n\t// Valid policies are IfHealthyBudget and AlwaysAllow.\n\t// If no policy is specified, the default behavior will be used,\n\t// which corresponds to the IfHealthyBudget policy.\n\t//\n\t// IfHealthyBudget policy means that running pods (status.phase=\"Running\"),\n\t// but not yet healthy can be evicted only if the guarded application is not\n\t// disrupted (status.currentHealthy is at least equal to status.desiredHealthy).\n\t// Healthy pods will be subject to the PDB for eviction.\n\t//\n\t// AlwaysAllow policy means that all running pods (status.phase=\"Running\"),\n\t// but not yet healthy are considered disrupted and can be evicted regardless\n\t// of whether the criteria in a PDB is met. This means perspective running\n\t// pods of a disrupted application might not get a chance to become healthy.\n\t// Healthy pods will be subject to the PDB for eviction.\n\t//\n\t// Additional policies may be added in the future.\n\t// Clients making eviction decisions should disallow eviction of unhealthy pods\n\t// if they encounter an unrecognized policy in this field.\n\t//\n\t// This field is beta-level. The eviction API uses this field when\n\t// the feature gate PDBUnhealthyPodEvictionPolicy is enabled (enabled by default).\n\t// +optional\n\tUnhealthyPodEvictionPolicy *UnhealthyPodEvictionPolicyType `json:\"unhealthyPodEvictionPolicy,omitempty\" protobuf:\"bytes,4,opt,name=unhealthyPodEvictionPolicy\"`\n}\n\n// UnhealthyPodEvictionPolicyType defines the criteria for when unhealthy pods\n// should be considered for eviction.\n// +enum\ntype UnhealthyPodEvictionPolicyType string\n\nconst (\n\t// IfHealthyBudget policy means that running pods (status.phase=\"Running\"),\n\t// but not yet healthy can be evicted only if the guarded application is not\n\t// disrupted (status.currentHealthy is at least equal to status.desiredHealthy).\n\t// Healthy pods will be subject to the PDB for eviction.\n\tIfHealthyBudget UnhealthyPodEvictionPolicyType = \"IfHealthyBudget\"\n\n\t// AlwaysAllow policy means that all running pods (status.phase=\"Running\"),\n\t// but not yet healthy are considered disrupted and can be evicted regardless\n\t// of whether the criteria in a PDB is met. This means perspective running\n\t// pods of a disrupted application might not get a chance to become healthy.\n\t// Healthy pods will be subject to the PDB for eviction.\n\tAlwaysAllow UnhealthyPodEvictionPolicyType = \"AlwaysAllow\"\n)\n\n// PodDisruptionBudgetStatus represents information about the status of a\n// PodDisruptionBudget. Status may trail the actual state of a system.\ntype PodDisruptionBudgetStatus struct {\n\t// Most recent generation observed when updating this PDB status. DisruptionsAllowed and other\n\t// status information is valid only if observedGeneration equals to PDB's object generation.\n\t// +optional\n\tObservedGeneration int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,1,opt,name=observedGeneration\"`\n\n\t// DisruptedPods contains information about pods whose eviction was\n\t// processed by the API server eviction subresource handler but has not\n\t// yet been observed by the PodDisruptionBudget controller.\n\t// A pod will be in this map from the time when the API server processed the\n\t// eviction request to the time when the pod is seen by PDB controller\n\t// as having been marked for deletion (or after a timeout). The key in the map is the name of the pod\n\t// and the value is the time when the API server processed the eviction request. If\n\t// the deletion didn't occur and a pod is still there it will be removed from\n\t// the list automatically by PodDisruptionBudget controller after some time.\n\t// If everything goes smooth this map should be empty for the most of the time.\n\t// Large number of entries in the map may indicate problems with pod deletions.\n\t// +optional\n\tDisruptedPods map[string]metav1.Time `json:\"disruptedPods,omitempty\" protobuf:\"bytes,2,rep,name=disruptedPods\"`\n\n\t// Number of pod disruptions that are currently allowed.\n\tDisruptionsAllowed int32 `json:\"disruptionsAllowed\" protobuf:\"varint,3,opt,name=disruptionsAllowed\"`\n\n\t// current number of healthy pods\n\tCurrentHealthy int32 `json:\"currentHealthy\" protobuf:\"varint,4,opt,name=currentHealthy\"`\n\n\t// minimum desired number of healthy pods\n\tDesiredHealthy int32 `json:\"desiredHealthy\" protobuf:\"varint,5,opt,name=desiredHealthy\"`\n\n\t// total number of pods counted by this disruption budget\n\tExpectedPods int32 `json:\"expectedPods\" protobuf:\"varint,6,opt,name=expectedPods\"`\n\n\t// Conditions contain conditions for PDB. The disruption controller sets the\n\t// DisruptionAllowed condition. The following are known values for the reason field\n\t// (additional reasons could be added in the future):\n\t// - SyncFailed: The controller encountered an error and wasn't able to compute\n\t//               the number of allowed disruptions. Therefore no disruptions are\n\t//               allowed and the status of the condition will be False.\n\t// - InsufficientPods: The number of pods are either at or below the number\n\t//                     required by the PodDisruptionBudget. No disruptions are\n\t//                     allowed and the status of the condition will be False.\n\t// - SufficientPods: There are more pods than required by the PodDisruptionBudget.\n\t//                   The condition will be True, and the number of allowed\n\t//                   disruptions are provided by the disruptionsAllowed property.\n\t//\n\t// +optional\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=type\n\tConditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,7,rep,name=conditions\"`\n}\n\nconst (\n\t// DisruptionAllowedCondition is a condition set by the disruption controller\n\t// that signal whether any of the pods covered by the PDB can be disrupted.\n\tDisruptionAllowedCondition = \"DisruptionAllowed\"\n\n\t// SyncFailedReason is set on the DisruptionAllowed condition if reconcile\n\t// of the PDB failed and therefore disruption of pods are not allowed.\n\tSyncFailedReason = \"SyncFailed\"\n\t// SufficientPodsReason is set on the DisruptionAllowed condition if there are\n\t// more pods covered by the PDB than required and at least one can be disrupted.\n\tSufficientPodsReason = \"SufficientPods\"\n\t// InsufficientPodsReason is set on the DisruptionAllowed condition if the number\n\t// of pods are equal to or fewer than required by the PDB.\n\tInsufficientPodsReason = \"InsufficientPods\"\n)\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.5\n// +k8s:prerelease-lifecycle-gen:deprecated=1.21\n// +k8s:prerelease-lifecycle-gen:removed=1.25\n// +k8s:prerelease-lifecycle-gen:replacement=policy,v1,PodDisruptionBudget\n\n// PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods\ntype PodDisruptionBudget struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Specification of the desired behavior of the PodDisruptionBudget.\n\t// +optional\n\tSpec PodDisruptionBudgetSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\t// Most recently observed status of the PodDisruptionBudget.\n\t// +optional\n\tStatus PodDisruptionBudgetStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.5\n// +k8s:prerelease-lifecycle-gen:deprecated=1.21\n// +k8s:prerelease-lifecycle-gen:removed=1.25\n// +k8s:prerelease-lifecycle-gen:replacement=policy,v1,PodDisruptionBudgetList\n\n// PodDisruptionBudgetList is a collection of PodDisruptionBudgets.\ntype PodDisruptionBudgetList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// items list individual PodDisruptionBudget objects\n\tItems []PodDisruptionBudget `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +genclient:noVerbs\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.5\n// +k8s:prerelease-lifecycle-gen:deprecated=1.22\n\n// Eviction evicts a pod from its node subject to certain policies and safety constraints.\n// This is a subresource of Pod.  A request to cause such an eviction is\n// created by POSTing to .../pods/<pod name>/evictions.\ntype Eviction struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// ObjectMeta describes the pod that is being evicted.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// DeleteOptions may be provided\n\t// +optional\n\tDeleteOptions *metav1.DeleteOptions `json:\"deleteOptions,omitempty\" protobuf:\"bytes,2,opt,name=deleteOptions\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/policy/v1beta1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_Eviction = map[string]string{\n\t\"\":              \"Eviction evicts a pod from its node subject to certain policies and safety constraints. This is a subresource of Pod.  A request to cause such an eviction is created by POSTing to .../pods/<pod name>/evictions.\",\n\t\"metadata\":      \"ObjectMeta describes the pod that is being evicted.\",\n\t\"deleteOptions\": \"DeleteOptions may be provided\",\n}\n\nfunc (Eviction) SwaggerDoc() map[string]string {\n\treturn map_Eviction\n}\n\nvar map_PodDisruptionBudget = map[string]string{\n\t\"\":         \"PodDisruptionBudget is an object to define the max disruption that can be caused to a collection of pods\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Specification of the desired behavior of the PodDisruptionBudget.\",\n\t\"status\":   \"Most recently observed status of the PodDisruptionBudget.\",\n}\n\nfunc (PodDisruptionBudget) SwaggerDoc() map[string]string {\n\treturn map_PodDisruptionBudget\n}\n\nvar map_PodDisruptionBudgetList = map[string]string{\n\t\"\":         \"PodDisruptionBudgetList is a collection of PodDisruptionBudgets.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items list individual PodDisruptionBudget objects\",\n}\n\nfunc (PodDisruptionBudgetList) SwaggerDoc() map[string]string {\n\treturn map_PodDisruptionBudgetList\n}\n\nvar map_PodDisruptionBudgetSpec = map[string]string{\n\t\"\":                           \"PodDisruptionBudgetSpec is a description of a PodDisruptionBudget.\",\n\t\"minAvailable\":               \"An eviction is allowed if at least \\\"minAvailable\\\" pods selected by \\\"selector\\\" will still be available after the eviction, i.e. even in the absence of the evicted pod.  So for example you can prevent all voluntary evictions by specifying \\\"100%\\\".\",\n\t\"selector\":                   \"Label query over pods whose evictions are managed by the disruption budget. A null selector selects no pods. An empty selector ({}) also selects no pods, which differs from standard behavior of selecting all pods. In policy/v1, an empty selector will select all pods in the namespace.\",\n\t\"maxUnavailable\":             \"An eviction is allowed if at most \\\"maxUnavailable\\\" pods selected by \\\"selector\\\" are unavailable after the eviction, i.e. even in absence of the evicted pod. For example, one can prevent all voluntary evictions by specifying 0. This is a mutually exclusive setting with \\\"minAvailable\\\".\",\n\t\"unhealthyPodEvictionPolicy\": \"UnhealthyPodEvictionPolicy defines the criteria for when unhealthy pods should be considered for eviction. Current implementation considers healthy pods, as pods that have status.conditions item with type=\\\"Ready\\\",status=\\\"True\\\".\\n\\nValid policies are IfHealthyBudget and AlwaysAllow. If no policy is specified, the default behavior will be used, which corresponds to the IfHealthyBudget policy.\\n\\nIfHealthyBudget policy means that running pods (status.phase=\\\"Running\\\"), but not yet healthy can be evicted only if the guarded application is not disrupted (status.currentHealthy is at least equal to status.desiredHealthy). Healthy pods will be subject to the PDB for eviction.\\n\\nAlwaysAllow policy means that all running pods (status.phase=\\\"Running\\\"), but not yet healthy are considered disrupted and can be evicted regardless of whether the criteria in a PDB is met. This means perspective running pods of a disrupted application might not get a chance to become healthy. Healthy pods will be subject to the PDB for eviction.\\n\\nAdditional policies may be added in the future. Clients making eviction decisions should disallow eviction of unhealthy pods if they encounter an unrecognized policy in this field.\\n\\nThis field is beta-level. The eviction API uses this field when the feature gate PDBUnhealthyPodEvictionPolicy is enabled (enabled by default).\",\n}\n\nfunc (PodDisruptionBudgetSpec) SwaggerDoc() map[string]string {\n\treturn map_PodDisruptionBudgetSpec\n}\n\nvar map_PodDisruptionBudgetStatus = map[string]string{\n\t\"\":                   \"PodDisruptionBudgetStatus represents information about the status of a PodDisruptionBudget. Status may trail the actual state of a system.\",\n\t\"observedGeneration\": \"Most recent generation observed when updating this PDB status. DisruptionsAllowed and other status information is valid only if observedGeneration equals to PDB's object generation.\",\n\t\"disruptedPods\":      \"DisruptedPods contains information about pods whose eviction was processed by the API server eviction subresource handler but has not yet been observed by the PodDisruptionBudget controller. A pod will be in this map from the time when the API server processed the eviction request to the time when the pod is seen by PDB controller as having been marked for deletion (or after a timeout). The key in the map is the name of the pod and the value is the time when the API server processed the eviction request. If the deletion didn't occur and a pod is still there it will be removed from the list automatically by PodDisruptionBudget controller after some time. If everything goes smooth this map should be empty for the most of the time. Large number of entries in the map may indicate problems with pod deletions.\",\n\t\"disruptionsAllowed\": \"Number of pod disruptions that are currently allowed.\",\n\t\"currentHealthy\":     \"current number of healthy pods\",\n\t\"desiredHealthy\":     \"minimum desired number of healthy pods\",\n\t\"expectedPods\":       \"total number of pods counted by this disruption budget\",\n\t\"conditions\":         \"Conditions contain conditions for PDB. The disruption controller sets the DisruptionAllowed condition. The following are known values for the reason field (additional reasons could be added in the future): - SyncFailed: The controller encountered an error and wasn't able to compute\\n              the number of allowed disruptions. Therefore no disruptions are\\n              allowed and the status of the condition will be False.\\n- InsufficientPods: The number of pods are either at or below the number\\n                    required by the PodDisruptionBudget. No disruptions are\\n                    allowed and the status of the condition will be False.\\n- SufficientPods: There are more pods than required by the PodDisruptionBudget.\\n                  The condition will be True, and the number of allowed\\n                  disruptions are provided by the disruptionsAllowed property.\",\n}\n\nfunc (PodDisruptionBudgetStatus) SwaggerDoc() map[string]string {\n\treturn map_PodDisruptionBudgetStatus\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/policy/v1beta1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Eviction) DeepCopyInto(out *Eviction) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.DeleteOptions != nil {\n\t\tin, out := &in.DeleteOptions, &out.DeleteOptions\n\t\t*out = new(v1.DeleteOptions)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Eviction.\nfunc (in *Eviction) DeepCopy() *Eviction {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Eviction)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Eviction) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodDisruptionBudget) DeepCopyInto(out *PodDisruptionBudget) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodDisruptionBudget.\nfunc (in *PodDisruptionBudget) DeepCopy() *PodDisruptionBudget {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodDisruptionBudget)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PodDisruptionBudget) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodDisruptionBudgetList) DeepCopyInto(out *PodDisruptionBudgetList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]PodDisruptionBudget, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodDisruptionBudgetList.\nfunc (in *PodDisruptionBudgetList) DeepCopy() *PodDisruptionBudgetList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodDisruptionBudgetList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PodDisruptionBudgetList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodDisruptionBudgetSpec) DeepCopyInto(out *PodDisruptionBudgetSpec) {\n\t*out = *in\n\tif in.MinAvailable != nil {\n\t\tin, out := &in.MinAvailable, &out.MinAvailable\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\tif in.Selector != nil {\n\t\tin, out := &in.Selector, &out.Selector\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.MaxUnavailable != nil {\n\t\tin, out := &in.MaxUnavailable, &out.MaxUnavailable\n\t\t*out = new(intstr.IntOrString)\n\t\t**out = **in\n\t}\n\tif in.UnhealthyPodEvictionPolicy != nil {\n\t\tin, out := &in.UnhealthyPodEvictionPolicy, &out.UnhealthyPodEvictionPolicy\n\t\t*out = new(UnhealthyPodEvictionPolicyType)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodDisruptionBudgetSpec.\nfunc (in *PodDisruptionBudgetSpec) DeepCopy() *PodDisruptionBudgetSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodDisruptionBudgetSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PodDisruptionBudgetStatus) DeepCopyInto(out *PodDisruptionBudgetStatus) {\n\t*out = *in\n\tif in.DisruptedPods != nil {\n\t\tin, out := &in.DisruptedPods, &out.DisruptedPods\n\t\t*out = make(map[string]v1.Time, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = *val.DeepCopy()\n\t\t}\n\t}\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]v1.Condition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodDisruptionBudgetStatus.\nfunc (in *PodDisruptionBudgetStatus) DeepCopy() *PodDisruptionBudgetStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PodDisruptionBudgetStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/policy/v1beta1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *Eviction) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 5\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *Eviction) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *Eviction) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 25\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *PodDisruptionBudget) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 5\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *PodDisruptionBudget) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 21\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *PodDisruptionBudget) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"policy\", Version: \"v1\", Kind: \"PodDisruptionBudget\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *PodDisruptionBudget) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 25\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *PodDisruptionBudgetList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 5\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *PodDisruptionBudgetList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 21\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *PodDisruptionBudgetList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"policy\", Version: \"v1\", Kind: \"PodDisruptionBudgetList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *PodDisruptionBudgetList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 25\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1/doc.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n// +groupName=rbac.authorization.k8s.io\n\npackage v1 // import \"k8s.io/api/rbac/v1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/rbac/v1/generated.proto\n\npackage v1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *AggregationRule) Reset()      { *m = AggregationRule{} }\nfunc (*AggregationRule) ProtoMessage() {}\nfunc (*AggregationRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c8ba2e7dd472de66, []int{0}\n}\nfunc (m *AggregationRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *AggregationRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *AggregationRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_AggregationRule.Merge(m, src)\n}\nfunc (m *AggregationRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *AggregationRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_AggregationRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_AggregationRule proto.InternalMessageInfo\n\nfunc (m *ClusterRole) Reset()      { *m = ClusterRole{} }\nfunc (*ClusterRole) ProtoMessage() {}\nfunc (*ClusterRole) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c8ba2e7dd472de66, []int{1}\n}\nfunc (m *ClusterRole) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ClusterRole) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ClusterRole) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ClusterRole.Merge(m, src)\n}\nfunc (m *ClusterRole) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ClusterRole) XXX_DiscardUnknown() {\n\txxx_messageInfo_ClusterRole.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ClusterRole proto.InternalMessageInfo\n\nfunc (m *ClusterRoleBinding) Reset()      { *m = ClusterRoleBinding{} }\nfunc (*ClusterRoleBinding) ProtoMessage() {}\nfunc (*ClusterRoleBinding) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c8ba2e7dd472de66, []int{2}\n}\nfunc (m *ClusterRoleBinding) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ClusterRoleBinding) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ClusterRoleBinding) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ClusterRoleBinding.Merge(m, src)\n}\nfunc (m *ClusterRoleBinding) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ClusterRoleBinding) XXX_DiscardUnknown() {\n\txxx_messageInfo_ClusterRoleBinding.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ClusterRoleBinding proto.InternalMessageInfo\n\nfunc (m *ClusterRoleBindingList) Reset()      { *m = ClusterRoleBindingList{} }\nfunc (*ClusterRoleBindingList) ProtoMessage() {}\nfunc (*ClusterRoleBindingList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c8ba2e7dd472de66, []int{3}\n}\nfunc (m *ClusterRoleBindingList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ClusterRoleBindingList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ClusterRoleBindingList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ClusterRoleBindingList.Merge(m, src)\n}\nfunc (m *ClusterRoleBindingList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ClusterRoleBindingList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ClusterRoleBindingList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ClusterRoleBindingList proto.InternalMessageInfo\n\nfunc (m *ClusterRoleList) Reset()      { *m = ClusterRoleList{} }\nfunc (*ClusterRoleList) ProtoMessage() {}\nfunc (*ClusterRoleList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c8ba2e7dd472de66, []int{4}\n}\nfunc (m *ClusterRoleList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ClusterRoleList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ClusterRoleList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ClusterRoleList.Merge(m, src)\n}\nfunc (m *ClusterRoleList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ClusterRoleList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ClusterRoleList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ClusterRoleList proto.InternalMessageInfo\n\nfunc (m *PolicyRule) Reset()      { *m = PolicyRule{} }\nfunc (*PolicyRule) ProtoMessage() {}\nfunc (*PolicyRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c8ba2e7dd472de66, []int{5}\n}\nfunc (m *PolicyRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PolicyRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PolicyRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PolicyRule.Merge(m, src)\n}\nfunc (m *PolicyRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PolicyRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_PolicyRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PolicyRule proto.InternalMessageInfo\n\nfunc (m *Role) Reset()      { *m = Role{} }\nfunc (*Role) ProtoMessage() {}\nfunc (*Role) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c8ba2e7dd472de66, []int{6}\n}\nfunc (m *Role) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Role) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Role) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Role.Merge(m, src)\n}\nfunc (m *Role) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Role) XXX_DiscardUnknown() {\n\txxx_messageInfo_Role.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Role proto.InternalMessageInfo\n\nfunc (m *RoleBinding) Reset()      { *m = RoleBinding{} }\nfunc (*RoleBinding) ProtoMessage() {}\nfunc (*RoleBinding) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c8ba2e7dd472de66, []int{7}\n}\nfunc (m *RoleBinding) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RoleBinding) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RoleBinding) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RoleBinding.Merge(m, src)\n}\nfunc (m *RoleBinding) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RoleBinding) XXX_DiscardUnknown() {\n\txxx_messageInfo_RoleBinding.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RoleBinding proto.InternalMessageInfo\n\nfunc (m *RoleBindingList) Reset()      { *m = RoleBindingList{} }\nfunc (*RoleBindingList) ProtoMessage() {}\nfunc (*RoleBindingList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c8ba2e7dd472de66, []int{8}\n}\nfunc (m *RoleBindingList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RoleBindingList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RoleBindingList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RoleBindingList.Merge(m, src)\n}\nfunc (m *RoleBindingList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RoleBindingList) XXX_DiscardUnknown() {\n\txxx_messageInfo_RoleBindingList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RoleBindingList proto.InternalMessageInfo\n\nfunc (m *RoleList) Reset()      { *m = RoleList{} }\nfunc (*RoleList) ProtoMessage() {}\nfunc (*RoleList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c8ba2e7dd472de66, []int{9}\n}\nfunc (m *RoleList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RoleList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RoleList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RoleList.Merge(m, src)\n}\nfunc (m *RoleList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RoleList) XXX_DiscardUnknown() {\n\txxx_messageInfo_RoleList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RoleList proto.InternalMessageInfo\n\nfunc (m *RoleRef) Reset()      { *m = RoleRef{} }\nfunc (*RoleRef) ProtoMessage() {}\nfunc (*RoleRef) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c8ba2e7dd472de66, []int{10}\n}\nfunc (m *RoleRef) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RoleRef) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RoleRef) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RoleRef.Merge(m, src)\n}\nfunc (m *RoleRef) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RoleRef) XXX_DiscardUnknown() {\n\txxx_messageInfo_RoleRef.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RoleRef proto.InternalMessageInfo\n\nfunc (m *Subject) Reset()      { *m = Subject{} }\nfunc (*Subject) ProtoMessage() {}\nfunc (*Subject) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c8ba2e7dd472de66, []int{11}\n}\nfunc (m *Subject) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Subject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Subject) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Subject.Merge(m, src)\n}\nfunc (m *Subject) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Subject) XXX_DiscardUnknown() {\n\txxx_messageInfo_Subject.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Subject proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*AggregationRule)(nil), \"k8s.io.api.rbac.v1.AggregationRule\")\n\tproto.RegisterType((*ClusterRole)(nil), \"k8s.io.api.rbac.v1.ClusterRole\")\n\tproto.RegisterType((*ClusterRoleBinding)(nil), \"k8s.io.api.rbac.v1.ClusterRoleBinding\")\n\tproto.RegisterType((*ClusterRoleBindingList)(nil), \"k8s.io.api.rbac.v1.ClusterRoleBindingList\")\n\tproto.RegisterType((*ClusterRoleList)(nil), \"k8s.io.api.rbac.v1.ClusterRoleList\")\n\tproto.RegisterType((*PolicyRule)(nil), \"k8s.io.api.rbac.v1.PolicyRule\")\n\tproto.RegisterType((*Role)(nil), \"k8s.io.api.rbac.v1.Role\")\n\tproto.RegisterType((*RoleBinding)(nil), \"k8s.io.api.rbac.v1.RoleBinding\")\n\tproto.RegisterType((*RoleBindingList)(nil), \"k8s.io.api.rbac.v1.RoleBindingList\")\n\tproto.RegisterType((*RoleList)(nil), \"k8s.io.api.rbac.v1.RoleList\")\n\tproto.RegisterType((*RoleRef)(nil), \"k8s.io.api.rbac.v1.RoleRef\")\n\tproto.RegisterType((*Subject)(nil), \"k8s.io.api.rbac.v1.Subject\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/rbac/v1/generated.proto\", fileDescriptor_c8ba2e7dd472de66)\n}\n\nvar fileDescriptor_c8ba2e7dd472de66 = []byte{\n\t// 790 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x56, 0x4d, 0x6f, 0xd3, 0x4a,\n\t0x14, 0xcd, 0xa4, 0x89, 0x1a, 0x4f, 0x5e, 0x94, 0xd7, 0x79, 0xd5, 0x93, 0xd5, 0xf7, 0xe4, 0x54,\n\t0x46, 0x42, 0x95, 0x00, 0x9b, 0x16, 0x04, 0xdd, 0x74, 0x51, 0x17, 0x81, 0xaa, 0x96, 0x52, 0x4d,\n\t0x05, 0x0b, 0xc4, 0x82, 0x89, 0x33, 0x75, 0x87, 0xf8, 0x4b, 0x1e, 0x3b, 0x52, 0xc5, 0x06, 0x21,\n\t0xb1, 0x60, 0xc7, 0x12, 0x7e, 0x01, 0x1b, 0x58, 0xf2, 0x0b, 0xd8, 0x74, 0xd9, 0x65, 0x57, 0x11,\n\t0x35, 0x3f, 0x04, 0xe4, 0xaf, 0x38, 0x1f, 0x2e, 0xcd, 0x2a, 0x12, 0x62, 0x95, 0xcc, 0xbd, 0xe7,\n\t0x9e, 0x7b, 0xe6, 0xd8, 0xf7, 0x26, 0x50, 0xee, 0xae, 0x73, 0x85, 0x39, 0x2a, 0x71, 0x99, 0xea,\n\t0xb5, 0x89, 0xae, 0xf6, 0x56, 0x55, 0x83, 0xda, 0xd4, 0x23, 0x3e, 0xed, 0x28, 0xae, 0xe7, 0xf8,\n\t0x0e, 0x42, 0x09, 0x46, 0x21, 0x2e, 0x53, 0x22, 0x8c, 0xd2, 0x5b, 0x5d, 0xba, 0x61, 0x30, 0xff,\n\t0x28, 0x68, 0x2b, 0xba, 0x63, 0xa9, 0x86, 0x63, 0x38, 0x6a, 0x0c, 0x6d, 0x07, 0x87, 0xf1, 0x29,\n\t0x3e, 0xc4, 0xdf, 0x12, 0x8a, 0xa5, 0xdb, 0x79, 0x1b, 0x8b, 0xe8, 0x47, 0xcc, 0xa6, 0xde, 0xb1,\n\t0xea, 0x76, 0x8d, 0x28, 0xc0, 0x55, 0x8b, 0xfa, 0xa4, 0xa0, 0xf1, 0x92, 0x7a, 0x51, 0x95, 0x17,\n\t0xd8, 0x3e, 0xb3, 0xe8, 0x44, 0xc1, 0x9d, 0xcb, 0x0a, 0xb8, 0x7e, 0x44, 0x2d, 0x32, 0x5e, 0x27,\n\t0x7f, 0x00, 0xb0, 0xb9, 0x69, 0x18, 0x1e, 0x35, 0x88, 0xcf, 0x1c, 0x1b, 0x07, 0x26, 0x45, 0x6f,\n\t0x00, 0x5c, 0xd4, 0xcd, 0x80, 0xfb, 0xd4, 0xc3, 0x8e, 0x49, 0x0f, 0xa8, 0x49, 0x75, 0xdf, 0xf1,\n\t0xb8, 0x08, 0x96, 0xe7, 0x56, 0xea, 0x6b, 0xb7, 0x94, 0xdc, 0x95, 0x41, 0x2f, 0xc5, 0xed, 0x1a,\n\t0x51, 0x80, 0x2b, 0xd1, 0x95, 0x94, 0xde, 0xaa, 0xb2, 0x4b, 0xda, 0xd4, 0xcc, 0x6a, 0xb5, 0xff,\n\t0x4f, 0xfa, 0xad, 0x52, 0xd8, 0x6f, 0x2d, 0x6e, 0x15, 0x10, 0xe3, 0xc2, 0x76, 0xf2, 0xfb, 0x32,\n\t0xac, 0x0f, 0xc1, 0xd1, 0x73, 0x58, 0x8b, 0xc8, 0x3b, 0xc4, 0x27, 0x22, 0x58, 0x06, 0x2b, 0xf5,\n\t0xb5, 0x9b, 0xd3, 0x49, 0x79, 0xd4, 0x7e, 0x41, 0x75, 0xff, 0x21, 0xf5, 0x89, 0x86, 0x52, 0x1d,\n\t0x30, 0x8f, 0xe1, 0x01, 0x2b, 0xda, 0x82, 0x55, 0x2f, 0x30, 0x29, 0x17, 0xcb, 0xf1, 0x4d, 0x25,\n\t0x65, 0xf2, 0xf9, 0x2b, 0xfb, 0x8e, 0xc9, 0xf4, 0xe3, 0xc8, 0x28, 0xad, 0x91, 0x92, 0x55, 0xa3,\n\t0x13, 0xc7, 0x49, 0x2d, 0x6a, 0xc3, 0x26, 0x19, 0x75, 0x54, 0x9c, 0x8b, 0xd5, 0x5e, 0x29, 0xa2,\n\t0x1b, 0x33, 0x5f, 0xfb, 0x27, 0xec, 0xb7, 0xc6, 0x9f, 0x08, 0x1e, 0x27, 0x94, 0xdf, 0x96, 0x21,\n\t0x1a, 0xb2, 0x46, 0x63, 0x76, 0x87, 0xd9, 0xc6, 0x0c, 0x1c, 0xda, 0x86, 0x35, 0x1e, 0xc4, 0x89,\n\t0xcc, 0xa4, 0xff, 0x8a, 0x6e, 0x75, 0x90, 0x60, 0xb4, 0xbf, 0x53, 0xb2, 0x5a, 0x1a, 0xe0, 0x78,\n\t0x50, 0x8e, 0xee, 0xc3, 0x79, 0xcf, 0x31, 0x29, 0xa6, 0x87, 0xa9, 0x3f, 0x85, 0x4c, 0x38, 0x81,\n\t0x68, 0xcd, 0x94, 0x69, 0x3e, 0x0d, 0xe0, 0xac, 0x58, 0xfe, 0x0a, 0xe0, 0xbf, 0x93, 0x5e, 0xec,\n\t0x32, 0xee, 0xa3, 0x67, 0x13, 0x7e, 0x28, 0x53, 0xbe, 0xbc, 0x8c, 0x27, 0x6e, 0x0c, 0x2e, 0x90,\n\t0x45, 0x86, 0xbc, 0xd8, 0x81, 0x55, 0xe6, 0x53, 0x2b, 0x33, 0xe2, 0x6a, 0x91, 0xfc, 0x49, 0x61,\n\t0xf9, 0x5b, 0xb3, 0x1d, 0x15, 0xe3, 0x84, 0x43, 0xfe, 0x02, 0x60, 0x73, 0x08, 0x3c, 0x03, 0xf9,\n\t0xf7, 0x46, 0xe5, 0xb7, 0x2e, 0x93, 0x5f, 0xac, 0xfb, 0x07, 0x80, 0x30, 0x1f, 0x09, 0xd4, 0x82,\n\t0xd5, 0x1e, 0xf5, 0xda, 0xc9, 0xae, 0x10, 0x34, 0x21, 0xc2, 0x3f, 0x89, 0x02, 0x38, 0x89, 0xa3,\n\t0x6b, 0x50, 0x20, 0x2e, 0x7b, 0xe0, 0x39, 0x81, 0x9b, 0x74, 0x16, 0xb4, 0x46, 0xd8, 0x6f, 0x09,\n\t0x9b, 0xfb, 0xdb, 0x49, 0x10, 0xe7, 0xf9, 0x08, 0xec, 0x51, 0xee, 0x04, 0x9e, 0x4e, 0xb9, 0x38,\n\t0x97, 0x83, 0x71, 0x16, 0xc4, 0x79, 0x1e, 0xdd, 0x85, 0x8d, 0xec, 0xb0, 0x47, 0x2c, 0xca, 0xc5,\n\t0x4a, 0x5c, 0xb0, 0x10, 0xf6, 0x5b, 0x0d, 0x3c, 0x9c, 0xc0, 0xa3, 0x38, 0xb4, 0x01, 0x9b, 0xb6,\n\t0x63, 0x67, 0x90, 0xc7, 0x78, 0x97, 0x8b, 0xd5, 0xb8, 0x34, 0x9e, 0xc5, 0xbd, 0xd1, 0x14, 0x1e,\n\t0xc7, 0xca, 0x9f, 0x01, 0xac, 0xfc, 0x46, 0xfb, 0x49, 0x7e, 0x5d, 0x86, 0xf5, 0x3f, 0x7e, 0x69,\n\t0x44, 0xe3, 0x36, 0xdb, 0x6d, 0x31, 0xcd, 0xb8, 0x5d, 0xbe, 0x26, 0x3e, 0x02, 0x58, 0x9b, 0xd1,\n\t0x7e, 0xd8, 0x18, 0x15, 0x2c, 0x5e, 0x28, 0xb8, 0x58, 0xe9, 0x4b, 0x98, 0xb9, 0x8e, 0xae, 0xc3,\n\t0x5a, 0x36, 0xd3, 0xb1, 0x4e, 0x21, 0xef, 0x9b, 0x8d, 0x3d, 0x1e, 0x20, 0xd0, 0x32, 0xac, 0x74,\n\t0x99, 0xdd, 0x11, 0xcb, 0x31, 0xf2, 0xaf, 0x14, 0x59, 0xd9, 0x61, 0x76, 0x07, 0xc7, 0x99, 0x08,\n\t0x61, 0x13, 0x2b, 0xf9, 0x59, 0x1d, 0x42, 0x44, 0xd3, 0x8c, 0xe3, 0x8c, 0xfc, 0x09, 0xc0, 0xf9,\n\t0xf4, 0xed, 0x19, 0xf0, 0x81, 0x0b, 0xf9, 0x86, 0xf5, 0x95, 0xa7, 0xd1, 0xf7, 0xeb, 0xee, 0x48,\n\t0x85, 0x42, 0xf4, 0xc9, 0x5d, 0xa2, 0x53, 0xb1, 0x12, 0xc3, 0x16, 0x52, 0x98, 0xb0, 0x97, 0x25,\n\t0x70, 0x8e, 0xd1, 0xd6, 0x4f, 0xce, 0xa5, 0xd2, 0xe9, 0xb9, 0x54, 0x3a, 0x3b, 0x97, 0x4a, 0xaf,\n\t0x42, 0x09, 0x9c, 0x84, 0x12, 0x38, 0x0d, 0x25, 0x70, 0x16, 0x4a, 0xe0, 0x5b, 0x28, 0x81, 0x77,\n\t0xdf, 0xa5, 0xd2, 0x53, 0x34, 0xf9, 0x8f, 0xf5, 0x67, 0x00, 0x00, 0x00, 0xff, 0xff, 0x67, 0xff,\n\t0x5a, 0x4f, 0xc6, 0x0a, 0x00, 0x00,\n}\n\nfunc (m *AggregationRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *AggregationRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *AggregationRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ClusterRoleSelectors) > 0 {\n\t\tfor iNdEx := len(m.ClusterRoleSelectors) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ClusterRoleSelectors[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ClusterRole) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ClusterRole) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ClusterRole) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.AggregationRule != nil {\n\t\t{\n\t\t\tsize, err := m.AggregationRule.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif len(m.Rules) > 0 {\n\t\tfor iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Rules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ClusterRoleBinding) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ClusterRoleBinding) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ClusterRoleBinding) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.RoleRef.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.Subjects) > 0 {\n\t\tfor iNdEx := len(m.Subjects) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Subjects[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ClusterRoleBindingList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ClusterRoleBindingList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ClusterRoleBindingList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ClusterRoleList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ClusterRoleList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ClusterRoleList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PolicyRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PolicyRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PolicyRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.NonResourceURLs) > 0 {\n\t\tfor iNdEx := len(m.NonResourceURLs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.NonResourceURLs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.NonResourceURLs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.NonResourceURLs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\tif len(m.ResourceNames) > 0 {\n\t\tfor iNdEx := len(m.ResourceNames) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.ResourceNames[iNdEx])\n\t\t\tcopy(dAtA[i:], m.ResourceNames[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ResourceNames[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif len(m.Resources) > 0 {\n\t\tfor iNdEx := len(m.Resources) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Resources[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Resources[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Resources[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.APIGroups) > 0 {\n\t\tfor iNdEx := len(m.APIGroups) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.APIGroups[iNdEx])\n\t\t\tcopy(dAtA[i:], m.APIGroups[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIGroups[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Verbs) > 0 {\n\t\tfor iNdEx := len(m.Verbs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Verbs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Verbs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verbs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Role) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Role) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Role) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Rules) > 0 {\n\t\tfor iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Rules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RoleBinding) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RoleBinding) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RoleBinding) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.RoleRef.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.Subjects) > 0 {\n\t\tfor iNdEx := len(m.Subjects) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Subjects[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RoleBindingList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RoleBindingList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RoleBindingList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RoleList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RoleList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RoleList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RoleRef) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RoleRef) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RoleRef) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.APIGroup)\n\tcopy(dAtA[i:], m.APIGroup)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIGroup)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Subject) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Subject) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Subject) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Namespace)\n\tcopy(dAtA[i:], m.Namespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.APIGroup)\n\tcopy(dAtA[i:], m.APIGroup)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIGroup)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *AggregationRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.ClusterRoleSelectors) > 0 {\n\t\tfor _, e := range m.ClusterRoleSelectors {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ClusterRole) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Rules) > 0 {\n\t\tfor _, e := range m.Rules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.AggregationRule != nil {\n\t\tl = m.AggregationRule.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ClusterRoleBinding) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Subjects) > 0 {\n\t\tfor _, e := range m.Subjects {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = m.RoleRef.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ClusterRoleBindingList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ClusterRoleList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PolicyRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Verbs) > 0 {\n\t\tfor _, s := range m.Verbs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.APIGroups) > 0 {\n\t\tfor _, s := range m.APIGroups {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Resources) > 0 {\n\t\tfor _, s := range m.Resources {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.ResourceNames) > 0 {\n\t\tfor _, s := range m.ResourceNames {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.NonResourceURLs) > 0 {\n\t\tfor _, s := range m.NonResourceURLs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *Role) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Rules) > 0 {\n\t\tfor _, e := range m.Rules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *RoleBinding) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Subjects) > 0 {\n\t\tfor _, e := range m.Subjects {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = m.RoleRef.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *RoleBindingList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *RoleList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *RoleRef) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.APIGroup)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *Subject) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.APIGroup)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Namespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *AggregationRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForClusterRoleSelectors := \"[]LabelSelector{\"\n\tfor _, f := range this.ClusterRoleSelectors {\n\t\trepeatedStringForClusterRoleSelectors += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForClusterRoleSelectors += \"}\"\n\ts := strings.Join([]string{`&AggregationRule{`,\n\t\t`ClusterRoleSelectors:` + repeatedStringForClusterRoleSelectors + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ClusterRole) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForRules := \"[]PolicyRule{\"\n\tfor _, f := range this.Rules {\n\t\trepeatedStringForRules += strings.Replace(strings.Replace(f.String(), \"PolicyRule\", \"PolicyRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRules += \"}\"\n\ts := strings.Join([]string{`&ClusterRole{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Rules:` + repeatedStringForRules + `,`,\n\t\t`AggregationRule:` + strings.Replace(this.AggregationRule.String(), \"AggregationRule\", \"AggregationRule\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ClusterRoleBinding) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForSubjects := \"[]Subject{\"\n\tfor _, f := range this.Subjects {\n\t\trepeatedStringForSubjects += strings.Replace(strings.Replace(f.String(), \"Subject\", \"Subject\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForSubjects += \"}\"\n\ts := strings.Join([]string{`&ClusterRoleBinding{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Subjects:` + repeatedStringForSubjects + `,`,\n\t\t`RoleRef:` + strings.Replace(strings.Replace(this.RoleRef.String(), \"RoleRef\", \"RoleRef\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ClusterRoleBindingList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ClusterRoleBinding{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ClusterRoleBinding\", \"ClusterRoleBinding\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ClusterRoleBindingList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ClusterRoleList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ClusterRole{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ClusterRole\", \"ClusterRole\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ClusterRoleList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PolicyRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PolicyRule{`,\n\t\t`Verbs:` + fmt.Sprintf(\"%v\", this.Verbs) + `,`,\n\t\t`APIGroups:` + fmt.Sprintf(\"%v\", this.APIGroups) + `,`,\n\t\t`Resources:` + fmt.Sprintf(\"%v\", this.Resources) + `,`,\n\t\t`ResourceNames:` + fmt.Sprintf(\"%v\", this.ResourceNames) + `,`,\n\t\t`NonResourceURLs:` + fmt.Sprintf(\"%v\", this.NonResourceURLs) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Role) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForRules := \"[]PolicyRule{\"\n\tfor _, f := range this.Rules {\n\t\trepeatedStringForRules += strings.Replace(strings.Replace(f.String(), \"PolicyRule\", \"PolicyRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRules += \"}\"\n\ts := strings.Join([]string{`&Role{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Rules:` + repeatedStringForRules + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RoleBinding) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForSubjects := \"[]Subject{\"\n\tfor _, f := range this.Subjects {\n\t\trepeatedStringForSubjects += strings.Replace(strings.Replace(f.String(), \"Subject\", \"Subject\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForSubjects += \"}\"\n\ts := strings.Join([]string{`&RoleBinding{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Subjects:` + repeatedStringForSubjects + `,`,\n\t\t`RoleRef:` + strings.Replace(strings.Replace(this.RoleRef.String(), \"RoleRef\", \"RoleRef\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RoleBindingList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]RoleBinding{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"RoleBinding\", \"RoleBinding\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&RoleBindingList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RoleList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Role{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Role\", \"Role\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&RoleList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RoleRef) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RoleRef{`,\n\t\t`APIGroup:` + fmt.Sprintf(\"%v\", this.APIGroup) + `,`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Subject) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Subject{`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`APIGroup:` + fmt.Sprintf(\"%v\", this.APIGroup) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *AggregationRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: AggregationRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: AggregationRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ClusterRoleSelectors\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ClusterRoleSelectors = append(m.ClusterRoleSelectors, v1.LabelSelector{})\n\t\t\tif err := m.ClusterRoleSelectors[len(m.ClusterRoleSelectors)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ClusterRole) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRole: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRole: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Rules = append(m.Rules, PolicyRule{})\n\t\t\tif err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AggregationRule\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AggregationRule == nil {\n\t\t\t\tm.AggregationRule = &AggregationRule{}\n\t\t\t}\n\t\t\tif err := m.AggregationRule.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ClusterRoleBinding) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRoleBinding: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRoleBinding: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Subjects\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Subjects = append(m.Subjects, Subject{})\n\t\t\tif err := m.Subjects[len(m.Subjects)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RoleRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.RoleRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ClusterRoleBindingList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRoleBindingList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRoleBindingList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ClusterRoleBinding{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ClusterRoleList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRoleList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRoleList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ClusterRole{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PolicyRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PolicyRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PolicyRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verbs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verbs = append(m.Verbs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIGroups\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIGroups = append(m.APIGroups, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resources\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resources = append(m.Resources, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceNames\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceNames = append(m.ResourceNames, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NonResourceURLs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NonResourceURLs = append(m.NonResourceURLs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Role) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Role: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Role: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Rules = append(m.Rules, PolicyRule{})\n\t\t\tif err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RoleBinding) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RoleBinding: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RoleBinding: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Subjects\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Subjects = append(m.Subjects, Subject{})\n\t\t\tif err := m.Subjects[len(m.Subjects)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RoleRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.RoleRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RoleBindingList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RoleBindingList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RoleBindingList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, RoleBinding{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RoleList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RoleList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RoleList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Role{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RoleRef) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RoleRef: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RoleRef: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIGroup\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIGroup = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Subject) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Subject: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Subject: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIGroup\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIGroup = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.rbac.v1;\n\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/rbac/v1\";\n\n// AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole\nmessage AggregationRule {\n  // ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules.\n  // If any of the selectors match, then the ClusterRole's permissions will be added\n  // +optional\n  // +listType=atomic\n  repeated .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector clusterRoleSelectors = 1;\n}\n\n// ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.\nmessage ClusterRole {\n  // Standard object's metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Rules holds all the PolicyRules for this ClusterRole\n  // +optional\n  // +listType=atomic\n  repeated PolicyRule rules = 2;\n\n  // AggregationRule is an optional field that describes how to build the Rules for this ClusterRole.\n  // If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be\n  // stomped by the controller.\n  // +optional\n  optional AggregationRule aggregationRule = 3;\n}\n\n// ClusterRoleBinding references a ClusterRole, but not contain it.  It can reference a ClusterRole in the global namespace,\n// and adds who information via Subject.\nmessage ClusterRoleBinding {\n  // Standard object's metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Subjects holds references to the objects the role applies to.\n  // +optional\n  // +listType=atomic\n  repeated Subject subjects = 2;\n\n  // RoleRef can only reference a ClusterRole in the global namespace.\n  // If the RoleRef cannot be resolved, the Authorizer must return an error.\n  // This field is immutable.\n  optional RoleRef roleRef = 3;\n}\n\n// ClusterRoleBindingList is a collection of ClusterRoleBindings\nmessage ClusterRoleBindingList {\n  // Standard object's metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is a list of ClusterRoleBindings\n  repeated ClusterRoleBinding items = 2;\n}\n\n// ClusterRoleList is a collection of ClusterRoles\nmessage ClusterRoleList {\n  // Standard object's metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is a list of ClusterRoles\n  repeated ClusterRole items = 2;\n}\n\n// PolicyRule holds information that describes a policy rule, but does not contain information\n// about who the rule applies to or which namespace the rule applies to.\nmessage PolicyRule {\n  // Verbs is a list of Verbs that apply to ALL the ResourceKinds contained in this rule. '*' represents all verbs.\n  // +listType=atomic\n  repeated string verbs = 1;\n\n  // APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of\n  // the enumerated resources in any API group will be allowed. \"\" represents the core API group and \"*\" represents all API groups.\n  // +optional\n  // +listType=atomic\n  repeated string apiGroups = 2;\n\n  // Resources is a list of resources this rule applies to. '*' represents all resources.\n  // +optional\n  // +listType=atomic\n  repeated string resources = 3;\n\n  // ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.\n  // +optional\n  // +listType=atomic\n  repeated string resourceNames = 4;\n\n  // NonResourceURLs is a set of partial urls that a user should have access to.  *s are allowed, but only as the full, final step in the path\n  // Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding.\n  // Rules can either apply to API resources (such as \"pods\" or \"secrets\") or non-resource URL paths (such as \"/api\"),  but not both.\n  // +optional\n  // +listType=atomic\n  repeated string nonResourceURLs = 5;\n}\n\n// Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding.\nmessage Role {\n  // Standard object's metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Rules holds all the PolicyRules for this Role\n  // +optional\n  // +listType=atomic\n  repeated PolicyRule rules = 2;\n}\n\n// RoleBinding references a role, but does not contain it.  It can reference a Role in the same namespace or a ClusterRole in the global namespace.\n// It adds who information via Subjects and namespace information by which namespace it exists in.  RoleBindings in a given\n// namespace only have effect in that namespace.\nmessage RoleBinding {\n  // Standard object's metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Subjects holds references to the objects the role applies to.\n  // +optional\n  // +listType=atomic\n  repeated Subject subjects = 2;\n\n  // RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace.\n  // If the RoleRef cannot be resolved, the Authorizer must return an error.\n  // This field is immutable.\n  optional RoleRef roleRef = 3;\n}\n\n// RoleBindingList is a collection of RoleBindings\nmessage RoleBindingList {\n  // Standard object's metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is a list of RoleBindings\n  repeated RoleBinding items = 2;\n}\n\n// RoleList is a collection of Roles\nmessage RoleList {\n  // Standard object's metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is a list of Roles\n  repeated Role items = 2;\n}\n\n// RoleRef contains information that points to the role being used\n// +structType=atomic\nmessage RoleRef {\n  // APIGroup is the group for the resource being referenced\n  optional string apiGroup = 1;\n\n  // Kind is the type of resource being referenced\n  optional string kind = 2;\n\n  // Name is the name of resource being referenced\n  optional string name = 3;\n}\n\n// Subject contains a reference to the object or user identities a role binding applies to.  This can either hold a direct API object reference,\n// or a value for non-objects such as user and group names.\n// +structType=atomic\nmessage Subject {\n  // Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\n  // If the Authorizer does not recognized the kind value, the Authorizer should report an error.\n  optional string kind = 1;\n\n  // APIGroup holds the API group of the referenced subject.\n  // Defaults to \"\" for ServiceAccount subjects.\n  // Defaults to \"rbac.authorization.k8s.io\" for User and Group subjects.\n  // +optional\n  optional string apiGroup = 2;\n\n  // Name of the object being referenced.\n  optional string name = 3;\n\n  // Namespace of the referenced object.  If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\n  // the Authorizer should report an error.\n  // +optional\n  optional string namespace = 4;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1/register.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\nconst GroupName = \"rbac.authorization.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&Role{},\n\t\t&RoleBinding{},\n\t\t&RoleBindingList{},\n\t\t&RoleList{},\n\n\t\t&ClusterRole{},\n\t\t&ClusterRoleBinding{},\n\t\t&ClusterRoleBindingList{},\n\t\t&ClusterRoleList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1/types.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// Authorization is calculated against\n// 1. evaluation of ClusterRoleBindings - short circuit on match\n// 2. evaluation of RoleBindings in the namespace requested - short circuit on match\n// 3. deny by default\n\nconst (\n\tAPIGroupAll    = \"*\"\n\tResourceAll    = \"*\"\n\tVerbAll        = \"*\"\n\tNonResourceAll = \"*\"\n\n\tGroupKind          = \"Group\"\n\tServiceAccountKind = \"ServiceAccount\"\n\tUserKind           = \"User\"\n\n\t// AutoUpdateAnnotationKey is the name of an annotation which prevents reconciliation if set to \"false\"\n\tAutoUpdateAnnotationKey = \"rbac.authorization.kubernetes.io/autoupdate\"\n)\n\n// Authorization is calculated against\n// 1. evaluation of ClusterRoleBindings - short circuit on match\n// 2. evaluation of RoleBindings in the namespace requested - short circuit on match\n// 3. deny by default\n\n// PolicyRule holds information that describes a policy rule, but does not contain information\n// about who the rule applies to or which namespace the rule applies to.\ntype PolicyRule struct {\n\t// Verbs is a list of Verbs that apply to ALL the ResourceKinds contained in this rule. '*' represents all verbs.\n\t// +listType=atomic\n\tVerbs []string `json:\"verbs\" protobuf:\"bytes,1,rep,name=verbs\"`\n\n\t// APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of\n\t// the enumerated resources in any API group will be allowed. \"\" represents the core API group and \"*\" represents all API groups.\n\t// +optional\n\t// +listType=atomic\n\tAPIGroups []string `json:\"apiGroups,omitempty\" protobuf:\"bytes,2,rep,name=apiGroups\"`\n\t// Resources is a list of resources this rule applies to. '*' represents all resources.\n\t// +optional\n\t// +listType=atomic\n\tResources []string `json:\"resources,omitempty\" protobuf:\"bytes,3,rep,name=resources\"`\n\t// ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.\n\t// +optional\n\t// +listType=atomic\n\tResourceNames []string `json:\"resourceNames,omitempty\" protobuf:\"bytes,4,rep,name=resourceNames\"`\n\n\t// NonResourceURLs is a set of partial urls that a user should have access to.  *s are allowed, but only as the full, final step in the path\n\t// Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding.\n\t// Rules can either apply to API resources (such as \"pods\" or \"secrets\") or non-resource URL paths (such as \"/api\"),  but not both.\n\t// +optional\n\t// +listType=atomic\n\tNonResourceURLs []string `json:\"nonResourceURLs,omitempty\" protobuf:\"bytes,5,rep,name=nonResourceURLs\"`\n}\n\n// Subject contains a reference to the object or user identities a role binding applies to.  This can either hold a direct API object reference,\n// or a value for non-objects such as user and group names.\n// +structType=atomic\ntype Subject struct {\n\t// Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\n\t// If the Authorizer does not recognized the kind value, the Authorizer should report an error.\n\tKind string `json:\"kind\" protobuf:\"bytes,1,opt,name=kind\"`\n\t// APIGroup holds the API group of the referenced subject.\n\t// Defaults to \"\" for ServiceAccount subjects.\n\t// Defaults to \"rbac.authorization.k8s.io\" for User and Group subjects.\n\t// +optional\n\tAPIGroup string `json:\"apiGroup,omitempty\" protobuf:\"bytes,2,opt,name=apiGroup\"`\n\t// Name of the object being referenced.\n\tName string `json:\"name\" protobuf:\"bytes,3,opt,name=name\"`\n\t// Namespace of the referenced object.  If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\n\t// the Authorizer should report an error.\n\t// +optional\n\tNamespace string `json:\"namespace,omitempty\" protobuf:\"bytes,4,opt,name=namespace\"`\n}\n\n// RoleRef contains information that points to the role being used\n// +structType=atomic\ntype RoleRef struct {\n\t// APIGroup is the group for the resource being referenced\n\tAPIGroup string `json:\"apiGroup\" protobuf:\"bytes,1,opt,name=apiGroup\"`\n\t// Kind is the type of resource being referenced\n\tKind string `json:\"kind\" protobuf:\"bytes,2,opt,name=kind\"`\n\t// Name is the name of resource being referenced\n\tName string `json:\"name\" protobuf:\"bytes,3,opt,name=name\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n\n// Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding.\ntype Role struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Rules holds all the PolicyRules for this Role\n\t// +optional\n\t// +listType=atomic\n\tRules []PolicyRule `json:\"rules\" protobuf:\"bytes,2,rep,name=rules\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n\n// RoleBinding references a role, but does not contain it.  It can reference a Role in the same namespace or a ClusterRole in the global namespace.\n// It adds who information via Subjects and namespace information by which namespace it exists in.  RoleBindings in a given\n// namespace only have effect in that namespace.\ntype RoleBinding struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Subjects holds references to the objects the role applies to.\n\t// +optional\n\t// +listType=atomic\n\tSubjects []Subject `json:\"subjects,omitempty\" protobuf:\"bytes,2,rep,name=subjects\"`\n\n\t// RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace.\n\t// If the RoleRef cannot be resolved, the Authorizer must return an error.\n\t// This field is immutable.\n\tRoleRef RoleRef `json:\"roleRef\" protobuf:\"bytes,3,opt,name=roleRef\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n\n// RoleBindingList is a collection of RoleBindings\ntype RoleBindingList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is a list of RoleBindings\n\tItems []RoleBinding `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n\n// RoleList is a collection of Roles\ntype RoleList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is a list of Roles\n\tItems []Role `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n\n// ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.\ntype ClusterRole struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Rules holds all the PolicyRules for this ClusterRole\n\t// +optional\n\t// +listType=atomic\n\tRules []PolicyRule `json:\"rules\" protobuf:\"bytes,2,rep,name=rules\"`\n\n\t// AggregationRule is an optional field that describes how to build the Rules for this ClusterRole.\n\t// If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be\n\t// stomped by the controller.\n\t// +optional\n\tAggregationRule *AggregationRule `json:\"aggregationRule,omitempty\" protobuf:\"bytes,3,opt,name=aggregationRule\"`\n}\n\n// AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole\ntype AggregationRule struct {\n\t// ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules.\n\t// If any of the selectors match, then the ClusterRole's permissions will be added\n\t// +optional\n\t// +listType=atomic\n\tClusterRoleSelectors []metav1.LabelSelector `json:\"clusterRoleSelectors,omitempty\" protobuf:\"bytes,1,rep,name=clusterRoleSelectors\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n\n// ClusterRoleBinding references a ClusterRole, but not contain it.  It can reference a ClusterRole in the global namespace,\n// and adds who information via Subject.\ntype ClusterRoleBinding struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Subjects holds references to the objects the role applies to.\n\t// +optional\n\t// +listType=atomic\n\tSubjects []Subject `json:\"subjects,omitempty\" protobuf:\"bytes,2,rep,name=subjects\"`\n\n\t// RoleRef can only reference a ClusterRole in the global namespace.\n\t// If the RoleRef cannot be resolved, the Authorizer must return an error.\n\t// This field is immutable.\n\tRoleRef RoleRef `json:\"roleRef\" protobuf:\"bytes,3,opt,name=roleRef\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n\n// ClusterRoleBindingList is a collection of ClusterRoleBindings\ntype ClusterRoleBindingList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is a list of ClusterRoleBindings\n\tItems []ClusterRoleBinding `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.8\n\n// ClusterRoleList is a collection of ClusterRoles\ntype ClusterRoleList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is a list of ClusterRoles\n\tItems []ClusterRole `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_AggregationRule = map[string]string{\n\t\"\":                     \"AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole\",\n\t\"clusterRoleSelectors\": \"ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added\",\n}\n\nfunc (AggregationRule) SwaggerDoc() map[string]string {\n\treturn map_AggregationRule\n}\n\nvar map_ClusterRole = map[string]string{\n\t\"\":                \"ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.\",\n\t\"metadata\":        \"Standard object's metadata.\",\n\t\"rules\":           \"Rules holds all the PolicyRules for this ClusterRole\",\n\t\"aggregationRule\": \"AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller.\",\n}\n\nfunc (ClusterRole) SwaggerDoc() map[string]string {\n\treturn map_ClusterRole\n}\n\nvar map_ClusterRoleBinding = map[string]string{\n\t\"\":         \"ClusterRoleBinding references a ClusterRole, but not contain it.  It can reference a ClusterRole in the global namespace, and adds who information via Subject.\",\n\t\"metadata\": \"Standard object's metadata.\",\n\t\"subjects\": \"Subjects holds references to the objects the role applies to.\",\n\t\"roleRef\":  \"RoleRef can only reference a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error. This field is immutable.\",\n}\n\nfunc (ClusterRoleBinding) SwaggerDoc() map[string]string {\n\treturn map_ClusterRoleBinding\n}\n\nvar map_ClusterRoleBindingList = map[string]string{\n\t\"\":         \"ClusterRoleBindingList is a collection of ClusterRoleBindings\",\n\t\"metadata\": \"Standard object's metadata.\",\n\t\"items\":    \"Items is a list of ClusterRoleBindings\",\n}\n\nfunc (ClusterRoleBindingList) SwaggerDoc() map[string]string {\n\treturn map_ClusterRoleBindingList\n}\n\nvar map_ClusterRoleList = map[string]string{\n\t\"\":         \"ClusterRoleList is a collection of ClusterRoles\",\n\t\"metadata\": \"Standard object's metadata.\",\n\t\"items\":    \"Items is a list of ClusterRoles\",\n}\n\nfunc (ClusterRoleList) SwaggerDoc() map[string]string {\n\treturn map_ClusterRoleList\n}\n\nvar map_PolicyRule = map[string]string{\n\t\"\":                \"PolicyRule holds information that describes a policy rule, but does not contain information about who the rule applies to or which namespace the rule applies to.\",\n\t\"verbs\":           \"Verbs is a list of Verbs that apply to ALL the ResourceKinds contained in this rule. '*' represents all verbs.\",\n\t\"apiGroups\":       \"APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. \\\"\\\" represents the core API group and \\\"*\\\" represents all API groups.\",\n\t\"resources\":       \"Resources is a list of resources this rule applies to. '*' represents all resources.\",\n\t\"resourceNames\":   \"ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.\",\n\t\"nonResourceURLs\": \"NonResourceURLs is a set of partial urls that a user should have access to.  *s are allowed, but only as the full, final step in the path Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. Rules can either apply to API resources (such as \\\"pods\\\" or \\\"secrets\\\") or non-resource URL paths (such as \\\"/api\\\"),  but not both.\",\n}\n\nfunc (PolicyRule) SwaggerDoc() map[string]string {\n\treturn map_PolicyRule\n}\n\nvar map_Role = map[string]string{\n\t\"\":         \"Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding.\",\n\t\"metadata\": \"Standard object's metadata.\",\n\t\"rules\":    \"Rules holds all the PolicyRules for this Role\",\n}\n\nfunc (Role) SwaggerDoc() map[string]string {\n\treturn map_Role\n}\n\nvar map_RoleBinding = map[string]string{\n\t\"\":         \"RoleBinding references a role, but does not contain it.  It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in.  RoleBindings in a given namespace only have effect in that namespace.\",\n\t\"metadata\": \"Standard object's metadata.\",\n\t\"subjects\": \"Subjects holds references to the objects the role applies to.\",\n\t\"roleRef\":  \"RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error. This field is immutable.\",\n}\n\nfunc (RoleBinding) SwaggerDoc() map[string]string {\n\treturn map_RoleBinding\n}\n\nvar map_RoleBindingList = map[string]string{\n\t\"\":         \"RoleBindingList is a collection of RoleBindings\",\n\t\"metadata\": \"Standard object's metadata.\",\n\t\"items\":    \"Items is a list of RoleBindings\",\n}\n\nfunc (RoleBindingList) SwaggerDoc() map[string]string {\n\treturn map_RoleBindingList\n}\n\nvar map_RoleList = map[string]string{\n\t\"\":         \"RoleList is a collection of Roles\",\n\t\"metadata\": \"Standard object's metadata.\",\n\t\"items\":    \"Items is a list of Roles\",\n}\n\nfunc (RoleList) SwaggerDoc() map[string]string {\n\treturn map_RoleList\n}\n\nvar map_RoleRef = map[string]string{\n\t\"\":         \"RoleRef contains information that points to the role being used\",\n\t\"apiGroup\": \"APIGroup is the group for the resource being referenced\",\n\t\"kind\":     \"Kind is the type of resource being referenced\",\n\t\"name\":     \"Name is the name of resource being referenced\",\n}\n\nfunc (RoleRef) SwaggerDoc() map[string]string {\n\treturn map_RoleRef\n}\n\nvar map_Subject = map[string]string{\n\t\"\":          \"Subject contains a reference to the object or user identities a role binding applies to.  This can either hold a direct API object reference, or a value for non-objects such as user and group names.\",\n\t\"kind\":      \"Kind of object being referenced. Values defined by this API group are \\\"User\\\", \\\"Group\\\", and \\\"ServiceAccount\\\". If the Authorizer does not recognized the kind value, the Authorizer should report an error.\",\n\t\"apiGroup\":  \"APIGroup holds the API group of the referenced subject. Defaults to \\\"\\\" for ServiceAccount subjects. Defaults to \\\"rbac.authorization.k8s.io\\\" for User and Group subjects.\",\n\t\"name\":      \"Name of the object being referenced.\",\n\t\"namespace\": \"Namespace of the referenced object.  If the object kind is non-namespace, such as \\\"User\\\" or \\\"Group\\\", and this value is not empty the Authorizer should report an error.\",\n}\n\nfunc (Subject) SwaggerDoc() map[string]string {\n\treturn map_Subject\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *AggregationRule) DeepCopyInto(out *AggregationRule) {\n\t*out = *in\n\tif in.ClusterRoleSelectors != nil {\n\t\tin, out := &in.ClusterRoleSelectors, &out.ClusterRoleSelectors\n\t\t*out = make([]metav1.LabelSelector, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AggregationRule.\nfunc (in *AggregationRule) DeepCopy() *AggregationRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(AggregationRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ClusterRole) DeepCopyInto(out *ClusterRole) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Rules != nil {\n\t\tin, out := &in.Rules, &out.Rules\n\t\t*out = make([]PolicyRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.AggregationRule != nil {\n\t\tin, out := &in.AggregationRule, &out.AggregationRule\n\t\t*out = new(AggregationRule)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterRole.\nfunc (in *ClusterRole) DeepCopy() *ClusterRole {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ClusterRole)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ClusterRole) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ClusterRoleBinding) DeepCopyInto(out *ClusterRoleBinding) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Subjects != nil {\n\t\tin, out := &in.Subjects, &out.Subjects\n\t\t*out = make([]Subject, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tout.RoleRef = in.RoleRef\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterRoleBinding.\nfunc (in *ClusterRoleBinding) DeepCopy() *ClusterRoleBinding {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ClusterRoleBinding)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ClusterRoleBinding) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ClusterRoleBindingList) DeepCopyInto(out *ClusterRoleBindingList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ClusterRoleBinding, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterRoleBindingList.\nfunc (in *ClusterRoleBindingList) DeepCopy() *ClusterRoleBindingList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ClusterRoleBindingList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ClusterRoleBindingList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ClusterRoleList) DeepCopyInto(out *ClusterRoleList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ClusterRole, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterRoleList.\nfunc (in *ClusterRoleList) DeepCopy() *ClusterRoleList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ClusterRoleList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ClusterRoleList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PolicyRule) DeepCopyInto(out *PolicyRule) {\n\t*out = *in\n\tif in.Verbs != nil {\n\t\tin, out := &in.Verbs, &out.Verbs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.APIGroups != nil {\n\t\tin, out := &in.APIGroups, &out.APIGroups\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Resources != nil {\n\t\tin, out := &in.Resources, &out.Resources\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ResourceNames != nil {\n\t\tin, out := &in.ResourceNames, &out.ResourceNames\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.NonResourceURLs != nil {\n\t\tin, out := &in.NonResourceURLs, &out.NonResourceURLs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyRule.\nfunc (in *PolicyRule) DeepCopy() *PolicyRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PolicyRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Role) DeepCopyInto(out *Role) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Rules != nil {\n\t\tin, out := &in.Rules, &out.Rules\n\t\t*out = make([]PolicyRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Role.\nfunc (in *Role) DeepCopy() *Role {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Role)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Role) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RoleBinding) DeepCopyInto(out *RoleBinding) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Subjects != nil {\n\t\tin, out := &in.Subjects, &out.Subjects\n\t\t*out = make([]Subject, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tout.RoleRef = in.RoleRef\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleBinding.\nfunc (in *RoleBinding) DeepCopy() *RoleBinding {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RoleBinding)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *RoleBinding) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RoleBindingList) DeepCopyInto(out *RoleBindingList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]RoleBinding, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleBindingList.\nfunc (in *RoleBindingList) DeepCopy() *RoleBindingList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RoleBindingList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *RoleBindingList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RoleList) DeepCopyInto(out *RoleList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Role, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleList.\nfunc (in *RoleList) DeepCopy() *RoleList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RoleList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *RoleList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RoleRef) DeepCopyInto(out *RoleRef) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleRef.\nfunc (in *RoleRef) DeepCopy() *RoleRef {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RoleRef)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Subject) DeepCopyInto(out *Subject) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Subject.\nfunc (in *Subject) DeepCopy() *Subject {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Subject)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ClusterRole) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ClusterRoleBinding) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ClusterRoleBindingList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ClusterRoleList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *Role) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *RoleBinding) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *RoleBindingList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *RoleList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 8\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1alpha1/doc.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n\n// +groupName=rbac.authorization.k8s.io\n\npackage v1alpha1 // import \"k8s.io/api/rbac/v1alpha1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1alpha1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/rbac/v1alpha1/generated.proto\n\npackage v1alpha1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *AggregationRule) Reset()      { *m = AggregationRule{} }\nfunc (*AggregationRule) ProtoMessage() {}\nfunc (*AggregationRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_758889dfd9a88fa6, []int{0}\n}\nfunc (m *AggregationRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *AggregationRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *AggregationRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_AggregationRule.Merge(m, src)\n}\nfunc (m *AggregationRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *AggregationRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_AggregationRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_AggregationRule proto.InternalMessageInfo\n\nfunc (m *ClusterRole) Reset()      { *m = ClusterRole{} }\nfunc (*ClusterRole) ProtoMessage() {}\nfunc (*ClusterRole) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_758889dfd9a88fa6, []int{1}\n}\nfunc (m *ClusterRole) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ClusterRole) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ClusterRole) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ClusterRole.Merge(m, src)\n}\nfunc (m *ClusterRole) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ClusterRole) XXX_DiscardUnknown() {\n\txxx_messageInfo_ClusterRole.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ClusterRole proto.InternalMessageInfo\n\nfunc (m *ClusterRoleBinding) Reset()      { *m = ClusterRoleBinding{} }\nfunc (*ClusterRoleBinding) ProtoMessage() {}\nfunc (*ClusterRoleBinding) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_758889dfd9a88fa6, []int{2}\n}\nfunc (m *ClusterRoleBinding) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ClusterRoleBinding) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ClusterRoleBinding) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ClusterRoleBinding.Merge(m, src)\n}\nfunc (m *ClusterRoleBinding) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ClusterRoleBinding) XXX_DiscardUnknown() {\n\txxx_messageInfo_ClusterRoleBinding.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ClusterRoleBinding proto.InternalMessageInfo\n\nfunc (m *ClusterRoleBindingList) Reset()      { *m = ClusterRoleBindingList{} }\nfunc (*ClusterRoleBindingList) ProtoMessage() {}\nfunc (*ClusterRoleBindingList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_758889dfd9a88fa6, []int{3}\n}\nfunc (m *ClusterRoleBindingList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ClusterRoleBindingList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ClusterRoleBindingList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ClusterRoleBindingList.Merge(m, src)\n}\nfunc (m *ClusterRoleBindingList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ClusterRoleBindingList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ClusterRoleBindingList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ClusterRoleBindingList proto.InternalMessageInfo\n\nfunc (m *ClusterRoleList) Reset()      { *m = ClusterRoleList{} }\nfunc (*ClusterRoleList) ProtoMessage() {}\nfunc (*ClusterRoleList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_758889dfd9a88fa6, []int{4}\n}\nfunc (m *ClusterRoleList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ClusterRoleList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ClusterRoleList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ClusterRoleList.Merge(m, src)\n}\nfunc (m *ClusterRoleList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ClusterRoleList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ClusterRoleList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ClusterRoleList proto.InternalMessageInfo\n\nfunc (m *PolicyRule) Reset()      { *m = PolicyRule{} }\nfunc (*PolicyRule) ProtoMessage() {}\nfunc (*PolicyRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_758889dfd9a88fa6, []int{5}\n}\nfunc (m *PolicyRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PolicyRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PolicyRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PolicyRule.Merge(m, src)\n}\nfunc (m *PolicyRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PolicyRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_PolicyRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PolicyRule proto.InternalMessageInfo\n\nfunc (m *Role) Reset()      { *m = Role{} }\nfunc (*Role) ProtoMessage() {}\nfunc (*Role) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_758889dfd9a88fa6, []int{6}\n}\nfunc (m *Role) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Role) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Role) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Role.Merge(m, src)\n}\nfunc (m *Role) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Role) XXX_DiscardUnknown() {\n\txxx_messageInfo_Role.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Role proto.InternalMessageInfo\n\nfunc (m *RoleBinding) Reset()      { *m = RoleBinding{} }\nfunc (*RoleBinding) ProtoMessage() {}\nfunc (*RoleBinding) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_758889dfd9a88fa6, []int{7}\n}\nfunc (m *RoleBinding) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RoleBinding) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RoleBinding) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RoleBinding.Merge(m, src)\n}\nfunc (m *RoleBinding) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RoleBinding) XXX_DiscardUnknown() {\n\txxx_messageInfo_RoleBinding.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RoleBinding proto.InternalMessageInfo\n\nfunc (m *RoleBindingList) Reset()      { *m = RoleBindingList{} }\nfunc (*RoleBindingList) ProtoMessage() {}\nfunc (*RoleBindingList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_758889dfd9a88fa6, []int{8}\n}\nfunc (m *RoleBindingList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RoleBindingList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RoleBindingList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RoleBindingList.Merge(m, src)\n}\nfunc (m *RoleBindingList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RoleBindingList) XXX_DiscardUnknown() {\n\txxx_messageInfo_RoleBindingList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RoleBindingList proto.InternalMessageInfo\n\nfunc (m *RoleList) Reset()      { *m = RoleList{} }\nfunc (*RoleList) ProtoMessage() {}\nfunc (*RoleList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_758889dfd9a88fa6, []int{9}\n}\nfunc (m *RoleList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RoleList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RoleList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RoleList.Merge(m, src)\n}\nfunc (m *RoleList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RoleList) XXX_DiscardUnknown() {\n\txxx_messageInfo_RoleList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RoleList proto.InternalMessageInfo\n\nfunc (m *RoleRef) Reset()      { *m = RoleRef{} }\nfunc (*RoleRef) ProtoMessage() {}\nfunc (*RoleRef) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_758889dfd9a88fa6, []int{10}\n}\nfunc (m *RoleRef) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RoleRef) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RoleRef) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RoleRef.Merge(m, src)\n}\nfunc (m *RoleRef) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RoleRef) XXX_DiscardUnknown() {\n\txxx_messageInfo_RoleRef.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RoleRef proto.InternalMessageInfo\n\nfunc (m *Subject) Reset()      { *m = Subject{} }\nfunc (*Subject) ProtoMessage() {}\nfunc (*Subject) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_758889dfd9a88fa6, []int{11}\n}\nfunc (m *Subject) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Subject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Subject) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Subject.Merge(m, src)\n}\nfunc (m *Subject) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Subject) XXX_DiscardUnknown() {\n\txxx_messageInfo_Subject.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Subject proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*AggregationRule)(nil), \"k8s.io.api.rbac.v1alpha1.AggregationRule\")\n\tproto.RegisterType((*ClusterRole)(nil), \"k8s.io.api.rbac.v1alpha1.ClusterRole\")\n\tproto.RegisterType((*ClusterRoleBinding)(nil), \"k8s.io.api.rbac.v1alpha1.ClusterRoleBinding\")\n\tproto.RegisterType((*ClusterRoleBindingList)(nil), \"k8s.io.api.rbac.v1alpha1.ClusterRoleBindingList\")\n\tproto.RegisterType((*ClusterRoleList)(nil), \"k8s.io.api.rbac.v1alpha1.ClusterRoleList\")\n\tproto.RegisterType((*PolicyRule)(nil), \"k8s.io.api.rbac.v1alpha1.PolicyRule\")\n\tproto.RegisterType((*Role)(nil), \"k8s.io.api.rbac.v1alpha1.Role\")\n\tproto.RegisterType((*RoleBinding)(nil), \"k8s.io.api.rbac.v1alpha1.RoleBinding\")\n\tproto.RegisterType((*RoleBindingList)(nil), \"k8s.io.api.rbac.v1alpha1.RoleBindingList\")\n\tproto.RegisterType((*RoleList)(nil), \"k8s.io.api.rbac.v1alpha1.RoleList\")\n\tproto.RegisterType((*RoleRef)(nil), \"k8s.io.api.rbac.v1alpha1.RoleRef\")\n\tproto.RegisterType((*Subject)(nil), \"k8s.io.api.rbac.v1alpha1.Subject\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/rbac/v1alpha1/generated.proto\", fileDescriptor_758889dfd9a88fa6)\n}\n\nvar fileDescriptor_758889dfd9a88fa6 = []byte{\n\t// 819 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x56, 0xcf, 0x6f, 0xe3, 0x44,\n\t0x14, 0xce, 0xa4, 0x09, 0x4d, 0x26, 0x44, 0xa1, 0x43, 0x85, 0xac, 0x0a, 0x39, 0xc5, 0x02, 0xa9,\n\t0x88, 0x62, 0xd3, 0x82, 0x80, 0x0b, 0x48, 0x75, 0x0f, 0x28, 0x10, 0xda, 0x32, 0x15, 0x3d, 0x20,\n\t0x0e, 0x4c, 0x9c, 0xa9, 0x33, 0xc4, 0xbf, 0xe4, 0xb1, 0x23, 0x55, 0x5c, 0xb8, 0x70, 0x45, 0x5c,\n\t0x38, 0x70, 0xe7, 0xca, 0x85, 0x3d, 0xee, 0x3f, 0xd0, 0xbd, 0xf5, 0xd8, 0x53, 0xb4, 0xf5, 0xfe,\n\t0x21, 0xbb, 0xf2, 0xd8, 0x8e, 0x9d, 0x5f, 0x9b, 0x9c, 0x22, 0xad, 0xb4, 0xa7, 0x64, 0xde, 0xfb,\n\t0xde, 0xf7, 0xde, 0xfb, 0x66, 0xde, 0x4b, 0xe0, 0xc1, 0xf0, 0x4b, 0xae, 0x32, 0x57, 0x23, 0x1e,\n\t0xd3, 0xfc, 0x1e, 0x31, 0xb4, 0xd1, 0x11, 0xb1, 0xbc, 0x01, 0x39, 0xd2, 0x4c, 0xea, 0x50, 0x9f,\n\t0x04, 0xb4, 0xaf, 0x7a, 0xbe, 0x1b, 0xb8, 0x48, 0x4a, 0x90, 0x2a, 0xf1, 0x98, 0x1a, 0x23, 0xd5,\n\t0x0c, 0xb9, 0xf7, 0xb1, 0xc9, 0x82, 0x41, 0xd8, 0x53, 0x0d, 0xd7, 0xd6, 0x4c, 0xd7, 0x74, 0x35,\n\t0x11, 0xd0, 0x0b, 0xaf, 0xc5, 0x49, 0x1c, 0xc4, 0xb7, 0x84, 0x68, 0xef, 0xb3, 0x3c, 0xa5, 0x4d,\n\t0x8c, 0x01, 0x73, 0xa8, 0x7f, 0xa3, 0x79, 0x43, 0x33, 0x36, 0x70, 0xcd, 0xa6, 0x01, 0xd1, 0x46,\n\t0x73, 0xe9, 0xf7, 0xb4, 0x65, 0x51, 0x7e, 0xe8, 0x04, 0xcc, 0xa6, 0x73, 0x01, 0x9f, 0xaf, 0x0a,\n\t0xe0, 0xc6, 0x80, 0xda, 0x64, 0x36, 0x4e, 0xf9, 0x07, 0xc0, 0xd6, 0x89, 0x69, 0xfa, 0xd4, 0x24,\n\t0x01, 0x73, 0x1d, 0x1c, 0x5a, 0x14, 0xfd, 0x01, 0xe0, 0xae, 0x61, 0x85, 0x3c, 0xa0, 0x3e, 0x76,\n\t0x2d, 0x7a, 0x49, 0x2d, 0x6a, 0x04, 0xae, 0xcf, 0x25, 0xb0, 0xbf, 0x75, 0xd0, 0x38, 0xfe, 0x54,\n\t0xcd, 0xb5, 0x99, 0xe4, 0x52, 0xbd, 0xa1, 0x19, 0x1b, 0xb8, 0x1a, 0xb7, 0xa4, 0x8e, 0x8e, 0xd4,\n\t0x2e, 0xe9, 0x51, 0x2b, 0x8b, 0xd5, 0xdf, 0xbd, 0x1d, 0xb7, 0x4b, 0xd1, 0xb8, 0xbd, 0x7b, 0xba,\n\t0x80, 0x18, 0x2f, 0x4c, 0xa7, 0xfc, 0x5b, 0x86, 0x8d, 0x02, 0x1c, 0xfd, 0x02, 0x6b, 0x31, 0x79,\n\t0x9f, 0x04, 0x44, 0x02, 0xfb, 0xe0, 0xa0, 0x71, 0xfc, 0xc9, 0x7a, 0xa5, 0x9c, 0xf7, 0x7e, 0xa5,\n\t0x46, 0xf0, 0x3d, 0x0d, 0x88, 0x8e, 0xd2, 0x3a, 0x60, 0x6e, 0xc3, 0x13, 0x56, 0xd4, 0x81, 0x55,\n\t0x3f, 0xb4, 0x28, 0x97, 0xca, 0xa2, 0xd3, 0xf7, 0xd5, 0x65, 0xaf, 0x40, 0xbd, 0x70, 0x2d, 0x66,\n\t0xdc, 0xc4, 0x72, 0xe9, 0xcd, 0x94, 0xb2, 0x1a, 0x9f, 0x38, 0x4e, 0x18, 0xd0, 0x00, 0xb6, 0xc8,\n\t0xb4, 0xae, 0xd2, 0x96, 0xa8, 0xf9, 0xc3, 0xe5, 0xa4, 0x33, 0x17, 0xa1, 0xbf, 0x1d, 0x8d, 0xdb,\n\t0xb3, 0xb7, 0x83, 0x67, 0x69, 0x95, 0xbf, 0xcb, 0x10, 0x15, 0x64, 0xd2, 0x99, 0xd3, 0x67, 0x8e,\n\t0xb9, 0x01, 0xb5, 0xce, 0x61, 0x8d, 0x87, 0xc2, 0x91, 0x09, 0xf6, 0xde, 0xf2, 0xde, 0x2e, 0x13,\n\t0xa4, 0xfe, 0x56, 0x4a, 0x59, 0x4b, 0x0d, 0x1c, 0x4f, 0x48, 0x50, 0x17, 0x6e, 0xfb, 0xae, 0x45,\n\t0x31, 0xbd, 0x4e, 0xb5, 0x7a, 0x09, 0x1f, 0x4e, 0x80, 0x7a, 0x2b, 0xe5, 0xdb, 0x4e, 0x0d, 0x38,\n\t0xa3, 0x50, 0x9e, 0x00, 0xf8, 0xce, 0xbc, 0x2e, 0x5d, 0xc6, 0x03, 0xf4, 0xf3, 0x9c, 0x36, 0xea,\n\t0x9a, 0x8f, 0x9a, 0xf1, 0x44, 0x99, 0x49, 0x1b, 0x99, 0xa5, 0xa0, 0xcb, 0x0f, 0xb0, 0xca, 0x02,\n\t0x6a, 0x67, 0xa2, 0x1c, 0x2e, 0x6f, 0x62, 0xbe, 0xbc, 0xfc, 0x35, 0x75, 0x62, 0x0a, 0x9c, 0x30,\n\t0x29, 0x8f, 0x01, 0x6c, 0x15, 0xc0, 0x1b, 0x68, 0xe2, 0xdb, 0xe9, 0x26, 0x3e, 0x58, 0xaf, 0x89,\n\t0xc5, 0xd5, 0x3f, 0x07, 0x10, 0xe6, 0x03, 0x83, 0xda, 0xb0, 0x3a, 0xa2, 0x7e, 0x2f, 0xd9, 0x27,\n\t0x75, 0xbd, 0x1e, 0xe3, 0xaf, 0x62, 0x03, 0x4e, 0xec, 0xe8, 0x23, 0x58, 0x27, 0x1e, 0xfb, 0xc6,\n\t0x77, 0x43, 0x8f, 0x4b, 0x5b, 0x02, 0xd4, 0x8c, 0xc6, 0xed, 0xfa, 0xc9, 0x45, 0x27, 0x31, 0xe2,\n\t0xdc, 0x1f, 0x83, 0x7d, 0xca, 0xdd, 0xd0, 0x37, 0x28, 0x97, 0x2a, 0x39, 0x18, 0x67, 0x46, 0x9c,\n\t0xfb, 0xd1, 0x17, 0xb0, 0x99, 0x1d, 0xce, 0x88, 0x4d, 0xb9, 0x54, 0x15, 0x01, 0x3b, 0xd1, 0xb8,\n\t0xdd, 0xc4, 0x45, 0x07, 0x9e, 0xc6, 0xa1, 0xaf, 0x60, 0xcb, 0x71, 0x9d, 0x0c, 0xf2, 0x23, 0xee,\n\t0x72, 0xe9, 0x0d, 0x11, 0x2a, 0x66, 0xf4, 0x6c, 0xda, 0x85, 0x67, 0xb1, 0xca, 0x23, 0x00, 0x2b,\n\t0xaf, 0xdc, 0x0e, 0x53, 0xfe, 0x2c, 0xc3, 0xc6, 0xeb, 0x95, 0x52, 0x58, 0x29, 0xf1, 0x18, 0x6e,\n\t0x76, 0x97, 0xac, 0x3f, 0x86, 0xab, 0x97, 0xc8, 0x7f, 0x00, 0xd6, 0x36, 0xb4, 0x3d, 0x4e, 0xa7,\n\t0xcb, 0x96, 0x57, 0x94, 0xbd, 0xb8, 0xde, 0xdf, 0x60, 0x76, 0x03, 0xe8, 0x10, 0xd6, 0xb2, 0x89,\n\t0x17, 0xd5, 0xd6, 0xf3, 0xec, 0xd9, 0x52, 0xc0, 0x13, 0x04, 0xda, 0x87, 0x95, 0x21, 0x73, 0xfa,\n\t0x52, 0x59, 0x20, 0xdf, 0x4c, 0x91, 0x95, 0xef, 0x98, 0xd3, 0xc7, 0xc2, 0x13, 0x23, 0x1c, 0x62,\n\t0x27, 0x3f, 0xc9, 0x05, 0x44, 0x3c, 0xeb, 0x58, 0x78, 0x94, 0xff, 0x01, 0xdc, 0x4e, 0xdf, 0xd3,\n\t0x84, 0x0f, 0x2c, 0xe5, 0x3b, 0x86, 0x90, 0x78, 0xec, 0x8a, 0xfa, 0x9c, 0xb9, 0x4e, 0x9a, 0x77,\n\t0xf2, 0xd2, 0x4f, 0x2e, 0x3a, 0xa9, 0x07, 0x17, 0x50, 0xab, 0x6b, 0x40, 0x1a, 0xac, 0xc7, 0x9f,\n\t0xdc, 0x23, 0x06, 0x95, 0x2a, 0x02, 0xb6, 0x93, 0xc2, 0xea, 0x67, 0x99, 0x03, 0xe7, 0x18, 0xfd,\n\t0xeb, 0xdb, 0x07, 0xb9, 0x74, 0xf7, 0x20, 0x97, 0xee, 0x1f, 0xe4, 0xd2, 0xef, 0x91, 0x0c, 0x6e,\n\t0x23, 0x19, 0xdc, 0x45, 0x32, 0xb8, 0x8f, 0x64, 0xf0, 0x34, 0x92, 0xc1, 0x5f, 0xcf, 0xe4, 0xd2,\n\t0x4f, 0xd2, 0xb2, 0x7f, 0xc1, 0x2f, 0x02, 0x00, 0x00, 0xff, 0xff, 0xf1, 0x02, 0x55, 0xe5, 0x20,\n\t0x0b, 0x00, 0x00,\n}\n\nfunc (m *AggregationRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *AggregationRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *AggregationRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ClusterRoleSelectors) > 0 {\n\t\tfor iNdEx := len(m.ClusterRoleSelectors) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ClusterRoleSelectors[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ClusterRole) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ClusterRole) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ClusterRole) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.AggregationRule != nil {\n\t\t{\n\t\t\tsize, err := m.AggregationRule.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif len(m.Rules) > 0 {\n\t\tfor iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Rules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ClusterRoleBinding) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ClusterRoleBinding) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ClusterRoleBinding) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.RoleRef.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.Subjects) > 0 {\n\t\tfor iNdEx := len(m.Subjects) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Subjects[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ClusterRoleBindingList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ClusterRoleBindingList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ClusterRoleBindingList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ClusterRoleList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ClusterRoleList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ClusterRoleList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PolicyRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PolicyRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PolicyRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.NonResourceURLs) > 0 {\n\t\tfor iNdEx := len(m.NonResourceURLs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.NonResourceURLs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.NonResourceURLs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.NonResourceURLs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\tif len(m.ResourceNames) > 0 {\n\t\tfor iNdEx := len(m.ResourceNames) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.ResourceNames[iNdEx])\n\t\t\tcopy(dAtA[i:], m.ResourceNames[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ResourceNames[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\tif len(m.Resources) > 0 {\n\t\tfor iNdEx := len(m.Resources) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Resources[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Resources[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Resources[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif len(m.APIGroups) > 0 {\n\t\tfor iNdEx := len(m.APIGroups) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.APIGroups[iNdEx])\n\t\t\tcopy(dAtA[i:], m.APIGroups[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIGroups[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.Verbs) > 0 {\n\t\tfor iNdEx := len(m.Verbs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Verbs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Verbs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verbs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Role) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Role) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Role) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Rules) > 0 {\n\t\tfor iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Rules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RoleBinding) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RoleBinding) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RoleBinding) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.RoleRef.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.Subjects) > 0 {\n\t\tfor iNdEx := len(m.Subjects) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Subjects[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RoleBindingList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RoleBindingList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RoleBindingList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RoleList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RoleList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RoleList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RoleRef) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RoleRef) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RoleRef) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.APIGroup)\n\tcopy(dAtA[i:], m.APIGroup)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIGroup)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Subject) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Subject) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Subject) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Namespace)\n\tcopy(dAtA[i:], m.Namespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.APIVersion)\n\tcopy(dAtA[i:], m.APIVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIVersion)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *AggregationRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.ClusterRoleSelectors) > 0 {\n\t\tfor _, e := range m.ClusterRoleSelectors {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ClusterRole) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Rules) > 0 {\n\t\tfor _, e := range m.Rules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.AggregationRule != nil {\n\t\tl = m.AggregationRule.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ClusterRoleBinding) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Subjects) > 0 {\n\t\tfor _, e := range m.Subjects {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = m.RoleRef.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ClusterRoleBindingList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ClusterRoleList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PolicyRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Verbs) > 0 {\n\t\tfor _, s := range m.Verbs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.APIGroups) > 0 {\n\t\tfor _, s := range m.APIGroups {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Resources) > 0 {\n\t\tfor _, s := range m.Resources {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.ResourceNames) > 0 {\n\t\tfor _, s := range m.ResourceNames {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.NonResourceURLs) > 0 {\n\t\tfor _, s := range m.NonResourceURLs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *Role) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Rules) > 0 {\n\t\tfor _, e := range m.Rules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *RoleBinding) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Subjects) > 0 {\n\t\tfor _, e := range m.Subjects {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = m.RoleRef.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *RoleBindingList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *RoleList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *RoleRef) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.APIGroup)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *Subject) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.APIVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Namespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *AggregationRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForClusterRoleSelectors := \"[]LabelSelector{\"\n\tfor _, f := range this.ClusterRoleSelectors {\n\t\trepeatedStringForClusterRoleSelectors += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForClusterRoleSelectors += \"}\"\n\ts := strings.Join([]string{`&AggregationRule{`,\n\t\t`ClusterRoleSelectors:` + repeatedStringForClusterRoleSelectors + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ClusterRole) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForRules := \"[]PolicyRule{\"\n\tfor _, f := range this.Rules {\n\t\trepeatedStringForRules += strings.Replace(strings.Replace(f.String(), \"PolicyRule\", \"PolicyRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRules += \"}\"\n\ts := strings.Join([]string{`&ClusterRole{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Rules:` + repeatedStringForRules + `,`,\n\t\t`AggregationRule:` + strings.Replace(this.AggregationRule.String(), \"AggregationRule\", \"AggregationRule\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ClusterRoleBinding) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForSubjects := \"[]Subject{\"\n\tfor _, f := range this.Subjects {\n\t\trepeatedStringForSubjects += strings.Replace(strings.Replace(f.String(), \"Subject\", \"Subject\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForSubjects += \"}\"\n\ts := strings.Join([]string{`&ClusterRoleBinding{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Subjects:` + repeatedStringForSubjects + `,`,\n\t\t`RoleRef:` + strings.Replace(strings.Replace(this.RoleRef.String(), \"RoleRef\", \"RoleRef\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ClusterRoleBindingList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ClusterRoleBinding{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ClusterRoleBinding\", \"ClusterRoleBinding\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ClusterRoleBindingList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ClusterRoleList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ClusterRole{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ClusterRole\", \"ClusterRole\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ClusterRoleList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PolicyRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PolicyRule{`,\n\t\t`Verbs:` + fmt.Sprintf(\"%v\", this.Verbs) + `,`,\n\t\t`APIGroups:` + fmt.Sprintf(\"%v\", this.APIGroups) + `,`,\n\t\t`Resources:` + fmt.Sprintf(\"%v\", this.Resources) + `,`,\n\t\t`ResourceNames:` + fmt.Sprintf(\"%v\", this.ResourceNames) + `,`,\n\t\t`NonResourceURLs:` + fmt.Sprintf(\"%v\", this.NonResourceURLs) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Role) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForRules := \"[]PolicyRule{\"\n\tfor _, f := range this.Rules {\n\t\trepeatedStringForRules += strings.Replace(strings.Replace(f.String(), \"PolicyRule\", \"PolicyRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRules += \"}\"\n\ts := strings.Join([]string{`&Role{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Rules:` + repeatedStringForRules + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RoleBinding) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForSubjects := \"[]Subject{\"\n\tfor _, f := range this.Subjects {\n\t\trepeatedStringForSubjects += strings.Replace(strings.Replace(f.String(), \"Subject\", \"Subject\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForSubjects += \"}\"\n\ts := strings.Join([]string{`&RoleBinding{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Subjects:` + repeatedStringForSubjects + `,`,\n\t\t`RoleRef:` + strings.Replace(strings.Replace(this.RoleRef.String(), \"RoleRef\", \"RoleRef\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RoleBindingList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]RoleBinding{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"RoleBinding\", \"RoleBinding\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&RoleBindingList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RoleList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Role{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Role\", \"Role\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&RoleList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RoleRef) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RoleRef{`,\n\t\t`APIGroup:` + fmt.Sprintf(\"%v\", this.APIGroup) + `,`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Subject) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Subject{`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`APIVersion:` + fmt.Sprintf(\"%v\", this.APIVersion) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *AggregationRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: AggregationRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: AggregationRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ClusterRoleSelectors\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ClusterRoleSelectors = append(m.ClusterRoleSelectors, v1.LabelSelector{})\n\t\t\tif err := m.ClusterRoleSelectors[len(m.ClusterRoleSelectors)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ClusterRole) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRole: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRole: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Rules = append(m.Rules, PolicyRule{})\n\t\t\tif err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AggregationRule\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AggregationRule == nil {\n\t\t\t\tm.AggregationRule = &AggregationRule{}\n\t\t\t}\n\t\t\tif err := m.AggregationRule.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ClusterRoleBinding) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRoleBinding: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRoleBinding: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Subjects\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Subjects = append(m.Subjects, Subject{})\n\t\t\tif err := m.Subjects[len(m.Subjects)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RoleRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.RoleRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ClusterRoleBindingList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRoleBindingList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRoleBindingList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ClusterRoleBinding{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ClusterRoleList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRoleList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRoleList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ClusterRole{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PolicyRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PolicyRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PolicyRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verbs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verbs = append(m.Verbs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIGroups\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIGroups = append(m.APIGroups, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resources\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resources = append(m.Resources, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceNames\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceNames = append(m.ResourceNames, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NonResourceURLs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NonResourceURLs = append(m.NonResourceURLs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Role) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Role: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Role: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Rules = append(m.Rules, PolicyRule{})\n\t\t\tif err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RoleBinding) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RoleBinding: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RoleBinding: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Subjects\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Subjects = append(m.Subjects, Subject{})\n\t\t\tif err := m.Subjects[len(m.Subjects)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RoleRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.RoleRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RoleBindingList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RoleBindingList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RoleBindingList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, RoleBinding{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RoleList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RoleList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RoleList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Role{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RoleRef) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RoleRef: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RoleRef: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIGroup\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIGroup = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Subject) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Subject: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Subject: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1alpha1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.rbac.v1alpha1;\n\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/rbac/v1alpha1\";\n\n// AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole\nmessage AggregationRule {\n  // ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules.\n  // If any of the selectors match, then the ClusterRole's permissions will be added\n  // +optional\n  // +listType=atomic\n  repeated .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector clusterRoleSelectors = 1;\n}\n\n// ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRole, and will no longer be served in v1.22.\nmessage ClusterRole {\n  // Standard object's metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Rules holds all the PolicyRules for this ClusterRole\n  // +optional\n  // +listType=atomic\n  repeated PolicyRule rules = 2;\n\n  // AggregationRule is an optional field that describes how to build the Rules for this ClusterRole.\n  // If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be\n  // stomped by the controller.\n  // +optional\n  optional AggregationRule aggregationRule = 3;\n}\n\n// ClusterRoleBinding references a ClusterRole, but not contain it.  It can reference a ClusterRole in the global namespace,\n// and adds who information via Subject.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBinding, and will no longer be served in v1.22.\nmessage ClusterRoleBinding {\n  // Standard object's metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Subjects holds references to the objects the role applies to.\n  // +optional\n  // +listType=atomic\n  repeated Subject subjects = 2;\n\n  // RoleRef can only reference a ClusterRole in the global namespace.\n  // If the RoleRef cannot be resolved, the Authorizer must return an error.\n  optional RoleRef roleRef = 3;\n}\n\n// ClusterRoleBindingList is a collection of ClusterRoleBindings.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBindings, and will no longer be served in v1.22.\nmessage ClusterRoleBindingList {\n  // Standard object's metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is a list of ClusterRoleBindings\n  repeated ClusterRoleBinding items = 2;\n}\n\n// ClusterRoleList is a collection of ClusterRoles.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoles, and will no longer be served in v1.22.\nmessage ClusterRoleList {\n  // Standard object's metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is a list of ClusterRoles\n  repeated ClusterRole items = 2;\n}\n\n// PolicyRule holds information that describes a policy rule, but does not contain information\n// about who the rule applies to or which namespace the rule applies to.\nmessage PolicyRule {\n  // Verbs is a list of Verbs that apply to ALL the ResourceKinds contained in this rule. '*' represents all verbs.\n  // +listType=atomic\n  repeated string verbs = 1;\n\n  // APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of\n  // the enumerated resources in any API group will be allowed. \"\" represents the core API group and \"*\" represents all API groups.\n  // +optional\n  // +listType=atomic\n  repeated string apiGroups = 3;\n\n  // Resources is a list of resources this rule applies to. '*' represents all resources.\n  // +optional\n  // +listType=atomic\n  repeated string resources = 4;\n\n  // ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.\n  // +optional\n  // +listType=atomic\n  repeated string resourceNames = 5;\n\n  // NonResourceURLs is a set of partial urls that a user should have access to.  *s are allowed, but only as the full, final step in the path\n  // Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding.\n  // Rules can either apply to API resources (such as \"pods\" or \"secrets\") or non-resource URL paths (such as \"/api\"),  but not both.\n  // +optional\n  // +listType=atomic\n  repeated string nonResourceURLs = 6;\n}\n\n// Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 Role, and will no longer be served in v1.22.\nmessage Role {\n  // Standard object's metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Rules holds all the PolicyRules for this Role\n  // +optional\n  // +listType=atomic\n  repeated PolicyRule rules = 2;\n}\n\n// RoleBinding references a role, but does not contain it.  It can reference a Role in the same namespace or a ClusterRole in the global namespace.\n// It adds who information via Subjects and namespace information by which namespace it exists in.  RoleBindings in a given\n// namespace only have effect in that namespace.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleBinding, and will no longer be served in v1.22.\nmessage RoleBinding {\n  // Standard object's metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Subjects holds references to the objects the role applies to.\n  // +optional\n  // +listType=atomic\n  repeated Subject subjects = 2;\n\n  // RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace.\n  // If the RoleRef cannot be resolved, the Authorizer must return an error.\n  optional RoleRef roleRef = 3;\n}\n\n// RoleBindingList is a collection of RoleBindings\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleBindingList, and will no longer be served in v1.22.\nmessage RoleBindingList {\n  // Standard object's metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is a list of RoleBindings\n  repeated RoleBinding items = 2;\n}\n\n// RoleList is a collection of Roles.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleList, and will no longer be served in v1.22.\nmessage RoleList {\n  // Standard object's metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is a list of Roles\n  repeated Role items = 2;\n}\n\n// RoleRef contains information that points to the role being used\nmessage RoleRef {\n  // APIGroup is the group for the resource being referenced\n  optional string apiGroup = 1;\n\n  // Kind is the type of resource being referenced\n  optional string kind = 2;\n\n  // Name is the name of resource being referenced\n  optional string name = 3;\n}\n\n// Subject contains a reference to the object or user identities a role binding applies to.  This can either hold a direct API object reference,\n// or a value for non-objects such as user and group names.\nmessage Subject {\n  // Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\n  // If the Authorizer does not recognized the kind value, the Authorizer should report an error.\n  optional string kind = 1;\n\n  // APIVersion holds the API group and version of the referenced subject.\n  // Defaults to \"v1\" for ServiceAccount subjects.\n  // Defaults to \"rbac.authorization.k8s.io/v1alpha1\" for User and Group subjects.\n  // +k8s:conversion-gen=false\n  // +optional\n  optional string apiVersion = 2;\n\n  // Name of the object being referenced.\n  optional string name = 3;\n\n  // Namespace of the referenced object.  If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\n  // the Authorizer should report an error.\n  // +optional\n  optional string namespace = 4;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1alpha1/register.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\nconst GroupName = \"rbac.authorization.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1alpha1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&Role{},\n\t\t&RoleBinding{},\n\t\t&RoleBindingList{},\n\t\t&RoleList{},\n\n\t\t&ClusterRole{},\n\t\t&ClusterRoleBinding{},\n\t\t&ClusterRoleBindingList{},\n\t\t&ClusterRoleList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1alpha1/types.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// Authorization is calculated against\n// 1. evaluation of ClusterRoleBindings - short circuit on match\n// 2. evaluation of RoleBindings in the namespace requested - short circuit on match\n// 3. deny by default\n\nconst (\n\tAPIGroupAll    = \"*\"\n\tResourceAll    = \"*\"\n\tVerbAll        = \"*\"\n\tNonResourceAll = \"*\"\n\n\tGroupKind          = \"Group\"\n\tServiceAccountKind = \"ServiceAccount\"\n\tUserKind           = \"User\"\n\n\t// AutoUpdateAnnotationKey is the name of an annotation which prevents reconciliation if set to \"false\"\n\tAutoUpdateAnnotationKey = \"rbac.authorization.kubernetes.io/autoupdate\"\n)\n\n// Authorization is calculated against\n// 1. evaluation of ClusterRoleBindings - short circuit on match\n// 2. evaluation of RoleBindings in the namespace requested - short circuit on match\n// 3. deny by default\n\n// PolicyRule holds information that describes a policy rule, but does not contain information\n// about who the rule applies to or which namespace the rule applies to.\ntype PolicyRule struct {\n\t// Verbs is a list of Verbs that apply to ALL the ResourceKinds contained in this rule. '*' represents all verbs.\n\t// +listType=atomic\n\tVerbs []string `json:\"verbs\" protobuf:\"bytes,1,rep,name=verbs\"`\n\n\t// APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of\n\t// the enumerated resources in any API group will be allowed. \"\" represents the core API group and \"*\" represents all API groups.\n\t// +optional\n\t// +listType=atomic\n\tAPIGroups []string `json:\"apiGroups,omitempty\" protobuf:\"bytes,3,rep,name=apiGroups\"`\n\t// Resources is a list of resources this rule applies to. '*' represents all resources.\n\t// +optional\n\t// +listType=atomic\n\tResources []string `json:\"resources,omitempty\" protobuf:\"bytes,4,rep,name=resources\"`\n\t// ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.\n\t// +optional\n\t// +listType=atomic\n\tResourceNames []string `json:\"resourceNames,omitempty\" protobuf:\"bytes,5,rep,name=resourceNames\"`\n\n\t// NonResourceURLs is a set of partial urls that a user should have access to.  *s are allowed, but only as the full, final step in the path\n\t// Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding.\n\t// Rules can either apply to API resources (such as \"pods\" or \"secrets\") or non-resource URL paths (such as \"/api\"),  but not both.\n\t// +optional\n\t// +listType=atomic\n\tNonResourceURLs []string `json:\"nonResourceURLs,omitempty\" protobuf:\"bytes,6,rep,name=nonResourceURLs\"`\n}\n\n// Subject contains a reference to the object or user identities a role binding applies to.  This can either hold a direct API object reference,\n// or a value for non-objects such as user and group names.\ntype Subject struct {\n\t// Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\n\t// If the Authorizer does not recognized the kind value, the Authorizer should report an error.\n\tKind string `json:\"kind\" protobuf:\"bytes,1,opt,name=kind\"`\n\t// APIVersion holds the API group and version of the referenced subject.\n\t// Defaults to \"v1\" for ServiceAccount subjects.\n\t// Defaults to \"rbac.authorization.k8s.io/v1alpha1\" for User and Group subjects.\n\t// +k8s:conversion-gen=false\n\t// +optional\n\tAPIVersion string `json:\"apiVersion,omitempty\" protobuf:\"bytes,2,opt,name=apiVersion\"`\n\t// Name of the object being referenced.\n\tName string `json:\"name\" protobuf:\"bytes,3,opt,name=name\"`\n\t// Namespace of the referenced object.  If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\n\t// the Authorizer should report an error.\n\t// +optional\n\tNamespace string `json:\"namespace,omitempty\" protobuf:\"bytes,4,opt,name=namespace\"`\n}\n\n// RoleRef contains information that points to the role being used\ntype RoleRef struct {\n\t// APIGroup is the group for the resource being referenced\n\tAPIGroup string `json:\"apiGroup\" protobuf:\"bytes,1,opt,name=apiGroup\"`\n\t// Kind is the type of resource being referenced\n\tKind string `json:\"kind\" protobuf:\"bytes,2,opt,name=kind\"`\n\t// Name is the name of resource being referenced\n\tName string `json:\"name\" protobuf:\"bytes,3,opt,name=name\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 Role, and will no longer be served in v1.22.\ntype Role struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Rules holds all the PolicyRules for this Role\n\t// +optional\n\t// +listType=atomic\n\tRules []PolicyRule `json:\"rules\" protobuf:\"bytes,2,rep,name=rules\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// RoleBinding references a role, but does not contain it.  It can reference a Role in the same namespace or a ClusterRole in the global namespace.\n// It adds who information via Subjects and namespace information by which namespace it exists in.  RoleBindings in a given\n// namespace only have effect in that namespace.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleBinding, and will no longer be served in v1.22.\ntype RoleBinding struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Subjects holds references to the objects the role applies to.\n\t// +optional\n\t// +listType=atomic\n\tSubjects []Subject `json:\"subjects,omitempty\" protobuf:\"bytes,2,rep,name=subjects\"`\n\n\t// RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace.\n\t// If the RoleRef cannot be resolved, the Authorizer must return an error.\n\tRoleRef RoleRef `json:\"roleRef\" protobuf:\"bytes,3,opt,name=roleRef\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// RoleBindingList is a collection of RoleBindings\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleBindingList, and will no longer be served in v1.22.\ntype RoleBindingList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is a list of RoleBindings\n\tItems []RoleBinding `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// RoleList is a collection of Roles.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleList, and will no longer be served in v1.22.\ntype RoleList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is a list of Roles\n\tItems []Role `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRole, and will no longer be served in v1.22.\ntype ClusterRole struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Rules holds all the PolicyRules for this ClusterRole\n\t// +optional\n\t// +listType=atomic\n\tRules []PolicyRule `json:\"rules\" protobuf:\"bytes,2,rep,name=rules\"`\n\n\t// AggregationRule is an optional field that describes how to build the Rules for this ClusterRole.\n\t// If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be\n\t// stomped by the controller.\n\t// +optional\n\tAggregationRule *AggregationRule `json:\"aggregationRule,omitempty\" protobuf:\"bytes,3,opt,name=aggregationRule\"`\n}\n\n// AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole\ntype AggregationRule struct {\n\t// ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules.\n\t// If any of the selectors match, then the ClusterRole's permissions will be added\n\t// +optional\n\t// +listType=atomic\n\tClusterRoleSelectors []metav1.LabelSelector `json:\"clusterRoleSelectors,omitempty\" protobuf:\"bytes,1,rep,name=clusterRoleSelectors\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// ClusterRoleBinding references a ClusterRole, but not contain it.  It can reference a ClusterRole in the global namespace,\n// and adds who information via Subject.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBinding, and will no longer be served in v1.22.\ntype ClusterRoleBinding struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Subjects holds references to the objects the role applies to.\n\t// +optional\n\t// +listType=atomic\n\tSubjects []Subject `json:\"subjects,omitempty\" protobuf:\"bytes,2,rep,name=subjects\"`\n\n\t// RoleRef can only reference a ClusterRole in the global namespace.\n\t// If the RoleRef cannot be resolved, the Authorizer must return an error.\n\tRoleRef RoleRef `json:\"roleRef\" protobuf:\"bytes,3,opt,name=roleRef\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// ClusterRoleBindingList is a collection of ClusterRoleBindings.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBindings, and will no longer be served in v1.22.\ntype ClusterRoleBindingList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is a list of ClusterRoleBindings\n\tItems []ClusterRoleBinding `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// ClusterRoleList is a collection of ClusterRoles.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoles, and will no longer be served in v1.22.\ntype ClusterRoleList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is a list of ClusterRoles\n\tItems []ClusterRole `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1alpha1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_AggregationRule = map[string]string{\n\t\"\":                     \"AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole\",\n\t\"clusterRoleSelectors\": \"ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added\",\n}\n\nfunc (AggregationRule) SwaggerDoc() map[string]string {\n\treturn map_AggregationRule\n}\n\nvar map_ClusterRole = map[string]string{\n\t\"\":                \"ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRole, and will no longer be served in v1.22.\",\n\t\"metadata\":        \"Standard object's metadata.\",\n\t\"rules\":           \"Rules holds all the PolicyRules for this ClusterRole\",\n\t\"aggregationRule\": \"AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller.\",\n}\n\nfunc (ClusterRole) SwaggerDoc() map[string]string {\n\treturn map_ClusterRole\n}\n\nvar map_ClusterRoleBinding = map[string]string{\n\t\"\":         \"ClusterRoleBinding references a ClusterRole, but not contain it.  It can reference a ClusterRole in the global namespace, and adds who information via Subject. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBinding, and will no longer be served in v1.22.\",\n\t\"metadata\": \"Standard object's metadata.\",\n\t\"subjects\": \"Subjects holds references to the objects the role applies to.\",\n\t\"roleRef\":  \"RoleRef can only reference a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error.\",\n}\n\nfunc (ClusterRoleBinding) SwaggerDoc() map[string]string {\n\treturn map_ClusterRoleBinding\n}\n\nvar map_ClusterRoleBindingList = map[string]string{\n\t\"\":         \"ClusterRoleBindingList is a collection of ClusterRoleBindings. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBindings, and will no longer be served in v1.22.\",\n\t\"metadata\": \"Standard object's metadata.\",\n\t\"items\":    \"Items is a list of ClusterRoleBindings\",\n}\n\nfunc (ClusterRoleBindingList) SwaggerDoc() map[string]string {\n\treturn map_ClusterRoleBindingList\n}\n\nvar map_ClusterRoleList = map[string]string{\n\t\"\":         \"ClusterRoleList is a collection of ClusterRoles. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoles, and will no longer be served in v1.22.\",\n\t\"metadata\": \"Standard object's metadata.\",\n\t\"items\":    \"Items is a list of ClusterRoles\",\n}\n\nfunc (ClusterRoleList) SwaggerDoc() map[string]string {\n\treturn map_ClusterRoleList\n}\n\nvar map_PolicyRule = map[string]string{\n\t\"\":                \"PolicyRule holds information that describes a policy rule, but does not contain information about who the rule applies to or which namespace the rule applies to.\",\n\t\"verbs\":           \"Verbs is a list of Verbs that apply to ALL the ResourceKinds contained in this rule. '*' represents all verbs.\",\n\t\"apiGroups\":       \"APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. \\\"\\\" represents the core API group and \\\"*\\\" represents all API groups.\",\n\t\"resources\":       \"Resources is a list of resources this rule applies to. '*' represents all resources.\",\n\t\"resourceNames\":   \"ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.\",\n\t\"nonResourceURLs\": \"NonResourceURLs is a set of partial urls that a user should have access to.  *s are allowed, but only as the full, final step in the path Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. Rules can either apply to API resources (such as \\\"pods\\\" or \\\"secrets\\\") or non-resource URL paths (such as \\\"/api\\\"),  but not both.\",\n}\n\nfunc (PolicyRule) SwaggerDoc() map[string]string {\n\treturn map_PolicyRule\n}\n\nvar map_Role = map[string]string{\n\t\"\":         \"Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 Role, and will no longer be served in v1.22.\",\n\t\"metadata\": \"Standard object's metadata.\",\n\t\"rules\":    \"Rules holds all the PolicyRules for this Role\",\n}\n\nfunc (Role) SwaggerDoc() map[string]string {\n\treturn map_Role\n}\n\nvar map_RoleBinding = map[string]string{\n\t\"\":         \"RoleBinding references a role, but does not contain it.  It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in.  RoleBindings in a given namespace only have effect in that namespace. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleBinding, and will no longer be served in v1.22.\",\n\t\"metadata\": \"Standard object's metadata.\",\n\t\"subjects\": \"Subjects holds references to the objects the role applies to.\",\n\t\"roleRef\":  \"RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error.\",\n}\n\nfunc (RoleBinding) SwaggerDoc() map[string]string {\n\treturn map_RoleBinding\n}\n\nvar map_RoleBindingList = map[string]string{\n\t\"\":         \"RoleBindingList is a collection of RoleBindings Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleBindingList, and will no longer be served in v1.22.\",\n\t\"metadata\": \"Standard object's metadata.\",\n\t\"items\":    \"Items is a list of RoleBindings\",\n}\n\nfunc (RoleBindingList) SwaggerDoc() map[string]string {\n\treturn map_RoleBindingList\n}\n\nvar map_RoleList = map[string]string{\n\t\"\":         \"RoleList is a collection of Roles. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleList, and will no longer be served in v1.22.\",\n\t\"metadata\": \"Standard object's metadata.\",\n\t\"items\":    \"Items is a list of Roles\",\n}\n\nfunc (RoleList) SwaggerDoc() map[string]string {\n\treturn map_RoleList\n}\n\nvar map_RoleRef = map[string]string{\n\t\"\":         \"RoleRef contains information that points to the role being used\",\n\t\"apiGroup\": \"APIGroup is the group for the resource being referenced\",\n\t\"kind\":     \"Kind is the type of resource being referenced\",\n\t\"name\":     \"Name is the name of resource being referenced\",\n}\n\nfunc (RoleRef) SwaggerDoc() map[string]string {\n\treturn map_RoleRef\n}\n\nvar map_Subject = map[string]string{\n\t\"\":           \"Subject contains a reference to the object or user identities a role binding applies to.  This can either hold a direct API object reference, or a value for non-objects such as user and group names.\",\n\t\"kind\":       \"Kind of object being referenced. Values defined by this API group are \\\"User\\\", \\\"Group\\\", and \\\"ServiceAccount\\\". If the Authorizer does not recognized the kind value, the Authorizer should report an error.\",\n\t\"apiVersion\": \"APIVersion holds the API group and version of the referenced subject. Defaults to \\\"v1\\\" for ServiceAccount subjects. Defaults to \\\"rbac.authorization.k8s.io/v1alpha1\\\" for User and Group subjects.\",\n\t\"name\":       \"Name of the object being referenced.\",\n\t\"namespace\":  \"Namespace of the referenced object.  If the object kind is non-namespace, such as \\\"User\\\" or \\\"Group\\\", and this value is not empty the Authorizer should report an error.\",\n}\n\nfunc (Subject) SwaggerDoc() map[string]string {\n\treturn map_Subject\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1alpha1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *AggregationRule) DeepCopyInto(out *AggregationRule) {\n\t*out = *in\n\tif in.ClusterRoleSelectors != nil {\n\t\tin, out := &in.ClusterRoleSelectors, &out.ClusterRoleSelectors\n\t\t*out = make([]v1.LabelSelector, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AggregationRule.\nfunc (in *AggregationRule) DeepCopy() *AggregationRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(AggregationRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ClusterRole) DeepCopyInto(out *ClusterRole) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Rules != nil {\n\t\tin, out := &in.Rules, &out.Rules\n\t\t*out = make([]PolicyRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.AggregationRule != nil {\n\t\tin, out := &in.AggregationRule, &out.AggregationRule\n\t\t*out = new(AggregationRule)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterRole.\nfunc (in *ClusterRole) DeepCopy() *ClusterRole {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ClusterRole)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ClusterRole) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ClusterRoleBinding) DeepCopyInto(out *ClusterRoleBinding) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Subjects != nil {\n\t\tin, out := &in.Subjects, &out.Subjects\n\t\t*out = make([]Subject, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tout.RoleRef = in.RoleRef\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterRoleBinding.\nfunc (in *ClusterRoleBinding) DeepCopy() *ClusterRoleBinding {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ClusterRoleBinding)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ClusterRoleBinding) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ClusterRoleBindingList) DeepCopyInto(out *ClusterRoleBindingList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ClusterRoleBinding, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterRoleBindingList.\nfunc (in *ClusterRoleBindingList) DeepCopy() *ClusterRoleBindingList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ClusterRoleBindingList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ClusterRoleBindingList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ClusterRoleList) DeepCopyInto(out *ClusterRoleList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ClusterRole, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterRoleList.\nfunc (in *ClusterRoleList) DeepCopy() *ClusterRoleList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ClusterRoleList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ClusterRoleList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PolicyRule) DeepCopyInto(out *PolicyRule) {\n\t*out = *in\n\tif in.Verbs != nil {\n\t\tin, out := &in.Verbs, &out.Verbs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.APIGroups != nil {\n\t\tin, out := &in.APIGroups, &out.APIGroups\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Resources != nil {\n\t\tin, out := &in.Resources, &out.Resources\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ResourceNames != nil {\n\t\tin, out := &in.ResourceNames, &out.ResourceNames\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.NonResourceURLs != nil {\n\t\tin, out := &in.NonResourceURLs, &out.NonResourceURLs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyRule.\nfunc (in *PolicyRule) DeepCopy() *PolicyRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PolicyRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Role) DeepCopyInto(out *Role) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Rules != nil {\n\t\tin, out := &in.Rules, &out.Rules\n\t\t*out = make([]PolicyRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Role.\nfunc (in *Role) DeepCopy() *Role {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Role)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Role) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RoleBinding) DeepCopyInto(out *RoleBinding) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Subjects != nil {\n\t\tin, out := &in.Subjects, &out.Subjects\n\t\t*out = make([]Subject, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tout.RoleRef = in.RoleRef\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleBinding.\nfunc (in *RoleBinding) DeepCopy() *RoleBinding {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RoleBinding)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *RoleBinding) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RoleBindingList) DeepCopyInto(out *RoleBindingList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]RoleBinding, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleBindingList.\nfunc (in *RoleBindingList) DeepCopy() *RoleBindingList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RoleBindingList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *RoleBindingList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RoleList) DeepCopyInto(out *RoleList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Role, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleList.\nfunc (in *RoleList) DeepCopy() *RoleList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RoleList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *RoleList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RoleRef) DeepCopyInto(out *RoleRef) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleRef.\nfunc (in *RoleRef) DeepCopy() *RoleRef {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RoleRef)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Subject) DeepCopyInto(out *Subject) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Subject.\nfunc (in *Subject) DeepCopy() *Subject {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Subject)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1beta1/doc.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\n// +groupName=rbac.authorization.k8s.io\n\npackage v1beta1 // import \"k8s.io/api/rbac/v1beta1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1beta1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/rbac/v1beta1/generated.proto\n\npackage v1beta1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *AggregationRule) Reset()      { *m = AggregationRule{} }\nfunc (*AggregationRule) ProtoMessage() {}\nfunc (*AggregationRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c5bc2d145acd4e45, []int{0}\n}\nfunc (m *AggregationRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *AggregationRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *AggregationRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_AggregationRule.Merge(m, src)\n}\nfunc (m *AggregationRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *AggregationRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_AggregationRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_AggregationRule proto.InternalMessageInfo\n\nfunc (m *ClusterRole) Reset()      { *m = ClusterRole{} }\nfunc (*ClusterRole) ProtoMessage() {}\nfunc (*ClusterRole) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c5bc2d145acd4e45, []int{1}\n}\nfunc (m *ClusterRole) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ClusterRole) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ClusterRole) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ClusterRole.Merge(m, src)\n}\nfunc (m *ClusterRole) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ClusterRole) XXX_DiscardUnknown() {\n\txxx_messageInfo_ClusterRole.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ClusterRole proto.InternalMessageInfo\n\nfunc (m *ClusterRoleBinding) Reset()      { *m = ClusterRoleBinding{} }\nfunc (*ClusterRoleBinding) ProtoMessage() {}\nfunc (*ClusterRoleBinding) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c5bc2d145acd4e45, []int{2}\n}\nfunc (m *ClusterRoleBinding) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ClusterRoleBinding) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ClusterRoleBinding) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ClusterRoleBinding.Merge(m, src)\n}\nfunc (m *ClusterRoleBinding) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ClusterRoleBinding) XXX_DiscardUnknown() {\n\txxx_messageInfo_ClusterRoleBinding.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ClusterRoleBinding proto.InternalMessageInfo\n\nfunc (m *ClusterRoleBindingList) Reset()      { *m = ClusterRoleBindingList{} }\nfunc (*ClusterRoleBindingList) ProtoMessage() {}\nfunc (*ClusterRoleBindingList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c5bc2d145acd4e45, []int{3}\n}\nfunc (m *ClusterRoleBindingList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ClusterRoleBindingList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ClusterRoleBindingList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ClusterRoleBindingList.Merge(m, src)\n}\nfunc (m *ClusterRoleBindingList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ClusterRoleBindingList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ClusterRoleBindingList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ClusterRoleBindingList proto.InternalMessageInfo\n\nfunc (m *ClusterRoleList) Reset()      { *m = ClusterRoleList{} }\nfunc (*ClusterRoleList) ProtoMessage() {}\nfunc (*ClusterRoleList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c5bc2d145acd4e45, []int{4}\n}\nfunc (m *ClusterRoleList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ClusterRoleList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ClusterRoleList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ClusterRoleList.Merge(m, src)\n}\nfunc (m *ClusterRoleList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ClusterRoleList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ClusterRoleList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ClusterRoleList proto.InternalMessageInfo\n\nfunc (m *PolicyRule) Reset()      { *m = PolicyRule{} }\nfunc (*PolicyRule) ProtoMessage() {}\nfunc (*PolicyRule) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c5bc2d145acd4e45, []int{5}\n}\nfunc (m *PolicyRule) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PolicyRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PolicyRule) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PolicyRule.Merge(m, src)\n}\nfunc (m *PolicyRule) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PolicyRule) XXX_DiscardUnknown() {\n\txxx_messageInfo_PolicyRule.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PolicyRule proto.InternalMessageInfo\n\nfunc (m *Role) Reset()      { *m = Role{} }\nfunc (*Role) ProtoMessage() {}\nfunc (*Role) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c5bc2d145acd4e45, []int{6}\n}\nfunc (m *Role) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Role) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Role) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Role.Merge(m, src)\n}\nfunc (m *Role) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Role) XXX_DiscardUnknown() {\n\txxx_messageInfo_Role.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Role proto.InternalMessageInfo\n\nfunc (m *RoleBinding) Reset()      { *m = RoleBinding{} }\nfunc (*RoleBinding) ProtoMessage() {}\nfunc (*RoleBinding) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c5bc2d145acd4e45, []int{7}\n}\nfunc (m *RoleBinding) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RoleBinding) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RoleBinding) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RoleBinding.Merge(m, src)\n}\nfunc (m *RoleBinding) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RoleBinding) XXX_DiscardUnknown() {\n\txxx_messageInfo_RoleBinding.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RoleBinding proto.InternalMessageInfo\n\nfunc (m *RoleBindingList) Reset()      { *m = RoleBindingList{} }\nfunc (*RoleBindingList) ProtoMessage() {}\nfunc (*RoleBindingList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c5bc2d145acd4e45, []int{8}\n}\nfunc (m *RoleBindingList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RoleBindingList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RoleBindingList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RoleBindingList.Merge(m, src)\n}\nfunc (m *RoleBindingList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RoleBindingList) XXX_DiscardUnknown() {\n\txxx_messageInfo_RoleBindingList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RoleBindingList proto.InternalMessageInfo\n\nfunc (m *RoleList) Reset()      { *m = RoleList{} }\nfunc (*RoleList) ProtoMessage() {}\nfunc (*RoleList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c5bc2d145acd4e45, []int{9}\n}\nfunc (m *RoleList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RoleList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RoleList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RoleList.Merge(m, src)\n}\nfunc (m *RoleList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RoleList) XXX_DiscardUnknown() {\n\txxx_messageInfo_RoleList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RoleList proto.InternalMessageInfo\n\nfunc (m *RoleRef) Reset()      { *m = RoleRef{} }\nfunc (*RoleRef) ProtoMessage() {}\nfunc (*RoleRef) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c5bc2d145acd4e45, []int{10}\n}\nfunc (m *RoleRef) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RoleRef) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RoleRef) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RoleRef.Merge(m, src)\n}\nfunc (m *RoleRef) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RoleRef) XXX_DiscardUnknown() {\n\txxx_messageInfo_RoleRef.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RoleRef proto.InternalMessageInfo\n\nfunc (m *Subject) Reset()      { *m = Subject{} }\nfunc (*Subject) ProtoMessage() {}\nfunc (*Subject) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_c5bc2d145acd4e45, []int{11}\n}\nfunc (m *Subject) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Subject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Subject) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Subject.Merge(m, src)\n}\nfunc (m *Subject) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Subject) XXX_DiscardUnknown() {\n\txxx_messageInfo_Subject.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Subject proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*AggregationRule)(nil), \"k8s.io.api.rbac.v1beta1.AggregationRule\")\n\tproto.RegisterType((*ClusterRole)(nil), \"k8s.io.api.rbac.v1beta1.ClusterRole\")\n\tproto.RegisterType((*ClusterRoleBinding)(nil), \"k8s.io.api.rbac.v1beta1.ClusterRoleBinding\")\n\tproto.RegisterType((*ClusterRoleBindingList)(nil), \"k8s.io.api.rbac.v1beta1.ClusterRoleBindingList\")\n\tproto.RegisterType((*ClusterRoleList)(nil), \"k8s.io.api.rbac.v1beta1.ClusterRoleList\")\n\tproto.RegisterType((*PolicyRule)(nil), \"k8s.io.api.rbac.v1beta1.PolicyRule\")\n\tproto.RegisterType((*Role)(nil), \"k8s.io.api.rbac.v1beta1.Role\")\n\tproto.RegisterType((*RoleBinding)(nil), \"k8s.io.api.rbac.v1beta1.RoleBinding\")\n\tproto.RegisterType((*RoleBindingList)(nil), \"k8s.io.api.rbac.v1beta1.RoleBindingList\")\n\tproto.RegisterType((*RoleList)(nil), \"k8s.io.api.rbac.v1beta1.RoleList\")\n\tproto.RegisterType((*RoleRef)(nil), \"k8s.io.api.rbac.v1beta1.RoleRef\")\n\tproto.RegisterType((*Subject)(nil), \"k8s.io.api.rbac.v1beta1.Subject\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/rbac/v1beta1/generated.proto\", fileDescriptor_c5bc2d145acd4e45)\n}\n\nvar fileDescriptor_c5bc2d145acd4e45 = []byte{\n\t// 800 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x56, 0x3b, 0x6f, 0xe3, 0x46,\n\t0x10, 0xd6, 0xca, 0x12, 0x2c, 0xae, 0x22, 0x28, 0xde, 0x18, 0x31, 0x61, 0x24, 0x94, 0xa0, 0x04,\n\t0x88, 0x01, 0x27, 0x64, 0xec, 0x04, 0x49, 0x1a, 0x17, 0x66, 0x8a, 0xc4, 0xb0, 0xa3, 0x18, 0x6b,\n\t0x24, 0x45, 0x90, 0x22, 0x2b, 0x6a, 0x4d, 0x6f, 0xc4, 0x17, 0xb8, 0xa4, 0x00, 0x23, 0x4d, 0x9a,\n\t0xeb, 0xae, 0x38, 0xe0, 0xaa, 0x6b, 0xaf, 0xbe, 0xea, 0xca, 0xfb, 0x05, 0x2a, 0x5d, 0xba, 0x12,\n\t0xce, 0xbc, 0x1f, 0x72, 0x87, 0xe5, 0x43, 0xd4, 0x8b, 0xb6, 0x2a, 0x01, 0x07, 0x5c, 0x25, 0xed,\n\t0xcc, 0x37, 0xdf, 0xcc, 0x7c, 0xbb, 0x33, 0x12, 0xfc, 0x6a, 0xf0, 0x13, 0x57, 0x99, 0xab, 0x11,\n\t0x8f, 0x69, 0x7e, 0x8f, 0x18, 0xda, 0xf0, 0xa0, 0x47, 0x03, 0x72, 0xa0, 0x99, 0xd4, 0xa1, 0x3e,\n\t0x09, 0x68, 0x5f, 0xf5, 0x7c, 0x37, 0x70, 0xd1, 0x4e, 0x02, 0x54, 0x89, 0xc7, 0x54, 0x01, 0x54,\n\t0x53, 0xe0, 0xee, 0x37, 0x26, 0x0b, 0xae, 0xc2, 0x9e, 0x6a, 0xb8, 0xb6, 0x66, 0xba, 0xa6, 0xab,\n\t0xc5, 0xf8, 0x5e, 0x78, 0x19, 0x9f, 0xe2, 0x43, 0xfc, 0x2d, 0xe1, 0xd9, 0xfd, 0x3e, 0x4f, 0x68,\n\t0x13, 0xe3, 0x8a, 0x39, 0xd4, 0xbf, 0xd6, 0xbc, 0x81, 0x29, 0x0c, 0x5c, 0xb3, 0x69, 0x40, 0xb4,\n\t0xe1, 0x42, 0xf6, 0x5d, 0xad, 0x28, 0xca, 0x0f, 0x9d, 0x80, 0xd9, 0x74, 0x21, 0xe0, 0x87, 0x87,\n\t0x02, 0xb8, 0x71, 0x45, 0x6d, 0x32, 0x1f, 0xd7, 0x79, 0x06, 0x60, 0xf3, 0xd8, 0x34, 0x7d, 0x6a,\n\t0x92, 0x80, 0xb9, 0x0e, 0x0e, 0x2d, 0x8a, 0x1e, 0x01, 0xb8, 0x6d, 0x58, 0x21, 0x0f, 0xa8, 0x8f,\n\t0x5d, 0x8b, 0x5e, 0x50, 0x8b, 0x1a, 0x81, 0xeb, 0x73, 0x19, 0xb4, 0x37, 0xf6, 0xea, 0x87, 0xdf,\n\t0xa9, 0xb9, 0x34, 0x93, 0x5c, 0xaa, 0x37, 0x30, 0x85, 0x81, 0xab, 0xa2, 0x25, 0x75, 0x78, 0xa0,\n\t0x9e, 0x91, 0x1e, 0xb5, 0xb2, 0x58, 0xfd, 0xb3, 0xd1, 0xb8, 0x55, 0x8a, 0xc6, 0xad, 0xed, 0x9f,\n\t0x97, 0x10, 0xe3, 0xa5, 0xe9, 0x3a, 0xcf, 0xcb, 0xb0, 0x3e, 0x05, 0x47, 0xff, 0xc0, 0x9a, 0x20,\n\t0xef, 0x93, 0x80, 0xc8, 0xa0, 0x0d, 0xf6, 0xea, 0x87, 0xdf, 0xae, 0x56, 0xca, 0xef, 0xbd, 0x7f,\n\t0xa9, 0x11, 0xfc, 0x46, 0x03, 0xa2, 0xa3, 0xb4, 0x0e, 0x98, 0xdb, 0xf0, 0x84, 0x15, 0xfd, 0x0a,\n\t0xab, 0x7e, 0x68, 0x51, 0x2e, 0x97, 0xe3, 0x4e, 0xbf, 0x50, 0x0b, 0x1e, 0x81, 0x7a, 0xee, 0x5a,\n\t0xcc, 0xb8, 0x16, 0x6a, 0xe9, 0x8d, 0x94, 0xb1, 0x2a, 0x4e, 0x1c, 0x27, 0x04, 0xc8, 0x84, 0x4d,\n\t0x32, 0x2b, 0xab, 0xbc, 0x11, 0x97, 0xbc, 0x57, 0xc8, 0x39, 0x77, 0x0d, 0xfa, 0x27, 0xd1, 0xb8,\n\t0x35, 0x7f, 0x37, 0x78, 0x9e, 0xb5, 0xf3, 0xb4, 0x0c, 0xd1, 0x94, 0x48, 0x3a, 0x73, 0xfa, 0xcc,\n\t0x31, 0xd7, 0xa0, 0x55, 0x17, 0xd6, 0x78, 0x18, 0x3b, 0x32, 0xb9, 0xda, 0x85, 0xad, 0x5d, 0x24,\n\t0x40, 0xfd, 0xe3, 0x94, 0xb1, 0x96, 0x1a, 0x38, 0x9e, 0x70, 0xa0, 0x53, 0xb8, 0xe9, 0xbb, 0x16,\n\t0xc5, 0xf4, 0x32, 0x55, 0xaa, 0x98, 0x0e, 0x27, 0x38, 0xbd, 0x99, 0xd2, 0x6d, 0xa6, 0x06, 0x9c,\n\t0x31, 0x74, 0x46, 0x00, 0x7e, 0xba, 0xa8, 0xca, 0x19, 0xe3, 0x01, 0xfa, 0x7b, 0x41, 0x19, 0x75,\n\t0xc5, 0x07, 0xcd, 0x78, 0xa2, 0xcb, 0xa4, 0x8b, 0xcc, 0x32, 0xa5, 0xca, 0x39, 0xac, 0xb2, 0x80,\n\t0xda, 0x99, 0x24, 0xfb, 0x85, 0x3d, 0x2c, 0x56, 0x97, 0xbf, 0xa4, 0x13, 0xc1, 0x80, 0x13, 0xa2,\n\t0xce, 0x2b, 0x00, 0x9b, 0x53, 0xe0, 0x35, 0xf4, 0x70, 0x32, 0xdb, 0xc3, 0x97, 0x2b, 0xf5, 0xb0,\n\t0xbc, 0xf8, 0xb7, 0x00, 0xc2, 0x7c, 0x56, 0x50, 0x0b, 0x56, 0x87, 0xd4, 0xef, 0x25, 0x9b, 0x44,\n\t0xd2, 0x25, 0x81, 0xff, 0x53, 0x18, 0x70, 0x62, 0x47, 0xfb, 0x50, 0x22, 0x1e, 0xfb, 0xc5, 0x77,\n\t0x43, 0x2f, 0x49, 0x2f, 0xe9, 0x8d, 0x68, 0xdc, 0x92, 0x8e, 0xcf, 0x4f, 0x12, 0x23, 0xce, 0xfd,\n\t0x02, 0xec, 0x53, 0xee, 0x86, 0xbe, 0x41, 0xb9, 0xbc, 0x91, 0x83, 0x71, 0x66, 0xc4, 0xb9, 0x1f,\n\t0xfd, 0x08, 0x1b, 0xd9, 0xa1, 0x4b, 0x6c, 0xca, 0xe5, 0x4a, 0x1c, 0xb0, 0x15, 0x8d, 0x5b, 0x0d,\n\t0x3c, 0xed, 0xc0, 0xb3, 0x38, 0x74, 0x04, 0x9b, 0x8e, 0xeb, 0x64, 0x90, 0x3f, 0xf0, 0x19, 0x97,\n\t0xab, 0x71, 0x68, 0x3c, 0x9f, 0xdd, 0x59, 0x17, 0x9e, 0xc7, 0x76, 0x5e, 0x02, 0x58, 0x79, 0xdf,\n\t0xb6, 0x57, 0xe7, 0x71, 0x19, 0xd6, 0x3f, 0x6c, 0x93, 0xc9, 0x36, 0x11, 0x23, 0xb8, 0xde, 0x35,\n\t0xb2, 0xf2, 0x08, 0x3e, 0xbc, 0x3f, 0x5e, 0x00, 0x58, 0x5b, 0xd3, 0xe2, 0xd0, 0x67, 0xab, 0xfe,\n\t0xfc, 0xfe, 0xaa, 0x97, 0x97, 0xfb, 0x1f, 0xcc, 0xf4, 0x47, 0x5f, 0xc3, 0x5a, 0x36, 0xec, 0x71,\n\t0xb1, 0x52, 0x9e, 0x3c, 0xdb, 0x07, 0x78, 0x82, 0x40, 0x6d, 0x58, 0x19, 0x30, 0xa7, 0x2f, 0x97,\n\t0x63, 0xe4, 0x47, 0x29, 0xb2, 0x72, 0xca, 0x9c, 0x3e, 0x8e, 0x3d, 0x02, 0xe1, 0x10, 0x3b, 0xf9,\n\t0x21, 0x9e, 0x42, 0x88, 0x31, 0xc7, 0xb1, 0x47, 0x68, 0xb5, 0x99, 0x3e, 0xa6, 0x09, 0x1f, 0x28,\n\t0xe4, 0x9b, 0xae, 0xaf, 0xbc, 0x4a, 0x7d, 0xf7, 0x67, 0x47, 0x1a, 0x94, 0xc4, 0x27, 0xf7, 0x88,\n\t0x41, 0xe5, 0x4a, 0x0c, 0xdb, 0x4a, 0x61, 0x52, 0x37, 0x73, 0xe0, 0x1c, 0xa3, 0x1f, 0x8d, 0xee,\n\t0x94, 0xd2, 0xcd, 0x9d, 0x52, 0xba, 0xbd, 0x53, 0x4a, 0xff, 0x47, 0x0a, 0x18, 0x45, 0x0a, 0xb8,\n\t0x89, 0x14, 0x70, 0x1b, 0x29, 0xe0, 0x75, 0xa4, 0x80, 0x27, 0x6f, 0x94, 0xd2, 0x5f, 0x3b, 0x05,\n\t0x7f, 0x79, 0xdf, 0x05, 0x00, 0x00, 0xff, 0xff, 0x75, 0xfb, 0x5a, 0x79, 0x0c, 0x0b, 0x00, 0x00,\n}\n\nfunc (m *AggregationRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *AggregationRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *AggregationRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ClusterRoleSelectors) > 0 {\n\t\tfor iNdEx := len(m.ClusterRoleSelectors) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ClusterRoleSelectors[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ClusterRole) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ClusterRole) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ClusterRole) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.AggregationRule != nil {\n\t\t{\n\t\t\tsize, err := m.AggregationRule.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif len(m.Rules) > 0 {\n\t\tfor iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Rules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ClusterRoleBinding) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ClusterRoleBinding) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ClusterRoleBinding) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.RoleRef.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.Subjects) > 0 {\n\t\tfor iNdEx := len(m.Subjects) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Subjects[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ClusterRoleBindingList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ClusterRoleBindingList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ClusterRoleBindingList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ClusterRoleList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ClusterRoleList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ClusterRoleList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PolicyRule) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PolicyRule) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PolicyRule) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.NonResourceURLs) > 0 {\n\t\tfor iNdEx := len(m.NonResourceURLs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.NonResourceURLs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.NonResourceURLs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.NonResourceURLs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\tif len(m.ResourceNames) > 0 {\n\t\tfor iNdEx := len(m.ResourceNames) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.ResourceNames[iNdEx])\n\t\t\tcopy(dAtA[i:], m.ResourceNames[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ResourceNames[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif len(m.Resources) > 0 {\n\t\tfor iNdEx := len(m.Resources) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Resources[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Resources[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Resources[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.APIGroups) > 0 {\n\t\tfor iNdEx := len(m.APIGroups) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.APIGroups[iNdEx])\n\t\t\tcopy(dAtA[i:], m.APIGroups[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIGroups[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Verbs) > 0 {\n\t\tfor iNdEx := len(m.Verbs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Verbs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Verbs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Verbs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Role) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Role) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Role) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Rules) > 0 {\n\t\tfor iNdEx := len(m.Rules) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Rules[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RoleBinding) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RoleBinding) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RoleBinding) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.RoleRef.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.Subjects) > 0 {\n\t\tfor iNdEx := len(m.Subjects) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Subjects[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RoleBindingList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RoleBindingList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RoleBindingList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RoleList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RoleList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RoleList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RoleRef) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RoleRef) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RoleRef) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.APIGroup)\n\tcopy(dAtA[i:], m.APIGroup)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIGroup)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Subject) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Subject) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Subject) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Namespace)\n\tcopy(dAtA[i:], m.Namespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.APIGroup)\n\tcopy(dAtA[i:], m.APIGroup)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIGroup)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *AggregationRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.ClusterRoleSelectors) > 0 {\n\t\tfor _, e := range m.ClusterRoleSelectors {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ClusterRole) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Rules) > 0 {\n\t\tfor _, e := range m.Rules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.AggregationRule != nil {\n\t\tl = m.AggregationRule.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *ClusterRoleBinding) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Subjects) > 0 {\n\t\tfor _, e := range m.Subjects {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = m.RoleRef.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ClusterRoleBindingList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ClusterRoleList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *PolicyRule) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Verbs) > 0 {\n\t\tfor _, s := range m.Verbs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.APIGroups) > 0 {\n\t\tfor _, s := range m.APIGroups {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Resources) > 0 {\n\t\tfor _, s := range m.Resources {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.ResourceNames) > 0 {\n\t\tfor _, s := range m.ResourceNames {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.NonResourceURLs) > 0 {\n\t\tfor _, s := range m.NonResourceURLs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *Role) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Rules) > 0 {\n\t\tfor _, e := range m.Rules {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *RoleBinding) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Subjects) > 0 {\n\t\tfor _, e := range m.Subjects {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = m.RoleRef.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *RoleBindingList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *RoleList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *RoleRef) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.APIGroup)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *Subject) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.APIGroup)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Namespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *AggregationRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForClusterRoleSelectors := \"[]LabelSelector{\"\n\tfor _, f := range this.ClusterRoleSelectors {\n\t\trepeatedStringForClusterRoleSelectors += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForClusterRoleSelectors += \"}\"\n\ts := strings.Join([]string{`&AggregationRule{`,\n\t\t`ClusterRoleSelectors:` + repeatedStringForClusterRoleSelectors + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ClusterRole) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForRules := \"[]PolicyRule{\"\n\tfor _, f := range this.Rules {\n\t\trepeatedStringForRules += strings.Replace(strings.Replace(f.String(), \"PolicyRule\", \"PolicyRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRules += \"}\"\n\ts := strings.Join([]string{`&ClusterRole{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Rules:` + repeatedStringForRules + `,`,\n\t\t`AggregationRule:` + strings.Replace(this.AggregationRule.String(), \"AggregationRule\", \"AggregationRule\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ClusterRoleBinding) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForSubjects := \"[]Subject{\"\n\tfor _, f := range this.Subjects {\n\t\trepeatedStringForSubjects += strings.Replace(strings.Replace(f.String(), \"Subject\", \"Subject\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForSubjects += \"}\"\n\ts := strings.Join([]string{`&ClusterRoleBinding{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Subjects:` + repeatedStringForSubjects + `,`,\n\t\t`RoleRef:` + strings.Replace(strings.Replace(this.RoleRef.String(), \"RoleRef\", \"RoleRef\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ClusterRoleBindingList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ClusterRoleBinding{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ClusterRoleBinding\", \"ClusterRoleBinding\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ClusterRoleBindingList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ClusterRoleList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ClusterRole{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ClusterRole\", \"ClusterRole\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ClusterRoleList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PolicyRule) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PolicyRule{`,\n\t\t`Verbs:` + fmt.Sprintf(\"%v\", this.Verbs) + `,`,\n\t\t`APIGroups:` + fmt.Sprintf(\"%v\", this.APIGroups) + `,`,\n\t\t`Resources:` + fmt.Sprintf(\"%v\", this.Resources) + `,`,\n\t\t`ResourceNames:` + fmt.Sprintf(\"%v\", this.ResourceNames) + `,`,\n\t\t`NonResourceURLs:` + fmt.Sprintf(\"%v\", this.NonResourceURLs) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Role) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForRules := \"[]PolicyRule{\"\n\tfor _, f := range this.Rules {\n\t\trepeatedStringForRules += strings.Replace(strings.Replace(f.String(), \"PolicyRule\", \"PolicyRule\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRules += \"}\"\n\ts := strings.Join([]string{`&Role{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Rules:` + repeatedStringForRules + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RoleBinding) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForSubjects := \"[]Subject{\"\n\tfor _, f := range this.Subjects {\n\t\trepeatedStringForSubjects += strings.Replace(strings.Replace(f.String(), \"Subject\", \"Subject\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForSubjects += \"}\"\n\ts := strings.Join([]string{`&RoleBinding{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Subjects:` + repeatedStringForSubjects + `,`,\n\t\t`RoleRef:` + strings.Replace(strings.Replace(this.RoleRef.String(), \"RoleRef\", \"RoleRef\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RoleBindingList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]RoleBinding{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"RoleBinding\", \"RoleBinding\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&RoleBindingList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RoleList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]Role{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"Role\", \"Role\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&RoleList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RoleRef) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RoleRef{`,\n\t\t`APIGroup:` + fmt.Sprintf(\"%v\", this.APIGroup) + `,`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Subject) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Subject{`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`APIGroup:` + fmt.Sprintf(\"%v\", this.APIGroup) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *AggregationRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: AggregationRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: AggregationRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ClusterRoleSelectors\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ClusterRoleSelectors = append(m.ClusterRoleSelectors, v1.LabelSelector{})\n\t\t\tif err := m.ClusterRoleSelectors[len(m.ClusterRoleSelectors)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ClusterRole) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRole: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRole: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Rules = append(m.Rules, PolicyRule{})\n\t\t\tif err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AggregationRule\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AggregationRule == nil {\n\t\t\t\tm.AggregationRule = &AggregationRule{}\n\t\t\t}\n\t\t\tif err := m.AggregationRule.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ClusterRoleBinding) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRoleBinding: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRoleBinding: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Subjects\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Subjects = append(m.Subjects, Subject{})\n\t\t\tif err := m.Subjects[len(m.Subjects)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RoleRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.RoleRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ClusterRoleBindingList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRoleBindingList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRoleBindingList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ClusterRoleBinding{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ClusterRoleList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRoleList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ClusterRoleList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ClusterRole{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PolicyRule) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PolicyRule: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PolicyRule: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verbs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Verbs = append(m.Verbs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIGroups\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIGroups = append(m.APIGroups, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resources\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resources = append(m.Resources, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceNames\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceNames = append(m.ResourceNames, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NonResourceURLs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NonResourceURLs = append(m.NonResourceURLs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Role) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Role: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Role: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Rules\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Rules = append(m.Rules, PolicyRule{})\n\t\t\tif err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RoleBinding) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RoleBinding: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RoleBinding: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Subjects\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Subjects = append(m.Subjects, Subject{})\n\t\t\tif err := m.Subjects[len(m.Subjects)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RoleRef\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.RoleRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RoleBindingList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RoleBindingList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RoleBindingList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, RoleBinding{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RoleList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RoleList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RoleList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, Role{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RoleRef) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RoleRef: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RoleRef: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIGroup\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIGroup = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Subject) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Subject: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Subject: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIGroup\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIGroup = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1beta1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.rbac.v1beta1;\n\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/rbac/v1beta1\";\n\n// AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole\nmessage AggregationRule {\n  // ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules.\n  // If any of the selectors match, then the ClusterRole's permissions will be added\n  // +optional\n  // +listType=atomic\n  repeated .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector clusterRoleSelectors = 1;\n}\n\n// ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRole, and will no longer be served in v1.22.\nmessage ClusterRole {\n  // Standard object's metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Rules holds all the PolicyRules for this ClusterRole\n  // +optional\n  // +listType=atomic\n  repeated PolicyRule rules = 2;\n\n  // AggregationRule is an optional field that describes how to build the Rules for this ClusterRole.\n  // If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be\n  // stomped by the controller.\n  // +optional\n  optional AggregationRule aggregationRule = 3;\n}\n\n// ClusterRoleBinding references a ClusterRole, but not contain it.  It can reference a ClusterRole in the global namespace,\n// and adds who information via Subject.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBinding, and will no longer be served in v1.22.\nmessage ClusterRoleBinding {\n  // Standard object's metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Subjects holds references to the objects the role applies to.\n  // +optional\n  // +listType=atomic\n  repeated Subject subjects = 2;\n\n  // RoleRef can only reference a ClusterRole in the global namespace.\n  // If the RoleRef cannot be resolved, the Authorizer must return an error.\n  optional RoleRef roleRef = 3;\n}\n\n// ClusterRoleBindingList is a collection of ClusterRoleBindings.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBindingList, and will no longer be served in v1.22.\nmessage ClusterRoleBindingList {\n  // Standard object's metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is a list of ClusterRoleBindings\n  repeated ClusterRoleBinding items = 2;\n}\n\n// ClusterRoleList is a collection of ClusterRoles.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoles, and will no longer be served in v1.22.\nmessage ClusterRoleList {\n  // Standard object's metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is a list of ClusterRoles\n  repeated ClusterRole items = 2;\n}\n\n// PolicyRule holds information that describes a policy rule, but does not contain information\n// about who the rule applies to or which namespace the rule applies to.\nmessage PolicyRule {\n  // Verbs is a list of Verbs that apply to ALL the ResourceKinds contained in this rule. '*' represents all verbs.\n  // +listType=atomic\n  repeated string verbs = 1;\n\n  // APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of\n  // the enumerated resources in any API group will be allowed. \"\" represents the core API group and \"*\" represents all API groups.\n  // +optional\n  // +listType=atomic\n  repeated string apiGroups = 2;\n\n  // Resources is a list of resources this rule applies to.  '*' represents all resources in the specified apiGroups.\n  // '*/foo' represents the subresource 'foo' for all resources in the specified apiGroups.\n  // +optional\n  // +listType=atomic\n  repeated string resources = 3;\n\n  // ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.\n  // +optional\n  // +listType=atomic\n  repeated string resourceNames = 4;\n\n  // NonResourceURLs is a set of partial urls that a user should have access to.  *s are allowed, but only as the full, final step in the path\n  // Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding.\n  // Rules can either apply to API resources (such as \"pods\" or \"secrets\") or non-resource URL paths (such as \"/api\"),  but not both.\n  // +optional\n  // +listType=atomic\n  repeated string nonResourceURLs = 5;\n}\n\n// Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 Role, and will no longer be served in v1.22.\nmessage Role {\n  // Standard object's metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Rules holds all the PolicyRules for this Role\n  // +optional\n  // +listType=atomic\n  repeated PolicyRule rules = 2;\n}\n\n// RoleBinding references a role, but does not contain it.  It can reference a Role in the same namespace or a ClusterRole in the global namespace.\n// It adds who information via Subjects and namespace information by which namespace it exists in.  RoleBindings in a given\n// namespace only have effect in that namespace.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleBinding, and will no longer be served in v1.22.\nmessage RoleBinding {\n  // Standard object's metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Subjects holds references to the objects the role applies to.\n  // +optional\n  // +listType=atomic\n  repeated Subject subjects = 2;\n\n  // RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace.\n  // If the RoleRef cannot be resolved, the Authorizer must return an error.\n  optional RoleRef roleRef = 3;\n}\n\n// RoleBindingList is a collection of RoleBindings\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleBindingList, and will no longer be served in v1.22.\nmessage RoleBindingList {\n  // Standard object's metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is a list of RoleBindings\n  repeated RoleBinding items = 2;\n}\n\n// RoleList is a collection of Roles\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleList, and will no longer be served in v1.22.\nmessage RoleList {\n  // Standard object's metadata.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is a list of Roles\n  repeated Role items = 2;\n}\n\n// RoleRef contains information that points to the role being used\nmessage RoleRef {\n  // APIGroup is the group for the resource being referenced\n  optional string apiGroup = 1;\n\n  // Kind is the type of resource being referenced\n  optional string kind = 2;\n\n  // Name is the name of resource being referenced\n  optional string name = 3;\n}\n\n// Subject contains a reference to the object or user identities a role binding applies to.  This can either hold a direct API object reference,\n// or a value for non-objects such as user and group names.\nmessage Subject {\n  // Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\n  // If the Authorizer does not recognized the kind value, the Authorizer should report an error.\n  optional string kind = 1;\n\n  // APIGroup holds the API group of the referenced subject.\n  // Defaults to \"\" for ServiceAccount subjects.\n  // Defaults to \"rbac.authorization.k8s.io\" for User and Group subjects.\n  // +optional\n  optional string apiGroup = 2;\n\n  // Name of the object being referenced.\n  optional string name = 3;\n\n  // Namespace of the referenced object.  If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\n  // the Authorizer should report an error.\n  // +optional\n  optional string namespace = 4;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1beta1/register.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\nconst GroupName = \"rbac.authorization.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&Role{},\n\t\t&RoleBinding{},\n\t\t&RoleBindingList{},\n\t\t&RoleList{},\n\n\t\t&ClusterRole{},\n\t\t&ClusterRoleBinding{},\n\t\t&ClusterRoleBindingList{},\n\t\t&ClusterRoleList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1beta1/types.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// Authorization is calculated against\n// 1. evaluation of ClusterRoleBindings - short circuit on match\n// 2. evaluation of RoleBindings in the namespace requested - short circuit on match\n// 3. deny by default\n\nconst (\n\tAPIGroupAll    = \"*\"\n\tResourceAll    = \"*\"\n\tVerbAll        = \"*\"\n\tNonResourceAll = \"*\"\n\n\tGroupKind          = \"Group\"\n\tServiceAccountKind = \"ServiceAccount\"\n\tUserKind           = \"User\"\n\n\t// AutoUpdateAnnotationKey is the name of an annotation which prevents reconciliation if set to \"false\"\n\tAutoUpdateAnnotationKey = \"rbac.authorization.kubernetes.io/autoupdate\"\n)\n\n// Authorization is calculated against\n// 1. evaluation of ClusterRoleBindings - short circuit on match\n// 2. evaluation of RoleBindings in the namespace requested - short circuit on match\n// 3. deny by default\n\n// PolicyRule holds information that describes a policy rule, but does not contain information\n// about who the rule applies to or which namespace the rule applies to.\ntype PolicyRule struct {\n\t// Verbs is a list of Verbs that apply to ALL the ResourceKinds contained in this rule. '*' represents all verbs.\n\t// +listType=atomic\n\tVerbs []string `json:\"verbs\" protobuf:\"bytes,1,rep,name=verbs\"`\n\n\t// APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of\n\t// the enumerated resources in any API group will be allowed. \"\" represents the core API group and \"*\" represents all API groups.\n\t// +optional\n\t// +listType=atomic\n\tAPIGroups []string `json:\"apiGroups,omitempty\" protobuf:\"bytes,2,rep,name=apiGroups\"`\n\t// Resources is a list of resources this rule applies to.  '*' represents all resources in the specified apiGroups.\n\t// '*/foo' represents the subresource 'foo' for all resources in the specified apiGroups.\n\t// +optional\n\t// +listType=atomic\n\tResources []string `json:\"resources,omitempty\" protobuf:\"bytes,3,rep,name=resources\"`\n\t// ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.\n\t// +optional\n\t// +listType=atomic\n\tResourceNames []string `json:\"resourceNames,omitempty\" protobuf:\"bytes,4,rep,name=resourceNames\"`\n\n\t// NonResourceURLs is a set of partial urls that a user should have access to.  *s are allowed, but only as the full, final step in the path\n\t// Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding.\n\t// Rules can either apply to API resources (such as \"pods\" or \"secrets\") or non-resource URL paths (such as \"/api\"),  but not both.\n\t// +optional\n\t// +listType=atomic\n\tNonResourceURLs []string `json:\"nonResourceURLs,omitempty\" protobuf:\"bytes,5,rep,name=nonResourceURLs\"`\n}\n\n// Subject contains a reference to the object or user identities a role binding applies to.  This can either hold a direct API object reference,\n// or a value for non-objects such as user and group names.\ntype Subject struct {\n\t// Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\".\n\t// If the Authorizer does not recognized the kind value, the Authorizer should report an error.\n\tKind string `json:\"kind\" protobuf:\"bytes,1,opt,name=kind\"`\n\t// APIGroup holds the API group of the referenced subject.\n\t// Defaults to \"\" for ServiceAccount subjects.\n\t// Defaults to \"rbac.authorization.k8s.io\" for User and Group subjects.\n\t// +optional\n\tAPIGroup string `json:\"apiGroup,omitempty\" protobuf:\"bytes,2,opt,name=apiGroup\"`\n\t// Name of the object being referenced.\n\tName string `json:\"name\" protobuf:\"bytes,3,opt,name=name\"`\n\t// Namespace of the referenced object.  If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty\n\t// the Authorizer should report an error.\n\t// +optional\n\tNamespace string `json:\"namespace,omitempty\" protobuf:\"bytes,4,opt,name=namespace\"`\n}\n\n// RoleRef contains information that points to the role being used\ntype RoleRef struct {\n\t// APIGroup is the group for the resource being referenced\n\tAPIGroup string `json:\"apiGroup\" protobuf:\"bytes,1,opt,name=apiGroup\"`\n\t// Kind is the type of resource being referenced\n\tKind string `json:\"kind\" protobuf:\"bytes,2,opt,name=kind\"`\n\t// Name is the name of resource being referenced\n\tName string `json:\"name\" protobuf:\"bytes,3,opt,name=name\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.6\n// +k8s:prerelease-lifecycle-gen:deprecated=1.17\n// +k8s:prerelease-lifecycle-gen:removed=1.22\n// +k8s:prerelease-lifecycle-gen:replacement=rbac.authorization.k8s.io,v1,Role\n\n// Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 Role, and will no longer be served in v1.22.\ntype Role struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Rules holds all the PolicyRules for this Role\n\t// +optional\n\t// +listType=atomic\n\tRules []PolicyRule `json:\"rules\" protobuf:\"bytes,2,rep,name=rules\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.6\n// +k8s:prerelease-lifecycle-gen:deprecated=1.17\n// +k8s:prerelease-lifecycle-gen:removed=1.22\n// +k8s:prerelease-lifecycle-gen:replacement=rbac.authorization.k8s.io,v1,RoleBinding\n\n// RoleBinding references a role, but does not contain it.  It can reference a Role in the same namespace or a ClusterRole in the global namespace.\n// It adds who information via Subjects and namespace information by which namespace it exists in.  RoleBindings in a given\n// namespace only have effect in that namespace.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleBinding, and will no longer be served in v1.22.\ntype RoleBinding struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Subjects holds references to the objects the role applies to.\n\t// +optional\n\t// +listType=atomic\n\tSubjects []Subject `json:\"subjects,omitempty\" protobuf:\"bytes,2,rep,name=subjects\"`\n\n\t// RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace.\n\t// If the RoleRef cannot be resolved, the Authorizer must return an error.\n\tRoleRef RoleRef `json:\"roleRef\" protobuf:\"bytes,3,opt,name=roleRef\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.6\n// +k8s:prerelease-lifecycle-gen:deprecated=1.17\n// +k8s:prerelease-lifecycle-gen:removed=1.22\n// +k8s:prerelease-lifecycle-gen:replacement=rbac.authorization.k8s.io,v1,RoleBindingList\n\n// RoleBindingList is a collection of RoleBindings\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleBindingList, and will no longer be served in v1.22.\ntype RoleBindingList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is a list of RoleBindings\n\tItems []RoleBinding `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.6\n// +k8s:prerelease-lifecycle-gen:deprecated=1.17\n// +k8s:prerelease-lifecycle-gen:removed=1.22\n// +k8s:prerelease-lifecycle-gen:replacement=rbac.authorization.k8s.io,v1,RoleList\n\n// RoleList is a collection of Roles\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleList, and will no longer be served in v1.22.\ntype RoleList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is a list of Roles\n\tItems []Role `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.6\n// +k8s:prerelease-lifecycle-gen:deprecated=1.17\n// +k8s:prerelease-lifecycle-gen:removed=1.22\n// +k8s:prerelease-lifecycle-gen:replacement=rbac.authorization.k8s.io,v1,ClusterRole\n\n// ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRole, and will no longer be served in v1.22.\ntype ClusterRole struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Rules holds all the PolicyRules for this ClusterRole\n\t// +optional\n\t// +listType=atomic\n\tRules []PolicyRule `json:\"rules\" protobuf:\"bytes,2,rep,name=rules\"`\n\t// AggregationRule is an optional field that describes how to build the Rules for this ClusterRole.\n\t// If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be\n\t// stomped by the controller.\n\t// +optional\n\tAggregationRule *AggregationRule `json:\"aggregationRule,omitempty\" protobuf:\"bytes,3,opt,name=aggregationRule\"`\n}\n\n// AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole\ntype AggregationRule struct {\n\t// ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules.\n\t// If any of the selectors match, then the ClusterRole's permissions will be added\n\t// +optional\n\t// +listType=atomic\n\tClusterRoleSelectors []metav1.LabelSelector `json:\"clusterRoleSelectors,omitempty\" protobuf:\"bytes,1,rep,name=clusterRoleSelectors\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.6\n// +k8s:prerelease-lifecycle-gen:deprecated=1.17\n// +k8s:prerelease-lifecycle-gen:removed=1.22\n// +k8s:prerelease-lifecycle-gen:replacement=rbac.authorization.k8s.io,v1,ClusterRoleBinding\n\n// ClusterRoleBinding references a ClusterRole, but not contain it.  It can reference a ClusterRole in the global namespace,\n// and adds who information via Subject.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBinding, and will no longer be served in v1.22.\ntype ClusterRoleBinding struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Subjects holds references to the objects the role applies to.\n\t// +optional\n\t// +listType=atomic\n\tSubjects []Subject `json:\"subjects,omitempty\" protobuf:\"bytes,2,rep,name=subjects\"`\n\n\t// RoleRef can only reference a ClusterRole in the global namespace.\n\t// If the RoleRef cannot be resolved, the Authorizer must return an error.\n\tRoleRef RoleRef `json:\"roleRef\" protobuf:\"bytes,3,opt,name=roleRef\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.6\n// +k8s:prerelease-lifecycle-gen:deprecated=1.17\n// +k8s:prerelease-lifecycle-gen:removed=1.22\n// +k8s:prerelease-lifecycle-gen:replacement=rbac.authorization.k8s.io,v1,ClusterRoleBindingList\n\n// ClusterRoleBindingList is a collection of ClusterRoleBindings.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBindingList, and will no longer be served in v1.22.\ntype ClusterRoleBindingList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is a list of ClusterRoleBindings\n\tItems []ClusterRoleBinding `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.6\n// +k8s:prerelease-lifecycle-gen:deprecated=1.17\n// +k8s:prerelease-lifecycle-gen:removed=1.22\n// +k8s:prerelease-lifecycle-gen:replacement=rbac.authorization.k8s.io,v1,ClusterRoleList\n\n// ClusterRoleList is a collection of ClusterRoles.\n// Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoles, and will no longer be served in v1.22.\ntype ClusterRoleList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is a list of ClusterRoles\n\tItems []ClusterRole `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1beta1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_AggregationRule = map[string]string{\n\t\"\":                     \"AggregationRule describes how to locate ClusterRoles to aggregate into the ClusterRole\",\n\t\"clusterRoleSelectors\": \"ClusterRoleSelectors holds a list of selectors which will be used to find ClusterRoles and create the rules. If any of the selectors match, then the ClusterRole's permissions will be added\",\n}\n\nfunc (AggregationRule) SwaggerDoc() map[string]string {\n\treturn map_AggregationRule\n}\n\nvar map_ClusterRole = map[string]string{\n\t\"\":                \"ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRole, and will no longer be served in v1.22.\",\n\t\"metadata\":        \"Standard object's metadata.\",\n\t\"rules\":           \"Rules holds all the PolicyRules for this ClusterRole\",\n\t\"aggregationRule\": \"AggregationRule is an optional field that describes how to build the Rules for this ClusterRole. If AggregationRule is set, then the Rules are controller managed and direct changes to Rules will be stomped by the controller.\",\n}\n\nfunc (ClusterRole) SwaggerDoc() map[string]string {\n\treturn map_ClusterRole\n}\n\nvar map_ClusterRoleBinding = map[string]string{\n\t\"\":         \"ClusterRoleBinding references a ClusterRole, but not contain it.  It can reference a ClusterRole in the global namespace, and adds who information via Subject. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBinding, and will no longer be served in v1.22.\",\n\t\"metadata\": \"Standard object's metadata.\",\n\t\"subjects\": \"Subjects holds references to the objects the role applies to.\",\n\t\"roleRef\":  \"RoleRef can only reference a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error.\",\n}\n\nfunc (ClusterRoleBinding) SwaggerDoc() map[string]string {\n\treturn map_ClusterRoleBinding\n}\n\nvar map_ClusterRoleBindingList = map[string]string{\n\t\"\":         \"ClusterRoleBindingList is a collection of ClusterRoleBindings. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBindingList, and will no longer be served in v1.22.\",\n\t\"metadata\": \"Standard object's metadata.\",\n\t\"items\":    \"Items is a list of ClusterRoleBindings\",\n}\n\nfunc (ClusterRoleBindingList) SwaggerDoc() map[string]string {\n\treturn map_ClusterRoleBindingList\n}\n\nvar map_ClusterRoleList = map[string]string{\n\t\"\":         \"ClusterRoleList is a collection of ClusterRoles. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoles, and will no longer be served in v1.22.\",\n\t\"metadata\": \"Standard object's metadata.\",\n\t\"items\":    \"Items is a list of ClusterRoles\",\n}\n\nfunc (ClusterRoleList) SwaggerDoc() map[string]string {\n\treturn map_ClusterRoleList\n}\n\nvar map_PolicyRule = map[string]string{\n\t\"\":                \"PolicyRule holds information that describes a policy rule, but does not contain information about who the rule applies to or which namespace the rule applies to.\",\n\t\"verbs\":           \"Verbs is a list of Verbs that apply to ALL the ResourceKinds contained in this rule. '*' represents all verbs.\",\n\t\"apiGroups\":       \"APIGroups is the name of the APIGroup that contains the resources.  If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed. \\\"\\\" represents the core API group and \\\"*\\\" represents all API groups.\",\n\t\"resources\":       \"Resources is a list of resources this rule applies to.  '*' represents all resources in the specified apiGroups. '*/foo' represents the subresource 'foo' for all resources in the specified apiGroups.\",\n\t\"resourceNames\":   \"ResourceNames is an optional white list of names that the rule applies to.  An empty set means that everything is allowed.\",\n\t\"nonResourceURLs\": \"NonResourceURLs is a set of partial urls that a user should have access to.  *s are allowed, but only as the full, final step in the path Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. Rules can either apply to API resources (such as \\\"pods\\\" or \\\"secrets\\\") or non-resource URL paths (such as \\\"/api\\\"),  but not both.\",\n}\n\nfunc (PolicyRule) SwaggerDoc() map[string]string {\n\treturn map_PolicyRule\n}\n\nvar map_Role = map[string]string{\n\t\"\":         \"Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 Role, and will no longer be served in v1.22.\",\n\t\"metadata\": \"Standard object's metadata.\",\n\t\"rules\":    \"Rules holds all the PolicyRules for this Role\",\n}\n\nfunc (Role) SwaggerDoc() map[string]string {\n\treturn map_Role\n}\n\nvar map_RoleBinding = map[string]string{\n\t\"\":         \"RoleBinding references a role, but does not contain it.  It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in.  RoleBindings in a given namespace only have effect in that namespace. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleBinding, and will no longer be served in v1.22.\",\n\t\"metadata\": \"Standard object's metadata.\",\n\t\"subjects\": \"Subjects holds references to the objects the role applies to.\",\n\t\"roleRef\":  \"RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error.\",\n}\n\nfunc (RoleBinding) SwaggerDoc() map[string]string {\n\treturn map_RoleBinding\n}\n\nvar map_RoleBindingList = map[string]string{\n\t\"\":         \"RoleBindingList is a collection of RoleBindings Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleBindingList, and will no longer be served in v1.22.\",\n\t\"metadata\": \"Standard object's metadata.\",\n\t\"items\":    \"Items is a list of RoleBindings\",\n}\n\nfunc (RoleBindingList) SwaggerDoc() map[string]string {\n\treturn map_RoleBindingList\n}\n\nvar map_RoleList = map[string]string{\n\t\"\":         \"RoleList is a collection of Roles Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 RoleList, and will no longer be served in v1.22.\",\n\t\"metadata\": \"Standard object's metadata.\",\n\t\"items\":    \"Items is a list of Roles\",\n}\n\nfunc (RoleList) SwaggerDoc() map[string]string {\n\treturn map_RoleList\n}\n\nvar map_RoleRef = map[string]string{\n\t\"\":         \"RoleRef contains information that points to the role being used\",\n\t\"apiGroup\": \"APIGroup is the group for the resource being referenced\",\n\t\"kind\":     \"Kind is the type of resource being referenced\",\n\t\"name\":     \"Name is the name of resource being referenced\",\n}\n\nfunc (RoleRef) SwaggerDoc() map[string]string {\n\treturn map_RoleRef\n}\n\nvar map_Subject = map[string]string{\n\t\"\":          \"Subject contains a reference to the object or user identities a role binding applies to.  This can either hold a direct API object reference, or a value for non-objects such as user and group names.\",\n\t\"kind\":      \"Kind of object being referenced. Values defined by this API group are \\\"User\\\", \\\"Group\\\", and \\\"ServiceAccount\\\". If the Authorizer does not recognized the kind value, the Authorizer should report an error.\",\n\t\"apiGroup\":  \"APIGroup holds the API group of the referenced subject. Defaults to \\\"\\\" for ServiceAccount subjects. Defaults to \\\"rbac.authorization.k8s.io\\\" for User and Group subjects.\",\n\t\"name\":      \"Name of the object being referenced.\",\n\t\"namespace\": \"Namespace of the referenced object.  If the object kind is non-namespace, such as \\\"User\\\" or \\\"Group\\\", and this value is not empty the Authorizer should report an error.\",\n}\n\nfunc (Subject) SwaggerDoc() map[string]string {\n\treturn map_Subject\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1beta1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *AggregationRule) DeepCopyInto(out *AggregationRule) {\n\t*out = *in\n\tif in.ClusterRoleSelectors != nil {\n\t\tin, out := &in.ClusterRoleSelectors, &out.ClusterRoleSelectors\n\t\t*out = make([]v1.LabelSelector, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AggregationRule.\nfunc (in *AggregationRule) DeepCopy() *AggregationRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(AggregationRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ClusterRole) DeepCopyInto(out *ClusterRole) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Rules != nil {\n\t\tin, out := &in.Rules, &out.Rules\n\t\t*out = make([]PolicyRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.AggregationRule != nil {\n\t\tin, out := &in.AggregationRule, &out.AggregationRule\n\t\t*out = new(AggregationRule)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterRole.\nfunc (in *ClusterRole) DeepCopy() *ClusterRole {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ClusterRole)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ClusterRole) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ClusterRoleBinding) DeepCopyInto(out *ClusterRoleBinding) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Subjects != nil {\n\t\tin, out := &in.Subjects, &out.Subjects\n\t\t*out = make([]Subject, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tout.RoleRef = in.RoleRef\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterRoleBinding.\nfunc (in *ClusterRoleBinding) DeepCopy() *ClusterRoleBinding {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ClusterRoleBinding)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ClusterRoleBinding) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ClusterRoleBindingList) DeepCopyInto(out *ClusterRoleBindingList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ClusterRoleBinding, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterRoleBindingList.\nfunc (in *ClusterRoleBindingList) DeepCopy() *ClusterRoleBindingList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ClusterRoleBindingList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ClusterRoleBindingList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ClusterRoleList) DeepCopyInto(out *ClusterRoleList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ClusterRole, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterRoleList.\nfunc (in *ClusterRoleList) DeepCopy() *ClusterRoleList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ClusterRoleList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ClusterRoleList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PolicyRule) DeepCopyInto(out *PolicyRule) {\n\t*out = *in\n\tif in.Verbs != nil {\n\t\tin, out := &in.Verbs, &out.Verbs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.APIGroups != nil {\n\t\tin, out := &in.APIGroups, &out.APIGroups\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Resources != nil {\n\t\tin, out := &in.Resources, &out.Resources\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ResourceNames != nil {\n\t\tin, out := &in.ResourceNames, &out.ResourceNames\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.NonResourceURLs != nil {\n\t\tin, out := &in.NonResourceURLs, &out.NonResourceURLs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyRule.\nfunc (in *PolicyRule) DeepCopy() *PolicyRule {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PolicyRule)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Role) DeepCopyInto(out *Role) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Rules != nil {\n\t\tin, out := &in.Rules, &out.Rules\n\t\t*out = make([]PolicyRule, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Role.\nfunc (in *Role) DeepCopy() *Role {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Role)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Role) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RoleBinding) DeepCopyInto(out *RoleBinding) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Subjects != nil {\n\t\tin, out := &in.Subjects, &out.Subjects\n\t\t*out = make([]Subject, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tout.RoleRef = in.RoleRef\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleBinding.\nfunc (in *RoleBinding) DeepCopy() *RoleBinding {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RoleBinding)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *RoleBinding) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RoleBindingList) DeepCopyInto(out *RoleBindingList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]RoleBinding, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleBindingList.\nfunc (in *RoleBindingList) DeepCopy() *RoleBindingList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RoleBindingList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *RoleBindingList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RoleList) DeepCopyInto(out *RoleList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]Role, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleList.\nfunc (in *RoleList) DeepCopy() *RoleList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RoleList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *RoleList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RoleRef) DeepCopyInto(out *RoleRef) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleRef.\nfunc (in *RoleRef) DeepCopy() *RoleRef {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RoleRef)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Subject) DeepCopyInto(out *Subject) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Subject.\nfunc (in *Subject) DeepCopy() *Subject {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Subject)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/rbac/v1beta1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ClusterRole) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 6\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ClusterRole) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 17\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *ClusterRole) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"rbac.authorization.k8s.io\", Version: \"v1\", Kind: \"ClusterRole\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ClusterRole) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ClusterRoleBinding) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 6\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ClusterRoleBinding) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 17\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *ClusterRoleBinding) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"rbac.authorization.k8s.io\", Version: \"v1\", Kind: \"ClusterRoleBinding\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ClusterRoleBinding) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ClusterRoleBindingList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 6\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ClusterRoleBindingList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 17\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *ClusterRoleBindingList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"rbac.authorization.k8s.io\", Version: \"v1\", Kind: \"ClusterRoleBindingList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ClusterRoleBindingList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ClusterRoleList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 6\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ClusterRoleList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 17\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *ClusterRoleList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"rbac.authorization.k8s.io\", Version: \"v1\", Kind: \"ClusterRoleList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ClusterRoleList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *Role) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 6\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *Role) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 17\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *Role) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"rbac.authorization.k8s.io\", Version: \"v1\", Kind: \"Role\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *Role) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *RoleBinding) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 6\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *RoleBinding) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 17\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *RoleBinding) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"rbac.authorization.k8s.io\", Version: \"v1\", Kind: \"RoleBinding\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *RoleBinding) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *RoleBindingList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 6\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *RoleBindingList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 17\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *RoleBindingList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"rbac.authorization.k8s.io\", Version: \"v1\", Kind: \"RoleBindingList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *RoleBindingList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *RoleList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 6\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *RoleList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 17\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *RoleList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"rbac.authorization.k8s.io\", Version: \"v1\", Kind: \"RoleList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *RoleList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/resource/v1alpha3/doc.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:openapi-gen=true\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:prerelease-lifecycle-gen=true\n// +groupName=resource.k8s.io\n\n// Package v1alpha3 is the v1alpha3 version of the resource API.\npackage v1alpha3 // import \"k8s.io/api/resource/v1alpha3\"\n"
  },
  {
    "path": "vendor/k8s.io/api/resource/v1alpha3/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/resource/v1alpha3/generated.proto\n\npackage v1alpha3\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\tv11 \"k8s.io/api/core/v1\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n\n\tk8s_io_apimachinery_pkg_types \"k8s.io/apimachinery/pkg/types\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *AllocatedDeviceStatus) Reset()      { *m = AllocatedDeviceStatus{} }\nfunc (*AllocatedDeviceStatus) ProtoMessage() {}\nfunc (*AllocatedDeviceStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_66649ee9bbcd89d2, []int{0}\n}\nfunc (m *AllocatedDeviceStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *AllocatedDeviceStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *AllocatedDeviceStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_AllocatedDeviceStatus.Merge(m, src)\n}\nfunc (m *AllocatedDeviceStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *AllocatedDeviceStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_AllocatedDeviceStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_AllocatedDeviceStatus proto.InternalMessageInfo\n\nfunc (m *AllocationResult) Reset()      { *m = AllocationResult{} }\nfunc (*AllocationResult) ProtoMessage() {}\nfunc (*AllocationResult) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_66649ee9bbcd89d2, []int{1}\n}\nfunc (m *AllocationResult) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *AllocationResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *AllocationResult) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_AllocationResult.Merge(m, src)\n}\nfunc (m *AllocationResult) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *AllocationResult) XXX_DiscardUnknown() {\n\txxx_messageInfo_AllocationResult.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_AllocationResult proto.InternalMessageInfo\n\nfunc (m *BasicDevice) Reset()      { *m = BasicDevice{} }\nfunc (*BasicDevice) ProtoMessage() {}\nfunc (*BasicDevice) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_66649ee9bbcd89d2, []int{2}\n}\nfunc (m *BasicDevice) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *BasicDevice) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *BasicDevice) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_BasicDevice.Merge(m, src)\n}\nfunc (m *BasicDevice) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *BasicDevice) XXX_DiscardUnknown() {\n\txxx_messageInfo_BasicDevice.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_BasicDevice proto.InternalMessageInfo\n\nfunc (m *CELDeviceSelector) Reset()      { *m = CELDeviceSelector{} }\nfunc (*CELDeviceSelector) ProtoMessage() {}\nfunc (*CELDeviceSelector) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_66649ee9bbcd89d2, []int{3}\n}\nfunc (m *CELDeviceSelector) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CELDeviceSelector) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CELDeviceSelector) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CELDeviceSelector.Merge(m, src)\n}\nfunc (m *CELDeviceSelector) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CELDeviceSelector) XXX_DiscardUnknown() {\n\txxx_messageInfo_CELDeviceSelector.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CELDeviceSelector proto.InternalMessageInfo\n\nfunc (m *Device) Reset()      { *m = Device{} }\nfunc (*Device) ProtoMessage() {}\nfunc (*Device) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_66649ee9bbcd89d2, []int{4}\n}\nfunc (m *Device) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Device) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Device) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Device.Merge(m, src)\n}\nfunc (m *Device) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Device) XXX_DiscardUnknown() {\n\txxx_messageInfo_Device.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Device proto.InternalMessageInfo\n\nfunc (m *DeviceAllocationConfiguration) Reset()      { *m = DeviceAllocationConfiguration{} }\nfunc (*DeviceAllocationConfiguration) ProtoMessage() {}\nfunc (*DeviceAllocationConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_66649ee9bbcd89d2, []int{5}\n}\nfunc (m *DeviceAllocationConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeviceAllocationConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeviceAllocationConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeviceAllocationConfiguration.Merge(m, src)\n}\nfunc (m *DeviceAllocationConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeviceAllocationConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeviceAllocationConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeviceAllocationConfiguration proto.InternalMessageInfo\n\nfunc (m *DeviceAllocationResult) Reset()      { *m = DeviceAllocationResult{} }\nfunc (*DeviceAllocationResult) ProtoMessage() {}\nfunc (*DeviceAllocationResult) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_66649ee9bbcd89d2, []int{6}\n}\nfunc (m *DeviceAllocationResult) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeviceAllocationResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeviceAllocationResult) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeviceAllocationResult.Merge(m, src)\n}\nfunc (m *DeviceAllocationResult) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeviceAllocationResult) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeviceAllocationResult.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeviceAllocationResult proto.InternalMessageInfo\n\nfunc (m *DeviceAttribute) Reset()      { *m = DeviceAttribute{} }\nfunc (*DeviceAttribute) ProtoMessage() {}\nfunc (*DeviceAttribute) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_66649ee9bbcd89d2, []int{7}\n}\nfunc (m *DeviceAttribute) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeviceAttribute) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeviceAttribute) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeviceAttribute.Merge(m, src)\n}\nfunc (m *DeviceAttribute) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeviceAttribute) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeviceAttribute.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeviceAttribute proto.InternalMessageInfo\n\nfunc (m *DeviceClaim) Reset()      { *m = DeviceClaim{} }\nfunc (*DeviceClaim) ProtoMessage() {}\nfunc (*DeviceClaim) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_66649ee9bbcd89d2, []int{8}\n}\nfunc (m *DeviceClaim) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeviceClaim) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeviceClaim) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeviceClaim.Merge(m, src)\n}\nfunc (m *DeviceClaim) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeviceClaim) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeviceClaim.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeviceClaim proto.InternalMessageInfo\n\nfunc (m *DeviceClaimConfiguration) Reset()      { *m = DeviceClaimConfiguration{} }\nfunc (*DeviceClaimConfiguration) ProtoMessage() {}\nfunc (*DeviceClaimConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_66649ee9bbcd89d2, []int{9}\n}\nfunc (m *DeviceClaimConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeviceClaimConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeviceClaimConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeviceClaimConfiguration.Merge(m, src)\n}\nfunc (m *DeviceClaimConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeviceClaimConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeviceClaimConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeviceClaimConfiguration proto.InternalMessageInfo\n\nfunc (m *DeviceClass) Reset()      { *m = DeviceClass{} }\nfunc (*DeviceClass) ProtoMessage() {}\nfunc (*DeviceClass) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_66649ee9bbcd89d2, []int{10}\n}\nfunc (m *DeviceClass) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeviceClass) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeviceClass) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeviceClass.Merge(m, src)\n}\nfunc (m *DeviceClass) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeviceClass) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeviceClass.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeviceClass proto.InternalMessageInfo\n\nfunc (m *DeviceClassConfiguration) Reset()      { *m = DeviceClassConfiguration{} }\nfunc (*DeviceClassConfiguration) ProtoMessage() {}\nfunc (*DeviceClassConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_66649ee9bbcd89d2, []int{11}\n}\nfunc (m *DeviceClassConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeviceClassConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeviceClassConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeviceClassConfiguration.Merge(m, src)\n}\nfunc (m *DeviceClassConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeviceClassConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeviceClassConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeviceClassConfiguration proto.InternalMessageInfo\n\nfunc (m *DeviceClassList) Reset()      { *m = DeviceClassList{} }\nfunc (*DeviceClassList) ProtoMessage() {}\nfunc (*DeviceClassList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_66649ee9bbcd89d2, []int{12}\n}\nfunc (m *DeviceClassList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeviceClassList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeviceClassList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeviceClassList.Merge(m, src)\n}\nfunc (m *DeviceClassList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeviceClassList) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeviceClassList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeviceClassList proto.InternalMessageInfo\n\nfunc (m *DeviceClassSpec) Reset()      { *m = DeviceClassSpec{} }\nfunc (*DeviceClassSpec) ProtoMessage() {}\nfunc (*DeviceClassSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_66649ee9bbcd89d2, []int{13}\n}\nfunc (m *DeviceClassSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeviceClassSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeviceClassSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeviceClassSpec.Merge(m, src)\n}\nfunc (m *DeviceClassSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeviceClassSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeviceClassSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeviceClassSpec proto.InternalMessageInfo\n\nfunc (m *DeviceConfiguration) Reset()      { *m = DeviceConfiguration{} }\nfunc (*DeviceConfiguration) ProtoMessage() {}\nfunc (*DeviceConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_66649ee9bbcd89d2, []int{14}\n}\nfunc (m *DeviceConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeviceConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeviceConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeviceConfiguration.Merge(m, src)\n}\nfunc (m *DeviceConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeviceConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeviceConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeviceConfiguration proto.InternalMessageInfo\n\nfunc (m *DeviceConstraint) Reset()      { *m = DeviceConstraint{} }\nfunc (*DeviceConstraint) ProtoMessage() {}\nfunc (*DeviceConstraint) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_66649ee9bbcd89d2, []int{15}\n}\nfunc (m *DeviceConstraint) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeviceConstraint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeviceConstraint) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeviceConstraint.Merge(m, src)\n}\nfunc (m *DeviceConstraint) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeviceConstraint) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeviceConstraint.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeviceConstraint proto.InternalMessageInfo\n\nfunc (m *DeviceRequest) Reset()      { *m = DeviceRequest{} }\nfunc (*DeviceRequest) ProtoMessage() {}\nfunc (*DeviceRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_66649ee9bbcd89d2, []int{16}\n}\nfunc (m *DeviceRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeviceRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeviceRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeviceRequest.Merge(m, src)\n}\nfunc (m *DeviceRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeviceRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeviceRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeviceRequest proto.InternalMessageInfo\n\nfunc (m *DeviceRequestAllocationResult) Reset()      { *m = DeviceRequestAllocationResult{} }\nfunc (*DeviceRequestAllocationResult) ProtoMessage() {}\nfunc (*DeviceRequestAllocationResult) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_66649ee9bbcd89d2, []int{17}\n}\nfunc (m *DeviceRequestAllocationResult) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeviceRequestAllocationResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeviceRequestAllocationResult) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeviceRequestAllocationResult.Merge(m, src)\n}\nfunc (m *DeviceRequestAllocationResult) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeviceRequestAllocationResult) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeviceRequestAllocationResult.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeviceRequestAllocationResult proto.InternalMessageInfo\n\nfunc (m *DeviceSelector) Reset()      { *m = DeviceSelector{} }\nfunc (*DeviceSelector) ProtoMessage() {}\nfunc (*DeviceSelector) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_66649ee9bbcd89d2, []int{18}\n}\nfunc (m *DeviceSelector) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeviceSelector) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeviceSelector) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeviceSelector.Merge(m, src)\n}\nfunc (m *DeviceSelector) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeviceSelector) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeviceSelector.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeviceSelector proto.InternalMessageInfo\n\nfunc (m *NetworkDeviceData) Reset()      { *m = NetworkDeviceData{} }\nfunc (*NetworkDeviceData) ProtoMessage() {}\nfunc (*NetworkDeviceData) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_66649ee9bbcd89d2, []int{19}\n}\nfunc (m *NetworkDeviceData) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NetworkDeviceData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NetworkDeviceData) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NetworkDeviceData.Merge(m, src)\n}\nfunc (m *NetworkDeviceData) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NetworkDeviceData) XXX_DiscardUnknown() {\n\txxx_messageInfo_NetworkDeviceData.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NetworkDeviceData proto.InternalMessageInfo\n\nfunc (m *OpaqueDeviceConfiguration) Reset()      { *m = OpaqueDeviceConfiguration{} }\nfunc (*OpaqueDeviceConfiguration) ProtoMessage() {}\nfunc (*OpaqueDeviceConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_66649ee9bbcd89d2, []int{20}\n}\nfunc (m *OpaqueDeviceConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *OpaqueDeviceConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *OpaqueDeviceConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_OpaqueDeviceConfiguration.Merge(m, src)\n}\nfunc (m *OpaqueDeviceConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *OpaqueDeviceConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_OpaqueDeviceConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_OpaqueDeviceConfiguration proto.InternalMessageInfo\n\nfunc (m *ResourceClaim) Reset()      { *m = ResourceClaim{} }\nfunc (*ResourceClaim) ProtoMessage() {}\nfunc (*ResourceClaim) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_66649ee9bbcd89d2, []int{21}\n}\nfunc (m *ResourceClaim) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceClaim) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceClaim) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceClaim.Merge(m, src)\n}\nfunc (m *ResourceClaim) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceClaim) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceClaim.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceClaim proto.InternalMessageInfo\n\nfunc (m *ResourceClaimConsumerReference) Reset()      { *m = ResourceClaimConsumerReference{} }\nfunc (*ResourceClaimConsumerReference) ProtoMessage() {}\nfunc (*ResourceClaimConsumerReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_66649ee9bbcd89d2, []int{22}\n}\nfunc (m *ResourceClaimConsumerReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceClaimConsumerReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceClaimConsumerReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceClaimConsumerReference.Merge(m, src)\n}\nfunc (m *ResourceClaimConsumerReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceClaimConsumerReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceClaimConsumerReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceClaimConsumerReference proto.InternalMessageInfo\n\nfunc (m *ResourceClaimList) Reset()      { *m = ResourceClaimList{} }\nfunc (*ResourceClaimList) ProtoMessage() {}\nfunc (*ResourceClaimList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_66649ee9bbcd89d2, []int{23}\n}\nfunc (m *ResourceClaimList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceClaimList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceClaimList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceClaimList.Merge(m, src)\n}\nfunc (m *ResourceClaimList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceClaimList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceClaimList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceClaimList proto.InternalMessageInfo\n\nfunc (m *ResourceClaimSpec) Reset()      { *m = ResourceClaimSpec{} }\nfunc (*ResourceClaimSpec) ProtoMessage() {}\nfunc (*ResourceClaimSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_66649ee9bbcd89d2, []int{24}\n}\nfunc (m *ResourceClaimSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceClaimSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceClaimSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceClaimSpec.Merge(m, src)\n}\nfunc (m *ResourceClaimSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceClaimSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceClaimSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceClaimSpec proto.InternalMessageInfo\n\nfunc (m *ResourceClaimStatus) Reset()      { *m = ResourceClaimStatus{} }\nfunc (*ResourceClaimStatus) ProtoMessage() {}\nfunc (*ResourceClaimStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_66649ee9bbcd89d2, []int{25}\n}\nfunc (m *ResourceClaimStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceClaimStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceClaimStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceClaimStatus.Merge(m, src)\n}\nfunc (m *ResourceClaimStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceClaimStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceClaimStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceClaimStatus proto.InternalMessageInfo\n\nfunc (m *ResourceClaimTemplate) Reset()      { *m = ResourceClaimTemplate{} }\nfunc (*ResourceClaimTemplate) ProtoMessage() {}\nfunc (*ResourceClaimTemplate) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_66649ee9bbcd89d2, []int{26}\n}\nfunc (m *ResourceClaimTemplate) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceClaimTemplate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceClaimTemplate) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceClaimTemplate.Merge(m, src)\n}\nfunc (m *ResourceClaimTemplate) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceClaimTemplate) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceClaimTemplate.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceClaimTemplate proto.InternalMessageInfo\n\nfunc (m *ResourceClaimTemplateList) Reset()      { *m = ResourceClaimTemplateList{} }\nfunc (*ResourceClaimTemplateList) ProtoMessage() {}\nfunc (*ResourceClaimTemplateList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_66649ee9bbcd89d2, []int{27}\n}\nfunc (m *ResourceClaimTemplateList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceClaimTemplateList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceClaimTemplateList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceClaimTemplateList.Merge(m, src)\n}\nfunc (m *ResourceClaimTemplateList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceClaimTemplateList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceClaimTemplateList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceClaimTemplateList proto.InternalMessageInfo\n\nfunc (m *ResourceClaimTemplateSpec) Reset()      { *m = ResourceClaimTemplateSpec{} }\nfunc (*ResourceClaimTemplateSpec) ProtoMessage() {}\nfunc (*ResourceClaimTemplateSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_66649ee9bbcd89d2, []int{28}\n}\nfunc (m *ResourceClaimTemplateSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceClaimTemplateSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceClaimTemplateSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceClaimTemplateSpec.Merge(m, src)\n}\nfunc (m *ResourceClaimTemplateSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceClaimTemplateSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceClaimTemplateSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceClaimTemplateSpec proto.InternalMessageInfo\n\nfunc (m *ResourcePool) Reset()      { *m = ResourcePool{} }\nfunc (*ResourcePool) ProtoMessage() {}\nfunc (*ResourcePool) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_66649ee9bbcd89d2, []int{29}\n}\nfunc (m *ResourcePool) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourcePool) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourcePool) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourcePool.Merge(m, src)\n}\nfunc (m *ResourcePool) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourcePool) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourcePool.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourcePool proto.InternalMessageInfo\n\nfunc (m *ResourceSlice) Reset()      { *m = ResourceSlice{} }\nfunc (*ResourceSlice) ProtoMessage() {}\nfunc (*ResourceSlice) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_66649ee9bbcd89d2, []int{30}\n}\nfunc (m *ResourceSlice) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceSlice) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceSlice) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceSlice.Merge(m, src)\n}\nfunc (m *ResourceSlice) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceSlice) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceSlice.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceSlice proto.InternalMessageInfo\n\nfunc (m *ResourceSliceList) Reset()      { *m = ResourceSliceList{} }\nfunc (*ResourceSliceList) ProtoMessage() {}\nfunc (*ResourceSliceList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_66649ee9bbcd89d2, []int{31}\n}\nfunc (m *ResourceSliceList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceSliceList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceSliceList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceSliceList.Merge(m, src)\n}\nfunc (m *ResourceSliceList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceSliceList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceSliceList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceSliceList proto.InternalMessageInfo\n\nfunc (m *ResourceSliceSpec) Reset()      { *m = ResourceSliceSpec{} }\nfunc (*ResourceSliceSpec) ProtoMessage() {}\nfunc (*ResourceSliceSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_66649ee9bbcd89d2, []int{32}\n}\nfunc (m *ResourceSliceSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceSliceSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceSliceSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceSliceSpec.Merge(m, src)\n}\nfunc (m *ResourceSliceSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceSliceSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceSliceSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceSliceSpec proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*AllocatedDeviceStatus)(nil), \"k8s.io.api.resource.v1alpha3.AllocatedDeviceStatus\")\n\tproto.RegisterType((*AllocationResult)(nil), \"k8s.io.api.resource.v1alpha3.AllocationResult\")\n\tproto.RegisterType((*BasicDevice)(nil), \"k8s.io.api.resource.v1alpha3.BasicDevice\")\n\tproto.RegisterMapType((map[QualifiedName]DeviceAttribute)(nil), \"k8s.io.api.resource.v1alpha3.BasicDevice.AttributesEntry\")\n\tproto.RegisterMapType((map[QualifiedName]resource.Quantity)(nil), \"k8s.io.api.resource.v1alpha3.BasicDevice.CapacityEntry\")\n\tproto.RegisterType((*CELDeviceSelector)(nil), \"k8s.io.api.resource.v1alpha3.CELDeviceSelector\")\n\tproto.RegisterType((*Device)(nil), \"k8s.io.api.resource.v1alpha3.Device\")\n\tproto.RegisterType((*DeviceAllocationConfiguration)(nil), \"k8s.io.api.resource.v1alpha3.DeviceAllocationConfiguration\")\n\tproto.RegisterType((*DeviceAllocationResult)(nil), \"k8s.io.api.resource.v1alpha3.DeviceAllocationResult\")\n\tproto.RegisterType((*DeviceAttribute)(nil), \"k8s.io.api.resource.v1alpha3.DeviceAttribute\")\n\tproto.RegisterType((*DeviceClaim)(nil), \"k8s.io.api.resource.v1alpha3.DeviceClaim\")\n\tproto.RegisterType((*DeviceClaimConfiguration)(nil), \"k8s.io.api.resource.v1alpha3.DeviceClaimConfiguration\")\n\tproto.RegisterType((*DeviceClass)(nil), \"k8s.io.api.resource.v1alpha3.DeviceClass\")\n\tproto.RegisterType((*DeviceClassConfiguration)(nil), \"k8s.io.api.resource.v1alpha3.DeviceClassConfiguration\")\n\tproto.RegisterType((*DeviceClassList)(nil), \"k8s.io.api.resource.v1alpha3.DeviceClassList\")\n\tproto.RegisterType((*DeviceClassSpec)(nil), \"k8s.io.api.resource.v1alpha3.DeviceClassSpec\")\n\tproto.RegisterType((*DeviceConfiguration)(nil), \"k8s.io.api.resource.v1alpha3.DeviceConfiguration\")\n\tproto.RegisterType((*DeviceConstraint)(nil), \"k8s.io.api.resource.v1alpha3.DeviceConstraint\")\n\tproto.RegisterType((*DeviceRequest)(nil), \"k8s.io.api.resource.v1alpha3.DeviceRequest\")\n\tproto.RegisterType((*DeviceRequestAllocationResult)(nil), \"k8s.io.api.resource.v1alpha3.DeviceRequestAllocationResult\")\n\tproto.RegisterType((*DeviceSelector)(nil), \"k8s.io.api.resource.v1alpha3.DeviceSelector\")\n\tproto.RegisterType((*NetworkDeviceData)(nil), \"k8s.io.api.resource.v1alpha3.NetworkDeviceData\")\n\tproto.RegisterType((*OpaqueDeviceConfiguration)(nil), \"k8s.io.api.resource.v1alpha3.OpaqueDeviceConfiguration\")\n\tproto.RegisterType((*ResourceClaim)(nil), \"k8s.io.api.resource.v1alpha3.ResourceClaim\")\n\tproto.RegisterType((*ResourceClaimConsumerReference)(nil), \"k8s.io.api.resource.v1alpha3.ResourceClaimConsumerReference\")\n\tproto.RegisterType((*ResourceClaimList)(nil), \"k8s.io.api.resource.v1alpha3.ResourceClaimList\")\n\tproto.RegisterType((*ResourceClaimSpec)(nil), \"k8s.io.api.resource.v1alpha3.ResourceClaimSpec\")\n\tproto.RegisterType((*ResourceClaimStatus)(nil), \"k8s.io.api.resource.v1alpha3.ResourceClaimStatus\")\n\tproto.RegisterType((*ResourceClaimTemplate)(nil), \"k8s.io.api.resource.v1alpha3.ResourceClaimTemplate\")\n\tproto.RegisterType((*ResourceClaimTemplateList)(nil), \"k8s.io.api.resource.v1alpha3.ResourceClaimTemplateList\")\n\tproto.RegisterType((*ResourceClaimTemplateSpec)(nil), \"k8s.io.api.resource.v1alpha3.ResourceClaimTemplateSpec\")\n\tproto.RegisterType((*ResourcePool)(nil), \"k8s.io.api.resource.v1alpha3.ResourcePool\")\n\tproto.RegisterType((*ResourceSlice)(nil), \"k8s.io.api.resource.v1alpha3.ResourceSlice\")\n\tproto.RegisterType((*ResourceSliceList)(nil), \"k8s.io.api.resource.v1alpha3.ResourceSliceList\")\n\tproto.RegisterType((*ResourceSliceSpec)(nil), \"k8s.io.api.resource.v1alpha3.ResourceSliceSpec\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/resource/v1alpha3/generated.proto\", fileDescriptor_66649ee9bbcd89d2)\n}\n\nvar fileDescriptor_66649ee9bbcd89d2 = []byte{\n\t// 2030 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x19, 0xcd, 0x6f, 0x1c, 0x57,\n\t0xdd, 0xb3, 0xe3, 0xcf, 0xdf, 0xfa, 0x2b, 0x2f, 0xa4, 0x38, 0xa6, 0xec, 0x3a, 0x53, 0x04, 0x4e,\n\t0x9b, 0xee, 0x36, 0x4e, 0xd5, 0x16, 0xc2, 0x01, 0x8f, 0xed, 0x06, 0x47, 0x89, 0xe3, 0x3c, 0xb7,\n\t0x11, 0x81, 0x12, 0x78, 0x9e, 0x7d, 0xb6, 0x07, 0xcf, 0xce, 0x4c, 0xe7, 0xbd, 0x71, 0xea, 0x0b,\n\t0xaa, 0xe0, 0x1e, 0xf1, 0x0f, 0x20, 0x0e, 0x48, 0x48, 0x5c, 0x80, 0xff, 0x00, 0x24, 0x90, 0x88,\n\t0xe0, 0x12, 0x09, 0x0e, 0x3d, 0x2d, 0xcd, 0x22, 0xce, 0xdc, 0x73, 0x42, 0xef, 0xcd, 0x9b, 0xcf,\n\t0xdd, 0x71, 0xc6, 0x55, 0xb1, 0xd2, 0xdb, 0xce, 0xef, 0xfb, 0xfd, 0xbe, 0xdf, 0x5b, 0xb8, 0x72,\n\t0xf8, 0x0e, 0x6b, 0xd9, 0x5e, 0x9b, 0xf8, 0x76, 0x3b, 0xa0, 0xcc, 0x0b, 0x03, 0x8b, 0xb6, 0x8f,\n\t0xae, 0x12, 0xc7, 0x3f, 0x20, 0xd7, 0xda, 0xfb, 0xd4, 0xa5, 0x01, 0xe1, 0xb4, 0xd3, 0xf2, 0x03,\n\t0x8f, 0x7b, 0xe8, 0xe5, 0x88, 0xba, 0x45, 0x7c, 0xbb, 0x15, 0x53, 0xb7, 0x62, 0xea, 0xc5, 0xd7,\n\t0xf7, 0x6d, 0x7e, 0x10, 0xee, 0xb6, 0x2c, 0xaf, 0xdb, 0xde, 0xf7, 0xf6, 0xbd, 0xb6, 0x64, 0xda,\n\t0x0d, 0xf7, 0xe4, 0x97, 0xfc, 0x90, 0xbf, 0x22, 0x61, 0x8b, 0x46, 0x46, 0xb5, 0xe5, 0x05, 0x42,\n\t0x6d, 0x51, 0xe1, 0xe2, 0x9b, 0x29, 0x4d, 0x97, 0x58, 0x07, 0xb6, 0x4b, 0x83, 0xe3, 0xb6, 0x7f,\n\t0xb8, 0x9f, 0xb7, 0xf7, 0x34, 0x5c, 0xac, 0xdd, 0xa5, 0x9c, 0x0c, 0xd3, 0xd5, 0x2e, 0xe3, 0x0a,\n\t0x42, 0x97, 0xdb, 0xdd, 0x41, 0x35, 0x6f, 0x3d, 0x8f, 0x81, 0x59, 0x07, 0xb4, 0x4b, 0x8a, 0x7c,\n\t0xc6, 0xaf, 0x75, 0xb8, 0xb0, 0xea, 0x38, 0x9e, 0x25, 0x60, 0xeb, 0xf4, 0xc8, 0xb6, 0xe8, 0x0e,\n\t0x27, 0x3c, 0x64, 0xe8, 0xeb, 0x30, 0xde, 0x09, 0xec, 0x23, 0x1a, 0x2c, 0x68, 0x4b, 0xda, 0xf2,\n\t0x94, 0x39, 0xfb, 0xb8, 0xd7, 0x1c, 0xe9, 0xf7, 0x9a, 0xe3, 0xeb, 0x12, 0x8a, 0x15, 0x16, 0x2d,\n\t0xc1, 0xa8, 0xef, 0x79, 0xce, 0x42, 0x4d, 0x52, 0x4d, 0x2b, 0xaa, 0xd1, 0x6d, 0xcf, 0x73, 0xb0,\n\t0xc4, 0x48, 0x49, 0x52, 0xf2, 0x82, 0x5e, 0x90, 0x24, 0xa1, 0x58, 0x61, 0x91, 0x05, 0x60, 0x79,\n\t0x6e, 0xc7, 0xe6, 0xb6, 0xe7, 0xb2, 0x85, 0xd1, 0x25, 0x7d, 0xb9, 0xbe, 0xd2, 0x6e, 0xa5, 0x61,\n\t0x4e, 0x0e, 0xd6, 0xf2, 0x0f, 0xf7, 0x05, 0x80, 0xb5, 0x84, 0xff, 0x5a, 0x47, 0x57, 0x5b, 0x6b,\n\t0x31, 0x9f, 0x89, 0x94, 0x70, 0x48, 0x40, 0x0c, 0x67, 0xc4, 0xa2, 0x3b, 0x30, 0xda, 0x21, 0x9c,\n\t0x2c, 0x8c, 0x2d, 0x69, 0xcb, 0xf5, 0x95, 0xd7, 0x4b, 0xc5, 0x2b, 0xbf, 0xb5, 0x30, 0x79, 0xb8,\n\t0xf1, 0x11, 0xa7, 0x2e, 0x13, 0xc2, 0x93, 0xd3, 0xad, 0x13, 0x4e, 0xb0, 0x14, 0x84, 0x76, 0xa1,\n\t0xee, 0x52, 0xfe, 0xd0, 0x0b, 0x0e, 0x05, 0x70, 0x61, 0x5c, 0xca, 0xcd, 0x9a, 0x3d, 0x98, 0x9d,\n\t0xad, 0x2d, 0xc5, 0x20, 0xcf, 0x2d, 0xd8, 0xcc, 0xb9, 0x7e, 0xaf, 0x59, 0xdf, 0x4a, 0xe5, 0xe0,\n\t0xac, 0x50, 0xe3, 0xef, 0x1a, 0xcc, 0xab, 0x28, 0xd9, 0x9e, 0x8b, 0x29, 0x0b, 0x1d, 0x8e, 0x7e,\n\t0x04, 0x13, 0x91, 0xe3, 0x98, 0x8c, 0x50, 0x7d, 0xe5, 0xcd, 0x93, 0x95, 0x46, 0xda, 0x8a, 0x62,\n\t0xcc, 0x39, 0x75, 0xa6, 0x89, 0x08, 0xcf, 0x70, 0x2c, 0x15, 0xdd, 0x83, 0x69, 0xd7, 0xeb, 0xd0,\n\t0x1d, 0xea, 0x50, 0x8b, 0x7b, 0x81, 0x8c, 0x5e, 0x7d, 0x65, 0x29, 0xab, 0x45, 0xd4, 0x8a, 0xf0,\n\t0xff, 0x56, 0x86, 0xce, 0x9c, 0xef, 0xf7, 0x9a, 0xd3, 0x59, 0x08, 0xce, 0xc9, 0x31, 0x3e, 0xd5,\n\t0xa1, 0x6e, 0x12, 0x66, 0x5b, 0x91, 0x46, 0xf4, 0x53, 0x00, 0xc2, 0x79, 0x60, 0xef, 0x86, 0x5c,\n\t0x9e, 0x45, 0xc4, 0xfd, 0x9b, 0x27, 0x9f, 0x25, 0xc3, 0xde, 0x5a, 0x4d, 0x78, 0x37, 0x5c, 0x1e,\n\t0x1c, 0x9b, 0xaf, 0xc4, 0x19, 0x90, 0x22, 0x7e, 0xf6, 0xaf, 0xe6, 0xcc, 0xdd, 0x90, 0x38, 0xf6,\n\t0x9e, 0x4d, 0x3b, 0x5b, 0xa4, 0x4b, 0x71, 0x46, 0x23, 0x3a, 0x82, 0x49, 0x8b, 0xf8, 0xc4, 0xb2,\n\t0xf9, 0xf1, 0x42, 0x4d, 0x6a, 0x7f, 0xbb, 0xba, 0xf6, 0x35, 0xc5, 0x19, 0xe9, 0xbe, 0xa4, 0x74,\n\t0x4f, 0xc6, 0xe0, 0x41, 0xcd, 0x89, 0xae, 0x45, 0x07, 0xe6, 0x0a, 0xb6, 0xa3, 0x79, 0xd0, 0x0f,\n\t0xe9, 0x71, 0x54, 0x71, 0x58, 0xfc, 0x44, 0x6b, 0x30, 0x76, 0x44, 0x9c, 0x90, 0xca, 0xfa, 0xca,\n\t0x27, 0x6c, 0x79, 0x8c, 0x63, 0xa9, 0x38, 0xe2, 0xfd, 0x56, 0xed, 0x1d, 0x6d, 0xf1, 0x10, 0x66,\n\t0x72, 0xb6, 0x0e, 0xd1, 0xb5, 0x9e, 0xd7, 0xd5, 0x3a, 0xa9, 0xf6, 0x52, 0xe5, 0x77, 0x43, 0xe2,\n\t0x72, 0x9b, 0x1f, 0x67, 0x94, 0x19, 0x37, 0xe0, 0xdc, 0xda, 0xc6, 0x2d, 0xd5, 0x4f, 0x54, 0xdc,\n\t0xd1, 0x0a, 0x00, 0xfd, 0xc8, 0x0f, 0x28, 0x13, 0xb5, 0xa4, 0xba, 0x4a, 0x52, 0xae, 0x1b, 0x09,\n\t0x06, 0x67, 0xa8, 0x8c, 0x23, 0x50, 0x5d, 0x42, 0xf4, 0x19, 0x97, 0x74, 0xa9, 0xe2, 0x4b, 0x2a,\n\t0x51, 0xfa, 0x54, 0x62, 0xd0, 0x4d, 0x18, 0xdb, 0x15, 0x91, 0x51, 0xe6, 0x5f, 0xae, 0x1c, 0x44,\n\t0x73, 0xaa, 0xdf, 0x6b, 0x8e, 0x49, 0x00, 0x8e, 0x44, 0x18, 0x8f, 0x6a, 0xf0, 0xd5, 0x62, 0xc1,\n\t0xac, 0x79, 0xee, 0x9e, 0xbd, 0x1f, 0x06, 0xf2, 0x03, 0x7d, 0x07, 0xc6, 0x23, 0x91, 0xca, 0xa2,\n\t0xe5, 0xb8, 0xab, 0xed, 0x48, 0xe8, 0xb3, 0x5e, 0xf3, 0xa5, 0x22, 0x6b, 0x84, 0xc1, 0x8a, 0x0f,\n\t0x2d, 0xc3, 0x64, 0x40, 0x3f, 0x0c, 0x29, 0xe3, 0x4c, 0xe6, 0xdd, 0x94, 0x39, 0x2d, 0x52, 0x07,\n\t0x2b, 0x18, 0x4e, 0xb0, 0xe8, 0x63, 0x0d, 0xce, 0x47, 0x55, 0x99, 0xb3, 0x41, 0x55, 0xe4, 0xd5,\n\t0x2a, 0x39, 0x91, 0x63, 0x34, 0xbf, 0xa2, 0x8c, 0x3d, 0x3f, 0x04, 0x89, 0x87, 0xa9, 0x32, 0xfe,\n\t0xa3, 0xc1, 0x4b, 0xc3, 0x3b, 0x08, 0xda, 0x83, 0x89, 0x40, 0xfe, 0x8a, 0x8b, 0xf7, 0x7a, 0x15,\n\t0x83, 0xd4, 0x31, 0xcb, 0xfb, 0x51, 0xf4, 0xcd, 0x70, 0x2c, 0x1c, 0x59, 0x30, 0x6e, 0x49, 0x9b,\n\t0x54, 0x95, 0x5e, 0x3f, 0x5d, 0xbf, 0xcb, 0x7b, 0x20, 0x19, 0x42, 0x11, 0x18, 0x2b, 0xd1, 0xc6,\n\t0x6f, 0x35, 0x98, 0x2b, 0x54, 0x11, 0x6a, 0x80, 0x6e, 0xbb, 0x5c, 0xa6, 0x95, 0x1e, 0xc5, 0x68,\n\t0xd3, 0xe5, 0xf7, 0x44, 0xb2, 0x63, 0x81, 0x40, 0x97, 0x60, 0x74, 0x57, 0x8c, 0x40, 0x11, 0x8e,\n\t0x49, 0x73, 0xa6, 0xdf, 0x6b, 0x4e, 0x99, 0x9e, 0xe7, 0x44, 0x14, 0x12, 0x85, 0xbe, 0x01, 0xe3,\n\t0x8c, 0x07, 0xb6, 0xbb, 0xbf, 0x30, 0x2a, 0xb3, 0x45, 0xf6, 0xfb, 0x1d, 0x09, 0x89, 0xc8, 0x14,\n\t0x1a, 0xbd, 0x0a, 0x13, 0x47, 0x34, 0x90, 0x15, 0x32, 0x26, 0x29, 0x65, 0x37, 0xbd, 0x17, 0x81,\n\t0x22, 0xd2, 0x98, 0xc0, 0xf8, 0x7d, 0x0d, 0xea, 0x2a, 0x80, 0x0e, 0xb1, 0xbb, 0xe8, 0x7e, 0x26,\n\t0xa1, 0xa2, 0x48, 0xbc, 0x76, 0x8a, 0x48, 0x98, 0xf3, 0x71, 0xf3, 0x1a, 0x92, 0x81, 0x14, 0xea,\n\t0x96, 0xe7, 0x32, 0x1e, 0x10, 0xdb, 0x55, 0xe9, 0x9a, 0x6f, 0x10, 0x27, 0x25, 0x9e, 0x62, 0x33,\n\t0xcf, 0x2b, 0x05, 0xf5, 0x14, 0xc6, 0x70, 0x56, 0x2e, 0x7a, 0x90, 0x84, 0x58, 0x97, 0x1a, 0xde,\n\t0xaa, 0xa4, 0x41, 0x1c, 0xbe, 0x5a, 0x74, 0xff, 0xaa, 0xc1, 0x42, 0x19, 0x53, 0xae, 0x1e, 0xb5,\n\t0xcf, 0x54, 0x8f, 0xb5, 0xb3, 0xab, 0xc7, 0x3f, 0x69, 0x99, 0xd8, 0x33, 0x86, 0x7e, 0x0c, 0x93,\n\t0x62, 0x19, 0x92, 0xbb, 0x4d, 0xb4, 0x0e, 0xbc, 0x51, 0x6d, 0x75, 0xba, 0xb3, 0xfb, 0x13, 0x6a,\n\t0xf1, 0xdb, 0x94, 0x93, 0xb4, 0x19, 0xa7, 0x30, 0x9c, 0x48, 0x15, 0x9b, 0x13, 0xf3, 0xa9, 0x75,\n\t0x9a, 0x41, 0x24, 0x4d, 0xdb, 0xf1, 0xa9, 0x95, 0xf6, 0x6b, 0xf1, 0x85, 0xa5, 0x20, 0xe3, 0x97,\n\t0xd9, 0x60, 0x30, 0x96, 0x0f, 0x46, 0x99, 0x8b, 0xb5, 0xb3, 0x73, 0xf1, 0x1f, 0x93, 0x56, 0x20,\n\t0xed, 0xbb, 0x65, 0x33, 0x8e, 0x3e, 0x18, 0x70, 0x73, 0xab, 0x9a, 0x9b, 0x05, 0xb7, 0x74, 0x72,\n\t0x52, 0x65, 0x31, 0x24, 0xe3, 0xe2, 0x2d, 0x18, 0xb3, 0x39, 0xed, 0xc6, 0xf5, 0x75, 0xb9, 0xb2,\n\t0x8f, 0xcd, 0x19, 0x25, 0x75, 0x6c, 0x53, 0xf0, 0xe3, 0x48, 0x8c, 0xf1, 0x24, 0x7f, 0x02, 0xe1,\n\t0x7b, 0xf4, 0x43, 0x98, 0x62, 0x6a, 0x22, 0xc7, 0x5d, 0xe2, 0x4a, 0x15, 0x3d, 0xc9, 0x7a, 0x77,\n\t0x4e, 0xa9, 0x9a, 0x8a, 0x21, 0x0c, 0xa7, 0x12, 0x33, 0x15, 0x5c, 0x3b, 0x55, 0x05, 0x17, 0xe2,\n\t0x5f, 0x5a, 0xc1, 0x01, 0x0c, 0x0b, 0x20, 0xfa, 0x01, 0x8c, 0x7b, 0x3e, 0xf9, 0x30, 0xa4, 0x2a,\n\t0x2a, 0xcf, 0xd9, 0xe0, 0xee, 0x48, 0xda, 0x61, 0x69, 0x02, 0x42, 0x67, 0x84, 0xc6, 0x4a, 0xa4,\n\t0xf1, 0x48, 0x83, 0xf9, 0x62, 0x33, 0x3b, 0x45, 0xb7, 0xd8, 0x86, 0xd9, 0x2e, 0xe1, 0xd6, 0x41,\n\t0x32, 0x50, 0xd4, 0x5d, 0x69, 0xb9, 0xdf, 0x6b, 0xce, 0xde, 0xce, 0x61, 0x9e, 0xf5, 0x9a, 0xe8,\n\t0xdd, 0xd0, 0x71, 0x8e, 0xf3, 0x3b, 0x63, 0x81, 0xdf, 0xf8, 0xb9, 0x0e, 0x33, 0xb9, 0xde, 0x5d,\n\t0x61, 0x3b, 0x5a, 0x85, 0xb9, 0x4e, 0xea, 0x6c, 0x81, 0x50, 0x66, 0x7c, 0x59, 0x11, 0x67, 0x33,\n\t0x45, 0xf2, 0x15, 0xe9, 0xf3, 0xa9, 0xa3, 0x7f, 0xee, 0xa9, 0x73, 0x0f, 0x66, 0x49, 0x32, 0xad,\n\t0x6f, 0x7b, 0x1d, 0xaa, 0x66, 0x65, 0x4b, 0x71, 0xcd, 0xae, 0xe6, 0xb0, 0xcf, 0x7a, 0xcd, 0x2f,\n\t0x15, 0x67, 0xbc, 0x80, 0xe3, 0x82, 0x14, 0xf4, 0x0a, 0x8c, 0x59, 0x5e, 0xe8, 0x72, 0x39, 0x50,\n\t0xf5, 0xb4, 0x54, 0xd6, 0x04, 0x10, 0x47, 0x38, 0x74, 0x15, 0xea, 0xa4, 0xd3, 0xb5, 0xdd, 0x55,\n\t0xcb, 0xa2, 0x8c, 0xc9, 0x6b, 0xdc, 0x64, 0x34, 0xa5, 0x57, 0x53, 0x30, 0xce, 0xd2, 0x18, 0xff,\n\t0xd5, 0xe2, 0x1d, 0xb1, 0x64, 0x97, 0x41, 0x97, 0xc5, 0x66, 0x24, 0x51, 0x2a, 0x30, 0x99, 0xe5,\n\t0x46, 0x82, 0x71, 0x8c, 0xcf, 0x5c, 0xb7, 0x6b, 0x95, 0xae, 0xdb, 0x7a, 0x85, 0xeb, 0xf6, 0xe8,\n\t0x89, 0xd7, 0xed, 0xc2, 0x89, 0xc7, 0x2a, 0x9c, 0xf8, 0x03, 0x98, 0x2d, 0xec, 0xf4, 0x37, 0x41,\n\t0xb7, 0xa8, 0xa3, 0x8a, 0xee, 0x39, 0xb7, 0xde, 0x81, 0x1b, 0x81, 0x39, 0xd1, 0xef, 0x35, 0xf5,\n\t0xb5, 0x8d, 0x5b, 0x58, 0x08, 0x31, 0x7e, 0xa7, 0xc1, 0xb9, 0x81, 0x9b, 0x31, 0xba, 0x0e, 0x33,\n\t0xb6, 0xcb, 0x69, 0xb0, 0x47, 0x2c, 0xba, 0x95, 0xa6, 0xf8, 0x05, 0x75, 0xaa, 0x99, 0xcd, 0x2c,\n\t0x12, 0xe7, 0x69, 0xd1, 0x45, 0xd0, 0x6d, 0x3f, 0xde, 0xae, 0xa5, 0xb6, 0xcd, 0x6d, 0x86, 0x05,\n\t0x4c, 0xd4, 0xc3, 0x01, 0x09, 0x3a, 0x0f, 0x49, 0x40, 0x57, 0x3b, 0x1d, 0x71, 0xdf, 0x50, 0x3e,\n\t0x4d, 0xea, 0xe1, 0xbb, 0x79, 0x34, 0x2e, 0xd2, 0x1b, 0xbf, 0xd1, 0xe0, 0x62, 0x69, 0x27, 0xa9,\n\t0xfc, 0x80, 0x42, 0x00, 0x7c, 0x12, 0x90, 0x2e, 0xe5, 0x34, 0x60, 0x43, 0xa6, 0x6b, 0x85, 0x77,\n\t0x89, 0x64, 0x70, 0x6f, 0x27, 0x82, 0x70, 0x46, 0xa8, 0xf1, 0xab, 0x1a, 0xcc, 0x60, 0x15, 0x8f,\n\t0x68, 0x55, 0xfc, 0xff, 0xaf, 0x0b, 0x77, 0x73, 0xeb, 0xc2, 0x73, 0x52, 0x23, 0x67, 0x5c, 0xd9,\n\t0xc2, 0x80, 0xee, 0x8b, 0x25, 0x9a, 0xf0, 0x90, 0x55, 0xbb, 0xf8, 0xe4, 0x85, 0x4a, 0xc6, 0x34,\n\t0x08, 0xd1, 0x37, 0x56, 0x02, 0x8d, 0xbe, 0x06, 0x8d, 0x1c, 0xbd, 0xe8, 0xf4, 0x61, 0x97, 0x06,\n\t0x98, 0xee, 0xd1, 0x80, 0xba, 0x16, 0x45, 0x57, 0x60, 0x92, 0xf8, 0xf6, 0x8d, 0xc0, 0x0b, 0x7d,\n\t0x15, 0xd1, 0x64, 0x94, 0xaf, 0x6e, 0x6f, 0x4a, 0x38, 0x4e, 0x28, 0x04, 0x75, 0x6c, 0x91, 0xca,\n\t0xab, 0xcc, 0x7a, 0x1d, 0xc1, 0x71, 0x42, 0x91, 0xb4, 0xef, 0xd1, 0xd2, 0xf6, 0x6d, 0x82, 0x1e,\n\t0xda, 0x1d, 0x75, 0x27, 0x78, 0x43, 0x11, 0xe8, 0xef, 0x6f, 0xae, 0x3f, 0xeb, 0x35, 0x2f, 0x95,\n\t0x3d, 0xfe, 0xf1, 0x63, 0x9f, 0xb2, 0xd6, 0xfb, 0x9b, 0xeb, 0x58, 0x30, 0x1b, 0x7f, 0xd6, 0xe0,\n\t0x5c, 0xee, 0x90, 0x67, 0xb0, 0xd2, 0x6c, 0xe7, 0x57, 0x9a, 0xd7, 0x4e, 0x11, 0xb2, 0x92, 0xa5,\n\t0xc6, 0x2e, 0x1c, 0x42, 0x6e, 0x35, 0xef, 0x15, 0x1f, 0xc3, 0x2e, 0x57, 0xbe, 0x39, 0x94, 0xbf,\n\t0x80, 0x19, 0x7f, 0xab, 0xc1, 0xf9, 0x21, 0x59, 0x84, 0x1e, 0x00, 0xa4, 0x33, 0x66, 0x88, 0xd3,\n\t0x86, 0x28, 0x1c, 0xb8, 0xe7, 0xce, 0xca, 0x27, 0xaa, 0x14, 0x9a, 0x91, 0x88, 0x18, 0xd4, 0x03,\n\t0xca, 0x68, 0x70, 0x44, 0x3b, 0xef, 0x7a, 0x81, 0x72, 0xdd, 0xb7, 0x4f, 0xe1, 0xba, 0x81, 0xec,\n\t0x4d, 0xef, 0x5e, 0x38, 0x15, 0x8c, 0xb3, 0x5a, 0xd0, 0x83, 0xd4, 0x85, 0xd1, 0xdb, 0xeb, 0xb5,\n\t0x4a, 0x27, 0xca, 0x3f, 0x1b, 0x9f, 0xe0, 0xcc, 0x7f, 0x6a, 0x70, 0x21, 0x67, 0xe4, 0x7b, 0xb4,\n\t0xeb, 0x3b, 0x84, 0xd3, 0x33, 0x68, 0x46, 0xf7, 0x73, 0xcd, 0xe8, 0xed, 0x53, 0x78, 0x32, 0x36,\n\t0xb2, 0xf4, 0x16, 0xf3, 0x0f, 0x0d, 0x2e, 0x0e, 0xe5, 0x38, 0x83, 0xe2, 0xfa, 0x5e, 0xbe, 0xb8,\n\t0xae, 0x7d, 0x86, 0x73, 0x95, 0xdf, 0x1c, 0x2e, 0x96, 0xfa, 0xe1, 0x0b, 0x39, 0x3d, 0x8c, 0x3f,\n\t0x68, 0x30, 0x1d, 0x53, 0x8a, 0x75, 0xa9, 0xc2, 0xce, 0xbc, 0x02, 0xa0, 0xfe, 0x30, 0x89, 0x6f,\n\t0xf7, 0x7a, 0x6a, 0xf7, 0x8d, 0x04, 0x83, 0x33, 0x54, 0xe8, 0x26, 0xa0, 0xd8, 0xc2, 0x1d, 0x47,\n\t0x2e, 0x05, 0x62, 0xf5, 0xd4, 0x25, 0xef, 0xa2, 0xe2, 0x45, 0x78, 0x80, 0x02, 0x0f, 0xe1, 0x32,\n\t0xfe, 0xa2, 0xa5, 0x73, 0x5b, 0x82, 0x5f, 0x54, 0xcf, 0x4b, 0xe3, 0x4a, 0x3d, 0x9f, 0x9d, 0x3b,\n\t0x92, 0xf2, 0x85, 0x9d, 0x3b, 0xd2, 0xba, 0x92, 0x92, 0x78, 0xa4, 0x17, 0x4e, 0x21, 0x4b, 0xa1,\n\t0xea, 0x96, 0x77, 0x2b, 0xf3, 0x37, 0x59, 0x7d, 0xe5, 0xd5, 0x6a, 0xe6, 0x88, 0x34, 0x1d, 0xba,\n\t0xe3, 0x5f, 0x81, 0x49, 0xd7, 0xeb, 0x44, 0xfb, 0x70, 0x61, 0xbb, 0xd8, 0x52, 0x70, 0x9c, 0x50,\n\t0x0c, 0xfc, 0x91, 0x33, 0xfa, 0xf9, 0xfc, 0x91, 0x23, 0x37, 0x22, 0xc7, 0x11, 0x04, 0xf1, 0xf5,\n\t0x21, 0xdd, 0x88, 0x14, 0x1c, 0x27, 0x14, 0xe8, 0x4e, 0x3a, 0x5f, 0xc6, 0x65, 0x4c, 0xbe, 0x56,\n\t0x65, 0x44, 0x97, 0x0f, 0x14, 0xd3, 0x7c, 0xfc, 0xb4, 0x31, 0xf2, 0xe4, 0x69, 0x63, 0xe4, 0x93,\n\t0xa7, 0x8d, 0x91, 0x8f, 0xfb, 0x0d, 0xed, 0x71, 0xbf, 0xa1, 0x3d, 0xe9, 0x37, 0xb4, 0x4f, 0xfa,\n\t0x0d, 0xed, 0xd3, 0x7e, 0x43, 0xfb, 0xc5, 0xbf, 0x1b, 0x23, 0xdf, 0x7f, 0xf9, 0xa4, 0x7f, 0x95,\n\t0xff, 0x17, 0x00, 0x00, 0xff, 0xff, 0xbd, 0x60, 0x85, 0x64, 0x74, 0x1e, 0x00, 0x00,\n}\n\nfunc (m *AllocatedDeviceStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *AllocatedDeviceStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *AllocatedDeviceStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.NetworkData != nil {\n\t\t{\n\t\t\tsize, err := m.NetworkData.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x32\n\t}\n\t{\n\t\tsize, err := m.Data.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x2a\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\ti -= len(m.Device)\n\tcopy(dAtA[i:], m.Device)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Device)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Pool)\n\tcopy(dAtA[i:], m.Pool)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Pool)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Driver)\n\tcopy(dAtA[i:], m.Driver)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Driver)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *AllocationResult) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *AllocationResult) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *AllocationResult) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.NodeSelector != nil {\n\t\t{\n\t\t\tsize, err := m.NodeSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\t{\n\t\tsize, err := m.Devices.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *BasicDevice) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *BasicDevice) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *BasicDevice) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Capacity) > 0 {\n\t\tkeysForCapacity := make([]string, 0, len(m.Capacity))\n\t\tfor k := range m.Capacity {\n\t\t\tkeysForCapacity = append(keysForCapacity, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForCapacity)\n\t\tfor iNdEx := len(keysForCapacity) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Capacity[QualifiedName(keysForCapacity[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForCapacity[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForCapacity[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForCapacity[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Attributes) > 0 {\n\t\tkeysForAttributes := make([]string, 0, len(m.Attributes))\n\t\tfor k := range m.Attributes {\n\t\t\tkeysForAttributes = append(keysForAttributes, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAttributes)\n\t\tfor iNdEx := len(keysForAttributes) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Attributes[QualifiedName(keysForAttributes[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForAttributes[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForAttributes[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForAttributes[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CELDeviceSelector) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CELDeviceSelector) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CELDeviceSelector) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Expression)\n\tcopy(dAtA[i:], m.Expression)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Expression)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Device) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Device) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Device) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Basic != nil {\n\t\t{\n\t\t\tsize, err := m.Basic.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeviceAllocationConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeviceAllocationConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeviceAllocationConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.DeviceConfiguration.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.Requests) > 0 {\n\t\tfor iNdEx := len(m.Requests) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Requests[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Requests[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Requests[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.Source)\n\tcopy(dAtA[i:], m.Source)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Source)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeviceAllocationResult) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeviceAllocationResult) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeviceAllocationResult) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Config) > 0 {\n\t\tfor iNdEx := len(m.Config) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Config[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Results) > 0 {\n\t\tfor iNdEx := len(m.Results) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Results[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeviceAttribute) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeviceAttribute) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeviceAttribute) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.VersionValue != nil {\n\t\ti -= len(*m.VersionValue)\n\t\tcopy(dAtA[i:], *m.VersionValue)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.VersionValue)))\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.StringValue != nil {\n\t\ti -= len(*m.StringValue)\n\t\tcopy(dAtA[i:], *m.StringValue)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.StringValue)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.BoolValue != nil {\n\t\ti--\n\t\tif *m.BoolValue {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif m.IntValue != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.IntValue))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeviceClaim) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeviceClaim) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeviceClaim) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Config) > 0 {\n\t\tfor iNdEx := len(m.Config) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Config[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.Constraints) > 0 {\n\t\tfor iNdEx := len(m.Constraints) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Constraints[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Requests) > 0 {\n\t\tfor iNdEx := len(m.Requests) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Requests[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeviceClaimConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeviceClaimConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeviceClaimConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.DeviceConfiguration.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\tif len(m.Requests) > 0 {\n\t\tfor iNdEx := len(m.Requests) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Requests[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Requests[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Requests[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeviceClass) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeviceClass) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeviceClass) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeviceClassConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeviceClassConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeviceClassConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.DeviceConfiguration.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeviceClassList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeviceClassList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeviceClassList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeviceClassSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeviceClassSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeviceClassSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Config) > 0 {\n\t\tfor iNdEx := len(m.Config) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Config[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Selectors) > 0 {\n\t\tfor iNdEx := len(m.Selectors) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Selectors[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeviceConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeviceConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeviceConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Opaque != nil {\n\t\t{\n\t\t\tsize, err := m.Opaque.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeviceConstraint) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeviceConstraint) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeviceConstraint) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.MatchAttribute != nil {\n\t\ti -= len(*m.MatchAttribute)\n\t\tcopy(dAtA[i:], *m.MatchAttribute)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.MatchAttribute)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif len(m.Requests) > 0 {\n\t\tfor iNdEx := len(m.Requests) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Requests[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Requests[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Requests[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeviceRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeviceRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeviceRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.AdminAccess != nil {\n\t\ti--\n\t\tif *m.AdminAccess {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x30\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Count))\n\ti--\n\tdAtA[i] = 0x28\n\ti -= len(m.AllocationMode)\n\tcopy(dAtA[i:], m.AllocationMode)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.AllocationMode)))\n\ti--\n\tdAtA[i] = 0x22\n\tif len(m.Selectors) > 0 {\n\t\tfor iNdEx := len(m.Selectors) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Selectors[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\ti -= len(m.DeviceClassName)\n\tcopy(dAtA[i:], m.DeviceClassName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.DeviceClassName)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeviceRequestAllocationResult) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeviceRequestAllocationResult) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeviceRequestAllocationResult) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.AdminAccess != nil {\n\t\ti--\n\t\tif *m.AdminAccess {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x28\n\t}\n\ti -= len(m.Device)\n\tcopy(dAtA[i:], m.Device)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Device)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Pool)\n\tcopy(dAtA[i:], m.Pool)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Pool)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Driver)\n\tcopy(dAtA[i:], m.Driver)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Driver)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Request)\n\tcopy(dAtA[i:], m.Request)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Request)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeviceSelector) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeviceSelector) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeviceSelector) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.CEL != nil {\n\t\t{\n\t\t\tsize, err := m.CEL.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NetworkDeviceData) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NetworkDeviceData) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NetworkDeviceData) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.HardwareAddress)\n\tcopy(dAtA[i:], m.HardwareAddress)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.HardwareAddress)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.IPs) > 0 {\n\t\tfor iNdEx := len(m.IPs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.IPs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.IPs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.IPs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.InterfaceName)\n\tcopy(dAtA[i:], m.InterfaceName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.InterfaceName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *OpaqueDeviceConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *OpaqueDeviceConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *OpaqueDeviceConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Parameters.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Driver)\n\tcopy(dAtA[i:], m.Driver)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Driver)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceClaim) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceClaim) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceClaim) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceClaimConsumerReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceClaimConsumerReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceClaimConsumerReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.UID)\n\tcopy(dAtA[i:], m.UID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.UID)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Resource)\n\tcopy(dAtA[i:], m.Resource)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Resource)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.APIGroup)\n\tcopy(dAtA[i:], m.APIGroup)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIGroup)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceClaimList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceClaimList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceClaimList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceClaimSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceClaimSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceClaimSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Devices.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceClaimStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceClaimStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceClaimStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Devices) > 0 {\n\t\tfor iNdEx := len(m.Devices) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Devices[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif len(m.ReservedFor) > 0 {\n\t\tfor iNdEx := len(m.ReservedFor) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ReservedFor[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif m.Allocation != nil {\n\t\t{\n\t\t\tsize, err := m.Allocation.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceClaimTemplate) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceClaimTemplate) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceClaimTemplate) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceClaimTemplateList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceClaimTemplateList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceClaimTemplateList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceClaimTemplateSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceClaimTemplateSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceClaimTemplateSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourcePool) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourcePool) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourcePool) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ResourceSliceCount))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Generation))\n\ti--\n\tdAtA[i] = 0x10\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceSlice) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceSlice) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceSlice) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceSliceList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceSliceList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceSliceList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceSliceSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceSliceSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceSliceSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Devices) > 0 {\n\t\tfor iNdEx := len(m.Devices) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Devices[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\ti--\n\tif m.AllNodes {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x28\n\tif m.NodeSelector != nil {\n\t\t{\n\t\t\tsize, err := m.NodeSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\ti -= len(m.NodeName)\n\tcopy(dAtA[i:], m.NodeName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.NodeName)))\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Pool.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Driver)\n\tcopy(dAtA[i:], m.Driver)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Driver)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *AllocatedDeviceStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Driver)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Pool)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Device)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = m.Data.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.NetworkData != nil {\n\t\tl = m.NetworkData.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *AllocationResult) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Devices.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.NodeSelector != nil {\n\t\tl = m.NodeSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *BasicDevice) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Attributes) > 0 {\n\t\tfor k, v := range m.Attributes {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.Capacity) > 0 {\n\t\tfor k, v := range m.Capacity {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *CELDeviceSelector) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Expression)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *Device) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Basic != nil {\n\t\tl = m.Basic.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *DeviceAllocationConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Source)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Requests) > 0 {\n\t\tfor _, s := range m.Requests {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = m.DeviceConfiguration.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *DeviceAllocationResult) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Results) > 0 {\n\t\tfor _, e := range m.Results {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Config) > 0 {\n\t\tfor _, e := range m.Config {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *DeviceAttribute) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.IntValue != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.IntValue))\n\t}\n\tif m.BoolValue != nil {\n\t\tn += 2\n\t}\n\tif m.StringValue != nil {\n\t\tl = len(*m.StringValue)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.VersionValue != nil {\n\t\tl = len(*m.VersionValue)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *DeviceClaim) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Requests) > 0 {\n\t\tfor _, e := range m.Requests {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Constraints) > 0 {\n\t\tfor _, e := range m.Constraints {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Config) > 0 {\n\t\tfor _, e := range m.Config {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *DeviceClaimConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Requests) > 0 {\n\t\tfor _, s := range m.Requests {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = m.DeviceConfiguration.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *DeviceClass) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *DeviceClassConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.DeviceConfiguration.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *DeviceClassList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *DeviceClassSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Selectors) > 0 {\n\t\tfor _, e := range m.Selectors {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Config) > 0 {\n\t\tfor _, e := range m.Config {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *DeviceConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Opaque != nil {\n\t\tl = m.Opaque.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *DeviceConstraint) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Requests) > 0 {\n\t\tfor _, s := range m.Requests {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.MatchAttribute != nil {\n\t\tl = len(*m.MatchAttribute)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *DeviceRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.DeviceClassName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Selectors) > 0 {\n\t\tfor _, e := range m.Selectors {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.AllocationMode)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.Count))\n\tif m.AdminAccess != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *DeviceRequestAllocationResult) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Request)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Driver)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Pool)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Device)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.AdminAccess != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *DeviceSelector) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.CEL != nil {\n\t\tl = m.CEL.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *NetworkDeviceData) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.InterfaceName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.IPs) > 0 {\n\t\tfor _, s := range m.IPs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.HardwareAddress)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *OpaqueDeviceConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Driver)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Parameters.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ResourceClaim) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ResourceClaimConsumerReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.APIGroup)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Resource)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.UID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ResourceClaimList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ResourceClaimSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Devices.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ResourceClaimStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Allocation != nil {\n\t\tl = m.Allocation.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.ReservedFor) > 0 {\n\t\tfor _, e := range m.ReservedFor {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Devices) > 0 {\n\t\tfor _, e := range m.Devices {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ResourceClaimTemplate) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ResourceClaimTemplateList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ResourceClaimTemplateSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ResourcePool) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.Generation))\n\tn += 1 + sovGenerated(uint64(m.ResourceSliceCount))\n\treturn n\n}\n\nfunc (m *ResourceSlice) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ResourceSliceList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ResourceSliceSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Driver)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Pool.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.NodeName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.NodeSelector != nil {\n\t\tl = m.NodeSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 2\n\tif len(m.Devices) > 0 {\n\t\tfor _, e := range m.Devices {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *AllocatedDeviceStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]Condition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&AllocatedDeviceStatus{`,\n\t\t`Driver:` + fmt.Sprintf(\"%v\", this.Driver) + `,`,\n\t\t`Pool:` + fmt.Sprintf(\"%v\", this.Pool) + `,`,\n\t\t`Device:` + fmt.Sprintf(\"%v\", this.Device) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`Data:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Data), \"RawExtension\", \"runtime.RawExtension\", 1), `&`, ``, 1) + `,`,\n\t\t`NetworkData:` + strings.Replace(this.NetworkData.String(), \"NetworkDeviceData\", \"NetworkDeviceData\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *AllocationResult) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&AllocationResult{`,\n\t\t`Devices:` + strings.Replace(strings.Replace(this.Devices.String(), \"DeviceAllocationResult\", \"DeviceAllocationResult\", 1), `&`, ``, 1) + `,`,\n\t\t`NodeSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.NodeSelector), \"NodeSelector\", \"v11.NodeSelector\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *BasicDevice) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForAttributes := make([]string, 0, len(this.Attributes))\n\tfor k := range this.Attributes {\n\t\tkeysForAttributes = append(keysForAttributes, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAttributes)\n\tmapStringForAttributes := \"map[QualifiedName]DeviceAttribute{\"\n\tfor _, k := range keysForAttributes {\n\t\tmapStringForAttributes += fmt.Sprintf(\"%v: %v,\", k, this.Attributes[QualifiedName(k)])\n\t}\n\tmapStringForAttributes += \"}\"\n\tkeysForCapacity := make([]string, 0, len(this.Capacity))\n\tfor k := range this.Capacity {\n\t\tkeysForCapacity = append(keysForCapacity, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForCapacity)\n\tmapStringForCapacity := \"map[QualifiedName]resource.Quantity{\"\n\tfor _, k := range keysForCapacity {\n\t\tmapStringForCapacity += fmt.Sprintf(\"%v: %v,\", k, this.Capacity[QualifiedName(k)])\n\t}\n\tmapStringForCapacity += \"}\"\n\ts := strings.Join([]string{`&BasicDevice{`,\n\t\t`Attributes:` + mapStringForAttributes + `,`,\n\t\t`Capacity:` + mapStringForCapacity + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CELDeviceSelector) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CELDeviceSelector{`,\n\t\t`Expression:` + fmt.Sprintf(\"%v\", this.Expression) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Device) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Device{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Basic:` + strings.Replace(this.Basic.String(), \"BasicDevice\", \"BasicDevice\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeviceAllocationConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeviceAllocationConfiguration{`,\n\t\t`Source:` + fmt.Sprintf(\"%v\", this.Source) + `,`,\n\t\t`Requests:` + fmt.Sprintf(\"%v\", this.Requests) + `,`,\n\t\t`DeviceConfiguration:` + strings.Replace(strings.Replace(this.DeviceConfiguration.String(), \"DeviceConfiguration\", \"DeviceConfiguration\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeviceAllocationResult) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForResults := \"[]DeviceRequestAllocationResult{\"\n\tfor _, f := range this.Results {\n\t\trepeatedStringForResults += strings.Replace(strings.Replace(f.String(), \"DeviceRequestAllocationResult\", \"DeviceRequestAllocationResult\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForResults += \"}\"\n\trepeatedStringForConfig := \"[]DeviceAllocationConfiguration{\"\n\tfor _, f := range this.Config {\n\t\trepeatedStringForConfig += strings.Replace(strings.Replace(f.String(), \"DeviceAllocationConfiguration\", \"DeviceAllocationConfiguration\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConfig += \"}\"\n\ts := strings.Join([]string{`&DeviceAllocationResult{`,\n\t\t`Results:` + repeatedStringForResults + `,`,\n\t\t`Config:` + repeatedStringForConfig + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeviceAttribute) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeviceAttribute{`,\n\t\t`IntValue:` + valueToStringGenerated(this.IntValue) + `,`,\n\t\t`BoolValue:` + valueToStringGenerated(this.BoolValue) + `,`,\n\t\t`StringValue:` + valueToStringGenerated(this.StringValue) + `,`,\n\t\t`VersionValue:` + valueToStringGenerated(this.VersionValue) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeviceClaim) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForRequests := \"[]DeviceRequest{\"\n\tfor _, f := range this.Requests {\n\t\trepeatedStringForRequests += strings.Replace(strings.Replace(f.String(), \"DeviceRequest\", \"DeviceRequest\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRequests += \"}\"\n\trepeatedStringForConstraints := \"[]DeviceConstraint{\"\n\tfor _, f := range this.Constraints {\n\t\trepeatedStringForConstraints += strings.Replace(strings.Replace(f.String(), \"DeviceConstraint\", \"DeviceConstraint\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConstraints += \"}\"\n\trepeatedStringForConfig := \"[]DeviceClaimConfiguration{\"\n\tfor _, f := range this.Config {\n\t\trepeatedStringForConfig += strings.Replace(strings.Replace(f.String(), \"DeviceClaimConfiguration\", \"DeviceClaimConfiguration\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConfig += \"}\"\n\ts := strings.Join([]string{`&DeviceClaim{`,\n\t\t`Requests:` + repeatedStringForRequests + `,`,\n\t\t`Constraints:` + repeatedStringForConstraints + `,`,\n\t\t`Config:` + repeatedStringForConfig + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeviceClaimConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeviceClaimConfiguration{`,\n\t\t`Requests:` + fmt.Sprintf(\"%v\", this.Requests) + `,`,\n\t\t`DeviceConfiguration:` + strings.Replace(strings.Replace(this.DeviceConfiguration.String(), \"DeviceConfiguration\", \"DeviceConfiguration\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeviceClass) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeviceClass{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"DeviceClassSpec\", \"DeviceClassSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeviceClassConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeviceClassConfiguration{`,\n\t\t`DeviceConfiguration:` + strings.Replace(strings.Replace(this.DeviceConfiguration.String(), \"DeviceConfiguration\", \"DeviceConfiguration\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeviceClassList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]DeviceClass{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"DeviceClass\", \"DeviceClass\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&DeviceClassList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeviceClassSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForSelectors := \"[]DeviceSelector{\"\n\tfor _, f := range this.Selectors {\n\t\trepeatedStringForSelectors += strings.Replace(strings.Replace(f.String(), \"DeviceSelector\", \"DeviceSelector\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForSelectors += \"}\"\n\trepeatedStringForConfig := \"[]DeviceClassConfiguration{\"\n\tfor _, f := range this.Config {\n\t\trepeatedStringForConfig += strings.Replace(strings.Replace(f.String(), \"DeviceClassConfiguration\", \"DeviceClassConfiguration\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConfig += \"}\"\n\ts := strings.Join([]string{`&DeviceClassSpec{`,\n\t\t`Selectors:` + repeatedStringForSelectors + `,`,\n\t\t`Config:` + repeatedStringForConfig + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeviceConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeviceConfiguration{`,\n\t\t`Opaque:` + strings.Replace(this.Opaque.String(), \"OpaqueDeviceConfiguration\", \"OpaqueDeviceConfiguration\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeviceConstraint) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeviceConstraint{`,\n\t\t`Requests:` + fmt.Sprintf(\"%v\", this.Requests) + `,`,\n\t\t`MatchAttribute:` + valueToStringGenerated(this.MatchAttribute) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeviceRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForSelectors := \"[]DeviceSelector{\"\n\tfor _, f := range this.Selectors {\n\t\trepeatedStringForSelectors += strings.Replace(strings.Replace(f.String(), \"DeviceSelector\", \"DeviceSelector\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForSelectors += \"}\"\n\ts := strings.Join([]string{`&DeviceRequest{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`DeviceClassName:` + fmt.Sprintf(\"%v\", this.DeviceClassName) + `,`,\n\t\t`Selectors:` + repeatedStringForSelectors + `,`,\n\t\t`AllocationMode:` + fmt.Sprintf(\"%v\", this.AllocationMode) + `,`,\n\t\t`Count:` + fmt.Sprintf(\"%v\", this.Count) + `,`,\n\t\t`AdminAccess:` + valueToStringGenerated(this.AdminAccess) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeviceRequestAllocationResult) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeviceRequestAllocationResult{`,\n\t\t`Request:` + fmt.Sprintf(\"%v\", this.Request) + `,`,\n\t\t`Driver:` + fmt.Sprintf(\"%v\", this.Driver) + `,`,\n\t\t`Pool:` + fmt.Sprintf(\"%v\", this.Pool) + `,`,\n\t\t`Device:` + fmt.Sprintf(\"%v\", this.Device) + `,`,\n\t\t`AdminAccess:` + valueToStringGenerated(this.AdminAccess) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeviceSelector) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeviceSelector{`,\n\t\t`CEL:` + strings.Replace(this.CEL.String(), \"CELDeviceSelector\", \"CELDeviceSelector\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NetworkDeviceData) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NetworkDeviceData{`,\n\t\t`InterfaceName:` + fmt.Sprintf(\"%v\", this.InterfaceName) + `,`,\n\t\t`IPs:` + fmt.Sprintf(\"%v\", this.IPs) + `,`,\n\t\t`HardwareAddress:` + fmt.Sprintf(\"%v\", this.HardwareAddress) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *OpaqueDeviceConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&OpaqueDeviceConfiguration{`,\n\t\t`Driver:` + fmt.Sprintf(\"%v\", this.Driver) + `,`,\n\t\t`Parameters:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Parameters), \"RawExtension\", \"runtime.RawExtension\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceClaim) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceClaim{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ResourceClaimSpec\", \"ResourceClaimSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"ResourceClaimStatus\", \"ResourceClaimStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceClaimConsumerReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceClaimConsumerReference{`,\n\t\t`APIGroup:` + fmt.Sprintf(\"%v\", this.APIGroup) + `,`,\n\t\t`Resource:` + fmt.Sprintf(\"%v\", this.Resource) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`UID:` + fmt.Sprintf(\"%v\", this.UID) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceClaimList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ResourceClaim{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ResourceClaim\", \"ResourceClaim\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ResourceClaimList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceClaimSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceClaimSpec{`,\n\t\t`Devices:` + strings.Replace(strings.Replace(this.Devices.String(), \"DeviceClaim\", \"DeviceClaim\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceClaimStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForReservedFor := \"[]ResourceClaimConsumerReference{\"\n\tfor _, f := range this.ReservedFor {\n\t\trepeatedStringForReservedFor += strings.Replace(strings.Replace(f.String(), \"ResourceClaimConsumerReference\", \"ResourceClaimConsumerReference\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForReservedFor += \"}\"\n\trepeatedStringForDevices := \"[]AllocatedDeviceStatus{\"\n\tfor _, f := range this.Devices {\n\t\trepeatedStringForDevices += strings.Replace(strings.Replace(f.String(), \"AllocatedDeviceStatus\", \"AllocatedDeviceStatus\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForDevices += \"}\"\n\ts := strings.Join([]string{`&ResourceClaimStatus{`,\n\t\t`Allocation:` + strings.Replace(this.Allocation.String(), \"AllocationResult\", \"AllocationResult\", 1) + `,`,\n\t\t`ReservedFor:` + repeatedStringForReservedFor + `,`,\n\t\t`Devices:` + repeatedStringForDevices + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceClaimTemplate) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceClaimTemplate{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ResourceClaimTemplateSpec\", \"ResourceClaimTemplateSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceClaimTemplateList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ResourceClaimTemplate{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ResourceClaimTemplate\", \"ResourceClaimTemplate\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ResourceClaimTemplateList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceClaimTemplateSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceClaimTemplateSpec{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ResourceClaimSpec\", \"ResourceClaimSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourcePool) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourcePool{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Generation:` + fmt.Sprintf(\"%v\", this.Generation) + `,`,\n\t\t`ResourceSliceCount:` + fmt.Sprintf(\"%v\", this.ResourceSliceCount) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceSlice) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceSlice{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ResourceSliceSpec\", \"ResourceSliceSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceSliceList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ResourceSlice{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ResourceSlice\", \"ResourceSlice\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ResourceSliceList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceSliceSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForDevices := \"[]Device{\"\n\tfor _, f := range this.Devices {\n\t\trepeatedStringForDevices += strings.Replace(strings.Replace(f.String(), \"Device\", \"Device\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForDevices += \"}\"\n\ts := strings.Join([]string{`&ResourceSliceSpec{`,\n\t\t`Driver:` + fmt.Sprintf(\"%v\", this.Driver) + `,`,\n\t\t`Pool:` + strings.Replace(strings.Replace(this.Pool.String(), \"ResourcePool\", \"ResourcePool\", 1), `&`, ``, 1) + `,`,\n\t\t`NodeName:` + fmt.Sprintf(\"%v\", this.NodeName) + `,`,\n\t\t`NodeSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.NodeSelector), \"NodeSelector\", \"v11.NodeSelector\", 1) + `,`,\n\t\t`AllNodes:` + fmt.Sprintf(\"%v\", this.AllNodes) + `,`,\n\t\t`Devices:` + repeatedStringForDevices + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *AllocatedDeviceStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: AllocatedDeviceStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: AllocatedDeviceStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Driver\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Driver = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Pool\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Pool = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Device\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Device = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, v1.Condition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Data\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Data.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NetworkData\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NetworkData == nil {\n\t\t\t\tm.NetworkData = &NetworkDeviceData{}\n\t\t\t}\n\t\t\tif err := m.NetworkData.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *AllocationResult) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: AllocationResult: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: AllocationResult: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Devices\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Devices.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NodeSelector == nil {\n\t\t\t\tm.NodeSelector = &v11.NodeSelector{}\n\t\t\t}\n\t\t\tif err := m.NodeSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *BasicDevice) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: BasicDevice: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: BasicDevice: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Attributes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Attributes == nil {\n\t\t\t\tm.Attributes = make(map[QualifiedName]DeviceAttribute)\n\t\t\t}\n\t\t\tvar mapkey QualifiedName\n\t\t\tmapvalue := &DeviceAttribute{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = QualifiedName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &DeviceAttribute{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Attributes[QualifiedName(mapkey)] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Capacity\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Capacity == nil {\n\t\t\t\tm.Capacity = make(map[QualifiedName]resource.Quantity)\n\t\t\t}\n\t\t\tvar mapkey QualifiedName\n\t\t\tmapvalue := &resource.Quantity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = QualifiedName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &resource.Quantity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Capacity[QualifiedName(mapkey)] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CELDeviceSelector) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CELDeviceSelector: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CELDeviceSelector: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Expression\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Expression = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Device) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Device: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Device: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Basic\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Basic == nil {\n\t\t\t\tm.Basic = &BasicDevice{}\n\t\t\t}\n\t\t\tif err := m.Basic.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeviceAllocationConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceAllocationConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceAllocationConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Source\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Source = AllocationConfigSource(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Requests\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Requests = append(m.Requests, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DeviceConfiguration\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.DeviceConfiguration.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeviceAllocationResult) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceAllocationResult: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceAllocationResult: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Results\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Results = append(m.Results, DeviceRequestAllocationResult{})\n\t\t\tif err := m.Results[len(m.Results)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Config\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Config = append(m.Config, DeviceAllocationConfiguration{})\n\t\t\tif err := m.Config[len(m.Config)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeviceAttribute) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceAttribute: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceAttribute: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IntValue\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.IntValue = &v\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field BoolValue\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.BoolValue = &b\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StringValue\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.StringValue = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VersionValue\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.VersionValue = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeviceClaim) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceClaim: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceClaim: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Requests\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Requests = append(m.Requests, DeviceRequest{})\n\t\t\tif err := m.Requests[len(m.Requests)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Constraints\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Constraints = append(m.Constraints, DeviceConstraint{})\n\t\t\tif err := m.Constraints[len(m.Constraints)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Config\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Config = append(m.Config, DeviceClaimConfiguration{})\n\t\t\tif err := m.Config[len(m.Config)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeviceClaimConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceClaimConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceClaimConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Requests\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Requests = append(m.Requests, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DeviceConfiguration\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.DeviceConfiguration.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeviceClass) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceClass: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceClass: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeviceClassConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceClassConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceClassConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DeviceConfiguration\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.DeviceConfiguration.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeviceClassList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceClassList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceClassList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, DeviceClass{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeviceClassSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceClassSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceClassSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selectors\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Selectors = append(m.Selectors, DeviceSelector{})\n\t\t\tif err := m.Selectors[len(m.Selectors)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Config\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Config = append(m.Config, DeviceClassConfiguration{})\n\t\t\tif err := m.Config[len(m.Config)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeviceConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Opaque\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Opaque == nil {\n\t\t\t\tm.Opaque = &OpaqueDeviceConfiguration{}\n\t\t\t}\n\t\t\tif err := m.Opaque.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeviceConstraint) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceConstraint: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceConstraint: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Requests\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Requests = append(m.Requests, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchAttribute\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := FullyQualifiedName(dAtA[iNdEx:postIndex])\n\t\t\tm.MatchAttribute = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeviceRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DeviceClassName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.DeviceClassName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selectors\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Selectors = append(m.Selectors, DeviceSelector{})\n\t\t\tif err := m.Selectors[len(m.Selectors)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AllocationMode\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AllocationMode = DeviceAllocationMode(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Count\", wireType)\n\t\t\t}\n\t\t\tm.Count = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Count |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AdminAccess\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.AdminAccess = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeviceRequestAllocationResult) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceRequestAllocationResult: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceRequestAllocationResult: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Request\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Request = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Driver\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Driver = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Pool\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Pool = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Device\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Device = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AdminAccess\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.AdminAccess = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeviceSelector) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceSelector: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceSelector: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CEL\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.CEL == nil {\n\t\t\t\tm.CEL = &CELDeviceSelector{}\n\t\t\t}\n\t\t\tif err := m.CEL.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NetworkDeviceData) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkDeviceData: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkDeviceData: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field InterfaceName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.InterfaceName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IPs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.IPs = append(m.IPs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HardwareAddress\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.HardwareAddress = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *OpaqueDeviceConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: OpaqueDeviceConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: OpaqueDeviceConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Driver\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Driver = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Parameters\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Parameters.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceClaim) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaim: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaim: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceClaimConsumerReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimConsumerReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimConsumerReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIGroup\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIGroup = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resource\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resource = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.UID = k8s_io_apimachinery_pkg_types.UID(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceClaimList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ResourceClaim{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceClaimSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Devices\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Devices.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceClaimStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Allocation\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Allocation == nil {\n\t\t\t\tm.Allocation = &AllocationResult{}\n\t\t\t}\n\t\t\tif err := m.Allocation.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReservedFor\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ReservedFor = append(m.ReservedFor, ResourceClaimConsumerReference{})\n\t\t\tif err := m.ReservedFor[len(m.ReservedFor)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Devices\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Devices = append(m.Devices, AllocatedDeviceStatus{})\n\t\t\tif err := m.Devices[len(m.Devices)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceClaimTemplate) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimTemplate: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimTemplate: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceClaimTemplateList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimTemplateList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimTemplateList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ResourceClaimTemplate{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceClaimTemplateSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimTemplateSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimTemplateSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourcePool) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourcePool: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourcePool: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Generation\", wireType)\n\t\t\t}\n\t\t\tm.Generation = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Generation |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceSliceCount\", wireType)\n\t\t\t}\n\t\t\tm.ResourceSliceCount = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ResourceSliceCount |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceSlice) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceSlice: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceSlice: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceSliceList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceSliceList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceSliceList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ResourceSlice{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceSliceSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceSliceSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceSliceSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Driver\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Driver = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Pool\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Pool.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NodeName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NodeSelector == nil {\n\t\t\t\tm.NodeSelector = &v11.NodeSelector{}\n\t\t\t}\n\t\t\tif err := m.NodeSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AllNodes\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.AllNodes = bool(v != 0)\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Devices\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Devices = append(m.Devices, Device{})\n\t\t\tif err := m.Devices[len(m.Devices)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/resource/v1alpha3/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.resource.v1alpha3;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/api/resource/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/resource/v1alpha3\";\n\n// AllocatedDeviceStatus contains the status of an allocated device, if the\n// driver chooses to report it. This may include driver-specific information.\nmessage AllocatedDeviceStatus {\n  // Driver specifies the name of the DRA driver whose kubelet\n  // plugin should be invoked to process the allocation once the claim is\n  // needed on a node.\n  //\n  // Must be a DNS subdomain and should end with a DNS domain owned by the\n  // vendor of the driver.\n  //\n  // +required\n  optional string driver = 1;\n\n  // This name together with the driver name and the device name field\n  // identify which device was allocated (`<driver name>/<pool name>/<device name>`).\n  //\n  // Must not be longer than 253 characters and may contain one or more\n  // DNS sub-domains separated by slashes.\n  //\n  // +required\n  optional string pool = 2;\n\n  // Device references one device instance via its name in the driver's\n  // resource pool. It must be a DNS label.\n  //\n  // +required\n  optional string device = 3;\n\n  // Conditions contains the latest observation of the device's state.\n  // If the device has been configured according to the class and claim\n  // config references, the `Ready` condition should be True.\n  //\n  // +optional\n  // +listType=map\n  // +listMapKey=type\n  repeated .k8s.io.apimachinery.pkg.apis.meta.v1.Condition conditions = 4;\n\n  // Data contains arbitrary driver-specific data.\n  //\n  // The length of the raw data must be smaller or equal to 10 Ki.\n  //\n  // +optional\n  optional .k8s.io.apimachinery.pkg.runtime.RawExtension data = 5;\n\n  // NetworkData contains network-related information specific to the device.\n  //\n  // +optional\n  optional NetworkDeviceData networkData = 6;\n}\n\n// AllocationResult contains attributes of an allocated resource.\nmessage AllocationResult {\n  // Devices is the result of allocating devices.\n  //\n  // +optional\n  optional DeviceAllocationResult devices = 1;\n\n  // NodeSelector defines where the allocated resources are available. If\n  // unset, they are available everywhere.\n  //\n  // +optional\n  optional .k8s.io.api.core.v1.NodeSelector nodeSelector = 3;\n}\n\n// BasicDevice defines one device instance.\nmessage BasicDevice {\n  // Attributes defines the set of attributes for this device.\n  // The name of each attribute must be unique in that set.\n  //\n  // The maximum number of attributes and capacities combined is 32.\n  //\n  // +optional\n  map<string, DeviceAttribute> attributes = 1;\n\n  // Capacity defines the set of capacities for this device.\n  // The name of each capacity must be unique in that set.\n  //\n  // The maximum number of attributes and capacities combined is 32.\n  //\n  // +optional\n  map<string, .k8s.io.apimachinery.pkg.api.resource.Quantity> capacity = 2;\n}\n\n// CELDeviceSelector contains a CEL expression for selecting a device.\nmessage CELDeviceSelector {\n  // Expression is a CEL expression which evaluates a single device. It\n  // must evaluate to true when the device under consideration satisfies\n  // the desired criteria, and false when it does not. Any other result\n  // is an error and causes allocation of devices to abort.\n  //\n  // The expression's input is an object named \"device\", which carries\n  // the following properties:\n  //  - driver (string): the name of the driver which defines this device.\n  //  - attributes (map[string]object): the device's attributes, grouped by prefix\n  //    (e.g. device.attributes[\"dra.example.com\"] evaluates to an object with all\n  //    of the attributes which were prefixed by \"dra.example.com\".\n  //  - capacity (map[string]object): the device's capacities, grouped by prefix.\n  //\n  // Example: Consider a device with driver=\"dra.example.com\", which exposes\n  // two attributes named \"model\" and \"ext.example.com/family\" and which\n  // exposes one capacity named \"modules\". This input to this expression\n  // would have the following fields:\n  //\n  //     device.driver\n  //     device.attributes[\"dra.example.com\"].model\n  //     device.attributes[\"ext.example.com\"].family\n  //     device.capacity[\"dra.example.com\"].modules\n  //\n  // The device.driver field can be used to check for a specific driver,\n  // either as a high-level precondition (i.e. you only want to consider\n  // devices from this driver) or as part of a multi-clause expression\n  // that is meant to consider devices from different drivers.\n  //\n  // The value type of each attribute is defined by the device\n  // definition, and users who write these expressions must consult the\n  // documentation for their specific drivers. The value type of each\n  // capacity is Quantity.\n  //\n  // If an unknown prefix is used as a lookup in either device.attributes\n  // or device.capacity, an empty map will be returned. Any reference to\n  // an unknown field will cause an evaluation error and allocation to\n  // abort.\n  //\n  // A robust expression should check for the existence of attributes\n  // before referencing them.\n  //\n  // For ease of use, the cel.bind() function is enabled, and can be used\n  // to simplify expressions that access multiple attributes with the\n  // same domain. For example:\n  //\n  //     cel.bind(dra, device.attributes[\"dra.example.com\"], dra.someBool && dra.anotherBool)\n  //\n  // The length of the expression must be smaller or equal to 10 Ki. The\n  // cost of evaluating it is also limited based on the estimated number\n  // of logical steps.\n  //\n  // +required\n  optional string expression = 1;\n}\n\n// Device represents one individual hardware instance that can be selected based\n// on its attributes. Besides the name, exactly one field must be set.\nmessage Device {\n  // Name is unique identifier among all devices managed by\n  // the driver in the pool. It must be a DNS label.\n  //\n  // +required\n  optional string name = 1;\n\n  // Basic defines one device instance.\n  //\n  // +optional\n  // +oneOf=deviceType\n  optional BasicDevice basic = 2;\n}\n\n// DeviceAllocationConfiguration gets embedded in an AllocationResult.\nmessage DeviceAllocationConfiguration {\n  // Source records whether the configuration comes from a class and thus\n  // is not something that a normal user would have been able to set\n  // or from a claim.\n  //\n  // +required\n  optional string source = 1;\n\n  // Requests lists the names of requests where the configuration applies.\n  // If empty, its applies to all requests.\n  //\n  // +optional\n  // +listType=atomic\n  repeated string requests = 2;\n\n  optional DeviceConfiguration deviceConfiguration = 3;\n}\n\n// DeviceAllocationResult is the result of allocating devices.\nmessage DeviceAllocationResult {\n  // Results lists all allocated devices.\n  //\n  // +optional\n  // +listType=atomic\n  repeated DeviceRequestAllocationResult results = 1;\n\n  // This field is a combination of all the claim and class configuration parameters.\n  // Drivers can distinguish between those based on a flag.\n  //\n  // This includes configuration parameters for drivers which have no allocated\n  // devices in the result because it is up to the drivers which configuration\n  // parameters they support. They can silently ignore unknown configuration\n  // parameters.\n  //\n  // +optional\n  // +listType=atomic\n  repeated DeviceAllocationConfiguration config = 2;\n}\n\n// DeviceAttribute must have exactly one field set.\nmessage DeviceAttribute {\n  // IntValue is a number.\n  //\n  // +optional\n  // +oneOf=ValueType\n  optional int64 int = 2;\n\n  // BoolValue is a true/false value.\n  //\n  // +optional\n  // +oneOf=ValueType\n  optional bool bool = 3;\n\n  // StringValue is a string. Must not be longer than 64 characters.\n  //\n  // +optional\n  // +oneOf=ValueType\n  optional string string = 4;\n\n  // VersionValue is a semantic version according to semver.org spec 2.0.0.\n  // Must not be longer than 64 characters.\n  //\n  // +optional\n  // +oneOf=ValueType\n  optional string version = 5;\n}\n\n// DeviceClaim defines how to request devices with a ResourceClaim.\nmessage DeviceClaim {\n  // Requests represent individual requests for distinct devices which\n  // must all be satisfied. If empty, nothing needs to be allocated.\n  //\n  // +optional\n  // +listType=atomic\n  repeated DeviceRequest requests = 1;\n\n  // These constraints must be satisfied by the set of devices that get\n  // allocated for the claim.\n  //\n  // +optional\n  // +listType=atomic\n  repeated DeviceConstraint constraints = 2;\n\n  // This field holds configuration for multiple potential drivers which\n  // could satisfy requests in this claim. It is ignored while allocating\n  // the claim.\n  //\n  // +optional\n  // +listType=atomic\n  repeated DeviceClaimConfiguration config = 3;\n}\n\n// DeviceClaimConfiguration is used for configuration parameters in DeviceClaim.\nmessage DeviceClaimConfiguration {\n  // Requests lists the names of requests where the configuration applies.\n  // If empty, it applies to all requests.\n  //\n  // +optional\n  // +listType=atomic\n  repeated string requests = 1;\n\n  optional DeviceConfiguration deviceConfiguration = 2;\n}\n\n// DeviceClass is a vendor- or admin-provided resource that contains\n// device configuration and selectors. It can be referenced in\n// the device requests of a claim to apply these presets.\n// Cluster scoped.\n//\n// This is an alpha type and requires enabling the DynamicResourceAllocation\n// feature gate.\nmessage DeviceClass {\n  // Standard object metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec defines what can be allocated and how to configure it.\n  //\n  // This is mutable. Consumers have to be prepared for classes changing\n  // at any time, either because they get updated or replaced. Claim\n  // allocations are done once based on whatever was set in classes at\n  // the time of allocation.\n  //\n  // Changing the spec automatically increments the metadata.generation number.\n  optional DeviceClassSpec spec = 2;\n}\n\n// DeviceClassConfiguration is used in DeviceClass.\nmessage DeviceClassConfiguration {\n  optional DeviceConfiguration deviceConfiguration = 1;\n}\n\n// DeviceClassList is a collection of classes.\nmessage DeviceClassList {\n  // Standard list metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is the list of resource classes.\n  repeated DeviceClass items = 2;\n}\n\n// DeviceClassSpec is used in a [DeviceClass] to define what can be allocated\n// and how to configure it.\nmessage DeviceClassSpec {\n  // Each selector must be satisfied by a device which is claimed via this class.\n  //\n  // +optional\n  // +listType=atomic\n  repeated DeviceSelector selectors = 1;\n\n  // Config defines configuration parameters that apply to each device that is claimed via this class.\n  // Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor\n  // configuration applies to exactly one driver.\n  //\n  // They are passed to the driver, but are not considered while allocating the claim.\n  //\n  // +optional\n  // +listType=atomic\n  repeated DeviceClassConfiguration config = 2;\n}\n\n// DeviceConfiguration must have exactly one field set. It gets embedded\n// inline in some other structs which have other fields, so field names must\n// not conflict with those.\nmessage DeviceConfiguration {\n  // Opaque provides driver-specific configuration parameters.\n  //\n  // +optional\n  // +oneOf=ConfigurationType\n  optional OpaqueDeviceConfiguration opaque = 1;\n}\n\n// DeviceConstraint must have exactly one field set besides Requests.\nmessage DeviceConstraint {\n  // Requests is a list of the one or more requests in this claim which\n  // must co-satisfy this constraint. If a request is fulfilled by\n  // multiple devices, then all of the devices must satisfy the\n  // constraint. If this is not specified, this constraint applies to all\n  // requests in this claim.\n  //\n  // +optional\n  // +listType=atomic\n  repeated string requests = 1;\n\n  // MatchAttribute requires that all devices in question have this\n  // attribute and that its type and value are the same across those\n  // devices.\n  //\n  // For example, if you specified \"dra.example.com/numa\" (a hypothetical example!),\n  // then only devices in the same NUMA node will be chosen. A device which\n  // does not have that attribute will not be chosen. All devices should\n  // use a value of the same type for this attribute because that is part of\n  // its specification, but if one device doesn't, then it also will not be\n  // chosen.\n  //\n  // Must include the domain qualifier.\n  //\n  // +optional\n  // +oneOf=ConstraintType\n  optional string matchAttribute = 2;\n}\n\n// DeviceRequest is a request for devices required for a claim.\n// This is typically a request for a single resource like a device, but can\n// also ask for several identical devices.\n//\n// A DeviceClassName is currently required. Clients must check that it is\n// indeed set. It's absence indicates that something changed in a way that\n// is not supported by the client yet, in which case it must refuse to\n// handle the request.\nmessage DeviceRequest {\n  // Name can be used to reference this request in a pod.spec.containers[].resources.claims\n  // entry and in a constraint of the claim.\n  //\n  // Must be a DNS label.\n  //\n  // +required\n  optional string name = 1;\n\n  // DeviceClassName references a specific DeviceClass, which can define\n  // additional configuration and selectors to be inherited by this\n  // request.\n  //\n  // A class is required. Which classes are available depends on the cluster.\n  //\n  // Administrators may use this to restrict which devices may get\n  // requested by only installing classes with selectors for permitted\n  // devices. If users are free to request anything without restrictions,\n  // then administrators can create an empty DeviceClass for users\n  // to reference.\n  //\n  // +required\n  optional string deviceClassName = 2;\n\n  // Selectors define criteria which must be satisfied by a specific\n  // device in order for that device to be considered for this\n  // request. All selectors must be satisfied for a device to be\n  // considered.\n  //\n  // +optional\n  // +listType=atomic\n  repeated DeviceSelector selectors = 3;\n\n  // AllocationMode and its related fields define how devices are allocated\n  // to satisfy this request. Supported values are:\n  //\n  // - ExactCount: This request is for a specific number of devices.\n  //   This is the default. The exact number is provided in the\n  //   count field.\n  //\n  // - All: This request is for all of the matching devices in a pool.\n  //   Allocation will fail if some devices are already allocated,\n  //   unless adminAccess is requested.\n  //\n  // If AlloctionMode is not specified, the default mode is ExactCount. If\n  // the mode is ExactCount and count is not specified, the default count is\n  // one. Any other requests must specify this field.\n  //\n  // More modes may get added in the future. Clients must refuse to handle\n  // requests with unknown modes.\n  //\n  // +optional\n  optional string allocationMode = 4;\n\n  // Count is used only when the count mode is \"ExactCount\". Must be greater than zero.\n  // If AllocationMode is ExactCount and this field is not specified, the default is one.\n  //\n  // +optional\n  // +oneOf=AllocationMode\n  optional int64 count = 5;\n\n  // AdminAccess indicates that this is a claim for administrative access\n  // to the device(s). Claims with AdminAccess are expected to be used for\n  // monitoring or other management services for a device.  They ignore\n  // all ordinary claims to the device with respect to access modes and\n  // any resource allocations.\n  //\n  // This is an alpha field and requires enabling the DRAAdminAccess\n  // feature gate. Admin access is disabled if this field is unset or\n  // set to false, otherwise it is enabled.\n  //\n  // +optional\n  // +featureGate=DRAAdminAccess\n  optional bool adminAccess = 6;\n}\n\n// DeviceRequestAllocationResult contains the allocation result for one request.\nmessage DeviceRequestAllocationResult {\n  // Request is the name of the request in the claim which caused this\n  // device to be allocated. Multiple devices may have been allocated\n  // per request.\n  //\n  // +required\n  optional string request = 1;\n\n  // Driver specifies the name of the DRA driver whose kubelet\n  // plugin should be invoked to process the allocation once the claim is\n  // needed on a node.\n  //\n  // Must be a DNS subdomain and should end with a DNS domain owned by the\n  // vendor of the driver.\n  //\n  // +required\n  optional string driver = 2;\n\n  // This name together with the driver name and the device name field\n  // identify which device was allocated (`<driver name>/<pool name>/<device name>`).\n  //\n  // Must not be longer than 253 characters and may contain one or more\n  // DNS sub-domains separated by slashes.\n  //\n  // +required\n  optional string pool = 3;\n\n  // Device references one device instance via its name in the driver's\n  // resource pool. It must be a DNS label.\n  //\n  // +required\n  optional string device = 4;\n\n  // AdminAccess indicates that this device was allocated for\n  // administrative access. See the corresponding request field\n  // for a definition of mode.\n  //\n  // This is an alpha field and requires enabling the DRAAdminAccess\n  // feature gate. Admin access is disabled if this field is unset or\n  // set to false, otherwise it is enabled.\n  //\n  // +optional\n  // +featureGate=DRAAdminAccess\n  optional bool adminAccess = 5;\n}\n\n// DeviceSelector must have exactly one field set.\nmessage DeviceSelector {\n  // CEL contains a CEL expression for selecting a device.\n  //\n  // +optional\n  // +oneOf=SelectorType\n  optional CELDeviceSelector cel = 1;\n}\n\n// NetworkDeviceData provides network-related details for the allocated device.\n// This information may be filled by drivers or other components to configure\n// or identify the device within a network context.\nmessage NetworkDeviceData {\n  // InterfaceName specifies the name of the network interface associated with\n  // the allocated device. This might be the name of a physical or virtual\n  // network interface being configured in the pod.\n  //\n  // Must not be longer than 256 characters.\n  //\n  // +optional\n  optional string interfaceName = 1;\n\n  // IPs lists the network addresses assigned to the device's network interface.\n  // This can include both IPv4 and IPv6 addresses.\n  // The IPs are in the CIDR notation, which includes both the address and the\n  // associated subnet mask.\n  // e.g.: \"192.0.2.5/24\" for IPv4 and \"2001:db8::5/64\" for IPv6.\n  //\n  // +optional\n  // +listType=atomic\n  repeated string ips = 2;\n\n  // HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface.\n  //\n  // Must not be longer than 128 characters.\n  //\n  // +optional\n  optional string hardwareAddress = 3;\n}\n\n// OpaqueDeviceConfiguration contains configuration parameters for a driver\n// in a format defined by the driver vendor.\nmessage OpaqueDeviceConfiguration {\n  // Driver is used to determine which kubelet plugin needs\n  // to be passed these configuration parameters.\n  //\n  // An admission policy provided by the driver developer could use this\n  // to decide whether it needs to validate them.\n  //\n  // Must be a DNS subdomain and should end with a DNS domain owned by the\n  // vendor of the driver.\n  //\n  // +required\n  optional string driver = 1;\n\n  // Parameters can contain arbitrary data. It is the responsibility of\n  // the driver developer to handle validation and versioning. Typically this\n  // includes self-identification and a version (\"kind\" + \"apiVersion\" for\n  // Kubernetes types), with conversion between different versions.\n  //\n  // The length of the raw data must be smaller or equal to 10 Ki.\n  //\n  // +required\n  optional .k8s.io.apimachinery.pkg.runtime.RawExtension parameters = 2;\n}\n\n// ResourceClaim describes a request for access to resources in the cluster,\n// for use by workloads. For example, if a workload needs an accelerator device\n// with specific properties, this is how that request is expressed. The status\n// stanza tracks whether this claim has been satisfied and what specific\n// resources have been allocated.\n//\n// This is an alpha type and requires enabling the DynamicResourceAllocation\n// feature gate.\nmessage ResourceClaim {\n  // Standard object metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec describes what is being requested and how to configure it.\n  // The spec is immutable.\n  optional ResourceClaimSpec spec = 2;\n\n  // Status describes whether the claim is ready to use and what has been allocated.\n  // +optional\n  optional ResourceClaimStatus status = 3;\n}\n\n// ResourceClaimConsumerReference contains enough information to let you\n// locate the consumer of a ResourceClaim. The user must be a resource in the same\n// namespace as the ResourceClaim.\nmessage ResourceClaimConsumerReference {\n  // APIGroup is the group for the resource being referenced. It is\n  // empty for the core API. This matches the group in the APIVersion\n  // that is used when creating the resources.\n  // +optional\n  optional string apiGroup = 1;\n\n  // Resource is the type of resource being referenced, for example \"pods\".\n  // +required\n  optional string resource = 3;\n\n  // Name is the name of resource being referenced.\n  // +required\n  optional string name = 4;\n\n  // UID identifies exactly one incarnation of the resource.\n  // +required\n  optional string uid = 5;\n}\n\n// ResourceClaimList is a collection of claims.\nmessage ResourceClaimList {\n  // Standard list metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is the list of resource claims.\n  repeated ResourceClaim items = 2;\n}\n\n// ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it.\nmessage ResourceClaimSpec {\n  // Devices defines how to request devices.\n  //\n  // +optional\n  optional DeviceClaim devices = 1;\n}\n\n// ResourceClaimStatus tracks whether the resource has been allocated and what\n// the result of that was.\nmessage ResourceClaimStatus {\n  // Allocation is set once the claim has been allocated successfully.\n  //\n  // +optional\n  optional AllocationResult allocation = 1;\n\n  // ReservedFor indicates which entities are currently allowed to use\n  // the claim. A Pod which references a ResourceClaim which is not\n  // reserved for that Pod will not be started. A claim that is in\n  // use or might be in use because it has been reserved must not get\n  // deallocated.\n  //\n  // In a cluster with multiple scheduler instances, two pods might get\n  // scheduled concurrently by different schedulers. When they reference\n  // the same ResourceClaim which already has reached its maximum number\n  // of consumers, only one pod can be scheduled.\n  //\n  // Both schedulers try to add their pod to the claim.status.reservedFor\n  // field, but only the update that reaches the API server first gets\n  // stored. The other one fails with an error and the scheduler\n  // which issued it knows that it must put the pod back into the queue,\n  // waiting for the ResourceClaim to become usable again.\n  //\n  // There can be at most 256 such reservations. This may get increased in\n  // the future, but not reduced.\n  //\n  // +optional\n  // +listType=map\n  // +listMapKey=uid\n  // +patchStrategy=merge\n  // +patchMergeKey=uid\n  repeated ResourceClaimConsumerReference reservedFor = 2;\n\n  // Devices contains the status of each device allocated for this\n  // claim, as reported by the driver. This can include driver-specific\n  // information. Entries are owned by their respective drivers.\n  //\n  // +optional\n  // +listType=map\n  // +listMapKey=driver\n  // +listMapKey=device\n  // +listMapKey=pool\n  // +featureGate=DRAResourceClaimDeviceStatus\n  repeated AllocatedDeviceStatus devices = 4;\n}\n\n// ResourceClaimTemplate is used to produce ResourceClaim objects.\n//\n// This is an alpha type and requires enabling the DynamicResourceAllocation\n// feature gate.\nmessage ResourceClaimTemplate {\n  // Standard object metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Describes the ResourceClaim that is to be generated.\n  //\n  // This field is immutable. A ResourceClaim will get created by the\n  // control plane for a Pod when needed and then not get updated\n  // anymore.\n  optional ResourceClaimTemplateSpec spec = 2;\n}\n\n// ResourceClaimTemplateList is a collection of claim templates.\nmessage ResourceClaimTemplateList {\n  // Standard list metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is the list of resource claim templates.\n  repeated ResourceClaimTemplate items = 2;\n}\n\n// ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim.\nmessage ResourceClaimTemplateSpec {\n  // ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim\n  // when creating it. No other fields are allowed and will be rejected during\n  // validation.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec for the ResourceClaim. The entire content is copied unchanged\n  // into the ResourceClaim that gets created from this template. The\n  // same fields as in a ResourceClaim are also valid here.\n  optional ResourceClaimSpec spec = 2;\n}\n\n// ResourcePool describes the pool that ResourceSlices belong to.\nmessage ResourcePool {\n  // Name is used to identify the pool. For node-local devices, this\n  // is often the node name, but this is not required.\n  //\n  // It must not be longer than 253 characters and must consist of one or more DNS sub-domains\n  // separated by slashes. This field is immutable.\n  //\n  // +required\n  optional string name = 1;\n\n  // Generation tracks the change in a pool over time. Whenever a driver\n  // changes something about one or more of the resources in a pool, it\n  // must change the generation in all ResourceSlices which are part of\n  // that pool. Consumers of ResourceSlices should only consider\n  // resources from the pool with the highest generation number. The\n  // generation may be reset by drivers, which should be fine for\n  // consumers, assuming that all ResourceSlices in a pool are updated to\n  // match or deleted.\n  //\n  // Combined with ResourceSliceCount, this mechanism enables consumers to\n  // detect pools which are comprised of multiple ResourceSlices and are\n  // in an incomplete state.\n  //\n  // +required\n  optional int64 generation = 2;\n\n  // ResourceSliceCount is the total number of ResourceSlices in the pool at this\n  // generation number. Must be greater than zero.\n  //\n  // Consumers can use this to check whether they have seen all ResourceSlices\n  // belonging to the same pool.\n  //\n  // +required\n  optional int64 resourceSliceCount = 3;\n}\n\n// ResourceSlice represents one or more resources in a pool of similar resources,\n// managed by a common driver. A pool may span more than one ResourceSlice, and exactly how many\n// ResourceSlices comprise a pool is determined by the driver.\n//\n// At the moment, the only supported resources are devices with attributes and capacities.\n// Each device in a given pool, regardless of how many ResourceSlices, must have a unique name.\n// The ResourceSlice in which a device gets published may change over time. The unique identifier\n// for a device is the tuple <driver name>, <pool name>, <device name>.\n//\n// Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number\n// and updates all ResourceSlices with that new number and new resource definitions. A consumer\n// must only use ResourceSlices with the highest generation number and ignore all others.\n//\n// When allocating all resources in a pool matching certain criteria or when\n// looking for the best solution among several different alternatives, a\n// consumer should check the number of ResourceSlices in a pool (included in\n// each ResourceSlice) to determine whether its view of a pool is complete and\n// if not, should wait until the driver has completed updating the pool.\n//\n// For resources that are not local to a node, the node name is not set. Instead,\n// the driver may use a node selector to specify where the devices are available.\n//\n// This is an alpha type and requires enabling the DynamicResourceAllocation\n// feature gate.\nmessage ResourceSlice {\n  // Standard object metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Contains the information published by the driver.\n  //\n  // Changing the spec automatically increments the metadata.generation number.\n  optional ResourceSliceSpec spec = 2;\n}\n\n// ResourceSliceList is a collection of ResourceSlices.\nmessage ResourceSliceList {\n  // Standard list metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is the list of resource ResourceSlices.\n  repeated ResourceSlice items = 2;\n}\n\n// ResourceSliceSpec contains the information published by the driver in one ResourceSlice.\nmessage ResourceSliceSpec {\n  // Driver identifies the DRA driver providing the capacity information.\n  // A field selector can be used to list only ResourceSlice\n  // objects with a certain driver name.\n  //\n  // Must be a DNS subdomain and should end with a DNS domain owned by the\n  // vendor of the driver. This field is immutable.\n  //\n  // +required\n  optional string driver = 1;\n\n  // Pool describes the pool that this ResourceSlice belongs to.\n  //\n  // +required\n  optional ResourcePool pool = 2;\n\n  // NodeName identifies the node which provides the resources in this pool.\n  // A field selector can be used to list only ResourceSlice\n  // objects belonging to a certain node.\n  //\n  // This field can be used to limit access from nodes to ResourceSlices with\n  // the same node name. It also indicates to autoscalers that adding\n  // new nodes of the same type as some old node might also make new\n  // resources available.\n  //\n  // Exactly one of NodeName, NodeSelector and AllNodes must be set.\n  // This field is immutable.\n  //\n  // +optional\n  // +oneOf=NodeSelection\n  optional string nodeName = 3;\n\n  // NodeSelector defines which nodes have access to the resources in the pool,\n  // when that pool is not limited to a single node.\n  //\n  // Must use exactly one term.\n  //\n  // Exactly one of NodeName, NodeSelector and AllNodes must be set.\n  //\n  // +optional\n  // +oneOf=NodeSelection\n  optional .k8s.io.api.core.v1.NodeSelector nodeSelector = 4;\n\n  // AllNodes indicates that all nodes have access to the resources in the pool.\n  //\n  // Exactly one of NodeName, NodeSelector and AllNodes must be set.\n  //\n  // +optional\n  // +oneOf=NodeSelection\n  optional bool allNodes = 5;\n\n  // Devices lists some or all of the devices in this pool.\n  //\n  // Must not have more than 128 entries.\n  //\n  // +optional\n  // +listType=atomic\n  repeated Device devices = 6;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/resource/v1alpha3/register.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha3\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"resource.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1alpha3\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// We only register manually written functions here. The registration of the\n\t// generated functions takes place in the generated files. The separation\n\t// makes the code compile even when the generated files are missing.\n\tSchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)\n\tAddToScheme   = SchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&DeviceClass{},\n\t\t&DeviceClassList{},\n\t\t&ResourceClaim{},\n\t\t&ResourceClaimList{},\n\t\t&ResourceClaimTemplate{},\n\t\t&ResourceClaimTemplateList{},\n\t\t&ResourceSlice{},\n\t\t&ResourceSliceList{},\n\t)\n\n\t// Add the watch version that applies\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/resource/v1alpha3/types.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha3\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\t\"k8s.io/apimachinery/pkg/api/resource\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/types\"\n\t\"k8s.io/apimachinery/pkg/util/validation\"\n)\n\nconst (\n\t// Finalizer is the finalizer that gets set for claims\n\t// which were allocated through a builtin controller.\n\t// Reserved for use by Kubernetes, DRA driver controllers must\n\t// use their own finalizer.\n\tFinalizer = \"resource.kubernetes.io/delete-protection\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.31\n// +k8s:prerelease-lifecycle-gen:replacement=resource.k8s.io,v1beta1,ResourceSlice\n\n// ResourceSlice represents one or more resources in a pool of similar resources,\n// managed by a common driver. A pool may span more than one ResourceSlice, and exactly how many\n// ResourceSlices comprise a pool is determined by the driver.\n//\n// At the moment, the only supported resources are devices with attributes and capacities.\n// Each device in a given pool, regardless of how many ResourceSlices, must have a unique name.\n// The ResourceSlice in which a device gets published may change over time. The unique identifier\n// for a device is the tuple <driver name>, <pool name>, <device name>.\n//\n// Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number\n// and updates all ResourceSlices with that new number and new resource definitions. A consumer\n// must only use ResourceSlices with the highest generation number and ignore all others.\n//\n// When allocating all resources in a pool matching certain criteria or when\n// looking for the best solution among several different alternatives, a\n// consumer should check the number of ResourceSlices in a pool (included in\n// each ResourceSlice) to determine whether its view of a pool is complete and\n// if not, should wait until the driver has completed updating the pool.\n//\n// For resources that are not local to a node, the node name is not set. Instead,\n// the driver may use a node selector to specify where the devices are available.\n//\n// This is an alpha type and requires enabling the DynamicResourceAllocation\n// feature gate.\ntype ResourceSlice struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Contains the information published by the driver.\n\t//\n\t// Changing the spec automatically increments the metadata.generation number.\n\tSpec ResourceSliceSpec `json:\"spec\" protobuf:\"bytes,2,name=spec\"`\n}\n\nconst (\n\t// ResourceSliceSelectorNodeName can be used in a [metav1.ListOptions]\n\t// field selector to filter based on [ResourceSliceSpec.NodeName].\n\tResourceSliceSelectorNodeName = \"spec.nodeName\"\n\t// ResourceSliceSelectorDriver can be used in a [metav1.ListOptions]\n\t// field selector to filter based on [ResourceSliceSpec.Driver].\n\tResourceSliceSelectorDriver = \"spec.driver\"\n)\n\n// ResourceSliceSpec contains the information published by the driver in one ResourceSlice.\ntype ResourceSliceSpec struct {\n\t// Driver identifies the DRA driver providing the capacity information.\n\t// A field selector can be used to list only ResourceSlice\n\t// objects with a certain driver name.\n\t//\n\t// Must be a DNS subdomain and should end with a DNS domain owned by the\n\t// vendor of the driver. This field is immutable.\n\t//\n\t// +required\n\tDriver string `json:\"driver\" protobuf:\"bytes,1,name=driver\"`\n\n\t// Pool describes the pool that this ResourceSlice belongs to.\n\t//\n\t// +required\n\tPool ResourcePool `json:\"pool\" protobuf:\"bytes,2,name=pool\"`\n\n\t// NodeName identifies the node which provides the resources in this pool.\n\t// A field selector can be used to list only ResourceSlice\n\t// objects belonging to a certain node.\n\t//\n\t// This field can be used to limit access from nodes to ResourceSlices with\n\t// the same node name. It also indicates to autoscalers that adding\n\t// new nodes of the same type as some old node might also make new\n\t// resources available.\n\t//\n\t// Exactly one of NodeName, NodeSelector and AllNodes must be set.\n\t// This field is immutable.\n\t//\n\t// +optional\n\t// +oneOf=NodeSelection\n\tNodeName string `json:\"nodeName,omitempty\" protobuf:\"bytes,3,opt,name=nodeName\"`\n\n\t// NodeSelector defines which nodes have access to the resources in the pool,\n\t// when that pool is not limited to a single node.\n\t//\n\t// Must use exactly one term.\n\t//\n\t// Exactly one of NodeName, NodeSelector and AllNodes must be set.\n\t//\n\t// +optional\n\t// +oneOf=NodeSelection\n\tNodeSelector *v1.NodeSelector `json:\"nodeSelector,omitempty\" protobuf:\"bytes,4,opt,name=nodeSelector\"`\n\n\t// AllNodes indicates that all nodes have access to the resources in the pool.\n\t//\n\t// Exactly one of NodeName, NodeSelector and AllNodes must be set.\n\t//\n\t// +optional\n\t// +oneOf=NodeSelection\n\tAllNodes bool `json:\"allNodes,omitempty\" protobuf:\"bytes,5,opt,name=allNodes\"`\n\n\t// Devices lists some or all of the devices in this pool.\n\t//\n\t// Must not have more than 128 entries.\n\t//\n\t// +optional\n\t// +listType=atomic\n\tDevices []Device `json:\"devices\" protobuf:\"bytes,6,name=devices\"`\n}\n\n// DriverNameMaxLength is the maximum valid length of a driver name in the\n// ResourceSliceSpec and other places. It's the same as for CSI driver names.\nconst DriverNameMaxLength = 63\n\n// ResourcePool describes the pool that ResourceSlices belong to.\ntype ResourcePool struct {\n\t// Name is used to identify the pool. For node-local devices, this\n\t// is often the node name, but this is not required.\n\t//\n\t// It must not be longer than 253 characters and must consist of one or more DNS sub-domains\n\t// separated by slashes. This field is immutable.\n\t//\n\t// +required\n\tName string `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\n\t// Generation tracks the change in a pool over time. Whenever a driver\n\t// changes something about one or more of the resources in a pool, it\n\t// must change the generation in all ResourceSlices which are part of\n\t// that pool. Consumers of ResourceSlices should only consider\n\t// resources from the pool with the highest generation number. The\n\t// generation may be reset by drivers, which should be fine for\n\t// consumers, assuming that all ResourceSlices in a pool are updated to\n\t// match or deleted.\n\t//\n\t// Combined with ResourceSliceCount, this mechanism enables consumers to\n\t// detect pools which are comprised of multiple ResourceSlices and are\n\t// in an incomplete state.\n\t//\n\t// +required\n\tGeneration int64 `json:\"generation\" protobuf:\"bytes,2,name=generation\"`\n\n\t// ResourceSliceCount is the total number of ResourceSlices in the pool at this\n\t// generation number. Must be greater than zero.\n\t//\n\t// Consumers can use this to check whether they have seen all ResourceSlices\n\t// belonging to the same pool.\n\t//\n\t// +required\n\tResourceSliceCount int64 `json:\"resourceSliceCount\" protobuf:\"bytes,3,name=resourceSliceCount\"`\n}\n\nconst ResourceSliceMaxSharedCapacity = 128\nconst ResourceSliceMaxDevices = 128\nconst PoolNameMaxLength = validation.DNS1123SubdomainMaxLength // Same as for a single node name.\n\n// Device represents one individual hardware instance that can be selected based\n// on its attributes. Besides the name, exactly one field must be set.\ntype Device struct {\n\t// Name is unique identifier among all devices managed by\n\t// the driver in the pool. It must be a DNS label.\n\t//\n\t// +required\n\tName string `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\n\t// Basic defines one device instance.\n\t//\n\t// +optional\n\t// +oneOf=deviceType\n\tBasic *BasicDevice `json:\"basic,omitempty\" protobuf:\"bytes,2,opt,name=basic\"`\n}\n\n// BasicDevice defines one device instance.\ntype BasicDevice struct {\n\t// Attributes defines the set of attributes for this device.\n\t// The name of each attribute must be unique in that set.\n\t//\n\t// The maximum number of attributes and capacities combined is 32.\n\t//\n\t// +optional\n\tAttributes map[QualifiedName]DeviceAttribute `json:\"attributes,omitempty\" protobuf:\"bytes,1,rep,name=attributes\"`\n\n\t// Capacity defines the set of capacities for this device.\n\t// The name of each capacity must be unique in that set.\n\t//\n\t// The maximum number of attributes and capacities combined is 32.\n\t//\n\t// +optional\n\tCapacity map[QualifiedName]resource.Quantity `json:\"capacity,omitempty\" protobuf:\"bytes,2,rep,name=capacity\"`\n}\n\n// Limit for the sum of the number of entries in both attributes and capacity.\nconst ResourceSliceMaxAttributesAndCapacitiesPerDevice = 32\n\n// QualifiedName is the name of a device attribute or capacity.\n//\n// Attributes and capacities are defined either by the owner of the specific\n// driver (usually the vendor) or by some 3rd party (e.g. the Kubernetes\n// project). Because they are sometimes compared across devices, a given name\n// is expected to mean the same thing and have the same type on all devices.\n//\n// Names must be either a C identifier (e.g. \"theName\") or a DNS subdomain\n// followed by a slash (\"/\") followed by a C identifier\n// (e.g. \"dra.example.com/theName\"). Names which do not include the\n// domain prefix are assumed to be part of the driver's domain. Attributes\n// or capacities defined by 3rd parties must include the domain prefix.\n//\n// The maximum length for the DNS subdomain is 63 characters (same as\n// for driver names) and the maximum length of the C identifier\n// is 32.\ntype QualifiedName string\n\n// FullyQualifiedName is a QualifiedName where the domain is set.\ntype FullyQualifiedName string\n\n// DeviceMaxDomainLength is the maximum length of the domain prefix in a fully-qualified name.\nconst DeviceMaxDomainLength = 63\n\n// DeviceMaxIDLength is the maximum length of the identifier in a device attribute or capacity name (`<domain>/<ID>`).\nconst DeviceMaxIDLength = 32\n\n// DeviceAttribute must have exactly one field set.\ntype DeviceAttribute struct {\n\t// The Go field names below have a Value suffix to avoid a conflict between the\n\t// field \"String\" and the corresponding method. That method is required.\n\t// The Kubernetes API is defined without that suffix to keep it more natural.\n\n\t// IntValue is a number.\n\t//\n\t// +optional\n\t// +oneOf=ValueType\n\tIntValue *int64 `json:\"int,omitempty\" protobuf:\"varint,2,opt,name=int\"`\n\n\t// BoolValue is a true/false value.\n\t//\n\t// +optional\n\t// +oneOf=ValueType\n\tBoolValue *bool `json:\"bool,omitempty\" protobuf:\"varint,3,opt,name=bool\"`\n\n\t// StringValue is a string. Must not be longer than 64 characters.\n\t//\n\t// +optional\n\t// +oneOf=ValueType\n\tStringValue *string `json:\"string,omitempty\" protobuf:\"bytes,4,opt,name=string\"`\n\n\t// VersionValue is a semantic version according to semver.org spec 2.0.0.\n\t// Must not be longer than 64 characters.\n\t//\n\t// +optional\n\t// +oneOf=ValueType\n\tVersionValue *string `json:\"version,omitempty\" protobuf:\"bytes,5,opt,name=version\"`\n}\n\n// DeviceAttributeMaxValueLength is the maximum length of a string or version attribute value.\nconst DeviceAttributeMaxValueLength = 64\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.31\n// +k8s:prerelease-lifecycle-gen:replacement=resource.k8s.io,v1beta1,ResourceSliceList\n\n// ResourceSliceList is a collection of ResourceSlices.\ntype ResourceSliceList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is the list of resource ResourceSlices.\n\tItems []ResourceSlice `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.31\n// +k8s:prerelease-lifecycle-gen:replacement=resource.k8s.io,v1beta1,ResourceClaim\n\n// ResourceClaim describes a request for access to resources in the cluster,\n// for use by workloads. For example, if a workload needs an accelerator device\n// with specific properties, this is how that request is expressed. The status\n// stanza tracks whether this claim has been satisfied and what specific\n// resources have been allocated.\n//\n// This is an alpha type and requires enabling the DynamicResourceAllocation\n// feature gate.\ntype ResourceClaim struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec describes what is being requested and how to configure it.\n\t// The spec is immutable.\n\tSpec ResourceClaimSpec `json:\"spec\" protobuf:\"bytes,2,name=spec\"`\n\n\t// Status describes whether the claim is ready to use and what has been allocated.\n\t// +optional\n\tStatus ResourceClaimStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it.\ntype ResourceClaimSpec struct {\n\t// Devices defines how to request devices.\n\t//\n\t// +optional\n\tDevices DeviceClaim `json:\"devices\" protobuf:\"bytes,1,name=devices\"`\n\n\t// Controller is tombstoned since Kubernetes 1.32 where\n\t// it got removed. May be reused once decoding v1alpha3 is no longer\n\t// supported.\n\t// Controller string `json:\"controller,omitempty\" protobuf:\"bytes,2,opt,name=controller\"`\n}\n\n// DeviceClaim defines how to request devices with a ResourceClaim.\ntype DeviceClaim struct {\n\t// Requests represent individual requests for distinct devices which\n\t// must all be satisfied. If empty, nothing needs to be allocated.\n\t//\n\t// +optional\n\t// +listType=atomic\n\tRequests []DeviceRequest `json:\"requests\" protobuf:\"bytes,1,name=requests\"`\n\n\t// These constraints must be satisfied by the set of devices that get\n\t// allocated for the claim.\n\t//\n\t// +optional\n\t// +listType=atomic\n\tConstraints []DeviceConstraint `json:\"constraints,omitempty\" protobuf:\"bytes,2,opt,name=constraints\"`\n\n\t// This field holds configuration for multiple potential drivers which\n\t// could satisfy requests in this claim. It is ignored while allocating\n\t// the claim.\n\t//\n\t// +optional\n\t// +listType=atomic\n\tConfig []DeviceClaimConfiguration `json:\"config,omitempty\" protobuf:\"bytes,3,opt,name=config\"`\n\n\t// Potential future extension, ignored by older schedulers. This is\n\t// fine because scoring allows users to define a preference, without\n\t// making it a hard requirement.\n\t//\n\t// Score *SomeScoringStruct\n}\n\nconst (\n\tDeviceRequestsMaxSize    = AllocationResultsMaxSize\n\tDeviceConstraintsMaxSize = 32\n\tDeviceConfigMaxSize      = 32\n)\n\n// DeviceRequest is a request for devices required for a claim.\n// This is typically a request for a single resource like a device, but can\n// also ask for several identical devices.\n//\n// A DeviceClassName is currently required. Clients must check that it is\n// indeed set. It's absence indicates that something changed in a way that\n// is not supported by the client yet, in which case it must refuse to\n// handle the request.\ntype DeviceRequest struct {\n\t// Name can be used to reference this request in a pod.spec.containers[].resources.claims\n\t// entry and in a constraint of the claim.\n\t//\n\t// Must be a DNS label.\n\t//\n\t// +required\n\tName string `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\n\t// DeviceClassName references a specific DeviceClass, which can define\n\t// additional configuration and selectors to be inherited by this\n\t// request.\n\t//\n\t// A class is required. Which classes are available depends on the cluster.\n\t//\n\t// Administrators may use this to restrict which devices may get\n\t// requested by only installing classes with selectors for permitted\n\t// devices. If users are free to request anything without restrictions,\n\t// then administrators can create an empty DeviceClass for users\n\t// to reference.\n\t//\n\t// +required\n\tDeviceClassName string `json:\"deviceClassName\" protobuf:\"bytes,2,name=deviceClassName\"`\n\n\t// Selectors define criteria which must be satisfied by a specific\n\t// device in order for that device to be considered for this\n\t// request. All selectors must be satisfied for a device to be\n\t// considered.\n\t//\n\t// +optional\n\t// +listType=atomic\n\tSelectors []DeviceSelector `json:\"selectors,omitempty\" protobuf:\"bytes,3,name=selectors\"`\n\n\t// AllocationMode and its related fields define how devices are allocated\n\t// to satisfy this request. Supported values are:\n\t//\n\t// - ExactCount: This request is for a specific number of devices.\n\t//   This is the default. The exact number is provided in the\n\t//   count field.\n\t//\n\t// - All: This request is for all of the matching devices in a pool.\n\t//   Allocation will fail if some devices are already allocated,\n\t//   unless adminAccess is requested.\n\t//\n\t// If AlloctionMode is not specified, the default mode is ExactCount. If\n\t// the mode is ExactCount and count is not specified, the default count is\n\t// one. Any other requests must specify this field.\n\t//\n\t// More modes may get added in the future. Clients must refuse to handle\n\t// requests with unknown modes.\n\t//\n\t// +optional\n\tAllocationMode DeviceAllocationMode `json:\"allocationMode,omitempty\" protobuf:\"bytes,4,opt,name=allocationMode\"`\n\n\t// Count is used only when the count mode is \"ExactCount\". Must be greater than zero.\n\t// If AllocationMode is ExactCount and this field is not specified, the default is one.\n\t//\n\t// +optional\n\t// +oneOf=AllocationMode\n\tCount int64 `json:\"count,omitempty\" protobuf:\"bytes,5,opt,name=count\"`\n\n\t// AdminAccess indicates that this is a claim for administrative access\n\t// to the device(s). Claims with AdminAccess are expected to be used for\n\t// monitoring or other management services for a device.  They ignore\n\t// all ordinary claims to the device with respect to access modes and\n\t// any resource allocations.\n\t//\n\t// This is an alpha field and requires enabling the DRAAdminAccess\n\t// feature gate. Admin access is disabled if this field is unset or\n\t// set to false, otherwise it is enabled.\n\t//\n\t// +optional\n\t// +featureGate=DRAAdminAccess\n\tAdminAccess *bool `json:\"adminAccess,omitempty\" protobuf:\"bytes,6,opt,name=adminAccess\"`\n}\n\nconst (\n\tDeviceSelectorsMaxSize = 32\n)\n\ntype DeviceAllocationMode string\n\n// Valid [DeviceRequest.CountMode] values.\nconst (\n\tDeviceAllocationModeExactCount = DeviceAllocationMode(\"ExactCount\")\n\tDeviceAllocationModeAll        = DeviceAllocationMode(\"All\")\n)\n\n// DeviceSelector must have exactly one field set.\ntype DeviceSelector struct {\n\t// CEL contains a CEL expression for selecting a device.\n\t//\n\t// +optional\n\t// +oneOf=SelectorType\n\tCEL *CELDeviceSelector `json:\"cel,omitempty\" protobuf:\"bytes,1,opt,name=cel\"`\n}\n\n// CELDeviceSelector contains a CEL expression for selecting a device.\ntype CELDeviceSelector struct {\n\t// Expression is a CEL expression which evaluates a single device. It\n\t// must evaluate to true when the device under consideration satisfies\n\t// the desired criteria, and false when it does not. Any other result\n\t// is an error and causes allocation of devices to abort.\n\t//\n\t// The expression's input is an object named \"device\", which carries\n\t// the following properties:\n\t//  - driver (string): the name of the driver which defines this device.\n\t//  - attributes (map[string]object): the device's attributes, grouped by prefix\n\t//    (e.g. device.attributes[\"dra.example.com\"] evaluates to an object with all\n\t//    of the attributes which were prefixed by \"dra.example.com\".\n\t//  - capacity (map[string]object): the device's capacities, grouped by prefix.\n\t//\n\t// Example: Consider a device with driver=\"dra.example.com\", which exposes\n\t// two attributes named \"model\" and \"ext.example.com/family\" and which\n\t// exposes one capacity named \"modules\". This input to this expression\n\t// would have the following fields:\n\t//\n\t//     device.driver\n\t//     device.attributes[\"dra.example.com\"].model\n\t//     device.attributes[\"ext.example.com\"].family\n\t//     device.capacity[\"dra.example.com\"].modules\n\t//\n\t// The device.driver field can be used to check for a specific driver,\n\t// either as a high-level precondition (i.e. you only want to consider\n\t// devices from this driver) or as part of a multi-clause expression\n\t// that is meant to consider devices from different drivers.\n\t//\n\t// The value type of each attribute is defined by the device\n\t// definition, and users who write these expressions must consult the\n\t// documentation for their specific drivers. The value type of each\n\t// capacity is Quantity.\n\t//\n\t// If an unknown prefix is used as a lookup in either device.attributes\n\t// or device.capacity, an empty map will be returned. Any reference to\n\t// an unknown field will cause an evaluation error and allocation to\n\t// abort.\n\t//\n\t// A robust expression should check for the existence of attributes\n\t// before referencing them.\n\t//\n\t// For ease of use, the cel.bind() function is enabled, and can be used\n\t// to simplify expressions that access multiple attributes with the\n\t// same domain. For example:\n\t//\n\t//     cel.bind(dra, device.attributes[\"dra.example.com\"], dra.someBool && dra.anotherBool)\n\t//\n\t// The length of the expression must be smaller or equal to 10 Ki. The\n\t// cost of evaluating it is also limited based on the estimated number\n\t// of logical steps.\n\t//\n\t// +required\n\tExpression string `json:\"expression\" protobuf:\"bytes,1,name=expression\"`\n}\n\n// CELSelectorExpressionMaxCost specifies the cost limit for a single CEL selector\n// evaluation.\n//\n// There is no overall budget for selecting a device, so the actual time\n// required for that is proportional to the number of CEL selectors and how\n// often they need to be evaluated, which can vary depending on several factors\n// (number of devices, cluster utilization, additional constraints).\n//\n// Validation against this limit and [CELSelectorExpressionMaxLength] happens\n// only when setting an expression for the first time or when changing it. If\n// the limits are changed in a future Kubernetes release, existing users are\n// guaranteed that existing expressions will continue to be valid.\n//\n// However, the kube-scheduler also applies this cost limit at runtime, so it\n// could happen that a valid expression fails at runtime after an up- or\n// downgrade. This can also happen without version skew when the cost estimate\n// underestimated the actual cost. That this might happen is the reason why\n// kube-scheduler enforces the runtime limit instead of relying on validation.\n//\n// According to\n// https://github.com/kubernetes/kubernetes/blob/4aeaf1e99e82da8334c0d6dddd848a194cd44b4f/staging/src/k8s.io/apiserver/pkg/apis/cel/config.go#L20-L22,\n// this gives roughly 0.1 second for each expression evaluation.\n// However, this depends on how fast the machine is.\nconst CELSelectorExpressionMaxCost = 1000000\n\n// CELSelectorExpressionMaxLength is the maximum length of a CEL selector expression string.\nconst CELSelectorExpressionMaxLength = 10 * 1024\n\n// DeviceConstraint must have exactly one field set besides Requests.\ntype DeviceConstraint struct {\n\t// Requests is a list of the one or more requests in this claim which\n\t// must co-satisfy this constraint. If a request is fulfilled by\n\t// multiple devices, then all of the devices must satisfy the\n\t// constraint. If this is not specified, this constraint applies to all\n\t// requests in this claim.\n\t//\n\t// +optional\n\t// +listType=atomic\n\tRequests []string `json:\"requests,omitempty\" protobuf:\"bytes,1,opt,name=requests\"`\n\n\t// MatchAttribute requires that all devices in question have this\n\t// attribute and that its type and value are the same across those\n\t// devices.\n\t//\n\t// For example, if you specified \"dra.example.com/numa\" (a hypothetical example!),\n\t// then only devices in the same NUMA node will be chosen. A device which\n\t// does not have that attribute will not be chosen. All devices should\n\t// use a value of the same type for this attribute because that is part of\n\t// its specification, but if one device doesn't, then it also will not be\n\t// chosen.\n\t//\n\t// Must include the domain qualifier.\n\t//\n\t// +optional\n\t// +oneOf=ConstraintType\n\tMatchAttribute *FullyQualifiedName `json:\"matchAttribute,omitempty\" protobuf:\"bytes,2,opt,name=matchAttribute\"`\n\n\t// Potential future extension, not part of the current design:\n\t// A CEL expression which compares different devices and returns\n\t// true if they match.\n\t//\n\t// Because it would be part of a one-of, old schedulers will not\n\t// accidentally ignore this additional, for them unknown match\n\t// criteria.\n\t//\n\t// MatchExpression string\n}\n\n// DeviceClaimConfiguration is used for configuration parameters in DeviceClaim.\ntype DeviceClaimConfiguration struct {\n\t// Requests lists the names of requests where the configuration applies.\n\t// If empty, it applies to all requests.\n\t//\n\t// +optional\n\t// +listType=atomic\n\tRequests []string `json:\"requests,omitempty\" protobuf:\"bytes,1,opt,name=requests\"`\n\n\tDeviceConfiguration `json:\",inline\" protobuf:\"bytes,2,name=deviceConfiguration\"`\n}\n\n// DeviceConfiguration must have exactly one field set. It gets embedded\n// inline in some other structs which have other fields, so field names must\n// not conflict with those.\ntype DeviceConfiguration struct {\n\t// Opaque provides driver-specific configuration parameters.\n\t//\n\t// +optional\n\t// +oneOf=ConfigurationType\n\tOpaque *OpaqueDeviceConfiguration `json:\"opaque,omitempty\" protobuf:\"bytes,1,opt,name=opaque\"`\n}\n\n// OpaqueDeviceConfiguration contains configuration parameters for a driver\n// in a format defined by the driver vendor.\ntype OpaqueDeviceConfiguration struct {\n\t// Driver is used to determine which kubelet plugin needs\n\t// to be passed these configuration parameters.\n\t//\n\t// An admission policy provided by the driver developer could use this\n\t// to decide whether it needs to validate them.\n\t//\n\t// Must be a DNS subdomain and should end with a DNS domain owned by the\n\t// vendor of the driver.\n\t//\n\t// +required\n\tDriver string `json:\"driver\" protobuf:\"bytes,1,name=driver\"`\n\n\t// Parameters can contain arbitrary data. It is the responsibility of\n\t// the driver developer to handle validation and versioning. Typically this\n\t// includes self-identification and a version (\"kind\" + \"apiVersion\" for\n\t// Kubernetes types), with conversion between different versions.\n\t//\n\t// The length of the raw data must be smaller or equal to 10 Ki.\n\t//\n\t// +required\n\tParameters runtime.RawExtension `json:\"parameters\" protobuf:\"bytes,2,name=parameters\"`\n}\n\n// OpaqueParametersMaxLength is the maximum length of the raw data in an\n// [OpaqueDeviceConfiguration.Parameters] field.\nconst OpaqueParametersMaxLength = 10 * 1024\n\n// ResourceClaimStatus tracks whether the resource has been allocated and what\n// the result of that was.\ntype ResourceClaimStatus struct {\n\t// Allocation is set once the claim has been allocated successfully.\n\t//\n\t// +optional\n\tAllocation *AllocationResult `json:\"allocation,omitempty\" protobuf:\"bytes,1,opt,name=allocation\"`\n\n\t// ReservedFor indicates which entities are currently allowed to use\n\t// the claim. A Pod which references a ResourceClaim which is not\n\t// reserved for that Pod will not be started. A claim that is in\n\t// use or might be in use because it has been reserved must not get\n\t// deallocated.\n\t//\n\t// In a cluster with multiple scheduler instances, two pods might get\n\t// scheduled concurrently by different schedulers. When they reference\n\t// the same ResourceClaim which already has reached its maximum number\n\t// of consumers, only one pod can be scheduled.\n\t//\n\t// Both schedulers try to add their pod to the claim.status.reservedFor\n\t// field, but only the update that reaches the API server first gets\n\t// stored. The other one fails with an error and the scheduler\n\t// which issued it knows that it must put the pod back into the queue,\n\t// waiting for the ResourceClaim to become usable again.\n\t//\n\t// There can be at most 256 such reservations. This may get increased in\n\t// the future, but not reduced.\n\t//\n\t// +optional\n\t// +listType=map\n\t// +listMapKey=uid\n\t// +patchStrategy=merge\n\t// +patchMergeKey=uid\n\tReservedFor []ResourceClaimConsumerReference `json:\"reservedFor,omitempty\" protobuf:\"bytes,2,opt,name=reservedFor\" patchStrategy:\"merge\" patchMergeKey:\"uid\"`\n\n\t// DeallocationRequested is tombstoned since Kubernetes 1.32 where\n\t// it got removed. May be reused once decoding v1alpha3 is no longer\n\t// supported.\n\t// DeallocationRequested bool `json:\"deallocationRequested,omitempty\" protobuf:\"bytes,3,opt,name=deallocationRequested\"`\n\n\t// Devices contains the status of each device allocated for this\n\t// claim, as reported by the driver. This can include driver-specific\n\t// information. Entries are owned by their respective drivers.\n\t//\n\t// +optional\n\t// +listType=map\n\t// +listMapKey=driver\n\t// +listMapKey=device\n\t// +listMapKey=pool\n\t// +featureGate=DRAResourceClaimDeviceStatus\n\tDevices []AllocatedDeviceStatus `json:\"devices,omitempty\" protobuf:\"bytes,4,opt,name=devices\"`\n}\n\n// ResourceClaimReservedForMaxSize is the maximum number of entries in\n// claim.status.reservedFor.\nconst ResourceClaimReservedForMaxSize = 256\n\n// ResourceClaimConsumerReference contains enough information to let you\n// locate the consumer of a ResourceClaim. The user must be a resource in the same\n// namespace as the ResourceClaim.\ntype ResourceClaimConsumerReference struct {\n\t// APIGroup is the group for the resource being referenced. It is\n\t// empty for the core API. This matches the group in the APIVersion\n\t// that is used when creating the resources.\n\t// +optional\n\tAPIGroup string `json:\"apiGroup,omitempty\" protobuf:\"bytes,1,opt,name=apiGroup\"`\n\t// Resource is the type of resource being referenced, for example \"pods\".\n\t// +required\n\tResource string `json:\"resource\" protobuf:\"bytes,3,name=resource\"`\n\t// Name is the name of resource being referenced.\n\t// +required\n\tName string `json:\"name\" protobuf:\"bytes,4,name=name\"`\n\t// UID identifies exactly one incarnation of the resource.\n\t// +required\n\tUID types.UID `json:\"uid\" protobuf:\"bytes,5,name=uid\"`\n}\n\n// AllocationResult contains attributes of an allocated resource.\ntype AllocationResult struct {\n\t// Devices is the result of allocating devices.\n\t//\n\t// +optional\n\tDevices DeviceAllocationResult `json:\"devices,omitempty\" protobuf:\"bytes,1,opt,name=devices\"`\n\n\t// NodeSelector defines where the allocated resources are available. If\n\t// unset, they are available everywhere.\n\t//\n\t// +optional\n\tNodeSelector *v1.NodeSelector `json:\"nodeSelector,omitempty\" protobuf:\"bytes,3,opt,name=nodeSelector\"`\n\n\t// Controller is tombstoned since Kubernetes 1.32 where\n\t// it got removed. May be reused once decoding v1alpha3 is no longer\n\t// supported.\n\t// Controller string `json:\"controller,omitempty\" protobuf:\"bytes,4,opt,name=controller\"`\n}\n\n// DeviceAllocationResult is the result of allocating devices.\ntype DeviceAllocationResult struct {\n\t// Results lists all allocated devices.\n\t//\n\t// +optional\n\t// +listType=atomic\n\tResults []DeviceRequestAllocationResult `json:\"results,omitempty\" protobuf:\"bytes,1,opt,name=results\"`\n\n\t// This field is a combination of all the claim and class configuration parameters.\n\t// Drivers can distinguish between those based on a flag.\n\t//\n\t// This includes configuration parameters for drivers which have no allocated\n\t// devices in the result because it is up to the drivers which configuration\n\t// parameters they support. They can silently ignore unknown configuration\n\t// parameters.\n\t//\n\t// +optional\n\t// +listType=atomic\n\tConfig []DeviceAllocationConfiguration `json:\"config,omitempty\" protobuf:\"bytes,2,opt,name=config\"`\n}\n\n// AllocationResultsMaxSize represents the maximum number of\n// entries in allocation.devices.results.\nconst AllocationResultsMaxSize = 32\n\n// DeviceRequestAllocationResult contains the allocation result for one request.\ntype DeviceRequestAllocationResult struct {\n\t// Request is the name of the request in the claim which caused this\n\t// device to be allocated. Multiple devices may have been allocated\n\t// per request.\n\t//\n\t// +required\n\tRequest string `json:\"request\" protobuf:\"bytes,1,name=request\"`\n\n\t// Driver specifies the name of the DRA driver whose kubelet\n\t// plugin should be invoked to process the allocation once the claim is\n\t// needed on a node.\n\t//\n\t// Must be a DNS subdomain and should end with a DNS domain owned by the\n\t// vendor of the driver.\n\t//\n\t// +required\n\tDriver string `json:\"driver\" protobuf:\"bytes,2,name=driver\"`\n\n\t// This name together with the driver name and the device name field\n\t// identify which device was allocated (`<driver name>/<pool name>/<device name>`).\n\t//\n\t// Must not be longer than 253 characters and may contain one or more\n\t// DNS sub-domains separated by slashes.\n\t//\n\t// +required\n\tPool string `json:\"pool\" protobuf:\"bytes,3,name=pool\"`\n\n\t// Device references one device instance via its name in the driver's\n\t// resource pool. It must be a DNS label.\n\t//\n\t// +required\n\tDevice string `json:\"device\" protobuf:\"bytes,4,name=device\"`\n\n\t// AdminAccess indicates that this device was allocated for\n\t// administrative access. See the corresponding request field\n\t// for a definition of mode.\n\t//\n\t// This is an alpha field and requires enabling the DRAAdminAccess\n\t// feature gate. Admin access is disabled if this field is unset or\n\t// set to false, otherwise it is enabled.\n\t//\n\t// +optional\n\t// +featureGate=DRAAdminAccess\n\tAdminAccess *bool `json:\"adminAccess\" protobuf:\"bytes,5,name=adminAccess\"`\n}\n\n// DeviceAllocationConfiguration gets embedded in an AllocationResult.\ntype DeviceAllocationConfiguration struct {\n\t// Source records whether the configuration comes from a class and thus\n\t// is not something that a normal user would have been able to set\n\t// or from a claim.\n\t//\n\t// +required\n\tSource AllocationConfigSource `json:\"source\" protobuf:\"bytes,1,name=source\"`\n\n\t// Requests lists the names of requests where the configuration applies.\n\t// If empty, its applies to all requests.\n\t//\n\t// +optional\n\t// +listType=atomic\n\tRequests []string `json:\"requests,omitempty\" protobuf:\"bytes,2,opt,name=requests\"`\n\n\tDeviceConfiguration `json:\",inline\" protobuf:\"bytes,3,name=deviceConfiguration\"`\n}\n\ntype AllocationConfigSource string\n\n// Valid [DeviceAllocationConfiguration.Source] values.\nconst (\n\tAllocationConfigSourceClass = \"FromClass\"\n\tAllocationConfigSourceClaim = \"FromClaim\"\n)\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.31\n// +k8s:prerelease-lifecycle-gen:replacement=resource.k8s.io,v1beta1,ResourceClaimList\n\n// ResourceClaimList is a collection of claims.\ntype ResourceClaimList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is the list of resource claims.\n\tItems []ResourceClaim `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.31\n// +k8s:prerelease-lifecycle-gen:replacement=resource.k8s.io,v1beta1,DeviceClass\n\n// DeviceClass is a vendor- or admin-provided resource that contains\n// device configuration and selectors. It can be referenced in\n// the device requests of a claim to apply these presets.\n// Cluster scoped.\n//\n// This is an alpha type and requires enabling the DynamicResourceAllocation\n// feature gate.\ntype DeviceClass struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec defines what can be allocated and how to configure it.\n\t//\n\t// This is mutable. Consumers have to be prepared for classes changing\n\t// at any time, either because they get updated or replaced. Claim\n\t// allocations are done once based on whatever was set in classes at\n\t// the time of allocation.\n\t//\n\t// Changing the spec automatically increments the metadata.generation number.\n\tSpec DeviceClassSpec `json:\"spec\" protobuf:\"bytes,2,name=spec\"`\n}\n\n// DeviceClassSpec is used in a [DeviceClass] to define what can be allocated\n// and how to configure it.\ntype DeviceClassSpec struct {\n\t// Each selector must be satisfied by a device which is claimed via this class.\n\t//\n\t// +optional\n\t// +listType=atomic\n\tSelectors []DeviceSelector `json:\"selectors,omitempty\" protobuf:\"bytes,1,opt,name=selectors\"`\n\n\t// Config defines configuration parameters that apply to each device that is claimed via this class.\n\t// Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor\n\t// configuration applies to exactly one driver.\n\t//\n\t// They are passed to the driver, but are not considered while allocating the claim.\n\t//\n\t// +optional\n\t// +listType=atomic\n\tConfig []DeviceClassConfiguration `json:\"config,omitempty\" protobuf:\"bytes,2,opt,name=config\"`\n\n\t// SuitableNodes is tombstoned since Kubernetes 1.32 where\n\t// it got removed. May be reused once decoding v1alpha3 is no longer\n\t// supported.\n\t// SuitableNodes *v1.NodeSelector `json:\"suitableNodes,omitempty\" protobuf:\"bytes,3,opt,name=suitableNodes\"`\n}\n\n// DeviceClassConfiguration is used in DeviceClass.\ntype DeviceClassConfiguration struct {\n\tDeviceConfiguration `json:\",inline\" protobuf:\"bytes,1,opt,name=deviceConfiguration\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.31\n// +k8s:prerelease-lifecycle-gen:replacement=resource.k8s.io,v1beta1,DeviceClassList\n\n// DeviceClassList is a collection of classes.\ntype DeviceClassList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is the list of resource classes.\n\tItems []DeviceClass `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.31\n// +k8s:prerelease-lifecycle-gen:replacement=resource.k8s.io,v1beta1,ResourceClaimTemplate\n\n// ResourceClaimTemplate is used to produce ResourceClaim objects.\n//\n// This is an alpha type and requires enabling the DynamicResourceAllocation\n// feature gate.\ntype ResourceClaimTemplate struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Describes the ResourceClaim that is to be generated.\n\t//\n\t// This field is immutable. A ResourceClaim will get created by the\n\t// control plane for a Pod when needed and then not get updated\n\t// anymore.\n\tSpec ResourceClaimTemplateSpec `json:\"spec\" protobuf:\"bytes,2,name=spec\"`\n}\n\n// ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim.\ntype ResourceClaimTemplateSpec struct {\n\t// ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim\n\t// when creating it. No other fields are allowed and will be rejected during\n\t// validation.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec for the ResourceClaim. The entire content is copied unchanged\n\t// into the ResourceClaim that gets created from this template. The\n\t// same fields as in a ResourceClaim are also valid here.\n\tSpec ResourceClaimSpec `json:\"spec\" protobuf:\"bytes,2,name=spec\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.31\n// +k8s:prerelease-lifecycle-gen:replacement=resource.k8s.io,v1beta1,ResourceClaimTemplateList\n\n// ResourceClaimTemplateList is a collection of claim templates.\ntype ResourceClaimTemplateList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is the list of resource claim templates.\n\tItems []ResourceClaimTemplate `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// AllocatedDeviceStatus contains the status of an allocated device, if the\n// driver chooses to report it. This may include driver-specific information.\ntype AllocatedDeviceStatus struct {\n\t// Driver specifies the name of the DRA driver whose kubelet\n\t// plugin should be invoked to process the allocation once the claim is\n\t// needed on a node.\n\t//\n\t// Must be a DNS subdomain and should end with a DNS domain owned by the\n\t// vendor of the driver.\n\t//\n\t// +required\n\tDriver string `json:\"driver\" protobuf:\"bytes,1,rep,name=driver\"`\n\n\t// This name together with the driver name and the device name field\n\t// identify which device was allocated (`<driver name>/<pool name>/<device name>`).\n\t//\n\t// Must not be longer than 253 characters and may contain one or more\n\t// DNS sub-domains separated by slashes.\n\t//\n\t// +required\n\tPool string `json:\"pool\" protobuf:\"bytes,2,rep,name=pool\"`\n\n\t// Device references one device instance via its name in the driver's\n\t// resource pool. It must be a DNS label.\n\t//\n\t// +required\n\tDevice string `json:\"device\" protobuf:\"bytes,3,rep,name=device\"`\n\n\t// Conditions contains the latest observation of the device's state.\n\t// If the device has been configured according to the class and claim\n\t// config references, the `Ready` condition should be True.\n\t//\n\t// +optional\n\t// +listType=map\n\t// +listMapKey=type\n\tConditions []metav1.Condition `json:\"conditions\" protobuf:\"bytes,4,opt,name=conditions\"`\n\n\t// Data contains arbitrary driver-specific data.\n\t//\n\t// The length of the raw data must be smaller or equal to 10 Ki.\n\t//\n\t// +optional\n\tData runtime.RawExtension `json:\"data,omitempty\" protobuf:\"bytes,5,opt,name=data\"`\n\n\t// NetworkData contains network-related information specific to the device.\n\t//\n\t// +optional\n\tNetworkData *NetworkDeviceData `json:\"networkData,omitempty\" protobuf:\"bytes,6,opt,name=networkData\"`\n}\n\n// NetworkDeviceData provides network-related details for the allocated device.\n// This information may be filled by drivers or other components to configure\n// or identify the device within a network context.\ntype NetworkDeviceData struct {\n\t// InterfaceName specifies the name of the network interface associated with\n\t// the allocated device. This might be the name of a physical or virtual\n\t// network interface being configured in the pod.\n\t//\n\t// Must not be longer than 256 characters.\n\t//\n\t// +optional\n\tInterfaceName string `json:\"interfaceName,omitempty\" protobuf:\"bytes,1,opt,name=interfaceName\"`\n\n\t// IPs lists the network addresses assigned to the device's network interface.\n\t// This can include both IPv4 and IPv6 addresses.\n\t// The IPs are in the CIDR notation, which includes both the address and the\n\t// associated subnet mask.\n\t// e.g.: \"192.0.2.5/24\" for IPv4 and \"2001:db8::5/64\" for IPv6.\n\t//\n\t// +optional\n\t// +listType=atomic\n\tIPs []string `json:\"ips,omitempty\" protobuf:\"bytes,2,opt,name=ips\"`\n\n\t// HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface.\n\t//\n\t// Must not be longer than 128 characters.\n\t//\n\t// +optional\n\tHardwareAddress string `json:\"hardwareAddress,omitempty\" protobuf:\"bytes,3,opt,name=hardwareAddress\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/resource/v1alpha3/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha3\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_AllocatedDeviceStatus = map[string]string{\n\t\"\":            \"AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information.\",\n\t\"driver\":      \"Driver specifies the name of the DRA driver whose kubelet plugin should be invoked to process the allocation once the claim is needed on a node.\\n\\nMust be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.\",\n\t\"pool\":        \"This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`).\\n\\nMust not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes.\",\n\t\"device\":      \"Device references one device instance via its name in the driver's resource pool. It must be a DNS label.\",\n\t\"conditions\":  \"Conditions contains the latest observation of the device's state. If the device has been configured according to the class and claim config references, the `Ready` condition should be True.\",\n\t\"data\":        \"Data contains arbitrary driver-specific data.\\n\\nThe length of the raw data must be smaller or equal to 10 Ki.\",\n\t\"networkData\": \"NetworkData contains network-related information specific to the device.\",\n}\n\nfunc (AllocatedDeviceStatus) SwaggerDoc() map[string]string {\n\treturn map_AllocatedDeviceStatus\n}\n\nvar map_AllocationResult = map[string]string{\n\t\"\":             \"AllocationResult contains attributes of an allocated resource.\",\n\t\"devices\":      \"Devices is the result of allocating devices.\",\n\t\"nodeSelector\": \"NodeSelector defines where the allocated resources are available. If unset, they are available everywhere.\",\n}\n\nfunc (AllocationResult) SwaggerDoc() map[string]string {\n\treturn map_AllocationResult\n}\n\nvar map_BasicDevice = map[string]string{\n\t\"\":           \"BasicDevice defines one device instance.\",\n\t\"attributes\": \"Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set.\\n\\nThe maximum number of attributes and capacities combined is 32.\",\n\t\"capacity\":   \"Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set.\\n\\nThe maximum number of attributes and capacities combined is 32.\",\n}\n\nfunc (BasicDevice) SwaggerDoc() map[string]string {\n\treturn map_BasicDevice\n}\n\nvar map_CELDeviceSelector = map[string]string{\n\t\"\":           \"CELDeviceSelector contains a CEL expression for selecting a device.\",\n\t\"expression\": \"Expression is a CEL expression which evaluates a single device. It must evaluate to true when the device under consideration satisfies the desired criteria, and false when it does not. Any other result is an error and causes allocation of devices to abort.\\n\\nThe expression's input is an object named \\\"device\\\", which carries the following properties:\\n - driver (string): the name of the driver which defines this device.\\n - attributes (map[string]object): the device's attributes, grouped by prefix\\n   (e.g. device.attributes[\\\"dra.example.com\\\"] evaluates to an object with all\\n   of the attributes which were prefixed by \\\"dra.example.com\\\".\\n - capacity (map[string]object): the device's capacities, grouped by prefix.\\n\\nExample: Consider a device with driver=\\\"dra.example.com\\\", which exposes two attributes named \\\"model\\\" and \\\"ext.example.com/family\\\" and which exposes one capacity named \\\"modules\\\". This input to this expression would have the following fields:\\n\\n    device.driver\\n    device.attributes[\\\"dra.example.com\\\"].model\\n    device.attributes[\\\"ext.example.com\\\"].family\\n    device.capacity[\\\"dra.example.com\\\"].modules\\n\\nThe device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers.\\n\\nThe value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity.\\n\\nIf an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort.\\n\\nA robust expression should check for the existence of attributes before referencing them.\\n\\nFor ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example:\\n\\n    cel.bind(dra, device.attributes[\\\"dra.example.com\\\"], dra.someBool && dra.anotherBool)\\n\\nThe length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps.\",\n}\n\nfunc (CELDeviceSelector) SwaggerDoc() map[string]string {\n\treturn map_CELDeviceSelector\n}\n\nvar map_Device = map[string]string{\n\t\"\":      \"Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set.\",\n\t\"name\":  \"Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label.\",\n\t\"basic\": \"Basic defines one device instance.\",\n}\n\nfunc (Device) SwaggerDoc() map[string]string {\n\treturn map_Device\n}\n\nvar map_DeviceAllocationConfiguration = map[string]string{\n\t\"\":         \"DeviceAllocationConfiguration gets embedded in an AllocationResult.\",\n\t\"source\":   \"Source records whether the configuration comes from a class and thus is not something that a normal user would have been able to set or from a claim.\",\n\t\"requests\": \"Requests lists the names of requests where the configuration applies. If empty, its applies to all requests.\",\n}\n\nfunc (DeviceAllocationConfiguration) SwaggerDoc() map[string]string {\n\treturn map_DeviceAllocationConfiguration\n}\n\nvar map_DeviceAllocationResult = map[string]string{\n\t\"\":        \"DeviceAllocationResult is the result of allocating devices.\",\n\t\"results\": \"Results lists all allocated devices.\",\n\t\"config\":  \"This field is a combination of all the claim and class configuration parameters. Drivers can distinguish between those based on a flag.\\n\\nThis includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters.\",\n}\n\nfunc (DeviceAllocationResult) SwaggerDoc() map[string]string {\n\treturn map_DeviceAllocationResult\n}\n\nvar map_DeviceAttribute = map[string]string{\n\t\"\":        \"DeviceAttribute must have exactly one field set.\",\n\t\"int\":     \"IntValue is a number.\",\n\t\"bool\":    \"BoolValue is a true/false value.\",\n\t\"string\":  \"StringValue is a string. Must not be longer than 64 characters.\",\n\t\"version\": \"VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters.\",\n}\n\nfunc (DeviceAttribute) SwaggerDoc() map[string]string {\n\treturn map_DeviceAttribute\n}\n\nvar map_DeviceClaim = map[string]string{\n\t\"\":            \"DeviceClaim defines how to request devices with a ResourceClaim.\",\n\t\"requests\":    \"Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated.\",\n\t\"constraints\": \"These constraints must be satisfied by the set of devices that get allocated for the claim.\",\n\t\"config\":      \"This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim.\",\n}\n\nfunc (DeviceClaim) SwaggerDoc() map[string]string {\n\treturn map_DeviceClaim\n}\n\nvar map_DeviceClaimConfiguration = map[string]string{\n\t\"\":         \"DeviceClaimConfiguration is used for configuration parameters in DeviceClaim.\",\n\t\"requests\": \"Requests lists the names of requests where the configuration applies. If empty, it applies to all requests.\",\n}\n\nfunc (DeviceClaimConfiguration) SwaggerDoc() map[string]string {\n\treturn map_DeviceClaimConfiguration\n}\n\nvar map_DeviceClass = map[string]string{\n\t\"\":         \"DeviceClass is a vendor- or admin-provided resource that contains device configuration and selectors. It can be referenced in the device requests of a claim to apply these presets. Cluster scoped.\\n\\nThis is an alpha type and requires enabling the DynamicResourceAllocation feature gate.\",\n\t\"metadata\": \"Standard object metadata\",\n\t\"spec\":     \"Spec defines what can be allocated and how to configure it.\\n\\nThis is mutable. Consumers have to be prepared for classes changing at any time, either because they get updated or replaced. Claim allocations are done once based on whatever was set in classes at the time of allocation.\\n\\nChanging the spec automatically increments the metadata.generation number.\",\n}\n\nfunc (DeviceClass) SwaggerDoc() map[string]string {\n\treturn map_DeviceClass\n}\n\nvar map_DeviceClassConfiguration = map[string]string{\n\t\"\": \"DeviceClassConfiguration is used in DeviceClass.\",\n}\n\nfunc (DeviceClassConfiguration) SwaggerDoc() map[string]string {\n\treturn map_DeviceClassConfiguration\n}\n\nvar map_DeviceClassList = map[string]string{\n\t\"\":         \"DeviceClassList is a collection of classes.\",\n\t\"metadata\": \"Standard list metadata\",\n\t\"items\":    \"Items is the list of resource classes.\",\n}\n\nfunc (DeviceClassList) SwaggerDoc() map[string]string {\n\treturn map_DeviceClassList\n}\n\nvar map_DeviceClassSpec = map[string]string{\n\t\"\":          \"DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it.\",\n\t\"selectors\": \"Each selector must be satisfied by a device which is claimed via this class.\",\n\t\"config\":    \"Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver.\\n\\nThey are passed to the driver, but are not considered while allocating the claim.\",\n}\n\nfunc (DeviceClassSpec) SwaggerDoc() map[string]string {\n\treturn map_DeviceClassSpec\n}\n\nvar map_DeviceConfiguration = map[string]string{\n\t\"\":       \"DeviceConfiguration must have exactly one field set. It gets embedded inline in some other structs which have other fields, so field names must not conflict with those.\",\n\t\"opaque\": \"Opaque provides driver-specific configuration parameters.\",\n}\n\nfunc (DeviceConfiguration) SwaggerDoc() map[string]string {\n\treturn map_DeviceConfiguration\n}\n\nvar map_DeviceConstraint = map[string]string{\n\t\"\":               \"DeviceConstraint must have exactly one field set besides Requests.\",\n\t\"requests\":       \"Requests is a list of the one or more requests in this claim which must co-satisfy this constraint. If a request is fulfilled by multiple devices, then all of the devices must satisfy the constraint. If this is not specified, this constraint applies to all requests in this claim.\",\n\t\"matchAttribute\": \"MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices.\\n\\nFor example, if you specified \\\"dra.example.com/numa\\\" (a hypothetical example!), then only devices in the same NUMA node will be chosen. A device which does not have that attribute will not be chosen. All devices should use a value of the same type for this attribute because that is part of its specification, but if one device doesn't, then it also will not be chosen.\\n\\nMust include the domain qualifier.\",\n}\n\nfunc (DeviceConstraint) SwaggerDoc() map[string]string {\n\treturn map_DeviceConstraint\n}\n\nvar map_DeviceRequest = map[string]string{\n\t\"\":                \"DeviceRequest is a request for devices required for a claim. This is typically a request for a single resource like a device, but can also ask for several identical devices.\\n\\nA DeviceClassName is currently required. Clients must check that it is indeed set. It's absence indicates that something changed in a way that is not supported by the client yet, in which case it must refuse to handle the request.\",\n\t\"name\":            \"Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim.\\n\\nMust be a DNS label.\",\n\t\"deviceClassName\": \"DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request.\\n\\nA class is required. Which classes are available depends on the cluster.\\n\\nAdministrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference.\",\n\t\"selectors\":       \"Selectors define criteria which must be satisfied by a specific device in order for that device to be considered for this request. All selectors must be satisfied for a device to be considered.\",\n\t\"allocationMode\":  \"AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are:\\n\\n- ExactCount: This request is for a specific number of devices.\\n  This is the default. The exact number is provided in the\\n  count field.\\n\\n- All: This request is for all of the matching devices in a pool.\\n  Allocation will fail if some devices are already allocated,\\n  unless adminAccess is requested.\\n\\nIf AlloctionMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other requests must specify this field.\\n\\nMore modes may get added in the future. Clients must refuse to handle requests with unknown modes.\",\n\t\"count\":           \"Count is used only when the count mode is \\\"ExactCount\\\". Must be greater than zero. If AllocationMode is ExactCount and this field is not specified, the default is one.\",\n\t\"adminAccess\":     \"AdminAccess indicates that this is a claim for administrative access to the device(s). Claims with AdminAccess are expected to be used for monitoring or other management services for a device.  They ignore all ordinary claims to the device with respect to access modes and any resource allocations.\\n\\nThis is an alpha field and requires enabling the DRAAdminAccess feature gate. Admin access is disabled if this field is unset or set to false, otherwise it is enabled.\",\n}\n\nfunc (DeviceRequest) SwaggerDoc() map[string]string {\n\treturn map_DeviceRequest\n}\n\nvar map_DeviceRequestAllocationResult = map[string]string{\n\t\"\":            \"DeviceRequestAllocationResult contains the allocation result for one request.\",\n\t\"request\":     \"Request is the name of the request in the claim which caused this device to be allocated. Multiple devices may have been allocated per request.\",\n\t\"driver\":      \"Driver specifies the name of the DRA driver whose kubelet plugin should be invoked to process the allocation once the claim is needed on a node.\\n\\nMust be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.\",\n\t\"pool\":        \"This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`).\\n\\nMust not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes.\",\n\t\"device\":      \"Device references one device instance via its name in the driver's resource pool. It must be a DNS label.\",\n\t\"adminAccess\": \"AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode.\\n\\nThis is an alpha field and requires enabling the DRAAdminAccess feature gate. Admin access is disabled if this field is unset or set to false, otherwise it is enabled.\",\n}\n\nfunc (DeviceRequestAllocationResult) SwaggerDoc() map[string]string {\n\treturn map_DeviceRequestAllocationResult\n}\n\nvar map_DeviceSelector = map[string]string{\n\t\"\":    \"DeviceSelector must have exactly one field set.\",\n\t\"cel\": \"CEL contains a CEL expression for selecting a device.\",\n}\n\nfunc (DeviceSelector) SwaggerDoc() map[string]string {\n\treturn map_DeviceSelector\n}\n\nvar map_NetworkDeviceData = map[string]string{\n\t\"\":                \"NetworkDeviceData provides network-related details for the allocated device. This information may be filled by drivers or other components to configure or identify the device within a network context.\",\n\t\"interfaceName\":   \"InterfaceName specifies the name of the network interface associated with the allocated device. This might be the name of a physical or virtual network interface being configured in the pod.\\n\\nMust not be longer than 256 characters.\",\n\t\"ips\":             \"IPs lists the network addresses assigned to the device's network interface. This can include both IPv4 and IPv6 addresses. The IPs are in the CIDR notation, which includes both the address and the associated subnet mask. e.g.: \\\"192.0.2.5/24\\\" for IPv4 and \\\"2001:db8::5/64\\\" for IPv6.\",\n\t\"hardwareAddress\": \"HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface.\\n\\nMust not be longer than 128 characters.\",\n}\n\nfunc (NetworkDeviceData) SwaggerDoc() map[string]string {\n\treturn map_NetworkDeviceData\n}\n\nvar map_OpaqueDeviceConfiguration = map[string]string{\n\t\"\":           \"OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor.\",\n\t\"driver\":     \"Driver is used to determine which kubelet plugin needs to be passed these configuration parameters.\\n\\nAn admission policy provided by the driver developer could use this to decide whether it needs to validate them.\\n\\nMust be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.\",\n\t\"parameters\": \"Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version (\\\"kind\\\" + \\\"apiVersion\\\" for Kubernetes types), with conversion between different versions.\\n\\nThe length of the raw data must be smaller or equal to 10 Ki.\",\n}\n\nfunc (OpaqueDeviceConfiguration) SwaggerDoc() map[string]string {\n\treturn map_OpaqueDeviceConfiguration\n}\n\nvar map_ResourceClaim = map[string]string{\n\t\"\":         \"ResourceClaim describes a request for access to resources in the cluster, for use by workloads. For example, if a workload needs an accelerator device with specific properties, this is how that request is expressed. The status stanza tracks whether this claim has been satisfied and what specific resources have been allocated.\\n\\nThis is an alpha type and requires enabling the DynamicResourceAllocation feature gate.\",\n\t\"metadata\": \"Standard object metadata\",\n\t\"spec\":     \"Spec describes what is being requested and how to configure it. The spec is immutable.\",\n\t\"status\":   \"Status describes whether the claim is ready to use and what has been allocated.\",\n}\n\nfunc (ResourceClaim) SwaggerDoc() map[string]string {\n\treturn map_ResourceClaim\n}\n\nvar map_ResourceClaimConsumerReference = map[string]string{\n\t\"\":         \"ResourceClaimConsumerReference contains enough information to let you locate the consumer of a ResourceClaim. The user must be a resource in the same namespace as the ResourceClaim.\",\n\t\"apiGroup\": \"APIGroup is the group for the resource being referenced. It is empty for the core API. This matches the group in the APIVersion that is used when creating the resources.\",\n\t\"resource\": \"Resource is the type of resource being referenced, for example \\\"pods\\\".\",\n\t\"name\":     \"Name is the name of resource being referenced.\",\n\t\"uid\":      \"UID identifies exactly one incarnation of the resource.\",\n}\n\nfunc (ResourceClaimConsumerReference) SwaggerDoc() map[string]string {\n\treturn map_ResourceClaimConsumerReference\n}\n\nvar map_ResourceClaimList = map[string]string{\n\t\"\":         \"ResourceClaimList is a collection of claims.\",\n\t\"metadata\": \"Standard list metadata\",\n\t\"items\":    \"Items is the list of resource claims.\",\n}\n\nfunc (ResourceClaimList) SwaggerDoc() map[string]string {\n\treturn map_ResourceClaimList\n}\n\nvar map_ResourceClaimSpec = map[string]string{\n\t\"\":        \"ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it.\",\n\t\"devices\": \"Devices defines how to request devices.\",\n}\n\nfunc (ResourceClaimSpec) SwaggerDoc() map[string]string {\n\treturn map_ResourceClaimSpec\n}\n\nvar map_ResourceClaimStatus = map[string]string{\n\t\"\":            \"ResourceClaimStatus tracks whether the resource has been allocated and what the result of that was.\",\n\t\"allocation\":  \"Allocation is set once the claim has been allocated successfully.\",\n\t\"reservedFor\": \"ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated.\\n\\nIn a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled.\\n\\nBoth schedulers try to add their pod to the claim.status.reservedFor field, but only the update that reaches the API server first gets stored. The other one fails with an error and the scheduler which issued it knows that it must put the pod back into the queue, waiting for the ResourceClaim to become usable again.\\n\\nThere can be at most 256 such reservations. This may get increased in the future, but not reduced.\",\n\t\"devices\":     \"Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers.\",\n}\n\nfunc (ResourceClaimStatus) SwaggerDoc() map[string]string {\n\treturn map_ResourceClaimStatus\n}\n\nvar map_ResourceClaimTemplate = map[string]string{\n\t\"\":         \"ResourceClaimTemplate is used to produce ResourceClaim objects.\\n\\nThis is an alpha type and requires enabling the DynamicResourceAllocation feature gate.\",\n\t\"metadata\": \"Standard object metadata\",\n\t\"spec\":     \"Describes the ResourceClaim that is to be generated.\\n\\nThis field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore.\",\n}\n\nfunc (ResourceClaimTemplate) SwaggerDoc() map[string]string {\n\treturn map_ResourceClaimTemplate\n}\n\nvar map_ResourceClaimTemplateList = map[string]string{\n\t\"\":         \"ResourceClaimTemplateList is a collection of claim templates.\",\n\t\"metadata\": \"Standard list metadata\",\n\t\"items\":    \"Items is the list of resource claim templates.\",\n}\n\nfunc (ResourceClaimTemplateList) SwaggerDoc() map[string]string {\n\treturn map_ResourceClaimTemplateList\n}\n\nvar map_ResourceClaimTemplateSpec = map[string]string{\n\t\"\":         \"ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim.\",\n\t\"metadata\": \"ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation.\",\n\t\"spec\":     \"Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here.\",\n}\n\nfunc (ResourceClaimTemplateSpec) SwaggerDoc() map[string]string {\n\treturn map_ResourceClaimTemplateSpec\n}\n\nvar map_ResourcePool = map[string]string{\n\t\"\":                   \"ResourcePool describes the pool that ResourceSlices belong to.\",\n\t\"name\":               \"Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required.\\n\\nIt must not be longer than 253 characters and must consist of one or more DNS sub-domains separated by slashes. This field is immutable.\",\n\t\"generation\":         \"Generation tracks the change in a pool over time. Whenever a driver changes something about one or more of the resources in a pool, it must change the generation in all ResourceSlices which are part of that pool. Consumers of ResourceSlices should only consider resources from the pool with the highest generation number. The generation may be reset by drivers, which should be fine for consumers, assuming that all ResourceSlices in a pool are updated to match or deleted.\\n\\nCombined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state.\",\n\t\"resourceSliceCount\": \"ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero.\\n\\nConsumers can use this to check whether they have seen all ResourceSlices belonging to the same pool.\",\n}\n\nfunc (ResourcePool) SwaggerDoc() map[string]string {\n\treturn map_ResourcePool\n}\n\nvar map_ResourceSlice = map[string]string{\n\t\"\":         \"ResourceSlice represents one or more resources in a pool of similar resources, managed by a common driver. A pool may span more than one ResourceSlice, and exactly how many ResourceSlices comprise a pool is determined by the driver.\\n\\nAt the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple <driver name>, <pool name>, <device name>.\\n\\nWhenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others.\\n\\nWhen allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool.\\n\\nFor resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available.\\n\\nThis is an alpha type and requires enabling the DynamicResourceAllocation feature gate.\",\n\t\"metadata\": \"Standard object metadata\",\n\t\"spec\":     \"Contains the information published by the driver.\\n\\nChanging the spec automatically increments the metadata.generation number.\",\n}\n\nfunc (ResourceSlice) SwaggerDoc() map[string]string {\n\treturn map_ResourceSlice\n}\n\nvar map_ResourceSliceList = map[string]string{\n\t\"\":         \"ResourceSliceList is a collection of ResourceSlices.\",\n\t\"metadata\": \"Standard list metadata\",\n\t\"items\":    \"Items is the list of resource ResourceSlices.\",\n}\n\nfunc (ResourceSliceList) SwaggerDoc() map[string]string {\n\treturn map_ResourceSliceList\n}\n\nvar map_ResourceSliceSpec = map[string]string{\n\t\"\":             \"ResourceSliceSpec contains the information published by the driver in one ResourceSlice.\",\n\t\"driver\":       \"Driver identifies the DRA driver providing the capacity information. A field selector can be used to list only ResourceSlice objects with a certain driver name.\\n\\nMust be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable.\",\n\t\"pool\":         \"Pool describes the pool that this ResourceSlice belongs to.\",\n\t\"nodeName\":     \"NodeName identifies the node which provides the resources in this pool. A field selector can be used to list only ResourceSlice objects belonging to a certain node.\\n\\nThis field can be used to limit access from nodes to ResourceSlices with the same node name. It also indicates to autoscalers that adding new nodes of the same type as some old node might also make new resources available.\\n\\nExactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable.\",\n\t\"nodeSelector\": \"NodeSelector defines which nodes have access to the resources in the pool, when that pool is not limited to a single node.\\n\\nMust use exactly one term.\\n\\nExactly one of NodeName, NodeSelector and AllNodes must be set.\",\n\t\"allNodes\":     \"AllNodes indicates that all nodes have access to the resources in the pool.\\n\\nExactly one of NodeName, NodeSelector and AllNodes must be set.\",\n\t\"devices\":      \"Devices lists some or all of the devices in this pool.\\n\\nMust not have more than 128 entries.\",\n}\n\nfunc (ResourceSliceSpec) SwaggerDoc() map[string]string {\n\treturn map_ResourceSliceSpec\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/resource/v1alpha3/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1alpha3\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *AllocatedDeviceStatus) DeepCopyInto(out *AllocatedDeviceStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]v1.Condition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tin.Data.DeepCopyInto(&out.Data)\n\tif in.NetworkData != nil {\n\t\tin, out := &in.NetworkData, &out.NetworkData\n\t\t*out = new(NetworkDeviceData)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllocatedDeviceStatus.\nfunc (in *AllocatedDeviceStatus) DeepCopy() *AllocatedDeviceStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(AllocatedDeviceStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *AllocationResult) DeepCopyInto(out *AllocationResult) {\n\t*out = *in\n\tin.Devices.DeepCopyInto(&out.Devices)\n\tif in.NodeSelector != nil {\n\t\tin, out := &in.NodeSelector, &out.NodeSelector\n\t\t*out = new(corev1.NodeSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllocationResult.\nfunc (in *AllocationResult) DeepCopy() *AllocationResult {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(AllocationResult)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *BasicDevice) DeepCopyInto(out *BasicDevice) {\n\t*out = *in\n\tif in.Attributes != nil {\n\t\tin, out := &in.Attributes, &out.Attributes\n\t\t*out = make(map[QualifiedName]DeviceAttribute, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = *val.DeepCopy()\n\t\t}\n\t}\n\tif in.Capacity != nil {\n\t\tin, out := &in.Capacity, &out.Capacity\n\t\t*out = make(map[QualifiedName]resource.Quantity, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val.DeepCopy()\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BasicDevice.\nfunc (in *BasicDevice) DeepCopy() *BasicDevice {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(BasicDevice)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CELDeviceSelector) DeepCopyInto(out *CELDeviceSelector) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CELDeviceSelector.\nfunc (in *CELDeviceSelector) DeepCopy() *CELDeviceSelector {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CELDeviceSelector)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Device) DeepCopyInto(out *Device) {\n\t*out = *in\n\tif in.Basic != nil {\n\t\tin, out := &in.Basic, &out.Basic\n\t\t*out = new(BasicDevice)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Device.\nfunc (in *Device) DeepCopy() *Device {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Device)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeviceAllocationConfiguration) DeepCopyInto(out *DeviceAllocationConfiguration) {\n\t*out = *in\n\tif in.Requests != nil {\n\t\tin, out := &in.Requests, &out.Requests\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tin.DeviceConfiguration.DeepCopyInto(&out.DeviceConfiguration)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceAllocationConfiguration.\nfunc (in *DeviceAllocationConfiguration) DeepCopy() *DeviceAllocationConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeviceAllocationConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeviceAllocationResult) DeepCopyInto(out *DeviceAllocationResult) {\n\t*out = *in\n\tif in.Results != nil {\n\t\tin, out := &in.Results, &out.Results\n\t\t*out = make([]DeviceRequestAllocationResult, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Config != nil {\n\t\tin, out := &in.Config, &out.Config\n\t\t*out = make([]DeviceAllocationConfiguration, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceAllocationResult.\nfunc (in *DeviceAllocationResult) DeepCopy() *DeviceAllocationResult {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeviceAllocationResult)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeviceAttribute) DeepCopyInto(out *DeviceAttribute) {\n\t*out = *in\n\tif in.IntValue != nil {\n\t\tin, out := &in.IntValue, &out.IntValue\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.BoolValue != nil {\n\t\tin, out := &in.BoolValue, &out.BoolValue\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.StringValue != nil {\n\t\tin, out := &in.StringValue, &out.StringValue\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.VersionValue != nil {\n\t\tin, out := &in.VersionValue, &out.VersionValue\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceAttribute.\nfunc (in *DeviceAttribute) DeepCopy() *DeviceAttribute {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeviceAttribute)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeviceClaim) DeepCopyInto(out *DeviceClaim) {\n\t*out = *in\n\tif in.Requests != nil {\n\t\tin, out := &in.Requests, &out.Requests\n\t\t*out = make([]DeviceRequest, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Constraints != nil {\n\t\tin, out := &in.Constraints, &out.Constraints\n\t\t*out = make([]DeviceConstraint, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Config != nil {\n\t\tin, out := &in.Config, &out.Config\n\t\t*out = make([]DeviceClaimConfiguration, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceClaim.\nfunc (in *DeviceClaim) DeepCopy() *DeviceClaim {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeviceClaim)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeviceClaimConfiguration) DeepCopyInto(out *DeviceClaimConfiguration) {\n\t*out = *in\n\tif in.Requests != nil {\n\t\tin, out := &in.Requests, &out.Requests\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tin.DeviceConfiguration.DeepCopyInto(&out.DeviceConfiguration)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceClaimConfiguration.\nfunc (in *DeviceClaimConfiguration) DeepCopy() *DeviceClaimConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeviceClaimConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeviceClass) DeepCopyInto(out *DeviceClass) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceClass.\nfunc (in *DeviceClass) DeepCopy() *DeviceClass {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeviceClass)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *DeviceClass) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeviceClassConfiguration) DeepCopyInto(out *DeviceClassConfiguration) {\n\t*out = *in\n\tin.DeviceConfiguration.DeepCopyInto(&out.DeviceConfiguration)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceClassConfiguration.\nfunc (in *DeviceClassConfiguration) DeepCopy() *DeviceClassConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeviceClassConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeviceClassList) DeepCopyInto(out *DeviceClassList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]DeviceClass, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceClassList.\nfunc (in *DeviceClassList) DeepCopy() *DeviceClassList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeviceClassList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *DeviceClassList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeviceClassSpec) DeepCopyInto(out *DeviceClassSpec) {\n\t*out = *in\n\tif in.Selectors != nil {\n\t\tin, out := &in.Selectors, &out.Selectors\n\t\t*out = make([]DeviceSelector, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Config != nil {\n\t\tin, out := &in.Config, &out.Config\n\t\t*out = make([]DeviceClassConfiguration, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceClassSpec.\nfunc (in *DeviceClassSpec) DeepCopy() *DeviceClassSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeviceClassSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeviceConfiguration) DeepCopyInto(out *DeviceConfiguration) {\n\t*out = *in\n\tif in.Opaque != nil {\n\t\tin, out := &in.Opaque, &out.Opaque\n\t\t*out = new(OpaqueDeviceConfiguration)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceConfiguration.\nfunc (in *DeviceConfiguration) DeepCopy() *DeviceConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeviceConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeviceConstraint) DeepCopyInto(out *DeviceConstraint) {\n\t*out = *in\n\tif in.Requests != nil {\n\t\tin, out := &in.Requests, &out.Requests\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.MatchAttribute != nil {\n\t\tin, out := &in.MatchAttribute, &out.MatchAttribute\n\t\t*out = new(FullyQualifiedName)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceConstraint.\nfunc (in *DeviceConstraint) DeepCopy() *DeviceConstraint {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeviceConstraint)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeviceRequest) DeepCopyInto(out *DeviceRequest) {\n\t*out = *in\n\tif in.Selectors != nil {\n\t\tin, out := &in.Selectors, &out.Selectors\n\t\t*out = make([]DeviceSelector, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.AdminAccess != nil {\n\t\tin, out := &in.AdminAccess, &out.AdminAccess\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceRequest.\nfunc (in *DeviceRequest) DeepCopy() *DeviceRequest {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeviceRequest)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeviceRequestAllocationResult) DeepCopyInto(out *DeviceRequestAllocationResult) {\n\t*out = *in\n\tif in.AdminAccess != nil {\n\t\tin, out := &in.AdminAccess, &out.AdminAccess\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceRequestAllocationResult.\nfunc (in *DeviceRequestAllocationResult) DeepCopy() *DeviceRequestAllocationResult {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeviceRequestAllocationResult)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeviceSelector) DeepCopyInto(out *DeviceSelector) {\n\t*out = *in\n\tif in.CEL != nil {\n\t\tin, out := &in.CEL, &out.CEL\n\t\t*out = new(CELDeviceSelector)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceSelector.\nfunc (in *DeviceSelector) DeepCopy() *DeviceSelector {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeviceSelector)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NetworkDeviceData) DeepCopyInto(out *NetworkDeviceData) {\n\t*out = *in\n\tif in.IPs != nil {\n\t\tin, out := &in.IPs, &out.IPs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkDeviceData.\nfunc (in *NetworkDeviceData) DeepCopy() *NetworkDeviceData {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NetworkDeviceData)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *OpaqueDeviceConfiguration) DeepCopyInto(out *OpaqueDeviceConfiguration) {\n\t*out = *in\n\tin.Parameters.DeepCopyInto(&out.Parameters)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpaqueDeviceConfiguration.\nfunc (in *OpaqueDeviceConfiguration) DeepCopy() *OpaqueDeviceConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(OpaqueDeviceConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceClaim) DeepCopyInto(out *ResourceClaim) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceClaim.\nfunc (in *ResourceClaim) DeepCopy() *ResourceClaim {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceClaim)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ResourceClaim) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceClaimConsumerReference) DeepCopyInto(out *ResourceClaimConsumerReference) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceClaimConsumerReference.\nfunc (in *ResourceClaimConsumerReference) DeepCopy() *ResourceClaimConsumerReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceClaimConsumerReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceClaimList) DeepCopyInto(out *ResourceClaimList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ResourceClaim, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceClaimList.\nfunc (in *ResourceClaimList) DeepCopy() *ResourceClaimList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceClaimList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ResourceClaimList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceClaimSpec) DeepCopyInto(out *ResourceClaimSpec) {\n\t*out = *in\n\tin.Devices.DeepCopyInto(&out.Devices)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceClaimSpec.\nfunc (in *ResourceClaimSpec) DeepCopy() *ResourceClaimSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceClaimSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceClaimStatus) DeepCopyInto(out *ResourceClaimStatus) {\n\t*out = *in\n\tif in.Allocation != nil {\n\t\tin, out := &in.Allocation, &out.Allocation\n\t\t*out = new(AllocationResult)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ReservedFor != nil {\n\t\tin, out := &in.ReservedFor, &out.ReservedFor\n\t\t*out = make([]ResourceClaimConsumerReference, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Devices != nil {\n\t\tin, out := &in.Devices, &out.Devices\n\t\t*out = make([]AllocatedDeviceStatus, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceClaimStatus.\nfunc (in *ResourceClaimStatus) DeepCopy() *ResourceClaimStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceClaimStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceClaimTemplate) DeepCopyInto(out *ResourceClaimTemplate) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceClaimTemplate.\nfunc (in *ResourceClaimTemplate) DeepCopy() *ResourceClaimTemplate {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceClaimTemplate)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ResourceClaimTemplate) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceClaimTemplateList) DeepCopyInto(out *ResourceClaimTemplateList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ResourceClaimTemplate, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceClaimTemplateList.\nfunc (in *ResourceClaimTemplateList) DeepCopy() *ResourceClaimTemplateList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceClaimTemplateList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ResourceClaimTemplateList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceClaimTemplateSpec) DeepCopyInto(out *ResourceClaimTemplateSpec) {\n\t*out = *in\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceClaimTemplateSpec.\nfunc (in *ResourceClaimTemplateSpec) DeepCopy() *ResourceClaimTemplateSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceClaimTemplateSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourcePool) DeepCopyInto(out *ResourcePool) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourcePool.\nfunc (in *ResourcePool) DeepCopy() *ResourcePool {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourcePool)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceSlice) DeepCopyInto(out *ResourceSlice) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceSlice.\nfunc (in *ResourceSlice) DeepCopy() *ResourceSlice {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceSlice)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ResourceSlice) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceSliceList) DeepCopyInto(out *ResourceSliceList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ResourceSlice, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceSliceList.\nfunc (in *ResourceSliceList) DeepCopy() *ResourceSliceList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceSliceList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ResourceSliceList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceSliceSpec) DeepCopyInto(out *ResourceSliceSpec) {\n\t*out = *in\n\tout.Pool = in.Pool\n\tif in.NodeSelector != nil {\n\t\tin, out := &in.NodeSelector, &out.NodeSelector\n\t\t*out = new(corev1.NodeSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Devices != nil {\n\t\tin, out := &in.Devices, &out.Devices\n\t\t*out = make([]Device, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceSliceSpec.\nfunc (in *ResourceSliceSpec) DeepCopy() *ResourceSliceSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceSliceSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/resource/v1alpha3/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1alpha3\n\nimport (\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *DeviceClass) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 31\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *DeviceClass) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 34\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *DeviceClass) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"resource.k8s.io\", Version: \"v1beta1\", Kind: \"DeviceClass\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *DeviceClass) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 37\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *DeviceClassList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 31\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *DeviceClassList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 34\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *DeviceClassList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"resource.k8s.io\", Version: \"v1beta1\", Kind: \"DeviceClassList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *DeviceClassList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 37\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ResourceClaim) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 31\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ResourceClaim) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 34\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *ResourceClaim) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"resource.k8s.io\", Version: \"v1beta1\", Kind: \"ResourceClaim\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ResourceClaim) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 37\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ResourceClaimList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 31\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ResourceClaimList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 34\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *ResourceClaimList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"resource.k8s.io\", Version: \"v1beta1\", Kind: \"ResourceClaimList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ResourceClaimList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 37\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ResourceClaimTemplate) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 31\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ResourceClaimTemplate) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 34\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *ResourceClaimTemplate) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"resource.k8s.io\", Version: \"v1beta1\", Kind: \"ResourceClaimTemplate\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ResourceClaimTemplate) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 37\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ResourceClaimTemplateList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 31\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ResourceClaimTemplateList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 34\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *ResourceClaimTemplateList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"resource.k8s.io\", Version: \"v1beta1\", Kind: \"ResourceClaimTemplateList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ResourceClaimTemplateList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 37\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ResourceSlice) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 31\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ResourceSlice) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 34\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *ResourceSlice) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"resource.k8s.io\", Version: \"v1beta1\", Kind: \"ResourceSlice\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ResourceSlice) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 37\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ResourceSliceList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 31\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ResourceSliceList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 34\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *ResourceSliceList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"resource.k8s.io\", Version: \"v1beta1\", Kind: \"ResourceSliceList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ResourceSliceList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 37\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/resource/v1beta1/doc.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:openapi-gen=true\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:prerelease-lifecycle-gen=true\n// +groupName=resource.k8s.io\n\n// Package v1beta1 is the v1beta1 version of the resource API.\npackage v1beta1 // import \"k8s.io/api/resource/v1beta1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/resource/v1beta1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/resource/v1beta1/generated.proto\n\npackage v1beta1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\tv11 \"k8s.io/api/core/v1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n\n\tk8s_io_apimachinery_pkg_types \"k8s.io/apimachinery/pkg/types\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *AllocatedDeviceStatus) Reset()      { *m = AllocatedDeviceStatus{} }\nfunc (*AllocatedDeviceStatus) ProtoMessage() {}\nfunc (*AllocatedDeviceStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ba331e3ec6484c27, []int{0}\n}\nfunc (m *AllocatedDeviceStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *AllocatedDeviceStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *AllocatedDeviceStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_AllocatedDeviceStatus.Merge(m, src)\n}\nfunc (m *AllocatedDeviceStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *AllocatedDeviceStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_AllocatedDeviceStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_AllocatedDeviceStatus proto.InternalMessageInfo\n\nfunc (m *AllocationResult) Reset()      { *m = AllocationResult{} }\nfunc (*AllocationResult) ProtoMessage() {}\nfunc (*AllocationResult) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ba331e3ec6484c27, []int{1}\n}\nfunc (m *AllocationResult) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *AllocationResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *AllocationResult) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_AllocationResult.Merge(m, src)\n}\nfunc (m *AllocationResult) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *AllocationResult) XXX_DiscardUnknown() {\n\txxx_messageInfo_AllocationResult.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_AllocationResult proto.InternalMessageInfo\n\nfunc (m *BasicDevice) Reset()      { *m = BasicDevice{} }\nfunc (*BasicDevice) ProtoMessage() {}\nfunc (*BasicDevice) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ba331e3ec6484c27, []int{2}\n}\nfunc (m *BasicDevice) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *BasicDevice) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *BasicDevice) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_BasicDevice.Merge(m, src)\n}\nfunc (m *BasicDevice) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *BasicDevice) XXX_DiscardUnknown() {\n\txxx_messageInfo_BasicDevice.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_BasicDevice proto.InternalMessageInfo\n\nfunc (m *CELDeviceSelector) Reset()      { *m = CELDeviceSelector{} }\nfunc (*CELDeviceSelector) ProtoMessage() {}\nfunc (*CELDeviceSelector) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ba331e3ec6484c27, []int{3}\n}\nfunc (m *CELDeviceSelector) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CELDeviceSelector) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CELDeviceSelector) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CELDeviceSelector.Merge(m, src)\n}\nfunc (m *CELDeviceSelector) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CELDeviceSelector) XXX_DiscardUnknown() {\n\txxx_messageInfo_CELDeviceSelector.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CELDeviceSelector proto.InternalMessageInfo\n\nfunc (m *Device) Reset()      { *m = Device{} }\nfunc (*Device) ProtoMessage() {}\nfunc (*Device) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ba331e3ec6484c27, []int{4}\n}\nfunc (m *Device) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Device) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Device) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Device.Merge(m, src)\n}\nfunc (m *Device) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Device) XXX_DiscardUnknown() {\n\txxx_messageInfo_Device.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Device proto.InternalMessageInfo\n\nfunc (m *DeviceAllocationConfiguration) Reset()      { *m = DeviceAllocationConfiguration{} }\nfunc (*DeviceAllocationConfiguration) ProtoMessage() {}\nfunc (*DeviceAllocationConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ba331e3ec6484c27, []int{5}\n}\nfunc (m *DeviceAllocationConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeviceAllocationConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeviceAllocationConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeviceAllocationConfiguration.Merge(m, src)\n}\nfunc (m *DeviceAllocationConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeviceAllocationConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeviceAllocationConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeviceAllocationConfiguration proto.InternalMessageInfo\n\nfunc (m *DeviceAllocationResult) Reset()      { *m = DeviceAllocationResult{} }\nfunc (*DeviceAllocationResult) ProtoMessage() {}\nfunc (*DeviceAllocationResult) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ba331e3ec6484c27, []int{6}\n}\nfunc (m *DeviceAllocationResult) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeviceAllocationResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeviceAllocationResult) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeviceAllocationResult.Merge(m, src)\n}\nfunc (m *DeviceAllocationResult) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeviceAllocationResult) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeviceAllocationResult.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeviceAllocationResult proto.InternalMessageInfo\n\nfunc (m *DeviceAttribute) Reset()      { *m = DeviceAttribute{} }\nfunc (*DeviceAttribute) ProtoMessage() {}\nfunc (*DeviceAttribute) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ba331e3ec6484c27, []int{7}\n}\nfunc (m *DeviceAttribute) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeviceAttribute) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeviceAttribute) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeviceAttribute.Merge(m, src)\n}\nfunc (m *DeviceAttribute) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeviceAttribute) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeviceAttribute.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeviceAttribute proto.InternalMessageInfo\n\nfunc (m *DeviceCapacity) Reset()      { *m = DeviceCapacity{} }\nfunc (*DeviceCapacity) ProtoMessage() {}\nfunc (*DeviceCapacity) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ba331e3ec6484c27, []int{8}\n}\nfunc (m *DeviceCapacity) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeviceCapacity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeviceCapacity) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeviceCapacity.Merge(m, src)\n}\nfunc (m *DeviceCapacity) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeviceCapacity) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeviceCapacity.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeviceCapacity proto.InternalMessageInfo\n\nfunc (m *DeviceClaim) Reset()      { *m = DeviceClaim{} }\nfunc (*DeviceClaim) ProtoMessage() {}\nfunc (*DeviceClaim) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ba331e3ec6484c27, []int{9}\n}\nfunc (m *DeviceClaim) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeviceClaim) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeviceClaim) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeviceClaim.Merge(m, src)\n}\nfunc (m *DeviceClaim) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeviceClaim) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeviceClaim.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeviceClaim proto.InternalMessageInfo\n\nfunc (m *DeviceClaimConfiguration) Reset()      { *m = DeviceClaimConfiguration{} }\nfunc (*DeviceClaimConfiguration) ProtoMessage() {}\nfunc (*DeviceClaimConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ba331e3ec6484c27, []int{10}\n}\nfunc (m *DeviceClaimConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeviceClaimConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeviceClaimConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeviceClaimConfiguration.Merge(m, src)\n}\nfunc (m *DeviceClaimConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeviceClaimConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeviceClaimConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeviceClaimConfiguration proto.InternalMessageInfo\n\nfunc (m *DeviceClass) Reset()      { *m = DeviceClass{} }\nfunc (*DeviceClass) ProtoMessage() {}\nfunc (*DeviceClass) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ba331e3ec6484c27, []int{11}\n}\nfunc (m *DeviceClass) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeviceClass) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeviceClass) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeviceClass.Merge(m, src)\n}\nfunc (m *DeviceClass) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeviceClass) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeviceClass.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeviceClass proto.InternalMessageInfo\n\nfunc (m *DeviceClassConfiguration) Reset()      { *m = DeviceClassConfiguration{} }\nfunc (*DeviceClassConfiguration) ProtoMessage() {}\nfunc (*DeviceClassConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ba331e3ec6484c27, []int{12}\n}\nfunc (m *DeviceClassConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeviceClassConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeviceClassConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeviceClassConfiguration.Merge(m, src)\n}\nfunc (m *DeviceClassConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeviceClassConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeviceClassConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeviceClassConfiguration proto.InternalMessageInfo\n\nfunc (m *DeviceClassList) Reset()      { *m = DeviceClassList{} }\nfunc (*DeviceClassList) ProtoMessage() {}\nfunc (*DeviceClassList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ba331e3ec6484c27, []int{13}\n}\nfunc (m *DeviceClassList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeviceClassList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeviceClassList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeviceClassList.Merge(m, src)\n}\nfunc (m *DeviceClassList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeviceClassList) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeviceClassList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeviceClassList proto.InternalMessageInfo\n\nfunc (m *DeviceClassSpec) Reset()      { *m = DeviceClassSpec{} }\nfunc (*DeviceClassSpec) ProtoMessage() {}\nfunc (*DeviceClassSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ba331e3ec6484c27, []int{14}\n}\nfunc (m *DeviceClassSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeviceClassSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeviceClassSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeviceClassSpec.Merge(m, src)\n}\nfunc (m *DeviceClassSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeviceClassSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeviceClassSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeviceClassSpec proto.InternalMessageInfo\n\nfunc (m *DeviceConfiguration) Reset()      { *m = DeviceConfiguration{} }\nfunc (*DeviceConfiguration) ProtoMessage() {}\nfunc (*DeviceConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ba331e3ec6484c27, []int{15}\n}\nfunc (m *DeviceConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeviceConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeviceConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeviceConfiguration.Merge(m, src)\n}\nfunc (m *DeviceConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeviceConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeviceConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeviceConfiguration proto.InternalMessageInfo\n\nfunc (m *DeviceConstraint) Reset()      { *m = DeviceConstraint{} }\nfunc (*DeviceConstraint) ProtoMessage() {}\nfunc (*DeviceConstraint) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ba331e3ec6484c27, []int{16}\n}\nfunc (m *DeviceConstraint) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeviceConstraint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeviceConstraint) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeviceConstraint.Merge(m, src)\n}\nfunc (m *DeviceConstraint) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeviceConstraint) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeviceConstraint.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeviceConstraint proto.InternalMessageInfo\n\nfunc (m *DeviceRequest) Reset()      { *m = DeviceRequest{} }\nfunc (*DeviceRequest) ProtoMessage() {}\nfunc (*DeviceRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ba331e3ec6484c27, []int{17}\n}\nfunc (m *DeviceRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeviceRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeviceRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeviceRequest.Merge(m, src)\n}\nfunc (m *DeviceRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeviceRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeviceRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeviceRequest proto.InternalMessageInfo\n\nfunc (m *DeviceRequestAllocationResult) Reset()      { *m = DeviceRequestAllocationResult{} }\nfunc (*DeviceRequestAllocationResult) ProtoMessage() {}\nfunc (*DeviceRequestAllocationResult) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ba331e3ec6484c27, []int{18}\n}\nfunc (m *DeviceRequestAllocationResult) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeviceRequestAllocationResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeviceRequestAllocationResult) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeviceRequestAllocationResult.Merge(m, src)\n}\nfunc (m *DeviceRequestAllocationResult) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeviceRequestAllocationResult) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeviceRequestAllocationResult.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeviceRequestAllocationResult proto.InternalMessageInfo\n\nfunc (m *DeviceSelector) Reset()      { *m = DeviceSelector{} }\nfunc (*DeviceSelector) ProtoMessage() {}\nfunc (*DeviceSelector) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ba331e3ec6484c27, []int{19}\n}\nfunc (m *DeviceSelector) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeviceSelector) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeviceSelector) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeviceSelector.Merge(m, src)\n}\nfunc (m *DeviceSelector) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeviceSelector) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeviceSelector.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeviceSelector proto.InternalMessageInfo\n\nfunc (m *NetworkDeviceData) Reset()      { *m = NetworkDeviceData{} }\nfunc (*NetworkDeviceData) ProtoMessage() {}\nfunc (*NetworkDeviceData) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ba331e3ec6484c27, []int{20}\n}\nfunc (m *NetworkDeviceData) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *NetworkDeviceData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *NetworkDeviceData) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_NetworkDeviceData.Merge(m, src)\n}\nfunc (m *NetworkDeviceData) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *NetworkDeviceData) XXX_DiscardUnknown() {\n\txxx_messageInfo_NetworkDeviceData.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_NetworkDeviceData proto.InternalMessageInfo\n\nfunc (m *OpaqueDeviceConfiguration) Reset()      { *m = OpaqueDeviceConfiguration{} }\nfunc (*OpaqueDeviceConfiguration) ProtoMessage() {}\nfunc (*OpaqueDeviceConfiguration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ba331e3ec6484c27, []int{21}\n}\nfunc (m *OpaqueDeviceConfiguration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *OpaqueDeviceConfiguration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *OpaqueDeviceConfiguration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_OpaqueDeviceConfiguration.Merge(m, src)\n}\nfunc (m *OpaqueDeviceConfiguration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *OpaqueDeviceConfiguration) XXX_DiscardUnknown() {\n\txxx_messageInfo_OpaqueDeviceConfiguration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_OpaqueDeviceConfiguration proto.InternalMessageInfo\n\nfunc (m *ResourceClaim) Reset()      { *m = ResourceClaim{} }\nfunc (*ResourceClaim) ProtoMessage() {}\nfunc (*ResourceClaim) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ba331e3ec6484c27, []int{22}\n}\nfunc (m *ResourceClaim) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceClaim) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceClaim) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceClaim.Merge(m, src)\n}\nfunc (m *ResourceClaim) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceClaim) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceClaim.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceClaim proto.InternalMessageInfo\n\nfunc (m *ResourceClaimConsumerReference) Reset()      { *m = ResourceClaimConsumerReference{} }\nfunc (*ResourceClaimConsumerReference) ProtoMessage() {}\nfunc (*ResourceClaimConsumerReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ba331e3ec6484c27, []int{23}\n}\nfunc (m *ResourceClaimConsumerReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceClaimConsumerReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceClaimConsumerReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceClaimConsumerReference.Merge(m, src)\n}\nfunc (m *ResourceClaimConsumerReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceClaimConsumerReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceClaimConsumerReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceClaimConsumerReference proto.InternalMessageInfo\n\nfunc (m *ResourceClaimList) Reset()      { *m = ResourceClaimList{} }\nfunc (*ResourceClaimList) ProtoMessage() {}\nfunc (*ResourceClaimList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ba331e3ec6484c27, []int{24}\n}\nfunc (m *ResourceClaimList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceClaimList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceClaimList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceClaimList.Merge(m, src)\n}\nfunc (m *ResourceClaimList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceClaimList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceClaimList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceClaimList proto.InternalMessageInfo\n\nfunc (m *ResourceClaimSpec) Reset()      { *m = ResourceClaimSpec{} }\nfunc (*ResourceClaimSpec) ProtoMessage() {}\nfunc (*ResourceClaimSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ba331e3ec6484c27, []int{25}\n}\nfunc (m *ResourceClaimSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceClaimSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceClaimSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceClaimSpec.Merge(m, src)\n}\nfunc (m *ResourceClaimSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceClaimSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceClaimSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceClaimSpec proto.InternalMessageInfo\n\nfunc (m *ResourceClaimStatus) Reset()      { *m = ResourceClaimStatus{} }\nfunc (*ResourceClaimStatus) ProtoMessage() {}\nfunc (*ResourceClaimStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ba331e3ec6484c27, []int{26}\n}\nfunc (m *ResourceClaimStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceClaimStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceClaimStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceClaimStatus.Merge(m, src)\n}\nfunc (m *ResourceClaimStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceClaimStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceClaimStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceClaimStatus proto.InternalMessageInfo\n\nfunc (m *ResourceClaimTemplate) Reset()      { *m = ResourceClaimTemplate{} }\nfunc (*ResourceClaimTemplate) ProtoMessage() {}\nfunc (*ResourceClaimTemplate) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ba331e3ec6484c27, []int{27}\n}\nfunc (m *ResourceClaimTemplate) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceClaimTemplate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceClaimTemplate) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceClaimTemplate.Merge(m, src)\n}\nfunc (m *ResourceClaimTemplate) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceClaimTemplate) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceClaimTemplate.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceClaimTemplate proto.InternalMessageInfo\n\nfunc (m *ResourceClaimTemplateList) Reset()      { *m = ResourceClaimTemplateList{} }\nfunc (*ResourceClaimTemplateList) ProtoMessage() {}\nfunc (*ResourceClaimTemplateList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ba331e3ec6484c27, []int{28}\n}\nfunc (m *ResourceClaimTemplateList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceClaimTemplateList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceClaimTemplateList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceClaimTemplateList.Merge(m, src)\n}\nfunc (m *ResourceClaimTemplateList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceClaimTemplateList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceClaimTemplateList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceClaimTemplateList proto.InternalMessageInfo\n\nfunc (m *ResourceClaimTemplateSpec) Reset()      { *m = ResourceClaimTemplateSpec{} }\nfunc (*ResourceClaimTemplateSpec) ProtoMessage() {}\nfunc (*ResourceClaimTemplateSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ba331e3ec6484c27, []int{29}\n}\nfunc (m *ResourceClaimTemplateSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceClaimTemplateSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceClaimTemplateSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceClaimTemplateSpec.Merge(m, src)\n}\nfunc (m *ResourceClaimTemplateSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceClaimTemplateSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceClaimTemplateSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceClaimTemplateSpec proto.InternalMessageInfo\n\nfunc (m *ResourcePool) Reset()      { *m = ResourcePool{} }\nfunc (*ResourcePool) ProtoMessage() {}\nfunc (*ResourcePool) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ba331e3ec6484c27, []int{30}\n}\nfunc (m *ResourcePool) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourcePool) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourcePool) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourcePool.Merge(m, src)\n}\nfunc (m *ResourcePool) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourcePool) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourcePool.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourcePool proto.InternalMessageInfo\n\nfunc (m *ResourceSlice) Reset()      { *m = ResourceSlice{} }\nfunc (*ResourceSlice) ProtoMessage() {}\nfunc (*ResourceSlice) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ba331e3ec6484c27, []int{31}\n}\nfunc (m *ResourceSlice) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceSlice) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceSlice) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceSlice.Merge(m, src)\n}\nfunc (m *ResourceSlice) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceSlice) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceSlice.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceSlice proto.InternalMessageInfo\n\nfunc (m *ResourceSliceList) Reset()      { *m = ResourceSliceList{} }\nfunc (*ResourceSliceList) ProtoMessage() {}\nfunc (*ResourceSliceList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ba331e3ec6484c27, []int{32}\n}\nfunc (m *ResourceSliceList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceSliceList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceSliceList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceSliceList.Merge(m, src)\n}\nfunc (m *ResourceSliceList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceSliceList) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceSliceList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceSliceList proto.InternalMessageInfo\n\nfunc (m *ResourceSliceSpec) Reset()      { *m = ResourceSliceSpec{} }\nfunc (*ResourceSliceSpec) ProtoMessage() {}\nfunc (*ResourceSliceSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_ba331e3ec6484c27, []int{33}\n}\nfunc (m *ResourceSliceSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ResourceSliceSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ResourceSliceSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ResourceSliceSpec.Merge(m, src)\n}\nfunc (m *ResourceSliceSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ResourceSliceSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_ResourceSliceSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ResourceSliceSpec proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*AllocatedDeviceStatus)(nil), \"k8s.io.api.resource.v1beta1.AllocatedDeviceStatus\")\n\tproto.RegisterType((*AllocationResult)(nil), \"k8s.io.api.resource.v1beta1.AllocationResult\")\n\tproto.RegisterType((*BasicDevice)(nil), \"k8s.io.api.resource.v1beta1.BasicDevice\")\n\tproto.RegisterMapType((map[QualifiedName]DeviceAttribute)(nil), \"k8s.io.api.resource.v1beta1.BasicDevice.AttributesEntry\")\n\tproto.RegisterMapType((map[QualifiedName]DeviceCapacity)(nil), \"k8s.io.api.resource.v1beta1.BasicDevice.CapacityEntry\")\n\tproto.RegisterType((*CELDeviceSelector)(nil), \"k8s.io.api.resource.v1beta1.CELDeviceSelector\")\n\tproto.RegisterType((*Device)(nil), \"k8s.io.api.resource.v1beta1.Device\")\n\tproto.RegisterType((*DeviceAllocationConfiguration)(nil), \"k8s.io.api.resource.v1beta1.DeviceAllocationConfiguration\")\n\tproto.RegisterType((*DeviceAllocationResult)(nil), \"k8s.io.api.resource.v1beta1.DeviceAllocationResult\")\n\tproto.RegisterType((*DeviceAttribute)(nil), \"k8s.io.api.resource.v1beta1.DeviceAttribute\")\n\tproto.RegisterType((*DeviceCapacity)(nil), \"k8s.io.api.resource.v1beta1.DeviceCapacity\")\n\tproto.RegisterType((*DeviceClaim)(nil), \"k8s.io.api.resource.v1beta1.DeviceClaim\")\n\tproto.RegisterType((*DeviceClaimConfiguration)(nil), \"k8s.io.api.resource.v1beta1.DeviceClaimConfiguration\")\n\tproto.RegisterType((*DeviceClass)(nil), \"k8s.io.api.resource.v1beta1.DeviceClass\")\n\tproto.RegisterType((*DeviceClassConfiguration)(nil), \"k8s.io.api.resource.v1beta1.DeviceClassConfiguration\")\n\tproto.RegisterType((*DeviceClassList)(nil), \"k8s.io.api.resource.v1beta1.DeviceClassList\")\n\tproto.RegisterType((*DeviceClassSpec)(nil), \"k8s.io.api.resource.v1beta1.DeviceClassSpec\")\n\tproto.RegisterType((*DeviceConfiguration)(nil), \"k8s.io.api.resource.v1beta1.DeviceConfiguration\")\n\tproto.RegisterType((*DeviceConstraint)(nil), \"k8s.io.api.resource.v1beta1.DeviceConstraint\")\n\tproto.RegisterType((*DeviceRequest)(nil), \"k8s.io.api.resource.v1beta1.DeviceRequest\")\n\tproto.RegisterType((*DeviceRequestAllocationResult)(nil), \"k8s.io.api.resource.v1beta1.DeviceRequestAllocationResult\")\n\tproto.RegisterType((*DeviceSelector)(nil), \"k8s.io.api.resource.v1beta1.DeviceSelector\")\n\tproto.RegisterType((*NetworkDeviceData)(nil), \"k8s.io.api.resource.v1beta1.NetworkDeviceData\")\n\tproto.RegisterType((*OpaqueDeviceConfiguration)(nil), \"k8s.io.api.resource.v1beta1.OpaqueDeviceConfiguration\")\n\tproto.RegisterType((*ResourceClaim)(nil), \"k8s.io.api.resource.v1beta1.ResourceClaim\")\n\tproto.RegisterType((*ResourceClaimConsumerReference)(nil), \"k8s.io.api.resource.v1beta1.ResourceClaimConsumerReference\")\n\tproto.RegisterType((*ResourceClaimList)(nil), \"k8s.io.api.resource.v1beta1.ResourceClaimList\")\n\tproto.RegisterType((*ResourceClaimSpec)(nil), \"k8s.io.api.resource.v1beta1.ResourceClaimSpec\")\n\tproto.RegisterType((*ResourceClaimStatus)(nil), \"k8s.io.api.resource.v1beta1.ResourceClaimStatus\")\n\tproto.RegisterType((*ResourceClaimTemplate)(nil), \"k8s.io.api.resource.v1beta1.ResourceClaimTemplate\")\n\tproto.RegisterType((*ResourceClaimTemplateList)(nil), \"k8s.io.api.resource.v1beta1.ResourceClaimTemplateList\")\n\tproto.RegisterType((*ResourceClaimTemplateSpec)(nil), \"k8s.io.api.resource.v1beta1.ResourceClaimTemplateSpec\")\n\tproto.RegisterType((*ResourcePool)(nil), \"k8s.io.api.resource.v1beta1.ResourcePool\")\n\tproto.RegisterType((*ResourceSlice)(nil), \"k8s.io.api.resource.v1beta1.ResourceSlice\")\n\tproto.RegisterType((*ResourceSliceList)(nil), \"k8s.io.api.resource.v1beta1.ResourceSliceList\")\n\tproto.RegisterType((*ResourceSliceSpec)(nil), \"k8s.io.api.resource.v1beta1.ResourceSliceSpec\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/resource/v1beta1/generated.proto\", fileDescriptor_ba331e3ec6484c27)\n}\n\nvar fileDescriptor_ba331e3ec6484c27 = []byte{\n\t// 2051 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x19, 0x4b, 0x8f, 0x1b, 0x49,\n\t0x79, 0xda, 0xed, 0x79, 0x7d, 0x9e, 0x57, 0x2a, 0x64, 0x71, 0x26, 0xc2, 0x9e, 0x74, 0x24, 0xf0,\n\t0x66, 0xb3, 0xed, 0x8d, 0x81, 0x28, 0xca, 0x5e, 0x70, 0xcf, 0xcc, 0x06, 0x43, 0x32, 0x99, 0xad,\n\t0x61, 0x43, 0xb4, 0x6c, 0x10, 0x35, 0xed, 0x9a, 0x99, 0x66, 0xec, 0x6e, 0xa7, 0xbb, 0x7a, 0xb2,\n\t0x73, 0x40, 0xa0, 0x3d, 0xaf, 0x10, 0x77, 0xc4, 0x85, 0x03, 0x12, 0x12, 0x42, 0xfc, 0x02, 0x90,\n\t0x40, 0x88, 0x88, 0x03, 0xac, 0xe0, 0xb2, 0xe2, 0x60, 0x88, 0xf7, 0x07, 0x70, 0xcf, 0x09, 0x55,\n\t0x75, 0xf5, 0xd3, 0x6e, 0xd3, 0x83, 0x96, 0x51, 0xf6, 0xe6, 0xfe, 0xde, 0xf5, 0xbd, 0xab, 0x0c,\n\t0xaf, 0x1d, 0xdf, 0xf6, 0x74, 0xcb, 0x69, 0x92, 0x81, 0xd5, 0x74, 0xa9, 0xe7, 0xf8, 0xae, 0x49,\n\t0x9b, 0x27, 0x37, 0xf7, 0x29, 0x23, 0x37, 0x9b, 0x87, 0xd4, 0xa6, 0x2e, 0x61, 0xb4, 0xab, 0x0f,\n\t0x5c, 0x87, 0x39, 0xe8, 0x4a, 0x40, 0xac, 0x93, 0x81, 0xa5, 0x87, 0xc4, 0xba, 0x24, 0x5e, 0x7f,\n\t0xfd, 0xd0, 0x62, 0x47, 0xfe, 0xbe, 0x6e, 0x3a, 0xfd, 0xe6, 0xa1, 0x73, 0xe8, 0x34, 0x05, 0xcf,\n\t0xbe, 0x7f, 0x20, 0xbe, 0xc4, 0x87, 0xf8, 0x15, 0xc8, 0x5a, 0xd7, 0x12, 0x8a, 0x4d, 0xc7, 0xe5,\n\t0x4a, 0xb3, 0xfa, 0xd6, 0xbf, 0x12, 0xd3, 0xf4, 0x89, 0x79, 0x64, 0xd9, 0xd4, 0x3d, 0x6d, 0x0e,\n\t0x8e, 0x0f, 0xd3, 0xd6, 0x9e, 0x85, 0xcb, 0x6b, 0xf6, 0x29, 0x23, 0x93, 0x74, 0x35, 0xf3, 0xb8,\n\t0x5c, 0xdf, 0x66, 0x56, 0x7f, 0x5c, 0xcd, 0xad, 0xff, 0xc6, 0xe0, 0x99, 0x47, 0xb4, 0x4f, 0xb2,\n\t0x7c, 0xda, 0xcf, 0x55, 0xb8, 0xd4, 0xee, 0xf5, 0x1c, 0x93, 0xc3, 0xb6, 0xe8, 0x89, 0x65, 0xd2,\n\t0x3d, 0x46, 0x98, 0xef, 0xa1, 0x2f, 0xc2, 0x5c, 0xd7, 0xb5, 0x4e, 0xa8, 0x5b, 0x55, 0x36, 0x94,\n\t0xc6, 0xa2, 0xb1, 0xf2, 0x6c, 0x58, 0x9f, 0x19, 0x0d, 0xeb, 0x73, 0x5b, 0x02, 0x8a, 0x25, 0x16,\n\t0x6d, 0x40, 0x79, 0xe0, 0x38, 0xbd, 0x6a, 0x49, 0x50, 0x2d, 0x49, 0xaa, 0xf2, 0xae, 0xe3, 0xf4,\n\t0xb0, 0xc0, 0x08, 0x49, 0x42, 0x72, 0x55, 0xcd, 0x48, 0x12, 0x50, 0x2c, 0xb1, 0xc8, 0x04, 0x30,\n\t0x1d, 0xbb, 0x6b, 0x31, 0xcb, 0xb1, 0xbd, 0x6a, 0x79, 0x43, 0x6d, 0x54, 0x5a, 0x4d, 0x3d, 0x8e,\n\t0x72, 0x74, 0x30, 0x7d, 0x70, 0x7c, 0xc8, 0x01, 0x9e, 0xce, 0xfd, 0xa7, 0x9f, 0xdc, 0xd4, 0x37,\n\t0x43, 0x3e, 0x03, 0x49, 0xe1, 0x10, 0x81, 0x3c, 0x9c, 0x10, 0x8b, 0x1e, 0x40, 0xb9, 0x4b, 0x18,\n\t0xa9, 0xce, 0x6e, 0x28, 0x8d, 0x4a, 0xeb, 0xf5, 0x5c, 0xf1, 0xd2, 0x6f, 0x3a, 0x26, 0x4f, 0xb7,\n\t0xdf, 0x67, 0xd4, 0xf6, 0xb8, 0xf0, 0xe8, 0x74, 0x5b, 0x84, 0x11, 0x2c, 0x04, 0x21, 0x02, 0x15,\n\t0x9b, 0xb2, 0xa7, 0x8e, 0x7b, 0xcc, 0x81, 0xd5, 0x39, 0x21, 0x57, 0xd7, 0xa7, 0x24, 0xa7, 0xbe,\n\t0x23, 0xe9, 0xc5, 0xb1, 0x39, 0x97, 0xb1, 0x3a, 0x1a, 0xd6, 0x2b, 0x3b, 0xb1, 0x18, 0x9c, 0x94,\n\t0xa9, 0xfd, 0x59, 0x81, 0x35, 0x19, 0x24, 0xcb, 0xb1, 0x31, 0xf5, 0xfc, 0x1e, 0x43, 0xdf, 0x85,\n\t0xf9, 0xc0, 0x6f, 0x9e, 0x08, 0x50, 0xa5, 0xf5, 0xe5, 0xa9, 0x3a, 0x03, 0x65, 0x59, 0x29, 0xc6,\n\t0xaa, 0x3c, 0xd1, 0x7c, 0x80, 0xf7, 0x70, 0x28, 0x14, 0x3d, 0x84, 0x25, 0xdb, 0xe9, 0xd2, 0x3d,\n\t0xda, 0xa3, 0x26, 0x73, 0x5c, 0x11, 0xbb, 0x4a, 0x6b, 0x23, 0xa9, 0x84, 0x57, 0x0a, 0xf7, 0xfe,\n\t0x4e, 0x82, 0xce, 0x58, 0x1b, 0x0d, 0xeb, 0x4b, 0x49, 0x08, 0x4e, 0xc9, 0xd1, 0xfe, 0xa1, 0x42,\n\t0xc5, 0x20, 0x9e, 0x65, 0x06, 0x1a, 0xd1, 0x0f, 0x00, 0x08, 0x63, 0xae, 0xb5, 0xef, 0x33, 0x71,\n\t0x14, 0x1e, 0xf5, 0xdb, 0x53, 0x8f, 0x92, 0xe0, 0xd6, 0xdb, 0x11, 0xeb, 0xb6, 0xcd, 0xdc, 0x53,\n\t0xe3, 0x5a, 0x18, 0xfe, 0x18, 0xf1, 0xc1, 0x3f, 0xeb, 0xcb, 0x6f, 0xfb, 0xa4, 0x67, 0x1d, 0x58,\n\t0xb4, 0xbb, 0x43, 0xfa, 0x14, 0x27, 0x14, 0x22, 0x1f, 0x16, 0x4c, 0x32, 0x20, 0xa6, 0xc5, 0x4e,\n\t0xab, 0x25, 0xa1, 0xfc, 0x56, 0x61, 0xe5, 0x9b, 0x92, 0x31, 0x50, 0x7d, 0x55, 0xaa, 0x5e, 0x08,\n\t0xc1, 0xe3, 0x8a, 0x23, 0x55, 0xeb, 0xc7, 0xb0, 0x9a, 0x31, 0x1d, 0xad, 0x81, 0x7a, 0x4c, 0x4f,\n\t0x83, 0x6a, 0xc3, 0xfc, 0x27, 0x32, 0x60, 0xf6, 0x84, 0xf4, 0x7c, 0x2a, 0x6a, 0xab, 0xd2, 0xba,\n\t0x51, 0x24, 0xc0, 0xa1, 0x50, 0x1c, 0xb0, 0xde, 0x29, 0xdd, 0x56, 0xd6, 0x8f, 0x60, 0x39, 0x65,\n\t0xea, 0x04, 0x55, 0xed, 0xb4, 0xaa, 0xd7, 0x0a, 0xa8, 0x0a, 0x45, 0x26, 0x34, 0x69, 0x77, 0xe1,\n\t0xc2, 0xe6, 0xf6, 0x3d, 0xd9, 0x47, 0x64, 0xc4, 0x51, 0x0b, 0x80, 0xbe, 0x3f, 0x70, 0xa9, 0xc7,\n\t0x6b, 0x48, 0x76, 0x93, 0xa8, 0x4c, 0xb7, 0x23, 0x0c, 0x4e, 0x50, 0x69, 0x3e, 0xc8, 0xee, 0xc0,\n\t0xfb, 0x8b, 0x4d, 0xfa, 0x54, 0xf2, 0x45, 0x15, 0x28, 0xfc, 0x29, 0x30, 0xa8, 0x03, 0xb3, 0xfb,\n\t0x3c, 0x2a, 0xd2, 0xf6, 0x46, 0xd1, 0xf8, 0x19, 0x8b, 0xa3, 0x61, 0x7d, 0x56, 0x00, 0x70, 0x20,\n\t0x41, 0xfb, 0xb0, 0x04, 0x5f, 0xc8, 0x56, 0xca, 0xa6, 0x63, 0x1f, 0x58, 0x87, 0xbe, 0x2b, 0x3e,\n\t0xd0, 0xd7, 0x60, 0x2e, 0x90, 0x28, 0x0d, 0x6a, 0x84, 0xcd, 0x6c, 0x4f, 0x40, 0x5f, 0x0c, 0xeb,\n\t0xaf, 0x64, 0x59, 0x03, 0x0c, 0x96, 0x7c, 0xa8, 0x01, 0x0b, 0x2e, 0x7d, 0xe2, 0x53, 0x8f, 0x79,\n\t0x22, 0xe3, 0x16, 0x8d, 0x25, 0x9e, 0x35, 0x58, 0xc2, 0x70, 0x84, 0x45, 0x3f, 0x84, 0x8b, 0x41,\n\t0x35, 0xa6, 0x4c, 0x90, 0x95, 0xf8, 0x46, 0x91, 0x10, 0x25, 0xf9, 0x8c, 0x2b, 0xd2, 0xd4, 0x8b,\n\t0x13, 0x90, 0x78, 0x92, 0x26, 0xed, 0x13, 0x05, 0x5e, 0x99, 0xdc, 0x38, 0x10, 0x85, 0x79, 0x57,\n\t0xfc, 0x0a, 0x6b, 0xf6, 0x4e, 0x01, 0x7b, 0xe4, 0x19, 0xf3, 0xbb, 0x50, 0xf0, 0xed, 0xe1, 0x50,\n\t0x36, 0xda, 0x87, 0x39, 0x53, 0x98, 0x24, 0x8b, 0xf3, 0xce, 0x99, 0x9a, 0x5c, 0xfa, 0xfc, 0xd1,\n\t0xdc, 0x09, 0xc0, 0x58, 0x4a, 0xd6, 0x7e, 0xa9, 0xc0, 0x6a, 0xa6, 0x7a, 0x50, 0x0d, 0x54, 0xcb,\n\t0x66, 0x22, 0xa3, 0xd4, 0x20, 0x3e, 0x1d, 0x9b, 0x3d, 0xe4, 0x79, 0x8e, 0x39, 0x02, 0x5d, 0x85,\n\t0xf2, 0x3e, 0x9f, 0x7a, 0x3c, 0x16, 0x0b, 0xc6, 0xf2, 0x68, 0x58, 0x5f, 0x34, 0x1c, 0xa7, 0x17,\n\t0x50, 0x08, 0x14, 0xfa, 0x12, 0xcc, 0x79, 0xcc, 0xb5, 0xec, 0xc3, 0x6a, 0x59, 0x64, 0x8a, 0xe8,\n\t0xf1, 0x7b, 0x02, 0x12, 0x90, 0x49, 0x34, 0xba, 0x0e, 0xf3, 0x27, 0xd4, 0x15, 0xc5, 0x31, 0x2b,\n\t0x28, 0x45, 0x0b, 0x7d, 0x18, 0x80, 0x02, 0xd2, 0x90, 0x40, 0xa3, 0xb0, 0x92, 0xae, 0x3e, 0xb4,\n\t0x17, 0x56, 0xae, 0x32, 0x36, 0x79, 0xc6, 0x06, 0x66, 0xec, 0xb1, 0xb7, 0x7d, 0x62, 0x33, 0x8b,\n\t0x9d, 0x1a, 0xcb, 0xd2, 0x29, 0xb3, 0x81, 0xa2, 0x40, 0x96, 0xf6, 0xab, 0x12, 0x54, 0xa4, 0x9e,\n\t0x1e, 0xb1, 0xfa, 0xe8, 0x51, 0x22, 0x67, 0x83, 0x70, 0x5f, 0x2f, 0x1e, 0x6e, 0x63, 0x2d, 0xec,\n\t0x8c, 0x13, 0x72, 0xbc, 0x0b, 0x15, 0xd3, 0xb1, 0x3d, 0xe6, 0x12, 0xcb, 0x96, 0x05, 0x91, 0x1e,\n\t0xcb, 0x53, 0x72, 0x5b, 0x72, 0x19, 0x17, 0xa5, 0xfc, 0x4a, 0x0c, 0xf3, 0x70, 0x52, 0x2c, 0x7a,\n\t0x1c, 0xa5, 0x91, 0x2a, 0x14, 0x7c, 0xb5, 0x88, 0x02, 0x7e, 0xf2, 0x62, 0x19, 0xf4, 0x47, 0x05,\n\t0xaa, 0x79, 0x4c, 0xa9, 0x7a, 0x57, 0xfe, 0x97, 0x7a, 0x2f, 0x9d, 0x5b, 0xbd, 0xff, 0x4e, 0x49,\n\t0x84, 0xdd, 0xf3, 0xd0, 0xf7, 0x60, 0x81, 0x6f, 0x58, 0x62, 0x61, 0x52, 0xc6, 0xac, 0x98, 0xb2,\n\t0x8f, 0x3d, 0xd8, 0xff, 0x3e, 0x35, 0xd9, 0x7d, 0xca, 0x48, 0xdc, 0xe9, 0x63, 0x18, 0x8e, 0xa4,\n\t0xa2, 0x1d, 0x28, 0x7b, 0x03, 0x6a, 0x9e, 0x61, 0xc2, 0x09, 0xcb, 0xf6, 0x06, 0xd4, 0x8c, 0x67,\n\t0x01, 0xff, 0xc2, 0x42, 0x8e, 0xf6, 0xd3, 0x64, 0x24, 0x3c, 0x2f, 0x1d, 0x89, 0x1c, 0xff, 0x2a,\n\t0xe7, 0xe6, 0xdf, 0xdf, 0x46, 0x9d, 0x46, 0x58, 0x77, 0xcf, 0xf2, 0x18, 0x7a, 0x6f, 0xcc, 0xc7,\n\t0x7a, 0x31, 0x1f, 0x73, 0x6e, 0xe1, 0xe1, 0xa8, 0xbc, 0x42, 0x48, 0xc2, 0xbf, 0xf7, 0x61, 0xd6,\n\t0x62, 0xb4, 0x1f, 0x16, 0x56, 0xa3, 0xa8, 0x83, 0xe3, 0xbe, 0xd0, 0xe1, 0xec, 0x38, 0x90, 0xa2,\n\t0xfd, 0x25, 0x7d, 0x00, 0xee, 0x78, 0xf4, 0x1e, 0x2c, 0x7a, 0x72, 0xd4, 0x87, 0xcd, 0xa1, 0xc8,\n\t0xfa, 0x10, 0x2d, 0x8c, 0x17, 0xa4, 0xa6, 0xc5, 0x10, 0xe2, 0xe1, 0x58, 0x60, 0xa2, 0x72, 0x4b,\n\t0x67, 0xa9, 0xdc, 0x4c, 0xe8, 0x73, 0x2b, 0xf7, 0x09, 0x4c, 0x8a, 0x1e, 0x7a, 0x17, 0xe6, 0x9c,\n\t0x01, 0x79, 0x12, 0x75, 0xd5, 0xe9, 0x3b, 0xe1, 0x03, 0x41, 0x3a, 0x29, 0x45, 0x80, 0xab, 0x0c,\n\t0xd0, 0x58, 0x4a, 0xd4, 0x7e, 0xac, 0xc0, 0x5a, 0xb6, 0x85, 0x9d, 0xa1, 0x49, 0xec, 0xc2, 0x4a,\n\t0x9f, 0x30, 0xf3, 0x28, 0x9a, 0x55, 0xf2, 0xe6, 0xd5, 0x18, 0x0d, 0xeb, 0x2b, 0xf7, 0x53, 0x98,\n\t0x17, 0xc3, 0x3a, 0x7a, 0xcb, 0xef, 0xf5, 0x4e, 0xd3, 0x5b, 0x68, 0x86, 0x5f, 0xfb, 0x40, 0x85,\n\t0xe5, 0x54, 0xc3, 0x2e, 0xb0, 0x73, 0xb5, 0x61, 0xb5, 0x1b, 0xfb, 0x9a, 0x23, 0xa4, 0x19, 0x9f,\n\t0x97, 0xc4, 0xc9, 0x34, 0x11, 0x7c, 0x59, 0xfa, 0x74, 0xde, 0xa8, 0x9f, 0x76, 0xde, 0x3c, 0x84,\n\t0x15, 0x12, 0xed, 0x01, 0xf7, 0x9d, 0x2e, 0x95, 0x53, 0x58, 0x97, 0x5c, 0x2b, 0xed, 0x14, 0xf6,\n\t0xc5, 0xb0, 0xfe, 0xb9, 0xec, 0xf6, 0xc0, 0xe1, 0x38, 0x23, 0x05, 0x5d, 0x83, 0x59, 0xd3, 0xf1,\n\t0x6d, 0x26, 0x46, 0xb5, 0x1a, 0x97, 0xc9, 0x26, 0x07, 0xe2, 0x00, 0x87, 0x6e, 0x42, 0x85, 0x74,\n\t0xfb, 0x96, 0xdd, 0x36, 0x4d, 0xea, 0x79, 0xe2, 0x4e, 0xb8, 0x10, 0xcc, 0xff, 0x76, 0x0c, 0xc6,\n\t0x49, 0x1a, 0xed, 0xdf, 0x4a, 0xb8, 0x79, 0xe6, 0x2c, 0x49, 0xe8, 0x55, 0xbe, 0x71, 0x09, 0x94,\n\t0x8c, 0x4b, 0x62, 0x6b, 0x12, 0x60, 0x1c, 0xe2, 0x13, 0x77, 0xf7, 0x52, 0xa1, 0xbb, 0xbb, 0x5a,\n\t0xe0, 0xee, 0x5e, 0x9e, 0x7a, 0x77, 0xcf, 0x9c, 0x78, 0xb6, 0xc0, 0x89, 0xbf, 0x13, 0xae, 0x32,\n\t0xd1, 0x45, 0xa1, 0x03, 0xaa, 0x49, 0x7b, 0x13, 0xba, 0xe0, 0x78, 0x2e, 0x8c, 0xdd, 0x32, 0x8c,\n\t0xf9, 0xd1, 0xb0, 0xae, 0x6e, 0x6e, 0xdf, 0xc3, 0x5c, 0x86, 0xf6, 0x6b, 0x05, 0x2e, 0x8c, 0x5d,\n\t0xb3, 0xd1, 0x9b, 0xb0, 0x6c, 0xd9, 0x8c, 0xba, 0x07, 0xc4, 0xa4, 0x3b, 0x71, 0x82, 0x5f, 0x92,\n\t0x87, 0x5a, 0xee, 0x24, 0x91, 0x38, 0x4d, 0x8b, 0x2e, 0x83, 0x6a, 0x0d, 0xc2, 0x95, 0x5d, 0x68,\n\t0xeb, 0xec, 0x7a, 0x98, 0xc3, 0x78, 0x35, 0x1c, 0x11, 0xb7, 0xfb, 0x94, 0xb8, 0xb4, 0xdd, 0xed,\n\t0xf2, 0x3b, 0x8c, 0x74, 0x69, 0x54, 0x0d, 0x5f, 0x4f, 0xa3, 0x71, 0x96, 0x5e, 0xfb, 0x85, 0x02,\n\t0x97, 0x73, 0xfb, 0x48, 0xe1, 0xc7, 0x18, 0x02, 0x30, 0x20, 0x2e, 0xe9, 0x53, 0x46, 0x5d, 0x4f,\n\t0x0e, 0xd5, 0x33, 0xbe, 0x71, 0x44, 0xf3, 0x7a, 0x37, 0x12, 0x84, 0x13, 0x42, 0xb5, 0x9f, 0x95,\n\t0x60, 0x19, 0xcb, 0x70, 0x04, 0xcb, 0xe1, 0xff, 0x7f, 0x4b, 0xd8, 0x4d, 0x6d, 0x09, 0xd3, 0x33,\n\t0x23, 0x65, 0x5b, 0xde, 0x9e, 0x80, 0x1e, 0xf1, 0xe5, 0x9c, 0x30, 0xdf, 0x2b, 0x74, 0x9b, 0x4a,\n\t0xcb, 0x14, 0x7c, 0x71, 0x08, 0x82, 0x6f, 0x2c, 0xe5, 0x69, 0x23, 0x05, 0x6a, 0x29, 0x7a, 0xde,\n\t0xe5, 0xfd, 0x3e, 0x75, 0x31, 0x3d, 0xa0, 0x2e, 0xb5, 0x4d, 0x8a, 0x6e, 0xc0, 0x02, 0x19, 0x58,\n\t0x77, 0x5d, 0xc7, 0x1f, 0xc8, 0x78, 0x46, 0x23, 0xbc, 0xbd, 0xdb, 0x11, 0x70, 0x1c, 0x51, 0x70,\n\t0xea, 0xd0, 0x20, 0x99, 0x55, 0x89, 0x7d, 0x3a, 0x80, 0xe3, 0x88, 0x22, 0x6a, 0xdd, 0xe5, 0xdc,\n\t0xd6, 0x6d, 0x80, 0xea, 0x5b, 0x5d, 0x79, 0xd5, 0x78, 0x43, 0x12, 0xa8, 0xef, 0x74, 0xb6, 0x5e,\n\t0x0c, 0xeb, 0x57, 0xf3, 0x9e, 0x11, 0xd9, 0xe9, 0x80, 0x7a, 0xfa, 0x3b, 0x9d, 0x2d, 0xcc, 0x99,\n\t0xb5, 0xdf, 0x2b, 0x70, 0x21, 0x75, 0xc8, 0x73, 0x58, 0x65, 0x1e, 0xa4, 0x57, 0x99, 0xeb, 0xc5,\n\t0x23, 0x96, 0xb3, 0xcc, 0x1c, 0x65, 0xce, 0x20, 0xb6, 0x99, 0xbd, 0xec, 0xb3, 0x5a, 0xa3, 0xe8,\n\t0x55, 0x21, 0xff, 0x2d, 0x4d, 0xfb, 0x53, 0x09, 0x2e, 0x4e, 0xc8, 0x21, 0xf4, 0x18, 0x20, 0x1e,\n\t0x2f, 0x52, 0xdf, 0xf4, 0xbb, 0xcf, 0xd8, 0xd5, 0x79, 0x45, 0x3c, 0x76, 0xc5, 0xd0, 0x84, 0x40,\n\t0xe4, 0x42, 0xc5, 0xa5, 0x1e, 0x75, 0x4f, 0x68, 0xf7, 0x2d, 0xc7, 0x95, 0x7e, 0x7b, 0xb3, 0xb8,\n\t0xdf, 0xc6, 0x32, 0x37, 0xbe, 0x69, 0xe1, 0x58, 0x2e, 0x4e, 0x2a, 0x41, 0x8f, 0x63, 0xff, 0x05,\n\t0x2f, 0xb8, 0xad, 0x22, 0xe7, 0x49, 0xbf, 0x3d, 0x4f, 0xf1, 0xe4, 0xdf, 0x15, 0xb8, 0x94, 0xb2,\n\t0xf1, 0x5b, 0xb4, 0x3f, 0xe8, 0x11, 0x46, 0xcf, 0xa1, 0x0b, 0x3d, 0x4a, 0x75, 0xa1, 0x5b, 0xc5,\n\t0xfd, 0x18, 0xda, 0x98, 0x7b, 0x6b, 0xf9, 0x9b, 0x02, 0x97, 0x27, 0x72, 0x9c, 0x43, 0x59, 0x7d,\n\t0x3b, 0x5d, 0x56, 0xad, 0xb3, 0x1f, 0x2b, 0xa7, 0xbc, 0xfe, 0x9a, 0x77, 0x28, 0x51, 0x67, 0x9f,\n\t0xc1, 0xa1, 0xa1, 0xfd, 0x46, 0x81, 0xa5, 0x90, 0x92, 0xef, 0x48, 0x05, 0xf6, 0xe4, 0x16, 0x80,\n\t0xfc, 0xcb, 0x25, 0xbc, 0xc9, 0xab, 0xb1, 0xd9, 0x77, 0x23, 0x0c, 0x4e, 0x50, 0xa1, 0x6f, 0x00,\n\t0x0a, 0x0d, 0xdc, 0xeb, 0x89, 0x55, 0x80, 0xef, 0x9b, 0xaa, 0xe0, 0x5d, 0x97, 0xbc, 0x08, 0x8f,\n\t0x51, 0xe0, 0x09, 0x5c, 0xda, 0x1f, 0x94, 0x78, 0x5a, 0x0b, 0xf0, 0x4b, 0xea, 0x78, 0x61, 0x5b,\n\t0xae, 0xe3, 0x93, 0xe3, 0x46, 0x50, 0xbe, 0xac, 0xe3, 0x46, 0x18, 0x97, 0x53, 0x0f, 0x1f, 0xaa,\n\t0x99, 0x43, 0x88, 0x3a, 0x28, 0xba, 0xd9, 0x7d, 0x33, 0xf1, 0x37, 0x5b, 0xa5, 0xf5, 0x6a, 0x21,\n\t0x6b, 0x78, 0x8e, 0x4e, 0xdc, 0xea, 0x6f, 0xc0, 0x82, 0xed, 0x74, 0x83, 0x15, 0x38, 0xb3, 0x52,\n\t0xec, 0x48, 0x38, 0x8e, 0x28, 0xc6, 0xfe, 0x09, 0x2a, 0x7f, 0x3a, 0xff, 0x04, 0x89, 0x35, 0xa8,\n\t0xd7, 0xe3, 0x04, 0xe1, 0x85, 0x21, 0x5e, 0x83, 0x24, 0x1c, 0x47, 0x14, 0x68, 0x27, 0x1e, 0x2c,\n\t0x73, 0x22, 0x22, 0xd7, 0x0a, 0x0c, 0xe6, 0xfc, 0x49, 0x62, 0xb4, 0x9f, 0x3d, 0xaf, 0xcd, 0x7c,\n\t0xf4, 0xbc, 0x36, 0xf3, 0xf1, 0xf3, 0xda, 0xcc, 0x8f, 0x46, 0x35, 0xe5, 0xd9, 0xa8, 0xa6, 0x7c,\n\t0x34, 0xaa, 0x29, 0x1f, 0x8f, 0x6a, 0xca, 0xbf, 0x46, 0x35, 0xe5, 0x27, 0x9f, 0xd4, 0x66, 0xde,\n\t0xbd, 0x32, 0xe5, 0x1f, 0xe9, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0x26, 0xe2, 0x5c, 0xf8, 0xaf,\n\t0x1e, 0x00, 0x00,\n}\n\nfunc (m *AllocatedDeviceStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *AllocatedDeviceStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *AllocatedDeviceStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.NetworkData != nil {\n\t\t{\n\t\t\tsize, err := m.NetworkData.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x32\n\t}\n\t{\n\t\tsize, err := m.Data.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x2a\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\ti -= len(m.Device)\n\tcopy(dAtA[i:], m.Device)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Device)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Pool)\n\tcopy(dAtA[i:], m.Pool)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Pool)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Driver)\n\tcopy(dAtA[i:], m.Driver)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Driver)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *AllocationResult) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *AllocationResult) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *AllocationResult) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.NodeSelector != nil {\n\t\t{\n\t\t\tsize, err := m.NodeSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\t{\n\t\tsize, err := m.Devices.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *BasicDevice) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *BasicDevice) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *BasicDevice) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Capacity) > 0 {\n\t\tkeysForCapacity := make([]string, 0, len(m.Capacity))\n\t\tfor k := range m.Capacity {\n\t\t\tkeysForCapacity = append(keysForCapacity, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForCapacity)\n\t\tfor iNdEx := len(keysForCapacity) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Capacity[QualifiedName(keysForCapacity[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForCapacity[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForCapacity[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForCapacity[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Attributes) > 0 {\n\t\tkeysForAttributes := make([]string, 0, len(m.Attributes))\n\t\tfor k := range m.Attributes {\n\t\t\tkeysForAttributes = append(keysForAttributes, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAttributes)\n\t\tfor iNdEx := len(keysForAttributes) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Attributes[QualifiedName(keysForAttributes[iNdEx])]\n\t\t\tbaseI := i\n\t\t\t{\n\t\t\t\tsize, err := (&v).MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForAttributes[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForAttributes[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForAttributes[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CELDeviceSelector) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CELDeviceSelector) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CELDeviceSelector) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Expression)\n\tcopy(dAtA[i:], m.Expression)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Expression)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Device) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Device) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Device) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Basic != nil {\n\t\t{\n\t\t\tsize, err := m.Basic.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeviceAllocationConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeviceAllocationConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeviceAllocationConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.DeviceConfiguration.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.Requests) > 0 {\n\t\tfor iNdEx := len(m.Requests) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Requests[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Requests[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Requests[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.Source)\n\tcopy(dAtA[i:], m.Source)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Source)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeviceAllocationResult) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeviceAllocationResult) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeviceAllocationResult) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Config) > 0 {\n\t\tfor iNdEx := len(m.Config) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Config[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Results) > 0 {\n\t\tfor iNdEx := len(m.Results) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Results[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeviceAttribute) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeviceAttribute) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeviceAttribute) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.VersionValue != nil {\n\t\ti -= len(*m.VersionValue)\n\t\tcopy(dAtA[i:], *m.VersionValue)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.VersionValue)))\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.StringValue != nil {\n\t\ti -= len(*m.StringValue)\n\t\tcopy(dAtA[i:], *m.StringValue)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.StringValue)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.BoolValue != nil {\n\t\ti--\n\t\tif *m.BoolValue {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif m.IntValue != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.IntValue))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeviceCapacity) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeviceCapacity) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeviceCapacity) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Value.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeviceClaim) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeviceClaim) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeviceClaim) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Config) > 0 {\n\t\tfor iNdEx := len(m.Config) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Config[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif len(m.Constraints) > 0 {\n\t\tfor iNdEx := len(m.Constraints) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Constraints[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Requests) > 0 {\n\t\tfor iNdEx := len(m.Requests) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Requests[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeviceClaimConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeviceClaimConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeviceClaimConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.DeviceConfiguration.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\tif len(m.Requests) > 0 {\n\t\tfor iNdEx := len(m.Requests) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Requests[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Requests[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Requests[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeviceClass) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeviceClass) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeviceClass) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeviceClassConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeviceClassConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeviceClassConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.DeviceConfiguration.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeviceClassList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeviceClassList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeviceClassList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeviceClassSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeviceClassSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeviceClassSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Config) > 0 {\n\t\tfor iNdEx := len(m.Config) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Config[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Selectors) > 0 {\n\t\tfor iNdEx := len(m.Selectors) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Selectors[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeviceConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeviceConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeviceConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Opaque != nil {\n\t\t{\n\t\t\tsize, err := m.Opaque.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeviceConstraint) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeviceConstraint) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeviceConstraint) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.MatchAttribute != nil {\n\t\ti -= len(*m.MatchAttribute)\n\t\tcopy(dAtA[i:], *m.MatchAttribute)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.MatchAttribute)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif len(m.Requests) > 0 {\n\t\tfor iNdEx := len(m.Requests) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Requests[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Requests[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Requests[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeviceRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeviceRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeviceRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.AdminAccess != nil {\n\t\ti--\n\t\tif *m.AdminAccess {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x30\n\t}\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Count))\n\ti--\n\tdAtA[i] = 0x28\n\ti -= len(m.AllocationMode)\n\tcopy(dAtA[i:], m.AllocationMode)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.AllocationMode)))\n\ti--\n\tdAtA[i] = 0x22\n\tif len(m.Selectors) > 0 {\n\t\tfor iNdEx := len(m.Selectors) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Selectors[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\ti -= len(m.DeviceClassName)\n\tcopy(dAtA[i:], m.DeviceClassName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.DeviceClassName)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeviceRequestAllocationResult) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeviceRequestAllocationResult) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeviceRequestAllocationResult) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.AdminAccess != nil {\n\t\ti--\n\t\tif *m.AdminAccess {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x28\n\t}\n\ti -= len(m.Device)\n\tcopy(dAtA[i:], m.Device)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Device)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Pool)\n\tcopy(dAtA[i:], m.Pool)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Pool)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Driver)\n\tcopy(dAtA[i:], m.Driver)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Driver)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Request)\n\tcopy(dAtA[i:], m.Request)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Request)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeviceSelector) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeviceSelector) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeviceSelector) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.CEL != nil {\n\t\t{\n\t\t\tsize, err := m.CEL.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *NetworkDeviceData) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *NetworkDeviceData) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *NetworkDeviceData) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.HardwareAddress)\n\tcopy(dAtA[i:], m.HardwareAddress)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.HardwareAddress)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.IPs) > 0 {\n\t\tfor iNdEx := len(m.IPs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.IPs[iNdEx])\n\t\t\tcopy(dAtA[i:], m.IPs[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.IPs[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.InterfaceName)\n\tcopy(dAtA[i:], m.InterfaceName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.InterfaceName)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *OpaqueDeviceConfiguration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *OpaqueDeviceConfiguration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *OpaqueDeviceConfiguration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Parameters.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Driver)\n\tcopy(dAtA[i:], m.Driver)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Driver)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceClaim) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceClaim) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceClaim) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceClaimConsumerReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceClaimConsumerReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceClaimConsumerReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.UID)\n\tcopy(dAtA[i:], m.UID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.UID)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Resource)\n\tcopy(dAtA[i:], m.Resource)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Resource)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.APIGroup)\n\tcopy(dAtA[i:], m.APIGroup)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIGroup)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceClaimList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceClaimList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceClaimList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceClaimSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceClaimSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceClaimSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Devices.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceClaimStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceClaimStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceClaimStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Devices) > 0 {\n\t\tfor iNdEx := len(m.Devices) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Devices[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\tif len(m.ReservedFor) > 0 {\n\t\tfor iNdEx := len(m.ReservedFor) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ReservedFor[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif m.Allocation != nil {\n\t\t{\n\t\t\tsize, err := m.Allocation.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceClaimTemplate) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceClaimTemplate) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceClaimTemplate) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceClaimTemplateList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceClaimTemplateList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceClaimTemplateList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceClaimTemplateSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceClaimTemplateSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceClaimTemplateSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourcePool) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourcePool) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourcePool) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ResourceSliceCount))\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Generation))\n\ti--\n\tdAtA[i] = 0x10\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceSlice) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceSlice) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceSlice) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceSliceList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceSliceList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceSliceList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ResourceSliceSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ResourceSliceSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ResourceSliceSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Devices) > 0 {\n\t\tfor iNdEx := len(m.Devices) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Devices[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\ti--\n\tif m.AllNodes {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x28\n\tif m.NodeSelector != nil {\n\t\t{\n\t\t\tsize, err := m.NodeSelector.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\ti -= len(m.NodeName)\n\tcopy(dAtA[i:], m.NodeName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.NodeName)))\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Pool.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Driver)\n\tcopy(dAtA[i:], m.Driver)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Driver)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *AllocatedDeviceStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Driver)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Pool)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Device)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = m.Data.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.NetworkData != nil {\n\t\tl = m.NetworkData.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *AllocationResult) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Devices.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.NodeSelector != nil {\n\t\tl = m.NodeSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *BasicDevice) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Attributes) > 0 {\n\t\tfor k, v := range m.Attributes {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.Capacity) > 0 {\n\t\tfor k, v := range m.Capacity {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tl = v.Size()\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *CELDeviceSelector) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Expression)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *Device) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Basic != nil {\n\t\tl = m.Basic.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *DeviceAllocationConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Source)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Requests) > 0 {\n\t\tfor _, s := range m.Requests {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = m.DeviceConfiguration.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *DeviceAllocationResult) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Results) > 0 {\n\t\tfor _, e := range m.Results {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Config) > 0 {\n\t\tfor _, e := range m.Config {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *DeviceAttribute) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.IntValue != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.IntValue))\n\t}\n\tif m.BoolValue != nil {\n\t\tn += 2\n\t}\n\tif m.StringValue != nil {\n\t\tl = len(*m.StringValue)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.VersionValue != nil {\n\t\tl = len(*m.VersionValue)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *DeviceCapacity) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Value.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *DeviceClaim) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Requests) > 0 {\n\t\tfor _, e := range m.Requests {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Constraints) > 0 {\n\t\tfor _, e := range m.Constraints {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Config) > 0 {\n\t\tfor _, e := range m.Config {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *DeviceClaimConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Requests) > 0 {\n\t\tfor _, s := range m.Requests {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = m.DeviceConfiguration.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *DeviceClass) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *DeviceClassConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.DeviceConfiguration.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *DeviceClassList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *DeviceClassSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Selectors) > 0 {\n\t\tfor _, e := range m.Selectors {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Config) > 0 {\n\t\tfor _, e := range m.Config {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *DeviceConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Opaque != nil {\n\t\tl = m.Opaque.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *DeviceConstraint) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Requests) > 0 {\n\t\tfor _, s := range m.Requests {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.MatchAttribute != nil {\n\t\tl = len(*m.MatchAttribute)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *DeviceRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.DeviceClassName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Selectors) > 0 {\n\t\tfor _, e := range m.Selectors {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.AllocationMode)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.Count))\n\tif m.AdminAccess != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *DeviceRequestAllocationResult) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Request)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Driver)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Pool)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Device)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.AdminAccess != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *DeviceSelector) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.CEL != nil {\n\t\tl = m.CEL.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *NetworkDeviceData) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.InterfaceName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.IPs) > 0 {\n\t\tfor _, s := range m.IPs {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.HardwareAddress)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *OpaqueDeviceConfiguration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Driver)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Parameters.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ResourceClaim) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ResourceClaimConsumerReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.APIGroup)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Resource)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.UID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ResourceClaimList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ResourceClaimSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Devices.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ResourceClaimStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Allocation != nil {\n\t\tl = m.Allocation.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.ReservedFor) > 0 {\n\t\tfor _, e := range m.ReservedFor {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Devices) > 0 {\n\t\tfor _, e := range m.Devices {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ResourceClaimTemplate) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ResourceClaimTemplateList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ResourceClaimTemplateSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ResourcePool) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.Generation))\n\tn += 1 + sovGenerated(uint64(m.ResourceSliceCount))\n\treturn n\n}\n\nfunc (m *ResourceSlice) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ResourceSliceList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ResourceSliceSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Driver)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Pool.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.NodeName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.NodeSelector != nil {\n\t\tl = m.NodeSelector.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 2\n\tif len(m.Devices) > 0 {\n\t\tfor _, e := range m.Devices {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *AllocatedDeviceStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]Condition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&AllocatedDeviceStatus{`,\n\t\t`Driver:` + fmt.Sprintf(\"%v\", this.Driver) + `,`,\n\t\t`Pool:` + fmt.Sprintf(\"%v\", this.Pool) + `,`,\n\t\t`Device:` + fmt.Sprintf(\"%v\", this.Device) + `,`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`Data:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Data), \"RawExtension\", \"runtime.RawExtension\", 1), `&`, ``, 1) + `,`,\n\t\t`NetworkData:` + strings.Replace(this.NetworkData.String(), \"NetworkDeviceData\", \"NetworkDeviceData\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *AllocationResult) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&AllocationResult{`,\n\t\t`Devices:` + strings.Replace(strings.Replace(this.Devices.String(), \"DeviceAllocationResult\", \"DeviceAllocationResult\", 1), `&`, ``, 1) + `,`,\n\t\t`NodeSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.NodeSelector), \"NodeSelector\", \"v11.NodeSelector\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *BasicDevice) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForAttributes := make([]string, 0, len(this.Attributes))\n\tfor k := range this.Attributes {\n\t\tkeysForAttributes = append(keysForAttributes, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAttributes)\n\tmapStringForAttributes := \"map[QualifiedName]DeviceAttribute{\"\n\tfor _, k := range keysForAttributes {\n\t\tmapStringForAttributes += fmt.Sprintf(\"%v: %v,\", k, this.Attributes[QualifiedName(k)])\n\t}\n\tmapStringForAttributes += \"}\"\n\tkeysForCapacity := make([]string, 0, len(this.Capacity))\n\tfor k := range this.Capacity {\n\t\tkeysForCapacity = append(keysForCapacity, string(k))\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForCapacity)\n\tmapStringForCapacity := \"map[QualifiedName]DeviceCapacity{\"\n\tfor _, k := range keysForCapacity {\n\t\tmapStringForCapacity += fmt.Sprintf(\"%v: %v,\", k, this.Capacity[QualifiedName(k)])\n\t}\n\tmapStringForCapacity += \"}\"\n\ts := strings.Join([]string{`&BasicDevice{`,\n\t\t`Attributes:` + mapStringForAttributes + `,`,\n\t\t`Capacity:` + mapStringForCapacity + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CELDeviceSelector) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CELDeviceSelector{`,\n\t\t`Expression:` + fmt.Sprintf(\"%v\", this.Expression) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Device) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Device{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Basic:` + strings.Replace(this.Basic.String(), \"BasicDevice\", \"BasicDevice\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeviceAllocationConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeviceAllocationConfiguration{`,\n\t\t`Source:` + fmt.Sprintf(\"%v\", this.Source) + `,`,\n\t\t`Requests:` + fmt.Sprintf(\"%v\", this.Requests) + `,`,\n\t\t`DeviceConfiguration:` + strings.Replace(strings.Replace(this.DeviceConfiguration.String(), \"DeviceConfiguration\", \"DeviceConfiguration\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeviceAllocationResult) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForResults := \"[]DeviceRequestAllocationResult{\"\n\tfor _, f := range this.Results {\n\t\trepeatedStringForResults += strings.Replace(strings.Replace(f.String(), \"DeviceRequestAllocationResult\", \"DeviceRequestAllocationResult\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForResults += \"}\"\n\trepeatedStringForConfig := \"[]DeviceAllocationConfiguration{\"\n\tfor _, f := range this.Config {\n\t\trepeatedStringForConfig += strings.Replace(strings.Replace(f.String(), \"DeviceAllocationConfiguration\", \"DeviceAllocationConfiguration\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConfig += \"}\"\n\ts := strings.Join([]string{`&DeviceAllocationResult{`,\n\t\t`Results:` + repeatedStringForResults + `,`,\n\t\t`Config:` + repeatedStringForConfig + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeviceAttribute) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeviceAttribute{`,\n\t\t`IntValue:` + valueToStringGenerated(this.IntValue) + `,`,\n\t\t`BoolValue:` + valueToStringGenerated(this.BoolValue) + `,`,\n\t\t`StringValue:` + valueToStringGenerated(this.StringValue) + `,`,\n\t\t`VersionValue:` + valueToStringGenerated(this.VersionValue) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeviceCapacity) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeviceCapacity{`,\n\t\t`Value:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Value), \"Quantity\", \"resource.Quantity\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeviceClaim) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForRequests := \"[]DeviceRequest{\"\n\tfor _, f := range this.Requests {\n\t\trepeatedStringForRequests += strings.Replace(strings.Replace(f.String(), \"DeviceRequest\", \"DeviceRequest\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForRequests += \"}\"\n\trepeatedStringForConstraints := \"[]DeviceConstraint{\"\n\tfor _, f := range this.Constraints {\n\t\trepeatedStringForConstraints += strings.Replace(strings.Replace(f.String(), \"DeviceConstraint\", \"DeviceConstraint\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConstraints += \"}\"\n\trepeatedStringForConfig := \"[]DeviceClaimConfiguration{\"\n\tfor _, f := range this.Config {\n\t\trepeatedStringForConfig += strings.Replace(strings.Replace(f.String(), \"DeviceClaimConfiguration\", \"DeviceClaimConfiguration\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConfig += \"}\"\n\ts := strings.Join([]string{`&DeviceClaim{`,\n\t\t`Requests:` + repeatedStringForRequests + `,`,\n\t\t`Constraints:` + repeatedStringForConstraints + `,`,\n\t\t`Config:` + repeatedStringForConfig + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeviceClaimConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeviceClaimConfiguration{`,\n\t\t`Requests:` + fmt.Sprintf(\"%v\", this.Requests) + `,`,\n\t\t`DeviceConfiguration:` + strings.Replace(strings.Replace(this.DeviceConfiguration.String(), \"DeviceConfiguration\", \"DeviceConfiguration\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeviceClass) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeviceClass{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"DeviceClassSpec\", \"DeviceClassSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeviceClassConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeviceClassConfiguration{`,\n\t\t`DeviceConfiguration:` + strings.Replace(strings.Replace(this.DeviceConfiguration.String(), \"DeviceConfiguration\", \"DeviceConfiguration\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeviceClassList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]DeviceClass{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"DeviceClass\", \"DeviceClass\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&DeviceClassList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeviceClassSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForSelectors := \"[]DeviceSelector{\"\n\tfor _, f := range this.Selectors {\n\t\trepeatedStringForSelectors += strings.Replace(strings.Replace(f.String(), \"DeviceSelector\", \"DeviceSelector\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForSelectors += \"}\"\n\trepeatedStringForConfig := \"[]DeviceClassConfiguration{\"\n\tfor _, f := range this.Config {\n\t\trepeatedStringForConfig += strings.Replace(strings.Replace(f.String(), \"DeviceClassConfiguration\", \"DeviceClassConfiguration\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConfig += \"}\"\n\ts := strings.Join([]string{`&DeviceClassSpec{`,\n\t\t`Selectors:` + repeatedStringForSelectors + `,`,\n\t\t`Config:` + repeatedStringForConfig + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeviceConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeviceConfiguration{`,\n\t\t`Opaque:` + strings.Replace(this.Opaque.String(), \"OpaqueDeviceConfiguration\", \"OpaqueDeviceConfiguration\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeviceConstraint) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeviceConstraint{`,\n\t\t`Requests:` + fmt.Sprintf(\"%v\", this.Requests) + `,`,\n\t\t`MatchAttribute:` + valueToStringGenerated(this.MatchAttribute) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeviceRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForSelectors := \"[]DeviceSelector{\"\n\tfor _, f := range this.Selectors {\n\t\trepeatedStringForSelectors += strings.Replace(strings.Replace(f.String(), \"DeviceSelector\", \"DeviceSelector\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForSelectors += \"}\"\n\ts := strings.Join([]string{`&DeviceRequest{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`DeviceClassName:` + fmt.Sprintf(\"%v\", this.DeviceClassName) + `,`,\n\t\t`Selectors:` + repeatedStringForSelectors + `,`,\n\t\t`AllocationMode:` + fmt.Sprintf(\"%v\", this.AllocationMode) + `,`,\n\t\t`Count:` + fmt.Sprintf(\"%v\", this.Count) + `,`,\n\t\t`AdminAccess:` + valueToStringGenerated(this.AdminAccess) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeviceRequestAllocationResult) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeviceRequestAllocationResult{`,\n\t\t`Request:` + fmt.Sprintf(\"%v\", this.Request) + `,`,\n\t\t`Driver:` + fmt.Sprintf(\"%v\", this.Driver) + `,`,\n\t\t`Pool:` + fmt.Sprintf(\"%v\", this.Pool) + `,`,\n\t\t`Device:` + fmt.Sprintf(\"%v\", this.Device) + `,`,\n\t\t`AdminAccess:` + valueToStringGenerated(this.AdminAccess) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeviceSelector) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeviceSelector{`,\n\t\t`CEL:` + strings.Replace(this.CEL.String(), \"CELDeviceSelector\", \"CELDeviceSelector\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *NetworkDeviceData) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&NetworkDeviceData{`,\n\t\t`InterfaceName:` + fmt.Sprintf(\"%v\", this.InterfaceName) + `,`,\n\t\t`IPs:` + fmt.Sprintf(\"%v\", this.IPs) + `,`,\n\t\t`HardwareAddress:` + fmt.Sprintf(\"%v\", this.HardwareAddress) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *OpaqueDeviceConfiguration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&OpaqueDeviceConfiguration{`,\n\t\t`Driver:` + fmt.Sprintf(\"%v\", this.Driver) + `,`,\n\t\t`Parameters:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Parameters), \"RawExtension\", \"runtime.RawExtension\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceClaim) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceClaim{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ResourceClaimSpec\", \"ResourceClaimSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"ResourceClaimStatus\", \"ResourceClaimStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceClaimConsumerReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceClaimConsumerReference{`,\n\t\t`APIGroup:` + fmt.Sprintf(\"%v\", this.APIGroup) + `,`,\n\t\t`Resource:` + fmt.Sprintf(\"%v\", this.Resource) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`UID:` + fmt.Sprintf(\"%v\", this.UID) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceClaimList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ResourceClaim{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ResourceClaim\", \"ResourceClaim\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ResourceClaimList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceClaimSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceClaimSpec{`,\n\t\t`Devices:` + strings.Replace(strings.Replace(this.Devices.String(), \"DeviceClaim\", \"DeviceClaim\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceClaimStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForReservedFor := \"[]ResourceClaimConsumerReference{\"\n\tfor _, f := range this.ReservedFor {\n\t\trepeatedStringForReservedFor += strings.Replace(strings.Replace(f.String(), \"ResourceClaimConsumerReference\", \"ResourceClaimConsumerReference\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForReservedFor += \"}\"\n\trepeatedStringForDevices := \"[]AllocatedDeviceStatus{\"\n\tfor _, f := range this.Devices {\n\t\trepeatedStringForDevices += strings.Replace(strings.Replace(f.String(), \"AllocatedDeviceStatus\", \"AllocatedDeviceStatus\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForDevices += \"}\"\n\ts := strings.Join([]string{`&ResourceClaimStatus{`,\n\t\t`Allocation:` + strings.Replace(this.Allocation.String(), \"AllocationResult\", \"AllocationResult\", 1) + `,`,\n\t\t`ReservedFor:` + repeatedStringForReservedFor + `,`,\n\t\t`Devices:` + repeatedStringForDevices + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceClaimTemplate) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceClaimTemplate{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ResourceClaimTemplateSpec\", \"ResourceClaimTemplateSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceClaimTemplateList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ResourceClaimTemplate{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ResourceClaimTemplate\", \"ResourceClaimTemplate\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ResourceClaimTemplateList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceClaimTemplateSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceClaimTemplateSpec{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ResourceClaimSpec\", \"ResourceClaimSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourcePool) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourcePool{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Generation:` + fmt.Sprintf(\"%v\", this.Generation) + `,`,\n\t\t`ResourceSliceCount:` + fmt.Sprintf(\"%v\", this.ResourceSliceCount) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceSlice) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ResourceSlice{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"ResourceSliceSpec\", \"ResourceSliceSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceSliceList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]ResourceSlice{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"ResourceSlice\", \"ResourceSlice\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&ResourceSliceList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ResourceSliceSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForDevices := \"[]Device{\"\n\tfor _, f := range this.Devices {\n\t\trepeatedStringForDevices += strings.Replace(strings.Replace(f.String(), \"Device\", \"Device\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForDevices += \"}\"\n\ts := strings.Join([]string{`&ResourceSliceSpec{`,\n\t\t`Driver:` + fmt.Sprintf(\"%v\", this.Driver) + `,`,\n\t\t`Pool:` + strings.Replace(strings.Replace(this.Pool.String(), \"ResourcePool\", \"ResourcePool\", 1), `&`, ``, 1) + `,`,\n\t\t`NodeName:` + fmt.Sprintf(\"%v\", this.NodeName) + `,`,\n\t\t`NodeSelector:` + strings.Replace(fmt.Sprintf(\"%v\", this.NodeSelector), \"NodeSelector\", \"v11.NodeSelector\", 1) + `,`,\n\t\t`AllNodes:` + fmt.Sprintf(\"%v\", this.AllNodes) + `,`,\n\t\t`Devices:` + repeatedStringForDevices + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *AllocatedDeviceStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: AllocatedDeviceStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: AllocatedDeviceStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Driver\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Driver = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Pool\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Pool = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Device\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Device = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, v1.Condition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Data\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Data.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NetworkData\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NetworkData == nil {\n\t\t\t\tm.NetworkData = &NetworkDeviceData{}\n\t\t\t}\n\t\t\tif err := m.NetworkData.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *AllocationResult) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: AllocationResult: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: AllocationResult: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Devices\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Devices.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NodeSelector == nil {\n\t\t\t\tm.NodeSelector = &v11.NodeSelector{}\n\t\t\t}\n\t\t\tif err := m.NodeSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *BasicDevice) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: BasicDevice: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: BasicDevice: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Attributes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Attributes == nil {\n\t\t\t\tm.Attributes = make(map[QualifiedName]DeviceAttribute)\n\t\t\t}\n\t\t\tvar mapkey QualifiedName\n\t\t\tmapvalue := &DeviceAttribute{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = QualifiedName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &DeviceAttribute{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Attributes[QualifiedName(mapkey)] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Capacity\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Capacity == nil {\n\t\t\t\tm.Capacity = make(map[QualifiedName]DeviceCapacity)\n\t\t\t}\n\t\t\tvar mapkey QualifiedName\n\t\t\tmapvalue := &DeviceCapacity{}\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = QualifiedName(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar mapmsglen int\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tmapmsglen |= int(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif mapmsglen < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostmsgIndex := iNdEx + mapmsglen\n\t\t\t\t\tif postmsgIndex < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postmsgIndex > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = &DeviceCapacity{}\n\t\t\t\t\tif err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx = postmsgIndex\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Capacity[QualifiedName(mapkey)] = *mapvalue\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CELDeviceSelector) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CELDeviceSelector: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CELDeviceSelector: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Expression\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Expression = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Device) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Device: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Device: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Basic\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Basic == nil {\n\t\t\t\tm.Basic = &BasicDevice{}\n\t\t\t}\n\t\t\tif err := m.Basic.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeviceAllocationConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceAllocationConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceAllocationConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Source\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Source = AllocationConfigSource(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Requests\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Requests = append(m.Requests, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DeviceConfiguration\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.DeviceConfiguration.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeviceAllocationResult) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceAllocationResult: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceAllocationResult: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Results\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Results = append(m.Results, DeviceRequestAllocationResult{})\n\t\t\tif err := m.Results[len(m.Results)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Config\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Config = append(m.Config, DeviceAllocationConfiguration{})\n\t\t\tif err := m.Config[len(m.Config)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeviceAttribute) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceAttribute: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceAttribute: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IntValue\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.IntValue = &v\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field BoolValue\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.BoolValue = &b\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StringValue\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.StringValue = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VersionValue\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.VersionValue = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeviceCapacity) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceCapacity: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceCapacity: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Value\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeviceClaim) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceClaim: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceClaim: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Requests\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Requests = append(m.Requests, DeviceRequest{})\n\t\t\tif err := m.Requests[len(m.Requests)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Constraints\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Constraints = append(m.Constraints, DeviceConstraint{})\n\t\t\tif err := m.Constraints[len(m.Constraints)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Config\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Config = append(m.Config, DeviceClaimConfiguration{})\n\t\t\tif err := m.Config[len(m.Config)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeviceClaimConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceClaimConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceClaimConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Requests\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Requests = append(m.Requests, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DeviceConfiguration\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.DeviceConfiguration.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeviceClass) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceClass: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceClass: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeviceClassConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceClassConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceClassConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DeviceConfiguration\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.DeviceConfiguration.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeviceClassList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceClassList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceClassList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, DeviceClass{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeviceClassSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceClassSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceClassSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selectors\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Selectors = append(m.Selectors, DeviceSelector{})\n\t\t\tif err := m.Selectors[len(m.Selectors)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Config\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Config = append(m.Config, DeviceClassConfiguration{})\n\t\t\tif err := m.Config[len(m.Config)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeviceConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Opaque\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Opaque == nil {\n\t\t\t\tm.Opaque = &OpaqueDeviceConfiguration{}\n\t\t\t}\n\t\t\tif err := m.Opaque.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeviceConstraint) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceConstraint: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceConstraint: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Requests\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Requests = append(m.Requests, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchAttribute\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := FullyQualifiedName(dAtA[iNdEx:postIndex])\n\t\t\tm.MatchAttribute = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeviceRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DeviceClassName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.DeviceClassName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Selectors\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Selectors = append(m.Selectors, DeviceSelector{})\n\t\t\tif err := m.Selectors[len(m.Selectors)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AllocationMode\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AllocationMode = DeviceAllocationMode(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Count\", wireType)\n\t\t\t}\n\t\t\tm.Count = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Count |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AdminAccess\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.AdminAccess = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeviceRequestAllocationResult) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceRequestAllocationResult: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceRequestAllocationResult: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Request\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Request = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Driver\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Driver = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Pool\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Pool = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Device\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Device = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AdminAccess\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.AdminAccess = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeviceSelector) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceSelector: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeviceSelector: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CEL\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.CEL == nil {\n\t\t\t\tm.CEL = &CELDeviceSelector{}\n\t\t\t}\n\t\t\tif err := m.CEL.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *NetworkDeviceData) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkDeviceData: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: NetworkDeviceData: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field InterfaceName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.InterfaceName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IPs\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.IPs = append(m.IPs, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field HardwareAddress\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.HardwareAddress = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *OpaqueDeviceConfiguration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: OpaqueDeviceConfiguration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: OpaqueDeviceConfiguration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Driver\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Driver = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Parameters\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Parameters.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceClaim) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaim: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaim: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceClaimConsumerReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimConsumerReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimConsumerReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIGroup\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIGroup = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resource\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resource = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.UID = k8s_io_apimachinery_pkg_types.UID(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceClaimList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ResourceClaim{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceClaimSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Devices\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Devices.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceClaimStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Allocation\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Allocation == nil {\n\t\t\t\tm.Allocation = &AllocationResult{}\n\t\t\t}\n\t\t\tif err := m.Allocation.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReservedFor\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ReservedFor = append(m.ReservedFor, ResourceClaimConsumerReference{})\n\t\t\tif err := m.ReservedFor[len(m.ReservedFor)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Devices\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Devices = append(m.Devices, AllocatedDeviceStatus{})\n\t\t\tif err := m.Devices[len(m.Devices)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceClaimTemplate) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimTemplate: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimTemplate: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceClaimTemplateList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimTemplateList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimTemplateList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ResourceClaimTemplate{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceClaimTemplateSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimTemplateSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceClaimTemplateSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourcePool) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourcePool: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourcePool: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Generation\", wireType)\n\t\t\t}\n\t\t\tm.Generation = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Generation |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceSliceCount\", wireType)\n\t\t\t}\n\t\t\tm.ResourceSliceCount = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ResourceSliceCount |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceSlice) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceSlice: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceSlice: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceSliceList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceSliceList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceSliceList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, ResourceSlice{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ResourceSliceSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceSliceSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ResourceSliceSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Driver\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Driver = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Pool\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Pool.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NodeName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeSelector\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NodeSelector == nil {\n\t\t\t\tm.NodeSelector = &v11.NodeSelector{}\n\t\t\t}\n\t\t\tif err := m.NodeSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AllNodes\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.AllNodes = bool(v != 0)\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Devices\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Devices = append(m.Devices, Device{})\n\t\t\tif err := m.Devices[len(m.Devices)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/resource/v1beta1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.resource.v1beta1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/api/resource/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/resource/v1beta1\";\n\n// AllocatedDeviceStatus contains the status of an allocated device, if the\n// driver chooses to report it. This may include driver-specific information.\nmessage AllocatedDeviceStatus {\n  // Driver specifies the name of the DRA driver whose kubelet\n  // plugin should be invoked to process the allocation once the claim is\n  // needed on a node.\n  //\n  // Must be a DNS subdomain and should end with a DNS domain owned by the\n  // vendor of the driver.\n  //\n  // +required\n  optional string driver = 1;\n\n  // This name together with the driver name and the device name field\n  // identify which device was allocated (`<driver name>/<pool name>/<device name>`).\n  //\n  // Must not be longer than 253 characters and may contain one or more\n  // DNS sub-domains separated by slashes.\n  //\n  // +required\n  optional string pool = 2;\n\n  // Device references one device instance via its name in the driver's\n  // resource pool. It must be a DNS label.\n  //\n  // +required\n  optional string device = 3;\n\n  // Conditions contains the latest observation of the device's state.\n  // If the device has been configured according to the class and claim\n  // config references, the `Ready` condition should be True.\n  //\n  // +optional\n  // +listType=map\n  // +listMapKey=type\n  repeated .k8s.io.apimachinery.pkg.apis.meta.v1.Condition conditions = 4;\n\n  // Data contains arbitrary driver-specific data.\n  //\n  // The length of the raw data must be smaller or equal to 10 Ki.\n  //\n  // +optional\n  optional .k8s.io.apimachinery.pkg.runtime.RawExtension data = 5;\n\n  // NetworkData contains network-related information specific to the device.\n  //\n  // +optional\n  optional NetworkDeviceData networkData = 6;\n}\n\n// AllocationResult contains attributes of an allocated resource.\nmessage AllocationResult {\n  // Devices is the result of allocating devices.\n  //\n  // +optional\n  optional DeviceAllocationResult devices = 1;\n\n  // NodeSelector defines where the allocated resources are available. If\n  // unset, they are available everywhere.\n  //\n  // +optional\n  optional .k8s.io.api.core.v1.NodeSelector nodeSelector = 3;\n}\n\n// BasicDevice defines one device instance.\nmessage BasicDevice {\n  // Attributes defines the set of attributes for this device.\n  // The name of each attribute must be unique in that set.\n  //\n  // The maximum number of attributes and capacities combined is 32.\n  //\n  // +optional\n  map<string, DeviceAttribute> attributes = 1;\n\n  // Capacity defines the set of capacities for this device.\n  // The name of each capacity must be unique in that set.\n  //\n  // The maximum number of attributes and capacities combined is 32.\n  //\n  // +optional\n  map<string, DeviceCapacity> capacity = 2;\n}\n\n// CELDeviceSelector contains a CEL expression for selecting a device.\nmessage CELDeviceSelector {\n  // Expression is a CEL expression which evaluates a single device. It\n  // must evaluate to true when the device under consideration satisfies\n  // the desired criteria, and false when it does not. Any other result\n  // is an error and causes allocation of devices to abort.\n  //\n  // The expression's input is an object named \"device\", which carries\n  // the following properties:\n  //  - driver (string): the name of the driver which defines this device.\n  //  - attributes (map[string]object): the device's attributes, grouped by prefix\n  //    (e.g. device.attributes[\"dra.example.com\"] evaluates to an object with all\n  //    of the attributes which were prefixed by \"dra.example.com\".\n  //  - capacity (map[string]object): the device's capacities, grouped by prefix.\n  //\n  // Example: Consider a device with driver=\"dra.example.com\", which exposes\n  // two attributes named \"model\" and \"ext.example.com/family\" and which\n  // exposes one capacity named \"modules\". This input to this expression\n  // would have the following fields:\n  //\n  //     device.driver\n  //     device.attributes[\"dra.example.com\"].model\n  //     device.attributes[\"ext.example.com\"].family\n  //     device.capacity[\"dra.example.com\"].modules\n  //\n  // The device.driver field can be used to check for a specific driver,\n  // either as a high-level precondition (i.e. you only want to consider\n  // devices from this driver) or as part of a multi-clause expression\n  // that is meant to consider devices from different drivers.\n  //\n  // The value type of each attribute is defined by the device\n  // definition, and users who write these expressions must consult the\n  // documentation for their specific drivers. The value type of each\n  // capacity is Quantity.\n  //\n  // If an unknown prefix is used as a lookup in either device.attributes\n  // or device.capacity, an empty map will be returned. Any reference to\n  // an unknown field will cause an evaluation error and allocation to\n  // abort.\n  //\n  // A robust expression should check for the existence of attributes\n  // before referencing them.\n  //\n  // For ease of use, the cel.bind() function is enabled, and can be used\n  // to simplify expressions that access multiple attributes with the\n  // same domain. For example:\n  //\n  //     cel.bind(dra, device.attributes[\"dra.example.com\"], dra.someBool && dra.anotherBool)\n  //\n  // The length of the expression must be smaller or equal to 10 Ki. The\n  // cost of evaluating it is also limited based on the estimated number\n  // of logical steps.\n  //\n  // +required\n  optional string expression = 1;\n}\n\n// Device represents one individual hardware instance that can be selected based\n// on its attributes. Besides the name, exactly one field must be set.\nmessage Device {\n  // Name is unique identifier among all devices managed by\n  // the driver in the pool. It must be a DNS label.\n  //\n  // +required\n  optional string name = 1;\n\n  // Basic defines one device instance.\n  //\n  // +optional\n  // +oneOf=deviceType\n  optional BasicDevice basic = 2;\n}\n\n// DeviceAllocationConfiguration gets embedded in an AllocationResult.\nmessage DeviceAllocationConfiguration {\n  // Source records whether the configuration comes from a class and thus\n  // is not something that a normal user would have been able to set\n  // or from a claim.\n  //\n  // +required\n  optional string source = 1;\n\n  // Requests lists the names of requests where the configuration applies.\n  // If empty, its applies to all requests.\n  //\n  // +optional\n  // +listType=atomic\n  repeated string requests = 2;\n\n  optional DeviceConfiguration deviceConfiguration = 3;\n}\n\n// DeviceAllocationResult is the result of allocating devices.\nmessage DeviceAllocationResult {\n  // Results lists all allocated devices.\n  //\n  // +optional\n  // +listType=atomic\n  repeated DeviceRequestAllocationResult results = 1;\n\n  // This field is a combination of all the claim and class configuration parameters.\n  // Drivers can distinguish between those based on a flag.\n  //\n  // This includes configuration parameters for drivers which have no allocated\n  // devices in the result because it is up to the drivers which configuration\n  // parameters they support. They can silently ignore unknown configuration\n  // parameters.\n  //\n  // +optional\n  // +listType=atomic\n  repeated DeviceAllocationConfiguration config = 2;\n}\n\n// DeviceAttribute must have exactly one field set.\nmessage DeviceAttribute {\n  // IntValue is a number.\n  //\n  // +optional\n  // +oneOf=ValueType\n  optional int64 int = 2;\n\n  // BoolValue is a true/false value.\n  //\n  // +optional\n  // +oneOf=ValueType\n  optional bool bool = 3;\n\n  // StringValue is a string. Must not be longer than 64 characters.\n  //\n  // +optional\n  // +oneOf=ValueType\n  optional string string = 4;\n\n  // VersionValue is a semantic version according to semver.org spec 2.0.0.\n  // Must not be longer than 64 characters.\n  //\n  // +optional\n  // +oneOf=ValueType\n  optional string version = 5;\n}\n\n// DeviceCapacity describes a quantity associated with a device.\nmessage DeviceCapacity {\n  // Value defines how much of a certain device capacity is available.\n  //\n  // +required\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity value = 1;\n}\n\n// DeviceClaim defines how to request devices with a ResourceClaim.\nmessage DeviceClaim {\n  // Requests represent individual requests for distinct devices which\n  // must all be satisfied. If empty, nothing needs to be allocated.\n  //\n  // +optional\n  // +listType=atomic\n  repeated DeviceRequest requests = 1;\n\n  // These constraints must be satisfied by the set of devices that get\n  // allocated for the claim.\n  //\n  // +optional\n  // +listType=atomic\n  repeated DeviceConstraint constraints = 2;\n\n  // This field holds configuration for multiple potential drivers which\n  // could satisfy requests in this claim. It is ignored while allocating\n  // the claim.\n  //\n  // +optional\n  // +listType=atomic\n  repeated DeviceClaimConfiguration config = 3;\n}\n\n// DeviceClaimConfiguration is used for configuration parameters in DeviceClaim.\nmessage DeviceClaimConfiguration {\n  // Requests lists the names of requests where the configuration applies.\n  // If empty, it applies to all requests.\n  //\n  // +optional\n  // +listType=atomic\n  repeated string requests = 1;\n\n  optional DeviceConfiguration deviceConfiguration = 2;\n}\n\n// DeviceClass is a vendor- or admin-provided resource that contains\n// device configuration and selectors. It can be referenced in\n// the device requests of a claim to apply these presets.\n// Cluster scoped.\n//\n// This is an alpha type and requires enabling the DynamicResourceAllocation\n// feature gate.\nmessage DeviceClass {\n  // Standard object metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec defines what can be allocated and how to configure it.\n  //\n  // This is mutable. Consumers have to be prepared for classes changing\n  // at any time, either because they get updated or replaced. Claim\n  // allocations are done once based on whatever was set in classes at\n  // the time of allocation.\n  //\n  // Changing the spec automatically increments the metadata.generation number.\n  optional DeviceClassSpec spec = 2;\n}\n\n// DeviceClassConfiguration is used in DeviceClass.\nmessage DeviceClassConfiguration {\n  optional DeviceConfiguration deviceConfiguration = 1;\n}\n\n// DeviceClassList is a collection of classes.\nmessage DeviceClassList {\n  // Standard list metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is the list of resource classes.\n  repeated DeviceClass items = 2;\n}\n\n// DeviceClassSpec is used in a [DeviceClass] to define what can be allocated\n// and how to configure it.\nmessage DeviceClassSpec {\n  // Each selector must be satisfied by a device which is claimed via this class.\n  //\n  // +optional\n  // +listType=atomic\n  repeated DeviceSelector selectors = 1;\n\n  // Config defines configuration parameters that apply to each device that is claimed via this class.\n  // Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor\n  // configuration applies to exactly one driver.\n  //\n  // They are passed to the driver, but are not considered while allocating the claim.\n  //\n  // +optional\n  // +listType=atomic\n  repeated DeviceClassConfiguration config = 2;\n}\n\n// DeviceConfiguration must have exactly one field set. It gets embedded\n// inline in some other structs which have other fields, so field names must\n// not conflict with those.\nmessage DeviceConfiguration {\n  // Opaque provides driver-specific configuration parameters.\n  //\n  // +optional\n  // +oneOf=ConfigurationType\n  optional OpaqueDeviceConfiguration opaque = 1;\n}\n\n// DeviceConstraint must have exactly one field set besides Requests.\nmessage DeviceConstraint {\n  // Requests is a list of the one or more requests in this claim which\n  // must co-satisfy this constraint. If a request is fulfilled by\n  // multiple devices, then all of the devices must satisfy the\n  // constraint. If this is not specified, this constraint applies to all\n  // requests in this claim.\n  //\n  // +optional\n  // +listType=atomic\n  repeated string requests = 1;\n\n  // MatchAttribute requires that all devices in question have this\n  // attribute and that its type and value are the same across those\n  // devices.\n  //\n  // For example, if you specified \"dra.example.com/numa\" (a hypothetical example!),\n  // then only devices in the same NUMA node will be chosen. A device which\n  // does not have that attribute will not be chosen. All devices should\n  // use a value of the same type for this attribute because that is part of\n  // its specification, but if one device doesn't, then it also will not be\n  // chosen.\n  //\n  // Must include the domain qualifier.\n  //\n  // +optional\n  // +oneOf=ConstraintType\n  optional string matchAttribute = 2;\n}\n\n// DeviceRequest is a request for devices required for a claim.\n// This is typically a request for a single resource like a device, but can\n// also ask for several identical devices.\n//\n// A DeviceClassName is currently required. Clients must check that it is\n// indeed set. It's absence indicates that something changed in a way that\n// is not supported by the client yet, in which case it must refuse to\n// handle the request.\nmessage DeviceRequest {\n  // Name can be used to reference this request in a pod.spec.containers[].resources.claims\n  // entry and in a constraint of the claim.\n  //\n  // Must be a DNS label.\n  //\n  // +required\n  optional string name = 1;\n\n  // DeviceClassName references a specific DeviceClass, which can define\n  // additional configuration and selectors to be inherited by this\n  // request.\n  //\n  // A class is required. Which classes are available depends on the cluster.\n  //\n  // Administrators may use this to restrict which devices may get\n  // requested by only installing classes with selectors for permitted\n  // devices. If users are free to request anything without restrictions,\n  // then administrators can create an empty DeviceClass for users\n  // to reference.\n  //\n  // +required\n  optional string deviceClassName = 2;\n\n  // Selectors define criteria which must be satisfied by a specific\n  // device in order for that device to be considered for this\n  // request. All selectors must be satisfied for a device to be\n  // considered.\n  //\n  // +optional\n  // +listType=atomic\n  repeated DeviceSelector selectors = 3;\n\n  // AllocationMode and its related fields define how devices are allocated\n  // to satisfy this request. Supported values are:\n  //\n  // - ExactCount: This request is for a specific number of devices.\n  //   This is the default. The exact number is provided in the\n  //   count field.\n  //\n  // - All: This request is for all of the matching devices in a pool.\n  //   Allocation will fail if some devices are already allocated,\n  //   unless adminAccess is requested.\n  //\n  // If AlloctionMode is not specified, the default mode is ExactCount. If\n  // the mode is ExactCount and count is not specified, the default count is\n  // one. Any other requests must specify this field.\n  //\n  // More modes may get added in the future. Clients must refuse to handle\n  // requests with unknown modes.\n  //\n  // +optional\n  optional string allocationMode = 4;\n\n  // Count is used only when the count mode is \"ExactCount\". Must be greater than zero.\n  // If AllocationMode is ExactCount and this field is not specified, the default is one.\n  //\n  // +optional\n  // +oneOf=AllocationMode\n  optional int64 count = 5;\n\n  // AdminAccess indicates that this is a claim for administrative access\n  // to the device(s). Claims with AdminAccess are expected to be used for\n  // monitoring or other management services for a device.  They ignore\n  // all ordinary claims to the device with respect to access modes and\n  // any resource allocations.\n  //\n  // This is an alpha field and requires enabling the DRAAdminAccess\n  // feature gate. Admin access is disabled if this field is unset or\n  // set to false, otherwise it is enabled.\n  //\n  // +optional\n  // +featureGate=DRAAdminAccess\n  optional bool adminAccess = 6;\n}\n\n// DeviceRequestAllocationResult contains the allocation result for one request.\nmessage DeviceRequestAllocationResult {\n  // Request is the name of the request in the claim which caused this\n  // device to be allocated. Multiple devices may have been allocated\n  // per request.\n  //\n  // +required\n  optional string request = 1;\n\n  // Driver specifies the name of the DRA driver whose kubelet\n  // plugin should be invoked to process the allocation once the claim is\n  // needed on a node.\n  //\n  // Must be a DNS subdomain and should end with a DNS domain owned by the\n  // vendor of the driver.\n  //\n  // +required\n  optional string driver = 2;\n\n  // This name together with the driver name and the device name field\n  // identify which device was allocated (`<driver name>/<pool name>/<device name>`).\n  //\n  // Must not be longer than 253 characters and may contain one or more\n  // DNS sub-domains separated by slashes.\n  //\n  // +required\n  optional string pool = 3;\n\n  // Device references one device instance via its name in the driver's\n  // resource pool. It must be a DNS label.\n  //\n  // +required\n  optional string device = 4;\n\n  // AdminAccess indicates that this device was allocated for\n  // administrative access. See the corresponding request field\n  // for a definition of mode.\n  //\n  // This is an alpha field and requires enabling the DRAAdminAccess\n  // feature gate. Admin access is disabled if this field is unset or\n  // set to false, otherwise it is enabled.\n  //\n  // +optional\n  // +featureGate=DRAAdminAccess\n  optional bool adminAccess = 5;\n}\n\n// DeviceSelector must have exactly one field set.\nmessage DeviceSelector {\n  // CEL contains a CEL expression for selecting a device.\n  //\n  // +optional\n  // +oneOf=SelectorType\n  optional CELDeviceSelector cel = 1;\n}\n\n// NetworkDeviceData provides network-related details for the allocated device.\n// This information may be filled by drivers or other components to configure\n// or identify the device within a network context.\nmessage NetworkDeviceData {\n  // InterfaceName specifies the name of the network interface associated with\n  // the allocated device. This might be the name of a physical or virtual\n  // network interface being configured in the pod.\n  //\n  // Must not be longer than 256 characters.\n  //\n  // +optional\n  optional string interfaceName = 1;\n\n  // IPs lists the network addresses assigned to the device's network interface.\n  // This can include both IPv4 and IPv6 addresses.\n  // The IPs are in the CIDR notation, which includes both the address and the\n  // associated subnet mask.\n  // e.g.: \"192.0.2.5/24\" for IPv4 and \"2001:db8::5/64\" for IPv6.\n  //\n  // +optional\n  // +listType=atomic\n  repeated string ips = 2;\n\n  // HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface.\n  //\n  // Must not be longer than 128 characters.\n  //\n  // +optional\n  optional string hardwareAddress = 3;\n}\n\n// OpaqueDeviceConfiguration contains configuration parameters for a driver\n// in a format defined by the driver vendor.\nmessage OpaqueDeviceConfiguration {\n  // Driver is used to determine which kubelet plugin needs\n  // to be passed these configuration parameters.\n  //\n  // An admission policy provided by the driver developer could use this\n  // to decide whether it needs to validate them.\n  //\n  // Must be a DNS subdomain and should end with a DNS domain owned by the\n  // vendor of the driver.\n  //\n  // +required\n  optional string driver = 1;\n\n  // Parameters can contain arbitrary data. It is the responsibility of\n  // the driver developer to handle validation and versioning. Typically this\n  // includes self-identification and a version (\"kind\" + \"apiVersion\" for\n  // Kubernetes types), with conversion between different versions.\n  //\n  // The length of the raw data must be smaller or equal to 10 Ki.\n  //\n  // +required\n  optional .k8s.io.apimachinery.pkg.runtime.RawExtension parameters = 2;\n}\n\n// ResourceClaim describes a request for access to resources in the cluster,\n// for use by workloads. For example, if a workload needs an accelerator device\n// with specific properties, this is how that request is expressed. The status\n// stanza tracks whether this claim has been satisfied and what specific\n// resources have been allocated.\n//\n// This is an alpha type and requires enabling the DynamicResourceAllocation\n// feature gate.\nmessage ResourceClaim {\n  // Standard object metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec describes what is being requested and how to configure it.\n  // The spec is immutable.\n  optional ResourceClaimSpec spec = 2;\n\n  // Status describes whether the claim is ready to use and what has been allocated.\n  // +optional\n  optional ResourceClaimStatus status = 3;\n}\n\n// ResourceClaimConsumerReference contains enough information to let you\n// locate the consumer of a ResourceClaim. The user must be a resource in the same\n// namespace as the ResourceClaim.\nmessage ResourceClaimConsumerReference {\n  // APIGroup is the group for the resource being referenced. It is\n  // empty for the core API. This matches the group in the APIVersion\n  // that is used when creating the resources.\n  // +optional\n  optional string apiGroup = 1;\n\n  // Resource is the type of resource being referenced, for example \"pods\".\n  // +required\n  optional string resource = 3;\n\n  // Name is the name of resource being referenced.\n  // +required\n  optional string name = 4;\n\n  // UID identifies exactly one incarnation of the resource.\n  // +required\n  optional string uid = 5;\n}\n\n// ResourceClaimList is a collection of claims.\nmessage ResourceClaimList {\n  // Standard list metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is the list of resource claims.\n  repeated ResourceClaim items = 2;\n}\n\n// ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it.\nmessage ResourceClaimSpec {\n  // Devices defines how to request devices.\n  //\n  // +optional\n  optional DeviceClaim devices = 1;\n}\n\n// ResourceClaimStatus tracks whether the resource has been allocated and what\n// the result of that was.\nmessage ResourceClaimStatus {\n  // Allocation is set once the claim has been allocated successfully.\n  //\n  // +optional\n  optional AllocationResult allocation = 1;\n\n  // ReservedFor indicates which entities are currently allowed to use\n  // the claim. A Pod which references a ResourceClaim which is not\n  // reserved for that Pod will not be started. A claim that is in\n  // use or might be in use because it has been reserved must not get\n  // deallocated.\n  //\n  // In a cluster with multiple scheduler instances, two pods might get\n  // scheduled concurrently by different schedulers. When they reference\n  // the same ResourceClaim which already has reached its maximum number\n  // of consumers, only one pod can be scheduled.\n  //\n  // Both schedulers try to add their pod to the claim.status.reservedFor\n  // field, but only the update that reaches the API server first gets\n  // stored. The other one fails with an error and the scheduler\n  // which issued it knows that it must put the pod back into the queue,\n  // waiting for the ResourceClaim to become usable again.\n  //\n  // There can be at most 256 such reservations. This may get increased in\n  // the future, but not reduced.\n  //\n  // +optional\n  // +listType=map\n  // +listMapKey=uid\n  // +patchStrategy=merge\n  // +patchMergeKey=uid\n  repeated ResourceClaimConsumerReference reservedFor = 2;\n\n  // Devices contains the status of each device allocated for this\n  // claim, as reported by the driver. This can include driver-specific\n  // information. Entries are owned by their respective drivers.\n  //\n  // +optional\n  // +listType=map\n  // +listMapKey=driver\n  // +listMapKey=device\n  // +listMapKey=pool\n  // +featureGate=DRAResourceClaimDeviceStatus\n  repeated AllocatedDeviceStatus devices = 4;\n}\n\n// ResourceClaimTemplate is used to produce ResourceClaim objects.\n//\n// This is an alpha type and requires enabling the DynamicResourceAllocation\n// feature gate.\nmessage ResourceClaimTemplate {\n  // Standard object metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Describes the ResourceClaim that is to be generated.\n  //\n  // This field is immutable. A ResourceClaim will get created by the\n  // control plane for a Pod when needed and then not get updated\n  // anymore.\n  optional ResourceClaimTemplateSpec spec = 2;\n}\n\n// ResourceClaimTemplateList is a collection of claim templates.\nmessage ResourceClaimTemplateList {\n  // Standard list metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is the list of resource claim templates.\n  repeated ResourceClaimTemplate items = 2;\n}\n\n// ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim.\nmessage ResourceClaimTemplateSpec {\n  // ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim\n  // when creating it. No other fields are allowed and will be rejected during\n  // validation.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Spec for the ResourceClaim. The entire content is copied unchanged\n  // into the ResourceClaim that gets created from this template. The\n  // same fields as in a ResourceClaim are also valid here.\n  optional ResourceClaimSpec spec = 2;\n}\n\n// ResourcePool describes the pool that ResourceSlices belong to.\nmessage ResourcePool {\n  // Name is used to identify the pool. For node-local devices, this\n  // is often the node name, but this is not required.\n  //\n  // It must not be longer than 253 characters and must consist of one or more DNS sub-domains\n  // separated by slashes. This field is immutable.\n  //\n  // +required\n  optional string name = 1;\n\n  // Generation tracks the change in a pool over time. Whenever a driver\n  // changes something about one or more of the resources in a pool, it\n  // must change the generation in all ResourceSlices which are part of\n  // that pool. Consumers of ResourceSlices should only consider\n  // resources from the pool with the highest generation number. The\n  // generation may be reset by drivers, which should be fine for\n  // consumers, assuming that all ResourceSlices in a pool are updated to\n  // match or deleted.\n  //\n  // Combined with ResourceSliceCount, this mechanism enables consumers to\n  // detect pools which are comprised of multiple ResourceSlices and are\n  // in an incomplete state.\n  //\n  // +required\n  optional int64 generation = 2;\n\n  // ResourceSliceCount is the total number of ResourceSlices in the pool at this\n  // generation number. Must be greater than zero.\n  //\n  // Consumers can use this to check whether they have seen all ResourceSlices\n  // belonging to the same pool.\n  //\n  // +required\n  optional int64 resourceSliceCount = 3;\n}\n\n// ResourceSlice represents one or more resources in a pool of similar resources,\n// managed by a common driver. A pool may span more than one ResourceSlice, and exactly how many\n// ResourceSlices comprise a pool is determined by the driver.\n//\n// At the moment, the only supported resources are devices with attributes and capacities.\n// Each device in a given pool, regardless of how many ResourceSlices, must have a unique name.\n// The ResourceSlice in which a device gets published may change over time. The unique identifier\n// for a device is the tuple <driver name>, <pool name>, <device name>.\n//\n// Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number\n// and updates all ResourceSlices with that new number and new resource definitions. A consumer\n// must only use ResourceSlices with the highest generation number and ignore all others.\n//\n// When allocating all resources in a pool matching certain criteria or when\n// looking for the best solution among several different alternatives, a\n// consumer should check the number of ResourceSlices in a pool (included in\n// each ResourceSlice) to determine whether its view of a pool is complete and\n// if not, should wait until the driver has completed updating the pool.\n//\n// For resources that are not local to a node, the node name is not set. Instead,\n// the driver may use a node selector to specify where the devices are available.\n//\n// This is an alpha type and requires enabling the DynamicResourceAllocation\n// feature gate.\nmessage ResourceSlice {\n  // Standard object metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Contains the information published by the driver.\n  //\n  // Changing the spec automatically increments the metadata.generation number.\n  optional ResourceSliceSpec spec = 2;\n}\n\n// ResourceSliceList is a collection of ResourceSlices.\nmessage ResourceSliceList {\n  // Standard list metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is the list of resource ResourceSlices.\n  repeated ResourceSlice items = 2;\n}\n\n// ResourceSliceSpec contains the information published by the driver in one ResourceSlice.\nmessage ResourceSliceSpec {\n  // Driver identifies the DRA driver providing the capacity information.\n  // A field selector can be used to list only ResourceSlice\n  // objects with a certain driver name.\n  //\n  // Must be a DNS subdomain and should end with a DNS domain owned by the\n  // vendor of the driver. This field is immutable.\n  //\n  // +required\n  optional string driver = 1;\n\n  // Pool describes the pool that this ResourceSlice belongs to.\n  //\n  // +required\n  optional ResourcePool pool = 2;\n\n  // NodeName identifies the node which provides the resources in this pool.\n  // A field selector can be used to list only ResourceSlice\n  // objects belonging to a certain node.\n  //\n  // This field can be used to limit access from nodes to ResourceSlices with\n  // the same node name. It also indicates to autoscalers that adding\n  // new nodes of the same type as some old node might also make new\n  // resources available.\n  //\n  // Exactly one of NodeName, NodeSelector and AllNodes must be set.\n  // This field is immutable.\n  //\n  // +optional\n  // +oneOf=NodeSelection\n  optional string nodeName = 3;\n\n  // NodeSelector defines which nodes have access to the resources in the pool,\n  // when that pool is not limited to a single node.\n  //\n  // Must use exactly one term.\n  //\n  // Exactly one of NodeName, NodeSelector and AllNodes must be set.\n  //\n  // +optional\n  // +oneOf=NodeSelection\n  optional .k8s.io.api.core.v1.NodeSelector nodeSelector = 4;\n\n  // AllNodes indicates that all nodes have access to the resources in the pool.\n  //\n  // Exactly one of NodeName, NodeSelector and AllNodes must be set.\n  //\n  // +optional\n  // +oneOf=NodeSelection\n  optional bool allNodes = 5;\n\n  // Devices lists some or all of the devices in this pool.\n  //\n  // Must not have more than 128 entries.\n  //\n  // +optional\n  // +listType=atomic\n  repeated Device devices = 6;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/resource/v1beta1/register.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"resource.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// We only register manually written functions here. The registration of the\n\t// generated functions takes place in the generated files. The separation\n\t// makes the code compile even when the generated files are missing.\n\tSchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)\n\tAddToScheme   = SchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&DeviceClass{},\n\t\t&DeviceClassList{},\n\t\t&ResourceClaim{},\n\t\t&ResourceClaimList{},\n\t\t&ResourceClaimTemplate{},\n\t\t&ResourceClaimTemplateList{},\n\t\t&ResourceSlice{},\n\t\t&ResourceSliceList{},\n\t)\n\n\t// Add the watch version that applies\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/resource/v1beta1/types.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\t\"k8s.io/apimachinery/pkg/api/resource\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/types\"\n\t\"k8s.io/apimachinery/pkg/util/validation\"\n)\n\nconst (\n\t// Finalizer is the finalizer that gets set for claims\n\t// which were allocated through a builtin controller.\n\t// Reserved for use by Kubernetes, DRA driver controllers must\n\t// use their own finalizer.\n\tFinalizer = \"resource.kubernetes.io/delete-protection\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.32\n\n// ResourceSlice represents one or more resources in a pool of similar resources,\n// managed by a common driver. A pool may span more than one ResourceSlice, and exactly how many\n// ResourceSlices comprise a pool is determined by the driver.\n//\n// At the moment, the only supported resources are devices with attributes and capacities.\n// Each device in a given pool, regardless of how many ResourceSlices, must have a unique name.\n// The ResourceSlice in which a device gets published may change over time. The unique identifier\n// for a device is the tuple <driver name>, <pool name>, <device name>.\n//\n// Whenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number\n// and updates all ResourceSlices with that new number and new resource definitions. A consumer\n// must only use ResourceSlices with the highest generation number and ignore all others.\n//\n// When allocating all resources in a pool matching certain criteria or when\n// looking for the best solution among several different alternatives, a\n// consumer should check the number of ResourceSlices in a pool (included in\n// each ResourceSlice) to determine whether its view of a pool is complete and\n// if not, should wait until the driver has completed updating the pool.\n//\n// For resources that are not local to a node, the node name is not set. Instead,\n// the driver may use a node selector to specify where the devices are available.\n//\n// This is an alpha type and requires enabling the DynamicResourceAllocation\n// feature gate.\ntype ResourceSlice struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Contains the information published by the driver.\n\t//\n\t// Changing the spec automatically increments the metadata.generation number.\n\tSpec ResourceSliceSpec `json:\"spec\" protobuf:\"bytes,2,name=spec\"`\n}\n\nconst (\n\t// ResourceSliceSelectorNodeName can be used in a [metav1.ListOptions]\n\t// field selector to filter based on [ResourceSliceSpec.NodeName].\n\tResourceSliceSelectorNodeName = \"spec.nodeName\"\n\t// ResourceSliceSelectorDriver can be used in a [metav1.ListOptions]\n\t// field selector to filter based on [ResourceSliceSpec.Driver].\n\tResourceSliceSelectorDriver = \"spec.driver\"\n)\n\n// ResourceSliceSpec contains the information published by the driver in one ResourceSlice.\ntype ResourceSliceSpec struct {\n\t// Driver identifies the DRA driver providing the capacity information.\n\t// A field selector can be used to list only ResourceSlice\n\t// objects with a certain driver name.\n\t//\n\t// Must be a DNS subdomain and should end with a DNS domain owned by the\n\t// vendor of the driver. This field is immutable.\n\t//\n\t// +required\n\tDriver string `json:\"driver\" protobuf:\"bytes,1,name=driver\"`\n\n\t// Pool describes the pool that this ResourceSlice belongs to.\n\t//\n\t// +required\n\tPool ResourcePool `json:\"pool\" protobuf:\"bytes,2,name=pool\"`\n\n\t// NodeName identifies the node which provides the resources in this pool.\n\t// A field selector can be used to list only ResourceSlice\n\t// objects belonging to a certain node.\n\t//\n\t// This field can be used to limit access from nodes to ResourceSlices with\n\t// the same node name. It also indicates to autoscalers that adding\n\t// new nodes of the same type as some old node might also make new\n\t// resources available.\n\t//\n\t// Exactly one of NodeName, NodeSelector and AllNodes must be set.\n\t// This field is immutable.\n\t//\n\t// +optional\n\t// +oneOf=NodeSelection\n\tNodeName string `json:\"nodeName,omitempty\" protobuf:\"bytes,3,opt,name=nodeName\"`\n\n\t// NodeSelector defines which nodes have access to the resources in the pool,\n\t// when that pool is not limited to a single node.\n\t//\n\t// Must use exactly one term.\n\t//\n\t// Exactly one of NodeName, NodeSelector and AllNodes must be set.\n\t//\n\t// +optional\n\t// +oneOf=NodeSelection\n\tNodeSelector *v1.NodeSelector `json:\"nodeSelector,omitempty\" protobuf:\"bytes,4,opt,name=nodeSelector\"`\n\n\t// AllNodes indicates that all nodes have access to the resources in the pool.\n\t//\n\t// Exactly one of NodeName, NodeSelector and AllNodes must be set.\n\t//\n\t// +optional\n\t// +oneOf=NodeSelection\n\tAllNodes bool `json:\"allNodes,omitempty\" protobuf:\"bytes,5,opt,name=allNodes\"`\n\n\t// Devices lists some or all of the devices in this pool.\n\t//\n\t// Must not have more than 128 entries.\n\t//\n\t// +optional\n\t// +listType=atomic\n\tDevices []Device `json:\"devices\" protobuf:\"bytes,6,name=devices\"`\n}\n\n// DriverNameMaxLength is the maximum valid length of a driver name in the\n// ResourceSliceSpec and other places. It's the same as for CSI driver names.\nconst DriverNameMaxLength = 63\n\n// ResourcePool describes the pool that ResourceSlices belong to.\ntype ResourcePool struct {\n\t// Name is used to identify the pool. For node-local devices, this\n\t// is often the node name, but this is not required.\n\t//\n\t// It must not be longer than 253 characters and must consist of one or more DNS sub-domains\n\t// separated by slashes. This field is immutable.\n\t//\n\t// +required\n\tName string `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\n\t// Generation tracks the change in a pool over time. Whenever a driver\n\t// changes something about one or more of the resources in a pool, it\n\t// must change the generation in all ResourceSlices which are part of\n\t// that pool. Consumers of ResourceSlices should only consider\n\t// resources from the pool with the highest generation number. The\n\t// generation may be reset by drivers, which should be fine for\n\t// consumers, assuming that all ResourceSlices in a pool are updated to\n\t// match or deleted.\n\t//\n\t// Combined with ResourceSliceCount, this mechanism enables consumers to\n\t// detect pools which are comprised of multiple ResourceSlices and are\n\t// in an incomplete state.\n\t//\n\t// +required\n\tGeneration int64 `json:\"generation\" protobuf:\"bytes,2,name=generation\"`\n\n\t// ResourceSliceCount is the total number of ResourceSlices in the pool at this\n\t// generation number. Must be greater than zero.\n\t//\n\t// Consumers can use this to check whether they have seen all ResourceSlices\n\t// belonging to the same pool.\n\t//\n\t// +required\n\tResourceSliceCount int64 `json:\"resourceSliceCount\" protobuf:\"bytes,3,name=resourceSliceCount\"`\n}\n\nconst ResourceSliceMaxSharedCapacity = 128\nconst ResourceSliceMaxDevices = 128\nconst PoolNameMaxLength = validation.DNS1123SubdomainMaxLength // Same as for a single node name.\n\n// Device represents one individual hardware instance that can be selected based\n// on its attributes. Besides the name, exactly one field must be set.\ntype Device struct {\n\t// Name is unique identifier among all devices managed by\n\t// the driver in the pool. It must be a DNS label.\n\t//\n\t// +required\n\tName string `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\n\t// Basic defines one device instance.\n\t//\n\t// +optional\n\t// +oneOf=deviceType\n\tBasic *BasicDevice `json:\"basic,omitempty\" protobuf:\"bytes,2,opt,name=basic\"`\n}\n\n// BasicDevice defines one device instance.\ntype BasicDevice struct {\n\t// Attributes defines the set of attributes for this device.\n\t// The name of each attribute must be unique in that set.\n\t//\n\t// The maximum number of attributes and capacities combined is 32.\n\t//\n\t// +optional\n\tAttributes map[QualifiedName]DeviceAttribute `json:\"attributes,omitempty\" protobuf:\"bytes,1,rep,name=attributes\"`\n\n\t// Capacity defines the set of capacities for this device.\n\t// The name of each capacity must be unique in that set.\n\t//\n\t// The maximum number of attributes and capacities combined is 32.\n\t//\n\t// +optional\n\tCapacity map[QualifiedName]DeviceCapacity `json:\"capacity,omitempty\" protobuf:\"bytes,2,rep,name=capacity\"`\n}\n\n// DeviceCapacity describes a quantity associated with a device.\ntype DeviceCapacity struct {\n\t// Value defines how much of a certain device capacity is available.\n\t//\n\t// +required\n\tValue resource.Quantity `json:\"value\" protobuf:\"bytes,1,rep,name=value\"`\n\n\t// potential future addition: fields which define how to \"consume\"\n\t// capacity (= share a single device between different consumers).\n}\n\n// Limit for the sum of the number of entries in both attributes and capacity.\nconst ResourceSliceMaxAttributesAndCapacitiesPerDevice = 32\n\n// QualifiedName is the name of a device attribute or capacity.\n//\n// Attributes and capacities are defined either by the owner of the specific\n// driver (usually the vendor) or by some 3rd party (e.g. the Kubernetes\n// project). Because they are sometimes compared across devices, a given name\n// is expected to mean the same thing and have the same type on all devices.\n//\n// Names must be either a C identifier (e.g. \"theName\") or a DNS subdomain\n// followed by a slash (\"/\") followed by a C identifier\n// (e.g. \"dra.example.com/theName\"). Names which do not include the\n// domain prefix are assumed to be part of the driver's domain. Attributes\n// or capacities defined by 3rd parties must include the domain prefix.\n//\n// The maximum length for the DNS subdomain is 63 characters (same as\n// for driver names) and the maximum length of the C identifier\n// is 32.\ntype QualifiedName string\n\n// FullyQualifiedName is a QualifiedName where the domain is set.\ntype FullyQualifiedName string\n\n// DeviceMaxDomainLength is the maximum length of the domain prefix in a fully-qualified name.\nconst DeviceMaxDomainLength = 63\n\n// DeviceMaxIDLength is the maximum length of the identifier in a device attribute or capacity name (`<domain>/<ID>`).\nconst DeviceMaxIDLength = 32\n\n// DeviceAttribute must have exactly one field set.\ntype DeviceAttribute struct {\n\t// The Go field names below have a Value suffix to avoid a conflict between the\n\t// field \"String\" and the corresponding method. That method is required.\n\t// The Kubernetes API is defined without that suffix to keep it more natural.\n\n\t// IntValue is a number.\n\t//\n\t// +optional\n\t// +oneOf=ValueType\n\tIntValue *int64 `json:\"int,omitempty\" protobuf:\"varint,2,opt,name=int\"`\n\n\t// BoolValue is a true/false value.\n\t//\n\t// +optional\n\t// +oneOf=ValueType\n\tBoolValue *bool `json:\"bool,omitempty\" protobuf:\"varint,3,opt,name=bool\"`\n\n\t// StringValue is a string. Must not be longer than 64 characters.\n\t//\n\t// +optional\n\t// +oneOf=ValueType\n\tStringValue *string `json:\"string,omitempty\" protobuf:\"bytes,4,opt,name=string\"`\n\n\t// VersionValue is a semantic version according to semver.org spec 2.0.0.\n\t// Must not be longer than 64 characters.\n\t//\n\t// +optional\n\t// +oneOf=ValueType\n\tVersionValue *string `json:\"version,omitempty\" protobuf:\"bytes,5,opt,name=version\"`\n}\n\n// DeviceAttributeMaxValueLength is the maximum length of a string or version attribute value.\nconst DeviceAttributeMaxValueLength = 64\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.32\n\n// ResourceSliceList is a collection of ResourceSlices.\ntype ResourceSliceList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is the list of resource ResourceSlices.\n\tItems []ResourceSlice `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.32\n\n// ResourceClaim describes a request for access to resources in the cluster,\n// for use by workloads. For example, if a workload needs an accelerator device\n// with specific properties, this is how that request is expressed. The status\n// stanza tracks whether this claim has been satisfied and what specific\n// resources have been allocated.\n//\n// This is an alpha type and requires enabling the DynamicResourceAllocation\n// feature gate.\ntype ResourceClaim struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec describes what is being requested and how to configure it.\n\t// The spec is immutable.\n\tSpec ResourceClaimSpec `json:\"spec\" protobuf:\"bytes,2,name=spec\"`\n\n\t// Status describes whether the claim is ready to use and what has been allocated.\n\t// +optional\n\tStatus ResourceClaimStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it.\ntype ResourceClaimSpec struct {\n\t// Devices defines how to request devices.\n\t//\n\t// +optional\n\tDevices DeviceClaim `json:\"devices\" protobuf:\"bytes,1,name=devices\"`\n\n\t// Controller is tombstoned since Kubernetes 1.32 where\n\t// it got removed. May be reused once decoding v1alpha3 is no longer\n\t// supported.\n\t// Controller string `json:\"controller,omitempty\" protobuf:\"bytes,2,opt,name=controller\"`\n}\n\n// DeviceClaim defines how to request devices with a ResourceClaim.\ntype DeviceClaim struct {\n\t// Requests represent individual requests for distinct devices which\n\t// must all be satisfied. If empty, nothing needs to be allocated.\n\t//\n\t// +optional\n\t// +listType=atomic\n\tRequests []DeviceRequest `json:\"requests\" protobuf:\"bytes,1,name=requests\"`\n\n\t// These constraints must be satisfied by the set of devices that get\n\t// allocated for the claim.\n\t//\n\t// +optional\n\t// +listType=atomic\n\tConstraints []DeviceConstraint `json:\"constraints,omitempty\" protobuf:\"bytes,2,opt,name=constraints\"`\n\n\t// This field holds configuration for multiple potential drivers which\n\t// could satisfy requests in this claim. It is ignored while allocating\n\t// the claim.\n\t//\n\t// +optional\n\t// +listType=atomic\n\tConfig []DeviceClaimConfiguration `json:\"config,omitempty\" protobuf:\"bytes,3,opt,name=config\"`\n\n\t// Potential future extension, ignored by older schedulers. This is\n\t// fine because scoring allows users to define a preference, without\n\t// making it a hard requirement.\n\t//\n\t// Score *SomeScoringStruct\n}\n\nconst (\n\tDeviceRequestsMaxSize    = AllocationResultsMaxSize\n\tDeviceConstraintsMaxSize = 32\n\tDeviceConfigMaxSize      = 32\n)\n\n// DeviceRequest is a request for devices required for a claim.\n// This is typically a request for a single resource like a device, but can\n// also ask for several identical devices.\n//\n// A DeviceClassName is currently required. Clients must check that it is\n// indeed set. It's absence indicates that something changed in a way that\n// is not supported by the client yet, in which case it must refuse to\n// handle the request.\ntype DeviceRequest struct {\n\t// Name can be used to reference this request in a pod.spec.containers[].resources.claims\n\t// entry and in a constraint of the claim.\n\t//\n\t// Must be a DNS label.\n\t//\n\t// +required\n\tName string `json:\"name\" protobuf:\"bytes,1,name=name\"`\n\n\t// DeviceClassName references a specific DeviceClass, which can define\n\t// additional configuration and selectors to be inherited by this\n\t// request.\n\t//\n\t// A class is required. Which classes are available depends on the cluster.\n\t//\n\t// Administrators may use this to restrict which devices may get\n\t// requested by only installing classes with selectors for permitted\n\t// devices. If users are free to request anything without restrictions,\n\t// then administrators can create an empty DeviceClass for users\n\t// to reference.\n\t//\n\t// +required\n\tDeviceClassName string `json:\"deviceClassName\" protobuf:\"bytes,2,name=deviceClassName\"`\n\n\t// Selectors define criteria which must be satisfied by a specific\n\t// device in order for that device to be considered for this\n\t// request. All selectors must be satisfied for a device to be\n\t// considered.\n\t//\n\t// +optional\n\t// +listType=atomic\n\tSelectors []DeviceSelector `json:\"selectors,omitempty\" protobuf:\"bytes,3,name=selectors\"`\n\n\t// AllocationMode and its related fields define how devices are allocated\n\t// to satisfy this request. Supported values are:\n\t//\n\t// - ExactCount: This request is for a specific number of devices.\n\t//   This is the default. The exact number is provided in the\n\t//   count field.\n\t//\n\t// - All: This request is for all of the matching devices in a pool.\n\t//   Allocation will fail if some devices are already allocated,\n\t//   unless adminAccess is requested.\n\t//\n\t// If AlloctionMode is not specified, the default mode is ExactCount. If\n\t// the mode is ExactCount and count is not specified, the default count is\n\t// one. Any other requests must specify this field.\n\t//\n\t// More modes may get added in the future. Clients must refuse to handle\n\t// requests with unknown modes.\n\t//\n\t// +optional\n\tAllocationMode DeviceAllocationMode `json:\"allocationMode,omitempty\" protobuf:\"bytes,4,opt,name=allocationMode\"`\n\n\t// Count is used only when the count mode is \"ExactCount\". Must be greater than zero.\n\t// If AllocationMode is ExactCount and this field is not specified, the default is one.\n\t//\n\t// +optional\n\t// +oneOf=AllocationMode\n\tCount int64 `json:\"count,omitempty\" protobuf:\"bytes,5,opt,name=count\"`\n\n\t// AdminAccess indicates that this is a claim for administrative access\n\t// to the device(s). Claims with AdminAccess are expected to be used for\n\t// monitoring or other management services for a device.  They ignore\n\t// all ordinary claims to the device with respect to access modes and\n\t// any resource allocations.\n\t//\n\t// This is an alpha field and requires enabling the DRAAdminAccess\n\t// feature gate. Admin access is disabled if this field is unset or\n\t// set to false, otherwise it is enabled.\n\t//\n\t// +optional\n\t// +featureGate=DRAAdminAccess\n\tAdminAccess *bool `json:\"adminAccess,omitempty\" protobuf:\"bytes,6,opt,name=adminAccess\"`\n}\n\nconst (\n\tDeviceSelectorsMaxSize = 32\n)\n\ntype DeviceAllocationMode string\n\n// Valid [DeviceRequest.CountMode] values.\nconst (\n\tDeviceAllocationModeExactCount = DeviceAllocationMode(\"ExactCount\")\n\tDeviceAllocationModeAll        = DeviceAllocationMode(\"All\")\n)\n\n// DeviceSelector must have exactly one field set.\ntype DeviceSelector struct {\n\t// CEL contains a CEL expression for selecting a device.\n\t//\n\t// +optional\n\t// +oneOf=SelectorType\n\tCEL *CELDeviceSelector `json:\"cel,omitempty\" protobuf:\"bytes,1,opt,name=cel\"`\n}\n\n// CELDeviceSelector contains a CEL expression for selecting a device.\ntype CELDeviceSelector struct {\n\t// Expression is a CEL expression which evaluates a single device. It\n\t// must evaluate to true when the device under consideration satisfies\n\t// the desired criteria, and false when it does not. Any other result\n\t// is an error and causes allocation of devices to abort.\n\t//\n\t// The expression's input is an object named \"device\", which carries\n\t// the following properties:\n\t//  - driver (string): the name of the driver which defines this device.\n\t//  - attributes (map[string]object): the device's attributes, grouped by prefix\n\t//    (e.g. device.attributes[\"dra.example.com\"] evaluates to an object with all\n\t//    of the attributes which were prefixed by \"dra.example.com\".\n\t//  - capacity (map[string]object): the device's capacities, grouped by prefix.\n\t//\n\t// Example: Consider a device with driver=\"dra.example.com\", which exposes\n\t// two attributes named \"model\" and \"ext.example.com/family\" and which\n\t// exposes one capacity named \"modules\". This input to this expression\n\t// would have the following fields:\n\t//\n\t//     device.driver\n\t//     device.attributes[\"dra.example.com\"].model\n\t//     device.attributes[\"ext.example.com\"].family\n\t//     device.capacity[\"dra.example.com\"].modules\n\t//\n\t// The device.driver field can be used to check for a specific driver,\n\t// either as a high-level precondition (i.e. you only want to consider\n\t// devices from this driver) or as part of a multi-clause expression\n\t// that is meant to consider devices from different drivers.\n\t//\n\t// The value type of each attribute is defined by the device\n\t// definition, and users who write these expressions must consult the\n\t// documentation for their specific drivers. The value type of each\n\t// capacity is Quantity.\n\t//\n\t// If an unknown prefix is used as a lookup in either device.attributes\n\t// or device.capacity, an empty map will be returned. Any reference to\n\t// an unknown field will cause an evaluation error and allocation to\n\t// abort.\n\t//\n\t// A robust expression should check for the existence of attributes\n\t// before referencing them.\n\t//\n\t// For ease of use, the cel.bind() function is enabled, and can be used\n\t// to simplify expressions that access multiple attributes with the\n\t// same domain. For example:\n\t//\n\t//     cel.bind(dra, device.attributes[\"dra.example.com\"], dra.someBool && dra.anotherBool)\n\t//\n\t// The length of the expression must be smaller or equal to 10 Ki. The\n\t// cost of evaluating it is also limited based on the estimated number\n\t// of logical steps.\n\t//\n\t// +required\n\tExpression string `json:\"expression\" protobuf:\"bytes,1,name=expression\"`\n}\n\n// CELSelectorExpressionMaxCost specifies the cost limit for a single CEL selector\n// evaluation.\n//\n// There is no overall budget for selecting a device, so the actual time\n// required for that is proportional to the number of CEL selectors and how\n// often they need to be evaluated, which can vary depending on several factors\n// (number of devices, cluster utilization, additional constraints).\n//\n// Validation against this limit and [CELSelectorExpressionMaxLength] happens\n// only when setting an expression for the first time or when changing it. If\n// the limits are changed in a future Kubernetes release, existing users are\n// guaranteed that existing expressions will continue to be valid.\n//\n// However, the kube-scheduler also applies this cost limit at runtime, so it\n// could happen that a valid expression fails at runtime after an up- or\n// downgrade. This can also happen without version skew when the cost estimate\n// underestimated the actual cost. That this might happen is the reason why\n// kube-scheduler enforces the runtime limit instead of relying on validation.\n//\n// According to\n// https://github.com/kubernetes/kubernetes/blob/4aeaf1e99e82da8334c0d6dddd848a194cd44b4f/staging/src/k8s.io/apiserver/pkg/apis/cel/config.go#L20-L22,\n// this gives roughly 0.1 second for each expression evaluation.\n// However, this depends on how fast the machine is.\nconst CELSelectorExpressionMaxCost = 1000000\n\n// CELSelectorExpressionMaxLength is the maximum length of a CEL selector expression string.\nconst CELSelectorExpressionMaxLength = 10 * 1024\n\n// DeviceConstraint must have exactly one field set besides Requests.\ntype DeviceConstraint struct {\n\t// Requests is a list of the one or more requests in this claim which\n\t// must co-satisfy this constraint. If a request is fulfilled by\n\t// multiple devices, then all of the devices must satisfy the\n\t// constraint. If this is not specified, this constraint applies to all\n\t// requests in this claim.\n\t//\n\t// +optional\n\t// +listType=atomic\n\tRequests []string `json:\"requests,omitempty\" protobuf:\"bytes,1,opt,name=requests\"`\n\n\t// MatchAttribute requires that all devices in question have this\n\t// attribute and that its type and value are the same across those\n\t// devices.\n\t//\n\t// For example, if you specified \"dra.example.com/numa\" (a hypothetical example!),\n\t// then only devices in the same NUMA node will be chosen. A device which\n\t// does not have that attribute will not be chosen. All devices should\n\t// use a value of the same type for this attribute because that is part of\n\t// its specification, but if one device doesn't, then it also will not be\n\t// chosen.\n\t//\n\t// Must include the domain qualifier.\n\t//\n\t// +optional\n\t// +oneOf=ConstraintType\n\tMatchAttribute *FullyQualifiedName `json:\"matchAttribute,omitempty\" protobuf:\"bytes,2,opt,name=matchAttribute\"`\n\n\t// Potential future extension, not part of the current design:\n\t// A CEL expression which compares different devices and returns\n\t// true if they match.\n\t//\n\t// Because it would be part of a one-of, old schedulers will not\n\t// accidentally ignore this additional, for them unknown match\n\t// criteria.\n\t//\n\t// MatchExpression string\n}\n\n// DeviceClaimConfiguration is used for configuration parameters in DeviceClaim.\ntype DeviceClaimConfiguration struct {\n\t// Requests lists the names of requests where the configuration applies.\n\t// If empty, it applies to all requests.\n\t//\n\t// +optional\n\t// +listType=atomic\n\tRequests []string `json:\"requests,omitempty\" protobuf:\"bytes,1,opt,name=requests\"`\n\n\tDeviceConfiguration `json:\",inline\" protobuf:\"bytes,2,name=deviceConfiguration\"`\n}\n\n// DeviceConfiguration must have exactly one field set. It gets embedded\n// inline in some other structs which have other fields, so field names must\n// not conflict with those.\ntype DeviceConfiguration struct {\n\t// Opaque provides driver-specific configuration parameters.\n\t//\n\t// +optional\n\t// +oneOf=ConfigurationType\n\tOpaque *OpaqueDeviceConfiguration `json:\"opaque,omitempty\" protobuf:\"bytes,1,opt,name=opaque\"`\n}\n\n// OpaqueDeviceConfiguration contains configuration parameters for a driver\n// in a format defined by the driver vendor.\ntype OpaqueDeviceConfiguration struct {\n\t// Driver is used to determine which kubelet plugin needs\n\t// to be passed these configuration parameters.\n\t//\n\t// An admission policy provided by the driver developer could use this\n\t// to decide whether it needs to validate them.\n\t//\n\t// Must be a DNS subdomain and should end with a DNS domain owned by the\n\t// vendor of the driver.\n\t//\n\t// +required\n\tDriver string `json:\"driver\" protobuf:\"bytes,1,name=driver\"`\n\n\t// Parameters can contain arbitrary data. It is the responsibility of\n\t// the driver developer to handle validation and versioning. Typically this\n\t// includes self-identification and a version (\"kind\" + \"apiVersion\" for\n\t// Kubernetes types), with conversion between different versions.\n\t//\n\t// The length of the raw data must be smaller or equal to 10 Ki.\n\t//\n\t// +required\n\tParameters runtime.RawExtension `json:\"parameters\" protobuf:\"bytes,2,name=parameters\"`\n}\n\n// OpaqueParametersMaxLength is the maximum length of the raw data in an\n// [OpaqueDeviceConfiguration.Parameters] field.\nconst OpaqueParametersMaxLength = 10 * 1024\n\n// ResourceClaimStatus tracks whether the resource has been allocated and what\n// the result of that was.\ntype ResourceClaimStatus struct {\n\t// Allocation is set once the claim has been allocated successfully.\n\t//\n\t// +optional\n\tAllocation *AllocationResult `json:\"allocation,omitempty\" protobuf:\"bytes,1,opt,name=allocation\"`\n\n\t// ReservedFor indicates which entities are currently allowed to use\n\t// the claim. A Pod which references a ResourceClaim which is not\n\t// reserved for that Pod will not be started. A claim that is in\n\t// use or might be in use because it has been reserved must not get\n\t// deallocated.\n\t//\n\t// In a cluster with multiple scheduler instances, two pods might get\n\t// scheduled concurrently by different schedulers. When they reference\n\t// the same ResourceClaim which already has reached its maximum number\n\t// of consumers, only one pod can be scheduled.\n\t//\n\t// Both schedulers try to add their pod to the claim.status.reservedFor\n\t// field, but only the update that reaches the API server first gets\n\t// stored. The other one fails with an error and the scheduler\n\t// which issued it knows that it must put the pod back into the queue,\n\t// waiting for the ResourceClaim to become usable again.\n\t//\n\t// There can be at most 256 such reservations. This may get increased in\n\t// the future, but not reduced.\n\t//\n\t// +optional\n\t// +listType=map\n\t// +listMapKey=uid\n\t// +patchStrategy=merge\n\t// +patchMergeKey=uid\n\tReservedFor []ResourceClaimConsumerReference `json:\"reservedFor,omitempty\" protobuf:\"bytes,2,opt,name=reservedFor\" patchStrategy:\"merge\" patchMergeKey:\"uid\"`\n\n\t// DeallocationRequested is tombstoned since Kubernetes 1.32 where\n\t// it got removed. May be reused once decoding v1alpha3 is no longer\n\t// supported.\n\t// DeallocationRequested bool `json:\"deallocationRequested,omitempty\" protobuf:\"bytes,3,opt,name=deallocationRequested\"`\n\n\t// Devices contains the status of each device allocated for this\n\t// claim, as reported by the driver. This can include driver-specific\n\t// information. Entries are owned by their respective drivers.\n\t//\n\t// +optional\n\t// +listType=map\n\t// +listMapKey=driver\n\t// +listMapKey=device\n\t// +listMapKey=pool\n\t// +featureGate=DRAResourceClaimDeviceStatus\n\tDevices []AllocatedDeviceStatus `json:\"devices,omitempty\" protobuf:\"bytes,4,opt,name=devices\"`\n}\n\n// ResourceClaimReservedForMaxSize is the maximum number of entries in\n// claim.status.reservedFor.\nconst ResourceClaimReservedForMaxSize = 256\n\n// ResourceClaimConsumerReference contains enough information to let you\n// locate the consumer of a ResourceClaim. The user must be a resource in the same\n// namespace as the ResourceClaim.\ntype ResourceClaimConsumerReference struct {\n\t// APIGroup is the group for the resource being referenced. It is\n\t// empty for the core API. This matches the group in the APIVersion\n\t// that is used when creating the resources.\n\t// +optional\n\tAPIGroup string `json:\"apiGroup,omitempty\" protobuf:\"bytes,1,opt,name=apiGroup\"`\n\t// Resource is the type of resource being referenced, for example \"pods\".\n\t// +required\n\tResource string `json:\"resource\" protobuf:\"bytes,3,name=resource\"`\n\t// Name is the name of resource being referenced.\n\t// +required\n\tName string `json:\"name\" protobuf:\"bytes,4,name=name\"`\n\t// UID identifies exactly one incarnation of the resource.\n\t// +required\n\tUID types.UID `json:\"uid\" protobuf:\"bytes,5,name=uid\"`\n}\n\n// AllocationResult contains attributes of an allocated resource.\ntype AllocationResult struct {\n\t// Devices is the result of allocating devices.\n\t//\n\t// +optional\n\tDevices DeviceAllocationResult `json:\"devices,omitempty\" protobuf:\"bytes,1,opt,name=devices\"`\n\n\t// NodeSelector defines where the allocated resources are available. If\n\t// unset, they are available everywhere.\n\t//\n\t// +optional\n\tNodeSelector *v1.NodeSelector `json:\"nodeSelector,omitempty\" protobuf:\"bytes,3,opt,name=nodeSelector\"`\n\n\t// Controller is tombstoned since Kubernetes 1.32 where\n\t// it got removed. May be reused once decoding v1alpha3 is no longer\n\t// supported.\n\t// Controller string `json:\"controller,omitempty\" protobuf:\"bytes,4,opt,name=controller\"`\n}\n\n// DeviceAllocationResult is the result of allocating devices.\ntype DeviceAllocationResult struct {\n\t// Results lists all allocated devices.\n\t//\n\t// +optional\n\t// +listType=atomic\n\tResults []DeviceRequestAllocationResult `json:\"results,omitempty\" protobuf:\"bytes,1,opt,name=results\"`\n\n\t// This field is a combination of all the claim and class configuration parameters.\n\t// Drivers can distinguish between those based on a flag.\n\t//\n\t// This includes configuration parameters for drivers which have no allocated\n\t// devices in the result because it is up to the drivers which configuration\n\t// parameters they support. They can silently ignore unknown configuration\n\t// parameters.\n\t//\n\t// +optional\n\t// +listType=atomic\n\tConfig []DeviceAllocationConfiguration `json:\"config,omitempty\" protobuf:\"bytes,2,opt,name=config\"`\n}\n\n// AllocationResultsMaxSize represents the maximum number of\n// entries in allocation.devices.results.\nconst AllocationResultsMaxSize = 32\n\n// DeviceRequestAllocationResult contains the allocation result for one request.\ntype DeviceRequestAllocationResult struct {\n\t// Request is the name of the request in the claim which caused this\n\t// device to be allocated. Multiple devices may have been allocated\n\t// per request.\n\t//\n\t// +required\n\tRequest string `json:\"request\" protobuf:\"bytes,1,name=request\"`\n\n\t// Driver specifies the name of the DRA driver whose kubelet\n\t// plugin should be invoked to process the allocation once the claim is\n\t// needed on a node.\n\t//\n\t// Must be a DNS subdomain and should end with a DNS domain owned by the\n\t// vendor of the driver.\n\t//\n\t// +required\n\tDriver string `json:\"driver\" protobuf:\"bytes,2,name=driver\"`\n\n\t// This name together with the driver name and the device name field\n\t// identify which device was allocated (`<driver name>/<pool name>/<device name>`).\n\t//\n\t// Must not be longer than 253 characters and may contain one or more\n\t// DNS sub-domains separated by slashes.\n\t//\n\t// +required\n\tPool string `json:\"pool\" protobuf:\"bytes,3,name=pool\"`\n\n\t// Device references one device instance via its name in the driver's\n\t// resource pool. It must be a DNS label.\n\t//\n\t// +required\n\tDevice string `json:\"device\" protobuf:\"bytes,4,name=device\"`\n\n\t// AdminAccess indicates that this device was allocated for\n\t// administrative access. See the corresponding request field\n\t// for a definition of mode.\n\t//\n\t// This is an alpha field and requires enabling the DRAAdminAccess\n\t// feature gate. Admin access is disabled if this field is unset or\n\t// set to false, otherwise it is enabled.\n\t//\n\t// +optional\n\t// +featureGate=DRAAdminAccess\n\tAdminAccess *bool `json:\"adminAccess\" protobuf:\"bytes,5,name=adminAccess\"`\n}\n\n// DeviceAllocationConfiguration gets embedded in an AllocationResult.\ntype DeviceAllocationConfiguration struct {\n\t// Source records whether the configuration comes from a class and thus\n\t// is not something that a normal user would have been able to set\n\t// or from a claim.\n\t//\n\t// +required\n\tSource AllocationConfigSource `json:\"source\" protobuf:\"bytes,1,name=source\"`\n\n\t// Requests lists the names of requests where the configuration applies.\n\t// If empty, its applies to all requests.\n\t//\n\t// +optional\n\t// +listType=atomic\n\tRequests []string `json:\"requests,omitempty\" protobuf:\"bytes,2,opt,name=requests\"`\n\n\tDeviceConfiguration `json:\",inline\" protobuf:\"bytes,3,name=deviceConfiguration\"`\n}\n\ntype AllocationConfigSource string\n\n// Valid [DeviceAllocationConfiguration.Source] values.\nconst (\n\tAllocationConfigSourceClass = \"FromClass\"\n\tAllocationConfigSourceClaim = \"FromClaim\"\n)\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.32\n\n// ResourceClaimList is a collection of claims.\ntype ResourceClaimList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is the list of resource claims.\n\tItems []ResourceClaim `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.32\n\n// DeviceClass is a vendor- or admin-provided resource that contains\n// device configuration and selectors. It can be referenced in\n// the device requests of a claim to apply these presets.\n// Cluster scoped.\n//\n// This is an alpha type and requires enabling the DynamicResourceAllocation\n// feature gate.\ntype DeviceClass struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec defines what can be allocated and how to configure it.\n\t//\n\t// This is mutable. Consumers have to be prepared for classes changing\n\t// at any time, either because they get updated or replaced. Claim\n\t// allocations are done once based on whatever was set in classes at\n\t// the time of allocation.\n\t//\n\t// Changing the spec automatically increments the metadata.generation number.\n\tSpec DeviceClassSpec `json:\"spec\" protobuf:\"bytes,2,name=spec\"`\n}\n\n// DeviceClassSpec is used in a [DeviceClass] to define what can be allocated\n// and how to configure it.\ntype DeviceClassSpec struct {\n\t// Each selector must be satisfied by a device which is claimed via this class.\n\t//\n\t// +optional\n\t// +listType=atomic\n\tSelectors []DeviceSelector `json:\"selectors,omitempty\" protobuf:\"bytes,1,opt,name=selectors\"`\n\n\t// Config defines configuration parameters that apply to each device that is claimed via this class.\n\t// Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor\n\t// configuration applies to exactly one driver.\n\t//\n\t// They are passed to the driver, but are not considered while allocating the claim.\n\t//\n\t// +optional\n\t// +listType=atomic\n\tConfig []DeviceClassConfiguration `json:\"config,omitempty\" protobuf:\"bytes,2,opt,name=config\"`\n\n\t// SuitableNodes is tombstoned since Kubernetes 1.32 where\n\t// it got removed. May be reused once decoding v1alpha3 is no longer\n\t// supported.\n\t// SuitableNodes *v1.NodeSelector `json:\"suitableNodes,omitempty\" protobuf:\"bytes,3,opt,name=suitableNodes\"`\n}\n\n// DeviceClassConfiguration is used in DeviceClass.\ntype DeviceClassConfiguration struct {\n\tDeviceConfiguration `json:\",inline\" protobuf:\"bytes,1,opt,name=deviceConfiguration\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.32\n\n// DeviceClassList is a collection of classes.\ntype DeviceClassList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is the list of resource classes.\n\tItems []DeviceClass `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.32\n\n// ResourceClaimTemplate is used to produce ResourceClaim objects.\n//\n// This is an alpha type and requires enabling the DynamicResourceAllocation\n// feature gate.\ntype ResourceClaimTemplate struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Describes the ResourceClaim that is to be generated.\n\t//\n\t// This field is immutable. A ResourceClaim will get created by the\n\t// control plane for a Pod when needed and then not get updated\n\t// anymore.\n\tSpec ResourceClaimTemplateSpec `json:\"spec\" protobuf:\"bytes,2,name=spec\"`\n}\n\n// ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim.\ntype ResourceClaimTemplateSpec struct {\n\t// ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim\n\t// when creating it. No other fields are allowed and will be rejected during\n\t// validation.\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Spec for the ResourceClaim. The entire content is copied unchanged\n\t// into the ResourceClaim that gets created from this template. The\n\t// same fields as in a ResourceClaim are also valid here.\n\tSpec ResourceClaimSpec `json:\"spec\" protobuf:\"bytes,2,name=spec\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.32\n\n// ResourceClaimTemplateList is a collection of claim templates.\ntype ResourceClaimTemplateList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Items is the list of resource claim templates.\n\tItems []ResourceClaimTemplate `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// AllocatedDeviceStatus contains the status of an allocated device, if the\n// driver chooses to report it. This may include driver-specific information.\ntype AllocatedDeviceStatus struct {\n\t// Driver specifies the name of the DRA driver whose kubelet\n\t// plugin should be invoked to process the allocation once the claim is\n\t// needed on a node.\n\t//\n\t// Must be a DNS subdomain and should end with a DNS domain owned by the\n\t// vendor of the driver.\n\t//\n\t// +required\n\tDriver string `json:\"driver\" protobuf:\"bytes,1,rep,name=driver\"`\n\n\t// This name together with the driver name and the device name field\n\t// identify which device was allocated (`<driver name>/<pool name>/<device name>`).\n\t//\n\t// Must not be longer than 253 characters and may contain one or more\n\t// DNS sub-domains separated by slashes.\n\t//\n\t// +required\n\tPool string `json:\"pool\" protobuf:\"bytes,2,rep,name=pool\"`\n\n\t// Device references one device instance via its name in the driver's\n\t// resource pool. It must be a DNS label.\n\t//\n\t// +required\n\tDevice string `json:\"device\" protobuf:\"bytes,3,rep,name=device\"`\n\n\t// Conditions contains the latest observation of the device's state.\n\t// If the device has been configured according to the class and claim\n\t// config references, the `Ready` condition should be True.\n\t//\n\t// +optional\n\t// +listType=map\n\t// +listMapKey=type\n\tConditions []metav1.Condition `json:\"conditions\" protobuf:\"bytes,4,opt,name=conditions\"`\n\n\t// Data contains arbitrary driver-specific data.\n\t//\n\t// The length of the raw data must be smaller or equal to 10 Ki.\n\t//\n\t// +optional\n\tData runtime.RawExtension `json:\"data,omitempty\" protobuf:\"bytes,5,opt,name=data\"`\n\n\t// NetworkData contains network-related information specific to the device.\n\t//\n\t// +optional\n\tNetworkData *NetworkDeviceData `json:\"networkData,omitempty\" protobuf:\"bytes,6,opt,name=networkData\"`\n}\n\n// NetworkDeviceData provides network-related details for the allocated device.\n// This information may be filled by drivers or other components to configure\n// or identify the device within a network context.\ntype NetworkDeviceData struct {\n\t// InterfaceName specifies the name of the network interface associated with\n\t// the allocated device. This might be the name of a physical or virtual\n\t// network interface being configured in the pod.\n\t//\n\t// Must not be longer than 256 characters.\n\t//\n\t// +optional\n\tInterfaceName string `json:\"interfaceName,omitempty\" protobuf:\"bytes,1,opt,name=interfaceName\"`\n\n\t// IPs lists the network addresses assigned to the device's network interface.\n\t// This can include both IPv4 and IPv6 addresses.\n\t// The IPs are in the CIDR notation, which includes both the address and the\n\t// associated subnet mask.\n\t// e.g.: \"192.0.2.5/24\" for IPv4 and \"2001:db8::5/64\" for IPv6.\n\t//\n\t// +optional\n\t// +listType=atomic\n\tIPs []string `json:\"ips,omitempty\" protobuf:\"bytes,2,opt,name=ips\"`\n\n\t// HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface.\n\t//\n\t// Must not be longer than 128 characters.\n\t//\n\t// +optional\n\tHardwareAddress string `json:\"hardwareAddress,omitempty\" protobuf:\"bytes,3,opt,name=hardwareAddress\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/resource/v1beta1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_AllocatedDeviceStatus = map[string]string{\n\t\"\":            \"AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information.\",\n\t\"driver\":      \"Driver specifies the name of the DRA driver whose kubelet plugin should be invoked to process the allocation once the claim is needed on a node.\\n\\nMust be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.\",\n\t\"pool\":        \"This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`).\\n\\nMust not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes.\",\n\t\"device\":      \"Device references one device instance via its name in the driver's resource pool. It must be a DNS label.\",\n\t\"conditions\":  \"Conditions contains the latest observation of the device's state. If the device has been configured according to the class and claim config references, the `Ready` condition should be True.\",\n\t\"data\":        \"Data contains arbitrary driver-specific data.\\n\\nThe length of the raw data must be smaller or equal to 10 Ki.\",\n\t\"networkData\": \"NetworkData contains network-related information specific to the device.\",\n}\n\nfunc (AllocatedDeviceStatus) SwaggerDoc() map[string]string {\n\treturn map_AllocatedDeviceStatus\n}\n\nvar map_AllocationResult = map[string]string{\n\t\"\":             \"AllocationResult contains attributes of an allocated resource.\",\n\t\"devices\":      \"Devices is the result of allocating devices.\",\n\t\"nodeSelector\": \"NodeSelector defines where the allocated resources are available. If unset, they are available everywhere.\",\n}\n\nfunc (AllocationResult) SwaggerDoc() map[string]string {\n\treturn map_AllocationResult\n}\n\nvar map_BasicDevice = map[string]string{\n\t\"\":           \"BasicDevice defines one device instance.\",\n\t\"attributes\": \"Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set.\\n\\nThe maximum number of attributes and capacities combined is 32.\",\n\t\"capacity\":   \"Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set.\\n\\nThe maximum number of attributes and capacities combined is 32.\",\n}\n\nfunc (BasicDevice) SwaggerDoc() map[string]string {\n\treturn map_BasicDevice\n}\n\nvar map_CELDeviceSelector = map[string]string{\n\t\"\":           \"CELDeviceSelector contains a CEL expression for selecting a device.\",\n\t\"expression\": \"Expression is a CEL expression which evaluates a single device. It must evaluate to true when the device under consideration satisfies the desired criteria, and false when it does not. Any other result is an error and causes allocation of devices to abort.\\n\\nThe expression's input is an object named \\\"device\\\", which carries the following properties:\\n - driver (string): the name of the driver which defines this device.\\n - attributes (map[string]object): the device's attributes, grouped by prefix\\n   (e.g. device.attributes[\\\"dra.example.com\\\"] evaluates to an object with all\\n   of the attributes which were prefixed by \\\"dra.example.com\\\".\\n - capacity (map[string]object): the device's capacities, grouped by prefix.\\n\\nExample: Consider a device with driver=\\\"dra.example.com\\\", which exposes two attributes named \\\"model\\\" and \\\"ext.example.com/family\\\" and which exposes one capacity named \\\"modules\\\". This input to this expression would have the following fields:\\n\\n    device.driver\\n    device.attributes[\\\"dra.example.com\\\"].model\\n    device.attributes[\\\"ext.example.com\\\"].family\\n    device.capacity[\\\"dra.example.com\\\"].modules\\n\\nThe device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers.\\n\\nThe value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity.\\n\\nIf an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort.\\n\\nA robust expression should check for the existence of attributes before referencing them.\\n\\nFor ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example:\\n\\n    cel.bind(dra, device.attributes[\\\"dra.example.com\\\"], dra.someBool && dra.anotherBool)\\n\\nThe length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps.\",\n}\n\nfunc (CELDeviceSelector) SwaggerDoc() map[string]string {\n\treturn map_CELDeviceSelector\n}\n\nvar map_Device = map[string]string{\n\t\"\":      \"Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set.\",\n\t\"name\":  \"Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label.\",\n\t\"basic\": \"Basic defines one device instance.\",\n}\n\nfunc (Device) SwaggerDoc() map[string]string {\n\treturn map_Device\n}\n\nvar map_DeviceAllocationConfiguration = map[string]string{\n\t\"\":         \"DeviceAllocationConfiguration gets embedded in an AllocationResult.\",\n\t\"source\":   \"Source records whether the configuration comes from a class and thus is not something that a normal user would have been able to set or from a claim.\",\n\t\"requests\": \"Requests lists the names of requests where the configuration applies. If empty, its applies to all requests.\",\n}\n\nfunc (DeviceAllocationConfiguration) SwaggerDoc() map[string]string {\n\treturn map_DeviceAllocationConfiguration\n}\n\nvar map_DeviceAllocationResult = map[string]string{\n\t\"\":        \"DeviceAllocationResult is the result of allocating devices.\",\n\t\"results\": \"Results lists all allocated devices.\",\n\t\"config\":  \"This field is a combination of all the claim and class configuration parameters. Drivers can distinguish between those based on a flag.\\n\\nThis includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters.\",\n}\n\nfunc (DeviceAllocationResult) SwaggerDoc() map[string]string {\n\treturn map_DeviceAllocationResult\n}\n\nvar map_DeviceAttribute = map[string]string{\n\t\"\":        \"DeviceAttribute must have exactly one field set.\",\n\t\"int\":     \"IntValue is a number.\",\n\t\"bool\":    \"BoolValue is a true/false value.\",\n\t\"string\":  \"StringValue is a string. Must not be longer than 64 characters.\",\n\t\"version\": \"VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters.\",\n}\n\nfunc (DeviceAttribute) SwaggerDoc() map[string]string {\n\treturn map_DeviceAttribute\n}\n\nvar map_DeviceCapacity = map[string]string{\n\t\"\":      \"DeviceCapacity describes a quantity associated with a device.\",\n\t\"value\": \"Value defines how much of a certain device capacity is available.\",\n}\n\nfunc (DeviceCapacity) SwaggerDoc() map[string]string {\n\treturn map_DeviceCapacity\n}\n\nvar map_DeviceClaim = map[string]string{\n\t\"\":            \"DeviceClaim defines how to request devices with a ResourceClaim.\",\n\t\"requests\":    \"Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated.\",\n\t\"constraints\": \"These constraints must be satisfied by the set of devices that get allocated for the claim.\",\n\t\"config\":      \"This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim.\",\n}\n\nfunc (DeviceClaim) SwaggerDoc() map[string]string {\n\treturn map_DeviceClaim\n}\n\nvar map_DeviceClaimConfiguration = map[string]string{\n\t\"\":         \"DeviceClaimConfiguration is used for configuration parameters in DeviceClaim.\",\n\t\"requests\": \"Requests lists the names of requests where the configuration applies. If empty, it applies to all requests.\",\n}\n\nfunc (DeviceClaimConfiguration) SwaggerDoc() map[string]string {\n\treturn map_DeviceClaimConfiguration\n}\n\nvar map_DeviceClass = map[string]string{\n\t\"\":         \"DeviceClass is a vendor- or admin-provided resource that contains device configuration and selectors. It can be referenced in the device requests of a claim to apply these presets. Cluster scoped.\\n\\nThis is an alpha type and requires enabling the DynamicResourceAllocation feature gate.\",\n\t\"metadata\": \"Standard object metadata\",\n\t\"spec\":     \"Spec defines what can be allocated and how to configure it.\\n\\nThis is mutable. Consumers have to be prepared for classes changing at any time, either because they get updated or replaced. Claim allocations are done once based on whatever was set in classes at the time of allocation.\\n\\nChanging the spec automatically increments the metadata.generation number.\",\n}\n\nfunc (DeviceClass) SwaggerDoc() map[string]string {\n\treturn map_DeviceClass\n}\n\nvar map_DeviceClassConfiguration = map[string]string{\n\t\"\": \"DeviceClassConfiguration is used in DeviceClass.\",\n}\n\nfunc (DeviceClassConfiguration) SwaggerDoc() map[string]string {\n\treturn map_DeviceClassConfiguration\n}\n\nvar map_DeviceClassList = map[string]string{\n\t\"\":         \"DeviceClassList is a collection of classes.\",\n\t\"metadata\": \"Standard list metadata\",\n\t\"items\":    \"Items is the list of resource classes.\",\n}\n\nfunc (DeviceClassList) SwaggerDoc() map[string]string {\n\treturn map_DeviceClassList\n}\n\nvar map_DeviceClassSpec = map[string]string{\n\t\"\":          \"DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it.\",\n\t\"selectors\": \"Each selector must be satisfied by a device which is claimed via this class.\",\n\t\"config\":    \"Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver.\\n\\nThey are passed to the driver, but are not considered while allocating the claim.\",\n}\n\nfunc (DeviceClassSpec) SwaggerDoc() map[string]string {\n\treturn map_DeviceClassSpec\n}\n\nvar map_DeviceConfiguration = map[string]string{\n\t\"\":       \"DeviceConfiguration must have exactly one field set. It gets embedded inline in some other structs which have other fields, so field names must not conflict with those.\",\n\t\"opaque\": \"Opaque provides driver-specific configuration parameters.\",\n}\n\nfunc (DeviceConfiguration) SwaggerDoc() map[string]string {\n\treturn map_DeviceConfiguration\n}\n\nvar map_DeviceConstraint = map[string]string{\n\t\"\":               \"DeviceConstraint must have exactly one field set besides Requests.\",\n\t\"requests\":       \"Requests is a list of the one or more requests in this claim which must co-satisfy this constraint. If a request is fulfilled by multiple devices, then all of the devices must satisfy the constraint. If this is not specified, this constraint applies to all requests in this claim.\",\n\t\"matchAttribute\": \"MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices.\\n\\nFor example, if you specified \\\"dra.example.com/numa\\\" (a hypothetical example!), then only devices in the same NUMA node will be chosen. A device which does not have that attribute will not be chosen. All devices should use a value of the same type for this attribute because that is part of its specification, but if one device doesn't, then it also will not be chosen.\\n\\nMust include the domain qualifier.\",\n}\n\nfunc (DeviceConstraint) SwaggerDoc() map[string]string {\n\treturn map_DeviceConstraint\n}\n\nvar map_DeviceRequest = map[string]string{\n\t\"\":                \"DeviceRequest is a request for devices required for a claim. This is typically a request for a single resource like a device, but can also ask for several identical devices.\\n\\nA DeviceClassName is currently required. Clients must check that it is indeed set. It's absence indicates that something changed in a way that is not supported by the client yet, in which case it must refuse to handle the request.\",\n\t\"name\":            \"Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim.\\n\\nMust be a DNS label.\",\n\t\"deviceClassName\": \"DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this request.\\n\\nA class is required. Which classes are available depends on the cluster.\\n\\nAdministrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference.\",\n\t\"selectors\":       \"Selectors define criteria which must be satisfied by a specific device in order for that device to be considered for this request. All selectors must be satisfied for a device to be considered.\",\n\t\"allocationMode\":  \"AllocationMode and its related fields define how devices are allocated to satisfy this request. Supported values are:\\n\\n- ExactCount: This request is for a specific number of devices.\\n  This is the default. The exact number is provided in the\\n  count field.\\n\\n- All: This request is for all of the matching devices in a pool.\\n  Allocation will fail if some devices are already allocated,\\n  unless adminAccess is requested.\\n\\nIf AlloctionMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other requests must specify this field.\\n\\nMore modes may get added in the future. Clients must refuse to handle requests with unknown modes.\",\n\t\"count\":           \"Count is used only when the count mode is \\\"ExactCount\\\". Must be greater than zero. If AllocationMode is ExactCount and this field is not specified, the default is one.\",\n\t\"adminAccess\":     \"AdminAccess indicates that this is a claim for administrative access to the device(s). Claims with AdminAccess are expected to be used for monitoring or other management services for a device.  They ignore all ordinary claims to the device with respect to access modes and any resource allocations.\\n\\nThis is an alpha field and requires enabling the DRAAdminAccess feature gate. Admin access is disabled if this field is unset or set to false, otherwise it is enabled.\",\n}\n\nfunc (DeviceRequest) SwaggerDoc() map[string]string {\n\treturn map_DeviceRequest\n}\n\nvar map_DeviceRequestAllocationResult = map[string]string{\n\t\"\":            \"DeviceRequestAllocationResult contains the allocation result for one request.\",\n\t\"request\":     \"Request is the name of the request in the claim which caused this device to be allocated. Multiple devices may have been allocated per request.\",\n\t\"driver\":      \"Driver specifies the name of the DRA driver whose kubelet plugin should be invoked to process the allocation once the claim is needed on a node.\\n\\nMust be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.\",\n\t\"pool\":        \"This name together with the driver name and the device name field identify which device was allocated (`<driver name>/<pool name>/<device name>`).\\n\\nMust not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes.\",\n\t\"device\":      \"Device references one device instance via its name in the driver's resource pool. It must be a DNS label.\",\n\t\"adminAccess\": \"AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode.\\n\\nThis is an alpha field and requires enabling the DRAAdminAccess feature gate. Admin access is disabled if this field is unset or set to false, otherwise it is enabled.\",\n}\n\nfunc (DeviceRequestAllocationResult) SwaggerDoc() map[string]string {\n\treturn map_DeviceRequestAllocationResult\n}\n\nvar map_DeviceSelector = map[string]string{\n\t\"\":    \"DeviceSelector must have exactly one field set.\",\n\t\"cel\": \"CEL contains a CEL expression for selecting a device.\",\n}\n\nfunc (DeviceSelector) SwaggerDoc() map[string]string {\n\treturn map_DeviceSelector\n}\n\nvar map_NetworkDeviceData = map[string]string{\n\t\"\":                \"NetworkDeviceData provides network-related details for the allocated device. This information may be filled by drivers or other components to configure or identify the device within a network context.\",\n\t\"interfaceName\":   \"InterfaceName specifies the name of the network interface associated with the allocated device. This might be the name of a physical or virtual network interface being configured in the pod.\\n\\nMust not be longer than 256 characters.\",\n\t\"ips\":             \"IPs lists the network addresses assigned to the device's network interface. This can include both IPv4 and IPv6 addresses. The IPs are in the CIDR notation, which includes both the address and the associated subnet mask. e.g.: \\\"192.0.2.5/24\\\" for IPv4 and \\\"2001:db8::5/64\\\" for IPv6.\",\n\t\"hardwareAddress\": \"HardwareAddress represents the hardware address (e.g. MAC Address) of the device's network interface.\\n\\nMust not be longer than 128 characters.\",\n}\n\nfunc (NetworkDeviceData) SwaggerDoc() map[string]string {\n\treturn map_NetworkDeviceData\n}\n\nvar map_OpaqueDeviceConfiguration = map[string]string{\n\t\"\":           \"OpaqueDeviceConfiguration contains configuration parameters for a driver in a format defined by the driver vendor.\",\n\t\"driver\":     \"Driver is used to determine which kubelet plugin needs to be passed these configuration parameters.\\n\\nAn admission policy provided by the driver developer could use this to decide whether it needs to validate them.\\n\\nMust be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver.\",\n\t\"parameters\": \"Parameters can contain arbitrary data. It is the responsibility of the driver developer to handle validation and versioning. Typically this includes self-identification and a version (\\\"kind\\\" + \\\"apiVersion\\\" for Kubernetes types), with conversion between different versions.\\n\\nThe length of the raw data must be smaller or equal to 10 Ki.\",\n}\n\nfunc (OpaqueDeviceConfiguration) SwaggerDoc() map[string]string {\n\treturn map_OpaqueDeviceConfiguration\n}\n\nvar map_ResourceClaim = map[string]string{\n\t\"\":         \"ResourceClaim describes a request for access to resources in the cluster, for use by workloads. For example, if a workload needs an accelerator device with specific properties, this is how that request is expressed. The status stanza tracks whether this claim has been satisfied and what specific resources have been allocated.\\n\\nThis is an alpha type and requires enabling the DynamicResourceAllocation feature gate.\",\n\t\"metadata\": \"Standard object metadata\",\n\t\"spec\":     \"Spec describes what is being requested and how to configure it. The spec is immutable.\",\n\t\"status\":   \"Status describes whether the claim is ready to use and what has been allocated.\",\n}\n\nfunc (ResourceClaim) SwaggerDoc() map[string]string {\n\treturn map_ResourceClaim\n}\n\nvar map_ResourceClaimConsumerReference = map[string]string{\n\t\"\":         \"ResourceClaimConsumerReference contains enough information to let you locate the consumer of a ResourceClaim. The user must be a resource in the same namespace as the ResourceClaim.\",\n\t\"apiGroup\": \"APIGroup is the group for the resource being referenced. It is empty for the core API. This matches the group in the APIVersion that is used when creating the resources.\",\n\t\"resource\": \"Resource is the type of resource being referenced, for example \\\"pods\\\".\",\n\t\"name\":     \"Name is the name of resource being referenced.\",\n\t\"uid\":      \"UID identifies exactly one incarnation of the resource.\",\n}\n\nfunc (ResourceClaimConsumerReference) SwaggerDoc() map[string]string {\n\treturn map_ResourceClaimConsumerReference\n}\n\nvar map_ResourceClaimList = map[string]string{\n\t\"\":         \"ResourceClaimList is a collection of claims.\",\n\t\"metadata\": \"Standard list metadata\",\n\t\"items\":    \"Items is the list of resource claims.\",\n}\n\nfunc (ResourceClaimList) SwaggerDoc() map[string]string {\n\treturn map_ResourceClaimList\n}\n\nvar map_ResourceClaimSpec = map[string]string{\n\t\"\":        \"ResourceClaimSpec defines what is being requested in a ResourceClaim and how to configure it.\",\n\t\"devices\": \"Devices defines how to request devices.\",\n}\n\nfunc (ResourceClaimSpec) SwaggerDoc() map[string]string {\n\treturn map_ResourceClaimSpec\n}\n\nvar map_ResourceClaimStatus = map[string]string{\n\t\"\":            \"ResourceClaimStatus tracks whether the resource has been allocated and what the result of that was.\",\n\t\"allocation\":  \"Allocation is set once the claim has been allocated successfully.\",\n\t\"reservedFor\": \"ReservedFor indicates which entities are currently allowed to use the claim. A Pod which references a ResourceClaim which is not reserved for that Pod will not be started. A claim that is in use or might be in use because it has been reserved must not get deallocated.\\n\\nIn a cluster with multiple scheduler instances, two pods might get scheduled concurrently by different schedulers. When they reference the same ResourceClaim which already has reached its maximum number of consumers, only one pod can be scheduled.\\n\\nBoth schedulers try to add their pod to the claim.status.reservedFor field, but only the update that reaches the API server first gets stored. The other one fails with an error and the scheduler which issued it knows that it must put the pod back into the queue, waiting for the ResourceClaim to become usable again.\\n\\nThere can be at most 256 such reservations. This may get increased in the future, but not reduced.\",\n\t\"devices\":     \"Devices contains the status of each device allocated for this claim, as reported by the driver. This can include driver-specific information. Entries are owned by their respective drivers.\",\n}\n\nfunc (ResourceClaimStatus) SwaggerDoc() map[string]string {\n\treturn map_ResourceClaimStatus\n}\n\nvar map_ResourceClaimTemplate = map[string]string{\n\t\"\":         \"ResourceClaimTemplate is used to produce ResourceClaim objects.\\n\\nThis is an alpha type and requires enabling the DynamicResourceAllocation feature gate.\",\n\t\"metadata\": \"Standard object metadata\",\n\t\"spec\":     \"Describes the ResourceClaim that is to be generated.\\n\\nThis field is immutable. A ResourceClaim will get created by the control plane for a Pod when needed and then not get updated anymore.\",\n}\n\nfunc (ResourceClaimTemplate) SwaggerDoc() map[string]string {\n\treturn map_ResourceClaimTemplate\n}\n\nvar map_ResourceClaimTemplateList = map[string]string{\n\t\"\":         \"ResourceClaimTemplateList is a collection of claim templates.\",\n\t\"metadata\": \"Standard list metadata\",\n\t\"items\":    \"Items is the list of resource claim templates.\",\n}\n\nfunc (ResourceClaimTemplateList) SwaggerDoc() map[string]string {\n\treturn map_ResourceClaimTemplateList\n}\n\nvar map_ResourceClaimTemplateSpec = map[string]string{\n\t\"\":         \"ResourceClaimTemplateSpec contains the metadata and fields for a ResourceClaim.\",\n\t\"metadata\": \"ObjectMeta may contain labels and annotations that will be copied into the ResourceClaim when creating it. No other fields are allowed and will be rejected during validation.\",\n\t\"spec\":     \"Spec for the ResourceClaim. The entire content is copied unchanged into the ResourceClaim that gets created from this template. The same fields as in a ResourceClaim are also valid here.\",\n}\n\nfunc (ResourceClaimTemplateSpec) SwaggerDoc() map[string]string {\n\treturn map_ResourceClaimTemplateSpec\n}\n\nvar map_ResourcePool = map[string]string{\n\t\"\":                   \"ResourcePool describes the pool that ResourceSlices belong to.\",\n\t\"name\":               \"Name is used to identify the pool. For node-local devices, this is often the node name, but this is not required.\\n\\nIt must not be longer than 253 characters and must consist of one or more DNS sub-domains separated by slashes. This field is immutable.\",\n\t\"generation\":         \"Generation tracks the change in a pool over time. Whenever a driver changes something about one or more of the resources in a pool, it must change the generation in all ResourceSlices which are part of that pool. Consumers of ResourceSlices should only consider resources from the pool with the highest generation number. The generation may be reset by drivers, which should be fine for consumers, assuming that all ResourceSlices in a pool are updated to match or deleted.\\n\\nCombined with ResourceSliceCount, this mechanism enables consumers to detect pools which are comprised of multiple ResourceSlices and are in an incomplete state.\",\n\t\"resourceSliceCount\": \"ResourceSliceCount is the total number of ResourceSlices in the pool at this generation number. Must be greater than zero.\\n\\nConsumers can use this to check whether they have seen all ResourceSlices belonging to the same pool.\",\n}\n\nfunc (ResourcePool) SwaggerDoc() map[string]string {\n\treturn map_ResourcePool\n}\n\nvar map_ResourceSlice = map[string]string{\n\t\"\":         \"ResourceSlice represents one or more resources in a pool of similar resources, managed by a common driver. A pool may span more than one ResourceSlice, and exactly how many ResourceSlices comprise a pool is determined by the driver.\\n\\nAt the moment, the only supported resources are devices with attributes and capacities. Each device in a given pool, regardless of how many ResourceSlices, must have a unique name. The ResourceSlice in which a device gets published may change over time. The unique identifier for a device is the tuple <driver name>, <pool name>, <device name>.\\n\\nWhenever a driver needs to update a pool, it increments the pool.Spec.Pool.Generation number and updates all ResourceSlices with that new number and new resource definitions. A consumer must only use ResourceSlices with the highest generation number and ignore all others.\\n\\nWhen allocating all resources in a pool matching certain criteria or when looking for the best solution among several different alternatives, a consumer should check the number of ResourceSlices in a pool (included in each ResourceSlice) to determine whether its view of a pool is complete and if not, should wait until the driver has completed updating the pool.\\n\\nFor resources that are not local to a node, the node name is not set. Instead, the driver may use a node selector to specify where the devices are available.\\n\\nThis is an alpha type and requires enabling the DynamicResourceAllocation feature gate.\",\n\t\"metadata\": \"Standard object metadata\",\n\t\"spec\":     \"Contains the information published by the driver.\\n\\nChanging the spec automatically increments the metadata.generation number.\",\n}\n\nfunc (ResourceSlice) SwaggerDoc() map[string]string {\n\treturn map_ResourceSlice\n}\n\nvar map_ResourceSliceList = map[string]string{\n\t\"\":         \"ResourceSliceList is a collection of ResourceSlices.\",\n\t\"metadata\": \"Standard list metadata\",\n\t\"items\":    \"Items is the list of resource ResourceSlices.\",\n}\n\nfunc (ResourceSliceList) SwaggerDoc() map[string]string {\n\treturn map_ResourceSliceList\n}\n\nvar map_ResourceSliceSpec = map[string]string{\n\t\"\":             \"ResourceSliceSpec contains the information published by the driver in one ResourceSlice.\",\n\t\"driver\":       \"Driver identifies the DRA driver providing the capacity information. A field selector can be used to list only ResourceSlice objects with a certain driver name.\\n\\nMust be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. This field is immutable.\",\n\t\"pool\":         \"Pool describes the pool that this ResourceSlice belongs to.\",\n\t\"nodeName\":     \"NodeName identifies the node which provides the resources in this pool. A field selector can be used to list only ResourceSlice objects belonging to a certain node.\\n\\nThis field can be used to limit access from nodes to ResourceSlices with the same node name. It also indicates to autoscalers that adding new nodes of the same type as some old node might also make new resources available.\\n\\nExactly one of NodeName, NodeSelector and AllNodes must be set. This field is immutable.\",\n\t\"nodeSelector\": \"NodeSelector defines which nodes have access to the resources in the pool, when that pool is not limited to a single node.\\n\\nMust use exactly one term.\\n\\nExactly one of NodeName, NodeSelector and AllNodes must be set.\",\n\t\"allNodes\":     \"AllNodes indicates that all nodes have access to the resources in the pool.\\n\\nExactly one of NodeName, NodeSelector and AllNodes must be set.\",\n\t\"devices\":      \"Devices lists some or all of the devices in this pool.\\n\\nMust not have more than 128 entries.\",\n}\n\nfunc (ResourceSliceSpec) SwaggerDoc() map[string]string {\n\treturn map_ResourceSliceSpec\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/resource/v1beta1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *AllocatedDeviceStatus) DeepCopyInto(out *AllocatedDeviceStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]v1.Condition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tin.Data.DeepCopyInto(&out.Data)\n\tif in.NetworkData != nil {\n\t\tin, out := &in.NetworkData, &out.NetworkData\n\t\t*out = new(NetworkDeviceData)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllocatedDeviceStatus.\nfunc (in *AllocatedDeviceStatus) DeepCopy() *AllocatedDeviceStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(AllocatedDeviceStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *AllocationResult) DeepCopyInto(out *AllocationResult) {\n\t*out = *in\n\tin.Devices.DeepCopyInto(&out.Devices)\n\tif in.NodeSelector != nil {\n\t\tin, out := &in.NodeSelector, &out.NodeSelector\n\t\t*out = new(corev1.NodeSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllocationResult.\nfunc (in *AllocationResult) DeepCopy() *AllocationResult {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(AllocationResult)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *BasicDevice) DeepCopyInto(out *BasicDevice) {\n\t*out = *in\n\tif in.Attributes != nil {\n\t\tin, out := &in.Attributes, &out.Attributes\n\t\t*out = make(map[QualifiedName]DeviceAttribute, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = *val.DeepCopy()\n\t\t}\n\t}\n\tif in.Capacity != nil {\n\t\tin, out := &in.Capacity, &out.Capacity\n\t\t*out = make(map[QualifiedName]DeviceCapacity, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = *val.DeepCopy()\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BasicDevice.\nfunc (in *BasicDevice) DeepCopy() *BasicDevice {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(BasicDevice)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CELDeviceSelector) DeepCopyInto(out *CELDeviceSelector) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CELDeviceSelector.\nfunc (in *CELDeviceSelector) DeepCopy() *CELDeviceSelector {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CELDeviceSelector)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Device) DeepCopyInto(out *Device) {\n\t*out = *in\n\tif in.Basic != nil {\n\t\tin, out := &in.Basic, &out.Basic\n\t\t*out = new(BasicDevice)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Device.\nfunc (in *Device) DeepCopy() *Device {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Device)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeviceAllocationConfiguration) DeepCopyInto(out *DeviceAllocationConfiguration) {\n\t*out = *in\n\tif in.Requests != nil {\n\t\tin, out := &in.Requests, &out.Requests\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tin.DeviceConfiguration.DeepCopyInto(&out.DeviceConfiguration)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceAllocationConfiguration.\nfunc (in *DeviceAllocationConfiguration) DeepCopy() *DeviceAllocationConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeviceAllocationConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeviceAllocationResult) DeepCopyInto(out *DeviceAllocationResult) {\n\t*out = *in\n\tif in.Results != nil {\n\t\tin, out := &in.Results, &out.Results\n\t\t*out = make([]DeviceRequestAllocationResult, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Config != nil {\n\t\tin, out := &in.Config, &out.Config\n\t\t*out = make([]DeviceAllocationConfiguration, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceAllocationResult.\nfunc (in *DeviceAllocationResult) DeepCopy() *DeviceAllocationResult {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeviceAllocationResult)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeviceAttribute) DeepCopyInto(out *DeviceAttribute) {\n\t*out = *in\n\tif in.IntValue != nil {\n\t\tin, out := &in.IntValue, &out.IntValue\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.BoolValue != nil {\n\t\tin, out := &in.BoolValue, &out.BoolValue\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.StringValue != nil {\n\t\tin, out := &in.StringValue, &out.StringValue\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.VersionValue != nil {\n\t\tin, out := &in.VersionValue, &out.VersionValue\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceAttribute.\nfunc (in *DeviceAttribute) DeepCopy() *DeviceAttribute {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeviceAttribute)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeviceCapacity) DeepCopyInto(out *DeviceCapacity) {\n\t*out = *in\n\tout.Value = in.Value.DeepCopy()\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceCapacity.\nfunc (in *DeviceCapacity) DeepCopy() *DeviceCapacity {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeviceCapacity)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeviceClaim) DeepCopyInto(out *DeviceClaim) {\n\t*out = *in\n\tif in.Requests != nil {\n\t\tin, out := &in.Requests, &out.Requests\n\t\t*out = make([]DeviceRequest, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Constraints != nil {\n\t\tin, out := &in.Constraints, &out.Constraints\n\t\t*out = make([]DeviceConstraint, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Config != nil {\n\t\tin, out := &in.Config, &out.Config\n\t\t*out = make([]DeviceClaimConfiguration, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceClaim.\nfunc (in *DeviceClaim) DeepCopy() *DeviceClaim {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeviceClaim)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeviceClaimConfiguration) DeepCopyInto(out *DeviceClaimConfiguration) {\n\t*out = *in\n\tif in.Requests != nil {\n\t\tin, out := &in.Requests, &out.Requests\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tin.DeviceConfiguration.DeepCopyInto(&out.DeviceConfiguration)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceClaimConfiguration.\nfunc (in *DeviceClaimConfiguration) DeepCopy() *DeviceClaimConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeviceClaimConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeviceClass) DeepCopyInto(out *DeviceClass) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceClass.\nfunc (in *DeviceClass) DeepCopy() *DeviceClass {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeviceClass)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *DeviceClass) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeviceClassConfiguration) DeepCopyInto(out *DeviceClassConfiguration) {\n\t*out = *in\n\tin.DeviceConfiguration.DeepCopyInto(&out.DeviceConfiguration)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceClassConfiguration.\nfunc (in *DeviceClassConfiguration) DeepCopy() *DeviceClassConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeviceClassConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeviceClassList) DeepCopyInto(out *DeviceClassList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]DeviceClass, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceClassList.\nfunc (in *DeviceClassList) DeepCopy() *DeviceClassList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeviceClassList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *DeviceClassList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeviceClassSpec) DeepCopyInto(out *DeviceClassSpec) {\n\t*out = *in\n\tif in.Selectors != nil {\n\t\tin, out := &in.Selectors, &out.Selectors\n\t\t*out = make([]DeviceSelector, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Config != nil {\n\t\tin, out := &in.Config, &out.Config\n\t\t*out = make([]DeviceClassConfiguration, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceClassSpec.\nfunc (in *DeviceClassSpec) DeepCopy() *DeviceClassSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeviceClassSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeviceConfiguration) DeepCopyInto(out *DeviceConfiguration) {\n\t*out = *in\n\tif in.Opaque != nil {\n\t\tin, out := &in.Opaque, &out.Opaque\n\t\t*out = new(OpaqueDeviceConfiguration)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceConfiguration.\nfunc (in *DeviceConfiguration) DeepCopy() *DeviceConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeviceConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeviceConstraint) DeepCopyInto(out *DeviceConstraint) {\n\t*out = *in\n\tif in.Requests != nil {\n\t\tin, out := &in.Requests, &out.Requests\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.MatchAttribute != nil {\n\t\tin, out := &in.MatchAttribute, &out.MatchAttribute\n\t\t*out = new(FullyQualifiedName)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceConstraint.\nfunc (in *DeviceConstraint) DeepCopy() *DeviceConstraint {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeviceConstraint)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeviceRequest) DeepCopyInto(out *DeviceRequest) {\n\t*out = *in\n\tif in.Selectors != nil {\n\t\tin, out := &in.Selectors, &out.Selectors\n\t\t*out = make([]DeviceSelector, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.AdminAccess != nil {\n\t\tin, out := &in.AdminAccess, &out.AdminAccess\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceRequest.\nfunc (in *DeviceRequest) DeepCopy() *DeviceRequest {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeviceRequest)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeviceRequestAllocationResult) DeepCopyInto(out *DeviceRequestAllocationResult) {\n\t*out = *in\n\tif in.AdminAccess != nil {\n\t\tin, out := &in.AdminAccess, &out.AdminAccess\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceRequestAllocationResult.\nfunc (in *DeviceRequestAllocationResult) DeepCopy() *DeviceRequestAllocationResult {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeviceRequestAllocationResult)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeviceSelector) DeepCopyInto(out *DeviceSelector) {\n\t*out = *in\n\tif in.CEL != nil {\n\t\tin, out := &in.CEL, &out.CEL\n\t\t*out = new(CELDeviceSelector)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceSelector.\nfunc (in *DeviceSelector) DeepCopy() *DeviceSelector {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeviceSelector)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *NetworkDeviceData) DeepCopyInto(out *NetworkDeviceData) {\n\t*out = *in\n\tif in.IPs != nil {\n\t\tin, out := &in.IPs, &out.IPs\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkDeviceData.\nfunc (in *NetworkDeviceData) DeepCopy() *NetworkDeviceData {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(NetworkDeviceData)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *OpaqueDeviceConfiguration) DeepCopyInto(out *OpaqueDeviceConfiguration) {\n\t*out = *in\n\tin.Parameters.DeepCopyInto(&out.Parameters)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpaqueDeviceConfiguration.\nfunc (in *OpaqueDeviceConfiguration) DeepCopy() *OpaqueDeviceConfiguration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(OpaqueDeviceConfiguration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceClaim) DeepCopyInto(out *ResourceClaim) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceClaim.\nfunc (in *ResourceClaim) DeepCopy() *ResourceClaim {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceClaim)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ResourceClaim) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceClaimConsumerReference) DeepCopyInto(out *ResourceClaimConsumerReference) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceClaimConsumerReference.\nfunc (in *ResourceClaimConsumerReference) DeepCopy() *ResourceClaimConsumerReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceClaimConsumerReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceClaimList) DeepCopyInto(out *ResourceClaimList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ResourceClaim, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceClaimList.\nfunc (in *ResourceClaimList) DeepCopy() *ResourceClaimList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceClaimList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ResourceClaimList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceClaimSpec) DeepCopyInto(out *ResourceClaimSpec) {\n\t*out = *in\n\tin.Devices.DeepCopyInto(&out.Devices)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceClaimSpec.\nfunc (in *ResourceClaimSpec) DeepCopy() *ResourceClaimSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceClaimSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceClaimStatus) DeepCopyInto(out *ResourceClaimStatus) {\n\t*out = *in\n\tif in.Allocation != nil {\n\t\tin, out := &in.Allocation, &out.Allocation\n\t\t*out = new(AllocationResult)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.ReservedFor != nil {\n\t\tin, out := &in.ReservedFor, &out.ReservedFor\n\t\t*out = make([]ResourceClaimConsumerReference, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Devices != nil {\n\t\tin, out := &in.Devices, &out.Devices\n\t\t*out = make([]AllocatedDeviceStatus, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceClaimStatus.\nfunc (in *ResourceClaimStatus) DeepCopy() *ResourceClaimStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceClaimStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceClaimTemplate) DeepCopyInto(out *ResourceClaimTemplate) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceClaimTemplate.\nfunc (in *ResourceClaimTemplate) DeepCopy() *ResourceClaimTemplate {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceClaimTemplate)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ResourceClaimTemplate) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceClaimTemplateList) DeepCopyInto(out *ResourceClaimTemplateList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ResourceClaimTemplate, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceClaimTemplateList.\nfunc (in *ResourceClaimTemplateList) DeepCopy() *ResourceClaimTemplateList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceClaimTemplateList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ResourceClaimTemplateList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceClaimTemplateSpec) DeepCopyInto(out *ResourceClaimTemplateSpec) {\n\t*out = *in\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceClaimTemplateSpec.\nfunc (in *ResourceClaimTemplateSpec) DeepCopy() *ResourceClaimTemplateSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceClaimTemplateSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourcePool) DeepCopyInto(out *ResourcePool) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourcePool.\nfunc (in *ResourcePool) DeepCopy() *ResourcePool {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourcePool)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceSlice) DeepCopyInto(out *ResourceSlice) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceSlice.\nfunc (in *ResourceSlice) DeepCopy() *ResourceSlice {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceSlice)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ResourceSlice) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceSliceList) DeepCopyInto(out *ResourceSliceList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]ResourceSlice, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceSliceList.\nfunc (in *ResourceSliceList) DeepCopy() *ResourceSliceList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceSliceList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ResourceSliceList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ResourceSliceSpec) DeepCopyInto(out *ResourceSliceSpec) {\n\t*out = *in\n\tout.Pool = in.Pool\n\tif in.NodeSelector != nil {\n\t\tin, out := &in.NodeSelector, &out.NodeSelector\n\t\t*out = new(corev1.NodeSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Devices != nil {\n\t\tin, out := &in.Devices, &out.Devices\n\t\t*out = make([]Device, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceSliceSpec.\nfunc (in *ResourceSliceSpec) DeepCopy() *ResourceSliceSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ResourceSliceSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/resource/v1beta1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *DeviceClass) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 32\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *DeviceClass) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 35\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *DeviceClass) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 38\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *DeviceClassList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 32\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *DeviceClassList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 35\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *DeviceClassList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 38\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ResourceClaim) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 32\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ResourceClaim) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 35\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ResourceClaim) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 38\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ResourceClaimList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 32\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ResourceClaimList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 35\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ResourceClaimList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 38\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ResourceClaimTemplate) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 32\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ResourceClaimTemplate) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 35\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ResourceClaimTemplate) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 38\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ResourceClaimTemplateList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 32\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ResourceClaimTemplateList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 35\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ResourceClaimTemplateList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 38\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ResourceSlice) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 32\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ResourceSlice) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 35\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ResourceSlice) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 38\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *ResourceSliceList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 32\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *ResourceSliceList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 35\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *ResourceSliceList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 38\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1/doc.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n// +groupName=scheduling.k8s.io\n\npackage v1 // import \"k8s.io/api/scheduling/v1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/scheduling/v1/generated.proto\n\npackage v1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *PriorityClass) Reset()      { *m = PriorityClass{} }\nfunc (*PriorityClass) ProtoMessage() {}\nfunc (*PriorityClass) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3f12bd05064e996e, []int{0}\n}\nfunc (m *PriorityClass) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityClass) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityClass) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityClass.Merge(m, src)\n}\nfunc (m *PriorityClass) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityClass) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityClass.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityClass proto.InternalMessageInfo\n\nfunc (m *PriorityClassList) Reset()      { *m = PriorityClassList{} }\nfunc (*PriorityClassList) ProtoMessage() {}\nfunc (*PriorityClassList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_3f12bd05064e996e, []int{1}\n}\nfunc (m *PriorityClassList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityClassList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityClassList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityClassList.Merge(m, src)\n}\nfunc (m *PriorityClassList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityClassList) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityClassList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityClassList proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*PriorityClass)(nil), \"k8s.io.api.scheduling.v1.PriorityClass\")\n\tproto.RegisterType((*PriorityClassList)(nil), \"k8s.io.api.scheduling.v1.PriorityClassList\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/scheduling/v1/generated.proto\", fileDescriptor_3f12bd05064e996e)\n}\n\nvar fileDescriptor_3f12bd05064e996e = []byte{\n\t// 476 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x93, 0x3f, 0x8f, 0xd3, 0x30,\n\t0x18, 0xc6, 0xe3, 0x1e, 0x91, 0x8a, 0xab, 0x4a, 0x25, 0x08, 0x29, 0xea, 0xe0, 0x46, 0xbd, 0x81,\n\t0x2c, 0xd8, 0xf4, 0x04, 0x08, 0xe9, 0x24, 0x86, 0x70, 0x12, 0x42, 0x3a, 0x44, 0x95, 0x81, 0x01,\n\t0x31, 0xe0, 0xa6, 0x3e, 0xd7, 0x34, 0x89, 0x23, 0xdb, 0xa9, 0xd4, 0x8d, 0x8f, 0xc0, 0x37, 0x62,\n\t0xed, 0x78, 0xe3, 0x4d, 0x15, 0x0d, 0x1f, 0x81, 0x8d, 0x09, 0x25, 0x2d, 0x97, 0xfe, 0xb9, 0x0a,\n\t0xb6, 0xbc, 0xef, 0xfb, 0xfc, 0x1e, 0xdb, 0x4f, 0x6c, 0xe8, 0x4f, 0x5f, 0x6a, 0x2c, 0x24, 0xa1,\n\t0x99, 0x20, 0x3a, 0x9a, 0xb0, 0x71, 0x1e, 0x8b, 0x94, 0x93, 0xd9, 0x80, 0x70, 0x96, 0x32, 0x45,\n\t0x0d, 0x1b, 0xe3, 0x4c, 0x49, 0x23, 0x1d, 0x77, 0xad, 0xc4, 0x34, 0x13, 0xb8, 0x56, 0xe2, 0xd9,\n\t0xa0, 0xfb, 0x84, 0x0b, 0x33, 0xc9, 0x47, 0x38, 0x92, 0x09, 0xe1, 0x92, 0x4b, 0x52, 0x01, 0xa3,\n\t0xfc, 0xaa, 0xaa, 0xaa, 0xa2, 0xfa, 0x5a, 0x1b, 0x75, 0xfb, 0x5b, 0x4b, 0x46, 0x52, 0xb1, 0x3b,\n\t0x16, 0xeb, 0x3e, 0xab, 0x35, 0x09, 0x8d, 0x26, 0x22, 0x65, 0x6a, 0x4e, 0xb2, 0x29, 0x2f, 0x1b,\n\t0x9a, 0x24, 0xcc, 0xd0, 0xbb, 0x28, 0x72, 0x8c, 0x52, 0x79, 0x6a, 0x44, 0xc2, 0x0e, 0x80, 0x17,\n\t0xff, 0x02, 0xca, 0x83, 0x26, 0x74, 0x9f, 0xeb, 0xff, 0x6a, 0xc0, 0xf6, 0x50, 0x09, 0xa9, 0x84,\n\t0x99, 0xbf, 0x8e, 0xa9, 0xd6, 0xce, 0x67, 0xd8, 0x2c, 0x77, 0x35, 0xa6, 0x86, 0xba, 0xc0, 0x03,\n\t0x7e, 0xeb, 0xec, 0x29, 0xae, 0x03, 0xbb, 0x35, 0xc7, 0xd9, 0x94, 0x97, 0x0d, 0x8d, 0x4b, 0x35,\n\t0x9e, 0x0d, 0xf0, 0xfb, 0xd1, 0x17, 0x16, 0x99, 0x77, 0xcc, 0xd0, 0xc0, 0x59, 0x2c, 0x7b, 0x56,\n\t0xb1, 0xec, 0xc1, 0xba, 0x17, 0xde, 0xba, 0x3a, 0xa7, 0xd0, 0x9e, 0xd1, 0x38, 0x67, 0x6e, 0xc3,\n\t0x03, 0xbe, 0x1d, 0xb4, 0x37, 0x62, 0xfb, 0x43, 0xd9, 0x0c, 0xd7, 0x33, 0xe7, 0x1c, 0xb6, 0x79,\n\t0x2c, 0x47, 0x34, 0xbe, 0x60, 0x57, 0x34, 0x8f, 0x8d, 0x7b, 0xe2, 0x01, 0xbf, 0x19, 0x3c, 0xda,\n\t0x88, 0xdb, 0x6f, 0xb6, 0x87, 0xe1, 0xae, 0xd6, 0x79, 0x0e, 0x5b, 0x63, 0xa6, 0x23, 0x25, 0x32,\n\t0x23, 0x64, 0xea, 0xde, 0xf3, 0x80, 0x7f, 0x3f, 0x78, 0xb8, 0x41, 0x5b, 0x17, 0xf5, 0x28, 0xdc,\n\t0xd6, 0x39, 0x1c, 0x76, 0x32, 0xc5, 0x58, 0x52, 0x55, 0x43, 0x19, 0x8b, 0x68, 0xee, 0xda, 0x15,\n\t0x7b, 0x5e, 0x2c, 0x7b, 0x9d, 0xe1, 0xde, 0xec, 0xf7, 0xb2, 0x77, 0x7a, 0x78, 0x03, 0xf0, 0xbe,\n\t0x2c, 0x3c, 0x30, 0xed, 0x7f, 0x07, 0xf0, 0xc1, 0x4e, 0xea, 0x97, 0x42, 0x1b, 0xe7, 0xd3, 0x41,\n\t0xf2, 0xf8, 0xff, 0x92, 0x2f, 0xe9, 0x2a, 0xf7, 0xce, 0xe6, 0x88, 0xcd, 0xbf, 0x9d, 0xad, 0xd4,\n\t0x2f, 0xa1, 0x2d, 0x0c, 0x4b, 0xb4, 0xdb, 0xf0, 0x4e, 0xfc, 0xd6, 0xd9, 0x63, 0x7c, 0xec, 0x15,\n\t0xe0, 0x9d, 0x9d, 0xd5, 0xbf, 0xe7, 0x6d, 0x49, 0x87, 0x6b, 0x93, 0xe0, 0xd5, 0x62, 0x85, 0xac,\n\t0xeb, 0x15, 0xb2, 0x6e, 0x56, 0xc8, 0xfa, 0x5a, 0x20, 0xb0, 0x28, 0x10, 0xb8, 0x2e, 0x10, 0xb8,\n\t0x29, 0x10, 0xf8, 0x51, 0x20, 0xf0, 0xed, 0x27, 0xb2, 0x3e, 0xba, 0xc7, 0xde, 0xe4, 0x9f, 0x00,\n\t0x00, 0x00, 0xff, 0xff, 0x9a, 0x3d, 0x5f, 0x2e, 0xae, 0x03, 0x00, 0x00,\n}\n\nfunc (m *PriorityClass) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityClass) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityClass) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.PreemptionPolicy != nil {\n\t\ti -= len(*m.PreemptionPolicy)\n\t\tcopy(dAtA[i:], *m.PreemptionPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.PreemptionPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\ti -= len(m.Description)\n\tcopy(dAtA[i:], m.Description)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Description)))\n\ti--\n\tdAtA[i] = 0x22\n\ti--\n\tif m.GlobalDefault {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Value))\n\ti--\n\tdAtA[i] = 0x10\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityClassList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityClassList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityClassList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *PriorityClass) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.Value))\n\tn += 2\n\tl = len(m.Description)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.PreemptionPolicy != nil {\n\t\tl = len(*m.PreemptionPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PriorityClassList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *PriorityClass) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PriorityClass{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Value:` + fmt.Sprintf(\"%v\", this.Value) + `,`,\n\t\t`GlobalDefault:` + fmt.Sprintf(\"%v\", this.GlobalDefault) + `,`,\n\t\t`Description:` + fmt.Sprintf(\"%v\", this.Description) + `,`,\n\t\t`PreemptionPolicy:` + valueToStringGenerated(this.PreemptionPolicy) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityClassList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]PriorityClass{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"PriorityClass\", \"PriorityClass\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&PriorityClassList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *PriorityClass) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityClass: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityClass: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Value\", wireType)\n\t\t\t}\n\t\t\tm.Value = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Value |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field GlobalDefault\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.GlobalDefault = bool(v != 0)\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Description\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Description = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PreemptionPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := k8s_io_api_core_v1.PreemptionPolicy(dAtA[iNdEx:postIndex])\n\t\t\tm.PreemptionPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityClassList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityClassList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityClassList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, PriorityClass{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.scheduling.v1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/scheduling/v1\";\n\n// PriorityClass defines mapping from a priority class name to the priority\n// integer value. The value can be any valid integer.\nmessage PriorityClass {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // value represents the integer value of this priority class. This is the actual priority that pods\n  // receive when they have the name of this class in their pod spec.\n  optional int32 value = 2;\n\n  // globalDefault specifies whether this PriorityClass should be considered as\n  // the default priority for pods that do not have any priority class.\n  // Only one PriorityClass can be marked as `globalDefault`. However, if more than\n  // one PriorityClasses exists with their `globalDefault` field set to true,\n  // the smallest value of such global default PriorityClasses will be used as the default priority.\n  // +optional\n  optional bool globalDefault = 3;\n\n  // description is an arbitrary string that usually provides guidelines on\n  // when this priority class should be used.\n  // +optional\n  optional string description = 4;\n\n  // preemptionPolicy is the Policy for preempting pods with lower priority.\n  // One of Never, PreemptLowerPriority.\n  // Defaults to PreemptLowerPriority if unset.\n  // +optional\n  optional string preemptionPolicy = 5;\n}\n\n// PriorityClassList is a collection of priority classes.\nmessage PriorityClassList {\n  // Standard list metadata\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of PriorityClasses\n  repeated PriorityClass items = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1/register.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"scheduling.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\n\t// SchemeBuilder is a collection of functions that add things to a scheme.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\t// AddToScheme applies all the stored functions to the scheme.\n\tAddToScheme = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&PriorityClass{},\n\t\t&PriorityClassList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1/types.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tapiv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.14\n\n// PriorityClass defines mapping from a priority class name to the priority\n// integer value. The value can be any valid integer.\ntype PriorityClass struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// value represents the integer value of this priority class. This is the actual priority that pods\n\t// receive when they have the name of this class in their pod spec.\n\tValue int32 `json:\"value\" protobuf:\"bytes,2,opt,name=value\"`\n\n\t// globalDefault specifies whether this PriorityClass should be considered as\n\t// the default priority for pods that do not have any priority class.\n\t// Only one PriorityClass can be marked as `globalDefault`. However, if more than\n\t// one PriorityClasses exists with their `globalDefault` field set to true,\n\t// the smallest value of such global default PriorityClasses will be used as the default priority.\n\t// +optional\n\tGlobalDefault bool `json:\"globalDefault,omitempty\" protobuf:\"bytes,3,opt,name=globalDefault\"`\n\n\t// description is an arbitrary string that usually provides guidelines on\n\t// when this priority class should be used.\n\t// +optional\n\tDescription string `json:\"description,omitempty\" protobuf:\"bytes,4,opt,name=description\"`\n\n\t// preemptionPolicy is the Policy for preempting pods with lower priority.\n\t// One of Never, PreemptLowerPriority.\n\t// Defaults to PreemptLowerPriority if unset.\n\t// +optional\n\tPreemptionPolicy *apiv1.PreemptionPolicy `json:\"preemptionPolicy,omitempty\" protobuf:\"bytes,5,opt,name=preemptionPolicy\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.14\n\n// PriorityClassList is a collection of priority classes.\ntype PriorityClassList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of PriorityClasses\n\tItems []PriorityClass `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_PriorityClass = map[string]string{\n\t\"\":                 \"PriorityClass defines mapping from a priority class name to the priority integer value. The value can be any valid integer.\",\n\t\"metadata\":         \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"value\":            \"value represents the integer value of this priority class. This is the actual priority that pods receive when they have the name of this class in their pod spec.\",\n\t\"globalDefault\":    \"globalDefault specifies whether this PriorityClass should be considered as the default priority for pods that do not have any priority class. Only one PriorityClass can be marked as `globalDefault`. However, if more than one PriorityClasses exists with their `globalDefault` field set to true, the smallest value of such global default PriorityClasses will be used as the default priority.\",\n\t\"description\":      \"description is an arbitrary string that usually provides guidelines on when this priority class should be used.\",\n\t\"preemptionPolicy\": \"preemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset.\",\n}\n\nfunc (PriorityClass) SwaggerDoc() map[string]string {\n\treturn map_PriorityClass\n}\n\nvar map_PriorityClassList = map[string]string{\n\t\"\":         \"PriorityClassList is a collection of priority classes.\",\n\t\"metadata\": \"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of PriorityClasses\",\n}\n\nfunc (PriorityClassList) SwaggerDoc() map[string]string {\n\treturn map_PriorityClassList\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityClass) DeepCopyInto(out *PriorityClass) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.PreemptionPolicy != nil {\n\t\tin, out := &in.PreemptionPolicy, &out.PreemptionPolicy\n\t\t*out = new(corev1.PreemptionPolicy)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityClass.\nfunc (in *PriorityClass) DeepCopy() *PriorityClass {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityClass)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PriorityClass) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityClassList) DeepCopyInto(out *PriorityClassList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]PriorityClass, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityClassList.\nfunc (in *PriorityClassList) DeepCopy() *PriorityClassList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityClassList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PriorityClassList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *PriorityClass) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 14\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *PriorityClassList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 14\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1alpha1/doc.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n\n// +groupName=scheduling.k8s.io\n\npackage v1alpha1 // import \"k8s.io/api/scheduling/v1alpha1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1alpha1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/scheduling/v1alpha1/generated.proto\n\npackage v1alpha1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *PriorityClass) Reset()      { *m = PriorityClass{} }\nfunc (*PriorityClass) ProtoMessage() {}\nfunc (*PriorityClass) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_260442fbb28d876a, []int{0}\n}\nfunc (m *PriorityClass) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityClass) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityClass) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityClass.Merge(m, src)\n}\nfunc (m *PriorityClass) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityClass) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityClass.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityClass proto.InternalMessageInfo\n\nfunc (m *PriorityClassList) Reset()      { *m = PriorityClassList{} }\nfunc (*PriorityClassList) ProtoMessage() {}\nfunc (*PriorityClassList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_260442fbb28d876a, []int{1}\n}\nfunc (m *PriorityClassList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityClassList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityClassList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityClassList.Merge(m, src)\n}\nfunc (m *PriorityClassList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityClassList) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityClassList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityClassList proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*PriorityClass)(nil), \"k8s.io.api.scheduling.v1alpha1.PriorityClass\")\n\tproto.RegisterType((*PriorityClassList)(nil), \"k8s.io.api.scheduling.v1alpha1.PriorityClassList\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/scheduling/v1alpha1/generated.proto\", fileDescriptor_260442fbb28d876a)\n}\n\nvar fileDescriptor_260442fbb28d876a = []byte{\n\t// 480 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x93, 0x31, 0x8f, 0xd3, 0x30,\n\t0x18, 0x86, 0xeb, 0x1e, 0x91, 0x8a, 0xab, 0x4a, 0x25, 0x08, 0x29, 0xea, 0xe0, 0x46, 0xbd, 0x25,\n\t0xcb, 0xd9, 0xf4, 0x04, 0x08, 0xe9, 0xb6, 0x50, 0x09, 0x21, 0x81, 0xa8, 0x32, 0x30, 0x20, 0x06,\n\t0xdc, 0xd4, 0xe7, 0x9a, 0x26, 0x71, 0x64, 0x3b, 0x95, 0xba, 0xf1, 0x13, 0xf8, 0x53, 0x48, 0x1d,\n\t0x6f, 0xbc, 0xa9, 0xa2, 0xe1, 0x27, 0xb0, 0x31, 0xa1, 0xa4, 0xbd, 0x4b, 0xdb, 0xc0, 0x71, 0x5b,\n\t0xbe, 0xef, 0x7b, 0xde, 0xd7, 0xf6, 0x1b, 0x1b, 0xe2, 0xf9, 0x4b, 0x8d, 0x85, 0x24, 0x34, 0x15,\n\t0x44, 0x87, 0x33, 0x36, 0xcd, 0x22, 0x91, 0x70, 0xb2, 0x18, 0xd2, 0x28, 0x9d, 0xd1, 0x21, 0xe1,\n\t0x2c, 0x61, 0x8a, 0x1a, 0x36, 0xc5, 0xa9, 0x92, 0x46, 0xda, 0x68, 0xcb, 0x63, 0x9a, 0x0a, 0x5c,\n\t0xf1, 0xf8, 0x86, 0xef, 0x9d, 0x71, 0x61, 0x66, 0xd9, 0x04, 0x87, 0x32, 0x26, 0x5c, 0x72, 0x49,\n\t0x4a, 0xd9, 0x24, 0xbb, 0x2c, 0xab, 0xb2, 0x28, 0xbf, 0xb6, 0x76, 0xbd, 0xc1, 0xde, 0xf2, 0xa1,\n\t0x54, 0x8c, 0x2c, 0x6a, 0x4b, 0xf6, 0x9e, 0x55, 0x4c, 0x4c, 0xc3, 0x99, 0x48, 0x98, 0x5a, 0x92,\n\t0x74, 0xce, 0x8b, 0x86, 0x26, 0x31, 0x33, 0xf4, 0x6f, 0x2a, 0xf2, 0x2f, 0x95, 0xca, 0x12, 0x23,\n\t0x62, 0x56, 0x13, 0xbc, 0xf8, 0x9f, 0xa0, 0x38, 0x6e, 0x4c, 0x8f, 0x75, 0x83, 0x5f, 0x4d, 0xd8,\n\t0x19, 0x2b, 0x21, 0x95, 0x30, 0xcb, 0x57, 0x11, 0xd5, 0xda, 0xfe, 0x0c, 0x5b, 0xc5, 0xae, 0xa6,\n\t0xd4, 0x50, 0x07, 0xb8, 0xc0, 0x6b, 0x9f, 0x3f, 0xc5, 0x55, 0x6c, 0xb7, 0xe6, 0x38, 0x9d, 0xf3,\n\t0xa2, 0xa1, 0x71, 0x41, 0xe3, 0xc5, 0x10, 0xbf, 0x9f, 0x7c, 0x61, 0xa1, 0x79, 0xc7, 0x0c, 0xf5,\n\t0xed, 0xd5, 0xba, 0xdf, 0xc8, 0xd7, 0x7d, 0x58, 0xf5, 0x82, 0x5b, 0x57, 0xfb, 0x14, 0x5a, 0x0b,\n\t0x1a, 0x65, 0xcc, 0x69, 0xba, 0xc0, 0xb3, 0xfc, 0xce, 0x0e, 0xb6, 0x3e, 0x14, 0xcd, 0x60, 0x3b,\n\t0xb3, 0x2f, 0x60, 0x87, 0x47, 0x72, 0x42, 0xa3, 0x11, 0xbb, 0xa4, 0x59, 0x64, 0x9c, 0x13, 0x17,\n\t0x78, 0x2d, 0xff, 0xc9, 0x0e, 0xee, 0xbc, 0xde, 0x1f, 0x06, 0x87, 0xac, 0xfd, 0x1c, 0xb6, 0xa7,\n\t0x4c, 0x87, 0x4a, 0xa4, 0x46, 0xc8, 0xc4, 0x79, 0xe0, 0x02, 0xef, 0xa1, 0xff, 0x78, 0x27, 0x6d,\n\t0x8f, 0xaa, 0x51, 0xb0, 0xcf, 0xd9, 0x1c, 0x76, 0x53, 0xc5, 0x58, 0x5c, 0x56, 0x63, 0x19, 0x89,\n\t0x70, 0xe9, 0x58, 0xa5, 0xf6, 0x22, 0x5f, 0xf7, 0xbb, 0xe3, 0xa3, 0xd9, 0xef, 0x75, 0xff, 0xb4,\n\t0x7e, 0x03, 0xf0, 0x31, 0x16, 0xd4, 0x4c, 0x07, 0xdf, 0x01, 0x7c, 0x74, 0x90, 0xfa, 0x5b, 0xa1,\n\t0x8d, 0xfd, 0xa9, 0x96, 0x3c, 0xbe, 0x5f, 0xf2, 0x85, 0xba, 0xcc, 0xbd, 0xbb, 0x3b, 0x62, 0xeb,\n\t0xa6, 0xb3, 0x97, 0x7a, 0x00, 0x2d, 0x61, 0x58, 0xac, 0x9d, 0xa6, 0x7b, 0xe2, 0xb5, 0xcf, 0xcf,\n\t0xf0, 0xdd, 0x6f, 0x01, 0x1f, 0xec, 0xaf, 0xfa, 0x49, 0x6f, 0x0a, 0x8f, 0x60, 0x6b, 0xe5, 0x8f,\n\t0x56, 0x1b, 0xd4, 0xb8, 0xda, 0xa0, 0xc6, 0xf5, 0x06, 0x35, 0xbe, 0xe6, 0x08, 0xac, 0x72, 0x04,\n\t0xae, 0x72, 0x04, 0xae, 0x73, 0x04, 0x7e, 0xe4, 0x08, 0x7c, 0xfb, 0x89, 0x1a, 0x1f, 0xd1, 0xdd,\n\t0xaf, 0xf4, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x8e, 0xfe, 0x45, 0x7e, 0xc6, 0x03, 0x00, 0x00,\n}\n\nfunc (m *PriorityClass) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityClass) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityClass) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.PreemptionPolicy != nil {\n\t\ti -= len(*m.PreemptionPolicy)\n\t\tcopy(dAtA[i:], *m.PreemptionPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.PreemptionPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\ti -= len(m.Description)\n\tcopy(dAtA[i:], m.Description)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Description)))\n\ti--\n\tdAtA[i] = 0x22\n\ti--\n\tif m.GlobalDefault {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Value))\n\ti--\n\tdAtA[i] = 0x10\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityClassList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityClassList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityClassList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *PriorityClass) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.Value))\n\tn += 2\n\tl = len(m.Description)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.PreemptionPolicy != nil {\n\t\tl = len(*m.PreemptionPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PriorityClassList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *PriorityClass) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PriorityClass{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Value:` + fmt.Sprintf(\"%v\", this.Value) + `,`,\n\t\t`GlobalDefault:` + fmt.Sprintf(\"%v\", this.GlobalDefault) + `,`,\n\t\t`Description:` + fmt.Sprintf(\"%v\", this.Description) + `,`,\n\t\t`PreemptionPolicy:` + valueToStringGenerated(this.PreemptionPolicy) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityClassList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]PriorityClass{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"PriorityClass\", \"PriorityClass\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&PriorityClassList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *PriorityClass) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityClass: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityClass: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Value\", wireType)\n\t\t\t}\n\t\t\tm.Value = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Value |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field GlobalDefault\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.GlobalDefault = bool(v != 0)\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Description\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Description = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PreemptionPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := k8s_io_api_core_v1.PreemptionPolicy(dAtA[iNdEx:postIndex])\n\t\t\tm.PreemptionPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityClassList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityClassList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityClassList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, PriorityClass{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1alpha1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.scheduling.v1alpha1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/scheduling/v1alpha1\";\n\n// DEPRECATED - This group version of PriorityClass is deprecated by scheduling.k8s.io/v1/PriorityClass.\n// PriorityClass defines mapping from a priority class name to the priority\n// integer value. The value can be any valid integer.\nmessage PriorityClass {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // value represents the integer value of this priority class. This is the actual priority that pods\n  // receive when they have the name of this class in their pod spec.\n  optional int32 value = 2;\n\n  // globalDefault specifies whether this PriorityClass should be considered as\n  // the default priority for pods that do not have any priority class.\n  // Only one PriorityClass can be marked as `globalDefault`. However, if more than\n  // one PriorityClasses exists with their `globalDefault` field set to true,\n  // the smallest value of such global default PriorityClasses will be used as the default priority.\n  // +optional\n  optional bool globalDefault = 3;\n\n  // description is an arbitrary string that usually provides guidelines on\n  // when this priority class should be used.\n  // +optional\n  optional string description = 4;\n\n  // preemptionPolicy is the Policy for preempting pods with lower priority.\n  // One of Never, PreemptLowerPriority.\n  // Defaults to PreemptLowerPriority if unset.\n  // +optional\n  optional string preemptionPolicy = 5;\n}\n\n// PriorityClassList is a collection of priority classes.\nmessage PriorityClassList {\n  // Standard list metadata\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of PriorityClasses\n  repeated PriorityClass items = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1alpha1/register.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"scheduling.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1alpha1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&PriorityClass{},\n\t\t&PriorityClassList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1alpha1/types.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nimport (\n\tapiv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// DEPRECATED - This group version of PriorityClass is deprecated by scheduling.k8s.io/v1/PriorityClass.\n// PriorityClass defines mapping from a priority class name to the priority\n// integer value. The value can be any valid integer.\ntype PriorityClass struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// value represents the integer value of this priority class. This is the actual priority that pods\n\t// receive when they have the name of this class in their pod spec.\n\tValue int32 `json:\"value\" protobuf:\"bytes,2,opt,name=value\"`\n\n\t// globalDefault specifies whether this PriorityClass should be considered as\n\t// the default priority for pods that do not have any priority class.\n\t// Only one PriorityClass can be marked as `globalDefault`. However, if more than\n\t// one PriorityClasses exists with their `globalDefault` field set to true,\n\t// the smallest value of such global default PriorityClasses will be used as the default priority.\n\t// +optional\n\tGlobalDefault bool `json:\"globalDefault,omitempty\" protobuf:\"bytes,3,opt,name=globalDefault\"`\n\n\t// description is an arbitrary string that usually provides guidelines on\n\t// when this priority class should be used.\n\t// +optional\n\tDescription string `json:\"description,omitempty\" protobuf:\"bytes,4,opt,name=description\"`\n\n\t// preemptionPolicy is the Policy for preempting pods with lower priority.\n\t// One of Never, PreemptLowerPriority.\n\t// Defaults to PreemptLowerPriority if unset.\n\t// +optional\n\tPreemptionPolicy *apiv1.PreemptionPolicy `json:\"preemptionPolicy,omitempty\" protobuf:\"bytes,5,opt,name=preemptionPolicy\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// PriorityClassList is a collection of priority classes.\ntype PriorityClassList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of PriorityClasses\n\tItems []PriorityClass `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1alpha1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_PriorityClass = map[string]string{\n\t\"\":                 \"DEPRECATED - This group version of PriorityClass is deprecated by scheduling.k8s.io/v1/PriorityClass. PriorityClass defines mapping from a priority class name to the priority integer value. The value can be any valid integer.\",\n\t\"metadata\":         \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"value\":            \"value represents the integer value of this priority class. This is the actual priority that pods receive when they have the name of this class in their pod spec.\",\n\t\"globalDefault\":    \"globalDefault specifies whether this PriorityClass should be considered as the default priority for pods that do not have any priority class. Only one PriorityClass can be marked as `globalDefault`. However, if more than one PriorityClasses exists with their `globalDefault` field set to true, the smallest value of such global default PriorityClasses will be used as the default priority.\",\n\t\"description\":      \"description is an arbitrary string that usually provides guidelines on when this priority class should be used.\",\n\t\"preemptionPolicy\": \"preemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset.\",\n}\n\nfunc (PriorityClass) SwaggerDoc() map[string]string {\n\treturn map_PriorityClass\n}\n\nvar map_PriorityClassList = map[string]string{\n\t\"\":         \"PriorityClassList is a collection of priority classes.\",\n\t\"metadata\": \"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of PriorityClasses\",\n}\n\nfunc (PriorityClassList) SwaggerDoc() map[string]string {\n\treturn map_PriorityClassList\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1alpha1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityClass) DeepCopyInto(out *PriorityClass) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.PreemptionPolicy != nil {\n\t\tin, out := &in.PreemptionPolicy, &out.PreemptionPolicy\n\t\t*out = new(v1.PreemptionPolicy)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityClass.\nfunc (in *PriorityClass) DeepCopy() *PriorityClass {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityClass)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PriorityClass) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityClassList) DeepCopyInto(out *PriorityClassList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]PriorityClass, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityClassList.\nfunc (in *PriorityClassList) DeepCopy() *PriorityClassList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityClassList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PriorityClassList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1beta1/doc.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\n// +groupName=scheduling.k8s.io\n\npackage v1beta1 // import \"k8s.io/api/scheduling/v1beta1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1beta1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/scheduling/v1beta1/generated.proto\n\npackage v1beta1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *PriorityClass) Reset()      { *m = PriorityClass{} }\nfunc (*PriorityClass) ProtoMessage() {}\nfunc (*PriorityClass) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_9edc3acf997efcf2, []int{0}\n}\nfunc (m *PriorityClass) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityClass) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityClass) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityClass.Merge(m, src)\n}\nfunc (m *PriorityClass) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityClass) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityClass.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityClass proto.InternalMessageInfo\n\nfunc (m *PriorityClassList) Reset()      { *m = PriorityClassList{} }\nfunc (*PriorityClassList) ProtoMessage() {}\nfunc (*PriorityClassList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_9edc3acf997efcf2, []int{1}\n}\nfunc (m *PriorityClassList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PriorityClassList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PriorityClassList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PriorityClassList.Merge(m, src)\n}\nfunc (m *PriorityClassList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PriorityClassList) XXX_DiscardUnknown() {\n\txxx_messageInfo_PriorityClassList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PriorityClassList proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*PriorityClass)(nil), \"k8s.io.api.scheduling.v1beta1.PriorityClass\")\n\tproto.RegisterType((*PriorityClassList)(nil), \"k8s.io.api.scheduling.v1beta1.PriorityClassList\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/scheduling/v1beta1/generated.proto\", fileDescriptor_9edc3acf997efcf2)\n}\n\nvar fileDescriptor_9edc3acf997efcf2 = []byte{\n\t// 481 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x93, 0x31, 0x8f, 0xd3, 0x30,\n\t0x18, 0x86, 0xe3, 0x1e, 0x91, 0x8a, 0xab, 0x4a, 0x25, 0x08, 0x29, 0xaa, 0x74, 0x69, 0xd4, 0x5b,\n\t0x32, 0x70, 0x36, 0x3d, 0x01, 0x42, 0xba, 0x2d, 0x77, 0x12, 0x42, 0x02, 0x51, 0x32, 0x30, 0x20,\n\t0x06, 0x9c, 0xd4, 0x97, 0x9a, 0x26, 0x71, 0x64, 0x3b, 0x95, 0xba, 0xf1, 0x13, 0xf8, 0x51, 0x0c,\n\t0x1d, 0x6f, 0xbc, 0xa9, 0xa2, 0xe1, 0x27, 0xb0, 0x31, 0xa1, 0xa4, 0xe1, 0xd2, 0x36, 0x50, 0x6e,\n\t0xcb, 0xf7, 0x7d, 0xcf, 0xfb, 0xda, 0x7e, 0x63, 0xc3, 0xd3, 0xd9, 0x0b, 0x89, 0x18, 0xc7, 0x24,\n\t0x65, 0x58, 0x06, 0x53, 0x3a, 0xc9, 0x22, 0x96, 0x84, 0x78, 0x3e, 0xf2, 0xa9, 0x22, 0x23, 0x1c,\n\t0xd2, 0x84, 0x0a, 0xa2, 0xe8, 0x04, 0xa5, 0x82, 0x2b, 0x6e, 0x1c, 0x6f, 0x70, 0x44, 0x52, 0x86,\n\t0x6a, 0x1c, 0x55, 0x78, 0xff, 0x34, 0x64, 0x6a, 0x9a, 0xf9, 0x28, 0xe0, 0x31, 0x0e, 0x79, 0xc8,\n\t0x71, 0xa9, 0xf2, 0xb3, 0xab, 0xb2, 0x2a, 0x8b, 0xf2, 0x6b, 0xe3, 0xd6, 0x1f, 0x6e, 0x2d, 0x1e,\n\t0x70, 0x41, 0xf1, 0xbc, 0xb1, 0x62, 0xff, 0x69, 0xcd, 0xc4, 0x24, 0x98, 0xb2, 0x84, 0x8a, 0x05,\n\t0x4e, 0x67, 0x61, 0xd1, 0x90, 0x38, 0xa6, 0x8a, 0xfc, 0x4d, 0x85, 0xff, 0xa5, 0x12, 0x59, 0xa2,\n\t0x58, 0x4c, 0x1b, 0x82, 0xe7, 0xff, 0x13, 0x14, 0xa7, 0x8d, 0xc9, 0xbe, 0x6e, 0xf8, 0xb3, 0x05,\n\t0xbb, 0x63, 0xc1, 0xb8, 0x60, 0x6a, 0x71, 0x11, 0x11, 0x29, 0x8d, 0x4f, 0xb0, 0x5d, 0xec, 0x6a,\n\t0x42, 0x14, 0x31, 0x81, 0x0d, 0x9c, 0xce, 0xd9, 0x13, 0x54, 0xa7, 0x76, 0x6b, 0x8e, 0xd2, 0x59,\n\t0x58, 0x34, 0x24, 0x2a, 0x68, 0x34, 0x1f, 0xa1, 0xb7, 0xfe, 0x67, 0x1a, 0xa8, 0x37, 0x54, 0x11,\n\t0xd7, 0x58, 0xae, 0x06, 0x5a, 0xbe, 0x1a, 0xc0, 0xba, 0xe7, 0xdd, 0xba, 0x1a, 0x27, 0x50, 0x9f,\n\t0x93, 0x28, 0xa3, 0x66, 0xcb, 0x06, 0x8e, 0xee, 0x76, 0x2b, 0x58, 0x7f, 0x5f, 0x34, 0xbd, 0xcd,\n\t0xcc, 0x38, 0x87, 0xdd, 0x30, 0xe2, 0x3e, 0x89, 0x2e, 0xe9, 0x15, 0xc9, 0x22, 0x65, 0x1e, 0xd9,\n\t0xc0, 0x69, 0xbb, 0x8f, 0x2a, 0xb8, 0xfb, 0x72, 0x7b, 0xe8, 0xed, 0xb2, 0xc6, 0x33, 0xd8, 0x99,\n\t0x50, 0x19, 0x08, 0x96, 0x2a, 0xc6, 0x13, 0xf3, 0x9e, 0x0d, 0x9c, 0xfb, 0xee, 0xc3, 0x4a, 0xda,\n\t0xb9, 0xac, 0x47, 0xde, 0x36, 0x67, 0x84, 0xb0, 0x97, 0x0a, 0x4a, 0xe3, 0xb2, 0x1a, 0xf3, 0x88,\n\t0x05, 0x0b, 0x53, 0x2f, 0xb5, 0xe7, 0xf9, 0x6a, 0xd0, 0x1b, 0xef, 0xcd, 0x7e, 0xad, 0x06, 0x27,\n\t0xcd, 0x1b, 0x80, 0xf6, 0x31, 0xaf, 0x61, 0x3a, 0xfc, 0x06, 0xe0, 0x83, 0x9d, 0xd4, 0x5f, 0x33,\n\t0xa9, 0x8c, 0x8f, 0x8d, 0xe4, 0xd1, 0xdd, 0x92, 0x2f, 0xd4, 0x65, 0xee, 0xbd, 0xea, 0x88, 0xed,\n\t0x3f, 0x9d, 0xad, 0xd4, 0xdf, 0x41, 0x9d, 0x29, 0x1a, 0x4b, 0xb3, 0x65, 0x1f, 0x39, 0x9d, 0xb3,\n\t0xc7, 0xe8, 0xe0, 0x53, 0x40, 0x3b, 0xdb, 0xab, 0xff, 0xd1, 0xab, 0xc2, 0xc2, 0xdb, 0x38, 0xb9,\n\t0x17, 0xcb, 0xb5, 0xa5, 0x5d, 0xaf, 0x2d, 0xed, 0x66, 0x6d, 0x69, 0x5f, 0x72, 0x0b, 0x2c, 0x73,\n\t0x0b, 0x5c, 0xe7, 0x16, 0xb8, 0xc9, 0x2d, 0xf0, 0x3d, 0xb7, 0xc0, 0xd7, 0x1f, 0x96, 0xf6, 0xe1,\n\t0xf8, 0xe0, 0x13, 0xfd, 0x1d, 0x00, 0x00, 0xff, 0xff, 0x04, 0x2e, 0xb0, 0xce, 0xc2, 0x03, 0x00,\n\t0x00,\n}\n\nfunc (m *PriorityClass) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityClass) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityClass) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.PreemptionPolicy != nil {\n\t\ti -= len(*m.PreemptionPolicy)\n\t\tcopy(dAtA[i:], *m.PreemptionPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.PreemptionPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\ti -= len(m.Description)\n\tcopy(dAtA[i:], m.Description)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Description)))\n\ti--\n\tdAtA[i] = 0x22\n\ti--\n\tif m.GlobalDefault {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x18\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Value))\n\ti--\n\tdAtA[i] = 0x10\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PriorityClassList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PriorityClassList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PriorityClassList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *PriorityClass) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.Value))\n\tn += 2\n\tl = len(m.Description)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.PreemptionPolicy != nil {\n\t\tl = len(*m.PreemptionPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *PriorityClassList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *PriorityClass) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PriorityClass{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Value:` + fmt.Sprintf(\"%v\", this.Value) + `,`,\n\t\t`GlobalDefault:` + fmt.Sprintf(\"%v\", this.GlobalDefault) + `,`,\n\t\t`Description:` + fmt.Sprintf(\"%v\", this.Description) + `,`,\n\t\t`PreemptionPolicy:` + valueToStringGenerated(this.PreemptionPolicy) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PriorityClassList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]PriorityClass{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"PriorityClass\", \"PriorityClass\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&PriorityClassList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *PriorityClass) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityClass: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityClass: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Value\", wireType)\n\t\t\t}\n\t\t\tm.Value = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Value |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field GlobalDefault\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.GlobalDefault = bool(v != 0)\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Description\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Description = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PreemptionPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := k8s_io_api_core_v1.PreemptionPolicy(dAtA[iNdEx:postIndex])\n\t\t\tm.PreemptionPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PriorityClassList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityClassList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PriorityClassList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, PriorityClass{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1beta1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.scheduling.v1beta1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/scheduling/v1beta1\";\n\n// DEPRECATED - This group version of PriorityClass is deprecated by scheduling.k8s.io/v1/PriorityClass.\n// PriorityClass defines mapping from a priority class name to the priority\n// integer value. The value can be any valid integer.\nmessage PriorityClass {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // value represents the integer value of this priority class. This is the actual priority that pods\n  // receive when they have the name of this class in their pod spec.\n  optional int32 value = 2;\n\n  // globalDefault specifies whether this PriorityClass should be considered as\n  // the default priority for pods that do not have any priority class.\n  // Only one PriorityClass can be marked as `globalDefault`. However, if more than\n  // one PriorityClasses exists with their `globalDefault` field set to true,\n  // the smallest value of such global default PriorityClasses will be used as the default priority.\n  // +optional\n  optional bool globalDefault = 3;\n\n  // description is an arbitrary string that usually provides guidelines on\n  // when this priority class should be used.\n  // +optional\n  optional string description = 4;\n\n  // preemptionPolicy is the Policy for preempting pods with lower priority.\n  // One of Never, PreemptLowerPriority.\n  // Defaults to PreemptLowerPriority if unset.\n  // +optional\n  optional string preemptionPolicy = 5;\n}\n\n// PriorityClassList is a collection of priority classes.\nmessage PriorityClassList {\n  // Standard list metadata\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of PriorityClasses\n  repeated PriorityClass items = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1beta1/register.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"scheduling.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&PriorityClass{},\n\t\t&PriorityClassList{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1beta1/types.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tapiv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.11\n// +k8s:prerelease-lifecycle-gen:deprecated=1.14\n// +k8s:prerelease-lifecycle-gen:removed=1.22\n// +k8s:prerelease-lifecycle-gen:replacement=scheduling.k8s.io,v1,PriorityClass\n\n// DEPRECATED - This group version of PriorityClass is deprecated by scheduling.k8s.io/v1/PriorityClass.\n// PriorityClass defines mapping from a priority class name to the priority\n// integer value. The value can be any valid integer.\ntype PriorityClass struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// value represents the integer value of this priority class. This is the actual priority that pods\n\t// receive when they have the name of this class in their pod spec.\n\tValue int32 `json:\"value\" protobuf:\"bytes,2,opt,name=value\"`\n\n\t// globalDefault specifies whether this PriorityClass should be considered as\n\t// the default priority for pods that do not have any priority class.\n\t// Only one PriorityClass can be marked as `globalDefault`. However, if more than\n\t// one PriorityClasses exists with their `globalDefault` field set to true,\n\t// the smallest value of such global default PriorityClasses will be used as the default priority.\n\t// +optional\n\tGlobalDefault bool `json:\"globalDefault,omitempty\" protobuf:\"bytes,3,opt,name=globalDefault\"`\n\n\t// description is an arbitrary string that usually provides guidelines on\n\t// when this priority class should be used.\n\t// +optional\n\tDescription string `json:\"description,omitempty\" protobuf:\"bytes,4,opt,name=description\"`\n\n\t// preemptionPolicy is the Policy for preempting pods with lower priority.\n\t// One of Never, PreemptLowerPriority.\n\t// Defaults to PreemptLowerPriority if unset.\n\t// +optional\n\tPreemptionPolicy *apiv1.PreemptionPolicy `json:\"preemptionPolicy,omitempty\" protobuf:\"bytes,5,opt,name=preemptionPolicy\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.11\n// +k8s:prerelease-lifecycle-gen:deprecated=1.14\n// +k8s:prerelease-lifecycle-gen:removed=1.22\n// +k8s:prerelease-lifecycle-gen:replacement=scheduling.k8s.io,v1,PriorityClassList\n\n// PriorityClassList is a collection of priority classes.\ntype PriorityClassList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of PriorityClasses\n\tItems []PriorityClass `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1beta1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_PriorityClass = map[string]string{\n\t\"\":                 \"DEPRECATED - This group version of PriorityClass is deprecated by scheduling.k8s.io/v1/PriorityClass. PriorityClass defines mapping from a priority class name to the priority integer value. The value can be any valid integer.\",\n\t\"metadata\":         \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"value\":            \"value represents the integer value of this priority class. This is the actual priority that pods receive when they have the name of this class in their pod spec.\",\n\t\"globalDefault\":    \"globalDefault specifies whether this PriorityClass should be considered as the default priority for pods that do not have any priority class. Only one PriorityClass can be marked as `globalDefault`. However, if more than one PriorityClasses exists with their `globalDefault` field set to true, the smallest value of such global default PriorityClasses will be used as the default priority.\",\n\t\"description\":      \"description is an arbitrary string that usually provides guidelines on when this priority class should be used.\",\n\t\"preemptionPolicy\": \"preemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset.\",\n}\n\nfunc (PriorityClass) SwaggerDoc() map[string]string {\n\treturn map_PriorityClass\n}\n\nvar map_PriorityClassList = map[string]string{\n\t\"\":         \"PriorityClassList is a collection of priority classes.\",\n\t\"metadata\": \"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of PriorityClasses\",\n}\n\nfunc (PriorityClassList) SwaggerDoc() map[string]string {\n\treturn map_PriorityClassList\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1beta1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityClass) DeepCopyInto(out *PriorityClass) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.PreemptionPolicy != nil {\n\t\tin, out := &in.PreemptionPolicy, &out.PreemptionPolicy\n\t\t*out = new(v1.PreemptionPolicy)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityClass.\nfunc (in *PriorityClass) DeepCopy() *PriorityClass {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityClass)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PriorityClass) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PriorityClassList) DeepCopyInto(out *PriorityClassList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]PriorityClass, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PriorityClassList.\nfunc (in *PriorityClassList) DeepCopy() *PriorityClassList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PriorityClassList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PriorityClassList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/scheduling/v1beta1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *PriorityClass) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 11\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *PriorityClass) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 14\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *PriorityClass) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"scheduling.k8s.io\", Version: \"v1\", Kind: \"PriorityClass\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *PriorityClass) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *PriorityClassList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 11\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *PriorityClassList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 14\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *PriorityClassList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"scheduling.k8s.io\", Version: \"v1\", Kind: \"PriorityClassList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *PriorityClassList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1/doc.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +groupName=storage.k8s.io\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\npackage v1 // import \"k8s.io/api/storage/v1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/storage/v1/generated.proto\n\npackage v1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\tv11 \"k8s.io/api/core/v1\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *CSIDriver) Reset()      { *m = CSIDriver{} }\nfunc (*CSIDriver) ProtoMessage() {}\nfunc (*CSIDriver) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_662262cc70094b41, []int{0}\n}\nfunc (m *CSIDriver) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSIDriver) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSIDriver) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSIDriver.Merge(m, src)\n}\nfunc (m *CSIDriver) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSIDriver) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSIDriver.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSIDriver proto.InternalMessageInfo\n\nfunc (m *CSIDriverList) Reset()      { *m = CSIDriverList{} }\nfunc (*CSIDriverList) ProtoMessage() {}\nfunc (*CSIDriverList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_662262cc70094b41, []int{1}\n}\nfunc (m *CSIDriverList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSIDriverList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSIDriverList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSIDriverList.Merge(m, src)\n}\nfunc (m *CSIDriverList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSIDriverList) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSIDriverList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSIDriverList proto.InternalMessageInfo\n\nfunc (m *CSIDriverSpec) Reset()      { *m = CSIDriverSpec{} }\nfunc (*CSIDriverSpec) ProtoMessage() {}\nfunc (*CSIDriverSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_662262cc70094b41, []int{2}\n}\nfunc (m *CSIDriverSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSIDriverSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSIDriverSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSIDriverSpec.Merge(m, src)\n}\nfunc (m *CSIDriverSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSIDriverSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSIDriverSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSIDriverSpec proto.InternalMessageInfo\n\nfunc (m *CSINode) Reset()      { *m = CSINode{} }\nfunc (*CSINode) ProtoMessage() {}\nfunc (*CSINode) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_662262cc70094b41, []int{3}\n}\nfunc (m *CSINode) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSINode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSINode) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSINode.Merge(m, src)\n}\nfunc (m *CSINode) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSINode) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSINode.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSINode proto.InternalMessageInfo\n\nfunc (m *CSINodeDriver) Reset()      { *m = CSINodeDriver{} }\nfunc (*CSINodeDriver) ProtoMessage() {}\nfunc (*CSINodeDriver) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_662262cc70094b41, []int{4}\n}\nfunc (m *CSINodeDriver) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSINodeDriver) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSINodeDriver) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSINodeDriver.Merge(m, src)\n}\nfunc (m *CSINodeDriver) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSINodeDriver) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSINodeDriver.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSINodeDriver proto.InternalMessageInfo\n\nfunc (m *CSINodeList) Reset()      { *m = CSINodeList{} }\nfunc (*CSINodeList) ProtoMessage() {}\nfunc (*CSINodeList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_662262cc70094b41, []int{5}\n}\nfunc (m *CSINodeList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSINodeList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSINodeList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSINodeList.Merge(m, src)\n}\nfunc (m *CSINodeList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSINodeList) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSINodeList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSINodeList proto.InternalMessageInfo\n\nfunc (m *CSINodeSpec) Reset()      { *m = CSINodeSpec{} }\nfunc (*CSINodeSpec) ProtoMessage() {}\nfunc (*CSINodeSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_662262cc70094b41, []int{6}\n}\nfunc (m *CSINodeSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSINodeSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSINodeSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSINodeSpec.Merge(m, src)\n}\nfunc (m *CSINodeSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSINodeSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSINodeSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSINodeSpec proto.InternalMessageInfo\n\nfunc (m *CSIStorageCapacity) Reset()      { *m = CSIStorageCapacity{} }\nfunc (*CSIStorageCapacity) ProtoMessage() {}\nfunc (*CSIStorageCapacity) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_662262cc70094b41, []int{7}\n}\nfunc (m *CSIStorageCapacity) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSIStorageCapacity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSIStorageCapacity) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSIStorageCapacity.Merge(m, src)\n}\nfunc (m *CSIStorageCapacity) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSIStorageCapacity) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSIStorageCapacity.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSIStorageCapacity proto.InternalMessageInfo\n\nfunc (m *CSIStorageCapacityList) Reset()      { *m = CSIStorageCapacityList{} }\nfunc (*CSIStorageCapacityList) ProtoMessage() {}\nfunc (*CSIStorageCapacityList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_662262cc70094b41, []int{8}\n}\nfunc (m *CSIStorageCapacityList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSIStorageCapacityList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSIStorageCapacityList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSIStorageCapacityList.Merge(m, src)\n}\nfunc (m *CSIStorageCapacityList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSIStorageCapacityList) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSIStorageCapacityList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSIStorageCapacityList proto.InternalMessageInfo\n\nfunc (m *StorageClass) Reset()      { *m = StorageClass{} }\nfunc (*StorageClass) ProtoMessage() {}\nfunc (*StorageClass) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_662262cc70094b41, []int{9}\n}\nfunc (m *StorageClass) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StorageClass) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StorageClass) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StorageClass.Merge(m, src)\n}\nfunc (m *StorageClass) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StorageClass) XXX_DiscardUnknown() {\n\txxx_messageInfo_StorageClass.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StorageClass proto.InternalMessageInfo\n\nfunc (m *StorageClassList) Reset()      { *m = StorageClassList{} }\nfunc (*StorageClassList) ProtoMessage() {}\nfunc (*StorageClassList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_662262cc70094b41, []int{10}\n}\nfunc (m *StorageClassList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StorageClassList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StorageClassList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StorageClassList.Merge(m, src)\n}\nfunc (m *StorageClassList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StorageClassList) XXX_DiscardUnknown() {\n\txxx_messageInfo_StorageClassList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StorageClassList proto.InternalMessageInfo\n\nfunc (m *TokenRequest) Reset()      { *m = TokenRequest{} }\nfunc (*TokenRequest) ProtoMessage() {}\nfunc (*TokenRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_662262cc70094b41, []int{11}\n}\nfunc (m *TokenRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TokenRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TokenRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TokenRequest.Merge(m, src)\n}\nfunc (m *TokenRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TokenRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_TokenRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TokenRequest proto.InternalMessageInfo\n\nfunc (m *VolumeAttachment) Reset()      { *m = VolumeAttachment{} }\nfunc (*VolumeAttachment) ProtoMessage() {}\nfunc (*VolumeAttachment) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_662262cc70094b41, []int{12}\n}\nfunc (m *VolumeAttachment) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeAttachment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeAttachment) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeAttachment.Merge(m, src)\n}\nfunc (m *VolumeAttachment) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeAttachment) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeAttachment.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeAttachment proto.InternalMessageInfo\n\nfunc (m *VolumeAttachmentList) Reset()      { *m = VolumeAttachmentList{} }\nfunc (*VolumeAttachmentList) ProtoMessage() {}\nfunc (*VolumeAttachmentList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_662262cc70094b41, []int{13}\n}\nfunc (m *VolumeAttachmentList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeAttachmentList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeAttachmentList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeAttachmentList.Merge(m, src)\n}\nfunc (m *VolumeAttachmentList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeAttachmentList) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeAttachmentList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeAttachmentList proto.InternalMessageInfo\n\nfunc (m *VolumeAttachmentSource) Reset()      { *m = VolumeAttachmentSource{} }\nfunc (*VolumeAttachmentSource) ProtoMessage() {}\nfunc (*VolumeAttachmentSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_662262cc70094b41, []int{14}\n}\nfunc (m *VolumeAttachmentSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeAttachmentSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeAttachmentSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeAttachmentSource.Merge(m, src)\n}\nfunc (m *VolumeAttachmentSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeAttachmentSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeAttachmentSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeAttachmentSource proto.InternalMessageInfo\n\nfunc (m *VolumeAttachmentSpec) Reset()      { *m = VolumeAttachmentSpec{} }\nfunc (*VolumeAttachmentSpec) ProtoMessage() {}\nfunc (*VolumeAttachmentSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_662262cc70094b41, []int{15}\n}\nfunc (m *VolumeAttachmentSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeAttachmentSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeAttachmentSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeAttachmentSpec.Merge(m, src)\n}\nfunc (m *VolumeAttachmentSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeAttachmentSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeAttachmentSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeAttachmentSpec proto.InternalMessageInfo\n\nfunc (m *VolumeAttachmentStatus) Reset()      { *m = VolumeAttachmentStatus{} }\nfunc (*VolumeAttachmentStatus) ProtoMessage() {}\nfunc (*VolumeAttachmentStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_662262cc70094b41, []int{16}\n}\nfunc (m *VolumeAttachmentStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeAttachmentStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeAttachmentStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeAttachmentStatus.Merge(m, src)\n}\nfunc (m *VolumeAttachmentStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeAttachmentStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeAttachmentStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeAttachmentStatus proto.InternalMessageInfo\n\nfunc (m *VolumeError) Reset()      { *m = VolumeError{} }\nfunc (*VolumeError) ProtoMessage() {}\nfunc (*VolumeError) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_662262cc70094b41, []int{17}\n}\nfunc (m *VolumeError) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeError) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeError.Merge(m, src)\n}\nfunc (m *VolumeError) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeError) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeError.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeError proto.InternalMessageInfo\n\nfunc (m *VolumeNodeResources) Reset()      { *m = VolumeNodeResources{} }\nfunc (*VolumeNodeResources) ProtoMessage() {}\nfunc (*VolumeNodeResources) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_662262cc70094b41, []int{18}\n}\nfunc (m *VolumeNodeResources) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeNodeResources) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeNodeResources) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeNodeResources.Merge(m, src)\n}\nfunc (m *VolumeNodeResources) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeNodeResources) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeNodeResources.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeNodeResources proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*CSIDriver)(nil), \"k8s.io.api.storage.v1.CSIDriver\")\n\tproto.RegisterType((*CSIDriverList)(nil), \"k8s.io.api.storage.v1.CSIDriverList\")\n\tproto.RegisterType((*CSIDriverSpec)(nil), \"k8s.io.api.storage.v1.CSIDriverSpec\")\n\tproto.RegisterType((*CSINode)(nil), \"k8s.io.api.storage.v1.CSINode\")\n\tproto.RegisterType((*CSINodeDriver)(nil), \"k8s.io.api.storage.v1.CSINodeDriver\")\n\tproto.RegisterType((*CSINodeList)(nil), \"k8s.io.api.storage.v1.CSINodeList\")\n\tproto.RegisterType((*CSINodeSpec)(nil), \"k8s.io.api.storage.v1.CSINodeSpec\")\n\tproto.RegisterType((*CSIStorageCapacity)(nil), \"k8s.io.api.storage.v1.CSIStorageCapacity\")\n\tproto.RegisterType((*CSIStorageCapacityList)(nil), \"k8s.io.api.storage.v1.CSIStorageCapacityList\")\n\tproto.RegisterType((*StorageClass)(nil), \"k8s.io.api.storage.v1.StorageClass\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.storage.v1.StorageClass.ParametersEntry\")\n\tproto.RegisterType((*StorageClassList)(nil), \"k8s.io.api.storage.v1.StorageClassList\")\n\tproto.RegisterType((*TokenRequest)(nil), \"k8s.io.api.storage.v1.TokenRequest\")\n\tproto.RegisterType((*VolumeAttachment)(nil), \"k8s.io.api.storage.v1.VolumeAttachment\")\n\tproto.RegisterType((*VolumeAttachmentList)(nil), \"k8s.io.api.storage.v1.VolumeAttachmentList\")\n\tproto.RegisterType((*VolumeAttachmentSource)(nil), \"k8s.io.api.storage.v1.VolumeAttachmentSource\")\n\tproto.RegisterType((*VolumeAttachmentSpec)(nil), \"k8s.io.api.storage.v1.VolumeAttachmentSpec\")\n\tproto.RegisterType((*VolumeAttachmentStatus)(nil), \"k8s.io.api.storage.v1.VolumeAttachmentStatus\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.storage.v1.VolumeAttachmentStatus.AttachmentMetadataEntry\")\n\tproto.RegisterType((*VolumeError)(nil), \"k8s.io.api.storage.v1.VolumeError\")\n\tproto.RegisterType((*VolumeNodeResources)(nil), \"k8s.io.api.storage.v1.VolumeNodeResources\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/storage/v1/generated.proto\", fileDescriptor_662262cc70094b41)\n}\n\nvar fileDescriptor_662262cc70094b41 = []byte{\n\t// 1655 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0xbd, 0x6f, 0x1b, 0xc9,\n\t0x15, 0xd7, 0x8a, 0xd4, 0xd7, 0x50, 0xb2, 0xa4, 0x91, 0xe4, 0x30, 0x2a, 0x48, 0x61, 0xed, 0x24,\n\t0xb2, 0x13, 0x2f, 0x6d, 0xd9, 0x31, 0x0c, 0x07, 0x2e, 0xb4, 0x12, 0x1d, 0x0b, 0x11, 0x25, 0x65,\n\t0xa8, 0x18, 0x46, 0x90, 0x04, 0x1e, 0xed, 0x8e, 0xa8, 0xb1, 0xb8, 0x1f, 0xde, 0x19, 0x2a, 0x62,\n\t0xaa, 0xa4, 0x49, 0x17, 0x20, 0x69, 0xf3, 0x57, 0x24, 0x40, 0xd2, 0x5c, 0x79, 0xc5, 0xc1, 0xd7,\n\t0x19, 0x57, 0xb9, 0x22, 0xce, 0xbc, 0xfa, 0xae, 0xbc, 0x42, 0xd5, 0x61, 0x66, 0x87, 0xdc, 0x0f,\n\t0x2e, 0x65, 0xa9, 0x61, 0xc7, 0x99, 0xf7, 0xde, 0xef, 0xbd, 0x99, 0xf7, 0xde, 0x6f, 0xde, 0x12,\n\t0xfc, 0xe4, 0xf4, 0x09, 0x33, 0xa8, 0x57, 0xc1, 0x3e, 0xad, 0x30, 0xee, 0x05, 0xb8, 0x41, 0x2a,\n\t0x67, 0x0f, 0x2a, 0x0d, 0xe2, 0x92, 0x00, 0x73, 0x62, 0x1b, 0x7e, 0xe0, 0x71, 0x0f, 0xae, 0x84,\n\t0x6a, 0x06, 0xf6, 0xa9, 0xa1, 0xd4, 0x8c, 0xb3, 0x07, 0xab, 0xf7, 0x1a, 0x94, 0x9f, 0xb4, 0x8e,\n\t0x0c, 0xcb, 0x73, 0x2a, 0x0d, 0xaf, 0xe1, 0x55, 0xa4, 0xf6, 0x51, 0xeb, 0x58, 0xae, 0xe4, 0x42,\n\t0xfe, 0x0a, 0x51, 0x56, 0xf5, 0x98, 0x33, 0xcb, 0x0b, 0xb2, 0x3c, 0xad, 0x3e, 0x8a, 0x74, 0x1c,\n\t0x6c, 0x9d, 0x50, 0x97, 0x04, 0xed, 0x8a, 0x7f, 0xda, 0x90, 0x46, 0x01, 0x61, 0x5e, 0x2b, 0xb0,\n\t0xc8, 0xb5, 0xac, 0x58, 0xc5, 0x21, 0x1c, 0x67, 0xf9, 0xaa, 0x0c, 0xb3, 0x0a, 0x5a, 0x2e, 0xa7,\n\t0xce, 0xa0, 0x9b, 0xc7, 0x9f, 0x32, 0x60, 0xd6, 0x09, 0x71, 0x70, 0xda, 0x4e, 0xff, 0xbf, 0x06,\n\t0x66, 0xb6, 0xea, 0x3b, 0xdb, 0x01, 0x3d, 0x23, 0x01, 0x7c, 0x0d, 0xa6, 0x45, 0x44, 0x36, 0xe6,\n\t0xb8, 0xa8, 0xad, 0x69, 0xeb, 0x85, 0x8d, 0xfb, 0x46, 0x74, 0xbf, 0x7d, 0x60, 0xc3, 0x3f, 0x6d,\n\t0x88, 0x0d, 0x66, 0x08, 0x6d, 0xe3, 0xec, 0x81, 0xb1, 0x7f, 0xf4, 0x86, 0x58, 0xbc, 0x46, 0x38,\n\t0x36, 0xe1, 0xbb, 0x4e, 0x79, 0xac, 0xdb, 0x29, 0x83, 0x68, 0x0f, 0xf5, 0x51, 0xe1, 0x73, 0x90,\n\t0x67, 0x3e, 0xb1, 0x8a, 0xe3, 0x12, 0xfd, 0xb6, 0x91, 0x99, 0x3d, 0xa3, 0x1f, 0x51, 0xdd, 0x27,\n\t0x96, 0x39, 0xab, 0x10, 0xf3, 0x62, 0x85, 0xa4, 0xbd, 0xfe, 0x3f, 0x0d, 0xcc, 0xf5, 0xb5, 0x76,\n\t0x29, 0xe3, 0xf0, 0x0f, 0x03, 0xb1, 0x1b, 0x57, 0x8b, 0x5d, 0x58, 0xcb, 0xc8, 0x17, 0x94, 0x9f,\n\t0xe9, 0xde, 0x4e, 0x2c, 0xee, 0x2a, 0x98, 0xa0, 0x9c, 0x38, 0xac, 0x38, 0xbe, 0x96, 0x5b, 0x2f,\n\t0x6c, 0xac, 0x7d, 0x2a, 0x70, 0x73, 0x4e, 0x81, 0x4d, 0xec, 0x08, 0x33, 0x14, 0x5a, 0xeb, 0x5f,\n\t0xe5, 0x63, 0x61, 0x8b, 0xe3, 0xc0, 0xa7, 0xe0, 0x06, 0xe6, 0x1c, 0x5b, 0x27, 0x88, 0xbc, 0x6d,\n\t0xd1, 0x80, 0xd8, 0x32, 0xf8, 0x69, 0x13, 0x76, 0x3b, 0xe5, 0x1b, 0x9b, 0x09, 0x09, 0x4a, 0x69,\n\t0x0a, 0x5b, 0xdf, 0xb3, 0x77, 0xdc, 0x63, 0x6f, 0xdf, 0xad, 0x79, 0x2d, 0x97, 0xcb, 0x6b, 0x55,\n\t0xb6, 0x07, 0x09, 0x09, 0x4a, 0x69, 0x42, 0x0b, 0x2c, 0x9f, 0x79, 0xcd, 0x96, 0x43, 0x76, 0xe9,\n\t0x31, 0xb1, 0xda, 0x56, 0x93, 0xd4, 0x3c, 0x9b, 0xb0, 0x62, 0x6e, 0x2d, 0xb7, 0x3e, 0x63, 0x56,\n\t0xba, 0x9d, 0xf2, 0xf2, 0xcb, 0x0c, 0xf9, 0x45, 0xa7, 0xbc, 0x94, 0xb1, 0x8f, 0x32, 0xc1, 0xe0,\n\t0x33, 0x30, 0xaf, 0x2e, 0x67, 0x0b, 0xfb, 0xd8, 0xa2, 0xbc, 0x5d, 0xcc, 0xcb, 0x08, 0x97, 0xba,\n\t0x9d, 0xf2, 0x7c, 0x3d, 0x29, 0x42, 0x69, 0x5d, 0xf8, 0x02, 0xcc, 0x1d, 0xb3, 0x5f, 0x07, 0x5e,\n\t0xcb, 0x3f, 0xf0, 0x9a, 0xd4, 0x6a, 0x17, 0x27, 0xd6, 0xb4, 0xf5, 0x19, 0x53, 0xef, 0x76, 0xca,\n\t0x73, 0xcf, 0xeb, 0x31, 0xc1, 0x45, 0x7a, 0x03, 0x25, 0x0d, 0xe1, 0x6b, 0x30, 0xc7, 0xbd, 0x53,\n\t0xe2, 0x8a, 0xab, 0x23, 0x8c, 0xb3, 0xe2, 0xa4, 0x4c, 0xe3, 0xad, 0x21, 0x69, 0x3c, 0x8c, 0xe9,\n\t0x9a, 0x2b, 0x2a, 0x93, 0x73, 0xf1, 0x5d, 0x86, 0x92, 0x80, 0x70, 0x0b, 0x2c, 0x06, 0x61, 0x5e,\n\t0x18, 0x22, 0x7e, 0xeb, 0xa8, 0x49, 0xd9, 0x49, 0x71, 0x4a, 0x1e, 0x76, 0xa5, 0xdb, 0x29, 0x2f,\n\t0xa2, 0xb4, 0x10, 0x0d, 0xea, 0xc3, 0x47, 0x60, 0x96, 0x91, 0x5d, 0xea, 0xb6, 0xce, 0xc3, 0x74,\n\t0x4e, 0x4b, 0xfb, 0x85, 0x6e, 0xa7, 0x3c, 0x5b, 0xaf, 0x46, 0xfb, 0x28, 0xa1, 0xa5, 0xff, 0x57,\n\t0x03, 0x53, 0x5b, 0xf5, 0x9d, 0x3d, 0xcf, 0x26, 0x23, 0xe8, 0xe0, 0xed, 0x44, 0x07, 0xeb, 0xc3,\n\t0x1b, 0x41, 0xc4, 0x33, 0xb4, 0x7f, 0xbf, 0x0b, 0xfb, 0x57, 0xe8, 0x28, 0xee, 0x59, 0x03, 0x79,\n\t0x17, 0x3b, 0x44, 0x46, 0x3d, 0x13, 0xd9, 0xec, 0x61, 0x87, 0x20, 0x29, 0x81, 0x3f, 0x05, 0x93,\n\t0xae, 0x67, 0x93, 0x9d, 0x6d, 0xe9, 0x7b, 0xc6, 0xbc, 0xa1, 0x74, 0x26, 0xf7, 0xe4, 0x2e, 0x52,\n\t0x52, 0x71, 0x8b, 0xdc, 0xf3, 0xbd, 0xa6, 0xd7, 0x68, 0xff, 0x86, 0xb4, 0x7b, 0x25, 0x2d, 0x6f,\n\t0xf1, 0x30, 0xb6, 0x8f, 0x12, 0x5a, 0xf0, 0x8f, 0xa0, 0x80, 0x9b, 0x4d, 0xcf, 0xc2, 0x1c, 0x1f,\n\t0x35, 0x89, 0xac, 0xd3, 0xc2, 0xc6, 0xdd, 0x21, 0xc7, 0x0b, 0x5b, 0x40, 0xf8, 0x45, 0x8a, 0xf8,\n\t0x99, 0x39, 0xdf, 0xed, 0x94, 0x0b, 0x9b, 0x11, 0x04, 0x8a, 0xe3, 0xe9, 0xff, 0xd1, 0x40, 0x41,\n\t0x1d, 0x78, 0x04, 0x74, 0xb5, 0x95, 0xa4, 0xab, 0xd2, 0xe5, 0x59, 0x1a, 0x42, 0x56, 0x7f, 0xea,\n\t0x47, 0x2c, 0x99, 0x6a, 0x1f, 0x4c, 0xd9, 0x32, 0x55, 0xac, 0xa8, 0x49, 0xd4, 0xdb, 0x97, 0xa3,\n\t0x2a, 0x22, 0x9c, 0x57, 0xd8, 0x53, 0xe1, 0x9a, 0xa1, 0x1e, 0x8a, 0xfe, 0x7d, 0x0e, 0xc0, 0xad,\n\t0xfa, 0x4e, 0x8a, 0x06, 0x46, 0x50, 0xc2, 0x14, 0xcc, 0x8a, 0x52, 0xe9, 0x15, 0x83, 0x2a, 0xe5,\n\t0x87, 0x57, 0xbc, 0x7f, 0x7c, 0x44, 0x9a, 0x75, 0xd2, 0x24, 0x16, 0xf7, 0x82, 0xb0, 0xaa, 0xf6,\n\t0x62, 0x60, 0x28, 0x01, 0x0d, 0xb7, 0xc1, 0x42, 0x8f, 0xd5, 0x9a, 0x98, 0x31, 0x51, 0xcd, 0xc5,\n\t0x9c, 0xac, 0xde, 0xa2, 0x0a, 0x71, 0xa1, 0x9e, 0x92, 0xa3, 0x01, 0x0b, 0xf8, 0x0a, 0x4c, 0x5b,\n\t0x71, 0x02, 0xfd, 0x44, 0xb1, 0x18, 0xbd, 0x69, 0xc4, 0xf8, 0x6d, 0x0b, 0xbb, 0x9c, 0xf2, 0xb6,\n\t0x39, 0x2b, 0x0a, 0xa5, 0xcf, 0xb4, 0x7d, 0x34, 0xc8, 0xc0, 0xa2, 0x83, 0xcf, 0xa9, 0xd3, 0x72,\n\t0xc2, 0x92, 0xae, 0xd3, 0xbf, 0x10, 0x49, 0xb3, 0xd7, 0x77, 0x21, 0x69, 0xae, 0x96, 0x06, 0x43,\n\t0x83, 0xf8, 0xfa, 0x17, 0x1a, 0xb8, 0x39, 0x98, 0xf8, 0x11, 0xb4, 0xc5, 0x5e, 0xb2, 0x2d, 0xee,\n\t0x0c, 0x2f, 0xe0, 0x54, 0x6c, 0x43, 0x3a, 0xe4, 0x1f, 0x93, 0x60, 0x36, 0x9e, 0xbe, 0x11, 0xd4,\n\t0xee, 0x2f, 0x41, 0xc1, 0x0f, 0xbc, 0x33, 0xca, 0xa8, 0xe7, 0x92, 0x40, 0x31, 0xe1, 0x92, 0x32,\n\t0x29, 0x1c, 0x44, 0x22, 0x14, 0xd7, 0x83, 0x0d, 0x00, 0x7c, 0x1c, 0x60, 0x87, 0x70, 0xd1, 0xbf,\n\t0x39, 0x79, 0xfc, 0x87, 0x43, 0x8e, 0x1f, 0x3f, 0x91, 0x71, 0xd0, 0xb7, 0xaa, 0xba, 0x3c, 0x68,\n\t0x47, 0xd1, 0x45, 0x02, 0x14, 0x83, 0x86, 0xa7, 0x60, 0x2e, 0x20, 0x56, 0x13, 0x53, 0x47, 0xbd,\n\t0xd9, 0x79, 0x19, 0x61, 0x55, 0x3c, 0xa0, 0x28, 0x2e, 0xb8, 0xe8, 0x94, 0xef, 0x0f, 0x4e, 0xdd,\n\t0xc6, 0x01, 0x09, 0x18, 0x65, 0x9c, 0xb8, 0x3c, 0x2c, 0x98, 0x84, 0x0d, 0x4a, 0x62, 0x0b, 0xa6,\n\t0x77, 0xc4, 0x13, 0xb8, 0xef, 0x73, 0xea, 0xb9, 0xac, 0x38, 0x11, 0x31, 0x7d, 0x2d, 0xb6, 0x8f,\n\t0x12, 0x5a, 0x70, 0x17, 0x2c, 0x0b, 0x66, 0xfe, 0x73, 0xe8, 0xa0, 0x7a, 0xee, 0x63, 0x57, 0xdc,\n\t0x52, 0x71, 0x52, 0xbe, 0xb6, 0x45, 0x31, 0xfa, 0x6c, 0x66, 0xc8, 0x51, 0xa6, 0x15, 0x7c, 0x05,\n\t0x16, 0xc3, 0xd9, 0xc7, 0xa4, 0xae, 0x4d, 0xdd, 0x86, 0x98, 0x7c, 0xe4, 0xc3, 0x3f, 0x63, 0xde,\n\t0x15, 0x1d, 0xf1, 0x32, 0x2d, 0xbc, 0xc8, 0xda, 0x44, 0x83, 0x20, 0xf0, 0x2d, 0x58, 0x94, 0x1e,\n\t0x89, 0xad, 0xe8, 0x84, 0x12, 0x56, 0x9c, 0x96, 0xa9, 0x5b, 0x8f, 0xa7, 0x4e, 0x5c, 0x5d, 0x38,\n\t0xb5, 0x84, 0xa4, 0xd3, 0x23, 0xa7, 0x43, 0x12, 0x38, 0xe6, 0x8f, 0x55, 0xbe, 0x16, 0x37, 0xd3,\n\t0x50, 0x68, 0x10, 0x7d, 0xf5, 0x19, 0x98, 0x4f, 0x25, 0x1c, 0x2e, 0x80, 0xdc, 0x29, 0x69, 0x87,\n\t0xcf, 0x32, 0x12, 0x3f, 0xe1, 0x32, 0x98, 0x38, 0xc3, 0xcd, 0x16, 0x09, 0x8b, 0x0f, 0x85, 0x8b,\n\t0xa7, 0xe3, 0x4f, 0x34, 0xfd, 0x33, 0x0d, 0x24, 0xe8, 0x6c, 0x04, 0x2d, 0xfd, 0x22, 0xd9, 0xd2,\n\t0xb7, 0xae, 0x50, 0xd3, 0x43, 0x9a, 0xf9, 0x6f, 0x1a, 0x98, 0x8d, 0x8f, 0x78, 0xf0, 0x17, 0x60,\n\t0x1a, 0xb7, 0x6c, 0x4a, 0x5c, 0xab, 0x37, 0x95, 0xf4, 0x03, 0xd9, 0x54, 0xfb, 0xa8, 0xaf, 0x21,\n\t0x06, 0x40, 0x72, 0xee, 0xd3, 0x00, 0x8b, 0x22, 0xab, 0x13, 0xcb, 0x73, 0x6d, 0x26, 0x6f, 0x28,\n\t0x17, 0x32, 0x63, 0x35, 0x2d, 0x44, 0x83, 0xfa, 0xfa, 0xbf, 0xc7, 0xc1, 0x42, 0x58, 0x1b, 0xe1,\n\t0xe8, 0xef, 0x10, 0x97, 0x8f, 0x80, 0x54, 0x6a, 0x89, 0x99, 0xee, 0xe7, 0x97, 0x0e, 0x3d, 0x51,\n\t0x60, 0xc3, 0x86, 0x3b, 0xf8, 0x3b, 0x30, 0xc9, 0x38, 0xe6, 0x2d, 0x26, 0x9f, 0xba, 0xc2, 0xc6,\n\t0xbd, 0xab, 0x02, 0x4a, 0xa3, 0x68, 0xae, 0x0b, 0xd7, 0x48, 0x81, 0xe9, 0x9f, 0x6b, 0x60, 0x39,\n\t0x6d, 0x32, 0x82, 0x0a, 0xdb, 0x4d, 0x56, 0xd8, 0xcf, 0xae, 0x78, 0x98, 0x61, 0x5f, 0x80, 0x1a,\n\t0xb8, 0x39, 0x70, 0x6e, 0xf9, 0x92, 0x0a, 0x5e, 0xf2, 0x53, 0xec, 0xb7, 0x17, 0x4d, 0xc4, 0x92,\n\t0x97, 0x0e, 0x32, 0xe4, 0x28, 0xd3, 0x0a, 0xbe, 0x01, 0x0b, 0xd4, 0x6d, 0x52, 0x97, 0xa8, 0x87,\n\t0x37, 0xca, 0x6f, 0x26, 0x79, 0xa4, 0x91, 0x65, 0x72, 0x97, 0xc5, 0x7c, 0xb2, 0x93, 0x42, 0x41,\n\t0x03, 0xb8, 0xfa, 0x97, 0x19, 0x99, 0x91, 0x33, 0xa3, 0x68, 0x21, 0xb9, 0x43, 0x82, 0x81, 0x16,\n\t0x52, 0xfb, 0xa8, 0xaf, 0x21, 0xeb, 0x46, 0x5e, 0x85, 0x0a, 0xf4, 0xca, 0x75, 0x23, 0x8d, 0x62,\n\t0x75, 0x23, 0xd7, 0x48, 0x81, 0x89, 0x20, 0xc4, 0x4c, 0x16, 0x9b, 0xbd, 0xfa, 0x41, 0xec, 0xa9,\n\t0x7d, 0xd4, 0xd7, 0xd0, 0xbf, 0xcd, 0x65, 0x24, 0x48, 0x16, 0x60, 0xec, 0x34, 0xbd, 0xaf, 0xf4,\n\t0xf4, 0x69, 0xec, 0xfe, 0x69, 0x6c, 0xf8, 0x2f, 0x0d, 0x40, 0xdc, 0x87, 0xa8, 0xf5, 0x0a, 0x34,\n\t0xac, 0xa2, 0xea, 0xb5, 0x5a, 0xc2, 0xd8, 0x1c, 0xc0, 0x09, 0x5f, 0xe3, 0x55, 0xe5, 0x1f, 0x0e,\n\t0x2a, 0xa0, 0x0c, 0xe7, 0xd0, 0x06, 0x85, 0x70, 0xb7, 0x1a, 0x04, 0x5e, 0xa0, 0xda, 0x53, 0xbf,\n\t0x34, 0x16, 0xa9, 0x69, 0x96, 0xe4, 0xc7, 0x4d, 0x64, 0x7a, 0xd1, 0x29, 0x17, 0x62, 0x72, 0x14,\n\t0x87, 0x15, 0x5e, 0x6c, 0x12, 0x79, 0xc9, 0x5f, 0xcf, 0xcb, 0x36, 0x19, 0xee, 0x25, 0x06, 0xbb,\n\t0x5a, 0x05, 0x3f, 0x1a, 0x72, 0x2d, 0xd7, 0x7a, 0xb3, 0xfe, 0xae, 0x81, 0xb8, 0x0f, 0xb8, 0x0b,\n\t0xf2, 0x9c, 0xaa, 0xae, 0x4b, 0x7e, 0x00, 0x5e, 0x42, 0x24, 0x87, 0xd4, 0x21, 0x11, 0x15, 0x8a,\n\t0x15, 0x92, 0x28, 0xf0, 0x0e, 0x98, 0x72, 0x08, 0x63, 0xb8, 0xa1, 0x3c, 0x47, 0x9f, 0x43, 0xb5,\n\t0x70, 0x1b, 0xf5, 0xe4, 0xfa, 0x63, 0xb0, 0x94, 0xf1, 0x59, 0x09, 0xcb, 0x60, 0xc2, 0x92, 0x7f,\n\t0x06, 0x88, 0x80, 0x26, 0xcc, 0x19, 0xc1, 0x28, 0x5b, 0xf2, 0x5f, 0x80, 0x70, 0xdf, 0xfc, 0xd5,\n\t0xbb, 0x8f, 0xa5, 0xb1, 0xf7, 0x1f, 0x4b, 0x63, 0x1f, 0x3e, 0x96, 0xc6, 0xfe, 0xda, 0x2d, 0x69,\n\t0xef, 0xba, 0x25, 0xed, 0x7d, 0xb7, 0xa4, 0x7d, 0xe8, 0x96, 0xb4, 0xaf, 0xbb, 0x25, 0xed, 0x9f,\n\t0xdf, 0x94, 0xc6, 0x7e, 0xbf, 0x92, 0xf9, 0x77, 0xea, 0x0f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x7a,\n\t0x55, 0x95, 0x9f, 0x66, 0x15, 0x00, 0x00,\n}\n\nfunc (m *CSIDriver) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSIDriver) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSIDriver) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CSIDriverList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSIDriverList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSIDriverList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CSIDriverSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSIDriverSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSIDriverSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.SELinuxMount != nil {\n\t\ti--\n\t\tif *m.SELinuxMount {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x40\n\t}\n\tif m.RequiresRepublish != nil {\n\t\ti--\n\t\tif *m.RequiresRepublish {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x38\n\t}\n\tif len(m.TokenRequests) > 0 {\n\t\tfor iNdEx := len(m.TokenRequests) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.TokenRequests[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\tif m.FSGroupPolicy != nil {\n\t\ti -= len(*m.FSGroupPolicy)\n\t\tcopy(dAtA[i:], *m.FSGroupPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.FSGroupPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.StorageCapacity != nil {\n\t\ti--\n\t\tif *m.StorageCapacity {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif len(m.VolumeLifecycleModes) > 0 {\n\t\tfor iNdEx := len(m.VolumeLifecycleModes) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.VolumeLifecycleModes[iNdEx])\n\t\t\tcopy(dAtA[i:], m.VolumeLifecycleModes[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.VolumeLifecycleModes[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif m.PodInfoOnMount != nil {\n\t\ti--\n\t\tif *m.PodInfoOnMount {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif m.AttachRequired != nil {\n\t\ti--\n\t\tif *m.AttachRequired {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CSINode) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSINode) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSINode) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CSINodeDriver) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSINodeDriver) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSINodeDriver) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Allocatable != nil {\n\t\t{\n\t\t\tsize, err := m.Allocatable.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif len(m.TopologyKeys) > 0 {\n\t\tfor iNdEx := len(m.TopologyKeys) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.TopologyKeys[iNdEx])\n\t\t\tcopy(dAtA[i:], m.TopologyKeys[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.TopologyKeys[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\ti -= len(m.NodeID)\n\tcopy(dAtA[i:], m.NodeID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.NodeID)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CSINodeList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSINodeList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSINodeList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CSINodeSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSINodeSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSINodeSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Drivers) > 0 {\n\t\tfor iNdEx := len(m.Drivers) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Drivers[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CSIStorageCapacity) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSIStorageCapacity) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSIStorageCapacity) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.MaximumVolumeSize != nil {\n\t\t{\n\t\t\tsize, err := m.MaximumVolumeSize.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.Capacity != nil {\n\t\t{\n\t\t\tsize, err := m.Capacity.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\ti -= len(m.StorageClassName)\n\tcopy(dAtA[i:], m.StorageClassName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.StorageClassName)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.NodeTopology != nil {\n\t\t{\n\t\t\tsize, err := m.NodeTopology.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CSIStorageCapacityList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSIStorageCapacityList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSIStorageCapacityList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StorageClass) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StorageClass) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StorageClass) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.AllowedTopologies) > 0 {\n\t\tfor iNdEx := len(m.AllowedTopologies) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.AllowedTopologies[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x42\n\t\t}\n\t}\n\tif m.VolumeBindingMode != nil {\n\t\ti -= len(*m.VolumeBindingMode)\n\t\tcopy(dAtA[i:], *m.VolumeBindingMode)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.VolumeBindingMode)))\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif m.AllowVolumeExpansion != nil {\n\t\ti--\n\t\tif *m.AllowVolumeExpansion {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x30\n\t}\n\tif len(m.MountOptions) > 0 {\n\t\tfor iNdEx := len(m.MountOptions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.MountOptions[iNdEx])\n\t\t\tcopy(dAtA[i:], m.MountOptions[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.MountOptions[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\tif m.ReclaimPolicy != nil {\n\t\ti -= len(*m.ReclaimPolicy)\n\t\tcopy(dAtA[i:], *m.ReclaimPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.ReclaimPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif len(m.Parameters) > 0 {\n\t\tkeysForParameters := make([]string, 0, len(m.Parameters))\n\t\tfor k := range m.Parameters {\n\t\t\tkeysForParameters = append(keysForParameters, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForParameters)\n\t\tfor iNdEx := len(keysForParameters) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Parameters[string(keysForParameters[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForParameters[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForParameters[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForParameters[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\ti -= len(m.Provisioner)\n\tcopy(dAtA[i:], m.Provisioner)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Provisioner)))\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StorageClassList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StorageClassList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StorageClassList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TokenRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TokenRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TokenRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ExpirationSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.ExpirationSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\ti -= len(m.Audience)\n\tcopy(dAtA[i:], m.Audience)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Audience)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeAttachment) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeAttachment) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeAttachment) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeAttachmentList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeAttachmentList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeAttachmentList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeAttachmentSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeAttachmentSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeAttachmentSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.InlineVolumeSpec != nil {\n\t\t{\n\t\t\tsize, err := m.InlineVolumeSpec.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.PersistentVolumeName != nil {\n\t\ti -= len(*m.PersistentVolumeName)\n\t\tcopy(dAtA[i:], *m.PersistentVolumeName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.PersistentVolumeName)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeAttachmentSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeAttachmentSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeAttachmentSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.NodeName)\n\tcopy(dAtA[i:], m.NodeName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.NodeName)))\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Source.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Attacher)\n\tcopy(dAtA[i:], m.Attacher)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Attacher)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeAttachmentStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeAttachmentStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeAttachmentStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.DetachError != nil {\n\t\t{\n\t\t\tsize, err := m.DetachError.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.AttachError != nil {\n\t\t{\n\t\t\tsize, err := m.AttachError.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif len(m.AttachmentMetadata) > 0 {\n\t\tkeysForAttachmentMetadata := make([]string, 0, len(m.AttachmentMetadata))\n\t\tfor k := range m.AttachmentMetadata {\n\t\t\tkeysForAttachmentMetadata = append(keysForAttachmentMetadata, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAttachmentMetadata)\n\t\tfor iNdEx := len(keysForAttachmentMetadata) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.AttachmentMetadata[string(keysForAttachmentMetadata[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForAttachmentMetadata[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForAttachmentMetadata[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForAttachmentMetadata[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti--\n\tif m.Attached {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeError) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeError) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeError) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.Time.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeNodeResources) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeNodeResources) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeNodeResources) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Count != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Count))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *CSIDriver) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *CSIDriverList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *CSIDriverSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.AttachRequired != nil {\n\t\tn += 2\n\t}\n\tif m.PodInfoOnMount != nil {\n\t\tn += 2\n\t}\n\tif len(m.VolumeLifecycleModes) > 0 {\n\t\tfor _, s := range m.VolumeLifecycleModes {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.StorageCapacity != nil {\n\t\tn += 2\n\t}\n\tif m.FSGroupPolicy != nil {\n\t\tl = len(*m.FSGroupPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.TokenRequests) > 0 {\n\t\tfor _, e := range m.TokenRequests {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.RequiresRepublish != nil {\n\t\tn += 2\n\t}\n\tif m.SELinuxMount != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *CSINode) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *CSINodeDriver) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.NodeID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.TopologyKeys) > 0 {\n\t\tfor _, s := range m.TopologyKeys {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.Allocatable != nil {\n\t\tl = m.Allocatable.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *CSINodeList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *CSINodeSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Drivers) > 0 {\n\t\tfor _, e := range m.Drivers {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *CSIStorageCapacity) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.NodeTopology != nil {\n\t\tl = m.NodeTopology.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.StorageClassName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Capacity != nil {\n\t\tl = m.Capacity.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.MaximumVolumeSize != nil {\n\t\tl = m.MaximumVolumeSize.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *CSIStorageCapacityList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *StorageClass) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Provisioner)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Parameters) > 0 {\n\t\tfor k, v := range m.Parameters {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif m.ReclaimPolicy != nil {\n\t\tl = len(*m.ReclaimPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.MountOptions) > 0 {\n\t\tfor _, s := range m.MountOptions {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.AllowVolumeExpansion != nil {\n\t\tn += 2\n\t}\n\tif m.VolumeBindingMode != nil {\n\t\tl = len(*m.VolumeBindingMode)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.AllowedTopologies) > 0 {\n\t\tfor _, e := range m.AllowedTopologies {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *StorageClassList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *TokenRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Audience)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.ExpirationSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.ExpirationSeconds))\n\t}\n\treturn n\n}\n\nfunc (m *VolumeAttachment) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *VolumeAttachmentList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *VolumeAttachmentSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.PersistentVolumeName != nil {\n\t\tl = len(*m.PersistentVolumeName)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.InlineVolumeSpec != nil {\n\t\tl = m.InlineVolumeSpec.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *VolumeAttachmentSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Attacher)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Source.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.NodeName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *VolumeAttachmentStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 2\n\tif len(m.AttachmentMetadata) > 0 {\n\t\tfor k, v := range m.AttachmentMetadata {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif m.AttachError != nil {\n\t\tl = m.AttachError.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.DetachError != nil {\n\t\tl = m.DetachError.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *VolumeError) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Time.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *VolumeNodeResources) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Count != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Count))\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *CSIDriver) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CSIDriver{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"CSIDriverSpec\", \"CSIDriverSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CSIDriverList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]CSIDriver{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"CSIDriver\", \"CSIDriver\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&CSIDriverList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CSIDriverSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForTokenRequests := \"[]TokenRequest{\"\n\tfor _, f := range this.TokenRequests {\n\t\trepeatedStringForTokenRequests += strings.Replace(strings.Replace(f.String(), \"TokenRequest\", \"TokenRequest\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForTokenRequests += \"}\"\n\ts := strings.Join([]string{`&CSIDriverSpec{`,\n\t\t`AttachRequired:` + valueToStringGenerated(this.AttachRequired) + `,`,\n\t\t`PodInfoOnMount:` + valueToStringGenerated(this.PodInfoOnMount) + `,`,\n\t\t`VolumeLifecycleModes:` + fmt.Sprintf(\"%v\", this.VolumeLifecycleModes) + `,`,\n\t\t`StorageCapacity:` + valueToStringGenerated(this.StorageCapacity) + `,`,\n\t\t`FSGroupPolicy:` + valueToStringGenerated(this.FSGroupPolicy) + `,`,\n\t\t`TokenRequests:` + repeatedStringForTokenRequests + `,`,\n\t\t`RequiresRepublish:` + valueToStringGenerated(this.RequiresRepublish) + `,`,\n\t\t`SELinuxMount:` + valueToStringGenerated(this.SELinuxMount) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CSINode) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CSINode{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"CSINodeSpec\", \"CSINodeSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CSINodeDriver) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CSINodeDriver{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`NodeID:` + fmt.Sprintf(\"%v\", this.NodeID) + `,`,\n\t\t`TopologyKeys:` + fmt.Sprintf(\"%v\", this.TopologyKeys) + `,`,\n\t\t`Allocatable:` + strings.Replace(this.Allocatable.String(), \"VolumeNodeResources\", \"VolumeNodeResources\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CSINodeList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]CSINode{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"CSINode\", \"CSINode\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&CSINodeList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CSINodeSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForDrivers := \"[]CSINodeDriver{\"\n\tfor _, f := range this.Drivers {\n\t\trepeatedStringForDrivers += strings.Replace(strings.Replace(f.String(), \"CSINodeDriver\", \"CSINodeDriver\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForDrivers += \"}\"\n\ts := strings.Join([]string{`&CSINodeSpec{`,\n\t\t`Drivers:` + repeatedStringForDrivers + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CSIStorageCapacity) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CSIStorageCapacity{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`NodeTopology:` + strings.Replace(fmt.Sprintf(\"%v\", this.NodeTopology), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`StorageClassName:` + fmt.Sprintf(\"%v\", this.StorageClassName) + `,`,\n\t\t`Capacity:` + strings.Replace(fmt.Sprintf(\"%v\", this.Capacity), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`MaximumVolumeSize:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaximumVolumeSize), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CSIStorageCapacityList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]CSIStorageCapacity{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"CSIStorageCapacity\", \"CSIStorageCapacity\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&CSIStorageCapacityList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StorageClass) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForAllowedTopologies := \"[]TopologySelectorTerm{\"\n\tfor _, f := range this.AllowedTopologies {\n\t\trepeatedStringForAllowedTopologies += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForAllowedTopologies += \"}\"\n\tkeysForParameters := make([]string, 0, len(this.Parameters))\n\tfor k := range this.Parameters {\n\t\tkeysForParameters = append(keysForParameters, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForParameters)\n\tmapStringForParameters := \"map[string]string{\"\n\tfor _, k := range keysForParameters {\n\t\tmapStringForParameters += fmt.Sprintf(\"%v: %v,\", k, this.Parameters[k])\n\t}\n\tmapStringForParameters += \"}\"\n\ts := strings.Join([]string{`&StorageClass{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Provisioner:` + fmt.Sprintf(\"%v\", this.Provisioner) + `,`,\n\t\t`Parameters:` + mapStringForParameters + `,`,\n\t\t`ReclaimPolicy:` + valueToStringGenerated(this.ReclaimPolicy) + `,`,\n\t\t`MountOptions:` + fmt.Sprintf(\"%v\", this.MountOptions) + `,`,\n\t\t`AllowVolumeExpansion:` + valueToStringGenerated(this.AllowVolumeExpansion) + `,`,\n\t\t`VolumeBindingMode:` + valueToStringGenerated(this.VolumeBindingMode) + `,`,\n\t\t`AllowedTopologies:` + repeatedStringForAllowedTopologies + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StorageClassList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]StorageClass{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"StorageClass\", \"StorageClass\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&StorageClassList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TokenRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&TokenRequest{`,\n\t\t`Audience:` + fmt.Sprintf(\"%v\", this.Audience) + `,`,\n\t\t`ExpirationSeconds:` + valueToStringGenerated(this.ExpirationSeconds) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeAttachment) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&VolumeAttachment{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"VolumeAttachmentSpec\", \"VolumeAttachmentSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"VolumeAttachmentStatus\", \"VolumeAttachmentStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeAttachmentList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]VolumeAttachment{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"VolumeAttachment\", \"VolumeAttachment\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&VolumeAttachmentList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeAttachmentSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&VolumeAttachmentSource{`,\n\t\t`PersistentVolumeName:` + valueToStringGenerated(this.PersistentVolumeName) + `,`,\n\t\t`InlineVolumeSpec:` + strings.Replace(fmt.Sprintf(\"%v\", this.InlineVolumeSpec), \"PersistentVolumeSpec\", \"v11.PersistentVolumeSpec\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeAttachmentSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&VolumeAttachmentSpec{`,\n\t\t`Attacher:` + fmt.Sprintf(\"%v\", this.Attacher) + `,`,\n\t\t`Source:` + strings.Replace(strings.Replace(this.Source.String(), \"VolumeAttachmentSource\", \"VolumeAttachmentSource\", 1), `&`, ``, 1) + `,`,\n\t\t`NodeName:` + fmt.Sprintf(\"%v\", this.NodeName) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeAttachmentStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForAttachmentMetadata := make([]string, 0, len(this.AttachmentMetadata))\n\tfor k := range this.AttachmentMetadata {\n\t\tkeysForAttachmentMetadata = append(keysForAttachmentMetadata, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAttachmentMetadata)\n\tmapStringForAttachmentMetadata := \"map[string]string{\"\n\tfor _, k := range keysForAttachmentMetadata {\n\t\tmapStringForAttachmentMetadata += fmt.Sprintf(\"%v: %v,\", k, this.AttachmentMetadata[k])\n\t}\n\tmapStringForAttachmentMetadata += \"}\"\n\ts := strings.Join([]string{`&VolumeAttachmentStatus{`,\n\t\t`Attached:` + fmt.Sprintf(\"%v\", this.Attached) + `,`,\n\t\t`AttachmentMetadata:` + mapStringForAttachmentMetadata + `,`,\n\t\t`AttachError:` + strings.Replace(this.AttachError.String(), \"VolumeError\", \"VolumeError\", 1) + `,`,\n\t\t`DetachError:` + strings.Replace(this.DetachError.String(), \"VolumeError\", \"VolumeError\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeError) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&VolumeError{`,\n\t\t`Time:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Time), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeNodeResources) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&VolumeNodeResources{`,\n\t\t`Count:` + valueToStringGenerated(this.Count) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *CSIDriver) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSIDriver: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSIDriver: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CSIDriverList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSIDriverList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSIDriverList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, CSIDriver{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CSIDriverSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSIDriverSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSIDriverSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AttachRequired\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.AttachRequired = &b\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodInfoOnMount\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.PodInfoOnMount = &b\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeLifecycleModes\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumeLifecycleModes = append(m.VolumeLifecycleModes, VolumeLifecycleMode(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StorageCapacity\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.StorageCapacity = &b\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSGroupPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := FSGroupPolicy(dAtA[iNdEx:postIndex])\n\t\t\tm.FSGroupPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TokenRequests\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TokenRequests = append(m.TokenRequests, TokenRequest{})\n\t\t\tif err := m.TokenRequests[len(m.TokenRequests)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RequiresRepublish\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.RequiresRepublish = &b\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SELinuxMount\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.SELinuxMount = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CSINode) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSINode: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSINode: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CSINodeDriver) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSINodeDriver: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSINodeDriver: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NodeID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TopologyKeys\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TopologyKeys = append(m.TopologyKeys, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Allocatable\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Allocatable == nil {\n\t\t\t\tm.Allocatable = &VolumeNodeResources{}\n\t\t\t}\n\t\t\tif err := m.Allocatable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CSINodeList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSINodeList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSINodeList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, CSINode{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CSINodeSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSINodeSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSINodeSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Drivers\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Drivers = append(m.Drivers, CSINodeDriver{})\n\t\t\tif err := m.Drivers[len(m.Drivers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CSIStorageCapacity) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSIStorageCapacity: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSIStorageCapacity: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeTopology\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NodeTopology == nil {\n\t\t\t\tm.NodeTopology = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.NodeTopology.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StorageClassName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.StorageClassName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Capacity\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Capacity == nil {\n\t\t\t\tm.Capacity = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.Capacity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaximumVolumeSize\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaximumVolumeSize == nil {\n\t\t\t\tm.MaximumVolumeSize = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.MaximumVolumeSize.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CSIStorageCapacityList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSIStorageCapacityList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSIStorageCapacityList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, CSIStorageCapacity{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StorageClass) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StorageClass: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StorageClass: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Provisioner\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Provisioner = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Parameters\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Parameters == nil {\n\t\t\t\tm.Parameters = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Parameters[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReclaimPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := k8s_io_api_core_v1.PersistentVolumeReclaimPolicy(dAtA[iNdEx:postIndex])\n\t\t\tm.ReclaimPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MountOptions\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MountOptions = append(m.MountOptions, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AllowVolumeExpansion\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.AllowVolumeExpansion = &b\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeBindingMode\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := VolumeBindingMode(dAtA[iNdEx:postIndex])\n\t\t\tm.VolumeBindingMode = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AllowedTopologies\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AllowedTopologies = append(m.AllowedTopologies, v11.TopologySelectorTerm{})\n\t\t\tif err := m.AllowedTopologies[len(m.AllowedTopologies)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StorageClassList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StorageClassList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StorageClassList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, StorageClass{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TokenRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TokenRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TokenRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Audience\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Audience = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ExpirationSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ExpirationSeconds = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeAttachment) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachment: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachment: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeAttachmentList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, VolumeAttachment{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeAttachmentSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PersistentVolumeName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.PersistentVolumeName = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field InlineVolumeSpec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.InlineVolumeSpec == nil {\n\t\t\t\tm.InlineVolumeSpec = &v11.PersistentVolumeSpec{}\n\t\t\t}\n\t\t\tif err := m.InlineVolumeSpec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeAttachmentSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Attacher\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Attacher = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Source\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Source.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NodeName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeAttachmentStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Attached\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Attached = bool(v != 0)\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AttachmentMetadata\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AttachmentMetadata == nil {\n\t\t\t\tm.AttachmentMetadata = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.AttachmentMetadata[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AttachError\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AttachError == nil {\n\t\t\t\tm.AttachError = &VolumeError{}\n\t\t\t}\n\t\t\tif err := m.AttachError.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DetachError\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.DetachError == nil {\n\t\t\t\tm.DetachError = &VolumeError{}\n\t\t\t}\n\t\t\tif err := m.DetachError.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeError) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeError: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeError: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Time\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Time.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeNodeResources) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeNodeResources: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeNodeResources: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Count\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Count = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.storage.v1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/api/resource/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/storage/v1\";\n\n// CSIDriver captures information about a Container Storage Interface (CSI)\n// volume driver deployed on the cluster.\n// Kubernetes attach detach controller uses this object to determine whether attach is required.\n// Kubelet uses this object to determine whether pod information needs to be passed on mount.\n// CSIDriver objects are non-namespaced.\nmessage CSIDriver {\n  // Standard object metadata.\n  // metadata.Name indicates the name of the CSI driver that this object\n  // refers to; it MUST be the same name returned by the CSI GetPluginName()\n  // call for that driver.\n  // The driver name must be 63 characters or less, beginning and ending with\n  // an alphanumeric character ([a-z0-9A-Z]) with dashes (-), dots (.), and\n  // alphanumerics between.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec represents the specification of the CSI Driver.\n  optional CSIDriverSpec spec = 2;\n}\n\n// CSIDriverList is a collection of CSIDriver objects.\nmessage CSIDriverList {\n  // Standard list metadata\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of CSIDriver\n  repeated CSIDriver items = 2;\n}\n\n// CSIDriverSpec is the specification of a CSIDriver.\nmessage CSIDriverSpec {\n  // attachRequired indicates this CSI volume driver requires an attach\n  // operation (because it implements the CSI ControllerPublishVolume()\n  // method), and that the Kubernetes attach detach controller should call\n  // the attach volume interface which checks the volumeattachment status\n  // and waits until the volume is attached before proceeding to mounting.\n  // The CSI external-attacher coordinates with CSI volume driver and updates\n  // the volumeattachment status when the attach operation is complete.\n  // If the CSIDriverRegistry feature gate is enabled and the value is\n  // specified to false, the attach operation will be skipped.\n  // Otherwise the attach operation will be called.\n  //\n  // This field is immutable.\n  //\n  // +optional\n  optional bool attachRequired = 1;\n\n  // podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.)\n  // during mount operations, if set to true.\n  // If set to false, pod information will not be passed on mount.\n  // Default is false.\n  //\n  // The CSI driver specifies podInfoOnMount as part of driver deployment.\n  // If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls.\n  // The CSI driver is responsible for parsing and validating the information passed in as VolumeContext.\n  //\n  // The following VolumeContext will be passed if podInfoOnMount is set to true.\n  // This list might grow, but the prefix will be used.\n  // \"csi.storage.k8s.io/pod.name\": pod.Name\n  // \"csi.storage.k8s.io/pod.namespace\": pod.Namespace\n  // \"csi.storage.k8s.io/pod.uid\": string(pod.UID)\n  // \"csi.storage.k8s.io/ephemeral\": \"true\" if the volume is an ephemeral inline volume\n  //                                 defined by a CSIVolumeSource, otherwise \"false\"\n  //\n  // \"csi.storage.k8s.io/ephemeral\" is a new feature in Kubernetes 1.16. It is only\n  // required for drivers which support both the \"Persistent\" and \"Ephemeral\" VolumeLifecycleMode.\n  // Other drivers can leave pod info disabled and/or ignore this field.\n  // As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when\n  // deployed on such a cluster and the deployment determines which mode that is, for example\n  // via a command line parameter of the driver.\n  //\n  // This field was immutable in Kubernetes < 1.29 and now is mutable.\n  //\n  // +optional\n  optional bool podInfoOnMount = 2;\n\n  // volumeLifecycleModes defines what kind of volumes this CSI volume driver supports.\n  // The default if the list is empty is \"Persistent\", which is the usage defined by the\n  // CSI specification and implemented in Kubernetes via the usual PV/PVC mechanism.\n  //\n  // The other mode is \"Ephemeral\". In this mode, volumes are defined inline inside the pod spec\n  // with CSIVolumeSource and their lifecycle is tied to the lifecycle of that pod.\n  // A driver has to be aware of this because it is only going to get a NodePublishVolume call for such a volume.\n  //\n  // For more information about implementing this mode, see\n  // https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html\n  // A driver can support one or more of these modes and more modes may be added in the future.\n  //\n  // This field is beta.\n  // This field is immutable.\n  //\n  // +optional\n  // +listType=set\n  repeated string volumeLifecycleModes = 3;\n\n  // storageCapacity indicates that the CSI volume driver wants pod scheduling to consider the storage\n  // capacity that the driver deployment will report by creating\n  // CSIStorageCapacity objects with capacity information, if set to true.\n  //\n  // The check can be enabled immediately when deploying a driver.\n  // In that case, provisioning new volumes with late binding\n  // will pause until the driver deployment has published\n  // some suitable CSIStorageCapacity object.\n  //\n  // Alternatively, the driver can be deployed with the field\n  // unset or false and it can be flipped later when storage\n  // capacity information has been published.\n  //\n  // This field was immutable in Kubernetes <= 1.22 and now is mutable.\n  //\n  // +optional\n  // +featureGate=CSIStorageCapacity\n  optional bool storageCapacity = 4;\n\n  // fsGroupPolicy defines if the underlying volume supports changing ownership and\n  // permission of the volume before being mounted.\n  // Refer to the specific FSGroupPolicy values for additional details.\n  //\n  // This field was immutable in Kubernetes < 1.29 and now is mutable.\n  //\n  // Defaults to ReadWriteOnceWithFSType, which will examine each volume\n  // to determine if Kubernetes should modify ownership and permissions of the volume.\n  // With the default policy the defined fsGroup will only be applied\n  // if a fstype is defined and the volume's access mode contains ReadWriteOnce.\n  //\n  // +optional\n  optional string fsGroupPolicy = 5;\n\n  // tokenRequests indicates the CSI driver needs pods' service account\n  // tokens it is mounting volume for to do necessary authentication. Kubelet\n  // will pass the tokens in VolumeContext in the CSI NodePublishVolume calls.\n  // The CSI driver should parse and validate the following VolumeContext:\n  // \"csi.storage.k8s.io/serviceAccount.tokens\": {\n  //   \"<audience>\": {\n  //     \"token\": <token>,\n  //     \"expirationTimestamp\": <expiration timestamp in RFC3339>,\n  //   },\n  //   ...\n  // }\n  //\n  // Note: Audience in each TokenRequest should be different and at\n  // most one token is empty string. To receive a new token after expiry,\n  // RequiresRepublish can be used to trigger NodePublishVolume periodically.\n  //\n  // +optional\n  // +listType=atomic\n  repeated TokenRequest tokenRequests = 6;\n\n  // requiresRepublish indicates the CSI driver wants `NodePublishVolume`\n  // being periodically called to reflect any possible change in the mounted\n  // volume. This field defaults to false.\n  //\n  // Note: After a successful initial NodePublishVolume call, subsequent calls\n  // to NodePublishVolume should only update the contents of the volume. New\n  // mount points will not be seen by a running container.\n  //\n  // +optional\n  optional bool requiresRepublish = 7;\n\n  // seLinuxMount specifies if the CSI driver supports \"-o context\"\n  // mount option.\n  //\n  // When \"true\", the CSI driver must ensure that all volumes provided by this CSI\n  // driver can be mounted separately with different `-o context` options. This is\n  // typical for storage backends that provide volumes as filesystems on block\n  // devices or as independent shared volumes.\n  // Kubernetes will call NodeStage / NodePublish with \"-o context=xyz\" mount\n  // option when mounting a ReadWriteOncePod volume used in Pod that has\n  // explicitly set SELinux context. In the future, it may be expanded to other\n  // volume AccessModes. In any case, Kubernetes will ensure that the volume is\n  // mounted only with a single SELinux context.\n  //\n  // When \"false\", Kubernetes won't pass any special SELinux mount options to the driver.\n  // This is typical for volumes that represent subdirectories of a bigger shared filesystem.\n  //\n  // Default is \"false\".\n  //\n  // +featureGate=SELinuxMountReadWriteOncePod\n  // +optional\n  optional bool seLinuxMount = 8;\n}\n\n// CSINode holds information about all CSI drivers installed on a node.\n// CSI drivers do not need to create the CSINode object directly. As long as\n// they use the node-driver-registrar sidecar container, the kubelet will\n// automatically populate the CSINode object for the CSI driver as part of\n// kubelet plugin registration.\n// CSINode has the same name as a node. If the object is missing, it means either\n// there are no CSI Drivers available on the node, or the Kubelet version is low\n// enough that it doesn't create this object.\n// CSINode has an OwnerReference that points to the corresponding node object.\nmessage CSINode {\n  // Standard object's metadata.\n  // metadata.name must be the Kubernetes node name.\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec is the specification of CSINode\n  optional CSINodeSpec spec = 2;\n}\n\n// CSINodeDriver holds information about the specification of one CSI driver installed on a node\nmessage CSINodeDriver {\n  // name represents the name of the CSI driver that this object refers to.\n  // This MUST be the same name returned by the CSI GetPluginName() call for\n  // that driver.\n  optional string name = 1;\n\n  // nodeID of the node from the driver point of view.\n  // This field enables Kubernetes to communicate with storage systems that do\n  // not share the same nomenclature for nodes. For example, Kubernetes may\n  // refer to a given node as \"node1\", but the storage system may refer to\n  // the same node as \"nodeA\". When Kubernetes issues a command to the storage\n  // system to attach a volume to a specific node, it can use this field to\n  // refer to the node name using the ID that the storage system will\n  // understand, e.g. \"nodeA\" instead of \"node1\". This field is required.\n  optional string nodeID = 2;\n\n  // topologyKeys is the list of keys supported by the driver.\n  // When a driver is initialized on a cluster, it provides a set of topology\n  // keys that it understands (e.g. \"company.com/zone\", \"company.com/region\").\n  // When a driver is initialized on a node, it provides the same topology keys\n  // along with values. Kubelet will expose these topology keys as labels\n  // on its own node object.\n  // When Kubernetes does topology aware provisioning, it can use this list to\n  // determine which labels it should retrieve from the node object and pass\n  // back to the driver.\n  // It is possible for different nodes to use different topology keys.\n  // This can be empty if driver does not support topology.\n  // +optional\n  // +listType=atomic\n  repeated string topologyKeys = 3;\n\n  // allocatable represents the volume resources of a node that are available for scheduling.\n  // This field is beta.\n  // +optional\n  optional VolumeNodeResources allocatable = 4;\n}\n\n// CSINodeList is a collection of CSINode objects.\nmessage CSINodeList {\n  // Standard list metadata\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of CSINode\n  repeated CSINode items = 2;\n}\n\n// CSINodeSpec holds information about the specification of all CSI drivers installed on a node\nmessage CSINodeSpec {\n  // drivers is a list of information of all CSI Drivers existing on a node.\n  // If all drivers in the list are uninstalled, this can become empty.\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=name\n  repeated CSINodeDriver drivers = 1;\n}\n\n// CSIStorageCapacity stores the result of one CSI GetCapacity call.\n// For a given StorageClass, this describes the available capacity in a\n// particular topology segment.  This can be used when considering where to\n// instantiate new PersistentVolumes.\n//\n// For example this can express things like:\n// - StorageClass \"standard\" has \"1234 GiB\" available in \"topology.kubernetes.io/zone=us-east1\"\n// - StorageClass \"localssd\" has \"10 GiB\" available in \"kubernetes.io/hostname=knode-abc123\"\n//\n// The following three cases all imply that no capacity is available for\n// a certain combination:\n// - no object exists with suitable topology and storage class name\n// - such an object exists, but the capacity is unset\n// - such an object exists, but the capacity is zero\n//\n// The producer of these objects can decide which approach is more suitable.\n//\n// They are consumed by the kube-scheduler when a CSI driver opts into\n// capacity-aware scheduling with CSIDriverSpec.StorageCapacity. The scheduler\n// compares the MaximumVolumeSize against the requested size of pending volumes\n// to filter out unsuitable nodes. If MaximumVolumeSize is unset, it falls back\n// to a comparison against the less precise Capacity. If that is also unset,\n// the scheduler assumes that capacity is insufficient and tries some other\n// node.\nmessage CSIStorageCapacity {\n  // Standard object's metadata.\n  // The name has no particular meaning. It must be a DNS subdomain (dots allowed, 253 characters).\n  // To ensure that there are no conflicts with other CSI drivers on the cluster,\n  // the recommendation is to use csisc-<uuid>, a generated name, or a reverse-domain name\n  // which ends with the unique CSI driver name.\n  //\n  // Objects are namespaced.\n  //\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // nodeTopology defines which nodes have access to the storage\n  // for which capacity was reported. If not set, the storage is\n  // not accessible from any node in the cluster. If empty, the\n  // storage is accessible from all nodes. This field is\n  // immutable.\n  //\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector nodeTopology = 2;\n\n  // storageClassName represents the name of the StorageClass that the reported capacity applies to.\n  // It must meet the same requirements as the name of a StorageClass\n  // object (non-empty, DNS subdomain). If that object no longer exists,\n  // the CSIStorageCapacity object is obsolete and should be removed by its\n  // creator.\n  // This field is immutable.\n  optional string storageClassName = 3;\n\n  // capacity is the value reported by the CSI driver in its GetCapacityResponse\n  // for a GetCapacityRequest with topology and parameters that match the\n  // previous fields.\n  //\n  // The semantic is currently (CSI spec 1.2) defined as:\n  // The available capacity, in bytes, of the storage that can be used\n  // to provision volumes. If not set, that information is currently\n  // unavailable.\n  //\n  // +optional\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity capacity = 4;\n\n  // maximumVolumeSize is the value reported by the CSI driver in its GetCapacityResponse\n  // for a GetCapacityRequest with topology and parameters that match the\n  // previous fields.\n  //\n  // This is defined since CSI spec 1.4.0 as the largest size\n  // that may be used in a\n  // CreateVolumeRequest.capacity_range.required_bytes field to\n  // create a volume with the same parameters as those in\n  // GetCapacityRequest. The corresponding value in the Kubernetes\n  // API is ResourceRequirements.Requests in a volume claim.\n  //\n  // +optional\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity maximumVolumeSize = 5;\n}\n\n// CSIStorageCapacityList is a collection of CSIStorageCapacity objects.\nmessage CSIStorageCapacityList {\n  // Standard list metadata\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of CSIStorageCapacity objects.\n  repeated CSIStorageCapacity items = 2;\n}\n\n// StorageClass describes the parameters for a class of storage for\n// which PersistentVolumes can be dynamically provisioned.\n//\n// StorageClasses are non-namespaced; the name of the storage class\n// according to etcd is in ObjectMeta.Name.\nmessage StorageClass {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // provisioner indicates the type of the provisioner.\n  optional string provisioner = 2;\n\n  // parameters holds the parameters for the provisioner that should\n  // create volumes of this storage class.\n  // +optional\n  map<string, string> parameters = 3;\n\n  // reclaimPolicy controls the reclaimPolicy for dynamically provisioned PersistentVolumes of this storage class.\n  // Defaults to Delete.\n  // +optional\n  optional string reclaimPolicy = 4;\n\n  // mountOptions controls the mountOptions for dynamically provisioned PersistentVolumes of this storage class.\n  // e.g. [\"ro\", \"soft\"]. Not validated -\n  // mount of the PVs will simply fail if one is invalid.\n  // +optional\n  // +listType=atomic\n  repeated string mountOptions = 5;\n\n  // allowVolumeExpansion shows whether the storage class allow volume expand.\n  // +optional\n  optional bool allowVolumeExpansion = 6;\n\n  // volumeBindingMode indicates how PersistentVolumeClaims should be\n  // provisioned and bound.  When unset, VolumeBindingImmediate is used.\n  // This field is only honored by servers that enable the VolumeScheduling feature.\n  // +optional\n  optional string volumeBindingMode = 7;\n\n  // allowedTopologies restrict the node topologies where volumes can be dynamically provisioned.\n  // Each volume plugin defines its own supported topology specifications.\n  // An empty TopologySelectorTerm list means there is no topology restriction.\n  // This field is only honored by servers that enable the VolumeScheduling feature.\n  // +optional\n  // +listType=atomic\n  repeated .k8s.io.api.core.v1.TopologySelectorTerm allowedTopologies = 8;\n}\n\n// StorageClassList is a collection of storage classes.\nmessage StorageClassList {\n  // Standard list metadata\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of StorageClasses\n  repeated StorageClass items = 2;\n}\n\n// TokenRequest contains parameters of a service account token.\nmessage TokenRequest {\n  // audience is the intended audience of the token in \"TokenRequestSpec\".\n  // It will default to the audiences of kube apiserver.\n  optional string audience = 1;\n\n  // expirationSeconds is the duration of validity of the token in \"TokenRequestSpec\".\n  // It has the same default value of \"ExpirationSeconds\" in \"TokenRequestSpec\".\n  //\n  // +optional\n  optional int64 expirationSeconds = 2;\n}\n\n// VolumeAttachment captures the intent to attach or detach the specified volume\n// to/from the specified node.\n//\n// VolumeAttachment objects are non-namespaced.\nmessage VolumeAttachment {\n  // Standard object metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec represents specification of the desired attach/detach volume behavior.\n  // Populated by the Kubernetes system.\n  optional VolumeAttachmentSpec spec = 2;\n\n  // status represents status of the VolumeAttachment request.\n  // Populated by the entity completing the attach or detach\n  // operation, i.e. the external-attacher.\n  // +optional\n  optional VolumeAttachmentStatus status = 3;\n}\n\n// VolumeAttachmentList is a collection of VolumeAttachment objects.\nmessage VolumeAttachmentList {\n  // Standard list metadata\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of VolumeAttachments\n  repeated VolumeAttachment items = 2;\n}\n\n// VolumeAttachmentSource represents a volume that should be attached.\n// Right now only PersistentVolumes can be attached via external attacher,\n// in the future we may allow also inline volumes in pods.\n// Exactly one member can be set.\nmessage VolumeAttachmentSource {\n  // persistentVolumeName represents the name of the persistent volume to attach.\n  // +optional\n  optional string persistentVolumeName = 1;\n\n  // inlineVolumeSpec contains all the information necessary to attach\n  // a persistent volume defined by a pod's inline VolumeSource. This field\n  // is populated only for the CSIMigration feature. It contains\n  // translated fields from a pod's inline VolumeSource to a\n  // PersistentVolumeSpec. This field is beta-level and is only\n  // honored by servers that enabled the CSIMigration feature.\n  // +optional\n  optional .k8s.io.api.core.v1.PersistentVolumeSpec inlineVolumeSpec = 2;\n}\n\n// VolumeAttachmentSpec is the specification of a VolumeAttachment request.\nmessage VolumeAttachmentSpec {\n  // attacher indicates the name of the volume driver that MUST handle this\n  // request. This is the name returned by GetPluginName().\n  optional string attacher = 1;\n\n  // source represents the volume that should be attached.\n  optional VolumeAttachmentSource source = 2;\n\n  // nodeName represents the node that the volume should be attached to.\n  optional string nodeName = 3;\n}\n\n// VolumeAttachmentStatus is the status of a VolumeAttachment request.\nmessage VolumeAttachmentStatus {\n  // attached indicates the volume is successfully attached.\n  // This field must only be set by the entity completing the attach\n  // operation, i.e. the external-attacher.\n  optional bool attached = 1;\n\n  // attachmentMetadata is populated with any\n  // information returned by the attach operation, upon successful attach, that must be passed\n  // into subsequent WaitForAttach or Mount calls.\n  // This field must only be set by the entity completing the attach\n  // operation, i.e. the external-attacher.\n  // +optional\n  map<string, string> attachmentMetadata = 2;\n\n  // attachError represents the last error encountered during attach operation, if any.\n  // This field must only be set by the entity completing the attach\n  // operation, i.e. the external-attacher.\n  // +optional\n  optional VolumeError attachError = 3;\n\n  // detachError represents the last error encountered during detach operation, if any.\n  // This field must only be set by the entity completing the detach\n  // operation, i.e. the external-attacher.\n  // +optional\n  optional VolumeError detachError = 4;\n}\n\n// VolumeError captures an error encountered during a volume operation.\nmessage VolumeError {\n  // time represents the time the error was encountered.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time time = 1;\n\n  // message represents the error encountered during Attach or Detach operation.\n  // This string may be logged, so it should not contain sensitive\n  // information.\n  // +optional\n  optional string message = 2;\n}\n\n// VolumeNodeResources is a set of resource limits for scheduling of volumes.\nmessage VolumeNodeResources {\n  // count indicates the maximum number of unique volumes managed by the CSI driver that can be used on a node.\n  // A volume that is both attached and mounted on a node is considered to be used once, not twice.\n  // The same rule applies for a unique volume that is shared among multiple pods on the same node.\n  // If this field is not specified, then the supported number of volumes on this node is unbounded.\n  // +optional\n  optional int32 count = 1;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1/register.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"storage.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&StorageClass{},\n\t\t&StorageClassList{},\n\n\t\t&VolumeAttachment{},\n\t\t&VolumeAttachmentList{},\n\n\t\t&CSINode{},\n\t\t&CSINodeList{},\n\n\t\t&CSIDriver{},\n\t\t&CSIDriverList{},\n\n\t\t&CSIStorageCapacity{},\n\t\t&CSIStorageCapacityList{},\n\t)\n\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1/types.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\t\"k8s.io/apimachinery/pkg/api/resource\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.6\n\n// StorageClass describes the parameters for a class of storage for\n// which PersistentVolumes can be dynamically provisioned.\n//\n// StorageClasses are non-namespaced; the name of the storage class\n// according to etcd is in ObjectMeta.Name.\ntype StorageClass struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// provisioner indicates the type of the provisioner.\n\tProvisioner string `json:\"provisioner\" protobuf:\"bytes,2,opt,name=provisioner\"`\n\n\t// parameters holds the parameters for the provisioner that should\n\t// create volumes of this storage class.\n\t// +optional\n\tParameters map[string]string `json:\"parameters,omitempty\" protobuf:\"bytes,3,rep,name=parameters\"`\n\n\t// reclaimPolicy controls the reclaimPolicy for dynamically provisioned PersistentVolumes of this storage class.\n\t// Defaults to Delete.\n\t// +optional\n\tReclaimPolicy *v1.PersistentVolumeReclaimPolicy `json:\"reclaimPolicy,omitempty\" protobuf:\"bytes,4,opt,name=reclaimPolicy,casttype=k8s.io/api/core/v1.PersistentVolumeReclaimPolicy\"`\n\n\t// mountOptions controls the mountOptions for dynamically provisioned PersistentVolumes of this storage class.\n\t// e.g. [\"ro\", \"soft\"]. Not validated -\n\t// mount of the PVs will simply fail if one is invalid.\n\t// +optional\n\t// +listType=atomic\n\tMountOptions []string `json:\"mountOptions,omitempty\" protobuf:\"bytes,5,opt,name=mountOptions\"`\n\n\t// allowVolumeExpansion shows whether the storage class allow volume expand.\n\t// +optional\n\tAllowVolumeExpansion *bool `json:\"allowVolumeExpansion,omitempty\" protobuf:\"varint,6,opt,name=allowVolumeExpansion\"`\n\n\t// volumeBindingMode indicates how PersistentVolumeClaims should be\n\t// provisioned and bound.  When unset, VolumeBindingImmediate is used.\n\t// This field is only honored by servers that enable the VolumeScheduling feature.\n\t// +optional\n\tVolumeBindingMode *VolumeBindingMode `json:\"volumeBindingMode,omitempty\" protobuf:\"bytes,7,opt,name=volumeBindingMode\"`\n\n\t// allowedTopologies restrict the node topologies where volumes can be dynamically provisioned.\n\t// Each volume plugin defines its own supported topology specifications.\n\t// An empty TopologySelectorTerm list means there is no topology restriction.\n\t// This field is only honored by servers that enable the VolumeScheduling feature.\n\t// +optional\n\t// +listType=atomic\n\tAllowedTopologies []v1.TopologySelectorTerm `json:\"allowedTopologies,omitempty\" protobuf:\"bytes,8,rep,name=allowedTopologies\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.6\n\n// StorageClassList is a collection of storage classes.\ntype StorageClassList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of StorageClasses\n\tItems []StorageClass `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// VolumeBindingMode indicates how PersistentVolumeClaims should be bound.\n// +enum\ntype VolumeBindingMode string\n\nconst (\n\t// VolumeBindingImmediate indicates that PersistentVolumeClaims should be\n\t// immediately provisioned and bound.  This is the default mode.\n\tVolumeBindingImmediate VolumeBindingMode = \"Immediate\"\n\n\t// VolumeBindingWaitForFirstConsumer indicates that PersistentVolumeClaims\n\t// should not be provisioned and bound until the first Pod is created that\n\t// references the PeristentVolumeClaim.  The volume provisioning and\n\t// binding will occur during Pod scheduing.\n\tVolumeBindingWaitForFirstConsumer VolumeBindingMode = \"WaitForFirstConsumer\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.13\n\n// VolumeAttachment captures the intent to attach or detach the specified volume\n// to/from the specified node.\n//\n// VolumeAttachment objects are non-namespaced.\ntype VolumeAttachment struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec represents specification of the desired attach/detach volume behavior.\n\t// Populated by the Kubernetes system.\n\tSpec VolumeAttachmentSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// status represents status of the VolumeAttachment request.\n\t// Populated by the entity completing the attach or detach\n\t// operation, i.e. the external-attacher.\n\t// +optional\n\tStatus VolumeAttachmentStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.13\n\n// VolumeAttachmentList is a collection of VolumeAttachment objects.\ntype VolumeAttachmentList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of VolumeAttachments\n\tItems []VolumeAttachment `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// VolumeAttachmentSpec is the specification of a VolumeAttachment request.\ntype VolumeAttachmentSpec struct {\n\t// attacher indicates the name of the volume driver that MUST handle this\n\t// request. This is the name returned by GetPluginName().\n\tAttacher string `json:\"attacher\" protobuf:\"bytes,1,opt,name=attacher\"`\n\n\t// source represents the volume that should be attached.\n\tSource VolumeAttachmentSource `json:\"source\" protobuf:\"bytes,2,opt,name=source\"`\n\n\t// nodeName represents the node that the volume should be attached to.\n\tNodeName string `json:\"nodeName\" protobuf:\"bytes,3,opt,name=nodeName\"`\n}\n\n// VolumeAttachmentSource represents a volume that should be attached.\n// Right now only PersistentVolumes can be attached via external attacher,\n// in the future we may allow also inline volumes in pods.\n// Exactly one member can be set.\ntype VolumeAttachmentSource struct {\n\t// persistentVolumeName represents the name of the persistent volume to attach.\n\t// +optional\n\tPersistentVolumeName *string `json:\"persistentVolumeName,omitempty\" protobuf:\"bytes,1,opt,name=persistentVolumeName\"`\n\n\t// inlineVolumeSpec contains all the information necessary to attach\n\t// a persistent volume defined by a pod's inline VolumeSource. This field\n\t// is populated only for the CSIMigration feature. It contains\n\t// translated fields from a pod's inline VolumeSource to a\n\t// PersistentVolumeSpec. This field is beta-level and is only\n\t// honored by servers that enabled the CSIMigration feature.\n\t// +optional\n\tInlineVolumeSpec *v1.PersistentVolumeSpec `json:\"inlineVolumeSpec,omitempty\" protobuf:\"bytes,2,opt,name=inlineVolumeSpec\"`\n}\n\n// VolumeAttachmentStatus is the status of a VolumeAttachment request.\ntype VolumeAttachmentStatus struct {\n\t// attached indicates the volume is successfully attached.\n\t// This field must only be set by the entity completing the attach\n\t// operation, i.e. the external-attacher.\n\tAttached bool `json:\"attached\" protobuf:\"varint,1,opt,name=attached\"`\n\n\t// attachmentMetadata is populated with any\n\t// information returned by the attach operation, upon successful attach, that must be passed\n\t// into subsequent WaitForAttach or Mount calls.\n\t// This field must only be set by the entity completing the attach\n\t// operation, i.e. the external-attacher.\n\t// +optional\n\tAttachmentMetadata map[string]string `json:\"attachmentMetadata,omitempty\" protobuf:\"bytes,2,rep,name=attachmentMetadata\"`\n\n\t// attachError represents the last error encountered during attach operation, if any.\n\t// This field must only be set by the entity completing the attach\n\t// operation, i.e. the external-attacher.\n\t// +optional\n\tAttachError *VolumeError `json:\"attachError,omitempty\" protobuf:\"bytes,3,opt,name=attachError,casttype=VolumeError\"`\n\n\t// detachError represents the last error encountered during detach operation, if any.\n\t// This field must only be set by the entity completing the detach\n\t// operation, i.e. the external-attacher.\n\t// +optional\n\tDetachError *VolumeError `json:\"detachError,omitempty\" protobuf:\"bytes,4,opt,name=detachError,casttype=VolumeError\"`\n}\n\n// VolumeError captures an error encountered during a volume operation.\ntype VolumeError struct {\n\t// time represents the time the error was encountered.\n\t// +optional\n\tTime metav1.Time `json:\"time,omitempty\" protobuf:\"bytes,1,opt,name=time\"`\n\n\t// message represents the error encountered during Attach or Detach operation.\n\t// This string may be logged, so it should not contain sensitive\n\t// information.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,2,opt,name=message\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.18\n\n// CSIDriver captures information about a Container Storage Interface (CSI)\n// volume driver deployed on the cluster.\n// Kubernetes attach detach controller uses this object to determine whether attach is required.\n// Kubelet uses this object to determine whether pod information needs to be passed on mount.\n// CSIDriver objects are non-namespaced.\ntype CSIDriver struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object metadata.\n\t// metadata.Name indicates the name of the CSI driver that this object\n\t// refers to; it MUST be the same name returned by the CSI GetPluginName()\n\t// call for that driver.\n\t// The driver name must be 63 characters or less, beginning and ending with\n\t// an alphanumeric character ([a-z0-9A-Z]) with dashes (-), dots (.), and\n\t// alphanumerics between.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec represents the specification of the CSI Driver.\n\tSpec CSIDriverSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.18\n\n// CSIDriverList is a collection of CSIDriver objects.\ntype CSIDriverList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of CSIDriver\n\tItems []CSIDriver `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// CSIDriverSpec is the specification of a CSIDriver.\ntype CSIDriverSpec struct {\n\t// attachRequired indicates this CSI volume driver requires an attach\n\t// operation (because it implements the CSI ControllerPublishVolume()\n\t// method), and that the Kubernetes attach detach controller should call\n\t// the attach volume interface which checks the volumeattachment status\n\t// and waits until the volume is attached before proceeding to mounting.\n\t// The CSI external-attacher coordinates with CSI volume driver and updates\n\t// the volumeattachment status when the attach operation is complete.\n\t// If the CSIDriverRegistry feature gate is enabled and the value is\n\t// specified to false, the attach operation will be skipped.\n\t// Otherwise the attach operation will be called.\n\t//\n\t// This field is immutable.\n\t//\n\t// +optional\n\tAttachRequired *bool `json:\"attachRequired,omitempty\" protobuf:\"varint,1,opt,name=attachRequired\"`\n\n\t// podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.)\n\t// during mount operations, if set to true.\n\t// If set to false, pod information will not be passed on mount.\n\t// Default is false.\n\t//\n\t// The CSI driver specifies podInfoOnMount as part of driver deployment.\n\t// If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls.\n\t// The CSI driver is responsible for parsing and validating the information passed in as VolumeContext.\n\t//\n\t// The following VolumeContext will be passed if podInfoOnMount is set to true.\n\t// This list might grow, but the prefix will be used.\n\t// \"csi.storage.k8s.io/pod.name\": pod.Name\n\t// \"csi.storage.k8s.io/pod.namespace\": pod.Namespace\n\t// \"csi.storage.k8s.io/pod.uid\": string(pod.UID)\n\t// \"csi.storage.k8s.io/ephemeral\": \"true\" if the volume is an ephemeral inline volume\n\t//                                 defined by a CSIVolumeSource, otherwise \"false\"\n\t//\n\t// \"csi.storage.k8s.io/ephemeral\" is a new feature in Kubernetes 1.16. It is only\n\t// required for drivers which support both the \"Persistent\" and \"Ephemeral\" VolumeLifecycleMode.\n\t// Other drivers can leave pod info disabled and/or ignore this field.\n\t// As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when\n\t// deployed on such a cluster and the deployment determines which mode that is, for example\n\t// via a command line parameter of the driver.\n\t//\n\t// This field was immutable in Kubernetes < 1.29 and now is mutable.\n\t//\n\t// +optional\n\tPodInfoOnMount *bool `json:\"podInfoOnMount,omitempty\" protobuf:\"bytes,2,opt,name=podInfoOnMount\"`\n\n\t// volumeLifecycleModes defines what kind of volumes this CSI volume driver supports.\n\t// The default if the list is empty is \"Persistent\", which is the usage defined by the\n\t// CSI specification and implemented in Kubernetes via the usual PV/PVC mechanism.\n\t//\n\t// The other mode is \"Ephemeral\". In this mode, volumes are defined inline inside the pod spec\n\t// with CSIVolumeSource and their lifecycle is tied to the lifecycle of that pod.\n\t// A driver has to be aware of this because it is only going to get a NodePublishVolume call for such a volume.\n\t//\n\t// For more information about implementing this mode, see\n\t// https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html\n\t// A driver can support one or more of these modes and more modes may be added in the future.\n\t//\n\t// This field is beta.\n\t// This field is immutable.\n\t//\n\t// +optional\n\t// +listType=set\n\tVolumeLifecycleModes []VolumeLifecycleMode `json:\"volumeLifecycleModes,omitempty\" protobuf:\"bytes,3,opt,name=volumeLifecycleModes\"`\n\n\t// storageCapacity indicates that the CSI volume driver wants pod scheduling to consider the storage\n\t// capacity that the driver deployment will report by creating\n\t// CSIStorageCapacity objects with capacity information, if set to true.\n\t//\n\t// The check can be enabled immediately when deploying a driver.\n\t// In that case, provisioning new volumes with late binding\n\t// will pause until the driver deployment has published\n\t// some suitable CSIStorageCapacity object.\n\t//\n\t// Alternatively, the driver can be deployed with the field\n\t// unset or false and it can be flipped later when storage\n\t// capacity information has been published.\n\t//\n\t// This field was immutable in Kubernetes <= 1.22 and now is mutable.\n\t//\n\t// +optional\n\t// +featureGate=CSIStorageCapacity\n\tStorageCapacity *bool `json:\"storageCapacity,omitempty\" protobuf:\"bytes,4,opt,name=storageCapacity\"`\n\n\t// fsGroupPolicy defines if the underlying volume supports changing ownership and\n\t// permission of the volume before being mounted.\n\t// Refer to the specific FSGroupPolicy values for additional details.\n\t//\n\t// This field was immutable in Kubernetes < 1.29 and now is mutable.\n\t//\n\t// Defaults to ReadWriteOnceWithFSType, which will examine each volume\n\t// to determine if Kubernetes should modify ownership and permissions of the volume.\n\t// With the default policy the defined fsGroup will only be applied\n\t// if a fstype is defined and the volume's access mode contains ReadWriteOnce.\n\t//\n\t// +optional\n\tFSGroupPolicy *FSGroupPolicy `json:\"fsGroupPolicy,omitempty\" protobuf:\"bytes,5,opt,name=fsGroupPolicy\"`\n\n\t// tokenRequests indicates the CSI driver needs pods' service account\n\t// tokens it is mounting volume for to do necessary authentication. Kubelet\n\t// will pass the tokens in VolumeContext in the CSI NodePublishVolume calls.\n\t// The CSI driver should parse and validate the following VolumeContext:\n\t// \"csi.storage.k8s.io/serviceAccount.tokens\": {\n\t//   \"<audience>\": {\n\t//     \"token\": <token>,\n\t//     \"expirationTimestamp\": <expiration timestamp in RFC3339>,\n\t//   },\n\t//   ...\n\t// }\n\t//\n\t// Note: Audience in each TokenRequest should be different and at\n\t// most one token is empty string. To receive a new token after expiry,\n\t// RequiresRepublish can be used to trigger NodePublishVolume periodically.\n\t//\n\t// +optional\n\t// +listType=atomic\n\tTokenRequests []TokenRequest `json:\"tokenRequests,omitempty\" protobuf:\"bytes,6,opt,name=tokenRequests\"`\n\n\t// requiresRepublish indicates the CSI driver wants `NodePublishVolume`\n\t// being periodically called to reflect any possible change in the mounted\n\t// volume. This field defaults to false.\n\t//\n\t// Note: After a successful initial NodePublishVolume call, subsequent calls\n\t// to NodePublishVolume should only update the contents of the volume. New\n\t// mount points will not be seen by a running container.\n\t//\n\t// +optional\n\tRequiresRepublish *bool `json:\"requiresRepublish,omitempty\" protobuf:\"varint,7,opt,name=requiresRepublish\"`\n\n\t// seLinuxMount specifies if the CSI driver supports \"-o context\"\n\t// mount option.\n\t//\n\t// When \"true\", the CSI driver must ensure that all volumes provided by this CSI\n\t// driver can be mounted separately with different `-o context` options. This is\n\t// typical for storage backends that provide volumes as filesystems on block\n\t// devices or as independent shared volumes.\n\t// Kubernetes will call NodeStage / NodePublish with \"-o context=xyz\" mount\n\t// option when mounting a ReadWriteOncePod volume used in Pod that has\n\t// explicitly set SELinux context. In the future, it may be expanded to other\n\t// volume AccessModes. In any case, Kubernetes will ensure that the volume is\n\t// mounted only with a single SELinux context.\n\t//\n\t// When \"false\", Kubernetes won't pass any special SELinux mount options to the driver.\n\t// This is typical for volumes that represent subdirectories of a bigger shared filesystem.\n\t//\n\t// Default is \"false\".\n\t//\n\t// +featureGate=SELinuxMountReadWriteOncePod\n\t// +optional\n\tSELinuxMount *bool `json:\"seLinuxMount,omitempty\" protobuf:\"varint,8,opt,name=seLinuxMount\"`\n}\n\n// FSGroupPolicy specifies if a CSI Driver supports modifying\n// volume ownership and permissions of the volume to be mounted.\n// More modes may be added in the future.\ntype FSGroupPolicy string\n\nconst (\n\t// ReadWriteOnceWithFSTypeFSGroupPolicy indicates that each volume will be examined\n\t// to determine if the volume ownership and permissions\n\t// should be modified. If a fstype is defined and the volume's access mode\n\t// contains ReadWriteOnce or ReadWriteOncePod, then the defined fsGroup will be applied.\n\t// This mode should be defined if it's expected that the\n\t// fsGroup may need to be modified depending on the pod's SecurityPolicy.\n\t// This is the default behavior if no other FSGroupPolicy is defined.\n\tReadWriteOnceWithFSTypeFSGroupPolicy FSGroupPolicy = \"ReadWriteOnceWithFSType\"\n\n\t// FileFSGroupPolicy indicates that CSI driver supports volume ownership\n\t// and permission change via fsGroup, and Kubernetes will change the permissions\n\t// and ownership of every file in the volume to match the user requested fsGroup in\n\t// the pod's SecurityPolicy regardless of fstype or access mode.\n\t// Use this mode if Kubernetes should modify the permissions and ownership\n\t// of the volume.\n\tFileFSGroupPolicy FSGroupPolicy = \"File\"\n\n\t// NoneFSGroupPolicy indicates that volumes will be mounted without performing\n\t// any ownership or permission modifications, as the CSIDriver does not support\n\t// these operations.\n\t// This mode should be selected if the CSIDriver does not support fsGroup modifications,\n\t// for example when Kubernetes cannot change ownership and permissions on a volume due\n\t// to root-squash settings on a NFS volume.\n\tNoneFSGroupPolicy FSGroupPolicy = \"None\"\n)\n\n// VolumeLifecycleMode is an enumeration of possible usage modes for a volume\n// provided by a CSI driver. More modes may be added in the future.\ntype VolumeLifecycleMode string\n\n// TokenRequest contains parameters of a service account token.\ntype TokenRequest struct {\n\t// audience is the intended audience of the token in \"TokenRequestSpec\".\n\t// It will default to the audiences of kube apiserver.\n\tAudience string `json:\"audience\" protobuf:\"bytes,1,opt,name=audience\"`\n\n\t// expirationSeconds is the duration of validity of the token in \"TokenRequestSpec\".\n\t// It has the same default value of \"ExpirationSeconds\" in \"TokenRequestSpec\".\n\t//\n\t// +optional\n\tExpirationSeconds *int64 `json:\"expirationSeconds,omitempty\" protobuf:\"varint,2,opt,name=expirationSeconds\"`\n}\n\nconst (\n\t// VolumeLifecyclePersistent explicitly confirms that the driver implements\n\t// the full CSI spec. It is the default when CSIDriverSpec.VolumeLifecycleModes is not\n\t// set. Such volumes are managed in Kubernetes via the persistent volume\n\t// claim mechanism and have a lifecycle that is independent of the pods which\n\t// use them.\n\tVolumeLifecyclePersistent VolumeLifecycleMode = \"Persistent\"\n\n\t// VolumeLifecycleEphemeral indicates that the driver can be used for\n\t// ephemeral inline volumes. Such volumes are specified inside the pod\n\t// spec with a CSIVolumeSource and, as far as Kubernetes is concerned, have\n\t// a lifecycle that is tied to the lifecycle of the pod. For example, such\n\t// a volume might contain data that gets created specifically for that pod,\n\t// like secrets.\n\t// But how the volume actually gets created and managed is entirely up to\n\t// the driver. It might also use reference counting to share the same volume\n\t// instance among different pods if the CSIVolumeSource of those pods is\n\t// identical.\n\tVolumeLifecycleEphemeral VolumeLifecycleMode = \"Ephemeral\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.17\n\n// CSINode holds information about all CSI drivers installed on a node.\n// CSI drivers do not need to create the CSINode object directly. As long as\n// they use the node-driver-registrar sidecar container, the kubelet will\n// automatically populate the CSINode object for the CSI driver as part of\n// kubelet plugin registration.\n// CSINode has the same name as a node. If the object is missing, it means either\n// there are no CSI Drivers available on the node, or the Kubelet version is low\n// enough that it doesn't create this object.\n// CSINode has an OwnerReference that points to the corresponding node object.\ntype CSINode struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object's metadata.\n\t// metadata.name must be the Kubernetes node name.\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec is the specification of CSINode\n\tSpec CSINodeSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n}\n\n// CSINodeSpec holds information about the specification of all CSI drivers installed on a node\ntype CSINodeSpec struct {\n\t// drivers is a list of information of all CSI Drivers existing on a node.\n\t// If all drivers in the list are uninstalled, this can become empty.\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=name\n\tDrivers []CSINodeDriver `json:\"drivers\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,1,rep,name=drivers\"`\n}\n\n// CSINodeDriver holds information about the specification of one CSI driver installed on a node\ntype CSINodeDriver struct {\n\t// name represents the name of the CSI driver that this object refers to.\n\t// This MUST be the same name returned by the CSI GetPluginName() call for\n\t// that driver.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\n\t// nodeID of the node from the driver point of view.\n\t// This field enables Kubernetes to communicate with storage systems that do\n\t// not share the same nomenclature for nodes. For example, Kubernetes may\n\t// refer to a given node as \"node1\", but the storage system may refer to\n\t// the same node as \"nodeA\". When Kubernetes issues a command to the storage\n\t// system to attach a volume to a specific node, it can use this field to\n\t// refer to the node name using the ID that the storage system will\n\t// understand, e.g. \"nodeA\" instead of \"node1\". This field is required.\n\tNodeID string `json:\"nodeID\" protobuf:\"bytes,2,opt,name=nodeID\"`\n\n\t// topologyKeys is the list of keys supported by the driver.\n\t// When a driver is initialized on a cluster, it provides a set of topology\n\t// keys that it understands (e.g. \"company.com/zone\", \"company.com/region\").\n\t// When a driver is initialized on a node, it provides the same topology keys\n\t// along with values. Kubelet will expose these topology keys as labels\n\t// on its own node object.\n\t// When Kubernetes does topology aware provisioning, it can use this list to\n\t// determine which labels it should retrieve from the node object and pass\n\t// back to the driver.\n\t// It is possible for different nodes to use different topology keys.\n\t// This can be empty if driver does not support topology.\n\t// +optional\n\t// +listType=atomic\n\tTopologyKeys []string `json:\"topologyKeys\" protobuf:\"bytes,3,rep,name=topologyKeys\"`\n\n\t// allocatable represents the volume resources of a node that are available for scheduling.\n\t// This field is beta.\n\t// +optional\n\tAllocatable *VolumeNodeResources `json:\"allocatable,omitempty\" protobuf:\"bytes,4,opt,name=allocatable\"`\n}\n\n// VolumeNodeResources is a set of resource limits for scheduling of volumes.\ntype VolumeNodeResources struct {\n\t// count indicates the maximum number of unique volumes managed by the CSI driver that can be used on a node.\n\t// A volume that is both attached and mounted on a node is considered to be used once, not twice.\n\t// The same rule applies for a unique volume that is shared among multiple pods on the same node.\n\t// If this field is not specified, then the supported number of volumes on this node is unbounded.\n\t// +optional\n\tCount *int32 `json:\"count,omitempty\" protobuf:\"varint,1,opt,name=count\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.17\n\n// CSINodeList is a collection of CSINode objects.\ntype CSINodeList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of CSINode\n\tItems []CSINode `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.24\n\n// CSIStorageCapacity stores the result of one CSI GetCapacity call.\n// For a given StorageClass, this describes the available capacity in a\n// particular topology segment.  This can be used when considering where to\n// instantiate new PersistentVolumes.\n//\n// For example this can express things like:\n// - StorageClass \"standard\" has \"1234 GiB\" available in \"topology.kubernetes.io/zone=us-east1\"\n// - StorageClass \"localssd\" has \"10 GiB\" available in \"kubernetes.io/hostname=knode-abc123\"\n//\n// The following three cases all imply that no capacity is available for\n// a certain combination:\n// - no object exists with suitable topology and storage class name\n// - such an object exists, but the capacity is unset\n// - such an object exists, but the capacity is zero\n//\n// The producer of these objects can decide which approach is more suitable.\n//\n// They are consumed by the kube-scheduler when a CSI driver opts into\n// capacity-aware scheduling with CSIDriverSpec.StorageCapacity. The scheduler\n// compares the MaximumVolumeSize against the requested size of pending volumes\n// to filter out unsuitable nodes. If MaximumVolumeSize is unset, it falls back\n// to a comparison against the less precise Capacity. If that is also unset,\n// the scheduler assumes that capacity is insufficient and tries some other\n// node.\ntype CSIStorageCapacity struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object's metadata.\n\t// The name has no particular meaning. It must be a DNS subdomain (dots allowed, 253 characters).\n\t// To ensure that there are no conflicts with other CSI drivers on the cluster,\n\t// the recommendation is to use csisc-<uuid>, a generated name, or a reverse-domain name\n\t// which ends with the unique CSI driver name.\n\t//\n\t// Objects are namespaced.\n\t//\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// nodeTopology defines which nodes have access to the storage\n\t// for which capacity was reported. If not set, the storage is\n\t// not accessible from any node in the cluster. If empty, the\n\t// storage is accessible from all nodes. This field is\n\t// immutable.\n\t//\n\t// +optional\n\tNodeTopology *metav1.LabelSelector `json:\"nodeTopology,omitempty\" protobuf:\"bytes,2,opt,name=nodeTopology\"`\n\n\t// storageClassName represents the name of the StorageClass that the reported capacity applies to.\n\t// It must meet the same requirements as the name of a StorageClass\n\t// object (non-empty, DNS subdomain). If that object no longer exists,\n\t// the CSIStorageCapacity object is obsolete and should be removed by its\n\t// creator.\n\t// This field is immutable.\n\tStorageClassName string `json:\"storageClassName\" protobuf:\"bytes,3,name=storageClassName\"`\n\n\t// capacity is the value reported by the CSI driver in its GetCapacityResponse\n\t// for a GetCapacityRequest with topology and parameters that match the\n\t// previous fields.\n\t//\n\t// The semantic is currently (CSI spec 1.2) defined as:\n\t// The available capacity, in bytes, of the storage that can be used\n\t// to provision volumes. If not set, that information is currently\n\t// unavailable.\n\t//\n\t// +optional\n\tCapacity *resource.Quantity `json:\"capacity,omitempty\" protobuf:\"bytes,4,opt,name=capacity\"`\n\n\t// maximumVolumeSize is the value reported by the CSI driver in its GetCapacityResponse\n\t// for a GetCapacityRequest with topology and parameters that match the\n\t// previous fields.\n\t//\n\t// This is defined since CSI spec 1.4.0 as the largest size\n\t// that may be used in a\n\t// CreateVolumeRequest.capacity_range.required_bytes field to\n\t// create a volume with the same parameters as those in\n\t// GetCapacityRequest. The corresponding value in the Kubernetes\n\t// API is ResourceRequirements.Requests in a volume claim.\n\t//\n\t// +optional\n\tMaximumVolumeSize *resource.Quantity `json:\"maximumVolumeSize,omitempty\" protobuf:\"bytes,5,opt,name=maximumVolumeSize\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.24\n\n// CSIStorageCapacityList is a collection of CSIStorageCapacity objects.\ntype CSIStorageCapacityList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of CSIStorageCapacity objects.\n\tItems []CSIStorageCapacity `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_CSIDriver = map[string]string{\n\t\"\":         \"CSIDriver captures information about a Container Storage Interface (CSI) volume driver deployed on the cluster. Kubernetes attach detach controller uses this object to determine whether attach is required. Kubelet uses this object to determine whether pod information needs to be passed on mount. CSIDriver objects are non-namespaced.\",\n\t\"metadata\": \"Standard object metadata. metadata.Name indicates the name of the CSI driver that this object refers to; it MUST be the same name returned by the CSI GetPluginName() call for that driver. The driver name must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), dots (.), and alphanumerics between. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec represents the specification of the CSI Driver.\",\n}\n\nfunc (CSIDriver) SwaggerDoc() map[string]string {\n\treturn map_CSIDriver\n}\n\nvar map_CSIDriverList = map[string]string{\n\t\"\":         \"CSIDriverList is a collection of CSIDriver objects.\",\n\t\"metadata\": \"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of CSIDriver\",\n}\n\nfunc (CSIDriverList) SwaggerDoc() map[string]string {\n\treturn map_CSIDriverList\n}\n\nvar map_CSIDriverSpec = map[string]string{\n\t\"\":                     \"CSIDriverSpec is the specification of a CSIDriver.\",\n\t\"attachRequired\":       \"attachRequired indicates this CSI volume driver requires an attach operation (because it implements the CSI ControllerPublishVolume() method), and that the Kubernetes attach detach controller should call the attach volume interface which checks the volumeattachment status and waits until the volume is attached before proceeding to mounting. The CSI external-attacher coordinates with CSI volume driver and updates the volumeattachment status when the attach operation is complete. If the CSIDriverRegistry feature gate is enabled and the value is specified to false, the attach operation will be skipped. Otherwise the attach operation will be called.\\n\\nThis field is immutable.\",\n\t\"podInfoOnMount\":       \"podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.) during mount operations, if set to true. If set to false, pod information will not be passed on mount. Default is false.\\n\\nThe CSI driver specifies podInfoOnMount as part of driver deployment. If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls. The CSI driver is responsible for parsing and validating the information passed in as VolumeContext.\\n\\nThe following VolumeContext will be passed if podInfoOnMount is set to true. This list might grow, but the prefix will be used. \\\"csi.storage.k8s.io/pod.name\\\": pod.Name \\\"csi.storage.k8s.io/pod.namespace\\\": pod.Namespace \\\"csi.storage.k8s.io/pod.uid\\\": string(pod.UID) \\\"csi.storage.k8s.io/ephemeral\\\": \\\"true\\\" if the volume is an ephemeral inline volume\\n                                defined by a CSIVolumeSource, otherwise \\\"false\\\"\\n\\n\\\"csi.storage.k8s.io/ephemeral\\\" is a new feature in Kubernetes 1.16. It is only required for drivers which support both the \\\"Persistent\\\" and \\\"Ephemeral\\\" VolumeLifecycleMode. Other drivers can leave pod info disabled and/or ignore this field. As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when deployed on such a cluster and the deployment determines which mode that is, for example via a command line parameter of the driver.\\n\\nThis field was immutable in Kubernetes < 1.29 and now is mutable.\",\n\t\"volumeLifecycleModes\": \"volumeLifecycleModes defines what kind of volumes this CSI volume driver supports. The default if the list is empty is \\\"Persistent\\\", which is the usage defined by the CSI specification and implemented in Kubernetes via the usual PV/PVC mechanism.\\n\\nThe other mode is \\\"Ephemeral\\\". In this mode, volumes are defined inline inside the pod spec with CSIVolumeSource and their lifecycle is tied to the lifecycle of that pod. A driver has to be aware of this because it is only going to get a NodePublishVolume call for such a volume.\\n\\nFor more information about implementing this mode, see https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html A driver can support one or more of these modes and more modes may be added in the future.\\n\\nThis field is beta. This field is immutable.\",\n\t\"storageCapacity\":      \"storageCapacity indicates that the CSI volume driver wants pod scheduling to consider the storage capacity that the driver deployment will report by creating CSIStorageCapacity objects with capacity information, if set to true.\\n\\nThe check can be enabled immediately when deploying a driver. In that case, provisioning new volumes with late binding will pause until the driver deployment has published some suitable CSIStorageCapacity object.\\n\\nAlternatively, the driver can be deployed with the field unset or false and it can be flipped later when storage capacity information has been published.\\n\\nThis field was immutable in Kubernetes <= 1.22 and now is mutable.\",\n\t\"fsGroupPolicy\":        \"fsGroupPolicy defines if the underlying volume supports changing ownership and permission of the volume before being mounted. Refer to the specific FSGroupPolicy values for additional details.\\n\\nThis field was immutable in Kubernetes < 1.29 and now is mutable.\\n\\nDefaults to ReadWriteOnceWithFSType, which will examine each volume to determine if Kubernetes should modify ownership and permissions of the volume. With the default policy the defined fsGroup will only be applied if a fstype is defined and the volume's access mode contains ReadWriteOnce.\",\n\t\"tokenRequests\":        \"tokenRequests indicates the CSI driver needs pods' service account tokens it is mounting volume for to do necessary authentication. Kubelet will pass the tokens in VolumeContext in the CSI NodePublishVolume calls. The CSI driver should parse and validate the following VolumeContext: \\\"csi.storage.k8s.io/serviceAccount.tokens\\\": {\\n  \\\"<audience>\\\": {\\n    \\\"token\\\": <token>,\\n    \\\"expirationTimestamp\\\": <expiration timestamp in RFC3339>,\\n  },\\n  ...\\n}\\n\\nNote: Audience in each TokenRequest should be different and at most one token is empty string. To receive a new token after expiry, RequiresRepublish can be used to trigger NodePublishVolume periodically.\",\n\t\"requiresRepublish\":    \"requiresRepublish indicates the CSI driver wants `NodePublishVolume` being periodically called to reflect any possible change in the mounted volume. This field defaults to false.\\n\\nNote: After a successful initial NodePublishVolume call, subsequent calls to NodePublishVolume should only update the contents of the volume. New mount points will not be seen by a running container.\",\n\t\"seLinuxMount\":         \"seLinuxMount specifies if the CSI driver supports \\\"-o context\\\" mount option.\\n\\nWhen \\\"true\\\", the CSI driver must ensure that all volumes provided by this CSI driver can be mounted separately with different `-o context` options. This is typical for storage backends that provide volumes as filesystems on block devices or as independent shared volumes. Kubernetes will call NodeStage / NodePublish with \\\"-o context=xyz\\\" mount option when mounting a ReadWriteOncePod volume used in Pod that has explicitly set SELinux context. In the future, it may be expanded to other volume AccessModes. In any case, Kubernetes will ensure that the volume is mounted only with a single SELinux context.\\n\\nWhen \\\"false\\\", Kubernetes won't pass any special SELinux mount options to the driver. This is typical for volumes that represent subdirectories of a bigger shared filesystem.\\n\\nDefault is \\\"false\\\".\",\n}\n\nfunc (CSIDriverSpec) SwaggerDoc() map[string]string {\n\treturn map_CSIDriverSpec\n}\n\nvar map_CSINode = map[string]string{\n\t\"\":         \"CSINode holds information about all CSI drivers installed on a node. CSI drivers do not need to create the CSINode object directly. As long as they use the node-driver-registrar sidecar container, the kubelet will automatically populate the CSINode object for the CSI driver as part of kubelet plugin registration. CSINode has the same name as a node. If the object is missing, it means either there are no CSI Drivers available on the node, or the Kubelet version is low enough that it doesn't create this object. CSINode has an OwnerReference that points to the corresponding node object.\",\n\t\"metadata\": \"Standard object's metadata. metadata.name must be the Kubernetes node name.\",\n\t\"spec\":     \"spec is the specification of CSINode\",\n}\n\nfunc (CSINode) SwaggerDoc() map[string]string {\n\treturn map_CSINode\n}\n\nvar map_CSINodeDriver = map[string]string{\n\t\"\":             \"CSINodeDriver holds information about the specification of one CSI driver installed on a node\",\n\t\"name\":         \"name represents the name of the CSI driver that this object refers to. This MUST be the same name returned by the CSI GetPluginName() call for that driver.\",\n\t\"nodeID\":       \"nodeID of the node from the driver point of view. This field enables Kubernetes to communicate with storage systems that do not share the same nomenclature for nodes. For example, Kubernetes may refer to a given node as \\\"node1\\\", but the storage system may refer to the same node as \\\"nodeA\\\". When Kubernetes issues a command to the storage system to attach a volume to a specific node, it can use this field to refer to the node name using the ID that the storage system will understand, e.g. \\\"nodeA\\\" instead of \\\"node1\\\". This field is required.\",\n\t\"topologyKeys\": \"topologyKeys is the list of keys supported by the driver. When a driver is initialized on a cluster, it provides a set of topology keys that it understands (e.g. \\\"company.com/zone\\\", \\\"company.com/region\\\"). When a driver is initialized on a node, it provides the same topology keys along with values. Kubelet will expose these topology keys as labels on its own node object. When Kubernetes does topology aware provisioning, it can use this list to determine which labels it should retrieve from the node object and pass back to the driver. It is possible for different nodes to use different topology keys. This can be empty if driver does not support topology.\",\n\t\"allocatable\":  \"allocatable represents the volume resources of a node that are available for scheduling. This field is beta.\",\n}\n\nfunc (CSINodeDriver) SwaggerDoc() map[string]string {\n\treturn map_CSINodeDriver\n}\n\nvar map_CSINodeList = map[string]string{\n\t\"\":         \"CSINodeList is a collection of CSINode objects.\",\n\t\"metadata\": \"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of CSINode\",\n}\n\nfunc (CSINodeList) SwaggerDoc() map[string]string {\n\treturn map_CSINodeList\n}\n\nvar map_CSINodeSpec = map[string]string{\n\t\"\":        \"CSINodeSpec holds information about the specification of all CSI drivers installed on a node\",\n\t\"drivers\": \"drivers is a list of information of all CSI Drivers existing on a node. If all drivers in the list are uninstalled, this can become empty.\",\n}\n\nfunc (CSINodeSpec) SwaggerDoc() map[string]string {\n\treturn map_CSINodeSpec\n}\n\nvar map_CSIStorageCapacity = map[string]string{\n\t\"\":                  \"CSIStorageCapacity stores the result of one CSI GetCapacity call. For a given StorageClass, this describes the available capacity in a particular topology segment.  This can be used when considering where to instantiate new PersistentVolumes.\\n\\nFor example this can express things like: - StorageClass \\\"standard\\\" has \\\"1234 GiB\\\" available in \\\"topology.kubernetes.io/zone=us-east1\\\" - StorageClass \\\"localssd\\\" has \\\"10 GiB\\\" available in \\\"kubernetes.io/hostname=knode-abc123\\\"\\n\\nThe following three cases all imply that no capacity is available for a certain combination: - no object exists with suitable topology and storage class name - such an object exists, but the capacity is unset - such an object exists, but the capacity is zero\\n\\nThe producer of these objects can decide which approach is more suitable.\\n\\nThey are consumed by the kube-scheduler when a CSI driver opts into capacity-aware scheduling with CSIDriverSpec.StorageCapacity. The scheduler compares the MaximumVolumeSize against the requested size of pending volumes to filter out unsuitable nodes. If MaximumVolumeSize is unset, it falls back to a comparison against the less precise Capacity. If that is also unset, the scheduler assumes that capacity is insufficient and tries some other node.\",\n\t\"metadata\":          \"Standard object's metadata. The name has no particular meaning. It must be a DNS subdomain (dots allowed, 253 characters). To ensure that there are no conflicts with other CSI drivers on the cluster, the recommendation is to use csisc-<uuid>, a generated name, or a reverse-domain name which ends with the unique CSI driver name.\\n\\nObjects are namespaced.\\n\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"nodeTopology\":      \"nodeTopology defines which nodes have access to the storage for which capacity was reported. If not set, the storage is not accessible from any node in the cluster. If empty, the storage is accessible from all nodes. This field is immutable.\",\n\t\"storageClassName\":  \"storageClassName represents the name of the StorageClass that the reported capacity applies to. It must meet the same requirements as the name of a StorageClass object (non-empty, DNS subdomain). If that object no longer exists, the CSIStorageCapacity object is obsolete and should be removed by its creator. This field is immutable.\",\n\t\"capacity\":          \"capacity is the value reported by the CSI driver in its GetCapacityResponse for a GetCapacityRequest with topology and parameters that match the previous fields.\\n\\nThe semantic is currently (CSI spec 1.2) defined as: The available capacity, in bytes, of the storage that can be used to provision volumes. If not set, that information is currently unavailable.\",\n\t\"maximumVolumeSize\": \"maximumVolumeSize is the value reported by the CSI driver in its GetCapacityResponse for a GetCapacityRequest with topology and parameters that match the previous fields.\\n\\nThis is defined since CSI spec 1.4.0 as the largest size that may be used in a CreateVolumeRequest.capacity_range.required_bytes field to create a volume with the same parameters as those in GetCapacityRequest. The corresponding value in the Kubernetes API is ResourceRequirements.Requests in a volume claim.\",\n}\n\nfunc (CSIStorageCapacity) SwaggerDoc() map[string]string {\n\treturn map_CSIStorageCapacity\n}\n\nvar map_CSIStorageCapacityList = map[string]string{\n\t\"\":         \"CSIStorageCapacityList is a collection of CSIStorageCapacity objects.\",\n\t\"metadata\": \"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of CSIStorageCapacity objects.\",\n}\n\nfunc (CSIStorageCapacityList) SwaggerDoc() map[string]string {\n\treturn map_CSIStorageCapacityList\n}\n\nvar map_StorageClass = map[string]string{\n\t\"\":                     \"StorageClass describes the parameters for a class of storage for which PersistentVolumes can be dynamically provisioned.\\n\\nStorageClasses are non-namespaced; the name of the storage class according to etcd is in ObjectMeta.Name.\",\n\t\"metadata\":             \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"provisioner\":          \"provisioner indicates the type of the provisioner.\",\n\t\"parameters\":           \"parameters holds the parameters for the provisioner that should create volumes of this storage class.\",\n\t\"reclaimPolicy\":        \"reclaimPolicy controls the reclaimPolicy for dynamically provisioned PersistentVolumes of this storage class. Defaults to Delete.\",\n\t\"mountOptions\":         \"mountOptions controls the mountOptions for dynamically provisioned PersistentVolumes of this storage class. e.g. [\\\"ro\\\", \\\"soft\\\"]. Not validated - mount of the PVs will simply fail if one is invalid.\",\n\t\"allowVolumeExpansion\": \"allowVolumeExpansion shows whether the storage class allow volume expand.\",\n\t\"volumeBindingMode\":    \"volumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound.  When unset, VolumeBindingImmediate is used. This field is only honored by servers that enable the VolumeScheduling feature.\",\n\t\"allowedTopologies\":    \"allowedTopologies restrict the node topologies where volumes can be dynamically provisioned. Each volume plugin defines its own supported topology specifications. An empty TopologySelectorTerm list means there is no topology restriction. This field is only honored by servers that enable the VolumeScheduling feature.\",\n}\n\nfunc (StorageClass) SwaggerDoc() map[string]string {\n\treturn map_StorageClass\n}\n\nvar map_StorageClassList = map[string]string{\n\t\"\":         \"StorageClassList is a collection of storage classes.\",\n\t\"metadata\": \"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of StorageClasses\",\n}\n\nfunc (StorageClassList) SwaggerDoc() map[string]string {\n\treturn map_StorageClassList\n}\n\nvar map_TokenRequest = map[string]string{\n\t\"\":                  \"TokenRequest contains parameters of a service account token.\",\n\t\"audience\":          \"audience is the intended audience of the token in \\\"TokenRequestSpec\\\". It will default to the audiences of kube apiserver.\",\n\t\"expirationSeconds\": \"expirationSeconds is the duration of validity of the token in \\\"TokenRequestSpec\\\". It has the same default value of \\\"ExpirationSeconds\\\" in \\\"TokenRequestSpec\\\".\",\n}\n\nfunc (TokenRequest) SwaggerDoc() map[string]string {\n\treturn map_TokenRequest\n}\n\nvar map_VolumeAttachment = map[string]string{\n\t\"\":         \"VolumeAttachment captures the intent to attach or detach the specified volume to/from the specified node.\\n\\nVolumeAttachment objects are non-namespaced.\",\n\t\"metadata\": \"Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec represents specification of the desired attach/detach volume behavior. Populated by the Kubernetes system.\",\n\t\"status\":   \"status represents status of the VolumeAttachment request. Populated by the entity completing the attach or detach operation, i.e. the external-attacher.\",\n}\n\nfunc (VolumeAttachment) SwaggerDoc() map[string]string {\n\treturn map_VolumeAttachment\n}\n\nvar map_VolumeAttachmentList = map[string]string{\n\t\"\":         \"VolumeAttachmentList is a collection of VolumeAttachment objects.\",\n\t\"metadata\": \"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of VolumeAttachments\",\n}\n\nfunc (VolumeAttachmentList) SwaggerDoc() map[string]string {\n\treturn map_VolumeAttachmentList\n}\n\nvar map_VolumeAttachmentSource = map[string]string{\n\t\"\":                     \"VolumeAttachmentSource represents a volume that should be attached. Right now only PersistentVolumes can be attached via external attacher, in the future we may allow also inline volumes in pods. Exactly one member can be set.\",\n\t\"persistentVolumeName\": \"persistentVolumeName represents the name of the persistent volume to attach.\",\n}\n\nfunc (VolumeAttachmentSource) SwaggerDoc() map[string]string {\n\treturn map_VolumeAttachmentSource\n}\n\nvar map_VolumeAttachmentSpec = map[string]string{\n\t\"\":         \"VolumeAttachmentSpec is the specification of a VolumeAttachment request.\",\n\t\"attacher\": \"attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName().\",\n\t\"source\":   \"source represents the volume that should be attached.\",\n\t\"nodeName\": \"nodeName represents the node that the volume should be attached to.\",\n}\n\nfunc (VolumeAttachmentSpec) SwaggerDoc() map[string]string {\n\treturn map_VolumeAttachmentSpec\n}\n\nvar map_VolumeAttachmentStatus = map[string]string{\n\t\"\":                   \"VolumeAttachmentStatus is the status of a VolumeAttachment request.\",\n\t\"attached\":           \"attached indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.\",\n\t\"attachmentMetadata\": \"attachmentMetadata is populated with any information returned by the attach operation, upon successful attach, that must be passed into subsequent WaitForAttach or Mount calls. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.\",\n\t\"attachError\":        \"attachError represents the last error encountered during attach operation, if any. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.\",\n\t\"detachError\":        \"detachError represents the last error encountered during detach operation, if any. This field must only be set by the entity completing the detach operation, i.e. the external-attacher.\",\n}\n\nfunc (VolumeAttachmentStatus) SwaggerDoc() map[string]string {\n\treturn map_VolumeAttachmentStatus\n}\n\nvar map_VolumeError = map[string]string{\n\t\"\":        \"VolumeError captures an error encountered during a volume operation.\",\n\t\"time\":    \"time represents the time the error was encountered.\",\n\t\"message\": \"message represents the error encountered during Attach or Detach operation. This string may be logged, so it should not contain sensitive information.\",\n}\n\nfunc (VolumeError) SwaggerDoc() map[string]string {\n\treturn map_VolumeError\n}\n\nvar map_VolumeNodeResources = map[string]string{\n\t\"\":      \"VolumeNodeResources is a set of resource limits for scheduling of volumes.\",\n\t\"count\": \"count indicates the maximum number of unique volumes managed by the CSI driver that can be used on a node. A volume that is both attached and mounted on a node is considered to be used once, not twice. The same rule applies for a unique volume that is shared among multiple pods on the same node. If this field is not specified, then the supported number of volumes on this node is unbounded.\",\n}\n\nfunc (VolumeNodeResources) SwaggerDoc() map[string]string {\n\treturn map_VolumeNodeResources\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSIDriver) DeepCopyInto(out *CSIDriver) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSIDriver.\nfunc (in *CSIDriver) DeepCopy() *CSIDriver {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSIDriver)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CSIDriver) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSIDriverList) DeepCopyInto(out *CSIDriverList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]CSIDriver, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSIDriverList.\nfunc (in *CSIDriverList) DeepCopy() *CSIDriverList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSIDriverList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CSIDriverList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSIDriverSpec) DeepCopyInto(out *CSIDriverSpec) {\n\t*out = *in\n\tif in.AttachRequired != nil {\n\t\tin, out := &in.AttachRequired, &out.AttachRequired\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.PodInfoOnMount != nil {\n\t\tin, out := &in.PodInfoOnMount, &out.PodInfoOnMount\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.VolumeLifecycleModes != nil {\n\t\tin, out := &in.VolumeLifecycleModes, &out.VolumeLifecycleModes\n\t\t*out = make([]VolumeLifecycleMode, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.StorageCapacity != nil {\n\t\tin, out := &in.StorageCapacity, &out.StorageCapacity\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.FSGroupPolicy != nil {\n\t\tin, out := &in.FSGroupPolicy, &out.FSGroupPolicy\n\t\t*out = new(FSGroupPolicy)\n\t\t**out = **in\n\t}\n\tif in.TokenRequests != nil {\n\t\tin, out := &in.TokenRequests, &out.TokenRequests\n\t\t*out = make([]TokenRequest, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.RequiresRepublish != nil {\n\t\tin, out := &in.RequiresRepublish, &out.RequiresRepublish\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.SELinuxMount != nil {\n\t\tin, out := &in.SELinuxMount, &out.SELinuxMount\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSIDriverSpec.\nfunc (in *CSIDriverSpec) DeepCopy() *CSIDriverSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSIDriverSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSINode) DeepCopyInto(out *CSINode) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSINode.\nfunc (in *CSINode) DeepCopy() *CSINode {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSINode)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CSINode) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSINodeDriver) DeepCopyInto(out *CSINodeDriver) {\n\t*out = *in\n\tif in.TopologyKeys != nil {\n\t\tin, out := &in.TopologyKeys, &out.TopologyKeys\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Allocatable != nil {\n\t\tin, out := &in.Allocatable, &out.Allocatable\n\t\t*out = new(VolumeNodeResources)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSINodeDriver.\nfunc (in *CSINodeDriver) DeepCopy() *CSINodeDriver {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSINodeDriver)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSINodeList) DeepCopyInto(out *CSINodeList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]CSINode, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSINodeList.\nfunc (in *CSINodeList) DeepCopy() *CSINodeList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSINodeList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CSINodeList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSINodeSpec) DeepCopyInto(out *CSINodeSpec) {\n\t*out = *in\n\tif in.Drivers != nil {\n\t\tin, out := &in.Drivers, &out.Drivers\n\t\t*out = make([]CSINodeDriver, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSINodeSpec.\nfunc (in *CSINodeSpec) DeepCopy() *CSINodeSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSINodeSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSIStorageCapacity) DeepCopyInto(out *CSIStorageCapacity) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.NodeTopology != nil {\n\t\tin, out := &in.NodeTopology, &out.NodeTopology\n\t\t*out = new(metav1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Capacity != nil {\n\t\tin, out := &in.Capacity, &out.Capacity\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\tif in.MaximumVolumeSize != nil {\n\t\tin, out := &in.MaximumVolumeSize, &out.MaximumVolumeSize\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSIStorageCapacity.\nfunc (in *CSIStorageCapacity) DeepCopy() *CSIStorageCapacity {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSIStorageCapacity)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CSIStorageCapacity) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSIStorageCapacityList) DeepCopyInto(out *CSIStorageCapacityList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]CSIStorageCapacity, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSIStorageCapacityList.\nfunc (in *CSIStorageCapacityList) DeepCopy() *CSIStorageCapacityList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSIStorageCapacityList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CSIStorageCapacityList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StorageClass) DeepCopyInto(out *StorageClass) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Parameters != nil {\n\t\tin, out := &in.Parameters, &out.Parameters\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.ReclaimPolicy != nil {\n\t\tin, out := &in.ReclaimPolicy, &out.ReclaimPolicy\n\t\t*out = new(corev1.PersistentVolumeReclaimPolicy)\n\t\t**out = **in\n\t}\n\tif in.MountOptions != nil {\n\t\tin, out := &in.MountOptions, &out.MountOptions\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.AllowVolumeExpansion != nil {\n\t\tin, out := &in.AllowVolumeExpansion, &out.AllowVolumeExpansion\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.VolumeBindingMode != nil {\n\t\tin, out := &in.VolumeBindingMode, &out.VolumeBindingMode\n\t\t*out = new(VolumeBindingMode)\n\t\t**out = **in\n\t}\n\tif in.AllowedTopologies != nil {\n\t\tin, out := &in.AllowedTopologies, &out.AllowedTopologies\n\t\t*out = make([]corev1.TopologySelectorTerm, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageClass.\nfunc (in *StorageClass) DeepCopy() *StorageClass {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StorageClass)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *StorageClass) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StorageClassList) DeepCopyInto(out *StorageClassList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]StorageClass, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageClassList.\nfunc (in *StorageClassList) DeepCopy() *StorageClassList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StorageClassList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *StorageClassList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TokenRequest) DeepCopyInto(out *TokenRequest) {\n\t*out = *in\n\tif in.ExpirationSeconds != nil {\n\t\tin, out := &in.ExpirationSeconds, &out.ExpirationSeconds\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TokenRequest.\nfunc (in *TokenRequest) DeepCopy() *TokenRequest {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TokenRequest)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeAttachment) DeepCopyInto(out *VolumeAttachment) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachment.\nfunc (in *VolumeAttachment) DeepCopy() *VolumeAttachment {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeAttachment)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *VolumeAttachment) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeAttachmentList) DeepCopyInto(out *VolumeAttachmentList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]VolumeAttachment, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachmentList.\nfunc (in *VolumeAttachmentList) DeepCopy() *VolumeAttachmentList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeAttachmentList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *VolumeAttachmentList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeAttachmentSource) DeepCopyInto(out *VolumeAttachmentSource) {\n\t*out = *in\n\tif in.PersistentVolumeName != nil {\n\t\tin, out := &in.PersistentVolumeName, &out.PersistentVolumeName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.InlineVolumeSpec != nil {\n\t\tin, out := &in.InlineVolumeSpec, &out.InlineVolumeSpec\n\t\t*out = new(corev1.PersistentVolumeSpec)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachmentSource.\nfunc (in *VolumeAttachmentSource) DeepCopy() *VolumeAttachmentSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeAttachmentSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeAttachmentSpec) DeepCopyInto(out *VolumeAttachmentSpec) {\n\t*out = *in\n\tin.Source.DeepCopyInto(&out.Source)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachmentSpec.\nfunc (in *VolumeAttachmentSpec) DeepCopy() *VolumeAttachmentSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeAttachmentSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeAttachmentStatus) DeepCopyInto(out *VolumeAttachmentStatus) {\n\t*out = *in\n\tif in.AttachmentMetadata != nil {\n\t\tin, out := &in.AttachmentMetadata, &out.AttachmentMetadata\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.AttachError != nil {\n\t\tin, out := &in.AttachError, &out.AttachError\n\t\t*out = new(VolumeError)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.DetachError != nil {\n\t\tin, out := &in.DetachError, &out.DetachError\n\t\t*out = new(VolumeError)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachmentStatus.\nfunc (in *VolumeAttachmentStatus) DeepCopy() *VolumeAttachmentStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeAttachmentStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeError) DeepCopyInto(out *VolumeError) {\n\t*out = *in\n\tin.Time.DeepCopyInto(&out.Time)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeError.\nfunc (in *VolumeError) DeepCopy() *VolumeError {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeError)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeNodeResources) DeepCopyInto(out *VolumeNodeResources) {\n\t*out = *in\n\tif in.Count != nil {\n\t\tin, out := &in.Count, &out.Count\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeNodeResources.\nfunc (in *VolumeNodeResources) DeepCopy() *VolumeNodeResources {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeNodeResources)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *CSIDriver) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 18\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *CSIDriverList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 18\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *CSINode) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 17\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *CSINodeList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 17\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *CSIStorageCapacity) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 24\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *CSIStorageCapacityList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 24\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *StorageClass) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 6\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *StorageClassList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 6\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *VolumeAttachment) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 13\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *VolumeAttachmentList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 13\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1alpha1/doc.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +groupName=storage.k8s.io\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\npackage v1alpha1 // import \"k8s.io/api/storage/v1alpha1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1alpha1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/storage/v1alpha1/generated.proto\n\npackage v1alpha1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\tv11 \"k8s.io/api/core/v1\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *CSIStorageCapacity) Reset()      { *m = CSIStorageCapacity{} }\nfunc (*CSIStorageCapacity) ProtoMessage() {}\nfunc (*CSIStorageCapacity) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_02e7952e43280c27, []int{0}\n}\nfunc (m *CSIStorageCapacity) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSIStorageCapacity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSIStorageCapacity) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSIStorageCapacity.Merge(m, src)\n}\nfunc (m *CSIStorageCapacity) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSIStorageCapacity) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSIStorageCapacity.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSIStorageCapacity proto.InternalMessageInfo\n\nfunc (m *CSIStorageCapacityList) Reset()      { *m = CSIStorageCapacityList{} }\nfunc (*CSIStorageCapacityList) ProtoMessage() {}\nfunc (*CSIStorageCapacityList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_02e7952e43280c27, []int{1}\n}\nfunc (m *CSIStorageCapacityList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSIStorageCapacityList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSIStorageCapacityList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSIStorageCapacityList.Merge(m, src)\n}\nfunc (m *CSIStorageCapacityList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSIStorageCapacityList) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSIStorageCapacityList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSIStorageCapacityList proto.InternalMessageInfo\n\nfunc (m *VolumeAttachment) Reset()      { *m = VolumeAttachment{} }\nfunc (*VolumeAttachment) ProtoMessage() {}\nfunc (*VolumeAttachment) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_02e7952e43280c27, []int{2}\n}\nfunc (m *VolumeAttachment) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeAttachment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeAttachment) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeAttachment.Merge(m, src)\n}\nfunc (m *VolumeAttachment) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeAttachment) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeAttachment.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeAttachment proto.InternalMessageInfo\n\nfunc (m *VolumeAttachmentList) Reset()      { *m = VolumeAttachmentList{} }\nfunc (*VolumeAttachmentList) ProtoMessage() {}\nfunc (*VolumeAttachmentList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_02e7952e43280c27, []int{3}\n}\nfunc (m *VolumeAttachmentList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeAttachmentList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeAttachmentList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeAttachmentList.Merge(m, src)\n}\nfunc (m *VolumeAttachmentList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeAttachmentList) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeAttachmentList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeAttachmentList proto.InternalMessageInfo\n\nfunc (m *VolumeAttachmentSource) Reset()      { *m = VolumeAttachmentSource{} }\nfunc (*VolumeAttachmentSource) ProtoMessage() {}\nfunc (*VolumeAttachmentSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_02e7952e43280c27, []int{4}\n}\nfunc (m *VolumeAttachmentSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeAttachmentSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeAttachmentSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeAttachmentSource.Merge(m, src)\n}\nfunc (m *VolumeAttachmentSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeAttachmentSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeAttachmentSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeAttachmentSource proto.InternalMessageInfo\n\nfunc (m *VolumeAttachmentSpec) Reset()      { *m = VolumeAttachmentSpec{} }\nfunc (*VolumeAttachmentSpec) ProtoMessage() {}\nfunc (*VolumeAttachmentSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_02e7952e43280c27, []int{5}\n}\nfunc (m *VolumeAttachmentSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeAttachmentSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeAttachmentSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeAttachmentSpec.Merge(m, src)\n}\nfunc (m *VolumeAttachmentSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeAttachmentSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeAttachmentSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeAttachmentSpec proto.InternalMessageInfo\n\nfunc (m *VolumeAttachmentStatus) Reset()      { *m = VolumeAttachmentStatus{} }\nfunc (*VolumeAttachmentStatus) ProtoMessage() {}\nfunc (*VolumeAttachmentStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_02e7952e43280c27, []int{6}\n}\nfunc (m *VolumeAttachmentStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeAttachmentStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeAttachmentStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeAttachmentStatus.Merge(m, src)\n}\nfunc (m *VolumeAttachmentStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeAttachmentStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeAttachmentStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeAttachmentStatus proto.InternalMessageInfo\n\nfunc (m *VolumeAttributesClass) Reset()      { *m = VolumeAttributesClass{} }\nfunc (*VolumeAttributesClass) ProtoMessage() {}\nfunc (*VolumeAttributesClass) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_02e7952e43280c27, []int{7}\n}\nfunc (m *VolumeAttributesClass) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeAttributesClass) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeAttributesClass) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeAttributesClass.Merge(m, src)\n}\nfunc (m *VolumeAttributesClass) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeAttributesClass) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeAttributesClass.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeAttributesClass proto.InternalMessageInfo\n\nfunc (m *VolumeAttributesClassList) Reset()      { *m = VolumeAttributesClassList{} }\nfunc (*VolumeAttributesClassList) ProtoMessage() {}\nfunc (*VolumeAttributesClassList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_02e7952e43280c27, []int{8}\n}\nfunc (m *VolumeAttributesClassList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeAttributesClassList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeAttributesClassList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeAttributesClassList.Merge(m, src)\n}\nfunc (m *VolumeAttributesClassList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeAttributesClassList) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeAttributesClassList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeAttributesClassList proto.InternalMessageInfo\n\nfunc (m *VolumeError) Reset()      { *m = VolumeError{} }\nfunc (*VolumeError) ProtoMessage() {}\nfunc (*VolumeError) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_02e7952e43280c27, []int{9}\n}\nfunc (m *VolumeError) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeError) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeError.Merge(m, src)\n}\nfunc (m *VolumeError) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeError) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeError.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeError proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*CSIStorageCapacity)(nil), \"k8s.io.api.storage.v1alpha1.CSIStorageCapacity\")\n\tproto.RegisterType((*CSIStorageCapacityList)(nil), \"k8s.io.api.storage.v1alpha1.CSIStorageCapacityList\")\n\tproto.RegisterType((*VolumeAttachment)(nil), \"k8s.io.api.storage.v1alpha1.VolumeAttachment\")\n\tproto.RegisterType((*VolumeAttachmentList)(nil), \"k8s.io.api.storage.v1alpha1.VolumeAttachmentList\")\n\tproto.RegisterType((*VolumeAttachmentSource)(nil), \"k8s.io.api.storage.v1alpha1.VolumeAttachmentSource\")\n\tproto.RegisterType((*VolumeAttachmentSpec)(nil), \"k8s.io.api.storage.v1alpha1.VolumeAttachmentSpec\")\n\tproto.RegisterType((*VolumeAttachmentStatus)(nil), \"k8s.io.api.storage.v1alpha1.VolumeAttachmentStatus\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.storage.v1alpha1.VolumeAttachmentStatus.AttachmentMetadataEntry\")\n\tproto.RegisterType((*VolumeAttributesClass)(nil), \"k8s.io.api.storage.v1alpha1.VolumeAttributesClass\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.storage.v1alpha1.VolumeAttributesClass.ParametersEntry\")\n\tproto.RegisterType((*VolumeAttributesClassList)(nil), \"k8s.io.api.storage.v1alpha1.VolumeAttributesClassList\")\n\tproto.RegisterType((*VolumeError)(nil), \"k8s.io.api.storage.v1alpha1.VolumeError\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/storage/v1alpha1/generated.proto\", fileDescriptor_02e7952e43280c27)\n}\n\nvar fileDescriptor_02e7952e43280c27 = []byte{\n\t// 1009 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x57, 0x3d, 0x6f, 0x23, 0x45,\n\t0x18, 0xce, 0xda, 0xce, 0x9d, 0x6f, 0x1c, 0x38, 0xdf, 0xc8, 0x77, 0x18, 0x9f, 0xb4, 0x3e, 0xb9,\n\t0x32, 0x1f, 0x37, 0x4b, 0x02, 0x42, 0x27, 0x24, 0x0a, 0x6f, 0x92, 0x22, 0x22, 0x09, 0xc7, 0x38,\n\t0x02, 0x04, 0x14, 0x8c, 0xd7, 0x83, 0x3d, 0x89, 0xf7, 0x43, 0x33, 0xb3, 0x16, 0xa6, 0xa2, 0xa2,\n\t0xa6, 0xe3, 0x1f, 0xf0, 0x5b, 0x52, 0x20, 0x71, 0xba, 0xea, 0x2a, 0x8b, 0x2c, 0xfc, 0x06, 0x0a,\n\t0x1a, 0xd0, 0xce, 0x8e, 0xd7, 0x1b, 0xaf, 0x1d, 0x9c, 0x14, 0xe9, 0x3c, 0x33, 0xef, 0xfb, 0x3c,\n\t0xef, 0xc7, 0xf3, 0xbe, 0x9b, 0x80, 0x77, 0xce, 0x9e, 0x09, 0xc4, 0x7c, 0x8b, 0x04, 0xcc, 0x12,\n\t0xd2, 0xe7, 0x64, 0x40, 0xad, 0xf1, 0x36, 0x19, 0x05, 0x43, 0xb2, 0x6d, 0x0d, 0xa8, 0x47, 0x39,\n\t0x91, 0xb4, 0x8f, 0x02, 0xee, 0x4b, 0x1f, 0x3e, 0x4e, 0x8c, 0x11, 0x09, 0x18, 0xd2, 0xc6, 0x68,\n\t0x66, 0xdc, 0x78, 0x3a, 0x60, 0x72, 0x18, 0xf6, 0x90, 0xe3, 0xbb, 0xd6, 0xc0, 0x1f, 0xf8, 0x96,\n\t0xf2, 0xe9, 0x85, 0xdf, 0xa9, 0x93, 0x3a, 0xa8, 0x5f, 0x09, 0x56, 0xa3, 0x95, 0x21, 0x76, 0x7c,\n\t0x1e, 0xb3, 0x2e, 0xf2, 0x35, 0x3e, 0x98, 0xdb, 0xb8, 0xc4, 0x19, 0x32, 0x8f, 0xf2, 0x89, 0x15,\n\t0x9c, 0x0d, 0x94, 0x13, 0xa7, 0xc2, 0x0f, 0xb9, 0x43, 0xaf, 0xe5, 0x25, 0x2c, 0x97, 0x4a, 0xb2,\n\t0x8c, 0xcb, 0x5a, 0xe5, 0xc5, 0x43, 0x4f, 0x32, 0x37, 0x4f, 0xf3, 0xe1, 0xff, 0x39, 0x08, 0x67,\n\t0x48, 0x5d, 0xb2, 0xe8, 0xd7, 0xfa, 0xbb, 0x08, 0xe0, 0x6e, 0xf7, 0xa0, 0x9b, 0xd4, 0x6f, 0x97,\n\t0x04, 0xc4, 0x61, 0x72, 0x02, 0xbf, 0x05, 0xe5, 0x38, 0xb4, 0x3e, 0x91, 0xa4, 0x6e, 0x3c, 0x31,\n\t0xda, 0x95, 0x9d, 0xf7, 0xd0, 0xbc, 0xdc, 0x29, 0x03, 0x0a, 0xce, 0x06, 0xf1, 0x85, 0x40, 0xb1,\n\t0x35, 0x1a, 0x6f, 0xa3, 0x4f, 0x7b, 0xa7, 0xd4, 0x91, 0x47, 0x54, 0x12, 0x1b, 0x9e, 0x4f, 0x9b,\n\t0x1b, 0xd1, 0xb4, 0x09, 0xe6, 0x77, 0x38, 0x45, 0x85, 0x0c, 0x6c, 0x79, 0x7e, 0x9f, 0x9e, 0xf8,\n\t0x81, 0x3f, 0xf2, 0x07, 0x93, 0x7a, 0x41, 0xb1, 0xbc, 0xbf, 0x1e, 0xcb, 0x21, 0xe9, 0xd1, 0x51,\n\t0x97, 0x8e, 0xa8, 0x23, 0x7d, 0x6e, 0x57, 0xa3, 0x69, 0x73, 0xeb, 0x38, 0x03, 0x86, 0x2f, 0x41,\n\t0xc3, 0x3d, 0x50, 0xd5, 0xfa, 0xd8, 0x1d, 0x11, 0x21, 0x8e, 0x89, 0x4b, 0xeb, 0xc5, 0x27, 0x46,\n\t0xfb, 0x9e, 0x5d, 0xd7, 0x21, 0x56, 0xbb, 0x0b, 0xef, 0x38, 0xe7, 0x01, 0xbf, 0x04, 0x65, 0x47,\n\t0x97, 0xa7, 0x5e, 0x52, 0xc1, 0xa2, 0xab, 0x82, 0x45, 0x33, 0x45, 0xa0, 0xcf, 0x42, 0xe2, 0x49,\n\t0x26, 0x27, 0xf6, 0x56, 0x34, 0x6d, 0x96, 0x67, 0x25, 0xc6, 0x29, 0x1a, 0x14, 0xe0, 0x81, 0x4b,\n\t0xbe, 0x67, 0x6e, 0xe8, 0x7e, 0xee, 0x8f, 0x42, 0x97, 0x76, 0xd9, 0x0f, 0xb4, 0xbe, 0x79, 0x23,\n\t0x8a, 0x87, 0xd1, 0xb4, 0xf9, 0xe0, 0x68, 0x11, 0x0c, 0xe7, 0xf1, 0x5b, 0xbf, 0x19, 0xe0, 0x51,\n\t0xbe, 0xf1, 0x87, 0x4c, 0x48, 0xf8, 0x4d, 0xae, 0xf9, 0x68, 0xcd, 0xb6, 0x30, 0x91, 0xb4, 0xbe,\n\t0xaa, 0xeb, 0x5a, 0x9e, 0xdd, 0x64, 0x1a, 0x7f, 0x02, 0x36, 0x99, 0xa4, 0xae, 0xa8, 0x17, 0x9e,\n\t0x14, 0xdb, 0x95, 0x1d, 0x0b, 0x5d, 0x31, 0xc6, 0x28, 0x1f, 0xa1, 0xfd, 0x9a, 0xc6, 0xde, 0x3c,\n\t0x88, 0x51, 0x70, 0x02, 0xd6, 0xfa, 0xb5, 0x00, 0xaa, 0x49, 0x76, 0x1d, 0x29, 0x89, 0x33, 0x74,\n\t0xa9, 0x27, 0x6f, 0x41, 0xc5, 0x5d, 0x50, 0x12, 0x01, 0x75, 0xb4, 0x7a, 0xb7, 0xaf, 0xcc, 0x65,\n\t0x31, 0xbc, 0x6e, 0x40, 0x1d, 0x7b, 0x4b, 0xc3, 0x97, 0xe2, 0x13, 0x56, 0x60, 0xf0, 0x6b, 0x70,\n\t0x47, 0x48, 0x22, 0x43, 0xa1, 0x54, 0x7a, 0x79, 0x28, 0xd6, 0x80, 0x55, 0xae, 0xf6, 0xeb, 0x1a,\n\t0xf8, 0x4e, 0x72, 0xc6, 0x1a, 0xb2, 0x75, 0x6e, 0x80, 0xda, 0xa2, 0xcb, 0x2d, 0x74, 0x1d, 0x5f,\n\t0xee, 0xfa, 0xd3, 0x6b, 0xa5, 0xb4, 0xa2, 0xe7, 0x2f, 0x0d, 0xf0, 0x28, 0x97, 0xbd, 0x1a, 0x08,\n\t0x78, 0x08, 0x6a, 0x01, 0xe5, 0x82, 0x09, 0x49, 0x3d, 0x99, 0xd8, 0xa8, 0xb1, 0x37, 0x92, 0xb1,\n\t0x8f, 0xa6, 0xcd, 0xda, 0xf3, 0x25, 0xef, 0x78, 0xa9, 0x17, 0x3c, 0x05, 0x55, 0xe6, 0x8d, 0x98,\n\t0x47, 0xf5, 0xfc, 0xcc, 0x3b, 0xde, 0xce, 0xe6, 0x11, 0x7f, 0x38, 0xe2, 0x82, 0x2c, 0x22, 0xab,\n\t0x46, 0xd7, 0xe2, 0x35, 0x73, 0xb0, 0x80, 0x82, 0x73, 0xb8, 0xad, 0xdf, 0x97, 0xf4, 0x27, 0x7e,\n\t0x80, 0xef, 0x82, 0x32, 0x51, 0x37, 0x94, 0xeb, 0x34, 0xd2, 0x7a, 0x77, 0xf4, 0x3d, 0x4e, 0x2d,\n\t0x94, 0x86, 0x54, 0x29, 0x96, 0x2c, 0xd6, 0x35, 0x34, 0xa4, 0x5c, 0x33, 0x1a, 0x52, 0x67, 0xac,\n\t0x21, 0xe3, 0x50, 0xe2, 0x05, 0x9b, 0x59, 0xa4, 0x69, 0x28, 0xc7, 0xfa, 0x1e, 0xa7, 0x16, 0xad,\n\t0x7f, 0x8b, 0x4b, 0xda, 0xa4, 0xc4, 0x98, 0xc9, 0xa9, 0xaf, 0x72, 0x2a, 0xe7, 0x72, 0xea, 0xa7,\n\t0x39, 0xf5, 0xe1, 0x2f, 0x06, 0x80, 0x24, 0x85, 0x38, 0x9a, 0x89, 0x35, 0x51, 0xd4, 0x27, 0x37,\n\t0x18, 0x12, 0xd4, 0xc9, 0xa1, 0xed, 0x7b, 0x92, 0x4f, 0xec, 0x86, 0x8e, 0x02, 0xe6, 0x0d, 0xf0,\n\t0x92, 0x10, 0xe0, 0x29, 0xa8, 0x24, 0xb7, 0xfb, 0x9c, 0xfb, 0x5c, 0x8f, 0x6d, 0x7b, 0x8d, 0x88,\n\t0x94, 0xbd, 0x6d, 0x46, 0xd3, 0x66, 0xa5, 0x33, 0x07, 0xf8, 0x67, 0xda, 0xac, 0x64, 0xde, 0x71,\n\t0x16, 0x3c, 0xe6, 0xea, 0xd3, 0x39, 0x57, 0xe9, 0x26, 0x5c, 0x7b, 0x74, 0x35, 0x57, 0x06, 0xbc,\n\t0xb1, 0x0f, 0xde, 0x58, 0x51, 0x22, 0x58, 0x05, 0xc5, 0x33, 0x3a, 0x49, 0x94, 0x88, 0xe3, 0x9f,\n\t0xb0, 0x06, 0x36, 0xc7, 0x64, 0x14, 0x26, 0x8a, 0xbb, 0x87, 0x93, 0xc3, 0x47, 0x85, 0x67, 0x46,\n\t0xeb, 0xaf, 0x02, 0x78, 0x98, 0x76, 0x80, 0xb3, 0x5e, 0x28, 0xa9, 0x50, 0x1f, 0xd6, 0x5b, 0xd8,\n\t0xd0, 0x3b, 0x00, 0xf4, 0x39, 0x1b, 0x53, 0xae, 0xd4, 0xaa, 0x42, 0x9b, 0x7b, 0xec, 0xa5, 0x2f,\n\t0x38, 0x63, 0x05, 0xc7, 0x00, 0x04, 0x84, 0x13, 0x97, 0x4a, 0xca, 0xe3, 0x25, 0x1c, 0xeb, 0xcb,\n\t0x5e, 0x4f, 0x5f, 0xd9, 0xec, 0xd0, 0xf3, 0x14, 0x24, 0x91, 0x55, 0xca, 0x3b, 0x7f, 0xc0, 0x19,\n\t0xa6, 0xc6, 0xc7, 0xe0, 0xfe, 0x82, 0xcb, 0xb5, 0xca, 0xfc, 0xd2, 0x00, 0x6f, 0x2e, 0x0d, 0xe4,\n\t0x16, 0xf6, 0xfb, 0x17, 0x97, 0xf7, 0xfb, 0xce, 0xf5, 0xab, 0xb5, 0x62, 0xc9, 0xff, 0x64, 0x80,\n\t0xac, 0x3e, 0xe1, 0x21, 0x28, 0xc5, 0x7f, 0xcf, 0xea, 0x14, 0xde, 0x5e, 0x2f, 0x85, 0x13, 0xe6,\n\t0xd2, 0xf9, 0xa7, 0x36, 0x3e, 0x61, 0x85, 0x02, 0xdf, 0x02, 0x77, 0x5d, 0x2a, 0x04, 0x19, 0xcc,\n\t0xa4, 0x71, 0x5f, 0x1b, 0xdd, 0x3d, 0x4a, 0xae, 0xf1, 0xec, 0xdd, 0xee, 0x9c, 0x5f, 0x98, 0x1b,\n\t0x2f, 0x2e, 0xcc, 0x8d, 0x57, 0x17, 0xe6, 0xc6, 0x8f, 0x91, 0x69, 0x9c, 0x47, 0xa6, 0xf1, 0x22,\n\t0x32, 0x8d, 0x57, 0x91, 0x69, 0xfc, 0x11, 0x99, 0xc6, 0xcf, 0x7f, 0x9a, 0x1b, 0x5f, 0x3d, 0xbe,\n\t0xe2, 0x3f, 0x98, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0xd7, 0x19, 0x2c, 0xaa, 0xdf, 0x0c, 0x00,\n\t0x00,\n}\n\nfunc (m *CSIStorageCapacity) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSIStorageCapacity) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSIStorageCapacity) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.MaximumVolumeSize != nil {\n\t\t{\n\t\t\tsize, err := m.MaximumVolumeSize.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.Capacity != nil {\n\t\t{\n\t\t\tsize, err := m.Capacity.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\ti -= len(m.StorageClassName)\n\tcopy(dAtA[i:], m.StorageClassName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.StorageClassName)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.NodeTopology != nil {\n\t\t{\n\t\t\tsize, err := m.NodeTopology.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CSIStorageCapacityList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSIStorageCapacityList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSIStorageCapacityList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeAttachment) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeAttachment) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeAttachment) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeAttachmentList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeAttachmentList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeAttachmentList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeAttachmentSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeAttachmentSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeAttachmentSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.InlineVolumeSpec != nil {\n\t\t{\n\t\t\tsize, err := m.InlineVolumeSpec.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.PersistentVolumeName != nil {\n\t\ti -= len(*m.PersistentVolumeName)\n\t\tcopy(dAtA[i:], *m.PersistentVolumeName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.PersistentVolumeName)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeAttachmentSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeAttachmentSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeAttachmentSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.NodeName)\n\tcopy(dAtA[i:], m.NodeName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.NodeName)))\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Source.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Attacher)\n\tcopy(dAtA[i:], m.Attacher)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Attacher)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeAttachmentStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeAttachmentStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeAttachmentStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.DetachError != nil {\n\t\t{\n\t\t\tsize, err := m.DetachError.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.AttachError != nil {\n\t\t{\n\t\t\tsize, err := m.AttachError.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif len(m.AttachmentMetadata) > 0 {\n\t\tkeysForAttachmentMetadata := make([]string, 0, len(m.AttachmentMetadata))\n\t\tfor k := range m.AttachmentMetadata {\n\t\t\tkeysForAttachmentMetadata = append(keysForAttachmentMetadata, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAttachmentMetadata)\n\t\tfor iNdEx := len(keysForAttachmentMetadata) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.AttachmentMetadata[string(keysForAttachmentMetadata[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForAttachmentMetadata[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForAttachmentMetadata[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForAttachmentMetadata[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti--\n\tif m.Attached {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeAttributesClass) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeAttributesClass) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeAttributesClass) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Parameters) > 0 {\n\t\tkeysForParameters := make([]string, 0, len(m.Parameters))\n\t\tfor k := range m.Parameters {\n\t\t\tkeysForParameters = append(keysForParameters, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForParameters)\n\t\tfor iNdEx := len(keysForParameters) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Parameters[string(keysForParameters[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForParameters[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForParameters[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForParameters[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\ti -= len(m.DriverName)\n\tcopy(dAtA[i:], m.DriverName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.DriverName)))\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeAttributesClassList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeAttributesClassList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeAttributesClassList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeError) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeError) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeError) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.Time.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *CSIStorageCapacity) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.NodeTopology != nil {\n\t\tl = m.NodeTopology.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.StorageClassName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Capacity != nil {\n\t\tl = m.Capacity.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.MaximumVolumeSize != nil {\n\t\tl = m.MaximumVolumeSize.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *CSIStorageCapacityList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *VolumeAttachment) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *VolumeAttachmentList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *VolumeAttachmentSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.PersistentVolumeName != nil {\n\t\tl = len(*m.PersistentVolumeName)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.InlineVolumeSpec != nil {\n\t\tl = m.InlineVolumeSpec.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *VolumeAttachmentSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Attacher)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Source.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.NodeName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *VolumeAttachmentStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 2\n\tif len(m.AttachmentMetadata) > 0 {\n\t\tfor k, v := range m.AttachmentMetadata {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif m.AttachError != nil {\n\t\tl = m.AttachError.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.DetachError != nil {\n\t\tl = m.DetachError.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *VolumeAttributesClass) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.DriverName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Parameters) > 0 {\n\t\tfor k, v := range m.Parameters {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *VolumeAttributesClassList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *VolumeError) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Time.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *CSIStorageCapacity) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CSIStorageCapacity{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`NodeTopology:` + strings.Replace(fmt.Sprintf(\"%v\", this.NodeTopology), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`StorageClassName:` + fmt.Sprintf(\"%v\", this.StorageClassName) + `,`,\n\t\t`Capacity:` + strings.Replace(fmt.Sprintf(\"%v\", this.Capacity), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`MaximumVolumeSize:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaximumVolumeSize), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CSIStorageCapacityList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]CSIStorageCapacity{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"CSIStorageCapacity\", \"CSIStorageCapacity\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&CSIStorageCapacityList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeAttachment) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&VolumeAttachment{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"VolumeAttachmentSpec\", \"VolumeAttachmentSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"VolumeAttachmentStatus\", \"VolumeAttachmentStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeAttachmentList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]VolumeAttachment{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"VolumeAttachment\", \"VolumeAttachment\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&VolumeAttachmentList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeAttachmentSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&VolumeAttachmentSource{`,\n\t\t`PersistentVolumeName:` + valueToStringGenerated(this.PersistentVolumeName) + `,`,\n\t\t`InlineVolumeSpec:` + strings.Replace(fmt.Sprintf(\"%v\", this.InlineVolumeSpec), \"PersistentVolumeSpec\", \"v11.PersistentVolumeSpec\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeAttachmentSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&VolumeAttachmentSpec{`,\n\t\t`Attacher:` + fmt.Sprintf(\"%v\", this.Attacher) + `,`,\n\t\t`Source:` + strings.Replace(strings.Replace(this.Source.String(), \"VolumeAttachmentSource\", \"VolumeAttachmentSource\", 1), `&`, ``, 1) + `,`,\n\t\t`NodeName:` + fmt.Sprintf(\"%v\", this.NodeName) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeAttachmentStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForAttachmentMetadata := make([]string, 0, len(this.AttachmentMetadata))\n\tfor k := range this.AttachmentMetadata {\n\t\tkeysForAttachmentMetadata = append(keysForAttachmentMetadata, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAttachmentMetadata)\n\tmapStringForAttachmentMetadata := \"map[string]string{\"\n\tfor _, k := range keysForAttachmentMetadata {\n\t\tmapStringForAttachmentMetadata += fmt.Sprintf(\"%v: %v,\", k, this.AttachmentMetadata[k])\n\t}\n\tmapStringForAttachmentMetadata += \"}\"\n\ts := strings.Join([]string{`&VolumeAttachmentStatus{`,\n\t\t`Attached:` + fmt.Sprintf(\"%v\", this.Attached) + `,`,\n\t\t`AttachmentMetadata:` + mapStringForAttachmentMetadata + `,`,\n\t\t`AttachError:` + strings.Replace(this.AttachError.String(), \"VolumeError\", \"VolumeError\", 1) + `,`,\n\t\t`DetachError:` + strings.Replace(this.DetachError.String(), \"VolumeError\", \"VolumeError\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeAttributesClass) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForParameters := make([]string, 0, len(this.Parameters))\n\tfor k := range this.Parameters {\n\t\tkeysForParameters = append(keysForParameters, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForParameters)\n\tmapStringForParameters := \"map[string]string{\"\n\tfor _, k := range keysForParameters {\n\t\tmapStringForParameters += fmt.Sprintf(\"%v: %v,\", k, this.Parameters[k])\n\t}\n\tmapStringForParameters += \"}\"\n\ts := strings.Join([]string{`&VolumeAttributesClass{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`DriverName:` + fmt.Sprintf(\"%v\", this.DriverName) + `,`,\n\t\t`Parameters:` + mapStringForParameters + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeAttributesClassList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]VolumeAttributesClass{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"VolumeAttributesClass\", \"VolumeAttributesClass\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&VolumeAttributesClassList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeError) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&VolumeError{`,\n\t\t`Time:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Time), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *CSIStorageCapacity) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSIStorageCapacity: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSIStorageCapacity: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeTopology\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NodeTopology == nil {\n\t\t\t\tm.NodeTopology = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.NodeTopology.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StorageClassName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.StorageClassName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Capacity\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Capacity == nil {\n\t\t\t\tm.Capacity = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.Capacity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaximumVolumeSize\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaximumVolumeSize == nil {\n\t\t\t\tm.MaximumVolumeSize = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.MaximumVolumeSize.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CSIStorageCapacityList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSIStorageCapacityList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSIStorageCapacityList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, CSIStorageCapacity{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeAttachment) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachment: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachment: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeAttachmentList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, VolumeAttachment{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeAttachmentSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PersistentVolumeName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.PersistentVolumeName = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field InlineVolumeSpec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.InlineVolumeSpec == nil {\n\t\t\t\tm.InlineVolumeSpec = &v11.PersistentVolumeSpec{}\n\t\t\t}\n\t\t\tif err := m.InlineVolumeSpec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeAttachmentSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Attacher\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Attacher = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Source\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Source.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NodeName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeAttachmentStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Attached\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Attached = bool(v != 0)\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AttachmentMetadata\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AttachmentMetadata == nil {\n\t\t\t\tm.AttachmentMetadata = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.AttachmentMetadata[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AttachError\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AttachError == nil {\n\t\t\t\tm.AttachError = &VolumeError{}\n\t\t\t}\n\t\t\tif err := m.AttachError.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DetachError\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.DetachError == nil {\n\t\t\t\tm.DetachError = &VolumeError{}\n\t\t\t}\n\t\t\tif err := m.DetachError.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeAttributesClass) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttributesClass: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttributesClass: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DriverName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.DriverName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Parameters\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Parameters == nil {\n\t\t\t\tm.Parameters = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Parameters[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeAttributesClassList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttributesClassList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttributesClassList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, VolumeAttributesClass{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeError) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeError: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeError: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Time\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Time.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1alpha1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.storage.v1alpha1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/api/resource/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/storage/v1alpha1\";\n\n// CSIStorageCapacity stores the result of one CSI GetCapacity call.\n// For a given StorageClass, this describes the available capacity in a\n// particular topology segment.  This can be used when considering where to\n// instantiate new PersistentVolumes.\n//\n// For example this can express things like:\n// - StorageClass \"standard\" has \"1234 GiB\" available in \"topology.kubernetes.io/zone=us-east1\"\n// - StorageClass \"localssd\" has \"10 GiB\" available in \"kubernetes.io/hostname=knode-abc123\"\n//\n// The following three cases all imply that no capacity is available for\n// a certain combination:\n// - no object exists with suitable topology and storage class name\n// - such an object exists, but the capacity is unset\n// - such an object exists, but the capacity is zero\n//\n// The producer of these objects can decide which approach is more suitable.\n//\n// They are consumed by the kube-scheduler when a CSI driver opts into\n// capacity-aware scheduling with CSIDriverSpec.StorageCapacity. The scheduler\n// compares the MaximumVolumeSize against the requested size of pending volumes\n// to filter out unsuitable nodes. If MaximumVolumeSize is unset, it falls back\n// to a comparison against the less precise Capacity. If that is also unset,\n// the scheduler assumes that capacity is insufficient and tries some other\n// node.\nmessage CSIStorageCapacity {\n  // Standard object's metadata. The name has no particular meaning. It must be\n  // be a DNS subdomain (dots allowed, 253 characters). To ensure that\n  // there are no conflicts with other CSI drivers on the cluster, the recommendation\n  // is to use csisc-<uuid>, a generated name, or a reverse-domain name which ends\n  // with the unique CSI driver name.\n  //\n  // Objects are namespaced.\n  //\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // nodeTopology defines which nodes have access to the storage\n  // for which capacity was reported. If not set, the storage is\n  // not accessible from any node in the cluster. If empty, the\n  // storage is accessible from all nodes. This field is\n  // immutable.\n  //\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector nodeTopology = 2;\n\n  // storageClassName represents the name of the StorageClass that the reported capacity applies to.\n  // It must meet the same requirements as the name of a StorageClass\n  // object (non-empty, DNS subdomain). If that object no longer exists,\n  // the CSIStorageCapacity object is obsolete and should be removed by its\n  // creator.\n  // This field is immutable.\n  optional string storageClassName = 3;\n\n  // capacity is the value reported by the CSI driver in its GetCapacityResponse\n  // for a GetCapacityRequest with topology and parameters that match the\n  // previous fields.\n  //\n  // The semantic is currently (CSI spec 1.2) defined as:\n  // The available capacity, in bytes, of the storage that can be used\n  // to provision volumes. If not set, that information is currently\n  // unavailable.\n  //\n  // +optional\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity capacity = 4;\n\n  // maximumVolumeSize is the value reported by the CSI driver in its GetCapacityResponse\n  // for a GetCapacityRequest with topology and parameters that match the\n  // previous fields.\n  //\n  // This is defined since CSI spec 1.4.0 as the largest size\n  // that may be used in a\n  // CreateVolumeRequest.capacity_range.required_bytes field to\n  // create a volume with the same parameters as those in\n  // GetCapacityRequest. The corresponding value in the Kubernetes\n  // API is ResourceRequirements.Requests in a volume claim.\n  //\n  // +optional\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity maximumVolumeSize = 5;\n}\n\n// CSIStorageCapacityList is a collection of CSIStorageCapacity objects.\nmessage CSIStorageCapacityList {\n  // Standard list metadata\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of CSIStorageCapacity objects.\n  repeated CSIStorageCapacity items = 2;\n}\n\n// VolumeAttachment captures the intent to attach or detach the specified volume\n// to/from the specified node.\n//\n// VolumeAttachment objects are non-namespaced.\nmessage VolumeAttachment {\n  // Standard object metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec represents specification of the desired attach/detach volume behavior.\n  // Populated by the Kubernetes system.\n  optional VolumeAttachmentSpec spec = 2;\n\n  // status represents status of the VolumeAttachment request.\n  // Populated by the entity completing the attach or detach\n  // operation, i.e. the external-attacher.\n  // +optional\n  optional VolumeAttachmentStatus status = 3;\n}\n\n// VolumeAttachmentList is a collection of VolumeAttachment objects.\nmessage VolumeAttachmentList {\n  // Standard list metadata\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of VolumeAttachments\n  repeated VolumeAttachment items = 2;\n}\n\n// VolumeAttachmentSource represents a volume that should be attached.\n// Right now only PersistentVolumes can be attached via external attacher,\n// in the future we may allow also inline volumes in pods.\n// Exactly one member can be set.\nmessage VolumeAttachmentSource {\n  // persistentVolumeName represents the name of the persistent volume to attach.\n  // +optional\n  optional string persistentVolumeName = 1;\n\n  // inlineVolumeSpec contains all the information necessary to attach\n  // a persistent volume defined by a pod's inline VolumeSource. This field\n  // is populated only for the CSIMigration feature. It contains\n  // translated fields from a pod's inline VolumeSource to a\n  // PersistentVolumeSpec. This field is alpha-level and is only\n  // honored by servers that enabled the CSIMigration feature.\n  // +optional\n  optional .k8s.io.api.core.v1.PersistentVolumeSpec inlineVolumeSpec = 2;\n}\n\n// VolumeAttachmentSpec is the specification of a VolumeAttachment request.\nmessage VolumeAttachmentSpec {\n  // attacher indicates the name of the volume driver that MUST handle this\n  // request. This is the name returned by GetPluginName().\n  optional string attacher = 1;\n\n  // source represents the volume that should be attached.\n  optional VolumeAttachmentSource source = 2;\n\n  // nodeName represents the node that the volume should be attached to.\n  optional string nodeName = 3;\n}\n\n// VolumeAttachmentStatus is the status of a VolumeAttachment request.\nmessage VolumeAttachmentStatus {\n  // attached indicates the volume is successfully attached.\n  // This field must only be set by the entity completing the attach\n  // operation, i.e. the external-attacher.\n  optional bool attached = 1;\n\n  // attachmentMetadata is populated with any\n  // information returned by the attach operation, upon successful attach, that must be passed\n  // into subsequent WaitForAttach or Mount calls.\n  // This field must only be set by the entity completing the attach\n  // operation, i.e. the external-attacher.\n  // +optional\n  map<string, string> attachmentMetadata = 2;\n\n  // attachError represents the last error encountered during attach operation, if any.\n  // This field must only be set by the entity completing the attach\n  // operation, i.e. the external-attacher.\n  // +optional\n  optional VolumeError attachError = 3;\n\n  // detachError represents the last error encountered during detach operation, if any.\n  // This field must only be set by the entity completing the detach\n  // operation, i.e. the external-attacher.\n  // +optional\n  optional VolumeError detachError = 4;\n}\n\n// VolumeAttributesClass represents a specification of mutable volume attributes\n// defined by the CSI driver. The class can be specified during dynamic provisioning\n// of PersistentVolumeClaims, and changed in the PersistentVolumeClaim spec after provisioning.\nmessage VolumeAttributesClass {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Name of the CSI driver\n  // This field is immutable.\n  optional string driverName = 2;\n\n  // parameters hold volume attributes defined by the CSI driver. These values\n  // are opaque to the Kubernetes and are passed directly to the CSI driver.\n  // The underlying storage provider supports changing these attributes on an\n  // existing volume, however the parameters field itself is immutable. To\n  // invoke a volume update, a new VolumeAttributesClass should be created with\n  // new parameters, and the PersistentVolumeClaim should be updated to reference\n  // the new VolumeAttributesClass.\n  //\n  // This field is required and must contain at least one key/value pair.\n  // The keys cannot be empty, and the maximum number of parameters is 512, with\n  // a cumulative max size of 256K. If the CSI driver rejects invalid parameters,\n  // the target PersistentVolumeClaim will be set to an \"Infeasible\" state in the\n  // modifyVolumeStatus field.\n  map<string, string> parameters = 3;\n}\n\n// VolumeAttributesClassList is a collection of VolumeAttributesClass objects.\nmessage VolumeAttributesClassList {\n  // Standard list metadata\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of VolumeAttributesClass objects.\n  repeated VolumeAttributesClass items = 2;\n}\n\n// VolumeError captures an error encountered during a volume operation.\nmessage VolumeError {\n  // time represents the time the error was encountered.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time time = 1;\n\n  // message represents the error encountered during Attach or Detach operation.\n  // This string maybe logged, so it should not contain sensitive\n  // information.\n  // +optional\n  optional string message = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1alpha1/register.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"storage.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1alpha1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\tSchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)\n\tAddToScheme   = SchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&VolumeAttachment{},\n\t\t&VolumeAttachmentList{},\n\t\t&CSIStorageCapacity{},\n\t\t&CSIStorageCapacityList{},\n\t\t&VolumeAttributesClass{},\n\t\t&VolumeAttributesClassList{},\n\t)\n\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1alpha1/types.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\t\"k8s.io/apimachinery/pkg/api/resource\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.9\n// +k8s:prerelease-lifecycle-gen:deprecated=1.21\n// +k8s:prerelease-lifecycle-gen:replacement=storage.k8s.io,v1,VolumeAttachment\n\n// VolumeAttachment captures the intent to attach or detach the specified volume\n// to/from the specified node.\n//\n// VolumeAttachment objects are non-namespaced.\ntype VolumeAttachment struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec represents specification of the desired attach/detach volume behavior.\n\t// Populated by the Kubernetes system.\n\tSpec VolumeAttachmentSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// status represents status of the VolumeAttachment request.\n\t// Populated by the entity completing the attach or detach\n\t// operation, i.e. the external-attacher.\n\t// +optional\n\tStatus VolumeAttachmentStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.9\n// +k8s:prerelease-lifecycle-gen:deprecated=1.21\n// +k8s:prerelease-lifecycle-gen:replacement=storage.k8s.io,v1,VolumeAttachmentList\n\n// VolumeAttachmentList is a collection of VolumeAttachment objects.\ntype VolumeAttachmentList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of VolumeAttachments\n\tItems []VolumeAttachment `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// VolumeAttachmentSpec is the specification of a VolumeAttachment request.\ntype VolumeAttachmentSpec struct {\n\t// attacher indicates the name of the volume driver that MUST handle this\n\t// request. This is the name returned by GetPluginName().\n\tAttacher string `json:\"attacher\" protobuf:\"bytes,1,opt,name=attacher\"`\n\n\t// source represents the volume that should be attached.\n\tSource VolumeAttachmentSource `json:\"source\" protobuf:\"bytes,2,opt,name=source\"`\n\n\t// nodeName represents the node that the volume should be attached to.\n\tNodeName string `json:\"nodeName\" protobuf:\"bytes,3,opt,name=nodeName\"`\n}\n\n// VolumeAttachmentSource represents a volume that should be attached.\n// Right now only PersistentVolumes can be attached via external attacher,\n// in the future we may allow also inline volumes in pods.\n// Exactly one member can be set.\ntype VolumeAttachmentSource struct {\n\t// persistentVolumeName represents the name of the persistent volume to attach.\n\t// +optional\n\tPersistentVolumeName *string `json:\"persistentVolumeName,omitempty\" protobuf:\"bytes,1,opt,name=persistentVolumeName\"`\n\n\t// inlineVolumeSpec contains all the information necessary to attach\n\t// a persistent volume defined by a pod's inline VolumeSource. This field\n\t// is populated only for the CSIMigration feature. It contains\n\t// translated fields from a pod's inline VolumeSource to a\n\t// PersistentVolumeSpec. This field is alpha-level and is only\n\t// honored by servers that enabled the CSIMigration feature.\n\t// +optional\n\tInlineVolumeSpec *v1.PersistentVolumeSpec `json:\"inlineVolumeSpec,omitempty\" protobuf:\"bytes,2,opt,name=inlineVolumeSpec\"`\n}\n\n// VolumeAttachmentStatus is the status of a VolumeAttachment request.\ntype VolumeAttachmentStatus struct {\n\t// attached indicates the volume is successfully attached.\n\t// This field must only be set by the entity completing the attach\n\t// operation, i.e. the external-attacher.\n\tAttached bool `json:\"attached\" protobuf:\"varint,1,opt,name=attached\"`\n\n\t// attachmentMetadata is populated with any\n\t// information returned by the attach operation, upon successful attach, that must be passed\n\t// into subsequent WaitForAttach or Mount calls.\n\t// This field must only be set by the entity completing the attach\n\t// operation, i.e. the external-attacher.\n\t// +optional\n\tAttachmentMetadata map[string]string `json:\"attachmentMetadata,omitempty\" protobuf:\"bytes,2,rep,name=attachmentMetadata\"`\n\n\t// attachError represents the last error encountered during attach operation, if any.\n\t// This field must only be set by the entity completing the attach\n\t// operation, i.e. the external-attacher.\n\t// +optional\n\tAttachError *VolumeError `json:\"attachError,omitempty\" protobuf:\"bytes,3,opt,name=attachError,casttype=VolumeError\"`\n\n\t// detachError represents the last error encountered during detach operation, if any.\n\t// This field must only be set by the entity completing the detach\n\t// operation, i.e. the external-attacher.\n\t// +optional\n\tDetachError *VolumeError `json:\"detachError,omitempty\" protobuf:\"bytes,4,opt,name=detachError,casttype=VolumeError\"`\n}\n\n// VolumeError captures an error encountered during a volume operation.\ntype VolumeError struct {\n\t// time represents the time the error was encountered.\n\t// +optional\n\tTime metav1.Time `json:\"time,omitempty\" protobuf:\"bytes,1,opt,name=time\"`\n\n\t// message represents the error encountered during Attach or Detach operation.\n\t// This string maybe logged, so it should not contain sensitive\n\t// information.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,2,opt,name=message\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.19\n// +k8s:prerelease-lifecycle-gen:deprecated=1.21\n// +k8s:prerelease-lifecycle-gen:replacement=storage.k8s.io,v1beta1,CSIStorageCapacity\n\n// CSIStorageCapacity stores the result of one CSI GetCapacity call.\n// For a given StorageClass, this describes the available capacity in a\n// particular topology segment.  This can be used when considering where to\n// instantiate new PersistentVolumes.\n//\n// For example this can express things like:\n// - StorageClass \"standard\" has \"1234 GiB\" available in \"topology.kubernetes.io/zone=us-east1\"\n// - StorageClass \"localssd\" has \"10 GiB\" available in \"kubernetes.io/hostname=knode-abc123\"\n//\n// The following three cases all imply that no capacity is available for\n// a certain combination:\n// - no object exists with suitable topology and storage class name\n// - such an object exists, but the capacity is unset\n// - such an object exists, but the capacity is zero\n//\n// The producer of these objects can decide which approach is more suitable.\n//\n// They are consumed by the kube-scheduler when a CSI driver opts into\n// capacity-aware scheduling with CSIDriverSpec.StorageCapacity. The scheduler\n// compares the MaximumVolumeSize against the requested size of pending volumes\n// to filter out unsuitable nodes. If MaximumVolumeSize is unset, it falls back\n// to a comparison against the less precise Capacity. If that is also unset,\n// the scheduler assumes that capacity is insufficient and tries some other\n// node.\ntype CSIStorageCapacity struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object's metadata. The name has no particular meaning. It must be\n\t// be a DNS subdomain (dots allowed, 253 characters). To ensure that\n\t// there are no conflicts with other CSI drivers on the cluster, the recommendation\n\t// is to use csisc-<uuid>, a generated name, or a reverse-domain name which ends\n\t// with the unique CSI driver name.\n\t//\n\t// Objects are namespaced.\n\t//\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// nodeTopology defines which nodes have access to the storage\n\t// for which capacity was reported. If not set, the storage is\n\t// not accessible from any node in the cluster. If empty, the\n\t// storage is accessible from all nodes. This field is\n\t// immutable.\n\t//\n\t// +optional\n\tNodeTopology *metav1.LabelSelector `json:\"nodeTopology,omitempty\" protobuf:\"bytes,2,opt,name=nodeTopology\"`\n\n\t// storageClassName represents the name of the StorageClass that the reported capacity applies to.\n\t// It must meet the same requirements as the name of a StorageClass\n\t// object (non-empty, DNS subdomain). If that object no longer exists,\n\t// the CSIStorageCapacity object is obsolete and should be removed by its\n\t// creator.\n\t// This field is immutable.\n\tStorageClassName string `json:\"storageClassName\" protobuf:\"bytes,3,name=storageClassName\"`\n\n\t// capacity is the value reported by the CSI driver in its GetCapacityResponse\n\t// for a GetCapacityRequest with topology and parameters that match the\n\t// previous fields.\n\t//\n\t// The semantic is currently (CSI spec 1.2) defined as:\n\t// The available capacity, in bytes, of the storage that can be used\n\t// to provision volumes. If not set, that information is currently\n\t// unavailable.\n\t//\n\t// +optional\n\tCapacity *resource.Quantity `json:\"capacity,omitempty\" protobuf:\"bytes,4,opt,name=capacity\"`\n\n\t// maximumVolumeSize is the value reported by the CSI driver in its GetCapacityResponse\n\t// for a GetCapacityRequest with topology and parameters that match the\n\t// previous fields.\n\t//\n\t// This is defined since CSI spec 1.4.0 as the largest size\n\t// that may be used in a\n\t// CreateVolumeRequest.capacity_range.required_bytes field to\n\t// create a volume with the same parameters as those in\n\t// GetCapacityRequest. The corresponding value in the Kubernetes\n\t// API is ResourceRequirements.Requests in a volume claim.\n\t//\n\t// +optional\n\tMaximumVolumeSize *resource.Quantity `json:\"maximumVolumeSize,omitempty\" protobuf:\"bytes,5,opt,name=maximumVolumeSize\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.19\n// +k8s:prerelease-lifecycle-gen:deprecated=1.21\n// +k8s:prerelease-lifecycle-gen:replacement=storage.k8s.io,v1beta1,CSIStorageCapacityList\n\n// CSIStorageCapacityList is a collection of CSIStorageCapacity objects.\ntype CSIStorageCapacityList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of CSIStorageCapacity objects.\n\tItems []CSIStorageCapacity `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:prerelease-lifecycle-gen:introduced=1.29\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// VolumeAttributesClass represents a specification of mutable volume attributes\n// defined by the CSI driver. The class can be specified during dynamic provisioning\n// of PersistentVolumeClaims, and changed in the PersistentVolumeClaim spec after provisioning.\ntype VolumeAttributesClass struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Name of the CSI driver\n\t// This field is immutable.\n\tDriverName string `json:\"driverName\" protobuf:\"bytes,2,opt,name=driverName\"`\n\n\t// parameters hold volume attributes defined by the CSI driver. These values\n\t// are opaque to the Kubernetes and are passed directly to the CSI driver.\n\t// The underlying storage provider supports changing these attributes on an\n\t// existing volume, however the parameters field itself is immutable. To\n\t// invoke a volume update, a new VolumeAttributesClass should be created with\n\t// new parameters, and the PersistentVolumeClaim should be updated to reference\n\t// the new VolumeAttributesClass.\n\t//\n\t// This field is required and must contain at least one key/value pair.\n\t// The keys cannot be empty, and the maximum number of parameters is 512, with\n\t// a cumulative max size of 256K. If the CSI driver rejects invalid parameters,\n\t// the target PersistentVolumeClaim will be set to an \"Infeasible\" state in the\n\t// modifyVolumeStatus field.\n\tParameters map[string]string `json:\"parameters,omitempty\" protobuf:\"bytes,3,rep,name=parameters\"`\n}\n\n// +k8s:prerelease-lifecycle-gen:introduced=1.29\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// VolumeAttributesClassList is a collection of VolumeAttributesClass objects.\ntype VolumeAttributesClassList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of VolumeAttributesClass objects.\n\tItems []VolumeAttributesClass `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1alpha1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_CSIStorageCapacity = map[string]string{\n\t\"\":                  \"CSIStorageCapacity stores the result of one CSI GetCapacity call. For a given StorageClass, this describes the available capacity in a particular topology segment.  This can be used when considering where to instantiate new PersistentVolumes.\\n\\nFor example this can express things like: - StorageClass \\\"standard\\\" has \\\"1234 GiB\\\" available in \\\"topology.kubernetes.io/zone=us-east1\\\" - StorageClass \\\"localssd\\\" has \\\"10 GiB\\\" available in \\\"kubernetes.io/hostname=knode-abc123\\\"\\n\\nThe following three cases all imply that no capacity is available for a certain combination: - no object exists with suitable topology and storage class name - such an object exists, but the capacity is unset - such an object exists, but the capacity is zero\\n\\nThe producer of these objects can decide which approach is more suitable.\\n\\nThey are consumed by the kube-scheduler when a CSI driver opts into capacity-aware scheduling with CSIDriverSpec.StorageCapacity. The scheduler compares the MaximumVolumeSize against the requested size of pending volumes to filter out unsuitable nodes. If MaximumVolumeSize is unset, it falls back to a comparison against the less precise Capacity. If that is also unset, the scheduler assumes that capacity is insufficient and tries some other node.\",\n\t\"metadata\":          \"Standard object's metadata. The name has no particular meaning. It must be be a DNS subdomain (dots allowed, 253 characters). To ensure that there are no conflicts with other CSI drivers on the cluster, the recommendation is to use csisc-<uuid>, a generated name, or a reverse-domain name which ends with the unique CSI driver name.\\n\\nObjects are namespaced.\\n\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"nodeTopology\":      \"nodeTopology defines which nodes have access to the storage for which capacity was reported. If not set, the storage is not accessible from any node in the cluster. If empty, the storage is accessible from all nodes. This field is immutable.\",\n\t\"storageClassName\":  \"storageClassName represents the name of the StorageClass that the reported capacity applies to. It must meet the same requirements as the name of a StorageClass object (non-empty, DNS subdomain). If that object no longer exists, the CSIStorageCapacity object is obsolete and should be removed by its creator. This field is immutable.\",\n\t\"capacity\":          \"capacity is the value reported by the CSI driver in its GetCapacityResponse for a GetCapacityRequest with topology and parameters that match the previous fields.\\n\\nThe semantic is currently (CSI spec 1.2) defined as: The available capacity, in bytes, of the storage that can be used to provision volumes. If not set, that information is currently unavailable.\",\n\t\"maximumVolumeSize\": \"maximumVolumeSize is the value reported by the CSI driver in its GetCapacityResponse for a GetCapacityRequest with topology and parameters that match the previous fields.\\n\\nThis is defined since CSI spec 1.4.0 as the largest size that may be used in a CreateVolumeRequest.capacity_range.required_bytes field to create a volume with the same parameters as those in GetCapacityRequest. The corresponding value in the Kubernetes API is ResourceRequirements.Requests in a volume claim.\",\n}\n\nfunc (CSIStorageCapacity) SwaggerDoc() map[string]string {\n\treturn map_CSIStorageCapacity\n}\n\nvar map_CSIStorageCapacityList = map[string]string{\n\t\"\":         \"CSIStorageCapacityList is a collection of CSIStorageCapacity objects.\",\n\t\"metadata\": \"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of CSIStorageCapacity objects.\",\n}\n\nfunc (CSIStorageCapacityList) SwaggerDoc() map[string]string {\n\treturn map_CSIStorageCapacityList\n}\n\nvar map_VolumeAttachment = map[string]string{\n\t\"\":         \"VolumeAttachment captures the intent to attach or detach the specified volume to/from the specified node.\\n\\nVolumeAttachment objects are non-namespaced.\",\n\t\"metadata\": \"Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec represents specification of the desired attach/detach volume behavior. Populated by the Kubernetes system.\",\n\t\"status\":   \"status represents status of the VolumeAttachment request. Populated by the entity completing the attach or detach operation, i.e. the external-attacher.\",\n}\n\nfunc (VolumeAttachment) SwaggerDoc() map[string]string {\n\treturn map_VolumeAttachment\n}\n\nvar map_VolumeAttachmentList = map[string]string{\n\t\"\":         \"VolumeAttachmentList is a collection of VolumeAttachment objects.\",\n\t\"metadata\": \"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of VolumeAttachments\",\n}\n\nfunc (VolumeAttachmentList) SwaggerDoc() map[string]string {\n\treturn map_VolumeAttachmentList\n}\n\nvar map_VolumeAttachmentSource = map[string]string{\n\t\"\":                     \"VolumeAttachmentSource represents a volume that should be attached. Right now only PersistentVolumes can be attached via external attacher, in the future we may allow also inline volumes in pods. Exactly one member can be set.\",\n\t\"persistentVolumeName\": \"persistentVolumeName represents the name of the persistent volume to attach.\",\n}\n\nfunc (VolumeAttachmentSource) SwaggerDoc() map[string]string {\n\treturn map_VolumeAttachmentSource\n}\n\nvar map_VolumeAttachmentSpec = map[string]string{\n\t\"\":         \"VolumeAttachmentSpec is the specification of a VolumeAttachment request.\",\n\t\"attacher\": \"attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName().\",\n\t\"source\":   \"source represents the volume that should be attached.\",\n\t\"nodeName\": \"nodeName represents the node that the volume should be attached to.\",\n}\n\nfunc (VolumeAttachmentSpec) SwaggerDoc() map[string]string {\n\treturn map_VolumeAttachmentSpec\n}\n\nvar map_VolumeAttachmentStatus = map[string]string{\n\t\"\":                   \"VolumeAttachmentStatus is the status of a VolumeAttachment request.\",\n\t\"attached\":           \"attached indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.\",\n\t\"attachmentMetadata\": \"attachmentMetadata is populated with any information returned by the attach operation, upon successful attach, that must be passed into subsequent WaitForAttach or Mount calls. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.\",\n\t\"attachError\":        \"attachError represents the last error encountered during attach operation, if any. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.\",\n\t\"detachError\":        \"detachError represents the last error encountered during detach operation, if any. This field must only be set by the entity completing the detach operation, i.e. the external-attacher.\",\n}\n\nfunc (VolumeAttachmentStatus) SwaggerDoc() map[string]string {\n\treturn map_VolumeAttachmentStatus\n}\n\nvar map_VolumeAttributesClass = map[string]string{\n\t\"\":           \"VolumeAttributesClass represents a specification of mutable volume attributes defined by the CSI driver. The class can be specified during dynamic provisioning of PersistentVolumeClaims, and changed in the PersistentVolumeClaim spec after provisioning.\",\n\t\"metadata\":   \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"driverName\": \"Name of the CSI driver This field is immutable.\",\n\t\"parameters\": \"parameters hold volume attributes defined by the CSI driver. These values are opaque to the Kubernetes and are passed directly to the CSI driver. The underlying storage provider supports changing these attributes on an existing volume, however the parameters field itself is immutable. To invoke a volume update, a new VolumeAttributesClass should be created with new parameters, and the PersistentVolumeClaim should be updated to reference the new VolumeAttributesClass.\\n\\nThis field is required and must contain at least one key/value pair. The keys cannot be empty, and the maximum number of parameters is 512, with a cumulative max size of 256K. If the CSI driver rejects invalid parameters, the target PersistentVolumeClaim will be set to an \\\"Infeasible\\\" state in the modifyVolumeStatus field.\",\n}\n\nfunc (VolumeAttributesClass) SwaggerDoc() map[string]string {\n\treturn map_VolumeAttributesClass\n}\n\nvar map_VolumeAttributesClassList = map[string]string{\n\t\"\":         \"VolumeAttributesClassList is a collection of VolumeAttributesClass objects.\",\n\t\"metadata\": \"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of VolumeAttributesClass objects.\",\n}\n\nfunc (VolumeAttributesClassList) SwaggerDoc() map[string]string {\n\treturn map_VolumeAttributesClassList\n}\n\nvar map_VolumeError = map[string]string{\n\t\"\":        \"VolumeError captures an error encountered during a volume operation.\",\n\t\"time\":    \"time represents the time the error was encountered.\",\n\t\"message\": \"message represents the error encountered during Attach or Detach operation. This string maybe logged, so it should not contain sensitive information.\",\n}\n\nfunc (VolumeError) SwaggerDoc() map[string]string {\n\treturn map_VolumeError\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1alpha1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSIStorageCapacity) DeepCopyInto(out *CSIStorageCapacity) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.NodeTopology != nil {\n\t\tin, out := &in.NodeTopology, &out.NodeTopology\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Capacity != nil {\n\t\tin, out := &in.Capacity, &out.Capacity\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\tif in.MaximumVolumeSize != nil {\n\t\tin, out := &in.MaximumVolumeSize, &out.MaximumVolumeSize\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSIStorageCapacity.\nfunc (in *CSIStorageCapacity) DeepCopy() *CSIStorageCapacity {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSIStorageCapacity)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CSIStorageCapacity) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSIStorageCapacityList) DeepCopyInto(out *CSIStorageCapacityList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]CSIStorageCapacity, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSIStorageCapacityList.\nfunc (in *CSIStorageCapacityList) DeepCopy() *CSIStorageCapacityList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSIStorageCapacityList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CSIStorageCapacityList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeAttachment) DeepCopyInto(out *VolumeAttachment) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachment.\nfunc (in *VolumeAttachment) DeepCopy() *VolumeAttachment {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeAttachment)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *VolumeAttachment) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeAttachmentList) DeepCopyInto(out *VolumeAttachmentList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]VolumeAttachment, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachmentList.\nfunc (in *VolumeAttachmentList) DeepCopy() *VolumeAttachmentList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeAttachmentList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *VolumeAttachmentList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeAttachmentSource) DeepCopyInto(out *VolumeAttachmentSource) {\n\t*out = *in\n\tif in.PersistentVolumeName != nil {\n\t\tin, out := &in.PersistentVolumeName, &out.PersistentVolumeName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.InlineVolumeSpec != nil {\n\t\tin, out := &in.InlineVolumeSpec, &out.InlineVolumeSpec\n\t\t*out = new(corev1.PersistentVolumeSpec)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachmentSource.\nfunc (in *VolumeAttachmentSource) DeepCopy() *VolumeAttachmentSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeAttachmentSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeAttachmentSpec) DeepCopyInto(out *VolumeAttachmentSpec) {\n\t*out = *in\n\tin.Source.DeepCopyInto(&out.Source)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachmentSpec.\nfunc (in *VolumeAttachmentSpec) DeepCopy() *VolumeAttachmentSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeAttachmentSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeAttachmentStatus) DeepCopyInto(out *VolumeAttachmentStatus) {\n\t*out = *in\n\tif in.AttachmentMetadata != nil {\n\t\tin, out := &in.AttachmentMetadata, &out.AttachmentMetadata\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.AttachError != nil {\n\t\tin, out := &in.AttachError, &out.AttachError\n\t\t*out = new(VolumeError)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.DetachError != nil {\n\t\tin, out := &in.DetachError, &out.DetachError\n\t\t*out = new(VolumeError)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachmentStatus.\nfunc (in *VolumeAttachmentStatus) DeepCopy() *VolumeAttachmentStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeAttachmentStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeAttributesClass) DeepCopyInto(out *VolumeAttributesClass) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Parameters != nil {\n\t\tin, out := &in.Parameters, &out.Parameters\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttributesClass.\nfunc (in *VolumeAttributesClass) DeepCopy() *VolumeAttributesClass {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeAttributesClass)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *VolumeAttributesClass) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeAttributesClassList) DeepCopyInto(out *VolumeAttributesClassList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]VolumeAttributesClass, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttributesClassList.\nfunc (in *VolumeAttributesClassList) DeepCopy() *VolumeAttributesClassList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeAttributesClassList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *VolumeAttributesClassList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeError) DeepCopyInto(out *VolumeError) {\n\t*out = *in\n\tin.Time.DeepCopyInto(&out.Time)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeError.\nfunc (in *VolumeError) DeepCopy() *VolumeError {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeError)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1alpha1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *CSIStorageCapacity) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *CSIStorageCapacity) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 21\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *CSIStorageCapacity) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"storage.k8s.io\", Version: \"v1beta1\", Kind: \"CSIStorageCapacity\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *CSIStorageCapacity) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 24\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *CSIStorageCapacityList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *CSIStorageCapacityList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 21\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *CSIStorageCapacityList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"storage.k8s.io\", Version: \"v1beta1\", Kind: \"CSIStorageCapacityList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *CSIStorageCapacityList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 24\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *VolumeAttachment) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *VolumeAttachment) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 21\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *VolumeAttachment) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"storage.k8s.io\", Version: \"v1\", Kind: \"VolumeAttachment\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *VolumeAttachment) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 24\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *VolumeAttachmentList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 9\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *VolumeAttachmentList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 21\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *VolumeAttachmentList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"storage.k8s.io\", Version: \"v1\", Kind: \"VolumeAttachmentList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *VolumeAttachmentList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 24\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *VolumeAttributesClass) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 29\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *VolumeAttributesClass) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 32\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *VolumeAttributesClass) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 35\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *VolumeAttributesClassList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 29\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *VolumeAttributesClassList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 32\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *VolumeAttributesClassList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 35\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1beta1/doc.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +groupName=storage.k8s.io\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n\npackage v1beta1 // import \"k8s.io/api/storage/v1beta1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1beta1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/storage/v1beta1/generated.proto\n\npackage v1beta1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\tv11 \"k8s.io/api/core/v1\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *CSIDriver) Reset()      { *m = CSIDriver{} }\nfunc (*CSIDriver) ProtoMessage() {}\nfunc (*CSIDriver) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_73e4f72503e71065, []int{0}\n}\nfunc (m *CSIDriver) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSIDriver) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSIDriver) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSIDriver.Merge(m, src)\n}\nfunc (m *CSIDriver) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSIDriver) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSIDriver.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSIDriver proto.InternalMessageInfo\n\nfunc (m *CSIDriverList) Reset()      { *m = CSIDriverList{} }\nfunc (*CSIDriverList) ProtoMessage() {}\nfunc (*CSIDriverList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_73e4f72503e71065, []int{1}\n}\nfunc (m *CSIDriverList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSIDriverList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSIDriverList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSIDriverList.Merge(m, src)\n}\nfunc (m *CSIDriverList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSIDriverList) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSIDriverList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSIDriverList proto.InternalMessageInfo\n\nfunc (m *CSIDriverSpec) Reset()      { *m = CSIDriverSpec{} }\nfunc (*CSIDriverSpec) ProtoMessage() {}\nfunc (*CSIDriverSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_73e4f72503e71065, []int{2}\n}\nfunc (m *CSIDriverSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSIDriverSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSIDriverSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSIDriverSpec.Merge(m, src)\n}\nfunc (m *CSIDriverSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSIDriverSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSIDriverSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSIDriverSpec proto.InternalMessageInfo\n\nfunc (m *CSINode) Reset()      { *m = CSINode{} }\nfunc (*CSINode) ProtoMessage() {}\nfunc (*CSINode) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_73e4f72503e71065, []int{3}\n}\nfunc (m *CSINode) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSINode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSINode) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSINode.Merge(m, src)\n}\nfunc (m *CSINode) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSINode) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSINode.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSINode proto.InternalMessageInfo\n\nfunc (m *CSINodeDriver) Reset()      { *m = CSINodeDriver{} }\nfunc (*CSINodeDriver) ProtoMessage() {}\nfunc (*CSINodeDriver) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_73e4f72503e71065, []int{4}\n}\nfunc (m *CSINodeDriver) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSINodeDriver) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSINodeDriver) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSINodeDriver.Merge(m, src)\n}\nfunc (m *CSINodeDriver) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSINodeDriver) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSINodeDriver.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSINodeDriver proto.InternalMessageInfo\n\nfunc (m *CSINodeList) Reset()      { *m = CSINodeList{} }\nfunc (*CSINodeList) ProtoMessage() {}\nfunc (*CSINodeList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_73e4f72503e71065, []int{5}\n}\nfunc (m *CSINodeList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSINodeList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSINodeList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSINodeList.Merge(m, src)\n}\nfunc (m *CSINodeList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSINodeList) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSINodeList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSINodeList proto.InternalMessageInfo\n\nfunc (m *CSINodeSpec) Reset()      { *m = CSINodeSpec{} }\nfunc (*CSINodeSpec) ProtoMessage() {}\nfunc (*CSINodeSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_73e4f72503e71065, []int{6}\n}\nfunc (m *CSINodeSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSINodeSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSINodeSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSINodeSpec.Merge(m, src)\n}\nfunc (m *CSINodeSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSINodeSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSINodeSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSINodeSpec proto.InternalMessageInfo\n\nfunc (m *CSIStorageCapacity) Reset()      { *m = CSIStorageCapacity{} }\nfunc (*CSIStorageCapacity) ProtoMessage() {}\nfunc (*CSIStorageCapacity) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_73e4f72503e71065, []int{7}\n}\nfunc (m *CSIStorageCapacity) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSIStorageCapacity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSIStorageCapacity) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSIStorageCapacity.Merge(m, src)\n}\nfunc (m *CSIStorageCapacity) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSIStorageCapacity) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSIStorageCapacity.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSIStorageCapacity proto.InternalMessageInfo\n\nfunc (m *CSIStorageCapacityList) Reset()      { *m = CSIStorageCapacityList{} }\nfunc (*CSIStorageCapacityList) ProtoMessage() {}\nfunc (*CSIStorageCapacityList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_73e4f72503e71065, []int{8}\n}\nfunc (m *CSIStorageCapacityList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CSIStorageCapacityList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CSIStorageCapacityList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CSIStorageCapacityList.Merge(m, src)\n}\nfunc (m *CSIStorageCapacityList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CSIStorageCapacityList) XXX_DiscardUnknown() {\n\txxx_messageInfo_CSIStorageCapacityList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CSIStorageCapacityList proto.InternalMessageInfo\n\nfunc (m *StorageClass) Reset()      { *m = StorageClass{} }\nfunc (*StorageClass) ProtoMessage() {}\nfunc (*StorageClass) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_73e4f72503e71065, []int{9}\n}\nfunc (m *StorageClass) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StorageClass) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StorageClass) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StorageClass.Merge(m, src)\n}\nfunc (m *StorageClass) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StorageClass) XXX_DiscardUnknown() {\n\txxx_messageInfo_StorageClass.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StorageClass proto.InternalMessageInfo\n\nfunc (m *StorageClassList) Reset()      { *m = StorageClassList{} }\nfunc (*StorageClassList) ProtoMessage() {}\nfunc (*StorageClassList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_73e4f72503e71065, []int{10}\n}\nfunc (m *StorageClassList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StorageClassList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StorageClassList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StorageClassList.Merge(m, src)\n}\nfunc (m *StorageClassList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StorageClassList) XXX_DiscardUnknown() {\n\txxx_messageInfo_StorageClassList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StorageClassList proto.InternalMessageInfo\n\nfunc (m *TokenRequest) Reset()      { *m = TokenRequest{} }\nfunc (*TokenRequest) ProtoMessage() {}\nfunc (*TokenRequest) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_73e4f72503e71065, []int{11}\n}\nfunc (m *TokenRequest) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TokenRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TokenRequest) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TokenRequest.Merge(m, src)\n}\nfunc (m *TokenRequest) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TokenRequest) XXX_DiscardUnknown() {\n\txxx_messageInfo_TokenRequest.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TokenRequest proto.InternalMessageInfo\n\nfunc (m *VolumeAttachment) Reset()      { *m = VolumeAttachment{} }\nfunc (*VolumeAttachment) ProtoMessage() {}\nfunc (*VolumeAttachment) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_73e4f72503e71065, []int{12}\n}\nfunc (m *VolumeAttachment) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeAttachment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeAttachment) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeAttachment.Merge(m, src)\n}\nfunc (m *VolumeAttachment) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeAttachment) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeAttachment.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeAttachment proto.InternalMessageInfo\n\nfunc (m *VolumeAttachmentList) Reset()      { *m = VolumeAttachmentList{} }\nfunc (*VolumeAttachmentList) ProtoMessage() {}\nfunc (*VolumeAttachmentList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_73e4f72503e71065, []int{13}\n}\nfunc (m *VolumeAttachmentList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeAttachmentList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeAttachmentList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeAttachmentList.Merge(m, src)\n}\nfunc (m *VolumeAttachmentList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeAttachmentList) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeAttachmentList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeAttachmentList proto.InternalMessageInfo\n\nfunc (m *VolumeAttachmentSource) Reset()      { *m = VolumeAttachmentSource{} }\nfunc (*VolumeAttachmentSource) ProtoMessage() {}\nfunc (*VolumeAttachmentSource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_73e4f72503e71065, []int{14}\n}\nfunc (m *VolumeAttachmentSource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeAttachmentSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeAttachmentSource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeAttachmentSource.Merge(m, src)\n}\nfunc (m *VolumeAttachmentSource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeAttachmentSource) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeAttachmentSource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeAttachmentSource proto.InternalMessageInfo\n\nfunc (m *VolumeAttachmentSpec) Reset()      { *m = VolumeAttachmentSpec{} }\nfunc (*VolumeAttachmentSpec) ProtoMessage() {}\nfunc (*VolumeAttachmentSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_73e4f72503e71065, []int{15}\n}\nfunc (m *VolumeAttachmentSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeAttachmentSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeAttachmentSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeAttachmentSpec.Merge(m, src)\n}\nfunc (m *VolumeAttachmentSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeAttachmentSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeAttachmentSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeAttachmentSpec proto.InternalMessageInfo\n\nfunc (m *VolumeAttachmentStatus) Reset()      { *m = VolumeAttachmentStatus{} }\nfunc (*VolumeAttachmentStatus) ProtoMessage() {}\nfunc (*VolumeAttachmentStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_73e4f72503e71065, []int{16}\n}\nfunc (m *VolumeAttachmentStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeAttachmentStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeAttachmentStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeAttachmentStatus.Merge(m, src)\n}\nfunc (m *VolumeAttachmentStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeAttachmentStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeAttachmentStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeAttachmentStatus proto.InternalMessageInfo\n\nfunc (m *VolumeAttributesClass) Reset()      { *m = VolumeAttributesClass{} }\nfunc (*VolumeAttributesClass) ProtoMessage() {}\nfunc (*VolumeAttributesClass) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_73e4f72503e71065, []int{17}\n}\nfunc (m *VolumeAttributesClass) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeAttributesClass) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeAttributesClass) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeAttributesClass.Merge(m, src)\n}\nfunc (m *VolumeAttributesClass) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeAttributesClass) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeAttributesClass.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeAttributesClass proto.InternalMessageInfo\n\nfunc (m *VolumeAttributesClassList) Reset()      { *m = VolumeAttributesClassList{} }\nfunc (*VolumeAttributesClassList) ProtoMessage() {}\nfunc (*VolumeAttributesClassList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_73e4f72503e71065, []int{18}\n}\nfunc (m *VolumeAttributesClassList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeAttributesClassList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeAttributesClassList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeAttributesClassList.Merge(m, src)\n}\nfunc (m *VolumeAttributesClassList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeAttributesClassList) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeAttributesClassList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeAttributesClassList proto.InternalMessageInfo\n\nfunc (m *VolumeError) Reset()      { *m = VolumeError{} }\nfunc (*VolumeError) ProtoMessage() {}\nfunc (*VolumeError) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_73e4f72503e71065, []int{19}\n}\nfunc (m *VolumeError) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeError) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeError.Merge(m, src)\n}\nfunc (m *VolumeError) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeError) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeError.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeError proto.InternalMessageInfo\n\nfunc (m *VolumeNodeResources) Reset()      { *m = VolumeNodeResources{} }\nfunc (*VolumeNodeResources) ProtoMessage() {}\nfunc (*VolumeNodeResources) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_73e4f72503e71065, []int{20}\n}\nfunc (m *VolumeNodeResources) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *VolumeNodeResources) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *VolumeNodeResources) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_VolumeNodeResources.Merge(m, src)\n}\nfunc (m *VolumeNodeResources) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *VolumeNodeResources) XXX_DiscardUnknown() {\n\txxx_messageInfo_VolumeNodeResources.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_VolumeNodeResources proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*CSIDriver)(nil), \"k8s.io.api.storage.v1beta1.CSIDriver\")\n\tproto.RegisterType((*CSIDriverList)(nil), \"k8s.io.api.storage.v1beta1.CSIDriverList\")\n\tproto.RegisterType((*CSIDriverSpec)(nil), \"k8s.io.api.storage.v1beta1.CSIDriverSpec\")\n\tproto.RegisterType((*CSINode)(nil), \"k8s.io.api.storage.v1beta1.CSINode\")\n\tproto.RegisterType((*CSINodeDriver)(nil), \"k8s.io.api.storage.v1beta1.CSINodeDriver\")\n\tproto.RegisterType((*CSINodeList)(nil), \"k8s.io.api.storage.v1beta1.CSINodeList\")\n\tproto.RegisterType((*CSINodeSpec)(nil), \"k8s.io.api.storage.v1beta1.CSINodeSpec\")\n\tproto.RegisterType((*CSIStorageCapacity)(nil), \"k8s.io.api.storage.v1beta1.CSIStorageCapacity\")\n\tproto.RegisterType((*CSIStorageCapacityList)(nil), \"k8s.io.api.storage.v1beta1.CSIStorageCapacityList\")\n\tproto.RegisterType((*StorageClass)(nil), \"k8s.io.api.storage.v1beta1.StorageClass\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.storage.v1beta1.StorageClass.ParametersEntry\")\n\tproto.RegisterType((*StorageClassList)(nil), \"k8s.io.api.storage.v1beta1.StorageClassList\")\n\tproto.RegisterType((*TokenRequest)(nil), \"k8s.io.api.storage.v1beta1.TokenRequest\")\n\tproto.RegisterType((*VolumeAttachment)(nil), \"k8s.io.api.storage.v1beta1.VolumeAttachment\")\n\tproto.RegisterType((*VolumeAttachmentList)(nil), \"k8s.io.api.storage.v1beta1.VolumeAttachmentList\")\n\tproto.RegisterType((*VolumeAttachmentSource)(nil), \"k8s.io.api.storage.v1beta1.VolumeAttachmentSource\")\n\tproto.RegisterType((*VolumeAttachmentSpec)(nil), \"k8s.io.api.storage.v1beta1.VolumeAttachmentSpec\")\n\tproto.RegisterType((*VolumeAttachmentStatus)(nil), \"k8s.io.api.storage.v1beta1.VolumeAttachmentStatus\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.storage.v1beta1.VolumeAttachmentStatus.AttachmentMetadataEntry\")\n\tproto.RegisterType((*VolumeAttributesClass)(nil), \"k8s.io.api.storage.v1beta1.VolumeAttributesClass\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.api.storage.v1beta1.VolumeAttributesClass.ParametersEntry\")\n\tproto.RegisterType((*VolumeAttributesClassList)(nil), \"k8s.io.api.storage.v1beta1.VolumeAttributesClassList\")\n\tproto.RegisterType((*VolumeError)(nil), \"k8s.io.api.storage.v1beta1.VolumeError\")\n\tproto.RegisterType((*VolumeNodeResources)(nil), \"k8s.io.api.storage.v1beta1.VolumeNodeResources\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/storage/v1beta1/generated.proto\", fileDescriptor_73e4f72503e71065)\n}\n\nvar fileDescriptor_73e4f72503e71065 = []byte{\n\t// 1728 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0xcd, 0x6f, 0x23, 0x49,\n\t0x15, 0x4f, 0xc7, 0xce, 0x57, 0x39, 0x99, 0x24, 0x35, 0x99, 0xc5, 0xeb, 0x83, 0x1d, 0x19, 0xc1,\n\t0x66, 0x46, 0x4b, 0x7b, 0x12, 0x96, 0xd5, 0x68, 0xa5, 0x95, 0x48, 0x27, 0x81, 0xf5, 0x6e, 0x9c,\n\t0xc9, 0x96, 0xa3, 0xd1, 0x6a, 0xc5, 0x81, 0x72, 0xbb, 0xe2, 0xd4, 0xc6, 0xfd, 0xb1, 0x5d, 0xd5,\n\t0x21, 0xe6, 0x04, 0x17, 0xce, 0x88, 0x03, 0x7f, 0x01, 0xff, 0x02, 0x48, 0x70, 0xe1, 0xc8, 0x48,\n\t0x48, 0x68, 0xe1, 0xc2, 0x9e, 0x2c, 0xc6, 0xf3, 0x27, 0x20, 0x71, 0x88, 0x38, 0xa0, 0xaa, 0x2e,\n\t0xf7, 0xb7, 0x27, 0x36, 0x2b, 0xf9, 0xe6, 0x7a, 0x1f, 0xbf, 0x7a, 0x55, 0xef, 0xf7, 0x5e, 0xbd,\n\t0x36, 0x78, 0x72, 0xfd, 0x8c, 0xe9, 0xd4, 0x69, 0x60, 0x97, 0x36, 0x18, 0x77, 0x3c, 0xdc, 0x23,\n\t0x8d, 0x9b, 0xfd, 0x0e, 0xe1, 0x78, 0xbf, 0xd1, 0x23, 0x36, 0xf1, 0x30, 0x27, 0x5d, 0xdd, 0xf5,\n\t0x1c, 0xee, 0xc0, 0x4a, 0x60, 0xab, 0x63, 0x97, 0xea, 0xca, 0x56, 0x57, 0xb6, 0x95, 0xef, 0xf5,\n\t0x28, 0xbf, 0xf2, 0x3b, 0xba, 0xe9, 0x58, 0x8d, 0x9e, 0xd3, 0x73, 0x1a, 0xd2, 0xa5, 0xe3, 0x5f,\n\t0xca, 0x95, 0x5c, 0xc8, 0x5f, 0x01, 0x54, 0xa5, 0x1e, 0xdb, 0xd6, 0x74, 0x3c, 0xb1, 0x67, 0x7a,\n\t0xbb, 0xca, 0x7b, 0x91, 0x8d, 0x85, 0xcd, 0x2b, 0x6a, 0x13, 0x6f, 0xd0, 0x70, 0xaf, 0x7b, 0xd2,\n\t0xc9, 0x23, 0xcc, 0xf1, 0x3d, 0x93, 0xcc, 0xe4, 0xc5, 0x1a, 0x16, 0xe1, 0x38, 0x6f, 0xaf, 0xc6,\n\t0x24, 0x2f, 0xcf, 0xb7, 0x39, 0xb5, 0xb2, 0xdb, 0xbc, 0x7f, 0x9f, 0x03, 0x33, 0xaf, 0x88, 0x85,\n\t0xd3, 0x7e, 0xf5, 0x3f, 0x69, 0x60, 0xed, 0xa8, 0xdd, 0x3c, 0xf6, 0xe8, 0x0d, 0xf1, 0xe0, 0x4f,\n\t0xc1, 0xaa, 0x88, 0xa8, 0x8b, 0x39, 0x2e, 0x6b, 0xbb, 0xda, 0x5e, 0xe9, 0xe0, 0xa9, 0x1e, 0x5d,\n\t0x72, 0x08, 0xac, 0xbb, 0xd7, 0x3d, 0x21, 0x60, 0xba, 0xb0, 0xd6, 0x6f, 0xf6, 0xf5, 0xe7, 0x9d,\n\t0x2f, 0x88, 0xc9, 0x5b, 0x84, 0x63, 0x03, 0xbe, 0x1c, 0xd6, 0x16, 0x46, 0xc3, 0x1a, 0x88, 0x64,\n\t0x28, 0x44, 0x85, 0x9f, 0x80, 0x22, 0x73, 0x89, 0x59, 0x5e, 0x94, 0xe8, 0x8f, 0xf5, 0xc9, 0x29,\n\t0xd4, 0xc3, 0xb0, 0xda, 0x2e, 0x31, 0x8d, 0x75, 0x05, 0x5b, 0x14, 0x2b, 0x24, 0x41, 0xea, 0x7f,\n\t0xd4, 0xc0, 0x46, 0x68, 0x75, 0x4a, 0x19, 0x87, 0x3f, 0xc9, 0x1c, 0x40, 0x9f, 0xee, 0x00, 0xc2,\n\t0x5b, 0x86, 0xbf, 0xa5, 0xf6, 0x59, 0x1d, 0x4b, 0x62, 0xc1, 0x7f, 0x0c, 0x96, 0x28, 0x27, 0x16,\n\t0x2b, 0x2f, 0xee, 0x16, 0xf6, 0x4a, 0x07, 0xdf, 0x99, 0x2a, 0x7a, 0x63, 0x43, 0x21, 0x2e, 0x35,\n\t0x85, 0x2f, 0x0a, 0x20, 0xea, 0xff, 0x2c, 0xc6, 0x62, 0x17, 0x67, 0x82, 0x1f, 0x80, 0x07, 0x98,\n\t0x73, 0x6c, 0x5e, 0x21, 0xf2, 0xa5, 0x4f, 0x3d, 0xd2, 0x95, 0x27, 0x58, 0x35, 0xe0, 0x68, 0x58,\n\t0x7b, 0x70, 0x98, 0xd0, 0xa0, 0x94, 0xa5, 0xf0, 0x75, 0x9d, 0x6e, 0xd3, 0xbe, 0x74, 0x9e, 0xdb,\n\t0x2d, 0xc7, 0xb7, 0xb9, 0xbc, 0x60, 0xe5, 0x7b, 0x9e, 0xd0, 0xa0, 0x94, 0x25, 0x34, 0xc1, 0xce,\n\t0x8d, 0xd3, 0xf7, 0x2d, 0x72, 0x4a, 0x2f, 0x89, 0x39, 0x30, 0xfb, 0xa4, 0xe5, 0x74, 0x09, 0x2b,\n\t0x17, 0x76, 0x0b, 0x7b, 0x6b, 0x46, 0x63, 0x34, 0xac, 0xed, 0xbc, 0xc8, 0xd1, 0xdf, 0x0d, 0x6b,\n\t0x0f, 0x73, 0xe4, 0x28, 0x17, 0x0c, 0x7e, 0x08, 0x36, 0xd5, 0x0d, 0x1d, 0x61, 0x17, 0x9b, 0x94,\n\t0x0f, 0xca, 0x45, 0x19, 0xe1, 0xc3, 0xd1, 0xb0, 0xb6, 0xd9, 0x4e, 0xaa, 0x50, 0xda, 0x16, 0x7e,\n\t0x04, 0x36, 0x2e, 0xd9, 0x8f, 0x3d, 0xc7, 0x77, 0xcf, 0x9d, 0x3e, 0x35, 0x07, 0xe5, 0xa5, 0x5d,\n\t0x6d, 0x6f, 0xcd, 0xa8, 0x8f, 0x86, 0xb5, 0x8d, 0x1f, 0xb5, 0x63, 0x8a, 0xbb, 0xb4, 0x00, 0x25,\n\t0x1d, 0x21, 0x01, 0x1b, 0xdc, 0xb9, 0x26, 0xb6, 0xb8, 0x3a, 0xc2, 0x38, 0x2b, 0x2f, 0xcb, 0x5c,\n\t0xee, 0xbd, 0x29, 0x97, 0x17, 0x31, 0x07, 0xe3, 0x91, 0x4a, 0xe7, 0x46, 0x5c, 0xca, 0x50, 0x12,\n\t0x15, 0x1e, 0x81, 0x6d, 0x2f, 0x48, 0x0e, 0x43, 0xc4, 0xf5, 0x3b, 0x7d, 0xca, 0xae, 0xca, 0x2b,\n\t0xf2, 0xc4, 0x8f, 0x46, 0xc3, 0xda, 0x36, 0x4a, 0x2b, 0x51, 0xd6, 0x1e, 0xbe, 0x07, 0xd6, 0x19,\n\t0x39, 0xa5, 0xb6, 0x7f, 0x1b, 0xe4, 0x74, 0x55, 0xfa, 0x6f, 0x8d, 0x86, 0xb5, 0xf5, 0xf6, 0x49,\n\t0x24, 0x47, 0x09, 0xab, 0xfa, 0x1f, 0x34, 0xb0, 0x72, 0xd4, 0x6e, 0x9e, 0x39, 0x5d, 0x32, 0x87,\n\t0x82, 0x6e, 0x26, 0x0a, 0xfa, 0x9d, 0x7b, 0x4a, 0x42, 0x04, 0x35, 0xb1, 0x9c, 0xff, 0x1d, 0x94,\n\t0xb3, 0xb0, 0x51, 0xfd, 0x68, 0x17, 0x14, 0x6d, 0x6c, 0x11, 0x19, 0xfa, 0x5a, 0xe4, 0x73, 0x86,\n\t0x2d, 0x82, 0xa4, 0x06, 0x7e, 0x17, 0x2c, 0xdb, 0x4e, 0x97, 0x34, 0x8f, 0x65, 0x00, 0x6b, 0xc6,\n\t0x03, 0x65, 0xb3, 0x7c, 0x26, 0xa5, 0x48, 0x69, 0xc5, 0x55, 0x72, 0xc7, 0x75, 0xfa, 0x4e, 0x6f,\n\t0xf0, 0x09, 0x19, 0x8c, 0xc9, 0x2d, 0xaf, 0xf2, 0x22, 0x26, 0x47, 0x09, 0x2b, 0xd8, 0x01, 0x25,\n\t0xdc, 0xef, 0x3b, 0x26, 0xe6, 0xb8, 0xd3, 0x27, 0x92, 0xb1, 0xa5, 0x83, 0xc6, 0x9b, 0xce, 0x18,\n\t0x54, 0x84, 0xd8, 0x1c, 0xa9, 0x17, 0x81, 0x19, 0x9b, 0xa3, 0x61, 0xad, 0x74, 0x18, 0xe1, 0xa0,\n\t0x38, 0x68, 0xfd, 0xf7, 0x1a, 0x28, 0xa9, 0x53, 0xcf, 0xa1, 0x85, 0x7d, 0x94, 0x6c, 0x61, 0xdf,\n\t0x9e, 0x22, 0x5f, 0x13, 0x1a, 0x98, 0x19, 0x86, 0x2d, 0xbb, 0xd7, 0x05, 0x58, 0xe9, 0xca, 0xa4,\n\t0xb1, 0xb2, 0x26, 0xa1, 0x1f, 0x4f, 0x01, 0xad, 0x3a, 0xe4, 0xa6, 0xda, 0x60, 0x25, 0x58, 0x33,\n\t0x34, 0x86, 0xaa, 0xff, 0xa7, 0x00, 0xe0, 0x51, 0xbb, 0x99, 0xea, 0x0f, 0x73, 0xa0, 0x35, 0x05,\n\t0xeb, 0x82, 0x39, 0x63, 0x6e, 0x28, 0x7a, 0x7f, 0x7f, 0xca, 0x4c, 0xe0, 0x0e, 0xe9, 0xb7, 0x49,\n\t0x9f, 0x98, 0xdc, 0xf1, 0x02, 0x92, 0x9d, 0xc5, 0xc0, 0x50, 0x02, 0x1a, 0x1e, 0x83, 0xad, 0x71,\n\t0xbb, 0xeb, 0x63, 0xc6, 0x04, 0xb9, 0xcb, 0x05, 0x49, 0xe6, 0xb2, 0x0a, 0x71, 0xab, 0x9d, 0xd2,\n\t0xa3, 0x8c, 0x07, 0xfc, 0x0c, 0xac, 0x9a, 0xf1, 0xce, 0x7a, 0x0f, 0x6d, 0xf4, 0xf1, 0xc0, 0xa2,\n\t0x7f, 0xea, 0x63, 0x9b, 0x53, 0x3e, 0x30, 0xd6, 0x05, 0x65, 0xc2, 0x16, 0x1c, 0xa2, 0x41, 0x06,\n\t0xb6, 0x2d, 0x7c, 0x4b, 0x2d, 0xdf, 0x0a, 0xc8, 0xdd, 0xa6, 0x3f, 0x27, 0xb2, 0xff, 0xce, 0xbe,\n\t0x85, 0x6c, 0x7d, 0xad, 0x34, 0x18, 0xca, 0xe2, 0xd7, 0xff, 0xaa, 0x81, 0xb7, 0xb2, 0x89, 0x9f,\n\t0x43, 0x81, 0xb4, 0x93, 0x05, 0xa2, 0xdf, 0xc3, 0xe2, 0x54, 0x80, 0x13, 0x6a, 0xe5, 0x37, 0xcb,\n\t0x60, 0x3d, 0x9e, 0xc3, 0x39, 0x10, 0xf8, 0x07, 0xa0, 0xe4, 0x7a, 0xce, 0x0d, 0x65, 0xd4, 0xb1,\n\t0x89, 0xa7, 0xba, 0xe3, 0x43, 0xe5, 0x52, 0x3a, 0x8f, 0x54, 0x28, 0x6e, 0x07, 0xfb, 0x00, 0xb8,\n\t0xd8, 0xc3, 0x16, 0xe1, 0xa2, 0x92, 0x0b, 0xf2, 0x0e, 0x9e, 0xbd, 0xe9, 0x0e, 0xe2, 0xc7, 0xd2,\n\t0xcf, 0x43, 0xd7, 0x13, 0x9b, 0x7b, 0x83, 0x28, 0xc4, 0x48, 0x81, 0x62, 0xf8, 0xf0, 0x1a, 0x6c,\n\t0x78, 0xc4, 0xec, 0x63, 0x6a, 0xa9, 0x67, 0xbd, 0x28, 0xc3, 0x3c, 0x11, 0xcf, 0x2b, 0x8a, 0x2b,\n\t0xee, 0x86, 0xb5, 0xa7, 0xd9, 0x11, 0x5d, 0x3f, 0x27, 0x1e, 0xa3, 0x8c, 0x13, 0x9b, 0x07, 0xd4,\n\t0x49, 0xf8, 0xa0, 0x24, 0xb6, 0x78, 0x02, 0x2c, 0xf1, 0x40, 0x3e, 0x77, 0x39, 0x75, 0x6c, 0x56,\n\t0x5e, 0x8a, 0x9e, 0x80, 0x56, 0x4c, 0x8e, 0x12, 0x56, 0xf0, 0x14, 0xec, 0x88, 0x6e, 0xfd, 0xb3,\n\t0x60, 0x83, 0x93, 0x5b, 0x17, 0xdb, 0xe2, 0xaa, 0xca, 0xcb, 0xf2, 0x2d, 0x2e, 0x8b, 0xe9, 0xe8,\n\t0x30, 0x47, 0x8f, 0x72, 0xbd, 0xe0, 0x67, 0x60, 0x3b, 0x18, 0x8f, 0x0c, 0x6a, 0x77, 0xa9, 0xdd,\n\t0x13, 0xc3, 0x91, 0x1c, 0x0b, 0xd6, 0x8c, 0x27, 0xa2, 0x36, 0x5e, 0xa4, 0x95, 0x77, 0x79, 0x42,\n\t0x94, 0x05, 0x81, 0x5f, 0x82, 0x6d, 0xb9, 0x23, 0xe9, 0xaa, 0xc6, 0x42, 0x09, 0x2b, 0xaf, 0x66,\n\t0x67, 0x1b, 0x71, 0x75, 0x82, 0x48, 0xe3, 0xf6, 0x33, 0x6e, 0x53, 0x17, 0xc4, 0xb3, 0x8c, 0xb7,\n\t0x55, 0xbe, 0xb6, 0x0f, 0xd3, 0x50, 0x28, 0x8b, 0x5e, 0xf9, 0x10, 0x6c, 0xa6, 0x12, 0x0e, 0xb7,\n\t0x40, 0xe1, 0x9a, 0x0c, 0x82, 0xf7, 0x1a, 0x89, 0x9f, 0x70, 0x07, 0x2c, 0xdd, 0xe0, 0xbe, 0x4f,\n\t0x02, 0x06, 0xa2, 0x60, 0xf1, 0xc1, 0xe2, 0x33, 0xad, 0xfe, 0x67, 0x0d, 0x24, 0x1a, 0xdb, 0x1c,\n\t0x8a, 0xbb, 0x95, 0x2c, 0xee, 0xbd, 0x69, 0x89, 0x3d, 0xa1, 0xac, 0x7f, 0xa9, 0x81, 0xf5, 0xf8,\n\t0x14, 0x08, 0xdf, 0x05, 0xab, 0xd8, 0xef, 0x52, 0x62, 0x9b, 0xe3, 0x99, 0x25, 0x8c, 0xe6, 0x50,\n\t0xc9, 0x51, 0x68, 0x21, 0x66, 0x44, 0x72, 0xeb, 0x52, 0x0f, 0x0b, 0xa6, 0xb5, 0x89, 0xe9, 0xd8,\n\t0x5d, 0x26, 0xaf, 0xa9, 0x10, 0x34, 0xca, 0x93, 0xb4, 0x12, 0x65, 0xed, 0xeb, 0xbf, 0x5b, 0x04,\n\t0x5b, 0x01, 0x41, 0x82, 0x4f, 0x04, 0x8b, 0xd8, 0x7c, 0x0e, 0xed, 0x05, 0x25, 0xc6, 0xbe, 0xa7,\n\t0xf7, 0x8f, 0x44, 0x51, 0x74, 0x93, 0xe6, 0x3f, 0xf8, 0x39, 0x58, 0x66, 0x1c, 0x73, 0x9f, 0xc9,\n\t0xe7, 0xaf, 0x74, 0x70, 0x30, 0x13, 0xaa, 0xf4, 0x8c, 0xe6, 0xbf, 0x60, 0x8d, 0x14, 0x62, 0xfd,\n\t0x2f, 0x1a, 0xd8, 0x49, 0xbb, 0xcc, 0x81, 0x70, 0x9f, 0x26, 0x09, 0xf7, 0xee, 0x2c, 0x27, 0x9a,\n\t0x40, 0xba, 0x7f, 0x68, 0xe0, 0xad, 0xcc, 0xe1, 0xe5, 0x3b, 0x2b, 0x7a, 0x95, 0x9b, 0xea, 0x88,\n\t0x67, 0xd1, 0xf8, 0x2c, 0x7b, 0xd5, 0x79, 0x8e, 0x1e, 0xe5, 0x7a, 0xc1, 0x2f, 0xc0, 0x16, 0xb5,\n\t0xfb, 0xd4, 0x26, 0xea, 0x59, 0x8e, 0xd2, 0x9d, 0xdb, 0x50, 0xd2, 0xc8, 0x32, 0xcd, 0x3b, 0x62,\n\t0x7a, 0x69, 0xa6, 0x50, 0x50, 0x06, 0xb7, 0xfe, 0xb7, 0x9c, 0xf4, 0xc8, 0xb1, 0x52, 0x54, 0x94,\n\t0x94, 0x10, 0x2f, 0x53, 0x51, 0x4a, 0x8e, 0x42, 0x0b, 0xc9, 0x20, 0x79, 0x15, 0x2a, 0xd0, 0xd9,\n\t0x18, 0x24, 0x3d, 0x63, 0x0c, 0x92, 0x6b, 0xa4, 0x10, 0x45, 0x24, 0x62, 0x6c, 0x8b, 0x8d, 0x67,\n\t0x61, 0x24, 0x67, 0x4a, 0x8e, 0x42, 0x8b, 0xfa, 0x7f, 0x0b, 0x39, 0x59, 0x92, 0x54, 0x8c, 0x1d,\n\t0x69, 0xfc, 0x85, 0x9f, 0x3e, 0x52, 0x37, 0x3c, 0x52, 0x17, 0xfe, 0x56, 0x03, 0x10, 0x87, 0x10,\n\t0xad, 0x31, 0x55, 0x03, 0x3e, 0x7d, 0x3c, 0x7b, 0x85, 0xe8, 0x87, 0x19, 0xb0, 0xe0, 0xad, 0xae,\n\t0xa8, 0x20, 0x60, 0xd6, 0x00, 0xe5, 0x44, 0x00, 0x29, 0x28, 0x05, 0xd2, 0x13, 0xcf, 0x73, 0x3c,\n\t0x55, 0xb2, 0xef, 0xdc, 0x1f, 0x90, 0x34, 0x37, 0xaa, 0xf2, 0x9b, 0x28, 0xf2, 0xbf, 0x1b, 0xd6,\n\t0x4a, 0x31, 0x3d, 0x8a, 0x63, 0x8b, 0xad, 0xba, 0x24, 0xda, 0xaa, 0xf8, 0x7f, 0x6c, 0x75, 0x4c,\n\t0x26, 0x6f, 0x15, 0xc3, 0xae, 0x9c, 0x80, 0x6f, 0x4d, 0xb8, 0xa0, 0x99, 0xde, 0xb6, 0xd7, 0x8b,\n\t0xe0, 0x51, 0x78, 0xff, 0x1e, 0xed, 0xf8, 0x9c, 0xb0, 0x79, 0x4d, 0x7e, 0x07, 0x00, 0x04, 0x9f,\n\t0x4f, 0x92, 0xaa, 0xc1, 0xe0, 0x17, 0x7a, 0x1c, 0x87, 0x1a, 0x14, 0xb3, 0x82, 0x7e, 0xce, 0xd8,\n\t0x77, 0x38, 0x15, 0xb9, 0xe2, 0x87, 0x9b, 0x75, 0xfe, 0xfb, 0xa6, 0x13, 0xc4, 0xdf, 0x35, 0xf0,\n\t0x76, 0x6e, 0x20, 0x73, 0xe8, 0xec, 0x2f, 0x92, 0x9d, 0x7d, 0x7f, 0xe6, 0xcb, 0x9a, 0xd0, 0xde,\n\t0x7f, 0xa5, 0x81, 0x38, 0x3b, 0xe1, 0x29, 0x28, 0x72, 0xaa, 0x7a, 0x78, 0xe9, 0xe0, 0xc9, 0x74,\n\t0x27, 0xb8, 0xa0, 0x16, 0x89, 0x9e, 0x58, 0xb1, 0x42, 0x12, 0x05, 0x3e, 0x06, 0x2b, 0x16, 0x61,\n\t0x0c, 0xf7, 0xc6, 0xc4, 0x08, 0x3f, 0xbd, 0x5b, 0x81, 0x18, 0x8d, 0xf5, 0xf5, 0xf7, 0xc1, 0xc3,\n\t0x9c, 0x3f, 0x33, 0x60, 0x0d, 0x2c, 0x99, 0xf2, 0xcf, 0x28, 0x11, 0xd0, 0x92, 0xb1, 0x26, 0x0e,\n\t0x70, 0x24, 0xff, 0x85, 0x0a, 0xe4, 0xc6, 0x0f, 0x5f, 0xbe, 0xaa, 0x2e, 0x7c, 0xf5, 0xaa, 0xba,\n\t0xf0, 0xf5, 0xab, 0xea, 0xc2, 0x2f, 0x46, 0x55, 0xed, 0xe5, 0xa8, 0xaa, 0x7d, 0x35, 0xaa, 0x6a,\n\t0x5f, 0x8f, 0xaa, 0xda, 0xbf, 0x46, 0x55, 0xed, 0xd7, 0xaf, 0xab, 0x0b, 0x9f, 0x57, 0x26, 0xff,\n\t0xcf, 0xff, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x3a, 0x30, 0xdb, 0x24, 0x04, 0x18, 0x00, 0x00,\n}\n\nfunc (m *CSIDriver) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSIDriver) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSIDriver) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CSIDriverList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSIDriverList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSIDriverList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CSIDriverSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSIDriverSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSIDriverSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.SELinuxMount != nil {\n\t\ti--\n\t\tif *m.SELinuxMount {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x40\n\t}\n\tif m.RequiresRepublish != nil {\n\t\ti--\n\t\tif *m.RequiresRepublish {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x38\n\t}\n\tif len(m.TokenRequests) > 0 {\n\t\tfor iNdEx := len(m.TokenRequests) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.TokenRequests[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x32\n\t\t}\n\t}\n\tif m.FSGroupPolicy != nil {\n\t\ti -= len(*m.FSGroupPolicy)\n\t\tcopy(dAtA[i:], *m.FSGroupPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.FSGroupPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.StorageCapacity != nil {\n\t\ti--\n\t\tif *m.StorageCapacity {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\tif len(m.VolumeLifecycleModes) > 0 {\n\t\tfor iNdEx := len(m.VolumeLifecycleModes) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.VolumeLifecycleModes[iNdEx])\n\t\t\tcopy(dAtA[i:], m.VolumeLifecycleModes[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.VolumeLifecycleModes[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\tif m.PodInfoOnMount != nil {\n\t\ti--\n\t\tif *m.PodInfoOnMount {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif m.AttachRequired != nil {\n\t\ti--\n\t\tif *m.AttachRequired {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CSINode) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSINode) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSINode) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CSINodeDriver) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSINodeDriver) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSINodeDriver) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Allocatable != nil {\n\t\t{\n\t\t\tsize, err := m.Allocatable.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif len(m.TopologyKeys) > 0 {\n\t\tfor iNdEx := len(m.TopologyKeys) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.TopologyKeys[iNdEx])\n\t\t\tcopy(dAtA[i:], m.TopologyKeys[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.TopologyKeys[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\ti -= len(m.NodeID)\n\tcopy(dAtA[i:], m.NodeID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.NodeID)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CSINodeList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSINodeList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSINodeList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CSINodeSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSINodeSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSINodeSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Drivers) > 0 {\n\t\tfor iNdEx := len(m.Drivers) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Drivers[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CSIStorageCapacity) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSIStorageCapacity) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSIStorageCapacity) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.MaximumVolumeSize != nil {\n\t\t{\n\t\t\tsize, err := m.MaximumVolumeSize.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\tif m.Capacity != nil {\n\t\t{\n\t\t\tsize, err := m.Capacity.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\ti -= len(m.StorageClassName)\n\tcopy(dAtA[i:], m.StorageClassName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.StorageClassName)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.NodeTopology != nil {\n\t\t{\n\t\t\tsize, err := m.NodeTopology.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CSIStorageCapacityList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CSIStorageCapacityList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CSIStorageCapacityList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StorageClass) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StorageClass) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StorageClass) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.AllowedTopologies) > 0 {\n\t\tfor iNdEx := len(m.AllowedTopologies) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.AllowedTopologies[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x42\n\t\t}\n\t}\n\tif m.VolumeBindingMode != nil {\n\t\ti -= len(*m.VolumeBindingMode)\n\t\tcopy(dAtA[i:], *m.VolumeBindingMode)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.VolumeBindingMode)))\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\tif m.AllowVolumeExpansion != nil {\n\t\ti--\n\t\tif *m.AllowVolumeExpansion {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x30\n\t}\n\tif len(m.MountOptions) > 0 {\n\t\tfor iNdEx := len(m.MountOptions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.MountOptions[iNdEx])\n\t\t\tcopy(dAtA[i:], m.MountOptions[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.MountOptions[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\tif m.ReclaimPolicy != nil {\n\t\ti -= len(*m.ReclaimPolicy)\n\t\tcopy(dAtA[i:], *m.ReclaimPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.ReclaimPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif len(m.Parameters) > 0 {\n\t\tkeysForParameters := make([]string, 0, len(m.Parameters))\n\t\tfor k := range m.Parameters {\n\t\t\tkeysForParameters = append(keysForParameters, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForParameters)\n\t\tfor iNdEx := len(keysForParameters) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Parameters[string(keysForParameters[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForParameters[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForParameters[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForParameters[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\ti -= len(m.Provisioner)\n\tcopy(dAtA[i:], m.Provisioner)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Provisioner)))\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StorageClassList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StorageClassList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StorageClassList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TokenRequest) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TokenRequest) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TokenRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ExpirationSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.ExpirationSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\ti -= len(m.Audience)\n\tcopy(dAtA[i:], m.Audience)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Audience)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeAttachment) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeAttachment) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeAttachment) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeAttachmentList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeAttachmentList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeAttachmentList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeAttachmentSource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeAttachmentSource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeAttachmentSource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.InlineVolumeSpec != nil {\n\t\t{\n\t\t\tsize, err := m.InlineVolumeSpec.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.PersistentVolumeName != nil {\n\t\ti -= len(*m.PersistentVolumeName)\n\t\tcopy(dAtA[i:], *m.PersistentVolumeName)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.PersistentVolumeName)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeAttachmentSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeAttachmentSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeAttachmentSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.NodeName)\n\tcopy(dAtA[i:], m.NodeName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.NodeName)))\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Source.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Attacher)\n\tcopy(dAtA[i:], m.Attacher)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Attacher)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeAttachmentStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeAttachmentStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeAttachmentStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.DetachError != nil {\n\t\t{\n\t\t\tsize, err := m.DetachError.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.AttachError != nil {\n\t\t{\n\t\t\tsize, err := m.AttachError.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x1a\n\t}\n\tif len(m.AttachmentMetadata) > 0 {\n\t\tkeysForAttachmentMetadata := make([]string, 0, len(m.AttachmentMetadata))\n\t\tfor k := range m.AttachmentMetadata {\n\t\t\tkeysForAttachmentMetadata = append(keysForAttachmentMetadata, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAttachmentMetadata)\n\t\tfor iNdEx := len(keysForAttachmentMetadata) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.AttachmentMetadata[string(keysForAttachmentMetadata[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForAttachmentMetadata[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForAttachmentMetadata[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForAttachmentMetadata[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti--\n\tif m.Attached {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeAttributesClass) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeAttributesClass) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeAttributesClass) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Parameters) > 0 {\n\t\tkeysForParameters := make([]string, 0, len(m.Parameters))\n\t\tfor k := range m.Parameters {\n\t\t\tkeysForParameters = append(keysForParameters, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForParameters)\n\t\tfor iNdEx := len(keysForParameters) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Parameters[string(keysForParameters[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForParameters[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForParameters[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForParameters[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\ti -= len(m.DriverName)\n\tcopy(dAtA[i:], m.DriverName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.DriverName)))\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeAttributesClassList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeAttributesClassList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeAttributesClassList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeError) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeError) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeError) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.Time.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *VolumeNodeResources) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *VolumeNodeResources) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *VolumeNodeResources) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Count != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.Count))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *CSIDriver) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *CSIDriverList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *CSIDriverSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.AttachRequired != nil {\n\t\tn += 2\n\t}\n\tif m.PodInfoOnMount != nil {\n\t\tn += 2\n\t}\n\tif len(m.VolumeLifecycleModes) > 0 {\n\t\tfor _, s := range m.VolumeLifecycleModes {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.StorageCapacity != nil {\n\t\tn += 2\n\t}\n\tif m.FSGroupPolicy != nil {\n\t\tl = len(*m.FSGroupPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.TokenRequests) > 0 {\n\t\tfor _, e := range m.TokenRequests {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.RequiresRepublish != nil {\n\t\tn += 2\n\t}\n\tif m.SELinuxMount != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *CSINode) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *CSINodeDriver) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.NodeID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.TopologyKeys) > 0 {\n\t\tfor _, s := range m.TopologyKeys {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.Allocatable != nil {\n\t\tl = m.Allocatable.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *CSINodeList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *CSINodeSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Drivers) > 0 {\n\t\tfor _, e := range m.Drivers {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *CSIStorageCapacity) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.NodeTopology != nil {\n\t\tl = m.NodeTopology.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.StorageClassName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Capacity != nil {\n\t\tl = m.Capacity.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.MaximumVolumeSize != nil {\n\t\tl = m.MaximumVolumeSize.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *CSIStorageCapacityList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *StorageClass) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Provisioner)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Parameters) > 0 {\n\t\tfor k, v := range m.Parameters {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif m.ReclaimPolicy != nil {\n\t\tl = len(*m.ReclaimPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.MountOptions) > 0 {\n\t\tfor _, s := range m.MountOptions {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.AllowVolumeExpansion != nil {\n\t\tn += 2\n\t}\n\tif m.VolumeBindingMode != nil {\n\t\tl = len(*m.VolumeBindingMode)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.AllowedTopologies) > 0 {\n\t\tfor _, e := range m.AllowedTopologies {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *StorageClassList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *TokenRequest) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Audience)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.ExpirationSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.ExpirationSeconds))\n\t}\n\treturn n\n}\n\nfunc (m *VolumeAttachment) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *VolumeAttachmentList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *VolumeAttachmentSource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.PersistentVolumeName != nil {\n\t\tl = len(*m.PersistentVolumeName)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.InlineVolumeSpec != nil {\n\t\tl = m.InlineVolumeSpec.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *VolumeAttachmentSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Attacher)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Source.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.NodeName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *VolumeAttachmentStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 2\n\tif len(m.AttachmentMetadata) > 0 {\n\t\tfor k, v := range m.AttachmentMetadata {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif m.AttachError != nil {\n\t\tl = m.AttachError.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.DetachError != nil {\n\t\tl = m.DetachError.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *VolumeAttributesClass) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.DriverName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Parameters) > 0 {\n\t\tfor k, v := range m.Parameters {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *VolumeAttributesClassList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *VolumeError) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Time.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *VolumeNodeResources) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Count != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.Count))\n\t}\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *CSIDriver) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CSIDriver{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"CSIDriverSpec\", \"CSIDriverSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CSIDriverList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]CSIDriver{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"CSIDriver\", \"CSIDriver\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&CSIDriverList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CSIDriverSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForTokenRequests := \"[]TokenRequest{\"\n\tfor _, f := range this.TokenRequests {\n\t\trepeatedStringForTokenRequests += strings.Replace(strings.Replace(f.String(), \"TokenRequest\", \"TokenRequest\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForTokenRequests += \"}\"\n\ts := strings.Join([]string{`&CSIDriverSpec{`,\n\t\t`AttachRequired:` + valueToStringGenerated(this.AttachRequired) + `,`,\n\t\t`PodInfoOnMount:` + valueToStringGenerated(this.PodInfoOnMount) + `,`,\n\t\t`VolumeLifecycleModes:` + fmt.Sprintf(\"%v\", this.VolumeLifecycleModes) + `,`,\n\t\t`StorageCapacity:` + valueToStringGenerated(this.StorageCapacity) + `,`,\n\t\t`FSGroupPolicy:` + valueToStringGenerated(this.FSGroupPolicy) + `,`,\n\t\t`TokenRequests:` + repeatedStringForTokenRequests + `,`,\n\t\t`RequiresRepublish:` + valueToStringGenerated(this.RequiresRepublish) + `,`,\n\t\t`SELinuxMount:` + valueToStringGenerated(this.SELinuxMount) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CSINode) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CSINode{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"CSINodeSpec\", \"CSINodeSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CSINodeDriver) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CSINodeDriver{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`NodeID:` + fmt.Sprintf(\"%v\", this.NodeID) + `,`,\n\t\t`TopologyKeys:` + fmt.Sprintf(\"%v\", this.TopologyKeys) + `,`,\n\t\t`Allocatable:` + strings.Replace(this.Allocatable.String(), \"VolumeNodeResources\", \"VolumeNodeResources\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CSINodeList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]CSINode{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"CSINode\", \"CSINode\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&CSINodeList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CSINodeSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForDrivers := \"[]CSINodeDriver{\"\n\tfor _, f := range this.Drivers {\n\t\trepeatedStringForDrivers += strings.Replace(strings.Replace(f.String(), \"CSINodeDriver\", \"CSINodeDriver\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForDrivers += \"}\"\n\ts := strings.Join([]string{`&CSINodeSpec{`,\n\t\t`Drivers:` + repeatedStringForDrivers + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CSIStorageCapacity) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CSIStorageCapacity{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`NodeTopology:` + strings.Replace(fmt.Sprintf(\"%v\", this.NodeTopology), \"LabelSelector\", \"v1.LabelSelector\", 1) + `,`,\n\t\t`StorageClassName:` + fmt.Sprintf(\"%v\", this.StorageClassName) + `,`,\n\t\t`Capacity:` + strings.Replace(fmt.Sprintf(\"%v\", this.Capacity), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`MaximumVolumeSize:` + strings.Replace(fmt.Sprintf(\"%v\", this.MaximumVolumeSize), \"Quantity\", \"resource.Quantity\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CSIStorageCapacityList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]CSIStorageCapacity{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"CSIStorageCapacity\", \"CSIStorageCapacity\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&CSIStorageCapacityList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StorageClass) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForAllowedTopologies := \"[]TopologySelectorTerm{\"\n\tfor _, f := range this.AllowedTopologies {\n\t\trepeatedStringForAllowedTopologies += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForAllowedTopologies += \"}\"\n\tkeysForParameters := make([]string, 0, len(this.Parameters))\n\tfor k := range this.Parameters {\n\t\tkeysForParameters = append(keysForParameters, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForParameters)\n\tmapStringForParameters := \"map[string]string{\"\n\tfor _, k := range keysForParameters {\n\t\tmapStringForParameters += fmt.Sprintf(\"%v: %v,\", k, this.Parameters[k])\n\t}\n\tmapStringForParameters += \"}\"\n\ts := strings.Join([]string{`&StorageClass{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Provisioner:` + fmt.Sprintf(\"%v\", this.Provisioner) + `,`,\n\t\t`Parameters:` + mapStringForParameters + `,`,\n\t\t`ReclaimPolicy:` + valueToStringGenerated(this.ReclaimPolicy) + `,`,\n\t\t`MountOptions:` + fmt.Sprintf(\"%v\", this.MountOptions) + `,`,\n\t\t`AllowVolumeExpansion:` + valueToStringGenerated(this.AllowVolumeExpansion) + `,`,\n\t\t`VolumeBindingMode:` + valueToStringGenerated(this.VolumeBindingMode) + `,`,\n\t\t`AllowedTopologies:` + repeatedStringForAllowedTopologies + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StorageClassList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]StorageClass{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"StorageClass\", \"StorageClass\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&StorageClassList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TokenRequest) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&TokenRequest{`,\n\t\t`Audience:` + fmt.Sprintf(\"%v\", this.Audience) + `,`,\n\t\t`ExpirationSeconds:` + valueToStringGenerated(this.ExpirationSeconds) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeAttachment) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&VolumeAttachment{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"VolumeAttachmentSpec\", \"VolumeAttachmentSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"VolumeAttachmentStatus\", \"VolumeAttachmentStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeAttachmentList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]VolumeAttachment{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"VolumeAttachment\", \"VolumeAttachment\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&VolumeAttachmentList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeAttachmentSource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&VolumeAttachmentSource{`,\n\t\t`PersistentVolumeName:` + valueToStringGenerated(this.PersistentVolumeName) + `,`,\n\t\t`InlineVolumeSpec:` + strings.Replace(fmt.Sprintf(\"%v\", this.InlineVolumeSpec), \"PersistentVolumeSpec\", \"v11.PersistentVolumeSpec\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeAttachmentSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&VolumeAttachmentSpec{`,\n\t\t`Attacher:` + fmt.Sprintf(\"%v\", this.Attacher) + `,`,\n\t\t`Source:` + strings.Replace(strings.Replace(this.Source.String(), \"VolumeAttachmentSource\", \"VolumeAttachmentSource\", 1), `&`, ``, 1) + `,`,\n\t\t`NodeName:` + fmt.Sprintf(\"%v\", this.NodeName) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeAttachmentStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForAttachmentMetadata := make([]string, 0, len(this.AttachmentMetadata))\n\tfor k := range this.AttachmentMetadata {\n\t\tkeysForAttachmentMetadata = append(keysForAttachmentMetadata, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAttachmentMetadata)\n\tmapStringForAttachmentMetadata := \"map[string]string{\"\n\tfor _, k := range keysForAttachmentMetadata {\n\t\tmapStringForAttachmentMetadata += fmt.Sprintf(\"%v: %v,\", k, this.AttachmentMetadata[k])\n\t}\n\tmapStringForAttachmentMetadata += \"}\"\n\ts := strings.Join([]string{`&VolumeAttachmentStatus{`,\n\t\t`Attached:` + fmt.Sprintf(\"%v\", this.Attached) + `,`,\n\t\t`AttachmentMetadata:` + mapStringForAttachmentMetadata + `,`,\n\t\t`AttachError:` + strings.Replace(this.AttachError.String(), \"VolumeError\", \"VolumeError\", 1) + `,`,\n\t\t`DetachError:` + strings.Replace(this.DetachError.String(), \"VolumeError\", \"VolumeError\", 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeAttributesClass) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\tkeysForParameters := make([]string, 0, len(this.Parameters))\n\tfor k := range this.Parameters {\n\t\tkeysForParameters = append(keysForParameters, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForParameters)\n\tmapStringForParameters := \"map[string]string{\"\n\tfor _, k := range keysForParameters {\n\t\tmapStringForParameters += fmt.Sprintf(\"%v: %v,\", k, this.Parameters[k])\n\t}\n\tmapStringForParameters += \"}\"\n\ts := strings.Join([]string{`&VolumeAttributesClass{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`DriverName:` + fmt.Sprintf(\"%v\", this.DriverName) + `,`,\n\t\t`Parameters:` + mapStringForParameters + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeAttributesClassList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]VolumeAttributesClass{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"VolumeAttributesClass\", \"VolumeAttributesClass\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&VolumeAttributesClassList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeError) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&VolumeError{`,\n\t\t`Time:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Time), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *VolumeNodeResources) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&VolumeNodeResources{`,\n\t\t`Count:` + valueToStringGenerated(this.Count) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *CSIDriver) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSIDriver: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSIDriver: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CSIDriverList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSIDriverList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSIDriverList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, CSIDriver{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CSIDriverSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSIDriverSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSIDriverSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AttachRequired\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.AttachRequired = &b\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PodInfoOnMount\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.PodInfoOnMount = &b\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeLifecycleModes\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.VolumeLifecycleModes = append(m.VolumeLifecycleModes, VolumeLifecycleMode(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StorageCapacity\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.StorageCapacity = &b\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FSGroupPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := FSGroupPolicy(dAtA[iNdEx:postIndex])\n\t\t\tm.FSGroupPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TokenRequests\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TokenRequests = append(m.TokenRequests, TokenRequest{})\n\t\t\tif err := m.TokenRequests[len(m.TokenRequests)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RequiresRepublish\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.RequiresRepublish = &b\n\t\tcase 8:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SELinuxMount\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.SELinuxMount = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CSINode) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSINode: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSINode: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CSINodeDriver) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSINodeDriver: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSINodeDriver: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NodeID = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TopologyKeys\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.TopologyKeys = append(m.TopologyKeys, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Allocatable\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Allocatable == nil {\n\t\t\t\tm.Allocatable = &VolumeNodeResources{}\n\t\t\t}\n\t\t\tif err := m.Allocatable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CSINodeList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSINodeList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSINodeList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, CSINode{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CSINodeSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSINodeSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSINodeSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Drivers\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Drivers = append(m.Drivers, CSINodeDriver{})\n\t\t\tif err := m.Drivers[len(m.Drivers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CSIStorageCapacity) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSIStorageCapacity: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSIStorageCapacity: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeTopology\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.NodeTopology == nil {\n\t\t\t\tm.NodeTopology = &v1.LabelSelector{}\n\t\t\t}\n\t\t\tif err := m.NodeTopology.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StorageClassName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.StorageClassName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Capacity\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Capacity == nil {\n\t\t\t\tm.Capacity = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.Capacity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MaximumVolumeSize\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MaximumVolumeSize == nil {\n\t\t\t\tm.MaximumVolumeSize = &resource.Quantity{}\n\t\t\t}\n\t\t\tif err := m.MaximumVolumeSize.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CSIStorageCapacityList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CSIStorageCapacityList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CSIStorageCapacityList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, CSIStorageCapacity{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StorageClass) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StorageClass: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StorageClass: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Provisioner\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Provisioner = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Parameters\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Parameters == nil {\n\t\t\t\tm.Parameters = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Parameters[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ReclaimPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := k8s_io_api_core_v1.PersistentVolumeReclaimPolicy(dAtA[iNdEx:postIndex])\n\t\t\tm.ReclaimPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MountOptions\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MountOptions = append(m.MountOptions, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AllowVolumeExpansion\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.AllowVolumeExpansion = &b\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field VolumeBindingMode\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := VolumeBindingMode(dAtA[iNdEx:postIndex])\n\t\t\tm.VolumeBindingMode = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AllowedTopologies\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.AllowedTopologies = append(m.AllowedTopologies, v11.TopologySelectorTerm{})\n\t\t\tif err := m.AllowedTopologies[len(m.AllowedTopologies)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StorageClassList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StorageClassList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StorageClassList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, StorageClass{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TokenRequest) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TokenRequest: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TokenRequest: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Audience\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Audience = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ExpirationSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.ExpirationSeconds = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeAttachment) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachment: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachment: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeAttachmentList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, VolumeAttachment{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeAttachmentSource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentSource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentSource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PersistentVolumeName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.PersistentVolumeName = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field InlineVolumeSpec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.InlineVolumeSpec == nil {\n\t\t\t\tm.InlineVolumeSpec = &v11.PersistentVolumeSpec{}\n\t\t\t}\n\t\t\tif err := m.InlineVolumeSpec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeAttachmentSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Attacher\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Attacher = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Source\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Source.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field NodeName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.NodeName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeAttachmentStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttachmentStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Attached\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Attached = bool(v != 0)\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AttachmentMetadata\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AttachmentMetadata == nil {\n\t\t\t\tm.AttachmentMetadata = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.AttachmentMetadata[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AttachError\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.AttachError == nil {\n\t\t\t\tm.AttachError = &VolumeError{}\n\t\t\t}\n\t\t\tif err := m.AttachError.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DetachError\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.DetachError == nil {\n\t\t\t\tm.DetachError = &VolumeError{}\n\t\t\t}\n\t\t\tif err := m.DetachError.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeAttributesClass) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttributesClass: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttributesClass: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DriverName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.DriverName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Parameters\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Parameters == nil {\n\t\t\t\tm.Parameters = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Parameters[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeAttributesClassList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttributesClassList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeAttributesClassList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, VolumeAttributesClass{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeError) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeError: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeError: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Time\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Time.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *VolumeNodeResources) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeNodeResources: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: VolumeNodeResources: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Count\", wireType)\n\t\t\t}\n\t\t\tvar v int32\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Count = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1beta1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.storage.v1beta1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/api/resource/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/storage/v1beta1\";\n\n// CSIDriver captures information about a Container Storage Interface (CSI)\n// volume driver deployed on the cluster.\n// CSI drivers do not need to create the CSIDriver object directly. Instead they may use the\n// cluster-driver-registrar sidecar container. When deployed with a CSI driver it automatically\n// creates a CSIDriver object representing the driver.\n// Kubernetes attach detach controller uses this object to determine whether attach is required.\n// Kubelet uses this object to determine whether pod information needs to be passed on mount.\n// CSIDriver objects are non-namespaced.\nmessage CSIDriver {\n  // Standard object metadata.\n  // metadata.Name indicates the name of the CSI driver that this object\n  // refers to; it MUST be the same name returned by the CSI GetPluginName()\n  // call for that driver.\n  // The driver name must be 63 characters or less, beginning and ending with\n  // an alphanumeric character ([a-z0-9A-Z]) with dashes (-), dots (.), and\n  // alphanumerics between.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec represents the specification of the CSI Driver.\n  optional CSIDriverSpec spec = 2;\n}\n\n// CSIDriverList is a collection of CSIDriver objects.\nmessage CSIDriverList {\n  // Standard list metadata\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of CSIDriver\n  repeated CSIDriver items = 2;\n}\n\n// CSIDriverSpec is the specification of a CSIDriver.\nmessage CSIDriverSpec {\n  // attachRequired indicates this CSI volume driver requires an attach\n  // operation (because it implements the CSI ControllerPublishVolume()\n  // method), and that the Kubernetes attach detach controller should call\n  // the attach volume interface which checks the volumeattachment status\n  // and waits until the volume is attached before proceeding to mounting.\n  // The CSI external-attacher coordinates with CSI volume driver and updates\n  // the volumeattachment status when the attach operation is complete.\n  // If the CSIDriverRegistry feature gate is enabled and the value is\n  // specified to false, the attach operation will be skipped.\n  // Otherwise the attach operation will be called.\n  //\n  // This field is immutable.\n  //\n  // +optional\n  optional bool attachRequired = 1;\n\n  // podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.)\n  // during mount operations, if set to true.\n  // If set to false, pod information will not be passed on mount.\n  // Default is false.\n  //\n  // The CSI driver specifies podInfoOnMount as part of driver deployment.\n  // If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls.\n  // The CSI driver is responsible for parsing and validating the information passed in as VolumeContext.\n  //\n  // The following VolumeContext will be passed if podInfoOnMount is set to true.\n  // This list might grow, but the prefix will be used.\n  // \"csi.storage.k8s.io/pod.name\": pod.Name\n  // \"csi.storage.k8s.io/pod.namespace\": pod.Namespace\n  // \"csi.storage.k8s.io/pod.uid\": string(pod.UID)\n  // \"csi.storage.k8s.io/ephemeral\": \"true\" if the volume is an ephemeral inline volume\n  //                                 defined by a CSIVolumeSource, otherwise \"false\"\n  //\n  // \"csi.storage.k8s.io/ephemeral\" is a new feature in Kubernetes 1.16. It is only\n  // required for drivers which support both the \"Persistent\" and \"Ephemeral\" VolumeLifecycleMode.\n  // Other drivers can leave pod info disabled and/or ignore this field.\n  // As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when\n  // deployed on such a cluster and the deployment determines which mode that is, for example\n  // via a command line parameter of the driver.\n  //\n  // This field is immutable.\n  //\n  // +optional\n  optional bool podInfoOnMount = 2;\n\n  // volumeLifecycleModes defines what kind of volumes this CSI volume driver supports.\n  // The default if the list is empty is \"Persistent\", which is the usage defined by the\n  // CSI specification and implemented in Kubernetes via the usual PV/PVC mechanism.\n  //\n  // The other mode is \"Ephemeral\". In this mode, volumes are defined inline inside the pod spec\n  // with CSIVolumeSource and their lifecycle is tied to the lifecycle of that pod.\n  // A driver has to be aware of this because it is only going to get a NodePublishVolume call for such a volume.\n  //\n  // For more information about implementing this mode, see\n  // https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html\n  // A driver can support one or more of these modes and\n  // more modes may be added in the future.\n  //\n  // This field is immutable.\n  //\n  // +optional\n  // +listType=atomic\n  repeated string volumeLifecycleModes = 3;\n\n  // storageCapacity indicates that the CSI volume driver wants pod scheduling to consider the storage\n  // capacity that the driver deployment will report by creating\n  // CSIStorageCapacity objects with capacity information, if set to true.\n  //\n  // The check can be enabled immediately when deploying a driver.\n  // In that case, provisioning new volumes with late binding\n  // will pause until the driver deployment has published\n  // some suitable CSIStorageCapacity object.\n  //\n  // Alternatively, the driver can be deployed with the field\n  // unset or false and it can be flipped later when storage\n  // capacity information has been published.\n  //\n  // This field was immutable in Kubernetes <= 1.22 and now is mutable.\n  //\n  // +optional\n  optional bool storageCapacity = 4;\n\n  // fsGroupPolicy defines if the underlying volume supports changing ownership and\n  // permission of the volume before being mounted.\n  // Refer to the specific FSGroupPolicy values for additional details.\n  //\n  // This field is immutable.\n  //\n  // Defaults to ReadWriteOnceWithFSType, which will examine each volume\n  // to determine if Kubernetes should modify ownership and permissions of the volume.\n  // With the default policy the defined fsGroup will only be applied\n  // if a fstype is defined and the volume's access mode contains ReadWriteOnce.\n  //\n  // +optional\n  optional string fsGroupPolicy = 5;\n\n  // tokenRequests indicates the CSI driver needs pods' service account\n  // tokens it is mounting volume for to do necessary authentication. Kubelet\n  // will pass the tokens in VolumeContext in the CSI NodePublishVolume calls.\n  // The CSI driver should parse and validate the following VolumeContext:\n  // \"csi.storage.k8s.io/serviceAccount.tokens\": {\n  //   \"<audience>\": {\n  //     \"token\": <token>,\n  //     \"expirationTimestamp\": <expiration timestamp in RFC3339>,\n  //   },\n  //   ...\n  // }\n  //\n  // Note: Audience in each TokenRequest should be different and at\n  // most one token is empty string. To receive a new token after expiry,\n  // RequiresRepublish can be used to trigger NodePublishVolume periodically.\n  //\n  // +optional\n  // +listType=atomic\n  repeated TokenRequest tokenRequests = 6;\n\n  // requiresRepublish indicates the CSI driver wants `NodePublishVolume`\n  // being periodically called to reflect any possible change in the mounted\n  // volume. This field defaults to false.\n  //\n  // Note: After a successful initial NodePublishVolume call, subsequent calls\n  // to NodePublishVolume should only update the contents of the volume. New\n  // mount points will not be seen by a running container.\n  //\n  // +optional\n  optional bool requiresRepublish = 7;\n\n  // seLinuxMount specifies if the CSI driver supports \"-o context\"\n  // mount option.\n  //\n  // When \"true\", the CSI driver must ensure that all volumes provided by this CSI\n  // driver can be mounted separately with different `-o context` options. This is\n  // typical for storage backends that provide volumes as filesystems on block\n  // devices or as independent shared volumes.\n  // Kubernetes will call NodeStage / NodePublish with \"-o context=xyz\" mount\n  // option when mounting a ReadWriteOncePod volume used in Pod that has\n  // explicitly set SELinux context. In the future, it may be expanded to other\n  // volume AccessModes. In any case, Kubernetes will ensure that the volume is\n  // mounted only with a single SELinux context.\n  //\n  // When \"false\", Kubernetes won't pass any special SELinux mount options to the driver.\n  // This is typical for volumes that represent subdirectories of a bigger shared filesystem.\n  //\n  // Default is \"false\".\n  //\n  // +featureGate=SELinuxMountReadWriteOncePod\n  // +optional\n  optional bool seLinuxMount = 8;\n}\n\n// DEPRECATED - This group version of CSINode is deprecated by storage/v1/CSINode.\n// See the release notes for more information.\n// CSINode holds information about all CSI drivers installed on a node.\n// CSI drivers do not need to create the CSINode object directly. As long as\n// they use the node-driver-registrar sidecar container, the kubelet will\n// automatically populate the CSINode object for the CSI driver as part of\n// kubelet plugin registration.\n// CSINode has the same name as a node. If the object is missing, it means either\n// there are no CSI Drivers available on the node, or the Kubelet version is low\n// enough that it doesn't create this object.\n// CSINode has an OwnerReference that points to the corresponding node object.\nmessage CSINode {\n  // metadata.name must be the Kubernetes node name.\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec is the specification of CSINode\n  optional CSINodeSpec spec = 2;\n}\n\n// CSINodeDriver holds information about the specification of one CSI driver installed on a node\nmessage CSINodeDriver {\n  // name represents the name of the CSI driver that this object refers to.\n  // This MUST be the same name returned by the CSI GetPluginName() call for\n  // that driver.\n  optional string name = 1;\n\n  // nodeID of the node from the driver point of view.\n  // This field enables Kubernetes to communicate with storage systems that do\n  // not share the same nomenclature for nodes. For example, Kubernetes may\n  // refer to a given node as \"node1\", but the storage system may refer to\n  // the same node as \"nodeA\". When Kubernetes issues a command to the storage\n  // system to attach a volume to a specific node, it can use this field to\n  // refer to the node name using the ID that the storage system will\n  // understand, e.g. \"nodeA\" instead of \"node1\". This field is required.\n  optional string nodeID = 2;\n\n  // topologyKeys is the list of keys supported by the driver.\n  // When a driver is initialized on a cluster, it provides a set of topology\n  // keys that it understands (e.g. \"company.com/zone\", \"company.com/region\").\n  // When a driver is initialized on a node, it provides the same topology keys\n  // along with values. Kubelet will expose these topology keys as labels\n  // on its own node object.\n  // When Kubernetes does topology aware provisioning, it can use this list to\n  // determine which labels it should retrieve from the node object and pass\n  // back to the driver.\n  // It is possible for different nodes to use different topology keys.\n  // This can be empty if driver does not support topology.\n  // +optional\n  // +listType=atomic\n  repeated string topologyKeys = 3;\n\n  // allocatable represents the volume resources of a node that are available for scheduling.\n  // +optional\n  optional VolumeNodeResources allocatable = 4;\n}\n\n// CSINodeList is a collection of CSINode objects.\nmessage CSINodeList {\n  // Standard list metadata\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of CSINode\n  repeated CSINode items = 2;\n}\n\n// CSINodeSpec holds information about the specification of all CSI drivers installed on a node\nmessage CSINodeSpec {\n  // drivers is a list of information of all CSI Drivers existing on a node.\n  // If all drivers in the list are uninstalled, this can become empty.\n  // +patchMergeKey=name\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=name\n  repeated CSINodeDriver drivers = 1;\n}\n\n// CSIStorageCapacity stores the result of one CSI GetCapacity call.\n// For a given StorageClass, this describes the available capacity in a\n// particular topology segment.  This can be used when considering where to\n// instantiate new PersistentVolumes.\n//\n// For example this can express things like:\n// - StorageClass \"standard\" has \"1234 GiB\" available in \"topology.kubernetes.io/zone=us-east1\"\n// - StorageClass \"localssd\" has \"10 GiB\" available in \"kubernetes.io/hostname=knode-abc123\"\n//\n// The following three cases all imply that no capacity is available for\n// a certain combination:\n// - no object exists with suitable topology and storage class name\n// - such an object exists, but the capacity is unset\n// - such an object exists, but the capacity is zero\n//\n// The producer of these objects can decide which approach is more suitable.\n//\n// They are consumed by the kube-scheduler when a CSI driver opts into\n// capacity-aware scheduling with CSIDriverSpec.StorageCapacity. The scheduler\n// compares the MaximumVolumeSize against the requested size of pending volumes\n// to filter out unsuitable nodes. If MaximumVolumeSize is unset, it falls back\n// to a comparison against the less precise Capacity. If that is also unset,\n// the scheduler assumes that capacity is insufficient and tries some other\n// node.\nmessage CSIStorageCapacity {\n  // Standard object's metadata. The name has no particular meaning. It must be\n  // be a DNS subdomain (dots allowed, 253 characters). To ensure that\n  // there are no conflicts with other CSI drivers on the cluster, the recommendation\n  // is to use csisc-<uuid>, a generated name, or a reverse-domain name which ends\n  // with the unique CSI driver name.\n  //\n  // Objects are namespaced.\n  //\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // nodeTopology defines which nodes have access to the storage\n  // for which capacity was reported. If not set, the storage is\n  // not accessible from any node in the cluster. If empty, the\n  // storage is accessible from all nodes. This field is\n  // immutable.\n  //\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector nodeTopology = 2;\n\n  // storageClassName represents the name of the StorageClass that the reported capacity applies to.\n  // It must meet the same requirements as the name of a StorageClass\n  // object (non-empty, DNS subdomain). If that object no longer exists,\n  // the CSIStorageCapacity object is obsolete and should be removed by its\n  // creator.\n  // This field is immutable.\n  optional string storageClassName = 3;\n\n  // capacity is the value reported by the CSI driver in its GetCapacityResponse\n  // for a GetCapacityRequest with topology and parameters that match the\n  // previous fields.\n  //\n  // The semantic is currently (CSI spec 1.2) defined as:\n  // The available capacity, in bytes, of the storage that can be used\n  // to provision volumes. If not set, that information is currently\n  // unavailable.\n  //\n  // +optional\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity capacity = 4;\n\n  // maximumVolumeSize is the value reported by the CSI driver in its GetCapacityResponse\n  // for a GetCapacityRequest with topology and parameters that match the\n  // previous fields.\n  //\n  // This is defined since CSI spec 1.4.0 as the largest size\n  // that may be used in a\n  // CreateVolumeRequest.capacity_range.required_bytes field to\n  // create a volume with the same parameters as those in\n  // GetCapacityRequest. The corresponding value in the Kubernetes\n  // API is ResourceRequirements.Requests in a volume claim.\n  //\n  // +optional\n  optional .k8s.io.apimachinery.pkg.api.resource.Quantity maximumVolumeSize = 5;\n}\n\n// CSIStorageCapacityList is a collection of CSIStorageCapacity objects.\nmessage CSIStorageCapacityList {\n  // Standard list metadata\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of CSIStorageCapacity objects.\n  repeated CSIStorageCapacity items = 2;\n}\n\n// StorageClass describes the parameters for a class of storage for\n// which PersistentVolumes can be dynamically provisioned.\n//\n// StorageClasses are non-namespaced; the name of the storage class\n// according to etcd is in ObjectMeta.Name.\nmessage StorageClass {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // provisioner indicates the type of the provisioner.\n  optional string provisioner = 2;\n\n  // parameters holds the parameters for the provisioner that should\n  // create volumes of this storage class.\n  // +optional\n  map<string, string> parameters = 3;\n\n  // reclaimPolicy controls the reclaimPolicy for dynamically provisioned PersistentVolumes of this storage class.\n  // Defaults to Delete.\n  // +optional\n  optional string reclaimPolicy = 4;\n\n  // mountOptions controls the mountOptions for dynamically provisioned PersistentVolumes of this storage class.\n  // e.g. [\"ro\", \"soft\"]. Not validated -\n  // mount of the PVs will simply fail if one is invalid.\n  // +optional\n  // +listType=atomic\n  repeated string mountOptions = 5;\n\n  // allowVolumeExpansion shows whether the storage class allow volume expand\n  // +optional\n  optional bool allowVolumeExpansion = 6;\n\n  // volumeBindingMode indicates how PersistentVolumeClaims should be\n  // provisioned and bound.  When unset, VolumeBindingImmediate is used.\n  // This field is only honored by servers that enable the VolumeScheduling feature.\n  // +optional\n  optional string volumeBindingMode = 7;\n\n  // allowedTopologies restrict the node topologies where volumes can be dynamically provisioned.\n  // Each volume plugin defines its own supported topology specifications.\n  // An empty TopologySelectorTerm list means there is no topology restriction.\n  // This field is only honored by servers that enable the VolumeScheduling feature.\n  // +optional\n  // +listType=atomic\n  repeated .k8s.io.api.core.v1.TopologySelectorTerm allowedTopologies = 8;\n}\n\n// StorageClassList is a collection of storage classes.\nmessage StorageClassList {\n  // Standard list metadata\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of StorageClasses\n  repeated StorageClass items = 2;\n}\n\n// TokenRequest contains parameters of a service account token.\nmessage TokenRequest {\n  // audience is the intended audience of the token in \"TokenRequestSpec\".\n  // It will default to the audiences of kube apiserver.\n  optional string audience = 1;\n\n  // expirationSeconds is the duration of validity of the token in \"TokenRequestSpec\".\n  // It has the same default value of \"ExpirationSeconds\" in \"TokenRequestSpec\"\n  //\n  // +optional\n  optional int64 expirationSeconds = 2;\n}\n\n// VolumeAttachment captures the intent to attach or detach the specified volume\n// to/from the specified node.\n//\n// VolumeAttachment objects are non-namespaced.\nmessage VolumeAttachment {\n  // Standard object metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // spec represents specification of the desired attach/detach volume behavior.\n  // Populated by the Kubernetes system.\n  optional VolumeAttachmentSpec spec = 2;\n\n  // status represents status of the VolumeAttachment request.\n  // Populated by the entity completing the attach or detach\n  // operation, i.e. the external-attacher.\n  // +optional\n  optional VolumeAttachmentStatus status = 3;\n}\n\n// VolumeAttachmentList is a collection of VolumeAttachment objects.\nmessage VolumeAttachmentList {\n  // Standard list metadata\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of VolumeAttachments\n  repeated VolumeAttachment items = 2;\n}\n\n// VolumeAttachmentSource represents a volume that should be attached.\n// Right now only PersistentVolumes can be attached via external attacher,\n// in the future we may allow also inline volumes in pods.\n// Exactly one member can be set.\nmessage VolumeAttachmentSource {\n  // persistentVolumeName represents the name of the persistent volume to attach.\n  // +optional\n  optional string persistentVolumeName = 1;\n\n  // inlineVolumeSpec contains all the information necessary to attach\n  // a persistent volume defined by a pod's inline VolumeSource. This field\n  // is populated only for the CSIMigration feature. It contains\n  // translated fields from a pod's inline VolumeSource to a\n  // PersistentVolumeSpec. This field is beta-level and is only\n  // honored by servers that enabled the CSIMigration feature.\n  // +optional\n  optional .k8s.io.api.core.v1.PersistentVolumeSpec inlineVolumeSpec = 2;\n}\n\n// VolumeAttachmentSpec is the specification of a VolumeAttachment request.\nmessage VolumeAttachmentSpec {\n  // attacher indicates the name of the volume driver that MUST handle this\n  // request. This is the name returned by GetPluginName().\n  optional string attacher = 1;\n\n  // source represents the volume that should be attached.\n  optional VolumeAttachmentSource source = 2;\n\n  // nodeName represents the node that the volume should be attached to.\n  optional string nodeName = 3;\n}\n\n// VolumeAttachmentStatus is the status of a VolumeAttachment request.\nmessage VolumeAttachmentStatus {\n  // attached indicates the volume is successfully attached.\n  // This field must only be set by the entity completing the attach\n  // operation, i.e. the external-attacher.\n  optional bool attached = 1;\n\n  // attachmentMetadata is populated with any\n  // information returned by the attach operation, upon successful attach, that must be passed\n  // into subsequent WaitForAttach or Mount calls.\n  // This field must only be set by the entity completing the attach\n  // operation, i.e. the external-attacher.\n  // +optional\n  map<string, string> attachmentMetadata = 2;\n\n  // attachError represents the last error encountered during attach operation, if any.\n  // This field must only be set by the entity completing the attach\n  // operation, i.e. the external-attacher.\n  // +optional\n  optional VolumeError attachError = 3;\n\n  // detachError represents the last error encountered during detach operation, if any.\n  // This field must only be set by the entity completing the detach\n  // operation, i.e. the external-attacher.\n  // +optional\n  optional VolumeError detachError = 4;\n}\n\n// VolumeAttributesClass represents a specification of mutable volume attributes\n// defined by the CSI driver. The class can be specified during dynamic provisioning\n// of PersistentVolumeClaims, and changed in the PersistentVolumeClaim spec after provisioning.\nmessage VolumeAttributesClass {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Name of the CSI driver\n  // This field is immutable.\n  optional string driverName = 2;\n\n  // parameters hold volume attributes defined by the CSI driver. These values\n  // are opaque to the Kubernetes and are passed directly to the CSI driver.\n  // The underlying storage provider supports changing these attributes on an\n  // existing volume, however the parameters field itself is immutable. To\n  // invoke a volume update, a new VolumeAttributesClass should be created with\n  // new parameters, and the PersistentVolumeClaim should be updated to reference\n  // the new VolumeAttributesClass.\n  //\n  // This field is required and must contain at least one key/value pair.\n  // The keys cannot be empty, and the maximum number of parameters is 512, with\n  // a cumulative max size of 256K. If the CSI driver rejects invalid parameters,\n  // the target PersistentVolumeClaim will be set to an \"Infeasible\" state in the\n  // modifyVolumeStatus field.\n  map<string, string> parameters = 3;\n}\n\n// VolumeAttributesClassList is a collection of VolumeAttributesClass objects.\nmessage VolumeAttributesClassList {\n  // Standard list metadata\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // items is the list of VolumeAttributesClass objects.\n  repeated VolumeAttributesClass items = 2;\n}\n\n// VolumeError captures an error encountered during a volume operation.\nmessage VolumeError {\n  // time represents the time the error was encountered.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time time = 1;\n\n  // message represents the error encountered during Attach or Detach operation.\n  // This string may be logged, so it should not contain sensitive\n  // information.\n  // +optional\n  optional string message = 2;\n}\n\n// VolumeNodeResources is a set of resource limits for scheduling of volumes.\nmessage VolumeNodeResources {\n  // count indicates the maximum number of unique volumes managed by the CSI driver that can be used on a node.\n  // A volume that is both attached and mounted on a node is considered to be used once, not twice.\n  // The same rule applies for a unique volume that is shared among multiple pods on the same node.\n  // If this field is nil, then the supported number of volumes on this node is unbounded.\n  // +optional\n  optional int32 count = 1;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1beta1/register.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"storage.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&StorageClass{},\n\t\t&StorageClassList{},\n\n\t\t&VolumeAttachment{},\n\t\t&VolumeAttachmentList{},\n\n\t\t&CSIDriver{},\n\t\t&CSIDriverList{},\n\n\t\t&CSINode{},\n\t\t&CSINodeList{},\n\n\t\t&CSIStorageCapacity{},\n\t\t&CSIStorageCapacityList{},\n\n\t\t&VolumeAttributesClass{},\n\t\t&VolumeAttributesClassList{},\n\t)\n\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1beta1/types.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\t\"k8s.io/apimachinery/pkg/api/resource\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.4\n// +k8s:prerelease-lifecycle-gen:deprecated=1.19\n// +k8s:prerelease-lifecycle-gen:replacement=storage.k8s.io,v1,StorageClass\n\n// StorageClass describes the parameters for a class of storage for\n// which PersistentVolumes can be dynamically provisioned.\n//\n// StorageClasses are non-namespaced; the name of the storage class\n// according to etcd is in ObjectMeta.Name.\ntype StorageClass struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// provisioner indicates the type of the provisioner.\n\tProvisioner string `json:\"provisioner\" protobuf:\"bytes,2,opt,name=provisioner\"`\n\n\t// parameters holds the parameters for the provisioner that should\n\t// create volumes of this storage class.\n\t// +optional\n\tParameters map[string]string `json:\"parameters,omitempty\" protobuf:\"bytes,3,rep,name=parameters\"`\n\n\t// reclaimPolicy controls the reclaimPolicy for dynamically provisioned PersistentVolumes of this storage class.\n\t// Defaults to Delete.\n\t// +optional\n\tReclaimPolicy *v1.PersistentVolumeReclaimPolicy `json:\"reclaimPolicy,omitempty\" protobuf:\"bytes,4,opt,name=reclaimPolicy,casttype=k8s.io/api/core/v1.PersistentVolumeReclaimPolicy\"`\n\n\t// mountOptions controls the mountOptions for dynamically provisioned PersistentVolumes of this storage class.\n\t// e.g. [\"ro\", \"soft\"]. Not validated -\n\t// mount of the PVs will simply fail if one is invalid.\n\t// +optional\n\t// +listType=atomic\n\tMountOptions []string `json:\"mountOptions,omitempty\" protobuf:\"bytes,5,opt,name=mountOptions\"`\n\n\t// allowVolumeExpansion shows whether the storage class allow volume expand\n\t// +optional\n\tAllowVolumeExpansion *bool `json:\"allowVolumeExpansion,omitempty\" protobuf:\"varint,6,opt,name=allowVolumeExpansion\"`\n\n\t// volumeBindingMode indicates how PersistentVolumeClaims should be\n\t// provisioned and bound.  When unset, VolumeBindingImmediate is used.\n\t// This field is only honored by servers that enable the VolumeScheduling feature.\n\t// +optional\n\tVolumeBindingMode *VolumeBindingMode `json:\"volumeBindingMode,omitempty\" protobuf:\"bytes,7,opt,name=volumeBindingMode\"`\n\n\t// allowedTopologies restrict the node topologies where volumes can be dynamically provisioned.\n\t// Each volume plugin defines its own supported topology specifications.\n\t// An empty TopologySelectorTerm list means there is no topology restriction.\n\t// This field is only honored by servers that enable the VolumeScheduling feature.\n\t// +optional\n\t// +listType=atomic\n\tAllowedTopologies []v1.TopologySelectorTerm `json:\"allowedTopologies,omitempty\" protobuf:\"bytes,8,rep,name=allowedTopologies\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.4\n// +k8s:prerelease-lifecycle-gen:deprecated=1.19\n// +k8s:prerelease-lifecycle-gen:replacement=storage.k8s.io,v1,StorageClassList\n\n// StorageClassList is a collection of storage classes.\ntype StorageClassList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of StorageClasses\n\tItems []StorageClass `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// VolumeBindingMode indicates how PersistentVolumeClaims should be bound.\ntype VolumeBindingMode string\n\nconst (\n\t// VolumeBindingImmediate indicates that PersistentVolumeClaims should be\n\t// immediately provisioned and bound.  This is the default mode.\n\tVolumeBindingImmediate VolumeBindingMode = \"Immediate\"\n\n\t// VolumeBindingWaitForFirstConsumer indicates that PersistentVolumeClaims\n\t// should not be provisioned and bound until the first Pod is created that\n\t// references the PeristentVolumeClaim.  The volume provisioning and\n\t// binding will occur during Pod scheduing.\n\tVolumeBindingWaitForFirstConsumer VolumeBindingMode = \"WaitForFirstConsumer\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.10\n// +k8s:prerelease-lifecycle-gen:deprecated=1.19\n// +k8s:prerelease-lifecycle-gen:replacement=storage.k8s.io,v1,VolumeAttachment\n\n// VolumeAttachment captures the intent to attach or detach the specified volume\n// to/from the specified node.\n//\n// VolumeAttachment objects are non-namespaced.\ntype VolumeAttachment struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec represents specification of the desired attach/detach volume behavior.\n\t// Populated by the Kubernetes system.\n\tSpec VolumeAttachmentSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n\n\t// status represents status of the VolumeAttachment request.\n\t// Populated by the entity completing the attach or detach\n\t// operation, i.e. the external-attacher.\n\t// +optional\n\tStatus VolumeAttachmentStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.10\n// +k8s:prerelease-lifecycle-gen:deprecated=1.19\n// +k8s:prerelease-lifecycle-gen:replacement=storage.k8s.io,v1,VolumeAttachmentList\n\n// VolumeAttachmentList is a collection of VolumeAttachment objects.\ntype VolumeAttachmentList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of VolumeAttachments\n\tItems []VolumeAttachment `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// VolumeAttachmentSpec is the specification of a VolumeAttachment request.\ntype VolumeAttachmentSpec struct {\n\t// attacher indicates the name of the volume driver that MUST handle this\n\t// request. This is the name returned by GetPluginName().\n\tAttacher string `json:\"attacher\" protobuf:\"bytes,1,opt,name=attacher\"`\n\n\t// source represents the volume that should be attached.\n\tSource VolumeAttachmentSource `json:\"source\" protobuf:\"bytes,2,opt,name=source\"`\n\n\t// nodeName represents the node that the volume should be attached to.\n\tNodeName string `json:\"nodeName\" protobuf:\"bytes,3,opt,name=nodeName\"`\n}\n\n// VolumeAttachmentSource represents a volume that should be attached.\n// Right now only PersistentVolumes can be attached via external attacher,\n// in the future we may allow also inline volumes in pods.\n// Exactly one member can be set.\ntype VolumeAttachmentSource struct {\n\t// persistentVolumeName represents the name of the persistent volume to attach.\n\t// +optional\n\tPersistentVolumeName *string `json:\"persistentVolumeName,omitempty\" protobuf:\"bytes,1,opt,name=persistentVolumeName\"`\n\n\t// inlineVolumeSpec contains all the information necessary to attach\n\t// a persistent volume defined by a pod's inline VolumeSource. This field\n\t// is populated only for the CSIMigration feature. It contains\n\t// translated fields from a pod's inline VolumeSource to a\n\t// PersistentVolumeSpec. This field is beta-level and is only\n\t// honored by servers that enabled the CSIMigration feature.\n\t// +optional\n\tInlineVolumeSpec *v1.PersistentVolumeSpec `json:\"inlineVolumeSpec,omitempty\" protobuf:\"bytes,2,opt,name=inlineVolumeSpec\"`\n}\n\n// VolumeAttachmentStatus is the status of a VolumeAttachment request.\ntype VolumeAttachmentStatus struct {\n\t// attached indicates the volume is successfully attached.\n\t// This field must only be set by the entity completing the attach\n\t// operation, i.e. the external-attacher.\n\tAttached bool `json:\"attached\" protobuf:\"varint,1,opt,name=attached\"`\n\n\t// attachmentMetadata is populated with any\n\t// information returned by the attach operation, upon successful attach, that must be passed\n\t// into subsequent WaitForAttach or Mount calls.\n\t// This field must only be set by the entity completing the attach\n\t// operation, i.e. the external-attacher.\n\t// +optional\n\tAttachmentMetadata map[string]string `json:\"attachmentMetadata,omitempty\" protobuf:\"bytes,2,rep,name=attachmentMetadata\"`\n\n\t// attachError represents the last error encountered during attach operation, if any.\n\t// This field must only be set by the entity completing the attach\n\t// operation, i.e. the external-attacher.\n\t// +optional\n\tAttachError *VolumeError `json:\"attachError,omitempty\" protobuf:\"bytes,3,opt,name=attachError,casttype=VolumeError\"`\n\n\t// detachError represents the last error encountered during detach operation, if any.\n\t// This field must only be set by the entity completing the detach\n\t// operation, i.e. the external-attacher.\n\t// +optional\n\tDetachError *VolumeError `json:\"detachError,omitempty\" protobuf:\"bytes,4,opt,name=detachError,casttype=VolumeError\"`\n}\n\n// VolumeError captures an error encountered during a volume operation.\ntype VolumeError struct {\n\t// time represents the time the error was encountered.\n\t// +optional\n\tTime metav1.Time `json:\"time,omitempty\" protobuf:\"bytes,1,opt,name=time\"`\n\n\t// message represents the error encountered during Attach or Detach operation.\n\t// This string may be logged, so it should not contain sensitive\n\t// information.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,2,opt,name=message\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.14\n// +k8s:prerelease-lifecycle-gen:deprecated=1.19\n// +k8s:prerelease-lifecycle-gen:replacement=storage.k8s.io,v1,CSIDriver\n\n// CSIDriver captures information about a Container Storage Interface (CSI)\n// volume driver deployed on the cluster.\n// CSI drivers do not need to create the CSIDriver object directly. Instead they may use the\n// cluster-driver-registrar sidecar container. When deployed with a CSI driver it automatically\n// creates a CSIDriver object representing the driver.\n// Kubernetes attach detach controller uses this object to determine whether attach is required.\n// Kubelet uses this object to determine whether pod information needs to be passed on mount.\n// CSIDriver objects are non-namespaced.\ntype CSIDriver struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object metadata.\n\t// metadata.Name indicates the name of the CSI driver that this object\n\t// refers to; it MUST be the same name returned by the CSI GetPluginName()\n\t// call for that driver.\n\t// The driver name must be 63 characters or less, beginning and ending with\n\t// an alphanumeric character ([a-z0-9A-Z]) with dashes (-), dots (.), and\n\t// alphanumerics between.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec represents the specification of the CSI Driver.\n\tSpec CSIDriverSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.14\n// +k8s:prerelease-lifecycle-gen:deprecated=1.19\n// +k8s:prerelease-lifecycle-gen:replacement=storage.k8s.io,v1,CSIDriverList\n\n// CSIDriverList is a collection of CSIDriver objects.\ntype CSIDriverList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of CSIDriver\n\tItems []CSIDriver `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// CSIDriverSpec is the specification of a CSIDriver.\ntype CSIDriverSpec struct {\n\t// attachRequired indicates this CSI volume driver requires an attach\n\t// operation (because it implements the CSI ControllerPublishVolume()\n\t// method), and that the Kubernetes attach detach controller should call\n\t// the attach volume interface which checks the volumeattachment status\n\t// and waits until the volume is attached before proceeding to mounting.\n\t// The CSI external-attacher coordinates with CSI volume driver and updates\n\t// the volumeattachment status when the attach operation is complete.\n\t// If the CSIDriverRegistry feature gate is enabled and the value is\n\t// specified to false, the attach operation will be skipped.\n\t// Otherwise the attach operation will be called.\n\t//\n\t// This field is immutable.\n\t//\n\t// +optional\n\tAttachRequired *bool `json:\"attachRequired,omitempty\" protobuf:\"varint,1,opt,name=attachRequired\"`\n\n\t// podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.)\n\t// during mount operations, if set to true.\n\t// If set to false, pod information will not be passed on mount.\n\t// Default is false.\n\t//\n\t// The CSI driver specifies podInfoOnMount as part of driver deployment.\n\t// If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls.\n\t// The CSI driver is responsible for parsing and validating the information passed in as VolumeContext.\n\t//\n\t// The following VolumeContext will be passed if podInfoOnMount is set to true.\n\t// This list might grow, but the prefix will be used.\n\t// \"csi.storage.k8s.io/pod.name\": pod.Name\n\t// \"csi.storage.k8s.io/pod.namespace\": pod.Namespace\n\t// \"csi.storage.k8s.io/pod.uid\": string(pod.UID)\n\t// \"csi.storage.k8s.io/ephemeral\": \"true\" if the volume is an ephemeral inline volume\n\t//                                 defined by a CSIVolumeSource, otherwise \"false\"\n\t//\n\t// \"csi.storage.k8s.io/ephemeral\" is a new feature in Kubernetes 1.16. It is only\n\t// required for drivers which support both the \"Persistent\" and \"Ephemeral\" VolumeLifecycleMode.\n\t// Other drivers can leave pod info disabled and/or ignore this field.\n\t// As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when\n\t// deployed on such a cluster and the deployment determines which mode that is, for example\n\t// via a command line parameter of the driver.\n\t//\n\t// This field is immutable.\n\t//\n\t// +optional\n\tPodInfoOnMount *bool `json:\"podInfoOnMount,omitempty\" protobuf:\"bytes,2,opt,name=podInfoOnMount\"`\n\n\t// volumeLifecycleModes defines what kind of volumes this CSI volume driver supports.\n\t// The default if the list is empty is \"Persistent\", which is the usage defined by the\n\t// CSI specification and implemented in Kubernetes via the usual PV/PVC mechanism.\n\t//\n\t// The other mode is \"Ephemeral\". In this mode, volumes are defined inline inside the pod spec\n\t// with CSIVolumeSource and their lifecycle is tied to the lifecycle of that pod.\n\t// A driver has to be aware of this because it is only going to get a NodePublishVolume call for such a volume.\n\t//\n\t// For more information about implementing this mode, see\n\t// https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html\n\t// A driver can support one or more of these modes and\n\t// more modes may be added in the future.\n\t//\n\t// This field is immutable.\n\t//\n\t// +optional\n\t// +listType=atomic\n\tVolumeLifecycleModes []VolumeLifecycleMode `json:\"volumeLifecycleModes,omitempty\" protobuf:\"bytes,3,opt,name=volumeLifecycleModes\"`\n\n\t// storageCapacity indicates that the CSI volume driver wants pod scheduling to consider the storage\n\t// capacity that the driver deployment will report by creating\n\t// CSIStorageCapacity objects with capacity information, if set to true.\n\t//\n\t// The check can be enabled immediately when deploying a driver.\n\t// In that case, provisioning new volumes with late binding\n\t// will pause until the driver deployment has published\n\t// some suitable CSIStorageCapacity object.\n\t//\n\t// Alternatively, the driver can be deployed with the field\n\t// unset or false and it can be flipped later when storage\n\t// capacity information has been published.\n\t//\n\t// This field was immutable in Kubernetes <= 1.22 and now is mutable.\n\t//\n\t// +optional\n\tStorageCapacity *bool `json:\"storageCapacity,omitempty\" protobuf:\"bytes,4,opt,name=storageCapacity\"`\n\n\t// fsGroupPolicy defines if the underlying volume supports changing ownership and\n\t// permission of the volume before being mounted.\n\t// Refer to the specific FSGroupPolicy values for additional details.\n\t//\n\t// This field is immutable.\n\t//\n\t// Defaults to ReadWriteOnceWithFSType, which will examine each volume\n\t// to determine if Kubernetes should modify ownership and permissions of the volume.\n\t// With the default policy the defined fsGroup will only be applied\n\t// if a fstype is defined and the volume's access mode contains ReadWriteOnce.\n\t//\n\t// +optional\n\tFSGroupPolicy *FSGroupPolicy `json:\"fsGroupPolicy,omitempty\" protobuf:\"bytes,5,opt,name=fsGroupPolicy\"`\n\n\t// tokenRequests indicates the CSI driver needs pods' service account\n\t// tokens it is mounting volume for to do necessary authentication. Kubelet\n\t// will pass the tokens in VolumeContext in the CSI NodePublishVolume calls.\n\t// The CSI driver should parse and validate the following VolumeContext:\n\t// \"csi.storage.k8s.io/serviceAccount.tokens\": {\n\t//   \"<audience>\": {\n\t//     \"token\": <token>,\n\t//     \"expirationTimestamp\": <expiration timestamp in RFC3339>,\n\t//   },\n\t//   ...\n\t// }\n\t//\n\t// Note: Audience in each TokenRequest should be different and at\n\t// most one token is empty string. To receive a new token after expiry,\n\t// RequiresRepublish can be used to trigger NodePublishVolume periodically.\n\t//\n\t// +optional\n\t// +listType=atomic\n\tTokenRequests []TokenRequest `json:\"tokenRequests,omitempty\" protobuf:\"bytes,6,opt,name=tokenRequests\"`\n\n\t// requiresRepublish indicates the CSI driver wants `NodePublishVolume`\n\t// being periodically called to reflect any possible change in the mounted\n\t// volume. This field defaults to false.\n\t//\n\t// Note: After a successful initial NodePublishVolume call, subsequent calls\n\t// to NodePublishVolume should only update the contents of the volume. New\n\t// mount points will not be seen by a running container.\n\t//\n\t// +optional\n\tRequiresRepublish *bool `json:\"requiresRepublish,omitempty\" protobuf:\"varint,7,opt,name=requiresRepublish\"`\n\n\t// seLinuxMount specifies if the CSI driver supports \"-o context\"\n\t// mount option.\n\t//\n\t// When \"true\", the CSI driver must ensure that all volumes provided by this CSI\n\t// driver can be mounted separately with different `-o context` options. This is\n\t// typical for storage backends that provide volumes as filesystems on block\n\t// devices or as independent shared volumes.\n\t// Kubernetes will call NodeStage / NodePublish with \"-o context=xyz\" mount\n\t// option when mounting a ReadWriteOncePod volume used in Pod that has\n\t// explicitly set SELinux context. In the future, it may be expanded to other\n\t// volume AccessModes. In any case, Kubernetes will ensure that the volume is\n\t// mounted only with a single SELinux context.\n\t//\n\t// When \"false\", Kubernetes won't pass any special SELinux mount options to the driver.\n\t// This is typical for volumes that represent subdirectories of a bigger shared filesystem.\n\t//\n\t// Default is \"false\".\n\t//\n\t// +featureGate=SELinuxMountReadWriteOncePod\n\t// +optional\n\tSELinuxMount *bool `json:\"seLinuxMount,omitempty\" protobuf:\"varint,8,opt,name=seLinuxMount\"`\n}\n\n// FSGroupPolicy specifies if a CSI Driver supports modifying\n// volume ownership and permissions of the volume to be mounted.\n// More modes may be added in the future.\ntype FSGroupPolicy string\n\nconst (\n\t// ReadWriteOnceWithFSTypeFSGroupPolicy indicates that each volume will be examined\n\t// to determine if the volume ownership and permissions\n\t// should be modified. If a fstype is defined and the volume's access mode\n\t// contains ReadWriteOnce, then the defined fsGroup will be applied.\n\t// This is the default behavior if no other FSGroupPolicy is defined.\n\tReadWriteOnceWithFSTypeFSGroupPolicy FSGroupPolicy = \"ReadWriteOnceWithFSType\"\n\n\t// FileFSGroupPolicy indicates that CSI driver supports volume ownership\n\t// and permission change via fsGroup, and Kubernetes will change the permissions\n\t// and ownership of every file in the volume to match the user requested fsGroup in\n\t// the pod's SecurityPolicy regardless of fstype or access mode.\n\t// Use this mode if Kubernetes should modify the permissions and ownership\n\t// of the volume.\n\tFileFSGroupPolicy FSGroupPolicy = \"File\"\n\n\t// None indicates that volumes will be mounted without performing\n\t// any ownership or permission modifications, as the CSIDriver does not support\n\t// these operations.\n\tNoneFSGroupPolicy FSGroupPolicy = \"None\"\n)\n\n// VolumeLifecycleMode is an enumeration of possible usage modes for a volume\n// provided by a CSI driver. More modes may be added in the future.\ntype VolumeLifecycleMode string\n\n// TokenRequest contains parameters of a service account token.\ntype TokenRequest struct {\n\t// audience is the intended audience of the token in \"TokenRequestSpec\".\n\t// It will default to the audiences of kube apiserver.\n\tAudience string `json:\"audience\" protobuf:\"bytes,1,opt,name=audience\"`\n\n\t// expirationSeconds is the duration of validity of the token in \"TokenRequestSpec\".\n\t// It has the same default value of \"ExpirationSeconds\" in \"TokenRequestSpec\"\n\t//\n\t// +optional\n\tExpirationSeconds *int64 `json:\"expirationSeconds,omitempty\" protobuf:\"varint,2,opt,name=expirationSeconds\"`\n}\n\nconst (\n\t// VolumeLifecyclePersistent explicitly confirms that the driver implements\n\t// the full CSI spec. It is the default when CSIDriverSpec.VolumeLifecycleModes is not\n\t// set. Such volumes are managed in Kubernetes via the persistent volume\n\t// claim mechanism and have a lifecycle that is independent of the pods which\n\t// use them.\n\tVolumeLifecyclePersistent VolumeLifecycleMode = \"Persistent\"\n\n\t// VolumeLifecycleEphemeral indicates that the driver can be used for\n\t// ephemeral inline volumes. Such volumes are specified inside the pod\n\t// spec with a CSIVolumeSource and, as far as Kubernetes is concerned, have\n\t// a lifecycle that is tied to the lifecycle of the pod. For example, such\n\t// a volume might contain data that gets created specifically for that pod,\n\t// like secrets.\n\t// But how the volume actually gets created and managed is entirely up to\n\t// the driver. It might also use reference counting to share the same volume\n\t// instance among different pods if the CSIVolumeSource of those pods is\n\t// identical.\n\tVolumeLifecycleEphemeral VolumeLifecycleMode = \"Ephemeral\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.14\n// +k8s:prerelease-lifecycle-gen:deprecated=1.17\n// +k8s:prerelease-lifecycle-gen:removed=1.22\n// +k8s:prerelease-lifecycle-gen:replacement=storage.k8s.io,v1,CSINode\n\n// DEPRECATED - This group version of CSINode is deprecated by storage/v1/CSINode.\n// See the release notes for more information.\n// CSINode holds information about all CSI drivers installed on a node.\n// CSI drivers do not need to create the CSINode object directly. As long as\n// they use the node-driver-registrar sidecar container, the kubelet will\n// automatically populate the CSINode object for the CSI driver as part of\n// kubelet plugin registration.\n// CSINode has the same name as a node. If the object is missing, it means either\n// there are no CSI Drivers available on the node, or the Kubelet version is low\n// enough that it doesn't create this object.\n// CSINode has an OwnerReference that points to the corresponding node object.\ntype CSINode struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// metadata.name must be the Kubernetes node name.\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// spec is the specification of CSINode\n\tSpec CSINodeSpec `json:\"spec\" protobuf:\"bytes,2,opt,name=spec\"`\n}\n\n// CSINodeSpec holds information about the specification of all CSI drivers installed on a node\ntype CSINodeSpec struct {\n\t// drivers is a list of information of all CSI Drivers existing on a node.\n\t// If all drivers in the list are uninstalled, this can become empty.\n\t// +patchMergeKey=name\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=name\n\tDrivers []CSINodeDriver `json:\"drivers\" patchStrategy:\"merge\" patchMergeKey:\"name\" protobuf:\"bytes,1,rep,name=drivers\"`\n}\n\n// CSINodeDriver holds information about the specification of one CSI driver installed on a node\ntype CSINodeDriver struct {\n\t// name represents the name of the CSI driver that this object refers to.\n\t// This MUST be the same name returned by the CSI GetPluginName() call for\n\t// that driver.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\n\t// nodeID of the node from the driver point of view.\n\t// This field enables Kubernetes to communicate with storage systems that do\n\t// not share the same nomenclature for nodes. For example, Kubernetes may\n\t// refer to a given node as \"node1\", but the storage system may refer to\n\t// the same node as \"nodeA\". When Kubernetes issues a command to the storage\n\t// system to attach a volume to a specific node, it can use this field to\n\t// refer to the node name using the ID that the storage system will\n\t// understand, e.g. \"nodeA\" instead of \"node1\". This field is required.\n\tNodeID string `json:\"nodeID\" protobuf:\"bytes,2,opt,name=nodeID\"`\n\n\t// topologyKeys is the list of keys supported by the driver.\n\t// When a driver is initialized on a cluster, it provides a set of topology\n\t// keys that it understands (e.g. \"company.com/zone\", \"company.com/region\").\n\t// When a driver is initialized on a node, it provides the same topology keys\n\t// along with values. Kubelet will expose these topology keys as labels\n\t// on its own node object.\n\t// When Kubernetes does topology aware provisioning, it can use this list to\n\t// determine which labels it should retrieve from the node object and pass\n\t// back to the driver.\n\t// It is possible for different nodes to use different topology keys.\n\t// This can be empty if driver does not support topology.\n\t// +optional\n\t// +listType=atomic\n\tTopologyKeys []string `json:\"topologyKeys\" protobuf:\"bytes,3,rep,name=topologyKeys\"`\n\n\t// allocatable represents the volume resources of a node that are available for scheduling.\n\t// +optional\n\tAllocatable *VolumeNodeResources `json:\"allocatable,omitempty\" protobuf:\"bytes,4,opt,name=allocatable\"`\n}\n\n// VolumeNodeResources is a set of resource limits for scheduling of volumes.\ntype VolumeNodeResources struct {\n\t// count indicates the maximum number of unique volumes managed by the CSI driver that can be used on a node.\n\t// A volume that is both attached and mounted on a node is considered to be used once, not twice.\n\t// The same rule applies for a unique volume that is shared among multiple pods on the same node.\n\t// If this field is nil, then the supported number of volumes on this node is unbounded.\n\t// +optional\n\tCount *int32 `json:\"count,omitempty\" protobuf:\"varint,1,opt,name=count\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.14\n// +k8s:prerelease-lifecycle-gen:deprecated=1.17\n// +k8s:prerelease-lifecycle-gen:removed=1.22\n// +k8s:prerelease-lifecycle-gen:replacement=storage.k8s.io,v1,CSINode\n\n// CSINodeList is a collection of CSINode objects.\ntype CSINodeList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of CSINode\n\tItems []CSINode `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.21\n// +k8s:prerelease-lifecycle-gen:deprecated=1.24\n// +k8s:prerelease-lifecycle-gen:replacement=storage.k8s.io,v1,CSIStorageCapacity\n\n// CSIStorageCapacity stores the result of one CSI GetCapacity call.\n// For a given StorageClass, this describes the available capacity in a\n// particular topology segment.  This can be used when considering where to\n// instantiate new PersistentVolumes.\n//\n// For example this can express things like:\n// - StorageClass \"standard\" has \"1234 GiB\" available in \"topology.kubernetes.io/zone=us-east1\"\n// - StorageClass \"localssd\" has \"10 GiB\" available in \"kubernetes.io/hostname=knode-abc123\"\n//\n// The following three cases all imply that no capacity is available for\n// a certain combination:\n// - no object exists with suitable topology and storage class name\n// - such an object exists, but the capacity is unset\n// - such an object exists, but the capacity is zero\n//\n// The producer of these objects can decide which approach is more suitable.\n//\n// They are consumed by the kube-scheduler when a CSI driver opts into\n// capacity-aware scheduling with CSIDriverSpec.StorageCapacity. The scheduler\n// compares the MaximumVolumeSize against the requested size of pending volumes\n// to filter out unsuitable nodes. If MaximumVolumeSize is unset, it falls back\n// to a comparison against the less precise Capacity. If that is also unset,\n// the scheduler assumes that capacity is insufficient and tries some other\n// node.\ntype CSIStorageCapacity struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object's metadata. The name has no particular meaning. It must be\n\t// be a DNS subdomain (dots allowed, 253 characters). To ensure that\n\t// there are no conflicts with other CSI drivers on the cluster, the recommendation\n\t// is to use csisc-<uuid>, a generated name, or a reverse-domain name which ends\n\t// with the unique CSI driver name.\n\t//\n\t// Objects are namespaced.\n\t//\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// nodeTopology defines which nodes have access to the storage\n\t// for which capacity was reported. If not set, the storage is\n\t// not accessible from any node in the cluster. If empty, the\n\t// storage is accessible from all nodes. This field is\n\t// immutable.\n\t//\n\t// +optional\n\tNodeTopology *metav1.LabelSelector `json:\"nodeTopology,omitempty\" protobuf:\"bytes,2,opt,name=nodeTopology\"`\n\n\t// storageClassName represents the name of the StorageClass that the reported capacity applies to.\n\t// It must meet the same requirements as the name of a StorageClass\n\t// object (non-empty, DNS subdomain). If that object no longer exists,\n\t// the CSIStorageCapacity object is obsolete and should be removed by its\n\t// creator.\n\t// This field is immutable.\n\tStorageClassName string `json:\"storageClassName\" protobuf:\"bytes,3,name=storageClassName\"`\n\n\t// capacity is the value reported by the CSI driver in its GetCapacityResponse\n\t// for a GetCapacityRequest with topology and parameters that match the\n\t// previous fields.\n\t//\n\t// The semantic is currently (CSI spec 1.2) defined as:\n\t// The available capacity, in bytes, of the storage that can be used\n\t// to provision volumes. If not set, that information is currently\n\t// unavailable.\n\t//\n\t// +optional\n\tCapacity *resource.Quantity `json:\"capacity,omitempty\" protobuf:\"bytes,4,opt,name=capacity\"`\n\n\t// maximumVolumeSize is the value reported by the CSI driver in its GetCapacityResponse\n\t// for a GetCapacityRequest with topology and parameters that match the\n\t// previous fields.\n\t//\n\t// This is defined since CSI spec 1.4.0 as the largest size\n\t// that may be used in a\n\t// CreateVolumeRequest.capacity_range.required_bytes field to\n\t// create a volume with the same parameters as those in\n\t// GetCapacityRequest. The corresponding value in the Kubernetes\n\t// API is ResourceRequirements.Requests in a volume claim.\n\t//\n\t// +optional\n\tMaximumVolumeSize *resource.Quantity `json:\"maximumVolumeSize,omitempty\" protobuf:\"bytes,5,opt,name=maximumVolumeSize\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.21\n// +k8s:prerelease-lifecycle-gen:deprecated=1.24\n// +k8s:prerelease-lifecycle-gen:replacement=storage.k8s.io,v1,CSIStorageCapacityList\n\n// CSIStorageCapacityList is a collection of CSIStorageCapacity objects.\ntype CSIStorageCapacityList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of CSIStorageCapacity objects.\n\tItems []CSIStorageCapacity `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:prerelease-lifecycle-gen:introduced=1.31\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// VolumeAttributesClass represents a specification of mutable volume attributes\n// defined by the CSI driver. The class can be specified during dynamic provisioning\n// of PersistentVolumeClaims, and changed in the PersistentVolumeClaim spec after provisioning.\ntype VolumeAttributesClass struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Name of the CSI driver\n\t// This field is immutable.\n\tDriverName string `json:\"driverName\" protobuf:\"bytes,2,opt,name=driverName\"`\n\n\t// parameters hold volume attributes defined by the CSI driver. These values\n\t// are opaque to the Kubernetes and are passed directly to the CSI driver.\n\t// The underlying storage provider supports changing these attributes on an\n\t// existing volume, however the parameters field itself is immutable. To\n\t// invoke a volume update, a new VolumeAttributesClass should be created with\n\t// new parameters, and the PersistentVolumeClaim should be updated to reference\n\t// the new VolumeAttributesClass.\n\t//\n\t// This field is required and must contain at least one key/value pair.\n\t// The keys cannot be empty, and the maximum number of parameters is 512, with\n\t// a cumulative max size of 256K. If the CSI driver rejects invalid parameters,\n\t// the target PersistentVolumeClaim will be set to an \"Infeasible\" state in the\n\t// modifyVolumeStatus field.\n\tParameters map[string]string `json:\"parameters,omitempty\" protobuf:\"bytes,3,rep,name=parameters\"`\n}\n\n// +k8s:prerelease-lifecycle-gen:introduced=1.31\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// VolumeAttributesClassList is a collection of VolumeAttributesClass objects.\ntype VolumeAttributesClassList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items is the list of VolumeAttributesClass objects.\n\tItems []VolumeAttributesClass `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1beta1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_CSIDriver = map[string]string{\n\t\"\":         \"CSIDriver captures information about a Container Storage Interface (CSI) volume driver deployed on the cluster. CSI drivers do not need to create the CSIDriver object directly. Instead they may use the cluster-driver-registrar sidecar container. When deployed with a CSI driver it automatically creates a CSIDriver object representing the driver. Kubernetes attach detach controller uses this object to determine whether attach is required. Kubelet uses this object to determine whether pod information needs to be passed on mount. CSIDriver objects are non-namespaced.\",\n\t\"metadata\": \"Standard object metadata. metadata.Name indicates the name of the CSI driver that this object refers to; it MUST be the same name returned by the CSI GetPluginName() call for that driver. The driver name must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), dots (.), and alphanumerics between. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec represents the specification of the CSI Driver.\",\n}\n\nfunc (CSIDriver) SwaggerDoc() map[string]string {\n\treturn map_CSIDriver\n}\n\nvar map_CSIDriverList = map[string]string{\n\t\"\":         \"CSIDriverList is a collection of CSIDriver objects.\",\n\t\"metadata\": \"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of CSIDriver\",\n}\n\nfunc (CSIDriverList) SwaggerDoc() map[string]string {\n\treturn map_CSIDriverList\n}\n\nvar map_CSIDriverSpec = map[string]string{\n\t\"\":                     \"CSIDriverSpec is the specification of a CSIDriver.\",\n\t\"attachRequired\":       \"attachRequired indicates this CSI volume driver requires an attach operation (because it implements the CSI ControllerPublishVolume() method), and that the Kubernetes attach detach controller should call the attach volume interface which checks the volumeattachment status and waits until the volume is attached before proceeding to mounting. The CSI external-attacher coordinates with CSI volume driver and updates the volumeattachment status when the attach operation is complete. If the CSIDriverRegistry feature gate is enabled and the value is specified to false, the attach operation will be skipped. Otherwise the attach operation will be called.\\n\\nThis field is immutable.\",\n\t\"podInfoOnMount\":       \"podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.) during mount operations, if set to true. If set to false, pod information will not be passed on mount. Default is false.\\n\\nThe CSI driver specifies podInfoOnMount as part of driver deployment. If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls. The CSI driver is responsible for parsing and validating the information passed in as VolumeContext.\\n\\nThe following VolumeContext will be passed if podInfoOnMount is set to true. This list might grow, but the prefix will be used. \\\"csi.storage.k8s.io/pod.name\\\": pod.Name \\\"csi.storage.k8s.io/pod.namespace\\\": pod.Namespace \\\"csi.storage.k8s.io/pod.uid\\\": string(pod.UID) \\\"csi.storage.k8s.io/ephemeral\\\": \\\"true\\\" if the volume is an ephemeral inline volume\\n                                defined by a CSIVolumeSource, otherwise \\\"false\\\"\\n\\n\\\"csi.storage.k8s.io/ephemeral\\\" is a new feature in Kubernetes 1.16. It is only required for drivers which support both the \\\"Persistent\\\" and \\\"Ephemeral\\\" VolumeLifecycleMode. Other drivers can leave pod info disabled and/or ignore this field. As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when deployed on such a cluster and the deployment determines which mode that is, for example via a command line parameter of the driver.\\n\\nThis field is immutable.\",\n\t\"volumeLifecycleModes\": \"volumeLifecycleModes defines what kind of volumes this CSI volume driver supports. The default if the list is empty is \\\"Persistent\\\", which is the usage defined by the CSI specification and implemented in Kubernetes via the usual PV/PVC mechanism.\\n\\nThe other mode is \\\"Ephemeral\\\". In this mode, volumes are defined inline inside the pod spec with CSIVolumeSource and their lifecycle is tied to the lifecycle of that pod. A driver has to be aware of this because it is only going to get a NodePublishVolume call for such a volume.\\n\\nFor more information about implementing this mode, see https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html A driver can support one or more of these modes and more modes may be added in the future.\\n\\nThis field is immutable.\",\n\t\"storageCapacity\":      \"storageCapacity indicates that the CSI volume driver wants pod scheduling to consider the storage capacity that the driver deployment will report by creating CSIStorageCapacity objects with capacity information, if set to true.\\n\\nThe check can be enabled immediately when deploying a driver. In that case, provisioning new volumes with late binding will pause until the driver deployment has published some suitable CSIStorageCapacity object.\\n\\nAlternatively, the driver can be deployed with the field unset or false and it can be flipped later when storage capacity information has been published.\\n\\nThis field was immutable in Kubernetes <= 1.22 and now is mutable.\",\n\t\"fsGroupPolicy\":        \"fsGroupPolicy defines if the underlying volume supports changing ownership and permission of the volume before being mounted. Refer to the specific FSGroupPolicy values for additional details.\\n\\nThis field is immutable.\\n\\nDefaults to ReadWriteOnceWithFSType, which will examine each volume to determine if Kubernetes should modify ownership and permissions of the volume. With the default policy the defined fsGroup will only be applied if a fstype is defined and the volume's access mode contains ReadWriteOnce.\",\n\t\"tokenRequests\":        \"tokenRequests indicates the CSI driver needs pods' service account tokens it is mounting volume for to do necessary authentication. Kubelet will pass the tokens in VolumeContext in the CSI NodePublishVolume calls. The CSI driver should parse and validate the following VolumeContext: \\\"csi.storage.k8s.io/serviceAccount.tokens\\\": {\\n  \\\"<audience>\\\": {\\n    \\\"token\\\": <token>,\\n    \\\"expirationTimestamp\\\": <expiration timestamp in RFC3339>,\\n  },\\n  ...\\n}\\n\\nNote: Audience in each TokenRequest should be different and at most one token is empty string. To receive a new token after expiry, RequiresRepublish can be used to trigger NodePublishVolume periodically.\",\n\t\"requiresRepublish\":    \"requiresRepublish indicates the CSI driver wants `NodePublishVolume` being periodically called to reflect any possible change in the mounted volume. This field defaults to false.\\n\\nNote: After a successful initial NodePublishVolume call, subsequent calls to NodePublishVolume should only update the contents of the volume. New mount points will not be seen by a running container.\",\n\t\"seLinuxMount\":         \"seLinuxMount specifies if the CSI driver supports \\\"-o context\\\" mount option.\\n\\nWhen \\\"true\\\", the CSI driver must ensure that all volumes provided by this CSI driver can be mounted separately with different `-o context` options. This is typical for storage backends that provide volumes as filesystems on block devices or as independent shared volumes. Kubernetes will call NodeStage / NodePublish with \\\"-o context=xyz\\\" mount option when mounting a ReadWriteOncePod volume used in Pod that has explicitly set SELinux context. In the future, it may be expanded to other volume AccessModes. In any case, Kubernetes will ensure that the volume is mounted only with a single SELinux context.\\n\\nWhen \\\"false\\\", Kubernetes won't pass any special SELinux mount options to the driver. This is typical for volumes that represent subdirectories of a bigger shared filesystem.\\n\\nDefault is \\\"false\\\".\",\n}\n\nfunc (CSIDriverSpec) SwaggerDoc() map[string]string {\n\treturn map_CSIDriverSpec\n}\n\nvar map_CSINode = map[string]string{\n\t\"\":         \"DEPRECATED - This group version of CSINode is deprecated by storage/v1/CSINode. See the release notes for more information. CSINode holds information about all CSI drivers installed on a node. CSI drivers do not need to create the CSINode object directly. As long as they use the node-driver-registrar sidecar container, the kubelet will automatically populate the CSINode object for the CSI driver as part of kubelet plugin registration. CSINode has the same name as a node. If the object is missing, it means either there are no CSI Drivers available on the node, or the Kubelet version is low enough that it doesn't create this object. CSINode has an OwnerReference that points to the corresponding node object.\",\n\t\"metadata\": \"metadata.name must be the Kubernetes node name.\",\n\t\"spec\":     \"spec is the specification of CSINode\",\n}\n\nfunc (CSINode) SwaggerDoc() map[string]string {\n\treturn map_CSINode\n}\n\nvar map_CSINodeDriver = map[string]string{\n\t\"\":             \"CSINodeDriver holds information about the specification of one CSI driver installed on a node\",\n\t\"name\":         \"name represents the name of the CSI driver that this object refers to. This MUST be the same name returned by the CSI GetPluginName() call for that driver.\",\n\t\"nodeID\":       \"nodeID of the node from the driver point of view. This field enables Kubernetes to communicate with storage systems that do not share the same nomenclature for nodes. For example, Kubernetes may refer to a given node as \\\"node1\\\", but the storage system may refer to the same node as \\\"nodeA\\\". When Kubernetes issues a command to the storage system to attach a volume to a specific node, it can use this field to refer to the node name using the ID that the storage system will understand, e.g. \\\"nodeA\\\" instead of \\\"node1\\\". This field is required.\",\n\t\"topologyKeys\": \"topologyKeys is the list of keys supported by the driver. When a driver is initialized on a cluster, it provides a set of topology keys that it understands (e.g. \\\"company.com/zone\\\", \\\"company.com/region\\\"). When a driver is initialized on a node, it provides the same topology keys along with values. Kubelet will expose these topology keys as labels on its own node object. When Kubernetes does topology aware provisioning, it can use this list to determine which labels it should retrieve from the node object and pass back to the driver. It is possible for different nodes to use different topology keys. This can be empty if driver does not support topology.\",\n\t\"allocatable\":  \"allocatable represents the volume resources of a node that are available for scheduling.\",\n}\n\nfunc (CSINodeDriver) SwaggerDoc() map[string]string {\n\treturn map_CSINodeDriver\n}\n\nvar map_CSINodeList = map[string]string{\n\t\"\":         \"CSINodeList is a collection of CSINode objects.\",\n\t\"metadata\": \"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of CSINode\",\n}\n\nfunc (CSINodeList) SwaggerDoc() map[string]string {\n\treturn map_CSINodeList\n}\n\nvar map_CSINodeSpec = map[string]string{\n\t\"\":        \"CSINodeSpec holds information about the specification of all CSI drivers installed on a node\",\n\t\"drivers\": \"drivers is a list of information of all CSI Drivers existing on a node. If all drivers in the list are uninstalled, this can become empty.\",\n}\n\nfunc (CSINodeSpec) SwaggerDoc() map[string]string {\n\treturn map_CSINodeSpec\n}\n\nvar map_CSIStorageCapacity = map[string]string{\n\t\"\":                  \"CSIStorageCapacity stores the result of one CSI GetCapacity call. For a given StorageClass, this describes the available capacity in a particular topology segment.  This can be used when considering where to instantiate new PersistentVolumes.\\n\\nFor example this can express things like: - StorageClass \\\"standard\\\" has \\\"1234 GiB\\\" available in \\\"topology.kubernetes.io/zone=us-east1\\\" - StorageClass \\\"localssd\\\" has \\\"10 GiB\\\" available in \\\"kubernetes.io/hostname=knode-abc123\\\"\\n\\nThe following three cases all imply that no capacity is available for a certain combination: - no object exists with suitable topology and storage class name - such an object exists, but the capacity is unset - such an object exists, but the capacity is zero\\n\\nThe producer of these objects can decide which approach is more suitable.\\n\\nThey are consumed by the kube-scheduler when a CSI driver opts into capacity-aware scheduling with CSIDriverSpec.StorageCapacity. The scheduler compares the MaximumVolumeSize against the requested size of pending volumes to filter out unsuitable nodes. If MaximumVolumeSize is unset, it falls back to a comparison against the less precise Capacity. If that is also unset, the scheduler assumes that capacity is insufficient and tries some other node.\",\n\t\"metadata\":          \"Standard object's metadata. The name has no particular meaning. It must be be a DNS subdomain (dots allowed, 253 characters). To ensure that there are no conflicts with other CSI drivers on the cluster, the recommendation is to use csisc-<uuid>, a generated name, or a reverse-domain name which ends with the unique CSI driver name.\\n\\nObjects are namespaced.\\n\\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"nodeTopology\":      \"nodeTopology defines which nodes have access to the storage for which capacity was reported. If not set, the storage is not accessible from any node in the cluster. If empty, the storage is accessible from all nodes. This field is immutable.\",\n\t\"storageClassName\":  \"storageClassName represents the name of the StorageClass that the reported capacity applies to. It must meet the same requirements as the name of a StorageClass object (non-empty, DNS subdomain). If that object no longer exists, the CSIStorageCapacity object is obsolete and should be removed by its creator. This field is immutable.\",\n\t\"capacity\":          \"capacity is the value reported by the CSI driver in its GetCapacityResponse for a GetCapacityRequest with topology and parameters that match the previous fields.\\n\\nThe semantic is currently (CSI spec 1.2) defined as: The available capacity, in bytes, of the storage that can be used to provision volumes. If not set, that information is currently unavailable.\",\n\t\"maximumVolumeSize\": \"maximumVolumeSize is the value reported by the CSI driver in its GetCapacityResponse for a GetCapacityRequest with topology and parameters that match the previous fields.\\n\\nThis is defined since CSI spec 1.4.0 as the largest size that may be used in a CreateVolumeRequest.capacity_range.required_bytes field to create a volume with the same parameters as those in GetCapacityRequest. The corresponding value in the Kubernetes API is ResourceRequirements.Requests in a volume claim.\",\n}\n\nfunc (CSIStorageCapacity) SwaggerDoc() map[string]string {\n\treturn map_CSIStorageCapacity\n}\n\nvar map_CSIStorageCapacityList = map[string]string{\n\t\"\":         \"CSIStorageCapacityList is a collection of CSIStorageCapacity objects.\",\n\t\"metadata\": \"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of CSIStorageCapacity objects.\",\n}\n\nfunc (CSIStorageCapacityList) SwaggerDoc() map[string]string {\n\treturn map_CSIStorageCapacityList\n}\n\nvar map_StorageClass = map[string]string{\n\t\"\":                     \"StorageClass describes the parameters for a class of storage for which PersistentVolumes can be dynamically provisioned.\\n\\nStorageClasses are non-namespaced; the name of the storage class according to etcd is in ObjectMeta.Name.\",\n\t\"metadata\":             \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"provisioner\":          \"provisioner indicates the type of the provisioner.\",\n\t\"parameters\":           \"parameters holds the parameters for the provisioner that should create volumes of this storage class.\",\n\t\"reclaimPolicy\":        \"reclaimPolicy controls the reclaimPolicy for dynamically provisioned PersistentVolumes of this storage class. Defaults to Delete.\",\n\t\"mountOptions\":         \"mountOptions controls the mountOptions for dynamically provisioned PersistentVolumes of this storage class. e.g. [\\\"ro\\\", \\\"soft\\\"]. Not validated - mount of the PVs will simply fail if one is invalid.\",\n\t\"allowVolumeExpansion\": \"allowVolumeExpansion shows whether the storage class allow volume expand\",\n\t\"volumeBindingMode\":    \"volumeBindingMode indicates how PersistentVolumeClaims should be provisioned and bound.  When unset, VolumeBindingImmediate is used. This field is only honored by servers that enable the VolumeScheduling feature.\",\n\t\"allowedTopologies\":    \"allowedTopologies restrict the node topologies where volumes can be dynamically provisioned. Each volume plugin defines its own supported topology specifications. An empty TopologySelectorTerm list means there is no topology restriction. This field is only honored by servers that enable the VolumeScheduling feature.\",\n}\n\nfunc (StorageClass) SwaggerDoc() map[string]string {\n\treturn map_StorageClass\n}\n\nvar map_StorageClassList = map[string]string{\n\t\"\":         \"StorageClassList is a collection of storage classes.\",\n\t\"metadata\": \"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of StorageClasses\",\n}\n\nfunc (StorageClassList) SwaggerDoc() map[string]string {\n\treturn map_StorageClassList\n}\n\nvar map_TokenRequest = map[string]string{\n\t\"\":                  \"TokenRequest contains parameters of a service account token.\",\n\t\"audience\":          \"audience is the intended audience of the token in \\\"TokenRequestSpec\\\". It will default to the audiences of kube apiserver.\",\n\t\"expirationSeconds\": \"expirationSeconds is the duration of validity of the token in \\\"TokenRequestSpec\\\". It has the same default value of \\\"ExpirationSeconds\\\" in \\\"TokenRequestSpec\\\"\",\n}\n\nfunc (TokenRequest) SwaggerDoc() map[string]string {\n\treturn map_TokenRequest\n}\n\nvar map_VolumeAttachment = map[string]string{\n\t\"\":         \"VolumeAttachment captures the intent to attach or detach the specified volume to/from the specified node.\\n\\nVolumeAttachment objects are non-namespaced.\",\n\t\"metadata\": \"Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"spec represents specification of the desired attach/detach volume behavior. Populated by the Kubernetes system.\",\n\t\"status\":   \"status represents status of the VolumeAttachment request. Populated by the entity completing the attach or detach operation, i.e. the external-attacher.\",\n}\n\nfunc (VolumeAttachment) SwaggerDoc() map[string]string {\n\treturn map_VolumeAttachment\n}\n\nvar map_VolumeAttachmentList = map[string]string{\n\t\"\":         \"VolumeAttachmentList is a collection of VolumeAttachment objects.\",\n\t\"metadata\": \"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of VolumeAttachments\",\n}\n\nfunc (VolumeAttachmentList) SwaggerDoc() map[string]string {\n\treturn map_VolumeAttachmentList\n}\n\nvar map_VolumeAttachmentSource = map[string]string{\n\t\"\":                     \"VolumeAttachmentSource represents a volume that should be attached. Right now only PersistentVolumes can be attached via external attacher, in the future we may allow also inline volumes in pods. Exactly one member can be set.\",\n\t\"persistentVolumeName\": \"persistentVolumeName represents the name of the persistent volume to attach.\",\n}\n\nfunc (VolumeAttachmentSource) SwaggerDoc() map[string]string {\n\treturn map_VolumeAttachmentSource\n}\n\nvar map_VolumeAttachmentSpec = map[string]string{\n\t\"\":         \"VolumeAttachmentSpec is the specification of a VolumeAttachment request.\",\n\t\"attacher\": \"attacher indicates the name of the volume driver that MUST handle this request. This is the name returned by GetPluginName().\",\n\t\"source\":   \"source represents the volume that should be attached.\",\n\t\"nodeName\": \"nodeName represents the node that the volume should be attached to.\",\n}\n\nfunc (VolumeAttachmentSpec) SwaggerDoc() map[string]string {\n\treturn map_VolumeAttachmentSpec\n}\n\nvar map_VolumeAttachmentStatus = map[string]string{\n\t\"\":                   \"VolumeAttachmentStatus is the status of a VolumeAttachment request.\",\n\t\"attached\":           \"attached indicates the volume is successfully attached. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.\",\n\t\"attachmentMetadata\": \"attachmentMetadata is populated with any information returned by the attach operation, upon successful attach, that must be passed into subsequent WaitForAttach or Mount calls. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.\",\n\t\"attachError\":        \"attachError represents the last error encountered during attach operation, if any. This field must only be set by the entity completing the attach operation, i.e. the external-attacher.\",\n\t\"detachError\":        \"detachError represents the last error encountered during detach operation, if any. This field must only be set by the entity completing the detach operation, i.e. the external-attacher.\",\n}\n\nfunc (VolumeAttachmentStatus) SwaggerDoc() map[string]string {\n\treturn map_VolumeAttachmentStatus\n}\n\nvar map_VolumeAttributesClass = map[string]string{\n\t\"\":           \"VolumeAttributesClass represents a specification of mutable volume attributes defined by the CSI driver. The class can be specified during dynamic provisioning of PersistentVolumeClaims, and changed in the PersistentVolumeClaim spec after provisioning.\",\n\t\"metadata\":   \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"driverName\": \"Name of the CSI driver This field is immutable.\",\n\t\"parameters\": \"parameters hold volume attributes defined by the CSI driver. These values are opaque to the Kubernetes and are passed directly to the CSI driver. The underlying storage provider supports changing these attributes on an existing volume, however the parameters field itself is immutable. To invoke a volume update, a new VolumeAttributesClass should be created with new parameters, and the PersistentVolumeClaim should be updated to reference the new VolumeAttributesClass.\\n\\nThis field is required and must contain at least one key/value pair. The keys cannot be empty, and the maximum number of parameters is 512, with a cumulative max size of 256K. If the CSI driver rejects invalid parameters, the target PersistentVolumeClaim will be set to an \\\"Infeasible\\\" state in the modifyVolumeStatus field.\",\n}\n\nfunc (VolumeAttributesClass) SwaggerDoc() map[string]string {\n\treturn map_VolumeAttributesClass\n}\n\nvar map_VolumeAttributesClassList = map[string]string{\n\t\"\":         \"VolumeAttributesClassList is a collection of VolumeAttributesClass objects.\",\n\t\"metadata\": \"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"items is the list of VolumeAttributesClass objects.\",\n}\n\nfunc (VolumeAttributesClassList) SwaggerDoc() map[string]string {\n\treturn map_VolumeAttributesClassList\n}\n\nvar map_VolumeError = map[string]string{\n\t\"\":        \"VolumeError captures an error encountered during a volume operation.\",\n\t\"time\":    \"time represents the time the error was encountered.\",\n\t\"message\": \"message represents the error encountered during Attach or Detach operation. This string may be logged, so it should not contain sensitive information.\",\n}\n\nfunc (VolumeError) SwaggerDoc() map[string]string {\n\treturn map_VolumeError\n}\n\nvar map_VolumeNodeResources = map[string]string{\n\t\"\":      \"VolumeNodeResources is a set of resource limits for scheduling of volumes.\",\n\t\"count\": \"count indicates the maximum number of unique volumes managed by the CSI driver that can be used on a node. A volume that is both attached and mounted on a node is considered to be used once, not twice. The same rule applies for a unique volume that is shared among multiple pods on the same node. If this field is nil, then the supported number of volumes on this node is unbounded.\",\n}\n\nfunc (VolumeNodeResources) SwaggerDoc() map[string]string {\n\treturn map_VolumeNodeResources\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1beta1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSIDriver) DeepCopyInto(out *CSIDriver) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSIDriver.\nfunc (in *CSIDriver) DeepCopy() *CSIDriver {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSIDriver)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CSIDriver) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSIDriverList) DeepCopyInto(out *CSIDriverList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]CSIDriver, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSIDriverList.\nfunc (in *CSIDriverList) DeepCopy() *CSIDriverList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSIDriverList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CSIDriverList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSIDriverSpec) DeepCopyInto(out *CSIDriverSpec) {\n\t*out = *in\n\tif in.AttachRequired != nil {\n\t\tin, out := &in.AttachRequired, &out.AttachRequired\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.PodInfoOnMount != nil {\n\t\tin, out := &in.PodInfoOnMount, &out.PodInfoOnMount\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.VolumeLifecycleModes != nil {\n\t\tin, out := &in.VolumeLifecycleModes, &out.VolumeLifecycleModes\n\t\t*out = make([]VolumeLifecycleMode, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.StorageCapacity != nil {\n\t\tin, out := &in.StorageCapacity, &out.StorageCapacity\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.FSGroupPolicy != nil {\n\t\tin, out := &in.FSGroupPolicy, &out.FSGroupPolicy\n\t\t*out = new(FSGroupPolicy)\n\t\t**out = **in\n\t}\n\tif in.TokenRequests != nil {\n\t\tin, out := &in.TokenRequests, &out.TokenRequests\n\t\t*out = make([]TokenRequest, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.RequiresRepublish != nil {\n\t\tin, out := &in.RequiresRepublish, &out.RequiresRepublish\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.SELinuxMount != nil {\n\t\tin, out := &in.SELinuxMount, &out.SELinuxMount\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSIDriverSpec.\nfunc (in *CSIDriverSpec) DeepCopy() *CSIDriverSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSIDriverSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSINode) DeepCopyInto(out *CSINode) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSINode.\nfunc (in *CSINode) DeepCopy() *CSINode {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSINode)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CSINode) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSINodeDriver) DeepCopyInto(out *CSINodeDriver) {\n\t*out = *in\n\tif in.TopologyKeys != nil {\n\t\tin, out := &in.TopologyKeys, &out.TopologyKeys\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Allocatable != nil {\n\t\tin, out := &in.Allocatable, &out.Allocatable\n\t\t*out = new(VolumeNodeResources)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSINodeDriver.\nfunc (in *CSINodeDriver) DeepCopy() *CSINodeDriver {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSINodeDriver)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSINodeList) DeepCopyInto(out *CSINodeList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]CSINode, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSINodeList.\nfunc (in *CSINodeList) DeepCopy() *CSINodeList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSINodeList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CSINodeList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSINodeSpec) DeepCopyInto(out *CSINodeSpec) {\n\t*out = *in\n\tif in.Drivers != nil {\n\t\tin, out := &in.Drivers, &out.Drivers\n\t\t*out = make([]CSINodeDriver, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSINodeSpec.\nfunc (in *CSINodeSpec) DeepCopy() *CSINodeSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSINodeSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSIStorageCapacity) DeepCopyInto(out *CSIStorageCapacity) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.NodeTopology != nil {\n\t\tin, out := &in.NodeTopology, &out.NodeTopology\n\t\t*out = new(v1.LabelSelector)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Capacity != nil {\n\t\tin, out := &in.Capacity, &out.Capacity\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\tif in.MaximumVolumeSize != nil {\n\t\tin, out := &in.MaximumVolumeSize, &out.MaximumVolumeSize\n\t\tx := (*in).DeepCopy()\n\t\t*out = &x\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSIStorageCapacity.\nfunc (in *CSIStorageCapacity) DeepCopy() *CSIStorageCapacity {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSIStorageCapacity)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CSIStorageCapacity) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CSIStorageCapacityList) DeepCopyInto(out *CSIStorageCapacityList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]CSIStorageCapacity, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSIStorageCapacityList.\nfunc (in *CSIStorageCapacityList) DeepCopy() *CSIStorageCapacityList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CSIStorageCapacityList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CSIStorageCapacityList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StorageClass) DeepCopyInto(out *StorageClass) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Parameters != nil {\n\t\tin, out := &in.Parameters, &out.Parameters\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.ReclaimPolicy != nil {\n\t\tin, out := &in.ReclaimPolicy, &out.ReclaimPolicy\n\t\t*out = new(corev1.PersistentVolumeReclaimPolicy)\n\t\t**out = **in\n\t}\n\tif in.MountOptions != nil {\n\t\tin, out := &in.MountOptions, &out.MountOptions\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.AllowVolumeExpansion != nil {\n\t\tin, out := &in.AllowVolumeExpansion, &out.AllowVolumeExpansion\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.VolumeBindingMode != nil {\n\t\tin, out := &in.VolumeBindingMode, &out.VolumeBindingMode\n\t\t*out = new(VolumeBindingMode)\n\t\t**out = **in\n\t}\n\tif in.AllowedTopologies != nil {\n\t\tin, out := &in.AllowedTopologies, &out.AllowedTopologies\n\t\t*out = make([]corev1.TopologySelectorTerm, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageClass.\nfunc (in *StorageClass) DeepCopy() *StorageClass {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StorageClass)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *StorageClass) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StorageClassList) DeepCopyInto(out *StorageClassList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]StorageClass, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageClassList.\nfunc (in *StorageClassList) DeepCopy() *StorageClassList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StorageClassList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *StorageClassList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TokenRequest) DeepCopyInto(out *TokenRequest) {\n\t*out = *in\n\tif in.ExpirationSeconds != nil {\n\t\tin, out := &in.ExpirationSeconds, &out.ExpirationSeconds\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TokenRequest.\nfunc (in *TokenRequest) DeepCopy() *TokenRequest {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TokenRequest)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeAttachment) DeepCopyInto(out *VolumeAttachment) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachment.\nfunc (in *VolumeAttachment) DeepCopy() *VolumeAttachment {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeAttachment)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *VolumeAttachment) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeAttachmentList) DeepCopyInto(out *VolumeAttachmentList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]VolumeAttachment, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachmentList.\nfunc (in *VolumeAttachmentList) DeepCopy() *VolumeAttachmentList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeAttachmentList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *VolumeAttachmentList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeAttachmentSource) DeepCopyInto(out *VolumeAttachmentSource) {\n\t*out = *in\n\tif in.PersistentVolumeName != nil {\n\t\tin, out := &in.PersistentVolumeName, &out.PersistentVolumeName\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\tif in.InlineVolumeSpec != nil {\n\t\tin, out := &in.InlineVolumeSpec, &out.InlineVolumeSpec\n\t\t*out = new(corev1.PersistentVolumeSpec)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachmentSource.\nfunc (in *VolumeAttachmentSource) DeepCopy() *VolumeAttachmentSource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeAttachmentSource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeAttachmentSpec) DeepCopyInto(out *VolumeAttachmentSpec) {\n\t*out = *in\n\tin.Source.DeepCopyInto(&out.Source)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachmentSpec.\nfunc (in *VolumeAttachmentSpec) DeepCopy() *VolumeAttachmentSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeAttachmentSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeAttachmentStatus) DeepCopyInto(out *VolumeAttachmentStatus) {\n\t*out = *in\n\tif in.AttachmentMetadata != nil {\n\t\tin, out := &in.AttachmentMetadata, &out.AttachmentMetadata\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.AttachError != nil {\n\t\tin, out := &in.AttachError, &out.AttachError\n\t\t*out = new(VolumeError)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.DetachError != nil {\n\t\tin, out := &in.DetachError, &out.DetachError\n\t\t*out = new(VolumeError)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachmentStatus.\nfunc (in *VolumeAttachmentStatus) DeepCopy() *VolumeAttachmentStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeAttachmentStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeAttributesClass) DeepCopyInto(out *VolumeAttributesClass) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tif in.Parameters != nil {\n\t\tin, out := &in.Parameters, &out.Parameters\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttributesClass.\nfunc (in *VolumeAttributesClass) DeepCopy() *VolumeAttributesClass {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeAttributesClass)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *VolumeAttributesClass) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeAttributesClassList) DeepCopyInto(out *VolumeAttributesClassList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]VolumeAttributesClass, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttributesClassList.\nfunc (in *VolumeAttributesClassList) DeepCopy() *VolumeAttributesClassList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeAttributesClassList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *VolumeAttributesClassList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeError) DeepCopyInto(out *VolumeError) {\n\t*out = *in\n\tin.Time.DeepCopyInto(&out.Time)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeError.\nfunc (in *VolumeError) DeepCopy() *VolumeError {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeError)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *VolumeNodeResources) DeepCopyInto(out *VolumeNodeResources) {\n\t*out = *in\n\tif in.Count != nil {\n\t\tin, out := &in.Count, &out.Count\n\t\t*out = new(int32)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeNodeResources.\nfunc (in *VolumeNodeResources) DeepCopy() *VolumeNodeResources {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(VolumeNodeResources)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/storage/v1beta1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *CSIDriver) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 14\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *CSIDriver) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *CSIDriver) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"storage.k8s.io\", Version: \"v1\", Kind: \"CSIDriver\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *CSIDriver) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *CSIDriverList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 14\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *CSIDriverList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *CSIDriverList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"storage.k8s.io\", Version: \"v1\", Kind: \"CSIDriverList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *CSIDriverList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *CSINode) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 14\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *CSINode) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 17\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *CSINode) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"storage.k8s.io\", Version: \"v1\", Kind: \"CSINode\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *CSINode) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *CSINodeList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 14\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *CSINodeList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 17\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *CSINodeList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"storage.k8s.io\", Version: \"v1\", Kind: \"CSINode\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *CSINodeList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *CSIStorageCapacity) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 21\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *CSIStorageCapacity) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 24\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *CSIStorageCapacity) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"storage.k8s.io\", Version: \"v1\", Kind: \"CSIStorageCapacity\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *CSIStorageCapacity) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 27\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *CSIStorageCapacityList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 21\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *CSIStorageCapacityList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 24\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *CSIStorageCapacityList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"storage.k8s.io\", Version: \"v1\", Kind: \"CSIStorageCapacityList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *CSIStorageCapacityList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 27\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *StorageClass) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 4\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *StorageClass) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *StorageClass) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"storage.k8s.io\", Version: \"v1\", Kind: \"StorageClass\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *StorageClass) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *StorageClassList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 4\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *StorageClassList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *StorageClassList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"storage.k8s.io\", Version: \"v1\", Kind: \"StorageClassList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *StorageClassList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *VolumeAttachment) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 10\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *VolumeAttachment) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *VolumeAttachment) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"storage.k8s.io\", Version: \"v1\", Kind: \"VolumeAttachment\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *VolumeAttachment) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *VolumeAttachmentList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 10\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *VolumeAttachmentList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 19\n}\n\n// APILifecycleReplacement is an autogenerated function, returning the group, version, and kind that should be used instead of this deprecated type.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:replacement=<group>,<version>,<kind>\" tags in types.go.\nfunc (in *VolumeAttachmentList) APILifecycleReplacement() schema.GroupVersionKind {\n\treturn schema.GroupVersionKind{Group: \"storage.k8s.io\", Version: \"v1\", Kind: \"VolumeAttachmentList\"}\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *VolumeAttachmentList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 22\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *VolumeAttributesClass) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 31\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *VolumeAttributesClass) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 34\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *VolumeAttributesClass) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 37\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *VolumeAttributesClassList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 31\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *VolumeAttributesClassList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 34\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *VolumeAttributesClassList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 37\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/storagemigration/v1alpha1/doc.go",
    "content": "/*\nCopyright 2024 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:protobuf-gen=package\n// +k8s:openapi-gen=true\n// +k8s:prerelease-lifecycle-gen=true\n// +groupName=storagemigration.k8s.io\n\npackage v1alpha1 // import \"k8s.io/api/storagemigration/v1alpha1\"\n"
  },
  {
    "path": "vendor/k8s.io/api/storagemigration/v1alpha1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/api/storagemigration/v1alpha1/generated.proto\n\npackage v1alpha1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\n\tk8s_io_api_core_v1 \"k8s.io/api/core/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *GroupVersionResource) Reset()      { *m = GroupVersionResource{} }\nfunc (*GroupVersionResource) ProtoMessage() {}\nfunc (*GroupVersionResource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_0117377a57b172b9, []int{0}\n}\nfunc (m *GroupVersionResource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *GroupVersionResource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *GroupVersionResource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_GroupVersionResource.Merge(m, src)\n}\nfunc (m *GroupVersionResource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *GroupVersionResource) XXX_DiscardUnknown() {\n\txxx_messageInfo_GroupVersionResource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_GroupVersionResource proto.InternalMessageInfo\n\nfunc (m *MigrationCondition) Reset()      { *m = MigrationCondition{} }\nfunc (*MigrationCondition) ProtoMessage() {}\nfunc (*MigrationCondition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_0117377a57b172b9, []int{1}\n}\nfunc (m *MigrationCondition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *MigrationCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *MigrationCondition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MigrationCondition.Merge(m, src)\n}\nfunc (m *MigrationCondition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *MigrationCondition) XXX_DiscardUnknown() {\n\txxx_messageInfo_MigrationCondition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MigrationCondition proto.InternalMessageInfo\n\nfunc (m *StorageVersionMigration) Reset()      { *m = StorageVersionMigration{} }\nfunc (*StorageVersionMigration) ProtoMessage() {}\nfunc (*StorageVersionMigration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_0117377a57b172b9, []int{2}\n}\nfunc (m *StorageVersionMigration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StorageVersionMigration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StorageVersionMigration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StorageVersionMigration.Merge(m, src)\n}\nfunc (m *StorageVersionMigration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StorageVersionMigration) XXX_DiscardUnknown() {\n\txxx_messageInfo_StorageVersionMigration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StorageVersionMigration proto.InternalMessageInfo\n\nfunc (m *StorageVersionMigrationList) Reset()      { *m = StorageVersionMigrationList{} }\nfunc (*StorageVersionMigrationList) ProtoMessage() {}\nfunc (*StorageVersionMigrationList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_0117377a57b172b9, []int{3}\n}\nfunc (m *StorageVersionMigrationList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StorageVersionMigrationList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StorageVersionMigrationList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StorageVersionMigrationList.Merge(m, src)\n}\nfunc (m *StorageVersionMigrationList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StorageVersionMigrationList) XXX_DiscardUnknown() {\n\txxx_messageInfo_StorageVersionMigrationList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StorageVersionMigrationList proto.InternalMessageInfo\n\nfunc (m *StorageVersionMigrationSpec) Reset()      { *m = StorageVersionMigrationSpec{} }\nfunc (*StorageVersionMigrationSpec) ProtoMessage() {}\nfunc (*StorageVersionMigrationSpec) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_0117377a57b172b9, []int{4}\n}\nfunc (m *StorageVersionMigrationSpec) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StorageVersionMigrationSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StorageVersionMigrationSpec) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StorageVersionMigrationSpec.Merge(m, src)\n}\nfunc (m *StorageVersionMigrationSpec) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StorageVersionMigrationSpec) XXX_DiscardUnknown() {\n\txxx_messageInfo_StorageVersionMigrationSpec.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StorageVersionMigrationSpec proto.InternalMessageInfo\n\nfunc (m *StorageVersionMigrationStatus) Reset()      { *m = StorageVersionMigrationStatus{} }\nfunc (*StorageVersionMigrationStatus) ProtoMessage() {}\nfunc (*StorageVersionMigrationStatus) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_0117377a57b172b9, []int{5}\n}\nfunc (m *StorageVersionMigrationStatus) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StorageVersionMigrationStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StorageVersionMigrationStatus) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StorageVersionMigrationStatus.Merge(m, src)\n}\nfunc (m *StorageVersionMigrationStatus) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StorageVersionMigrationStatus) XXX_DiscardUnknown() {\n\txxx_messageInfo_StorageVersionMigrationStatus.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StorageVersionMigrationStatus proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*GroupVersionResource)(nil), \"k8s.io.api.storagemigration.v1alpha1.GroupVersionResource\")\n\tproto.RegisterType((*MigrationCondition)(nil), \"k8s.io.api.storagemigration.v1alpha1.MigrationCondition\")\n\tproto.RegisterType((*StorageVersionMigration)(nil), \"k8s.io.api.storagemigration.v1alpha1.StorageVersionMigration\")\n\tproto.RegisterType((*StorageVersionMigrationList)(nil), \"k8s.io.api.storagemigration.v1alpha1.StorageVersionMigrationList\")\n\tproto.RegisterType((*StorageVersionMigrationSpec)(nil), \"k8s.io.api.storagemigration.v1alpha1.StorageVersionMigrationSpec\")\n\tproto.RegisterType((*StorageVersionMigrationStatus)(nil), \"k8s.io.api.storagemigration.v1alpha1.StorageVersionMigrationStatus\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/api/storagemigration/v1alpha1/generated.proto\", fileDescriptor_0117377a57b172b9)\n}\n\nvar fileDescriptor_0117377a57b172b9 = []byte{\n\t// 719 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x55, 0xcf, 0x4f, 0x13, 0x4f,\n\t0x14, 0xef, 0x42, 0x0b, 0x7c, 0xa7, 0x5f, 0xc0, 0x4c, 0x14, 0x1a, 0x8c, 0x5b, 0x53, 0x09, 0x41,\n\t0xa3, 0xb3, 0xd2, 0x10, 0x43, 0x30, 0x1e, 0x28, 0x07, 0xa3, 0x81, 0x98, 0x0c, 0xc8, 0xc1, 0x78,\n\t0x70, 0xba, 0x1d, 0xb7, 0x43, 0xd9, 0x9d, 0xcd, 0xce, 0x6c, 0x13, 0x6e, 0xfe, 0x09, 0x1e, 0xfc,\n\t0x93, 0x3c, 0x70, 0x31, 0xe1, 0xc8, 0xc5, 0x2a, 0xf5, 0xbf, 0xe0, 0x64, 0x66, 0x76, 0x76, 0xfb,\n\t0x8b, 0x62, 0x13, 0x6e, 0x3b, 0xef, 0xbd, 0xcf, 0x67, 0xde, 0x7b, 0x9f, 0x79, 0x6f, 0xc1, 0x66,\n\t0x6b, 0x4b, 0x20, 0xc6, 0x1d, 0x12, 0x32, 0x47, 0x48, 0x1e, 0x11, 0x8f, 0xfa, 0xcc, 0x8b, 0x88,\n\t0x64, 0x3c, 0x70, 0xda, 0x1b, 0xe4, 0x24, 0x6c, 0x92, 0x0d, 0xc7, 0xa3, 0x01, 0x8d, 0x88, 0xa4,\n\t0x0d, 0x14, 0x46, 0x5c, 0x72, 0xb8, 0x9a, 0xa0, 0x10, 0x09, 0x19, 0x1a, 0x46, 0xa1, 0x14, 0xb5,\n\t0xf2, 0xcc, 0x63, 0xb2, 0x19, 0xd7, 0x91, 0xcb, 0x7d, 0xc7, 0xe3, 0x1e, 0x77, 0x34, 0xb8, 0x1e,\n\t0x7f, 0xd6, 0x27, 0x7d, 0xd0, 0x5f, 0x09, 0xe9, 0x4a, 0xa5, 0x2f, 0x15, 0x97, 0x47, 0xd4, 0x69,\n\t0x8f, 0x5c, 0xbc, 0xd2, 0x97, 0xae, 0x4f, 0xdc, 0x26, 0x0b, 0x68, 0x74, 0xea, 0x84, 0x2d, 0x4f,\n\t0x19, 0x84, 0xe3, 0x53, 0x49, 0xae, 0x43, 0x39, 0xe3, 0x50, 0x51, 0x1c, 0x48, 0xe6, 0xd3, 0x11,\n\t0xc0, 0x8b, 0x7f, 0x01, 0x84, 0xdb, 0xa4, 0x3e, 0x19, 0xc6, 0x55, 0xbe, 0x59, 0xe0, 0xee, 0xeb,\n\t0x88, 0xc7, 0xe1, 0x11, 0x8d, 0x04, 0xe3, 0x01, 0xa6, 0x82, 0xc7, 0x91, 0x4b, 0xe1, 0x23, 0x50,\n\t0xf0, 0x94, 0xbd, 0x64, 0x3d, 0xb4, 0xd6, 0xff, 0xab, 0xcd, 0x9f, 0x75, 0xca, 0xb9, 0x6e, 0xa7,\n\t0x5c, 0xd0, 0xc1, 0x38, 0xf1, 0xc1, 0xc7, 0x60, 0xb6, 0x9d, 0xe0, 0x4a, 0x53, 0x3a, 0x6c, 0xd1,\n\t0x84, 0xcd, 0xa6, 0x74, 0xa9, 0x1f, 0x3e, 0x05, 0x73, 0x91, 0xe1, 0x2e, 0x4d, 0xeb, 0xd8, 0x3b,\n\t0x26, 0x76, 0x2e, 0xbd, 0x13, 0x67, 0x11, 0x95, 0x9f, 0x53, 0x00, 0xee, 0xa7, 0xfa, 0xec, 0xf2,\n\t0xa0, 0xc1, 0xd4, 0x07, 0xdc, 0x06, 0x79, 0x79, 0x1a, 0x52, 0x93, 0xd3, 0x9a, 0x21, 0xc8, 0x1f,\n\t0x9e, 0x86, 0xf4, 0xaa, 0x53, 0x5e, 0x1a, 0x45, 0x28, 0x0f, 0xd6, 0x18, 0xb8, 0x07, 0x66, 0x84,\n\t0x24, 0x32, 0x16, 0x26, 0xd5, 0x4d, 0x83, 0x9e, 0x39, 0xd0, 0xd6, 0xab, 0x4e, 0xf9, 0x1a, 0x39,\n\t0x51, 0xc6, 0x94, 0x44, 0x61, 0xc3, 0x01, 0x8f, 0xc1, 0xc2, 0x09, 0x11, 0xf2, 0x7d, 0xd8, 0x20,\n\t0x92, 0x1e, 0x32, 0x3f, 0x29, 0xaa, 0x58, 0x7d, 0x82, 0x7a, 0x0f, 0x2d, 0x13, 0x02, 0x85, 0x2d,\n\t0x4f, 0x19, 0x04, 0x52, 0x7a, 0xa3, 0xf6, 0x06, 0x52, 0x88, 0xda, 0x92, 0xc9, 0x60, 0x61, 0x6f,\n\t0x80, 0x09, 0x0f, 0x31, 0xc3, 0x35, 0x30, 0x13, 0x51, 0x22, 0x78, 0x50, 0xca, 0xeb, 0xcc, 0x17,\n\t0xd2, 0xcc, 0xb1, 0xb6, 0x62, 0xe3, 0x55, 0x6a, 0xf8, 0x54, 0x08, 0xe2, 0xd1, 0x52, 0x61, 0x50,\n\t0x8d, 0xfd, 0xc4, 0x8c, 0x53, 0x7f, 0xe5, 0xc7, 0x14, 0x58, 0x3e, 0x48, 0xc6, 0xc0, 0x28, 0x95,\n\t0xf5, 0x0e, 0x7e, 0x02, 0x73, 0x2a, 0xcd, 0x06, 0x91, 0x44, 0x37, 0xba, 0x58, 0x7d, 0x3e, 0x59,\n\t0x51, 0xef, 0xea, 0xc7, 0xd4, 0x95, 0xfb, 0x54, 0x92, 0x1a, 0x34, 0x37, 0x83, 0x9e, 0x0d, 0x67,\n\t0xac, 0xd0, 0x05, 0x79, 0x11, 0x52, 0x57, 0x0b, 0x51, 0xac, 0xee, 0xa0, 0x49, 0x66, 0x13, 0x8d,\n\t0x49, 0xf7, 0x20, 0xa4, 0x6e, 0xed, 0xff, 0xf4, 0x25, 0xa8, 0x13, 0xd6, 0xe4, 0xb0, 0x95, 0xe9,\n\t0x9d, 0x28, 0xb3, 0x7b, 0xbb, 0x6b, 0x34, 0x55, 0xaf, 0xf5, 0x83, 0xcf, 0xa1, 0xf2, 0xcb, 0x02,\n\t0xf7, 0xc7, 0x20, 0xf7, 0x98, 0x90, 0xf0, 0xe3, 0x48, 0x4f, 0xd1, 0x64, 0x3d, 0x55, 0x68, 0xdd,\n\t0xd1, 0x6c, 0x5a, 0x52, 0x4b, 0x5f, 0x3f, 0xeb, 0xa0, 0xc0, 0x24, 0xf5, 0xd5, 0xcb, 0x9e, 0x5e,\n\t0x2f, 0x56, 0x5f, 0xdd, 0xaa, 0xd2, 0xde, 0xa8, 0xbf, 0x51, 0x9c, 0x38, 0xa1, 0xae, 0x7c, 0x1f,\n\t0x5f, 0xa1, 0x6a, 0x3a, 0x6c, 0xf6, 0xcd, 0x77, 0x52, 0xe1, 0xf6, 0x64, 0x69, 0x5c, 0xb7, 0x7d,\n\t0x6e, 0xda, 0x0d, 0xf0, 0x25, 0x98, 0x77, 0x79, 0x20, 0x59, 0x10, 0xd3, 0x43, 0xde, 0xa2, 0xe9,\n\t0xea, 0xb9, 0x67, 0x20, 0xf3, 0xbb, 0xfd, 0x4e, 0x3c, 0x18, 0x5b, 0x39, 0xb7, 0xc0, 0x83, 0x1b,\n\t0x25, 0x86, 0x27, 0x00, 0xb8, 0xe9, 0xd0, 0x8b, 0x92, 0xa5, 0x3b, 0xba, 0x35, 0x59, 0x29, 0xa3,\n\t0xfb, 0xa7, 0x37, 0x08, 0x99, 0x49, 0xe0, 0x3e, 0x7e, 0xb8, 0x03, 0x16, 0xd3, 0xc2, 0x8e, 0x06,\n\t0x36, 0xe9, 0xb2, 0x01, 0x2e, 0xe2, 0x41, 0x37, 0x1e, 0x8e, 0xaf, 0xbd, 0x3d, 0xbb, 0xb4, 0x73,\n\t0xe7, 0x97, 0x76, 0xee, 0xe2, 0xd2, 0xce, 0x7d, 0xe9, 0xda, 0xd6, 0x59, 0xd7, 0xb6, 0xce, 0xbb,\n\t0xb6, 0x75, 0xd1, 0xb5, 0xad, 0xdf, 0x5d, 0xdb, 0xfa, 0xfa, 0xc7, 0xce, 0x7d, 0x58, 0x9d, 0xe4,\n\t0xb7, 0xf9, 0x37, 0x00, 0x00, 0xff, 0xff, 0x01, 0xc1, 0xb1, 0xd8, 0x5d, 0x07, 0x00, 0x00,\n}\n\nfunc (m *GroupVersionResource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GroupVersionResource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *GroupVersionResource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Resource)\n\tcopy(dAtA[i:], m.Resource)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Resource)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Version)\n\tcopy(dAtA[i:], m.Version)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Version)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Group)\n\tcopy(dAtA[i:], m.Group)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Group)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *MigrationCondition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *MigrationCondition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *MigrationCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\t{\n\t\tsize, err := m.LastUpdateTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StorageVersionMigration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StorageVersionMigration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StorageVersionMigration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Status.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\t{\n\t\tsize, err := m.Spec.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StorageVersionMigrationList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StorageVersionMigrationList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StorageVersionMigrationList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StorageVersionMigrationSpec) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StorageVersionMigrationSpec) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StorageVersionMigrationSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.ContinueToken)\n\tcopy(dAtA[i:], m.ContinueToken)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ContinueToken)))\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.Resource.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StorageVersionMigrationStatus) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StorageVersionMigrationStatus) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StorageVersionMigrationStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.ResourceVersion)\n\tcopy(dAtA[i:], m.ResourceVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ResourceVersion)))\n\ti--\n\tdAtA[i] = 0x12\n\tif len(m.Conditions) > 0 {\n\t\tfor iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *GroupVersionResource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Group)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Version)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Resource)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *MigrationCondition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.LastUpdateTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *StorageVersionMigration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Spec.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Status.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *StorageVersionMigrationList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *StorageVersionMigrationSpec) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.Resource.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.ContinueToken)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *StorageVersionMigrationStatus) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Conditions) > 0 {\n\t\tfor _, e := range m.Conditions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.ResourceVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *GroupVersionResource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&GroupVersionResource{`,\n\t\t`Group:` + fmt.Sprintf(\"%v\", this.Group) + `,`,\n\t\t`Version:` + fmt.Sprintf(\"%v\", this.Version) + `,`,\n\t\t`Resource:` + fmt.Sprintf(\"%v\", this.Resource) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *MigrationCondition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&MigrationCondition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`LastUpdateTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastUpdateTime), \"Time\", \"v1.Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StorageVersionMigration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StorageVersionMigration{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ObjectMeta), \"ObjectMeta\", \"v1.ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Spec:` + strings.Replace(strings.Replace(this.Spec.String(), \"StorageVersionMigrationSpec\", \"StorageVersionMigrationSpec\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + strings.Replace(strings.Replace(this.Status.String(), \"StorageVersionMigrationStatus\", \"StorageVersionMigrationStatus\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StorageVersionMigrationList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]StorageVersionMigration{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"StorageVersionMigration\", \"StorageVersionMigration\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&StorageVersionMigrationList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StorageVersionMigrationSpec) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StorageVersionMigrationSpec{`,\n\t\t`Resource:` + strings.Replace(strings.Replace(this.Resource.String(), \"GroupVersionResource\", \"GroupVersionResource\", 1), `&`, ``, 1) + `,`,\n\t\t`ContinueToken:` + fmt.Sprintf(\"%v\", this.ContinueToken) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StorageVersionMigrationStatus) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForConditions := \"[]MigrationCondition{\"\n\tfor _, f := range this.Conditions {\n\t\trepeatedStringForConditions += strings.Replace(strings.Replace(f.String(), \"MigrationCondition\", \"MigrationCondition\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForConditions += \"}\"\n\ts := strings.Join([]string{`&StorageVersionMigrationStatus{`,\n\t\t`Conditions:` + repeatedStringForConditions + `,`,\n\t\t`ResourceVersion:` + fmt.Sprintf(\"%v\", this.ResourceVersion) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *GroupVersionResource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GroupVersionResource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GroupVersionResource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Group\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Group = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Version\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Version = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resource\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resource = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *MigrationCondition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: MigrationCondition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: MigrationCondition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = MigrationConditionType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastUpdateTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastUpdateTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StorageVersionMigration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StorageVersionMigration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StorageVersionMigration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Spec\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StorageVersionMigrationList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StorageVersionMigrationList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StorageVersionMigrationList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, StorageVersionMigration{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StorageVersionMigrationSpec) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StorageVersionMigrationSpec: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StorageVersionMigrationSpec: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resource\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Resource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContinueToken\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ContinueToken = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StorageVersionMigrationStatus) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StorageVersionMigrationStatus: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StorageVersionMigrationStatus: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Conditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Conditions = append(m.Conditions, MigrationCondition{})\n\t\t\tif err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/api/storagemigration/v1alpha1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.api.storagemigration.v1alpha1;\n\nimport \"k8s.io/api/core/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/api/storagemigration/v1alpha1\";\n\n// The names of the group, the version, and the resource.\nmessage GroupVersionResource {\n  // The name of the group.\n  optional string group = 1;\n\n  // The name of the version.\n  optional string version = 2;\n\n  // The name of the resource.\n  optional string resource = 3;\n}\n\n// Describes the state of a migration at a certain point.\nmessage MigrationCondition {\n  // Type of the condition.\n  optional string type = 1;\n\n  // Status of the condition, one of True, False, Unknown.\n  optional string status = 2;\n\n  // The last time this condition was updated.\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastUpdateTime = 3;\n\n  // The reason for the condition's last transition.\n  // +optional\n  optional string reason = 4;\n\n  // A human readable message indicating details about the transition.\n  // +optional\n  optional string message = 5;\n}\n\n// StorageVersionMigration represents a migration of stored data to the latest\n// storage version.\nmessage StorageVersionMigration {\n  // Standard object metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;\n\n  // Specification of the migration.\n  // +optional\n  optional StorageVersionMigrationSpec spec = 2;\n\n  // Status of the migration.\n  // +optional\n  optional StorageVersionMigrationStatus status = 3;\n}\n\n// StorageVersionMigrationList is a collection of storage version migrations.\nmessage StorageVersionMigrationList {\n  // Standard list metadata\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;\n\n  // Items is the list of StorageVersionMigration\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=type\n  repeated StorageVersionMigration items = 2;\n}\n\n// Spec of the storage version migration.\nmessage StorageVersionMigrationSpec {\n  // The resource that is being migrated. The migrator sends requests to\n  // the endpoint serving the resource.\n  // Immutable.\n  optional GroupVersionResource resource = 1;\n\n  // The token used in the list options to get the next chunk of objects\n  // to migrate. When the .status.conditions indicates the migration is\n  // \"Running\", users can use this token to check the progress of the\n  // migration.\n  // +optional\n  optional string continueToken = 2;\n}\n\n// Status of the storage version migration.\nmessage StorageVersionMigrationStatus {\n  // The latest available observations of the migration's current state.\n  // +patchMergeKey=type\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=type\n  // +optional\n  repeated MigrationCondition conditions = 1;\n\n  // ResourceVersion to compare with the GC cache for performing the migration.\n  // This is the current resource version of given group, version and resource when\n  // kube-controller-manager first observes this StorageVersionMigration resource.\n  optional string resourceVersion = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/api/storagemigration/v1alpha1/register.go",
    "content": "/*\nCopyright 2024 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nimport (\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"storagemigration.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1alpha1\"}\n\n// Kind takes an unqualified kind and returns a Group qualified GroupKind\nfunc Kind(kind string) schema.GroupKind {\n\treturn SchemeGroupVersion.WithKind(kind).GroupKind()\n}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\tSchemeBuilder      = runtime.NewSchemeBuilder(addKnownTypes)\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// Adds the list of known types to the given scheme.\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&StorageVersionMigration{},\n\t\t&StorageVersionMigrationList{},\n\t)\n\n\t// Add the watch version that applies\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/storagemigration/v1alpha1/types.go",
    "content": "/*\nCopyright 2024 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// +genclient\n// +genclient:nonNamespaced\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.30\n\n// StorageVersionMigration represents a migration of stored data to the latest\n// storage version.\ntype StorageVersionMigration struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\t// Standard object metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// Specification of the migration.\n\t// +optional\n\tSpec StorageVersionMigrationSpec `json:\"spec,omitempty\" protobuf:\"bytes,2,opt,name=spec\"`\n\t// Status of the migration.\n\t// +optional\n\tStatus StorageVersionMigrationStatus `json:\"status,omitempty\" protobuf:\"bytes,3,opt,name=status\"`\n}\n\n// Spec of the storage version migration.\ntype StorageVersionMigrationSpec struct {\n\t// The resource that is being migrated. The migrator sends requests to\n\t// the endpoint serving the resource.\n\t// Immutable.\n\tResource GroupVersionResource `json:\"resource\" protobuf:\"bytes,1,opt,name=resource\"`\n\t// The token used in the list options to get the next chunk of objects\n\t// to migrate. When the .status.conditions indicates the migration is\n\t// \"Running\", users can use this token to check the progress of the\n\t// migration.\n\t// +optional\n\tContinueToken string `json:\"continueToken,omitempty\" protobuf:\"bytes,2,opt,name=continueToken\"`\n\t// TODO: consider recording the storage version hash when the migration\n\t// is created. It can avoid races.\n}\n\n// The names of the group, the version, and the resource.\ntype GroupVersionResource struct {\n\t// The name of the group.\n\tGroup string `json:\"group,omitempty\" protobuf:\"bytes,1,opt,name=group\"`\n\t// The name of the version.\n\tVersion string `json:\"version,omitempty\" protobuf:\"bytes,2,opt,name=version\"`\n\t// The name of the resource.\n\tResource string `json:\"resource,omitempty\" protobuf:\"bytes,3,opt,name=resource\"`\n}\n\ntype MigrationConditionType string\n\nconst (\n\t// Indicates that the migration is running.\n\tMigrationRunning MigrationConditionType = \"Running\"\n\t// Indicates that the migration has completed successfully.\n\tMigrationSucceeded MigrationConditionType = \"Succeeded\"\n\t// Indicates that the migration has failed.\n\tMigrationFailed MigrationConditionType = \"Failed\"\n)\n\n// Describes the state of a migration at a certain point.\ntype MigrationCondition struct {\n\t// Type of the condition.\n\tType MigrationConditionType `json:\"type\" protobuf:\"bytes,1,opt,name=type,casttype=MigrationConditionType\"`\n\t// Status of the condition, one of True, False, Unknown.\n\tStatus corev1.ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus\"`\n\t// The last time this condition was updated.\n\t// +optional\n\tLastUpdateTime metav1.Time `json:\"lastUpdateTime,omitempty\" protobuf:\"bytes,3,opt,name=lastUpdateTime\"`\n\t// The reason for the condition's last transition.\n\t// +optional\n\tReason string `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason\"`\n\t// A human readable message indicating details about the transition.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,5,opt,name=message\"`\n}\n\n// Status of the storage version migration.\ntype StorageVersionMigrationStatus struct {\n\t// The latest available observations of the migration's current state.\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=type\n\t// +optional\n\tConditions []MigrationCondition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\t// ResourceVersion to compare with the GC cache for performing the migration.\n\t// This is the current resource version of given group, version and resource when\n\t// kube-controller-manager first observes this StorageVersionMigration resource.\n\tResourceVersion string `json:\"resourceVersion,omitempty\" protobuf:\"bytes,2,opt,name=resourceVersion\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:prerelease-lifecycle-gen:introduced=1.30\n\n// StorageVersionMigrationList is a collection of storage version migrations.\ntype StorageVersionMigrationList struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Standard list metadata\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tmetav1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\t// Items is the list of StorageVersionMigration\n\t// +patchMergeKey=type\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=type\n\tItems []StorageVersionMigration `json:\"items\" listType:\"map\" listMapKey:\"type\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,2,rep,name=items\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/storagemigration/v1alpha1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1alpha1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_GroupVersionResource = map[string]string{\n\t\"\":         \"The names of the group, the version, and the resource.\",\n\t\"group\":    \"The name of the group.\",\n\t\"version\":  \"The name of the version.\",\n\t\"resource\": \"The name of the resource.\",\n}\n\nfunc (GroupVersionResource) SwaggerDoc() map[string]string {\n\treturn map_GroupVersionResource\n}\n\nvar map_MigrationCondition = map[string]string{\n\t\"\":               \"Describes the state of a migration at a certain point.\",\n\t\"type\":           \"Type of the condition.\",\n\t\"status\":         \"Status of the condition, one of True, False, Unknown.\",\n\t\"lastUpdateTime\": \"The last time this condition was updated.\",\n\t\"reason\":         \"The reason for the condition's last transition.\",\n\t\"message\":        \"A human readable message indicating details about the transition.\",\n}\n\nfunc (MigrationCondition) SwaggerDoc() map[string]string {\n\treturn map_MigrationCondition\n}\n\nvar map_StorageVersionMigration = map[string]string{\n\t\"\":         \"StorageVersionMigration represents a migration of stored data to the latest storage version.\",\n\t\"metadata\": \"Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"spec\":     \"Specification of the migration.\",\n\t\"status\":   \"Status of the migration.\",\n}\n\nfunc (StorageVersionMigration) SwaggerDoc() map[string]string {\n\treturn map_StorageVersionMigration\n}\n\nvar map_StorageVersionMigrationList = map[string]string{\n\t\"\":         \"StorageVersionMigrationList is a collection of storage version migrations.\",\n\t\"metadata\": \"Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"items\":    \"Items is the list of StorageVersionMigration\",\n}\n\nfunc (StorageVersionMigrationList) SwaggerDoc() map[string]string {\n\treturn map_StorageVersionMigrationList\n}\n\nvar map_StorageVersionMigrationSpec = map[string]string{\n\t\"\":              \"Spec of the storage version migration.\",\n\t\"resource\":      \"The resource that is being migrated. The migrator sends requests to the endpoint serving the resource. Immutable.\",\n\t\"continueToken\": \"The token used in the list options to get the next chunk of objects to migrate. When the .status.conditions indicates the migration is \\\"Running\\\", users can use this token to check the progress of the migration.\",\n}\n\nfunc (StorageVersionMigrationSpec) SwaggerDoc() map[string]string {\n\treturn map_StorageVersionMigrationSpec\n}\n\nvar map_StorageVersionMigrationStatus = map[string]string{\n\t\"\":                \"Status of the storage version migration.\",\n\t\"conditions\":      \"The latest available observations of the migration's current state.\",\n\t\"resourceVersion\": \"ResourceVersion to compare with the GC cache for performing the migration. This is the current resource version of given group, version and resource when kube-controller-manager first observes this StorageVersionMigration resource.\",\n}\n\nfunc (StorageVersionMigrationStatus) SwaggerDoc() map[string]string {\n\treturn map_StorageVersionMigrationStatus\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/api/storagemigration/v1alpha1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *GroupVersionResource) DeepCopyInto(out *GroupVersionResource) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupVersionResource.\nfunc (in *GroupVersionResource) DeepCopy() *GroupVersionResource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(GroupVersionResource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *MigrationCondition) DeepCopyInto(out *MigrationCondition) {\n\t*out = *in\n\tin.LastUpdateTime.DeepCopyInto(&out.LastUpdateTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MigrationCondition.\nfunc (in *MigrationCondition) DeepCopy() *MigrationCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MigrationCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StorageVersionMigration) DeepCopyInto(out *StorageVersionMigration) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\tout.Spec = in.Spec\n\tin.Status.DeepCopyInto(&out.Status)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageVersionMigration.\nfunc (in *StorageVersionMigration) DeepCopy() *StorageVersionMigration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StorageVersionMigration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *StorageVersionMigration) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StorageVersionMigrationList) DeepCopyInto(out *StorageVersionMigrationList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]StorageVersionMigration, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageVersionMigrationList.\nfunc (in *StorageVersionMigrationList) DeepCopy() *StorageVersionMigrationList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StorageVersionMigrationList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *StorageVersionMigrationList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StorageVersionMigrationSpec) DeepCopyInto(out *StorageVersionMigrationSpec) {\n\t*out = *in\n\tout.Resource = in.Resource\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageVersionMigrationSpec.\nfunc (in *StorageVersionMigrationSpec) DeepCopy() *StorageVersionMigrationSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StorageVersionMigrationSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StorageVersionMigrationStatus) DeepCopyInto(out *StorageVersionMigrationStatus) {\n\t*out = *in\n\tif in.Conditions != nil {\n\t\tin, out := &in.Conditions, &out.Conditions\n\t\t*out = make([]MigrationCondition, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StorageVersionMigrationStatus.\nfunc (in *StorageVersionMigrationStatus) DeepCopy() *StorageVersionMigrationStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StorageVersionMigrationStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/api/storagemigration/v1alpha1/zz_generated.prerelease-lifecycle.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by prerelease-lifecycle-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *StorageVersionMigration) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 30\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *StorageVersionMigration) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 33\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *StorageVersionMigration) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 36\n}\n\n// APILifecycleIntroduced is an autogenerated function, returning the release in which the API struct was introduced as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:introduced\" tags in types.go.\nfunc (in *StorageVersionMigrationList) APILifecycleIntroduced() (major, minor int) {\n\treturn 1, 30\n}\n\n// APILifecycleDeprecated is an autogenerated function, returning the release in which the API struct was or will be deprecated as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:deprecated\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:introduced\" plus three minor.\nfunc (in *StorageVersionMigrationList) APILifecycleDeprecated() (major, minor int) {\n\treturn 1, 33\n}\n\n// APILifecycleRemoved is an autogenerated function, returning the release in which the API is no longer served as int versions of major and minor for comparison.\n// It is controlled by \"k8s:prerelease-lifecycle-gen:removed\" tags in types.go or  \"k8s:prerelease-lifecycle-gen:deprecated\" plus three minor.\nfunc (in *StorageVersionMigrationList) APILifecycleRemoved() (major, minor int) {\n\treturn 1, 36\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/equality/semantic.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage equality\n\nimport (\n\t\"k8s.io/apimachinery/pkg/api/resource\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/conversion\"\n\t\"k8s.io/apimachinery/pkg/fields\"\n\t\"k8s.io/apimachinery/pkg/labels\"\n)\n\n// Semantic can do semantic deep equality checks for api objects.\n// Example: apiequality.Semantic.DeepEqual(aPod, aPodWithNonNilButEmptyMaps) == true\nvar Semantic = conversion.EqualitiesOrDie(\n\tfunc(a, b resource.Quantity) bool {\n\t\t// Ignore formatting, only care that numeric value stayed the same.\n\t\t// TODO: if we decide it's important, it should be safe to start comparing the format.\n\t\t//\n\t\t// Uninitialized quantities are equivalent to 0 quantities.\n\t\treturn a.Cmp(b) == 0\n\t},\n\tfunc(a, b metav1.MicroTime) bool {\n\t\treturn a.UTC() == b.UTC()\n\t},\n\tfunc(a, b metav1.Time) bool {\n\t\treturn a.UTC() == b.UTC()\n\t},\n\tfunc(a, b labels.Selector) bool {\n\t\treturn a.String() == b.String()\n\t},\n\tfunc(a, b fields.Selector) bool {\n\t\treturn a.String() == b.String()\n\t},\n)\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/errors/OWNERS",
    "content": "# See the OWNERS docs at https://go.k8s.io/owners\n\nreviewers:\n  - thockin\n  - smarterclayton\n  - wojtek-t\n  - deads2k\n  - derekwaynecarr\n  - caesarxuchao\n  - mikedanese\n  - liggitt\n  - saad-ali\n  - janetkuo\n  - tallclair\n  - dims\n  - cjcullen\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/errors/doc.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package errors provides detailed error types for api field validation.\npackage errors // import \"k8s.io/apimachinery/pkg/api/errors\"\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/errors/errors.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage errors\n\nimport (\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"reflect\"\n\t\"strings\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/util/validation/field\"\n)\n\n// StatusError is an error intended for consumption by a REST API server; it can also be\n// reconstructed by clients from a REST response. Public to allow easy type switches.\ntype StatusError struct {\n\tErrStatus metav1.Status\n}\n\n// APIStatus is exposed by errors that can be converted to an api.Status object\n// for finer grained details.\ntype APIStatus interface {\n\tStatus() metav1.Status\n}\n\nvar _ error = &StatusError{}\n\nvar knownReasons = map[metav1.StatusReason]struct{}{\n\t// metav1.StatusReasonUnknown : {}\n\tmetav1.StatusReasonUnauthorized:          {},\n\tmetav1.StatusReasonForbidden:             {},\n\tmetav1.StatusReasonNotFound:              {},\n\tmetav1.StatusReasonAlreadyExists:         {},\n\tmetav1.StatusReasonConflict:              {},\n\tmetav1.StatusReasonGone:                  {},\n\tmetav1.StatusReasonInvalid:               {},\n\tmetav1.StatusReasonServerTimeout:         {},\n\tmetav1.StatusReasonStoreReadError:        {},\n\tmetav1.StatusReasonTimeout:               {},\n\tmetav1.StatusReasonTooManyRequests:       {},\n\tmetav1.StatusReasonBadRequest:            {},\n\tmetav1.StatusReasonMethodNotAllowed:      {},\n\tmetav1.StatusReasonNotAcceptable:         {},\n\tmetav1.StatusReasonRequestEntityTooLarge: {},\n\tmetav1.StatusReasonUnsupportedMediaType:  {},\n\tmetav1.StatusReasonInternalError:         {},\n\tmetav1.StatusReasonExpired:               {},\n\tmetav1.StatusReasonServiceUnavailable:    {},\n}\n\n// Error implements the Error interface.\nfunc (e *StatusError) Error() string {\n\treturn e.ErrStatus.Message\n}\n\n// Status allows access to e's status without having to know the detailed workings\n// of StatusError.\nfunc (e *StatusError) Status() metav1.Status {\n\treturn e.ErrStatus\n}\n\n// DebugError reports extended info about the error to debug output.\nfunc (e *StatusError) DebugError() (string, []interface{}) {\n\tif out, err := json.MarshalIndent(e.ErrStatus, \"\", \"  \"); err == nil {\n\t\treturn \"server response object: %s\", []interface{}{string(out)}\n\t}\n\treturn \"server response object: %#v\", []interface{}{e.ErrStatus}\n}\n\n// HasStatusCause returns true if the provided error has a details cause\n// with the provided type name.\n// It supports wrapped errors and returns false when the error is nil.\nfunc HasStatusCause(err error, name metav1.CauseType) bool {\n\t_, ok := StatusCause(err, name)\n\treturn ok\n}\n\n// StatusCause returns the named cause from the provided error if it exists and\n// the error unwraps to the type APIStatus. Otherwise it returns false.\nfunc StatusCause(err error, name metav1.CauseType) (metav1.StatusCause, bool) {\n\tstatus, ok := err.(APIStatus)\n\tif (ok || errors.As(err, &status)) && status.Status().Details != nil {\n\t\tfor _, cause := range status.Status().Details.Causes {\n\t\t\tif cause.Type == name {\n\t\t\t\treturn cause, true\n\t\t\t}\n\t\t}\n\t}\n\treturn metav1.StatusCause{}, false\n}\n\n// UnexpectedObjectError can be returned by FromObject if it's passed a non-status object.\ntype UnexpectedObjectError struct {\n\tObject runtime.Object\n}\n\n// Error returns an error message describing 'u'.\nfunc (u *UnexpectedObjectError) Error() string {\n\treturn fmt.Sprintf(\"unexpected object: %v\", u.Object)\n}\n\n// FromObject generates an StatusError from an metav1.Status, if that is the type of obj; otherwise,\n// returns an UnexpecteObjectError.\nfunc FromObject(obj runtime.Object) error {\n\tswitch t := obj.(type) {\n\tcase *metav1.Status:\n\t\treturn &StatusError{ErrStatus: *t}\n\tcase runtime.Unstructured:\n\t\tvar status metav1.Status\n\t\tobj := t.UnstructuredContent()\n\t\tif !reflect.DeepEqual(obj[\"kind\"], \"Status\") {\n\t\t\tbreak\n\t\t}\n\t\tif err := runtime.DefaultUnstructuredConverter.FromUnstructured(t.UnstructuredContent(), &status); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif status.APIVersion != \"v1\" && status.APIVersion != \"meta.k8s.io/v1\" {\n\t\t\tbreak\n\t\t}\n\t\treturn &StatusError{ErrStatus: status}\n\t}\n\treturn &UnexpectedObjectError{obj}\n}\n\n// NewNotFound returns a new error which indicates that the resource of the kind and the name was not found.\nfunc NewNotFound(qualifiedResource schema.GroupResource, name string) *StatusError {\n\treturn &StatusError{metav1.Status{\n\t\tStatus: metav1.StatusFailure,\n\t\tCode:   http.StatusNotFound,\n\t\tReason: metav1.StatusReasonNotFound,\n\t\tDetails: &metav1.StatusDetails{\n\t\t\tGroup: qualifiedResource.Group,\n\t\t\tKind:  qualifiedResource.Resource,\n\t\t\tName:  name,\n\t\t},\n\t\tMessage: fmt.Sprintf(\"%s %q not found\", qualifiedResource.String(), name),\n\t}}\n}\n\n// NewAlreadyExists returns an error indicating the item requested exists by that identifier.\nfunc NewAlreadyExists(qualifiedResource schema.GroupResource, name string) *StatusError {\n\treturn &StatusError{metav1.Status{\n\t\tStatus: metav1.StatusFailure,\n\t\tCode:   http.StatusConflict,\n\t\tReason: metav1.StatusReasonAlreadyExists,\n\t\tDetails: &metav1.StatusDetails{\n\t\t\tGroup: qualifiedResource.Group,\n\t\t\tKind:  qualifiedResource.Resource,\n\t\t\tName:  name,\n\t\t},\n\t\tMessage: fmt.Sprintf(\"%s %q already exists\", qualifiedResource.String(), name),\n\t}}\n}\n\n// NewGenerateNameConflict returns an error indicating the server\n// was not able to generate a valid name for a resource.\nfunc NewGenerateNameConflict(qualifiedResource schema.GroupResource, name string, retryAfterSeconds int) *StatusError {\n\treturn &StatusError{metav1.Status{\n\t\tStatus: metav1.StatusFailure,\n\t\tCode:   http.StatusConflict,\n\t\tReason: metav1.StatusReasonAlreadyExists,\n\t\tDetails: &metav1.StatusDetails{\n\t\t\tGroup:             qualifiedResource.Group,\n\t\t\tKind:              qualifiedResource.Resource,\n\t\t\tName:              name,\n\t\t\tRetryAfterSeconds: int32(retryAfterSeconds),\n\t\t},\n\t\tMessage: fmt.Sprintf(\n\t\t\t\"%s %q already exists, the server was not able to generate a unique name for the object\",\n\t\t\tqualifiedResource.String(), name),\n\t}}\n}\n\n// NewUnauthorized returns an error indicating the client is not authorized to perform the requested\n// action.\nfunc NewUnauthorized(reason string) *StatusError {\n\tmessage := reason\n\tif len(message) == 0 {\n\t\tmessage = \"not authorized\"\n\t}\n\treturn &StatusError{metav1.Status{\n\t\tStatus:  metav1.StatusFailure,\n\t\tCode:    http.StatusUnauthorized,\n\t\tReason:  metav1.StatusReasonUnauthorized,\n\t\tMessage: message,\n\t}}\n}\n\n// NewForbidden returns an error indicating the requested action was forbidden\nfunc NewForbidden(qualifiedResource schema.GroupResource, name string, err error) *StatusError {\n\tvar message string\n\tif qualifiedResource.Empty() {\n\t\tmessage = fmt.Sprintf(\"forbidden: %v\", err)\n\t} else if name == \"\" {\n\t\tmessage = fmt.Sprintf(\"%s is forbidden: %v\", qualifiedResource.String(), err)\n\t} else {\n\t\tmessage = fmt.Sprintf(\"%s %q is forbidden: %v\", qualifiedResource.String(), name, err)\n\t}\n\treturn &StatusError{metav1.Status{\n\t\tStatus: metav1.StatusFailure,\n\t\tCode:   http.StatusForbidden,\n\t\tReason: metav1.StatusReasonForbidden,\n\t\tDetails: &metav1.StatusDetails{\n\t\t\tGroup: qualifiedResource.Group,\n\t\t\tKind:  qualifiedResource.Resource,\n\t\t\tName:  name,\n\t\t},\n\t\tMessage: message,\n\t}}\n}\n\n// NewConflict returns an error indicating the item can't be updated as provided.\nfunc NewConflict(qualifiedResource schema.GroupResource, name string, err error) *StatusError {\n\treturn &StatusError{metav1.Status{\n\t\tStatus: metav1.StatusFailure,\n\t\tCode:   http.StatusConflict,\n\t\tReason: metav1.StatusReasonConflict,\n\t\tDetails: &metav1.StatusDetails{\n\t\t\tGroup: qualifiedResource.Group,\n\t\t\tKind:  qualifiedResource.Resource,\n\t\t\tName:  name,\n\t\t},\n\t\tMessage: fmt.Sprintf(\"Operation cannot be fulfilled on %s %q: %v\", qualifiedResource.String(), name, err),\n\t}}\n}\n\n// NewApplyConflict returns an error including details on the requests apply conflicts\nfunc NewApplyConflict(causes []metav1.StatusCause, message string) *StatusError {\n\treturn &StatusError{ErrStatus: metav1.Status{\n\t\tStatus: metav1.StatusFailure,\n\t\tCode:   http.StatusConflict,\n\t\tReason: metav1.StatusReasonConflict,\n\t\tDetails: &metav1.StatusDetails{\n\t\t\t// TODO: Get obj details here?\n\t\t\tCauses: causes,\n\t\t},\n\t\tMessage: message,\n\t}}\n}\n\n// NewGone returns an error indicating the item no longer available at the server and no forwarding address is known.\n// DEPRECATED: Please use NewResourceExpired instead.\nfunc NewGone(message string) *StatusError {\n\treturn &StatusError{metav1.Status{\n\t\tStatus:  metav1.StatusFailure,\n\t\tCode:    http.StatusGone,\n\t\tReason:  metav1.StatusReasonGone,\n\t\tMessage: message,\n\t}}\n}\n\n// NewResourceExpired creates an error that indicates that the requested resource content has expired from\n// the server (usually due to a resourceVersion that is too old).\nfunc NewResourceExpired(message string) *StatusError {\n\treturn &StatusError{metav1.Status{\n\t\tStatus:  metav1.StatusFailure,\n\t\tCode:    http.StatusGone,\n\t\tReason:  metav1.StatusReasonExpired,\n\t\tMessage: message,\n\t}}\n}\n\n// NewInvalid returns an error indicating the item is invalid and cannot be processed.\nfunc NewInvalid(qualifiedKind schema.GroupKind, name string, errs field.ErrorList) *StatusError {\n\tcauses := make([]metav1.StatusCause, 0, len(errs))\n\tfor i := range errs {\n\t\terr := errs[i]\n\t\tcauses = append(causes, metav1.StatusCause{\n\t\t\tType:    metav1.CauseType(err.Type),\n\t\t\tMessage: err.ErrorBody(),\n\t\t\tField:   err.Field,\n\t\t})\n\t}\n\terr := &StatusError{metav1.Status{\n\t\tStatus: metav1.StatusFailure,\n\t\tCode:   http.StatusUnprocessableEntity,\n\t\tReason: metav1.StatusReasonInvalid,\n\t\tDetails: &metav1.StatusDetails{\n\t\t\tGroup:  qualifiedKind.Group,\n\t\t\tKind:   qualifiedKind.Kind,\n\t\t\tName:   name,\n\t\t\tCauses: causes,\n\t\t},\n\t}}\n\taggregatedErrs := errs.ToAggregate()\n\tif aggregatedErrs == nil {\n\t\terr.ErrStatus.Message = fmt.Sprintf(\"%s %q is invalid\", qualifiedKind.String(), name)\n\t} else {\n\t\terr.ErrStatus.Message = fmt.Sprintf(\"%s %q is invalid: %v\", qualifiedKind.String(), name, aggregatedErrs)\n\t}\n\treturn err\n}\n\n// NewBadRequest creates an error that indicates that the request is invalid and can not be processed.\nfunc NewBadRequest(reason string) *StatusError {\n\treturn &StatusError{metav1.Status{\n\t\tStatus:  metav1.StatusFailure,\n\t\tCode:    http.StatusBadRequest,\n\t\tReason:  metav1.StatusReasonBadRequest,\n\t\tMessage: reason,\n\t}}\n}\n\n// NewTooManyRequests creates an error that indicates that the client must try again later because\n// the specified endpoint is not accepting requests. More specific details should be provided\n// if client should know why the failure was limited.\nfunc NewTooManyRequests(message string, retryAfterSeconds int) *StatusError {\n\treturn &StatusError{metav1.Status{\n\t\tStatus:  metav1.StatusFailure,\n\t\tCode:    http.StatusTooManyRequests,\n\t\tReason:  metav1.StatusReasonTooManyRequests,\n\t\tMessage: message,\n\t\tDetails: &metav1.StatusDetails{\n\t\t\tRetryAfterSeconds: int32(retryAfterSeconds),\n\t\t},\n\t}}\n}\n\n// NewServiceUnavailable creates an error that indicates that the requested service is unavailable.\nfunc NewServiceUnavailable(reason string) *StatusError {\n\treturn &StatusError{metav1.Status{\n\t\tStatus:  metav1.StatusFailure,\n\t\tCode:    http.StatusServiceUnavailable,\n\t\tReason:  metav1.StatusReasonServiceUnavailable,\n\t\tMessage: reason,\n\t}}\n}\n\n// NewMethodNotSupported returns an error indicating the requested action is not supported on this kind.\nfunc NewMethodNotSupported(qualifiedResource schema.GroupResource, action string) *StatusError {\n\treturn &StatusError{metav1.Status{\n\t\tStatus: metav1.StatusFailure,\n\t\tCode:   http.StatusMethodNotAllowed,\n\t\tReason: metav1.StatusReasonMethodNotAllowed,\n\t\tDetails: &metav1.StatusDetails{\n\t\t\tGroup: qualifiedResource.Group,\n\t\t\tKind:  qualifiedResource.Resource,\n\t\t},\n\t\tMessage: fmt.Sprintf(\"%s is not supported on resources of kind %q\", action, qualifiedResource.String()),\n\t}}\n}\n\n// NewServerTimeout returns an error indicating the requested action could not be completed due to a\n// transient error, and the client should try again.\nfunc NewServerTimeout(qualifiedResource schema.GroupResource, operation string, retryAfterSeconds int) *StatusError {\n\treturn &StatusError{metav1.Status{\n\t\tStatus: metav1.StatusFailure,\n\t\tCode:   http.StatusInternalServerError,\n\t\tReason: metav1.StatusReasonServerTimeout,\n\t\tDetails: &metav1.StatusDetails{\n\t\t\tGroup:             qualifiedResource.Group,\n\t\t\tKind:              qualifiedResource.Resource,\n\t\t\tName:              operation,\n\t\t\tRetryAfterSeconds: int32(retryAfterSeconds),\n\t\t},\n\t\tMessage: fmt.Sprintf(\"The %s operation against %s could not be completed at this time, please try again.\", operation, qualifiedResource.String()),\n\t}}\n}\n\n// NewServerTimeoutForKind should not exist.  Server timeouts happen when accessing resources, the Kind is just what we\n// happened to be looking at when the request failed.  This delegates to keep code sane, but we should work towards removing this.\nfunc NewServerTimeoutForKind(qualifiedKind schema.GroupKind, operation string, retryAfterSeconds int) *StatusError {\n\treturn NewServerTimeout(schema.GroupResource{Group: qualifiedKind.Group, Resource: qualifiedKind.Kind}, operation, retryAfterSeconds)\n}\n\n// NewInternalError returns an error indicating the item is invalid and cannot be processed.\nfunc NewInternalError(err error) *StatusError {\n\treturn &StatusError{metav1.Status{\n\t\tStatus: metav1.StatusFailure,\n\t\tCode:   http.StatusInternalServerError,\n\t\tReason: metav1.StatusReasonInternalError,\n\t\tDetails: &metav1.StatusDetails{\n\t\t\tCauses: []metav1.StatusCause{{Message: err.Error()}},\n\t\t},\n\t\tMessage: fmt.Sprintf(\"Internal error occurred: %v\", err),\n\t}}\n}\n\n// NewTimeoutError returns an error indicating that a timeout occurred before the request\n// could be completed.  Clients may retry, but the operation may still complete.\nfunc NewTimeoutError(message string, retryAfterSeconds int) *StatusError {\n\treturn &StatusError{metav1.Status{\n\t\tStatus:  metav1.StatusFailure,\n\t\tCode:    http.StatusGatewayTimeout,\n\t\tReason:  metav1.StatusReasonTimeout,\n\t\tMessage: fmt.Sprintf(\"Timeout: %s\", message),\n\t\tDetails: &metav1.StatusDetails{\n\t\t\tRetryAfterSeconds: int32(retryAfterSeconds),\n\t\t},\n\t}}\n}\n\n// NewTooManyRequestsError returns an error indicating that the request was rejected because\n// the server has received too many requests. Client should wait and retry. But if the request\n// is perishable, then the client should not retry the request.\nfunc NewTooManyRequestsError(message string) *StatusError {\n\treturn &StatusError{metav1.Status{\n\t\tStatus:  metav1.StatusFailure,\n\t\tCode:    http.StatusTooManyRequests,\n\t\tReason:  metav1.StatusReasonTooManyRequests,\n\t\tMessage: fmt.Sprintf(\"Too many requests: %s\", message),\n\t}}\n}\n\n// NewRequestEntityTooLargeError returns an error indicating that the request\n// entity was too large.\nfunc NewRequestEntityTooLargeError(message string) *StatusError {\n\treturn &StatusError{metav1.Status{\n\t\tStatus:  metav1.StatusFailure,\n\t\tCode:    http.StatusRequestEntityTooLarge,\n\t\tReason:  metav1.StatusReasonRequestEntityTooLarge,\n\t\tMessage: fmt.Sprintf(\"Request entity too large: %s\", message),\n\t}}\n}\n\n// NewGenericServerResponse returns a new error for server responses that are not in a recognizable form.\nfunc NewGenericServerResponse(code int, verb string, qualifiedResource schema.GroupResource, name, serverMessage string, retryAfterSeconds int, isUnexpectedResponse bool) *StatusError {\n\treason := metav1.StatusReasonUnknown\n\tmessage := fmt.Sprintf(\"the server responded with the status code %d but did not return more information\", code)\n\tswitch code {\n\tcase http.StatusConflict:\n\t\tif verb == \"POST\" {\n\t\t\treason = metav1.StatusReasonAlreadyExists\n\t\t} else {\n\t\t\treason = metav1.StatusReasonConflict\n\t\t}\n\t\tmessage = \"the server reported a conflict\"\n\tcase http.StatusNotFound:\n\t\treason = metav1.StatusReasonNotFound\n\t\tmessage = \"the server could not find the requested resource\"\n\tcase http.StatusBadRequest:\n\t\treason = metav1.StatusReasonBadRequest\n\t\tmessage = \"the server rejected our request for an unknown reason\"\n\tcase http.StatusUnauthorized:\n\t\treason = metav1.StatusReasonUnauthorized\n\t\tmessage = \"the server has asked for the client to provide credentials\"\n\tcase http.StatusForbidden:\n\t\treason = metav1.StatusReasonForbidden\n\t\t// the server message has details about who is trying to perform what action.  Keep its message.\n\t\tmessage = serverMessage\n\tcase http.StatusNotAcceptable:\n\t\treason = metav1.StatusReasonNotAcceptable\n\t\t// the server message has details about what types are acceptable\n\t\tif len(serverMessage) == 0 || serverMessage == \"unknown\" {\n\t\t\tmessage = \"the server was unable to respond with a content type that the client supports\"\n\t\t} else {\n\t\t\tmessage = serverMessage\n\t\t}\n\tcase http.StatusUnsupportedMediaType:\n\t\treason = metav1.StatusReasonUnsupportedMediaType\n\t\t// the server message has details about what types are acceptable\n\t\tmessage = serverMessage\n\tcase http.StatusMethodNotAllowed:\n\t\treason = metav1.StatusReasonMethodNotAllowed\n\t\tmessage = \"the server does not allow this method on the requested resource\"\n\tcase http.StatusUnprocessableEntity:\n\t\treason = metav1.StatusReasonInvalid\n\t\tmessage = \"the server rejected our request due to an error in our request\"\n\tcase http.StatusServiceUnavailable:\n\t\treason = metav1.StatusReasonServiceUnavailable\n\t\tmessage = \"the server is currently unable to handle the request\"\n\tcase http.StatusGatewayTimeout:\n\t\treason = metav1.StatusReasonTimeout\n\t\tmessage = \"the server was unable to return a response in the time allotted, but may still be processing the request\"\n\tcase http.StatusTooManyRequests:\n\t\treason = metav1.StatusReasonTooManyRequests\n\t\tmessage = \"the server has received too many requests and has asked us to try again later\"\n\tdefault:\n\t\tif code >= 500 {\n\t\t\treason = metav1.StatusReasonInternalError\n\t\t\tmessage = fmt.Sprintf(\"an error on the server (%q) has prevented the request from succeeding\", serverMessage)\n\t\t}\n\t}\n\tswitch {\n\tcase !qualifiedResource.Empty() && len(name) > 0:\n\t\tmessage = fmt.Sprintf(\"%s (%s %s %s)\", message, strings.ToLower(verb), qualifiedResource.String(), name)\n\tcase !qualifiedResource.Empty():\n\t\tmessage = fmt.Sprintf(\"%s (%s %s)\", message, strings.ToLower(verb), qualifiedResource.String())\n\t}\n\tvar causes []metav1.StatusCause\n\tif isUnexpectedResponse {\n\t\tcauses = []metav1.StatusCause{\n\t\t\t{\n\t\t\t\tType:    metav1.CauseTypeUnexpectedServerResponse,\n\t\t\t\tMessage: serverMessage,\n\t\t\t},\n\t\t}\n\t} else {\n\t\tcauses = nil\n\t}\n\treturn &StatusError{metav1.Status{\n\t\tStatus: metav1.StatusFailure,\n\t\tCode:   int32(code),\n\t\tReason: reason,\n\t\tDetails: &metav1.StatusDetails{\n\t\t\tGroup: qualifiedResource.Group,\n\t\t\tKind:  qualifiedResource.Resource,\n\t\t\tName:  name,\n\n\t\t\tCauses:            causes,\n\t\t\tRetryAfterSeconds: int32(retryAfterSeconds),\n\t\t},\n\t\tMessage: message,\n\t}}\n}\n\n// IsNotFound returns true if the specified error was created by NewNotFound.\n// It supports wrapped errors and returns false when the error is nil.\nfunc IsNotFound(err error) bool {\n\treason, code := reasonAndCodeForError(err)\n\tif reason == metav1.StatusReasonNotFound {\n\t\treturn true\n\t}\n\tif _, ok := knownReasons[reason]; !ok && code == http.StatusNotFound {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// IsAlreadyExists determines if the err is an error which indicates that a specified resource already exists.\n// It supports wrapped errors and returns false when the error is nil.\nfunc IsAlreadyExists(err error) bool {\n\treturn ReasonForError(err) == metav1.StatusReasonAlreadyExists\n}\n\n// IsConflict determines if the err is an error which indicates the provided update conflicts.\n// It supports wrapped errors and returns false when the error is nil.\nfunc IsConflict(err error) bool {\n\treason, code := reasonAndCodeForError(err)\n\tif reason == metav1.StatusReasonConflict {\n\t\treturn true\n\t}\n\tif _, ok := knownReasons[reason]; !ok && code == http.StatusConflict {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// IsInvalid determines if the err is an error which indicates the provided resource is not valid.\n// It supports wrapped errors and returns false when the error is nil.\nfunc IsInvalid(err error) bool {\n\treason, code := reasonAndCodeForError(err)\n\tif reason == metav1.StatusReasonInvalid {\n\t\treturn true\n\t}\n\tif _, ok := knownReasons[reason]; !ok && code == http.StatusUnprocessableEntity {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// IsGone is true if the error indicates the requested resource is no longer available.\n// It supports wrapped errors and returns false when the error is nil.\nfunc IsGone(err error) bool {\n\treason, code := reasonAndCodeForError(err)\n\tif reason == metav1.StatusReasonGone {\n\t\treturn true\n\t}\n\tif _, ok := knownReasons[reason]; !ok && code == http.StatusGone {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// IsResourceExpired is true if the error indicates the resource has expired and the current action is\n// no longer possible.\n// It supports wrapped errors and returns false when the error is nil.\nfunc IsResourceExpired(err error) bool {\n\treturn ReasonForError(err) == metav1.StatusReasonExpired\n}\n\n// IsNotAcceptable determines if err is an error which indicates that the request failed due to an invalid Accept header\n// It supports wrapped errors and returns false when the error is nil.\nfunc IsNotAcceptable(err error) bool {\n\treason, code := reasonAndCodeForError(err)\n\tif reason == metav1.StatusReasonNotAcceptable {\n\t\treturn true\n\t}\n\tif _, ok := knownReasons[reason]; !ok && code == http.StatusNotAcceptable {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// IsUnsupportedMediaType determines if err is an error which indicates that the request failed due to an invalid Content-Type header\n// It supports wrapped errors and returns false when the error is nil.\nfunc IsUnsupportedMediaType(err error) bool {\n\treason, code := reasonAndCodeForError(err)\n\tif reason == metav1.StatusReasonUnsupportedMediaType {\n\t\treturn true\n\t}\n\tif _, ok := knownReasons[reason]; !ok && code == http.StatusUnsupportedMediaType {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// IsMethodNotSupported determines if the err is an error which indicates the provided action could not\n// be performed because it is not supported by the server.\n// It supports wrapped errors and returns false when the error is nil.\nfunc IsMethodNotSupported(err error) bool {\n\treason, code := reasonAndCodeForError(err)\n\tif reason == metav1.StatusReasonMethodNotAllowed {\n\t\treturn true\n\t}\n\tif _, ok := knownReasons[reason]; !ok && code == http.StatusMethodNotAllowed {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// IsServiceUnavailable is true if the error indicates the underlying service is no longer available.\n// It supports wrapped errors and returns false when the error is nil.\nfunc IsServiceUnavailable(err error) bool {\n\treason, code := reasonAndCodeForError(err)\n\tif reason == metav1.StatusReasonServiceUnavailable {\n\t\treturn true\n\t}\n\tif _, ok := knownReasons[reason]; !ok && code == http.StatusServiceUnavailable {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// IsBadRequest determines if err is an error which indicates that the request is invalid.\n// It supports wrapped errors and returns false when the error is nil.\nfunc IsBadRequest(err error) bool {\n\treason, code := reasonAndCodeForError(err)\n\tif reason == metav1.StatusReasonBadRequest {\n\t\treturn true\n\t}\n\tif _, ok := knownReasons[reason]; !ok && code == http.StatusBadRequest {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// IsUnauthorized determines if err is an error which indicates that the request is unauthorized and\n// requires authentication by the user.\n// It supports wrapped errors and returns false when the error is nil.\nfunc IsUnauthorized(err error) bool {\n\treason, code := reasonAndCodeForError(err)\n\tif reason == metav1.StatusReasonUnauthorized {\n\t\treturn true\n\t}\n\tif _, ok := knownReasons[reason]; !ok && code == http.StatusUnauthorized {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// IsForbidden determines if err is an error which indicates that the request is forbidden and cannot\n// be completed as requested.\n// It supports wrapped errors and returns false when the error is nil.\nfunc IsForbidden(err error) bool {\n\treason, code := reasonAndCodeForError(err)\n\tif reason == metav1.StatusReasonForbidden {\n\t\treturn true\n\t}\n\tif _, ok := knownReasons[reason]; !ok && code == http.StatusForbidden {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// IsTimeout determines if err is an error which indicates that request times out due to long\n// processing.\n// It supports wrapped errors and returns false when the error is nil.\nfunc IsTimeout(err error) bool {\n\treason, code := reasonAndCodeForError(err)\n\tif reason == metav1.StatusReasonTimeout {\n\t\treturn true\n\t}\n\tif _, ok := knownReasons[reason]; !ok && code == http.StatusGatewayTimeout {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// IsServerTimeout determines if err is an error which indicates that the request needs to be retried\n// by the client.\n// It supports wrapped errors and returns false when the error is nil.\nfunc IsServerTimeout(err error) bool {\n\t// do not check the status code, because no https status code exists that can\n\t// be scoped to retryable timeouts.\n\treturn ReasonForError(err) == metav1.StatusReasonServerTimeout\n}\n\n// IsInternalError determines if err is an error which indicates an internal server error.\n// It supports wrapped errors and returns false when the error is nil.\nfunc IsInternalError(err error) bool {\n\treason, code := reasonAndCodeForError(err)\n\tif reason == metav1.StatusReasonInternalError {\n\t\treturn true\n\t}\n\tif _, ok := knownReasons[reason]; !ok && code == http.StatusInternalServerError {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// IsTooManyRequests determines if err is an error which indicates that there are too many requests\n// that the server cannot handle.\n// It supports wrapped errors and returns false when the error is nil.\nfunc IsTooManyRequests(err error) bool {\n\treason, code := reasonAndCodeForError(err)\n\tif reason == metav1.StatusReasonTooManyRequests {\n\t\treturn true\n\t}\n\n\t// IsTooManyRequests' checking of code predates the checking of the code in\n\t// the other Is* functions. In order to maintain backward compatibility, this\n\t// does not check that the reason is unknown.\n\tif code == http.StatusTooManyRequests {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// IsRequestEntityTooLargeError determines if err is an error which indicates\n// the request entity is too large.\n// It supports wrapped errors and returns false when the error is nil.\nfunc IsRequestEntityTooLargeError(err error) bool {\n\treason, code := reasonAndCodeForError(err)\n\tif reason == metav1.StatusReasonRequestEntityTooLarge {\n\t\treturn true\n\t}\n\n\t// IsRequestEntityTooLargeError's checking of code predates the checking of\n\t// the code in the other Is* functions. In order to maintain backward\n\t// compatibility, this does not check that the reason is unknown.\n\tif code == http.StatusRequestEntityTooLarge {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// IsUnexpectedServerError returns true if the server response was not in the expected API format,\n// and may be the result of another HTTP actor.\n// It supports wrapped errors and returns false when the error is nil.\nfunc IsUnexpectedServerError(err error) bool {\n\tstatus, ok := err.(APIStatus)\n\tif (ok || errors.As(err, &status)) && status.Status().Details != nil {\n\t\tfor _, cause := range status.Status().Details.Causes {\n\t\t\tif cause.Type == metav1.CauseTypeUnexpectedServerResponse {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t}\n\treturn false\n}\n\n// IsUnexpectedObjectError determines if err is due to an unexpected object from the master.\n// It supports wrapped errors and returns false when the error is nil.\nfunc IsUnexpectedObjectError(err error) bool {\n\tuoe, ok := err.(*UnexpectedObjectError)\n\treturn err != nil && (ok || errors.As(err, &uoe))\n}\n\n// IsStoreReadError determines if err is due to either failure to transform the\n// data from the storage, or failure to decode the object appropriately.\nfunc IsStoreReadError(err error) bool {\n\treturn ReasonForError(err) == metav1.StatusReasonStoreReadError\n}\n\n// SuggestsClientDelay returns true if this error suggests a client delay as well as the\n// suggested seconds to wait, or false if the error does not imply a wait. It does not\n// address whether the error *should* be retried, since some errors (like a 3xx) may\n// request delay without retry.\n// It supports wrapped errors and returns false when the error is nil.\nfunc SuggestsClientDelay(err error) (int, bool) {\n\tt, ok := err.(APIStatus)\n\tif (ok || errors.As(err, &t)) && t.Status().Details != nil {\n\t\tswitch t.Status().Reason {\n\t\t// this StatusReason explicitly requests the caller to delay the action\n\t\tcase metav1.StatusReasonServerTimeout:\n\t\t\treturn int(t.Status().Details.RetryAfterSeconds), true\n\t\t}\n\t\t// If the client requests that we retry after a certain number of seconds\n\t\tif t.Status().Details.RetryAfterSeconds > 0 {\n\t\t\treturn int(t.Status().Details.RetryAfterSeconds), true\n\t\t}\n\t}\n\treturn 0, false\n}\n\n// ReasonForError returns the HTTP status for a particular error.\n// It supports wrapped errors and returns StatusReasonUnknown when\n// the error is nil or doesn't have a status.\nfunc ReasonForError(err error) metav1.StatusReason {\n\tif status, ok := err.(APIStatus); ok || errors.As(err, &status) {\n\t\treturn status.Status().Reason\n\t}\n\treturn metav1.StatusReasonUnknown\n}\n\nfunc reasonAndCodeForError(err error) (metav1.StatusReason, int32) {\n\tif status, ok := err.(APIStatus); ok || errors.As(err, &status) {\n\t\treturn status.Status().Reason, status.Status().Code\n\t}\n\treturn metav1.StatusReasonUnknown, 0\n}\n\n// ErrorReporter converts generic errors into runtime.Object errors without\n// requiring the caller to take a dependency on meta/v1 (where Status lives).\n// This prevents circular dependencies in core watch code.\ntype ErrorReporter struct {\n\tcode   int\n\tverb   string\n\treason string\n}\n\n// NewClientErrorReporter will respond with valid v1.Status objects that report\n// unexpected server responses. Primarily used by watch to report errors when\n// we attempt to decode a response from the server and it is not in the form\n// we expect. Because watch is a dependency of the core api, we can't return\n// meta/v1.Status in that package and so much inject this interface to convert a\n// generic error as appropriate. The reason is passed as a unique status cause\n// on the returned status, otherwise the generic \"ClientError\" is returned.\nfunc NewClientErrorReporter(code int, verb string, reason string) *ErrorReporter {\n\treturn &ErrorReporter{\n\t\tcode:   code,\n\t\tverb:   verb,\n\t\treason: reason,\n\t}\n}\n\n// AsObject returns a valid error runtime.Object (a v1.Status) for the given\n// error, using the code and verb of the reporter type. The error is set to\n// indicate that this was an unexpected server response.\nfunc (r *ErrorReporter) AsObject(err error) runtime.Object {\n\tstatus := NewGenericServerResponse(r.code, r.verb, schema.GroupResource{}, \"\", err.Error(), 0, true)\n\tif status.ErrStatus.Details == nil {\n\t\tstatus.ErrStatus.Details = &metav1.StatusDetails{}\n\t}\n\treason := r.reason\n\tif len(reason) == 0 {\n\t\treason = \"ClientError\"\n\t}\n\tstatus.ErrStatus.Details.Causes = append(status.ErrStatus.Details.Causes, metav1.StatusCause{\n\t\tType:    metav1.CauseType(reason),\n\t\tMessage: err.Error(),\n\t})\n\treturn &status.ErrStatus\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/meta/OWNERS",
    "content": "# See the OWNERS docs at https://go.k8s.io/owners\n\nreviewers:\n  - thockin\n  - smarterclayton\n  - wojtek-t\n  - deads2k\n  - derekwaynecarr\n  - caesarxuchao\n  - mikedanese\n  - liggitt\n  - janetkuo\n  - dims\nemeritus_reviewers:\n  - ncdc\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/meta/conditions.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage meta\n\nimport (\n\t\"time\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// SetStatusCondition sets the corresponding condition in conditions to newCondition and returns true\n// if the conditions are changed by this call.\n// conditions must be non-nil.\n//  1. if the condition of the specified type already exists (all fields of the existing condition are updated to\n//     newCondition, LastTransitionTime is set to now if the new status differs from the old status)\n//  2. if a condition of the specified type does not exist (LastTransitionTime is set to now() if unset, and newCondition is appended)\nfunc SetStatusCondition(conditions *[]metav1.Condition, newCondition metav1.Condition) (changed bool) {\n\tif conditions == nil {\n\t\treturn false\n\t}\n\texistingCondition := FindStatusCondition(*conditions, newCondition.Type)\n\tif existingCondition == nil {\n\t\tif newCondition.LastTransitionTime.IsZero() {\n\t\t\tnewCondition.LastTransitionTime = metav1.NewTime(time.Now())\n\t\t}\n\t\t*conditions = append(*conditions, newCondition)\n\t\treturn true\n\t}\n\n\tif existingCondition.Status != newCondition.Status {\n\t\texistingCondition.Status = newCondition.Status\n\t\tif !newCondition.LastTransitionTime.IsZero() {\n\t\t\texistingCondition.LastTransitionTime = newCondition.LastTransitionTime\n\t\t} else {\n\t\t\texistingCondition.LastTransitionTime = metav1.NewTime(time.Now())\n\t\t}\n\t\tchanged = true\n\t}\n\n\tif existingCondition.Reason != newCondition.Reason {\n\t\texistingCondition.Reason = newCondition.Reason\n\t\tchanged = true\n\t}\n\tif existingCondition.Message != newCondition.Message {\n\t\texistingCondition.Message = newCondition.Message\n\t\tchanged = true\n\t}\n\tif existingCondition.ObservedGeneration != newCondition.ObservedGeneration {\n\t\texistingCondition.ObservedGeneration = newCondition.ObservedGeneration\n\t\tchanged = true\n\t}\n\n\treturn changed\n}\n\n// RemoveStatusCondition removes the corresponding conditionType from conditions if present. Returns\n// true if it was present and got removed.\n// conditions must be non-nil.\nfunc RemoveStatusCondition(conditions *[]metav1.Condition, conditionType string) (removed bool) {\n\tif conditions == nil || len(*conditions) == 0 {\n\t\treturn false\n\t}\n\tnewConditions := make([]metav1.Condition, 0, len(*conditions)-1)\n\tfor _, condition := range *conditions {\n\t\tif condition.Type != conditionType {\n\t\t\tnewConditions = append(newConditions, condition)\n\t\t}\n\t}\n\n\tremoved = len(*conditions) != len(newConditions)\n\t*conditions = newConditions\n\n\treturn removed\n}\n\n// FindStatusCondition finds the conditionType in conditions.\nfunc FindStatusCondition(conditions []metav1.Condition, conditionType string) *metav1.Condition {\n\tfor i := range conditions {\n\t\tif conditions[i].Type == conditionType {\n\t\t\treturn &conditions[i]\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// IsStatusConditionTrue returns true when the conditionType is present and set to `metav1.ConditionTrue`\nfunc IsStatusConditionTrue(conditions []metav1.Condition, conditionType string) bool {\n\treturn IsStatusConditionPresentAndEqual(conditions, conditionType, metav1.ConditionTrue)\n}\n\n// IsStatusConditionFalse returns true when the conditionType is present and set to `metav1.ConditionFalse`\nfunc IsStatusConditionFalse(conditions []metav1.Condition, conditionType string) bool {\n\treturn IsStatusConditionPresentAndEqual(conditions, conditionType, metav1.ConditionFalse)\n}\n\n// IsStatusConditionPresentAndEqual returns true when conditionType is present and equal to status.\nfunc IsStatusConditionPresentAndEqual(conditions []metav1.Condition, conditionType string, status metav1.ConditionStatus) bool {\n\tfor _, condition := range conditions {\n\t\tif condition.Type == conditionType {\n\t\t\treturn condition.Status == status\n\t\t}\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/meta/doc.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package meta provides functions for retrieving API metadata from objects\n// belonging to the Kubernetes API\npackage meta // import \"k8s.io/apimachinery/pkg/api/meta\"\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/meta/errors.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage meta\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/util/sets\"\n)\n\n// AmbiguousResourceError is returned if the RESTMapper finds multiple matches for a resource\ntype AmbiguousResourceError struct {\n\tPartialResource schema.GroupVersionResource\n\n\tMatchingResources []schema.GroupVersionResource\n\tMatchingKinds     []schema.GroupVersionKind\n}\n\nfunc (e *AmbiguousResourceError) Error() string {\n\tswitch {\n\tcase len(e.MatchingKinds) > 0 && len(e.MatchingResources) > 0:\n\t\treturn fmt.Sprintf(\"%v matches multiple resources %v and kinds %v\", e.PartialResource, e.MatchingResources, e.MatchingKinds)\n\tcase len(e.MatchingKinds) > 0:\n\t\treturn fmt.Sprintf(\"%v matches multiple kinds %v\", e.PartialResource, e.MatchingKinds)\n\tcase len(e.MatchingResources) > 0:\n\t\treturn fmt.Sprintf(\"%v matches multiple resources %v\", e.PartialResource, e.MatchingResources)\n\t}\n\treturn fmt.Sprintf(\"%v matches multiple resources or kinds\", e.PartialResource)\n}\n\nfunc (*AmbiguousResourceError) Is(target error) bool {\n\t_, ok := target.(*AmbiguousResourceError)\n\treturn ok\n}\n\n// AmbiguousKindError is returned if the RESTMapper finds multiple matches for a kind\ntype AmbiguousKindError struct {\n\tPartialKind schema.GroupVersionKind\n\n\tMatchingResources []schema.GroupVersionResource\n\tMatchingKinds     []schema.GroupVersionKind\n}\n\nfunc (e *AmbiguousKindError) Error() string {\n\tswitch {\n\tcase len(e.MatchingKinds) > 0 && len(e.MatchingResources) > 0:\n\t\treturn fmt.Sprintf(\"%v matches multiple resources %v and kinds %v\", e.PartialKind, e.MatchingResources, e.MatchingKinds)\n\tcase len(e.MatchingKinds) > 0:\n\t\treturn fmt.Sprintf(\"%v matches multiple kinds %v\", e.PartialKind, e.MatchingKinds)\n\tcase len(e.MatchingResources) > 0:\n\t\treturn fmt.Sprintf(\"%v matches multiple resources %v\", e.PartialKind, e.MatchingResources)\n\t}\n\treturn fmt.Sprintf(\"%v matches multiple resources or kinds\", e.PartialKind)\n}\n\nfunc (*AmbiguousKindError) Is(target error) bool {\n\t_, ok := target.(*AmbiguousKindError)\n\treturn ok\n}\n\nfunc IsAmbiguousError(err error) bool {\n\tif err == nil {\n\t\treturn false\n\t}\n\treturn errors.Is(err, &AmbiguousResourceError{}) || errors.Is(err, &AmbiguousKindError{})\n}\n\n// NoResourceMatchError is returned if the RESTMapper can't find any match for a resource\ntype NoResourceMatchError struct {\n\tPartialResource schema.GroupVersionResource\n}\n\nfunc (e *NoResourceMatchError) Error() string {\n\treturn fmt.Sprintf(\"no matches for %v\", e.PartialResource)\n}\n\nfunc (*NoResourceMatchError) Is(target error) bool {\n\t_, ok := target.(*NoResourceMatchError)\n\treturn ok\n}\n\n// NoKindMatchError is returned if the RESTMapper can't find any match for a kind\ntype NoKindMatchError struct {\n\t// GroupKind is the API group and kind that was searched\n\tGroupKind schema.GroupKind\n\t// SearchedVersions is the optional list of versions the search was restricted to\n\tSearchedVersions []string\n}\n\nfunc (e *NoKindMatchError) Error() string {\n\tsearchedVersions := sets.NewString()\n\tfor _, v := range e.SearchedVersions {\n\t\tsearchedVersions.Insert(schema.GroupVersion{Group: e.GroupKind.Group, Version: v}.String())\n\t}\n\n\tswitch len(searchedVersions) {\n\tcase 0:\n\t\treturn fmt.Sprintf(\"no matches for kind %q in group %q\", e.GroupKind.Kind, e.GroupKind.Group)\n\tcase 1:\n\t\treturn fmt.Sprintf(\"no matches for kind %q in version %q\", e.GroupKind.Kind, searchedVersions.List()[0])\n\tdefault:\n\t\treturn fmt.Sprintf(\"no matches for kind %q in versions %q\", e.GroupKind.Kind, searchedVersions.List())\n\t}\n}\n\nfunc (*NoKindMatchError) Is(target error) bool {\n\t_, ok := target.(*NoKindMatchError)\n\treturn ok\n}\n\nfunc IsNoMatchError(err error) bool {\n\tif err == nil {\n\t\treturn false\n\t}\n\treturn errors.Is(err, &NoResourceMatchError{}) || errors.Is(err, &NoKindMatchError{})\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/meta/firsthit_restmapper.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage meta\n\nimport (\n\t\"fmt\"\n\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\tutilerrors \"k8s.io/apimachinery/pkg/util/errors\"\n)\n\nvar (\n\t_ ResettableRESTMapper = &FirstHitRESTMapper{}\n)\n\n// FirstHitRESTMapper is a wrapper for multiple RESTMappers which returns the\n// first successful result for the singular requests\ntype FirstHitRESTMapper struct {\n\tMultiRESTMapper\n}\n\nfunc (m FirstHitRESTMapper) String() string {\n\treturn fmt.Sprintf(\"FirstHitRESTMapper{\\n\\t%v\\n}\", m.MultiRESTMapper)\n}\n\nfunc (m FirstHitRESTMapper) ResourceFor(resource schema.GroupVersionResource) (schema.GroupVersionResource, error) {\n\terrors := []error{}\n\tfor _, t := range m.MultiRESTMapper {\n\t\tret, err := t.ResourceFor(resource)\n\t\tif err == nil {\n\t\t\treturn ret, nil\n\t\t}\n\t\terrors = append(errors, err)\n\t}\n\n\treturn schema.GroupVersionResource{}, collapseAggregateErrors(errors)\n}\n\nfunc (m FirstHitRESTMapper) KindFor(resource schema.GroupVersionResource) (schema.GroupVersionKind, error) {\n\terrors := []error{}\n\tfor _, t := range m.MultiRESTMapper {\n\t\tret, err := t.KindFor(resource)\n\t\tif err == nil {\n\t\t\treturn ret, nil\n\t\t}\n\t\terrors = append(errors, err)\n\t}\n\n\treturn schema.GroupVersionKind{}, collapseAggregateErrors(errors)\n}\n\n// RESTMapping provides the REST mapping for the resource based on the\n// kind and version. This implementation supports multiple REST schemas and\n// return the first match.\nfunc (m FirstHitRESTMapper) RESTMapping(gk schema.GroupKind, versions ...string) (*RESTMapping, error) {\n\terrors := []error{}\n\tfor _, t := range m.MultiRESTMapper {\n\t\tret, err := t.RESTMapping(gk, versions...)\n\t\tif err == nil {\n\t\t\treturn ret, nil\n\t\t}\n\t\terrors = append(errors, err)\n\t}\n\n\treturn nil, collapseAggregateErrors(errors)\n}\n\nfunc (m FirstHitRESTMapper) Reset() {\n\tm.MultiRESTMapper.Reset()\n}\n\n// collapseAggregateErrors returns the minimal errors.  it handles empty as nil, handles one item in a list\n// by returning the item, and collapses all NoMatchErrors to a single one (since they should all be the same)\nfunc collapseAggregateErrors(errors []error) error {\n\tif len(errors) == 0 {\n\t\treturn nil\n\t}\n\tif len(errors) == 1 {\n\t\treturn errors[0]\n\t}\n\n\tallNoMatchErrors := true\n\tfor _, err := range errors {\n\t\tallNoMatchErrors = allNoMatchErrors && IsNoMatchError(err)\n\t}\n\tif allNoMatchErrors {\n\t\treturn errors[0]\n\t}\n\n\treturn utilerrors.NewAggregate(errors)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/meta/help.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage meta\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"sync\"\n\n\t\"k8s.io/apimachinery/pkg/conversion\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n)\n\nvar (\n\t// isListCache maintains a cache of types that are checked for lists\n\t// which is used by IsListType.\n\t// TODO: remove and replace with an interface check\n\tisListCache = struct {\n\t\tlock   sync.RWMutex\n\t\tbyType map[reflect.Type]bool\n\t}{\n\t\tbyType: make(map[reflect.Type]bool, 1024),\n\t}\n)\n\n// IsListType returns true if the provided Object has a slice called Items.\n// TODO: Replace the code in this check with an interface comparison by\n// creating and enforcing that lists implement a list accessor.\nfunc IsListType(obj runtime.Object) bool {\n\tswitch t := obj.(type) {\n\tcase runtime.Unstructured:\n\t\treturn t.IsList()\n\t}\n\tt := reflect.TypeOf(obj)\n\n\tisListCache.lock.RLock()\n\tok, exists := isListCache.byType[t]\n\tisListCache.lock.RUnlock()\n\n\tif !exists {\n\t\t_, err := getItemsPtr(obj)\n\t\tok = err == nil\n\n\t\t// cache only the first 1024 types\n\t\tisListCache.lock.Lock()\n\t\tif len(isListCache.byType) < 1024 {\n\t\t\tisListCache.byType[t] = ok\n\t\t}\n\t\tisListCache.lock.Unlock()\n\t}\n\n\treturn ok\n}\n\nvar (\n\terrExpectFieldItems = errors.New(\"no Items field in this object\")\n\terrExpectSliceItems = errors.New(\"Items field must be a slice of objects\")\n)\n\n// GetItemsPtr returns a pointer to the list object's Items member.\n// If 'list' doesn't have an Items member, it's not really a list type\n// and an error will be returned.\n// This function will either return a pointer to a slice, or an error, but not both.\n// TODO: this will be replaced with an interface in the future\nfunc GetItemsPtr(list runtime.Object) (interface{}, error) {\n\tobj, err := getItemsPtr(list)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"%T is not a list: %v\", list, err)\n\t}\n\treturn obj, nil\n}\n\n// getItemsPtr returns a pointer to the list object's Items member or an error.\nfunc getItemsPtr(list runtime.Object) (interface{}, error) {\n\tv, err := conversion.EnforcePtr(list)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\titems := v.FieldByName(\"Items\")\n\tif !items.IsValid() {\n\t\treturn nil, errExpectFieldItems\n\t}\n\tswitch items.Kind() {\n\tcase reflect.Interface, reflect.Pointer:\n\t\ttarget := reflect.TypeOf(items.Interface()).Elem()\n\t\tif target.Kind() != reflect.Slice {\n\t\t\treturn nil, errExpectSliceItems\n\t\t}\n\t\treturn items.Interface(), nil\n\tcase reflect.Slice:\n\t\treturn items.Addr().Interface(), nil\n\tdefault:\n\t\treturn nil, errExpectSliceItems\n\t}\n}\n\n// EachListItem invokes fn on each runtime.Object in the list. Any error immediately terminates\n// the loop.\n//\n// If items passed to fn are retained for different durations, and you want to avoid\n// retaining all items in obj as long as any item is referenced, use EachListItemWithAlloc instead.\nfunc EachListItem(obj runtime.Object, fn func(runtime.Object) error) error {\n\treturn eachListItem(obj, fn, false)\n}\n\n// EachListItemWithAlloc works like EachListItem, but avoids retaining references to the items slice in obj.\n// It does this by making a shallow copy of non-pointer items in obj.\n//\n// If the items passed to fn are not retained, or are retained for the same duration, use EachListItem instead for memory efficiency.\nfunc EachListItemWithAlloc(obj runtime.Object, fn func(runtime.Object) error) error {\n\treturn eachListItem(obj, fn, true)\n}\n\n// allocNew: Whether shallow copy is required when the elements in Object.Items are struct\nfunc eachListItem(obj runtime.Object, fn func(runtime.Object) error, allocNew bool) error {\n\tif unstructured, ok := obj.(runtime.Unstructured); ok {\n\t\tif allocNew {\n\t\t\treturn unstructured.EachListItemWithAlloc(fn)\n\t\t}\n\t\treturn unstructured.EachListItem(fn)\n\t}\n\t// TODO: Change to an interface call?\n\titemsPtr, err := GetItemsPtr(obj)\n\tif err != nil {\n\t\treturn err\n\t}\n\titems, err := conversion.EnforcePtr(itemsPtr)\n\tif err != nil {\n\t\treturn err\n\t}\n\tlen := items.Len()\n\tif len == 0 {\n\t\treturn nil\n\t}\n\ttakeAddr := false\n\tif elemType := items.Type().Elem(); elemType.Kind() != reflect.Pointer && elemType.Kind() != reflect.Interface {\n\t\tif !items.Index(0).CanAddr() {\n\t\t\treturn fmt.Errorf(\"unable to take address of items in %T for EachListItem\", obj)\n\t\t}\n\t\ttakeAddr = true\n\t}\n\n\tfor i := 0; i < len; i++ {\n\t\traw := items.Index(i)\n\t\tif takeAddr {\n\t\t\tif allocNew {\n\t\t\t\t// shallow copy to avoid retaining a reference to the original list item\n\t\t\t\titemCopy := reflect.New(raw.Type())\n\t\t\t\t// assign to itemCopy and type-assert\n\t\t\t\titemCopy.Elem().Set(raw)\n\t\t\t\t// reflect.New will guarantee that itemCopy must be a pointer.\n\t\t\t\traw = itemCopy\n\t\t\t} else {\n\t\t\t\traw = raw.Addr()\n\t\t\t}\n\t\t}\n\t\t// raw must be a pointer or an interface\n\t\t// allocate a pointer is cheap\n\t\tswitch item := raw.Interface().(type) {\n\t\tcase *runtime.RawExtension:\n\t\t\tif err := fn(item.Object); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\tcase runtime.Object:\n\t\t\tif err := fn(item); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\tdefault:\n\t\t\tobj, ok := item.(runtime.Object)\n\t\t\tif !ok {\n\t\t\t\treturn fmt.Errorf(\"%v: item[%v]: Expected object, got %#v(%s)\", obj, i, raw.Interface(), raw.Kind())\n\t\t\t}\n\t\t\tif err := fn(obj); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\n// ExtractList returns obj's Items element as an array of runtime.Objects.\n// Returns an error if obj is not a List type (does not have an Items member).\n//\n// If items in the returned list are retained for different durations, and you want to avoid\n// retaining all items in obj as long as any item is referenced, use ExtractListWithAlloc instead.\nfunc ExtractList(obj runtime.Object) ([]runtime.Object, error) {\n\treturn extractList(obj, false)\n}\n\n// ExtractListWithAlloc works like ExtractList, but avoids retaining references to the items slice in obj.\n// It does this by making a shallow copy of non-pointer items in obj.\n//\n// If the items in the returned list are not retained, or are retained for the same duration, use ExtractList instead for memory efficiency.\nfunc ExtractListWithAlloc(obj runtime.Object) ([]runtime.Object, error) {\n\treturn extractList(obj, true)\n}\n\n// allocNew: Whether shallow copy is required when the elements in Object.Items are struct\nfunc extractList(obj runtime.Object, allocNew bool) ([]runtime.Object, error) {\n\titemsPtr, err := GetItemsPtr(obj)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\titems, err := conversion.EnforcePtr(itemsPtr)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tlist := make([]runtime.Object, items.Len())\n\tif len(list) == 0 {\n\t\treturn list, nil\n\t}\n\telemType := items.Type().Elem()\n\tisRawExtension := elemType == rawExtensionObjectType\n\timplementsObject := elemType.Implements(objectType)\n\tfor i := range list {\n\t\traw := items.Index(i)\n\t\tswitch {\n\t\tcase isRawExtension:\n\t\t\titem := raw.Interface().(runtime.RawExtension)\n\t\t\tswitch {\n\t\t\tcase item.Object != nil:\n\t\t\t\tlist[i] = item.Object\n\t\t\tcase item.Raw != nil:\n\t\t\t\t// TODO: Set ContentEncoding and ContentType correctly.\n\t\t\t\tlist[i] = &runtime.Unknown{Raw: item.Raw}\n\t\t\tdefault:\n\t\t\t\tlist[i] = nil\n\t\t\t}\n\t\tcase implementsObject:\n\t\t\tlist[i] = raw.Interface().(runtime.Object)\n\t\tcase allocNew:\n\t\t\t// shallow copy to avoid retaining a reference to the original list item\n\t\t\titemCopy := reflect.New(raw.Type())\n\t\t\t// assign to itemCopy and type-assert\n\t\t\titemCopy.Elem().Set(raw)\n\t\t\tvar ok bool\n\t\t\t// reflect.New will guarantee that itemCopy must be a pointer.\n\t\t\tif list[i], ok = itemCopy.Interface().(runtime.Object); !ok {\n\t\t\t\treturn nil, fmt.Errorf(\"%v: item[%v]: Expected object, got %#v(%s)\", obj, i, raw.Interface(), raw.Kind())\n\t\t\t}\n\t\tdefault:\n\t\t\tvar found bool\n\t\t\tif list[i], found = raw.Addr().Interface().(runtime.Object); !found {\n\t\t\t\treturn nil, fmt.Errorf(\"%v: item[%v]: Expected object, got %#v(%s)\", obj, i, raw.Interface(), raw.Kind())\n\t\t\t}\n\t\t}\n\t}\n\treturn list, nil\n}\n\nvar (\n\t// objectSliceType is the type of a slice of Objects\n\tobjectSliceType        = reflect.TypeOf([]runtime.Object{})\n\tobjectType             = reflect.TypeOf((*runtime.Object)(nil)).Elem()\n\trawExtensionObjectType = reflect.TypeOf(runtime.RawExtension{})\n)\n\n// LenList returns the length of this list or 0 if it is not a list.\nfunc LenList(list runtime.Object) int {\n\titemsPtr, err := GetItemsPtr(list)\n\tif err != nil {\n\t\treturn 0\n\t}\n\titems, err := conversion.EnforcePtr(itemsPtr)\n\tif err != nil {\n\t\treturn 0\n\t}\n\treturn items.Len()\n}\n\n// SetList sets the given list object's Items member have the elements given in\n// objects.\n// Returns an error if list is not a List type (does not have an Items member),\n// or if any of the objects are not of the right type.\nfunc SetList(list runtime.Object, objects []runtime.Object) error {\n\titemsPtr, err := GetItemsPtr(list)\n\tif err != nil {\n\t\treturn err\n\t}\n\titems, err := conversion.EnforcePtr(itemsPtr)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif items.Type() == objectSliceType {\n\t\titems.Set(reflect.ValueOf(objects))\n\t\treturn nil\n\t}\n\tslice := reflect.MakeSlice(items.Type(), len(objects), len(objects))\n\tfor i := range objects {\n\t\tdest := slice.Index(i)\n\t\tif dest.Type() == rawExtensionObjectType {\n\t\t\tdest = dest.FieldByName(\"Object\")\n\t\t}\n\n\t\t// check to see if you're directly assignable\n\t\tif reflect.TypeOf(objects[i]).AssignableTo(dest.Type()) {\n\t\t\tdest.Set(reflect.ValueOf(objects[i]))\n\t\t\tcontinue\n\t\t}\n\n\t\tsrc, err := conversion.EnforcePtr(objects[i])\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif src.Type().AssignableTo(dest.Type()) {\n\t\t\tdest.Set(src)\n\t\t} else if src.Type().ConvertibleTo(dest.Type()) {\n\t\t\tdest.Set(src.Convert(dest.Type()))\n\t\t} else {\n\t\t\treturn fmt.Errorf(\"item[%d]: can't assign or convert %v into %v\", i, src.Type(), dest.Type())\n\t\t}\n\t}\n\titems.Set(slice)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/meta/interfaces.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage meta\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/types\"\n)\n\ntype ListMetaAccessor interface {\n\tGetListMeta() List\n}\n\n// List lets you work with list metadata from any of the versioned or\n// internal API objects. Attempting to set or retrieve a field on an object that does\n// not support that field will be a no-op and return a default value.\ntype List metav1.ListInterface\n\n// Type exposes the type and APIVersion of versioned or internal API objects.\ntype Type metav1.Type\n\n// MetadataAccessor lets you work with object and list metadata from any of the versioned or\n// internal API objects. Attempting to set or retrieve a field on an object that does\n// not support that field (Name, UID, Namespace on lists) will be a no-op and return\n// a default value.\n//\n// MetadataAccessor exposes Interface in a way that can be used with multiple objects.\ntype MetadataAccessor interface {\n\tAPIVersion(obj runtime.Object) (string, error)\n\tSetAPIVersion(obj runtime.Object, version string) error\n\n\tKind(obj runtime.Object) (string, error)\n\tSetKind(obj runtime.Object, kind string) error\n\n\tNamespace(obj runtime.Object) (string, error)\n\tSetNamespace(obj runtime.Object, namespace string) error\n\n\tName(obj runtime.Object) (string, error)\n\tSetName(obj runtime.Object, name string) error\n\n\tGenerateName(obj runtime.Object) (string, error)\n\tSetGenerateName(obj runtime.Object, name string) error\n\n\tUID(obj runtime.Object) (types.UID, error)\n\tSetUID(obj runtime.Object, uid types.UID) error\n\n\tSelfLink(obj runtime.Object) (string, error)\n\tSetSelfLink(obj runtime.Object, selfLink string) error\n\n\tLabels(obj runtime.Object) (map[string]string, error)\n\tSetLabels(obj runtime.Object, labels map[string]string) error\n\n\tAnnotations(obj runtime.Object) (map[string]string, error)\n\tSetAnnotations(obj runtime.Object, annotations map[string]string) error\n\n\tContinue(obj runtime.Object) (string, error)\n\tSetContinue(obj runtime.Object, c string) error\n\n\truntime.ResourceVersioner\n}\n\ntype RESTScopeName string\n\nconst (\n\tRESTScopeNameNamespace RESTScopeName = \"namespace\"\n\tRESTScopeNameRoot      RESTScopeName = \"root\"\n)\n\n// RESTScope contains the information needed to deal with REST resources that are in a resource hierarchy\ntype RESTScope interface {\n\t// Name of the scope\n\tName() RESTScopeName\n}\n\n// RESTMapping contains the information needed to deal with objects of a specific\n// resource and kind in a RESTful manner.\ntype RESTMapping struct {\n\t// Resource is the GroupVersionResource (location) for this endpoint\n\tResource schema.GroupVersionResource\n\n\t// GroupVersionKind is the GroupVersionKind (data format) to submit to this endpoint\n\tGroupVersionKind schema.GroupVersionKind\n\n\t// Scope contains the information needed to deal with REST Resources that are in a resource hierarchy\n\tScope RESTScope\n}\n\n// RESTMapper allows clients to map resources to kind, and map kind and version\n// to interfaces for manipulating those objects. It is primarily intended for\n// consumers of Kubernetes compatible REST APIs as defined in docs/devel/api-conventions.md.\n//\n// The Kubernetes API provides versioned resources and object kinds which are scoped\n// to API groups. In other words, kinds and resources should not be assumed to be\n// unique across groups.\n//\n// TODO: split into sub-interfaces\ntype RESTMapper interface {\n\t// KindFor takes a partial resource and returns the single match.  Returns an error if there are multiple matches\n\tKindFor(resource schema.GroupVersionResource) (schema.GroupVersionKind, error)\n\n\t// KindsFor takes a partial resource and returns the list of potential kinds in priority order\n\tKindsFor(resource schema.GroupVersionResource) ([]schema.GroupVersionKind, error)\n\n\t// ResourceFor takes a partial resource and returns the single match.  Returns an error if there are multiple matches\n\tResourceFor(input schema.GroupVersionResource) (schema.GroupVersionResource, error)\n\n\t// ResourcesFor takes a partial resource and returns the list of potential resource in priority order\n\tResourcesFor(input schema.GroupVersionResource) ([]schema.GroupVersionResource, error)\n\n\t// RESTMapping identifies a preferred resource mapping for the provided group kind.\n\tRESTMapping(gk schema.GroupKind, versions ...string) (*RESTMapping, error)\n\t// RESTMappings returns all resource mappings for the provided group kind if no\n\t// version search is provided. Otherwise identifies a preferred resource mapping for\n\t// the provided version(s).\n\tRESTMappings(gk schema.GroupKind, versions ...string) ([]*RESTMapping, error)\n\n\tResourceSingularizer(resource string) (singular string, err error)\n}\n\n// ResettableRESTMapper is a RESTMapper which is capable of resetting itself\n// from discovery.\n// All rest mappers that delegate to other rest mappers must implement this interface and dynamically\n// check if the delegate mapper supports the Reset() operation.\ntype ResettableRESTMapper interface {\n\tRESTMapper\n\tReset()\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/meta/lazy.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage meta\n\nimport (\n\t\"sync\"\n\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// lazyObject defers loading the mapper and typer until necessary.\ntype lazyObject struct {\n\tloader func() (RESTMapper, error)\n\n\tlock   sync.Mutex\n\tloaded bool\n\terr    error\n\tmapper RESTMapper\n}\n\n// NewLazyRESTMapperLoader handles unrecoverable errors when creating a RESTMapper / ObjectTyper by\n// returning those initialization errors when the interface methods are invoked. This defers the\n// initialization and any server calls until a client actually needs to perform the action.\nfunc NewLazyRESTMapperLoader(fn func() (RESTMapper, error)) RESTMapper {\n\tobj := &lazyObject{loader: fn}\n\treturn obj\n}\n\n// init lazily loads the mapper and typer, returning an error if initialization has failed.\nfunc (o *lazyObject) init() error {\n\to.lock.Lock()\n\tdefer o.lock.Unlock()\n\tif o.loaded {\n\t\treturn o.err\n\t}\n\to.mapper, o.err = o.loader()\n\to.loaded = true\n\treturn o.err\n}\n\nvar _ ResettableRESTMapper = &lazyObject{}\n\nfunc (o *lazyObject) KindFor(resource schema.GroupVersionResource) (schema.GroupVersionKind, error) {\n\tif err := o.init(); err != nil {\n\t\treturn schema.GroupVersionKind{}, err\n\t}\n\treturn o.mapper.KindFor(resource)\n}\n\nfunc (o *lazyObject) KindsFor(resource schema.GroupVersionResource) ([]schema.GroupVersionKind, error) {\n\tif err := o.init(); err != nil {\n\t\treturn []schema.GroupVersionKind{}, err\n\t}\n\treturn o.mapper.KindsFor(resource)\n}\n\nfunc (o *lazyObject) ResourceFor(input schema.GroupVersionResource) (schema.GroupVersionResource, error) {\n\tif err := o.init(); err != nil {\n\t\treturn schema.GroupVersionResource{}, err\n\t}\n\treturn o.mapper.ResourceFor(input)\n}\n\nfunc (o *lazyObject) ResourcesFor(input schema.GroupVersionResource) ([]schema.GroupVersionResource, error) {\n\tif err := o.init(); err != nil {\n\t\treturn []schema.GroupVersionResource{}, err\n\t}\n\treturn o.mapper.ResourcesFor(input)\n}\n\nfunc (o *lazyObject) RESTMapping(gk schema.GroupKind, versions ...string) (*RESTMapping, error) {\n\tif err := o.init(); err != nil {\n\t\treturn nil, err\n\t}\n\treturn o.mapper.RESTMapping(gk, versions...)\n}\n\nfunc (o *lazyObject) RESTMappings(gk schema.GroupKind, versions ...string) ([]*RESTMapping, error) {\n\tif err := o.init(); err != nil {\n\t\treturn nil, err\n\t}\n\treturn o.mapper.RESTMappings(gk, versions...)\n}\n\nfunc (o *lazyObject) ResourceSingularizer(resource string) (singular string, err error) {\n\tif err := o.init(); err != nil {\n\t\treturn \"\", err\n\t}\n\treturn o.mapper.ResourceSingularizer(resource)\n}\n\nfunc (o *lazyObject) Reset() {\n\to.lock.Lock()\n\tdefer o.lock.Unlock()\n\tif o.loaded && o.err == nil {\n\t\tMaybeResetRESTMapper(o.mapper)\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/meta/meta.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage meta\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/conversion\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/types\"\n\t\"k8s.io/klog/v2\"\n)\n\n// errNotList is returned when an object implements the Object style interfaces but not the List style\n// interfaces.\nvar errNotList = fmt.Errorf(\"object does not implement the List interfaces\")\n\nvar errNotCommon = fmt.Errorf(\"object does not implement the common interface for accessing the SelfLink\")\n\n// CommonAccessor returns a Common interface for the provided object or an error if the object does\n// not provide List.\nfunc CommonAccessor(obj interface{}) (metav1.Common, error) {\n\tswitch t := obj.(type) {\n\tcase List:\n\t\treturn t, nil\n\tcase ListMetaAccessor:\n\t\tif m := t.GetListMeta(); m != nil {\n\t\t\treturn m, nil\n\t\t}\n\t\treturn nil, errNotCommon\n\tcase metav1.ListMetaAccessor:\n\t\tif m := t.GetListMeta(); m != nil {\n\t\t\treturn m, nil\n\t\t}\n\t\treturn nil, errNotCommon\n\tcase metav1.Object:\n\t\treturn t, nil\n\tcase metav1.ObjectMetaAccessor:\n\t\tif m := t.GetObjectMeta(); m != nil {\n\t\t\treturn m, nil\n\t\t}\n\t\treturn nil, errNotCommon\n\tdefault:\n\t\treturn nil, errNotCommon\n\t}\n}\n\n// ListAccessor returns a List interface for the provided object or an error if the object does\n// not provide List.\n// IMPORTANT: Objects are NOT a superset of lists. Do not use this check to determine whether an\n// object *is* a List.\nfunc ListAccessor(obj interface{}) (List, error) {\n\tswitch t := obj.(type) {\n\tcase List:\n\t\treturn t, nil\n\tcase ListMetaAccessor:\n\t\tif m := t.GetListMeta(); m != nil {\n\t\t\treturn m, nil\n\t\t}\n\t\treturn nil, errNotList\n\tcase metav1.ListMetaAccessor:\n\t\tif m := t.GetListMeta(); m != nil {\n\t\t\treturn m, nil\n\t\t}\n\t\treturn nil, errNotList\n\tdefault:\n\t\treturn nil, errNotList\n\t}\n}\n\n// errNotObject is returned when an object implements the List style interfaces but not the Object style\n// interfaces.\nvar errNotObject = fmt.Errorf(\"object does not implement the Object interfaces\")\n\n// Accessor takes an arbitrary object pointer and returns meta.Interface.\n// obj must be a pointer to an API type. An error is returned if the minimum\n// required fields are missing. Fields that are not required return the default\n// value and are a no-op if set.\nfunc Accessor(obj interface{}) (metav1.Object, error) {\n\tswitch t := obj.(type) {\n\tcase metav1.Object:\n\t\treturn t, nil\n\tcase metav1.ObjectMetaAccessor:\n\t\tif m := t.GetObjectMeta(); m != nil {\n\t\t\treturn m, nil\n\t\t}\n\t\treturn nil, errNotObject\n\tdefault:\n\t\treturn nil, errNotObject\n\t}\n}\n\n// AsPartialObjectMetadata takes the metav1 interface and returns a partial object.\n// TODO: consider making this solely a conversion action.\nfunc AsPartialObjectMetadata(m metav1.Object) *metav1.PartialObjectMetadata {\n\tswitch t := m.(type) {\n\tcase *metav1.ObjectMeta:\n\t\treturn &metav1.PartialObjectMetadata{ObjectMeta: *t}\n\tdefault:\n\t\treturn &metav1.PartialObjectMetadata{\n\t\t\tObjectMeta: metav1.ObjectMeta{\n\t\t\t\tName:                       m.GetName(),\n\t\t\t\tGenerateName:               m.GetGenerateName(),\n\t\t\t\tNamespace:                  m.GetNamespace(),\n\t\t\t\tSelfLink:                   m.GetSelfLink(),\n\t\t\t\tUID:                        m.GetUID(),\n\t\t\t\tResourceVersion:            m.GetResourceVersion(),\n\t\t\t\tGeneration:                 m.GetGeneration(),\n\t\t\t\tCreationTimestamp:          m.GetCreationTimestamp(),\n\t\t\t\tDeletionTimestamp:          m.GetDeletionTimestamp(),\n\t\t\t\tDeletionGracePeriodSeconds: m.GetDeletionGracePeriodSeconds(),\n\t\t\t\tLabels:                     m.GetLabels(),\n\t\t\t\tAnnotations:                m.GetAnnotations(),\n\t\t\t\tOwnerReferences:            m.GetOwnerReferences(),\n\t\t\t\tFinalizers:                 m.GetFinalizers(),\n\t\t\t\tManagedFields:              m.GetManagedFields(),\n\t\t\t},\n\t\t}\n\t}\n}\n\n// TypeAccessor returns an interface that allows retrieving and modifying the APIVersion\n// and Kind of an in-memory internal object.\n// TODO: this interface is used to test code that does not have ObjectMeta or ListMeta\n// in round tripping (objects which can use apiVersion/kind, but do not fit the Kube\n// api conventions).\nfunc TypeAccessor(obj interface{}) (Type, error) {\n\tif typed, ok := obj.(runtime.Object); ok {\n\t\treturn objectAccessor{typed}, nil\n\t}\n\tv, err := conversion.EnforcePtr(obj)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tt := v.Type()\n\tif v.Kind() != reflect.Struct {\n\t\treturn nil, fmt.Errorf(\"expected struct, but got %v: %v (%#v)\", v.Kind(), t, v.Interface())\n\t}\n\n\ttypeMeta := v.FieldByName(\"TypeMeta\")\n\tif !typeMeta.IsValid() {\n\t\treturn nil, fmt.Errorf(\"struct %v lacks embedded TypeMeta type\", t)\n\t}\n\ta := &genericAccessor{}\n\tif err := extractFromTypeMeta(typeMeta, a); err != nil {\n\t\treturn nil, fmt.Errorf(\"unable to find type fields on %#v: %v\", typeMeta, err)\n\t}\n\treturn a, nil\n}\n\ntype objectAccessor struct {\n\truntime.Object\n}\n\nfunc (obj objectAccessor) GetKind() string {\n\treturn obj.GetObjectKind().GroupVersionKind().Kind\n}\n\nfunc (obj objectAccessor) SetKind(kind string) {\n\tgvk := obj.GetObjectKind().GroupVersionKind()\n\tgvk.Kind = kind\n\tobj.GetObjectKind().SetGroupVersionKind(gvk)\n}\n\nfunc (obj objectAccessor) GetAPIVersion() string {\n\treturn obj.GetObjectKind().GroupVersionKind().GroupVersion().String()\n}\n\nfunc (obj objectAccessor) SetAPIVersion(version string) {\n\tgvk := obj.GetObjectKind().GroupVersionKind()\n\tgv, err := schema.ParseGroupVersion(version)\n\tif err != nil {\n\t\tgv = schema.GroupVersion{Version: version}\n\t}\n\tgvk.Group, gvk.Version = gv.Group, gv.Version\n\tobj.GetObjectKind().SetGroupVersionKind(gvk)\n}\n\n// NewAccessor returns a MetadataAccessor that can retrieve\n// or manipulate resource version on objects derived from core API\n// metadata concepts.\nfunc NewAccessor() MetadataAccessor {\n\treturn resourceAccessor{}\n}\n\n// resourceAccessor implements ResourceVersioner and SelfLinker.\ntype resourceAccessor struct{}\n\nfunc (resourceAccessor) Kind(obj runtime.Object) (string, error) {\n\treturn objectAccessor{obj}.GetKind(), nil\n}\n\nfunc (resourceAccessor) SetKind(obj runtime.Object, kind string) error {\n\tobjectAccessor{obj}.SetKind(kind)\n\treturn nil\n}\n\nfunc (resourceAccessor) APIVersion(obj runtime.Object) (string, error) {\n\treturn objectAccessor{obj}.GetAPIVersion(), nil\n}\n\nfunc (resourceAccessor) SetAPIVersion(obj runtime.Object, version string) error {\n\tobjectAccessor{obj}.SetAPIVersion(version)\n\treturn nil\n}\n\nfunc (resourceAccessor) Namespace(obj runtime.Object) (string, error) {\n\taccessor, err := Accessor(obj)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\treturn accessor.GetNamespace(), nil\n}\n\nfunc (resourceAccessor) SetNamespace(obj runtime.Object, namespace string) error {\n\taccessor, err := Accessor(obj)\n\tif err != nil {\n\t\treturn err\n\t}\n\taccessor.SetNamespace(namespace)\n\treturn nil\n}\n\nfunc (resourceAccessor) Name(obj runtime.Object) (string, error) {\n\taccessor, err := Accessor(obj)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\treturn accessor.GetName(), nil\n}\n\nfunc (resourceAccessor) SetName(obj runtime.Object, name string) error {\n\taccessor, err := Accessor(obj)\n\tif err != nil {\n\t\treturn err\n\t}\n\taccessor.SetName(name)\n\treturn nil\n}\n\nfunc (resourceAccessor) GenerateName(obj runtime.Object) (string, error) {\n\taccessor, err := Accessor(obj)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\treturn accessor.GetGenerateName(), nil\n}\n\nfunc (resourceAccessor) SetGenerateName(obj runtime.Object, name string) error {\n\taccessor, err := Accessor(obj)\n\tif err != nil {\n\t\treturn err\n\t}\n\taccessor.SetGenerateName(name)\n\treturn nil\n}\n\nfunc (resourceAccessor) UID(obj runtime.Object) (types.UID, error) {\n\taccessor, err := Accessor(obj)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\treturn accessor.GetUID(), nil\n}\n\nfunc (resourceAccessor) SetUID(obj runtime.Object, uid types.UID) error {\n\taccessor, err := Accessor(obj)\n\tif err != nil {\n\t\treturn err\n\t}\n\taccessor.SetUID(uid)\n\treturn nil\n}\n\nfunc (resourceAccessor) SelfLink(obj runtime.Object) (string, error) {\n\taccessor, err := CommonAccessor(obj)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\treturn accessor.GetSelfLink(), nil\n}\n\nfunc (resourceAccessor) SetSelfLink(obj runtime.Object, selfLink string) error {\n\taccessor, err := CommonAccessor(obj)\n\tif err != nil {\n\t\treturn err\n\t}\n\taccessor.SetSelfLink(selfLink)\n\treturn nil\n}\n\nfunc (resourceAccessor) Labels(obj runtime.Object) (map[string]string, error) {\n\taccessor, err := Accessor(obj)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn accessor.GetLabels(), nil\n}\n\nfunc (resourceAccessor) SetLabels(obj runtime.Object, labels map[string]string) error {\n\taccessor, err := Accessor(obj)\n\tif err != nil {\n\t\treturn err\n\t}\n\taccessor.SetLabels(labels)\n\treturn nil\n}\n\nfunc (resourceAccessor) Annotations(obj runtime.Object) (map[string]string, error) {\n\taccessor, err := Accessor(obj)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn accessor.GetAnnotations(), nil\n}\n\nfunc (resourceAccessor) SetAnnotations(obj runtime.Object, annotations map[string]string) error {\n\taccessor, err := Accessor(obj)\n\tif err != nil {\n\t\treturn err\n\t}\n\taccessor.SetAnnotations(annotations)\n\treturn nil\n}\n\nfunc (resourceAccessor) ResourceVersion(obj runtime.Object) (string, error) {\n\taccessor, err := CommonAccessor(obj)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\treturn accessor.GetResourceVersion(), nil\n}\n\nfunc (resourceAccessor) SetResourceVersion(obj runtime.Object, version string) error {\n\taccessor, err := CommonAccessor(obj)\n\tif err != nil {\n\t\treturn err\n\t}\n\taccessor.SetResourceVersion(version)\n\treturn nil\n}\n\nfunc (resourceAccessor) Continue(obj runtime.Object) (string, error) {\n\taccessor, err := ListAccessor(obj)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\treturn accessor.GetContinue(), nil\n}\n\nfunc (resourceAccessor) SetContinue(obj runtime.Object, version string) error {\n\taccessor, err := ListAccessor(obj)\n\tif err != nil {\n\t\treturn err\n\t}\n\taccessor.SetContinue(version)\n\treturn nil\n}\n\n// extractFromOwnerReference extracts v to o. v is the OwnerReferences field of an object.\nfunc extractFromOwnerReference(v reflect.Value, o *metav1.OwnerReference) error {\n\tif err := runtime.Field(v, \"APIVersion\", &o.APIVersion); err != nil {\n\t\treturn err\n\t}\n\tif err := runtime.Field(v, \"Kind\", &o.Kind); err != nil {\n\t\treturn err\n\t}\n\tif err := runtime.Field(v, \"Name\", &o.Name); err != nil {\n\t\treturn err\n\t}\n\tif err := runtime.Field(v, \"UID\", &o.UID); err != nil {\n\t\treturn err\n\t}\n\tvar controllerPtr *bool\n\tif err := runtime.Field(v, \"Controller\", &controllerPtr); err != nil {\n\t\treturn err\n\t}\n\tif controllerPtr != nil {\n\t\tcontroller := *controllerPtr\n\t\to.Controller = &controller\n\t}\n\tvar blockOwnerDeletionPtr *bool\n\tif err := runtime.Field(v, \"BlockOwnerDeletion\", &blockOwnerDeletionPtr); err != nil {\n\t\treturn err\n\t}\n\tif blockOwnerDeletionPtr != nil {\n\t\tblock := *blockOwnerDeletionPtr\n\t\to.BlockOwnerDeletion = &block\n\t}\n\treturn nil\n}\n\n// setOwnerReference sets v to o. v is the OwnerReferences field of an object.\nfunc setOwnerReference(v reflect.Value, o *metav1.OwnerReference) error {\n\tif err := runtime.SetField(o.APIVersion, v, \"APIVersion\"); err != nil {\n\t\treturn err\n\t}\n\tif err := runtime.SetField(o.Kind, v, \"Kind\"); err != nil {\n\t\treturn err\n\t}\n\tif err := runtime.SetField(o.Name, v, \"Name\"); err != nil {\n\t\treturn err\n\t}\n\tif err := runtime.SetField(o.UID, v, \"UID\"); err != nil {\n\t\treturn err\n\t}\n\tif o.Controller != nil {\n\t\tcontroller := *(o.Controller)\n\t\tif err := runtime.SetField(&controller, v, \"Controller\"); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif o.BlockOwnerDeletion != nil {\n\t\tblock := *(o.BlockOwnerDeletion)\n\t\tif err := runtime.SetField(&block, v, \"BlockOwnerDeletion\"); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// genericAccessor contains pointers to strings that can modify an arbitrary\n// struct and implements the Accessor interface.\ntype genericAccessor struct {\n\tnamespace         *string\n\tname              *string\n\tgenerateName      *string\n\tuid               *types.UID\n\tapiVersion        *string\n\tkind              *string\n\tresourceVersion   *string\n\tselfLink          *string\n\tcreationTimestamp *metav1.Time\n\tdeletionTimestamp **metav1.Time\n\tlabels            *map[string]string\n\tannotations       *map[string]string\n\townerReferences   reflect.Value\n\tfinalizers        *[]string\n}\n\nfunc (a genericAccessor) GetNamespace() string {\n\tif a.namespace == nil {\n\t\treturn \"\"\n\t}\n\treturn *a.namespace\n}\n\nfunc (a genericAccessor) SetNamespace(namespace string) {\n\tif a.namespace == nil {\n\t\treturn\n\t}\n\t*a.namespace = namespace\n}\n\nfunc (a genericAccessor) GetName() string {\n\tif a.name == nil {\n\t\treturn \"\"\n\t}\n\treturn *a.name\n}\n\nfunc (a genericAccessor) SetName(name string) {\n\tif a.name == nil {\n\t\treturn\n\t}\n\t*a.name = name\n}\n\nfunc (a genericAccessor) GetGenerateName() string {\n\tif a.generateName == nil {\n\t\treturn \"\"\n\t}\n\treturn *a.generateName\n}\n\nfunc (a genericAccessor) SetGenerateName(generateName string) {\n\tif a.generateName == nil {\n\t\treturn\n\t}\n\t*a.generateName = generateName\n}\n\nfunc (a genericAccessor) GetUID() types.UID {\n\tif a.uid == nil {\n\t\treturn \"\"\n\t}\n\treturn *a.uid\n}\n\nfunc (a genericAccessor) SetUID(uid types.UID) {\n\tif a.uid == nil {\n\t\treturn\n\t}\n\t*a.uid = uid\n}\n\nfunc (a genericAccessor) GetAPIVersion() string {\n\treturn *a.apiVersion\n}\n\nfunc (a genericAccessor) SetAPIVersion(version string) {\n\t*a.apiVersion = version\n}\n\nfunc (a genericAccessor) GetKind() string {\n\treturn *a.kind\n}\n\nfunc (a genericAccessor) SetKind(kind string) {\n\t*a.kind = kind\n}\n\nfunc (a genericAccessor) GetResourceVersion() string {\n\treturn *a.resourceVersion\n}\n\nfunc (a genericAccessor) SetResourceVersion(version string) {\n\t*a.resourceVersion = version\n}\n\nfunc (a genericAccessor) GetSelfLink() string {\n\treturn *a.selfLink\n}\n\nfunc (a genericAccessor) SetSelfLink(selfLink string) {\n\t*a.selfLink = selfLink\n}\n\nfunc (a genericAccessor) GetCreationTimestamp() metav1.Time {\n\treturn *a.creationTimestamp\n}\n\nfunc (a genericAccessor) SetCreationTimestamp(timestamp metav1.Time) {\n\t*a.creationTimestamp = timestamp\n}\n\nfunc (a genericAccessor) GetDeletionTimestamp() *metav1.Time {\n\treturn *a.deletionTimestamp\n}\n\nfunc (a genericAccessor) SetDeletionTimestamp(timestamp *metav1.Time) {\n\t*a.deletionTimestamp = timestamp\n}\n\nfunc (a genericAccessor) GetLabels() map[string]string {\n\tif a.labels == nil {\n\t\treturn nil\n\t}\n\treturn *a.labels\n}\n\nfunc (a genericAccessor) SetLabels(labels map[string]string) {\n\t*a.labels = labels\n}\n\nfunc (a genericAccessor) GetAnnotations() map[string]string {\n\tif a.annotations == nil {\n\t\treturn nil\n\t}\n\treturn *a.annotations\n}\n\nfunc (a genericAccessor) SetAnnotations(annotations map[string]string) {\n\tif a.annotations == nil {\n\t\temptyAnnotations := make(map[string]string)\n\t\ta.annotations = &emptyAnnotations\n\t}\n\t*a.annotations = annotations\n}\n\nfunc (a genericAccessor) GetFinalizers() []string {\n\tif a.finalizers == nil {\n\t\treturn nil\n\t}\n\treturn *a.finalizers\n}\n\nfunc (a genericAccessor) SetFinalizers(finalizers []string) {\n\t*a.finalizers = finalizers\n}\n\nfunc (a genericAccessor) GetOwnerReferences() []metav1.OwnerReference {\n\tvar ret []metav1.OwnerReference\n\ts := a.ownerReferences\n\tif s.Kind() != reflect.Pointer || s.Elem().Kind() != reflect.Slice {\n\t\tklog.Errorf(\"expect %v to be a pointer to slice\", s)\n\t\treturn ret\n\t}\n\ts = s.Elem()\n\t// Set the capacity to one element greater to avoid copy if the caller later append an element.\n\tret = make([]metav1.OwnerReference, s.Len(), s.Len()+1)\n\tfor i := 0; i < s.Len(); i++ {\n\t\tif err := extractFromOwnerReference(s.Index(i), &ret[i]); err != nil {\n\t\t\tklog.Errorf(\"extractFromOwnerReference failed: %v\", err)\n\t\t\treturn ret\n\t\t}\n\t}\n\treturn ret\n}\n\nfunc (a genericAccessor) SetOwnerReferences(references []metav1.OwnerReference) {\n\ts := a.ownerReferences\n\tif s.Kind() != reflect.Pointer || s.Elem().Kind() != reflect.Slice {\n\t\tklog.Errorf(\"expect %v to be a pointer to slice\", s)\n\t}\n\ts = s.Elem()\n\tnewReferences := reflect.MakeSlice(s.Type(), len(references), len(references))\n\tfor i := 0; i < len(references); i++ {\n\t\tif err := setOwnerReference(newReferences.Index(i), &references[i]); err != nil {\n\t\t\tklog.Errorf(\"setOwnerReference failed: %v\", err)\n\t\t\treturn\n\t\t}\n\t}\n\ts.Set(newReferences)\n}\n\n// extractFromTypeMeta extracts pointers to version and kind fields from an object\nfunc extractFromTypeMeta(v reflect.Value, a *genericAccessor) error {\n\tif err := runtime.FieldPtr(v, \"APIVersion\", &a.apiVersion); err != nil {\n\t\treturn err\n\t}\n\tif err := runtime.FieldPtr(v, \"Kind\", &a.kind); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/meta/multirestmapper.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage meta\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\tutilerrors \"k8s.io/apimachinery/pkg/util/errors\"\n)\n\nvar (\n\t_ ResettableRESTMapper = MultiRESTMapper{}\n)\n\n// MultiRESTMapper is a wrapper for multiple RESTMappers.\ntype MultiRESTMapper []RESTMapper\n\nfunc (m MultiRESTMapper) String() string {\n\tnested := make([]string, 0, len(m))\n\tfor _, t := range m {\n\t\tcurrString := fmt.Sprintf(\"%v\", t)\n\t\tsplitStrings := strings.Split(currString, \"\\n\")\n\t\tnested = append(nested, strings.Join(splitStrings, \"\\n\\t\"))\n\t}\n\n\treturn fmt.Sprintf(\"MultiRESTMapper{\\n\\t%s\\n}\", strings.Join(nested, \"\\n\\t\"))\n}\n\n// ResourceSingularizer converts a REST resource name from plural to singular (e.g., from pods to pod)\n// This implementation supports multiple REST schemas and return the first match.\nfunc (m MultiRESTMapper) ResourceSingularizer(resource string) (singular string, err error) {\n\tfor _, t := range m {\n\t\tsingular, err = t.ResourceSingularizer(resource)\n\t\tif err == nil {\n\t\t\treturn\n\t\t}\n\t}\n\treturn\n}\n\nfunc (m MultiRESTMapper) ResourcesFor(resource schema.GroupVersionResource) ([]schema.GroupVersionResource, error) {\n\tallGVRs := []schema.GroupVersionResource{}\n\tfor _, t := range m {\n\t\tgvrs, err := t.ResourcesFor(resource)\n\t\t// ignore \"no match\" errors, but any other error percolates back up\n\t\tif IsNoMatchError(err) {\n\t\t\tcontinue\n\t\t}\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\t// walk the existing values to de-dup\n\t\tfor _, curr := range gvrs {\n\t\t\tfound := false\n\t\t\tfor _, existing := range allGVRs {\n\t\t\t\tif curr == existing {\n\t\t\t\t\tfound = true\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif !found {\n\t\t\t\tallGVRs = append(allGVRs, curr)\n\t\t\t}\n\t\t}\n\t}\n\n\tif len(allGVRs) == 0 {\n\t\treturn nil, &NoResourceMatchError{PartialResource: resource}\n\t}\n\n\treturn allGVRs, nil\n}\n\nfunc (m MultiRESTMapper) KindsFor(resource schema.GroupVersionResource) (gvk []schema.GroupVersionKind, err error) {\n\tallGVKs := []schema.GroupVersionKind{}\n\tfor _, t := range m {\n\t\tgvks, err := t.KindsFor(resource)\n\t\t// ignore \"no match\" errors, but any other error percolates back up\n\t\tif IsNoMatchError(err) {\n\t\t\tcontinue\n\t\t}\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\t// walk the existing values to de-dup\n\t\tfor _, curr := range gvks {\n\t\t\tfound := false\n\t\t\tfor _, existing := range allGVKs {\n\t\t\t\tif curr == existing {\n\t\t\t\t\tfound = true\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif !found {\n\t\t\t\tallGVKs = append(allGVKs, curr)\n\t\t\t}\n\t\t}\n\t}\n\n\tif len(allGVKs) == 0 {\n\t\treturn nil, &NoResourceMatchError{PartialResource: resource}\n\t}\n\n\treturn allGVKs, nil\n}\n\nfunc (m MultiRESTMapper) ResourceFor(resource schema.GroupVersionResource) (schema.GroupVersionResource, error) {\n\tresources, err := m.ResourcesFor(resource)\n\tif err != nil {\n\t\treturn schema.GroupVersionResource{}, err\n\t}\n\tif len(resources) == 1 {\n\t\treturn resources[0], nil\n\t}\n\n\treturn schema.GroupVersionResource{}, &AmbiguousResourceError{PartialResource: resource, MatchingResources: resources}\n}\n\nfunc (m MultiRESTMapper) KindFor(resource schema.GroupVersionResource) (schema.GroupVersionKind, error) {\n\tkinds, err := m.KindsFor(resource)\n\tif err != nil {\n\t\treturn schema.GroupVersionKind{}, err\n\t}\n\tif len(kinds) == 1 {\n\t\treturn kinds[0], nil\n\t}\n\n\treturn schema.GroupVersionKind{}, &AmbiguousResourceError{PartialResource: resource, MatchingKinds: kinds}\n}\n\n// RESTMapping provides the REST mapping for the resource based on the\n// kind and version. This implementation supports multiple REST schemas and\n// return the first match.\nfunc (m MultiRESTMapper) RESTMapping(gk schema.GroupKind, versions ...string) (*RESTMapping, error) {\n\tallMappings := []*RESTMapping{}\n\terrors := []error{}\n\n\tfor _, t := range m {\n\t\tcurrMapping, err := t.RESTMapping(gk, versions...)\n\t\t// ignore \"no match\" errors, but any other error percolates back up\n\t\tif IsNoMatchError(err) {\n\t\t\tcontinue\n\t\t}\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t\tcontinue\n\t\t}\n\n\t\tallMappings = append(allMappings, currMapping)\n\t}\n\n\t// if we got exactly one mapping, then use it even if other requested failed\n\tif len(allMappings) == 1 {\n\t\treturn allMappings[0], nil\n\t}\n\tif len(allMappings) > 1 {\n\t\tvar kinds []schema.GroupVersionKind\n\t\tfor _, m := range allMappings {\n\t\t\tkinds = append(kinds, m.GroupVersionKind)\n\t\t}\n\t\treturn nil, &AmbiguousKindError{PartialKind: gk.WithVersion(\"\"), MatchingKinds: kinds}\n\t}\n\tif len(errors) > 0 {\n\t\treturn nil, utilerrors.NewAggregate(errors)\n\t}\n\treturn nil, &NoKindMatchError{GroupKind: gk, SearchedVersions: versions}\n}\n\n// RESTMappings returns all possible RESTMappings for the provided group kind, or an error\n// if the type is not recognized.\nfunc (m MultiRESTMapper) RESTMappings(gk schema.GroupKind, versions ...string) ([]*RESTMapping, error) {\n\tvar allMappings []*RESTMapping\n\tvar errors []error\n\n\tfor _, t := range m {\n\t\tcurrMappings, err := t.RESTMappings(gk, versions...)\n\t\t// ignore \"no match\" errors, but any other error percolates back up\n\t\tif IsNoMatchError(err) {\n\t\t\tcontinue\n\t\t}\n\t\tif err != nil {\n\t\t\terrors = append(errors, err)\n\t\t\tcontinue\n\t\t}\n\t\tallMappings = append(allMappings, currMappings...)\n\t}\n\tif len(errors) > 0 {\n\t\treturn nil, utilerrors.NewAggregate(errors)\n\t}\n\tif len(allMappings) == 0 {\n\t\treturn nil, &NoKindMatchError{GroupKind: gk, SearchedVersions: versions}\n\t}\n\treturn allMappings, nil\n}\n\nfunc (m MultiRESTMapper) Reset() {\n\tfor _, t := range m {\n\t\tMaybeResetRESTMapper(t)\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/meta/priority.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage meta\n\nimport (\n\t\"fmt\"\n\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\nconst (\n\tAnyGroup    = \"*\"\n\tAnyVersion  = \"*\"\n\tAnyResource = \"*\"\n\tAnyKind     = \"*\"\n)\n\nvar (\n\t_ ResettableRESTMapper = PriorityRESTMapper{}\n)\n\n// PriorityRESTMapper is a wrapper for automatically choosing a particular Resource or Kind\n// when multiple matches are possible\ntype PriorityRESTMapper struct {\n\t// Delegate is the RESTMapper to use to locate all the Kind and Resource matches\n\tDelegate RESTMapper\n\n\t// ResourcePriority is a list of priority patterns to apply to matching resources.\n\t// The list of all matching resources is narrowed based on the patterns until only one remains.\n\t// A pattern with no matches is skipped.  A pattern with more than one match uses its\n\t// matches as the list to continue matching against.\n\tResourcePriority []schema.GroupVersionResource\n\n\t// KindPriority is a list of priority patterns to apply to matching kinds.\n\t// The list of all matching kinds is narrowed based on the patterns until only one remains.\n\t// A pattern with no matches is skipped.  A pattern with more than one match uses its\n\t// matches as the list to continue matching against.\n\tKindPriority []schema.GroupVersionKind\n}\n\nfunc (m PriorityRESTMapper) String() string {\n\treturn fmt.Sprintf(\"PriorityRESTMapper{\\n\\t%v\\n\\t%v\\n\\t%v\\n}\", m.ResourcePriority, m.KindPriority, m.Delegate)\n}\n\n// ResourceFor finds all resources, then passes them through the ResourcePriority patterns to find a single matching hit.\nfunc (m PriorityRESTMapper) ResourceFor(partiallySpecifiedResource schema.GroupVersionResource) (schema.GroupVersionResource, error) {\n\toriginalGVRs, originalErr := m.Delegate.ResourcesFor(partiallySpecifiedResource)\n\tif originalErr != nil && len(originalGVRs) == 0 {\n\t\treturn schema.GroupVersionResource{}, originalErr\n\t}\n\tif len(originalGVRs) == 1 {\n\t\treturn originalGVRs[0], originalErr\n\t}\n\n\tremainingGVRs := append([]schema.GroupVersionResource{}, originalGVRs...)\n\tfor _, pattern := range m.ResourcePriority {\n\t\tmatchedGVRs := []schema.GroupVersionResource{}\n\t\tfor _, gvr := range remainingGVRs {\n\t\t\tif resourceMatches(pattern, gvr) {\n\t\t\t\tmatchedGVRs = append(matchedGVRs, gvr)\n\t\t\t}\n\t\t}\n\n\t\tswitch len(matchedGVRs) {\n\t\tcase 0:\n\t\t\t// if you have no matches, then nothing matched this pattern just move to the next\n\t\t\tcontinue\n\t\tcase 1:\n\t\t\t// one match, return\n\t\t\treturn matchedGVRs[0], originalErr\n\t\tdefault:\n\t\t\t// more than one match, use the matched hits as the list moving to the next pattern.\n\t\t\t// this way you can have a series of selection criteria\n\t\t\tremainingGVRs = matchedGVRs\n\t\t}\n\t}\n\n\treturn schema.GroupVersionResource{}, &AmbiguousResourceError{PartialResource: partiallySpecifiedResource, MatchingResources: originalGVRs}\n}\n\n// KindFor finds all kinds, then passes them through the KindPriority patterns to find a single matching hit.\nfunc (m PriorityRESTMapper) KindFor(partiallySpecifiedResource schema.GroupVersionResource) (schema.GroupVersionKind, error) {\n\toriginalGVKs, originalErr := m.Delegate.KindsFor(partiallySpecifiedResource)\n\tif originalErr != nil && len(originalGVKs) == 0 {\n\t\treturn schema.GroupVersionKind{}, originalErr\n\t}\n\tif len(originalGVKs) == 1 {\n\t\treturn originalGVKs[0], originalErr\n\t}\n\n\tremainingGVKs := append([]schema.GroupVersionKind{}, originalGVKs...)\n\tfor _, pattern := range m.KindPriority {\n\t\tmatchedGVKs := []schema.GroupVersionKind{}\n\t\tfor _, gvr := range remainingGVKs {\n\t\t\tif kindMatches(pattern, gvr) {\n\t\t\t\tmatchedGVKs = append(matchedGVKs, gvr)\n\t\t\t}\n\t\t}\n\n\t\tswitch len(matchedGVKs) {\n\t\tcase 0:\n\t\t\t// if you have no matches, then nothing matched this pattern just move to the next\n\t\t\tcontinue\n\t\tcase 1:\n\t\t\t// one match, return\n\t\t\treturn matchedGVKs[0], originalErr\n\t\tdefault:\n\t\t\t// more than one match, use the matched hits as the list moving to the next pattern.\n\t\t\t// this way you can have a series of selection criteria\n\t\t\tremainingGVKs = matchedGVKs\n\t\t}\n\t}\n\n\treturn schema.GroupVersionKind{}, &AmbiguousResourceError{PartialResource: partiallySpecifiedResource, MatchingKinds: originalGVKs}\n}\n\nfunc resourceMatches(pattern schema.GroupVersionResource, resource schema.GroupVersionResource) bool {\n\tif pattern.Group != AnyGroup && pattern.Group != resource.Group {\n\t\treturn false\n\t}\n\tif pattern.Version != AnyVersion && pattern.Version != resource.Version {\n\t\treturn false\n\t}\n\tif pattern.Resource != AnyResource && pattern.Resource != resource.Resource {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\nfunc kindMatches(pattern schema.GroupVersionKind, kind schema.GroupVersionKind) bool {\n\tif pattern.Group != AnyGroup && pattern.Group != kind.Group {\n\t\treturn false\n\t}\n\tif pattern.Version != AnyVersion && pattern.Version != kind.Version {\n\t\treturn false\n\t}\n\tif pattern.Kind != AnyKind && pattern.Kind != kind.Kind {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\nfunc (m PriorityRESTMapper) RESTMapping(gk schema.GroupKind, versions ...string) (mapping *RESTMapping, err error) {\n\tmappings, originalErr := m.Delegate.RESTMappings(gk, versions...)\n\tif originalErr != nil && len(mappings) == 0 {\n\t\treturn nil, originalErr\n\t}\n\n\t// any versions the user provides take priority\n\tpriorities := m.KindPriority\n\tif len(versions) > 0 {\n\t\tpriorities = make([]schema.GroupVersionKind, 0, len(m.KindPriority)+len(versions))\n\t\tfor _, version := range versions {\n\t\t\tgv := schema.GroupVersion{\n\t\t\t\tVersion: version,\n\t\t\t\tGroup:   gk.Group,\n\t\t\t}\n\t\t\tpriorities = append(priorities, gv.WithKind(AnyKind))\n\t\t}\n\t\tpriorities = append(priorities, m.KindPriority...)\n\t}\n\n\tremaining := append([]*RESTMapping{}, mappings...)\n\tfor _, pattern := range priorities {\n\t\tvar matching []*RESTMapping\n\t\tfor _, m := range remaining {\n\t\t\tif kindMatches(pattern, m.GroupVersionKind) {\n\t\t\t\tmatching = append(matching, m)\n\t\t\t}\n\t\t}\n\n\t\tswitch len(matching) {\n\t\tcase 0:\n\t\t\t// if you have no matches, then nothing matched this pattern just move to the next\n\t\t\tcontinue\n\t\tcase 1:\n\t\t\t// one match, return\n\t\t\treturn matching[0], originalErr\n\t\tdefault:\n\t\t\t// more than one match, use the matched hits as the list moving to the next pattern.\n\t\t\t// this way you can have a series of selection criteria\n\t\t\tremaining = matching\n\t\t}\n\t}\n\tif len(remaining) == 1 {\n\t\treturn remaining[0], originalErr\n\t}\n\n\tvar kinds []schema.GroupVersionKind\n\tfor _, m := range mappings {\n\t\tkinds = append(kinds, m.GroupVersionKind)\n\t}\n\treturn nil, &AmbiguousKindError{PartialKind: gk.WithVersion(\"\"), MatchingKinds: kinds}\n}\n\nfunc (m PriorityRESTMapper) RESTMappings(gk schema.GroupKind, versions ...string) ([]*RESTMapping, error) {\n\treturn m.Delegate.RESTMappings(gk, versions...)\n}\n\nfunc (m PriorityRESTMapper) ResourceSingularizer(resource string) (singular string, err error) {\n\treturn m.Delegate.ResourceSingularizer(resource)\n}\n\nfunc (m PriorityRESTMapper) ResourcesFor(partiallySpecifiedResource schema.GroupVersionResource) ([]schema.GroupVersionResource, error) {\n\treturn m.Delegate.ResourcesFor(partiallySpecifiedResource)\n}\n\nfunc (m PriorityRESTMapper) KindsFor(partiallySpecifiedResource schema.GroupVersionResource) (gvk []schema.GroupVersionKind, err error) {\n\treturn m.Delegate.KindsFor(partiallySpecifiedResource)\n}\n\nfunc (m PriorityRESTMapper) Reset() {\n\tMaybeResetRESTMapper(m.Delegate)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/meta/restmapper.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// TODO: move everything in this file to pkg/api/rest\npackage meta\n\nimport (\n\t\"fmt\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// Implements RESTScope interface\ntype restScope struct {\n\tname RESTScopeName\n}\n\nfunc (r *restScope) Name() RESTScopeName {\n\treturn r.name\n}\n\nvar RESTScopeNamespace = &restScope{\n\tname: RESTScopeNameNamespace,\n}\n\nvar RESTScopeRoot = &restScope{\n\tname: RESTScopeNameRoot,\n}\n\n// DefaultRESTMapper exposes mappings between the types defined in a\n// runtime.Scheme. It assumes that all types defined the provided scheme\n// can be mapped with the provided MetadataAccessor and Codec interfaces.\n//\n// The resource name of a Kind is defined as the lowercase,\n// English-plural version of the Kind string.\n// When converting from resource to Kind, the singular version of the\n// resource name is also accepted for convenience.\n//\n// TODO: Only accept plural for some operations for increased control?\n// (`get pod bar` vs `get pods bar`)\ntype DefaultRESTMapper struct {\n\tdefaultGroupVersions []schema.GroupVersion\n\n\tresourceToKind       map[schema.GroupVersionResource]schema.GroupVersionKind\n\tkindToPluralResource map[schema.GroupVersionKind]schema.GroupVersionResource\n\tkindToScope          map[schema.GroupVersionKind]RESTScope\n\tsingularToPlural     map[schema.GroupVersionResource]schema.GroupVersionResource\n\tpluralToSingular     map[schema.GroupVersionResource]schema.GroupVersionResource\n}\n\nfunc (m *DefaultRESTMapper) String() string {\n\tif m == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn fmt.Sprintf(\"DefaultRESTMapper{kindToPluralResource=%v}\", m.kindToPluralResource)\n}\n\nvar _ RESTMapper = &DefaultRESTMapper{}\n\n// NewDefaultRESTMapper initializes a mapping between Kind and APIVersion\n// to a resource name and back based on the objects in a runtime.Scheme\n// and the Kubernetes API conventions. Takes a group name, a priority list of the versions\n// to search when an object has no default version (set empty to return an error),\n// and a function that retrieves the correct metadata for a given version.\nfunc NewDefaultRESTMapper(defaultGroupVersions []schema.GroupVersion) *DefaultRESTMapper {\n\tresourceToKind := make(map[schema.GroupVersionResource]schema.GroupVersionKind)\n\tkindToPluralResource := make(map[schema.GroupVersionKind]schema.GroupVersionResource)\n\tkindToScope := make(map[schema.GroupVersionKind]RESTScope)\n\tsingularToPlural := make(map[schema.GroupVersionResource]schema.GroupVersionResource)\n\tpluralToSingular := make(map[schema.GroupVersionResource]schema.GroupVersionResource)\n\t// TODO: verify name mappings work correctly when versions differ\n\n\treturn &DefaultRESTMapper{\n\t\tresourceToKind:       resourceToKind,\n\t\tkindToPluralResource: kindToPluralResource,\n\t\tkindToScope:          kindToScope,\n\t\tdefaultGroupVersions: defaultGroupVersions,\n\t\tsingularToPlural:     singularToPlural,\n\t\tpluralToSingular:     pluralToSingular,\n\t}\n}\n\nfunc (m *DefaultRESTMapper) Add(kind schema.GroupVersionKind, scope RESTScope) {\n\tplural, singular := UnsafeGuessKindToResource(kind)\n\tm.AddSpecific(kind, plural, singular, scope)\n}\n\nfunc (m *DefaultRESTMapper) AddSpecific(kind schema.GroupVersionKind, plural, singular schema.GroupVersionResource, scope RESTScope) {\n\tm.singularToPlural[singular] = plural\n\tm.pluralToSingular[plural] = singular\n\n\tm.resourceToKind[singular] = kind\n\tm.resourceToKind[plural] = kind\n\n\tm.kindToPluralResource[kind] = plural\n\tm.kindToScope[kind] = scope\n}\n\n// unpluralizedSuffixes is a list of resource suffixes that are the same plural and singular\n// This is only is only necessary because some bits of code are lazy and don't actually use the RESTMapper like they should.\n// TODO eliminate this so that different callers can correctly map to resources.  This probably means updating all\n// callers to use the RESTMapper they mean.\nvar unpluralizedSuffixes = []string{\n\t\"endpoints\",\n}\n\n// UnsafeGuessKindToResource converts Kind to a resource name.\n// Broken. This method only \"sort of\" works when used outside of this package.  It assumes that Kinds and Resources match\n// and they aren't guaranteed to do so.\nfunc UnsafeGuessKindToResource(kind schema.GroupVersionKind) ( /*plural*/ schema.GroupVersionResource /*singular*/, schema.GroupVersionResource) {\n\tkindName := kind.Kind\n\tif len(kindName) == 0 {\n\t\treturn schema.GroupVersionResource{}, schema.GroupVersionResource{}\n\t}\n\tsingularName := strings.ToLower(kindName)\n\tsingular := kind.GroupVersion().WithResource(singularName)\n\n\tfor _, skip := range unpluralizedSuffixes {\n\t\tif strings.HasSuffix(singularName, skip) {\n\t\t\treturn singular, singular\n\t\t}\n\t}\n\n\tswitch string(singularName[len(singularName)-1]) {\n\tcase \"s\":\n\t\treturn kind.GroupVersion().WithResource(singularName + \"es\"), singular\n\tcase \"y\":\n\t\treturn kind.GroupVersion().WithResource(strings.TrimSuffix(singularName, \"y\") + \"ies\"), singular\n\t}\n\n\treturn kind.GroupVersion().WithResource(singularName + \"s\"), singular\n}\n\n// ResourceSingularizer implements RESTMapper\n// It converts a resource name from plural to singular (e.g., from pods to pod)\nfunc (m *DefaultRESTMapper) ResourceSingularizer(resourceType string) (string, error) {\n\tpartialResource := schema.GroupVersionResource{Resource: resourceType}\n\tresources, err := m.ResourcesFor(partialResource)\n\tif err != nil {\n\t\treturn resourceType, err\n\t}\n\n\tsingular := schema.GroupVersionResource{}\n\tfor _, curr := range resources {\n\t\tcurrSingular, ok := m.pluralToSingular[curr]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tif singular.Empty() {\n\t\t\tsingular = currSingular\n\t\t\tcontinue\n\t\t}\n\n\t\tif currSingular.Resource != singular.Resource {\n\t\t\treturn resourceType, fmt.Errorf(\"multiple possible singular resources (%v) found for %v\", resources, resourceType)\n\t\t}\n\t}\n\n\tif singular.Empty() {\n\t\treturn resourceType, fmt.Errorf(\"no singular of resource %v has been defined\", resourceType)\n\t}\n\n\treturn singular.Resource, nil\n}\n\n// coerceResourceForMatching makes the resource lower case and converts internal versions to unspecified (legacy behavior)\nfunc coerceResourceForMatching(resource schema.GroupVersionResource) schema.GroupVersionResource {\n\tresource.Resource = strings.ToLower(resource.Resource)\n\tif resource.Version == runtime.APIVersionInternal {\n\t\tresource.Version = \"\"\n\t}\n\n\treturn resource\n}\n\nfunc (m *DefaultRESTMapper) ResourcesFor(input schema.GroupVersionResource) ([]schema.GroupVersionResource, error) {\n\tresource := coerceResourceForMatching(input)\n\n\thasResource := len(resource.Resource) > 0\n\thasGroup := len(resource.Group) > 0\n\thasVersion := len(resource.Version) > 0\n\n\tif !hasResource {\n\t\treturn nil, fmt.Errorf(\"a resource must be present, got: %v\", resource)\n\t}\n\n\tret := []schema.GroupVersionResource{}\n\tswitch {\n\tcase hasGroup && hasVersion:\n\t\t// fully qualified.  Find the exact match\n\t\tfor plural, singular := range m.pluralToSingular {\n\t\t\tif singular == resource {\n\t\t\t\tret = append(ret, plural)\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif plural == resource {\n\t\t\t\tret = append(ret, plural)\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\tcase hasGroup:\n\t\t// given a group, prefer an exact match.  If you don't find one, resort to a prefix match on group\n\t\tfoundExactMatch := false\n\t\trequestedGroupResource := resource.GroupResource()\n\t\tfor plural, singular := range m.pluralToSingular {\n\t\t\tif singular.GroupResource() == requestedGroupResource {\n\t\t\t\tfoundExactMatch = true\n\t\t\t\tret = append(ret, plural)\n\t\t\t}\n\t\t\tif plural.GroupResource() == requestedGroupResource {\n\t\t\t\tfoundExactMatch = true\n\t\t\t\tret = append(ret, plural)\n\t\t\t}\n\t\t}\n\n\t\t// if you didn't find an exact match, match on group prefixing. This allows storageclass.storage to match\n\t\t// storageclass.storage.k8s.io\n\t\tif !foundExactMatch {\n\t\t\tfor plural, singular := range m.pluralToSingular {\n\t\t\t\tif !strings.HasPrefix(plural.Group, requestedGroupResource.Group) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif singular.Resource == requestedGroupResource.Resource {\n\t\t\t\t\tret = append(ret, plural)\n\t\t\t\t}\n\t\t\t\tif plural.Resource == requestedGroupResource.Resource {\n\t\t\t\t\tret = append(ret, plural)\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\tcase hasVersion:\n\t\tfor plural, singular := range m.pluralToSingular {\n\t\t\tif singular.Version == resource.Version && singular.Resource == resource.Resource {\n\t\t\t\tret = append(ret, plural)\n\t\t\t}\n\t\t\tif plural.Version == resource.Version && plural.Resource == resource.Resource {\n\t\t\t\tret = append(ret, plural)\n\t\t\t}\n\t\t}\n\n\tdefault:\n\t\tfor plural, singular := range m.pluralToSingular {\n\t\t\tif singular.Resource == resource.Resource {\n\t\t\t\tret = append(ret, plural)\n\t\t\t}\n\t\t\tif plural.Resource == resource.Resource {\n\t\t\t\tret = append(ret, plural)\n\t\t\t}\n\t\t}\n\t}\n\n\tif len(ret) == 0 {\n\t\treturn nil, &NoResourceMatchError{PartialResource: resource}\n\t}\n\n\tsort.Sort(resourceByPreferredGroupVersion{ret, m.defaultGroupVersions})\n\treturn ret, nil\n}\n\nfunc (m *DefaultRESTMapper) ResourceFor(resource schema.GroupVersionResource) (schema.GroupVersionResource, error) {\n\tresources, err := m.ResourcesFor(resource)\n\tif err != nil {\n\t\treturn schema.GroupVersionResource{}, err\n\t}\n\tif len(resources) == 1 {\n\t\treturn resources[0], nil\n\t}\n\n\treturn schema.GroupVersionResource{}, &AmbiguousResourceError{PartialResource: resource, MatchingResources: resources}\n}\n\nfunc (m *DefaultRESTMapper) KindsFor(input schema.GroupVersionResource) ([]schema.GroupVersionKind, error) {\n\tresource := coerceResourceForMatching(input)\n\n\thasResource := len(resource.Resource) > 0\n\thasGroup := len(resource.Group) > 0\n\thasVersion := len(resource.Version) > 0\n\n\tif !hasResource {\n\t\treturn nil, fmt.Errorf(\"a resource must be present, got: %v\", resource)\n\t}\n\n\tret := []schema.GroupVersionKind{}\n\tswitch {\n\t// fully qualified.  Find the exact match\n\tcase hasGroup && hasVersion:\n\t\tkind, exists := m.resourceToKind[resource]\n\t\tif exists {\n\t\t\tret = append(ret, kind)\n\t\t}\n\n\tcase hasGroup:\n\t\tfoundExactMatch := false\n\t\trequestedGroupResource := resource.GroupResource()\n\t\tfor currResource, currKind := range m.resourceToKind {\n\t\t\tif currResource.GroupResource() == requestedGroupResource {\n\t\t\t\tfoundExactMatch = true\n\t\t\t\tret = append(ret, currKind)\n\t\t\t}\n\t\t}\n\n\t\t// if you didn't find an exact match, match on group prefixing. This allows storageclass.storage to match\n\t\t// storageclass.storage.k8s.io\n\t\tif !foundExactMatch {\n\t\t\tfor currResource, currKind := range m.resourceToKind {\n\t\t\t\tif !strings.HasPrefix(currResource.Group, requestedGroupResource.Group) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif currResource.Resource == requestedGroupResource.Resource {\n\t\t\t\t\tret = append(ret, currKind)\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\tcase hasVersion:\n\t\tfor currResource, currKind := range m.resourceToKind {\n\t\t\tif currResource.Version == resource.Version && currResource.Resource == resource.Resource {\n\t\t\t\tret = append(ret, currKind)\n\t\t\t}\n\t\t}\n\n\tdefault:\n\t\tfor currResource, currKind := range m.resourceToKind {\n\t\t\tif currResource.Resource == resource.Resource {\n\t\t\t\tret = append(ret, currKind)\n\t\t\t}\n\t\t}\n\t}\n\n\tif len(ret) == 0 {\n\t\treturn nil, &NoResourceMatchError{PartialResource: input}\n\t}\n\n\tsort.Sort(kindByPreferredGroupVersion{ret, m.defaultGroupVersions})\n\treturn ret, nil\n}\n\nfunc (m *DefaultRESTMapper) KindFor(resource schema.GroupVersionResource) (schema.GroupVersionKind, error) {\n\tkinds, err := m.KindsFor(resource)\n\tif err != nil {\n\t\treturn schema.GroupVersionKind{}, err\n\t}\n\tif len(kinds) == 1 {\n\t\treturn kinds[0], nil\n\t}\n\n\treturn schema.GroupVersionKind{}, &AmbiguousResourceError{PartialResource: resource, MatchingKinds: kinds}\n}\n\ntype kindByPreferredGroupVersion struct {\n\tlist      []schema.GroupVersionKind\n\tsortOrder []schema.GroupVersion\n}\n\nfunc (o kindByPreferredGroupVersion) Len() int      { return len(o.list) }\nfunc (o kindByPreferredGroupVersion) Swap(i, j int) { o.list[i], o.list[j] = o.list[j], o.list[i] }\nfunc (o kindByPreferredGroupVersion) Less(i, j int) bool {\n\tlhs := o.list[i]\n\trhs := o.list[j]\n\tif lhs == rhs {\n\t\treturn false\n\t}\n\n\tif lhs.GroupVersion() == rhs.GroupVersion() {\n\t\treturn lhs.Kind < rhs.Kind\n\t}\n\n\t// otherwise, the difference is in the GroupVersion, so we need to sort with respect to the preferred order\n\tlhsIndex := -1\n\trhsIndex := -1\n\n\tfor i := range o.sortOrder {\n\t\tif o.sortOrder[i] == lhs.GroupVersion() {\n\t\t\tlhsIndex = i\n\t\t}\n\t\tif o.sortOrder[i] == rhs.GroupVersion() {\n\t\t\trhsIndex = i\n\t\t}\n\t}\n\n\tif rhsIndex == -1 {\n\t\treturn true\n\t}\n\n\treturn lhsIndex < rhsIndex\n}\n\ntype resourceByPreferredGroupVersion struct {\n\tlist      []schema.GroupVersionResource\n\tsortOrder []schema.GroupVersion\n}\n\nfunc (o resourceByPreferredGroupVersion) Len() int      { return len(o.list) }\nfunc (o resourceByPreferredGroupVersion) Swap(i, j int) { o.list[i], o.list[j] = o.list[j], o.list[i] }\nfunc (o resourceByPreferredGroupVersion) Less(i, j int) bool {\n\tlhs := o.list[i]\n\trhs := o.list[j]\n\tif lhs == rhs {\n\t\treturn false\n\t}\n\n\tif lhs.GroupVersion() == rhs.GroupVersion() {\n\t\treturn lhs.Resource < rhs.Resource\n\t}\n\n\t// otherwise, the difference is in the GroupVersion, so we need to sort with respect to the preferred order\n\tlhsIndex := -1\n\trhsIndex := -1\n\n\tfor i := range o.sortOrder {\n\t\tif o.sortOrder[i] == lhs.GroupVersion() {\n\t\t\tlhsIndex = i\n\t\t}\n\t\tif o.sortOrder[i] == rhs.GroupVersion() {\n\t\t\trhsIndex = i\n\t\t}\n\t}\n\n\tif rhsIndex == -1 {\n\t\treturn true\n\t}\n\n\treturn lhsIndex < rhsIndex\n}\n\n// RESTMapping returns a struct representing the resource path and conversion interfaces a\n// RESTClient should use to operate on the provided group/kind in order of versions. If a version search\n// order is not provided, the search order provided to DefaultRESTMapper will be used to resolve which\n// version should be used to access the named group/kind.\nfunc (m *DefaultRESTMapper) RESTMapping(gk schema.GroupKind, versions ...string) (*RESTMapping, error) {\n\tmappings, err := m.RESTMappings(gk, versions...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif len(mappings) == 0 {\n\t\treturn nil, &NoKindMatchError{GroupKind: gk, SearchedVersions: versions}\n\t}\n\t// since we rely on RESTMappings method\n\t// take the first match and return to the caller\n\t// as this was the existing behavior.\n\treturn mappings[0], nil\n}\n\n// RESTMappings returns the RESTMappings for the provided group kind. If a version search order\n// is not provided, the search order provided to DefaultRESTMapper will be used.\nfunc (m *DefaultRESTMapper) RESTMappings(gk schema.GroupKind, versions ...string) ([]*RESTMapping, error) {\n\tmappings := make([]*RESTMapping, 0)\n\tpotentialGVK := make([]schema.GroupVersionKind, 0)\n\thadVersion := false\n\n\t// Pick an appropriate version\n\tfor _, version := range versions {\n\t\tif len(version) == 0 || version == runtime.APIVersionInternal {\n\t\t\tcontinue\n\t\t}\n\t\tcurrGVK := gk.WithVersion(version)\n\t\thadVersion = true\n\t\tif _, ok := m.kindToPluralResource[currGVK]; ok {\n\t\t\tpotentialGVK = append(potentialGVK, currGVK)\n\t\t\tbreak\n\t\t}\n\t}\n\t// Use the default preferred versions\n\tif !hadVersion && len(potentialGVK) == 0 {\n\t\tfor _, gv := range m.defaultGroupVersions {\n\t\t\tif gv.Group != gk.Group {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tpotentialGVK = append(potentialGVK, gk.WithVersion(gv.Version))\n\t\t}\n\t}\n\n\tif len(potentialGVK) == 0 {\n\t\treturn nil, &NoKindMatchError{GroupKind: gk, SearchedVersions: versions}\n\t}\n\n\tfor _, gvk := range potentialGVK {\n\t\t//Ensure we have a REST mapping\n\t\tres, ok := m.kindToPluralResource[gvk]\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\n\t\t// Ensure we have a REST scope\n\t\tscope, ok := m.kindToScope[gvk]\n\t\tif !ok {\n\t\t\treturn nil, fmt.Errorf(\"the provided version %q and kind %q cannot be mapped to a supported scope\", gvk.GroupVersion(), gvk.Kind)\n\t\t}\n\n\t\tmappings = append(mappings, &RESTMapping{\n\t\t\tResource:         res,\n\t\t\tGroupVersionKind: gvk,\n\t\t\tScope:            scope,\n\t\t})\n\t}\n\n\tif len(mappings) == 0 {\n\t\treturn nil, &NoResourceMatchError{PartialResource: schema.GroupVersionResource{Group: gk.Group, Resource: gk.Kind}}\n\t}\n\treturn mappings, nil\n}\n\n// MaybeResetRESTMapper calls Reset() on the mapper if it is a ResettableRESTMapper.\nfunc MaybeResetRESTMapper(mapper RESTMapper) {\n\tm, ok := mapper.(ResettableRESTMapper)\n\tif ok {\n\t\tm.Reset()\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/meta/testrestmapper/test_restmapper.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage testrestmapper\n\nimport (\n\t\"k8s.io/apimachinery/pkg/api/meta\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/util/sets\"\n)\n\n// TestOnlyStaticRESTMapper returns a union RESTMapper of all known types with priorities chosen in the following order:\n//  1. legacy kube group preferred version, extensions preferred version, metrics preferred version, legacy\n//     kube any version, extensions any version, metrics any version, all other groups alphabetical preferred version,\n//     all other groups alphabetical.\n//\n// TODO callers of this method should be updated to build their own specific restmapper based on their scheme for their tests\n// TODO the things being tested are related to whether various cases are handled, not tied to the particular types being checked.\nfunc TestOnlyStaticRESTMapper(scheme *runtime.Scheme, versionPatterns ...schema.GroupVersion) meta.RESTMapper {\n\tunionMapper := meta.MultiRESTMapper{}\n\tunionedGroups := sets.NewString()\n\tfor _, enabledVersion := range scheme.PrioritizedVersionsAllGroups() {\n\t\tif !unionedGroups.Has(enabledVersion.Group) {\n\t\t\tunionedGroups.Insert(enabledVersion.Group)\n\t\t\tunionMapper = append(unionMapper, newRESTMapper(enabledVersion.Group, scheme))\n\t\t}\n\t}\n\n\tif len(versionPatterns) != 0 {\n\t\tresourcePriority := []schema.GroupVersionResource{}\n\t\tkindPriority := []schema.GroupVersionKind{}\n\t\tfor _, versionPriority := range versionPatterns {\n\t\t\tresourcePriority = append(resourcePriority, versionPriority.WithResource(meta.AnyResource))\n\t\t\tkindPriority = append(kindPriority, versionPriority.WithKind(meta.AnyKind))\n\t\t}\n\n\t\treturn meta.PriorityRESTMapper{Delegate: unionMapper, ResourcePriority: resourcePriority, KindPriority: kindPriority}\n\t}\n\n\tprioritizedGroups := []string{\"\", \"extensions\", \"metrics\"}\n\tresourcePriority, kindPriority := prioritiesForGroups(scheme, prioritizedGroups...)\n\n\tprioritizedGroupsSet := sets.NewString(prioritizedGroups...)\n\tremainingGroups := sets.String{}\n\tfor _, enabledVersion := range scheme.PrioritizedVersionsAllGroups() {\n\t\tif !prioritizedGroupsSet.Has(enabledVersion.Group) {\n\t\t\tremainingGroups.Insert(enabledVersion.Group)\n\t\t}\n\t}\n\n\tremainingResourcePriority, remainingKindPriority := prioritiesForGroups(scheme, remainingGroups.List()...)\n\tresourcePriority = append(resourcePriority, remainingResourcePriority...)\n\tkindPriority = append(kindPriority, remainingKindPriority...)\n\n\treturn meta.PriorityRESTMapper{Delegate: unionMapper, ResourcePriority: resourcePriority, KindPriority: kindPriority}\n}\n\n// prioritiesForGroups returns the resource and kind priorities for a PriorityRESTMapper, preferring the preferred version of each group first,\n// then any non-preferred version of the group second.\nfunc prioritiesForGroups(scheme *runtime.Scheme, groups ...string) ([]schema.GroupVersionResource, []schema.GroupVersionKind) {\n\tresourcePriority := []schema.GroupVersionResource{}\n\tkindPriority := []schema.GroupVersionKind{}\n\n\tfor _, group := range groups {\n\t\tavailableVersions := scheme.PrioritizedVersionsForGroup(group)\n\t\tif len(availableVersions) > 0 {\n\t\t\tresourcePriority = append(resourcePriority, availableVersions[0].WithResource(meta.AnyResource))\n\t\t\tkindPriority = append(kindPriority, availableVersions[0].WithKind(meta.AnyKind))\n\t\t}\n\t}\n\tfor _, group := range groups {\n\t\tresourcePriority = append(resourcePriority, schema.GroupVersionResource{Group: group, Version: meta.AnyVersion, Resource: meta.AnyResource})\n\t\tkindPriority = append(kindPriority, schema.GroupVersionKind{Group: group, Version: meta.AnyVersion, Kind: meta.AnyKind})\n\t}\n\n\treturn resourcePriority, kindPriority\n}\n\nfunc newRESTMapper(group string, scheme *runtime.Scheme) meta.RESTMapper {\n\tmapper := meta.NewDefaultRESTMapper(scheme.PrioritizedVersionsForGroup(group))\n\tfor _, gv := range scheme.PrioritizedVersionsForGroup(group) {\n\t\tfor kind := range scheme.KnownTypes(gv) {\n\t\t\tif ignoredKinds.Has(kind) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tscope := meta.RESTScopeNamespace\n\t\t\tif rootScopedKinds[gv.WithKind(kind).GroupKind()] {\n\t\t\t\tscope = meta.RESTScopeRoot\n\t\t\t}\n\t\t\tmapper.Add(gv.WithKind(kind), scope)\n\t\t}\n\t}\n\n\treturn mapper\n}\n\n// hardcoded is good enough for the test we're running\nvar rootScopedKinds = map[schema.GroupKind]bool{\n\t{Group: \"admission.k8s.io\", Kind: \"AdmissionReview\"}: true,\n\n\t{Group: \"admissionregistration.k8s.io\", Kind: \"ValidatingWebhookConfiguration\"}: true,\n\t{Group: \"admissionregistration.k8s.io\", Kind: \"MutatingWebhookConfiguration\"}:   true,\n\n\t{Group: \"authentication.k8s.io\", Kind: \"TokenReview\"}: true,\n\n\t{Group: \"authorization.k8s.io\", Kind: \"SubjectAccessReview\"}:     true,\n\t{Group: \"authorization.k8s.io\", Kind: \"SelfSubjectAccessReview\"}: true,\n\t{Group: \"authorization.k8s.io\", Kind: \"SelfSubjectRulesReview\"}:  true,\n\n\t{Group: \"certificates.k8s.io\", Kind: \"CertificateSigningRequest\"}: true,\n\n\t{Group: \"\", Kind: \"Node\"}:             true,\n\t{Group: \"\", Kind: \"Namespace\"}:        true,\n\t{Group: \"\", Kind: \"PersistentVolume\"}: true,\n\t{Group: \"\", Kind: \"ComponentStatus\"}:  true,\n\n\t{Group: \"rbac.authorization.k8s.io\", Kind: \"ClusterRole\"}:        true,\n\t{Group: \"rbac.authorization.k8s.io\", Kind: \"ClusterRoleBinding\"}: true,\n\n\t{Group: \"scheduling.k8s.io\", Kind: \"PriorityClass\"}: true,\n\n\t{Group: \"storage.k8s.io\", Kind: \"StorageClass\"}:     true,\n\t{Group: \"storage.k8s.io\", Kind: \"VolumeAttachment\"}: true,\n\n\t{Group: \"apiextensions.k8s.io\", Kind: \"CustomResourceDefinition\"}: true,\n\n\t{Group: \"apiserver.k8s.io\", Kind: \"AdmissionConfiguration\"}: true,\n\n\t{Group: \"audit.k8s.io\", Kind: \"Event\"}:  true,\n\t{Group: \"audit.k8s.io\", Kind: \"Policy\"}: true,\n\n\t{Group: \"apiregistration.k8s.io\", Kind: \"APIService\"}: true,\n\n\t{Group: \"metrics.k8s.io\", Kind: \"NodeMetrics\"}: true,\n\n\t{Group: \"wardle.example.com\", Kind: \"Fischer\"}: true,\n}\n\n// hardcoded is good enough for the test we're running\nvar ignoredKinds = sets.NewString(\n\t\"ListOptions\",\n\t\"DeleteOptions\",\n\t\"Status\",\n\t\"PodLogOptions\",\n\t\"PodExecOptions\",\n\t\"PodAttachOptions\",\n\t\"PodPortForwardOptions\",\n\t\"PodProxyOptions\",\n\t\"NodeProxyOptions\",\n\t\"ServiceProxyOptions\",\n)\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/resource/OWNERS",
    "content": "# See the OWNERS docs at https://go.k8s.io/owners\n\nreviewers:\n  - thockin\n  - smarterclayton\n  - wojtek-t\n  - derekwaynecarr\n  - mikedanese\n  - saad-ali\n  - janetkuo\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/resource/amount.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage resource\n\nimport (\n\t\"math/big\"\n\t\"strconv\"\n\n\tinf \"gopkg.in/inf.v0\"\n)\n\n// Scale is used for getting and setting the base-10 scaled value.\n// Base-2 scales are omitted for mathematical simplicity.\n// See Quantity.ScaledValue for more details.\ntype Scale int32\n\n// infScale adapts a Scale value to an inf.Scale value.\nfunc (s Scale) infScale() inf.Scale {\n\treturn inf.Scale(-s) // inf.Scale is upside-down\n}\n\nconst (\n\tNano  Scale = -9\n\tMicro Scale = -6\n\tMilli Scale = -3\n\tKilo  Scale = 3\n\tMega  Scale = 6\n\tGiga  Scale = 9\n\tTera  Scale = 12\n\tPeta  Scale = 15\n\tExa   Scale = 18\n)\n\nvar (\n\tZero = int64Amount{}\n\n\t// Used by quantity strings - treat as read only\n\tzeroBytes = []byte(\"0\")\n)\n\n// int64Amount represents a fixed precision numerator and arbitrary scale exponent. It is faster\n// than operations on inf.Dec for values that can be represented as int64.\n// +k8s:openapi-gen=true\ntype int64Amount struct {\n\tvalue int64\n\tscale Scale\n}\n\n// Sign returns 0 if the value is zero, -1 if it is less than 0, or 1 if it is greater than 0.\nfunc (a int64Amount) Sign() int {\n\tswitch {\n\tcase a.value == 0:\n\t\treturn 0\n\tcase a.value > 0:\n\t\treturn 1\n\tdefault:\n\t\treturn -1\n\t}\n}\n\n// AsInt64 returns the current amount as an int64 at scale 0, or false if the value cannot be\n// represented in an int64 OR would result in a loss of precision. This method is intended as\n// an optimization to avoid calling AsDec.\nfunc (a int64Amount) AsInt64() (int64, bool) {\n\tif a.scale == 0 {\n\t\treturn a.value, true\n\t}\n\tif a.scale < 0 {\n\t\t// TODO: attempt to reduce factors, although it is assumed that factors are reduced prior\n\t\t// to the int64Amount being created.\n\t\treturn 0, false\n\t}\n\treturn positiveScaleInt64(a.value, a.scale)\n}\n\n// AsScaledInt64 returns an int64 representing the value of this amount at the specified scale,\n// rounding up, or false if that would result in overflow. (1e20).AsScaledInt64(1) would result\n// in overflow because 1e19 is not representable as an int64. Note that setting a scale larger\n// than the current value may result in loss of precision - i.e. (1e-6).AsScaledInt64(0) would\n// return 1, because 0.000001 is rounded up to 1.\nfunc (a int64Amount) AsScaledInt64(scale Scale) (result int64, ok bool) {\n\tif a.scale < scale {\n\t\tresult, _ = negativeScaleInt64(a.value, scale-a.scale)\n\t\treturn result, true\n\t}\n\treturn positiveScaleInt64(a.value, a.scale-scale)\n}\n\n// AsDec returns an inf.Dec representation of this value.\nfunc (a int64Amount) AsDec() *inf.Dec {\n\tvar base inf.Dec\n\tbase.SetUnscaled(a.value)\n\tbase.SetScale(inf.Scale(-a.scale))\n\treturn &base\n}\n\n// Cmp returns 0 if a and b are equal, 1 if a is greater than b, or -1 if a is less than b.\nfunc (a int64Amount) Cmp(b int64Amount) int {\n\tswitch {\n\tcase a.scale == b.scale:\n\t\t// compare only the unscaled portion\n\tcase a.scale > b.scale:\n\t\tresult, remainder, exact := divideByScaleInt64(b.value, a.scale-b.scale)\n\t\tif !exact {\n\t\t\treturn a.AsDec().Cmp(b.AsDec())\n\t\t}\n\t\tif result == a.value {\n\t\t\tswitch {\n\t\t\tcase remainder == 0:\n\t\t\t\treturn 0\n\t\t\tcase remainder > 0:\n\t\t\t\treturn -1\n\t\t\tdefault:\n\t\t\t\treturn 1\n\t\t\t}\n\t\t}\n\t\tb.value = result\n\tdefault:\n\t\tresult, remainder, exact := divideByScaleInt64(a.value, b.scale-a.scale)\n\t\tif !exact {\n\t\t\treturn a.AsDec().Cmp(b.AsDec())\n\t\t}\n\t\tif result == b.value {\n\t\t\tswitch {\n\t\t\tcase remainder == 0:\n\t\t\t\treturn 0\n\t\t\tcase remainder > 0:\n\t\t\t\treturn 1\n\t\t\tdefault:\n\t\t\t\treturn -1\n\t\t\t}\n\t\t}\n\t\ta.value = result\n\t}\n\n\tswitch {\n\tcase a.value == b.value:\n\t\treturn 0\n\tcase a.value < b.value:\n\t\treturn -1\n\tdefault:\n\t\treturn 1\n\t}\n}\n\n// Add adds two int64Amounts together, matching scales. It will return false and not mutate\n// a if overflow or underflow would result.\nfunc (a *int64Amount) Add(b int64Amount) bool {\n\tswitch {\n\tcase b.value == 0:\n\t\treturn true\n\tcase a.value == 0:\n\t\ta.value = b.value\n\t\ta.scale = b.scale\n\t\treturn true\n\tcase a.scale == b.scale:\n\t\tc, ok := int64Add(a.value, b.value)\n\t\tif !ok {\n\t\t\treturn false\n\t\t}\n\t\ta.value = c\n\tcase a.scale > b.scale:\n\t\tc, ok := positiveScaleInt64(a.value, a.scale-b.scale)\n\t\tif !ok {\n\t\t\treturn false\n\t\t}\n\t\tc, ok = int64Add(c, b.value)\n\t\tif !ok {\n\t\t\treturn false\n\t\t}\n\t\ta.scale = b.scale\n\t\ta.value = c\n\tdefault:\n\t\tc, ok := positiveScaleInt64(b.value, b.scale-a.scale)\n\t\tif !ok {\n\t\t\treturn false\n\t\t}\n\t\tc, ok = int64Add(a.value, c)\n\t\tif !ok {\n\t\t\treturn false\n\t\t}\n\t\ta.value = c\n\t}\n\treturn true\n}\n\n// Sub removes the value of b from the current amount, or returns false if underflow would result.\nfunc (a *int64Amount) Sub(b int64Amount) bool {\n\treturn a.Add(int64Amount{value: -b.value, scale: b.scale})\n}\n\n// Mul multiplies the provided b to the current amount, or\n// returns false if overflow or underflow would result.\nfunc (a *int64Amount) Mul(b int64) bool {\n\tswitch {\n\tcase a.value == 0:\n\t\treturn true\n\tcase b == 0:\n\t\ta.value = 0\n\t\ta.scale = 0\n\t\treturn true\n\tcase a.scale == 0:\n\t\tc, ok := int64Multiply(a.value, b)\n\t\tif !ok {\n\t\t\treturn false\n\t\t}\n\t\ta.value = c\n\tcase a.scale > 0:\n\t\tc, ok := int64Multiply(a.value, b)\n\t\tif !ok {\n\t\t\treturn false\n\t\t}\n\t\tif _, ok = positiveScaleInt64(c, a.scale); !ok {\n\t\t\treturn false\n\t\t}\n\t\ta.value = c\n\tdefault:\n\t\tc, ok := int64Multiply(a.value, b)\n\t\tif !ok {\n\t\t\treturn false\n\t\t}\n\t\tif _, ok = negativeScaleInt64(c, -a.scale); !ok {\n\t\t\treturn false\n\t\t}\n\t\ta.value = c\n\t}\n\treturn true\n}\n\n// AsScale adjusts this amount to set a minimum scale, rounding up, and returns true iff no precision\n// was lost. (1.1e5).AsScale(5) would return 1.1e5, but (1.1e5).AsScale(6) would return 1e6.\nfunc (a int64Amount) AsScale(scale Scale) (int64Amount, bool) {\n\tif a.scale >= scale {\n\t\treturn a, true\n\t}\n\tresult, exact := negativeScaleInt64(a.value, scale-a.scale)\n\treturn int64Amount{value: result, scale: scale}, exact\n}\n\n// AsCanonicalBytes accepts a buffer to write the base-10 string value of this field to, and returns\n// either that buffer or a larger buffer and the current exponent of the value. The value is adjusted\n// until the exponent is a multiple of 3 - i.e. 1.1e5 would return \"110\", 3.\nfunc (a int64Amount) AsCanonicalBytes(out []byte) (result []byte, exponent int32) {\n\tmantissa := a.value\n\texponent = int32(a.scale)\n\n\tamount, times := removeInt64Factors(mantissa, 10)\n\texponent += int32(times)\n\n\t// make sure exponent is a multiple of 3\n\tvar ok bool\n\tswitch exponent % 3 {\n\tcase 1, -2:\n\t\tamount, ok = int64MultiplyScale10(amount)\n\t\tif !ok {\n\t\t\treturn infDecAmount{a.AsDec()}.AsCanonicalBytes(out)\n\t\t}\n\t\texponent = exponent - 1\n\tcase 2, -1:\n\t\tamount, ok = int64MultiplyScale100(amount)\n\t\tif !ok {\n\t\t\treturn infDecAmount{a.AsDec()}.AsCanonicalBytes(out)\n\t\t}\n\t\texponent = exponent - 2\n\t}\n\treturn strconv.AppendInt(out, amount, 10), exponent\n}\n\n// AsCanonicalBase1024Bytes accepts a buffer to write the base-1024 string value of this field to, and returns\n// either that buffer or a larger buffer and the current exponent of the value. 2048 is 2 * 1024 ^ 1 and would\n// return []byte(\"2048\"), 1.\nfunc (a int64Amount) AsCanonicalBase1024Bytes(out []byte) (result []byte, exponent int32) {\n\tvalue, ok := a.AsScaledInt64(0)\n\tif !ok {\n\t\treturn infDecAmount{a.AsDec()}.AsCanonicalBase1024Bytes(out)\n\t}\n\tamount, exponent := removeInt64Factors(value, 1024)\n\treturn strconv.AppendInt(out, amount, 10), exponent\n}\n\n// infDecAmount implements common operations over an inf.Dec that are specific to the quantity\n// representation.\ntype infDecAmount struct {\n\t*inf.Dec\n}\n\n// AsScale adjusts this amount to set a minimum scale, rounding up, and returns true iff no precision\n// was lost. (1.1e5).AsScale(5) would return 1.1e5, but (1.1e5).AsScale(6) would return 1e6.\nfunc (a infDecAmount) AsScale(scale Scale) (infDecAmount, bool) {\n\ttmp := &inf.Dec{}\n\ttmp.Round(a.Dec, scale.infScale(), inf.RoundUp)\n\treturn infDecAmount{tmp}, tmp.Cmp(a.Dec) == 0\n}\n\n// AsCanonicalBytes accepts a buffer to write the base-10 string value of this field to, and returns\n// either that buffer or a larger buffer and the current exponent of the value. The value is adjusted\n// until the exponent is a multiple of 3 - i.e. 1.1e5 would return \"110\", 3.\nfunc (a infDecAmount) AsCanonicalBytes(out []byte) (result []byte, exponent int32) {\n\tmantissa := a.Dec.UnscaledBig()\n\texponent = int32(-a.Dec.Scale())\n\tamount := big.NewInt(0).Set(mantissa)\n\t// move all factors of 10 into the exponent for easy reasoning\n\tamount, times := removeBigIntFactors(amount, bigTen)\n\texponent += times\n\n\t// make sure exponent is a multiple of 3\n\tfor exponent%3 != 0 {\n\t\tamount.Mul(amount, bigTen)\n\t\texponent--\n\t}\n\n\treturn append(out, amount.String()...), exponent\n}\n\n// AsCanonicalBase1024Bytes accepts a buffer to write the base-1024 string value of this field to, and returns\n// either that buffer or a larger buffer and the current exponent of the value. 2048 is 2 * 1024 ^ 1 and would\n// return []byte(\"2048\"), 1.\nfunc (a infDecAmount) AsCanonicalBase1024Bytes(out []byte) (result []byte, exponent int32) {\n\ttmp := &inf.Dec{}\n\ttmp.Round(a.Dec, 0, inf.RoundUp)\n\tamount, exponent := removeBigIntFactors(tmp.UnscaledBig(), big1024)\n\treturn append(out, amount.String()...), exponent\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/resource/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/apimachinery/pkg/api/resource/generated.proto\n\npackage resource\n\nimport (\n\tfmt \"fmt\"\n\n\tmath \"math\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *Quantity) Reset()      { *m = Quantity{} }\nfunc (*Quantity) ProtoMessage() {}\nfunc (*Quantity) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7288c78ff45111e9, []int{0}\n}\nfunc (m *Quantity) XXX_Unmarshal(b []byte) error {\n\treturn xxx_messageInfo_Quantity.Unmarshal(m, b)\n}\nfunc (m *Quantity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\treturn xxx_messageInfo_Quantity.Marshal(b, m, deterministic)\n}\nfunc (m *Quantity) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Quantity.Merge(m, src)\n}\nfunc (m *Quantity) XXX_Size() int {\n\treturn xxx_messageInfo_Quantity.Size(m)\n}\nfunc (m *Quantity) XXX_DiscardUnknown() {\n\txxx_messageInfo_Quantity.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Quantity proto.InternalMessageInfo\n\nfunc (m *QuantityValue) Reset()      { *m = QuantityValue{} }\nfunc (*QuantityValue) ProtoMessage() {}\nfunc (*QuantityValue) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_7288c78ff45111e9, []int{1}\n}\nfunc (m *QuantityValue) XXX_Unmarshal(b []byte) error {\n\treturn xxx_messageInfo_QuantityValue.Unmarshal(m, b)\n}\nfunc (m *QuantityValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\treturn xxx_messageInfo_QuantityValue.Marshal(b, m, deterministic)\n}\nfunc (m *QuantityValue) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_QuantityValue.Merge(m, src)\n}\nfunc (m *QuantityValue) XXX_Size() int {\n\treturn xxx_messageInfo_QuantityValue.Size(m)\n}\nfunc (m *QuantityValue) XXX_DiscardUnknown() {\n\txxx_messageInfo_QuantityValue.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_QuantityValue proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*Quantity)(nil), \"k8s.io.apimachinery.pkg.api.resource.Quantity\")\n\tproto.RegisterType((*QuantityValue)(nil), \"k8s.io.apimachinery.pkg.api.resource.QuantityValue\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/apimachinery/pkg/api/resource/generated.proto\", fileDescriptor_7288c78ff45111e9)\n}\n\nvar fileDescriptor_7288c78ff45111e9 = []byte{\n\t// 234 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0xc9, 0xb6, 0x28, 0xd6,\n\t0xcb, 0xcc, 0xd7, 0x4f, 0x2c, 0xc8, 0xcc, 0x4d, 0x4c, 0xce, 0xc8, 0xcc, 0x4b, 0x2d, 0xaa, 0xd4,\n\t0x2f, 0xc8, 0x4e, 0x07, 0x09, 0xe8, 0x17, 0xa5, 0x16, 0xe7, 0x97, 0x16, 0x25, 0xa7, 0xea, 0xa7,\n\t0xa7, 0xe6, 0xa5, 0x16, 0x25, 0x96, 0xa4, 0xa6, 0xe8, 0x15, 0x14, 0xe5, 0x97, 0xe4, 0x0b, 0xa9,\n\t0x40, 0x74, 0xe9, 0x21, 0xeb, 0xd2, 0x2b, 0xc8, 0x4e, 0x07, 0x09, 0xe8, 0xc1, 0x74, 0x49, 0xe9,\n\t0xa6, 0x67, 0x96, 0x64, 0x94, 0x26, 0xe9, 0x25, 0xe7, 0xe7, 0xea, 0xa7, 0xe7, 0xa7, 0xe7, 0xeb,\n\t0x83, 0x35, 0x27, 0x95, 0xa6, 0x81, 0x79, 0x60, 0x0e, 0x98, 0x05, 0x31, 0x54, 0xc9, 0x82, 0x8b,\n\t0x23, 0xb0, 0x34, 0x31, 0xaf, 0x24, 0xb3, 0xa4, 0x52, 0x48, 0x8c, 0x8b, 0xad, 0xb8, 0xa4, 0x28,\n\t0x33, 0x2f, 0x5d, 0x82, 0x51, 0x81, 0x51, 0x83, 0x33, 0x08, 0xca, 0xb3, 0x12, 0x99, 0xb1, 0x40,\n\t0x9e, 0xa1, 0x63, 0xa1, 0x3c, 0xc3, 0x84, 0x85, 0xf2, 0x0c, 0x0b, 0x16, 0xca, 0x33, 0x34, 0xdc,\n\t0x51, 0x60, 0x50, 0xb2, 0xe5, 0xe2, 0x85, 0xe9, 0x0c, 0x4b, 0xcc, 0x29, 0x4d, 0x25, 0x4d, 0xbb,\n\t0x93, 0xd7, 0x89, 0x87, 0x72, 0x0c, 0x17, 0x1e, 0xca, 0x31, 0xdc, 0x78, 0x28, 0xc7, 0xd0, 0xf0,\n\t0x48, 0x8e, 0xf1, 0xc4, 0x23, 0x39, 0xc6, 0x0b, 0x8f, 0xe4, 0x18, 0x6f, 0x3c, 0x92, 0x63, 0x7c,\n\t0xf0, 0x48, 0x8e, 0x71, 0xc2, 0x63, 0x39, 0x86, 0x28, 0x15, 0x62, 0x42, 0x0a, 0x10, 0x00, 0x00,\n\t0xff, 0xff, 0x50, 0x91, 0xd0, 0x9c, 0x50, 0x01, 0x00, 0x00,\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/resource/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.apimachinery.pkg.api.resource;\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/apimachinery/pkg/api/resource\";\n\n// Quantity is a fixed-point representation of a number.\n// It provides convenient marshaling/unmarshaling in JSON and YAML,\n// in addition to String() and AsInt64() accessors.\n//\n// The serialization format is:\n//\n// ```\n// <quantity>        ::= <signedNumber><suffix>\n//\n// \t(Note that <suffix> may be empty, from the \"\" case in <decimalSI>.)\n//\n// <digit>           ::= 0 | 1 | ... | 9\n// <digits>          ::= <digit> | <digit><digits>\n// <number>          ::= <digits> | <digits>.<digits> | <digits>. | .<digits>\n// <sign>            ::= \"+\" | \"-\"\n// <signedNumber>    ::= <number> | <sign><number>\n// <suffix>          ::= <binarySI> | <decimalExponent> | <decimalSI>\n// <binarySI>        ::= Ki | Mi | Gi | Ti | Pi | Ei\n//\n// \t(International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)\n//\n// <decimalSI>       ::= m | \"\" | k | M | G | T | P | E\n//\n// \t(Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)\n//\n// <decimalExponent> ::= \"e\" <signedNumber> | \"E\" <signedNumber>\n// ```\n//\n// No matter which of the three exponent forms is used, no quantity may represent\n// a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal\n// places. Numbers larger or more precise will be capped or rounded up.\n// (E.g.: 0.1m will rounded up to 1m.)\n// This may be extended in the future if we require larger or smaller quantities.\n//\n// When a Quantity is parsed from a string, it will remember the type of suffix\n// it had, and will use the same type again when it is serialized.\n//\n// Before serializing, Quantity will be put in \"canonical form\".\n// This means that Exponent/suffix will be adjusted up or down (with a\n// corresponding increase or decrease in Mantissa) such that:\n//\n// - No precision is lost\n// - No fractional digits will be emitted\n// - The exponent (or suffix) is as large as possible.\n//\n// The sign will be omitted unless the number is negative.\n//\n// Examples:\n//\n// - 1.5 will be serialized as \"1500m\"\n// - 1.5Gi will be serialized as \"1536Mi\"\n//\n// Note that the quantity will NEVER be internally represented by a\n// floating point number. That is the whole point of this exercise.\n//\n// Non-canonical values will still parse as long as they are well formed,\n// but will be re-emitted in their canonical form. (So always use canonical\n// form, or don't diff.)\n//\n// This format is intended to make it difficult to use these numbers without\n// writing some sort of special handling code in the hopes that that will\n// cause implementors to also use a fixed point implementation.\n//\n// +protobuf=true\n// +protobuf.embed=string\n// +protobuf.options.marshal=false\n// +protobuf.options.(gogoproto.goproto_stringer)=false\n// +k8s:deepcopy-gen=true\n// +k8s:openapi-gen=true\nmessage Quantity {\n  optional string string = 1;\n}\n\n// QuantityValue makes it possible to use a Quantity as value for a command\n// line parameter.\n//\n// +protobuf=true\n// +protobuf.embed=string\n// +protobuf.options.marshal=false\n// +protobuf.options.(gogoproto.goproto_stringer)=false\n// +k8s:deepcopy-gen=true\nmessage QuantityValue {\n  optional string string = 1;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/resource/math.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage resource\n\nimport (\n\t\"math/big\"\n\n\tinf \"gopkg.in/inf.v0\"\n)\n\nconst (\n\t// maxInt64Factors is the highest value that will be checked when removing factors of 10 from an int64.\n\t// It is also the maximum decimal digits that can be represented with an int64.\n\tmaxInt64Factors = 18\n)\n\nvar (\n\t// Commonly needed big.Int values-- treat as read only!\n\tbigTen      = big.NewInt(10)\n\tbigZero     = big.NewInt(0)\n\tbigOne      = big.NewInt(1)\n\tbigThousand = big.NewInt(1000)\n\tbig1024     = big.NewInt(1024)\n\n\t// Commonly needed inf.Dec values-- treat as read only!\n\tdecZero = inf.NewDec(0, 0)\n\tdecOne  = inf.NewDec(1, 0)\n\n\t// Largest (in magnitude) number allowed.\n\tmaxAllowed = infDecAmount{inf.NewDec((1<<63)-1, 0)} // == max int64\n\n\t// The maximum value we can represent milli-units for.\n\t// Compare with the return value of Quantity.Value() to\n\t// see if it's safe to use Quantity.MilliValue().\n\tMaxMilliValue = int64(((1 << 63) - 1) / 1000)\n)\n\nconst mostNegative = -(mostPositive + 1)\nconst mostPositive = 1<<63 - 1\n\n// int64Add returns a+b, or false if that would overflow int64.\nfunc int64Add(a, b int64) (int64, bool) {\n\tc := a + b\n\tswitch {\n\tcase a > 0 && b > 0:\n\t\tif c < 0 {\n\t\t\treturn 0, false\n\t\t}\n\tcase a < 0 && b < 0:\n\t\tif c > 0 {\n\t\t\treturn 0, false\n\t\t}\n\t\tif a == mostNegative && b == mostNegative {\n\t\t\treturn 0, false\n\t\t}\n\t}\n\treturn c, true\n}\n\n// int64Multiply returns a*b, or false if that would overflow or underflow int64.\nfunc int64Multiply(a, b int64) (int64, bool) {\n\tif a == 0 || b == 0 || a == 1 || b == 1 {\n\t\treturn a * b, true\n\t}\n\tif a == mostNegative || b == mostNegative {\n\t\treturn 0, false\n\t}\n\tc := a * b\n\treturn c, c/b == a\n}\n\n// int64MultiplyScale returns a*b, assuming b is greater than one, or false if that would overflow or underflow int64.\n// Use when b is known to be greater than one.\nfunc int64MultiplyScale(a int64, b int64) (int64, bool) {\n\tif a == 0 || a == 1 {\n\t\treturn a * b, true\n\t}\n\tif a == mostNegative && b != 1 {\n\t\treturn 0, false\n\t}\n\tc := a * b\n\treturn c, c/b == a\n}\n\n// int64MultiplyScale10 multiplies a by 10, or returns false if that would overflow. This method is faster than\n// int64Multiply(a, 10) because the compiler can optimize constant factor multiplication.\nfunc int64MultiplyScale10(a int64) (int64, bool) {\n\tif a == 0 || a == 1 {\n\t\treturn a * 10, true\n\t}\n\tif a == mostNegative {\n\t\treturn 0, false\n\t}\n\tc := a * 10\n\treturn c, c/10 == a\n}\n\n// int64MultiplyScale100 multiplies a by 100, or returns false if that would overflow. This method is faster than\n// int64Multiply(a, 100) because the compiler can optimize constant factor multiplication.\nfunc int64MultiplyScale100(a int64) (int64, bool) {\n\tif a == 0 || a == 1 {\n\t\treturn a * 100, true\n\t}\n\tif a == mostNegative {\n\t\treturn 0, false\n\t}\n\tc := a * 100\n\treturn c, c/100 == a\n}\n\n// int64MultiplyScale1000 multiplies a by 1000, or returns false if that would overflow. This method is faster than\n// int64Multiply(a, 1000) because the compiler can optimize constant factor multiplication.\nfunc int64MultiplyScale1000(a int64) (int64, bool) {\n\tif a == 0 || a == 1 {\n\t\treturn a * 1000, true\n\t}\n\tif a == mostNegative {\n\t\treturn 0, false\n\t}\n\tc := a * 1000\n\treturn c, c/1000 == a\n}\n\n// positiveScaleInt64 multiplies base by 10^scale, returning false if the\n// value overflows. Passing a negative scale is undefined.\nfunc positiveScaleInt64(base int64, scale Scale) (int64, bool) {\n\tswitch scale {\n\tcase 0:\n\t\treturn base, true\n\tcase 1:\n\t\treturn int64MultiplyScale10(base)\n\tcase 2:\n\t\treturn int64MultiplyScale100(base)\n\tcase 3:\n\t\treturn int64MultiplyScale1000(base)\n\tcase 6:\n\t\treturn int64MultiplyScale(base, 1000000)\n\tcase 9:\n\t\treturn int64MultiplyScale(base, 1000000000)\n\tdefault:\n\t\tvalue := base\n\t\tvar ok bool\n\t\tfor i := Scale(0); i < scale; i++ {\n\t\t\tif value, ok = int64MultiplyScale(value, 10); !ok {\n\t\t\t\treturn 0, false\n\t\t\t}\n\t\t}\n\t\treturn value, true\n\t}\n}\n\n// negativeScaleInt64 reduces base by the provided scale, rounding up, until the\n// value is zero or the scale is reached. Passing a negative scale is undefined.\n// The value returned, if not exact, is rounded away from zero.\nfunc negativeScaleInt64(base int64, scale Scale) (result int64, exact bool) {\n\tif scale == 0 {\n\t\treturn base, true\n\t}\n\n\tvalue := base\n\tvar fraction bool\n\tfor i := Scale(0); i < scale; i++ {\n\t\tif !fraction && value%10 != 0 {\n\t\t\tfraction = true\n\t\t}\n\t\tvalue = value / 10\n\t\tif value == 0 {\n\t\t\tif fraction {\n\t\t\t\tif base > 0 {\n\t\t\t\t\treturn 1, false\n\t\t\t\t}\n\t\t\t\treturn -1, false\n\t\t\t}\n\t\t\treturn 0, true\n\t\t}\n\t}\n\tif fraction {\n\t\tif base > 0 {\n\t\t\tvalue++\n\t\t} else {\n\t\t\tvalue--\n\t\t}\n\t}\n\treturn value, !fraction\n}\n\nfunc pow10Int64(b int64) int64 {\n\tswitch b {\n\tcase 0:\n\t\treturn 1\n\tcase 1:\n\t\treturn 10\n\tcase 2:\n\t\treturn 100\n\tcase 3:\n\t\treturn 1000\n\tcase 4:\n\t\treturn 10000\n\tcase 5:\n\t\treturn 100000\n\tcase 6:\n\t\treturn 1000000\n\tcase 7:\n\t\treturn 10000000\n\tcase 8:\n\t\treturn 100000000\n\tcase 9:\n\t\treturn 1000000000\n\tcase 10:\n\t\treturn 10000000000\n\tcase 11:\n\t\treturn 100000000000\n\tcase 12:\n\t\treturn 1000000000000\n\tcase 13:\n\t\treturn 10000000000000\n\tcase 14:\n\t\treturn 100000000000000\n\tcase 15:\n\t\treturn 1000000000000000\n\tcase 16:\n\t\treturn 10000000000000000\n\tcase 17:\n\t\treturn 100000000000000000\n\tcase 18:\n\t\treturn 1000000000000000000\n\tdefault:\n\t\treturn 0\n\t}\n}\n\n// negativeScaleInt64 returns the result of dividing base by scale * 10 and the remainder, or\n// false if no such division is possible. Dividing by negative scales is undefined.\nfunc divideByScaleInt64(base int64, scale Scale) (result, remainder int64, exact bool) {\n\tif scale == 0 {\n\t\treturn base, 0, true\n\t}\n\t// the max scale representable in base 10 in an int64 is 18 decimal places\n\tif scale >= 18 {\n\t\treturn 0, base, false\n\t}\n\tdivisor := pow10Int64(int64(scale))\n\treturn base / divisor, base % divisor, true\n}\n\n// removeInt64Factors divides in a loop; the return values have the property that\n// value == result * base ^ scale\nfunc removeInt64Factors(value int64, base int64) (result int64, times int32) {\n\ttimes = 0\n\tresult = value\n\tnegative := result < 0\n\tif negative {\n\t\tresult = -result\n\t}\n\tswitch base {\n\t// allow the compiler to optimize the common cases\n\tcase 10:\n\t\tfor result >= 10 && result%10 == 0 {\n\t\t\ttimes++\n\t\t\tresult = result / 10\n\t\t}\n\t// allow the compiler to optimize the common cases\n\tcase 1024:\n\t\tfor result >= 1024 && result%1024 == 0 {\n\t\t\ttimes++\n\t\t\tresult = result / 1024\n\t\t}\n\tdefault:\n\t\tfor result >= base && result%base == 0 {\n\t\t\ttimes++\n\t\t\tresult = result / base\n\t\t}\n\t}\n\tif negative {\n\t\tresult = -result\n\t}\n\treturn result, times\n}\n\n// removeBigIntFactors divides in a loop; the return values have the property that\n// d == result * factor ^ times\n// d may be modified in place.\n// If d == 0, then the return values will be (0, 0)\nfunc removeBigIntFactors(d, factor *big.Int) (result *big.Int, times int32) {\n\tq := big.NewInt(0)\n\tm := big.NewInt(0)\n\tfor d.Cmp(bigZero) != 0 {\n\t\tq.DivMod(d, factor, m)\n\t\tif m.Cmp(bigZero) != 0 {\n\t\t\tbreak\n\t\t}\n\t\ttimes++\n\t\td, q = q, d\n\t}\n\treturn d, times\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/resource/quantity.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage resource\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\tmath \"math\"\n\t\"math/big\"\n\t\"strconv\"\n\t\"strings\"\n\n\tcbor \"k8s.io/apimachinery/pkg/runtime/serializer/cbor/direct\"\n\n\tinf \"gopkg.in/inf.v0\"\n)\n\n// Quantity is a fixed-point representation of a number.\n// It provides convenient marshaling/unmarshaling in JSON and YAML,\n// in addition to String() and AsInt64() accessors.\n//\n// The serialization format is:\n//\n// ```\n// <quantity>        ::= <signedNumber><suffix>\n//\n//\t(Note that <suffix> may be empty, from the \"\" case in <decimalSI>.)\n//\n// <digit>           ::= 0 | 1 | ... | 9\n// <digits>          ::= <digit> | <digit><digits>\n// <number>          ::= <digits> | <digits>.<digits> | <digits>. | .<digits>\n// <sign>            ::= \"+\" | \"-\"\n// <signedNumber>    ::= <number> | <sign><number>\n// <suffix>          ::= <binarySI> | <decimalExponent> | <decimalSI>\n// <binarySI>        ::= Ki | Mi | Gi | Ti | Pi | Ei\n//\n//\t(International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)\n//\n// <decimalSI>       ::= m | \"\" | k | M | G | T | P | E\n//\n//\t(Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)\n//\n// <decimalExponent> ::= \"e\" <signedNumber> | \"E\" <signedNumber>\n// ```\n//\n// No matter which of the three exponent forms is used, no quantity may represent\n// a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal\n// places. Numbers larger or more precise will be capped or rounded up.\n// (E.g.: 0.1m will rounded up to 1m.)\n// This may be extended in the future if we require larger or smaller quantities.\n//\n// When a Quantity is parsed from a string, it will remember the type of suffix\n// it had, and will use the same type again when it is serialized.\n//\n// Before serializing, Quantity will be put in \"canonical form\".\n// This means that Exponent/suffix will be adjusted up or down (with a\n// corresponding increase or decrease in Mantissa) such that:\n//\n// - No precision is lost\n// - No fractional digits will be emitted\n// - The exponent (or suffix) is as large as possible.\n//\n// The sign will be omitted unless the number is negative.\n//\n// Examples:\n//\n// - 1.5 will be serialized as \"1500m\"\n// - 1.5Gi will be serialized as \"1536Mi\"\n//\n// Note that the quantity will NEVER be internally represented by a\n// floating point number. That is the whole point of this exercise.\n//\n// Non-canonical values will still parse as long as they are well formed,\n// but will be re-emitted in their canonical form. (So always use canonical\n// form, or don't diff.)\n//\n// This format is intended to make it difficult to use these numbers without\n// writing some sort of special handling code in the hopes that that will\n// cause implementors to also use a fixed point implementation.\n//\n// +protobuf=true\n// +protobuf.embed=string\n// +protobuf.options.marshal=false\n// +protobuf.options.(gogoproto.goproto_stringer)=false\n// +k8s:deepcopy-gen=true\n// +k8s:openapi-gen=true\ntype Quantity struct {\n\t// i is the quantity in int64 scaled form, if d.Dec == nil\n\ti int64Amount\n\t// d is the quantity in inf.Dec form if d.Dec != nil\n\td infDecAmount\n\t// s is the generated value of this quantity to avoid recalculation\n\ts string\n\n\t// Change Format at will. See the comment for Canonicalize for\n\t// more details.\n\tFormat\n}\n\n// CanonicalValue allows a quantity amount to be converted to a string.\ntype CanonicalValue interface {\n\t// AsCanonicalBytes returns a byte array representing the string representation\n\t// of the value mantissa and an int32 representing its exponent in base-10. Callers may\n\t// pass a byte slice to the method to avoid allocations.\n\tAsCanonicalBytes(out []byte) ([]byte, int32)\n\t// AsCanonicalBase1024Bytes returns a byte array representing the string representation\n\t// of the value mantissa and an int32 representing its exponent in base-1024. Callers\n\t// may pass a byte slice to the method to avoid allocations.\n\tAsCanonicalBase1024Bytes(out []byte) ([]byte, int32)\n}\n\n// Format lists the three possible formattings of a quantity.\ntype Format string\n\nconst (\n\tDecimalExponent = Format(\"DecimalExponent\") // e.g., 12e6\n\tBinarySI        = Format(\"BinarySI\")        // e.g., 12Mi (12 * 2^20)\n\tDecimalSI       = Format(\"DecimalSI\")       // e.g., 12M  (12 * 10^6)\n)\n\n// MustParse turns the given string into a quantity or panics; for tests\n// or other cases where you know the string is valid.\nfunc MustParse(str string) Quantity {\n\tq, err := ParseQuantity(str)\n\tif err != nil {\n\t\tpanic(fmt.Errorf(\"cannot parse '%v': %v\", str, err))\n\t}\n\treturn q\n}\n\nconst (\n\t// splitREString is used to separate a number from its suffix; as such,\n\t// this is overly permissive, but that's OK-- it will be checked later.\n\tsplitREString = \"^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$\"\n)\n\nvar (\n\t// Errors that could happen while parsing a string.\n\tErrFormatWrong = errors.New(\"quantities must match the regular expression '\" + splitREString + \"'\")\n\tErrNumeric     = errors.New(\"unable to parse numeric part of quantity\")\n\tErrSuffix      = errors.New(\"unable to parse quantity's suffix\")\n)\n\n// parseQuantityString is a fast scanner for quantity values.\nfunc parseQuantityString(str string) (positive bool, value, num, denom, suffix string, err error) {\n\tpositive = true\n\tpos := 0\n\tend := len(str)\n\n\t// handle leading sign\n\tif pos < end {\n\t\tswitch str[0] {\n\t\tcase '-':\n\t\t\tpositive = false\n\t\t\tpos++\n\t\tcase '+':\n\t\t\tpos++\n\t\t}\n\t}\n\n\t// strip leading zeros\nZeroes:\n\tfor i := pos; ; i++ {\n\t\tif i >= end {\n\t\t\tnum = \"0\"\n\t\t\tvalue = num\n\t\t\treturn\n\t\t}\n\t\tswitch str[i] {\n\t\tcase '0':\n\t\t\tpos++\n\t\tdefault:\n\t\t\tbreak Zeroes\n\t\t}\n\t}\n\n\t// extract the numerator\nNum:\n\tfor i := pos; ; i++ {\n\t\tif i >= end {\n\t\t\tnum = str[pos:end]\n\t\t\tvalue = str[0:end]\n\t\t\treturn\n\t\t}\n\t\tswitch str[i] {\n\t\tcase '0', '1', '2', '3', '4', '5', '6', '7', '8', '9':\n\t\tdefault:\n\t\t\tnum = str[pos:i]\n\t\t\tpos = i\n\t\t\tbreak Num\n\t\t}\n\t}\n\n\t// if we stripped all numerator positions, always return 0\n\tif len(num) == 0 {\n\t\tnum = \"0\"\n\t}\n\n\t// handle a denominator\n\tif pos < end && str[pos] == '.' {\n\t\tpos++\n\tDenom:\n\t\tfor i := pos; ; i++ {\n\t\t\tif i >= end {\n\t\t\t\tdenom = str[pos:end]\n\t\t\t\tvalue = str[0:end]\n\t\t\t\treturn\n\t\t\t}\n\t\t\tswitch str[i] {\n\t\t\tcase '0', '1', '2', '3', '4', '5', '6', '7', '8', '9':\n\t\t\tdefault:\n\t\t\t\tdenom = str[pos:i]\n\t\t\t\tpos = i\n\t\t\t\tbreak Denom\n\t\t\t}\n\t\t}\n\t\t// TODO: we currently allow 1.G, but we may not want to in the future.\n\t\t// if len(denom) == 0 {\n\t\t// \terr = ErrFormatWrong\n\t\t// \treturn\n\t\t// }\n\t}\n\tvalue = str[0:pos]\n\n\t// grab the elements of the suffix\n\tsuffixStart := pos\n\tfor i := pos; ; i++ {\n\t\tif i >= end {\n\t\t\tsuffix = str[suffixStart:end]\n\t\t\treturn\n\t\t}\n\t\tif !strings.ContainsAny(str[i:i+1], \"eEinumkKMGTP\") {\n\t\t\tpos = i\n\t\t\tbreak\n\t\t}\n\t}\n\tif pos < end {\n\t\tswitch str[pos] {\n\t\tcase '-', '+':\n\t\t\tpos++\n\t\t}\n\t}\nSuffix:\n\tfor i := pos; ; i++ {\n\t\tif i >= end {\n\t\t\tsuffix = str[suffixStart:end]\n\t\t\treturn\n\t\t}\n\t\tswitch str[i] {\n\t\tcase '0', '1', '2', '3', '4', '5', '6', '7', '8', '9':\n\t\tdefault:\n\t\t\tbreak Suffix\n\t\t}\n\t}\n\t// we encountered a non decimal in the Suffix loop, but the last character\n\t// was not a valid exponent\n\terr = ErrFormatWrong\n\treturn\n}\n\n// ParseQuantity turns str into a Quantity, or returns an error.\nfunc ParseQuantity(str string) (Quantity, error) {\n\tif len(str) == 0 {\n\t\treturn Quantity{}, ErrFormatWrong\n\t}\n\tif str == \"0\" {\n\t\treturn Quantity{Format: DecimalSI, s: str}, nil\n\t}\n\n\tpositive, value, num, denom, suf, err := parseQuantityString(str)\n\tif err != nil {\n\t\treturn Quantity{}, err\n\t}\n\n\tbase, exponent, format, ok := quantitySuffixer.interpret(suffix(suf))\n\tif !ok {\n\t\treturn Quantity{}, ErrSuffix\n\t}\n\n\tprecision := int32(0)\n\tscale := int32(0)\n\tmantissa := int64(1)\n\tswitch format {\n\tcase DecimalExponent, DecimalSI:\n\t\tscale = exponent\n\t\tprecision = maxInt64Factors - int32(len(num)+len(denom))\n\tcase BinarySI:\n\t\tscale = 0\n\t\tswitch {\n\t\tcase exponent >= 0 && len(denom) == 0:\n\t\t\t// only handle positive binary numbers with the fast path\n\t\t\tmantissa = int64(int64(mantissa) << uint64(exponent))\n\t\t\t// 1Mi (2^20) has ~6 digits of decimal precision, so exponent*3/10 -1 is roughly the precision\n\t\t\tprecision = 15 - int32(len(num)) - int32(float32(exponent)*3/10) - 1\n\t\tdefault:\n\t\t\tprecision = -1\n\t\t}\n\t}\n\n\tif precision >= 0 {\n\t\t// if we have a denominator, shift the entire value to the left by the number of places in the\n\t\t// denominator\n\t\tscale -= int32(len(denom))\n\t\tif scale >= int32(Nano) {\n\t\t\tshifted := num + denom\n\n\t\t\tvar value int64\n\t\t\tvalue, err := strconv.ParseInt(shifted, 10, 64)\n\t\t\tif err != nil {\n\t\t\t\treturn Quantity{}, ErrNumeric\n\t\t\t}\n\t\t\tif result, ok := int64Multiply(value, int64(mantissa)); ok {\n\t\t\t\tif !positive {\n\t\t\t\t\tresult = -result\n\t\t\t\t}\n\t\t\t\t// if the number is in canonical form, reuse the string\n\t\t\t\tswitch format {\n\t\t\t\tcase BinarySI:\n\t\t\t\t\tif exponent%10 == 0 && (value&0x07 != 0) {\n\t\t\t\t\t\treturn Quantity{i: int64Amount{value: result, scale: Scale(scale)}, Format: format, s: str}, nil\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tif scale%3 == 0 && !strings.HasSuffix(shifted, \"000\") && shifted[0] != '0' {\n\t\t\t\t\t\treturn Quantity{i: int64Amount{value: result, scale: Scale(scale)}, Format: format, s: str}, nil\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn Quantity{i: int64Amount{value: result, scale: Scale(scale)}, Format: format}, nil\n\t\t\t}\n\t\t}\n\t}\n\n\tamount := new(inf.Dec)\n\tif _, ok := amount.SetString(value); !ok {\n\t\treturn Quantity{}, ErrNumeric\n\t}\n\n\t// So that no one but us has to think about suffixes, remove it.\n\tif base == 10 {\n\t\tamount.SetScale(amount.Scale() + Scale(exponent).infScale())\n\t} else if base == 2 {\n\t\t// numericSuffix = 2 ** exponent\n\t\tnumericSuffix := big.NewInt(1).Lsh(bigOne, uint(exponent))\n\t\tub := amount.UnscaledBig()\n\t\tamount.SetUnscaledBig(ub.Mul(ub, numericSuffix))\n\t}\n\n\t// Cap at min/max bounds.\n\tsign := amount.Sign()\n\tif sign == -1 {\n\t\tamount.Neg(amount)\n\t}\n\n\t// This rounds non-zero values up to the minimum representable value, under the theory that\n\t// if you want some resources, you should get some resources, even if you asked for way too small\n\t// of an amount.  Arguably, this should be inf.RoundHalfUp (normal rounding), but that would have\n\t// the side effect of rounding values < .5n to zero.\n\tif v, ok := amount.Unscaled(); v != int64(0) || !ok {\n\t\tamount.Round(amount, Nano.infScale(), inf.RoundUp)\n\t}\n\n\t// The max is just a simple cap.\n\t// TODO: this prevents accumulating quantities greater than int64, for instance quota across a cluster\n\tif format == BinarySI && amount.Cmp(maxAllowed.Dec) > 0 {\n\t\tamount.Set(maxAllowed.Dec)\n\t}\n\n\tif format == BinarySI && amount.Cmp(decOne) < 0 && amount.Cmp(decZero) > 0 {\n\t\t// This avoids rounding and hopefully confusion, too.\n\t\tformat = DecimalSI\n\t}\n\tif sign == -1 {\n\t\tamount.Neg(amount)\n\t}\n\n\treturn Quantity{d: infDecAmount{amount}, Format: format}, nil\n}\n\n// DeepCopy returns a deep-copy of the Quantity value.  Note that the method\n// receiver is a value, so we can mutate it in-place and return it.\nfunc (q Quantity) DeepCopy() Quantity {\n\tif q.d.Dec != nil {\n\t\ttmp := &inf.Dec{}\n\t\tq.d.Dec = tmp.Set(q.d.Dec)\n\t}\n\treturn q\n}\n\n// OpenAPISchemaType is used by the kube-openapi generator when constructing\n// the OpenAPI spec of this type.\n//\n// See: https://github.com/kubernetes/kube-openapi/tree/master/pkg/generators\nfunc (_ Quantity) OpenAPISchemaType() []string { return []string{\"string\"} }\n\n// OpenAPISchemaFormat is used by the kube-openapi generator when constructing\n// the OpenAPI spec of this type.\nfunc (_ Quantity) OpenAPISchemaFormat() string { return \"\" }\n\n// OpenAPIV3OneOfTypes is used by the kube-openapi generator when constructing\n// the OpenAPI v3 spec of this type.\nfunc (Quantity) OpenAPIV3OneOfTypes() []string { return []string{\"string\", \"number\"} }\n\n// CanonicalizeBytes returns the canonical form of q and its suffix (see comment on Quantity).\n//\n// Note about BinarySI:\n//   - If q.Format is set to BinarySI and q.Amount represents a non-zero value between\n//     -1 and +1, it will be emitted as if q.Format were DecimalSI.\n//   - Otherwise, if q.Format is set to BinarySI, fractional parts of q.Amount will be\n//     rounded up. (1.1i becomes 2i.)\nfunc (q *Quantity) CanonicalizeBytes(out []byte) (result, suffix []byte) {\n\tif q.IsZero() {\n\t\treturn zeroBytes, nil\n\t}\n\n\tvar rounded CanonicalValue\n\tformat := q.Format\n\tswitch format {\n\tcase DecimalExponent, DecimalSI:\n\tcase BinarySI:\n\t\tif q.CmpInt64(-1024) > 0 && q.CmpInt64(1024) < 0 {\n\t\t\t// This avoids rounding and hopefully confusion, too.\n\t\t\tformat = DecimalSI\n\t\t} else {\n\t\t\tvar exact bool\n\t\t\tif rounded, exact = q.AsScale(0); !exact {\n\t\t\t\t// Don't lose precision-- show as DecimalSI\n\t\t\t\tformat = DecimalSI\n\t\t\t}\n\t\t}\n\tdefault:\n\t\tformat = DecimalExponent\n\t}\n\n\t// TODO: If BinarySI formatting is requested but would cause rounding, upgrade to\n\t// one of the other formats.\n\tswitch format {\n\tcase DecimalExponent, DecimalSI:\n\t\tnumber, exponent := q.AsCanonicalBytes(out)\n\t\tsuffix, _ := quantitySuffixer.constructBytes(10, exponent, format)\n\t\treturn number, suffix\n\tdefault:\n\t\t// format must be BinarySI\n\t\tnumber, exponent := rounded.AsCanonicalBase1024Bytes(out)\n\t\tsuffix, _ := quantitySuffixer.constructBytes(2, exponent*10, format)\n\t\treturn number, suffix\n\t}\n}\n\n// AsApproximateFloat64 returns a float64 representation of the quantity which\n// may lose precision. If precision matter more than performance, see\n// AsFloat64Slow. If the value of the quantity is outside the range of a\n// float64 +Inf/-Inf will be returned.\nfunc (q *Quantity) AsApproximateFloat64() float64 {\n\tvar base float64\n\tvar exponent int\n\tif q.d.Dec != nil {\n\t\tbase, _ = big.NewFloat(0).SetInt(q.d.Dec.UnscaledBig()).Float64()\n\t\texponent = int(-q.d.Dec.Scale())\n\t} else {\n\t\tbase = float64(q.i.value)\n\t\texponent = int(q.i.scale)\n\t}\n\tif exponent == 0 {\n\t\treturn base\n\t}\n\n\treturn base * math.Pow10(exponent)\n}\n\n// AsFloat64Slow returns a float64 representation of the quantity.  This is\n// more precise than AsApproximateFloat64 but significantly slower.  If the\n// value of the quantity is outside the range of a float64 +Inf/-Inf will be\n// returned.\nfunc (q *Quantity) AsFloat64Slow() float64 {\n\tinfDec := q.AsDec()\n\n\tvar absScale int64\n\tif infDec.Scale() < 0 {\n\t\tabsScale = int64(-infDec.Scale())\n\t} else {\n\t\tabsScale = int64(infDec.Scale())\n\t}\n\tpow10AbsScale := big.NewInt(10)\n\tpow10AbsScale = pow10AbsScale.Exp(pow10AbsScale, big.NewInt(absScale), nil)\n\n\tvar resultBigFloat *big.Float\n\tif infDec.Scale() < 0 {\n\t\tresultBigInt := new(big.Int).Mul(infDec.UnscaledBig(), pow10AbsScale)\n\t\tresultBigFloat = new(big.Float).SetInt(resultBigInt)\n\t} else {\n\t\tpow10AbsScaleFloat := new(big.Float).SetInt(pow10AbsScale)\n\t\tresultBigFloat = new(big.Float).SetInt(infDec.UnscaledBig())\n\t\tresultBigFloat = resultBigFloat.Quo(resultBigFloat, pow10AbsScaleFloat)\n\t}\n\n\tresult, _ := resultBigFloat.Float64()\n\treturn result\n}\n\n// AsInt64 returns a representation of the current value as an int64 if a fast conversion\n// is possible. If false is returned, callers must use the inf.Dec form of this quantity.\nfunc (q *Quantity) AsInt64() (int64, bool) {\n\tif q.d.Dec != nil {\n\t\treturn 0, false\n\t}\n\treturn q.i.AsInt64()\n}\n\n// ToDec promotes the quantity in place to use an inf.Dec representation and returns itself.\nfunc (q *Quantity) ToDec() *Quantity {\n\tif q.d.Dec == nil {\n\t\tq.d.Dec = q.i.AsDec()\n\t\tq.i = int64Amount{}\n\t}\n\treturn q\n}\n\n// AsDec returns the quantity as represented by a scaled inf.Dec.\nfunc (q *Quantity) AsDec() *inf.Dec {\n\tif q.d.Dec != nil {\n\t\treturn q.d.Dec\n\t}\n\tq.d.Dec = q.i.AsDec()\n\tq.i = int64Amount{}\n\treturn q.d.Dec\n}\n\n// AsCanonicalBytes returns the canonical byte representation of this quantity as a mantissa\n// and base 10 exponent. The out byte slice may be passed to the method to avoid an extra\n// allocation.\nfunc (q *Quantity) AsCanonicalBytes(out []byte) (result []byte, exponent int32) {\n\tif q.d.Dec != nil {\n\t\treturn q.d.AsCanonicalBytes(out)\n\t}\n\treturn q.i.AsCanonicalBytes(out)\n}\n\n// IsZero returns true if the quantity is equal to zero.\nfunc (q *Quantity) IsZero() bool {\n\tif q.d.Dec != nil {\n\t\treturn q.d.Dec.Sign() == 0\n\t}\n\treturn q.i.value == 0\n}\n\n// Sign returns 0 if the quantity is zero, -1 if the quantity is less than zero, or 1 if the\n// quantity is greater than zero.\nfunc (q *Quantity) Sign() int {\n\tif q.d.Dec != nil {\n\t\treturn q.d.Dec.Sign()\n\t}\n\treturn q.i.Sign()\n}\n\n// AsScale returns the current value, rounded up to the provided scale, and returns\n// false if the scale resulted in a loss of precision.\nfunc (q *Quantity) AsScale(scale Scale) (CanonicalValue, bool) {\n\tif q.d.Dec != nil {\n\t\treturn q.d.AsScale(scale)\n\t}\n\treturn q.i.AsScale(scale)\n}\n\n// RoundUp updates the quantity to the provided scale, ensuring that the value is at\n// least 1. False is returned if the rounding operation resulted in a loss of precision.\n// Negative numbers are rounded away from zero (-9 scale 1 rounds to -10).\nfunc (q *Quantity) RoundUp(scale Scale) bool {\n\tif q.d.Dec != nil {\n\t\tq.s = \"\"\n\t\td, exact := q.d.AsScale(scale)\n\t\tq.d = d\n\t\treturn exact\n\t}\n\t// avoid clearing the string value if we have already calculated it\n\tif q.i.scale >= scale {\n\t\treturn true\n\t}\n\tq.s = \"\"\n\ti, exact := q.i.AsScale(scale)\n\tq.i = i\n\treturn exact\n}\n\n// Add adds the provide y quantity to the current value. If the current value is zero,\n// the format of the quantity will be updated to the format of y.\nfunc (q *Quantity) Add(y Quantity) {\n\tq.s = \"\"\n\tif q.d.Dec == nil && y.d.Dec == nil {\n\t\tif q.i.value == 0 {\n\t\t\tq.Format = y.Format\n\t\t}\n\t\tif q.i.Add(y.i) {\n\t\t\treturn\n\t\t}\n\t} else if q.IsZero() {\n\t\tq.Format = y.Format\n\t}\n\tq.ToDec().d.Dec.Add(q.d.Dec, y.AsDec())\n}\n\n// Sub subtracts the provided quantity from the current value in place. If the current\n// value is zero, the format of the quantity will be updated to the format of y.\nfunc (q *Quantity) Sub(y Quantity) {\n\tq.s = \"\"\n\tif q.IsZero() {\n\t\tq.Format = y.Format\n\t}\n\tif q.d.Dec == nil && y.d.Dec == nil && q.i.Sub(y.i) {\n\t\treturn\n\t}\n\tq.ToDec().d.Dec.Sub(q.d.Dec, y.AsDec())\n}\n\n// Mul multiplies the provided y to the current value.\n// It will return false if the result is inexact. Otherwise, it will return true.\nfunc (q *Quantity) Mul(y int64) bool {\n\tq.s = \"\"\n\tif q.d.Dec == nil && q.i.Mul(y) {\n\t\treturn true\n\t}\n\treturn q.ToDec().d.Dec.Mul(q.d.Dec, inf.NewDec(y, inf.Scale(0))).UnscaledBig().IsInt64()\n}\n\n// Cmp returns 0 if the quantity is equal to y, -1 if the quantity is less than y, or 1 if the\n// quantity is greater than y.\nfunc (q *Quantity) Cmp(y Quantity) int {\n\tif q.d.Dec == nil && y.d.Dec == nil {\n\t\treturn q.i.Cmp(y.i)\n\t}\n\treturn q.AsDec().Cmp(y.AsDec())\n}\n\n// CmpInt64 returns 0 if the quantity is equal to y, -1 if the quantity is less than y, or 1 if the\n// quantity is greater than y.\nfunc (q *Quantity) CmpInt64(y int64) int {\n\tif q.d.Dec != nil {\n\t\treturn q.d.Dec.Cmp(inf.NewDec(y, inf.Scale(0)))\n\t}\n\treturn q.i.Cmp(int64Amount{value: y})\n}\n\n// Neg sets quantity to be the negative value of itself.\nfunc (q *Quantity) Neg() {\n\tq.s = \"\"\n\tif q.d.Dec == nil {\n\t\tq.i.value = -q.i.value\n\t\treturn\n\t}\n\tq.d.Dec.Neg(q.d.Dec)\n}\n\n// Equal checks equality of two Quantities. This is useful for testing with\n// cmp.Equal.\nfunc (q Quantity) Equal(v Quantity) bool {\n\treturn q.Cmp(v) == 0\n}\n\n// int64QuantityExpectedBytes is the expected width in bytes of the canonical string representation\n// of most Quantity values.\nconst int64QuantityExpectedBytes = 18\n\n// String formats the Quantity as a string, caching the result if not calculated.\n// String is an expensive operation and caching this result significantly reduces the cost of\n// normal parse / marshal operations on Quantity.\nfunc (q *Quantity) String() string {\n\tif q == nil {\n\t\treturn \"<nil>\"\n\t}\n\tif len(q.s) == 0 {\n\t\tresult := make([]byte, 0, int64QuantityExpectedBytes)\n\t\tnumber, suffix := q.CanonicalizeBytes(result)\n\t\tnumber = append(number, suffix...)\n\t\tq.s = string(number)\n\t}\n\treturn q.s\n}\n\n// MarshalJSON implements the json.Marshaller interface.\nfunc (q Quantity) MarshalJSON() ([]byte, error) {\n\tif len(q.s) > 0 {\n\t\tout := make([]byte, len(q.s)+2)\n\t\tout[0], out[len(out)-1] = '\"', '\"'\n\t\tcopy(out[1:], q.s)\n\t\treturn out, nil\n\t}\n\tresult := make([]byte, int64QuantityExpectedBytes)\n\tresult[0] = '\"'\n\tnumber, suffix := q.CanonicalizeBytes(result[1:1])\n\t// if the same slice was returned to us that we passed in, avoid another allocation by copying number into\n\t// the source slice and returning that\n\tif len(number) > 0 && &number[0] == &result[1] && (len(number)+len(suffix)+2) <= int64QuantityExpectedBytes {\n\t\tnumber = append(number, suffix...)\n\t\tnumber = append(number, '\"')\n\t\treturn result[:1+len(number)], nil\n\t}\n\t// if CanonicalizeBytes needed more space than our slice provided, we may need to allocate again so use\n\t// append\n\tresult = result[:1]\n\tresult = append(result, number...)\n\tresult = append(result, suffix...)\n\tresult = append(result, '\"')\n\treturn result, nil\n}\n\nfunc (q Quantity) MarshalCBOR() ([]byte, error) {\n\t// The call to String() should never return the string \"<nil>\" because the receiver's\n\t// address will never be nil.\n\treturn cbor.Marshal(q.String())\n}\n\n// ToUnstructured implements the value.UnstructuredConverter interface.\nfunc (q Quantity) ToUnstructured() interface{} {\n\treturn q.String()\n}\n\n// UnmarshalJSON implements the json.Unmarshaller interface.\n// TODO: Remove support for leading/trailing whitespace\nfunc (q *Quantity) UnmarshalJSON(value []byte) error {\n\tl := len(value)\n\tif l == 4 && bytes.Equal(value, []byte(\"null\")) {\n\t\tq.d.Dec = nil\n\t\tq.i = int64Amount{}\n\t\treturn nil\n\t}\n\tif l >= 2 && value[0] == '\"' && value[l-1] == '\"' {\n\t\tvalue = value[1 : l-1]\n\t}\n\n\tparsed, err := ParseQuantity(strings.TrimSpace(string(value)))\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// This copy is safe because parsed will not be referred to again.\n\t*q = parsed\n\treturn nil\n}\n\nfunc (q *Quantity) UnmarshalCBOR(value []byte) error {\n\tvar s *string\n\tif err := cbor.Unmarshal(value, &s); err != nil {\n\t\treturn err\n\t}\n\n\tif s == nil {\n\t\tq.d.Dec = nil\n\t\tq.i = int64Amount{}\n\t\treturn nil\n\t}\n\n\tparsed, err := ParseQuantity(strings.TrimSpace(*s))\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t*q = parsed\n\treturn nil\n}\n\n// NewDecimalQuantity returns a new Quantity representing the given\n// value in the given format.\nfunc NewDecimalQuantity(b inf.Dec, format Format) *Quantity {\n\treturn &Quantity{\n\t\td:      infDecAmount{&b},\n\t\tFormat: format,\n\t}\n}\n\n// NewQuantity returns a new Quantity representing the given\n// value in the given format.\nfunc NewQuantity(value int64, format Format) *Quantity {\n\treturn &Quantity{\n\t\ti:      int64Amount{value: value},\n\t\tFormat: format,\n\t}\n}\n\n// NewMilliQuantity returns a new Quantity representing the given\n// value * 1/1000 in the given format. Note that BinarySI formatting\n// will round fractional values, and will be changed to DecimalSI for\n// values x where (-1 < x < 1) && (x != 0).\nfunc NewMilliQuantity(value int64, format Format) *Quantity {\n\treturn &Quantity{\n\t\ti:      int64Amount{value: value, scale: -3},\n\t\tFormat: format,\n\t}\n}\n\n// NewScaledQuantity returns a new Quantity representing the given\n// value * 10^scale in DecimalSI format.\nfunc NewScaledQuantity(value int64, scale Scale) *Quantity {\n\treturn &Quantity{\n\t\ti:      int64Amount{value: value, scale: scale},\n\t\tFormat: DecimalSI,\n\t}\n}\n\n// Value returns the unscaled value of q rounded up to the nearest integer away from 0.\nfunc (q *Quantity) Value() int64 {\n\treturn q.ScaledValue(0)\n}\n\n// MilliValue returns the value of ceil(q * 1000); this could overflow an int64;\n// if that's a concern, call Value() first to verify the number is small enough.\nfunc (q *Quantity) MilliValue() int64 {\n\treturn q.ScaledValue(Milli)\n}\n\n// ScaledValue returns the value of ceil(q / 10^scale).\n// For example, NewQuantity(1, DecimalSI).ScaledValue(Milli) returns 1000.\n// This could overflow an int64.\n// To detect overflow, call Value() first and verify the expected magnitude.\nfunc (q *Quantity) ScaledValue(scale Scale) int64 {\n\tif q.d.Dec == nil {\n\t\ti, _ := q.i.AsScaledInt64(scale)\n\t\treturn i\n\t}\n\tdec := q.d.Dec\n\treturn scaledValue(dec.UnscaledBig(), int(dec.Scale()), int(scale.infScale()))\n}\n\n// Set sets q's value to be value.\nfunc (q *Quantity) Set(value int64) {\n\tq.SetScaled(value, 0)\n}\n\n// SetMilli sets q's value to be value * 1/1000.\nfunc (q *Quantity) SetMilli(value int64) {\n\tq.SetScaled(value, Milli)\n}\n\n// SetScaled sets q's value to be value * 10^scale\nfunc (q *Quantity) SetScaled(value int64, scale Scale) {\n\tq.s = \"\"\n\tq.d.Dec = nil\n\tq.i = int64Amount{value: value, scale: scale}\n}\n\n// QuantityValue makes it possible to use a Quantity as value for a command\n// line parameter.\n//\n// +protobuf=true\n// +protobuf.embed=string\n// +protobuf.options.marshal=false\n// +protobuf.options.(gogoproto.goproto_stringer)=false\n// +k8s:deepcopy-gen=true\ntype QuantityValue struct {\n\tQuantity\n}\n\n// Set implements pflag.Value.Set and Go flag.Value.Set.\nfunc (q *QuantityValue) Set(s string) error {\n\tquantity, err := ParseQuantity(s)\n\tif err != nil {\n\t\treturn err\n\t}\n\tq.Quantity = quantity\n\treturn nil\n}\n\n// Type implements pflag.Value.Type.\nfunc (q QuantityValue) Type() string {\n\treturn \"quantity\"\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/resource/quantity_proto.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage resource\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"math/bits\"\n\n\t\"github.com/gogo/protobuf/proto\"\n)\n\nvar _ proto.Sizer = &Quantity{}\n\nfunc (m *Quantity) Marshal() (data []byte, err error) {\n\tsize := m.Size()\n\tdata = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(data[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn data[:n], nil\n}\n\n// MarshalTo is a customized version of the generated Protobuf unmarshaler for a struct\n// with a single string field.\nfunc (m *Quantity) MarshalTo(data []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(data[:size])\n}\n\n// MarshalToSizedBuffer is a customized version of the generated\n// Protobuf unmarshaler for a struct with a single string field.\nfunc (m *Quantity) MarshalToSizedBuffer(data []byte) (int, error) {\n\ti := len(data)\n\t_ = i\n\tvar l int\n\t_ = l\n\n\t// BEGIN CUSTOM MARSHAL\n\tout := m.String()\n\ti -= len(out)\n\tcopy(data[i:], out)\n\ti = encodeVarintGenerated(data, i, uint64(len(out)))\n\t// END CUSTOM MARSHAL\n\ti--\n\tdata[i] = 0xa\n\n\treturn len(data) - i, nil\n}\n\nfunc encodeVarintGenerated(data []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdata[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdata[offset] = uint8(v)\n\treturn base\n}\n\nfunc (m *Quantity) Size() (n int) {\n\tvar l int\n\t_ = l\n\n\t// BEGIN CUSTOM SIZE\n\tl = len(m.String())\n\t// END CUSTOM SIZE\n\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (bits.Len64(x|1) + 6) / 7\n}\n\n// Unmarshal is a customized version of the generated Protobuf unmarshaler for a struct\n// with a single string field.\nfunc (m *Quantity) Unmarshal(data []byte) error {\n\tl := len(data)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := data[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Quantity: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Quantity: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field String_\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := data[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= (uint64(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(data[iNdEx:postIndex])\n\n\t\t\t// BEGIN CUSTOM DECODE\n\t\t\tp, err := ParseQuantity(s)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\t*m = p\n\t\t\t// END CUSTOM DECODE\n\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(data[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\n\nfunc skipGenerated(data []byte) (n int, err error) {\n\tl := len(data)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := data[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif data[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn iNdEx, nil\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\t\treturn iNdEx, nil\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := data[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tiNdEx += length\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\treturn iNdEx, nil\n\t\tcase 3:\n\t\t\tfor {\n\t\t\t\tvar innerWire uint64\n\t\t\t\tvar start int = iNdEx\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := data[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\tinnerWire |= (uint64(b) & 0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tinnerWireType := int(innerWire & 0x7)\n\t\t\t\tif innerWireType == 4 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tnext, err := skipGenerated(data[start:])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\tiNdEx = start + next\n\t\t\t}\n\t\t\treturn iNdEx, nil\n\t\tcase 4:\n\t\t\treturn iNdEx, nil\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\t\treturn iNdEx, nil\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t}\n\tpanic(\"unreachable\")\n}\n\nvar (\n\tErrInvalidLengthGenerated = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated   = fmt.Errorf(\"proto: integer overflow\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/resource/scale_int.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage resource\n\nimport (\n\t\"math\"\n\t\"math/big\"\n\t\"sync\"\n)\n\nvar (\n\t// A sync pool to reduce allocation.\n\tintPool  sync.Pool\n\tmaxInt64 = big.NewInt(math.MaxInt64)\n)\n\nfunc init() {\n\tintPool.New = func() interface{} {\n\t\treturn &big.Int{}\n\t}\n}\n\n// scaledValue scales given unscaled value from scale to new Scale and returns\n// an int64. It ALWAYS rounds up the result when scale down. The final result might\n// overflow.\n//\n// scale, newScale represents the scale of the unscaled decimal.\n// The mathematical value of the decimal is unscaled * 10**(-scale).\nfunc scaledValue(unscaled *big.Int, scale, newScale int) int64 {\n\tdif := scale - newScale\n\tif dif == 0 {\n\t\treturn unscaled.Int64()\n\t}\n\n\t// Handle scale up\n\t// This is an easy case, we do not need to care about rounding and overflow.\n\t// If any intermediate operation causes overflow, the result will overflow.\n\tif dif < 0 {\n\t\treturn unscaled.Int64() * int64(math.Pow10(-dif))\n\t}\n\n\t// Handle scale down\n\t// We have to be careful about the intermediate operations.\n\n\t// fast path when unscaled < max.Int64 and exp(10,dif) < max.Int64\n\tconst log10MaxInt64 = 19\n\tif unscaled.Cmp(maxInt64) < 0 && dif < log10MaxInt64 {\n\t\tdivide := int64(math.Pow10(dif))\n\t\tresult := unscaled.Int64() / divide\n\t\tmod := unscaled.Int64() % divide\n\t\tif mod != 0 {\n\t\t\treturn result + 1\n\t\t}\n\t\treturn result\n\t}\n\n\t// We should only convert back to int64 when getting the result.\n\tdivisor := intPool.Get().(*big.Int)\n\texp := intPool.Get().(*big.Int)\n\tresult := intPool.Get().(*big.Int)\n\tdefer func() {\n\t\tintPool.Put(divisor)\n\t\tintPool.Put(exp)\n\t\tintPool.Put(result)\n\t}()\n\n\t// divisor = 10^(dif)\n\t// TODO: create loop up table if exp costs too much.\n\tdivisor.Exp(bigTen, exp.SetInt64(int64(dif)), nil)\n\t// reuse exp\n\tremainder := exp\n\n\t// result = unscaled / divisor\n\t// remainder = unscaled % divisor\n\tresult.DivMod(unscaled, divisor, remainder)\n\tif remainder.Sign() != 0 {\n\t\treturn result.Int64() + 1\n\t}\n\n\treturn result.Int64()\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/resource/suffix.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage resource\n\nimport (\n\t\"strconv\"\n)\n\ntype suffix string\n\n// suffixer can interpret and construct suffixes.\ntype suffixer interface {\n\tinterpret(suffix) (base, exponent int32, fmt Format, ok bool)\n\tconstruct(base, exponent int32, fmt Format) (s suffix, ok bool)\n\tconstructBytes(base, exponent int32, fmt Format) (s []byte, ok bool)\n}\n\n// quantitySuffixer handles suffixes for all three formats that quantity\n// can handle.\nvar quantitySuffixer = newSuffixer()\n\ntype bePair struct {\n\tbase, exponent int32\n}\n\ntype listSuffixer struct {\n\tsuffixToBE      map[suffix]bePair\n\tbeToSuffix      map[bePair]suffix\n\tbeToSuffixBytes map[bePair][]byte\n}\n\nfunc (ls *listSuffixer) addSuffix(s suffix, pair bePair) {\n\tif ls.suffixToBE == nil {\n\t\tls.suffixToBE = map[suffix]bePair{}\n\t}\n\tif ls.beToSuffix == nil {\n\t\tls.beToSuffix = map[bePair]suffix{}\n\t}\n\tif ls.beToSuffixBytes == nil {\n\t\tls.beToSuffixBytes = map[bePair][]byte{}\n\t}\n\tls.suffixToBE[s] = pair\n\tls.beToSuffix[pair] = s\n\tls.beToSuffixBytes[pair] = []byte(s)\n}\n\nfunc (ls *listSuffixer) lookup(s suffix) (base, exponent int32, ok bool) {\n\tpair, ok := ls.suffixToBE[s]\n\tif !ok {\n\t\treturn 0, 0, false\n\t}\n\treturn pair.base, pair.exponent, true\n}\n\nfunc (ls *listSuffixer) construct(base, exponent int32) (s suffix, ok bool) {\n\ts, ok = ls.beToSuffix[bePair{base, exponent}]\n\treturn\n}\n\nfunc (ls *listSuffixer) constructBytes(base, exponent int32) (s []byte, ok bool) {\n\ts, ok = ls.beToSuffixBytes[bePair{base, exponent}]\n\treturn\n}\n\ntype suffixHandler struct {\n\tdecSuffixes listSuffixer\n\tbinSuffixes listSuffixer\n}\n\ntype fastLookup struct {\n\t*suffixHandler\n}\n\nfunc (l fastLookup) interpret(s suffix) (base, exponent int32, format Format, ok bool) {\n\tswitch s {\n\tcase \"\":\n\t\treturn 10, 0, DecimalSI, true\n\tcase \"n\":\n\t\treturn 10, -9, DecimalSI, true\n\tcase \"u\":\n\t\treturn 10, -6, DecimalSI, true\n\tcase \"m\":\n\t\treturn 10, -3, DecimalSI, true\n\tcase \"k\":\n\t\treturn 10, 3, DecimalSI, true\n\tcase \"M\":\n\t\treturn 10, 6, DecimalSI, true\n\tcase \"G\":\n\t\treturn 10, 9, DecimalSI, true\n\t}\n\treturn l.suffixHandler.interpret(s)\n}\n\nfunc newSuffixer() suffixer {\n\tsh := &suffixHandler{}\n\n\t// IMPORTANT: if you change this section you must change fastLookup\n\n\tsh.binSuffixes.addSuffix(\"Ki\", bePair{2, 10})\n\tsh.binSuffixes.addSuffix(\"Mi\", bePair{2, 20})\n\tsh.binSuffixes.addSuffix(\"Gi\", bePair{2, 30})\n\tsh.binSuffixes.addSuffix(\"Ti\", bePair{2, 40})\n\tsh.binSuffixes.addSuffix(\"Pi\", bePair{2, 50})\n\tsh.binSuffixes.addSuffix(\"Ei\", bePair{2, 60})\n\t// Don't emit an error when trying to produce\n\t// a suffix for 2^0.\n\tsh.decSuffixes.addSuffix(\"\", bePair{2, 0})\n\n\tsh.decSuffixes.addSuffix(\"n\", bePair{10, -9})\n\tsh.decSuffixes.addSuffix(\"u\", bePair{10, -6})\n\tsh.decSuffixes.addSuffix(\"m\", bePair{10, -3})\n\tsh.decSuffixes.addSuffix(\"\", bePair{10, 0})\n\tsh.decSuffixes.addSuffix(\"k\", bePair{10, 3})\n\tsh.decSuffixes.addSuffix(\"M\", bePair{10, 6})\n\tsh.decSuffixes.addSuffix(\"G\", bePair{10, 9})\n\tsh.decSuffixes.addSuffix(\"T\", bePair{10, 12})\n\tsh.decSuffixes.addSuffix(\"P\", bePair{10, 15})\n\tsh.decSuffixes.addSuffix(\"E\", bePair{10, 18})\n\n\treturn fastLookup{sh}\n}\n\nfunc (sh *suffixHandler) construct(base, exponent int32, fmt Format) (s suffix, ok bool) {\n\tswitch fmt {\n\tcase DecimalSI:\n\t\treturn sh.decSuffixes.construct(base, exponent)\n\tcase BinarySI:\n\t\treturn sh.binSuffixes.construct(base, exponent)\n\tcase DecimalExponent:\n\t\tif base != 10 {\n\t\t\treturn \"\", false\n\t\t}\n\t\tif exponent == 0 {\n\t\t\treturn \"\", true\n\t\t}\n\t\treturn suffix(\"e\" + strconv.FormatInt(int64(exponent), 10)), true\n\t}\n\treturn \"\", false\n}\n\nfunc (sh *suffixHandler) constructBytes(base, exponent int32, format Format) (s []byte, ok bool) {\n\tswitch format {\n\tcase DecimalSI:\n\t\treturn sh.decSuffixes.constructBytes(base, exponent)\n\tcase BinarySI:\n\t\treturn sh.binSuffixes.constructBytes(base, exponent)\n\tcase DecimalExponent:\n\t\tif base != 10 {\n\t\t\treturn nil, false\n\t\t}\n\t\tif exponent == 0 {\n\t\t\treturn nil, true\n\t\t}\n\t\tresult := make([]byte, 8)\n\t\tresult[0] = 'e'\n\t\tnumber := strconv.AppendInt(result[1:1], int64(exponent), 10)\n\t\tif &result[1] == &number[0] {\n\t\t\treturn result[:1+len(number)], true\n\t\t}\n\t\tresult = append(result[:1], number...)\n\t\treturn result, true\n\t}\n\treturn nil, false\n}\n\nfunc (sh *suffixHandler) interpret(suffix suffix) (base, exponent int32, fmt Format, ok bool) {\n\t// Try lookup tables first\n\tif b, e, ok := sh.decSuffixes.lookup(suffix); ok {\n\t\treturn b, e, DecimalSI, true\n\t}\n\tif b, e, ok := sh.binSuffixes.lookup(suffix); ok {\n\t\treturn b, e, BinarySI, true\n\t}\n\n\tif len(suffix) > 1 && (suffix[0] == 'E' || suffix[0] == 'e') {\n\t\tparsed, err := strconv.ParseInt(string(suffix[1:]), 10, 64)\n\t\tif err != nil {\n\t\t\treturn 0, 0, DecimalExponent, false\n\t\t}\n\t\treturn 10, int32(parsed), DecimalExponent, true\n\t}\n\n\treturn 0, 0, DecimalExponent, false\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/resource/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage resource\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Quantity) DeepCopyInto(out *Quantity) {\n\t*out = in.DeepCopy()\n\treturn\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *QuantityValue) DeepCopyInto(out *QuantityValue) {\n\t*out = *in\n\tout.Quantity = in.Quantity.DeepCopy()\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new QuantityValue.\nfunc (in *QuantityValue) DeepCopy() *QuantityValue {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(QuantityValue)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/validation/OWNERS",
    "content": "# See the OWNERS docs at https://go.k8s.io/owners\n\n# Disable inheritance as this is an api owners file\noptions:\n  no_parent_owners: true\napprovers:\n  - api-approvers\nreviewers:\n  - api-reviewers\nlabels:\n  - kind/api-change\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/validation/doc.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package validation contains generic api type validation functions.\npackage validation // import \"k8s.io/apimachinery/pkg/api/validation\"\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/validation/generic.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage validation\n\nimport (\n\t\"strings\"\n\n\t\"k8s.io/apimachinery/pkg/util/validation\"\n\t\"k8s.io/apimachinery/pkg/util/validation/field\"\n)\n\n// IsNegativeErrorMsg is a error message for value must be greater than or equal to 0.\nconst IsNegativeErrorMsg string = `must be greater than or equal to 0`\n\n// ValidateNameFunc validates that the provided name is valid for a given resource type.\n// Not all resources have the same validation rules for names. Prefix is true\n// if the name will have a value appended to it.  If the name is not valid,\n// this returns a list of descriptions of individual characteristics of the\n// value that were not valid.  Otherwise this returns an empty list or nil.\ntype ValidateNameFunc func(name string, prefix bool) []string\n\n// NameIsDNSSubdomain is a ValidateNameFunc for names that must be a DNS subdomain.\nfunc NameIsDNSSubdomain(name string, prefix bool) []string {\n\tif prefix {\n\t\tname = maskTrailingDash(name)\n\t}\n\treturn validation.IsDNS1123Subdomain(name)\n}\n\n// NameIsDNSLabel is a ValidateNameFunc for names that must be a DNS 1123 label.\nfunc NameIsDNSLabel(name string, prefix bool) []string {\n\tif prefix {\n\t\tname = maskTrailingDash(name)\n\t}\n\treturn validation.IsDNS1123Label(name)\n}\n\n// NameIsDNS1035Label is a ValidateNameFunc for names that must be a DNS 952 label.\nfunc NameIsDNS1035Label(name string, prefix bool) []string {\n\tif prefix {\n\t\tname = maskTrailingDash(name)\n\t}\n\treturn validation.IsDNS1035Label(name)\n}\n\n// ValidateNamespaceName can be used to check whether the given namespace name is valid.\n// Prefix indicates this name will be used as part of generation, in which case\n// trailing dashes are allowed.\nvar ValidateNamespaceName = NameIsDNSLabel\n\n// ValidateServiceAccountName can be used to check whether the given service account name is valid.\n// Prefix indicates this name will be used as part of generation, in which case\n// trailing dashes are allowed.\nvar ValidateServiceAccountName = NameIsDNSSubdomain\n\n// maskTrailingDash replaces the final character of a string with a subdomain safe\n// value if it is a dash and if the length of this string is greater than 1. Note that\n// this is used when a value could be appended to the string, see ValidateNameFunc\n// for more info.\nfunc maskTrailingDash(name string) string {\n\tif len(name) > 1 && strings.HasSuffix(name, \"-\") {\n\t\treturn name[:len(name)-2] + \"a\"\n\t}\n\treturn name\n}\n\n// ValidateNonnegativeField validates that given value is not negative.\nfunc ValidateNonnegativeField(value int64, fldPath *field.Path) field.ErrorList {\n\tallErrs := field.ErrorList{}\n\tif value < 0 {\n\t\tallErrs = append(allErrs, field.Invalid(fldPath, value, IsNegativeErrorMsg))\n\t}\n\treturn allErrs\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/api/validation/objectmeta.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage validation\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\n\tapiequality \"k8s.io/apimachinery/pkg/api/equality\"\n\t\"k8s.io/apimachinery/pkg/api/meta\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tv1validation \"k8s.io/apimachinery/pkg/apis/meta/v1/validation\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/util/sets\"\n\t\"k8s.io/apimachinery/pkg/util/validation\"\n\t\"k8s.io/apimachinery/pkg/util/validation/field\"\n)\n\n// FieldImmutableErrorMsg is a error message for field is immutable.\nconst FieldImmutableErrorMsg string = `field is immutable`\n\nconst TotalAnnotationSizeLimitB int = 256 * (1 << 10) // 256 kB\n\n// BannedOwners is a black list of object that are not allowed to be owners.\nvar BannedOwners = map[schema.GroupVersionKind]struct{}{\n\t{Group: \"\", Version: \"v1\", Kind: \"Event\"}: {},\n}\n\n// ValidateAnnotations validates that a set of annotations are correctly defined.\nfunc ValidateAnnotations(annotations map[string]string, fldPath *field.Path) field.ErrorList {\n\tallErrs := field.ErrorList{}\n\tfor k := range annotations {\n\t\t// The rule is QualifiedName except that case doesn't matter, so convert to lowercase before checking.\n\t\tfor _, msg := range validation.IsQualifiedName(strings.ToLower(k)) {\n\t\t\tallErrs = append(allErrs, field.Invalid(fldPath, k, msg))\n\t\t}\n\t}\n\tif err := ValidateAnnotationsSize(annotations); err != nil {\n\t\tallErrs = append(allErrs, field.TooLong(fldPath, \"\" /*unused*/, TotalAnnotationSizeLimitB))\n\t}\n\treturn allErrs\n}\n\nfunc ValidateAnnotationsSize(annotations map[string]string) error {\n\tvar totalSize int64\n\tfor k, v := range annotations {\n\t\ttotalSize += (int64)(len(k)) + (int64)(len(v))\n\t}\n\tif totalSize > (int64)(TotalAnnotationSizeLimitB) {\n\t\treturn fmt.Errorf(\"annotations size %d is larger than limit %d\", totalSize, TotalAnnotationSizeLimitB)\n\t}\n\treturn nil\n}\n\nfunc validateOwnerReference(ownerReference metav1.OwnerReference, fldPath *field.Path) field.ErrorList {\n\tallErrs := field.ErrorList{}\n\tgvk := schema.FromAPIVersionAndKind(ownerReference.APIVersion, ownerReference.Kind)\n\t// gvk.Group is empty for the legacy group.\n\tif len(gvk.Version) == 0 {\n\t\tallErrs = append(allErrs, field.Invalid(fldPath.Child(\"apiVersion\"), ownerReference.APIVersion, \"version must not be empty\"))\n\t}\n\tif len(gvk.Kind) == 0 {\n\t\tallErrs = append(allErrs, field.Invalid(fldPath.Child(\"kind\"), ownerReference.Kind, \"kind must not be empty\"))\n\t}\n\tif len(ownerReference.Name) == 0 {\n\t\tallErrs = append(allErrs, field.Invalid(fldPath.Child(\"name\"), ownerReference.Name, \"name must not be empty\"))\n\t}\n\tif len(ownerReference.UID) == 0 {\n\t\tallErrs = append(allErrs, field.Invalid(fldPath.Child(\"uid\"), ownerReference.UID, \"uid must not be empty\"))\n\t}\n\tif _, ok := BannedOwners[gvk]; ok {\n\t\tallErrs = append(allErrs, field.Invalid(fldPath, ownerReference, fmt.Sprintf(\"%s is disallowed from being an owner\", gvk)))\n\t}\n\treturn allErrs\n}\n\n// ValidateOwnerReferences validates that a set of owner references are correctly defined.\nfunc ValidateOwnerReferences(ownerReferences []metav1.OwnerReference, fldPath *field.Path) field.ErrorList {\n\tallErrs := field.ErrorList{}\n\tfirstControllerName := \"\"\n\tfor _, ref := range ownerReferences {\n\t\tallErrs = append(allErrs, validateOwnerReference(ref, fldPath)...)\n\t\tif ref.Controller != nil && *ref.Controller {\n\t\t\tcurControllerName := ref.Kind + \"/\" + ref.Name\n\t\t\tif firstControllerName != \"\" {\n\t\t\t\tallErrs = append(allErrs, field.Invalid(fldPath, ownerReferences,\n\t\t\t\t\tfmt.Sprintf(\"Only one reference can have Controller set to true. Found \\\"true\\\" in references for %v and %v\", firstControllerName, curControllerName)))\n\t\t\t} else {\n\t\t\t\tfirstControllerName = curControllerName\n\t\t\t}\n\t\t}\n\t}\n\treturn allErrs\n}\n\n// ValidateFinalizerName validates finalizer names.\nfunc ValidateFinalizerName(stringValue string, fldPath *field.Path) field.ErrorList {\n\tallErrs := field.ErrorList{}\n\tfor _, msg := range validation.IsQualifiedName(stringValue) {\n\t\tallErrs = append(allErrs, field.Invalid(fldPath, stringValue, msg))\n\t}\n\n\treturn allErrs\n}\n\n// ValidateNoNewFinalizers validates the new finalizers has no new finalizers compare to old finalizers.\nfunc ValidateNoNewFinalizers(newFinalizers []string, oldFinalizers []string, fldPath *field.Path) field.ErrorList {\n\tallErrs := field.ErrorList{}\n\textra := sets.NewString(newFinalizers...).Difference(sets.NewString(oldFinalizers...))\n\tif len(extra) != 0 {\n\t\tallErrs = append(allErrs, field.Forbidden(fldPath, fmt.Sprintf(\"no new finalizers can be added if the object is being deleted, found new finalizers %#v\", extra.List())))\n\t}\n\treturn allErrs\n}\n\n// ValidateImmutableField validates the new value and the old value are deeply equal.\nfunc ValidateImmutableField(newVal, oldVal interface{}, fldPath *field.Path) field.ErrorList {\n\tallErrs := field.ErrorList{}\n\tif !apiequality.Semantic.DeepEqual(oldVal, newVal) {\n\t\tallErrs = append(allErrs, field.Invalid(fldPath, newVal, FieldImmutableErrorMsg))\n\t}\n\treturn allErrs\n}\n\n// ValidateObjectMeta validates an object's metadata on creation. It expects that name generation has already\n// been performed.\n// It doesn't return an error for rootscoped resources with namespace, because namespace should already be cleared before.\nfunc ValidateObjectMeta(objMeta *metav1.ObjectMeta, requiresNamespace bool, nameFn ValidateNameFunc, fldPath *field.Path) field.ErrorList {\n\tmetadata, err := meta.Accessor(objMeta)\n\tif err != nil {\n\t\tvar allErrs field.ErrorList\n\t\tallErrs = append(allErrs, field.Invalid(fldPath, objMeta, err.Error()))\n\t\treturn allErrs\n\t}\n\treturn ValidateObjectMetaAccessor(metadata, requiresNamespace, nameFn, fldPath)\n}\n\n// ValidateObjectMetaAccessor validates an object's metadata on creation. It expects that name generation has already\n// been performed.\n// It doesn't return an error for rootscoped resources with namespace, because namespace should already be cleared before.\nfunc ValidateObjectMetaAccessor(meta metav1.Object, requiresNamespace bool, nameFn ValidateNameFunc, fldPath *field.Path) field.ErrorList {\n\tvar allErrs field.ErrorList\n\n\tif len(meta.GetGenerateName()) != 0 {\n\t\tfor _, msg := range nameFn(meta.GetGenerateName(), true) {\n\t\t\tallErrs = append(allErrs, field.Invalid(fldPath.Child(\"generateName\"), meta.GetGenerateName(), msg))\n\t\t}\n\t}\n\t// If the generated name validates, but the calculated value does not, it's a problem with generation, and we\n\t// report it here. This may confuse users, but indicates a programming bug and still must be validated.\n\t// If there are multiple fields out of which one is required then add an or as a separator\n\tif len(meta.GetName()) == 0 {\n\t\tallErrs = append(allErrs, field.Required(fldPath.Child(\"name\"), \"name or generateName is required\"))\n\t} else {\n\t\tfor _, msg := range nameFn(meta.GetName(), false) {\n\t\t\tallErrs = append(allErrs, field.Invalid(fldPath.Child(\"name\"), meta.GetName(), msg))\n\t\t}\n\t}\n\tif requiresNamespace {\n\t\tif len(meta.GetNamespace()) == 0 {\n\t\t\tallErrs = append(allErrs, field.Required(fldPath.Child(\"namespace\"), \"\"))\n\t\t} else {\n\t\t\tfor _, msg := range ValidateNamespaceName(meta.GetNamespace(), false) {\n\t\t\t\tallErrs = append(allErrs, field.Invalid(fldPath.Child(\"namespace\"), meta.GetNamespace(), msg))\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif len(meta.GetNamespace()) != 0 {\n\t\t\tallErrs = append(allErrs, field.Forbidden(fldPath.Child(\"namespace\"), \"not allowed on this type\"))\n\t\t}\n\t}\n\n\tallErrs = append(allErrs, ValidateNonnegativeField(meta.GetGeneration(), fldPath.Child(\"generation\"))...)\n\tallErrs = append(allErrs, v1validation.ValidateLabels(meta.GetLabels(), fldPath.Child(\"labels\"))...)\n\tallErrs = append(allErrs, ValidateAnnotations(meta.GetAnnotations(), fldPath.Child(\"annotations\"))...)\n\tallErrs = append(allErrs, ValidateOwnerReferences(meta.GetOwnerReferences(), fldPath.Child(\"ownerReferences\"))...)\n\tallErrs = append(allErrs, ValidateFinalizers(meta.GetFinalizers(), fldPath.Child(\"finalizers\"))...)\n\tallErrs = append(allErrs, v1validation.ValidateManagedFields(meta.GetManagedFields(), fldPath.Child(\"managedFields\"))...)\n\treturn allErrs\n}\n\n// ValidateFinalizers tests if the finalizers name are valid, and if there are conflicting finalizers.\nfunc ValidateFinalizers(finalizers []string, fldPath *field.Path) field.ErrorList {\n\tallErrs := field.ErrorList{}\n\thasFinalizerOrphanDependents := false\n\thasFinalizerDeleteDependents := false\n\tfor _, finalizer := range finalizers {\n\t\tallErrs = append(allErrs, ValidateFinalizerName(finalizer, fldPath)...)\n\t\tif finalizer == metav1.FinalizerOrphanDependents {\n\t\t\thasFinalizerOrphanDependents = true\n\t\t}\n\t\tif finalizer == metav1.FinalizerDeleteDependents {\n\t\t\thasFinalizerDeleteDependents = true\n\t\t}\n\t}\n\tif hasFinalizerDeleteDependents && hasFinalizerOrphanDependents {\n\t\tallErrs = append(allErrs, field.Invalid(fldPath, finalizers, fmt.Sprintf(\"finalizer %s and %s cannot be both set\", metav1.FinalizerOrphanDependents, metav1.FinalizerDeleteDependents)))\n\t}\n\treturn allErrs\n}\n\n// ValidateObjectMetaUpdate validates an object's metadata when updated.\nfunc ValidateObjectMetaUpdate(newMeta, oldMeta *metav1.ObjectMeta, fldPath *field.Path) field.ErrorList {\n\tnewMetadata, err := meta.Accessor(newMeta)\n\tif err != nil {\n\t\tallErrs := field.ErrorList{}\n\t\tallErrs = append(allErrs, field.Invalid(fldPath, newMeta, err.Error()))\n\t\treturn allErrs\n\t}\n\toldMetadata, err := meta.Accessor(oldMeta)\n\tif err != nil {\n\t\tallErrs := field.ErrorList{}\n\t\tallErrs = append(allErrs, field.Invalid(fldPath, oldMeta, err.Error()))\n\t\treturn allErrs\n\t}\n\treturn ValidateObjectMetaAccessorUpdate(newMetadata, oldMetadata, fldPath)\n}\n\n// ValidateObjectMetaAccessorUpdate validates an object's metadata when updated.\nfunc ValidateObjectMetaAccessorUpdate(newMeta, oldMeta metav1.Object, fldPath *field.Path) field.ErrorList {\n\tvar allErrs field.ErrorList\n\n\t// Finalizers cannot be added if the object is already being deleted.\n\tif oldMeta.GetDeletionTimestamp() != nil {\n\t\tallErrs = append(allErrs, ValidateNoNewFinalizers(newMeta.GetFinalizers(), oldMeta.GetFinalizers(), fldPath.Child(\"finalizers\"))...)\n\t}\n\n\t// Reject updates that don't specify a resource version\n\tif len(newMeta.GetResourceVersion()) == 0 {\n\t\tallErrs = append(allErrs, field.Invalid(fldPath.Child(\"resourceVersion\"), newMeta.GetResourceVersion(), \"must be specified for an update\"))\n\t}\n\n\t// Generation shouldn't be decremented\n\tif newMeta.GetGeneration() < oldMeta.GetGeneration() {\n\t\tallErrs = append(allErrs, field.Invalid(fldPath.Child(\"generation\"), newMeta.GetGeneration(), \"must not be decremented\"))\n\t}\n\n\tallErrs = append(allErrs, ValidateImmutableField(newMeta.GetName(), oldMeta.GetName(), fldPath.Child(\"name\"))...)\n\tallErrs = append(allErrs, ValidateImmutableField(newMeta.GetNamespace(), oldMeta.GetNamespace(), fldPath.Child(\"namespace\"))...)\n\tallErrs = append(allErrs, ValidateImmutableField(newMeta.GetUID(), oldMeta.GetUID(), fldPath.Child(\"uid\"))...)\n\tallErrs = append(allErrs, ValidateImmutableField(newMeta.GetCreationTimestamp(), oldMeta.GetCreationTimestamp(), fldPath.Child(\"creationTimestamp\"))...)\n\tallErrs = append(allErrs, ValidateImmutableField(newMeta.GetDeletionTimestamp(), oldMeta.GetDeletionTimestamp(), fldPath.Child(\"deletionTimestamp\"))...)\n\tallErrs = append(allErrs, ValidateImmutableField(newMeta.GetDeletionGracePeriodSeconds(), oldMeta.GetDeletionGracePeriodSeconds(), fldPath.Child(\"deletionGracePeriodSeconds\"))...)\n\n\tallErrs = append(allErrs, v1validation.ValidateLabels(newMeta.GetLabels(), fldPath.Child(\"labels\"))...)\n\tallErrs = append(allErrs, ValidateAnnotations(newMeta.GetAnnotations(), fldPath.Child(\"annotations\"))...)\n\tallErrs = append(allErrs, ValidateOwnerReferences(newMeta.GetOwnerReferences(), fldPath.Child(\"ownerReferences\"))...)\n\tallErrs = append(allErrs, v1validation.ValidateManagedFields(newMeta.GetManagedFields(), fldPath.Child(\"managedFields\"))...)\n\n\treturn allErrs\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion/defaults.go",
    "content": "/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internalversion\n\nimport metav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n// SetListOptionsDefaults sets defaults on the provided ListOptions if applicable.\n//\n// TODO(#115478): once the watch-list fg is always on we register this function in the scheme (via AddTypeDefaultingFunc).\n// TODO(#115478): when the function is registered in the scheme remove all callers of this method.\nfunc SetListOptionsDefaults(obj *ListOptions, isWatchListFeatureEnabled bool) {\n\tif !isWatchListFeatureEnabled {\n\t\treturn\n\t}\n\tif obj.SendInitialEvents != nil || len(obj.ResourceVersionMatch) != 0 {\n\t\treturn\n\t}\n\tlegacy := obj.ResourceVersion == \"\" || obj.ResourceVersion == \"0\"\n\tif obj.Watch && legacy {\n\t\tturnOnInitialEvents := true\n\t\tobj.SendInitialEvents = &turnOnInitialEvents\n\t\tobj.ResourceVersionMatch = metav1.ResourceVersionMatchNotOlderThan\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion/doc.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:conversion-gen=k8s.io/apimachinery/pkg/apis/meta/v1\n\npackage internalversion // import \"k8s.io/apimachinery/pkg/apis/meta/internalversion\"\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion/register.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internalversion\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tmetav1beta1 \"k8s.io/apimachinery/pkg/apis/meta/v1beta1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name for this API.\nconst GroupName = \"meta.k8s.io\"\n\nvar (\n\t// TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.\n\t// localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.\n\tSchemeBuilder      runtime.SchemeBuilder\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal}\n\n// Kind takes an unqualified kind and returns a Group qualified GroupKind\nfunc Kind(kind string) schema.GroupKind {\n\treturn SchemeGroupVersion.WithKind(kind).GroupKind()\n}\n\n// addToGroupVersion registers common meta types into schemas.\nfunc addToGroupVersion(scheme *runtime.Scheme) error {\n\tif err := scheme.AddIgnoredConversionType(&metav1.TypeMeta{}, &metav1.TypeMeta{}); err != nil {\n\t\treturn err\n\t}\n\t// ListOptions is the only options struct which needs conversion (it exposes labels and fields\n\t// as selectors for convenience). The other types have only a single representation today.\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&ListOptions{},\n\t\t&metav1.GetOptions{},\n\t\t&metav1.DeleteOptions{},\n\t\t&metav1.CreateOptions{},\n\t\t&metav1.UpdateOptions{},\n\t)\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&metav1.Table{},\n\t\t&metav1.TableOptions{},\n\t\t&metav1beta1.PartialObjectMetadata{},\n\t\t&metav1beta1.PartialObjectMetadataList{},\n\t)\n\tif err := metav1beta1.AddMetaToScheme(scheme); err != nil {\n\t\treturn err\n\t}\n\tif err := metav1.AddMetaToScheme(scheme); err != nil {\n\t\treturn err\n\t}\n\t// Allow delete options to be decoded across all version in this scheme (we may want to be more clever than this)\n\tscheme.AddUnversionedTypes(SchemeGroupVersion,\n\t\t&metav1.DeleteOptions{},\n\t\t&metav1.CreateOptions{},\n\t\t&metav1.UpdateOptions{})\n\n\tmetav1.AddToGroupVersion(scheme, metav1.SchemeGroupVersion)\n\tif err := metav1beta1.RegisterConversions(scheme); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// Unlike other API groups, meta internal knows about all meta external versions, but keeps\n// the logic for conversion private.\nfunc init() {\n\tlocalSchemeBuilder.Register(addToGroupVersion)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion/types.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internalversion\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/fields\"\n\t\"k8s.io/apimachinery/pkg/labels\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// ListOptions is the query options to a standard REST list call.\ntype ListOptions struct {\n\tmetav1.TypeMeta\n\n\t// A selector based on labels\n\tLabelSelector labels.Selector\n\t// A selector based on fields\n\tFieldSelector fields.Selector\n\t// If true, watch for changes to this list\n\tWatch bool\n\t// allowWatchBookmarks requests watch events with type \"BOOKMARK\".\n\t// Servers that do not implement bookmarks may ignore this flag and\n\t// bookmarks are sent at the server's discretion. Clients should not\n\t// assume bookmarks are returned at any specific interval, nor may they\n\t// assume the server will send any BOOKMARK event during a session.\n\t// If this is not a watch, this field is ignored.\n\t// If the feature gate WatchBookmarks is not enabled in apiserver,\n\t// this field is ignored.\n\tAllowWatchBookmarks bool\n\t// resourceVersion sets a constraint on what resource versions a request may be served from.\n\t// See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for\n\t// details.\n\tResourceVersion string\n\t// resourceVersionMatch determines how resourceVersion is applied to list calls.\n\t// It is highly recommended that resourceVersionMatch be set for list calls where\n\t// resourceVersion is set.\n\t// See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for\n\t// details.\n\tResourceVersionMatch metav1.ResourceVersionMatch\n\n\t// Timeout for the list/watch call.\n\tTimeoutSeconds *int64\n\t// Limit specifies the maximum number of results to return from the server. The server may\n\t// not support this field on all resource types, but if it does and more results remain it\n\t// will set the continue field on the returned list object.\n\tLimit int64\n\t// Continue is a token returned by the server that lets a client retrieve chunks of results\n\t// from the server by specifying limit. The server may reject requests for continuation tokens\n\t// it does not recognize and will return a 410 error if the token can no longer be used because\n\t// it has expired.\n\tContinue string\n\n\t// `sendInitialEvents=true` may be set together with `watch=true`.\n\t// In that case, the watch stream will begin with synthetic events to\n\t// produce the current state of objects in the collection. Once all such\n\t// events have been sent, a synthetic \"Bookmark\" event  will be sent.\n\t// The bookmark will report the ResourceVersion (RV) corresponding to the\n\t// set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation.\n\t// Afterwards, the watch stream will proceed as usual, sending watch events\n\t// corresponding to changes (subsequent to the RV) to objects watched.\n\t//\n\t// When `sendInitialEvents` option is set, we require `resourceVersionMatch`\n\t// option to also be set. The semantic of the watch request is as following:\n\t// - `resourceVersionMatch` = NotOlderThan\n\t//   is interpreted as \"data at least as new as the provided `resourceVersion`\"\n\t//   and the bookmark event is send when the state is synced\n\t//   to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n\t//   If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n\t//   bookmark event is send when the state is synced at least to the moment\n\t//   when request started being processed.\n\t// - `resourceVersionMatch` set to any other value or unset\n\t//   Invalid error is returned.\n\t//\n\t// Defaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward\n\t// compatibility reasons) and to false otherwise.\n\tSendInitialEvents *bool\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// List holds a list of objects, which may not be known by the server.\ntype List struct {\n\tmetav1.TypeMeta\n\t// +optional\n\tmetav1.ListMeta\n\n\tItems []runtime.Object\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion/validation/validation.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage validation\n\nimport (\n\t\"fmt\"\n\n\t\"k8s.io/apimachinery/pkg/apis/meta/internalversion\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/util/validation/field\"\n)\n\n// ValidateListOptions returns all validation errors found while validating the ListOptions.\nfunc ValidateListOptions(options *internalversion.ListOptions, isWatchListFeatureEnabled bool) field.ErrorList {\n\tif options.Watch {\n\t\treturn validateWatchOptions(options, isWatchListFeatureEnabled)\n\t}\n\tallErrs := field.ErrorList{}\n\tif match := options.ResourceVersionMatch; len(match) > 0 {\n\t\tif len(options.ResourceVersion) == 0 {\n\t\t\tallErrs = append(allErrs, field.Forbidden(field.NewPath(\"resourceVersionMatch\"), \"resourceVersionMatch is forbidden unless resourceVersion is provided\"))\n\t\t}\n\t\tif len(options.Continue) > 0 {\n\t\t\tallErrs = append(allErrs, field.Forbidden(field.NewPath(\"resourceVersionMatch\"), \"resourceVersionMatch is forbidden when continue is provided\"))\n\t\t}\n\t\tif match != metav1.ResourceVersionMatchExact && match != metav1.ResourceVersionMatchNotOlderThan {\n\t\t\tallErrs = append(allErrs, field.NotSupported(field.NewPath(\"resourceVersionMatch\"), match, []string{string(metav1.ResourceVersionMatchExact), string(metav1.ResourceVersionMatchNotOlderThan), \"\"}))\n\t\t}\n\t\tif match == metav1.ResourceVersionMatchExact && options.ResourceVersion == \"0\" {\n\t\t\tallErrs = append(allErrs, field.Forbidden(field.NewPath(\"resourceVersionMatch\"), \"resourceVersionMatch \\\"exact\\\" is forbidden for resourceVersion \\\"0\\\"\"))\n\t\t}\n\t}\n\tif options.SendInitialEvents != nil {\n\t\tallErrs = append(allErrs, field.Forbidden(field.NewPath(\"sendInitialEvents\"), \"sendInitialEvents is forbidden for list\"))\n\t}\n\treturn allErrs\n}\n\nfunc validateWatchOptions(options *internalversion.ListOptions, isWatchListFeatureEnabled bool) field.ErrorList {\n\tallErrs := field.ErrorList{}\n\tmatch := options.ResourceVersionMatch\n\tif options.SendInitialEvents != nil {\n\t\tif match != metav1.ResourceVersionMatchNotOlderThan {\n\t\t\tallErrs = append(allErrs, field.Forbidden(field.NewPath(\"resourceVersionMatch\"), fmt.Sprintf(\"sendInitialEvents requires setting resourceVersionMatch to %s\", metav1.ResourceVersionMatchNotOlderThan)))\n\t\t}\n\t\tif !isWatchListFeatureEnabled {\n\t\t\tallErrs = append(allErrs, field.Forbidden(field.NewPath(\"sendInitialEvents\"), \"sendInitialEvents is forbidden for watch unless the WatchList feature gate is enabled\"))\n\t\t}\n\t}\n\tif len(match) > 0 {\n\t\tif options.SendInitialEvents == nil {\n\t\t\tallErrs = append(allErrs, field.Forbidden(field.NewPath(\"resourceVersionMatch\"), \"resourceVersionMatch is forbidden for watch unless sendInitialEvents is provided\"))\n\t\t}\n\t\tif match != metav1.ResourceVersionMatchNotOlderThan {\n\t\t\tallErrs = append(allErrs, field.NotSupported(field.NewPath(\"resourceVersionMatch\"), match, []string{string(metav1.ResourceVersionMatchNotOlderThan)}))\n\t\t}\n\t\tif len(options.Continue) > 0 {\n\t\t\tallErrs = append(allErrs, field.Forbidden(field.NewPath(\"resourceVersionMatch\"), \"resourceVersionMatch is forbidden when continue is provided\"))\n\t\t}\n\t}\n\treturn allErrs\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion/zz_generated.conversion.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by conversion-gen. DO NOT EDIT.\n\npackage internalversion\n\nimport (\n\tunsafe \"unsafe\"\n\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tconversion \"k8s.io/apimachinery/pkg/conversion\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\nfunc init() {\n\tlocalSchemeBuilder.Register(RegisterConversions)\n}\n\n// RegisterConversions adds conversion functions to the given scheme.\n// Public to allow building arbitrary schemes.\nfunc RegisterConversions(s *runtime.Scheme) error {\n\tif err := s.AddGeneratedConversionFunc((*List)(nil), (*v1.List)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_internalversion_List_To_v1_List(a.(*List), b.(*v1.List), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*v1.List)(nil), (*List)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_v1_List_To_internalversion_List(a.(*v1.List), b.(*List), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*ListOptions)(nil), (*v1.ListOptions)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_internalversion_ListOptions_To_v1_ListOptions(a.(*ListOptions), b.(*v1.ListOptions), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*v1.ListOptions)(nil), (*ListOptions)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_v1_ListOptions_To_internalversion_ListOptions(a.(*v1.ListOptions), b.(*ListOptions), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc autoConvert_internalversion_List_To_v1_List(in *List, out *v1.List, s conversion.Scope) error {\n\tout.ListMeta = in.ListMeta\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]runtime.RawExtension, len(*in))\n\t\tfor i := range *in {\n\t\t\tif err := runtime.Convert_runtime_Object_To_runtime_RawExtension(&(*in)[i], &(*out)[i], s); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t} else {\n\t\tout.Items = nil\n\t}\n\treturn nil\n}\n\n// Convert_internalversion_List_To_v1_List is an autogenerated conversion function.\nfunc Convert_internalversion_List_To_v1_List(in *List, out *v1.List, s conversion.Scope) error {\n\treturn autoConvert_internalversion_List_To_v1_List(in, out, s)\n}\n\nfunc autoConvert_v1_List_To_internalversion_List(in *v1.List, out *List, s conversion.Scope) error {\n\tout.ListMeta = in.ListMeta\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]runtime.Object, len(*in))\n\t\tfor i := range *in {\n\t\t\tif err := runtime.Convert_runtime_RawExtension_To_runtime_Object(&(*in)[i], &(*out)[i], s); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t} else {\n\t\tout.Items = nil\n\t}\n\treturn nil\n}\n\n// Convert_v1_List_To_internalversion_List is an autogenerated conversion function.\nfunc Convert_v1_List_To_internalversion_List(in *v1.List, out *List, s conversion.Scope) error {\n\treturn autoConvert_v1_List_To_internalversion_List(in, out, s)\n}\n\nfunc autoConvert_internalversion_ListOptions_To_v1_ListOptions(in *ListOptions, out *v1.ListOptions, s conversion.Scope) error {\n\tif err := v1.Convert_labels_Selector_To_string(&in.LabelSelector, &out.LabelSelector, s); err != nil {\n\t\treturn err\n\t}\n\tif err := v1.Convert_fields_Selector_To_string(&in.FieldSelector, &out.FieldSelector, s); err != nil {\n\t\treturn err\n\t}\n\tout.Watch = in.Watch\n\tout.AllowWatchBookmarks = in.AllowWatchBookmarks\n\tout.ResourceVersion = in.ResourceVersion\n\tout.ResourceVersionMatch = v1.ResourceVersionMatch(in.ResourceVersionMatch)\n\tout.TimeoutSeconds = (*int64)(unsafe.Pointer(in.TimeoutSeconds))\n\tout.Limit = in.Limit\n\tout.Continue = in.Continue\n\tout.SendInitialEvents = (*bool)(unsafe.Pointer(in.SendInitialEvents))\n\treturn nil\n}\n\n// Convert_internalversion_ListOptions_To_v1_ListOptions is an autogenerated conversion function.\nfunc Convert_internalversion_ListOptions_To_v1_ListOptions(in *ListOptions, out *v1.ListOptions, s conversion.Scope) error {\n\treturn autoConvert_internalversion_ListOptions_To_v1_ListOptions(in, out, s)\n}\n\nfunc autoConvert_v1_ListOptions_To_internalversion_ListOptions(in *v1.ListOptions, out *ListOptions, s conversion.Scope) error {\n\tif err := v1.Convert_string_To_labels_Selector(&in.LabelSelector, &out.LabelSelector, s); err != nil {\n\t\treturn err\n\t}\n\tif err := v1.Convert_string_To_fields_Selector(&in.FieldSelector, &out.FieldSelector, s); err != nil {\n\t\treturn err\n\t}\n\tout.Watch = in.Watch\n\tout.AllowWatchBookmarks = in.AllowWatchBookmarks\n\tout.ResourceVersion = in.ResourceVersion\n\tout.ResourceVersionMatch = v1.ResourceVersionMatch(in.ResourceVersionMatch)\n\tout.TimeoutSeconds = (*int64)(unsafe.Pointer(in.TimeoutSeconds))\n\tout.Limit = in.Limit\n\tout.Continue = in.Continue\n\tout.SendInitialEvents = (*bool)(unsafe.Pointer(in.SendInitialEvents))\n\treturn nil\n}\n\n// Convert_v1_ListOptions_To_internalversion_ListOptions is an autogenerated conversion function.\nfunc Convert_v1_ListOptions_To_internalversion_ListOptions(in *v1.ListOptions, out *ListOptions, s conversion.Scope) error {\n\treturn autoConvert_v1_ListOptions_To_internalversion_ListOptions(in, out, s)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage internalversion\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *List) DeepCopyInto(out *List) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]runtime.Object, len(*in))\n\t\tfor i := range *in {\n\t\t\tif (*in)[i] != nil {\n\t\t\t\t(*out)[i] = (*in)[i].DeepCopyObject()\n\t\t\t}\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new List.\nfunc (in *List) DeepCopy() *List {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(List)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *List) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ListOptions) DeepCopyInto(out *ListOptions) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tif in.LabelSelector != nil {\n\t\tout.LabelSelector = in.LabelSelector.DeepCopySelector()\n\t}\n\tif in.FieldSelector != nil {\n\t\tout.FieldSelector = in.FieldSelector.DeepCopySelector()\n\t}\n\tif in.TimeoutSeconds != nil {\n\t\tin, out := &in.TimeoutSeconds, &out.TimeoutSeconds\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.SendInitialEvents != nil {\n\t\tin, out := &in.SendInitialEvents, &out.SendInitialEvents\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListOptions.\nfunc (in *ListOptions) DeepCopy() *ListOptions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ListOptions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ListOptions) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/OWNERS",
    "content": "# See the OWNERS docs at https://go.k8s.io/owners\n\nreviewers:\n  - thockin\n  - smarterclayton\n  - wojtek-t\n  - deads2k\n  - caesarxuchao\n  - liggitt\n  - sttts\n  - luxas\n  - janetkuo\n  - justinsb\n  - soltysh\n  - dims\nemeritus_reviewers:\n  - ncdc\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/controller_ref.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/utils/ptr\"\n)\n\n// IsControlledBy checks if the  object has a controllerRef set to the given owner\nfunc IsControlledBy(obj Object, owner Object) bool {\n\tref := GetControllerOfNoCopy(obj)\n\tif ref == nil {\n\t\treturn false\n\t}\n\treturn ref.UID == owner.GetUID()\n}\n\n// GetControllerOf returns a pointer to a copy of the controllerRef if controllee has a controller\nfunc GetControllerOf(controllee Object) *OwnerReference {\n\tref := GetControllerOfNoCopy(controllee)\n\tif ref == nil {\n\t\treturn nil\n\t}\n\tcp := *ref\n\tcp.Controller = ptr.To(*ref.Controller)\n\tif ref.BlockOwnerDeletion != nil {\n\t\tcp.BlockOwnerDeletion = ptr.To(*ref.BlockOwnerDeletion)\n\t}\n\treturn &cp\n}\n\n// GetControllerOfNoCopy returns a pointer to the controllerRef if controllee has a controller\nfunc GetControllerOfNoCopy(controllee Object) *OwnerReference {\n\trefs := controllee.GetOwnerReferences()\n\tfor i := range refs {\n\t\tif refs[i].Controller != nil && *refs[i].Controller {\n\t\t\treturn &refs[i]\n\t\t}\n\t}\n\treturn nil\n}\n\n// NewControllerRef creates an OwnerReference pointing to the given owner.\nfunc NewControllerRef(owner Object, gvk schema.GroupVersionKind) *OwnerReference {\n\treturn &OwnerReference{\n\t\tAPIVersion:         gvk.GroupVersion().String(),\n\t\tKind:               gvk.Kind,\n\t\tName:               owner.GetName(),\n\t\tUID:                owner.GetUID(),\n\t\tBlockOwnerDeletion: ptr.To(true),\n\t\tController:         ptr.To(true),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/conversion.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"fmt\"\n\t\"net/url\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"k8s.io/apimachinery/pkg/api/resource\"\n\t\"k8s.io/apimachinery/pkg/conversion\"\n\t\"k8s.io/apimachinery/pkg/fields\"\n\t\"k8s.io/apimachinery/pkg/labels\"\n\t\"k8s.io/apimachinery/pkg/types\"\n\t\"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\nfunc Convert_Pointer_float64_To_float64(in **float64, out *float64, s conversion.Scope) error {\n\tif *in == nil {\n\t\t*out = 0\n\t\treturn nil\n\t}\n\t*out = float64(**in)\n\treturn nil\n}\n\nfunc Convert_float64_To_Pointer_float64(in *float64, out **float64, s conversion.Scope) error {\n\ttemp := float64(*in)\n\t*out = &temp\n\treturn nil\n}\n\nfunc Convert_Pointer_int32_To_int32(in **int32, out *int32, s conversion.Scope) error {\n\tif *in == nil {\n\t\t*out = 0\n\t\treturn nil\n\t}\n\t*out = int32(**in)\n\treturn nil\n}\n\nfunc Convert_int32_To_Pointer_int32(in *int32, out **int32, s conversion.Scope) error {\n\ttemp := int32(*in)\n\t*out = &temp\n\treturn nil\n}\n\nfunc Convert_Pointer_int64_To_int64(in **int64, out *int64, s conversion.Scope) error {\n\tif *in == nil {\n\t\t*out = 0\n\t\treturn nil\n\t}\n\t*out = int64(**in)\n\treturn nil\n}\n\nfunc Convert_int64_To_Pointer_int64(in *int64, out **int64, s conversion.Scope) error {\n\ttemp := int64(*in)\n\t*out = &temp\n\treturn nil\n}\n\nfunc Convert_Pointer_int64_To_int(in **int64, out *int, s conversion.Scope) error {\n\tif *in == nil {\n\t\t*out = 0\n\t\treturn nil\n\t}\n\t*out = int(**in)\n\treturn nil\n}\n\nfunc Convert_int_To_Pointer_int64(in *int, out **int64, s conversion.Scope) error {\n\ttemp := int64(*in)\n\t*out = &temp\n\treturn nil\n}\n\nfunc Convert_Pointer_string_To_string(in **string, out *string, s conversion.Scope) error {\n\tif *in == nil {\n\t\t*out = \"\"\n\t\treturn nil\n\t}\n\t*out = **in\n\treturn nil\n}\n\nfunc Convert_string_To_Pointer_string(in *string, out **string, s conversion.Scope) error {\n\tif in == nil {\n\t\tstringVar := \"\"\n\t\t*out = &stringVar\n\t\treturn nil\n\t}\n\t*out = in\n\treturn nil\n}\n\nfunc Convert_Pointer_bool_To_bool(in **bool, out *bool, s conversion.Scope) error {\n\tif *in == nil {\n\t\t*out = false\n\t\treturn nil\n\t}\n\t*out = **in\n\treturn nil\n}\n\nfunc Convert_bool_To_Pointer_bool(in *bool, out **bool, s conversion.Scope) error {\n\tif in == nil {\n\t\tboolVar := false\n\t\t*out = &boolVar\n\t\treturn nil\n\t}\n\t*out = in\n\treturn nil\n}\n\n// +k8s:conversion-fn=drop\nfunc Convert_v1_TypeMeta_To_v1_TypeMeta(in, out *TypeMeta, s conversion.Scope) error {\n\t// These values are explicitly not copied\n\t//out.APIVersion = in.APIVersion\n\t//out.Kind = in.Kind\n\treturn nil\n}\n\n// +k8s:conversion-fn=copy-only\nfunc Convert_v1_ListMeta_To_v1_ListMeta(in, out *ListMeta, s conversion.Scope) error {\n\t*out = *in\n\treturn nil\n}\n\n// +k8s:conversion-fn=copy-only\nfunc Convert_v1_DeleteOptions_To_v1_DeleteOptions(in, out *DeleteOptions, s conversion.Scope) error {\n\t*out = *in\n\treturn nil\n}\n\n// +k8s:conversion-fn=copy-only\nfunc Convert_intstr_IntOrString_To_intstr_IntOrString(in, out *intstr.IntOrString, s conversion.Scope) error {\n\t*out = *in\n\treturn nil\n}\n\nfunc Convert_Pointer_intstr_IntOrString_To_intstr_IntOrString(in **intstr.IntOrString, out *intstr.IntOrString, s conversion.Scope) error {\n\tif *in == nil {\n\t\t*out = intstr.IntOrString{} // zero value\n\t\treturn nil\n\t}\n\t*out = **in // copy\n\treturn nil\n}\n\nfunc Convert_intstr_IntOrString_To_Pointer_intstr_IntOrString(in *intstr.IntOrString, out **intstr.IntOrString, s conversion.Scope) error {\n\ttemp := *in // copy\n\t*out = &temp\n\treturn nil\n}\n\n// +k8s:conversion-fn=copy-only\nfunc Convert_v1_Time_To_v1_Time(in *Time, out *Time, s conversion.Scope) error {\n\t// Cannot deep copy these, because time.Time has unexported fields.\n\t*out = *in\n\treturn nil\n}\n\n// +k8s:conversion-fn=copy-only\nfunc Convert_v1_MicroTime_To_v1_MicroTime(in *MicroTime, out *MicroTime, s conversion.Scope) error {\n\t// Cannot deep copy these, because time.Time has unexported fields.\n\t*out = *in\n\treturn nil\n}\n\nfunc Convert_Pointer_v1_Duration_To_v1_Duration(in **Duration, out *Duration, s conversion.Scope) error {\n\tif *in == nil {\n\t\t*out = Duration{} // zero duration\n\t\treturn nil\n\t}\n\t*out = **in // copy\n\treturn nil\n}\n\nfunc Convert_v1_Duration_To_Pointer_v1_Duration(in *Duration, out **Duration, s conversion.Scope) error {\n\ttemp := *in //copy\n\t*out = &temp\n\treturn nil\n}\n\n// Convert_Slice_string_To_v1_Time allows converting a URL query parameter value\nfunc Convert_Slice_string_To_v1_Time(in *[]string, out *Time, s conversion.Scope) error {\n\tstr := \"\"\n\tif len(*in) > 0 {\n\t\tstr = (*in)[0]\n\t}\n\treturn out.UnmarshalQueryParameter(str)\n}\n\nfunc Convert_Slice_string_To_Pointer_v1_Time(in *[]string, out **Time, s conversion.Scope) error {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tstr := \"\"\n\tif len(*in) > 0 {\n\t\tstr = (*in)[0]\n\t}\n\ttemp := Time{}\n\tif err := temp.UnmarshalQueryParameter(str); err != nil {\n\t\treturn err\n\t}\n\t*out = &temp\n\treturn nil\n}\n\nfunc Convert_string_To_labels_Selector(in *string, out *labels.Selector, s conversion.Scope) error {\n\tselector, err := labels.Parse(*in)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*out = selector\n\treturn nil\n}\n\nfunc Convert_string_To_fields_Selector(in *string, out *fields.Selector, s conversion.Scope) error {\n\tselector, err := fields.ParseSelector(*in)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*out = selector\n\treturn nil\n}\n\nfunc Convert_labels_Selector_To_string(in *labels.Selector, out *string, s conversion.Scope) error {\n\tif *in == nil {\n\t\treturn nil\n\t}\n\t*out = (*in).String()\n\treturn nil\n}\n\nfunc Convert_fields_Selector_To_string(in *fields.Selector, out *string, s conversion.Scope) error {\n\tif *in == nil {\n\t\treturn nil\n\t}\n\t*out = (*in).String()\n\treturn nil\n}\n\n// +k8s:conversion-fn=copy-only\nfunc Convert_resource_Quantity_To_resource_Quantity(in *resource.Quantity, out *resource.Quantity, s conversion.Scope) error {\n\t*out = *in\n\treturn nil\n}\n\nfunc Convert_Map_string_To_string_To_v1_LabelSelector(in *map[string]string, out *LabelSelector, s conversion.Scope) error {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tfor labelKey, labelValue := range *in {\n\t\tAddLabelToSelector(out, labelKey, labelValue)\n\t}\n\treturn nil\n}\n\nfunc Convert_v1_LabelSelector_To_Map_string_To_string(in *LabelSelector, out *map[string]string, s conversion.Scope) error {\n\tvar err error\n\t*out, err = LabelSelectorAsMap(in)\n\treturn err\n}\n\n// Convert_Slice_string_To_Slice_int32 converts multiple query parameters or\n// a single query parameter with a comma delimited value to multiple int32.\n// This is used for port forwarding which needs the ports as int32.\nfunc Convert_Slice_string_To_Slice_int32(in *[]string, out *[]int32, s conversion.Scope) error {\n\tfor _, s := range *in {\n\t\tfor _, v := range strings.Split(s, \",\") {\n\t\t\tx, err := strconv.ParseUint(v, 10, 16)\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"cannot convert to []int32: %v\", err)\n\t\t\t}\n\t\t\t*out = append(*out, int32(x))\n\t\t}\n\t}\n\treturn nil\n}\n\n// Convert_Slice_string_To_Pointer_v1_DeletionPropagation allows converting a URL query parameter propagationPolicy\nfunc Convert_Slice_string_To_Pointer_v1_DeletionPropagation(in *[]string, out **DeletionPropagation, s conversion.Scope) error {\n\tvar str string\n\tif len(*in) > 0 {\n\t\tstr = (*in)[0]\n\t} else {\n\t\tstr = \"\"\n\t}\n\ttemp := DeletionPropagation(str)\n\t*out = &temp\n\treturn nil\n}\n\n// Convert_Slice_string_To_v1_IncludeObjectPolicy allows converting a URL query parameter value\nfunc Convert_Slice_string_To_v1_IncludeObjectPolicy(in *[]string, out *IncludeObjectPolicy, s conversion.Scope) error {\n\tif len(*in) > 0 {\n\t\t*out = IncludeObjectPolicy((*in)[0])\n\t}\n\treturn nil\n}\n\n// Convert_url_Values_To_v1_DeleteOptions allows converting a URL to DeleteOptions.\nfunc Convert_url_Values_To_v1_DeleteOptions(in *url.Values, out *DeleteOptions, s conversion.Scope) error {\n\tif err := autoConvert_url_Values_To_v1_DeleteOptions(in, out, s); err != nil {\n\t\treturn err\n\t}\n\n\tuid := types.UID(\"\")\n\tif values, ok := (*in)[\"uid\"]; ok && len(values) > 0 {\n\t\tuid = types.UID(values[0])\n\t}\n\n\tresourceVersion := \"\"\n\tif values, ok := (*in)[\"resourceVersion\"]; ok && len(values) > 0 {\n\t\tresourceVersion = values[0]\n\t}\n\n\tif len(uid) > 0 || len(resourceVersion) > 0 {\n\t\tif out.Preconditions == nil {\n\t\t\tout.Preconditions = &Preconditions{}\n\t\t}\n\t\tif len(uid) > 0 {\n\t\t\tout.Preconditions.UID = &uid\n\t\t}\n\t\tif len(resourceVersion) > 0 {\n\t\t\tout.Preconditions.ResourceVersion = &resourceVersion\n\t\t}\n\t}\n\treturn nil\n}\n\n// Convert_Slice_string_To_v1_ResourceVersionMatch allows converting a URL query parameter to ResourceVersionMatch\nfunc Convert_Slice_string_To_v1_ResourceVersionMatch(in *[]string, out *ResourceVersionMatch, s conversion.Scope) error {\n\tif len(*in) > 0 {\n\t\t*out = ResourceVersionMatch((*in)[0])\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/deepcopy.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"k8s.io/apimachinery/pkg/runtime\"\n)\n\nfunc (in *TableRow) DeepCopy() *TableRow {\n\tif in == nil {\n\t\treturn nil\n\t}\n\n\tout := new(TableRow)\n\n\tif in.Cells != nil {\n\t\tout.Cells = make([]interface{}, len(in.Cells))\n\t\tfor i := range in.Cells {\n\t\t\tout.Cells[i] = runtime.DeepCopyJSONValue(in.Cells[i])\n\t\t}\n\t}\n\n\tif in.Conditions != nil {\n\t\tout.Conditions = make([]TableRowCondition, len(in.Conditions))\n\t\tfor i := range in.Conditions {\n\t\t\tin.Conditions[i].DeepCopyInto(&out.Conditions[i])\n\t\t}\n\t}\n\n\tin.Object.DeepCopyInto(&out.Object)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/doc.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:conversion-gen=false\n// +k8s:deepcopy-gen=package\n// +k8s:openapi-gen=true\n// +k8s:defaulter-gen=TypeMeta\n\n// +groupName=meta.k8s.io\n\npackage v1 // import \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/duration.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"encoding/json\"\n\t\"time\"\n)\n\n// Duration is a wrapper around time.Duration which supports correct\n// marshaling to YAML and JSON. In particular, it marshals into strings, which\n// can be used as map keys in json.\ntype Duration struct {\n\ttime.Duration `protobuf:\"varint,1,opt,name=duration,casttype=time.Duration\"`\n}\n\n// UnmarshalJSON implements the json.Unmarshaller interface.\nfunc (d *Duration) UnmarshalJSON(b []byte) error {\n\tvar str string\n\terr := json.Unmarshal(b, &str)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tpd, err := time.ParseDuration(str)\n\tif err != nil {\n\t\treturn err\n\t}\n\td.Duration = pd\n\treturn nil\n}\n\n// MarshalJSON implements the json.Marshaler interface.\nfunc (d Duration) MarshalJSON() ([]byte, error) {\n\treturn json.Marshal(d.Duration.String())\n}\n\n// ToUnstructured implements the value.UnstructuredConverter interface.\nfunc (d Duration) ToUnstructured() interface{} {\n\treturn d.Duration.String()\n}\n\n// OpenAPISchemaType is used by the kube-openapi generator when constructing\n// the OpenAPI spec of this type.\n//\n// See: https://github.com/kubernetes/kube-openapi/tree/master/pkg/generators\nfunc (_ Duration) OpenAPISchemaType() []string { return []string{\"string\"} }\n\n// OpenAPISchemaFormat is used by the kube-openapi generator when constructing\n// the OpenAPI spec of this type.\nfunc (_ Duration) OpenAPISchemaFormat() string { return \"\" }\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\n\npackage v1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tgithub_com_gogo_protobuf_sortkeys \"github.com/gogo/protobuf/sortkeys\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n\ttime \"time\"\n\n\tk8s_io_apimachinery_pkg_types \"k8s.io/apimachinery/pkg/types\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\nvar _ = time.Kitchen\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *APIGroup) Reset()      { *m = APIGroup{} }\nfunc (*APIGroup) ProtoMessage() {}\nfunc (*APIGroup) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{0}\n}\nfunc (m *APIGroup) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *APIGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *APIGroup) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_APIGroup.Merge(m, src)\n}\nfunc (m *APIGroup) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *APIGroup) XXX_DiscardUnknown() {\n\txxx_messageInfo_APIGroup.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_APIGroup proto.InternalMessageInfo\n\nfunc (m *APIGroupList) Reset()      { *m = APIGroupList{} }\nfunc (*APIGroupList) ProtoMessage() {}\nfunc (*APIGroupList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{1}\n}\nfunc (m *APIGroupList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *APIGroupList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *APIGroupList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_APIGroupList.Merge(m, src)\n}\nfunc (m *APIGroupList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *APIGroupList) XXX_DiscardUnknown() {\n\txxx_messageInfo_APIGroupList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_APIGroupList proto.InternalMessageInfo\n\nfunc (m *APIResource) Reset()      { *m = APIResource{} }\nfunc (*APIResource) ProtoMessage() {}\nfunc (*APIResource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{2}\n}\nfunc (m *APIResource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *APIResource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *APIResource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_APIResource.Merge(m, src)\n}\nfunc (m *APIResource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *APIResource) XXX_DiscardUnknown() {\n\txxx_messageInfo_APIResource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_APIResource proto.InternalMessageInfo\n\nfunc (m *APIResourceList) Reset()      { *m = APIResourceList{} }\nfunc (*APIResourceList) ProtoMessage() {}\nfunc (*APIResourceList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{3}\n}\nfunc (m *APIResourceList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *APIResourceList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *APIResourceList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_APIResourceList.Merge(m, src)\n}\nfunc (m *APIResourceList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *APIResourceList) XXX_DiscardUnknown() {\n\txxx_messageInfo_APIResourceList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_APIResourceList proto.InternalMessageInfo\n\nfunc (m *APIVersions) Reset()      { *m = APIVersions{} }\nfunc (*APIVersions) ProtoMessage() {}\nfunc (*APIVersions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{4}\n}\nfunc (m *APIVersions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *APIVersions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *APIVersions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_APIVersions.Merge(m, src)\n}\nfunc (m *APIVersions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *APIVersions) XXX_DiscardUnknown() {\n\txxx_messageInfo_APIVersions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_APIVersions proto.InternalMessageInfo\n\nfunc (m *ApplyOptions) Reset()      { *m = ApplyOptions{} }\nfunc (*ApplyOptions) ProtoMessage() {}\nfunc (*ApplyOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{5}\n}\nfunc (m *ApplyOptions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ApplyOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ApplyOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ApplyOptions.Merge(m, src)\n}\nfunc (m *ApplyOptions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ApplyOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_ApplyOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ApplyOptions proto.InternalMessageInfo\n\nfunc (m *Condition) Reset()      { *m = Condition{} }\nfunc (*Condition) ProtoMessage() {}\nfunc (*Condition) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{6}\n}\nfunc (m *Condition) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Condition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Condition) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Condition.Merge(m, src)\n}\nfunc (m *Condition) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Condition) XXX_DiscardUnknown() {\n\txxx_messageInfo_Condition.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Condition proto.InternalMessageInfo\n\nfunc (m *CreateOptions) Reset()      { *m = CreateOptions{} }\nfunc (*CreateOptions) ProtoMessage() {}\nfunc (*CreateOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{7}\n}\nfunc (m *CreateOptions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *CreateOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *CreateOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_CreateOptions.Merge(m, src)\n}\nfunc (m *CreateOptions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *CreateOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_CreateOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_CreateOptions proto.InternalMessageInfo\n\nfunc (m *DeleteOptions) Reset()      { *m = DeleteOptions{} }\nfunc (*DeleteOptions) ProtoMessage() {}\nfunc (*DeleteOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{8}\n}\nfunc (m *DeleteOptions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *DeleteOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *DeleteOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_DeleteOptions.Merge(m, src)\n}\nfunc (m *DeleteOptions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *DeleteOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_DeleteOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_DeleteOptions proto.InternalMessageInfo\n\nfunc (m *Duration) Reset()      { *m = Duration{} }\nfunc (*Duration) ProtoMessage() {}\nfunc (*Duration) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{9}\n}\nfunc (m *Duration) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Duration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Duration) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Duration.Merge(m, src)\n}\nfunc (m *Duration) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Duration) XXX_DiscardUnknown() {\n\txxx_messageInfo_Duration.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Duration proto.InternalMessageInfo\n\nfunc (m *FieldSelectorRequirement) Reset()      { *m = FieldSelectorRequirement{} }\nfunc (*FieldSelectorRequirement) ProtoMessage() {}\nfunc (*FieldSelectorRequirement) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{10}\n}\nfunc (m *FieldSelectorRequirement) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FieldSelectorRequirement) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FieldSelectorRequirement) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FieldSelectorRequirement.Merge(m, src)\n}\nfunc (m *FieldSelectorRequirement) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FieldSelectorRequirement) XXX_DiscardUnknown() {\n\txxx_messageInfo_FieldSelectorRequirement.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FieldSelectorRequirement proto.InternalMessageInfo\n\nfunc (m *FieldsV1) Reset()      { *m = FieldsV1{} }\nfunc (*FieldsV1) ProtoMessage() {}\nfunc (*FieldsV1) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{11}\n}\nfunc (m *FieldsV1) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *FieldsV1) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *FieldsV1) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_FieldsV1.Merge(m, src)\n}\nfunc (m *FieldsV1) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *FieldsV1) XXX_DiscardUnknown() {\n\txxx_messageInfo_FieldsV1.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_FieldsV1 proto.InternalMessageInfo\n\nfunc (m *GetOptions) Reset()      { *m = GetOptions{} }\nfunc (*GetOptions) ProtoMessage() {}\nfunc (*GetOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{12}\n}\nfunc (m *GetOptions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *GetOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *GetOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_GetOptions.Merge(m, src)\n}\nfunc (m *GetOptions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *GetOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_GetOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_GetOptions proto.InternalMessageInfo\n\nfunc (m *GroupKind) Reset()      { *m = GroupKind{} }\nfunc (*GroupKind) ProtoMessage() {}\nfunc (*GroupKind) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{13}\n}\nfunc (m *GroupKind) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *GroupKind) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *GroupKind) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_GroupKind.Merge(m, src)\n}\nfunc (m *GroupKind) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *GroupKind) XXX_DiscardUnknown() {\n\txxx_messageInfo_GroupKind.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_GroupKind proto.InternalMessageInfo\n\nfunc (m *GroupResource) Reset()      { *m = GroupResource{} }\nfunc (*GroupResource) ProtoMessage() {}\nfunc (*GroupResource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{14}\n}\nfunc (m *GroupResource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *GroupResource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *GroupResource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_GroupResource.Merge(m, src)\n}\nfunc (m *GroupResource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *GroupResource) XXX_DiscardUnknown() {\n\txxx_messageInfo_GroupResource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_GroupResource proto.InternalMessageInfo\n\nfunc (m *GroupVersion) Reset()      { *m = GroupVersion{} }\nfunc (*GroupVersion) ProtoMessage() {}\nfunc (*GroupVersion) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{15}\n}\nfunc (m *GroupVersion) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *GroupVersion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *GroupVersion) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_GroupVersion.Merge(m, src)\n}\nfunc (m *GroupVersion) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *GroupVersion) XXX_DiscardUnknown() {\n\txxx_messageInfo_GroupVersion.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_GroupVersion proto.InternalMessageInfo\n\nfunc (m *GroupVersionForDiscovery) Reset()      { *m = GroupVersionForDiscovery{} }\nfunc (*GroupVersionForDiscovery) ProtoMessage() {}\nfunc (*GroupVersionForDiscovery) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{16}\n}\nfunc (m *GroupVersionForDiscovery) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *GroupVersionForDiscovery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *GroupVersionForDiscovery) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_GroupVersionForDiscovery.Merge(m, src)\n}\nfunc (m *GroupVersionForDiscovery) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *GroupVersionForDiscovery) XXX_DiscardUnknown() {\n\txxx_messageInfo_GroupVersionForDiscovery.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_GroupVersionForDiscovery proto.InternalMessageInfo\n\nfunc (m *GroupVersionKind) Reset()      { *m = GroupVersionKind{} }\nfunc (*GroupVersionKind) ProtoMessage() {}\nfunc (*GroupVersionKind) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{17}\n}\nfunc (m *GroupVersionKind) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *GroupVersionKind) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *GroupVersionKind) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_GroupVersionKind.Merge(m, src)\n}\nfunc (m *GroupVersionKind) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *GroupVersionKind) XXX_DiscardUnknown() {\n\txxx_messageInfo_GroupVersionKind.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_GroupVersionKind proto.InternalMessageInfo\n\nfunc (m *GroupVersionResource) Reset()      { *m = GroupVersionResource{} }\nfunc (*GroupVersionResource) ProtoMessage() {}\nfunc (*GroupVersionResource) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{18}\n}\nfunc (m *GroupVersionResource) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *GroupVersionResource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *GroupVersionResource) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_GroupVersionResource.Merge(m, src)\n}\nfunc (m *GroupVersionResource) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *GroupVersionResource) XXX_DiscardUnknown() {\n\txxx_messageInfo_GroupVersionResource.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_GroupVersionResource proto.InternalMessageInfo\n\nfunc (m *LabelSelector) Reset()      { *m = LabelSelector{} }\nfunc (*LabelSelector) ProtoMessage() {}\nfunc (*LabelSelector) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{19}\n}\nfunc (m *LabelSelector) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LabelSelector) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LabelSelector) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LabelSelector.Merge(m, src)\n}\nfunc (m *LabelSelector) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LabelSelector) XXX_DiscardUnknown() {\n\txxx_messageInfo_LabelSelector.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LabelSelector proto.InternalMessageInfo\n\nfunc (m *LabelSelectorRequirement) Reset()      { *m = LabelSelectorRequirement{} }\nfunc (*LabelSelectorRequirement) ProtoMessage() {}\nfunc (*LabelSelectorRequirement) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{20}\n}\nfunc (m *LabelSelectorRequirement) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *LabelSelectorRequirement) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *LabelSelectorRequirement) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_LabelSelectorRequirement.Merge(m, src)\n}\nfunc (m *LabelSelectorRequirement) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *LabelSelectorRequirement) XXX_DiscardUnknown() {\n\txxx_messageInfo_LabelSelectorRequirement.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_LabelSelectorRequirement proto.InternalMessageInfo\n\nfunc (m *List) Reset()      { *m = List{} }\nfunc (*List) ProtoMessage() {}\nfunc (*List) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{21}\n}\nfunc (m *List) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *List) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *List) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_List.Merge(m, src)\n}\nfunc (m *List) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *List) XXX_DiscardUnknown() {\n\txxx_messageInfo_List.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_List proto.InternalMessageInfo\n\nfunc (m *ListMeta) Reset()      { *m = ListMeta{} }\nfunc (*ListMeta) ProtoMessage() {}\nfunc (*ListMeta) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{22}\n}\nfunc (m *ListMeta) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ListMeta) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ListMeta) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ListMeta.Merge(m, src)\n}\nfunc (m *ListMeta) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ListMeta) XXX_DiscardUnknown() {\n\txxx_messageInfo_ListMeta.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ListMeta proto.InternalMessageInfo\n\nfunc (m *ListOptions) Reset()      { *m = ListOptions{} }\nfunc (*ListOptions) ProtoMessage() {}\nfunc (*ListOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{23}\n}\nfunc (m *ListOptions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ListOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ListOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ListOptions.Merge(m, src)\n}\nfunc (m *ListOptions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ListOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_ListOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ListOptions proto.InternalMessageInfo\n\nfunc (m *ManagedFieldsEntry) Reset()      { *m = ManagedFieldsEntry{} }\nfunc (*ManagedFieldsEntry) ProtoMessage() {}\nfunc (*ManagedFieldsEntry) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{24}\n}\nfunc (m *ManagedFieldsEntry) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ManagedFieldsEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ManagedFieldsEntry) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ManagedFieldsEntry.Merge(m, src)\n}\nfunc (m *ManagedFieldsEntry) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ManagedFieldsEntry) XXX_DiscardUnknown() {\n\txxx_messageInfo_ManagedFieldsEntry.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ManagedFieldsEntry proto.InternalMessageInfo\n\nfunc (m *MicroTime) Reset()      { *m = MicroTime{} }\nfunc (*MicroTime) ProtoMessage() {}\nfunc (*MicroTime) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{25}\n}\nfunc (m *MicroTime) XXX_Unmarshal(b []byte) error {\n\treturn xxx_messageInfo_MicroTime.Unmarshal(m, b)\n}\nfunc (m *MicroTime) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\treturn xxx_messageInfo_MicroTime.Marshal(b, m, deterministic)\n}\nfunc (m *MicroTime) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_MicroTime.Merge(m, src)\n}\nfunc (m *MicroTime) XXX_Size() int {\n\treturn xxx_messageInfo_MicroTime.Size(m)\n}\nfunc (m *MicroTime) XXX_DiscardUnknown() {\n\txxx_messageInfo_MicroTime.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_MicroTime proto.InternalMessageInfo\n\nfunc (m *ObjectMeta) Reset()      { *m = ObjectMeta{} }\nfunc (*ObjectMeta) ProtoMessage() {}\nfunc (*ObjectMeta) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{26}\n}\nfunc (m *ObjectMeta) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ObjectMeta) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ObjectMeta) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ObjectMeta.Merge(m, src)\n}\nfunc (m *ObjectMeta) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ObjectMeta) XXX_DiscardUnknown() {\n\txxx_messageInfo_ObjectMeta.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ObjectMeta proto.InternalMessageInfo\n\nfunc (m *OwnerReference) Reset()      { *m = OwnerReference{} }\nfunc (*OwnerReference) ProtoMessage() {}\nfunc (*OwnerReference) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{27}\n}\nfunc (m *OwnerReference) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *OwnerReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *OwnerReference) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_OwnerReference.Merge(m, src)\n}\nfunc (m *OwnerReference) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *OwnerReference) XXX_DiscardUnknown() {\n\txxx_messageInfo_OwnerReference.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_OwnerReference proto.InternalMessageInfo\n\nfunc (m *PartialObjectMetadata) Reset()      { *m = PartialObjectMetadata{} }\nfunc (*PartialObjectMetadata) ProtoMessage() {}\nfunc (*PartialObjectMetadata) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{28}\n}\nfunc (m *PartialObjectMetadata) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PartialObjectMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PartialObjectMetadata) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PartialObjectMetadata.Merge(m, src)\n}\nfunc (m *PartialObjectMetadata) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PartialObjectMetadata) XXX_DiscardUnknown() {\n\txxx_messageInfo_PartialObjectMetadata.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PartialObjectMetadata proto.InternalMessageInfo\n\nfunc (m *PartialObjectMetadataList) Reset()      { *m = PartialObjectMetadataList{} }\nfunc (*PartialObjectMetadataList) ProtoMessage() {}\nfunc (*PartialObjectMetadataList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{29}\n}\nfunc (m *PartialObjectMetadataList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PartialObjectMetadataList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PartialObjectMetadataList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PartialObjectMetadataList.Merge(m, src)\n}\nfunc (m *PartialObjectMetadataList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PartialObjectMetadataList) XXX_DiscardUnknown() {\n\txxx_messageInfo_PartialObjectMetadataList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PartialObjectMetadataList proto.InternalMessageInfo\n\nfunc (m *Patch) Reset()      { *m = Patch{} }\nfunc (*Patch) ProtoMessage() {}\nfunc (*Patch) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{30}\n}\nfunc (m *Patch) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Patch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Patch) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Patch.Merge(m, src)\n}\nfunc (m *Patch) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Patch) XXX_DiscardUnknown() {\n\txxx_messageInfo_Patch.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Patch proto.InternalMessageInfo\n\nfunc (m *PatchOptions) Reset()      { *m = PatchOptions{} }\nfunc (*PatchOptions) ProtoMessage() {}\nfunc (*PatchOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{31}\n}\nfunc (m *PatchOptions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PatchOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PatchOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PatchOptions.Merge(m, src)\n}\nfunc (m *PatchOptions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PatchOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_PatchOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PatchOptions proto.InternalMessageInfo\n\nfunc (m *Preconditions) Reset()      { *m = Preconditions{} }\nfunc (*Preconditions) ProtoMessage() {}\nfunc (*Preconditions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{32}\n}\nfunc (m *Preconditions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Preconditions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Preconditions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Preconditions.Merge(m, src)\n}\nfunc (m *Preconditions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Preconditions) XXX_DiscardUnknown() {\n\txxx_messageInfo_Preconditions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Preconditions proto.InternalMessageInfo\n\nfunc (m *RootPaths) Reset()      { *m = RootPaths{} }\nfunc (*RootPaths) ProtoMessage() {}\nfunc (*RootPaths) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{33}\n}\nfunc (m *RootPaths) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RootPaths) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RootPaths) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RootPaths.Merge(m, src)\n}\nfunc (m *RootPaths) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RootPaths) XXX_DiscardUnknown() {\n\txxx_messageInfo_RootPaths.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RootPaths proto.InternalMessageInfo\n\nfunc (m *ServerAddressByClientCIDR) Reset()      { *m = ServerAddressByClientCIDR{} }\nfunc (*ServerAddressByClientCIDR) ProtoMessage() {}\nfunc (*ServerAddressByClientCIDR) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{34}\n}\nfunc (m *ServerAddressByClientCIDR) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *ServerAddressByClientCIDR) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *ServerAddressByClientCIDR) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_ServerAddressByClientCIDR.Merge(m, src)\n}\nfunc (m *ServerAddressByClientCIDR) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *ServerAddressByClientCIDR) XXX_DiscardUnknown() {\n\txxx_messageInfo_ServerAddressByClientCIDR.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_ServerAddressByClientCIDR proto.InternalMessageInfo\n\nfunc (m *Status) Reset()      { *m = Status{} }\nfunc (*Status) ProtoMessage() {}\nfunc (*Status) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{35}\n}\nfunc (m *Status) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Status) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Status) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Status.Merge(m, src)\n}\nfunc (m *Status) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Status) XXX_DiscardUnknown() {\n\txxx_messageInfo_Status.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Status proto.InternalMessageInfo\n\nfunc (m *StatusCause) Reset()      { *m = StatusCause{} }\nfunc (*StatusCause) ProtoMessage() {}\nfunc (*StatusCause) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{36}\n}\nfunc (m *StatusCause) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatusCause) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatusCause) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatusCause.Merge(m, src)\n}\nfunc (m *StatusCause) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatusCause) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatusCause.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatusCause proto.InternalMessageInfo\n\nfunc (m *StatusDetails) Reset()      { *m = StatusDetails{} }\nfunc (*StatusDetails) ProtoMessage() {}\nfunc (*StatusDetails) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{37}\n}\nfunc (m *StatusDetails) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *StatusDetails) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *StatusDetails) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_StatusDetails.Merge(m, src)\n}\nfunc (m *StatusDetails) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *StatusDetails) XXX_DiscardUnknown() {\n\txxx_messageInfo_StatusDetails.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_StatusDetails proto.InternalMessageInfo\n\nfunc (m *TableOptions) Reset()      { *m = TableOptions{} }\nfunc (*TableOptions) ProtoMessage() {}\nfunc (*TableOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{38}\n}\nfunc (m *TableOptions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TableOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TableOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TableOptions.Merge(m, src)\n}\nfunc (m *TableOptions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TableOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_TableOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TableOptions proto.InternalMessageInfo\n\nfunc (m *Time) Reset()      { *m = Time{} }\nfunc (*Time) ProtoMessage() {}\nfunc (*Time) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{39}\n}\nfunc (m *Time) XXX_Unmarshal(b []byte) error {\n\treturn xxx_messageInfo_Time.Unmarshal(m, b)\n}\nfunc (m *Time) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\treturn xxx_messageInfo_Time.Marshal(b, m, deterministic)\n}\nfunc (m *Time) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Time.Merge(m, src)\n}\nfunc (m *Time) XXX_Size() int {\n\treturn xxx_messageInfo_Time.Size(m)\n}\nfunc (m *Time) XXX_DiscardUnknown() {\n\txxx_messageInfo_Time.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Time proto.InternalMessageInfo\n\nfunc (m *Timestamp) Reset()      { *m = Timestamp{} }\nfunc (*Timestamp) ProtoMessage() {}\nfunc (*Timestamp) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{40}\n}\nfunc (m *Timestamp) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Timestamp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Timestamp) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Timestamp.Merge(m, src)\n}\nfunc (m *Timestamp) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Timestamp) XXX_DiscardUnknown() {\n\txxx_messageInfo_Timestamp.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Timestamp proto.InternalMessageInfo\n\nfunc (m *TypeMeta) Reset()      { *m = TypeMeta{} }\nfunc (*TypeMeta) ProtoMessage() {}\nfunc (*TypeMeta) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{41}\n}\nfunc (m *TypeMeta) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TypeMeta) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TypeMeta) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TypeMeta.Merge(m, src)\n}\nfunc (m *TypeMeta) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TypeMeta) XXX_DiscardUnknown() {\n\txxx_messageInfo_TypeMeta.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TypeMeta proto.InternalMessageInfo\n\nfunc (m *UpdateOptions) Reset()      { *m = UpdateOptions{} }\nfunc (*UpdateOptions) ProtoMessage() {}\nfunc (*UpdateOptions) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{42}\n}\nfunc (m *UpdateOptions) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *UpdateOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *UpdateOptions) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_UpdateOptions.Merge(m, src)\n}\nfunc (m *UpdateOptions) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *UpdateOptions) XXX_DiscardUnknown() {\n\txxx_messageInfo_UpdateOptions.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_UpdateOptions proto.InternalMessageInfo\n\nfunc (m *Verbs) Reset()      { *m = Verbs{} }\nfunc (*Verbs) ProtoMessage() {}\nfunc (*Verbs) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{43}\n}\nfunc (m *Verbs) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Verbs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Verbs) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Verbs.Merge(m, src)\n}\nfunc (m *Verbs) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Verbs) XXX_DiscardUnknown() {\n\txxx_messageInfo_Verbs.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Verbs proto.InternalMessageInfo\n\nfunc (m *WatchEvent) Reset()      { *m = WatchEvent{} }\nfunc (*WatchEvent) ProtoMessage() {}\nfunc (*WatchEvent) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_a8431b6e0aeeb761, []int{44}\n}\nfunc (m *WatchEvent) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *WatchEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *WatchEvent) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_WatchEvent.Merge(m, src)\n}\nfunc (m *WatchEvent) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *WatchEvent) XXX_DiscardUnknown() {\n\txxx_messageInfo_WatchEvent.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_WatchEvent proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*APIGroup)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.APIGroup\")\n\tproto.RegisterType((*APIGroupList)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.APIGroupList\")\n\tproto.RegisterType((*APIResource)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.APIResource\")\n\tproto.RegisterType((*APIResourceList)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.APIResourceList\")\n\tproto.RegisterType((*APIVersions)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.APIVersions\")\n\tproto.RegisterType((*ApplyOptions)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.ApplyOptions\")\n\tproto.RegisterType((*Condition)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.Condition\")\n\tproto.RegisterType((*CreateOptions)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.CreateOptions\")\n\tproto.RegisterType((*DeleteOptions)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.DeleteOptions\")\n\tproto.RegisterType((*Duration)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.Duration\")\n\tproto.RegisterType((*FieldSelectorRequirement)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.FieldSelectorRequirement\")\n\tproto.RegisterType((*FieldsV1)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.FieldsV1\")\n\tproto.RegisterType((*GetOptions)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.GetOptions\")\n\tproto.RegisterType((*GroupKind)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.GroupKind\")\n\tproto.RegisterType((*GroupResource)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.GroupResource\")\n\tproto.RegisterType((*GroupVersion)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersion\")\n\tproto.RegisterType((*GroupVersionForDiscovery)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery\")\n\tproto.RegisterType((*GroupVersionKind)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionKind\")\n\tproto.RegisterType((*GroupVersionResource)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.GroupVersionResource\")\n\tproto.RegisterType((*LabelSelector)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector.MatchLabelsEntry\")\n\tproto.RegisterType((*LabelSelectorRequirement)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement\")\n\tproto.RegisterType((*List)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.List\")\n\tproto.RegisterType((*ListMeta)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta\")\n\tproto.RegisterType((*ListOptions)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.ListOptions\")\n\tproto.RegisterType((*ManagedFieldsEntry)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\")\n\tproto.RegisterType((*MicroTime)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime\")\n\tproto.RegisterType((*ObjectMeta)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta.AnnotationsEntry\")\n\tproto.RegisterMapType((map[string]string)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta.LabelsEntry\")\n\tproto.RegisterType((*OwnerReference)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference\")\n\tproto.RegisterType((*PartialObjectMetadata)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.PartialObjectMetadata\")\n\tproto.RegisterType((*PartialObjectMetadataList)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.PartialObjectMetadataList\")\n\tproto.RegisterType((*Patch)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.Patch\")\n\tproto.RegisterType((*PatchOptions)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.PatchOptions\")\n\tproto.RegisterType((*Preconditions)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.Preconditions\")\n\tproto.RegisterType((*RootPaths)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.RootPaths\")\n\tproto.RegisterType((*ServerAddressByClientCIDR)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR\")\n\tproto.RegisterType((*Status)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.Status\")\n\tproto.RegisterType((*StatusCause)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.StatusCause\")\n\tproto.RegisterType((*StatusDetails)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.StatusDetails\")\n\tproto.RegisterType((*TableOptions)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.TableOptions\")\n\tproto.RegisterType((*Time)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.Time\")\n\tproto.RegisterType((*Timestamp)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.Timestamp\")\n\tproto.RegisterType((*TypeMeta)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.TypeMeta\")\n\tproto.RegisterType((*UpdateOptions)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.UpdateOptions\")\n\tproto.RegisterType((*Verbs)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.Verbs\")\n\tproto.RegisterType((*WatchEvent)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1.WatchEvent\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\", fileDescriptor_a8431b6e0aeeb761)\n}\n\nvar fileDescriptor_a8431b6e0aeeb761 = []byte{\n\t// 2928 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x3a, 0x4d, 0x6c, 0x24, 0x47,\n\t0xd5, 0xee, 0xf9, 0xb1, 0x67, 0xde, 0x78, 0xfc, 0x53, 0xeb, 0xfd, 0xbe, 0x59, 0x23, 0x3c, 0x4e,\n\t0x27, 0x8a, 0x36, 0x90, 0x8c, 0x77, 0x97, 0x25, 0xda, 0x6c, 0x48, 0xc0, 0xe3, 0x59, 0x6f, 0x9c,\n\t0xac, 0x63, 0xab, 0xbc, 0xbb, 0x81, 0x10, 0xa1, 0x94, 0xa7, 0xcb, 0xe3, 0xc6, 0x3d, 0xdd, 0x93,\n\t0xaa, 0x1e, 0x6f, 0x06, 0x0e, 0xe4, 0x00, 0x12, 0x48, 0x28, 0x0a, 0x37, 0x4e, 0x28, 0x11, 0x9c,\n\t0x38, 0x21, 0x4e, 0xdc, 0x41, 0x22, 0xc7, 0x20, 0x2e, 0x91, 0x40, 0xa3, 0xac, 0x39, 0x70, 0x44,\n\t0x5c, 0x2d, 0x24, 0x50, 0xfd, 0xf4, 0xdf, 0xfc, 0xac, 0x7b, 0x76, 0x97, 0x88, 0xdb, 0xf4, 0xfb,\n\t0xaf, 0xaa, 0xf7, 0x5e, 0xbd, 0xf7, 0x6a, 0xe0, 0xea, 0xd1, 0x35, 0x5e, 0xb3, 0xbd, 0x35, 0xd2,\n\t0xb1, 0xdb, 0xa4, 0x79, 0x68, 0xbb, 0x94, 0xf5, 0xd6, 0x3a, 0x47, 0x2d, 0x01, 0xe0, 0x6b, 0x6d,\n\t0xea, 0x93, 0xb5, 0xe3, 0xcb, 0x6b, 0x2d, 0xea, 0x52, 0x46, 0x7c, 0x6a, 0xd5, 0x3a, 0xcc, 0xf3,\n\t0x3d, 0xf4, 0x94, 0xe2, 0xaa, 0xc5, 0xb9, 0x6a, 0x9d, 0xa3, 0x96, 0x00, 0xf0, 0x9a, 0xe0, 0xaa,\n\t0x1d, 0x5f, 0x5e, 0x7e, 0xae, 0x65, 0xfb, 0x87, 0xdd, 0xfd, 0x5a, 0xd3, 0x6b, 0xaf, 0xb5, 0xbc,\n\t0x96, 0xb7, 0x26, 0x99, 0xf7, 0xbb, 0x07, 0xf2, 0x4b, 0x7e, 0xc8, 0x5f, 0x4a, 0xe8, 0xf2, 0xda,\n\t0x38, 0x53, 0x58, 0xd7, 0xf5, 0xed, 0x36, 0x1d, 0xb4, 0x62, 0xf9, 0xf9, 0xb3, 0x18, 0x78, 0xf3,\n\t0x90, 0xb6, 0xc9, 0x20, 0x9f, 0xf9, 0xc7, 0x2c, 0x14, 0xd6, 0x77, 0xb7, 0x6e, 0x32, 0xaf, 0xdb,\n\t0x41, 0xab, 0x90, 0x73, 0x49, 0x9b, 0x56, 0x8c, 0x55, 0xe3, 0x62, 0xb1, 0x3e, 0xfb, 0x71, 0xbf,\n\t0x3a, 0x75, 0xd2, 0xaf, 0xe6, 0x5e, 0x27, 0x6d, 0x8a, 0x25, 0x06, 0x39, 0x50, 0x38, 0xa6, 0x8c,\n\t0xdb, 0x9e, 0xcb, 0x2b, 0x99, 0xd5, 0xec, 0xc5, 0xd2, 0x95, 0x97, 0x6b, 0x69, 0xd6, 0x5f, 0x93,\n\t0x0a, 0xee, 0x2a, 0xd6, 0x4d, 0x8f, 0x35, 0x6c, 0xde, 0xf4, 0x8e, 0x29, 0xeb, 0xd5, 0x17, 0xb4,\n\t0x96, 0x82, 0x46, 0x72, 0x1c, 0x6a, 0x40, 0x3f, 0x34, 0x60, 0xa1, 0xc3, 0xe8, 0x01, 0x65, 0x8c,\n\t0x5a, 0x1a, 0x5f, 0xc9, 0xae, 0x1a, 0x8f, 0x41, 0x6d, 0x45, 0xab, 0x5d, 0xd8, 0x1d, 0x90, 0x8f,\n\t0x87, 0x34, 0xa2, 0x5f, 0x1a, 0xb0, 0xcc, 0x29, 0x3b, 0xa6, 0x6c, 0xdd, 0xb2, 0x18, 0xe5, 0xbc,\n\t0xde, 0xdb, 0x70, 0x6c, 0xea, 0xfa, 0x1b, 0x5b, 0x0d, 0xcc, 0x2b, 0x39, 0xb9, 0x0f, 0x5f, 0x4f,\n\t0x67, 0xd0, 0xde, 0x38, 0x39, 0x75, 0x53, 0x5b, 0xb4, 0x3c, 0x96, 0x84, 0xe3, 0x07, 0x98, 0x61,\n\t0x1e, 0xc0, 0x6c, 0x70, 0x90, 0xb7, 0x6c, 0xee, 0xa3, 0xbb, 0x30, 0xdd, 0x12, 0x1f, 0xbc, 0x62,\n\t0x48, 0x03, 0x6b, 0xe9, 0x0c, 0x0c, 0x64, 0xd4, 0xe7, 0xb4, 0x3d, 0xd3, 0xf2, 0x93, 0x63, 0x2d,\n\t0xcd, 0xfc, 0x49, 0x0e, 0x4a, 0xeb, 0xbb, 0x5b, 0x98, 0x72, 0xaf, 0xcb, 0x9a, 0x34, 0x85, 0xd3,\n\t0x5c, 0x83, 0x59, 0x6e, 0xbb, 0xad, 0xae, 0x43, 0x98, 0x80, 0x56, 0xa6, 0x25, 0xe5, 0x92, 0xa6,\n\t0x9c, 0xdd, 0x8b, 0xe1, 0x70, 0x82, 0x12, 0x5d, 0x01, 0x10, 0x12, 0x78, 0x87, 0x34, 0xa9, 0x55,\n\t0xc9, 0xac, 0x1a, 0x17, 0x0b, 0x75, 0xa4, 0xf9, 0xe0, 0xf5, 0x10, 0x83, 0x63, 0x54, 0xe8, 0x49,\n\t0xc8, 0x4b, 0x4b, 0x2b, 0x05, 0xa9, 0xa6, 0xac, 0xc9, 0xf3, 0x72, 0x19, 0x58, 0xe1, 0xd0, 0x33,\n\t0x30, 0xa3, 0xbd, 0xac, 0x52, 0x94, 0x64, 0xf3, 0x9a, 0x6c, 0x26, 0x70, 0x83, 0x00, 0x2f, 0xd6,\n\t0x77, 0x64, 0xbb, 0x96, 0xf4, 0xbb, 0xd8, 0xfa, 0x5e, 0xb3, 0x5d, 0x0b, 0x4b, 0x0c, 0xba, 0x05,\n\t0xf9, 0x63, 0xca, 0xf6, 0x85, 0x27, 0x08, 0xd7, 0xfc, 0x72, 0xba, 0x8d, 0xbe, 0x2b, 0x58, 0xea,\n\t0x45, 0x61, 0x9a, 0xfc, 0x89, 0x95, 0x10, 0x54, 0x03, 0xe0, 0x87, 0x1e, 0xf3, 0xe5, 0xf2, 0x2a,\n\t0xf9, 0xd5, 0xec, 0xc5, 0x62, 0x7d, 0x4e, 0xac, 0x77, 0x2f, 0x84, 0xe2, 0x18, 0x85, 0xa0, 0x6f,\n\t0x12, 0x9f, 0xb6, 0x3c, 0x66, 0x53, 0x5e, 0x99, 0x89, 0xe8, 0x37, 0x42, 0x28, 0x8e, 0x51, 0xa0,\n\t0x57, 0x01, 0x71, 0xdf, 0x63, 0xa4, 0x45, 0xf5, 0x52, 0x5f, 0x21, 0xfc, 0xb0, 0x02, 0x72, 0x75,\n\t0xcb, 0x7a, 0x75, 0x68, 0x6f, 0x88, 0x02, 0x8f, 0xe0, 0x32, 0x7f, 0x6b, 0xc0, 0x7c, 0xcc, 0x17,\n\t0xa4, 0xdf, 0x5d, 0x83, 0xd9, 0x56, 0x2c, 0xea, 0xb4, 0x5f, 0x84, 0xa7, 0x1d, 0x8f, 0x48, 0x9c,\n\t0xa0, 0x44, 0x14, 0x8a, 0x4c, 0x4b, 0x0a, 0xb2, 0xcb, 0xe5, 0xd4, 0x4e, 0x1b, 0xd8, 0x10, 0x69,\n\t0x8a, 0x01, 0x39, 0x8e, 0x24, 0x9b, 0x7f, 0x37, 0xa4, 0x03, 0x07, 0xf9, 0x06, 0x5d, 0x8c, 0xe5,\n\t0x34, 0x43, 0x6e, 0xdf, 0xec, 0x98, 0x7c, 0x74, 0x46, 0x22, 0xc8, 0xfc, 0x4f, 0x24, 0x82, 0xeb,\n\t0x85, 0x9f, 0x7f, 0x58, 0x9d, 0x7a, 0xef, 0xaf, 0xab, 0x53, 0xe6, 0xcf, 0x0c, 0x98, 0x5d, 0xef,\n\t0x74, 0x9c, 0xde, 0x4e, 0xc7, 0x97, 0x0b, 0x30, 0x61, 0xda, 0x62, 0x3d, 0xdc, 0x75, 0xf5, 0x42,\n\t0x41, 0xc4, 0x77, 0x43, 0x42, 0xb0, 0xc6, 0x88, 0xf8, 0x39, 0xf0, 0x58, 0x93, 0xea, 0x70, 0x0b,\n\t0xe3, 0x67, 0x53, 0x00, 0xb1, 0xc2, 0x89, 0x43, 0x3e, 0xb0, 0xa9, 0x63, 0x6d, 0x13, 0x97, 0xb4,\n\t0x28, 0xd3, 0xc1, 0x11, 0x6e, 0xfd, 0x66, 0x0c, 0x87, 0x13, 0x94, 0xe6, 0xbf, 0x33, 0x50, 0xdc,\n\t0xf0, 0x5c, 0xcb, 0xf6, 0x75, 0x70, 0xf9, 0xbd, 0xce, 0x50, 0xf2, 0xb8, 0xdd, 0xeb, 0x50, 0x2c,\n\t0x31, 0xe8, 0x05, 0x98, 0xe6, 0x3e, 0xf1, 0xbb, 0x5c, 0xda, 0x53, 0xac, 0x3f, 0x11, 0xa4, 0xa5,\n\t0x3d, 0x09, 0x3d, 0xed, 0x57, 0xe7, 0x43, 0x71, 0x0a, 0x84, 0x35, 0x83, 0xf0, 0x74, 0x6f, 0x5f,\n\t0x6e, 0x94, 0x75, 0x53, 0x5d, 0x7b, 0xc1, 0xfd, 0x91, 0x8d, 0x3c, 0x7d, 0x67, 0x88, 0x02, 0x8f,\n\t0xe0, 0x42, 0xc7, 0x80, 0x1c, 0xc2, 0xfd, 0xdb, 0x8c, 0xb8, 0x5c, 0xea, 0xba, 0x6d, 0xb7, 0xa9,\n\t0x0e, 0xf8, 0x2f, 0xa5, 0x3b, 0x71, 0xc1, 0x11, 0xe9, 0xbd, 0x35, 0x24, 0x0d, 0x8f, 0xd0, 0x80,\n\t0x9e, 0x86, 0x69, 0x46, 0x09, 0xf7, 0xdc, 0x4a, 0x5e, 0x2e, 0x3f, 0xcc, 0xca, 0x58, 0x42, 0xb1,\n\t0xc6, 0x8a, 0x84, 0xd6, 0xa6, 0x9c, 0x93, 0x56, 0x90, 0x5e, 0xc3, 0x84, 0xb6, 0xad, 0xc0, 0x38,\n\t0xc0, 0x9b, 0xbf, 0x31, 0xa0, 0xbc, 0xc1, 0x28, 0xf1, 0xe9, 0x24, 0x6e, 0xf1, 0xd0, 0x27, 0x8e,\n\t0xd6, 0x61, 0x5e, 0x7e, 0xdf, 0x25, 0x8e, 0x6d, 0xa9, 0x33, 0xc8, 0x49, 0xe6, 0xff, 0xd7, 0xcc,\n\t0xf3, 0x9b, 0x49, 0x34, 0x1e, 0xa4, 0x37, 0x7f, 0x9d, 0x83, 0x72, 0x83, 0x3a, 0x34, 0x32, 0x79,\n\t0x13, 0x50, 0x8b, 0x91, 0x26, 0xdd, 0xa5, 0xcc, 0xf6, 0xac, 0x3d, 0xda, 0xf4, 0x5c, 0x8b, 0x4b,\n\t0x37, 0xca, 0xd6, 0xff, 0x4f, 0xec, 0xef, 0xcd, 0x21, 0x2c, 0x1e, 0xc1, 0x81, 0x1c, 0x28, 0x77,\n\t0x98, 0xfc, 0x2d, 0xf7, 0x5c, 0x79, 0x59, 0xe9, 0xca, 0x57, 0xd2, 0x1d, 0xe9, 0x6e, 0x9c, 0xb5,\n\t0xbe, 0x78, 0xd2, 0xaf, 0x96, 0x13, 0x20, 0x9c, 0x14, 0x8e, 0xbe, 0x01, 0x0b, 0x1e, 0xeb, 0x1c,\n\t0x12, 0xb7, 0x41, 0x3b, 0xd4, 0xb5, 0xa8, 0xeb, 0x73, 0xb9, 0x91, 0x85, 0xfa, 0x92, 0xa8, 0x45,\n\t0x76, 0x06, 0x70, 0x78, 0x88, 0x1a, 0xbd, 0x09, 0x8b, 0x1d, 0xe6, 0x75, 0x48, 0x4b, 0x6e, 0xcc,\n\t0xae, 0xe7, 0xd8, 0xcd, 0x9e, 0xde, 0xce, 0x67, 0x4f, 0xfa, 0xd5, 0xc5, 0xdd, 0x41, 0xe4, 0x69,\n\t0xbf, 0x7a, 0x4e, 0x6e, 0x9d, 0x80, 0x44, 0x48, 0x3c, 0x2c, 0x26, 0xe6, 0x06, 0xf9, 0xb1, 0x6e,\n\t0xf0, 0xa1, 0x01, 0x97, 0xec, 0x96, 0xeb, 0x31, 0x2a, 0xae, 0x08, 0x8a, 0x29, 0xb1, 0x6e, 0x30,\n\t0xe6, 0xb1, 0x37, 0x6c, 0xff, 0x70, 0xc3, 0xe9, 0x72, 0x9f, 0xb2, 0x3a, 0xa3, 0xe4, 0xc8, 0x76,\n\t0x5b, 0xbb, 0x9e, 0x4f, 0x5d, 0xdf, 0x26, 0x8e, 0xf4, 0xc8, 0x42, 0xfd, 0xea, 0x49, 0xbf, 0x7a,\n\t0x69, 0x6b, 0x42, 0x5e, 0x3c, 0xb1, 0x36, 0x73, 0x0b, 0x0a, 0x8d, 0xae, 0x0e, 0xdb, 0x97, 0xa0,\n\t0x60, 0xe9, 0xdf, 0xda, 0x39, 0x82, 0xfc, 0x11, 0xd2, 0x9c, 0xf6, 0xab, 0x65, 0x51, 0x21, 0xd7,\n\t0x02, 0x00, 0x0e, 0x59, 0xcc, 0x5f, 0x19, 0x50, 0x91, 0xce, 0xb9, 0x47, 0x1d, 0xda, 0xf4, 0x3d,\n\t0x86, 0xe9, 0x3b, 0x5d, 0x9b, 0xd1, 0x36, 0x75, 0x7d, 0xf4, 0x45, 0xc8, 0x1e, 0xd1, 0x9e, 0x4e,\n\t0x5d, 0x25, 0x2d, 0x36, 0xfb, 0x1a, 0xed, 0x61, 0x01, 0x47, 0x37, 0xa0, 0xe0, 0x75, 0x44, 0xfa,\n\t0xf0, 0x98, 0x4e, 0x5d, 0xcf, 0x04, 0xaa, 0x77, 0x34, 0xfc, 0xb4, 0x5f, 0x3d, 0x9f, 0x10, 0x1f,\n\t0x20, 0x70, 0xc8, 0x2a, 0x0e, 0xe5, 0x98, 0x38, 0x5d, 0x2a, 0x1c, 0x25, 0x3c, 0x94, 0xbb, 0x12,\n\t0x82, 0x35, 0xc6, 0x7c, 0x1a, 0x0a, 0x52, 0x0c, 0xbf, 0x7b, 0x19, 0x2d, 0x40, 0x16, 0x93, 0x7b,\n\t0xd2, 0xaa, 0x59, 0x2c, 0x7e, 0xc6, 0xee, 0x83, 0x1d, 0x80, 0x9b, 0xd4, 0x0f, 0x42, 0x68, 0x1d,\n\t0xe6, 0x83, 0x4b, 0x31, 0x79, 0x57, 0x87, 0x71, 0x89, 0x93, 0x68, 0x3c, 0x48, 0x6f, 0xbe, 0x05,\n\t0x45, 0x79, 0x9f, 0x8b, 0x62, 0x28, 0x2a, 0xbc, 0x8c, 0x07, 0x14, 0x5e, 0x41, 0x35, 0x95, 0x19,\n\t0x57, 0x4d, 0xc5, 0xcc, 0x75, 0xa0, 0xac, 0x78, 0x83, 0x52, 0x33, 0x95, 0x86, 0x67, 0xa1, 0x10,\n\t0x98, 0xa9, 0xb5, 0x84, 0x2d, 0x46, 0x20, 0x08, 0x87, 0x14, 0x31, 0x6d, 0x87, 0x90, 0xa8, 0x4d,\n\t0xd2, 0x29, 0x8b, 0xd5, 0x91, 0x99, 0x07, 0xd7, 0x91, 0x31, 0x4d, 0x3f, 0x80, 0xca, 0xb8, 0xbe,\n\t0xe4, 0x11, 0xaa, 0xa7, 0xf4, 0xa6, 0x98, 0xef, 0x1b, 0xb0, 0x10, 0x97, 0x94, 0xfe, 0xf8, 0xd2,\n\t0x2b, 0x39, 0xbb, 0x6e, 0x8e, 0xed, 0xc8, 0x2f, 0x0c, 0x58, 0x4a, 0x2c, 0x6d, 0xa2, 0x13, 0x9f,\n\t0xc0, 0xa8, 0xb8, 0x73, 0x64, 0x27, 0x70, 0x8e, 0x3f, 0x67, 0xa0, 0x7c, 0x8b, 0xec, 0x53, 0x27,\n\t0x88, 0x54, 0xf4, 0x7d, 0x28, 0xb5, 0x89, 0xdf, 0x3c, 0x94, 0xd0, 0xa0, 0xc7, 0x6a, 0xa4, 0xbb,\n\t0x36, 0x12, 0x92, 0x6a, 0xdb, 0x91, 0x98, 0x1b, 0xae, 0xcf, 0x7a, 0xf5, 0x73, 0xda, 0xa4, 0x52,\n\t0x0c, 0x83, 0xe3, 0xda, 0x64, 0x63, 0x2c, 0xbf, 0x6f, 0xbc, 0xdb, 0x11, 0x05, 0xe0, 0xe4, 0xfd,\n\t0x78, 0xc2, 0x84, 0x58, 0x56, 0x8b, 0x1a, 0xe3, 0xed, 0x01, 0xf9, 0x78, 0x48, 0xe3, 0xf2, 0xcb,\n\t0xb0, 0x30, 0x68, 0xbc, 0xc8, 0x3f, 0x61, 0x56, 0x54, 0x89, 0x70, 0x09, 0xf2, 0x32, 0x4f, 0xa9,\n\t0xc3, 0xc1, 0xea, 0xe3, 0x7a, 0xe6, 0x9a, 0x21, 0xd3, 0xeb, 0x38, 0x43, 0x1e, 0x53, 0x7a, 0x4d,\n\t0x88, 0x7f, 0xc8, 0xf4, 0xfa, 0x3b, 0x03, 0x72, 0xb2, 0xb5, 0x79, 0x0b, 0x0a, 0x62, 0xff, 0x2c,\n\t0xe2, 0x13, 0x69, 0x57, 0xea, 0xa6, 0x5a, 0x70, 0x6f, 0x53, 0x9f, 0x44, 0xde, 0x16, 0x40, 0x70,\n\t0x28, 0x11, 0x61, 0xc8, 0xdb, 0x3e, 0x6d, 0x07, 0x07, 0xf9, 0xdc, 0x58, 0xd1, 0x7a, 0xa4, 0x53,\n\t0xc3, 0xe4, 0xde, 0x8d, 0x77, 0x7d, 0xea, 0x8a, 0xc3, 0x88, 0x42, 0x63, 0x4b, 0xc8, 0xc0, 0x4a,\n\t0x94, 0xf9, 0x4f, 0x03, 0x42, 0x55, 0xc2, 0xf9, 0x39, 0x75, 0x0e, 0x6e, 0xd9, 0xee, 0x91, 0xde,\n\t0xd6, 0xd0, 0x9c, 0x3d, 0x0d, 0xc7, 0x21, 0xc5, 0xa8, 0xeb, 0x21, 0x33, 0xd9, 0xf5, 0x20, 0x14,\n\t0x36, 0x3d, 0xd7, 0xb7, 0xdd, 0xee, 0x50, 0xb4, 0x6d, 0x68, 0x38, 0x0e, 0x29, 0x44, 0x49, 0xc7,\n\t0x68, 0x9b, 0xd8, 0xae, 0xed, 0xb6, 0xc4, 0x22, 0x36, 0xbc, 0xae, 0xeb, 0xcb, 0xda, 0x46, 0x97,\n\t0x74, 0x78, 0x08, 0x8b, 0x47, 0x70, 0x98, 0xff, 0xca, 0x41, 0x49, 0xac, 0x39, 0xb8, 0xe7, 0x5e,\n\t0x84, 0xb2, 0x13, 0xf7, 0x02, 0xbd, 0xf6, 0xf3, 0xda, 0x94, 0x64, 0x5c, 0xe3, 0x24, 0xad, 0x60,\n\t0x3e, 0x88, 0xdf, 0xd0, 0x7a, 0x0f, 0x42, 0xe6, 0x64, 0x75, 0x90, 0xa4, 0x15, 0xd9, 0xeb, 0x9e,\n\t0x88, 0x0f, 0x5d, 0xe3, 0x85, 0x47, 0xf4, 0x86, 0x00, 0x62, 0x85, 0x43, 0xdb, 0x70, 0x8e, 0x38,\n\t0x8e, 0x77, 0x4f, 0x02, 0xeb, 0x9e, 0x77, 0xd4, 0x26, 0xec, 0x88, 0xcb, 0xb1, 0x44, 0xa1, 0xfe,\n\t0x05, 0xcd, 0x72, 0x6e, 0x7d, 0x98, 0x04, 0x8f, 0xe2, 0x1b, 0x75, 0x6c, 0xb9, 0x09, 0x8f, 0xed,\n\t0x10, 0x96, 0x06, 0x40, 0x32, 0xca, 0xf5, 0x8c, 0xe0, 0xaa, 0x96, 0xb3, 0x84, 0x47, 0xd0, 0x9c,\n\t0x8e, 0x81, 0xe3, 0x91, 0x12, 0xd1, 0x75, 0x98, 0x13, 0x9e, 0xec, 0x75, 0xfd, 0xa0, 0x82, 0xcf,\n\t0xcb, 0xe3, 0x46, 0x27, 0xfd, 0xea, 0xdc, 0xed, 0x04, 0x06, 0x0f, 0x50, 0x8a, 0xcd, 0x75, 0xec,\n\t0xb6, 0xed, 0x57, 0x66, 0x24, 0x4b, 0xb8, 0xb9, 0xb7, 0x04, 0x10, 0x2b, 0x5c, 0xc2, 0x03, 0x0b,\n\t0x67, 0x7a, 0xe0, 0x06, 0x2c, 0x72, 0xea, 0x5a, 0x5b, 0xae, 0x2d, 0x0a, 0xc9, 0x1b, 0xc7, 0xb2,\n\t0x3e, 0x2f, 0xc9, 0x83, 0x38, 0x2f, 0x8a, 0xeb, 0xbd, 0x41, 0x24, 0x1e, 0xa6, 0x37, 0xff, 0x94,\n\t0x05, 0xa4, 0x5a, 0x1f, 0x4b, 0x15, 0x65, 0x2a, 0x2f, 0x8a, 0x06, 0x4d, 0xb7, 0x4e, 0xc6, 0x40,\n\t0x83, 0xa6, 0xbb, 0xa6, 0x00, 0x8f, 0xb6, 0xa1, 0xa8, 0xf2, 0x53, 0x14, 0x73, 0x6b, 0x9a, 0xb8,\n\t0xb8, 0x13, 0x20, 0x4e, 0xfb, 0xd5, 0xe5, 0x84, 0x9a, 0x10, 0x23, 0x9b, 0xe7, 0x48, 0x02, 0xba,\n\t0x02, 0x40, 0x3a, 0x76, 0x7c, 0x7c, 0x5a, 0x8c, 0x86, 0x68, 0xd1, 0x20, 0x04, 0xc7, 0xa8, 0xd0,\n\t0x2b, 0x90, 0xf3, 0x1f, 0xae, 0xc1, 0x2d, 0xc8, 0xfe, 0x5d, 0xb4, 0xb3, 0x52, 0x82, 0xd0, 0x2e,\n\t0x83, 0x82, 0x0b, 0xb3, 0x74, 0x6f, 0x1a, 0x6a, 0xdf, 0x0c, 0x31, 0x38, 0x46, 0x85, 0xbe, 0x09,\n\t0x85, 0x03, 0x5d, 0xcf, 0xca, 0xd3, 0x4d, 0x9d, 0x67, 0x83, 0x2a, 0x58, 0x4d, 0x70, 0x82, 0x2f,\n\t0x1c, 0x4a, 0x43, 0x5f, 0x85, 0x12, 0xef, 0xee, 0x87, 0x25, 0x80, 0x72, 0x89, 0xf0, 0xbe, 0xdd,\n\t0x8b, 0x50, 0x38, 0x4e, 0x67, 0xbe, 0x03, 0xc5, 0x6d, 0xbb, 0xc9, 0x3c, 0xd9, 0x92, 0x3f, 0x03,\n\t0x33, 0x3c, 0xd1, 0x6f, 0x86, 0x27, 0x19, 0xb8, 0x6a, 0x80, 0x17, 0x3e, 0xea, 0x12, 0xd7, 0x53,\n\t0x5d, 0x65, 0x3e, 0xf2, 0xd1, 0xd7, 0x05, 0x10, 0x2b, 0xdc, 0xf5, 0x25, 0x51, 0x65, 0xfc, 0xf8,\n\t0xa3, 0xea, 0xd4, 0x07, 0x1f, 0x55, 0xa7, 0x3e, 0xfc, 0x48, 0x57, 0x1c, 0xbf, 0x07, 0x80, 0x9d,\n\t0xfd, 0xef, 0xd2, 0xa6, 0xca, 0xdd, 0xa9, 0xa6, 0xac, 0xc1, 0x70, 0x5f, 0x4e, 0x59, 0x33, 0x03,\n\t0x95, 0x63, 0x0c, 0x87, 0x13, 0x94, 0x68, 0x0d, 0x8a, 0xe1, 0xfc, 0x54, 0xfb, 0xc7, 0x62, 0xe0,\n\t0x6f, 0xe1, 0x90, 0x15, 0x47, 0x34, 0x89, 0x8b, 0x24, 0x77, 0xe6, 0x45, 0x52, 0x87, 0x6c, 0xd7,\n\t0xb6, 0xf4, 0xfc, 0xe2, 0x52, 0x70, 0x91, 0xdf, 0xd9, 0x6a, 0x9c, 0xf6, 0xab, 0x4f, 0x8c, 0x7b,\n\t0xb6, 0xf0, 0x7b, 0x1d, 0xca, 0x6b, 0x77, 0xb6, 0x1a, 0x58, 0x30, 0x8f, 0xca, 0x6a, 0xd3, 0x13,\n\t0x66, 0xb5, 0x2b, 0x00, 0xad, 0x68, 0x0a, 0xa4, 0x92, 0x46, 0xe8, 0x88, 0xb1, 0xe9, 0x4f, 0x8c,\n\t0x0a, 0x71, 0x58, 0x6c, 0x32, 0x4a, 0x82, 0x69, 0x0c, 0xf7, 0x49, 0x5b, 0xcd, 0x95, 0x27, 0x8b,\n\t0x89, 0x0b, 0x5a, 0xcd, 0xe2, 0xc6, 0xa0, 0x30, 0x3c, 0x2c, 0x1f, 0x79, 0xb0, 0x68, 0xe9, 0x86,\n\t0x3d, 0x52, 0x5a, 0x9c, 0x58, 0xa9, 0xcc, 0x58, 0x8d, 0x41, 0x41, 0x78, 0x58, 0x36, 0xfa, 0x0e,\n\t0x2c, 0x07, 0xc0, 0xe1, 0xa9, 0x89, 0xcc, 0xfa, 0xd9, 0xfa, 0xca, 0x49, 0xbf, 0xba, 0xdc, 0x18,\n\t0x4b, 0x85, 0x1f, 0x20, 0x01, 0x59, 0x30, 0xed, 0xa8, 0x2a, 0xb9, 0x24, 0x2b, 0x9b, 0xaf, 0xa5,\n\t0x5b, 0x45, 0xe4, 0xfd, 0xb5, 0x78, 0x75, 0x1c, 0x4e, 0xc0, 0x74, 0x61, 0xac, 0x65, 0xa3, 0x77,\n\t0xa1, 0x44, 0x5c, 0xd7, 0xf3, 0x89, 0x9a, 0xe3, 0xcc, 0x4a, 0x55, 0xeb, 0x13, 0xab, 0x5a, 0x8f,\n\t0x64, 0x0c, 0x54, 0xe3, 0x31, 0x0c, 0x8e, 0xab, 0x42, 0xf7, 0x60, 0xde, 0xbb, 0xe7, 0x52, 0x86,\n\t0xe9, 0x01, 0x65, 0xd4, 0x6d, 0x52, 0x5e, 0x29, 0x4b, 0xed, 0x57, 0x53, 0x6a, 0x4f, 0x30, 0x47,\n\t0x2e, 0x9d, 0x84, 0x73, 0x3c, 0xa8, 0x05, 0xd5, 0x44, 0x6e, 0x75, 0x89, 0x63, 0x7f, 0x8f, 0x32,\n\t0x5e, 0x99, 0x8b, 0x46, 0xff, 0x9b, 0x21, 0x14, 0xc7, 0x28, 0x50, 0x17, 0xca, 0xed, 0xf8, 0x95,\n\t0x51, 0x59, 0x94, 0x66, 0x5e, 0x4b, 0x67, 0xe6, 0xf0, 0xa5, 0x16, 0x95, 0x41, 0x09, 0x1c, 0x4e,\n\t0x6a, 0x59, 0x7e, 0x01, 0x4a, 0x0f, 0xd9, 0x21, 0x88, 0x0e, 0x63, 0xf0, 0x40, 0x26, 0xea, 0x30,\n\t0xfe, 0x90, 0x81, 0xb9, 0xe4, 0x36, 0x0e, 0x5c, 0x87, 0xf9, 0x54, 0xd7, 0x61, 0xd0, 0xcb, 0x1a,\n\t0x63, 0xdf, 0x80, 0x82, 0xfc, 0x9c, 0x1d, 0x9b, 0x9f, 0x75, 0x1a, 0xcc, 0x3d, 0x4a, 0x1a, 0xac,\n\t0x01, 0x88, 0x62, 0x85, 0x79, 0x8e, 0x43, 0x99, 0x1e, 0xab, 0xa9, 0xb7, 0x9e, 0x10, 0x8a, 0x63,\n\t0x14, 0xa2, 0xa4, 0xde, 0x77, 0xbc, 0xe6, 0x91, 0xdc, 0x82, 0x20, 0x7a, 0x65, 0xee, 0x2b, 0xa8,\n\t0x92, 0xba, 0x3e, 0x84, 0xc5, 0x23, 0x38, 0xcc, 0x1e, 0x9c, 0xdf, 0x25, 0x4c, 0x14, 0x39, 0x51,\n\t0xa4, 0xc8, 0x9e, 0xe5, 0xed, 0xa1, 0x8e, 0xe8, 0xd2, 0xa4, 0x11, 0x17, 0x6d, 0x7e, 0x04, 0x8b,\n\t0xba, 0x22, 0xf3, 0x2f, 0x06, 0x5c, 0x18, 0xa9, 0xfb, 0x73, 0xe8, 0xc8, 0xde, 0x4e, 0x76, 0x64,\n\t0x2f, 0xa6, 0x1c, 0x0a, 0x8f, 0xb2, 0x76, 0x4c, 0x7f, 0x36, 0x03, 0xf9, 0x5d, 0x51, 0x09, 0x9b,\n\t0x9f, 0x18, 0x30, 0x2b, 0x7f, 0x4d, 0x32, 0x93, 0xaf, 0x26, 0x9f, 0x6a, 0x8a, 0x8f, 0xef, 0x99,\n\t0xe6, 0x71, 0x0c, 0xed, 0xdf, 0x37, 0x20, 0x39, 0x0d, 0x47, 0x2f, 0xab, 0x10, 0x30, 0xc2, 0x71,\n\t0xf5, 0x84, 0xee, 0xff, 0xd2, 0xb8, 0x96, 0xf4, 0x5c, 0xaa, 0x69, 0xe5, 0xb3, 0x50, 0xc4, 0x9e,\n\t0xe7, 0xef, 0x12, 0xff, 0x90, 0x8b, 0xbd, 0xeb, 0x88, 0x1f, 0x7a, 0x7b, 0xe5, 0xde, 0x49, 0x0c,\n\t0x56, 0x70, 0xf3, 0xa7, 0x06, 0x5c, 0x18, 0xfb, 0x02, 0x27, 0xb2, 0x48, 0x33, 0xfc, 0xd2, 0x2b,\n\t0x0a, 0x1d, 0x39, 0xa2, 0xc3, 0x31, 0x2a, 0xd1, 0x4b, 0x26, 0x9e, 0xed, 0x06, 0x7b, 0xc9, 0x84,\n\t0x36, 0x9c, 0xa4, 0x35, 0xff, 0x91, 0x01, 0xfd, 0xe4, 0xf5, 0x5f, 0x76, 0xfa, 0xa7, 0x07, 0x1e,\n\t0xdc, 0xe6, 0x92, 0x0f, 0x6e, 0xe1, 0xeb, 0x5a, 0xec, 0xc5, 0x29, 0xfb, 0xe0, 0x17, 0x27, 0xf4,\n\t0x7c, 0xf8, 0x88, 0xa5, 0x7c, 0x68, 0x25, 0xf9, 0x88, 0x75, 0xda, 0xaf, 0xce, 0x6a, 0xe1, 0xc9,\n\t0x47, 0xad, 0x37, 0x61, 0xc6, 0xa2, 0x3e, 0xb1, 0x1d, 0xd5, 0x17, 0xa6, 0x7e, 0x96, 0x51, 0xc2,\n\t0x1a, 0x8a, 0xb5, 0x5e, 0x12, 0x36, 0xe9, 0x0f, 0x1c, 0x08, 0x14, 0x09, 0xbb, 0xe9, 0x59, 0xaa,\n\t0x23, 0xc9, 0x47, 0x09, 0x7b, 0xc3, 0xb3, 0x28, 0x96, 0x18, 0xf3, 0x03, 0x03, 0x4a, 0x4a, 0xd2,\n\t0x06, 0xe9, 0x72, 0x8a, 0x2e, 0x87, 0xab, 0x50, 0xc7, 0x7d, 0x21, 0xfe, 0x5a, 0x79, 0xda, 0xaf,\n\t0x16, 0x25, 0x99, 0x6c, 0x66, 0x46, 0xbc, 0xca, 0x65, 0xce, 0xd8, 0xa3, 0x27, 0x21, 0x2f, 0x03,\n\t0x48, 0x6f, 0x66, 0xf4, 0xec, 0x2a, 0x80, 0x58, 0xe1, 0xcc, 0xcf, 0x32, 0x50, 0x4e, 0x2c, 0x2e,\n\t0x45, 0x5f, 0x10, 0x8e, 0x50, 0x33, 0x29, 0xc6, 0xf2, 0xe3, 0xff, 0xe4, 0xa0, 0xaf, 0xaf, 0xe9,\n\t0x47, 0xb9, 0xbe, 0xbe, 0x05, 0xd3, 0x4d, 0xb1, 0x47, 0xc1, 0x7f, 0x66, 0x2e, 0x4f, 0x72, 0x9c,\n\t0x72, 0x77, 0x23, 0x6f, 0x94, 0x9f, 0x1c, 0x6b, 0x81, 0xe8, 0x26, 0x2c, 0x32, 0xea, 0xb3, 0xde,\n\t0xfa, 0x81, 0x4f, 0x59, 0x7c, 0x98, 0x90, 0x8f, 0xaa, 0x6f, 0x3c, 0x48, 0x80, 0x87, 0x79, 0xcc,\n\t0x7d, 0x98, 0xbd, 0x4d, 0xf6, 0x9d, 0xf0, 0xa1, 0x11, 0x43, 0xd9, 0x76, 0x9b, 0x4e, 0xd7, 0xa2,\n\t0x2a, 0xa1, 0x07, 0xd9, 0x2b, 0x08, 0xda, 0xad, 0x38, 0xf2, 0xb4, 0x5f, 0x3d, 0x97, 0x00, 0xa8,\n\t0x97, 0x35, 0x9c, 0x14, 0x61, 0x3a, 0x90, 0xfb, 0x1c, 0x3b, 0xc9, 0x6f, 0x43, 0x31, 0xaa, 0xf5,\n\t0x1f, 0xb3, 0x4a, 0xf3, 0x6d, 0x28, 0x08, 0x8f, 0x0f, 0x7a, 0xd4, 0x33, 0xaa, 0xa4, 0x64, 0xed,\n\t0x95, 0x49, 0x53, 0x7b, 0xc9, 0xe7, 0xea, 0x3b, 0x1d, 0xeb, 0x11, 0x9f, 0xab, 0x33, 0x8f, 0x72,\n\t0xf3, 0x65, 0x27, 0xbc, 0xf9, 0xae, 0x80, 0xfa, 0x4b, 0x8f, 0xb8, 0x64, 0x54, 0x01, 0x11, 0xbb,\n\t0x64, 0xe2, 0xf7, 0x7f, 0xec, 0x85, 0xe1, 0x47, 0x06, 0x80, 0x1c, 0xe5, 0xc9, 0x31, 0x52, 0x8a,\n\t0x3f, 0x46, 0xdc, 0x81, 0x69, 0x4f, 0x79, 0xa4, 0x7a, 0xb2, 0x9e, 0x70, 0x5e, 0x1c, 0x06, 0x92,\n\t0xf2, 0x49, 0xac, 0x85, 0xd5, 0x5f, 0xfd, 0xf8, 0xfe, 0xca, 0xd4, 0x27, 0xf7, 0x57, 0xa6, 0x3e,\n\t0xbd, 0xbf, 0x32, 0xf5, 0xde, 0xc9, 0x8a, 0xf1, 0xf1, 0xc9, 0x8a, 0xf1, 0xc9, 0xc9, 0x8a, 0xf1,\n\t0xe9, 0xc9, 0x8a, 0xf1, 0xd9, 0xc9, 0x8a, 0xf1, 0xc1, 0xdf, 0x56, 0xa6, 0xde, 0x7c, 0x2a, 0xcd,\n\t0x5f, 0x25, 0xff, 0x13, 0x00, 0x00, 0xff, 0xff, 0xf8, 0xda, 0x63, 0x4c, 0x51, 0x29, 0x00, 0x00,\n}\n\nfunc (m *APIGroup) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *APIGroup) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *APIGroup) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ServerAddressByClientCIDRs) > 0 {\n\t\tfor iNdEx := len(m.ServerAddressByClientCIDRs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ServerAddressByClientCIDRs[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.PreferredVersion.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.Versions) > 0 {\n\t\tfor iNdEx := len(m.Versions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Versions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *APIGroupList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *APIGroupList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *APIGroupList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Groups) > 0 {\n\t\tfor iNdEx := len(m.Groups) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Groups[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *APIResource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *APIResource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *APIResource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.StorageVersionHash)\n\tcopy(dAtA[i:], m.StorageVersionHash)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.StorageVersionHash)))\n\ti--\n\tdAtA[i] = 0x52\n\ti -= len(m.Version)\n\tcopy(dAtA[i:], m.Version)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Version)))\n\ti--\n\tdAtA[i] = 0x4a\n\ti -= len(m.Group)\n\tcopy(dAtA[i:], m.Group)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Group)))\n\ti--\n\tdAtA[i] = 0x42\n\tif len(m.Categories) > 0 {\n\t\tfor iNdEx := len(m.Categories) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Categories[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Categories[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Categories[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x3a\n\t\t}\n\t}\n\ti -= len(m.SingularName)\n\tcopy(dAtA[i:], m.SingularName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.SingularName)))\n\ti--\n\tdAtA[i] = 0x32\n\tif len(m.ShortNames) > 0 {\n\t\tfor iNdEx := len(m.ShortNames) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.ShortNames[iNdEx])\n\t\t\tcopy(dAtA[i:], m.ShortNames[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ShortNames[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\tif m.Verbs != nil {\n\t\t{\n\t\t\tsize, err := m.Verbs.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti--\n\tif m.Namespaced {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x10\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *APIResourceList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *APIResourceList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *APIResourceList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.APIResources) > 0 {\n\t\tfor iNdEx := len(m.APIResources) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.APIResources[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\ti -= len(m.GroupVersion)\n\tcopy(dAtA[i:], m.GroupVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.GroupVersion)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *APIVersions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *APIVersions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *APIVersions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ServerAddressByClientCIDRs) > 0 {\n\t\tfor iNdEx := len(m.ServerAddressByClientCIDRs) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ServerAddressByClientCIDRs[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.Versions) > 0 {\n\t\tfor iNdEx := len(m.Versions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Versions[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Versions[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Versions[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ApplyOptions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ApplyOptions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ApplyOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.FieldManager)\n\tcopy(dAtA[i:], m.FieldManager)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FieldManager)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti--\n\tif m.Force {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x10\n\tif len(m.DryRun) > 0 {\n\t\tfor iNdEx := len(m.DryRun) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.DryRun[iNdEx])\n\t\t\tcopy(dAtA[i:], m.DryRun[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.DryRun[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Condition) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Condition) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Condition) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x2a\n\t{\n\t\tsize, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x22\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration))\n\ti--\n\tdAtA[i] = 0x18\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *CreateOptions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *CreateOptions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *CreateOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.FieldValidation)\n\tcopy(dAtA[i:], m.FieldValidation)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FieldValidation)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.FieldManager)\n\tcopy(dAtA[i:], m.FieldManager)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FieldManager)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif len(m.DryRun) > 0 {\n\t\tfor iNdEx := len(m.DryRun) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.DryRun[iNdEx])\n\t\t\tcopy(dAtA[i:], m.DryRun[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.DryRun[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *DeleteOptions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *DeleteOptions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *DeleteOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.IgnoreStoreReadErrorWithClusterBreakingPotential != nil {\n\t\ti--\n\t\tif *m.IgnoreStoreReadErrorWithClusterBreakingPotential {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x30\n\t}\n\tif len(m.DryRun) > 0 {\n\t\tfor iNdEx := len(m.DryRun) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.DryRun[iNdEx])\n\t\t\tcopy(dAtA[i:], m.DryRun[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.DryRun[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x2a\n\t\t}\n\t}\n\tif m.PropagationPolicy != nil {\n\t\ti -= len(*m.PropagationPolicy)\n\t\tcopy(dAtA[i:], *m.PropagationPolicy)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.PropagationPolicy)))\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\tif m.OrphanDependents != nil {\n\t\ti--\n\t\tif *m.OrphanDependents {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x18\n\t}\n\tif m.Preconditions != nil {\n\t\t{\n\t\t\tsize, err := m.Preconditions.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.GracePeriodSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.GracePeriodSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x8\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Duration) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Duration) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Duration) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Duration))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FieldSelectorRequirement) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FieldSelectorRequirement) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FieldSelectorRequirement) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Values) > 0 {\n\t\tfor iNdEx := len(m.Values) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Values[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Values[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Values[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\ti -= len(m.Operator)\n\tcopy(dAtA[i:], m.Operator)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Operator)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Key)\n\tcopy(dAtA[i:], m.Key)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Key)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *FieldsV1) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *FieldsV1) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *FieldsV1) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Raw != nil {\n\t\ti -= len(m.Raw)\n\t\tcopy(dAtA[i:], m.Raw)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Raw)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *GetOptions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GetOptions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *GetOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.ResourceVersion)\n\tcopy(dAtA[i:], m.ResourceVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ResourceVersion)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *GroupKind) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GroupKind) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *GroupKind) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Group)\n\tcopy(dAtA[i:], m.Group)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Group)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *GroupResource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GroupResource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *GroupResource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Resource)\n\tcopy(dAtA[i:], m.Resource)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Resource)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Group)\n\tcopy(dAtA[i:], m.Group)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Group)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *GroupVersion) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GroupVersion) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *GroupVersion) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Version)\n\tcopy(dAtA[i:], m.Version)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Version)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Group)\n\tcopy(dAtA[i:], m.Group)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Group)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *GroupVersionForDiscovery) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GroupVersionForDiscovery) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *GroupVersionForDiscovery) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Version)\n\tcopy(dAtA[i:], m.Version)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Version)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.GroupVersion)\n\tcopy(dAtA[i:], m.GroupVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.GroupVersion)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *GroupVersionKind) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GroupVersionKind) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *GroupVersionKind) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Version)\n\tcopy(dAtA[i:], m.Version)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Version)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Group)\n\tcopy(dAtA[i:], m.Group)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Group)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *GroupVersionResource) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *GroupVersionResource) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *GroupVersionResource) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Resource)\n\tcopy(dAtA[i:], m.Resource)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Resource)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Version)\n\tcopy(dAtA[i:], m.Version)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Version)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Group)\n\tcopy(dAtA[i:], m.Group)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Group)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LabelSelector) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LabelSelector) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LabelSelector) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.MatchExpressions) > 0 {\n\t\tfor iNdEx := len(m.MatchExpressions) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.MatchExpressions[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\tif len(m.MatchLabels) > 0 {\n\t\tkeysForMatchLabels := make([]string, 0, len(m.MatchLabels))\n\t\tfor k := range m.MatchLabels {\n\t\t\tkeysForMatchLabels = append(keysForMatchLabels, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForMatchLabels)\n\t\tfor iNdEx := len(keysForMatchLabels) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.MatchLabels[string(keysForMatchLabels[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForMatchLabels[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForMatchLabels[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForMatchLabels[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *LabelSelectorRequirement) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *LabelSelectorRequirement) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *LabelSelectorRequirement) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Values) > 0 {\n\t\tfor iNdEx := len(m.Values) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Values[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Values[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Values[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1a\n\t\t}\n\t}\n\ti -= len(m.Operator)\n\tcopy(dAtA[i:], m.Operator)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Operator)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Key)\n\tcopy(dAtA[i:], m.Key)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Key)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *List) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *List) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *List) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ListMeta) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ListMeta) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ListMeta) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.RemainingItemCount != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.RemainingItemCount))\n\t\ti--\n\t\tdAtA[i] = 0x20\n\t}\n\ti -= len(m.Continue)\n\tcopy(dAtA[i:], m.Continue)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Continue)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.ResourceVersion)\n\tcopy(dAtA[i:], m.ResourceVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ResourceVersion)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.SelfLink)\n\tcopy(dAtA[i:], m.SelfLink)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.SelfLink)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ListOptions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ListOptions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ListOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.SendInitialEvents != nil {\n\t\ti--\n\t\tif *m.SendInitialEvents {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x58\n\t}\n\ti -= len(m.ResourceVersionMatch)\n\tcopy(dAtA[i:], m.ResourceVersionMatch)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ResourceVersionMatch)))\n\ti--\n\tdAtA[i] = 0x52\n\ti--\n\tif m.AllowWatchBookmarks {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x48\n\ti -= len(m.Continue)\n\tcopy(dAtA[i:], m.Continue)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Continue)))\n\ti--\n\tdAtA[i] = 0x42\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Limit))\n\ti--\n\tdAtA[i] = 0x38\n\tif m.TimeoutSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.TimeoutSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x28\n\t}\n\ti -= len(m.ResourceVersion)\n\tcopy(dAtA[i:], m.ResourceVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ResourceVersion)))\n\ti--\n\tdAtA[i] = 0x22\n\ti--\n\tif m.Watch {\n\t\tdAtA[i] = 1\n\t} else {\n\t\tdAtA[i] = 0\n\t}\n\ti--\n\tdAtA[i] = 0x18\n\ti -= len(m.FieldSelector)\n\tcopy(dAtA[i:], m.FieldSelector)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FieldSelector)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.LabelSelector)\n\tcopy(dAtA[i:], m.LabelSelector)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.LabelSelector)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ManagedFieldsEntry) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ManagedFieldsEntry) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ManagedFieldsEntry) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Subresource)\n\tcopy(dAtA[i:], m.Subresource)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Subresource)))\n\ti--\n\tdAtA[i] = 0x42\n\tif m.FieldsV1 != nil {\n\t\t{\n\t\t\tsize, err := m.FieldsV1.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x3a\n\t}\n\ti -= len(m.FieldsType)\n\tcopy(dAtA[i:], m.FieldsType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FieldsType)))\n\ti--\n\tdAtA[i] = 0x32\n\tif m.Time != nil {\n\t\t{\n\t\t\tsize, err := m.Time.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x22\n\t}\n\ti -= len(m.APIVersion)\n\tcopy(dAtA[i:], m.APIVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIVersion)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Operation)\n\tcopy(dAtA[i:], m.Operation)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Operation)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Manager)\n\tcopy(dAtA[i:], m.Manager)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Manager)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ObjectMeta) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ObjectMeta) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ObjectMeta) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.ManagedFields) > 0 {\n\t\tfor iNdEx := len(m.ManagedFields) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.ManagedFields[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x1\n\t\t\ti--\n\t\t\tdAtA[i] = 0x8a\n\t\t}\n\t}\n\tif len(m.Finalizers) > 0 {\n\t\tfor iNdEx := len(m.Finalizers) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Finalizers[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Finalizers[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Finalizers[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x72\n\t\t}\n\t}\n\tif len(m.OwnerReferences) > 0 {\n\t\tfor iNdEx := len(m.OwnerReferences) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.OwnerReferences[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x6a\n\t\t}\n\t}\n\tif len(m.Annotations) > 0 {\n\t\tkeysForAnnotations := make([]string, 0, len(m.Annotations))\n\t\tfor k := range m.Annotations {\n\t\t\tkeysForAnnotations = append(keysForAnnotations, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAnnotations)\n\t\tfor iNdEx := len(keysForAnnotations) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Annotations[string(keysForAnnotations[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForAnnotations[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForAnnotations[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForAnnotations[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x62\n\t\t}\n\t}\n\tif len(m.Labels) > 0 {\n\t\tkeysForLabels := make([]string, 0, len(m.Labels))\n\t\tfor k := range m.Labels {\n\t\t\tkeysForLabels = append(keysForLabels, string(k))\n\t\t}\n\t\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForLabels)\n\t\tfor iNdEx := len(keysForLabels) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\tv := m.Labels[string(keysForLabels[iNdEx])]\n\t\t\tbaseI := i\n\t\t\ti -= len(v)\n\t\t\tcopy(dAtA[i:], v)\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(v)))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t\ti -= len(keysForLabels[iNdEx])\n\t\t\tcopy(dAtA[i:], keysForLabels[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(keysForLabels[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(baseI-i))\n\t\t\ti--\n\t\t\tdAtA[i] = 0x5a\n\t\t}\n\t}\n\tif m.DeletionGracePeriodSeconds != nil {\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(*m.DeletionGracePeriodSeconds))\n\t\ti--\n\t\tdAtA[i] = 0x50\n\t}\n\tif m.DeletionTimestamp != nil {\n\t\t{\n\t\t\tsize, err := m.DeletionTimestamp.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x4a\n\t}\n\t{\n\t\tsize, err := m.CreationTimestamp.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x42\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Generation))\n\ti--\n\tdAtA[i] = 0x38\n\ti -= len(m.ResourceVersion)\n\tcopy(dAtA[i:], m.ResourceVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ResourceVersion)))\n\ti--\n\tdAtA[i] = 0x32\n\ti -= len(m.UID)\n\tcopy(dAtA[i:], m.UID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.UID)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.SelfLink)\n\tcopy(dAtA[i:], m.SelfLink)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.SelfLink)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Namespace)\n\tcopy(dAtA[i:], m.Namespace)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.GenerateName)\n\tcopy(dAtA[i:], m.GenerateName)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.GenerateName)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *OwnerReference) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *OwnerReference) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *OwnerReference) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.BlockOwnerDeletion != nil {\n\t\ti--\n\t\tif *m.BlockOwnerDeletion {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x38\n\t}\n\tif m.Controller != nil {\n\t\ti--\n\t\tif *m.Controller {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x30\n\t}\n\ti -= len(m.APIVersion)\n\tcopy(dAtA[i:], m.APIVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIVersion)))\n\ti--\n\tdAtA[i] = 0x2a\n\ti -= len(m.UID)\n\tcopy(dAtA[i:], m.UID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.UID)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PartialObjectMetadata) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PartialObjectMetadata) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PartialObjectMetadata) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PartialObjectMetadataList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PartialObjectMetadataList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PartialObjectMetadataList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x12\n\t\t}\n\t}\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Patch) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Patch) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Patch) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *PatchOptions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PatchOptions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PatchOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.FieldValidation)\n\tcopy(dAtA[i:], m.FieldValidation)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FieldValidation)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.FieldManager)\n\tcopy(dAtA[i:], m.FieldManager)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FieldManager)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.Force != nil {\n\t\ti--\n\t\tif *m.Force {\n\t\t\tdAtA[i] = 1\n\t\t} else {\n\t\t\tdAtA[i] = 0\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x10\n\t}\n\tif len(m.DryRun) > 0 {\n\t\tfor iNdEx := len(m.DryRun) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.DryRun[iNdEx])\n\t\t\tcopy(dAtA[i:], m.DryRun[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.DryRun[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Preconditions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Preconditions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Preconditions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.ResourceVersion != nil {\n\t\ti -= len(*m.ResourceVersion)\n\t\tcopy(dAtA[i:], *m.ResourceVersion)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.ResourceVersion)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\tif m.UID != nil {\n\t\ti -= len(*m.UID)\n\t\tcopy(dAtA[i:], *m.UID)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(*m.UID)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *RootPaths) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RootPaths) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RootPaths) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m.Paths) > 0 {\n\t\tfor iNdEx := len(m.Paths) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.Paths[iNdEx])\n\t\t\tcopy(dAtA[i:], m.Paths[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Paths[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *ServerAddressByClientCIDR) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *ServerAddressByClientCIDR) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *ServerAddressByClientCIDR) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.ServerAddress)\n\tcopy(dAtA[i:], m.ServerAddress)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ServerAddress)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.ClientCIDR)\n\tcopy(dAtA[i:], m.ClientCIDR)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ClientCIDR)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Status) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Status) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Status) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Code))\n\ti--\n\tdAtA[i] = 0x30\n\tif m.Details != nil {\n\t\t{\n\t\t\tsize, err := m.Details.MarshalToSizedBuffer(dAtA[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= size\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t}\n\t\ti--\n\t\tdAtA[i] = 0x2a\n\t}\n\ti -= len(m.Reason)\n\tcopy(dAtA[i:], m.Reason)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Status)\n\tcopy(dAtA[i:], m.Status)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Status)))\n\ti--\n\tdAtA[i] = 0x12\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatusCause) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatusCause) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatusCause) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Field)\n\tcopy(dAtA[i:], m.Field)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Field)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Message)\n\tcopy(dAtA[i:], m.Message)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Message)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *StatusDetails) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *StatusDetails) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *StatusDetails) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.UID)\n\tcopy(dAtA[i:], m.UID)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.UID)))\n\ti--\n\tdAtA[i] = 0x32\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.RetryAfterSeconds))\n\ti--\n\tdAtA[i] = 0x28\n\tif len(m.Causes) > 0 {\n\t\tfor iNdEx := len(m.Causes) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Causes[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0x22\n\t\t}\n\t}\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.Group)\n\tcopy(dAtA[i:], m.Group)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Group)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Name)\n\tcopy(dAtA[i:], m.Name)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Name)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TableOptions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TableOptions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TableOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.IncludeObject)\n\tcopy(dAtA[i:], m.IncludeObject)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.IncludeObject)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Timestamp) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Timestamp) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Timestamp) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Nanos))\n\ti--\n\tdAtA[i] = 0x10\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Seconds))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TypeMeta) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TypeMeta) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TypeMeta) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.APIVersion)\n\tcopy(dAtA[i:], m.APIVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIVersion)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *UpdateOptions) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *UpdateOptions) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *UpdateOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.FieldValidation)\n\tcopy(dAtA[i:], m.FieldValidation)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FieldValidation)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti -= len(m.FieldManager)\n\tcopy(dAtA[i:], m.FieldManager)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.FieldManager)))\n\ti--\n\tdAtA[i] = 0x12\n\tif len(m.DryRun) > 0 {\n\t\tfor iNdEx := len(m.DryRun) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m.DryRun[iNdEx])\n\t\t\tcopy(dAtA[i:], m.DryRun[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.DryRun[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m Verbs) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m Verbs) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m Verbs) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif len(m) > 0 {\n\t\tfor iNdEx := len(m) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\ti -= len(m[iNdEx])\n\t\t\tcopy(dAtA[i:], m[iNdEx])\n\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m[iNdEx])))\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *WatchEvent) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *WatchEvent) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *WatchEvent) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.Object.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.Type)\n\tcopy(dAtA[i:], m.Type)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Type)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *APIGroup) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Versions) > 0 {\n\t\tfor _, e := range m.Versions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = m.PreferredVersion.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.ServerAddressByClientCIDRs) > 0 {\n\t\tfor _, e := range m.ServerAddressByClientCIDRs {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *APIGroupList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Groups) > 0 {\n\t\tfor _, e := range m.Groups {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *APIResource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Verbs != nil {\n\t\tl = m.Verbs.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.ShortNames) > 0 {\n\t\tfor _, s := range m.ShortNames {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.SingularName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Categories) > 0 {\n\t\tfor _, s := range m.Categories {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.Group)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Version)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.StorageVersionHash)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *APIResourceList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.GroupVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.APIResources) > 0 {\n\t\tfor _, e := range m.APIResources {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *APIVersions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Versions) > 0 {\n\t\tfor _, s := range m.Versions {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.ServerAddressByClientCIDRs) > 0 {\n\t\tfor _, e := range m.ServerAddressByClientCIDRs {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ApplyOptions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.DryRun) > 0 {\n\t\tfor _, s := range m.DryRun {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tn += 2\n\tl = len(m.FieldManager)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *Condition) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.ObservedGeneration))\n\tl = m.LastTransitionTime.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *CreateOptions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.DryRun) > 0 {\n\t\tfor _, s := range m.DryRun {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.FieldManager)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FieldValidation)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *DeleteOptions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.GracePeriodSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.GracePeriodSeconds))\n\t}\n\tif m.Preconditions != nil {\n\t\tl = m.Preconditions.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.OrphanDependents != nil {\n\t\tn += 2\n\t}\n\tif m.PropagationPolicy != nil {\n\t\tl = len(*m.PropagationPolicy)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif len(m.DryRun) > 0 {\n\t\tfor _, s := range m.DryRun {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.IgnoreStoreReadErrorWithClusterBreakingPotential != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *Duration) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Duration))\n\treturn n\n}\n\nfunc (m *FieldSelectorRequirement) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Key)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Operator)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Values) > 0 {\n\t\tfor _, s := range m.Values {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *FieldsV1) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Raw != nil {\n\t\tl = len(m.Raw)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *GetOptions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.ResourceVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *GroupKind) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Group)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *GroupResource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Group)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Resource)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *GroupVersion) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Group)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Version)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *GroupVersionForDiscovery) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.GroupVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Version)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *GroupVersionKind) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Group)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Version)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *GroupVersionResource) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Group)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Version)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Resource)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *LabelSelector) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.MatchLabels) > 0 {\n\t\tfor k, v := range m.MatchLabels {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.MatchExpressions) > 0 {\n\t\tfor _, e := range m.MatchExpressions {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *LabelSelectorRequirement) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Key)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Operator)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Values) > 0 {\n\t\tfor _, s := range m.Values {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *List) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ListMeta) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.SelfLink)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.ResourceVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Continue)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.RemainingItemCount != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.RemainingItemCount))\n\t}\n\treturn n\n}\n\nfunc (m *ListOptions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.LabelSelector)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FieldSelector)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\tl = len(m.ResourceVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.TimeoutSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.TimeoutSeconds))\n\t}\n\tn += 1 + sovGenerated(uint64(m.Limit))\n\tl = len(m.Continue)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 2\n\tl = len(m.ResourceVersionMatch)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.SendInitialEvents != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *ManagedFieldsEntry) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Manager)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Operation)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.APIVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Time != nil {\n\t\tl = m.Time.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.FieldsType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.FieldsV1 != nil {\n\t\tl = m.FieldsV1.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.Subresource)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *ObjectMeta) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.GenerateName)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Namespace)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.SelfLink)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.UID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.ResourceVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tn += 1 + sovGenerated(uint64(m.Generation))\n\tl = m.CreationTimestamp.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.DeletionTimestamp != nil {\n\t\tl = m.DeletionTimestamp.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.DeletionGracePeriodSeconds != nil {\n\t\tn += 1 + sovGenerated(uint64(*m.DeletionGracePeriodSeconds))\n\t}\n\tif len(m.Labels) > 0 {\n\t\tfor k, v := range m.Labels {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.Annotations) > 0 {\n\t\tfor k, v := range m.Annotations {\n\t\t\t_ = k\n\t\t\t_ = v\n\t\t\tmapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v)))\n\t\t\tn += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize))\n\t\t}\n\t}\n\tif len(m.OwnerReferences) > 0 {\n\t\tfor _, e := range m.OwnerReferences {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.Finalizers) > 0 {\n\t\tfor _, s := range m.Finalizers {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif len(m.ManagedFields) > 0 {\n\t\tfor _, e := range m.ManagedFields {\n\t\t\tl = e.Size()\n\t\t\tn += 2 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *OwnerReference) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.UID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.APIVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Controller != nil {\n\t\tn += 2\n\t}\n\tif m.BlockOwnerDeletion != nil {\n\t\tn += 2\n\t}\n\treturn n\n}\n\nfunc (m *PartialObjectMetadata) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ObjectMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *PartialObjectMetadataList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *Patch) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\treturn n\n}\n\nfunc (m *PatchOptions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.DryRun) > 0 {\n\t\tfor _, s := range m.DryRun {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tif m.Force != nil {\n\t\tn += 2\n\t}\n\tl = len(m.FieldManager)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FieldValidation)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *Preconditions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.UID != nil {\n\t\tl = len(*m.UID)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tif m.ResourceVersion != nil {\n\t\tl = len(*m.ResourceVersion)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *RootPaths) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Paths) > 0 {\n\t\tfor _, s := range m.Paths {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *ServerAddressByClientCIDR) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.ClientCIDR)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.ServerAddress)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *Status) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Status)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Reason)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Details != nil {\n\t\tl = m.Details.Size()\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tn += 1 + sovGenerated(uint64(m.Code))\n\treturn n\n}\n\nfunc (m *StatusCause) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Message)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Field)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *StatusDetails) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Name)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Group)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif len(m.Causes) > 0 {\n\t\tfor _, e := range m.Causes {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tn += 1 + sovGenerated(uint64(m.RetryAfterSeconds))\n\tl = len(m.UID)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *TableOptions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.IncludeObject)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *Timestamp) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Seconds))\n\tn += 1 + sovGenerated(uint64(m.Nanos))\n\treturn n\n}\n\nfunc (m *TypeMeta) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.APIVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *UpdateOptions) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.DryRun) > 0 {\n\t\tfor _, s := range m.DryRun {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = len(m.FieldManager)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.FieldValidation)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m Verbs) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m) > 0 {\n\t\tfor _, s := range m {\n\t\t\tl = len(s)\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\treturn n\n}\n\nfunc (m *WatchEvent) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.Type)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = m.Object.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *APIGroup) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForVersions := \"[]GroupVersionForDiscovery{\"\n\tfor _, f := range this.Versions {\n\t\trepeatedStringForVersions += strings.Replace(strings.Replace(f.String(), \"GroupVersionForDiscovery\", \"GroupVersionForDiscovery\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForVersions += \"}\"\n\trepeatedStringForServerAddressByClientCIDRs := \"[]ServerAddressByClientCIDR{\"\n\tfor _, f := range this.ServerAddressByClientCIDRs {\n\t\trepeatedStringForServerAddressByClientCIDRs += strings.Replace(strings.Replace(f.String(), \"ServerAddressByClientCIDR\", \"ServerAddressByClientCIDR\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForServerAddressByClientCIDRs += \"}\"\n\ts := strings.Join([]string{`&APIGroup{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Versions:` + repeatedStringForVersions + `,`,\n\t\t`PreferredVersion:` + strings.Replace(strings.Replace(this.PreferredVersion.String(), \"GroupVersionForDiscovery\", \"GroupVersionForDiscovery\", 1), `&`, ``, 1) + `,`,\n\t\t`ServerAddressByClientCIDRs:` + repeatedStringForServerAddressByClientCIDRs + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *APIGroupList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForGroups := \"[]APIGroup{\"\n\tfor _, f := range this.Groups {\n\t\trepeatedStringForGroups += strings.Replace(strings.Replace(f.String(), \"APIGroup\", \"APIGroup\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForGroups += \"}\"\n\ts := strings.Join([]string{`&APIGroupList{`,\n\t\t`Groups:` + repeatedStringForGroups + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *APIResource) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&APIResource{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Namespaced:` + fmt.Sprintf(\"%v\", this.Namespaced) + `,`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`Verbs:` + strings.Replace(fmt.Sprintf(\"%v\", this.Verbs), \"Verbs\", \"Verbs\", 1) + `,`,\n\t\t`ShortNames:` + fmt.Sprintf(\"%v\", this.ShortNames) + `,`,\n\t\t`SingularName:` + fmt.Sprintf(\"%v\", this.SingularName) + `,`,\n\t\t`Categories:` + fmt.Sprintf(\"%v\", this.Categories) + `,`,\n\t\t`Group:` + fmt.Sprintf(\"%v\", this.Group) + `,`,\n\t\t`Version:` + fmt.Sprintf(\"%v\", this.Version) + `,`,\n\t\t`StorageVersionHash:` + fmt.Sprintf(\"%v\", this.StorageVersionHash) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *APIResourceList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForAPIResources := \"[]APIResource{\"\n\tfor _, f := range this.APIResources {\n\t\trepeatedStringForAPIResources += strings.Replace(strings.Replace(f.String(), \"APIResource\", \"APIResource\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForAPIResources += \"}\"\n\ts := strings.Join([]string{`&APIResourceList{`,\n\t\t`GroupVersion:` + fmt.Sprintf(\"%v\", this.GroupVersion) + `,`,\n\t\t`APIResources:` + repeatedStringForAPIResources + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ApplyOptions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ApplyOptions{`,\n\t\t`DryRun:` + fmt.Sprintf(\"%v\", this.DryRun) + `,`,\n\t\t`Force:` + fmt.Sprintf(\"%v\", this.Force) + `,`,\n\t\t`FieldManager:` + fmt.Sprintf(\"%v\", this.FieldManager) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Condition) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Condition{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`ObservedGeneration:` + fmt.Sprintf(\"%v\", this.ObservedGeneration) + `,`,\n\t\t`LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.LastTransitionTime), \"Time\", \"Time\", 1), `&`, ``, 1) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *CreateOptions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&CreateOptions{`,\n\t\t`DryRun:` + fmt.Sprintf(\"%v\", this.DryRun) + `,`,\n\t\t`FieldManager:` + fmt.Sprintf(\"%v\", this.FieldManager) + `,`,\n\t\t`FieldValidation:` + fmt.Sprintf(\"%v\", this.FieldValidation) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *DeleteOptions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&DeleteOptions{`,\n\t\t`GracePeriodSeconds:` + valueToStringGenerated(this.GracePeriodSeconds) + `,`,\n\t\t`Preconditions:` + strings.Replace(this.Preconditions.String(), \"Preconditions\", \"Preconditions\", 1) + `,`,\n\t\t`OrphanDependents:` + valueToStringGenerated(this.OrphanDependents) + `,`,\n\t\t`PropagationPolicy:` + valueToStringGenerated(this.PropagationPolicy) + `,`,\n\t\t`DryRun:` + fmt.Sprintf(\"%v\", this.DryRun) + `,`,\n\t\t`IgnoreStoreReadErrorWithClusterBreakingPotential:` + valueToStringGenerated(this.IgnoreStoreReadErrorWithClusterBreakingPotential) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Duration) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Duration{`,\n\t\t`Duration:` + fmt.Sprintf(\"%v\", this.Duration) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *FieldSelectorRequirement) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&FieldSelectorRequirement{`,\n\t\t`Key:` + fmt.Sprintf(\"%v\", this.Key) + `,`,\n\t\t`Operator:` + fmt.Sprintf(\"%v\", this.Operator) + `,`,\n\t\t`Values:` + fmt.Sprintf(\"%v\", this.Values) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *GetOptions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&GetOptions{`,\n\t\t`ResourceVersion:` + fmt.Sprintf(\"%v\", this.ResourceVersion) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *GroupVersionForDiscovery) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&GroupVersionForDiscovery{`,\n\t\t`GroupVersion:` + fmt.Sprintf(\"%v\", this.GroupVersion) + `,`,\n\t\t`Version:` + fmt.Sprintf(\"%v\", this.Version) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LabelSelector) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForMatchExpressions := \"[]LabelSelectorRequirement{\"\n\tfor _, f := range this.MatchExpressions {\n\t\trepeatedStringForMatchExpressions += strings.Replace(strings.Replace(f.String(), \"LabelSelectorRequirement\", \"LabelSelectorRequirement\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForMatchExpressions += \"}\"\n\tkeysForMatchLabels := make([]string, 0, len(this.MatchLabels))\n\tfor k := range this.MatchLabels {\n\t\tkeysForMatchLabels = append(keysForMatchLabels, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForMatchLabels)\n\tmapStringForMatchLabels := \"map[string]string{\"\n\tfor _, k := range keysForMatchLabels {\n\t\tmapStringForMatchLabels += fmt.Sprintf(\"%v: %v,\", k, this.MatchLabels[k])\n\t}\n\tmapStringForMatchLabels += \"}\"\n\ts := strings.Join([]string{`&LabelSelector{`,\n\t\t`MatchLabels:` + mapStringForMatchLabels + `,`,\n\t\t`MatchExpressions:` + repeatedStringForMatchExpressions + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *LabelSelectorRequirement) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&LabelSelectorRequirement{`,\n\t\t`Key:` + fmt.Sprintf(\"%v\", this.Key) + `,`,\n\t\t`Operator:` + fmt.Sprintf(\"%v\", this.Operator) + `,`,\n\t\t`Values:` + fmt.Sprintf(\"%v\", this.Values) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *List) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]RawExtension{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&List{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(this.ListMeta.String(), \"ListMeta\", \"ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ListMeta) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ListMeta{`,\n\t\t`SelfLink:` + fmt.Sprintf(\"%v\", this.SelfLink) + `,`,\n\t\t`ResourceVersion:` + fmt.Sprintf(\"%v\", this.ResourceVersion) + `,`,\n\t\t`Continue:` + fmt.Sprintf(\"%v\", this.Continue) + `,`,\n\t\t`RemainingItemCount:` + valueToStringGenerated(this.RemainingItemCount) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ListOptions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ListOptions{`,\n\t\t`LabelSelector:` + fmt.Sprintf(\"%v\", this.LabelSelector) + `,`,\n\t\t`FieldSelector:` + fmt.Sprintf(\"%v\", this.FieldSelector) + `,`,\n\t\t`Watch:` + fmt.Sprintf(\"%v\", this.Watch) + `,`,\n\t\t`ResourceVersion:` + fmt.Sprintf(\"%v\", this.ResourceVersion) + `,`,\n\t\t`TimeoutSeconds:` + valueToStringGenerated(this.TimeoutSeconds) + `,`,\n\t\t`Limit:` + fmt.Sprintf(\"%v\", this.Limit) + `,`,\n\t\t`Continue:` + fmt.Sprintf(\"%v\", this.Continue) + `,`,\n\t\t`AllowWatchBookmarks:` + fmt.Sprintf(\"%v\", this.AllowWatchBookmarks) + `,`,\n\t\t`ResourceVersionMatch:` + fmt.Sprintf(\"%v\", this.ResourceVersionMatch) + `,`,\n\t\t`SendInitialEvents:` + valueToStringGenerated(this.SendInitialEvents) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ManagedFieldsEntry) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ManagedFieldsEntry{`,\n\t\t`Manager:` + fmt.Sprintf(\"%v\", this.Manager) + `,`,\n\t\t`Operation:` + fmt.Sprintf(\"%v\", this.Operation) + `,`,\n\t\t`APIVersion:` + fmt.Sprintf(\"%v\", this.APIVersion) + `,`,\n\t\t`Time:` + strings.Replace(fmt.Sprintf(\"%v\", this.Time), \"Time\", \"Time\", 1) + `,`,\n\t\t`FieldsType:` + fmt.Sprintf(\"%v\", this.FieldsType) + `,`,\n\t\t`FieldsV1:` + strings.Replace(fmt.Sprintf(\"%v\", this.FieldsV1), \"FieldsV1\", \"FieldsV1\", 1) + `,`,\n\t\t`Subresource:` + fmt.Sprintf(\"%v\", this.Subresource) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ObjectMeta) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForOwnerReferences := \"[]OwnerReference{\"\n\tfor _, f := range this.OwnerReferences {\n\t\trepeatedStringForOwnerReferences += strings.Replace(strings.Replace(f.String(), \"OwnerReference\", \"OwnerReference\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForOwnerReferences += \"}\"\n\trepeatedStringForManagedFields := \"[]ManagedFieldsEntry{\"\n\tfor _, f := range this.ManagedFields {\n\t\trepeatedStringForManagedFields += strings.Replace(strings.Replace(f.String(), \"ManagedFieldsEntry\", \"ManagedFieldsEntry\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForManagedFields += \"}\"\n\tkeysForLabels := make([]string, 0, len(this.Labels))\n\tfor k := range this.Labels {\n\t\tkeysForLabels = append(keysForLabels, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForLabels)\n\tmapStringForLabels := \"map[string]string{\"\n\tfor _, k := range keysForLabels {\n\t\tmapStringForLabels += fmt.Sprintf(\"%v: %v,\", k, this.Labels[k])\n\t}\n\tmapStringForLabels += \"}\"\n\tkeysForAnnotations := make([]string, 0, len(this.Annotations))\n\tfor k := range this.Annotations {\n\t\tkeysForAnnotations = append(keysForAnnotations, k)\n\t}\n\tgithub_com_gogo_protobuf_sortkeys.Strings(keysForAnnotations)\n\tmapStringForAnnotations := \"map[string]string{\"\n\tfor _, k := range keysForAnnotations {\n\t\tmapStringForAnnotations += fmt.Sprintf(\"%v: %v,\", k, this.Annotations[k])\n\t}\n\tmapStringForAnnotations += \"}\"\n\ts := strings.Join([]string{`&ObjectMeta{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`GenerateName:` + fmt.Sprintf(\"%v\", this.GenerateName) + `,`,\n\t\t`Namespace:` + fmt.Sprintf(\"%v\", this.Namespace) + `,`,\n\t\t`SelfLink:` + fmt.Sprintf(\"%v\", this.SelfLink) + `,`,\n\t\t`UID:` + fmt.Sprintf(\"%v\", this.UID) + `,`,\n\t\t`ResourceVersion:` + fmt.Sprintf(\"%v\", this.ResourceVersion) + `,`,\n\t\t`Generation:` + fmt.Sprintf(\"%v\", this.Generation) + `,`,\n\t\t`CreationTimestamp:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.CreationTimestamp), \"Time\", \"Time\", 1), `&`, ``, 1) + `,`,\n\t\t`DeletionTimestamp:` + strings.Replace(fmt.Sprintf(\"%v\", this.DeletionTimestamp), \"Time\", \"Time\", 1) + `,`,\n\t\t`DeletionGracePeriodSeconds:` + valueToStringGenerated(this.DeletionGracePeriodSeconds) + `,`,\n\t\t`Labels:` + mapStringForLabels + `,`,\n\t\t`Annotations:` + mapStringForAnnotations + `,`,\n\t\t`OwnerReferences:` + repeatedStringForOwnerReferences + `,`,\n\t\t`Finalizers:` + fmt.Sprintf(\"%v\", this.Finalizers) + `,`,\n\t\t`ManagedFields:` + repeatedStringForManagedFields + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *OwnerReference) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&OwnerReference{`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`UID:` + fmt.Sprintf(\"%v\", this.UID) + `,`,\n\t\t`APIVersion:` + fmt.Sprintf(\"%v\", this.APIVersion) + `,`,\n\t\t`Controller:` + valueToStringGenerated(this.Controller) + `,`,\n\t\t`BlockOwnerDeletion:` + valueToStringGenerated(this.BlockOwnerDeletion) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PartialObjectMetadata) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PartialObjectMetadata{`,\n\t\t`ObjectMeta:` + strings.Replace(strings.Replace(this.ObjectMeta.String(), \"ObjectMeta\", \"ObjectMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PartialObjectMetadataList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]PartialObjectMetadata{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += strings.Replace(strings.Replace(f.String(), \"PartialObjectMetadata\", \"PartialObjectMetadata\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&PartialObjectMetadataList{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(this.ListMeta.String(), \"ListMeta\", \"ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Patch) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Patch{`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *PatchOptions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&PatchOptions{`,\n\t\t`DryRun:` + fmt.Sprintf(\"%v\", this.DryRun) + `,`,\n\t\t`Force:` + valueToStringGenerated(this.Force) + `,`,\n\t\t`FieldManager:` + fmt.Sprintf(\"%v\", this.FieldManager) + `,`,\n\t\t`FieldValidation:` + fmt.Sprintf(\"%v\", this.FieldValidation) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Preconditions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Preconditions{`,\n\t\t`UID:` + valueToStringGenerated(this.UID) + `,`,\n\t\t`ResourceVersion:` + valueToStringGenerated(this.ResourceVersion) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *RootPaths) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RootPaths{`,\n\t\t`Paths:` + fmt.Sprintf(\"%v\", this.Paths) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *ServerAddressByClientCIDR) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&ServerAddressByClientCIDR{`,\n\t\t`ClientCIDR:` + fmt.Sprintf(\"%v\", this.ClientCIDR) + `,`,\n\t\t`ServerAddress:` + fmt.Sprintf(\"%v\", this.ServerAddress) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Status) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Status{`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(this.ListMeta.String(), \"ListMeta\", \"ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Status:` + fmt.Sprintf(\"%v\", this.Status) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`Reason:` + fmt.Sprintf(\"%v\", this.Reason) + `,`,\n\t\t`Details:` + strings.Replace(this.Details.String(), \"StatusDetails\", \"StatusDetails\", 1) + `,`,\n\t\t`Code:` + fmt.Sprintf(\"%v\", this.Code) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatusCause) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&StatusCause{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Message:` + fmt.Sprintf(\"%v\", this.Message) + `,`,\n\t\t`Field:` + fmt.Sprintf(\"%v\", this.Field) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *StatusDetails) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForCauses := \"[]StatusCause{\"\n\tfor _, f := range this.Causes {\n\t\trepeatedStringForCauses += strings.Replace(strings.Replace(f.String(), \"StatusCause\", \"StatusCause\", 1), `&`, ``, 1) + \",\"\n\t}\n\trepeatedStringForCauses += \"}\"\n\ts := strings.Join([]string{`&StatusDetails{`,\n\t\t`Name:` + fmt.Sprintf(\"%v\", this.Name) + `,`,\n\t\t`Group:` + fmt.Sprintf(\"%v\", this.Group) + `,`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`Causes:` + repeatedStringForCauses + `,`,\n\t\t`RetryAfterSeconds:` + fmt.Sprintf(\"%v\", this.RetryAfterSeconds) + `,`,\n\t\t`UID:` + fmt.Sprintf(\"%v\", this.UID) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TableOptions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&TableOptions{`,\n\t\t`IncludeObject:` + fmt.Sprintf(\"%v\", this.IncludeObject) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Timestamp) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Timestamp{`,\n\t\t`Seconds:` + fmt.Sprintf(\"%v\", this.Seconds) + `,`,\n\t\t`Nanos:` + fmt.Sprintf(\"%v\", this.Nanos) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TypeMeta) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&TypeMeta{`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`APIVersion:` + fmt.Sprintf(\"%v\", this.APIVersion) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *UpdateOptions) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&UpdateOptions{`,\n\t\t`DryRun:` + fmt.Sprintf(\"%v\", this.DryRun) + `,`,\n\t\t`FieldManager:` + fmt.Sprintf(\"%v\", this.FieldManager) + `,`,\n\t\t`FieldValidation:` + fmt.Sprintf(\"%v\", this.FieldValidation) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *WatchEvent) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&WatchEvent{`,\n\t\t`Type:` + fmt.Sprintf(\"%v\", this.Type) + `,`,\n\t\t`Object:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.Object), \"RawExtension\", \"runtime.RawExtension\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *APIGroup) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: APIGroup: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: APIGroup: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Versions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Versions = append(m.Versions, GroupVersionForDiscovery{})\n\t\t\tif err := m.Versions[len(m.Versions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PreferredVersion\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.PreferredVersion.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServerAddressByClientCIDRs\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ServerAddressByClientCIDRs = append(m.ServerAddressByClientCIDRs, ServerAddressByClientCIDR{})\n\t\t\tif err := m.ServerAddressByClientCIDRs[len(m.ServerAddressByClientCIDRs)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *APIGroupList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: APIGroupList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: APIGroupList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Groups\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Groups = append(m.Groups, APIGroup{})\n\t\t\tif err := m.Groups[len(m.Groups)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *APIResource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: APIResource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: APIResource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespaced\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Namespaced = bool(v != 0)\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Verbs\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Verbs == nil {\n\t\t\t\tm.Verbs = Verbs{}\n\t\t\t}\n\t\t\tif err := m.Verbs.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ShortNames\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ShortNames = append(m.ShortNames, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SingularName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SingularName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Categories\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Categories = append(m.Categories, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Group\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Group = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Version\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Version = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StorageVersionHash\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.StorageVersionHash = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *APIResourceList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: APIResourceList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: APIResourceList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field GroupVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.GroupVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIResources\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIResources = append(m.APIResources, APIResource{})\n\t\t\tif err := m.APIResources[len(m.APIResources)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *APIVersions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: APIVersions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: APIVersions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Versions\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Versions = append(m.Versions, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServerAddressByClientCIDRs\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ServerAddressByClientCIDRs = append(m.ServerAddressByClientCIDRs, ServerAddressByClientCIDR{})\n\t\t\tif err := m.ServerAddressByClientCIDRs[len(m.ServerAddressByClientCIDRs)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ApplyOptions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ApplyOptions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ApplyOptions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DryRun\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.DryRun = append(m.DryRun, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Force\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Force = bool(v != 0)\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FieldManager\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FieldManager = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Condition) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Condition: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Condition: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = ConditionStatus(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObservedGeneration\", wireType)\n\t\t\t}\n\t\t\tm.ObservedGeneration = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.ObservedGeneration |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LastTransitionTime\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *CreateOptions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: CreateOptions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: CreateOptions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DryRun\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.DryRun = append(m.DryRun, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FieldManager\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FieldManager = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FieldValidation\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FieldValidation = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *DeleteOptions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: DeleteOptions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: DeleteOptions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field GracePeriodSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.GracePeriodSeconds = &v\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Preconditions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Preconditions == nil {\n\t\t\t\tm.Preconditions = &Preconditions{}\n\t\t\t}\n\t\t\tif err := m.Preconditions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field OrphanDependents\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.OrphanDependents = &b\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field PropagationPolicy\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := DeletionPropagation(dAtA[iNdEx:postIndex])\n\t\t\tm.PropagationPolicy = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DryRun\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.DryRun = append(m.DryRun, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IgnoreStoreReadErrorWithClusterBreakingPotential\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.IgnoreStoreReadErrorWithClusterBreakingPotential = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Duration) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Duration: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Duration: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Duration\", wireType)\n\t\t\t}\n\t\t\tm.Duration = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Duration |= time.Duration(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FieldSelectorRequirement) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FieldSelectorRequirement: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FieldSelectorRequirement: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Key\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Key = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Operator\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Operator = FieldSelectorOperator(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Values\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Values = append(m.Values, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *FieldsV1) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: FieldsV1: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: FieldsV1: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Raw\", wireType)\n\t\t\t}\n\t\t\tvar byteLen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tbyteLen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif byteLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + byteLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Raw = append(m.Raw[:0], dAtA[iNdEx:postIndex]...)\n\t\t\tif m.Raw == nil {\n\t\t\t\tm.Raw = []byte{}\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *GetOptions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GetOptions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GetOptions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *GroupKind) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GroupKind: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GroupKind: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Group\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Group = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *GroupResource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GroupResource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GroupResource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Group\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Group = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resource\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resource = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *GroupVersion) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GroupVersion: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GroupVersion: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Group\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Group = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Version\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Version = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *GroupVersionForDiscovery) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GroupVersionForDiscovery: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GroupVersionForDiscovery: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field GroupVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.GroupVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Version\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Version = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *GroupVersionKind) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GroupVersionKind: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GroupVersionKind: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Group\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Group = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Version\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Version = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *GroupVersionResource) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: GroupVersionResource: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: GroupVersionResource: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Group\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Group = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Version\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Version = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Resource\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Resource = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LabelSelector) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LabelSelector: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LabelSelector: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchLabels\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.MatchLabels == nil {\n\t\t\t\tm.MatchLabels = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.MatchLabels[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field MatchExpressions\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.MatchExpressions = append(m.MatchExpressions, LabelSelectorRequirement{})\n\t\t\tif err := m.MatchExpressions[len(m.MatchExpressions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *LabelSelectorRequirement) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: LabelSelectorRequirement: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: LabelSelectorRequirement: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Key\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Key = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Operator\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Operator = LabelSelectorOperator(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Values\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Values = append(m.Values, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *List) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: List: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: List: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, runtime.RawExtension{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ListMeta) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ListMeta: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ListMeta: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SelfLink\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SelfLink = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Continue\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Continue = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RemainingItemCount\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.RemainingItemCount = &v\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ListOptions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ListOptions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ListOptions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field LabelSelector\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.LabelSelector = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FieldSelector\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FieldSelector = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Watch\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Watch = bool(v != 0)\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TimeoutSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.TimeoutSeconds = &v\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Limit\", wireType)\n\t\t\t}\n\t\t\tm.Limit = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Limit |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Continue\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Continue = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field AllowWatchBookmarks\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.AllowWatchBookmarks = bool(v != 0)\n\t\tcase 10:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceVersionMatch\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceVersionMatch = ResourceVersionMatch(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 11:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SendInitialEvents\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.SendInitialEvents = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ManagedFieldsEntry) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ManagedFieldsEntry: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ManagedFieldsEntry: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Manager\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Manager = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Operation\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Operation = ManagedFieldsOperationType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Time\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Time == nil {\n\t\t\t\tm.Time = &Time{}\n\t\t\t}\n\t\t\tif err := m.Time.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FieldsType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FieldsType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FieldsV1\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.FieldsV1 == nil {\n\t\t\t\tm.FieldsV1 = &FieldsV1{}\n\t\t\t}\n\t\t\tif err := m.FieldsV1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Subresource\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Subresource = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ObjectMeta) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectMeta: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ObjectMeta: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field GenerateName\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.GenerateName = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Namespace\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Namespace = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field SelfLink\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.SelfLink = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.UID = k8s_io_apimachinery_pkg_types.UID(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ResourceVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Generation\", wireType)\n\t\t\t}\n\t\t\tm.Generation = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Generation |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 8:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field CreationTimestamp\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.CreationTimestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 9:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DeletionTimestamp\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.DeletionTimestamp == nil {\n\t\t\t\tm.DeletionTimestamp = &Time{}\n\t\t\t}\n\t\t\tif err := m.DeletionTimestamp.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 10:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DeletionGracePeriodSeconds\", wireType)\n\t\t\t}\n\t\t\tvar v int64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.DeletionGracePeriodSeconds = &v\n\t\tcase 11:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Labels\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Labels == nil {\n\t\t\t\tm.Labels = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Labels[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 12:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Annotations\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Annotations == nil {\n\t\t\t\tm.Annotations = make(map[string]string)\n\t\t\t}\n\t\t\tvar mapkey string\n\t\t\tvar mapvalue string\n\t\t\tfor iNdEx < postIndex {\n\t\t\t\tentryPreIndex := iNdEx\n\t\t\t\tvar wire uint64\n\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\tiNdEx++\n\t\t\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfieldNum := int32(wire >> 3)\n\t\t\t\tif fieldNum == 1 {\n\t\t\t\t\tvar stringLenmapkey uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapkey |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapkey := int(stringLenmapkey)\n\t\t\t\t\tif intStringLenmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapkey := iNdEx + intStringLenmapkey\n\t\t\t\t\tif postStringIndexmapkey < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapkey > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapkey = string(dAtA[iNdEx:postStringIndexmapkey])\n\t\t\t\t\tiNdEx = postStringIndexmapkey\n\t\t\t\t} else if fieldNum == 2 {\n\t\t\t\t\tvar stringLenmapvalue uint64\n\t\t\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\t\t\tif shift >= 64 {\n\t\t\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif iNdEx >= l {\n\t\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t\t}\n\t\t\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\t\t\tiNdEx++\n\t\t\t\t\t\tstringLenmapvalue |= uint64(b&0x7F) << shift\n\t\t\t\t\t\tif b < 0x80 {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tintStringLenmapvalue := int(stringLenmapvalue)\n\t\t\t\t\tif intStringLenmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tpostStringIndexmapvalue := iNdEx + intStringLenmapvalue\n\t\t\t\t\tif postStringIndexmapvalue < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif postStringIndexmapvalue > l {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tmapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])\n\t\t\t\t\tiNdEx = postStringIndexmapvalue\n\t\t\t\t} else {\n\t\t\t\t\tiNdEx = entryPreIndex\n\t\t\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t\t\t}\n\t\t\t\t\tif (iNdEx + skippy) > postIndex {\n\t\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tiNdEx += skippy\n\t\t\t\t}\n\t\t\t}\n\t\t\tm.Annotations[mapkey] = mapvalue\n\t\t\tiNdEx = postIndex\n\t\tcase 13:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field OwnerReferences\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.OwnerReferences = append(m.OwnerReferences, OwnerReference{})\n\t\t\tif err := m.OwnerReferences[len(m.OwnerReferences)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 14:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Finalizers\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Finalizers = append(m.Finalizers, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 17:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ManagedFields\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ManagedFields = append(m.ManagedFields, ManagedFieldsEntry{})\n\t\t\tif err := m.ManagedFields[len(m.ManagedFields)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *OwnerReference) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: OwnerReference: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: OwnerReference: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.UID = k8s_io_apimachinery_pkg_types.UID(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Controller\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Controller = &b\n\t\tcase 7:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field BlockOwnerDeletion\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.BlockOwnerDeletion = &b\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PartialObjectMetadata) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PartialObjectMetadata: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PartialObjectMetadata: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ObjectMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PartialObjectMetadataList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PartialObjectMetadataList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PartialObjectMetadataList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, PartialObjectMetadata{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Patch) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Patch: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Patch: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *PatchOptions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PatchOptions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PatchOptions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DryRun\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.DryRun = append(m.DryRun, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Force\", wireType)\n\t\t\t}\n\t\t\tvar v int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tv |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tb := bool(v != 0)\n\t\t\tm.Force = &b\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FieldManager\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FieldManager = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FieldValidation\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FieldValidation = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Preconditions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Preconditions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Preconditions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := k8s_io_apimachinery_pkg_types.UID(dAtA[iNdEx:postIndex])\n\t\t\tm.UID = &s\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ResourceVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\ts := string(dAtA[iNdEx:postIndex])\n\t\t\tm.ResourceVersion = &s\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *RootPaths) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RootPaths: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RootPaths: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Paths\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Paths = append(m.Paths, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *ServerAddressByClientCIDR) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: ServerAddressByClientCIDR: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: ServerAddressByClientCIDR: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ClientCIDR\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ClientCIDR = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ServerAddress\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ServerAddress = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Status) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Status: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Status: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Status\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Status = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Reason\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Reason = StatusReason(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Details\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif m.Details == nil {\n\t\t\t\tm.Details = &StatusDetails{}\n\t\t\t}\n\t\t\tif err := m.Details.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 6:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Code\", wireType)\n\t\t\t}\n\t\t\tm.Code = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Code |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatusCause) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatusCause: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatusCause: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = CauseType(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Message\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Message = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Field\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Field = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *StatusDetails) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: StatusDetails: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: StatusDetails: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Name\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Name = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Group\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Group = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Causes\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Causes = append(m.Causes, StatusCause{})\n\t\t\tif err := m.Causes[len(m.Causes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 5:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field RetryAfterSeconds\", wireType)\n\t\t\t}\n\t\t\tm.RetryAfterSeconds = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.RetryAfterSeconds |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 6:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field UID\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.UID = k8s_io_apimachinery_pkg_types.UID(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TableOptions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TableOptions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TableOptions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IncludeObject\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.IncludeObject = IncludeObjectPolicy(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Timestamp) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Timestamp: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Timestamp: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Seconds\", wireType)\n\t\t\t}\n\t\t\tm.Seconds = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Seconds |= int64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Nanos\", wireType)\n\t\t\t}\n\t\t\tm.Nanos = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Nanos |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TypeMeta) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TypeMeta: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TypeMeta: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *UpdateOptions) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: UpdateOptions: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: UpdateOptions: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field DryRun\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.DryRun = append(m.DryRun, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FieldManager\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FieldManager = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field FieldValidation\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.FieldValidation = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Verbs) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Verbs: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Verbs: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\t*m = append(*m, string(dAtA[iNdEx:postIndex]))\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *WatchEvent) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: WatchEvent: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: WatchEvent: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Type = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Object\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.Object.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.apimachinery.pkg.apis.meta.v1;\n\nimport \"k8s.io/apimachinery/pkg/runtime/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/apimachinery/pkg/apis/meta/v1\";\n\n// APIGroup contains the name, the supported versions, and the preferred version\n// of a group.\nmessage APIGroup {\n  // name is the name of the group.\n  optional string name = 1;\n\n  // versions are the versions supported in this group.\n  // +listType=atomic\n  repeated GroupVersionForDiscovery versions = 2;\n\n  // preferredVersion is the version preferred by the API server, which\n  // probably is the storage version.\n  // +optional\n  optional GroupVersionForDiscovery preferredVersion = 3;\n\n  // a map of client CIDR to server address that is serving this group.\n  // This is to help clients reach servers in the most network-efficient way possible.\n  // Clients can use the appropriate server address as per the CIDR that they match.\n  // In case of multiple matches, clients should use the longest matching CIDR.\n  // The server returns only those CIDRs that it thinks that the client can match.\n  // For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.\n  // Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.\n  // +optional\n  // +listType=atomic\n  repeated ServerAddressByClientCIDR serverAddressByClientCIDRs = 4;\n}\n\n// APIGroupList is a list of APIGroup, to allow clients to discover the API at\n// /apis.\nmessage APIGroupList {\n  // groups is a list of APIGroup.\n  // +listType=atomic\n  repeated APIGroup groups = 1;\n}\n\n// APIResource specifies the name of a resource and whether it is namespaced.\nmessage APIResource {\n  // name is the plural name of the resource.\n  optional string name = 1;\n\n  // singularName is the singular name of the resource.  This allows clients to handle plural and singular opaquely.\n  // The singularName is more correct for reporting status on a single item and both singular and plural are allowed\n  // from the kubectl CLI interface.\n  optional string singularName = 6;\n\n  // namespaced indicates if a resource is namespaced or not.\n  optional bool namespaced = 2;\n\n  // group is the preferred group of the resource.  Empty implies the group of the containing resource list.\n  // For subresources, this may have a different value, for example: Scale\".\n  optional string group = 8;\n\n  // version is the preferred version of the resource.  Empty implies the version of the containing resource list\n  // For subresources, this may have a different value, for example: v1 (while inside a v1beta1 version of the core resource's group)\".\n  optional string version = 9;\n\n  // kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')\n  optional string kind = 3;\n\n  // verbs is a list of supported kube verbs (this includes get, list, watch, create,\n  // update, patch, delete, deletecollection, and proxy)\n  optional Verbs verbs = 4;\n\n  // shortNames is a list of suggested short names of the resource.\n  // +listType=atomic\n  repeated string shortNames = 5;\n\n  // categories is a list of the grouped resources this resource belongs to (e.g. 'all')\n  // +listType=atomic\n  repeated string categories = 7;\n\n  // The hash value of the storage version, the version this resource is\n  // converted to when written to the data store. Value must be treated\n  // as opaque by clients. Only equality comparison on the value is valid.\n  // This is an alpha feature and may change or be removed in the future.\n  // The field is populated by the apiserver only if the\n  // StorageVersionHash feature gate is enabled.\n  // This field will remain optional even if it graduates.\n  // +optional\n  optional string storageVersionHash = 10;\n}\n\n// APIResourceList is a list of APIResource, it is used to expose the name of the\n// resources supported in a specific group and version, and if the resource\n// is namespaced.\nmessage APIResourceList {\n  // groupVersion is the group and version this APIResourceList is for.\n  optional string groupVersion = 1;\n\n  // resources contains the name of the resources and if they are namespaced.\n  // +listType=atomic\n  repeated APIResource resources = 2;\n}\n\n// APIVersions lists the versions that are available, to allow clients to\n// discover the API at /api, which is the root path of the legacy v1 API.\n//\n// +protobuf.options.(gogoproto.goproto_stringer)=false\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\nmessage APIVersions {\n  // versions are the api versions that are available.\n  // +listType=atomic\n  repeated string versions = 1;\n\n  // a map of client CIDR to server address that is serving this group.\n  // This is to help clients reach servers in the most network-efficient way possible.\n  // Clients can use the appropriate server address as per the CIDR that they match.\n  // In case of multiple matches, clients should use the longest matching CIDR.\n  // The server returns only those CIDRs that it thinks that the client can match.\n  // For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.\n  // Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.\n  // +listType=atomic\n  repeated ServerAddressByClientCIDR serverAddressByClientCIDRs = 2;\n}\n\n// ApplyOptions may be provided when applying an API object.\n// FieldManager is required for apply requests.\n// ApplyOptions is equivalent to PatchOptions. It is provided as a convenience with documentation\n// that speaks specifically to how the options fields relate to apply.\nmessage ApplyOptions {\n  // When present, indicates that modifications should not be\n  // persisted. An invalid or unrecognized dryRun directive will\n  // result in an error response and no further processing of the\n  // request. Valid values are:\n  // - All: all dry run stages will be processed\n  // +optional\n  // +listType=atomic\n  repeated string dryRun = 1;\n\n  // Force is going to \"force\" Apply requests. It means user will\n  // re-acquire conflicting fields owned by other people.\n  optional bool force = 2;\n\n  // fieldManager is a name associated with the actor or entity\n  // that is making these changes. The value must be less than or\n  // 128 characters long, and only contain printable characters,\n  // as defined by https://golang.org/pkg/unicode/#IsPrint. This\n  // field is required.\n  optional string fieldManager = 3;\n}\n\n// Condition contains details for one aspect of the current state of this API Resource.\n// ---\n// This struct is intended for direct use as an array at the field path .status.conditions.  For example,\n//\n// \ttype FooStatus struct{\n// \t    // Represents the observations of a foo's current state.\n// \t    // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\"\n// \t    // +patchMergeKey=type\n// \t    // +patchStrategy=merge\n// \t    // +listType=map\n// \t    // +listMapKey=type\n// \t    Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n//\n// \t    // other fields\n// \t}\nmessage Condition {\n  // type of condition in CamelCase or in foo.example.com/CamelCase.\n  // ---\n  // Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be\n  // useful (see .node.status.conditions), the ability to deconflict is important.\n  // The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)\n  // +required\n  // +kubebuilder:validation:Required\n  // +kubebuilder:validation:Pattern=`^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$`\n  // +kubebuilder:validation:MaxLength=316\n  optional string type = 1;\n\n  // status of the condition, one of True, False, Unknown.\n  // +required\n  // +kubebuilder:validation:Required\n  // +kubebuilder:validation:Enum=True;False;Unknown\n  optional string status = 2;\n\n  // observedGeneration represents the .metadata.generation that the condition was set based upon.\n  // For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date\n  // with respect to the current state of the instance.\n  // +optional\n  // +kubebuilder:validation:Minimum=0\n  optional int64 observedGeneration = 3;\n\n  // lastTransitionTime is the last time the condition transitioned from one status to another.\n  // This should be when the underlying condition changed.  If that is not known, then using the time when the API field changed is acceptable.\n  // +required\n  // +kubebuilder:validation:Required\n  // +kubebuilder:validation:Type=string\n  // +kubebuilder:validation:Format=date-time\n  optional Time lastTransitionTime = 4;\n\n  // reason contains a programmatic identifier indicating the reason for the condition's last transition.\n  // Producers of specific condition types may define expected values and meanings for this field,\n  // and whether the values are considered a guaranteed API.\n  // The value should be a CamelCase string.\n  // This field may not be empty.\n  // +required\n  // +kubebuilder:validation:Required\n  // +kubebuilder:validation:MaxLength=1024\n  // +kubebuilder:validation:MinLength=1\n  // +kubebuilder:validation:Pattern=`^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$`\n  optional string reason = 5;\n\n  // message is a human readable message indicating details about the transition.\n  // This may be an empty string.\n  // +required\n  // +kubebuilder:validation:Required\n  // +kubebuilder:validation:MaxLength=32768\n  optional string message = 6;\n}\n\n// CreateOptions may be provided when creating an API object.\nmessage CreateOptions {\n  // When present, indicates that modifications should not be\n  // persisted. An invalid or unrecognized dryRun directive will\n  // result in an error response and no further processing of the\n  // request. Valid values are:\n  // - All: all dry run stages will be processed\n  // +optional\n  // +listType=atomic\n  repeated string dryRun = 1;\n\n  // fieldManager is a name associated with the actor or entity\n  // that is making these changes. The value must be less than or\n  // 128 characters long, and only contain printable characters,\n  // as defined by https://golang.org/pkg/unicode/#IsPrint.\n  // +optional\n  optional string fieldManager = 3;\n\n  // fieldValidation instructs the server on how to handle\n  // objects in the request (POST/PUT/PATCH) containing unknown\n  // or duplicate fields. Valid values are:\n  // - Ignore: This will ignore any unknown fields that are silently\n  // dropped from the object, and will ignore all but the last duplicate\n  // field that the decoder encounters. This is the default behavior\n  // prior to v1.23.\n  // - Warn: This will send a warning via the standard warning response\n  // header for each unknown field that is dropped from the object, and\n  // for each duplicate field that is encountered. The request will\n  // still succeed if there are no other errors, and will only persist\n  // the last of any duplicate fields. This is the default in v1.23+\n  // - Strict: This will fail the request with a BadRequest error if\n  // any unknown fields would be dropped from the object, or if any\n  // duplicate fields are present. The error returned from the server\n  // will contain all unknown and duplicate fields encountered.\n  // +optional\n  optional string fieldValidation = 4;\n}\n\n// DeleteOptions may be provided when deleting an API object.\nmessage DeleteOptions {\n  // The duration in seconds before the object should be deleted. Value must be non-negative integer.\n  // The value zero indicates delete immediately. If this value is nil, the default grace period for the\n  // specified type will be used.\n  // Defaults to a per object value if not specified. zero means delete immediately.\n  // +optional\n  optional int64 gracePeriodSeconds = 1;\n\n  // Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be\n  // returned.\n  // +k8s:conversion-gen=false\n  // +optional\n  optional Preconditions preconditions = 2;\n\n  // Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7.\n  // Should the dependent objects be orphaned. If true/false, the \"orphan\"\n  // finalizer will be added to/removed from the object's finalizers list.\n  // Either this field or PropagationPolicy may be set, but not both.\n  // +optional\n  optional bool orphanDependents = 3;\n\n  // Whether and how garbage collection will be performed.\n  // Either this field or OrphanDependents may be set, but not both.\n  // The default policy is decided by the existing finalizer set in the\n  // metadata.finalizers and the resource-specific default policy.\n  // Acceptable values are: 'Orphan' - orphan the dependents; 'Background' -\n  // allow the garbage collector to delete the dependents in the background;\n  // 'Foreground' - a cascading policy that deletes all dependents in the\n  // foreground.\n  // +optional\n  optional string propagationPolicy = 4;\n\n  // When present, indicates that modifications should not be\n  // persisted. An invalid or unrecognized dryRun directive will\n  // result in an error response and no further processing of the\n  // request. Valid values are:\n  // - All: all dry run stages will be processed\n  // +optional\n  // +listType=atomic\n  repeated string dryRun = 5;\n\n  // if set to true, it will trigger an unsafe deletion of the resource in\n  // case the normal deletion flow fails with a corrupt object error.\n  // A resource is considered corrupt if it can not be retrieved from\n  // the underlying storage successfully because of a) its data can\n  // not be transformed e.g. decryption failure, or b) it fails\n  // to decode into an object.\n  // NOTE: unsafe deletion ignores finalizer constraints, skips\n  // precondition checks, and removes the object from the storage.\n  // WARNING: This may potentially break the cluster if the workload\n  // associated with the resource being unsafe-deleted relies on normal\n  // deletion flow. Use only if you REALLY know what you are doing.\n  // The default value is false, and the user must opt in to enable it\n  // +optional\n  optional bool ignoreStoreReadErrorWithClusterBreakingPotential = 6;\n}\n\n// Duration is a wrapper around time.Duration which supports correct\n// marshaling to YAML and JSON. In particular, it marshals into strings, which\n// can be used as map keys in json.\nmessage Duration {\n  optional int64 duration = 1;\n}\n\n// FieldSelectorRequirement is a selector that contains values, a key, and an operator that\n// relates the key and values.\nmessage FieldSelectorRequirement {\n  // key is the field selector key that the requirement applies to.\n  optional string key = 1;\n\n  // operator represents a key's relationship to a set of values.\n  // Valid operators are In, NotIn, Exists, DoesNotExist.\n  // The list of operators may grow in the future.\n  optional string operator = 2;\n\n  // values is an array of string values.\n  // If the operator is In or NotIn, the values array must be non-empty.\n  // If the operator is Exists or DoesNotExist, the values array must be empty.\n  // +optional\n  // +listType=atomic\n  repeated string values = 3;\n}\n\n// FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.\n//\n// Each key is either a '.' representing the field itself, and will always map to an empty set,\n// or a string representing a sub-field or item. The string will follow one of these four formats:\n// 'f:<name>', where <name> is the name of a field in a struct, or key in a map\n// 'v:<value>', where <value> is the exact json formatted value of a list item\n// 'i:<index>', where <index> is position of a item in a list\n// 'k:<keys>', where <keys> is a map of  a list item's key fields to their unique values\n// If a key maps to an empty Fields value, the field that key represents is part of the set.\n//\n// The exact format is defined in sigs.k8s.io/structured-merge-diff\n// +protobuf.options.(gogoproto.goproto_stringer)=false\nmessage FieldsV1 {\n  // Raw is the underlying serialization of this object.\n  optional bytes Raw = 1;\n}\n\n// GetOptions is the standard query options to the standard REST get call.\nmessage GetOptions {\n  // resourceVersion sets a constraint on what resource versions a request may be served from.\n  // See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for\n  // details.\n  //\n  // Defaults to unset\n  // +optional\n  optional string resourceVersion = 1;\n}\n\n// GroupKind specifies a Group and a Kind, but does not force a version.  This is useful for identifying\n// concepts during lookup stages without having partially valid types\n//\n// +protobuf.options.(gogoproto.goproto_stringer)=false\nmessage GroupKind {\n  optional string group = 1;\n\n  optional string kind = 2;\n}\n\n// GroupResource specifies a Group and a Resource, but does not force a version.  This is useful for identifying\n// concepts during lookup stages without having partially valid types\n//\n// +protobuf.options.(gogoproto.goproto_stringer)=false\nmessage GroupResource {\n  optional string group = 1;\n\n  optional string resource = 2;\n}\n\n// GroupVersion contains the \"group\" and the \"version\", which uniquely identifies the API.\n//\n// +protobuf.options.(gogoproto.goproto_stringer)=false\nmessage GroupVersion {\n  optional string group = 1;\n\n  optional string version = 2;\n}\n\n// GroupVersion contains the \"group/version\" and \"version\" string of a version.\n// It is made a struct to keep extensibility.\nmessage GroupVersionForDiscovery {\n  // groupVersion specifies the API group and version in the form \"group/version\"\n  optional string groupVersion = 1;\n\n  // version specifies the version in the form of \"version\". This is to save\n  // the clients the trouble of splitting the GroupVersion.\n  optional string version = 2;\n}\n\n// GroupVersionKind unambiguously identifies a kind.  It doesn't anonymously include GroupVersion\n// to avoid automatic coercion.  It doesn't use a GroupVersion to avoid custom marshalling\n//\n// +protobuf.options.(gogoproto.goproto_stringer)=false\nmessage GroupVersionKind {\n  optional string group = 1;\n\n  optional string version = 2;\n\n  optional string kind = 3;\n}\n\n// GroupVersionResource unambiguously identifies a resource.  It doesn't anonymously include GroupVersion\n// to avoid automatic coercion.  It doesn't use a GroupVersion to avoid custom marshalling\n//\n// +protobuf.options.(gogoproto.goproto_stringer)=false\nmessage GroupVersionResource {\n  optional string group = 1;\n\n  optional string version = 2;\n\n  optional string resource = 3;\n}\n\n// A label selector is a label query over a set of resources. The result of matchLabels and\n// matchExpressions are ANDed. An empty label selector matches all objects. A null\n// label selector matches no objects.\n// +structType=atomic\nmessage LabelSelector {\n  // matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\n  // map is equivalent to an element of matchExpressions, whose key field is \"key\", the\n  // operator is \"In\", and the values array contains only \"value\". The requirements are ANDed.\n  // +optional\n  map<string, string> matchLabels = 1;\n\n  // matchExpressions is a list of label selector requirements. The requirements are ANDed.\n  // +optional\n  // +listType=atomic\n  repeated LabelSelectorRequirement matchExpressions = 2;\n}\n\n// A label selector requirement is a selector that contains values, a key, and an operator that\n// relates the key and values.\nmessage LabelSelectorRequirement {\n  // key is the label key that the selector applies to.\n  optional string key = 1;\n\n  // operator represents a key's relationship to a set of values.\n  // Valid operators are In, NotIn, Exists and DoesNotExist.\n  optional string operator = 2;\n\n  // values is an array of string values. If the operator is In or NotIn,\n  // the values array must be non-empty. If the operator is Exists or DoesNotExist,\n  // the values array must be empty. This array is replaced during a strategic\n  // merge patch.\n  // +optional\n  // +listType=atomic\n  repeated string values = 3;\n}\n\n// List holds a list of objects, which may not be known by the server.\nmessage List {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional ListMeta metadata = 1;\n\n  // List of objects\n  repeated .k8s.io.apimachinery.pkg.runtime.RawExtension items = 2;\n}\n\n// ListMeta describes metadata that synthetic resources must have, including lists and\n// various status objects. A resource may have only one of {ObjectMeta, ListMeta}.\nmessage ListMeta {\n  // Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\n  // +optional\n  optional string selfLink = 1;\n\n  // String that identifies the server's internal version of this object that\n  // can be used by clients to determine when objects have changed.\n  // Value must be treated as opaque by clients and passed unmodified back to the server.\n  // Populated by the system.\n  // Read-only.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency\n  // +optional\n  optional string resourceVersion = 2;\n\n  // continue may be set if the user set a limit on the number of items returned, and indicates that\n  // the server has more data available. The value is opaque and may be used to issue another request\n  // to the endpoint that served this list to retrieve the next set of available objects. Continuing a\n  // consistent list may not be possible if the server configuration has changed or more than a few\n  // minutes have passed. The resourceVersion field returned when using this continue value will be\n  // identical to the value in the first response, unless you have received this token from an error\n  // message.\n  optional string continue = 3;\n\n  // remainingItemCount is the number of subsequent items in the list which are not included in this\n  // list response. If the list request contained label or field selectors, then the number of\n  // remaining items is unknown and the field will be left unset and omitted during serialization.\n  // If the list is complete (either because it is not chunking or because this is the last chunk),\n  // then there are no more remaining items and this field will be left unset and omitted during\n  // serialization.\n  // Servers older than v1.15 do not set this field.\n  // The intended use of the remainingItemCount is *estimating* the size of a collection. Clients\n  // should not rely on the remainingItemCount to be set or to be exact.\n  // +optional\n  optional int64 remainingItemCount = 4;\n}\n\n// ListOptions is the query options to a standard REST list call.\nmessage ListOptions {\n  // A selector to restrict the list of returned objects by their labels.\n  // Defaults to everything.\n  // +optional\n  optional string labelSelector = 1;\n\n  // A selector to restrict the list of returned objects by their fields.\n  // Defaults to everything.\n  // +optional\n  optional string fieldSelector = 2;\n\n  // Watch for changes to the described resources and return them as a stream of\n  // add, update, and remove notifications. Specify resourceVersion.\n  // +optional\n  optional bool watch = 3;\n\n  // allowWatchBookmarks requests watch events with type \"BOOKMARK\".\n  // Servers that do not implement bookmarks may ignore this flag and\n  // bookmarks are sent at the server's discretion. Clients should not\n  // assume bookmarks are returned at any specific interval, nor may they\n  // assume the server will send any BOOKMARK event during a session.\n  // If this is not a watch, this field is ignored.\n  // +optional\n  optional bool allowWatchBookmarks = 9;\n\n  // resourceVersion sets a constraint on what resource versions a request may be served from.\n  // See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for\n  // details.\n  //\n  // Defaults to unset\n  // +optional\n  optional string resourceVersion = 4;\n\n  // resourceVersionMatch determines how resourceVersion is applied to list calls.\n  // It is highly recommended that resourceVersionMatch be set for list calls where\n  // resourceVersion is set\n  // See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for\n  // details.\n  //\n  // Defaults to unset\n  // +optional\n  optional string resourceVersionMatch = 10;\n\n  // Timeout for the list/watch call.\n  // This limits the duration of the call, regardless of any activity or inactivity.\n  // +optional\n  optional int64 timeoutSeconds = 5;\n\n  // limit is a maximum number of responses to return for a list call. If more items exist, the\n  // server will set the `continue` field on the list metadata to a value that can be used with the\n  // same initial query to retrieve the next set of results. Setting a limit may return fewer than\n  // the requested amount of items (up to zero items) in the event all requested objects are\n  // filtered out and clients should only use the presence of the continue field to determine whether\n  // more results are available. Servers may choose not to support the limit argument and will return\n  // all of the available results. If limit is specified and the continue field is empty, clients may\n  // assume that no more results are available. This field is not supported if watch is true.\n  //\n  // The server guarantees that the objects returned when using continue will be identical to issuing\n  // a single list call without a limit - that is, no objects created, modified, or deleted after the\n  // first request is issued will be included in any subsequent continued requests. This is sometimes\n  // referred to as a consistent snapshot, and ensures that a client that is using limit to receive\n  // smaller chunks of a very large result can ensure they see all possible objects. If objects are\n  // updated during a chunked list the version of the object that was present at the time the first list\n  // result was calculated is returned.\n  optional int64 limit = 7;\n\n  // The continue option should be set when retrieving more results from the server. Since this value is\n  // server defined, clients may only use the continue value from a previous query result with identical\n  // query parameters (except for the value of continue) and the server may reject a continue value it\n  // does not recognize. If the specified continue value is no longer valid whether due to expiration\n  // (generally five to fifteen minutes) or a configuration change on the server, the server will\n  // respond with a 410 ResourceExpired error together with a continue token. If the client needs a\n  // consistent list, it must restart their list without the continue field. Otherwise, the client may\n  // send another list request with the token received with the 410 error, the server will respond with\n  // a list starting from the next key, but from the latest snapshot, which is inconsistent from the\n  // previous list results - objects that are created, modified, or deleted after the first list request\n  // will be included in the response, as long as their keys are after the \"next key\".\n  //\n  // This field is not supported when watch is true. Clients may start a watch from the last\n  // resourceVersion value returned by the server and not miss any modifications.\n  optional string continue = 8;\n\n  // `sendInitialEvents=true` may be set together with `watch=true`.\n  // In that case, the watch stream will begin with synthetic events to\n  // produce the current state of objects in the collection. Once all such\n  // events have been sent, a synthetic \"Bookmark\" event  will be sent.\n  // The bookmark will report the ResourceVersion (RV) corresponding to the\n  // set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation.\n  // Afterwards, the watch stream will proceed as usual, sending watch events\n  // corresponding to changes (subsequent to the RV) to objects watched.\n  //\n  // When `sendInitialEvents` option is set, we require `resourceVersionMatch`\n  // option to also be set. The semantic of the watch request is as following:\n  // - `resourceVersionMatch` = NotOlderThan\n  //   is interpreted as \"data at least as new as the provided `resourceVersion`\"\n  //   and the bookmark event is send when the state is synced\n  //   to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n  //   If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n  //   bookmark event is send when the state is synced at least to the moment\n  //   when request started being processed.\n  // - `resourceVersionMatch` set to any other value or unset\n  //   Invalid error is returned.\n  //\n  // Defaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward\n  // compatibility reasons) and to false otherwise.\n  // +optional\n  optional bool sendInitialEvents = 11;\n}\n\n// ManagedFieldsEntry is a workflow-id, a FieldSet and the group version of the resource\n// that the fieldset applies to.\nmessage ManagedFieldsEntry {\n  // Manager is an identifier of the workflow managing these fields.\n  optional string manager = 1;\n\n  // Operation is the type of operation which lead to this ManagedFieldsEntry being created.\n  // The only valid values for this field are 'Apply' and 'Update'.\n  optional string operation = 2;\n\n  // APIVersion defines the version of this resource that this field set\n  // applies to. The format is \"group/version\" just like the top-level\n  // APIVersion field. It is necessary to track the version of a field\n  // set because it cannot be automatically converted.\n  optional string apiVersion = 3;\n\n  // Time is the timestamp of when the ManagedFields entry was added. The\n  // timestamp will also be updated if a field is added, the manager\n  // changes any of the owned fields value or removes a field. The\n  // timestamp does not update when a field is removed from the entry\n  // because another manager took it over.\n  // +optional\n  optional Time time = 4;\n\n  // FieldsType is the discriminator for the different fields format and version.\n  // There is currently only one possible value: \"FieldsV1\"\n  optional string fieldsType = 6;\n\n  // FieldsV1 holds the first JSON version format as described in the \"FieldsV1\" type.\n  // +optional\n  optional FieldsV1 fieldsV1 = 7;\n\n  // Subresource is the name of the subresource used to update that object, or\n  // empty string if the object was updated through the main resource. The\n  // value of this field is used to distinguish between managers, even if they\n  // share the same name. For example, a status update will be distinct from a\n  // regular update using the same manager name.\n  // Note that the APIVersion field is not related to the Subresource field and\n  // it always corresponds to the version of the main resource.\n  optional string subresource = 8;\n}\n\n// MicroTime is version of Time with microsecond level precision.\n//\n// +protobuf.options.marshal=false\n// +protobuf.as=Timestamp\n// +protobuf.options.(gogoproto.goproto_stringer)=false\nmessage MicroTime {\n  // Represents seconds of UTC time since Unix epoch\n  // 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to\n  // 9999-12-31T23:59:59Z inclusive.\n  optional int64 seconds = 1;\n\n  // Non-negative fractions of a second at nanosecond resolution. Negative\n  // second values with fractions must still have non-negative nanos values\n  // that count forward in time. Must be from 0 to 999,999,999\n  // inclusive. This field may be limited in precision depending on context.\n  optional int32 nanos = 2;\n}\n\n// ObjectMeta is metadata that all persisted resources must have, which includes all objects\n// users must create.\nmessage ObjectMeta {\n  // Name must be unique within a namespace. Is required when creating resources, although\n  // some resources may allow a client to request the generation of an appropriate name\n  // automatically. Name is primarily intended for creation idempotence and configuration\n  // definition.\n  // Cannot be updated.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names\n  // +optional\n  optional string name = 1;\n\n  // GenerateName is an optional prefix, used by the server, to generate a unique\n  // name ONLY IF the Name field has not been provided.\n  // If this field is used, the name returned to the client will be different\n  // than the name passed. This value will also be combined with a unique suffix.\n  // The provided value has the same validation rules as the Name field,\n  // and may be truncated by the length of the suffix required to make the value\n  // unique on the server.\n  //\n  // If this field is specified and the generated name exists, the server will return a 409.\n  //\n  // Applied only if Name is not specified.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency\n  // +optional\n  optional string generateName = 2;\n\n  // Namespace defines the space within which each name must be unique. An empty namespace is\n  // equivalent to the \"default\" namespace, but \"default\" is the canonical representation.\n  // Not all objects are required to be scoped to a namespace - the value of this field for\n  // those objects will be empty.\n  //\n  // Must be a DNS_LABEL.\n  // Cannot be updated.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces\n  // +optional\n  optional string namespace = 3;\n\n  // Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\n  // +optional\n  optional string selfLink = 4;\n\n  // UID is the unique in time and space value for this object. It is typically generated by\n  // the server on successful creation of a resource and is not allowed to change on PUT\n  // operations.\n  //\n  // Populated by the system.\n  // Read-only.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids\n  // +optional\n  optional string uid = 5;\n\n  // An opaque value that represents the internal version of this object that can\n  // be used by clients to determine when objects have changed. May be used for optimistic\n  // concurrency, change detection, and the watch operation on a resource or set of resources.\n  // Clients must treat these values as opaque and passed unmodified back to the server.\n  // They may only be valid for a particular resource or set of resources.\n  //\n  // Populated by the system.\n  // Read-only.\n  // Value must be treated as opaque by clients and .\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency\n  // +optional\n  optional string resourceVersion = 6;\n\n  // A sequence number representing a specific generation of the desired state.\n  // Populated by the system. Read-only.\n  // +optional\n  optional int64 generation = 7;\n\n  // CreationTimestamp is a timestamp representing the server time when this object was\n  // created. It is not guaranteed to be set in happens-before order across separate operations.\n  // Clients may not set this value. It is represented in RFC3339 form and is in UTC.\n  //\n  // Populated by the system.\n  // Read-only.\n  // Null for lists.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional Time creationTimestamp = 8;\n\n  // DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This\n  // field is set by the server when a graceful deletion is requested by the user, and is not\n  // directly settable by a client. The resource is expected to be deleted (no longer visible\n  // from resource lists, and not reachable by name) after the time in this field, once the\n  // finalizers list is empty. As long as the finalizers list contains items, deletion is blocked.\n  // Once the deletionTimestamp is set, this value may not be unset or be set further into the\n  // future, although it may be shortened or the resource may be deleted prior to this time.\n  // For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react\n  // by sending a graceful termination signal to the containers in the pod. After that 30 seconds,\n  // the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup,\n  // remove the pod from the API. In the presence of network partitions, this object may still\n  // exist after this timestamp, until an administrator or automated process can determine the\n  // resource is fully terminated.\n  // If not set, graceful deletion of the object has not been requested.\n  //\n  // Populated by the system when a graceful deletion is requested.\n  // Read-only.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional Time deletionTimestamp = 9;\n\n  // Number of seconds allowed for this object to gracefully terminate before\n  // it will be removed from the system. Only set when deletionTimestamp is also set.\n  // May only be shortened.\n  // Read-only.\n  // +optional\n  optional int64 deletionGracePeriodSeconds = 10;\n\n  // Map of string keys and values that can be used to organize and categorize\n  // (scope and select) objects. May match selectors of replication controllers\n  // and services.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels\n  // +optional\n  map<string, string> labels = 11;\n\n  // Annotations is an unstructured key value map stored with a resource that may be\n  // set by external tools to store and retrieve arbitrary metadata. They are not\n  // queryable and should be preserved when modifying objects.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations\n  // +optional\n  map<string, string> annotations = 12;\n\n  // List of objects depended by this object. If ALL objects in the list have\n  // been deleted, this object will be garbage collected. If this object is managed by a controller,\n  // then an entry in this list will point to this controller, with the controller field set to true.\n  // There cannot be more than one managing controller.\n  // +optional\n  // +patchMergeKey=uid\n  // +patchStrategy=merge\n  // +listType=map\n  // +listMapKey=uid\n  repeated OwnerReference ownerReferences = 13;\n\n  // Must be empty before the object is deleted from the registry. Each entry\n  // is an identifier for the responsible component that will remove the entry\n  // from the list. If the deletionTimestamp of the object is non-nil, entries\n  // in this list can only be removed.\n  // Finalizers may be processed and removed in any order.  Order is NOT enforced\n  // because it introduces significant risk of stuck finalizers.\n  // finalizers is a shared field, any actor with permission can reorder it.\n  // If the finalizer list is processed in order, then this can lead to a situation\n  // in which the component responsible for the first finalizer in the list is\n  // waiting for a signal (field value, external system, or other) produced by a\n  // component responsible for a finalizer later in the list, resulting in a deadlock.\n  // Without enforced ordering finalizers are free to order amongst themselves and\n  // are not vulnerable to ordering changes in the list.\n  // +optional\n  // +patchStrategy=merge\n  // +listType=set\n  repeated string finalizers = 14;\n\n  // ManagedFields maps workflow-id and version to the set of fields\n  // that are managed by that workflow. This is mostly for internal\n  // housekeeping, and users typically shouldn't need to set or\n  // understand this field. A workflow can be the user's name, a\n  // controller's name, or the name of a specific apply path like\n  // \"ci-cd\". The set of fields is always in the version that the\n  // workflow used when modifying the object.\n  //\n  // +optional\n  // +listType=atomic\n  repeated ManagedFieldsEntry managedFields = 17;\n}\n\n// OwnerReference contains enough information to let you identify an owning\n// object. An owning object must be in the same namespace as the dependent, or\n// be cluster-scoped, so there is no namespace field.\n// +structType=atomic\nmessage OwnerReference {\n  // API version of the referent.\n  optional string apiVersion = 5;\n\n  // Kind of the referent.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  optional string kind = 1;\n\n  // Name of the referent.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names\n  optional string name = 3;\n\n  // UID of the referent.\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids\n  optional string uid = 4;\n\n  // If true, this reference points to the managing controller.\n  // +optional\n  optional bool controller = 6;\n\n  // If true, AND if the owner has the \"foregroundDeletion\" finalizer, then\n  // the owner cannot be deleted from the key-value store until this\n  // reference is removed.\n  // See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion\n  // for how the garbage collector interacts with this field and enforces the foreground deletion.\n  // Defaults to false.\n  // To set this field, a user needs \"delete\" permission of the owner,\n  // otherwise 422 (Unprocessable Entity) will be returned.\n  // +optional\n  optional bool blockOwnerDeletion = 7;\n}\n\n// PartialObjectMetadata is a generic representation of any object with ObjectMeta. It allows clients\n// to get access to a particular ObjectMeta schema without knowing the details of the version.\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\nmessage PartialObjectMetadata {\n  // Standard object's metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n  // +optional\n  optional ObjectMeta metadata = 1;\n}\n\n// PartialObjectMetadataList contains a list of objects containing only their metadata\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\nmessage PartialObjectMetadataList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional ListMeta metadata = 1;\n\n  // items contains each of the included items.\n  repeated PartialObjectMetadata items = 2;\n}\n\n// Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.\nmessage Patch {\n}\n\n// PatchOptions may be provided when patching an API object.\n// PatchOptions is meant to be a superset of UpdateOptions.\nmessage PatchOptions {\n  // When present, indicates that modifications should not be\n  // persisted. An invalid or unrecognized dryRun directive will\n  // result in an error response and no further processing of the\n  // request. Valid values are:\n  // - All: all dry run stages will be processed\n  // +optional\n  // +listType=atomic\n  repeated string dryRun = 1;\n\n  // Force is going to \"force\" Apply requests. It means user will\n  // re-acquire conflicting fields owned by other people. Force\n  // flag must be unset for non-apply patch requests.\n  // +optional\n  optional bool force = 2;\n\n  // fieldManager is a name associated with the actor or entity\n  // that is making these changes. The value must be less than or\n  // 128 characters long, and only contain printable characters,\n  // as defined by https://golang.org/pkg/unicode/#IsPrint. This\n  // field is required for apply requests\n  // (application/apply-patch) but optional for non-apply patch\n  // types (JsonPatch, MergePatch, StrategicMergePatch).\n  // +optional\n  optional string fieldManager = 3;\n\n  // fieldValidation instructs the server on how to handle\n  // objects in the request (POST/PUT/PATCH) containing unknown\n  // or duplicate fields. Valid values are:\n  // - Ignore: This will ignore any unknown fields that are silently\n  // dropped from the object, and will ignore all but the last duplicate\n  // field that the decoder encounters. This is the default behavior\n  // prior to v1.23.\n  // - Warn: This will send a warning via the standard warning response\n  // header for each unknown field that is dropped from the object, and\n  // for each duplicate field that is encountered. The request will\n  // still succeed if there are no other errors, and will only persist\n  // the last of any duplicate fields. This is the default in v1.23+\n  // - Strict: This will fail the request with a BadRequest error if\n  // any unknown fields would be dropped from the object, or if any\n  // duplicate fields are present. The error returned from the server\n  // will contain all unknown and duplicate fields encountered.\n  // +optional\n  optional string fieldValidation = 4;\n}\n\n// Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.\nmessage Preconditions {\n  // Specifies the target UID.\n  // +optional\n  optional string uid = 1;\n\n  // Specifies the target ResourceVersion\n  // +optional\n  optional string resourceVersion = 2;\n}\n\n// RootPaths lists the paths available at root.\n// For example: \"/healthz\", \"/apis\".\nmessage RootPaths {\n  // paths are the paths available at root.\n  // +listType=atomic\n  repeated string paths = 1;\n}\n\n// ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.\nmessage ServerAddressByClientCIDR {\n  // The CIDR with which clients can match their IP to figure out the server address that they should use.\n  optional string clientCIDR = 1;\n\n  // Address of this server, suitable for a client that matches the above CIDR.\n  // This can be a hostname, hostname:port, IP or IP:port.\n  optional string serverAddress = 2;\n}\n\n// Status is a return value for calls that don't return other objects.\nmessage Status {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional ListMeta metadata = 1;\n\n  // Status of the operation.\n  // One of: \"Success\" or \"Failure\".\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n  // +optional\n  optional string status = 2;\n\n  // A human-readable description of the status of this operation.\n  // +optional\n  optional string message = 3;\n\n  // A machine-readable description of why this operation is in the\n  // \"Failure\" status. If this value is empty there\n  // is no information available. A Reason clarifies an HTTP status\n  // code but does not override it.\n  // +optional\n  optional string reason = 4;\n\n  // Extended data associated with the reason.  Each reason may define its\n  // own extended details. This field is optional and the data returned\n  // is not guaranteed to conform to any schema except that defined by\n  // the reason type.\n  // +optional\n  // +listType=atomic\n  optional StatusDetails details = 5;\n\n  // Suggested HTTP return code for this status, 0 if not set.\n  // +optional\n  optional int32 code = 6;\n}\n\n// StatusCause provides more information about an api.Status failure, including\n// cases when multiple errors are encountered.\nmessage StatusCause {\n  // A machine-readable description of the cause of the error. If this value is\n  // empty there is no information available.\n  // +optional\n  optional string reason = 1;\n\n  // A human-readable description of the cause of the error.  This field may be\n  // presented as-is to a reader.\n  // +optional\n  optional string message = 2;\n\n  // The field of the resource that has caused this error, as named by its JSON\n  // serialization. May include dot and postfix notation for nested attributes.\n  // Arrays are zero-indexed.  Fields may appear more than once in an array of\n  // causes due to fields having multiple errors.\n  // Optional.\n  //\n  // Examples:\n  //   \"name\" - the field \"name\" on the current resource\n  //   \"items[0].name\" - the field \"name\" on the first array entry in \"items\"\n  // +optional\n  optional string field = 3;\n}\n\n// StatusDetails is a set of additional properties that MAY be set by the\n// server to provide additional information about a response. The Reason\n// field of a Status object defines what attributes will be set. Clients\n// must ignore fields that do not match the defined type of each attribute,\n// and should assume that any attribute may be empty, invalid, or under\n// defined.\nmessage StatusDetails {\n  // The name attribute of the resource associated with the status StatusReason\n  // (when there is a single name which can be described).\n  // +optional\n  optional string name = 1;\n\n  // The group attribute of the resource associated with the status StatusReason.\n  // +optional\n  optional string group = 2;\n\n  // The kind attribute of the resource associated with the status StatusReason.\n  // On some operations may differ from the requested resource Kind.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional string kind = 3;\n\n  // UID of the resource.\n  // (when there is a single resource which can be described).\n  // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids\n  // +optional\n  optional string uid = 6;\n\n  // The Causes array includes more details associated with the StatusReason\n  // failure. Not all StatusReasons may provide detailed causes.\n  // +optional\n  // +listType=atomic\n  repeated StatusCause causes = 4;\n\n  // If specified, the time in seconds before the operation should be retried. Some errors may indicate\n  // the client must take an alternate action - for those errors this field may indicate how long to wait\n  // before taking the alternate action.\n  // +optional\n  optional int32 retryAfterSeconds = 5;\n}\n\n// TableOptions are used when a Table is requested by the caller.\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\nmessage TableOptions {\n  // includeObject decides whether to include each object along with its columnar information.\n  // Specifying \"None\" will return no object, specifying \"Object\" will return the full object contents, and\n  // specifying \"Metadata\" (the default) will return the object's metadata in the PartialObjectMetadata kind\n  // in version v1beta1 of the meta.k8s.io API group.\n  optional string includeObject = 1;\n}\n\n// Time is a wrapper around time.Time which supports correct\n// marshaling to YAML and JSON.  Wrappers are provided for many\n// of the factory methods that the time package offers.\n//\n// +protobuf.options.marshal=false\n// +protobuf.as=Timestamp\n// +protobuf.options.(gogoproto.goproto_stringer)=false\nmessage Time {\n  // Represents seconds of UTC time since Unix epoch\n  // 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to\n  // 9999-12-31T23:59:59Z inclusive.\n  optional int64 seconds = 1;\n\n  // Non-negative fractions of a second at nanosecond resolution. Negative\n  // second values with fractions must still have non-negative nanos values\n  // that count forward in time. Must be from 0 to 999,999,999\n  // inclusive. This field may be limited in precision depending on context.\n  optional int32 nanos = 2;\n}\n\n// Timestamp is a struct that is equivalent to Time, but intended for\n// protobuf marshalling/unmarshalling. It is generated into a serialization\n// that matches Time. Do not use in Go structs.\nmessage Timestamp {\n  // Represents seconds of UTC time since Unix epoch\n  // 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to\n  // 9999-12-31T23:59:59Z inclusive.\n  optional int64 seconds = 1;\n\n  // Non-negative fractions of a second at nanosecond resolution. Negative\n  // second values with fractions must still have non-negative nanos values\n  // that count forward in time. Must be from 0 to 999,999,999\n  // inclusive. This field may be limited in precision depending on context.\n  optional int32 nanos = 2;\n}\n\n// TypeMeta describes an individual object in an API response or request\n// with strings representing the type of the object and its API schema version.\n// Structures that are versioned or persisted should inline TypeMeta.\n//\n// +k8s:deepcopy-gen=false\nmessage TypeMeta {\n  // Kind is a string value representing the REST resource this object represents.\n  // Servers may infer this from the endpoint the client submits requests to.\n  // Cannot be updated.\n  // In CamelCase.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional string kind = 1;\n\n  // APIVersion defines the versioned schema of this representation of an object.\n  // Servers should convert recognized schemas to the latest internal value, and\n  // may reject unrecognized values.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\n  // +optional\n  optional string apiVersion = 2;\n}\n\n// UpdateOptions may be provided when updating an API object.\n// All fields in UpdateOptions should also be present in PatchOptions.\nmessage UpdateOptions {\n  // When present, indicates that modifications should not be\n  // persisted. An invalid or unrecognized dryRun directive will\n  // result in an error response and no further processing of the\n  // request. Valid values are:\n  // - All: all dry run stages will be processed\n  // +optional\n  // +listType=atomic\n  repeated string dryRun = 1;\n\n  // fieldManager is a name associated with the actor or entity\n  // that is making these changes. The value must be less than or\n  // 128 characters long, and only contain printable characters,\n  // as defined by https://golang.org/pkg/unicode/#IsPrint.\n  // +optional\n  optional string fieldManager = 2;\n\n  // fieldValidation instructs the server on how to handle\n  // objects in the request (POST/PUT/PATCH) containing unknown\n  // or duplicate fields. Valid values are:\n  // - Ignore: This will ignore any unknown fields that are silently\n  // dropped from the object, and will ignore all but the last duplicate\n  // field that the decoder encounters. This is the default behavior\n  // prior to v1.23.\n  // - Warn: This will send a warning via the standard warning response\n  // header for each unknown field that is dropped from the object, and\n  // for each duplicate field that is encountered. The request will\n  // still succeed if there are no other errors, and will only persist\n  // the last of any duplicate fields. This is the default in v1.23+\n  // - Strict: This will fail the request with a BadRequest error if\n  // any unknown fields would be dropped from the object, or if any\n  // duplicate fields are present. The error returned from the server\n  // will contain all unknown and duplicate fields encountered.\n  // +optional\n  optional string fieldValidation = 3;\n}\n\n// Verbs masks the value so protobuf can generate\n//\n// +protobuf.nullable=true\n// +protobuf.options.(gogoproto.goproto_stringer)=false\nmessage Verbs {\n  // items, if empty, will result in an empty slice\n\n  repeated string items = 1;\n}\n\n// Event represents a single event to a watched resource.\n//\n// +protobuf=true\n// +k8s:deepcopy-gen=true\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\nmessage WatchEvent {\n  optional string type = 1;\n\n  // Object is:\n  //  * If Type is Added or Modified: the new state of the object.\n  //  * If Type is Deleted: the state of the object immediately before deletion.\n  //  * If Type is Error: *Status is recommended; other types may make sense\n  //    depending on context.\n  optional .k8s.io.apimachinery.pkg.runtime.RawExtension object = 2;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/group_version.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"strings\"\n\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupResource specifies a Group and a Resource, but does not force a version.  This is useful for identifying\n// concepts during lookup stages without having partially valid types\n//\n// +protobuf.options.(gogoproto.goproto_stringer)=false\ntype GroupResource struct {\n\tGroup    string `json:\"group\" protobuf:\"bytes,1,opt,name=group\"`\n\tResource string `json:\"resource\" protobuf:\"bytes,2,opt,name=resource\"`\n}\n\nfunc (gr *GroupResource) String() string {\n\tif gr == nil {\n\t\treturn \"<nil>\"\n\t}\n\tif len(gr.Group) == 0 {\n\t\treturn gr.Resource\n\t}\n\treturn gr.Resource + \".\" + gr.Group\n}\n\n// GroupVersionResource unambiguously identifies a resource.  It doesn't anonymously include GroupVersion\n// to avoid automatic coercion.  It doesn't use a GroupVersion to avoid custom marshalling\n//\n// +protobuf.options.(gogoproto.goproto_stringer)=false\ntype GroupVersionResource struct {\n\tGroup    string `json:\"group\" protobuf:\"bytes,1,opt,name=group\"`\n\tVersion  string `json:\"version\" protobuf:\"bytes,2,opt,name=version\"`\n\tResource string `json:\"resource\" protobuf:\"bytes,3,opt,name=resource\"`\n}\n\nfunc (gvr *GroupVersionResource) String() string {\n\tif gvr == nil {\n\t\treturn \"<nil>\"\n\t}\n\treturn strings.Join([]string{gvr.Group, \"/\", gvr.Version, \", Resource=\", gvr.Resource}, \"\")\n}\n\n// GroupKind specifies a Group and a Kind, but does not force a version.  This is useful for identifying\n// concepts during lookup stages without having partially valid types\n//\n// +protobuf.options.(gogoproto.goproto_stringer)=false\ntype GroupKind struct {\n\tGroup string `json:\"group\" protobuf:\"bytes,1,opt,name=group\"`\n\tKind  string `json:\"kind\" protobuf:\"bytes,2,opt,name=kind\"`\n}\n\nfunc (gk *GroupKind) String() string {\n\tif gk == nil {\n\t\treturn \"<nil>\"\n\t}\n\tif len(gk.Group) == 0 {\n\t\treturn gk.Kind\n\t}\n\treturn gk.Kind + \".\" + gk.Group\n}\n\n// GroupVersionKind unambiguously identifies a kind.  It doesn't anonymously include GroupVersion\n// to avoid automatic coercion.  It doesn't use a GroupVersion to avoid custom marshalling\n//\n// +protobuf.options.(gogoproto.goproto_stringer)=false\ntype GroupVersionKind struct {\n\tGroup   string `json:\"group\" protobuf:\"bytes,1,opt,name=group\"`\n\tVersion string `json:\"version\" protobuf:\"bytes,2,opt,name=version\"`\n\tKind    string `json:\"kind\" protobuf:\"bytes,3,opt,name=kind\"`\n}\n\nfunc (gvk GroupVersionKind) String() string {\n\treturn gvk.Group + \"/\" + gvk.Version + \", Kind=\" + gvk.Kind\n}\n\n// GroupVersion contains the \"group\" and the \"version\", which uniquely identifies the API.\n//\n// +protobuf.options.(gogoproto.goproto_stringer)=false\ntype GroupVersion struct {\n\tGroup   string `json:\"group\" protobuf:\"bytes,1,opt,name=group\"`\n\tVersion string `json:\"version\" protobuf:\"bytes,2,opt,name=version\"`\n}\n\n// Empty returns true if group and version are empty\nfunc (gv GroupVersion) Empty() bool {\n\treturn len(gv.Group) == 0 && len(gv.Version) == 0\n}\n\n// String puts \"group\" and \"version\" into a single \"group/version\" string. For the legacy v1\n// it returns \"v1\".\nfunc (gv GroupVersion) String() string {\n\t// special case the internal apiVersion for the legacy kube types\n\tif gv.Empty() {\n\t\treturn \"\"\n\t}\n\n\t// special case of \"v1\" for backward compatibility\n\tif len(gv.Group) == 0 && gv.Version == \"v1\" {\n\t\treturn gv.Version\n\t}\n\tif len(gv.Group) > 0 {\n\t\treturn gv.Group + \"/\" + gv.Version\n\t}\n\treturn gv.Version\n}\n\n// MarshalJSON implements the json.Marshaller interface.\nfunc (gv GroupVersion) MarshalJSON() ([]byte, error) {\n\ts := gv.String()\n\tif strings.Count(s, \"/\") > 1 {\n\t\treturn []byte{}, fmt.Errorf(\"illegal GroupVersion %v: contains more than one /\", s)\n\t}\n\treturn json.Marshal(s)\n}\n\nfunc (gv *GroupVersion) unmarshal(value []byte) error {\n\tvar s string\n\tif err := json.Unmarshal(value, &s); err != nil {\n\t\treturn err\n\t}\n\tparsed, err := schema.ParseGroupVersion(s)\n\tif err != nil {\n\t\treturn err\n\t}\n\tgv.Group, gv.Version = parsed.Group, parsed.Version\n\treturn nil\n}\n\n// UnmarshalJSON implements the json.Unmarshaller interface.\nfunc (gv *GroupVersion) UnmarshalJSON(value []byte) error {\n\treturn gv.unmarshal(value)\n}\n\n// UnmarshalTEXT implements the Ugorji's encoding.TextUnmarshaler interface.\nfunc (gv *GroupVersion) UnmarshalText(value []byte) error {\n\treturn gv.unmarshal(value)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/helpers.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\n\t\"k8s.io/apimachinery/pkg/fields\"\n\t\"k8s.io/apimachinery/pkg/labels\"\n\tcbor \"k8s.io/apimachinery/pkg/runtime/serializer/cbor/direct\"\n\t\"k8s.io/apimachinery/pkg/selection\"\n\t\"k8s.io/apimachinery/pkg/types\"\n\tutiljson \"k8s.io/apimachinery/pkg/util/json\"\n)\n\n// LabelSelectorAsSelector converts the LabelSelector api type into a struct that implements\n// labels.Selector\n// Note: This function should be kept in sync with the selector methods in pkg/labels/selector.go\nfunc LabelSelectorAsSelector(ps *LabelSelector) (labels.Selector, error) {\n\tif ps == nil {\n\t\treturn labels.Nothing(), nil\n\t}\n\tif len(ps.MatchLabels)+len(ps.MatchExpressions) == 0 {\n\t\treturn labels.Everything(), nil\n\t}\n\trequirements := make([]labels.Requirement, 0, len(ps.MatchLabels)+len(ps.MatchExpressions))\n\tfor k, v := range ps.MatchLabels {\n\t\tr, err := labels.NewRequirement(k, selection.Equals, []string{v})\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\trequirements = append(requirements, *r)\n\t}\n\tfor _, expr := range ps.MatchExpressions {\n\t\tvar op selection.Operator\n\t\tswitch expr.Operator {\n\t\tcase LabelSelectorOpIn:\n\t\t\top = selection.In\n\t\tcase LabelSelectorOpNotIn:\n\t\t\top = selection.NotIn\n\t\tcase LabelSelectorOpExists:\n\t\t\top = selection.Exists\n\t\tcase LabelSelectorOpDoesNotExist:\n\t\t\top = selection.DoesNotExist\n\t\tdefault:\n\t\t\treturn nil, fmt.Errorf(\"%q is not a valid label selector operator\", expr.Operator)\n\t\t}\n\t\tr, err := labels.NewRequirement(expr.Key, op, append([]string(nil), expr.Values...))\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\trequirements = append(requirements, *r)\n\t}\n\tselector := labels.NewSelector()\n\tselector = selector.Add(requirements...)\n\treturn selector, nil\n}\n\n// LabelSelectorAsMap converts the LabelSelector api type into a map of strings, ie. the\n// original structure of a label selector. Operators that cannot be converted into plain\n// labels (Exists, DoesNotExist, NotIn, and In with more than one value) will result in\n// an error.\nfunc LabelSelectorAsMap(ps *LabelSelector) (map[string]string, error) {\n\tif ps == nil {\n\t\treturn nil, nil\n\t}\n\tselector := map[string]string{}\n\tfor k, v := range ps.MatchLabels {\n\t\tselector[k] = v\n\t}\n\tfor _, expr := range ps.MatchExpressions {\n\t\tswitch expr.Operator {\n\t\tcase LabelSelectorOpIn:\n\t\t\tif len(expr.Values) != 1 {\n\t\t\t\treturn selector, fmt.Errorf(\"operator %q without a single value cannot be converted into the old label selector format\", expr.Operator)\n\t\t\t}\n\t\t\t// Should we do anything in case this will override a previous key-value pair?\n\t\t\tselector[expr.Key] = expr.Values[0]\n\t\tcase LabelSelectorOpNotIn, LabelSelectorOpExists, LabelSelectorOpDoesNotExist:\n\t\t\treturn selector, fmt.Errorf(\"operator %q cannot be converted into the old label selector format\", expr.Operator)\n\t\tdefault:\n\t\t\treturn selector, fmt.Errorf(\"%q is not a valid selector operator\", expr.Operator)\n\t\t}\n\t}\n\treturn selector, nil\n}\n\n// ParseToLabelSelector parses a string representing a selector into a LabelSelector object.\n// Note: This function should be kept in sync with the parser in pkg/labels/selector.go\nfunc ParseToLabelSelector(selector string) (*LabelSelector, error) {\n\treqs, err := labels.ParseToRequirements(selector)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"couldn't parse the selector string \\\"%s\\\": %v\", selector, err)\n\t}\n\n\tlabelSelector := &LabelSelector{\n\t\tMatchLabels:      map[string]string{},\n\t\tMatchExpressions: []LabelSelectorRequirement{},\n\t}\n\tfor _, req := range reqs {\n\t\tvar op LabelSelectorOperator\n\t\tswitch req.Operator() {\n\t\tcase selection.Equals, selection.DoubleEquals:\n\t\t\tvals := req.Values()\n\t\t\tif vals.Len() != 1 {\n\t\t\t\treturn nil, fmt.Errorf(\"equals operator must have exactly one value\")\n\t\t\t}\n\t\t\tval, ok := vals.PopAny()\n\t\t\tif !ok {\n\t\t\t\treturn nil, fmt.Errorf(\"equals operator has exactly one value but it cannot be retrieved\")\n\t\t\t}\n\t\t\tlabelSelector.MatchLabels[req.Key()] = val\n\t\t\tcontinue\n\t\tcase selection.In:\n\t\t\top = LabelSelectorOpIn\n\t\tcase selection.NotIn:\n\t\t\top = LabelSelectorOpNotIn\n\t\tcase selection.Exists:\n\t\t\top = LabelSelectorOpExists\n\t\tcase selection.DoesNotExist:\n\t\t\top = LabelSelectorOpDoesNotExist\n\t\tcase selection.GreaterThan, selection.LessThan:\n\t\t\t// Adding a separate case for these operators to indicate that this is deliberate\n\t\t\treturn nil, fmt.Errorf(\"%q isn't supported in label selectors\", req.Operator())\n\t\tdefault:\n\t\t\treturn nil, fmt.Errorf(\"%q is not a valid label selector operator\", req.Operator())\n\t\t}\n\t\tlabelSelector.MatchExpressions = append(labelSelector.MatchExpressions, LabelSelectorRequirement{\n\t\t\tKey:      req.Key(),\n\t\t\tOperator: op,\n\t\t\tValues:   req.Values().List(),\n\t\t})\n\t}\n\treturn labelSelector, nil\n}\n\n// SetAsLabelSelector converts the labels.Set object into a LabelSelector api object.\nfunc SetAsLabelSelector(ls labels.Set) *LabelSelector {\n\tif ls == nil {\n\t\treturn nil\n\t}\n\n\tselector := &LabelSelector{\n\t\tMatchLabels: make(map[string]string, len(ls)),\n\t}\n\tfor label, value := range ls {\n\t\tselector.MatchLabels[label] = value\n\t}\n\n\treturn selector\n}\n\n// FormatLabelSelector convert labelSelector into plain string\nfunc FormatLabelSelector(labelSelector *LabelSelector) string {\n\tselector, err := LabelSelectorAsSelector(labelSelector)\n\tif err != nil {\n\t\treturn \"<error>\"\n\t}\n\n\tl := selector.String()\n\tif len(l) == 0 {\n\t\tl = \"<none>\"\n\t}\n\treturn l\n}\n\nfunc ExtractGroupVersions(l *APIGroupList) []string {\n\tvar groupVersions []string\n\tfor _, g := range l.Groups {\n\t\tfor _, gv := range g.Versions {\n\t\t\tgroupVersions = append(groupVersions, gv.GroupVersion)\n\t\t}\n\t}\n\treturn groupVersions\n}\n\n// HasAnnotation returns a bool if passed in annotation exists\nfunc HasAnnotation(obj ObjectMeta, ann string) bool {\n\t_, found := obj.Annotations[ann]\n\treturn found\n}\n\n// SetMetaDataAnnotation sets the annotation and value\nfunc SetMetaDataAnnotation(obj *ObjectMeta, ann string, value string) {\n\tif obj.Annotations == nil {\n\t\tobj.Annotations = make(map[string]string)\n\t}\n\tobj.Annotations[ann] = value\n}\n\n// HasLabel returns a bool if passed in label exists\nfunc HasLabel(obj ObjectMeta, label string) bool {\n\t_, found := obj.Labels[label]\n\treturn found\n}\n\n// SetMetaDataLabel sets the label and value\nfunc SetMetaDataLabel(obj *ObjectMeta, label string, value string) {\n\tif obj.Labels == nil {\n\t\tobj.Labels = make(map[string]string)\n\t}\n\tobj.Labels[label] = value\n}\n\n// SingleObject returns a ListOptions for watching a single object.\nfunc SingleObject(meta ObjectMeta) ListOptions {\n\treturn ListOptions{\n\t\tFieldSelector:   fields.OneTermEqualSelector(\"metadata.name\", meta.Name).String(),\n\t\tResourceVersion: meta.ResourceVersion,\n\t}\n}\n\n// NewDeleteOptions returns a DeleteOptions indicating the resource should\n// be deleted within the specified grace period. Use zero to indicate\n// immediate deletion. If you would prefer to use the default grace period,\n// use &metav1.DeleteOptions{} directly.\nfunc NewDeleteOptions(grace int64) *DeleteOptions {\n\treturn &DeleteOptions{GracePeriodSeconds: &grace}\n}\n\n// NewPreconditionDeleteOptions returns a DeleteOptions with a UID precondition set.\nfunc NewPreconditionDeleteOptions(uid string) *DeleteOptions {\n\tu := types.UID(uid)\n\tp := Preconditions{UID: &u}\n\treturn &DeleteOptions{Preconditions: &p}\n}\n\n// NewUIDPreconditions returns a Preconditions with UID set.\nfunc NewUIDPreconditions(uid string) *Preconditions {\n\tu := types.UID(uid)\n\treturn &Preconditions{UID: &u}\n}\n\n// NewRVDeletionPrecondition returns a DeleteOptions with a ResourceVersion precondition set.\nfunc NewRVDeletionPrecondition(rv string) *DeleteOptions {\n\tp := Preconditions{ResourceVersion: &rv}\n\treturn &DeleteOptions{Preconditions: &p}\n}\n\n// HasObjectMetaSystemFieldValues returns true if fields that are managed by the system on ObjectMeta have values.\nfunc HasObjectMetaSystemFieldValues(meta Object) bool {\n\treturn !meta.GetCreationTimestamp().Time.IsZero() ||\n\t\tlen(meta.GetUID()) != 0\n}\n\n// ResetObjectMetaForStatus forces the meta fields for a status update to match the meta fields\n// for a pre-existing object. This is opt-in for new objects with Status subresource.\nfunc ResetObjectMetaForStatus(meta, existingMeta Object) {\n\tmeta.SetDeletionTimestamp(existingMeta.GetDeletionTimestamp())\n\tmeta.SetGeneration(existingMeta.GetGeneration())\n\tmeta.SetSelfLink(existingMeta.GetSelfLink())\n\tmeta.SetLabels(existingMeta.GetLabels())\n\tmeta.SetAnnotations(existingMeta.GetAnnotations())\n\tmeta.SetFinalizers(existingMeta.GetFinalizers())\n\tmeta.SetOwnerReferences(existingMeta.GetOwnerReferences())\n\t// managedFields must be preserved since it's been modified to\n\t// track changed fields in the status update.\n\t//meta.SetManagedFields(existingMeta.GetManagedFields())\n}\n\n// MarshalJSON implements json.Marshaler\n// MarshalJSON may get called on pointers or values, so implement MarshalJSON on value.\n// http://stackoverflow.com/questions/21390979/custom-marshaljson-never-gets-called-in-go\nfunc (f FieldsV1) MarshalJSON() ([]byte, error) {\n\tif f.Raw == nil {\n\t\treturn []byte(\"null\"), nil\n\t}\n\tif f.getContentType() == fieldsV1InvalidOrValidCBORObject {\n\t\tvar u map[string]interface{}\n\t\tif err := cbor.Unmarshal(f.Raw, &u); err != nil {\n\t\t\treturn nil, fmt.Errorf(\"metav1.FieldsV1 cbor invalid: %w\", err)\n\t\t}\n\t\treturn utiljson.Marshal(u)\n\t}\n\treturn f.Raw, nil\n}\n\n// UnmarshalJSON implements json.Unmarshaler\nfunc (f *FieldsV1) UnmarshalJSON(b []byte) error {\n\tif f == nil {\n\t\treturn errors.New(\"metav1.FieldsV1: UnmarshalJSON on nil pointer\")\n\t}\n\tif !bytes.Equal(b, []byte(\"null\")) {\n\t\tf.Raw = append(f.Raw[0:0], b...)\n\t}\n\treturn nil\n}\n\nvar _ json.Marshaler = FieldsV1{}\nvar _ json.Unmarshaler = &FieldsV1{}\n\nfunc (f FieldsV1) MarshalCBOR() ([]byte, error) {\n\tif f.Raw == nil {\n\t\treturn cbor.Marshal(nil)\n\t}\n\tif f.getContentType() == fieldsV1InvalidOrValidJSONObject {\n\t\tvar u map[string]interface{}\n\t\tif err := utiljson.Unmarshal(f.Raw, &u); err != nil {\n\t\t\treturn nil, fmt.Errorf(\"metav1.FieldsV1 json invalid: %w\", err)\n\t\t}\n\t\treturn cbor.Marshal(u)\n\t}\n\treturn f.Raw, nil\n}\n\nvar cborNull = []byte{0xf6}\n\nfunc (f *FieldsV1) UnmarshalCBOR(b []byte) error {\n\tif f == nil {\n\t\treturn errors.New(\"metav1.FieldsV1: UnmarshalCBOR on nil pointer\")\n\t}\n\tif !bytes.Equal(b, cborNull) {\n\t\tf.Raw = append(f.Raw[0:0], b...)\n\t}\n\treturn nil\n}\n\nconst (\n\t// fieldsV1InvalidOrEmpty indicates that a FieldsV1 either contains no raw bytes or its raw\n\t// bytes don't represent an allowable value in any supported encoding.\n\tfieldsV1InvalidOrEmpty = iota\n\n\t// fieldsV1InvalidOrValidJSONObject indicates that a FieldV1 either contains raw bytes that\n\t// are a valid JSON encoding of an allowable value or don't represent an allowable value in\n\t// any supported encoding.\n\tfieldsV1InvalidOrValidJSONObject\n\n\t// fieldsV1InvalidOrValidCBORObject indicates that a FieldV1 either contains raw bytes that\n\t// are a valid CBOR encoding of an allowable value or don't represent an allowable value in\n\t// any supported encoding.\n\tfieldsV1InvalidOrValidCBORObject\n)\n\n// getContentType returns one of fieldsV1InvalidOrEmpty, fieldsV1InvalidOrValidJSONObject,\n// fieldsV1InvalidOrValidCBORObject based on the value of Raw.\n//\n// Raw can be encoded in JSON or CBOR and is only valid if it is empty, null, or an object (map)\n// value. It is invalid if it contains a JSON string, number, boolean, or array. If Raw is nonempty\n// and represents an allowable value, then the initial byte unambiguously distinguishes a\n// JSON-encoded value from a CBOR-encoded value.\n//\n// A valid JSON-encoded value can begin with any of the four JSON whitespace characters, the first\n// character 'n' of null, or '{' (0x09, 0x0a, 0x0d, 0x20, 0x6e, or 0x7b, respectively). A valid\n// CBOR-encoded value can begin with the null simple value, an initial byte with major type \"map\",\n// or, if a tag-enclosed map, an initial byte with major type \"tag\" (0xf6, 0xa0...0xbf, or\n// 0xc6...0xdb). The two sets of valid initial bytes don't intersect.\nfunc (f FieldsV1) getContentType() int {\n\tif len(f.Raw) > 0 {\n\t\tp := f.Raw[0]\n\t\tswitch p {\n\t\tcase 'n', '{', '\\t', '\\r', '\\n', ' ':\n\t\t\treturn fieldsV1InvalidOrValidJSONObject\n\t\tcase 0xf6: // null\n\t\t\treturn fieldsV1InvalidOrValidCBORObject\n\t\tdefault:\n\t\t\tif p >= 0xa0 && p <= 0xbf /* map */ || p >= 0xc6 && p <= 0xdb /* tag */ {\n\t\t\t\treturn fieldsV1InvalidOrValidCBORObject\n\t\t\t}\n\t\t}\n\t}\n\treturn fieldsV1InvalidOrEmpty\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/labels.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// Clones the given selector and returns a new selector with the given key and value added.\n// Returns the given selector, if labelKey is empty.\nfunc CloneSelectorAndAddLabel(selector *LabelSelector, labelKey, labelValue string) *LabelSelector {\n\tif labelKey == \"\" {\n\t\t// Don't need to add a label.\n\t\treturn selector\n\t}\n\n\t// Clone.\n\tnewSelector := selector.DeepCopy()\n\n\tif newSelector.MatchLabels == nil {\n\t\tnewSelector.MatchLabels = make(map[string]string)\n\t}\n\n\tnewSelector.MatchLabels[labelKey] = labelValue\n\n\treturn newSelector\n}\n\n// AddLabelToSelector returns a selector with the given key and value added to the given selector's MatchLabels.\nfunc AddLabelToSelector(selector *LabelSelector, labelKey, labelValue string) *LabelSelector {\n\tif labelKey == \"\" {\n\t\t// Don't need to add a label.\n\t\treturn selector\n\t}\n\tif selector.MatchLabels == nil {\n\t\tselector.MatchLabels = make(map[string]string)\n\t}\n\tselector.MatchLabels[labelKey] = labelValue\n\treturn selector\n}\n\n// SelectorHasLabel checks if the given selector contains the given label key in its MatchLabels\nfunc SelectorHasLabel(selector *LabelSelector, labelKey string) bool {\n\treturn len(selector.MatchLabels[labelKey]) > 0\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/meta.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/types\"\n)\n\n// TODO: move this, Object, List, and Type to a different package\ntype ObjectMetaAccessor interface {\n\tGetObjectMeta() Object\n}\n\n// Object lets you work with object metadata from any of the versioned or\n// internal API objects. Attempting to set or retrieve a field on an object that does\n// not support that field (Name, UID, Namespace on lists) will be a no-op and return\n// a default value.\ntype Object interface {\n\tGetNamespace() string\n\tSetNamespace(namespace string)\n\tGetName() string\n\tSetName(name string)\n\tGetGenerateName() string\n\tSetGenerateName(name string)\n\tGetUID() types.UID\n\tSetUID(uid types.UID)\n\tGetResourceVersion() string\n\tSetResourceVersion(version string)\n\tGetGeneration() int64\n\tSetGeneration(generation int64)\n\tGetSelfLink() string\n\tSetSelfLink(selfLink string)\n\tGetCreationTimestamp() Time\n\tSetCreationTimestamp(timestamp Time)\n\tGetDeletionTimestamp() *Time\n\tSetDeletionTimestamp(timestamp *Time)\n\tGetDeletionGracePeriodSeconds() *int64\n\tSetDeletionGracePeriodSeconds(*int64)\n\tGetLabels() map[string]string\n\tSetLabels(labels map[string]string)\n\tGetAnnotations() map[string]string\n\tSetAnnotations(annotations map[string]string)\n\tGetFinalizers() []string\n\tSetFinalizers(finalizers []string)\n\tGetOwnerReferences() []OwnerReference\n\tSetOwnerReferences([]OwnerReference)\n\tGetManagedFields() []ManagedFieldsEntry\n\tSetManagedFields(managedFields []ManagedFieldsEntry)\n}\n\n// ListMetaAccessor retrieves the list interface from an object\ntype ListMetaAccessor interface {\n\tGetListMeta() ListInterface\n}\n\n// Common lets you work with core metadata from any of the versioned or\n// internal API objects. Attempting to set or retrieve a field on an object that does\n// not support that field will be a no-op and return a default value.\n// TODO: move this, and TypeMeta and ListMeta, to a different package\ntype Common interface {\n\tGetResourceVersion() string\n\tSetResourceVersion(version string)\n\tGetSelfLink() string\n\tSetSelfLink(selfLink string)\n}\n\n// ListInterface lets you work with list metadata from any of the versioned or\n// internal API objects. Attempting to set or retrieve a field on an object that does\n// not support that field will be a no-op and return a default value.\n// TODO: move this, and TypeMeta and ListMeta, to a different package\ntype ListInterface interface {\n\tGetResourceVersion() string\n\tSetResourceVersion(version string)\n\tGetSelfLink() string\n\tSetSelfLink(selfLink string)\n\tGetContinue() string\n\tSetContinue(c string)\n\tGetRemainingItemCount() *int64\n\tSetRemainingItemCount(c *int64)\n}\n\n// Type exposes the type and APIVersion of versioned or internal API objects.\n// TODO: move this, and TypeMeta and ListMeta, to a different package\ntype Type interface {\n\tGetAPIVersion() string\n\tSetAPIVersion(version string)\n\tGetKind() string\n\tSetKind(kind string)\n}\n\nvar _ ListInterface = &ListMeta{}\n\nfunc (meta *ListMeta) GetResourceVersion() string        { return meta.ResourceVersion }\nfunc (meta *ListMeta) SetResourceVersion(version string) { meta.ResourceVersion = version }\nfunc (meta *ListMeta) GetSelfLink() string               { return meta.SelfLink }\nfunc (meta *ListMeta) SetSelfLink(selfLink string)       { meta.SelfLink = selfLink }\nfunc (meta *ListMeta) GetContinue() string               { return meta.Continue }\nfunc (meta *ListMeta) SetContinue(c string)              { meta.Continue = c }\nfunc (meta *ListMeta) GetRemainingItemCount() *int64     { return meta.RemainingItemCount }\nfunc (meta *ListMeta) SetRemainingItemCount(c *int64)    { meta.RemainingItemCount = c }\n\nfunc (obj *TypeMeta) GetObjectKind() schema.ObjectKind { return obj }\n\n// SetGroupVersionKind satisfies the ObjectKind interface for all objects that embed TypeMeta\nfunc (obj *TypeMeta) SetGroupVersionKind(gvk schema.GroupVersionKind) {\n\tobj.APIVersion, obj.Kind = gvk.ToAPIVersionAndKind()\n}\n\n// GroupVersionKind satisfies the ObjectKind interface for all objects that embed TypeMeta\nfunc (obj *TypeMeta) GroupVersionKind() schema.GroupVersionKind {\n\treturn schema.FromAPIVersionAndKind(obj.APIVersion, obj.Kind)\n}\n\nfunc (obj *ListMeta) GetListMeta() ListInterface { return obj }\n\nfunc (obj *ObjectMeta) GetObjectMeta() Object { return obj }\n\n// Namespace implements metav1.Object for any object with an ObjectMeta typed field. Allows\n// fast, direct access to metadata fields for API objects.\nfunc (meta *ObjectMeta) GetNamespace() string                { return meta.Namespace }\nfunc (meta *ObjectMeta) SetNamespace(namespace string)       { meta.Namespace = namespace }\nfunc (meta *ObjectMeta) GetName() string                     { return meta.Name }\nfunc (meta *ObjectMeta) SetName(name string)                 { meta.Name = name }\nfunc (meta *ObjectMeta) GetGenerateName() string             { return meta.GenerateName }\nfunc (meta *ObjectMeta) SetGenerateName(generateName string) { meta.GenerateName = generateName }\nfunc (meta *ObjectMeta) GetUID() types.UID                   { return meta.UID }\nfunc (meta *ObjectMeta) SetUID(uid types.UID)                { meta.UID = uid }\nfunc (meta *ObjectMeta) GetResourceVersion() string          { return meta.ResourceVersion }\nfunc (meta *ObjectMeta) SetResourceVersion(version string)   { meta.ResourceVersion = version }\nfunc (meta *ObjectMeta) GetGeneration() int64                { return meta.Generation }\nfunc (meta *ObjectMeta) SetGeneration(generation int64)      { meta.Generation = generation }\nfunc (meta *ObjectMeta) GetSelfLink() string                 { return meta.SelfLink }\nfunc (meta *ObjectMeta) SetSelfLink(selfLink string)         { meta.SelfLink = selfLink }\nfunc (meta *ObjectMeta) GetCreationTimestamp() Time          { return meta.CreationTimestamp }\nfunc (meta *ObjectMeta) SetCreationTimestamp(creationTimestamp Time) {\n\tmeta.CreationTimestamp = creationTimestamp\n}\nfunc (meta *ObjectMeta) GetDeletionTimestamp() *Time { return meta.DeletionTimestamp }\nfunc (meta *ObjectMeta) SetDeletionTimestamp(deletionTimestamp *Time) {\n\tmeta.DeletionTimestamp = deletionTimestamp\n}\nfunc (meta *ObjectMeta) GetDeletionGracePeriodSeconds() *int64 {\n\treturn meta.DeletionGracePeriodSeconds\n}\nfunc (meta *ObjectMeta) SetDeletionGracePeriodSeconds(deletionGracePeriodSeconds *int64) {\n\tmeta.DeletionGracePeriodSeconds = deletionGracePeriodSeconds\n}\nfunc (meta *ObjectMeta) GetLabels() map[string]string                 { return meta.Labels }\nfunc (meta *ObjectMeta) SetLabels(labels map[string]string)           { meta.Labels = labels }\nfunc (meta *ObjectMeta) GetAnnotations() map[string]string            { return meta.Annotations }\nfunc (meta *ObjectMeta) SetAnnotations(annotations map[string]string) { meta.Annotations = annotations }\nfunc (meta *ObjectMeta) GetFinalizers() []string                      { return meta.Finalizers }\nfunc (meta *ObjectMeta) SetFinalizers(finalizers []string)            { meta.Finalizers = finalizers }\nfunc (meta *ObjectMeta) GetOwnerReferences() []OwnerReference         { return meta.OwnerReferences }\nfunc (meta *ObjectMeta) SetOwnerReferences(references []OwnerReference) {\n\tmeta.OwnerReferences = references\n}\nfunc (meta *ObjectMeta) GetManagedFields() []ManagedFieldsEntry { return meta.ManagedFields }\nfunc (meta *ObjectMeta) SetManagedFields(managedFields []ManagedFieldsEntry) {\n\tmeta.ManagedFields = managedFields\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/micro_time.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"encoding/json\"\n\t\"time\"\n\n\tcbor \"k8s.io/apimachinery/pkg/runtime/serializer/cbor/direct\"\n)\n\nconst RFC3339Micro = \"2006-01-02T15:04:05.000000Z07:00\"\n\n// MicroTime is version of Time with microsecond level precision.\n//\n// +protobuf.options.marshal=false\n// +protobuf.as=Timestamp\n// +protobuf.options.(gogoproto.goproto_stringer)=false\ntype MicroTime struct {\n\ttime.Time `protobuf:\"-\"`\n}\n\n// DeepCopy returns a deep-copy of the MicroTime value.  The underlying time.Time\n// type is effectively immutable in the time API, so it is safe to\n// copy-by-assign, despite the presence of (unexported) Pointer fields.\nfunc (t *MicroTime) DeepCopyInto(out *MicroTime) {\n\t*out = *t\n}\n\n// NewMicroTime returns a wrapped instance of the provided time\nfunc NewMicroTime(time time.Time) MicroTime {\n\treturn MicroTime{time}\n}\n\n// DateMicro returns the MicroTime corresponding to the supplied parameters\n// by wrapping time.Date.\nfunc DateMicro(year int, month time.Month, day, hour, min, sec, nsec int, loc *time.Location) MicroTime {\n\treturn MicroTime{time.Date(year, month, day, hour, min, sec, nsec, loc)}\n}\n\n// NowMicro returns the current local time.\nfunc NowMicro() MicroTime {\n\treturn MicroTime{time.Now()}\n}\n\n// IsZero returns true if the value is nil or time is zero.\nfunc (t *MicroTime) IsZero() bool {\n\tif t == nil {\n\t\treturn true\n\t}\n\treturn t.Time.IsZero()\n}\n\n// Before reports whether the time instant t is before u.\nfunc (t *MicroTime) Before(u *MicroTime) bool {\n\tif t != nil && u != nil {\n\t\treturn t.Time.Before(u.Time)\n\t}\n\treturn false\n}\n\n// Equal reports whether the time instant t is equal to u.\nfunc (t *MicroTime) Equal(u *MicroTime) bool {\n\tif t == nil && u == nil {\n\t\treturn true\n\t}\n\tif t != nil && u != nil {\n\t\treturn t.Time.Equal(u.Time)\n\t}\n\treturn false\n}\n\n// BeforeTime reports whether the time instant t is before second-lever precision u.\nfunc (t *MicroTime) BeforeTime(u *Time) bool {\n\tif t != nil && u != nil {\n\t\treturn t.Time.Before(u.Time)\n\t}\n\treturn false\n}\n\n// EqualTime reports whether the time instant t is equal to second-lever precision u.\nfunc (t *MicroTime) EqualTime(u *Time) bool {\n\tif t == nil && u == nil {\n\t\treturn true\n\t}\n\tif t != nil && u != nil {\n\t\treturn t.Time.Equal(u.Time)\n\t}\n\treturn false\n}\n\n// UnixMicro returns the local time corresponding to the given Unix time\n// by wrapping time.Unix.\nfunc UnixMicro(sec int64, nsec int64) MicroTime {\n\treturn MicroTime{time.Unix(sec, nsec)}\n}\n\n// UnmarshalJSON implements the json.Unmarshaller interface.\nfunc (t *MicroTime) UnmarshalJSON(b []byte) error {\n\tif len(b) == 4 && string(b) == \"null\" {\n\t\tt.Time = time.Time{}\n\t\treturn nil\n\t}\n\n\tvar str string\n\terr := json.Unmarshal(b, &str)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tpt, err := time.Parse(RFC3339Micro, str)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tt.Time = pt.Local()\n\treturn nil\n}\n\nfunc (t *MicroTime) UnmarshalCBOR(b []byte) error {\n\tvar s *string\n\tif err := cbor.Unmarshal(b, &s); err != nil {\n\t\treturn err\n\t}\n\tif s == nil {\n\t\tt.Time = time.Time{}\n\t\treturn nil\n\t}\n\n\tparsed, err := time.Parse(RFC3339Micro, *s)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tt.Time = parsed.Local()\n\treturn nil\n}\n\n// UnmarshalQueryParameter converts from a URL query parameter value to an object\nfunc (t *MicroTime) UnmarshalQueryParameter(str string) error {\n\tif len(str) == 0 {\n\t\tt.Time = time.Time{}\n\t\treturn nil\n\t}\n\t// Tolerate requests from older clients that used JSON serialization to build query params\n\tif len(str) == 4 && str == \"null\" {\n\t\tt.Time = time.Time{}\n\t\treturn nil\n\t}\n\n\tpt, err := time.Parse(RFC3339Micro, str)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tt.Time = pt.Local()\n\treturn nil\n}\n\n// MarshalJSON implements the json.Marshaler interface.\nfunc (t MicroTime) MarshalJSON() ([]byte, error) {\n\tif t.IsZero() {\n\t\t// Encode unset/nil objects as JSON's \"null\".\n\t\treturn []byte(\"null\"), nil\n\t}\n\n\treturn json.Marshal(t.UTC().Format(RFC3339Micro))\n}\n\nfunc (t MicroTime) MarshalCBOR() ([]byte, error) {\n\tif t.IsZero() {\n\t\treturn cbor.Marshal(nil)\n\t}\n\treturn cbor.Marshal(t.UTC().Format(RFC3339Micro))\n}\n\n// OpenAPISchemaType is used by the kube-openapi generator when constructing\n// the OpenAPI spec of this type.\n//\n// See: https://github.com/kubernetes/kube-openapi/tree/master/pkg/generators\nfunc (_ MicroTime) OpenAPISchemaType() []string { return []string{\"string\"} }\n\n// OpenAPISchemaFormat is used by the kube-openapi generator when constructing\n// the OpenAPI spec of this type.\nfunc (_ MicroTime) OpenAPISchemaFormat() string { return \"date-time\" }\n\n// MarshalQueryParameter converts to a URL query parameter value\nfunc (t MicroTime) MarshalQueryParameter() (string, error) {\n\tif t.IsZero() {\n\t\t// Encode unset/nil objects as an empty string\n\t\treturn \"\", nil\n\t}\n\n\treturn t.UTC().Format(RFC3339Micro), nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/micro_time_fuzz.go",
    "content": "//go:build !notest\n// +build !notest\n\n/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"time\"\n\n\tfuzz \"github.com/google/gofuzz\"\n)\n\n// Fuzz satisfies fuzz.Interface.\nfunc (t *MicroTime) Fuzz(c fuzz.Continue) {\n\tif t == nil {\n\t\treturn\n\t}\n\t// Allow for about 1000 years of randomness. Accurate to a tenth of\n\t// micro second. Leave off nanoseconds because JSON doesn't\n\t// represent them so they can't round-trip properly.\n\tt.Time = time.Unix(c.Rand.Int63n(1000*365*24*60*60), 1000*c.Rand.Int63n(1000000))\n}\n\n// ensure MicroTime implements fuzz.Interface\nvar _ fuzz.Interface = &MicroTime{}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/micro_time_proto.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"time\"\n)\n\n// Timestamp is declared in time_proto.go\n\n// Timestamp returns the Time as a new Timestamp value.\nfunc (m *MicroTime) ProtoMicroTime() *Timestamp {\n\tif m == nil {\n\t\treturn &Timestamp{}\n\t}\n\n\t// truncate precision to microseconds to match JSON marshaling/unmarshaling\n\ttruncatedNanoseconds := time.Duration(m.Time.Nanosecond()).Truncate(time.Microsecond)\n\treturn &Timestamp{\n\t\tSeconds: m.Time.Unix(),\n\t\tNanos:   int32(truncatedNanoseconds),\n\t}\n}\n\n// Size implements the protobuf marshalling interface.\nfunc (m *MicroTime) Size() (n int) {\n\tif m == nil || m.Time.IsZero() {\n\t\treturn 0\n\t}\n\treturn m.ProtoMicroTime().Size()\n}\n\n// Reset implements the protobuf marshalling interface.\nfunc (m *MicroTime) Unmarshal(data []byte) error {\n\tif len(data) == 0 {\n\t\tm.Time = time.Time{}\n\t\treturn nil\n\t}\n\tp := Timestamp{}\n\tif err := p.Unmarshal(data); err != nil {\n\t\treturn err\n\t}\n\n\t// truncate precision to microseconds to match JSON marshaling/unmarshaling\n\ttruncatedNanoseconds := time.Duration(p.Nanos).Truncate(time.Microsecond)\n\tm.Time = time.Unix(p.Seconds, int64(truncatedNanoseconds)).Local()\n\treturn nil\n}\n\n// Marshal implements the protobuf marshalling interface.\nfunc (m *MicroTime) Marshal() (data []byte, err error) {\n\tif m == nil || m.Time.IsZero() {\n\t\treturn nil, nil\n\t}\n\treturn m.ProtoMicroTime().Marshal()\n}\n\n// MarshalTo implements the protobuf marshalling interface.\nfunc (m *MicroTime) MarshalTo(data []byte) (int, error) {\n\tif m == nil || m.Time.IsZero() {\n\t\treturn 0, nil\n\t}\n\treturn m.ProtoMicroTime().MarshalTo(data)\n}\n\n// MarshalToSizedBuffer implements the protobuf marshalling interface.\nfunc (m *MicroTime) MarshalToSizedBuffer(data []byte) (int, error) {\n\tif m == nil || m.Time.IsZero() {\n\t\treturn 0, nil\n\t}\n\treturn m.ProtoMicroTime().MarshalToSizedBuffer(data)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/register.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\tutilruntime \"k8s.io/apimachinery/pkg/util/runtime\"\n)\n\n// GroupName is the group name for this API.\nconst GroupName = \"meta.k8s.io\"\n\nvar (\n\t// localSchemeBuilder is used to make compiler happy for autogenerated\n\t// conversions. However, it's not used.\n\tschemeBuilder      runtime.SchemeBuilder\n\tlocalSchemeBuilder = &schemeBuilder\n)\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1\"}\n\n// Unversioned is group version for unversioned API objects\n// TODO: this should be v1 probably\nvar Unversioned = schema.GroupVersion{Group: \"\", Version: \"v1\"}\n\n// WatchEventKind is name reserved for serializing watch events.\nconst WatchEventKind = \"WatchEvent\"\n\n// Kind takes an unqualified kind and returns a Group qualified GroupKind\nfunc Kind(kind string) schema.GroupKind {\n\treturn SchemeGroupVersion.WithKind(kind).GroupKind()\n}\n\n// scheme is the registry for the common types that adhere to the meta v1 API spec.\nvar scheme = runtime.NewScheme()\n\n// ParameterCodec knows about query parameters used with the meta v1 API spec.\nvar ParameterCodec = runtime.NewParameterCodec(scheme)\n\nvar optionsTypes = []runtime.Object{\n\t&ListOptions{},\n\t&GetOptions{},\n\t&DeleteOptions{},\n\t&CreateOptions{},\n\t&UpdateOptions{},\n\t&PatchOptions{},\n}\n\n// AddToGroupVersion registers common meta types into schemas.\nfunc AddToGroupVersion(scheme *runtime.Scheme, groupVersion schema.GroupVersion) {\n\tscheme.AddKnownTypeWithName(groupVersion.WithKind(WatchEventKind), &WatchEvent{})\n\tscheme.AddKnownTypeWithName(\n\t\tschema.GroupVersion{Group: groupVersion.Group, Version: runtime.APIVersionInternal}.WithKind(WatchEventKind),\n\t\t&InternalEvent{},\n\t)\n\t// Supports legacy code paths, most callers should use metav1.ParameterCodec for now\n\tscheme.AddKnownTypes(groupVersion, optionsTypes...)\n\t// Register Unversioned types under their own special group\n\tscheme.AddUnversionedTypes(Unversioned,\n\t\t&Status{},\n\t\t&APIVersions{},\n\t\t&APIGroupList{},\n\t\t&APIGroup{},\n\t\t&APIResourceList{},\n\t)\n\n\t// register manually. This usually goes through the SchemeBuilder, which we cannot use here.\n\tutilruntime.Must(RegisterConversions(scheme))\n\tutilruntime.Must(RegisterDefaults(scheme))\n}\n\n// AddMetaToScheme registers base meta types into schemas.\nfunc AddMetaToScheme(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&Table{},\n\t\t&TableOptions{},\n\t\t&PartialObjectMetadata{},\n\t\t&PartialObjectMetadataList{},\n\t)\n\n\treturn nil\n}\n\nfunc init() {\n\tscheme.AddUnversionedTypes(SchemeGroupVersion, optionsTypes...)\n\n\tutilruntime.Must(AddMetaToScheme(scheme))\n\n\t// register manually. This usually goes through the SchemeBuilder, which we cannot use here.\n\tutilruntime.Must(RegisterDefaults(scheme))\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/time.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"encoding/json\"\n\t\"time\"\n\n\tcbor \"k8s.io/apimachinery/pkg/runtime/serializer/cbor/direct\"\n)\n\n// Time is a wrapper around time.Time which supports correct\n// marshaling to YAML and JSON.  Wrappers are provided for many\n// of the factory methods that the time package offers.\n//\n// +protobuf.options.marshal=false\n// +protobuf.as=Timestamp\n// +protobuf.options.(gogoproto.goproto_stringer)=false\ntype Time struct {\n\ttime.Time `protobuf:\"-\"`\n}\n\n// DeepCopyInto creates a deep-copy of the Time value.  The underlying time.Time\n// type is effectively immutable in the time API, so it is safe to\n// copy-by-assign, despite the presence of (unexported) Pointer fields.\nfunc (t *Time) DeepCopyInto(out *Time) {\n\t*out = *t\n}\n\n// NewTime returns a wrapped instance of the provided time\nfunc NewTime(time time.Time) Time {\n\treturn Time{time}\n}\n\n// Date returns the Time corresponding to the supplied parameters\n// by wrapping time.Date.\nfunc Date(year int, month time.Month, day, hour, min, sec, nsec int, loc *time.Location) Time {\n\treturn Time{time.Date(year, month, day, hour, min, sec, nsec, loc)}\n}\n\n// Now returns the current local time.\nfunc Now() Time {\n\treturn Time{time.Now()}\n}\n\n// IsZero returns true if the value is nil or time is zero.\nfunc (t *Time) IsZero() bool {\n\tif t == nil {\n\t\treturn true\n\t}\n\treturn t.Time.IsZero()\n}\n\n// Before reports whether the time instant t is before u.\nfunc (t *Time) Before(u *Time) bool {\n\tif t != nil && u != nil {\n\t\treturn t.Time.Before(u.Time)\n\t}\n\treturn false\n}\n\n// Equal reports whether the time instant t is equal to u.\nfunc (t *Time) Equal(u *Time) bool {\n\tif t == nil && u == nil {\n\t\treturn true\n\t}\n\tif t != nil && u != nil {\n\t\treturn t.Time.Equal(u.Time)\n\t}\n\treturn false\n}\n\n// Unix returns the local time corresponding to the given Unix time\n// by wrapping time.Unix.\nfunc Unix(sec int64, nsec int64) Time {\n\treturn Time{time.Unix(sec, nsec)}\n}\n\n// Rfc3339Copy returns a copy of the Time at second-level precision.\nfunc (t Time) Rfc3339Copy() Time {\n\tcopied, _ := time.Parse(time.RFC3339, t.Format(time.RFC3339))\n\treturn Time{copied}\n}\n\n// UnmarshalJSON implements the json.Unmarshaller interface.\nfunc (t *Time) UnmarshalJSON(b []byte) error {\n\tif len(b) == 4 && string(b) == \"null\" {\n\t\tt.Time = time.Time{}\n\t\treturn nil\n\t}\n\n\tvar str string\n\terr := json.Unmarshal(b, &str)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tpt, err := time.Parse(time.RFC3339, str)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tt.Time = pt.Local()\n\treturn nil\n}\n\nfunc (t *Time) UnmarshalCBOR(b []byte) error {\n\tvar s *string\n\tif err := cbor.Unmarshal(b, &s); err != nil {\n\t\treturn err\n\t}\n\tif s == nil {\n\t\tt.Time = time.Time{}\n\t\treturn nil\n\t}\n\n\tparsed, err := time.Parse(time.RFC3339, *s)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tt.Time = parsed.Local()\n\treturn nil\n}\n\n// UnmarshalQueryParameter converts from a URL query parameter value to an object\nfunc (t *Time) UnmarshalQueryParameter(str string) error {\n\tif len(str) == 0 {\n\t\tt.Time = time.Time{}\n\t\treturn nil\n\t}\n\t// Tolerate requests from older clients that used JSON serialization to build query params\n\tif len(str) == 4 && str == \"null\" {\n\t\tt.Time = time.Time{}\n\t\treturn nil\n\t}\n\n\tpt, err := time.Parse(time.RFC3339, str)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tt.Time = pt.Local()\n\treturn nil\n}\n\n// MarshalJSON implements the json.Marshaler interface.\nfunc (t Time) MarshalJSON() ([]byte, error) {\n\tif t.IsZero() {\n\t\t// Encode unset/nil objects as JSON's \"null\".\n\t\treturn []byte(\"null\"), nil\n\t}\n\tbuf := make([]byte, 0, len(time.RFC3339)+2)\n\tbuf = append(buf, '\"')\n\t// time cannot contain non escapable JSON characters\n\tbuf = t.UTC().AppendFormat(buf, time.RFC3339)\n\tbuf = append(buf, '\"')\n\treturn buf, nil\n}\n\nfunc (t Time) MarshalCBOR() ([]byte, error) {\n\tif t.IsZero() {\n\t\treturn cbor.Marshal(nil)\n\t}\n\n\treturn cbor.Marshal(t.UTC().Format(time.RFC3339))\n}\n\n// ToUnstructured implements the value.UnstructuredConverter interface.\nfunc (t Time) ToUnstructured() interface{} {\n\tif t.IsZero() {\n\t\treturn nil\n\t}\n\tbuf := make([]byte, 0, len(time.RFC3339))\n\tbuf = t.UTC().AppendFormat(buf, time.RFC3339)\n\treturn string(buf)\n}\n\n// OpenAPISchemaType is used by the kube-openapi generator when constructing\n// the OpenAPI spec of this type.\n//\n// See: https://github.com/kubernetes/kube-openapi/tree/master/pkg/generators\nfunc (_ Time) OpenAPISchemaType() []string { return []string{\"string\"} }\n\n// OpenAPISchemaFormat is used by the kube-openapi generator when constructing\n// the OpenAPI spec of this type.\nfunc (_ Time) OpenAPISchemaFormat() string { return \"date-time\" }\n\n// MarshalQueryParameter converts to a URL query parameter value\nfunc (t Time) MarshalQueryParameter() (string, error) {\n\tif t.IsZero() {\n\t\t// Encode unset/nil objects as an empty string\n\t\treturn \"\", nil\n\t}\n\n\treturn t.UTC().Format(time.RFC3339), nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/time_fuzz.go",
    "content": "//go:build !notest\n// +build !notest\n\n/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"time\"\n\n\tfuzz \"github.com/google/gofuzz\"\n)\n\n// Fuzz satisfies fuzz.Interface.\nfunc (t *Time) Fuzz(c fuzz.Continue) {\n\tif t == nil {\n\t\treturn\n\t}\n\t// Allow for about 1000 years of randomness.  Leave off nanoseconds\n\t// because JSON doesn't represent them so they can't round-trip\n\t// properly.\n\tt.Time = time.Unix(c.Rand.Int63n(1000*365*24*60*60), 0)\n}\n\n// ensure Time implements fuzz.Interface\nvar _ fuzz.Interface = &Time{}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/time_proto.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"time\"\n)\n\n// Timestamp is a struct that is equivalent to Time, but intended for\n// protobuf marshalling/unmarshalling. It is generated into a serialization\n// that matches Time. Do not use in Go structs.\ntype Timestamp struct {\n\t// Represents seconds of UTC time since Unix epoch\n\t// 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to\n\t// 9999-12-31T23:59:59Z inclusive.\n\tSeconds int64 `json:\"seconds\" protobuf:\"varint,1,opt,name=seconds\"`\n\t// Non-negative fractions of a second at nanosecond resolution. Negative\n\t// second values with fractions must still have non-negative nanos values\n\t// that count forward in time. Must be from 0 to 999,999,999\n\t// inclusive. This field may be limited in precision depending on context.\n\tNanos int32 `json:\"nanos\" protobuf:\"varint,2,opt,name=nanos\"`\n}\n\n// Timestamp returns the Time as a new Timestamp value.\nfunc (m *Time) ProtoTime() *Timestamp {\n\tif m == nil {\n\t\treturn &Timestamp{}\n\t}\n\treturn &Timestamp{\n\t\tSeconds: m.Time.Unix(),\n\t\t// leaving this here for the record.  our JSON only handled seconds, so this results in writes by\n\t\t// protobuf clients storing values that aren't read by json clients, which results in unexpected\n\t\t// field mutation, which fails various validation and equality code.\n\t\t// Nanos:   int32(m.Time.Nanosecond()),\n\t}\n}\n\n// Size implements the protobuf marshalling interface.\nfunc (m *Time) Size() (n int) {\n\tif m == nil || m.Time.IsZero() {\n\t\treturn 0\n\t}\n\treturn m.ProtoTime().Size()\n}\n\n// Reset implements the protobuf marshalling interface.\nfunc (m *Time) Unmarshal(data []byte) error {\n\tif len(data) == 0 {\n\t\tm.Time = time.Time{}\n\t\treturn nil\n\t}\n\tp := Timestamp{}\n\tif err := p.Unmarshal(data); err != nil {\n\t\treturn err\n\t}\n\t// leaving this here for the record.  our JSON only handled seconds, so this results in writes by\n\t// protobuf clients storing values that aren't read by json clients, which results in unexpected\n\t// field mutation, which fails various validation and equality code.\n\t// m.Time = time.Unix(p.Seconds, int64(p.Nanos)).Local()\n\tm.Time = time.Unix(p.Seconds, int64(0)).Local()\n\treturn nil\n}\n\n// Marshal implements the protobuf marshaling interface.\nfunc (m *Time) Marshal() (data []byte, err error) {\n\tif m == nil || m.Time.IsZero() {\n\t\treturn nil, nil\n\t}\n\treturn m.ProtoTime().Marshal()\n}\n\n// MarshalTo implements the protobuf marshaling interface.\nfunc (m *Time) MarshalTo(data []byte) (int, error) {\n\tif m == nil || m.Time.IsZero() {\n\t\treturn 0, nil\n\t}\n\treturn m.ProtoTime().MarshalTo(data)\n}\n\n// MarshalToSizedBuffer implements the protobuf reverse marshaling interface.\nfunc (m *Time) MarshalToSizedBuffer(data []byte) (int, error) {\n\tif m == nil || m.Time.IsZero() {\n\t\treturn 0, nil\n\t}\n\treturn m.ProtoTime().MarshalToSizedBuffer(data)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/types.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package v1 contains API types that are common to all versions.\n//\n// The package contains two categories of types:\n//   - external (serialized) types that lack their own version (e.g TypeMeta)\n//   - internal (never-serialized) types that are needed by several different\n//     api groups, and so live here, to avoid duplication and/or import loops\n//     (e.g. LabelSelector).\n//\n// In the future, we will probably move these categories of objects into\n// separate packages.\npackage v1\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/types\"\n)\n\n// TypeMeta describes an individual object in an API response or request\n// with strings representing the type of the object and its API schema version.\n// Structures that are versioned or persisted should inline TypeMeta.\n//\n// +k8s:deepcopy-gen=false\ntype TypeMeta struct {\n\t// Kind is a string value representing the REST resource this object represents.\n\t// Servers may infer this from the endpoint the client submits requests to.\n\t// Cannot be updated.\n\t// In CamelCase.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tKind string `json:\"kind,omitempty\" protobuf:\"bytes,1,opt,name=kind\"`\n\n\t// APIVersion defines the versioned schema of this representation of an object.\n\t// Servers should convert recognized schemas to the latest internal value, and\n\t// may reject unrecognized values.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\n\t// +optional\n\tAPIVersion string `json:\"apiVersion,omitempty\" protobuf:\"bytes,2,opt,name=apiVersion\"`\n}\n\n// ListMeta describes metadata that synthetic resources must have, including lists and\n// various status objects. A resource may have only one of {ObjectMeta, ListMeta}.\ntype ListMeta struct {\n\t// Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\n\t// +optional\n\tSelfLink string `json:\"selfLink,omitempty\" protobuf:\"bytes,1,opt,name=selfLink\"`\n\n\t// String that identifies the server's internal version of this object that\n\t// can be used by clients to determine when objects have changed.\n\t// Value must be treated as opaque by clients and passed unmodified back to the server.\n\t// Populated by the system.\n\t// Read-only.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency\n\t// +optional\n\tResourceVersion string `json:\"resourceVersion,omitempty\" protobuf:\"bytes,2,opt,name=resourceVersion\"`\n\n\t// continue may be set if the user set a limit on the number of items returned, and indicates that\n\t// the server has more data available. The value is opaque and may be used to issue another request\n\t// to the endpoint that served this list to retrieve the next set of available objects. Continuing a\n\t// consistent list may not be possible if the server configuration has changed or more than a few\n\t// minutes have passed. The resourceVersion field returned when using this continue value will be\n\t// identical to the value in the first response, unless you have received this token from an error\n\t// message.\n\tContinue string `json:\"continue,omitempty\" protobuf:\"bytes,3,opt,name=continue\"`\n\n\t// remainingItemCount is the number of subsequent items in the list which are not included in this\n\t// list response. If the list request contained label or field selectors, then the number of\n\t// remaining items is unknown and the field will be left unset and omitted during serialization.\n\t// If the list is complete (either because it is not chunking or because this is the last chunk),\n\t// then there are no more remaining items and this field will be left unset and omitted during\n\t// serialization.\n\t// Servers older than v1.15 do not set this field.\n\t// The intended use of the remainingItemCount is *estimating* the size of a collection. Clients\n\t// should not rely on the remainingItemCount to be set or to be exact.\n\t// +optional\n\tRemainingItemCount *int64 `json:\"remainingItemCount,omitempty\" protobuf:\"bytes,4,opt,name=remainingItemCount\"`\n}\n\n// Field path constants that are specific to the internal API\n// representation.\nconst (\n\tObjectNameField = \"metadata.name\"\n)\n\n// These are internal finalizer values for Kubernetes-like APIs, must be qualified name unless defined here\nconst (\n\tFinalizerOrphanDependents = \"orphan\"\n\tFinalizerDeleteDependents = \"foregroundDeletion\"\n)\n\n// ObjectMeta is metadata that all persisted resources must have, which includes all objects\n// users must create.\ntype ObjectMeta struct {\n\t// Name must be unique within a namespace. Is required when creating resources, although\n\t// some resources may allow a client to request the generation of an appropriate name\n\t// automatically. Name is primarily intended for creation idempotence and configuration\n\t// definition.\n\t// Cannot be updated.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names\n\t// +optional\n\tName string `json:\"name,omitempty\" protobuf:\"bytes,1,opt,name=name\"`\n\n\t// GenerateName is an optional prefix, used by the server, to generate a unique\n\t// name ONLY IF the Name field has not been provided.\n\t// If this field is used, the name returned to the client will be different\n\t// than the name passed. This value will also be combined with a unique suffix.\n\t// The provided value has the same validation rules as the Name field,\n\t// and may be truncated by the length of the suffix required to make the value\n\t// unique on the server.\n\t//\n\t// If this field is specified and the generated name exists, the server will return a 409.\n\t//\n\t// Applied only if Name is not specified.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency\n\t// +optional\n\tGenerateName string `json:\"generateName,omitempty\" protobuf:\"bytes,2,opt,name=generateName\"`\n\n\t// Namespace defines the space within which each name must be unique. An empty namespace is\n\t// equivalent to the \"default\" namespace, but \"default\" is the canonical representation.\n\t// Not all objects are required to be scoped to a namespace - the value of this field for\n\t// those objects will be empty.\n\t//\n\t// Must be a DNS_LABEL.\n\t// Cannot be updated.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces\n\t// +optional\n\tNamespace string `json:\"namespace,omitempty\" protobuf:\"bytes,3,opt,name=namespace\"`\n\n\t// Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\n\t// +optional\n\tSelfLink string `json:\"selfLink,omitempty\" protobuf:\"bytes,4,opt,name=selfLink\"`\n\n\t// UID is the unique in time and space value for this object. It is typically generated by\n\t// the server on successful creation of a resource and is not allowed to change on PUT\n\t// operations.\n\t//\n\t// Populated by the system.\n\t// Read-only.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids\n\t// +optional\n\tUID types.UID `json:\"uid,omitempty\" protobuf:\"bytes,5,opt,name=uid,casttype=k8s.io/kubernetes/pkg/types.UID\"`\n\n\t// An opaque value that represents the internal version of this object that can\n\t// be used by clients to determine when objects have changed. May be used for optimistic\n\t// concurrency, change detection, and the watch operation on a resource or set of resources.\n\t// Clients must treat these values as opaque and passed unmodified back to the server.\n\t// They may only be valid for a particular resource or set of resources.\n\t//\n\t// Populated by the system.\n\t// Read-only.\n\t// Value must be treated as opaque by clients and .\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency\n\t// +optional\n\tResourceVersion string `json:\"resourceVersion,omitempty\" protobuf:\"bytes,6,opt,name=resourceVersion\"`\n\n\t// A sequence number representing a specific generation of the desired state.\n\t// Populated by the system. Read-only.\n\t// +optional\n\tGeneration int64 `json:\"generation,omitempty\" protobuf:\"varint,7,opt,name=generation\"`\n\n\t// CreationTimestamp is a timestamp representing the server time when this object was\n\t// created. It is not guaranteed to be set in happens-before order across separate operations.\n\t// Clients may not set this value. It is represented in RFC3339 form and is in UTC.\n\t//\n\t// Populated by the system.\n\t// Read-only.\n\t// Null for lists.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tCreationTimestamp Time `json:\"creationTimestamp,omitempty\" protobuf:\"bytes,8,opt,name=creationTimestamp\"`\n\n\t// DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This\n\t// field is set by the server when a graceful deletion is requested by the user, and is not\n\t// directly settable by a client. The resource is expected to be deleted (no longer visible\n\t// from resource lists, and not reachable by name) after the time in this field, once the\n\t// finalizers list is empty. As long as the finalizers list contains items, deletion is blocked.\n\t// Once the deletionTimestamp is set, this value may not be unset or be set further into the\n\t// future, although it may be shortened or the resource may be deleted prior to this time.\n\t// For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react\n\t// by sending a graceful termination signal to the containers in the pod. After that 30 seconds,\n\t// the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup,\n\t// remove the pod from the API. In the presence of network partitions, this object may still\n\t// exist after this timestamp, until an administrator or automated process can determine the\n\t// resource is fully terminated.\n\t// If not set, graceful deletion of the object has not been requested.\n\t//\n\t// Populated by the system when a graceful deletion is requested.\n\t// Read-only.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tDeletionTimestamp *Time `json:\"deletionTimestamp,omitempty\" protobuf:\"bytes,9,opt,name=deletionTimestamp\"`\n\n\t// Number of seconds allowed for this object to gracefully terminate before\n\t// it will be removed from the system. Only set when deletionTimestamp is also set.\n\t// May only be shortened.\n\t// Read-only.\n\t// +optional\n\tDeletionGracePeriodSeconds *int64 `json:\"deletionGracePeriodSeconds,omitempty\" protobuf:\"varint,10,opt,name=deletionGracePeriodSeconds\"`\n\n\t// Map of string keys and values that can be used to organize and categorize\n\t// (scope and select) objects. May match selectors of replication controllers\n\t// and services.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels\n\t// +optional\n\tLabels map[string]string `json:\"labels,omitempty\" protobuf:\"bytes,11,rep,name=labels\"`\n\n\t// Annotations is an unstructured key value map stored with a resource that may be\n\t// set by external tools to store and retrieve arbitrary metadata. They are not\n\t// queryable and should be preserved when modifying objects.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations\n\t// +optional\n\tAnnotations map[string]string `json:\"annotations,omitempty\" protobuf:\"bytes,12,rep,name=annotations\"`\n\n\t// List of objects depended by this object. If ALL objects in the list have\n\t// been deleted, this object will be garbage collected. If this object is managed by a controller,\n\t// then an entry in this list will point to this controller, with the controller field set to true.\n\t// There cannot be more than one managing controller.\n\t// +optional\n\t// +patchMergeKey=uid\n\t// +patchStrategy=merge\n\t// +listType=map\n\t// +listMapKey=uid\n\tOwnerReferences []OwnerReference `json:\"ownerReferences,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"uid\" protobuf:\"bytes,13,rep,name=ownerReferences\"`\n\n\t// Must be empty before the object is deleted from the registry. Each entry\n\t// is an identifier for the responsible component that will remove the entry\n\t// from the list. If the deletionTimestamp of the object is non-nil, entries\n\t// in this list can only be removed.\n\t// Finalizers may be processed and removed in any order.  Order is NOT enforced\n\t// because it introduces significant risk of stuck finalizers.\n\t// finalizers is a shared field, any actor with permission can reorder it.\n\t// If the finalizer list is processed in order, then this can lead to a situation\n\t// in which the component responsible for the first finalizer in the list is\n\t// waiting for a signal (field value, external system, or other) produced by a\n\t// component responsible for a finalizer later in the list, resulting in a deadlock.\n\t// Without enforced ordering finalizers are free to order amongst themselves and\n\t// are not vulnerable to ordering changes in the list.\n\t// +optional\n\t// +patchStrategy=merge\n\t// +listType=set\n\tFinalizers []string `json:\"finalizers,omitempty\" patchStrategy:\"merge\" protobuf:\"bytes,14,rep,name=finalizers\"`\n\n\t// Tombstone: ClusterName was a legacy field that was always cleared by\n\t// the system and never used.\n\t// ClusterName string `json:\"clusterName,omitempty\" protobuf:\"bytes,15,opt,name=clusterName\"`\n\n\t// ManagedFields maps workflow-id and version to the set of fields\n\t// that are managed by that workflow. This is mostly for internal\n\t// housekeeping, and users typically shouldn't need to set or\n\t// understand this field. A workflow can be the user's name, a\n\t// controller's name, or the name of a specific apply path like\n\t// \"ci-cd\". The set of fields is always in the version that the\n\t// workflow used when modifying the object.\n\t//\n\t// +optional\n\t// +listType=atomic\n\tManagedFields []ManagedFieldsEntry `json:\"managedFields,omitempty\" protobuf:\"bytes,17,rep,name=managedFields\"`\n}\n\nconst (\n\t// NamespaceDefault means the object is in the default namespace which is applied when not specified by clients\n\tNamespaceDefault = \"default\"\n\t// NamespaceAll is the default argument to specify on a context when you want to list or filter resources across all namespaces\n\tNamespaceAll = \"\"\n\t// NamespaceNone is the argument for a context when there is no namespace.\n\tNamespaceNone = \"\"\n\t// NamespaceSystem is the system namespace where we place system components.\n\tNamespaceSystem = \"kube-system\"\n\t// NamespacePublic is the namespace where we place public info (ConfigMaps)\n\tNamespacePublic = \"kube-public\"\n)\n\n// OwnerReference contains enough information to let you identify an owning\n// object. An owning object must be in the same namespace as the dependent, or\n// be cluster-scoped, so there is no namespace field.\n// +structType=atomic\ntype OwnerReference struct {\n\t// API version of the referent.\n\tAPIVersion string `json:\"apiVersion\" protobuf:\"bytes,5,opt,name=apiVersion\"`\n\t// Kind of the referent.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\tKind string `json:\"kind\" protobuf:\"bytes,1,opt,name=kind\"`\n\t// Name of the referent.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names\n\tName string `json:\"name\" protobuf:\"bytes,3,opt,name=name\"`\n\t// UID of the referent.\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids\n\tUID types.UID `json:\"uid\" protobuf:\"bytes,4,opt,name=uid,casttype=k8s.io/apimachinery/pkg/types.UID\"`\n\t// If true, this reference points to the managing controller.\n\t// +optional\n\tController *bool `json:\"controller,omitempty\" protobuf:\"varint,6,opt,name=controller\"`\n\t// If true, AND if the owner has the \"foregroundDeletion\" finalizer, then\n\t// the owner cannot be deleted from the key-value store until this\n\t// reference is removed.\n\t// See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion\n\t// for how the garbage collector interacts with this field and enforces the foreground deletion.\n\t// Defaults to false.\n\t// To set this field, a user needs \"delete\" permission of the owner,\n\t// otherwise 422 (Unprocessable Entity) will be returned.\n\t// +optional\n\tBlockOwnerDeletion *bool `json:\"blockOwnerDeletion,omitempty\" protobuf:\"varint,7,opt,name=blockOwnerDeletion\"`\n}\n\n// +k8s:conversion-gen:explicit-from=net/url.Values\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// ListOptions is the query options to a standard REST list call.\ntype ListOptions struct {\n\tTypeMeta `json:\",inline\"`\n\n\t// A selector to restrict the list of returned objects by their labels.\n\t// Defaults to everything.\n\t// +optional\n\tLabelSelector string `json:\"labelSelector,omitempty\" protobuf:\"bytes,1,opt,name=labelSelector\"`\n\t// A selector to restrict the list of returned objects by their fields.\n\t// Defaults to everything.\n\t// +optional\n\tFieldSelector string `json:\"fieldSelector,omitempty\" protobuf:\"bytes,2,opt,name=fieldSelector\"`\n\n\t// +k8s:deprecated=includeUninitialized,protobuf=6\n\n\t// Watch for changes to the described resources and return them as a stream of\n\t// add, update, and remove notifications. Specify resourceVersion.\n\t// +optional\n\tWatch bool `json:\"watch,omitempty\" protobuf:\"varint,3,opt,name=watch\"`\n\t// allowWatchBookmarks requests watch events with type \"BOOKMARK\".\n\t// Servers that do not implement bookmarks may ignore this flag and\n\t// bookmarks are sent at the server's discretion. Clients should not\n\t// assume bookmarks are returned at any specific interval, nor may they\n\t// assume the server will send any BOOKMARK event during a session.\n\t// If this is not a watch, this field is ignored.\n\t// +optional\n\tAllowWatchBookmarks bool `json:\"allowWatchBookmarks,omitempty\" protobuf:\"varint,9,opt,name=allowWatchBookmarks\"`\n\n\t// resourceVersion sets a constraint on what resource versions a request may be served from.\n\t// See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for\n\t// details.\n\t//\n\t// Defaults to unset\n\t// +optional\n\tResourceVersion string `json:\"resourceVersion,omitempty\" protobuf:\"bytes,4,opt,name=resourceVersion\"`\n\n\t// resourceVersionMatch determines how resourceVersion is applied to list calls.\n\t// It is highly recommended that resourceVersionMatch be set for list calls where\n\t// resourceVersion is set\n\t// See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for\n\t// details.\n\t//\n\t// Defaults to unset\n\t// +optional\n\tResourceVersionMatch ResourceVersionMatch `json:\"resourceVersionMatch,omitempty\" protobuf:\"bytes,10,opt,name=resourceVersionMatch,casttype=ResourceVersionMatch\"`\n\t// Timeout for the list/watch call.\n\t// This limits the duration of the call, regardless of any activity or inactivity.\n\t// +optional\n\tTimeoutSeconds *int64 `json:\"timeoutSeconds,omitempty\" protobuf:\"varint,5,opt,name=timeoutSeconds\"`\n\n\t// limit is a maximum number of responses to return for a list call. If more items exist, the\n\t// server will set the `continue` field on the list metadata to a value that can be used with the\n\t// same initial query to retrieve the next set of results. Setting a limit may return fewer than\n\t// the requested amount of items (up to zero items) in the event all requested objects are\n\t// filtered out and clients should only use the presence of the continue field to determine whether\n\t// more results are available. Servers may choose not to support the limit argument and will return\n\t// all of the available results. If limit is specified and the continue field is empty, clients may\n\t// assume that no more results are available. This field is not supported if watch is true.\n\t//\n\t// The server guarantees that the objects returned when using continue will be identical to issuing\n\t// a single list call without a limit - that is, no objects created, modified, or deleted after the\n\t// first request is issued will be included in any subsequent continued requests. This is sometimes\n\t// referred to as a consistent snapshot, and ensures that a client that is using limit to receive\n\t// smaller chunks of a very large result can ensure they see all possible objects. If objects are\n\t// updated during a chunked list the version of the object that was present at the time the first list\n\t// result was calculated is returned.\n\tLimit int64 `json:\"limit,omitempty\" protobuf:\"varint,7,opt,name=limit\"`\n\t// The continue option should be set when retrieving more results from the server. Since this value is\n\t// server defined, clients may only use the continue value from a previous query result with identical\n\t// query parameters (except for the value of continue) and the server may reject a continue value it\n\t// does not recognize. If the specified continue value is no longer valid whether due to expiration\n\t// (generally five to fifteen minutes) or a configuration change on the server, the server will\n\t// respond with a 410 ResourceExpired error together with a continue token. If the client needs a\n\t// consistent list, it must restart their list without the continue field. Otherwise, the client may\n\t// send another list request with the token received with the 410 error, the server will respond with\n\t// a list starting from the next key, but from the latest snapshot, which is inconsistent from the\n\t// previous list results - objects that are created, modified, or deleted after the first list request\n\t// will be included in the response, as long as their keys are after the \"next key\".\n\t//\n\t// This field is not supported when watch is true. Clients may start a watch from the last\n\t// resourceVersion value returned by the server and not miss any modifications.\n\tContinue string `json:\"continue,omitempty\" protobuf:\"bytes,8,opt,name=continue\"`\n\n\t// `sendInitialEvents=true` may be set together with `watch=true`.\n\t// In that case, the watch stream will begin with synthetic events to\n\t// produce the current state of objects in the collection. Once all such\n\t// events have been sent, a synthetic \"Bookmark\" event  will be sent.\n\t// The bookmark will report the ResourceVersion (RV) corresponding to the\n\t// set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation.\n\t// Afterwards, the watch stream will proceed as usual, sending watch events\n\t// corresponding to changes (subsequent to the RV) to objects watched.\n\t//\n\t// When `sendInitialEvents` option is set, we require `resourceVersionMatch`\n\t// option to also be set. The semantic of the watch request is as following:\n\t// - `resourceVersionMatch` = NotOlderThan\n\t//   is interpreted as \"data at least as new as the provided `resourceVersion`\"\n\t//   and the bookmark event is send when the state is synced\n\t//   to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n\t//   If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n\t//   bookmark event is send when the state is synced at least to the moment\n\t//   when request started being processed.\n\t// - `resourceVersionMatch` set to any other value or unset\n\t//   Invalid error is returned.\n\t//\n\t// Defaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward\n\t// compatibility reasons) and to false otherwise.\n\t// +optional\n\tSendInitialEvents *bool `json:\"sendInitialEvents,omitempty\" protobuf:\"varint,11,opt,name=sendInitialEvents\"`\n}\n\nconst (\n\t// InitialEventsAnnotationKey the name of the key\n\t// under which an annotation marking the end of\n\t// a watchlist stream is stored.\n\t//\n\t// The annotation is added to a \"Bookmark\" event.\n\tInitialEventsAnnotationKey = \"k8s.io/initial-events-end\"\n\n\t// InitialEventsListBlueprintAnnotationKey is the name of the key\n\t// where an empty, versioned list is encoded in the requested format\n\t// (e.g., protobuf, JSON, CBOR), then base64-encoded and stored as a string.\n\t//\n\t// This encoding matches the request encoding format, which may be\n\t// protobuf, JSON, CBOR, or others, depending on what the client requested.\n\t// This ensures that the reconstructed list can be processed through the\n\t// same decoder chain that would handle a standard LIST call response.\n\t//\n\t// The annotation is added to a \"Bookmark\" event and is used by clients\n\t// to guarantee the format consistency when reconstructing\n\t// the list during WatchList processing.\n\tInitialEventsListBlueprintAnnotationKey = \"kubernetes.io/initial-events-list-blueprint\"\n)\n\n// resourceVersionMatch specifies how the resourceVersion parameter is applied. resourceVersionMatch\n// may only be set if resourceVersion is also set.\n//\n// \"NotOlderThan\" matches data at least as new as the provided resourceVersion.\n// \"Exact\" matches data at the exact resourceVersion provided.\n//\n// See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for\n// details.\ntype ResourceVersionMatch string\n\nconst (\n\t// ResourceVersionMatchNotOlderThan matches data at least as new as the provided\n\t// resourceVersion.\n\tResourceVersionMatchNotOlderThan ResourceVersionMatch = \"NotOlderThan\"\n\t// ResourceVersionMatchExact matches data at the exact resourceVersion\n\t// provided.\n\tResourceVersionMatchExact ResourceVersionMatch = \"Exact\"\n)\n\n// +k8s:conversion-gen:explicit-from=net/url.Values\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// GetOptions is the standard query options to the standard REST get call.\ntype GetOptions struct {\n\tTypeMeta `json:\",inline\"`\n\t// resourceVersion sets a constraint on what resource versions a request may be served from.\n\t// See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for\n\t// details.\n\t//\n\t// Defaults to unset\n\t// +optional\n\tResourceVersion string `json:\"resourceVersion,omitempty\" protobuf:\"bytes,1,opt,name=resourceVersion\"`\n\t// +k8s:deprecated=includeUninitialized,protobuf=2\n}\n\n// DeletionPropagation decides if a deletion will propagate to the dependents of\n// the object, and how the garbage collector will handle the propagation.\ntype DeletionPropagation string\n\nconst (\n\t// Orphans the dependents.\n\tDeletePropagationOrphan DeletionPropagation = \"Orphan\"\n\t// Deletes the object from the key-value store, the garbage collector will\n\t// delete the dependents in the background.\n\tDeletePropagationBackground DeletionPropagation = \"Background\"\n\t// The object exists in the key-value store until the garbage collector\n\t// deletes all the dependents whose ownerReference.blockOwnerDeletion=true\n\t// from the key-value store.  API sever will put the \"foregroundDeletion\"\n\t// finalizer on the object, and sets its deletionTimestamp.  This policy is\n\t// cascading, i.e., the dependents will be deleted with Foreground.\n\tDeletePropagationForeground DeletionPropagation = \"Foreground\"\n)\n\nconst (\n\t// DryRunAll means to complete all processing stages, but don't\n\t// persist changes to storage.\n\tDryRunAll = \"All\"\n)\n\n// +k8s:conversion-gen:explicit-from=net/url.Values\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// DeleteOptions may be provided when deleting an API object.\ntype DeleteOptions struct {\n\tTypeMeta `json:\",inline\"`\n\n\t// The duration in seconds before the object should be deleted. Value must be non-negative integer.\n\t// The value zero indicates delete immediately. If this value is nil, the default grace period for the\n\t// specified type will be used.\n\t// Defaults to a per object value if not specified. zero means delete immediately.\n\t// +optional\n\tGracePeriodSeconds *int64 `json:\"gracePeriodSeconds,omitempty\" protobuf:\"varint,1,opt,name=gracePeriodSeconds\"`\n\n\t// Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be\n\t// returned.\n\t// +k8s:conversion-gen=false\n\t// +optional\n\tPreconditions *Preconditions `json:\"preconditions,omitempty\" protobuf:\"bytes,2,opt,name=preconditions\"`\n\n\t// Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7.\n\t// Should the dependent objects be orphaned. If true/false, the \"orphan\"\n\t// finalizer will be added to/removed from the object's finalizers list.\n\t// Either this field or PropagationPolicy may be set, but not both.\n\t// +optional\n\tOrphanDependents *bool `json:\"orphanDependents,omitempty\" protobuf:\"varint,3,opt,name=orphanDependents\"`\n\n\t// Whether and how garbage collection will be performed.\n\t// Either this field or OrphanDependents may be set, but not both.\n\t// The default policy is decided by the existing finalizer set in the\n\t// metadata.finalizers and the resource-specific default policy.\n\t// Acceptable values are: 'Orphan' - orphan the dependents; 'Background' -\n\t// allow the garbage collector to delete the dependents in the background;\n\t// 'Foreground' - a cascading policy that deletes all dependents in the\n\t// foreground.\n\t// +optional\n\tPropagationPolicy *DeletionPropagation `json:\"propagationPolicy,omitempty\" protobuf:\"varint,4,opt,name=propagationPolicy\"`\n\n\t// When present, indicates that modifications should not be\n\t// persisted. An invalid or unrecognized dryRun directive will\n\t// result in an error response and no further processing of the\n\t// request. Valid values are:\n\t// - All: all dry run stages will be processed\n\t// +optional\n\t// +listType=atomic\n\tDryRun []string `json:\"dryRun,omitempty\" protobuf:\"bytes,5,rep,name=dryRun\"`\n\n\t// if set to true, it will trigger an unsafe deletion of the resource in\n\t// case the normal deletion flow fails with a corrupt object error.\n\t// A resource is considered corrupt if it can not be retrieved from\n\t// the underlying storage successfully because of a) its data can\n\t// not be transformed e.g. decryption failure, or b) it fails\n\t// to decode into an object.\n\t// NOTE: unsafe deletion ignores finalizer constraints, skips\n\t// precondition checks, and removes the object from the storage.\n\t// WARNING: This may potentially break the cluster if the workload\n\t// associated with the resource being unsafe-deleted relies on normal\n\t// deletion flow. Use only if you REALLY know what you are doing.\n\t// The default value is false, and the user must opt in to enable it\n\t// +optional\n\tIgnoreStoreReadErrorWithClusterBreakingPotential *bool `json:\"ignoreStoreReadErrorWithClusterBreakingPotential,omitempty\" protobuf:\"varint,6,opt,name=ignoreStoreReadErrorWithClusterBreakingPotential\"`\n}\n\nconst (\n\t// FieldValidationIgnore ignores unknown/duplicate fields\n\tFieldValidationIgnore = \"Ignore\"\n\t// FieldValidationWarn responds with a warning, but successfully serve the request\n\tFieldValidationWarn = \"Warn\"\n\t// FieldValidationStrict fails the request on unknown/duplicate fields\n\tFieldValidationStrict = \"Strict\"\n)\n\n// +k8s:conversion-gen:explicit-from=net/url.Values\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// CreateOptions may be provided when creating an API object.\ntype CreateOptions struct {\n\tTypeMeta `json:\",inline\"`\n\n\t// When present, indicates that modifications should not be\n\t// persisted. An invalid or unrecognized dryRun directive will\n\t// result in an error response and no further processing of the\n\t// request. Valid values are:\n\t// - All: all dry run stages will be processed\n\t// +optional\n\t// +listType=atomic\n\tDryRun []string `json:\"dryRun,omitempty\" protobuf:\"bytes,1,rep,name=dryRun\"`\n\t// +k8s:deprecated=includeUninitialized,protobuf=2\n\n\t// fieldManager is a name associated with the actor or entity\n\t// that is making these changes. The value must be less than or\n\t// 128 characters long, and only contain printable characters,\n\t// as defined by https://golang.org/pkg/unicode/#IsPrint.\n\t// +optional\n\tFieldManager string `json:\"fieldManager,omitempty\" protobuf:\"bytes,3,name=fieldManager\"`\n\n\t// fieldValidation instructs the server on how to handle\n\t// objects in the request (POST/PUT/PATCH) containing unknown\n\t// or duplicate fields. Valid values are:\n\t// - Ignore: This will ignore any unknown fields that are silently\n\t// dropped from the object, and will ignore all but the last duplicate\n\t// field that the decoder encounters. This is the default behavior\n\t// prior to v1.23.\n\t// - Warn: This will send a warning via the standard warning response\n\t// header for each unknown field that is dropped from the object, and\n\t// for each duplicate field that is encountered. The request will\n\t// still succeed if there are no other errors, and will only persist\n\t// the last of any duplicate fields. This is the default in v1.23+\n\t// - Strict: This will fail the request with a BadRequest error if\n\t// any unknown fields would be dropped from the object, or if any\n\t// duplicate fields are present. The error returned from the server\n\t// will contain all unknown and duplicate fields encountered.\n\t// +optional\n\tFieldValidation string `json:\"fieldValidation,omitempty\" protobuf:\"bytes,4,name=fieldValidation\"`\n}\n\n// +k8s:conversion-gen:explicit-from=net/url.Values\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// PatchOptions may be provided when patching an API object.\n// PatchOptions is meant to be a superset of UpdateOptions.\ntype PatchOptions struct {\n\tTypeMeta `json:\",inline\"`\n\n\t// When present, indicates that modifications should not be\n\t// persisted. An invalid or unrecognized dryRun directive will\n\t// result in an error response and no further processing of the\n\t// request. Valid values are:\n\t// - All: all dry run stages will be processed\n\t// +optional\n\t// +listType=atomic\n\tDryRun []string `json:\"dryRun,omitempty\" protobuf:\"bytes,1,rep,name=dryRun\"`\n\n\t// Force is going to \"force\" Apply requests. It means user will\n\t// re-acquire conflicting fields owned by other people. Force\n\t// flag must be unset for non-apply patch requests.\n\t// +optional\n\tForce *bool `json:\"force,omitempty\" protobuf:\"varint,2,opt,name=force\"`\n\n\t// fieldManager is a name associated with the actor or entity\n\t// that is making these changes. The value must be less than or\n\t// 128 characters long, and only contain printable characters,\n\t// as defined by https://golang.org/pkg/unicode/#IsPrint. This\n\t// field is required for apply requests\n\t// (application/apply-patch) but optional for non-apply patch\n\t// types (JsonPatch, MergePatch, StrategicMergePatch).\n\t// +optional\n\tFieldManager string `json:\"fieldManager,omitempty\" protobuf:\"bytes,3,name=fieldManager\"`\n\n\t// fieldValidation instructs the server on how to handle\n\t// objects in the request (POST/PUT/PATCH) containing unknown\n\t// or duplicate fields. Valid values are:\n\t// - Ignore: This will ignore any unknown fields that are silently\n\t// dropped from the object, and will ignore all but the last duplicate\n\t// field that the decoder encounters. This is the default behavior\n\t// prior to v1.23.\n\t// - Warn: This will send a warning via the standard warning response\n\t// header for each unknown field that is dropped from the object, and\n\t// for each duplicate field that is encountered. The request will\n\t// still succeed if there are no other errors, and will only persist\n\t// the last of any duplicate fields. This is the default in v1.23+\n\t// - Strict: This will fail the request with a BadRequest error if\n\t// any unknown fields would be dropped from the object, or if any\n\t// duplicate fields are present. The error returned from the server\n\t// will contain all unknown and duplicate fields encountered.\n\t// +optional\n\tFieldValidation string `json:\"fieldValidation,omitempty\" protobuf:\"bytes,4,name=fieldValidation\"`\n}\n\n// ApplyOptions may be provided when applying an API object.\n// FieldManager is required for apply requests.\n// ApplyOptions is equivalent to PatchOptions. It is provided as a convenience with documentation\n// that speaks specifically to how the options fields relate to apply.\ntype ApplyOptions struct {\n\tTypeMeta `json:\",inline\"`\n\n\t// When present, indicates that modifications should not be\n\t// persisted. An invalid or unrecognized dryRun directive will\n\t// result in an error response and no further processing of the\n\t// request. Valid values are:\n\t// - All: all dry run stages will be processed\n\t// +optional\n\t// +listType=atomic\n\tDryRun []string `json:\"dryRun,omitempty\" protobuf:\"bytes,1,rep,name=dryRun\"`\n\n\t// Force is going to \"force\" Apply requests. It means user will\n\t// re-acquire conflicting fields owned by other people.\n\tForce bool `json:\"force\" protobuf:\"varint,2,opt,name=force\"`\n\n\t// fieldManager is a name associated with the actor or entity\n\t// that is making these changes. The value must be less than or\n\t// 128 characters long, and only contain printable characters,\n\t// as defined by https://golang.org/pkg/unicode/#IsPrint. This\n\t// field is required.\n\tFieldManager string `json:\"fieldManager\" protobuf:\"bytes,3,name=fieldManager\"`\n}\n\nfunc (o ApplyOptions) ToPatchOptions() PatchOptions {\n\treturn PatchOptions{DryRun: o.DryRun, Force: &o.Force, FieldManager: o.FieldManager}\n}\n\n// +k8s:conversion-gen:explicit-from=net/url.Values\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// UpdateOptions may be provided when updating an API object.\n// All fields in UpdateOptions should also be present in PatchOptions.\ntype UpdateOptions struct {\n\tTypeMeta `json:\",inline\"`\n\n\t// When present, indicates that modifications should not be\n\t// persisted. An invalid or unrecognized dryRun directive will\n\t// result in an error response and no further processing of the\n\t// request. Valid values are:\n\t// - All: all dry run stages will be processed\n\t// +optional\n\t// +listType=atomic\n\tDryRun []string `json:\"dryRun,omitempty\" protobuf:\"bytes,1,rep,name=dryRun\"`\n\n\t// fieldManager is a name associated with the actor or entity\n\t// that is making these changes. The value must be less than or\n\t// 128 characters long, and only contain printable characters,\n\t// as defined by https://golang.org/pkg/unicode/#IsPrint.\n\t// +optional\n\tFieldManager string `json:\"fieldManager,omitempty\" protobuf:\"bytes,2,name=fieldManager\"`\n\n\t// fieldValidation instructs the server on how to handle\n\t// objects in the request (POST/PUT/PATCH) containing unknown\n\t// or duplicate fields. Valid values are:\n\t// - Ignore: This will ignore any unknown fields that are silently\n\t// dropped from the object, and will ignore all but the last duplicate\n\t// field that the decoder encounters. This is the default behavior\n\t// prior to v1.23.\n\t// - Warn: This will send a warning via the standard warning response\n\t// header for each unknown field that is dropped from the object, and\n\t// for each duplicate field that is encountered. The request will\n\t// still succeed if there are no other errors, and will only persist\n\t// the last of any duplicate fields. This is the default in v1.23+\n\t// - Strict: This will fail the request with a BadRequest error if\n\t// any unknown fields would be dropped from the object, or if any\n\t// duplicate fields are present. The error returned from the server\n\t// will contain all unknown and duplicate fields encountered.\n\t// +optional\n\tFieldValidation string `json:\"fieldValidation,omitempty\" protobuf:\"bytes,3,name=fieldValidation\"`\n}\n\n// Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.\ntype Preconditions struct {\n\t// Specifies the target UID.\n\t// +optional\n\tUID *types.UID `json:\"uid,omitempty\" protobuf:\"bytes,1,opt,name=uid,casttype=k8s.io/apimachinery/pkg/types.UID\"`\n\t// Specifies the target ResourceVersion\n\t// +optional\n\tResourceVersion *string `json:\"resourceVersion,omitempty\" protobuf:\"bytes,2,opt,name=resourceVersion\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// Status is a return value for calls that don't return other objects.\ntype Status struct {\n\tTypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// Status of the operation.\n\t// One of: \"Success\" or \"Failure\".\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n\t// +optional\n\tStatus string `json:\"status,omitempty\" protobuf:\"bytes,2,opt,name=status\"`\n\t// A human-readable description of the status of this operation.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,3,opt,name=message\"`\n\t// A machine-readable description of why this operation is in the\n\t// \"Failure\" status. If this value is empty there\n\t// is no information available. A Reason clarifies an HTTP status\n\t// code but does not override it.\n\t// +optional\n\tReason StatusReason `json:\"reason,omitempty\" protobuf:\"bytes,4,opt,name=reason,casttype=StatusReason\"`\n\t// Extended data associated with the reason.  Each reason may define its\n\t// own extended details. This field is optional and the data returned\n\t// is not guaranteed to conform to any schema except that defined by\n\t// the reason type.\n\t// +optional\n\t// +listType=atomic\n\tDetails *StatusDetails `json:\"details,omitempty\" protobuf:\"bytes,5,opt,name=details\"`\n\t// Suggested HTTP return code for this status, 0 if not set.\n\t// +optional\n\tCode int32 `json:\"code,omitempty\" protobuf:\"varint,6,opt,name=code\"`\n}\n\n// StatusDetails is a set of additional properties that MAY be set by the\n// server to provide additional information about a response. The Reason\n// field of a Status object defines what attributes will be set. Clients\n// must ignore fields that do not match the defined type of each attribute,\n// and should assume that any attribute may be empty, invalid, or under\n// defined.\ntype StatusDetails struct {\n\t// The name attribute of the resource associated with the status StatusReason\n\t// (when there is a single name which can be described).\n\t// +optional\n\tName string `json:\"name,omitempty\" protobuf:\"bytes,1,opt,name=name\"`\n\t// The group attribute of the resource associated with the status StatusReason.\n\t// +optional\n\tGroup string `json:\"group,omitempty\" protobuf:\"bytes,2,opt,name=group\"`\n\t// The kind attribute of the resource associated with the status StatusReason.\n\t// On some operations may differ from the requested resource Kind.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tKind string `json:\"kind,omitempty\" protobuf:\"bytes,3,opt,name=kind\"`\n\t// UID of the resource.\n\t// (when there is a single resource which can be described).\n\t// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids\n\t// +optional\n\tUID types.UID `json:\"uid,omitempty\" protobuf:\"bytes,6,opt,name=uid,casttype=k8s.io/apimachinery/pkg/types.UID\"`\n\t// The Causes array includes more details associated with the StatusReason\n\t// failure. Not all StatusReasons may provide detailed causes.\n\t// +optional\n\t// +listType=atomic\n\tCauses []StatusCause `json:\"causes,omitempty\" protobuf:\"bytes,4,rep,name=causes\"`\n\t// If specified, the time in seconds before the operation should be retried. Some errors may indicate\n\t// the client must take an alternate action - for those errors this field may indicate how long to wait\n\t// before taking the alternate action.\n\t// +optional\n\tRetryAfterSeconds int32 `json:\"retryAfterSeconds,omitempty\" protobuf:\"varint,5,opt,name=retryAfterSeconds\"`\n}\n\n// Values of Status.Status\nconst (\n\tStatusSuccess = \"Success\"\n\tStatusFailure = \"Failure\"\n)\n\n// StatusReason is an enumeration of possible failure causes.  Each StatusReason\n// must map to a single HTTP status code, but multiple reasons may map\n// to the same HTTP status code.\n// TODO: move to apiserver\ntype StatusReason string\n\nconst (\n\t// StatusReasonUnknown means the server has declined to indicate a specific reason.\n\t// The details field may contain other information about this error.\n\t// Status code 500.\n\tStatusReasonUnknown StatusReason = \"\"\n\n\t// StatusReasonUnauthorized means the server can be reached and understood the request, but requires\n\t// the user to present appropriate authorization credentials (identified by the WWW-Authenticate header)\n\t// in order for the action to be completed. If the user has specified credentials on the request, the\n\t// server considers them insufficient.\n\t// Status code 401\n\tStatusReasonUnauthorized StatusReason = \"Unauthorized\"\n\n\t// StatusReasonForbidden means the server can be reached and understood the request, but refuses\n\t// to take any further action.  It is the result of the server being configured to deny access for some reason\n\t// to the requested resource by the client.\n\t// Details (optional):\n\t//   \"kind\" string - the kind attribute of the forbidden resource\n\t//                   on some operations may differ from the requested\n\t//                   resource.\n\t//   \"id\"   string - the identifier of the forbidden resource\n\t// Status code 403\n\tStatusReasonForbidden StatusReason = \"Forbidden\"\n\n\t// StatusReasonNotFound means one or more resources required for this operation\n\t// could not be found.\n\t// Details (optional):\n\t//   \"kind\" string - the kind attribute of the missing resource\n\t//                   on some operations may differ from the requested\n\t//                   resource.\n\t//   \"id\"   string - the identifier of the missing resource\n\t// Status code 404\n\tStatusReasonNotFound StatusReason = \"NotFound\"\n\n\t// StatusReasonAlreadyExists means the resource you are creating already exists.\n\t// Details (optional):\n\t//   \"kind\" string - the kind attribute of the conflicting resource\n\t//   \"id\"   string - the identifier of the conflicting resource\n\t// Status code 409\n\tStatusReasonAlreadyExists StatusReason = \"AlreadyExists\"\n\n\t// StatusReasonConflict means the requested operation cannot be completed\n\t// due to a conflict in the operation. The client may need to alter the\n\t// request. Each resource may define custom details that indicate the\n\t// nature of the conflict.\n\t// Status code 409\n\tStatusReasonConflict StatusReason = \"Conflict\"\n\n\t// StatusReasonGone means the item is no longer available at the server and no\n\t// forwarding address is known.\n\t// Status code 410\n\tStatusReasonGone StatusReason = \"Gone\"\n\n\t// StatusReasonInvalid means the requested create or update operation cannot be\n\t// completed due to invalid data provided as part of the request. The client may\n\t// need to alter the request. When set, the client may use the StatusDetails\n\t// message field as a summary of the issues encountered.\n\t// Details (optional):\n\t//   \"kind\" string - the kind attribute of the invalid resource\n\t//   \"id\"   string - the identifier of the invalid resource\n\t//   \"causes\"      - one or more StatusCause entries indicating the data in the\n\t//                   provided resource that was invalid.  The code, message, and\n\t//                   field attributes will be set.\n\t// Status code 422\n\tStatusReasonInvalid StatusReason = \"Invalid\"\n\n\t// StatusReasonServerTimeout means the server can be reached and understood the request,\n\t// but cannot complete the action in a reasonable time. The client should retry the request.\n\t// This is may be due to temporary server load or a transient communication issue with\n\t// another server. Status code 500 is used because the HTTP spec provides no suitable\n\t// server-requested client retry and the 5xx class represents actionable errors.\n\t// Details (optional):\n\t//   \"kind\" string - the kind attribute of the resource being acted on.\n\t//   \"id\"   string - the operation that is being attempted.\n\t//   \"retryAfterSeconds\" int32 - the number of seconds before the operation should be retried\n\t// Status code 500\n\tStatusReasonServerTimeout StatusReason = \"ServerTimeout\"\n\n\t// StatusReasonStoreReadError means that the server encountered an error while\n\t// retrieving resources from the backend object store.\n\t// This may be due to backend database error, or because processing of the read\n\t// resource failed.\n\t// Details:\n\t//   \"kind\" string - the kind attribute of the resource being acted on.\n\t//   \"name\" string - the prefix where the reading error(s) occurred\n\t//   \"causes\" []StatusCause\n\t//      - (optional):\n\t//        - \"type\" CauseType - CauseTypeUnexpectedServerResponse\n\t//        - \"message\" string - the error message from the store backend\n\t//        - \"field\" string - the full path with the key of the resource that failed reading\n\t//\n\t// Status code 500\n\tStatusReasonStoreReadError StatusReason = \"StorageReadError\"\n\n\t// StatusReasonTimeout means that the request could not be completed within the given time.\n\t// Clients can get this response only when they specified a timeout param in the request,\n\t// or if the server cannot complete the operation within a reasonable amount of time.\n\t// The request might succeed with an increased value of timeout param. The client *should*\n\t// wait at least the number of seconds specified by the retryAfterSeconds field.\n\t// Details (optional):\n\t//   \"retryAfterSeconds\" int32 - the number of seconds before the operation should be retried\n\t// Status code 504\n\tStatusReasonTimeout StatusReason = \"Timeout\"\n\n\t// StatusReasonTooManyRequests means the server experienced too many requests within a\n\t// given window and that the client must wait to perform the action again. A client may\n\t// always retry the request that led to this error, although the client should wait at least\n\t// the number of seconds specified by the retryAfterSeconds field.\n\t// Details (optional):\n\t//   \"retryAfterSeconds\" int32 - the number of seconds before the operation should be retried\n\t// Status code 429\n\tStatusReasonTooManyRequests StatusReason = \"TooManyRequests\"\n\n\t// StatusReasonBadRequest means that the request itself was invalid, because the request\n\t// doesn't make any sense, for example deleting a read-only object.  This is different than\n\t// StatusReasonInvalid above which indicates that the API call could possibly succeed, but the\n\t// data was invalid.  API calls that return BadRequest can never succeed.\n\t// Status code 400\n\tStatusReasonBadRequest StatusReason = \"BadRequest\"\n\n\t// StatusReasonMethodNotAllowed means that the action the client attempted to perform on the\n\t// resource was not supported by the code - for instance, attempting to delete a resource that\n\t// can only be created. API calls that return MethodNotAllowed can never succeed.\n\t// Status code 405\n\tStatusReasonMethodNotAllowed StatusReason = \"MethodNotAllowed\"\n\n\t// StatusReasonNotAcceptable means that the accept types indicated by the client were not acceptable\n\t// to the server - for instance, attempting to receive protobuf for a resource that supports only json and yaml.\n\t// API calls that return NotAcceptable can never succeed.\n\t// Status code 406\n\tStatusReasonNotAcceptable StatusReason = \"NotAcceptable\"\n\n\t// StatusReasonRequestEntityTooLarge means that the request entity is too large.\n\t// Status code 413\n\tStatusReasonRequestEntityTooLarge StatusReason = \"RequestEntityTooLarge\"\n\n\t// StatusReasonUnsupportedMediaType means that the content type sent by the client is not acceptable\n\t// to the server - for instance, attempting to send protobuf for a resource that supports only json and yaml.\n\t// API calls that return UnsupportedMediaType can never succeed.\n\t// Status code 415\n\tStatusReasonUnsupportedMediaType StatusReason = \"UnsupportedMediaType\"\n\n\t// StatusReasonInternalError indicates that an internal error occurred, it is unexpected\n\t// and the outcome of the call is unknown.\n\t// Details (optional):\n\t//   \"causes\" - The original error\n\t// Status code 500\n\tStatusReasonInternalError StatusReason = \"InternalError\"\n\n\t// StatusReasonExpired indicates that the request is invalid because the content you are requesting\n\t// has expired and is no longer available. It is typically associated with watches that can't be\n\t// serviced.\n\t// Status code 410 (gone)\n\tStatusReasonExpired StatusReason = \"Expired\"\n\n\t// StatusReasonServiceUnavailable means that the request itself was valid,\n\t// but the requested service is unavailable at this time.\n\t// Retrying the request after some time might succeed.\n\t// Status code 503\n\tStatusReasonServiceUnavailable StatusReason = \"ServiceUnavailable\"\n)\n\n// StatusCause provides more information about an api.Status failure, including\n// cases when multiple errors are encountered.\ntype StatusCause struct {\n\t// A machine-readable description of the cause of the error. If this value is\n\t// empty there is no information available.\n\t// +optional\n\tType CauseType `json:\"reason,omitempty\" protobuf:\"bytes,1,opt,name=reason,casttype=CauseType\"`\n\t// A human-readable description of the cause of the error.  This field may be\n\t// presented as-is to a reader.\n\t// +optional\n\tMessage string `json:\"message,omitempty\" protobuf:\"bytes,2,opt,name=message\"`\n\t// The field of the resource that has caused this error, as named by its JSON\n\t// serialization. May include dot and postfix notation for nested attributes.\n\t// Arrays are zero-indexed.  Fields may appear more than once in an array of\n\t// causes due to fields having multiple errors.\n\t// Optional.\n\t//\n\t// Examples:\n\t//   \"name\" - the field \"name\" on the current resource\n\t//   \"items[0].name\" - the field \"name\" on the first array entry in \"items\"\n\t// +optional\n\tField string `json:\"field,omitempty\" protobuf:\"bytes,3,opt,name=field\"`\n}\n\n// CauseType is a machine readable value providing more detail about what\n// occurred in a status response. An operation may have multiple causes for a\n// status (whether Failure or Success).\ntype CauseType string\n\nconst (\n\t// CauseTypeFieldValueNotFound is used to report failure to find a requested value\n\t// (e.g. looking up an ID).\n\tCauseTypeFieldValueNotFound CauseType = \"FieldValueNotFound\"\n\t// CauseTypeFieldValueRequired is used to report required values that are not\n\t// provided (e.g. empty strings, null values, or empty arrays).\n\tCauseTypeFieldValueRequired CauseType = \"FieldValueRequired\"\n\t// CauseTypeFieldValueDuplicate is used to report collisions of values that must be\n\t// unique (e.g. unique IDs).\n\tCauseTypeFieldValueDuplicate CauseType = \"FieldValueDuplicate\"\n\t// CauseTypeFieldValueInvalid is used to report malformed values (e.g. failed regex\n\t// match).\n\tCauseTypeFieldValueInvalid CauseType = \"FieldValueInvalid\"\n\t// CauseTypeFieldValueNotSupported is used to report valid (as per formatting rules)\n\t// values that can not be handled (e.g. an enumerated string).\n\tCauseTypeFieldValueNotSupported CauseType = \"FieldValueNotSupported\"\n\t// CauseTypeForbidden is used to report valid (as per formatting rules)\n\t// values which would be accepted under some conditions, but which are not\n\t// permitted by the current conditions (such as security policy).  See\n\t// Forbidden().\n\tCauseTypeForbidden CauseType = \"FieldValueForbidden\"\n\t// CauseTypeTooLong is used to report that the given value is too long.\n\t// This is similar to ErrorTypeInvalid, but the error will not include the\n\t// too-long value.  See TooLong().\n\tCauseTypeTooLong CauseType = \"FieldValueTooLong\"\n\t// CauseTypeTooMany is used to report \"too many\". This is used to\n\t// report that a given list has too many items. This is similar to FieldValueTooLong,\n\t// but the error indicates quantity instead of length.\n\tCauseTypeTooMany CauseType = \"FieldValueTooMany\"\n\t// CauseTypeInternal is used to report other errors that are not related\n\t// to user input.  See InternalError().\n\tCauseTypeInternal CauseType = \"InternalError\"\n\t// CauseTypeTypeInvalid is for the value did not match the schema type for that field\n\tCauseTypeTypeInvalid CauseType = \"FieldValueTypeInvalid\"\n\t// CauseTypeUnexpectedServerResponse is used to report when the server responded to the client\n\t// without the expected return type. The presence of this cause indicates the error may be\n\t// due to an intervening proxy or the server software malfunctioning.\n\tCauseTypeUnexpectedServerResponse CauseType = \"UnexpectedServerResponse\"\n\t// FieldManagerConflict is used to report when another client claims to manage this field,\n\t// It should only be returned for a request using server-side apply.\n\tCauseTypeFieldManagerConflict CauseType = \"FieldManagerConflict\"\n\t// CauseTypeResourceVersionTooLarge is used to report that the requested resource version\n\t// is newer than the data observed by the API server, so the request cannot be served.\n\tCauseTypeResourceVersionTooLarge CauseType = \"ResourceVersionTooLarge\"\n)\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// List holds a list of objects, which may not be known by the server.\ntype List struct {\n\tTypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// List of objects\n\tItems []runtime.RawExtension `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// APIVersions lists the versions that are available, to allow clients to\n// discover the API at /api, which is the root path of the legacy v1 API.\n//\n// +protobuf.options.(gogoproto.goproto_stringer)=false\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\ntype APIVersions struct {\n\tTypeMeta `json:\",inline\"`\n\t// versions are the api versions that are available.\n\t// +listType=atomic\n\tVersions []string `json:\"versions\" protobuf:\"bytes,1,rep,name=versions\"`\n\t// a map of client CIDR to server address that is serving this group.\n\t// This is to help clients reach servers in the most network-efficient way possible.\n\t// Clients can use the appropriate server address as per the CIDR that they match.\n\t// In case of multiple matches, clients should use the longest matching CIDR.\n\t// The server returns only those CIDRs that it thinks that the client can match.\n\t// For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.\n\t// Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.\n\t// +listType=atomic\n\tServerAddressByClientCIDRs []ServerAddressByClientCIDR `json:\"serverAddressByClientCIDRs\" protobuf:\"bytes,2,rep,name=serverAddressByClientCIDRs\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// APIGroupList is a list of APIGroup, to allow clients to discover the API at\n// /apis.\ntype APIGroupList struct {\n\tTypeMeta `json:\",inline\"`\n\t// groups is a list of APIGroup.\n\t// +listType=atomic\n\tGroups []APIGroup `json:\"groups\" protobuf:\"bytes,1,rep,name=groups\"`\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// APIGroup contains the name, the supported versions, and the preferred version\n// of a group.\ntype APIGroup struct {\n\tTypeMeta `json:\",inline\"`\n\t// name is the name of the group.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\t// versions are the versions supported in this group.\n\t// +listType=atomic\n\tVersions []GroupVersionForDiscovery `json:\"versions\" protobuf:\"bytes,2,rep,name=versions\"`\n\t// preferredVersion is the version preferred by the API server, which\n\t// probably is the storage version.\n\t// +optional\n\tPreferredVersion GroupVersionForDiscovery `json:\"preferredVersion,omitempty\" protobuf:\"bytes,3,opt,name=preferredVersion\"`\n\t// a map of client CIDR to server address that is serving this group.\n\t// This is to help clients reach servers in the most network-efficient way possible.\n\t// Clients can use the appropriate server address as per the CIDR that they match.\n\t// In case of multiple matches, clients should use the longest matching CIDR.\n\t// The server returns only those CIDRs that it thinks that the client can match.\n\t// For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP.\n\t// Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.\n\t// +optional\n\t// +listType=atomic\n\tServerAddressByClientCIDRs []ServerAddressByClientCIDR `json:\"serverAddressByClientCIDRs,omitempty\" protobuf:\"bytes,4,rep,name=serverAddressByClientCIDRs\"`\n}\n\n// ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.\ntype ServerAddressByClientCIDR struct {\n\t// The CIDR with which clients can match their IP to figure out the server address that they should use.\n\tClientCIDR string `json:\"clientCIDR\" protobuf:\"bytes,1,opt,name=clientCIDR\"`\n\t// Address of this server, suitable for a client that matches the above CIDR.\n\t// This can be a hostname, hostname:port, IP or IP:port.\n\tServerAddress string `json:\"serverAddress\" protobuf:\"bytes,2,opt,name=serverAddress\"`\n}\n\n// GroupVersion contains the \"group/version\" and \"version\" string of a version.\n// It is made a struct to keep extensibility.\ntype GroupVersionForDiscovery struct {\n\t// groupVersion specifies the API group and version in the form \"group/version\"\n\tGroupVersion string `json:\"groupVersion\" protobuf:\"bytes,1,opt,name=groupVersion\"`\n\t// version specifies the version in the form of \"version\". This is to save\n\t// the clients the trouble of splitting the GroupVersion.\n\tVersion string `json:\"version\" protobuf:\"bytes,2,opt,name=version\"`\n}\n\n// APIResource specifies the name of a resource and whether it is namespaced.\ntype APIResource struct {\n\t// name is the plural name of the resource.\n\tName string `json:\"name\" protobuf:\"bytes,1,opt,name=name\"`\n\t// singularName is the singular name of the resource.  This allows clients to handle plural and singular opaquely.\n\t// The singularName is more correct for reporting status on a single item and both singular and plural are allowed\n\t// from the kubectl CLI interface.\n\tSingularName string `json:\"singularName\" protobuf:\"bytes,6,opt,name=singularName\"`\n\t// namespaced indicates if a resource is namespaced or not.\n\tNamespaced bool `json:\"namespaced\" protobuf:\"varint,2,opt,name=namespaced\"`\n\t// group is the preferred group of the resource.  Empty implies the group of the containing resource list.\n\t// For subresources, this may have a different value, for example: Scale\".\n\tGroup string `json:\"group,omitempty\" protobuf:\"bytes,8,opt,name=group\"`\n\t// version is the preferred version of the resource.  Empty implies the version of the containing resource list\n\t// For subresources, this may have a different value, for example: v1 (while inside a v1beta1 version of the core resource's group)\".\n\tVersion string `json:\"version,omitempty\" protobuf:\"bytes,9,opt,name=version\"`\n\t// kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')\n\tKind string `json:\"kind\" protobuf:\"bytes,3,opt,name=kind\"`\n\t// verbs is a list of supported kube verbs (this includes get, list, watch, create,\n\t// update, patch, delete, deletecollection, and proxy)\n\tVerbs Verbs `json:\"verbs\" protobuf:\"bytes,4,opt,name=verbs\"`\n\t// shortNames is a list of suggested short names of the resource.\n\t// +listType=atomic\n\tShortNames []string `json:\"shortNames,omitempty\" protobuf:\"bytes,5,rep,name=shortNames\"`\n\t// categories is a list of the grouped resources this resource belongs to (e.g. 'all')\n\t// +listType=atomic\n\tCategories []string `json:\"categories,omitempty\" protobuf:\"bytes,7,rep,name=categories\"`\n\t// The hash value of the storage version, the version this resource is\n\t// converted to when written to the data store. Value must be treated\n\t// as opaque by clients. Only equality comparison on the value is valid.\n\t// This is an alpha feature and may change or be removed in the future.\n\t// The field is populated by the apiserver only if the\n\t// StorageVersionHash feature gate is enabled.\n\t// This field will remain optional even if it graduates.\n\t// +optional\n\tStorageVersionHash string `json:\"storageVersionHash,omitempty\" protobuf:\"bytes,10,opt,name=storageVersionHash\"`\n}\n\n// Verbs masks the value so protobuf can generate\n//\n// +protobuf.nullable=true\n// +protobuf.options.(gogoproto.goproto_stringer)=false\ntype Verbs []string\n\nfunc (vs Verbs) String() string {\n\treturn fmt.Sprintf(\"%v\", []string(vs))\n}\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// APIResourceList is a list of APIResource, it is used to expose the name of the\n// resources supported in a specific group and version, and if the resource\n// is namespaced.\ntype APIResourceList struct {\n\tTypeMeta `json:\",inline\"`\n\t// groupVersion is the group and version this APIResourceList is for.\n\tGroupVersion string `json:\"groupVersion\" protobuf:\"bytes,1,opt,name=groupVersion\"`\n\t// resources contains the name of the resources and if they are namespaced.\n\t// +listType=atomic\n\tAPIResources []APIResource `json:\"resources\" protobuf:\"bytes,2,rep,name=resources\"`\n}\n\n// RootPaths lists the paths available at root.\n// For example: \"/healthz\", \"/apis\".\ntype RootPaths struct {\n\t// paths are the paths available at root.\n\t// +listType=atomic\n\tPaths []string `json:\"paths\" protobuf:\"bytes,1,rep,name=paths\"`\n}\n\n// TODO: remove me when watch is refactored\nfunc LabelSelectorQueryParam(version string) string {\n\treturn \"labelSelector\"\n}\n\n// TODO: remove me when watch is refactored\nfunc FieldSelectorQueryParam(version string) string {\n\treturn \"fieldSelector\"\n}\n\n// String returns available api versions as a human-friendly version string.\nfunc (apiVersions APIVersions) String() string {\n\treturn strings.Join(apiVersions.Versions, \",\")\n}\n\nfunc (apiVersions APIVersions) GoString() string {\n\treturn apiVersions.String()\n}\n\n// Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.\ntype Patch struct{}\n\n// Note:\n// There are two different styles of label selectors used in versioned types:\n// an older style which is represented as just a string in versioned types, and a\n// newer style that is structured.  LabelSelector is an internal representation for the\n// latter style.\n\n// A label selector is a label query over a set of resources. The result of matchLabels and\n// matchExpressions are ANDed. An empty label selector matches all objects. A null\n// label selector matches no objects.\n// +structType=atomic\ntype LabelSelector struct {\n\t// matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\n\t// map is equivalent to an element of matchExpressions, whose key field is \"key\", the\n\t// operator is \"In\", and the values array contains only \"value\". The requirements are ANDed.\n\t// +optional\n\tMatchLabels map[string]string `json:\"matchLabels,omitempty\" protobuf:\"bytes,1,rep,name=matchLabels\"`\n\t// matchExpressions is a list of label selector requirements. The requirements are ANDed.\n\t// +optional\n\t// +listType=atomic\n\tMatchExpressions []LabelSelectorRequirement `json:\"matchExpressions,omitempty\" protobuf:\"bytes,2,rep,name=matchExpressions\"`\n}\n\n// A label selector requirement is a selector that contains values, a key, and an operator that\n// relates the key and values.\ntype LabelSelectorRequirement struct {\n\t// key is the label key that the selector applies to.\n\tKey string `json:\"key\" protobuf:\"bytes,1,opt,name=key\"`\n\t// operator represents a key's relationship to a set of values.\n\t// Valid operators are In, NotIn, Exists and DoesNotExist.\n\tOperator LabelSelectorOperator `json:\"operator\" protobuf:\"bytes,2,opt,name=operator,casttype=LabelSelectorOperator\"`\n\t// values is an array of string values. If the operator is In or NotIn,\n\t// the values array must be non-empty. If the operator is Exists or DoesNotExist,\n\t// the values array must be empty. This array is replaced during a strategic\n\t// merge patch.\n\t// +optional\n\t// +listType=atomic\n\tValues []string `json:\"values,omitempty\" protobuf:\"bytes,3,rep,name=values\"`\n}\n\n// A label selector operator is the set of operators that can be used in a selector requirement.\ntype LabelSelectorOperator string\n\nconst (\n\tLabelSelectorOpIn           LabelSelectorOperator = \"In\"\n\tLabelSelectorOpNotIn        LabelSelectorOperator = \"NotIn\"\n\tLabelSelectorOpExists       LabelSelectorOperator = \"Exists\"\n\tLabelSelectorOpDoesNotExist LabelSelectorOperator = \"DoesNotExist\"\n)\n\n// FieldSelectorRequirement is a selector that contains values, a key, and an operator that\n// relates the key and values.\ntype FieldSelectorRequirement struct {\n\t// key is the field selector key that the requirement applies to.\n\tKey string `json:\"key\" protobuf:\"bytes,1,opt,name=key\"`\n\t// operator represents a key's relationship to a set of values.\n\t// Valid operators are In, NotIn, Exists, DoesNotExist.\n\t// The list of operators may grow in the future.\n\tOperator FieldSelectorOperator `json:\"operator\" protobuf:\"bytes,2,opt,name=operator,casttype=FieldSelectorOperator\"`\n\t// values is an array of string values.\n\t// If the operator is In or NotIn, the values array must be non-empty.\n\t// If the operator is Exists or DoesNotExist, the values array must be empty.\n\t// +optional\n\t// +listType=atomic\n\tValues []string `json:\"values,omitempty\" protobuf:\"bytes,3,rep,name=values\"`\n}\n\n// A field selector operator is the set of operators that can be used in a selector requirement.\ntype FieldSelectorOperator string\n\nconst (\n\tFieldSelectorOpIn           FieldSelectorOperator = \"In\"\n\tFieldSelectorOpNotIn        FieldSelectorOperator = \"NotIn\"\n\tFieldSelectorOpExists       FieldSelectorOperator = \"Exists\"\n\tFieldSelectorOpDoesNotExist FieldSelectorOperator = \"DoesNotExist\"\n)\n\n// ManagedFieldsEntry is a workflow-id, a FieldSet and the group version of the resource\n// that the fieldset applies to.\ntype ManagedFieldsEntry struct {\n\t// Manager is an identifier of the workflow managing these fields.\n\tManager string `json:\"manager,omitempty\" protobuf:\"bytes,1,opt,name=manager\"`\n\t// Operation is the type of operation which lead to this ManagedFieldsEntry being created.\n\t// The only valid values for this field are 'Apply' and 'Update'.\n\tOperation ManagedFieldsOperationType `json:\"operation,omitempty\" protobuf:\"bytes,2,opt,name=operation,casttype=ManagedFieldsOperationType\"`\n\t// APIVersion defines the version of this resource that this field set\n\t// applies to. The format is \"group/version\" just like the top-level\n\t// APIVersion field. It is necessary to track the version of a field\n\t// set because it cannot be automatically converted.\n\tAPIVersion string `json:\"apiVersion,omitempty\" protobuf:\"bytes,3,opt,name=apiVersion\"`\n\t// Time is the timestamp of when the ManagedFields entry was added. The\n\t// timestamp will also be updated if a field is added, the manager\n\t// changes any of the owned fields value or removes a field. The\n\t// timestamp does not update when a field is removed from the entry\n\t// because another manager took it over.\n\t// +optional\n\tTime *Time `json:\"time,omitempty\" protobuf:\"bytes,4,opt,name=time\"`\n\n\t// Fields is tombstoned to show why 5 is a reserved protobuf tag.\n\t//Fields *Fields `json:\"fields,omitempty\" protobuf:\"bytes,5,opt,name=fields,casttype=Fields\"`\n\n\t// FieldsType is the discriminator for the different fields format and version.\n\t// There is currently only one possible value: \"FieldsV1\"\n\tFieldsType string `json:\"fieldsType,omitempty\" protobuf:\"bytes,6,opt,name=fieldsType\"`\n\t// FieldsV1 holds the first JSON version format as described in the \"FieldsV1\" type.\n\t// +optional\n\tFieldsV1 *FieldsV1 `json:\"fieldsV1,omitempty\" protobuf:\"bytes,7,opt,name=fieldsV1\"`\n\n\t// Subresource is the name of the subresource used to update that object, or\n\t// empty string if the object was updated through the main resource. The\n\t// value of this field is used to distinguish between managers, even if they\n\t// share the same name. For example, a status update will be distinct from a\n\t// regular update using the same manager name.\n\t// Note that the APIVersion field is not related to the Subresource field and\n\t// it always corresponds to the version of the main resource.\n\tSubresource string `json:\"subresource,omitempty\" protobuf:\"bytes,8,opt,name=subresource\"`\n}\n\n// ManagedFieldsOperationType is the type of operation which lead to a ManagedFieldsEntry being created.\ntype ManagedFieldsOperationType string\n\nconst (\n\tManagedFieldsOperationApply  ManagedFieldsOperationType = \"Apply\"\n\tManagedFieldsOperationUpdate ManagedFieldsOperationType = \"Update\"\n)\n\n// FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.\n//\n// Each key is either a '.' representing the field itself, and will always map to an empty set,\n// or a string representing a sub-field or item. The string will follow one of these four formats:\n// 'f:<name>', where <name> is the name of a field in a struct, or key in a map\n// 'v:<value>', where <value> is the exact json formatted value of a list item\n// 'i:<index>', where <index> is position of a item in a list\n// 'k:<keys>', where <keys> is a map of  a list item's key fields to their unique values\n// If a key maps to an empty Fields value, the field that key represents is part of the set.\n//\n// The exact format is defined in sigs.k8s.io/structured-merge-diff\n// +protobuf.options.(gogoproto.goproto_stringer)=false\ntype FieldsV1 struct {\n\t// Raw is the underlying serialization of this object.\n\tRaw []byte `json:\"-\" protobuf:\"bytes,1,opt,name=Raw\"`\n}\n\nfunc (f FieldsV1) String() string {\n\treturn string(f.Raw)\n}\n\n// TODO: Table does not generate to protobuf because of the interface{} - fix protobuf\n//   generation to support a meta type that can accept any valid JSON. This can be introduced\n//   in a v1 because clients a) receive an error if they try to access proto today, and b)\n//   once introduced they would be able to gracefully switch over to using it.\n\n// Table is a tabular representation of a set of API resources. The server transforms the\n// object into a set of preferred columns for quickly reviewing the objects.\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +protobuf=false\ntype Table struct {\n\tTypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tListMeta `json:\"metadata,omitempty\"`\n\n\t// columnDefinitions describes each column in the returned items array. The number of cells per row\n\t// will always match the number of column definitions.\n\t// +listType=atomic\n\tColumnDefinitions []TableColumnDefinition `json:\"columnDefinitions\"`\n\t// rows is the list of items in the table.\n\t// +listType=atomic\n\tRows []TableRow `json:\"rows\"`\n}\n\n// TableColumnDefinition contains information about a column returned in the Table.\n// +protobuf=false\ntype TableColumnDefinition struct {\n\t// name is a human readable name for the column.\n\tName string `json:\"name\"`\n\t// type is an OpenAPI type definition for this column, such as number, integer, string, or\n\t// array.\n\t// See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more.\n\tType string `json:\"type\"`\n\t// format is an optional OpenAPI type modifier for this column. A format modifies the type and\n\t// imposes additional rules, like date or time formatting for a string. The 'name' format is applied\n\t// to the primary identifier column which has type 'string' to assist in clients identifying column\n\t// is the resource name.\n\t// See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more.\n\tFormat string `json:\"format\"`\n\t// description is a human readable description of this column.\n\tDescription string `json:\"description\"`\n\t// priority is an integer defining the relative importance of this column compared to others. Lower\n\t// numbers are considered higher priority. Columns that may be omitted in limited space scenarios\n\t// should be given a higher priority.\n\tPriority int32 `json:\"priority\"`\n}\n\n// TableRow is an individual row in a table.\n// +protobuf=false\ntype TableRow struct {\n\t// cells will be as wide as the column definitions array and may contain strings, numbers (float64 or\n\t// int64), booleans, simple maps, lists, or null. See the type field of the column definition for a\n\t// more detailed description.\n\t// +listType=atomic\n\tCells []interface{} `json:\"cells\"`\n\t// conditions describe additional status of a row that are relevant for a human user. These conditions\n\t// apply to the row, not to the object, and will be specific to table output. The only defined\n\t// condition type is 'Completed', for a row that indicates a resource that has run to completion and\n\t// can be given less visual priority.\n\t// +optional\n\t// +listType=atomic\n\tConditions []TableRowCondition `json:\"conditions,omitempty\"`\n\t// This field contains the requested additional information about each object based on the includeObject\n\t// policy when requesting the Table. If \"None\", this field is empty, if \"Object\" this will be the\n\t// default serialization of the object for the current API version, and if \"Metadata\" (the default) will\n\t// contain the object metadata. Check the returned kind and apiVersion of the object before parsing.\n\t// The media type of the object will always match the enclosing list - if this as a JSON table, these\n\t// will be JSON encoded objects.\n\t// +optional\n\tObject runtime.RawExtension `json:\"object,omitempty\"`\n}\n\n// TableRowCondition allows a row to be marked with additional information.\n// +protobuf=false\ntype TableRowCondition struct {\n\t// Type of row condition. The only defined value is 'Completed' indicating that the\n\t// object this row represents has reached a completed state and may be given less visual\n\t// priority than other rows. Clients are not required to honor any conditions but should\n\t// be consistent where possible about handling the conditions.\n\tType RowConditionType `json:\"type\"`\n\t// Status of the condition, one of True, False, Unknown.\n\tStatus ConditionStatus `json:\"status\"`\n\t// (brief) machine readable reason for the condition's last transition.\n\t// +optional\n\tReason string `json:\"reason,omitempty\"`\n\t// Human readable message indicating details about last transition.\n\t// +optional\n\tMessage string `json:\"message,omitempty\"`\n}\n\ntype RowConditionType string\n\n// These are valid conditions of a row. This list is not exhaustive and new conditions may be\n// included by other resources.\nconst (\n\t// RowCompleted means the underlying resource has reached completion and may be given less\n\t// visual priority than other resources.\n\tRowCompleted RowConditionType = \"Completed\"\n)\n\ntype ConditionStatus string\n\n// These are valid condition statuses. \"ConditionTrue\" means a resource is in the condition.\n// \"ConditionFalse\" means a resource is not in the condition. \"ConditionUnknown\" means kubernetes\n// can't decide if a resource is in the condition or not. In the future, we could add other\n// intermediate conditions, e.g. ConditionDegraded.\nconst (\n\tConditionTrue    ConditionStatus = \"True\"\n\tConditionFalse   ConditionStatus = \"False\"\n\tConditionUnknown ConditionStatus = \"Unknown\"\n)\n\n// IncludeObjectPolicy controls which portion of the object is returned with a Table.\ntype IncludeObjectPolicy string\n\nconst (\n\t// IncludeNone returns no object.\n\tIncludeNone IncludeObjectPolicy = \"None\"\n\t// IncludeMetadata serializes the object containing only its metadata field.\n\tIncludeMetadata IncludeObjectPolicy = \"Metadata\"\n\t// IncludeObject contains the full object.\n\tIncludeObject IncludeObjectPolicy = \"Object\"\n)\n\n// TableOptions are used when a Table is requested by the caller.\n// +k8s:conversion-gen:explicit-from=net/url.Values\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\ntype TableOptions struct {\n\tTypeMeta `json:\",inline\"`\n\n\t// NoHeaders is only exposed for internal callers. It is not included in our OpenAPI definitions\n\t// and may be removed as a field in a future release.\n\tNoHeaders bool `json:\"-\"`\n\n\t// includeObject decides whether to include each object along with its columnar information.\n\t// Specifying \"None\" will return no object, specifying \"Object\" will return the full object contents, and\n\t// specifying \"Metadata\" (the default) will return the object's metadata in the PartialObjectMetadata kind\n\t// in version v1beta1 of the meta.k8s.io API group.\n\tIncludeObject IncludeObjectPolicy `json:\"includeObject,omitempty\" protobuf:\"bytes,1,opt,name=includeObject,casttype=IncludeObjectPolicy\"`\n}\n\n// PartialObjectMetadata is a generic representation of any object with ObjectMeta. It allows clients\n// to get access to a particular ObjectMeta schema without knowing the details of the version.\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\ntype PartialObjectMetadata struct {\n\tTypeMeta `json:\",inline\"`\n\t// Standard object's metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n\t// +optional\n\tObjectMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n}\n\n// PartialObjectMetadataList contains a list of objects containing only their metadata\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\ntype PartialObjectMetadataList struct {\n\tTypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,1,opt,name=metadata\"`\n\n\t// items contains each of the included items.\n\tItems []PartialObjectMetadata `json:\"items\" protobuf:\"bytes,2,rep,name=items\"`\n}\n\n// Condition contains details for one aspect of the current state of this API Resource.\n// ---\n// This struct is intended for direct use as an array at the field path .status.conditions.  For example,\n//\n//\ttype FooStatus struct{\n//\t    // Represents the observations of a foo's current state.\n//\t    // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\"\n//\t    // +patchMergeKey=type\n//\t    // +patchStrategy=merge\n//\t    // +listType=map\n//\t    // +listMapKey=type\n//\t    Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n//\n//\t    // other fields\n//\t}\ntype Condition struct {\n\t// type of condition in CamelCase or in foo.example.com/CamelCase.\n\t// ---\n\t// Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be\n\t// useful (see .node.status.conditions), the ability to deconflict is important.\n\t// The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)\n\t// +required\n\t// +kubebuilder:validation:Required\n\t// +kubebuilder:validation:Pattern=`^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$`\n\t// +kubebuilder:validation:MaxLength=316\n\tType string `json:\"type\" protobuf:\"bytes,1,opt,name=type\"`\n\t// status of the condition, one of True, False, Unknown.\n\t// +required\n\t// +kubebuilder:validation:Required\n\t// +kubebuilder:validation:Enum=True;False;Unknown\n\tStatus ConditionStatus `json:\"status\" protobuf:\"bytes,2,opt,name=status\"`\n\t// observedGeneration represents the .metadata.generation that the condition was set based upon.\n\t// For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date\n\t// with respect to the current state of the instance.\n\t// +optional\n\t// +kubebuilder:validation:Minimum=0\n\tObservedGeneration int64 `json:\"observedGeneration,omitempty\" protobuf:\"varint,3,opt,name=observedGeneration\"`\n\t// lastTransitionTime is the last time the condition transitioned from one status to another.\n\t// This should be when the underlying condition changed.  If that is not known, then using the time when the API field changed is acceptable.\n\t// +required\n\t// +kubebuilder:validation:Required\n\t// +kubebuilder:validation:Type=string\n\t// +kubebuilder:validation:Format=date-time\n\tLastTransitionTime Time `json:\"lastTransitionTime\" protobuf:\"bytes,4,opt,name=lastTransitionTime\"`\n\t// reason contains a programmatic identifier indicating the reason for the condition's last transition.\n\t// Producers of specific condition types may define expected values and meanings for this field,\n\t// and whether the values are considered a guaranteed API.\n\t// The value should be a CamelCase string.\n\t// This field may not be empty.\n\t// +required\n\t// +kubebuilder:validation:Required\n\t// +kubebuilder:validation:MaxLength=1024\n\t// +kubebuilder:validation:MinLength=1\n\t// +kubebuilder:validation:Pattern=`^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$`\n\tReason string `json:\"reason\" protobuf:\"bytes,5,opt,name=reason\"`\n\t// message is a human readable message indicating details about the transition.\n\t// This may be an empty string.\n\t// +required\n\t// +kubebuilder:validation:Required\n\t// +kubebuilder:validation:MaxLength=32768\n\tMessage string `json:\"message\" protobuf:\"bytes,6,opt,name=message\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_APIGroup = map[string]string{\n\t\"\":                           \"APIGroup contains the name, the supported versions, and the preferred version of a group.\",\n\t\"name\":                       \"name is the name of the group.\",\n\t\"versions\":                   \"versions are the versions supported in this group.\",\n\t\"preferredVersion\":           \"preferredVersion is the version preferred by the API server, which probably is the storage version.\",\n\t\"serverAddressByClientCIDRs\": \"a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.\",\n}\n\nfunc (APIGroup) SwaggerDoc() map[string]string {\n\treturn map_APIGroup\n}\n\nvar map_APIGroupList = map[string]string{\n\t\"\":       \"APIGroupList is a list of APIGroup, to allow clients to discover the API at /apis.\",\n\t\"groups\": \"groups is a list of APIGroup.\",\n}\n\nfunc (APIGroupList) SwaggerDoc() map[string]string {\n\treturn map_APIGroupList\n}\n\nvar map_APIResource = map[string]string{\n\t\"\":                   \"APIResource specifies the name of a resource and whether it is namespaced.\",\n\t\"name\":               \"name is the plural name of the resource.\",\n\t\"singularName\":       \"singularName is the singular name of the resource.  This allows clients to handle plural and singular opaquely. The singularName is more correct for reporting status on a single item and both singular and plural are allowed from the kubectl CLI interface.\",\n\t\"namespaced\":         \"namespaced indicates if a resource is namespaced or not.\",\n\t\"group\":              \"group is the preferred group of the resource.  Empty implies the group of the containing resource list. For subresources, this may have a different value, for example: Scale\\\".\",\n\t\"version\":            \"version is the preferred version of the resource.  Empty implies the version of the containing resource list For subresources, this may have a different value, for example: v1 (while inside a v1beta1 version of the core resource's group)\\\".\",\n\t\"kind\":               \"kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')\",\n\t\"verbs\":              \"verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)\",\n\t\"shortNames\":         \"shortNames is a list of suggested short names of the resource.\",\n\t\"categories\":         \"categories is a list of the grouped resources this resource belongs to (e.g. 'all')\",\n\t\"storageVersionHash\": \"The hash value of the storage version, the version this resource is converted to when written to the data store. Value must be treated as opaque by clients. Only equality comparison on the value is valid. This is an alpha feature and may change or be removed in the future. The field is populated by the apiserver only if the StorageVersionHash feature gate is enabled. This field will remain optional even if it graduates.\",\n}\n\nfunc (APIResource) SwaggerDoc() map[string]string {\n\treturn map_APIResource\n}\n\nvar map_APIResourceList = map[string]string{\n\t\"\":             \"APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.\",\n\t\"groupVersion\": \"groupVersion is the group and version this APIResourceList is for.\",\n\t\"resources\":    \"resources contains the name of the resources and if they are namespaced.\",\n}\n\nfunc (APIResourceList) SwaggerDoc() map[string]string {\n\treturn map_APIResourceList\n}\n\nvar map_APIVersions = map[string]string{\n\t\"\":                           \"APIVersions lists the versions that are available, to allow clients to discover the API at /api, which is the root path of the legacy v1 API.\",\n\t\"versions\":                   \"versions are the api versions that are available.\",\n\t\"serverAddressByClientCIDRs\": \"a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.\",\n}\n\nfunc (APIVersions) SwaggerDoc() map[string]string {\n\treturn map_APIVersions\n}\n\nvar map_ApplyOptions = map[string]string{\n\t\"\":             \"ApplyOptions may be provided when applying an API object. FieldManager is required for apply requests. ApplyOptions is equivalent to PatchOptions. It is provided as a convenience with documentation that speaks specifically to how the options fields relate to apply.\",\n\t\"dryRun\":       \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n\t\"force\":        \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people.\",\n\t\"fieldManager\": \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required.\",\n}\n\nfunc (ApplyOptions) SwaggerDoc() map[string]string {\n\treturn map_ApplyOptions\n}\n\nvar map_Condition = map[string]string{\n\t\"\":                   \"Condition contains details for one aspect of the current state of this API Resource.\",\n\t\"type\":               \"type of condition in CamelCase or in foo.example.com/CamelCase.\",\n\t\"status\":             \"status of the condition, one of True, False, Unknown.\",\n\t\"observedGeneration\": \"observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.\",\n\t\"lastTransitionTime\": \"lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed.  If that is not known, then using the time when the API field changed is acceptable.\",\n\t\"reason\":             \"reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.\",\n\t\"message\":            \"message is a human readable message indicating details about the transition. This may be an empty string.\",\n}\n\nfunc (Condition) SwaggerDoc() map[string]string {\n\treturn map_Condition\n}\n\nvar map_CreateOptions = map[string]string{\n\t\"\":                \"CreateOptions may be provided when creating an API object.\",\n\t\"dryRun\":          \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n\t\"fieldManager\":    \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n\t\"fieldValidation\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n}\n\nfunc (CreateOptions) SwaggerDoc() map[string]string {\n\treturn map_CreateOptions\n}\n\nvar map_DeleteOptions = map[string]string{\n\t\"\":                   \"DeleteOptions may be provided when deleting an API object.\",\n\t\"gracePeriodSeconds\": \"The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.\",\n\t\"preconditions\":      \"Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.\",\n\t\"orphanDependents\":   \"Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \\\"orphan\\\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.\",\n\t\"propagationPolicy\":  \"Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.\",\n\t\"dryRun\":             \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n\t\"ignoreStoreReadErrorWithClusterBreakingPotential\": \"if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it\",\n}\n\nfunc (DeleteOptions) SwaggerDoc() map[string]string {\n\treturn map_DeleteOptions\n}\n\nvar map_FieldSelectorRequirement = map[string]string{\n\t\"\":         \"FieldSelectorRequirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n\t\"key\":      \"key is the field selector key that the requirement applies to.\",\n\t\"operator\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. The list of operators may grow in the future.\",\n\t\"values\":   \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty.\",\n}\n\nfunc (FieldSelectorRequirement) SwaggerDoc() map[string]string {\n\treturn map_FieldSelectorRequirement\n}\n\nvar map_FieldsV1 = map[string]string{\n\t\"\": \"FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.\\n\\nEach key is either a '.' representing the field itself, and will always map to an empty set, or a string representing a sub-field or item. The string will follow one of these four formats: 'f:<name>', where <name> is the name of a field in a struct, or key in a map 'v:<value>', where <value> is the exact json formatted value of a list item 'i:<index>', where <index> is position of a item in a list 'k:<keys>', where <keys> is a map of  a list item's key fields to their unique values If a key maps to an empty Fields value, the field that key represents is part of the set.\\n\\nThe exact format is defined in sigs.k8s.io/structured-merge-diff\",\n}\n\nfunc (FieldsV1) SwaggerDoc() map[string]string {\n\treturn map_FieldsV1\n}\n\nvar map_GetOptions = map[string]string{\n\t\"\":                \"GetOptions is the standard query options to the standard REST get call.\",\n\t\"resourceVersion\": \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n}\n\nfunc (GetOptions) SwaggerDoc() map[string]string {\n\treturn map_GetOptions\n}\n\nvar map_GroupVersionForDiscovery = map[string]string{\n\t\"\":             \"GroupVersion contains the \\\"group/version\\\" and \\\"version\\\" string of a version. It is made a struct to keep extensibility.\",\n\t\"groupVersion\": \"groupVersion specifies the API group and version in the form \\\"group/version\\\"\",\n\t\"version\":      \"version specifies the version in the form of \\\"version\\\". This is to save the clients the trouble of splitting the GroupVersion.\",\n}\n\nfunc (GroupVersionForDiscovery) SwaggerDoc() map[string]string {\n\treturn map_GroupVersionForDiscovery\n}\n\nvar map_LabelSelector = map[string]string{\n\t\"\":                 \"A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.\",\n\t\"matchLabels\":      \"matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \\\"key\\\", the operator is \\\"In\\\", and the values array contains only \\\"value\\\". The requirements are ANDed.\",\n\t\"matchExpressions\": \"matchExpressions is a list of label selector requirements. The requirements are ANDed.\",\n}\n\nfunc (LabelSelector) SwaggerDoc() map[string]string {\n\treturn map_LabelSelector\n}\n\nvar map_LabelSelectorRequirement = map[string]string{\n\t\"\":         \"A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.\",\n\t\"key\":      \"key is the label key that the selector applies to.\",\n\t\"operator\": \"operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.\",\n\t\"values\":   \"values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.\",\n}\n\nfunc (LabelSelectorRequirement) SwaggerDoc() map[string]string {\n\treturn map_LabelSelectorRequirement\n}\n\nvar map_List = map[string]string{\n\t\"\":         \"List holds a list of objects, which may not be known by the server.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"List of objects\",\n}\n\nfunc (List) SwaggerDoc() map[string]string {\n\treturn map_List\n}\n\nvar map_ListMeta = map[string]string{\n\t\"\":                   \"ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.\",\n\t\"selfLink\":           \"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\n\t\"resourceVersion\":    \"String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency\",\n\t\"continue\":           \"continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a consistent list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response, unless you have received this token from an error message.\",\n\t\"remainingItemCount\": \"remainingItemCount is the number of subsequent items in the list which are not included in this list response. If the list request contained label or field selectors, then the number of remaining items is unknown and the field will be left unset and omitted during serialization. If the list is complete (either because it is not chunking or because this is the last chunk), then there are no more remaining items and this field will be left unset and omitted during serialization. Servers older than v1.15 do not set this field. The intended use of the remainingItemCount is *estimating* the size of a collection. Clients should not rely on the remainingItemCount to be set or to be exact.\",\n}\n\nfunc (ListMeta) SwaggerDoc() map[string]string {\n\treturn map_ListMeta\n}\n\nvar map_ListOptions = map[string]string{\n\t\"\":                     \"ListOptions is the query options to a standard REST list call.\",\n\t\"labelSelector\":        \"A selector to restrict the list of returned objects by their labels. Defaults to everything.\",\n\t\"fieldSelector\":        \"A selector to restrict the list of returned objects by their fields. Defaults to everything.\",\n\t\"watch\":                \"Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.\",\n\t\"allowWatchBookmarks\":  \"allowWatchBookmarks requests watch events with type \\\"BOOKMARK\\\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.\",\n\t\"resourceVersion\":      \"resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n\t\"resourceVersionMatch\": \"resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\\n\\nDefaults to unset\",\n\t\"timeoutSeconds\":       \"Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.\",\n\t\"limit\":                \"limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\\n\\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.\",\n\t\"continue\":             \"The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \\\"next key\\\".\\n\\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.\",\n\t\"sendInitialEvents\":    \"`sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \\\"Bookmark\\\" event  will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\\\"k8s.io/initial-events-end\\\": \\\"true\\\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched.\\n\\nWhen `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan\\n  is interpreted as \\\"data at least as new as the provided `resourceVersion`\\\"\\n  and the bookmark event is send when the state is synced\\n  to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\\n  If `resourceVersion` is unset, this is interpreted as \\\"consistent read\\\" and the\\n  bookmark event is send when the state is synced at least to the moment\\n  when request started being processed.\\n- `resourceVersionMatch` set to any other value or unset\\n  Invalid error is returned.\\n\\nDefaults to true if `resourceVersion=\\\"\\\"` or `resourceVersion=\\\"0\\\"` (for backward compatibility reasons) and to false otherwise.\",\n}\n\nfunc (ListOptions) SwaggerDoc() map[string]string {\n\treturn map_ListOptions\n}\n\nvar map_ManagedFieldsEntry = map[string]string{\n\t\"\":            \"ManagedFieldsEntry is a workflow-id, a FieldSet and the group version of the resource that the fieldset applies to.\",\n\t\"manager\":     \"Manager is an identifier of the workflow managing these fields.\",\n\t\"operation\":   \"Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.\",\n\t\"apiVersion\":  \"APIVersion defines the version of this resource that this field set applies to. The format is \\\"group/version\\\" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.\",\n\t\"time\":        \"Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over.\",\n\t\"fieldsType\":  \"FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \\\"FieldsV1\\\"\",\n\t\"fieldsV1\":    \"FieldsV1 holds the first JSON version format as described in the \\\"FieldsV1\\\" type.\",\n\t\"subresource\": \"Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.\",\n}\n\nfunc (ManagedFieldsEntry) SwaggerDoc() map[string]string {\n\treturn map_ManagedFieldsEntry\n}\n\nvar map_ObjectMeta = map[string]string{\n\t\"\":                           \"ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.\",\n\t\"name\":                       \"Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names\",\n\t\"generateName\":               \"GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.\\n\\nIf this field is specified and the generated name exists, the server will return a 409.\\n\\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency\",\n\t\"namespace\":                  \"Namespace defines the space within which each name must be unique. An empty namespace is equivalent to the \\\"default\\\" namespace, but \\\"default\\\" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty.\\n\\nMust be a DNS_LABEL. Cannot be updated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces\",\n\t\"selfLink\":                   \"Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.\",\n\t\"uid\":                        \"UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\\n\\nPopulated by the system. Read-only. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids\",\n\t\"resourceVersion\":            \"An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.\\n\\nPopulated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency\",\n\t\"generation\":                 \"A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.\",\n\t\"creationTimestamp\":          \"CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\\n\\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"deletionTimestamp\":          \"DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\\n\\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n\t\"deletionGracePeriodSeconds\": \"Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.\",\n\t\"labels\":                     \"Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels\",\n\t\"annotations\":                \"Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations\",\n\t\"ownerReferences\":            \"List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.\",\n\t\"finalizers\":                 \"Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order.  Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.\",\n\t\"managedFields\":              \"ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \\\"ci-cd\\\". The set of fields is always in the version that the workflow used when modifying the object.\",\n}\n\nfunc (ObjectMeta) SwaggerDoc() map[string]string {\n\treturn map_ObjectMeta\n}\n\nvar map_OwnerReference = map[string]string{\n\t\"\":                   \"OwnerReference contains enough information to let you identify an owning object. An owning object must be in the same namespace as the dependent, or be cluster-scoped, so there is no namespace field.\",\n\t\"apiVersion\":         \"API version of the referent.\",\n\t\"kind\":               \"Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"name\":               \"Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names\",\n\t\"uid\":                \"UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids\",\n\t\"controller\":         \"If true, this reference points to the managing controller.\",\n\t\"blockOwnerDeletion\": \"If true, AND if the owner has the \\\"foregroundDeletion\\\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \\\"delete\\\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.\",\n}\n\nfunc (OwnerReference) SwaggerDoc() map[string]string {\n\treturn map_OwnerReference\n}\n\nvar map_PartialObjectMetadata = map[string]string{\n\t\"\":         \"PartialObjectMetadata is a generic representation of any object with ObjectMeta. It allows clients to get access to a particular ObjectMeta schema without knowing the details of the version.\",\n\t\"metadata\": \"Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\",\n}\n\nfunc (PartialObjectMetadata) SwaggerDoc() map[string]string {\n\treturn map_PartialObjectMetadata\n}\n\nvar map_PartialObjectMetadataList = map[string]string{\n\t\"\":         \"PartialObjectMetadataList contains a list of objects containing only their metadata\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"items contains each of the included items.\",\n}\n\nfunc (PartialObjectMetadataList) SwaggerDoc() map[string]string {\n\treturn map_PartialObjectMetadataList\n}\n\nvar map_Patch = map[string]string{\n\t\"\": \"Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.\",\n}\n\nfunc (Patch) SwaggerDoc() map[string]string {\n\treturn map_Patch\n}\n\nvar map_PatchOptions = map[string]string{\n\t\"\":                \"PatchOptions may be provided when patching an API object. PatchOptions is meant to be a superset of UpdateOptions.\",\n\t\"dryRun\":          \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n\t\"force\":           \"Force is going to \\\"force\\\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.\",\n\t\"fieldManager\":    \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).\",\n\t\"fieldValidation\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n}\n\nfunc (PatchOptions) SwaggerDoc() map[string]string {\n\treturn map_PatchOptions\n}\n\nvar map_Preconditions = map[string]string{\n\t\"\":                \"Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.\",\n\t\"uid\":             \"Specifies the target UID.\",\n\t\"resourceVersion\": \"Specifies the target ResourceVersion\",\n}\n\nfunc (Preconditions) SwaggerDoc() map[string]string {\n\treturn map_Preconditions\n}\n\nvar map_RootPaths = map[string]string{\n\t\"\":      \"RootPaths lists the paths available at root. For example: \\\"/healthz\\\", \\\"/apis\\\".\",\n\t\"paths\": \"paths are the paths available at root.\",\n}\n\nfunc (RootPaths) SwaggerDoc() map[string]string {\n\treturn map_RootPaths\n}\n\nvar map_ServerAddressByClientCIDR = map[string]string{\n\t\"\":              \"ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.\",\n\t\"clientCIDR\":    \"The CIDR with which clients can match their IP to figure out the server address that they should use.\",\n\t\"serverAddress\": \"Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port.\",\n}\n\nfunc (ServerAddressByClientCIDR) SwaggerDoc() map[string]string {\n\treturn map_ServerAddressByClientCIDR\n}\n\nvar map_Status = map[string]string{\n\t\"\":         \"Status is a return value for calls that don't return other objects.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"status\":   \"Status of the operation. One of: \\\"Success\\\" or \\\"Failure\\\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\",\n\t\"message\":  \"A human-readable description of the status of this operation.\",\n\t\"reason\":   \"A machine-readable description of why this operation is in the \\\"Failure\\\" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.\",\n\t\"details\":  \"Extended data associated with the reason.  Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type.\",\n\t\"code\":     \"Suggested HTTP return code for this status, 0 if not set.\",\n}\n\nfunc (Status) SwaggerDoc() map[string]string {\n\treturn map_Status\n}\n\nvar map_StatusCause = map[string]string{\n\t\"\":        \"StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.\",\n\t\"reason\":  \"A machine-readable description of the cause of the error. If this value is empty there is no information available.\",\n\t\"message\": \"A human-readable description of the cause of the error.  This field may be presented as-is to a reader.\",\n\t\"field\":   \"The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed.  Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.\\n\\nExamples:\\n  \\\"name\\\" - the field \\\"name\\\" on the current resource\\n  \\\"items[0].name\\\" - the field \\\"name\\\" on the first array entry in \\\"items\\\"\",\n}\n\nfunc (StatusCause) SwaggerDoc() map[string]string {\n\treturn map_StatusCause\n}\n\nvar map_StatusDetails = map[string]string{\n\t\"\":                  \"StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.\",\n\t\"name\":              \"The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).\",\n\t\"group\":             \"The group attribute of the resource associated with the status StatusReason.\",\n\t\"kind\":              \"The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"uid\":               \"UID of the resource. (when there is a single resource which can be described). More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids\",\n\t\"causes\":            \"The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.\",\n\t\"retryAfterSeconds\": \"If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action.\",\n}\n\nfunc (StatusDetails) SwaggerDoc() map[string]string {\n\treturn map_StatusDetails\n}\n\nvar map_Table = map[string]string{\n\t\"\":                  \"Table is a tabular representation of a set of API resources. The server transforms the object into a set of preferred columns for quickly reviewing the objects.\",\n\t\"metadata\":          \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"columnDefinitions\": \"columnDefinitions describes each column in the returned items array. The number of cells per row will always match the number of column definitions.\",\n\t\"rows\":              \"rows is the list of items in the table.\",\n}\n\nfunc (Table) SwaggerDoc() map[string]string {\n\treturn map_Table\n}\n\nvar map_TableColumnDefinition = map[string]string{\n\t\"\":            \"TableColumnDefinition contains information about a column returned in the Table.\",\n\t\"name\":        \"name is a human readable name for the column.\",\n\t\"type\":        \"type is an OpenAPI type definition for this column, such as number, integer, string, or array. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more.\",\n\t\"format\":      \"format is an optional OpenAPI type modifier for this column. A format modifies the type and imposes additional rules, like date or time formatting for a string. The 'name' format is applied to the primary identifier column which has type 'string' to assist in clients identifying column is the resource name. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more.\",\n\t\"description\": \"description is a human readable description of this column.\",\n\t\"priority\":    \"priority is an integer defining the relative importance of this column compared to others. Lower numbers are considered higher priority. Columns that may be omitted in limited space scenarios should be given a higher priority.\",\n}\n\nfunc (TableColumnDefinition) SwaggerDoc() map[string]string {\n\treturn map_TableColumnDefinition\n}\n\nvar map_TableOptions = map[string]string{\n\t\"\":              \"TableOptions are used when a Table is requested by the caller.\",\n\t\"includeObject\": \"includeObject decides whether to include each object along with its columnar information. Specifying \\\"None\\\" will return no object, specifying \\\"Object\\\" will return the full object contents, and specifying \\\"Metadata\\\" (the default) will return the object's metadata in the PartialObjectMetadata kind in version v1beta1 of the meta.k8s.io API group.\",\n}\n\nfunc (TableOptions) SwaggerDoc() map[string]string {\n\treturn map_TableOptions\n}\n\nvar map_TableRow = map[string]string{\n\t\"\":           \"TableRow is an individual row in a table.\",\n\t\"cells\":      \"cells will be as wide as the column definitions array and may contain strings, numbers (float64 or int64), booleans, simple maps, lists, or null. See the type field of the column definition for a more detailed description.\",\n\t\"conditions\": \"conditions describe additional status of a row that are relevant for a human user. These conditions apply to the row, not to the object, and will be specific to table output. The only defined condition type is 'Completed', for a row that indicates a resource that has run to completion and can be given less visual priority.\",\n\t\"object\":     \"This field contains the requested additional information about each object based on the includeObject policy when requesting the Table. If \\\"None\\\", this field is empty, if \\\"Object\\\" this will be the default serialization of the object for the current API version, and if \\\"Metadata\\\" (the default) will contain the object metadata. Check the returned kind and apiVersion of the object before parsing. The media type of the object will always match the enclosing list - if this as a JSON table, these will be JSON encoded objects.\",\n}\n\nfunc (TableRow) SwaggerDoc() map[string]string {\n\treturn map_TableRow\n}\n\nvar map_TableRowCondition = map[string]string{\n\t\"\":        \"TableRowCondition allows a row to be marked with additional information.\",\n\t\"type\":    \"Type of row condition. The only defined value is 'Completed' indicating that the object this row represents has reached a completed state and may be given less visual priority than other rows. Clients are not required to honor any conditions but should be consistent where possible about handling the conditions.\",\n\t\"status\":  \"Status of the condition, one of True, False, Unknown.\",\n\t\"reason\":  \"(brief) machine readable reason for the condition's last transition.\",\n\t\"message\": \"Human readable message indicating details about last transition.\",\n}\n\nfunc (TableRowCondition) SwaggerDoc() map[string]string {\n\treturn map_TableRowCondition\n}\n\nvar map_TypeMeta = map[string]string{\n\t\"\":           \"TypeMeta describes an individual object in an API response or request with strings representing the type of the object and its API schema version. Structures that are versioned or persisted should inline TypeMeta.\",\n\t\"kind\":       \"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"apiVersion\": \"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources\",\n}\n\nfunc (TypeMeta) SwaggerDoc() map[string]string {\n\treturn map_TypeMeta\n}\n\nvar map_UpdateOptions = map[string]string{\n\t\"\":                \"UpdateOptions may be provided when updating an API object. All fields in UpdateOptions should also be present in PatchOptions.\",\n\t\"dryRun\":          \"When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed\",\n\t\"fieldManager\":    \"fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.\",\n\t\"fieldValidation\": \"fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.\",\n}\n\nfunc (UpdateOptions) SwaggerDoc() map[string]string {\n\treturn map_UpdateOptions\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/helpers.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage unstructured\n\nimport (\n\tgojson \"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"math/big\"\n\t\"strings\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/types\"\n\t\"k8s.io/apimachinery/pkg/util/json\"\n\t\"k8s.io/klog/v2\"\n)\n\n// NestedFieldCopy returns a deep copy of the value of a nested field.\n// Returns false if the value is missing.\n// No error is returned for a nil field.\n//\n// Note: fields passed to this function are treated as keys within the passed\n// object; no array/slice syntax is supported.\nfunc NestedFieldCopy(obj map[string]interface{}, fields ...string) (interface{}, bool, error) {\n\tval, found, err := NestedFieldNoCopy(obj, fields...)\n\tif !found || err != nil {\n\t\treturn nil, found, err\n\t}\n\treturn runtime.DeepCopyJSONValue(val), true, nil\n}\n\n// NestedFieldNoCopy returns a reference to a nested field.\n// Returns false if value is not found and an error if unable\n// to traverse obj.\n//\n// Note: fields passed to this function are treated as keys within the passed\n// object; no array/slice syntax is supported.\nfunc NestedFieldNoCopy(obj map[string]interface{}, fields ...string) (interface{}, bool, error) {\n\tvar val interface{} = obj\n\n\tfor i, field := range fields {\n\t\tif val == nil {\n\t\t\treturn nil, false, nil\n\t\t}\n\t\tif m, ok := val.(map[string]interface{}); ok {\n\t\t\tval, ok = m[field]\n\t\t\tif !ok {\n\t\t\t\treturn nil, false, nil\n\t\t\t}\n\t\t} else {\n\t\t\treturn nil, false, fmt.Errorf(\"%v accessor error: %v is of the type %T, expected map[string]interface{}\", jsonPath(fields[:i+1]), val, val)\n\t\t}\n\t}\n\treturn val, true, nil\n}\n\n// NestedString returns the string value of a nested field.\n// Returns false if value is not found and an error if not a string.\nfunc NestedString(obj map[string]interface{}, fields ...string) (string, bool, error) {\n\tval, found, err := NestedFieldNoCopy(obj, fields...)\n\tif !found || err != nil {\n\t\treturn \"\", found, err\n\t}\n\ts, ok := val.(string)\n\tif !ok {\n\t\treturn \"\", false, fmt.Errorf(\"%v accessor error: %v is of the type %T, expected string\", jsonPath(fields), val, val)\n\t}\n\treturn s, true, nil\n}\n\n// NestedBool returns the bool value of a nested field.\n// Returns false if value is not found and an error if not a bool.\nfunc NestedBool(obj map[string]interface{}, fields ...string) (bool, bool, error) {\n\tval, found, err := NestedFieldNoCopy(obj, fields...)\n\tif !found || err != nil {\n\t\treturn false, found, err\n\t}\n\tb, ok := val.(bool)\n\tif !ok {\n\t\treturn false, false, fmt.Errorf(\"%v accessor error: %v is of the type %T, expected bool\", jsonPath(fields), val, val)\n\t}\n\treturn b, true, nil\n}\n\n// NestedFloat64 returns the float64 value of a nested field.\n// Returns false if value is not found and an error if not a float64.\nfunc NestedFloat64(obj map[string]interface{}, fields ...string) (float64, bool, error) {\n\tval, found, err := NestedFieldNoCopy(obj, fields...)\n\tif !found || err != nil {\n\t\treturn 0, found, err\n\t}\n\tf, ok := val.(float64)\n\tif !ok {\n\t\treturn 0, false, fmt.Errorf(\"%v accessor error: %v is of the type %T, expected float64\", jsonPath(fields), val, val)\n\t}\n\treturn f, true, nil\n}\n\n// NestedInt64 returns the int64 value of a nested field.\n// Returns false if value is not found and an error if not an int64.\nfunc NestedInt64(obj map[string]interface{}, fields ...string) (int64, bool, error) {\n\tval, found, err := NestedFieldNoCopy(obj, fields...)\n\tif !found || err != nil {\n\t\treturn 0, found, err\n\t}\n\ti, ok := val.(int64)\n\tif !ok {\n\t\treturn 0, false, fmt.Errorf(\"%v accessor error: %v is of the type %T, expected int64\", jsonPath(fields), val, val)\n\t}\n\treturn i, true, nil\n}\n\n// NestedNumberAsFloat64 returns the float64 value of a nested field. If the field's value is a\n// float64, it is returned. If the field's value is an int64 that can be losslessly converted to\n// float64, it will be converted and returned.  Returns false if value is not found and an error if\n// not a float64 or an int64 that can be accurately represented as a float64.\nfunc NestedNumberAsFloat64(obj map[string]interface{}, fields ...string) (float64, bool, error) {\n\tval, found, err := NestedFieldNoCopy(obj, fields...)\n\tif !found || err != nil {\n\t\treturn 0, found, err\n\t}\n\tswitch x := val.(type) {\n\tcase int64:\n\t\tf, accuracy := big.NewInt(x).Float64()\n\t\tif accuracy != big.Exact {\n\t\t\treturn 0, false, fmt.Errorf(\"%v accessor error: int64 value %v cannot be losslessly converted to float64\", jsonPath(fields), x)\n\t\t}\n\t\treturn f, true, nil\n\tcase float64:\n\t\treturn x, true, nil\n\tdefault:\n\t\treturn 0, false, fmt.Errorf(\"%v accessor error: %v is of the type %T, expected float64 or int64\", jsonPath(fields), val, val)\n\t}\n}\n\n// NestedStringSlice returns a copy of []string value of a nested field.\n// Returns false if value is not found and an error if not a []interface{} or contains non-string items in the slice.\nfunc NestedStringSlice(obj map[string]interface{}, fields ...string) ([]string, bool, error) {\n\tval, found, err := NestedFieldNoCopy(obj, fields...)\n\tif !found || err != nil {\n\t\treturn nil, found, err\n\t}\n\tm, ok := val.([]interface{})\n\tif !ok {\n\t\treturn nil, false, fmt.Errorf(\"%v accessor error: %v is of the type %T, expected []interface{}\", jsonPath(fields), val, val)\n\t}\n\tstrSlice := make([]string, 0, len(m))\n\tfor _, v := range m {\n\t\tif str, ok := v.(string); ok {\n\t\t\tstrSlice = append(strSlice, str)\n\t\t} else {\n\t\t\treturn nil, false, fmt.Errorf(\"%v accessor error: contains non-string key in the slice: %v is of the type %T, expected string\", jsonPath(fields), v, v)\n\t\t}\n\t}\n\treturn strSlice, true, nil\n}\n\n// NestedSlice returns a deep copy of []interface{} value of a nested field.\n// Returns false if value is not found and an error if not a []interface{}.\nfunc NestedSlice(obj map[string]interface{}, fields ...string) ([]interface{}, bool, error) {\n\tval, found, err := NestedFieldNoCopy(obj, fields...)\n\tif !found || err != nil {\n\t\treturn nil, found, err\n\t}\n\t_, ok := val.([]interface{})\n\tif !ok {\n\t\treturn nil, false, fmt.Errorf(\"%v accessor error: %v is of the type %T, expected []interface{}\", jsonPath(fields), val, val)\n\t}\n\treturn runtime.DeepCopyJSONValue(val).([]interface{}), true, nil\n}\n\n// NestedStringMap returns a copy of map[string]string value of a nested field.\n// Returns false if value is not found and an error if not a map[string]interface{} or contains non-string values in the map.\nfunc NestedStringMap(obj map[string]interface{}, fields ...string) (map[string]string, bool, error) {\n\tm, found, err := nestedMapNoCopy(obj, fields...)\n\tif !found || err != nil {\n\t\treturn nil, found, err\n\t}\n\tstrMap := make(map[string]string, len(m))\n\tfor k, v := range m {\n\t\tif str, ok := v.(string); ok {\n\t\t\tstrMap[k] = str\n\t\t} else {\n\t\t\treturn nil, false, fmt.Errorf(\"%v accessor error: contains non-string value in the map under key %q: %v is of the type %T, expected string\", jsonPath(fields), k, v, v)\n\t\t}\n\t}\n\treturn strMap, true, nil\n}\n\n// NestedMap returns a deep copy of map[string]interface{} value of a nested field.\n// Returns false if value is not found and an error if not a map[string]interface{}.\nfunc NestedMap(obj map[string]interface{}, fields ...string) (map[string]interface{}, bool, error) {\n\tm, found, err := nestedMapNoCopy(obj, fields...)\n\tif !found || err != nil {\n\t\treturn nil, found, err\n\t}\n\treturn runtime.DeepCopyJSON(m), true, nil\n}\n\n// nestedMapNoCopy returns a map[string]interface{} value of a nested field.\n// Returns false if value is not found and an error if not a map[string]interface{}.\nfunc nestedMapNoCopy(obj map[string]interface{}, fields ...string) (map[string]interface{}, bool, error) {\n\tval, found, err := NestedFieldNoCopy(obj, fields...)\n\tif !found || err != nil {\n\t\treturn nil, found, err\n\t}\n\tm, ok := val.(map[string]interface{})\n\tif !ok {\n\t\treturn nil, false, fmt.Errorf(\"%v accessor error: %v is of the type %T, expected map[string]interface{}\", jsonPath(fields), val, val)\n\t}\n\treturn m, true, nil\n}\n\n// SetNestedField sets the value of a nested field to a deep copy of the value provided.\n// Returns an error if value cannot be set because one of the nesting levels is not a map[string]interface{}.\nfunc SetNestedField(obj map[string]interface{}, value interface{}, fields ...string) error {\n\treturn setNestedFieldNoCopy(obj, runtime.DeepCopyJSONValue(value), fields...)\n}\n\nfunc setNestedFieldNoCopy(obj map[string]interface{}, value interface{}, fields ...string) error {\n\tm := obj\n\n\tfor i, field := range fields[:len(fields)-1] {\n\t\tif val, ok := m[field]; ok {\n\t\t\tif valMap, ok := val.(map[string]interface{}); ok {\n\t\t\t\tm = valMap\n\t\t\t} else {\n\t\t\t\treturn fmt.Errorf(\"value cannot be set because %v is not a map[string]interface{}\", jsonPath(fields[:i+1]))\n\t\t\t}\n\t\t} else {\n\t\t\tnewVal := make(map[string]interface{})\n\t\t\tm[field] = newVal\n\t\t\tm = newVal\n\t\t}\n\t}\n\tm[fields[len(fields)-1]] = value\n\treturn nil\n}\n\n// SetNestedStringSlice sets the string slice value of a nested field.\n// Returns an error if value cannot be set because one of the nesting levels is not a map[string]interface{}.\nfunc SetNestedStringSlice(obj map[string]interface{}, value []string, fields ...string) error {\n\tm := make([]interface{}, 0, len(value)) // convert []string into []interface{}\n\tfor _, v := range value {\n\t\tm = append(m, v)\n\t}\n\treturn setNestedFieldNoCopy(obj, m, fields...)\n}\n\n// SetNestedSlice sets the slice value of a nested field.\n// Returns an error if value cannot be set because one of the nesting levels is not a map[string]interface{}.\nfunc SetNestedSlice(obj map[string]interface{}, value []interface{}, fields ...string) error {\n\treturn SetNestedField(obj, value, fields...)\n}\n\n// SetNestedStringMap sets the map[string]string value of a nested field.\n// Returns an error if value cannot be set because one of the nesting levels is not a map[string]interface{}.\nfunc SetNestedStringMap(obj map[string]interface{}, value map[string]string, fields ...string) error {\n\tm := make(map[string]interface{}, len(value)) // convert map[string]string into map[string]interface{}\n\tfor k, v := range value {\n\t\tm[k] = v\n\t}\n\treturn setNestedFieldNoCopy(obj, m, fields...)\n}\n\n// SetNestedMap sets the map[string]interface{} value of a nested field.\n// Returns an error if value cannot be set because one of the nesting levels is not a map[string]interface{}.\nfunc SetNestedMap(obj map[string]interface{}, value map[string]interface{}, fields ...string) error {\n\treturn SetNestedField(obj, value, fields...)\n}\n\n// RemoveNestedField removes the nested field from the obj.\nfunc RemoveNestedField(obj map[string]interface{}, fields ...string) {\n\tm := obj\n\tfor _, field := range fields[:len(fields)-1] {\n\t\tif x, ok := m[field].(map[string]interface{}); ok {\n\t\t\tm = x\n\t\t} else {\n\t\t\treturn\n\t\t}\n\t}\n\tdelete(m, fields[len(fields)-1])\n}\n\nfunc getNestedString(obj map[string]interface{}, fields ...string) string {\n\tval, found, err := NestedString(obj, fields...)\n\tif !found || err != nil {\n\t\treturn \"\"\n\t}\n\treturn val\n}\n\nfunc getNestedInt64Pointer(obj map[string]interface{}, fields ...string) *int64 {\n\tval, found, err := NestedInt64(obj, fields...)\n\tif !found || err != nil {\n\t\treturn nil\n\t}\n\treturn &val\n}\n\nfunc jsonPath(fields []string) string {\n\treturn \".\" + strings.Join(fields, \".\")\n}\n\nfunc extractOwnerReference(v map[string]interface{}) metav1.OwnerReference {\n\t// though this field is a *bool, but when decoded from JSON, it's\n\t// unmarshalled as bool.\n\tvar controllerPtr *bool\n\tif controller, found, err := NestedBool(v, \"controller\"); err == nil && found {\n\t\tcontrollerPtr = &controller\n\t}\n\tvar blockOwnerDeletionPtr *bool\n\tif blockOwnerDeletion, found, err := NestedBool(v, \"blockOwnerDeletion\"); err == nil && found {\n\t\tblockOwnerDeletionPtr = &blockOwnerDeletion\n\t}\n\treturn metav1.OwnerReference{\n\t\tKind:               getNestedString(v, \"kind\"),\n\t\tName:               getNestedString(v, \"name\"),\n\t\tAPIVersion:         getNestedString(v, \"apiVersion\"),\n\t\tUID:                types.UID(getNestedString(v, \"uid\")),\n\t\tController:         controllerPtr,\n\t\tBlockOwnerDeletion: blockOwnerDeletionPtr,\n\t}\n}\n\n// UnstructuredJSONScheme is capable of converting JSON data into the Unstructured\n// type, which can be used for generic access to objects without a predefined scheme.\n// TODO: move into serializer/json.\nvar UnstructuredJSONScheme runtime.Codec = unstructuredJSONScheme{}\n\ntype unstructuredJSONScheme struct{}\n\nconst unstructuredJSONSchemeIdentifier runtime.Identifier = \"unstructuredJSON\"\n\nfunc (s unstructuredJSONScheme) Decode(data []byte, _ *schema.GroupVersionKind, obj runtime.Object) (runtime.Object, *schema.GroupVersionKind, error) {\n\tvar err error\n\tif obj != nil {\n\t\terr = s.decodeInto(data, obj)\n\t} else {\n\t\tobj, err = s.decode(data)\n\t}\n\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\tgvk := obj.GetObjectKind().GroupVersionKind()\n\tif len(gvk.Kind) == 0 {\n\t\treturn nil, &gvk, runtime.NewMissingKindErr(string(data))\n\t}\n\t// TODO(109023): require apiVersion here as well\n\n\treturn obj, &gvk, nil\n}\n\nfunc (s unstructuredJSONScheme) Encode(obj runtime.Object, w io.Writer) error {\n\tif co, ok := obj.(runtime.CacheableObject); ok {\n\t\treturn co.CacheEncode(s.Identifier(), s.doEncode, w)\n\t}\n\treturn s.doEncode(obj, w)\n}\n\nfunc (unstructuredJSONScheme) doEncode(obj runtime.Object, w io.Writer) error {\n\tswitch t := obj.(type) {\n\tcase *Unstructured:\n\t\treturn json.NewEncoder(w).Encode(t.Object)\n\tcase *UnstructuredList:\n\t\titems := make([]interface{}, 0, len(t.Items))\n\t\tfor _, i := range t.Items {\n\t\t\titems = append(items, i.Object)\n\t\t}\n\t\tlistObj := make(map[string]interface{}, len(t.Object)+1)\n\t\tfor k, v := range t.Object { // Make a shallow copy\n\t\t\tlistObj[k] = v\n\t\t}\n\t\tlistObj[\"items\"] = items\n\t\treturn json.NewEncoder(w).Encode(listObj)\n\tcase *runtime.Unknown:\n\t\t// TODO: Unstructured needs to deal with ContentType.\n\t\t_, err := w.Write(t.Raw)\n\t\treturn err\n\tdefault:\n\t\treturn json.NewEncoder(w).Encode(t)\n\t}\n}\n\n// Identifier implements runtime.Encoder interface.\nfunc (unstructuredJSONScheme) Identifier() runtime.Identifier {\n\treturn unstructuredJSONSchemeIdentifier\n}\n\nfunc (s unstructuredJSONScheme) decode(data []byte) (runtime.Object, error) {\n\ttype detector struct {\n\t\tItems gojson.RawMessage `json:\"items\"`\n\t}\n\tvar det detector\n\tif err := json.Unmarshal(data, &det); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif det.Items != nil {\n\t\tlist := &UnstructuredList{}\n\t\terr := s.decodeToList(data, list)\n\t\treturn list, err\n\t}\n\n\t// No Items field, so it wasn't a list.\n\tunstruct := &Unstructured{}\n\terr := s.decodeToUnstructured(data, unstruct)\n\treturn unstruct, err\n}\n\nfunc (s unstructuredJSONScheme) decodeInto(data []byte, obj runtime.Object) error {\n\tswitch x := obj.(type) {\n\tcase *Unstructured:\n\t\treturn s.decodeToUnstructured(data, x)\n\tcase *UnstructuredList:\n\t\treturn s.decodeToList(data, x)\n\tdefault:\n\t\treturn json.Unmarshal(data, x)\n\t}\n}\n\nfunc (unstructuredJSONScheme) decodeToUnstructured(data []byte, unstruct *Unstructured) error {\n\tm := make(map[string]interface{})\n\tif err := json.Unmarshal(data, &m); err != nil {\n\t\treturn err\n\t}\n\n\tunstruct.Object = m\n\n\treturn nil\n}\n\nfunc (s unstructuredJSONScheme) decodeToList(data []byte, list *UnstructuredList) error {\n\ttype decodeList struct {\n\t\tItems []gojson.RawMessage `json:\"items\"`\n\t}\n\n\tvar dList decodeList\n\tif err := json.Unmarshal(data, &dList); err != nil {\n\t\treturn err\n\t}\n\n\tif err := json.Unmarshal(data, &list.Object); err != nil {\n\t\treturn err\n\t}\n\n\t// For typed lists, e.g., a PodList, API server doesn't set each item's\n\t// APIVersion and Kind. We need to set it.\n\tlistAPIVersion := list.GetAPIVersion()\n\tlistKind := list.GetKind()\n\titemKind := strings.TrimSuffix(listKind, \"List\")\n\n\tdelete(list.Object, \"items\")\n\tlist.Items = make([]Unstructured, 0, len(dList.Items))\n\tfor _, i := range dList.Items {\n\t\tunstruct := &Unstructured{}\n\t\tif err := s.decodeToUnstructured([]byte(i), unstruct); err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// This is hacky. Set the item's Kind and APIVersion to those inferred\n\t\t// from the List.\n\t\tif len(unstruct.GetKind()) == 0 && len(unstruct.GetAPIVersion()) == 0 {\n\t\t\tunstruct.SetKind(itemKind)\n\t\t\tunstruct.SetAPIVersion(listAPIVersion)\n\t\t}\n\t\tlist.Items = append(list.Items, *unstruct)\n\t}\n\treturn nil\n}\n\ntype jsonFallbackEncoder struct {\n\tencoder    runtime.Encoder\n\tidentifier runtime.Identifier\n}\n\nfunc NewJSONFallbackEncoder(encoder runtime.Encoder) runtime.Encoder {\n\tresult := map[string]string{\n\t\t\"name\": \"fallback\",\n\t\t\"base\": string(encoder.Identifier()),\n\t}\n\tidentifier, err := gojson.Marshal(result)\n\tif err != nil {\n\t\tklog.Fatalf(\"Failed marshaling identifier for jsonFallbackEncoder: %v\", err)\n\t}\n\treturn &jsonFallbackEncoder{\n\t\tencoder:    encoder,\n\t\tidentifier: runtime.Identifier(identifier),\n\t}\n}\n\nfunc (c *jsonFallbackEncoder) Encode(obj runtime.Object, w io.Writer) error {\n\t// There is no need to handle runtime.CacheableObject, as we only\n\t// fallback to other encoders here.\n\terr := c.encoder.Encode(obj, w)\n\tif runtime.IsNotRegisteredError(err) {\n\t\tswitch obj.(type) {\n\t\tcase *Unstructured, *UnstructuredList:\n\t\t\treturn UnstructuredJSONScheme.Encode(obj, w)\n\t\t}\n\t}\n\treturn err\n}\n\n// Identifier implements runtime.Encoder interface.\nfunc (c *jsonFallbackEncoder) Identifier() runtime.Identifier {\n\treturn c.identifier\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/unstructured.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage unstructured\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/types\"\n\tutilruntime \"k8s.io/apimachinery/pkg/util/runtime\"\n)\n\n// Unstructured allows objects that do not have Golang structs registered to be manipulated\n// generically. This can be used to deal with the API objects from a plug-in. Unstructured\n// objects still have functioning TypeMeta features-- kind, version, etc.\n//\n// WARNING: This object has accessors for the v1 standard metadata. You *MUST NOT* use this\n// type if you are dealing with objects that are not in the server meta v1 schema.\n//\n// TODO: make the serialization part of this type distinct from the field accessors.\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:deepcopy-gen=true\ntype Unstructured struct {\n\t// Object is a JSON compatible map with string, float, int, bool, []interface{}, or\n\t// map[string]interface{}\n\t// children.\n\tObject map[string]interface{}\n}\n\nvar _ metav1.Object = &Unstructured{}\nvar _ runtime.Unstructured = &Unstructured{}\nvar _ metav1.ListInterface = &Unstructured{}\n\nfunc (obj *Unstructured) GetObjectKind() schema.ObjectKind { return obj }\n\nfunc (obj *Unstructured) IsList() bool {\n\tfield, ok := obj.Object[\"items\"]\n\tif !ok {\n\t\treturn false\n\t}\n\t_, ok = field.([]interface{})\n\treturn ok\n}\nfunc (obj *Unstructured) ToList() (*UnstructuredList, error) {\n\tif !obj.IsList() {\n\t\t// return an empty list back\n\t\treturn &UnstructuredList{Object: obj.Object}, nil\n\t}\n\n\tret := &UnstructuredList{}\n\tret.Object = obj.Object\n\n\terr := obj.EachListItem(func(item runtime.Object) error {\n\t\tcastItem := item.(*Unstructured)\n\t\tret.Items = append(ret.Items, *castItem)\n\t\treturn nil\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn ret, nil\n}\n\nfunc (obj *Unstructured) EachListItem(fn func(runtime.Object) error) error {\n\tfield, ok := obj.Object[\"items\"]\n\tif !ok {\n\t\treturn errors.New(\"content is not a list\")\n\t}\n\titems, ok := field.([]interface{})\n\tif !ok {\n\t\treturn fmt.Errorf(\"content is not a list: %T\", field)\n\t}\n\tfor _, item := range items {\n\t\tchild, ok := item.(map[string]interface{})\n\t\tif !ok {\n\t\t\treturn fmt.Errorf(\"items member is not an object: %T\", child)\n\t\t}\n\t\tif err := fn(&Unstructured{Object: child}); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (obj *Unstructured) EachListItemWithAlloc(fn func(runtime.Object) error) error {\n\t// EachListItem has allocated a new Object for the user, we can use it directly.\n\treturn obj.EachListItem(fn)\n}\n\nfunc (obj *Unstructured) UnstructuredContent() map[string]interface{} {\n\tif obj.Object == nil {\n\t\treturn make(map[string]interface{})\n\t}\n\treturn obj.Object\n}\n\nfunc (obj *Unstructured) SetUnstructuredContent(content map[string]interface{}) {\n\tobj.Object = content\n}\n\n// MarshalJSON ensures that the unstructured object produces proper\n// JSON when passed to Go's standard JSON library.\nfunc (u *Unstructured) MarshalJSON() ([]byte, error) {\n\tvar buf bytes.Buffer\n\terr := UnstructuredJSONScheme.Encode(u, &buf)\n\treturn buf.Bytes(), err\n}\n\n// UnmarshalJSON ensures that the unstructured object properly decodes\n// JSON when passed to Go's standard JSON library.\nfunc (u *Unstructured) UnmarshalJSON(b []byte) error {\n\t_, _, err := UnstructuredJSONScheme.Decode(b, nil, u)\n\treturn err\n}\n\n// NewEmptyInstance returns a new instance of the concrete type containing only kind/apiVersion and no other data.\n// This should be called instead of reflect.New() for unstructured types because the go type alone does not preserve kind/apiVersion info.\nfunc (in *Unstructured) NewEmptyInstance() runtime.Unstructured {\n\tout := new(Unstructured)\n\tif in != nil {\n\t\tout.GetObjectKind().SetGroupVersionKind(in.GetObjectKind().GroupVersionKind())\n\t}\n\treturn out\n}\n\nfunc (in *Unstructured) DeepCopy() *Unstructured {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Unstructured)\n\t*out = *in\n\tout.Object = runtime.DeepCopyJSON(in.Object)\n\treturn out\n}\n\nfunc (u *Unstructured) setNestedField(value interface{}, fields ...string) {\n\tif u.Object == nil {\n\t\tu.Object = make(map[string]interface{})\n\t}\n\tSetNestedField(u.Object, value, fields...)\n}\n\nfunc (u *Unstructured) setNestedStringSlice(value []string, fields ...string) {\n\tif u.Object == nil {\n\t\tu.Object = make(map[string]interface{})\n\t}\n\tSetNestedStringSlice(u.Object, value, fields...)\n}\n\nfunc (u *Unstructured) setNestedSlice(value []interface{}, fields ...string) {\n\tif u.Object == nil {\n\t\tu.Object = make(map[string]interface{})\n\t}\n\tSetNestedSlice(u.Object, value, fields...)\n}\n\nfunc (u *Unstructured) setNestedMap(value map[string]string, fields ...string) {\n\tif u.Object == nil {\n\t\tu.Object = make(map[string]interface{})\n\t}\n\tSetNestedStringMap(u.Object, value, fields...)\n}\n\nfunc (u *Unstructured) GetOwnerReferences() []metav1.OwnerReference {\n\tfield, found, err := NestedFieldNoCopy(u.Object, \"metadata\", \"ownerReferences\")\n\tif !found || err != nil {\n\t\treturn nil\n\t}\n\toriginal, ok := field.([]interface{})\n\tif !ok {\n\t\treturn nil\n\t}\n\tret := make([]metav1.OwnerReference, 0, len(original))\n\tfor _, obj := range original {\n\t\to, ok := obj.(map[string]interface{})\n\t\tif !ok {\n\t\t\t// expected map[string]interface{}, got something else\n\t\t\treturn nil\n\t\t}\n\t\tret = append(ret, extractOwnerReference(o))\n\t}\n\treturn ret\n}\n\nfunc (u *Unstructured) SetOwnerReferences(references []metav1.OwnerReference) {\n\tif references == nil {\n\t\tRemoveNestedField(u.Object, \"metadata\", \"ownerReferences\")\n\t\treturn\n\t}\n\n\tnewReferences := make([]interface{}, 0, len(references))\n\tfor _, reference := range references {\n\t\tout, err := runtime.DefaultUnstructuredConverter.ToUnstructured(&reference)\n\t\tif err != nil {\n\t\t\tutilruntime.HandleError(fmt.Errorf(\"unable to convert Owner Reference: %v\", err))\n\t\t\tcontinue\n\t\t}\n\t\tnewReferences = append(newReferences, out)\n\t}\n\tu.setNestedField(newReferences, \"metadata\", \"ownerReferences\")\n}\n\nfunc (u *Unstructured) GetAPIVersion() string {\n\treturn getNestedString(u.Object, \"apiVersion\")\n}\n\nfunc (u *Unstructured) SetAPIVersion(version string) {\n\tu.setNestedField(version, \"apiVersion\")\n}\n\nfunc (u *Unstructured) GetKind() string {\n\treturn getNestedString(u.Object, \"kind\")\n}\n\nfunc (u *Unstructured) SetKind(kind string) {\n\tu.setNestedField(kind, \"kind\")\n}\n\nfunc (u *Unstructured) GetNamespace() string {\n\treturn getNestedString(u.Object, \"metadata\", \"namespace\")\n}\n\nfunc (u *Unstructured) SetNamespace(namespace string) {\n\tif len(namespace) == 0 {\n\t\tRemoveNestedField(u.Object, \"metadata\", \"namespace\")\n\t\treturn\n\t}\n\tu.setNestedField(namespace, \"metadata\", \"namespace\")\n}\n\nfunc (u *Unstructured) GetName() string {\n\treturn getNestedString(u.Object, \"metadata\", \"name\")\n}\n\nfunc (u *Unstructured) SetName(name string) {\n\tif len(name) == 0 {\n\t\tRemoveNestedField(u.Object, \"metadata\", \"name\")\n\t\treturn\n\t}\n\tu.setNestedField(name, \"metadata\", \"name\")\n}\n\nfunc (u *Unstructured) GetGenerateName() string {\n\treturn getNestedString(u.Object, \"metadata\", \"generateName\")\n}\n\nfunc (u *Unstructured) SetGenerateName(generateName string) {\n\tif len(generateName) == 0 {\n\t\tRemoveNestedField(u.Object, \"metadata\", \"generateName\")\n\t\treturn\n\t}\n\tu.setNestedField(generateName, \"metadata\", \"generateName\")\n}\n\nfunc (u *Unstructured) GetUID() types.UID {\n\treturn types.UID(getNestedString(u.Object, \"metadata\", \"uid\"))\n}\n\nfunc (u *Unstructured) SetUID(uid types.UID) {\n\tif len(string(uid)) == 0 {\n\t\tRemoveNestedField(u.Object, \"metadata\", \"uid\")\n\t\treturn\n\t}\n\tu.setNestedField(string(uid), \"metadata\", \"uid\")\n}\n\nfunc (u *Unstructured) GetResourceVersion() string {\n\treturn getNestedString(u.Object, \"metadata\", \"resourceVersion\")\n}\n\nfunc (u *Unstructured) SetResourceVersion(resourceVersion string) {\n\tif len(resourceVersion) == 0 {\n\t\tRemoveNestedField(u.Object, \"metadata\", \"resourceVersion\")\n\t\treturn\n\t}\n\tu.setNestedField(resourceVersion, \"metadata\", \"resourceVersion\")\n}\n\nfunc (u *Unstructured) GetGeneration() int64 {\n\tval, found, err := NestedInt64(u.Object, \"metadata\", \"generation\")\n\tif !found || err != nil {\n\t\treturn 0\n\t}\n\treturn val\n}\n\nfunc (u *Unstructured) SetGeneration(generation int64) {\n\tif generation == 0 {\n\t\tRemoveNestedField(u.Object, \"metadata\", \"generation\")\n\t\treturn\n\t}\n\tu.setNestedField(generation, \"metadata\", \"generation\")\n}\n\nfunc (u *Unstructured) GetSelfLink() string {\n\treturn getNestedString(u.Object, \"metadata\", \"selfLink\")\n}\n\nfunc (u *Unstructured) SetSelfLink(selfLink string) {\n\tif len(selfLink) == 0 {\n\t\tRemoveNestedField(u.Object, \"metadata\", \"selfLink\")\n\t\treturn\n\t}\n\tu.setNestedField(selfLink, \"metadata\", \"selfLink\")\n}\n\nfunc (u *Unstructured) GetContinue() string {\n\treturn getNestedString(u.Object, \"metadata\", \"continue\")\n}\n\nfunc (u *Unstructured) SetContinue(c string) {\n\tif len(c) == 0 {\n\t\tRemoveNestedField(u.Object, \"metadata\", \"continue\")\n\t\treturn\n\t}\n\tu.setNestedField(c, \"metadata\", \"continue\")\n}\n\nfunc (u *Unstructured) GetRemainingItemCount() *int64 {\n\treturn getNestedInt64Pointer(u.Object, \"metadata\", \"remainingItemCount\")\n}\n\nfunc (u *Unstructured) SetRemainingItemCount(c *int64) {\n\tif c == nil {\n\t\tRemoveNestedField(u.Object, \"metadata\", \"remainingItemCount\")\n\t} else {\n\t\tu.setNestedField(*c, \"metadata\", \"remainingItemCount\")\n\t}\n}\n\nfunc (u *Unstructured) GetCreationTimestamp() metav1.Time {\n\tvar timestamp metav1.Time\n\ttimestamp.UnmarshalQueryParameter(getNestedString(u.Object, \"metadata\", \"creationTimestamp\"))\n\treturn timestamp\n}\n\nfunc (u *Unstructured) SetCreationTimestamp(timestamp metav1.Time) {\n\tts, _ := timestamp.MarshalQueryParameter()\n\tif len(ts) == 0 || timestamp.Time.IsZero() {\n\t\tRemoveNestedField(u.Object, \"metadata\", \"creationTimestamp\")\n\t\treturn\n\t}\n\tu.setNestedField(ts, \"metadata\", \"creationTimestamp\")\n}\n\nfunc (u *Unstructured) GetDeletionTimestamp() *metav1.Time {\n\tvar timestamp metav1.Time\n\ttimestamp.UnmarshalQueryParameter(getNestedString(u.Object, \"metadata\", \"deletionTimestamp\"))\n\tif timestamp.IsZero() {\n\t\treturn nil\n\t}\n\treturn &timestamp\n}\n\nfunc (u *Unstructured) SetDeletionTimestamp(timestamp *metav1.Time) {\n\tif timestamp == nil {\n\t\tRemoveNestedField(u.Object, \"metadata\", \"deletionTimestamp\")\n\t\treturn\n\t}\n\tts, _ := timestamp.MarshalQueryParameter()\n\tu.setNestedField(ts, \"metadata\", \"deletionTimestamp\")\n}\n\nfunc (u *Unstructured) GetDeletionGracePeriodSeconds() *int64 {\n\tval, found, err := NestedInt64(u.Object, \"metadata\", \"deletionGracePeriodSeconds\")\n\tif !found || err != nil {\n\t\treturn nil\n\t}\n\treturn &val\n}\n\nfunc (u *Unstructured) SetDeletionGracePeriodSeconds(deletionGracePeriodSeconds *int64) {\n\tif deletionGracePeriodSeconds == nil {\n\t\tRemoveNestedField(u.Object, \"metadata\", \"deletionGracePeriodSeconds\")\n\t\treturn\n\t}\n\tu.setNestedField(*deletionGracePeriodSeconds, \"metadata\", \"deletionGracePeriodSeconds\")\n}\n\nfunc (u *Unstructured) GetLabels() map[string]string {\n\tm, _, _ := NestedStringMap(u.Object, \"metadata\", \"labels\")\n\treturn m\n}\n\nfunc (u *Unstructured) SetLabels(labels map[string]string) {\n\tif labels == nil {\n\t\tRemoveNestedField(u.Object, \"metadata\", \"labels\")\n\t\treturn\n\t}\n\tu.setNestedMap(labels, \"metadata\", \"labels\")\n}\n\nfunc (u *Unstructured) GetAnnotations() map[string]string {\n\tm, _, _ := NestedStringMap(u.Object, \"metadata\", \"annotations\")\n\treturn m\n}\n\nfunc (u *Unstructured) SetAnnotations(annotations map[string]string) {\n\tif annotations == nil {\n\t\tRemoveNestedField(u.Object, \"metadata\", \"annotations\")\n\t\treturn\n\t}\n\tu.setNestedMap(annotations, \"metadata\", \"annotations\")\n}\n\nfunc (u *Unstructured) SetGroupVersionKind(gvk schema.GroupVersionKind) {\n\tu.SetAPIVersion(gvk.GroupVersion().String())\n\tu.SetKind(gvk.Kind)\n}\n\nfunc (u *Unstructured) GroupVersionKind() schema.GroupVersionKind {\n\tgv, err := schema.ParseGroupVersion(u.GetAPIVersion())\n\tif err != nil {\n\t\treturn schema.GroupVersionKind{}\n\t}\n\tgvk := gv.WithKind(u.GetKind())\n\treturn gvk\n}\n\nfunc (u *Unstructured) GetFinalizers() []string {\n\tval, _, _ := NestedStringSlice(u.Object, \"metadata\", \"finalizers\")\n\treturn val\n}\n\nfunc (u *Unstructured) SetFinalizers(finalizers []string) {\n\tif finalizers == nil {\n\t\tRemoveNestedField(u.Object, \"metadata\", \"finalizers\")\n\t\treturn\n\t}\n\tu.setNestedStringSlice(finalizers, \"metadata\", \"finalizers\")\n}\n\nfunc (u *Unstructured) GetManagedFields() []metav1.ManagedFieldsEntry {\n\tv, found, err := NestedFieldNoCopy(u.Object, \"metadata\", \"managedFields\")\n\tif !found || err != nil {\n\t\treturn nil\n\t}\n\titems, ok := v.([]interface{})\n\tif !ok {\n\t\treturn nil\n\t}\n\tmanagedFields := []metav1.ManagedFieldsEntry{}\n\tfor _, item := range items {\n\t\tm, ok := item.(map[string]interface{})\n\t\tif !ok {\n\t\t\tutilruntime.HandleError(fmt.Errorf(\"unable to retrieve managedFields for object, item %v is not a map\", item))\n\t\t\treturn nil\n\t\t}\n\t\tout := metav1.ManagedFieldsEntry{}\n\t\tif err := runtime.DefaultUnstructuredConverter.FromUnstructured(m, &out); err != nil {\n\t\t\tutilruntime.HandleError(fmt.Errorf(\"unable to retrieve managedFields for object: %v\", err))\n\t\t\treturn nil\n\t\t}\n\t\tmanagedFields = append(managedFields, out)\n\t}\n\treturn managedFields\n}\n\nfunc (u *Unstructured) SetManagedFields(managedFields []metav1.ManagedFieldsEntry) {\n\tif managedFields == nil {\n\t\tRemoveNestedField(u.Object, \"metadata\", \"managedFields\")\n\t\treturn\n\t}\n\titems := []interface{}{}\n\tfor _, managedFieldsEntry := range managedFields {\n\t\tout, err := runtime.DefaultUnstructuredConverter.ToUnstructured(&managedFieldsEntry)\n\t\tif err != nil {\n\t\t\tutilruntime.HandleError(fmt.Errorf(\"unable to set managedFields for object: %v\", err))\n\t\t\treturn\n\t\t}\n\t\titems = append(items, out)\n\t}\n\tu.setNestedSlice(items, \"metadata\", \"managedFields\")\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/unstructured_list.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage unstructured\n\nimport (\n\t\"bytes\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\nvar _ runtime.Unstructured = &UnstructuredList{}\nvar _ metav1.ListInterface = &UnstructuredList{}\n\n// UnstructuredList allows lists that do not have Golang structs\n// registered to be manipulated generically. This can be used to deal\n// with the API lists from a plug-in.\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +k8s:deepcopy-gen=true\ntype UnstructuredList struct {\n\tObject map[string]interface{}\n\n\t// Items is a list of unstructured objects.\n\tItems []Unstructured `json:\"items\"`\n}\n\nfunc (u *UnstructuredList) GetObjectKind() schema.ObjectKind { return u }\n\nfunc (u *UnstructuredList) IsList() bool { return true }\n\nfunc (u *UnstructuredList) EachListItem(fn func(runtime.Object) error) error {\n\tfor i := range u.Items {\n\t\tif err := fn(&u.Items[i]); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (u *UnstructuredList) EachListItemWithAlloc(fn func(runtime.Object) error) error {\n\tfor i := range u.Items {\n\t\tif err := fn(&Unstructured{Object: u.Items[i].Object}); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// NewEmptyInstance returns a new instance of the concrete type containing only kind/apiVersion and no other data.\n// This should be called instead of reflect.New() for unstructured types because the go type alone does not preserve kind/apiVersion info.\nfunc (u *UnstructuredList) NewEmptyInstance() runtime.Unstructured {\n\tout := new(UnstructuredList)\n\tif u != nil {\n\t\tout.SetGroupVersionKind(u.GroupVersionKind())\n\t}\n\treturn out\n}\n\n// UnstructuredContent returns a map contain an overlay of the Items field onto\n// the Object field. Items always overwrites overlay.\nfunc (u *UnstructuredList) UnstructuredContent() map[string]interface{} {\n\tout := make(map[string]interface{}, len(u.Object)+1)\n\n\t// shallow copy every property\n\tfor k, v := range u.Object {\n\t\tout[k] = v\n\t}\n\n\titems := make([]interface{}, len(u.Items))\n\tfor i, item := range u.Items {\n\t\titems[i] = item.UnstructuredContent()\n\t}\n\tout[\"items\"] = items\n\treturn out\n}\n\n// SetUnstructuredContent obeys the conventions of List and keeps Items and the items\n// array in sync. If items is not an array of objects in the incoming map, then any\n// mismatched item will be removed.\nfunc (obj *UnstructuredList) SetUnstructuredContent(content map[string]interface{}) {\n\tobj.Object = content\n\tif content == nil {\n\t\tobj.Items = nil\n\t\treturn\n\t}\n\titems, ok := obj.Object[\"items\"].([]interface{})\n\tif !ok || items == nil {\n\t\titems = []interface{}{}\n\t}\n\tunstructuredItems := make([]Unstructured, 0, len(items))\n\tnewItems := make([]interface{}, 0, len(items))\n\tfor _, item := range items {\n\t\to, ok := item.(map[string]interface{})\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tunstructuredItems = append(unstructuredItems, Unstructured{Object: o})\n\t\tnewItems = append(newItems, o)\n\t}\n\tobj.Items = unstructuredItems\n\tobj.Object[\"items\"] = newItems\n}\n\nfunc (u *UnstructuredList) DeepCopy() *UnstructuredList {\n\tif u == nil {\n\t\treturn nil\n\t}\n\tout := new(UnstructuredList)\n\t*out = *u\n\tout.Object = runtime.DeepCopyJSON(u.Object)\n\tout.Items = make([]Unstructured, len(u.Items))\n\tfor i := range u.Items {\n\t\tu.Items[i].DeepCopyInto(&out.Items[i])\n\t}\n\treturn out\n}\n\n// MarshalJSON ensures that the unstructured list object produces proper\n// JSON when passed to Go's standard JSON library.\nfunc (u *UnstructuredList) MarshalJSON() ([]byte, error) {\n\tvar buf bytes.Buffer\n\terr := UnstructuredJSONScheme.Encode(u, &buf)\n\treturn buf.Bytes(), err\n}\n\n// UnmarshalJSON ensures that the unstructured list object properly\n// decodes JSON when passed to Go's standard JSON library.\nfunc (u *UnstructuredList) UnmarshalJSON(b []byte) error {\n\t_, _, err := UnstructuredJSONScheme.Decode(b, nil, u)\n\treturn err\n}\n\nfunc (u *UnstructuredList) GetAPIVersion() string {\n\treturn getNestedString(u.Object, \"apiVersion\")\n}\n\nfunc (u *UnstructuredList) SetAPIVersion(version string) {\n\tu.setNestedField(version, \"apiVersion\")\n}\n\nfunc (u *UnstructuredList) GetKind() string {\n\treturn getNestedString(u.Object, \"kind\")\n}\n\nfunc (u *UnstructuredList) SetKind(kind string) {\n\tu.setNestedField(kind, \"kind\")\n}\n\nfunc (u *UnstructuredList) GetResourceVersion() string {\n\treturn getNestedString(u.Object, \"metadata\", \"resourceVersion\")\n}\n\nfunc (u *UnstructuredList) SetResourceVersion(version string) {\n\tu.setNestedField(version, \"metadata\", \"resourceVersion\")\n}\n\nfunc (u *UnstructuredList) GetSelfLink() string {\n\treturn getNestedString(u.Object, \"metadata\", \"selfLink\")\n}\n\nfunc (u *UnstructuredList) SetSelfLink(selfLink string) {\n\tu.setNestedField(selfLink, \"metadata\", \"selfLink\")\n}\n\nfunc (u *UnstructuredList) GetContinue() string {\n\treturn getNestedString(u.Object, \"metadata\", \"continue\")\n}\n\nfunc (u *UnstructuredList) SetContinue(c string) {\n\tu.setNestedField(c, \"metadata\", \"continue\")\n}\n\nfunc (u *UnstructuredList) GetRemainingItemCount() *int64 {\n\treturn getNestedInt64Pointer(u.Object, \"metadata\", \"remainingItemCount\")\n}\n\nfunc (u *UnstructuredList) SetRemainingItemCount(c *int64) {\n\tif c == nil {\n\t\tRemoveNestedField(u.Object, \"metadata\", \"remainingItemCount\")\n\t} else {\n\t\tu.setNestedField(*c, \"metadata\", \"remainingItemCount\")\n\t}\n}\n\nfunc (u *UnstructuredList) SetGroupVersionKind(gvk schema.GroupVersionKind) {\n\tu.SetAPIVersion(gvk.GroupVersion().String())\n\tu.SetKind(gvk.Kind)\n}\n\nfunc (u *UnstructuredList) GroupVersionKind() schema.GroupVersionKind {\n\tgv, err := schema.ParseGroupVersion(u.GetAPIVersion())\n\tif err != nil {\n\t\treturn schema.GroupVersionKind{}\n\t}\n\tgvk := gv.WithKind(u.GetKind())\n\treturn gvk\n}\n\nfunc (u *UnstructuredList) setNestedField(value interface{}, fields ...string) {\n\tif u.Object == nil {\n\t\tu.Object = make(map[string]interface{})\n\t}\n\tSetNestedField(u.Object, value, fields...)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage unstructured\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Unstructured) DeepCopyInto(out *Unstructured) {\n\tclone := in.DeepCopy()\n\t*out = *clone\n\treturn\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Unstructured) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *UnstructuredList) DeepCopyInto(out *UnstructuredList) {\n\tclone := in.DeepCopy()\n\t*out = *clone\n\treturn\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *UnstructuredList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/validation/validation.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage validation\n\nimport (\n\t\"fmt\"\n\t\"regexp\"\n\t\"unicode\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/types\"\n\t\"k8s.io/apimachinery/pkg/util/sets\"\n\t\"k8s.io/apimachinery/pkg/util/validation\"\n\t\"k8s.io/apimachinery/pkg/util/validation/field\"\n\n\t\"k8s.io/utils/ptr\"\n)\n\n// LabelSelectorValidationOptions is a struct that can be passed to ValidateLabelSelector to record the validate options\ntype LabelSelectorValidationOptions struct {\n\t// Allow invalid label value in selector\n\tAllowInvalidLabelValueInSelector bool\n\n\t// Allows an operator that is not interpretable to pass validation.  This is useful for cases where a broader check\n\t// can be performed, as in a *SubjectAccessReview\n\tAllowUnknownOperatorInRequirement bool\n}\n\n// LabelSelectorHasInvalidLabelValue returns true if the given selector contains an invalid label value in a match expression.\n// This is useful for determining whether AllowInvalidLabelValueInSelector should be set to true when validating an update\n// based on existing persisted invalid values.\nfunc LabelSelectorHasInvalidLabelValue(ps *metav1.LabelSelector) bool {\n\tif ps == nil {\n\t\treturn false\n\t}\n\tfor _, e := range ps.MatchExpressions {\n\t\tfor _, v := range e.Values {\n\t\t\tif len(validation.IsValidLabelValue(v)) > 0 {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t}\n\treturn false\n}\n\n// ValidateLabelSelector validate the LabelSelector according to the opts and returns any validation errors.\n// opts.AllowInvalidLabelValueInSelector is only expected to be set to true when required for backwards compatibility with existing invalid data.\nfunc ValidateLabelSelector(ps *metav1.LabelSelector, opts LabelSelectorValidationOptions, fldPath *field.Path) field.ErrorList {\n\tallErrs := field.ErrorList{}\n\tif ps == nil {\n\t\treturn allErrs\n\t}\n\tallErrs = append(allErrs, ValidateLabels(ps.MatchLabels, fldPath.Child(\"matchLabels\"))...)\n\tfor i, expr := range ps.MatchExpressions {\n\t\tallErrs = append(allErrs, ValidateLabelSelectorRequirement(expr, opts, fldPath.Child(\"matchExpressions\").Index(i))...)\n\t}\n\treturn allErrs\n}\n\n// ValidateLabelSelectorRequirement validate the requirement according to the opts and returns any validation errors.\n// opts.AllowInvalidLabelValueInSelector is only expected to be set to true when required for backwards compatibility with existing invalid data.\nfunc ValidateLabelSelectorRequirement(sr metav1.LabelSelectorRequirement, opts LabelSelectorValidationOptions, fldPath *field.Path) field.ErrorList {\n\tallErrs := field.ErrorList{}\n\tswitch sr.Operator {\n\tcase metav1.LabelSelectorOpIn, metav1.LabelSelectorOpNotIn:\n\t\tif len(sr.Values) == 0 {\n\t\t\tallErrs = append(allErrs, field.Required(fldPath.Child(\"values\"), \"must be specified when `operator` is 'In' or 'NotIn'\"))\n\t\t}\n\tcase metav1.LabelSelectorOpExists, metav1.LabelSelectorOpDoesNotExist:\n\t\tif len(sr.Values) > 0 {\n\t\t\tallErrs = append(allErrs, field.Forbidden(fldPath.Child(\"values\"), \"may not be specified when `operator` is 'Exists' or 'DoesNotExist'\"))\n\t\t}\n\tdefault:\n\t\tif !opts.AllowUnknownOperatorInRequirement {\n\t\t\tallErrs = append(allErrs, field.Invalid(fldPath.Child(\"operator\"), sr.Operator, \"not a valid selector operator\"))\n\t\t}\n\t}\n\tallErrs = append(allErrs, ValidateLabelName(sr.Key, fldPath.Child(\"key\"))...)\n\tif !opts.AllowInvalidLabelValueInSelector {\n\t\tfor valueIndex, value := range sr.Values {\n\t\t\tfor _, msg := range validation.IsValidLabelValue(value) {\n\t\t\t\tallErrs = append(allErrs, field.Invalid(fldPath.Child(\"values\").Index(valueIndex), value, msg))\n\t\t\t}\n\t\t}\n\t}\n\treturn allErrs\n}\n\n// ValidateLabelName validates that the label name is correctly defined.\nfunc ValidateLabelName(labelName string, fldPath *field.Path) field.ErrorList {\n\tallErrs := field.ErrorList{}\n\tfor _, msg := range validation.IsQualifiedName(labelName) {\n\t\tallErrs = append(allErrs, field.Invalid(fldPath, labelName, msg))\n\t}\n\treturn allErrs\n}\n\n// ValidateLabels validates that a set of labels are correctly defined.\nfunc ValidateLabels(labels map[string]string, fldPath *field.Path) field.ErrorList {\n\tallErrs := field.ErrorList{}\n\tfor k, v := range labels {\n\t\tallErrs = append(allErrs, ValidateLabelName(k, fldPath)...)\n\t\tfor _, msg := range validation.IsValidLabelValue(v) {\n\t\t\tallErrs = append(allErrs, field.Invalid(fldPath, v, msg))\n\t\t}\n\t}\n\treturn allErrs\n}\n\n// FieldSelectorValidationOptions is a struct that can be passed to ValidateFieldSelectorRequirement to record the validate options\ntype FieldSelectorValidationOptions struct {\n\t// Allows an operator that is not interpretable to pass validation.  This is useful for cases where a broader check\n\t// can be performed, as in a *SubjectAccessReview\n\tAllowUnknownOperatorInRequirement bool\n}\n\n// ValidateLabelSelectorRequirement validates the requirement according to the opts and returns any validation errors.\nfunc ValidateFieldSelectorRequirement(requirement metav1.FieldSelectorRequirement, opts FieldSelectorValidationOptions, fldPath *field.Path) field.ErrorList {\n\tallErrs := field.ErrorList{}\n\n\tif len(requirement.Key) == 0 {\n\t\tallErrs = append(allErrs, field.Required(fldPath.Child(\"key\"), \"must be specified\"))\n\t}\n\n\tswitch requirement.Operator {\n\tcase metav1.FieldSelectorOpIn, metav1.FieldSelectorOpNotIn:\n\t\tif len(requirement.Values) == 0 {\n\t\t\tallErrs = append(allErrs, field.Required(fldPath.Child(\"values\"), \"must be specified when `operator` is 'In' or 'NotIn'\"))\n\t\t}\n\tcase metav1.FieldSelectorOpExists, metav1.FieldSelectorOpDoesNotExist:\n\t\tif len(requirement.Values) > 0 {\n\t\t\tallErrs = append(allErrs, field.Forbidden(fldPath.Child(\"values\"), \"may not be specified when `operator` is 'Exists' or 'DoesNotExist'\"))\n\t\t}\n\tdefault:\n\t\tif !opts.AllowUnknownOperatorInRequirement {\n\t\t\tallErrs = append(allErrs, field.Invalid(fldPath.Child(\"operator\"), requirement.Operator, \"not a valid selector operator\"))\n\t\t}\n\t}\n\n\treturn allErrs\n}\n\nfunc ValidateDeleteOptions(options *metav1.DeleteOptions) field.ErrorList {\n\tallErrs := field.ErrorList{}\n\t//lint:file-ignore SA1019 Keep validation for deprecated OrphanDependents option until it's being removed\n\tif options.OrphanDependents != nil && options.PropagationPolicy != nil {\n\t\tallErrs = append(allErrs, field.Invalid(field.NewPath(\"propagationPolicy\"), options.PropagationPolicy, \"orphanDependents and deletionPropagation cannot be both set\"))\n\t}\n\tif options.PropagationPolicy != nil &&\n\t\t*options.PropagationPolicy != metav1.DeletePropagationForeground &&\n\t\t*options.PropagationPolicy != metav1.DeletePropagationBackground &&\n\t\t*options.PropagationPolicy != metav1.DeletePropagationOrphan {\n\t\tallErrs = append(allErrs, field.NotSupported(field.NewPath(\"propagationPolicy\"), options.PropagationPolicy, []string{string(metav1.DeletePropagationForeground), string(metav1.DeletePropagationBackground), string(metav1.DeletePropagationOrphan), \"nil\"}))\n\t}\n\tallErrs = append(allErrs, ValidateDryRun(field.NewPath(\"dryRun\"), options.DryRun)...)\n\tallErrs = append(allErrs, ValidateIgnoreStoreReadError(field.NewPath(\"ignoreStoreReadErrorWithClusterBreakingPotential\"), options)...)\n\treturn allErrs\n}\n\nfunc ValidateCreateOptions(options *metav1.CreateOptions) field.ErrorList {\n\tallErrs := field.ErrorList{}\n\tallErrs = append(allErrs, ValidateFieldManager(options.FieldManager, field.NewPath(\"fieldManager\"))...)\n\tallErrs = append(allErrs, ValidateDryRun(field.NewPath(\"dryRun\"), options.DryRun)...)\n\tallErrs = append(allErrs, ValidateFieldValidation(field.NewPath(\"fieldValidation\"), options.FieldValidation)...)\n\treturn allErrs\n}\n\nfunc ValidateUpdateOptions(options *metav1.UpdateOptions) field.ErrorList {\n\tallErrs := field.ErrorList{}\n\tallErrs = append(allErrs, ValidateFieldManager(options.FieldManager, field.NewPath(\"fieldManager\"))...)\n\tallErrs = append(allErrs, ValidateDryRun(field.NewPath(\"dryRun\"), options.DryRun)...)\n\tallErrs = append(allErrs, ValidateFieldValidation(field.NewPath(\"fieldValidation\"), options.FieldValidation)...)\n\treturn allErrs\n}\n\nfunc ValidatePatchOptions(options *metav1.PatchOptions, patchType types.PatchType) field.ErrorList {\n\tallErrs := field.ErrorList{}\n\tswitch patchType {\n\tcase types.ApplyYAMLPatchType, types.ApplyCBORPatchType:\n\t\tif options.FieldManager == \"\" {\n\t\t\t// This field is defaulted to \"kubectl\" by kubectl, but HAS TO be explicitly set by controllers.\n\t\t\tallErrs = append(allErrs, field.Required(field.NewPath(\"fieldManager\"), \"is required for apply patch\"))\n\t\t}\n\tdefault:\n\t\tif options.Force != nil {\n\t\t\tallErrs = append(allErrs, field.Forbidden(field.NewPath(\"force\"), \"may not be specified for non-apply patch\"))\n\t\t}\n\t}\n\tallErrs = append(allErrs, ValidateFieldManager(options.FieldManager, field.NewPath(\"fieldManager\"))...)\n\tallErrs = append(allErrs, ValidateDryRun(field.NewPath(\"dryRun\"), options.DryRun)...)\n\tallErrs = append(allErrs, ValidateFieldValidation(field.NewPath(\"fieldValidation\"), options.FieldValidation)...)\n\treturn allErrs\n}\n\nvar FieldManagerMaxLength = 128\n\n// ValidateFieldManager valides that the fieldManager is the proper length and\n// only has printable characters.\nfunc ValidateFieldManager(fieldManager string, fldPath *field.Path) field.ErrorList {\n\tallErrs := field.ErrorList{}\n\t// the field can not be set as a `*string`, so a empty string (\"\") is\n\t// considered as not set and is defaulted by the rest of the process\n\t// (unless apply is used, in which case it is required).\n\tif len(fieldManager) > FieldManagerMaxLength {\n\t\tallErrs = append(allErrs, field.TooLong(fldPath, \"\" /*unused*/, FieldManagerMaxLength))\n\t}\n\t// Verify that all characters are printable.\n\tfor i, r := range fieldManager {\n\t\tif !unicode.IsPrint(r) {\n\t\t\tallErrs = append(allErrs, field.Invalid(fldPath, fieldManager, fmt.Sprintf(\"invalid character %#U (at position %d)\", r, i)))\n\t\t}\n\t}\n\n\treturn allErrs\n}\n\nvar allowedDryRunValues = sets.NewString(metav1.DryRunAll)\n\n// ValidateDryRun validates that a dryRun query param only contains allowed values.\nfunc ValidateDryRun(fldPath *field.Path, dryRun []string) field.ErrorList {\n\tallErrs := field.ErrorList{}\n\tif !allowedDryRunValues.HasAll(dryRun...) {\n\t\tallErrs = append(allErrs, field.NotSupported(fldPath, dryRun, allowedDryRunValues.List()))\n\t}\n\treturn allErrs\n}\n\nvar allowedFieldValidationValues = sets.NewString(\"\", metav1.FieldValidationIgnore, metav1.FieldValidationWarn, metav1.FieldValidationStrict)\n\n// ValidateFieldValidation validates that a fieldValidation query param only contains allowed values.\nfunc ValidateFieldValidation(fldPath *field.Path, fieldValidation string) field.ErrorList {\n\tallErrs := field.ErrorList{}\n\tif !allowedFieldValidationValues.Has(fieldValidation) {\n\t\tallErrs = append(allErrs, field.NotSupported(fldPath, fieldValidation, allowedFieldValidationValues.List()))\n\t}\n\treturn allErrs\n\n}\n\nconst UninitializedStatusUpdateErrorMsg string = `must not update status when the object is uninitialized`\n\n// ValidateTableOptions returns any invalid flags on TableOptions.\nfunc ValidateTableOptions(opts *metav1.TableOptions) field.ErrorList {\n\tvar allErrs field.ErrorList\n\tswitch opts.IncludeObject {\n\tcase metav1.IncludeMetadata, metav1.IncludeNone, metav1.IncludeObject, \"\":\n\tdefault:\n\t\tallErrs = append(allErrs, field.Invalid(field.NewPath(\"includeObject\"), opts.IncludeObject, \"must be 'Metadata', 'Object', 'None', or empty\"))\n\t}\n\treturn allErrs\n}\n\nconst MaxSubresourceNameLength = 256\n\nfunc ValidateManagedFields(fieldsList []metav1.ManagedFieldsEntry, fldPath *field.Path) field.ErrorList {\n\tvar allErrs field.ErrorList\n\tfor i, fields := range fieldsList {\n\t\tfldPath := fldPath.Index(i)\n\t\tswitch fields.Operation {\n\t\tcase metav1.ManagedFieldsOperationApply, metav1.ManagedFieldsOperationUpdate:\n\t\tdefault:\n\t\t\tallErrs = append(allErrs, field.Invalid(fldPath.Child(\"operation\"), fields.Operation, \"must be `Apply` or `Update`\"))\n\t\t}\n\t\tif len(fields.FieldsType) > 0 && fields.FieldsType != \"FieldsV1\" {\n\t\t\tallErrs = append(allErrs, field.Invalid(fldPath.Child(\"fieldsType\"), fields.FieldsType, \"must be `FieldsV1`\"))\n\t\t}\n\t\tallErrs = append(allErrs, ValidateFieldManager(fields.Manager, fldPath.Child(\"manager\"))...)\n\n\t\tif len(fields.Subresource) > MaxSubresourceNameLength {\n\t\t\tallErrs = append(allErrs, field.TooLong(fldPath.Child(\"subresource\"), \"\" /*unused*/, MaxSubresourceNameLength))\n\t\t}\n\t}\n\treturn allErrs\n}\n\nfunc ValidateConditions(conditions []metav1.Condition, fldPath *field.Path) field.ErrorList {\n\tvar allErrs field.ErrorList\n\n\tconditionTypeToFirstIndex := map[string]int{}\n\tfor i, condition := range conditions {\n\t\tif _, ok := conditionTypeToFirstIndex[condition.Type]; ok {\n\t\t\tallErrs = append(allErrs, field.Duplicate(fldPath.Index(i).Child(\"type\"), condition.Type))\n\t\t} else {\n\t\t\tconditionTypeToFirstIndex[condition.Type] = i\n\t\t}\n\n\t\tallErrs = append(allErrs, ValidateCondition(condition, fldPath.Index(i))...)\n\t}\n\n\treturn allErrs\n}\n\n// validConditionStatuses is used internally to check validity and provide a good message\nvar validConditionStatuses = sets.NewString(string(metav1.ConditionTrue), string(metav1.ConditionFalse), string(metav1.ConditionUnknown))\n\nconst (\n\tmaxReasonLen  = 1 * 1024\n\tmaxMessageLen = 32 * 1024\n)\n\nfunc ValidateCondition(condition metav1.Condition, fldPath *field.Path) field.ErrorList {\n\tvar allErrs field.ErrorList\n\n\t// type is set and is a valid format\n\tallErrs = append(allErrs, ValidateLabelName(condition.Type, fldPath.Child(\"type\"))...)\n\n\t// status is set and is an accepted value\n\tif !validConditionStatuses.Has(string(condition.Status)) {\n\t\tallErrs = append(allErrs, field.NotSupported(fldPath.Child(\"status\"), condition.Status, validConditionStatuses.List()))\n\t}\n\n\tif condition.ObservedGeneration < 0 {\n\t\tallErrs = append(allErrs, field.Invalid(fldPath.Child(\"observedGeneration\"), condition.ObservedGeneration, \"must be greater than or equal to zero\"))\n\t}\n\n\tif condition.LastTransitionTime.IsZero() {\n\t\tallErrs = append(allErrs, field.Required(fldPath.Child(\"lastTransitionTime\"), \"must be set\"))\n\t}\n\n\tif len(condition.Reason) == 0 {\n\t\tallErrs = append(allErrs, field.Required(fldPath.Child(\"reason\"), \"must be set\"))\n\t} else {\n\t\tfor _, currErr := range isValidConditionReason(condition.Reason) {\n\t\t\tallErrs = append(allErrs, field.Invalid(fldPath.Child(\"reason\"), condition.Reason, currErr))\n\t\t}\n\t\tif len(condition.Reason) > maxReasonLen {\n\t\t\tallErrs = append(allErrs, field.TooLong(fldPath.Child(\"reason\"), \"\" /*unused*/, maxReasonLen))\n\t\t}\n\t}\n\n\tif len(condition.Message) > maxMessageLen {\n\t\tallErrs = append(allErrs, field.TooLong(fldPath.Child(\"message\"), \"\" /*unused*/, maxMessageLen))\n\t}\n\n\treturn allErrs\n}\n\nconst conditionReasonFmt string = \"[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?\"\nconst conditionReasonErrMsg string = \"a condition reason must start with alphabetic character, optionally followed by a string of alphanumeric characters or '_,:', and must end with an alphanumeric character or '_'\"\n\nvar conditionReasonRegexp = regexp.MustCompile(\"^\" + conditionReasonFmt + \"$\")\n\n// isValidConditionReason tests for a string that conforms to rules for condition reasons. This checks the format, but not the length.\nfunc isValidConditionReason(value string) []string {\n\tif !conditionReasonRegexp.MatchString(value) {\n\t\treturn []string{validation.RegexError(conditionReasonErrMsg, conditionReasonFmt, \"my_name\", \"MY_NAME\", \"MyName\", \"ReasonA,ReasonB\", \"ReasonA:ReasonB\")}\n\t}\n\treturn nil\n}\n\n// ValidateIgnoreStoreReadError validates that delete options are valid when\n// ignoreStoreReadErrorWithClusterBreakingPotential is enabled\nfunc ValidateIgnoreStoreReadError(fldPath *field.Path, options *metav1.DeleteOptions) field.ErrorList {\n\tallErrs := field.ErrorList{}\n\tif enabled := ptr.Deref[bool](options.IgnoreStoreReadErrorWithClusterBreakingPotential, false); !enabled {\n\t\treturn allErrs\n\t}\n\n\tif len(options.DryRun) > 0 {\n\t\tallErrs = append(allErrs, field.Invalid(fldPath, true, \"cannot be set together with .dryRun\"))\n\t}\n\tif options.PropagationPolicy != nil {\n\t\tallErrs = append(allErrs, field.Invalid(fldPath, true, \"cannot be set together with .propagationPolicy\"))\n\t}\n\t//nolint:staticcheck // Keep validation for deprecated OrphanDependents option until it's being removed\n\tif options.OrphanDependents != nil {\n\t\tallErrs = append(allErrs, field.Invalid(fldPath, true, \"cannot be set together with .orphanDependents\"))\n\t}\n\tif options.GracePeriodSeconds != nil {\n\t\tallErrs = append(allErrs, field.Invalid(fldPath, true, \"cannot be set together with .gracePeriodSeconds\"))\n\t}\n\tif options.Preconditions != nil {\n\t\tallErrs = append(allErrs, field.Invalid(fldPath, true, \"cannot be set together with .preconditions\"))\n\t}\n\n\treturn allErrs\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/watch.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"k8s.io/apimachinery/pkg/conversion\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/watch\"\n)\n\n// Event represents a single event to a watched resource.\n//\n// +protobuf=true\n// +k8s:deepcopy-gen=true\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\ntype WatchEvent struct {\n\tType string `json:\"type\" protobuf:\"bytes,1,opt,name=type\"`\n\n\t// Object is:\n\t//  * If Type is Added or Modified: the new state of the object.\n\t//  * If Type is Deleted: the state of the object immediately before deletion.\n\t//  * If Type is Error: *Status is recommended; other types may make sense\n\t//    depending on context.\n\tObject runtime.RawExtension `json:\"object\" protobuf:\"bytes,2,opt,name=object\"`\n}\n\nfunc Convert_watch_Event_To_v1_WatchEvent(in *watch.Event, out *WatchEvent, s conversion.Scope) error {\n\tout.Type = string(in.Type)\n\tswitch t := in.Object.(type) {\n\tcase *runtime.Unknown:\n\t\t// TODO: handle other fields on Unknown and detect type\n\t\tout.Object.Raw = t.Raw\n\tcase nil:\n\tdefault:\n\t\tout.Object.Object = in.Object\n\t}\n\treturn nil\n}\n\nfunc Convert_v1_InternalEvent_To_v1_WatchEvent(in *InternalEvent, out *WatchEvent, s conversion.Scope) error {\n\treturn Convert_watch_Event_To_v1_WatchEvent((*watch.Event)(in), out, s)\n}\n\nfunc Convert_v1_WatchEvent_To_watch_Event(in *WatchEvent, out *watch.Event, s conversion.Scope) error {\n\tout.Type = watch.EventType(in.Type)\n\tif in.Object.Object != nil {\n\t\tout.Object = in.Object.Object\n\t} else if in.Object.Raw != nil {\n\t\t// TODO: handle other fields on Unknown and detect type\n\t\tout.Object = &runtime.Unknown{\n\t\t\tRaw:         in.Object.Raw,\n\t\t\tContentType: runtime.ContentTypeJSON,\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc Convert_v1_WatchEvent_To_v1_InternalEvent(in *WatchEvent, out *InternalEvent, s conversion.Scope) error {\n\treturn Convert_v1_WatchEvent_To_watch_Event(in, (*watch.Event)(out), s)\n}\n\n// InternalEvent makes watch.Event versioned\n// +protobuf=false\ntype InternalEvent watch.Event\n\nfunc (e *InternalEvent) GetObjectKind() schema.ObjectKind { return schema.EmptyObjectKind }\nfunc (e *WatchEvent) GetObjectKind() schema.ObjectKind    { return schema.EmptyObjectKind }\nfunc (e *InternalEvent) DeepCopyObject() runtime.Object {\n\tif c := e.DeepCopy(); c != nil {\n\t\treturn c\n\t} else {\n\t\treturn nil\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/zz_generated.conversion.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by conversion-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\turl \"net/url\"\n\tunsafe \"unsafe\"\n\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\tconversion \"k8s.io/apimachinery/pkg/conversion\"\n\tfields \"k8s.io/apimachinery/pkg/fields\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n)\n\nfunc init() {\n\tlocalSchemeBuilder.Register(RegisterConversions)\n}\n\n// RegisterConversions adds conversion functions to the given scheme.\n// Public to allow building arbitrary schemes.\nfunc RegisterConversions(s *runtime.Scheme) error {\n\tif err := s.AddGeneratedConversionFunc((*url.Values)(nil), (*CreateOptions)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_url_Values_To_v1_CreateOptions(a.(*url.Values), b.(*CreateOptions), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*url.Values)(nil), (*DeleteOptions)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_url_Values_To_v1_DeleteOptions(a.(*url.Values), b.(*DeleteOptions), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*url.Values)(nil), (*GetOptions)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_url_Values_To_v1_GetOptions(a.(*url.Values), b.(*GetOptions), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*url.Values)(nil), (*ListOptions)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_url_Values_To_v1_ListOptions(a.(*url.Values), b.(*ListOptions), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*url.Values)(nil), (*PatchOptions)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_url_Values_To_v1_PatchOptions(a.(*url.Values), b.(*PatchOptions), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*url.Values)(nil), (*TableOptions)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_url_Values_To_v1_TableOptions(a.(*url.Values), b.(*TableOptions), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*url.Values)(nil), (*UpdateOptions)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_url_Values_To_v1_UpdateOptions(a.(*url.Values), b.(*UpdateOptions), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*map[string]string)(nil), (*LabelSelector)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_Map_string_To_string_To_v1_LabelSelector(a.(*map[string]string), b.(*LabelSelector), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((**bool)(nil), (*bool)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_Pointer_bool_To_bool(a.(**bool), b.(*bool), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((**float64)(nil), (*float64)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_Pointer_float64_To_float64(a.(**float64), b.(*float64), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((**int32)(nil), (*int32)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_Pointer_int32_To_int32(a.(**int32), b.(*int32), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((**int64)(nil), (*int)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_Pointer_int64_To_int(a.(**int64), b.(*int), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((**int64)(nil), (*int64)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_Pointer_int64_To_int64(a.(**int64), b.(*int64), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((**intstr.IntOrString)(nil), (*intstr.IntOrString)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_Pointer_intstr_IntOrString_To_intstr_IntOrString(a.(**intstr.IntOrString), b.(*intstr.IntOrString), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((**string)(nil), (*string)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_Pointer_string_To_string(a.(**string), b.(*string), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((**Duration)(nil), (*Duration)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_Pointer_v1_Duration_To_v1_Duration(a.(**Duration), b.(*Duration), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*[]string)(nil), (**DeletionPropagation)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_Slice_string_To_Pointer_v1_DeletionPropagation(a.(*[]string), b.(**DeletionPropagation), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*[]string)(nil), (**Time)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_Slice_string_To_Pointer_v1_Time(a.(*[]string), b.(**Time), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*[]string)(nil), (*[]int32)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_Slice_string_To_Slice_int32(a.(*[]string), b.(*[]int32), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*[]string)(nil), (*IncludeObjectPolicy)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_Slice_string_To_v1_IncludeObjectPolicy(a.(*[]string), b.(*IncludeObjectPolicy), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*[]string)(nil), (*ResourceVersionMatch)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_Slice_string_To_v1_ResourceVersionMatch(a.(*[]string), b.(*ResourceVersionMatch), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*[]string)(nil), (*Time)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_Slice_string_To_v1_Time(a.(*[]string), b.(*Time), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*bool)(nil), (**bool)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_bool_To_Pointer_bool(a.(*bool), b.(**bool), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*fields.Selector)(nil), (*string)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_fields_Selector_To_string(a.(*fields.Selector), b.(*string), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*float64)(nil), (**float64)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_float64_To_Pointer_float64(a.(*float64), b.(**float64), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*int32)(nil), (**int32)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_int32_To_Pointer_int32(a.(*int32), b.(**int32), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*int64)(nil), (**int64)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_int64_To_Pointer_int64(a.(*int64), b.(**int64), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*int)(nil), (**int64)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_int_To_Pointer_int64(a.(*int), b.(**int64), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*intstr.IntOrString)(nil), (**intstr.IntOrString)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_intstr_IntOrString_To_Pointer_intstr_IntOrString(a.(*intstr.IntOrString), b.(**intstr.IntOrString), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*intstr.IntOrString)(nil), (*intstr.IntOrString)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_intstr_IntOrString_To_intstr_IntOrString(a.(*intstr.IntOrString), b.(*intstr.IntOrString), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*labels.Selector)(nil), (*string)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_labels_Selector_To_string(a.(*labels.Selector), b.(*string), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*resource.Quantity)(nil), (*resource.Quantity)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_resource_Quantity_To_resource_Quantity(a.(*resource.Quantity), b.(*resource.Quantity), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*string)(nil), (**string)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_string_To_Pointer_string(a.(*string), b.(**string), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*string)(nil), (*fields.Selector)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_string_To_fields_Selector(a.(*string), b.(*fields.Selector), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*string)(nil), (*labels.Selector)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_string_To_labels_Selector(a.(*string), b.(*labels.Selector), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*url.Values)(nil), (*DeleteOptions)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_url_Values_To_v1_DeleteOptions(a.(*url.Values), b.(*DeleteOptions), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*DeleteOptions)(nil), (*DeleteOptions)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_v1_DeleteOptions_To_v1_DeleteOptions(a.(*DeleteOptions), b.(*DeleteOptions), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*Duration)(nil), (**Duration)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_v1_Duration_To_Pointer_v1_Duration(a.(*Duration), b.(**Duration), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*InternalEvent)(nil), (*WatchEvent)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_v1_InternalEvent_To_v1_WatchEvent(a.(*InternalEvent), b.(*WatchEvent), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*LabelSelector)(nil), (*map[string]string)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_v1_LabelSelector_To_Map_string_To_string(a.(*LabelSelector), b.(*map[string]string), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*ListMeta)(nil), (*ListMeta)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_v1_ListMeta_To_v1_ListMeta(a.(*ListMeta), b.(*ListMeta), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*MicroTime)(nil), (*MicroTime)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_v1_MicroTime_To_v1_MicroTime(a.(*MicroTime), b.(*MicroTime), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*Time)(nil), (*Time)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_v1_Time_To_v1_Time(a.(*Time), b.(*Time), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*TypeMeta)(nil), (*TypeMeta)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_v1_TypeMeta_To_v1_TypeMeta(a.(*TypeMeta), b.(*TypeMeta), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*WatchEvent)(nil), (*InternalEvent)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_v1_WatchEvent_To_v1_InternalEvent(a.(*WatchEvent), b.(*InternalEvent), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*WatchEvent)(nil), (*watch.Event)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_v1_WatchEvent_To_watch_Event(a.(*WatchEvent), b.(*watch.Event), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*watch.Event)(nil), (*WatchEvent)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_watch_Event_To_v1_WatchEvent(a.(*watch.Event), b.(*WatchEvent), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc autoConvert_url_Values_To_v1_CreateOptions(in *url.Values, out *CreateOptions, s conversion.Scope) error {\n\t// WARNING: Field TypeMeta does not have json tag, skipping.\n\n\tif values, ok := map[string][]string(*in)[\"dryRun\"]; ok && len(values) > 0 {\n\t\tout.DryRun = *(*[]string)(unsafe.Pointer(&values))\n\t} else {\n\t\tout.DryRun = nil\n\t}\n\tif values, ok := map[string][]string(*in)[\"fieldManager\"]; ok && len(values) > 0 {\n\t\tif err := runtime.Convert_Slice_string_To_string(&values, &out.FieldManager, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.FieldManager = \"\"\n\t}\n\tif values, ok := map[string][]string(*in)[\"fieldValidation\"]; ok && len(values) > 0 {\n\t\tif err := runtime.Convert_Slice_string_To_string(&values, &out.FieldValidation, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.FieldValidation = \"\"\n\t}\n\treturn nil\n}\n\n// Convert_url_Values_To_v1_CreateOptions is an autogenerated conversion function.\nfunc Convert_url_Values_To_v1_CreateOptions(in *url.Values, out *CreateOptions, s conversion.Scope) error {\n\treturn autoConvert_url_Values_To_v1_CreateOptions(in, out, s)\n}\n\nfunc autoConvert_url_Values_To_v1_DeleteOptions(in *url.Values, out *DeleteOptions, s conversion.Scope) error {\n\t// WARNING: Field TypeMeta does not have json tag, skipping.\n\n\tif values, ok := map[string][]string(*in)[\"gracePeriodSeconds\"]; ok && len(values) > 0 {\n\t\tif err := runtime.Convert_Slice_string_To_Pointer_int64(&values, &out.GracePeriodSeconds, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.GracePeriodSeconds = nil\n\t}\n\t// INFO: in.Preconditions opted out of conversion generation\n\tif values, ok := map[string][]string(*in)[\"orphanDependents\"]; ok && len(values) > 0 {\n\t\tif err := runtime.Convert_Slice_string_To_Pointer_bool(&values, &out.OrphanDependents, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.OrphanDependents = nil\n\t}\n\tif values, ok := map[string][]string(*in)[\"propagationPolicy\"]; ok && len(values) > 0 {\n\t\tif err := Convert_Slice_string_To_Pointer_v1_DeletionPropagation(&values, &out.PropagationPolicy, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.PropagationPolicy = nil\n\t}\n\tif values, ok := map[string][]string(*in)[\"dryRun\"]; ok && len(values) > 0 {\n\t\tout.DryRun = *(*[]string)(unsafe.Pointer(&values))\n\t} else {\n\t\tout.DryRun = nil\n\t}\n\tif values, ok := map[string][]string(*in)[\"ignoreStoreReadErrorWithClusterBreakingPotential\"]; ok && len(values) > 0 {\n\t\tif err := runtime.Convert_Slice_string_To_Pointer_bool(&values, &out.IgnoreStoreReadErrorWithClusterBreakingPotential, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.IgnoreStoreReadErrorWithClusterBreakingPotential = nil\n\t}\n\treturn nil\n}\n\nfunc autoConvert_url_Values_To_v1_GetOptions(in *url.Values, out *GetOptions, s conversion.Scope) error {\n\t// WARNING: Field TypeMeta does not have json tag, skipping.\n\n\tif values, ok := map[string][]string(*in)[\"resourceVersion\"]; ok && len(values) > 0 {\n\t\tif err := runtime.Convert_Slice_string_To_string(&values, &out.ResourceVersion, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.ResourceVersion = \"\"\n\t}\n\treturn nil\n}\n\n// Convert_url_Values_To_v1_GetOptions is an autogenerated conversion function.\nfunc Convert_url_Values_To_v1_GetOptions(in *url.Values, out *GetOptions, s conversion.Scope) error {\n\treturn autoConvert_url_Values_To_v1_GetOptions(in, out, s)\n}\n\nfunc autoConvert_url_Values_To_v1_ListOptions(in *url.Values, out *ListOptions, s conversion.Scope) error {\n\t// WARNING: Field TypeMeta does not have json tag, skipping.\n\n\tif values, ok := map[string][]string(*in)[\"labelSelector\"]; ok && len(values) > 0 {\n\t\tif err := runtime.Convert_Slice_string_To_string(&values, &out.LabelSelector, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.LabelSelector = \"\"\n\t}\n\tif values, ok := map[string][]string(*in)[\"fieldSelector\"]; ok && len(values) > 0 {\n\t\tif err := runtime.Convert_Slice_string_To_string(&values, &out.FieldSelector, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.FieldSelector = \"\"\n\t}\n\tif values, ok := map[string][]string(*in)[\"watch\"]; ok && len(values) > 0 {\n\t\tif err := runtime.Convert_Slice_string_To_bool(&values, &out.Watch, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.Watch = false\n\t}\n\tif values, ok := map[string][]string(*in)[\"allowWatchBookmarks\"]; ok && len(values) > 0 {\n\t\tif err := runtime.Convert_Slice_string_To_bool(&values, &out.AllowWatchBookmarks, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.AllowWatchBookmarks = false\n\t}\n\tif values, ok := map[string][]string(*in)[\"resourceVersion\"]; ok && len(values) > 0 {\n\t\tif err := runtime.Convert_Slice_string_To_string(&values, &out.ResourceVersion, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.ResourceVersion = \"\"\n\t}\n\tif values, ok := map[string][]string(*in)[\"resourceVersionMatch\"]; ok && len(values) > 0 {\n\t\tif err := Convert_Slice_string_To_v1_ResourceVersionMatch(&values, &out.ResourceVersionMatch, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.ResourceVersionMatch = \"\"\n\t}\n\tif values, ok := map[string][]string(*in)[\"timeoutSeconds\"]; ok && len(values) > 0 {\n\t\tif err := runtime.Convert_Slice_string_To_Pointer_int64(&values, &out.TimeoutSeconds, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.TimeoutSeconds = nil\n\t}\n\tif values, ok := map[string][]string(*in)[\"limit\"]; ok && len(values) > 0 {\n\t\tif err := runtime.Convert_Slice_string_To_int64(&values, &out.Limit, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.Limit = 0\n\t}\n\tif values, ok := map[string][]string(*in)[\"continue\"]; ok && len(values) > 0 {\n\t\tif err := runtime.Convert_Slice_string_To_string(&values, &out.Continue, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.Continue = \"\"\n\t}\n\tif values, ok := map[string][]string(*in)[\"sendInitialEvents\"]; ok && len(values) > 0 {\n\t\tif err := runtime.Convert_Slice_string_To_Pointer_bool(&values, &out.SendInitialEvents, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.SendInitialEvents = nil\n\t}\n\treturn nil\n}\n\n// Convert_url_Values_To_v1_ListOptions is an autogenerated conversion function.\nfunc Convert_url_Values_To_v1_ListOptions(in *url.Values, out *ListOptions, s conversion.Scope) error {\n\treturn autoConvert_url_Values_To_v1_ListOptions(in, out, s)\n}\n\nfunc autoConvert_url_Values_To_v1_PatchOptions(in *url.Values, out *PatchOptions, s conversion.Scope) error {\n\t// WARNING: Field TypeMeta does not have json tag, skipping.\n\n\tif values, ok := map[string][]string(*in)[\"dryRun\"]; ok && len(values) > 0 {\n\t\tout.DryRun = *(*[]string)(unsafe.Pointer(&values))\n\t} else {\n\t\tout.DryRun = nil\n\t}\n\tif values, ok := map[string][]string(*in)[\"force\"]; ok && len(values) > 0 {\n\t\tif err := runtime.Convert_Slice_string_To_Pointer_bool(&values, &out.Force, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.Force = nil\n\t}\n\tif values, ok := map[string][]string(*in)[\"fieldManager\"]; ok && len(values) > 0 {\n\t\tif err := runtime.Convert_Slice_string_To_string(&values, &out.FieldManager, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.FieldManager = \"\"\n\t}\n\tif values, ok := map[string][]string(*in)[\"fieldValidation\"]; ok && len(values) > 0 {\n\t\tif err := runtime.Convert_Slice_string_To_string(&values, &out.FieldValidation, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.FieldValidation = \"\"\n\t}\n\treturn nil\n}\n\n// Convert_url_Values_To_v1_PatchOptions is an autogenerated conversion function.\nfunc Convert_url_Values_To_v1_PatchOptions(in *url.Values, out *PatchOptions, s conversion.Scope) error {\n\treturn autoConvert_url_Values_To_v1_PatchOptions(in, out, s)\n}\n\nfunc autoConvert_url_Values_To_v1_TableOptions(in *url.Values, out *TableOptions, s conversion.Scope) error {\n\t// WARNING: Field TypeMeta does not have json tag, skipping.\n\n\tif values, ok := map[string][]string(*in)[\"-\"]; ok && len(values) > 0 {\n\t\tif err := runtime.Convert_Slice_string_To_bool(&values, &out.NoHeaders, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.NoHeaders = false\n\t}\n\tif values, ok := map[string][]string(*in)[\"includeObject\"]; ok && len(values) > 0 {\n\t\tif err := Convert_Slice_string_To_v1_IncludeObjectPolicy(&values, &out.IncludeObject, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.IncludeObject = \"\"\n\t}\n\treturn nil\n}\n\n// Convert_url_Values_To_v1_TableOptions is an autogenerated conversion function.\nfunc Convert_url_Values_To_v1_TableOptions(in *url.Values, out *TableOptions, s conversion.Scope) error {\n\treturn autoConvert_url_Values_To_v1_TableOptions(in, out, s)\n}\n\nfunc autoConvert_url_Values_To_v1_UpdateOptions(in *url.Values, out *UpdateOptions, s conversion.Scope) error {\n\t// WARNING: Field TypeMeta does not have json tag, skipping.\n\n\tif values, ok := map[string][]string(*in)[\"dryRun\"]; ok && len(values) > 0 {\n\t\tout.DryRun = *(*[]string)(unsafe.Pointer(&values))\n\t} else {\n\t\tout.DryRun = nil\n\t}\n\tif values, ok := map[string][]string(*in)[\"fieldManager\"]; ok && len(values) > 0 {\n\t\tif err := runtime.Convert_Slice_string_To_string(&values, &out.FieldManager, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.FieldManager = \"\"\n\t}\n\tif values, ok := map[string][]string(*in)[\"fieldValidation\"]; ok && len(values) > 0 {\n\t\tif err := runtime.Convert_Slice_string_To_string(&values, &out.FieldValidation, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.FieldValidation = \"\"\n\t}\n\treturn nil\n}\n\n// Convert_url_Values_To_v1_UpdateOptions is an autogenerated conversion function.\nfunc Convert_url_Values_To_v1_UpdateOptions(in *url.Values, out *UpdateOptions, s conversion.Scope) error {\n\treturn autoConvert_url_Values_To_v1_UpdateOptions(in, out, s)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *APIGroup) DeepCopyInto(out *APIGroup) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tif in.Versions != nil {\n\t\tin, out := &in.Versions, &out.Versions\n\t\t*out = make([]GroupVersionForDiscovery, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tout.PreferredVersion = in.PreferredVersion\n\tif in.ServerAddressByClientCIDRs != nil {\n\t\tin, out := &in.ServerAddressByClientCIDRs, &out.ServerAddressByClientCIDRs\n\t\t*out = make([]ServerAddressByClientCIDR, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIGroup.\nfunc (in *APIGroup) DeepCopy() *APIGroup {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(APIGroup)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *APIGroup) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *APIGroupList) DeepCopyInto(out *APIGroupList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tif in.Groups != nil {\n\t\tin, out := &in.Groups, &out.Groups\n\t\t*out = make([]APIGroup, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIGroupList.\nfunc (in *APIGroupList) DeepCopy() *APIGroupList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(APIGroupList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *APIGroupList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *APIResource) DeepCopyInto(out *APIResource) {\n\t*out = *in\n\tif in.Verbs != nil {\n\t\tin, out := &in.Verbs, &out.Verbs\n\t\t*out = make(Verbs, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ShortNames != nil {\n\t\tin, out := &in.ShortNames, &out.ShortNames\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Categories != nil {\n\t\tin, out := &in.Categories, &out.Categories\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIResource.\nfunc (in *APIResource) DeepCopy() *APIResource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(APIResource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *APIResourceList) DeepCopyInto(out *APIResourceList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tif in.APIResources != nil {\n\t\tin, out := &in.APIResources, &out.APIResources\n\t\t*out = make([]APIResource, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIResourceList.\nfunc (in *APIResourceList) DeepCopy() *APIResourceList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(APIResourceList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *APIResourceList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *APIVersions) DeepCopyInto(out *APIVersions) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tif in.Versions != nil {\n\t\tin, out := &in.Versions, &out.Versions\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ServerAddressByClientCIDRs != nil {\n\t\tin, out := &in.ServerAddressByClientCIDRs, &out.ServerAddressByClientCIDRs\n\t\t*out = make([]ServerAddressByClientCIDR, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIVersions.\nfunc (in *APIVersions) DeepCopy() *APIVersions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(APIVersions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *APIVersions) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ApplyOptions) DeepCopyInto(out *ApplyOptions) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tif in.DryRun != nil {\n\t\tin, out := &in.DryRun, &out.DryRun\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplyOptions.\nfunc (in *ApplyOptions) DeepCopy() *ApplyOptions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ApplyOptions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Condition) DeepCopyInto(out *Condition) {\n\t*out = *in\n\tin.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Condition.\nfunc (in *Condition) DeepCopy() *Condition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Condition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *CreateOptions) DeepCopyInto(out *CreateOptions) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tif in.DryRun != nil {\n\t\tin, out := &in.DryRun, &out.DryRun\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CreateOptions.\nfunc (in *CreateOptions) DeepCopy() *CreateOptions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(CreateOptions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *CreateOptions) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *DeleteOptions) DeepCopyInto(out *DeleteOptions) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tif in.GracePeriodSeconds != nil {\n\t\tin, out := &in.GracePeriodSeconds, &out.GracePeriodSeconds\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.Preconditions != nil {\n\t\tin, out := &in.Preconditions, &out.Preconditions\n\t\t*out = new(Preconditions)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.OrphanDependents != nil {\n\t\tin, out := &in.OrphanDependents, &out.OrphanDependents\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.PropagationPolicy != nil {\n\t\tin, out := &in.PropagationPolicy, &out.PropagationPolicy\n\t\t*out = new(DeletionPropagation)\n\t\t**out = **in\n\t}\n\tif in.DryRun != nil {\n\t\tin, out := &in.DryRun, &out.DryRun\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.IgnoreStoreReadErrorWithClusterBreakingPotential != nil {\n\t\tin, out := &in.IgnoreStoreReadErrorWithClusterBreakingPotential, &out.IgnoreStoreReadErrorWithClusterBreakingPotential\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeleteOptions.\nfunc (in *DeleteOptions) DeepCopy() *DeleteOptions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(DeleteOptions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *DeleteOptions) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Duration) DeepCopyInto(out *Duration) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Duration.\nfunc (in *Duration) DeepCopy() *Duration {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Duration)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FieldSelectorRequirement) DeepCopyInto(out *FieldSelectorRequirement) {\n\t*out = *in\n\tif in.Values != nil {\n\t\tin, out := &in.Values, &out.Values\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FieldSelectorRequirement.\nfunc (in *FieldSelectorRequirement) DeepCopy() *FieldSelectorRequirement {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FieldSelectorRequirement)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *FieldsV1) DeepCopyInto(out *FieldsV1) {\n\t*out = *in\n\tif in.Raw != nil {\n\t\tin, out := &in.Raw, &out.Raw\n\t\t*out = make([]byte, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FieldsV1.\nfunc (in *FieldsV1) DeepCopy() *FieldsV1 {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(FieldsV1)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *GetOptions) DeepCopyInto(out *GetOptions) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GetOptions.\nfunc (in *GetOptions) DeepCopy() *GetOptions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(GetOptions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *GetOptions) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *GroupKind) DeepCopyInto(out *GroupKind) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupKind.\nfunc (in *GroupKind) DeepCopy() *GroupKind {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(GroupKind)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *GroupResource) DeepCopyInto(out *GroupResource) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupResource.\nfunc (in *GroupResource) DeepCopy() *GroupResource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(GroupResource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *GroupVersion) DeepCopyInto(out *GroupVersion) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupVersion.\nfunc (in *GroupVersion) DeepCopy() *GroupVersion {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(GroupVersion)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *GroupVersionForDiscovery) DeepCopyInto(out *GroupVersionForDiscovery) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupVersionForDiscovery.\nfunc (in *GroupVersionForDiscovery) DeepCopy() *GroupVersionForDiscovery {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(GroupVersionForDiscovery)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *GroupVersionKind) DeepCopyInto(out *GroupVersionKind) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupVersionKind.\nfunc (in *GroupVersionKind) DeepCopy() *GroupVersionKind {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(GroupVersionKind)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *GroupVersionResource) DeepCopyInto(out *GroupVersionResource) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupVersionResource.\nfunc (in *GroupVersionResource) DeepCopy() *GroupVersionResource {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(GroupVersionResource)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *InternalEvent) DeepCopyInto(out *InternalEvent) {\n\t*out = *in\n\tif in.Object != nil {\n\t\tout.Object = in.Object.DeepCopyObject()\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InternalEvent.\nfunc (in *InternalEvent) DeepCopy() *InternalEvent {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(InternalEvent)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LabelSelector) DeepCopyInto(out *LabelSelector) {\n\t*out = *in\n\tif in.MatchLabels != nil {\n\t\tin, out := &in.MatchLabels, &out.MatchLabels\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.MatchExpressions != nil {\n\t\tin, out := &in.MatchExpressions, &out.MatchExpressions\n\t\t*out = make([]LabelSelectorRequirement, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LabelSelector.\nfunc (in *LabelSelector) DeepCopy() *LabelSelector {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LabelSelector)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *LabelSelectorRequirement) DeepCopyInto(out *LabelSelectorRequirement) {\n\t*out = *in\n\tif in.Values != nil {\n\t\tin, out := &in.Values, &out.Values\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LabelSelectorRequirement.\nfunc (in *LabelSelectorRequirement) DeepCopy() *LabelSelectorRequirement {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(LabelSelectorRequirement)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *List) DeepCopyInto(out *List) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]runtime.RawExtension, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new List.\nfunc (in *List) DeepCopy() *List {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(List)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *List) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ListMeta) DeepCopyInto(out *ListMeta) {\n\t*out = *in\n\tif in.RemainingItemCount != nil {\n\t\tin, out := &in.RemainingItemCount, &out.RemainingItemCount\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListMeta.\nfunc (in *ListMeta) DeepCopy() *ListMeta {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ListMeta)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ListOptions) DeepCopyInto(out *ListOptions) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tif in.TimeoutSeconds != nil {\n\t\tin, out := &in.TimeoutSeconds, &out.TimeoutSeconds\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.SendInitialEvents != nil {\n\t\tin, out := &in.SendInitialEvents, &out.SendInitialEvents\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListOptions.\nfunc (in *ListOptions) DeepCopy() *ListOptions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ListOptions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ListOptions) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ManagedFieldsEntry) DeepCopyInto(out *ManagedFieldsEntry) {\n\t*out = *in\n\tif in.Time != nil {\n\t\tin, out := &in.Time, &out.Time\n\t\t*out = (*in).DeepCopy()\n\t}\n\tif in.FieldsV1 != nil {\n\t\tin, out := &in.FieldsV1, &out.FieldsV1\n\t\t*out = new(FieldsV1)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ManagedFieldsEntry.\nfunc (in *ManagedFieldsEntry) DeepCopy() *ManagedFieldsEntry {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ManagedFieldsEntry)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MicroTime.\nfunc (in *MicroTime) DeepCopy() *MicroTime {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(MicroTime)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ObjectMeta) DeepCopyInto(out *ObjectMeta) {\n\t*out = *in\n\tin.CreationTimestamp.DeepCopyInto(&out.CreationTimestamp)\n\tif in.DeletionTimestamp != nil {\n\t\tin, out := &in.DeletionTimestamp, &out.DeletionTimestamp\n\t\t*out = (*in).DeepCopy()\n\t}\n\tif in.DeletionGracePeriodSeconds != nil {\n\t\tin, out := &in.DeletionGracePeriodSeconds, &out.DeletionGracePeriodSeconds\n\t\t*out = new(int64)\n\t\t**out = **in\n\t}\n\tif in.Labels != nil {\n\t\tin, out := &in.Labels, &out.Labels\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.Annotations != nil {\n\t\tin, out := &in.Annotations, &out.Annotations\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\tif in.OwnerReferences != nil {\n\t\tin, out := &in.OwnerReferences, &out.OwnerReferences\n\t\t*out = make([]OwnerReference, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\tif in.Finalizers != nil {\n\t\tin, out := &in.Finalizers, &out.Finalizers\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ManagedFields != nil {\n\t\tin, out := &in.ManagedFields, &out.ManagedFields\n\t\t*out = make([]ManagedFieldsEntry, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObjectMeta.\nfunc (in *ObjectMeta) DeepCopy() *ObjectMeta {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ObjectMeta)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *OwnerReference) DeepCopyInto(out *OwnerReference) {\n\t*out = *in\n\tif in.Controller != nil {\n\t\tin, out := &in.Controller, &out.Controller\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\tif in.BlockOwnerDeletion != nil {\n\t\tin, out := &in.BlockOwnerDeletion, &out.BlockOwnerDeletion\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OwnerReference.\nfunc (in *OwnerReference) DeepCopy() *OwnerReference {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(OwnerReference)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PartialObjectMetadata) DeepCopyInto(out *PartialObjectMetadata) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ObjectMeta.DeepCopyInto(&out.ObjectMeta)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PartialObjectMetadata.\nfunc (in *PartialObjectMetadata) DeepCopy() *PartialObjectMetadata {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PartialObjectMetadata)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PartialObjectMetadata) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PartialObjectMetadataList) DeepCopyInto(out *PartialObjectMetadataList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]PartialObjectMetadata, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PartialObjectMetadataList.\nfunc (in *PartialObjectMetadataList) DeepCopy() *PartialObjectMetadataList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PartialObjectMetadataList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PartialObjectMetadataList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Patch) DeepCopyInto(out *Patch) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Patch.\nfunc (in *Patch) DeepCopy() *Patch {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Patch)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PatchOptions) DeepCopyInto(out *PatchOptions) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tif in.DryRun != nil {\n\t\tin, out := &in.DryRun, &out.DryRun\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Force != nil {\n\t\tin, out := &in.Force, &out.Force\n\t\t*out = new(bool)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PatchOptions.\nfunc (in *PatchOptions) DeepCopy() *PatchOptions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PatchOptions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PatchOptions) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Preconditions) DeepCopyInto(out *Preconditions) {\n\t*out = *in\n\tif in.UID != nil {\n\t\tin, out := &in.UID, &out.UID\n\t\t*out = new(types.UID)\n\t\t**out = **in\n\t}\n\tif in.ResourceVersion != nil {\n\t\tin, out := &in.ResourceVersion, &out.ResourceVersion\n\t\t*out = new(string)\n\t\t**out = **in\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Preconditions.\nfunc (in *Preconditions) DeepCopy() *Preconditions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Preconditions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RootPaths) DeepCopyInto(out *RootPaths) {\n\t*out = *in\n\tif in.Paths != nil {\n\t\tin, out := &in.Paths, &out.Paths\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RootPaths.\nfunc (in *RootPaths) DeepCopy() *RootPaths {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RootPaths)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ServerAddressByClientCIDR) DeepCopyInto(out *ServerAddressByClientCIDR) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerAddressByClientCIDR.\nfunc (in *ServerAddressByClientCIDR) DeepCopy() *ServerAddressByClientCIDR {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ServerAddressByClientCIDR)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Status) DeepCopyInto(out *Status) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Details != nil {\n\t\tin, out := &in.Details, &out.Details\n\t\t*out = new(StatusDetails)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Status.\nfunc (in *Status) DeepCopy() *Status {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Status)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Status) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatusCause) DeepCopyInto(out *StatusCause) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatusCause.\nfunc (in *StatusCause) DeepCopy() *StatusCause {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatusCause)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *StatusDetails) DeepCopyInto(out *StatusDetails) {\n\t*out = *in\n\tif in.Causes != nil {\n\t\tin, out := &in.Causes, &out.Causes\n\t\t*out = make([]StatusCause, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatusDetails.\nfunc (in *StatusDetails) DeepCopy() *StatusDetails {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(StatusDetails)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Table) DeepCopyInto(out *Table) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.ColumnDefinitions != nil {\n\t\tin, out := &in.ColumnDefinitions, &out.ColumnDefinitions\n\t\t*out = make([]TableColumnDefinition, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Rows != nil {\n\t\tin, out := &in.Rows, &out.Rows\n\t\t*out = make([]TableRow, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Table.\nfunc (in *Table) DeepCopy() *Table {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Table)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Table) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TableColumnDefinition) DeepCopyInto(out *TableColumnDefinition) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TableColumnDefinition.\nfunc (in *TableColumnDefinition) DeepCopy() *TableColumnDefinition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TableColumnDefinition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TableOptions) DeepCopyInto(out *TableOptions) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TableOptions.\nfunc (in *TableOptions) DeepCopy() *TableOptions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TableOptions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *TableOptions) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TableRow) DeepCopyInto(out *TableRow) {\n\tclone := in.DeepCopy()\n\t*out = *clone\n\treturn\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TableRowCondition) DeepCopyInto(out *TableRowCondition) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TableRowCondition.\nfunc (in *TableRowCondition) DeepCopy() *TableRowCondition {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TableRowCondition)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Time.\nfunc (in *Time) DeepCopy() *Time {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Time)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Timestamp) DeepCopyInto(out *Timestamp) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Timestamp.\nfunc (in *Timestamp) DeepCopy() *Timestamp {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Timestamp)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *UpdateOptions) DeepCopyInto(out *UpdateOptions) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tif in.DryRun != nil {\n\t\tin, out := &in.DryRun, &out.DryRun\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UpdateOptions.\nfunc (in *UpdateOptions) DeepCopy() *UpdateOptions {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(UpdateOptions)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *UpdateOptions) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in Verbs) DeepCopyInto(out *Verbs) {\n\t{\n\t\tin := &in\n\t\t*out = make(Verbs, len(*in))\n\t\tcopy(*out, *in)\n\t\treturn\n\t}\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Verbs.\nfunc (in Verbs) DeepCopy() Verbs {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Verbs)\n\tin.DeepCopyInto(out)\n\treturn *out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *WatchEvent) DeepCopyInto(out *WatchEvent) {\n\t*out = *in\n\tin.Object.DeepCopyInto(&out.Object)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WatchEvent.\nfunc (in *WatchEvent) DeepCopy() *WatchEvent {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(WatchEvent)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *WatchEvent) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1/zz_generated.defaults.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by defaulter-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// RegisterDefaults adds defaulters functions to the given scheme.\n// Public to allow building arbitrary schemes.\n// All generated defaulters are covering - they call all nested defaulters.\nfunc RegisterDefaults(scheme *runtime.Scheme) error {\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1beta1/conversion.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\t\"unsafe\"\n\n\t\"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/conversion\"\n)\n\n// Convert_Slice_string_To_v1beta1_IncludeObjectPolicy allows converting a URL query parameter value\nfunc Convert_Slice_string_To_v1beta1_IncludeObjectPolicy(in *[]string, out *IncludeObjectPolicy, s conversion.Scope) error {\n\tif len(*in) > 0 {\n\t\t*out = IncludeObjectPolicy((*in)[0])\n\t}\n\treturn nil\n}\n\n// Convert_v1beta1_PartialObjectMetadataList_To_v1_PartialObjectMetadataList allows converting PartialObjectMetadataList between versions\nfunc Convert_v1beta1_PartialObjectMetadataList_To_v1_PartialObjectMetadataList(in *PartialObjectMetadataList, out *v1.PartialObjectMetadataList, s conversion.Scope) error {\n\tout.ListMeta = in.ListMeta\n\tout.Items = *(*[]v1.PartialObjectMetadata)(unsafe.Pointer(&in.Items))\n\treturn nil\n}\n\n// Convert_v1_PartialObjectMetadataList_To_v1beta1_PartialObjectMetadataList allows converting PartialObjectMetadataList between versions\nfunc Convert_v1_PartialObjectMetadataList_To_v1beta1_PartialObjectMetadataList(in *v1.PartialObjectMetadataList, out *PartialObjectMetadataList, s conversion.Scope) error {\n\tout.ListMeta = in.ListMeta\n\tout.Items = *(*[]v1.PartialObjectMetadata)(unsafe.Pointer(&in.Items))\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1beta1/deepcopy.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1beta1/doc.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:openapi-gen=true\n// +k8s:defaulter-gen=TypeMeta\n\n// +groupName=meta.k8s.io\n\npackage v1beta1 // import \"k8s.io/apimachinery/pkg/apis/meta/v1beta1\"\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1beta1/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/apimachinery/pkg/apis/meta/v1beta1/generated.proto\n\npackage v1beta1\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *PartialObjectMetadataList) Reset()      { *m = PartialObjectMetadataList{} }\nfunc (*PartialObjectMetadataList) ProtoMessage() {}\nfunc (*PartialObjectMetadataList) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_39237a8d8061b52f, []int{0}\n}\nfunc (m *PartialObjectMetadataList) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *PartialObjectMetadataList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *PartialObjectMetadataList) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_PartialObjectMetadataList.Merge(m, src)\n}\nfunc (m *PartialObjectMetadataList) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *PartialObjectMetadataList) XXX_DiscardUnknown() {\n\txxx_messageInfo_PartialObjectMetadataList.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_PartialObjectMetadataList proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*PartialObjectMetadataList)(nil), \"k8s.io.apimachinery.pkg.apis.meta.v1beta1.PartialObjectMetadataList\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/apimachinery/pkg/apis/meta/v1beta1/generated.proto\", fileDescriptor_39237a8d8061b52f)\n}\n\nvar fileDescriptor_39237a8d8061b52f = []byte{\n\t// 303 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0x41, 0x4b, 0xf3, 0x30,\n\t0x1c, 0xc6, 0x9b, 0xf7, 0x65, 0x30, 0x3a, 0x04, 0xd9, 0x69, 0xee, 0x90, 0x0d, 0x4f, 0xdb, 0xc1,\n\t0x84, 0x0d, 0x11, 0xc5, 0xdb, 0x6e, 0x82, 0x32, 0xd9, 0x51, 0x3c, 0x98, 0x76, 0x31, 0x8b, 0x35,\n\t0x4d, 0x69, 0xfe, 0x15, 0xbc, 0xf9, 0x11, 0xfc, 0x58, 0x3d, 0xee, 0x38, 0x10, 0x86, 0x8d, 0x5f,\n\t0x44, 0xd2, 0x56, 0x91, 0xa1, 0xd0, 0x5b, 0x9e, 0x07, 0x7e, 0xbf, 0x3c, 0x81, 0xf8, 0x67, 0xd1,\n\t0xa9, 0x21, 0x52, 0x53, 0x96, 0x48, 0xc5, 0xc2, 0x95, 0x8c, 0x79, 0xfa, 0x4c, 0x93, 0x48, 0xb8,\n\t0xc2, 0x50, 0xc5, 0x81, 0xd1, 0xa7, 0x49, 0xc0, 0x81, 0x4d, 0xa8, 0xe0, 0x31, 0x4f, 0x19, 0xf0,\n\t0x25, 0x49, 0x52, 0x0d, 0xba, 0x3b, 0xae, 0x50, 0xf2, 0x13, 0x25, 0x49, 0x24, 0x5c, 0x61, 0x88,\n\t0x43, 0x49, 0x8d, 0xf6, 0x8f, 0x84, 0x84, 0x55, 0x16, 0x90, 0x50, 0x2b, 0x2a, 0xb4, 0xd0, 0xb4,\n\t0x34, 0x04, 0xd9, 0x7d, 0x99, 0xca, 0x50, 0x9e, 0x2a, 0x73, 0xff, 0xb8, 0xc9, 0xa8, 0xdd, 0x3d,\n\t0xfd, 0x93, 0xbf, 0xa8, 0x34, 0x8b, 0x41, 0x2a, 0x4e, 0x4d, 0xb8, 0xe2, 0x8a, 0xed, 0x72, 0x87,\n\t0x6f, 0xc8, 0x3f, 0xb8, 0x66, 0x29, 0x48, 0xf6, 0x38, 0x0f, 0x1e, 0x78, 0x08, 0x57, 0x1c, 0xd8,\n\t0x92, 0x01, 0xbb, 0x94, 0x06, 0xba, 0xb7, 0x7e, 0x5b, 0xd5, 0xb9, 0xf7, 0x6f, 0x88, 0x46, 0x9d,\n\t0x29, 0x21, 0x4d, 0x1e, 0x4e, 0x1c, 0xed, 0x4c, 0xb3, 0xfd, 0x7c, 0x3b, 0xf0, 0xec, 0x76, 0xd0,\n\t0xfe, 0x6a, 0x16, 0xdf, 0xc6, 0xee, 0x9d, 0xdf, 0x92, 0xc0, 0x95, 0xe9, 0xa1, 0xe1, 0xff, 0x51,\n\t0x67, 0x7a, 0xde, 0x4c, 0xfd, 0xeb, 0xda, 0xd9, 0x5e, 0x7d, 0x4f, 0xeb, 0xc2, 0x19, 0x17, 0x95,\n\t0x78, 0x36, 0xcf, 0x0b, 0xec, 0xad, 0x0b, 0xec, 0x6d, 0x0a, 0xec, 0xbd, 0x58, 0x8c, 0x72, 0x8b,\n\t0xd1, 0xda, 0x62, 0xb4, 0xb1, 0x18, 0xbd, 0x5b, 0x8c, 0x5e, 0x3f, 0xb0, 0x77, 0x33, 0x6e, 0xfc,\n\t0x0d, 0x3e, 0x03, 0x00, 0x00, 0xff, 0xff, 0xfe, 0x0f, 0xd7, 0x36, 0x32, 0x02, 0x00, 0x00,\n}\n\nfunc (m *PartialObjectMetadataList) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *PartialObjectMetadataList) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *PartialObjectMetadataList) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\t{\n\t\tsize, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0x12\n\tif len(m.Items) > 0 {\n\t\tfor iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {\n\t\t\t{\n\t\t\t\tsize, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn 0, err\n\t\t\t\t}\n\t\t\t\ti -= size\n\t\t\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t\t\t}\n\t\t\ti--\n\t\t\tdAtA[i] = 0xa\n\t\t}\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *PartialObjectMetadataList) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif len(m.Items) > 0 {\n\t\tfor _, e := range m.Items {\n\t\t\tl = e.Size()\n\t\t\tn += 1 + l + sovGenerated(uint64(l))\n\t\t}\n\t}\n\tl = m.ListMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *PartialObjectMetadataList) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\trepeatedStringForItems := \"[]PartialObjectMetadata{\"\n\tfor _, f := range this.Items {\n\t\trepeatedStringForItems += fmt.Sprintf(\"%v\", f) + \",\"\n\t}\n\trepeatedStringForItems += \"}\"\n\ts := strings.Join([]string{`&PartialObjectMetadataList{`,\n\t\t`Items:` + repeatedStringForItems + `,`,\n\t\t`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf(\"%v\", this.ListMeta), \"ListMeta\", \"v1.ListMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *PartialObjectMetadataList) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: PartialObjectMetadataList: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: PartialObjectMetadataList: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Items\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Items = append(m.Items, v1.PartialObjectMetadata{})\n\t\t\tif err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ListMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1beta1/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.apimachinery.pkg.apis.meta.v1beta1;\n\nimport \"k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto\";\nimport \"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\";\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/apimachinery/pkg/apis/meta/v1beta1\";\n\n// PartialObjectMetadataList contains a list of objects containing only their metadata.\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\nmessage PartialObjectMetadataList {\n  // Standard list metadata.\n  // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n  // +optional\n  optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 2;\n\n  // items contains each of the included items.\n  repeated .k8s.io.apimachinery.pkg.apis.meta.v1.PartialObjectMetadata items = 1;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1beta1/register.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\t\"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/conversion\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name for this API.\nconst GroupName = \"meta.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta1\"}\n\n// Kind takes an unqualified kind and returns a Group qualified GroupKind\nfunc Kind(kind string) schema.GroupKind {\n\treturn SchemeGroupVersion.WithKind(kind).GroupKind()\n}\n\n// AddMetaToScheme registers base meta types into schemas.\nfunc AddMetaToScheme(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&Table{},\n\t\t&TableOptions{},\n\t\t&PartialObjectMetadata{},\n\t\t&PartialObjectMetadataList{},\n\t)\n\n\treturn nil\n}\n\n// RegisterConversions adds conversion functions to the given scheme.\nfunc RegisterConversions(s *runtime.Scheme) error {\n\tif err := s.AddGeneratedConversionFunc((*PartialObjectMetadataList)(nil), (*v1.PartialObjectMetadataList)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_v1beta1_PartialObjectMetadataList_To_v1_PartialObjectMetadataList(a.(*PartialObjectMetadataList), b.(*v1.PartialObjectMetadataList), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*v1.PartialObjectMetadataList)(nil), (*PartialObjectMetadataList)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_v1_PartialObjectMetadataList_To_v1beta1_PartialObjectMetadataList(a.(*v1.PartialObjectMetadataList), b.(*PartialObjectMetadataList), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1beta1/types.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// package v1beta1 is alpha objects from meta that will be introduced.\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// Table is a tabular representation of a set of API resources. The server transforms the\n// object into a set of preferred columns for quickly reviewing the objects.\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +protobuf=false\ntype Table = v1.Table\n\n// TableColumnDefinition contains information about a column returned in the Table.\n// +protobuf=false\ntype TableColumnDefinition = v1.TableColumnDefinition\n\n// TableRow is an individual row in a table.\n// +protobuf=false\ntype TableRow = v1.TableRow\n\n// TableRowCondition allows a row to be marked with additional information.\n// +protobuf=false\ntype TableRowCondition = v1.TableRowCondition\n\ntype RowConditionType = v1.RowConditionType\n\ntype ConditionStatus = v1.ConditionStatus\n\ntype IncludeObjectPolicy = v1.IncludeObjectPolicy\n\n// TableOptions are used when a Table is requested by the caller.\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\ntype TableOptions = v1.TableOptions\n\n// PartialObjectMetadata is a generic representation of any object with ObjectMeta. It allows clients\n// to get access to a particular ObjectMeta schema without knowing the details of the version.\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\ntype PartialObjectMetadata = v1.PartialObjectMetadata\n\n// IMPORTANT: PartialObjectMetadataList has different protobuf field ids in v1beta1 than\n// v1 because ListMeta was accidentally omitted prior to 1.15. Therefore this type must\n// remain independent of v1.PartialObjectMetadataList to preserve mappings.\n\n// PartialObjectMetadataList contains a list of objects containing only their metadata.\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\ntype PartialObjectMetadataList struct {\n\tv1.TypeMeta `json:\",inline\"`\n\t// Standard list metadata.\n\t// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\n\t// +optional\n\tv1.ListMeta `json:\"metadata,omitempty\" protobuf:\"bytes,2,opt,name=metadata\"`\n\n\t// items contains each of the included items.\n\tItems []v1.PartialObjectMetadata `json:\"items\" protobuf:\"bytes,1,rep,name=items\"`\n}\n\nconst (\n\tRowCompleted = v1.RowCompleted\n\n\tConditionTrue    = v1.ConditionTrue\n\tConditionFalse   = v1.ConditionFalse\n\tConditionUnknown = v1.ConditionUnknown\n\n\tIncludeNone     = v1.IncludeNone\n\tIncludeMetadata = v1.IncludeMetadata\n\tIncludeObject   = v1.IncludeObject\n)\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1beta1/types_swagger_doc_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\n// This file contains a collection of methods that can be used from go-restful to\n// generate Swagger API documentation for its models. Please read this PR for more\n// information on the implementation: https://github.com/emicklei/go-restful/pull/215\n//\n// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if\n// they are on one line! For multiple line or blocks that you want to ignore use ---.\n// Any context after a --- is ignored.\n//\n// Those methods can be generated by using hack/update-codegen.sh\n\n// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.\nvar map_PartialObjectMetadataList = map[string]string{\n\t\"\":         \"PartialObjectMetadataList contains a list of objects containing only their metadata.\",\n\t\"metadata\": \"Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds\",\n\t\"items\":    \"items contains each of the included items.\",\n}\n\nfunc (PartialObjectMetadataList) SwaggerDoc() map[string]string {\n\treturn map_PartialObjectMetadataList\n}\n\n// AUTO-GENERATED FUNCTIONS END HERE\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1beta1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *PartialObjectMetadataList) DeepCopyInto(out *PartialObjectMetadataList) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.ListMeta.DeepCopyInto(&out.ListMeta)\n\tif in.Items != nil {\n\t\tin, out := &in.Items, &out.Items\n\t\t*out = make([]v1.PartialObjectMetadata, len(*in))\n\t\tfor i := range *in {\n\t\t\t(*in)[i].DeepCopyInto(&(*out)[i])\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PartialObjectMetadataList.\nfunc (in *PartialObjectMetadataList) DeepCopy() *PartialObjectMetadataList {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(PartialObjectMetadataList)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *PartialObjectMetadataList) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/apis/meta/v1beta1/zz_generated.defaults.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by defaulter-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// RegisterDefaults adds defaulters functions to the given scheme.\n// Public to allow building arbitrary schemes.\n// All generated defaulters are covering - they call all nested defaulters.\nfunc RegisterDefaults(scheme *runtime.Scheme) error {\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/conversion/converter.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage conversion\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n)\n\ntype typePair struct {\n\tsource reflect.Type\n\tdest   reflect.Type\n}\n\ntype NameFunc func(t reflect.Type) string\n\nvar DefaultNameFunc = func(t reflect.Type) string { return t.Name() }\n\n// ConversionFunc converts the object a into the object b, reusing arrays or objects\n// or pointers if necessary. It should return an error if the object cannot be converted\n// or if some data is invalid. If you do not wish a and b to share fields or nested\n// objects, you must copy a before calling this function.\ntype ConversionFunc func(a, b interface{}, scope Scope) error\n\n// Converter knows how to convert one type to another.\ntype Converter struct {\n\t// Map from the conversion pair to a function which can\n\t// do the conversion.\n\tconversionFuncs          ConversionFuncs\n\tgeneratedConversionFuncs ConversionFuncs\n\n\t// Set of conversions that should be treated as a no-op\n\tignoredUntypedConversions map[typePair]struct{}\n}\n\n// NewConverter creates a new Converter object.\n// Arg NameFunc is just for backward compatibility.\nfunc NewConverter(NameFunc) *Converter {\n\tc := &Converter{\n\t\tconversionFuncs:           NewConversionFuncs(),\n\t\tgeneratedConversionFuncs:  NewConversionFuncs(),\n\t\tignoredUntypedConversions: make(map[typePair]struct{}),\n\t}\n\tc.RegisterUntypedConversionFunc(\n\t\t(*[]byte)(nil), (*[]byte)(nil),\n\t\tfunc(a, b interface{}, s Scope) error {\n\t\t\treturn Convert_Slice_byte_To_Slice_byte(a.(*[]byte), b.(*[]byte), s)\n\t\t},\n\t)\n\treturn c\n}\n\n// WithConversions returns a Converter that is a copy of c but with the additional\n// fns merged on top.\nfunc (c *Converter) WithConversions(fns ConversionFuncs) *Converter {\n\tcopied := *c\n\tcopied.conversionFuncs = c.conversionFuncs.Merge(fns)\n\treturn &copied\n}\n\n// DefaultMeta returns meta for a given type.\nfunc (c *Converter) DefaultMeta(t reflect.Type) *Meta {\n\treturn &Meta{}\n}\n\n// Convert_Slice_byte_To_Slice_byte prevents recursing into every byte\nfunc Convert_Slice_byte_To_Slice_byte(in *[]byte, out *[]byte, s Scope) error {\n\tif *in == nil {\n\t\t*out = nil\n\t\treturn nil\n\t}\n\t*out = make([]byte, len(*in))\n\tcopy(*out, *in)\n\treturn nil\n}\n\n// Scope is passed to conversion funcs to allow them to continue an ongoing conversion.\n// If multiple converters exist in the system, Scope will allow you to use the correct one\n// from a conversion function--that is, the one your conversion function was called by.\ntype Scope interface {\n\t// Call Convert to convert sub-objects. Note that if you call it with your own exact\n\t// parameters, you'll run out of stack space before anything useful happens.\n\tConvert(src, dest interface{}) error\n\n\t// Meta returns any information originally passed to Convert.\n\tMeta() *Meta\n}\n\nfunc NewConversionFuncs() ConversionFuncs {\n\treturn ConversionFuncs{\n\t\tuntyped: make(map[typePair]ConversionFunc),\n\t}\n}\n\ntype ConversionFuncs struct {\n\tuntyped map[typePair]ConversionFunc\n}\n\n// AddUntyped adds the provided conversion function to the lookup table for the types that are\n// supplied as a and b. a and b must be pointers or an error is returned. This method overwrites\n// previously defined functions.\nfunc (c ConversionFuncs) AddUntyped(a, b interface{}, fn ConversionFunc) error {\n\ttA, tB := reflect.TypeOf(a), reflect.TypeOf(b)\n\tif tA.Kind() != reflect.Pointer {\n\t\treturn fmt.Errorf(\"the type %T must be a pointer to register as an untyped conversion\", a)\n\t}\n\tif tB.Kind() != reflect.Pointer {\n\t\treturn fmt.Errorf(\"the type %T must be a pointer to register as an untyped conversion\", b)\n\t}\n\tc.untyped[typePair{tA, tB}] = fn\n\treturn nil\n}\n\n// Merge returns a new ConversionFuncs that contains all conversions from\n// both other and c, with other conversions taking precedence.\nfunc (c ConversionFuncs) Merge(other ConversionFuncs) ConversionFuncs {\n\tmerged := NewConversionFuncs()\n\tfor k, v := range c.untyped {\n\t\tmerged.untyped[k] = v\n\t}\n\tfor k, v := range other.untyped {\n\t\tmerged.untyped[k] = v\n\t}\n\treturn merged\n}\n\n// Meta is supplied by Scheme, when it calls Convert.\ntype Meta struct {\n\t// Context is an optional field that callers may use to pass info to conversion functions.\n\tContext interface{}\n}\n\n// scope contains information about an ongoing conversion.\ntype scope struct {\n\tconverter *Converter\n\tmeta      *Meta\n}\n\n// Convert continues a conversion.\nfunc (s *scope) Convert(src, dest interface{}) error {\n\treturn s.converter.Convert(src, dest, s.meta)\n}\n\n// Meta returns the meta object that was originally passed to Convert.\nfunc (s *scope) Meta() *Meta {\n\treturn s.meta\n}\n\n// RegisterUntypedConversionFunc registers a function that converts between a and b by passing objects of those\n// types to the provided function. The function *must* accept objects of a and b - this machinery will not enforce\n// any other guarantee.\nfunc (c *Converter) RegisterUntypedConversionFunc(a, b interface{}, fn ConversionFunc) error {\n\treturn c.conversionFuncs.AddUntyped(a, b, fn)\n}\n\n// RegisterGeneratedUntypedConversionFunc registers a function that converts between a and b by passing objects of those\n// types to the provided function. The function *must* accept objects of a and b - this machinery will not enforce\n// any other guarantee.\nfunc (c *Converter) RegisterGeneratedUntypedConversionFunc(a, b interface{}, fn ConversionFunc) error {\n\treturn c.generatedConversionFuncs.AddUntyped(a, b, fn)\n}\n\n// RegisterIgnoredConversion registers a \"no-op\" for conversion, where any requested\n// conversion between from and to is ignored.\nfunc (c *Converter) RegisterIgnoredConversion(from, to interface{}) error {\n\ttypeFrom := reflect.TypeOf(from)\n\ttypeTo := reflect.TypeOf(to)\n\tif typeFrom.Kind() != reflect.Pointer {\n\t\treturn fmt.Errorf(\"expected pointer arg for 'from' param 0, got: %v\", typeFrom)\n\t}\n\tif typeTo.Kind() != reflect.Pointer {\n\t\treturn fmt.Errorf(\"expected pointer arg for 'to' param 1, got: %v\", typeTo)\n\t}\n\tc.ignoredUntypedConversions[typePair{typeFrom, typeTo}] = struct{}{}\n\treturn nil\n}\n\n// Convert will translate src to dest if it knows how. Both must be pointers.\n// If no conversion func is registered and the default copying mechanism\n// doesn't work on this type pair, an error will be returned.\n// 'meta' is given to allow you to pass information to conversion functions,\n// it is not used by Convert() other than storing it in the scope.\n// Not safe for objects with cyclic references!\nfunc (c *Converter) Convert(src, dest interface{}, meta *Meta) error {\n\tpair := typePair{reflect.TypeOf(src), reflect.TypeOf(dest)}\n\tscope := &scope{\n\t\tconverter: c,\n\t\tmeta:      meta,\n\t}\n\n\t// ignore conversions of this type\n\tif _, ok := c.ignoredUntypedConversions[pair]; ok {\n\t\treturn nil\n\t}\n\tif fn, ok := c.conversionFuncs.untyped[pair]; ok {\n\t\treturn fn(src, dest, scope)\n\t}\n\tif fn, ok := c.generatedConversionFuncs.untyped[pair]; ok {\n\t\treturn fn(src, dest, scope)\n\t}\n\n\tdv, err := EnforcePtr(dest)\n\tif err != nil {\n\t\treturn err\n\t}\n\tsv, err := EnforcePtr(src)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn fmt.Errorf(\"converting (%s) to (%s): unknown conversion\", sv.Type(), dv.Type())\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/conversion/deep_equal.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage conversion\n\nimport (\n\t\"k8s.io/apimachinery/third_party/forked/golang/reflect\"\n)\n\n// The code for this type must be located in third_party, since it forks from\n// go std lib. But for convenience, we expose the type here, too.\ntype Equalities struct {\n\treflect.Equalities\n}\n\n// For convenience, panics on errors\nfunc EqualitiesOrDie(funcs ...interface{}) Equalities {\n\te := Equalities{reflect.Equalities{}}\n\tif err := e.AddFuncs(funcs...); err != nil {\n\t\tpanic(err)\n\t}\n\treturn e\n}\n\n// Performs a shallow copy of the equalities map\nfunc (e Equalities) Copy() Equalities {\n\tresult := Equalities{reflect.Equalities{}}\n\n\tfor key, value := range e.Equalities {\n\t\tresult.Equalities[key] = value\n\t}\n\n\treturn result\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/conversion/doc.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package conversion provides go object versioning.\n//\n// Specifically, conversion provides a way for you to define multiple versions\n// of the same object. You may write functions which implement conversion logic,\n// but for the fields which did not change, copying is automated. This makes it\n// easy to modify the structures you use in memory without affecting the format\n// you store on disk or respond to in your external API calls.\npackage conversion // import \"k8s.io/apimachinery/pkg/conversion\"\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/conversion/helper.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage conversion\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n)\n\n// EnforcePtr ensures that obj is a pointer of some sort. Returns a reflect.Value\n// of the dereferenced pointer, ensuring that it is settable/addressable.\n// Returns an error if this is not possible.\nfunc EnforcePtr(obj interface{}) (reflect.Value, error) {\n\tv := reflect.ValueOf(obj)\n\tif v.Kind() != reflect.Pointer {\n\t\tif v.Kind() == reflect.Invalid {\n\t\t\treturn reflect.Value{}, fmt.Errorf(\"expected pointer, but got invalid kind\")\n\t\t}\n\t\treturn reflect.Value{}, fmt.Errorf(\"expected pointer, but got %v type\", v.Type())\n\t}\n\tif v.IsNil() {\n\t\treturn reflect.Value{}, fmt.Errorf(\"expected pointer, but got nil\")\n\t}\n\treturn v.Elem(), nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/conversion/queryparams/convert.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage queryparams\n\nimport (\n\t\"fmt\"\n\t\"net/url\"\n\t\"reflect\"\n\t\"strings\"\n)\n\n// Marshaler converts an object to a query parameter string representation\ntype Marshaler interface {\n\tMarshalQueryParameter() (string, error)\n}\n\n// Unmarshaler converts a string representation to an object\ntype Unmarshaler interface {\n\tUnmarshalQueryParameter(string) error\n}\n\nfunc jsonTag(field reflect.StructField) (string, bool) {\n\tstructTag := field.Tag.Get(\"json\")\n\tif len(structTag) == 0 {\n\t\treturn \"\", false\n\t}\n\tparts := strings.Split(structTag, \",\")\n\ttag := parts[0]\n\tif tag == \"-\" {\n\t\ttag = \"\"\n\t}\n\tomitempty := false\n\tparts = parts[1:]\n\tfor _, part := range parts {\n\t\tif part == \"omitempty\" {\n\t\t\tomitempty = true\n\t\t\tbreak\n\t\t}\n\t}\n\treturn tag, omitempty\n}\n\nfunc isPointerKind(kind reflect.Kind) bool {\n\treturn kind == reflect.Pointer\n}\n\nfunc isStructKind(kind reflect.Kind) bool {\n\treturn kind == reflect.Struct\n}\n\nfunc isValueKind(kind reflect.Kind) bool {\n\tswitch kind {\n\tcase reflect.String, reflect.Bool, reflect.Int, reflect.Int8, reflect.Int16,\n\t\treflect.Int32, reflect.Int64, reflect.Uint, reflect.Uint8,\n\t\treflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Float32,\n\t\treflect.Float64, reflect.Complex64, reflect.Complex128:\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\nfunc zeroValue(value reflect.Value) bool {\n\treturn reflect.DeepEqual(reflect.Zero(value.Type()).Interface(), value.Interface())\n}\n\nfunc customMarshalValue(value reflect.Value) (reflect.Value, bool) {\n\t// Return unless we implement a custom query marshaler\n\tif !value.CanInterface() {\n\t\treturn reflect.Value{}, false\n\t}\n\n\tmarshaler, ok := value.Interface().(Marshaler)\n\tif !ok {\n\t\tif !isPointerKind(value.Kind()) && value.CanAddr() {\n\t\t\tmarshaler, ok = value.Addr().Interface().(Marshaler)\n\t\t\tif !ok {\n\t\t\t\treturn reflect.Value{}, false\n\t\t\t}\n\t\t} else {\n\t\t\treturn reflect.Value{}, false\n\t\t}\n\t}\n\n\t// Don't invoke functions on nil pointers\n\t// If the type implements MarshalQueryParameter, AND the tag is not omitempty, AND the value is a nil pointer, \"\" seems like a reasonable response\n\tif isPointerKind(value.Kind()) && zeroValue(value) {\n\t\treturn reflect.ValueOf(\"\"), true\n\t}\n\n\t// Get the custom marshalled value\n\tv, err := marshaler.MarshalQueryParameter()\n\tif err != nil {\n\t\treturn reflect.Value{}, false\n\t}\n\treturn reflect.ValueOf(v), true\n}\n\nfunc addParam(values url.Values, tag string, omitempty bool, value reflect.Value) {\n\tif omitempty && zeroValue(value) {\n\t\treturn\n\t}\n\tval := \"\"\n\tiValue := fmt.Sprintf(\"%v\", value.Interface())\n\n\tif iValue != \"<nil>\" {\n\t\tval = iValue\n\t}\n\tvalues.Add(tag, val)\n}\n\nfunc addListOfParams(values url.Values, tag string, omitempty bool, list reflect.Value) {\n\tfor i := 0; i < list.Len(); i++ {\n\t\taddParam(values, tag, omitempty, list.Index(i))\n\t}\n}\n\n// Convert takes an object and converts it to a url.Values object using JSON tags as\n// parameter names. Only top-level simple values, arrays, and slices are serialized.\n// Embedded structs, maps, etc. will not be serialized.\nfunc Convert(obj interface{}) (url.Values, error) {\n\tresult := url.Values{}\n\tif obj == nil {\n\t\treturn result, nil\n\t}\n\tvar sv reflect.Value\n\tswitch reflect.TypeOf(obj).Kind() {\n\tcase reflect.Pointer, reflect.Interface:\n\t\tsv = reflect.ValueOf(obj).Elem()\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"expecting a pointer or interface\")\n\t}\n\tst := sv.Type()\n\tif !isStructKind(st.Kind()) {\n\t\treturn nil, fmt.Errorf(\"expecting a pointer to a struct\")\n\t}\n\n\t// Check all object fields\n\tconvertStruct(result, st, sv)\n\n\treturn result, nil\n}\n\nfunc convertStruct(result url.Values, st reflect.Type, sv reflect.Value) {\n\tfor i := 0; i < st.NumField(); i++ {\n\t\tfield := sv.Field(i)\n\t\ttag, omitempty := jsonTag(st.Field(i))\n\t\tif len(tag) == 0 {\n\t\t\tcontinue\n\t\t}\n\t\tft := field.Type()\n\n\t\tkind := ft.Kind()\n\t\tif isPointerKind(kind) {\n\t\t\tft = ft.Elem()\n\t\t\tkind = ft.Kind()\n\t\t\tif !field.IsNil() {\n\t\t\t\tfield = reflect.Indirect(field)\n\t\t\t\t// If the field is non-nil, it should be added to params\n\t\t\t\t// and the omitempty should be overwite to false\n\t\t\t\tomitempty = false\n\t\t\t}\n\t\t}\n\n\t\tswitch {\n\t\tcase isValueKind(kind):\n\t\t\taddParam(result, tag, omitempty, field)\n\t\tcase kind == reflect.Array || kind == reflect.Slice:\n\t\t\tif isValueKind(ft.Elem().Kind()) {\n\t\t\t\taddListOfParams(result, tag, omitempty, field)\n\t\t\t}\n\t\tcase isStructKind(kind) && !(zeroValue(field) && omitempty):\n\t\t\tif marshalValue, ok := customMarshalValue(field); ok {\n\t\t\t\taddParam(result, tag, omitempty, marshalValue)\n\t\t\t} else {\n\t\t\t\tconvertStruct(result, ft, field)\n\t\t\t}\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/conversion/queryparams/doc.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package queryparams provides conversion from versioned\n// runtime objects to URL query values\npackage queryparams // import \"k8s.io/apimachinery/pkg/conversion/queryparams\"\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/fields/doc.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package fields implements a simple field system, parsing and matching\n// selectors with sets of fields.\npackage fields // import \"k8s.io/apimachinery/pkg/fields\"\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/fields/fields.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fields\n\nimport (\n\t\"sort\"\n\t\"strings\"\n)\n\n// Fields allows you to present fields independently from their storage.\ntype Fields interface {\n\t// Has returns whether the provided field exists.\n\tHas(field string) (exists bool)\n\n\t// Get returns the value for the provided field.\n\tGet(field string) (value string)\n}\n\n// Set is a map of field:value. It implements Fields.\ntype Set map[string]string\n\n// String returns all fields listed as a human readable string.\n// Conveniently, exactly the format that ParseSelector takes.\nfunc (ls Set) String() string {\n\tselector := make([]string, 0, len(ls))\n\tfor key, value := range ls {\n\t\tselector = append(selector, key+\"=\"+value)\n\t}\n\t// Sort for determinism.\n\tsort.StringSlice(selector).Sort()\n\treturn strings.Join(selector, \",\")\n}\n\n// Has returns whether the provided field exists in the map.\nfunc (ls Set) Has(field string) bool {\n\t_, exists := ls[field]\n\treturn exists\n}\n\n// Get returns the value in the map for the provided field.\nfunc (ls Set) Get(field string) string {\n\treturn ls[field]\n}\n\n// AsSelector converts fields into a selectors.\nfunc (ls Set) AsSelector() Selector {\n\treturn SelectorFromSet(ls)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/fields/requirements.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fields\n\nimport \"k8s.io/apimachinery/pkg/selection\"\n\n// Requirements is AND of all requirements.\ntype Requirements []Requirement\n\n// Requirement contains a field, a value, and an operator that relates the field and value.\n// This is currently for reading internal selection information of field selector.\ntype Requirement struct {\n\tOperator selection.Operator\n\tField    string\n\tValue    string\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/fields/selector.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fields\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"k8s.io/apimachinery/pkg/selection\"\n)\n\n// Selector represents a field selector.\ntype Selector interface {\n\t// Matches returns true if this selector matches the given set of fields.\n\tMatches(Fields) bool\n\n\t// Empty returns true if this selector does not restrict the selection space.\n\tEmpty() bool\n\n\t// RequiresExactMatch allows a caller to introspect whether a given selector\n\t// requires a single specific field to be set, and if so returns the value it\n\t// requires.\n\tRequiresExactMatch(field string) (value string, found bool)\n\n\t// Transform returns a new copy of the selector after TransformFunc has been\n\t// applied to the entire selector, or an error if fn returns an error.\n\t// If for a given requirement both field and value are transformed to empty\n\t// string, the requirement is skipped.\n\tTransform(fn TransformFunc) (Selector, error)\n\n\t// Requirements converts this interface to Requirements to expose\n\t// more detailed selection information.\n\tRequirements() Requirements\n\n\t// String returns a human readable string that represents this selector.\n\tString() string\n\n\t// Make a deep copy of the selector.\n\tDeepCopySelector() Selector\n}\n\ntype nothingSelector struct{}\n\nfunc (n nothingSelector) Matches(_ Fields) bool      { return false }\nfunc (n nothingSelector) Empty() bool                { return false }\nfunc (n nothingSelector) String() string             { return \"\" }\nfunc (n nothingSelector) Requirements() Requirements { return nil }\nfunc (n nothingSelector) DeepCopySelector() Selector { return n }\nfunc (n nothingSelector) RequiresExactMatch(field string) (value string, found bool) {\n\treturn \"\", false\n}\nfunc (n nothingSelector) Transform(fn TransformFunc) (Selector, error) { return n, nil }\n\n// Nothing returns a selector that matches no fields\nfunc Nothing() Selector {\n\treturn nothingSelector{}\n}\n\n// Everything returns a selector that matches all fields.\nfunc Everything() Selector {\n\treturn andTerm{}\n}\n\ntype hasTerm struct {\n\tfield, value string\n}\n\nfunc (t *hasTerm) Matches(ls Fields) bool {\n\treturn ls.Get(t.field) == t.value\n}\n\nfunc (t *hasTerm) Empty() bool {\n\treturn false\n}\n\nfunc (t *hasTerm) RequiresExactMatch(field string) (value string, found bool) {\n\tif t.field == field {\n\t\treturn t.value, true\n\t}\n\treturn \"\", false\n}\n\nfunc (t *hasTerm) Transform(fn TransformFunc) (Selector, error) {\n\tfield, value, err := fn(t.field, t.value)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif len(field) == 0 && len(value) == 0 {\n\t\treturn Everything(), nil\n\t}\n\treturn &hasTerm{field, value}, nil\n}\n\nfunc (t *hasTerm) Requirements() Requirements {\n\treturn []Requirement{{\n\t\tField:    t.field,\n\t\tOperator: selection.Equals,\n\t\tValue:    t.value,\n\t}}\n}\n\nfunc (t *hasTerm) String() string {\n\treturn fmt.Sprintf(\"%v=%v\", t.field, EscapeValue(t.value))\n}\n\nfunc (t *hasTerm) DeepCopySelector() Selector {\n\tif t == nil {\n\t\treturn nil\n\t}\n\tout := new(hasTerm)\n\t*out = *t\n\treturn out\n}\n\ntype notHasTerm struct {\n\tfield, value string\n}\n\nfunc (t *notHasTerm) Matches(ls Fields) bool {\n\treturn ls.Get(t.field) != t.value\n}\n\nfunc (t *notHasTerm) Empty() bool {\n\treturn false\n}\n\nfunc (t *notHasTerm) RequiresExactMatch(field string) (value string, found bool) {\n\treturn \"\", false\n}\n\nfunc (t *notHasTerm) Transform(fn TransformFunc) (Selector, error) {\n\tfield, value, err := fn(t.field, t.value)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif len(field) == 0 && len(value) == 0 {\n\t\treturn Everything(), nil\n\t}\n\treturn &notHasTerm{field, value}, nil\n}\n\nfunc (t *notHasTerm) Requirements() Requirements {\n\treturn []Requirement{{\n\t\tField:    t.field,\n\t\tOperator: selection.NotEquals,\n\t\tValue:    t.value,\n\t}}\n}\n\nfunc (t *notHasTerm) String() string {\n\treturn fmt.Sprintf(\"%v!=%v\", t.field, EscapeValue(t.value))\n}\n\nfunc (t *notHasTerm) DeepCopySelector() Selector {\n\tif t == nil {\n\t\treturn nil\n\t}\n\tout := new(notHasTerm)\n\t*out = *t\n\treturn out\n}\n\ntype andTerm []Selector\n\nfunc (t andTerm) Matches(ls Fields) bool {\n\tfor _, q := range t {\n\t\tif !q.Matches(ls) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc (t andTerm) Empty() bool {\n\tif t == nil {\n\t\treturn true\n\t}\n\tif len([]Selector(t)) == 0 {\n\t\treturn true\n\t}\n\tfor i := range t {\n\t\tif !t[i].Empty() {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc (t andTerm) RequiresExactMatch(field string) (string, bool) {\n\tif t == nil || len([]Selector(t)) == 0 {\n\t\treturn \"\", false\n\t}\n\tfor i := range t {\n\t\tif value, found := t[i].RequiresExactMatch(field); found {\n\t\t\treturn value, found\n\t\t}\n\t}\n\treturn \"\", false\n}\n\nfunc (t andTerm) Transform(fn TransformFunc) (Selector, error) {\n\tnext := make([]Selector, 0, len([]Selector(t)))\n\tfor _, s := range []Selector(t) {\n\t\tn, err := s.Transform(fn)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif !n.Empty() {\n\t\t\tnext = append(next, n)\n\t\t}\n\t}\n\treturn andTerm(next), nil\n}\n\nfunc (t andTerm) Requirements() Requirements {\n\treqs := make([]Requirement, 0, len(t))\n\tfor _, s := range []Selector(t) {\n\t\trs := s.Requirements()\n\t\treqs = append(reqs, rs...)\n\t}\n\treturn reqs\n}\n\nfunc (t andTerm) String() string {\n\tvar terms []string\n\tfor _, q := range t {\n\t\tterms = append(terms, q.String())\n\t}\n\treturn strings.Join(terms, \",\")\n}\n\nfunc (t andTerm) DeepCopySelector() Selector {\n\tif t == nil {\n\t\treturn nil\n\t}\n\tout := make([]Selector, len(t))\n\tfor i := range t {\n\t\tout[i] = t[i].DeepCopySelector()\n\t}\n\treturn andTerm(out)\n}\n\n// SelectorFromSet returns a Selector which will match exactly the given Set. A\n// nil Set is considered equivalent to Everything().\nfunc SelectorFromSet(ls Set) Selector {\n\tif ls == nil {\n\t\treturn Everything()\n\t}\n\titems := make([]Selector, 0, len(ls))\n\tfor field, value := range ls {\n\t\titems = append(items, &hasTerm{field: field, value: value})\n\t}\n\tif len(items) == 1 {\n\t\treturn items[0]\n\t}\n\treturn andTerm(items)\n}\n\n// valueEscaper prefixes \\,= characters with a backslash\nvar valueEscaper = strings.NewReplacer(\n\t// escape \\ characters\n\t`\\`, `\\\\`,\n\t// then escape , and = characters to allow unambiguous parsing of the value in a fieldSelector\n\t`,`, `\\,`,\n\t`=`, `\\=`,\n)\n\n// EscapeValue escapes an arbitrary literal string for use as a fieldSelector value\nfunc EscapeValue(s string) string {\n\treturn valueEscaper.Replace(s)\n}\n\n// InvalidEscapeSequence indicates an error occurred unescaping a field selector\ntype InvalidEscapeSequence struct {\n\tsequence string\n}\n\nfunc (i InvalidEscapeSequence) Error() string {\n\treturn fmt.Sprintf(\"invalid field selector: invalid escape sequence: %s\", i.sequence)\n}\n\n// UnescapedRune indicates an error occurred unescaping a field selector\ntype UnescapedRune struct {\n\tr rune\n}\n\nfunc (i UnescapedRune) Error() string {\n\treturn fmt.Sprintf(\"invalid field selector: unescaped character in value: %v\", i.r)\n}\n\n// UnescapeValue unescapes a fieldSelector value and returns the original literal value.\n// May return the original string if it contains no escaped or special characters.\nfunc UnescapeValue(s string) (string, error) {\n\t// if there's no escaping or special characters, just return to avoid allocation\n\tif !strings.ContainsAny(s, `\\,=`) {\n\t\treturn s, nil\n\t}\n\n\tv := bytes.NewBuffer(make([]byte, 0, len(s)))\n\tinSlash := false\n\tfor _, c := range s {\n\t\tif inSlash {\n\t\t\tswitch c {\n\t\t\tcase '\\\\', ',', '=':\n\t\t\t\t// omit the \\ for recognized escape sequences\n\t\t\t\tv.WriteRune(c)\n\t\t\tdefault:\n\t\t\t\t// error on unrecognized escape sequences\n\t\t\t\treturn \"\", InvalidEscapeSequence{sequence: string([]rune{'\\\\', c})}\n\t\t\t}\n\t\t\tinSlash = false\n\t\t\tcontinue\n\t\t}\n\n\t\tswitch c {\n\t\tcase '\\\\':\n\t\t\tinSlash = true\n\t\tcase ',', '=':\n\t\t\t// unescaped , and = characters are not allowed in field selector values\n\t\t\treturn \"\", UnescapedRune{r: c}\n\t\tdefault:\n\t\t\tv.WriteRune(c)\n\t\t}\n\t}\n\n\t// Ending with a single backslash is an invalid sequence\n\tif inSlash {\n\t\treturn \"\", InvalidEscapeSequence{sequence: \"\\\\\"}\n\t}\n\n\treturn v.String(), nil\n}\n\n// ParseSelectorOrDie takes a string representing a selector and returns an\n// object suitable for matching, or panic when an error occur.\nfunc ParseSelectorOrDie(s string) Selector {\n\tselector, err := ParseSelector(s)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn selector\n}\n\n// ParseSelector takes a string representing a selector and returns an\n// object suitable for matching, or an error.\nfunc ParseSelector(selector string) (Selector, error) {\n\treturn parseSelector(selector,\n\t\tfunc(lhs, rhs string) (newLhs, newRhs string, err error) {\n\t\t\treturn lhs, rhs, nil\n\t\t})\n}\n\n// ParseAndTransformSelector parses the selector and runs them through the given TransformFunc.\nfunc ParseAndTransformSelector(selector string, fn TransformFunc) (Selector, error) {\n\treturn parseSelector(selector, fn)\n}\n\n// TransformFunc transforms selectors.\ntype TransformFunc func(field, value string) (newField, newValue string, err error)\n\n// splitTerms returns the comma-separated terms contained in the given fieldSelector.\n// Backslash-escaped commas are treated as data instead of delimiters, and are included in the returned terms, with the leading backslash preserved.\nfunc splitTerms(fieldSelector string) []string {\n\tif len(fieldSelector) == 0 {\n\t\treturn nil\n\t}\n\n\tterms := make([]string, 0, 1)\n\tstartIndex := 0\n\tinSlash := false\n\tfor i, c := range fieldSelector {\n\t\tswitch {\n\t\tcase inSlash:\n\t\t\tinSlash = false\n\t\tcase c == '\\\\':\n\t\t\tinSlash = true\n\t\tcase c == ',':\n\t\t\tterms = append(terms, fieldSelector[startIndex:i])\n\t\t\tstartIndex = i + 1\n\t\t}\n\t}\n\n\tterms = append(terms, fieldSelector[startIndex:])\n\n\treturn terms\n}\n\nconst (\n\tnotEqualOperator    = \"!=\"\n\tdoubleEqualOperator = \"==\"\n\tequalOperator       = \"=\"\n)\n\n// termOperators holds the recognized operators supported in fieldSelectors.\n// doubleEqualOperator and equal are equivalent, but doubleEqualOperator is checked first\n// to avoid leaving a leading = character on the rhs value.\nvar termOperators = []string{notEqualOperator, doubleEqualOperator, equalOperator}\n\n// splitTerm returns the lhs, operator, and rhs parsed from the given term, along with an indicator of whether the parse was successful.\n// no escaping of special characters is supported in the lhs value, so the first occurrence of a recognized operator is used as the split point.\n// the literal rhs is returned, and the caller is responsible for applying any desired unescaping.\nfunc splitTerm(term string) (lhs, op, rhs string, ok bool) {\n\tfor i := range term {\n\t\tremaining := term[i:]\n\t\tfor _, op := range termOperators {\n\t\t\tif strings.HasPrefix(remaining, op) {\n\t\t\t\treturn term[0:i], op, term[i+len(op):], true\n\t\t\t}\n\t\t}\n\t}\n\treturn \"\", \"\", \"\", false\n}\n\nfunc parseSelector(selector string, fn TransformFunc) (Selector, error) {\n\tparts := splitTerms(selector)\n\tsort.StringSlice(parts).Sort()\n\tvar items []Selector\n\tfor _, part := range parts {\n\t\tif part == \"\" {\n\t\t\tcontinue\n\t\t}\n\t\tlhs, op, rhs, ok := splitTerm(part)\n\t\tif !ok {\n\t\t\treturn nil, fmt.Errorf(\"invalid selector: '%s'; can't understand '%s'\", selector, part)\n\t\t}\n\t\tunescapedRHS, err := UnescapeValue(rhs)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tswitch op {\n\t\tcase notEqualOperator:\n\t\t\titems = append(items, &notHasTerm{field: lhs, value: unescapedRHS})\n\t\tcase doubleEqualOperator:\n\t\t\titems = append(items, &hasTerm{field: lhs, value: unescapedRHS})\n\t\tcase equalOperator:\n\t\t\titems = append(items, &hasTerm{field: lhs, value: unescapedRHS})\n\t\tdefault:\n\t\t\treturn nil, fmt.Errorf(\"invalid selector: '%s'; can't understand '%s'\", selector, part)\n\t\t}\n\t}\n\tif len(items) == 1 {\n\t\treturn items[0].Transform(fn)\n\t}\n\treturn andTerm(items).Transform(fn)\n}\n\n// OneTermEqualSelector returns an object that matches objects where one field/field equals one value.\n// Cannot return an error.\nfunc OneTermEqualSelector(k, v string) Selector {\n\treturn &hasTerm{field: k, value: v}\n}\n\n// OneTermNotEqualSelector returns an object that matches objects where one field/field does not equal one value.\n// Cannot return an error.\nfunc OneTermNotEqualSelector(k, v string) Selector {\n\treturn &notHasTerm{field: k, value: v}\n}\n\n// AndSelectors creates a selector that is the logical AND of all the given selectors\nfunc AndSelectors(selectors ...Selector) Selector {\n\treturn andTerm(selectors)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/labels/doc.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package labels implements a simple label system, parsing and matching\n// selectors with sets of labels.\npackage labels // import \"k8s.io/apimachinery/pkg/labels\"\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/labels/labels.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage labels\n\nimport (\n\t\"fmt\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"k8s.io/apimachinery/pkg/util/validation/field\"\n)\n\n// Labels allows you to present labels independently from their storage.\ntype Labels interface {\n\t// Has returns whether the provided label exists.\n\tHas(label string) (exists bool)\n\n\t// Get returns the value for the provided label.\n\tGet(label string) (value string)\n}\n\n// Set is a map of label:value. It implements Labels.\ntype Set map[string]string\n\n// String returns all labels listed as a human readable string.\n// Conveniently, exactly the format that ParseSelector takes.\nfunc (ls Set) String() string {\n\tselector := make([]string, 0, len(ls))\n\tfor key, value := range ls {\n\t\tselector = append(selector, key+\"=\"+value)\n\t}\n\t// Sort for determinism.\n\tsort.StringSlice(selector).Sort()\n\treturn strings.Join(selector, \",\")\n}\n\n// Has returns whether the provided label exists in the map.\nfunc (ls Set) Has(label string) bool {\n\t_, exists := ls[label]\n\treturn exists\n}\n\n// Get returns the value in the map for the provided label.\nfunc (ls Set) Get(label string) string {\n\treturn ls[label]\n}\n\n// AsSelector converts labels into a selectors. It does not\n// perform any validation, which means the server will reject\n// the request if the Set contains invalid values.\nfunc (ls Set) AsSelector() Selector {\n\treturn SelectorFromSet(ls)\n}\n\n// AsValidatedSelector converts labels into a selectors.\n// The Set is validated client-side, which allows to catch errors early.\nfunc (ls Set) AsValidatedSelector() (Selector, error) {\n\treturn ValidatedSelectorFromSet(ls)\n}\n\n// AsSelectorPreValidated converts labels into a selector, but\n// assumes that labels are already validated and thus doesn't\n// perform any validation.\n// According to our measurements this is significantly faster\n// in codepaths that matter at high scale.\n// Note: this method copies the Set; if the Set is immutable, consider wrapping it with ValidatedSetSelector\n// instead, which does not copy.\nfunc (ls Set) AsSelectorPreValidated() Selector {\n\treturn SelectorFromValidatedSet(ls)\n}\n\n// FormatLabels converts label map into plain string\nfunc FormatLabels(labelMap map[string]string) string {\n\tl := Set(labelMap).String()\n\tif l == \"\" {\n\t\tl = \"<none>\"\n\t}\n\treturn l\n}\n\n// Conflicts takes 2 maps and returns true if there a key match between\n// the maps but the value doesn't match, and returns false in other cases\nfunc Conflicts(labels1, labels2 Set) bool {\n\tsmall := labels1\n\tbig := labels2\n\tif len(labels2) < len(labels1) {\n\t\tsmall = labels2\n\t\tbig = labels1\n\t}\n\n\tfor k, v := range small {\n\t\tif val, match := big[k]; match {\n\t\t\tif val != v {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t}\n\n\treturn false\n}\n\n// Merge combines given maps, and does not check for any conflicts\n// between the maps. In case of conflicts, second map (labels2) wins\nfunc Merge(labels1, labels2 Set) Set {\n\tmergedMap := Set{}\n\n\tfor k, v := range labels1 {\n\t\tmergedMap[k] = v\n\t}\n\tfor k, v := range labels2 {\n\t\tmergedMap[k] = v\n\t}\n\treturn mergedMap\n}\n\n// Equals returns true if the given maps are equal\nfunc Equals(labels1, labels2 Set) bool {\n\tif len(labels1) != len(labels2) {\n\t\treturn false\n\t}\n\n\tfor k, v := range labels1 {\n\t\tvalue, ok := labels2[k]\n\t\tif !ok {\n\t\t\treturn false\n\t\t}\n\t\tif value != v {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// ConvertSelectorToLabelsMap converts selector string to labels map\n// and validates keys and values\nfunc ConvertSelectorToLabelsMap(selector string, opts ...field.PathOption) (Set, error) {\n\tlabelsMap := Set{}\n\n\tif len(selector) == 0 {\n\t\treturn labelsMap, nil\n\t}\n\n\tlabels := strings.Split(selector, \",\")\n\tfor _, label := range labels {\n\t\tl := strings.Split(label, \"=\")\n\t\tif len(l) != 2 {\n\t\t\treturn labelsMap, fmt.Errorf(\"invalid selector: %s\", l)\n\t\t}\n\t\tkey := strings.TrimSpace(l[0])\n\t\tif err := validateLabelKey(key, field.ToPath(opts...)); err != nil {\n\t\t\treturn labelsMap, err\n\t\t}\n\t\tvalue := strings.TrimSpace(l[1])\n\t\tif err := validateLabelValue(key, value, field.ToPath(opts...)); err != nil {\n\t\t\treturn labelsMap, err\n\t\t}\n\t\tlabelsMap[key] = value\n\t}\n\treturn labelsMap, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/labels/selector.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage labels\n\nimport (\n\t\"fmt\"\n\t\"slices\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"k8s.io/apimachinery/pkg/selection\"\n\t\"k8s.io/apimachinery/pkg/util/sets\"\n\t\"k8s.io/apimachinery/pkg/util/validation\"\n\t\"k8s.io/apimachinery/pkg/util/validation/field\"\n\t\"k8s.io/klog/v2\"\n)\n\nvar (\n\tunaryOperators = []string{\n\t\tstring(selection.Exists), string(selection.DoesNotExist),\n\t}\n\tbinaryOperators = []string{\n\t\tstring(selection.In), string(selection.NotIn),\n\t\tstring(selection.Equals), string(selection.DoubleEquals), string(selection.NotEquals),\n\t\tstring(selection.GreaterThan), string(selection.LessThan),\n\t}\n\tvalidRequirementOperators = append(binaryOperators, unaryOperators...)\n)\n\n// Requirements is AND of all requirements.\ntype Requirements []Requirement\n\nfunc (r Requirements) String() string {\n\tvar sb strings.Builder\n\n\tfor i, requirement := range r {\n\t\tif i > 0 {\n\t\t\tsb.WriteString(\", \")\n\t\t}\n\t\tsb.WriteString(requirement.String())\n\t}\n\n\treturn sb.String()\n}\n\n// Selector represents a label selector.\ntype Selector interface {\n\t// Matches returns true if this selector matches the given set of labels.\n\tMatches(Labels) bool\n\n\t// Empty returns true if this selector does not restrict the selection space.\n\tEmpty() bool\n\n\t// String returns a human readable string that represents this selector.\n\tString() string\n\n\t// Add adds requirements to the Selector\n\tAdd(r ...Requirement) Selector\n\n\t// Requirements converts this interface into Requirements to expose\n\t// more detailed selection information.\n\t// If there are querying parameters, it will return converted requirements and selectable=true.\n\t// If this selector doesn't want to select anything, it will return selectable=false.\n\tRequirements() (requirements Requirements, selectable bool)\n\n\t// Make a deep copy of the selector.\n\tDeepCopySelector() Selector\n\n\t// RequiresExactMatch allows a caller to introspect whether a given selector\n\t// requires a single specific label to be set, and if so returns the value it\n\t// requires.\n\tRequiresExactMatch(label string) (value string, found bool)\n}\n\n// Sharing this saves 1 alloc per use; this is safe because it's immutable.\nvar sharedEverythingSelector Selector = internalSelector{}\n\n// Everything returns a selector that matches all labels.\nfunc Everything() Selector {\n\treturn sharedEverythingSelector\n}\n\ntype nothingSelector struct{}\n\nfunc (n nothingSelector) Matches(_ Labels) bool              { return false }\nfunc (n nothingSelector) Empty() bool                        { return false }\nfunc (n nothingSelector) String() string                     { return \"\" }\nfunc (n nothingSelector) Add(_ ...Requirement) Selector      { return n }\nfunc (n nothingSelector) Requirements() (Requirements, bool) { return nil, false }\nfunc (n nothingSelector) DeepCopySelector() Selector         { return n }\nfunc (n nothingSelector) RequiresExactMatch(label string) (value string, found bool) {\n\treturn \"\", false\n}\n\n// Sharing this saves 1 alloc per use; this is safe because it's immutable.\nvar sharedNothingSelector Selector = nothingSelector{}\n\n// Nothing returns a selector that matches no labels\nfunc Nothing() Selector {\n\treturn sharedNothingSelector\n}\n\n// NewSelector returns a nil selector\nfunc NewSelector() Selector {\n\treturn internalSelector(nil)\n}\n\ntype internalSelector []Requirement\n\nfunc (s internalSelector) DeepCopy() internalSelector {\n\tif s == nil {\n\t\treturn nil\n\t}\n\tresult := make([]Requirement, len(s))\n\tfor i := range s {\n\t\ts[i].DeepCopyInto(&result[i])\n\t}\n\treturn result\n}\n\nfunc (s internalSelector) DeepCopySelector() Selector {\n\treturn s.DeepCopy()\n}\n\n// ByKey sorts requirements by key to obtain deterministic parser\ntype ByKey []Requirement\n\nfunc (a ByKey) Len() int { return len(a) }\n\nfunc (a ByKey) Swap(i, j int) { a[i], a[j] = a[j], a[i] }\n\nfunc (a ByKey) Less(i, j int) bool { return a[i].key < a[j].key }\n\n// Requirement contains values, a key, and an operator that relates the key and values.\n// The zero value of Requirement is invalid.\n// Requirement implements both set based match and exact match\n// Requirement should be initialized via NewRequirement constructor for creating a valid Requirement.\n// +k8s:deepcopy-gen=true\ntype Requirement struct {\n\tkey      string\n\toperator selection.Operator\n\t// In huge majority of cases we have at most one value here.\n\t// It is generally faster to operate on a single-element slice\n\t// than on a single-element map, so we have a slice here.\n\tstrValues []string\n}\n\n// NewRequirement is the constructor for a Requirement.\n// If any of these rules is violated, an error is returned:\n//  1. The operator can only be In, NotIn, Equals, DoubleEquals, Gt, Lt, NotEquals, Exists, or DoesNotExist.\n//  2. If the operator is In or NotIn, the values set must be non-empty.\n//  3. If the operator is Equals, DoubleEquals, or NotEquals, the values set must contain one value.\n//  4. If the operator is Exists or DoesNotExist, the value set must be empty.\n//  5. If the operator is Gt or Lt, the values set must contain only one value, which will be interpreted as an integer.\n//  6. The key is invalid due to its length, or sequence of characters. See validateLabelKey for more details.\n//\n// The empty string is a valid value in the input values set.\n// Returned error, if not nil, is guaranteed to be an aggregated field.ErrorList\nfunc NewRequirement(key string, op selection.Operator, vals []string, opts ...field.PathOption) (*Requirement, error) {\n\tvar allErrs field.ErrorList\n\tpath := field.ToPath(opts...)\n\tif err := validateLabelKey(key, path.Child(\"key\")); err != nil {\n\t\tallErrs = append(allErrs, err)\n\t}\n\n\tvaluePath := path.Child(\"values\")\n\tswitch op {\n\tcase selection.In, selection.NotIn:\n\t\tif len(vals) == 0 {\n\t\t\tallErrs = append(allErrs, field.Invalid(valuePath, vals, \"for 'in', 'notin' operators, values set can't be empty\"))\n\t\t}\n\tcase selection.Equals, selection.DoubleEquals, selection.NotEquals:\n\t\tif len(vals) != 1 {\n\t\t\tallErrs = append(allErrs, field.Invalid(valuePath, vals, \"exact-match compatibility requires one single value\"))\n\t\t}\n\tcase selection.Exists, selection.DoesNotExist:\n\t\tif len(vals) != 0 {\n\t\t\tallErrs = append(allErrs, field.Invalid(valuePath, vals, \"values set must be empty for exists and does not exist\"))\n\t\t}\n\tcase selection.GreaterThan, selection.LessThan:\n\t\tif len(vals) != 1 {\n\t\t\tallErrs = append(allErrs, field.Invalid(valuePath, vals, \"for 'Gt', 'Lt' operators, exactly one value is required\"))\n\t\t}\n\t\tfor i := range vals {\n\t\t\tif _, err := strconv.ParseInt(vals[i], 10, 64); err != nil {\n\t\t\t\tallErrs = append(allErrs, field.Invalid(valuePath.Index(i), vals[i], \"for 'Gt', 'Lt' operators, the value must be an integer\"))\n\t\t\t}\n\t\t}\n\tdefault:\n\t\tallErrs = append(allErrs, field.NotSupported(path.Child(\"operator\"), op, validRequirementOperators))\n\t}\n\n\tfor i := range vals {\n\t\tif err := validateLabelValue(key, vals[i], valuePath.Index(i)); err != nil {\n\t\t\tallErrs = append(allErrs, err)\n\t\t}\n\t}\n\treturn &Requirement{key: key, operator: op, strValues: vals}, allErrs.ToAggregate()\n}\n\nfunc (r *Requirement) hasValue(value string) bool {\n\tfor i := range r.strValues {\n\t\tif r.strValues[i] == value {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// Matches returns true if the Requirement matches the input Labels.\n// There is a match in the following cases:\n//  1. The operator is Exists and Labels has the Requirement's key.\n//  2. The operator is In, Labels has the Requirement's key and Labels'\n//     value for that key is in Requirement's value set.\n//  3. The operator is NotIn, Labels has the Requirement's key and\n//     Labels' value for that key is not in Requirement's value set.\n//  4. The operator is DoesNotExist or NotIn and Labels does not have the\n//     Requirement's key.\n//  5. The operator is GreaterThanOperator or LessThanOperator, and Labels has\n//     the Requirement's key and the corresponding value satisfies mathematical inequality.\nfunc (r *Requirement) Matches(ls Labels) bool {\n\tswitch r.operator {\n\tcase selection.In, selection.Equals, selection.DoubleEquals:\n\t\tif !ls.Has(r.key) {\n\t\t\treturn false\n\t\t}\n\t\treturn r.hasValue(ls.Get(r.key))\n\tcase selection.NotIn, selection.NotEquals:\n\t\tif !ls.Has(r.key) {\n\t\t\treturn true\n\t\t}\n\t\treturn !r.hasValue(ls.Get(r.key))\n\tcase selection.Exists:\n\t\treturn ls.Has(r.key)\n\tcase selection.DoesNotExist:\n\t\treturn !ls.Has(r.key)\n\tcase selection.GreaterThan, selection.LessThan:\n\t\tif !ls.Has(r.key) {\n\t\t\treturn false\n\t\t}\n\t\tlsValue, err := strconv.ParseInt(ls.Get(r.key), 10, 64)\n\t\tif err != nil {\n\t\t\tklog.V(10).Infof(\"ParseInt failed for value %+v in label %+v, %+v\", ls.Get(r.key), ls, err)\n\t\t\treturn false\n\t\t}\n\n\t\t// There should be only one strValue in r.strValues, and can be converted to an integer.\n\t\tif len(r.strValues) != 1 {\n\t\t\tklog.V(10).Infof(\"Invalid values count %+v of requirement %#v, for 'Gt', 'Lt' operators, exactly one value is required\", len(r.strValues), r)\n\t\t\treturn false\n\t\t}\n\n\t\tvar rValue int64\n\t\tfor i := range r.strValues {\n\t\t\trValue, err = strconv.ParseInt(r.strValues[i], 10, 64)\n\t\t\tif err != nil {\n\t\t\t\tklog.V(10).Infof(\"ParseInt failed for value %+v in requirement %#v, for 'Gt', 'Lt' operators, the value must be an integer\", r.strValues[i], r)\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn (r.operator == selection.GreaterThan && lsValue > rValue) || (r.operator == selection.LessThan && lsValue < rValue)\n\tdefault:\n\t\treturn false\n\t}\n}\n\n// Key returns requirement key\nfunc (r *Requirement) Key() string {\n\treturn r.key\n}\n\n// Operator returns requirement operator\nfunc (r *Requirement) Operator() selection.Operator {\n\treturn r.operator\n}\n\n// Values returns requirement values\nfunc (r *Requirement) Values() sets.String {\n\tret := sets.String{}\n\tfor i := range r.strValues {\n\t\tret.Insert(r.strValues[i])\n\t}\n\treturn ret\n}\n\n// ValuesUnsorted returns a copy of requirement values as passed to NewRequirement without sorting.\nfunc (r *Requirement) ValuesUnsorted() []string {\n\tret := make([]string, 0, len(r.strValues))\n\tret = append(ret, r.strValues...)\n\treturn ret\n}\n\n// Equal checks the equality of requirement.\nfunc (r Requirement) Equal(x Requirement) bool {\n\tif r.key != x.key {\n\t\treturn false\n\t}\n\tif r.operator != x.operator {\n\t\treturn false\n\t}\n\treturn slices.Equal(r.strValues, x.strValues)\n}\n\n// Empty returns true if the internalSelector doesn't restrict selection space\nfunc (s internalSelector) Empty() bool {\n\tif s == nil {\n\t\treturn true\n\t}\n\treturn len(s) == 0\n}\n\n// String returns a human-readable string that represents this\n// Requirement. If called on an invalid Requirement, an error is\n// returned. See NewRequirement for creating a valid Requirement.\nfunc (r *Requirement) String() string {\n\tvar sb strings.Builder\n\tsb.Grow(\n\t\t// length of r.key\n\t\tlen(r.key) +\n\t\t\t// length of 'r.operator' + 2 spaces for the worst case ('in' and 'notin')\n\t\t\tlen(r.operator) + 2 +\n\t\t\t// length of 'r.strValues' slice times. Heuristically 5 chars per word\n\t\t\t+5*len(r.strValues))\n\tif r.operator == selection.DoesNotExist {\n\t\tsb.WriteString(\"!\")\n\t}\n\tsb.WriteString(r.key)\n\n\tswitch r.operator {\n\tcase selection.Equals:\n\t\tsb.WriteString(\"=\")\n\tcase selection.DoubleEquals:\n\t\tsb.WriteString(\"==\")\n\tcase selection.NotEquals:\n\t\tsb.WriteString(\"!=\")\n\tcase selection.In:\n\t\tsb.WriteString(\" in \")\n\tcase selection.NotIn:\n\t\tsb.WriteString(\" notin \")\n\tcase selection.GreaterThan:\n\t\tsb.WriteString(\">\")\n\tcase selection.LessThan:\n\t\tsb.WriteString(\"<\")\n\tcase selection.Exists, selection.DoesNotExist:\n\t\treturn sb.String()\n\t}\n\n\tswitch r.operator {\n\tcase selection.In, selection.NotIn:\n\t\tsb.WriteString(\"(\")\n\t}\n\tif len(r.strValues) == 1 {\n\t\tsb.WriteString(r.strValues[0])\n\t} else { // only > 1 since == 0 prohibited by NewRequirement\n\t\t// normalizes value order on output, without mutating the in-memory selector representation\n\t\t// also avoids normalization when it is not required, and ensures we do not mutate shared data\n\t\tsb.WriteString(strings.Join(safeSort(r.strValues), \",\"))\n\t}\n\n\tswitch r.operator {\n\tcase selection.In, selection.NotIn:\n\t\tsb.WriteString(\")\")\n\t}\n\treturn sb.String()\n}\n\n// safeSort sorts input strings without modification\nfunc safeSort(in []string) []string {\n\tif sort.StringsAreSorted(in) {\n\t\treturn in\n\t}\n\tout := make([]string, len(in))\n\tcopy(out, in)\n\tsort.Strings(out)\n\treturn out\n}\n\n// Add adds requirements to the selector. It copies the current selector returning a new one\nfunc (s internalSelector) Add(reqs ...Requirement) Selector {\n\tret := make(internalSelector, 0, len(s)+len(reqs))\n\tret = append(ret, s...)\n\tret = append(ret, reqs...)\n\tsort.Sort(ByKey(ret))\n\treturn ret\n}\n\n// Matches for a internalSelector returns true if all\n// its Requirements match the input Labels. If any\n// Requirement does not match, false is returned.\nfunc (s internalSelector) Matches(l Labels) bool {\n\tfor ix := range s {\n\t\tif matches := s[ix].Matches(l); !matches {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc (s internalSelector) Requirements() (Requirements, bool) { return Requirements(s), true }\n\n// String returns a comma-separated string of all\n// the internalSelector Requirements' human-readable strings.\nfunc (s internalSelector) String() string {\n\tvar reqs []string\n\tfor ix := range s {\n\t\treqs = append(reqs, s[ix].String())\n\t}\n\treturn strings.Join(reqs, \",\")\n}\n\n// RequiresExactMatch introspects whether a given selector requires a single specific field\n// to be set, and if so returns the value it requires.\nfunc (s internalSelector) RequiresExactMatch(label string) (value string, found bool) {\n\tfor ix := range s {\n\t\tif s[ix].key == label {\n\t\t\tswitch s[ix].operator {\n\t\t\tcase selection.Equals, selection.DoubleEquals, selection.In:\n\t\t\t\tif len(s[ix].strValues) == 1 {\n\t\t\t\t\treturn s[ix].strValues[0], true\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn \"\", false\n\t\t}\n\t}\n\treturn \"\", false\n}\n\n// Token represents constant definition for lexer token\ntype Token int\n\nconst (\n\t// ErrorToken represents scan error\n\tErrorToken Token = iota\n\t// EndOfStringToken represents end of string\n\tEndOfStringToken\n\t// ClosedParToken represents close parenthesis\n\tClosedParToken\n\t// CommaToken represents the comma\n\tCommaToken\n\t// DoesNotExistToken represents logic not\n\tDoesNotExistToken\n\t// DoubleEqualsToken represents double equals\n\tDoubleEqualsToken\n\t// EqualsToken represents equal\n\tEqualsToken\n\t// GreaterThanToken represents greater than\n\tGreaterThanToken\n\t// IdentifierToken represents identifier, e.g. keys and values\n\tIdentifierToken\n\t// InToken represents in\n\tInToken\n\t// LessThanToken represents less than\n\tLessThanToken\n\t// NotEqualsToken represents not equal\n\tNotEqualsToken\n\t// NotInToken represents not in\n\tNotInToken\n\t// OpenParToken represents open parenthesis\n\tOpenParToken\n)\n\n// string2token contains the mapping between lexer Token and token literal\n// (except IdentifierToken, EndOfStringToken and ErrorToken since it makes no sense)\nvar string2token = map[string]Token{\n\t\")\":     ClosedParToken,\n\t\",\":     CommaToken,\n\t\"!\":     DoesNotExistToken,\n\t\"==\":    DoubleEqualsToken,\n\t\"=\":     EqualsToken,\n\t\">\":     GreaterThanToken,\n\t\"in\":    InToken,\n\t\"<\":     LessThanToken,\n\t\"!=\":    NotEqualsToken,\n\t\"notin\": NotInToken,\n\t\"(\":     OpenParToken,\n}\n\n// ScannedItem contains the Token and the literal produced by the lexer.\ntype ScannedItem struct {\n\ttok     Token\n\tliteral string\n}\n\n// isWhitespace returns true if the rune is a space, tab, or newline.\nfunc isWhitespace(ch byte) bool {\n\treturn ch == ' ' || ch == '\\t' || ch == '\\r' || ch == '\\n'\n}\n\n// isSpecialSymbol detects if the character ch can be an operator\nfunc isSpecialSymbol(ch byte) bool {\n\tswitch ch {\n\tcase '=', '!', '(', ')', ',', '>', '<':\n\t\treturn true\n\t}\n\treturn false\n}\n\n// Lexer represents the Lexer struct for label selector.\n// It contains necessary informationt to tokenize the input string\ntype Lexer struct {\n\t// s stores the string to be tokenized\n\ts string\n\t// pos is the position currently tokenized\n\tpos int\n}\n\n// read returns the character currently lexed\n// increment the position and check the buffer overflow\nfunc (l *Lexer) read() (b byte) {\n\tb = 0\n\tif l.pos < len(l.s) {\n\t\tb = l.s[l.pos]\n\t\tl.pos++\n\t}\n\treturn b\n}\n\n// unread 'undoes' the last read character\nfunc (l *Lexer) unread() {\n\tl.pos--\n}\n\n// scanIDOrKeyword scans string to recognize literal token (for example 'in') or an identifier.\nfunc (l *Lexer) scanIDOrKeyword() (tok Token, lit string) {\n\tvar buffer []byte\nIdentifierLoop:\n\tfor {\n\t\tswitch ch := l.read(); {\n\t\tcase ch == 0:\n\t\t\tbreak IdentifierLoop\n\t\tcase isSpecialSymbol(ch) || isWhitespace(ch):\n\t\t\tl.unread()\n\t\t\tbreak IdentifierLoop\n\t\tdefault:\n\t\t\tbuffer = append(buffer, ch)\n\t\t}\n\t}\n\ts := string(buffer)\n\tif val, ok := string2token[s]; ok { // is a literal token?\n\t\treturn val, s\n\t}\n\treturn IdentifierToken, s // otherwise is an identifier\n}\n\n// scanSpecialSymbol scans string starting with special symbol.\n// special symbol identify non literal operators. \"!=\", \"==\", \"=\"\nfunc (l *Lexer) scanSpecialSymbol() (Token, string) {\n\tlastScannedItem := ScannedItem{}\n\tvar buffer []byte\nSpecialSymbolLoop:\n\tfor {\n\t\tswitch ch := l.read(); {\n\t\tcase ch == 0:\n\t\t\tbreak SpecialSymbolLoop\n\t\tcase isSpecialSymbol(ch):\n\t\t\tbuffer = append(buffer, ch)\n\t\t\tif token, ok := string2token[string(buffer)]; ok {\n\t\t\t\tlastScannedItem = ScannedItem{tok: token, literal: string(buffer)}\n\t\t\t} else if lastScannedItem.tok != 0 {\n\t\t\t\tl.unread()\n\t\t\t\tbreak SpecialSymbolLoop\n\t\t\t}\n\t\tdefault:\n\t\t\tl.unread()\n\t\t\tbreak SpecialSymbolLoop\n\t\t}\n\t}\n\tif lastScannedItem.tok == 0 {\n\t\treturn ErrorToken, fmt.Sprintf(\"error expected: keyword found '%s'\", buffer)\n\t}\n\treturn lastScannedItem.tok, lastScannedItem.literal\n}\n\n// skipWhiteSpaces consumes all blank characters\n// returning the first non blank character\nfunc (l *Lexer) skipWhiteSpaces(ch byte) byte {\n\tfor {\n\t\tif !isWhitespace(ch) {\n\t\t\treturn ch\n\t\t}\n\t\tch = l.read()\n\t}\n}\n\n// Lex returns a pair of Token and the literal\n// literal is meaningfull only for IdentifierToken token\nfunc (l *Lexer) Lex() (tok Token, lit string) {\n\tswitch ch := l.skipWhiteSpaces(l.read()); {\n\tcase ch == 0:\n\t\treturn EndOfStringToken, \"\"\n\tcase isSpecialSymbol(ch):\n\t\tl.unread()\n\t\treturn l.scanSpecialSymbol()\n\tdefault:\n\t\tl.unread()\n\t\treturn l.scanIDOrKeyword()\n\t}\n}\n\n// Parser data structure contains the label selector parser data structure\ntype Parser struct {\n\tl            *Lexer\n\tscannedItems []ScannedItem\n\tposition     int\n\tpath         *field.Path\n}\n\n// ParserContext represents context during parsing:\n// some literal for example 'in' and 'notin' can be\n// recognized as operator for example 'x in (a)' but\n// it can be recognized as value for example 'value in (in)'\ntype ParserContext int\n\nconst (\n\t// KeyAndOperator represents key and operator\n\tKeyAndOperator ParserContext = iota\n\t// Values represents values\n\tValues\n)\n\n// lookahead func returns the current token and string. No increment of current position\nfunc (p *Parser) lookahead(context ParserContext) (Token, string) {\n\ttok, lit := p.scannedItems[p.position].tok, p.scannedItems[p.position].literal\n\tif context == Values {\n\t\tswitch tok {\n\t\tcase InToken, NotInToken:\n\t\t\ttok = IdentifierToken\n\t\t}\n\t}\n\treturn tok, lit\n}\n\n// consume returns current token and string. Increments the position\nfunc (p *Parser) consume(context ParserContext) (Token, string) {\n\tp.position++\n\ttok, lit := p.scannedItems[p.position-1].tok, p.scannedItems[p.position-1].literal\n\tif context == Values {\n\t\tswitch tok {\n\t\tcase InToken, NotInToken:\n\t\t\ttok = IdentifierToken\n\t\t}\n\t}\n\treturn tok, lit\n}\n\n// scan runs through the input string and stores the ScannedItem in an array\n// Parser can now lookahead and consume the tokens\nfunc (p *Parser) scan() {\n\tfor {\n\t\ttoken, literal := p.l.Lex()\n\t\tp.scannedItems = append(p.scannedItems, ScannedItem{token, literal})\n\t\tif token == EndOfStringToken {\n\t\t\tbreak\n\t\t}\n\t}\n}\n\n// parse runs the left recursive descending algorithm\n// on input string. It returns a list of Requirement objects.\nfunc (p *Parser) parse() (internalSelector, error) {\n\tp.scan() // init scannedItems\n\n\tvar requirements internalSelector\n\tfor {\n\t\ttok, lit := p.lookahead(Values)\n\t\tswitch tok {\n\t\tcase IdentifierToken, DoesNotExistToken:\n\t\t\tr, err := p.parseRequirement()\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"unable to parse requirement: %v\", err)\n\t\t\t}\n\t\t\trequirements = append(requirements, *r)\n\t\t\tt, l := p.consume(Values)\n\t\t\tswitch t {\n\t\t\tcase EndOfStringToken:\n\t\t\t\treturn requirements, nil\n\t\t\tcase CommaToken:\n\t\t\t\tt2, l2 := p.lookahead(Values)\n\t\t\t\tif t2 != IdentifierToken && t2 != DoesNotExistToken {\n\t\t\t\t\treturn nil, fmt.Errorf(\"found '%s', expected: identifier after ','\", l2)\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\treturn nil, fmt.Errorf(\"found '%s', expected: ',' or 'end of string'\", l)\n\t\t\t}\n\t\tcase EndOfStringToken:\n\t\t\treturn requirements, nil\n\t\tdefault:\n\t\t\treturn nil, fmt.Errorf(\"found '%s', expected: !, identifier, or 'end of string'\", lit)\n\t\t}\n\t}\n}\n\nfunc (p *Parser) parseRequirement() (*Requirement, error) {\n\tkey, operator, err := p.parseKeyAndInferOperator()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif operator == selection.Exists || operator == selection.DoesNotExist { // operator found lookahead set checked\n\t\treturn NewRequirement(key, operator, []string{}, field.WithPath(p.path))\n\t}\n\toperator, err = p.parseOperator()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tvar values sets.String\n\tswitch operator {\n\tcase selection.In, selection.NotIn:\n\t\tvalues, err = p.parseValues()\n\tcase selection.Equals, selection.DoubleEquals, selection.NotEquals, selection.GreaterThan, selection.LessThan:\n\t\tvalues, err = p.parseExactValue()\n\t}\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewRequirement(key, operator, values.List(), field.WithPath(p.path))\n\n}\n\n// parseKeyAndInferOperator parses literals.\n// in case of no operator '!, in, notin, ==, =, !=' are found\n// the 'exists' operator is inferred\nfunc (p *Parser) parseKeyAndInferOperator() (string, selection.Operator, error) {\n\tvar operator selection.Operator\n\ttok, literal := p.consume(Values)\n\tif tok == DoesNotExistToken {\n\t\toperator = selection.DoesNotExist\n\t\ttok, literal = p.consume(Values)\n\t}\n\tif tok != IdentifierToken {\n\t\terr := fmt.Errorf(\"found '%s', expected: identifier\", literal)\n\t\treturn \"\", \"\", err\n\t}\n\tif err := validateLabelKey(literal, p.path); err != nil {\n\t\treturn \"\", \"\", err\n\t}\n\tif t, _ := p.lookahead(Values); t == EndOfStringToken || t == CommaToken {\n\t\tif operator != selection.DoesNotExist {\n\t\t\toperator = selection.Exists\n\t\t}\n\t}\n\treturn literal, operator, nil\n}\n\n// parseOperator returns operator and eventually matchType\n// matchType can be exact\nfunc (p *Parser) parseOperator() (op selection.Operator, err error) {\n\ttok, lit := p.consume(KeyAndOperator)\n\tswitch tok {\n\t// DoesNotExistToken shouldn't be here because it's a unary operator, not a binary operator\n\tcase InToken:\n\t\top = selection.In\n\tcase EqualsToken:\n\t\top = selection.Equals\n\tcase DoubleEqualsToken:\n\t\top = selection.DoubleEquals\n\tcase GreaterThanToken:\n\t\top = selection.GreaterThan\n\tcase LessThanToken:\n\t\top = selection.LessThan\n\tcase NotInToken:\n\t\top = selection.NotIn\n\tcase NotEqualsToken:\n\t\top = selection.NotEquals\n\tdefault:\n\t\treturn \"\", fmt.Errorf(\"found '%s', expected: %v\", lit, strings.Join(binaryOperators, \", \"))\n\t}\n\treturn op, nil\n}\n\n// parseValues parses the values for set based matching (x,y,z)\nfunc (p *Parser) parseValues() (sets.String, error) {\n\ttok, lit := p.consume(Values)\n\tif tok != OpenParToken {\n\t\treturn nil, fmt.Errorf(\"found '%s' expected: '('\", lit)\n\t}\n\ttok, lit = p.lookahead(Values)\n\tswitch tok {\n\tcase IdentifierToken, CommaToken:\n\t\ts, err := p.parseIdentifiersList() // handles general cases\n\t\tif err != nil {\n\t\t\treturn s, err\n\t\t}\n\t\tif tok, _ = p.consume(Values); tok != ClosedParToken {\n\t\t\treturn nil, fmt.Errorf(\"found '%s', expected: ')'\", lit)\n\t\t}\n\t\treturn s, nil\n\tcase ClosedParToken: // handles \"()\"\n\t\tp.consume(Values)\n\t\treturn sets.NewString(\"\"), nil\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"found '%s', expected: ',', ')' or identifier\", lit)\n\t}\n}\n\n// parseIdentifiersList parses a (possibly empty) list of\n// of comma separated (possibly empty) identifiers\nfunc (p *Parser) parseIdentifiersList() (sets.String, error) {\n\ts := sets.NewString()\n\tfor {\n\t\ttok, lit := p.consume(Values)\n\t\tswitch tok {\n\t\tcase IdentifierToken:\n\t\t\ts.Insert(lit)\n\t\t\ttok2, lit2 := p.lookahead(Values)\n\t\t\tswitch tok2 {\n\t\t\tcase CommaToken:\n\t\t\t\tcontinue\n\t\t\tcase ClosedParToken:\n\t\t\t\treturn s, nil\n\t\t\tdefault:\n\t\t\t\treturn nil, fmt.Errorf(\"found '%s', expected: ',' or ')'\", lit2)\n\t\t\t}\n\t\tcase CommaToken: // handled here since we can have \"(,\"\n\t\t\tif s.Len() == 0 {\n\t\t\t\ts.Insert(\"\") // to handle (,\n\t\t\t}\n\t\t\ttok2, _ := p.lookahead(Values)\n\t\t\tif tok2 == ClosedParToken {\n\t\t\t\ts.Insert(\"\") // to handle ,)  Double \"\" removed by StringSet\n\t\t\t\treturn s, nil\n\t\t\t}\n\t\t\tif tok2 == CommaToken {\n\t\t\t\tp.consume(Values)\n\t\t\t\ts.Insert(\"\") // to handle ,, Double \"\" removed by StringSet\n\t\t\t}\n\t\tdefault: // it can be operator\n\t\t\treturn s, fmt.Errorf(\"found '%s', expected: ',', or identifier\", lit)\n\t\t}\n\t}\n}\n\n// parseExactValue parses the only value for exact match style\nfunc (p *Parser) parseExactValue() (sets.String, error) {\n\ts := sets.NewString()\n\ttok, _ := p.lookahead(Values)\n\tif tok == EndOfStringToken || tok == CommaToken {\n\t\ts.Insert(\"\")\n\t\treturn s, nil\n\t}\n\ttok, lit := p.consume(Values)\n\tif tok == IdentifierToken {\n\t\ts.Insert(lit)\n\t\treturn s, nil\n\t}\n\treturn nil, fmt.Errorf(\"found '%s', expected: identifier\", lit)\n}\n\n// Parse takes a string representing a selector and returns a selector\n// object, or an error. This parsing function differs from ParseSelector\n// as they parse different selectors with different syntaxes.\n// The input will cause an error if it does not follow this form:\n//\n//\t<selector-syntax>         ::= <requirement> | <requirement> \",\" <selector-syntax>\n//\t<requirement>             ::= [!] KEY [ <set-based-restriction> | <exact-match-restriction> ]\n//\t<set-based-restriction>   ::= \"\" | <inclusion-exclusion> <value-set>\n//\t<inclusion-exclusion>     ::= <inclusion> | <exclusion>\n//\t<exclusion>               ::= \"notin\"\n//\t<inclusion>               ::= \"in\"\n//\t<value-set>               ::= \"(\" <values> \")\"\n//\t<values>                  ::= VALUE | VALUE \",\" <values>\n//\t<exact-match-restriction> ::= [\"=\"|\"==\"|\"!=\"] VALUE\n//\n// KEY is a sequence of one or more characters following [ DNS_SUBDOMAIN \"/\" ] DNS_LABEL. Max length is 63 characters.\n// VALUE is a sequence of zero or more characters \"([A-Za-z0-9_-\\.])\". Max length is 63 characters.\n// Delimiter is white space: (' ', '\\t')\n// Example of valid syntax:\n//\n//\t\"x in (foo,,baz),y,z notin ()\"\n//\n// Note:\n//  1. Inclusion - \" in \" - denotes that the KEY exists and is equal to any of the\n//     VALUEs in its requirement\n//  2. Exclusion - \" notin \" - denotes that the KEY is not equal to any\n//     of the VALUEs in its requirement or does not exist\n//  3. The empty string is a valid VALUE\n//  4. A requirement with just a KEY - as in \"y\" above - denotes that\n//     the KEY exists and can be any VALUE.\n//  5. A requirement with just !KEY requires that the KEY not exist.\nfunc Parse(selector string, opts ...field.PathOption) (Selector, error) {\n\tparsedSelector, err := parse(selector, field.ToPath(opts...))\n\tif err == nil {\n\t\treturn parsedSelector, nil\n\t}\n\treturn nil, err\n}\n\n// parse parses the string representation of the selector and returns the internalSelector struct.\n// The callers of this method can then decide how to return the internalSelector struct to their\n// callers. This function has two callers now, one returns a Selector interface and the other\n// returns a list of requirements.\nfunc parse(selector string, path *field.Path) (internalSelector, error) {\n\tp := &Parser{l: &Lexer{s: selector, pos: 0}, path: path}\n\titems, err := p.parse()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tsort.Sort(ByKey(items)) // sort to grant determistic parsing\n\treturn internalSelector(items), err\n}\n\nfunc validateLabelKey(k string, path *field.Path) *field.Error {\n\tif errs := validation.IsQualifiedName(k); len(errs) != 0 {\n\t\treturn field.Invalid(path, k, strings.Join(errs, \"; \"))\n\t}\n\treturn nil\n}\n\nfunc validateLabelValue(k, v string, path *field.Path) *field.Error {\n\tif errs := validation.IsValidLabelValue(v); len(errs) != 0 {\n\t\treturn field.Invalid(path.Key(k), v, strings.Join(errs, \"; \"))\n\t}\n\treturn nil\n}\n\n// SelectorFromSet returns a Selector which will match exactly the given Set. A\n// nil and empty Sets are considered equivalent to Everything().\n// It does not perform any validation, which means the server will reject\n// the request if the Set contains invalid values.\nfunc SelectorFromSet(ls Set) Selector {\n\treturn SelectorFromValidatedSet(ls)\n}\n\n// ValidatedSelectorFromSet returns a Selector which will match exactly the given Set. A\n// nil and empty Sets are considered equivalent to Everything().\n// The Set is validated client-side, which allows to catch errors early.\nfunc ValidatedSelectorFromSet(ls Set) (Selector, error) {\n\tif ls == nil || len(ls) == 0 {\n\t\treturn internalSelector{}, nil\n\t}\n\trequirements := make([]Requirement, 0, len(ls))\n\tfor label, value := range ls {\n\t\tr, err := NewRequirement(label, selection.Equals, []string{value})\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\trequirements = append(requirements, *r)\n\t}\n\t// sort to have deterministic string representation\n\tsort.Sort(ByKey(requirements))\n\treturn internalSelector(requirements), nil\n}\n\n// SelectorFromValidatedSet returns a Selector which will match exactly the given Set.\n// A nil and empty Sets are considered equivalent to Everything().\n// It assumes that Set is already validated and doesn't do any validation.\n// Note: this method copies the Set; if the Set is immutable, consider wrapping it with ValidatedSetSelector\n// instead, which does not copy.\nfunc SelectorFromValidatedSet(ls Set) Selector {\n\tif ls == nil || len(ls) == 0 {\n\t\treturn internalSelector{}\n\t}\n\trequirements := make([]Requirement, 0, len(ls))\n\tfor label, value := range ls {\n\t\trequirements = append(requirements, Requirement{key: label, operator: selection.Equals, strValues: []string{value}})\n\t}\n\t// sort to have deterministic string representation\n\tsort.Sort(ByKey(requirements))\n\treturn internalSelector(requirements)\n}\n\n// ParseToRequirements takes a string representing a selector and returns a list of\n// requirements. This function is suitable for those callers that perform additional\n// processing on selector requirements.\n// See the documentation for Parse() function for more details.\n// TODO: Consider exporting the internalSelector type instead.\nfunc ParseToRequirements(selector string, opts ...field.PathOption) ([]Requirement, error) {\n\treturn parse(selector, field.ToPath(opts...))\n}\n\n// ValidatedSetSelector wraps a Set, allowing it to implement the Selector interface. Unlike\n// Set.AsSelectorPreValidated (which copies the input Set), this type simply wraps the underlying\n// Set. As a result, it is substantially more efficient. A nil and empty Sets are considered\n// equivalent to Everything().\n//\n// Callers MUST ensure the underlying Set is not mutated, and that it is already validated. If these\n// constraints are not met, Set.AsValidatedSelector should be preferred\n//\n// None of the Selector methods mutate the underlying Set, but Add() and Requirements() convert to\n// the less optimized version.\ntype ValidatedSetSelector Set\n\nfunc (s ValidatedSetSelector) Matches(labels Labels) bool {\n\tfor k, v := range s {\n\t\tif !labels.Has(k) || v != labels.Get(k) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc (s ValidatedSetSelector) Empty() bool {\n\treturn len(s) == 0\n}\n\nfunc (s ValidatedSetSelector) String() string {\n\tkeys := make([]string, 0, len(s))\n\tfor k := range s {\n\t\tkeys = append(keys, k)\n\t}\n\t// Ensure deterministic output\n\tsort.Strings(keys)\n\tb := strings.Builder{}\n\tfor i, key := range keys {\n\t\tv := s[key]\n\t\tb.Grow(len(key) + 2 + len(v))\n\t\tif i != 0 {\n\t\t\tb.WriteString(\",\")\n\t\t}\n\t\tb.WriteString(key)\n\t\tb.WriteString(\"=\")\n\t\tb.WriteString(v)\n\t}\n\treturn b.String()\n}\n\nfunc (s ValidatedSetSelector) Add(r ...Requirement) Selector {\n\treturn s.toFullSelector().Add(r...)\n}\n\nfunc (s ValidatedSetSelector) Requirements() (requirements Requirements, selectable bool) {\n\treturn s.toFullSelector().Requirements()\n}\n\nfunc (s ValidatedSetSelector) DeepCopySelector() Selector {\n\tres := make(ValidatedSetSelector, len(s))\n\tfor k, v := range s {\n\t\tres[k] = v\n\t}\n\treturn res\n}\n\nfunc (s ValidatedSetSelector) RequiresExactMatch(label string) (value string, found bool) {\n\tv, f := s[label]\n\treturn v, f\n}\n\nfunc (s ValidatedSetSelector) toFullSelector() Selector {\n\treturn SelectorFromValidatedSet(Set(s))\n}\n\nvar _ Selector = ValidatedSetSelector{}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/labels/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage labels\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Requirement) DeepCopyInto(out *Requirement) {\n\t*out = *in\n\tif in.strValues != nil {\n\t\tin, out := &in.strValues, &out.strValues\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Requirement.\nfunc (in *Requirement) DeepCopy() *Requirement {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Requirement)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/allocator.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage runtime\n\nimport (\n\t\"sync\"\n)\n\n// AllocatorPool simply stores Allocator objects to avoid additional memory allocations\n// by caching created but unused items for later reuse, relieving pressure on the garbage collector.\n//\n// Usage:\n//\n//\tmemoryAllocator := runtime.AllocatorPool.Get().(*runtime.Allocator)\n//\tdefer runtime.AllocatorPool.Put(memoryAllocator)\n//\n// A note for future:\n//\n//\tconsider introducing multiple pools for storing buffers of different sizes\n//\tperhaps this could allow us to be more efficient.\nvar AllocatorPool = sync.Pool{\n\tNew: func() interface{} {\n\t\treturn &Allocator{}\n\t},\n}\n\n// Allocator knows how to allocate memory\n// It exists to make the cost of object serialization cheaper.\n// In some cases, it allows for allocating memory only once and then reusing it.\n// This approach puts less load on GC and leads to less fragmented memory in general.\ntype Allocator struct {\n\tbuf []byte\n}\n\nvar _ MemoryAllocator = &Allocator{}\n\n// Allocate reserves memory for n bytes only if the underlying array doesn't have enough capacity\n// otherwise it returns previously allocated block of memory.\n//\n// Note that the returned array is not zeroed, it is the caller's\n// responsibility to clean the memory if needed.\nfunc (a *Allocator) Allocate(n uint64) []byte {\n\tif uint64(cap(a.buf)) >= n {\n\t\ta.buf = a.buf[:n]\n\t\treturn a.buf\n\t}\n\t// grow the buffer\n\tsize := uint64(2*cap(a.buf)) + n\n\ta.buf = make([]byte, size)\n\ta.buf = a.buf[:n]\n\treturn a.buf\n}\n\n// SimpleAllocator a wrapper around make([]byte)\n// conforms to the MemoryAllocator interface\ntype SimpleAllocator struct{}\n\nvar _ MemoryAllocator = &SimpleAllocator{}\n\nfunc (sa *SimpleAllocator) Allocate(n uint64) []byte {\n\treturn make([]byte, n)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/codec.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage runtime\n\nimport (\n\t\"bytes\"\n\t\"encoding/base64\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"net/url\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"k8s.io/apimachinery/pkg/conversion/queryparams\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/klog/v2\"\n)\n\n// codec binds an encoder and decoder.\ntype codec struct {\n\tEncoder\n\tDecoder\n}\n\n// NewCodec creates a Codec from an Encoder and Decoder.\nfunc NewCodec(e Encoder, d Decoder) Codec {\n\treturn codec{e, d}\n}\n\n// Encode is a convenience wrapper for encoding to a []byte from an Encoder\nfunc Encode(e Encoder, obj Object) ([]byte, error) {\n\tbuf := &bytes.Buffer{}\n\tif err := e.Encode(obj, buf); err != nil {\n\t\treturn nil, err\n\t}\n\treturn buf.Bytes(), nil\n}\n\n// Decode is a convenience wrapper for decoding data into an Object.\nfunc Decode(d Decoder, data []byte) (Object, error) {\n\tobj, _, err := d.Decode(data, nil, nil)\n\treturn obj, err\n}\n\n// DecodeInto performs a Decode into the provided object.\nfunc DecodeInto(d Decoder, data []byte, into Object) error {\n\tout, gvk, err := d.Decode(data, nil, into)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif out != into {\n\t\treturn fmt.Errorf(\"unable to decode %s into %v\", gvk, reflect.TypeOf(into))\n\t}\n\treturn nil\n}\n\n// EncodeOrDie is a version of Encode which will panic instead of returning an error. For tests.\nfunc EncodeOrDie(e Encoder, obj Object) string {\n\tbytes, err := Encode(e, obj)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn string(bytes)\n}\n\n// UseOrCreateObject returns obj if the canonical ObjectKind returned by the provided typer matches gvk, or\n// invokes the ObjectCreator to instantiate a new gvk. Returns an error if the typer cannot find the object.\nfunc UseOrCreateObject(t ObjectTyper, c ObjectCreater, gvk schema.GroupVersionKind, obj Object) (Object, error) {\n\tif obj != nil {\n\t\tkinds, _, err := t.ObjectKinds(obj)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tfor _, kind := range kinds {\n\t\t\tif gvk == kind {\n\t\t\t\treturn obj, nil\n\t\t\t}\n\t\t}\n\t}\n\treturn c.New(gvk)\n}\n\n// NoopEncoder converts an Decoder to a Serializer or Codec for code that expects them but only uses decoding.\ntype NoopEncoder struct {\n\tDecoder\n}\n\nvar _ Serializer = NoopEncoder{}\n\nconst noopEncoderIdentifier Identifier = \"noop\"\n\nfunc (n NoopEncoder) Encode(obj Object, w io.Writer) error {\n\t// There is no need to handle runtime.CacheableObject, as we don't\n\t// process the obj at all.\n\treturn fmt.Errorf(\"encoding is not allowed for this codec: %v\", reflect.TypeOf(n.Decoder))\n}\n\n// Identifier implements runtime.Encoder interface.\nfunc (n NoopEncoder) Identifier() Identifier {\n\treturn noopEncoderIdentifier\n}\n\n// NoopDecoder converts an Encoder to a Serializer or Codec for code that expects them but only uses encoding.\ntype NoopDecoder struct {\n\tEncoder\n}\n\nvar _ Serializer = NoopDecoder{}\n\nfunc (n NoopDecoder) Decode(data []byte, gvk *schema.GroupVersionKind, into Object) (Object, *schema.GroupVersionKind, error) {\n\treturn nil, nil, fmt.Errorf(\"decoding is not allowed for this codec: %v\", reflect.TypeOf(n.Encoder))\n}\n\n// NewParameterCodec creates a ParameterCodec capable of transforming url values into versioned objects and back.\nfunc NewParameterCodec(scheme *Scheme) ParameterCodec {\n\treturn &parameterCodec{\n\t\ttyper:     scheme,\n\t\tconvertor: scheme,\n\t\tcreator:   scheme,\n\t\tdefaulter: scheme,\n\t}\n}\n\n// parameterCodec implements conversion to and from query parameters and objects.\ntype parameterCodec struct {\n\ttyper     ObjectTyper\n\tconvertor ObjectConvertor\n\tcreator   ObjectCreater\n\tdefaulter ObjectDefaulter\n}\n\nvar _ ParameterCodec = &parameterCodec{}\n\n// DecodeParameters converts the provided url.Values into an object of type From with the kind of into, and then\n// converts that object to into (if necessary). Returns an error if the operation cannot be completed.\nfunc (c *parameterCodec) DecodeParameters(parameters url.Values, from schema.GroupVersion, into Object) error {\n\tif len(parameters) == 0 {\n\t\treturn nil\n\t}\n\ttargetGVKs, _, err := c.typer.ObjectKinds(into)\n\tif err != nil {\n\t\treturn err\n\t}\n\tfor i := range targetGVKs {\n\t\tif targetGVKs[i].GroupVersion() == from {\n\t\t\tif err := c.convertor.Convert(&parameters, into, nil); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\t// in the case where we going into the same object we're receiving, default on the outbound object\n\t\t\tif c.defaulter != nil {\n\t\t\t\tc.defaulter.Default(into)\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\t}\n\n\tinput, err := c.creator.New(from.WithKind(targetGVKs[0].Kind))\n\tif err != nil {\n\t\treturn err\n\t}\n\tif err := c.convertor.Convert(&parameters, input, nil); err != nil {\n\t\treturn err\n\t}\n\t// if we have defaulter, default the input before converting to output\n\tif c.defaulter != nil {\n\t\tc.defaulter.Default(input)\n\t}\n\treturn c.convertor.Convert(input, into, nil)\n}\n\n// EncodeParameters converts the provided object into the to version, then converts that object to url.Values.\n// Returns an error if conversion is not possible.\nfunc (c *parameterCodec) EncodeParameters(obj Object, to schema.GroupVersion) (url.Values, error) {\n\tgvks, _, err := c.typer.ObjectKinds(obj)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tgvk := gvks[0]\n\tif to != gvk.GroupVersion() {\n\t\tout, err := c.convertor.ConvertToVersion(obj, to)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tobj = out\n\t}\n\treturn queryparams.Convert(obj)\n}\n\ntype base64Serializer struct {\n\tEncoder\n\tDecoder\n\n\tidentifier Identifier\n}\n\nfunc NewBase64Serializer(e Encoder, d Decoder) Serializer {\n\treturn &base64Serializer{\n\t\tEncoder:    e,\n\t\tDecoder:    d,\n\t\tidentifier: identifier(e),\n\t}\n}\n\nfunc identifier(e Encoder) Identifier {\n\tresult := map[string]string{\n\t\t\"name\": \"base64\",\n\t}\n\tif e != nil {\n\t\tresult[\"encoder\"] = string(e.Identifier())\n\t}\n\tidentifier, err := json.Marshal(result)\n\tif err != nil {\n\t\tklog.Fatalf(\"Failed marshaling identifier for base64Serializer: %v\", err)\n\t}\n\treturn Identifier(identifier)\n}\n\nfunc (s base64Serializer) Encode(obj Object, stream io.Writer) error {\n\tif co, ok := obj.(CacheableObject); ok {\n\t\treturn co.CacheEncode(s.Identifier(), s.doEncode, stream)\n\t}\n\treturn s.doEncode(obj, stream)\n}\n\nfunc (s base64Serializer) doEncode(obj Object, stream io.Writer) error {\n\te := base64.NewEncoder(base64.StdEncoding, stream)\n\terr := s.Encoder.Encode(obj, e)\n\te.Close()\n\treturn err\n}\n\n// Identifier implements runtime.Encoder interface.\nfunc (s base64Serializer) Identifier() Identifier {\n\treturn s.identifier\n}\n\nfunc (s base64Serializer) Decode(data []byte, defaults *schema.GroupVersionKind, into Object) (Object, *schema.GroupVersionKind, error) {\n\tout := make([]byte, base64.StdEncoding.DecodedLen(len(data)))\n\tn, err := base64.StdEncoding.Decode(out, data)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\treturn s.Decoder.Decode(out[:n], defaults, into)\n}\n\n// SerializerInfoForMediaType returns the first info in types that has a matching media type (which cannot\n// include media-type parameters), or the first info with an empty media type, or false if no type matches.\nfunc SerializerInfoForMediaType(types []SerializerInfo, mediaType string) (SerializerInfo, bool) {\n\tfor _, info := range types {\n\t\tif info.MediaType == mediaType {\n\t\t\treturn info, true\n\t\t}\n\t}\n\tfor _, info := range types {\n\t\tif len(info.MediaType) == 0 {\n\t\t\treturn info, true\n\t\t}\n\t}\n\treturn SerializerInfo{}, false\n}\n\nvar (\n\t// InternalGroupVersioner will always prefer the internal version for a given group version kind.\n\tInternalGroupVersioner GroupVersioner = internalGroupVersioner{}\n\t// DisabledGroupVersioner will reject all kinds passed to it.\n\tDisabledGroupVersioner GroupVersioner = disabledGroupVersioner{}\n)\n\nconst (\n\tinternalGroupVersionerIdentifier = \"internal\"\n\tdisabledGroupVersionerIdentifier = \"disabled\"\n)\n\ntype internalGroupVersioner struct{}\n\n// KindForGroupVersionKinds returns an internal Kind if one is found, or converts the first provided kind to the internal version.\nfunc (internalGroupVersioner) KindForGroupVersionKinds(kinds []schema.GroupVersionKind) (schema.GroupVersionKind, bool) {\n\tfor _, kind := range kinds {\n\t\tif kind.Version == APIVersionInternal {\n\t\t\treturn kind, true\n\t\t}\n\t}\n\tfor _, kind := range kinds {\n\t\treturn schema.GroupVersionKind{Group: kind.Group, Version: APIVersionInternal, Kind: kind.Kind}, true\n\t}\n\treturn schema.GroupVersionKind{}, false\n}\n\n// Identifier implements GroupVersioner interface.\nfunc (internalGroupVersioner) Identifier() string {\n\treturn internalGroupVersionerIdentifier\n}\n\ntype disabledGroupVersioner struct{}\n\n// KindForGroupVersionKinds returns false for any input.\nfunc (disabledGroupVersioner) KindForGroupVersionKinds(kinds []schema.GroupVersionKind) (schema.GroupVersionKind, bool) {\n\treturn schema.GroupVersionKind{}, false\n}\n\n// Identifier implements GroupVersioner interface.\nfunc (disabledGroupVersioner) Identifier() string {\n\treturn disabledGroupVersionerIdentifier\n}\n\n// Assert that schema.GroupVersion and GroupVersions implement GroupVersioner\nvar _ GroupVersioner = schema.GroupVersion{}\nvar _ GroupVersioner = schema.GroupVersions{}\nvar _ GroupVersioner = multiGroupVersioner{}\n\ntype multiGroupVersioner struct {\n\ttarget             schema.GroupVersion\n\tacceptedGroupKinds []schema.GroupKind\n\tcoerce             bool\n}\n\n// NewMultiGroupVersioner returns the provided group version for any kind that matches one of the provided group kinds.\n// Kind may be empty in the provided group kind, in which case any kind will match.\nfunc NewMultiGroupVersioner(gv schema.GroupVersion, groupKinds ...schema.GroupKind) GroupVersioner {\n\tif len(groupKinds) == 0 || (len(groupKinds) == 1 && groupKinds[0].Group == gv.Group) {\n\t\treturn gv\n\t}\n\treturn multiGroupVersioner{target: gv, acceptedGroupKinds: groupKinds}\n}\n\n// NewCoercingMultiGroupVersioner returns the provided group version for any incoming kind.\n// Incoming kinds that match the provided groupKinds are preferred.\n// Kind may be empty in the provided group kind, in which case any kind will match.\n// Examples:\n//\n//\tgv=mygroup/__internal, groupKinds=mygroup/Foo, anothergroup/Bar\n//\tKindForGroupVersionKinds(yetanother/v1/Baz, anothergroup/v1/Bar) -> mygroup/__internal/Bar (matched preferred group/kind)\n//\n//\tgv=mygroup/__internal, groupKinds=mygroup, anothergroup\n//\tKindForGroupVersionKinds(yetanother/v1/Baz, anothergroup/v1/Bar) -> mygroup/__internal/Bar (matched preferred group)\n//\n//\tgv=mygroup/__internal, groupKinds=mygroup, anothergroup\n//\tKindForGroupVersionKinds(yetanother/v1/Baz, yetanother/v1/Bar) -> mygroup/__internal/Baz (no preferred group/kind match, uses first kind in list)\nfunc NewCoercingMultiGroupVersioner(gv schema.GroupVersion, groupKinds ...schema.GroupKind) GroupVersioner {\n\treturn multiGroupVersioner{target: gv, acceptedGroupKinds: groupKinds, coerce: true}\n}\n\n// KindForGroupVersionKinds returns the target group version if any kind matches any of the original group kinds. It will\n// use the originating kind where possible.\nfunc (v multiGroupVersioner) KindForGroupVersionKinds(kinds []schema.GroupVersionKind) (schema.GroupVersionKind, bool) {\n\tfor _, src := range kinds {\n\t\tfor _, kind := range v.acceptedGroupKinds {\n\t\t\tif kind.Group != src.Group {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif len(kind.Kind) > 0 && kind.Kind != src.Kind {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn v.target.WithKind(src.Kind), true\n\t\t}\n\t}\n\tif v.coerce && len(kinds) > 0 {\n\t\treturn v.target.WithKind(kinds[0].Kind), true\n\t}\n\treturn schema.GroupVersionKind{}, false\n}\n\n// Identifier implements GroupVersioner interface.\nfunc (v multiGroupVersioner) Identifier() string {\n\tgroupKinds := make([]string, 0, len(v.acceptedGroupKinds))\n\tfor _, gk := range v.acceptedGroupKinds {\n\t\tgroupKinds = append(groupKinds, gk.String())\n\t}\n\tresult := map[string]string{\n\t\t\"name\":     \"multi\",\n\t\t\"target\":   v.target.String(),\n\t\t\"accepted\": strings.Join(groupKinds, \",\"),\n\t\t\"coerce\":   strconv.FormatBool(v.coerce),\n\t}\n\tidentifier, err := json.Marshal(result)\n\tif err != nil {\n\t\tklog.Fatalf(\"Failed marshaling Identifier for %#v: %v\", v, err)\n\t}\n\treturn string(identifier)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/codec_check.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage runtime\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/util/json\"\n)\n\n// CheckCodec makes sure that the codec can encode objects like internalType,\n// decode all of the external types listed, and also decode them into the given\n// object. (Will modify internalObject.) (Assumes JSON serialization.)\n// TODO: verify that the correct external version is chosen on encode...\nfunc CheckCodec(c Codec, internalType Object, externalTypes ...schema.GroupVersionKind) error {\n\tif _, err := Encode(c, internalType); err != nil {\n\t\treturn fmt.Errorf(\"internal type not encodable: %v\", err)\n\t}\n\tfor _, et := range externalTypes {\n\t\ttypeMeta := TypeMeta{\n\t\t\tKind:       et.Kind,\n\t\t\tAPIVersion: et.GroupVersion().String(),\n\t\t}\n\t\texBytes, err := json.Marshal(&typeMeta)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tobj, err := Decode(c, exBytes)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"external type %s not interpretable: %v\", et, err)\n\t\t}\n\t\tif reflect.TypeOf(obj) != reflect.TypeOf(internalType) {\n\t\t\treturn fmt.Errorf(\"decode of external type %s produced: %#v\", et, obj)\n\t\t}\n\t\tif err = DecodeInto(c, exBytes, internalType); err != nil {\n\t\t\treturn fmt.Errorf(\"external type %s not convertible to internal type: %v\", et, err)\n\t\t}\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/conversion.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package runtime defines conversions between generic types and structs to map query strings\n// to struct objects.\npackage runtime\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"k8s.io/apimachinery/pkg/conversion\"\n)\n\n// DefaultMetaV1FieldSelectorConversion auto-accepts metav1 values for name and namespace.\n// A cluster scoped resource specifying namespace empty works fine and specifying a particular\n// namespace will return no results, as expected.\nfunc DefaultMetaV1FieldSelectorConversion(label, value string) (string, string, error) {\n\tswitch label {\n\tcase \"metadata.name\":\n\t\treturn label, value, nil\n\tcase \"metadata.namespace\":\n\t\treturn label, value, nil\n\tdefault:\n\t\treturn \"\", \"\", fmt.Errorf(\"%q is not a known field selector: only %q, %q\", label, \"metadata.name\", \"metadata.namespace\")\n\t}\n}\n\n// JSONKeyMapper uses the struct tags on a conversion to determine the key value for\n// the other side. Use when mapping from a map[string]* to a struct or vice versa.\nfunc JSONKeyMapper(key string, sourceTag, destTag reflect.StructTag) (string, string) {\n\tif s := destTag.Get(\"json\"); len(s) > 0 {\n\t\treturn strings.SplitN(s, \",\", 2)[0], key\n\t}\n\tif s := sourceTag.Get(\"json\"); len(s) > 0 {\n\t\treturn key, strings.SplitN(s, \",\", 2)[0]\n\t}\n\treturn key, key\n}\n\nfunc Convert_Slice_string_To_string(in *[]string, out *string, s conversion.Scope) error {\n\tif len(*in) == 0 {\n\t\t*out = \"\"\n\t\treturn nil\n\t}\n\t*out = (*in)[0]\n\treturn nil\n}\n\nfunc Convert_Slice_string_To_int(in *[]string, out *int, s conversion.Scope) error {\n\tif len(*in) == 0 {\n\t\t*out = 0\n\t\treturn nil\n\t}\n\tstr := (*in)[0]\n\ti, err := strconv.Atoi(str)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*out = i\n\treturn nil\n}\n\n// Convert_Slice_string_To_bool will convert a string parameter to boolean.\n// Only the absence of a value (i.e. zero-length slice), a value of \"false\", or a\n// value of \"0\" resolve to false.\n// Any other value (including empty string) resolves to true.\nfunc Convert_Slice_string_To_bool(in *[]string, out *bool, s conversion.Scope) error {\n\tif len(*in) == 0 {\n\t\t*out = false\n\t\treturn nil\n\t}\n\tswitch {\n\tcase (*in)[0] == \"0\", strings.EqualFold((*in)[0], \"false\"):\n\t\t*out = false\n\tdefault:\n\t\t*out = true\n\t}\n\treturn nil\n}\n\n// Convert_Slice_string_To_bool will convert a string parameter to boolean.\n// Only the absence of a value (i.e. zero-length slice), a value of \"false\", or a\n// value of \"0\" resolve to false.\n// Any other value (including empty string) resolves to true.\nfunc Convert_Slice_string_To_Pointer_bool(in *[]string, out **bool, s conversion.Scope) error {\n\tif len(*in) == 0 {\n\t\tboolVar := false\n\t\t*out = &boolVar\n\t\treturn nil\n\t}\n\tswitch {\n\tcase (*in)[0] == \"0\", strings.EqualFold((*in)[0], \"false\"):\n\t\tboolVar := false\n\t\t*out = &boolVar\n\tdefault:\n\t\tboolVar := true\n\t\t*out = &boolVar\n\t}\n\treturn nil\n}\n\nfunc string_to_int64(in string) (int64, error) {\n\treturn strconv.ParseInt(in, 10, 64)\n}\n\nfunc Convert_string_To_int64(in *string, out *int64, s conversion.Scope) error {\n\tif in == nil {\n\t\t*out = 0\n\t\treturn nil\n\t}\n\ti, err := string_to_int64(*in)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*out = i\n\treturn nil\n}\n\nfunc Convert_Slice_string_To_int64(in *[]string, out *int64, s conversion.Scope) error {\n\tif len(*in) == 0 {\n\t\t*out = 0\n\t\treturn nil\n\t}\n\ti, err := string_to_int64((*in)[0])\n\tif err != nil {\n\t\treturn err\n\t}\n\t*out = i\n\treturn nil\n}\n\nfunc Convert_string_To_Pointer_int64(in *string, out **int64, s conversion.Scope) error {\n\tif in == nil {\n\t\t*out = nil\n\t\treturn nil\n\t}\n\ti, err := string_to_int64(*in)\n\tif err != nil {\n\t\treturn err\n\t}\n\t*out = &i\n\treturn nil\n}\n\nfunc Convert_Slice_string_To_Pointer_int64(in *[]string, out **int64, s conversion.Scope) error {\n\tif len(*in) == 0 {\n\t\t*out = nil\n\t\treturn nil\n\t}\n\ti, err := string_to_int64((*in)[0])\n\tif err != nil {\n\t\treturn err\n\t}\n\t*out = &i\n\treturn nil\n}\n\nfunc RegisterStringConversions(s *Scheme) error {\n\tif err := s.AddConversionFunc((*[]string)(nil), (*string)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_Slice_string_To_string(a.(*[]string), b.(*string), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*[]string)(nil), (*int)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_Slice_string_To_int(a.(*[]string), b.(*int), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*[]string)(nil), (*bool)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_Slice_string_To_bool(a.(*[]string), b.(*bool), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*[]string)(nil), (*int64)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_Slice_string_To_int64(a.(*[]string), b.(*int64), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/converter.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage runtime\n\nimport (\n\tencodingjson \"encoding/json\"\n\t\"fmt\"\n\t\"math\"\n\t\"os\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\t\"k8s.io/apimachinery/pkg/conversion\"\n\t\"k8s.io/apimachinery/pkg/util/json\"\n\tutilruntime \"k8s.io/apimachinery/pkg/util/runtime\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/value\"\n\n\t\"k8s.io/klog/v2\"\n)\n\n// UnstructuredConverter is an interface for converting between interface{}\n// and map[string]interface representation.\ntype UnstructuredConverter interface {\n\tToUnstructured(obj interface{}) (map[string]interface{}, error)\n\tFromUnstructured(u map[string]interface{}, obj interface{}) error\n}\n\ntype structField struct {\n\tstructType reflect.Type\n\tfield      int\n}\n\ntype fieldInfo struct {\n\tname      string\n\tnameValue reflect.Value\n\tomitempty bool\n}\n\ntype fieldsCacheMap map[structField]*fieldInfo\n\ntype fieldsCache struct {\n\tsync.Mutex\n\tvalue atomic.Value\n}\n\nfunc newFieldsCache() *fieldsCache {\n\tcache := &fieldsCache{}\n\tcache.value.Store(make(fieldsCacheMap))\n\treturn cache\n}\n\nvar (\n\tmapStringInterfaceType = reflect.TypeOf(map[string]interface{}{})\n\tstringType             = reflect.TypeOf(string(\"\"))\n\tfieldCache             = newFieldsCache()\n\n\t// DefaultUnstructuredConverter performs unstructured to Go typed object conversions.\n\tDefaultUnstructuredConverter = &unstructuredConverter{\n\t\tmismatchDetection: parseBool(os.Getenv(\"KUBE_PATCH_CONVERSION_DETECTOR\")),\n\t\tcomparison: conversion.EqualitiesOrDie(\n\t\t\tfunc(a, b time.Time) bool {\n\t\t\t\treturn a.UTC() == b.UTC()\n\t\t\t},\n\t\t),\n\t}\n)\n\nfunc parseBool(key string) bool {\n\tif len(key) == 0 {\n\t\treturn false\n\t}\n\tvalue, err := strconv.ParseBool(key)\n\tif err != nil {\n\t\tutilruntime.HandleError(fmt.Errorf(\"couldn't parse '%s' as bool for unstructured mismatch detection\", key))\n\t}\n\treturn value\n}\n\n// unstructuredConverter knows how to convert between interface{} and\n// Unstructured in both ways.\ntype unstructuredConverter struct {\n\t// If true, we will be additionally running conversion via json\n\t// to ensure that the result is true.\n\t// This is supposed to be set only in tests.\n\tmismatchDetection bool\n\t// comparison is the default test logic used to compare\n\tcomparison conversion.Equalities\n}\n\n// NewTestUnstructuredConverter creates an UnstructuredConverter that accepts JSON typed maps and translates them\n// to Go types via reflection. It performs mismatch detection automatically and is intended for use by external\n// test tools. Use DefaultUnstructuredConverter if you do not explicitly need mismatch detection.\nfunc NewTestUnstructuredConverter(comparison conversion.Equalities) UnstructuredConverter {\n\treturn NewTestUnstructuredConverterWithValidation(comparison)\n}\n\n// NewTestUnstrucutredConverterWithValidation allows for access to\n// FromUnstructuredWithValidation from within tests.\nfunc NewTestUnstructuredConverterWithValidation(comparison conversion.Equalities) *unstructuredConverter {\n\treturn &unstructuredConverter{\n\t\tmismatchDetection: true,\n\t\tcomparison:        comparison,\n\t}\n}\n\n// fromUnstructuredContext provides options for informing the converter\n// the state of its recursive walk through the conversion process.\ntype fromUnstructuredContext struct {\n\t// isInlined indicates whether the converter is currently in\n\t// an inlined field or not to determine whether it should\n\t// validate the matchedKeys yet or only collect them.\n\t// This should only be set from `structFromUnstructured`\n\tisInlined bool\n\t// matchedKeys is a stack of the set of all fields that exist in the\n\t// concrete go type of the object being converted into.\n\t// This should only be manipulated via `pushMatchedKeyTracker`,\n\t// `recordMatchedKey`, or `popAndVerifyMatchedKeys`\n\tmatchedKeys []map[string]struct{}\n\t// parentPath collects the path that the conversion\n\t// takes as it traverses the unstructured json map.\n\t// It is used to report the full path to any unknown\n\t// fields that the converter encounters.\n\tparentPath []string\n\t// returnUnknownFields indicates whether or not\n\t// unknown field errors should be collected and\n\t// returned to the caller\n\treturnUnknownFields bool\n\t// unknownFieldErrors are the collection of\n\t// the full path to each unknown field in the\n\t// object.\n\tunknownFieldErrors []error\n}\n\n// pushMatchedKeyTracker adds a placeholder set for tracking\n// matched keys for the given level. This should only be\n// called from `structFromUnstructured`.\nfunc (c *fromUnstructuredContext) pushMatchedKeyTracker() {\n\tif !c.returnUnknownFields {\n\t\treturn\n\t}\n\n\tc.matchedKeys = append(c.matchedKeys, nil)\n}\n\n// recordMatchedKey initializes the last element of matchedKeys\n// (if needed) and sets 'key'. This should only be called from\n// `structFromUnstructured`.\nfunc (c *fromUnstructuredContext) recordMatchedKey(key string) {\n\tif !c.returnUnknownFields {\n\t\treturn\n\t}\n\n\tlast := len(c.matchedKeys) - 1\n\tif c.matchedKeys[last] == nil {\n\t\tc.matchedKeys[last] = map[string]struct{}{}\n\t}\n\tc.matchedKeys[last][key] = struct{}{}\n}\n\n// popAndVerifyMatchedKeys pops the last element of matchedKeys,\n// checks the matched keys against the data, and adds unknown\n// field errors for any matched keys.\n// `mapValue` is the value of sv containing all of the keys that exist at this level\n// (ie. sv.MapKeys) in the source data.\n// `matchedKeys` are all the keys found for that level in the destination object.\n// This should only be called from `structFromUnstructured`.\nfunc (c *fromUnstructuredContext) popAndVerifyMatchedKeys(mapValue reflect.Value) {\n\tif !c.returnUnknownFields {\n\t\treturn\n\t}\n\n\tlast := len(c.matchedKeys) - 1\n\tcurMatchedKeys := c.matchedKeys[last]\n\tc.matchedKeys[last] = nil\n\tc.matchedKeys = c.matchedKeys[:last]\n\tfor _, key := range mapValue.MapKeys() {\n\t\tif _, ok := curMatchedKeys[key.String()]; !ok {\n\t\t\tc.recordUnknownField(key.String())\n\t\t}\n\t}\n}\n\nfunc (c *fromUnstructuredContext) recordUnknownField(field string) {\n\tif !c.returnUnknownFields {\n\t\treturn\n\t}\n\n\tpathLen := len(c.parentPath)\n\tc.pushKey(field)\n\terrPath := strings.Join(c.parentPath, \"\")\n\tc.parentPath = c.parentPath[:pathLen]\n\tc.unknownFieldErrors = append(c.unknownFieldErrors, fmt.Errorf(`unknown field \"%s\"`, errPath))\n}\n\nfunc (c *fromUnstructuredContext) pushIndex(index int) {\n\tif !c.returnUnknownFields {\n\t\treturn\n\t}\n\n\tc.parentPath = append(c.parentPath, \"[\", strconv.Itoa(index), \"]\")\n}\n\nfunc (c *fromUnstructuredContext) pushKey(key string) {\n\tif !c.returnUnknownFields {\n\t\treturn\n\t}\n\n\tif len(c.parentPath) > 0 {\n\t\tc.parentPath = append(c.parentPath, \".\")\n\t}\n\tc.parentPath = append(c.parentPath, key)\n\n}\n\n// FromUnstructuredWithValidation converts an object from map[string]interface{} representation into a concrete type.\n// It uses encoding/json/Unmarshaler if object implements it or reflection if not.\n// It takes a validationDirective that indicates how to behave when it encounters unknown fields.\nfunc (c *unstructuredConverter) FromUnstructuredWithValidation(u map[string]interface{}, obj interface{}, returnUnknownFields bool) error {\n\tt := reflect.TypeOf(obj)\n\tvalue := reflect.ValueOf(obj)\n\tif t.Kind() != reflect.Pointer || value.IsNil() {\n\t\treturn fmt.Errorf(\"FromUnstructured requires a non-nil pointer to an object, got %v\", t)\n\t}\n\n\tfromUnstructuredContext := &fromUnstructuredContext{\n\t\treturnUnknownFields: returnUnknownFields,\n\t}\n\terr := fromUnstructured(reflect.ValueOf(u), value.Elem(), fromUnstructuredContext)\n\tif c.mismatchDetection {\n\t\tnewObj := reflect.New(t.Elem()).Interface()\n\t\tnewErr := fromUnstructuredViaJSON(u, newObj)\n\t\tif (err != nil) != (newErr != nil) {\n\t\t\tklog.Fatalf(\"FromUnstructured unexpected error for %v: error: %v\", u, err)\n\t\t}\n\t\tif err == nil && !c.comparison.DeepEqual(obj, newObj) {\n\t\t\tklog.Fatalf(\"FromUnstructured mismatch\\nobj1: %#v\\nobj2: %#v\", obj, newObj)\n\t\t}\n\t}\n\tif err != nil {\n\t\treturn err\n\t}\n\tif returnUnknownFields && len(fromUnstructuredContext.unknownFieldErrors) > 0 {\n\t\tsort.Slice(fromUnstructuredContext.unknownFieldErrors, func(i, j int) bool {\n\t\t\treturn fromUnstructuredContext.unknownFieldErrors[i].Error() <\n\t\t\t\tfromUnstructuredContext.unknownFieldErrors[j].Error()\n\t\t})\n\t\treturn NewStrictDecodingError(fromUnstructuredContext.unknownFieldErrors)\n\t}\n\treturn nil\n}\n\n// FromUnstructured converts an object from map[string]interface{} representation into a concrete type.\n// It uses encoding/json/Unmarshaler if object implements it or reflection if not.\nfunc (c *unstructuredConverter) FromUnstructured(u map[string]interface{}, obj interface{}) error {\n\treturn c.FromUnstructuredWithValidation(u, obj, false)\n}\n\nfunc fromUnstructuredViaJSON(u map[string]interface{}, obj interface{}) error {\n\tdata, err := json.Marshal(u)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn json.Unmarshal(data, obj)\n}\n\nfunc fromUnstructured(sv, dv reflect.Value, ctx *fromUnstructuredContext) error {\n\tsv = unwrapInterface(sv)\n\tif !sv.IsValid() {\n\t\tdv.Set(reflect.Zero(dv.Type()))\n\t\treturn nil\n\t}\n\tst, dt := sv.Type(), dv.Type()\n\n\tswitch dt.Kind() {\n\tcase reflect.Map, reflect.Slice, reflect.Pointer, reflect.Struct, reflect.Interface:\n\t\t// Those require non-trivial conversion.\n\tdefault:\n\t\t// This should handle all simple types.\n\t\tif st.AssignableTo(dt) {\n\t\t\tdv.Set(sv)\n\t\t\treturn nil\n\t\t}\n\t\t// We cannot simply use \"ConvertibleTo\", as JSON doesn't support conversions\n\t\t// between those four groups: bools, integers, floats and string. We need to\n\t\t// do the same.\n\t\tif st.ConvertibleTo(dt) {\n\t\t\tswitch st.Kind() {\n\t\t\tcase reflect.String:\n\t\t\t\tswitch dt.Kind() {\n\t\t\t\tcase reflect.String:\n\t\t\t\t\tdv.Set(sv.Convert(dt))\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\tcase reflect.Bool:\n\t\t\t\tswitch dt.Kind() {\n\t\t\t\tcase reflect.Bool:\n\t\t\t\t\tdv.Set(sv.Convert(dt))\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,\n\t\t\t\treflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:\n\t\t\t\tswitch dt.Kind() {\n\t\t\t\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,\n\t\t\t\t\treflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:\n\t\t\t\t\tdv.Set(sv.Convert(dt))\n\t\t\t\t\treturn nil\n\t\t\t\tcase reflect.Float32, reflect.Float64:\n\t\t\t\t\tdv.Set(sv.Convert(dt))\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\tcase reflect.Float32, reflect.Float64:\n\t\t\t\tswitch dt.Kind() {\n\t\t\t\tcase reflect.Float32, reflect.Float64:\n\t\t\t\t\tdv.Set(sv.Convert(dt))\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t\tif sv.Float() == math.Trunc(sv.Float()) {\n\t\t\t\t\tdv.Set(sv.Convert(dt))\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn fmt.Errorf(\"cannot convert %s to %s\", st.String(), dt.String())\n\t\t}\n\t}\n\n\t// Check if the object has a custom JSON marshaller/unmarshaller.\n\tentry := value.TypeReflectEntryOf(dv.Type())\n\tif entry.CanConvertFromUnstructured() {\n\t\treturn entry.FromUnstructured(sv, dv)\n\t}\n\n\tswitch dt.Kind() {\n\tcase reflect.Map:\n\t\treturn mapFromUnstructured(sv, dv, ctx)\n\tcase reflect.Slice:\n\t\treturn sliceFromUnstructured(sv, dv, ctx)\n\tcase reflect.Pointer:\n\t\treturn pointerFromUnstructured(sv, dv, ctx)\n\tcase reflect.Struct:\n\t\treturn structFromUnstructured(sv, dv, ctx)\n\tcase reflect.Interface:\n\t\treturn interfaceFromUnstructured(sv, dv)\n\tdefault:\n\t\treturn fmt.Errorf(\"unrecognized type: %v\", dt.Kind())\n\t}\n\n}\n\nfunc fieldInfoFromField(structType reflect.Type, field int) *fieldInfo {\n\tfieldCacheMap := fieldCache.value.Load().(fieldsCacheMap)\n\tif info, ok := fieldCacheMap[structField{structType, field}]; ok {\n\t\treturn info\n\t}\n\n\t// Cache miss - we need to compute the field name.\n\tinfo := &fieldInfo{}\n\ttypeField := structType.Field(field)\n\tjsonTag := typeField.Tag.Get(\"json\")\n\tif len(jsonTag) == 0 {\n\t\t// Make the first character lowercase.\n\t\tif typeField.Name == \"\" {\n\t\t\tinfo.name = typeField.Name\n\t\t} else {\n\t\t\tinfo.name = strings.ToLower(typeField.Name[:1]) + typeField.Name[1:]\n\t\t}\n\t} else {\n\t\titems := strings.Split(jsonTag, \",\")\n\t\tinfo.name = items[0]\n\t\tfor i := range items {\n\t\t\tif items[i] == \"omitempty\" {\n\t\t\t\tinfo.omitempty = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\tinfo.nameValue = reflect.ValueOf(info.name)\n\n\tfieldCache.Lock()\n\tdefer fieldCache.Unlock()\n\tfieldCacheMap = fieldCache.value.Load().(fieldsCacheMap)\n\tnewFieldCacheMap := make(fieldsCacheMap)\n\tfor k, v := range fieldCacheMap {\n\t\tnewFieldCacheMap[k] = v\n\t}\n\tnewFieldCacheMap[structField{structType, field}] = info\n\tfieldCache.value.Store(newFieldCacheMap)\n\treturn info\n}\n\nfunc unwrapInterface(v reflect.Value) reflect.Value {\n\tfor v.Kind() == reflect.Interface {\n\t\tv = v.Elem()\n\t}\n\treturn v\n}\n\nfunc mapFromUnstructured(sv, dv reflect.Value, ctx *fromUnstructuredContext) error {\n\tst, dt := sv.Type(), dv.Type()\n\tif st.Kind() != reflect.Map {\n\t\treturn fmt.Errorf(\"cannot restore map from %v\", st.Kind())\n\t}\n\n\tif !st.Key().AssignableTo(dt.Key()) && !st.Key().ConvertibleTo(dt.Key()) {\n\t\treturn fmt.Errorf(\"cannot copy map with non-assignable keys: %v %v\", st.Key(), dt.Key())\n\t}\n\n\tif sv.IsNil() {\n\t\tdv.Set(reflect.Zero(dt))\n\t\treturn nil\n\t}\n\tdv.Set(reflect.MakeMap(dt))\n\tfor _, key := range sv.MapKeys() {\n\t\tvalue := reflect.New(dt.Elem()).Elem()\n\t\tif val := unwrapInterface(sv.MapIndex(key)); val.IsValid() {\n\t\t\tif err := fromUnstructured(val, value, ctx); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t} else {\n\t\t\tvalue.Set(reflect.Zero(dt.Elem()))\n\t\t}\n\t\tif st.Key().AssignableTo(dt.Key()) {\n\t\t\tdv.SetMapIndex(key, value)\n\t\t} else {\n\t\t\tdv.SetMapIndex(key.Convert(dt.Key()), value)\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc sliceFromUnstructured(sv, dv reflect.Value, ctx *fromUnstructuredContext) error {\n\tst, dt := sv.Type(), dv.Type()\n\tif st.Kind() == reflect.String && dt.Elem().Kind() == reflect.Uint8 {\n\t\t// We store original []byte representation as string.\n\t\t// This conversion is allowed, but we need to be careful about\n\t\t// marshaling data appropriately.\n\t\tif len(sv.Interface().(string)) > 0 {\n\t\t\tmarshalled, err := json.Marshal(sv.Interface())\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"error encoding %s to json: %v\", st, err)\n\t\t\t}\n\t\t\t// TODO: Is this Unmarshal needed?\n\t\t\tvar data []byte\n\t\t\terr = json.Unmarshal(marshalled, &data)\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"error decoding from json: %v\", err)\n\t\t\t}\n\t\t\tdv.SetBytes(data)\n\t\t} else {\n\t\t\tdv.Set(reflect.MakeSlice(dt, 0, 0))\n\t\t}\n\t\treturn nil\n\t}\n\tif st.Kind() != reflect.Slice {\n\t\treturn fmt.Errorf(\"cannot restore slice from %v\", st.Kind())\n\t}\n\n\tif sv.IsNil() {\n\t\tdv.Set(reflect.Zero(dt))\n\t\treturn nil\n\t}\n\tdv.Set(reflect.MakeSlice(dt, sv.Len(), sv.Cap()))\n\n\tpathLen := len(ctx.parentPath)\n\tdefer func() {\n\t\tctx.parentPath = ctx.parentPath[:pathLen]\n\t}()\n\tfor i := 0; i < sv.Len(); i++ {\n\t\tctx.pushIndex(i)\n\t\tif err := fromUnstructured(sv.Index(i), dv.Index(i), ctx); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.parentPath = ctx.parentPath[:pathLen]\n\t}\n\treturn nil\n}\n\nfunc pointerFromUnstructured(sv, dv reflect.Value, ctx *fromUnstructuredContext) error {\n\tst, dt := sv.Type(), dv.Type()\n\n\tif st.Kind() == reflect.Pointer && sv.IsNil() {\n\t\tdv.Set(reflect.Zero(dt))\n\t\treturn nil\n\t}\n\tdv.Set(reflect.New(dt.Elem()))\n\tswitch st.Kind() {\n\tcase reflect.Pointer, reflect.Interface:\n\t\treturn fromUnstructured(sv.Elem(), dv.Elem(), ctx)\n\tdefault:\n\t\treturn fromUnstructured(sv, dv.Elem(), ctx)\n\t}\n}\n\nfunc structFromUnstructured(sv, dv reflect.Value, ctx *fromUnstructuredContext) error {\n\tst, dt := sv.Type(), dv.Type()\n\tif st.Kind() != reflect.Map {\n\t\treturn fmt.Errorf(\"cannot restore struct from: %v\", st.Kind())\n\t}\n\n\tpathLen := len(ctx.parentPath)\n\tsvInlined := ctx.isInlined\n\tdefer func() {\n\t\tctx.parentPath = ctx.parentPath[:pathLen]\n\t\tctx.isInlined = svInlined\n\t}()\n\tif !svInlined {\n\t\tctx.pushMatchedKeyTracker()\n\t}\n\tfor i := 0; i < dt.NumField(); i++ {\n\t\tfieldInfo := fieldInfoFromField(dt, i)\n\t\tfv := dv.Field(i)\n\n\t\tif len(fieldInfo.name) == 0 {\n\t\t\t// This field is inlined, recurse into fromUnstructured again\n\t\t\t// with the same set of matched keys.\n\t\t\tctx.isInlined = true\n\t\t\tif err := fromUnstructured(sv, fv, ctx); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tctx.isInlined = svInlined\n\t\t} else {\n\t\t\t// This field is not inlined so we recurse into\n\t\t\t// child field of sv corresponding to field i of\n\t\t\t// dv, with a new set of matchedKeys and updating\n\t\t\t// the parentPath to indicate that we are one level\n\t\t\t// deeper.\n\t\t\tctx.recordMatchedKey(fieldInfo.name)\n\t\t\tvalue := unwrapInterface(sv.MapIndex(fieldInfo.nameValue))\n\t\t\tif value.IsValid() {\n\t\t\t\tctx.isInlined = false\n\t\t\t\tctx.pushKey(fieldInfo.name)\n\t\t\t\tif err := fromUnstructured(value, fv, ctx); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tctx.parentPath = ctx.parentPath[:pathLen]\n\t\t\t\tctx.isInlined = svInlined\n\t\t\t} else {\n\t\t\t\tfv.Set(reflect.Zero(fv.Type()))\n\t\t\t}\n\t\t}\n\t}\n\tif !svInlined {\n\t\tctx.popAndVerifyMatchedKeys(sv)\n\t}\n\treturn nil\n}\n\nfunc interfaceFromUnstructured(sv, dv reflect.Value) error {\n\t// TODO: Is this conversion safe?\n\tdv.Set(sv)\n\treturn nil\n}\n\n// ToUnstructured converts an object into map[string]interface{} representation.\n// It uses encoding/json/Marshaler if object implements it or reflection if not.\nfunc (c *unstructuredConverter) ToUnstructured(obj interface{}) (map[string]interface{}, error) {\n\tvar u map[string]interface{}\n\tvar err error\n\tif unstr, ok := obj.(Unstructured); ok {\n\t\tu = unstr.UnstructuredContent()\n\t} else {\n\t\tt := reflect.TypeOf(obj)\n\t\tvalue := reflect.ValueOf(obj)\n\t\tif t.Kind() != reflect.Pointer || value.IsNil() {\n\t\t\treturn nil, fmt.Errorf(\"ToUnstructured requires a non-nil pointer to an object, got %v\", t)\n\t\t}\n\t\tu = map[string]interface{}{}\n\t\terr = toUnstructured(value.Elem(), reflect.ValueOf(&u).Elem())\n\t}\n\tif c.mismatchDetection {\n\t\tnewUnstr := map[string]interface{}{}\n\t\tnewErr := toUnstructuredViaJSON(obj, &newUnstr)\n\t\tif (err != nil) != (newErr != nil) {\n\t\t\tklog.Fatalf(\"ToUnstructured unexpected error for %v: error: %v; newErr: %v\", obj, err, newErr)\n\t\t}\n\t\tif err == nil && !c.comparison.DeepEqual(u, newUnstr) {\n\t\t\tklog.Fatalf(\"ToUnstructured mismatch\\nobj1: %#v\\nobj2: %#v\", u, newUnstr)\n\t\t}\n\t}\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn u, nil\n}\n\n// DeepCopyJSON deep copies the passed value, assuming it is a valid JSON representation i.e. only contains\n// types produced by json.Unmarshal() and also int64.\n// bool, int64, float64, string, []interface{}, map[string]interface{}, json.Number and nil\nfunc DeepCopyJSON(x map[string]interface{}) map[string]interface{} {\n\treturn DeepCopyJSONValue(x).(map[string]interface{})\n}\n\n// DeepCopyJSONValue deep copies the passed value, assuming it is a valid JSON representation i.e. only contains\n// types produced by json.Unmarshal() and also int64.\n// bool, int64, float64, string, []interface{}, map[string]interface{}, json.Number and nil\nfunc DeepCopyJSONValue(x interface{}) interface{} {\n\tswitch x := x.(type) {\n\tcase map[string]interface{}:\n\t\tif x == nil {\n\t\t\t// Typed nil - an interface{} that contains a type map[string]interface{} with a value of nil\n\t\t\treturn x\n\t\t}\n\t\tclone := make(map[string]interface{}, len(x))\n\t\tfor k, v := range x {\n\t\t\tclone[k] = DeepCopyJSONValue(v)\n\t\t}\n\t\treturn clone\n\tcase []interface{}:\n\t\tif x == nil {\n\t\t\t// Typed nil - an interface{} that contains a type []interface{} with a value of nil\n\t\t\treturn x\n\t\t}\n\t\tclone := make([]interface{}, len(x))\n\t\tfor i, v := range x {\n\t\t\tclone[i] = DeepCopyJSONValue(v)\n\t\t}\n\t\treturn clone\n\tcase string, int64, bool, float64, nil, encodingjson.Number:\n\t\treturn x\n\tdefault:\n\t\tpanic(fmt.Errorf(\"cannot deep copy %T\", x))\n\t}\n}\n\nfunc toUnstructuredViaJSON(obj interface{}, u *map[string]interface{}) error {\n\tdata, err := json.Marshal(obj)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn json.Unmarshal(data, u)\n}\n\nfunc toUnstructured(sv, dv reflect.Value) error {\n\t// Check if the object has a custom string converter.\n\tentry := value.TypeReflectEntryOf(sv.Type())\n\tif entry.CanConvertToUnstructured() {\n\t\tv, err := entry.ToUnstructured(sv)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif v != nil {\n\t\t\tdv.Set(reflect.ValueOf(v))\n\t\t}\n\t\treturn nil\n\t}\n\tst := sv.Type()\n\tswitch st.Kind() {\n\tcase reflect.String:\n\t\tdv.Set(reflect.ValueOf(sv.String()))\n\t\treturn nil\n\tcase reflect.Bool:\n\t\tdv.Set(reflect.ValueOf(sv.Bool()))\n\t\treturn nil\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\tdv.Set(reflect.ValueOf(sv.Int()))\n\t\treturn nil\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:\n\t\tuVal := sv.Uint()\n\t\tif uVal > math.MaxInt64 {\n\t\t\treturn fmt.Errorf(\"unsigned value %d does not fit into int64 (overflow)\", uVal)\n\t\t}\n\t\tdv.Set(reflect.ValueOf(int64(uVal)))\n\t\treturn nil\n\tcase reflect.Float32, reflect.Float64:\n\t\tdv.Set(reflect.ValueOf(sv.Float()))\n\t\treturn nil\n\tcase reflect.Map:\n\t\treturn mapToUnstructured(sv, dv)\n\tcase reflect.Slice:\n\t\treturn sliceToUnstructured(sv, dv)\n\tcase reflect.Pointer:\n\t\treturn pointerToUnstructured(sv, dv)\n\tcase reflect.Struct:\n\t\treturn structToUnstructured(sv, dv)\n\tcase reflect.Interface:\n\t\treturn interfaceToUnstructured(sv, dv)\n\tdefault:\n\t\treturn fmt.Errorf(\"unrecognized type: %v\", st.Kind())\n\t}\n}\n\nfunc mapToUnstructured(sv, dv reflect.Value) error {\n\tst, dt := sv.Type(), dv.Type()\n\tif sv.IsNil() {\n\t\tdv.Set(reflect.Zero(dt))\n\t\treturn nil\n\t}\n\tif dt.Kind() == reflect.Interface && dv.NumMethod() == 0 {\n\t\tif st.Key().Kind() == reflect.String {\n\t\t\tdv.Set(reflect.MakeMap(mapStringInterfaceType))\n\t\t\tdv = dv.Elem()\n\t\t\tdt = dv.Type()\n\t\t}\n\t}\n\tif dt.Kind() != reflect.Map {\n\t\treturn fmt.Errorf(\"cannot convert map to: %v\", dt.Kind())\n\t}\n\n\tif !st.Key().AssignableTo(dt.Key()) && !st.Key().ConvertibleTo(dt.Key()) {\n\t\treturn fmt.Errorf(\"cannot copy map with non-assignable keys: %v %v\", st.Key(), dt.Key())\n\t}\n\n\tfor _, key := range sv.MapKeys() {\n\t\tvalue := reflect.New(dt.Elem()).Elem()\n\t\tif err := toUnstructured(sv.MapIndex(key), value); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif st.Key().AssignableTo(dt.Key()) {\n\t\t\tdv.SetMapIndex(key, value)\n\t\t} else {\n\t\t\tdv.SetMapIndex(key.Convert(dt.Key()), value)\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc sliceToUnstructured(sv, dv reflect.Value) error {\n\tst, dt := sv.Type(), dv.Type()\n\tif sv.IsNil() {\n\t\tdv.Set(reflect.Zero(dt))\n\t\treturn nil\n\t}\n\tif st.Elem().Kind() == reflect.Uint8 {\n\t\tdv.Set(reflect.New(stringType))\n\t\tdata, err := json.Marshal(sv.Bytes())\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar result string\n\t\tif err = json.Unmarshal(data, &result); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdv.Set(reflect.ValueOf(result))\n\t\treturn nil\n\t}\n\tif dt.Kind() == reflect.Interface && dv.NumMethod() == 0 {\n\t\tdv.Set(reflect.MakeSlice(reflect.SliceOf(dt), sv.Len(), sv.Cap()))\n\t\tdv = dv.Elem()\n\t\tdt = dv.Type()\n\t}\n\tif dt.Kind() != reflect.Slice {\n\t\treturn fmt.Errorf(\"cannot convert slice to: %v\", dt.Kind())\n\t}\n\tfor i := 0; i < sv.Len(); i++ {\n\t\tif err := toUnstructured(sv.Index(i), dv.Index(i)); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc pointerToUnstructured(sv, dv reflect.Value) error {\n\tif sv.IsNil() {\n\t\t// We're done - we don't need to store anything.\n\t\treturn nil\n\t}\n\treturn toUnstructured(sv.Elem(), dv)\n}\n\nfunc isZero(v reflect.Value) bool {\n\tswitch v.Kind() {\n\tcase reflect.Array, reflect.String:\n\t\treturn v.Len() == 0\n\tcase reflect.Bool:\n\t\treturn !v.Bool()\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn v.Int() == 0\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:\n\t\treturn v.Uint() == 0\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn v.Float() == 0\n\tcase reflect.Map, reflect.Slice:\n\t\t// TODO: It seems that 0-len maps are ignored in it.\n\t\treturn v.IsNil() || v.Len() == 0\n\tcase reflect.Pointer, reflect.Interface:\n\t\treturn v.IsNil()\n\t}\n\treturn false\n}\n\nfunc structToUnstructured(sv, dv reflect.Value) error {\n\tst, dt := sv.Type(), dv.Type()\n\tif dt.Kind() == reflect.Interface && dv.NumMethod() == 0 {\n\t\tdv.Set(reflect.MakeMapWithSize(mapStringInterfaceType, st.NumField()))\n\t\tdv = dv.Elem()\n\t\tdt = dv.Type()\n\t}\n\tif dt.Kind() != reflect.Map {\n\t\treturn fmt.Errorf(\"cannot convert struct to: %v\", dt.Kind())\n\t}\n\trealMap := dv.Interface().(map[string]interface{})\n\n\tfor i := 0; i < st.NumField(); i++ {\n\t\tfieldInfo := fieldInfoFromField(st, i)\n\t\tfv := sv.Field(i)\n\n\t\tif fieldInfo.name == \"-\" {\n\t\t\t// This field should be skipped.\n\t\t\tcontinue\n\t\t}\n\t\tif fieldInfo.omitempty && isZero(fv) {\n\t\t\t// omitempty fields should be ignored.\n\t\t\tcontinue\n\t\t}\n\t\tif len(fieldInfo.name) == 0 {\n\t\t\t// This field is inlined.\n\t\t\tif err := toUnstructured(fv, dv); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tswitch fv.Type().Kind() {\n\t\tcase reflect.String:\n\t\t\trealMap[fieldInfo.name] = fv.String()\n\t\tcase reflect.Bool:\n\t\t\trealMap[fieldInfo.name] = fv.Bool()\n\t\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\t\trealMap[fieldInfo.name] = fv.Int()\n\t\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:\n\t\t\trealMap[fieldInfo.name] = fv.Uint()\n\t\tcase reflect.Float32, reflect.Float64:\n\t\t\trealMap[fieldInfo.name] = fv.Float()\n\t\tdefault:\n\t\t\tsubv := reflect.New(dt.Elem()).Elem()\n\t\t\tif err := toUnstructured(fv, subv); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdv.SetMapIndex(fieldInfo.nameValue, subv)\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc interfaceToUnstructured(sv, dv reflect.Value) error {\n\tif !sv.IsValid() || sv.IsNil() {\n\t\tdv.Set(reflect.Zero(dv.Type()))\n\t\treturn nil\n\t}\n\treturn toUnstructured(sv.Elem(), dv)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/doc.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package runtime includes helper functions for working with API objects\n// that follow the kubernetes API object conventions, which are:\n//\n// 0. Your API objects have a common metadata struct member, TypeMeta.\n//\n// 1. Your code refers to an internal set of API objects.\n//\n// 2. In a separate package, you have an external set of API objects.\n//\n// 3. The external set is considered to be versioned, and no breaking\n// changes are ever made to it (fields may be added but not changed\n// or removed).\n//\n// 4. As your api evolves, you'll make an additional versioned package\n// with every major change.\n//\n// 5. Versioned packages have conversion functions which convert to\n// and from the internal version.\n//\n// 6. You'll continue to support older versions according to your\n// deprecation policy, and you can easily provide a program/library\n// to update old versions into new versions because of 5.\n//\n// 7. All of your serializations and deserializations are handled in a\n// centralized place.\n//\n// Package runtime provides a conversion helper to make 5 easy, and the\n// Encode/Decode/DecodeInto trio to accomplish 7. You can also register\n// additional \"codecs\" which use a version of your choice. It's\n// recommended that you register your types with runtime in your\n// package's init function.\n//\n// As a bonus, a few common types useful from all api objects and versions\n// are provided in types.go.\npackage runtime // import \"k8s.io/apimachinery/pkg/runtime\"\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/embedded.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage runtime\n\nimport (\n\t\"errors\"\n\n\t\"k8s.io/apimachinery/pkg/conversion\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\ntype encodable struct {\n\tE        Encoder `json:\"-\"`\n\tobj      Object\n\tversions []schema.GroupVersion\n}\n\nfunc (e encodable) GetObjectKind() schema.ObjectKind { return e.obj.GetObjectKind() }\nfunc (e encodable) DeepCopyObject() Object {\n\tout := e\n\tout.obj = e.obj.DeepCopyObject()\n\tcopy(out.versions, e.versions)\n\treturn out\n}\n\n// NewEncodable creates an object that will be encoded with the provided codec on demand.\n// Provided as a convenience for test cases dealing with internal objects.\nfunc NewEncodable(e Encoder, obj Object, versions ...schema.GroupVersion) Object {\n\tif _, ok := obj.(*Unknown); ok {\n\t\treturn obj\n\t}\n\treturn encodable{e, obj, versions}\n}\n\nfunc (e encodable) UnmarshalJSON(in []byte) error {\n\treturn errors.New(\"runtime.encodable cannot be unmarshalled from JSON\")\n}\n\n// Marshal may get called on pointers or values, so implement MarshalJSON on value.\n// http://stackoverflow.com/questions/21390979/custom-marshaljson-never-gets-called-in-go\nfunc (e encodable) MarshalJSON() ([]byte, error) {\n\treturn Encode(e.E, e.obj)\n}\n\n// NewEncodableList creates an object that will be encoded with the provided codec on demand.\n// Provided as a convenience for test cases dealing with internal objects.\nfunc NewEncodableList(e Encoder, objects []Object, versions ...schema.GroupVersion) []Object {\n\tout := make([]Object, len(objects))\n\tfor i := range objects {\n\t\tif _, ok := objects[i].(*Unknown); ok {\n\t\t\tout[i] = objects[i]\n\t\t\tcontinue\n\t\t}\n\t\tout[i] = NewEncodable(e, objects[i], versions...)\n\t}\n\treturn out\n}\n\nfunc (e *Unknown) UnmarshalJSON(in []byte) error {\n\tif e == nil {\n\t\treturn errors.New(\"runtime.Unknown: UnmarshalJSON on nil pointer\")\n\t}\n\te.TypeMeta = TypeMeta{}\n\te.Raw = append(e.Raw[0:0], in...)\n\te.ContentEncoding = \"\"\n\te.ContentType = ContentTypeJSON\n\treturn nil\n}\n\n// Marshal may get called on pointers or values, so implement MarshalJSON on value.\n// http://stackoverflow.com/questions/21390979/custom-marshaljson-never-gets-called-in-go\nfunc (e Unknown) MarshalJSON() ([]byte, error) {\n\t// If ContentType is unset, we assume this is JSON.\n\tif e.ContentType != \"\" && e.ContentType != ContentTypeJSON {\n\t\treturn nil, errors.New(\"runtime.Unknown: MarshalJSON on non-json data\")\n\t}\n\tif e.Raw == nil {\n\t\treturn []byte(\"null\"), nil\n\t}\n\treturn e.Raw, nil\n}\n\nfunc Convert_runtime_Object_To_runtime_RawExtension(in *Object, out *RawExtension, s conversion.Scope) error {\n\tif in == nil {\n\t\tout.Raw = []byte(\"null\")\n\t\treturn nil\n\t}\n\tobj := *in\n\tif unk, ok := obj.(*Unknown); ok {\n\t\tif unk.Raw != nil {\n\t\t\tout.Raw = unk.Raw\n\t\t\treturn nil\n\t\t}\n\t\tobj = out.Object\n\t}\n\tif obj == nil {\n\t\tout.Raw = nil\n\t\treturn nil\n\t}\n\tout.Object = obj\n\treturn nil\n}\n\nfunc Convert_runtime_RawExtension_To_runtime_Object(in *RawExtension, out *Object, s conversion.Scope) error {\n\tif in.Object != nil {\n\t\t*out = in.Object\n\t\treturn nil\n\t}\n\tdata := in.Raw\n\tif len(data) == 0 || (len(data) == 4 && string(data) == \"null\") {\n\t\t*out = nil\n\t\treturn nil\n\t}\n\t*out = &Unknown{\n\t\tRaw: data,\n\t\t// TODO: Set ContentEncoding and ContentType appropriately.\n\t\t// Currently we set ContentTypeJSON to make tests passing.\n\t\tContentType: ContentTypeJSON,\n\t}\n\treturn nil\n}\n\nfunc RegisterEmbeddedConversions(s *Scheme) error {\n\tif err := s.AddConversionFunc((*Object)(nil), (*RawExtension)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_runtime_Object_To_runtime_RawExtension(a.(*Object), b.(*RawExtension), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddConversionFunc((*RawExtension)(nil), (*Object)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_runtime_RawExtension_To_runtime_Object(a.(*RawExtension), b.(*Object), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/error.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage runtime\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\ntype notRegisteredErr struct {\n\tschemeName string\n\tgvk        schema.GroupVersionKind\n\ttarget     GroupVersioner\n\tt          reflect.Type\n}\n\nfunc NewNotRegisteredErrForKind(schemeName string, gvk schema.GroupVersionKind) error {\n\treturn &notRegisteredErr{schemeName: schemeName, gvk: gvk}\n}\n\nfunc NewNotRegisteredErrForType(schemeName string, t reflect.Type) error {\n\treturn &notRegisteredErr{schemeName: schemeName, t: t}\n}\n\nfunc NewNotRegisteredErrForTarget(schemeName string, t reflect.Type, target GroupVersioner) error {\n\treturn &notRegisteredErr{schemeName: schemeName, t: t, target: target}\n}\n\nfunc NewNotRegisteredGVKErrForTarget(schemeName string, gvk schema.GroupVersionKind, target GroupVersioner) error {\n\treturn &notRegisteredErr{schemeName: schemeName, gvk: gvk, target: target}\n}\n\nfunc (k *notRegisteredErr) Error() string {\n\tif k.t != nil && k.target != nil {\n\t\treturn fmt.Sprintf(\"%v is not suitable for converting to %q in scheme %q\", k.t, k.target, k.schemeName)\n\t}\n\tnullGVK := schema.GroupVersionKind{}\n\tif k.gvk != nullGVK && k.target != nil {\n\t\treturn fmt.Sprintf(\"%q is not suitable for converting to %q in scheme %q\", k.gvk.GroupVersion(), k.target, k.schemeName)\n\t}\n\tif k.t != nil {\n\t\treturn fmt.Sprintf(\"no kind is registered for the type %v in scheme %q\", k.t, k.schemeName)\n\t}\n\tif len(k.gvk.Kind) == 0 {\n\t\treturn fmt.Sprintf(\"no version %q has been registered in scheme %q\", k.gvk.GroupVersion(), k.schemeName)\n\t}\n\tif k.gvk.Version == APIVersionInternal {\n\t\treturn fmt.Sprintf(\"no kind %q is registered for the internal version of group %q in scheme %q\", k.gvk.Kind, k.gvk.Group, k.schemeName)\n\t}\n\n\treturn fmt.Sprintf(\"no kind %q is registered for version %q in scheme %q\", k.gvk.Kind, k.gvk.GroupVersion(), k.schemeName)\n}\n\n// IsNotRegisteredError returns true if the error indicates the provided\n// object or input data is not registered.\nfunc IsNotRegisteredError(err error) bool {\n\tif err == nil {\n\t\treturn false\n\t}\n\t_, ok := err.(*notRegisteredErr)\n\treturn ok\n}\n\ntype missingKindErr struct {\n\tdata string\n}\n\nfunc NewMissingKindErr(data string) error {\n\treturn &missingKindErr{data}\n}\n\nfunc (k *missingKindErr) Error() string {\n\treturn fmt.Sprintf(\"Object 'Kind' is missing in '%s'\", k.data)\n}\n\n// IsMissingKind returns true if the error indicates that the provided object\n// is missing a 'Kind' field.\nfunc IsMissingKind(err error) bool {\n\tif err == nil {\n\t\treturn false\n\t}\n\t_, ok := err.(*missingKindErr)\n\treturn ok\n}\n\ntype missingVersionErr struct {\n\tdata string\n}\n\nfunc NewMissingVersionErr(data string) error {\n\treturn &missingVersionErr{data}\n}\n\nfunc (k *missingVersionErr) Error() string {\n\treturn fmt.Sprintf(\"Object 'apiVersion' is missing in '%s'\", k.data)\n}\n\n// IsMissingVersion returns true if the error indicates that the provided object\n// is missing a 'Version' field.\nfunc IsMissingVersion(err error) bool {\n\tif err == nil {\n\t\treturn false\n\t}\n\t_, ok := err.(*missingVersionErr)\n\treturn ok\n}\n\n// strictDecodingError is a base error type that is returned by a strict Decoder such\n// as UniversalStrictDecoder.\ntype strictDecodingError struct {\n\terrors []error\n}\n\n// NewStrictDecodingError creates a new strictDecodingError object.\nfunc NewStrictDecodingError(errors []error) error {\n\treturn &strictDecodingError{\n\t\terrors: errors,\n\t}\n}\n\nfunc (e *strictDecodingError) Error() string {\n\tvar s strings.Builder\n\ts.WriteString(\"strict decoding error: \")\n\tfor i, err := range e.errors {\n\t\tif i != 0 {\n\t\t\ts.WriteString(\", \")\n\t\t}\n\t\ts.WriteString(err.Error())\n\t}\n\treturn s.String()\n}\n\nfunc (e *strictDecodingError) Errors() []error {\n\treturn e.errors\n}\n\n// IsStrictDecodingError returns true if the error indicates that the provided object\n// strictness violations.\nfunc IsStrictDecodingError(err error) bool {\n\tif err == nil {\n\t\treturn false\n\t}\n\t_, ok := err.(*strictDecodingError)\n\treturn ok\n}\n\n// AsStrictDecodingError returns a strict decoding error\n// containing all the strictness violations.\nfunc AsStrictDecodingError(err error) (*strictDecodingError, bool) {\n\tif err == nil {\n\t\treturn nil, false\n\t}\n\tstrictErr, ok := err.(*strictDecodingError)\n\treturn strictErr, ok\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/extension.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage runtime\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"fmt\"\n\n\tcbor \"k8s.io/apimachinery/pkg/runtime/serializer/cbor/direct\"\n\t\"k8s.io/apimachinery/pkg/util/json\"\n)\n\n// RawExtension intentionally avoids implementing value.UnstructuredConverter for now because the\n// signature of ToUnstructured does not allow returning an error value in cases where the conversion\n// is not possible (content type is unrecognized or bytes don't match content type).\nfunc rawToUnstructured(raw []byte, contentType string) (interface{}, error) {\n\tswitch contentType {\n\tcase ContentTypeJSON:\n\t\tvar u interface{}\n\t\tif err := json.Unmarshal(raw, &u); err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to parse RawExtension bytes as JSON: %w\", err)\n\t\t}\n\t\treturn u, nil\n\tcase ContentTypeCBOR:\n\t\tvar u interface{}\n\t\tif err := cbor.Unmarshal(raw, &u); err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to parse RawExtension bytes as CBOR: %w\", err)\n\t\t}\n\t\treturn u, nil\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"cannot convert RawExtension with unrecognized content type to unstructured\")\n\t}\n}\n\nfunc (re RawExtension) guessContentType() string {\n\tswitch {\n\tcase bytes.HasPrefix(re.Raw, cborSelfDescribed):\n\t\treturn ContentTypeCBOR\n\tcase len(re.Raw) > 0:\n\t\tswitch re.Raw[0] {\n\t\tcase '\\t', '\\r', '\\n', ' ', '{', '[', 'n', 't', 'f', '\"', '-', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9':\n\t\t\t// Prefixes for the four whitespace characters, objects, arrays, strings, numbers, true, false, and null.\n\t\t\treturn ContentTypeJSON\n\t\t}\n\t}\n\treturn \"\"\n}\n\nfunc (re *RawExtension) UnmarshalJSON(in []byte) error {\n\tif re == nil {\n\t\treturn errors.New(\"runtime.RawExtension: UnmarshalJSON on nil pointer\")\n\t}\n\tif bytes.Equal(in, []byte(\"null\")) {\n\t\treturn nil\n\t}\n\tre.Raw = append(re.Raw[0:0], in...)\n\treturn nil\n}\n\nvar (\n\tcborNull          = []byte{0xf6}\n\tcborSelfDescribed = []byte{0xd9, 0xd9, 0xf7}\n)\n\nfunc (re *RawExtension) UnmarshalCBOR(in []byte) error {\n\tif re == nil {\n\t\treturn errors.New(\"runtime.RawExtension: UnmarshalCBOR on nil pointer\")\n\t}\n\tif !bytes.Equal(in, cborNull) {\n\t\tif !bytes.HasPrefix(in, cborSelfDescribed) {\n\t\t\t// The self-described CBOR tag doesn't change the interpretation of the data\n\t\t\t// item it encloses, but it is useful as a magic number. Its encoding is\n\t\t\t// also what is used to implement the CBOR RecognizingDecoder.\n\t\t\tre.Raw = append(re.Raw[:0], cborSelfDescribed...)\n\t\t}\n\t\tre.Raw = append(re.Raw, in...)\n\t}\n\treturn nil\n}\n\n// MarshalJSON may get called on pointers or values, so implement MarshalJSON on value.\n// http://stackoverflow.com/questions/21390979/custom-marshaljson-never-gets-called-in-go\nfunc (re RawExtension) MarshalJSON() ([]byte, error) {\n\tif re.Raw == nil {\n\t\t// TODO: this is to support legacy behavior of JSONPrinter and YAMLPrinter, which\n\t\t// expect to call json.Marshal on arbitrary versioned objects (even those not in\n\t\t// the scheme). pkg/kubectl/resource#AsVersionedObjects and its interaction with\n\t\t// kubectl get on objects not in the scheme needs to be updated to ensure that the\n\t\t// objects that are not part of the scheme are correctly put into the right form.\n\t\tif re.Object != nil {\n\t\t\treturn json.Marshal(re.Object)\n\t\t}\n\t\treturn []byte(\"null\"), nil\n\t}\n\n\tcontentType := re.guessContentType()\n\tif contentType == ContentTypeJSON {\n\t\treturn re.Raw, nil\n\t}\n\n\tu, err := rawToUnstructured(re.Raw, contentType)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn json.Marshal(u)\n}\n\nfunc (re RawExtension) MarshalCBOR() ([]byte, error) {\n\tif re.Raw == nil {\n\t\tif re.Object != nil {\n\t\t\treturn cbor.Marshal(re.Object)\n\t\t}\n\t\treturn cbor.Marshal(nil)\n\t}\n\n\tcontentType := re.guessContentType()\n\tif contentType == ContentTypeCBOR {\n\t\treturn re.Raw, nil\n\t}\n\n\tu, err := rawToUnstructured(re.Raw, contentType)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn cbor.Marshal(u)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/apimachinery/pkg/runtime/generated.proto\n\npackage runtime\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\treflect \"reflect\"\n\tstrings \"strings\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *RawExtension) Reset()      { *m = RawExtension{} }\nfunc (*RawExtension) ProtoMessage() {}\nfunc (*RawExtension) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2e0e4b920403a48c, []int{0}\n}\nfunc (m *RawExtension) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *RawExtension) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *RawExtension) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_RawExtension.Merge(m, src)\n}\nfunc (m *RawExtension) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *RawExtension) XXX_DiscardUnknown() {\n\txxx_messageInfo_RawExtension.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_RawExtension proto.InternalMessageInfo\n\nfunc (m *TypeMeta) Reset()      { *m = TypeMeta{} }\nfunc (*TypeMeta) ProtoMessage() {}\nfunc (*TypeMeta) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2e0e4b920403a48c, []int{1}\n}\nfunc (m *TypeMeta) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *TypeMeta) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *TypeMeta) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_TypeMeta.Merge(m, src)\n}\nfunc (m *TypeMeta) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *TypeMeta) XXX_DiscardUnknown() {\n\txxx_messageInfo_TypeMeta.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_TypeMeta proto.InternalMessageInfo\n\nfunc (m *Unknown) Reset()      { *m = Unknown{} }\nfunc (*Unknown) ProtoMessage() {}\nfunc (*Unknown) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_2e0e4b920403a48c, []int{2}\n}\nfunc (m *Unknown) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *Unknown) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *Unknown) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_Unknown.Merge(m, src)\n}\nfunc (m *Unknown) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *Unknown) XXX_DiscardUnknown() {\n\txxx_messageInfo_Unknown.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_Unknown proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*RawExtension)(nil), \"k8s.io.apimachinery.pkg.runtime.RawExtension\")\n\tproto.RegisterType((*TypeMeta)(nil), \"k8s.io.apimachinery.pkg.runtime.TypeMeta\")\n\tproto.RegisterType((*Unknown)(nil), \"k8s.io.apimachinery.pkg.runtime.Unknown\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/apimachinery/pkg/runtime/generated.proto\", fileDescriptor_2e0e4b920403a48c)\n}\n\nvar fileDescriptor_2e0e4b920403a48c = []byte{\n\t// 365 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x92, 0x4f, 0x6b, 0x22, 0x31,\n\t0x18, 0xc6, 0x27, 0x2a, 0xe8, 0x46, 0xc1, 0x25, 0x7b, 0xd8, 0xd9, 0x3d, 0x64, 0xc4, 0xd3, 0x7a,\n\t0xd8, 0x0c, 0x08, 0x85, 0x5e, 0x1d, 0xf1, 0x50, 0x4a, 0xa1, 0x84, 0xfe, 0x81, 0x9e, 0x1a, 0x67,\n\t0xd2, 0x31, 0x0c, 0x26, 0xc3, 0x18, 0x99, 0x7a, 0xeb, 0x47, 0xe8, 0xc7, 0xf2, 0xe8, 0xd1, 0x93,\n\t0xd4, 0xe9, 0x87, 0xe8, 0xb5, 0x18, 0xa3, 0xb5, 0xed, 0xc1, 0x5b, 0xde, 0xf7, 0x79, 0x7e, 0xcf,\n\t0xfb, 0xbe, 0x10, 0xe8, 0x27, 0xa7, 0x13, 0x22, 0x94, 0xcf, 0x52, 0x31, 0x66, 0xe1, 0x48, 0x48,\n\t0x9e, 0xcd, 0xfc, 0x34, 0x89, 0xfd, 0x6c, 0x2a, 0xb5, 0x18, 0x73, 0x3f, 0xe6, 0x92, 0x67, 0x4c,\n\t0xf3, 0x88, 0xa4, 0x99, 0xd2, 0x0a, 0x79, 0x5b, 0x80, 0x1c, 0x02, 0x24, 0x4d, 0x62, 0x62, 0x81,\n\t0xbf, 0xff, 0x63, 0xa1, 0x47, 0xd3, 0x21, 0x09, 0xd5, 0xd8, 0x8f, 0x55, 0xac, 0x7c, 0xc3, 0x0d,\n\t0xa7, 0x0f, 0xa6, 0x32, 0x85, 0x79, 0x6d, 0xf3, 0xda, 0x1d, 0xd8, 0xa0, 0x2c, 0x1f, 0x3c, 0x6a,\n\t0x2e, 0x27, 0x42, 0x49, 0xf4, 0x07, 0x96, 0x33, 0x96, 0xbb, 0xa0, 0x05, 0xfe, 0x35, 0x82, 0x6a,\n\t0xb1, 0xf2, 0xca, 0x94, 0xe5, 0x74, 0xd3, 0x6b, 0xdf, 0xc3, 0xda, 0xd5, 0x2c, 0xe5, 0x17, 0x5c,\n\t0x33, 0xd4, 0x85, 0x90, 0xa5, 0xe2, 0x86, 0x67, 0x1b, 0xc8, 0xb8, 0x7f, 0x04, 0x68, 0xbe, 0xf2,\n\t0x9c, 0x62, 0xe5, 0xc1, 0xde, 0xe5, 0x99, 0x55, 0xe8, 0x81, 0x0b, 0xb5, 0x60, 0x25, 0x11, 0x32,\n\t0x72, 0x4b, 0xc6, 0xdd, 0xb0, 0xee, 0xca, 0xb9, 0x90, 0x11, 0x35, 0x4a, 0xfb, 0x0d, 0xc0, 0xea,\n\t0xb5, 0x4c, 0xa4, 0xca, 0x25, 0xba, 0x85, 0x35, 0x6d, 0xa7, 0x99, 0xfc, 0x7a, 0xb7, 0x43, 0x8e,\n\t0xdc, 0x4e, 0x76, 0xeb, 0x05, 0x3f, 0x6d, 0xf8, 0x7e, 0x61, 0xba, 0x0f, 0xdb, 0x5d, 0x58, 0xfa,\n\t0x7e, 0x21, 0xea, 0xc1, 0x66, 0xa8, 0xa4, 0xe6, 0x52, 0x0f, 0x64, 0xa8, 0x22, 0x21, 0x63, 0xb7,\n\t0x6c, 0x96, 0xfd, 0x6d, 0xf3, 0x9a, 0xfd, 0xcf, 0x32, 0xfd, 0xea, 0x47, 0x27, 0xb0, 0x6e, 0x5b,\n\t0x9b, 0xd1, 0x6e, 0xc5, 0xe0, 0xbf, 0x2c, 0x5e, 0xef, 0x7f, 0x48, 0xf4, 0xd0, 0x17, 0x0c, 0xe6,\n\t0x6b, 0xec, 0x2c, 0xd6, 0xd8, 0x59, 0xae, 0xb1, 0xf3, 0x54, 0x60, 0x30, 0x2f, 0x30, 0x58, 0x14,\n\t0x18, 0x2c, 0x0b, 0x0c, 0x5e, 0x0a, 0x0c, 0x9e, 0x5f, 0xb1, 0x73, 0xe7, 0x1d, 0xf9, 0x2d, 0xef,\n\t0x01, 0x00, 0x00, 0xff, 0xff, 0x2a, 0x9b, 0x09, 0xb3, 0x4f, 0x02, 0x00, 0x00,\n}\n\nfunc (m *RawExtension) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *RawExtension) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *RawExtension) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\tif m.Raw != nil {\n\t\ti -= len(m.Raw)\n\t\tcopy(dAtA[i:], m.Raw)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Raw)))\n\t\ti--\n\t\tdAtA[i] = 0xa\n\t}\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *TypeMeta) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *TypeMeta) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *TypeMeta) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.Kind)\n\tcopy(dAtA[i:], m.Kind)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind)))\n\ti--\n\tdAtA[i] = 0x12\n\ti -= len(m.APIVersion)\n\tcopy(dAtA[i:], m.APIVersion)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.APIVersion)))\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc (m *Unknown) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *Unknown) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *Unknown) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.ContentType)\n\tcopy(dAtA[i:], m.ContentType)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ContentType)))\n\ti--\n\tdAtA[i] = 0x22\n\ti -= len(m.ContentEncoding)\n\tcopy(dAtA[i:], m.ContentEncoding)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.ContentEncoding)))\n\ti--\n\tdAtA[i] = 0x1a\n\tif m.Raw != nil {\n\t\ti -= len(m.Raw)\n\t\tcopy(dAtA[i:], m.Raw)\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.Raw)))\n\t\ti--\n\t\tdAtA[i] = 0x12\n\t}\n\t{\n\t\tsize, err := m.TypeMeta.MarshalToSizedBuffer(dAtA[:i])\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\ti -= size\n\t\ti = encodeVarintGenerated(dAtA, i, uint64(size))\n\t}\n\ti--\n\tdAtA[i] = 0xa\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *RawExtension) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tif m.Raw != nil {\n\t\tl = len(m.Raw)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\treturn n\n}\n\nfunc (m *TypeMeta) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = len(m.APIVersion)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.Kind)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc (m *Unknown) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tl = m.TypeMeta.Size()\n\tn += 1 + l + sovGenerated(uint64(l))\n\tif m.Raw != nil {\n\t\tl = len(m.Raw)\n\t\tn += 1 + l + sovGenerated(uint64(l))\n\t}\n\tl = len(m.ContentEncoding)\n\tn += 1 + l + sovGenerated(uint64(l))\n\tl = len(m.ContentType)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (this *RawExtension) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&RawExtension{`,\n\t\t`Raw:` + valueToStringGenerated(this.Raw) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *TypeMeta) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&TypeMeta{`,\n\t\t`APIVersion:` + fmt.Sprintf(\"%v\", this.APIVersion) + `,`,\n\t\t`Kind:` + fmt.Sprintf(\"%v\", this.Kind) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc (this *Unknown) String() string {\n\tif this == nil {\n\t\treturn \"nil\"\n\t}\n\ts := strings.Join([]string{`&Unknown{`,\n\t\t`TypeMeta:` + strings.Replace(strings.Replace(this.TypeMeta.String(), \"TypeMeta\", \"TypeMeta\", 1), `&`, ``, 1) + `,`,\n\t\t`Raw:` + valueToStringGenerated(this.Raw) + `,`,\n\t\t`ContentEncoding:` + fmt.Sprintf(\"%v\", this.ContentEncoding) + `,`,\n\t\t`ContentType:` + fmt.Sprintf(\"%v\", this.ContentType) + `,`,\n\t\t`}`,\n\t}, \"\")\n\treturn s\n}\nfunc valueToStringGenerated(v interface{}) string {\n\trv := reflect.ValueOf(v)\n\tif rv.IsNil() {\n\t\treturn \"nil\"\n\t}\n\tpv := reflect.Indirect(rv).Interface()\n\treturn fmt.Sprintf(\"*%v\", pv)\n}\nfunc (m *RawExtension) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: RawExtension: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: RawExtension: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Raw\", wireType)\n\t\t\t}\n\t\t\tvar byteLen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tbyteLen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif byteLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + byteLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Raw = append(m.Raw[:0], dAtA[iNdEx:postIndex]...)\n\t\t\tif m.Raw == nil {\n\t\t\t\tm.Raw = []byte{}\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *TypeMeta) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: TypeMeta: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: TypeMeta: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field APIVersion\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.APIVersion = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Kind\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Kind = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc (m *Unknown) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: Unknown: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: Unknown: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field TypeMeta\", wireType)\n\t\t\t}\n\t\t\tvar msglen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tmsglen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif msglen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + msglen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tif err := m.TypeMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 2:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Raw\", wireType)\n\t\t\t}\n\t\t\tvar byteLen int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tbyteLen |= int(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif byteLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + byteLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.Raw = append(m.Raw[:0], dAtA[iNdEx:postIndex]...)\n\t\t\tif m.Raw == nil {\n\t\t\t\tm.Raw = []byte{}\n\t\t\t}\n\t\t\tiNdEx = postIndex\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContentEncoding\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ContentEncoding = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tcase 4:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field ContentType\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.ContentType = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.apimachinery.pkg.runtime;\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/apimachinery/pkg/runtime\";\n\n// RawExtension is used to hold extensions in external versions.\n//\n// To use this, make a field which has RawExtension as its type in your external, versioned\n// struct, and Object in your internal struct. You also need to register your\n// various plugin types.\n//\n// // Internal package:\n//\n// \ttype MyAPIObject struct {\n// \t\truntime.TypeMeta `json:\",inline\"`\n// \t\tMyPlugin runtime.Object `json:\"myPlugin\"`\n// \t}\n//\n// \ttype PluginA struct {\n// \t\tAOption string `json:\"aOption\"`\n// \t}\n//\n// // External package:\n//\n// \ttype MyAPIObject struct {\n// \t\truntime.TypeMeta `json:\",inline\"`\n// \t\tMyPlugin runtime.RawExtension `json:\"myPlugin\"`\n// \t}\n//\n// \ttype PluginA struct {\n// \t\tAOption string `json:\"aOption\"`\n// \t}\n//\n// // On the wire, the JSON will look something like this:\n//\n// \t{\n// \t\t\"kind\":\"MyAPIObject\",\n// \t\t\"apiVersion\":\"v1\",\n// \t\t\"myPlugin\": {\n// \t\t\t\"kind\":\"PluginA\",\n// \t\t\t\"aOption\":\"foo\",\n// \t\t},\n// \t}\n//\n// So what happens? Decode first uses json or yaml to unmarshal the serialized data into\n// your external MyAPIObject. That causes the raw JSON to be stored, but not unpacked.\n// The next step is to copy (using pkg/conversion) into the internal struct. The runtime\n// package's DefaultScheme has conversion functions installed which will unpack the\n// JSON stored in RawExtension, turning it into the correct object type, and storing it\n// in the Object. (TODO: In the case where the object is of an unknown type, a\n// runtime.Unknown object will be created and stored.)\n//\n// +k8s:deepcopy-gen=true\n// +protobuf=true\n// +k8s:openapi-gen=true\nmessage RawExtension {\n  // Raw is the underlying serialization of this object.\n  //\n  // TODO: Determine how to detect ContentType and ContentEncoding of 'Raw' data.\n  optional bytes raw = 1;\n}\n\n// TypeMeta is shared by all top level objects. The proper way to use it is to inline it in your type,\n// like this:\n//\n// \ttype MyAwesomeAPIObject struct {\n// \t     runtime.TypeMeta    `json:\",inline\"`\n// \t     ... // other fields\n// \t}\n//\n// func (obj *MyAwesomeAPIObject) SetGroupVersionKind(gvk *metav1.GroupVersionKind) { metav1.UpdateTypeMeta(obj,gvk) }; GroupVersionKind() *GroupVersionKind\n//\n// TypeMeta is provided here for convenience. You may use it directly from this package or define\n// your own with the same fields.\n//\n// +k8s:deepcopy-gen=false\n// +protobuf=true\n// +k8s:openapi-gen=true\nmessage TypeMeta {\n  // +optional\n  optional string apiVersion = 1;\n\n  // +optional\n  optional string kind = 2;\n}\n\n// Unknown allows api objects with unknown types to be passed-through. This can be used\n// to deal with the API objects from a plug-in. Unknown objects still have functioning\n// TypeMeta features-- kind, version, etc.\n// TODO: Make this object have easy access to field based accessors and settors for\n// metadata and field mutatation.\n//\n// +k8s:deepcopy-gen=true\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +protobuf=true\n// +k8s:openapi-gen=true\nmessage Unknown {\n  optional TypeMeta typeMeta = 1;\n\n  // Raw will hold the complete serialized object which couldn't be matched\n  // with a registered type. Most likely, nothing should be done with this\n  // except for passing it through the system.\n  optional bytes raw = 2;\n\n  // ContentEncoding is encoding used to encode 'Raw' data.\n  // Unspecified means no encoding.\n  optional string contentEncoding = 3;\n\n  // ContentType  is serialization method used to serialize 'Raw'.\n  // Unspecified means ContentTypeJSON.\n  optional string contentType = 4;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/helper.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage runtime\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n\n\t\"k8s.io/apimachinery/pkg/conversion\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/util/errors\"\n)\n\n// unsafeObjectConvertor implements ObjectConvertor using the unsafe conversion path.\ntype unsafeObjectConvertor struct {\n\t*Scheme\n}\n\nvar _ ObjectConvertor = unsafeObjectConvertor{}\n\n// ConvertToVersion converts in to the provided outVersion without copying the input first, which\n// is only safe if the output object is not mutated or reused.\nfunc (c unsafeObjectConvertor) ConvertToVersion(in Object, outVersion GroupVersioner) (Object, error) {\n\treturn c.Scheme.UnsafeConvertToVersion(in, outVersion)\n}\n\n// UnsafeObjectConvertor performs object conversion without copying the object structure,\n// for use when the converted object will not be reused or mutated. Primarily for use within\n// versioned codecs, which use the external object for serialization but do not return it.\nfunc UnsafeObjectConvertor(scheme *Scheme) ObjectConvertor {\n\treturn unsafeObjectConvertor{scheme}\n}\n\n// SetField puts the value of src, into fieldName, which must be a member of v.\n// The value of src must be assignable to the field.\nfunc SetField(src interface{}, v reflect.Value, fieldName string) error {\n\tfield := v.FieldByName(fieldName)\n\tif !field.IsValid() {\n\t\treturn fmt.Errorf(\"couldn't find %v field in %T\", fieldName, v.Interface())\n\t}\n\tsrcValue := reflect.ValueOf(src)\n\tif srcValue.Type().AssignableTo(field.Type()) {\n\t\tfield.Set(srcValue)\n\t\treturn nil\n\t}\n\tif srcValue.Type().ConvertibleTo(field.Type()) {\n\t\tfield.Set(srcValue.Convert(field.Type()))\n\t\treturn nil\n\t}\n\treturn fmt.Errorf(\"couldn't assign/convert %v to %v\", srcValue.Type(), field.Type())\n}\n\n// Field puts the value of fieldName, which must be a member of v, into dest,\n// which must be a variable to which this field's value can be assigned.\nfunc Field(v reflect.Value, fieldName string, dest interface{}) error {\n\tfield := v.FieldByName(fieldName)\n\tif !field.IsValid() {\n\t\treturn fmt.Errorf(\"couldn't find %v field in %T\", fieldName, v.Interface())\n\t}\n\tdestValue, err := conversion.EnforcePtr(dest)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif field.Type().AssignableTo(destValue.Type()) {\n\t\tdestValue.Set(field)\n\t\treturn nil\n\t}\n\tif field.Type().ConvertibleTo(destValue.Type()) {\n\t\tdestValue.Set(field.Convert(destValue.Type()))\n\t\treturn nil\n\t}\n\treturn fmt.Errorf(\"couldn't assign/convert %v to %v\", field.Type(), destValue.Type())\n}\n\n// FieldPtr puts the address of fieldName, which must be a member of v,\n// into dest, which must be an address of a variable to which this field's\n// address can be assigned.\nfunc FieldPtr(v reflect.Value, fieldName string, dest interface{}) error {\n\tfield := v.FieldByName(fieldName)\n\tif !field.IsValid() {\n\t\treturn fmt.Errorf(\"couldn't find %v field in %T\", fieldName, v.Interface())\n\t}\n\tv, err := conversion.EnforcePtr(dest)\n\tif err != nil {\n\t\treturn err\n\t}\n\tfield = field.Addr()\n\tif field.Type().AssignableTo(v.Type()) {\n\t\tv.Set(field)\n\t\treturn nil\n\t}\n\tif field.Type().ConvertibleTo(v.Type()) {\n\t\tv.Set(field.Convert(v.Type()))\n\t\treturn nil\n\t}\n\treturn fmt.Errorf(\"couldn't assign/convert %v to %v\", field.Type(), v.Type())\n}\n\n// EncodeList ensures that each object in an array is converted to a Unknown{} in serialized form.\n// TODO: accept a content type.\nfunc EncodeList(e Encoder, objects []Object) error {\n\tvar errs []error\n\tfor i := range objects {\n\t\tdata, err := Encode(e, objects[i])\n\t\tif err != nil {\n\t\t\terrs = append(errs, err)\n\t\t\tcontinue\n\t\t}\n\t\t// TODO: Set ContentEncoding and ContentType.\n\t\tobjects[i] = &Unknown{Raw: data}\n\t}\n\treturn errors.NewAggregate(errs)\n}\n\nfunc decodeListItem(obj *Unknown, decoders []Decoder) (Object, error) {\n\tfor _, decoder := range decoders {\n\t\t// TODO: Decode based on ContentType.\n\t\tobj, err := Decode(decoder, obj.Raw)\n\t\tif err != nil {\n\t\t\tif IsNotRegisteredError(err) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn nil, err\n\t\t}\n\t\treturn obj, nil\n\t}\n\t// could not decode, so leave the object as Unknown, but give the decoders the\n\t// chance to set Unknown.TypeMeta if it is available.\n\tfor _, decoder := range decoders {\n\t\tif err := DecodeInto(decoder, obj.Raw, obj); err == nil {\n\t\t\treturn obj, nil\n\t\t}\n\t}\n\treturn obj, nil\n}\n\n// DecodeList alters the list in place, attempting to decode any objects found in\n// the list that have the Unknown type. Any errors that occur are returned\n// after the entire list is processed. Decoders are tried in order.\nfunc DecodeList(objects []Object, decoders ...Decoder) []error {\n\terrs := []error(nil)\n\tfor i, obj := range objects {\n\t\tswitch t := obj.(type) {\n\t\tcase *Unknown:\n\t\t\tdecoded, err := decodeListItem(t, decoders)\n\t\t\tif err != nil {\n\t\t\t\terrs = append(errs, err)\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tobjects[i] = decoded\n\t\t}\n\t}\n\treturn errs\n}\n\n// MultiObjectTyper returns the types of objects across multiple schemes in order.\ntype MultiObjectTyper []ObjectTyper\n\nvar _ ObjectTyper = MultiObjectTyper{}\n\nfunc (m MultiObjectTyper) ObjectKinds(obj Object) (gvks []schema.GroupVersionKind, unversionedType bool, err error) {\n\tfor _, t := range m {\n\t\tgvks, unversionedType, err = t.ObjectKinds(obj)\n\t\tif err == nil {\n\t\t\treturn\n\t\t}\n\t}\n\treturn\n}\n\nfunc (m MultiObjectTyper) Recognizes(gvk schema.GroupVersionKind) bool {\n\tfor _, t := range m {\n\t\tif t.Recognizes(gvk) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// SetZeroValue would set the object of objPtr to zero value of its type.\nfunc SetZeroValue(objPtr Object) error {\n\tv, err := conversion.EnforcePtr(objPtr)\n\tif err != nil {\n\t\treturn err\n\t}\n\tv.Set(reflect.Zero(v.Type()))\n\treturn nil\n}\n\n// DefaultFramer is valid for any stream that can read objects serially without\n// any separation in the stream.\nvar DefaultFramer = defaultFramer{}\n\ntype defaultFramer struct{}\n\nfunc (defaultFramer) NewFrameReader(r io.ReadCloser) io.ReadCloser { return r }\nfunc (defaultFramer) NewFrameWriter(w io.Writer) io.Writer         { return w }\n\n// WithVersionEncoder serializes an object and ensures the GVK is set.\ntype WithVersionEncoder struct {\n\tVersion GroupVersioner\n\tEncoder\n\tObjectTyper\n}\n\n// Encode does not do conversion. It sets the gvk during serialization.\nfunc (e WithVersionEncoder) Encode(obj Object, stream io.Writer) error {\n\tgvks, _, err := e.ObjectTyper.ObjectKinds(obj)\n\tif err != nil {\n\t\tif IsNotRegisteredError(err) {\n\t\t\treturn e.Encoder.Encode(obj, stream)\n\t\t}\n\t\treturn err\n\t}\n\tkind := obj.GetObjectKind()\n\toldGVK := kind.GroupVersionKind()\n\tgvk := gvks[0]\n\tif e.Version != nil {\n\t\tpreferredGVK, ok := e.Version.KindForGroupVersionKinds(gvks)\n\t\tif ok {\n\t\t\tgvk = preferredGVK\n\t\t}\n\t}\n\n\t// The gvk only needs to be set if not already as desired.\n\tif gvk != oldGVK {\n\t\tkind.SetGroupVersionKind(gvk)\n\t\tdefer kind.SetGroupVersionKind(oldGVK)\n\t}\n\n\treturn e.Encoder.Encode(obj, stream)\n}\n\n// WithoutVersionDecoder clears the group version kind of a deserialized object.\ntype WithoutVersionDecoder struct {\n\tDecoder\n}\n\n// Decode does not do conversion. It removes the gvk during deserialization.\nfunc (d WithoutVersionDecoder) Decode(data []byte, defaults *schema.GroupVersionKind, into Object) (Object, *schema.GroupVersionKind, error) {\n\tobj, gvk, err := d.Decoder.Decode(data, defaults, into)\n\tif obj != nil {\n\t\tkind := obj.GetObjectKind()\n\t\t// clearing the gvk is just a convention of a codec\n\t\tkind.SetGroupVersionKind(schema.GroupVersionKind{})\n\t}\n\treturn obj, gvk, err\n}\n\ntype encoderWithAllocator struct {\n\tencoder      EncoderWithAllocator\n\tmemAllocator MemoryAllocator\n}\n\n// NewEncoderWithAllocator returns a new encoder\nfunc NewEncoderWithAllocator(e EncoderWithAllocator, a MemoryAllocator) Encoder {\n\treturn &encoderWithAllocator{\n\t\tencoder:      e,\n\t\tmemAllocator: a,\n\t}\n}\n\n// Encode writes the provided object to the nested writer\nfunc (e *encoderWithAllocator) Encode(obj Object, w io.Writer) error {\n\treturn e.encoder.EncodeWithAllocator(obj, w, e.memAllocator)\n}\n\n// Identifier returns identifier of this encoder.\nfunc (e *encoderWithAllocator) Identifier() Identifier {\n\treturn e.encoder.Identifier()\n}\n\ntype nondeterministicEncoderToEncoderAdapter struct {\n\tNondeterministicEncoder\n}\n\nfunc (e nondeterministicEncoderToEncoderAdapter) Encode(obj Object, w io.Writer) error {\n\treturn e.EncodeNondeterministic(obj, w)\n}\n\n// UseNondeterministicEncoding returns an Encoder that encodes objects using the provided Encoder's\n// EncodeNondeterministic method if it implements NondeterministicEncoder, otherwise it returns the\n// provided Encoder as-is.\nfunc UseNondeterministicEncoding(encoder Encoder) Encoder {\n\tif nondeterministic, ok := encoder.(NondeterministicEncoder); ok {\n\t\treturn nondeterministicEncoderToEncoderAdapter{nondeterministic}\n\t}\n\treturn encoder\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/interfaces.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage runtime\n\nimport (\n\t\"io\"\n\t\"net/url\"\n\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\nconst (\n\t// APIVersionInternal may be used if you are registering a type that should not\n\t// be considered stable or serialized - it is a convention only and has no\n\t// special behavior in this package.\n\tAPIVersionInternal = \"__internal\"\n)\n\n// GroupVersioner refines a set of possible conversion targets into a single option.\ntype GroupVersioner interface {\n\t// KindForGroupVersionKinds returns a desired target group version kind for the given input, or returns ok false if no\n\t// target is known. In general, if the return target is not in the input list, the caller is expected to invoke\n\t// Scheme.New(target) and then perform a conversion between the current Go type and the destination Go type.\n\t// Sophisticated implementations may use additional information about the input kinds to pick a destination kind.\n\tKindForGroupVersionKinds(kinds []schema.GroupVersionKind) (target schema.GroupVersionKind, ok bool)\n\t// Identifier returns string representation of the object.\n\t// Identifiers of two different encoders should be equal only if for every input\n\t// kinds they return the same result.\n\tIdentifier() string\n}\n\n// Identifier represents an identifier.\n// Identitier of two different objects should be equal if and only if for every\n// input the output they produce is exactly the same.\ntype Identifier string\n\n// Encoder writes objects to a serialized form\ntype Encoder interface {\n\t// Encode writes an object to a stream. Implementations may return errors if the versions are\n\t// incompatible, or if no conversion is defined.\n\tEncode(obj Object, w io.Writer) error\n\t// Identifier returns an identifier of the encoder.\n\t// Identifiers of two different encoders should be equal if and only if for every input\n\t// object it will be encoded to the same representation by both of them.\n\t//\n\t// Identifier is intended for use with CacheableObject#CacheEncode method. In order to\n\t// correctly handle CacheableObject, Encode() method should look similar to below, where\n\t// doEncode() is the encoding logic of implemented encoder:\n\t//   func (e *MyEncoder) Encode(obj Object, w io.Writer) error {\n\t//     if co, ok := obj.(CacheableObject); ok {\n\t//       return co.CacheEncode(e.Identifier(), e.doEncode, w)\n\t//     }\n\t//     return e.doEncode(obj, w)\n\t//   }\n\tIdentifier() Identifier\n}\n\n// NondeterministicEncoder is implemented by Encoders that can serialize objects more efficiently in\n// cases where the output does not need to be deterministic.\ntype NondeterministicEncoder interface {\n\tEncoder\n\n\t// EncodeNondeterministic writes an object to the stream. Unlike the Encode method of\n\t// Encoder, EncodeNondeterministic does not guarantee that any two invocations will write\n\t// the same sequence of bytes to the io.Writer. Any differences will not be significant to a\n\t// generic decoder. For example, map entries and struct fields might be encoded in any\n\t// order.\n\tEncodeNondeterministic(Object, io.Writer) error\n}\n\n// MemoryAllocator is responsible for allocating memory.\n// By encapsulating memory allocation into its own interface, we can reuse the memory\n// across many operations in places we know it can significantly improve the performance.\ntype MemoryAllocator interface {\n\t// Allocate reserves memory for n bytes.\n\t// Note that implementations of this method are not required to zero the returned array.\n\t// It is the caller's responsibility to clean the memory if needed.\n\tAllocate(n uint64) []byte\n}\n\n// EncoderWithAllocator  serializes objects in a way that allows callers to manage any additional memory allocations.\ntype EncoderWithAllocator interface {\n\tEncoder\n\t// EncodeWithAllocator writes an object to a stream as Encode does.\n\t// In addition, it allows for providing a memory allocator for efficient memory usage during object serialization\n\tEncodeWithAllocator(obj Object, w io.Writer, memAlloc MemoryAllocator) error\n}\n\n// Decoder attempts to load an object from data.\ntype Decoder interface {\n\t// Decode attempts to deserialize the provided data using either the innate typing of the scheme or the\n\t// default kind, group, and version provided. It returns a decoded object as well as the kind, group, and\n\t// version from the serialized data, or an error. If into is non-nil, it will be used as the target type\n\t// and implementations may choose to use it rather than reallocating an object. However, the object is not\n\t// guaranteed to be populated. The returned object is not guaranteed to match into. If defaults are\n\t// provided, they are applied to the data by default. If no defaults or partial defaults are provided, the\n\t// type of the into may be used to guide conversion decisions.\n\tDecode(data []byte, defaults *schema.GroupVersionKind, into Object) (Object, *schema.GroupVersionKind, error)\n}\n\n// Serializer is the core interface for transforming objects into a serialized format and back.\n// Implementations may choose to perform conversion of the object, but no assumptions should be made.\ntype Serializer interface {\n\tEncoder\n\tDecoder\n}\n\n// Codec is a Serializer that deals with the details of versioning objects. It offers the same\n// interface as Serializer, so this is a marker to consumers that care about the version of the objects\n// they receive.\ntype Codec Serializer\n\n// ParameterCodec defines methods for serializing and deserializing API objects to url.Values and\n// performing any necessary conversion. Unlike the normal Codec, query parameters are not self describing\n// and the desired version must be specified.\ntype ParameterCodec interface {\n\t// DecodeParameters takes the given url.Values in the specified group version and decodes them\n\t// into the provided object, or returns an error.\n\tDecodeParameters(parameters url.Values, from schema.GroupVersion, into Object) error\n\t// EncodeParameters encodes the provided object as query parameters or returns an error.\n\tEncodeParameters(obj Object, to schema.GroupVersion) (url.Values, error)\n}\n\n// Framer is a factory for creating readers and writers that obey a particular framing pattern.\ntype Framer interface {\n\tNewFrameReader(r io.ReadCloser) io.ReadCloser\n\tNewFrameWriter(w io.Writer) io.Writer\n}\n\n// SerializerInfo contains information about a specific serialization format\ntype SerializerInfo struct {\n\t// MediaType is the value that represents this serializer over the wire.\n\tMediaType string\n\t// MediaTypeType is the first part of the MediaType (\"application\" in \"application/json\").\n\tMediaTypeType string\n\t// MediaTypeSubType is the second part of the MediaType (\"json\" in \"application/json\").\n\tMediaTypeSubType string\n\t// EncodesAsText indicates this serializer can be encoded to UTF-8 safely.\n\tEncodesAsText bool\n\t// Serializer is the individual object serializer for this media type.\n\tSerializer Serializer\n\t// PrettySerializer, if set, can serialize this object in a form biased towards\n\t// readability.\n\tPrettySerializer Serializer\n\t// StrictSerializer, if set, deserializes this object strictly,\n\t// erring on unknown fields.\n\tStrictSerializer Serializer\n\t// StreamSerializer, if set, describes the streaming serialization format\n\t// for this media type.\n\tStreamSerializer *StreamSerializerInfo\n}\n\n// StreamSerializerInfo contains information about a specific stream serialization format\ntype StreamSerializerInfo struct {\n\t// EncodesAsText indicates this serializer can be encoded to UTF-8 safely.\n\tEncodesAsText bool\n\t// Serializer is the top level object serializer for this type when streaming\n\tSerializer\n\t// Framer is the factory for retrieving streams that separate objects on the wire\n\tFramer\n}\n\n// NegotiatedSerializer is an interface used for obtaining encoders, decoders, and serializers\n// for multiple supported media types. This would commonly be accepted by a server component\n// that performs HTTP content negotiation to accept multiple formats.\ntype NegotiatedSerializer interface {\n\t// SupportedMediaTypes is the media types supported for reading and writing single objects.\n\tSupportedMediaTypes() []SerializerInfo\n\n\t// EncoderForVersion returns an encoder that ensures objects being written to the provided\n\t// serializer are in the provided group version.\n\tEncoderForVersion(serializer Encoder, gv GroupVersioner) Encoder\n\t// DecoderToVersion returns a decoder that ensures objects being read by the provided\n\t// serializer are in the provided group version by default.\n\tDecoderToVersion(serializer Decoder, gv GroupVersioner) Decoder\n}\n\n// ClientNegotiator handles turning an HTTP content type into the appropriate encoder.\n// Use NewClientNegotiator or NewVersionedClientNegotiator to create this interface from\n// a NegotiatedSerializer.\ntype ClientNegotiator interface {\n\t// Encoder returns the appropriate encoder for the provided contentType (e.g. application/json)\n\t// and any optional mediaType parameters (e.g. pretty=1), or an error. If no serializer is found\n\t// a NegotiateError will be returned. The current client implementations consider params to be\n\t// optional modifiers to the contentType and will ignore unrecognized parameters.\n\tEncoder(contentType string, params map[string]string) (Encoder, error)\n\t// Decoder returns the appropriate decoder for the provided contentType (e.g. application/json)\n\t// and any optional mediaType parameters (e.g. pretty=1), or an error. If no serializer is found\n\t// a NegotiateError will be returned. The current client implementations consider params to be\n\t// optional modifiers to the contentType and will ignore unrecognized parameters.\n\tDecoder(contentType string, params map[string]string) (Decoder, error)\n\t// StreamDecoder returns the appropriate stream decoder for the provided contentType (e.g.\n\t// application/json) and any optional mediaType parameters (e.g. pretty=1), or an error. If no\n\t// serializer is found a NegotiateError will be returned. The Serializer and Framer will always\n\t// be returned if a Decoder is returned. The current client implementations consider params to be\n\t// optional modifiers to the contentType and will ignore unrecognized parameters.\n\tStreamDecoder(contentType string, params map[string]string) (Decoder, Serializer, Framer, error)\n}\n\n// StorageSerializer is an interface used for obtaining encoders, decoders, and serializers\n// that can read and write data at rest. This would commonly be used by client tools that must\n// read files, or server side storage interfaces that persist restful objects.\ntype StorageSerializer interface {\n\t// SupportedMediaTypes are the media types supported for reading and writing objects.\n\tSupportedMediaTypes() []SerializerInfo\n\n\t// UniversalDeserializer returns a Serializer that can read objects in multiple supported formats\n\t// by introspecting the data at rest.\n\tUniversalDeserializer() Decoder\n\n\t// EncoderForVersion returns an encoder that ensures objects being written to the provided\n\t// serializer are in the provided group version.\n\tEncoderForVersion(serializer Encoder, gv GroupVersioner) Encoder\n\t// DecoderForVersion returns a decoder that ensures objects being read by the provided\n\t// serializer are in the provided group version by default.\n\tDecoderToVersion(serializer Decoder, gv GroupVersioner) Decoder\n}\n\n// NestedObjectEncoder is an optional interface that objects may implement to be given\n// an opportunity to encode any nested Objects / RawExtensions during serialization.\ntype NestedObjectEncoder interface {\n\tEncodeNestedObjects(e Encoder) error\n}\n\n// NestedObjectDecoder is an optional interface that objects may implement to be given\n// an opportunity to decode any nested Objects / RawExtensions during serialization.\n// It is possible for DecodeNestedObjects to return a non-nil error but for the decoding\n// to have succeeded in the case of strict decoding errors (e.g. unknown/duplicate fields).\n// As such it is important for callers of DecodeNestedObjects to check to confirm whether\n// an error is a runtime.StrictDecodingError before short circuiting.\n// Similarly, implementations of DecodeNestedObjects should ensure that a runtime.StrictDecodingError\n// is only returned when the rest of decoding has succeeded.\ntype NestedObjectDecoder interface {\n\tDecodeNestedObjects(d Decoder) error\n}\n\n///////////////////////////////////////////////////////////////////////////////\n// Non-codec interfaces\n\ntype ObjectDefaulter interface {\n\t// Default takes an object (must be a pointer) and applies any default values.\n\t// Defaulters may not error.\n\tDefault(in Object)\n}\n\ntype ObjectVersioner interface {\n\tConvertToVersion(in Object, gv GroupVersioner) (out Object, err error)\n}\n\n// ObjectConvertor converts an object to a different version.\ntype ObjectConvertor interface {\n\t// Convert attempts to convert one object into another, or returns an error. This\n\t// method does not mutate the in object, but the in and out object might share data structures,\n\t// i.e. the out object cannot be mutated without mutating the in object as well.\n\t// The context argument will be passed to all nested conversions.\n\tConvert(in, out, context interface{}) error\n\t// ConvertToVersion takes the provided object and converts it the provided version. This\n\t// method does not mutate the in object, but the in and out object might share data structures,\n\t// i.e. the out object cannot be mutated without mutating the in object as well.\n\t// This method is similar to Convert() but handles specific details of choosing the correct\n\t// output version.\n\tConvertToVersion(in Object, gv GroupVersioner) (out Object, err error)\n\tConvertFieldLabel(gvk schema.GroupVersionKind, label, value string) (string, string, error)\n}\n\n// ObjectTyper contains methods for extracting the APIVersion and Kind\n// of objects.\ntype ObjectTyper interface {\n\t// ObjectKinds returns the all possible group,version,kind of the provided object, true if\n\t// the object is unversioned, or an error if the object is not recognized\n\t// (IsNotRegisteredError will return true).\n\tObjectKinds(Object) ([]schema.GroupVersionKind, bool, error)\n\t// Recognizes returns true if the scheme is able to handle the provided version and kind,\n\t// or more precisely that the provided version is a possible conversion or decoding\n\t// target.\n\tRecognizes(gvk schema.GroupVersionKind) bool\n}\n\n// ObjectCreater contains methods for instantiating an object by kind and version.\ntype ObjectCreater interface {\n\tNew(kind schema.GroupVersionKind) (out Object, err error)\n}\n\n// EquivalentResourceMapper provides information about resources that address the same underlying data as a specified resource\ntype EquivalentResourceMapper interface {\n\t// EquivalentResourcesFor returns a list of resources that address the same underlying data as resource.\n\t// If subresource is specified, only equivalent resources which also have the same subresource are included.\n\t// The specified resource can be included in the returned list.\n\tEquivalentResourcesFor(resource schema.GroupVersionResource, subresource string) []schema.GroupVersionResource\n\t// KindFor returns the kind expected by the specified resource[/subresource].\n\t// A zero value is returned if the kind is unknown.\n\tKindFor(resource schema.GroupVersionResource, subresource string) schema.GroupVersionKind\n}\n\n// EquivalentResourceRegistry provides an EquivalentResourceMapper interface,\n// and allows registering known resource[/subresource] -> kind\ntype EquivalentResourceRegistry interface {\n\tEquivalentResourceMapper\n\t// RegisterKindFor registers the existence of the specified resource[/subresource] along with its expected kind.\n\tRegisterKindFor(resource schema.GroupVersionResource, subresource string, kind schema.GroupVersionKind)\n}\n\n// ResourceVersioner provides methods for setting and retrieving\n// the resource version from an API object.\ntype ResourceVersioner interface {\n\tSetResourceVersion(obj Object, version string) error\n\tResourceVersion(obj Object) (string, error)\n}\n\n// Namer provides methods for retrieving name and namespace of an API object.\ntype Namer interface {\n\t// Name returns the name of a given object.\n\tName(obj Object) (string, error)\n\t// Namespace returns the name of a given object.\n\tNamespace(obj Object) (string, error)\n}\n\n// Object interface must be supported by all API types registered with Scheme. Since objects in a scheme are\n// expected to be serialized to the wire, the interface an Object must provide to the Scheme allows\n// serializers to set the kind, version, and group the object is represented as. An Object may choose\n// to return a no-op ObjectKindAccessor in cases where it is not expected to be serialized.\ntype Object interface {\n\tGetObjectKind() schema.ObjectKind\n\tDeepCopyObject() Object\n}\n\n// CacheableObject allows an object to cache its different serializations\n// to avoid performing the same serialization multiple times.\ntype CacheableObject interface {\n\t// CacheEncode writes an object to a stream. The <encode> function will\n\t// be used in case of cache miss. The <encode> function takes ownership\n\t// of the object.\n\t// If CacheableObject is a wrapper, then deep-copy of the wrapped object\n\t// should be passed to <encode> function.\n\t// CacheEncode assumes that for two different calls with the same <id>,\n\t// <encode> function will also be the same.\n\tCacheEncode(id Identifier, encode func(Object, io.Writer) error, w io.Writer) error\n\t// GetObject returns a deep-copy of an object to be encoded - the caller of\n\t// GetObject() is the owner of returned object. The reason for making a copy\n\t// is to avoid bugs, where caller modifies the object and forgets to copy it,\n\t// thus modifying the object for everyone.\n\t// The object returned by GetObject should be the same as the one that is supposed\n\t// to be passed to <encode> function in CacheEncode method.\n\t// If CacheableObject is a wrapper, the copy of wrapped object should be returned.\n\tGetObject() Object\n}\n\n// Unstructured objects store values as map[string]interface{}, with only values that can be serialized\n// to JSON allowed.\ntype Unstructured interface {\n\tObject\n\t// NewEmptyInstance returns a new instance of the concrete type containing only kind/apiVersion and no other data.\n\t// This should be called instead of reflect.New() for unstructured types because the go type alone does not preserve kind/apiVersion info.\n\tNewEmptyInstance() Unstructured\n\t// UnstructuredContent returns a non-nil map with this object's contents. Values may be\n\t// []interface{}, map[string]interface{}, or any primitive type. Contents are typically serialized to\n\t// and from JSON. SetUnstructuredContent should be used to mutate the contents.\n\tUnstructuredContent() map[string]interface{}\n\t// SetUnstructuredContent updates the object content to match the provided map.\n\tSetUnstructuredContent(map[string]interface{})\n\t// IsList returns true if this type is a list or matches the list convention - has an array called \"items\".\n\tIsList() bool\n\t// EachListItem should pass a single item out of the list as an Object to the provided function. Any\n\t// error should terminate the iteration. If IsList() returns false, this method should return an error\n\t// instead of calling the provided function.\n\tEachListItem(func(Object) error) error\n\t// EachListItemWithAlloc works like EachListItem, but avoids retaining references to a slice of items.\n\t// It does this by making a shallow copy of non-pointer items before passing them to fn.\n\t//\n\t// If the items passed to fn are not retained, or are retained for the same duration, use EachListItem instead for memory efficiency.\n\tEachListItemWithAlloc(func(Object) error) error\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/mapper.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage runtime\n\nimport (\n\t\"sync\"\n\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\ntype equivalentResourceRegistry struct {\n\t// keyFunc computes a key for the specified resource (this allows honoring colocated resources across API groups).\n\t// if null, or if \"\" is returned, resource.String() is used as the key\n\tkeyFunc func(resource schema.GroupResource) string\n\t// resources maps key -> subresource -> equivalent resources (subresource is not included in the returned resources).\n\t// main resources are stored with subresource=\"\".\n\tresources map[string]map[string][]schema.GroupVersionResource\n\t// kinds maps resource -> subresource -> kind\n\tkinds map[schema.GroupVersionResource]map[string]schema.GroupVersionKind\n\t// keys caches the computed key for each GroupResource\n\tkeys map[schema.GroupResource]string\n\n\tmutex sync.RWMutex\n}\n\nvar _ EquivalentResourceMapper = (*equivalentResourceRegistry)(nil)\nvar _ EquivalentResourceRegistry = (*equivalentResourceRegistry)(nil)\n\n// NewEquivalentResourceRegistry creates a resource registry that considers all versions of a GroupResource to be equivalent.\nfunc NewEquivalentResourceRegistry() EquivalentResourceRegistry {\n\treturn &equivalentResourceRegistry{}\n}\n\n// NewEquivalentResourceRegistryWithIdentity creates a resource mapper with a custom identity function.\n// If \"\" is returned by the function, GroupResource#String is used as the identity.\n// GroupResources with the same identity string are considered equivalent.\nfunc NewEquivalentResourceRegistryWithIdentity(keyFunc func(schema.GroupResource) string) EquivalentResourceRegistry {\n\treturn &equivalentResourceRegistry{keyFunc: keyFunc}\n}\n\nfunc (r *equivalentResourceRegistry) EquivalentResourcesFor(resource schema.GroupVersionResource, subresource string) []schema.GroupVersionResource {\n\tr.mutex.RLock()\n\tdefer r.mutex.RUnlock()\n\treturn r.resources[r.keys[resource.GroupResource()]][subresource]\n}\nfunc (r *equivalentResourceRegistry) KindFor(resource schema.GroupVersionResource, subresource string) schema.GroupVersionKind {\n\tr.mutex.RLock()\n\tdefer r.mutex.RUnlock()\n\treturn r.kinds[resource][subresource]\n}\nfunc (r *equivalentResourceRegistry) RegisterKindFor(resource schema.GroupVersionResource, subresource string, kind schema.GroupVersionKind) {\n\tr.mutex.Lock()\n\tdefer r.mutex.Unlock()\n\tif r.kinds == nil {\n\t\tr.kinds = map[schema.GroupVersionResource]map[string]schema.GroupVersionKind{}\n\t}\n\tif r.kinds[resource] == nil {\n\t\tr.kinds[resource] = map[string]schema.GroupVersionKind{}\n\t}\n\tr.kinds[resource][subresource] = kind\n\n\t// get the shared key of the parent resource\n\tkey := \"\"\n\tgr := resource.GroupResource()\n\tif r.keyFunc != nil {\n\t\tkey = r.keyFunc(gr)\n\t}\n\tif key == \"\" {\n\t\tkey = gr.String()\n\t}\n\n\tif r.keys == nil {\n\t\tr.keys = map[schema.GroupResource]string{}\n\t}\n\tr.keys[gr] = key\n\n\tif r.resources == nil {\n\t\tr.resources = map[string]map[string][]schema.GroupVersionResource{}\n\t}\n\tif r.resources[key] == nil {\n\t\tr.resources[key] = map[string][]schema.GroupVersionResource{}\n\t}\n\tr.resources[key][subresource] = append(r.resources[key][subresource], resource)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/negotiate.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage runtime\n\nimport (\n\t\"fmt\"\n\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// NegotiateError is returned when a ClientNegotiator is unable to locate\n// a serializer for the requested operation.\ntype NegotiateError struct {\n\tContentType string\n\tStream      bool\n}\n\nfunc (e NegotiateError) Error() string {\n\tif e.Stream {\n\t\treturn fmt.Sprintf(\"no stream serializers registered for %s\", e.ContentType)\n\t}\n\treturn fmt.Sprintf(\"no serializers registered for %s\", e.ContentType)\n}\n\ntype clientNegotiator struct {\n\tserializer     NegotiatedSerializer\n\tencode, decode GroupVersioner\n}\n\nfunc (n *clientNegotiator) Encoder(contentType string, params map[string]string) (Encoder, error) {\n\t// TODO: `pretty=1` is handled in NegotiateOutputMediaType, consider moving it to this method\n\t// if client negotiators truly need to use it\n\tmediaTypes := n.serializer.SupportedMediaTypes()\n\tinfo, ok := SerializerInfoForMediaType(mediaTypes, contentType)\n\tif !ok {\n\t\tif len(contentType) != 0 || len(mediaTypes) == 0 {\n\t\t\treturn nil, NegotiateError{ContentType: contentType}\n\t\t}\n\t\tinfo = mediaTypes[0]\n\t}\n\treturn n.serializer.EncoderForVersion(info.Serializer, n.encode), nil\n}\n\nfunc (n *clientNegotiator) Decoder(contentType string, params map[string]string) (Decoder, error) {\n\tmediaTypes := n.serializer.SupportedMediaTypes()\n\tinfo, ok := SerializerInfoForMediaType(mediaTypes, contentType)\n\tif !ok {\n\t\tif len(contentType) != 0 || len(mediaTypes) == 0 {\n\t\t\treturn nil, NegotiateError{ContentType: contentType}\n\t\t}\n\t\tinfo = mediaTypes[0]\n\t}\n\treturn n.serializer.DecoderToVersion(info.Serializer, n.decode), nil\n}\n\nfunc (n *clientNegotiator) StreamDecoder(contentType string, params map[string]string) (Decoder, Serializer, Framer, error) {\n\tmediaTypes := n.serializer.SupportedMediaTypes()\n\tinfo, ok := SerializerInfoForMediaType(mediaTypes, contentType)\n\tif !ok {\n\t\tif len(contentType) != 0 || len(mediaTypes) == 0 {\n\t\t\treturn nil, nil, nil, NegotiateError{ContentType: contentType, Stream: true}\n\t\t}\n\t\tinfo = mediaTypes[0]\n\t}\n\tif info.StreamSerializer == nil {\n\t\treturn nil, nil, nil, NegotiateError{ContentType: info.MediaType, Stream: true}\n\t}\n\treturn n.serializer.DecoderToVersion(info.Serializer, n.decode), info.StreamSerializer.Serializer, info.StreamSerializer.Framer, nil\n}\n\n// NewClientNegotiator will attempt to retrieve the appropriate encoder, decoder, or\n// stream decoder for a given content type. Does not perform any conversion, but will\n// encode the object to the desired group, version, and kind. Use when creating a client.\nfunc NewClientNegotiator(serializer NegotiatedSerializer, gv schema.GroupVersion) ClientNegotiator {\n\treturn &clientNegotiator{\n\t\tserializer: serializer,\n\t\tencode:     gv,\n\t}\n}\n\ntype simpleNegotiatedSerializer struct {\n\tinfo SerializerInfo\n}\n\nfunc NewSimpleNegotiatedSerializer(info SerializerInfo) NegotiatedSerializer {\n\treturn &simpleNegotiatedSerializer{info: info}\n}\n\nfunc (n *simpleNegotiatedSerializer) SupportedMediaTypes() []SerializerInfo {\n\treturn []SerializerInfo{n.info}\n}\n\nfunc (n *simpleNegotiatedSerializer) EncoderForVersion(e Encoder, _ GroupVersioner) Encoder {\n\treturn e\n}\n\nfunc (n *simpleNegotiatedSerializer) DecoderToVersion(d Decoder, _gv GroupVersioner) Decoder {\n\treturn d\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/register.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage runtime\n\nimport \"k8s.io/apimachinery/pkg/runtime/schema\"\n\n// SetGroupVersionKind satisfies the ObjectKind interface for all objects that embed TypeMeta\nfunc (obj *TypeMeta) SetGroupVersionKind(gvk schema.GroupVersionKind) {\n\tobj.APIVersion, obj.Kind = gvk.ToAPIVersionAndKind()\n}\n\n// GroupVersionKind satisfies the ObjectKind interface for all objects that embed TypeMeta\nfunc (obj *TypeMeta) GroupVersionKind() schema.GroupVersionKind {\n\treturn schema.FromAPIVersionAndKind(obj.APIVersion, obj.Kind)\n}\n\nfunc (obj *TypeMeta) GetObjectKind() schema.ObjectKind { return obj }\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/schema/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/apimachinery/pkg/runtime/schema/generated.proto\n\npackage schema\n\nimport (\n\tfmt \"fmt\"\n\n\tmath \"math\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/apimachinery/pkg/runtime/schema/generated.proto\", fileDescriptor_25f8f0eed21c6089)\n}\n\nvar fileDescriptor_25f8f0eed21c6089 = []byte{\n\t// 170 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0xce, 0xa1, 0x0e, 0xc2, 0x30,\n\t0x10, 0xc6, 0xf1, 0xd6, 0x22, 0x91, 0x88, 0x93, 0x73, 0xdc, 0x39, 0x82, 0x46, 0xf3, 0x04, 0xb8,\n\t0x6e, 0x94, 0xae, 0x59, 0xba, 0x6b, 0xba, 0x4e, 0xe0, 0x78, 0x04, 0x1e, 0x6b, 0x72, 0x72, 0x92,\n\t0x95, 0x17, 0x21, 0x69, 0x11, 0x48, 0xdc, 0xfd, 0xc5, 0xef, 0xf2, 0x6d, 0x0e, 0xdd, 0x71, 0x40,\n\t0xcb, 0xa4, 0xbc, 0x75, 0xaa, 0x69, 0x6d, 0xaf, 0xc3, 0x9d, 0x7c, 0x67, 0x28, 0x8c, 0x7d, 0xb4,\n\t0x4e, 0xd3, 0xd0, 0xb4, 0xda, 0x29, 0x32, 0xba, 0xd7, 0x41, 0x45, 0x7d, 0x45, 0x1f, 0x38, 0xf2,\n\t0xb6, 0x2a, 0x0e, 0x7f, 0x1d, 0xfa, 0xce, 0xe0, 0xd7, 0x61, 0x71, 0xbb, 0xbd, 0xb1, 0xb1, 0x1d,\n\t0x6b, 0x6c, 0xd8, 0x91, 0x61, 0xc3, 0x94, 0x79, 0x3d, 0xde, 0x72, 0xe5, 0xc8, 0x57, 0x79, 0x7b,\n\t0x3a, 0x4f, 0x2b, 0x88, 0x79, 0x05, 0xb1, 0xac, 0x20, 0x1e, 0x09, 0xe4, 0x94, 0x40, 0xce, 0x09,\n\t0xe4, 0x92, 0x40, 0xbe, 0x12, 0xc8, 0xe7, 0x1b, 0xc4, 0xa5, 0xfa, 0x6f, 0xf4, 0x27, 0x00, 0x00,\n\t0xff, 0xff, 0x97, 0xb8, 0x4d, 0x1f, 0xdd, 0x00, 0x00, 0x00,\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/schema/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.apimachinery.pkg.runtime.schema;\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/apimachinery/pkg/runtime/schema\";\n\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/schema/group_version.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage schema\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n)\n\n// ParseResourceArg takes the common style of string which may be either `resource.group.com` or `resource.version.group.com`\n// and parses it out into both possibilities.  This code takes no responsibility for knowing which representation was intended\n// but with a knowledge of all GroupVersions, calling code can take a very good guess.  If there are only two segments, then\n// `*GroupVersionResource` is nil.\n// `resource.group.com` -> `group=com, version=group, resource=resource` and `group=group.com, resource=resource`\nfunc ParseResourceArg(arg string) (*GroupVersionResource, GroupResource) {\n\tvar gvr *GroupVersionResource\n\tif strings.Count(arg, \".\") >= 2 {\n\t\ts := strings.SplitN(arg, \".\", 3)\n\t\tgvr = &GroupVersionResource{Group: s[2], Version: s[1], Resource: s[0]}\n\t}\n\n\treturn gvr, ParseGroupResource(arg)\n}\n\n// ParseKindArg takes the common style of string which may be either `Kind.group.com` or `Kind.version.group.com`\n// and parses it out into both possibilities. This code takes no responsibility for knowing which representation was intended\n// but with a knowledge of all GroupKinds, calling code can take a very good guess. If there are only two segments, then\n// `*GroupVersionKind` is nil.\n// `Kind.group.com` -> `group=com, version=group, kind=Kind` and `group=group.com, kind=Kind`\nfunc ParseKindArg(arg string) (*GroupVersionKind, GroupKind) {\n\tvar gvk *GroupVersionKind\n\tif strings.Count(arg, \".\") >= 2 {\n\t\ts := strings.SplitN(arg, \".\", 3)\n\t\tgvk = &GroupVersionKind{Group: s[2], Version: s[1], Kind: s[0]}\n\t}\n\n\treturn gvk, ParseGroupKind(arg)\n}\n\n// GroupResource specifies a Group and a Resource, but does not force a version.  This is useful for identifying\n// concepts during lookup stages without having partially valid types\ntype GroupResource struct {\n\tGroup    string\n\tResource string\n}\n\nfunc (gr GroupResource) WithVersion(version string) GroupVersionResource {\n\treturn GroupVersionResource{Group: gr.Group, Version: version, Resource: gr.Resource}\n}\n\nfunc (gr GroupResource) Empty() bool {\n\treturn len(gr.Group) == 0 && len(gr.Resource) == 0\n}\n\nfunc (gr GroupResource) String() string {\n\tif len(gr.Group) == 0 {\n\t\treturn gr.Resource\n\t}\n\treturn gr.Resource + \".\" + gr.Group\n}\n\nfunc ParseGroupKind(gk string) GroupKind {\n\ti := strings.Index(gk, \".\")\n\tif i == -1 {\n\t\treturn GroupKind{Kind: gk}\n\t}\n\n\treturn GroupKind{Group: gk[i+1:], Kind: gk[:i]}\n}\n\n// ParseGroupResource turns \"resource.group\" string into a GroupResource struct.  Empty strings are allowed\n// for each field.\nfunc ParseGroupResource(gr string) GroupResource {\n\tif i := strings.Index(gr, \".\"); i >= 0 {\n\t\treturn GroupResource{Group: gr[i+1:], Resource: gr[:i]}\n\t}\n\treturn GroupResource{Resource: gr}\n}\n\n// GroupVersionResource unambiguously identifies a resource.  It doesn't anonymously include GroupVersion\n// to avoid automatic coercion.  It doesn't use a GroupVersion to avoid custom marshalling\ntype GroupVersionResource struct {\n\tGroup    string\n\tVersion  string\n\tResource string\n}\n\nfunc (gvr GroupVersionResource) Empty() bool {\n\treturn len(gvr.Group) == 0 && len(gvr.Version) == 0 && len(gvr.Resource) == 0\n}\n\nfunc (gvr GroupVersionResource) GroupResource() GroupResource {\n\treturn GroupResource{Group: gvr.Group, Resource: gvr.Resource}\n}\n\nfunc (gvr GroupVersionResource) GroupVersion() GroupVersion {\n\treturn GroupVersion{Group: gvr.Group, Version: gvr.Version}\n}\n\nfunc (gvr GroupVersionResource) String() string {\n\treturn strings.Join([]string{gvr.Group, \"/\", gvr.Version, \", Resource=\", gvr.Resource}, \"\")\n}\n\n// GroupKind specifies a Group and a Kind, but does not force a version.  This is useful for identifying\n// concepts during lookup stages without having partially valid types\ntype GroupKind struct {\n\tGroup string\n\tKind  string\n}\n\nfunc (gk GroupKind) Empty() bool {\n\treturn len(gk.Group) == 0 && len(gk.Kind) == 0\n}\n\nfunc (gk GroupKind) WithVersion(version string) GroupVersionKind {\n\treturn GroupVersionKind{Group: gk.Group, Version: version, Kind: gk.Kind}\n}\n\nfunc (gk GroupKind) String() string {\n\tif len(gk.Group) == 0 {\n\t\treturn gk.Kind\n\t}\n\treturn gk.Kind + \".\" + gk.Group\n}\n\n// GroupVersionKind unambiguously identifies a kind.  It doesn't anonymously include GroupVersion\n// to avoid automatic coercion.  It doesn't use a GroupVersion to avoid custom marshalling\ntype GroupVersionKind struct {\n\tGroup   string\n\tVersion string\n\tKind    string\n}\n\n// Empty returns true if group, version, and kind are empty\nfunc (gvk GroupVersionKind) Empty() bool {\n\treturn len(gvk.Group) == 0 && len(gvk.Version) == 0 && len(gvk.Kind) == 0\n}\n\nfunc (gvk GroupVersionKind) GroupKind() GroupKind {\n\treturn GroupKind{Group: gvk.Group, Kind: gvk.Kind}\n}\n\nfunc (gvk GroupVersionKind) GroupVersion() GroupVersion {\n\treturn GroupVersion{Group: gvk.Group, Version: gvk.Version}\n}\n\nfunc (gvk GroupVersionKind) String() string {\n\treturn gvk.Group + \"/\" + gvk.Version + \", Kind=\" + gvk.Kind\n}\n\n// GroupVersion contains the \"group\" and the \"version\", which uniquely identifies the API.\ntype GroupVersion struct {\n\tGroup   string\n\tVersion string\n}\n\n// Empty returns true if group and version are empty\nfunc (gv GroupVersion) Empty() bool {\n\treturn len(gv.Group) == 0 && len(gv.Version) == 0\n}\n\n// String puts \"group\" and \"version\" into a single \"group/version\" string. For the legacy v1\n// it returns \"v1\".\nfunc (gv GroupVersion) String() string {\n\tif len(gv.Group) > 0 {\n\t\treturn gv.Group + \"/\" + gv.Version\n\t}\n\treturn gv.Version\n}\n\n// Identifier implements runtime.GroupVersioner interface.\nfunc (gv GroupVersion) Identifier() string {\n\treturn gv.String()\n}\n\n// KindForGroupVersionKinds identifies the preferred GroupVersionKind out of a list. It returns ok false\n// if none of the options match the group. It prefers a match to group and version over just group.\n// TODO: Move GroupVersion to a package under pkg/runtime, since it's used by scheme.\n// TODO: Introduce an adapter type between GroupVersion and runtime.GroupVersioner, and use LegacyCodec(GroupVersion)\n// in fewer places.\nfunc (gv GroupVersion) KindForGroupVersionKinds(kinds []GroupVersionKind) (target GroupVersionKind, ok bool) {\n\tfor _, gvk := range kinds {\n\t\tif gvk.Group == gv.Group && gvk.Version == gv.Version {\n\t\t\treturn gvk, true\n\t\t}\n\t}\n\tfor _, gvk := range kinds {\n\t\tif gvk.Group == gv.Group {\n\t\t\treturn gv.WithKind(gvk.Kind), true\n\t\t}\n\t}\n\treturn GroupVersionKind{}, false\n}\n\n// ParseGroupVersion turns \"group/version\" string into a GroupVersion struct. It reports error\n// if it cannot parse the string.\nfunc ParseGroupVersion(gv string) (GroupVersion, error) {\n\t// this can be the internal version for the legacy kube types\n\t// TODO once we've cleared the last uses as strings, this special case should be removed.\n\tif (len(gv) == 0) || (gv == \"/\") {\n\t\treturn GroupVersion{}, nil\n\t}\n\n\tswitch strings.Count(gv, \"/\") {\n\tcase 0:\n\t\treturn GroupVersion{\"\", gv}, nil\n\tcase 1:\n\t\ti := strings.Index(gv, \"/\")\n\t\treturn GroupVersion{gv[:i], gv[i+1:]}, nil\n\tdefault:\n\t\treturn GroupVersion{}, fmt.Errorf(\"unexpected GroupVersion string: %v\", gv)\n\t}\n}\n\n// WithKind creates a GroupVersionKind based on the method receiver's GroupVersion and the passed Kind.\nfunc (gv GroupVersion) WithKind(kind string) GroupVersionKind {\n\treturn GroupVersionKind{Group: gv.Group, Version: gv.Version, Kind: kind}\n}\n\n// WithResource creates a GroupVersionResource based on the method receiver's GroupVersion and the passed Resource.\nfunc (gv GroupVersion) WithResource(resource string) GroupVersionResource {\n\treturn GroupVersionResource{Group: gv.Group, Version: gv.Version, Resource: resource}\n}\n\n// GroupVersions can be used to represent a set of desired group versions.\n// TODO: Move GroupVersions to a package under pkg/runtime, since it's used by scheme.\n// TODO: Introduce an adapter type between GroupVersions and runtime.GroupVersioner, and use LegacyCodec(GroupVersion)\n// in fewer places.\ntype GroupVersions []GroupVersion\n\n// Identifier implements runtime.GroupVersioner interface.\nfunc (gvs GroupVersions) Identifier() string {\n\tgroupVersions := make([]string, 0, len(gvs))\n\tfor i := range gvs {\n\t\tgroupVersions = append(groupVersions, gvs[i].String())\n\t}\n\treturn fmt.Sprintf(\"[%s]\", strings.Join(groupVersions, \",\"))\n}\n\n// KindForGroupVersionKinds identifies the preferred GroupVersionKind out of a list. It returns ok false\n// if none of the options match the group.\nfunc (gvs GroupVersions) KindForGroupVersionKinds(kinds []GroupVersionKind) (GroupVersionKind, bool) {\n\tvar targets []GroupVersionKind\n\tfor _, gv := range gvs {\n\t\ttarget, ok := gv.KindForGroupVersionKinds(kinds)\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\ttargets = append(targets, target)\n\t}\n\tif len(targets) == 1 {\n\t\treturn targets[0], true\n\t}\n\tif len(targets) > 1 {\n\t\treturn bestMatch(kinds, targets), true\n\t}\n\treturn GroupVersionKind{}, false\n}\n\n// bestMatch tries to pick best matching GroupVersionKind and falls back to the first\n// found if no exact match exists.\nfunc bestMatch(kinds []GroupVersionKind, targets []GroupVersionKind) GroupVersionKind {\n\tfor _, gvk := range targets {\n\t\tfor _, k := range kinds {\n\t\t\tif k == gvk {\n\t\t\t\treturn k\n\t\t\t}\n\t\t}\n\t}\n\treturn targets[0]\n}\n\n// ToAPIVersionAndKind is a convenience method for satisfying runtime.Object on types that\n// do not use TypeMeta.\nfunc (gvk GroupVersionKind) ToAPIVersionAndKind() (string, string) {\n\tif gvk.Empty() {\n\t\treturn \"\", \"\"\n\t}\n\treturn gvk.GroupVersion().String(), gvk.Kind\n}\n\n// FromAPIVersionAndKind returns a GVK representing the provided fields for types that\n// do not use TypeMeta. This method exists to support test types and legacy serializations\n// that have a distinct group and kind.\n// TODO: further reduce usage of this method.\nfunc FromAPIVersionAndKind(apiVersion, kind string) GroupVersionKind {\n\tif gv, err := ParseGroupVersion(apiVersion); err == nil {\n\t\treturn GroupVersionKind{Group: gv.Group, Version: gv.Version, Kind: kind}\n\t}\n\treturn GroupVersionKind{Kind: kind}\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/schema/interfaces.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage schema\n\n// All objects that are serialized from a Scheme encode their type information. This interface is used\n// by serialization to set type information from the Scheme onto the serialized version of an object.\n// For objects that cannot be serialized or have unique requirements, this interface may be a no-op.\ntype ObjectKind interface {\n\t// SetGroupVersionKind sets or clears the intended serialized kind of an object. Passing kind nil\n\t// should clear the current setting.\n\tSetGroupVersionKind(kind GroupVersionKind)\n\t// GroupVersionKind returns the stored group, version, and kind of an object, or an empty struct\n\t// if the object does not expose or provide these fields.\n\tGroupVersionKind() GroupVersionKind\n}\n\n// EmptyObjectKind implements the ObjectKind interface as a noop\nvar EmptyObjectKind = emptyObjectKind{}\n\ntype emptyObjectKind struct{}\n\n// SetGroupVersionKind implements the ObjectKind interface\nfunc (emptyObjectKind) SetGroupVersionKind(gvk GroupVersionKind) {}\n\n// GroupVersionKind implements the ObjectKind interface\nfunc (emptyObjectKind) GroupVersionKind() GroupVersionKind { return GroupVersionKind{} }\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/scheme.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage runtime\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n\n\t\"k8s.io/apimachinery/pkg/conversion\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/util/naming\"\n\tutilruntime \"k8s.io/apimachinery/pkg/util/runtime\"\n\t\"k8s.io/apimachinery/pkg/util/sets\"\n)\n\n// Scheme defines methods for serializing and deserializing API objects, a type\n// registry for converting group, version, and kind information to and from Go\n// schemas, and mappings between Go schemas of different versions. A scheme is the\n// foundation for a versioned API and versioned configuration over time.\n//\n// In a Scheme, a Type is a particular Go struct, a Version is a point-in-time\n// identifier for a particular representation of that Type (typically backwards\n// compatible), a Kind is the unique name for that Type within the Version, and a\n// Group identifies a set of Versions, Kinds, and Types that evolve over time. An\n// Unversioned Type is one that is not yet formally bound to a type and is promised\n// to be backwards compatible (effectively a \"v1\" of a Type that does not expect\n// to break in the future).\n//\n// Schemes are not expected to change at runtime and are only threadsafe after\n// registration is complete.\ntype Scheme struct {\n\t// gvkToType allows one to figure out the go type of an object with\n\t// the given version and name.\n\tgvkToType map[schema.GroupVersionKind]reflect.Type\n\n\t// typeToGVK allows one to find metadata for a given go object.\n\t// The reflect.Type we index by should *not* be a pointer.\n\ttypeToGVK map[reflect.Type][]schema.GroupVersionKind\n\n\t// unversionedTypes are transformed without conversion in ConvertToVersion.\n\tunversionedTypes map[reflect.Type]schema.GroupVersionKind\n\n\t// unversionedKinds are the names of kinds that can be created in the context of any group\n\t// or version\n\t// TODO: resolve the status of unversioned types.\n\tunversionedKinds map[string]reflect.Type\n\n\t// Map from version and resource to the corresponding func to convert\n\t// resource field labels in that version to internal version.\n\tfieldLabelConversionFuncs map[schema.GroupVersionKind]FieldLabelConversionFunc\n\n\t// defaulterFuncs is a map to funcs to be called with an object to provide defaulting\n\t// the provided object must be a pointer.\n\tdefaulterFuncs map[reflect.Type]func(interface{})\n\n\t// converter stores all registered conversion functions. It also has\n\t// default converting behavior.\n\tconverter *conversion.Converter\n\n\t// versionPriority is a map of groups to ordered lists of versions for those groups indicating the\n\t// default priorities of these versions as registered in the scheme\n\tversionPriority map[string][]string\n\n\t// observedVersions keeps track of the order we've seen versions during type registration\n\tobservedVersions []schema.GroupVersion\n\n\t// schemeName is the name of this scheme.  If you don't specify a name, the stack of the NewScheme caller will be used.\n\t// This is useful for error reporting to indicate the origin of the scheme.\n\tschemeName string\n}\n\n// FieldLabelConversionFunc converts a field selector to internal representation.\ntype FieldLabelConversionFunc func(label, value string) (internalLabel, internalValue string, err error)\n\n// NewScheme creates a new Scheme. This scheme is pluggable by default.\nfunc NewScheme() *Scheme {\n\ts := &Scheme{\n\t\tgvkToType:                 map[schema.GroupVersionKind]reflect.Type{},\n\t\ttypeToGVK:                 map[reflect.Type][]schema.GroupVersionKind{},\n\t\tunversionedTypes:          map[reflect.Type]schema.GroupVersionKind{},\n\t\tunversionedKinds:          map[string]reflect.Type{},\n\t\tfieldLabelConversionFuncs: map[schema.GroupVersionKind]FieldLabelConversionFunc{},\n\t\tdefaulterFuncs:            map[reflect.Type]func(interface{}){},\n\t\tversionPriority:           map[string][]string{},\n\t\tschemeName:                naming.GetNameFromCallsite(internalPackages...),\n\t}\n\ts.converter = conversion.NewConverter(nil)\n\n\t// Enable couple default conversions by default.\n\tutilruntime.Must(RegisterEmbeddedConversions(s))\n\tutilruntime.Must(RegisterStringConversions(s))\n\treturn s\n}\n\n// Converter allows access to the converter for the scheme\nfunc (s *Scheme) Converter() *conversion.Converter {\n\treturn s.converter\n}\n\n// AddUnversionedTypes registers the provided types as \"unversioned\", which means that they follow special rules.\n// Whenever an object of this type is serialized, it is serialized with the provided group version and is not\n// converted. Thus unversioned objects are expected to remain backwards compatible forever, as if they were in an\n// API group and version that would never be updated.\n//\n// TODO: there is discussion about removing unversioned and replacing it with objects that are manifest into\n// every version with particular schemas. Resolve this method at that point.\nfunc (s *Scheme) AddUnversionedTypes(version schema.GroupVersion, types ...Object) {\n\ts.addObservedVersion(version)\n\ts.AddKnownTypes(version, types...)\n\tfor _, obj := range types {\n\t\tt := reflect.TypeOf(obj).Elem()\n\t\tgvk := version.WithKind(t.Name())\n\t\ts.unversionedTypes[t] = gvk\n\t\tif old, ok := s.unversionedKinds[gvk.Kind]; ok && t != old {\n\t\t\tpanic(fmt.Sprintf(\"%v.%v has already been registered as unversioned kind %q - kind name must be unique in scheme %q\", old.PkgPath(), old.Name(), gvk, s.schemeName))\n\t\t}\n\t\ts.unversionedKinds[gvk.Kind] = t\n\t}\n}\n\n// AddKnownTypes registers all types passed in 'types' as being members of version 'version'.\n// All objects passed to types should be pointers to structs. The name that go reports for\n// the struct becomes the \"kind\" field when encoding. Version may not be empty - use the\n// APIVersionInternal constant if you have a type that does not have a formal version.\nfunc (s *Scheme) AddKnownTypes(gv schema.GroupVersion, types ...Object) {\n\ts.addObservedVersion(gv)\n\tfor _, obj := range types {\n\t\tt := reflect.TypeOf(obj)\n\t\tif t.Kind() != reflect.Pointer {\n\t\t\tpanic(\"All types must be pointers to structs.\")\n\t\t}\n\t\tt = t.Elem()\n\t\ts.AddKnownTypeWithName(gv.WithKind(t.Name()), obj)\n\t}\n}\n\n// AddKnownTypeWithName is like AddKnownTypes, but it lets you specify what this type should\n// be encoded as. Useful for testing when you don't want to make multiple packages to define\n// your structs. Version may not be empty - use the APIVersionInternal constant if you have a\n// type that does not have a formal version.\nfunc (s *Scheme) AddKnownTypeWithName(gvk schema.GroupVersionKind, obj Object) {\n\ts.addObservedVersion(gvk.GroupVersion())\n\tt := reflect.TypeOf(obj)\n\tif len(gvk.Version) == 0 {\n\t\tpanic(fmt.Sprintf(\"version is required on all types: %s %v\", gvk, t))\n\t}\n\tif t.Kind() != reflect.Pointer {\n\t\tpanic(\"All types must be pointers to structs.\")\n\t}\n\tt = t.Elem()\n\tif t.Kind() != reflect.Struct {\n\t\tpanic(\"All types must be pointers to structs.\")\n\t}\n\n\tif oldT, found := s.gvkToType[gvk]; found && oldT != t {\n\t\tpanic(fmt.Sprintf(\"Double registration of different types for %v: old=%v.%v, new=%v.%v in scheme %q\", gvk, oldT.PkgPath(), oldT.Name(), t.PkgPath(), t.Name(), s.schemeName))\n\t}\n\n\ts.gvkToType[gvk] = t\n\n\tfor _, existingGvk := range s.typeToGVK[t] {\n\t\tif existingGvk == gvk {\n\t\t\treturn\n\t\t}\n\t}\n\ts.typeToGVK[t] = append(s.typeToGVK[t], gvk)\n\n\t// if the type implements DeepCopyInto(<obj>), register a self-conversion\n\tif m := reflect.ValueOf(obj).MethodByName(\"DeepCopyInto\"); m.IsValid() && m.Type().NumIn() == 1 && m.Type().NumOut() == 0 && m.Type().In(0) == reflect.TypeOf(obj) {\n\t\tif err := s.AddGeneratedConversionFunc(obj, obj, func(a, b interface{}, scope conversion.Scope) error {\n\t\t\t// copy a to b\n\t\t\treflect.ValueOf(a).MethodByName(\"DeepCopyInto\").Call([]reflect.Value{reflect.ValueOf(b)})\n\t\t\t// clear TypeMeta to match legacy reflective conversion\n\t\t\tb.(Object).GetObjectKind().SetGroupVersionKind(schema.GroupVersionKind{})\n\t\t\treturn nil\n\t\t}); err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n}\n\n// KnownTypes returns the types known for the given version.\nfunc (s *Scheme) KnownTypes(gv schema.GroupVersion) map[string]reflect.Type {\n\ttypes := make(map[string]reflect.Type)\n\tfor gvk, t := range s.gvkToType {\n\t\tif gv != gvk.GroupVersion() {\n\t\t\tcontinue\n\t\t}\n\n\t\ttypes[gvk.Kind] = t\n\t}\n\treturn types\n}\n\n// VersionsForGroupKind returns the versions that a particular GroupKind can be converted to within the given group.\n// A GroupKind might be converted to a different group. That information is available in EquivalentResourceMapper.\nfunc (s *Scheme) VersionsForGroupKind(gk schema.GroupKind) []schema.GroupVersion {\n\tavailableVersions := []schema.GroupVersion{}\n\tfor gvk := range s.gvkToType {\n\t\tif gk != gvk.GroupKind() {\n\t\t\tcontinue\n\t\t}\n\n\t\tavailableVersions = append(availableVersions, gvk.GroupVersion())\n\t}\n\n\t// order the return for stability\n\tret := []schema.GroupVersion{}\n\tfor _, version := range s.PrioritizedVersionsForGroup(gk.Group) {\n\t\tfor _, availableVersion := range availableVersions {\n\t\t\tif version != availableVersion {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tret = append(ret, availableVersion)\n\t\t}\n\t}\n\n\treturn ret\n}\n\n// AllKnownTypes returns the all known types.\nfunc (s *Scheme) AllKnownTypes() map[schema.GroupVersionKind]reflect.Type {\n\treturn s.gvkToType\n}\n\n// ObjectKinds returns all possible group,version,kind of the go object, true if the\n// object is considered unversioned, or an error if it's not a pointer or is unregistered.\nfunc (s *Scheme) ObjectKinds(obj Object) ([]schema.GroupVersionKind, bool, error) {\n\t// Unstructured objects are always considered to have their declared GVK\n\tif _, ok := obj.(Unstructured); ok {\n\t\t// we require that the GVK be populated in order to recognize the object\n\t\tgvk := obj.GetObjectKind().GroupVersionKind()\n\t\tif len(gvk.Kind) == 0 {\n\t\t\treturn nil, false, NewMissingKindErr(\"unstructured object has no kind\")\n\t\t}\n\t\tif len(gvk.Version) == 0 {\n\t\t\treturn nil, false, NewMissingVersionErr(\"unstructured object has no version\")\n\t\t}\n\t\treturn []schema.GroupVersionKind{gvk}, false, nil\n\t}\n\n\tv, err := conversion.EnforcePtr(obj)\n\tif err != nil {\n\t\treturn nil, false, err\n\t}\n\tt := v.Type()\n\n\tgvks, ok := s.typeToGVK[t]\n\tif !ok {\n\t\treturn nil, false, NewNotRegisteredErrForType(s.schemeName, t)\n\t}\n\t_, unversionedType := s.unversionedTypes[t]\n\n\treturn gvks, unversionedType, nil\n}\n\n// Recognizes returns true if the scheme is able to handle the provided group,version,kind\n// of an object.\nfunc (s *Scheme) Recognizes(gvk schema.GroupVersionKind) bool {\n\t_, exists := s.gvkToType[gvk]\n\treturn exists\n}\n\nfunc (s *Scheme) IsUnversioned(obj Object) (bool, bool) {\n\tv, err := conversion.EnforcePtr(obj)\n\tif err != nil {\n\t\treturn false, false\n\t}\n\tt := v.Type()\n\n\tif _, ok := s.typeToGVK[t]; !ok {\n\t\treturn false, false\n\t}\n\t_, ok := s.unversionedTypes[t]\n\treturn ok, true\n}\n\n// New returns a new API object of the given version and name, or an error if it hasn't\n// been registered. The version and kind fields must be specified.\nfunc (s *Scheme) New(kind schema.GroupVersionKind) (Object, error) {\n\tif t, exists := s.gvkToType[kind]; exists {\n\t\treturn reflect.New(t).Interface().(Object), nil\n\t}\n\n\tif t, exists := s.unversionedKinds[kind.Kind]; exists {\n\t\treturn reflect.New(t).Interface().(Object), nil\n\t}\n\treturn nil, NewNotRegisteredErrForKind(s.schemeName, kind)\n}\n\n// AddIgnoredConversionType identifies a pair of types that should be skipped by\n// conversion (because the data inside them is explicitly dropped during\n// conversion).\nfunc (s *Scheme) AddIgnoredConversionType(from, to interface{}) error {\n\treturn s.converter.RegisterIgnoredConversion(from, to)\n}\n\n// AddConversionFunc registers a function that converts between a and b by passing objects of those\n// types to the provided function. The function *must* accept objects of a and b - this machinery will not enforce\n// any other guarantee.\nfunc (s *Scheme) AddConversionFunc(a, b interface{}, fn conversion.ConversionFunc) error {\n\treturn s.converter.RegisterUntypedConversionFunc(a, b, fn)\n}\n\n// AddGeneratedConversionFunc registers a function that converts between a and b by passing objects of those\n// types to the provided function. The function *must* accept objects of a and b - this machinery will not enforce\n// any other guarantee.\nfunc (s *Scheme) AddGeneratedConversionFunc(a, b interface{}, fn conversion.ConversionFunc) error {\n\treturn s.converter.RegisterGeneratedUntypedConversionFunc(a, b, fn)\n}\n\n// AddFieldLabelConversionFunc adds a conversion function to convert field selectors\n// of the given kind from the given version to internal version representation.\nfunc (s *Scheme) AddFieldLabelConversionFunc(gvk schema.GroupVersionKind, conversionFunc FieldLabelConversionFunc) error {\n\ts.fieldLabelConversionFuncs[gvk] = conversionFunc\n\treturn nil\n}\n\n// AddTypeDefaultingFunc registers a function that is passed a pointer to an\n// object and can default fields on the object. These functions will be invoked\n// when Default() is called. The function will never be called unless the\n// defaulted object matches srcType. If this function is invoked twice with the\n// same srcType, the fn passed to the later call will be used instead.\nfunc (s *Scheme) AddTypeDefaultingFunc(srcType Object, fn func(interface{})) {\n\ts.defaulterFuncs[reflect.TypeOf(srcType)] = fn\n}\n\n// Default sets defaults on the provided Object.\nfunc (s *Scheme) Default(src Object) {\n\tif fn, ok := s.defaulterFuncs[reflect.TypeOf(src)]; ok {\n\t\tfn(src)\n\t}\n}\n\n// Convert will attempt to convert in into out. Both must be pointers. For easy\n// testing of conversion functions. Returns an error if the conversion isn't\n// possible. You can call this with types that haven't been registered (for example,\n// a to test conversion of types that are nested within registered types). The\n// context interface is passed to the convertor. Convert also supports Unstructured\n// types and will convert them intelligently.\nfunc (s *Scheme) Convert(in, out interface{}, context interface{}) error {\n\tunstructuredIn, okIn := in.(Unstructured)\n\tunstructuredOut, okOut := out.(Unstructured)\n\tswitch {\n\tcase okIn && okOut:\n\t\t// converting unstructured input to an unstructured output is a straight copy - unstructured\n\t\t// is a \"smart holder\" and the contents are passed by reference between the two objects\n\t\tunstructuredOut.SetUnstructuredContent(unstructuredIn.UnstructuredContent())\n\t\treturn nil\n\n\tcase okOut:\n\t\t// if the output is an unstructured object, use the standard Go type to unstructured\n\t\t// conversion. The object must not be internal.\n\t\tobj, ok := in.(Object)\n\t\tif !ok {\n\t\t\treturn fmt.Errorf(\"unable to convert object type %T to Unstructured, must be a runtime.Object\", in)\n\t\t}\n\t\tgvks, unversioned, err := s.ObjectKinds(obj)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tgvk := gvks[0]\n\n\t\t// if no conversion is necessary, convert immediately\n\t\tif unversioned || gvk.Version != APIVersionInternal {\n\t\t\tcontent, err := DefaultUnstructuredConverter.ToUnstructured(in)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tunstructuredOut.SetUnstructuredContent(content)\n\t\t\tunstructuredOut.GetObjectKind().SetGroupVersionKind(gvk)\n\t\t\treturn nil\n\t\t}\n\n\t\t// attempt to convert the object to an external version first.\n\t\ttarget, ok := context.(GroupVersioner)\n\t\tif !ok {\n\t\t\treturn fmt.Errorf(\"unable to convert the internal object type %T to Unstructured without providing a preferred version to convert to\", in)\n\t\t}\n\t\t// Convert is implicitly unsafe, so we don't need to perform a safe conversion\n\t\tversioned, err := s.UnsafeConvertToVersion(obj, target)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcontent, err := DefaultUnstructuredConverter.ToUnstructured(versioned)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tunstructuredOut.SetUnstructuredContent(content)\n\t\treturn nil\n\n\tcase okIn:\n\t\t// converting an unstructured object to any type is modeled by first converting\n\t\t// the input to a versioned type, then running standard conversions\n\t\ttyped, err := s.unstructuredToTyped(unstructuredIn)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tin = typed\n\t}\n\n\tmeta := s.generateConvertMeta(in)\n\tmeta.Context = context\n\treturn s.converter.Convert(in, out, meta)\n}\n\n// ConvertFieldLabel alters the given field label and value for an kind field selector from\n// versioned representation to an unversioned one or returns an error.\nfunc (s *Scheme) ConvertFieldLabel(gvk schema.GroupVersionKind, label, value string) (string, string, error) {\n\tconversionFunc, ok := s.fieldLabelConversionFuncs[gvk]\n\tif !ok {\n\t\treturn DefaultMetaV1FieldSelectorConversion(label, value)\n\t}\n\treturn conversionFunc(label, value)\n}\n\n// ConvertToVersion attempts to convert an input object to its matching Kind in another\n// version within this scheme. Will return an error if the provided version does not\n// contain the inKind (or a mapping by name defined with AddKnownTypeWithName). Will also\n// return an error if the conversion does not result in a valid Object being\n// returned. Passes target down to the conversion methods as the Context on the scope.\nfunc (s *Scheme) ConvertToVersion(in Object, target GroupVersioner) (Object, error) {\n\treturn s.convertToVersion(true, in, target)\n}\n\n// UnsafeConvertToVersion will convert in to the provided target if such a conversion is possible,\n// but does not guarantee the output object does not share fields with the input object. It attempts to be as\n// efficient as possible when doing conversion.\nfunc (s *Scheme) UnsafeConvertToVersion(in Object, target GroupVersioner) (Object, error) {\n\treturn s.convertToVersion(false, in, target)\n}\n\n// convertToVersion handles conversion with an optional copy.\nfunc (s *Scheme) convertToVersion(copy bool, in Object, target GroupVersioner) (Object, error) {\n\tvar t reflect.Type\n\n\tif u, ok := in.(Unstructured); ok {\n\t\ttyped, err := s.unstructuredToTyped(u)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tin = typed\n\t\t// unstructuredToTyped returns an Object, which must be a pointer to a struct.\n\t\tt = reflect.TypeOf(in).Elem()\n\n\t} else {\n\t\t// determine the incoming kinds with as few allocations as possible.\n\t\tt = reflect.TypeOf(in)\n\t\tif t.Kind() != reflect.Pointer {\n\t\t\treturn nil, fmt.Errorf(\"only pointer types may be converted: %v\", t)\n\t\t}\n\t\tt = t.Elem()\n\t\tif t.Kind() != reflect.Struct {\n\t\t\treturn nil, fmt.Errorf(\"only pointers to struct types may be converted: %v\", t)\n\t\t}\n\t}\n\n\tkinds, ok := s.typeToGVK[t]\n\tif !ok || len(kinds) == 0 {\n\t\treturn nil, NewNotRegisteredErrForType(s.schemeName, t)\n\t}\n\n\tgvk, ok := target.KindForGroupVersionKinds(kinds)\n\tif !ok {\n\t\t// try to see if this type is listed as unversioned (for legacy support)\n\t\t// TODO: when we move to server API versions, we should completely remove the unversioned concept\n\t\tif unversionedKind, ok := s.unversionedTypes[t]; ok {\n\t\t\tif gvk, ok := target.KindForGroupVersionKinds([]schema.GroupVersionKind{unversionedKind}); ok {\n\t\t\t\treturn copyAndSetTargetKind(copy, in, gvk)\n\t\t\t}\n\t\t\treturn copyAndSetTargetKind(copy, in, unversionedKind)\n\t\t}\n\t\treturn nil, NewNotRegisteredErrForTarget(s.schemeName, t, target)\n\t}\n\n\t// target wants to use the existing type, set kind and return (no conversion necessary)\n\tfor _, kind := range kinds {\n\t\tif gvk == kind {\n\t\t\treturn copyAndSetTargetKind(copy, in, gvk)\n\t\t}\n\t}\n\n\t// type is unversioned, no conversion necessary\n\tif unversionedKind, ok := s.unversionedTypes[t]; ok {\n\t\tif gvk, ok := target.KindForGroupVersionKinds([]schema.GroupVersionKind{unversionedKind}); ok {\n\t\t\treturn copyAndSetTargetKind(copy, in, gvk)\n\t\t}\n\t\treturn copyAndSetTargetKind(copy, in, unversionedKind)\n\t}\n\n\tout, err := s.New(gvk)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif copy {\n\t\tin = in.DeepCopyObject()\n\t}\n\n\tmeta := s.generateConvertMeta(in)\n\tmeta.Context = target\n\tif err := s.converter.Convert(in, out, meta); err != nil {\n\t\treturn nil, err\n\t}\n\n\tsetTargetKind(out, gvk)\n\treturn out, nil\n}\n\n// unstructuredToTyped attempts to transform an unstructured object to a typed\n// object if possible. It will return an error if conversion is not possible, or the versioned\n// Go form of the object. Note that this conversion will lose fields.\nfunc (s *Scheme) unstructuredToTyped(in Unstructured) (Object, error) {\n\t// the type must be something we recognize\n\tgvks, _, err := s.ObjectKinds(in)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\ttyped, err := s.New(gvks[0])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif err := DefaultUnstructuredConverter.FromUnstructured(in.UnstructuredContent(), typed); err != nil {\n\t\treturn nil, fmt.Errorf(\"unable to convert unstructured object to %v: %v\", gvks[0], err)\n\t}\n\treturn typed, nil\n}\n\n// generateConvertMeta constructs the meta value we pass to Convert.\nfunc (s *Scheme) generateConvertMeta(in interface{}) *conversion.Meta {\n\treturn s.converter.DefaultMeta(reflect.TypeOf(in))\n}\n\n// copyAndSetTargetKind performs a conditional copy before returning the object, or an error if copy was not successful.\nfunc copyAndSetTargetKind(copy bool, obj Object, kind schema.GroupVersionKind) (Object, error) {\n\tif copy {\n\t\tobj = obj.DeepCopyObject()\n\t}\n\tsetTargetKind(obj, kind)\n\treturn obj, nil\n}\n\n// setTargetKind sets the kind on an object, taking into account whether the target kind is the internal version.\nfunc setTargetKind(obj Object, kind schema.GroupVersionKind) {\n\tif kind.Version == APIVersionInternal {\n\t\t// internal is a special case\n\t\t// TODO: look at removing the need to special case this\n\t\tobj.GetObjectKind().SetGroupVersionKind(schema.GroupVersionKind{})\n\t\treturn\n\t}\n\tobj.GetObjectKind().SetGroupVersionKind(kind)\n}\n\n// SetVersionPriority allows specifying a precise order of priority. All specified versions must be in the same group,\n// and the specified order overwrites any previously specified order for this group\nfunc (s *Scheme) SetVersionPriority(versions ...schema.GroupVersion) error {\n\tgroups := sets.String{}\n\torder := []string{}\n\tfor _, version := range versions {\n\t\tif len(version.Version) == 0 || version.Version == APIVersionInternal {\n\t\t\treturn fmt.Errorf(\"internal versions cannot be prioritized: %v\", version)\n\t\t}\n\n\t\tgroups.Insert(version.Group)\n\t\torder = append(order, version.Version)\n\t}\n\tif len(groups) != 1 {\n\t\treturn fmt.Errorf(\"must register versions for exactly one group: %v\", strings.Join(groups.List(), \", \"))\n\t}\n\n\ts.versionPriority[groups.List()[0]] = order\n\treturn nil\n}\n\n// PrioritizedVersionsForGroup returns versions for a single group in priority order\nfunc (s *Scheme) PrioritizedVersionsForGroup(group string) []schema.GroupVersion {\n\tret := []schema.GroupVersion{}\n\tfor _, version := range s.versionPriority[group] {\n\t\tret = append(ret, schema.GroupVersion{Group: group, Version: version})\n\t}\n\tfor _, observedVersion := range s.observedVersions {\n\t\tif observedVersion.Group != group {\n\t\t\tcontinue\n\t\t}\n\t\tfound := false\n\t\tfor _, existing := range ret {\n\t\t\tif existing == observedVersion {\n\t\t\t\tfound = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif !found {\n\t\t\tret = append(ret, observedVersion)\n\t\t}\n\t}\n\n\treturn ret\n}\n\n// PrioritizedVersionsAllGroups returns all known versions in their priority order.  Groups are random, but\n// versions for a single group are prioritized\nfunc (s *Scheme) PrioritizedVersionsAllGroups() []schema.GroupVersion {\n\tret := []schema.GroupVersion{}\n\tfor group, versions := range s.versionPriority {\n\t\tfor _, version := range versions {\n\t\t\tret = append(ret, schema.GroupVersion{Group: group, Version: version})\n\t\t}\n\t}\n\tfor _, observedVersion := range s.observedVersions {\n\t\tfound := false\n\t\tfor _, existing := range ret {\n\t\t\tif existing == observedVersion {\n\t\t\t\tfound = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif !found {\n\t\t\tret = append(ret, observedVersion)\n\t\t}\n\t}\n\treturn ret\n}\n\n// PreferredVersionAllGroups returns the most preferred version for every group.\n// group ordering is random.\nfunc (s *Scheme) PreferredVersionAllGroups() []schema.GroupVersion {\n\tret := []schema.GroupVersion{}\n\tfor group, versions := range s.versionPriority {\n\t\tfor _, version := range versions {\n\t\t\tret = append(ret, schema.GroupVersion{Group: group, Version: version})\n\t\t\tbreak\n\t\t}\n\t}\n\tfor _, observedVersion := range s.observedVersions {\n\t\tfound := false\n\t\tfor _, existing := range ret {\n\t\t\tif existing.Group == observedVersion.Group {\n\t\t\t\tfound = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif !found {\n\t\t\tret = append(ret, observedVersion)\n\t\t}\n\t}\n\n\treturn ret\n}\n\n// IsGroupRegistered returns true if types for the group have been registered with the scheme\nfunc (s *Scheme) IsGroupRegistered(group string) bool {\n\tfor _, observedVersion := range s.observedVersions {\n\t\tif observedVersion.Group == group {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// IsVersionRegistered returns true if types for the version have been registered with the scheme\nfunc (s *Scheme) IsVersionRegistered(version schema.GroupVersion) bool {\n\tfor _, observedVersion := range s.observedVersions {\n\t\tif observedVersion == version {\n\t\t\treturn true\n\t\t}\n\t}\n\n\treturn false\n}\n\nfunc (s *Scheme) addObservedVersion(version schema.GroupVersion) {\n\tif len(version.Version) == 0 || version.Version == APIVersionInternal {\n\t\treturn\n\t}\n\tfor _, observedVersion := range s.observedVersions {\n\t\tif observedVersion == version {\n\t\t\treturn\n\t\t}\n\t}\n\n\ts.observedVersions = append(s.observedVersions, version)\n}\n\nfunc (s *Scheme) Name() string {\n\treturn s.schemeName\n}\n\n// internalPackages are packages that ignored when creating a default reflector name. These packages are in the common\n// call chains to NewReflector, so they'd be low entropy names for reflectors\nvar internalPackages = []string{\"k8s.io/apimachinery/pkg/runtime/scheme.go\"}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/scheme_builder.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage runtime\n\n// SchemeBuilder collects functions that add things to a scheme. It's to allow\n// code to compile without explicitly referencing generated types. You should\n// declare one in each package that will have generated deep copy or conversion\n// functions.\ntype SchemeBuilder []func(*Scheme) error\n\n// AddToScheme applies all the stored functions to the scheme. A non-nil error\n// indicates that one function failed and the attempt was abandoned.\nfunc (sb *SchemeBuilder) AddToScheme(s *Scheme) error {\n\tfor _, f := range *sb {\n\t\tif err := f(s); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// Register adds a scheme setup function to the list.\nfunc (sb *SchemeBuilder) Register(funcs ...func(*Scheme) error) {\n\tfor _, f := range funcs {\n\t\t*sb = append(*sb, f)\n\t}\n}\n\n// NewSchemeBuilder calls Register for you.\nfunc NewSchemeBuilder(funcs ...func(*Scheme) error) SchemeBuilder {\n\tvar sb SchemeBuilder\n\tsb.Register(funcs...)\n\treturn sb\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/serializer/cbor/cbor.go",
    "content": "/*\nCopyright 2024 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage cbor\n\nimport (\n\t\"bytes\"\n\t\"encoding/hex\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"strings\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/runtime/serializer/cbor/internal/modes\"\n\t\"k8s.io/apimachinery/pkg/runtime/serializer/recognizer\"\n\tutil \"k8s.io/apimachinery/pkg/util/runtime\"\n\n\t\"github.com/fxamacker/cbor/v2\"\n)\n\ntype metaFactory interface {\n\t// Interpret should return the version and kind of the wire-format of the object.\n\tInterpret(data []byte) (*schema.GroupVersionKind, error)\n}\n\ntype defaultMetaFactory struct{}\n\nfunc (mf *defaultMetaFactory) Interpret(data []byte) (*schema.GroupVersionKind, error) {\n\tvar tm metav1.TypeMeta\n\t// The input is expected to include additional map keys besides apiVersion and kind, so use\n\t// lax mode for decoding into TypeMeta.\n\tif err := modes.DecodeLax.Unmarshal(data, &tm); err != nil {\n\t\treturn nil, fmt.Errorf(\"unable to determine group/version/kind: %w\", err)\n\t}\n\tactual := tm.GetObjectKind().GroupVersionKind()\n\treturn &actual, nil\n}\n\ntype Serializer interface {\n\truntime.Serializer\n\truntime.NondeterministicEncoder\n\trecognizer.RecognizingDecoder\n\n\t// NewSerializer returns a value of this interface type rather than exporting the serializer\n\t// type and returning one of those because the zero value of serializer isn't ready to\n\t// use. Users aren't intended to implement cbor.Serializer themselves, and this unexported\n\t// interface method is here to prevent that (https://go.dev/blog/module-compatibility).\n\tprivate()\n}\n\nvar _ Serializer = &serializer{}\n\ntype options struct {\n\tstrict    bool\n\ttranscode bool\n}\n\ntype Option func(*options)\n\n// Strict configures a serializer to return a strict decoding error when it encounters map keys that\n// do not correspond to a field in the target object of a decode operation. This option is disabled\n// by default.\nfunc Strict(s bool) Option {\n\treturn func(opts *options) {\n\t\topts.strict = s\n\t}\n}\n\n// Transcode configures a serializer to transcode the \"raw\" bytes of a decoded runtime.RawExtension\n// or metav1.FieldsV1 object to JSON. This is enabled by default to support existing programs that\n// depend on the assumption that objects of either type contain valid JSON.\nfunc Transcode(s bool) Option {\n\treturn func(opts *options) {\n\t\topts.transcode = s\n\t}\n}\n\ntype serializer struct {\n\tmetaFactory metaFactory\n\tcreater     runtime.ObjectCreater\n\ttyper       runtime.ObjectTyper\n\toptions     options\n}\n\nfunc (serializer) private() {}\n\n// NewSerializer creates and returns a serializer configured with the provided options. The default\n// options are equivalent to explicitly passing Strict(false) and Transcode(true).\nfunc NewSerializer(creater runtime.ObjectCreater, typer runtime.ObjectTyper, options ...Option) Serializer {\n\treturn newSerializer(&defaultMetaFactory{}, creater, typer, options...)\n}\n\nfunc newSerializer(metaFactory metaFactory, creater runtime.ObjectCreater, typer runtime.ObjectTyper, options ...Option) *serializer {\n\ts := &serializer{\n\t\tmetaFactory: metaFactory,\n\t\tcreater:     creater,\n\t\ttyper:       typer,\n\t}\n\ts.options.transcode = true\n\tfor _, o := range options {\n\t\to(&s.options)\n\t}\n\treturn s\n}\n\nfunc (s *serializer) Identifier() runtime.Identifier {\n\treturn \"cbor\"\n}\n\n// Encode writes a CBOR representation of the given object.\n//\n// Because the CBOR data item written by a call to Encode is always enclosed in the \"self-described\n// CBOR\" tag, its encoded form always has the prefix 0xd9d9f7. This prefix is suitable for use as a\n// \"magic number\" for distinguishing encoded CBOR from other protocols.\n//\n// The default serialization behavior for any given object replicates the behavior of the JSON\n// serializer as far as it is necessary to allow the CBOR serializer to be used as a drop-in\n// replacement for the JSON serializer, with limited exceptions. For example, the distinction\n// between integers and floating-point numbers is preserved in CBOR due to its distinct\n// representations for each type.\n//\n// Objects implementing runtime.Unstructured will have their unstructured content encoded rather\n// than following the default behavior for their dynamic type.\nfunc (s *serializer) Encode(obj runtime.Object, w io.Writer) error {\n\treturn s.encode(modes.Encode, obj, w)\n}\n\nfunc (s *serializer) EncodeNondeterministic(obj runtime.Object, w io.Writer) error {\n\treturn s.encode(modes.EncodeNondeterministic, obj, w)\n}\n\nfunc (s *serializer) encode(mode modes.EncMode, obj runtime.Object, w io.Writer) error {\n\tvar v interface{} = obj\n\tif u, ok := obj.(runtime.Unstructured); ok {\n\t\tv = u.UnstructuredContent()\n\t}\n\n\tif err := modes.RejectCustomMarshalers(v); err != nil {\n\t\treturn err\n\t}\n\n\tif _, err := w.Write(selfDescribedCBOR); err != nil {\n\t\treturn err\n\t}\n\n\treturn mode.MarshalTo(v, w)\n}\n\n// gvkWithDefaults returns group kind and version defaulting from provided default\nfunc gvkWithDefaults(actual, defaultGVK schema.GroupVersionKind) schema.GroupVersionKind {\n\tif len(actual.Kind) == 0 {\n\t\tactual.Kind = defaultGVK.Kind\n\t}\n\tif len(actual.Version) == 0 && len(actual.Group) == 0 {\n\t\tactual.Group = defaultGVK.Group\n\t\tactual.Version = defaultGVK.Version\n\t}\n\tif len(actual.Version) == 0 && actual.Group == defaultGVK.Group {\n\t\tactual.Version = defaultGVK.Version\n\t}\n\treturn actual\n}\n\n// diagnose returns the diagnostic encoding of a well-formed CBOR data item.\nfunc diagnose(data []byte) string {\n\tdiag, err := modes.Diagnostic.Diagnose(data)\n\tif err != nil {\n\t\t// Since the input must already be well-formed CBOR, converting it to diagnostic\n\t\t// notation should not fail.\n\t\tutil.HandleError(err)\n\n\t\treturn hex.EncodeToString(data)\n\t}\n\treturn diag\n}\n\n// unmarshal unmarshals CBOR data from the provided byte slice into a Go object. If the decoder is\n// configured to report strict errors, the first error return value may be a non-nil strict decoding\n// error. If the last error return value is non-nil, then the unmarshal failed entirely and the\n// state of the destination object should not be relied on.\nfunc (s *serializer) unmarshal(data []byte, into interface{}) (strict, lax error) {\n\tif u, ok := into.(runtime.Unstructured); ok {\n\t\tvar content map[string]interface{}\n\t\tdefer func() {\n\t\t\tswitch u := u.(type) {\n\t\t\tcase *unstructured.UnstructuredList:\n\t\t\t\t// UnstructuredList's implementation of SetUnstructuredContent\n\t\t\t\t// produces different objects than those produced by a decode using\n\t\t\t\t// UnstructuredJSONScheme:\n\t\t\t\t//\n\t\t\t\t//   1. SetUnstructuredContent retains the \"items\" key in the list's\n\t\t\t\t//      Object field. It is omitted from Object when decoding with\n\t\t\t\t//      UnstructuredJSONScheme.\n\t\t\t\t//   2. SetUnstructuredContent does not populate \"apiVersion\" and\n\t\t\t\t//      \"kind\" on each entry of its Items\n\t\t\t\t//      field. UnstructuredJSONScheme does, inferring the singular\n\t\t\t\t//      Kind from the list Kind.\n\t\t\t\t//   3. SetUnstructuredContent ignores entries of \"items\" that are\n\t\t\t\t//      not JSON objects or are objects without\n\t\t\t\t//      \"kind\". UnstructuredJSONScheme returns an error in either\n\t\t\t\t//      case.\n\t\t\t\t//\n\t\t\t\t// UnstructuredJSONScheme's behavior is replicated here.\n\t\t\t\tvar items []interface{}\n\t\t\t\tif uncast, present := content[\"items\"]; present {\n\t\t\t\t\tvar cast bool\n\t\t\t\t\titems, cast = uncast.([]interface{})\n\t\t\t\t\tif !cast {\n\t\t\t\t\t\tstrict, lax = nil, fmt.Errorf(\"items field of UnstructuredList must be encoded as an array or null if present\")\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tapiVersion, _ := content[\"apiVersion\"].(string)\n\t\t\t\tkind, _ := content[\"kind\"].(string)\n\t\t\t\tkind = strings.TrimSuffix(kind, \"List\")\n\t\t\t\tvar unstructureds []unstructured.Unstructured\n\t\t\t\tif len(items) > 0 {\n\t\t\t\t\tunstructureds = make([]unstructured.Unstructured, len(items))\n\t\t\t\t}\n\t\t\t\tfor i := range items {\n\t\t\t\t\tobject, cast := items[i].(map[string]interface{})\n\t\t\t\t\tif !cast {\n\t\t\t\t\t\tstrict, lax = nil, fmt.Errorf(\"elements of the items field of UnstructuredList must be encoded as a map\")\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\n\t\t\t\t\t// As in UnstructuredJSONScheme, only set the heuristic\n\t\t\t\t\t// singular GVK when both \"apiVersion\" and \"kind\" are either\n\t\t\t\t\t// missing, non-string, or empty.\n\t\t\t\t\tobject[\"apiVersion\"], _ = object[\"apiVersion\"].(string)\n\t\t\t\t\tobject[\"kind\"], _ = object[\"kind\"].(string)\n\t\t\t\t\tif object[\"apiVersion\"] == \"\" && object[\"kind\"] == \"\" {\n\t\t\t\t\t\tobject[\"apiVersion\"] = apiVersion\n\t\t\t\t\t\tobject[\"kind\"] = kind\n\t\t\t\t\t}\n\n\t\t\t\t\tif object[\"kind\"] == \"\" {\n\t\t\t\t\t\tstrict, lax = nil, runtime.NewMissingKindErr(diagnose(data))\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tif object[\"apiVersion\"] == \"\" {\n\t\t\t\t\t\tstrict, lax = nil, runtime.NewMissingVersionErr(diagnose(data))\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\n\t\t\t\t\tunstructureds[i].Object = object\n\t\t\t\t}\n\t\t\t\tdelete(content, \"items\")\n\t\t\t\tu.Object = content\n\t\t\t\tu.Items = unstructureds\n\t\t\tdefault:\n\t\t\t\tu.SetUnstructuredContent(content)\n\t\t\t}\n\t\t}()\n\t\tinto = &content\n\t} else if err := modes.RejectCustomMarshalers(into); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif !s.options.strict {\n\t\treturn nil, modes.DecodeLax.Unmarshal(data, into)\n\t}\n\n\terr := modes.Decode.Unmarshal(data, into)\n\t// TODO: UnknownFieldError is ambiguous. It only provides the index of the first problematic\n\t// map entry encountered and does not indicate which map the index refers to.\n\tvar unknownField *cbor.UnknownFieldError\n\tif errors.As(err, &unknownField) {\n\t\t// Unlike JSON, there are no strict errors in CBOR for duplicate map keys. CBOR maps\n\t\t// with duplicate keys are considered invalid according to the spec and are rejected\n\t\t// entirely.\n\t\treturn runtime.NewStrictDecodingError([]error{unknownField}), modes.DecodeLax.Unmarshal(data, into)\n\t}\n\treturn nil, err\n}\n\nfunc (s *serializer) Decode(data []byte, gvk *schema.GroupVersionKind, into runtime.Object) (runtime.Object, *schema.GroupVersionKind, error) {\n\t// A preliminary pass over the input to obtain the actual GVK is redundant on a successful\n\t// decode into Unstructured.\n\tif _, ok := into.(runtime.Unstructured); ok {\n\t\tif _, unmarshalErr := s.unmarshal(data, into); unmarshalErr != nil {\n\t\t\tactual, interpretErr := s.metaFactory.Interpret(data)\n\t\t\tif interpretErr != nil {\n\t\t\t\treturn nil, nil, interpretErr\n\t\t\t}\n\n\t\t\tif gvk != nil {\n\t\t\t\t*actual = gvkWithDefaults(*actual, *gvk)\n\t\t\t}\n\n\t\t\treturn nil, actual, unmarshalErr\n\t\t}\n\n\t\tactual := into.GetObjectKind().GroupVersionKind()\n\t\tif len(actual.Kind) == 0 {\n\t\t\treturn nil, &actual, runtime.NewMissingKindErr(diagnose(data))\n\t\t}\n\t\tif len(actual.Version) == 0 {\n\t\t\treturn nil, &actual, runtime.NewMissingVersionErr(diagnose(data))\n\t\t}\n\n\t\treturn into, &actual, nil\n\t}\n\n\tactual, err := s.metaFactory.Interpret(data)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\tif gvk != nil {\n\t\t*actual = gvkWithDefaults(*actual, *gvk)\n\t}\n\n\tif into != nil {\n\t\ttypes, _, err := s.typer.ObjectKinds(into)\n\t\tif err != nil {\n\t\t\treturn nil, actual, err\n\t\t}\n\t\t*actual = gvkWithDefaults(*actual, types[0])\n\t}\n\n\tif len(actual.Kind) == 0 {\n\t\treturn nil, actual, runtime.NewMissingKindErr(diagnose(data))\n\t}\n\tif len(actual.Version) == 0 {\n\t\treturn nil, actual, runtime.NewMissingVersionErr(diagnose(data))\n\t}\n\n\tobj, err := runtime.UseOrCreateObject(s.typer, s.creater, *actual, into)\n\tif err != nil {\n\t\treturn nil, actual, err\n\t}\n\n\tstrict, err := s.unmarshal(data, obj)\n\tif err != nil {\n\t\treturn nil, actual, err\n\t}\n\n\tif s.options.transcode {\n\t\tif err := transcodeRawTypes(obj); err != nil {\n\t\t\treturn nil, actual, err\n\t\t}\n\t}\n\n\treturn obj, actual, strict\n}\n\n// selfDescribedCBOR is the CBOR encoding of the head of tag number 55799. This tag, specified in\n// RFC 8949 Section 3.4.6 \"Self-Described CBOR\", encloses all output from the encoder, has no\n// special semantics, and is used as a magic number to recognize CBOR-encoded data items.\n//\n// See https://www.rfc-editor.org/rfc/rfc8949.html#name-self-described-cbor.\nvar selfDescribedCBOR = []byte{0xd9, 0xd9, 0xf7}\n\nfunc (s *serializer) RecognizesData(data []byte) (ok, unknown bool, err error) {\n\treturn bytes.HasPrefix(data, selfDescribedCBOR), false, nil\n}\n\n// NewSerializerInfo returns a default SerializerInfo for CBOR using the given creater and typer.\nfunc NewSerializerInfo(creater runtime.ObjectCreater, typer runtime.ObjectTyper) runtime.SerializerInfo {\n\treturn runtime.SerializerInfo{\n\t\tMediaType:        \"application/cbor\",\n\t\tMediaTypeType:    \"application\",\n\t\tMediaTypeSubType: \"cbor\",\n\t\tSerializer:       NewSerializer(creater, typer),\n\t\tStrictSerializer: NewSerializer(creater, typer, Strict(true)),\n\t\tStreamSerializer: &runtime.StreamSerializerInfo{\n\t\t\tFramer:     NewFramer(),\n\t\t\tSerializer: NewSerializer(creater, typer, Transcode(false)),\n\t\t},\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/serializer/cbor/direct/direct.go",
    "content": "/*\nCopyright 2024 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package direct provides functions for marshaling and unmarshaling between arbitrary Go values and\n// CBOR data, with behavior that is compatible with that of the CBOR serializer. In particular,\n// types that implement cbor.Marshaler and cbor.Unmarshaler should use these functions.\npackage direct\n\nimport (\n\t\"k8s.io/apimachinery/pkg/runtime/serializer/cbor/internal/modes\"\n)\n\n// Marshal serializes a value to CBOR. If there is more than one way to encode the value, it will\n// make the same choice as the CBOR implementation of runtime.Serializer.\n//\n// Note: Support for CBOR is at an alpha stage. If the value (or, for composite types, any of its\n// nested values) implement any of the interfaces encoding.TextMarshaler, encoding.TextUnmarshaler,\n// encoding/json.Marshaler, or encoding/json.Unmarshaler, a non-nil error will be returned unless\n// the value also implements the corresponding CBOR interfaces. This limitation will ultimately be\n// removed in favor of automatic transcoding to CBOR.\nfunc Marshal(src interface{}) ([]byte, error) {\n\tif err := modes.RejectCustomMarshalers(src); err != nil {\n\t\treturn nil, err\n\t}\n\treturn modes.Encode.Marshal(src)\n}\n\n// Unmarshal deserializes from CBOR into an addressable value. If there is more than one way to\n// unmarshal a value, it will make the same choice as the CBOR implementation of runtime.Serializer.\n//\n// Note: Support for CBOR is at an alpha stage. If the value (or, for composite types, any of its\n// nested values) implement any of the interfaces encoding.TextMarshaler, encoding.TextUnmarshaler,\n// encoding/json.Marshaler, or encoding/json.Unmarshaler, a non-nil error will be returned unless\n// the value also implements the corresponding CBOR interfaces. This limitation will ultimately be\n// removed in favor of automatic transcoding to CBOR.\nfunc Unmarshal(src []byte, dst interface{}) error {\n\tif err := modes.RejectCustomMarshalers(dst); err != nil {\n\t\treturn err\n\t}\n\treturn modes.Decode.Unmarshal(src, dst)\n}\n\n// Diagnose accepts well-formed CBOR bytes and returns a string representing the same data item in\n// human-readable diagnostic notation (RFC 8949 Section 8). The diagnostic notation is not meant to\n// be parsed.\nfunc Diagnose(src []byte) (string, error) {\n\treturn modes.Diagnostic.Diagnose(src)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/serializer/cbor/framer.go",
    "content": "/*\nCopyright 2024 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage cbor\n\nimport (\n\t\"io\"\n\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\n\t\"github.com/fxamacker/cbor/v2\"\n)\n\n// NewFramer returns a runtime.Framer based on RFC 8742 CBOR Sequences. Each frame contains exactly\n// one encoded CBOR data item.\nfunc NewFramer() runtime.Framer {\n\treturn framer{}\n}\n\nvar _ runtime.Framer = framer{}\n\ntype framer struct{}\n\nfunc (framer) NewFrameReader(rc io.ReadCloser) io.ReadCloser {\n\treturn &frameReader{\n\t\tdecoder: cbor.NewDecoder(rc),\n\t\tcloser:  rc,\n\t}\n}\n\nfunc (framer) NewFrameWriter(w io.Writer) io.Writer {\n\t// Each data item in a CBOR sequence is self-delimiting (like JSON objects).\n\treturn w\n}\n\ntype frameReader struct {\n\tdecoder *cbor.Decoder\n\tcloser  io.Closer\n\n\toverflow []byte\n}\n\nfunc (fr *frameReader) Read(dst []byte) (int, error) {\n\tif len(fr.overflow) > 0 {\n\t\t// We read a frame that was too large for the destination slice in a previous call\n\t\t// to Read and have bytes left over.\n\t\tn := copy(dst, fr.overflow)\n\t\tif n < len(fr.overflow) {\n\t\t\tfr.overflow = fr.overflow[n:]\n\t\t\treturn n, io.ErrShortBuffer\n\t\t}\n\t\tfr.overflow = nil\n\t\treturn n, nil\n\t}\n\n\t// The Reader contract allows implementations to use all of dst[0:len(dst)] as scratch\n\t// space, even if n < len(dst), but it does not allow implementations to use\n\t// dst[len(dst):cap(dst)]. Slicing it up-front allows us to append to it without worrying\n\t// about overwriting dst[len(dst):cap(dst)].\n\tm := cbor.RawMessage(dst[0:0:len(dst)])\n\tif err := fr.decoder.Decode(&m); err != nil {\n\t\treturn 0, err\n\t}\n\n\tif len(m) > len(dst) {\n\t\t// The frame was too big, m has a newly-allocated underlying array to accommodate\n\t\t// it.\n\t\tfr.overflow = m[len(dst):]\n\t\treturn copy(dst, m), io.ErrShortBuffer\n\t}\n\n\treturn len(m), nil\n}\n\nfunc (fr *frameReader) Close() error {\n\treturn fr.closer.Close()\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/serializer/cbor/internal/modes/buffers.go",
    "content": "/*\nCopyright 2024 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage modes\n\nimport (\n\t\"bytes\"\n\t\"sync\"\n)\n\nvar buffers = BufferProvider{p: new(sync.Pool)}\n\ntype buffer struct {\n\tbytes.Buffer\n}\n\ntype pool interface {\n\tGet() interface{}\n\tPut(interface{})\n}\n\ntype BufferProvider struct {\n\tp pool\n}\n\nfunc (b *BufferProvider) Get() *buffer {\n\tif buf, ok := b.p.Get().(*buffer); ok {\n\t\treturn buf\n\t}\n\treturn &buffer{}\n}\n\nfunc (b *BufferProvider) Put(buf *buffer) {\n\tif buf.Cap() > 3*1024*1024 /* Default MaxRequestBodyBytes */ {\n\t\t// Objects in a sync.Pool are assumed to be fungible. This is not a good assumption\n\t\t// for pools of *bytes.Buffer because a *bytes.Buffer's underlying array grows as\n\t\t// needed to accommodate writes. In Kubernetes, apiservers tend to encode \"small\"\n\t\t// objects very frequently and much larger objects (especially large lists) only\n\t\t// occasionally. Under steady load, pooled buffers tend to be borrowed frequently\n\t\t// enough to prevent them from being released. Over time, each buffer is used to\n\t\t// encode a large object and its capacity increases accordingly. The result is that\n\t\t// practically all buffers in the pool retain much more capacity than needed to\n\t\t// encode most objects.\n\n\t\t// As a basic mitigation for the worst case, buffers with more capacity than the\n\t\t// default max request body size are never returned to the pool.\n\t\t// TODO: Optimize for higher buffer utilization.\n\t\treturn\n\t}\n\tbuf.Reset()\n\tb.p.Put(buf)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/serializer/cbor/internal/modes/custom.go",
    "content": "/*\nCopyright 2024 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage modes\n\nimport (\n\t\"encoding\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"sync\"\n\n\t\"github.com/fxamacker/cbor/v2\"\n)\n\n// Returns a non-nil error if and only if the argument's type (or one of its component types, for\n// composite types) implements json.Marshaler or encoding.TextMarshaler without also implementing\n// cbor.Marshaler and likewise for the respective Unmarshaler interfaces.\n//\n// This is a temporary, graduation-blocking restriction and will be removed in favor of automatic\n// transcoding between CBOR and JSON/text for these types. This restriction allows CBOR to be\n// exercised for in-tree and unstructured types while mitigating the risk of mangling out-of-tree\n// types in client programs.\nfunc RejectCustomMarshalers(v interface{}) error {\n\tif v == nil {\n\t\treturn nil\n\t}\n\trv := reflect.ValueOf(v)\n\tif err := marshalerCache.getChecker(rv.Type()).check(rv, maxDepth); err != nil {\n\t\treturn fmt.Errorf(\"unable to serialize %T: %w\", v, err)\n\t}\n\tif err := unmarshalerCache.getChecker(rv.Type()).check(rv, maxDepth); err != nil {\n\t\treturn fmt.Errorf(\"unable to serialize %T: %w\", v, err)\n\t}\n\treturn nil\n}\n\n// Recursion depth is limited as a basic mitigation against cyclic objects. Objects created by the\n// decoder shouldn't be able to contain cycles, but practically any object can be passed to the\n// encoder.\nvar errMaxDepthExceeded = errors.New(\"object depth exceeds limit (possible cycle?)\")\n\n// The JSON encoder begins detecting cycles after depth 1000. Use a generous limit here, knowing\n// that it can might deeply nested acyclic objects. The limit will be removed along with the rest of\n// this mechanism.\nconst maxDepth = 2048\n\nvar marshalerCache = checkers{\n\tcborInterface: reflect.TypeFor[cbor.Marshaler](),\n\tnonCBORInterfaces: []reflect.Type{\n\t\treflect.TypeFor[json.Marshaler](),\n\t\treflect.TypeFor[encoding.TextMarshaler](),\n\t},\n}\n\nvar unmarshalerCache = checkers{\n\tcborInterface: reflect.TypeFor[cbor.Unmarshaler](),\n\tnonCBORInterfaces: []reflect.Type{\n\t\treflect.TypeFor[json.Unmarshaler](),\n\t\treflect.TypeFor[encoding.TextUnmarshaler](),\n\t},\n\tassumeAddressableValues: true,\n}\n\n// checker wraps a function for dynamically checking a value of a specific type for custom JSON\n// behaviors not matched by a custom CBOR behavior.\ntype checker struct {\n\t// check returns a non-nil error if the given value might be marshalled to or from CBOR\n\t// using the default behavior for its kind, but marshalled to or from JSON using custom\n\t// behavior.\n\tcheck func(rv reflect.Value, depth int) error\n\n\t// safe returns true if all values of this type are safe from mismatched custom marshalers.\n\tsafe func() bool\n}\n\n// TODO: stale\n// Having a single addressable checker for comparisons lets us prune and collapse parts of the\n// object traversal that are statically known to be safe. Depending on the type, it may be\n// unnecessary to inspect each value of that type. For example, no value of the built-in type bool\n// can implement json.Marshaler (a named type whose underlying type is bool could, but it is a\n// distinct type from bool).\nvar noop = checker{\n\tsafe: func() bool {\n\t\treturn true\n\t},\n\tcheck: func(rv reflect.Value, depth int) error {\n\t\treturn nil\n\t},\n}\n\ntype checkers struct {\n\tm sync.Map // reflect.Type => *checker\n\n\tcborInterface     reflect.Type\n\tnonCBORInterfaces []reflect.Type\n\n\tassumeAddressableValues bool\n}\n\nfunc (cache *checkers) getChecker(rt reflect.Type) checker {\n\tif ptr, ok := cache.m.Load(rt); ok {\n\t\treturn *ptr.(*checker)\n\t}\n\n\treturn cache.getCheckerInternal(rt, nil)\n}\n\n// linked list node representing the path from a composite type to an element type\ntype path struct {\n\tType   reflect.Type\n\tParent *path\n}\n\nfunc (p path) cyclic(rt reflect.Type) bool {\n\tfor ancestor := &p; ancestor != nil; ancestor = ancestor.Parent {\n\t\tif ancestor.Type == rt {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc (cache *checkers) getCheckerInternal(rt reflect.Type, parent *path) (c checker) {\n\t// Store a placeholder cache entry first to handle cyclic types.\n\tvar wg sync.WaitGroup\n\twg.Add(1)\n\tdefer wg.Done()\n\tc = checker{\n\t\tsafe: func() bool {\n\t\t\twg.Wait()\n\t\t\treturn c.safe()\n\t\t},\n\t\tcheck: func(rv reflect.Value, depth int) error {\n\t\t\twg.Wait()\n\t\t\treturn c.check(rv, depth)\n\t\t},\n\t}\n\tif actual, loaded := cache.m.LoadOrStore(rt, &c); loaded {\n\t\t// Someone else stored an entry for this type, use it.\n\t\treturn *actual.(*checker)\n\t}\n\n\t// Take a nonreflective path for the unstructured container types. They're common and\n\t// usually nested inside one another.\n\tswitch rt {\n\tcase reflect.TypeFor[map[string]interface{}](), reflect.TypeFor[[]interface{}]():\n\t\treturn checker{\n\t\t\tsafe: func() bool {\n\t\t\t\treturn false\n\t\t\t},\n\t\t\tcheck: func(rv reflect.Value, depth int) error {\n\t\t\t\treturn checkUnstructuredValue(cache, rv.Interface(), depth)\n\t\t\t},\n\t\t}\n\t}\n\n\t// It's possible that one of the relevant interfaces is implemented on a type with a pointer\n\t// receiver, but that a particular value of that type is not addressable. For example:\n\t//\n\t//   func (Foo) MarshalText() ([]byte, error) { ... }\n\t//   func (*Foo) MarshalCBOR() ([]byte, error) { ... }\n\t//\n\t// Both methods are in the method set of *Foo, but the method set of Foo contains only\n\t// MarshalText.\n\t//\n\t// Both the unmarshaler and marshaler checks assume that methods implementing a JSON or text\n\t// interface with a pointer receiver are always accessible. Only the unmarshaler check\n\t// assumes that CBOR methods with pointer receivers are accessible.\n\n\tif rt.Implements(cache.cborInterface) {\n\t\treturn noop\n\t}\n\tfor _, unsafe := range cache.nonCBORInterfaces {\n\t\tif rt.Implements(unsafe) {\n\t\t\terr := fmt.Errorf(\"%v implements %v without corresponding cbor interface\", rt, unsafe)\n\t\t\treturn checker{\n\t\t\t\tsafe: func() bool {\n\t\t\t\t\treturn false\n\t\t\t\t},\n\t\t\t\tcheck: func(reflect.Value, int) error {\n\t\t\t\t\treturn err\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\t}\n\n\tif cache.assumeAddressableValues && reflect.PointerTo(rt).Implements(cache.cborInterface) {\n\t\treturn noop\n\t}\n\tfor _, unsafe := range cache.nonCBORInterfaces {\n\t\tif reflect.PointerTo(rt).Implements(unsafe) {\n\t\t\terr := fmt.Errorf(\"%v implements %v without corresponding cbor interface\", reflect.PointerTo(rt), unsafe)\n\t\t\treturn checker{\n\t\t\t\tsafe: func() bool {\n\t\t\t\t\treturn false\n\t\t\t\t},\n\t\t\t\tcheck: func(reflect.Value, int) error {\n\t\t\t\t\treturn err\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\t}\n\n\tself := &path{Type: rt, Parent: parent}\n\n\tswitch rt.Kind() {\n\tcase reflect.Array:\n\t\tce := cache.getCheckerInternal(rt.Elem(), self)\n\t\trtlen := rt.Len()\n\t\tif rtlen == 0 || (!self.cyclic(rt.Elem()) && ce.safe()) {\n\t\t\treturn noop\n\t\t}\n\t\treturn checker{\n\t\t\tsafe: func() bool {\n\t\t\t\treturn false\n\t\t\t},\n\t\t\tcheck: func(rv reflect.Value, depth int) error {\n\t\t\t\tif depth <= 0 {\n\t\t\t\t\treturn errMaxDepthExceeded\n\t\t\t\t}\n\t\t\t\tfor i := 0; i < rtlen; i++ {\n\t\t\t\t\tif err := ce.check(rv.Index(i), depth-1); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn nil\n\t\t\t},\n\t\t}\n\n\tcase reflect.Interface:\n\t\t// All interface values have to be checked because their dynamic type might\n\t\t// implement one of the interesting interfaces or be composed of another type that\n\t\t// does.\n\t\treturn checker{\n\t\t\tsafe: func() bool {\n\t\t\t\treturn false\n\t\t\t},\n\t\t\tcheck: func(rv reflect.Value, depth int) error {\n\t\t\t\tif rv.IsNil() {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t\t// Unpacking interfaces must count against recursion depth,\n\t\t\t\t// consider this cycle:\n\t\t\t\t// >  var i interface{}\n\t\t\t\t// >  var p *interface{} = &i\n\t\t\t\t// >  i = p\n\t\t\t\t// >  rv := reflect.ValueOf(i)\n\t\t\t\t// >  for {\n\t\t\t\t// >    rv = rv.Elem()\n\t\t\t\t// >  }\n\t\t\t\tif depth <= 0 {\n\t\t\t\t\treturn errMaxDepthExceeded\n\t\t\t\t}\n\t\t\t\trv = rv.Elem()\n\t\t\t\treturn cache.getChecker(rv.Type()).check(rv, depth-1)\n\t\t\t},\n\t\t}\n\n\tcase reflect.Map:\n\t\trtk := rt.Key()\n\t\tck := cache.getCheckerInternal(rtk, self)\n\t\trte := rt.Elem()\n\t\tce := cache.getCheckerInternal(rte, self)\n\t\tif !self.cyclic(rtk) && !self.cyclic(rte) && ck.safe() && ce.safe() {\n\t\t\treturn noop\n\t\t}\n\t\treturn checker{\n\t\t\tsafe: func() bool {\n\t\t\t\treturn false\n\t\t\t},\n\t\t\tcheck: func(rv reflect.Value, depth int) error {\n\t\t\t\tif depth <= 0 {\n\t\t\t\t\treturn errMaxDepthExceeded\n\t\t\t\t}\n\t\t\t\titer := rv.MapRange()\n\t\t\t\trvk := reflect.New(rtk).Elem()\n\t\t\t\trve := reflect.New(rte).Elem()\n\t\t\t\tfor iter.Next() {\n\t\t\t\t\trvk.SetIterKey(iter)\n\t\t\t\t\tif err := ck.check(rvk, depth-1); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\trve.SetIterValue(iter)\n\t\t\t\t\tif err := ce.check(rve, depth-1); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn nil\n\t\t\t},\n\t\t}\n\n\tcase reflect.Pointer:\n\t\tce := cache.getCheckerInternal(rt.Elem(), self)\n\t\tif !self.cyclic(rt.Elem()) && ce.safe() {\n\t\t\treturn noop\n\t\t}\n\t\treturn checker{\n\t\t\tsafe: func() bool {\n\t\t\t\treturn false\n\t\t\t},\n\t\t\tcheck: func(rv reflect.Value, depth int) error {\n\t\t\t\tif rv.IsNil() {\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t\tif depth <= 0 {\n\t\t\t\t\treturn errMaxDepthExceeded\n\t\t\t\t}\n\t\t\t\treturn ce.check(rv.Elem(), depth-1)\n\t\t\t},\n\t\t}\n\n\tcase reflect.Slice:\n\t\tce := cache.getCheckerInternal(rt.Elem(), self)\n\t\tif !self.cyclic(rt.Elem()) && ce.safe() {\n\t\t\treturn noop\n\t\t}\n\t\treturn checker{\n\t\t\tsafe: func() bool {\n\t\t\t\treturn false\n\t\t\t},\n\t\t\tcheck: func(rv reflect.Value, depth int) error {\n\t\t\t\tif depth <= 0 {\n\t\t\t\t\treturn errMaxDepthExceeded\n\t\t\t\t}\n\t\t\t\tfor i := 0; i < rv.Len(); i++ {\n\t\t\t\t\tif err := ce.check(rv.Index(i), depth-1); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn nil\n\t\t\t},\n\t\t}\n\n\tcase reflect.Struct:\n\t\ttype field struct {\n\t\t\tIndex   int\n\t\t\tChecker checker\n\t\t}\n\t\tvar fields []field\n\t\tfor i := 0; i < rt.NumField(); i++ {\n\t\t\tf := rt.Field(i)\n\t\t\tcf := cache.getCheckerInternal(f.Type, self)\n\t\t\tif !self.cyclic(f.Type) && cf.safe() {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tfields = append(fields, field{Index: i, Checker: cf})\n\t\t}\n\t\tif len(fields) == 0 {\n\t\t\treturn noop\n\t\t}\n\t\treturn checker{\n\t\t\tsafe: func() bool {\n\t\t\t\treturn false\n\t\t\t},\n\t\t\tcheck: func(rv reflect.Value, depth int) error {\n\t\t\t\tif depth <= 0 {\n\t\t\t\t\treturn errMaxDepthExceeded\n\t\t\t\t}\n\t\t\t\tfor _, fi := range fields {\n\t\t\t\t\tif err := fi.Checker.check(rv.Field(fi.Index), depth-1); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn nil\n\t\t\t},\n\t\t}\n\n\tdefault:\n\t\t// Not a serializable composite type (funcs and channels are composite types but are\n\t\t// rejected by JSON and CBOR serialization).\n\t\treturn noop\n\n\t}\n}\n\nfunc checkUnstructuredValue(cache *checkers, v interface{}, depth int) error {\n\tswitch v := v.(type) {\n\tcase nil, bool, int64, float64, string:\n\t\treturn nil\n\tcase []interface{}:\n\t\tif depth <= 0 {\n\t\t\treturn errMaxDepthExceeded\n\t\t}\n\t\tfor _, element := range v {\n\t\t\tif err := checkUnstructuredValue(cache, element, depth-1); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\treturn nil\n\tcase map[string]interface{}:\n\t\tif depth <= 0 {\n\t\t\treturn errMaxDepthExceeded\n\t\t}\n\t\tfor _, element := range v {\n\t\t\tif err := checkUnstructuredValue(cache, element, depth-1); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\treturn nil\n\tdefault:\n\t\t// Unmarshaling an unstructured doesn't use other dynamic types, but nothing\n\t\t// prevents inserting values with arbitrary dynamic types into unstructured content,\n\t\t// as long as they can be marshalled.\n\t\trv := reflect.ValueOf(v)\n\t\treturn cache.getChecker(rv.Type()).check(rv, depth)\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/serializer/cbor/internal/modes/decode.go",
    "content": "/*\nCopyright 2024 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage modes\n\nimport (\n\t\"reflect\"\n\n\t\"github.com/fxamacker/cbor/v2\"\n)\n\nvar simpleValues *cbor.SimpleValueRegistry = func() *cbor.SimpleValueRegistry {\n\tvar opts []func(*cbor.SimpleValueRegistry) error\n\tfor sv := 0; sv <= 255; sv++ {\n\t\t// Reject simple values 0-19, 23, and 32-255. The simple values 24-31 are reserved\n\t\t// and considered ill-formed by the CBOR specification. We only accept false (20),\n\t\t// true (21), and null (22).\n\t\tswitch sv {\n\t\tcase 20: // false\n\t\tcase 21: // true\n\t\tcase 22: // null\n\t\tcase 24, 25, 26, 27, 28, 29, 30, 31: // reserved\n\t\tdefault:\n\t\t\topts = append(opts, cbor.WithRejectedSimpleValue(cbor.SimpleValue(sv)))\n\t\t}\n\t}\n\tsimpleValues, err := cbor.NewSimpleValueRegistryFromDefaults(opts...)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn simpleValues\n}()\n\nvar Decode cbor.DecMode = func() cbor.DecMode {\n\tdecode, err := cbor.DecOptions{\n\t\t// Maps with duplicate keys are well-formed but invalid according to the CBOR spec\n\t\t// and never acceptable. Unlike the JSON serializer, inputs containing duplicate map\n\t\t// keys are rejected outright and not surfaced as a strict decoding error.\n\t\tDupMapKey: cbor.DupMapKeyEnforcedAPF,\n\n\t\t// For JSON parity, decoding an RFC3339 string into time.Time needs to be accepted\n\t\t// with or without tagging. If a tag number is present, it must be valid.\n\t\tTimeTag: cbor.DecTagOptional,\n\n\t\t// Observed depth up to 16 in fuzzed batch/v1 CronJobList. JSON implementation limit\n\t\t// is 10000.\n\t\tMaxNestedLevels: 64,\n\n\t\tMaxArrayElements: 1024,\n\t\tMaxMapPairs:      1024,\n\n\t\t// Indefinite-length sequences aren't produced by this serializer, but other\n\t\t// implementations can.\n\t\tIndefLength: cbor.IndefLengthAllowed,\n\n\t\t// Accept inputs that contain CBOR tags.\n\t\tTagsMd: cbor.TagsAllowed,\n\n\t\t// Decode type 0 (unsigned integer) as int64.\n\t\t// TODO: IntDecConvertSignedOrFail errors on overflow, JSON will try to fall back to float64.\n\t\tIntDec: cbor.IntDecConvertSignedOrFail,\n\n\t\t// Disable producing map[cbor.ByteString]interface{}, which is not acceptable for\n\t\t// decodes into interface{}.\n\t\tMapKeyByteString: cbor.MapKeyByteStringForbidden,\n\n\t\t// Error on map keys that don't map to a field in the destination struct.\n\t\tExtraReturnErrors: cbor.ExtraDecErrorUnknownField,\n\n\t\t// Decode maps into concrete type map[string]interface{} when the destination is an\n\t\t// interface{}.\n\t\tDefaultMapType: reflect.TypeOf(map[string]interface{}(nil)),\n\n\t\t// A CBOR text string whose content is not a valid UTF-8 sequence is well-formed but\n\t\t// invalid according to the CBOR spec. Reject invalid inputs. Encoders are\n\t\t// responsible for ensuring that all text strings they produce contain valid UTF-8\n\t\t// sequences and may use the byte string major type to encode strings that have not\n\t\t// been validated.\n\t\tUTF8: cbor.UTF8RejectInvalid,\n\n\t\t// Never make a case-insensitive match between a map key and a struct field.\n\t\tFieldNameMatching: cbor.FieldNameMatchingCaseSensitive,\n\n\t\t// Produce string concrete values when decoding a CBOR byte string into interface{}.\n\t\tDefaultByteStringType: reflect.TypeOf(\"\"),\n\n\t\t// Allow CBOR byte strings to be decoded into string destination values. If a byte\n\t\t// string is enclosed in an \"expected later encoding\" tag\n\t\t// (https://www.rfc-editor.org/rfc/rfc8949.html#section-3.4.5.2), then the text\n\t\t// encoding indicated by that tag (e.g. base64) will be applied to the contents of\n\t\t// the byte string.\n\t\tByteStringToString: cbor.ByteStringToStringAllowedWithExpectedLaterEncoding,\n\n\t\t// Allow CBOR byte strings to match struct fields when appearing as a map key.\n\t\tFieldNameByteString: cbor.FieldNameByteStringAllowed,\n\n\t\t// When decoding an unrecognized tag to interface{}, return the decoded tag content\n\t\t// instead of the default, a cbor.Tag representing a (number, content) pair.\n\t\tUnrecognizedTagToAny: cbor.UnrecognizedTagContentToAny,\n\n\t\t// Decode time tags to interface{} as strings containing RFC 3339 timestamps.\n\t\tTimeTagToAny: cbor.TimeTagToRFC3339Nano,\n\n\t\t// For parity with JSON, strings can be decoded into time.Time if they are RFC 3339\n\t\t// timestamps.\n\t\tByteStringToTime: cbor.ByteStringToTimeAllowed,\n\n\t\t// Reject NaN and infinite floating-point values since they don't have a JSON\n\t\t// representation (RFC 8259 Section 6).\n\t\tNaN: cbor.NaNDecodeForbidden,\n\t\tInf: cbor.InfDecodeForbidden,\n\n\t\t// When unmarshaling a byte string into a []byte, assume that the byte string\n\t\t// contains base64-encoded bytes, unless explicitly counterindicated by an \"expected\n\t\t// later encoding\" tag. This is consistent with the because of unmarshaling a JSON\n\t\t// text into a []byte.\n\t\tByteStringExpectedFormat: cbor.ByteStringExpectedBase64,\n\n\t\t// Reject the arbitrary-precision integer tags because they can't be faithfully\n\t\t// roundtripped through the allowable Unstructured types.\n\t\tBignumTag: cbor.BignumTagForbidden,\n\n\t\t// Reject anything other than the simple values true, false, and null.\n\t\tSimpleValues: simpleValues,\n\n\t\t// Disable default recognition of types implementing encoding.BinaryUnmarshaler,\n\t\t// which is not recognized for JSON decoding.\n\t\tBinaryUnmarshaler: cbor.BinaryUnmarshalerNone,\n\t}.DecMode()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn decode\n}()\n\n// DecodeLax is derived from Decode, but does not complain about unknown fields in the input.\nvar DecodeLax cbor.DecMode = func() cbor.DecMode {\n\topts := Decode.DecOptions()\n\topts.ExtraReturnErrors &^= cbor.ExtraDecErrorUnknownField // clear bit\n\tdm, err := opts.DecMode()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn dm\n}()\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/serializer/cbor/internal/modes/diagnostic.go",
    "content": "/*\nCopyright 2024 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage modes\n\nimport (\n\t\"github.com/fxamacker/cbor/v2\"\n)\n\nvar Diagnostic cbor.DiagMode = func() cbor.DiagMode {\n\topts := Decode.DecOptions()\n\tdiagnostic, err := cbor.DiagOptions{\n\t\tByteStringText: true,\n\n\t\tMaxNestedLevels:  opts.MaxNestedLevels,\n\t\tMaxArrayElements: opts.MaxArrayElements,\n\t\tMaxMapPairs:      opts.MaxMapPairs,\n\t}.DiagMode()\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn diagnostic\n}()\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/serializer/cbor/internal/modes/encode.go",
    "content": "/*\nCopyright 2024 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage modes\n\nimport (\n\t\"io\"\n\n\t\"github.com/fxamacker/cbor/v2\"\n)\n\nvar Encode = EncMode{\n\tdelegate: func() cbor.UserBufferEncMode {\n\t\tencode, err := cbor.EncOptions{\n\t\t\t// Map keys need to be sorted to have deterministic output, and this is the order\n\t\t\t// defined in RFC 8949 4.2.1 \"Core Deterministic Encoding Requirements\".\n\t\t\tSort: cbor.SortBytewiseLexical,\n\n\t\t\t// CBOR supports distinct types for IEEE-754 float16, float32, and float64. Store\n\t\t\t// floats in the smallest width that preserves value so that equivalent float32 and\n\t\t\t// float64 values encode to identical bytes, as they do in a JSON\n\t\t\t// encoding. Satisfies one of the \"Core Deterministic Encoding Requirements\".\n\t\t\tShortestFloat: cbor.ShortestFloat16,\n\n\t\t\t// Error on attempt to encode NaN and infinite values. This is what the JSON\n\t\t\t// serializer does.\n\t\t\tNaNConvert: cbor.NaNConvertReject,\n\t\t\tInfConvert: cbor.InfConvertReject,\n\n\t\t\t// Error on attempt to encode math/big.Int values, which can't be faithfully\n\t\t\t// roundtripped through Unstructured in general (the dynamic numeric types allowed\n\t\t\t// in Unstructured are limited to float64 and int64).\n\t\t\tBigIntConvert: cbor.BigIntConvertReject,\n\n\t\t\t// MarshalJSON for time.Time writes RFC3339 with nanos.\n\t\t\tTime: cbor.TimeRFC3339Nano,\n\n\t\t\t// The decoder must be able to accept RFC3339 strings with or without tag 0 (e.g. by\n\t\t\t// the end of time.Time -> JSON -> Unstructured -> CBOR, the CBOR encoder has no\n\t\t\t// reliable way of knowing that a particular string originated from serializing a\n\t\t\t// time.Time), so producing tag 0 has little use.\n\t\t\tTimeTag: cbor.EncTagNone,\n\n\t\t\t// Indefinite-length items have multiple encodings and aren't being used anyway, so\n\t\t\t// disable to avoid an opportunity for nondeterminism.\n\t\t\tIndefLength: cbor.IndefLengthForbidden,\n\n\t\t\t// Preserve distinction between nil and empty for slices and maps.\n\t\t\tNilContainers: cbor.NilContainerAsNull,\n\n\t\t\t// OK to produce tags.\n\t\t\tTagsMd: cbor.TagsAllowed,\n\n\t\t\t// Use the same definition of \"empty\" as encoding/json.\n\t\t\tOmitEmpty: cbor.OmitEmptyGoValue,\n\n\t\t\t// The CBOR types text string and byte string are structurally equivalent, with the\n\t\t\t// semantic difference that a text string whose content is an invalid UTF-8 sequence\n\t\t\t// is itself invalid. We reject all invalid text strings at decode time and do not\n\t\t\t// validate or sanitize all Go strings at encode time. Encoding Go strings to the\n\t\t\t// byte string type is comparable to the existing Protobuf behavior and cheaply\n\t\t\t// ensures that the output is valid CBOR.\n\t\t\tString: cbor.StringToByteString,\n\n\t\t\t// Encode struct field names to the byte string type rather than the text string\n\t\t\t// type.\n\t\t\tFieldName: cbor.FieldNameToByteString,\n\n\t\t\t// Marshal Go byte arrays to CBOR arrays of integers (as in JSON) instead of byte\n\t\t\t// strings.\n\t\t\tByteArray: cbor.ByteArrayToArray,\n\n\t\t\t// Marshal []byte to CBOR byte string enclosed in tag 22 (expected later base64\n\t\t\t// encoding, https://www.rfc-editor.org/rfc/rfc8949.html#section-3.4.5.2), to\n\t\t\t// interoperate with the existing JSON behavior. This indicates to the decoder that,\n\t\t\t// when decoding into a string (or unstructured), the resulting value should be the\n\t\t\t// base64 encoding of the original bytes. No base64 encoding or decoding needs to be\n\t\t\t// performed for []byte-to-CBOR-to-[]byte roundtrips.\n\t\t\tByteSliceLaterFormat: cbor.ByteSliceLaterFormatBase64,\n\n\t\t\t// Disable default recognition of types implementing encoding.BinaryMarshaler, which\n\t\t\t// is not recognized for JSON encoding.\n\t\t\tBinaryMarshaler: cbor.BinaryMarshalerNone,\n\t\t}.UserBufferEncMode()\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t\treturn encode\n\t}(),\n}\n\nvar EncodeNondeterministic = EncMode{\n\tdelegate: func() cbor.UserBufferEncMode {\n\t\topts := Encode.options()\n\t\topts.Sort = cbor.SortFastShuffle\n\t\tem, err := opts.UserBufferEncMode()\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t\treturn em\n\t}(),\n}\n\ntype EncMode struct {\n\tdelegate cbor.UserBufferEncMode\n}\n\nfunc (em EncMode) options() cbor.EncOptions {\n\treturn em.delegate.EncOptions()\n}\n\nfunc (em EncMode) MarshalTo(v interface{}, w io.Writer) error {\n\tif buf, ok := w.(*buffer); ok {\n\t\treturn em.delegate.MarshalToBuffer(v, &buf.Buffer)\n\t}\n\n\tbuf := buffers.Get()\n\tdefer buffers.Put(buf)\n\tif err := em.delegate.MarshalToBuffer(v, &buf.Buffer); err != nil {\n\t\treturn err\n\t}\n\n\tif _, err := io.Copy(w, buf); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc (em EncMode) Marshal(v interface{}) ([]byte, error) {\n\tbuf := buffers.Get()\n\tdefer buffers.Put(buf)\n\n\tif err := em.MarshalTo(v, &buf.Buffer); err != nil {\n\t\treturn nil, err\n\t}\n\n\tclone := make([]byte, buf.Len())\n\tcopy(clone, buf.Bytes())\n\n\treturn clone, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/serializer/cbor/raw.go",
    "content": "/*\nCopyright 2024 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage cbor\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"sync\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n)\n\nvar sharedTranscoders transcoders\n\nvar rawTypeTranscodeFuncs = map[reflect.Type]func(reflect.Value) error{\n\treflect.TypeFor[runtime.RawExtension](): func(rv reflect.Value) error {\n\t\tif !rv.CanAddr() {\n\t\t\treturn nil\n\t\t}\n\t\tre := rv.Addr().Interface().(*runtime.RawExtension)\n\t\tif re.Raw == nil {\n\t\t\t// When Raw is nil it encodes to null. Don't change nil Raw values during\n\t\t\t// transcoding, they would have unmarshalled from JSON as nil too.\n\t\t\treturn nil\n\t\t}\n\t\tj, err := re.MarshalJSON()\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"failed to transcode RawExtension to JSON: %w\", err)\n\t\t}\n\t\tre.Raw = j\n\t\treturn nil\n\t},\n\treflect.TypeFor[metav1.FieldsV1](): func(rv reflect.Value) error {\n\t\tif !rv.CanAddr() {\n\t\t\treturn nil\n\t\t}\n\t\tfields := rv.Addr().Interface().(*metav1.FieldsV1)\n\t\tif fields.Raw == nil {\n\t\t\t// When Raw is nil it encodes to null. Don't change nil Raw values during\n\t\t\t// transcoding, they would have unmarshalled from JSON as nil too.\n\t\t\treturn nil\n\t\t}\n\t\tj, err := fields.MarshalJSON()\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"failed to transcode FieldsV1 to JSON: %w\", err)\n\t\t}\n\t\tfields.Raw = j\n\t\treturn nil\n\t},\n}\n\nfunc transcodeRawTypes(v interface{}) error {\n\tif v == nil {\n\t\treturn nil\n\t}\n\n\trv := reflect.ValueOf(v)\n\treturn sharedTranscoders.getTranscoder(rv.Type()).fn(rv)\n}\n\ntype transcoder struct {\n\tfn func(rv reflect.Value) error\n}\n\nvar noop = transcoder{\n\tfn: func(reflect.Value) error {\n\t\treturn nil\n\t},\n}\n\ntype transcoders struct {\n\tlock sync.RWMutex\n\tm    map[reflect.Type]**transcoder\n}\n\nfunc (ts *transcoders) getTranscoder(rt reflect.Type) transcoder {\n\tts.lock.RLock()\n\ttpp, ok := ts.m[rt]\n\tts.lock.RUnlock()\n\tif ok {\n\t\treturn **tpp\n\t}\n\n\tts.lock.Lock()\n\tdefer ts.lock.Unlock()\n\ttp := ts.getTranscoderLocked(rt)\n\treturn *tp\n}\n\nfunc (ts *transcoders) getTranscoderLocked(rt reflect.Type) *transcoder {\n\tif tpp, ok := ts.m[rt]; ok {\n\t\t// A transcoder for this type was cached while waiting to acquire the lock.\n\t\treturn *tpp\n\t}\n\n\t// Cache the transcoder now, before populating fn, so that circular references between types\n\t// don't overflow the call stack.\n\tt := new(transcoder)\n\tif ts.m == nil {\n\t\tts.m = make(map[reflect.Type]**transcoder)\n\t}\n\tts.m[rt] = &t\n\n\tfor rawType, fn := range rawTypeTranscodeFuncs {\n\t\tif rt == rawType {\n\t\t\tt = &transcoder{fn: fn}\n\t\t\treturn t\n\t\t}\n\t}\n\n\tswitch rt.Kind() {\n\tcase reflect.Array:\n\t\tte := ts.getTranscoderLocked(rt.Elem())\n\t\trtlen := rt.Len()\n\t\tif rtlen == 0 || te == &noop {\n\t\t\tt = &noop\n\t\t\tbreak\n\t\t}\n\t\tt.fn = func(rv reflect.Value) error {\n\t\t\tfor i := 0; i < rtlen; i++ {\n\t\t\t\tif err := te.fn(rv.Index(i)); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\tcase reflect.Interface:\n\t\t// Any interface value might have a dynamic type involving RawExtension. It needs to\n\t\t// be checked.\n\t\tt.fn = func(rv reflect.Value) error {\n\t\t\tif rv.IsNil() {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\trv = rv.Elem()\n\t\t\t// The interface element's type is dynamic so its transcoder can't be\n\t\t\t// determined statically.\n\t\t\treturn ts.getTranscoder(rv.Type()).fn(rv)\n\t\t}\n\tcase reflect.Map:\n\t\trtk := rt.Key()\n\t\ttk := ts.getTranscoderLocked(rtk)\n\t\trte := rt.Elem()\n\t\tte := ts.getTranscoderLocked(rte)\n\t\tif tk == &noop && te == &noop {\n\t\t\tt = &noop\n\t\t\tbreak\n\t\t}\n\t\tt.fn = func(rv reflect.Value) error {\n\t\t\titer := rv.MapRange()\n\t\t\trvk := reflect.New(rtk).Elem()\n\t\t\trve := reflect.New(rte).Elem()\n\t\t\tfor iter.Next() {\n\t\t\t\trvk.SetIterKey(iter)\n\t\t\t\tif err := tk.fn(rvk); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\trve.SetIterValue(iter)\n\t\t\t\tif err := te.fn(rve); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\tcase reflect.Pointer:\n\t\tte := ts.getTranscoderLocked(rt.Elem())\n\t\tif te == &noop {\n\t\t\tt = &noop\n\t\t\tbreak\n\t\t}\n\t\tt.fn = func(rv reflect.Value) error {\n\t\t\tif rv.IsNil() {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\treturn te.fn(rv.Elem())\n\t\t}\n\tcase reflect.Slice:\n\t\tte := ts.getTranscoderLocked(rt.Elem())\n\t\tif te == &noop {\n\t\t\tt = &noop\n\t\t\tbreak\n\t\t}\n\t\tt.fn = func(rv reflect.Value) error {\n\t\t\tfor i := 0; i < rv.Len(); i++ {\n\t\t\t\tif err := te.fn(rv.Index(i)); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\tcase reflect.Struct:\n\t\ttype fieldTranscoder struct {\n\t\t\tIndex      int\n\t\t\tTranscoder *transcoder\n\t\t}\n\t\tvar fieldTranscoders []fieldTranscoder\n\t\tfor i := 0; i < rt.NumField(); i++ {\n\t\t\tf := rt.Field(i)\n\t\t\ttf := ts.getTranscoderLocked(f.Type)\n\t\t\tif tf == &noop {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tfieldTranscoders = append(fieldTranscoders, fieldTranscoder{Index: i, Transcoder: tf})\n\t\t}\n\t\tif len(fieldTranscoders) == 0 {\n\t\t\tt = &noop\n\t\t\tbreak\n\t\t}\n\t\tt.fn = func(rv reflect.Value) error {\n\t\t\tfor _, ft := range fieldTranscoders {\n\t\t\t\tif err := ft.Transcoder.fn(rv.Field(ft.Index)); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\tdefault:\n\t\tt = &noop\n\t}\n\n\treturn t\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/serializer/codec_factory.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage serializer\n\nimport (\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/runtime/serializer/json\"\n\t\"k8s.io/apimachinery/pkg/runtime/serializer/protobuf\"\n\t\"k8s.io/apimachinery/pkg/runtime/serializer/recognizer\"\n\t\"k8s.io/apimachinery/pkg/runtime/serializer/versioning\"\n)\n\nfunc newSerializersForScheme(scheme *runtime.Scheme, mf json.MetaFactory, options CodecFactoryOptions) []runtime.SerializerInfo {\n\tjsonSerializer := json.NewSerializerWithOptions(\n\t\tmf, scheme, scheme,\n\t\tjson.SerializerOptions{Yaml: false, Pretty: false, Strict: options.Strict},\n\t)\n\tjsonSerializerType := runtime.SerializerInfo{\n\t\tMediaType:        runtime.ContentTypeJSON,\n\t\tMediaTypeType:    \"application\",\n\t\tMediaTypeSubType: \"json\",\n\t\tEncodesAsText:    true,\n\t\tSerializer:       jsonSerializer,\n\t\tStrictSerializer: json.NewSerializerWithOptions(\n\t\t\tmf, scheme, scheme,\n\t\t\tjson.SerializerOptions{Yaml: false, Pretty: false, Strict: true},\n\t\t),\n\t\tStreamSerializer: &runtime.StreamSerializerInfo{\n\t\t\tEncodesAsText: true,\n\t\t\tSerializer:    jsonSerializer,\n\t\t\tFramer:        json.Framer,\n\t\t},\n\t}\n\tif options.Pretty {\n\t\tjsonSerializerType.PrettySerializer = json.NewSerializerWithOptions(\n\t\t\tmf, scheme, scheme,\n\t\t\tjson.SerializerOptions{Yaml: false, Pretty: true, Strict: options.Strict},\n\t\t)\n\t}\n\n\tyamlSerializer := json.NewSerializerWithOptions(\n\t\tmf, scheme, scheme,\n\t\tjson.SerializerOptions{Yaml: true, Pretty: false, Strict: options.Strict},\n\t)\n\tstrictYAMLSerializer := json.NewSerializerWithOptions(\n\t\tmf, scheme, scheme,\n\t\tjson.SerializerOptions{Yaml: true, Pretty: false, Strict: true},\n\t)\n\tprotoSerializer := protobuf.NewSerializer(scheme, scheme)\n\tprotoRawSerializer := protobuf.NewRawSerializer(scheme, scheme)\n\n\tserializers := []runtime.SerializerInfo{\n\t\tjsonSerializerType,\n\t\t{\n\t\t\tMediaType:        runtime.ContentTypeYAML,\n\t\t\tMediaTypeType:    \"application\",\n\t\t\tMediaTypeSubType: \"yaml\",\n\t\t\tEncodesAsText:    true,\n\t\t\tSerializer:       yamlSerializer,\n\t\t\tStrictSerializer: strictYAMLSerializer,\n\t\t},\n\t\t{\n\t\t\tMediaType:        runtime.ContentTypeProtobuf,\n\t\t\tMediaTypeType:    \"application\",\n\t\t\tMediaTypeSubType: \"vnd.kubernetes.protobuf\",\n\t\t\tSerializer:       protoSerializer,\n\t\t\t// note, strict decoding is unsupported for protobuf,\n\t\t\t// fall back to regular serializing\n\t\t\tStrictSerializer: protoSerializer,\n\t\t\tStreamSerializer: &runtime.StreamSerializerInfo{\n\t\t\t\tSerializer: protoRawSerializer,\n\t\t\t\tFramer:     protobuf.LengthDelimitedFramer,\n\t\t\t},\n\t\t},\n\t}\n\n\tfor _, f := range options.serializers {\n\t\tserializers = append(serializers, f(scheme, scheme))\n\t}\n\n\treturn serializers\n}\n\n// CodecFactory provides methods for retrieving codecs and serializers for specific\n// versions and content types.\ntype CodecFactory struct {\n\tscheme    *runtime.Scheme\n\tuniversal runtime.Decoder\n\taccepts   []runtime.SerializerInfo\n\n\tlegacySerializer runtime.Serializer\n}\n\n// CodecFactoryOptions holds the options for configuring CodecFactory behavior\ntype CodecFactoryOptions struct {\n\t// Strict configures all serializers in strict mode\n\tStrict bool\n\t// Pretty includes a pretty serializer along with the non-pretty one\n\tPretty bool\n\n\tserializers []func(runtime.ObjectCreater, runtime.ObjectTyper) runtime.SerializerInfo\n}\n\n// CodecFactoryOptionsMutator takes a pointer to an options struct and then modifies it.\n// Functions implementing this type can be passed to the NewCodecFactory() constructor.\ntype CodecFactoryOptionsMutator func(*CodecFactoryOptions)\n\n// EnablePretty enables including a pretty serializer along with the non-pretty one\nfunc EnablePretty(options *CodecFactoryOptions) {\n\toptions.Pretty = true\n}\n\n// DisablePretty disables including a pretty serializer along with the non-pretty one\nfunc DisablePretty(options *CodecFactoryOptions) {\n\toptions.Pretty = false\n}\n\n// EnableStrict enables configuring all serializers in strict mode\nfunc EnableStrict(options *CodecFactoryOptions) {\n\toptions.Strict = true\n}\n\n// DisableStrict disables configuring all serializers in strict mode\nfunc DisableStrict(options *CodecFactoryOptions) {\n\toptions.Strict = false\n}\n\n// WithSerializer configures a serializer to be supported in addition to the default serializers.\nfunc WithSerializer(f func(runtime.ObjectCreater, runtime.ObjectTyper) runtime.SerializerInfo) CodecFactoryOptionsMutator {\n\treturn func(options *CodecFactoryOptions) {\n\t\toptions.serializers = append(options.serializers, f)\n\t}\n}\n\n// NewCodecFactory provides methods for retrieving serializers for the supported wire formats\n// and conversion wrappers to define preferred internal and external versions. In the future,\n// as the internal version is used less, callers may instead use a defaulting serializer and\n// only convert objects which are shared internally (Status, common API machinery).\n//\n// Mutators can be passed to change the CodecFactoryOptions before construction of the factory.\n// It is recommended to explicitly pass mutators instead of relying on defaults.\n// By default, Pretty is enabled -- this is conformant with previously supported behavior.\n//\n// TODO: allow other codecs to be compiled in?\n// TODO: accept a scheme interface\nfunc NewCodecFactory(scheme *runtime.Scheme, mutators ...CodecFactoryOptionsMutator) CodecFactory {\n\toptions := CodecFactoryOptions{Pretty: true}\n\tfor _, fn := range mutators {\n\t\tfn(&options)\n\t}\n\n\tserializers := newSerializersForScheme(scheme, json.DefaultMetaFactory, options)\n\treturn newCodecFactory(scheme, serializers)\n}\n\n// newCodecFactory is a helper for testing that allows a different metafactory to be specified.\nfunc newCodecFactory(scheme *runtime.Scheme, serializers []runtime.SerializerInfo) CodecFactory {\n\tdecoders := make([]runtime.Decoder, 0, len(serializers))\n\tvar accepts []runtime.SerializerInfo\n\talreadyAccepted := make(map[string]struct{})\n\n\tvar legacySerializer runtime.Serializer\n\tfor _, d := range serializers {\n\t\tdecoders = append(decoders, d.Serializer)\n\t\tif _, ok := alreadyAccepted[d.MediaType]; ok {\n\t\t\tcontinue\n\t\t}\n\t\talreadyAccepted[d.MediaType] = struct{}{}\n\n\t\tacceptedSerializerShallowCopy := d\n\t\tif d.StreamSerializer != nil {\n\t\t\tcloned := *d.StreamSerializer\n\t\t\tacceptedSerializerShallowCopy.StreamSerializer = &cloned\n\t\t}\n\t\taccepts = append(accepts, acceptedSerializerShallowCopy)\n\n\t\tif d.MediaType == runtime.ContentTypeJSON {\n\t\t\tlegacySerializer = d.Serializer\n\t\t}\n\t}\n\tif legacySerializer == nil {\n\t\tlegacySerializer = serializers[0].Serializer\n\t}\n\n\treturn CodecFactory{\n\t\tscheme:    scheme,\n\t\tuniversal: recognizer.NewDecoder(decoders...),\n\n\t\taccepts: accepts,\n\n\t\tlegacySerializer: legacySerializer,\n\t}\n}\n\n// WithoutConversion returns a NegotiatedSerializer that performs no conversion, even if the\n// caller requests it.\nfunc (f CodecFactory) WithoutConversion() runtime.NegotiatedSerializer {\n\treturn WithoutConversionCodecFactory{f}\n}\n\n// SupportedMediaTypes returns the RFC2046 media types that this factory has serializers for.\nfunc (f CodecFactory) SupportedMediaTypes() []runtime.SerializerInfo {\n\treturn f.accepts\n}\n\n// LegacyCodec encodes output to a given API versions, and decodes output into the internal form from\n// any recognized source. The returned codec will always encode output to JSON. If a type is not\n// found in the list of versions an error will be returned.\n//\n// This method is deprecated - clients and servers should negotiate a serializer by mime-type and\n// invoke CodecForVersions. Callers that need only to read data should use UniversalDecoder().\n//\n// TODO: make this call exist only in pkg/api, and initialize it with the set of default versions.\n// All other callers will be forced to request a Codec directly.\nfunc (f CodecFactory) LegacyCodec(version ...schema.GroupVersion) runtime.Codec {\n\treturn versioning.NewDefaultingCodecForScheme(f.scheme, f.legacySerializer, f.universal, schema.GroupVersions(version), runtime.InternalGroupVersioner)\n}\n\n// UniversalDeserializer can convert any stored data recognized by this factory into a Go object that satisfies\n// runtime.Object. It does not perform conversion. It does not perform defaulting.\nfunc (f CodecFactory) UniversalDeserializer() runtime.Decoder {\n\treturn f.universal\n}\n\n// UniversalDecoder returns a runtime.Decoder capable of decoding all known API objects in all known formats. Used\n// by clients that do not need to encode objects but want to deserialize API objects stored on disk. Only decodes\n// objects in groups registered with the scheme. The GroupVersions passed may be used to select alternate\n// versions of objects to return - by default, runtime.APIVersionInternal is used. If any versions are specified,\n// unrecognized groups will be returned in the version they are encoded as (no conversion). This decoder performs\n// defaulting.\n//\n// TODO: the decoder will eventually be removed in favor of dealing with objects in their versioned form\n// TODO: only accept a group versioner\nfunc (f CodecFactory) UniversalDecoder(versions ...schema.GroupVersion) runtime.Decoder {\n\tvar versioner runtime.GroupVersioner\n\tif len(versions) == 0 {\n\t\tversioner = runtime.InternalGroupVersioner\n\t} else {\n\t\tversioner = schema.GroupVersions(versions)\n\t}\n\treturn f.CodecForVersions(nil, f.universal, nil, versioner)\n}\n\n// CodecForVersions creates a codec with the provided serializer. If an object is decoded and its group is not in the list,\n// it will default to runtime.APIVersionInternal. If encode is not specified for an object's group, the object is not\n// converted. If encode or decode are nil, no conversion is performed.\nfunc (f CodecFactory) CodecForVersions(encoder runtime.Encoder, decoder runtime.Decoder, encode runtime.GroupVersioner, decode runtime.GroupVersioner) runtime.Codec {\n\t// TODO: these are for backcompat, remove them in the future\n\tif encode == nil {\n\t\tencode = runtime.DisabledGroupVersioner\n\t}\n\tif decode == nil {\n\t\tdecode = runtime.InternalGroupVersioner\n\t}\n\treturn versioning.NewDefaultingCodecForScheme(f.scheme, encoder, decoder, encode, decode)\n}\n\n// DecoderToVersion returns a decoder that targets the provided group version.\nfunc (f CodecFactory) DecoderToVersion(decoder runtime.Decoder, gv runtime.GroupVersioner) runtime.Decoder {\n\treturn f.CodecForVersions(nil, decoder, nil, gv)\n}\n\n// EncoderForVersion returns an encoder that targets the provided group version.\nfunc (f CodecFactory) EncoderForVersion(encoder runtime.Encoder, gv runtime.GroupVersioner) runtime.Encoder {\n\treturn f.CodecForVersions(encoder, nil, gv, nil)\n}\n\n// WithoutConversionCodecFactory is a CodecFactory that will explicitly ignore requests to perform conversion.\n// This wrapper is used while code migrates away from using conversion (such as external clients) and in the future\n// will be unnecessary when we change the signature of NegotiatedSerializer.\ntype WithoutConversionCodecFactory struct {\n\tCodecFactory\n}\n\n// EncoderForVersion returns an encoder that does not do conversion, but does set the group version kind of the object\n// when serialized.\nfunc (f WithoutConversionCodecFactory) EncoderForVersion(serializer runtime.Encoder, version runtime.GroupVersioner) runtime.Encoder {\n\treturn runtime.WithVersionEncoder{\n\t\tVersion:     version,\n\t\tEncoder:     serializer,\n\t\tObjectTyper: f.CodecFactory.scheme,\n\t}\n}\n\n// DecoderToVersion returns an decoder that does not do conversion.\nfunc (f WithoutConversionCodecFactory) DecoderToVersion(serializer runtime.Decoder, _ runtime.GroupVersioner) runtime.Decoder {\n\treturn runtime.WithoutVersionDecoder{\n\t\tDecoder: serializer,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/serializer/json/json.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage json\n\nimport (\n\t\"encoding/json\"\n\t\"io\"\n\t\"strconv\"\n\n\tkjson \"sigs.k8s.io/json\"\n\t\"sigs.k8s.io/yaml\"\n\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/runtime/serializer/recognizer\"\n\t\"k8s.io/apimachinery/pkg/util/framer\"\n\tutilyaml \"k8s.io/apimachinery/pkg/util/yaml\"\n\t\"k8s.io/klog/v2\"\n)\n\n// NewSerializer creates a JSON serializer that handles encoding versioned objects into the proper JSON form. If typer\n// is not nil, the object has the group, version, and kind fields set.\n// Deprecated: use NewSerializerWithOptions instead.\nfunc NewSerializer(meta MetaFactory, creater runtime.ObjectCreater, typer runtime.ObjectTyper, pretty bool) *Serializer {\n\treturn NewSerializerWithOptions(meta, creater, typer, SerializerOptions{false, pretty, false})\n}\n\n// NewYAMLSerializer creates a YAML serializer that handles encoding versioned objects into the proper YAML form. If typer\n// is not nil, the object has the group, version, and kind fields set. This serializer supports only the subset of YAML that\n// matches JSON, and will error if constructs are used that do not serialize to JSON.\n// Deprecated: use NewSerializerWithOptions instead.\nfunc NewYAMLSerializer(meta MetaFactory, creater runtime.ObjectCreater, typer runtime.ObjectTyper) *Serializer {\n\treturn NewSerializerWithOptions(meta, creater, typer, SerializerOptions{true, false, false})\n}\n\n// NewSerializerWithOptions creates a JSON/YAML serializer that handles encoding versioned objects into the proper JSON/YAML\n// form. If typer is not nil, the object has the group, version, and kind fields set. Options are copied into the Serializer\n// and are immutable.\nfunc NewSerializerWithOptions(meta MetaFactory, creater runtime.ObjectCreater, typer runtime.ObjectTyper, options SerializerOptions) *Serializer {\n\treturn &Serializer{\n\t\tmeta:       meta,\n\t\tcreater:    creater,\n\t\ttyper:      typer,\n\t\toptions:    options,\n\t\tidentifier: identifier(options),\n\t}\n}\n\n// identifier computes Identifier of Encoder based on the given options.\nfunc identifier(options SerializerOptions) runtime.Identifier {\n\tresult := map[string]string{\n\t\t\"name\":   \"json\",\n\t\t\"yaml\":   strconv.FormatBool(options.Yaml),\n\t\t\"pretty\": strconv.FormatBool(options.Pretty),\n\t\t\"strict\": strconv.FormatBool(options.Strict),\n\t}\n\tidentifier, err := json.Marshal(result)\n\tif err != nil {\n\t\tklog.Fatalf(\"Failed marshaling identifier for json Serializer: %v\", err)\n\t}\n\treturn runtime.Identifier(identifier)\n}\n\n// SerializerOptions holds the options which are used to configure a JSON/YAML serializer.\n// example:\n// (1) To configure a JSON serializer, set `Yaml` to `false`.\n// (2) To configure a YAML serializer, set `Yaml` to `true`.\n// (3) To configure a strict serializer that can return strictDecodingError, set `Strict` to `true`.\ntype SerializerOptions struct {\n\t// Yaml: configures the Serializer to work with JSON(false) or YAML(true).\n\t// When `Yaml` is enabled, this serializer only supports the subset of YAML that\n\t// matches JSON, and will error if constructs are used that do not serialize to JSON.\n\tYaml bool\n\n\t// Pretty: configures a JSON enabled Serializer(`Yaml: false`) to produce human-readable output.\n\t// This option is silently ignored when `Yaml` is `true`.\n\tPretty bool\n\n\t// Strict: configures the Serializer to return strictDecodingError's when duplicate fields are present decoding JSON or YAML.\n\t// Note that enabling this option is not as performant as the non-strict variant, and should not be used in fast paths.\n\tStrict bool\n}\n\n// Serializer handles encoding versioned objects into the proper JSON form\ntype Serializer struct {\n\tmeta    MetaFactory\n\toptions SerializerOptions\n\tcreater runtime.ObjectCreater\n\ttyper   runtime.ObjectTyper\n\n\tidentifier runtime.Identifier\n}\n\n// Serializer implements Serializer\nvar _ runtime.Serializer = &Serializer{}\nvar _ recognizer.RecognizingDecoder = &Serializer{}\n\n// gvkWithDefaults returns group kind and version defaulting from provided default\nfunc gvkWithDefaults(actual, defaultGVK schema.GroupVersionKind) schema.GroupVersionKind {\n\tif len(actual.Kind) == 0 {\n\t\tactual.Kind = defaultGVK.Kind\n\t}\n\tif len(actual.Version) == 0 && len(actual.Group) == 0 {\n\t\tactual.Group = defaultGVK.Group\n\t\tactual.Version = defaultGVK.Version\n\t}\n\tif len(actual.Version) == 0 && actual.Group == defaultGVK.Group {\n\t\tactual.Version = defaultGVK.Version\n\t}\n\treturn actual\n}\n\n// Decode attempts to convert the provided data into YAML or JSON, extract the stored schema kind, apply the provided default gvk, and then\n// load that data into an object matching the desired schema kind or the provided into.\n// If into is *runtime.Unknown, the raw data will be extracted and no decoding will be performed.\n// If into is not registered with the typer, then the object will be straight decoded using normal JSON/YAML unmarshalling.\n// If into is provided and the original data is not fully qualified with kind/version/group, the type of the into will be used to alter the returned gvk.\n// If into is nil or data's gvk different from into's gvk, it will generate a new Object with ObjectCreater.New(gvk)\n// On success or most errors, the method will return the calculated schema kind.\n// The gvk calculate priority will be originalData > default gvk > into\nfunc (s *Serializer) Decode(originalData []byte, gvk *schema.GroupVersionKind, into runtime.Object) (runtime.Object, *schema.GroupVersionKind, error) {\n\tdata := originalData\n\tif s.options.Yaml {\n\t\taltered, err := yaml.YAMLToJSON(data)\n\t\tif err != nil {\n\t\t\treturn nil, nil, err\n\t\t}\n\t\tdata = altered\n\t}\n\n\tactual, err := s.meta.Interpret(data)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\tif gvk != nil {\n\t\t*actual = gvkWithDefaults(*actual, *gvk)\n\t}\n\n\tif unk, ok := into.(*runtime.Unknown); ok && unk != nil {\n\t\tunk.Raw = originalData\n\t\tunk.ContentType = runtime.ContentTypeJSON\n\t\tunk.GetObjectKind().SetGroupVersionKind(*actual)\n\t\treturn unk, actual, nil\n\t}\n\n\tif into != nil {\n\t\t_, isUnstructured := into.(runtime.Unstructured)\n\t\ttypes, _, err := s.typer.ObjectKinds(into)\n\t\tswitch {\n\t\tcase runtime.IsNotRegisteredError(err), isUnstructured:\n\t\t\tstrictErrs, err := s.unmarshal(into, data, originalData)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, actual, err\n\t\t\t}\n\n\t\t\t// when decoding directly into a provided unstructured object,\n\t\t\t// extract the actual gvk decoded from the provided data,\n\t\t\t// and ensure it is non-empty.\n\t\t\tif isUnstructured {\n\t\t\t\t*actual = into.GetObjectKind().GroupVersionKind()\n\t\t\t\tif len(actual.Kind) == 0 {\n\t\t\t\t\treturn nil, actual, runtime.NewMissingKindErr(string(originalData))\n\t\t\t\t}\n\t\t\t\t// TODO(109023): require apiVersion here as well once unstructuredJSONScheme#Decode does\n\t\t\t}\n\n\t\t\tif len(strictErrs) > 0 {\n\t\t\t\treturn into, actual, runtime.NewStrictDecodingError(strictErrs)\n\t\t\t}\n\t\t\treturn into, actual, nil\n\t\tcase err != nil:\n\t\t\treturn nil, actual, err\n\t\tdefault:\n\t\t\t*actual = gvkWithDefaults(*actual, types[0])\n\t\t}\n\t}\n\n\tif len(actual.Kind) == 0 {\n\t\treturn nil, actual, runtime.NewMissingKindErr(string(originalData))\n\t}\n\tif len(actual.Version) == 0 {\n\t\treturn nil, actual, runtime.NewMissingVersionErr(string(originalData))\n\t}\n\n\t// use the target if necessary\n\tobj, err := runtime.UseOrCreateObject(s.typer, s.creater, *actual, into)\n\tif err != nil {\n\t\treturn nil, actual, err\n\t}\n\n\tstrictErrs, err := s.unmarshal(obj, data, originalData)\n\tif err != nil {\n\t\treturn nil, actual, err\n\t} else if len(strictErrs) > 0 {\n\t\treturn obj, actual, runtime.NewStrictDecodingError(strictErrs)\n\t}\n\treturn obj, actual, nil\n}\n\n// Encode serializes the provided object to the given writer.\nfunc (s *Serializer) Encode(obj runtime.Object, w io.Writer) error {\n\tif co, ok := obj.(runtime.CacheableObject); ok {\n\t\treturn co.CacheEncode(s.Identifier(), s.doEncode, w)\n\t}\n\treturn s.doEncode(obj, w)\n}\n\nfunc (s *Serializer) doEncode(obj runtime.Object, w io.Writer) error {\n\tif s.options.Yaml {\n\t\tjson, err := json.Marshal(obj)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdata, err := yaml.JSONToYAML(json)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = w.Write(data)\n\t\treturn err\n\t}\n\n\tif s.options.Pretty {\n\t\tdata, err := json.MarshalIndent(obj, \"\", \"  \")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = w.Write(data)\n\t\treturn err\n\t}\n\tencoder := json.NewEncoder(w)\n\treturn encoder.Encode(obj)\n}\n\n// IsStrict indicates whether the serializer\n// uses strict decoding or not\nfunc (s *Serializer) IsStrict() bool {\n\treturn s.options.Strict\n}\n\nfunc (s *Serializer) unmarshal(into runtime.Object, data, originalData []byte) (strictErrs []error, err error) {\n\t// If the deserializer is non-strict, return here.\n\tif !s.options.Strict {\n\t\tif err := kjson.UnmarshalCaseSensitivePreserveInts(data, into); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treturn nil, nil\n\t}\n\n\tif s.options.Yaml {\n\t\t// In strict mode pass the original data through the YAMLToJSONStrict converter.\n\t\t// This is done to catch duplicate fields in YAML that would have been dropped in the original YAMLToJSON conversion.\n\t\t// TODO: rework YAMLToJSONStrict to return warnings about duplicate fields without terminating so we don't have to do this twice.\n\t\t_, err := yaml.YAMLToJSONStrict(originalData)\n\t\tif err != nil {\n\t\t\tstrictErrs = append(strictErrs, err)\n\t\t}\n\t}\n\n\tvar strictJSONErrs []error\n\tif u, isUnstructured := into.(runtime.Unstructured); isUnstructured {\n\t\t// Unstructured is a custom unmarshaler that gets delegated\n\t\t// to, so in order to detect strict JSON errors we need\n\t\t// to unmarshal directly into the object.\n\t\tm := map[string]interface{}{}\n\t\tstrictJSONErrs, err = kjson.UnmarshalStrict(data, &m)\n\t\tu.SetUnstructuredContent(m)\n\t} else {\n\t\tstrictJSONErrs, err = kjson.UnmarshalStrict(data, into)\n\t}\n\tif err != nil {\n\t\t// fatal decoding error, not due to strictness\n\t\treturn nil, err\n\t}\n\tstrictErrs = append(strictErrs, strictJSONErrs...)\n\treturn strictErrs, nil\n}\n\n// Identifier implements runtime.Encoder interface.\nfunc (s *Serializer) Identifier() runtime.Identifier {\n\treturn s.identifier\n}\n\n// RecognizesData implements the RecognizingDecoder interface.\nfunc (s *Serializer) RecognizesData(data []byte) (ok, unknown bool, err error) {\n\tif s.options.Yaml {\n\t\t// we could potentially look for '---'\n\t\treturn false, true, nil\n\t}\n\treturn utilyaml.IsJSONBuffer(data), false, nil\n}\n\n// Framer is the default JSON framing behavior, with newlines delimiting individual objects.\nvar Framer = jsonFramer{}\n\ntype jsonFramer struct{}\n\n// NewFrameWriter implements stream framing for this serializer\nfunc (jsonFramer) NewFrameWriter(w io.Writer) io.Writer {\n\t// we can write JSON objects directly to the writer, because they are self-framing\n\treturn w\n}\n\n// NewFrameReader implements stream framing for this serializer\nfunc (jsonFramer) NewFrameReader(r io.ReadCloser) io.ReadCloser {\n\t// we need to extract the JSON chunks of data to pass to Decode()\n\treturn framer.NewJSONFramedReader(r)\n}\n\n// YAMLFramer is the default JSON framing behavior, with newlines delimiting individual objects.\nvar YAMLFramer = yamlFramer{}\n\ntype yamlFramer struct{}\n\n// NewFrameWriter implements stream framing for this serializer\nfunc (yamlFramer) NewFrameWriter(w io.Writer) io.Writer {\n\treturn yamlFrameWriter{w}\n}\n\n// NewFrameReader implements stream framing for this serializer\nfunc (yamlFramer) NewFrameReader(r io.ReadCloser) io.ReadCloser {\n\t// extract the YAML document chunks directly\n\treturn utilyaml.NewDocumentDecoder(r)\n}\n\ntype yamlFrameWriter struct {\n\tw io.Writer\n}\n\n// Write separates each document with the YAML document separator (`---` followed by line\n// break). Writers must write well formed YAML documents (include a final line break).\nfunc (w yamlFrameWriter) Write(data []byte) (n int, err error) {\n\tif _, err := w.w.Write([]byte(\"---\\n\")); err != nil {\n\t\treturn 0, err\n\t}\n\treturn w.w.Write(data)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/serializer/json/meta.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage json\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// MetaFactory is used to store and retrieve the version and kind\n// information for JSON objects in a serializer.\ntype MetaFactory interface {\n\t// Interpret should return the version and kind of the wire-format of\n\t// the object.\n\tInterpret(data []byte) (*schema.GroupVersionKind, error)\n}\n\n// DefaultMetaFactory is a default factory for versioning objects in JSON. The object\n// in memory and in the default JSON serialization will use the \"kind\" and \"apiVersion\"\n// fields.\nvar DefaultMetaFactory = SimpleMetaFactory{}\n\n// SimpleMetaFactory provides default methods for retrieving the type and version of objects\n// that are identified with an \"apiVersion\" and \"kind\" fields in their JSON\n// serialization. It may be parameterized with the names of the fields in memory, or an\n// optional list of base structs to search for those fields in memory.\ntype SimpleMetaFactory struct {\n}\n\n// Interpret will return the APIVersion and Kind of the JSON wire-format\n// encoding of an object, or an error.\nfunc (SimpleMetaFactory) Interpret(data []byte) (*schema.GroupVersionKind, error) {\n\tfindKind := struct {\n\t\t// +optional\n\t\tAPIVersion string `json:\"apiVersion,omitempty\"`\n\t\t// +optional\n\t\tKind string `json:\"kind,omitempty\"`\n\t}{}\n\tif err := json.Unmarshal(data, &findKind); err != nil {\n\t\treturn nil, fmt.Errorf(\"couldn't get version/kind; json parse error: %v\", err)\n\t}\n\tgv, err := schema.ParseGroupVersion(findKind.APIVersion)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &schema.GroupVersionKind{Group: gv.Group, Version: gv.Version, Kind: findKind.Kind}, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/serializer/negotiated_codec.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage serializer\n\nimport (\n\t\"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// TODO: We should split negotiated serializers that we can change versions on from those we can change\n// serialization formats on\ntype negotiatedSerializerWrapper struct {\n\tinfo runtime.SerializerInfo\n}\n\nfunc NegotiatedSerializerWrapper(info runtime.SerializerInfo) runtime.NegotiatedSerializer {\n\treturn &negotiatedSerializerWrapper{info}\n}\n\nfunc (n *negotiatedSerializerWrapper) SupportedMediaTypes() []runtime.SerializerInfo {\n\treturn []runtime.SerializerInfo{n.info}\n}\n\nfunc (n *negotiatedSerializerWrapper) EncoderForVersion(e runtime.Encoder, _ runtime.GroupVersioner) runtime.Encoder {\n\treturn e\n}\n\nfunc (n *negotiatedSerializerWrapper) DecoderToVersion(d runtime.Decoder, _gv runtime.GroupVersioner) runtime.Decoder {\n\treturn d\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/serializer/protobuf/doc.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package protobuf provides a Kubernetes serializer for the protobuf format.\npackage protobuf // import \"k8s.io/apimachinery/pkg/runtime/serializer/protobuf\"\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/serializer/protobuf/protobuf.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage protobuf\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n\t\"reflect\"\n\n\t\"github.com/gogo/protobuf/proto\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/runtime/serializer/recognizer\"\n\t\"k8s.io/apimachinery/pkg/util/framer\"\n\t\"k8s.io/klog/v2\"\n)\n\nvar (\n\t// protoEncodingPrefix serves as a magic number for an encoded protobuf message on this serializer. All\n\t// proto messages serialized by this schema will be preceded by the bytes 0x6b 0x38 0x73, with the fourth\n\t// byte being reserved for the encoding style. The only encoding style defined is 0x00, which means that\n\t// the rest of the byte stream is a message of type k8s.io.kubernetes.pkg.runtime.Unknown (proto2).\n\t//\n\t// See k8s.io/apimachinery/pkg/runtime/generated.proto for details of the runtime.Unknown message.\n\t//\n\t// This encoding scheme is experimental, and is subject to change at any time.\n\tprotoEncodingPrefix = []byte{0x6b, 0x38, 0x73, 0x00}\n)\n\ntype errNotMarshalable struct {\n\tt reflect.Type\n}\n\nfunc (e errNotMarshalable) Error() string {\n\treturn fmt.Sprintf(\"object %v does not implement the protobuf marshalling interface and cannot be encoded to a protobuf message\", e.t)\n}\n\nfunc (e errNotMarshalable) Status() metav1.Status {\n\treturn metav1.Status{\n\t\tStatus:  metav1.StatusFailure,\n\t\tCode:    http.StatusNotAcceptable,\n\t\tReason:  metav1.StatusReason(\"NotAcceptable\"),\n\t\tMessage: e.Error(),\n\t}\n}\n\n// IsNotMarshalable checks the type of error, returns a boolean true if error is not nil and not marshalable false otherwise\nfunc IsNotMarshalable(err error) bool {\n\t_, ok := err.(errNotMarshalable)\n\treturn err != nil && ok\n}\n\n// NewSerializer creates a Protobuf serializer that handles encoding versioned objects into the proper wire form. If a typer\n// is passed, the encoded object will have group, version, and kind fields set. If typer is nil, the objects will be written\n// as-is (any type info passed with the object will be used).\nfunc NewSerializer(creater runtime.ObjectCreater, typer runtime.ObjectTyper) *Serializer {\n\treturn &Serializer{\n\t\tprefix:  protoEncodingPrefix,\n\t\tcreater: creater,\n\t\ttyper:   typer,\n\t}\n}\n\n// Serializer handles encoding versioned objects into the proper wire form\ntype Serializer struct {\n\tprefix  []byte\n\tcreater runtime.ObjectCreater\n\ttyper   runtime.ObjectTyper\n}\n\nvar _ runtime.Serializer = &Serializer{}\nvar _ runtime.EncoderWithAllocator = &Serializer{}\nvar _ recognizer.RecognizingDecoder = &Serializer{}\n\nconst serializerIdentifier runtime.Identifier = \"protobuf\"\n\n// Decode attempts to convert the provided data into a protobuf message, extract the stored schema kind, apply the provided default\n// gvk, and then load that data into an object matching the desired schema kind or the provided into. If into is *runtime.Unknown,\n// the raw data will be extracted and no decoding will be performed. If into is not registered with the typer, then the object will\n// be straight decoded using normal protobuf unmarshalling (the MarshalTo interface). If into is provided and the original data is\n// not fully qualified with kind/version/group, the type of the into will be used to alter the returned gvk. On success or most\n// errors, the method will return the calculated schema kind.\nfunc (s *Serializer) Decode(originalData []byte, gvk *schema.GroupVersionKind, into runtime.Object) (runtime.Object, *schema.GroupVersionKind, error) {\n\tprefixLen := len(s.prefix)\n\tswitch {\n\tcase len(originalData) == 0:\n\t\t// TODO: treat like decoding {} from JSON with defaulting\n\t\treturn nil, nil, fmt.Errorf(\"empty data\")\n\tcase len(originalData) < prefixLen || !bytes.Equal(s.prefix, originalData[:prefixLen]):\n\t\treturn nil, nil, fmt.Errorf(\"provided data does not appear to be a protobuf message, expected prefix %v\", s.prefix)\n\tcase len(originalData) == prefixLen:\n\t\t// TODO: treat like decoding {} from JSON with defaulting\n\t\treturn nil, nil, fmt.Errorf(\"empty body\")\n\t}\n\n\tdata := originalData[prefixLen:]\n\tunk := runtime.Unknown{}\n\tif err := unk.Unmarshal(data); err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\tactual := unk.GroupVersionKind()\n\tcopyKindDefaults(&actual, gvk)\n\n\tif intoUnknown, ok := into.(*runtime.Unknown); ok && intoUnknown != nil {\n\t\t*intoUnknown = unk\n\t\tif ok, _, _ := s.RecognizesData(unk.Raw); ok {\n\t\t\tintoUnknown.ContentType = runtime.ContentTypeProtobuf\n\t\t}\n\t\treturn intoUnknown, &actual, nil\n\t}\n\n\tif into != nil {\n\t\ttypes, _, err := s.typer.ObjectKinds(into)\n\t\tswitch {\n\t\tcase runtime.IsNotRegisteredError(err):\n\t\t\tpb, ok := into.(proto.Message)\n\t\t\tif !ok {\n\t\t\t\treturn nil, &actual, errNotMarshalable{reflect.TypeOf(into)}\n\t\t\t}\n\t\t\tif err := proto.Unmarshal(unk.Raw, pb); err != nil {\n\t\t\t\treturn nil, &actual, err\n\t\t\t}\n\t\t\treturn into, &actual, nil\n\t\tcase err != nil:\n\t\t\treturn nil, &actual, err\n\t\tdefault:\n\t\t\tcopyKindDefaults(&actual, &types[0])\n\t\t\t// if the result of defaulting did not set a version or group, ensure that at least group is set\n\t\t\t// (copyKindDefaults will not assign Group if version is already set). This guarantees that the group\n\t\t\t// of into is set if there is no better information from the caller or object.\n\t\t\tif len(actual.Version) == 0 && len(actual.Group) == 0 {\n\t\t\t\tactual.Group = types[0].Group\n\t\t\t}\n\t\t}\n\t}\n\n\tif len(actual.Kind) == 0 {\n\t\treturn nil, &actual, runtime.NewMissingKindErr(fmt.Sprintf(\"%#v\", unk.TypeMeta))\n\t}\n\tif len(actual.Version) == 0 {\n\t\treturn nil, &actual, runtime.NewMissingVersionErr(fmt.Sprintf(\"%#v\", unk.TypeMeta))\n\t}\n\n\treturn unmarshalToObject(s.typer, s.creater, &actual, into, unk.Raw)\n}\n\n// EncodeWithAllocator writes an object to the provided writer.\n// In addition, it allows for providing a memory allocator for efficient memory usage during object serialization.\nfunc (s *Serializer) EncodeWithAllocator(obj runtime.Object, w io.Writer, memAlloc runtime.MemoryAllocator) error {\n\treturn s.encode(obj, w, memAlloc)\n}\n\n// Encode serializes the provided object to the given writer.\nfunc (s *Serializer) Encode(obj runtime.Object, w io.Writer) error {\n\treturn s.encode(obj, w, &runtime.SimpleAllocator{})\n}\n\nfunc (s *Serializer) encode(obj runtime.Object, w io.Writer, memAlloc runtime.MemoryAllocator) error {\n\tif co, ok := obj.(runtime.CacheableObject); ok {\n\t\treturn co.CacheEncode(s.Identifier(), func(obj runtime.Object, w io.Writer) error { return s.doEncode(obj, w, memAlloc) }, w)\n\t}\n\treturn s.doEncode(obj, w, memAlloc)\n}\n\nfunc (s *Serializer) doEncode(obj runtime.Object, w io.Writer, memAlloc runtime.MemoryAllocator) error {\n\tif memAlloc == nil {\n\t\tklog.Error(\"a mandatory memory allocator wasn't provided, this might have a negative impact on performance, check invocations of EncodeWithAllocator method, falling back on runtime.SimpleAllocator\")\n\t\tmemAlloc = &runtime.SimpleAllocator{}\n\t}\n\tprefixSize := uint64(len(s.prefix))\n\n\tvar unk runtime.Unknown\n\tswitch t := obj.(type) {\n\tcase *runtime.Unknown:\n\t\testimatedSize := prefixSize + uint64(t.Size())\n\t\tdata := memAlloc.Allocate(estimatedSize)\n\t\ti, err := t.MarshalTo(data[prefixSize:])\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcopy(data, s.prefix)\n\t\t_, err = w.Write(data[:prefixSize+uint64(i)])\n\t\treturn err\n\tdefault:\n\t\tkind := obj.GetObjectKind().GroupVersionKind()\n\t\tunk = runtime.Unknown{\n\t\t\tTypeMeta: runtime.TypeMeta{\n\t\t\t\tKind:       kind.Kind,\n\t\t\t\tAPIVersion: kind.GroupVersion().String(),\n\t\t\t},\n\t\t}\n\t}\n\n\tswitch t := obj.(type) {\n\tcase bufferedMarshaller:\n\t\t// this path performs a single allocation during write only when the Allocator wasn't provided\n\t\t// it also requires the caller to implement the more efficient Size and MarshalToSizedBuffer methods\n\t\tencodedSize := uint64(t.Size())\n\t\testimatedSize := prefixSize + estimateUnknownSize(&unk, encodedSize)\n\t\tdata := memAlloc.Allocate(estimatedSize)\n\n\t\ti, err := unk.NestedMarshalTo(data[prefixSize:], t, encodedSize)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tcopy(data, s.prefix)\n\n\t\t_, err = w.Write(data[:prefixSize+uint64(i)])\n\t\treturn err\n\n\tcase proto.Marshaler:\n\t\t// this path performs extra allocations\n\t\tdata, err := t.Marshal()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tunk.Raw = data\n\n\t\testimatedSize := prefixSize + uint64(unk.Size())\n\t\tdata = memAlloc.Allocate(estimatedSize)\n\n\t\ti, err := unk.MarshalTo(data[prefixSize:])\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tcopy(data, s.prefix)\n\n\t\t_, err = w.Write(data[:prefixSize+uint64(i)])\n\t\treturn err\n\n\tdefault:\n\t\t// TODO: marshal with a different content type and serializer (JSON for third party objects)\n\t\treturn errNotMarshalable{reflect.TypeOf(obj)}\n\t}\n}\n\n// Identifier implements runtime.Encoder interface.\nfunc (s *Serializer) Identifier() runtime.Identifier {\n\treturn serializerIdentifier\n}\n\n// RecognizesData implements the RecognizingDecoder interface.\nfunc (s *Serializer) RecognizesData(data []byte) (bool, bool, error) {\n\treturn bytes.HasPrefix(data, s.prefix), false, nil\n}\n\n// copyKindDefaults defaults dst to the value in src if dst does not have a value set.\nfunc copyKindDefaults(dst, src *schema.GroupVersionKind) {\n\tif src == nil {\n\t\treturn\n\t}\n\t// apply kind and version defaulting from provided default\n\tif len(dst.Kind) == 0 {\n\t\tdst.Kind = src.Kind\n\t}\n\tif len(dst.Version) == 0 && len(src.Version) > 0 {\n\t\tdst.Group = src.Group\n\t\tdst.Version = src.Version\n\t}\n}\n\n// bufferedMarshaller describes a more efficient marshalling interface that can avoid allocating multiple\n// byte buffers by pre-calculating the size of the final buffer needed.\ntype bufferedMarshaller interface {\n\tproto.Sizer\n\truntime.ProtobufMarshaller\n}\n\n// Like bufferedMarshaller, but is able to marshal backwards, which is more efficient since it doesn't call Size() as frequently.\ntype bufferedReverseMarshaller interface {\n\tproto.Sizer\n\truntime.ProtobufReverseMarshaller\n}\n\n// estimateUnknownSize returns the expected bytes consumed by a given runtime.Unknown\n// object with a nil RawJSON struct and the expected size of the provided buffer. The\n// returned size will not be correct if RawJSOn is set on unk.\nfunc estimateUnknownSize(unk *runtime.Unknown, byteSize uint64) uint64 {\n\tsize := uint64(unk.Size())\n\t// protobuf uses 1 byte for the tag, a varint for the length of the array (at most 8 bytes - uint64 - here),\n\t// and the size of the array.\n\tsize += 1 + 8 + byteSize\n\treturn size\n}\n\n// NewRawSerializer creates a Protobuf serializer that handles encoding versioned objects into the proper wire form. If typer\n// is not nil, the object has the group, version, and kind fields set. This serializer does not provide type information for the\n// encoded object, and thus is not self describing (callers must know what type is being described in order to decode).\n//\n// This encoding scheme is experimental, and is subject to change at any time.\nfunc NewRawSerializer(creater runtime.ObjectCreater, typer runtime.ObjectTyper) *RawSerializer {\n\treturn &RawSerializer{\n\t\tcreater: creater,\n\t\ttyper:   typer,\n\t}\n}\n\n// RawSerializer encodes and decodes objects without adding a runtime.Unknown wrapper (objects are encoded without identifying\n// type).\ntype RawSerializer struct {\n\tcreater runtime.ObjectCreater\n\ttyper   runtime.ObjectTyper\n}\n\nvar _ runtime.Serializer = &RawSerializer{}\n\nconst rawSerializerIdentifier runtime.Identifier = \"raw-protobuf\"\n\n// Decode attempts to convert the provided data into a protobuf message, extract the stored schema kind, apply the provided default\n// gvk, and then load that data into an object matching the desired schema kind or the provided into. If into is *runtime.Unknown,\n// the raw data will be extracted and no decoding will be performed. If into is not registered with the typer, then the object will\n// be straight decoded using normal protobuf unmarshalling (the MarshalTo interface). If into is provided and the original data is\n// not fully qualified with kind/version/group, the type of the into will be used to alter the returned gvk. On success or most\n// errors, the method will return the calculated schema kind.\nfunc (s *RawSerializer) Decode(originalData []byte, gvk *schema.GroupVersionKind, into runtime.Object) (runtime.Object, *schema.GroupVersionKind, error) {\n\tif into == nil {\n\t\treturn nil, nil, fmt.Errorf(\"this serializer requires an object to decode into: %#v\", s)\n\t}\n\n\tif len(originalData) == 0 {\n\t\t// TODO: treat like decoding {} from JSON with defaulting\n\t\treturn nil, nil, fmt.Errorf(\"empty data\")\n\t}\n\tdata := originalData\n\n\tactual := &schema.GroupVersionKind{}\n\tcopyKindDefaults(actual, gvk)\n\n\tif intoUnknown, ok := into.(*runtime.Unknown); ok && intoUnknown != nil {\n\t\tintoUnknown.Raw = data\n\t\tintoUnknown.ContentEncoding = \"\"\n\t\tintoUnknown.ContentType = runtime.ContentTypeProtobuf\n\t\tintoUnknown.SetGroupVersionKind(*actual)\n\t\treturn intoUnknown, actual, nil\n\t}\n\n\ttypes, _, err := s.typer.ObjectKinds(into)\n\tswitch {\n\tcase runtime.IsNotRegisteredError(err):\n\t\tpb, ok := into.(proto.Message)\n\t\tif !ok {\n\t\t\treturn nil, actual, errNotMarshalable{reflect.TypeOf(into)}\n\t\t}\n\t\tif err := proto.Unmarshal(data, pb); err != nil {\n\t\t\treturn nil, actual, err\n\t\t}\n\t\treturn into, actual, nil\n\tcase err != nil:\n\t\treturn nil, actual, err\n\tdefault:\n\t\tcopyKindDefaults(actual, &types[0])\n\t\t// if the result of defaulting did not set a version or group, ensure that at least group is set\n\t\t// (copyKindDefaults will not assign Group if version is already set). This guarantees that the group\n\t\t// of into is set if there is no better information from the caller or object.\n\t\tif len(actual.Version) == 0 && len(actual.Group) == 0 {\n\t\t\tactual.Group = types[0].Group\n\t\t}\n\t}\n\n\tif len(actual.Kind) == 0 {\n\t\treturn nil, actual, runtime.NewMissingKindErr(\"<protobuf encoded body - must provide default type>\")\n\t}\n\tif len(actual.Version) == 0 {\n\t\treturn nil, actual, runtime.NewMissingVersionErr(\"<protobuf encoded body - must provide default type>\")\n\t}\n\n\treturn unmarshalToObject(s.typer, s.creater, actual, into, data)\n}\n\n// unmarshalToObject is the common code between decode in the raw and normal serializer.\nfunc unmarshalToObject(typer runtime.ObjectTyper, creater runtime.ObjectCreater, actual *schema.GroupVersionKind, into runtime.Object, data []byte) (runtime.Object, *schema.GroupVersionKind, error) {\n\t// use the target if necessary\n\tobj, err := runtime.UseOrCreateObject(typer, creater, *actual, into)\n\tif err != nil {\n\t\treturn nil, actual, err\n\t}\n\n\tpb, ok := obj.(proto.Message)\n\tif !ok {\n\t\treturn nil, actual, errNotMarshalable{reflect.TypeOf(obj)}\n\t}\n\tif err := proto.Unmarshal(data, pb); err != nil {\n\t\treturn nil, actual, err\n\t}\n\tif actual != nil {\n\t\tobj.GetObjectKind().SetGroupVersionKind(*actual)\n\t}\n\treturn obj, actual, nil\n}\n\n// Encode serializes the provided object to the given writer. Overrides is ignored.\nfunc (s *RawSerializer) Encode(obj runtime.Object, w io.Writer) error {\n\treturn s.encode(obj, w, &runtime.SimpleAllocator{})\n}\n\n// EncodeWithAllocator writes an object to the provided writer.\n// In addition, it allows for providing a memory allocator for efficient memory usage during object serialization.\nfunc (s *RawSerializer) EncodeWithAllocator(obj runtime.Object, w io.Writer, memAlloc runtime.MemoryAllocator) error {\n\treturn s.encode(obj, w, memAlloc)\n}\n\nfunc (s *RawSerializer) encode(obj runtime.Object, w io.Writer, memAlloc runtime.MemoryAllocator) error {\n\tif co, ok := obj.(runtime.CacheableObject); ok {\n\t\treturn co.CacheEncode(s.Identifier(), func(obj runtime.Object, w io.Writer) error { return s.doEncode(obj, w, memAlloc) }, w)\n\t}\n\treturn s.doEncode(obj, w, memAlloc)\n}\n\nfunc (s *RawSerializer) doEncode(obj runtime.Object, w io.Writer, memAlloc runtime.MemoryAllocator) error {\n\tif memAlloc == nil {\n\t\tklog.Error(\"a mandatory memory allocator wasn't provided, this might have a negative impact on performance, check invocations of EncodeWithAllocator method, falling back on runtime.SimpleAllocator\")\n\t\tmemAlloc = &runtime.SimpleAllocator{}\n\t}\n\tswitch t := obj.(type) {\n\tcase bufferedReverseMarshaller:\n\t\t// this path performs a single allocation during write only when the Allocator wasn't provided\n\t\t// it also requires the caller to implement the more efficient Size and MarshalToSizedBuffer methods\n\t\tencodedSize := uint64(t.Size())\n\t\tdata := memAlloc.Allocate(encodedSize)\n\n\t\tn, err := t.MarshalToSizedBuffer(data)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = w.Write(data[:n])\n\t\treturn err\n\n\tcase bufferedMarshaller:\n\t\t// this path performs a single allocation during write only when the Allocator wasn't provided\n\t\t// it also requires the caller to implement the more efficient Size and MarshalTo methods\n\t\tencodedSize := uint64(t.Size())\n\t\tdata := memAlloc.Allocate(encodedSize)\n\n\t\tn, err := t.MarshalTo(data)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = w.Write(data[:n])\n\t\treturn err\n\n\tcase proto.Marshaler:\n\t\t// this path performs extra allocations\n\t\tdata, err := t.Marshal()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = w.Write(data)\n\t\treturn err\n\n\tdefault:\n\t\treturn errNotMarshalable{reflect.TypeOf(obj)}\n\t}\n}\n\n// Identifier implements runtime.Encoder interface.\nfunc (s *RawSerializer) Identifier() runtime.Identifier {\n\treturn rawSerializerIdentifier\n}\n\n// LengthDelimitedFramer is exported variable of type lengthDelimitedFramer\nvar LengthDelimitedFramer = lengthDelimitedFramer{}\n\n// Provides length delimited frame reader and writer methods\ntype lengthDelimitedFramer struct{}\n\n// NewFrameWriter implements stream framing for this serializer\nfunc (lengthDelimitedFramer) NewFrameWriter(w io.Writer) io.Writer {\n\treturn framer.NewLengthDelimitedFrameWriter(w)\n}\n\n// NewFrameReader implements stream framing for this serializer\nfunc (lengthDelimitedFramer) NewFrameReader(r io.ReadCloser) io.ReadCloser {\n\treturn framer.NewLengthDelimitedFrameReader(r)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/serializer/recognizer/recognizer.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage recognizer\n\nimport (\n\t\"fmt\"\n\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\ntype RecognizingDecoder interface {\n\truntime.Decoder\n\t// RecognizesData should return true if the input provided in the provided reader\n\t// belongs to this decoder, or an error if the data could not be read or is ambiguous.\n\t// Unknown is true if the data could not be determined to match the decoder type.\n\t// Decoders should assume that they can read as much of peek as they need (as the caller\n\t// provides) and may return unknown if the data provided is not sufficient to make a\n\t// a determination. When peek returns EOF that may mean the end of the input or the\n\t// end of buffered input - recognizers should return the best guess at that time.\n\tRecognizesData(peek []byte) (ok, unknown bool, err error)\n}\n\n// NewDecoder creates a decoder that will attempt multiple decoders in an order defined\n// by:\n//\n// 1. The decoder implements RecognizingDecoder and identifies the data\n// 2. All other decoders, and any decoder that returned true for unknown.\n//\n// The order passed to the constructor is preserved within those priorities.\nfunc NewDecoder(decoders ...runtime.Decoder) runtime.Decoder {\n\treturn &decoder{\n\t\tdecoders: decoders,\n\t}\n}\n\ntype decoder struct {\n\tdecoders []runtime.Decoder\n}\n\nvar _ RecognizingDecoder = &decoder{}\n\nfunc (d *decoder) RecognizesData(data []byte) (bool, bool, error) {\n\tvar (\n\t\tlastErr    error\n\t\tanyUnknown bool\n\t)\n\tfor _, r := range d.decoders {\n\t\tswitch t := r.(type) {\n\t\tcase RecognizingDecoder:\n\t\t\tok, unknown, err := t.RecognizesData(data)\n\t\t\tif err != nil {\n\t\t\t\tlastErr = err\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tanyUnknown = anyUnknown || unknown\n\t\t\tif !ok {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn true, false, nil\n\t\t}\n\t}\n\treturn false, anyUnknown, lastErr\n}\n\nfunc (d *decoder) Decode(data []byte, gvk *schema.GroupVersionKind, into runtime.Object) (runtime.Object, *schema.GroupVersionKind, error) {\n\tvar (\n\t\tlastErr error\n\t\tskipped []runtime.Decoder\n\t)\n\n\t// try recognizers, record any decoders we need to give a chance later\n\tfor _, r := range d.decoders {\n\t\tswitch t := r.(type) {\n\t\tcase RecognizingDecoder:\n\t\t\tok, unknown, err := t.RecognizesData(data)\n\t\t\tif err != nil {\n\t\t\t\tlastErr = err\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif unknown {\n\t\t\t\tskipped = append(skipped, t)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif !ok {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn r.Decode(data, gvk, into)\n\t\tdefault:\n\t\t\tskipped = append(skipped, t)\n\t\t}\n\t}\n\n\t// try recognizers that returned unknown or didn't recognize their data\n\tfor _, r := range skipped {\n\t\tout, actual, err := r.Decode(data, gvk, into)\n\t\tif err != nil {\n\t\t\t// if we got an object back from the decoder, and the\n\t\t\t// error was a strict decoding error (e.g. unknown or\n\t\t\t// duplicate fields), we still consider the recognizer\n\t\t\t// to have understood the object\n\t\t\tif out == nil || !runtime.IsStrictDecodingError(err) {\n\t\t\t\tlastErr = err\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\t\treturn out, actual, err\n\t}\n\n\tif lastErr == nil {\n\t\tlastErr = fmt.Errorf(\"no serialization format matched the provided data\")\n\t}\n\treturn nil, nil, lastErr\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/serializer/streaming/streaming.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package streaming implements encoder and decoder for streams\n// of runtime.Objects over io.Writer/Readers.\npackage streaming\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// Encoder is a runtime.Encoder on a stream.\ntype Encoder interface {\n\t// Encode will write the provided object to the stream or return an error. It obeys the same\n\t// contract as runtime.VersionedEncoder.\n\tEncode(obj runtime.Object) error\n}\n\n// Decoder is a runtime.Decoder from a stream.\ntype Decoder interface {\n\t// Decode will return io.EOF when no more objects are available.\n\tDecode(defaults *schema.GroupVersionKind, into runtime.Object) (runtime.Object, *schema.GroupVersionKind, error)\n\t// Close closes the underlying stream.\n\tClose() error\n}\n\n// Serializer is a factory for creating encoders and decoders that work over streams.\ntype Serializer interface {\n\tNewEncoder(w io.Writer) Encoder\n\tNewDecoder(r io.ReadCloser) Decoder\n}\n\ntype decoder struct {\n\treader    io.ReadCloser\n\tdecoder   runtime.Decoder\n\tbuf       []byte\n\tmaxBytes  int\n\tresetRead bool\n}\n\n// NewDecoder creates a streaming decoder that reads object chunks from r and decodes them with d.\n// The reader is expected to return ErrShortRead if the provided buffer is not large enough to read\n// an entire object.\nfunc NewDecoder(r io.ReadCloser, d runtime.Decoder) Decoder {\n\treturn &decoder{\n\t\treader:   r,\n\t\tdecoder:  d,\n\t\tbuf:      make([]byte, 1024),\n\t\tmaxBytes: 16 * 1024 * 1024,\n\t}\n}\n\nvar ErrObjectTooLarge = fmt.Errorf(\"object to decode was longer than maximum allowed size\")\n\n// Decode reads the next object from the stream and decodes it.\nfunc (d *decoder) Decode(defaults *schema.GroupVersionKind, into runtime.Object) (runtime.Object, *schema.GroupVersionKind, error) {\n\tbase := 0\n\tfor {\n\t\tn, err := d.reader.Read(d.buf[base:])\n\t\tif err == io.ErrShortBuffer {\n\t\t\tif n == 0 {\n\t\t\t\treturn nil, nil, fmt.Errorf(\"got short buffer with n=0, base=%d, cap=%d\", base, cap(d.buf))\n\t\t\t}\n\t\t\tif d.resetRead {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\t// double the buffer size up to maxBytes\n\t\t\tif len(d.buf) < d.maxBytes {\n\t\t\t\tbase += n\n\t\t\t\td.buf = append(d.buf, make([]byte, len(d.buf))...)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\t// must read the rest of the frame (until we stop getting ErrShortBuffer)\n\t\t\td.resetRead = true\n\t\t\treturn nil, nil, ErrObjectTooLarge\n\t\t}\n\t\tif err != nil {\n\t\t\treturn nil, nil, err\n\t\t}\n\t\tif d.resetRead {\n\t\t\t// now that we have drained the large read, continue\n\t\t\td.resetRead = false\n\t\t\tcontinue\n\t\t}\n\t\tbase += n\n\t\tbreak\n\t}\n\treturn d.decoder.Decode(d.buf[:base], defaults, into)\n}\n\nfunc (d *decoder) Close() error {\n\treturn d.reader.Close()\n}\n\ntype encoder struct {\n\twriter  io.Writer\n\tencoder runtime.Encoder\n\tbuf     *bytes.Buffer\n}\n\n// NewEncoder returns a new streaming encoder.\nfunc NewEncoder(w io.Writer, e runtime.Encoder) Encoder {\n\treturn &encoder{\n\t\twriter:  w,\n\t\tencoder: e,\n\t\tbuf:     &bytes.Buffer{},\n\t}\n}\n\n// Encode writes the provided object to the nested writer.\nfunc (e *encoder) Encode(obj runtime.Object) error {\n\tif err := e.encoder.Encode(obj, e.buf); err != nil {\n\t\treturn err\n\t}\n\t_, err := e.writer.Write(e.buf.Bytes())\n\te.buf.Reset()\n\treturn err\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/serializer/versioning/versioning.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage versioning\n\nimport (\n\t\"encoding/json\"\n\t\"io\"\n\t\"reflect\"\n\t\"sync\"\n\n\t\"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/klog/v2\"\n)\n\n// NewDefaultingCodecForScheme is a convenience method for callers that are using a scheme.\nfunc NewDefaultingCodecForScheme(\n\t// TODO: I should be a scheme interface?\n\tscheme *runtime.Scheme,\n\tencoder runtime.Encoder,\n\tdecoder runtime.Decoder,\n\tencodeVersion runtime.GroupVersioner,\n\tdecodeVersion runtime.GroupVersioner,\n) runtime.Codec {\n\treturn NewCodec(encoder, decoder, runtime.UnsafeObjectConvertor(scheme), scheme, scheme, scheme, encodeVersion, decodeVersion, scheme.Name())\n}\n\n// NewCodec takes objects in their internal versions and converts them to external versions before\n// serializing them. It assumes the serializer provided to it only deals with external versions.\n// This class is also a serializer, but is generally used with a specific version.\nfunc NewCodec(\n\tencoder runtime.Encoder,\n\tdecoder runtime.Decoder,\n\tconvertor runtime.ObjectConvertor,\n\tcreater runtime.ObjectCreater,\n\ttyper runtime.ObjectTyper,\n\tdefaulter runtime.ObjectDefaulter,\n\tencodeVersion runtime.GroupVersioner,\n\tdecodeVersion runtime.GroupVersioner,\n\toriginalSchemeName string,\n) runtime.Codec {\n\tinternal := &codec{\n\t\tencoder:   encoder,\n\t\tdecoder:   decoder,\n\t\tconvertor: convertor,\n\t\tcreater:   creater,\n\t\ttyper:     typer,\n\t\tdefaulter: defaulter,\n\n\t\tencodeVersion: encodeVersion,\n\t\tdecodeVersion: decodeVersion,\n\n\t\tidentifier: identifier(encodeVersion, encoder),\n\n\t\toriginalSchemeName: originalSchemeName,\n\t}\n\treturn internal\n}\n\ntype codec struct {\n\tencoder   runtime.Encoder\n\tdecoder   runtime.Decoder\n\tconvertor runtime.ObjectConvertor\n\tcreater   runtime.ObjectCreater\n\ttyper     runtime.ObjectTyper\n\tdefaulter runtime.ObjectDefaulter\n\n\tencodeVersion runtime.GroupVersioner\n\tdecodeVersion runtime.GroupVersioner\n\n\tidentifier runtime.Identifier\n\n\t// originalSchemeName is optional, but when filled in it holds the name of the scheme from which this codec originates\n\toriginalSchemeName string\n}\n\nvar _ runtime.EncoderWithAllocator = &codec{}\n\nvar identifiersMap sync.Map\n\ntype codecIdentifier struct {\n\tEncodeGV string `json:\"encodeGV,omitempty\"`\n\tEncoder  string `json:\"encoder,omitempty\"`\n\tName     string `json:\"name,omitempty\"`\n}\n\n// identifier computes Identifier of Encoder based on codec parameters.\nfunc identifier(encodeGV runtime.GroupVersioner, encoder runtime.Encoder) runtime.Identifier {\n\tresult := codecIdentifier{\n\t\tName: \"versioning\",\n\t}\n\n\tif encodeGV != nil {\n\t\tresult.EncodeGV = encodeGV.Identifier()\n\t}\n\tif encoder != nil {\n\t\tresult.Encoder = string(encoder.Identifier())\n\t}\n\tif id, ok := identifiersMap.Load(result); ok {\n\t\treturn id.(runtime.Identifier)\n\t}\n\tidentifier, err := json.Marshal(result)\n\tif err != nil {\n\t\tklog.Fatalf(\"Failed marshaling identifier for codec: %v\", err)\n\t}\n\tidentifiersMap.Store(result, runtime.Identifier(identifier))\n\treturn runtime.Identifier(identifier)\n}\n\n// Decode attempts a decode of the object, then tries to convert it to the internal version. If into is provided and the decoding is\n// successful, the returned runtime.Object will be the value passed as into. Note that this may bypass conversion if you pass an\n// into that matches the serialized version.\nfunc (c *codec) Decode(data []byte, defaultGVK *schema.GroupVersionKind, into runtime.Object) (runtime.Object, *schema.GroupVersionKind, error) {\n\t// If the into object is unstructured and expresses an opinion about its group/version,\n\t// create a new instance of the type so we always exercise the conversion path (skips short-circuiting on `into == obj`)\n\tdecodeInto := into\n\tif into != nil {\n\t\tif _, ok := into.(runtime.Unstructured); ok && !into.GetObjectKind().GroupVersionKind().GroupVersion().Empty() {\n\t\t\tdecodeInto = reflect.New(reflect.TypeOf(into).Elem()).Interface().(runtime.Object)\n\t\t}\n\t}\n\n\tvar strictDecodingErrs []error\n\tobj, gvk, err := c.decoder.Decode(data, defaultGVK, decodeInto)\n\tif err != nil {\n\t\tif strictErr, ok := runtime.AsStrictDecodingError(err); obj != nil && ok {\n\t\t\t// save the strictDecodingError and let the caller decide what to do with it\n\t\t\tstrictDecodingErrs = append(strictDecodingErrs, strictErr.Errors()...)\n\t\t} else {\n\t\t\treturn nil, gvk, err\n\t\t}\n\t}\n\n\tif d, ok := obj.(runtime.NestedObjectDecoder); ok {\n\t\tif err := d.DecodeNestedObjects(runtime.WithoutVersionDecoder{Decoder: c.decoder}); err != nil {\n\t\t\tif strictErr, ok := runtime.AsStrictDecodingError(err); ok {\n\t\t\t\t// save the strictDecodingError let and the caller decide what to do with it\n\t\t\t\tstrictDecodingErrs = append(strictDecodingErrs, strictErr.Errors()...)\n\t\t\t} else {\n\t\t\t\treturn nil, gvk, err\n\n\t\t\t}\n\t\t}\n\t}\n\n\t// aggregate the strict decoding errors into one\n\tvar strictDecodingErr error\n\tif len(strictDecodingErrs) > 0 {\n\t\tstrictDecodingErr = runtime.NewStrictDecodingError(strictDecodingErrs)\n\t}\n\t// if we specify a target, use generic conversion.\n\tif into != nil {\n\t\t// perform defaulting if requested\n\t\tif c.defaulter != nil {\n\t\t\tc.defaulter.Default(obj)\n\t\t}\n\n\t\t// Short-circuit conversion if the into object is same object\n\t\tif into == obj {\n\t\t\treturn into, gvk, strictDecodingErr\n\t\t}\n\n\t\tif err := c.convertor.Convert(obj, into, c.decodeVersion); err != nil {\n\t\t\treturn nil, gvk, err\n\t\t}\n\n\t\treturn into, gvk, strictDecodingErr\n\t}\n\n\t// perform defaulting if requested\n\tif c.defaulter != nil {\n\t\tc.defaulter.Default(obj)\n\t}\n\n\tout, err := c.convertor.ConvertToVersion(obj, c.decodeVersion)\n\tif err != nil {\n\t\treturn nil, gvk, err\n\t}\n\treturn out, gvk, strictDecodingErr\n}\n\n// EncodeWithAllocator ensures the provided object is output in the appropriate group and version, invoking\n// conversion if necessary. Unversioned objects (according to the ObjectTyper) are output as is.\n// In addition, it allows for providing a memory allocator for efficient memory usage during object serialization.\nfunc (c *codec) EncodeWithAllocator(obj runtime.Object, w io.Writer, memAlloc runtime.MemoryAllocator) error {\n\treturn c.encode(obj, w, memAlloc)\n}\n\n// Encode ensures the provided object is output in the appropriate group and version, invoking\n// conversion if necessary. Unversioned objects (according to the ObjectTyper) are output as is.\nfunc (c *codec) Encode(obj runtime.Object, w io.Writer) error {\n\treturn c.encode(obj, w, nil)\n}\n\nfunc (c *codec) encode(obj runtime.Object, w io.Writer, memAlloc runtime.MemoryAllocator) error {\n\tif co, ok := obj.(runtime.CacheableObject); ok {\n\t\treturn co.CacheEncode(c.Identifier(), func(obj runtime.Object, w io.Writer) error { return c.doEncode(obj, w, memAlloc) }, w)\n\t}\n\treturn c.doEncode(obj, w, memAlloc)\n}\n\nfunc (c *codec) doEncode(obj runtime.Object, w io.Writer, memAlloc runtime.MemoryAllocator) error {\n\tencodeFn := c.encoder.Encode\n\tif memAlloc != nil {\n\t\tif encoder, supportsAllocator := c.encoder.(runtime.EncoderWithAllocator); supportsAllocator {\n\t\t\tencodeFn = func(obj runtime.Object, w io.Writer) error {\n\t\t\t\treturn encoder.EncodeWithAllocator(obj, w, memAlloc)\n\t\t\t}\n\t\t} else {\n\t\t\tklog.V(6).Infof(\"a memory allocator was provided but the encoder %s doesn't implement the runtime.EncoderWithAllocator, using regular encoder.Encode method\", c.encoder.Identifier())\n\t\t}\n\t}\n\tswitch obj := obj.(type) {\n\tcase *runtime.Unknown:\n\t\treturn encodeFn(obj, w)\n\tcase runtime.Unstructured:\n\t\t// An unstructured list can contain objects of multiple group version kinds. don't short-circuit just\n\t\t// because the top-level type matches our desired destination type. actually send the object to the converter\n\t\t// to give it a chance to convert the list items if needed.\n\t\tif _, ok := obj.(*unstructured.UnstructuredList); !ok {\n\t\t\t// avoid conversion roundtrip if GVK is the right one already or is empty (yes, this is a hack, but the old behaviour we rely on in kubectl)\n\t\t\tobjGVK := obj.GetObjectKind().GroupVersionKind()\n\t\t\tif len(objGVK.Version) == 0 {\n\t\t\t\treturn encodeFn(obj, w)\n\t\t\t}\n\t\t\ttargetGVK, ok := c.encodeVersion.KindForGroupVersionKinds([]schema.GroupVersionKind{objGVK})\n\t\t\tif !ok {\n\t\t\t\treturn runtime.NewNotRegisteredGVKErrForTarget(c.originalSchemeName, objGVK, c.encodeVersion)\n\t\t\t}\n\t\t\tif targetGVK == objGVK {\n\t\t\t\treturn encodeFn(obj, w)\n\t\t\t}\n\t\t}\n\t}\n\n\tgvks, isUnversioned, err := c.typer.ObjectKinds(obj)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tobjectKind := obj.GetObjectKind()\n\told := objectKind.GroupVersionKind()\n\t// restore the old GVK after encoding\n\tdefer objectKind.SetGroupVersionKind(old)\n\n\tif c.encodeVersion == nil || isUnversioned {\n\t\tif e, ok := obj.(runtime.NestedObjectEncoder); ok {\n\t\t\tif err := e.EncodeNestedObjects(runtime.WithVersionEncoder{Encoder: c.encoder, ObjectTyper: c.typer}); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tobjectKind.SetGroupVersionKind(gvks[0])\n\t\treturn encodeFn(obj, w)\n\t}\n\n\t// Perform a conversion if necessary\n\tout, err := c.convertor.ConvertToVersion(obj, c.encodeVersion)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif e, ok := out.(runtime.NestedObjectEncoder); ok {\n\t\tif err := e.EncodeNestedObjects(runtime.WithVersionEncoder{Version: c.encodeVersion, Encoder: c.encoder, ObjectTyper: c.typer}); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\t// Conversion is responsible for setting the proper group, version, and kind onto the outgoing object\n\treturn encodeFn(out, w)\n}\n\n// Identifier implements runtime.Encoder interface.\nfunc (c *codec) Identifier() runtime.Identifier {\n\treturn c.identifier\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/splice.go",
    "content": "/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage runtime\n\nimport (\n\t\"bytes\"\n\t\"io\"\n)\n\n// Splice is the interface that wraps the Splice method.\n//\n// Splice moves data from given slice without copying the underlying data for\n// efficiency purpose. Therefore, the caller should make sure the underlying\n// data is not changed later.\ntype Splice interface {\n\tSplice([]byte)\n\tio.Writer\n\tReset()\n\tBytes() []byte\n}\n\n// A spliceBuffer implements Splice and io.Writer interfaces.\ntype spliceBuffer struct {\n\traw []byte\n\tbuf *bytes.Buffer\n}\n\nfunc NewSpliceBuffer() Splice {\n\treturn &spliceBuffer{}\n}\n\n// Splice implements the Splice interface.\nfunc (sb *spliceBuffer) Splice(raw []byte) {\n\tsb.raw = raw\n}\n\n// Write implements the io.Writer interface.\nfunc (sb *spliceBuffer) Write(p []byte) (n int, err error) {\n\tif sb.buf == nil {\n\t\tsb.buf = &bytes.Buffer{}\n\t}\n\treturn sb.buf.Write(p)\n}\n\n// Reset resets the buffer to be empty.\nfunc (sb *spliceBuffer) Reset() {\n\tif sb.buf != nil {\n\t\tsb.buf.Reset()\n\t}\n\tsb.raw = nil\n}\n\n// Bytes returns the data held by the buffer.\nfunc (sb *spliceBuffer) Bytes() []byte {\n\tif sb.buf != nil && len(sb.buf.Bytes()) > 0 {\n\t\treturn sb.buf.Bytes()\n\t}\n\tif sb.raw != nil {\n\t\treturn sb.raw\n\t}\n\treturn []byte{}\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/swagger_doc_generator.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage runtime\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"go/ast\"\n\t\"go/doc\"\n\t\"go/parser\"\n\t\"go/token\"\n\t\"io\"\n\t\"reflect\"\n\t\"strings\"\n)\n\n// Pair of strings. We keed the name of fields and the doc\ntype Pair struct {\n\tName, Doc string\n}\n\n// KubeTypes is an array to represent all available types in a parsed file. [0] is for the type itself\ntype KubeTypes []Pair\n\nfunc astFrom(filePath string) *doc.Package {\n\tfset := token.NewFileSet()\n\tm := make(map[string]*ast.File)\n\n\tf, err := parser.ParseFile(fset, filePath, nil, parser.ParseComments)\n\tif err != nil {\n\t\tfmt.Println(err)\n\t\treturn nil\n\t}\n\n\tm[filePath] = f\n\tapkg, _ := ast.NewPackage(fset, m, nil, nil)\n\n\treturn doc.New(apkg, \"\", 0)\n}\n\nfunc fmtRawDoc(rawDoc string) string {\n\tvar buffer bytes.Buffer\n\tdelPrevChar := func() {\n\t\tif buffer.Len() > 0 {\n\t\t\tbuffer.Truncate(buffer.Len() - 1) // Delete the last \" \" or \"\\n\"\n\t\t}\n\t}\n\n\t// Ignore all lines after ---\n\trawDoc = strings.Split(rawDoc, \"---\")[0]\n\n\tfor _, line := range strings.Split(rawDoc, \"\\n\") {\n\t\tline = strings.TrimRight(line, \" \")\n\t\tleading := strings.TrimLeft(line, \" \")\n\t\tswitch {\n\t\tcase len(line) == 0: // Keep paragraphs\n\t\t\tdelPrevChar()\n\t\t\tbuffer.WriteString(\"\\n\\n\")\n\t\tcase strings.HasPrefix(leading, \"TODO\"): // Ignore one line TODOs\n\t\tcase strings.HasPrefix(leading, \"+\"): // Ignore instructions to the generators\n\t\tdefault:\n\t\t\tif strings.HasPrefix(line, \" \") || strings.HasPrefix(line, \"\\t\") {\n\t\t\t\tdelPrevChar()\n\t\t\t\tline = \"\\n\" + line + \"\\n\" // Replace it with newline. This is useful when we have a line with: \"Example:\\n\\tJSON-someting...\"\n\t\t\t} else {\n\t\t\t\tline += \" \"\n\t\t\t}\n\t\t\tbuffer.WriteString(line)\n\t\t}\n\t}\n\n\tpostDoc := strings.TrimRight(buffer.String(), \"\\n\")\n\tpostDoc = strings.Replace(postDoc, \"\\\\\\\"\", \"\\\"\", -1) // replace user's \\\" to \"\n\tpostDoc = strings.Replace(postDoc, \"\\\"\", \"\\\\\\\"\", -1) // Escape \"\n\tpostDoc = strings.Replace(postDoc, \"\\n\", \"\\\\n\", -1)\n\tpostDoc = strings.Replace(postDoc, \"\\t\", \"\\\\t\", -1)\n\n\treturn postDoc\n}\n\n// fieldName returns the name of the field as it should appear in JSON format\n// \"-\" indicates that this field is not part of the JSON representation\nfunc fieldName(field *ast.Field) string {\n\tjsonTag := \"\"\n\tif field.Tag != nil {\n\t\tjsonTag = reflect.StructTag(field.Tag.Value[1 : len(field.Tag.Value)-1]).Get(\"json\") // Delete first and last quotation\n\t\tif strings.Contains(jsonTag, \"inline\") {\n\t\t\treturn \"-\"\n\t\t}\n\t}\n\n\tjsonTag = strings.Split(jsonTag, \",\")[0] // This can return \"-\"\n\tif jsonTag == \"\" {\n\t\tif field.Names != nil {\n\t\t\treturn field.Names[0].Name\n\t\t}\n\t\treturn field.Type.(*ast.Ident).Name\n\t}\n\treturn jsonTag\n}\n\n// A buffer of lines that will be written.\ntype bufferedLine struct {\n\tline        string\n\tindentation int\n}\n\ntype buffer struct {\n\tlines []bufferedLine\n}\n\nfunc newBuffer() *buffer {\n\treturn &buffer{\n\t\tlines: make([]bufferedLine, 0),\n\t}\n}\n\nfunc (b *buffer) addLine(line string, indent int) {\n\tb.lines = append(b.lines, bufferedLine{line, indent})\n}\n\nfunc (b *buffer) flushLines(w io.Writer) error {\n\tfor _, line := range b.lines {\n\t\tindentation := strings.Repeat(\"\\t\", line.indentation)\n\t\tfullLine := fmt.Sprintf(\"%s%s\", indentation, line.line)\n\t\tif _, err := io.WriteString(w, fullLine); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc writeFuncHeader(b *buffer, structName string, indent int) {\n\ts := fmt.Sprintf(\"var map_%s = map[string]string {\\n\", structName)\n\tb.addLine(s, indent)\n}\n\nfunc writeFuncFooter(b *buffer, structName string, indent int) {\n\tb.addLine(\"}\\n\", indent) // Closes the map definition\n\n\ts := fmt.Sprintf(\"func (%s) SwaggerDoc() map[string]string {\\n\", structName)\n\tb.addLine(s, indent)\n\ts = fmt.Sprintf(\"return map_%s\\n\", structName)\n\tb.addLine(s, indent+1)\n\tb.addLine(\"}\\n\", indent) // Closes the function definition\n}\n\nfunc writeMapBody(b *buffer, kubeType []Pair, indent int) {\n\tformat := \"\\\"%s\\\": \\\"%s\\\",\\n\"\n\tfor _, pair := range kubeType {\n\t\ts := fmt.Sprintf(format, pair.Name, pair.Doc)\n\t\tb.addLine(s, indent+2)\n\t}\n}\n\n// ParseDocumentationFrom gets all types' documentation and returns them as an\n// array. Each type is again represented as an array (we have to use arrays as we\n// need to be sure for the order of the fields). This function returns fields and\n// struct definitions that have no documentation as {name, \"\"}.\nfunc ParseDocumentationFrom(src string) []KubeTypes {\n\tvar docForTypes []KubeTypes\n\n\tpkg := astFrom(src)\n\n\tfor _, kubType := range pkg.Types {\n\t\tif structType, ok := kubType.Decl.Specs[0].(*ast.TypeSpec).Type.(*ast.StructType); ok {\n\t\t\tvar ks KubeTypes\n\t\t\tks = append(ks, Pair{kubType.Name, fmtRawDoc(kubType.Doc)})\n\n\t\t\tfor _, field := range structType.Fields.List {\n\t\t\t\tif n := fieldName(field); n != \"-\" {\n\t\t\t\t\tfieldDoc := fmtRawDoc(field.Doc.Text())\n\t\t\t\t\tks = append(ks, Pair{n, fieldDoc})\n\t\t\t\t}\n\t\t\t}\n\t\t\tdocForTypes = append(docForTypes, ks)\n\t\t}\n\t}\n\n\treturn docForTypes\n}\n\n// WriteSwaggerDocFunc writes a declaration of a function as a string. This function is used in\n// Swagger as a documentation source for structs and theirs fields\nfunc WriteSwaggerDocFunc(kubeTypes []KubeTypes, w io.Writer) error {\n\tfor _, kubeType := range kubeTypes {\n\t\tstructName := kubeType[0].Name\n\t\tkubeType[0].Name = \"\"\n\n\t\t// Ignore empty documentation\n\t\tdocfulTypes := make(KubeTypes, 0, len(kubeType))\n\t\tfor _, pair := range kubeType {\n\t\t\tif pair.Doc != \"\" {\n\t\t\t\tdocfulTypes = append(docfulTypes, pair)\n\t\t\t}\n\t\t}\n\n\t\tif len(docfulTypes) == 0 {\n\t\t\tcontinue // If no fields and the struct have documentation, skip the function definition\n\t\t}\n\n\t\tindent := 0\n\t\tbuffer := newBuffer()\n\n\t\twriteFuncHeader(buffer, structName, indent)\n\t\twriteMapBody(buffer, docfulTypes, indent)\n\t\twriteFuncFooter(buffer, structName, indent)\n\t\tbuffer.addLine(\"\\n\", 0)\n\n\t\tif err := buffer.flushLines(w); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// VerifySwaggerDocsExist writes in a io.Writer a list of structs and fields that\n// are missing of documentation.\nfunc VerifySwaggerDocsExist(kubeTypes []KubeTypes, w io.Writer) (int, error) {\n\tmissingDocs := 0\n\tbuffer := newBuffer()\n\n\tfor _, kubeType := range kubeTypes {\n\t\tstructName := kubeType[0].Name\n\t\tif kubeType[0].Doc == \"\" {\n\t\t\tformat := \"Missing documentation for the struct itself: %s\\n\"\n\t\t\ts := fmt.Sprintf(format, structName)\n\t\t\tbuffer.addLine(s, 0)\n\t\t\tmissingDocs++\n\t\t}\n\t\tkubeType = kubeType[1:] // Skip struct definition\n\n\t\tfor _, pair := range kubeType { // Iterate only the fields\n\t\t\tif pair.Doc == \"\" {\n\t\t\t\tformat := \"In struct: %s, field documentation is missing: %s\\n\"\n\t\t\t\ts := fmt.Sprintf(format, structName, pair.Name)\n\t\t\t\tbuffer.addLine(s, 0)\n\t\t\t\tmissingDocs++\n\t\t\t}\n\t\t}\n\t}\n\n\tif err := buffer.flushLines(w); err != nil {\n\t\treturn -1, err\n\t}\n\treturn missingDocs, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/types.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage runtime\n\n// Note that the types provided in this file are not versioned and are intended to be\n// safe to use from within all versions of every API object.\n\n// TypeMeta is shared by all top level objects. The proper way to use it is to inline it in your type,\n// like this:\n//\n//\ttype MyAwesomeAPIObject struct {\n//\t     runtime.TypeMeta    `json:\",inline\"`\n//\t     ... // other fields\n//\t}\n//\n// func (obj *MyAwesomeAPIObject) SetGroupVersionKind(gvk *metav1.GroupVersionKind) { metav1.UpdateTypeMeta(obj,gvk) }; GroupVersionKind() *GroupVersionKind\n//\n// TypeMeta is provided here for convenience. You may use it directly from this package or define\n// your own with the same fields.\n//\n// +k8s:deepcopy-gen=false\n// +protobuf=true\n// +k8s:openapi-gen=true\ntype TypeMeta struct {\n\t// +optional\n\tAPIVersion string `json:\"apiVersion,omitempty\" yaml:\"apiVersion,omitempty\" protobuf:\"bytes,1,opt,name=apiVersion\"`\n\t// +optional\n\tKind string `json:\"kind,omitempty\" yaml:\"kind,omitempty\" protobuf:\"bytes,2,opt,name=kind\"`\n}\n\nconst (\n\tContentTypeJSON         string = \"application/json\"\n\tContentTypeYAML         string = \"application/yaml\"\n\tContentTypeProtobuf     string = \"application/vnd.kubernetes.protobuf\"\n\tContentTypeCBOR         string = \"application/cbor\"     // RFC 8949\n\tContentTypeCBORSequence string = \"application/cbor-seq\" // RFC 8742\n)\n\n// RawExtension is used to hold extensions in external versions.\n//\n// To use this, make a field which has RawExtension as its type in your external, versioned\n// struct, and Object in your internal struct. You also need to register your\n// various plugin types.\n//\n// // Internal package:\n//\n//\ttype MyAPIObject struct {\n//\t\truntime.TypeMeta `json:\",inline\"`\n//\t\tMyPlugin runtime.Object `json:\"myPlugin\"`\n//\t}\n//\n//\ttype PluginA struct {\n//\t\tAOption string `json:\"aOption\"`\n//\t}\n//\n// // External package:\n//\n//\ttype MyAPIObject struct {\n//\t\truntime.TypeMeta `json:\",inline\"`\n//\t\tMyPlugin runtime.RawExtension `json:\"myPlugin\"`\n//\t}\n//\n//\ttype PluginA struct {\n//\t\tAOption string `json:\"aOption\"`\n//\t}\n//\n// // On the wire, the JSON will look something like this:\n//\n//\t{\n//\t\t\"kind\":\"MyAPIObject\",\n//\t\t\"apiVersion\":\"v1\",\n//\t\t\"myPlugin\": {\n//\t\t\t\"kind\":\"PluginA\",\n//\t\t\t\"aOption\":\"foo\",\n//\t\t},\n//\t}\n//\n// So what happens? Decode first uses json or yaml to unmarshal the serialized data into\n// your external MyAPIObject. That causes the raw JSON to be stored, but not unpacked.\n// The next step is to copy (using pkg/conversion) into the internal struct. The runtime\n// package's DefaultScheme has conversion functions installed which will unpack the\n// JSON stored in RawExtension, turning it into the correct object type, and storing it\n// in the Object. (TODO: In the case where the object is of an unknown type, a\n// runtime.Unknown object will be created and stored.)\n//\n// +k8s:deepcopy-gen=true\n// +protobuf=true\n// +k8s:openapi-gen=true\ntype RawExtension struct {\n\t// Raw is the underlying serialization of this object.\n\t//\n\t// TODO: Determine how to detect ContentType and ContentEncoding of 'Raw' data.\n\tRaw []byte `json:\"-\" protobuf:\"bytes,1,opt,name=raw\"`\n\t// Object can hold a representation of this extension - useful for working with versioned\n\t// structs.\n\tObject Object `json:\"-\"`\n}\n\n// Unknown allows api objects with unknown types to be passed-through. This can be used\n// to deal with the API objects from a plug-in. Unknown objects still have functioning\n// TypeMeta features-- kind, version, etc.\n// TODO: Make this object have easy access to field based accessors and settors for\n// metadata and field mutatation.\n//\n// +k8s:deepcopy-gen=true\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n// +protobuf=true\n// +k8s:openapi-gen=true\ntype Unknown struct {\n\tTypeMeta `json:\",inline\" protobuf:\"bytes,1,opt,name=typeMeta\"`\n\t// Raw will hold the complete serialized object which couldn't be matched\n\t// with a registered type. Most likely, nothing should be done with this\n\t// except for passing it through the system.\n\tRaw []byte `json:\"-\" protobuf:\"bytes,2,opt,name=raw\"`\n\t// ContentEncoding is encoding used to encode 'Raw' data.\n\t// Unspecified means no encoding.\n\tContentEncoding string `protobuf:\"bytes,3,opt,name=contentEncoding\"`\n\t// ContentType  is serialization method used to serialize 'Raw'.\n\t// Unspecified means ContentTypeJSON.\n\tContentType string `protobuf:\"bytes,4,opt,name=contentType\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/types_proto.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage runtime\n\nimport (\n\t\"fmt\"\n)\n\ntype ProtobufMarshaller interface {\n\tMarshalTo(data []byte) (int, error)\n}\n\ntype ProtobufReverseMarshaller interface {\n\tMarshalToSizedBuffer(data []byte) (int, error)\n}\n\n// NestedMarshalTo allows a caller to avoid extra allocations during serialization of an Unknown\n// that will contain an object that implements ProtobufMarshaller or ProtobufReverseMarshaller.\nfunc (m *Unknown) NestedMarshalTo(data []byte, b ProtobufMarshaller, size uint64) (int, error) {\n\t// Calculate the full size of the message.\n\tmsgSize := m.Size()\n\tif b != nil {\n\t\tmsgSize += int(size) + sovGenerated(size) + 1\n\t}\n\n\t// Reverse marshal the fields of m.\n\ti := msgSize\n\ti -= len(m.ContentType)\n\tcopy(data[i:], m.ContentType)\n\ti = encodeVarintGenerated(data, i, uint64(len(m.ContentType)))\n\ti--\n\tdata[i] = 0x22\n\ti -= len(m.ContentEncoding)\n\tcopy(data[i:], m.ContentEncoding)\n\ti = encodeVarintGenerated(data, i, uint64(len(m.ContentEncoding)))\n\ti--\n\tdata[i] = 0x1a\n\tif b != nil {\n\t\tif r, ok := b.(ProtobufReverseMarshaller); ok {\n\t\t\tn1, err := r.MarshalToSizedBuffer(data[:i])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\ti -= int(size)\n\t\t\tif uint64(n1) != size {\n\t\t\t\t// programmer error: the Size() method for protobuf does not match the results of LashramOt, which means the proto\n\t\t\t\t// struct returned would be wrong.\n\t\t\t\treturn 0, fmt.Errorf(\"the Size() value of %T was %d, but NestedMarshalTo wrote %d bytes to data\", b, size, n1)\n\t\t\t}\n\t\t} else {\n\t\t\ti -= int(size)\n\t\t\tn1, err := b.MarshalTo(data[i:])\n\t\t\tif err != nil {\n\t\t\t\treturn 0, err\n\t\t\t}\n\t\t\tif uint64(n1) != size {\n\t\t\t\t// programmer error: the Size() method for protobuf does not match the results of MarshalTo, which means the proto\n\t\t\t\t// struct returned would be wrong.\n\t\t\t\treturn 0, fmt.Errorf(\"the Size() value of %T was %d, but NestedMarshalTo wrote %d bytes to data\", b, size, n1)\n\t\t\t}\n\t\t}\n\t\ti = encodeVarintGenerated(data, i, size)\n\t\ti--\n\t\tdata[i] = 0x12\n\t}\n\tn2, err := m.TypeMeta.MarshalToSizedBuffer(data[:i])\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\ti -= n2\n\ti = encodeVarintGenerated(data, i, uint64(n2))\n\ti--\n\tdata[i] = 0xa\n\treturn msgSize - i, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/runtime/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage runtime\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *RawExtension) DeepCopyInto(out *RawExtension) {\n\t*out = *in\n\tif in.Raw != nil {\n\t\tin, out := &in.Raw, &out.Raw\n\t\t*out = make([]byte, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Object != nil {\n\t\tout.Object = in.Object.DeepCopyObject()\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RawExtension.\nfunc (in *RawExtension) DeepCopy() *RawExtension {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(RawExtension)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Unknown) DeepCopyInto(out *Unknown) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tif in.Raw != nil {\n\t\tin, out := &in.Raw, &out.Raw\n\t\t*out = make([]byte, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Unknown.\nfunc (in *Unknown) DeepCopy() *Unknown {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Unknown)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new Object.\nfunc (in *Unknown) DeepCopyObject() Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/selection/operator.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage selection\n\n// Operator represents a key/field's relationship to value(s).\n// See labels.Requirement and fields.Requirement for more details.\ntype Operator string\n\nconst (\n\tDoesNotExist Operator = \"!\"\n\tEquals       Operator = \"=\"\n\tDoubleEquals Operator = \"==\"\n\tIn           Operator = \"in\"\n\tNotEquals    Operator = \"!=\"\n\tNotIn        Operator = \"notin\"\n\tExists       Operator = \"exists\"\n\tGreaterThan  Operator = \"gt\"\n\tLessThan     Operator = \"lt\"\n)\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/types/doc.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package types implements various generic types used throughout kubernetes.\npackage types // import \"k8s.io/apimachinery/pkg/types\"\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/types/namespacedname.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage types\n\n// NamespacedName comprises a resource name, with a mandatory namespace,\n// rendered as \"<namespace>/<name>\".  Being a type captures intent and\n// helps make sure that UIDs, namespaced names and non-namespaced names\n// do not get conflated in code.  For most use cases, namespace and name\n// will already have been format validated at the API entry point, so we\n// don't do that here.  Where that's not the case (e.g. in testing),\n// consider using NamespacedNameOrDie() in testing.go in this package.\n\ntype NamespacedName struct {\n\tNamespace string\n\tName      string\n}\n\nconst (\n\tSeparator = '/'\n)\n\n// String returns the general purpose string representation\nfunc (n NamespacedName) String() string {\n\treturn n.Namespace + string(Separator) + n.Name\n}\n\n// MarshalLog emits a struct containing required key/value pair\nfunc (n NamespacedName) MarshalLog() interface{} {\n\treturn struct {\n\t\tName      string `json:\"name\"`\n\t\tNamespace string `json:\"namespace,omitempty\"`\n\t}{\n\t\tName:      n.Name,\n\t\tNamespace: n.Namespace,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/types/nodename.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage types\n\n// NodeName is a type that holds a api.Node's Name identifier.\n// Being a type captures intent and helps make sure that the node name\n// is not confused with similar concepts (the hostname, the cloud provider id,\n// the cloud provider name etc)\n//\n// To clarify the various types:\n//\n//   - Node.Name is the Name field of the Node in the API.  This should be stored in a NodeName.\n//     Unfortunately, because Name is part of ObjectMeta, we can't store it as a NodeName at the API level.\n//\n//   - Hostname is the hostname of the local machine (from uname -n).\n//     However, some components allow the user to pass in a --hostname-override flag,\n//     which will override this in most places. In the absence of anything more meaningful,\n//     kubelet will use Hostname as the Node.Name when it creates the Node.\n//\n// * The cloudproviders have the own names: GCE has InstanceName, AWS has InstanceId.\n//\n//\tFor GCE, InstanceName is the Name of an Instance object in the GCE API.  On GCE, Instance.Name becomes the\n//\tHostname, and thus it makes sense also to use it as the Node.Name.  But that is GCE specific, and it is up\n//\tto the cloudprovider how to do this mapping.\n//\n//\tFor AWS, the InstanceID is not yet suitable for use as a Node.Name, so we actually use the\n//\tPrivateDnsName for the Node.Name.  And this is _not_ always the same as the hostname: if\n//\twe are using a custom DHCP domain it won't be.\ntype NodeName string\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/types/patch.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage types\n\n// Similarly to above, these are constants to support HTTP PATCH utilized by\n// both the client and server that didn't make sense for a whole package to be\n// dedicated to.\ntype PatchType string\n\nconst (\n\tJSONPatchType           PatchType = \"application/json-patch+json\"\n\tMergePatchType          PatchType = \"application/merge-patch+json\"\n\tStrategicMergePatchType PatchType = \"application/strategic-merge-patch+json\"\n\tApplyPatchType          PatchType = ApplyYAMLPatchType\n\tApplyYAMLPatchType      PatchType = \"application/apply-patch+yaml\"\n\tApplyCBORPatchType      PatchType = \"application/apply-patch+cbor\"\n)\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/types/uid.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage types\n\n// UID is a type that holds unique ID values, including UUIDs.  Because we\n// don't ONLY use UUIDs, this is an alias to string.  Being a type captures\n// intent and helps make sure that UIDs and names do not get conflated.\ntype UID string\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/cache/expiring.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage cache\n\nimport (\n\t\"container/heap\"\n\t\"sync\"\n\t\"time\"\n\n\t\"k8s.io/utils/clock\"\n)\n\n// NewExpiring returns an initialized expiring cache.\nfunc NewExpiring() *Expiring {\n\treturn NewExpiringWithClock(clock.RealClock{})\n}\n\n// NewExpiringWithClock is like NewExpiring but allows passing in a custom\n// clock for testing.\nfunc NewExpiringWithClock(clock clock.Clock) *Expiring {\n\treturn &Expiring{\n\t\tclock: clock,\n\t\tcache: make(map[interface{}]entry),\n\t}\n}\n\n// Expiring is a map whose entries expire after a per-entry timeout.\ntype Expiring struct {\n\t// AllowExpiredGet causes the expiration check to be skipped on Get.\n\t// It should only be used when a key always corresponds to the exact same value.\n\t// Thus when this field is true, expired keys are considered valid\n\t// until the next call to Set (which causes the GC to run).\n\t// It may not be changed concurrently with calls to Get.\n\tAllowExpiredGet bool\n\n\tclock clock.Clock\n\n\t// mu protects the below fields\n\tmu sync.RWMutex\n\t// cache is the internal map that backs the cache.\n\tcache map[interface{}]entry\n\t// generation is used as a cheap resource version for cache entries. Cleanups\n\t// are scheduled with a key and generation. When the cleanup runs, it first\n\t// compares its generation with the current generation of the entry. It\n\t// deletes the entry iff the generation matches. This prevents cleanups\n\t// scheduled for earlier versions of an entry from deleting later versions of\n\t// an entry when Set() is called multiple times with the same key.\n\t//\n\t// The integer value of the generation of an entry is meaningless.\n\tgeneration uint64\n\n\theap expiringHeap\n}\n\ntype entry struct {\n\tval        interface{}\n\texpiry     time.Time\n\tgeneration uint64\n}\n\n// Get looks up an entry in the cache.\nfunc (c *Expiring) Get(key interface{}) (val interface{}, ok bool) {\n\tc.mu.RLock()\n\tdefer c.mu.RUnlock()\n\te, ok := c.cache[key]\n\tif !ok {\n\t\treturn nil, false\n\t}\n\tif !c.AllowExpiredGet && !c.clock.Now().Before(e.expiry) {\n\t\treturn nil, false\n\t}\n\treturn e.val, true\n}\n\n// Set sets a key/value/expiry entry in the map, overwriting any previous entry\n// with the same key. The entry expires at the given expiry time, but its TTL\n// may be lengthened or shortened by additional calls to Set(). Garbage\n// collection of expired entries occurs during calls to Set(), however calls to\n// Get() will not return expired entries that have not yet been garbage\n// collected.\nfunc (c *Expiring) Set(key interface{}, val interface{}, ttl time.Duration) {\n\tnow := c.clock.Now()\n\texpiry := now.Add(ttl)\n\n\tc.mu.Lock()\n\tdefer c.mu.Unlock()\n\n\tc.generation++\n\n\tc.cache[key] = entry{\n\t\tval:        val,\n\t\texpiry:     expiry,\n\t\tgeneration: c.generation,\n\t}\n\n\t// Run GC inline before pushing the new entry.\n\tc.gc(now)\n\n\theap.Push(&c.heap, &expiringHeapEntry{\n\t\tkey:        key,\n\t\texpiry:     expiry,\n\t\tgeneration: c.generation,\n\t})\n}\n\n// Delete deletes an entry in the map.\nfunc (c *Expiring) Delete(key interface{}) {\n\tc.mu.Lock()\n\tdefer c.mu.Unlock()\n\tc.del(key, 0)\n}\n\n// del deletes the entry for the given key. The generation argument is the\n// generation of the entry that should be deleted. If the generation has been\n// changed (e.g. if a set has occurred on an existing element but the old\n// cleanup still runs), this is a noop. If the generation argument is 0, the\n// entry's generation is ignored and the entry is deleted.\n//\n// del must be called under the write lock.\nfunc (c *Expiring) del(key interface{}, generation uint64) {\n\te, ok := c.cache[key]\n\tif !ok {\n\t\treturn\n\t}\n\tif generation != 0 && generation != e.generation {\n\t\treturn\n\t}\n\tdelete(c.cache, key)\n}\n\n// Len returns the number of items in the cache.\nfunc (c *Expiring) Len() int {\n\tc.mu.RLock()\n\tdefer c.mu.RUnlock()\n\treturn len(c.cache)\n}\n\nfunc (c *Expiring) gc(now time.Time) {\n\tfor {\n\t\t// Return from gc if the heap is empty or the next element is not yet\n\t\t// expired.\n\t\t//\n\t\t// heap[0] is a peek at the next element in the heap, which is not obvious\n\t\t// from looking at the (*expiringHeap).Pop() implementation below.\n\t\t// heap.Pop() swaps the first entry with the last entry of the heap, then\n\t\t// calls (*expiringHeap).Pop() which returns the last element.\n\t\tif len(c.heap) == 0 || now.Before(c.heap[0].expiry) {\n\t\t\treturn\n\t\t}\n\t\tcleanup := heap.Pop(&c.heap).(*expiringHeapEntry)\n\t\tc.del(cleanup.key, cleanup.generation)\n\t}\n}\n\ntype expiringHeapEntry struct {\n\tkey        interface{}\n\texpiry     time.Time\n\tgeneration uint64\n}\n\n// expiringHeap is a min-heap ordered by expiration time of its entries. The\n// expiring cache uses this as a priority queue to efficiently organize entries\n// which will be garbage collected once they expire.\ntype expiringHeap []*expiringHeapEntry\n\nvar _ heap.Interface = &expiringHeap{}\n\nfunc (cq expiringHeap) Len() int {\n\treturn len(cq)\n}\n\nfunc (cq expiringHeap) Less(i, j int) bool {\n\treturn cq[i].expiry.Before(cq[j].expiry)\n}\n\nfunc (cq expiringHeap) Swap(i, j int) {\n\tcq[i], cq[j] = cq[j], cq[i]\n}\n\nfunc (cq *expiringHeap) Push(c interface{}) {\n\t*cq = append(*cq, c.(*expiringHeapEntry))\n}\n\nfunc (cq *expiringHeap) Pop() interface{} {\n\tc := (*cq)[cq.Len()-1]\n\t*cq = (*cq)[:cq.Len()-1]\n\treturn c\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/cache/lruexpirecache.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage cache\n\nimport (\n\t\"container/list\"\n\t\"sync\"\n\t\"time\"\n)\n\n// Clock defines an interface for obtaining the current time\ntype Clock interface {\n\tNow() time.Time\n}\n\n// realClock implements the Clock interface by calling time.Now()\ntype realClock struct{}\n\nfunc (realClock) Now() time.Time { return time.Now() }\n\n// LRUExpireCache is a cache that ensures the mostly recently accessed keys are returned with\n// a ttl beyond which keys are forcibly expired.\ntype LRUExpireCache struct {\n\t// clock is used to obtain the current time\n\tclock Clock\n\n\tlock sync.Mutex\n\n\tmaxSize      int\n\tevictionList list.List\n\tentries      map[interface{}]*list.Element\n}\n\n// NewLRUExpireCache creates an expiring cache with the given size\nfunc NewLRUExpireCache(maxSize int) *LRUExpireCache {\n\treturn NewLRUExpireCacheWithClock(maxSize, realClock{})\n}\n\n// NewLRUExpireCacheWithClock creates an expiring cache with the given size, using the specified clock to obtain the current time.\nfunc NewLRUExpireCacheWithClock(maxSize int, clock Clock) *LRUExpireCache {\n\tif maxSize <= 0 {\n\t\tpanic(\"maxSize must be > 0\")\n\t}\n\n\treturn &LRUExpireCache{\n\t\tclock:   clock,\n\t\tmaxSize: maxSize,\n\t\tentries: map[interface{}]*list.Element{},\n\t}\n}\n\ntype cacheEntry struct {\n\tkey        interface{}\n\tvalue      interface{}\n\texpireTime time.Time\n}\n\n// Add adds the value to the cache at key with the specified maximum duration.\nfunc (c *LRUExpireCache) Add(key interface{}, value interface{}, ttl time.Duration) {\n\tc.lock.Lock()\n\tdefer c.lock.Unlock()\n\n\t// Key already exists\n\toldElement, ok := c.entries[key]\n\tif ok {\n\t\tc.evictionList.MoveToFront(oldElement)\n\t\toldElement.Value.(*cacheEntry).value = value\n\t\toldElement.Value.(*cacheEntry).expireTime = c.clock.Now().Add(ttl)\n\t\treturn\n\t}\n\n\t// Make space if necessary\n\tif c.evictionList.Len() >= c.maxSize {\n\t\ttoEvict := c.evictionList.Back()\n\t\tc.evictionList.Remove(toEvict)\n\t\tdelete(c.entries, toEvict.Value.(*cacheEntry).key)\n\t}\n\n\t// Add new entry\n\tentry := &cacheEntry{\n\t\tkey:        key,\n\t\tvalue:      value,\n\t\texpireTime: c.clock.Now().Add(ttl),\n\t}\n\telement := c.evictionList.PushFront(entry)\n\tc.entries[key] = element\n}\n\n// Get returns the value at the specified key from the cache if it exists and is not\n// expired, or returns false.\nfunc (c *LRUExpireCache) Get(key interface{}) (interface{}, bool) {\n\tc.lock.Lock()\n\tdefer c.lock.Unlock()\n\n\telement, ok := c.entries[key]\n\tif !ok {\n\t\treturn nil, false\n\t}\n\n\tif c.clock.Now().After(element.Value.(*cacheEntry).expireTime) {\n\t\tc.evictionList.Remove(element)\n\t\tdelete(c.entries, key)\n\t\treturn nil, false\n\t}\n\n\tc.evictionList.MoveToFront(element)\n\n\treturn element.Value.(*cacheEntry).value, true\n}\n\n// Remove removes the specified key from the cache if it exists\nfunc (c *LRUExpireCache) Remove(key interface{}) {\n\tc.lock.Lock()\n\tdefer c.lock.Unlock()\n\n\telement, ok := c.entries[key]\n\tif !ok {\n\t\treturn\n\t}\n\n\tc.evictionList.Remove(element)\n\tdelete(c.entries, key)\n}\n\n// RemoveAll removes all keys that match predicate.\nfunc (c *LRUExpireCache) RemoveAll(predicate func(key any) bool) {\n\tc.lock.Lock()\n\tdefer c.lock.Unlock()\n\n\tfor key, element := range c.entries {\n\t\tif predicate(key) {\n\t\t\tc.evictionList.Remove(element)\n\t\t\tdelete(c.entries, key)\n\t\t}\n\t}\n}\n\n// Keys returns all unexpired keys in the cache.\n//\n// Keep in mind that subsequent calls to Get() for any of the returned keys\n// might return \"not found\".\n//\n// Keys are returned ordered from least recently used to most recently used.\nfunc (c *LRUExpireCache) Keys() []interface{} {\n\tc.lock.Lock()\n\tdefer c.lock.Unlock()\n\n\tnow := c.clock.Now()\n\n\tval := make([]interface{}, 0, c.evictionList.Len())\n\tfor element := c.evictionList.Back(); element != nil; element = element.Prev() {\n\t\t// Only return unexpired keys\n\t\tif !now.After(element.Value.(*cacheEntry).expireTime) {\n\t\t\tval = append(val, element.Value.(*cacheEntry).key)\n\t\t}\n\t}\n\n\treturn val\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/diff/diff.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage diff\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n\t\"text/tabwriter\"\n\n\t\"github.com/google/go-cmp/cmp\"\n\t\"k8s.io/apimachinery/pkg/util/dump\"\n)\n\nfunc legacyDiff(a, b interface{}) string {\n\treturn cmp.Diff(a, b)\n}\n\n// StringDiff diffs a and b and returns a human readable diff.\n// DEPRECATED: use github.com/google/go-cmp/cmp.Diff\nfunc StringDiff(a, b string) string {\n\treturn legacyDiff(a, b)\n}\n\n// ObjectDiff prints the diff of two go objects and fails if the objects\n// contain unhandled unexported fields.\n// DEPRECATED: use github.com/google/go-cmp/cmp.Diff\nfunc ObjectDiff(a, b interface{}) string {\n\treturn legacyDiff(a, b)\n}\n\n// ObjectGoPrintDiff prints the diff of two go objects and fails if the objects\n// contain unhandled unexported fields.\n// DEPRECATED: use github.com/google/go-cmp/cmp.Diff\nfunc ObjectGoPrintDiff(a, b interface{}) string {\n\treturn legacyDiff(a, b)\n}\n\n// ObjectReflectDiff prints the diff of two go objects and fails if the objects\n// contain unhandled unexported fields.\n// DEPRECATED: use github.com/google/go-cmp/cmp.Diff\nfunc ObjectReflectDiff(a, b interface{}) string {\n\treturn legacyDiff(a, b)\n}\n\n// ObjectGoPrintSideBySide prints a and b as textual dumps side by side,\n// enabling easy visual scanning for mismatches.\nfunc ObjectGoPrintSideBySide(a, b interface{}) string {\n\tsA := dump.Pretty(a)\n\tsB := dump.Pretty(b)\n\n\tlinesA := strings.Split(sA, \"\\n\")\n\tlinesB := strings.Split(sB, \"\\n\")\n\twidth := 0\n\tfor _, s := range linesA {\n\t\tl := len(s)\n\t\tif l > width {\n\t\t\twidth = l\n\t\t}\n\t}\n\tfor _, s := range linesB {\n\t\tl := len(s)\n\t\tif l > width {\n\t\t\twidth = l\n\t\t}\n\t}\n\tbuf := &bytes.Buffer{}\n\tw := tabwriter.NewWriter(buf, width, 0, 1, ' ', 0)\n\tmax := len(linesA)\n\tif len(linesB) > max {\n\t\tmax = len(linesB)\n\t}\n\tfor i := 0; i < max; i++ {\n\t\tvar a, b string\n\t\tif i < len(linesA) {\n\t\t\ta = linesA[i]\n\t\t}\n\t\tif i < len(linesB) {\n\t\t\tb = linesB[i]\n\t\t}\n\t\tfmt.Fprintf(w, \"%s\\t%s\\n\", a, b)\n\t}\n\tw.Flush()\n\treturn buf.String()\n}\n\n// IgnoreUnset is an option that ignores fields that are unset on the right\n// hand side of a comparison. This is useful in testing to assert that an\n// object is a derivative.\nfunc IgnoreUnset() cmp.Option {\n\treturn cmp.Options{\n\t\t// ignore unset fields in v2\n\t\tcmp.FilterPath(func(path cmp.Path) bool {\n\t\t\t_, v2 := path.Last().Values()\n\t\t\tswitch v2.Kind() {\n\t\t\tcase reflect.Slice, reflect.Map:\n\t\t\t\tif v2.IsNil() || v2.Len() == 0 {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\tcase reflect.String:\n\t\t\t\tif v2.Len() == 0 {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\tcase reflect.Interface, reflect.Pointer:\n\t\t\t\tif v2.IsNil() {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false\n\t\t}, cmp.Ignore()),\n\t\t// ignore map entries that aren't set in v2\n\t\tcmp.FilterPath(func(path cmp.Path) bool {\n\t\t\tswitch i := path.Last().(type) {\n\t\t\tcase cmp.MapIndex:\n\t\t\t\tif _, v2 := i.Values(); !v2.IsValid() {\n\t\t\t\t\tfmt.Println(\"E\")\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false\n\t\t}, cmp.Ignore()),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/dump/dump.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage dump\n\nimport (\n\t\"github.com/davecgh/go-spew/spew\"\n)\n\nvar prettyPrintConfig = &spew.ConfigState{\n\tIndent:                  \"  \",\n\tDisableMethods:          true,\n\tDisablePointerAddresses: true,\n\tDisableCapacities:       true,\n}\n\n// The config MUST NOT be changed because that could change the result of a hash operation\nvar prettyPrintConfigForHash = &spew.ConfigState{\n\tIndent:                  \" \",\n\tSortKeys:                true,\n\tDisableMethods:          true,\n\tSpewKeys:                true,\n\tDisablePointerAddresses: true,\n\tDisableCapacities:       true,\n}\n\n// Pretty wrap the spew.Sdump with Indent, and disabled methods like error() and String()\n// The output may change over time, so for guaranteed output please take more direct control\nfunc Pretty(a interface{}) string {\n\treturn prettyPrintConfig.Sdump(a)\n}\n\n// ForHash keeps the original Spew.Sprintf format to ensure the same checksum\nfunc ForHash(a interface{}) string {\n\treturn prettyPrintConfigForHash.Sprintf(\"%#v\", a)\n}\n\n// OneLine outputs the object in one line\nfunc OneLine(a interface{}) string {\n\treturn prettyPrintConfig.Sprintf(\"%#v\", a)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/errors/doc.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package errors implements various utility functions and types around errors.\npackage errors // import \"k8s.io/apimachinery/pkg/util/errors\"\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/errors/errors.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage errors\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\n\t\"k8s.io/apimachinery/pkg/util/sets\"\n)\n\n// MessageCountMap contains occurrence for each error message.\ntype MessageCountMap map[string]int\n\n// Aggregate represents an object that contains multiple errors, but does not\n// necessarily have singular semantic meaning.\n// The aggregate can be used with `errors.Is()` to check for the occurrence of\n// a specific error type.\n// Errors.As() is not supported, because the caller presumably cares about a\n// specific error of potentially multiple that match the given type.\ntype Aggregate interface {\n\terror\n\tErrors() []error\n\tIs(error) bool\n}\n\n// NewAggregate converts a slice of errors into an Aggregate interface, which\n// is itself an implementation of the error interface.  If the slice is empty,\n// this returns nil.\n// It will check if any of the element of input error list is nil, to avoid\n// nil pointer panic when call Error().\nfunc NewAggregate(errlist []error) Aggregate {\n\tif len(errlist) == 0 {\n\t\treturn nil\n\t}\n\t// In case of input error list contains nil\n\tvar errs []error\n\tfor _, e := range errlist {\n\t\tif e != nil {\n\t\t\terrs = append(errs, e)\n\t\t}\n\t}\n\tif len(errs) == 0 {\n\t\treturn nil\n\t}\n\treturn aggregate(errs)\n}\n\n// This helper implements the error and Errors interfaces.  Keeping it private\n// prevents people from making an aggregate of 0 errors, which is not\n// an error, but does satisfy the error interface.\ntype aggregate []error\n\n// Error is part of the error interface.\nfunc (agg aggregate) Error() string {\n\tif len(agg) == 0 {\n\t\t// This should never happen, really.\n\t\treturn \"\"\n\t}\n\tif len(agg) == 1 {\n\t\treturn agg[0].Error()\n\t}\n\tseenerrs := sets.NewString()\n\tresult := \"\"\n\tagg.visit(func(err error) bool {\n\t\tmsg := err.Error()\n\t\tif seenerrs.Has(msg) {\n\t\t\treturn false\n\t\t}\n\t\tseenerrs.Insert(msg)\n\t\tif len(seenerrs) > 1 {\n\t\t\tresult += \", \"\n\t\t}\n\t\tresult += msg\n\t\treturn false\n\t})\n\tif len(seenerrs) == 1 {\n\t\treturn result\n\t}\n\treturn \"[\" + result + \"]\"\n}\n\nfunc (agg aggregate) Is(target error) bool {\n\treturn agg.visit(func(err error) bool {\n\t\treturn errors.Is(err, target)\n\t})\n}\n\nfunc (agg aggregate) visit(f func(err error) bool) bool {\n\tfor _, err := range agg {\n\t\tswitch err := err.(type) {\n\t\tcase aggregate:\n\t\t\tif match := err.visit(f); match {\n\t\t\t\treturn match\n\t\t\t}\n\t\tcase Aggregate:\n\t\t\tfor _, nestedErr := range err.Errors() {\n\t\t\t\tif match := f(nestedErr); match {\n\t\t\t\t\treturn match\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tif match := f(err); match {\n\t\t\t\treturn match\n\t\t\t}\n\t\t}\n\t}\n\n\treturn false\n}\n\n// Errors is part of the Aggregate interface.\nfunc (agg aggregate) Errors() []error {\n\treturn []error(agg)\n}\n\n// Matcher is used to match errors.  Returns true if the error matches.\ntype Matcher func(error) bool\n\n// FilterOut removes all errors that match any of the matchers from the input\n// error.  If the input is a singular error, only that error is tested.  If the\n// input implements the Aggregate interface, the list of errors will be\n// processed recursively.\n//\n// This can be used, for example, to remove known-OK errors (such as io.EOF or\n// os.PathNotFound) from a list of errors.\nfunc FilterOut(err error, fns ...Matcher) error {\n\tif err == nil {\n\t\treturn nil\n\t}\n\tif agg, ok := err.(Aggregate); ok {\n\t\treturn NewAggregate(filterErrors(agg.Errors(), fns...))\n\t}\n\tif !matchesError(err, fns...) {\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// matchesError returns true if any Matcher returns true\nfunc matchesError(err error, fns ...Matcher) bool {\n\tfor _, fn := range fns {\n\t\tif fn(err) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// filterErrors returns any errors (or nested errors, if the list contains\n// nested Errors) for which all fns return false. If no errors\n// remain a nil list is returned. The resulting slice will have all\n// nested slices flattened as a side effect.\nfunc filterErrors(list []error, fns ...Matcher) []error {\n\tresult := []error{}\n\tfor _, err := range list {\n\t\tr := FilterOut(err, fns...)\n\t\tif r != nil {\n\t\t\tresult = append(result, r)\n\t\t}\n\t}\n\treturn result\n}\n\n// Flatten takes an Aggregate, which may hold other Aggregates in arbitrary\n// nesting, and flattens them all into a single Aggregate, recursively.\nfunc Flatten(agg Aggregate) Aggregate {\n\tresult := []error{}\n\tif agg == nil {\n\t\treturn nil\n\t}\n\tfor _, err := range agg.Errors() {\n\t\tif a, ok := err.(Aggregate); ok {\n\t\t\tr := Flatten(a)\n\t\t\tif r != nil {\n\t\t\t\tresult = append(result, r.Errors()...)\n\t\t\t}\n\t\t} else {\n\t\t\tif err != nil {\n\t\t\t\tresult = append(result, err)\n\t\t\t}\n\t\t}\n\t}\n\treturn NewAggregate(result)\n}\n\n// CreateAggregateFromMessageCountMap converts MessageCountMap Aggregate\nfunc CreateAggregateFromMessageCountMap(m MessageCountMap) Aggregate {\n\tif m == nil {\n\t\treturn nil\n\t}\n\tresult := make([]error, 0, len(m))\n\tfor errStr, count := range m {\n\t\tvar countStr string\n\t\tif count > 1 {\n\t\t\tcountStr = fmt.Sprintf(\" (repeated %v times)\", count)\n\t\t}\n\t\tresult = append(result, fmt.Errorf(\"%v%v\", errStr, countStr))\n\t}\n\treturn NewAggregate(result)\n}\n\n// Reduce will return err or nil, if err is an Aggregate and only has one item,\n// the first item in the aggregate.\nfunc Reduce(err error) error {\n\tif agg, ok := err.(Aggregate); ok && err != nil {\n\t\tswitch len(agg.Errors()) {\n\t\tcase 1:\n\t\t\treturn agg.Errors()[0]\n\t\tcase 0:\n\t\t\treturn nil\n\t\t}\n\t}\n\treturn err\n}\n\n// AggregateGoroutines runs the provided functions in parallel, stuffing all\n// non-nil errors into the returned Aggregate.\n// Returns nil if all the functions complete successfully.\nfunc AggregateGoroutines(funcs ...func() error) Aggregate {\n\terrChan := make(chan error, len(funcs))\n\tfor _, f := range funcs {\n\t\tgo func(f func() error) { errChan <- f() }(f)\n\t}\n\terrs := make([]error, 0)\n\tfor i := 0; i < cap(errChan); i++ {\n\t\tif err := <-errChan; err != nil {\n\t\t\terrs = append(errs, err)\n\t\t}\n\t}\n\treturn NewAggregate(errs)\n}\n\n// ErrPreconditionViolated is returned when the precondition is violated\nvar ErrPreconditionViolated = errors.New(\"precondition is violated\")\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/framer/framer.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package framer implements simple frame decoding techniques for an io.ReadCloser\npackage framer\n\nimport (\n\t\"encoding/binary\"\n\t\"encoding/json\"\n\t\"io\"\n)\n\ntype lengthDelimitedFrameWriter struct {\n\tw io.Writer\n\th [4]byte\n}\n\nfunc NewLengthDelimitedFrameWriter(w io.Writer) io.Writer {\n\treturn &lengthDelimitedFrameWriter{w: w}\n}\n\n// Write writes a single frame to the nested writer, prepending it with the length\n// in bytes of data (as a 4 byte, bigendian uint32).\nfunc (w *lengthDelimitedFrameWriter) Write(data []byte) (int, error) {\n\tbinary.BigEndian.PutUint32(w.h[:], uint32(len(data)))\n\tn, err := w.w.Write(w.h[:])\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tif n != len(w.h) {\n\t\treturn 0, io.ErrShortWrite\n\t}\n\treturn w.w.Write(data)\n}\n\ntype lengthDelimitedFrameReader struct {\n\tr         io.ReadCloser\n\tremaining int\n}\n\n// NewLengthDelimitedFrameReader returns an io.Reader that will decode length-prefixed\n// frames off of a stream.\n//\n// The protocol is:\n//\n//\tstream: message ...\n//\tmessage: prefix body\n//\tprefix: 4 byte uint32 in BigEndian order, denotes length of body\n//\tbody: bytes (0..prefix)\n//\n// If the buffer passed to Read is not long enough to contain an entire frame, io.ErrShortRead\n// will be returned along with the number of bytes read.\nfunc NewLengthDelimitedFrameReader(r io.ReadCloser) io.ReadCloser {\n\treturn &lengthDelimitedFrameReader{r: r}\n}\n\n// Read attempts to read an entire frame into data. If that is not possible, io.ErrShortBuffer\n// is returned and subsequent calls will attempt to read the last frame. A frame is complete when\n// err is nil.\nfunc (r *lengthDelimitedFrameReader) Read(data []byte) (int, error) {\n\tif r.remaining <= 0 {\n\t\theader := [4]byte{}\n\t\tn, err := io.ReadAtLeast(r.r, header[:4], 4)\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\tif n != 4 {\n\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t}\n\t\tframeLength := int(binary.BigEndian.Uint32(header[:]))\n\t\tr.remaining = frameLength\n\t}\n\n\texpect := r.remaining\n\tmax := expect\n\tif max > len(data) {\n\t\tmax = len(data)\n\t}\n\tn, err := io.ReadAtLeast(r.r, data[:max], int(max))\n\tr.remaining -= n\n\tif err == io.ErrShortBuffer || r.remaining > 0 {\n\t\treturn n, io.ErrShortBuffer\n\t}\n\tif err != nil {\n\t\treturn n, err\n\t}\n\tif n != expect {\n\t\treturn n, io.ErrUnexpectedEOF\n\t}\n\n\treturn n, nil\n}\n\nfunc (r *lengthDelimitedFrameReader) Close() error {\n\treturn r.r.Close()\n}\n\ntype jsonFrameReader struct {\n\tr         io.ReadCloser\n\tdecoder   *json.Decoder\n\tremaining []byte\n}\n\n// NewJSONFramedReader returns an io.Reader that will decode individual JSON objects off\n// of a wire.\n//\n// The boundaries between each frame are valid JSON objects. A JSON parsing error will terminate\n// the read.\nfunc NewJSONFramedReader(r io.ReadCloser) io.ReadCloser {\n\treturn &jsonFrameReader{\n\t\tr:       r,\n\t\tdecoder: json.NewDecoder(r),\n\t}\n}\n\n// ReadFrame decodes the next JSON object in the stream, or returns an error. The returned\n// byte slice will be modified the next time ReadFrame is invoked and should not be altered.\nfunc (r *jsonFrameReader) Read(data []byte) (int, error) {\n\t// Return whatever remaining data exists from an in progress frame\n\tif n := len(r.remaining); n > 0 {\n\t\tif n <= len(data) {\n\t\t\t//nolint:staticcheck // SA4006,SA4010 underlying array of data is modified here.\n\t\t\tdata = append(data[0:0], r.remaining...)\n\t\t\tr.remaining = nil\n\t\t\treturn n, nil\n\t\t}\n\n\t\tn = len(data)\n\t\t//nolint:staticcheck // SA4006,SA4010 underlying array of data is modified here.\n\t\tdata = append(data[0:0], r.remaining[:n]...)\n\t\tr.remaining = r.remaining[n:]\n\t\treturn n, io.ErrShortBuffer\n\t}\n\n\t// RawMessage#Unmarshal appends to data - we reset the slice down to 0 and will either see\n\t// data written to data, or be larger than data and a different array.\n\tm := json.RawMessage(data[:0])\n\tif err := r.decoder.Decode(&m); err != nil {\n\t\treturn 0, err\n\t}\n\n\t// If capacity of data is less than length of the message, decoder will allocate a new slice\n\t// and set m to it, which means we need to copy the partial result back into data and preserve\n\t// the remaining result for subsequent reads.\n\tif len(m) > cap(data) {\n\t\tcopy(data, m)\n\t\tr.remaining = m[len(data):]\n\t\treturn len(data), io.ErrShortBuffer\n\t}\n\n\tif len(m) > len(data) {\n\t\t// The bytes beyond len(data) were stored in data's underlying array, which we do\n\t\t// not own after this function returns.\n\t\tr.remaining = append([]byte(nil), m[len(data):]...)\n\t\treturn len(data), io.ErrShortBuffer\n\t}\n\n\treturn len(m), nil\n}\n\nfunc (r *jsonFrameReader) Close() error {\n\treturn r.r.Close()\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/intstr/generated.pb.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by protoc-gen-gogo. DO NOT EDIT.\n// source: k8s.io/apimachinery/pkg/util/intstr/generated.proto\n\npackage intstr\n\nimport (\n\tfmt \"fmt\"\n\n\tio \"io\"\n\tmath \"math\"\n\tmath_bits \"math/bits\"\n\n\tproto \"github.com/gogo/protobuf/proto\"\n)\n\n// Reference imports to suppress errors if they are not otherwise used.\nvar _ = proto.Marshal\nvar _ = fmt.Errorf\nvar _ = math.Inf\n\n// This is a compile-time assertion to ensure that this generated file\n// is compatible with the proto package it is being compiled against.\n// A compilation error at this line likely means your copy of the\n// proto package needs to be updated.\nconst _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package\n\nfunc (m *IntOrString) Reset()      { *m = IntOrString{} }\nfunc (*IntOrString) ProtoMessage() {}\nfunc (*IntOrString) Descriptor() ([]byte, []int) {\n\treturn fileDescriptor_771bacc35a5ec189, []int{0}\n}\nfunc (m *IntOrString) XXX_Unmarshal(b []byte) error {\n\treturn m.Unmarshal(b)\n}\nfunc (m *IntOrString) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {\n\tb = b[:cap(b)]\n\tn, err := m.MarshalToSizedBuffer(b)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b[:n], nil\n}\nfunc (m *IntOrString) XXX_Merge(src proto.Message) {\n\txxx_messageInfo_IntOrString.Merge(m, src)\n}\nfunc (m *IntOrString) XXX_Size() int {\n\treturn m.Size()\n}\nfunc (m *IntOrString) XXX_DiscardUnknown() {\n\txxx_messageInfo_IntOrString.DiscardUnknown(m)\n}\n\nvar xxx_messageInfo_IntOrString proto.InternalMessageInfo\n\nfunc init() {\n\tproto.RegisterType((*IntOrString)(nil), \"k8s.io.apimachinery.pkg.util.intstr.IntOrString\")\n}\n\nfunc init() {\n\tproto.RegisterFile(\"k8s.io/apimachinery/pkg/util/intstr/generated.proto\", fileDescriptor_771bacc35a5ec189)\n}\n\nvar fileDescriptor_771bacc35a5ec189 = []byte{\n\t// 277 bytes of a gzipped FileDescriptorProto\n\t0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0xce, 0xb6, 0x28, 0xd6,\n\t0xcb, 0xcc, 0xd7, 0x4f, 0x2c, 0xc8, 0xcc, 0x4d, 0x4c, 0xce, 0xc8, 0xcc, 0x4b, 0x2d, 0xaa, 0xd4,\n\t0x2f, 0xc8, 0x4e, 0xd7, 0x2f, 0x2d, 0xc9, 0xcc, 0xd1, 0xcf, 0xcc, 0x2b, 0x29, 0x2e, 0x29, 0xd2,\n\t0x4f, 0x4f, 0xcd, 0x4b, 0x2d, 0x4a, 0x2c, 0x49, 0x4d, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17,\n\t0x52, 0x86, 0x68, 0xd2, 0x43, 0xd6, 0xa4, 0x57, 0x90, 0x9d, 0xae, 0x07, 0xd2, 0xa4, 0x07, 0xd1,\n\t0x24, 0xa5, 0x9b, 0x9e, 0x59, 0x92, 0x51, 0x9a, 0xa4, 0x97, 0x9c, 0x9f, 0xab, 0x9f, 0x9e, 0x9f,\n\t0x9e, 0xaf, 0x0f, 0xd6, 0x9b, 0x54, 0x9a, 0x06, 0xe6, 0x81, 0x39, 0x60, 0x16, 0xc4, 0x4c, 0xa5,\n\t0x89, 0x8c, 0x5c, 0xdc, 0x9e, 0x79, 0x25, 0xfe, 0x45, 0xc1, 0x25, 0x45, 0x99, 0x79, 0xe9, 0x42,\n\t0x1a, 0x5c, 0x2c, 0x25, 0x95, 0x05, 0xa9, 0x12, 0x8c, 0x0a, 0x8c, 0x1a, 0xcc, 0x4e, 0x22, 0x27,\n\t0xee, 0xc9, 0x33, 0x3c, 0xba, 0x27, 0xcf, 0x12, 0x52, 0x59, 0x90, 0xfa, 0x0b, 0x4a, 0x07, 0x81,\n\t0x55, 0x08, 0xa9, 0x71, 0xb1, 0x65, 0xe6, 0x95, 0x84, 0x25, 0xe6, 0x48, 0x30, 0x29, 0x30, 0x6a,\n\t0xb0, 0x3a, 0xf1, 0x41, 0xd5, 0xb2, 0x79, 0x82, 0x45, 0x83, 0xa0, 0xb2, 0x20, 0x75, 0xc5, 0x25,\n\t0x45, 0x20, 0x75, 0xcc, 0x0a, 0x8c, 0x1a, 0x9c, 0x08, 0x75, 0xc1, 0x60, 0xd1, 0x20, 0xa8, 0xac,\n\t0x15, 0xc7, 0x8c, 0x05, 0xf2, 0x0c, 0x0d, 0x77, 0x14, 0x18, 0x9c, 0x3c, 0x4f, 0x3c, 0x94, 0x63,\n\t0xb8, 0xf0, 0x50, 0x8e, 0xe1, 0xc6, 0x43, 0x39, 0x86, 0x86, 0x47, 0x72, 0x8c, 0x27, 0x1e, 0xc9,\n\t0x31, 0x5e, 0x78, 0x24, 0xc7, 0x78, 0xe3, 0x91, 0x1c, 0xe3, 0x83, 0x47, 0x72, 0x8c, 0x13, 0x1e,\n\t0xcb, 0x31, 0x44, 0x29, 0x13, 0x11, 0x84, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0x63, 0xa1, 0x0b,\n\t0x1e, 0x68, 0x01, 0x00, 0x00,\n}\n\nfunc (m *IntOrString) Marshal() (dAtA []byte, err error) {\n\tsize := m.Size()\n\tdAtA = make([]byte, size)\n\tn, err := m.MarshalToSizedBuffer(dAtA[:size])\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn dAtA[:n], nil\n}\n\nfunc (m *IntOrString) MarshalTo(dAtA []byte) (int, error) {\n\tsize := m.Size()\n\treturn m.MarshalToSizedBuffer(dAtA[:size])\n}\n\nfunc (m *IntOrString) MarshalToSizedBuffer(dAtA []byte) (int, error) {\n\ti := len(dAtA)\n\t_ = i\n\tvar l int\n\t_ = l\n\ti -= len(m.StrVal)\n\tcopy(dAtA[i:], m.StrVal)\n\ti = encodeVarintGenerated(dAtA, i, uint64(len(m.StrVal)))\n\ti--\n\tdAtA[i] = 0x1a\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.IntVal))\n\ti--\n\tdAtA[i] = 0x10\n\ti = encodeVarintGenerated(dAtA, i, uint64(m.Type))\n\ti--\n\tdAtA[i] = 0x8\n\treturn len(dAtA) - i, nil\n}\n\nfunc encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {\n\toffset -= sovGenerated(v)\n\tbase := offset\n\tfor v >= 1<<7 {\n\t\tdAtA[offset] = uint8(v&0x7f | 0x80)\n\t\tv >>= 7\n\t\toffset++\n\t}\n\tdAtA[offset] = uint8(v)\n\treturn base\n}\nfunc (m *IntOrString) Size() (n int) {\n\tif m == nil {\n\t\treturn 0\n\t}\n\tvar l int\n\t_ = l\n\tn += 1 + sovGenerated(uint64(m.Type))\n\tn += 1 + sovGenerated(uint64(m.IntVal))\n\tl = len(m.StrVal)\n\tn += 1 + l + sovGenerated(uint64(l))\n\treturn n\n}\n\nfunc sovGenerated(x uint64) (n int) {\n\treturn (math_bits.Len64(x|1) + 6) / 7\n}\nfunc sozGenerated(x uint64) (n int) {\n\treturn sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))\n}\nfunc (m *IntOrString) Unmarshal(dAtA []byte) error {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tfor iNdEx < l {\n\t\tpreIndex := iNdEx\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= uint64(b&0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tfieldNum := int32(wire >> 3)\n\t\twireType := int(wire & 0x7)\n\t\tif wireType == 4 {\n\t\t\treturn fmt.Errorf(\"proto: IntOrString: wiretype end group for non-group\")\n\t\t}\n\t\tif fieldNum <= 0 {\n\t\t\treturn fmt.Errorf(\"proto: IntOrString: illegal tag %d (wire type %d)\", fieldNum, wire)\n\t\t}\n\t\tswitch fieldNum {\n\t\tcase 1:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field Type\", wireType)\n\t\t\t}\n\t\t\tm.Type = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.Type |= Type(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 2:\n\t\t\tif wireType != 0 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field IntVal\", wireType)\n\t\t\t}\n\t\t\tm.IntVal = 0\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tm.IntVal |= int32(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 3:\n\t\t\tif wireType != 2 {\n\t\t\t\treturn fmt.Errorf(\"proto: wrong wireType = %d for field StrVal\", wireType)\n\t\t\t}\n\t\t\tvar stringLen uint64\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tstringLen |= uint64(b&0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tintStringLen := int(stringLen)\n\t\t\tif intStringLen < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tpostIndex := iNdEx + intStringLen\n\t\t\tif postIndex < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif postIndex > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tm.StrVal = string(dAtA[iNdEx:postIndex])\n\t\t\tiNdEx = postIndex\n\t\tdefault:\n\t\t\tiNdEx = preIndex\n\t\t\tskippy, err := skipGenerated(dAtA[iNdEx:])\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif (skippy < 0) || (iNdEx+skippy) < 0 {\n\t\t\t\treturn ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tif (iNdEx + skippy) > l {\n\t\t\t\treturn io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tiNdEx += skippy\n\t\t}\n\t}\n\n\tif iNdEx > l {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\treturn nil\n}\nfunc skipGenerated(dAtA []byte) (n int, err error) {\n\tl := len(dAtA)\n\tiNdEx := 0\n\tdepth := 0\n\tfor iNdEx < l {\n\t\tvar wire uint64\n\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\tif shift >= 64 {\n\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t}\n\t\t\tif iNdEx >= l {\n\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tb := dAtA[iNdEx]\n\t\t\tiNdEx++\n\t\t\twire |= (uint64(b) & 0x7F) << shift\n\t\t\tif b < 0x80 {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\twireType := int(wire & 0x7)\n\t\tswitch wireType {\n\t\tcase 0:\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tiNdEx++\n\t\t\t\tif dAtA[iNdEx-1] < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\tcase 1:\n\t\t\tiNdEx += 8\n\t\tcase 2:\n\t\t\tvar length int\n\t\t\tfor shift := uint(0); ; shift += 7 {\n\t\t\t\tif shift >= 64 {\n\t\t\t\t\treturn 0, ErrIntOverflowGenerated\n\t\t\t\t}\n\t\t\t\tif iNdEx >= l {\n\t\t\t\t\treturn 0, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tb := dAtA[iNdEx]\n\t\t\t\tiNdEx++\n\t\t\t\tlength |= (int(b) & 0x7F) << shift\n\t\t\t\tif b < 0x80 {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif length < 0 {\n\t\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t\t}\n\t\t\tiNdEx += length\n\t\tcase 3:\n\t\t\tdepth++\n\t\tcase 4:\n\t\t\tif depth == 0 {\n\t\t\t\treturn 0, ErrUnexpectedEndOfGroupGenerated\n\t\t\t}\n\t\t\tdepth--\n\t\tcase 5:\n\t\t\tiNdEx += 4\n\t\tdefault:\n\t\t\treturn 0, fmt.Errorf(\"proto: illegal wireType %d\", wireType)\n\t\t}\n\t\tif iNdEx < 0 {\n\t\t\treturn 0, ErrInvalidLengthGenerated\n\t\t}\n\t\tif depth == 0 {\n\t\t\treturn iNdEx, nil\n\t\t}\n\t}\n\treturn 0, io.ErrUnexpectedEOF\n}\n\nvar (\n\tErrInvalidLengthGenerated        = fmt.Errorf(\"proto: negative length found during unmarshaling\")\n\tErrIntOverflowGenerated          = fmt.Errorf(\"proto: integer overflow\")\n\tErrUnexpectedEndOfGroupGenerated = fmt.Errorf(\"proto: unexpected end of group\")\n)\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/intstr/generated.proto",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n\n// This file was autogenerated by go-to-protobuf. Do not edit it manually!\n\nsyntax = \"proto2\";\n\npackage k8s.io.apimachinery.pkg.util.intstr;\n\n// Package-wide variables from generator \"generated\".\noption go_package = \"k8s.io/apimachinery/pkg/util/intstr\";\n\n// IntOrString is a type that can hold an int32 or a string.  When used in\n// JSON or YAML marshalling and unmarshalling, it produces or consumes the\n// inner type.  This allows you to have, for example, a JSON field that can\n// accept a name or number.\n// TODO: Rename to Int32OrString\n//\n// +protobuf=true\n// +protobuf.options.(gogoproto.goproto_stringer)=false\n// +k8s:openapi-gen=true\nmessage IntOrString {\n  optional int64 type = 1;\n\n  optional int32 intVal = 2;\n\n  optional string strVal = 3;\n}\n\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/intstr/instr_fuzz.go",
    "content": "//go:build !notest\n// +build !notest\n\n/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage intstr\n\nimport (\n\tfuzz \"github.com/google/gofuzz\"\n)\n\n// Fuzz satisfies fuzz.Interface\nfunc (intstr *IntOrString) Fuzz(c fuzz.Continue) {\n\tif intstr == nil {\n\t\treturn\n\t}\n\tif c.RandBool() {\n\t\tintstr.Type = Int\n\t\tc.Fuzz(&intstr.IntVal)\n\t\tintstr.StrVal = \"\"\n\t} else {\n\t\tintstr.Type = String\n\t\tintstr.IntVal = 0\n\t\tc.Fuzz(&intstr.StrVal)\n\t}\n}\n\n// ensure IntOrString implements fuzz.Interface\nvar _ fuzz.Interface = &IntOrString{}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/intstr/intstr.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage intstr\n\nimport (\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"math\"\n\t\"runtime/debug\"\n\t\"strconv\"\n\t\"strings\"\n\n\tcbor \"k8s.io/apimachinery/pkg/runtime/serializer/cbor/direct\"\n\t\"k8s.io/klog/v2\"\n)\n\n// IntOrString is a type that can hold an int32 or a string.  When used in\n// JSON or YAML marshalling and unmarshalling, it produces or consumes the\n// inner type.  This allows you to have, for example, a JSON field that can\n// accept a name or number.\n// TODO: Rename to Int32OrString\n//\n// +protobuf=true\n// +protobuf.options.(gogoproto.goproto_stringer)=false\n// +k8s:openapi-gen=true\ntype IntOrString struct {\n\tType   Type   `protobuf:\"varint,1,opt,name=type,casttype=Type\"`\n\tIntVal int32  `protobuf:\"varint,2,opt,name=intVal\"`\n\tStrVal string `protobuf:\"bytes,3,opt,name=strVal\"`\n}\n\n// Type represents the stored type of IntOrString.\ntype Type int64\n\nconst (\n\tInt    Type = iota // The IntOrString holds an int.\n\tString             // The IntOrString holds a string.\n)\n\n// FromInt creates an IntOrString object with an int32 value. It is\n// your responsibility not to call this method with a value greater\n// than int32.\n// Deprecated: use FromInt32 instead.\nfunc FromInt(val int) IntOrString {\n\tif val > math.MaxInt32 || val < math.MinInt32 {\n\t\tklog.Errorf(\"value: %d overflows int32\\n%s\\n\", val, debug.Stack())\n\t}\n\treturn IntOrString{Type: Int, IntVal: int32(val)}\n}\n\n// FromInt32 creates an IntOrString object with an int32 value.\nfunc FromInt32(val int32) IntOrString {\n\treturn IntOrString{Type: Int, IntVal: val}\n}\n\n// FromString creates an IntOrString object with a string value.\nfunc FromString(val string) IntOrString {\n\treturn IntOrString{Type: String, StrVal: val}\n}\n\n// Parse the given string and try to convert it to an int32 integer before\n// setting it as a string value.\nfunc Parse(val string) IntOrString {\n\ti, err := strconv.ParseInt(val, 10, 32)\n\tif err != nil {\n\t\treturn FromString(val)\n\t}\n\treturn FromInt32(int32(i))\n}\n\n// UnmarshalJSON implements the json.Unmarshaller interface.\nfunc (intstr *IntOrString) UnmarshalJSON(value []byte) error {\n\tif value[0] == '\"' {\n\t\tintstr.Type = String\n\t\treturn json.Unmarshal(value, &intstr.StrVal)\n\t}\n\tintstr.Type = Int\n\treturn json.Unmarshal(value, &intstr.IntVal)\n}\n\nfunc (intstr *IntOrString) UnmarshalCBOR(value []byte) error {\n\tif err := cbor.Unmarshal(value, &intstr.StrVal); err == nil {\n\t\tintstr.Type = String\n\t\treturn nil\n\t}\n\n\tif err := cbor.Unmarshal(value, &intstr.IntVal); err != nil {\n\t\treturn err\n\t}\n\n\tintstr.Type = Int\n\treturn nil\n}\n\n// String returns the string value, or the Itoa of the int value.\nfunc (intstr *IntOrString) String() string {\n\tif intstr == nil {\n\t\treturn \"<nil>\"\n\t}\n\tif intstr.Type == String {\n\t\treturn intstr.StrVal\n\t}\n\treturn strconv.Itoa(intstr.IntValue())\n}\n\n// IntValue returns the IntVal if type Int, or if\n// it is a String, will attempt a conversion to int,\n// returning 0 if a parsing error occurs.\nfunc (intstr *IntOrString) IntValue() int {\n\tif intstr.Type == String {\n\t\ti, _ := strconv.Atoi(intstr.StrVal)\n\t\treturn i\n\t}\n\treturn int(intstr.IntVal)\n}\n\n// MarshalJSON implements the json.Marshaller interface.\nfunc (intstr IntOrString) MarshalJSON() ([]byte, error) {\n\tswitch intstr.Type {\n\tcase Int:\n\t\treturn json.Marshal(intstr.IntVal)\n\tcase String:\n\t\treturn json.Marshal(intstr.StrVal)\n\tdefault:\n\t\treturn []byte{}, fmt.Errorf(\"impossible IntOrString.Type\")\n\t}\n}\n\nfunc (intstr IntOrString) MarshalCBOR() ([]byte, error) {\n\tswitch intstr.Type {\n\tcase Int:\n\t\treturn cbor.Marshal(intstr.IntVal)\n\tcase String:\n\t\treturn cbor.Marshal(intstr.StrVal)\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"impossible IntOrString.Type\")\n\t}\n}\n\n// OpenAPISchemaType is used by the kube-openapi generator when constructing\n// the OpenAPI spec of this type.\n//\n// See: https://github.com/kubernetes/kube-openapi/tree/master/pkg/generators\nfunc (IntOrString) OpenAPISchemaType() []string { return []string{\"string\"} }\n\n// OpenAPISchemaFormat is used by the kube-openapi generator when constructing\n// the OpenAPI spec of this type.\nfunc (IntOrString) OpenAPISchemaFormat() string { return \"int-or-string\" }\n\n// OpenAPIV3OneOfTypes is used by the kube-openapi generator when constructing\n// the OpenAPI v3 spec of this type.\nfunc (IntOrString) OpenAPIV3OneOfTypes() []string { return []string{\"integer\", \"string\"} }\n\nfunc ValueOrDefault(intOrPercent *IntOrString, defaultValue IntOrString) *IntOrString {\n\tif intOrPercent == nil {\n\t\treturn &defaultValue\n\t}\n\treturn intOrPercent\n}\n\n// GetScaledValueFromIntOrPercent is meant to replace GetValueFromIntOrPercent.\n// This method returns a scaled value from an IntOrString type. If the IntOrString\n// is a percentage string value it's treated as a percentage and scaled appropriately\n// in accordance to the total, if it's an int value it's treated as a simple value and\n// if it is a string value which is either non-numeric or numeric but lacking a trailing '%' it returns an error.\nfunc GetScaledValueFromIntOrPercent(intOrPercent *IntOrString, total int, roundUp bool) (int, error) {\n\tif intOrPercent == nil {\n\t\treturn 0, errors.New(\"nil value for IntOrString\")\n\t}\n\tvalue, isPercent, err := getIntOrPercentValueSafely(intOrPercent)\n\tif err != nil {\n\t\treturn 0, fmt.Errorf(\"invalid value for IntOrString: %v\", err)\n\t}\n\tif isPercent {\n\t\tif roundUp {\n\t\t\tvalue = int(math.Ceil(float64(value) * (float64(total)) / 100))\n\t\t} else {\n\t\t\tvalue = int(math.Floor(float64(value) * (float64(total)) / 100))\n\t\t}\n\t}\n\treturn value, nil\n}\n\n// GetValueFromIntOrPercent was deprecated in favor of\n// GetScaledValueFromIntOrPercent. This method was treating all int as a numeric value and all\n// strings with or without a percent symbol as a percentage value.\n// Deprecated\nfunc GetValueFromIntOrPercent(intOrPercent *IntOrString, total int, roundUp bool) (int, error) {\n\tif intOrPercent == nil {\n\t\treturn 0, errors.New(\"nil value for IntOrString\")\n\t}\n\tvalue, isPercent, err := getIntOrPercentValue(intOrPercent)\n\tif err != nil {\n\t\treturn 0, fmt.Errorf(\"invalid value for IntOrString: %v\", err)\n\t}\n\tif isPercent {\n\t\tif roundUp {\n\t\t\tvalue = int(math.Ceil(float64(value) * (float64(total)) / 100))\n\t\t} else {\n\t\t\tvalue = int(math.Floor(float64(value) * (float64(total)) / 100))\n\t\t}\n\t}\n\treturn value, nil\n}\n\n// getIntOrPercentValue is a legacy function and only meant to be called by GetValueFromIntOrPercent\n// For a more correct implementation call getIntOrPercentSafely\nfunc getIntOrPercentValue(intOrStr *IntOrString) (int, bool, error) {\n\tswitch intOrStr.Type {\n\tcase Int:\n\t\treturn intOrStr.IntValue(), false, nil\n\tcase String:\n\t\ts := strings.Replace(intOrStr.StrVal, \"%\", \"\", -1)\n\t\tv, err := strconv.Atoi(s)\n\t\tif err != nil {\n\t\t\treturn 0, false, fmt.Errorf(\"invalid value %q: %v\", intOrStr.StrVal, err)\n\t\t}\n\t\treturn int(v), true, nil\n\t}\n\treturn 0, false, fmt.Errorf(\"invalid type: neither int nor percentage\")\n}\n\nfunc getIntOrPercentValueSafely(intOrStr *IntOrString) (int, bool, error) {\n\tswitch intOrStr.Type {\n\tcase Int:\n\t\treturn intOrStr.IntValue(), false, nil\n\tcase String:\n\t\tisPercent := false\n\t\ts := intOrStr.StrVal\n\t\tif strings.HasSuffix(s, \"%\") {\n\t\t\tisPercent = true\n\t\t\ts = strings.TrimSuffix(intOrStr.StrVal, \"%\")\n\t\t} else {\n\t\t\treturn 0, false, fmt.Errorf(\"invalid type: string is not a percentage\")\n\t\t}\n\t\tv, err := strconv.Atoi(s)\n\t\tif err != nil {\n\t\t\treturn 0, false, fmt.Errorf(\"invalid value %q: %v\", intOrStr.StrVal, err)\n\t\t}\n\t\treturn int(v), isPercent, nil\n\t}\n\treturn 0, false, fmt.Errorf(\"invalid type: neither int nor percentage\")\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/json/json.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage json\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\n\tkjson \"sigs.k8s.io/json\"\n)\n\n// NewEncoder delegates to json.NewEncoder\n// It is only here so this package can be a drop-in for common encoding/json uses\nfunc NewEncoder(w io.Writer) *json.Encoder {\n\treturn json.NewEncoder(w)\n}\n\n// Marshal delegates to json.Marshal\n// It is only here so this package can be a drop-in for common encoding/json uses\nfunc Marshal(v interface{}) ([]byte, error) {\n\treturn json.Marshal(v)\n}\n\n// limit recursive depth to prevent stack overflow errors\nconst maxDepth = 10000\n\n// Unmarshal unmarshals the given data.\n// Object keys are case-sensitive.\n// Numbers decoded into interface{} fields are converted to int64 or float64.\nfunc Unmarshal(data []byte, v interface{}) error {\n\treturn kjson.UnmarshalCaseSensitivePreserveInts(data, v)\n}\n\n// ConvertInterfaceNumbers converts any json.Number values to int64 or float64.\n// Values which are map[string]interface{} or []interface{} are recursively visited\nfunc ConvertInterfaceNumbers(v *interface{}, depth int) error {\n\tvar err error\n\tswitch v2 := (*v).(type) {\n\tcase json.Number:\n\t\t*v, err = convertNumber(v2)\n\tcase map[string]interface{}:\n\t\terr = ConvertMapNumbers(v2, depth+1)\n\tcase []interface{}:\n\t\terr = ConvertSliceNumbers(v2, depth+1)\n\t}\n\treturn err\n}\n\n// ConvertMapNumbers traverses the map, converting any json.Number values to int64 or float64.\n// values which are map[string]interface{} or []interface{} are recursively visited\nfunc ConvertMapNumbers(m map[string]interface{}, depth int) error {\n\tif depth > maxDepth {\n\t\treturn fmt.Errorf(\"exceeded max depth of %d\", maxDepth)\n\t}\n\n\tvar err error\n\tfor k, v := range m {\n\t\tswitch v := v.(type) {\n\t\tcase json.Number:\n\t\t\tm[k], err = convertNumber(v)\n\t\tcase map[string]interface{}:\n\t\t\terr = ConvertMapNumbers(v, depth+1)\n\t\tcase []interface{}:\n\t\t\terr = ConvertSliceNumbers(v, depth+1)\n\t\t}\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// ConvertSliceNumbers traverses the slice, converting any json.Number values to int64 or float64.\n// values which are map[string]interface{} or []interface{} are recursively visited\nfunc ConvertSliceNumbers(s []interface{}, depth int) error {\n\tif depth > maxDepth {\n\t\treturn fmt.Errorf(\"exceeded max depth of %d\", maxDepth)\n\t}\n\n\tvar err error\n\tfor i, v := range s {\n\t\tswitch v := v.(type) {\n\t\tcase json.Number:\n\t\t\ts[i], err = convertNumber(v)\n\t\tcase map[string]interface{}:\n\t\t\terr = ConvertMapNumbers(v, depth+1)\n\t\tcase []interface{}:\n\t\t\terr = ConvertSliceNumbers(v, depth+1)\n\t\t}\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// convertNumber converts a json.Number to an int64 or float64, or returns an error\nfunc convertNumber(n json.Number) (interface{}, error) {\n\t// Attempt to convert to an int64 first\n\tif i, err := n.Int64(); err == nil {\n\t\treturn i, nil\n\t}\n\t// Return a float64 (default json.Decode() behavior)\n\t// An overflow will return an error\n\treturn n.Float64()\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/endpoints.yaml",
    "content": "apiVersion: v1\nkind: Endpoints\nmetadata:\n  creationTimestamp: '2016-10-04T17:45:58Z'\n  labels:\n    app: my-app\n  name: app-server\n  namespace: default\n  resourceVersion: '184597135'\n  selfLink: /self/link\n  uid: 6826f086-8a5a-11e6-8d09-42010a800005\nsubsets:\n- addresses:\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0000\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0001\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0002\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0003\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0004\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0005\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0006\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0007\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0008\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0009\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0010\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0011\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0012\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0013\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0014\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0015\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0016\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0017\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0018\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0019\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0020\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0021\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0022\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0023\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0024\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0025\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0026\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0027\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0028\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0029\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0030\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0031\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0032\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0033\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0034\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0035\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0036\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0037\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0038\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0039\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0040\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0041\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0042\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0043\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0044\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0045\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0046\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0047\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0048\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0049\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0050\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0051\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0052\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0053\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0054\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0055\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0056\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0057\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0058\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0059\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0060\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0061\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0062\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0063\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0064\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0065\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0066\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0067\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0068\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0069\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0070\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0071\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0072\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0073\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0074\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0075\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0076\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0077\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0078\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0079\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0080\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0081\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0082\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0083\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0084\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0085\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0086\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0087\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0088\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0089\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0090\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0091\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0092\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0093\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0094\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0095\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0096\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0097\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0098\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0099\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0100\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0101\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0102\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0103\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0104\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0105\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0106\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0107\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0108\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0109\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0110\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0111\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0112\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0113\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0114\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0115\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0116\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0117\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0118\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0119\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0120\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0121\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0122\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0123\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0124\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0125\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0126\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0127\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0128\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0129\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0130\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0131\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0132\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0133\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0134\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0135\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0136\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0137\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0138\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0139\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0140\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0141\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0142\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0143\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0144\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0145\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0146\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0147\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0148\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0149\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0150\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0151\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0152\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0153\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0154\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0155\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0156\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0157\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0158\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0159\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0160\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0161\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0162\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0163\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0164\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0165\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0166\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0167\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0168\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0169\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0170\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0171\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0172\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0173\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0174\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0175\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0176\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0177\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0178\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0179\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0180\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0181\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0182\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0183\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0184\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0185\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0186\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0187\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0188\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0189\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0190\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0191\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0192\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0193\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0194\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0195\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0196\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0197\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0198\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0199\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0200\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0201\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0202\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0203\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0204\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0205\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0206\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0207\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0208\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0209\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0210\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0211\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0212\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0213\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0214\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0215\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0216\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0217\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0218\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0219\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0220\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0221\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0222\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0223\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0224\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0225\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0226\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0227\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0228\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0229\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0230\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0231\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0232\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0233\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0234\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0235\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0236\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0237\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0238\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0239\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0240\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0241\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0242\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0243\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0244\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0245\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0246\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0247\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0248\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0249\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0250\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0251\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0252\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0253\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0254\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0255\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0256\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0257\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0258\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0259\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0260\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0261\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0262\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0263\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0264\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0265\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0266\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0267\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0268\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0269\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0270\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0271\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0272\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0273\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0274\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0275\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0276\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0277\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0278\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0279\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0280\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0281\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0282\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0283\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0284\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0285\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0286\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0287\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0288\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0289\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0290\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0291\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0292\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0293\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0294\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0295\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0296\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0297\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0298\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0299\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0300\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0301\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0302\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0303\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0304\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0305\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0306\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0307\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0308\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0309\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0310\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0311\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0312\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0313\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0314\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0315\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0316\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0317\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0318\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0319\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0320\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0321\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0322\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0323\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0324\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0325\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0326\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0327\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0328\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0329\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0330\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0331\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0332\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0333\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0334\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0335\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0336\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0337\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0338\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0339\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0340\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0341\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0342\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0343\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0344\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0345\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0346\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0347\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0348\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0349\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0350\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0351\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0352\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0353\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0354\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0355\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0356\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0357\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0358\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0359\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0360\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0361\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0362\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0363\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0364\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0365\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0366\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0367\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0368\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0369\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0370\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0371\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0372\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0373\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0374\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0375\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0376\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0377\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0378\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0379\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0380\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0381\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0382\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0383\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0384\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0385\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0386\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0387\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0388\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0389\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0390\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0391\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0392\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0393\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0394\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0395\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0396\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0397\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0398\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0399\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0400\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0401\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0402\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0403\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0404\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0405\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0406\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0407\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0408\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0409\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0410\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0411\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0412\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0413\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0414\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0415\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0416\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0417\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0418\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0419\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0420\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0421\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0422\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0423\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0424\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0425\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0426\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0427\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0428\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0429\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0430\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0431\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0432\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0433\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0434\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0435\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0436\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0437\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0438\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0439\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0440\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0441\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0442\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0443\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0444\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0445\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0446\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0447\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0448\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0449\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0450\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0451\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0452\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0453\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0454\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0455\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0456\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0457\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0458\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0459\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0460\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0461\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0462\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0463\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0464\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0465\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0466\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0467\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0468\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0469\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0470\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0471\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0472\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0473\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0474\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0475\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0476\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0477\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0478\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0479\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0480\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0481\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0482\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0483\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0484\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0485\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0486\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0487\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0488\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0489\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0490\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0491\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0492\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0493\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0494\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0495\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0496\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0497\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0498\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0499\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0500\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0501\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0502\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0503\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0504\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0505\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0506\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0507\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0508\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0509\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0510\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0511\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0512\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0513\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0514\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0515\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0516\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0517\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0518\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0519\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0520\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0521\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0522\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0523\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0524\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0525\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0526\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0527\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0528\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0529\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0530\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0531\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0532\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0533\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0534\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0535\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0536\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0537\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0538\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0539\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0540\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0541\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0542\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0543\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0544\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0545\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0546\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0547\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0548\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0549\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0550\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0551\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0552\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0553\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0554\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0555\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0556\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0557\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0558\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0559\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0560\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0561\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0562\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0563\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0564\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0565\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0566\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0567\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0568\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0569\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0570\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0571\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0572\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0573\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0574\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0575\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0576\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0577\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0578\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0579\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0580\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0581\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0582\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0583\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0584\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0585\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0586\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0587\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0588\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0589\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0590\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0591\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0592\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0593\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0594\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0595\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0596\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0597\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0598\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0599\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0600\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0601\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0602\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0603\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0604\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0605\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0606\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0607\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0608\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0609\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0610\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0611\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0612\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0613\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0614\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0615\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0616\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0617\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0618\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0619\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0620\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0621\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0622\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0623\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0624\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0625\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0626\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0627\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0628\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0629\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0630\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0631\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0632\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0633\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0634\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0635\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0636\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0637\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0638\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0639\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0640\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0641\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0642\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0643\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0644\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0645\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0646\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0647\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0648\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0649\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0650\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0651\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0652\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0653\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0654\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0655\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0656\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0657\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0658\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0659\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0660\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0661\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0662\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0663\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0664\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0665\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0666\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0667\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0668\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0669\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0670\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0671\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0672\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0673\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0674\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0675\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0676\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0677\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0678\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0679\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0680\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0681\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0682\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0683\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0684\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0685\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0686\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0687\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0688\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0689\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0690\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0691\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0692\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0693\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0694\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0695\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0696\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0697\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0698\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0699\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0700\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0701\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0702\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0703\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0704\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0705\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0706\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0707\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0708\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0709\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0710\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0711\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0712\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0713\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0714\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0715\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0716\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0717\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0718\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0719\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0720\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0721\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0722\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0723\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0724\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0725\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0726\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0727\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0728\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0729\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0730\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0731\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0732\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0733\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0734\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0735\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0736\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0737\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0738\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0739\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0740\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0741\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0742\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0743\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0744\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0745\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0746\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0747\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0748\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0749\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0750\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0751\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0752\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0753\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0754\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0755\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0756\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0757\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0758\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0759\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0760\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0761\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0762\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0763\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0764\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0765\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0766\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0767\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0768\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0769\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0770\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0771\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0772\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0773\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0774\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0775\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0776\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0777\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0778\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0779\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0780\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0781\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0782\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0783\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0784\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0785\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0786\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0787\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0788\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0789\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0790\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0791\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0792\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0793\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0794\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0795\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0796\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0797\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0798\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0799\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0800\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0801\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0802\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0803\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0804\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0805\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0806\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0807\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0808\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0809\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0810\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0811\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0812\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0813\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0814\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0815\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0816\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0817\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0818\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0819\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0820\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0821\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0822\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0823\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0824\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0825\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0826\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0827\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0828\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0829\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0830\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0831\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0832\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0833\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0834\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0835\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0836\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0837\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0838\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0839\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0840\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0841\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0842\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0843\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0844\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0845\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0846\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0847\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0848\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0849\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0850\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0851\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0852\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0853\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0854\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0855\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0856\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0857\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0858\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0859\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0860\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0861\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0862\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0863\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0864\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0865\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0866\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0867\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0868\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0869\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0870\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0871\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0872\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0873\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0874\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0875\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0876\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0877\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0878\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0879\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0880\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0881\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0882\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0883\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0884\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0885\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0886\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0887\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0888\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0889\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0890\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0891\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0892\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0893\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0894\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0895\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0896\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0897\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0898\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0899\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0900\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0901\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0902\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0903\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0904\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0905\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0906\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0907\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0908\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0909\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0910\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0911\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0912\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0913\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0914\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0915\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0916\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0917\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0918\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0919\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0920\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0921\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0922\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0923\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0924\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0925\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0926\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0927\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0928\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0929\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0930\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0931\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0932\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0933\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0934\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0935\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0936\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0937\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0938\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0939\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0940\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0941\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0942\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0943\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0944\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0945\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0946\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0947\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0948\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0949\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0950\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0951\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0952\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0953\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0954\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0955\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0956\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0957\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0958\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0959\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0960\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0961\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0962\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0963\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0964\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0965\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0966\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0967\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0968\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0969\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0970\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0971\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0972\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0973\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0974\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0975\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0976\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0977\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0978\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0979\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0980\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0981\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0982\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0983\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0984\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0985\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0986\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0987\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0988\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0989\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0990\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0991\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0992\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0993\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0994\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0995\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0996\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0997\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0998\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  - ip: 10.0.0.1\n    targetRef:\n      kind: Pod\n      name: pod-name-1234-0999\n      namespace: default\n      resourceVersion: '1234567890'\n      uid: 11111111-2222-3333-4444-555555555555\n  ports:\n  - name: port-name\n    port: 8080\n    protocol: TCP\n\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/extract.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage managedfields\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/typed\"\n\n\t\"k8s.io/apimachinery/pkg/api/meta\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// ExtractInto extracts the applied configuration state from object for fieldManager\n// into applyConfiguration. If no managed fields are found for the given fieldManager,\n// no error is returned, but applyConfiguration is left unpopulated. It is possible\n// that no managed fields were found for the fieldManager because other field managers\n// have taken ownership of all the fields previously owned by the fieldManager. It is\n// also possible the fieldManager never owned fields.\n//\n// The provided object MUST bo a root resource object since subresource objects\n// do not contain their own managed fields. For example, an autoscaling.Scale\n// object read from a \"scale\" subresource does not have any managed fields and so\n// cannot be used as the object.\n//\n// If the fields of a subresource are a subset of the fields of the root object,\n// and their field paths and types are exactly the same, then ExtractInto can be\n// called with the root resource as the object and the subresource as the\n// applyConfiguration. This works for \"status\", obviously, because status is\n// represented by the exact same object as the root resource. This does NOT\n// work, for example, with the \"scale\" subresources of Deployment, ReplicaSet and\n// StatefulSet. While the spec.replicas, status.replicas fields are in the same\n// exact field path locations as they are in autoscaling.Scale, the selector\n// fields are in different locations, and are a different type.\nfunc ExtractInto(object runtime.Object, objectType typed.ParseableType, fieldManager string, applyConfiguration interface{}, subresource string) error {\n\ttypedObj, err := toTyped(object, objectType)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"error converting obj to typed: %w\", err)\n\t}\n\n\taccessor, err := meta.Accessor(object)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"error accessing metadata: %w\", err)\n\t}\n\tfieldsEntry, ok := findManagedFields(accessor, fieldManager, subresource)\n\tif !ok {\n\t\treturn nil\n\t}\n\tfieldset := &fieldpath.Set{}\n\terr = fieldset.FromJSON(bytes.NewReader(fieldsEntry.FieldsV1.Raw))\n\tif err != nil {\n\t\treturn fmt.Errorf(\"error marshalling FieldsV1 to JSON: %w\", err)\n\t}\n\n\tu := typedObj.ExtractItems(fieldset.Leaves()).AsValue().Unstructured()\n\tm, ok := u.(map[string]interface{})\n\tif !ok {\n\t\treturn fmt.Errorf(\"unable to convert managed fields for %s to unstructured, expected map, got %T\", fieldManager, u)\n\t}\n\n\t// set the type meta manually if it doesn't exist to avoid missing kind errors\n\t// when decoding from unstructured JSON\n\tif _, ok := m[\"kind\"]; !ok && object.GetObjectKind().GroupVersionKind().Kind != \"\" {\n\t\tm[\"kind\"] = object.GetObjectKind().GroupVersionKind().Kind\n\t\tm[\"apiVersion\"] = object.GetObjectKind().GroupVersionKind().GroupVersion().String()\n\t}\n\tif err := runtime.DefaultUnstructuredConverter.FromUnstructured(m, applyConfiguration); err != nil {\n\t\treturn fmt.Errorf(\"error extracting into obj from unstructured: %w\", err)\n\t}\n\treturn nil\n}\n\nfunc findManagedFields(accessor metav1.Object, fieldManager string, subresource string) (metav1.ManagedFieldsEntry, bool) {\n\tobjManagedFields := accessor.GetManagedFields()\n\tfor _, mf := range objManagedFields {\n\t\tif mf.Manager == fieldManager && mf.Operation == metav1.ManagedFieldsOperationApply && mf.Subresource == subresource {\n\t\t\treturn mf, true\n\t\t}\n\t}\n\treturn metav1.ManagedFieldsEntry{}, false\n}\n\nfunc toTyped(obj runtime.Object, objectType typed.ParseableType) (*typed.TypedValue, error) {\n\tswitch o := obj.(type) {\n\tcase *unstructured.Unstructured:\n\t\treturn objectType.FromUnstructured(o.Object)\n\tdefault:\n\t\treturn objectType.FromStructured(o)\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/fieldmanager.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage managedfields\n\nimport (\n\t\"fmt\"\n\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/util/managedfields/internal\"\n)\n\n// FieldManager updates the managed fields and merges applied\n// configurations.\ntype FieldManager = internal.FieldManager\n\n// NewDefaultFieldManager creates a new FieldManager that merges apply requests\n// and update managed fields for other types of requests.\nfunc NewDefaultFieldManager(typeConverter TypeConverter, objectConverter runtime.ObjectConvertor, objectDefaulter runtime.ObjectDefaulter, objectCreater runtime.ObjectCreater, kind schema.GroupVersionKind, hub schema.GroupVersion, subresource string, resetFields map[fieldpath.APIVersion]fieldpath.Filter) (*FieldManager, error) {\n\tf, err := internal.NewStructuredMergeManager(typeConverter, objectConverter, objectDefaulter, kind.GroupVersion(), hub, resetFields)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to create field manager: %v\", err)\n\t}\n\treturn internal.NewDefaultFieldManager(f, typeConverter, objectConverter, objectCreater, kind, subresource), nil\n}\n\n// NewDefaultCRDFieldManager creates a new FieldManager specifically for\n// CRDs. This allows for the possibility of fields which are not defined\n// in models, as well as having no models defined at all.\nfunc NewDefaultCRDFieldManager(typeConverter TypeConverter, objectConverter runtime.ObjectConvertor, objectDefaulter runtime.ObjectDefaulter, objectCreater runtime.ObjectCreater, kind schema.GroupVersionKind, hub schema.GroupVersion, subresource string, resetFields map[fieldpath.APIVersion]fieldpath.Filter) (_ *FieldManager, err error) {\n\tf, err := internal.NewCRDStructuredMergeManager(typeConverter, objectConverter, objectDefaulter, kind.GroupVersion(), hub, resetFields)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to create field manager: %v\", err)\n\t}\n\treturn internal.NewDefaultFieldManager(f, typeConverter, objectConverter, objectCreater, kind, subresource), nil\n}\n\nfunc ValidateManagedFields(encodedManagedFields []metav1.ManagedFieldsEntry) error {\n\t_, err := internal.DecodeManagedFields(encodedManagedFields)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/gvkparser.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage managedfields\n\nimport (\n\t\"fmt\"\n\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/kube-openapi/pkg/schemaconv\"\n\t\"k8s.io/kube-openapi/pkg/util/proto\"\n\tsmdschema \"sigs.k8s.io/structured-merge-diff/v4/schema\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/typed\"\n)\n\n// groupVersionKindExtensionKey is the key used to lookup the\n// GroupVersionKind value for an object definition from the\n// definition's \"extensions\" map.\nconst groupVersionKindExtensionKey = \"x-kubernetes-group-version-kind\"\n\n// GvkParser contains a Parser that allows introspecting the schema.\ntype GvkParser struct {\n\tgvks   map[schema.GroupVersionKind]string\n\tparser typed.Parser\n}\n\n// Type returns a helper which can produce objects of the given type. Any\n// errors are deferred until a further function is called.\nfunc (p *GvkParser) Type(gvk schema.GroupVersionKind) *typed.ParseableType {\n\ttypeName, ok := p.gvks[gvk]\n\tif !ok {\n\t\treturn nil\n\t}\n\tt := p.parser.Type(typeName)\n\treturn &t\n}\n\n// NewGVKParser builds a GVKParser from a proto.Models. This\n// will automatically find the proper version of the object, and the\n// corresponding schema information.\nfunc NewGVKParser(models proto.Models, preserveUnknownFields bool) (*GvkParser, error) {\n\ttypeSchema, err := schemaconv.ToSchemaWithPreserveUnknownFields(models, preserveUnknownFields)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to convert models to schema: %v\", err)\n\t}\n\tparser := GvkParser{\n\t\tgvks: map[schema.GroupVersionKind]string{},\n\t}\n\tparser.parser = typed.Parser{Schema: smdschema.Schema{Types: typeSchema.Types}}\n\tfor _, modelName := range models.ListModels() {\n\t\tmodel := models.LookupModel(modelName)\n\t\tif model == nil {\n\t\t\tpanic(fmt.Sprintf(\"ListModels returns a model that can't be looked-up for: %v\", modelName))\n\t\t}\n\t\tgvkList := parseGroupVersionKind(model)\n\t\tfor _, gvk := range gvkList {\n\t\t\tif len(gvk.Kind) > 0 {\n\t\t\t\t_, ok := parser.gvks[gvk]\n\t\t\t\tif ok {\n\t\t\t\t\treturn nil, fmt.Errorf(\"duplicate entry for %v\", gvk)\n\t\t\t\t}\n\t\t\t\tparser.gvks[gvk] = modelName\n\t\t\t}\n\t\t}\n\t}\n\treturn &parser, nil\n}\n\n// Get and parse GroupVersionKind from the extension. Returns empty if it doesn't have one.\nfunc parseGroupVersionKind(s proto.Schema) []schema.GroupVersionKind {\n\textensions := s.GetExtensions()\n\n\tgvkListResult := []schema.GroupVersionKind{}\n\n\t// Get the extensions\n\tgvkExtension, ok := extensions[groupVersionKindExtensionKey]\n\tif !ok {\n\t\treturn []schema.GroupVersionKind{}\n\t}\n\n\t// gvk extension must be a list of at least 1 element.\n\tgvkList, ok := gvkExtension.([]interface{})\n\tif !ok {\n\t\treturn []schema.GroupVersionKind{}\n\t}\n\n\tfor _, gvk := range gvkList {\n\t\t// gvk extension list must be a map with group, version, and\n\t\t// kind fields\n\t\tgvkMap, ok := gvk.(map[interface{}]interface{})\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tgroup, ok := gvkMap[\"group\"].(string)\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tversion, ok := gvkMap[\"version\"].(string)\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\tkind, ok := gvkMap[\"kind\"].(string)\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\n\t\tgvkListResult = append(gvkListResult, schema.GroupVersionKind{\n\t\t\tGroup:   group,\n\t\t\tVersion: version,\n\t\t\tKind:    kind,\n\t\t})\n\t}\n\n\treturn gvkListResult\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/internal/atmostevery.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internal\n\nimport (\n\t\"sync\"\n\t\"time\"\n)\n\n// AtMostEvery will never run the method more than once every specified\n// duration.\ntype AtMostEvery struct {\n\tdelay    time.Duration\n\tlastCall time.Time\n\tmutex    sync.Mutex\n}\n\n// NewAtMostEvery creates a new AtMostEvery, that will run the method at\n// most every given duration.\nfunc NewAtMostEvery(delay time.Duration) *AtMostEvery {\n\treturn &AtMostEvery{\n\t\tdelay: delay,\n\t}\n}\n\n// updateLastCall returns true if the lastCall time has been updated,\n// false if it was too early.\nfunc (s *AtMostEvery) updateLastCall() bool {\n\ts.mutex.Lock()\n\tdefer s.mutex.Unlock()\n\tif time.Since(s.lastCall) < s.delay {\n\t\treturn false\n\t}\n\ts.lastCall = time.Now()\n\treturn true\n}\n\n// Do will run the method if enough time has passed, and return true.\n// Otherwise, it does nothing and returns false.\nfunc (s *AtMostEvery) Do(fn func()) bool {\n\tif !s.updateLastCall() {\n\t\treturn false\n\t}\n\tfn()\n\treturn true\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/internal/buildmanagerinfo.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internal\n\nimport (\n\t\"fmt\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\ntype buildManagerInfoManager struct {\n\tfieldManager Manager\n\tgroupVersion schema.GroupVersion\n\tsubresource  string\n}\n\nvar _ Manager = &buildManagerInfoManager{}\n\n// NewBuildManagerInfoManager creates a new Manager that converts the manager name into a unique identifier\n// combining operation and version for update requests, and just operation for apply requests.\nfunc NewBuildManagerInfoManager(f Manager, gv schema.GroupVersion, subresource string) Manager {\n\treturn &buildManagerInfoManager{\n\t\tfieldManager: f,\n\t\tgroupVersion: gv,\n\t\tsubresource:  subresource,\n\t}\n}\n\n// Update implements Manager.\nfunc (f *buildManagerInfoManager) Update(liveObj, newObj runtime.Object, managed Managed, manager string) (runtime.Object, Managed, error) {\n\tmanager, err := f.buildManagerInfo(manager, metav1.ManagedFieldsOperationUpdate)\n\tif err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"failed to build manager identifier: %v\", err)\n\t}\n\treturn f.fieldManager.Update(liveObj, newObj, managed, manager)\n}\n\n// Apply implements Manager.\nfunc (f *buildManagerInfoManager) Apply(liveObj, appliedObj runtime.Object, managed Managed, manager string, force bool) (runtime.Object, Managed, error) {\n\tmanager, err := f.buildManagerInfo(manager, metav1.ManagedFieldsOperationApply)\n\tif err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"failed to build manager identifier: %v\", err)\n\t}\n\treturn f.fieldManager.Apply(liveObj, appliedObj, managed, manager, force)\n}\n\nfunc (f *buildManagerInfoManager) buildManagerInfo(prefix string, operation metav1.ManagedFieldsOperationType) (string, error) {\n\tmanagerInfo := metav1.ManagedFieldsEntry{\n\t\tManager:     prefix,\n\t\tOperation:   operation,\n\t\tAPIVersion:  f.groupVersion.String(),\n\t\tSubresource: f.subresource,\n\t}\n\tif managerInfo.Manager == \"\" {\n\t\tmanagerInfo.Manager = \"unknown\"\n\t}\n\treturn BuildManagerIdentifier(&managerInfo)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/internal/capmanagers.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internal\n\nimport (\n\t\"fmt\"\n\t\"sort\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n)\n\ntype capManagersManager struct {\n\tfieldManager          Manager\n\tmaxUpdateManagers     int\n\toldUpdatesManagerName string\n}\n\nvar _ Manager = &capManagersManager{}\n\n// NewCapManagersManager creates a new wrapped FieldManager which ensures that the number of managers from updates\n// does not exceed maxUpdateManagers, by merging some of the oldest entries on each update.\nfunc NewCapManagersManager(fieldManager Manager, maxUpdateManagers int) Manager {\n\treturn &capManagersManager{\n\t\tfieldManager:          fieldManager,\n\t\tmaxUpdateManagers:     maxUpdateManagers,\n\t\toldUpdatesManagerName: \"ancient-changes\",\n\t}\n}\n\n// Update implements Manager.\nfunc (f *capManagersManager) Update(liveObj, newObj runtime.Object, managed Managed, manager string) (runtime.Object, Managed, error) {\n\tobject, managed, err := f.fieldManager.Update(liveObj, newObj, managed, manager)\n\tif err != nil {\n\t\treturn object, managed, err\n\t}\n\tif managed, err = f.capUpdateManagers(managed); err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"failed to cap update managers: %v\", err)\n\t}\n\treturn object, managed, nil\n}\n\n// Apply implements Manager.\nfunc (f *capManagersManager) Apply(liveObj, appliedObj runtime.Object, managed Managed, fieldManager string, force bool) (runtime.Object, Managed, error) {\n\treturn f.fieldManager.Apply(liveObj, appliedObj, managed, fieldManager, force)\n}\n\n// capUpdateManagers merges a number of the oldest update entries into versioned buckets,\n// such that the number of entries from updates does not exceed f.maxUpdateManagers.\nfunc (f *capManagersManager) capUpdateManagers(managed Managed) (newManaged Managed, err error) {\n\t// Gather all entries from updates\n\tupdaters := []string{}\n\tfor manager, fields := range managed.Fields() {\n\t\tif !fields.Applied() {\n\t\t\tupdaters = append(updaters, manager)\n\t\t}\n\t}\n\tif len(updaters) <= f.maxUpdateManagers {\n\t\treturn managed, nil\n\t}\n\n\t// If we have more than the maximum, sort the update entries by time, oldest first.\n\tsort.Slice(updaters, func(i, j int) bool {\n\t\tiTime, jTime, iSeconds, jSeconds := managed.Times()[updaters[i]], managed.Times()[updaters[j]], int64(0), int64(0)\n\t\tif iTime != nil {\n\t\t\tiSeconds = iTime.Unix()\n\t\t}\n\t\tif jTime != nil {\n\t\t\tjSeconds = jTime.Unix()\n\t\t}\n\t\tif iSeconds != jSeconds {\n\t\t\treturn iSeconds < jSeconds\n\t\t}\n\t\treturn updaters[i] < updaters[j]\n\t})\n\n\t// Merge the oldest updaters with versioned bucket managers until the number of updaters is under the cap\n\tversionToFirstManager := map[string]string{}\n\tfor i, length := 0, len(updaters); i < len(updaters) && length > f.maxUpdateManagers; i++ {\n\t\tmanager := updaters[i]\n\t\tvs := managed.Fields()[manager]\n\t\ttime := managed.Times()[manager]\n\t\tversion := string(vs.APIVersion())\n\n\t\t// Create a new manager identifier for the versioned bucket entry.\n\t\t// The version for this manager comes from the version of the update being merged into the bucket.\n\t\tbucket, err := BuildManagerIdentifier(&metav1.ManagedFieldsEntry{\n\t\t\tManager:    f.oldUpdatesManagerName,\n\t\t\tOperation:  metav1.ManagedFieldsOperationUpdate,\n\t\t\tAPIVersion: version,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn managed, fmt.Errorf(\"failed to create bucket manager for version %v: %v\", version, err)\n\t\t}\n\n\t\t// Merge the fieldets if this is not the first time the version was seen.\n\t\t// Otherwise just record the manager name in versionToFirstManager\n\t\tif first, ok := versionToFirstManager[version]; ok {\n\t\t\t// If the bucket doesn't exists yet, create one.\n\t\t\tif _, ok := managed.Fields()[bucket]; !ok {\n\t\t\t\ts := managed.Fields()[first]\n\t\t\t\tdelete(managed.Fields(), first)\n\t\t\t\tmanaged.Fields()[bucket] = s\n\t\t\t}\n\n\t\t\tmanaged.Fields()[bucket] = fieldpath.NewVersionedSet(vs.Set().Union(managed.Fields()[bucket].Set()), vs.APIVersion(), vs.Applied())\n\t\t\tdelete(managed.Fields(), manager)\n\t\t\tlength--\n\n\t\t\t// Use the time from the update being merged into the bucket, since it is more recent.\n\t\t\tmanaged.Times()[bucket] = time\n\t\t} else {\n\t\t\tversionToFirstManager[version] = manager\n\t\t}\n\t}\n\n\treturn managed, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/internal/conflict.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internal\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"sort\"\n\t\"strings\"\n\t\"time\"\n\n\t\"k8s.io/apimachinery/pkg/api/errors\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/merge\"\n)\n\n// NewConflictError returns an error including details on the requests apply conflicts\nfunc NewConflictError(conflicts merge.Conflicts) *errors.StatusError {\n\tcauses := []metav1.StatusCause{}\n\tfor _, conflict := range conflicts {\n\t\tcauses = append(causes, metav1.StatusCause{\n\t\t\tType:    metav1.CauseTypeFieldManagerConflict,\n\t\t\tMessage: fmt.Sprintf(\"conflict with %v\", printManager(conflict.Manager)),\n\t\t\tField:   conflict.Path.String(),\n\t\t})\n\t}\n\treturn errors.NewApplyConflict(causes, getConflictMessage(conflicts))\n}\n\nfunc getConflictMessage(conflicts merge.Conflicts) string {\n\tif len(conflicts) == 1 {\n\t\treturn fmt.Sprintf(\"Apply failed with 1 conflict: conflict with %v: %v\", printManager(conflicts[0].Manager), conflicts[0].Path)\n\t}\n\n\tm := map[string][]fieldpath.Path{}\n\tfor _, conflict := range conflicts {\n\t\tm[conflict.Manager] = append(m[conflict.Manager], conflict.Path)\n\t}\n\n\tuniqueManagers := []string{}\n\tfor manager := range m {\n\t\tuniqueManagers = append(uniqueManagers, manager)\n\t}\n\n\t// Print conflicts by sorted managers.\n\tsort.Strings(uniqueManagers)\n\n\tmessages := []string{}\n\tfor _, manager := range uniqueManagers {\n\t\tmessages = append(messages, fmt.Sprintf(\"conflicts with %v:\", printManager(manager)))\n\t\tfor _, path := range m[manager] {\n\t\t\tmessages = append(messages, fmt.Sprintf(\"- %v\", path))\n\t\t}\n\t}\n\treturn fmt.Sprintf(\"Apply failed with %d conflicts: %s\", len(conflicts), strings.Join(messages, \"\\n\"))\n}\n\nfunc printManager(manager string) string {\n\tencodedManager := &metav1.ManagedFieldsEntry{}\n\tif err := json.Unmarshal([]byte(manager), encodedManager); err != nil {\n\t\treturn fmt.Sprintf(\"%q\", manager)\n\t}\n\tmanagerStr := fmt.Sprintf(\"%q\", encodedManager.Manager)\n\tif encodedManager.Subresource != \"\" {\n\t\tmanagerStr = fmt.Sprintf(\"%s with subresource %q\", managerStr, encodedManager.Subresource)\n\t}\n\tif encodedManager.Operation == metav1.ManagedFieldsOperationUpdate {\n\t\tif encodedManager.Time == nil {\n\t\t\treturn fmt.Sprintf(\"%s using %v\", managerStr, encodedManager.APIVersion)\n\t\t}\n\t\treturn fmt.Sprintf(\"%s using %v at %v\", managerStr, encodedManager.APIVersion, encodedManager.Time.UTC().Format(time.RFC3339))\n\t}\n\treturn managerStr\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/internal/fieldmanager.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internal\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"time\"\n\n\t\"k8s.io/apimachinery/pkg/api/meta\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/klog/v2\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/merge\"\n)\n\n// DefaultMaxUpdateManagers defines the default maximum retained number of managedFields entries from updates\n// if the number of update managers exceeds this, the oldest entries will be merged until the number is below the maximum.\n// TODO(jennybuckley): Determine if this is really the best value. Ideally we wouldn't unnecessarily merge too many entries.\nconst DefaultMaxUpdateManagers int = 10\n\n// DefaultTrackOnCreateProbability defines the default probability that the field management of an object\n// starts being tracked from the object's creation, instead of from the first time the object is applied to.\nconst DefaultTrackOnCreateProbability float32 = 1\n\nvar atMostEverySecond = NewAtMostEvery(time.Second)\n\n// FieldManager updates the managed fields and merges applied\n// configurations.\ntype FieldManager struct {\n\tfieldManager Manager\n\tsubresource  string\n}\n\n// NewFieldManager creates a new FieldManager that decodes, manages, then re-encodes managedFields\n// on update and apply requests.\nfunc NewFieldManager(f Manager, subresource string) *FieldManager {\n\treturn &FieldManager{fieldManager: f, subresource: subresource}\n}\n\n// newDefaultFieldManager is a helper function which wraps a Manager with certain default logic.\nfunc NewDefaultFieldManager(f Manager, typeConverter TypeConverter, objectConverter runtime.ObjectConvertor, objectCreater runtime.ObjectCreater, kind schema.GroupVersionKind, subresource string) *FieldManager {\n\treturn NewFieldManager(\n\t\tNewVersionCheckManager(\n\t\t\tNewLastAppliedUpdater(\n\t\t\t\tNewLastAppliedManager(\n\t\t\t\t\tNewProbabilisticSkipNonAppliedManager(\n\t\t\t\t\t\tNewCapManagersManager(\n\t\t\t\t\t\t\tNewBuildManagerInfoManager(\n\t\t\t\t\t\t\t\tNewManagedFieldsUpdater(\n\t\t\t\t\t\t\t\t\tNewStripMetaManager(f),\n\t\t\t\t\t\t\t\t), kind.GroupVersion(), subresource,\n\t\t\t\t\t\t\t), DefaultMaxUpdateManagers,\n\t\t\t\t\t\t), objectCreater, DefaultTrackOnCreateProbability,\n\t\t\t\t\t), typeConverter, objectConverter, kind.GroupVersion(),\n\t\t\t\t),\n\t\t\t), kind,\n\t\t), subresource,\n\t)\n}\n\nfunc decodeLiveOrNew(liveObj, newObj runtime.Object, ignoreManagedFieldsFromRequestObject bool) (Managed, error) {\n\tliveAccessor, err := meta.Accessor(liveObj)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// We take the managedFields of the live object in case the request tries to\n\t// manually set managedFields via a subresource.\n\tif ignoreManagedFieldsFromRequestObject {\n\t\treturn emptyManagedFieldsOnErr(DecodeManagedFields(liveAccessor.GetManagedFields()))\n\t}\n\n\t// If the object doesn't have metadata, we should just return without trying to\n\t// set the managedFields at all, so creates/updates/patches will work normally.\n\tnewAccessor, err := meta.Accessor(newObj)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif isResetManagedFields(newAccessor.GetManagedFields()) {\n\t\treturn NewEmptyManaged(), nil\n\t}\n\n\t// If the managed field is empty or we failed to decode it,\n\t// let's try the live object. This is to prevent clients who\n\t// don't understand managedFields from deleting it accidentally.\n\tmanaged, err := DecodeManagedFields(newAccessor.GetManagedFields())\n\tif err != nil || len(managed.Fields()) == 0 {\n\t\treturn emptyManagedFieldsOnErr(DecodeManagedFields(liveAccessor.GetManagedFields()))\n\t}\n\treturn managed, nil\n}\n\nfunc emptyManagedFieldsOnErr(managed Managed, err error) (Managed, error) {\n\tif err != nil {\n\t\treturn NewEmptyManaged(), nil\n\t}\n\treturn managed, nil\n}\n\n// Update is used when the object has already been merged (non-apply\n// use-case), and simply updates the managed fields in the output\n// object.\nfunc (f *FieldManager) Update(liveObj, newObj runtime.Object, manager string) (object runtime.Object, err error) {\n\t// First try to decode the managed fields provided in the update,\n\t// This is necessary to allow directly updating managed fields.\n\tisSubresource := f.subresource != \"\"\n\tmanaged, err := decodeLiveOrNew(liveObj, newObj, isSubresource)\n\tif err != nil {\n\t\treturn newObj, nil\n\t}\n\n\tRemoveObjectManagedFields(newObj)\n\n\tif object, managed, err = f.fieldManager.Update(liveObj, newObj, managed, manager); err != nil {\n\t\treturn nil, err\n\t}\n\n\tif err = EncodeObjectManagedFields(object, managed); err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to encode managed fields: %v\", err)\n\t}\n\n\treturn object, nil\n}\n\n// UpdateNoErrors is the same as Update, but it will not return\n// errors. If an error happens, the object is returned with\n// managedFields cleared.\nfunc (f *FieldManager) UpdateNoErrors(liveObj, newObj runtime.Object, manager string) runtime.Object {\n\tobj, err := f.Update(liveObj, newObj, manager)\n\tif err != nil {\n\t\tatMostEverySecond.Do(func() {\n\t\t\tns, name := \"unknown\", \"unknown\"\n\t\t\tif accessor, err := meta.Accessor(newObj); err == nil {\n\t\t\t\tns = accessor.GetNamespace()\n\t\t\t\tname = accessor.GetName()\n\t\t\t}\n\n\t\t\tklog.ErrorS(err, \"[SHOULD NOT HAPPEN] failed to update managedFields\", \"versionKind\",\n\t\t\t\tnewObj.GetObjectKind().GroupVersionKind(), \"namespace\", ns, \"name\", name)\n\t\t})\n\t\t// Explicitly remove managedFields on failure, so that\n\t\t// we can't have garbage in it.\n\t\tRemoveObjectManagedFields(newObj)\n\t\treturn newObj\n\t}\n\treturn obj\n}\n\n// Returns true if the managedFields indicate that the user is trying to\n// reset the managedFields, i.e. if the list is non-nil but empty, or if\n// the list has one empty item.\nfunc isResetManagedFields(managedFields []metav1.ManagedFieldsEntry) bool {\n\tif len(managedFields) == 0 {\n\t\treturn managedFields != nil\n\t}\n\n\tif len(managedFields) == 1 {\n\t\treturn reflect.DeepEqual(managedFields[0], metav1.ManagedFieldsEntry{})\n\t}\n\n\treturn false\n}\n\n// Apply is used when server-side apply is called, as it merges the\n// object and updates the managed fields.\nfunc (f *FieldManager) Apply(liveObj, appliedObj runtime.Object, manager string, force bool) (object runtime.Object, err error) {\n\t// If the object doesn't have metadata, apply isn't allowed.\n\taccessor, err := meta.Accessor(liveObj)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"couldn't get accessor: %v\", err)\n\t}\n\n\t// Decode the managed fields in the live object, since it isn't allowed in the patch.\n\tmanaged, err := DecodeManagedFields(accessor.GetManagedFields())\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to decode managed fields: %v\", err)\n\t}\n\n\tobject, managed, err = f.fieldManager.Apply(liveObj, appliedObj, managed, manager, force)\n\tif err != nil {\n\t\tif conflicts, ok := err.(merge.Conflicts); ok {\n\t\t\treturn nil, NewConflictError(conflicts)\n\t\t}\n\t\treturn nil, err\n\t}\n\n\tif err = EncodeObjectManagedFields(object, managed); err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to encode managed fields: %v\", err)\n\t}\n\n\treturn object, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/internal/fields.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internal\n\nimport (\n\t\"bytes\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n)\n\n// EmptyFields represents a set with no paths\n// It looks like metav1.Fields{Raw: []byte(\"{}\")}\nvar EmptyFields = func() metav1.FieldsV1 {\n\tf, err := SetToFields(*fieldpath.NewSet())\n\tif err != nil {\n\t\tpanic(\"should never happen\")\n\t}\n\treturn f\n}()\n\n// FieldsToSet creates a set paths from an input trie of fields\nfunc FieldsToSet(f metav1.FieldsV1) (s fieldpath.Set, err error) {\n\terr = s.FromJSON(bytes.NewReader(f.Raw))\n\treturn s, err\n}\n\n// SetToFields creates a trie of fields from an input set of paths\nfunc SetToFields(s fieldpath.Set) (f metav1.FieldsV1, err error) {\n\tf.Raw, err = s.ToJSON()\n\treturn f, err\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/internal/lastapplied.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internal\n\nimport (\n\t\"fmt\"\n\n\t\"k8s.io/apimachinery/pkg/api/meta\"\n\tapimachineryvalidation \"k8s.io/apimachinery/pkg/api/validation\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// LastAppliedConfigAnnotation is the annotation used to store the previous\n// configuration of a resource for use in a three way diff by UpdateApplyAnnotation.\n//\n// This is a copy of the corev1 annotation since we don't want to depend on the whole package.\nconst LastAppliedConfigAnnotation = \"kubectl.kubernetes.io/last-applied-configuration\"\n\n// SetLastApplied sets the last-applied annotation the given value in\n// the object.\nfunc SetLastApplied(obj runtime.Object, value string) error {\n\taccessor, err := meta.Accessor(obj)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"couldn't get accessor: %v\", err))\n\t}\n\tvar annotations = accessor.GetAnnotations()\n\tif annotations == nil {\n\t\tannotations = map[string]string{}\n\t}\n\tannotations[LastAppliedConfigAnnotation] = value\n\tif err := apimachineryvalidation.ValidateAnnotationsSize(annotations); err != nil {\n\t\tdelete(annotations, LastAppliedConfigAnnotation)\n\t}\n\taccessor.SetAnnotations(annotations)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/internal/lastappliedmanager.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internal\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"k8s.io/apimachinery/pkg/api/meta\"\n\t\"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/merge\"\n)\n\ntype lastAppliedManager struct {\n\tfieldManager    Manager\n\ttypeConverter   TypeConverter\n\tobjectConverter runtime.ObjectConvertor\n\tgroupVersion    schema.GroupVersion\n}\n\nvar _ Manager = &lastAppliedManager{}\n\n// NewLastAppliedManager converts the client-side apply annotation to\n// server-side apply managed fields\nfunc NewLastAppliedManager(fieldManager Manager, typeConverter TypeConverter, objectConverter runtime.ObjectConvertor, groupVersion schema.GroupVersion) Manager {\n\treturn &lastAppliedManager{\n\t\tfieldManager:    fieldManager,\n\t\ttypeConverter:   typeConverter,\n\t\tobjectConverter: objectConverter,\n\t\tgroupVersion:    groupVersion,\n\t}\n}\n\n// Update implements Manager.\nfunc (f *lastAppliedManager) Update(liveObj, newObj runtime.Object, managed Managed, manager string) (runtime.Object, Managed, error) {\n\treturn f.fieldManager.Update(liveObj, newObj, managed, manager)\n}\n\n// Apply will consider the last-applied annotation\n// for upgrading an object managed by client-side apply to server-side apply\n// without conflicts.\nfunc (f *lastAppliedManager) Apply(liveObj, newObj runtime.Object, managed Managed, manager string, force bool) (runtime.Object, Managed, error) {\n\tnewLiveObj, newManaged, newErr := f.fieldManager.Apply(liveObj, newObj, managed, manager, force)\n\t// Upgrade the client-side apply annotation only from kubectl server-side-apply.\n\t// To opt-out of this behavior, users may specify a different field manager.\n\tif manager != \"kubectl\" {\n\t\treturn newLiveObj, newManaged, newErr\n\t}\n\n\t// Check if we have conflicts\n\tif newErr == nil {\n\t\treturn newLiveObj, newManaged, newErr\n\t}\n\tconflicts, ok := newErr.(merge.Conflicts)\n\tif !ok {\n\t\treturn newLiveObj, newManaged, newErr\n\t}\n\tconflictSet := conflictsToSet(conflicts)\n\n\t// Check if conflicts are allowed due to client-side apply,\n\t// and if so, then force apply\n\tallowedConflictSet, err := f.allowedConflictsFromLastApplied(liveObj)\n\tif err != nil {\n\t\treturn newLiveObj, newManaged, newErr\n\t}\n\tif !conflictSet.Difference(allowedConflictSet).Empty() {\n\t\tnewConflicts := conflictsDifference(conflicts, allowedConflictSet)\n\t\treturn newLiveObj, newManaged, newConflicts\n\t}\n\n\treturn f.fieldManager.Apply(liveObj, newObj, managed, manager, true)\n}\n\nfunc (f *lastAppliedManager) allowedConflictsFromLastApplied(liveObj runtime.Object) (*fieldpath.Set, error) {\n\tvar accessor, err = meta.Accessor(liveObj)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"couldn't get accessor: %v\", err))\n\t}\n\n\t// If there is no client-side apply annotation, then there is nothing to do\n\tvar annotations = accessor.GetAnnotations()\n\tif annotations == nil {\n\t\treturn nil, fmt.Errorf(\"no last applied annotation\")\n\t}\n\tvar lastApplied, ok = annotations[LastAppliedConfigAnnotation]\n\tif !ok || lastApplied == \"\" {\n\t\treturn nil, fmt.Errorf(\"no last applied annotation\")\n\t}\n\n\tliveObjVersioned, err := f.objectConverter.ConvertToVersion(liveObj, f.groupVersion)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to convert live obj to versioned: %v\", err)\n\t}\n\n\tliveObjTyped, err := f.typeConverter.ObjectToTyped(liveObjVersioned)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to convert live obj to typed: %v\", err)\n\t}\n\n\tvar lastAppliedObj = &unstructured.Unstructured{Object: map[string]interface{}{}}\n\terr = json.Unmarshal([]byte(lastApplied), lastAppliedObj)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to decode last applied obj: %v in '%s'\", err, lastApplied)\n\t}\n\n\tif lastAppliedObj.GetAPIVersion() != f.groupVersion.String() {\n\t\treturn nil, fmt.Errorf(\"expected version of last applied to match live object '%s', but got '%s': %v\", f.groupVersion.String(), lastAppliedObj.GetAPIVersion(), err)\n\t}\n\n\tlastAppliedObjTyped, err := f.typeConverter.ObjectToTyped(lastAppliedObj)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to convert last applied to typed: %v\", err)\n\t}\n\n\tlastAppliedObjFieldSet, err := lastAppliedObjTyped.ToFieldSet()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to create fieldset for last applied object: %v\", err)\n\t}\n\n\tcomparison, err := lastAppliedObjTyped.Compare(liveObjTyped)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to compare last applied object and live object: %v\", err)\n\t}\n\n\t// Remove fields in last applied that are different, added, or missing in\n\t// the live object.\n\t// Because last-applied fields don't match the live object fields,\n\t// then we don't own these fields.\n\tlastAppliedObjFieldSet = lastAppliedObjFieldSet.\n\t\tDifference(comparison.Modified).\n\t\tDifference(comparison.Added).\n\t\tDifference(comparison.Removed)\n\n\treturn lastAppliedObjFieldSet, nil\n}\n\n// TODO: replace with merge.Conflicts.ToSet()\nfunc conflictsToSet(conflicts merge.Conflicts) *fieldpath.Set {\n\tconflictSet := fieldpath.NewSet()\n\tfor _, conflict := range []merge.Conflict(conflicts) {\n\t\tconflictSet.Insert(conflict.Path)\n\t}\n\treturn conflictSet\n}\n\nfunc conflictsDifference(conflicts merge.Conflicts, s *fieldpath.Set) merge.Conflicts {\n\tnewConflicts := []merge.Conflict{}\n\tfor _, conflict := range []merge.Conflict(conflicts) {\n\t\tif !s.Has(conflict.Path) {\n\t\t\tnewConflicts = append(newConflicts, conflict)\n\t\t}\n\t}\n\treturn newConflicts\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/internal/lastappliedupdater.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internal\n\nimport (\n\t\"fmt\"\n\n\t\"k8s.io/apimachinery/pkg/api/meta\"\n\t\"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n)\n\ntype lastAppliedUpdater struct {\n\tfieldManager Manager\n}\n\nvar _ Manager = &lastAppliedUpdater{}\n\n// NewLastAppliedUpdater sets the client-side apply annotation up to date with\n// server-side apply managed fields\nfunc NewLastAppliedUpdater(fieldManager Manager) Manager {\n\treturn &lastAppliedUpdater{\n\t\tfieldManager: fieldManager,\n\t}\n}\n\n// Update implements Manager.\nfunc (f *lastAppliedUpdater) Update(liveObj, newObj runtime.Object, managed Managed, manager string) (runtime.Object, Managed, error) {\n\treturn f.fieldManager.Update(liveObj, newObj, managed, manager)\n}\n\n// server-side apply managed fields\nfunc (f *lastAppliedUpdater) Apply(liveObj, newObj runtime.Object, managed Managed, manager string, force bool) (runtime.Object, Managed, error) {\n\tliveObj, managed, err := f.fieldManager.Apply(liveObj, newObj, managed, manager, force)\n\tif err != nil {\n\t\treturn liveObj, managed, err\n\t}\n\n\t// Sync the client-side apply annotation only from kubectl server-side apply.\n\t// To opt-out of this behavior, users may specify a different field manager.\n\t//\n\t// If the client-side apply annotation doesn't exist,\n\t// then continue because we have no annotation to update\n\tif manager == \"kubectl\" && hasLastApplied(liveObj) {\n\t\tlastAppliedValue, err := buildLastApplied(newObj)\n\t\tif err != nil {\n\t\t\treturn nil, nil, fmt.Errorf(\"failed to build last-applied annotation: %v\", err)\n\t\t}\n\t\terr = SetLastApplied(liveObj, lastAppliedValue)\n\t\tif err != nil {\n\t\t\treturn nil, nil, fmt.Errorf(\"failed to set last-applied annotation: %v\", err)\n\t\t}\n\t}\n\treturn liveObj, managed, err\n}\n\nfunc hasLastApplied(obj runtime.Object) bool {\n\tvar accessor, err = meta.Accessor(obj)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"couldn't get accessor: %v\", err))\n\t}\n\tvar annotations = accessor.GetAnnotations()\n\tif annotations == nil {\n\t\treturn false\n\t}\n\tlastApplied, ok := annotations[LastAppliedConfigAnnotation]\n\treturn ok && len(lastApplied) > 0\n}\n\nfunc buildLastApplied(obj runtime.Object) (string, error) {\n\tobj = obj.DeepCopyObject()\n\n\tvar accessor, err = meta.Accessor(obj)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"couldn't get accessor: %v\", err))\n\t}\n\n\t// Remove the annotation from the object before encoding the object\n\tvar annotations = accessor.GetAnnotations()\n\tdelete(annotations, LastAppliedConfigAnnotation)\n\taccessor.SetAnnotations(annotations)\n\n\tlastApplied, err := runtime.Encode(unstructured.UnstructuredJSONScheme, obj)\n\tif err != nil {\n\t\treturn \"\", fmt.Errorf(\"couldn't encode object into last applied annotation: %v\", err)\n\t}\n\treturn string(lastApplied), nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/internal/managedfields.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internal\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"sort\"\n\n\t\"k8s.io/apimachinery/pkg/api/meta\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n)\n\n// ManagedInterface groups a fieldpath.ManagedFields together with the timestamps associated with each operation.\ntype ManagedInterface interface {\n\t// Fields gets the fieldpath.ManagedFields.\n\tFields() fieldpath.ManagedFields\n\n\t// Times gets the timestamps associated with each operation.\n\tTimes() map[string]*metav1.Time\n}\n\ntype managedStruct struct {\n\tfields fieldpath.ManagedFields\n\ttimes  map[string]*metav1.Time\n}\n\nvar _ ManagedInterface = &managedStruct{}\n\n// Fields implements ManagedInterface.\nfunc (m *managedStruct) Fields() fieldpath.ManagedFields {\n\treturn m.fields\n}\n\n// Times implements ManagedInterface.\nfunc (m *managedStruct) Times() map[string]*metav1.Time {\n\treturn m.times\n}\n\n// NewEmptyManaged creates an empty ManagedInterface.\nfunc NewEmptyManaged() ManagedInterface {\n\treturn NewManaged(fieldpath.ManagedFields{}, map[string]*metav1.Time{})\n}\n\n// NewManaged creates a ManagedInterface from a fieldpath.ManagedFields and the timestamps associated with each operation.\nfunc NewManaged(f fieldpath.ManagedFields, t map[string]*metav1.Time) ManagedInterface {\n\treturn &managedStruct{\n\t\tfields: f,\n\t\ttimes:  t,\n\t}\n}\n\n// RemoveObjectManagedFields removes the ManagedFields from the object\n// before we merge so that it doesn't appear in the ManagedFields\n// recursively.\nfunc RemoveObjectManagedFields(obj runtime.Object) {\n\taccessor, err := meta.Accessor(obj)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"couldn't get accessor: %v\", err))\n\t}\n\taccessor.SetManagedFields(nil)\n}\n\n// EncodeObjectManagedFields converts and stores the fieldpathManagedFields into the objects ManagedFields\nfunc EncodeObjectManagedFields(obj runtime.Object, managed ManagedInterface) error {\n\taccessor, err := meta.Accessor(obj)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"couldn't get accessor: %v\", err))\n\t}\n\n\tencodedManagedFields, err := encodeManagedFields(managed)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to convert back managed fields to API: %v\", err)\n\t}\n\taccessor.SetManagedFields(encodedManagedFields)\n\n\treturn nil\n}\n\n// DecodeManagedFields converts ManagedFields from the wire format (api format)\n// to the format used by sigs.k8s.io/structured-merge-diff\nfunc DecodeManagedFields(encodedManagedFields []metav1.ManagedFieldsEntry) (ManagedInterface, error) {\n\tmanaged := managedStruct{}\n\tmanaged.fields = make(fieldpath.ManagedFields, len(encodedManagedFields))\n\tmanaged.times = make(map[string]*metav1.Time, len(encodedManagedFields))\n\n\tfor i, encodedVersionedSet := range encodedManagedFields {\n\t\tswitch encodedVersionedSet.Operation {\n\t\tcase metav1.ManagedFieldsOperationApply, metav1.ManagedFieldsOperationUpdate:\n\t\tdefault:\n\t\t\treturn nil, fmt.Errorf(\"operation must be `Apply` or `Update`\")\n\t\t}\n\t\tif len(encodedVersionedSet.APIVersion) < 1 {\n\t\t\treturn nil, fmt.Errorf(\"apiVersion must not be empty\")\n\t\t}\n\t\tswitch encodedVersionedSet.FieldsType {\n\t\tcase \"FieldsV1\":\n\t\t\t// Valid case.\n\t\tcase \"\":\n\t\t\treturn nil, fmt.Errorf(\"missing fieldsType in managed fields entry %d\", i)\n\t\tdefault:\n\t\t\treturn nil, fmt.Errorf(\"invalid fieldsType %q in managed fields entry %d\", encodedVersionedSet.FieldsType, i)\n\t\t}\n\t\tmanager, err := BuildManagerIdentifier(&encodedVersionedSet)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"error decoding manager from %v: %v\", encodedVersionedSet, err)\n\t\t}\n\t\tmanaged.fields[manager], err = decodeVersionedSet(&encodedVersionedSet)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"error decoding versioned set from %v: %v\", encodedVersionedSet, err)\n\t\t}\n\t\tmanaged.times[manager] = encodedVersionedSet.Time\n\t}\n\treturn &managed, nil\n}\n\n// BuildManagerIdentifier creates a manager identifier string from a ManagedFieldsEntry\nfunc BuildManagerIdentifier(encodedManager *metav1.ManagedFieldsEntry) (manager string, err error) {\n\tencodedManagerCopy := *encodedManager\n\n\t// Never include fields type in the manager identifier\n\tencodedManagerCopy.FieldsType = \"\"\n\n\t// Never include the fields in the manager identifier\n\tencodedManagerCopy.FieldsV1 = nil\n\n\t// Never include the time in the manager identifier\n\tencodedManagerCopy.Time = nil\n\n\t// For appliers, don't include the APIVersion in the manager identifier,\n\t// so it will always have the same manager identifier each time it applied.\n\tif encodedManager.Operation == metav1.ManagedFieldsOperationApply {\n\t\tencodedManagerCopy.APIVersion = \"\"\n\t}\n\n\t// Use the remaining fields to build the manager identifier\n\tb, err := json.Marshal(&encodedManagerCopy)\n\tif err != nil {\n\t\treturn \"\", fmt.Errorf(\"error marshalling manager identifier: %v\", err)\n\t}\n\n\treturn string(b), nil\n}\n\nfunc decodeVersionedSet(encodedVersionedSet *metav1.ManagedFieldsEntry) (versionedSet fieldpath.VersionedSet, err error) {\n\tfields := EmptyFields\n\tif encodedVersionedSet.FieldsV1 != nil {\n\t\tfields = *encodedVersionedSet.FieldsV1\n\t}\n\tset, err := FieldsToSet(fields)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error decoding set: %v\", err)\n\t}\n\treturn fieldpath.NewVersionedSet(&set, fieldpath.APIVersion(encodedVersionedSet.APIVersion), encodedVersionedSet.Operation == metav1.ManagedFieldsOperationApply), nil\n}\n\n// encodeManagedFields converts ManagedFields from the format used by\n// sigs.k8s.io/structured-merge-diff to the wire format (api format)\nfunc encodeManagedFields(managed ManagedInterface) (encodedManagedFields []metav1.ManagedFieldsEntry, err error) {\n\tif len(managed.Fields()) == 0 {\n\t\treturn nil, nil\n\t}\n\tencodedManagedFields = []metav1.ManagedFieldsEntry{}\n\tfor manager := range managed.Fields() {\n\t\tversionedSet := managed.Fields()[manager]\n\t\tv, err := encodeManagerVersionedSet(manager, versionedSet)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"error encoding versioned set for %v: %v\", manager, err)\n\t\t}\n\t\tif t, ok := managed.Times()[manager]; ok {\n\t\t\tv.Time = t\n\t\t}\n\t\tencodedManagedFields = append(encodedManagedFields, *v)\n\t}\n\treturn sortEncodedManagedFields(encodedManagedFields)\n}\n\nfunc sortEncodedManagedFields(encodedManagedFields []metav1.ManagedFieldsEntry) (sortedManagedFields []metav1.ManagedFieldsEntry, err error) {\n\tsort.Slice(encodedManagedFields, func(i, j int) bool {\n\t\tp, q := encodedManagedFields[i], encodedManagedFields[j]\n\n\t\tif p.Operation != q.Operation {\n\t\t\treturn p.Operation < q.Operation\n\t\t}\n\n\t\tpSeconds, qSeconds := int64(0), int64(0)\n\t\tif p.Time != nil {\n\t\t\tpSeconds = p.Time.Unix()\n\t\t}\n\t\tif q.Time != nil {\n\t\t\tqSeconds = q.Time.Unix()\n\t\t}\n\t\tif pSeconds != qSeconds {\n\t\t\treturn pSeconds < qSeconds\n\t\t}\n\n\t\tif p.Manager != q.Manager {\n\t\t\treturn p.Manager < q.Manager\n\t\t}\n\n\t\tif p.APIVersion != q.APIVersion {\n\t\t\treturn p.APIVersion < q.APIVersion\n\t\t}\n\t\treturn p.Subresource < q.Subresource\n\t})\n\n\treturn encodedManagedFields, nil\n}\n\nfunc encodeManagerVersionedSet(manager string, versionedSet fieldpath.VersionedSet) (encodedVersionedSet *metav1.ManagedFieldsEntry, err error) {\n\tencodedVersionedSet = &metav1.ManagedFieldsEntry{}\n\n\t// Get as many fields as we can from the manager identifier\n\terr = json.Unmarshal([]byte(manager), encodedVersionedSet)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error unmarshalling manager identifier %v: %v\", manager, err)\n\t}\n\n\t// Get the APIVersion, Operation, and Fields from the VersionedSet\n\tencodedVersionedSet.APIVersion = string(versionedSet.APIVersion())\n\tif versionedSet.Applied() {\n\t\tencodedVersionedSet.Operation = metav1.ManagedFieldsOperationApply\n\t}\n\tencodedVersionedSet.FieldsType = \"FieldsV1\"\n\tfields, err := SetToFields(*versionedSet.Set())\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error encoding set: %v\", err)\n\t}\n\tencodedVersionedSet.FieldsV1 = &fields\n\n\treturn encodedVersionedSet, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/internal/managedfieldsupdater.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internal\n\nimport (\n\t\"time\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n)\n\ntype managedFieldsUpdater struct {\n\tfieldManager Manager\n}\n\nvar _ Manager = &managedFieldsUpdater{}\n\n// NewManagedFieldsUpdater is responsible for updating the managedfields\n// in the object, updating the time of the operation as necessary. For\n// updates, it uses a hard-coded manager to detect if things have\n// changed, and swaps back the correct manager after the operation is\n// done.\nfunc NewManagedFieldsUpdater(fieldManager Manager) Manager {\n\treturn &managedFieldsUpdater{\n\t\tfieldManager: fieldManager,\n\t}\n}\n\n// Update implements Manager.\nfunc (f *managedFieldsUpdater) Update(liveObj, newObj runtime.Object, managed Managed, manager string) (runtime.Object, Managed, error) {\n\tself := \"current-operation\"\n\tobject, managed, err := f.fieldManager.Update(liveObj, newObj, managed, self)\n\tif err != nil {\n\t\treturn object, managed, err\n\t}\n\n\t// If the current operation took any fields from anything, it means the object changed,\n\t// so update the timestamp of the managedFieldsEntry and merge with any previous updates from the same manager\n\tif vs, ok := managed.Fields()[self]; ok {\n\t\tdelete(managed.Fields(), self)\n\n\t\tif previous, ok := managed.Fields()[manager]; ok {\n\t\t\tmanaged.Fields()[manager] = fieldpath.NewVersionedSet(vs.Set().Union(previous.Set()), vs.APIVersion(), vs.Applied())\n\t\t} else {\n\t\t\tmanaged.Fields()[manager] = vs\n\t\t}\n\n\t\tmanaged.Times()[manager] = &metav1.Time{Time: time.Now().UTC()}\n\t}\n\n\treturn object, managed, nil\n}\n\n// Apply implements Manager.\nfunc (f *managedFieldsUpdater) Apply(liveObj, appliedObj runtime.Object, managed Managed, fieldManager string, force bool) (runtime.Object, Managed, error) {\n\tobject, managed, err := f.fieldManager.Apply(liveObj, appliedObj, managed, fieldManager, force)\n\tif err != nil {\n\t\treturn object, managed, err\n\t}\n\tif object != nil {\n\t\tmanaged.Times()[fieldManager] = &metav1.Time{Time: time.Now().UTC()}\n\t} else {\n\t\tobject = liveObj.DeepCopyObject()\n\t\tRemoveObjectManagedFields(object)\n\t}\n\treturn object, managed, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/internal/manager.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internal\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n)\n\n// Managed groups a fieldpath.ManagedFields together with the timestamps associated with each operation.\ntype Managed interface {\n\t// Fields gets the fieldpath.ManagedFields.\n\tFields() fieldpath.ManagedFields\n\n\t// Times gets the timestamps associated with each operation.\n\tTimes() map[string]*metav1.Time\n}\n\n// Manager updates the managed fields and merges applied configurations.\ntype Manager interface {\n\t// Update is used when the object has already been merged (non-apply\n\t// use-case), and simply updates the managed fields in the output\n\t// object.\n\t//  * `liveObj` is not mutated by this function\n\t//  * `newObj` may be mutated by this function\n\t// Returns the new object with managedFields removed, and the object's new\n\t// proposed managedFields separately.\n\tUpdate(liveObj, newObj runtime.Object, managed Managed, manager string) (runtime.Object, Managed, error)\n\n\t// Apply is used when server-side apply is called, as it merges the\n\t// object and updates the managed fields.\n\t//  * `liveObj` is not mutated by this function\n\t//  * `newObj` may be mutated by this function\n\t// Returns the new object with managedFields removed, and the object's new\n\t// proposed managedFields separately.\n\tApply(liveObj, appliedObj runtime.Object, managed Managed, fieldManager string, force bool) (runtime.Object, Managed, error)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/internal/pathelement.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internal\n\nimport (\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/value\"\n)\n\nconst (\n\t// Field indicates that the content of this path element is a field's name\n\tField = \"f\"\n\n\t// Value indicates that the content of this path element is a field's value\n\tValue = \"v\"\n\n\t// Index indicates that the content of this path element is an index in an array\n\tIndex = \"i\"\n\n\t// Key indicates that the content of this path element is a key value map\n\tKey = \"k\"\n\n\t// Separator separates the type of a path element from the contents\n\tSeparator = \":\"\n)\n\n// NewPathElement parses a serialized path element\nfunc NewPathElement(s string) (fieldpath.PathElement, error) {\n\tsplit := strings.SplitN(s, Separator, 2)\n\tif len(split) < 2 {\n\t\treturn fieldpath.PathElement{}, fmt.Errorf(\"missing colon: %v\", s)\n\t}\n\tswitch split[0] {\n\tcase Field:\n\t\treturn fieldpath.PathElement{\n\t\t\tFieldName: &split[1],\n\t\t}, nil\n\tcase Value:\n\t\tval, err := value.FromJSON([]byte(split[1]))\n\t\tif err != nil {\n\t\t\treturn fieldpath.PathElement{}, err\n\t\t}\n\t\treturn fieldpath.PathElement{\n\t\t\tValue: &val,\n\t\t}, nil\n\tcase Index:\n\t\ti, err := strconv.Atoi(split[1])\n\t\tif err != nil {\n\t\t\treturn fieldpath.PathElement{}, err\n\t\t}\n\t\treturn fieldpath.PathElement{\n\t\t\tIndex: &i,\n\t\t}, nil\n\tcase Key:\n\t\tkv := map[string]json.RawMessage{}\n\t\terr := json.Unmarshal([]byte(split[1]), &kv)\n\t\tif err != nil {\n\t\t\treturn fieldpath.PathElement{}, err\n\t\t}\n\t\tfields := value.FieldList{}\n\t\tfor k, v := range kv {\n\t\t\tb, err := json.Marshal(v)\n\t\t\tif err != nil {\n\t\t\t\treturn fieldpath.PathElement{}, err\n\t\t\t}\n\t\t\tval, err := value.FromJSON(b)\n\t\t\tif err != nil {\n\t\t\t\treturn fieldpath.PathElement{}, err\n\t\t\t}\n\n\t\t\tfields = append(fields, value.Field{\n\t\t\t\tName:  k,\n\t\t\t\tValue: val,\n\t\t\t})\n\t\t}\n\t\treturn fieldpath.PathElement{\n\t\t\tKey: &fields,\n\t\t}, nil\n\tdefault:\n\t\t// Ignore unknown key types\n\t\treturn fieldpath.PathElement{}, nil\n\t}\n}\n\n// PathElementString serializes a path element\nfunc PathElementString(pe fieldpath.PathElement) (string, error) {\n\tswitch {\n\tcase pe.FieldName != nil:\n\t\treturn Field + Separator + *pe.FieldName, nil\n\tcase pe.Key != nil:\n\t\tkv := map[string]json.RawMessage{}\n\t\tfor _, k := range *pe.Key {\n\t\t\tb, err := value.ToJSON(k.Value)\n\t\t\tif err != nil {\n\t\t\t\treturn \"\", err\n\t\t\t}\n\t\t\tm := json.RawMessage{}\n\t\t\terr = json.Unmarshal(b, &m)\n\t\t\tif err != nil {\n\t\t\t\treturn \"\", err\n\t\t\t}\n\t\t\tkv[k.Name] = m\n\t\t}\n\t\tb, err := json.Marshal(kv)\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\treturn Key + \":\" + string(b), nil\n\tcase pe.Value != nil:\n\t\tb, err := value.ToJSON(*pe.Value)\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\treturn Value + \":\" + string(b), nil\n\tcase pe.Index != nil:\n\t\treturn Index + \":\" + strconv.Itoa(*pe.Index), nil\n\tdefault:\n\t\treturn \"\", errors.New(\"Invalid type of path element\")\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/internal/skipnonapplied.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internal\n\nimport (\n\t\"fmt\"\n\t\"math/rand\"\n\n\t\"k8s.io/apimachinery/pkg/api/meta\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n)\n\ntype skipNonAppliedManager struct {\n\tfieldManager           Manager\n\tobjectCreater          runtime.ObjectCreater\n\tbeforeApplyManagerName string\n\tprobability            float32\n}\n\nvar _ Manager = &skipNonAppliedManager{}\n\n// NewSkipNonAppliedManager creates a new wrapped FieldManager that only starts tracking managers after the first apply.\nfunc NewSkipNonAppliedManager(fieldManager Manager, objectCreater runtime.ObjectCreater) Manager {\n\treturn NewProbabilisticSkipNonAppliedManager(fieldManager, objectCreater, 0.0)\n}\n\n// NewProbabilisticSkipNonAppliedManager creates a new wrapped FieldManager that starts tracking managers after the first apply,\n// or starts tracking on create with p probability.\nfunc NewProbabilisticSkipNonAppliedManager(fieldManager Manager, objectCreater runtime.ObjectCreater, p float32) Manager {\n\treturn &skipNonAppliedManager{\n\t\tfieldManager:           fieldManager,\n\t\tobjectCreater:          objectCreater,\n\t\tbeforeApplyManagerName: \"before-first-apply\",\n\t\tprobability:            p,\n\t}\n}\n\n// Update implements Manager.\nfunc (f *skipNonAppliedManager) Update(liveObj, newObj runtime.Object, managed Managed, manager string) (runtime.Object, Managed, error) {\n\taccessor, err := meta.Accessor(liveObj)\n\tif err != nil {\n\t\treturn newObj, managed, nil\n\t}\n\n\t// If managed fields is empty, we need to determine whether to skip tracking managed fields.\n\tif len(managed.Fields()) == 0 {\n\t\t// Check if the operation is a create, by checking whether lastObj's UID is empty.\n\t\t// If the operation is create, P(tracking managed fields) = f.probability\n\t\t// If the operation is update, skip tracking managed fields, since we already know managed fields is empty.\n\t\tif len(accessor.GetUID()) == 0 {\n\t\t\tif f.probability <= rand.Float32() {\n\t\t\t\treturn newObj, managed, nil\n\t\t\t}\n\t\t} else {\n\t\t\treturn newObj, managed, nil\n\t\t}\n\t}\n\treturn f.fieldManager.Update(liveObj, newObj, managed, manager)\n}\n\n// Apply implements Manager.\nfunc (f *skipNonAppliedManager) Apply(liveObj, appliedObj runtime.Object, managed Managed, fieldManager string, force bool) (runtime.Object, Managed, error) {\n\tif len(managed.Fields()) == 0 {\n\t\tgvk := appliedObj.GetObjectKind().GroupVersionKind()\n\t\temptyObj, err := f.objectCreater.New(gvk)\n\t\tif err != nil {\n\t\t\treturn nil, nil, fmt.Errorf(\"failed to create empty object of type %v: %v\", gvk, err)\n\t\t}\n\t\tliveObj, managed, err = f.fieldManager.Update(emptyObj, liveObj, managed, f.beforeApplyManagerName)\n\t\tif err != nil {\n\t\t\treturn nil, nil, fmt.Errorf(\"failed to create manager for existing fields: %v\", err)\n\t\t}\n\t}\n\treturn f.fieldManager.Apply(liveObj, appliedObj, managed, fieldManager, force)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/internal/stripmeta.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internal\n\nimport (\n\t\"fmt\"\n\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n)\n\ntype stripMetaManager struct {\n\tfieldManager Manager\n\n\t// stripSet is the list of fields that should never be part of a mangedFields.\n\tstripSet *fieldpath.Set\n}\n\nvar _ Manager = &stripMetaManager{}\n\n// NewStripMetaManager creates a new Manager that strips metadata and typemeta fields from the manager's fieldset.\nfunc NewStripMetaManager(fieldManager Manager) Manager {\n\treturn &stripMetaManager{\n\t\tfieldManager: fieldManager,\n\t\tstripSet: fieldpath.NewSet(\n\t\t\tfieldpath.MakePathOrDie(\"apiVersion\"),\n\t\t\tfieldpath.MakePathOrDie(\"kind\"),\n\t\t\tfieldpath.MakePathOrDie(\"metadata\"),\n\t\t\tfieldpath.MakePathOrDie(\"metadata\", \"name\"),\n\t\t\tfieldpath.MakePathOrDie(\"metadata\", \"namespace\"),\n\t\t\tfieldpath.MakePathOrDie(\"metadata\", \"creationTimestamp\"),\n\t\t\tfieldpath.MakePathOrDie(\"metadata\", \"selfLink\"),\n\t\t\tfieldpath.MakePathOrDie(\"metadata\", \"uid\"),\n\t\t\tfieldpath.MakePathOrDie(\"metadata\", \"clusterName\"),\n\t\t\tfieldpath.MakePathOrDie(\"metadata\", \"generation\"),\n\t\t\tfieldpath.MakePathOrDie(\"metadata\", \"managedFields\"),\n\t\t\tfieldpath.MakePathOrDie(\"metadata\", \"resourceVersion\"),\n\t\t),\n\t}\n}\n\n// Update implements Manager.\nfunc (f *stripMetaManager) Update(liveObj, newObj runtime.Object, managed Managed, manager string) (runtime.Object, Managed, error) {\n\tnewObj, managed, err := f.fieldManager.Update(liveObj, newObj, managed, manager)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\tf.stripFields(managed.Fields(), manager)\n\treturn newObj, managed, nil\n}\n\n// Apply implements Manager.\nfunc (f *stripMetaManager) Apply(liveObj, appliedObj runtime.Object, managed Managed, manager string, force bool) (runtime.Object, Managed, error) {\n\tnewObj, managed, err := f.fieldManager.Apply(liveObj, appliedObj, managed, manager, force)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\tf.stripFields(managed.Fields(), manager)\n\treturn newObj, managed, nil\n}\n\n// stripFields removes a predefined set of paths found in typed from managed\nfunc (f *stripMetaManager) stripFields(managed fieldpath.ManagedFields, manager string) {\n\tvs, ok := managed[manager]\n\tif ok {\n\t\tif vs == nil {\n\t\t\tpanic(fmt.Sprintf(\"Found unexpected nil manager which should never happen: %s\", manager))\n\t\t}\n\t\tnewSet := vs.Set().Difference(f.stripSet)\n\t\tif newSet.Empty() {\n\t\t\tdelete(managed, manager)\n\t\t} else {\n\t\t\tmanaged[manager] = fieldpath.NewVersionedSet(newSet, vs.APIVersion(), vs.Applied())\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/internal/structuredmerge.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internal\n\nimport (\n\t\"fmt\"\n\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/merge\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/typed\"\n\n\t\"k8s.io/apimachinery/pkg/api/errors\"\n\t\"k8s.io/apimachinery/pkg/api/meta\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\ntype structuredMergeManager struct {\n\ttypeConverter   TypeConverter\n\tobjectConverter runtime.ObjectConvertor\n\tobjectDefaulter runtime.ObjectDefaulter\n\tgroupVersion    schema.GroupVersion\n\thubVersion      schema.GroupVersion\n\tupdater         merge.Updater\n}\n\nvar _ Manager = &structuredMergeManager{}\n\n// NewStructuredMergeManager creates a new Manager that merges apply requests\n// and update managed fields for other types of requests.\nfunc NewStructuredMergeManager(typeConverter TypeConverter, objectConverter runtime.ObjectConvertor, objectDefaulter runtime.ObjectDefaulter, gv schema.GroupVersion, hub schema.GroupVersion, resetFields map[fieldpath.APIVersion]fieldpath.Filter) (Manager, error) {\n\tif typeConverter == nil {\n\t\treturn nil, fmt.Errorf(\"typeconverter must not be nil\")\n\t}\n\treturn &structuredMergeManager{\n\t\ttypeConverter:   typeConverter,\n\t\tobjectConverter: objectConverter,\n\t\tobjectDefaulter: objectDefaulter,\n\t\tgroupVersion:    gv,\n\t\thubVersion:      hub,\n\t\tupdater: merge.Updater{\n\t\t\tConverter:    newVersionConverter(typeConverter, objectConverter, hub), // This is the converter provided to SMD from k8s\n\t\t\tIgnoreFilter: resetFields,\n\t\t},\n\t}, nil\n}\n\n// NewCRDStructuredMergeManager creates a new Manager specifically for\n// CRDs. This allows for the possibility of fields which are not defined\n// in models, as well as having no models defined at all.\nfunc NewCRDStructuredMergeManager(typeConverter TypeConverter, objectConverter runtime.ObjectConvertor, objectDefaulter runtime.ObjectDefaulter, gv schema.GroupVersion, hub schema.GroupVersion, resetFields map[fieldpath.APIVersion]fieldpath.Filter) (_ Manager, err error) {\n\treturn &structuredMergeManager{\n\t\ttypeConverter:   typeConverter,\n\t\tobjectConverter: objectConverter,\n\t\tobjectDefaulter: objectDefaulter,\n\t\tgroupVersion:    gv,\n\t\thubVersion:      hub,\n\t\tupdater: merge.Updater{\n\t\t\tConverter:    newCRDVersionConverter(typeConverter, objectConverter, hub),\n\t\t\tIgnoreFilter: resetFields,\n\t\t},\n\t}, nil\n}\n\nfunc objectGVKNN(obj runtime.Object) string {\n\tname := \"<unknown>\"\n\tnamespace := \"<unknown>\"\n\tif accessor, err := meta.Accessor(obj); err == nil {\n\t\tname = accessor.GetName()\n\t\tnamespace = accessor.GetNamespace()\n\t}\n\n\treturn fmt.Sprintf(\"%v/%v; %v\", namespace, name, obj.GetObjectKind().GroupVersionKind())\n}\n\n// Update implements Manager.\nfunc (f *structuredMergeManager) Update(liveObj, newObj runtime.Object, managed Managed, manager string) (runtime.Object, Managed, error) {\n\tnewObjVersioned, err := f.toVersioned(newObj)\n\tif err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"failed to convert new object (%v) to proper version (%v): %v\", objectGVKNN(newObj), f.groupVersion, err)\n\t}\n\tliveObjVersioned, err := f.toVersioned(liveObj)\n\tif err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"failed to convert live object (%v) to proper version: %v\", objectGVKNN(liveObj), err)\n\t}\n\tnewObjTyped, err := f.typeConverter.ObjectToTyped(newObjVersioned, typed.AllowDuplicates)\n\tif err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"failed to convert new object (%v) to smd typed: %v\", objectGVKNN(newObjVersioned), err)\n\t}\n\tliveObjTyped, err := f.typeConverter.ObjectToTyped(liveObjVersioned, typed.AllowDuplicates)\n\tif err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"failed to convert live object (%v) to smd typed: %v\", objectGVKNN(liveObjVersioned), err)\n\t}\n\tapiVersion := fieldpath.APIVersion(f.groupVersion.String())\n\n\t// TODO(apelisse) use the first return value when unions are implemented\n\t_, managedFields, err := f.updater.Update(liveObjTyped, newObjTyped, apiVersion, managed.Fields(), manager)\n\tif err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"failed to update ManagedFields (%v): %v\", objectGVKNN(newObjVersioned), err)\n\t}\n\tmanaged = NewManaged(managedFields, managed.Times())\n\n\treturn newObj, managed, nil\n}\n\n// Apply implements Manager.\nfunc (f *structuredMergeManager) Apply(liveObj, patchObj runtime.Object, managed Managed, manager string, force bool) (runtime.Object, Managed, error) {\n\t// Check that the patch object has the same version as the live object\n\tif patchVersion := patchObj.GetObjectKind().GroupVersionKind().GroupVersion(); patchVersion != f.groupVersion {\n\t\treturn nil, nil,\n\t\t\terrors.NewBadRequest(\n\t\t\t\tfmt.Sprintf(\"Incorrect version specified in apply patch. \"+\n\t\t\t\t\t\"Specified patch version: %s, expected: %s\",\n\t\t\t\t\tpatchVersion, f.groupVersion))\n\t}\n\n\tpatchObjMeta, err := meta.Accessor(patchObj)\n\tif err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"couldn't get accessor: %v\", err)\n\t}\n\tif patchObjMeta.GetManagedFields() != nil {\n\t\treturn nil, nil, errors.NewBadRequest(\"metadata.managedFields must be nil\")\n\t}\n\n\tliveObjVersioned, err := f.toVersioned(liveObj)\n\tif err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"failed to convert live object (%v) to proper version: %v\", objectGVKNN(liveObj), err)\n\t}\n\n\t// Don't allow duplicates in the applied object.\n\tpatchObjTyped, err := f.typeConverter.ObjectToTyped(patchObj)\n\tif err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"failed to create typed patch object (%v): %v\", objectGVKNN(patchObj), err)\n\t}\n\n\tliveObjTyped, err := f.typeConverter.ObjectToTyped(liveObjVersioned, typed.AllowDuplicates)\n\tif err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"failed to create typed live object (%v): %v\", objectGVKNN(liveObjVersioned), err)\n\t}\n\n\tapiVersion := fieldpath.APIVersion(f.groupVersion.String())\n\tnewObjTyped, managedFields, err := f.updater.Apply(liveObjTyped, patchObjTyped, apiVersion, managed.Fields(), manager, force)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\tmanaged = NewManaged(managedFields, managed.Times())\n\n\tif newObjTyped == nil {\n\t\treturn nil, managed, nil\n\t}\n\n\tnewObj, err := f.typeConverter.TypedToObject(newObjTyped)\n\tif err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"failed to convert new typed object (%v) to object: %v\", objectGVKNN(patchObj), err)\n\t}\n\n\tnewObjVersioned, err := f.toVersioned(newObj)\n\tif err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"failed to convert new object (%v) to proper version: %v\", objectGVKNN(patchObj), err)\n\t}\n\tf.objectDefaulter.Default(newObjVersioned)\n\n\tnewObjUnversioned, err := f.toUnversioned(newObjVersioned)\n\tif err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"failed to convert to unversioned (%v): %v\", objectGVKNN(patchObj), err)\n\t}\n\treturn newObjUnversioned, managed, nil\n}\n\nfunc (f *structuredMergeManager) toVersioned(obj runtime.Object) (runtime.Object, error) {\n\treturn f.objectConverter.ConvertToVersion(obj, f.groupVersion)\n}\n\nfunc (f *structuredMergeManager) toUnversioned(obj runtime.Object) (runtime.Object, error) {\n\treturn f.objectConverter.ConvertToVersion(obj, f.hubVersion)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/internal/typeconverter.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internal\n\nimport (\n\t\"fmt\"\n\n\t\"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/kube-openapi/pkg/schemaconv\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n\tsmdschema \"sigs.k8s.io/structured-merge-diff/v4/schema\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/typed\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/value\"\n)\n\n// TypeConverter allows you to convert from runtime.Object to\n// typed.TypedValue and the other way around.\ntype TypeConverter interface {\n\tObjectToTyped(runtime.Object, ...typed.ValidationOptions) (*typed.TypedValue, error)\n\tTypedToObject(*typed.TypedValue) (runtime.Object, error)\n}\n\ntype typeConverter struct {\n\tparser map[schema.GroupVersionKind]*typed.ParseableType\n}\n\nvar _ TypeConverter = &typeConverter{}\n\nfunc NewTypeConverter(openapiSpec map[string]*spec.Schema, preserveUnknownFields bool) (TypeConverter, error) {\n\ttypeSchema, err := schemaconv.ToSchemaFromOpenAPI(openapiSpec, preserveUnknownFields)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to convert models to schema: %v\", err)\n\t}\n\n\ttypeParser := typed.Parser{Schema: smdschema.Schema{Types: typeSchema.Types}}\n\ttr := indexModels(&typeParser, openapiSpec)\n\n\treturn &typeConverter{parser: tr}, nil\n}\n\nfunc (c *typeConverter) ObjectToTyped(obj runtime.Object, opts ...typed.ValidationOptions) (*typed.TypedValue, error) {\n\tgvk := obj.GetObjectKind().GroupVersionKind()\n\tt := c.parser[gvk]\n\tif t == nil {\n\t\treturn nil, NewNoCorrespondingTypeError(gvk)\n\t}\n\tswitch o := obj.(type) {\n\tcase *unstructured.Unstructured:\n\t\treturn t.FromUnstructured(o.UnstructuredContent(), opts...)\n\tdefault:\n\t\treturn t.FromStructured(obj, opts...)\n\t}\n}\n\nfunc (c *typeConverter) TypedToObject(value *typed.TypedValue) (runtime.Object, error) {\n\treturn valueToObject(value.AsValue())\n}\n\ntype deducedTypeConverter struct{}\n\n// DeducedTypeConverter is a TypeConverter for CRDs that don't have a\n// schema. It does implement the same interface though (and create the\n// same types of objects), so that everything can still work the same.\n// CRDs are merged with all their fields being \"atomic\" (lists\n// included).\nfunc NewDeducedTypeConverter() TypeConverter {\n\treturn deducedTypeConverter{}\n}\n\n// ObjectToTyped converts an object into a TypedValue with a \"deduced type\".\nfunc (deducedTypeConverter) ObjectToTyped(obj runtime.Object, opts ...typed.ValidationOptions) (*typed.TypedValue, error) {\n\tswitch o := obj.(type) {\n\tcase *unstructured.Unstructured:\n\t\treturn typed.DeducedParseableType.FromUnstructured(o.UnstructuredContent(), opts...)\n\tdefault:\n\t\treturn typed.DeducedParseableType.FromStructured(obj, opts...)\n\t}\n}\n\n// TypedToObject transforms the typed value into a runtime.Object. That\n// is not specific to deduced type.\nfunc (deducedTypeConverter) TypedToObject(value *typed.TypedValue) (runtime.Object, error) {\n\treturn valueToObject(value.AsValue())\n}\n\nfunc valueToObject(val value.Value) (runtime.Object, error) {\n\tvu := val.Unstructured()\n\tswitch o := vu.(type) {\n\tcase map[string]interface{}:\n\t\treturn &unstructured.Unstructured{Object: o}, nil\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"failed to convert value to unstructured for type %T\", vu)\n\t}\n}\n\nfunc indexModels(\n\ttypeParser *typed.Parser,\n\topenAPISchemas map[string]*spec.Schema,\n) map[schema.GroupVersionKind]*typed.ParseableType {\n\ttr := map[schema.GroupVersionKind]*typed.ParseableType{}\n\tfor modelName, model := range openAPISchemas {\n\t\tgvkList := parseGroupVersionKind(model.Extensions)\n\t\tif len(gvkList) == 0 {\n\t\t\tcontinue\n\t\t}\n\n\t\tparsedType := typeParser.Type(modelName)\n\t\tfor _, gvk := range gvkList {\n\t\t\tif len(gvk.Kind) > 0 {\n\t\t\t\ttr[schema.GroupVersionKind(gvk)] = &parsedType\n\t\t\t}\n\t\t}\n\t}\n\treturn tr\n}\n\n// Get and parse GroupVersionKind from the extension. Returns empty if it doesn't have one.\nfunc parseGroupVersionKind(extensions map[string]interface{}) []schema.GroupVersionKind {\n\tgvkListResult := []schema.GroupVersionKind{}\n\n\t// Get the extensions\n\tgvkExtension, ok := extensions[\"x-kubernetes-group-version-kind\"]\n\tif !ok {\n\t\treturn []schema.GroupVersionKind{}\n\t}\n\n\t// gvk extension must be a list of at least 1 element.\n\tgvkList, ok := gvkExtension.([]interface{})\n\tif !ok {\n\t\treturn []schema.GroupVersionKind{}\n\t}\n\n\tfor _, gvk := range gvkList {\n\t\tvar group, version, kind string\n\n\t\t// gvk extension list must be a map with group, version, and\n\t\t// kind fields\n\t\tif gvkMap, ok := gvk.(map[interface{}]interface{}); ok {\n\t\t\tgroup, ok = gvkMap[\"group\"].(string)\n\t\t\tif !ok {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tversion, ok = gvkMap[\"version\"].(string)\n\t\t\tif !ok {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tkind, ok = gvkMap[\"kind\"].(string)\n\t\t\tif !ok {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t} else if gvkMap, ok := gvk.(map[string]interface{}); ok {\n\t\t\tgroup, ok = gvkMap[\"group\"].(string)\n\t\t\tif !ok {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tversion, ok = gvkMap[\"version\"].(string)\n\t\t\tif !ok {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tkind, ok = gvkMap[\"kind\"].(string)\n\t\t\tif !ok {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t} else {\n\t\t\tcontinue\n\t\t}\n\n\t\tgvkListResult = append(gvkListResult, schema.GroupVersionKind{\n\t\t\tGroup:   group,\n\t\t\tVersion: version,\n\t\t\tKind:    kind,\n\t\t})\n\t}\n\n\treturn gvkListResult\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/internal/versioncheck.go",
    "content": "/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internal\n\nimport (\n\t\"fmt\"\n\n\t\"k8s.io/apimachinery/pkg/api/errors\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\ntype versionCheckManager struct {\n\tfieldManager Manager\n\tgvk          schema.GroupVersionKind\n}\n\nvar _ Manager = &versionCheckManager{}\n\n// NewVersionCheckManager creates a manager that makes sure that the\n// applied object is in the proper version.\nfunc NewVersionCheckManager(fieldManager Manager, gvk schema.GroupVersionKind) Manager {\n\treturn &versionCheckManager{fieldManager: fieldManager, gvk: gvk}\n}\n\n// Update implements Manager.\nfunc (f *versionCheckManager) Update(liveObj, newObj runtime.Object, managed Managed, manager string) (runtime.Object, Managed, error) {\n\t// Nothing to do for updates, this is checked in many other places.\n\treturn f.fieldManager.Update(liveObj, newObj, managed, manager)\n}\n\n// Apply implements Manager.\nfunc (f *versionCheckManager) Apply(liveObj, appliedObj runtime.Object, managed Managed, fieldManager string, force bool) (runtime.Object, Managed, error) {\n\tif gvk := appliedObj.GetObjectKind().GroupVersionKind(); gvk != f.gvk {\n\t\treturn nil, nil, errors.NewBadRequest(fmt.Sprintf(\"invalid object type: %v\", gvk))\n\t}\n\treturn f.fieldManager.Apply(liveObj, appliedObj, managed, fieldManager, force)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/internal/versionconverter.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internal\n\nimport (\n\t\"fmt\"\n\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/merge\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/typed\"\n)\n\n// versionConverter is an implementation of\n// sigs.k8s.io/structured-merge-diff/merge.Converter\ntype versionConverter struct {\n\ttypeConverter   TypeConverter\n\tobjectConvertor runtime.ObjectConvertor\n\thubGetter       func(from schema.GroupVersion) schema.GroupVersion\n}\n\nvar _ merge.Converter = &versionConverter{}\n\n// NewVersionConverter builds a VersionConverter from a TypeConverter and an ObjectConvertor.\nfunc newVersionConverter(t TypeConverter, o runtime.ObjectConvertor, h schema.GroupVersion) merge.Converter {\n\treturn &versionConverter{\n\t\ttypeConverter:   t,\n\t\tobjectConvertor: o,\n\t\thubGetter: func(from schema.GroupVersion) schema.GroupVersion {\n\t\t\treturn schema.GroupVersion{\n\t\t\t\tGroup:   from.Group,\n\t\t\t\tVersion: h.Version,\n\t\t\t}\n\t\t},\n\t}\n}\n\n// NewCRDVersionConverter builds a VersionConverter for CRDs from a TypeConverter and an ObjectConvertor.\nfunc newCRDVersionConverter(t TypeConverter, o runtime.ObjectConvertor, h schema.GroupVersion) merge.Converter {\n\treturn &versionConverter{\n\t\ttypeConverter:   t,\n\t\tobjectConvertor: o,\n\t\thubGetter: func(from schema.GroupVersion) schema.GroupVersion {\n\t\t\treturn h\n\t\t},\n\t}\n}\n\n// Convert implements sigs.k8s.io/structured-merge-diff/merge.Converter\nfunc (v *versionConverter) Convert(object *typed.TypedValue, version fieldpath.APIVersion) (*typed.TypedValue, error) {\n\t// Convert the smd typed value to a kubernetes object.\n\tobjectToConvert, err := v.typeConverter.TypedToObject(object)\n\tif err != nil {\n\t\treturn object, err\n\t}\n\n\t// Parse the target groupVersion.\n\tgroupVersion, err := schema.ParseGroupVersion(string(version))\n\tif err != nil {\n\t\treturn object, err\n\t}\n\n\t// If attempting to convert to the same version as we already have, just return it.\n\tfromVersion := objectToConvert.GetObjectKind().GroupVersionKind().GroupVersion()\n\tif fromVersion == groupVersion {\n\t\treturn object, nil\n\t}\n\n\t// Convert to internal\n\tinternalObject, err := v.objectConvertor.ConvertToVersion(objectToConvert, v.hubGetter(fromVersion))\n\tif err != nil {\n\t\treturn object, err\n\t}\n\n\t// Convert the object into the target version\n\tconvertedObject, err := v.objectConvertor.ConvertToVersion(internalObject, groupVersion)\n\tif err != nil {\n\t\treturn object, err\n\t}\n\n\t// Convert the object back to a smd typed value and return it.\n\treturn v.typeConverter.ObjectToTyped(convertedObject)\n}\n\n// IsMissingVersionError\nfunc (v *versionConverter) IsMissingVersionError(err error) bool {\n\treturn runtime.IsNotRegisteredError(err) || isNoCorrespondingTypeError(err)\n}\n\ntype noCorrespondingTypeErr struct {\n\tgvk schema.GroupVersionKind\n}\n\nfunc NewNoCorrespondingTypeError(gvk schema.GroupVersionKind) error {\n\treturn &noCorrespondingTypeErr{gvk: gvk}\n}\n\nfunc (k *noCorrespondingTypeErr) Error() string {\n\treturn fmt.Sprintf(\"no corresponding type for %v\", k.gvk)\n}\n\nfunc isNoCorrespondingTypeError(err error) bool {\n\tif err == nil {\n\t\treturn false\n\t}\n\t_, ok := err.(*noCorrespondingTypeErr)\n\treturn ok\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/node.yaml",
    "content": "apiVersion: v1\nkind: Node\nmetadata:\n  annotations:\n    container.googleapis.com/instance_id: \"123456789321654789\"\n    node.alpha.kubernetes.io/ttl: \"0\"\n    volumes.kubernetes.io/controller-managed-attach-detach: \"true\"\n  creationTimestamp: \"2019-07-09T16:17:29Z\"\n  labels:\n    kubernetes.io/arch: amd64\n    beta.kubernetes.io/fluentd-ds-ready: \"true\"\n    beta.kubernetes.io/instance-type: n1-standard-4\n    kubernetes.io/os: linux\n    cloud.google.com/gke-nodepool: default-pool\n    cloud.google.com/gke-os-distribution: cos\n    failure-domain.beta.kubernetes.io/region: us-central1\n    failure-domain.beta.kubernetes.io/zone: us-central1-b\n    topology.kubernetes.io/region: us-central1\n    topology.kubernetes.io/zone: us-central1-b\n    kubernetes.io/hostname: node-default-pool-something\n  name: node-default-pool-something\n  resourceVersion: \"211582541\"\n  selfLink: /api/v1/nodes/node-default-pool-something\n  uid: 0c24d0e1-a265-11e9-abe4-42010a80026b\nspec:\n  podCIDR: 10.0.0.1/24\n  providerID: some-provider-id-of-some-sort\nstatus:\n  addresses:\n  - address: 10.0.0.1\n    type: InternalIP\n  - address: 192.168.0.1\n    type: ExternalIP\n  - address: node-default-pool-something\n    type: Hostname\n  allocatable:\n    cpu: 3920m\n    ephemeral-storage: \"104638878617\"\n    hugepages-2Mi: \"0\"\n    memory: 12700100Ki\n    pods: \"110\"\n  capacity:\n    cpu: \"4\"\n    ephemeral-storage: 202086868Ki\n    hugepages-2Mi: \"0\"\n    memory: 15399364Ki\n    pods: \"110\"\n  conditions:\n  - lastHeartbeatTime: \"2019-09-20T19:32:08Z\"\n    lastTransitionTime: \"2019-07-09T16:22:08Z\"\n    message: containerd is functioning properly\n    reason: FrequentContainerdRestart\n    status: \"False\"\n    type: FrequentContainerdRestart\n  - lastHeartbeatTime: \"2019-09-20T19:32:08Z\"\n    lastTransitionTime: \"2019-07-09T16:22:06Z\"\n    message: docker overlay2 is functioning properly\n    reason: CorruptDockerOverlay2\n    status: \"False\"\n    type: CorruptDockerOverlay2\n  - lastHeartbeatTime: \"2019-09-20T19:32:08Z\"\n    lastTransitionTime: \"2019-07-09T16:22:06Z\"\n    message: node is functioning properly\n    reason: UnregisterNetDevice\n    status: \"False\"\n    type: FrequentUnregisterNetDevice\n  - lastHeartbeatTime: \"2019-09-20T19:32:08Z\"\n    lastTransitionTime: \"2019-07-09T16:17:04Z\"\n    message: kernel has no deadlock\n    reason: KernelHasNoDeadlock\n    status: \"False\"\n    type: KernelDeadlock\n  - lastHeartbeatTime: \"2019-09-20T19:32:08Z\"\n    lastTransitionTime: \"2019-07-09T16:17:04Z\"\n    message: Filesystem is not read-only\n    reason: FilesystemIsNotReadOnly\n    status: \"False\"\n    type: ReadonlyFilesystem\n  - lastHeartbeatTime: \"2019-09-20T19:32:08Z\"\n    lastTransitionTime: \"2019-07-09T16:22:05Z\"\n    message: kubelet is functioning properly\n    reason: FrequentKubeletRestart\n    status: \"False\"\n    type: FrequentKubeletRestart\n  - lastHeartbeatTime: \"2019-09-20T19:32:08Z\"\n    lastTransitionTime: \"2019-07-09T16:22:06Z\"\n    message: docker is functioning properly\n    reason: FrequentDockerRestart\n    status: \"False\"\n    type: FrequentDockerRestart\n  - lastHeartbeatTime: \"2019-07-09T16:17:47Z\"\n    lastTransitionTime: \"2019-07-09T16:17:47Z\"\n    message: RouteController created a route\n    reason: RouteCreated\n    status: \"False\"\n    type: NetworkUnavailable\n  - lastHeartbeatTime: \"2019-09-20T19:32:50Z\"\n    lastTransitionTime: \"2019-07-09T16:17:29Z\"\n    message: kubelet has sufficient disk space available\n    reason: KubeletHasSufficientDisk\n    status: \"False\"\n    type: OutOfDisk\n  - lastHeartbeatTime: \"2019-09-20T19:32:50Z\"\n    lastTransitionTime: \"2019-07-09T16:17:29Z\"\n    message: kubelet has sufficient memory available\n    reason: KubeletHasSufficientMemory\n    status: \"False\"\n    type: MemoryPressure\n  - lastHeartbeatTime: \"2019-09-20T19:32:50Z\"\n    lastTransitionTime: \"2019-07-09T16:17:29Z\"\n    message: kubelet has no disk pressure\n    reason: KubeletHasNoDiskPressure\n    status: \"False\"\n    type: DiskPressure\n  - lastHeartbeatTime: \"2019-09-20T19:32:50Z\"\n    lastTransitionTime: \"2019-07-09T16:17:29Z\"\n    message: kubelet has sufficient PID available\n    reason: KubeletHasSufficientPID\n    status: \"False\"\n    type: PIDPressure\n  - lastHeartbeatTime: \"2019-09-20T19:32:50Z\"\n    lastTransitionTime: \"2019-07-09T16:17:49Z\"\n    message: kubelet is posting ready status\n    reason: KubeletReady\n    status: \"True\"\n    type: Ready\n  daemonEndpoints:\n    kubeletEndpoint:\n      Port: 10250\n  images:\n  - names:\n    - grafana/grafana@sha256:80e5e113a984d74836aa16f5b4524012099436b1a50df293f00ac6377fb512c8\n    - grafana/grafana:4.4.2\n    sizeBytes: 287008013\n  - names:\n    - registry.k8s.io/node-problem-detector@sha256:f95cab985c26b2f46e9bd43283e0bfa88860c14e0fb0649266babe8b65e9eb2b\n    - registry.k8s.io/node-problem-detector:v0.4.1\n    sizeBytes: 286572743\n  - names:\n    - grafana/grafana@sha256:7ff7f9b2501a5d55b55ce3f58d21771b1c5af1f2a4ab7dbf11bef7142aae7033\n    - grafana/grafana:4.2.0\n    sizeBytes: 277940263\n  - names:\n    - influxdb@sha256:7dddf03376348876ed4bdf33d6dfa3326f45a2bae0930dbd80781a374eb519bc\n    - influxdb:1.2.2\n    sizeBytes: 223948571\n  - names:\n    - gcr.io/stackdriver-agents/stackdriver-logging-agent@sha256:f8d5231b67b9c53f60068b535a11811d29d1b3efd53d2b79f2a2591ea338e4f2\n    - gcr.io/stackdriver-agents/stackdriver-logging-agent:0.6-1.6.0-1\n    sizeBytes: 223242132\n  - names:\n    - nginx@sha256:35779791c05d119df4fe476db8f47c0bee5943c83eba5656a15fc046db48178b\n    - nginx:1.10.1\n    sizeBytes: 180708613\n  - names:\n    - registry.k8s.io/fluentd-elasticsearch@sha256:b8c94527b489fb61d3d81ce5ad7f3ddbb7be71e9620a3a36e2bede2f2e487d73\n    - registry.k8s.io/fluentd-elasticsearch:v2.0.4\n    sizeBytes: 135716379\n  - names:\n    - nginx@sha256:00be67d6ba53d5318cd91c57771530f5251cfbe028b7be2c4b70526f988cfc9f\n    - nginx:latest\n    sizeBytes: 109357355\n  - names:\n    - registry.k8s.io/kubernetes-dashboard-amd64@sha256:dc4026c1b595435ef5527ca598e1e9c4343076926d7d62b365c44831395adbd0\n    - registry.k8s.io/kubernetes-dashboard-amd64:v1.8.3\n    sizeBytes: 102319441\n  - names:\n    - gcr.io/google_containers/kube-proxy:v1.11.10-gke.5\n    - registry.k8s.io/kube-proxy:v1.11.10-gke.5\n    sizeBytes: 102279340\n  - names:\n    - registry.k8s.io/event-exporter@sha256:7f9cd7cb04d6959b0aa960727d04fa86759008048c785397b7b0d9dff0007516\n    - registry.k8s.io/event-exporter:v0.2.3\n    sizeBytes: 94171943\n  - names:\n    - registry.k8s.io/prometheus-to-sd@sha256:6c0c742475363d537ff059136e5d5e4ab1f512ee0fd9b7ca42ea48bc309d1662\n    - registry.k8s.io/prometheus-to-sd:v0.3.1\n    sizeBytes: 88077694\n  - names:\n    - registry.k8s.io/fluentd-gcp-scaler@sha256:a5ace7506d393c4ed65eb2cbb6312c64ab357fcea16dff76b9055bc6e498e5ff\n    - registry.k8s.io/fluentd-gcp-scaler:0.5.1\n    sizeBytes: 86637208\n  - names:\n    - registry.k8s.io/heapster-amd64@sha256:9fae0af136ce0cf4f88393b3670f7139ffc464692060c374d2ae748e13144521\n    - registry.k8s.io/heapster-amd64:v1.6.0-beta.1\n    sizeBytes: 76016169\n  - names:\n    - registry.k8s.io/ingress-glbc-amd64@sha256:31d36bbd9c44caffa135fc78cf0737266fcf25e3cf0cd1c2fcbfbc4f7309cc52\n    - registry.k8s.io/ingress-glbc-amd64:v1.1.1\n    sizeBytes: 67801919\n  - names:\n    - registry.k8s.io/kube-addon-manager@sha256:d53486c3a0b49ebee019932878dc44232735d5622a51dbbdcec7124199020d09\n    - registry.k8s.io/kube-addon-manager:v8.7\n    sizeBytes: 63322109\n  - names:\n    - nginx@sha256:4aacdcf186934dcb02f642579314075910f1855590fd3039d8fa4c9f96e48315\n    - nginx:1.10-alpine\n    sizeBytes: 54042627\n  - names:\n    - registry.k8s.io/cpvpa-amd64@sha256:cfe7b0a11c9c8e18c87b1eb34fef9a7cbb8480a8da11fc2657f78dbf4739f869\n    - registry.k8s.io/cpvpa-amd64:v0.6.0\n    sizeBytes: 51785854\n  - names:\n    - registry.k8s.io/cluster-proportional-autoscaler-amd64@sha256:003f98d9f411ddfa6ff6d539196355e03ddd69fa4ed38c7ffb8fec6f729afe2d\n    - registry.k8s.io/cluster-proportional-autoscaler-amd64:1.1.2-r2\n    sizeBytes: 49648481\n  - names:\n    - registry.k8s.io/ip-masq-agent-amd64@sha256:1ffda57d87901bc01324c82ceb2145fe6a0448d3f0dd9cb65aa76a867cd62103\n    - registry.k8s.io/ip-masq-agent-amd64:v2.1.1\n    sizeBytes: 49612505\n  - names:\n    - registry.k8s.io/k8s-dns-kube-dns-amd64@sha256:b99fc3eee2a9f052f7eb4cc00f15eb12fc405fa41019baa2d6b79847ae7284a8\n    - registry.k8s.io/k8s-dns-kube-dns-amd64:1.14.10\n    sizeBytes: 49549457\n  - names:\n    - registry.k8s.io/rescheduler@sha256:156cfbfd05a5a815206fd2eeb6cbdaf1596d71ea4b415d3a6c43071dd7b99450\n    - registry.k8s.io/rescheduler:v0.4.0\n    sizeBytes: 48973149\n  - names:\n    - registry.k8s.io/event-exporter@sha256:16ca66e2b5dc7a1ce6a5aafcb21d0885828b75cdfc08135430480f7ad2364adc\n    - registry.k8s.io/event-exporter:v0.2.4\n    sizeBytes: 47261019\n  - names:\n    - registry.k8s.io/coredns@sha256:db2bf53126ed1c761d5a41f24a1b82a461c85f736ff6e90542e9522be4757848\n    - registry.k8s.io/coredns:1.1.3\n    sizeBytes: 45587362\n  - names:\n    - prom/prometheus@sha256:483f4c9d7733699ba79facca9f8bcce1cef1af43dfc3e7c5a1882aa85f53cb74\n    - prom/prometheus:v1.1.3\n    sizeBytes: 45493941\n  nodeInfo:\n    architecture: amd64\n    bootID: a32eca78-4ad4-4b76-9252-f143d6c2ae61\n    containerRuntimeVersion: docker://17.3.2\n    kernelVersion: 4.14.127+\n    kubeProxyVersion: v1.11.10-gke.5\n    kubeletVersion: v1.11.10-gke.5\n    machineID: 1739555e5b231057f0f9a0b5fa29511b\n    operatingSystem: linux\n    osImage: Container-Optimized OS from Google\n    systemUUID: 1739555E-5B23-1057-F0F9-A0B5FA29511B\n  volumesAttached:\n  - devicePath: /dev/disk/by-id/b9772-pvc-c787c67d-14d7-11e7-9baf-42010a800049\n    name: kubernetes.io/pd/some-random-clusterb9772-pvc-c787c67d-14d7-11e7-9baf-42010a800049\n  - devicePath: /dev/disk/by-id/b9772-pvc-8895a852-fd42-11e6-94d4-42010a800049\n    name: kubernetes.io/pd/some-random-clusterb9772-pvc-8895a852-fd42-11e6-94d4-42010a800049\n  - devicePath: /dev/disk/by-id/some-random-clusterb9772-pvc-72e1c7f1-fd41-11e6-94d4-42010a800049\n    name: kubernetes.io/pd/some-random-clusterb9772-pvc-72e1c7f1-fd41-11e6-94d4-42010a800049\n  - devicePath: /dev/disk/by-id/some-random-clusterb9772-pvc-c2435a06-14d7-11e7-9baf-42010a800049\n    name: kubernetes.io/pd/some-random-clusterb9772-pvc-c2435a06-14d7-11e7-9baf-42010a800049\n  - devicePath: /dev/disk/by-id/some-random-clusterb9772-pvc-8bf50554-fd42-11e6-94d4-42010a800049\n    name: kubernetes.io/pd/some-random-clusterb9772-pvc-8bf50554-fd42-11e6-94d4-42010a800049\n  - devicePath: /dev/disk/by-id/some-random-clusterb9772-pvc-8fb5e386-4641-11e7-a490-42010a800283\n    name: kubernetes.io/pd/some-random-clusterb9772-pvc-8fb5e386-4641-11e7-a490-42010a800283\n  volumesInUse:\n  - kubernetes.io/pd/some-random-clusterb9772-pvc-72e1c7f1-fd41-11e6-94d4-42010a800049\n  - kubernetes.io/pd/some-random-clusterb9772-pvc-8895a852-fd42-11e6-94d4-42010a800049\n  - kubernetes.io/pd/some-random-clusterb9772-pvc-8bf50554-fd42-11e6-94d4-42010a800049\n  - kubernetes.io/pd/some-random-clusterb9772-pvc-8fb5e386-4641-11e7-a490-42010a800283\n  - kubernetes.io/pd/some-random-clusterb9772-pvc-c2435a06-14d7-11e7-9baf-42010a800049\n  - kubernetes.io/pd/some-random-clusterb9772-pvc-c787c67d-14d7-11e7-9baf-42010a800049\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/pod.yaml",
    "content": "apiVersion: v1\nkind: Pod\nmetadata:\n  labels:\n    app: some-app\n    plugin1: some-value\n    plugin2: some-value\n    plugin3: some-value\n    plugin4: some-value\n  name: some-name\n  namespace: default\n  ownerReferences:\n  - apiVersion: apps/v1\n    blockOwnerDeletion: true\n    controller: true\n    kind: ReplicaSet\n    name: some-name\n    uid: 0a9d2b9e-779e-11e7-b422-42010a8001be\nspec:\n  containers:\n  - args:\n    - one\n    - two\n    - three\n    - four\n    - five\n    - six\n    - seven\n    - eight\n    - nine\n    env:\n    - name: VAR_3\n      valueFrom:\n        secretKeyRef:\n          key: some-other-key\n          name: some-oher-name\n    - name: VAR_2\n      valueFrom:\n        secretKeyRef:\n          key: other-key\n          name: other-name\n    - name: VAR_1\n      valueFrom:\n        secretKeyRef:\n          key: some-key\n          name: some-name\n    image: some-image-name\n    imagePullPolicy: IfNotPresent\n    name: some-name\n    resources:\n      requests:\n        cpu: '0'\n    terminationMessagePath: /dev/termination-log\n    terminationMessagePolicy: File\n    volumeMounts:\n    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount\n      name: default-token-hu5jz\n      readOnly: true\n  dnsPolicy: ClusterFirst\n  nodeName: node-name\n  priority: 0\n  restartPolicy: Always\n  schedulerName: default-scheduler\n  securityContext: {}\n  serviceAccount: default\n  serviceAccountName: default\n  terminationGracePeriodSeconds: 30\n  tolerations:\n  - effect: NoExecute\n    key: node.kubernetes.io/not-ready\n    operator: Exists\n    tolerationSeconds: 300\n  - effect: NoExecute\n    key: node.kubernetes.io/unreachable\n    operator: Exists\n    tolerationSeconds: 300\n  volumes:\n  - name: default-token-hu5jz\n    secret:\n      defaultMode: 420\n      secretName: default-token-hu5jz\nstatus:\n  conditions:\n  - lastProbeTime: null\n    lastTransitionTime: '2019-07-08T09:31:18Z'\n    status: 'True'\n    type: Initialized\n  - lastProbeTime: null\n    lastTransitionTime: '2019-07-08T09:41:59Z'\n    status: 'True'\n    type: Ready\n  - lastProbeTime: null\n    lastTransitionTime: null\n    status: 'True'\n    type: ContainersReady\n  - lastProbeTime: null\n    lastTransitionTime: '2019-07-08T09:31:18Z'\n    status: 'True'\n    type: PodScheduled\n  containerStatuses:\n  - containerID: docker://885e82a1ed0b7356541bb410a0126921ac42439607c09875cd8097dd5d7b5376\n    image: some-image-name\n    imageID: docker-pullable://some-image-id\n    lastState:\n      terminated:\n        containerID: docker://d57290f9e00fad626b20d2dd87a3cf69bbc22edae07985374f86a8b2b4e39565\n        exitCode: 255\n        finishedAt: '2019-07-08T09:39:09Z'\n        reason: Error\n        startedAt: '2019-07-08T09:38:54Z'\n    name: name\n    ready: true\n    restartCount: 6\n    state:\n      running:\n        startedAt: '2019-07-08T09:41:59Z'\n  hostIP: 10.0.0.1\n  phase: Running\n  podIP: 10.0.0.1\n  qosClass: BestEffort\n  startTime: '2019-07-08T09:31:18Z'\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/scalehandler.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage managedfields\n\nimport (\n\t\"fmt\"\n\n\t\"k8s.io/apimachinery/pkg/api/meta\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/util/managedfields/internal\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n)\n\nvar (\n\tscaleGroupVersion   = schema.GroupVersion{Group: \"autoscaling\", Version: \"v1\"}\n\treplicasPathInScale = fieldpath.MakePathOrDie(\"spec\", \"replicas\")\n)\n\n// ResourcePathMappings maps a group/version to its replicas path. The\n// assumption is that all the paths correspond to leaf fields.\ntype ResourcePathMappings map[string]fieldpath.Path\n\n// ScaleHandler manages the conversion of managed fields between a main\n// resource and the scale subresource\ntype ScaleHandler struct {\n\tparentEntries []metav1.ManagedFieldsEntry\n\tgroupVersion  schema.GroupVersion\n\tmappings      ResourcePathMappings\n}\n\n// NewScaleHandler creates a new ScaleHandler\nfunc NewScaleHandler(parentEntries []metav1.ManagedFieldsEntry, groupVersion schema.GroupVersion, mappings ResourcePathMappings) *ScaleHandler {\n\treturn &ScaleHandler{\n\t\tparentEntries: parentEntries,\n\t\tgroupVersion:  groupVersion,\n\t\tmappings:      mappings,\n\t}\n}\n\n// ToSubresource filter the managed fields of the main resource and convert\n// them so that they can be handled by scale.\n// For the managed fields that have a replicas path it performs two changes:\n//  1. APIVersion is changed to the APIVersion of the scale subresource\n//  2. Replicas path of the main resource is transformed to the replicas path of\n//     the scale subresource\nfunc (h *ScaleHandler) ToSubresource() ([]metav1.ManagedFieldsEntry, error) {\n\tmanaged, err := internal.DecodeManagedFields(h.parentEntries)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tf := fieldpath.ManagedFields{}\n\tt := map[string]*metav1.Time{}\n\tfor manager, versionedSet := range managed.Fields() {\n\t\tpath, ok := h.mappings[string(versionedSet.APIVersion())]\n\t\t// Skip the entry if the APIVersion is unknown\n\t\tif !ok || path == nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tif versionedSet.Set().Has(path) {\n\t\t\tnewVersionedSet := fieldpath.NewVersionedSet(\n\t\t\t\tfieldpath.NewSet(replicasPathInScale),\n\t\t\t\tfieldpath.APIVersion(scaleGroupVersion.String()),\n\t\t\t\tversionedSet.Applied(),\n\t\t\t)\n\n\t\t\tf[manager] = newVersionedSet\n\t\t\tt[manager] = managed.Times()[manager]\n\t\t}\n\t}\n\n\treturn managedFieldsEntries(internal.NewManaged(f, t))\n}\n\n// ToParent merges `scaleEntries` with the entries of the main resource and\n// transforms them accordingly\nfunc (h *ScaleHandler) ToParent(scaleEntries []metav1.ManagedFieldsEntry) ([]metav1.ManagedFieldsEntry, error) {\n\tdecodedParentEntries, err := internal.DecodeManagedFields(h.parentEntries)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tparentFields := decodedParentEntries.Fields()\n\n\tdecodedScaleEntries, err := internal.DecodeManagedFields(scaleEntries)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tscaleFields := decodedScaleEntries.Fields()\n\n\tf := fieldpath.ManagedFields{}\n\tt := map[string]*metav1.Time{}\n\n\tfor manager, versionedSet := range parentFields {\n\t\t// Get the main resource \"replicas\" path\n\t\tpath, ok := h.mappings[string(versionedSet.APIVersion())]\n\t\t// Drop the entry if the APIVersion is unknown.\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\n\t\t// If the parent entry does not have the replicas path or it is nil, just\n\t\t// keep it as it is. The path is nil for Custom Resources without scale\n\t\t// subresource.\n\t\tif path == nil || !versionedSet.Set().Has(path) {\n\t\t\tf[manager] = versionedSet\n\t\t\tt[manager] = decodedParentEntries.Times()[manager]\n\t\t\tcontinue\n\t\t}\n\n\t\tif _, ok := scaleFields[manager]; !ok {\n\t\t\t// \"Steal\" the replicas path from the main resource entry\n\t\t\tnewSet := versionedSet.Set().Difference(fieldpath.NewSet(path))\n\n\t\t\tif !newSet.Empty() {\n\t\t\t\tnewVersionedSet := fieldpath.NewVersionedSet(\n\t\t\t\t\tnewSet,\n\t\t\t\t\tversionedSet.APIVersion(),\n\t\t\t\t\tversionedSet.Applied(),\n\t\t\t\t)\n\t\t\t\tf[manager] = newVersionedSet\n\t\t\t\tt[manager] = decodedParentEntries.Times()[manager]\n\t\t\t}\n\t\t} else {\n\t\t\t// Field wasn't stolen, let's keep the entry as it is.\n\t\t\tf[manager] = versionedSet\n\t\t\tt[manager] = decodedParentEntries.Times()[manager]\n\t\t\tdelete(scaleFields, manager)\n\t\t}\n\t}\n\n\tfor manager, versionedSet := range scaleFields {\n\t\tif !versionedSet.Set().Has(replicasPathInScale) {\n\t\t\tcontinue\n\t\t}\n\t\tnewVersionedSet := fieldpath.NewVersionedSet(\n\t\t\tfieldpath.NewSet(h.mappings[h.groupVersion.String()]),\n\t\t\tfieldpath.APIVersion(h.groupVersion.String()),\n\t\t\tversionedSet.Applied(),\n\t\t)\n\t\tf[manager] = newVersionedSet\n\t\tt[manager] = decodedParentEntries.Times()[manager]\n\t}\n\n\treturn managedFieldsEntries(internal.NewManaged(f, t))\n}\n\nfunc managedFieldsEntries(entries internal.ManagedInterface) ([]metav1.ManagedFieldsEntry, error) {\n\tobj := &unstructured.Unstructured{Object: map[string]interface{}{}}\n\tif err := internal.EncodeObjectManagedFields(obj, entries); err != nil {\n\t\treturn nil, err\n\t}\n\taccessor, err := meta.Accessor(obj)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"couldn't get accessor: %v\", err))\n\t}\n\treturn accessor.GetManagedFields(), nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/managedfields/typeconverter.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage managedfields\n\nimport (\n\t\"k8s.io/apimachinery/pkg/util/managedfields/internal\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// TypeConverter allows you to convert from runtime.Object to\n// typed.TypedValue and the other way around.\ntype TypeConverter = internal.TypeConverter\n\n// NewDeducedTypeConverter creates a TypeConverter for CRDs that don't\n// have a schema. It does implement the same interface though (and\n// create the same types of objects), so that everything can still work\n// the same. CRDs are merged with all their fields being \"atomic\" (lists\n// included).\nfunc NewDeducedTypeConverter() TypeConverter {\n\treturn internal.NewDeducedTypeConverter()\n}\n\n// NewTypeConverter builds a TypeConverter from a map of OpenAPIV3 schemas.\n// This will automatically find the proper version of the object, and the\n// corresponding schema information.\n// The keys to the map must be consistent with the names\n// used by Refs within the schemas.\n// The schemas should conform to the Kubernetes Structural Schema OpenAPI\n// restrictions found in docs:\n// https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#specifying-a-structural-schema\nfunc NewTypeConverter(openapiSpec map[string]*spec.Schema, preserveUnknownFields bool) (TypeConverter, error) {\n\treturn internal.NewTypeConverter(openapiSpec, preserveUnknownFields)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/mergepatch/OWNERS",
    "content": "# See the OWNERS docs at https://go.k8s.io/owners\n\napprovers:\n  - pwittrock\nreviewers:\n  - apelisse\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/mergepatch/errors.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage mergepatch\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n)\n\nvar (\n\tErrBadJSONDoc                           = errors.New(\"invalid JSON document\")\n\tErrNoListOfLists                        = errors.New(\"lists of lists are not supported\")\n\tErrBadPatchFormatForPrimitiveList       = errors.New(\"invalid patch format of primitive list\")\n\tErrBadPatchFormatForRetainKeys          = errors.New(\"invalid patch format of retainKeys\")\n\tErrBadPatchFormatForSetElementOrderList = errors.New(\"invalid patch format of setElementOrder list\")\n\tErrPatchContentNotMatchRetainKeys       = errors.New(\"patch content doesn't match retainKeys list\")\n\tErrUnsupportedStrategicMergePatchFormat = errors.New(\"strategic merge patch format is not supported\")\n)\n\nfunc ErrNoMergeKey(m map[string]interface{}, k string) error {\n\treturn fmt.Errorf(\"map: %v does not contain declared merge key: %s\", m, k)\n}\n\nfunc ErrBadArgType(expected, actual interface{}) error {\n\treturn fmt.Errorf(\"expected a %s, but received a %s\",\n\t\treflect.TypeOf(expected),\n\t\treflect.TypeOf(actual))\n}\n\nfunc ErrBadArgKind(expected, actual interface{}) error {\n\tvar expectedKindString, actualKindString string\n\tif expected == nil {\n\t\texpectedKindString = \"nil\"\n\t} else {\n\t\texpectedKindString = reflect.TypeOf(expected).Kind().String()\n\t}\n\tif actual == nil {\n\t\tactualKindString = \"nil\"\n\t} else {\n\t\tactualKindString = reflect.TypeOf(actual).Kind().String()\n\t}\n\treturn fmt.Errorf(\"expected a %s, but received a %s\", expectedKindString, actualKindString)\n}\n\nfunc ErrBadPatchType(t interface{}, m map[string]interface{}) error {\n\treturn fmt.Errorf(\"unknown patch type: %s in map: %v\", t, m)\n}\n\n// IsPreconditionFailed returns true if the provided error indicates\n// a precondition failed.\nfunc IsPreconditionFailed(err error) bool {\n\t_, ok := err.(ErrPreconditionFailed)\n\treturn ok\n}\n\ntype ErrPreconditionFailed struct {\n\tmessage string\n}\n\nfunc NewErrPreconditionFailed(target map[string]interface{}) ErrPreconditionFailed {\n\ts := fmt.Sprintf(\"precondition failed for: %v\", target)\n\treturn ErrPreconditionFailed{s}\n}\n\nfunc (err ErrPreconditionFailed) Error() string {\n\treturn err.message\n}\n\ntype ErrConflict struct {\n\tmessage string\n}\n\nfunc NewErrConflict(patch, current string) ErrConflict {\n\ts := fmt.Sprintf(\"patch:\\n%s\\nconflicts with changes made from original to current:\\n%s\\n\", patch, current)\n\treturn ErrConflict{s}\n}\n\nfunc (err ErrConflict) Error() string {\n\treturn err.message\n}\n\n// IsConflict returns true if the provided error indicates\n// a conflict between the patch and the current configuration.\nfunc IsConflict(err error) bool {\n\t_, ok := err.(ErrConflict)\n\treturn ok\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/mergepatch/util.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage mergepatch\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\n\t\"k8s.io/apimachinery/pkg/util/dump\"\n\t\"sigs.k8s.io/yaml\"\n)\n\n// PreconditionFunc asserts that an incompatible change is not present within a patch.\ntype PreconditionFunc func(interface{}) bool\n\n// RequireKeyUnchanged returns a precondition function that fails if the provided key\n// is present in the patch (indicating that its value has changed).\nfunc RequireKeyUnchanged(key string) PreconditionFunc {\n\treturn func(patch interface{}) bool {\n\t\tpatchMap, ok := patch.(map[string]interface{})\n\t\tif !ok {\n\t\t\treturn true\n\t\t}\n\n\t\t// The presence of key means that its value has been changed, so the test fails.\n\t\t_, ok = patchMap[key]\n\t\treturn !ok\n\t}\n}\n\n// RequireMetadataKeyUnchanged creates a precondition function that fails\n// if the metadata.key is present in the patch (indicating its value\n// has changed).\nfunc RequireMetadataKeyUnchanged(key string) PreconditionFunc {\n\treturn func(patch interface{}) bool {\n\t\tpatchMap, ok := patch.(map[string]interface{})\n\t\tif !ok {\n\t\t\treturn true\n\t\t}\n\t\tpatchMap1, ok := patchMap[\"metadata\"]\n\t\tif !ok {\n\t\t\treturn true\n\t\t}\n\t\tpatchMap2, ok := patchMap1.(map[string]interface{})\n\t\tif !ok {\n\t\t\treturn true\n\t\t}\n\t\t_, ok = patchMap2[key]\n\t\treturn !ok\n\t}\n}\n\nfunc ToYAMLOrError(v interface{}) string {\n\ty, err := toYAML(v)\n\tif err != nil {\n\t\treturn err.Error()\n\t}\n\n\treturn y\n}\n\nfunc toYAML(v interface{}) (string, error) {\n\ty, err := yaml.Marshal(v)\n\tif err != nil {\n\t\treturn \"\", fmt.Errorf(\"yaml marshal failed:%v\\n%v\\n\", err, dump.Pretty(v))\n\t}\n\n\treturn string(y), nil\n}\n\n// HasConflicts returns true if the left and right JSON interface objects overlap with\n// different values in any key. All keys are required to be strings. Since patches of the\n// same Type have congruent keys, this is valid for multiple patch types. This method\n// supports JSON merge patch semantics.\n//\n// NOTE: Numbers with different types (e.g. int(0) vs int64(0)) will be detected as conflicts.\n// Make sure the unmarshaling of left and right are consistent (e.g. use the same library).\nfunc HasConflicts(left, right interface{}) (bool, error) {\n\tswitch typedLeft := left.(type) {\n\tcase map[string]interface{}:\n\t\tswitch typedRight := right.(type) {\n\t\tcase map[string]interface{}:\n\t\t\tfor key, leftValue := range typedLeft {\n\t\t\t\trightValue, ok := typedRight[key]\n\t\t\t\tif !ok {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif conflict, err := HasConflicts(leftValue, rightValue); err != nil || conflict {\n\t\t\t\t\treturn conflict, err\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn false, nil\n\t\tdefault:\n\t\t\treturn true, nil\n\t\t}\n\tcase []interface{}:\n\t\tswitch typedRight := right.(type) {\n\t\tcase []interface{}:\n\t\t\tif len(typedLeft) != len(typedRight) {\n\t\t\t\treturn true, nil\n\t\t\t}\n\n\t\t\tfor i := range typedLeft {\n\t\t\t\tif conflict, err := HasConflicts(typedLeft[i], typedRight[i]); err != nil || conflict {\n\t\t\t\t\treturn conflict, err\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn false, nil\n\t\tdefault:\n\t\t\treturn true, nil\n\t\t}\n\tcase string, float64, bool, int64, nil:\n\t\treturn !reflect.DeepEqual(left, right), nil\n\tdefault:\n\t\treturn true, fmt.Errorf(\"unknown type: %v\", reflect.TypeOf(left))\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/naming/from_stack.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage naming\n\nimport (\n\t\"fmt\"\n\t\"regexp\"\n\tgoruntime \"runtime\"\n\t\"runtime/debug\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// GetNameFromCallsite walks back through the call stack until we find a caller from outside of the ignoredPackages\n// it returns back a shortpath/filename:line to aid in identification of this reflector when it starts logging\nfunc GetNameFromCallsite(ignoredPackages ...string) string {\n\tname := \"????\"\n\tconst maxStack = 10\n\tfor i := 1; i < maxStack; i++ {\n\t\t_, file, line, ok := goruntime.Caller(i)\n\t\tif !ok {\n\t\t\tfile, line, ok = extractStackCreator()\n\t\t\tif !ok {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\ti += maxStack\n\t\t}\n\t\tif hasPackage(file, append(ignoredPackages, \"/runtime/asm_\")) {\n\t\t\tcontinue\n\t\t}\n\n\t\tfile = trimPackagePrefix(file)\n\t\tname = fmt.Sprintf(\"%s:%d\", file, line)\n\t\tbreak\n\t}\n\treturn name\n}\n\n// hasPackage returns true if the file is in one of the ignored packages.\nfunc hasPackage(file string, ignoredPackages []string) bool {\n\tfor _, ignoredPackage := range ignoredPackages {\n\t\tif strings.Contains(file, ignoredPackage) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// trimPackagePrefix reduces duplicate values off the front of a package name.\nfunc trimPackagePrefix(file string) string {\n\tif l := strings.LastIndex(file, \"/vendor/\"); l >= 0 {\n\t\treturn file[l+len(\"/vendor/\"):]\n\t}\n\tif l := strings.LastIndex(file, \"/src/\"); l >= 0 {\n\t\treturn file[l+5:]\n\t}\n\tif l := strings.LastIndex(file, \"/pkg/\"); l >= 0 {\n\t\treturn file[l+1:]\n\t}\n\treturn file\n}\n\nvar stackCreator = regexp.MustCompile(`(?m)^created by (.*)\\n\\s+(.*):(\\d+) \\+0x[[:xdigit:]]+$`)\n\n// extractStackCreator retrieves the goroutine file and line that launched this stack. Returns false\n// if the creator cannot be located.\n// TODO: Go does not expose this via runtime https://github.com/golang/go/issues/11440\nfunc extractStackCreator() (string, int, bool) {\n\tstack := debug.Stack()\n\tmatches := stackCreator.FindStringSubmatch(string(stack))\n\tif len(matches) != 4 {\n\t\treturn \"\", 0, false\n\t}\n\tline, err := strconv.Atoi(matches[3])\n\tif err != nil {\n\t\treturn \"\", 0, false\n\t}\n\treturn matches[2], line, true\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/net/http.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage net\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"crypto/tls\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"mime\"\n\t\"net\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"os\"\n\t\"path\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\t\"unicode\"\n\t\"unicode/utf8\"\n\n\t\"golang.org/x/net/http2\"\n\t\"k8s.io/klog/v2\"\n\tnetutils \"k8s.io/utils/net\"\n)\n\n// JoinPreservingTrailingSlash does a path.Join of the specified elements,\n// preserving any trailing slash on the last non-empty segment\nfunc JoinPreservingTrailingSlash(elem ...string) string {\n\t// do the basic path join\n\tresult := path.Join(elem...)\n\n\t// find the last non-empty segment\n\tfor i := len(elem) - 1; i >= 0; i-- {\n\t\tif len(elem[i]) > 0 {\n\t\t\t// if the last segment ended in a slash, ensure our result does as well\n\t\t\tif strings.HasSuffix(elem[i], \"/\") && !strings.HasSuffix(result, \"/\") {\n\t\t\t\tresult += \"/\"\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t}\n\n\treturn result\n}\n\n// IsTimeout returns true if the given error is a network timeout error\nfunc IsTimeout(err error) bool {\n\tvar neterr net.Error\n\tif errors.As(err, &neterr) {\n\t\treturn neterr != nil && neterr.Timeout()\n\t}\n\treturn false\n}\n\n// IsProbableEOF returns true if the given error resembles a connection termination\n// scenario that would justify assuming that the watch is empty.\n// These errors are what the Go http stack returns back to us which are general\n// connection closure errors (strongly correlated) and callers that need to\n// differentiate probable errors in connection behavior between normal \"this is\n// disconnected\" should use the method.\nfunc IsProbableEOF(err error) bool {\n\tif err == nil {\n\t\treturn false\n\t}\n\tvar uerr *url.Error\n\tif errors.As(err, &uerr) {\n\t\terr = uerr.Err\n\t}\n\tmsg := err.Error()\n\tswitch {\n\tcase err == io.EOF:\n\t\treturn true\n\tcase err == io.ErrUnexpectedEOF:\n\t\treturn true\n\tcase msg == \"http: can't write HTTP request on broken connection\":\n\t\treturn true\n\tcase strings.Contains(msg, \"http2: server sent GOAWAY and closed the connection\"):\n\t\treturn true\n\tcase strings.Contains(msg, \"connection reset by peer\"):\n\t\treturn true\n\tcase strings.Contains(strings.ToLower(msg), \"use of closed network connection\"):\n\t\treturn true\n\t}\n\treturn false\n}\n\nvar defaultTransport = http.DefaultTransport.(*http.Transport)\n\n// SetOldTransportDefaults applies the defaults from http.DefaultTransport\n// for the Proxy, Dial, and TLSHandshakeTimeout fields if unset\nfunc SetOldTransportDefaults(t *http.Transport) *http.Transport {\n\tif t.Proxy == nil || isDefault(t.Proxy) {\n\t\t// http.ProxyFromEnvironment doesn't respect CIDRs and that makes it impossible to exclude things like pod and service IPs from proxy settings\n\t\t// ProxierWithNoProxyCIDR allows CIDR rules in NO_PROXY\n\t\tt.Proxy = NewProxierWithNoProxyCIDR(http.ProxyFromEnvironment)\n\t}\n\t// If no custom dialer is set, use the default context dialer\n\t//lint:file-ignore SA1019 Keep supporting deprecated Dial method of custom transports\n\tif t.DialContext == nil && t.Dial == nil {\n\t\tt.DialContext = defaultTransport.DialContext\n\t}\n\tif t.TLSHandshakeTimeout == 0 {\n\t\tt.TLSHandshakeTimeout = defaultTransport.TLSHandshakeTimeout\n\t}\n\tif t.IdleConnTimeout == 0 {\n\t\tt.IdleConnTimeout = defaultTransport.IdleConnTimeout\n\t}\n\treturn t\n}\n\n// SetTransportDefaults applies the defaults from http.DefaultTransport\n// for the Proxy, Dial, and TLSHandshakeTimeout fields if unset\nfunc SetTransportDefaults(t *http.Transport) *http.Transport {\n\tt = SetOldTransportDefaults(t)\n\t// Allow clients to disable http2 if needed.\n\tif s := os.Getenv(\"DISABLE_HTTP2\"); len(s) > 0 {\n\t\tklog.Info(\"HTTP2 has been explicitly disabled\")\n\t} else if allowsHTTP2(t) {\n\t\tif err := configureHTTP2Transport(t); err != nil {\n\t\t\tklog.Warningf(\"Transport failed http2 configuration: %v\", err)\n\t\t}\n\t}\n\treturn t\n}\n\nfunc readIdleTimeoutSeconds() int {\n\tret := 30\n\t// User can set the readIdleTimeout to 0 to disable the HTTP/2\n\t// connection health check.\n\tif s := os.Getenv(\"HTTP2_READ_IDLE_TIMEOUT_SECONDS\"); len(s) > 0 {\n\t\ti, err := strconv.Atoi(s)\n\t\tif err != nil {\n\t\t\tklog.Warningf(\"Illegal HTTP2_READ_IDLE_TIMEOUT_SECONDS(%q): %v.\"+\n\t\t\t\t\" Default value %d is used\", s, err, ret)\n\t\t\treturn ret\n\t\t}\n\t\tret = i\n\t}\n\treturn ret\n}\n\nfunc pingTimeoutSeconds() int {\n\tret := 15\n\tif s := os.Getenv(\"HTTP2_PING_TIMEOUT_SECONDS\"); len(s) > 0 {\n\t\ti, err := strconv.Atoi(s)\n\t\tif err != nil {\n\t\t\tklog.Warningf(\"Illegal HTTP2_PING_TIMEOUT_SECONDS(%q): %v.\"+\n\t\t\t\t\" Default value %d is used\", s, err, ret)\n\t\t\treturn ret\n\t\t}\n\t\tret = i\n\t}\n\treturn ret\n}\n\nfunc configureHTTP2Transport(t *http.Transport) error {\n\tt2, err := http2.ConfigureTransports(t)\n\tif err != nil {\n\t\treturn err\n\t}\n\t// The following enables the HTTP/2 connection health check added in\n\t// https://github.com/golang/net/pull/55. The health check detects and\n\t// closes broken transport layer connections. Without the health check,\n\t// a broken connection can linger too long, e.g., a broken TCP\n\t// connection will be closed by the Linux kernel after 13 to 30 minutes\n\t// by default, which caused\n\t// https://github.com/kubernetes/client-go/issues/374 and\n\t// https://github.com/kubernetes/kubernetes/issues/87615.\n\tt2.ReadIdleTimeout = time.Duration(readIdleTimeoutSeconds()) * time.Second\n\tt2.PingTimeout = time.Duration(pingTimeoutSeconds()) * time.Second\n\treturn nil\n}\n\nfunc allowsHTTP2(t *http.Transport) bool {\n\tif t.TLSClientConfig == nil || len(t.TLSClientConfig.NextProtos) == 0 {\n\t\t// the transport expressed no NextProto preference, allow\n\t\treturn true\n\t}\n\tfor _, p := range t.TLSClientConfig.NextProtos {\n\t\tif p == http2.NextProtoTLS {\n\t\t\t// the transport explicitly allowed http/2\n\t\t\treturn true\n\t\t}\n\t}\n\t// the transport explicitly set NextProtos and excluded http/2\n\treturn false\n}\n\ntype RoundTripperWrapper interface {\n\thttp.RoundTripper\n\tWrappedRoundTripper() http.RoundTripper\n}\n\ntype DialFunc func(ctx context.Context, net, addr string) (net.Conn, error)\n\nfunc DialerFor(transport http.RoundTripper) (DialFunc, error) {\n\tif transport == nil {\n\t\treturn nil, nil\n\t}\n\n\tswitch transport := transport.(type) {\n\tcase *http.Transport:\n\t\t// transport.DialContext takes precedence over transport.Dial\n\t\tif transport.DialContext != nil {\n\t\t\treturn transport.DialContext, nil\n\t\t}\n\t\t// adapt transport.Dial to the DialWithContext signature\n\t\tif transport.Dial != nil {\n\t\t\treturn func(ctx context.Context, net, addr string) (net.Conn, error) {\n\t\t\t\treturn transport.Dial(net, addr)\n\t\t\t}, nil\n\t\t}\n\t\t// otherwise return nil\n\t\treturn nil, nil\n\tcase RoundTripperWrapper:\n\t\treturn DialerFor(transport.WrappedRoundTripper())\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"unknown transport type: %T\", transport)\n\t}\n}\n\n// CloseIdleConnectionsFor close idles connections for the Transport.\n// If the Transport is wrapped it iterates over the wrapped round trippers\n// until it finds one that implements the CloseIdleConnections method.\n// If the Transport does not have a CloseIdleConnections method\n// then this function does nothing.\nfunc CloseIdleConnectionsFor(transport http.RoundTripper) {\n\tif transport == nil {\n\t\treturn\n\t}\n\ttype closeIdler interface {\n\t\tCloseIdleConnections()\n\t}\n\n\tswitch transport := transport.(type) {\n\tcase closeIdler:\n\t\ttransport.CloseIdleConnections()\n\tcase RoundTripperWrapper:\n\t\tCloseIdleConnectionsFor(transport.WrappedRoundTripper())\n\tdefault:\n\t\tklog.Warningf(\"unknown transport type: %T\", transport)\n\t}\n}\n\ntype TLSClientConfigHolder interface {\n\tTLSClientConfig() *tls.Config\n}\n\nfunc TLSClientConfig(transport http.RoundTripper) (*tls.Config, error) {\n\tif transport == nil {\n\t\treturn nil, nil\n\t}\n\n\tswitch transport := transport.(type) {\n\tcase *http.Transport:\n\t\treturn transport.TLSClientConfig, nil\n\tcase TLSClientConfigHolder:\n\t\treturn transport.TLSClientConfig(), nil\n\tcase RoundTripperWrapper:\n\t\treturn TLSClientConfig(transport.WrappedRoundTripper())\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"unknown transport type: %T\", transport)\n\t}\n}\n\nfunc FormatURL(scheme string, host string, port int, path string) *url.URL {\n\treturn &url.URL{\n\t\tScheme: scheme,\n\t\tHost:   net.JoinHostPort(host, strconv.Itoa(port)),\n\t\tPath:   path,\n\t}\n}\n\nfunc GetHTTPClient(req *http.Request) string {\n\tif ua := req.UserAgent(); len(ua) != 0 {\n\t\treturn ua\n\t}\n\treturn \"unknown\"\n}\n\n// SourceIPs splits the comma separated X-Forwarded-For header and joins it with\n// the X-Real-Ip header and/or req.RemoteAddr, ignoring invalid IPs.\n// The X-Real-Ip is omitted if it's already present in the X-Forwarded-For chain.\n// The req.RemoteAddr is always the last IP in the returned list.\n// It returns nil if all of these are empty or invalid.\nfunc SourceIPs(req *http.Request) []net.IP {\n\tvar srcIPs []net.IP\n\n\thdr := req.Header\n\t// First check the X-Forwarded-For header for requests via proxy.\n\thdrForwardedFor := hdr.Get(\"X-Forwarded-For\")\n\tif hdrForwardedFor != \"\" {\n\t\t// X-Forwarded-For can be a csv of IPs in case of multiple proxies.\n\t\t// Use the first valid one.\n\t\tparts := strings.Split(hdrForwardedFor, \",\")\n\t\tfor _, part := range parts {\n\t\t\tip := netutils.ParseIPSloppy(strings.TrimSpace(part))\n\t\t\tif ip != nil {\n\t\t\t\tsrcIPs = append(srcIPs, ip)\n\t\t\t}\n\t\t}\n\t}\n\n\t// Try the X-Real-Ip header.\n\thdrRealIp := hdr.Get(\"X-Real-Ip\")\n\tif hdrRealIp != \"\" {\n\t\tip := netutils.ParseIPSloppy(hdrRealIp)\n\t\t// Only append the X-Real-Ip if it's not already contained in the X-Forwarded-For chain.\n\t\tif ip != nil && !containsIP(srcIPs, ip) {\n\t\t\tsrcIPs = append(srcIPs, ip)\n\t\t}\n\t}\n\n\t// Always include the request Remote Address as it cannot be easily spoofed.\n\tvar remoteIP net.IP\n\t// Remote Address in Go's HTTP server is in the form host:port so we need to split that first.\n\thost, _, err := net.SplitHostPort(req.RemoteAddr)\n\tif err == nil {\n\t\tremoteIP = netutils.ParseIPSloppy(host)\n\t}\n\t// Fallback if Remote Address was just IP.\n\tif remoteIP == nil {\n\t\tremoteIP = netutils.ParseIPSloppy(req.RemoteAddr)\n\t}\n\n\t// Don't duplicate remote IP if it's already the last address in the chain.\n\tif remoteIP != nil && (len(srcIPs) == 0 || !remoteIP.Equal(srcIPs[len(srcIPs)-1])) {\n\t\tsrcIPs = append(srcIPs, remoteIP)\n\t}\n\n\treturn srcIPs\n}\n\n// Checks whether the given IP address is contained in the list of IPs.\nfunc containsIP(ips []net.IP, ip net.IP) bool {\n\tfor _, v := range ips {\n\t\tif v.Equal(ip) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// Extracts and returns the clients IP from the given request.\n// Looks at X-Forwarded-For header, X-Real-Ip header and request.RemoteAddr in that order.\n// Returns nil if none of them are set or is set to an invalid value.\nfunc GetClientIP(req *http.Request) net.IP {\n\tips := SourceIPs(req)\n\tif len(ips) == 0 {\n\t\treturn nil\n\t}\n\treturn ips[0]\n}\n\n// Prepares the X-Forwarded-For header for another forwarding hop by appending the previous sender's\n// IP address to the X-Forwarded-For chain.\nfunc AppendForwardedForHeader(req *http.Request) {\n\t// Copied from net/http/httputil/reverseproxy.go:\n\tif clientIP, _, err := net.SplitHostPort(req.RemoteAddr); err == nil {\n\t\t// If we aren't the first proxy retain prior\n\t\t// X-Forwarded-For information as a comma+space\n\t\t// separated list and fold multiple headers into one.\n\t\tif prior, ok := req.Header[\"X-Forwarded-For\"]; ok {\n\t\t\tclientIP = strings.Join(prior, \", \") + \", \" + clientIP\n\t\t}\n\t\treq.Header.Set(\"X-Forwarded-For\", clientIP)\n\t}\n}\n\nvar defaultProxyFuncPointer = fmt.Sprintf(\"%p\", http.ProxyFromEnvironment)\n\n// isDefault checks to see if the transportProxierFunc is pointing to the default one\nfunc isDefault(transportProxier func(*http.Request) (*url.URL, error)) bool {\n\ttransportProxierPointer := fmt.Sprintf(\"%p\", transportProxier)\n\treturn transportProxierPointer == defaultProxyFuncPointer\n}\n\n// NewProxierWithNoProxyCIDR constructs a Proxier function that respects CIDRs in NO_PROXY and delegates if\n// no matching CIDRs are found\nfunc NewProxierWithNoProxyCIDR(delegate func(req *http.Request) (*url.URL, error)) func(req *http.Request) (*url.URL, error) {\n\t// we wrap the default method, so we only need to perform our check if the NO_PROXY (or no_proxy) envvar has a CIDR in it\n\tnoProxyEnv := os.Getenv(\"NO_PROXY\")\n\tif noProxyEnv == \"\" {\n\t\tnoProxyEnv = os.Getenv(\"no_proxy\")\n\t}\n\tnoProxyRules := strings.Split(noProxyEnv, \",\")\n\n\tcidrs := []*net.IPNet{}\n\tfor _, noProxyRule := range noProxyRules {\n\t\t_, cidr, _ := netutils.ParseCIDRSloppy(noProxyRule)\n\t\tif cidr != nil {\n\t\t\tcidrs = append(cidrs, cidr)\n\t\t}\n\t}\n\n\tif len(cidrs) == 0 {\n\t\treturn delegate\n\t}\n\n\treturn func(req *http.Request) (*url.URL, error) {\n\t\tip := netutils.ParseIPSloppy(req.URL.Hostname())\n\t\tif ip == nil {\n\t\t\treturn delegate(req)\n\t\t}\n\n\t\tfor _, cidr := range cidrs {\n\t\t\tif cidr.Contains(ip) {\n\t\t\t\treturn nil, nil\n\t\t\t}\n\t\t}\n\n\t\treturn delegate(req)\n\t}\n}\n\n// DialerFunc implements Dialer for the provided function.\ntype DialerFunc func(req *http.Request) (net.Conn, error)\n\nfunc (fn DialerFunc) Dial(req *http.Request) (net.Conn, error) {\n\treturn fn(req)\n}\n\n// Dialer dials a host and writes a request to it.\ntype Dialer interface {\n\t// Dial connects to the host specified by req's URL, writes the request to the connection, and\n\t// returns the opened net.Conn.\n\tDial(req *http.Request) (net.Conn, error)\n}\n\n// CloneRequest creates a shallow copy of the request along with a deep copy of the Headers.\nfunc CloneRequest(req *http.Request) *http.Request {\n\tr := new(http.Request)\n\n\t// shallow clone\n\t*r = *req\n\n\t// deep copy headers\n\tr.Header = CloneHeader(req.Header)\n\n\treturn r\n}\n\n// CloneHeader creates a deep copy of an http.Header.\nfunc CloneHeader(in http.Header) http.Header {\n\tout := make(http.Header, len(in))\n\tfor key, values := range in {\n\t\tnewValues := make([]string, len(values))\n\t\tcopy(newValues, values)\n\t\tout[key] = newValues\n\t}\n\treturn out\n}\n\n// WarningHeader contains a single RFC2616 14.46 warnings header\ntype WarningHeader struct {\n\t// Codeindicates the type of warning. 299 is a miscellaneous persistent warning\n\tCode int\n\t// Agent contains the name or pseudonym of the server adding the Warning header.\n\t// A single \"-\" is recommended when agent is unknown.\n\tAgent string\n\t// Warning text\n\tText string\n}\n\n// ParseWarningHeaders extract RFC2616 14.46 warnings headers from the specified set of header values.\n// Multiple comma-separated warnings per header are supported.\n// If errors are encountered on a header, the remainder of that header are skipped and subsequent headers are parsed.\n// Returns successfully parsed warnings and any errors encountered.\nfunc ParseWarningHeaders(headers []string) ([]WarningHeader, []error) {\n\tvar (\n\t\tresults []WarningHeader\n\t\terrs    []error\n\t)\n\tfor _, header := range headers {\n\t\tfor len(header) > 0 {\n\t\t\tresult, remainder, err := ParseWarningHeader(header)\n\t\t\tif err != nil {\n\t\t\t\terrs = append(errs, err)\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tresults = append(results, result)\n\t\t\theader = remainder\n\t\t}\n\t}\n\treturn results, errs\n}\n\nvar (\n\tcodeMatcher = regexp.MustCompile(`^[0-9]{3}$`)\n\twordDecoder = &mime.WordDecoder{}\n)\n\n// ParseWarningHeader extracts one RFC2616 14.46 warning from the specified header,\n// returning an error if the header does not contain a correctly formatted warning.\n// Any remaining content in the header is returned.\nfunc ParseWarningHeader(header string) (result WarningHeader, remainder string, err error) {\n\t// https://tools.ietf.org/html/rfc2616#section-14.46\n\t//   updated by\n\t// https://tools.ietf.org/html/rfc7234#section-5.5\n\t//   https://tools.ietf.org/html/rfc7234#appendix-A\n\t//     Some requirements regarding production and processing of the Warning\n\t//     header fields have been relaxed, as it is not widely implemented.\n\t//     Furthermore, the Warning header field no longer uses RFC 2047\n\t//     encoding, nor does it allow multiple languages, as these aspects were\n\t//     not implemented.\n\t//\n\t// Format is one of:\n\t// warn-code warn-agent \"warn-text\"\n\t// warn-code warn-agent \"warn-text\" \"warn-date\"\n\t//\n\t// warn-code is a three digit number\n\t// warn-agent is unquoted and contains no spaces\n\t// warn-text is quoted with backslash escaping (RFC2047-encoded according to RFC2616, not encoded according to RFC7234)\n\t// warn-date is optional, quoted, and in HTTP-date format (no embedded or escaped quotes)\n\t//\n\t// additional warnings can optionally be included in the same header by comma-separating them:\n\t// warn-code warn-agent \"warn-text\" \"warn-date\"[, warn-code warn-agent \"warn-text\" \"warn-date\", ...]\n\n\t// tolerate leading whitespace\n\theader = strings.TrimSpace(header)\n\n\tparts := strings.SplitN(header, \" \", 3)\n\tif len(parts) != 3 {\n\t\treturn WarningHeader{}, \"\", errors.New(\"invalid warning header: fewer than 3 segments\")\n\t}\n\tcode, agent, textDateRemainder := parts[0], parts[1], parts[2]\n\n\t// verify code format\n\tif !codeMatcher.Match([]byte(code)) {\n\t\treturn WarningHeader{}, \"\", errors.New(\"invalid warning header: code segment is not 3 digits between 100-299\")\n\t}\n\tcodeInt, _ := strconv.ParseInt(code, 10, 64)\n\n\t// verify agent presence\n\tif len(agent) == 0 {\n\t\treturn WarningHeader{}, \"\", errors.New(\"invalid warning header: empty agent segment\")\n\t}\n\tif !utf8.ValidString(agent) || hasAnyRunes(agent, unicode.IsControl) {\n\t\treturn WarningHeader{}, \"\", errors.New(\"invalid warning header: invalid agent\")\n\t}\n\n\t// verify textDateRemainder presence\n\tif len(textDateRemainder) == 0 {\n\t\treturn WarningHeader{}, \"\", errors.New(\"invalid warning header: empty text segment\")\n\t}\n\n\t// extract text\n\ttext, dateAndRemainder, err := parseQuotedString(textDateRemainder)\n\tif err != nil {\n\t\treturn WarningHeader{}, \"\", fmt.Errorf(\"invalid warning header: %v\", err)\n\t}\n\t// tolerate RFC2047-encoded text from warnings produced according to RFC2616\n\tif decodedText, err := wordDecoder.DecodeHeader(text); err == nil {\n\t\ttext = decodedText\n\t}\n\tif !utf8.ValidString(text) || hasAnyRunes(text, unicode.IsControl) {\n\t\treturn WarningHeader{}, \"\", errors.New(\"invalid warning header: invalid text\")\n\t}\n\tresult = WarningHeader{Code: int(codeInt), Agent: agent, Text: text}\n\n\tif len(dateAndRemainder) > 0 {\n\t\tif dateAndRemainder[0] == '\"' {\n\t\t\t// consume date\n\t\t\tfoundEndQuote := false\n\t\t\tfor i := 1; i < len(dateAndRemainder); i++ {\n\t\t\t\tif dateAndRemainder[i] == '\"' {\n\t\t\t\t\tfoundEndQuote = true\n\t\t\t\t\tremainder = strings.TrimSpace(dateAndRemainder[i+1:])\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !foundEndQuote {\n\t\t\t\treturn WarningHeader{}, \"\", errors.New(\"invalid warning header: unterminated date segment\")\n\t\t\t}\n\t\t} else {\n\t\t\tremainder = dateAndRemainder\n\t\t}\n\t}\n\tif len(remainder) > 0 {\n\t\tif remainder[0] == ',' {\n\t\t\t// consume comma if present\n\t\t\tremainder = strings.TrimSpace(remainder[1:])\n\t\t} else {\n\t\t\treturn WarningHeader{}, \"\", errors.New(\"invalid warning header: unexpected token after warn-date\")\n\t\t}\n\t}\n\n\treturn result, remainder, nil\n}\n\nfunc parseQuotedString(quotedString string) (string, string, error) {\n\tif len(quotedString) == 0 {\n\t\treturn \"\", \"\", errors.New(\"invalid quoted string: 0-length\")\n\t}\n\n\tif quotedString[0] != '\"' {\n\t\treturn \"\", \"\", errors.New(\"invalid quoted string: missing initial quote\")\n\t}\n\n\tquotedString = quotedString[1:]\n\tvar remainder string\n\tescaping := false\n\tclosedQuote := false\n\tresult := &strings.Builder{}\nloop:\n\tfor i := 0; i < len(quotedString); i++ {\n\t\tb := quotedString[i]\n\t\tswitch b {\n\t\tcase '\"':\n\t\t\tif escaping {\n\t\t\t\tresult.WriteByte(b)\n\t\t\t\tescaping = false\n\t\t\t} else {\n\t\t\t\tclosedQuote = true\n\t\t\t\tremainder = strings.TrimSpace(quotedString[i+1:])\n\t\t\t\tbreak loop\n\t\t\t}\n\t\tcase '\\\\':\n\t\t\tif escaping {\n\t\t\t\tresult.WriteByte(b)\n\t\t\t\tescaping = false\n\t\t\t} else {\n\t\t\t\tescaping = true\n\t\t\t}\n\t\tdefault:\n\t\t\tresult.WriteByte(b)\n\t\t\tescaping = false\n\t\t}\n\t}\n\n\tif !closedQuote {\n\t\treturn \"\", \"\", errors.New(\"invalid quoted string: missing closing quote\")\n\t}\n\treturn result.String(), remainder, nil\n}\n\nfunc NewWarningHeader(code int, agent, text string) (string, error) {\n\tif code < 0 || code > 999 {\n\t\treturn \"\", errors.New(\"code must be between 0 and 999\")\n\t}\n\tif len(agent) == 0 {\n\t\tagent = \"-\"\n\t} else if !utf8.ValidString(agent) || strings.ContainsAny(agent, `\\\"`) || hasAnyRunes(agent, unicode.IsSpace, unicode.IsControl) {\n\t\treturn \"\", errors.New(\"agent must be valid UTF-8 and must not contain spaces, quotes, backslashes, or control characters\")\n\t}\n\tif !utf8.ValidString(text) || hasAnyRunes(text, unicode.IsControl) {\n\t\treturn \"\", errors.New(\"text must be valid UTF-8 and must not contain control characters\")\n\t}\n\treturn fmt.Sprintf(\"%03d %s %s\", code, agent, makeQuotedString(text)), nil\n}\n\nfunc hasAnyRunes(s string, runeCheckers ...func(rune) bool) bool {\n\tfor _, r := range s {\n\t\tfor _, checker := range runeCheckers {\n\t\t\tif checker(r) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t}\n\treturn false\n}\n\nfunc makeQuotedString(s string) string {\n\tresult := &bytes.Buffer{}\n\t// opening quote\n\tresult.WriteRune('\"')\n\tfor _, c := range s {\n\t\tswitch c {\n\t\tcase '\"', '\\\\':\n\t\t\t// escape \" and \\\n\t\t\tresult.WriteRune('\\\\')\n\t\t\tresult.WriteRune(c)\n\t\tdefault:\n\t\t\t// write everything else as-is\n\t\t\tresult.WriteRune(c)\n\t\t}\n\t}\n\t// closing quote\n\tresult.WriteRune('\"')\n\treturn result.String()\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/net/interface.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage net\n\nimport (\n\t\"bufio\"\n\t\"encoding/hex\"\n\t\"fmt\"\n\t\"io\"\n\t\"net\"\n\t\"os\"\n\n\t\"strings\"\n\n\t\"k8s.io/klog/v2\"\n\tnetutils \"k8s.io/utils/net\"\n)\n\ntype AddressFamily uint\n\nconst (\n\tfamilyIPv4 AddressFamily = 4\n\tfamilyIPv6 AddressFamily = 6\n)\n\ntype AddressFamilyPreference []AddressFamily\n\nvar (\n\tpreferIPv4 = AddressFamilyPreference{familyIPv4, familyIPv6}\n\tpreferIPv6 = AddressFamilyPreference{familyIPv6, familyIPv4}\n)\n\nconst (\n\t// LoopbackInterfaceName is the default name of the loopback interface\n\tLoopbackInterfaceName = \"lo\"\n)\n\nconst (\n\tipv4RouteFile = \"/proc/net/route\"\n\tipv6RouteFile = \"/proc/net/ipv6_route\"\n)\n\ntype Route struct {\n\tInterface   string\n\tDestination net.IP\n\tGateway     net.IP\n\tFamily      AddressFamily\n}\n\ntype RouteFile struct {\n\tname  string\n\tparse func(input io.Reader) ([]Route, error)\n}\n\n// noRoutesError can be returned in case of no routes\ntype noRoutesError struct {\n\tmessage string\n}\n\nfunc (e noRoutesError) Error() string {\n\treturn e.message\n}\n\n// IsNoRoutesError checks if an error is of type noRoutesError\nfunc IsNoRoutesError(err error) bool {\n\tif err == nil {\n\t\treturn false\n\t}\n\tswitch err.(type) {\n\tcase noRoutesError:\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\nvar (\n\tv4File = RouteFile{name: ipv4RouteFile, parse: getIPv4DefaultRoutes}\n\tv6File = RouteFile{name: ipv6RouteFile, parse: getIPv6DefaultRoutes}\n)\n\nfunc (rf RouteFile) extract() ([]Route, error) {\n\tfile, err := os.Open(rf.name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer file.Close()\n\treturn rf.parse(file)\n}\n\n// getIPv4DefaultRoutes obtains the IPv4 routes, and filters out non-default routes.\nfunc getIPv4DefaultRoutes(input io.Reader) ([]Route, error) {\n\troutes := []Route{}\n\tscanner := bufio.NewReader(input)\n\tfor {\n\t\tline, err := scanner.ReadString('\\n')\n\t\tif err == io.EOF {\n\t\t\tbreak\n\t\t}\n\t\t//ignore the headers in the route info\n\t\tif strings.HasPrefix(line, \"Iface\") {\n\t\t\tcontinue\n\t\t}\n\t\tfields := strings.Fields(line)\n\t\t// Interested in fields:\n\t\t//  0 - interface name\n\t\t//  1 - destination address\n\t\t//  2 - gateway\n\t\tdest, err := parseIP(fields[1], familyIPv4)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tgw, err := parseIP(fields[2], familyIPv4)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif !dest.Equal(net.IPv4zero) {\n\t\t\tcontinue\n\t\t}\n\t\troutes = append(routes, Route{\n\t\t\tInterface:   fields[0],\n\t\t\tDestination: dest,\n\t\t\tGateway:     gw,\n\t\t\tFamily:      familyIPv4,\n\t\t})\n\t}\n\treturn routes, nil\n}\n\nfunc getIPv6DefaultRoutes(input io.Reader) ([]Route, error) {\n\troutes := []Route{}\n\tscanner := bufio.NewReader(input)\n\tfor {\n\t\tline, err := scanner.ReadString('\\n')\n\t\tif err == io.EOF {\n\t\t\tbreak\n\t\t}\n\t\tfields := strings.Fields(line)\n\t\t// Interested in fields:\n\t\t//  0 - destination address\n\t\t//  4 - gateway\n\t\t//  9 - interface name\n\t\tdest, err := parseIP(fields[0], familyIPv6)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tgw, err := parseIP(fields[4], familyIPv6)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif !dest.Equal(net.IPv6zero) {\n\t\t\tcontinue\n\t\t}\n\t\tif gw.Equal(net.IPv6zero) {\n\t\t\tcontinue // loopback\n\t\t}\n\t\troutes = append(routes, Route{\n\t\t\tInterface:   fields[9],\n\t\t\tDestination: dest,\n\t\t\tGateway:     gw,\n\t\t\tFamily:      familyIPv6,\n\t\t})\n\t}\n\treturn routes, nil\n}\n\n// parseIP takes the hex IP address string from route file and converts it\n// to a net.IP address. For IPv4, the value must be converted to big endian.\nfunc parseIP(str string, family AddressFamily) (net.IP, error) {\n\tif str == \"\" {\n\t\treturn nil, fmt.Errorf(\"input is nil\")\n\t}\n\tbytes, err := hex.DecodeString(str)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif family == familyIPv4 {\n\t\tif len(bytes) != net.IPv4len {\n\t\t\treturn nil, fmt.Errorf(\"invalid IPv4 address in route\")\n\t\t}\n\t\treturn net.IP([]byte{bytes[3], bytes[2], bytes[1], bytes[0]}), nil\n\t}\n\t// Must be IPv6\n\tif len(bytes) != net.IPv6len {\n\t\treturn nil, fmt.Errorf(\"invalid IPv6 address in route\")\n\t}\n\treturn net.IP(bytes), nil\n}\n\nfunc isInterfaceUp(intf *net.Interface) bool {\n\tif intf == nil {\n\t\treturn false\n\t}\n\tif intf.Flags&net.FlagUp != 0 {\n\t\tklog.V(4).Infof(\"Interface %v is up\", intf.Name)\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc isLoopbackOrPointToPoint(intf *net.Interface) bool {\n\treturn intf.Flags&(net.FlagLoopback|net.FlagPointToPoint) != 0\n}\n\n// getMatchingGlobalIP returns the first valid global unicast address of the given\n// 'family' from the list of 'addrs'.\nfunc getMatchingGlobalIP(addrs []net.Addr, family AddressFamily) (net.IP, error) {\n\tif len(addrs) > 0 {\n\t\tfor i := range addrs {\n\t\t\tklog.V(4).Infof(\"Checking addr  %s.\", addrs[i].String())\n\t\t\tip, _, err := netutils.ParseCIDRSloppy(addrs[i].String())\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tif memberOf(ip, family) {\n\t\t\t\tif ip.IsGlobalUnicast() {\n\t\t\t\t\tklog.V(4).Infof(\"IP found %v\", ip)\n\t\t\t\t\treturn ip, nil\n\t\t\t\t} else {\n\t\t\t\t\tklog.V(4).Infof(\"Non-global unicast address found %v\", ip)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tklog.V(4).Infof(\"%v is not an IPv%d address\", ip, int(family))\n\t\t\t}\n\n\t\t}\n\t}\n\treturn nil, nil\n}\n\n// getIPFromInterface gets the IPs on an interface and returns a global unicast address, if any. The\n// interface must be up, the IP must in the family requested, and the IP must be a global unicast address.\nfunc getIPFromInterface(intfName string, forFamily AddressFamily, nw networkInterfacer) (net.IP, error) {\n\tintf, err := nw.InterfaceByName(intfName)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif isInterfaceUp(intf) {\n\t\taddrs, err := nw.Addrs(intf)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tklog.V(4).Infof(\"Interface %q has %d addresses :%v.\", intfName, len(addrs), addrs)\n\t\tmatchingIP, err := getMatchingGlobalIP(addrs, forFamily)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif matchingIP != nil {\n\t\t\tklog.V(4).Infof(\"Found valid IPv%d address %v for interface %q.\", int(forFamily), matchingIP, intfName)\n\t\t\treturn matchingIP, nil\n\t\t}\n\t}\n\treturn nil, nil\n}\n\n// getIPFromLoopbackInterface gets the IPs on a loopback interface and returns a global unicast address, if any.\n// The loopback interface must be up, the IP must in the family requested, and the IP must be a global unicast address.\nfunc getIPFromLoopbackInterface(forFamily AddressFamily, nw networkInterfacer) (net.IP, error) {\n\tintfs, err := nw.Interfaces()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tfor _, intf := range intfs {\n\t\tif !isInterfaceUp(&intf) {\n\t\t\tcontinue\n\t\t}\n\t\tif intf.Flags&(net.FlagLoopback) != 0 {\n\t\t\taddrs, err := nw.Addrs(&intf)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tklog.V(4).Infof(\"Interface %q has %d addresses :%v.\", intf.Name, len(addrs), addrs)\n\t\t\tmatchingIP, err := getMatchingGlobalIP(addrs, forFamily)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tif matchingIP != nil {\n\t\t\t\tklog.V(4).Infof(\"Found valid IPv%d address %v for interface %q.\", int(forFamily), matchingIP, intf.Name)\n\t\t\t\treturn matchingIP, nil\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, nil\n}\n\n// memberOf tells if the IP is of the desired family. Used for checking interface addresses.\nfunc memberOf(ip net.IP, family AddressFamily) bool {\n\tif ip.To4() != nil {\n\t\treturn family == familyIPv4\n\t} else {\n\t\treturn family == familyIPv6\n\t}\n}\n\n// chooseIPFromHostInterfaces looks at all system interfaces, trying to find one that is up that\n// has a global unicast address (non-loopback, non-link local, non-point2point), and returns the IP.\n// addressFamilies determines whether it prefers IPv4 or IPv6\nfunc chooseIPFromHostInterfaces(nw networkInterfacer, addressFamilies AddressFamilyPreference) (net.IP, error) {\n\tintfs, err := nw.Interfaces()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif len(intfs) == 0 {\n\t\treturn nil, fmt.Errorf(\"no interfaces found on host.\")\n\t}\n\tfor _, family := range addressFamilies {\n\t\tklog.V(4).Infof(\"Looking for system interface with a global IPv%d address\", uint(family))\n\t\tfor _, intf := range intfs {\n\t\t\tif !isInterfaceUp(&intf) {\n\t\t\t\tklog.V(4).Infof(\"Skipping: down interface %q\", intf.Name)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif isLoopbackOrPointToPoint(&intf) {\n\t\t\t\tklog.V(4).Infof(\"Skipping: LB or P2P interface %q\", intf.Name)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\taddrs, err := nw.Addrs(&intf)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tif len(addrs) == 0 {\n\t\t\t\tklog.V(4).Infof(\"Skipping: no addresses on interface %q\", intf.Name)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tfor _, addr := range addrs {\n\t\t\t\tip, _, err := netutils.ParseCIDRSloppy(addr.String())\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, fmt.Errorf(\"unable to parse CIDR for interface %q: %s\", intf.Name, err)\n\t\t\t\t}\n\t\t\t\tif !memberOf(ip, family) {\n\t\t\t\t\tklog.V(4).Infof(\"Skipping: no address family match for %q on interface %q.\", ip, intf.Name)\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\t// TODO: Decide if should open up to allow IPv6 LLAs in future.\n\t\t\t\tif !ip.IsGlobalUnicast() {\n\t\t\t\t\tklog.V(4).Infof(\"Skipping: non-global address %q on interface %q.\", ip, intf.Name)\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tklog.V(4).Infof(\"Found global unicast address %q on interface %q.\", ip, intf.Name)\n\t\t\t\treturn ip, nil\n\t\t\t}\n\t\t}\n\t}\n\treturn nil, fmt.Errorf(\"no acceptable interface with global unicast address found on host\")\n}\n\n// ChooseHostInterface is a method used fetch an IP for a daemon.\n// If there is no routing info file, it will choose a global IP from the system\n// interfaces. Otherwise, it will use IPv4 and IPv6 route information to return the\n// IP of the interface with a gateway on it (with priority given to IPv4). For a node\n// with no internet connection, it returns error.\nfunc ChooseHostInterface() (net.IP, error) {\n\treturn chooseHostInterface(preferIPv4)\n}\n\nfunc chooseHostInterface(addressFamilies AddressFamilyPreference) (net.IP, error) {\n\tvar nw networkInterfacer = networkInterface{}\n\tif _, err := os.Stat(ipv4RouteFile); os.IsNotExist(err) {\n\t\treturn chooseIPFromHostInterfaces(nw, addressFamilies)\n\t}\n\troutes, err := getAllDefaultRoutes()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn chooseHostInterfaceFromRoute(routes, nw, addressFamilies)\n}\n\n// networkInterfacer defines an interface for several net library functions. Production\n// code will forward to net library functions, and unit tests will override the methods\n// for testing purposes.\ntype networkInterfacer interface {\n\tInterfaceByName(intfName string) (*net.Interface, error)\n\tAddrs(intf *net.Interface) ([]net.Addr, error)\n\tInterfaces() ([]net.Interface, error)\n}\n\n// networkInterface implements the networkInterfacer interface for production code, just\n// wrapping the underlying net library function calls.\ntype networkInterface struct{}\n\nfunc (_ networkInterface) InterfaceByName(intfName string) (*net.Interface, error) {\n\treturn net.InterfaceByName(intfName)\n}\n\nfunc (_ networkInterface) Addrs(intf *net.Interface) ([]net.Addr, error) {\n\treturn intf.Addrs()\n}\n\nfunc (_ networkInterface) Interfaces() ([]net.Interface, error) {\n\treturn net.Interfaces()\n}\n\n// getAllDefaultRoutes obtains IPv4 and IPv6 default routes on the node. If unable\n// to read the IPv4 routing info file, we return an error. If unable to read the IPv6\n// routing info file (which is optional), we'll just use the IPv4 route information.\n// Using all the routing info, if no default routes are found, an error is returned.\nfunc getAllDefaultRoutes() ([]Route, error) {\n\troutes, err := v4File.extract()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tv6Routes, _ := v6File.extract()\n\troutes = append(routes, v6Routes...)\n\tif len(routes) == 0 {\n\t\treturn nil, noRoutesError{\n\t\t\tmessage: fmt.Sprintf(\"no default routes found in %q or %q\", v4File.name, v6File.name),\n\t\t}\n\t}\n\treturn routes, nil\n}\n\n// chooseHostInterfaceFromRoute cycles through each default route provided, looking for a\n// global IP address from the interface for the route. If there are routes but no global\n// address is obtained from the interfaces, it checks if the loopback interface has a global address.\n// addressFamilies determines whether it prefers IPv4 or IPv6\nfunc chooseHostInterfaceFromRoute(routes []Route, nw networkInterfacer, addressFamilies AddressFamilyPreference) (net.IP, error) {\n\tfor _, family := range addressFamilies {\n\t\tklog.V(4).Infof(\"Looking for default routes with IPv%d addresses\", uint(family))\n\t\tfor _, route := range routes {\n\t\t\tif route.Family != family {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tklog.V(4).Infof(\"Default route transits interface %q\", route.Interface)\n\t\t\tfinalIP, err := getIPFromInterface(route.Interface, family, nw)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tif finalIP != nil {\n\t\t\t\tklog.V(4).Infof(\"Found active IP %v \", finalIP)\n\t\t\t\treturn finalIP, nil\n\t\t\t}\n\t\t\t// In case of network setups where default routes are present, but network\n\t\t\t// interfaces use only link-local addresses (e.g. as described in RFC5549).\n\t\t\t// the global IP is assigned to the loopback interface, and we should use it\n\t\t\tloopbackIP, err := getIPFromLoopbackInterface(family, nw)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tif loopbackIP != nil {\n\t\t\t\tklog.V(4).Infof(\"Found active IP %v on Loopback interface\", loopbackIP)\n\t\t\t\treturn loopbackIP, nil\n\t\t\t}\n\t\t}\n\t}\n\tklog.V(4).Infof(\"No active IP found by looking at default routes\")\n\treturn nil, fmt.Errorf(\"unable to select an IP from default routes.\")\n}\n\n// ResolveBindAddress returns the IP address of a daemon, based on the given bindAddress:\n// If bindAddress is unset, it returns the host's default IP, as with ChooseHostInterface().\n// If bindAddress is unspecified or loopback, it returns the default IP of the same\n// address family as bindAddress.\n// Otherwise, it just returns bindAddress.\nfunc ResolveBindAddress(bindAddress net.IP) (net.IP, error) {\n\taddressFamilies := preferIPv4\n\tif bindAddress != nil && memberOf(bindAddress, familyIPv6) {\n\t\taddressFamilies = preferIPv6\n\t}\n\n\tif bindAddress == nil || bindAddress.IsUnspecified() || bindAddress.IsLoopback() {\n\t\thostIP, err := chooseHostInterface(addressFamilies)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tbindAddress = hostIP\n\t}\n\treturn bindAddress, nil\n}\n\n// ChooseBindAddressForInterface choose a global IP for a specific interface, with priority given to IPv4.\n// This is required in case of network setups where default routes are present, but network\n// interfaces use only link-local addresses (e.g. as described in RFC5549).\n// e.g when using BGP to announce a host IP over link-local ip addresses and this ip address is attached to the lo interface.\nfunc ChooseBindAddressForInterface(intfName string) (net.IP, error) {\n\tvar nw networkInterfacer = networkInterface{}\n\tfor _, family := range preferIPv4 {\n\t\tip, err := getIPFromInterface(intfName, family, nw)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif ip != nil {\n\t\t\treturn ip, nil\n\t\t}\n\t}\n\treturn nil, fmt.Errorf(\"unable to select an IP from %s network interface\", intfName)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/net/port_range.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage net\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// PortRange represents a range of TCP/UDP ports.  To represent a single port,\n// set Size to 1.\ntype PortRange struct {\n\tBase int\n\tSize int\n}\n\n// Contains tests whether a given port falls within the PortRange.\nfunc (pr *PortRange) Contains(p int) bool {\n\treturn (p >= pr.Base) && ((p - pr.Base) < pr.Size)\n}\n\n// String converts the PortRange to a string representation, which can be\n// parsed by PortRange.Set or ParsePortRange.\nfunc (pr PortRange) String() string {\n\tif pr.Size == 0 {\n\t\treturn \"\"\n\t}\n\treturn fmt.Sprintf(\"%d-%d\", pr.Base, pr.Base+pr.Size-1)\n}\n\n// Set parses a string of the form \"value\", \"min-max\", or \"min+offset\", inclusive at both ends, and\n// sets the PortRange from it.  This is part of the flag.Value and pflag.Value\n// interfaces.\nfunc (pr *PortRange) Set(value string) error {\n\tconst (\n\t\tSinglePortNotation = 1 << iota\n\t\tHyphenNotation\n\t\tPlusNotation\n\t)\n\n\tvalue = strings.TrimSpace(value)\n\thyphenIndex := strings.Index(value, \"-\")\n\tplusIndex := strings.Index(value, \"+\")\n\n\tif value == \"\" {\n\t\tpr.Base = 0\n\t\tpr.Size = 0\n\t\treturn nil\n\t}\n\n\tvar err error\n\tvar low, high int\n\tvar notation int\n\n\tif plusIndex == -1 && hyphenIndex == -1 {\n\t\tnotation |= SinglePortNotation\n\t}\n\tif hyphenIndex != -1 {\n\t\tnotation |= HyphenNotation\n\t}\n\tif plusIndex != -1 {\n\t\tnotation |= PlusNotation\n\t}\n\n\tswitch notation {\n\tcase SinglePortNotation:\n\t\tvar port int\n\t\tport, err = strconv.Atoi(value)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlow = port\n\t\thigh = port\n\tcase HyphenNotation:\n\t\tlow, err = strconv.Atoi(value[:hyphenIndex])\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\thigh, err = strconv.Atoi(value[hyphenIndex+1:])\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\tcase PlusNotation:\n\t\tvar offset int\n\t\tlow, err = strconv.Atoi(value[:plusIndex])\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\toffset, err = strconv.Atoi(value[plusIndex+1:])\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\thigh = low + offset\n\tdefault:\n\t\treturn fmt.Errorf(\"unable to parse port range: %s\", value)\n\t}\n\n\tif low > 65535 || high > 65535 {\n\t\treturn fmt.Errorf(\"the port range cannot be greater than 65535: %s\", value)\n\t}\n\n\tif high < low {\n\t\treturn fmt.Errorf(\"end port cannot be less than start port: %s\", value)\n\t}\n\n\tpr.Base = low\n\tpr.Size = 1 + high - low\n\treturn nil\n}\n\n// Type returns a descriptive string about this type.  This is part of the\n// pflag.Value interface.\nfunc (*PortRange) Type() string {\n\treturn \"portRange\"\n}\n\n// ParsePortRange parses a string of the form \"min-max\", inclusive at both\n// ends, and initializes a new PortRange from it.\nfunc ParsePortRange(value string) (*PortRange, error) {\n\tpr := &PortRange{}\n\terr := pr.Set(value)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn pr, nil\n}\n\nfunc ParsePortRangeOrDie(value string) *PortRange {\n\tpr, err := ParsePortRange(value)\n\tif err != nil {\n\t\tpanic(fmt.Sprintf(\"couldn't parse port range %q: %v\", value, err))\n\t}\n\treturn pr\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/net/port_split.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage net\n\nimport (\n\t\"strings\"\n\n\t\"k8s.io/apimachinery/pkg/util/sets\"\n)\n\nvar validSchemes = sets.NewString(\"http\", \"https\", \"\")\n\n// SplitSchemeNamePort takes a string of the following forms:\n//   - \"<name>\",                 returns \"\",        \"<name>\",\"\",      true\n//   - \"<name>:<port>\",          returns \"\",        \"<name>\",\"<port>\",true\n//   - \"<scheme>:<name>:<port>\", returns \"<scheme>\",\"<name>\",\"<port>\",true\n//\n// Name must be non-empty or valid will be returned false.\n// Scheme must be \"http\" or \"https\" if specified\n// Port is returned as a string, and it is not required to be numeric (could be\n// used for a named port, for example).\nfunc SplitSchemeNamePort(id string) (scheme, name, port string, valid bool) {\n\tparts := strings.Split(id, \":\")\n\tswitch len(parts) {\n\tcase 1:\n\t\tname = parts[0]\n\tcase 2:\n\t\tname = parts[0]\n\t\tport = parts[1]\n\tcase 3:\n\t\tscheme = parts[0]\n\t\tname = parts[1]\n\t\tport = parts[2]\n\tdefault:\n\t\treturn \"\", \"\", \"\", false\n\t}\n\n\tif len(name) > 0 && validSchemes.Has(scheme) {\n\t\treturn scheme, name, port, true\n\t} else {\n\t\treturn \"\", \"\", \"\", false\n\t}\n}\n\n// JoinSchemeNamePort returns a string that specifies the scheme, name, and port:\n//   - \"<name>\"\n//   - \"<name>:<port>\"\n//   - \"<scheme>:<name>:<port>\"\n//\n// None of the parameters may contain a ':' character\n// Name is required\n// Scheme must be \"\", \"http\", or \"https\"\nfunc JoinSchemeNamePort(scheme, name, port string) string {\n\tif len(scheme) > 0 {\n\t\t// Must include three segments to specify scheme\n\t\treturn scheme + \":\" + name + \":\" + port\n\t}\n\tif len(port) > 0 {\n\t\t// Must include two segments to specify port\n\t\treturn name + \":\" + port\n\t}\n\t// Return name alone\n\treturn name\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/net/util.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage net\n\nimport (\n\t\"errors\"\n\t\"net\"\n\t\"reflect\"\n\t\"strings\"\n\t\"syscall\"\n)\n\n// IPNetEqual checks if the two input IPNets are representing the same subnet.\n// For example,\n//\n//\t10.0.0.1/24 and 10.0.0.0/24 are the same subnet.\n//\t10.0.0.1/24 and 10.0.0.0/25 are not the same subnet.\nfunc IPNetEqual(ipnet1, ipnet2 *net.IPNet) bool {\n\tif ipnet1 == nil || ipnet2 == nil {\n\t\treturn false\n\t}\n\tif reflect.DeepEqual(ipnet1.Mask, ipnet2.Mask) && ipnet1.Contains(ipnet2.IP) && ipnet2.Contains(ipnet1.IP) {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// Returns if the given err is \"connection reset by peer\" error.\nfunc IsConnectionReset(err error) bool {\n\tvar errno syscall.Errno\n\tif errors.As(err, &errno) {\n\t\treturn errno == syscall.ECONNRESET\n\t}\n\treturn false\n}\n\n// Returns if the given err is \"http2: client connection lost\" error.\nfunc IsHTTP2ConnectionLost(err error) bool {\n\treturn err != nil && strings.Contains(err.Error(), \"http2: client connection lost\")\n}\n\n// Returns if the given err is \"connection refused\" error\nfunc IsConnectionRefused(err error) bool {\n\tvar errno syscall.Errno\n\tif errors.As(err, &errno) {\n\t\treturn errno == syscall.ECONNREFUSED\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/runtime/runtime.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage runtime\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"runtime\"\n\t\"sync\"\n\t\"time\"\n\n\t\"k8s.io/klog/v2\"\n)\n\nvar (\n\t// ReallyCrash controls the behavior of HandleCrash and defaults to\n\t// true. It's exposed so components can optionally set to false\n\t// to restore prior behavior. This flag is mostly used for tests to validate\n\t// crash conditions.\n\tReallyCrash = true\n)\n\n// PanicHandlers is a list of functions which will be invoked when a panic happens.\nvar PanicHandlers = []func(context.Context, interface{}){logPanic}\n\n// HandleCrash simply catches a crash and logs an error. Meant to be called via\n// defer.  Additional context-specific handlers can be provided, and will be\n// called in case of panic.  HandleCrash actually crashes, after calling the\n// handlers and logging the panic message.\n//\n// E.g., you can provide one or more additional handlers for something like shutting down go routines gracefully.\n//\n// Contextual logging: HandleCrashWithContext should be used instead of HandleCrash in code which supports contextual logging.\nfunc HandleCrash(additionalHandlers ...func(interface{})) {\n\tif r := recover(); r != nil {\n\t\tadditionalHandlersWithContext := make([]func(context.Context, interface{}), len(additionalHandlers))\n\t\tfor i, handler := range additionalHandlers {\n\t\t\thandler := handler // capture loop variable\n\t\t\tadditionalHandlersWithContext[i] = func(_ context.Context, r interface{}) {\n\t\t\t\thandler(r)\n\t\t\t}\n\t\t}\n\n\t\thandleCrash(context.Background(), r, additionalHandlersWithContext...)\n\t}\n}\n\n// HandleCrashWithContext simply catches a crash and logs an error. Meant to be called via\n// defer.  Additional context-specific handlers can be provided, and will be\n// called in case of panic.  HandleCrash actually crashes, after calling the\n// handlers and logging the panic message.\n//\n// E.g., you can provide one or more additional handlers for something like shutting down go routines gracefully.\n//\n// The context is used to determine how to log.\nfunc HandleCrashWithContext(ctx context.Context, additionalHandlers ...func(context.Context, interface{})) {\n\tif r := recover(); r != nil {\n\t\thandleCrash(ctx, r, additionalHandlers...)\n\t}\n}\n\n// handleCrash is the common implementation of HandleCrash and HandleCrash.\n// Having those call a common implementation ensures that the stack depth\n// is the same regardless through which path the handlers get invoked.\nfunc handleCrash(ctx context.Context, r any, additionalHandlers ...func(context.Context, interface{})) {\n\tfor _, fn := range PanicHandlers {\n\t\tfn(ctx, r)\n\t}\n\tfor _, fn := range additionalHandlers {\n\t\tfn(ctx, r)\n\t}\n\tif ReallyCrash {\n\t\t// Actually proceed to panic.\n\t\tpanic(r)\n\t}\n}\n\n// logPanic logs the caller tree when a panic occurs (except in the special case of http.ErrAbortHandler).\nfunc logPanic(ctx context.Context, r interface{}) {\n\tif r == http.ErrAbortHandler {\n\t\t// honor the http.ErrAbortHandler sentinel panic value:\n\t\t//   ErrAbortHandler is a sentinel panic value to abort a handler.\n\t\t//   While any panic from ServeHTTP aborts the response to the client,\n\t\t//   panicking with ErrAbortHandler also suppresses logging of a stack trace to the server's error log.\n\t\treturn\n\t}\n\n\t// Same as stdlib http server code. Manually allocate stack trace buffer size\n\t// to prevent excessively large logs\n\tconst size = 64 << 10\n\tstacktrace := make([]byte, size)\n\tstacktrace = stacktrace[:runtime.Stack(stacktrace, false)]\n\n\t// We don't really know how many call frames to skip because the Go\n\t// panic handler is between us and the code where the panic occurred.\n\t// If it's one function (as in Go 1.21), then skipping four levels\n\t// gets us to the function which called the `defer HandleCrashWithontext(...)`.\n\tlogger := klog.FromContext(ctx).WithCallDepth(4)\n\n\t// For backwards compatibility, conversion to string\n\t// is handled here instead of defering to the logging\n\t// backend.\n\tif _, ok := r.(string); ok {\n\t\tlogger.Error(nil, \"Observed a panic\", \"panic\", r, \"stacktrace\", string(stacktrace))\n\t} else {\n\t\tlogger.Error(nil, \"Observed a panic\", \"panic\", fmt.Sprintf(\"%v\", r), \"panicGoValue\", fmt.Sprintf(\"%#v\", r), \"stacktrace\", string(stacktrace))\n\t}\n}\n\n// ErrorHandlers is a list of functions which will be invoked when a nonreturnable\n// error occurs.\n// TODO(lavalamp): for testability, this and the below HandleError function\n// should be packaged up into a testable and reusable object.\nvar ErrorHandlers = []ErrorHandler{\n\tlogError,\n\tfunc(_ context.Context, _ error, _ string, _ ...interface{}) {\n\t\t(&rudimentaryErrorBackoff{\n\t\t\tlastErrorTime: time.Now(),\n\t\t\t// 1ms was the number folks were able to stomach as a global rate limit.\n\t\t\t// If you need to log errors more than 1000 times a second you\n\t\t\t// should probably consider fixing your code instead. :)\n\t\t\tminPeriod: time.Millisecond,\n\t\t}).OnError()\n\t},\n}\n\ntype ErrorHandler func(ctx context.Context, err error, msg string, keysAndValues ...interface{})\n\n// HandlerError is a method to invoke when a non-user facing piece of code cannot\n// return an error and needs to indicate it has been ignored. Invoking this method\n// is preferable to logging the error - the default behavior is to log but the\n// errors may be sent to a remote server for analysis.\n//\n// Contextual logging: HandleErrorWithContext should be used instead of HandleError in code which supports contextual logging.\nfunc HandleError(err error) {\n\t// this is sometimes called with a nil error.  We probably shouldn't fail and should do nothing instead\n\tif err == nil {\n\t\treturn\n\t}\n\n\thandleError(context.Background(), err, \"Unhandled Error\")\n}\n\n// HandlerErrorWithContext is a method to invoke when a non-user facing piece of code cannot\n// return an error and needs to indicate it has been ignored. Invoking this method\n// is preferable to logging the error - the default behavior is to log but the\n// errors may be sent to a remote server for analysis. The context is used to\n// determine how to log the error.\n//\n// If contextual logging is enabled, the default log output is equivalent to\n//\n//\tlogr.FromContext(ctx).WithName(\"UnhandledError\").Error(err, msg, keysAndValues...)\n//\n// Without contextual logging, it is equivalent to:\n//\n//\tklog.ErrorS(err, msg, keysAndValues...)\n//\n// In contrast to HandleError, passing nil for the error is still going to\n// trigger a log entry. Don't construct a new error or wrap an error\n// with fmt.Errorf. Instead, add additional information via the mssage\n// and key/value pairs.\n//\n// This variant should be used instead of HandleError because it supports\n// structured, contextual logging.\nfunc HandleErrorWithContext(ctx context.Context, err error, msg string, keysAndValues ...interface{}) {\n\thandleError(ctx, err, msg, keysAndValues...)\n}\n\n// handleError is the common implementation of HandleError and HandleErrorWithContext.\n// Using this common implementation ensures that the stack depth\n// is the same regardless through which path the handlers get invoked.\nfunc handleError(ctx context.Context, err error, msg string, keysAndValues ...interface{}) {\n\tfor _, fn := range ErrorHandlers {\n\t\tfn(ctx, err, msg, keysAndValues...)\n\t}\n}\n\n// logError prints an error with the call stack of the location it was reported.\n// It expects to be called as <caller> -> HandleError[WithContext] -> handleError -> logError.\nfunc logError(ctx context.Context, err error, msg string, keysAndValues ...interface{}) {\n\tlogger := klog.FromContext(ctx).WithCallDepth(3)\n\tlogger = klog.LoggerWithName(logger, \"UnhandledError\")\n\tlogger.Error(err, msg, keysAndValues...) //nolint:logcheck // logcheck complains about unknown key/value pairs.\n}\n\ntype rudimentaryErrorBackoff struct {\n\tminPeriod time.Duration // immutable\n\t// TODO(lavalamp): use the clock for testability. Need to move that\n\t// package for that to be accessible here.\n\tlastErrorTimeLock sync.Mutex\n\tlastErrorTime     time.Time\n}\n\n// OnError will block if it is called more often than the embedded period time.\n// This will prevent overly tight hot error loops.\nfunc (r *rudimentaryErrorBackoff) OnError() {\n\tnow := time.Now() // start the timer before acquiring the lock\n\tr.lastErrorTimeLock.Lock()\n\td := now.Sub(r.lastErrorTime)\n\tr.lastErrorTime = time.Now()\n\tr.lastErrorTimeLock.Unlock()\n\n\t// Do not sleep with the lock held because that causes all callers of HandleError to block.\n\t// We only want the current goroutine to block.\n\t// A negative or zero duration causes time.Sleep to return immediately.\n\t// If the time moves backwards for any reason, do nothing.\n\ttime.Sleep(r.minPeriod - d)\n}\n\n// GetCaller returns the caller of the function that calls it.\nfunc GetCaller() string {\n\tvar pc [1]uintptr\n\truntime.Callers(3, pc[:])\n\tf := runtime.FuncForPC(pc[0])\n\tif f == nil {\n\t\treturn \"Unable to find caller\"\n\t}\n\treturn f.Name()\n}\n\n// RecoverFromPanic replaces the specified error with an error containing the\n// original error, and  the call tree when a panic occurs. This enables error\n// handlers to handle errors and panics the same way.\nfunc RecoverFromPanic(err *error) {\n\tif r := recover(); r != nil {\n\t\t// Same as stdlib http server code. Manually allocate stack trace buffer size\n\t\t// to prevent excessively large logs\n\t\tconst size = 64 << 10\n\t\tstacktrace := make([]byte, size)\n\t\tstacktrace = stacktrace[:runtime.Stack(stacktrace, false)]\n\n\t\t*err = fmt.Errorf(\n\t\t\t\"recovered from panic %q. (err=%v) Call stack:\\n%s\",\n\t\t\tr,\n\t\t\t*err,\n\t\t\tstacktrace)\n\t}\n}\n\n// Must panics on non-nil errors. Useful to handling programmer level errors.\nfunc Must(err error) {\n\tif err != nil {\n\t\tpanic(err)\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/sets/byte.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage sets\n\n// Byte is a set of bytes, implemented via map[byte]struct{} for minimal memory consumption.\n//\n// Deprecated: use generic Set instead.\n// new ways:\n// s1 := Set[byte]{}\n// s2 := New[byte]()\ntype Byte map[byte]Empty\n\n// NewByte creates a Byte from a list of values.\nfunc NewByte(items ...byte) Byte {\n\treturn Byte(New[byte](items...))\n}\n\n// ByteKeySet creates a Byte from a keys of a map[byte](? extends interface{}).\n// If the value passed in is not actually a map, this will panic.\nfunc ByteKeySet[T any](theMap map[byte]T) Byte {\n\treturn Byte(KeySet(theMap))\n}\n\n// Insert adds items to the set.\nfunc (s Byte) Insert(items ...byte) Byte {\n\treturn Byte(cast(s).Insert(items...))\n}\n\n// Delete removes all items from the set.\nfunc (s Byte) Delete(items ...byte) Byte {\n\treturn Byte(cast(s).Delete(items...))\n}\n\n// Has returns true if and only if item is contained in the set.\nfunc (s Byte) Has(item byte) bool {\n\treturn cast(s).Has(item)\n}\n\n// HasAll returns true if and only if all items are contained in the set.\nfunc (s Byte) HasAll(items ...byte) bool {\n\treturn cast(s).HasAll(items...)\n}\n\n// HasAny returns true if any items are contained in the set.\nfunc (s Byte) HasAny(items ...byte) bool {\n\treturn cast(s).HasAny(items...)\n}\n\n// Clone returns a new set which is a copy of the current set.\nfunc (s Byte) Clone() Byte {\n\treturn Byte(cast(s).Clone())\n}\n\n// Difference returns a set of objects that are not in s2.\n// For example:\n// s1 = {a1, a2, a3}\n// s2 = {a1, a2, a4, a5}\n// s1.Difference(s2) = {a3}\n// s2.Difference(s1) = {a4, a5}\nfunc (s1 Byte) Difference(s2 Byte) Byte {\n\treturn Byte(cast(s1).Difference(cast(s2)))\n}\n\n// SymmetricDifference returns a set of elements which are in either of the sets, but not in their intersection.\n// For example:\n// s1 = {a1, a2, a3}\n// s2 = {a1, a2, a4, a5}\n// s1.SymmetricDifference(s2) = {a3, a4, a5}\n// s2.SymmetricDifference(s1) = {a3, a4, a5}\nfunc (s1 Byte) SymmetricDifference(s2 Byte) Byte {\n\treturn Byte(cast(s1).SymmetricDifference(cast(s2)))\n}\n\n// Union returns a new set which includes items in either s1 or s2.\n// For example:\n// s1 = {a1, a2}\n// s2 = {a3, a4}\n// s1.Union(s2) = {a1, a2, a3, a4}\n// s2.Union(s1) = {a1, a2, a3, a4}\nfunc (s1 Byte) Union(s2 Byte) Byte {\n\treturn Byte(cast(s1).Union(cast(s2)))\n}\n\n// Intersection returns a new set which includes the item in BOTH s1 and s2\n// For example:\n// s1 = {a1, a2}\n// s2 = {a2, a3}\n// s1.Intersection(s2) = {a2}\nfunc (s1 Byte) Intersection(s2 Byte) Byte {\n\treturn Byte(cast(s1).Intersection(cast(s2)))\n}\n\n// IsSuperset returns true if and only if s1 is a superset of s2.\nfunc (s1 Byte) IsSuperset(s2 Byte) bool {\n\treturn cast(s1).IsSuperset(cast(s2))\n}\n\n// Equal returns true if and only if s1 is equal (as a set) to s2.\n// Two sets are equal if their membership is identical.\n// (In practice, this means same elements, order doesn't matter)\nfunc (s1 Byte) Equal(s2 Byte) bool {\n\treturn cast(s1).Equal(cast(s2))\n}\n\n// List returns the contents as a sorted byte slice.\nfunc (s Byte) List() []byte {\n\treturn List(cast(s))\n}\n\n// UnsortedList returns the slice with contents in random order.\nfunc (s Byte) UnsortedList() []byte {\n\treturn cast(s).UnsortedList()\n}\n\n// PopAny returns a single element from the set.\nfunc (s Byte) PopAny() (byte, bool) {\n\treturn cast(s).PopAny()\n}\n\n// Len returns the size of the set.\nfunc (s Byte) Len() int {\n\treturn len(s)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/sets/doc.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package sets has generic set and specified sets. Generic set will\n// replace specified ones over time. And specific ones are deprecated.\npackage sets // import \"k8s.io/apimachinery/pkg/util/sets\"\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/sets/empty.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage sets\n\n// Empty is public since it is used by some internal API objects for conversions between external\n// string arrays and internal sets, and conversion logic requires public types today.\ntype Empty struct{}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/sets/int.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage sets\n\n// Int is a set of ints, implemented via map[int]struct{} for minimal memory consumption.\n//\n// Deprecated: use generic Set instead.\n// new ways:\n// s1 := Set[int]{}\n// s2 := New[int]()\ntype Int map[int]Empty\n\n// NewInt creates a Int from a list of values.\nfunc NewInt(items ...int) Int {\n\treturn Int(New[int](items...))\n}\n\n// IntKeySet creates a Int from a keys of a map[int](? extends interface{}).\n// If the value passed in is not actually a map, this will panic.\nfunc IntKeySet[T any](theMap map[int]T) Int {\n\treturn Int(KeySet(theMap))\n}\n\n// Insert adds items to the set.\nfunc (s Int) Insert(items ...int) Int {\n\treturn Int(cast(s).Insert(items...))\n}\n\n// Delete removes all items from the set.\nfunc (s Int) Delete(items ...int) Int {\n\treturn Int(cast(s).Delete(items...))\n}\n\n// Has returns true if and only if item is contained in the set.\nfunc (s Int) Has(item int) bool {\n\treturn cast(s).Has(item)\n}\n\n// HasAll returns true if and only if all items are contained in the set.\nfunc (s Int) HasAll(items ...int) bool {\n\treturn cast(s).HasAll(items...)\n}\n\n// HasAny returns true if any items are contained in the set.\nfunc (s Int) HasAny(items ...int) bool {\n\treturn cast(s).HasAny(items...)\n}\n\n// Clone returns a new set which is a copy of the current set.\nfunc (s Int) Clone() Int {\n\treturn Int(cast(s).Clone())\n}\n\n// Difference returns a set of objects that are not in s2.\n// For example:\n// s1 = {a1, a2, a3}\n// s2 = {a1, a2, a4, a5}\n// s1.Difference(s2) = {a3}\n// s2.Difference(s1) = {a4, a5}\nfunc (s1 Int) Difference(s2 Int) Int {\n\treturn Int(cast(s1).Difference(cast(s2)))\n}\n\n// SymmetricDifference returns a set of elements which are in either of the sets, but not in their intersection.\n// For example:\n// s1 = {a1, a2, a3}\n// s2 = {a1, a2, a4, a5}\n// s1.SymmetricDifference(s2) = {a3, a4, a5}\n// s2.SymmetricDifference(s1) = {a3, a4, a5}\nfunc (s1 Int) SymmetricDifference(s2 Int) Int {\n\treturn Int(cast(s1).SymmetricDifference(cast(s2)))\n}\n\n// Union returns a new set which includes items in either s1 or s2.\n// For example:\n// s1 = {a1, a2}\n// s2 = {a3, a4}\n// s1.Union(s2) = {a1, a2, a3, a4}\n// s2.Union(s1) = {a1, a2, a3, a4}\nfunc (s1 Int) Union(s2 Int) Int {\n\treturn Int(cast(s1).Union(cast(s2)))\n}\n\n// Intersection returns a new set which includes the item in BOTH s1 and s2\n// For example:\n// s1 = {a1, a2}\n// s2 = {a2, a3}\n// s1.Intersection(s2) = {a2}\nfunc (s1 Int) Intersection(s2 Int) Int {\n\treturn Int(cast(s1).Intersection(cast(s2)))\n}\n\n// IsSuperset returns true if and only if s1 is a superset of s2.\nfunc (s1 Int) IsSuperset(s2 Int) bool {\n\treturn cast(s1).IsSuperset(cast(s2))\n}\n\n// Equal returns true if and only if s1 is equal (as a set) to s2.\n// Two sets are equal if their membership is identical.\n// (In practice, this means same elements, order doesn't matter)\nfunc (s1 Int) Equal(s2 Int) bool {\n\treturn cast(s1).Equal(cast(s2))\n}\n\n// List returns the contents as a sorted int slice.\nfunc (s Int) List() []int {\n\treturn List(cast(s))\n}\n\n// UnsortedList returns the slice with contents in random order.\nfunc (s Int) UnsortedList() []int {\n\treturn cast(s).UnsortedList()\n}\n\n// PopAny returns a single element from the set.\nfunc (s Int) PopAny() (int, bool) {\n\treturn cast(s).PopAny()\n}\n\n// Len returns the size of the set.\nfunc (s Int) Len() int {\n\treturn len(s)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/sets/int32.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage sets\n\n// Int32 is a set of int32s, implemented via map[int32]struct{} for minimal memory consumption.\n//\n// Deprecated: use generic Set instead.\n// new ways:\n// s1 := Set[int32]{}\n// s2 := New[int32]()\ntype Int32 map[int32]Empty\n\n// NewInt32 creates a Int32 from a list of values.\nfunc NewInt32(items ...int32) Int32 {\n\treturn Int32(New[int32](items...))\n}\n\n// Int32KeySet creates a Int32 from a keys of a map[int32](? extends interface{}).\n// If the value passed in is not actually a map, this will panic.\nfunc Int32KeySet[T any](theMap map[int32]T) Int32 {\n\treturn Int32(KeySet(theMap))\n}\n\n// Insert adds items to the set.\nfunc (s Int32) Insert(items ...int32) Int32 {\n\treturn Int32(cast(s).Insert(items...))\n}\n\n// Delete removes all items from the set.\nfunc (s Int32) Delete(items ...int32) Int32 {\n\treturn Int32(cast(s).Delete(items...))\n}\n\n// Has returns true if and only if item is contained in the set.\nfunc (s Int32) Has(item int32) bool {\n\treturn cast(s).Has(item)\n}\n\n// HasAll returns true if and only if all items are contained in the set.\nfunc (s Int32) HasAll(items ...int32) bool {\n\treturn cast(s).HasAll(items...)\n}\n\n// HasAny returns true if any items are contained in the set.\nfunc (s Int32) HasAny(items ...int32) bool {\n\treturn cast(s).HasAny(items...)\n}\n\n// Clone returns a new set which is a copy of the current set.\nfunc (s Int32) Clone() Int32 {\n\treturn Int32(cast(s).Clone())\n}\n\n// Difference returns a set of objects that are not in s2.\n// For example:\n// s1 = {a1, a2, a3}\n// s2 = {a1, a2, a4, a5}\n// s1.Difference(s2) = {a3}\n// s2.Difference(s1) = {a4, a5}\nfunc (s1 Int32) Difference(s2 Int32) Int32 {\n\treturn Int32(cast(s1).Difference(cast(s2)))\n}\n\n// SymmetricDifference returns a set of elements which are in either of the sets, but not in their intersection.\n// For example:\n// s1 = {a1, a2, a3}\n// s2 = {a1, a2, a4, a5}\n// s1.SymmetricDifference(s2) = {a3, a4, a5}\n// s2.SymmetricDifference(s1) = {a3, a4, a5}\nfunc (s1 Int32) SymmetricDifference(s2 Int32) Int32 {\n\treturn Int32(cast(s1).SymmetricDifference(cast(s2)))\n}\n\n// Union returns a new set which includes items in either s1 or s2.\n// For example:\n// s1 = {a1, a2}\n// s2 = {a3, a4}\n// s1.Union(s2) = {a1, a2, a3, a4}\n// s2.Union(s1) = {a1, a2, a3, a4}\nfunc (s1 Int32) Union(s2 Int32) Int32 {\n\treturn Int32(cast(s1).Union(cast(s2)))\n}\n\n// Intersection returns a new set which includes the item in BOTH s1 and s2\n// For example:\n// s1 = {a1, a2}\n// s2 = {a2, a3}\n// s1.Intersection(s2) = {a2}\nfunc (s1 Int32) Intersection(s2 Int32) Int32 {\n\treturn Int32(cast(s1).Intersection(cast(s2)))\n}\n\n// IsSuperset returns true if and only if s1 is a superset of s2.\nfunc (s1 Int32) IsSuperset(s2 Int32) bool {\n\treturn cast(s1).IsSuperset(cast(s2))\n}\n\n// Equal returns true if and only if s1 is equal (as a set) to s2.\n// Two sets are equal if their membership is identical.\n// (In practice, this means same elements, order doesn't matter)\nfunc (s1 Int32) Equal(s2 Int32) bool {\n\treturn cast(s1).Equal(cast(s2))\n}\n\n// List returns the contents as a sorted int32 slice.\nfunc (s Int32) List() []int32 {\n\treturn List(cast(s))\n}\n\n// UnsortedList returns the slice with contents in random order.\nfunc (s Int32) UnsortedList() []int32 {\n\treturn cast(s).UnsortedList()\n}\n\n// PopAny returns a single element from the set.\nfunc (s Int32) PopAny() (int32, bool) {\n\treturn cast(s).PopAny()\n}\n\n// Len returns the size of the set.\nfunc (s Int32) Len() int {\n\treturn len(s)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/sets/int64.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage sets\n\n// Int64 is a set of int64s, implemented via map[int64]struct{} for minimal memory consumption.\n//\n// Deprecated: use generic Set instead.\n// new ways:\n// s1 := Set[int64]{}\n// s2 := New[int64]()\ntype Int64 map[int64]Empty\n\n// NewInt64 creates a Int64 from a list of values.\nfunc NewInt64(items ...int64) Int64 {\n\treturn Int64(New[int64](items...))\n}\n\n// Int64KeySet creates a Int64 from a keys of a map[int64](? extends interface{}).\n// If the value passed in is not actually a map, this will panic.\nfunc Int64KeySet[T any](theMap map[int64]T) Int64 {\n\treturn Int64(KeySet(theMap))\n}\n\n// Insert adds items to the set.\nfunc (s Int64) Insert(items ...int64) Int64 {\n\treturn Int64(cast(s).Insert(items...))\n}\n\n// Delete removes all items from the set.\nfunc (s Int64) Delete(items ...int64) Int64 {\n\treturn Int64(cast(s).Delete(items...))\n}\n\n// Has returns true if and only if item is contained in the set.\nfunc (s Int64) Has(item int64) bool {\n\treturn cast(s).Has(item)\n}\n\n// HasAll returns true if and only if all items are contained in the set.\nfunc (s Int64) HasAll(items ...int64) bool {\n\treturn cast(s).HasAll(items...)\n}\n\n// HasAny returns true if any items are contained in the set.\nfunc (s Int64) HasAny(items ...int64) bool {\n\treturn cast(s).HasAny(items...)\n}\n\n// Clone returns a new set which is a copy of the current set.\nfunc (s Int64) Clone() Int64 {\n\treturn Int64(cast(s).Clone())\n}\n\n// Difference returns a set of objects that are not in s2.\n// For example:\n// s1 = {a1, a2, a3}\n// s2 = {a1, a2, a4, a5}\n// s1.Difference(s2) = {a3}\n// s2.Difference(s1) = {a4, a5}\nfunc (s1 Int64) Difference(s2 Int64) Int64 {\n\treturn Int64(cast(s1).Difference(cast(s2)))\n}\n\n// SymmetricDifference returns a set of elements which are in either of the sets, but not in their intersection.\n// For example:\n// s1 = {a1, a2, a3}\n// s2 = {a1, a2, a4, a5}\n// s1.SymmetricDifference(s2) = {a3, a4, a5}\n// s2.SymmetricDifference(s1) = {a3, a4, a5}\nfunc (s1 Int64) SymmetricDifference(s2 Int64) Int64 {\n\treturn Int64(cast(s1).SymmetricDifference(cast(s2)))\n}\n\n// Union returns a new set which includes items in either s1 or s2.\n// For example:\n// s1 = {a1, a2}\n// s2 = {a3, a4}\n// s1.Union(s2) = {a1, a2, a3, a4}\n// s2.Union(s1) = {a1, a2, a3, a4}\nfunc (s1 Int64) Union(s2 Int64) Int64 {\n\treturn Int64(cast(s1).Union(cast(s2)))\n}\n\n// Intersection returns a new set which includes the item in BOTH s1 and s2\n// For example:\n// s1 = {a1, a2}\n// s2 = {a2, a3}\n// s1.Intersection(s2) = {a2}\nfunc (s1 Int64) Intersection(s2 Int64) Int64 {\n\treturn Int64(cast(s1).Intersection(cast(s2)))\n}\n\n// IsSuperset returns true if and only if s1 is a superset of s2.\nfunc (s1 Int64) IsSuperset(s2 Int64) bool {\n\treturn cast(s1).IsSuperset(cast(s2))\n}\n\n// Equal returns true if and only if s1 is equal (as a set) to s2.\n// Two sets are equal if their membership is identical.\n// (In practice, this means same elements, order doesn't matter)\nfunc (s1 Int64) Equal(s2 Int64) bool {\n\treturn cast(s1).Equal(cast(s2))\n}\n\n// List returns the contents as a sorted int64 slice.\nfunc (s Int64) List() []int64 {\n\treturn List(cast(s))\n}\n\n// UnsortedList returns the slice with contents in random order.\nfunc (s Int64) UnsortedList() []int64 {\n\treturn cast(s).UnsortedList()\n}\n\n// PopAny returns a single element from the set.\nfunc (s Int64) PopAny() (int64, bool) {\n\treturn cast(s).PopAny()\n}\n\n// Len returns the size of the set.\nfunc (s Int64) Len() int {\n\treturn len(s)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/sets/set.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage sets\n\nimport (\n\t\"cmp\"\n\t\"sort\"\n)\n\n// Set is a set of the same type elements, implemented via map[comparable]struct{} for minimal memory consumption.\ntype Set[T comparable] map[T]Empty\n\n// cast transforms specified set to generic Set[T].\nfunc cast[T comparable](s map[T]Empty) Set[T] { return s }\n\n// New creates a Set from a list of values.\n// NOTE: type param must be explicitly instantiated if given items are empty.\nfunc New[T comparable](items ...T) Set[T] {\n\tss := make(Set[T], len(items))\n\tss.Insert(items...)\n\treturn ss\n}\n\n// KeySet creates a Set from a keys of a map[comparable](? extends interface{}).\n// If the value passed in is not actually a map, this will panic.\nfunc KeySet[T comparable, V any](theMap map[T]V) Set[T] {\n\tret := make(Set[T], len(theMap))\n\tfor keyValue := range theMap {\n\t\tret.Insert(keyValue)\n\t}\n\treturn ret\n}\n\n// Insert adds items to the set.\nfunc (s Set[T]) Insert(items ...T) Set[T] {\n\tfor _, item := range items {\n\t\ts[item] = Empty{}\n\t}\n\treturn s\n}\n\nfunc Insert[T comparable](set Set[T], items ...T) Set[T] {\n\treturn set.Insert(items...)\n}\n\n// Delete removes all items from the set.\nfunc (s Set[T]) Delete(items ...T) Set[T] {\n\tfor _, item := range items {\n\t\tdelete(s, item)\n\t}\n\treturn s\n}\n\n// Clear empties the set.\n// It is preferable to replace the set with a newly constructed set,\n// but not all callers can do that (when there are other references to the map).\nfunc (s Set[T]) Clear() Set[T] {\n\tclear(s)\n\treturn s\n}\n\n// Has returns true if and only if item is contained in the set.\nfunc (s Set[T]) Has(item T) bool {\n\t_, contained := s[item]\n\treturn contained\n}\n\n// HasAll returns true if and only if all items are contained in the set.\nfunc (s Set[T]) HasAll(items ...T) bool {\n\tfor _, item := range items {\n\t\tif !s.Has(item) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// HasAny returns true if any items are contained in the set.\nfunc (s Set[T]) HasAny(items ...T) bool {\n\tfor _, item := range items {\n\t\tif s.Has(item) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// Clone returns a new set which is a copy of the current set.\nfunc (s Set[T]) Clone() Set[T] {\n\tresult := make(Set[T], len(s))\n\tfor key := range s {\n\t\tresult.Insert(key)\n\t}\n\treturn result\n}\n\n// Difference returns a set of objects that are not in s2.\n// For example:\n// s1 = {a1, a2, a3}\n// s2 = {a1, a2, a4, a5}\n// s1.Difference(s2) = {a3}\n// s2.Difference(s1) = {a4, a5}\nfunc (s1 Set[T]) Difference(s2 Set[T]) Set[T] {\n\tresult := New[T]()\n\tfor key := range s1 {\n\t\tif !s2.Has(key) {\n\t\t\tresult.Insert(key)\n\t\t}\n\t}\n\treturn result\n}\n\n// SymmetricDifference returns a set of elements which are in either of the sets, but not in their intersection.\n// For example:\n// s1 = {a1, a2, a3}\n// s2 = {a1, a2, a4, a5}\n// s1.SymmetricDifference(s2) = {a3, a4, a5}\n// s2.SymmetricDifference(s1) = {a3, a4, a5}\nfunc (s1 Set[T]) SymmetricDifference(s2 Set[T]) Set[T] {\n\treturn s1.Difference(s2).Union(s2.Difference(s1))\n}\n\n// Union returns a new set which includes items in either s1 or s2.\n// For example:\n// s1 = {a1, a2}\n// s2 = {a3, a4}\n// s1.Union(s2) = {a1, a2, a3, a4}\n// s2.Union(s1) = {a1, a2, a3, a4}\nfunc (s1 Set[T]) Union(s2 Set[T]) Set[T] {\n\tresult := s1.Clone()\n\tfor key := range s2 {\n\t\tresult.Insert(key)\n\t}\n\treturn result\n}\n\n// Intersection returns a new set which includes the item in BOTH s1 and s2\n// For example:\n// s1 = {a1, a2}\n// s2 = {a2, a3}\n// s1.Intersection(s2) = {a2}\nfunc (s1 Set[T]) Intersection(s2 Set[T]) Set[T] {\n\tvar walk, other Set[T]\n\tresult := New[T]()\n\tif s1.Len() < s2.Len() {\n\t\twalk = s1\n\t\tother = s2\n\t} else {\n\t\twalk = s2\n\t\tother = s1\n\t}\n\tfor key := range walk {\n\t\tif other.Has(key) {\n\t\t\tresult.Insert(key)\n\t\t}\n\t}\n\treturn result\n}\n\n// IsSuperset returns true if and only if s1 is a superset of s2.\nfunc (s1 Set[T]) IsSuperset(s2 Set[T]) bool {\n\tfor item := range s2 {\n\t\tif !s1.Has(item) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Equal returns true if and only if s1 is equal (as a set) to s2.\n// Two sets are equal if their membership is identical.\n// (In practice, this means same elements, order doesn't matter)\nfunc (s1 Set[T]) Equal(s2 Set[T]) bool {\n\treturn len(s1) == len(s2) && s1.IsSuperset(s2)\n}\n\ntype sortableSliceOfGeneric[T cmp.Ordered] []T\n\nfunc (g sortableSliceOfGeneric[T]) Len() int           { return len(g) }\nfunc (g sortableSliceOfGeneric[T]) Less(i, j int) bool { return less[T](g[i], g[j]) }\nfunc (g sortableSliceOfGeneric[T]) Swap(i, j int)      { g[i], g[j] = g[j], g[i] }\n\n// List returns the contents as a sorted T slice.\n//\n// This is a separate function and not a method because not all types supported\n// by Generic are ordered and only those can be sorted.\nfunc List[T cmp.Ordered](s Set[T]) []T {\n\tres := make(sortableSliceOfGeneric[T], 0, len(s))\n\tfor key := range s {\n\t\tres = append(res, key)\n\t}\n\tsort.Sort(res)\n\treturn res\n}\n\n// UnsortedList returns the slice with contents in random order.\nfunc (s Set[T]) UnsortedList() []T {\n\tres := make([]T, 0, len(s))\n\tfor key := range s {\n\t\tres = append(res, key)\n\t}\n\treturn res\n}\n\n// PopAny returns a single element from the set.\nfunc (s Set[T]) PopAny() (T, bool) {\n\tfor key := range s {\n\t\ts.Delete(key)\n\t\treturn key, true\n\t}\n\tvar zeroValue T\n\treturn zeroValue, false\n}\n\n// Len returns the size of the set.\nfunc (s Set[T]) Len() int {\n\treturn len(s)\n}\n\nfunc less[T cmp.Ordered](lhs, rhs T) bool {\n\treturn lhs < rhs\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/sets/string.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage sets\n\n// String is a set of strings, implemented via map[string]struct{} for minimal memory consumption.\n//\n// Deprecated: use generic Set instead.\n// new ways:\n// s1 := Set[string]{}\n// s2 := New[string]()\ntype String map[string]Empty\n\n// NewString creates a String from a list of values.\nfunc NewString(items ...string) String {\n\treturn String(New[string](items...))\n}\n\n// StringKeySet creates a String from a keys of a map[string](? extends interface{}).\n// If the value passed in is not actually a map, this will panic.\nfunc StringKeySet[T any](theMap map[string]T) String {\n\treturn String(KeySet(theMap))\n}\n\n// Insert adds items to the set.\nfunc (s String) Insert(items ...string) String {\n\treturn String(cast(s).Insert(items...))\n}\n\n// Delete removes all items from the set.\nfunc (s String) Delete(items ...string) String {\n\treturn String(cast(s).Delete(items...))\n}\n\n// Has returns true if and only if item is contained in the set.\nfunc (s String) Has(item string) bool {\n\treturn cast(s).Has(item)\n}\n\n// HasAll returns true if and only if all items are contained in the set.\nfunc (s String) HasAll(items ...string) bool {\n\treturn cast(s).HasAll(items...)\n}\n\n// HasAny returns true if any items are contained in the set.\nfunc (s String) HasAny(items ...string) bool {\n\treturn cast(s).HasAny(items...)\n}\n\n// Clone returns a new set which is a copy of the current set.\nfunc (s String) Clone() String {\n\treturn String(cast(s).Clone())\n}\n\n// Difference returns a set of objects that are not in s2.\n// For example:\n// s1 = {a1, a2, a3}\n// s2 = {a1, a2, a4, a5}\n// s1.Difference(s2) = {a3}\n// s2.Difference(s1) = {a4, a5}\nfunc (s1 String) Difference(s2 String) String {\n\treturn String(cast(s1).Difference(cast(s2)))\n}\n\n// SymmetricDifference returns a set of elements which are in either of the sets, but not in their intersection.\n// For example:\n// s1 = {a1, a2, a3}\n// s2 = {a1, a2, a4, a5}\n// s1.SymmetricDifference(s2) = {a3, a4, a5}\n// s2.SymmetricDifference(s1) = {a3, a4, a5}\nfunc (s1 String) SymmetricDifference(s2 String) String {\n\treturn String(cast(s1).SymmetricDifference(cast(s2)))\n}\n\n// Union returns a new set which includes items in either s1 or s2.\n// For example:\n// s1 = {a1, a2}\n// s2 = {a3, a4}\n// s1.Union(s2) = {a1, a2, a3, a4}\n// s2.Union(s1) = {a1, a2, a3, a4}\nfunc (s1 String) Union(s2 String) String {\n\treturn String(cast(s1).Union(cast(s2)))\n}\n\n// Intersection returns a new set which includes the item in BOTH s1 and s2\n// For example:\n// s1 = {a1, a2}\n// s2 = {a2, a3}\n// s1.Intersection(s2) = {a2}\nfunc (s1 String) Intersection(s2 String) String {\n\treturn String(cast(s1).Intersection(cast(s2)))\n}\n\n// IsSuperset returns true if and only if s1 is a superset of s2.\nfunc (s1 String) IsSuperset(s2 String) bool {\n\treturn cast(s1).IsSuperset(cast(s2))\n}\n\n// Equal returns true if and only if s1 is equal (as a set) to s2.\n// Two sets are equal if their membership is identical.\n// (In practice, this means same elements, order doesn't matter)\nfunc (s1 String) Equal(s2 String) bool {\n\treturn cast(s1).Equal(cast(s2))\n}\n\n// List returns the contents as a sorted string slice.\nfunc (s String) List() []string {\n\treturn List(cast(s))\n}\n\n// UnsortedList returns the slice with contents in random order.\nfunc (s String) UnsortedList() []string {\n\treturn cast(s).UnsortedList()\n}\n\n// PopAny returns a single element from the set.\nfunc (s String) PopAny() (string, bool) {\n\treturn cast(s).PopAny()\n}\n\n// Len returns the size of the set.\nfunc (s String) Len() int {\n\treturn len(s)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/strategicpatch/OWNERS",
    "content": "# See the OWNERS docs at https://go.k8s.io/owners\n\napprovers:\n  - apelisse\n  - pwittrock\nreviewers:\n  - apelisse\nemeritus_approvers:\n  - mengqiy\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/strategicpatch/errors.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage strategicpatch\n\nimport (\n\t\"fmt\"\n)\n\ntype LookupPatchMetaError struct {\n\tPath string\n\tErr  error\n}\n\nfunc (e LookupPatchMetaError) Error() string {\n\treturn fmt.Sprintf(\"LookupPatchMetaError(%s): %v\", e.Path, e.Err)\n}\n\ntype FieldNotFoundError struct {\n\tPath  string\n\tField string\n}\n\nfunc (e FieldNotFoundError) Error() string {\n\treturn fmt.Sprintf(\"unable to find api field %q in %s\", e.Field, e.Path)\n}\n\ntype InvalidTypeError struct {\n\tPath     string\n\tExpected string\n\tActual   string\n}\n\nfunc (e InvalidTypeError) Error() string {\n\treturn fmt.Sprintf(\"invalid type for %s: got %q, expected %q\", e.Path, e.Actual, e.Expected)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/strategicpatch/meta.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage strategicpatch\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n\n\t\"k8s.io/apimachinery/pkg/util/mergepatch\"\n\tforkedjson \"k8s.io/apimachinery/third_party/forked/golang/json\"\n\topenapi \"k8s.io/kube-openapi/pkg/util/proto\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\nconst patchMergeKey = \"x-kubernetes-patch-merge-key\"\nconst patchStrategy = \"x-kubernetes-patch-strategy\"\n\ntype PatchMeta struct {\n\tpatchStrategies []string\n\tpatchMergeKey   string\n}\n\nfunc (pm *PatchMeta) GetPatchStrategies() []string {\n\tif pm.patchStrategies == nil {\n\t\treturn []string{}\n\t}\n\treturn pm.patchStrategies\n}\n\nfunc (pm *PatchMeta) SetPatchStrategies(ps []string) {\n\tpm.patchStrategies = ps\n}\n\nfunc (pm *PatchMeta) GetPatchMergeKey() string {\n\treturn pm.patchMergeKey\n}\n\nfunc (pm *PatchMeta) SetPatchMergeKey(pmk string) {\n\tpm.patchMergeKey = pmk\n}\n\ntype LookupPatchMeta interface {\n\t// LookupPatchMetadataForStruct gets subschema and the patch metadata (e.g. patch strategy and merge key) for map.\n\tLookupPatchMetadataForStruct(key string) (LookupPatchMeta, PatchMeta, error)\n\t// LookupPatchMetadataForSlice get subschema and the patch metadata for slice.\n\tLookupPatchMetadataForSlice(key string) (LookupPatchMeta, PatchMeta, error)\n\t// Get the type name of the field\n\tName() string\n}\n\ntype PatchMetaFromStruct struct {\n\tT reflect.Type\n}\n\nfunc NewPatchMetaFromStruct(dataStruct interface{}) (PatchMetaFromStruct, error) {\n\tt, err := getTagStructType(dataStruct)\n\treturn PatchMetaFromStruct{T: t}, err\n}\n\nvar _ LookupPatchMeta = PatchMetaFromStruct{}\n\nfunc (s PatchMetaFromStruct) LookupPatchMetadataForStruct(key string) (LookupPatchMeta, PatchMeta, error) {\n\tfieldType, fieldPatchStrategies, fieldPatchMergeKey, err := forkedjson.LookupPatchMetadataForStruct(s.T, key)\n\tif err != nil {\n\t\treturn nil, PatchMeta{}, err\n\t}\n\n\treturn PatchMetaFromStruct{T: fieldType},\n\t\tPatchMeta{\n\t\t\tpatchStrategies: fieldPatchStrategies,\n\t\t\tpatchMergeKey:   fieldPatchMergeKey,\n\t\t}, nil\n}\n\nfunc (s PatchMetaFromStruct) LookupPatchMetadataForSlice(key string) (LookupPatchMeta, PatchMeta, error) {\n\tsubschema, patchMeta, err := s.LookupPatchMetadataForStruct(key)\n\tif err != nil {\n\t\treturn nil, PatchMeta{}, err\n\t}\n\telemPatchMetaFromStruct := subschema.(PatchMetaFromStruct)\n\tt := elemPatchMetaFromStruct.T\n\n\tvar elemType reflect.Type\n\tswitch t.Kind() {\n\t// If t is an array or a slice, get the element type.\n\t// If element is still an array or a slice, return an error.\n\t// Otherwise, return element type.\n\tcase reflect.Array, reflect.Slice:\n\t\telemType = t.Elem()\n\t\tif elemType.Kind() == reflect.Array || elemType.Kind() == reflect.Slice {\n\t\t\treturn nil, PatchMeta{}, errors.New(\"unexpected slice of slice\")\n\t\t}\n\t// If t is an pointer, get the underlying element.\n\t// If the underlying element is neither an array nor a slice, the pointer is pointing to a slice,\n\t// e.g. https://github.com/kubernetes/kubernetes/blob/bc22e206c79282487ea0bf5696d5ccec7e839a76/staging/src/k8s.io/apimachinery/pkg/util/strategicpatch/patch_test.go#L2782-L2822\n\t// If the underlying element is either an array or a slice, return its element type.\n\tcase reflect.Pointer:\n\t\tt = t.Elem()\n\t\tif t.Kind() == reflect.Array || t.Kind() == reflect.Slice {\n\t\t\tt = t.Elem()\n\t\t}\n\t\telemType = t\n\tdefault:\n\t\treturn nil, PatchMeta{}, fmt.Errorf(\"expected slice or array type, but got: %s\", s.T.Kind().String())\n\t}\n\n\treturn PatchMetaFromStruct{T: elemType}, patchMeta, nil\n}\n\nfunc (s PatchMetaFromStruct) Name() string {\n\treturn s.T.Kind().String()\n}\n\nfunc getTagStructType(dataStruct interface{}) (reflect.Type, error) {\n\tif dataStruct == nil {\n\t\treturn nil, mergepatch.ErrBadArgKind(struct{}{}, nil)\n\t}\n\n\tt := reflect.TypeOf(dataStruct)\n\t// Get the underlying type for pointers\n\tif t.Kind() == reflect.Pointer {\n\t\tt = t.Elem()\n\t}\n\n\tif t.Kind() != reflect.Struct {\n\t\treturn nil, mergepatch.ErrBadArgKind(struct{}{}, dataStruct)\n\t}\n\n\treturn t, nil\n}\n\nfunc GetTagStructTypeOrDie(dataStruct interface{}) reflect.Type {\n\tt, err := getTagStructType(dataStruct)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn t\n}\n\ntype PatchMetaFromOpenAPIV3 struct {\n\t// SchemaList is required to resolve OpenAPI V3 references\n\tSchemaList map[string]*spec.Schema\n\tSchema     *spec.Schema\n}\n\nfunc (s PatchMetaFromOpenAPIV3) traverse(key string) (PatchMetaFromOpenAPIV3, error) {\n\tif s.Schema == nil {\n\t\treturn PatchMetaFromOpenAPIV3{}, nil\n\t}\n\tif len(s.Schema.Properties) == 0 {\n\t\treturn PatchMetaFromOpenAPIV3{}, fmt.Errorf(\"unable to find api field \\\"%s\\\"\", key)\n\t}\n\tsubschema, ok := s.Schema.Properties[key]\n\tif !ok {\n\t\treturn PatchMetaFromOpenAPIV3{}, fmt.Errorf(\"unable to find api field \\\"%s\\\"\", key)\n\t}\n\treturn PatchMetaFromOpenAPIV3{SchemaList: s.SchemaList, Schema: &subschema}, nil\n}\n\nfunc resolve(l *PatchMetaFromOpenAPIV3) error {\n\tif len(l.Schema.AllOf) > 0 {\n\t\tl.Schema = &l.Schema.AllOf[0]\n\t}\n\tif refString := l.Schema.Ref.String(); refString != \"\" {\n\t\tstr := strings.TrimPrefix(refString, \"#/components/schemas/\")\n\t\tsch, ok := l.SchemaList[str]\n\t\tif ok {\n\t\t\tl.Schema = sch\n\t\t} else {\n\t\t\treturn fmt.Errorf(\"unable to resolve %s in OpenAPI V3\", refString)\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (s PatchMetaFromOpenAPIV3) LookupPatchMetadataForStruct(key string) (LookupPatchMeta, PatchMeta, error) {\n\tl, err := s.traverse(key)\n\tif err != nil {\n\t\treturn l, PatchMeta{}, err\n\t}\n\tp := PatchMeta{}\n\tf, ok := l.Schema.Extensions[patchMergeKey]\n\tif ok {\n\t\tp.SetPatchMergeKey(f.(string))\n\t}\n\tg, ok := l.Schema.Extensions[patchStrategy]\n\tif ok {\n\t\tp.SetPatchStrategies(strings.Split(g.(string), \",\"))\n\t}\n\n\terr = resolve(&l)\n\treturn l, p, err\n}\n\nfunc (s PatchMetaFromOpenAPIV3) LookupPatchMetadataForSlice(key string) (LookupPatchMeta, PatchMeta, error) {\n\tl, err := s.traverse(key)\n\tif err != nil {\n\t\treturn l, PatchMeta{}, err\n\t}\n\tp := PatchMeta{}\n\tf, ok := l.Schema.Extensions[patchMergeKey]\n\tif ok {\n\t\tp.SetPatchMergeKey(f.(string))\n\t}\n\tg, ok := l.Schema.Extensions[patchStrategy]\n\tif ok {\n\t\tp.SetPatchStrategies(strings.Split(g.(string), \",\"))\n\t}\n\tif l.Schema.Items != nil {\n\t\tl.Schema = l.Schema.Items.Schema\n\t}\n\terr = resolve(&l)\n\treturn l, p, err\n}\n\nfunc (s PatchMetaFromOpenAPIV3) Name() string {\n\tschema := s.Schema\n\tif len(schema.Type) > 0 {\n\t\treturn strings.Join(schema.Type, \"\")\n\t}\n\treturn \"Struct\"\n}\n\ntype PatchMetaFromOpenAPI struct {\n\tSchema openapi.Schema\n}\n\nfunc NewPatchMetaFromOpenAPI(s openapi.Schema) PatchMetaFromOpenAPI {\n\treturn PatchMetaFromOpenAPI{Schema: s}\n}\n\nvar _ LookupPatchMeta = PatchMetaFromOpenAPI{}\n\nfunc (s PatchMetaFromOpenAPI) LookupPatchMetadataForStruct(key string) (LookupPatchMeta, PatchMeta, error) {\n\tif s.Schema == nil {\n\t\treturn nil, PatchMeta{}, nil\n\t}\n\tkindItem := NewKindItem(key, s.Schema.GetPath())\n\ts.Schema.Accept(kindItem)\n\n\terr := kindItem.Error()\n\tif err != nil {\n\t\treturn nil, PatchMeta{}, err\n\t}\n\treturn PatchMetaFromOpenAPI{Schema: kindItem.subschema},\n\t\tkindItem.patchmeta, nil\n}\n\nfunc (s PatchMetaFromOpenAPI) LookupPatchMetadataForSlice(key string) (LookupPatchMeta, PatchMeta, error) {\n\tif s.Schema == nil {\n\t\treturn nil, PatchMeta{}, nil\n\t}\n\tsliceItem := NewSliceItem(key, s.Schema.GetPath())\n\ts.Schema.Accept(sliceItem)\n\n\terr := sliceItem.Error()\n\tif err != nil {\n\t\treturn nil, PatchMeta{}, err\n\t}\n\treturn PatchMetaFromOpenAPI{Schema: sliceItem.subschema},\n\t\tsliceItem.patchmeta, nil\n}\n\nfunc (s PatchMetaFromOpenAPI) Name() string {\n\tschema := s.Schema\n\treturn schema.GetName()\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/strategicpatch/patch.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage strategicpatch\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured\"\n\t\"k8s.io/apimachinery/pkg/util/json\"\n\t\"k8s.io/apimachinery/pkg/util/mergepatch\"\n)\n\n// An alternate implementation of JSON Merge Patch\n// (https://tools.ietf.org/html/rfc7386) which supports the ability to annotate\n// certain fields with metadata that indicates whether the elements of JSON\n// lists should be merged or replaced.\n//\n// For more information, see the PATCH section of docs/devel/api-conventions.md.\n//\n// Some of the content of this package was borrowed with minor adaptations from\n// evanphx/json-patch and openshift/origin.\n\nconst (\n\tdirectiveMarker  = \"$patch\"\n\tdeleteDirective  = \"delete\"\n\treplaceDirective = \"replace\"\n\tmergeDirective   = \"merge\"\n\n\tretainKeysStrategy = \"retainKeys\"\n\n\tdeleteFromPrimitiveListDirectivePrefix = \"$deleteFromPrimitiveList\"\n\tretainKeysDirective                    = \"$\" + retainKeysStrategy\n\tsetElementOrderDirectivePrefix         = \"$setElementOrder\"\n)\n\n// JSONMap is a representations of JSON object encoded as map[string]interface{}\n// where the children can be either map[string]interface{}, []interface{} or\n// primitive type).\n// Operating on JSONMap representation is much faster as it doesn't require any\n// json marshaling and/or unmarshaling operations.\ntype JSONMap map[string]interface{}\n\ntype DiffOptions struct {\n\t// SetElementOrder determines whether we generate the $setElementOrder parallel list.\n\tSetElementOrder bool\n\t// IgnoreChangesAndAdditions indicates if we keep the changes and additions in the patch.\n\tIgnoreChangesAndAdditions bool\n\t// IgnoreDeletions indicates if we keep the deletions in the patch.\n\tIgnoreDeletions bool\n\t// We introduce a new value retainKeys for patchStrategy.\n\t// It indicates that all fields needing to be preserved must be\n\t// present in the `retainKeys` list.\n\t// And the fields that are present will be merged with live object.\n\t// All the missing fields will be cleared when patching.\n\tBuildRetainKeysDirective bool\n}\n\ntype MergeOptions struct {\n\t// MergeParallelList indicates if we are merging the parallel list.\n\t// We don't merge parallel list when calling mergeMap() in CreateThreeWayMergePatch()\n\t// which is called client-side.\n\t// We merge parallel list iff when calling mergeMap() in StrategicMergeMapPatch()\n\t// which is called server-side\n\tMergeParallelList bool\n\t// IgnoreUnmatchedNulls indicates if we should process the unmatched nulls.\n\tIgnoreUnmatchedNulls bool\n}\n\n// The following code is adapted from github.com/openshift/origin/pkg/util/jsonmerge.\n// Instead of defining a Delta that holds an original, a patch and a set of preconditions,\n// the reconcile method accepts a set of preconditions as an argument.\n\n// CreateTwoWayMergePatch creates a patch that can be passed to StrategicMergePatch from an original\n// document and a modified document, which are passed to the method as json encoded content. It will\n// return a patch that yields the modified document when applied to the original document, or an error\n// if either of the two documents is invalid.\nfunc CreateTwoWayMergePatch(original, modified []byte, dataStruct interface{}, fns ...mergepatch.PreconditionFunc) ([]byte, error) {\n\tschema, err := NewPatchMetaFromStruct(dataStruct)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn CreateTwoWayMergePatchUsingLookupPatchMeta(original, modified, schema, fns...)\n}\n\nfunc CreateTwoWayMergePatchUsingLookupPatchMeta(\n\toriginal, modified []byte, schema LookupPatchMeta, fns ...mergepatch.PreconditionFunc) ([]byte, error) {\n\toriginalMap := map[string]interface{}{}\n\tif len(original) > 0 {\n\t\tif err := json.Unmarshal(original, &originalMap); err != nil {\n\t\t\treturn nil, mergepatch.ErrBadJSONDoc\n\t\t}\n\t}\n\n\tmodifiedMap := map[string]interface{}{}\n\tif len(modified) > 0 {\n\t\tif err := json.Unmarshal(modified, &modifiedMap); err != nil {\n\t\t\treturn nil, mergepatch.ErrBadJSONDoc\n\t\t}\n\t}\n\n\tpatchMap, err := CreateTwoWayMergeMapPatchUsingLookupPatchMeta(originalMap, modifiedMap, schema, fns...)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn json.Marshal(patchMap)\n}\n\n// CreateTwoWayMergeMapPatch creates a patch from an original and modified JSON objects,\n// encoded JSONMap.\n// The serialized version of the map can then be passed to StrategicMergeMapPatch.\nfunc CreateTwoWayMergeMapPatch(original, modified JSONMap, dataStruct interface{}, fns ...mergepatch.PreconditionFunc) (JSONMap, error) {\n\tschema, err := NewPatchMetaFromStruct(dataStruct)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn CreateTwoWayMergeMapPatchUsingLookupPatchMeta(original, modified, schema, fns...)\n}\n\nfunc CreateTwoWayMergeMapPatchUsingLookupPatchMeta(original, modified JSONMap, schema LookupPatchMeta, fns ...mergepatch.PreconditionFunc) (JSONMap, error) {\n\tdiffOptions := DiffOptions{\n\t\tSetElementOrder: true,\n\t}\n\tpatchMap, err := diffMaps(original, modified, schema, diffOptions)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Apply the preconditions to the patch, and return an error if any of them fail.\n\tfor _, fn := range fns {\n\t\tif !fn(patchMap) {\n\t\t\treturn nil, mergepatch.NewErrPreconditionFailed(patchMap)\n\t\t}\n\t}\n\n\treturn patchMap, nil\n}\n\n// Returns a (recursive) strategic merge patch that yields modified when applied to original.\n// Including:\n// - Adding fields to the patch present in modified, missing from original\n// - Setting fields to the patch present in modified and original with different values\n// - Delete fields present in original, missing from modified through\n// - IFF map field - set to nil in patch\n// - IFF list of maps && merge strategy - use deleteDirective for the elements\n// - IFF list of primitives && merge strategy - use parallel deletion list\n// - IFF list of maps or primitives with replace strategy (default) - set patch value to the value in modified\n// - Build $retainKeys directive for fields with retainKeys patch strategy\nfunc diffMaps(original, modified map[string]interface{}, schema LookupPatchMeta, diffOptions DiffOptions) (map[string]interface{}, error) {\n\tpatch := map[string]interface{}{}\n\n\t// This will be used to build the $retainKeys directive sent in the patch\n\tretainKeysList := make([]interface{}, 0, len(modified))\n\n\t// Compare each value in the modified map against the value in the original map\n\tfor key, modifiedValue := range modified {\n\t\t// Get the underlying type for pointers\n\t\tif diffOptions.BuildRetainKeysDirective && modifiedValue != nil {\n\t\t\tretainKeysList = append(retainKeysList, key)\n\t\t}\n\n\t\toriginalValue, ok := original[key]\n\t\tif !ok {\n\t\t\t// Key was added, so add to patch\n\t\t\tif !diffOptions.IgnoreChangesAndAdditions {\n\t\t\t\tpatch[key] = modifiedValue\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\t// The patch may have a patch directive\n\t\t// TODO: figure out if we need this. This shouldn't be needed by apply. When would the original map have patch directives in it?\n\t\tfoundDirectiveMarker, err := handleDirectiveMarker(key, originalValue, modifiedValue, patch)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif foundDirectiveMarker {\n\t\t\tcontinue\n\t\t}\n\n\t\tif reflect.TypeOf(originalValue) != reflect.TypeOf(modifiedValue) {\n\t\t\t// Types have changed, so add to patch\n\t\t\tif !diffOptions.IgnoreChangesAndAdditions {\n\t\t\t\tpatch[key] = modifiedValue\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\t// Types are the same, so compare values\n\t\tswitch originalValueTyped := originalValue.(type) {\n\t\tcase map[string]interface{}:\n\t\t\tmodifiedValueTyped := modifiedValue.(map[string]interface{})\n\t\t\terr = handleMapDiff(key, originalValueTyped, modifiedValueTyped, patch, schema, diffOptions)\n\t\tcase []interface{}:\n\t\t\tmodifiedValueTyped := modifiedValue.([]interface{})\n\t\t\terr = handleSliceDiff(key, originalValueTyped, modifiedValueTyped, patch, schema, diffOptions)\n\t\tdefault:\n\t\t\treplacePatchFieldIfNotEqual(key, originalValue, modifiedValue, patch, diffOptions)\n\t\t}\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tupdatePatchIfMissing(original, modified, patch, diffOptions)\n\t// Insert the retainKeysList iff there are values present in the retainKeysList and\n\t// either of the following is true:\n\t// - the patch is not empty\n\t// - there are additional field in original that need to be cleared\n\tif len(retainKeysList) > 0 &&\n\t\t(len(patch) > 0 || hasAdditionalNewField(original, modified)) {\n\t\tpatch[retainKeysDirective] = sortScalars(retainKeysList)\n\t}\n\treturn patch, nil\n}\n\n// handleDirectiveMarker handles how to diff directive marker between 2 objects\nfunc handleDirectiveMarker(key string, originalValue, modifiedValue interface{}, patch map[string]interface{}) (bool, error) {\n\tif key == directiveMarker {\n\t\toriginalString, ok := originalValue.(string)\n\t\tif !ok {\n\t\t\treturn false, fmt.Errorf(\"invalid value for special key: %s\", directiveMarker)\n\t\t}\n\t\tmodifiedString, ok := modifiedValue.(string)\n\t\tif !ok {\n\t\t\treturn false, fmt.Errorf(\"invalid value for special key: %s\", directiveMarker)\n\t\t}\n\t\tif modifiedString != originalString {\n\t\t\tpatch[directiveMarker] = modifiedValue\n\t\t}\n\t\treturn true, nil\n\t}\n\treturn false, nil\n}\n\n// handleMapDiff diff between 2 maps `originalValueTyped` and `modifiedValue`,\n// puts the diff in the `patch` associated with `key`\n// key is the key associated with originalValue and modifiedValue.\n// originalValue, modifiedValue are the old and new value respectively.They are both maps\n// patch is the patch map that contains key and the updated value, and it is the parent of originalValue, modifiedValue\n// diffOptions contains multiple options to control how we do the diff.\nfunc handleMapDiff(key string, originalValue, modifiedValue, patch map[string]interface{},\n\tschema LookupPatchMeta, diffOptions DiffOptions) error {\n\tsubschema, patchMeta, err := schema.LookupPatchMetadataForStruct(key)\n\n\tif err != nil {\n\t\t// We couldn't look up metadata for the field\n\t\t// If the values are identical, this doesn't matter, no patch is needed\n\t\tif reflect.DeepEqual(originalValue, modifiedValue) {\n\t\t\treturn nil\n\t\t}\n\t\t// Otherwise, return the error\n\t\treturn err\n\t}\n\tretainKeys, patchStrategy, err := extractRetainKeysPatchStrategy(patchMeta.GetPatchStrategies())\n\tif err != nil {\n\t\treturn err\n\t}\n\tdiffOptions.BuildRetainKeysDirective = retainKeys\n\tswitch patchStrategy {\n\t// The patch strategic from metadata tells us to replace the entire object instead of diffing it\n\tcase replaceDirective:\n\t\tif !diffOptions.IgnoreChangesAndAdditions {\n\t\t\tpatch[key] = modifiedValue\n\t\t}\n\tdefault:\n\t\tpatchValue, err := diffMaps(originalValue, modifiedValue, subschema, diffOptions)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Maps were not identical, use provided patch value\n\t\tif len(patchValue) > 0 {\n\t\t\tpatch[key] = patchValue\n\t\t}\n\t}\n\treturn nil\n}\n\n// handleSliceDiff diff between 2 slices `originalValueTyped` and `modifiedValue`,\n// puts the diff in the `patch` associated with `key`\n// key is the key associated with originalValue and modifiedValue.\n// originalValue, modifiedValue are the old and new value respectively.They are both slices\n// patch is the patch map that contains key and the updated value, and it is the parent of originalValue, modifiedValue\n// diffOptions contains multiple options to control how we do the diff.\nfunc handleSliceDiff(key string, originalValue, modifiedValue []interface{}, patch map[string]interface{},\n\tschema LookupPatchMeta, diffOptions DiffOptions) error {\n\tsubschema, patchMeta, err := schema.LookupPatchMetadataForSlice(key)\n\tif err != nil {\n\t\t// We couldn't look up metadata for the field\n\t\t// If the values are identical, this doesn't matter, no patch is needed\n\t\tif reflect.DeepEqual(originalValue, modifiedValue) {\n\t\t\treturn nil\n\t\t}\n\t\t// Otherwise, return the error\n\t\treturn err\n\t}\n\tretainKeys, patchStrategy, err := extractRetainKeysPatchStrategy(patchMeta.GetPatchStrategies())\n\tif err != nil {\n\t\treturn err\n\t}\n\tswitch patchStrategy {\n\t// Merge the 2 slices using mergePatchKey\n\tcase mergeDirective:\n\t\tdiffOptions.BuildRetainKeysDirective = retainKeys\n\t\taddList, deletionList, setOrderList, err := diffLists(originalValue, modifiedValue, subschema, patchMeta.GetPatchMergeKey(), diffOptions)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif len(addList) > 0 {\n\t\t\tpatch[key] = addList\n\t\t}\n\t\t// generate a parallel list for deletion\n\t\tif len(deletionList) > 0 {\n\t\t\tparallelDeletionListKey := fmt.Sprintf(\"%s/%s\", deleteFromPrimitiveListDirectivePrefix, key)\n\t\t\tpatch[parallelDeletionListKey] = deletionList\n\t\t}\n\t\tif len(setOrderList) > 0 {\n\t\t\tparallelSetOrderListKey := fmt.Sprintf(\"%s/%s\", setElementOrderDirectivePrefix, key)\n\t\t\tpatch[parallelSetOrderListKey] = setOrderList\n\t\t}\n\tdefault:\n\t\treplacePatchFieldIfNotEqual(key, originalValue, modifiedValue, patch, diffOptions)\n\t}\n\treturn nil\n}\n\n// replacePatchFieldIfNotEqual updates the patch if original and modified are not deep equal\n// if diffOptions.IgnoreChangesAndAdditions is false.\n// original is the old value, maybe either the live cluster object or the last applied configuration\n// modified is the new value, is always the users new config\nfunc replacePatchFieldIfNotEqual(key string, original, modified interface{},\n\tpatch map[string]interface{}, diffOptions DiffOptions) {\n\tif diffOptions.IgnoreChangesAndAdditions {\n\t\t// Ignoring changes - do nothing\n\t\treturn\n\t}\n\tif reflect.DeepEqual(original, modified) {\n\t\t// Contents are identical - do nothing\n\t\treturn\n\t}\n\t// Create a patch to replace the old value with the new one\n\tpatch[key] = modified\n}\n\n// updatePatchIfMissing iterates over `original` when ignoreDeletions is false.\n// Clear the field whose key is not present in `modified`.\n// original is the old value, maybe either the live cluster object or the last applied configuration\n// modified is the new value, is always the users new config\nfunc updatePatchIfMissing(original, modified, patch map[string]interface{}, diffOptions DiffOptions) {\n\tif diffOptions.IgnoreDeletions {\n\t\t// Ignoring deletion - do nothing\n\t\treturn\n\t}\n\t// Add nils for deleted values\n\tfor key := range original {\n\t\tif _, found := modified[key]; !found {\n\t\t\tpatch[key] = nil\n\t\t}\n\t}\n}\n\n// validateMergeKeyInLists checks if each map in the list has the mentryerge key.\nfunc validateMergeKeyInLists(mergeKey string, lists ...[]interface{}) error {\n\tfor _, list := range lists {\n\t\tfor _, item := range list {\n\t\t\tm, ok := item.(map[string]interface{})\n\t\t\tif !ok {\n\t\t\t\treturn mergepatch.ErrBadArgType(m, item)\n\t\t\t}\n\t\t\tif _, ok = m[mergeKey]; !ok {\n\t\t\t\treturn mergepatch.ErrNoMergeKey(m, mergeKey)\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\n// normalizeElementOrder sort `patch` list by `patchOrder` and sort `serverOnly` list by `serverOrder`.\n// Then it merges the 2 sorted lists.\n// It guarantee the relative order in the patch list and in the serverOnly list is kept.\n// `patch` is a list of items in the patch, and `serverOnly` is a list of items in the live object.\n// `patchOrder` is the order we want `patch` list to have and\n// `serverOrder` is the order we want `serverOnly` list to have.\n// kind is the kind of each item in the lists `patch` and `serverOnly`.\nfunc normalizeElementOrder(patch, serverOnly, patchOrder, serverOrder []interface{}, mergeKey string, kind reflect.Kind) ([]interface{}, error) {\n\tpatch, err := normalizeSliceOrder(patch, patchOrder, mergeKey, kind)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tserverOnly, err = normalizeSliceOrder(serverOnly, serverOrder, mergeKey, kind)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tall := mergeSortedSlice(serverOnly, patch, serverOrder, mergeKey, kind)\n\n\treturn all, nil\n}\n\n// mergeSortedSlice merges the 2 sorted lists by serverOrder with best effort.\n// It will insert each item in `left` list to `right` list. In most cases, the 2 lists will be interleaved.\n// The relative order of left and right are guaranteed to be kept.\n// They have higher precedence than the order in the live list.\n// The place for a item in `left` is found by:\n// scan from the place of last insertion in `right` to the end of `right`,\n// the place is before the first item that is greater than the item we want to insert.\n// example usage: using server-only items as left and patch items as right. We insert server-only items\n// to patch list. We use the order of live object as record for comparison.\nfunc mergeSortedSlice(left, right, serverOrder []interface{}, mergeKey string, kind reflect.Kind) []interface{} {\n\t// Returns if l is less than r, and if both have been found.\n\t// If l and r both present and l is in front of r, l is less than r.\n\tless := func(l, r interface{}) (bool, bool) {\n\t\tli := index(serverOrder, l, mergeKey, kind)\n\t\tri := index(serverOrder, r, mergeKey, kind)\n\t\tif li >= 0 && ri >= 0 {\n\t\t\treturn li < ri, true\n\t\t} else {\n\t\t\treturn false, false\n\t\t}\n\t}\n\n\t// left and right should be non-overlapping.\n\tsize := len(left) + len(right)\n\ti, j := 0, 0\n\ts := make([]interface{}, size, size)\n\n\tfor k := 0; k < size; k++ {\n\t\tif i >= len(left) && j < len(right) {\n\t\t\t// have items left in `right` list\n\t\t\ts[k] = right[j]\n\t\t\tj++\n\t\t} else if j >= len(right) && i < len(left) {\n\t\t\t// have items left in `left` list\n\t\t\ts[k] = left[i]\n\t\t\ti++\n\t\t} else {\n\t\t\t// compare them if i and j are both in bound\n\t\t\tless, foundBoth := less(left[i], right[j])\n\t\t\tif foundBoth && less {\n\t\t\t\ts[k] = left[i]\n\t\t\t\ti++\n\t\t\t} else {\n\t\t\t\ts[k] = right[j]\n\t\t\t\tj++\n\t\t\t}\n\t\t}\n\t}\n\treturn s\n}\n\n// index returns the index of the item in the given items, or -1 if it doesn't exist\n// l must NOT be a slice of slices, this should be checked before calling.\nfunc index(l []interface{}, valToLookUp interface{}, mergeKey string, kind reflect.Kind) int {\n\tvar getValFn func(interface{}) interface{}\n\t// Get the correct `getValFn` based on item `kind`.\n\t// It should return the value of merge key for maps and\n\t// return the item for other kinds.\n\tswitch kind {\n\tcase reflect.Map:\n\t\tgetValFn = func(item interface{}) interface{} {\n\t\t\ttypedItem, ok := item.(map[string]interface{})\n\t\t\tif !ok {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tval := typedItem[mergeKey]\n\t\t\treturn val\n\t\t}\n\tdefault:\n\t\tgetValFn = func(item interface{}) interface{} {\n\t\t\treturn item\n\t\t}\n\t}\n\n\tfor i, v := range l {\n\t\tif getValFn(valToLookUp) == getValFn(v) {\n\t\t\treturn i\n\t\t}\n\t}\n\treturn -1\n}\n\n// extractToDeleteItems takes a list and\n// returns 2 lists: one contains items that should be kept and the other contains items to be deleted.\nfunc extractToDeleteItems(l []interface{}) ([]interface{}, []interface{}, error) {\n\tvar nonDelete, toDelete []interface{}\n\tfor _, v := range l {\n\t\tm, ok := v.(map[string]interface{})\n\t\tif !ok {\n\t\t\treturn nil, nil, mergepatch.ErrBadArgType(m, v)\n\t\t}\n\n\t\tdirective, foundDirective := m[directiveMarker]\n\t\tif foundDirective && directive == deleteDirective {\n\t\t\ttoDelete = append(toDelete, v)\n\t\t} else {\n\t\t\tnonDelete = append(nonDelete, v)\n\t\t}\n\t}\n\treturn nonDelete, toDelete, nil\n}\n\n// normalizeSliceOrder sort `toSort` list by `order`\nfunc normalizeSliceOrder(toSort, order []interface{}, mergeKey string, kind reflect.Kind) ([]interface{}, error) {\n\tvar toDelete []interface{}\n\tif kind == reflect.Map {\n\t\t// make sure each item in toSort, order has merge key\n\t\terr := validateMergeKeyInLists(mergeKey, toSort, order)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\ttoSort, toDelete, err = extractToDeleteItems(toSort)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\tsort.SliceStable(toSort, func(i, j int) bool {\n\t\tif ii := index(order, toSort[i], mergeKey, kind); ii >= 0 {\n\t\t\tif ij := index(order, toSort[j], mergeKey, kind); ij >= 0 {\n\t\t\t\treturn ii < ij\n\t\t\t}\n\t\t}\n\t\treturn true\n\t})\n\ttoSort = append(toSort, toDelete...)\n\treturn toSort, nil\n}\n\n// Returns a (recursive) strategic merge patch, a parallel deletion list if necessary and\n// another list to set the order of the list\n// Only list of primitives with merge strategy will generate a parallel deletion list.\n// These two lists should yield modified when applied to original, for lists with merge semantics.\nfunc diffLists(original, modified []interface{}, schema LookupPatchMeta, mergeKey string, diffOptions DiffOptions) ([]interface{}, []interface{}, []interface{}, error) {\n\tif len(original) == 0 {\n\t\t// Both slices are empty - do nothing\n\t\tif len(modified) == 0 || diffOptions.IgnoreChangesAndAdditions {\n\t\t\treturn nil, nil, nil, nil\n\t\t}\n\n\t\t// Old slice was empty - add all elements from the new slice\n\t\treturn modified, nil, nil, nil\n\t}\n\n\telementType, err := sliceElementType(original, modified)\n\tif err != nil {\n\t\treturn nil, nil, nil, err\n\t}\n\n\tvar patchList, deleteList, setOrderList []interface{}\n\tkind := elementType.Kind()\n\tswitch kind {\n\tcase reflect.Map:\n\t\tpatchList, deleteList, err = diffListsOfMaps(original, modified, schema, mergeKey, diffOptions)\n\t\tif err != nil {\n\t\t\treturn nil, nil, nil, err\n\t\t}\n\t\tpatchList, err = normalizeSliceOrder(patchList, modified, mergeKey, kind)\n\t\tif err != nil {\n\t\t\treturn nil, nil, nil, err\n\t\t}\n\t\torderSame, err := isOrderSame(original, modified, mergeKey)\n\t\tif err != nil {\n\t\t\treturn nil, nil, nil, err\n\t\t}\n\t\t// append the deletions to the end of the patch list.\n\t\tpatchList = append(patchList, deleteList...)\n\t\tdeleteList = nil\n\t\t// generate the setElementOrder list when there are content changes or order changes\n\t\tif diffOptions.SetElementOrder &&\n\t\t\t((!diffOptions.IgnoreChangesAndAdditions && (len(patchList) > 0 || !orderSame)) ||\n\t\t\t\t(!diffOptions.IgnoreDeletions && len(patchList) > 0)) {\n\t\t\t// Generate a list of maps that each item contains only the merge key.\n\t\t\tsetOrderList = make([]interface{}, len(modified))\n\t\t\tfor i, v := range modified {\n\t\t\t\ttypedV := v.(map[string]interface{})\n\t\t\t\tsetOrderList[i] = map[string]interface{}{\n\t\t\t\t\tmergeKey: typedV[mergeKey],\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\tcase reflect.Slice:\n\t\t// Lists of Lists are not permitted by the api\n\t\treturn nil, nil, nil, mergepatch.ErrNoListOfLists\n\tdefault:\n\t\tpatchList, deleteList, err = diffListsOfScalars(original, modified, diffOptions)\n\t\tif err != nil {\n\t\t\treturn nil, nil, nil, err\n\t\t}\n\t\tpatchList, err = normalizeSliceOrder(patchList, modified, mergeKey, kind)\n\t\t// generate the setElementOrder list when there are content changes or order changes\n\t\tif diffOptions.SetElementOrder && ((!diffOptions.IgnoreDeletions && len(deleteList) > 0) ||\n\t\t\t(!diffOptions.IgnoreChangesAndAdditions && !reflect.DeepEqual(original, modified))) {\n\t\t\tsetOrderList = modified\n\t\t}\n\t}\n\treturn patchList, deleteList, setOrderList, err\n}\n\n// isOrderSame checks if the order in a list has changed\nfunc isOrderSame(original, modified []interface{}, mergeKey string) (bool, error) {\n\tif len(original) != len(modified) {\n\t\treturn false, nil\n\t}\n\tfor i, modifiedItem := range modified {\n\t\tequal, err := mergeKeyValueEqual(original[i], modifiedItem, mergeKey)\n\t\tif err != nil || !equal {\n\t\t\treturn equal, err\n\t\t}\n\t}\n\treturn true, nil\n}\n\n// diffListsOfScalars returns 2 lists, the first one is addList and the second one is deletionList.\n// Argument diffOptions.IgnoreChangesAndAdditions controls if calculate addList. true means not calculate.\n// Argument diffOptions.IgnoreDeletions controls if calculate deletionList. true means not calculate.\n// original may be changed, but modified is guaranteed to not be changed\nfunc diffListsOfScalars(original, modified []interface{}, diffOptions DiffOptions) ([]interface{}, []interface{}, error) {\n\tmodifiedCopy := make([]interface{}, len(modified))\n\tcopy(modifiedCopy, modified)\n\t// Sort the scalars for easier calculating the diff\n\toriginalScalars := sortScalars(original)\n\tmodifiedScalars := sortScalars(modifiedCopy)\n\n\toriginalIndex, modifiedIndex := 0, 0\n\taddList := []interface{}{}\n\tdeletionList := []interface{}{}\n\n\tfor {\n\t\toriginalInBounds := originalIndex < len(originalScalars)\n\t\tmodifiedInBounds := modifiedIndex < len(modifiedScalars)\n\t\tif !originalInBounds && !modifiedInBounds {\n\t\t\tbreak\n\t\t}\n\t\t// we need to compare the string representation of the scalar,\n\t\t// because the scalar is an interface which doesn't support either < or >\n\t\t// And that's how func sortScalars compare scalars.\n\t\tvar originalString, modifiedString string\n\t\tvar originalValue, modifiedValue interface{}\n\t\tif originalInBounds {\n\t\t\toriginalValue = originalScalars[originalIndex]\n\t\t\toriginalString = fmt.Sprintf(\"%v\", originalValue)\n\t\t}\n\t\tif modifiedInBounds {\n\t\t\tmodifiedValue = modifiedScalars[modifiedIndex]\n\t\t\tmodifiedString = fmt.Sprintf(\"%v\", modifiedValue)\n\t\t}\n\n\t\toriginalV, modifiedV := compareListValuesAtIndex(originalInBounds, modifiedInBounds, originalString, modifiedString)\n\t\tswitch {\n\t\tcase originalV == nil && modifiedV == nil:\n\t\t\toriginalIndex++\n\t\t\tmodifiedIndex++\n\t\tcase originalV != nil && modifiedV == nil:\n\t\t\tif !diffOptions.IgnoreDeletions {\n\t\t\t\tdeletionList = append(deletionList, originalValue)\n\t\t\t}\n\t\t\toriginalIndex++\n\t\tcase originalV == nil && modifiedV != nil:\n\t\t\tif !diffOptions.IgnoreChangesAndAdditions {\n\t\t\t\taddList = append(addList, modifiedValue)\n\t\t\t}\n\t\t\tmodifiedIndex++\n\t\tdefault:\n\t\t\treturn nil, nil, fmt.Errorf(\"Unexpected returned value from compareListValuesAtIndex: %v and %v\", originalV, modifiedV)\n\t\t}\n\t}\n\n\treturn addList, deduplicateScalars(deletionList), nil\n}\n\n// If first return value is non-nil, list1 contains an element not present in list2\n// If second return value is non-nil, list2 contains an element not present in list1\nfunc compareListValuesAtIndex(list1Inbounds, list2Inbounds bool, list1Value, list2Value string) (interface{}, interface{}) {\n\tbothInBounds := list1Inbounds && list2Inbounds\n\tswitch {\n\t// scalars are identical\n\tcase bothInBounds && list1Value == list2Value:\n\t\treturn nil, nil\n\t// only list2 is in bound\n\tcase !list1Inbounds:\n\t\tfallthrough\n\t// list2 has additional scalar\n\tcase bothInBounds && list1Value > list2Value:\n\t\treturn nil, list2Value\n\t// only original is in bound\n\tcase !list2Inbounds:\n\t\tfallthrough\n\t// original has additional scalar\n\tcase bothInBounds && list1Value < list2Value:\n\t\treturn list1Value, nil\n\tdefault:\n\t\treturn nil, nil\n\t}\n}\n\n// diffListsOfMaps takes a pair of lists and\n// returns a (recursive) strategic merge patch list contains additions and changes and\n// a deletion list contains deletions\nfunc diffListsOfMaps(original, modified []interface{}, schema LookupPatchMeta, mergeKey string, diffOptions DiffOptions) ([]interface{}, []interface{}, error) {\n\tpatch := make([]interface{}, 0, len(modified))\n\tdeletionList := make([]interface{}, 0, len(original))\n\n\toriginalSorted, err := sortMergeListsByNameArray(original, schema, mergeKey, false)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\tmodifiedSorted, err := sortMergeListsByNameArray(modified, schema, mergeKey, false)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\toriginalIndex, modifiedIndex := 0, 0\n\tfor {\n\t\toriginalInBounds := originalIndex < len(originalSorted)\n\t\tmodifiedInBounds := modifiedIndex < len(modifiedSorted)\n\t\tbothInBounds := originalInBounds && modifiedInBounds\n\t\tif !originalInBounds && !modifiedInBounds {\n\t\t\tbreak\n\t\t}\n\n\t\tvar originalElementMergeKeyValueString, modifiedElementMergeKeyValueString string\n\t\tvar originalElementMergeKeyValue, modifiedElementMergeKeyValue interface{}\n\t\tvar originalElement, modifiedElement map[string]interface{}\n\t\tif originalInBounds {\n\t\t\toriginalElement, originalElementMergeKeyValue, err = getMapAndMergeKeyValueByIndex(originalIndex, mergeKey, originalSorted)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, nil, err\n\t\t\t}\n\t\t\toriginalElementMergeKeyValueString = fmt.Sprintf(\"%v\", originalElementMergeKeyValue)\n\t\t}\n\t\tif modifiedInBounds {\n\t\t\tmodifiedElement, modifiedElementMergeKeyValue, err = getMapAndMergeKeyValueByIndex(modifiedIndex, mergeKey, modifiedSorted)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, nil, err\n\t\t\t}\n\t\t\tmodifiedElementMergeKeyValueString = fmt.Sprintf(\"%v\", modifiedElementMergeKeyValue)\n\t\t}\n\n\t\tswitch {\n\t\tcase bothInBounds && ItemMatchesOriginalAndModifiedSlice(originalElementMergeKeyValueString, modifiedElementMergeKeyValueString):\n\t\t\t// Merge key values are equal, so recurse\n\t\t\tpatchValue, err := diffMaps(originalElement, modifiedElement, schema, diffOptions)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, nil, err\n\t\t\t}\n\t\t\tif len(patchValue) > 0 {\n\t\t\t\tpatchValue[mergeKey] = modifiedElementMergeKeyValue\n\t\t\t\tpatch = append(patch, patchValue)\n\t\t\t}\n\t\t\toriginalIndex++\n\t\t\tmodifiedIndex++\n\t\t// only modified is in bound\n\t\tcase !originalInBounds:\n\t\t\tfallthrough\n\t\t// modified has additional map\n\t\tcase bothInBounds && ItemAddedToModifiedSlice(originalElementMergeKeyValueString, modifiedElementMergeKeyValueString):\n\t\t\tif !diffOptions.IgnoreChangesAndAdditions {\n\t\t\t\tpatch = append(patch, modifiedElement)\n\t\t\t}\n\t\t\tmodifiedIndex++\n\t\t// only original is in bound\n\t\tcase !modifiedInBounds:\n\t\t\tfallthrough\n\t\t// original has additional map\n\t\tcase bothInBounds && ItemRemovedFromModifiedSlice(originalElementMergeKeyValueString, modifiedElementMergeKeyValueString):\n\t\t\tif !diffOptions.IgnoreDeletions {\n\t\t\t\t// Item was deleted, so add delete directive\n\t\t\t\tdeletionList = append(deletionList, CreateDeleteDirective(mergeKey, originalElementMergeKeyValue))\n\t\t\t}\n\t\t\toriginalIndex++\n\t\t}\n\t}\n\n\treturn patch, deletionList, nil\n}\n\n// getMapAndMergeKeyValueByIndex return a map in the list and its merge key value given the index of the map.\nfunc getMapAndMergeKeyValueByIndex(index int, mergeKey string, listOfMaps []interface{}) (map[string]interface{}, interface{}, error) {\n\tm, ok := listOfMaps[index].(map[string]interface{})\n\tif !ok {\n\t\treturn nil, nil, mergepatch.ErrBadArgType(m, listOfMaps[index])\n\t}\n\n\tval, ok := m[mergeKey]\n\tif !ok {\n\t\treturn nil, nil, mergepatch.ErrNoMergeKey(m, mergeKey)\n\t}\n\treturn m, val, nil\n}\n\n// StrategicMergePatch applies a strategic merge patch. The patch and the original document\n// must be json encoded content. A patch can be created from an original and a modified document\n// by calling CreateStrategicMergePatch.\nfunc StrategicMergePatch(original, patch []byte, dataStruct interface{}) ([]byte, error) {\n\tschema, err := NewPatchMetaFromStruct(dataStruct)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn StrategicMergePatchUsingLookupPatchMeta(original, patch, schema)\n}\n\nfunc StrategicMergePatchUsingLookupPatchMeta(original, patch []byte, schema LookupPatchMeta) ([]byte, error) {\n\toriginalMap, err := handleUnmarshal(original)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tpatchMap, err := handleUnmarshal(patch)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresult, err := StrategicMergeMapPatchUsingLookupPatchMeta(originalMap, patchMap, schema)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn json.Marshal(result)\n}\n\nfunc handleUnmarshal(j []byte) (map[string]interface{}, error) {\n\tif j == nil {\n\t\tj = []byte(\"{}\")\n\t}\n\n\tm := map[string]interface{}{}\n\terr := json.Unmarshal(j, &m)\n\tif err != nil {\n\t\treturn nil, mergepatch.ErrBadJSONDoc\n\t}\n\treturn m, nil\n}\n\n// StrategicMergeMapPatch applies a strategic merge patch. The original and patch documents\n// must be JSONMap. A patch can be created from an original and modified document by\n// calling CreateTwoWayMergeMapPatch.\n// Warning: the original and patch JSONMap objects are mutated by this function and should not be reused.\nfunc StrategicMergeMapPatch(original, patch JSONMap, dataStruct interface{}) (JSONMap, error) {\n\tschema, err := NewPatchMetaFromStruct(dataStruct)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// We need the go struct tags `patchMergeKey` and `patchStrategy` for fields that support a strategic merge patch.\n\t// For native resources, we can easily figure out these tags since we know the fields.\n\n\t// Because custom resources are decoded as Unstructured and because we're missing the metadata about how to handle\n\t// each field in a strategic merge patch, we can't find the go struct tags. Hence, we can't easily  do a strategic merge\n\t// for custom resources. So we should fail fast and return an error.\n\tif _, ok := dataStruct.(*unstructured.Unstructured); ok {\n\t\treturn nil, mergepatch.ErrUnsupportedStrategicMergePatchFormat\n\t}\n\n\treturn StrategicMergeMapPatchUsingLookupPatchMeta(original, patch, schema)\n}\n\nfunc StrategicMergeMapPatchUsingLookupPatchMeta(original, patch JSONMap, schema LookupPatchMeta) (JSONMap, error) {\n\tmergeOptions := MergeOptions{\n\t\tMergeParallelList:    true,\n\t\tIgnoreUnmatchedNulls: true,\n\t}\n\treturn mergeMap(original, patch, schema, mergeOptions)\n}\n\n// MergeStrategicMergeMapPatchUsingLookupPatchMeta merges strategic merge\n// patches retaining `null` fields and parallel lists. If 2 patches change the\n// same fields and the latter one will override the former one. If you don't\n// want that happen, you need to run func MergingMapsHaveConflicts before\n// merging these patches. Applying the resulting merged merge patch to a JSONMap\n// yields the same as merging each strategic merge patch to the JSONMap in\n// succession.\nfunc MergeStrategicMergeMapPatchUsingLookupPatchMeta(schema LookupPatchMeta, patches ...JSONMap) (JSONMap, error) {\n\tmergeOptions := MergeOptions{\n\t\tMergeParallelList:    false,\n\t\tIgnoreUnmatchedNulls: false,\n\t}\n\tmerged := JSONMap{}\n\tvar err error\n\tfor _, patch := range patches {\n\t\tmerged, err = mergeMap(merged, patch, schema, mergeOptions)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn merged, nil\n}\n\n// handleDirectiveInMergeMap handles the patch directive when merging 2 maps.\nfunc handleDirectiveInMergeMap(directive interface{}, patch map[string]interface{}) (map[string]interface{}, error) {\n\tif directive == replaceDirective {\n\t\t// If the patch contains \"$patch: replace\", don't merge it, just use the\n\t\t// patch directly. Later on, we can add a single level replace that only\n\t\t// affects the map that the $patch is in.\n\t\tdelete(patch, directiveMarker)\n\t\treturn patch, nil\n\t}\n\n\tif directive == deleteDirective {\n\t\t// If the patch contains \"$patch: delete\", don't merge it, just return\n\t\t//  an empty map.\n\t\treturn map[string]interface{}{}, nil\n\t}\n\n\treturn nil, mergepatch.ErrBadPatchType(directive, patch)\n}\n\nfunc containsDirectiveMarker(item interface{}) bool {\n\tm, ok := item.(map[string]interface{})\n\tif ok {\n\t\tif _, foundDirectiveMarker := m[directiveMarker]; foundDirectiveMarker {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc mergeKeyValueEqual(left, right interface{}, mergeKey string) (bool, error) {\n\tif len(mergeKey) == 0 {\n\t\treturn left == right, nil\n\t}\n\ttypedLeft, ok := left.(map[string]interface{})\n\tif !ok {\n\t\treturn false, mergepatch.ErrBadArgType(typedLeft, left)\n\t}\n\ttypedRight, ok := right.(map[string]interface{})\n\tif !ok {\n\t\treturn false, mergepatch.ErrBadArgType(typedRight, right)\n\t}\n\tmergeKeyLeft, ok := typedLeft[mergeKey]\n\tif !ok {\n\t\treturn false, mergepatch.ErrNoMergeKey(typedLeft, mergeKey)\n\t}\n\tmergeKeyRight, ok := typedRight[mergeKey]\n\tif !ok {\n\t\treturn false, mergepatch.ErrNoMergeKey(typedRight, mergeKey)\n\t}\n\treturn mergeKeyLeft == mergeKeyRight, nil\n}\n\n// extractKey trims the prefix and return the original key\nfunc extractKey(s, prefix string) (string, error) {\n\tsubstrings := strings.SplitN(s, \"/\", 2)\n\tif len(substrings) <= 1 || substrings[0] != prefix {\n\t\tswitch prefix {\n\t\tcase deleteFromPrimitiveListDirectivePrefix:\n\t\t\treturn \"\", mergepatch.ErrBadPatchFormatForPrimitiveList\n\t\tcase setElementOrderDirectivePrefix:\n\t\t\treturn \"\", mergepatch.ErrBadPatchFormatForSetElementOrderList\n\t\tdefault:\n\t\t\treturn \"\", fmt.Errorf(\"fail to find unknown prefix %q in %s\\n\", prefix, s)\n\t\t}\n\t}\n\treturn substrings[1], nil\n}\n\n// validatePatchUsingSetOrderList verifies:\n// the relative order of any two items in the setOrderList list matches that in the patch list.\n// the items in the patch list must be a subset or the same as the $setElementOrder list (deletions are ignored).\nfunc validatePatchWithSetOrderList(patchList, setOrderList interface{}, mergeKey string) error {\n\ttypedSetOrderList, ok := setOrderList.([]interface{})\n\tif !ok {\n\t\treturn mergepatch.ErrBadPatchFormatForSetElementOrderList\n\t}\n\ttypedPatchList, ok := patchList.([]interface{})\n\tif !ok {\n\t\treturn mergepatch.ErrBadPatchFormatForSetElementOrderList\n\t}\n\tif len(typedSetOrderList) == 0 || len(typedPatchList) == 0 {\n\t\treturn nil\n\t}\n\n\tvar nonDeleteList []interface{}\n\tvar err error\n\tif len(mergeKey) > 0 {\n\t\tnonDeleteList, _, err = extractToDeleteItems(typedPatchList)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tnonDeleteList = typedPatchList\n\t}\n\n\tpatchIndex, setOrderIndex := 0, 0\n\tfor patchIndex < len(nonDeleteList) && setOrderIndex < len(typedSetOrderList) {\n\t\tif containsDirectiveMarker(nonDeleteList[patchIndex]) {\n\t\t\tpatchIndex++\n\t\t\tcontinue\n\t\t}\n\t\tmergeKeyEqual, err := mergeKeyValueEqual(nonDeleteList[patchIndex], typedSetOrderList[setOrderIndex], mergeKey)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif mergeKeyEqual {\n\t\t\tpatchIndex++\n\t\t}\n\t\tsetOrderIndex++\n\t}\n\t// If patchIndex is inbound but setOrderIndex if out of bound mean there are items mismatching between the patch list and setElementOrder list.\n\t// the second check is a sanity check, and should always be true if the first is true.\n\tif patchIndex < len(nonDeleteList) && setOrderIndex >= len(typedSetOrderList) {\n\t\treturn fmt.Errorf(\"The order in patch list:\\n%v\\n doesn't match %s list:\\n%v\\n\", typedPatchList, setElementOrderDirectivePrefix, setOrderList)\n\t}\n\treturn nil\n}\n\n// preprocessDeletionListForMerging preprocesses the deletion list.\n// it returns shouldContinue, isDeletionList, noPrefixKey\nfunc preprocessDeletionListForMerging(key string, original map[string]interface{},\n\tpatchVal interface{}, mergeDeletionList bool) (bool, bool, string, error) {\n\t// If found a parallel list for deletion and we are going to merge the list,\n\t// overwrite the key to the original key and set flag isDeleteList\n\tfoundParallelListPrefix := strings.HasPrefix(key, deleteFromPrimitiveListDirectivePrefix)\n\tif foundParallelListPrefix {\n\t\tif !mergeDeletionList {\n\t\t\toriginal[key] = patchVal\n\t\t\treturn true, false, \"\", nil\n\t\t}\n\t\toriginalKey, err := extractKey(key, deleteFromPrimitiveListDirectivePrefix)\n\t\treturn false, true, originalKey, err\n\t}\n\treturn false, false, \"\", nil\n}\n\n// applyRetainKeysDirective looks for a retainKeys directive and applies to original\n// - if no directive exists do nothing\n// - if directive is found, clear keys in original missing from the directive list\n// - validate that all keys present in the patch are present in the retainKeys directive\n// note: original may be another patch request, e.g. applying the add+modified patch to the deletions patch. In this case it may have directives\nfunc applyRetainKeysDirective(original, patch map[string]interface{}, options MergeOptions) error {\n\tretainKeysInPatch, foundInPatch := patch[retainKeysDirective]\n\tif !foundInPatch {\n\t\treturn nil\n\t}\n\t// cleanup the directive\n\tdelete(patch, retainKeysDirective)\n\n\tif !options.MergeParallelList {\n\t\t// If original is actually a patch, make sure the retainKeys directives are the same in both patches if present in both.\n\t\t// If not present in the original patch, copy from the modified patch.\n\t\tretainKeysInOriginal, foundInOriginal := original[retainKeysDirective]\n\t\tif foundInOriginal {\n\t\t\tif !reflect.DeepEqual(retainKeysInOriginal, retainKeysInPatch) {\n\t\t\t\t// This error actually should never happen.\n\t\t\t\treturn fmt.Errorf(\"%v and %v are not deep equal: this may happen when calculating the 3-way diff patch\", retainKeysInOriginal, retainKeysInPatch)\n\t\t\t}\n\t\t} else {\n\t\t\toriginal[retainKeysDirective] = retainKeysInPatch\n\t\t}\n\t\treturn nil\n\t}\n\n\tretainKeysList, ok := retainKeysInPatch.([]interface{})\n\tif !ok {\n\t\treturn mergepatch.ErrBadPatchFormatForRetainKeys\n\t}\n\n\t// validate patch to make sure all fields in the patch are present in the retainKeysList.\n\t// The map is used only as a set, the value is never referenced\n\tm := map[interface{}]struct{}{}\n\tfor _, v := range retainKeysList {\n\t\tm[v] = struct{}{}\n\t}\n\tfor k, v := range patch {\n\t\tif v == nil || strings.HasPrefix(k, deleteFromPrimitiveListDirectivePrefix) ||\n\t\t\tstrings.HasPrefix(k, setElementOrderDirectivePrefix) {\n\t\t\tcontinue\n\t\t}\n\t\t// If there is an item present in the patch but not in the retainKeys list,\n\t\t// the patch is invalid.\n\t\tif _, found := m[k]; !found {\n\t\t\treturn mergepatch.ErrBadPatchFormatForRetainKeys\n\t\t}\n\t}\n\n\t// clear not present fields\n\tfor k := range original {\n\t\tif _, found := m[k]; !found {\n\t\t\tdelete(original, k)\n\t\t}\n\t}\n\treturn nil\n}\n\n// mergePatchIntoOriginal processes $setElementOrder list.\n// When not merging the directive, it will make sure $setElementOrder list exist only in original.\n// When merging the directive, it will try to find the $setElementOrder list and\n// its corresponding patch list, validate it and merge it.\n// Then, sort them by the relative order in setElementOrder, patch list and live list.\n// The precedence is $setElementOrder > order in patch list > order in live list.\n// This function will delete the item after merging it to prevent process it again in the future.\n// Ref: https://git.k8s.io/design-proposals-archive/cli/preserve-order-in-strategic-merge-patch.md\nfunc mergePatchIntoOriginal(original, patch map[string]interface{}, schema LookupPatchMeta, mergeOptions MergeOptions) error {\n\tfor key, patchV := range patch {\n\t\t// Do nothing if there is no ordering directive\n\t\tif !strings.HasPrefix(key, setElementOrderDirectivePrefix) {\n\t\t\tcontinue\n\t\t}\n\n\t\tsetElementOrderInPatch := patchV\n\t\t// Copies directive from the second patch (`patch`) to the first patch (`original`)\n\t\t// and checks they are equal and delete the directive in the second patch\n\t\tif !mergeOptions.MergeParallelList {\n\t\t\tsetElementOrderListInOriginal, ok := original[key]\n\t\t\tif ok {\n\t\t\t\t// check if the setElementOrder list in original and the one in patch matches\n\t\t\t\tif !reflect.DeepEqual(setElementOrderListInOriginal, setElementOrderInPatch) {\n\t\t\t\t\treturn mergepatch.ErrBadPatchFormatForSetElementOrderList\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// move the setElementOrder list from patch to original\n\t\t\t\toriginal[key] = setElementOrderInPatch\n\t\t\t}\n\t\t}\n\t\tdelete(patch, key)\n\n\t\tvar (\n\t\t\tok                                          bool\n\t\t\toriginalFieldValue, patchFieldValue, merged []interface{}\n\t\t\tpatchStrategy                               string\n\t\t\tpatchMeta                                   PatchMeta\n\t\t\tsubschema                                   LookupPatchMeta\n\t\t)\n\t\ttypedSetElementOrderList, ok := setElementOrderInPatch.([]interface{})\n\t\tif !ok {\n\t\t\treturn mergepatch.ErrBadArgType(typedSetElementOrderList, setElementOrderInPatch)\n\t\t}\n\t\t// Trim the setElementOrderDirectivePrefix to get the key of the list field in original.\n\t\toriginalKey, err := extractKey(key, setElementOrderDirectivePrefix)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// try to find the list with `originalKey` in `original` and `modified` and merge them.\n\t\toriginalList, foundOriginal := original[originalKey]\n\t\tpatchList, foundPatch := patch[originalKey]\n\t\tif foundOriginal {\n\t\t\toriginalFieldValue, ok = originalList.([]interface{})\n\t\t\tif !ok {\n\t\t\t\treturn mergepatch.ErrBadArgType(originalFieldValue, originalList)\n\t\t\t}\n\t\t}\n\t\tif foundPatch {\n\t\t\tpatchFieldValue, ok = patchList.([]interface{})\n\t\t\tif !ok {\n\t\t\t\treturn mergepatch.ErrBadArgType(patchFieldValue, patchList)\n\t\t\t}\n\t\t}\n\t\tsubschema, patchMeta, err = schema.LookupPatchMetadataForSlice(originalKey)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, patchStrategy, err = extractRetainKeysPatchStrategy(patchMeta.GetPatchStrategies())\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Check for consistency between the element order list and the field it applies to\n\t\terr = validatePatchWithSetOrderList(patchFieldValue, typedSetElementOrderList, patchMeta.GetPatchMergeKey())\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tswitch {\n\t\tcase foundOriginal && !foundPatch:\n\t\t\t// no change to list contents\n\t\t\tmerged = originalFieldValue\n\t\tcase !foundOriginal && foundPatch:\n\t\t\t// list was added\n\t\t\tv, keep := removeDirectives(patchFieldValue)\n\t\t\tif !keep {\n\t\t\t\t// Shouldn't be possible since patchFieldValue is a slice\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tmerged = v.([]interface{})\n\t\tcase foundOriginal && foundPatch:\n\t\t\tmerged, err = mergeSliceHandler(originalList, patchList, subschema,\n\t\t\t\tpatchStrategy, patchMeta.GetPatchMergeKey(), false, mergeOptions)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\tcase !foundOriginal && !foundPatch:\n\t\t\tcontinue\n\t\t}\n\n\t\t// Split all items into patch items and server-only items and then enforce the order.\n\t\tvar patchItems, serverOnlyItems []interface{}\n\t\tif len(patchMeta.GetPatchMergeKey()) == 0 {\n\t\t\t// Primitives doesn't need merge key to do partitioning.\n\t\t\tpatchItems, serverOnlyItems = partitionPrimitivesByPresentInList(merged, typedSetElementOrderList)\n\n\t\t} else {\n\t\t\t// Maps need merge key to do partitioning.\n\t\t\tpatchItems, serverOnlyItems, err = partitionMapsByPresentInList(merged, typedSetElementOrderList, patchMeta.GetPatchMergeKey())\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\telementType, err := sliceElementType(originalFieldValue, patchFieldValue)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tkind := elementType.Kind()\n\t\t// normalize merged list\n\t\t// typedSetElementOrderList contains all the relative order in typedPatchList,\n\t\t// so don't need to use typedPatchList\n\t\tboth, err := normalizeElementOrder(patchItems, serverOnlyItems, typedSetElementOrderList, originalFieldValue, patchMeta.GetPatchMergeKey(), kind)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\toriginal[originalKey] = both\n\t\t// delete patch list from patch to prevent process again in the future\n\t\tdelete(patch, originalKey)\n\t}\n\treturn nil\n}\n\n// partitionPrimitivesByPresentInList partitions elements into 2 slices, the first containing items present in partitionBy, the other not.\nfunc partitionPrimitivesByPresentInList(original, partitionBy []interface{}) ([]interface{}, []interface{}) {\n\tpatch := make([]interface{}, 0, len(original))\n\tserverOnly := make([]interface{}, 0, len(original))\n\tinPatch := map[interface{}]bool{}\n\tfor _, v := range partitionBy {\n\t\tinPatch[v] = true\n\t}\n\tfor _, v := range original {\n\t\tif !inPatch[v] {\n\t\t\tserverOnly = append(serverOnly, v)\n\t\t} else {\n\t\t\tpatch = append(patch, v)\n\t\t}\n\t}\n\treturn patch, serverOnly\n}\n\n// partitionMapsByPresentInList partitions elements into 2 slices, the first containing items present in partitionBy, the other not.\nfunc partitionMapsByPresentInList(original, partitionBy []interface{}, mergeKey string) ([]interface{}, []interface{}, error) {\n\tpatch := make([]interface{}, 0, len(original))\n\tserverOnly := make([]interface{}, 0, len(original))\n\tfor _, v := range original {\n\t\ttypedV, ok := v.(map[string]interface{})\n\t\tif !ok {\n\t\t\treturn nil, nil, mergepatch.ErrBadArgType(typedV, v)\n\t\t}\n\t\tmergeKeyValue, foundMergeKey := typedV[mergeKey]\n\t\tif !foundMergeKey {\n\t\t\treturn nil, nil, mergepatch.ErrNoMergeKey(typedV, mergeKey)\n\t\t}\n\t\t_, _, found, err := findMapInSliceBasedOnKeyValue(partitionBy, mergeKey, mergeKeyValue)\n\t\tif err != nil {\n\t\t\treturn nil, nil, err\n\t\t}\n\t\tif !found {\n\t\t\tserverOnly = append(serverOnly, v)\n\t\t} else {\n\t\t\tpatch = append(patch, v)\n\t\t}\n\t}\n\treturn patch, serverOnly, nil\n}\n\n// Removes directives from an object and returns value to use instead and whether\n// or not the field/index should even be kept\n// May modify input\nfunc removeDirectives(obj interface{}) (interface{}, bool) {\n\tif obj == nil {\n\t\treturn obj, true\n\t} else if typedV, ok := obj.(map[string]interface{}); ok {\n\t\tif _, hasDirective := typedV[directiveMarker]; hasDirective {\n\t\t\treturn nil, false\n\t\t}\n\n\t\tfor k, v := range typedV {\n\t\t\tvar keep bool\n\t\t\ttypedV[k], keep = removeDirectives(v)\n\t\t\tif !keep {\n\t\t\t\tdelete(typedV, k)\n\t\t\t}\n\t\t}\n\t\treturn typedV, true\n\t} else if typedV, ok := obj.([]interface{}); ok {\n\t\tvar res []interface{}\n\t\tif typedV != nil {\n\t\t\t// Make sure res is non-nil if patch is non-nil\n\t\t\tres = []interface{}{}\n\t\t}\n\t\tfor _, v := range typedV {\n\t\t\tif newV, keep := removeDirectives(v); keep {\n\t\t\t\tres = append(res, newV)\n\t\t\t}\n\t\t}\n\t\treturn res, true\n\t} else {\n\t\treturn obj, true\n\t}\n}\n\n// Merge fields from a patch map into the original map. Note: This may modify\n// both the original map and the patch because getting a deep copy of a map in\n// golang is highly non-trivial.\n// flag mergeOptions.MergeParallelList controls if using the parallel list to delete or keeping the list.\n// If patch contains any null field (e.g. field_1: null) that is not\n// present in original, then to propagate it to the end result use\n// mergeOptions.IgnoreUnmatchedNulls == false.\nfunc mergeMap(original, patch map[string]interface{}, schema LookupPatchMeta, mergeOptions MergeOptions) (map[string]interface{}, error) {\n\tif v, ok := patch[directiveMarker]; ok {\n\t\treturn handleDirectiveInMergeMap(v, patch)\n\t}\n\n\t// nil is an accepted value for original to simplify logic in other places.\n\t// If original is nil, replace it with an empty map and then apply the patch.\n\tif original == nil {\n\t\toriginal = map[string]interface{}{}\n\t}\n\n\terr := applyRetainKeysDirective(original, patch, mergeOptions)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Process $setElementOrder list and other lists sharing the same key.\n\t// When not merging the directive, it will make sure $setElementOrder list exist only in original.\n\t// When merging the directive, it will process $setElementOrder and its patch list together.\n\t// This function will delete the merged elements from patch so they will not be reprocessed\n\terr = mergePatchIntoOriginal(original, patch, schema, mergeOptions)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Start merging the patch into the original.\n\tfor k, patchV := range patch {\n\t\tskipProcessing, isDeleteList, noPrefixKey, err := preprocessDeletionListForMerging(k, original, patchV, mergeOptions.MergeParallelList)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif skipProcessing {\n\t\t\tcontinue\n\t\t}\n\t\tif len(noPrefixKey) > 0 {\n\t\t\tk = noPrefixKey\n\t\t}\n\n\t\t// If the value of this key is null, delete the key if it exists in the\n\t\t// original. Otherwise, check if we want to preserve it or skip it.\n\t\t// Preserving the null value is useful when we want to send an explicit\n\t\t// delete to the API server.\n\t\t// In some cases, this may lead to inconsistent behavior with create.\n\t\t// ref: https://github.com/kubernetes/kubernetes/issues/123304\n\t\t// To avoid breaking compatibility,\n\t\t// we made corresponding changes on the client side to ensure that the create and patch behaviors are idempotent.\n\t\tif patchV == nil {\n\t\t\tdelete(original, k)\n\t\t\tif mergeOptions.IgnoreUnmatchedNulls {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\t_, ok := original[k]\n\t\tif !ok {\n\t\t\tif !isDeleteList {\n\t\t\t\t// If it's not in the original document, just take the patch value.\n\t\t\t\tif mergeOptions.IgnoreUnmatchedNulls {\n\t\t\t\t\tdiscardNullValuesFromPatch(patchV)\n\t\t\t\t}\n\t\t\t\toriginal[k], ok = removeDirectives(patchV)\n\t\t\t\tif !ok {\n\t\t\t\t\tdelete(original, k)\n\t\t\t\t}\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\toriginalType := reflect.TypeOf(original[k])\n\t\tpatchType := reflect.TypeOf(patchV)\n\t\tif originalType != patchType {\n\t\t\tif !isDeleteList {\n\t\t\t\tif mergeOptions.IgnoreUnmatchedNulls {\n\t\t\t\t\tdiscardNullValuesFromPatch(patchV)\n\t\t\t\t}\n\t\t\t\toriginal[k], ok = removeDirectives(patchV)\n\t\t\t\tif !ok {\n\t\t\t\t\tdelete(original, k)\n\t\t\t\t}\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\t// If they're both maps or lists, recurse into the value.\n\t\tswitch originalType.Kind() {\n\t\tcase reflect.Map:\n\t\t\tsubschema, patchMeta, err2 := schema.LookupPatchMetadataForStruct(k)\n\t\t\tif err2 != nil {\n\t\t\t\treturn nil, err2\n\t\t\t}\n\t\t\t_, patchStrategy, err2 := extractRetainKeysPatchStrategy(patchMeta.GetPatchStrategies())\n\t\t\tif err2 != nil {\n\t\t\t\treturn nil, err2\n\t\t\t}\n\t\t\toriginal[k], err = mergeMapHandler(original[k], patchV, subschema, patchStrategy, mergeOptions)\n\t\tcase reflect.Slice:\n\t\t\tsubschema, patchMeta, err2 := schema.LookupPatchMetadataForSlice(k)\n\t\t\tif err2 != nil {\n\t\t\t\treturn nil, err2\n\t\t\t}\n\t\t\t_, patchStrategy, err2 := extractRetainKeysPatchStrategy(patchMeta.GetPatchStrategies())\n\t\t\tif err2 != nil {\n\t\t\t\treturn nil, err2\n\t\t\t}\n\t\t\toriginal[k], err = mergeSliceHandler(original[k], patchV, subschema, patchStrategy, patchMeta.GetPatchMergeKey(), isDeleteList, mergeOptions)\n\t\tdefault:\n\t\t\toriginal[k], ok = removeDirectives(patchV)\n\t\t\tif !ok {\n\t\t\t\t// if patchV itself is a directive, then don't keep it\n\t\t\t\tdelete(original, k)\n\t\t\t}\n\t\t}\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn original, nil\n}\n\n// discardNullValuesFromPatch discards all null property values from patch.\n// It traverses all slices and map types.\nfunc discardNullValuesFromPatch(patchV interface{}) {\n\tswitch patchV := patchV.(type) {\n\tcase map[string]interface{}:\n\t\tfor k, v := range patchV {\n\t\t\tif v == nil {\n\t\t\t\tdelete(patchV, k)\n\t\t\t} else {\n\t\t\t\tdiscardNullValuesFromPatch(v)\n\t\t\t}\n\t\t}\n\tcase []interface{}:\n\t\tfor _, v := range patchV {\n\t\t\tdiscardNullValuesFromPatch(v)\n\t\t}\n\t}\n}\n\n// mergeMapHandler handles how to merge `patchV` whose key is `key` with `original` respecting\n// fieldPatchStrategy and mergeOptions.\nfunc mergeMapHandler(original, patch interface{}, schema LookupPatchMeta,\n\tfieldPatchStrategy string, mergeOptions MergeOptions) (map[string]interface{}, error) {\n\ttypedOriginal, typedPatch, err := mapTypeAssertion(original, patch)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif fieldPatchStrategy != replaceDirective {\n\t\treturn mergeMap(typedOriginal, typedPatch, schema, mergeOptions)\n\t} else {\n\t\treturn typedPatch, nil\n\t}\n}\n\n// mergeSliceHandler handles how to merge `patchV` whose key is `key` with `original` respecting\n// fieldPatchStrategy, fieldPatchMergeKey, isDeleteList and mergeOptions.\nfunc mergeSliceHandler(original, patch interface{}, schema LookupPatchMeta,\n\tfieldPatchStrategy, fieldPatchMergeKey string, isDeleteList bool, mergeOptions MergeOptions) ([]interface{}, error) {\n\ttypedOriginal, typedPatch, err := sliceTypeAssertion(original, patch)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Delete lists are handled the same way regardless of what the field's patch strategy is\n\tif fieldPatchStrategy == mergeDirective || isDeleteList {\n\t\treturn mergeSlice(typedOriginal, typedPatch, schema, fieldPatchMergeKey, mergeOptions, isDeleteList)\n\t} else {\n\t\treturn typedPatch, nil\n\t}\n}\n\n// Merge two slices together. Note: This may modify both the original slice and\n// the patch because getting a deep copy of a slice in golang is highly\n// non-trivial.\nfunc mergeSlice(original, patch []interface{}, schema LookupPatchMeta, mergeKey string, mergeOptions MergeOptions, isDeleteList bool) ([]interface{}, error) {\n\tif len(original) == 0 && len(patch) == 0 {\n\t\treturn original, nil\n\t}\n\n\t// All the values must be of the same type, but not a list.\n\tt, err := sliceElementType(original, patch)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar merged []interface{}\n\tkind := t.Kind()\n\t// If the elements are not maps, merge the slices of scalars.\n\tif kind != reflect.Map {\n\t\tif mergeOptions.MergeParallelList && isDeleteList {\n\t\t\treturn deleteFromSlice(original, patch), nil\n\t\t}\n\t\t// Maybe in the future add a \"concat\" mode that doesn't\n\t\t// deduplicate.\n\t\tboth := append(original, patch...)\n\t\tmerged = deduplicateScalars(both)\n\n\t} else {\n\t\tif mergeKey == \"\" {\n\t\t\treturn nil, fmt.Errorf(\"cannot merge lists without merge key for %s\", schema.Name())\n\t\t}\n\n\t\toriginal, patch, err = mergeSliceWithSpecialElements(original, patch, mergeKey)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tmerged, err = mergeSliceWithoutSpecialElements(original, patch, mergeKey, schema, mergeOptions)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\t// enforce the order\n\tvar patchItems, serverOnlyItems []interface{}\n\tif len(mergeKey) == 0 {\n\t\tpatchItems, serverOnlyItems = partitionPrimitivesByPresentInList(merged, patch)\n\t} else {\n\t\tpatchItems, serverOnlyItems, err = partitionMapsByPresentInList(merged, patch, mergeKey)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn normalizeElementOrder(patchItems, serverOnlyItems, patch, original, mergeKey, kind)\n}\n\n// mergeSliceWithSpecialElements handles special elements with directiveMarker\n// before merging the slices. It returns a updated `original` and a patch without special elements.\n// original and patch must be slices of maps, they should be checked before calling this function.\nfunc mergeSliceWithSpecialElements(original, patch []interface{}, mergeKey string) ([]interface{}, []interface{}, error) {\n\tpatchWithoutSpecialElements := []interface{}{}\n\treplace := false\n\tfor _, v := range patch {\n\t\ttypedV := v.(map[string]interface{})\n\t\tpatchType, ok := typedV[directiveMarker]\n\t\tif !ok {\n\t\t\tpatchWithoutSpecialElements = append(patchWithoutSpecialElements, v)\n\t\t} else {\n\t\t\tswitch patchType {\n\t\t\tcase deleteDirective:\n\t\t\t\tmergeValue, ok := typedV[mergeKey]\n\t\t\t\tif ok {\n\t\t\t\t\tvar err error\n\t\t\t\t\toriginal, err = deleteMatchingEntries(original, mergeKey, mergeValue)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn nil, nil, err\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\treturn nil, nil, mergepatch.ErrNoMergeKey(typedV, mergeKey)\n\t\t\t\t}\n\t\t\tcase replaceDirective:\n\t\t\t\treplace = true\n\t\t\t\t// Continue iterating through the array to prune any other $patch elements.\n\t\t\tcase mergeDirective:\n\t\t\t\treturn nil, nil, fmt.Errorf(\"merging lists cannot yet be specified in the patch\")\n\t\t\tdefault:\n\t\t\t\treturn nil, nil, mergepatch.ErrBadPatchType(patchType, typedV)\n\t\t\t}\n\t\t}\n\t}\n\tif replace {\n\t\treturn patchWithoutSpecialElements, nil, nil\n\t}\n\treturn original, patchWithoutSpecialElements, nil\n}\n\n// delete all matching entries (based on merge key) from a merging list\nfunc deleteMatchingEntries(original []interface{}, mergeKey string, mergeValue interface{}) ([]interface{}, error) {\n\tfor {\n\t\t_, originalKey, found, err := findMapInSliceBasedOnKeyValue(original, mergeKey, mergeValue)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif !found {\n\t\t\tbreak\n\t\t}\n\t\t// Delete the element at originalKey.\n\t\toriginal = append(original[:originalKey], original[originalKey+1:]...)\n\t}\n\treturn original, nil\n}\n\n// mergeSliceWithoutSpecialElements merges slices with non-special elements.\n// original and patch must be slices of maps, they should be checked before calling this function.\nfunc mergeSliceWithoutSpecialElements(original, patch []interface{}, mergeKey string, schema LookupPatchMeta, mergeOptions MergeOptions) ([]interface{}, error) {\n\tfor _, v := range patch {\n\t\ttypedV := v.(map[string]interface{})\n\t\tmergeValue, ok := typedV[mergeKey]\n\t\tif !ok {\n\t\t\treturn nil, mergepatch.ErrNoMergeKey(typedV, mergeKey)\n\t\t}\n\n\t\t// If we find a value with this merge key value in original, merge the\n\t\t// maps. Otherwise append onto original.\n\t\toriginalMap, originalKey, found, err := findMapInSliceBasedOnKeyValue(original, mergeKey, mergeValue)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif found {\n\t\t\tvar mergedMaps interface{}\n\t\t\tvar err error\n\t\t\t// Merge into original.\n\t\t\tmergedMaps, err = mergeMap(originalMap, typedV, schema, mergeOptions)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\toriginal[originalKey] = mergedMaps\n\t\t} else {\n\t\t\toriginal = append(original, v)\n\t\t}\n\t}\n\treturn original, nil\n}\n\n// deleteFromSlice uses the parallel list to delete the items in a list of scalars\nfunc deleteFromSlice(current, toDelete []interface{}) []interface{} {\n\ttoDeleteMap := map[interface{}]interface{}{}\n\tprocessed := make([]interface{}, 0, len(current))\n\tfor _, v := range toDelete {\n\t\ttoDeleteMap[v] = true\n\t}\n\tfor _, v := range current {\n\t\tif _, found := toDeleteMap[v]; !found {\n\t\t\tprocessed = append(processed, v)\n\t\t}\n\t}\n\treturn processed\n}\n\n// This method no longer panics if any element of the slice is not a map.\nfunc findMapInSliceBasedOnKeyValue(m []interface{}, key string, value interface{}) (map[string]interface{}, int, bool, error) {\n\tfor k, v := range m {\n\t\ttypedV, ok := v.(map[string]interface{})\n\t\tif !ok {\n\t\t\treturn nil, 0, false, fmt.Errorf(\"value for key %v is not a map\", k)\n\t\t}\n\n\t\tvalueToMatch, ok := typedV[key]\n\t\tif ok && valueToMatch == value {\n\t\t\treturn typedV, k, true, nil\n\t\t}\n\t}\n\n\treturn nil, 0, false, nil\n}\n\n// This function takes a JSON map and sorts all the lists that should be merged\n// by key. This is needed by tests because in JSON, list order is significant,\n// but in Strategic Merge Patch, merge lists do not have significant order.\n// Sorting the lists allows for order-insensitive comparison of patched maps.\nfunc sortMergeListsByName(mapJSON []byte, schema LookupPatchMeta) ([]byte, error) {\n\tvar m map[string]interface{}\n\terr := json.Unmarshal(mapJSON, &m)\n\tif err != nil {\n\t\treturn nil, mergepatch.ErrBadJSONDoc\n\t}\n\n\tnewM, err := sortMergeListsByNameMap(m, schema)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn json.Marshal(newM)\n}\n\n// Function sortMergeListsByNameMap recursively sorts the merge lists by its mergeKey in a map.\nfunc sortMergeListsByNameMap(s map[string]interface{}, schema LookupPatchMeta) (map[string]interface{}, error) {\n\tnewS := map[string]interface{}{}\n\tfor k, v := range s {\n\t\tif k == retainKeysDirective {\n\t\t\ttypedV, ok := v.([]interface{})\n\t\t\tif !ok {\n\t\t\t\treturn nil, mergepatch.ErrBadPatchFormatForRetainKeys\n\t\t\t}\n\t\t\tv = sortScalars(typedV)\n\t\t} else if strings.HasPrefix(k, deleteFromPrimitiveListDirectivePrefix) {\n\t\t\ttypedV, ok := v.([]interface{})\n\t\t\tif !ok {\n\t\t\t\treturn nil, mergepatch.ErrBadPatchFormatForPrimitiveList\n\t\t\t}\n\t\t\tv = sortScalars(typedV)\n\t\t} else if strings.HasPrefix(k, setElementOrderDirectivePrefix) {\n\t\t\t_, ok := v.([]interface{})\n\t\t\tif !ok {\n\t\t\t\treturn nil, mergepatch.ErrBadPatchFormatForSetElementOrderList\n\t\t\t}\n\t\t} else if k != directiveMarker {\n\t\t\t// recurse for map and slice.\n\t\t\tswitch typedV := v.(type) {\n\t\t\tcase map[string]interface{}:\n\t\t\t\tsubschema, _, err := schema.LookupPatchMetadataForStruct(k)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tv, err = sortMergeListsByNameMap(typedV, subschema)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\tcase []interface{}:\n\t\t\t\tsubschema, patchMeta, err := schema.LookupPatchMetadataForSlice(k)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\t_, patchStrategy, err := extractRetainKeysPatchStrategy(patchMeta.GetPatchStrategies())\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tif patchStrategy == mergeDirective {\n\t\t\t\t\tvar err error\n\t\t\t\t\tv, err = sortMergeListsByNameArray(typedV, subschema, patchMeta.GetPatchMergeKey(), true)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn nil, err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tnewS[k] = v\n\t}\n\n\treturn newS, nil\n}\n\n// Function sortMergeListsByNameMap recursively sorts the merge lists by its mergeKey in an array.\nfunc sortMergeListsByNameArray(s []interface{}, schema LookupPatchMeta, mergeKey string, recurse bool) ([]interface{}, error) {\n\tif len(s) == 0 {\n\t\treturn s, nil\n\t}\n\n\t// We don't support lists of lists yet.\n\tt, err := sliceElementType(s)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// If the elements are not maps...\n\tif t.Kind() != reflect.Map {\n\t\t// Sort the elements, because they may have been merged out of order.\n\t\treturn deduplicateAndSortScalars(s), nil\n\t}\n\n\t// Elements are maps - if one of the keys of the map is a map or a\n\t// list, we may need to recurse into it.\n\tnewS := []interface{}{}\n\tfor _, elem := range s {\n\t\tif recurse {\n\t\t\ttypedElem := elem.(map[string]interface{})\n\t\t\tnewElem, err := sortMergeListsByNameMap(typedElem, schema)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\n\t\t\tnewS = append(newS, newElem)\n\t\t} else {\n\t\t\tnewS = append(newS, elem)\n\t\t}\n\t}\n\n\t// Sort the maps.\n\tnewS = sortMapsBasedOnField(newS, mergeKey)\n\treturn newS, nil\n}\n\nfunc sortMapsBasedOnField(m []interface{}, fieldName string) []interface{} {\n\tmapM := mapSliceFromSlice(m)\n\tss := SortableSliceOfMaps{mapM, fieldName}\n\tsort.Sort(ss)\n\tnewS := sliceFromMapSlice(ss.s)\n\treturn newS\n}\n\nfunc mapSliceFromSlice(m []interface{}) []map[string]interface{} {\n\tnewM := []map[string]interface{}{}\n\tfor _, v := range m {\n\t\tvt := v.(map[string]interface{})\n\t\tnewM = append(newM, vt)\n\t}\n\n\treturn newM\n}\n\nfunc sliceFromMapSlice(s []map[string]interface{}) []interface{} {\n\tnewS := []interface{}{}\n\tfor _, v := range s {\n\t\tnewS = append(newS, v)\n\t}\n\n\treturn newS\n}\n\ntype SortableSliceOfMaps struct {\n\ts []map[string]interface{}\n\tk string // key to sort on\n}\n\nfunc (ss SortableSliceOfMaps) Len() int {\n\treturn len(ss.s)\n}\n\nfunc (ss SortableSliceOfMaps) Less(i, j int) bool {\n\tiStr := fmt.Sprintf(\"%v\", ss.s[i][ss.k])\n\tjStr := fmt.Sprintf(\"%v\", ss.s[j][ss.k])\n\treturn sort.StringsAreSorted([]string{iStr, jStr})\n}\n\nfunc (ss SortableSliceOfMaps) Swap(i, j int) {\n\ttmp := ss.s[i]\n\tss.s[i] = ss.s[j]\n\tss.s[j] = tmp\n}\n\nfunc deduplicateAndSortScalars(s []interface{}) []interface{} {\n\ts = deduplicateScalars(s)\n\treturn sortScalars(s)\n}\n\nfunc sortScalars(s []interface{}) []interface{} {\n\tss := SortableSliceOfScalars{s}\n\tsort.Sort(ss)\n\treturn ss.s\n}\n\nfunc deduplicateScalars(s []interface{}) []interface{} {\n\t// Clever algorithm to deduplicate.\n\tlength := len(s) - 1\n\tfor i := 0; i < length; i++ {\n\t\tfor j := i + 1; j <= length; j++ {\n\t\t\tif s[i] == s[j] {\n\t\t\t\ts[j] = s[length]\n\t\t\t\ts = s[0:length]\n\t\t\t\tlength--\n\t\t\t\tj--\n\t\t\t}\n\t\t}\n\t}\n\n\treturn s\n}\n\ntype SortableSliceOfScalars struct {\n\ts []interface{}\n}\n\nfunc (ss SortableSliceOfScalars) Len() int {\n\treturn len(ss.s)\n}\n\nfunc (ss SortableSliceOfScalars) Less(i, j int) bool {\n\tiStr := fmt.Sprintf(\"%v\", ss.s[i])\n\tjStr := fmt.Sprintf(\"%v\", ss.s[j])\n\treturn sort.StringsAreSorted([]string{iStr, jStr})\n}\n\nfunc (ss SortableSliceOfScalars) Swap(i, j int) {\n\ttmp := ss.s[i]\n\tss.s[i] = ss.s[j]\n\tss.s[j] = tmp\n}\n\n// Returns the type of the elements of N slice(s). If the type is different,\n// another slice or undefined, returns an error.\nfunc sliceElementType(slices ...[]interface{}) (reflect.Type, error) {\n\tvar prevType reflect.Type\n\tfor _, s := range slices {\n\t\t// Go through elements of all given slices and make sure they are all the same type.\n\t\tfor _, v := range s {\n\t\t\tcurrentType := reflect.TypeOf(v)\n\t\t\tif prevType == nil {\n\t\t\t\tprevType = currentType\n\t\t\t\t// We don't support lists of lists yet.\n\t\t\t\tif prevType.Kind() == reflect.Slice {\n\t\t\t\t\treturn nil, mergepatch.ErrNoListOfLists\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif prevType != currentType {\n\t\t\t\t\treturn nil, fmt.Errorf(\"list element types are not identical: %v\", fmt.Sprint(slices))\n\t\t\t\t}\n\t\t\t\tprevType = currentType\n\t\t\t}\n\t\t}\n\t}\n\n\tif prevType == nil {\n\t\treturn nil, fmt.Errorf(\"no elements in any of the given slices\")\n\t}\n\n\treturn prevType, nil\n}\n\n// MergingMapsHaveConflicts returns true if the left and right JSON interface\n// objects overlap with different values in any key. All keys are required to be\n// strings. Since patches of the same Type have congruent keys, this is valid\n// for multiple patch types. This method supports strategic merge patch semantics.\nfunc MergingMapsHaveConflicts(left, right map[string]interface{}, schema LookupPatchMeta) (bool, error) {\n\treturn mergingMapFieldsHaveConflicts(left, right, schema, \"\", \"\")\n}\n\nfunc mergingMapFieldsHaveConflicts(\n\tleft, right interface{},\n\tschema LookupPatchMeta,\n\tfieldPatchStrategy, fieldPatchMergeKey string,\n) (bool, error) {\n\tswitch leftType := left.(type) {\n\tcase map[string]interface{}:\n\t\trightType, ok := right.(map[string]interface{})\n\t\tif !ok {\n\t\t\treturn true, nil\n\t\t}\n\t\tleftMarker, okLeft := leftType[directiveMarker]\n\t\trightMarker, okRight := rightType[directiveMarker]\n\t\t// if one or the other has a directive marker,\n\t\t// then we need to consider that before looking at the individual keys,\n\t\t// since a directive operates on the whole map.\n\t\tif okLeft || okRight {\n\t\t\t// if one has a directive marker and the other doesn't,\n\t\t\t// then we have a conflict, since one is deleting or replacing the whole map,\n\t\t\t// and the other is doing things to individual keys.\n\t\t\tif okLeft != okRight {\n\t\t\t\treturn true, nil\n\t\t\t}\n\t\t\t// if they both have markers, but they are not the same directive,\n\t\t\t// then we have a conflict because they're doing different things to the map.\n\t\t\tif leftMarker != rightMarker {\n\t\t\t\treturn true, nil\n\t\t\t}\n\t\t}\n\t\tif fieldPatchStrategy == replaceDirective {\n\t\t\treturn false, nil\n\t\t}\n\t\t// Check the individual keys.\n\t\treturn mapsHaveConflicts(leftType, rightType, schema)\n\n\tcase []interface{}:\n\t\trightType, ok := right.([]interface{})\n\t\tif !ok {\n\t\t\treturn true, nil\n\t\t}\n\t\treturn slicesHaveConflicts(leftType, rightType, schema, fieldPatchStrategy, fieldPatchMergeKey)\n\tcase string, float64, bool, int64, nil:\n\t\treturn !reflect.DeepEqual(left, right), nil\n\tdefault:\n\t\treturn true, fmt.Errorf(\"unknown type: %v\", reflect.TypeOf(left))\n\t}\n}\n\nfunc mapsHaveConflicts(typedLeft, typedRight map[string]interface{}, schema LookupPatchMeta) (bool, error) {\n\tfor key, leftValue := range typedLeft {\n\t\tif key != directiveMarker && key != retainKeysDirective {\n\t\t\tif rightValue, ok := typedRight[key]; ok {\n\t\t\t\tvar subschema LookupPatchMeta\n\t\t\t\tvar patchMeta PatchMeta\n\t\t\t\tvar patchStrategy string\n\t\t\t\tvar err error\n\t\t\t\tswitch leftValue.(type) {\n\t\t\t\tcase []interface{}:\n\t\t\t\t\tsubschema, patchMeta, err = schema.LookupPatchMetadataForSlice(key)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn true, err\n\t\t\t\t\t}\n\t\t\t\t\t_, patchStrategy, err = extractRetainKeysPatchStrategy(patchMeta.patchStrategies)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn true, err\n\t\t\t\t\t}\n\t\t\t\tcase map[string]interface{}:\n\t\t\t\t\tsubschema, patchMeta, err = schema.LookupPatchMetadataForStruct(key)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn true, err\n\t\t\t\t\t}\n\t\t\t\t\t_, patchStrategy, err = extractRetainKeysPatchStrategy(patchMeta.patchStrategies)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn true, err\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif hasConflicts, err := mergingMapFieldsHaveConflicts(leftValue, rightValue,\n\t\t\t\t\tsubschema, patchStrategy, patchMeta.GetPatchMergeKey()); hasConflicts {\n\t\t\t\t\treturn true, err\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn false, nil\n}\n\nfunc slicesHaveConflicts(\n\ttypedLeft, typedRight []interface{},\n\tschema LookupPatchMeta,\n\tfieldPatchStrategy, fieldPatchMergeKey string,\n) (bool, error) {\n\telementType, err := sliceElementType(typedLeft, typedRight)\n\tif err != nil {\n\t\treturn true, err\n\t}\n\n\tif fieldPatchStrategy == mergeDirective {\n\t\t// Merging lists of scalars have no conflicts by definition\n\t\t// So we only need to check further if the elements are maps\n\t\tif elementType.Kind() != reflect.Map {\n\t\t\treturn false, nil\n\t\t}\n\n\t\t// Build a map for each slice and then compare the two maps\n\t\tleftMap, err := sliceOfMapsToMapOfMaps(typedLeft, fieldPatchMergeKey)\n\t\tif err != nil {\n\t\t\treturn true, err\n\t\t}\n\n\t\trightMap, err := sliceOfMapsToMapOfMaps(typedRight, fieldPatchMergeKey)\n\t\tif err != nil {\n\t\t\treturn true, err\n\t\t}\n\n\t\treturn mapsOfMapsHaveConflicts(leftMap, rightMap, schema)\n\t}\n\n\t// Either we don't have type information, or these are non-merging lists\n\tif len(typedLeft) != len(typedRight) {\n\t\treturn true, nil\n\t}\n\n\t// Sort scalar slices to prevent ordering issues\n\t// We have no way to sort non-merging lists of maps\n\tif elementType.Kind() != reflect.Map {\n\t\ttypedLeft = deduplicateAndSortScalars(typedLeft)\n\t\ttypedRight = deduplicateAndSortScalars(typedRight)\n\t}\n\n\t// Compare the slices element by element in order\n\t// This test will fail if the slices are not sorted\n\tfor i := range typedLeft {\n\t\tif hasConflicts, err := mergingMapFieldsHaveConflicts(typedLeft[i], typedRight[i], schema, \"\", \"\"); hasConflicts {\n\t\t\treturn true, err\n\t\t}\n\t}\n\n\treturn false, nil\n}\n\nfunc sliceOfMapsToMapOfMaps(slice []interface{}, mergeKey string) (map[string]interface{}, error) {\n\tresult := make(map[string]interface{}, len(slice))\n\tfor _, value := range slice {\n\t\ttypedValue, ok := value.(map[string]interface{})\n\t\tif !ok {\n\t\t\treturn nil, fmt.Errorf(\"invalid element type in merging list:%v\", slice)\n\t\t}\n\n\t\tmergeValue, ok := typedValue[mergeKey]\n\t\tif !ok {\n\t\t\treturn nil, fmt.Errorf(\"cannot find merge key `%s` in merging list element:%v\", mergeKey, typedValue)\n\t\t}\n\n\t\tresult[fmt.Sprintf(\"%s\", mergeValue)] = typedValue\n\t}\n\n\treturn result, nil\n}\n\nfunc mapsOfMapsHaveConflicts(typedLeft, typedRight map[string]interface{}, schema LookupPatchMeta) (bool, error) {\n\tfor key, leftValue := range typedLeft {\n\t\tif rightValue, ok := typedRight[key]; ok {\n\t\t\tif hasConflicts, err := mergingMapFieldsHaveConflicts(leftValue, rightValue, schema, \"\", \"\"); hasConflicts {\n\t\t\t\treturn true, err\n\t\t\t}\n\t\t}\n\t}\n\n\treturn false, nil\n}\n\n// CreateThreeWayMergePatch reconciles a modified configuration with an original configuration,\n// while preserving any changes or deletions made to the original configuration in the interim,\n// and not overridden by the current configuration. All three documents must be passed to the\n// method as json encoded content. It will return a strategic merge patch, or an error if any\n// of the documents is invalid, or if there are any preconditions that fail against the modified\n// configuration, or, if overwrite is false and there are conflicts between the modified and current\n// configurations. Conflicts are defined as keys changed differently from original to modified\n// than from original to current. In other words, a conflict occurs if modified changes any key\n// in a way that is different from how it is changed in current (e.g., deleting it, changing its\n// value). We also propagate values fields that do not exist in original but are explicitly\n// defined in modified.\nfunc CreateThreeWayMergePatch(original, modified, current []byte, schema LookupPatchMeta, overwrite bool, fns ...mergepatch.PreconditionFunc) ([]byte, error) {\n\toriginalMap := map[string]interface{}{}\n\tif len(original) > 0 {\n\t\tif err := json.Unmarshal(original, &originalMap); err != nil {\n\t\t\treturn nil, mergepatch.ErrBadJSONDoc\n\t\t}\n\t}\n\n\tmodifiedMap := map[string]interface{}{}\n\tif len(modified) > 0 {\n\t\tif err := json.Unmarshal(modified, &modifiedMap); err != nil {\n\t\t\treturn nil, mergepatch.ErrBadJSONDoc\n\t\t}\n\t}\n\n\tcurrentMap := map[string]interface{}{}\n\tif len(current) > 0 {\n\t\tif err := json.Unmarshal(current, &currentMap); err != nil {\n\t\t\treturn nil, mergepatch.ErrBadJSONDoc\n\t\t}\n\t}\n\n\t// The patch is the difference from current to modified without deletions, plus deletions\n\t// from original to modified. To find it, we compute deletions, which are the deletions from\n\t// original to modified, and delta, which is the difference from current to modified without\n\t// deletions, and then apply delta to deletions as a patch, which should be strictly additive.\n\tdeltaMapDiffOptions := DiffOptions{\n\t\tIgnoreDeletions: true,\n\t\tSetElementOrder: true,\n\t}\n\tdeltaMap, err := diffMaps(currentMap, modifiedMap, schema, deltaMapDiffOptions)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdeletionsMapDiffOptions := DiffOptions{\n\t\tSetElementOrder:           true,\n\t\tIgnoreChangesAndAdditions: true,\n\t}\n\tdeletionsMap, err := diffMaps(originalMap, modifiedMap, schema, deletionsMapDiffOptions)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tmergeOptions := MergeOptions{}\n\tpatchMap, err := mergeMap(deletionsMap, deltaMap, schema, mergeOptions)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Apply the preconditions to the patch, and return an error if any of them fail.\n\tfor _, fn := range fns {\n\t\tif !fn(patchMap) {\n\t\t\treturn nil, mergepatch.NewErrPreconditionFailed(patchMap)\n\t\t}\n\t}\n\n\t// If overwrite is false, and the patch contains any keys that were changed differently,\n\t// then return a conflict error.\n\tif !overwrite {\n\t\tchangeMapDiffOptions := DiffOptions{}\n\t\tchangedMap, err := diffMaps(originalMap, currentMap, schema, changeMapDiffOptions)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\thasConflicts, err := MergingMapsHaveConflicts(patchMap, changedMap, schema)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif hasConflicts {\n\t\t\treturn nil, mergepatch.NewErrConflict(mergepatch.ToYAMLOrError(patchMap), mergepatch.ToYAMLOrError(changedMap))\n\t\t}\n\t}\n\n\treturn json.Marshal(patchMap)\n}\n\nfunc ItemAddedToModifiedSlice(original, modified string) bool { return original > modified }\n\nfunc ItemRemovedFromModifiedSlice(original, modified string) bool { return original < modified }\n\nfunc ItemMatchesOriginalAndModifiedSlice(original, modified string) bool { return original == modified }\n\nfunc CreateDeleteDirective(mergeKey string, mergeKeyValue interface{}) map[string]interface{} {\n\treturn map[string]interface{}{mergeKey: mergeKeyValue, directiveMarker: deleteDirective}\n}\n\nfunc mapTypeAssertion(original, patch interface{}) (map[string]interface{}, map[string]interface{}, error) {\n\ttypedOriginal, ok := original.(map[string]interface{})\n\tif !ok {\n\t\treturn nil, nil, mergepatch.ErrBadArgType(typedOriginal, original)\n\t}\n\ttypedPatch, ok := patch.(map[string]interface{})\n\tif !ok {\n\t\treturn nil, nil, mergepatch.ErrBadArgType(typedPatch, patch)\n\t}\n\treturn typedOriginal, typedPatch, nil\n}\n\nfunc sliceTypeAssertion(original, patch interface{}) ([]interface{}, []interface{}, error) {\n\ttypedOriginal, ok := original.([]interface{})\n\tif !ok {\n\t\treturn nil, nil, mergepatch.ErrBadArgType(typedOriginal, original)\n\t}\n\ttypedPatch, ok := patch.([]interface{})\n\tif !ok {\n\t\treturn nil, nil, mergepatch.ErrBadArgType(typedPatch, patch)\n\t}\n\treturn typedOriginal, typedPatch, nil\n}\n\n// extractRetainKeysPatchStrategy process patch strategy, which is a string may contains multiple\n// patch strategies separated by \",\". It returns a boolean var indicating if it has\n// retainKeys strategies and a string for the other strategy.\nfunc extractRetainKeysPatchStrategy(strategies []string) (bool, string, error) {\n\tswitch len(strategies) {\n\tcase 0:\n\t\treturn false, \"\", nil\n\tcase 1:\n\t\tsingleStrategy := strategies[0]\n\t\tswitch singleStrategy {\n\t\tcase retainKeysStrategy:\n\t\t\treturn true, \"\", nil\n\t\tdefault:\n\t\t\treturn false, singleStrategy, nil\n\t\t}\n\tcase 2:\n\t\tswitch {\n\t\tcase strategies[0] == retainKeysStrategy:\n\t\t\treturn true, strategies[1], nil\n\t\tcase strategies[1] == retainKeysStrategy:\n\t\t\treturn true, strategies[0], nil\n\t\tdefault:\n\t\t\treturn false, \"\", fmt.Errorf(\"unexpected patch strategy: %v\", strategies)\n\t\t}\n\tdefault:\n\t\treturn false, \"\", fmt.Errorf(\"unexpected patch strategy: %v\", strategies)\n\t}\n}\n\n// hasAdditionalNewField returns if original map has additional key with non-nil value than modified.\nfunc hasAdditionalNewField(original, modified map[string]interface{}) bool {\n\tfor k, v := range original {\n\t\tif v == nil {\n\t\t\tcontinue\n\t\t}\n\t\tif _, found := modified[k]; !found {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/strategicpatch/types.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage strategicpatch\n\nimport (\n\t\"errors\"\n\t\"strings\"\n\n\t\"k8s.io/apimachinery/pkg/util/mergepatch\"\n\topenapi \"k8s.io/kube-openapi/pkg/util/proto\"\n)\n\nconst (\n\tpatchStrategyOpenapiextensionKey = \"x-kubernetes-patch-strategy\"\n\tpatchMergeKeyOpenapiextensionKey = \"x-kubernetes-patch-merge-key\"\n)\n\ntype LookupPatchItem interface {\n\topenapi.SchemaVisitor\n\n\tError() error\n\tPath() *openapi.Path\n}\n\ntype kindItem struct {\n\tkey          string\n\tpath         *openapi.Path\n\terr          error\n\tpatchmeta    PatchMeta\n\tsubschema    openapi.Schema\n\thasVisitKind bool\n}\n\nfunc NewKindItem(key string, path *openapi.Path) *kindItem {\n\treturn &kindItem{\n\t\tkey:  key,\n\t\tpath: path,\n\t}\n}\n\nvar _ LookupPatchItem = &kindItem{}\n\nfunc (item *kindItem) Error() error {\n\treturn item.err\n}\n\nfunc (item *kindItem) Path() *openapi.Path {\n\treturn item.path\n}\n\nfunc (item *kindItem) VisitPrimitive(schema *openapi.Primitive) {\n\titem.err = errors.New(\"expected kind, but got primitive\")\n}\n\nfunc (item *kindItem) VisitArray(schema *openapi.Array) {\n\titem.err = errors.New(\"expected kind, but got slice\")\n}\n\nfunc (item *kindItem) VisitMap(schema *openapi.Map) {\n\titem.err = errors.New(\"expected kind, but got map\")\n}\n\nfunc (item *kindItem) VisitReference(schema openapi.Reference) {\n\tif !item.hasVisitKind {\n\t\tschema.SubSchema().Accept(item)\n\t}\n}\n\nfunc (item *kindItem) VisitKind(schema *openapi.Kind) {\n\tsubschema, ok := schema.Fields[item.key]\n\tif !ok {\n\t\titem.err = FieldNotFoundError{Path: schema.GetPath().String(), Field: item.key}\n\t\treturn\n\t}\n\n\tmergeKey, patchStrategies, err := parsePatchMetadata(subschema.GetExtensions())\n\tif err != nil {\n\t\titem.err = err\n\t\treturn\n\t}\n\titem.patchmeta = PatchMeta{\n\t\tpatchStrategies: patchStrategies,\n\t\tpatchMergeKey:   mergeKey,\n\t}\n\titem.subschema = subschema\n}\n\ntype sliceItem struct {\n\tkey          string\n\tpath         *openapi.Path\n\terr          error\n\tpatchmeta    PatchMeta\n\tsubschema    openapi.Schema\n\thasVisitKind bool\n}\n\nfunc NewSliceItem(key string, path *openapi.Path) *sliceItem {\n\treturn &sliceItem{\n\t\tkey:  key,\n\t\tpath: path,\n\t}\n}\n\nvar _ LookupPatchItem = &sliceItem{}\n\nfunc (item *sliceItem) Error() error {\n\treturn item.err\n}\n\nfunc (item *sliceItem) Path() *openapi.Path {\n\treturn item.path\n}\n\nfunc (item *sliceItem) VisitPrimitive(schema *openapi.Primitive) {\n\titem.err = errors.New(\"expected slice, but got primitive\")\n}\n\nfunc (item *sliceItem) VisitArray(schema *openapi.Array) {\n\tif !item.hasVisitKind {\n\t\titem.err = errors.New(\"expected visit kind first, then visit array\")\n\t}\n\tsubschema := schema.SubType\n\titem.subschema = subschema\n}\n\nfunc (item *sliceItem) VisitMap(schema *openapi.Map) {\n\titem.err = errors.New(\"expected slice, but got map\")\n}\n\nfunc (item *sliceItem) VisitReference(schema openapi.Reference) {\n\tif !item.hasVisitKind {\n\t\tschema.SubSchema().Accept(item)\n\t} else {\n\t\titem.subschema = schema.SubSchema()\n\t}\n}\n\nfunc (item *sliceItem) VisitKind(schema *openapi.Kind) {\n\tsubschema, ok := schema.Fields[item.key]\n\tif !ok {\n\t\titem.err = FieldNotFoundError{Path: schema.GetPath().String(), Field: item.key}\n\t\treturn\n\t}\n\n\tmergeKey, patchStrategies, err := parsePatchMetadata(subschema.GetExtensions())\n\tif err != nil {\n\t\titem.err = err\n\t\treturn\n\t}\n\titem.patchmeta = PatchMeta{\n\t\tpatchStrategies: patchStrategies,\n\t\tpatchMergeKey:   mergeKey,\n\t}\n\titem.hasVisitKind = true\n\tsubschema.Accept(item)\n}\n\nfunc parsePatchMetadata(extensions map[string]interface{}) (string, []string, error) {\n\tps, foundPS := extensions[patchStrategyOpenapiextensionKey]\n\tvar patchStrategies []string\n\tvar mergeKey, patchStrategy string\n\tvar ok bool\n\tif foundPS {\n\t\tpatchStrategy, ok = ps.(string)\n\t\tif ok {\n\t\t\tpatchStrategies = strings.Split(patchStrategy, \",\")\n\t\t} else {\n\t\t\treturn \"\", nil, mergepatch.ErrBadArgType(patchStrategy, ps)\n\t\t}\n\t}\n\tmk, foundMK := extensions[patchMergeKeyOpenapiextensionKey]\n\tif foundMK {\n\t\tmergeKey, ok = mk.(string)\n\t\tif !ok {\n\t\t\treturn \"\", nil, mergepatch.ErrBadArgType(mergeKey, mk)\n\t\t}\n\t}\n\treturn mergeKey, patchStrategies, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/validation/OWNERS",
    "content": "# See the OWNERS docs at https://go.k8s.io/owners\n\n# Disable inheritance as this is an api owners file\noptions:\n  no_parent_owners: true\napprovers:\n  - api-approvers\nreviewers:\n  - api-reviewers\nlabels:\n  - kind/api-change\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/validation/field/errors.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage field\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\n\tutilerrors \"k8s.io/apimachinery/pkg/util/errors\"\n\t\"k8s.io/apimachinery/pkg/util/sets\"\n)\n\n// Error is an implementation of the 'error' interface, which represents a\n// field-level validation error.\ntype Error struct {\n\tType     ErrorType\n\tField    string\n\tBadValue interface{}\n\tDetail   string\n}\n\nvar _ error = &Error{}\n\n// Error implements the error interface.\nfunc (v *Error) Error() string {\n\treturn fmt.Sprintf(\"%s: %s\", v.Field, v.ErrorBody())\n}\n\ntype OmitValueType struct{}\n\nvar omitValue = OmitValueType{}\n\n// ErrorBody returns the error message without the field name.  This is useful\n// for building nice-looking higher-level error reporting.\nfunc (v *Error) ErrorBody() string {\n\tvar s string\n\tswitch {\n\tcase v.Type == ErrorTypeRequired:\n\t\ts = v.Type.String()\n\tcase v.Type == ErrorTypeForbidden:\n\t\ts = v.Type.String()\n\tcase v.Type == ErrorTypeTooLong:\n\t\ts = v.Type.String()\n\tcase v.Type == ErrorTypeInternal:\n\t\ts = v.Type.String()\n\tcase v.BadValue == omitValue:\n\t\ts = v.Type.String()\n\tdefault:\n\t\tvalue := v.BadValue\n\t\tvalueType := reflect.TypeOf(value)\n\t\tif value == nil || valueType == nil {\n\t\t\tvalue = \"null\"\n\t\t} else if valueType.Kind() == reflect.Pointer {\n\t\t\tif reflectValue := reflect.ValueOf(value); reflectValue.IsNil() {\n\t\t\t\tvalue = \"null\"\n\t\t\t} else {\n\t\t\t\tvalue = reflectValue.Elem().Interface()\n\t\t\t}\n\t\t}\n\t\tswitch t := value.(type) {\n\t\tcase int64, int32, float64, float32, bool:\n\t\t\t// use simple printer for simple types\n\t\t\ts = fmt.Sprintf(\"%s: %v\", v.Type, value)\n\t\tcase string:\n\t\t\ts = fmt.Sprintf(\"%s: %q\", v.Type, t)\n\t\tcase fmt.Stringer:\n\t\t\t// anything that defines String() is better than raw struct\n\t\t\ts = fmt.Sprintf(\"%s: %s\", v.Type, t.String())\n\t\tdefault:\n\t\t\t// fallback to raw struct\n\t\t\t// TODO: internal types have panic guards against json.Marshalling to prevent\n\t\t\t// accidental use of internal types in external serialized form.  For now, use\n\t\t\t// %#v, although it would be better to show a more expressive output in the future\n\t\t\ts = fmt.Sprintf(\"%s: %#v\", v.Type, value)\n\t\t}\n\t}\n\tif len(v.Detail) != 0 {\n\t\ts += fmt.Sprintf(\": %s\", v.Detail)\n\t}\n\treturn s\n}\n\n// ErrorType is a machine readable value providing more detail about why\n// a field is invalid.  These values are expected to match 1-1 with\n// CauseType in api/types.go.\ntype ErrorType string\n\n// TODO: These values are duplicated in api/types.go, but there's a circular dep.  Fix it.\nconst (\n\t// ErrorTypeNotFound is used to report failure to find a requested value\n\t// (e.g. looking up an ID).  See NotFound().\n\tErrorTypeNotFound ErrorType = \"FieldValueNotFound\"\n\t// ErrorTypeRequired is used to report required values that are not\n\t// provided (e.g. empty strings, null values, or empty arrays).  See\n\t// Required().\n\tErrorTypeRequired ErrorType = \"FieldValueRequired\"\n\t// ErrorTypeDuplicate is used to report collisions of values that must be\n\t// unique (e.g. unique IDs).  See Duplicate().\n\tErrorTypeDuplicate ErrorType = \"FieldValueDuplicate\"\n\t// ErrorTypeInvalid is used to report malformed values (e.g. failed regex\n\t// match, too long, out of bounds).  See Invalid().\n\tErrorTypeInvalid ErrorType = \"FieldValueInvalid\"\n\t// ErrorTypeNotSupported is used to report unknown values for enumerated\n\t// fields (e.g. a list of valid values).  See NotSupported().\n\tErrorTypeNotSupported ErrorType = \"FieldValueNotSupported\"\n\t// ErrorTypeForbidden is used to report valid (as per formatting rules)\n\t// values which would be accepted under some conditions, but which are not\n\t// permitted by the current conditions (such as security policy).  See\n\t// Forbidden().\n\tErrorTypeForbidden ErrorType = \"FieldValueForbidden\"\n\t// ErrorTypeTooLong is used to report that the given value is too long.\n\t// This is similar to ErrorTypeInvalid, but the error will not include the\n\t// too-long value.  See TooLong().\n\tErrorTypeTooLong ErrorType = \"FieldValueTooLong\"\n\t// ErrorTypeTooMany is used to report \"too many\". This is used to\n\t// report that a given list has too many items. This is similar to FieldValueTooLong,\n\t// but the error indicates quantity instead of length.\n\tErrorTypeTooMany ErrorType = \"FieldValueTooMany\"\n\t// ErrorTypeInternal is used to report other errors that are not related\n\t// to user input.  See InternalError().\n\tErrorTypeInternal ErrorType = \"InternalError\"\n\t// ErrorTypeTypeInvalid is for the value did not match the schema type for that field\n\tErrorTypeTypeInvalid ErrorType = \"FieldValueTypeInvalid\"\n)\n\n// String converts a ErrorType into its corresponding canonical error message.\nfunc (t ErrorType) String() string {\n\tswitch t {\n\tcase ErrorTypeNotFound:\n\t\treturn \"Not found\"\n\tcase ErrorTypeRequired:\n\t\treturn \"Required value\"\n\tcase ErrorTypeDuplicate:\n\t\treturn \"Duplicate value\"\n\tcase ErrorTypeInvalid:\n\t\treturn \"Invalid value\"\n\tcase ErrorTypeNotSupported:\n\t\treturn \"Unsupported value\"\n\tcase ErrorTypeForbidden:\n\t\treturn \"Forbidden\"\n\tcase ErrorTypeTooLong:\n\t\treturn \"Too long\"\n\tcase ErrorTypeTooMany:\n\t\treturn \"Too many\"\n\tcase ErrorTypeInternal:\n\t\treturn \"Internal error\"\n\tcase ErrorTypeTypeInvalid:\n\t\treturn \"Invalid value\"\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"unrecognized validation error: %q\", string(t)))\n\t}\n}\n\n// TypeInvalid returns a *Error indicating \"type is invalid\"\nfunc TypeInvalid(field *Path, value interface{}, detail string) *Error {\n\treturn &Error{ErrorTypeTypeInvalid, field.String(), value, detail}\n}\n\n// NotFound returns a *Error indicating \"value not found\".  This is\n// used to report failure to find a requested value (e.g. looking up an ID).\nfunc NotFound(field *Path, value interface{}) *Error {\n\treturn &Error{ErrorTypeNotFound, field.String(), value, \"\"}\n}\n\n// Required returns a *Error indicating \"value required\".  This is used\n// to report required values that are not provided (e.g. empty strings, null\n// values, or empty arrays).\nfunc Required(field *Path, detail string) *Error {\n\treturn &Error{ErrorTypeRequired, field.String(), \"\", detail}\n}\n\n// Duplicate returns a *Error indicating \"duplicate value\".  This is\n// used to report collisions of values that must be unique (e.g. names or IDs).\nfunc Duplicate(field *Path, value interface{}) *Error {\n\treturn &Error{ErrorTypeDuplicate, field.String(), value, \"\"}\n}\n\n// Invalid returns a *Error indicating \"invalid value\".  This is used\n// to report malformed values (e.g. failed regex match, too long, out of bounds).\nfunc Invalid(field *Path, value interface{}, detail string) *Error {\n\treturn &Error{ErrorTypeInvalid, field.String(), value, detail}\n}\n\n// NotSupported returns a *Error indicating \"unsupported value\".\n// This is used to report unknown values for enumerated fields (e.g. a list of\n// valid values).\nfunc NotSupported[T ~string](field *Path, value interface{}, validValues []T) *Error {\n\tdetail := \"\"\n\tif len(validValues) > 0 {\n\t\tquotedValues := make([]string, len(validValues))\n\t\tfor i, v := range validValues {\n\t\t\tquotedValues[i] = strconv.Quote(fmt.Sprint(v))\n\t\t}\n\t\tdetail = \"supported values: \" + strings.Join(quotedValues, \", \")\n\t}\n\treturn &Error{ErrorTypeNotSupported, field.String(), value, detail}\n}\n\n// Forbidden returns a *Error indicating \"forbidden\".  This is used to\n// report valid (as per formatting rules) values which would be accepted under\n// some conditions, but which are not permitted by current conditions (e.g.\n// security policy).\nfunc Forbidden(field *Path, detail string) *Error {\n\treturn &Error{ErrorTypeForbidden, field.String(), \"\", detail}\n}\n\n// TooLong returns a *Error indicating \"too long\".  This is used to report that\n// the given value is too long.  This is similar to Invalid, but the returned\n// error will not include the too-long value. If maxLength is negative, it will\n// be included in the message.  The value argument is not used.\nfunc TooLong(field *Path, value interface{}, maxLength int) *Error {\n\tvar msg string\n\tif maxLength >= 0 {\n\t\tmsg = fmt.Sprintf(\"may not be more than %d bytes\", maxLength)\n\t} else {\n\t\tmsg = \"value is too long\"\n\t}\n\treturn &Error{ErrorTypeTooLong, field.String(), \"<value omitted>\", msg}\n}\n\n// TooLongMaxLength returns a *Error indicating \"too long\".\n// Deprecated: Use TooLong instead.\nfunc TooLongMaxLength(field *Path, value interface{}, maxLength int) *Error {\n\treturn TooLong(field, \"\", maxLength)\n}\n\n// TooMany returns a *Error indicating \"too many\". This is used to\n// report that a given list has too many items. This is similar to TooLong,\n// but the returned error indicates quantity instead of length.\nfunc TooMany(field *Path, actualQuantity, maxQuantity int) *Error {\n\tvar msg string\n\n\tif maxQuantity >= 0 {\n\t\tmsg = fmt.Sprintf(\"must have at most %d items\", maxQuantity)\n\t} else {\n\t\tmsg = \"has too many items\"\n\t}\n\n\tvar actual interface{}\n\tif actualQuantity >= 0 {\n\t\tactual = actualQuantity\n\t} else {\n\t\tactual = omitValue\n\t}\n\n\treturn &Error{ErrorTypeTooMany, field.String(), actual, msg}\n}\n\n// InternalError returns a *Error indicating \"internal error\".  This is used\n// to signal that an error was found that was not directly related to user\n// input.  The err argument must be non-nil.\nfunc InternalError(field *Path, err error) *Error {\n\treturn &Error{ErrorTypeInternal, field.String(), nil, err.Error()}\n}\n\n// ErrorList holds a set of Errors.  It is plausible that we might one day have\n// non-field errors in this same umbrella package, but for now we don't, so\n// we can keep it simple and leave ErrorList here.\ntype ErrorList []*Error\n\n// NewErrorTypeMatcher returns an errors.Matcher that returns true\n// if the provided error is a Error and has the provided ErrorType.\nfunc NewErrorTypeMatcher(t ErrorType) utilerrors.Matcher {\n\treturn func(err error) bool {\n\t\tif e, ok := err.(*Error); ok {\n\t\t\treturn e.Type == t\n\t\t}\n\t\treturn false\n\t}\n}\n\n// ToAggregate converts the ErrorList into an errors.Aggregate.\nfunc (list ErrorList) ToAggregate() utilerrors.Aggregate {\n\tif len(list) == 0 {\n\t\treturn nil\n\t}\n\terrs := make([]error, 0, len(list))\n\terrorMsgs := sets.NewString()\n\tfor _, err := range list {\n\t\tmsg := fmt.Sprintf(\"%v\", err)\n\t\tif errorMsgs.Has(msg) {\n\t\t\tcontinue\n\t\t}\n\t\terrorMsgs.Insert(msg)\n\t\terrs = append(errs, err)\n\t}\n\treturn utilerrors.NewAggregate(errs)\n}\n\nfunc fromAggregate(agg utilerrors.Aggregate) ErrorList {\n\terrs := agg.Errors()\n\tlist := make(ErrorList, len(errs))\n\tfor i := range errs {\n\t\tlist[i] = errs[i].(*Error)\n\t}\n\treturn list\n}\n\n// Filter removes items from the ErrorList that match the provided fns.\nfunc (list ErrorList) Filter(fns ...utilerrors.Matcher) ErrorList {\n\terr := utilerrors.FilterOut(list.ToAggregate(), fns...)\n\tif err == nil {\n\t\treturn nil\n\t}\n\t// FilterOut takes an Aggregate and returns an Aggregate\n\treturn fromAggregate(err.(utilerrors.Aggregate))\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/validation/field/path.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage field\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"strconv\"\n)\n\ntype pathOptions struct {\n\tpath *Path\n}\n\n// PathOption modifies a pathOptions\ntype PathOption func(o *pathOptions)\n\n// WithPath generates a PathOption\nfunc WithPath(p *Path) PathOption {\n\treturn func(o *pathOptions) {\n\t\to.path = p\n\t}\n}\n\n// ToPath produces *Path from a set of PathOption\nfunc ToPath(opts ...PathOption) *Path {\n\tc := &pathOptions{}\n\tfor _, opt := range opts {\n\t\topt(c)\n\t}\n\treturn c.path\n}\n\n// Path represents the path from some root to a particular field.\ntype Path struct {\n\tname   string // the name of this field or \"\" if this is an index\n\tindex  string // if name == \"\", this is a subscript (index or map key) of the previous element\n\tparent *Path  // nil if this is the root element\n}\n\n// NewPath creates a root Path object.\nfunc NewPath(name string, moreNames ...string) *Path {\n\tr := &Path{name: name, parent: nil}\n\tfor _, anotherName := range moreNames {\n\t\tr = &Path{name: anotherName, parent: r}\n\t}\n\treturn r\n}\n\n// Root returns the root element of this Path.\nfunc (p *Path) Root() *Path {\n\tfor ; p.parent != nil; p = p.parent {\n\t\t// Do nothing.\n\t}\n\treturn p\n}\n\n// Child creates a new Path that is a child of the method receiver.\nfunc (p *Path) Child(name string, moreNames ...string) *Path {\n\tr := NewPath(name, moreNames...)\n\tr.Root().parent = p\n\treturn r\n}\n\n// Index indicates that the previous Path is to be subscripted by an int.\n// This sets the same underlying value as Key.\nfunc (p *Path) Index(index int) *Path {\n\treturn &Path{index: strconv.Itoa(index), parent: p}\n}\n\n// Key indicates that the previous Path is to be subscripted by a string.\n// This sets the same underlying value as Index.\nfunc (p *Path) Key(key string) *Path {\n\treturn &Path{index: key, parent: p}\n}\n\n// String produces a string representation of the Path.\nfunc (p *Path) String() string {\n\tif p == nil {\n\t\treturn \"<nil>\"\n\t}\n\t// make a slice to iterate\n\telems := []*Path{}\n\tfor ; p != nil; p = p.parent {\n\t\telems = append(elems, p)\n\t}\n\n\t// iterate, but it has to be backwards\n\tbuf := bytes.NewBuffer(nil)\n\tfor i := range elems {\n\t\tp := elems[len(elems)-1-i]\n\t\tif p.parent != nil && len(p.name) > 0 {\n\t\t\t// This is either the root or it is a subscript.\n\t\t\tbuf.WriteString(\".\")\n\t\t}\n\t\tif len(p.name) > 0 {\n\t\t\tbuf.WriteString(p.name)\n\t\t} else {\n\t\t\tfmt.Fprintf(buf, \"[%s]\", p.index)\n\t\t}\n\t}\n\treturn buf.String()\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/validation/validation.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage validation\n\nimport (\n\t\"fmt\"\n\t\"math\"\n\t\"regexp\"\n\t\"strings\"\n\t\"unicode\"\n\n\t\"k8s.io/apimachinery/pkg/util/validation/field\"\n\tnetutils \"k8s.io/utils/net\"\n)\n\nconst qnameCharFmt string = \"[A-Za-z0-9]\"\nconst qnameExtCharFmt string = \"[-A-Za-z0-9_.]\"\nconst qualifiedNameFmt string = \"(\" + qnameCharFmt + qnameExtCharFmt + \"*)?\" + qnameCharFmt\nconst qualifiedNameErrMsg string = \"must consist of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character\"\nconst qualifiedNameMaxLength int = 63\n\nvar qualifiedNameRegexp = regexp.MustCompile(\"^\" + qualifiedNameFmt + \"$\")\n\n// IsQualifiedName tests whether the value passed is what Kubernetes calls a\n// \"qualified name\".  This is a format used in various places throughout the\n// system.  If the value is not valid, a list of error strings is returned.\n// Otherwise an empty list (or nil) is returned.\nfunc IsQualifiedName(value string) []string {\n\tvar errs []string\n\tparts := strings.Split(value, \"/\")\n\tvar name string\n\tswitch len(parts) {\n\tcase 1:\n\t\tname = parts[0]\n\tcase 2:\n\t\tvar prefix string\n\t\tprefix, name = parts[0], parts[1]\n\t\tif len(prefix) == 0 {\n\t\t\terrs = append(errs, \"prefix part \"+EmptyError())\n\t\t} else if msgs := IsDNS1123Subdomain(prefix); len(msgs) != 0 {\n\t\t\terrs = append(errs, prefixEach(msgs, \"prefix part \")...)\n\t\t}\n\tdefault:\n\t\treturn append(errs, \"a qualified name \"+RegexError(qualifiedNameErrMsg, qualifiedNameFmt, \"MyName\", \"my.name\", \"123-abc\")+\n\t\t\t\" with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName')\")\n\t}\n\n\tif len(name) == 0 {\n\t\terrs = append(errs, \"name part \"+EmptyError())\n\t} else if len(name) > qualifiedNameMaxLength {\n\t\terrs = append(errs, \"name part \"+MaxLenError(qualifiedNameMaxLength))\n\t}\n\tif !qualifiedNameRegexp.MatchString(name) {\n\t\terrs = append(errs, \"name part \"+RegexError(qualifiedNameErrMsg, qualifiedNameFmt, \"MyName\", \"my.name\", \"123-abc\"))\n\t}\n\treturn errs\n}\n\n// IsFullyQualifiedName checks if the name is fully qualified. This is similar\n// to IsFullyQualifiedDomainName but requires a minimum of 3 segments instead of\n// 2 and does not accept a trailing . as valid.\n// TODO: This function is deprecated and preserved until all callers migrate to\n// IsFullyQualifiedDomainName; please don't add new callers.\nfunc IsFullyQualifiedName(fldPath *field.Path, name string) field.ErrorList {\n\tvar allErrors field.ErrorList\n\tif len(name) == 0 {\n\t\treturn append(allErrors, field.Required(fldPath, \"\"))\n\t}\n\tif errs := IsDNS1123Subdomain(name); len(errs) > 0 {\n\t\treturn append(allErrors, field.Invalid(fldPath, name, strings.Join(errs, \",\")))\n\t}\n\tif len(strings.Split(name, \".\")) < 3 {\n\t\treturn append(allErrors, field.Invalid(fldPath, name, \"should be a domain with at least three segments separated by dots\"))\n\t}\n\treturn allErrors\n}\n\n// IsFullyQualifiedDomainName checks if the domain name is fully qualified. This\n// is similar to IsFullyQualifiedName but only requires a minimum of 2 segments\n// instead of 3 and accepts a trailing . as valid.\nfunc IsFullyQualifiedDomainName(fldPath *field.Path, name string) field.ErrorList {\n\tvar allErrors field.ErrorList\n\tif len(name) == 0 {\n\t\treturn append(allErrors, field.Required(fldPath, \"\"))\n\t}\n\tif strings.HasSuffix(name, \".\") {\n\t\tname = name[:len(name)-1]\n\t}\n\tif errs := IsDNS1123Subdomain(name); len(errs) > 0 {\n\t\treturn append(allErrors, field.Invalid(fldPath, name, strings.Join(errs, \",\")))\n\t}\n\tif len(strings.Split(name, \".\")) < 2 {\n\t\treturn append(allErrors, field.Invalid(fldPath, name, \"should be a domain with at least two segments separated by dots\"))\n\t}\n\tfor _, label := range strings.Split(name, \".\") {\n\t\tif errs := IsDNS1123Label(label); len(errs) > 0 {\n\t\t\treturn append(allErrors, field.Invalid(fldPath, label, strings.Join(errs, \",\")))\n\t\t}\n\t}\n\treturn allErrors\n}\n\n// Allowed characters in an HTTP Path as defined by RFC 3986. A HTTP path may\n// contain:\n// * unreserved characters (alphanumeric, '-', '.', '_', '~')\n// * percent-encoded octets\n// * sub-delims (\"!\", \"$\", \"&\", \"'\", \"(\", \")\", \"*\", \"+\", \",\", \";\", \"=\")\n// * a colon character (\":\")\nconst httpPathFmt string = `[A-Za-z0-9/\\-._~%!$&'()*+,;=:]+`\n\nvar httpPathRegexp = regexp.MustCompile(\"^\" + httpPathFmt + \"$\")\n\n// IsDomainPrefixedPath checks if the given string is a domain-prefixed path\n// (e.g. acme.io/foo). All characters before the first \"/\" must be a valid\n// subdomain as defined by RFC 1123. All characters trailing the first \"/\" must\n// be valid HTTP Path characters as defined by RFC 3986.\nfunc IsDomainPrefixedPath(fldPath *field.Path, dpPath string) field.ErrorList {\n\tvar allErrs field.ErrorList\n\tif len(dpPath) == 0 {\n\t\treturn append(allErrs, field.Required(fldPath, \"\"))\n\t}\n\n\tsegments := strings.SplitN(dpPath, \"/\", 2)\n\tif len(segments) != 2 || len(segments[0]) == 0 || len(segments[1]) == 0 {\n\t\treturn append(allErrs, field.Invalid(fldPath, dpPath, \"must be a domain-prefixed path (such as \\\"acme.io/foo\\\")\"))\n\t}\n\n\thost := segments[0]\n\tfor _, err := range IsDNS1123Subdomain(host) {\n\t\tallErrs = append(allErrs, field.Invalid(fldPath, host, err))\n\t}\n\n\tpath := segments[1]\n\tif !httpPathRegexp.MatchString(path) {\n\t\treturn append(allErrs, field.Invalid(fldPath, path, RegexError(\"Invalid path\", httpPathFmt)))\n\t}\n\n\treturn allErrs\n}\n\nconst labelValueFmt string = \"(\" + qualifiedNameFmt + \")?\"\nconst labelValueErrMsg string = \"a valid label must be an empty string or consist of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character\"\n\n// LabelValueMaxLength is a label's max length\nconst LabelValueMaxLength int = 63\n\nvar labelValueRegexp = regexp.MustCompile(\"^\" + labelValueFmt + \"$\")\n\n// IsValidLabelValue tests whether the value passed is a valid label value.  If\n// the value is not valid, a list of error strings is returned.  Otherwise an\n// empty list (or nil) is returned.\nfunc IsValidLabelValue(value string) []string {\n\tvar errs []string\n\tif len(value) > LabelValueMaxLength {\n\t\terrs = append(errs, MaxLenError(LabelValueMaxLength))\n\t}\n\tif !labelValueRegexp.MatchString(value) {\n\t\terrs = append(errs, RegexError(labelValueErrMsg, labelValueFmt, \"MyValue\", \"my_value\", \"12345\"))\n\t}\n\treturn errs\n}\n\nconst dns1123LabelFmt string = \"[a-z0-9]([-a-z0-9]*[a-z0-9])?\"\nconst dns1123LabelFmtWithUnderscore string = \"_?[a-z0-9]([-_a-z0-9]*[a-z0-9])?\"\n\nconst dns1123LabelErrMsg string = \"a lowercase RFC 1123 label must consist of lower case alphanumeric characters or '-', and must start and end with an alphanumeric character\"\n\n// DNS1123LabelMaxLength is a label's max length in DNS (RFC 1123)\nconst DNS1123LabelMaxLength int = 63\n\nvar dns1123LabelRegexp = regexp.MustCompile(\"^\" + dns1123LabelFmt + \"$\")\n\n// IsDNS1123Label tests for a string that conforms to the definition of a label in\n// DNS (RFC 1123).\nfunc IsDNS1123Label(value string) []string {\n\tvar errs []string\n\tif len(value) > DNS1123LabelMaxLength {\n\t\terrs = append(errs, MaxLenError(DNS1123LabelMaxLength))\n\t}\n\tif !dns1123LabelRegexp.MatchString(value) {\n\t\tif dns1123SubdomainRegexp.MatchString(value) {\n\t\t\t// It was a valid subdomain and not a valid label.  Since we\n\t\t\t// already checked length, it must be dots.\n\t\t\terrs = append(errs, \"must not contain dots\")\n\t\t} else {\n\t\t\terrs = append(errs, RegexError(dns1123LabelErrMsg, dns1123LabelFmt, \"my-name\", \"123-abc\"))\n\t\t}\n\t}\n\treturn errs\n}\n\nconst dns1123SubdomainFmt string = dns1123LabelFmt + \"(\\\\.\" + dns1123LabelFmt + \")*\"\nconst dns1123SubdomainErrorMsg string = \"a lowercase RFC 1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character\"\n\nconst dns1123SubdomainFmtWithUnderscore string = dns1123LabelFmtWithUnderscore + \"(\\\\.\" + dns1123LabelFmtWithUnderscore + \")*\"\nconst dns1123SubdomainErrorMsgFG string = \"a lowercase RFC 1123 subdomain must consist of lower case alphanumeric characters, '_', '-' or '.', and must start and end with an alphanumeric character\"\n\n// DNS1123SubdomainMaxLength is a subdomain's max length in DNS (RFC 1123)\nconst DNS1123SubdomainMaxLength int = 253\n\nvar dns1123SubdomainRegexp = regexp.MustCompile(\"^\" + dns1123SubdomainFmt + \"$\")\nvar dns1123SubdomainRegexpWithUnderscore = regexp.MustCompile(\"^\" + dns1123SubdomainFmtWithUnderscore + \"$\")\n\n// IsDNS1123Subdomain tests for a string that conforms to the definition of a\n// subdomain in DNS (RFC 1123).\nfunc IsDNS1123Subdomain(value string) []string {\n\tvar errs []string\n\tif len(value) > DNS1123SubdomainMaxLength {\n\t\terrs = append(errs, MaxLenError(DNS1123SubdomainMaxLength))\n\t}\n\tif !dns1123SubdomainRegexp.MatchString(value) {\n\t\terrs = append(errs, RegexError(dns1123SubdomainErrorMsg, dns1123SubdomainFmt, \"example.com\"))\n\t}\n\treturn errs\n}\n\n// IsDNS1123SubdomainWithUnderscore tests for a string that conforms to the definition of a\n// subdomain in DNS (RFC 1123), but allows the use of an underscore in the string\nfunc IsDNS1123SubdomainWithUnderscore(value string) []string {\n\tvar errs []string\n\tif len(value) > DNS1123SubdomainMaxLength {\n\t\terrs = append(errs, MaxLenError(DNS1123SubdomainMaxLength))\n\t}\n\tif !dns1123SubdomainRegexpWithUnderscore.MatchString(value) {\n\t\terrs = append(errs, RegexError(dns1123SubdomainErrorMsgFG, dns1123SubdomainFmt, \"example.com\"))\n\t}\n\treturn errs\n}\n\nconst dns1035LabelFmt string = \"[a-z]([-a-z0-9]*[a-z0-9])?\"\nconst dns1035LabelErrMsg string = \"a DNS-1035 label must consist of lower case alphanumeric characters or '-', start with an alphabetic character, and end with an alphanumeric character\"\n\n// DNS1035LabelMaxLength is a label's max length in DNS (RFC 1035)\nconst DNS1035LabelMaxLength int = 63\n\nvar dns1035LabelRegexp = regexp.MustCompile(\"^\" + dns1035LabelFmt + \"$\")\n\n// IsDNS1035Label tests for a string that conforms to the definition of a label in\n// DNS (RFC 1035).\nfunc IsDNS1035Label(value string) []string {\n\tvar errs []string\n\tif len(value) > DNS1035LabelMaxLength {\n\t\terrs = append(errs, MaxLenError(DNS1035LabelMaxLength))\n\t}\n\tif !dns1035LabelRegexp.MatchString(value) {\n\t\terrs = append(errs, RegexError(dns1035LabelErrMsg, dns1035LabelFmt, \"my-name\", \"abc-123\"))\n\t}\n\treturn errs\n}\n\n// wildcard definition - RFC 1034 section 4.3.3.\n// examples:\n// - valid: *.bar.com, *.foo.bar.com\n// - invalid: *.*.bar.com, *.foo.*.com, *bar.com, f*.bar.com, *\nconst wildcardDNS1123SubdomainFmt = \"\\\\*\\\\.\" + dns1123SubdomainFmt\nconst wildcardDNS1123SubdomainErrMsg = \"a wildcard DNS-1123 subdomain must start with '*.', followed by a valid DNS subdomain, which must consist of lower case alphanumeric characters, '-' or '.' and end with an alphanumeric character\"\n\n// IsWildcardDNS1123Subdomain tests for a string that conforms to the definition of a\n// wildcard subdomain in DNS (RFC 1034 section 4.3.3).\nfunc IsWildcardDNS1123Subdomain(value string) []string {\n\twildcardDNS1123SubdomainRegexp := regexp.MustCompile(\"^\" + wildcardDNS1123SubdomainFmt + \"$\")\n\n\tvar errs []string\n\tif len(value) > DNS1123SubdomainMaxLength {\n\t\terrs = append(errs, MaxLenError(DNS1123SubdomainMaxLength))\n\t}\n\tif !wildcardDNS1123SubdomainRegexp.MatchString(value) {\n\t\terrs = append(errs, RegexError(wildcardDNS1123SubdomainErrMsg, wildcardDNS1123SubdomainFmt, \"*.example.com\"))\n\t}\n\treturn errs\n}\n\nconst cIdentifierFmt string = \"[A-Za-z_][A-Za-z0-9_]*\"\nconst identifierErrMsg string = \"a valid C identifier must start with alphabetic character or '_', followed by a string of alphanumeric characters or '_'\"\n\nvar cIdentifierRegexp = regexp.MustCompile(\"^\" + cIdentifierFmt + \"$\")\n\n// IsCIdentifier tests for a string that conforms the definition of an identifier\n// in C. This checks the format, but not the length.\nfunc IsCIdentifier(value string) []string {\n\tif !cIdentifierRegexp.MatchString(value) {\n\t\treturn []string{RegexError(identifierErrMsg, cIdentifierFmt, \"my_name\", \"MY_NAME\", \"MyName\")}\n\t}\n\treturn nil\n}\n\n// IsValidPortNum tests that the argument is a valid, non-zero port number.\nfunc IsValidPortNum(port int) []string {\n\tif 1 <= port && port <= 65535 {\n\t\treturn nil\n\t}\n\treturn []string{InclusiveRangeError(1, 65535)}\n}\n\n// IsInRange tests that the argument is in an inclusive range.\nfunc IsInRange(value int, min int, max int) []string {\n\tif value >= min && value <= max {\n\t\treturn nil\n\t}\n\treturn []string{InclusiveRangeError(min, max)}\n}\n\n// Now in libcontainer UID/GID limits is 0 ~ 1<<31 - 1\n// TODO: once we have a type for UID/GID we should make these that type.\nconst (\n\tminUserID  = 0\n\tmaxUserID  = math.MaxInt32\n\tminGroupID = 0\n\tmaxGroupID = math.MaxInt32\n)\n\n// IsValidGroupID tests that the argument is a valid Unix GID.\nfunc IsValidGroupID(gid int64) []string {\n\tif minGroupID <= gid && gid <= maxGroupID {\n\t\treturn nil\n\t}\n\treturn []string{InclusiveRangeError(minGroupID, maxGroupID)}\n}\n\n// IsValidUserID tests that the argument is a valid Unix UID.\nfunc IsValidUserID(uid int64) []string {\n\tif minUserID <= uid && uid <= maxUserID {\n\t\treturn nil\n\t}\n\treturn []string{InclusiveRangeError(minUserID, maxUserID)}\n}\n\nvar portNameCharsetRegex = regexp.MustCompile(\"^[-a-z0-9]+$\")\nvar portNameOneLetterRegexp = regexp.MustCompile(\"[a-z]\")\n\n// IsValidPortName check that the argument is valid syntax. It must be\n// non-empty and no more than 15 characters long. It may contain only [-a-z0-9]\n// and must contain at least one letter [a-z]. It must not start or end with a\n// hyphen, nor contain adjacent hyphens.\n//\n// Note: We only allow lower-case characters, even though RFC 6335 is case\n// insensitive.\nfunc IsValidPortName(port string) []string {\n\tvar errs []string\n\tif len(port) > 15 {\n\t\terrs = append(errs, MaxLenError(15))\n\t}\n\tif !portNameCharsetRegex.MatchString(port) {\n\t\terrs = append(errs, \"must contain only alpha-numeric characters (a-z, 0-9), and hyphens (-)\")\n\t}\n\tif !portNameOneLetterRegexp.MatchString(port) {\n\t\terrs = append(errs, \"must contain at least one letter (a-z)\")\n\t}\n\tif strings.Contains(port, \"--\") {\n\t\terrs = append(errs, \"must not contain consecutive hyphens\")\n\t}\n\tif len(port) > 0 && (port[0] == '-' || port[len(port)-1] == '-') {\n\t\terrs = append(errs, \"must not begin or end with a hyphen\")\n\t}\n\treturn errs\n}\n\n// IsValidIP tests that the argument is a valid IP address.\nfunc IsValidIP(fldPath *field.Path, value string) field.ErrorList {\n\tvar allErrors field.ErrorList\n\tif netutils.ParseIPSloppy(value) == nil {\n\t\tallErrors = append(allErrors, field.Invalid(fldPath, value, \"must be a valid IP address, (e.g. 10.9.8.7 or 2001:db8::ffff)\"))\n\t}\n\treturn allErrors\n}\n\n// IsValidIPv4Address tests that the argument is a valid IPv4 address.\nfunc IsValidIPv4Address(fldPath *field.Path, value string) field.ErrorList {\n\tvar allErrors field.ErrorList\n\tip := netutils.ParseIPSloppy(value)\n\tif ip == nil || ip.To4() == nil {\n\t\tallErrors = append(allErrors, field.Invalid(fldPath, value, \"must be a valid IPv4 address\"))\n\t}\n\treturn allErrors\n}\n\n// IsValidIPv6Address tests that the argument is a valid IPv6 address.\nfunc IsValidIPv6Address(fldPath *field.Path, value string) field.ErrorList {\n\tvar allErrors field.ErrorList\n\tip := netutils.ParseIPSloppy(value)\n\tif ip == nil || ip.To4() != nil {\n\t\tallErrors = append(allErrors, field.Invalid(fldPath, value, \"must be a valid IPv6 address\"))\n\t}\n\treturn allErrors\n}\n\n// IsValidCIDR tests that the argument is a valid CIDR value.\nfunc IsValidCIDR(fldPath *field.Path, value string) field.ErrorList {\n\tvar allErrors field.ErrorList\n\t_, _, err := netutils.ParseCIDRSloppy(value)\n\tif err != nil {\n\t\tallErrors = append(allErrors, field.Invalid(fldPath, value, \"must be a valid CIDR value, (e.g. 10.9.8.0/24 or 2001:db8::/64)\"))\n\t}\n\treturn allErrors\n}\n\nconst percentFmt string = \"[0-9]+%\"\nconst percentErrMsg string = \"a valid percent string must be a numeric string followed by an ending '%'\"\n\nvar percentRegexp = regexp.MustCompile(\"^\" + percentFmt + \"$\")\n\n// IsValidPercent checks that string is in the form of a percentage\nfunc IsValidPercent(percent string) []string {\n\tif !percentRegexp.MatchString(percent) {\n\t\treturn []string{RegexError(percentErrMsg, percentFmt, \"1%\", \"93%\")}\n\t}\n\treturn nil\n}\n\nconst httpHeaderNameFmt string = \"[-A-Za-z0-9]+\"\nconst httpHeaderNameErrMsg string = \"a valid HTTP header must consist of alphanumeric characters or '-'\"\n\nvar httpHeaderNameRegexp = regexp.MustCompile(\"^\" + httpHeaderNameFmt + \"$\")\n\n// IsHTTPHeaderName checks that a string conforms to the Go HTTP library's\n// definition of a valid header field name (a stricter subset than RFC7230).\nfunc IsHTTPHeaderName(value string) []string {\n\tif !httpHeaderNameRegexp.MatchString(value) {\n\t\treturn []string{RegexError(httpHeaderNameErrMsg, httpHeaderNameFmt, \"X-Header-Name\")}\n\t}\n\treturn nil\n}\n\nconst envVarNameFmt = \"[-._a-zA-Z][-._a-zA-Z0-9]*\"\nconst envVarNameFmtErrMsg string = \"a valid environment variable name must consist of alphabetic characters, digits, '_', '-', or '.', and must not start with a digit\"\n\n// TODO(hirazawaui): Rename this when the RelaxedEnvironmentVariableValidation gate is removed.\nconst relaxedEnvVarNameFmtErrMsg string = \"a valid environment variable name must consist only of printable ASCII characters other than '='\"\n\nvar envVarNameRegexp = regexp.MustCompile(\"^\" + envVarNameFmt + \"$\")\n\n// IsEnvVarName tests if a string is a valid environment variable name.\nfunc IsEnvVarName(value string) []string {\n\tvar errs []string\n\tif !envVarNameRegexp.MatchString(value) {\n\t\terrs = append(errs, RegexError(envVarNameFmtErrMsg, envVarNameFmt, \"my.env-name\", \"MY_ENV.NAME\", \"MyEnvName1\"))\n\t}\n\n\terrs = append(errs, hasChDirPrefix(value)...)\n\treturn errs\n}\n\n// IsRelaxedEnvVarName tests if a string is a valid environment variable name.\nfunc IsRelaxedEnvVarName(value string) []string {\n\tvar errs []string\n\n\tif len(value) == 0 {\n\t\terrs = append(errs, \"environment variable name \"+EmptyError())\n\t}\n\n\tfor _, r := range value {\n\t\tif r > unicode.MaxASCII || !unicode.IsPrint(r) || r == '=' {\n\t\t\terrs = append(errs, relaxedEnvVarNameFmtErrMsg)\n\t\t\tbreak\n\t\t}\n\t}\n\n\treturn errs\n}\n\nconst configMapKeyFmt = `[-._a-zA-Z0-9]+`\nconst configMapKeyErrMsg string = \"a valid config key must consist of alphanumeric characters, '-', '_' or '.'\"\n\nvar configMapKeyRegexp = regexp.MustCompile(\"^\" + configMapKeyFmt + \"$\")\n\n// IsConfigMapKey tests for a string that is a valid key for a ConfigMap or Secret\nfunc IsConfigMapKey(value string) []string {\n\tvar errs []string\n\tif len(value) > DNS1123SubdomainMaxLength {\n\t\terrs = append(errs, MaxLenError(DNS1123SubdomainMaxLength))\n\t}\n\tif !configMapKeyRegexp.MatchString(value) {\n\t\terrs = append(errs, RegexError(configMapKeyErrMsg, configMapKeyFmt, \"key.name\", \"KEY_NAME\", \"key-name\"))\n\t}\n\terrs = append(errs, hasChDirPrefix(value)...)\n\treturn errs\n}\n\n// MaxLenError returns a string explanation of a \"string too long\" validation\n// failure.\nfunc MaxLenError(length int) string {\n\treturn fmt.Sprintf(\"must be no more than %d characters\", length)\n}\n\n// RegexError returns a string explanation of a regex validation failure.\nfunc RegexError(msg string, fmt string, examples ...string) string {\n\tif len(examples) == 0 {\n\t\treturn msg + \" (regex used for validation is '\" + fmt + \"')\"\n\t}\n\tmsg += \" (e.g. \"\n\tfor i := range examples {\n\t\tif i > 0 {\n\t\t\tmsg += \" or \"\n\t\t}\n\t\tmsg += \"'\" + examples[i] + \"', \"\n\t}\n\tmsg += \"regex used for validation is '\" + fmt + \"')\"\n\treturn msg\n}\n\n// EmptyError returns a string explanation of a \"must not be empty\" validation\n// failure.\nfunc EmptyError() string {\n\treturn \"must be non-empty\"\n}\n\nfunc prefixEach(msgs []string, prefix string) []string {\n\tfor i := range msgs {\n\t\tmsgs[i] = prefix + msgs[i]\n\t}\n\treturn msgs\n}\n\n// InclusiveRangeError returns a string explanation of a numeric \"must be\n// between\" validation failure.\nfunc InclusiveRangeError(lo, hi int) string {\n\treturn fmt.Sprintf(`must be between %d and %d, inclusive`, lo, hi)\n}\n\nfunc hasChDirPrefix(value string) []string {\n\tvar errs []string\n\tswitch {\n\tcase value == \".\":\n\t\terrs = append(errs, `must not be '.'`)\n\tcase value == \"..\":\n\t\terrs = append(errs, `must not be '..'`)\n\tcase strings.HasPrefix(value, \"..\"):\n\t\terrs = append(errs, `must not start with '..'`)\n\t}\n\treturn errs\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/wait/backoff.go",
    "content": "/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage wait\n\nimport (\n\t\"context\"\n\t\"math\"\n\t\"sync\"\n\t\"time\"\n\n\t\"k8s.io/apimachinery/pkg/util/runtime\"\n\t\"k8s.io/utils/clock\"\n)\n\n// Backoff holds parameters applied to a Backoff function.\ntype Backoff struct {\n\t// The initial duration.\n\tDuration time.Duration\n\t// Duration is multiplied by factor each iteration, if factor is not zero\n\t// and the limits imposed by Steps and Cap have not been reached.\n\t// Should not be negative.\n\t// The jitter does not contribute to the updates to the duration parameter.\n\tFactor float64\n\t// The sleep at each iteration is the duration plus an additional\n\t// amount chosen uniformly at random from the interval between\n\t// zero and `jitter*duration`.\n\tJitter float64\n\t// The remaining number of iterations in which the duration\n\t// parameter may change (but progress can be stopped earlier by\n\t// hitting the cap). If not positive, the duration is not\n\t// changed. Used for exponential backoff in combination with\n\t// Factor and Cap.\n\tSteps int\n\t// A limit on revised values of the duration parameter. If a\n\t// multiplication by the factor parameter would make the duration\n\t// exceed the cap then the duration is set to the cap and the\n\t// steps parameter is set to zero.\n\tCap time.Duration\n}\n\n// Step returns an amount of time to sleep determined by the original\n// Duration and Jitter. The backoff is mutated to update its Steps and\n// Duration. A nil Backoff always has a zero-duration step.\nfunc (b *Backoff) Step() time.Duration {\n\tif b == nil {\n\t\treturn 0\n\t}\n\tvar nextDuration time.Duration\n\tnextDuration, b.Duration, b.Steps = delay(b.Steps, b.Duration, b.Cap, b.Factor, b.Jitter)\n\treturn nextDuration\n}\n\n// DelayFunc returns a function that will compute the next interval to\n// wait given the arguments in b. It does not mutate the original backoff\n// but the function is safe to use only from a single goroutine.\nfunc (b Backoff) DelayFunc() DelayFunc {\n\tsteps := b.Steps\n\tduration := b.Duration\n\tcap := b.Cap\n\tfactor := b.Factor\n\tjitter := b.Jitter\n\n\treturn func() time.Duration {\n\t\tvar nextDuration time.Duration\n\t\t// jitter is applied per step and is not cumulative over multiple steps\n\t\tnextDuration, duration, steps = delay(steps, duration, cap, factor, jitter)\n\t\treturn nextDuration\n\t}\n}\n\n// Timer returns a timer implementation appropriate to this backoff's parameters\n// for use with wait functions.\nfunc (b Backoff) Timer() Timer {\n\tif b.Steps > 1 || b.Jitter != 0 {\n\t\treturn &variableTimer{new: internalClock.NewTimer, fn: b.DelayFunc()}\n\t}\n\tif b.Duration > 0 {\n\t\treturn &fixedTimer{new: internalClock.NewTicker, interval: b.Duration}\n\t}\n\treturn newNoopTimer()\n}\n\n// delay implements the core delay algorithm used in this package.\nfunc delay(steps int, duration, cap time.Duration, factor, jitter float64) (_ time.Duration, next time.Duration, nextSteps int) {\n\t// when steps is non-positive, do not alter the base duration\n\tif steps < 1 {\n\t\tif jitter > 0 {\n\t\t\treturn Jitter(duration, jitter), duration, 0\n\t\t}\n\t\treturn duration, duration, 0\n\t}\n\tsteps--\n\n\t// calculate the next step's interval\n\tif factor != 0 {\n\t\tnext = time.Duration(float64(duration) * factor)\n\t\tif cap > 0 && next > cap {\n\t\t\tnext = cap\n\t\t\tsteps = 0\n\t\t}\n\t} else {\n\t\tnext = duration\n\t}\n\n\t// add jitter for this step\n\tif jitter > 0 {\n\t\tduration = Jitter(duration, jitter)\n\t}\n\n\treturn duration, next, steps\n\n}\n\n// DelayWithReset returns a DelayFunc that will return the appropriate next interval to\n// wait. Every resetInterval the backoff parameters are reset to their initial state.\n// This method is safe to invoke from multiple goroutines, but all calls will advance\n// the backoff state when Factor is set. If Factor is zero, this method is the same as\n// invoking b.DelayFunc() since Steps has no impact without Factor. If resetInterval is\n// zero no backoff will be performed as the same calling DelayFunc with a zero factor\n// and steps.\nfunc (b Backoff) DelayWithReset(c clock.Clock, resetInterval time.Duration) DelayFunc {\n\tif b.Factor <= 0 {\n\t\treturn b.DelayFunc()\n\t}\n\tif resetInterval <= 0 {\n\t\tb.Steps = 0\n\t\tb.Factor = 0\n\t\treturn b.DelayFunc()\n\t}\n\treturn (&backoffManager{\n\t\tbackoff:        b,\n\t\tinitialBackoff: b,\n\t\tresetInterval:  resetInterval,\n\n\t\tclock:     c,\n\t\tlastStart: c.Now(),\n\t\ttimer:     nil,\n\t}).Step\n}\n\n// Until loops until stop channel is closed, running f every period.\n//\n// Until is syntactic sugar on top of JitterUntil with zero jitter factor and\n// with sliding = true (which means the timer for period starts after the f\n// completes).\nfunc Until(f func(), period time.Duration, stopCh <-chan struct{}) {\n\tJitterUntil(f, period, 0.0, true, stopCh)\n}\n\n// UntilWithContext loops until context is done, running f every period.\n//\n// UntilWithContext is syntactic sugar on top of JitterUntilWithContext\n// with zero jitter factor and with sliding = true (which means the timer\n// for period starts after the f completes).\nfunc UntilWithContext(ctx context.Context, f func(context.Context), period time.Duration) {\n\tJitterUntilWithContext(ctx, f, period, 0.0, true)\n}\n\n// NonSlidingUntil loops until stop channel is closed, running f every\n// period.\n//\n// NonSlidingUntil is syntactic sugar on top of JitterUntil with zero jitter\n// factor, with sliding = false (meaning the timer for period starts at the same\n// time as the function starts).\nfunc NonSlidingUntil(f func(), period time.Duration, stopCh <-chan struct{}) {\n\tJitterUntil(f, period, 0.0, false, stopCh)\n}\n\n// NonSlidingUntilWithContext loops until context is done, running f every\n// period.\n//\n// NonSlidingUntilWithContext is syntactic sugar on top of JitterUntilWithContext\n// with zero jitter factor, with sliding = false (meaning the timer for period\n// starts at the same time as the function starts).\nfunc NonSlidingUntilWithContext(ctx context.Context, f func(context.Context), period time.Duration) {\n\tJitterUntilWithContext(ctx, f, period, 0.0, false)\n}\n\n// JitterUntil loops until stop channel is closed, running f every period.\n//\n// If jitterFactor is positive, the period is jittered before every run of f.\n// If jitterFactor is not positive, the period is unchanged and not jittered.\n//\n// If sliding is true, the period is computed after f runs. If it is false then\n// period includes the runtime for f.\n//\n// Close stopCh to stop. f may not be invoked if stop channel is already\n// closed. Pass NeverStop to if you don't want it stop.\nfunc JitterUntil(f func(), period time.Duration, jitterFactor float64, sliding bool, stopCh <-chan struct{}) {\n\tBackoffUntil(f, NewJitteredBackoffManager(period, jitterFactor, &clock.RealClock{}), sliding, stopCh)\n}\n\n// BackoffUntil loops until stop channel is closed, run f every duration given by BackoffManager.\n//\n// If sliding is true, the period is computed after f runs. If it is false then\n// period includes the runtime for f.\nfunc BackoffUntil(f func(), backoff BackoffManager, sliding bool, stopCh <-chan struct{}) {\n\tvar t clock.Timer\n\tfor {\n\t\tselect {\n\t\tcase <-stopCh:\n\t\t\treturn\n\t\tdefault:\n\t\t}\n\n\t\tif !sliding {\n\t\t\tt = backoff.Backoff()\n\t\t}\n\n\t\tfunc() {\n\t\t\tdefer runtime.HandleCrash()\n\t\t\tf()\n\t\t}()\n\n\t\tif sliding {\n\t\t\tt = backoff.Backoff()\n\t\t}\n\n\t\t// NOTE: b/c there is no priority selection in golang\n\t\t// it is possible for this to race, meaning we could\n\t\t// trigger t.C and stopCh, and t.C select falls through.\n\t\t// In order to mitigate we re-check stopCh at the beginning\n\t\t// of every loop to prevent extra executions of f().\n\t\tselect {\n\t\tcase <-stopCh:\n\t\t\tif !t.Stop() {\n\t\t\t\t<-t.C()\n\t\t\t}\n\t\t\treturn\n\t\tcase <-t.C():\n\t\t}\n\t}\n}\n\n// JitterUntilWithContext loops until context is done, running f every period.\n//\n// If jitterFactor is positive, the period is jittered before every run of f.\n// If jitterFactor is not positive, the period is unchanged and not jittered.\n//\n// If sliding is true, the period is computed after f runs. If it is false then\n// period includes the runtime for f.\n//\n// Cancel context to stop. f may not be invoked if context is already expired.\nfunc JitterUntilWithContext(ctx context.Context, f func(context.Context), period time.Duration, jitterFactor float64, sliding bool) {\n\tJitterUntil(func() { f(ctx) }, period, jitterFactor, sliding, ctx.Done())\n}\n\n// backoffManager provides simple backoff behavior in a threadsafe manner to a caller.\ntype backoffManager struct {\n\tbackoff        Backoff\n\tinitialBackoff Backoff\n\tresetInterval  time.Duration\n\n\tclock clock.Clock\n\n\tlock      sync.Mutex\n\tlastStart time.Time\n\ttimer     clock.Timer\n}\n\n// Step returns the expected next duration to wait.\nfunc (b *backoffManager) Step() time.Duration {\n\tb.lock.Lock()\n\tdefer b.lock.Unlock()\n\n\tswitch {\n\tcase b.resetInterval == 0:\n\t\tb.backoff = b.initialBackoff\n\tcase b.clock.Now().Sub(b.lastStart) > b.resetInterval:\n\t\tb.backoff = b.initialBackoff\n\t\tb.lastStart = b.clock.Now()\n\t}\n\treturn b.backoff.Step()\n}\n\n// Backoff implements BackoffManager.Backoff, it returns a timer so caller can block on the timer\n// for exponential backoff. The returned timer must be drained before calling Backoff() the second\n// time.\nfunc (b *backoffManager) Backoff() clock.Timer {\n\tb.lock.Lock()\n\tdefer b.lock.Unlock()\n\tif b.timer == nil {\n\t\tb.timer = b.clock.NewTimer(b.Step())\n\t} else {\n\t\tb.timer.Reset(b.Step())\n\t}\n\treturn b.timer\n}\n\n// Timer returns a new Timer instance that shares the clock and the reset behavior with all other\n// timers.\nfunc (b *backoffManager) Timer() Timer {\n\treturn DelayFunc(b.Step).Timer(b.clock)\n}\n\n// BackoffManager manages backoff with a particular scheme based on its underlying implementation.\ntype BackoffManager interface {\n\t// Backoff returns a shared clock.Timer that is Reset on every invocation. This method is not\n\t// safe for use from multiple threads. It returns a timer for backoff, and caller shall backoff\n\t// until Timer.C() drains. If the second Backoff() is called before the timer from the first\n\t// Backoff() call finishes, the first timer will NOT be drained and result in undetermined\n\t// behavior.\n\tBackoff() clock.Timer\n}\n\n// Deprecated: Will be removed when the legacy polling functions are removed.\ntype exponentialBackoffManagerImpl struct {\n\tbackoff              *Backoff\n\tbackoffTimer         clock.Timer\n\tlastBackoffStart     time.Time\n\tinitialBackoff       time.Duration\n\tbackoffResetDuration time.Duration\n\tclock                clock.Clock\n}\n\n// NewExponentialBackoffManager returns a manager for managing exponential backoff. Each backoff is jittered and\n// backoff will not exceed the given max. If the backoff is not called within resetDuration, the backoff is reset.\n// This backoff manager is used to reduce load during upstream unhealthiness.\n//\n// Deprecated: Will be removed when the legacy Poll methods are removed. Callers should construct a\n// Backoff struct, use DelayWithReset() to get a DelayFunc that periodically resets itself, and then\n// invoke Timer() when calling wait.BackoffUntil.\n//\n// Instead of:\n//\n//\tbm := wait.NewExponentialBackoffManager(init, max, reset, factor, jitter, clock)\n//\t...\n//\twait.BackoffUntil(..., bm.Backoff, ...)\n//\n// Use:\n//\n//\tdelayFn := wait.Backoff{\n//\t  Duration: init,\n//\t  Cap:      max,\n//\t  Steps:    int(math.Ceil(float64(max) / float64(init))), // now a required argument\n//\t  Factor:   factor,\n//\t  Jitter:   jitter,\n//\t}.DelayWithReset(reset, clock)\n//\twait.BackoffUntil(..., delayFn.Timer(), ...)\nfunc NewExponentialBackoffManager(initBackoff, maxBackoff, resetDuration time.Duration, backoffFactor, jitter float64, c clock.Clock) BackoffManager {\n\treturn &exponentialBackoffManagerImpl{\n\t\tbackoff: &Backoff{\n\t\t\tDuration: initBackoff,\n\t\t\tFactor:   backoffFactor,\n\t\t\tJitter:   jitter,\n\n\t\t\t// the current impl of wait.Backoff returns Backoff.Duration once steps are used up, which is not\n\t\t\t// what we ideally need here, we set it to max int and assume we will never use up the steps\n\t\t\tSteps: math.MaxInt32,\n\t\t\tCap:   maxBackoff,\n\t\t},\n\t\tbackoffTimer:         nil,\n\t\tinitialBackoff:       initBackoff,\n\t\tlastBackoffStart:     c.Now(),\n\t\tbackoffResetDuration: resetDuration,\n\t\tclock:                c,\n\t}\n}\n\nfunc (b *exponentialBackoffManagerImpl) getNextBackoff() time.Duration {\n\tif b.clock.Now().Sub(b.lastBackoffStart) > b.backoffResetDuration {\n\t\tb.backoff.Steps = math.MaxInt32\n\t\tb.backoff.Duration = b.initialBackoff\n\t}\n\tb.lastBackoffStart = b.clock.Now()\n\treturn b.backoff.Step()\n}\n\n// Backoff implements BackoffManager.Backoff, it returns a timer so caller can block on the timer for exponential backoff.\n// The returned timer must be drained before calling Backoff() the second time\nfunc (b *exponentialBackoffManagerImpl) Backoff() clock.Timer {\n\tif b.backoffTimer == nil {\n\t\tb.backoffTimer = b.clock.NewTimer(b.getNextBackoff())\n\t} else {\n\t\tb.backoffTimer.Reset(b.getNextBackoff())\n\t}\n\treturn b.backoffTimer\n}\n\n// Deprecated: Will be removed when the legacy polling functions are removed.\ntype jitteredBackoffManagerImpl struct {\n\tclock        clock.Clock\n\tduration     time.Duration\n\tjitter       float64\n\tbackoffTimer clock.Timer\n}\n\n// NewJitteredBackoffManager returns a BackoffManager that backoffs with given duration plus given jitter. If the jitter\n// is negative, backoff will not be jittered.\n//\n// Deprecated: Will be removed when the legacy Poll methods are removed. Callers should construct a\n// Backoff struct and invoke Timer() when calling wait.BackoffUntil.\n//\n// Instead of:\n//\n//\tbm := wait.NewJitteredBackoffManager(duration, jitter, clock)\n//\t...\n//\twait.BackoffUntil(..., bm.Backoff, ...)\n//\n// Use:\n//\n//\twait.BackoffUntil(..., wait.Backoff{Duration: duration, Jitter: jitter}.Timer(), ...)\nfunc NewJitteredBackoffManager(duration time.Duration, jitter float64, c clock.Clock) BackoffManager {\n\treturn &jitteredBackoffManagerImpl{\n\t\tclock:        c,\n\t\tduration:     duration,\n\t\tjitter:       jitter,\n\t\tbackoffTimer: nil,\n\t}\n}\n\nfunc (j *jitteredBackoffManagerImpl) getNextBackoff() time.Duration {\n\tjitteredPeriod := j.duration\n\tif j.jitter > 0.0 {\n\t\tjitteredPeriod = Jitter(j.duration, j.jitter)\n\t}\n\treturn jitteredPeriod\n}\n\n// Backoff implements BackoffManager.Backoff, it returns a timer so caller can block on the timer for jittered backoff.\n// The returned timer must be drained before calling Backoff() the second time\nfunc (j *jitteredBackoffManagerImpl) Backoff() clock.Timer {\n\tbackoff := j.getNextBackoff()\n\tif j.backoffTimer == nil {\n\t\tj.backoffTimer = j.clock.NewTimer(backoff)\n\t} else {\n\t\tj.backoffTimer.Reset(backoff)\n\t}\n\treturn j.backoffTimer\n}\n\n// ExponentialBackoff repeats a condition check with exponential backoff.\n//\n// It repeatedly checks the condition and then sleeps, using `backoff.Step()`\n// to determine the length of the sleep and adjust Duration and Steps.\n// Stops and returns as soon as:\n// 1. the condition check returns true or an error,\n// 2. `backoff.Steps` checks of the condition have been done, or\n// 3. a sleep truncated by the cap on duration has been completed.\n// In case (1) the returned error is what the condition function returned.\n// In all other cases, ErrWaitTimeout is returned.\n//\n// Since backoffs are often subject to cancellation, we recommend using\n// ExponentialBackoffWithContext and passing a context to the method.\nfunc ExponentialBackoff(backoff Backoff, condition ConditionFunc) error {\n\tfor backoff.Steps > 0 {\n\t\tif ok, err := runConditionWithCrashProtection(condition); err != nil || ok {\n\t\t\treturn err\n\t\t}\n\t\tif backoff.Steps == 1 {\n\t\t\tbreak\n\t\t}\n\t\ttime.Sleep(backoff.Step())\n\t}\n\treturn ErrWaitTimeout\n}\n\n// ExponentialBackoffWithContext repeats a condition check with exponential backoff.\n// It immediately returns an error if the condition returns an error, the context is cancelled\n// or hits the deadline, or if the maximum attempts defined in backoff is exceeded (ErrWaitTimeout).\n// If an error is returned by the condition the backoff stops immediately. The condition will\n// never be invoked more than backoff.Steps times.\nfunc ExponentialBackoffWithContext(ctx context.Context, backoff Backoff, condition ConditionWithContextFunc) error {\n\tfor backoff.Steps > 0 {\n\t\tselect {\n\t\tcase <-ctx.Done():\n\t\t\treturn ctx.Err()\n\t\tdefault:\n\t\t}\n\n\t\tif ok, err := runConditionWithCrashProtectionWithContext(ctx, condition); err != nil || ok {\n\t\t\treturn err\n\t\t}\n\n\t\tif backoff.Steps == 1 {\n\t\t\tbreak\n\t\t}\n\n\t\twaitBeforeRetry := backoff.Step()\n\t\tselect {\n\t\tcase <-ctx.Done():\n\t\t\treturn ctx.Err()\n\t\tcase <-time.After(waitBeforeRetry):\n\t\t}\n\t}\n\n\treturn ErrWaitTimeout\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/wait/delay.go",
    "content": "/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage wait\n\nimport (\n\t\"context\"\n\t\"sync\"\n\t\"time\"\n\n\t\"k8s.io/utils/clock\"\n)\n\n// DelayFunc returns the next time interval to wait.\ntype DelayFunc func() time.Duration\n\n// Timer takes an arbitrary delay function and returns a timer that can handle arbitrary interval changes.\n// Use Backoff{...}.Timer() for simple delays and more efficient timers.\nfunc (fn DelayFunc) Timer(c clock.Clock) Timer {\n\treturn &variableTimer{fn: fn, new: c.NewTimer}\n}\n\n// Until takes an arbitrary delay function and runs until cancelled or the condition indicates exit. This\n// offers all of the functionality of the methods in this package.\nfunc (fn DelayFunc) Until(ctx context.Context, immediate, sliding bool, condition ConditionWithContextFunc) error {\n\treturn loopConditionUntilContext(ctx, &variableTimer{fn: fn, new: internalClock.NewTimer}, immediate, sliding, condition)\n}\n\n// Concurrent returns a version of this DelayFunc that is safe for use by multiple goroutines that\n// wish to share a single delay timer.\nfunc (fn DelayFunc) Concurrent() DelayFunc {\n\tvar lock sync.Mutex\n\treturn func() time.Duration {\n\t\tlock.Lock()\n\t\tdefer lock.Unlock()\n\t\treturn fn()\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/wait/doc.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package wait provides tools for polling or listening for changes\n// to a condition.\npackage wait // import \"k8s.io/apimachinery/pkg/util/wait\"\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/wait/error.go",
    "content": "/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage wait\n\nimport (\n\t\"context\"\n\t\"errors\"\n)\n\n// ErrWaitTimeout is returned when the condition was not satisfied in time.\n//\n// Deprecated: This type will be made private in favor of Interrupted()\n// for checking errors or ErrorInterrupted(err) for returning a wrapped error.\nvar ErrWaitTimeout = ErrorInterrupted(errors.New(\"timed out waiting for the condition\"))\n\n// Interrupted returns true if the error indicates a Poll, ExponentialBackoff, or\n// Until loop exited for any reason besides the condition returning true or an\n// error. A loop is considered interrupted if the calling context is cancelled,\n// the context reaches its deadline, or a backoff reaches its maximum allowed\n// steps.\n//\n// Callers should use this method instead of comparing the error value directly to\n// ErrWaitTimeout, as methods that cancel a context may not return that error.\n//\n// Instead of:\n//\n//\terr := wait.Poll(...)\n//\tif err == wait.ErrWaitTimeout {\n//\t    log.Infof(\"Wait for operation exceeded\")\n//\t} else ...\n//\n// Use:\n//\n//\terr := wait.Poll(...)\n//\tif wait.Interrupted(err) {\n//\t    log.Infof(\"Wait for operation exceeded\")\n//\t} else ...\nfunc Interrupted(err error) bool {\n\tswitch {\n\tcase errors.Is(err, errWaitTimeout),\n\t\terrors.Is(err, context.Canceled),\n\t\terrors.Is(err, context.DeadlineExceeded):\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n\n// errInterrupted\ntype errInterrupted struct {\n\tcause error\n}\n\n// ErrorInterrupted returns an error that indicates the wait was ended\n// early for a given reason. If no cause is provided a generic error\n// will be used but callers are encouraged to provide a real cause for\n// clarity in debugging.\nfunc ErrorInterrupted(cause error) error {\n\tswitch cause.(type) {\n\tcase errInterrupted:\n\t\t// no need to wrap twice since errInterrupted is only needed\n\t\t// once in a chain\n\t\treturn cause\n\tdefault:\n\t\treturn errInterrupted{cause}\n\t}\n}\n\n// errWaitTimeout is the private version of the previous ErrWaitTimeout\n// and is private to prevent direct comparison. Use ErrorInterrupted(err)\n// to get an error that will return true for Interrupted(err).\nvar errWaitTimeout = errInterrupted{}\n\nfunc (e errInterrupted) Unwrap() error        { return e.cause }\nfunc (e errInterrupted) Is(target error) bool { return target == errWaitTimeout }\nfunc (e errInterrupted) Error() string {\n\tif e.cause == nil {\n\t\t// returns the same error message as historical behavior\n\t\treturn \"timed out waiting for the condition\"\n\t}\n\treturn e.cause.Error()\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/wait/loop.go",
    "content": "/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage wait\n\nimport (\n\t\"context\"\n\t\"time\"\n\n\t\"k8s.io/apimachinery/pkg/util/runtime\"\n)\n\n// loopConditionUntilContext executes the provided condition at intervals defined by\n// the provided timer until the provided context is cancelled, the condition returns\n// true, or the condition returns an error. If sliding is true, the period is computed\n// after condition runs. If it is false then period includes the runtime for condition.\n// If immediate is false the first delay happens before any call to condition, if\n// immediate is true the condition will be invoked before waiting and guarantees that\n// the condition is invoked at least once, regardless of whether the context has been\n// cancelled. The returned error is the error returned by the last condition or the\n// context error if the context was terminated.\n//\n// This is the common loop construct for all polling in the wait package.\nfunc loopConditionUntilContext(ctx context.Context, t Timer, immediate, sliding bool, condition ConditionWithContextFunc) error {\n\tdefer t.Stop()\n\n\tvar timeCh <-chan time.Time\n\tdoneCh := ctx.Done()\n\n\tif !sliding {\n\t\ttimeCh = t.C()\n\t}\n\n\t// if immediate is true the condition is\n\t// guaranteed to be executed at least once,\n\t// if we haven't requested immediate execution, delay once\n\tif immediate {\n\t\tif ok, err := func() (bool, error) {\n\t\t\tdefer runtime.HandleCrash()\n\t\t\treturn condition(ctx)\n\t\t}(); err != nil || ok {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tif sliding {\n\t\ttimeCh = t.C()\n\t}\n\n\tfor {\n\n\t\t// Wait for either the context to be cancelled or the next invocation be called\n\t\tselect {\n\t\tcase <-doneCh:\n\t\t\treturn ctx.Err()\n\t\tcase <-timeCh:\n\t\t}\n\n\t\t// IMPORTANT: Because there is no channel priority selection in golang\n\t\t// it is possible for very short timers to \"win\" the race in the previous select\n\t\t// repeatedly even when the context has been canceled.  We therefore must\n\t\t// explicitly check for context cancellation on every loop and exit if true to\n\t\t// guarantee that we don't invoke condition more than once after context has\n\t\t// been cancelled.\n\t\tif err := ctx.Err(); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif !sliding {\n\t\t\tt.Next()\n\t\t}\n\t\tif ok, err := func() (bool, error) {\n\t\t\tdefer runtime.HandleCrash()\n\t\t\treturn condition(ctx)\n\t\t}(); err != nil || ok {\n\t\t\treturn err\n\t\t}\n\t\tif sliding {\n\t\t\tt.Next()\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/wait/poll.go",
    "content": "/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage wait\n\nimport (\n\t\"context\"\n\t\"time\"\n)\n\n// PollUntilContextCancel tries a condition func until it returns true, an error, or the context\n// is cancelled or hits a deadline. condition will be invoked after the first interval if the\n// context is not cancelled first. The returned error will be from ctx.Err(), the condition's\n// err return value, or nil. If invoking condition takes longer than interval the next condition\n// will be invoked immediately. When using very short intervals, condition may be invoked multiple\n// times before a context cancellation is detected. If immediate is true, condition will be\n// invoked before waiting and guarantees that condition is invoked at least once, regardless of\n// whether the context has been cancelled.\nfunc PollUntilContextCancel(ctx context.Context, interval time.Duration, immediate bool, condition ConditionWithContextFunc) error {\n\treturn loopConditionUntilContext(ctx, Backoff{Duration: interval}.Timer(), immediate, false, condition)\n}\n\n// PollUntilContextTimeout will terminate polling after timeout duration by setting a context\n// timeout. This is provided as a convenience function for callers not currently executing under\n// a deadline and is equivalent to:\n//\n//\tdeadlineCtx, deadlineCancel := context.WithTimeout(ctx, timeout)\n//\terr := PollUntilContextCancel(deadlineCtx, interval, immediate, condition)\n//\n// The deadline context will be cancelled if the Poll succeeds before the timeout, simplifying\n// inline usage. All other behavior is identical to PollUntilContextCancel.\nfunc PollUntilContextTimeout(ctx context.Context, interval, timeout time.Duration, immediate bool, condition ConditionWithContextFunc) error {\n\tdeadlineCtx, deadlineCancel := context.WithTimeout(ctx, timeout)\n\tdefer deadlineCancel()\n\treturn loopConditionUntilContext(deadlineCtx, Backoff{Duration: interval}.Timer(), immediate, false, condition)\n}\n\n// Poll tries a condition func until it returns true, an error, or the timeout\n// is reached.\n//\n// Poll always waits the interval before the run of 'condition'.\n// 'condition' will always be invoked at least once.\n//\n// Some intervals may be missed if the condition takes too long or the time\n// window is too short.\n//\n// If you want to Poll something forever, see PollInfinite.\n//\n// Deprecated: This method does not return errors from context, use PollUntilContextTimeout.\n// Note that the new method will no longer return ErrWaitTimeout and instead return errors\n// defined by the context package. Will be removed in a future release.\nfunc Poll(interval, timeout time.Duration, condition ConditionFunc) error {\n\treturn PollWithContext(context.Background(), interval, timeout, condition.WithContext())\n}\n\n// PollWithContext tries a condition func until it returns true, an error,\n// or when the context expires or the timeout is reached, whichever\n// happens first.\n//\n// PollWithContext always waits the interval before the run of 'condition'.\n// 'condition' will always be invoked at least once.\n//\n// Some intervals may be missed if the condition takes too long or the time\n// window is too short.\n//\n// If you want to Poll something forever, see PollInfinite.\n//\n// Deprecated: This method does not return errors from context, use PollUntilContextTimeout.\n// Note that the new method will no longer return ErrWaitTimeout and instead return errors\n// defined by the context package. Will be removed in a future release.\nfunc PollWithContext(ctx context.Context, interval, timeout time.Duration, condition ConditionWithContextFunc) error {\n\treturn poll(ctx, false, poller(interval, timeout), condition)\n}\n\n// PollUntil tries a condition func until it returns true, an error or stopCh is\n// closed.\n//\n// PollUntil always waits interval before the first run of 'condition'.\n// 'condition' will always be invoked at least once.\n//\n// Deprecated: This method does not return errors from context, use PollUntilContextCancel.\n// Note that the new method will no longer return ErrWaitTimeout and instead return errors\n// defined by the context package. Will be removed in a future release.\nfunc PollUntil(interval time.Duration, condition ConditionFunc, stopCh <-chan struct{}) error {\n\treturn PollUntilWithContext(ContextForChannel(stopCh), interval, condition.WithContext())\n}\n\n// PollUntilWithContext tries a condition func until it returns true,\n// an error or the specified context is cancelled or expired.\n//\n// PollUntilWithContext always waits interval before the first run of 'condition'.\n// 'condition' will always be invoked at least once.\n//\n// Deprecated: This method does not return errors from context, use PollUntilContextCancel.\n// Note that the new method will no longer return ErrWaitTimeout and instead return errors\n// defined by the context package. Will be removed in a future release.\nfunc PollUntilWithContext(ctx context.Context, interval time.Duration, condition ConditionWithContextFunc) error {\n\treturn poll(ctx, false, poller(interval, 0), condition)\n}\n\n// PollInfinite tries a condition func until it returns true or an error\n//\n// PollInfinite always waits the interval before the run of 'condition'.\n//\n// Some intervals may be missed if the condition takes too long or the time\n// window is too short.\n//\n// Deprecated: This method does not return errors from context, use PollUntilContextCancel.\n// Note that the new method will no longer return ErrWaitTimeout and instead return errors\n// defined by the context package. Will be removed in a future release.\nfunc PollInfinite(interval time.Duration, condition ConditionFunc) error {\n\treturn PollInfiniteWithContext(context.Background(), interval, condition.WithContext())\n}\n\n// PollInfiniteWithContext tries a condition func until it returns true or an error\n//\n// PollInfiniteWithContext always waits the interval before the run of 'condition'.\n//\n// Some intervals may be missed if the condition takes too long or the time\n// window is too short.\n//\n// Deprecated: This method does not return errors from context, use PollUntilContextCancel.\n// Note that the new method will no longer return ErrWaitTimeout and instead return errors\n// defined by the context package. Will be removed in a future release.\nfunc PollInfiniteWithContext(ctx context.Context, interval time.Duration, condition ConditionWithContextFunc) error {\n\treturn poll(ctx, false, poller(interval, 0), condition)\n}\n\n// PollImmediate tries a condition func until it returns true, an error, or the timeout\n// is reached.\n//\n// PollImmediate always checks 'condition' before waiting for the interval. 'condition'\n// will always be invoked at least once.\n//\n// Some intervals may be missed if the condition takes too long or the time\n// window is too short.\n//\n// If you want to immediately Poll something forever, see PollImmediateInfinite.\n//\n// Deprecated: This method does not return errors from context, use PollUntilContextTimeout.\n// Note that the new method will no longer return ErrWaitTimeout and instead return errors\n// defined by the context package. Will be removed in a future release.\nfunc PollImmediate(interval, timeout time.Duration, condition ConditionFunc) error {\n\treturn PollImmediateWithContext(context.Background(), interval, timeout, condition.WithContext())\n}\n\n// PollImmediateWithContext tries a condition func until it returns true, an error,\n// or the timeout is reached or the specified context expires, whichever happens first.\n//\n// PollImmediateWithContext always checks 'condition' before waiting for the interval.\n// 'condition' will always be invoked at least once.\n//\n// Some intervals may be missed if the condition takes too long or the time\n// window is too short.\n//\n// If you want to immediately Poll something forever, see PollImmediateInfinite.\n//\n// Deprecated: This method does not return errors from context, use PollUntilContextTimeout.\n// Note that the new method will no longer return ErrWaitTimeout and instead return errors\n// defined by the context package. Will be removed in a future release.\nfunc PollImmediateWithContext(ctx context.Context, interval, timeout time.Duration, condition ConditionWithContextFunc) error {\n\treturn poll(ctx, true, poller(interval, timeout), condition)\n}\n\n// PollImmediateUntil tries a condition func until it returns true, an error or stopCh is closed.\n//\n// PollImmediateUntil runs the 'condition' before waiting for the interval.\n// 'condition' will always be invoked at least once.\n//\n// Deprecated: This method does not return errors from context, use PollUntilContextCancel.\n// Note that the new method will no longer return ErrWaitTimeout and instead return errors\n// defined by the context package. Will be removed in a future release.\nfunc PollImmediateUntil(interval time.Duration, condition ConditionFunc, stopCh <-chan struct{}) error {\n\treturn PollImmediateUntilWithContext(ContextForChannel(stopCh), interval, condition.WithContext())\n}\n\n// PollImmediateUntilWithContext tries a condition func until it returns true,\n// an error or the specified context is cancelled or expired.\n//\n// PollImmediateUntilWithContext runs the 'condition' before waiting for the interval.\n// 'condition' will always be invoked at least once.\n//\n// Deprecated: This method does not return errors from context, use PollUntilContextCancel.\n// Note that the new method will no longer return ErrWaitTimeout and instead return errors\n// defined by the context package. Will be removed in a future release.\nfunc PollImmediateUntilWithContext(ctx context.Context, interval time.Duration, condition ConditionWithContextFunc) error {\n\treturn poll(ctx, true, poller(interval, 0), condition)\n}\n\n// PollImmediateInfinite tries a condition func until it returns true or an error\n//\n// PollImmediateInfinite runs the 'condition' before waiting for the interval.\n//\n// Some intervals may be missed if the condition takes too long or the time\n// window is too short.\n//\n// Deprecated: This method does not return errors from context, use PollUntilContextCancel.\n// Note that the new method will no longer return ErrWaitTimeout and instead return errors\n// defined by the context package. Will be removed in a future release.\nfunc PollImmediateInfinite(interval time.Duration, condition ConditionFunc) error {\n\treturn PollImmediateInfiniteWithContext(context.Background(), interval, condition.WithContext())\n}\n\n// PollImmediateInfiniteWithContext tries a condition func until it returns true\n// or an error or the specified context gets cancelled or expired.\n//\n// PollImmediateInfiniteWithContext runs the 'condition' before waiting for the interval.\n//\n// Some intervals may be missed if the condition takes too long or the time\n// window is too short.\n//\n// Deprecated: This method does not return errors from context, use PollUntilContextCancel.\n// Note that the new method will no longer return ErrWaitTimeout and instead return errors\n// defined by the context package. Will be removed in a future release.\nfunc PollImmediateInfiniteWithContext(ctx context.Context, interval time.Duration, condition ConditionWithContextFunc) error {\n\treturn poll(ctx, true, poller(interval, 0), condition)\n}\n\n// Internally used, each of the public 'Poll*' function defined in this\n// package should invoke this internal function with appropriate parameters.\n// ctx: the context specified by the caller, for infinite polling pass\n// a context that never gets cancelled or expired.\n// immediate: if true, the 'condition' will be invoked before waiting for the interval,\n// in this case 'condition' will always be invoked at least once.\n// wait: user specified WaitFunc function that controls at what interval the condition\n// function should be invoked periodically and whether it is bound by a timeout.\n// condition: user specified ConditionWithContextFunc function.\n//\n// Deprecated: will be removed in favor of loopConditionUntilContext.\nfunc poll(ctx context.Context, immediate bool, wait waitWithContextFunc, condition ConditionWithContextFunc) error {\n\tif immediate {\n\t\tdone, err := runConditionWithCrashProtectionWithContext(ctx, condition)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif done {\n\t\t\treturn nil\n\t\t}\n\t}\n\n\tselect {\n\tcase <-ctx.Done():\n\t\t// returning ctx.Err() will break backward compatibility, use new PollUntilContext*\n\t\t// methods instead\n\t\treturn ErrWaitTimeout\n\tdefault:\n\t\treturn waitForWithContext(ctx, wait, condition)\n\t}\n}\n\n// poller returns a WaitFunc that will send to the channel every interval until\n// timeout has elapsed and then closes the channel.\n//\n// Over very short intervals you may receive no ticks before the channel is\n// closed. A timeout of 0 is interpreted as an infinity, and in such a case\n// it would be the caller's responsibility to close the done channel.\n// Failure to do so would result in a leaked goroutine.\n//\n// Output ticks are not buffered. If the channel is not ready to receive an\n// item, the tick is skipped.\n//\n// Deprecated: Will be removed in a future release.\nfunc poller(interval, timeout time.Duration) waitWithContextFunc {\n\treturn waitWithContextFunc(func(ctx context.Context) <-chan struct{} {\n\t\tch := make(chan struct{})\n\n\t\tgo func() {\n\t\t\tdefer close(ch)\n\n\t\t\ttick := time.NewTicker(interval)\n\t\t\tdefer tick.Stop()\n\n\t\t\tvar after <-chan time.Time\n\t\t\tif timeout != 0 {\n\t\t\t\t// time.After is more convenient, but it\n\t\t\t\t// potentially leaves timers around much longer\n\t\t\t\t// than necessary if we exit early.\n\t\t\t\ttimer := time.NewTimer(timeout)\n\t\t\t\tafter = timer.C\n\t\t\t\tdefer timer.Stop()\n\t\t\t}\n\n\t\t\tfor {\n\t\t\t\tselect {\n\t\t\t\tcase <-tick.C:\n\t\t\t\t\t// If the consumer isn't ready for this signal drop it and\n\t\t\t\t\t// check the other channels.\n\t\t\t\t\tselect {\n\t\t\t\t\tcase ch <- struct{}{}:\n\t\t\t\t\tdefault:\n\t\t\t\t\t}\n\t\t\t\tcase <-after:\n\t\t\t\t\treturn\n\t\t\t\tcase <-ctx.Done():\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t}()\n\n\t\treturn ch\n\t})\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/wait/timer.go",
    "content": "/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage wait\n\nimport (\n\t\"time\"\n\n\t\"k8s.io/utils/clock\"\n)\n\n// Timer abstracts how wait functions interact with time runtime efficiently. Test\n// code may implement this interface directly but package consumers are encouraged\n// to use the Backoff type as the primary mechanism for acquiring a Timer. The\n// interface is a simplification of clock.Timer to prevent misuse. Timers are not\n// expected to be safe for calls from multiple goroutines.\ntype Timer interface {\n\t// C returns a channel that will receive a struct{} each time the timer fires.\n\t// The channel should not be waited on after Stop() is invoked. It is allowed\n\t// to cache the returned value of C() for the lifetime of the Timer.\n\tC() <-chan time.Time\n\t// Next is invoked by wait functions to signal timers that the next interval\n\t// should begin. You may only use Next() if you have drained the channel C().\n\t// You should not call Next() after Stop() is invoked.\n\tNext()\n\t// Stop releases the timer. It is safe to invoke if no other methods have been\n\t// called.\n\tStop()\n}\n\ntype noopTimer struct {\n\tclosedCh <-chan time.Time\n}\n\n// newNoopTimer creates a timer with a unique channel to avoid contention\n// for the channel's lock across multiple unrelated timers.\nfunc newNoopTimer() noopTimer {\n\tch := make(chan time.Time)\n\tclose(ch)\n\treturn noopTimer{closedCh: ch}\n}\n\nfunc (t noopTimer) C() <-chan time.Time {\n\treturn t.closedCh\n}\nfunc (noopTimer) Next() {}\nfunc (noopTimer) Stop() {}\n\ntype variableTimer struct {\n\tfn  DelayFunc\n\tt   clock.Timer\n\tnew func(time.Duration) clock.Timer\n}\n\nfunc (t *variableTimer) C() <-chan time.Time {\n\tif t.t == nil {\n\t\td := t.fn()\n\t\tt.t = t.new(d)\n\t}\n\treturn t.t.C()\n}\nfunc (t *variableTimer) Next() {\n\tif t.t == nil {\n\t\treturn\n\t}\n\td := t.fn()\n\tt.t.Reset(d)\n}\nfunc (t *variableTimer) Stop() {\n\tif t.t == nil {\n\t\treturn\n\t}\n\tt.t.Stop()\n\tt.t = nil\n}\n\ntype fixedTimer struct {\n\tinterval time.Duration\n\tt        clock.Ticker\n\tnew      func(time.Duration) clock.Ticker\n}\n\nfunc (t *fixedTimer) C() <-chan time.Time {\n\tif t.t == nil {\n\t\tt.t = t.new(t.interval)\n\t}\n\treturn t.t.C()\n}\nfunc (t *fixedTimer) Next() {\n\t// no-op for fixed timers\n}\nfunc (t *fixedTimer) Stop() {\n\tif t.t == nil {\n\t\treturn\n\t}\n\tt.t.Stop()\n\tt.t = nil\n}\n\nvar (\n\t// RealTimer can be passed to methods that need a clock.Timer.\n\tRealTimer = clock.RealClock{}.NewTimer\n)\n\nvar (\n\t// internalClock is used for test injection of clocks\n\tinternalClock = clock.RealClock{}\n)\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/wait/wait.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage wait\n\nimport (\n\t\"context\"\n\t\"math/rand\"\n\t\"sync\"\n\t\"time\"\n\n\t\"k8s.io/apimachinery/pkg/util/runtime\"\n)\n\n// For any test of the style:\n//\n//\t...\n//\t<- time.After(timeout):\n//\t   t.Errorf(\"Timed out\")\n//\n// The value for timeout should effectively be \"forever.\" Obviously we don't want our tests to truly lock up forever, but 30s\n// is long enough that it is effectively forever for the things that can slow down a run on a heavily contended machine\n// (GC, seeks, etc), but not so long as to make a developer ctrl-c a test run if they do happen to break that test.\nvar ForeverTestTimeout = time.Second * 30\n\n// NeverStop may be passed to Until to make it never stop.\nvar NeverStop <-chan struct{} = make(chan struct{})\n\n// Group allows to start a group of goroutines and wait for their completion.\ntype Group struct {\n\twg sync.WaitGroup\n}\n\nfunc (g *Group) Wait() {\n\tg.wg.Wait()\n}\n\n// StartWithChannel starts f in a new goroutine in the group.\n// stopCh is passed to f as an argument. f should stop when stopCh is available.\nfunc (g *Group) StartWithChannel(stopCh <-chan struct{}, f func(stopCh <-chan struct{})) {\n\tg.Start(func() {\n\t\tf(stopCh)\n\t})\n}\n\n// StartWithContext starts f in a new goroutine in the group.\n// ctx is passed to f as an argument. f should stop when ctx.Done() is available.\nfunc (g *Group) StartWithContext(ctx context.Context, f func(context.Context)) {\n\tg.Start(func() {\n\t\tf(ctx)\n\t})\n}\n\n// Start starts f in a new goroutine in the group.\nfunc (g *Group) Start(f func()) {\n\tg.wg.Add(1)\n\tgo func() {\n\t\tdefer g.wg.Done()\n\t\tf()\n\t}()\n}\n\n// Forever calls f every period for ever.\n//\n// Forever is syntactic sugar on top of Until.\nfunc Forever(f func(), period time.Duration) {\n\tUntil(f, period, NeverStop)\n}\n\n// Jitter returns a time.Duration between duration and duration + maxFactor *\n// duration.\n//\n// This allows clients to avoid converging on periodic behavior. If maxFactor\n// is 0.0, a suggested default value will be chosen.\nfunc Jitter(duration time.Duration, maxFactor float64) time.Duration {\n\tif maxFactor <= 0.0 {\n\t\tmaxFactor = 1.0\n\t}\n\twait := duration + time.Duration(rand.Float64()*maxFactor*float64(duration))\n\treturn wait\n}\n\n// ConditionFunc returns true if the condition is satisfied, or an error\n// if the loop should be aborted.\ntype ConditionFunc func() (done bool, err error)\n\n// ConditionWithContextFunc returns true if the condition is satisfied, or an error\n// if the loop should be aborted.\n//\n// The caller passes along a context that can be used by the condition function.\ntype ConditionWithContextFunc func(context.Context) (done bool, err error)\n\n// WithContext converts a ConditionFunc into a ConditionWithContextFunc\nfunc (cf ConditionFunc) WithContext() ConditionWithContextFunc {\n\treturn func(context.Context) (done bool, err error) {\n\t\treturn cf()\n\t}\n}\n\n// ContextForChannel provides a context that will be treated as cancelled\n// when the provided parentCh is closed. The implementation returns\n// context.Canceled for Err() if and only if the parentCh is closed.\nfunc ContextForChannel(parentCh <-chan struct{}) context.Context {\n\treturn channelContext{stopCh: parentCh}\n}\n\nvar _ context.Context = channelContext{}\n\n// channelContext will behave as if the context were cancelled when stopCh is\n// closed.\ntype channelContext struct {\n\tstopCh <-chan struct{}\n}\n\nfunc (c channelContext) Done() <-chan struct{} { return c.stopCh }\nfunc (c channelContext) Err() error {\n\tselect {\n\tcase <-c.stopCh:\n\t\treturn context.Canceled\n\tdefault:\n\t\treturn nil\n\t}\n}\nfunc (c channelContext) Deadline() (time.Time, bool) { return time.Time{}, false }\nfunc (c channelContext) Value(key any) any           { return nil }\n\n// runConditionWithCrashProtection runs a ConditionFunc with crash protection.\n//\n// Deprecated: Will be removed when the legacy polling methods are removed.\nfunc runConditionWithCrashProtection(condition ConditionFunc) (bool, error) {\n\tdefer runtime.HandleCrash()\n\treturn condition()\n}\n\n// runConditionWithCrashProtectionWithContext runs a ConditionWithContextFunc\n// with crash protection.\n//\n// Deprecated: Will be removed when the legacy polling methods are removed.\nfunc runConditionWithCrashProtectionWithContext(ctx context.Context, condition ConditionWithContextFunc) (bool, error) {\n\tdefer runtime.HandleCrash()\n\treturn condition(ctx)\n}\n\n// waitFunc creates a channel that receives an item every time a test\n// should be executed and is closed when the last test should be invoked.\n//\n// Deprecated: Will be removed in a future release in favor of\n// loopConditionUntilContext.\ntype waitFunc func(done <-chan struct{}) <-chan struct{}\n\n// WithContext converts the WaitFunc to an equivalent WaitWithContextFunc\nfunc (w waitFunc) WithContext() waitWithContextFunc {\n\treturn func(ctx context.Context) <-chan struct{} {\n\t\treturn w(ctx.Done())\n\t}\n}\n\n// waitWithContextFunc creates a channel that receives an item every time a test\n// should be executed and is closed when the last test should be invoked.\n//\n// When the specified context gets cancelled or expires the function\n// stops sending item and returns immediately.\n//\n// Deprecated: Will be removed in a future release in favor of\n// loopConditionUntilContext.\ntype waitWithContextFunc func(ctx context.Context) <-chan struct{}\n\n// waitForWithContext continually checks 'fn' as driven by 'wait'.\n//\n// waitForWithContext gets a channel from 'wait()”, and then invokes 'fn'\n// once for every value placed on the channel and once more when the\n// channel is closed. If the channel is closed and 'fn'\n// returns false without error, waitForWithContext returns ErrWaitTimeout.\n//\n// If 'fn' returns an error the loop ends and that error is returned. If\n// 'fn' returns true the loop ends and nil is returned.\n//\n// context.Canceled will be returned if the ctx.Done() channel is closed\n// without fn ever returning true.\n//\n// When the ctx.Done() channel is closed, because the golang `select` statement is\n// \"uniform pseudo-random\", the `fn` might still run one or multiple times,\n// though eventually `waitForWithContext` will return.\n//\n// Deprecated: Will be removed in a future release in favor of\n// loopConditionUntilContext.\nfunc waitForWithContext(ctx context.Context, wait waitWithContextFunc, fn ConditionWithContextFunc) error {\n\twaitCtx, cancel := context.WithCancel(context.Background())\n\tdefer cancel()\n\tc := wait(waitCtx)\n\tfor {\n\t\tselect {\n\t\tcase _, open := <-c:\n\t\t\tok, err := runConditionWithCrashProtectionWithContext(ctx, fn)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif ok {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tif !open {\n\t\t\t\treturn ErrWaitTimeout\n\t\t\t}\n\t\tcase <-ctx.Done():\n\t\t\t// returning ctx.Err() will break backward compatibility, use new PollUntilContext*\n\t\t\t// methods instead\n\t\t\treturn ErrWaitTimeout\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/util/yaml/decoder.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage yaml\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"strings\"\n\t\"unicode\"\n\n\tjsonutil \"k8s.io/apimachinery/pkg/util/json\"\n\n\t\"sigs.k8s.io/yaml\"\n)\n\n// Unmarshal unmarshals the given data\n// If v is a *map[string]interface{}, *[]interface{}, or *interface{} numbers\n// are converted to int64 or float64\nfunc Unmarshal(data []byte, v interface{}) error {\n\tpreserveIntFloat := func(d *json.Decoder) *json.Decoder {\n\t\td.UseNumber()\n\t\treturn d\n\t}\n\tswitch v := v.(type) {\n\tcase *map[string]interface{}:\n\t\tif err := yaml.Unmarshal(data, v, preserveIntFloat); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn jsonutil.ConvertMapNumbers(*v, 0)\n\tcase *[]interface{}:\n\t\tif err := yaml.Unmarshal(data, v, preserveIntFloat); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn jsonutil.ConvertSliceNumbers(*v, 0)\n\tcase *interface{}:\n\t\tif err := yaml.Unmarshal(data, v, preserveIntFloat); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn jsonutil.ConvertInterfaceNumbers(v, 0)\n\tdefault:\n\t\treturn yaml.Unmarshal(data, v)\n\t}\n}\n\n// UnmarshalStrict unmarshals the given data\n// strictly (erroring when there are duplicate fields).\nfunc UnmarshalStrict(data []byte, v interface{}) error {\n\tpreserveIntFloat := func(d *json.Decoder) *json.Decoder {\n\t\td.UseNumber()\n\t\treturn d\n\t}\n\tswitch v := v.(type) {\n\tcase *map[string]interface{}:\n\t\tif err := yaml.UnmarshalStrict(data, v, preserveIntFloat); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn jsonutil.ConvertMapNumbers(*v, 0)\n\tcase *[]interface{}:\n\t\tif err := yaml.UnmarshalStrict(data, v, preserveIntFloat); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn jsonutil.ConvertSliceNumbers(*v, 0)\n\tcase *interface{}:\n\t\tif err := yaml.UnmarshalStrict(data, v, preserveIntFloat); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn jsonutil.ConvertInterfaceNumbers(v, 0)\n\tdefault:\n\t\treturn yaml.UnmarshalStrict(data, v)\n\t}\n}\n\n// ToJSON converts a single YAML document into a JSON document\n// or returns an error. If the document appears to be JSON the\n// YAML decoding path is not used (so that error messages are\n// JSON specific).\nfunc ToJSON(data []byte) ([]byte, error) {\n\tif hasJSONPrefix(data) {\n\t\treturn data, nil\n\t}\n\treturn yaml.YAMLToJSON(data)\n}\n\n// YAMLToJSONDecoder decodes YAML documents from an io.Reader by\n// separating individual documents. It first converts the YAML\n// body to JSON, then unmarshals the JSON.\ntype YAMLToJSONDecoder struct {\n\treader Reader\n}\n\n// NewYAMLToJSONDecoder decodes YAML documents from the provided\n// stream in chunks by converting each document (as defined by\n// the YAML spec) into its own chunk, converting it to JSON via\n// yaml.YAMLToJSON, and then passing it to json.Decoder.\nfunc NewYAMLToJSONDecoder(r io.Reader) *YAMLToJSONDecoder {\n\treader := bufio.NewReader(r)\n\treturn &YAMLToJSONDecoder{\n\t\treader: NewYAMLReader(reader),\n\t}\n}\n\n// Decode reads a YAML document as JSON from the stream or returns\n// an error. The decoding rules match json.Unmarshal, not\n// yaml.Unmarshal.\nfunc (d *YAMLToJSONDecoder) Decode(into interface{}) error {\n\tbytes, err := d.reader.Read()\n\tif err != nil && err != io.EOF {\n\t\treturn err\n\t}\n\n\tif len(bytes) != 0 {\n\t\terr := yaml.Unmarshal(bytes, into)\n\t\tif err != nil {\n\t\t\treturn YAMLSyntaxError{err}\n\t\t}\n\t}\n\treturn err\n}\n\n// YAMLDecoder reads chunks of objects and returns ErrShortBuffer if\n// the data is not sufficient.\ntype YAMLDecoder struct {\n\tr         io.ReadCloser\n\tscanner   *bufio.Scanner\n\tremaining []byte\n}\n\n// NewDocumentDecoder decodes YAML documents from the provided\n// stream in chunks by converting each document (as defined by\n// the YAML spec) into its own chunk. io.ErrShortBuffer will be\n// returned if the entire buffer could not be read to assist\n// the caller in framing the chunk.\nfunc NewDocumentDecoder(r io.ReadCloser) io.ReadCloser {\n\tscanner := bufio.NewScanner(r)\n\t// the size of initial allocation for buffer 4k\n\tbuf := make([]byte, 4*1024)\n\t// the maximum size used to buffer a token 5M\n\tscanner.Buffer(buf, 5*1024*1024)\n\tscanner.Split(splitYAMLDocument)\n\treturn &YAMLDecoder{\n\t\tr:       r,\n\t\tscanner: scanner,\n\t}\n}\n\n// Read reads the previous slice into the buffer, or attempts to read\n// the next chunk.\n// TODO: switch to readline approach.\nfunc (d *YAMLDecoder) Read(data []byte) (n int, err error) {\n\tleft := len(d.remaining)\n\tif left == 0 {\n\t\t// return the next chunk from the stream\n\t\tif !d.scanner.Scan() {\n\t\t\terr := d.scanner.Err()\n\t\t\tif err == nil {\n\t\t\t\terr = io.EOF\n\t\t\t}\n\t\t\treturn 0, err\n\t\t}\n\t\tout := d.scanner.Bytes()\n\t\td.remaining = out\n\t\tleft = len(out)\n\t}\n\n\t// fits within data\n\tif left <= len(data) {\n\t\tcopy(data, d.remaining)\n\t\td.remaining = nil\n\t\treturn left, nil\n\t}\n\n\t// caller will need to reread\n\tcopy(data, d.remaining[:len(data)])\n\td.remaining = d.remaining[len(data):]\n\treturn len(data), io.ErrShortBuffer\n}\n\nfunc (d *YAMLDecoder) Close() error {\n\treturn d.r.Close()\n}\n\nconst yamlSeparator = \"\\n---\"\nconst separator = \"---\"\n\n// splitYAMLDocument is a bufio.SplitFunc for splitting YAML streams into individual documents.\nfunc splitYAMLDocument(data []byte, atEOF bool) (advance int, token []byte, err error) {\n\tif atEOF && len(data) == 0 {\n\t\treturn 0, nil, nil\n\t}\n\tsep := len([]byte(yamlSeparator))\n\tif i := bytes.Index(data, []byte(yamlSeparator)); i >= 0 {\n\t\t// We have a potential document terminator\n\t\ti += sep\n\t\tafter := data[i:]\n\t\tif len(after) == 0 {\n\t\t\t// we can't read any more characters\n\t\t\tif atEOF {\n\t\t\t\treturn len(data), data[:len(data)-sep], nil\n\t\t\t}\n\t\t\treturn 0, nil, nil\n\t\t}\n\t\tif j := bytes.IndexByte(after, '\\n'); j >= 0 {\n\t\t\treturn i + j + 1, data[0 : i-sep], nil\n\t\t}\n\t\treturn 0, nil, nil\n\t}\n\t// If we're at EOF, we have a final, non-terminated line. Return it.\n\tif atEOF {\n\t\treturn len(data), data, nil\n\t}\n\t// Request more data.\n\treturn 0, nil, nil\n}\n\n// decoder is a convenience interface for Decode.\ntype decoder interface {\n\tDecode(into interface{}) error\n}\n\n// YAMLOrJSONDecoder attempts to decode a stream of JSON documents or\n// YAML documents by sniffing for a leading { character.\ntype YAMLOrJSONDecoder struct {\n\tr          io.Reader\n\tbufferSize int\n\n\tdecoder decoder\n}\n\ntype JSONSyntaxError struct {\n\tOffset int64\n\tErr    error\n}\n\nfunc (e JSONSyntaxError) Error() string {\n\treturn fmt.Sprintf(\"json: offset %d: %s\", e.Offset, e.Err.Error())\n}\n\ntype YAMLSyntaxError struct {\n\terr error\n}\n\nfunc (e YAMLSyntaxError) Error() string {\n\treturn e.err.Error()\n}\n\n// NewYAMLOrJSONDecoder returns a decoder that will process YAML documents\n// or JSON documents from the given reader as a stream. bufferSize determines\n// how far into the stream the decoder will look to figure out whether this\n// is a JSON stream (has whitespace followed by an open brace).\nfunc NewYAMLOrJSONDecoder(r io.Reader, bufferSize int) *YAMLOrJSONDecoder {\n\treturn &YAMLOrJSONDecoder{\n\t\tr:          r,\n\t\tbufferSize: bufferSize,\n\t}\n}\n\n// Decode unmarshals the next object from the underlying stream into the\n// provide object, or returns an error.\nfunc (d *YAMLOrJSONDecoder) Decode(into interface{}) error {\n\tif d.decoder == nil {\n\t\tbuffer, _, isJSON := GuessJSONStream(d.r, d.bufferSize)\n\t\tif isJSON {\n\t\t\td.decoder = json.NewDecoder(buffer)\n\t\t} else {\n\t\t\td.decoder = NewYAMLToJSONDecoder(buffer)\n\t\t}\n\t}\n\terr := d.decoder.Decode(into)\n\tif syntax, ok := err.(*json.SyntaxError); ok {\n\t\treturn JSONSyntaxError{\n\t\t\tOffset: syntax.Offset,\n\t\t\tErr:    syntax,\n\t\t}\n\t}\n\treturn err\n}\n\ntype Reader interface {\n\tRead() ([]byte, error)\n}\n\ntype YAMLReader struct {\n\treader Reader\n}\n\nfunc NewYAMLReader(r *bufio.Reader) *YAMLReader {\n\treturn &YAMLReader{\n\t\treader: &LineReader{reader: r},\n\t}\n}\n\n// Read returns a full YAML document.\nfunc (r *YAMLReader) Read() ([]byte, error) {\n\tvar buffer bytes.Buffer\n\tfor {\n\t\tline, err := r.reader.Read()\n\t\tif err != nil && err != io.EOF {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tsep := len([]byte(separator))\n\t\tif i := bytes.Index(line, []byte(separator)); i == 0 {\n\t\t\t// We have a potential document terminator\n\t\t\ti += sep\n\t\t\ttrimmed := strings.TrimSpace(string(line[i:]))\n\t\t\t// We only allow comments and spaces following the yaml doc separator, otherwise we'll return an error\n\t\t\tif len(trimmed) > 0 && string(trimmed[0]) != \"#\" {\n\t\t\t\treturn nil, YAMLSyntaxError{\n\t\t\t\t\terr: fmt.Errorf(\"invalid Yaml document separator: %s\", trimmed),\n\t\t\t\t}\n\t\t\t}\n\t\t\tif buffer.Len() != 0 {\n\t\t\t\treturn buffer.Bytes(), nil\n\t\t\t}\n\t\t\tif err == io.EOF {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t\tif err == io.EOF {\n\t\t\tif buffer.Len() != 0 {\n\t\t\t\t// If we're at EOF, we have a final, non-terminated line. Return it.\n\t\t\t\treturn buffer.Bytes(), nil\n\t\t\t}\n\t\t\treturn nil, err\n\t\t}\n\t\tbuffer.Write(line)\n\t}\n}\n\ntype LineReader struct {\n\treader *bufio.Reader\n}\n\n// Read returns a single line (with '\\n' ended) from the underlying reader.\n// An error is returned iff there is an error with the underlying reader.\nfunc (r *LineReader) Read() ([]byte, error) {\n\tvar (\n\t\tisPrefix bool  = true\n\t\terr      error = nil\n\t\tline     []byte\n\t\tbuffer   bytes.Buffer\n\t)\n\n\tfor isPrefix && err == nil {\n\t\tline, isPrefix, err = r.reader.ReadLine()\n\t\tbuffer.Write(line)\n\t}\n\tbuffer.WriteByte('\\n')\n\treturn buffer.Bytes(), err\n}\n\n// GuessJSONStream scans the provided reader up to size, looking\n// for an open brace indicating this is JSON. It will return the\n// bufio.Reader it creates for the consumer.\nfunc GuessJSONStream(r io.Reader, size int) (io.Reader, []byte, bool) {\n\tbuffer := bufio.NewReaderSize(r, size)\n\tb, _ := buffer.Peek(size)\n\treturn buffer, b, hasJSONPrefix(b)\n}\n\n// IsJSONBuffer scans the provided buffer, looking\n// for an open brace indicating this is JSON.\nfunc IsJSONBuffer(buf []byte) bool {\n\treturn hasJSONPrefix(buf)\n}\n\nvar jsonPrefix = []byte(\"{\")\n\n// hasJSONPrefix returns true if the provided buffer appears to start with\n// a JSON open brace.\nfunc hasJSONPrefix(buf []byte) bool {\n\treturn hasPrefix(buf, jsonPrefix)\n}\n\n// Return true if the first non-whitespace bytes in buf is\n// prefix.\nfunc hasPrefix(buf []byte, prefix []byte) bool {\n\ttrim := bytes.TrimLeftFunc(buf, unicode.IsSpace)\n\treturn bytes.HasPrefix(trim, prefix)\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/version/doc.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:openapi-gen=true\n\n// Package version supplies the type for version information collected at build time.\npackage version // import \"k8s.io/apimachinery/pkg/version\"\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/version/helpers.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage version\n\nimport (\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n)\n\ntype versionType int\n\nconst (\n\t// Bigger the version type number, higher priority it is\n\tversionTypeAlpha versionType = iota\n\tversionTypeBeta\n\tversionTypeGA\n)\n\nvar kubeVersionRegex = regexp.MustCompile(\"^v([\\\\d]+)(?:(alpha|beta)([\\\\d]+))?$\")\n\nfunc parseKubeVersion(v string) (majorVersion int, vType versionType, minorVersion int, ok bool) {\n\tvar err error\n\tsubmatches := kubeVersionRegex.FindStringSubmatch(v)\n\tif len(submatches) != 4 {\n\t\treturn 0, 0, 0, false\n\t}\n\tswitch submatches[2] {\n\tcase \"alpha\":\n\t\tvType = versionTypeAlpha\n\tcase \"beta\":\n\t\tvType = versionTypeBeta\n\tcase \"\":\n\t\tvType = versionTypeGA\n\tdefault:\n\t\treturn 0, 0, 0, false\n\t}\n\tif majorVersion, err = strconv.Atoi(submatches[1]); err != nil {\n\t\treturn 0, 0, 0, false\n\t}\n\tif vType != versionTypeGA {\n\t\tif minorVersion, err = strconv.Atoi(submatches[3]); err != nil {\n\t\t\treturn 0, 0, 0, false\n\t\t}\n\t}\n\treturn majorVersion, vType, minorVersion, true\n}\n\n// CompareKubeAwareVersionStrings compares two kube-like version strings.\n// Kube-like version strings are starting with a v, followed by a major version, optional \"alpha\" or \"beta\" strings\n// followed by a minor version (e.g. v1, v2beta1). Versions will be sorted based on GA/alpha/beta first and then major\n// and minor versions. e.g. v2, v1, v1beta2, v1beta1, v1alpha1.\nfunc CompareKubeAwareVersionStrings(v1, v2 string) int {\n\tif v1 == v2 {\n\t\treturn 0\n\t}\n\tv1major, v1type, v1minor, ok1 := parseKubeVersion(v1)\n\tv2major, v2type, v2minor, ok2 := parseKubeVersion(v2)\n\tswitch {\n\tcase !ok1 && !ok2:\n\t\treturn strings.Compare(v2, v1)\n\tcase !ok1 && ok2:\n\t\treturn -1\n\tcase ok1 && !ok2:\n\t\treturn 1\n\t}\n\tif v1type != v2type {\n\t\treturn int(v1type) - int(v2type)\n\t}\n\tif v1major != v2major {\n\t\treturn v1major - v2major\n\t}\n\treturn v1minor - v2minor\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/version/types.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage version\n\n// Info contains versioning information.\n// TODO: Add []string of api versions supported? It's still unclear\n// how we'll want to distribute that information.\ntype Info struct {\n\tMajor        string `json:\"major\"`\n\tMinor        string `json:\"minor\"`\n\tGitVersion   string `json:\"gitVersion\"`\n\tGitCommit    string `json:\"gitCommit\"`\n\tGitTreeState string `json:\"gitTreeState\"`\n\tBuildDate    string `json:\"buildDate\"`\n\tGoVersion    string `json:\"goVersion\"`\n\tCompiler     string `json:\"compiler\"`\n\tPlatform     string `json:\"platform\"`\n}\n\n// String returns info as a human-friendly version string.\nfunc (info Info) String() string {\n\treturn info.GitVersion\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/watch/doc.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package watch contains a generic watchable interface, and a fake for\n// testing code that uses the watch interface.\npackage watch // import \"k8s.io/apimachinery/pkg/watch\"\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/watch/filter.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage watch\n\nimport (\n\t\"sync\"\n)\n\n// FilterFunc should take an event, possibly modify it in some way, and return\n// the modified event. If the event should be ignored, then return keep=false.\ntype FilterFunc func(in Event) (out Event, keep bool)\n\n// Filter passes all events through f before allowing them to pass on.\n// Putting a filter on a watch, as an unavoidable side-effect due to the way\n// go channels work, effectively causes the watch's event channel to have its\n// queue length increased by one.\n//\n// WARNING: filter has a fatal flaw, in that it can't properly update the\n// Type field (Add/Modified/Deleted) to reflect items beginning to pass the\n// filter when they previously didn't.\nfunc Filter(w Interface, f FilterFunc) Interface {\n\tfw := &filteredWatch{\n\t\tincoming: w,\n\t\tresult:   make(chan Event),\n\t\tf:        f,\n\t}\n\tgo fw.loop()\n\treturn fw\n}\n\ntype filteredWatch struct {\n\tincoming Interface\n\tresult   chan Event\n\tf        FilterFunc\n}\n\n// ResultChan returns a channel which will receive filtered events.\nfunc (fw *filteredWatch) ResultChan() <-chan Event {\n\treturn fw.result\n}\n\n// Stop stops the upstream watch, which will eventually stop this watch.\nfunc (fw *filteredWatch) Stop() {\n\tfw.incoming.Stop()\n}\n\n// loop waits for new values, filters them, and resends them.\nfunc (fw *filteredWatch) loop() {\n\tdefer close(fw.result)\n\tfor event := range fw.incoming.ResultChan() {\n\t\tfiltered, keep := fw.f(event)\n\t\tif keep {\n\t\t\tfw.result <- filtered\n\t\t}\n\t}\n}\n\n// Recorder records all events that are sent from the watch until it is closed.\ntype Recorder struct {\n\tInterface\n\n\tlock   sync.Mutex\n\tevents []Event\n}\n\nvar _ Interface = &Recorder{}\n\n// NewRecorder wraps an Interface and records any changes sent across it.\nfunc NewRecorder(w Interface) *Recorder {\n\tr := &Recorder{}\n\tr.Interface = Filter(w, r.record)\n\treturn r\n}\n\n// record is a FilterFunc and tracks each received event.\nfunc (r *Recorder) record(in Event) (Event, bool) {\n\tr.lock.Lock()\n\tdefer r.lock.Unlock()\n\tr.events = append(r.events, in)\n\treturn in, true\n}\n\n// Events returns a copy of the events sent across this recorder.\nfunc (r *Recorder) Events() []Event {\n\tr.lock.Lock()\n\tdefer r.lock.Unlock()\n\tcopied := make([]Event, len(r.events))\n\tcopy(copied, r.events)\n\treturn copied\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/watch/mux.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage watch\n\nimport (\n\t\"fmt\"\n\t\"sync\"\n\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// FullChannelBehavior controls how the Broadcaster reacts if a watcher's watch\n// channel is full.\ntype FullChannelBehavior int\n\nconst (\n\tWaitIfChannelFull FullChannelBehavior = iota\n\tDropIfChannelFull\n)\n\n// Buffer the incoming queue a little bit even though it should rarely ever accumulate\n// anything, just in case a few events are received in such a short window that\n// Broadcaster can't move them onto the watchers' queues fast enough.\nconst incomingQueueLength = 25\n\n// Broadcaster distributes event notifications among any number of watchers. Every event\n// is delivered to every watcher.\ntype Broadcaster struct {\n\twatchers     map[int64]*broadcasterWatcher\n\tnextWatcher  int64\n\tdistributing sync.WaitGroup\n\n\t// incomingBlock allows us to ensure we don't race and end up sending events\n\t// to a closed channel following a broadcaster shutdown.\n\tincomingBlock sync.Mutex\n\tincoming      chan Event\n\tstopped       chan struct{}\n\n\t// How large to make watcher's channel.\n\twatchQueueLength int\n\t// If one of the watch channels is full, don't wait for it to become empty.\n\t// Instead just deliver it to the watchers that do have space in their\n\t// channels and move on to the next event.\n\t// It's more fair to do this on a per-watcher basis than to do it on the\n\t// \"incoming\" channel, which would allow one slow watcher to prevent all\n\t// other watchers from getting new events.\n\tfullChannelBehavior FullChannelBehavior\n}\n\n// NewBroadcaster creates a new Broadcaster. queueLength is the maximum number of events to queue per watcher.\n// It is guaranteed that events will be distributed in the order in which they occur,\n// but the order in which a single event is distributed among all of the watchers is unspecified.\nfunc NewBroadcaster(queueLength int, fullChannelBehavior FullChannelBehavior) *Broadcaster {\n\tm := &Broadcaster{\n\t\twatchers:            map[int64]*broadcasterWatcher{},\n\t\tincoming:            make(chan Event, incomingQueueLength),\n\t\tstopped:             make(chan struct{}),\n\t\twatchQueueLength:    queueLength,\n\t\tfullChannelBehavior: fullChannelBehavior,\n\t}\n\tm.distributing.Add(1)\n\tgo m.loop()\n\treturn m\n}\n\n// NewLongQueueBroadcaster functions nearly identically to NewBroadcaster,\n// except that the incoming queue is the same size as the outgoing queues\n// (specified by queueLength).\nfunc NewLongQueueBroadcaster(queueLength int, fullChannelBehavior FullChannelBehavior) *Broadcaster {\n\tm := &Broadcaster{\n\t\twatchers:            map[int64]*broadcasterWatcher{},\n\t\tincoming:            make(chan Event, queueLength),\n\t\tstopped:             make(chan struct{}),\n\t\twatchQueueLength:    queueLength,\n\t\tfullChannelBehavior: fullChannelBehavior,\n\t}\n\tm.distributing.Add(1)\n\tgo m.loop()\n\treturn m\n}\n\nconst internalRunFunctionMarker = \"internal-do-function\"\n\n// a function type we can shoehorn into the queue.\ntype functionFakeRuntimeObject func()\n\nfunc (obj functionFakeRuntimeObject) GetObjectKind() schema.ObjectKind {\n\treturn schema.EmptyObjectKind\n}\nfunc (obj functionFakeRuntimeObject) DeepCopyObject() runtime.Object {\n\tif obj == nil {\n\t\treturn nil\n\t}\n\t// funcs are immutable. Hence, just return the original func.\n\treturn obj\n}\n\n// Execute f, blocking the incoming queue (and waiting for it to drain first).\n// The purpose of this terrible hack is so that watchers added after an event\n// won't ever see that event, and will always see any event after they are\n// added.\nfunc (m *Broadcaster) blockQueue(f func()) {\n\tm.incomingBlock.Lock()\n\tdefer m.incomingBlock.Unlock()\n\tselect {\n\tcase <-m.stopped:\n\t\treturn\n\tdefault:\n\t}\n\tvar wg sync.WaitGroup\n\twg.Add(1)\n\tm.incoming <- Event{\n\t\tType: internalRunFunctionMarker,\n\t\tObject: functionFakeRuntimeObject(func() {\n\t\t\tdefer wg.Done()\n\t\t\tf()\n\t\t}),\n\t}\n\twg.Wait()\n}\n\n// Watch adds a new watcher to the list and returns an Interface for it.\n// Note: new watchers will only receive new events. They won't get an entire history\n// of previous events. It will block until the watcher is actually added to the\n// broadcaster.\nfunc (m *Broadcaster) Watch() (Interface, error) {\n\tvar w *broadcasterWatcher\n\tm.blockQueue(func() {\n\t\tid := m.nextWatcher\n\t\tm.nextWatcher++\n\t\tw = &broadcasterWatcher{\n\t\t\tresult:  make(chan Event, m.watchQueueLength),\n\t\t\tstopped: make(chan struct{}),\n\t\t\tid:      id,\n\t\t\tm:       m,\n\t\t}\n\t\tm.watchers[id] = w\n\t})\n\tif w == nil {\n\t\treturn nil, fmt.Errorf(\"broadcaster already stopped\")\n\t}\n\treturn w, nil\n}\n\n// WatchWithPrefix adds a new watcher to the list and returns an Interface for it. It sends\n// queuedEvents down the new watch before beginning to send ordinary events from Broadcaster.\n// The returned watch will have a queue length that is at least large enough to accommodate\n// all of the items in queuedEvents. It will block until the watcher is actually added to\n// the broadcaster.\nfunc (m *Broadcaster) WatchWithPrefix(queuedEvents []Event) (Interface, error) {\n\tvar w *broadcasterWatcher\n\tm.blockQueue(func() {\n\t\tid := m.nextWatcher\n\t\tm.nextWatcher++\n\t\tlength := m.watchQueueLength\n\t\tif n := len(queuedEvents) + 1; n > length {\n\t\t\tlength = n\n\t\t}\n\t\tw = &broadcasterWatcher{\n\t\t\tresult:  make(chan Event, length),\n\t\t\tstopped: make(chan struct{}),\n\t\t\tid:      id,\n\t\t\tm:       m,\n\t\t}\n\t\tm.watchers[id] = w\n\t\tfor _, e := range queuedEvents {\n\t\t\tw.result <- e\n\t\t}\n\t})\n\tif w == nil {\n\t\treturn nil, fmt.Errorf(\"broadcaster already stopped\")\n\t}\n\treturn w, nil\n}\n\n// stopWatching stops the given watcher and removes it from the list.\nfunc (m *Broadcaster) stopWatching(id int64) {\n\tm.blockQueue(func() {\n\t\tw, ok := m.watchers[id]\n\t\tif !ok {\n\t\t\t// No need to do anything, it's already been removed from the list.\n\t\t\treturn\n\t\t}\n\t\tdelete(m.watchers, id)\n\t\tclose(w.result)\n\t})\n}\n\n// closeAll disconnects all watchers (presumably in response to a Shutdown call).\nfunc (m *Broadcaster) closeAll() {\n\tfor _, w := range m.watchers {\n\t\tclose(w.result)\n\t}\n\t// Delete everything from the map, since presence/absence in the map is used\n\t// by stopWatching to avoid double-closing the channel.\n\tm.watchers = map[int64]*broadcasterWatcher{}\n}\n\n// Action distributes the given event among all watchers.\nfunc (m *Broadcaster) Action(action EventType, obj runtime.Object) error {\n\tm.incomingBlock.Lock()\n\tdefer m.incomingBlock.Unlock()\n\tselect {\n\tcase <-m.stopped:\n\t\treturn fmt.Errorf(\"broadcaster already stopped\")\n\tdefault:\n\t}\n\n\tm.incoming <- Event{action, obj}\n\treturn nil\n}\n\n// Action distributes the given event among all watchers, or drops it on the floor\n// if too many incoming actions are queued up.  Returns true if the action was sent,\n// false if dropped.\nfunc (m *Broadcaster) ActionOrDrop(action EventType, obj runtime.Object) (bool, error) {\n\tm.incomingBlock.Lock()\n\tdefer m.incomingBlock.Unlock()\n\n\t// Ensure that if the broadcaster is stopped we do not send events to it.\n\tselect {\n\tcase <-m.stopped:\n\t\treturn false, fmt.Errorf(\"broadcaster already stopped\")\n\tdefault:\n\t}\n\n\tselect {\n\tcase m.incoming <- Event{action, obj}:\n\t\treturn true, nil\n\tdefault:\n\t\treturn false, nil\n\t}\n}\n\n// Shutdown disconnects all watchers (but any queued events will still be distributed).\n// You must not call Action or Watch* after calling Shutdown. This call blocks\n// until all events have been distributed through the outbound channels. Note\n// that since they can be buffered, this means that the watchers might not\n// have received the data yet as it can remain sitting in the buffered\n// channel. It will block until the broadcaster stop request is actually executed\nfunc (m *Broadcaster) Shutdown() {\n\tm.blockQueue(func() {\n\t\tclose(m.stopped)\n\t\tclose(m.incoming)\n\t})\n\tm.distributing.Wait()\n}\n\n// loop receives from m.incoming and distributes to all watchers.\nfunc (m *Broadcaster) loop() {\n\t// Deliberately not catching crashes here. Yes, bring down the process if there's a\n\t// bug in watch.Broadcaster.\n\tfor event := range m.incoming {\n\t\tif event.Type == internalRunFunctionMarker {\n\t\t\tevent.Object.(functionFakeRuntimeObject)()\n\t\t\tcontinue\n\t\t}\n\t\tm.distribute(event)\n\t}\n\tm.closeAll()\n\tm.distributing.Done()\n}\n\n// distribute sends event to all watchers. Blocking.\nfunc (m *Broadcaster) distribute(event Event) {\n\tif m.fullChannelBehavior == DropIfChannelFull {\n\t\tfor _, w := range m.watchers {\n\t\t\tselect {\n\t\t\tcase w.result <- event:\n\t\t\tcase <-w.stopped:\n\t\t\tdefault: // Don't block if the event can't be queued.\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfor _, w := range m.watchers {\n\t\t\tselect {\n\t\t\tcase w.result <- event:\n\t\t\tcase <-w.stopped:\n\t\t\t}\n\t\t}\n\t}\n}\n\n// broadcasterWatcher handles a single watcher of a broadcaster\ntype broadcasterWatcher struct {\n\tresult  chan Event\n\tstopped chan struct{}\n\tstop    sync.Once\n\tid      int64\n\tm       *Broadcaster\n}\n\n// ResultChan returns a channel to use for waiting on events.\nfunc (mw *broadcasterWatcher) ResultChan() <-chan Event {\n\treturn mw.result\n}\n\n// Stop stops watching and removes mw from its list.\n// It will block until the watcher stop request is actually executed\nfunc (mw *broadcasterWatcher) Stop() {\n\tmw.stop.Do(func() {\n\t\tclose(mw.stopped)\n\t\tmw.m.stopWatching(mw.id)\n\t})\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/watch/streamwatcher.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage watch\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"sync\"\n\n\t\"k8s.io/klog/v2\"\n\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/util/net\"\n\tutilruntime \"k8s.io/apimachinery/pkg/util/runtime\"\n)\n\n// Decoder allows StreamWatcher to watch any stream for which a Decoder can be written.\ntype Decoder interface {\n\t// Decode should return the type of event, the decoded object, or an error.\n\t// An error will cause StreamWatcher to call Close(). Decode should block until\n\t// it has data or an error occurs.\n\tDecode() (action EventType, object runtime.Object, err error)\n\n\t// Close should close the underlying io.Reader, signalling to the source of\n\t// the stream that it is no longer being watched. Close() must cause any\n\t// outstanding call to Decode() to return with an error of some sort.\n\tClose()\n}\n\n// Reporter hides the details of how an error is turned into a runtime.Object for\n// reporting on a watch stream since this package may not import a higher level report.\ntype Reporter interface {\n\t// AsObject must convert err into a valid runtime.Object for the watch stream.\n\tAsObject(err error) runtime.Object\n}\n\n// StreamWatcher turns any stream for which you can write a Decoder interface\n// into a watch.Interface.\ntype StreamWatcher struct {\n\tsync.Mutex\n\tsource   Decoder\n\treporter Reporter\n\tresult   chan Event\n\tdone     chan struct{}\n}\n\n// NewStreamWatcher creates a StreamWatcher from the given decoder.\nfunc NewStreamWatcher(d Decoder, r Reporter) *StreamWatcher {\n\tsw := &StreamWatcher{\n\t\tsource:   d,\n\t\treporter: r,\n\t\t// It's easy for a consumer to add buffering via an extra\n\t\t// goroutine/channel, but impossible for them to remove it,\n\t\t// so nonbuffered is better.\n\t\tresult: make(chan Event),\n\t\t// If the watcher is externally stopped there is no receiver anymore\n\t\t// and the send operations on the result channel, especially the\n\t\t// error reporting might block forever.\n\t\t// Therefore a dedicated stop channel is used to resolve this blocking.\n\t\tdone: make(chan struct{}),\n\t}\n\tgo sw.receive()\n\treturn sw\n}\n\n// ResultChan implements Interface.\nfunc (sw *StreamWatcher) ResultChan() <-chan Event {\n\treturn sw.result\n}\n\n// Stop implements Interface.\nfunc (sw *StreamWatcher) Stop() {\n\t// Call Close() exactly once by locking and setting a flag.\n\tsw.Lock()\n\tdefer sw.Unlock()\n\t// closing a closed channel always panics, therefore check before closing\n\tselect {\n\tcase <-sw.done:\n\tdefault:\n\t\tclose(sw.done)\n\t\tsw.source.Close()\n\t}\n}\n\n// receive reads result from the decoder in a loop and sends down the result channel.\nfunc (sw *StreamWatcher) receive() {\n\tdefer utilruntime.HandleCrash()\n\tdefer close(sw.result)\n\tdefer sw.Stop()\n\tfor {\n\t\taction, obj, err := sw.source.Decode()\n\t\tif err != nil {\n\t\t\tswitch err {\n\t\t\tcase io.EOF:\n\t\t\t\t// watch closed normally\n\t\t\tcase io.ErrUnexpectedEOF:\n\t\t\t\tklog.V(1).Infof(\"Unexpected EOF during watch stream event decoding: %v\", err)\n\t\t\tdefault:\n\t\t\t\tif net.IsProbableEOF(err) || net.IsTimeout(err) {\n\t\t\t\t\tklog.V(5).Infof(\"Unable to decode an event from the watch stream: %v\", err)\n\t\t\t\t} else {\n\t\t\t\t\tselect {\n\t\t\t\t\tcase <-sw.done:\n\t\t\t\t\tcase sw.result <- Event{\n\t\t\t\t\t\tType:   Error,\n\t\t\t\t\t\tObject: sw.reporter.AsObject(fmt.Errorf(\"unable to decode an event from the watch stream: %v\", err)),\n\t\t\t\t\t}:\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn\n\t\t}\n\t\tselect {\n\t\tcase <-sw.done:\n\t\t\treturn\n\t\tcase sw.result <- Event{\n\t\t\tType:   action,\n\t\t\tObject: obj,\n\t\t}:\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/watch/watch.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage watch\n\nimport (\n\t\"fmt\"\n\t\"sync\"\n\n\t\"k8s.io/klog/v2\"\n\n\t\"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// Interface can be implemented by anything that knows how to watch and report changes.\ntype Interface interface {\n\t// Stop tells the producer that the consumer is done watching, so the\n\t// producer should stop sending events and close the result channel. The\n\t// consumer should keep watching for events until the result channel is\n\t// closed.\n\t//\n\t// Because some implementations may create channels when constructed, Stop\n\t// must always be called, even if the consumer has not yet called\n\t// ResultChan().\n\t//\n\t// Only the consumer should call Stop(), not the producer. If the producer\n\t// errors and needs to stop the watch prematurely, it should instead send\n\t// an error event and close the result channel.\n\tStop()\n\n\t// ResultChan returns a channel which will receive events from the event\n\t// producer. If an error occurs or Stop() is called, the producer must\n\t// close this channel and release any resources used by the watch.\n\t// Closing the result channel tells the consumer that no more events will be\n\t// sent.\n\tResultChan() <-chan Event\n}\n\n// EventType defines the possible types of events.\ntype EventType string\n\nconst (\n\tAdded    EventType = \"ADDED\"\n\tModified EventType = \"MODIFIED\"\n\tDeleted  EventType = \"DELETED\"\n\tBookmark EventType = \"BOOKMARK\"\n\tError    EventType = \"ERROR\"\n)\n\nvar (\n\tDefaultChanSize int32 = 100\n)\n\n// Event represents a single event to a watched resource.\n// +k8s:deepcopy-gen=true\ntype Event struct {\n\tType EventType\n\n\t// Object is:\n\t//  * If Type is Added or Modified: the new state of the object.\n\t//  * If Type is Deleted: the state of the object immediately before deletion.\n\t//  * If Type is Bookmark: the object (instance of a type being watched) where\n\t//    only ResourceVersion field is set. On successful restart of watch from a\n\t//    bookmark resourceVersion, client is guaranteed to not get repeat event\n\t//    nor miss any events.\n\t//  * If Type is Error: *api.Status is recommended; other types may make sense\n\t//    depending on context.\n\tObject runtime.Object\n}\n\ntype emptyWatch chan Event\n\n// NewEmptyWatch returns a watch interface that returns no results and is closed.\n// May be used in certain error conditions where no information is available but\n// an error is not warranted.\nfunc NewEmptyWatch() Interface {\n\tch := make(chan Event)\n\tclose(ch)\n\treturn emptyWatch(ch)\n}\n\n// Stop implements Interface\nfunc (w emptyWatch) Stop() {\n}\n\n// ResultChan implements Interface\nfunc (w emptyWatch) ResultChan() <-chan Event {\n\treturn chan Event(w)\n}\n\n// FakeWatcher lets you test anything that consumes a watch.Interface; threadsafe.\ntype FakeWatcher struct {\n\tresult  chan Event\n\tstopped bool\n\tsync.Mutex\n}\n\nfunc NewFake() *FakeWatcher {\n\treturn &FakeWatcher{\n\t\tresult: make(chan Event),\n\t}\n}\n\nfunc NewFakeWithChanSize(size int, blocking bool) *FakeWatcher {\n\treturn &FakeWatcher{\n\t\tresult: make(chan Event, size),\n\t}\n}\n\n// Stop implements Interface.Stop().\nfunc (f *FakeWatcher) Stop() {\n\tf.Lock()\n\tdefer f.Unlock()\n\tif !f.stopped {\n\t\tklog.V(4).Infof(\"Stopping fake watcher.\")\n\t\tclose(f.result)\n\t\tf.stopped = true\n\t}\n}\n\nfunc (f *FakeWatcher) IsStopped() bool {\n\tf.Lock()\n\tdefer f.Unlock()\n\treturn f.stopped\n}\n\n// Reset prepares the watcher to be reused.\nfunc (f *FakeWatcher) Reset() {\n\tf.Lock()\n\tdefer f.Unlock()\n\tf.stopped = false\n\tf.result = make(chan Event)\n}\n\nfunc (f *FakeWatcher) ResultChan() <-chan Event {\n\treturn f.result\n}\n\n// Add sends an add event.\nfunc (f *FakeWatcher) Add(obj runtime.Object) {\n\tf.result <- Event{Added, obj}\n}\n\n// Modify sends a modify event.\nfunc (f *FakeWatcher) Modify(obj runtime.Object) {\n\tf.result <- Event{Modified, obj}\n}\n\n// Delete sends a delete event.\nfunc (f *FakeWatcher) Delete(lastValue runtime.Object) {\n\tf.result <- Event{Deleted, lastValue}\n}\n\n// Error sends an Error event.\nfunc (f *FakeWatcher) Error(errValue runtime.Object) {\n\tf.result <- Event{Error, errValue}\n}\n\n// Action sends an event of the requested type, for table-based testing.\nfunc (f *FakeWatcher) Action(action EventType, obj runtime.Object) {\n\tf.result <- Event{action, obj}\n}\n\n// RaceFreeFakeWatcher lets you test anything that consumes a watch.Interface; threadsafe.\ntype RaceFreeFakeWatcher struct {\n\tresult  chan Event\n\tStopped bool\n\tsync.Mutex\n}\n\nfunc NewRaceFreeFake() *RaceFreeFakeWatcher {\n\treturn &RaceFreeFakeWatcher{\n\t\tresult: make(chan Event, DefaultChanSize),\n\t}\n}\n\n// Stop implements Interface.Stop().\nfunc (f *RaceFreeFakeWatcher) Stop() {\n\tf.Lock()\n\tdefer f.Unlock()\n\tif !f.Stopped {\n\t\tklog.V(4).Infof(\"Stopping fake watcher.\")\n\t\tclose(f.result)\n\t\tf.Stopped = true\n\t}\n}\n\nfunc (f *RaceFreeFakeWatcher) IsStopped() bool {\n\tf.Lock()\n\tdefer f.Unlock()\n\treturn f.Stopped\n}\n\n// Reset prepares the watcher to be reused.\nfunc (f *RaceFreeFakeWatcher) Reset() {\n\tf.Lock()\n\tdefer f.Unlock()\n\tf.Stopped = false\n\tf.result = make(chan Event, DefaultChanSize)\n}\n\nfunc (f *RaceFreeFakeWatcher) ResultChan() <-chan Event {\n\tf.Lock()\n\tdefer f.Unlock()\n\treturn f.result\n}\n\n// Add sends an add event.\nfunc (f *RaceFreeFakeWatcher) Add(obj runtime.Object) {\n\tf.Lock()\n\tdefer f.Unlock()\n\tif !f.Stopped {\n\t\tselect {\n\t\tcase f.result <- Event{Added, obj}:\n\t\t\treturn\n\t\tdefault:\n\t\t\tpanic(fmt.Errorf(\"channel full\"))\n\t\t}\n\t}\n}\n\n// Modify sends a modify event.\nfunc (f *RaceFreeFakeWatcher) Modify(obj runtime.Object) {\n\tf.Lock()\n\tdefer f.Unlock()\n\tif !f.Stopped {\n\t\tselect {\n\t\tcase f.result <- Event{Modified, obj}:\n\t\t\treturn\n\t\tdefault:\n\t\t\tpanic(fmt.Errorf(\"channel full\"))\n\t\t}\n\t}\n}\n\n// Delete sends a delete event.\nfunc (f *RaceFreeFakeWatcher) Delete(lastValue runtime.Object) {\n\tf.Lock()\n\tdefer f.Unlock()\n\tif !f.Stopped {\n\t\tselect {\n\t\tcase f.result <- Event{Deleted, lastValue}:\n\t\t\treturn\n\t\tdefault:\n\t\t\tpanic(fmt.Errorf(\"channel full\"))\n\t\t}\n\t}\n}\n\n// Error sends an Error event.\nfunc (f *RaceFreeFakeWatcher) Error(errValue runtime.Object) {\n\tf.Lock()\n\tdefer f.Unlock()\n\tif !f.Stopped {\n\t\tselect {\n\t\tcase f.result <- Event{Error, errValue}:\n\t\t\treturn\n\t\tdefault:\n\t\t\tpanic(fmt.Errorf(\"channel full\"))\n\t\t}\n\t}\n}\n\n// Action sends an event of the requested type, for table-based testing.\nfunc (f *RaceFreeFakeWatcher) Action(action EventType, obj runtime.Object) {\n\tf.Lock()\n\tdefer f.Unlock()\n\tif !f.Stopped {\n\t\tselect {\n\t\tcase f.result <- Event{action, obj}:\n\t\t\treturn\n\t\tdefault:\n\t\t\tpanic(fmt.Errorf(\"channel full\"))\n\t\t}\n\t}\n}\n\n// ProxyWatcher lets you wrap your channel in watch Interface. threadsafe.\ntype ProxyWatcher struct {\n\tresult chan Event\n\tstopCh chan struct{}\n\n\tmutex   sync.Mutex\n\tstopped bool\n}\n\nvar _ Interface = &ProxyWatcher{}\n\n// NewProxyWatcher creates new ProxyWatcher by wrapping a channel\nfunc NewProxyWatcher(ch chan Event) *ProxyWatcher {\n\treturn &ProxyWatcher{\n\t\tresult:  ch,\n\t\tstopCh:  make(chan struct{}),\n\t\tstopped: false,\n\t}\n}\n\n// Stop implements Interface\nfunc (pw *ProxyWatcher) Stop() {\n\tpw.mutex.Lock()\n\tdefer pw.mutex.Unlock()\n\tif !pw.stopped {\n\t\tpw.stopped = true\n\t\tclose(pw.stopCh)\n\t}\n}\n\n// Stopping returns true if Stop() has been called\nfunc (pw *ProxyWatcher) Stopping() bool {\n\tpw.mutex.Lock()\n\tdefer pw.mutex.Unlock()\n\treturn pw.stopped\n}\n\n// ResultChan implements Interface\nfunc (pw *ProxyWatcher) ResultChan() <-chan Event {\n\treturn pw.result\n}\n\n// StopChan returns stop channel\nfunc (pw *ProxyWatcher) StopChan() <-chan struct{} {\n\treturn pw.stopCh\n}\n\n// MockWatcher implements watch.Interface with mockable functions.\ntype MockWatcher struct {\n\tStopFunc       func()\n\tResultChanFunc func() <-chan Event\n}\n\nvar _ Interface = &MockWatcher{}\n\n// Stop calls StopFunc\nfunc (mw MockWatcher) Stop() {\n\tmw.StopFunc()\n}\n\n// ResultChan calls ResultChanFunc\nfunc (mw MockWatcher) ResultChan() <-chan Event {\n\treturn mw.ResultChanFunc()\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/pkg/watch/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage watch\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Event) DeepCopyInto(out *Event) {\n\t*out = *in\n\tif in.Object != nil {\n\t\tout.Object = in.Object.DeepCopyObject()\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Event.\nfunc (in *Event) DeepCopy() *Event {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Event)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/third_party/forked/golang/LICENSE",
    "content": "Copyright (c) 2009 The Go Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/third_party/forked/golang/PATENTS",
    "content": "Additional IP Rights Grant (Patents)\n\n\"This implementation\" means the copyrightable works distributed by\nGoogle as part of the Go project.\n\nGoogle hereby grants to You a perpetual, worldwide, non-exclusive,\nno-charge, royalty-free, irrevocable (except as stated in this section)\npatent license to make, have made, use, offer to sell, sell, import,\ntransfer and otherwise run, modify and propagate the contents of this\nimplementation of Go, where such license applies only to those patent\nclaims, both currently owned or controlled by Google and acquired in\nthe future, licensable by Google that are necessarily infringed by this\nimplementation of Go.  This grant does not include claims that would be\ninfringed only as a consequence of further modification of this\nimplementation.  If you or your agent or exclusive licensee institute or\norder or agree to the institution of patent litigation against any\nentity (including a cross-claim or counterclaim in a lawsuit) alleging\nthat this implementation of Go or any code incorporated within this\nimplementation of Go constitutes direct or contributory patent\ninfringement, or inducement of patent infringement, then any patent\nrights granted to you under this License for this implementation of Go\nshall terminate as of the date such litigation is filed.\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/third_party/forked/golang/json/OWNERS",
    "content": "# See the OWNERS docs at https://go.k8s.io/owners\n\napprovers:\n  - pwittrock\nreviewers:\n  - apelisse\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/third_party/forked/golang/json/fields.go",
    "content": "// Copyright 2013 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package json is forked from the Go standard library to enable us to find the\n// field of a struct that a given JSON key maps to.\npackage json\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strings\"\n\t\"sync\"\n\t\"unicode\"\n\t\"unicode/utf8\"\n)\n\nconst (\n\tpatchStrategyTagKey = \"patchStrategy\"\n\tpatchMergeKeyTagKey = \"patchMergeKey\"\n)\n\n// Finds the patchStrategy and patchMergeKey struct tag fields on a given\n// struct field given the struct type and the JSON name of the field.\n// It returns field type, a slice of patch strategies, merge key and error.\n// TODO: fix the returned errors to be introspectable.\nfunc LookupPatchMetadataForStruct(t reflect.Type, jsonField string) (\n\telemType reflect.Type, patchStrategies []string, patchMergeKey string, e error) {\n\tif t.Kind() == reflect.Pointer {\n\t\tt = t.Elem()\n\t}\n\n\tif t.Kind() != reflect.Struct {\n\t\te = fmt.Errorf(\"merging an object in json but data type is not struct, instead is: %s\",\n\t\t\tt.Kind().String())\n\t\treturn\n\t}\n\tjf := []byte(jsonField)\n\t// Find the field that the JSON library would use.\n\tvar f *field\n\tfields := cachedTypeFields(t)\n\tfor i := range fields {\n\t\tff := &fields[i]\n\t\tif bytes.Equal(ff.nameBytes, jf) {\n\t\t\tf = ff\n\t\t\tbreak\n\t\t}\n\t\t// Do case-insensitive comparison.\n\t\tif f == nil && ff.equalFold(ff.nameBytes, jf) {\n\t\t\tf = ff\n\t\t}\n\t}\n\tif f != nil {\n\t\t// Find the reflect.Value of the most preferential struct field.\n\t\ttjf := t.Field(f.index[0])\n\t\t// we must navigate down all the anonymously included structs in the chain\n\t\tfor i := 1; i < len(f.index); i++ {\n\t\t\ttjf = tjf.Type.Field(f.index[i])\n\t\t}\n\t\tpatchStrategy := tjf.Tag.Get(patchStrategyTagKey)\n\t\tpatchMergeKey = tjf.Tag.Get(patchMergeKeyTagKey)\n\t\tpatchStrategies = strings.Split(patchStrategy, \",\")\n\t\telemType = tjf.Type\n\t\treturn\n\t}\n\te = fmt.Errorf(\"unable to find api field in struct %s for the json field %q\", t.Name(), jsonField)\n\treturn\n}\n\n// A field represents a single field found in a struct.\ntype field struct {\n\tname      string\n\tnameBytes []byte                 // []byte(name)\n\tequalFold func(s, t []byte) bool // bytes.EqualFold or equivalent\n\n\ttag bool\n\t// index is the sequence of indexes from the containing type fields to this field.\n\t// it is a slice because anonymous structs will need multiple navigation steps to correctly\n\t// resolve the proper fields\n\tindex     []int\n\ttyp       reflect.Type\n\tomitEmpty bool\n\tquoted    bool\n}\n\nfunc (f field) String() string {\n\treturn fmt.Sprintf(\"{name: %s, type: %v, tag: %v, index: %v, omitEmpty: %v, quoted: %v}\", f.name, f.typ, f.tag, f.index, f.omitEmpty, f.quoted)\n}\n\nfunc fillField(f field) field {\n\tf.nameBytes = []byte(f.name)\n\tf.equalFold = foldFunc(f.nameBytes)\n\treturn f\n}\n\n// byName sorts field by name, breaking ties with depth,\n// then breaking ties with \"name came from json tag\", then\n// breaking ties with index sequence.\ntype byName []field\n\nfunc (x byName) Len() int { return len(x) }\n\nfunc (x byName) Swap(i, j int) { x[i], x[j] = x[j], x[i] }\n\nfunc (x byName) Less(i, j int) bool {\n\tif x[i].name != x[j].name {\n\t\treturn x[i].name < x[j].name\n\t}\n\tif len(x[i].index) != len(x[j].index) {\n\t\treturn len(x[i].index) < len(x[j].index)\n\t}\n\tif x[i].tag != x[j].tag {\n\t\treturn x[i].tag\n\t}\n\treturn byIndex(x).Less(i, j)\n}\n\n// byIndex sorts field by index sequence.\ntype byIndex []field\n\nfunc (x byIndex) Len() int { return len(x) }\n\nfunc (x byIndex) Swap(i, j int) { x[i], x[j] = x[j], x[i] }\n\nfunc (x byIndex) Less(i, j int) bool {\n\tfor k, xik := range x[i].index {\n\t\tif k >= len(x[j].index) {\n\t\t\treturn false\n\t\t}\n\t\tif xik != x[j].index[k] {\n\t\t\treturn xik < x[j].index[k]\n\t\t}\n\t}\n\treturn len(x[i].index) < len(x[j].index)\n}\n\n// typeFields returns a list of fields that JSON should recognize for the given type.\n// The algorithm is breadth-first search over the set of structs to include - the top struct\n// and then any reachable anonymous structs.\nfunc typeFields(t reflect.Type) []field {\n\t// Anonymous fields to explore at the current level and the next.\n\tcurrent := []field{}\n\tnext := []field{{typ: t}}\n\n\t// Count of queued names for current level and the next.\n\tcount := map[reflect.Type]int{}\n\tnextCount := map[reflect.Type]int{}\n\n\t// Types already visited at an earlier level.\n\tvisited := map[reflect.Type]bool{}\n\n\t// Fields found.\n\tvar fields []field\n\n\tfor len(next) > 0 {\n\t\tcurrent, next = next, current[:0]\n\t\tcount, nextCount = nextCount, map[reflect.Type]int{}\n\n\t\tfor _, f := range current {\n\t\t\tif visited[f.typ] {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tvisited[f.typ] = true\n\n\t\t\t// Scan f.typ for fields to include.\n\t\t\tfor i := 0; i < f.typ.NumField(); i++ {\n\t\t\t\tsf := f.typ.Field(i)\n\t\t\t\tif sf.PkgPath != \"\" { // unexported\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\ttag := sf.Tag.Get(\"json\")\n\t\t\t\tif tag == \"-\" {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tname, opts := parseTag(tag)\n\t\t\t\tif !isValidTag(name) {\n\t\t\t\t\tname = \"\"\n\t\t\t\t}\n\t\t\t\tindex := make([]int, len(f.index)+1)\n\t\t\t\tcopy(index, f.index)\n\t\t\t\tindex[len(f.index)] = i\n\n\t\t\t\tft := sf.Type\n\t\t\t\tif ft.Name() == \"\" && ft.Kind() == reflect.Pointer {\n\t\t\t\t\t// Follow pointer.\n\t\t\t\t\tft = ft.Elem()\n\t\t\t\t}\n\n\t\t\t\t// Record found field and index sequence.\n\t\t\t\tif name != \"\" || !sf.Anonymous || ft.Kind() != reflect.Struct {\n\t\t\t\t\ttagged := name != \"\"\n\t\t\t\t\tif name == \"\" {\n\t\t\t\t\t\tname = sf.Name\n\t\t\t\t\t}\n\t\t\t\t\tfields = append(fields, fillField(field{\n\t\t\t\t\t\tname:      name,\n\t\t\t\t\t\ttag:       tagged,\n\t\t\t\t\t\tindex:     index,\n\t\t\t\t\t\ttyp:       ft,\n\t\t\t\t\t\tomitEmpty: opts.Contains(\"omitempty\"),\n\t\t\t\t\t\tquoted:    opts.Contains(\"string\"),\n\t\t\t\t\t}))\n\t\t\t\t\tif count[f.typ] > 1 {\n\t\t\t\t\t\t// If there were multiple instances, add a second,\n\t\t\t\t\t\t// so that the annihilation code will see a duplicate.\n\t\t\t\t\t\t// It only cares about the distinction between 1 or 2,\n\t\t\t\t\t\t// so don't bother generating any more copies.\n\t\t\t\t\t\tfields = append(fields, fields[len(fields)-1])\n\t\t\t\t\t}\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\t// Record new anonymous struct to explore in next round.\n\t\t\t\tnextCount[ft]++\n\t\t\t\tif nextCount[ft] == 1 {\n\t\t\t\t\tnext = append(next, fillField(field{name: ft.Name(), index: index, typ: ft}))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tsort.Sort(byName(fields))\n\n\t// Delete all fields that are hidden by the Go rules for embedded fields,\n\t// except that fields with JSON tags are promoted.\n\n\t// The fields are sorted in primary order of name, secondary order\n\t// of field index length. Loop over names; for each name, delete\n\t// hidden fields by choosing the one dominant field that survives.\n\tout := fields[:0]\n\tfor advance, i := 0, 0; i < len(fields); i += advance {\n\t\t// One iteration per name.\n\t\t// Find the sequence of fields with the name of this first field.\n\t\tfi := fields[i]\n\t\tname := fi.name\n\t\tfor advance = 1; i+advance < len(fields); advance++ {\n\t\t\tfj := fields[i+advance]\n\t\t\tif fj.name != name {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif advance == 1 { // Only one field with this name\n\t\t\tout = append(out, fi)\n\t\t\tcontinue\n\t\t}\n\t\tdominant, ok := dominantField(fields[i : i+advance])\n\t\tif ok {\n\t\t\tout = append(out, dominant)\n\t\t}\n\t}\n\n\tfields = out\n\tsort.Sort(byIndex(fields))\n\n\treturn fields\n}\n\n// dominantField looks through the fields, all of which are known to\n// have the same name, to find the single field that dominates the\n// others using Go's embedding rules, modified by the presence of\n// JSON tags. If there are multiple top-level fields, the boolean\n// will be false: This condition is an error in Go and we skip all\n// the fields.\nfunc dominantField(fields []field) (field, bool) {\n\t// The fields are sorted in increasing index-length order. The winner\n\t// must therefore be one with the shortest index length. Drop all\n\t// longer entries, which is easy: just truncate the slice.\n\tlength := len(fields[0].index)\n\ttagged := -1 // Index of first tagged field.\n\tfor i, f := range fields {\n\t\tif len(f.index) > length {\n\t\t\tfields = fields[:i]\n\t\t\tbreak\n\t\t}\n\t\tif f.tag {\n\t\t\tif tagged >= 0 {\n\t\t\t\t// Multiple tagged fields at the same level: conflict.\n\t\t\t\t// Return no field.\n\t\t\t\treturn field{}, false\n\t\t\t}\n\t\t\ttagged = i\n\t\t}\n\t}\n\tif tagged >= 0 {\n\t\treturn fields[tagged], true\n\t}\n\t// All remaining fields have the same length. If there's more than one,\n\t// we have a conflict (two fields named \"X\" at the same level) and we\n\t// return no field.\n\tif len(fields) > 1 {\n\t\treturn field{}, false\n\t}\n\treturn fields[0], true\n}\n\nvar fieldCache struct {\n\tsync.RWMutex\n\tm map[reflect.Type][]field\n}\n\n// cachedTypeFields is like typeFields but uses a cache to avoid repeated work.\nfunc cachedTypeFields(t reflect.Type) []field {\n\tfieldCache.RLock()\n\tf := fieldCache.m[t]\n\tfieldCache.RUnlock()\n\tif f != nil {\n\t\treturn f\n\t}\n\n\t// Compute fields without lock.\n\t// Might duplicate effort but won't hold other computations back.\n\tf = typeFields(t)\n\tif f == nil {\n\t\tf = []field{}\n\t}\n\n\tfieldCache.Lock()\n\tif fieldCache.m == nil {\n\t\tfieldCache.m = map[reflect.Type][]field{}\n\t}\n\tfieldCache.m[t] = f\n\tfieldCache.Unlock()\n\treturn f\n}\n\nfunc isValidTag(s string) bool {\n\tif s == \"\" {\n\t\treturn false\n\t}\n\tfor _, c := range s {\n\t\tswitch {\n\t\tcase strings.ContainsRune(\"!#$%&()*+-./:<=>?@[]^_{|}~ \", c):\n\t\t\t// Backslash and quote chars are reserved, but\n\t\t\t// otherwise any punctuation chars are allowed\n\t\t\t// in a tag name.\n\t\tdefault:\n\t\t\tif !unicode.IsLetter(c) && !unicode.IsDigit(c) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\treturn true\n}\n\nconst (\n\tcaseMask     = ^byte(0x20) // Mask to ignore case in ASCII.\n\tkelvin       = '\\u212a'\n\tsmallLongEss = '\\u017f'\n)\n\n// foldFunc returns one of four different case folding equivalence\n// functions, from most general (and slow) to fastest:\n//\n// 1) bytes.EqualFold, if the key s contains any non-ASCII UTF-8\n// 2) equalFoldRight, if s contains special folding ASCII ('k', 'K', 's', 'S')\n// 3) asciiEqualFold, no special, but includes non-letters (including _)\n// 4) simpleLetterEqualFold, no specials, no non-letters.\n//\n// The letters S and K are special because they map to 3 runes, not just 2:\n//  * S maps to s and to U+017F 'ſ' Latin small letter long s\n//  * k maps to K and to U+212A 'K' Kelvin sign\n// See http://play.golang.org/p/tTxjOc0OGo\n//\n// The returned function is specialized for matching against s and\n// should only be given s. It's not curried for performance reasons.\nfunc foldFunc(s []byte) func(s, t []byte) bool {\n\tnonLetter := false\n\tspecial := false // special letter\n\tfor _, b := range s {\n\t\tif b >= utf8.RuneSelf {\n\t\t\treturn bytes.EqualFold\n\t\t}\n\t\tupper := b & caseMask\n\t\tif upper < 'A' || upper > 'Z' {\n\t\t\tnonLetter = true\n\t\t} else if upper == 'K' || upper == 'S' {\n\t\t\t// See above for why these letters are special.\n\t\t\tspecial = true\n\t\t}\n\t}\n\tif special {\n\t\treturn equalFoldRight\n\t}\n\tif nonLetter {\n\t\treturn asciiEqualFold\n\t}\n\treturn simpleLetterEqualFold\n}\n\n// equalFoldRight is a specialization of bytes.EqualFold when s is\n// known to be all ASCII (including punctuation), but contains an 's',\n// 'S', 'k', or 'K', requiring a Unicode fold on the bytes in t.\n// See comments on foldFunc.\nfunc equalFoldRight(s, t []byte) bool {\n\tfor _, sb := range s {\n\t\tif len(t) == 0 {\n\t\t\treturn false\n\t\t}\n\t\ttb := t[0]\n\t\tif tb < utf8.RuneSelf {\n\t\t\tif sb != tb {\n\t\t\t\tsbUpper := sb & caseMask\n\t\t\t\tif 'A' <= sbUpper && sbUpper <= 'Z' {\n\t\t\t\t\tif sbUpper != tb&caseMask {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tt = t[1:]\n\t\t\tcontinue\n\t\t}\n\t\t// sb is ASCII and t is not. t must be either kelvin\n\t\t// sign or long s; sb must be s, S, k, or K.\n\t\ttr, size := utf8.DecodeRune(t)\n\t\tswitch sb {\n\t\tcase 's', 'S':\n\t\t\tif tr != smallLongEss {\n\t\t\t\treturn false\n\t\t\t}\n\t\tcase 'k', 'K':\n\t\t\tif tr != kelvin {\n\t\t\t\treturn false\n\t\t\t}\n\t\tdefault:\n\t\t\treturn false\n\t\t}\n\t\tt = t[size:]\n\n\t}\n\tif len(t) > 0 {\n\t\treturn false\n\t}\n\treturn true\n}\n\n// asciiEqualFold is a specialization of bytes.EqualFold for use when\n// s is all ASCII (but may contain non-letters) and contains no\n// special-folding letters.\n// See comments on foldFunc.\nfunc asciiEqualFold(s, t []byte) bool {\n\tif len(s) != len(t) {\n\t\treturn false\n\t}\n\tfor i, sb := range s {\n\t\ttb := t[i]\n\t\tif sb == tb {\n\t\t\tcontinue\n\t\t}\n\t\tif ('a' <= sb && sb <= 'z') || ('A' <= sb && sb <= 'Z') {\n\t\t\tif sb&caseMask != tb&caseMask {\n\t\t\t\treturn false\n\t\t\t}\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// simpleLetterEqualFold is a specialization of bytes.EqualFold for\n// use when s is all ASCII letters (no underscores, etc) and also\n// doesn't contain 'k', 'K', 's', or 'S'.\n// See comments on foldFunc.\nfunc simpleLetterEqualFold(s, t []byte) bool {\n\tif len(s) != len(t) {\n\t\treturn false\n\t}\n\tfor i, b := range s {\n\t\tif b&caseMask != t[i]&caseMask {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// tagOptions is the string following a comma in a struct field's \"json\"\n// tag, or the empty string. It does not include the leading comma.\ntype tagOptions string\n\n// parseTag splits a struct field's json tag into its name and\n// comma-separated options.\nfunc parseTag(tag string) (string, tagOptions) {\n\tif idx := strings.Index(tag, \",\"); idx != -1 {\n\t\treturn tag[:idx], tagOptions(tag[idx+1:])\n\t}\n\treturn tag, tagOptions(\"\")\n}\n\n// Contains reports whether a comma-separated list of options\n// contains a particular substr flag. substr must be surrounded by a\n// string boundary or commas.\nfunc (o tagOptions) Contains(optionName string) bool {\n\tif len(o) == 0 {\n\t\treturn false\n\t}\n\ts := string(o)\n\tfor s != \"\" {\n\t\tvar next string\n\t\ti := strings.Index(s, \",\")\n\t\tif i >= 0 {\n\t\t\ts, next = s[:i], s[i+1:]\n\t\t}\n\t\tif s == optionName {\n\t\t\treturn true\n\t\t}\n\t\ts = next\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "vendor/k8s.io/apimachinery/third_party/forked/golang/reflect/deep_equal.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package reflect is a fork of go's standard library reflection package, which\n// allows for deep equal with equality functions defined.\npackage reflect\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n)\n\n// Equalities is a map from type to a function comparing two values of\n// that type.\ntype Equalities map[reflect.Type]reflect.Value\n\n// For convenience, panics on errors\nfunc EqualitiesOrDie(funcs ...interface{}) Equalities {\n\te := Equalities{}\n\tif err := e.AddFuncs(funcs...); err != nil {\n\t\tpanic(err)\n\t}\n\treturn e\n}\n\n// AddFuncs is a shortcut for multiple calls to AddFunc.\nfunc (e Equalities) AddFuncs(funcs ...interface{}) error {\n\tfor _, f := range funcs {\n\t\tif err := e.AddFunc(f); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// AddFunc uses func as an equality function: it must take\n// two parameters of the same type, and return a boolean.\nfunc (e Equalities) AddFunc(eqFunc interface{}) error {\n\tfv := reflect.ValueOf(eqFunc)\n\tft := fv.Type()\n\tif ft.Kind() != reflect.Func {\n\t\treturn fmt.Errorf(\"expected func, got: %v\", ft)\n\t}\n\tif ft.NumIn() != 2 {\n\t\treturn fmt.Errorf(\"expected two 'in' params, got: %v\", ft)\n\t}\n\tif ft.NumOut() != 1 {\n\t\treturn fmt.Errorf(\"expected one 'out' param, got: %v\", ft)\n\t}\n\tif ft.In(0) != ft.In(1) {\n\t\treturn fmt.Errorf(\"expected arg 1 and 2 to have same type, but got %v\", ft)\n\t}\n\tvar forReturnType bool\n\tboolType := reflect.TypeOf(forReturnType)\n\tif ft.Out(0) != boolType {\n\t\treturn fmt.Errorf(\"expected bool return, got: %v\", ft)\n\t}\n\te[ft.In(0)] = fv\n\treturn nil\n}\n\n// Below here is forked from go's reflect/deepequal.go\n\n// During deepValueEqual, must keep track of checks that are\n// in progress.  The comparison algorithm assumes that all\n// checks in progress are true when it reencounters them.\n// Visited comparisons are stored in a map indexed by visit.\ntype visit struct {\n\ta1  uintptr\n\ta2  uintptr\n\ttyp reflect.Type\n}\n\n// unexportedTypePanic is thrown when you use this DeepEqual on something that has an\n// unexported type. It indicates a programmer error, so should not occur at runtime,\n// which is why it's not public and thus impossible to catch.\ntype unexportedTypePanic []reflect.Type\n\nfunc (u unexportedTypePanic) Error() string { return u.String() }\nfunc (u unexportedTypePanic) String() string {\n\tstrs := make([]string, len(u))\n\tfor i, t := range u {\n\t\tstrs[i] = fmt.Sprintf(\"%v\", t)\n\t}\n\treturn \"an unexported field was encountered, nested like this: \" + strings.Join(strs, \" -> \")\n}\n\nfunc makeUsefulPanic(v reflect.Value) {\n\tif x := recover(); x != nil {\n\t\tif u, ok := x.(unexportedTypePanic); ok {\n\t\t\tu = append(unexportedTypePanic{v.Type()}, u...)\n\t\t\tx = u\n\t\t}\n\t\tpanic(x)\n\t}\n}\n\n// Tests for deep equality using reflected types. The map argument tracks\n// comparisons that have already been seen, which allows short circuiting on\n// recursive types.\n// equateNilAndEmpty controls whether empty maps/slices are equivalent to nil\nfunc (e Equalities) deepValueEqual(v1, v2 reflect.Value, visited map[visit]bool, equateNilAndEmpty bool, depth int) bool {\n\tdefer makeUsefulPanic(v1)\n\n\tif !v1.IsValid() || !v2.IsValid() {\n\t\treturn v1.IsValid() == v2.IsValid()\n\t}\n\tif v1.Type() != v2.Type() {\n\t\treturn false\n\t}\n\tif fv, ok := e[v1.Type()]; ok {\n\t\treturn fv.Call([]reflect.Value{v1, v2})[0].Bool()\n\t}\n\n\thard := func(k reflect.Kind) bool {\n\t\tswitch k {\n\t\tcase reflect.Array, reflect.Map, reflect.Slice, reflect.Struct:\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tif v1.CanAddr() && v2.CanAddr() && hard(v1.Kind()) {\n\t\taddr1 := v1.UnsafeAddr()\n\t\taddr2 := v2.UnsafeAddr()\n\t\tif addr1 > addr2 {\n\t\t\t// Canonicalize order to reduce number of entries in visited.\n\t\t\taddr1, addr2 = addr2, addr1\n\t\t}\n\n\t\t// Short circuit if references are identical ...\n\t\tif addr1 == addr2 {\n\t\t\treturn true\n\t\t}\n\n\t\t// ... or already seen\n\t\ttyp := v1.Type()\n\t\tv := visit{addr1, addr2, typ}\n\t\tif visited[v] {\n\t\t\treturn true\n\t\t}\n\n\t\t// Remember for later.\n\t\tvisited[v] = true\n\t}\n\n\tswitch v1.Kind() {\n\tcase reflect.Array:\n\t\t// We don't need to check length here because length is part of\n\t\t// an array's type, which has already been filtered for.\n\t\tfor i := 0; i < v1.Len(); i++ {\n\t\t\tif !e.deepValueEqual(v1.Index(i), v2.Index(i), visited, equateNilAndEmpty, depth+1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\tcase reflect.Slice:\n\t\tif equateNilAndEmpty {\n\t\t\tif (v1.IsNil() || v1.Len() == 0) != (v2.IsNil() || v2.Len() == 0) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tif v1.IsNil() || v1.Len() == 0 {\n\t\t\t\treturn true\n\t\t\t}\n\t\t} else {\n\t\t\tif v1.IsNil() != v2.IsNil() {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Optimize nil and empty cases\n\t\t\t// Two lists that are BOTH nil are equal\n\t\t\t// No need to check v2 is nil since v1.IsNil == v2.IsNil from above\n\t\t\tif v1.IsNil() {\n\t\t\t\treturn true\n\t\t\t}\n\n\t\t\t// Two lists that are both empty and both non nil are equal\n\t\t\tif v1.Len() == 0 || v2.Len() == 0 {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\tif v1.Len() != v2.Len() {\n\t\t\treturn false\n\t\t}\n\t\tif v1.Pointer() == v2.Pointer() {\n\t\t\treturn true\n\t\t}\n\t\tfor i := 0; i < v1.Len(); i++ {\n\t\t\tif !e.deepValueEqual(v1.Index(i), v2.Index(i), visited, equateNilAndEmpty, depth+1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\tcase reflect.Interface:\n\t\tif v1.IsNil() || v2.IsNil() {\n\t\t\treturn v1.IsNil() == v2.IsNil()\n\t\t}\n\t\treturn e.deepValueEqual(v1.Elem(), v2.Elem(), visited, equateNilAndEmpty, depth+1)\n\tcase reflect.Ptr:\n\t\treturn e.deepValueEqual(v1.Elem(), v2.Elem(), visited, equateNilAndEmpty, depth+1)\n\tcase reflect.Struct:\n\t\tfor i, n := 0, v1.NumField(); i < n; i++ {\n\t\t\tif !e.deepValueEqual(v1.Field(i), v2.Field(i), visited, equateNilAndEmpty, depth+1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\tcase reflect.Map:\n\t\tif equateNilAndEmpty {\n\t\t\tif (v1.IsNil() || v1.Len() == 0) != (v2.IsNil() || v2.Len() == 0) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif v1.IsNil() || v1.Len() == 0 {\n\t\t\t\treturn true\n\t\t\t}\n\t\t} else {\n\t\t\tif v1.IsNil() != v2.IsNil() {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Optimize nil and empty cases\n\t\t\t// Two maps that are BOTH nil are equal\n\t\t\t// No need to check v2 is nil since v1.IsNil == v2.IsNil from above\n\t\t\tif v1.IsNil() {\n\t\t\t\treturn true\n\t\t\t}\n\n\t\t\t// Two maps that are both empty and both non nil are equal\n\t\t\tif v1.Len() == 0 || v2.Len() == 0 {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\tif v1.Len() != v2.Len() {\n\t\t\treturn false\n\t\t}\n\t\tif v1.Pointer() == v2.Pointer() {\n\t\t\treturn true\n\t\t}\n\t\tfor _, k := range v1.MapKeys() {\n\t\t\tif !e.deepValueEqual(v1.MapIndex(k), v2.MapIndex(k), visited, equateNilAndEmpty, depth+1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\tcase reflect.Func:\n\t\tif v1.IsNil() && v2.IsNil() {\n\t\t\treturn true\n\t\t}\n\t\t// Can't do better than this:\n\t\treturn false\n\tdefault:\n\t\t// Normal equality suffices\n\t\tif !v1.CanInterface() || !v2.CanInterface() {\n\t\t\tpanic(unexportedTypePanic{})\n\t\t}\n\t\treturn v1.Interface() == v2.Interface()\n\t}\n}\n\n// DeepEqual is like reflect.DeepEqual, but focused on semantic equality\n// instead of memory equality.\n//\n// It will use e's equality functions if it finds types that match.\n//\n// An empty slice *is* equal to a nil slice for our purposes; same for maps.\n//\n// Unexported field members cannot be compared and will cause an informative panic; you must add an Equality\n// function for these types.\nfunc (e Equalities) DeepEqual(a1, a2 interface{}) bool {\n\treturn e.deepEqual(a1, a2, true)\n}\n\nfunc (e Equalities) DeepEqualWithNilDifferentFromEmpty(a1, a2 interface{}) bool {\n\treturn e.deepEqual(a1, a2, false)\n}\n\nfunc (e Equalities) deepEqual(a1, a2 interface{}, equateNilAndEmpty bool) bool {\n\tif a1 == nil || a2 == nil {\n\t\treturn a1 == a2\n\t}\n\tv1 := reflect.ValueOf(a1)\n\tv2 := reflect.ValueOf(a2)\n\tif v1.Type() != v2.Type() {\n\t\treturn false\n\t}\n\treturn e.deepValueEqual(v1, v2, make(map[visit]bool), equateNilAndEmpty, 0)\n}\n\nfunc (e Equalities) deepValueDerive(v1, v2 reflect.Value, visited map[visit]bool, depth int) bool {\n\tdefer makeUsefulPanic(v1)\n\n\tif !v1.IsValid() || !v2.IsValid() {\n\t\treturn v1.IsValid() == v2.IsValid()\n\t}\n\tif v1.Type() != v2.Type() {\n\t\treturn false\n\t}\n\tif fv, ok := e[v1.Type()]; ok {\n\t\treturn fv.Call([]reflect.Value{v1, v2})[0].Bool()\n\t}\n\n\thard := func(k reflect.Kind) bool {\n\t\tswitch k {\n\t\tcase reflect.Array, reflect.Map, reflect.Slice, reflect.Struct:\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tif v1.CanAddr() && v2.CanAddr() && hard(v1.Kind()) {\n\t\taddr1 := v1.UnsafeAddr()\n\t\taddr2 := v2.UnsafeAddr()\n\t\tif addr1 > addr2 {\n\t\t\t// Canonicalize order to reduce number of entries in visited.\n\t\t\taddr1, addr2 = addr2, addr1\n\t\t}\n\n\t\t// Short circuit if references are identical ...\n\t\tif addr1 == addr2 {\n\t\t\treturn true\n\t\t}\n\n\t\t// ... or already seen\n\t\ttyp := v1.Type()\n\t\tv := visit{addr1, addr2, typ}\n\t\tif visited[v] {\n\t\t\treturn true\n\t\t}\n\n\t\t// Remember for later.\n\t\tvisited[v] = true\n\t}\n\n\tswitch v1.Kind() {\n\tcase reflect.Array:\n\t\t// We don't need to check length here because length is part of\n\t\t// an array's type, which has already been filtered for.\n\t\tfor i := 0; i < v1.Len(); i++ {\n\t\t\tif !e.deepValueDerive(v1.Index(i), v2.Index(i), visited, depth+1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\tcase reflect.Slice:\n\t\tif v1.IsNil() || v1.Len() == 0 {\n\t\t\treturn true\n\t\t}\n\t\tif v1.Len() > v2.Len() {\n\t\t\treturn false\n\t\t}\n\t\tif v1.Pointer() == v2.Pointer() {\n\t\t\treturn true\n\t\t}\n\t\tfor i := 0; i < v1.Len(); i++ {\n\t\t\tif !e.deepValueDerive(v1.Index(i), v2.Index(i), visited, depth+1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\tcase reflect.String:\n\t\tif v1.Len() == 0 {\n\t\t\treturn true\n\t\t}\n\t\tif v1.Len() > v2.Len() {\n\t\t\treturn false\n\t\t}\n\t\treturn v1.String() == v2.String()\n\tcase reflect.Interface:\n\t\tif v1.IsNil() {\n\t\t\treturn true\n\t\t}\n\t\treturn e.deepValueDerive(v1.Elem(), v2.Elem(), visited, depth+1)\n\tcase reflect.Pointer:\n\t\tif v1.IsNil() {\n\t\t\treturn true\n\t\t}\n\t\treturn e.deepValueDerive(v1.Elem(), v2.Elem(), visited, depth+1)\n\tcase reflect.Struct:\n\t\tfor i, n := 0, v1.NumField(); i < n; i++ {\n\t\t\tif !e.deepValueDerive(v1.Field(i), v2.Field(i), visited, depth+1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\tcase reflect.Map:\n\t\tif v1.IsNil() || v1.Len() == 0 {\n\t\t\treturn true\n\t\t}\n\t\tif v1.Len() > v2.Len() {\n\t\t\treturn false\n\t\t}\n\t\tif v1.Pointer() == v2.Pointer() {\n\t\t\treturn true\n\t\t}\n\t\tfor _, k := range v1.MapKeys() {\n\t\t\tif !e.deepValueDerive(v1.MapIndex(k), v2.MapIndex(k), visited, depth+1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\tcase reflect.Func:\n\t\tif v1.IsNil() && v2.IsNil() {\n\t\t\treturn true\n\t\t}\n\t\t// Can't do better than this:\n\t\treturn false\n\tdefault:\n\t\t// Normal equality suffices\n\t\tif !v1.CanInterface() || !v2.CanInterface() {\n\t\t\tpanic(unexportedTypePanic{})\n\t\t}\n\t\treturn v1.Interface() == v2.Interface()\n\t}\n}\n\n// DeepDerivative is similar to DeepEqual except that unset fields in a1 are\n// ignored (not compared). This allows us to focus on the fields that matter to\n// the semantic comparison.\n//\n// The unset fields include a nil pointer and an empty string.\nfunc (e Equalities) DeepDerivative(a1, a2 interface{}) bool {\n\tif a1 == nil {\n\t\treturn true\n\t}\n\tv1 := reflect.ValueOf(a1)\n\tv2 := reflect.ValueOf(a2)\n\tif v1.Type() != v2.Type() {\n\t\treturn false\n\t}\n\treturn e.deepValueDerive(v1, v2, make(map[visit]bool), 0)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/OWNERS",
    "content": "# See the OWNERS docs at https://go.k8s.io/owners\n\napprovers:\n  - apelisse\n  - jpbetz\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/auditannotation.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// AuditAnnotationApplyConfiguration represents a declarative configuration of the AuditAnnotation type for use\n// with apply.\ntype AuditAnnotationApplyConfiguration struct {\n\tKey             *string `json:\"key,omitempty\"`\n\tValueExpression *string `json:\"valueExpression,omitempty\"`\n}\n\n// AuditAnnotationApplyConfiguration constructs a declarative configuration of the AuditAnnotation type for use with\n// apply.\nfunc AuditAnnotation() *AuditAnnotationApplyConfiguration {\n\treturn &AuditAnnotationApplyConfiguration{}\n}\n\n// WithKey sets the Key field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Key field is set to the value of the last call.\nfunc (b *AuditAnnotationApplyConfiguration) WithKey(value string) *AuditAnnotationApplyConfiguration {\n\tb.Key = &value\n\treturn b\n}\n\n// WithValueExpression sets the ValueExpression field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ValueExpression field is set to the value of the last call.\nfunc (b *AuditAnnotationApplyConfiguration) WithValueExpression(value string) *AuditAnnotationApplyConfiguration {\n\tb.ValueExpression = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/expressionwarning.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ExpressionWarningApplyConfiguration represents a declarative configuration of the ExpressionWarning type for use\n// with apply.\ntype ExpressionWarningApplyConfiguration struct {\n\tFieldRef *string `json:\"fieldRef,omitempty\"`\n\tWarning  *string `json:\"warning,omitempty\"`\n}\n\n// ExpressionWarningApplyConfiguration constructs a declarative configuration of the ExpressionWarning type for use with\n// apply.\nfunc ExpressionWarning() *ExpressionWarningApplyConfiguration {\n\treturn &ExpressionWarningApplyConfiguration{}\n}\n\n// WithFieldRef sets the FieldRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FieldRef field is set to the value of the last call.\nfunc (b *ExpressionWarningApplyConfiguration) WithFieldRef(value string) *ExpressionWarningApplyConfiguration {\n\tb.FieldRef = &value\n\treturn b\n}\n\n// WithWarning sets the Warning field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Warning field is set to the value of the last call.\nfunc (b *ExpressionWarningApplyConfiguration) WithWarning(value string) *ExpressionWarningApplyConfiguration {\n\tb.Warning = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/matchcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// MatchConditionApplyConfiguration represents a declarative configuration of the MatchCondition type for use\n// with apply.\ntype MatchConditionApplyConfiguration struct {\n\tName       *string `json:\"name,omitempty\"`\n\tExpression *string `json:\"expression,omitempty\"`\n}\n\n// MatchConditionApplyConfiguration constructs a declarative configuration of the MatchCondition type for use with\n// apply.\nfunc MatchCondition() *MatchConditionApplyConfiguration {\n\treturn &MatchConditionApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *MatchConditionApplyConfiguration) WithName(value string) *MatchConditionApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithExpression sets the Expression field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Expression field is set to the value of the last call.\nfunc (b *MatchConditionApplyConfiguration) WithExpression(value string) *MatchConditionApplyConfiguration {\n\tb.Expression = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/matchresources.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tadmissionregistrationv1 \"k8s.io/api/admissionregistration/v1\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// MatchResourcesApplyConfiguration represents a declarative configuration of the MatchResources type for use\n// with apply.\ntype MatchResourcesApplyConfiguration struct {\n\tNamespaceSelector    *metav1.LabelSelectorApplyConfiguration     `json:\"namespaceSelector,omitempty\"`\n\tObjectSelector       *metav1.LabelSelectorApplyConfiguration     `json:\"objectSelector,omitempty\"`\n\tResourceRules        []NamedRuleWithOperationsApplyConfiguration `json:\"resourceRules,omitempty\"`\n\tExcludeResourceRules []NamedRuleWithOperationsApplyConfiguration `json:\"excludeResourceRules,omitempty\"`\n\tMatchPolicy          *admissionregistrationv1.MatchPolicyType    `json:\"matchPolicy,omitempty\"`\n}\n\n// MatchResourcesApplyConfiguration constructs a declarative configuration of the MatchResources type for use with\n// apply.\nfunc MatchResources() *MatchResourcesApplyConfiguration {\n\treturn &MatchResourcesApplyConfiguration{}\n}\n\n// WithNamespaceSelector sets the NamespaceSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NamespaceSelector field is set to the value of the last call.\nfunc (b *MatchResourcesApplyConfiguration) WithNamespaceSelector(value *metav1.LabelSelectorApplyConfiguration) *MatchResourcesApplyConfiguration {\n\tb.NamespaceSelector = value\n\treturn b\n}\n\n// WithObjectSelector sets the ObjectSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObjectSelector field is set to the value of the last call.\nfunc (b *MatchResourcesApplyConfiguration) WithObjectSelector(value *metav1.LabelSelectorApplyConfiguration) *MatchResourcesApplyConfiguration {\n\tb.ObjectSelector = value\n\treturn b\n}\n\n// WithResourceRules adds the given value to the ResourceRules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ResourceRules field.\nfunc (b *MatchResourcesApplyConfiguration) WithResourceRules(values ...*NamedRuleWithOperationsApplyConfiguration) *MatchResourcesApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithResourceRules\")\n\t\t}\n\t\tb.ResourceRules = append(b.ResourceRules, *values[i])\n\t}\n\treturn b\n}\n\n// WithExcludeResourceRules adds the given value to the ExcludeResourceRules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ExcludeResourceRules field.\nfunc (b *MatchResourcesApplyConfiguration) WithExcludeResourceRules(values ...*NamedRuleWithOperationsApplyConfiguration) *MatchResourcesApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithExcludeResourceRules\")\n\t\t}\n\t\tb.ExcludeResourceRules = append(b.ExcludeResourceRules, *values[i])\n\t}\n\treturn b\n}\n\n// WithMatchPolicy sets the MatchPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MatchPolicy field is set to the value of the last call.\nfunc (b *MatchResourcesApplyConfiguration) WithMatchPolicy(value admissionregistrationv1.MatchPolicyType) *MatchResourcesApplyConfiguration {\n\tb.MatchPolicy = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/mutatingwebhook.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tadmissionregistrationv1 \"k8s.io/api/admissionregistration/v1\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// MutatingWebhookApplyConfiguration represents a declarative configuration of the MutatingWebhook type for use\n// with apply.\ntype MutatingWebhookApplyConfiguration struct {\n\tName                    *string                                         `json:\"name,omitempty\"`\n\tClientConfig            *WebhookClientConfigApplyConfiguration          `json:\"clientConfig,omitempty\"`\n\tRules                   []RuleWithOperationsApplyConfiguration          `json:\"rules,omitempty\"`\n\tFailurePolicy           *admissionregistrationv1.FailurePolicyType      `json:\"failurePolicy,omitempty\"`\n\tMatchPolicy             *admissionregistrationv1.MatchPolicyType        `json:\"matchPolicy,omitempty\"`\n\tNamespaceSelector       *metav1.LabelSelectorApplyConfiguration         `json:\"namespaceSelector,omitempty\"`\n\tObjectSelector          *metav1.LabelSelectorApplyConfiguration         `json:\"objectSelector,omitempty\"`\n\tSideEffects             *admissionregistrationv1.SideEffectClass        `json:\"sideEffects,omitempty\"`\n\tTimeoutSeconds          *int32                                          `json:\"timeoutSeconds,omitempty\"`\n\tAdmissionReviewVersions []string                                        `json:\"admissionReviewVersions,omitempty\"`\n\tReinvocationPolicy      *admissionregistrationv1.ReinvocationPolicyType `json:\"reinvocationPolicy,omitempty\"`\n\tMatchConditions         []MatchConditionApplyConfiguration              `json:\"matchConditions,omitempty\"`\n}\n\n// MutatingWebhookApplyConfiguration constructs a declarative configuration of the MutatingWebhook type for use with\n// apply.\nfunc MutatingWebhook() *MutatingWebhookApplyConfiguration {\n\treturn &MutatingWebhookApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *MutatingWebhookApplyConfiguration) WithName(value string) *MutatingWebhookApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithClientConfig sets the ClientConfig field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ClientConfig field is set to the value of the last call.\nfunc (b *MutatingWebhookApplyConfiguration) WithClientConfig(value *WebhookClientConfigApplyConfiguration) *MutatingWebhookApplyConfiguration {\n\tb.ClientConfig = value\n\treturn b\n}\n\n// WithRules adds the given value to the Rules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Rules field.\nfunc (b *MutatingWebhookApplyConfiguration) WithRules(values ...*RuleWithOperationsApplyConfiguration) *MutatingWebhookApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRules\")\n\t\t}\n\t\tb.Rules = append(b.Rules, *values[i])\n\t}\n\treturn b\n}\n\n// WithFailurePolicy sets the FailurePolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FailurePolicy field is set to the value of the last call.\nfunc (b *MutatingWebhookApplyConfiguration) WithFailurePolicy(value admissionregistrationv1.FailurePolicyType) *MutatingWebhookApplyConfiguration {\n\tb.FailurePolicy = &value\n\treturn b\n}\n\n// WithMatchPolicy sets the MatchPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MatchPolicy field is set to the value of the last call.\nfunc (b *MutatingWebhookApplyConfiguration) WithMatchPolicy(value admissionregistrationv1.MatchPolicyType) *MutatingWebhookApplyConfiguration {\n\tb.MatchPolicy = &value\n\treturn b\n}\n\n// WithNamespaceSelector sets the NamespaceSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NamespaceSelector field is set to the value of the last call.\nfunc (b *MutatingWebhookApplyConfiguration) WithNamespaceSelector(value *metav1.LabelSelectorApplyConfiguration) *MutatingWebhookApplyConfiguration {\n\tb.NamespaceSelector = value\n\treturn b\n}\n\n// WithObjectSelector sets the ObjectSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObjectSelector field is set to the value of the last call.\nfunc (b *MutatingWebhookApplyConfiguration) WithObjectSelector(value *metav1.LabelSelectorApplyConfiguration) *MutatingWebhookApplyConfiguration {\n\tb.ObjectSelector = value\n\treturn b\n}\n\n// WithSideEffects sets the SideEffects field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SideEffects field is set to the value of the last call.\nfunc (b *MutatingWebhookApplyConfiguration) WithSideEffects(value admissionregistrationv1.SideEffectClass) *MutatingWebhookApplyConfiguration {\n\tb.SideEffects = &value\n\treturn b\n}\n\n// WithTimeoutSeconds sets the TimeoutSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TimeoutSeconds field is set to the value of the last call.\nfunc (b *MutatingWebhookApplyConfiguration) WithTimeoutSeconds(value int32) *MutatingWebhookApplyConfiguration {\n\tb.TimeoutSeconds = &value\n\treturn b\n}\n\n// WithAdmissionReviewVersions adds the given value to the AdmissionReviewVersions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the AdmissionReviewVersions field.\nfunc (b *MutatingWebhookApplyConfiguration) WithAdmissionReviewVersions(values ...string) *MutatingWebhookApplyConfiguration {\n\tfor i := range values {\n\t\tb.AdmissionReviewVersions = append(b.AdmissionReviewVersions, values[i])\n\t}\n\treturn b\n}\n\n// WithReinvocationPolicy sets the ReinvocationPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReinvocationPolicy field is set to the value of the last call.\nfunc (b *MutatingWebhookApplyConfiguration) WithReinvocationPolicy(value admissionregistrationv1.ReinvocationPolicyType) *MutatingWebhookApplyConfiguration {\n\tb.ReinvocationPolicy = &value\n\treturn b\n}\n\n// WithMatchConditions adds the given value to the MatchConditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the MatchConditions field.\nfunc (b *MutatingWebhookApplyConfiguration) WithMatchConditions(values ...*MatchConditionApplyConfiguration) *MutatingWebhookApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithMatchConditions\")\n\t\t}\n\t\tb.MatchConditions = append(b.MatchConditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/mutatingwebhookconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tadmissionregistrationv1 \"k8s.io/api/admissionregistration/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// MutatingWebhookConfigurationApplyConfiguration represents a declarative configuration of the MutatingWebhookConfiguration type for use\n// with apply.\ntype MutatingWebhookConfigurationApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tWebhooks                             []MutatingWebhookApplyConfiguration `json:\"webhooks,omitempty\"`\n}\n\n// MutatingWebhookConfiguration constructs a declarative configuration of the MutatingWebhookConfiguration type for use with\n// apply.\nfunc MutatingWebhookConfiguration(name string) *MutatingWebhookConfigurationApplyConfiguration {\n\tb := &MutatingWebhookConfigurationApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"MutatingWebhookConfiguration\")\n\tb.WithAPIVersion(\"admissionregistration.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractMutatingWebhookConfiguration extracts the applied configuration owned by fieldManager from\n// mutatingWebhookConfiguration. If no managedFields are found in mutatingWebhookConfiguration for fieldManager, a\n// MutatingWebhookConfigurationApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// mutatingWebhookConfiguration must be a unmodified MutatingWebhookConfiguration API object that was retrieved from the Kubernetes API.\n// ExtractMutatingWebhookConfiguration provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractMutatingWebhookConfiguration(mutatingWebhookConfiguration *admissionregistrationv1.MutatingWebhookConfiguration, fieldManager string) (*MutatingWebhookConfigurationApplyConfiguration, error) {\n\treturn extractMutatingWebhookConfiguration(mutatingWebhookConfiguration, fieldManager, \"\")\n}\n\n// ExtractMutatingWebhookConfigurationStatus is the same as ExtractMutatingWebhookConfiguration except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractMutatingWebhookConfigurationStatus(mutatingWebhookConfiguration *admissionregistrationv1.MutatingWebhookConfiguration, fieldManager string) (*MutatingWebhookConfigurationApplyConfiguration, error) {\n\treturn extractMutatingWebhookConfiguration(mutatingWebhookConfiguration, fieldManager, \"status\")\n}\n\nfunc extractMutatingWebhookConfiguration(mutatingWebhookConfiguration *admissionregistrationv1.MutatingWebhookConfiguration, fieldManager string, subresource string) (*MutatingWebhookConfigurationApplyConfiguration, error) {\n\tb := &MutatingWebhookConfigurationApplyConfiguration{}\n\terr := managedfields.ExtractInto(mutatingWebhookConfiguration, internal.Parser().Type(\"io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(mutatingWebhookConfiguration.Name)\n\n\tb.WithKind(\"MutatingWebhookConfiguration\")\n\tb.WithAPIVersion(\"admissionregistration.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithKind(value string) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithAPIVersion(value string) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithName(value string) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithGenerateName(value string) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithNamespace(value string) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithUID(value types.UID) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithResourceVersion(value string) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithGeneration(value int64) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithLabels(entries map[string]string) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithAnnotations(entries map[string]string) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithFinalizers(values ...string) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithWebhooks adds the given value to the Webhooks field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Webhooks field.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithWebhooks(values ...*MutatingWebhookApplyConfiguration) *MutatingWebhookConfigurationApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithWebhooks\")\n\t\t}\n\t\tb.Webhooks = append(b.Webhooks, *values[i])\n\t}\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/namedrulewithoperations.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tadmissionregistrationv1 \"k8s.io/api/admissionregistration/v1\"\n)\n\n// NamedRuleWithOperationsApplyConfiguration represents a declarative configuration of the NamedRuleWithOperations type for use\n// with apply.\ntype NamedRuleWithOperationsApplyConfiguration struct {\n\tResourceNames                        []string `json:\"resourceNames,omitempty\"`\n\tRuleWithOperationsApplyConfiguration `json:\",inline\"`\n}\n\n// NamedRuleWithOperationsApplyConfiguration constructs a declarative configuration of the NamedRuleWithOperations type for use with\n// apply.\nfunc NamedRuleWithOperations() *NamedRuleWithOperationsApplyConfiguration {\n\treturn &NamedRuleWithOperationsApplyConfiguration{}\n}\n\n// WithResourceNames adds the given value to the ResourceNames field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ResourceNames field.\nfunc (b *NamedRuleWithOperationsApplyConfiguration) WithResourceNames(values ...string) *NamedRuleWithOperationsApplyConfiguration {\n\tfor i := range values {\n\t\tb.ResourceNames = append(b.ResourceNames, values[i])\n\t}\n\treturn b\n}\n\n// WithOperations adds the given value to the Operations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Operations field.\nfunc (b *NamedRuleWithOperationsApplyConfiguration) WithOperations(values ...admissionregistrationv1.OperationType) *NamedRuleWithOperationsApplyConfiguration {\n\tfor i := range values {\n\t\tb.RuleWithOperationsApplyConfiguration.Operations = append(b.RuleWithOperationsApplyConfiguration.Operations, values[i])\n\t}\n\treturn b\n}\n\n// WithAPIGroups adds the given value to the APIGroups field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the APIGroups field.\nfunc (b *NamedRuleWithOperationsApplyConfiguration) WithAPIGroups(values ...string) *NamedRuleWithOperationsApplyConfiguration {\n\tfor i := range values {\n\t\tb.RuleApplyConfiguration.APIGroups = append(b.RuleApplyConfiguration.APIGroups, values[i])\n\t}\n\treturn b\n}\n\n// WithAPIVersions adds the given value to the APIVersions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the APIVersions field.\nfunc (b *NamedRuleWithOperationsApplyConfiguration) WithAPIVersions(values ...string) *NamedRuleWithOperationsApplyConfiguration {\n\tfor i := range values {\n\t\tb.RuleApplyConfiguration.APIVersions = append(b.RuleApplyConfiguration.APIVersions, values[i])\n\t}\n\treturn b\n}\n\n// WithResources adds the given value to the Resources field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Resources field.\nfunc (b *NamedRuleWithOperationsApplyConfiguration) WithResources(values ...string) *NamedRuleWithOperationsApplyConfiguration {\n\tfor i := range values {\n\t\tb.RuleApplyConfiguration.Resources = append(b.RuleApplyConfiguration.Resources, values[i])\n\t}\n\treturn b\n}\n\n// WithScope sets the Scope field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Scope field is set to the value of the last call.\nfunc (b *NamedRuleWithOperationsApplyConfiguration) WithScope(value admissionregistrationv1.ScopeType) *NamedRuleWithOperationsApplyConfiguration {\n\tb.RuleApplyConfiguration.Scope = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/paramkind.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ParamKindApplyConfiguration represents a declarative configuration of the ParamKind type for use\n// with apply.\ntype ParamKindApplyConfiguration struct {\n\tAPIVersion *string `json:\"apiVersion,omitempty\"`\n\tKind       *string `json:\"kind,omitempty\"`\n}\n\n// ParamKindApplyConfiguration constructs a declarative configuration of the ParamKind type for use with\n// apply.\nfunc ParamKind() *ParamKindApplyConfiguration {\n\treturn &ParamKindApplyConfiguration{}\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ParamKindApplyConfiguration) WithAPIVersion(value string) *ParamKindApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ParamKindApplyConfiguration) WithKind(value string) *ParamKindApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/paramref.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tadmissionregistrationv1 \"k8s.io/api/admissionregistration/v1\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ParamRefApplyConfiguration represents a declarative configuration of the ParamRef type for use\n// with apply.\ntype ParamRefApplyConfiguration struct {\n\tName                    *string                                              `json:\"name,omitempty\"`\n\tNamespace               *string                                              `json:\"namespace,omitempty\"`\n\tSelector                *metav1.LabelSelectorApplyConfiguration              `json:\"selector,omitempty\"`\n\tParameterNotFoundAction *admissionregistrationv1.ParameterNotFoundActionType `json:\"parameterNotFoundAction,omitempty\"`\n}\n\n// ParamRefApplyConfiguration constructs a declarative configuration of the ParamRef type for use with\n// apply.\nfunc ParamRef() *ParamRefApplyConfiguration {\n\treturn &ParamRefApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ParamRefApplyConfiguration) WithName(value string) *ParamRefApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ParamRefApplyConfiguration) WithNamespace(value string) *ParamRefApplyConfiguration {\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *ParamRefApplyConfiguration) WithSelector(value *metav1.LabelSelectorApplyConfiguration) *ParamRefApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n\n// WithParameterNotFoundAction sets the ParameterNotFoundAction field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ParameterNotFoundAction field is set to the value of the last call.\nfunc (b *ParamRefApplyConfiguration) WithParameterNotFoundAction(value admissionregistrationv1.ParameterNotFoundActionType) *ParamRefApplyConfiguration {\n\tb.ParameterNotFoundAction = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/rule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tadmissionregistrationv1 \"k8s.io/api/admissionregistration/v1\"\n)\n\n// RuleApplyConfiguration represents a declarative configuration of the Rule type for use\n// with apply.\ntype RuleApplyConfiguration struct {\n\tAPIGroups   []string                           `json:\"apiGroups,omitempty\"`\n\tAPIVersions []string                           `json:\"apiVersions,omitempty\"`\n\tResources   []string                           `json:\"resources,omitempty\"`\n\tScope       *admissionregistrationv1.ScopeType `json:\"scope,omitempty\"`\n}\n\n// RuleApplyConfiguration constructs a declarative configuration of the Rule type for use with\n// apply.\nfunc Rule() *RuleApplyConfiguration {\n\treturn &RuleApplyConfiguration{}\n}\n\n// WithAPIGroups adds the given value to the APIGroups field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the APIGroups field.\nfunc (b *RuleApplyConfiguration) WithAPIGroups(values ...string) *RuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.APIGroups = append(b.APIGroups, values[i])\n\t}\n\treturn b\n}\n\n// WithAPIVersions adds the given value to the APIVersions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the APIVersions field.\nfunc (b *RuleApplyConfiguration) WithAPIVersions(values ...string) *RuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.APIVersions = append(b.APIVersions, values[i])\n\t}\n\treturn b\n}\n\n// WithResources adds the given value to the Resources field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Resources field.\nfunc (b *RuleApplyConfiguration) WithResources(values ...string) *RuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Resources = append(b.Resources, values[i])\n\t}\n\treturn b\n}\n\n// WithScope sets the Scope field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Scope field is set to the value of the last call.\nfunc (b *RuleApplyConfiguration) WithScope(value admissionregistrationv1.ScopeType) *RuleApplyConfiguration {\n\tb.Scope = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/rulewithoperations.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tadmissionregistrationv1 \"k8s.io/api/admissionregistration/v1\"\n)\n\n// RuleWithOperationsApplyConfiguration represents a declarative configuration of the RuleWithOperations type for use\n// with apply.\ntype RuleWithOperationsApplyConfiguration struct {\n\tOperations             []admissionregistrationv1.OperationType `json:\"operations,omitempty\"`\n\tRuleApplyConfiguration `json:\",inline\"`\n}\n\n// RuleWithOperationsApplyConfiguration constructs a declarative configuration of the RuleWithOperations type for use with\n// apply.\nfunc RuleWithOperations() *RuleWithOperationsApplyConfiguration {\n\treturn &RuleWithOperationsApplyConfiguration{}\n}\n\n// WithOperations adds the given value to the Operations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Operations field.\nfunc (b *RuleWithOperationsApplyConfiguration) WithOperations(values ...admissionregistrationv1.OperationType) *RuleWithOperationsApplyConfiguration {\n\tfor i := range values {\n\t\tb.Operations = append(b.Operations, values[i])\n\t}\n\treturn b\n}\n\n// WithAPIGroups adds the given value to the APIGroups field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the APIGroups field.\nfunc (b *RuleWithOperationsApplyConfiguration) WithAPIGroups(values ...string) *RuleWithOperationsApplyConfiguration {\n\tfor i := range values {\n\t\tb.RuleApplyConfiguration.APIGroups = append(b.RuleApplyConfiguration.APIGroups, values[i])\n\t}\n\treturn b\n}\n\n// WithAPIVersions adds the given value to the APIVersions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the APIVersions field.\nfunc (b *RuleWithOperationsApplyConfiguration) WithAPIVersions(values ...string) *RuleWithOperationsApplyConfiguration {\n\tfor i := range values {\n\t\tb.RuleApplyConfiguration.APIVersions = append(b.RuleApplyConfiguration.APIVersions, values[i])\n\t}\n\treturn b\n}\n\n// WithResources adds the given value to the Resources field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Resources field.\nfunc (b *RuleWithOperationsApplyConfiguration) WithResources(values ...string) *RuleWithOperationsApplyConfiguration {\n\tfor i := range values {\n\t\tb.RuleApplyConfiguration.Resources = append(b.RuleApplyConfiguration.Resources, values[i])\n\t}\n\treturn b\n}\n\n// WithScope sets the Scope field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Scope field is set to the value of the last call.\nfunc (b *RuleWithOperationsApplyConfiguration) WithScope(value admissionregistrationv1.ScopeType) *RuleWithOperationsApplyConfiguration {\n\tb.RuleApplyConfiguration.Scope = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/servicereference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ServiceReferenceApplyConfiguration represents a declarative configuration of the ServiceReference type for use\n// with apply.\ntype ServiceReferenceApplyConfiguration struct {\n\tNamespace *string `json:\"namespace,omitempty\"`\n\tName      *string `json:\"name,omitempty\"`\n\tPath      *string `json:\"path,omitempty\"`\n\tPort      *int32  `json:\"port,omitempty\"`\n}\n\n// ServiceReferenceApplyConfiguration constructs a declarative configuration of the ServiceReference type for use with\n// apply.\nfunc ServiceReference() *ServiceReferenceApplyConfiguration {\n\treturn &ServiceReferenceApplyConfiguration{}\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ServiceReferenceApplyConfiguration) WithNamespace(value string) *ServiceReferenceApplyConfiguration {\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ServiceReferenceApplyConfiguration) WithName(value string) *ServiceReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithPath sets the Path field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Path field is set to the value of the last call.\nfunc (b *ServiceReferenceApplyConfiguration) WithPath(value string) *ServiceReferenceApplyConfiguration {\n\tb.Path = &value\n\treturn b\n}\n\n// WithPort sets the Port field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Port field is set to the value of the last call.\nfunc (b *ServiceReferenceApplyConfiguration) WithPort(value int32) *ServiceReferenceApplyConfiguration {\n\tb.Port = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/typechecking.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// TypeCheckingApplyConfiguration represents a declarative configuration of the TypeChecking type for use\n// with apply.\ntype TypeCheckingApplyConfiguration struct {\n\tExpressionWarnings []ExpressionWarningApplyConfiguration `json:\"expressionWarnings,omitempty\"`\n}\n\n// TypeCheckingApplyConfiguration constructs a declarative configuration of the TypeChecking type for use with\n// apply.\nfunc TypeChecking() *TypeCheckingApplyConfiguration {\n\treturn &TypeCheckingApplyConfiguration{}\n}\n\n// WithExpressionWarnings adds the given value to the ExpressionWarnings field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ExpressionWarnings field.\nfunc (b *TypeCheckingApplyConfiguration) WithExpressionWarnings(values ...*ExpressionWarningApplyConfiguration) *TypeCheckingApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithExpressionWarnings\")\n\t\t}\n\t\tb.ExpressionWarnings = append(b.ExpressionWarnings, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/validatingadmissionpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tadmissionregistrationv1 \"k8s.io/api/admissionregistration/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ValidatingAdmissionPolicyApplyConfiguration represents a declarative configuration of the ValidatingAdmissionPolicy type for use\n// with apply.\ntype ValidatingAdmissionPolicyApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                                 *ValidatingAdmissionPolicySpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                               *ValidatingAdmissionPolicyStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// ValidatingAdmissionPolicy constructs a declarative configuration of the ValidatingAdmissionPolicy type for use with\n// apply.\nfunc ValidatingAdmissionPolicy(name string) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb := &ValidatingAdmissionPolicyApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"ValidatingAdmissionPolicy\")\n\tb.WithAPIVersion(\"admissionregistration.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractValidatingAdmissionPolicy extracts the applied configuration owned by fieldManager from\n// validatingAdmissionPolicy. If no managedFields are found in validatingAdmissionPolicy for fieldManager, a\n// ValidatingAdmissionPolicyApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// validatingAdmissionPolicy must be a unmodified ValidatingAdmissionPolicy API object that was retrieved from the Kubernetes API.\n// ExtractValidatingAdmissionPolicy provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractValidatingAdmissionPolicy(validatingAdmissionPolicy *admissionregistrationv1.ValidatingAdmissionPolicy, fieldManager string) (*ValidatingAdmissionPolicyApplyConfiguration, error) {\n\treturn extractValidatingAdmissionPolicy(validatingAdmissionPolicy, fieldManager, \"\")\n}\n\n// ExtractValidatingAdmissionPolicyStatus is the same as ExtractValidatingAdmissionPolicy except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractValidatingAdmissionPolicyStatus(validatingAdmissionPolicy *admissionregistrationv1.ValidatingAdmissionPolicy, fieldManager string) (*ValidatingAdmissionPolicyApplyConfiguration, error) {\n\treturn extractValidatingAdmissionPolicy(validatingAdmissionPolicy, fieldManager, \"status\")\n}\n\nfunc extractValidatingAdmissionPolicy(validatingAdmissionPolicy *admissionregistrationv1.ValidatingAdmissionPolicy, fieldManager string, subresource string) (*ValidatingAdmissionPolicyApplyConfiguration, error) {\n\tb := &ValidatingAdmissionPolicyApplyConfiguration{}\n\terr := managedfields.ExtractInto(validatingAdmissionPolicy, internal.Parser().Type(\"io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicy\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(validatingAdmissionPolicy.Name)\n\n\tb.WithKind(\"ValidatingAdmissionPolicy\")\n\tb.WithAPIVersion(\"admissionregistration.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithKind(value string) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithAPIVersion(value string) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithName(value string) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithGenerateName(value string) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithNamespace(value string) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithUID(value types.UID) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithResourceVersion(value string) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithGeneration(value int64) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithLabels(entries map[string]string) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithAnnotations(entries map[string]string) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithFinalizers(values ...string) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithSpec(value *ValidatingAdmissionPolicySpecApplyConfiguration) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithStatus(value *ValidatingAdmissionPolicyStatusApplyConfiguration) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/validatingadmissionpolicybinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tadmissionregistrationv1 \"k8s.io/api/admissionregistration/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ValidatingAdmissionPolicyBindingApplyConfiguration represents a declarative configuration of the ValidatingAdmissionPolicyBinding type for use\n// with apply.\ntype ValidatingAdmissionPolicyBindingApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                                 *ValidatingAdmissionPolicyBindingSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// ValidatingAdmissionPolicyBinding constructs a declarative configuration of the ValidatingAdmissionPolicyBinding type for use with\n// apply.\nfunc ValidatingAdmissionPolicyBinding(name string) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb := &ValidatingAdmissionPolicyBindingApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"ValidatingAdmissionPolicyBinding\")\n\tb.WithAPIVersion(\"admissionregistration.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractValidatingAdmissionPolicyBinding extracts the applied configuration owned by fieldManager from\n// validatingAdmissionPolicyBinding. If no managedFields are found in validatingAdmissionPolicyBinding for fieldManager, a\n// ValidatingAdmissionPolicyBindingApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// validatingAdmissionPolicyBinding must be a unmodified ValidatingAdmissionPolicyBinding API object that was retrieved from the Kubernetes API.\n// ExtractValidatingAdmissionPolicyBinding provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractValidatingAdmissionPolicyBinding(validatingAdmissionPolicyBinding *admissionregistrationv1.ValidatingAdmissionPolicyBinding, fieldManager string) (*ValidatingAdmissionPolicyBindingApplyConfiguration, error) {\n\treturn extractValidatingAdmissionPolicyBinding(validatingAdmissionPolicyBinding, fieldManager, \"\")\n}\n\n// ExtractValidatingAdmissionPolicyBindingStatus is the same as ExtractValidatingAdmissionPolicyBinding except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractValidatingAdmissionPolicyBindingStatus(validatingAdmissionPolicyBinding *admissionregistrationv1.ValidatingAdmissionPolicyBinding, fieldManager string) (*ValidatingAdmissionPolicyBindingApplyConfiguration, error) {\n\treturn extractValidatingAdmissionPolicyBinding(validatingAdmissionPolicyBinding, fieldManager, \"status\")\n}\n\nfunc extractValidatingAdmissionPolicyBinding(validatingAdmissionPolicyBinding *admissionregistrationv1.ValidatingAdmissionPolicyBinding, fieldManager string, subresource string) (*ValidatingAdmissionPolicyBindingApplyConfiguration, error) {\n\tb := &ValidatingAdmissionPolicyBindingApplyConfiguration{}\n\terr := managedfields.ExtractInto(validatingAdmissionPolicyBinding, internal.Parser().Type(\"io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicyBinding\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(validatingAdmissionPolicyBinding.Name)\n\n\tb.WithKind(\"ValidatingAdmissionPolicyBinding\")\n\tb.WithAPIVersion(\"admissionregistration.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithKind(value string) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithAPIVersion(value string) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithName(value string) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithGenerateName(value string) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithNamespace(value string) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithUID(value types.UID) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithResourceVersion(value string) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithGeneration(value int64) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithLabels(entries map[string]string) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithAnnotations(entries map[string]string) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithFinalizers(values ...string) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithSpec(value *ValidatingAdmissionPolicyBindingSpecApplyConfiguration) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/validatingadmissionpolicybindingspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tadmissionregistrationv1 \"k8s.io/api/admissionregistration/v1\"\n)\n\n// ValidatingAdmissionPolicyBindingSpecApplyConfiguration represents a declarative configuration of the ValidatingAdmissionPolicyBindingSpec type for use\n// with apply.\ntype ValidatingAdmissionPolicyBindingSpecApplyConfiguration struct {\n\tPolicyName        *string                                    `json:\"policyName,omitempty\"`\n\tParamRef          *ParamRefApplyConfiguration                `json:\"paramRef,omitempty\"`\n\tMatchResources    *MatchResourcesApplyConfiguration          `json:\"matchResources,omitempty\"`\n\tValidationActions []admissionregistrationv1.ValidationAction `json:\"validationActions,omitempty\"`\n}\n\n// ValidatingAdmissionPolicyBindingSpecApplyConfiguration constructs a declarative configuration of the ValidatingAdmissionPolicyBindingSpec type for use with\n// apply.\nfunc ValidatingAdmissionPolicyBindingSpec() *ValidatingAdmissionPolicyBindingSpecApplyConfiguration {\n\treturn &ValidatingAdmissionPolicyBindingSpecApplyConfiguration{}\n}\n\n// WithPolicyName sets the PolicyName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PolicyName field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingSpecApplyConfiguration) WithPolicyName(value string) *ValidatingAdmissionPolicyBindingSpecApplyConfiguration {\n\tb.PolicyName = &value\n\treturn b\n}\n\n// WithParamRef sets the ParamRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ParamRef field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingSpecApplyConfiguration) WithParamRef(value *ParamRefApplyConfiguration) *ValidatingAdmissionPolicyBindingSpecApplyConfiguration {\n\tb.ParamRef = value\n\treturn b\n}\n\n// WithMatchResources sets the MatchResources field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MatchResources field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingSpecApplyConfiguration) WithMatchResources(value *MatchResourcesApplyConfiguration) *ValidatingAdmissionPolicyBindingSpecApplyConfiguration {\n\tb.MatchResources = value\n\treturn b\n}\n\n// WithValidationActions adds the given value to the ValidationActions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ValidationActions field.\nfunc (b *ValidatingAdmissionPolicyBindingSpecApplyConfiguration) WithValidationActions(values ...admissionregistrationv1.ValidationAction) *ValidatingAdmissionPolicyBindingSpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.ValidationActions = append(b.ValidationActions, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/validatingadmissionpolicyspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tadmissionregistrationv1 \"k8s.io/api/admissionregistration/v1\"\n)\n\n// ValidatingAdmissionPolicySpecApplyConfiguration represents a declarative configuration of the ValidatingAdmissionPolicySpec type for use\n// with apply.\ntype ValidatingAdmissionPolicySpecApplyConfiguration struct {\n\tParamKind        *ParamKindApplyConfiguration               `json:\"paramKind,omitempty\"`\n\tMatchConstraints *MatchResourcesApplyConfiguration          `json:\"matchConstraints,omitempty\"`\n\tValidations      []ValidationApplyConfiguration             `json:\"validations,omitempty\"`\n\tFailurePolicy    *admissionregistrationv1.FailurePolicyType `json:\"failurePolicy,omitempty\"`\n\tAuditAnnotations []AuditAnnotationApplyConfiguration        `json:\"auditAnnotations,omitempty\"`\n\tMatchConditions  []MatchConditionApplyConfiguration         `json:\"matchConditions,omitempty\"`\n\tVariables        []VariableApplyConfiguration               `json:\"variables,omitempty\"`\n}\n\n// ValidatingAdmissionPolicySpecApplyConfiguration constructs a declarative configuration of the ValidatingAdmissionPolicySpec type for use with\n// apply.\nfunc ValidatingAdmissionPolicySpec() *ValidatingAdmissionPolicySpecApplyConfiguration {\n\treturn &ValidatingAdmissionPolicySpecApplyConfiguration{}\n}\n\n// WithParamKind sets the ParamKind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ParamKind field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicySpecApplyConfiguration) WithParamKind(value *ParamKindApplyConfiguration) *ValidatingAdmissionPolicySpecApplyConfiguration {\n\tb.ParamKind = value\n\treturn b\n}\n\n// WithMatchConstraints sets the MatchConstraints field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MatchConstraints field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicySpecApplyConfiguration) WithMatchConstraints(value *MatchResourcesApplyConfiguration) *ValidatingAdmissionPolicySpecApplyConfiguration {\n\tb.MatchConstraints = value\n\treturn b\n}\n\n// WithValidations adds the given value to the Validations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Validations field.\nfunc (b *ValidatingAdmissionPolicySpecApplyConfiguration) WithValidations(values ...*ValidationApplyConfiguration) *ValidatingAdmissionPolicySpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithValidations\")\n\t\t}\n\t\tb.Validations = append(b.Validations, *values[i])\n\t}\n\treturn b\n}\n\n// WithFailurePolicy sets the FailurePolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FailurePolicy field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicySpecApplyConfiguration) WithFailurePolicy(value admissionregistrationv1.FailurePolicyType) *ValidatingAdmissionPolicySpecApplyConfiguration {\n\tb.FailurePolicy = &value\n\treturn b\n}\n\n// WithAuditAnnotations adds the given value to the AuditAnnotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the AuditAnnotations field.\nfunc (b *ValidatingAdmissionPolicySpecApplyConfiguration) WithAuditAnnotations(values ...*AuditAnnotationApplyConfiguration) *ValidatingAdmissionPolicySpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithAuditAnnotations\")\n\t\t}\n\t\tb.AuditAnnotations = append(b.AuditAnnotations, *values[i])\n\t}\n\treturn b\n}\n\n// WithMatchConditions adds the given value to the MatchConditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the MatchConditions field.\nfunc (b *ValidatingAdmissionPolicySpecApplyConfiguration) WithMatchConditions(values ...*MatchConditionApplyConfiguration) *ValidatingAdmissionPolicySpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithMatchConditions\")\n\t\t}\n\t\tb.MatchConditions = append(b.MatchConditions, *values[i])\n\t}\n\treturn b\n}\n\n// WithVariables adds the given value to the Variables field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Variables field.\nfunc (b *ValidatingAdmissionPolicySpecApplyConfiguration) WithVariables(values ...*VariableApplyConfiguration) *ValidatingAdmissionPolicySpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithVariables\")\n\t\t}\n\t\tb.Variables = append(b.Variables, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/validatingadmissionpolicystatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ValidatingAdmissionPolicyStatusApplyConfiguration represents a declarative configuration of the ValidatingAdmissionPolicyStatus type for use\n// with apply.\ntype ValidatingAdmissionPolicyStatusApplyConfiguration struct {\n\tObservedGeneration *int64                               `json:\"observedGeneration,omitempty\"`\n\tTypeChecking       *TypeCheckingApplyConfiguration      `json:\"typeChecking,omitempty\"`\n\tConditions         []metav1.ConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// ValidatingAdmissionPolicyStatusApplyConfiguration constructs a declarative configuration of the ValidatingAdmissionPolicyStatus type for use with\n// apply.\nfunc ValidatingAdmissionPolicyStatus() *ValidatingAdmissionPolicyStatusApplyConfiguration {\n\treturn &ValidatingAdmissionPolicyStatusApplyConfiguration{}\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyStatusApplyConfiguration) WithObservedGeneration(value int64) *ValidatingAdmissionPolicyStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithTypeChecking sets the TypeChecking field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TypeChecking field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyStatusApplyConfiguration) WithTypeChecking(value *TypeCheckingApplyConfiguration) *ValidatingAdmissionPolicyStatusApplyConfiguration {\n\tb.TypeChecking = value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *ValidatingAdmissionPolicyStatusApplyConfiguration) WithConditions(values ...*metav1.ConditionApplyConfiguration) *ValidatingAdmissionPolicyStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/validatingwebhook.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tadmissionregistrationv1 \"k8s.io/api/admissionregistration/v1\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ValidatingWebhookApplyConfiguration represents a declarative configuration of the ValidatingWebhook type for use\n// with apply.\ntype ValidatingWebhookApplyConfiguration struct {\n\tName                    *string                                    `json:\"name,omitempty\"`\n\tClientConfig            *WebhookClientConfigApplyConfiguration     `json:\"clientConfig,omitempty\"`\n\tRules                   []RuleWithOperationsApplyConfiguration     `json:\"rules,omitempty\"`\n\tFailurePolicy           *admissionregistrationv1.FailurePolicyType `json:\"failurePolicy,omitempty\"`\n\tMatchPolicy             *admissionregistrationv1.MatchPolicyType   `json:\"matchPolicy,omitempty\"`\n\tNamespaceSelector       *metav1.LabelSelectorApplyConfiguration    `json:\"namespaceSelector,omitempty\"`\n\tObjectSelector          *metav1.LabelSelectorApplyConfiguration    `json:\"objectSelector,omitempty\"`\n\tSideEffects             *admissionregistrationv1.SideEffectClass   `json:\"sideEffects,omitempty\"`\n\tTimeoutSeconds          *int32                                     `json:\"timeoutSeconds,omitempty\"`\n\tAdmissionReviewVersions []string                                   `json:\"admissionReviewVersions,omitempty\"`\n\tMatchConditions         []MatchConditionApplyConfiguration         `json:\"matchConditions,omitempty\"`\n}\n\n// ValidatingWebhookApplyConfiguration constructs a declarative configuration of the ValidatingWebhook type for use with\n// apply.\nfunc ValidatingWebhook() *ValidatingWebhookApplyConfiguration {\n\treturn &ValidatingWebhookApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ValidatingWebhookApplyConfiguration) WithName(value string) *ValidatingWebhookApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithClientConfig sets the ClientConfig field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ClientConfig field is set to the value of the last call.\nfunc (b *ValidatingWebhookApplyConfiguration) WithClientConfig(value *WebhookClientConfigApplyConfiguration) *ValidatingWebhookApplyConfiguration {\n\tb.ClientConfig = value\n\treturn b\n}\n\n// WithRules adds the given value to the Rules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Rules field.\nfunc (b *ValidatingWebhookApplyConfiguration) WithRules(values ...*RuleWithOperationsApplyConfiguration) *ValidatingWebhookApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRules\")\n\t\t}\n\t\tb.Rules = append(b.Rules, *values[i])\n\t}\n\treturn b\n}\n\n// WithFailurePolicy sets the FailurePolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FailurePolicy field is set to the value of the last call.\nfunc (b *ValidatingWebhookApplyConfiguration) WithFailurePolicy(value admissionregistrationv1.FailurePolicyType) *ValidatingWebhookApplyConfiguration {\n\tb.FailurePolicy = &value\n\treturn b\n}\n\n// WithMatchPolicy sets the MatchPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MatchPolicy field is set to the value of the last call.\nfunc (b *ValidatingWebhookApplyConfiguration) WithMatchPolicy(value admissionregistrationv1.MatchPolicyType) *ValidatingWebhookApplyConfiguration {\n\tb.MatchPolicy = &value\n\treturn b\n}\n\n// WithNamespaceSelector sets the NamespaceSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NamespaceSelector field is set to the value of the last call.\nfunc (b *ValidatingWebhookApplyConfiguration) WithNamespaceSelector(value *metav1.LabelSelectorApplyConfiguration) *ValidatingWebhookApplyConfiguration {\n\tb.NamespaceSelector = value\n\treturn b\n}\n\n// WithObjectSelector sets the ObjectSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObjectSelector field is set to the value of the last call.\nfunc (b *ValidatingWebhookApplyConfiguration) WithObjectSelector(value *metav1.LabelSelectorApplyConfiguration) *ValidatingWebhookApplyConfiguration {\n\tb.ObjectSelector = value\n\treturn b\n}\n\n// WithSideEffects sets the SideEffects field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SideEffects field is set to the value of the last call.\nfunc (b *ValidatingWebhookApplyConfiguration) WithSideEffects(value admissionregistrationv1.SideEffectClass) *ValidatingWebhookApplyConfiguration {\n\tb.SideEffects = &value\n\treturn b\n}\n\n// WithTimeoutSeconds sets the TimeoutSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TimeoutSeconds field is set to the value of the last call.\nfunc (b *ValidatingWebhookApplyConfiguration) WithTimeoutSeconds(value int32) *ValidatingWebhookApplyConfiguration {\n\tb.TimeoutSeconds = &value\n\treturn b\n}\n\n// WithAdmissionReviewVersions adds the given value to the AdmissionReviewVersions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the AdmissionReviewVersions field.\nfunc (b *ValidatingWebhookApplyConfiguration) WithAdmissionReviewVersions(values ...string) *ValidatingWebhookApplyConfiguration {\n\tfor i := range values {\n\t\tb.AdmissionReviewVersions = append(b.AdmissionReviewVersions, values[i])\n\t}\n\treturn b\n}\n\n// WithMatchConditions adds the given value to the MatchConditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the MatchConditions field.\nfunc (b *ValidatingWebhookApplyConfiguration) WithMatchConditions(values ...*MatchConditionApplyConfiguration) *ValidatingWebhookApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithMatchConditions\")\n\t\t}\n\t\tb.MatchConditions = append(b.MatchConditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/validatingwebhookconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tadmissionregistrationv1 \"k8s.io/api/admissionregistration/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ValidatingWebhookConfigurationApplyConfiguration represents a declarative configuration of the ValidatingWebhookConfiguration type for use\n// with apply.\ntype ValidatingWebhookConfigurationApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tWebhooks                             []ValidatingWebhookApplyConfiguration `json:\"webhooks,omitempty\"`\n}\n\n// ValidatingWebhookConfiguration constructs a declarative configuration of the ValidatingWebhookConfiguration type for use with\n// apply.\nfunc ValidatingWebhookConfiguration(name string) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb := &ValidatingWebhookConfigurationApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"ValidatingWebhookConfiguration\")\n\tb.WithAPIVersion(\"admissionregistration.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractValidatingWebhookConfiguration extracts the applied configuration owned by fieldManager from\n// validatingWebhookConfiguration. If no managedFields are found in validatingWebhookConfiguration for fieldManager, a\n// ValidatingWebhookConfigurationApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// validatingWebhookConfiguration must be a unmodified ValidatingWebhookConfiguration API object that was retrieved from the Kubernetes API.\n// ExtractValidatingWebhookConfiguration provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractValidatingWebhookConfiguration(validatingWebhookConfiguration *admissionregistrationv1.ValidatingWebhookConfiguration, fieldManager string) (*ValidatingWebhookConfigurationApplyConfiguration, error) {\n\treturn extractValidatingWebhookConfiguration(validatingWebhookConfiguration, fieldManager, \"\")\n}\n\n// ExtractValidatingWebhookConfigurationStatus is the same as ExtractValidatingWebhookConfiguration except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractValidatingWebhookConfigurationStatus(validatingWebhookConfiguration *admissionregistrationv1.ValidatingWebhookConfiguration, fieldManager string) (*ValidatingWebhookConfigurationApplyConfiguration, error) {\n\treturn extractValidatingWebhookConfiguration(validatingWebhookConfiguration, fieldManager, \"status\")\n}\n\nfunc extractValidatingWebhookConfiguration(validatingWebhookConfiguration *admissionregistrationv1.ValidatingWebhookConfiguration, fieldManager string, subresource string) (*ValidatingWebhookConfigurationApplyConfiguration, error) {\n\tb := &ValidatingWebhookConfigurationApplyConfiguration{}\n\terr := managedfields.ExtractInto(validatingWebhookConfiguration, internal.Parser().Type(\"io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(validatingWebhookConfiguration.Name)\n\n\tb.WithKind(\"ValidatingWebhookConfiguration\")\n\tb.WithAPIVersion(\"admissionregistration.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithKind(value string) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithAPIVersion(value string) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithName(value string) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithGenerateName(value string) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithNamespace(value string) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithUID(value types.UID) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithResourceVersion(value string) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithGeneration(value int64) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithLabels(entries map[string]string) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithAnnotations(entries map[string]string) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithFinalizers(values ...string) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithWebhooks adds the given value to the Webhooks field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Webhooks field.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithWebhooks(values ...*ValidatingWebhookApplyConfiguration) *ValidatingWebhookConfigurationApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithWebhooks\")\n\t\t}\n\t\tb.Webhooks = append(b.Webhooks, *values[i])\n\t}\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/validation.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// ValidationApplyConfiguration represents a declarative configuration of the Validation type for use\n// with apply.\ntype ValidationApplyConfiguration struct {\n\tExpression        *string              `json:\"expression,omitempty\"`\n\tMessage           *string              `json:\"message,omitempty\"`\n\tReason            *metav1.StatusReason `json:\"reason,omitempty\"`\n\tMessageExpression *string              `json:\"messageExpression,omitempty\"`\n}\n\n// ValidationApplyConfiguration constructs a declarative configuration of the Validation type for use with\n// apply.\nfunc Validation() *ValidationApplyConfiguration {\n\treturn &ValidationApplyConfiguration{}\n}\n\n// WithExpression sets the Expression field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Expression field is set to the value of the last call.\nfunc (b *ValidationApplyConfiguration) WithExpression(value string) *ValidationApplyConfiguration {\n\tb.Expression = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *ValidationApplyConfiguration) WithMessage(value string) *ValidationApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *ValidationApplyConfiguration) WithReason(value metav1.StatusReason) *ValidationApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessageExpression sets the MessageExpression field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MessageExpression field is set to the value of the last call.\nfunc (b *ValidationApplyConfiguration) WithMessageExpression(value string) *ValidationApplyConfiguration {\n\tb.MessageExpression = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/variable.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// VariableApplyConfiguration represents a declarative configuration of the Variable type for use\n// with apply.\ntype VariableApplyConfiguration struct {\n\tName       *string `json:\"name,omitempty\"`\n\tExpression *string `json:\"expression,omitempty\"`\n}\n\n// VariableApplyConfiguration constructs a declarative configuration of the Variable type for use with\n// apply.\nfunc Variable() *VariableApplyConfiguration {\n\treturn &VariableApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *VariableApplyConfiguration) WithName(value string) *VariableApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithExpression sets the Expression field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Expression field is set to the value of the last call.\nfunc (b *VariableApplyConfiguration) WithExpression(value string) *VariableApplyConfiguration {\n\tb.Expression = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/webhookclientconfig.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// WebhookClientConfigApplyConfiguration represents a declarative configuration of the WebhookClientConfig type for use\n// with apply.\ntype WebhookClientConfigApplyConfiguration struct {\n\tURL      *string                             `json:\"url,omitempty\"`\n\tService  *ServiceReferenceApplyConfiguration `json:\"service,omitempty\"`\n\tCABundle []byte                              `json:\"caBundle,omitempty\"`\n}\n\n// WebhookClientConfigApplyConfiguration constructs a declarative configuration of the WebhookClientConfig type for use with\n// apply.\nfunc WebhookClientConfig() *WebhookClientConfigApplyConfiguration {\n\treturn &WebhookClientConfigApplyConfiguration{}\n}\n\n// WithURL sets the URL field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the URL field is set to the value of the last call.\nfunc (b *WebhookClientConfigApplyConfiguration) WithURL(value string) *WebhookClientConfigApplyConfiguration {\n\tb.URL = &value\n\treturn b\n}\n\n// WithService sets the Service field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Service field is set to the value of the last call.\nfunc (b *WebhookClientConfigApplyConfiguration) WithService(value *ServiceReferenceApplyConfiguration) *WebhookClientConfigApplyConfiguration {\n\tb.Service = value\n\treturn b\n}\n\n// WithCABundle adds the given value to the CABundle field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the CABundle field.\nfunc (b *WebhookClientConfigApplyConfiguration) WithCABundle(values ...byte) *WebhookClientConfigApplyConfiguration {\n\tfor i := range values {\n\t\tb.CABundle = append(b.CABundle, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/applyconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// ApplyConfigurationApplyConfiguration represents a declarative configuration of the ApplyConfiguration type for use\n// with apply.\ntype ApplyConfigurationApplyConfiguration struct {\n\tExpression *string `json:\"expression,omitempty\"`\n}\n\n// ApplyConfigurationApplyConfiguration constructs a declarative configuration of the ApplyConfiguration type for use with\n// apply.\nfunc ApplyConfiguration() *ApplyConfigurationApplyConfiguration {\n\treturn &ApplyConfigurationApplyConfiguration{}\n}\n\n// WithExpression sets the Expression field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Expression field is set to the value of the last call.\nfunc (b *ApplyConfigurationApplyConfiguration) WithExpression(value string) *ApplyConfigurationApplyConfiguration {\n\tb.Expression = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/auditannotation.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// AuditAnnotationApplyConfiguration represents a declarative configuration of the AuditAnnotation type for use\n// with apply.\ntype AuditAnnotationApplyConfiguration struct {\n\tKey             *string `json:\"key,omitempty\"`\n\tValueExpression *string `json:\"valueExpression,omitempty\"`\n}\n\n// AuditAnnotationApplyConfiguration constructs a declarative configuration of the AuditAnnotation type for use with\n// apply.\nfunc AuditAnnotation() *AuditAnnotationApplyConfiguration {\n\treturn &AuditAnnotationApplyConfiguration{}\n}\n\n// WithKey sets the Key field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Key field is set to the value of the last call.\nfunc (b *AuditAnnotationApplyConfiguration) WithKey(value string) *AuditAnnotationApplyConfiguration {\n\tb.Key = &value\n\treturn b\n}\n\n// WithValueExpression sets the ValueExpression field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ValueExpression field is set to the value of the last call.\nfunc (b *AuditAnnotationApplyConfiguration) WithValueExpression(value string) *AuditAnnotationApplyConfiguration {\n\tb.ValueExpression = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/expressionwarning.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// ExpressionWarningApplyConfiguration represents a declarative configuration of the ExpressionWarning type for use\n// with apply.\ntype ExpressionWarningApplyConfiguration struct {\n\tFieldRef *string `json:\"fieldRef,omitempty\"`\n\tWarning  *string `json:\"warning,omitempty\"`\n}\n\n// ExpressionWarningApplyConfiguration constructs a declarative configuration of the ExpressionWarning type for use with\n// apply.\nfunc ExpressionWarning() *ExpressionWarningApplyConfiguration {\n\treturn &ExpressionWarningApplyConfiguration{}\n}\n\n// WithFieldRef sets the FieldRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FieldRef field is set to the value of the last call.\nfunc (b *ExpressionWarningApplyConfiguration) WithFieldRef(value string) *ExpressionWarningApplyConfiguration {\n\tb.FieldRef = &value\n\treturn b\n}\n\n// WithWarning sets the Warning field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Warning field is set to the value of the last call.\nfunc (b *ExpressionWarningApplyConfiguration) WithWarning(value string) *ExpressionWarningApplyConfiguration {\n\tb.Warning = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/jsonpatch.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// JSONPatchApplyConfiguration represents a declarative configuration of the JSONPatch type for use\n// with apply.\ntype JSONPatchApplyConfiguration struct {\n\tExpression *string `json:\"expression,omitempty\"`\n}\n\n// JSONPatchApplyConfiguration constructs a declarative configuration of the JSONPatch type for use with\n// apply.\nfunc JSONPatch() *JSONPatchApplyConfiguration {\n\treturn &JSONPatchApplyConfiguration{}\n}\n\n// WithExpression sets the Expression field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Expression field is set to the value of the last call.\nfunc (b *JSONPatchApplyConfiguration) WithExpression(value string) *JSONPatchApplyConfiguration {\n\tb.Expression = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/matchcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// MatchConditionApplyConfiguration represents a declarative configuration of the MatchCondition type for use\n// with apply.\ntype MatchConditionApplyConfiguration struct {\n\tName       *string `json:\"name,omitempty\"`\n\tExpression *string `json:\"expression,omitempty\"`\n}\n\n// MatchConditionApplyConfiguration constructs a declarative configuration of the MatchCondition type for use with\n// apply.\nfunc MatchCondition() *MatchConditionApplyConfiguration {\n\treturn &MatchConditionApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *MatchConditionApplyConfiguration) WithName(value string) *MatchConditionApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithExpression sets the Expression field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Expression field is set to the value of the last call.\nfunc (b *MatchConditionApplyConfiguration) WithExpression(value string) *MatchConditionApplyConfiguration {\n\tb.Expression = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/matchresources.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tadmissionregistrationv1alpha1 \"k8s.io/api/admissionregistration/v1alpha1\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// MatchResourcesApplyConfiguration represents a declarative configuration of the MatchResources type for use\n// with apply.\ntype MatchResourcesApplyConfiguration struct {\n\tNamespaceSelector    *v1.LabelSelectorApplyConfiguration            `json:\"namespaceSelector,omitempty\"`\n\tObjectSelector       *v1.LabelSelectorApplyConfiguration            `json:\"objectSelector,omitempty\"`\n\tResourceRules        []NamedRuleWithOperationsApplyConfiguration    `json:\"resourceRules,omitempty\"`\n\tExcludeResourceRules []NamedRuleWithOperationsApplyConfiguration    `json:\"excludeResourceRules,omitempty\"`\n\tMatchPolicy          *admissionregistrationv1alpha1.MatchPolicyType `json:\"matchPolicy,omitempty\"`\n}\n\n// MatchResourcesApplyConfiguration constructs a declarative configuration of the MatchResources type for use with\n// apply.\nfunc MatchResources() *MatchResourcesApplyConfiguration {\n\treturn &MatchResourcesApplyConfiguration{}\n}\n\n// WithNamespaceSelector sets the NamespaceSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NamespaceSelector field is set to the value of the last call.\nfunc (b *MatchResourcesApplyConfiguration) WithNamespaceSelector(value *v1.LabelSelectorApplyConfiguration) *MatchResourcesApplyConfiguration {\n\tb.NamespaceSelector = value\n\treturn b\n}\n\n// WithObjectSelector sets the ObjectSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObjectSelector field is set to the value of the last call.\nfunc (b *MatchResourcesApplyConfiguration) WithObjectSelector(value *v1.LabelSelectorApplyConfiguration) *MatchResourcesApplyConfiguration {\n\tb.ObjectSelector = value\n\treturn b\n}\n\n// WithResourceRules adds the given value to the ResourceRules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ResourceRules field.\nfunc (b *MatchResourcesApplyConfiguration) WithResourceRules(values ...*NamedRuleWithOperationsApplyConfiguration) *MatchResourcesApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithResourceRules\")\n\t\t}\n\t\tb.ResourceRules = append(b.ResourceRules, *values[i])\n\t}\n\treturn b\n}\n\n// WithExcludeResourceRules adds the given value to the ExcludeResourceRules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ExcludeResourceRules field.\nfunc (b *MatchResourcesApplyConfiguration) WithExcludeResourceRules(values ...*NamedRuleWithOperationsApplyConfiguration) *MatchResourcesApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithExcludeResourceRules\")\n\t\t}\n\t\tb.ExcludeResourceRules = append(b.ExcludeResourceRules, *values[i])\n\t}\n\treturn b\n}\n\n// WithMatchPolicy sets the MatchPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MatchPolicy field is set to the value of the last call.\nfunc (b *MatchResourcesApplyConfiguration) WithMatchPolicy(value admissionregistrationv1alpha1.MatchPolicyType) *MatchResourcesApplyConfiguration {\n\tb.MatchPolicy = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/mutatingadmissionpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tadmissionregistrationv1alpha1 \"k8s.io/api/admissionregistration/v1alpha1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// MutatingAdmissionPolicyApplyConfiguration represents a declarative configuration of the MutatingAdmissionPolicy type for use\n// with apply.\ntype MutatingAdmissionPolicyApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *MutatingAdmissionPolicySpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// MutatingAdmissionPolicy constructs a declarative configuration of the MutatingAdmissionPolicy type for use with\n// apply.\nfunc MutatingAdmissionPolicy(name string) *MutatingAdmissionPolicyApplyConfiguration {\n\tb := &MutatingAdmissionPolicyApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"MutatingAdmissionPolicy\")\n\tb.WithAPIVersion(\"admissionregistration.k8s.io/v1alpha1\")\n\treturn b\n}\n\n// ExtractMutatingAdmissionPolicy extracts the applied configuration owned by fieldManager from\n// mutatingAdmissionPolicy. If no managedFields are found in mutatingAdmissionPolicy for fieldManager, a\n// MutatingAdmissionPolicyApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// mutatingAdmissionPolicy must be a unmodified MutatingAdmissionPolicy API object that was retrieved from the Kubernetes API.\n// ExtractMutatingAdmissionPolicy provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractMutatingAdmissionPolicy(mutatingAdmissionPolicy *admissionregistrationv1alpha1.MutatingAdmissionPolicy, fieldManager string) (*MutatingAdmissionPolicyApplyConfiguration, error) {\n\treturn extractMutatingAdmissionPolicy(mutatingAdmissionPolicy, fieldManager, \"\")\n}\n\n// ExtractMutatingAdmissionPolicyStatus is the same as ExtractMutatingAdmissionPolicy except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractMutatingAdmissionPolicyStatus(mutatingAdmissionPolicy *admissionregistrationv1alpha1.MutatingAdmissionPolicy, fieldManager string) (*MutatingAdmissionPolicyApplyConfiguration, error) {\n\treturn extractMutatingAdmissionPolicy(mutatingAdmissionPolicy, fieldManager, \"status\")\n}\n\nfunc extractMutatingAdmissionPolicy(mutatingAdmissionPolicy *admissionregistrationv1alpha1.MutatingAdmissionPolicy, fieldManager string, subresource string) (*MutatingAdmissionPolicyApplyConfiguration, error) {\n\tb := &MutatingAdmissionPolicyApplyConfiguration{}\n\terr := managedfields.ExtractInto(mutatingAdmissionPolicy, internal.Parser().Type(\"io.k8s.api.admissionregistration.v1alpha1.MutatingAdmissionPolicy\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(mutatingAdmissionPolicy.Name)\n\n\tb.WithKind(\"MutatingAdmissionPolicy\")\n\tb.WithAPIVersion(\"admissionregistration.k8s.io/v1alpha1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *MutatingAdmissionPolicyApplyConfiguration) WithKind(value string) *MutatingAdmissionPolicyApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *MutatingAdmissionPolicyApplyConfiguration) WithAPIVersion(value string) *MutatingAdmissionPolicyApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *MutatingAdmissionPolicyApplyConfiguration) WithName(value string) *MutatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *MutatingAdmissionPolicyApplyConfiguration) WithGenerateName(value string) *MutatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *MutatingAdmissionPolicyApplyConfiguration) WithNamespace(value string) *MutatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *MutatingAdmissionPolicyApplyConfiguration) WithUID(value types.UID) *MutatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *MutatingAdmissionPolicyApplyConfiguration) WithResourceVersion(value string) *MutatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *MutatingAdmissionPolicyApplyConfiguration) WithGeneration(value int64) *MutatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *MutatingAdmissionPolicyApplyConfiguration) WithCreationTimestamp(value metav1.Time) *MutatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *MutatingAdmissionPolicyApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *MutatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *MutatingAdmissionPolicyApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *MutatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *MutatingAdmissionPolicyApplyConfiguration) WithLabels(entries map[string]string) *MutatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *MutatingAdmissionPolicyApplyConfiguration) WithAnnotations(entries map[string]string) *MutatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *MutatingAdmissionPolicyApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *MutatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *MutatingAdmissionPolicyApplyConfiguration) WithFinalizers(values ...string) *MutatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *MutatingAdmissionPolicyApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *MutatingAdmissionPolicyApplyConfiguration) WithSpec(value *MutatingAdmissionPolicySpecApplyConfiguration) *MutatingAdmissionPolicyApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *MutatingAdmissionPolicyApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/mutatingadmissionpolicybinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tadmissionregistrationv1alpha1 \"k8s.io/api/admissionregistration/v1alpha1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// MutatingAdmissionPolicyBindingApplyConfiguration represents a declarative configuration of the MutatingAdmissionPolicyBinding type for use\n// with apply.\ntype MutatingAdmissionPolicyBindingApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *MutatingAdmissionPolicyBindingSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// MutatingAdmissionPolicyBinding constructs a declarative configuration of the MutatingAdmissionPolicyBinding type for use with\n// apply.\nfunc MutatingAdmissionPolicyBinding(name string) *MutatingAdmissionPolicyBindingApplyConfiguration {\n\tb := &MutatingAdmissionPolicyBindingApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"MutatingAdmissionPolicyBinding\")\n\tb.WithAPIVersion(\"admissionregistration.k8s.io/v1alpha1\")\n\treturn b\n}\n\n// ExtractMutatingAdmissionPolicyBinding extracts the applied configuration owned by fieldManager from\n// mutatingAdmissionPolicyBinding. If no managedFields are found in mutatingAdmissionPolicyBinding for fieldManager, a\n// MutatingAdmissionPolicyBindingApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// mutatingAdmissionPolicyBinding must be a unmodified MutatingAdmissionPolicyBinding API object that was retrieved from the Kubernetes API.\n// ExtractMutatingAdmissionPolicyBinding provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractMutatingAdmissionPolicyBinding(mutatingAdmissionPolicyBinding *admissionregistrationv1alpha1.MutatingAdmissionPolicyBinding, fieldManager string) (*MutatingAdmissionPolicyBindingApplyConfiguration, error) {\n\treturn extractMutatingAdmissionPolicyBinding(mutatingAdmissionPolicyBinding, fieldManager, \"\")\n}\n\n// ExtractMutatingAdmissionPolicyBindingStatus is the same as ExtractMutatingAdmissionPolicyBinding except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractMutatingAdmissionPolicyBindingStatus(mutatingAdmissionPolicyBinding *admissionregistrationv1alpha1.MutatingAdmissionPolicyBinding, fieldManager string) (*MutatingAdmissionPolicyBindingApplyConfiguration, error) {\n\treturn extractMutatingAdmissionPolicyBinding(mutatingAdmissionPolicyBinding, fieldManager, \"status\")\n}\n\nfunc extractMutatingAdmissionPolicyBinding(mutatingAdmissionPolicyBinding *admissionregistrationv1alpha1.MutatingAdmissionPolicyBinding, fieldManager string, subresource string) (*MutatingAdmissionPolicyBindingApplyConfiguration, error) {\n\tb := &MutatingAdmissionPolicyBindingApplyConfiguration{}\n\terr := managedfields.ExtractInto(mutatingAdmissionPolicyBinding, internal.Parser().Type(\"io.k8s.api.admissionregistration.v1alpha1.MutatingAdmissionPolicyBinding\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(mutatingAdmissionPolicyBinding.Name)\n\n\tb.WithKind(\"MutatingAdmissionPolicyBinding\")\n\tb.WithAPIVersion(\"admissionregistration.k8s.io/v1alpha1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *MutatingAdmissionPolicyBindingApplyConfiguration) WithKind(value string) *MutatingAdmissionPolicyBindingApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *MutatingAdmissionPolicyBindingApplyConfiguration) WithAPIVersion(value string) *MutatingAdmissionPolicyBindingApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *MutatingAdmissionPolicyBindingApplyConfiguration) WithName(value string) *MutatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *MutatingAdmissionPolicyBindingApplyConfiguration) WithGenerateName(value string) *MutatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *MutatingAdmissionPolicyBindingApplyConfiguration) WithNamespace(value string) *MutatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *MutatingAdmissionPolicyBindingApplyConfiguration) WithUID(value types.UID) *MutatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *MutatingAdmissionPolicyBindingApplyConfiguration) WithResourceVersion(value string) *MutatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *MutatingAdmissionPolicyBindingApplyConfiguration) WithGeneration(value int64) *MutatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *MutatingAdmissionPolicyBindingApplyConfiguration) WithCreationTimestamp(value metav1.Time) *MutatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *MutatingAdmissionPolicyBindingApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *MutatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *MutatingAdmissionPolicyBindingApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *MutatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *MutatingAdmissionPolicyBindingApplyConfiguration) WithLabels(entries map[string]string) *MutatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *MutatingAdmissionPolicyBindingApplyConfiguration) WithAnnotations(entries map[string]string) *MutatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *MutatingAdmissionPolicyBindingApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *MutatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *MutatingAdmissionPolicyBindingApplyConfiguration) WithFinalizers(values ...string) *MutatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *MutatingAdmissionPolicyBindingApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *MutatingAdmissionPolicyBindingApplyConfiguration) WithSpec(value *MutatingAdmissionPolicyBindingSpecApplyConfiguration) *MutatingAdmissionPolicyBindingApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *MutatingAdmissionPolicyBindingApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/mutatingadmissionpolicybindingspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// MutatingAdmissionPolicyBindingSpecApplyConfiguration represents a declarative configuration of the MutatingAdmissionPolicyBindingSpec type for use\n// with apply.\ntype MutatingAdmissionPolicyBindingSpecApplyConfiguration struct {\n\tPolicyName     *string                           `json:\"policyName,omitempty\"`\n\tParamRef       *ParamRefApplyConfiguration       `json:\"paramRef,omitempty\"`\n\tMatchResources *MatchResourcesApplyConfiguration `json:\"matchResources,omitempty\"`\n}\n\n// MutatingAdmissionPolicyBindingSpecApplyConfiguration constructs a declarative configuration of the MutatingAdmissionPolicyBindingSpec type for use with\n// apply.\nfunc MutatingAdmissionPolicyBindingSpec() *MutatingAdmissionPolicyBindingSpecApplyConfiguration {\n\treturn &MutatingAdmissionPolicyBindingSpecApplyConfiguration{}\n}\n\n// WithPolicyName sets the PolicyName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PolicyName field is set to the value of the last call.\nfunc (b *MutatingAdmissionPolicyBindingSpecApplyConfiguration) WithPolicyName(value string) *MutatingAdmissionPolicyBindingSpecApplyConfiguration {\n\tb.PolicyName = &value\n\treturn b\n}\n\n// WithParamRef sets the ParamRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ParamRef field is set to the value of the last call.\nfunc (b *MutatingAdmissionPolicyBindingSpecApplyConfiguration) WithParamRef(value *ParamRefApplyConfiguration) *MutatingAdmissionPolicyBindingSpecApplyConfiguration {\n\tb.ParamRef = value\n\treturn b\n}\n\n// WithMatchResources sets the MatchResources field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MatchResources field is set to the value of the last call.\nfunc (b *MutatingAdmissionPolicyBindingSpecApplyConfiguration) WithMatchResources(value *MatchResourcesApplyConfiguration) *MutatingAdmissionPolicyBindingSpecApplyConfiguration {\n\tb.MatchResources = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/mutatingadmissionpolicyspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tv1 \"k8s.io/api/admissionregistration/v1\"\n\tadmissionregistrationv1alpha1 \"k8s.io/api/admissionregistration/v1alpha1\"\n)\n\n// MutatingAdmissionPolicySpecApplyConfiguration represents a declarative configuration of the MutatingAdmissionPolicySpec type for use\n// with apply.\ntype MutatingAdmissionPolicySpecApplyConfiguration struct {\n\tParamKind          *ParamKindApplyConfiguration                     `json:\"paramKind,omitempty\"`\n\tMatchConstraints   *MatchResourcesApplyConfiguration                `json:\"matchConstraints,omitempty\"`\n\tVariables          []VariableApplyConfiguration                     `json:\"variables,omitempty\"`\n\tMutations          []MutationApplyConfiguration                     `json:\"mutations,omitempty\"`\n\tFailurePolicy      *admissionregistrationv1alpha1.FailurePolicyType `json:\"failurePolicy,omitempty\"`\n\tMatchConditions    []MatchConditionApplyConfiguration               `json:\"matchConditions,omitempty\"`\n\tReinvocationPolicy *v1.ReinvocationPolicyType                       `json:\"reinvocationPolicy,omitempty\"`\n}\n\n// MutatingAdmissionPolicySpecApplyConfiguration constructs a declarative configuration of the MutatingAdmissionPolicySpec type for use with\n// apply.\nfunc MutatingAdmissionPolicySpec() *MutatingAdmissionPolicySpecApplyConfiguration {\n\treturn &MutatingAdmissionPolicySpecApplyConfiguration{}\n}\n\n// WithParamKind sets the ParamKind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ParamKind field is set to the value of the last call.\nfunc (b *MutatingAdmissionPolicySpecApplyConfiguration) WithParamKind(value *ParamKindApplyConfiguration) *MutatingAdmissionPolicySpecApplyConfiguration {\n\tb.ParamKind = value\n\treturn b\n}\n\n// WithMatchConstraints sets the MatchConstraints field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MatchConstraints field is set to the value of the last call.\nfunc (b *MutatingAdmissionPolicySpecApplyConfiguration) WithMatchConstraints(value *MatchResourcesApplyConfiguration) *MutatingAdmissionPolicySpecApplyConfiguration {\n\tb.MatchConstraints = value\n\treturn b\n}\n\n// WithVariables adds the given value to the Variables field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Variables field.\nfunc (b *MutatingAdmissionPolicySpecApplyConfiguration) WithVariables(values ...*VariableApplyConfiguration) *MutatingAdmissionPolicySpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithVariables\")\n\t\t}\n\t\tb.Variables = append(b.Variables, *values[i])\n\t}\n\treturn b\n}\n\n// WithMutations adds the given value to the Mutations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Mutations field.\nfunc (b *MutatingAdmissionPolicySpecApplyConfiguration) WithMutations(values ...*MutationApplyConfiguration) *MutatingAdmissionPolicySpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithMutations\")\n\t\t}\n\t\tb.Mutations = append(b.Mutations, *values[i])\n\t}\n\treturn b\n}\n\n// WithFailurePolicy sets the FailurePolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FailurePolicy field is set to the value of the last call.\nfunc (b *MutatingAdmissionPolicySpecApplyConfiguration) WithFailurePolicy(value admissionregistrationv1alpha1.FailurePolicyType) *MutatingAdmissionPolicySpecApplyConfiguration {\n\tb.FailurePolicy = &value\n\treturn b\n}\n\n// WithMatchConditions adds the given value to the MatchConditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the MatchConditions field.\nfunc (b *MutatingAdmissionPolicySpecApplyConfiguration) WithMatchConditions(values ...*MatchConditionApplyConfiguration) *MutatingAdmissionPolicySpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithMatchConditions\")\n\t\t}\n\t\tb.MatchConditions = append(b.MatchConditions, *values[i])\n\t}\n\treturn b\n}\n\n// WithReinvocationPolicy sets the ReinvocationPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReinvocationPolicy field is set to the value of the last call.\nfunc (b *MutatingAdmissionPolicySpecApplyConfiguration) WithReinvocationPolicy(value v1.ReinvocationPolicyType) *MutatingAdmissionPolicySpecApplyConfiguration {\n\tb.ReinvocationPolicy = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/mutation.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tadmissionregistrationv1alpha1 \"k8s.io/api/admissionregistration/v1alpha1\"\n)\n\n// MutationApplyConfiguration represents a declarative configuration of the Mutation type for use\n// with apply.\ntype MutationApplyConfiguration struct {\n\tPatchType          *admissionregistrationv1alpha1.PatchType `json:\"patchType,omitempty\"`\n\tApplyConfiguration *ApplyConfigurationApplyConfiguration    `json:\"applyConfiguration,omitempty\"`\n\tJSONPatch          *JSONPatchApplyConfiguration             `json:\"jsonPatch,omitempty\"`\n}\n\n// MutationApplyConfiguration constructs a declarative configuration of the Mutation type for use with\n// apply.\nfunc Mutation() *MutationApplyConfiguration {\n\treturn &MutationApplyConfiguration{}\n}\n\n// WithPatchType sets the PatchType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PatchType field is set to the value of the last call.\nfunc (b *MutationApplyConfiguration) WithPatchType(value admissionregistrationv1alpha1.PatchType) *MutationApplyConfiguration {\n\tb.PatchType = &value\n\treturn b\n}\n\n// WithApplyConfiguration sets the ApplyConfiguration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ApplyConfiguration field is set to the value of the last call.\nfunc (b *MutationApplyConfiguration) WithApplyConfiguration(value *ApplyConfigurationApplyConfiguration) *MutationApplyConfiguration {\n\tb.ApplyConfiguration = value\n\treturn b\n}\n\n// WithJSONPatch sets the JSONPatch field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the JSONPatch field is set to the value of the last call.\nfunc (b *MutationApplyConfiguration) WithJSONPatch(value *JSONPatchApplyConfiguration) *MutationApplyConfiguration {\n\tb.JSONPatch = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/namedrulewithoperations.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tadmissionregistrationv1 \"k8s.io/api/admissionregistration/v1\"\n\tv1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1\"\n)\n\n// NamedRuleWithOperationsApplyConfiguration represents a declarative configuration of the NamedRuleWithOperations type for use\n// with apply.\ntype NamedRuleWithOperationsApplyConfiguration struct {\n\tResourceNames                           []string `json:\"resourceNames,omitempty\"`\n\tv1.RuleWithOperationsApplyConfiguration `json:\",inline\"`\n}\n\n// NamedRuleWithOperationsApplyConfiguration constructs a declarative configuration of the NamedRuleWithOperations type for use with\n// apply.\nfunc NamedRuleWithOperations() *NamedRuleWithOperationsApplyConfiguration {\n\treturn &NamedRuleWithOperationsApplyConfiguration{}\n}\n\n// WithResourceNames adds the given value to the ResourceNames field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ResourceNames field.\nfunc (b *NamedRuleWithOperationsApplyConfiguration) WithResourceNames(values ...string) *NamedRuleWithOperationsApplyConfiguration {\n\tfor i := range values {\n\t\tb.ResourceNames = append(b.ResourceNames, values[i])\n\t}\n\treturn b\n}\n\n// WithOperations adds the given value to the Operations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Operations field.\nfunc (b *NamedRuleWithOperationsApplyConfiguration) WithOperations(values ...admissionregistrationv1.OperationType) *NamedRuleWithOperationsApplyConfiguration {\n\tfor i := range values {\n\t\tb.RuleWithOperationsApplyConfiguration.Operations = append(b.RuleWithOperationsApplyConfiguration.Operations, values[i])\n\t}\n\treturn b\n}\n\n// WithAPIGroups adds the given value to the APIGroups field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the APIGroups field.\nfunc (b *NamedRuleWithOperationsApplyConfiguration) WithAPIGroups(values ...string) *NamedRuleWithOperationsApplyConfiguration {\n\tfor i := range values {\n\t\tb.RuleApplyConfiguration.APIGroups = append(b.RuleApplyConfiguration.APIGroups, values[i])\n\t}\n\treturn b\n}\n\n// WithAPIVersions adds the given value to the APIVersions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the APIVersions field.\nfunc (b *NamedRuleWithOperationsApplyConfiguration) WithAPIVersions(values ...string) *NamedRuleWithOperationsApplyConfiguration {\n\tfor i := range values {\n\t\tb.RuleApplyConfiguration.APIVersions = append(b.RuleApplyConfiguration.APIVersions, values[i])\n\t}\n\treturn b\n}\n\n// WithResources adds the given value to the Resources field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Resources field.\nfunc (b *NamedRuleWithOperationsApplyConfiguration) WithResources(values ...string) *NamedRuleWithOperationsApplyConfiguration {\n\tfor i := range values {\n\t\tb.RuleApplyConfiguration.Resources = append(b.RuleApplyConfiguration.Resources, values[i])\n\t}\n\treturn b\n}\n\n// WithScope sets the Scope field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Scope field is set to the value of the last call.\nfunc (b *NamedRuleWithOperationsApplyConfiguration) WithScope(value admissionregistrationv1.ScopeType) *NamedRuleWithOperationsApplyConfiguration {\n\tb.RuleApplyConfiguration.Scope = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/paramkind.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// ParamKindApplyConfiguration represents a declarative configuration of the ParamKind type for use\n// with apply.\ntype ParamKindApplyConfiguration struct {\n\tAPIVersion *string `json:\"apiVersion,omitempty\"`\n\tKind       *string `json:\"kind,omitempty\"`\n}\n\n// ParamKindApplyConfiguration constructs a declarative configuration of the ParamKind type for use with\n// apply.\nfunc ParamKind() *ParamKindApplyConfiguration {\n\treturn &ParamKindApplyConfiguration{}\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ParamKindApplyConfiguration) WithAPIVersion(value string) *ParamKindApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ParamKindApplyConfiguration) WithKind(value string) *ParamKindApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/paramref.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tadmissionregistrationv1alpha1 \"k8s.io/api/admissionregistration/v1alpha1\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ParamRefApplyConfiguration represents a declarative configuration of the ParamRef type for use\n// with apply.\ntype ParamRefApplyConfiguration struct {\n\tName                    *string                                                    `json:\"name,omitempty\"`\n\tNamespace               *string                                                    `json:\"namespace,omitempty\"`\n\tSelector                *v1.LabelSelectorApplyConfiguration                        `json:\"selector,omitempty\"`\n\tParameterNotFoundAction *admissionregistrationv1alpha1.ParameterNotFoundActionType `json:\"parameterNotFoundAction,omitempty\"`\n}\n\n// ParamRefApplyConfiguration constructs a declarative configuration of the ParamRef type for use with\n// apply.\nfunc ParamRef() *ParamRefApplyConfiguration {\n\treturn &ParamRefApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ParamRefApplyConfiguration) WithName(value string) *ParamRefApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ParamRefApplyConfiguration) WithNamespace(value string) *ParamRefApplyConfiguration {\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *ParamRefApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *ParamRefApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n\n// WithParameterNotFoundAction sets the ParameterNotFoundAction field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ParameterNotFoundAction field is set to the value of the last call.\nfunc (b *ParamRefApplyConfiguration) WithParameterNotFoundAction(value admissionregistrationv1alpha1.ParameterNotFoundActionType) *ParamRefApplyConfiguration {\n\tb.ParameterNotFoundAction = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/typechecking.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// TypeCheckingApplyConfiguration represents a declarative configuration of the TypeChecking type for use\n// with apply.\ntype TypeCheckingApplyConfiguration struct {\n\tExpressionWarnings []ExpressionWarningApplyConfiguration `json:\"expressionWarnings,omitempty\"`\n}\n\n// TypeCheckingApplyConfiguration constructs a declarative configuration of the TypeChecking type for use with\n// apply.\nfunc TypeChecking() *TypeCheckingApplyConfiguration {\n\treturn &TypeCheckingApplyConfiguration{}\n}\n\n// WithExpressionWarnings adds the given value to the ExpressionWarnings field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ExpressionWarnings field.\nfunc (b *TypeCheckingApplyConfiguration) WithExpressionWarnings(values ...*ExpressionWarningApplyConfiguration) *TypeCheckingApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithExpressionWarnings\")\n\t\t}\n\t\tb.ExpressionWarnings = append(b.ExpressionWarnings, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/validatingadmissionpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tadmissionregistrationv1alpha1 \"k8s.io/api/admissionregistration/v1alpha1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ValidatingAdmissionPolicyApplyConfiguration represents a declarative configuration of the ValidatingAdmissionPolicy type for use\n// with apply.\ntype ValidatingAdmissionPolicyApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *ValidatingAdmissionPolicySpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *ValidatingAdmissionPolicyStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// ValidatingAdmissionPolicy constructs a declarative configuration of the ValidatingAdmissionPolicy type for use with\n// apply.\nfunc ValidatingAdmissionPolicy(name string) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb := &ValidatingAdmissionPolicyApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"ValidatingAdmissionPolicy\")\n\tb.WithAPIVersion(\"admissionregistration.k8s.io/v1alpha1\")\n\treturn b\n}\n\n// ExtractValidatingAdmissionPolicy extracts the applied configuration owned by fieldManager from\n// validatingAdmissionPolicy. If no managedFields are found in validatingAdmissionPolicy for fieldManager, a\n// ValidatingAdmissionPolicyApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// validatingAdmissionPolicy must be a unmodified ValidatingAdmissionPolicy API object that was retrieved from the Kubernetes API.\n// ExtractValidatingAdmissionPolicy provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractValidatingAdmissionPolicy(validatingAdmissionPolicy *admissionregistrationv1alpha1.ValidatingAdmissionPolicy, fieldManager string) (*ValidatingAdmissionPolicyApplyConfiguration, error) {\n\treturn extractValidatingAdmissionPolicy(validatingAdmissionPolicy, fieldManager, \"\")\n}\n\n// ExtractValidatingAdmissionPolicyStatus is the same as ExtractValidatingAdmissionPolicy except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractValidatingAdmissionPolicyStatus(validatingAdmissionPolicy *admissionregistrationv1alpha1.ValidatingAdmissionPolicy, fieldManager string) (*ValidatingAdmissionPolicyApplyConfiguration, error) {\n\treturn extractValidatingAdmissionPolicy(validatingAdmissionPolicy, fieldManager, \"status\")\n}\n\nfunc extractValidatingAdmissionPolicy(validatingAdmissionPolicy *admissionregistrationv1alpha1.ValidatingAdmissionPolicy, fieldManager string, subresource string) (*ValidatingAdmissionPolicyApplyConfiguration, error) {\n\tb := &ValidatingAdmissionPolicyApplyConfiguration{}\n\terr := managedfields.ExtractInto(validatingAdmissionPolicy, internal.Parser().Type(\"io.k8s.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicy\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(validatingAdmissionPolicy.Name)\n\n\tb.WithKind(\"ValidatingAdmissionPolicy\")\n\tb.WithAPIVersion(\"admissionregistration.k8s.io/v1alpha1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithKind(value string) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithAPIVersion(value string) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithName(value string) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithGenerateName(value string) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithNamespace(value string) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithUID(value types.UID) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithResourceVersion(value string) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithGeneration(value int64) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithLabels(entries map[string]string) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithAnnotations(entries map[string]string) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithFinalizers(values ...string) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithSpec(value *ValidatingAdmissionPolicySpecApplyConfiguration) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithStatus(value *ValidatingAdmissionPolicyStatusApplyConfiguration) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/validatingadmissionpolicybinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tadmissionregistrationv1alpha1 \"k8s.io/api/admissionregistration/v1alpha1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ValidatingAdmissionPolicyBindingApplyConfiguration represents a declarative configuration of the ValidatingAdmissionPolicyBinding type for use\n// with apply.\ntype ValidatingAdmissionPolicyBindingApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *ValidatingAdmissionPolicyBindingSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// ValidatingAdmissionPolicyBinding constructs a declarative configuration of the ValidatingAdmissionPolicyBinding type for use with\n// apply.\nfunc ValidatingAdmissionPolicyBinding(name string) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb := &ValidatingAdmissionPolicyBindingApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"ValidatingAdmissionPolicyBinding\")\n\tb.WithAPIVersion(\"admissionregistration.k8s.io/v1alpha1\")\n\treturn b\n}\n\n// ExtractValidatingAdmissionPolicyBinding extracts the applied configuration owned by fieldManager from\n// validatingAdmissionPolicyBinding. If no managedFields are found in validatingAdmissionPolicyBinding for fieldManager, a\n// ValidatingAdmissionPolicyBindingApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// validatingAdmissionPolicyBinding must be a unmodified ValidatingAdmissionPolicyBinding API object that was retrieved from the Kubernetes API.\n// ExtractValidatingAdmissionPolicyBinding provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractValidatingAdmissionPolicyBinding(validatingAdmissionPolicyBinding *admissionregistrationv1alpha1.ValidatingAdmissionPolicyBinding, fieldManager string) (*ValidatingAdmissionPolicyBindingApplyConfiguration, error) {\n\treturn extractValidatingAdmissionPolicyBinding(validatingAdmissionPolicyBinding, fieldManager, \"\")\n}\n\n// ExtractValidatingAdmissionPolicyBindingStatus is the same as ExtractValidatingAdmissionPolicyBinding except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractValidatingAdmissionPolicyBindingStatus(validatingAdmissionPolicyBinding *admissionregistrationv1alpha1.ValidatingAdmissionPolicyBinding, fieldManager string) (*ValidatingAdmissionPolicyBindingApplyConfiguration, error) {\n\treturn extractValidatingAdmissionPolicyBinding(validatingAdmissionPolicyBinding, fieldManager, \"status\")\n}\n\nfunc extractValidatingAdmissionPolicyBinding(validatingAdmissionPolicyBinding *admissionregistrationv1alpha1.ValidatingAdmissionPolicyBinding, fieldManager string, subresource string) (*ValidatingAdmissionPolicyBindingApplyConfiguration, error) {\n\tb := &ValidatingAdmissionPolicyBindingApplyConfiguration{}\n\terr := managedfields.ExtractInto(validatingAdmissionPolicyBinding, internal.Parser().Type(\"io.k8s.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicyBinding\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(validatingAdmissionPolicyBinding.Name)\n\n\tb.WithKind(\"ValidatingAdmissionPolicyBinding\")\n\tb.WithAPIVersion(\"admissionregistration.k8s.io/v1alpha1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithKind(value string) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithAPIVersion(value string) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithName(value string) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithGenerateName(value string) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithNamespace(value string) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithUID(value types.UID) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithResourceVersion(value string) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithGeneration(value int64) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithLabels(entries map[string]string) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithAnnotations(entries map[string]string) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithFinalizers(values ...string) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithSpec(value *ValidatingAdmissionPolicyBindingSpecApplyConfiguration) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/validatingadmissionpolicybindingspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tadmissionregistrationv1alpha1 \"k8s.io/api/admissionregistration/v1alpha1\"\n)\n\n// ValidatingAdmissionPolicyBindingSpecApplyConfiguration represents a declarative configuration of the ValidatingAdmissionPolicyBindingSpec type for use\n// with apply.\ntype ValidatingAdmissionPolicyBindingSpecApplyConfiguration struct {\n\tPolicyName        *string                                          `json:\"policyName,omitempty\"`\n\tParamRef          *ParamRefApplyConfiguration                      `json:\"paramRef,omitempty\"`\n\tMatchResources    *MatchResourcesApplyConfiguration                `json:\"matchResources,omitempty\"`\n\tValidationActions []admissionregistrationv1alpha1.ValidationAction `json:\"validationActions,omitempty\"`\n}\n\n// ValidatingAdmissionPolicyBindingSpecApplyConfiguration constructs a declarative configuration of the ValidatingAdmissionPolicyBindingSpec type for use with\n// apply.\nfunc ValidatingAdmissionPolicyBindingSpec() *ValidatingAdmissionPolicyBindingSpecApplyConfiguration {\n\treturn &ValidatingAdmissionPolicyBindingSpecApplyConfiguration{}\n}\n\n// WithPolicyName sets the PolicyName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PolicyName field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingSpecApplyConfiguration) WithPolicyName(value string) *ValidatingAdmissionPolicyBindingSpecApplyConfiguration {\n\tb.PolicyName = &value\n\treturn b\n}\n\n// WithParamRef sets the ParamRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ParamRef field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingSpecApplyConfiguration) WithParamRef(value *ParamRefApplyConfiguration) *ValidatingAdmissionPolicyBindingSpecApplyConfiguration {\n\tb.ParamRef = value\n\treturn b\n}\n\n// WithMatchResources sets the MatchResources field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MatchResources field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingSpecApplyConfiguration) WithMatchResources(value *MatchResourcesApplyConfiguration) *ValidatingAdmissionPolicyBindingSpecApplyConfiguration {\n\tb.MatchResources = value\n\treturn b\n}\n\n// WithValidationActions adds the given value to the ValidationActions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ValidationActions field.\nfunc (b *ValidatingAdmissionPolicyBindingSpecApplyConfiguration) WithValidationActions(values ...admissionregistrationv1alpha1.ValidationAction) *ValidatingAdmissionPolicyBindingSpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.ValidationActions = append(b.ValidationActions, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/validatingadmissionpolicyspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tadmissionregistrationv1alpha1 \"k8s.io/api/admissionregistration/v1alpha1\"\n)\n\n// ValidatingAdmissionPolicySpecApplyConfiguration represents a declarative configuration of the ValidatingAdmissionPolicySpec type for use\n// with apply.\ntype ValidatingAdmissionPolicySpecApplyConfiguration struct {\n\tParamKind        *ParamKindApplyConfiguration                     `json:\"paramKind,omitempty\"`\n\tMatchConstraints *MatchResourcesApplyConfiguration                `json:\"matchConstraints,omitempty\"`\n\tValidations      []ValidationApplyConfiguration                   `json:\"validations,omitempty\"`\n\tFailurePolicy    *admissionregistrationv1alpha1.FailurePolicyType `json:\"failurePolicy,omitempty\"`\n\tAuditAnnotations []AuditAnnotationApplyConfiguration              `json:\"auditAnnotations,omitempty\"`\n\tMatchConditions  []MatchConditionApplyConfiguration               `json:\"matchConditions,omitempty\"`\n\tVariables        []VariableApplyConfiguration                     `json:\"variables,omitempty\"`\n}\n\n// ValidatingAdmissionPolicySpecApplyConfiguration constructs a declarative configuration of the ValidatingAdmissionPolicySpec type for use with\n// apply.\nfunc ValidatingAdmissionPolicySpec() *ValidatingAdmissionPolicySpecApplyConfiguration {\n\treturn &ValidatingAdmissionPolicySpecApplyConfiguration{}\n}\n\n// WithParamKind sets the ParamKind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ParamKind field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicySpecApplyConfiguration) WithParamKind(value *ParamKindApplyConfiguration) *ValidatingAdmissionPolicySpecApplyConfiguration {\n\tb.ParamKind = value\n\treturn b\n}\n\n// WithMatchConstraints sets the MatchConstraints field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MatchConstraints field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicySpecApplyConfiguration) WithMatchConstraints(value *MatchResourcesApplyConfiguration) *ValidatingAdmissionPolicySpecApplyConfiguration {\n\tb.MatchConstraints = value\n\treturn b\n}\n\n// WithValidations adds the given value to the Validations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Validations field.\nfunc (b *ValidatingAdmissionPolicySpecApplyConfiguration) WithValidations(values ...*ValidationApplyConfiguration) *ValidatingAdmissionPolicySpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithValidations\")\n\t\t}\n\t\tb.Validations = append(b.Validations, *values[i])\n\t}\n\treturn b\n}\n\n// WithFailurePolicy sets the FailurePolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FailurePolicy field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicySpecApplyConfiguration) WithFailurePolicy(value admissionregistrationv1alpha1.FailurePolicyType) *ValidatingAdmissionPolicySpecApplyConfiguration {\n\tb.FailurePolicy = &value\n\treturn b\n}\n\n// WithAuditAnnotations adds the given value to the AuditAnnotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the AuditAnnotations field.\nfunc (b *ValidatingAdmissionPolicySpecApplyConfiguration) WithAuditAnnotations(values ...*AuditAnnotationApplyConfiguration) *ValidatingAdmissionPolicySpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithAuditAnnotations\")\n\t\t}\n\t\tb.AuditAnnotations = append(b.AuditAnnotations, *values[i])\n\t}\n\treturn b\n}\n\n// WithMatchConditions adds the given value to the MatchConditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the MatchConditions field.\nfunc (b *ValidatingAdmissionPolicySpecApplyConfiguration) WithMatchConditions(values ...*MatchConditionApplyConfiguration) *ValidatingAdmissionPolicySpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithMatchConditions\")\n\t\t}\n\t\tb.MatchConditions = append(b.MatchConditions, *values[i])\n\t}\n\treturn b\n}\n\n// WithVariables adds the given value to the Variables field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Variables field.\nfunc (b *ValidatingAdmissionPolicySpecApplyConfiguration) WithVariables(values ...*VariableApplyConfiguration) *ValidatingAdmissionPolicySpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithVariables\")\n\t\t}\n\t\tb.Variables = append(b.Variables, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/validatingadmissionpolicystatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ValidatingAdmissionPolicyStatusApplyConfiguration represents a declarative configuration of the ValidatingAdmissionPolicyStatus type for use\n// with apply.\ntype ValidatingAdmissionPolicyStatusApplyConfiguration struct {\n\tObservedGeneration *int64                           `json:\"observedGeneration,omitempty\"`\n\tTypeChecking       *TypeCheckingApplyConfiguration  `json:\"typeChecking,omitempty\"`\n\tConditions         []v1.ConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// ValidatingAdmissionPolicyStatusApplyConfiguration constructs a declarative configuration of the ValidatingAdmissionPolicyStatus type for use with\n// apply.\nfunc ValidatingAdmissionPolicyStatus() *ValidatingAdmissionPolicyStatusApplyConfiguration {\n\treturn &ValidatingAdmissionPolicyStatusApplyConfiguration{}\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyStatusApplyConfiguration) WithObservedGeneration(value int64) *ValidatingAdmissionPolicyStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithTypeChecking sets the TypeChecking field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TypeChecking field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyStatusApplyConfiguration) WithTypeChecking(value *TypeCheckingApplyConfiguration) *ValidatingAdmissionPolicyStatusApplyConfiguration {\n\tb.TypeChecking = value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *ValidatingAdmissionPolicyStatusApplyConfiguration) WithConditions(values ...*v1.ConditionApplyConfiguration) *ValidatingAdmissionPolicyStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/validation.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// ValidationApplyConfiguration represents a declarative configuration of the Validation type for use\n// with apply.\ntype ValidationApplyConfiguration struct {\n\tExpression        *string          `json:\"expression,omitempty\"`\n\tMessage           *string          `json:\"message,omitempty\"`\n\tReason            *v1.StatusReason `json:\"reason,omitempty\"`\n\tMessageExpression *string          `json:\"messageExpression,omitempty\"`\n}\n\n// ValidationApplyConfiguration constructs a declarative configuration of the Validation type for use with\n// apply.\nfunc Validation() *ValidationApplyConfiguration {\n\treturn &ValidationApplyConfiguration{}\n}\n\n// WithExpression sets the Expression field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Expression field is set to the value of the last call.\nfunc (b *ValidationApplyConfiguration) WithExpression(value string) *ValidationApplyConfiguration {\n\tb.Expression = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *ValidationApplyConfiguration) WithMessage(value string) *ValidationApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *ValidationApplyConfiguration) WithReason(value v1.StatusReason) *ValidationApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessageExpression sets the MessageExpression field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MessageExpression field is set to the value of the last call.\nfunc (b *ValidationApplyConfiguration) WithMessageExpression(value string) *ValidationApplyConfiguration {\n\tb.MessageExpression = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1/variable.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// VariableApplyConfiguration represents a declarative configuration of the Variable type for use\n// with apply.\ntype VariableApplyConfiguration struct {\n\tName       *string `json:\"name,omitempty\"`\n\tExpression *string `json:\"expression,omitempty\"`\n}\n\n// VariableApplyConfiguration constructs a declarative configuration of the Variable type for use with\n// apply.\nfunc Variable() *VariableApplyConfiguration {\n\treturn &VariableApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *VariableApplyConfiguration) WithName(value string) *VariableApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithExpression sets the Expression field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Expression field is set to the value of the last call.\nfunc (b *VariableApplyConfiguration) WithExpression(value string) *VariableApplyConfiguration {\n\tb.Expression = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/auditannotation.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// AuditAnnotationApplyConfiguration represents a declarative configuration of the AuditAnnotation type for use\n// with apply.\ntype AuditAnnotationApplyConfiguration struct {\n\tKey             *string `json:\"key,omitempty\"`\n\tValueExpression *string `json:\"valueExpression,omitempty\"`\n}\n\n// AuditAnnotationApplyConfiguration constructs a declarative configuration of the AuditAnnotation type for use with\n// apply.\nfunc AuditAnnotation() *AuditAnnotationApplyConfiguration {\n\treturn &AuditAnnotationApplyConfiguration{}\n}\n\n// WithKey sets the Key field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Key field is set to the value of the last call.\nfunc (b *AuditAnnotationApplyConfiguration) WithKey(value string) *AuditAnnotationApplyConfiguration {\n\tb.Key = &value\n\treturn b\n}\n\n// WithValueExpression sets the ValueExpression field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ValueExpression field is set to the value of the last call.\nfunc (b *AuditAnnotationApplyConfiguration) WithValueExpression(value string) *AuditAnnotationApplyConfiguration {\n\tb.ValueExpression = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/expressionwarning.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// ExpressionWarningApplyConfiguration represents a declarative configuration of the ExpressionWarning type for use\n// with apply.\ntype ExpressionWarningApplyConfiguration struct {\n\tFieldRef *string `json:\"fieldRef,omitempty\"`\n\tWarning  *string `json:\"warning,omitempty\"`\n}\n\n// ExpressionWarningApplyConfiguration constructs a declarative configuration of the ExpressionWarning type for use with\n// apply.\nfunc ExpressionWarning() *ExpressionWarningApplyConfiguration {\n\treturn &ExpressionWarningApplyConfiguration{}\n}\n\n// WithFieldRef sets the FieldRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FieldRef field is set to the value of the last call.\nfunc (b *ExpressionWarningApplyConfiguration) WithFieldRef(value string) *ExpressionWarningApplyConfiguration {\n\tb.FieldRef = &value\n\treturn b\n}\n\n// WithWarning sets the Warning field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Warning field is set to the value of the last call.\nfunc (b *ExpressionWarningApplyConfiguration) WithWarning(value string) *ExpressionWarningApplyConfiguration {\n\tb.Warning = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/matchcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// MatchConditionApplyConfiguration represents a declarative configuration of the MatchCondition type for use\n// with apply.\ntype MatchConditionApplyConfiguration struct {\n\tName       *string `json:\"name,omitempty\"`\n\tExpression *string `json:\"expression,omitempty\"`\n}\n\n// MatchConditionApplyConfiguration constructs a declarative configuration of the MatchCondition type for use with\n// apply.\nfunc MatchCondition() *MatchConditionApplyConfiguration {\n\treturn &MatchConditionApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *MatchConditionApplyConfiguration) WithName(value string) *MatchConditionApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithExpression sets the Expression field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Expression field is set to the value of the last call.\nfunc (b *MatchConditionApplyConfiguration) WithExpression(value string) *MatchConditionApplyConfiguration {\n\tb.Expression = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/matchresources.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tadmissionregistrationv1beta1 \"k8s.io/api/admissionregistration/v1beta1\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// MatchResourcesApplyConfiguration represents a declarative configuration of the MatchResources type for use\n// with apply.\ntype MatchResourcesApplyConfiguration struct {\n\tNamespaceSelector    *v1.LabelSelectorApplyConfiguration           `json:\"namespaceSelector,omitempty\"`\n\tObjectSelector       *v1.LabelSelectorApplyConfiguration           `json:\"objectSelector,omitempty\"`\n\tResourceRules        []NamedRuleWithOperationsApplyConfiguration   `json:\"resourceRules,omitempty\"`\n\tExcludeResourceRules []NamedRuleWithOperationsApplyConfiguration   `json:\"excludeResourceRules,omitempty\"`\n\tMatchPolicy          *admissionregistrationv1beta1.MatchPolicyType `json:\"matchPolicy,omitempty\"`\n}\n\n// MatchResourcesApplyConfiguration constructs a declarative configuration of the MatchResources type for use with\n// apply.\nfunc MatchResources() *MatchResourcesApplyConfiguration {\n\treturn &MatchResourcesApplyConfiguration{}\n}\n\n// WithNamespaceSelector sets the NamespaceSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NamespaceSelector field is set to the value of the last call.\nfunc (b *MatchResourcesApplyConfiguration) WithNamespaceSelector(value *v1.LabelSelectorApplyConfiguration) *MatchResourcesApplyConfiguration {\n\tb.NamespaceSelector = value\n\treturn b\n}\n\n// WithObjectSelector sets the ObjectSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObjectSelector field is set to the value of the last call.\nfunc (b *MatchResourcesApplyConfiguration) WithObjectSelector(value *v1.LabelSelectorApplyConfiguration) *MatchResourcesApplyConfiguration {\n\tb.ObjectSelector = value\n\treturn b\n}\n\n// WithResourceRules adds the given value to the ResourceRules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ResourceRules field.\nfunc (b *MatchResourcesApplyConfiguration) WithResourceRules(values ...*NamedRuleWithOperationsApplyConfiguration) *MatchResourcesApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithResourceRules\")\n\t\t}\n\t\tb.ResourceRules = append(b.ResourceRules, *values[i])\n\t}\n\treturn b\n}\n\n// WithExcludeResourceRules adds the given value to the ExcludeResourceRules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ExcludeResourceRules field.\nfunc (b *MatchResourcesApplyConfiguration) WithExcludeResourceRules(values ...*NamedRuleWithOperationsApplyConfiguration) *MatchResourcesApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithExcludeResourceRules\")\n\t\t}\n\t\tb.ExcludeResourceRules = append(b.ExcludeResourceRules, *values[i])\n\t}\n\treturn b\n}\n\n// WithMatchPolicy sets the MatchPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MatchPolicy field is set to the value of the last call.\nfunc (b *MatchResourcesApplyConfiguration) WithMatchPolicy(value admissionregistrationv1beta1.MatchPolicyType) *MatchResourcesApplyConfiguration {\n\tb.MatchPolicy = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/mutatingwebhook.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tadmissionregistrationv1beta1 \"k8s.io/api/admissionregistration/v1beta1\"\n\tv1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// MutatingWebhookApplyConfiguration represents a declarative configuration of the MutatingWebhook type for use\n// with apply.\ntype MutatingWebhookApplyConfiguration struct {\n\tName                    *string                                              `json:\"name,omitempty\"`\n\tClientConfig            *WebhookClientConfigApplyConfiguration               `json:\"clientConfig,omitempty\"`\n\tRules                   []v1.RuleWithOperationsApplyConfiguration            `json:\"rules,omitempty\"`\n\tFailurePolicy           *admissionregistrationv1beta1.FailurePolicyType      `json:\"failurePolicy,omitempty\"`\n\tMatchPolicy             *admissionregistrationv1beta1.MatchPolicyType        `json:\"matchPolicy,omitempty\"`\n\tNamespaceSelector       *metav1.LabelSelectorApplyConfiguration              `json:\"namespaceSelector,omitempty\"`\n\tObjectSelector          *metav1.LabelSelectorApplyConfiguration              `json:\"objectSelector,omitempty\"`\n\tSideEffects             *admissionregistrationv1beta1.SideEffectClass        `json:\"sideEffects,omitempty\"`\n\tTimeoutSeconds          *int32                                               `json:\"timeoutSeconds,omitempty\"`\n\tAdmissionReviewVersions []string                                             `json:\"admissionReviewVersions,omitempty\"`\n\tReinvocationPolicy      *admissionregistrationv1beta1.ReinvocationPolicyType `json:\"reinvocationPolicy,omitempty\"`\n\tMatchConditions         []MatchConditionApplyConfiguration                   `json:\"matchConditions,omitempty\"`\n}\n\n// MutatingWebhookApplyConfiguration constructs a declarative configuration of the MutatingWebhook type for use with\n// apply.\nfunc MutatingWebhook() *MutatingWebhookApplyConfiguration {\n\treturn &MutatingWebhookApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *MutatingWebhookApplyConfiguration) WithName(value string) *MutatingWebhookApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithClientConfig sets the ClientConfig field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ClientConfig field is set to the value of the last call.\nfunc (b *MutatingWebhookApplyConfiguration) WithClientConfig(value *WebhookClientConfigApplyConfiguration) *MutatingWebhookApplyConfiguration {\n\tb.ClientConfig = value\n\treturn b\n}\n\n// WithRules adds the given value to the Rules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Rules field.\nfunc (b *MutatingWebhookApplyConfiguration) WithRules(values ...*v1.RuleWithOperationsApplyConfiguration) *MutatingWebhookApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRules\")\n\t\t}\n\t\tb.Rules = append(b.Rules, *values[i])\n\t}\n\treturn b\n}\n\n// WithFailurePolicy sets the FailurePolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FailurePolicy field is set to the value of the last call.\nfunc (b *MutatingWebhookApplyConfiguration) WithFailurePolicy(value admissionregistrationv1beta1.FailurePolicyType) *MutatingWebhookApplyConfiguration {\n\tb.FailurePolicy = &value\n\treturn b\n}\n\n// WithMatchPolicy sets the MatchPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MatchPolicy field is set to the value of the last call.\nfunc (b *MutatingWebhookApplyConfiguration) WithMatchPolicy(value admissionregistrationv1beta1.MatchPolicyType) *MutatingWebhookApplyConfiguration {\n\tb.MatchPolicy = &value\n\treturn b\n}\n\n// WithNamespaceSelector sets the NamespaceSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NamespaceSelector field is set to the value of the last call.\nfunc (b *MutatingWebhookApplyConfiguration) WithNamespaceSelector(value *metav1.LabelSelectorApplyConfiguration) *MutatingWebhookApplyConfiguration {\n\tb.NamespaceSelector = value\n\treturn b\n}\n\n// WithObjectSelector sets the ObjectSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObjectSelector field is set to the value of the last call.\nfunc (b *MutatingWebhookApplyConfiguration) WithObjectSelector(value *metav1.LabelSelectorApplyConfiguration) *MutatingWebhookApplyConfiguration {\n\tb.ObjectSelector = value\n\treturn b\n}\n\n// WithSideEffects sets the SideEffects field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SideEffects field is set to the value of the last call.\nfunc (b *MutatingWebhookApplyConfiguration) WithSideEffects(value admissionregistrationv1beta1.SideEffectClass) *MutatingWebhookApplyConfiguration {\n\tb.SideEffects = &value\n\treturn b\n}\n\n// WithTimeoutSeconds sets the TimeoutSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TimeoutSeconds field is set to the value of the last call.\nfunc (b *MutatingWebhookApplyConfiguration) WithTimeoutSeconds(value int32) *MutatingWebhookApplyConfiguration {\n\tb.TimeoutSeconds = &value\n\treturn b\n}\n\n// WithAdmissionReviewVersions adds the given value to the AdmissionReviewVersions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the AdmissionReviewVersions field.\nfunc (b *MutatingWebhookApplyConfiguration) WithAdmissionReviewVersions(values ...string) *MutatingWebhookApplyConfiguration {\n\tfor i := range values {\n\t\tb.AdmissionReviewVersions = append(b.AdmissionReviewVersions, values[i])\n\t}\n\treturn b\n}\n\n// WithReinvocationPolicy sets the ReinvocationPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReinvocationPolicy field is set to the value of the last call.\nfunc (b *MutatingWebhookApplyConfiguration) WithReinvocationPolicy(value admissionregistrationv1beta1.ReinvocationPolicyType) *MutatingWebhookApplyConfiguration {\n\tb.ReinvocationPolicy = &value\n\treturn b\n}\n\n// WithMatchConditions adds the given value to the MatchConditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the MatchConditions field.\nfunc (b *MutatingWebhookApplyConfiguration) WithMatchConditions(values ...*MatchConditionApplyConfiguration) *MutatingWebhookApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithMatchConditions\")\n\t\t}\n\t\tb.MatchConditions = append(b.MatchConditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/mutatingwebhookconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tadmissionregistrationv1beta1 \"k8s.io/api/admissionregistration/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// MutatingWebhookConfigurationApplyConfiguration represents a declarative configuration of the MutatingWebhookConfiguration type for use\n// with apply.\ntype MutatingWebhookConfigurationApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tWebhooks                         []MutatingWebhookApplyConfiguration `json:\"webhooks,omitempty\"`\n}\n\n// MutatingWebhookConfiguration constructs a declarative configuration of the MutatingWebhookConfiguration type for use with\n// apply.\nfunc MutatingWebhookConfiguration(name string) *MutatingWebhookConfigurationApplyConfiguration {\n\tb := &MutatingWebhookConfigurationApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"MutatingWebhookConfiguration\")\n\tb.WithAPIVersion(\"admissionregistration.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractMutatingWebhookConfiguration extracts the applied configuration owned by fieldManager from\n// mutatingWebhookConfiguration. If no managedFields are found in mutatingWebhookConfiguration for fieldManager, a\n// MutatingWebhookConfigurationApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// mutatingWebhookConfiguration must be a unmodified MutatingWebhookConfiguration API object that was retrieved from the Kubernetes API.\n// ExtractMutatingWebhookConfiguration provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractMutatingWebhookConfiguration(mutatingWebhookConfiguration *admissionregistrationv1beta1.MutatingWebhookConfiguration, fieldManager string) (*MutatingWebhookConfigurationApplyConfiguration, error) {\n\treturn extractMutatingWebhookConfiguration(mutatingWebhookConfiguration, fieldManager, \"\")\n}\n\n// ExtractMutatingWebhookConfigurationStatus is the same as ExtractMutatingWebhookConfiguration except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractMutatingWebhookConfigurationStatus(mutatingWebhookConfiguration *admissionregistrationv1beta1.MutatingWebhookConfiguration, fieldManager string) (*MutatingWebhookConfigurationApplyConfiguration, error) {\n\treturn extractMutatingWebhookConfiguration(mutatingWebhookConfiguration, fieldManager, \"status\")\n}\n\nfunc extractMutatingWebhookConfiguration(mutatingWebhookConfiguration *admissionregistrationv1beta1.MutatingWebhookConfiguration, fieldManager string, subresource string) (*MutatingWebhookConfigurationApplyConfiguration, error) {\n\tb := &MutatingWebhookConfigurationApplyConfiguration{}\n\terr := managedfields.ExtractInto(mutatingWebhookConfiguration, internal.Parser().Type(\"io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(mutatingWebhookConfiguration.Name)\n\n\tb.WithKind(\"MutatingWebhookConfiguration\")\n\tb.WithAPIVersion(\"admissionregistration.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithKind(value string) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithAPIVersion(value string) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithName(value string) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithGenerateName(value string) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithNamespace(value string) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithUID(value types.UID) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithResourceVersion(value string) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithGeneration(value int64) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithCreationTimestamp(value metav1.Time) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithLabels(entries map[string]string) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithAnnotations(entries map[string]string) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithFinalizers(values ...string) *MutatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithWebhooks adds the given value to the Webhooks field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Webhooks field.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) WithWebhooks(values ...*MutatingWebhookApplyConfiguration) *MutatingWebhookConfigurationApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithWebhooks\")\n\t\t}\n\t\tb.Webhooks = append(b.Webhooks, *values[i])\n\t}\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *MutatingWebhookConfigurationApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/namedrulewithoperations.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tadmissionregistrationv1 \"k8s.io/api/admissionregistration/v1\"\n\tv1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1\"\n)\n\n// NamedRuleWithOperationsApplyConfiguration represents a declarative configuration of the NamedRuleWithOperations type for use\n// with apply.\ntype NamedRuleWithOperationsApplyConfiguration struct {\n\tResourceNames                           []string `json:\"resourceNames,omitempty\"`\n\tv1.RuleWithOperationsApplyConfiguration `json:\",inline\"`\n}\n\n// NamedRuleWithOperationsApplyConfiguration constructs a declarative configuration of the NamedRuleWithOperations type for use with\n// apply.\nfunc NamedRuleWithOperations() *NamedRuleWithOperationsApplyConfiguration {\n\treturn &NamedRuleWithOperationsApplyConfiguration{}\n}\n\n// WithResourceNames adds the given value to the ResourceNames field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ResourceNames field.\nfunc (b *NamedRuleWithOperationsApplyConfiguration) WithResourceNames(values ...string) *NamedRuleWithOperationsApplyConfiguration {\n\tfor i := range values {\n\t\tb.ResourceNames = append(b.ResourceNames, values[i])\n\t}\n\treturn b\n}\n\n// WithOperations adds the given value to the Operations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Operations field.\nfunc (b *NamedRuleWithOperationsApplyConfiguration) WithOperations(values ...admissionregistrationv1.OperationType) *NamedRuleWithOperationsApplyConfiguration {\n\tfor i := range values {\n\t\tb.RuleWithOperationsApplyConfiguration.Operations = append(b.RuleWithOperationsApplyConfiguration.Operations, values[i])\n\t}\n\treturn b\n}\n\n// WithAPIGroups adds the given value to the APIGroups field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the APIGroups field.\nfunc (b *NamedRuleWithOperationsApplyConfiguration) WithAPIGroups(values ...string) *NamedRuleWithOperationsApplyConfiguration {\n\tfor i := range values {\n\t\tb.RuleApplyConfiguration.APIGroups = append(b.RuleApplyConfiguration.APIGroups, values[i])\n\t}\n\treturn b\n}\n\n// WithAPIVersions adds the given value to the APIVersions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the APIVersions field.\nfunc (b *NamedRuleWithOperationsApplyConfiguration) WithAPIVersions(values ...string) *NamedRuleWithOperationsApplyConfiguration {\n\tfor i := range values {\n\t\tb.RuleApplyConfiguration.APIVersions = append(b.RuleApplyConfiguration.APIVersions, values[i])\n\t}\n\treturn b\n}\n\n// WithResources adds the given value to the Resources field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Resources field.\nfunc (b *NamedRuleWithOperationsApplyConfiguration) WithResources(values ...string) *NamedRuleWithOperationsApplyConfiguration {\n\tfor i := range values {\n\t\tb.RuleApplyConfiguration.Resources = append(b.RuleApplyConfiguration.Resources, values[i])\n\t}\n\treturn b\n}\n\n// WithScope sets the Scope field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Scope field is set to the value of the last call.\nfunc (b *NamedRuleWithOperationsApplyConfiguration) WithScope(value admissionregistrationv1.ScopeType) *NamedRuleWithOperationsApplyConfiguration {\n\tb.RuleApplyConfiguration.Scope = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/paramkind.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// ParamKindApplyConfiguration represents a declarative configuration of the ParamKind type for use\n// with apply.\ntype ParamKindApplyConfiguration struct {\n\tAPIVersion *string `json:\"apiVersion,omitempty\"`\n\tKind       *string `json:\"kind,omitempty\"`\n}\n\n// ParamKindApplyConfiguration constructs a declarative configuration of the ParamKind type for use with\n// apply.\nfunc ParamKind() *ParamKindApplyConfiguration {\n\treturn &ParamKindApplyConfiguration{}\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ParamKindApplyConfiguration) WithAPIVersion(value string) *ParamKindApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ParamKindApplyConfiguration) WithKind(value string) *ParamKindApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/paramref.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tadmissionregistrationv1beta1 \"k8s.io/api/admissionregistration/v1beta1\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ParamRefApplyConfiguration represents a declarative configuration of the ParamRef type for use\n// with apply.\ntype ParamRefApplyConfiguration struct {\n\tName                    *string                                                   `json:\"name,omitempty\"`\n\tNamespace               *string                                                   `json:\"namespace,omitempty\"`\n\tSelector                *v1.LabelSelectorApplyConfiguration                       `json:\"selector,omitempty\"`\n\tParameterNotFoundAction *admissionregistrationv1beta1.ParameterNotFoundActionType `json:\"parameterNotFoundAction,omitempty\"`\n}\n\n// ParamRefApplyConfiguration constructs a declarative configuration of the ParamRef type for use with\n// apply.\nfunc ParamRef() *ParamRefApplyConfiguration {\n\treturn &ParamRefApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ParamRefApplyConfiguration) WithName(value string) *ParamRefApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ParamRefApplyConfiguration) WithNamespace(value string) *ParamRefApplyConfiguration {\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *ParamRefApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *ParamRefApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n\n// WithParameterNotFoundAction sets the ParameterNotFoundAction field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ParameterNotFoundAction field is set to the value of the last call.\nfunc (b *ParamRefApplyConfiguration) WithParameterNotFoundAction(value admissionregistrationv1beta1.ParameterNotFoundActionType) *ParamRefApplyConfiguration {\n\tb.ParameterNotFoundAction = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/servicereference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// ServiceReferenceApplyConfiguration represents a declarative configuration of the ServiceReference type for use\n// with apply.\ntype ServiceReferenceApplyConfiguration struct {\n\tNamespace *string `json:\"namespace,omitempty\"`\n\tName      *string `json:\"name,omitempty\"`\n\tPath      *string `json:\"path,omitempty\"`\n\tPort      *int32  `json:\"port,omitempty\"`\n}\n\n// ServiceReferenceApplyConfiguration constructs a declarative configuration of the ServiceReference type for use with\n// apply.\nfunc ServiceReference() *ServiceReferenceApplyConfiguration {\n\treturn &ServiceReferenceApplyConfiguration{}\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ServiceReferenceApplyConfiguration) WithNamespace(value string) *ServiceReferenceApplyConfiguration {\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ServiceReferenceApplyConfiguration) WithName(value string) *ServiceReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithPath sets the Path field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Path field is set to the value of the last call.\nfunc (b *ServiceReferenceApplyConfiguration) WithPath(value string) *ServiceReferenceApplyConfiguration {\n\tb.Path = &value\n\treturn b\n}\n\n// WithPort sets the Port field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Port field is set to the value of the last call.\nfunc (b *ServiceReferenceApplyConfiguration) WithPort(value int32) *ServiceReferenceApplyConfiguration {\n\tb.Port = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/typechecking.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// TypeCheckingApplyConfiguration represents a declarative configuration of the TypeChecking type for use\n// with apply.\ntype TypeCheckingApplyConfiguration struct {\n\tExpressionWarnings []ExpressionWarningApplyConfiguration `json:\"expressionWarnings,omitempty\"`\n}\n\n// TypeCheckingApplyConfiguration constructs a declarative configuration of the TypeChecking type for use with\n// apply.\nfunc TypeChecking() *TypeCheckingApplyConfiguration {\n\treturn &TypeCheckingApplyConfiguration{}\n}\n\n// WithExpressionWarnings adds the given value to the ExpressionWarnings field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ExpressionWarnings field.\nfunc (b *TypeCheckingApplyConfiguration) WithExpressionWarnings(values ...*ExpressionWarningApplyConfiguration) *TypeCheckingApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithExpressionWarnings\")\n\t\t}\n\t\tb.ExpressionWarnings = append(b.ExpressionWarnings, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/validatingadmissionpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tadmissionregistrationv1beta1 \"k8s.io/api/admissionregistration/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ValidatingAdmissionPolicyApplyConfiguration represents a declarative configuration of the ValidatingAdmissionPolicy type for use\n// with apply.\ntype ValidatingAdmissionPolicyApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *ValidatingAdmissionPolicySpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *ValidatingAdmissionPolicyStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// ValidatingAdmissionPolicy constructs a declarative configuration of the ValidatingAdmissionPolicy type for use with\n// apply.\nfunc ValidatingAdmissionPolicy(name string) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb := &ValidatingAdmissionPolicyApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"ValidatingAdmissionPolicy\")\n\tb.WithAPIVersion(\"admissionregistration.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractValidatingAdmissionPolicy extracts the applied configuration owned by fieldManager from\n// validatingAdmissionPolicy. If no managedFields are found in validatingAdmissionPolicy for fieldManager, a\n// ValidatingAdmissionPolicyApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// validatingAdmissionPolicy must be a unmodified ValidatingAdmissionPolicy API object that was retrieved from the Kubernetes API.\n// ExtractValidatingAdmissionPolicy provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractValidatingAdmissionPolicy(validatingAdmissionPolicy *admissionregistrationv1beta1.ValidatingAdmissionPolicy, fieldManager string) (*ValidatingAdmissionPolicyApplyConfiguration, error) {\n\treturn extractValidatingAdmissionPolicy(validatingAdmissionPolicy, fieldManager, \"\")\n}\n\n// ExtractValidatingAdmissionPolicyStatus is the same as ExtractValidatingAdmissionPolicy except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractValidatingAdmissionPolicyStatus(validatingAdmissionPolicy *admissionregistrationv1beta1.ValidatingAdmissionPolicy, fieldManager string) (*ValidatingAdmissionPolicyApplyConfiguration, error) {\n\treturn extractValidatingAdmissionPolicy(validatingAdmissionPolicy, fieldManager, \"status\")\n}\n\nfunc extractValidatingAdmissionPolicy(validatingAdmissionPolicy *admissionregistrationv1beta1.ValidatingAdmissionPolicy, fieldManager string, subresource string) (*ValidatingAdmissionPolicyApplyConfiguration, error) {\n\tb := &ValidatingAdmissionPolicyApplyConfiguration{}\n\terr := managedfields.ExtractInto(validatingAdmissionPolicy, internal.Parser().Type(\"io.k8s.api.admissionregistration.v1beta1.ValidatingAdmissionPolicy\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(validatingAdmissionPolicy.Name)\n\n\tb.WithKind(\"ValidatingAdmissionPolicy\")\n\tb.WithAPIVersion(\"admissionregistration.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithKind(value string) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithAPIVersion(value string) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithName(value string) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithGenerateName(value string) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithNamespace(value string) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithUID(value types.UID) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithResourceVersion(value string) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithGeneration(value int64) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithLabels(entries map[string]string) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithAnnotations(entries map[string]string) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithFinalizers(values ...string) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithSpec(value *ValidatingAdmissionPolicySpecApplyConfiguration) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) WithStatus(value *ValidatingAdmissionPolicyStatusApplyConfiguration) *ValidatingAdmissionPolicyApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *ValidatingAdmissionPolicyApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/validatingadmissionpolicybinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tadmissionregistrationv1beta1 \"k8s.io/api/admissionregistration/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ValidatingAdmissionPolicyBindingApplyConfiguration represents a declarative configuration of the ValidatingAdmissionPolicyBinding type for use\n// with apply.\ntype ValidatingAdmissionPolicyBindingApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *ValidatingAdmissionPolicyBindingSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// ValidatingAdmissionPolicyBinding constructs a declarative configuration of the ValidatingAdmissionPolicyBinding type for use with\n// apply.\nfunc ValidatingAdmissionPolicyBinding(name string) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb := &ValidatingAdmissionPolicyBindingApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"ValidatingAdmissionPolicyBinding\")\n\tb.WithAPIVersion(\"admissionregistration.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractValidatingAdmissionPolicyBinding extracts the applied configuration owned by fieldManager from\n// validatingAdmissionPolicyBinding. If no managedFields are found in validatingAdmissionPolicyBinding for fieldManager, a\n// ValidatingAdmissionPolicyBindingApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// validatingAdmissionPolicyBinding must be a unmodified ValidatingAdmissionPolicyBinding API object that was retrieved from the Kubernetes API.\n// ExtractValidatingAdmissionPolicyBinding provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractValidatingAdmissionPolicyBinding(validatingAdmissionPolicyBinding *admissionregistrationv1beta1.ValidatingAdmissionPolicyBinding, fieldManager string) (*ValidatingAdmissionPolicyBindingApplyConfiguration, error) {\n\treturn extractValidatingAdmissionPolicyBinding(validatingAdmissionPolicyBinding, fieldManager, \"\")\n}\n\n// ExtractValidatingAdmissionPolicyBindingStatus is the same as ExtractValidatingAdmissionPolicyBinding except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractValidatingAdmissionPolicyBindingStatus(validatingAdmissionPolicyBinding *admissionregistrationv1beta1.ValidatingAdmissionPolicyBinding, fieldManager string) (*ValidatingAdmissionPolicyBindingApplyConfiguration, error) {\n\treturn extractValidatingAdmissionPolicyBinding(validatingAdmissionPolicyBinding, fieldManager, \"status\")\n}\n\nfunc extractValidatingAdmissionPolicyBinding(validatingAdmissionPolicyBinding *admissionregistrationv1beta1.ValidatingAdmissionPolicyBinding, fieldManager string, subresource string) (*ValidatingAdmissionPolicyBindingApplyConfiguration, error) {\n\tb := &ValidatingAdmissionPolicyBindingApplyConfiguration{}\n\terr := managedfields.ExtractInto(validatingAdmissionPolicyBinding, internal.Parser().Type(\"io.k8s.api.admissionregistration.v1beta1.ValidatingAdmissionPolicyBinding\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(validatingAdmissionPolicyBinding.Name)\n\n\tb.WithKind(\"ValidatingAdmissionPolicyBinding\")\n\tb.WithAPIVersion(\"admissionregistration.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithKind(value string) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithAPIVersion(value string) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithName(value string) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithGenerateName(value string) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithNamespace(value string) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithUID(value types.UID) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithResourceVersion(value string) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithGeneration(value int64) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithLabels(entries map[string]string) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithAnnotations(entries map[string]string) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithFinalizers(values ...string) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) WithSpec(value *ValidatingAdmissionPolicyBindingSpecApplyConfiguration) *ValidatingAdmissionPolicyBindingApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *ValidatingAdmissionPolicyBindingApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/validatingadmissionpolicybindingspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tadmissionregistrationv1beta1 \"k8s.io/api/admissionregistration/v1beta1\"\n)\n\n// ValidatingAdmissionPolicyBindingSpecApplyConfiguration represents a declarative configuration of the ValidatingAdmissionPolicyBindingSpec type for use\n// with apply.\ntype ValidatingAdmissionPolicyBindingSpecApplyConfiguration struct {\n\tPolicyName        *string                                         `json:\"policyName,omitempty\"`\n\tParamRef          *ParamRefApplyConfiguration                     `json:\"paramRef,omitempty\"`\n\tMatchResources    *MatchResourcesApplyConfiguration               `json:\"matchResources,omitempty\"`\n\tValidationActions []admissionregistrationv1beta1.ValidationAction `json:\"validationActions,omitempty\"`\n}\n\n// ValidatingAdmissionPolicyBindingSpecApplyConfiguration constructs a declarative configuration of the ValidatingAdmissionPolicyBindingSpec type for use with\n// apply.\nfunc ValidatingAdmissionPolicyBindingSpec() *ValidatingAdmissionPolicyBindingSpecApplyConfiguration {\n\treturn &ValidatingAdmissionPolicyBindingSpecApplyConfiguration{}\n}\n\n// WithPolicyName sets the PolicyName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PolicyName field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingSpecApplyConfiguration) WithPolicyName(value string) *ValidatingAdmissionPolicyBindingSpecApplyConfiguration {\n\tb.PolicyName = &value\n\treturn b\n}\n\n// WithParamRef sets the ParamRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ParamRef field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingSpecApplyConfiguration) WithParamRef(value *ParamRefApplyConfiguration) *ValidatingAdmissionPolicyBindingSpecApplyConfiguration {\n\tb.ParamRef = value\n\treturn b\n}\n\n// WithMatchResources sets the MatchResources field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MatchResources field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyBindingSpecApplyConfiguration) WithMatchResources(value *MatchResourcesApplyConfiguration) *ValidatingAdmissionPolicyBindingSpecApplyConfiguration {\n\tb.MatchResources = value\n\treturn b\n}\n\n// WithValidationActions adds the given value to the ValidationActions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ValidationActions field.\nfunc (b *ValidatingAdmissionPolicyBindingSpecApplyConfiguration) WithValidationActions(values ...admissionregistrationv1beta1.ValidationAction) *ValidatingAdmissionPolicyBindingSpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.ValidationActions = append(b.ValidationActions, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/validatingadmissionpolicyspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tadmissionregistrationv1beta1 \"k8s.io/api/admissionregistration/v1beta1\"\n)\n\n// ValidatingAdmissionPolicySpecApplyConfiguration represents a declarative configuration of the ValidatingAdmissionPolicySpec type for use\n// with apply.\ntype ValidatingAdmissionPolicySpecApplyConfiguration struct {\n\tParamKind        *ParamKindApplyConfiguration                    `json:\"paramKind,omitempty\"`\n\tMatchConstraints *MatchResourcesApplyConfiguration               `json:\"matchConstraints,omitempty\"`\n\tValidations      []ValidationApplyConfiguration                  `json:\"validations,omitempty\"`\n\tFailurePolicy    *admissionregistrationv1beta1.FailurePolicyType `json:\"failurePolicy,omitempty\"`\n\tAuditAnnotations []AuditAnnotationApplyConfiguration             `json:\"auditAnnotations,omitempty\"`\n\tMatchConditions  []MatchConditionApplyConfiguration              `json:\"matchConditions,omitempty\"`\n\tVariables        []VariableApplyConfiguration                    `json:\"variables,omitempty\"`\n}\n\n// ValidatingAdmissionPolicySpecApplyConfiguration constructs a declarative configuration of the ValidatingAdmissionPolicySpec type for use with\n// apply.\nfunc ValidatingAdmissionPolicySpec() *ValidatingAdmissionPolicySpecApplyConfiguration {\n\treturn &ValidatingAdmissionPolicySpecApplyConfiguration{}\n}\n\n// WithParamKind sets the ParamKind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ParamKind field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicySpecApplyConfiguration) WithParamKind(value *ParamKindApplyConfiguration) *ValidatingAdmissionPolicySpecApplyConfiguration {\n\tb.ParamKind = value\n\treturn b\n}\n\n// WithMatchConstraints sets the MatchConstraints field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MatchConstraints field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicySpecApplyConfiguration) WithMatchConstraints(value *MatchResourcesApplyConfiguration) *ValidatingAdmissionPolicySpecApplyConfiguration {\n\tb.MatchConstraints = value\n\treturn b\n}\n\n// WithValidations adds the given value to the Validations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Validations field.\nfunc (b *ValidatingAdmissionPolicySpecApplyConfiguration) WithValidations(values ...*ValidationApplyConfiguration) *ValidatingAdmissionPolicySpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithValidations\")\n\t\t}\n\t\tb.Validations = append(b.Validations, *values[i])\n\t}\n\treturn b\n}\n\n// WithFailurePolicy sets the FailurePolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FailurePolicy field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicySpecApplyConfiguration) WithFailurePolicy(value admissionregistrationv1beta1.FailurePolicyType) *ValidatingAdmissionPolicySpecApplyConfiguration {\n\tb.FailurePolicy = &value\n\treturn b\n}\n\n// WithAuditAnnotations adds the given value to the AuditAnnotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the AuditAnnotations field.\nfunc (b *ValidatingAdmissionPolicySpecApplyConfiguration) WithAuditAnnotations(values ...*AuditAnnotationApplyConfiguration) *ValidatingAdmissionPolicySpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithAuditAnnotations\")\n\t\t}\n\t\tb.AuditAnnotations = append(b.AuditAnnotations, *values[i])\n\t}\n\treturn b\n}\n\n// WithMatchConditions adds the given value to the MatchConditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the MatchConditions field.\nfunc (b *ValidatingAdmissionPolicySpecApplyConfiguration) WithMatchConditions(values ...*MatchConditionApplyConfiguration) *ValidatingAdmissionPolicySpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithMatchConditions\")\n\t\t}\n\t\tb.MatchConditions = append(b.MatchConditions, *values[i])\n\t}\n\treturn b\n}\n\n// WithVariables adds the given value to the Variables field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Variables field.\nfunc (b *ValidatingAdmissionPolicySpecApplyConfiguration) WithVariables(values ...*VariableApplyConfiguration) *ValidatingAdmissionPolicySpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithVariables\")\n\t\t}\n\t\tb.Variables = append(b.Variables, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/validatingadmissionpolicystatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ValidatingAdmissionPolicyStatusApplyConfiguration represents a declarative configuration of the ValidatingAdmissionPolicyStatus type for use\n// with apply.\ntype ValidatingAdmissionPolicyStatusApplyConfiguration struct {\n\tObservedGeneration *int64                           `json:\"observedGeneration,omitempty\"`\n\tTypeChecking       *TypeCheckingApplyConfiguration  `json:\"typeChecking,omitempty\"`\n\tConditions         []v1.ConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// ValidatingAdmissionPolicyStatusApplyConfiguration constructs a declarative configuration of the ValidatingAdmissionPolicyStatus type for use with\n// apply.\nfunc ValidatingAdmissionPolicyStatus() *ValidatingAdmissionPolicyStatusApplyConfiguration {\n\treturn &ValidatingAdmissionPolicyStatusApplyConfiguration{}\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyStatusApplyConfiguration) WithObservedGeneration(value int64) *ValidatingAdmissionPolicyStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithTypeChecking sets the TypeChecking field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TypeChecking field is set to the value of the last call.\nfunc (b *ValidatingAdmissionPolicyStatusApplyConfiguration) WithTypeChecking(value *TypeCheckingApplyConfiguration) *ValidatingAdmissionPolicyStatusApplyConfiguration {\n\tb.TypeChecking = value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *ValidatingAdmissionPolicyStatusApplyConfiguration) WithConditions(values ...*v1.ConditionApplyConfiguration) *ValidatingAdmissionPolicyStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/validatingwebhook.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tadmissionregistrationv1beta1 \"k8s.io/api/admissionregistration/v1beta1\"\n\tv1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ValidatingWebhookApplyConfiguration represents a declarative configuration of the ValidatingWebhook type for use\n// with apply.\ntype ValidatingWebhookApplyConfiguration struct {\n\tName                    *string                                         `json:\"name,omitempty\"`\n\tClientConfig            *WebhookClientConfigApplyConfiguration          `json:\"clientConfig,omitempty\"`\n\tRules                   []v1.RuleWithOperationsApplyConfiguration       `json:\"rules,omitempty\"`\n\tFailurePolicy           *admissionregistrationv1beta1.FailurePolicyType `json:\"failurePolicy,omitempty\"`\n\tMatchPolicy             *admissionregistrationv1beta1.MatchPolicyType   `json:\"matchPolicy,omitempty\"`\n\tNamespaceSelector       *metav1.LabelSelectorApplyConfiguration         `json:\"namespaceSelector,omitempty\"`\n\tObjectSelector          *metav1.LabelSelectorApplyConfiguration         `json:\"objectSelector,omitempty\"`\n\tSideEffects             *admissionregistrationv1beta1.SideEffectClass   `json:\"sideEffects,omitempty\"`\n\tTimeoutSeconds          *int32                                          `json:\"timeoutSeconds,omitempty\"`\n\tAdmissionReviewVersions []string                                        `json:\"admissionReviewVersions,omitempty\"`\n\tMatchConditions         []MatchConditionApplyConfiguration              `json:\"matchConditions,omitempty\"`\n}\n\n// ValidatingWebhookApplyConfiguration constructs a declarative configuration of the ValidatingWebhook type for use with\n// apply.\nfunc ValidatingWebhook() *ValidatingWebhookApplyConfiguration {\n\treturn &ValidatingWebhookApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ValidatingWebhookApplyConfiguration) WithName(value string) *ValidatingWebhookApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithClientConfig sets the ClientConfig field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ClientConfig field is set to the value of the last call.\nfunc (b *ValidatingWebhookApplyConfiguration) WithClientConfig(value *WebhookClientConfigApplyConfiguration) *ValidatingWebhookApplyConfiguration {\n\tb.ClientConfig = value\n\treturn b\n}\n\n// WithRules adds the given value to the Rules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Rules field.\nfunc (b *ValidatingWebhookApplyConfiguration) WithRules(values ...*v1.RuleWithOperationsApplyConfiguration) *ValidatingWebhookApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRules\")\n\t\t}\n\t\tb.Rules = append(b.Rules, *values[i])\n\t}\n\treturn b\n}\n\n// WithFailurePolicy sets the FailurePolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FailurePolicy field is set to the value of the last call.\nfunc (b *ValidatingWebhookApplyConfiguration) WithFailurePolicy(value admissionregistrationv1beta1.FailurePolicyType) *ValidatingWebhookApplyConfiguration {\n\tb.FailurePolicy = &value\n\treturn b\n}\n\n// WithMatchPolicy sets the MatchPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MatchPolicy field is set to the value of the last call.\nfunc (b *ValidatingWebhookApplyConfiguration) WithMatchPolicy(value admissionregistrationv1beta1.MatchPolicyType) *ValidatingWebhookApplyConfiguration {\n\tb.MatchPolicy = &value\n\treturn b\n}\n\n// WithNamespaceSelector sets the NamespaceSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NamespaceSelector field is set to the value of the last call.\nfunc (b *ValidatingWebhookApplyConfiguration) WithNamespaceSelector(value *metav1.LabelSelectorApplyConfiguration) *ValidatingWebhookApplyConfiguration {\n\tb.NamespaceSelector = value\n\treturn b\n}\n\n// WithObjectSelector sets the ObjectSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObjectSelector field is set to the value of the last call.\nfunc (b *ValidatingWebhookApplyConfiguration) WithObjectSelector(value *metav1.LabelSelectorApplyConfiguration) *ValidatingWebhookApplyConfiguration {\n\tb.ObjectSelector = value\n\treturn b\n}\n\n// WithSideEffects sets the SideEffects field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SideEffects field is set to the value of the last call.\nfunc (b *ValidatingWebhookApplyConfiguration) WithSideEffects(value admissionregistrationv1beta1.SideEffectClass) *ValidatingWebhookApplyConfiguration {\n\tb.SideEffects = &value\n\treturn b\n}\n\n// WithTimeoutSeconds sets the TimeoutSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TimeoutSeconds field is set to the value of the last call.\nfunc (b *ValidatingWebhookApplyConfiguration) WithTimeoutSeconds(value int32) *ValidatingWebhookApplyConfiguration {\n\tb.TimeoutSeconds = &value\n\treturn b\n}\n\n// WithAdmissionReviewVersions adds the given value to the AdmissionReviewVersions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the AdmissionReviewVersions field.\nfunc (b *ValidatingWebhookApplyConfiguration) WithAdmissionReviewVersions(values ...string) *ValidatingWebhookApplyConfiguration {\n\tfor i := range values {\n\t\tb.AdmissionReviewVersions = append(b.AdmissionReviewVersions, values[i])\n\t}\n\treturn b\n}\n\n// WithMatchConditions adds the given value to the MatchConditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the MatchConditions field.\nfunc (b *ValidatingWebhookApplyConfiguration) WithMatchConditions(values ...*MatchConditionApplyConfiguration) *ValidatingWebhookApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithMatchConditions\")\n\t\t}\n\t\tb.MatchConditions = append(b.MatchConditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/validatingwebhookconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tadmissionregistrationv1beta1 \"k8s.io/api/admissionregistration/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ValidatingWebhookConfigurationApplyConfiguration represents a declarative configuration of the ValidatingWebhookConfiguration type for use\n// with apply.\ntype ValidatingWebhookConfigurationApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tWebhooks                         []ValidatingWebhookApplyConfiguration `json:\"webhooks,omitempty\"`\n}\n\n// ValidatingWebhookConfiguration constructs a declarative configuration of the ValidatingWebhookConfiguration type for use with\n// apply.\nfunc ValidatingWebhookConfiguration(name string) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb := &ValidatingWebhookConfigurationApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"ValidatingWebhookConfiguration\")\n\tb.WithAPIVersion(\"admissionregistration.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractValidatingWebhookConfiguration extracts the applied configuration owned by fieldManager from\n// validatingWebhookConfiguration. If no managedFields are found in validatingWebhookConfiguration for fieldManager, a\n// ValidatingWebhookConfigurationApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// validatingWebhookConfiguration must be a unmodified ValidatingWebhookConfiguration API object that was retrieved from the Kubernetes API.\n// ExtractValidatingWebhookConfiguration provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractValidatingWebhookConfiguration(validatingWebhookConfiguration *admissionregistrationv1beta1.ValidatingWebhookConfiguration, fieldManager string) (*ValidatingWebhookConfigurationApplyConfiguration, error) {\n\treturn extractValidatingWebhookConfiguration(validatingWebhookConfiguration, fieldManager, \"\")\n}\n\n// ExtractValidatingWebhookConfigurationStatus is the same as ExtractValidatingWebhookConfiguration except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractValidatingWebhookConfigurationStatus(validatingWebhookConfiguration *admissionregistrationv1beta1.ValidatingWebhookConfiguration, fieldManager string) (*ValidatingWebhookConfigurationApplyConfiguration, error) {\n\treturn extractValidatingWebhookConfiguration(validatingWebhookConfiguration, fieldManager, \"status\")\n}\n\nfunc extractValidatingWebhookConfiguration(validatingWebhookConfiguration *admissionregistrationv1beta1.ValidatingWebhookConfiguration, fieldManager string, subresource string) (*ValidatingWebhookConfigurationApplyConfiguration, error) {\n\tb := &ValidatingWebhookConfigurationApplyConfiguration{}\n\terr := managedfields.ExtractInto(validatingWebhookConfiguration, internal.Parser().Type(\"io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(validatingWebhookConfiguration.Name)\n\n\tb.WithKind(\"ValidatingWebhookConfiguration\")\n\tb.WithAPIVersion(\"admissionregistration.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithKind(value string) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithAPIVersion(value string) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithName(value string) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithGenerateName(value string) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithNamespace(value string) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithUID(value types.UID) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithResourceVersion(value string) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithGeneration(value int64) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithLabels(entries map[string]string) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithAnnotations(entries map[string]string) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithFinalizers(values ...string) *ValidatingWebhookConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithWebhooks adds the given value to the Webhooks field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Webhooks field.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) WithWebhooks(values ...*ValidatingWebhookApplyConfiguration) *ValidatingWebhookConfigurationApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithWebhooks\")\n\t\t}\n\t\tb.Webhooks = append(b.Webhooks, *values[i])\n\t}\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *ValidatingWebhookConfigurationApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/validation.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// ValidationApplyConfiguration represents a declarative configuration of the Validation type for use\n// with apply.\ntype ValidationApplyConfiguration struct {\n\tExpression        *string          `json:\"expression,omitempty\"`\n\tMessage           *string          `json:\"message,omitempty\"`\n\tReason            *v1.StatusReason `json:\"reason,omitempty\"`\n\tMessageExpression *string          `json:\"messageExpression,omitempty\"`\n}\n\n// ValidationApplyConfiguration constructs a declarative configuration of the Validation type for use with\n// apply.\nfunc Validation() *ValidationApplyConfiguration {\n\treturn &ValidationApplyConfiguration{}\n}\n\n// WithExpression sets the Expression field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Expression field is set to the value of the last call.\nfunc (b *ValidationApplyConfiguration) WithExpression(value string) *ValidationApplyConfiguration {\n\tb.Expression = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *ValidationApplyConfiguration) WithMessage(value string) *ValidationApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *ValidationApplyConfiguration) WithReason(value v1.StatusReason) *ValidationApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessageExpression sets the MessageExpression field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MessageExpression field is set to the value of the last call.\nfunc (b *ValidationApplyConfiguration) WithMessageExpression(value string) *ValidationApplyConfiguration {\n\tb.MessageExpression = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/variable.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// VariableApplyConfiguration represents a declarative configuration of the Variable type for use\n// with apply.\ntype VariableApplyConfiguration struct {\n\tName       *string `json:\"name,omitempty\"`\n\tExpression *string `json:\"expression,omitempty\"`\n}\n\n// VariableApplyConfiguration constructs a declarative configuration of the Variable type for use with\n// apply.\nfunc Variable() *VariableApplyConfiguration {\n\treturn &VariableApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *VariableApplyConfiguration) WithName(value string) *VariableApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithExpression sets the Expression field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Expression field is set to the value of the last call.\nfunc (b *VariableApplyConfiguration) WithExpression(value string) *VariableApplyConfiguration {\n\tb.Expression = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1/webhookclientconfig.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// WebhookClientConfigApplyConfiguration represents a declarative configuration of the WebhookClientConfig type for use\n// with apply.\ntype WebhookClientConfigApplyConfiguration struct {\n\tURL      *string                             `json:\"url,omitempty\"`\n\tService  *ServiceReferenceApplyConfiguration `json:\"service,omitempty\"`\n\tCABundle []byte                              `json:\"caBundle,omitempty\"`\n}\n\n// WebhookClientConfigApplyConfiguration constructs a declarative configuration of the WebhookClientConfig type for use with\n// apply.\nfunc WebhookClientConfig() *WebhookClientConfigApplyConfiguration {\n\treturn &WebhookClientConfigApplyConfiguration{}\n}\n\n// WithURL sets the URL field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the URL field is set to the value of the last call.\nfunc (b *WebhookClientConfigApplyConfiguration) WithURL(value string) *WebhookClientConfigApplyConfiguration {\n\tb.URL = &value\n\treturn b\n}\n\n// WithService sets the Service field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Service field is set to the value of the last call.\nfunc (b *WebhookClientConfigApplyConfiguration) WithService(value *ServiceReferenceApplyConfiguration) *WebhookClientConfigApplyConfiguration {\n\tb.Service = value\n\treturn b\n}\n\n// WithCABundle adds the given value to the CABundle field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the CABundle field.\nfunc (b *WebhookClientConfigApplyConfiguration) WithCABundle(values ...byte) *WebhookClientConfigApplyConfiguration {\n\tfor i := range values {\n\t\tb.CABundle = append(b.CABundle, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apiserverinternal/v1alpha1/serverstorageversion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// ServerStorageVersionApplyConfiguration represents a declarative configuration of the ServerStorageVersion type for use\n// with apply.\ntype ServerStorageVersionApplyConfiguration struct {\n\tAPIServerID       *string  `json:\"apiServerID,omitempty\"`\n\tEncodingVersion   *string  `json:\"encodingVersion,omitempty\"`\n\tDecodableVersions []string `json:\"decodableVersions,omitempty\"`\n\tServedVersions    []string `json:\"servedVersions,omitempty\"`\n}\n\n// ServerStorageVersionApplyConfiguration constructs a declarative configuration of the ServerStorageVersion type for use with\n// apply.\nfunc ServerStorageVersion() *ServerStorageVersionApplyConfiguration {\n\treturn &ServerStorageVersionApplyConfiguration{}\n}\n\n// WithAPIServerID sets the APIServerID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIServerID field is set to the value of the last call.\nfunc (b *ServerStorageVersionApplyConfiguration) WithAPIServerID(value string) *ServerStorageVersionApplyConfiguration {\n\tb.APIServerID = &value\n\treturn b\n}\n\n// WithEncodingVersion sets the EncodingVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the EncodingVersion field is set to the value of the last call.\nfunc (b *ServerStorageVersionApplyConfiguration) WithEncodingVersion(value string) *ServerStorageVersionApplyConfiguration {\n\tb.EncodingVersion = &value\n\treturn b\n}\n\n// WithDecodableVersions adds the given value to the DecodableVersions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the DecodableVersions field.\nfunc (b *ServerStorageVersionApplyConfiguration) WithDecodableVersions(values ...string) *ServerStorageVersionApplyConfiguration {\n\tfor i := range values {\n\t\tb.DecodableVersions = append(b.DecodableVersions, values[i])\n\t}\n\treturn b\n}\n\n// WithServedVersions adds the given value to the ServedVersions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ServedVersions field.\nfunc (b *ServerStorageVersionApplyConfiguration) WithServedVersions(values ...string) *ServerStorageVersionApplyConfiguration {\n\tfor i := range values {\n\t\tb.ServedVersions = append(b.ServedVersions, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apiserverinternal/v1alpha1/storageversion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tapiserverinternalv1alpha1 \"k8s.io/api/apiserverinternal/v1alpha1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// StorageVersionApplyConfiguration represents a declarative configuration of the StorageVersion type for use\n// with apply.\ntype StorageVersionApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *apiserverinternalv1alpha1.StorageVersionSpec `json:\"spec,omitempty\"`\n\tStatus                           *StorageVersionStatusApplyConfiguration       `json:\"status,omitempty\"`\n}\n\n// StorageVersion constructs a declarative configuration of the StorageVersion type for use with\n// apply.\nfunc StorageVersion(name string) *StorageVersionApplyConfiguration {\n\tb := &StorageVersionApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"StorageVersion\")\n\tb.WithAPIVersion(\"internal.apiserver.k8s.io/v1alpha1\")\n\treturn b\n}\n\n// ExtractStorageVersion extracts the applied configuration owned by fieldManager from\n// storageVersion. If no managedFields are found in storageVersion for fieldManager, a\n// StorageVersionApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// storageVersion must be a unmodified StorageVersion API object that was retrieved from the Kubernetes API.\n// ExtractStorageVersion provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractStorageVersion(storageVersion *apiserverinternalv1alpha1.StorageVersion, fieldManager string) (*StorageVersionApplyConfiguration, error) {\n\treturn extractStorageVersion(storageVersion, fieldManager, \"\")\n}\n\n// ExtractStorageVersionStatus is the same as ExtractStorageVersion except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractStorageVersionStatus(storageVersion *apiserverinternalv1alpha1.StorageVersion, fieldManager string) (*StorageVersionApplyConfiguration, error) {\n\treturn extractStorageVersion(storageVersion, fieldManager, \"status\")\n}\n\nfunc extractStorageVersion(storageVersion *apiserverinternalv1alpha1.StorageVersion, fieldManager string, subresource string) (*StorageVersionApplyConfiguration, error) {\n\tb := &StorageVersionApplyConfiguration{}\n\terr := managedfields.ExtractInto(storageVersion, internal.Parser().Type(\"io.k8s.api.apiserverinternal.v1alpha1.StorageVersion\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(storageVersion.Name)\n\n\tb.WithKind(\"StorageVersion\")\n\tb.WithAPIVersion(\"internal.apiserver.k8s.io/v1alpha1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *StorageVersionApplyConfiguration) WithKind(value string) *StorageVersionApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *StorageVersionApplyConfiguration) WithAPIVersion(value string) *StorageVersionApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *StorageVersionApplyConfiguration) WithName(value string) *StorageVersionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *StorageVersionApplyConfiguration) WithGenerateName(value string) *StorageVersionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *StorageVersionApplyConfiguration) WithNamespace(value string) *StorageVersionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *StorageVersionApplyConfiguration) WithUID(value types.UID) *StorageVersionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *StorageVersionApplyConfiguration) WithResourceVersion(value string) *StorageVersionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *StorageVersionApplyConfiguration) WithGeneration(value int64) *StorageVersionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *StorageVersionApplyConfiguration) WithCreationTimestamp(value metav1.Time) *StorageVersionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *StorageVersionApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *StorageVersionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *StorageVersionApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *StorageVersionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *StorageVersionApplyConfiguration) WithLabels(entries map[string]string) *StorageVersionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *StorageVersionApplyConfiguration) WithAnnotations(entries map[string]string) *StorageVersionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *StorageVersionApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *StorageVersionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *StorageVersionApplyConfiguration) WithFinalizers(values ...string) *StorageVersionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *StorageVersionApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *StorageVersionApplyConfiguration) WithSpec(value apiserverinternalv1alpha1.StorageVersionSpec) *StorageVersionApplyConfiguration {\n\tb.Spec = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *StorageVersionApplyConfiguration) WithStatus(value *StorageVersionStatusApplyConfiguration) *StorageVersionApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *StorageVersionApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apiserverinternal/v1alpha1/storageversioncondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tapiserverinternalv1alpha1 \"k8s.io/api/apiserverinternal/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// StorageVersionConditionApplyConfiguration represents a declarative configuration of the StorageVersionCondition type for use\n// with apply.\ntype StorageVersionConditionApplyConfiguration struct {\n\tType               *apiserverinternalv1alpha1.StorageVersionConditionType `json:\"type,omitempty\"`\n\tStatus             *apiserverinternalv1alpha1.ConditionStatus             `json:\"status,omitempty\"`\n\tObservedGeneration *int64                                                 `json:\"observedGeneration,omitempty\"`\n\tLastTransitionTime *v1.Time                                               `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                                                `json:\"reason,omitempty\"`\n\tMessage            *string                                                `json:\"message,omitempty\"`\n}\n\n// StorageVersionConditionApplyConfiguration constructs a declarative configuration of the StorageVersionCondition type for use with\n// apply.\nfunc StorageVersionCondition() *StorageVersionConditionApplyConfiguration {\n\treturn &StorageVersionConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *StorageVersionConditionApplyConfiguration) WithType(value apiserverinternalv1alpha1.StorageVersionConditionType) *StorageVersionConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *StorageVersionConditionApplyConfiguration) WithStatus(value apiserverinternalv1alpha1.ConditionStatus) *StorageVersionConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *StorageVersionConditionApplyConfiguration) WithObservedGeneration(value int64) *StorageVersionConditionApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *StorageVersionConditionApplyConfiguration) WithLastTransitionTime(value v1.Time) *StorageVersionConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *StorageVersionConditionApplyConfiguration) WithReason(value string) *StorageVersionConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *StorageVersionConditionApplyConfiguration) WithMessage(value string) *StorageVersionConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apiserverinternal/v1alpha1/storageversionstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// StorageVersionStatusApplyConfiguration represents a declarative configuration of the StorageVersionStatus type for use\n// with apply.\ntype StorageVersionStatusApplyConfiguration struct {\n\tStorageVersions       []ServerStorageVersionApplyConfiguration    `json:\"storageVersions,omitempty\"`\n\tCommonEncodingVersion *string                                     `json:\"commonEncodingVersion,omitempty\"`\n\tConditions            []StorageVersionConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// StorageVersionStatusApplyConfiguration constructs a declarative configuration of the StorageVersionStatus type for use with\n// apply.\nfunc StorageVersionStatus() *StorageVersionStatusApplyConfiguration {\n\treturn &StorageVersionStatusApplyConfiguration{}\n}\n\n// WithStorageVersions adds the given value to the StorageVersions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the StorageVersions field.\nfunc (b *StorageVersionStatusApplyConfiguration) WithStorageVersions(values ...*ServerStorageVersionApplyConfiguration) *StorageVersionStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithStorageVersions\")\n\t\t}\n\t\tb.StorageVersions = append(b.StorageVersions, *values[i])\n\t}\n\treturn b\n}\n\n// WithCommonEncodingVersion sets the CommonEncodingVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CommonEncodingVersion field is set to the value of the last call.\nfunc (b *StorageVersionStatusApplyConfiguration) WithCommonEncodingVersion(value string) *StorageVersionStatusApplyConfiguration {\n\tb.CommonEncodingVersion = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *StorageVersionStatusApplyConfiguration) WithConditions(values ...*StorageVersionConditionApplyConfiguration) *StorageVersionStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/controllerrevision.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tappsv1 \"k8s.io/api/apps/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ControllerRevisionApplyConfiguration represents a declarative configuration of the ControllerRevision type for use\n// with apply.\ntype ControllerRevisionApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tData                                 *runtime.RawExtension `json:\"data,omitempty\"`\n\tRevision                             *int64                `json:\"revision,omitempty\"`\n}\n\n// ControllerRevision constructs a declarative configuration of the ControllerRevision type for use with\n// apply.\nfunc ControllerRevision(name, namespace string) *ControllerRevisionApplyConfiguration {\n\tb := &ControllerRevisionApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"ControllerRevision\")\n\tb.WithAPIVersion(\"apps/v1\")\n\treturn b\n}\n\n// ExtractControllerRevision extracts the applied configuration owned by fieldManager from\n// controllerRevision. If no managedFields are found in controllerRevision for fieldManager, a\n// ControllerRevisionApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// controllerRevision must be a unmodified ControllerRevision API object that was retrieved from the Kubernetes API.\n// ExtractControllerRevision provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractControllerRevision(controllerRevision *appsv1.ControllerRevision, fieldManager string) (*ControllerRevisionApplyConfiguration, error) {\n\treturn extractControllerRevision(controllerRevision, fieldManager, \"\")\n}\n\n// ExtractControllerRevisionStatus is the same as ExtractControllerRevision except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractControllerRevisionStatus(controllerRevision *appsv1.ControllerRevision, fieldManager string) (*ControllerRevisionApplyConfiguration, error) {\n\treturn extractControllerRevision(controllerRevision, fieldManager, \"status\")\n}\n\nfunc extractControllerRevision(controllerRevision *appsv1.ControllerRevision, fieldManager string, subresource string) (*ControllerRevisionApplyConfiguration, error) {\n\tb := &ControllerRevisionApplyConfiguration{}\n\terr := managedfields.ExtractInto(controllerRevision, internal.Parser().Type(\"io.k8s.api.apps.v1.ControllerRevision\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(controllerRevision.Name)\n\tb.WithNamespace(controllerRevision.Namespace)\n\n\tb.WithKind(\"ControllerRevision\")\n\tb.WithAPIVersion(\"apps/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithKind(value string) *ControllerRevisionApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithAPIVersion(value string) *ControllerRevisionApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithName(value string) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithGenerateName(value string) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithNamespace(value string) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithUID(value types.UID) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithResourceVersion(value string) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithGeneration(value int64) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ControllerRevisionApplyConfiguration) WithLabels(entries map[string]string) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ControllerRevisionApplyConfiguration) WithAnnotations(entries map[string]string) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ControllerRevisionApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ControllerRevisionApplyConfiguration) WithFinalizers(values ...string) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ControllerRevisionApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithData sets the Data field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Data field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithData(value runtime.RawExtension) *ControllerRevisionApplyConfiguration {\n\tb.Data = &value\n\treturn b\n}\n\n// WithRevision sets the Revision field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Revision field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithRevision(value int64) *ControllerRevisionApplyConfiguration {\n\tb.Revision = &value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *ControllerRevisionApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/daemonset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tappsv1 \"k8s.io/api/apps/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// DaemonSetApplyConfiguration represents a declarative configuration of the DaemonSet type for use\n// with apply.\ntype DaemonSetApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                                 *DaemonSetSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                               *DaemonSetStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// DaemonSet constructs a declarative configuration of the DaemonSet type for use with\n// apply.\nfunc DaemonSet(name, namespace string) *DaemonSetApplyConfiguration {\n\tb := &DaemonSetApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"DaemonSet\")\n\tb.WithAPIVersion(\"apps/v1\")\n\treturn b\n}\n\n// ExtractDaemonSet extracts the applied configuration owned by fieldManager from\n// daemonSet. If no managedFields are found in daemonSet for fieldManager, a\n// DaemonSetApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// daemonSet must be a unmodified DaemonSet API object that was retrieved from the Kubernetes API.\n// ExtractDaemonSet provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractDaemonSet(daemonSet *appsv1.DaemonSet, fieldManager string) (*DaemonSetApplyConfiguration, error) {\n\treturn extractDaemonSet(daemonSet, fieldManager, \"\")\n}\n\n// ExtractDaemonSetStatus is the same as ExtractDaemonSet except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractDaemonSetStatus(daemonSet *appsv1.DaemonSet, fieldManager string) (*DaemonSetApplyConfiguration, error) {\n\treturn extractDaemonSet(daemonSet, fieldManager, \"status\")\n}\n\nfunc extractDaemonSet(daemonSet *appsv1.DaemonSet, fieldManager string, subresource string) (*DaemonSetApplyConfiguration, error) {\n\tb := &DaemonSetApplyConfiguration{}\n\terr := managedfields.ExtractInto(daemonSet, internal.Parser().Type(\"io.k8s.api.apps.v1.DaemonSet\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(daemonSet.Name)\n\tb.WithNamespace(daemonSet.Namespace)\n\n\tb.WithKind(\"DaemonSet\")\n\tb.WithAPIVersion(\"apps/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithKind(value string) *DaemonSetApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithAPIVersion(value string) *DaemonSetApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithName(value string) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithGenerateName(value string) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithNamespace(value string) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithUID(value types.UID) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithResourceVersion(value string) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithGeneration(value int64) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *DaemonSetApplyConfiguration) WithLabels(entries map[string]string) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *DaemonSetApplyConfiguration) WithAnnotations(entries map[string]string) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *DaemonSetApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *DaemonSetApplyConfiguration) WithFinalizers(values ...string) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *DaemonSetApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithSpec(value *DaemonSetSpecApplyConfiguration) *DaemonSetApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithStatus(value *DaemonSetStatusApplyConfiguration) *DaemonSetApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *DaemonSetApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/daemonsetcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tappsv1 \"k8s.io/api/apps/v1\"\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// DaemonSetConditionApplyConfiguration represents a declarative configuration of the DaemonSetCondition type for use\n// with apply.\ntype DaemonSetConditionApplyConfiguration struct {\n\tType               *appsv1.DaemonSetConditionType `json:\"type,omitempty\"`\n\tStatus             *corev1.ConditionStatus        `json:\"status,omitempty\"`\n\tLastTransitionTime *metav1.Time                   `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                        `json:\"reason,omitempty\"`\n\tMessage            *string                        `json:\"message,omitempty\"`\n}\n\n// DaemonSetConditionApplyConfiguration constructs a declarative configuration of the DaemonSetCondition type for use with\n// apply.\nfunc DaemonSetCondition() *DaemonSetConditionApplyConfiguration {\n\treturn &DaemonSetConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *DaemonSetConditionApplyConfiguration) WithType(value appsv1.DaemonSetConditionType) *DaemonSetConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *DaemonSetConditionApplyConfiguration) WithStatus(value corev1.ConditionStatus) *DaemonSetConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *DaemonSetConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *DaemonSetConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *DaemonSetConditionApplyConfiguration) WithReason(value string) *DaemonSetConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *DaemonSetConditionApplyConfiguration) WithMessage(value string) *DaemonSetConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/daemonsetspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// DaemonSetSpecApplyConfiguration represents a declarative configuration of the DaemonSetSpec type for use\n// with apply.\ntype DaemonSetSpecApplyConfiguration struct {\n\tSelector             *metav1.LabelSelectorApplyConfiguration    `json:\"selector,omitempty\"`\n\tTemplate             *corev1.PodTemplateSpecApplyConfiguration  `json:\"template,omitempty\"`\n\tUpdateStrategy       *DaemonSetUpdateStrategyApplyConfiguration `json:\"updateStrategy,omitempty\"`\n\tMinReadySeconds      *int32                                     `json:\"minReadySeconds,omitempty\"`\n\tRevisionHistoryLimit *int32                                     `json:\"revisionHistoryLimit,omitempty\"`\n}\n\n// DaemonSetSpecApplyConfiguration constructs a declarative configuration of the DaemonSetSpec type for use with\n// apply.\nfunc DaemonSetSpec() *DaemonSetSpecApplyConfiguration {\n\treturn &DaemonSetSpecApplyConfiguration{}\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *DaemonSetSpecApplyConfiguration) WithSelector(value *metav1.LabelSelectorApplyConfiguration) *DaemonSetSpecApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n\n// WithTemplate sets the Template field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Template field is set to the value of the last call.\nfunc (b *DaemonSetSpecApplyConfiguration) WithTemplate(value *corev1.PodTemplateSpecApplyConfiguration) *DaemonSetSpecApplyConfiguration {\n\tb.Template = value\n\treturn b\n}\n\n// WithUpdateStrategy sets the UpdateStrategy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UpdateStrategy field is set to the value of the last call.\nfunc (b *DaemonSetSpecApplyConfiguration) WithUpdateStrategy(value *DaemonSetUpdateStrategyApplyConfiguration) *DaemonSetSpecApplyConfiguration {\n\tb.UpdateStrategy = value\n\treturn b\n}\n\n// WithMinReadySeconds sets the MinReadySeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MinReadySeconds field is set to the value of the last call.\nfunc (b *DaemonSetSpecApplyConfiguration) WithMinReadySeconds(value int32) *DaemonSetSpecApplyConfiguration {\n\tb.MinReadySeconds = &value\n\treturn b\n}\n\n// WithRevisionHistoryLimit sets the RevisionHistoryLimit field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RevisionHistoryLimit field is set to the value of the last call.\nfunc (b *DaemonSetSpecApplyConfiguration) WithRevisionHistoryLimit(value int32) *DaemonSetSpecApplyConfiguration {\n\tb.RevisionHistoryLimit = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/daemonsetstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// DaemonSetStatusApplyConfiguration represents a declarative configuration of the DaemonSetStatus type for use\n// with apply.\ntype DaemonSetStatusApplyConfiguration struct {\n\tCurrentNumberScheduled *int32                                 `json:\"currentNumberScheduled,omitempty\"`\n\tNumberMisscheduled     *int32                                 `json:\"numberMisscheduled,omitempty\"`\n\tDesiredNumberScheduled *int32                                 `json:\"desiredNumberScheduled,omitempty\"`\n\tNumberReady            *int32                                 `json:\"numberReady,omitempty\"`\n\tObservedGeneration     *int64                                 `json:\"observedGeneration,omitempty\"`\n\tUpdatedNumberScheduled *int32                                 `json:\"updatedNumberScheduled,omitempty\"`\n\tNumberAvailable        *int32                                 `json:\"numberAvailable,omitempty\"`\n\tNumberUnavailable      *int32                                 `json:\"numberUnavailable,omitempty\"`\n\tCollisionCount         *int32                                 `json:\"collisionCount,omitempty\"`\n\tConditions             []DaemonSetConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// DaemonSetStatusApplyConfiguration constructs a declarative configuration of the DaemonSetStatus type for use with\n// apply.\nfunc DaemonSetStatus() *DaemonSetStatusApplyConfiguration {\n\treturn &DaemonSetStatusApplyConfiguration{}\n}\n\n// WithCurrentNumberScheduled sets the CurrentNumberScheduled field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentNumberScheduled field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithCurrentNumberScheduled(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.CurrentNumberScheduled = &value\n\treturn b\n}\n\n// WithNumberMisscheduled sets the NumberMisscheduled field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NumberMisscheduled field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithNumberMisscheduled(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.NumberMisscheduled = &value\n\treturn b\n}\n\n// WithDesiredNumberScheduled sets the DesiredNumberScheduled field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DesiredNumberScheduled field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithDesiredNumberScheduled(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.DesiredNumberScheduled = &value\n\treturn b\n}\n\n// WithNumberReady sets the NumberReady field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NumberReady field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithNumberReady(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.NumberReady = &value\n\treturn b\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithObservedGeneration(value int64) *DaemonSetStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithUpdatedNumberScheduled sets the UpdatedNumberScheduled field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UpdatedNumberScheduled field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithUpdatedNumberScheduled(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.UpdatedNumberScheduled = &value\n\treturn b\n}\n\n// WithNumberAvailable sets the NumberAvailable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NumberAvailable field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithNumberAvailable(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.NumberAvailable = &value\n\treturn b\n}\n\n// WithNumberUnavailable sets the NumberUnavailable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NumberUnavailable field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithNumberUnavailable(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.NumberUnavailable = &value\n\treturn b\n}\n\n// WithCollisionCount sets the CollisionCount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CollisionCount field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithCollisionCount(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.CollisionCount = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *DaemonSetStatusApplyConfiguration) WithConditions(values ...*DaemonSetConditionApplyConfiguration) *DaemonSetStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/daemonsetupdatestrategy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tappsv1 \"k8s.io/api/apps/v1\"\n)\n\n// DaemonSetUpdateStrategyApplyConfiguration represents a declarative configuration of the DaemonSetUpdateStrategy type for use\n// with apply.\ntype DaemonSetUpdateStrategyApplyConfiguration struct {\n\tType          *appsv1.DaemonSetUpdateStrategyType       `json:\"type,omitempty\"`\n\tRollingUpdate *RollingUpdateDaemonSetApplyConfiguration `json:\"rollingUpdate,omitempty\"`\n}\n\n// DaemonSetUpdateStrategyApplyConfiguration constructs a declarative configuration of the DaemonSetUpdateStrategy type for use with\n// apply.\nfunc DaemonSetUpdateStrategy() *DaemonSetUpdateStrategyApplyConfiguration {\n\treturn &DaemonSetUpdateStrategyApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *DaemonSetUpdateStrategyApplyConfiguration) WithType(value appsv1.DaemonSetUpdateStrategyType) *DaemonSetUpdateStrategyApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithRollingUpdate sets the RollingUpdate field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RollingUpdate field is set to the value of the last call.\nfunc (b *DaemonSetUpdateStrategyApplyConfiguration) WithRollingUpdate(value *RollingUpdateDaemonSetApplyConfiguration) *DaemonSetUpdateStrategyApplyConfiguration {\n\tb.RollingUpdate = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/deployment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tappsv1 \"k8s.io/api/apps/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// DeploymentApplyConfiguration represents a declarative configuration of the Deployment type for use\n// with apply.\ntype DeploymentApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                                 *DeploymentSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                               *DeploymentStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// Deployment constructs a declarative configuration of the Deployment type for use with\n// apply.\nfunc Deployment(name, namespace string) *DeploymentApplyConfiguration {\n\tb := &DeploymentApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Deployment\")\n\tb.WithAPIVersion(\"apps/v1\")\n\treturn b\n}\n\n// ExtractDeployment extracts the applied configuration owned by fieldManager from\n// deployment. If no managedFields are found in deployment for fieldManager, a\n// DeploymentApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// deployment must be a unmodified Deployment API object that was retrieved from the Kubernetes API.\n// ExtractDeployment provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractDeployment(deployment *appsv1.Deployment, fieldManager string) (*DeploymentApplyConfiguration, error) {\n\treturn extractDeployment(deployment, fieldManager, \"\")\n}\n\n// ExtractDeploymentStatus is the same as ExtractDeployment except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractDeploymentStatus(deployment *appsv1.Deployment, fieldManager string) (*DeploymentApplyConfiguration, error) {\n\treturn extractDeployment(deployment, fieldManager, \"status\")\n}\n\nfunc extractDeployment(deployment *appsv1.Deployment, fieldManager string, subresource string) (*DeploymentApplyConfiguration, error) {\n\tb := &DeploymentApplyConfiguration{}\n\terr := managedfields.ExtractInto(deployment, internal.Parser().Type(\"io.k8s.api.apps.v1.Deployment\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(deployment.Name)\n\tb.WithNamespace(deployment.Namespace)\n\n\tb.WithKind(\"Deployment\")\n\tb.WithAPIVersion(\"apps/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithKind(value string) *DeploymentApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithAPIVersion(value string) *DeploymentApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithName(value string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithGenerateName(value string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithNamespace(value string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithUID(value types.UID) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithResourceVersion(value string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithGeneration(value int64) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *DeploymentApplyConfiguration) WithLabels(entries map[string]string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *DeploymentApplyConfiguration) WithAnnotations(entries map[string]string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *DeploymentApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *DeploymentApplyConfiguration) WithFinalizers(values ...string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *DeploymentApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithSpec(value *DeploymentSpecApplyConfiguration) *DeploymentApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithStatus(value *DeploymentStatusApplyConfiguration) *DeploymentApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *DeploymentApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/deploymentcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tappsv1 \"k8s.io/api/apps/v1\"\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// DeploymentConditionApplyConfiguration represents a declarative configuration of the DeploymentCondition type for use\n// with apply.\ntype DeploymentConditionApplyConfiguration struct {\n\tType               *appsv1.DeploymentConditionType `json:\"type,omitempty\"`\n\tStatus             *corev1.ConditionStatus         `json:\"status,omitempty\"`\n\tLastUpdateTime     *metav1.Time                    `json:\"lastUpdateTime,omitempty\"`\n\tLastTransitionTime *metav1.Time                    `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                         `json:\"reason,omitempty\"`\n\tMessage            *string                         `json:\"message,omitempty\"`\n}\n\n// DeploymentConditionApplyConfiguration constructs a declarative configuration of the DeploymentCondition type for use with\n// apply.\nfunc DeploymentCondition() *DeploymentConditionApplyConfiguration {\n\treturn &DeploymentConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithType(value appsv1.DeploymentConditionType) *DeploymentConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithStatus(value corev1.ConditionStatus) *DeploymentConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastUpdateTime sets the LastUpdateTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastUpdateTime field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithLastUpdateTime(value metav1.Time) *DeploymentConditionApplyConfiguration {\n\tb.LastUpdateTime = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *DeploymentConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithReason(value string) *DeploymentConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithMessage(value string) *DeploymentConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/deploymentspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// DeploymentSpecApplyConfiguration represents a declarative configuration of the DeploymentSpec type for use\n// with apply.\ntype DeploymentSpecApplyConfiguration struct {\n\tReplicas                *int32                                    `json:\"replicas,omitempty\"`\n\tSelector                *metav1.LabelSelectorApplyConfiguration   `json:\"selector,omitempty\"`\n\tTemplate                *corev1.PodTemplateSpecApplyConfiguration `json:\"template,omitempty\"`\n\tStrategy                *DeploymentStrategyApplyConfiguration     `json:\"strategy,omitempty\"`\n\tMinReadySeconds         *int32                                    `json:\"minReadySeconds,omitempty\"`\n\tRevisionHistoryLimit    *int32                                    `json:\"revisionHistoryLimit,omitempty\"`\n\tPaused                  *bool                                     `json:\"paused,omitempty\"`\n\tProgressDeadlineSeconds *int32                                    `json:\"progressDeadlineSeconds,omitempty\"`\n}\n\n// DeploymentSpecApplyConfiguration constructs a declarative configuration of the DeploymentSpec type for use with\n// apply.\nfunc DeploymentSpec() *DeploymentSpecApplyConfiguration {\n\treturn &DeploymentSpecApplyConfiguration{}\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithReplicas(value int32) *DeploymentSpecApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithSelector(value *metav1.LabelSelectorApplyConfiguration) *DeploymentSpecApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n\n// WithTemplate sets the Template field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Template field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithTemplate(value *corev1.PodTemplateSpecApplyConfiguration) *DeploymentSpecApplyConfiguration {\n\tb.Template = value\n\treturn b\n}\n\n// WithStrategy sets the Strategy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Strategy field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithStrategy(value *DeploymentStrategyApplyConfiguration) *DeploymentSpecApplyConfiguration {\n\tb.Strategy = value\n\treturn b\n}\n\n// WithMinReadySeconds sets the MinReadySeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MinReadySeconds field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithMinReadySeconds(value int32) *DeploymentSpecApplyConfiguration {\n\tb.MinReadySeconds = &value\n\treturn b\n}\n\n// WithRevisionHistoryLimit sets the RevisionHistoryLimit field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RevisionHistoryLimit field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithRevisionHistoryLimit(value int32) *DeploymentSpecApplyConfiguration {\n\tb.RevisionHistoryLimit = &value\n\treturn b\n}\n\n// WithPaused sets the Paused field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Paused field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithPaused(value bool) *DeploymentSpecApplyConfiguration {\n\tb.Paused = &value\n\treturn b\n}\n\n// WithProgressDeadlineSeconds sets the ProgressDeadlineSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ProgressDeadlineSeconds field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithProgressDeadlineSeconds(value int32) *DeploymentSpecApplyConfiguration {\n\tb.ProgressDeadlineSeconds = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/deploymentstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// DeploymentStatusApplyConfiguration represents a declarative configuration of the DeploymentStatus type for use\n// with apply.\ntype DeploymentStatusApplyConfiguration struct {\n\tObservedGeneration  *int64                                  `json:\"observedGeneration,omitempty\"`\n\tReplicas            *int32                                  `json:\"replicas,omitempty\"`\n\tUpdatedReplicas     *int32                                  `json:\"updatedReplicas,omitempty\"`\n\tReadyReplicas       *int32                                  `json:\"readyReplicas,omitempty\"`\n\tAvailableReplicas   *int32                                  `json:\"availableReplicas,omitempty\"`\n\tUnavailableReplicas *int32                                  `json:\"unavailableReplicas,omitempty\"`\n\tConditions          []DeploymentConditionApplyConfiguration `json:\"conditions,omitempty\"`\n\tCollisionCount      *int32                                  `json:\"collisionCount,omitempty\"`\n}\n\n// DeploymentStatusApplyConfiguration constructs a declarative configuration of the DeploymentStatus type for use with\n// apply.\nfunc DeploymentStatus() *DeploymentStatusApplyConfiguration {\n\treturn &DeploymentStatusApplyConfiguration{}\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithObservedGeneration(value int64) *DeploymentStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithReplicas(value int32) *DeploymentStatusApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithUpdatedReplicas sets the UpdatedReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UpdatedReplicas field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithUpdatedReplicas(value int32) *DeploymentStatusApplyConfiguration {\n\tb.UpdatedReplicas = &value\n\treturn b\n}\n\n// WithReadyReplicas sets the ReadyReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadyReplicas field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithReadyReplicas(value int32) *DeploymentStatusApplyConfiguration {\n\tb.ReadyReplicas = &value\n\treturn b\n}\n\n// WithAvailableReplicas sets the AvailableReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AvailableReplicas field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithAvailableReplicas(value int32) *DeploymentStatusApplyConfiguration {\n\tb.AvailableReplicas = &value\n\treturn b\n}\n\n// WithUnavailableReplicas sets the UnavailableReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UnavailableReplicas field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithUnavailableReplicas(value int32) *DeploymentStatusApplyConfiguration {\n\tb.UnavailableReplicas = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *DeploymentStatusApplyConfiguration) WithConditions(values ...*DeploymentConditionApplyConfiguration) *DeploymentStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n\n// WithCollisionCount sets the CollisionCount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CollisionCount field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithCollisionCount(value int32) *DeploymentStatusApplyConfiguration {\n\tb.CollisionCount = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/deploymentstrategy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tappsv1 \"k8s.io/api/apps/v1\"\n)\n\n// DeploymentStrategyApplyConfiguration represents a declarative configuration of the DeploymentStrategy type for use\n// with apply.\ntype DeploymentStrategyApplyConfiguration struct {\n\tType          *appsv1.DeploymentStrategyType             `json:\"type,omitempty\"`\n\tRollingUpdate *RollingUpdateDeploymentApplyConfiguration `json:\"rollingUpdate,omitempty\"`\n}\n\n// DeploymentStrategyApplyConfiguration constructs a declarative configuration of the DeploymentStrategy type for use with\n// apply.\nfunc DeploymentStrategy() *DeploymentStrategyApplyConfiguration {\n\treturn &DeploymentStrategyApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *DeploymentStrategyApplyConfiguration) WithType(value appsv1.DeploymentStrategyType) *DeploymentStrategyApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithRollingUpdate sets the RollingUpdate field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RollingUpdate field is set to the value of the last call.\nfunc (b *DeploymentStrategyApplyConfiguration) WithRollingUpdate(value *RollingUpdateDeploymentApplyConfiguration) *DeploymentStrategyApplyConfiguration {\n\tb.RollingUpdate = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/replicaset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tappsv1 \"k8s.io/api/apps/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ReplicaSetApplyConfiguration represents a declarative configuration of the ReplicaSet type for use\n// with apply.\ntype ReplicaSetApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                                 *ReplicaSetSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                               *ReplicaSetStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// ReplicaSet constructs a declarative configuration of the ReplicaSet type for use with\n// apply.\nfunc ReplicaSet(name, namespace string) *ReplicaSetApplyConfiguration {\n\tb := &ReplicaSetApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"ReplicaSet\")\n\tb.WithAPIVersion(\"apps/v1\")\n\treturn b\n}\n\n// ExtractReplicaSet extracts the applied configuration owned by fieldManager from\n// replicaSet. If no managedFields are found in replicaSet for fieldManager, a\n// ReplicaSetApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// replicaSet must be a unmodified ReplicaSet API object that was retrieved from the Kubernetes API.\n// ExtractReplicaSet provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractReplicaSet(replicaSet *appsv1.ReplicaSet, fieldManager string) (*ReplicaSetApplyConfiguration, error) {\n\treturn extractReplicaSet(replicaSet, fieldManager, \"\")\n}\n\n// ExtractReplicaSetStatus is the same as ExtractReplicaSet except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractReplicaSetStatus(replicaSet *appsv1.ReplicaSet, fieldManager string) (*ReplicaSetApplyConfiguration, error) {\n\treturn extractReplicaSet(replicaSet, fieldManager, \"status\")\n}\n\nfunc extractReplicaSet(replicaSet *appsv1.ReplicaSet, fieldManager string, subresource string) (*ReplicaSetApplyConfiguration, error) {\n\tb := &ReplicaSetApplyConfiguration{}\n\terr := managedfields.ExtractInto(replicaSet, internal.Parser().Type(\"io.k8s.api.apps.v1.ReplicaSet\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(replicaSet.Name)\n\tb.WithNamespace(replicaSet.Namespace)\n\n\tb.WithKind(\"ReplicaSet\")\n\tb.WithAPIVersion(\"apps/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithKind(value string) *ReplicaSetApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithAPIVersion(value string) *ReplicaSetApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithName(value string) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithGenerateName(value string) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithNamespace(value string) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithUID(value types.UID) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithResourceVersion(value string) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithGeneration(value int64) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ReplicaSetApplyConfiguration) WithLabels(entries map[string]string) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ReplicaSetApplyConfiguration) WithAnnotations(entries map[string]string) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ReplicaSetApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ReplicaSetApplyConfiguration) WithFinalizers(values ...string) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ReplicaSetApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithSpec(value *ReplicaSetSpecApplyConfiguration) *ReplicaSetApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithStatus(value *ReplicaSetStatusApplyConfiguration) *ReplicaSetApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *ReplicaSetApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/replicasetcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tappsv1 \"k8s.io/api/apps/v1\"\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// ReplicaSetConditionApplyConfiguration represents a declarative configuration of the ReplicaSetCondition type for use\n// with apply.\ntype ReplicaSetConditionApplyConfiguration struct {\n\tType               *appsv1.ReplicaSetConditionType `json:\"type,omitempty\"`\n\tStatus             *corev1.ConditionStatus         `json:\"status,omitempty\"`\n\tLastTransitionTime *metav1.Time                    `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                         `json:\"reason,omitempty\"`\n\tMessage            *string                         `json:\"message,omitempty\"`\n}\n\n// ReplicaSetConditionApplyConfiguration constructs a declarative configuration of the ReplicaSetCondition type for use with\n// apply.\nfunc ReplicaSetCondition() *ReplicaSetConditionApplyConfiguration {\n\treturn &ReplicaSetConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *ReplicaSetConditionApplyConfiguration) WithType(value appsv1.ReplicaSetConditionType) *ReplicaSetConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *ReplicaSetConditionApplyConfiguration) WithStatus(value corev1.ConditionStatus) *ReplicaSetConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *ReplicaSetConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *ReplicaSetConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *ReplicaSetConditionApplyConfiguration) WithReason(value string) *ReplicaSetConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *ReplicaSetConditionApplyConfiguration) WithMessage(value string) *ReplicaSetConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/replicasetspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ReplicaSetSpecApplyConfiguration represents a declarative configuration of the ReplicaSetSpec type for use\n// with apply.\ntype ReplicaSetSpecApplyConfiguration struct {\n\tReplicas        *int32                                    `json:\"replicas,omitempty\"`\n\tMinReadySeconds *int32                                    `json:\"minReadySeconds,omitempty\"`\n\tSelector        *metav1.LabelSelectorApplyConfiguration   `json:\"selector,omitempty\"`\n\tTemplate        *corev1.PodTemplateSpecApplyConfiguration `json:\"template,omitempty\"`\n}\n\n// ReplicaSetSpecApplyConfiguration constructs a declarative configuration of the ReplicaSetSpec type for use with\n// apply.\nfunc ReplicaSetSpec() *ReplicaSetSpecApplyConfiguration {\n\treturn &ReplicaSetSpecApplyConfiguration{}\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *ReplicaSetSpecApplyConfiguration) WithReplicas(value int32) *ReplicaSetSpecApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithMinReadySeconds sets the MinReadySeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MinReadySeconds field is set to the value of the last call.\nfunc (b *ReplicaSetSpecApplyConfiguration) WithMinReadySeconds(value int32) *ReplicaSetSpecApplyConfiguration {\n\tb.MinReadySeconds = &value\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *ReplicaSetSpecApplyConfiguration) WithSelector(value *metav1.LabelSelectorApplyConfiguration) *ReplicaSetSpecApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n\n// WithTemplate sets the Template field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Template field is set to the value of the last call.\nfunc (b *ReplicaSetSpecApplyConfiguration) WithTemplate(value *corev1.PodTemplateSpecApplyConfiguration) *ReplicaSetSpecApplyConfiguration {\n\tb.Template = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/replicasetstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ReplicaSetStatusApplyConfiguration represents a declarative configuration of the ReplicaSetStatus type for use\n// with apply.\ntype ReplicaSetStatusApplyConfiguration struct {\n\tReplicas             *int32                                  `json:\"replicas,omitempty\"`\n\tFullyLabeledReplicas *int32                                  `json:\"fullyLabeledReplicas,omitempty\"`\n\tReadyReplicas        *int32                                  `json:\"readyReplicas,omitempty\"`\n\tAvailableReplicas    *int32                                  `json:\"availableReplicas,omitempty\"`\n\tObservedGeneration   *int64                                  `json:\"observedGeneration,omitempty\"`\n\tConditions           []ReplicaSetConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// ReplicaSetStatusApplyConfiguration constructs a declarative configuration of the ReplicaSetStatus type for use with\n// apply.\nfunc ReplicaSetStatus() *ReplicaSetStatusApplyConfiguration {\n\treturn &ReplicaSetStatusApplyConfiguration{}\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *ReplicaSetStatusApplyConfiguration) WithReplicas(value int32) *ReplicaSetStatusApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithFullyLabeledReplicas sets the FullyLabeledReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FullyLabeledReplicas field is set to the value of the last call.\nfunc (b *ReplicaSetStatusApplyConfiguration) WithFullyLabeledReplicas(value int32) *ReplicaSetStatusApplyConfiguration {\n\tb.FullyLabeledReplicas = &value\n\treturn b\n}\n\n// WithReadyReplicas sets the ReadyReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadyReplicas field is set to the value of the last call.\nfunc (b *ReplicaSetStatusApplyConfiguration) WithReadyReplicas(value int32) *ReplicaSetStatusApplyConfiguration {\n\tb.ReadyReplicas = &value\n\treturn b\n}\n\n// WithAvailableReplicas sets the AvailableReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AvailableReplicas field is set to the value of the last call.\nfunc (b *ReplicaSetStatusApplyConfiguration) WithAvailableReplicas(value int32) *ReplicaSetStatusApplyConfiguration {\n\tb.AvailableReplicas = &value\n\treturn b\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *ReplicaSetStatusApplyConfiguration) WithObservedGeneration(value int64) *ReplicaSetStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *ReplicaSetStatusApplyConfiguration) WithConditions(values ...*ReplicaSetConditionApplyConfiguration) *ReplicaSetStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/rollingupdatedaemonset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// RollingUpdateDaemonSetApplyConfiguration represents a declarative configuration of the RollingUpdateDaemonSet type for use\n// with apply.\ntype RollingUpdateDaemonSetApplyConfiguration struct {\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\"`\n\tMaxSurge       *intstr.IntOrString `json:\"maxSurge,omitempty\"`\n}\n\n// RollingUpdateDaemonSetApplyConfiguration constructs a declarative configuration of the RollingUpdateDaemonSet type for use with\n// apply.\nfunc RollingUpdateDaemonSet() *RollingUpdateDaemonSetApplyConfiguration {\n\treturn &RollingUpdateDaemonSetApplyConfiguration{}\n}\n\n// WithMaxUnavailable sets the MaxUnavailable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxUnavailable field is set to the value of the last call.\nfunc (b *RollingUpdateDaemonSetApplyConfiguration) WithMaxUnavailable(value intstr.IntOrString) *RollingUpdateDaemonSetApplyConfiguration {\n\tb.MaxUnavailable = &value\n\treturn b\n}\n\n// WithMaxSurge sets the MaxSurge field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxSurge field is set to the value of the last call.\nfunc (b *RollingUpdateDaemonSetApplyConfiguration) WithMaxSurge(value intstr.IntOrString) *RollingUpdateDaemonSetApplyConfiguration {\n\tb.MaxSurge = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/rollingupdatedeployment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// RollingUpdateDeploymentApplyConfiguration represents a declarative configuration of the RollingUpdateDeployment type for use\n// with apply.\ntype RollingUpdateDeploymentApplyConfiguration struct {\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\"`\n\tMaxSurge       *intstr.IntOrString `json:\"maxSurge,omitempty\"`\n}\n\n// RollingUpdateDeploymentApplyConfiguration constructs a declarative configuration of the RollingUpdateDeployment type for use with\n// apply.\nfunc RollingUpdateDeployment() *RollingUpdateDeploymentApplyConfiguration {\n\treturn &RollingUpdateDeploymentApplyConfiguration{}\n}\n\n// WithMaxUnavailable sets the MaxUnavailable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxUnavailable field is set to the value of the last call.\nfunc (b *RollingUpdateDeploymentApplyConfiguration) WithMaxUnavailable(value intstr.IntOrString) *RollingUpdateDeploymentApplyConfiguration {\n\tb.MaxUnavailable = &value\n\treturn b\n}\n\n// WithMaxSurge sets the MaxSurge field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxSurge field is set to the value of the last call.\nfunc (b *RollingUpdateDeploymentApplyConfiguration) WithMaxSurge(value intstr.IntOrString) *RollingUpdateDeploymentApplyConfiguration {\n\tb.MaxSurge = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/rollingupdatestatefulsetstrategy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// RollingUpdateStatefulSetStrategyApplyConfiguration represents a declarative configuration of the RollingUpdateStatefulSetStrategy type for use\n// with apply.\ntype RollingUpdateStatefulSetStrategyApplyConfiguration struct {\n\tPartition      *int32              `json:\"partition,omitempty\"`\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\"`\n}\n\n// RollingUpdateStatefulSetStrategyApplyConfiguration constructs a declarative configuration of the RollingUpdateStatefulSetStrategy type for use with\n// apply.\nfunc RollingUpdateStatefulSetStrategy() *RollingUpdateStatefulSetStrategyApplyConfiguration {\n\treturn &RollingUpdateStatefulSetStrategyApplyConfiguration{}\n}\n\n// WithPartition sets the Partition field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Partition field is set to the value of the last call.\nfunc (b *RollingUpdateStatefulSetStrategyApplyConfiguration) WithPartition(value int32) *RollingUpdateStatefulSetStrategyApplyConfiguration {\n\tb.Partition = &value\n\treturn b\n}\n\n// WithMaxUnavailable sets the MaxUnavailable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxUnavailable field is set to the value of the last call.\nfunc (b *RollingUpdateStatefulSetStrategyApplyConfiguration) WithMaxUnavailable(value intstr.IntOrString) *RollingUpdateStatefulSetStrategyApplyConfiguration {\n\tb.MaxUnavailable = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/statefulset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tappsv1 \"k8s.io/api/apps/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// StatefulSetApplyConfiguration represents a declarative configuration of the StatefulSet type for use\n// with apply.\ntype StatefulSetApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                                 *StatefulSetSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                               *StatefulSetStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// StatefulSet constructs a declarative configuration of the StatefulSet type for use with\n// apply.\nfunc StatefulSet(name, namespace string) *StatefulSetApplyConfiguration {\n\tb := &StatefulSetApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"StatefulSet\")\n\tb.WithAPIVersion(\"apps/v1\")\n\treturn b\n}\n\n// ExtractStatefulSet extracts the applied configuration owned by fieldManager from\n// statefulSet. If no managedFields are found in statefulSet for fieldManager, a\n// StatefulSetApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// statefulSet must be a unmodified StatefulSet API object that was retrieved from the Kubernetes API.\n// ExtractStatefulSet provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractStatefulSet(statefulSet *appsv1.StatefulSet, fieldManager string) (*StatefulSetApplyConfiguration, error) {\n\treturn extractStatefulSet(statefulSet, fieldManager, \"\")\n}\n\n// ExtractStatefulSetStatus is the same as ExtractStatefulSet except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractStatefulSetStatus(statefulSet *appsv1.StatefulSet, fieldManager string) (*StatefulSetApplyConfiguration, error) {\n\treturn extractStatefulSet(statefulSet, fieldManager, \"status\")\n}\n\nfunc extractStatefulSet(statefulSet *appsv1.StatefulSet, fieldManager string, subresource string) (*StatefulSetApplyConfiguration, error) {\n\tb := &StatefulSetApplyConfiguration{}\n\terr := managedfields.ExtractInto(statefulSet, internal.Parser().Type(\"io.k8s.api.apps.v1.StatefulSet\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(statefulSet.Name)\n\tb.WithNamespace(statefulSet.Namespace)\n\n\tb.WithKind(\"StatefulSet\")\n\tb.WithAPIVersion(\"apps/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithKind(value string) *StatefulSetApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithAPIVersion(value string) *StatefulSetApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithName(value string) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithGenerateName(value string) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithNamespace(value string) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithUID(value types.UID) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithResourceVersion(value string) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithGeneration(value int64) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *StatefulSetApplyConfiguration) WithLabels(entries map[string]string) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *StatefulSetApplyConfiguration) WithAnnotations(entries map[string]string) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *StatefulSetApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *StatefulSetApplyConfiguration) WithFinalizers(values ...string) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *StatefulSetApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithSpec(value *StatefulSetSpecApplyConfiguration) *StatefulSetApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithStatus(value *StatefulSetStatusApplyConfiguration) *StatefulSetApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *StatefulSetApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/statefulsetcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tappsv1 \"k8s.io/api/apps/v1\"\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// StatefulSetConditionApplyConfiguration represents a declarative configuration of the StatefulSetCondition type for use\n// with apply.\ntype StatefulSetConditionApplyConfiguration struct {\n\tType               *appsv1.StatefulSetConditionType `json:\"type,omitempty\"`\n\tStatus             *corev1.ConditionStatus          `json:\"status,omitempty\"`\n\tLastTransitionTime *metav1.Time                     `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                          `json:\"reason,omitempty\"`\n\tMessage            *string                          `json:\"message,omitempty\"`\n}\n\n// StatefulSetConditionApplyConfiguration constructs a declarative configuration of the StatefulSetCondition type for use with\n// apply.\nfunc StatefulSetCondition() *StatefulSetConditionApplyConfiguration {\n\treturn &StatefulSetConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *StatefulSetConditionApplyConfiguration) WithType(value appsv1.StatefulSetConditionType) *StatefulSetConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *StatefulSetConditionApplyConfiguration) WithStatus(value corev1.ConditionStatus) *StatefulSetConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *StatefulSetConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *StatefulSetConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *StatefulSetConditionApplyConfiguration) WithReason(value string) *StatefulSetConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *StatefulSetConditionApplyConfiguration) WithMessage(value string) *StatefulSetConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/statefulsetordinals.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// StatefulSetOrdinalsApplyConfiguration represents a declarative configuration of the StatefulSetOrdinals type for use\n// with apply.\ntype StatefulSetOrdinalsApplyConfiguration struct {\n\tStart *int32 `json:\"start,omitempty\"`\n}\n\n// StatefulSetOrdinalsApplyConfiguration constructs a declarative configuration of the StatefulSetOrdinals type for use with\n// apply.\nfunc StatefulSetOrdinals() *StatefulSetOrdinalsApplyConfiguration {\n\treturn &StatefulSetOrdinalsApplyConfiguration{}\n}\n\n// WithStart sets the Start field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Start field is set to the value of the last call.\nfunc (b *StatefulSetOrdinalsApplyConfiguration) WithStart(value int32) *StatefulSetOrdinalsApplyConfiguration {\n\tb.Start = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/statefulsetpersistentvolumeclaimretentionpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tappsv1 \"k8s.io/api/apps/v1\"\n)\n\n// StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration represents a declarative configuration of the StatefulSetPersistentVolumeClaimRetentionPolicy type for use\n// with apply.\ntype StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration struct {\n\tWhenDeleted *appsv1.PersistentVolumeClaimRetentionPolicyType `json:\"whenDeleted,omitempty\"`\n\tWhenScaled  *appsv1.PersistentVolumeClaimRetentionPolicyType `json:\"whenScaled,omitempty\"`\n}\n\n// StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration constructs a declarative configuration of the StatefulSetPersistentVolumeClaimRetentionPolicy type for use with\n// apply.\nfunc StatefulSetPersistentVolumeClaimRetentionPolicy() *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration {\n\treturn &StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration{}\n}\n\n// WithWhenDeleted sets the WhenDeleted field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the WhenDeleted field is set to the value of the last call.\nfunc (b *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration) WithWhenDeleted(value appsv1.PersistentVolumeClaimRetentionPolicyType) *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration {\n\tb.WhenDeleted = &value\n\treturn b\n}\n\n// WithWhenScaled sets the WhenScaled field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the WhenScaled field is set to the value of the last call.\nfunc (b *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration) WithWhenScaled(value appsv1.PersistentVolumeClaimRetentionPolicyType) *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration {\n\tb.WhenScaled = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/statefulsetspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tappsv1 \"k8s.io/api/apps/v1\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// StatefulSetSpecApplyConfiguration represents a declarative configuration of the StatefulSetSpec type for use\n// with apply.\ntype StatefulSetSpecApplyConfiguration struct {\n\tReplicas                             *int32                                                             `json:\"replicas,omitempty\"`\n\tSelector                             *metav1.LabelSelectorApplyConfiguration                            `json:\"selector,omitempty\"`\n\tTemplate                             *corev1.PodTemplateSpecApplyConfiguration                          `json:\"template,omitempty\"`\n\tVolumeClaimTemplates                 []corev1.PersistentVolumeClaimApplyConfiguration                   `json:\"volumeClaimTemplates,omitempty\"`\n\tServiceName                          *string                                                            `json:\"serviceName,omitempty\"`\n\tPodManagementPolicy                  *appsv1.PodManagementPolicyType                                    `json:\"podManagementPolicy,omitempty\"`\n\tUpdateStrategy                       *StatefulSetUpdateStrategyApplyConfiguration                       `json:\"updateStrategy,omitempty\"`\n\tRevisionHistoryLimit                 *int32                                                             `json:\"revisionHistoryLimit,omitempty\"`\n\tMinReadySeconds                      *int32                                                             `json:\"minReadySeconds,omitempty\"`\n\tPersistentVolumeClaimRetentionPolicy *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration `json:\"persistentVolumeClaimRetentionPolicy,omitempty\"`\n\tOrdinals                             *StatefulSetOrdinalsApplyConfiguration                             `json:\"ordinals,omitempty\"`\n}\n\n// StatefulSetSpecApplyConfiguration constructs a declarative configuration of the StatefulSetSpec type for use with\n// apply.\nfunc StatefulSetSpec() *StatefulSetSpecApplyConfiguration {\n\treturn &StatefulSetSpecApplyConfiguration{}\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithReplicas(value int32) *StatefulSetSpecApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithSelector(value *metav1.LabelSelectorApplyConfiguration) *StatefulSetSpecApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n\n// WithTemplate sets the Template field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Template field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithTemplate(value *corev1.PodTemplateSpecApplyConfiguration) *StatefulSetSpecApplyConfiguration {\n\tb.Template = value\n\treturn b\n}\n\n// WithVolumeClaimTemplates adds the given value to the VolumeClaimTemplates field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the VolumeClaimTemplates field.\nfunc (b *StatefulSetSpecApplyConfiguration) WithVolumeClaimTemplates(values ...*corev1.PersistentVolumeClaimApplyConfiguration) *StatefulSetSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithVolumeClaimTemplates\")\n\t\t}\n\t\tb.VolumeClaimTemplates = append(b.VolumeClaimTemplates, *values[i])\n\t}\n\treturn b\n}\n\n// WithServiceName sets the ServiceName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ServiceName field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithServiceName(value string) *StatefulSetSpecApplyConfiguration {\n\tb.ServiceName = &value\n\treturn b\n}\n\n// WithPodManagementPolicy sets the PodManagementPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PodManagementPolicy field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithPodManagementPolicy(value appsv1.PodManagementPolicyType) *StatefulSetSpecApplyConfiguration {\n\tb.PodManagementPolicy = &value\n\treturn b\n}\n\n// WithUpdateStrategy sets the UpdateStrategy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UpdateStrategy field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithUpdateStrategy(value *StatefulSetUpdateStrategyApplyConfiguration) *StatefulSetSpecApplyConfiguration {\n\tb.UpdateStrategy = value\n\treturn b\n}\n\n// WithRevisionHistoryLimit sets the RevisionHistoryLimit field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RevisionHistoryLimit field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithRevisionHistoryLimit(value int32) *StatefulSetSpecApplyConfiguration {\n\tb.RevisionHistoryLimit = &value\n\treturn b\n}\n\n// WithMinReadySeconds sets the MinReadySeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MinReadySeconds field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithMinReadySeconds(value int32) *StatefulSetSpecApplyConfiguration {\n\tb.MinReadySeconds = &value\n\treturn b\n}\n\n// WithPersistentVolumeClaimRetentionPolicy sets the PersistentVolumeClaimRetentionPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PersistentVolumeClaimRetentionPolicy field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithPersistentVolumeClaimRetentionPolicy(value *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration) *StatefulSetSpecApplyConfiguration {\n\tb.PersistentVolumeClaimRetentionPolicy = value\n\treturn b\n}\n\n// WithOrdinals sets the Ordinals field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Ordinals field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithOrdinals(value *StatefulSetOrdinalsApplyConfiguration) *StatefulSetSpecApplyConfiguration {\n\tb.Ordinals = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/statefulsetstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// StatefulSetStatusApplyConfiguration represents a declarative configuration of the StatefulSetStatus type for use\n// with apply.\ntype StatefulSetStatusApplyConfiguration struct {\n\tObservedGeneration *int64                                   `json:\"observedGeneration,omitempty\"`\n\tReplicas           *int32                                   `json:\"replicas,omitempty\"`\n\tReadyReplicas      *int32                                   `json:\"readyReplicas,omitempty\"`\n\tCurrentReplicas    *int32                                   `json:\"currentReplicas,omitempty\"`\n\tUpdatedReplicas    *int32                                   `json:\"updatedReplicas,omitempty\"`\n\tCurrentRevision    *string                                  `json:\"currentRevision,omitempty\"`\n\tUpdateRevision     *string                                  `json:\"updateRevision,omitempty\"`\n\tCollisionCount     *int32                                   `json:\"collisionCount,omitempty\"`\n\tConditions         []StatefulSetConditionApplyConfiguration `json:\"conditions,omitempty\"`\n\tAvailableReplicas  *int32                                   `json:\"availableReplicas,omitempty\"`\n}\n\n// StatefulSetStatusApplyConfiguration constructs a declarative configuration of the StatefulSetStatus type for use with\n// apply.\nfunc StatefulSetStatus() *StatefulSetStatusApplyConfiguration {\n\treturn &StatefulSetStatusApplyConfiguration{}\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithObservedGeneration(value int64) *StatefulSetStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithReplicas(value int32) *StatefulSetStatusApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithReadyReplicas sets the ReadyReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadyReplicas field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithReadyReplicas(value int32) *StatefulSetStatusApplyConfiguration {\n\tb.ReadyReplicas = &value\n\treturn b\n}\n\n// WithCurrentReplicas sets the CurrentReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentReplicas field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithCurrentReplicas(value int32) *StatefulSetStatusApplyConfiguration {\n\tb.CurrentReplicas = &value\n\treturn b\n}\n\n// WithUpdatedReplicas sets the UpdatedReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UpdatedReplicas field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithUpdatedReplicas(value int32) *StatefulSetStatusApplyConfiguration {\n\tb.UpdatedReplicas = &value\n\treturn b\n}\n\n// WithCurrentRevision sets the CurrentRevision field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentRevision field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithCurrentRevision(value string) *StatefulSetStatusApplyConfiguration {\n\tb.CurrentRevision = &value\n\treturn b\n}\n\n// WithUpdateRevision sets the UpdateRevision field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UpdateRevision field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithUpdateRevision(value string) *StatefulSetStatusApplyConfiguration {\n\tb.UpdateRevision = &value\n\treturn b\n}\n\n// WithCollisionCount sets the CollisionCount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CollisionCount field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithCollisionCount(value int32) *StatefulSetStatusApplyConfiguration {\n\tb.CollisionCount = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *StatefulSetStatusApplyConfiguration) WithConditions(values ...*StatefulSetConditionApplyConfiguration) *StatefulSetStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n\n// WithAvailableReplicas sets the AvailableReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AvailableReplicas field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithAvailableReplicas(value int32) *StatefulSetStatusApplyConfiguration {\n\tb.AvailableReplicas = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1/statefulsetupdatestrategy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tappsv1 \"k8s.io/api/apps/v1\"\n)\n\n// StatefulSetUpdateStrategyApplyConfiguration represents a declarative configuration of the StatefulSetUpdateStrategy type for use\n// with apply.\ntype StatefulSetUpdateStrategyApplyConfiguration struct {\n\tType          *appsv1.StatefulSetUpdateStrategyType               `json:\"type,omitempty\"`\n\tRollingUpdate *RollingUpdateStatefulSetStrategyApplyConfiguration `json:\"rollingUpdate,omitempty\"`\n}\n\n// StatefulSetUpdateStrategyApplyConfiguration constructs a declarative configuration of the StatefulSetUpdateStrategy type for use with\n// apply.\nfunc StatefulSetUpdateStrategy() *StatefulSetUpdateStrategyApplyConfiguration {\n\treturn &StatefulSetUpdateStrategyApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *StatefulSetUpdateStrategyApplyConfiguration) WithType(value appsv1.StatefulSetUpdateStrategyType) *StatefulSetUpdateStrategyApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithRollingUpdate sets the RollingUpdate field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RollingUpdate field is set to the value of the last call.\nfunc (b *StatefulSetUpdateStrategyApplyConfiguration) WithRollingUpdate(value *RollingUpdateStatefulSetStrategyApplyConfiguration) *StatefulSetUpdateStrategyApplyConfiguration {\n\tb.RollingUpdate = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/controllerrevision.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tappsv1beta1 \"k8s.io/api/apps/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ControllerRevisionApplyConfiguration represents a declarative configuration of the ControllerRevision type for use\n// with apply.\ntype ControllerRevisionApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tData                             *runtime.RawExtension `json:\"data,omitempty\"`\n\tRevision                         *int64                `json:\"revision,omitempty\"`\n}\n\n// ControllerRevision constructs a declarative configuration of the ControllerRevision type for use with\n// apply.\nfunc ControllerRevision(name, namespace string) *ControllerRevisionApplyConfiguration {\n\tb := &ControllerRevisionApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"ControllerRevision\")\n\tb.WithAPIVersion(\"apps/v1beta1\")\n\treturn b\n}\n\n// ExtractControllerRevision extracts the applied configuration owned by fieldManager from\n// controllerRevision. If no managedFields are found in controllerRevision for fieldManager, a\n// ControllerRevisionApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// controllerRevision must be a unmodified ControllerRevision API object that was retrieved from the Kubernetes API.\n// ExtractControllerRevision provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractControllerRevision(controllerRevision *appsv1beta1.ControllerRevision, fieldManager string) (*ControllerRevisionApplyConfiguration, error) {\n\treturn extractControllerRevision(controllerRevision, fieldManager, \"\")\n}\n\n// ExtractControllerRevisionStatus is the same as ExtractControllerRevision except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractControllerRevisionStatus(controllerRevision *appsv1beta1.ControllerRevision, fieldManager string) (*ControllerRevisionApplyConfiguration, error) {\n\treturn extractControllerRevision(controllerRevision, fieldManager, \"status\")\n}\n\nfunc extractControllerRevision(controllerRevision *appsv1beta1.ControllerRevision, fieldManager string, subresource string) (*ControllerRevisionApplyConfiguration, error) {\n\tb := &ControllerRevisionApplyConfiguration{}\n\terr := managedfields.ExtractInto(controllerRevision, internal.Parser().Type(\"io.k8s.api.apps.v1beta1.ControllerRevision\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(controllerRevision.Name)\n\tb.WithNamespace(controllerRevision.Namespace)\n\n\tb.WithKind(\"ControllerRevision\")\n\tb.WithAPIVersion(\"apps/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithKind(value string) *ControllerRevisionApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithAPIVersion(value string) *ControllerRevisionApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithName(value string) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithGenerateName(value string) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithNamespace(value string) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithUID(value types.UID) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithResourceVersion(value string) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithGeneration(value int64) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ControllerRevisionApplyConfiguration) WithLabels(entries map[string]string) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ControllerRevisionApplyConfiguration) WithAnnotations(entries map[string]string) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ControllerRevisionApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ControllerRevisionApplyConfiguration) WithFinalizers(values ...string) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ControllerRevisionApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithData sets the Data field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Data field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithData(value runtime.RawExtension) *ControllerRevisionApplyConfiguration {\n\tb.Data = &value\n\treturn b\n}\n\n// WithRevision sets the Revision field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Revision field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithRevision(value int64) *ControllerRevisionApplyConfiguration {\n\tb.Revision = &value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *ControllerRevisionApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/deployment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tappsv1beta1 \"k8s.io/api/apps/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// DeploymentApplyConfiguration represents a declarative configuration of the Deployment type for use\n// with apply.\ntype DeploymentApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *DeploymentSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *DeploymentStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// Deployment constructs a declarative configuration of the Deployment type for use with\n// apply.\nfunc Deployment(name, namespace string) *DeploymentApplyConfiguration {\n\tb := &DeploymentApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Deployment\")\n\tb.WithAPIVersion(\"apps/v1beta1\")\n\treturn b\n}\n\n// ExtractDeployment extracts the applied configuration owned by fieldManager from\n// deployment. If no managedFields are found in deployment for fieldManager, a\n// DeploymentApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// deployment must be a unmodified Deployment API object that was retrieved from the Kubernetes API.\n// ExtractDeployment provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractDeployment(deployment *appsv1beta1.Deployment, fieldManager string) (*DeploymentApplyConfiguration, error) {\n\treturn extractDeployment(deployment, fieldManager, \"\")\n}\n\n// ExtractDeploymentStatus is the same as ExtractDeployment except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractDeploymentStatus(deployment *appsv1beta1.Deployment, fieldManager string) (*DeploymentApplyConfiguration, error) {\n\treturn extractDeployment(deployment, fieldManager, \"status\")\n}\n\nfunc extractDeployment(deployment *appsv1beta1.Deployment, fieldManager string, subresource string) (*DeploymentApplyConfiguration, error) {\n\tb := &DeploymentApplyConfiguration{}\n\terr := managedfields.ExtractInto(deployment, internal.Parser().Type(\"io.k8s.api.apps.v1beta1.Deployment\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(deployment.Name)\n\tb.WithNamespace(deployment.Namespace)\n\n\tb.WithKind(\"Deployment\")\n\tb.WithAPIVersion(\"apps/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithKind(value string) *DeploymentApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithAPIVersion(value string) *DeploymentApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithName(value string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithGenerateName(value string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithNamespace(value string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithUID(value types.UID) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithResourceVersion(value string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithGeneration(value int64) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithCreationTimestamp(value metav1.Time) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *DeploymentApplyConfiguration) WithLabels(entries map[string]string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *DeploymentApplyConfiguration) WithAnnotations(entries map[string]string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *DeploymentApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *DeploymentApplyConfiguration) WithFinalizers(values ...string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *DeploymentApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithSpec(value *DeploymentSpecApplyConfiguration) *DeploymentApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithStatus(value *DeploymentStatusApplyConfiguration) *DeploymentApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *DeploymentApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/deploymentcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tappsv1beta1 \"k8s.io/api/apps/v1beta1\"\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// DeploymentConditionApplyConfiguration represents a declarative configuration of the DeploymentCondition type for use\n// with apply.\ntype DeploymentConditionApplyConfiguration struct {\n\tType               *appsv1beta1.DeploymentConditionType `json:\"type,omitempty\"`\n\tStatus             *v1.ConditionStatus                  `json:\"status,omitempty\"`\n\tLastUpdateTime     *metav1.Time                         `json:\"lastUpdateTime,omitempty\"`\n\tLastTransitionTime *metav1.Time                         `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                              `json:\"reason,omitempty\"`\n\tMessage            *string                              `json:\"message,omitempty\"`\n}\n\n// DeploymentConditionApplyConfiguration constructs a declarative configuration of the DeploymentCondition type for use with\n// apply.\nfunc DeploymentCondition() *DeploymentConditionApplyConfiguration {\n\treturn &DeploymentConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithType(value appsv1beta1.DeploymentConditionType) *DeploymentConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *DeploymentConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastUpdateTime sets the LastUpdateTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastUpdateTime field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithLastUpdateTime(value metav1.Time) *DeploymentConditionApplyConfiguration {\n\tb.LastUpdateTime = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *DeploymentConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithReason(value string) *DeploymentConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithMessage(value string) *DeploymentConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/deploymentspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// DeploymentSpecApplyConfiguration represents a declarative configuration of the DeploymentSpec type for use\n// with apply.\ntype DeploymentSpecApplyConfiguration struct {\n\tReplicas                *int32                                    `json:\"replicas,omitempty\"`\n\tSelector                *v1.LabelSelectorApplyConfiguration       `json:\"selector,omitempty\"`\n\tTemplate                *corev1.PodTemplateSpecApplyConfiguration `json:\"template,omitempty\"`\n\tStrategy                *DeploymentStrategyApplyConfiguration     `json:\"strategy,omitempty\"`\n\tMinReadySeconds         *int32                                    `json:\"minReadySeconds,omitempty\"`\n\tRevisionHistoryLimit    *int32                                    `json:\"revisionHistoryLimit,omitempty\"`\n\tPaused                  *bool                                     `json:\"paused,omitempty\"`\n\tRollbackTo              *RollbackConfigApplyConfiguration         `json:\"rollbackTo,omitempty\"`\n\tProgressDeadlineSeconds *int32                                    `json:\"progressDeadlineSeconds,omitempty\"`\n}\n\n// DeploymentSpecApplyConfiguration constructs a declarative configuration of the DeploymentSpec type for use with\n// apply.\nfunc DeploymentSpec() *DeploymentSpecApplyConfiguration {\n\treturn &DeploymentSpecApplyConfiguration{}\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithReplicas(value int32) *DeploymentSpecApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *DeploymentSpecApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n\n// WithTemplate sets the Template field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Template field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithTemplate(value *corev1.PodTemplateSpecApplyConfiguration) *DeploymentSpecApplyConfiguration {\n\tb.Template = value\n\treturn b\n}\n\n// WithStrategy sets the Strategy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Strategy field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithStrategy(value *DeploymentStrategyApplyConfiguration) *DeploymentSpecApplyConfiguration {\n\tb.Strategy = value\n\treturn b\n}\n\n// WithMinReadySeconds sets the MinReadySeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MinReadySeconds field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithMinReadySeconds(value int32) *DeploymentSpecApplyConfiguration {\n\tb.MinReadySeconds = &value\n\treturn b\n}\n\n// WithRevisionHistoryLimit sets the RevisionHistoryLimit field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RevisionHistoryLimit field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithRevisionHistoryLimit(value int32) *DeploymentSpecApplyConfiguration {\n\tb.RevisionHistoryLimit = &value\n\treturn b\n}\n\n// WithPaused sets the Paused field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Paused field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithPaused(value bool) *DeploymentSpecApplyConfiguration {\n\tb.Paused = &value\n\treturn b\n}\n\n// WithRollbackTo sets the RollbackTo field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RollbackTo field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithRollbackTo(value *RollbackConfigApplyConfiguration) *DeploymentSpecApplyConfiguration {\n\tb.RollbackTo = value\n\treturn b\n}\n\n// WithProgressDeadlineSeconds sets the ProgressDeadlineSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ProgressDeadlineSeconds field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithProgressDeadlineSeconds(value int32) *DeploymentSpecApplyConfiguration {\n\tb.ProgressDeadlineSeconds = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/deploymentstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// DeploymentStatusApplyConfiguration represents a declarative configuration of the DeploymentStatus type for use\n// with apply.\ntype DeploymentStatusApplyConfiguration struct {\n\tObservedGeneration  *int64                                  `json:\"observedGeneration,omitempty\"`\n\tReplicas            *int32                                  `json:\"replicas,omitempty\"`\n\tUpdatedReplicas     *int32                                  `json:\"updatedReplicas,omitempty\"`\n\tReadyReplicas       *int32                                  `json:\"readyReplicas,omitempty\"`\n\tAvailableReplicas   *int32                                  `json:\"availableReplicas,omitempty\"`\n\tUnavailableReplicas *int32                                  `json:\"unavailableReplicas,omitempty\"`\n\tConditions          []DeploymentConditionApplyConfiguration `json:\"conditions,omitempty\"`\n\tCollisionCount      *int32                                  `json:\"collisionCount,omitempty\"`\n}\n\n// DeploymentStatusApplyConfiguration constructs a declarative configuration of the DeploymentStatus type for use with\n// apply.\nfunc DeploymentStatus() *DeploymentStatusApplyConfiguration {\n\treturn &DeploymentStatusApplyConfiguration{}\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithObservedGeneration(value int64) *DeploymentStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithReplicas(value int32) *DeploymentStatusApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithUpdatedReplicas sets the UpdatedReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UpdatedReplicas field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithUpdatedReplicas(value int32) *DeploymentStatusApplyConfiguration {\n\tb.UpdatedReplicas = &value\n\treturn b\n}\n\n// WithReadyReplicas sets the ReadyReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadyReplicas field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithReadyReplicas(value int32) *DeploymentStatusApplyConfiguration {\n\tb.ReadyReplicas = &value\n\treturn b\n}\n\n// WithAvailableReplicas sets the AvailableReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AvailableReplicas field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithAvailableReplicas(value int32) *DeploymentStatusApplyConfiguration {\n\tb.AvailableReplicas = &value\n\treturn b\n}\n\n// WithUnavailableReplicas sets the UnavailableReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UnavailableReplicas field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithUnavailableReplicas(value int32) *DeploymentStatusApplyConfiguration {\n\tb.UnavailableReplicas = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *DeploymentStatusApplyConfiguration) WithConditions(values ...*DeploymentConditionApplyConfiguration) *DeploymentStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n\n// WithCollisionCount sets the CollisionCount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CollisionCount field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithCollisionCount(value int32) *DeploymentStatusApplyConfiguration {\n\tb.CollisionCount = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/deploymentstrategy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tappsv1beta1 \"k8s.io/api/apps/v1beta1\"\n)\n\n// DeploymentStrategyApplyConfiguration represents a declarative configuration of the DeploymentStrategy type for use\n// with apply.\ntype DeploymentStrategyApplyConfiguration struct {\n\tType          *appsv1beta1.DeploymentStrategyType        `json:\"type,omitempty\"`\n\tRollingUpdate *RollingUpdateDeploymentApplyConfiguration `json:\"rollingUpdate,omitempty\"`\n}\n\n// DeploymentStrategyApplyConfiguration constructs a declarative configuration of the DeploymentStrategy type for use with\n// apply.\nfunc DeploymentStrategy() *DeploymentStrategyApplyConfiguration {\n\treturn &DeploymentStrategyApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *DeploymentStrategyApplyConfiguration) WithType(value appsv1beta1.DeploymentStrategyType) *DeploymentStrategyApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithRollingUpdate sets the RollingUpdate field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RollingUpdate field is set to the value of the last call.\nfunc (b *DeploymentStrategyApplyConfiguration) WithRollingUpdate(value *RollingUpdateDeploymentApplyConfiguration) *DeploymentStrategyApplyConfiguration {\n\tb.RollingUpdate = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/rollbackconfig.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// RollbackConfigApplyConfiguration represents a declarative configuration of the RollbackConfig type for use\n// with apply.\ntype RollbackConfigApplyConfiguration struct {\n\tRevision *int64 `json:\"revision,omitempty\"`\n}\n\n// RollbackConfigApplyConfiguration constructs a declarative configuration of the RollbackConfig type for use with\n// apply.\nfunc RollbackConfig() *RollbackConfigApplyConfiguration {\n\treturn &RollbackConfigApplyConfiguration{}\n}\n\n// WithRevision sets the Revision field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Revision field is set to the value of the last call.\nfunc (b *RollbackConfigApplyConfiguration) WithRevision(value int64) *RollbackConfigApplyConfiguration {\n\tb.Revision = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/rollingupdatedeployment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// RollingUpdateDeploymentApplyConfiguration represents a declarative configuration of the RollingUpdateDeployment type for use\n// with apply.\ntype RollingUpdateDeploymentApplyConfiguration struct {\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\"`\n\tMaxSurge       *intstr.IntOrString `json:\"maxSurge,omitempty\"`\n}\n\n// RollingUpdateDeploymentApplyConfiguration constructs a declarative configuration of the RollingUpdateDeployment type for use with\n// apply.\nfunc RollingUpdateDeployment() *RollingUpdateDeploymentApplyConfiguration {\n\treturn &RollingUpdateDeploymentApplyConfiguration{}\n}\n\n// WithMaxUnavailable sets the MaxUnavailable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxUnavailable field is set to the value of the last call.\nfunc (b *RollingUpdateDeploymentApplyConfiguration) WithMaxUnavailable(value intstr.IntOrString) *RollingUpdateDeploymentApplyConfiguration {\n\tb.MaxUnavailable = &value\n\treturn b\n}\n\n// WithMaxSurge sets the MaxSurge field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxSurge field is set to the value of the last call.\nfunc (b *RollingUpdateDeploymentApplyConfiguration) WithMaxSurge(value intstr.IntOrString) *RollingUpdateDeploymentApplyConfiguration {\n\tb.MaxSurge = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/rollingupdatestatefulsetstrategy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// RollingUpdateStatefulSetStrategyApplyConfiguration represents a declarative configuration of the RollingUpdateStatefulSetStrategy type for use\n// with apply.\ntype RollingUpdateStatefulSetStrategyApplyConfiguration struct {\n\tPartition      *int32              `json:\"partition,omitempty\"`\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\"`\n}\n\n// RollingUpdateStatefulSetStrategyApplyConfiguration constructs a declarative configuration of the RollingUpdateStatefulSetStrategy type for use with\n// apply.\nfunc RollingUpdateStatefulSetStrategy() *RollingUpdateStatefulSetStrategyApplyConfiguration {\n\treturn &RollingUpdateStatefulSetStrategyApplyConfiguration{}\n}\n\n// WithPartition sets the Partition field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Partition field is set to the value of the last call.\nfunc (b *RollingUpdateStatefulSetStrategyApplyConfiguration) WithPartition(value int32) *RollingUpdateStatefulSetStrategyApplyConfiguration {\n\tb.Partition = &value\n\treturn b\n}\n\n// WithMaxUnavailable sets the MaxUnavailable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxUnavailable field is set to the value of the last call.\nfunc (b *RollingUpdateStatefulSetStrategyApplyConfiguration) WithMaxUnavailable(value intstr.IntOrString) *RollingUpdateStatefulSetStrategyApplyConfiguration {\n\tb.MaxUnavailable = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/statefulset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tappsv1beta1 \"k8s.io/api/apps/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// StatefulSetApplyConfiguration represents a declarative configuration of the StatefulSet type for use\n// with apply.\ntype StatefulSetApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *StatefulSetSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *StatefulSetStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// StatefulSet constructs a declarative configuration of the StatefulSet type for use with\n// apply.\nfunc StatefulSet(name, namespace string) *StatefulSetApplyConfiguration {\n\tb := &StatefulSetApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"StatefulSet\")\n\tb.WithAPIVersion(\"apps/v1beta1\")\n\treturn b\n}\n\n// ExtractStatefulSet extracts the applied configuration owned by fieldManager from\n// statefulSet. If no managedFields are found in statefulSet for fieldManager, a\n// StatefulSetApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// statefulSet must be a unmodified StatefulSet API object that was retrieved from the Kubernetes API.\n// ExtractStatefulSet provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractStatefulSet(statefulSet *appsv1beta1.StatefulSet, fieldManager string) (*StatefulSetApplyConfiguration, error) {\n\treturn extractStatefulSet(statefulSet, fieldManager, \"\")\n}\n\n// ExtractStatefulSetStatus is the same as ExtractStatefulSet except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractStatefulSetStatus(statefulSet *appsv1beta1.StatefulSet, fieldManager string) (*StatefulSetApplyConfiguration, error) {\n\treturn extractStatefulSet(statefulSet, fieldManager, \"status\")\n}\n\nfunc extractStatefulSet(statefulSet *appsv1beta1.StatefulSet, fieldManager string, subresource string) (*StatefulSetApplyConfiguration, error) {\n\tb := &StatefulSetApplyConfiguration{}\n\terr := managedfields.ExtractInto(statefulSet, internal.Parser().Type(\"io.k8s.api.apps.v1beta1.StatefulSet\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(statefulSet.Name)\n\tb.WithNamespace(statefulSet.Namespace)\n\n\tb.WithKind(\"StatefulSet\")\n\tb.WithAPIVersion(\"apps/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithKind(value string) *StatefulSetApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithAPIVersion(value string) *StatefulSetApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithName(value string) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithGenerateName(value string) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithNamespace(value string) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithUID(value types.UID) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithResourceVersion(value string) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithGeneration(value int64) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithCreationTimestamp(value metav1.Time) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *StatefulSetApplyConfiguration) WithLabels(entries map[string]string) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *StatefulSetApplyConfiguration) WithAnnotations(entries map[string]string) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *StatefulSetApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *StatefulSetApplyConfiguration) WithFinalizers(values ...string) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *StatefulSetApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithSpec(value *StatefulSetSpecApplyConfiguration) *StatefulSetApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithStatus(value *StatefulSetStatusApplyConfiguration) *StatefulSetApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *StatefulSetApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/statefulsetcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tappsv1beta1 \"k8s.io/api/apps/v1beta1\"\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// StatefulSetConditionApplyConfiguration represents a declarative configuration of the StatefulSetCondition type for use\n// with apply.\ntype StatefulSetConditionApplyConfiguration struct {\n\tType               *appsv1beta1.StatefulSetConditionType `json:\"type,omitempty\"`\n\tStatus             *v1.ConditionStatus                   `json:\"status,omitempty\"`\n\tLastTransitionTime *metav1.Time                          `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                               `json:\"reason,omitempty\"`\n\tMessage            *string                               `json:\"message,omitempty\"`\n}\n\n// StatefulSetConditionApplyConfiguration constructs a declarative configuration of the StatefulSetCondition type for use with\n// apply.\nfunc StatefulSetCondition() *StatefulSetConditionApplyConfiguration {\n\treturn &StatefulSetConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *StatefulSetConditionApplyConfiguration) WithType(value appsv1beta1.StatefulSetConditionType) *StatefulSetConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *StatefulSetConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *StatefulSetConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *StatefulSetConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *StatefulSetConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *StatefulSetConditionApplyConfiguration) WithReason(value string) *StatefulSetConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *StatefulSetConditionApplyConfiguration) WithMessage(value string) *StatefulSetConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/statefulsetordinals.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// StatefulSetOrdinalsApplyConfiguration represents a declarative configuration of the StatefulSetOrdinals type for use\n// with apply.\ntype StatefulSetOrdinalsApplyConfiguration struct {\n\tStart *int32 `json:\"start,omitempty\"`\n}\n\n// StatefulSetOrdinalsApplyConfiguration constructs a declarative configuration of the StatefulSetOrdinals type for use with\n// apply.\nfunc StatefulSetOrdinals() *StatefulSetOrdinalsApplyConfiguration {\n\treturn &StatefulSetOrdinalsApplyConfiguration{}\n}\n\n// WithStart sets the Start field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Start field is set to the value of the last call.\nfunc (b *StatefulSetOrdinalsApplyConfiguration) WithStart(value int32) *StatefulSetOrdinalsApplyConfiguration {\n\tb.Start = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/statefulsetpersistentvolumeclaimretentionpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tappsv1beta1 \"k8s.io/api/apps/v1beta1\"\n)\n\n// StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration represents a declarative configuration of the StatefulSetPersistentVolumeClaimRetentionPolicy type for use\n// with apply.\ntype StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration struct {\n\tWhenDeleted *appsv1beta1.PersistentVolumeClaimRetentionPolicyType `json:\"whenDeleted,omitempty\"`\n\tWhenScaled  *appsv1beta1.PersistentVolumeClaimRetentionPolicyType `json:\"whenScaled,omitempty\"`\n}\n\n// StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration constructs a declarative configuration of the StatefulSetPersistentVolumeClaimRetentionPolicy type for use with\n// apply.\nfunc StatefulSetPersistentVolumeClaimRetentionPolicy() *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration {\n\treturn &StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration{}\n}\n\n// WithWhenDeleted sets the WhenDeleted field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the WhenDeleted field is set to the value of the last call.\nfunc (b *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration) WithWhenDeleted(value appsv1beta1.PersistentVolumeClaimRetentionPolicyType) *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration {\n\tb.WhenDeleted = &value\n\treturn b\n}\n\n// WithWhenScaled sets the WhenScaled field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the WhenScaled field is set to the value of the last call.\nfunc (b *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration) WithWhenScaled(value appsv1beta1.PersistentVolumeClaimRetentionPolicyType) *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration {\n\tb.WhenScaled = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/statefulsetspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tappsv1beta1 \"k8s.io/api/apps/v1beta1\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// StatefulSetSpecApplyConfiguration represents a declarative configuration of the StatefulSetSpec type for use\n// with apply.\ntype StatefulSetSpecApplyConfiguration struct {\n\tReplicas                             *int32                                                             `json:\"replicas,omitempty\"`\n\tSelector                             *v1.LabelSelectorApplyConfiguration                                `json:\"selector,omitempty\"`\n\tTemplate                             *corev1.PodTemplateSpecApplyConfiguration                          `json:\"template,omitempty\"`\n\tVolumeClaimTemplates                 []corev1.PersistentVolumeClaimApplyConfiguration                   `json:\"volumeClaimTemplates,omitempty\"`\n\tServiceName                          *string                                                            `json:\"serviceName,omitempty\"`\n\tPodManagementPolicy                  *appsv1beta1.PodManagementPolicyType                               `json:\"podManagementPolicy,omitempty\"`\n\tUpdateStrategy                       *StatefulSetUpdateStrategyApplyConfiguration                       `json:\"updateStrategy,omitempty\"`\n\tRevisionHistoryLimit                 *int32                                                             `json:\"revisionHistoryLimit,omitempty\"`\n\tMinReadySeconds                      *int32                                                             `json:\"minReadySeconds,omitempty\"`\n\tPersistentVolumeClaimRetentionPolicy *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration `json:\"persistentVolumeClaimRetentionPolicy,omitempty\"`\n\tOrdinals                             *StatefulSetOrdinalsApplyConfiguration                             `json:\"ordinals,omitempty\"`\n}\n\n// StatefulSetSpecApplyConfiguration constructs a declarative configuration of the StatefulSetSpec type for use with\n// apply.\nfunc StatefulSetSpec() *StatefulSetSpecApplyConfiguration {\n\treturn &StatefulSetSpecApplyConfiguration{}\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithReplicas(value int32) *StatefulSetSpecApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *StatefulSetSpecApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n\n// WithTemplate sets the Template field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Template field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithTemplate(value *corev1.PodTemplateSpecApplyConfiguration) *StatefulSetSpecApplyConfiguration {\n\tb.Template = value\n\treturn b\n}\n\n// WithVolumeClaimTemplates adds the given value to the VolumeClaimTemplates field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the VolumeClaimTemplates field.\nfunc (b *StatefulSetSpecApplyConfiguration) WithVolumeClaimTemplates(values ...*corev1.PersistentVolumeClaimApplyConfiguration) *StatefulSetSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithVolumeClaimTemplates\")\n\t\t}\n\t\tb.VolumeClaimTemplates = append(b.VolumeClaimTemplates, *values[i])\n\t}\n\treturn b\n}\n\n// WithServiceName sets the ServiceName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ServiceName field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithServiceName(value string) *StatefulSetSpecApplyConfiguration {\n\tb.ServiceName = &value\n\treturn b\n}\n\n// WithPodManagementPolicy sets the PodManagementPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PodManagementPolicy field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithPodManagementPolicy(value appsv1beta1.PodManagementPolicyType) *StatefulSetSpecApplyConfiguration {\n\tb.PodManagementPolicy = &value\n\treturn b\n}\n\n// WithUpdateStrategy sets the UpdateStrategy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UpdateStrategy field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithUpdateStrategy(value *StatefulSetUpdateStrategyApplyConfiguration) *StatefulSetSpecApplyConfiguration {\n\tb.UpdateStrategy = value\n\treturn b\n}\n\n// WithRevisionHistoryLimit sets the RevisionHistoryLimit field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RevisionHistoryLimit field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithRevisionHistoryLimit(value int32) *StatefulSetSpecApplyConfiguration {\n\tb.RevisionHistoryLimit = &value\n\treturn b\n}\n\n// WithMinReadySeconds sets the MinReadySeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MinReadySeconds field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithMinReadySeconds(value int32) *StatefulSetSpecApplyConfiguration {\n\tb.MinReadySeconds = &value\n\treturn b\n}\n\n// WithPersistentVolumeClaimRetentionPolicy sets the PersistentVolumeClaimRetentionPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PersistentVolumeClaimRetentionPolicy field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithPersistentVolumeClaimRetentionPolicy(value *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration) *StatefulSetSpecApplyConfiguration {\n\tb.PersistentVolumeClaimRetentionPolicy = value\n\treturn b\n}\n\n// WithOrdinals sets the Ordinals field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Ordinals field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithOrdinals(value *StatefulSetOrdinalsApplyConfiguration) *StatefulSetSpecApplyConfiguration {\n\tb.Ordinals = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/statefulsetstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// StatefulSetStatusApplyConfiguration represents a declarative configuration of the StatefulSetStatus type for use\n// with apply.\ntype StatefulSetStatusApplyConfiguration struct {\n\tObservedGeneration *int64                                   `json:\"observedGeneration,omitempty\"`\n\tReplicas           *int32                                   `json:\"replicas,omitempty\"`\n\tReadyReplicas      *int32                                   `json:\"readyReplicas,omitempty\"`\n\tCurrentReplicas    *int32                                   `json:\"currentReplicas,omitempty\"`\n\tUpdatedReplicas    *int32                                   `json:\"updatedReplicas,omitempty\"`\n\tCurrentRevision    *string                                  `json:\"currentRevision,omitempty\"`\n\tUpdateRevision     *string                                  `json:\"updateRevision,omitempty\"`\n\tCollisionCount     *int32                                   `json:\"collisionCount,omitempty\"`\n\tConditions         []StatefulSetConditionApplyConfiguration `json:\"conditions,omitempty\"`\n\tAvailableReplicas  *int32                                   `json:\"availableReplicas,omitempty\"`\n}\n\n// StatefulSetStatusApplyConfiguration constructs a declarative configuration of the StatefulSetStatus type for use with\n// apply.\nfunc StatefulSetStatus() *StatefulSetStatusApplyConfiguration {\n\treturn &StatefulSetStatusApplyConfiguration{}\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithObservedGeneration(value int64) *StatefulSetStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithReplicas(value int32) *StatefulSetStatusApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithReadyReplicas sets the ReadyReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadyReplicas field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithReadyReplicas(value int32) *StatefulSetStatusApplyConfiguration {\n\tb.ReadyReplicas = &value\n\treturn b\n}\n\n// WithCurrentReplicas sets the CurrentReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentReplicas field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithCurrentReplicas(value int32) *StatefulSetStatusApplyConfiguration {\n\tb.CurrentReplicas = &value\n\treturn b\n}\n\n// WithUpdatedReplicas sets the UpdatedReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UpdatedReplicas field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithUpdatedReplicas(value int32) *StatefulSetStatusApplyConfiguration {\n\tb.UpdatedReplicas = &value\n\treturn b\n}\n\n// WithCurrentRevision sets the CurrentRevision field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentRevision field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithCurrentRevision(value string) *StatefulSetStatusApplyConfiguration {\n\tb.CurrentRevision = &value\n\treturn b\n}\n\n// WithUpdateRevision sets the UpdateRevision field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UpdateRevision field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithUpdateRevision(value string) *StatefulSetStatusApplyConfiguration {\n\tb.UpdateRevision = &value\n\treturn b\n}\n\n// WithCollisionCount sets the CollisionCount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CollisionCount field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithCollisionCount(value int32) *StatefulSetStatusApplyConfiguration {\n\tb.CollisionCount = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *StatefulSetStatusApplyConfiguration) WithConditions(values ...*StatefulSetConditionApplyConfiguration) *StatefulSetStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n\n// WithAvailableReplicas sets the AvailableReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AvailableReplicas field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithAvailableReplicas(value int32) *StatefulSetStatusApplyConfiguration {\n\tb.AvailableReplicas = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta1/statefulsetupdatestrategy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tappsv1beta1 \"k8s.io/api/apps/v1beta1\"\n)\n\n// StatefulSetUpdateStrategyApplyConfiguration represents a declarative configuration of the StatefulSetUpdateStrategy type for use\n// with apply.\ntype StatefulSetUpdateStrategyApplyConfiguration struct {\n\tType          *appsv1beta1.StatefulSetUpdateStrategyType          `json:\"type,omitempty\"`\n\tRollingUpdate *RollingUpdateStatefulSetStrategyApplyConfiguration `json:\"rollingUpdate,omitempty\"`\n}\n\n// StatefulSetUpdateStrategyApplyConfiguration constructs a declarative configuration of the StatefulSetUpdateStrategy type for use with\n// apply.\nfunc StatefulSetUpdateStrategy() *StatefulSetUpdateStrategyApplyConfiguration {\n\treturn &StatefulSetUpdateStrategyApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *StatefulSetUpdateStrategyApplyConfiguration) WithType(value appsv1beta1.StatefulSetUpdateStrategyType) *StatefulSetUpdateStrategyApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithRollingUpdate sets the RollingUpdate field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RollingUpdate field is set to the value of the last call.\nfunc (b *StatefulSetUpdateStrategyApplyConfiguration) WithRollingUpdate(value *RollingUpdateStatefulSetStrategyApplyConfiguration) *StatefulSetUpdateStrategyApplyConfiguration {\n\tb.RollingUpdate = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/controllerrevision.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tappsv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ControllerRevisionApplyConfiguration represents a declarative configuration of the ControllerRevision type for use\n// with apply.\ntype ControllerRevisionApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tData                             *runtime.RawExtension `json:\"data,omitempty\"`\n\tRevision                         *int64                `json:\"revision,omitempty\"`\n}\n\n// ControllerRevision constructs a declarative configuration of the ControllerRevision type for use with\n// apply.\nfunc ControllerRevision(name, namespace string) *ControllerRevisionApplyConfiguration {\n\tb := &ControllerRevisionApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"ControllerRevision\")\n\tb.WithAPIVersion(\"apps/v1beta2\")\n\treturn b\n}\n\n// ExtractControllerRevision extracts the applied configuration owned by fieldManager from\n// controllerRevision. If no managedFields are found in controllerRevision for fieldManager, a\n// ControllerRevisionApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// controllerRevision must be a unmodified ControllerRevision API object that was retrieved from the Kubernetes API.\n// ExtractControllerRevision provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractControllerRevision(controllerRevision *appsv1beta2.ControllerRevision, fieldManager string) (*ControllerRevisionApplyConfiguration, error) {\n\treturn extractControllerRevision(controllerRevision, fieldManager, \"\")\n}\n\n// ExtractControllerRevisionStatus is the same as ExtractControllerRevision except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractControllerRevisionStatus(controllerRevision *appsv1beta2.ControllerRevision, fieldManager string) (*ControllerRevisionApplyConfiguration, error) {\n\treturn extractControllerRevision(controllerRevision, fieldManager, \"status\")\n}\n\nfunc extractControllerRevision(controllerRevision *appsv1beta2.ControllerRevision, fieldManager string, subresource string) (*ControllerRevisionApplyConfiguration, error) {\n\tb := &ControllerRevisionApplyConfiguration{}\n\terr := managedfields.ExtractInto(controllerRevision, internal.Parser().Type(\"io.k8s.api.apps.v1beta2.ControllerRevision\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(controllerRevision.Name)\n\tb.WithNamespace(controllerRevision.Namespace)\n\n\tb.WithKind(\"ControllerRevision\")\n\tb.WithAPIVersion(\"apps/v1beta2\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithKind(value string) *ControllerRevisionApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithAPIVersion(value string) *ControllerRevisionApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithName(value string) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithGenerateName(value string) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithNamespace(value string) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithUID(value types.UID) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithResourceVersion(value string) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithGeneration(value int64) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ControllerRevisionApplyConfiguration) WithLabels(entries map[string]string) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ControllerRevisionApplyConfiguration) WithAnnotations(entries map[string]string) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ControllerRevisionApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ControllerRevisionApplyConfiguration) WithFinalizers(values ...string) *ControllerRevisionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ControllerRevisionApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithData sets the Data field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Data field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithData(value runtime.RawExtension) *ControllerRevisionApplyConfiguration {\n\tb.Data = &value\n\treturn b\n}\n\n// WithRevision sets the Revision field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Revision field is set to the value of the last call.\nfunc (b *ControllerRevisionApplyConfiguration) WithRevision(value int64) *ControllerRevisionApplyConfiguration {\n\tb.Revision = &value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *ControllerRevisionApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/daemonset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tappsv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// DaemonSetApplyConfiguration represents a declarative configuration of the DaemonSet type for use\n// with apply.\ntype DaemonSetApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *DaemonSetSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *DaemonSetStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// DaemonSet constructs a declarative configuration of the DaemonSet type for use with\n// apply.\nfunc DaemonSet(name, namespace string) *DaemonSetApplyConfiguration {\n\tb := &DaemonSetApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"DaemonSet\")\n\tb.WithAPIVersion(\"apps/v1beta2\")\n\treturn b\n}\n\n// ExtractDaemonSet extracts the applied configuration owned by fieldManager from\n// daemonSet. If no managedFields are found in daemonSet for fieldManager, a\n// DaemonSetApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// daemonSet must be a unmodified DaemonSet API object that was retrieved from the Kubernetes API.\n// ExtractDaemonSet provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractDaemonSet(daemonSet *appsv1beta2.DaemonSet, fieldManager string) (*DaemonSetApplyConfiguration, error) {\n\treturn extractDaemonSet(daemonSet, fieldManager, \"\")\n}\n\n// ExtractDaemonSetStatus is the same as ExtractDaemonSet except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractDaemonSetStatus(daemonSet *appsv1beta2.DaemonSet, fieldManager string) (*DaemonSetApplyConfiguration, error) {\n\treturn extractDaemonSet(daemonSet, fieldManager, \"status\")\n}\n\nfunc extractDaemonSet(daemonSet *appsv1beta2.DaemonSet, fieldManager string, subresource string) (*DaemonSetApplyConfiguration, error) {\n\tb := &DaemonSetApplyConfiguration{}\n\terr := managedfields.ExtractInto(daemonSet, internal.Parser().Type(\"io.k8s.api.apps.v1beta2.DaemonSet\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(daemonSet.Name)\n\tb.WithNamespace(daemonSet.Namespace)\n\n\tb.WithKind(\"DaemonSet\")\n\tb.WithAPIVersion(\"apps/v1beta2\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithKind(value string) *DaemonSetApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithAPIVersion(value string) *DaemonSetApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithName(value string) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithGenerateName(value string) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithNamespace(value string) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithUID(value types.UID) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithResourceVersion(value string) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithGeneration(value int64) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithCreationTimestamp(value metav1.Time) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *DaemonSetApplyConfiguration) WithLabels(entries map[string]string) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *DaemonSetApplyConfiguration) WithAnnotations(entries map[string]string) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *DaemonSetApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *DaemonSetApplyConfiguration) WithFinalizers(values ...string) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *DaemonSetApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithSpec(value *DaemonSetSpecApplyConfiguration) *DaemonSetApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithStatus(value *DaemonSetStatusApplyConfiguration) *DaemonSetApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *DaemonSetApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/daemonsetcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tappsv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// DaemonSetConditionApplyConfiguration represents a declarative configuration of the DaemonSetCondition type for use\n// with apply.\ntype DaemonSetConditionApplyConfiguration struct {\n\tType               *appsv1beta2.DaemonSetConditionType `json:\"type,omitempty\"`\n\tStatus             *v1.ConditionStatus                 `json:\"status,omitempty\"`\n\tLastTransitionTime *metav1.Time                        `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                             `json:\"reason,omitempty\"`\n\tMessage            *string                             `json:\"message,omitempty\"`\n}\n\n// DaemonSetConditionApplyConfiguration constructs a declarative configuration of the DaemonSetCondition type for use with\n// apply.\nfunc DaemonSetCondition() *DaemonSetConditionApplyConfiguration {\n\treturn &DaemonSetConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *DaemonSetConditionApplyConfiguration) WithType(value appsv1beta2.DaemonSetConditionType) *DaemonSetConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *DaemonSetConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *DaemonSetConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *DaemonSetConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *DaemonSetConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *DaemonSetConditionApplyConfiguration) WithReason(value string) *DaemonSetConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *DaemonSetConditionApplyConfiguration) WithMessage(value string) *DaemonSetConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/daemonsetspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// DaemonSetSpecApplyConfiguration represents a declarative configuration of the DaemonSetSpec type for use\n// with apply.\ntype DaemonSetSpecApplyConfiguration struct {\n\tSelector             *v1.LabelSelectorApplyConfiguration        `json:\"selector,omitempty\"`\n\tTemplate             *corev1.PodTemplateSpecApplyConfiguration  `json:\"template,omitempty\"`\n\tUpdateStrategy       *DaemonSetUpdateStrategyApplyConfiguration `json:\"updateStrategy,omitempty\"`\n\tMinReadySeconds      *int32                                     `json:\"minReadySeconds,omitempty\"`\n\tRevisionHistoryLimit *int32                                     `json:\"revisionHistoryLimit,omitempty\"`\n}\n\n// DaemonSetSpecApplyConfiguration constructs a declarative configuration of the DaemonSetSpec type for use with\n// apply.\nfunc DaemonSetSpec() *DaemonSetSpecApplyConfiguration {\n\treturn &DaemonSetSpecApplyConfiguration{}\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *DaemonSetSpecApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *DaemonSetSpecApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n\n// WithTemplate sets the Template field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Template field is set to the value of the last call.\nfunc (b *DaemonSetSpecApplyConfiguration) WithTemplate(value *corev1.PodTemplateSpecApplyConfiguration) *DaemonSetSpecApplyConfiguration {\n\tb.Template = value\n\treturn b\n}\n\n// WithUpdateStrategy sets the UpdateStrategy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UpdateStrategy field is set to the value of the last call.\nfunc (b *DaemonSetSpecApplyConfiguration) WithUpdateStrategy(value *DaemonSetUpdateStrategyApplyConfiguration) *DaemonSetSpecApplyConfiguration {\n\tb.UpdateStrategy = value\n\treturn b\n}\n\n// WithMinReadySeconds sets the MinReadySeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MinReadySeconds field is set to the value of the last call.\nfunc (b *DaemonSetSpecApplyConfiguration) WithMinReadySeconds(value int32) *DaemonSetSpecApplyConfiguration {\n\tb.MinReadySeconds = &value\n\treturn b\n}\n\n// WithRevisionHistoryLimit sets the RevisionHistoryLimit field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RevisionHistoryLimit field is set to the value of the last call.\nfunc (b *DaemonSetSpecApplyConfiguration) WithRevisionHistoryLimit(value int32) *DaemonSetSpecApplyConfiguration {\n\tb.RevisionHistoryLimit = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/daemonsetstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\n// DaemonSetStatusApplyConfiguration represents a declarative configuration of the DaemonSetStatus type for use\n// with apply.\ntype DaemonSetStatusApplyConfiguration struct {\n\tCurrentNumberScheduled *int32                                 `json:\"currentNumberScheduled,omitempty\"`\n\tNumberMisscheduled     *int32                                 `json:\"numberMisscheduled,omitempty\"`\n\tDesiredNumberScheduled *int32                                 `json:\"desiredNumberScheduled,omitempty\"`\n\tNumberReady            *int32                                 `json:\"numberReady,omitempty\"`\n\tObservedGeneration     *int64                                 `json:\"observedGeneration,omitempty\"`\n\tUpdatedNumberScheduled *int32                                 `json:\"updatedNumberScheduled,omitempty\"`\n\tNumberAvailable        *int32                                 `json:\"numberAvailable,omitempty\"`\n\tNumberUnavailable      *int32                                 `json:\"numberUnavailable,omitempty\"`\n\tCollisionCount         *int32                                 `json:\"collisionCount,omitempty\"`\n\tConditions             []DaemonSetConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// DaemonSetStatusApplyConfiguration constructs a declarative configuration of the DaemonSetStatus type for use with\n// apply.\nfunc DaemonSetStatus() *DaemonSetStatusApplyConfiguration {\n\treturn &DaemonSetStatusApplyConfiguration{}\n}\n\n// WithCurrentNumberScheduled sets the CurrentNumberScheduled field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentNumberScheduled field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithCurrentNumberScheduled(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.CurrentNumberScheduled = &value\n\treturn b\n}\n\n// WithNumberMisscheduled sets the NumberMisscheduled field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NumberMisscheduled field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithNumberMisscheduled(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.NumberMisscheduled = &value\n\treturn b\n}\n\n// WithDesiredNumberScheduled sets the DesiredNumberScheduled field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DesiredNumberScheduled field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithDesiredNumberScheduled(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.DesiredNumberScheduled = &value\n\treturn b\n}\n\n// WithNumberReady sets the NumberReady field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NumberReady field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithNumberReady(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.NumberReady = &value\n\treturn b\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithObservedGeneration(value int64) *DaemonSetStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithUpdatedNumberScheduled sets the UpdatedNumberScheduled field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UpdatedNumberScheduled field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithUpdatedNumberScheduled(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.UpdatedNumberScheduled = &value\n\treturn b\n}\n\n// WithNumberAvailable sets the NumberAvailable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NumberAvailable field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithNumberAvailable(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.NumberAvailable = &value\n\treturn b\n}\n\n// WithNumberUnavailable sets the NumberUnavailable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NumberUnavailable field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithNumberUnavailable(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.NumberUnavailable = &value\n\treturn b\n}\n\n// WithCollisionCount sets the CollisionCount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CollisionCount field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithCollisionCount(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.CollisionCount = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *DaemonSetStatusApplyConfiguration) WithConditions(values ...*DaemonSetConditionApplyConfiguration) *DaemonSetStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/daemonsetupdatestrategy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tappsv1beta2 \"k8s.io/api/apps/v1beta2\"\n)\n\n// DaemonSetUpdateStrategyApplyConfiguration represents a declarative configuration of the DaemonSetUpdateStrategy type for use\n// with apply.\ntype DaemonSetUpdateStrategyApplyConfiguration struct {\n\tType          *appsv1beta2.DaemonSetUpdateStrategyType  `json:\"type,omitempty\"`\n\tRollingUpdate *RollingUpdateDaemonSetApplyConfiguration `json:\"rollingUpdate,omitempty\"`\n}\n\n// DaemonSetUpdateStrategyApplyConfiguration constructs a declarative configuration of the DaemonSetUpdateStrategy type for use with\n// apply.\nfunc DaemonSetUpdateStrategy() *DaemonSetUpdateStrategyApplyConfiguration {\n\treturn &DaemonSetUpdateStrategyApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *DaemonSetUpdateStrategyApplyConfiguration) WithType(value appsv1beta2.DaemonSetUpdateStrategyType) *DaemonSetUpdateStrategyApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithRollingUpdate sets the RollingUpdate field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RollingUpdate field is set to the value of the last call.\nfunc (b *DaemonSetUpdateStrategyApplyConfiguration) WithRollingUpdate(value *RollingUpdateDaemonSetApplyConfiguration) *DaemonSetUpdateStrategyApplyConfiguration {\n\tb.RollingUpdate = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/deployment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tappsv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// DeploymentApplyConfiguration represents a declarative configuration of the Deployment type for use\n// with apply.\ntype DeploymentApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *DeploymentSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *DeploymentStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// Deployment constructs a declarative configuration of the Deployment type for use with\n// apply.\nfunc Deployment(name, namespace string) *DeploymentApplyConfiguration {\n\tb := &DeploymentApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Deployment\")\n\tb.WithAPIVersion(\"apps/v1beta2\")\n\treturn b\n}\n\n// ExtractDeployment extracts the applied configuration owned by fieldManager from\n// deployment. If no managedFields are found in deployment for fieldManager, a\n// DeploymentApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// deployment must be a unmodified Deployment API object that was retrieved from the Kubernetes API.\n// ExtractDeployment provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractDeployment(deployment *appsv1beta2.Deployment, fieldManager string) (*DeploymentApplyConfiguration, error) {\n\treturn extractDeployment(deployment, fieldManager, \"\")\n}\n\n// ExtractDeploymentStatus is the same as ExtractDeployment except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractDeploymentStatus(deployment *appsv1beta2.Deployment, fieldManager string) (*DeploymentApplyConfiguration, error) {\n\treturn extractDeployment(deployment, fieldManager, \"status\")\n}\n\nfunc extractDeployment(deployment *appsv1beta2.Deployment, fieldManager string, subresource string) (*DeploymentApplyConfiguration, error) {\n\tb := &DeploymentApplyConfiguration{}\n\terr := managedfields.ExtractInto(deployment, internal.Parser().Type(\"io.k8s.api.apps.v1beta2.Deployment\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(deployment.Name)\n\tb.WithNamespace(deployment.Namespace)\n\n\tb.WithKind(\"Deployment\")\n\tb.WithAPIVersion(\"apps/v1beta2\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithKind(value string) *DeploymentApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithAPIVersion(value string) *DeploymentApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithName(value string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithGenerateName(value string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithNamespace(value string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithUID(value types.UID) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithResourceVersion(value string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithGeneration(value int64) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithCreationTimestamp(value metav1.Time) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *DeploymentApplyConfiguration) WithLabels(entries map[string]string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *DeploymentApplyConfiguration) WithAnnotations(entries map[string]string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *DeploymentApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *DeploymentApplyConfiguration) WithFinalizers(values ...string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *DeploymentApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithSpec(value *DeploymentSpecApplyConfiguration) *DeploymentApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithStatus(value *DeploymentStatusApplyConfiguration) *DeploymentApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *DeploymentApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/deploymentcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tappsv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// DeploymentConditionApplyConfiguration represents a declarative configuration of the DeploymentCondition type for use\n// with apply.\ntype DeploymentConditionApplyConfiguration struct {\n\tType               *appsv1beta2.DeploymentConditionType `json:\"type,omitempty\"`\n\tStatus             *v1.ConditionStatus                  `json:\"status,omitempty\"`\n\tLastUpdateTime     *metav1.Time                         `json:\"lastUpdateTime,omitempty\"`\n\tLastTransitionTime *metav1.Time                         `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                              `json:\"reason,omitempty\"`\n\tMessage            *string                              `json:\"message,omitempty\"`\n}\n\n// DeploymentConditionApplyConfiguration constructs a declarative configuration of the DeploymentCondition type for use with\n// apply.\nfunc DeploymentCondition() *DeploymentConditionApplyConfiguration {\n\treturn &DeploymentConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithType(value appsv1beta2.DeploymentConditionType) *DeploymentConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *DeploymentConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastUpdateTime sets the LastUpdateTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastUpdateTime field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithLastUpdateTime(value metav1.Time) *DeploymentConditionApplyConfiguration {\n\tb.LastUpdateTime = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *DeploymentConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithReason(value string) *DeploymentConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithMessage(value string) *DeploymentConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/deploymentspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// DeploymentSpecApplyConfiguration represents a declarative configuration of the DeploymentSpec type for use\n// with apply.\ntype DeploymentSpecApplyConfiguration struct {\n\tReplicas                *int32                                    `json:\"replicas,omitempty\"`\n\tSelector                *v1.LabelSelectorApplyConfiguration       `json:\"selector,omitempty\"`\n\tTemplate                *corev1.PodTemplateSpecApplyConfiguration `json:\"template,omitempty\"`\n\tStrategy                *DeploymentStrategyApplyConfiguration     `json:\"strategy,omitempty\"`\n\tMinReadySeconds         *int32                                    `json:\"minReadySeconds,omitempty\"`\n\tRevisionHistoryLimit    *int32                                    `json:\"revisionHistoryLimit,omitempty\"`\n\tPaused                  *bool                                     `json:\"paused,omitempty\"`\n\tProgressDeadlineSeconds *int32                                    `json:\"progressDeadlineSeconds,omitempty\"`\n}\n\n// DeploymentSpecApplyConfiguration constructs a declarative configuration of the DeploymentSpec type for use with\n// apply.\nfunc DeploymentSpec() *DeploymentSpecApplyConfiguration {\n\treturn &DeploymentSpecApplyConfiguration{}\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithReplicas(value int32) *DeploymentSpecApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *DeploymentSpecApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n\n// WithTemplate sets the Template field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Template field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithTemplate(value *corev1.PodTemplateSpecApplyConfiguration) *DeploymentSpecApplyConfiguration {\n\tb.Template = value\n\treturn b\n}\n\n// WithStrategy sets the Strategy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Strategy field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithStrategy(value *DeploymentStrategyApplyConfiguration) *DeploymentSpecApplyConfiguration {\n\tb.Strategy = value\n\treturn b\n}\n\n// WithMinReadySeconds sets the MinReadySeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MinReadySeconds field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithMinReadySeconds(value int32) *DeploymentSpecApplyConfiguration {\n\tb.MinReadySeconds = &value\n\treturn b\n}\n\n// WithRevisionHistoryLimit sets the RevisionHistoryLimit field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RevisionHistoryLimit field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithRevisionHistoryLimit(value int32) *DeploymentSpecApplyConfiguration {\n\tb.RevisionHistoryLimit = &value\n\treturn b\n}\n\n// WithPaused sets the Paused field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Paused field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithPaused(value bool) *DeploymentSpecApplyConfiguration {\n\tb.Paused = &value\n\treturn b\n}\n\n// WithProgressDeadlineSeconds sets the ProgressDeadlineSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ProgressDeadlineSeconds field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithProgressDeadlineSeconds(value int32) *DeploymentSpecApplyConfiguration {\n\tb.ProgressDeadlineSeconds = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/deploymentstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\n// DeploymentStatusApplyConfiguration represents a declarative configuration of the DeploymentStatus type for use\n// with apply.\ntype DeploymentStatusApplyConfiguration struct {\n\tObservedGeneration  *int64                                  `json:\"observedGeneration,omitempty\"`\n\tReplicas            *int32                                  `json:\"replicas,omitempty\"`\n\tUpdatedReplicas     *int32                                  `json:\"updatedReplicas,omitempty\"`\n\tReadyReplicas       *int32                                  `json:\"readyReplicas,omitempty\"`\n\tAvailableReplicas   *int32                                  `json:\"availableReplicas,omitempty\"`\n\tUnavailableReplicas *int32                                  `json:\"unavailableReplicas,omitempty\"`\n\tConditions          []DeploymentConditionApplyConfiguration `json:\"conditions,omitempty\"`\n\tCollisionCount      *int32                                  `json:\"collisionCount,omitempty\"`\n}\n\n// DeploymentStatusApplyConfiguration constructs a declarative configuration of the DeploymentStatus type for use with\n// apply.\nfunc DeploymentStatus() *DeploymentStatusApplyConfiguration {\n\treturn &DeploymentStatusApplyConfiguration{}\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithObservedGeneration(value int64) *DeploymentStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithReplicas(value int32) *DeploymentStatusApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithUpdatedReplicas sets the UpdatedReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UpdatedReplicas field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithUpdatedReplicas(value int32) *DeploymentStatusApplyConfiguration {\n\tb.UpdatedReplicas = &value\n\treturn b\n}\n\n// WithReadyReplicas sets the ReadyReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadyReplicas field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithReadyReplicas(value int32) *DeploymentStatusApplyConfiguration {\n\tb.ReadyReplicas = &value\n\treturn b\n}\n\n// WithAvailableReplicas sets the AvailableReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AvailableReplicas field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithAvailableReplicas(value int32) *DeploymentStatusApplyConfiguration {\n\tb.AvailableReplicas = &value\n\treturn b\n}\n\n// WithUnavailableReplicas sets the UnavailableReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UnavailableReplicas field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithUnavailableReplicas(value int32) *DeploymentStatusApplyConfiguration {\n\tb.UnavailableReplicas = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *DeploymentStatusApplyConfiguration) WithConditions(values ...*DeploymentConditionApplyConfiguration) *DeploymentStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n\n// WithCollisionCount sets the CollisionCount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CollisionCount field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithCollisionCount(value int32) *DeploymentStatusApplyConfiguration {\n\tb.CollisionCount = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/deploymentstrategy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tappsv1beta2 \"k8s.io/api/apps/v1beta2\"\n)\n\n// DeploymentStrategyApplyConfiguration represents a declarative configuration of the DeploymentStrategy type for use\n// with apply.\ntype DeploymentStrategyApplyConfiguration struct {\n\tType          *appsv1beta2.DeploymentStrategyType        `json:\"type,omitempty\"`\n\tRollingUpdate *RollingUpdateDeploymentApplyConfiguration `json:\"rollingUpdate,omitempty\"`\n}\n\n// DeploymentStrategyApplyConfiguration constructs a declarative configuration of the DeploymentStrategy type for use with\n// apply.\nfunc DeploymentStrategy() *DeploymentStrategyApplyConfiguration {\n\treturn &DeploymentStrategyApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *DeploymentStrategyApplyConfiguration) WithType(value appsv1beta2.DeploymentStrategyType) *DeploymentStrategyApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithRollingUpdate sets the RollingUpdate field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RollingUpdate field is set to the value of the last call.\nfunc (b *DeploymentStrategyApplyConfiguration) WithRollingUpdate(value *RollingUpdateDeploymentApplyConfiguration) *DeploymentStrategyApplyConfiguration {\n\tb.RollingUpdate = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/replicaset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tappsv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ReplicaSetApplyConfiguration represents a declarative configuration of the ReplicaSet type for use\n// with apply.\ntype ReplicaSetApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *ReplicaSetSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *ReplicaSetStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// ReplicaSet constructs a declarative configuration of the ReplicaSet type for use with\n// apply.\nfunc ReplicaSet(name, namespace string) *ReplicaSetApplyConfiguration {\n\tb := &ReplicaSetApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"ReplicaSet\")\n\tb.WithAPIVersion(\"apps/v1beta2\")\n\treturn b\n}\n\n// ExtractReplicaSet extracts the applied configuration owned by fieldManager from\n// replicaSet. If no managedFields are found in replicaSet for fieldManager, a\n// ReplicaSetApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// replicaSet must be a unmodified ReplicaSet API object that was retrieved from the Kubernetes API.\n// ExtractReplicaSet provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractReplicaSet(replicaSet *appsv1beta2.ReplicaSet, fieldManager string) (*ReplicaSetApplyConfiguration, error) {\n\treturn extractReplicaSet(replicaSet, fieldManager, \"\")\n}\n\n// ExtractReplicaSetStatus is the same as ExtractReplicaSet except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractReplicaSetStatus(replicaSet *appsv1beta2.ReplicaSet, fieldManager string) (*ReplicaSetApplyConfiguration, error) {\n\treturn extractReplicaSet(replicaSet, fieldManager, \"status\")\n}\n\nfunc extractReplicaSet(replicaSet *appsv1beta2.ReplicaSet, fieldManager string, subresource string) (*ReplicaSetApplyConfiguration, error) {\n\tb := &ReplicaSetApplyConfiguration{}\n\terr := managedfields.ExtractInto(replicaSet, internal.Parser().Type(\"io.k8s.api.apps.v1beta2.ReplicaSet\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(replicaSet.Name)\n\tb.WithNamespace(replicaSet.Namespace)\n\n\tb.WithKind(\"ReplicaSet\")\n\tb.WithAPIVersion(\"apps/v1beta2\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithKind(value string) *ReplicaSetApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithAPIVersion(value string) *ReplicaSetApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithName(value string) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithGenerateName(value string) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithNamespace(value string) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithUID(value types.UID) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithResourceVersion(value string) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithGeneration(value int64) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ReplicaSetApplyConfiguration) WithLabels(entries map[string]string) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ReplicaSetApplyConfiguration) WithAnnotations(entries map[string]string) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ReplicaSetApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ReplicaSetApplyConfiguration) WithFinalizers(values ...string) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ReplicaSetApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithSpec(value *ReplicaSetSpecApplyConfiguration) *ReplicaSetApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithStatus(value *ReplicaSetStatusApplyConfiguration) *ReplicaSetApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *ReplicaSetApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/replicasetcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tappsv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// ReplicaSetConditionApplyConfiguration represents a declarative configuration of the ReplicaSetCondition type for use\n// with apply.\ntype ReplicaSetConditionApplyConfiguration struct {\n\tType               *appsv1beta2.ReplicaSetConditionType `json:\"type,omitempty\"`\n\tStatus             *v1.ConditionStatus                  `json:\"status,omitempty\"`\n\tLastTransitionTime *metav1.Time                         `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                              `json:\"reason,omitempty\"`\n\tMessage            *string                              `json:\"message,omitempty\"`\n}\n\n// ReplicaSetConditionApplyConfiguration constructs a declarative configuration of the ReplicaSetCondition type for use with\n// apply.\nfunc ReplicaSetCondition() *ReplicaSetConditionApplyConfiguration {\n\treturn &ReplicaSetConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *ReplicaSetConditionApplyConfiguration) WithType(value appsv1beta2.ReplicaSetConditionType) *ReplicaSetConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *ReplicaSetConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *ReplicaSetConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *ReplicaSetConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *ReplicaSetConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *ReplicaSetConditionApplyConfiguration) WithReason(value string) *ReplicaSetConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *ReplicaSetConditionApplyConfiguration) WithMessage(value string) *ReplicaSetConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/replicasetspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ReplicaSetSpecApplyConfiguration represents a declarative configuration of the ReplicaSetSpec type for use\n// with apply.\ntype ReplicaSetSpecApplyConfiguration struct {\n\tReplicas        *int32                                    `json:\"replicas,omitempty\"`\n\tMinReadySeconds *int32                                    `json:\"minReadySeconds,omitempty\"`\n\tSelector        *v1.LabelSelectorApplyConfiguration       `json:\"selector,omitempty\"`\n\tTemplate        *corev1.PodTemplateSpecApplyConfiguration `json:\"template,omitempty\"`\n}\n\n// ReplicaSetSpecApplyConfiguration constructs a declarative configuration of the ReplicaSetSpec type for use with\n// apply.\nfunc ReplicaSetSpec() *ReplicaSetSpecApplyConfiguration {\n\treturn &ReplicaSetSpecApplyConfiguration{}\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *ReplicaSetSpecApplyConfiguration) WithReplicas(value int32) *ReplicaSetSpecApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithMinReadySeconds sets the MinReadySeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MinReadySeconds field is set to the value of the last call.\nfunc (b *ReplicaSetSpecApplyConfiguration) WithMinReadySeconds(value int32) *ReplicaSetSpecApplyConfiguration {\n\tb.MinReadySeconds = &value\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *ReplicaSetSpecApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *ReplicaSetSpecApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n\n// WithTemplate sets the Template field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Template field is set to the value of the last call.\nfunc (b *ReplicaSetSpecApplyConfiguration) WithTemplate(value *corev1.PodTemplateSpecApplyConfiguration) *ReplicaSetSpecApplyConfiguration {\n\tb.Template = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/replicasetstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\n// ReplicaSetStatusApplyConfiguration represents a declarative configuration of the ReplicaSetStatus type for use\n// with apply.\ntype ReplicaSetStatusApplyConfiguration struct {\n\tReplicas             *int32                                  `json:\"replicas,omitempty\"`\n\tFullyLabeledReplicas *int32                                  `json:\"fullyLabeledReplicas,omitempty\"`\n\tReadyReplicas        *int32                                  `json:\"readyReplicas,omitempty\"`\n\tAvailableReplicas    *int32                                  `json:\"availableReplicas,omitempty\"`\n\tObservedGeneration   *int64                                  `json:\"observedGeneration,omitempty\"`\n\tConditions           []ReplicaSetConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// ReplicaSetStatusApplyConfiguration constructs a declarative configuration of the ReplicaSetStatus type for use with\n// apply.\nfunc ReplicaSetStatus() *ReplicaSetStatusApplyConfiguration {\n\treturn &ReplicaSetStatusApplyConfiguration{}\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *ReplicaSetStatusApplyConfiguration) WithReplicas(value int32) *ReplicaSetStatusApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithFullyLabeledReplicas sets the FullyLabeledReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FullyLabeledReplicas field is set to the value of the last call.\nfunc (b *ReplicaSetStatusApplyConfiguration) WithFullyLabeledReplicas(value int32) *ReplicaSetStatusApplyConfiguration {\n\tb.FullyLabeledReplicas = &value\n\treturn b\n}\n\n// WithReadyReplicas sets the ReadyReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadyReplicas field is set to the value of the last call.\nfunc (b *ReplicaSetStatusApplyConfiguration) WithReadyReplicas(value int32) *ReplicaSetStatusApplyConfiguration {\n\tb.ReadyReplicas = &value\n\treturn b\n}\n\n// WithAvailableReplicas sets the AvailableReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AvailableReplicas field is set to the value of the last call.\nfunc (b *ReplicaSetStatusApplyConfiguration) WithAvailableReplicas(value int32) *ReplicaSetStatusApplyConfiguration {\n\tb.AvailableReplicas = &value\n\treturn b\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *ReplicaSetStatusApplyConfiguration) WithObservedGeneration(value int64) *ReplicaSetStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *ReplicaSetStatusApplyConfiguration) WithConditions(values ...*ReplicaSetConditionApplyConfiguration) *ReplicaSetStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/rollingupdatedaemonset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// RollingUpdateDaemonSetApplyConfiguration represents a declarative configuration of the RollingUpdateDaemonSet type for use\n// with apply.\ntype RollingUpdateDaemonSetApplyConfiguration struct {\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\"`\n\tMaxSurge       *intstr.IntOrString `json:\"maxSurge,omitempty\"`\n}\n\n// RollingUpdateDaemonSetApplyConfiguration constructs a declarative configuration of the RollingUpdateDaemonSet type for use with\n// apply.\nfunc RollingUpdateDaemonSet() *RollingUpdateDaemonSetApplyConfiguration {\n\treturn &RollingUpdateDaemonSetApplyConfiguration{}\n}\n\n// WithMaxUnavailable sets the MaxUnavailable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxUnavailable field is set to the value of the last call.\nfunc (b *RollingUpdateDaemonSetApplyConfiguration) WithMaxUnavailable(value intstr.IntOrString) *RollingUpdateDaemonSetApplyConfiguration {\n\tb.MaxUnavailable = &value\n\treturn b\n}\n\n// WithMaxSurge sets the MaxSurge field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxSurge field is set to the value of the last call.\nfunc (b *RollingUpdateDaemonSetApplyConfiguration) WithMaxSurge(value intstr.IntOrString) *RollingUpdateDaemonSetApplyConfiguration {\n\tb.MaxSurge = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/rollingupdatedeployment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// RollingUpdateDeploymentApplyConfiguration represents a declarative configuration of the RollingUpdateDeployment type for use\n// with apply.\ntype RollingUpdateDeploymentApplyConfiguration struct {\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\"`\n\tMaxSurge       *intstr.IntOrString `json:\"maxSurge,omitempty\"`\n}\n\n// RollingUpdateDeploymentApplyConfiguration constructs a declarative configuration of the RollingUpdateDeployment type for use with\n// apply.\nfunc RollingUpdateDeployment() *RollingUpdateDeploymentApplyConfiguration {\n\treturn &RollingUpdateDeploymentApplyConfiguration{}\n}\n\n// WithMaxUnavailable sets the MaxUnavailable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxUnavailable field is set to the value of the last call.\nfunc (b *RollingUpdateDeploymentApplyConfiguration) WithMaxUnavailable(value intstr.IntOrString) *RollingUpdateDeploymentApplyConfiguration {\n\tb.MaxUnavailable = &value\n\treturn b\n}\n\n// WithMaxSurge sets the MaxSurge field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxSurge field is set to the value of the last call.\nfunc (b *RollingUpdateDeploymentApplyConfiguration) WithMaxSurge(value intstr.IntOrString) *RollingUpdateDeploymentApplyConfiguration {\n\tb.MaxSurge = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/rollingupdatestatefulsetstrategy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// RollingUpdateStatefulSetStrategyApplyConfiguration represents a declarative configuration of the RollingUpdateStatefulSetStrategy type for use\n// with apply.\ntype RollingUpdateStatefulSetStrategyApplyConfiguration struct {\n\tPartition      *int32              `json:\"partition,omitempty\"`\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\"`\n}\n\n// RollingUpdateStatefulSetStrategyApplyConfiguration constructs a declarative configuration of the RollingUpdateStatefulSetStrategy type for use with\n// apply.\nfunc RollingUpdateStatefulSetStrategy() *RollingUpdateStatefulSetStrategyApplyConfiguration {\n\treturn &RollingUpdateStatefulSetStrategyApplyConfiguration{}\n}\n\n// WithPartition sets the Partition field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Partition field is set to the value of the last call.\nfunc (b *RollingUpdateStatefulSetStrategyApplyConfiguration) WithPartition(value int32) *RollingUpdateStatefulSetStrategyApplyConfiguration {\n\tb.Partition = &value\n\treturn b\n}\n\n// WithMaxUnavailable sets the MaxUnavailable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxUnavailable field is set to the value of the last call.\nfunc (b *RollingUpdateStatefulSetStrategyApplyConfiguration) WithMaxUnavailable(value intstr.IntOrString) *RollingUpdateStatefulSetStrategyApplyConfiguration {\n\tb.MaxUnavailable = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/scale.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tappsv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ScaleApplyConfiguration represents a declarative configuration of the Scale type for use\n// with apply.\ntype ScaleApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *appsv1beta2.ScaleSpec   `json:\"spec,omitempty\"`\n\tStatus                           *appsv1beta2.ScaleStatus `json:\"status,omitempty\"`\n}\n\n// ScaleApplyConfiguration constructs a declarative configuration of the Scale type for use with\n// apply.\nfunc Scale() *ScaleApplyConfiguration {\n\tb := &ScaleApplyConfiguration{}\n\tb.WithKind(\"Scale\")\n\tb.WithAPIVersion(\"apps/v1beta2\")\n\treturn b\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithKind(value string) *ScaleApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithAPIVersion(value string) *ScaleApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithName(value string) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithGenerateName(value string) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithNamespace(value string) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithUID(value types.UID) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithResourceVersion(value string) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithGeneration(value int64) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ScaleApplyConfiguration) WithLabels(entries map[string]string) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ScaleApplyConfiguration) WithAnnotations(entries map[string]string) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ScaleApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ScaleApplyConfiguration) WithFinalizers(values ...string) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ScaleApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithSpec(value appsv1beta2.ScaleSpec) *ScaleApplyConfiguration {\n\tb.Spec = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithStatus(value appsv1beta2.ScaleStatus) *ScaleApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *ScaleApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/statefulset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tappsv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// StatefulSetApplyConfiguration represents a declarative configuration of the StatefulSet type for use\n// with apply.\ntype StatefulSetApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *StatefulSetSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *StatefulSetStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// StatefulSet constructs a declarative configuration of the StatefulSet type for use with\n// apply.\nfunc StatefulSet(name, namespace string) *StatefulSetApplyConfiguration {\n\tb := &StatefulSetApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"StatefulSet\")\n\tb.WithAPIVersion(\"apps/v1beta2\")\n\treturn b\n}\n\n// ExtractStatefulSet extracts the applied configuration owned by fieldManager from\n// statefulSet. If no managedFields are found in statefulSet for fieldManager, a\n// StatefulSetApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// statefulSet must be a unmodified StatefulSet API object that was retrieved from the Kubernetes API.\n// ExtractStatefulSet provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractStatefulSet(statefulSet *appsv1beta2.StatefulSet, fieldManager string) (*StatefulSetApplyConfiguration, error) {\n\treturn extractStatefulSet(statefulSet, fieldManager, \"\")\n}\n\n// ExtractStatefulSetStatus is the same as ExtractStatefulSet except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractStatefulSetStatus(statefulSet *appsv1beta2.StatefulSet, fieldManager string) (*StatefulSetApplyConfiguration, error) {\n\treturn extractStatefulSet(statefulSet, fieldManager, \"status\")\n}\n\nfunc extractStatefulSet(statefulSet *appsv1beta2.StatefulSet, fieldManager string, subresource string) (*StatefulSetApplyConfiguration, error) {\n\tb := &StatefulSetApplyConfiguration{}\n\terr := managedfields.ExtractInto(statefulSet, internal.Parser().Type(\"io.k8s.api.apps.v1beta2.StatefulSet\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(statefulSet.Name)\n\tb.WithNamespace(statefulSet.Namespace)\n\n\tb.WithKind(\"StatefulSet\")\n\tb.WithAPIVersion(\"apps/v1beta2\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithKind(value string) *StatefulSetApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithAPIVersion(value string) *StatefulSetApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithName(value string) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithGenerateName(value string) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithNamespace(value string) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithUID(value types.UID) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithResourceVersion(value string) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithGeneration(value int64) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithCreationTimestamp(value metav1.Time) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *StatefulSetApplyConfiguration) WithLabels(entries map[string]string) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *StatefulSetApplyConfiguration) WithAnnotations(entries map[string]string) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *StatefulSetApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *StatefulSetApplyConfiguration) WithFinalizers(values ...string) *StatefulSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *StatefulSetApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithSpec(value *StatefulSetSpecApplyConfiguration) *StatefulSetApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *StatefulSetApplyConfiguration) WithStatus(value *StatefulSetStatusApplyConfiguration) *StatefulSetApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *StatefulSetApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/statefulsetcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tappsv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// StatefulSetConditionApplyConfiguration represents a declarative configuration of the StatefulSetCondition type for use\n// with apply.\ntype StatefulSetConditionApplyConfiguration struct {\n\tType               *appsv1beta2.StatefulSetConditionType `json:\"type,omitempty\"`\n\tStatus             *v1.ConditionStatus                   `json:\"status,omitempty\"`\n\tLastTransitionTime *metav1.Time                          `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                               `json:\"reason,omitempty\"`\n\tMessage            *string                               `json:\"message,omitempty\"`\n}\n\n// StatefulSetConditionApplyConfiguration constructs a declarative configuration of the StatefulSetCondition type for use with\n// apply.\nfunc StatefulSetCondition() *StatefulSetConditionApplyConfiguration {\n\treturn &StatefulSetConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *StatefulSetConditionApplyConfiguration) WithType(value appsv1beta2.StatefulSetConditionType) *StatefulSetConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *StatefulSetConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *StatefulSetConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *StatefulSetConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *StatefulSetConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *StatefulSetConditionApplyConfiguration) WithReason(value string) *StatefulSetConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *StatefulSetConditionApplyConfiguration) WithMessage(value string) *StatefulSetConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/statefulsetordinals.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\n// StatefulSetOrdinalsApplyConfiguration represents a declarative configuration of the StatefulSetOrdinals type for use\n// with apply.\ntype StatefulSetOrdinalsApplyConfiguration struct {\n\tStart *int32 `json:\"start,omitempty\"`\n}\n\n// StatefulSetOrdinalsApplyConfiguration constructs a declarative configuration of the StatefulSetOrdinals type for use with\n// apply.\nfunc StatefulSetOrdinals() *StatefulSetOrdinalsApplyConfiguration {\n\treturn &StatefulSetOrdinalsApplyConfiguration{}\n}\n\n// WithStart sets the Start field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Start field is set to the value of the last call.\nfunc (b *StatefulSetOrdinalsApplyConfiguration) WithStart(value int32) *StatefulSetOrdinalsApplyConfiguration {\n\tb.Start = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/statefulsetpersistentvolumeclaimretentionpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tappsv1beta2 \"k8s.io/api/apps/v1beta2\"\n)\n\n// StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration represents a declarative configuration of the StatefulSetPersistentVolumeClaimRetentionPolicy type for use\n// with apply.\ntype StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration struct {\n\tWhenDeleted *appsv1beta2.PersistentVolumeClaimRetentionPolicyType `json:\"whenDeleted,omitempty\"`\n\tWhenScaled  *appsv1beta2.PersistentVolumeClaimRetentionPolicyType `json:\"whenScaled,omitempty\"`\n}\n\n// StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration constructs a declarative configuration of the StatefulSetPersistentVolumeClaimRetentionPolicy type for use with\n// apply.\nfunc StatefulSetPersistentVolumeClaimRetentionPolicy() *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration {\n\treturn &StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration{}\n}\n\n// WithWhenDeleted sets the WhenDeleted field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the WhenDeleted field is set to the value of the last call.\nfunc (b *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration) WithWhenDeleted(value appsv1beta2.PersistentVolumeClaimRetentionPolicyType) *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration {\n\tb.WhenDeleted = &value\n\treturn b\n}\n\n// WithWhenScaled sets the WhenScaled field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the WhenScaled field is set to the value of the last call.\nfunc (b *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration) WithWhenScaled(value appsv1beta2.PersistentVolumeClaimRetentionPolicyType) *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration {\n\tb.WhenScaled = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/statefulsetspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tappsv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// StatefulSetSpecApplyConfiguration represents a declarative configuration of the StatefulSetSpec type for use\n// with apply.\ntype StatefulSetSpecApplyConfiguration struct {\n\tReplicas                             *int32                                                             `json:\"replicas,omitempty\"`\n\tSelector                             *v1.LabelSelectorApplyConfiguration                                `json:\"selector,omitempty\"`\n\tTemplate                             *corev1.PodTemplateSpecApplyConfiguration                          `json:\"template,omitempty\"`\n\tVolumeClaimTemplates                 []corev1.PersistentVolumeClaimApplyConfiguration                   `json:\"volumeClaimTemplates,omitempty\"`\n\tServiceName                          *string                                                            `json:\"serviceName,omitempty\"`\n\tPodManagementPolicy                  *appsv1beta2.PodManagementPolicyType                               `json:\"podManagementPolicy,omitempty\"`\n\tUpdateStrategy                       *StatefulSetUpdateStrategyApplyConfiguration                       `json:\"updateStrategy,omitempty\"`\n\tRevisionHistoryLimit                 *int32                                                             `json:\"revisionHistoryLimit,omitempty\"`\n\tMinReadySeconds                      *int32                                                             `json:\"minReadySeconds,omitempty\"`\n\tPersistentVolumeClaimRetentionPolicy *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration `json:\"persistentVolumeClaimRetentionPolicy,omitempty\"`\n\tOrdinals                             *StatefulSetOrdinalsApplyConfiguration                             `json:\"ordinals,omitempty\"`\n}\n\n// StatefulSetSpecApplyConfiguration constructs a declarative configuration of the StatefulSetSpec type for use with\n// apply.\nfunc StatefulSetSpec() *StatefulSetSpecApplyConfiguration {\n\treturn &StatefulSetSpecApplyConfiguration{}\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithReplicas(value int32) *StatefulSetSpecApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *StatefulSetSpecApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n\n// WithTemplate sets the Template field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Template field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithTemplate(value *corev1.PodTemplateSpecApplyConfiguration) *StatefulSetSpecApplyConfiguration {\n\tb.Template = value\n\treturn b\n}\n\n// WithVolumeClaimTemplates adds the given value to the VolumeClaimTemplates field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the VolumeClaimTemplates field.\nfunc (b *StatefulSetSpecApplyConfiguration) WithVolumeClaimTemplates(values ...*corev1.PersistentVolumeClaimApplyConfiguration) *StatefulSetSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithVolumeClaimTemplates\")\n\t\t}\n\t\tb.VolumeClaimTemplates = append(b.VolumeClaimTemplates, *values[i])\n\t}\n\treturn b\n}\n\n// WithServiceName sets the ServiceName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ServiceName field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithServiceName(value string) *StatefulSetSpecApplyConfiguration {\n\tb.ServiceName = &value\n\treturn b\n}\n\n// WithPodManagementPolicy sets the PodManagementPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PodManagementPolicy field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithPodManagementPolicy(value appsv1beta2.PodManagementPolicyType) *StatefulSetSpecApplyConfiguration {\n\tb.PodManagementPolicy = &value\n\treturn b\n}\n\n// WithUpdateStrategy sets the UpdateStrategy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UpdateStrategy field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithUpdateStrategy(value *StatefulSetUpdateStrategyApplyConfiguration) *StatefulSetSpecApplyConfiguration {\n\tb.UpdateStrategy = value\n\treturn b\n}\n\n// WithRevisionHistoryLimit sets the RevisionHistoryLimit field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RevisionHistoryLimit field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithRevisionHistoryLimit(value int32) *StatefulSetSpecApplyConfiguration {\n\tb.RevisionHistoryLimit = &value\n\treturn b\n}\n\n// WithMinReadySeconds sets the MinReadySeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MinReadySeconds field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithMinReadySeconds(value int32) *StatefulSetSpecApplyConfiguration {\n\tb.MinReadySeconds = &value\n\treturn b\n}\n\n// WithPersistentVolumeClaimRetentionPolicy sets the PersistentVolumeClaimRetentionPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PersistentVolumeClaimRetentionPolicy field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithPersistentVolumeClaimRetentionPolicy(value *StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration) *StatefulSetSpecApplyConfiguration {\n\tb.PersistentVolumeClaimRetentionPolicy = value\n\treturn b\n}\n\n// WithOrdinals sets the Ordinals field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Ordinals field is set to the value of the last call.\nfunc (b *StatefulSetSpecApplyConfiguration) WithOrdinals(value *StatefulSetOrdinalsApplyConfiguration) *StatefulSetSpecApplyConfiguration {\n\tb.Ordinals = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/statefulsetstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\n// StatefulSetStatusApplyConfiguration represents a declarative configuration of the StatefulSetStatus type for use\n// with apply.\ntype StatefulSetStatusApplyConfiguration struct {\n\tObservedGeneration *int64                                   `json:\"observedGeneration,omitempty\"`\n\tReplicas           *int32                                   `json:\"replicas,omitempty\"`\n\tReadyReplicas      *int32                                   `json:\"readyReplicas,omitempty\"`\n\tCurrentReplicas    *int32                                   `json:\"currentReplicas,omitempty\"`\n\tUpdatedReplicas    *int32                                   `json:\"updatedReplicas,omitempty\"`\n\tCurrentRevision    *string                                  `json:\"currentRevision,omitempty\"`\n\tUpdateRevision     *string                                  `json:\"updateRevision,omitempty\"`\n\tCollisionCount     *int32                                   `json:\"collisionCount,omitempty\"`\n\tConditions         []StatefulSetConditionApplyConfiguration `json:\"conditions,omitempty\"`\n\tAvailableReplicas  *int32                                   `json:\"availableReplicas,omitempty\"`\n}\n\n// StatefulSetStatusApplyConfiguration constructs a declarative configuration of the StatefulSetStatus type for use with\n// apply.\nfunc StatefulSetStatus() *StatefulSetStatusApplyConfiguration {\n\treturn &StatefulSetStatusApplyConfiguration{}\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithObservedGeneration(value int64) *StatefulSetStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithReplicas(value int32) *StatefulSetStatusApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithReadyReplicas sets the ReadyReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadyReplicas field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithReadyReplicas(value int32) *StatefulSetStatusApplyConfiguration {\n\tb.ReadyReplicas = &value\n\treturn b\n}\n\n// WithCurrentReplicas sets the CurrentReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentReplicas field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithCurrentReplicas(value int32) *StatefulSetStatusApplyConfiguration {\n\tb.CurrentReplicas = &value\n\treturn b\n}\n\n// WithUpdatedReplicas sets the UpdatedReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UpdatedReplicas field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithUpdatedReplicas(value int32) *StatefulSetStatusApplyConfiguration {\n\tb.UpdatedReplicas = &value\n\treturn b\n}\n\n// WithCurrentRevision sets the CurrentRevision field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentRevision field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithCurrentRevision(value string) *StatefulSetStatusApplyConfiguration {\n\tb.CurrentRevision = &value\n\treturn b\n}\n\n// WithUpdateRevision sets the UpdateRevision field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UpdateRevision field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithUpdateRevision(value string) *StatefulSetStatusApplyConfiguration {\n\tb.UpdateRevision = &value\n\treturn b\n}\n\n// WithCollisionCount sets the CollisionCount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CollisionCount field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithCollisionCount(value int32) *StatefulSetStatusApplyConfiguration {\n\tb.CollisionCount = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *StatefulSetStatusApplyConfiguration) WithConditions(values ...*StatefulSetConditionApplyConfiguration) *StatefulSetStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n\n// WithAvailableReplicas sets the AvailableReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AvailableReplicas field is set to the value of the last call.\nfunc (b *StatefulSetStatusApplyConfiguration) WithAvailableReplicas(value int32) *StatefulSetStatusApplyConfiguration {\n\tb.AvailableReplicas = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/apps/v1beta2/statefulsetupdatestrategy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tappsv1beta2 \"k8s.io/api/apps/v1beta2\"\n)\n\n// StatefulSetUpdateStrategyApplyConfiguration represents a declarative configuration of the StatefulSetUpdateStrategy type for use\n// with apply.\ntype StatefulSetUpdateStrategyApplyConfiguration struct {\n\tType          *appsv1beta2.StatefulSetUpdateStrategyType          `json:\"type,omitempty\"`\n\tRollingUpdate *RollingUpdateStatefulSetStrategyApplyConfiguration `json:\"rollingUpdate,omitempty\"`\n}\n\n// StatefulSetUpdateStrategyApplyConfiguration constructs a declarative configuration of the StatefulSetUpdateStrategy type for use with\n// apply.\nfunc StatefulSetUpdateStrategy() *StatefulSetUpdateStrategyApplyConfiguration {\n\treturn &StatefulSetUpdateStrategyApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *StatefulSetUpdateStrategyApplyConfiguration) WithType(value appsv1beta2.StatefulSetUpdateStrategyType) *StatefulSetUpdateStrategyApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithRollingUpdate sets the RollingUpdate field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RollingUpdate field is set to the value of the last call.\nfunc (b *StatefulSetUpdateStrategyApplyConfiguration) WithRollingUpdate(value *RollingUpdateStatefulSetStrategyApplyConfiguration) *StatefulSetUpdateStrategyApplyConfiguration {\n\tb.RollingUpdate = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v1/crossversionobjectreference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// CrossVersionObjectReferenceApplyConfiguration represents a declarative configuration of the CrossVersionObjectReference type for use\n// with apply.\ntype CrossVersionObjectReferenceApplyConfiguration struct {\n\tKind       *string `json:\"kind,omitempty\"`\n\tName       *string `json:\"name,omitempty\"`\n\tAPIVersion *string `json:\"apiVersion,omitempty\"`\n}\n\n// CrossVersionObjectReferenceApplyConfiguration constructs a declarative configuration of the CrossVersionObjectReference type for use with\n// apply.\nfunc CrossVersionObjectReference() *CrossVersionObjectReferenceApplyConfiguration {\n\treturn &CrossVersionObjectReferenceApplyConfiguration{}\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *CrossVersionObjectReferenceApplyConfiguration) WithKind(value string) *CrossVersionObjectReferenceApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *CrossVersionObjectReferenceApplyConfiguration) WithName(value string) *CrossVersionObjectReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *CrossVersionObjectReferenceApplyConfiguration) WithAPIVersion(value string) *CrossVersionObjectReferenceApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v1/horizontalpodautoscaler.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tautoscalingv1 \"k8s.io/api/autoscaling/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// HorizontalPodAutoscalerApplyConfiguration represents a declarative configuration of the HorizontalPodAutoscaler type for use\n// with apply.\ntype HorizontalPodAutoscalerApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                                 *HorizontalPodAutoscalerSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                               *HorizontalPodAutoscalerStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// HorizontalPodAutoscaler constructs a declarative configuration of the HorizontalPodAutoscaler type for use with\n// apply.\nfunc HorizontalPodAutoscaler(name, namespace string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb := &HorizontalPodAutoscalerApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"HorizontalPodAutoscaler\")\n\tb.WithAPIVersion(\"autoscaling/v1\")\n\treturn b\n}\n\n// ExtractHorizontalPodAutoscaler extracts the applied configuration owned by fieldManager from\n// horizontalPodAutoscaler. If no managedFields are found in horizontalPodAutoscaler for fieldManager, a\n// HorizontalPodAutoscalerApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// horizontalPodAutoscaler must be a unmodified HorizontalPodAutoscaler API object that was retrieved from the Kubernetes API.\n// ExtractHorizontalPodAutoscaler provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractHorizontalPodAutoscaler(horizontalPodAutoscaler *autoscalingv1.HorizontalPodAutoscaler, fieldManager string) (*HorizontalPodAutoscalerApplyConfiguration, error) {\n\treturn extractHorizontalPodAutoscaler(horizontalPodAutoscaler, fieldManager, \"\")\n}\n\n// ExtractHorizontalPodAutoscalerStatus is the same as ExtractHorizontalPodAutoscaler except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractHorizontalPodAutoscalerStatus(horizontalPodAutoscaler *autoscalingv1.HorizontalPodAutoscaler, fieldManager string) (*HorizontalPodAutoscalerApplyConfiguration, error) {\n\treturn extractHorizontalPodAutoscaler(horizontalPodAutoscaler, fieldManager, \"status\")\n}\n\nfunc extractHorizontalPodAutoscaler(horizontalPodAutoscaler *autoscalingv1.HorizontalPodAutoscaler, fieldManager string, subresource string) (*HorizontalPodAutoscalerApplyConfiguration, error) {\n\tb := &HorizontalPodAutoscalerApplyConfiguration{}\n\terr := managedfields.ExtractInto(horizontalPodAutoscaler, internal.Parser().Type(\"io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(horizontalPodAutoscaler.Name)\n\tb.WithNamespace(horizontalPodAutoscaler.Namespace)\n\n\tb.WithKind(\"HorizontalPodAutoscaler\")\n\tb.WithAPIVersion(\"autoscaling/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithKind(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithAPIVersion(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithName(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithGenerateName(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithNamespace(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithUID(value types.UID) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithResourceVersion(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithGeneration(value int64) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithLabels(entries map[string]string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithAnnotations(entries map[string]string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithFinalizers(values ...string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithSpec(value *HorizontalPodAutoscalerSpecApplyConfiguration) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithStatus(value *HorizontalPodAutoscalerStatusApplyConfiguration) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v1/horizontalpodautoscalerspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// HorizontalPodAutoscalerSpecApplyConfiguration represents a declarative configuration of the HorizontalPodAutoscalerSpec type for use\n// with apply.\ntype HorizontalPodAutoscalerSpecApplyConfiguration struct {\n\tScaleTargetRef                 *CrossVersionObjectReferenceApplyConfiguration `json:\"scaleTargetRef,omitempty\"`\n\tMinReplicas                    *int32                                         `json:\"minReplicas,omitempty\"`\n\tMaxReplicas                    *int32                                         `json:\"maxReplicas,omitempty\"`\n\tTargetCPUUtilizationPercentage *int32                                         `json:\"targetCPUUtilizationPercentage,omitempty\"`\n}\n\n// HorizontalPodAutoscalerSpecApplyConfiguration constructs a declarative configuration of the HorizontalPodAutoscalerSpec type for use with\n// apply.\nfunc HorizontalPodAutoscalerSpec() *HorizontalPodAutoscalerSpecApplyConfiguration {\n\treturn &HorizontalPodAutoscalerSpecApplyConfiguration{}\n}\n\n// WithScaleTargetRef sets the ScaleTargetRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ScaleTargetRef field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithScaleTargetRef(value *CrossVersionObjectReferenceApplyConfiguration) *HorizontalPodAutoscalerSpecApplyConfiguration {\n\tb.ScaleTargetRef = value\n\treturn b\n}\n\n// WithMinReplicas sets the MinReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MinReplicas field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithMinReplicas(value int32) *HorizontalPodAutoscalerSpecApplyConfiguration {\n\tb.MinReplicas = &value\n\treturn b\n}\n\n// WithMaxReplicas sets the MaxReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxReplicas field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithMaxReplicas(value int32) *HorizontalPodAutoscalerSpecApplyConfiguration {\n\tb.MaxReplicas = &value\n\treturn b\n}\n\n// WithTargetCPUUtilizationPercentage sets the TargetCPUUtilizationPercentage field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TargetCPUUtilizationPercentage field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithTargetCPUUtilizationPercentage(value int32) *HorizontalPodAutoscalerSpecApplyConfiguration {\n\tb.TargetCPUUtilizationPercentage = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v1/horizontalpodautoscalerstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// HorizontalPodAutoscalerStatusApplyConfiguration represents a declarative configuration of the HorizontalPodAutoscalerStatus type for use\n// with apply.\ntype HorizontalPodAutoscalerStatusApplyConfiguration struct {\n\tObservedGeneration              *int64       `json:\"observedGeneration,omitempty\"`\n\tLastScaleTime                   *metav1.Time `json:\"lastScaleTime,omitempty\"`\n\tCurrentReplicas                 *int32       `json:\"currentReplicas,omitempty\"`\n\tDesiredReplicas                 *int32       `json:\"desiredReplicas,omitempty\"`\n\tCurrentCPUUtilizationPercentage *int32       `json:\"currentCPUUtilizationPercentage,omitempty\"`\n}\n\n// HorizontalPodAutoscalerStatusApplyConfiguration constructs a declarative configuration of the HorizontalPodAutoscalerStatus type for use with\n// apply.\nfunc HorizontalPodAutoscalerStatus() *HorizontalPodAutoscalerStatusApplyConfiguration {\n\treturn &HorizontalPodAutoscalerStatusApplyConfiguration{}\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithObservedGeneration(value int64) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithLastScaleTime sets the LastScaleTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastScaleTime field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithLastScaleTime(value metav1.Time) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tb.LastScaleTime = &value\n\treturn b\n}\n\n// WithCurrentReplicas sets the CurrentReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentReplicas field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithCurrentReplicas(value int32) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tb.CurrentReplicas = &value\n\treturn b\n}\n\n// WithDesiredReplicas sets the DesiredReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DesiredReplicas field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithDesiredReplicas(value int32) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tb.DesiredReplicas = &value\n\treturn b\n}\n\n// WithCurrentCPUUtilizationPercentage sets the CurrentCPUUtilizationPercentage field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentCPUUtilizationPercentage field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithCurrentCPUUtilizationPercentage(value int32) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tb.CurrentCPUUtilizationPercentage = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v1/scale.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ScaleApplyConfiguration represents a declarative configuration of the Scale type for use\n// with apply.\ntype ScaleApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                                 *ScaleSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                               *ScaleStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// ScaleApplyConfiguration constructs a declarative configuration of the Scale type for use with\n// apply.\nfunc Scale() *ScaleApplyConfiguration {\n\tb := &ScaleApplyConfiguration{}\n\tb.WithKind(\"Scale\")\n\tb.WithAPIVersion(\"autoscaling/v1\")\n\treturn b\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithKind(value string) *ScaleApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithAPIVersion(value string) *ScaleApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithName(value string) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithGenerateName(value string) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithNamespace(value string) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithUID(value types.UID) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithResourceVersion(value string) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithGeneration(value int64) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ScaleApplyConfiguration) WithLabels(entries map[string]string) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ScaleApplyConfiguration) WithAnnotations(entries map[string]string) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ScaleApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ScaleApplyConfiguration) WithFinalizers(values ...string) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ScaleApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithSpec(value *ScaleSpecApplyConfiguration) *ScaleApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithStatus(value *ScaleStatusApplyConfiguration) *ScaleApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *ScaleApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v1/scalespec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ScaleSpecApplyConfiguration represents a declarative configuration of the ScaleSpec type for use\n// with apply.\ntype ScaleSpecApplyConfiguration struct {\n\tReplicas *int32 `json:\"replicas,omitempty\"`\n}\n\n// ScaleSpecApplyConfiguration constructs a declarative configuration of the ScaleSpec type for use with\n// apply.\nfunc ScaleSpec() *ScaleSpecApplyConfiguration {\n\treturn &ScaleSpecApplyConfiguration{}\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *ScaleSpecApplyConfiguration) WithReplicas(value int32) *ScaleSpecApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v1/scalestatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ScaleStatusApplyConfiguration represents a declarative configuration of the ScaleStatus type for use\n// with apply.\ntype ScaleStatusApplyConfiguration struct {\n\tReplicas *int32  `json:\"replicas,omitempty\"`\n\tSelector *string `json:\"selector,omitempty\"`\n}\n\n// ScaleStatusApplyConfiguration constructs a declarative configuration of the ScaleStatus type for use with\n// apply.\nfunc ScaleStatus() *ScaleStatusApplyConfiguration {\n\treturn &ScaleStatusApplyConfiguration{}\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *ScaleStatusApplyConfiguration) WithReplicas(value int32) *ScaleStatusApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *ScaleStatusApplyConfiguration) WithSelector(value string) *ScaleStatusApplyConfiguration {\n\tb.Selector = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/containerresourcemetricsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// ContainerResourceMetricSourceApplyConfiguration represents a declarative configuration of the ContainerResourceMetricSource type for use\n// with apply.\ntype ContainerResourceMetricSourceApplyConfiguration struct {\n\tName      *v1.ResourceName                `json:\"name,omitempty\"`\n\tTarget    *MetricTargetApplyConfiguration `json:\"target,omitempty\"`\n\tContainer *string                         `json:\"container,omitempty\"`\n}\n\n// ContainerResourceMetricSourceApplyConfiguration constructs a declarative configuration of the ContainerResourceMetricSource type for use with\n// apply.\nfunc ContainerResourceMetricSource() *ContainerResourceMetricSourceApplyConfiguration {\n\treturn &ContainerResourceMetricSourceApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ContainerResourceMetricSourceApplyConfiguration) WithName(value v1.ResourceName) *ContainerResourceMetricSourceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithTarget sets the Target field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Target field is set to the value of the last call.\nfunc (b *ContainerResourceMetricSourceApplyConfiguration) WithTarget(value *MetricTargetApplyConfiguration) *ContainerResourceMetricSourceApplyConfiguration {\n\tb.Target = value\n\treturn b\n}\n\n// WithContainer sets the Container field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Container field is set to the value of the last call.\nfunc (b *ContainerResourceMetricSourceApplyConfiguration) WithContainer(value string) *ContainerResourceMetricSourceApplyConfiguration {\n\tb.Container = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/containerresourcemetricstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// ContainerResourceMetricStatusApplyConfiguration represents a declarative configuration of the ContainerResourceMetricStatus type for use\n// with apply.\ntype ContainerResourceMetricStatusApplyConfiguration struct {\n\tName      *v1.ResourceName                     `json:\"name,omitempty\"`\n\tCurrent   *MetricValueStatusApplyConfiguration `json:\"current,omitempty\"`\n\tContainer *string                              `json:\"container,omitempty\"`\n}\n\n// ContainerResourceMetricStatusApplyConfiguration constructs a declarative configuration of the ContainerResourceMetricStatus type for use with\n// apply.\nfunc ContainerResourceMetricStatus() *ContainerResourceMetricStatusApplyConfiguration {\n\treturn &ContainerResourceMetricStatusApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ContainerResourceMetricStatusApplyConfiguration) WithName(value v1.ResourceName) *ContainerResourceMetricStatusApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithCurrent sets the Current field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Current field is set to the value of the last call.\nfunc (b *ContainerResourceMetricStatusApplyConfiguration) WithCurrent(value *MetricValueStatusApplyConfiguration) *ContainerResourceMetricStatusApplyConfiguration {\n\tb.Current = value\n\treturn b\n}\n\n// WithContainer sets the Container field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Container field is set to the value of the last call.\nfunc (b *ContainerResourceMetricStatusApplyConfiguration) WithContainer(value string) *ContainerResourceMetricStatusApplyConfiguration {\n\tb.Container = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/crossversionobjectreference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\n// CrossVersionObjectReferenceApplyConfiguration represents a declarative configuration of the CrossVersionObjectReference type for use\n// with apply.\ntype CrossVersionObjectReferenceApplyConfiguration struct {\n\tKind       *string `json:\"kind,omitempty\"`\n\tName       *string `json:\"name,omitempty\"`\n\tAPIVersion *string `json:\"apiVersion,omitempty\"`\n}\n\n// CrossVersionObjectReferenceApplyConfiguration constructs a declarative configuration of the CrossVersionObjectReference type for use with\n// apply.\nfunc CrossVersionObjectReference() *CrossVersionObjectReferenceApplyConfiguration {\n\treturn &CrossVersionObjectReferenceApplyConfiguration{}\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *CrossVersionObjectReferenceApplyConfiguration) WithKind(value string) *CrossVersionObjectReferenceApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *CrossVersionObjectReferenceApplyConfiguration) WithName(value string) *CrossVersionObjectReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *CrossVersionObjectReferenceApplyConfiguration) WithAPIVersion(value string) *CrossVersionObjectReferenceApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/externalmetricsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\n// ExternalMetricSourceApplyConfiguration represents a declarative configuration of the ExternalMetricSource type for use\n// with apply.\ntype ExternalMetricSourceApplyConfiguration struct {\n\tMetric *MetricIdentifierApplyConfiguration `json:\"metric,omitempty\"`\n\tTarget *MetricTargetApplyConfiguration     `json:\"target,omitempty\"`\n}\n\n// ExternalMetricSourceApplyConfiguration constructs a declarative configuration of the ExternalMetricSource type for use with\n// apply.\nfunc ExternalMetricSource() *ExternalMetricSourceApplyConfiguration {\n\treturn &ExternalMetricSourceApplyConfiguration{}\n}\n\n// WithMetric sets the Metric field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Metric field is set to the value of the last call.\nfunc (b *ExternalMetricSourceApplyConfiguration) WithMetric(value *MetricIdentifierApplyConfiguration) *ExternalMetricSourceApplyConfiguration {\n\tb.Metric = value\n\treturn b\n}\n\n// WithTarget sets the Target field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Target field is set to the value of the last call.\nfunc (b *ExternalMetricSourceApplyConfiguration) WithTarget(value *MetricTargetApplyConfiguration) *ExternalMetricSourceApplyConfiguration {\n\tb.Target = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/externalmetricstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\n// ExternalMetricStatusApplyConfiguration represents a declarative configuration of the ExternalMetricStatus type for use\n// with apply.\ntype ExternalMetricStatusApplyConfiguration struct {\n\tMetric  *MetricIdentifierApplyConfiguration  `json:\"metric,omitempty\"`\n\tCurrent *MetricValueStatusApplyConfiguration `json:\"current,omitempty\"`\n}\n\n// ExternalMetricStatusApplyConfiguration constructs a declarative configuration of the ExternalMetricStatus type for use with\n// apply.\nfunc ExternalMetricStatus() *ExternalMetricStatusApplyConfiguration {\n\treturn &ExternalMetricStatusApplyConfiguration{}\n}\n\n// WithMetric sets the Metric field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Metric field is set to the value of the last call.\nfunc (b *ExternalMetricStatusApplyConfiguration) WithMetric(value *MetricIdentifierApplyConfiguration) *ExternalMetricStatusApplyConfiguration {\n\tb.Metric = value\n\treturn b\n}\n\n// WithCurrent sets the Current field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Current field is set to the value of the last call.\nfunc (b *ExternalMetricStatusApplyConfiguration) WithCurrent(value *MetricValueStatusApplyConfiguration) *ExternalMetricStatusApplyConfiguration {\n\tb.Current = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/horizontalpodautoscaler.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\nimport (\n\tautoscalingv2 \"k8s.io/api/autoscaling/v2\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// HorizontalPodAutoscalerApplyConfiguration represents a declarative configuration of the HorizontalPodAutoscaler type for use\n// with apply.\ntype HorizontalPodAutoscalerApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *HorizontalPodAutoscalerSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *HorizontalPodAutoscalerStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// HorizontalPodAutoscaler constructs a declarative configuration of the HorizontalPodAutoscaler type for use with\n// apply.\nfunc HorizontalPodAutoscaler(name, namespace string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb := &HorizontalPodAutoscalerApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"HorizontalPodAutoscaler\")\n\tb.WithAPIVersion(\"autoscaling/v2\")\n\treturn b\n}\n\n// ExtractHorizontalPodAutoscaler extracts the applied configuration owned by fieldManager from\n// horizontalPodAutoscaler. If no managedFields are found in horizontalPodAutoscaler for fieldManager, a\n// HorizontalPodAutoscalerApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// horizontalPodAutoscaler must be a unmodified HorizontalPodAutoscaler API object that was retrieved from the Kubernetes API.\n// ExtractHorizontalPodAutoscaler provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractHorizontalPodAutoscaler(horizontalPodAutoscaler *autoscalingv2.HorizontalPodAutoscaler, fieldManager string) (*HorizontalPodAutoscalerApplyConfiguration, error) {\n\treturn extractHorizontalPodAutoscaler(horizontalPodAutoscaler, fieldManager, \"\")\n}\n\n// ExtractHorizontalPodAutoscalerStatus is the same as ExtractHorizontalPodAutoscaler except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractHorizontalPodAutoscalerStatus(horizontalPodAutoscaler *autoscalingv2.HorizontalPodAutoscaler, fieldManager string) (*HorizontalPodAutoscalerApplyConfiguration, error) {\n\treturn extractHorizontalPodAutoscaler(horizontalPodAutoscaler, fieldManager, \"status\")\n}\n\nfunc extractHorizontalPodAutoscaler(horizontalPodAutoscaler *autoscalingv2.HorizontalPodAutoscaler, fieldManager string, subresource string) (*HorizontalPodAutoscalerApplyConfiguration, error) {\n\tb := &HorizontalPodAutoscalerApplyConfiguration{}\n\terr := managedfields.ExtractInto(horizontalPodAutoscaler, internal.Parser().Type(\"io.k8s.api.autoscaling.v2.HorizontalPodAutoscaler\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(horizontalPodAutoscaler.Name)\n\tb.WithNamespace(horizontalPodAutoscaler.Namespace)\n\n\tb.WithKind(\"HorizontalPodAutoscaler\")\n\tb.WithAPIVersion(\"autoscaling/v2\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithKind(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithAPIVersion(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithName(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithGenerateName(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithNamespace(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithUID(value types.UID) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithResourceVersion(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithGeneration(value int64) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithCreationTimestamp(value metav1.Time) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithLabels(entries map[string]string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithAnnotations(entries map[string]string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithFinalizers(values ...string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithSpec(value *HorizontalPodAutoscalerSpecApplyConfiguration) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithStatus(value *HorizontalPodAutoscalerStatusApplyConfiguration) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/horizontalpodautoscalerbehavior.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\n// HorizontalPodAutoscalerBehaviorApplyConfiguration represents a declarative configuration of the HorizontalPodAutoscalerBehavior type for use\n// with apply.\ntype HorizontalPodAutoscalerBehaviorApplyConfiguration struct {\n\tScaleUp   *HPAScalingRulesApplyConfiguration `json:\"scaleUp,omitempty\"`\n\tScaleDown *HPAScalingRulesApplyConfiguration `json:\"scaleDown,omitempty\"`\n}\n\n// HorizontalPodAutoscalerBehaviorApplyConfiguration constructs a declarative configuration of the HorizontalPodAutoscalerBehavior type for use with\n// apply.\nfunc HorizontalPodAutoscalerBehavior() *HorizontalPodAutoscalerBehaviorApplyConfiguration {\n\treturn &HorizontalPodAutoscalerBehaviorApplyConfiguration{}\n}\n\n// WithScaleUp sets the ScaleUp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ScaleUp field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerBehaviorApplyConfiguration) WithScaleUp(value *HPAScalingRulesApplyConfiguration) *HorizontalPodAutoscalerBehaviorApplyConfiguration {\n\tb.ScaleUp = value\n\treturn b\n}\n\n// WithScaleDown sets the ScaleDown field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ScaleDown field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerBehaviorApplyConfiguration) WithScaleDown(value *HPAScalingRulesApplyConfiguration) *HorizontalPodAutoscalerBehaviorApplyConfiguration {\n\tb.ScaleDown = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/horizontalpodautoscalercondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\nimport (\n\tautoscalingv2 \"k8s.io/api/autoscaling/v2\"\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// HorizontalPodAutoscalerConditionApplyConfiguration represents a declarative configuration of the HorizontalPodAutoscalerCondition type for use\n// with apply.\ntype HorizontalPodAutoscalerConditionApplyConfiguration struct {\n\tType               *autoscalingv2.HorizontalPodAutoscalerConditionType `json:\"type,omitempty\"`\n\tStatus             *v1.ConditionStatus                                 `json:\"status,omitempty\"`\n\tLastTransitionTime *metav1.Time                                        `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                                             `json:\"reason,omitempty\"`\n\tMessage            *string                                             `json:\"message,omitempty\"`\n}\n\n// HorizontalPodAutoscalerConditionApplyConfiguration constructs a declarative configuration of the HorizontalPodAutoscalerCondition type for use with\n// apply.\nfunc HorizontalPodAutoscalerCondition() *HorizontalPodAutoscalerConditionApplyConfiguration {\n\treturn &HorizontalPodAutoscalerConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerConditionApplyConfiguration) WithType(value autoscalingv2.HorizontalPodAutoscalerConditionType) *HorizontalPodAutoscalerConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *HorizontalPodAutoscalerConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *HorizontalPodAutoscalerConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerConditionApplyConfiguration) WithReason(value string) *HorizontalPodAutoscalerConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerConditionApplyConfiguration) WithMessage(value string) *HorizontalPodAutoscalerConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/horizontalpodautoscalerspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\n// HorizontalPodAutoscalerSpecApplyConfiguration represents a declarative configuration of the HorizontalPodAutoscalerSpec type for use\n// with apply.\ntype HorizontalPodAutoscalerSpecApplyConfiguration struct {\n\tScaleTargetRef *CrossVersionObjectReferenceApplyConfiguration     `json:\"scaleTargetRef,omitempty\"`\n\tMinReplicas    *int32                                             `json:\"minReplicas,omitempty\"`\n\tMaxReplicas    *int32                                             `json:\"maxReplicas,omitempty\"`\n\tMetrics        []MetricSpecApplyConfiguration                     `json:\"metrics,omitempty\"`\n\tBehavior       *HorizontalPodAutoscalerBehaviorApplyConfiguration `json:\"behavior,omitempty\"`\n}\n\n// HorizontalPodAutoscalerSpecApplyConfiguration constructs a declarative configuration of the HorizontalPodAutoscalerSpec type for use with\n// apply.\nfunc HorizontalPodAutoscalerSpec() *HorizontalPodAutoscalerSpecApplyConfiguration {\n\treturn &HorizontalPodAutoscalerSpecApplyConfiguration{}\n}\n\n// WithScaleTargetRef sets the ScaleTargetRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ScaleTargetRef field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithScaleTargetRef(value *CrossVersionObjectReferenceApplyConfiguration) *HorizontalPodAutoscalerSpecApplyConfiguration {\n\tb.ScaleTargetRef = value\n\treturn b\n}\n\n// WithMinReplicas sets the MinReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MinReplicas field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithMinReplicas(value int32) *HorizontalPodAutoscalerSpecApplyConfiguration {\n\tb.MinReplicas = &value\n\treturn b\n}\n\n// WithMaxReplicas sets the MaxReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxReplicas field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithMaxReplicas(value int32) *HorizontalPodAutoscalerSpecApplyConfiguration {\n\tb.MaxReplicas = &value\n\treturn b\n}\n\n// WithMetrics adds the given value to the Metrics field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Metrics field.\nfunc (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithMetrics(values ...*MetricSpecApplyConfiguration) *HorizontalPodAutoscalerSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithMetrics\")\n\t\t}\n\t\tb.Metrics = append(b.Metrics, *values[i])\n\t}\n\treturn b\n}\n\n// WithBehavior sets the Behavior field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Behavior field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithBehavior(value *HorizontalPodAutoscalerBehaviorApplyConfiguration) *HorizontalPodAutoscalerSpecApplyConfiguration {\n\tb.Behavior = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/horizontalpodautoscalerstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// HorizontalPodAutoscalerStatusApplyConfiguration represents a declarative configuration of the HorizontalPodAutoscalerStatus type for use\n// with apply.\ntype HorizontalPodAutoscalerStatusApplyConfiguration struct {\n\tObservedGeneration *int64                                               `json:\"observedGeneration,omitempty\"`\n\tLastScaleTime      *v1.Time                                             `json:\"lastScaleTime,omitempty\"`\n\tCurrentReplicas    *int32                                               `json:\"currentReplicas,omitempty\"`\n\tDesiredReplicas    *int32                                               `json:\"desiredReplicas,omitempty\"`\n\tCurrentMetrics     []MetricStatusApplyConfiguration                     `json:\"currentMetrics,omitempty\"`\n\tConditions         []HorizontalPodAutoscalerConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// HorizontalPodAutoscalerStatusApplyConfiguration constructs a declarative configuration of the HorizontalPodAutoscalerStatus type for use with\n// apply.\nfunc HorizontalPodAutoscalerStatus() *HorizontalPodAutoscalerStatusApplyConfiguration {\n\treturn &HorizontalPodAutoscalerStatusApplyConfiguration{}\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithObservedGeneration(value int64) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithLastScaleTime sets the LastScaleTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastScaleTime field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithLastScaleTime(value v1.Time) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tb.LastScaleTime = &value\n\treturn b\n}\n\n// WithCurrentReplicas sets the CurrentReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentReplicas field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithCurrentReplicas(value int32) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tb.CurrentReplicas = &value\n\treturn b\n}\n\n// WithDesiredReplicas sets the DesiredReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DesiredReplicas field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithDesiredReplicas(value int32) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tb.DesiredReplicas = &value\n\treturn b\n}\n\n// WithCurrentMetrics adds the given value to the CurrentMetrics field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the CurrentMetrics field.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithCurrentMetrics(values ...*MetricStatusApplyConfiguration) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithCurrentMetrics\")\n\t\t}\n\t\tb.CurrentMetrics = append(b.CurrentMetrics, *values[i])\n\t}\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithConditions(values ...*HorizontalPodAutoscalerConditionApplyConfiguration) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/hpascalingpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\nimport (\n\tautoscalingv2 \"k8s.io/api/autoscaling/v2\"\n)\n\n// HPAScalingPolicyApplyConfiguration represents a declarative configuration of the HPAScalingPolicy type for use\n// with apply.\ntype HPAScalingPolicyApplyConfiguration struct {\n\tType          *autoscalingv2.HPAScalingPolicyType `json:\"type,omitempty\"`\n\tValue         *int32                              `json:\"value,omitempty\"`\n\tPeriodSeconds *int32                              `json:\"periodSeconds,omitempty\"`\n}\n\n// HPAScalingPolicyApplyConfiguration constructs a declarative configuration of the HPAScalingPolicy type for use with\n// apply.\nfunc HPAScalingPolicy() *HPAScalingPolicyApplyConfiguration {\n\treturn &HPAScalingPolicyApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *HPAScalingPolicyApplyConfiguration) WithType(value autoscalingv2.HPAScalingPolicyType) *HPAScalingPolicyApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithValue sets the Value field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Value field is set to the value of the last call.\nfunc (b *HPAScalingPolicyApplyConfiguration) WithValue(value int32) *HPAScalingPolicyApplyConfiguration {\n\tb.Value = &value\n\treturn b\n}\n\n// WithPeriodSeconds sets the PeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PeriodSeconds field is set to the value of the last call.\nfunc (b *HPAScalingPolicyApplyConfiguration) WithPeriodSeconds(value int32) *HPAScalingPolicyApplyConfiguration {\n\tb.PeriodSeconds = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/hpascalingrules.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\nimport (\n\tautoscalingv2 \"k8s.io/api/autoscaling/v2\"\n)\n\n// HPAScalingRulesApplyConfiguration represents a declarative configuration of the HPAScalingRules type for use\n// with apply.\ntype HPAScalingRulesApplyConfiguration struct {\n\tStabilizationWindowSeconds *int32                               `json:\"stabilizationWindowSeconds,omitempty\"`\n\tSelectPolicy               *autoscalingv2.ScalingPolicySelect   `json:\"selectPolicy,omitempty\"`\n\tPolicies                   []HPAScalingPolicyApplyConfiguration `json:\"policies,omitempty\"`\n}\n\n// HPAScalingRulesApplyConfiguration constructs a declarative configuration of the HPAScalingRules type for use with\n// apply.\nfunc HPAScalingRules() *HPAScalingRulesApplyConfiguration {\n\treturn &HPAScalingRulesApplyConfiguration{}\n}\n\n// WithStabilizationWindowSeconds sets the StabilizationWindowSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StabilizationWindowSeconds field is set to the value of the last call.\nfunc (b *HPAScalingRulesApplyConfiguration) WithStabilizationWindowSeconds(value int32) *HPAScalingRulesApplyConfiguration {\n\tb.StabilizationWindowSeconds = &value\n\treturn b\n}\n\n// WithSelectPolicy sets the SelectPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SelectPolicy field is set to the value of the last call.\nfunc (b *HPAScalingRulesApplyConfiguration) WithSelectPolicy(value autoscalingv2.ScalingPolicySelect) *HPAScalingRulesApplyConfiguration {\n\tb.SelectPolicy = &value\n\treturn b\n}\n\n// WithPolicies adds the given value to the Policies field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Policies field.\nfunc (b *HPAScalingRulesApplyConfiguration) WithPolicies(values ...*HPAScalingPolicyApplyConfiguration) *HPAScalingRulesApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPolicies\")\n\t\t}\n\t\tb.Policies = append(b.Policies, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/metricidentifier.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\nimport (\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// MetricIdentifierApplyConfiguration represents a declarative configuration of the MetricIdentifier type for use\n// with apply.\ntype MetricIdentifierApplyConfiguration struct {\n\tName     *string                             `json:\"name,omitempty\"`\n\tSelector *v1.LabelSelectorApplyConfiguration `json:\"selector,omitempty\"`\n}\n\n// MetricIdentifierApplyConfiguration constructs a declarative configuration of the MetricIdentifier type for use with\n// apply.\nfunc MetricIdentifier() *MetricIdentifierApplyConfiguration {\n\treturn &MetricIdentifierApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *MetricIdentifierApplyConfiguration) WithName(value string) *MetricIdentifierApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *MetricIdentifierApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *MetricIdentifierApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/metricspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\nimport (\n\tautoscalingv2 \"k8s.io/api/autoscaling/v2\"\n)\n\n// MetricSpecApplyConfiguration represents a declarative configuration of the MetricSpec type for use\n// with apply.\ntype MetricSpecApplyConfiguration struct {\n\tType              *autoscalingv2.MetricSourceType                  `json:\"type,omitempty\"`\n\tObject            *ObjectMetricSourceApplyConfiguration            `json:\"object,omitempty\"`\n\tPods              *PodsMetricSourceApplyConfiguration              `json:\"pods,omitempty\"`\n\tResource          *ResourceMetricSourceApplyConfiguration          `json:\"resource,omitempty\"`\n\tContainerResource *ContainerResourceMetricSourceApplyConfiguration `json:\"containerResource,omitempty\"`\n\tExternal          *ExternalMetricSourceApplyConfiguration          `json:\"external,omitempty\"`\n}\n\n// MetricSpecApplyConfiguration constructs a declarative configuration of the MetricSpec type for use with\n// apply.\nfunc MetricSpec() *MetricSpecApplyConfiguration {\n\treturn &MetricSpecApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *MetricSpecApplyConfiguration) WithType(value autoscalingv2.MetricSourceType) *MetricSpecApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithObject sets the Object field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Object field is set to the value of the last call.\nfunc (b *MetricSpecApplyConfiguration) WithObject(value *ObjectMetricSourceApplyConfiguration) *MetricSpecApplyConfiguration {\n\tb.Object = value\n\treturn b\n}\n\n// WithPods sets the Pods field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Pods field is set to the value of the last call.\nfunc (b *MetricSpecApplyConfiguration) WithPods(value *PodsMetricSourceApplyConfiguration) *MetricSpecApplyConfiguration {\n\tb.Pods = value\n\treturn b\n}\n\n// WithResource sets the Resource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Resource field is set to the value of the last call.\nfunc (b *MetricSpecApplyConfiguration) WithResource(value *ResourceMetricSourceApplyConfiguration) *MetricSpecApplyConfiguration {\n\tb.Resource = value\n\treturn b\n}\n\n// WithContainerResource sets the ContainerResource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ContainerResource field is set to the value of the last call.\nfunc (b *MetricSpecApplyConfiguration) WithContainerResource(value *ContainerResourceMetricSourceApplyConfiguration) *MetricSpecApplyConfiguration {\n\tb.ContainerResource = value\n\treturn b\n}\n\n// WithExternal sets the External field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the External field is set to the value of the last call.\nfunc (b *MetricSpecApplyConfiguration) WithExternal(value *ExternalMetricSourceApplyConfiguration) *MetricSpecApplyConfiguration {\n\tb.External = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/metricstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\nimport (\n\tautoscalingv2 \"k8s.io/api/autoscaling/v2\"\n)\n\n// MetricStatusApplyConfiguration represents a declarative configuration of the MetricStatus type for use\n// with apply.\ntype MetricStatusApplyConfiguration struct {\n\tType              *autoscalingv2.MetricSourceType                  `json:\"type,omitempty\"`\n\tObject            *ObjectMetricStatusApplyConfiguration            `json:\"object,omitempty\"`\n\tPods              *PodsMetricStatusApplyConfiguration              `json:\"pods,omitempty\"`\n\tResource          *ResourceMetricStatusApplyConfiguration          `json:\"resource,omitempty\"`\n\tContainerResource *ContainerResourceMetricStatusApplyConfiguration `json:\"containerResource,omitempty\"`\n\tExternal          *ExternalMetricStatusApplyConfiguration          `json:\"external,omitempty\"`\n}\n\n// MetricStatusApplyConfiguration constructs a declarative configuration of the MetricStatus type for use with\n// apply.\nfunc MetricStatus() *MetricStatusApplyConfiguration {\n\treturn &MetricStatusApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *MetricStatusApplyConfiguration) WithType(value autoscalingv2.MetricSourceType) *MetricStatusApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithObject sets the Object field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Object field is set to the value of the last call.\nfunc (b *MetricStatusApplyConfiguration) WithObject(value *ObjectMetricStatusApplyConfiguration) *MetricStatusApplyConfiguration {\n\tb.Object = value\n\treturn b\n}\n\n// WithPods sets the Pods field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Pods field is set to the value of the last call.\nfunc (b *MetricStatusApplyConfiguration) WithPods(value *PodsMetricStatusApplyConfiguration) *MetricStatusApplyConfiguration {\n\tb.Pods = value\n\treturn b\n}\n\n// WithResource sets the Resource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Resource field is set to the value of the last call.\nfunc (b *MetricStatusApplyConfiguration) WithResource(value *ResourceMetricStatusApplyConfiguration) *MetricStatusApplyConfiguration {\n\tb.Resource = value\n\treturn b\n}\n\n// WithContainerResource sets the ContainerResource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ContainerResource field is set to the value of the last call.\nfunc (b *MetricStatusApplyConfiguration) WithContainerResource(value *ContainerResourceMetricStatusApplyConfiguration) *MetricStatusApplyConfiguration {\n\tb.ContainerResource = value\n\treturn b\n}\n\n// WithExternal sets the External field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the External field is set to the value of the last call.\nfunc (b *MetricStatusApplyConfiguration) WithExternal(value *ExternalMetricStatusApplyConfiguration) *MetricStatusApplyConfiguration {\n\tb.External = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/metrictarget.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\nimport (\n\tautoscalingv2 \"k8s.io/api/autoscaling/v2\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n)\n\n// MetricTargetApplyConfiguration represents a declarative configuration of the MetricTarget type for use\n// with apply.\ntype MetricTargetApplyConfiguration struct {\n\tType               *autoscalingv2.MetricTargetType `json:\"type,omitempty\"`\n\tValue              *resource.Quantity              `json:\"value,omitempty\"`\n\tAverageValue       *resource.Quantity              `json:\"averageValue,omitempty\"`\n\tAverageUtilization *int32                          `json:\"averageUtilization,omitempty\"`\n}\n\n// MetricTargetApplyConfiguration constructs a declarative configuration of the MetricTarget type for use with\n// apply.\nfunc MetricTarget() *MetricTargetApplyConfiguration {\n\treturn &MetricTargetApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *MetricTargetApplyConfiguration) WithType(value autoscalingv2.MetricTargetType) *MetricTargetApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithValue sets the Value field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Value field is set to the value of the last call.\nfunc (b *MetricTargetApplyConfiguration) WithValue(value resource.Quantity) *MetricTargetApplyConfiguration {\n\tb.Value = &value\n\treturn b\n}\n\n// WithAverageValue sets the AverageValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AverageValue field is set to the value of the last call.\nfunc (b *MetricTargetApplyConfiguration) WithAverageValue(value resource.Quantity) *MetricTargetApplyConfiguration {\n\tb.AverageValue = &value\n\treturn b\n}\n\n// WithAverageUtilization sets the AverageUtilization field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AverageUtilization field is set to the value of the last call.\nfunc (b *MetricTargetApplyConfiguration) WithAverageUtilization(value int32) *MetricTargetApplyConfiguration {\n\tb.AverageUtilization = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/metricvaluestatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\nimport (\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n)\n\n// MetricValueStatusApplyConfiguration represents a declarative configuration of the MetricValueStatus type for use\n// with apply.\ntype MetricValueStatusApplyConfiguration struct {\n\tValue              *resource.Quantity `json:\"value,omitempty\"`\n\tAverageValue       *resource.Quantity `json:\"averageValue,omitempty\"`\n\tAverageUtilization *int32             `json:\"averageUtilization,omitempty\"`\n}\n\n// MetricValueStatusApplyConfiguration constructs a declarative configuration of the MetricValueStatus type for use with\n// apply.\nfunc MetricValueStatus() *MetricValueStatusApplyConfiguration {\n\treturn &MetricValueStatusApplyConfiguration{}\n}\n\n// WithValue sets the Value field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Value field is set to the value of the last call.\nfunc (b *MetricValueStatusApplyConfiguration) WithValue(value resource.Quantity) *MetricValueStatusApplyConfiguration {\n\tb.Value = &value\n\treturn b\n}\n\n// WithAverageValue sets the AverageValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AverageValue field is set to the value of the last call.\nfunc (b *MetricValueStatusApplyConfiguration) WithAverageValue(value resource.Quantity) *MetricValueStatusApplyConfiguration {\n\tb.AverageValue = &value\n\treturn b\n}\n\n// WithAverageUtilization sets the AverageUtilization field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AverageUtilization field is set to the value of the last call.\nfunc (b *MetricValueStatusApplyConfiguration) WithAverageUtilization(value int32) *MetricValueStatusApplyConfiguration {\n\tb.AverageUtilization = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/objectmetricsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\n// ObjectMetricSourceApplyConfiguration represents a declarative configuration of the ObjectMetricSource type for use\n// with apply.\ntype ObjectMetricSourceApplyConfiguration struct {\n\tDescribedObject *CrossVersionObjectReferenceApplyConfiguration `json:\"describedObject,omitempty\"`\n\tTarget          *MetricTargetApplyConfiguration                `json:\"target,omitempty\"`\n\tMetric          *MetricIdentifierApplyConfiguration            `json:\"metric,omitempty\"`\n}\n\n// ObjectMetricSourceApplyConfiguration constructs a declarative configuration of the ObjectMetricSource type for use with\n// apply.\nfunc ObjectMetricSource() *ObjectMetricSourceApplyConfiguration {\n\treturn &ObjectMetricSourceApplyConfiguration{}\n}\n\n// WithDescribedObject sets the DescribedObject field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DescribedObject field is set to the value of the last call.\nfunc (b *ObjectMetricSourceApplyConfiguration) WithDescribedObject(value *CrossVersionObjectReferenceApplyConfiguration) *ObjectMetricSourceApplyConfiguration {\n\tb.DescribedObject = value\n\treturn b\n}\n\n// WithTarget sets the Target field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Target field is set to the value of the last call.\nfunc (b *ObjectMetricSourceApplyConfiguration) WithTarget(value *MetricTargetApplyConfiguration) *ObjectMetricSourceApplyConfiguration {\n\tb.Target = value\n\treturn b\n}\n\n// WithMetric sets the Metric field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Metric field is set to the value of the last call.\nfunc (b *ObjectMetricSourceApplyConfiguration) WithMetric(value *MetricIdentifierApplyConfiguration) *ObjectMetricSourceApplyConfiguration {\n\tb.Metric = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/objectmetricstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\n// ObjectMetricStatusApplyConfiguration represents a declarative configuration of the ObjectMetricStatus type for use\n// with apply.\ntype ObjectMetricStatusApplyConfiguration struct {\n\tMetric          *MetricIdentifierApplyConfiguration            `json:\"metric,omitempty\"`\n\tCurrent         *MetricValueStatusApplyConfiguration           `json:\"current,omitempty\"`\n\tDescribedObject *CrossVersionObjectReferenceApplyConfiguration `json:\"describedObject,omitempty\"`\n}\n\n// ObjectMetricStatusApplyConfiguration constructs a declarative configuration of the ObjectMetricStatus type for use with\n// apply.\nfunc ObjectMetricStatus() *ObjectMetricStatusApplyConfiguration {\n\treturn &ObjectMetricStatusApplyConfiguration{}\n}\n\n// WithMetric sets the Metric field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Metric field is set to the value of the last call.\nfunc (b *ObjectMetricStatusApplyConfiguration) WithMetric(value *MetricIdentifierApplyConfiguration) *ObjectMetricStatusApplyConfiguration {\n\tb.Metric = value\n\treturn b\n}\n\n// WithCurrent sets the Current field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Current field is set to the value of the last call.\nfunc (b *ObjectMetricStatusApplyConfiguration) WithCurrent(value *MetricValueStatusApplyConfiguration) *ObjectMetricStatusApplyConfiguration {\n\tb.Current = value\n\treturn b\n}\n\n// WithDescribedObject sets the DescribedObject field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DescribedObject field is set to the value of the last call.\nfunc (b *ObjectMetricStatusApplyConfiguration) WithDescribedObject(value *CrossVersionObjectReferenceApplyConfiguration) *ObjectMetricStatusApplyConfiguration {\n\tb.DescribedObject = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/podsmetricsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\n// PodsMetricSourceApplyConfiguration represents a declarative configuration of the PodsMetricSource type for use\n// with apply.\ntype PodsMetricSourceApplyConfiguration struct {\n\tMetric *MetricIdentifierApplyConfiguration `json:\"metric,omitempty\"`\n\tTarget *MetricTargetApplyConfiguration     `json:\"target,omitempty\"`\n}\n\n// PodsMetricSourceApplyConfiguration constructs a declarative configuration of the PodsMetricSource type for use with\n// apply.\nfunc PodsMetricSource() *PodsMetricSourceApplyConfiguration {\n\treturn &PodsMetricSourceApplyConfiguration{}\n}\n\n// WithMetric sets the Metric field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Metric field is set to the value of the last call.\nfunc (b *PodsMetricSourceApplyConfiguration) WithMetric(value *MetricIdentifierApplyConfiguration) *PodsMetricSourceApplyConfiguration {\n\tb.Metric = value\n\treturn b\n}\n\n// WithTarget sets the Target field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Target field is set to the value of the last call.\nfunc (b *PodsMetricSourceApplyConfiguration) WithTarget(value *MetricTargetApplyConfiguration) *PodsMetricSourceApplyConfiguration {\n\tb.Target = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/podsmetricstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\n// PodsMetricStatusApplyConfiguration represents a declarative configuration of the PodsMetricStatus type for use\n// with apply.\ntype PodsMetricStatusApplyConfiguration struct {\n\tMetric  *MetricIdentifierApplyConfiguration  `json:\"metric,omitempty\"`\n\tCurrent *MetricValueStatusApplyConfiguration `json:\"current,omitempty\"`\n}\n\n// PodsMetricStatusApplyConfiguration constructs a declarative configuration of the PodsMetricStatus type for use with\n// apply.\nfunc PodsMetricStatus() *PodsMetricStatusApplyConfiguration {\n\treturn &PodsMetricStatusApplyConfiguration{}\n}\n\n// WithMetric sets the Metric field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Metric field is set to the value of the last call.\nfunc (b *PodsMetricStatusApplyConfiguration) WithMetric(value *MetricIdentifierApplyConfiguration) *PodsMetricStatusApplyConfiguration {\n\tb.Metric = value\n\treturn b\n}\n\n// WithCurrent sets the Current field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Current field is set to the value of the last call.\nfunc (b *PodsMetricStatusApplyConfiguration) WithCurrent(value *MetricValueStatusApplyConfiguration) *PodsMetricStatusApplyConfiguration {\n\tb.Current = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/resourcemetricsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// ResourceMetricSourceApplyConfiguration represents a declarative configuration of the ResourceMetricSource type for use\n// with apply.\ntype ResourceMetricSourceApplyConfiguration struct {\n\tName   *v1.ResourceName                `json:\"name,omitempty\"`\n\tTarget *MetricTargetApplyConfiguration `json:\"target,omitempty\"`\n}\n\n// ResourceMetricSourceApplyConfiguration constructs a declarative configuration of the ResourceMetricSource type for use with\n// apply.\nfunc ResourceMetricSource() *ResourceMetricSourceApplyConfiguration {\n\treturn &ResourceMetricSourceApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ResourceMetricSourceApplyConfiguration) WithName(value v1.ResourceName) *ResourceMetricSourceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithTarget sets the Target field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Target field is set to the value of the last call.\nfunc (b *ResourceMetricSourceApplyConfiguration) WithTarget(value *MetricTargetApplyConfiguration) *ResourceMetricSourceApplyConfiguration {\n\tb.Target = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2/resourcemetricstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// ResourceMetricStatusApplyConfiguration represents a declarative configuration of the ResourceMetricStatus type for use\n// with apply.\ntype ResourceMetricStatusApplyConfiguration struct {\n\tName    *v1.ResourceName                     `json:\"name,omitempty\"`\n\tCurrent *MetricValueStatusApplyConfiguration `json:\"current,omitempty\"`\n}\n\n// ResourceMetricStatusApplyConfiguration constructs a declarative configuration of the ResourceMetricStatus type for use with\n// apply.\nfunc ResourceMetricStatus() *ResourceMetricStatusApplyConfiguration {\n\treturn &ResourceMetricStatusApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ResourceMetricStatusApplyConfiguration) WithName(value v1.ResourceName) *ResourceMetricStatusApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithCurrent sets the Current field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Current field is set to the value of the last call.\nfunc (b *ResourceMetricStatusApplyConfiguration) WithCurrent(value *MetricValueStatusApplyConfiguration) *ResourceMetricStatusApplyConfiguration {\n\tb.Current = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/containerresourcemetricsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n)\n\n// ContainerResourceMetricSourceApplyConfiguration represents a declarative configuration of the ContainerResourceMetricSource type for use\n// with apply.\ntype ContainerResourceMetricSourceApplyConfiguration struct {\n\tName                     *v1.ResourceName   `json:\"name,omitempty\"`\n\tTargetAverageUtilization *int32             `json:\"targetAverageUtilization,omitempty\"`\n\tTargetAverageValue       *resource.Quantity `json:\"targetAverageValue,omitempty\"`\n\tContainer                *string            `json:\"container,omitempty\"`\n}\n\n// ContainerResourceMetricSourceApplyConfiguration constructs a declarative configuration of the ContainerResourceMetricSource type for use with\n// apply.\nfunc ContainerResourceMetricSource() *ContainerResourceMetricSourceApplyConfiguration {\n\treturn &ContainerResourceMetricSourceApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ContainerResourceMetricSourceApplyConfiguration) WithName(value v1.ResourceName) *ContainerResourceMetricSourceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithTargetAverageUtilization sets the TargetAverageUtilization field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TargetAverageUtilization field is set to the value of the last call.\nfunc (b *ContainerResourceMetricSourceApplyConfiguration) WithTargetAverageUtilization(value int32) *ContainerResourceMetricSourceApplyConfiguration {\n\tb.TargetAverageUtilization = &value\n\treturn b\n}\n\n// WithTargetAverageValue sets the TargetAverageValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TargetAverageValue field is set to the value of the last call.\nfunc (b *ContainerResourceMetricSourceApplyConfiguration) WithTargetAverageValue(value resource.Quantity) *ContainerResourceMetricSourceApplyConfiguration {\n\tb.TargetAverageValue = &value\n\treturn b\n}\n\n// WithContainer sets the Container field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Container field is set to the value of the last call.\nfunc (b *ContainerResourceMetricSourceApplyConfiguration) WithContainer(value string) *ContainerResourceMetricSourceApplyConfiguration {\n\tb.Container = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/containerresourcemetricstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n)\n\n// ContainerResourceMetricStatusApplyConfiguration represents a declarative configuration of the ContainerResourceMetricStatus type for use\n// with apply.\ntype ContainerResourceMetricStatusApplyConfiguration struct {\n\tName                      *v1.ResourceName   `json:\"name,omitempty\"`\n\tCurrentAverageUtilization *int32             `json:\"currentAverageUtilization,omitempty\"`\n\tCurrentAverageValue       *resource.Quantity `json:\"currentAverageValue,omitempty\"`\n\tContainer                 *string            `json:\"container,omitempty\"`\n}\n\n// ContainerResourceMetricStatusApplyConfiguration constructs a declarative configuration of the ContainerResourceMetricStatus type for use with\n// apply.\nfunc ContainerResourceMetricStatus() *ContainerResourceMetricStatusApplyConfiguration {\n\treturn &ContainerResourceMetricStatusApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ContainerResourceMetricStatusApplyConfiguration) WithName(value v1.ResourceName) *ContainerResourceMetricStatusApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithCurrentAverageUtilization sets the CurrentAverageUtilization field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentAverageUtilization field is set to the value of the last call.\nfunc (b *ContainerResourceMetricStatusApplyConfiguration) WithCurrentAverageUtilization(value int32) *ContainerResourceMetricStatusApplyConfiguration {\n\tb.CurrentAverageUtilization = &value\n\treturn b\n}\n\n// WithCurrentAverageValue sets the CurrentAverageValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentAverageValue field is set to the value of the last call.\nfunc (b *ContainerResourceMetricStatusApplyConfiguration) WithCurrentAverageValue(value resource.Quantity) *ContainerResourceMetricStatusApplyConfiguration {\n\tb.CurrentAverageValue = &value\n\treturn b\n}\n\n// WithContainer sets the Container field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Container field is set to the value of the last call.\nfunc (b *ContainerResourceMetricStatusApplyConfiguration) WithContainer(value string) *ContainerResourceMetricStatusApplyConfiguration {\n\tb.Container = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/crossversionobjectreference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta1\n\n// CrossVersionObjectReferenceApplyConfiguration represents a declarative configuration of the CrossVersionObjectReference type for use\n// with apply.\ntype CrossVersionObjectReferenceApplyConfiguration struct {\n\tKind       *string `json:\"kind,omitempty\"`\n\tName       *string `json:\"name,omitempty\"`\n\tAPIVersion *string `json:\"apiVersion,omitempty\"`\n}\n\n// CrossVersionObjectReferenceApplyConfiguration constructs a declarative configuration of the CrossVersionObjectReference type for use with\n// apply.\nfunc CrossVersionObjectReference() *CrossVersionObjectReferenceApplyConfiguration {\n\treturn &CrossVersionObjectReferenceApplyConfiguration{}\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *CrossVersionObjectReferenceApplyConfiguration) WithKind(value string) *CrossVersionObjectReferenceApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *CrossVersionObjectReferenceApplyConfiguration) WithName(value string) *CrossVersionObjectReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *CrossVersionObjectReferenceApplyConfiguration) WithAPIVersion(value string) *CrossVersionObjectReferenceApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/externalmetricsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta1\n\nimport (\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ExternalMetricSourceApplyConfiguration represents a declarative configuration of the ExternalMetricSource type for use\n// with apply.\ntype ExternalMetricSourceApplyConfiguration struct {\n\tMetricName         *string                             `json:\"metricName,omitempty\"`\n\tMetricSelector     *v1.LabelSelectorApplyConfiguration `json:\"metricSelector,omitempty\"`\n\tTargetValue        *resource.Quantity                  `json:\"targetValue,omitempty\"`\n\tTargetAverageValue *resource.Quantity                  `json:\"targetAverageValue,omitempty\"`\n}\n\n// ExternalMetricSourceApplyConfiguration constructs a declarative configuration of the ExternalMetricSource type for use with\n// apply.\nfunc ExternalMetricSource() *ExternalMetricSourceApplyConfiguration {\n\treturn &ExternalMetricSourceApplyConfiguration{}\n}\n\n// WithMetricName sets the MetricName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MetricName field is set to the value of the last call.\nfunc (b *ExternalMetricSourceApplyConfiguration) WithMetricName(value string) *ExternalMetricSourceApplyConfiguration {\n\tb.MetricName = &value\n\treturn b\n}\n\n// WithMetricSelector sets the MetricSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MetricSelector field is set to the value of the last call.\nfunc (b *ExternalMetricSourceApplyConfiguration) WithMetricSelector(value *v1.LabelSelectorApplyConfiguration) *ExternalMetricSourceApplyConfiguration {\n\tb.MetricSelector = value\n\treturn b\n}\n\n// WithTargetValue sets the TargetValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TargetValue field is set to the value of the last call.\nfunc (b *ExternalMetricSourceApplyConfiguration) WithTargetValue(value resource.Quantity) *ExternalMetricSourceApplyConfiguration {\n\tb.TargetValue = &value\n\treturn b\n}\n\n// WithTargetAverageValue sets the TargetAverageValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TargetAverageValue field is set to the value of the last call.\nfunc (b *ExternalMetricSourceApplyConfiguration) WithTargetAverageValue(value resource.Quantity) *ExternalMetricSourceApplyConfiguration {\n\tb.TargetAverageValue = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/externalmetricstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta1\n\nimport (\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ExternalMetricStatusApplyConfiguration represents a declarative configuration of the ExternalMetricStatus type for use\n// with apply.\ntype ExternalMetricStatusApplyConfiguration struct {\n\tMetricName          *string                             `json:\"metricName,omitempty\"`\n\tMetricSelector      *v1.LabelSelectorApplyConfiguration `json:\"metricSelector,omitempty\"`\n\tCurrentValue        *resource.Quantity                  `json:\"currentValue,omitempty\"`\n\tCurrentAverageValue *resource.Quantity                  `json:\"currentAverageValue,omitempty\"`\n}\n\n// ExternalMetricStatusApplyConfiguration constructs a declarative configuration of the ExternalMetricStatus type for use with\n// apply.\nfunc ExternalMetricStatus() *ExternalMetricStatusApplyConfiguration {\n\treturn &ExternalMetricStatusApplyConfiguration{}\n}\n\n// WithMetricName sets the MetricName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MetricName field is set to the value of the last call.\nfunc (b *ExternalMetricStatusApplyConfiguration) WithMetricName(value string) *ExternalMetricStatusApplyConfiguration {\n\tb.MetricName = &value\n\treturn b\n}\n\n// WithMetricSelector sets the MetricSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MetricSelector field is set to the value of the last call.\nfunc (b *ExternalMetricStatusApplyConfiguration) WithMetricSelector(value *v1.LabelSelectorApplyConfiguration) *ExternalMetricStatusApplyConfiguration {\n\tb.MetricSelector = value\n\treturn b\n}\n\n// WithCurrentValue sets the CurrentValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentValue field is set to the value of the last call.\nfunc (b *ExternalMetricStatusApplyConfiguration) WithCurrentValue(value resource.Quantity) *ExternalMetricStatusApplyConfiguration {\n\tb.CurrentValue = &value\n\treturn b\n}\n\n// WithCurrentAverageValue sets the CurrentAverageValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentAverageValue field is set to the value of the last call.\nfunc (b *ExternalMetricStatusApplyConfiguration) WithCurrentAverageValue(value resource.Quantity) *ExternalMetricStatusApplyConfiguration {\n\tb.CurrentAverageValue = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/horizontalpodautoscaler.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta1\n\nimport (\n\tautoscalingv2beta1 \"k8s.io/api/autoscaling/v2beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// HorizontalPodAutoscalerApplyConfiguration represents a declarative configuration of the HorizontalPodAutoscaler type for use\n// with apply.\ntype HorizontalPodAutoscalerApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *HorizontalPodAutoscalerSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *HorizontalPodAutoscalerStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// HorizontalPodAutoscaler constructs a declarative configuration of the HorizontalPodAutoscaler type for use with\n// apply.\nfunc HorizontalPodAutoscaler(name, namespace string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb := &HorizontalPodAutoscalerApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"HorizontalPodAutoscaler\")\n\tb.WithAPIVersion(\"autoscaling/v2beta1\")\n\treturn b\n}\n\n// ExtractHorizontalPodAutoscaler extracts the applied configuration owned by fieldManager from\n// horizontalPodAutoscaler. If no managedFields are found in horizontalPodAutoscaler for fieldManager, a\n// HorizontalPodAutoscalerApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// horizontalPodAutoscaler must be a unmodified HorizontalPodAutoscaler API object that was retrieved from the Kubernetes API.\n// ExtractHorizontalPodAutoscaler provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractHorizontalPodAutoscaler(horizontalPodAutoscaler *autoscalingv2beta1.HorizontalPodAutoscaler, fieldManager string) (*HorizontalPodAutoscalerApplyConfiguration, error) {\n\treturn extractHorizontalPodAutoscaler(horizontalPodAutoscaler, fieldManager, \"\")\n}\n\n// ExtractHorizontalPodAutoscalerStatus is the same as ExtractHorizontalPodAutoscaler except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractHorizontalPodAutoscalerStatus(horizontalPodAutoscaler *autoscalingv2beta1.HorizontalPodAutoscaler, fieldManager string) (*HorizontalPodAutoscalerApplyConfiguration, error) {\n\treturn extractHorizontalPodAutoscaler(horizontalPodAutoscaler, fieldManager, \"status\")\n}\n\nfunc extractHorizontalPodAutoscaler(horizontalPodAutoscaler *autoscalingv2beta1.HorizontalPodAutoscaler, fieldManager string, subresource string) (*HorizontalPodAutoscalerApplyConfiguration, error) {\n\tb := &HorizontalPodAutoscalerApplyConfiguration{}\n\terr := managedfields.ExtractInto(horizontalPodAutoscaler, internal.Parser().Type(\"io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(horizontalPodAutoscaler.Name)\n\tb.WithNamespace(horizontalPodAutoscaler.Namespace)\n\n\tb.WithKind(\"HorizontalPodAutoscaler\")\n\tb.WithAPIVersion(\"autoscaling/v2beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithKind(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithAPIVersion(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithName(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithGenerateName(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithNamespace(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithUID(value types.UID) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithResourceVersion(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithGeneration(value int64) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithCreationTimestamp(value metav1.Time) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithLabels(entries map[string]string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithAnnotations(entries map[string]string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithFinalizers(values ...string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithSpec(value *HorizontalPodAutoscalerSpecApplyConfiguration) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithStatus(value *HorizontalPodAutoscalerStatusApplyConfiguration) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/horizontalpodautoscalercondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta1\n\nimport (\n\tautoscalingv2beta1 \"k8s.io/api/autoscaling/v2beta1\"\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// HorizontalPodAutoscalerConditionApplyConfiguration represents a declarative configuration of the HorizontalPodAutoscalerCondition type for use\n// with apply.\ntype HorizontalPodAutoscalerConditionApplyConfiguration struct {\n\tType               *autoscalingv2beta1.HorizontalPodAutoscalerConditionType `json:\"type,omitempty\"`\n\tStatus             *v1.ConditionStatus                                      `json:\"status,omitempty\"`\n\tLastTransitionTime *metav1.Time                                             `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                                                  `json:\"reason,omitempty\"`\n\tMessage            *string                                                  `json:\"message,omitempty\"`\n}\n\n// HorizontalPodAutoscalerConditionApplyConfiguration constructs a declarative configuration of the HorizontalPodAutoscalerCondition type for use with\n// apply.\nfunc HorizontalPodAutoscalerCondition() *HorizontalPodAutoscalerConditionApplyConfiguration {\n\treturn &HorizontalPodAutoscalerConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerConditionApplyConfiguration) WithType(value autoscalingv2beta1.HorizontalPodAutoscalerConditionType) *HorizontalPodAutoscalerConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *HorizontalPodAutoscalerConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *HorizontalPodAutoscalerConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerConditionApplyConfiguration) WithReason(value string) *HorizontalPodAutoscalerConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerConditionApplyConfiguration) WithMessage(value string) *HorizontalPodAutoscalerConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/horizontalpodautoscalerspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta1\n\n// HorizontalPodAutoscalerSpecApplyConfiguration represents a declarative configuration of the HorizontalPodAutoscalerSpec type for use\n// with apply.\ntype HorizontalPodAutoscalerSpecApplyConfiguration struct {\n\tScaleTargetRef *CrossVersionObjectReferenceApplyConfiguration `json:\"scaleTargetRef,omitempty\"`\n\tMinReplicas    *int32                                         `json:\"minReplicas,omitempty\"`\n\tMaxReplicas    *int32                                         `json:\"maxReplicas,omitempty\"`\n\tMetrics        []MetricSpecApplyConfiguration                 `json:\"metrics,omitempty\"`\n}\n\n// HorizontalPodAutoscalerSpecApplyConfiguration constructs a declarative configuration of the HorizontalPodAutoscalerSpec type for use with\n// apply.\nfunc HorizontalPodAutoscalerSpec() *HorizontalPodAutoscalerSpecApplyConfiguration {\n\treturn &HorizontalPodAutoscalerSpecApplyConfiguration{}\n}\n\n// WithScaleTargetRef sets the ScaleTargetRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ScaleTargetRef field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithScaleTargetRef(value *CrossVersionObjectReferenceApplyConfiguration) *HorizontalPodAutoscalerSpecApplyConfiguration {\n\tb.ScaleTargetRef = value\n\treturn b\n}\n\n// WithMinReplicas sets the MinReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MinReplicas field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithMinReplicas(value int32) *HorizontalPodAutoscalerSpecApplyConfiguration {\n\tb.MinReplicas = &value\n\treturn b\n}\n\n// WithMaxReplicas sets the MaxReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxReplicas field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithMaxReplicas(value int32) *HorizontalPodAutoscalerSpecApplyConfiguration {\n\tb.MaxReplicas = &value\n\treturn b\n}\n\n// WithMetrics adds the given value to the Metrics field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Metrics field.\nfunc (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithMetrics(values ...*MetricSpecApplyConfiguration) *HorizontalPodAutoscalerSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithMetrics\")\n\t\t}\n\t\tb.Metrics = append(b.Metrics, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/horizontalpodautoscalerstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta1\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// HorizontalPodAutoscalerStatusApplyConfiguration represents a declarative configuration of the HorizontalPodAutoscalerStatus type for use\n// with apply.\ntype HorizontalPodAutoscalerStatusApplyConfiguration struct {\n\tObservedGeneration *int64                                               `json:\"observedGeneration,omitempty\"`\n\tLastScaleTime      *v1.Time                                             `json:\"lastScaleTime,omitempty\"`\n\tCurrentReplicas    *int32                                               `json:\"currentReplicas,omitempty\"`\n\tDesiredReplicas    *int32                                               `json:\"desiredReplicas,omitempty\"`\n\tCurrentMetrics     []MetricStatusApplyConfiguration                     `json:\"currentMetrics,omitempty\"`\n\tConditions         []HorizontalPodAutoscalerConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// HorizontalPodAutoscalerStatusApplyConfiguration constructs a declarative configuration of the HorizontalPodAutoscalerStatus type for use with\n// apply.\nfunc HorizontalPodAutoscalerStatus() *HorizontalPodAutoscalerStatusApplyConfiguration {\n\treturn &HorizontalPodAutoscalerStatusApplyConfiguration{}\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithObservedGeneration(value int64) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithLastScaleTime sets the LastScaleTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastScaleTime field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithLastScaleTime(value v1.Time) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tb.LastScaleTime = &value\n\treturn b\n}\n\n// WithCurrentReplicas sets the CurrentReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentReplicas field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithCurrentReplicas(value int32) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tb.CurrentReplicas = &value\n\treturn b\n}\n\n// WithDesiredReplicas sets the DesiredReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DesiredReplicas field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithDesiredReplicas(value int32) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tb.DesiredReplicas = &value\n\treturn b\n}\n\n// WithCurrentMetrics adds the given value to the CurrentMetrics field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the CurrentMetrics field.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithCurrentMetrics(values ...*MetricStatusApplyConfiguration) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithCurrentMetrics\")\n\t\t}\n\t\tb.CurrentMetrics = append(b.CurrentMetrics, *values[i])\n\t}\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithConditions(values ...*HorizontalPodAutoscalerConditionApplyConfiguration) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/metricspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta1\n\nimport (\n\tautoscalingv2beta1 \"k8s.io/api/autoscaling/v2beta1\"\n)\n\n// MetricSpecApplyConfiguration represents a declarative configuration of the MetricSpec type for use\n// with apply.\ntype MetricSpecApplyConfiguration struct {\n\tType              *autoscalingv2beta1.MetricSourceType             `json:\"type,omitempty\"`\n\tObject            *ObjectMetricSourceApplyConfiguration            `json:\"object,omitempty\"`\n\tPods              *PodsMetricSourceApplyConfiguration              `json:\"pods,omitempty\"`\n\tResource          *ResourceMetricSourceApplyConfiguration          `json:\"resource,omitempty\"`\n\tContainerResource *ContainerResourceMetricSourceApplyConfiguration `json:\"containerResource,omitempty\"`\n\tExternal          *ExternalMetricSourceApplyConfiguration          `json:\"external,omitempty\"`\n}\n\n// MetricSpecApplyConfiguration constructs a declarative configuration of the MetricSpec type for use with\n// apply.\nfunc MetricSpec() *MetricSpecApplyConfiguration {\n\treturn &MetricSpecApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *MetricSpecApplyConfiguration) WithType(value autoscalingv2beta1.MetricSourceType) *MetricSpecApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithObject sets the Object field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Object field is set to the value of the last call.\nfunc (b *MetricSpecApplyConfiguration) WithObject(value *ObjectMetricSourceApplyConfiguration) *MetricSpecApplyConfiguration {\n\tb.Object = value\n\treturn b\n}\n\n// WithPods sets the Pods field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Pods field is set to the value of the last call.\nfunc (b *MetricSpecApplyConfiguration) WithPods(value *PodsMetricSourceApplyConfiguration) *MetricSpecApplyConfiguration {\n\tb.Pods = value\n\treturn b\n}\n\n// WithResource sets the Resource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Resource field is set to the value of the last call.\nfunc (b *MetricSpecApplyConfiguration) WithResource(value *ResourceMetricSourceApplyConfiguration) *MetricSpecApplyConfiguration {\n\tb.Resource = value\n\treturn b\n}\n\n// WithContainerResource sets the ContainerResource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ContainerResource field is set to the value of the last call.\nfunc (b *MetricSpecApplyConfiguration) WithContainerResource(value *ContainerResourceMetricSourceApplyConfiguration) *MetricSpecApplyConfiguration {\n\tb.ContainerResource = value\n\treturn b\n}\n\n// WithExternal sets the External field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the External field is set to the value of the last call.\nfunc (b *MetricSpecApplyConfiguration) WithExternal(value *ExternalMetricSourceApplyConfiguration) *MetricSpecApplyConfiguration {\n\tb.External = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/metricstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta1\n\nimport (\n\tautoscalingv2beta1 \"k8s.io/api/autoscaling/v2beta1\"\n)\n\n// MetricStatusApplyConfiguration represents a declarative configuration of the MetricStatus type for use\n// with apply.\ntype MetricStatusApplyConfiguration struct {\n\tType              *autoscalingv2beta1.MetricSourceType             `json:\"type,omitempty\"`\n\tObject            *ObjectMetricStatusApplyConfiguration            `json:\"object,omitempty\"`\n\tPods              *PodsMetricStatusApplyConfiguration              `json:\"pods,omitempty\"`\n\tResource          *ResourceMetricStatusApplyConfiguration          `json:\"resource,omitempty\"`\n\tContainerResource *ContainerResourceMetricStatusApplyConfiguration `json:\"containerResource,omitempty\"`\n\tExternal          *ExternalMetricStatusApplyConfiguration          `json:\"external,omitempty\"`\n}\n\n// MetricStatusApplyConfiguration constructs a declarative configuration of the MetricStatus type for use with\n// apply.\nfunc MetricStatus() *MetricStatusApplyConfiguration {\n\treturn &MetricStatusApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *MetricStatusApplyConfiguration) WithType(value autoscalingv2beta1.MetricSourceType) *MetricStatusApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithObject sets the Object field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Object field is set to the value of the last call.\nfunc (b *MetricStatusApplyConfiguration) WithObject(value *ObjectMetricStatusApplyConfiguration) *MetricStatusApplyConfiguration {\n\tb.Object = value\n\treturn b\n}\n\n// WithPods sets the Pods field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Pods field is set to the value of the last call.\nfunc (b *MetricStatusApplyConfiguration) WithPods(value *PodsMetricStatusApplyConfiguration) *MetricStatusApplyConfiguration {\n\tb.Pods = value\n\treturn b\n}\n\n// WithResource sets the Resource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Resource field is set to the value of the last call.\nfunc (b *MetricStatusApplyConfiguration) WithResource(value *ResourceMetricStatusApplyConfiguration) *MetricStatusApplyConfiguration {\n\tb.Resource = value\n\treturn b\n}\n\n// WithContainerResource sets the ContainerResource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ContainerResource field is set to the value of the last call.\nfunc (b *MetricStatusApplyConfiguration) WithContainerResource(value *ContainerResourceMetricStatusApplyConfiguration) *MetricStatusApplyConfiguration {\n\tb.ContainerResource = value\n\treturn b\n}\n\n// WithExternal sets the External field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the External field is set to the value of the last call.\nfunc (b *MetricStatusApplyConfiguration) WithExternal(value *ExternalMetricStatusApplyConfiguration) *MetricStatusApplyConfiguration {\n\tb.External = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/objectmetricsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta1\n\nimport (\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ObjectMetricSourceApplyConfiguration represents a declarative configuration of the ObjectMetricSource type for use\n// with apply.\ntype ObjectMetricSourceApplyConfiguration struct {\n\tTarget       *CrossVersionObjectReferenceApplyConfiguration `json:\"target,omitempty\"`\n\tMetricName   *string                                        `json:\"metricName,omitempty\"`\n\tTargetValue  *resource.Quantity                             `json:\"targetValue,omitempty\"`\n\tSelector     *v1.LabelSelectorApplyConfiguration            `json:\"selector,omitempty\"`\n\tAverageValue *resource.Quantity                             `json:\"averageValue,omitempty\"`\n}\n\n// ObjectMetricSourceApplyConfiguration constructs a declarative configuration of the ObjectMetricSource type for use with\n// apply.\nfunc ObjectMetricSource() *ObjectMetricSourceApplyConfiguration {\n\treturn &ObjectMetricSourceApplyConfiguration{}\n}\n\n// WithTarget sets the Target field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Target field is set to the value of the last call.\nfunc (b *ObjectMetricSourceApplyConfiguration) WithTarget(value *CrossVersionObjectReferenceApplyConfiguration) *ObjectMetricSourceApplyConfiguration {\n\tb.Target = value\n\treturn b\n}\n\n// WithMetricName sets the MetricName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MetricName field is set to the value of the last call.\nfunc (b *ObjectMetricSourceApplyConfiguration) WithMetricName(value string) *ObjectMetricSourceApplyConfiguration {\n\tb.MetricName = &value\n\treturn b\n}\n\n// WithTargetValue sets the TargetValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TargetValue field is set to the value of the last call.\nfunc (b *ObjectMetricSourceApplyConfiguration) WithTargetValue(value resource.Quantity) *ObjectMetricSourceApplyConfiguration {\n\tb.TargetValue = &value\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *ObjectMetricSourceApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *ObjectMetricSourceApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n\n// WithAverageValue sets the AverageValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AverageValue field is set to the value of the last call.\nfunc (b *ObjectMetricSourceApplyConfiguration) WithAverageValue(value resource.Quantity) *ObjectMetricSourceApplyConfiguration {\n\tb.AverageValue = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/objectmetricstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta1\n\nimport (\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ObjectMetricStatusApplyConfiguration represents a declarative configuration of the ObjectMetricStatus type for use\n// with apply.\ntype ObjectMetricStatusApplyConfiguration struct {\n\tTarget       *CrossVersionObjectReferenceApplyConfiguration `json:\"target,omitempty\"`\n\tMetricName   *string                                        `json:\"metricName,omitempty\"`\n\tCurrentValue *resource.Quantity                             `json:\"currentValue,omitempty\"`\n\tSelector     *v1.LabelSelectorApplyConfiguration            `json:\"selector,omitempty\"`\n\tAverageValue *resource.Quantity                             `json:\"averageValue,omitempty\"`\n}\n\n// ObjectMetricStatusApplyConfiguration constructs a declarative configuration of the ObjectMetricStatus type for use with\n// apply.\nfunc ObjectMetricStatus() *ObjectMetricStatusApplyConfiguration {\n\treturn &ObjectMetricStatusApplyConfiguration{}\n}\n\n// WithTarget sets the Target field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Target field is set to the value of the last call.\nfunc (b *ObjectMetricStatusApplyConfiguration) WithTarget(value *CrossVersionObjectReferenceApplyConfiguration) *ObjectMetricStatusApplyConfiguration {\n\tb.Target = value\n\treturn b\n}\n\n// WithMetricName sets the MetricName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MetricName field is set to the value of the last call.\nfunc (b *ObjectMetricStatusApplyConfiguration) WithMetricName(value string) *ObjectMetricStatusApplyConfiguration {\n\tb.MetricName = &value\n\treturn b\n}\n\n// WithCurrentValue sets the CurrentValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentValue field is set to the value of the last call.\nfunc (b *ObjectMetricStatusApplyConfiguration) WithCurrentValue(value resource.Quantity) *ObjectMetricStatusApplyConfiguration {\n\tb.CurrentValue = &value\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *ObjectMetricStatusApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *ObjectMetricStatusApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n\n// WithAverageValue sets the AverageValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AverageValue field is set to the value of the last call.\nfunc (b *ObjectMetricStatusApplyConfiguration) WithAverageValue(value resource.Quantity) *ObjectMetricStatusApplyConfiguration {\n\tb.AverageValue = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/podsmetricsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta1\n\nimport (\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PodsMetricSourceApplyConfiguration represents a declarative configuration of the PodsMetricSource type for use\n// with apply.\ntype PodsMetricSourceApplyConfiguration struct {\n\tMetricName         *string                             `json:\"metricName,omitempty\"`\n\tTargetAverageValue *resource.Quantity                  `json:\"targetAverageValue,omitempty\"`\n\tSelector           *v1.LabelSelectorApplyConfiguration `json:\"selector,omitempty\"`\n}\n\n// PodsMetricSourceApplyConfiguration constructs a declarative configuration of the PodsMetricSource type for use with\n// apply.\nfunc PodsMetricSource() *PodsMetricSourceApplyConfiguration {\n\treturn &PodsMetricSourceApplyConfiguration{}\n}\n\n// WithMetricName sets the MetricName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MetricName field is set to the value of the last call.\nfunc (b *PodsMetricSourceApplyConfiguration) WithMetricName(value string) *PodsMetricSourceApplyConfiguration {\n\tb.MetricName = &value\n\treturn b\n}\n\n// WithTargetAverageValue sets the TargetAverageValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TargetAverageValue field is set to the value of the last call.\nfunc (b *PodsMetricSourceApplyConfiguration) WithTargetAverageValue(value resource.Quantity) *PodsMetricSourceApplyConfiguration {\n\tb.TargetAverageValue = &value\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *PodsMetricSourceApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *PodsMetricSourceApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/podsmetricstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta1\n\nimport (\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PodsMetricStatusApplyConfiguration represents a declarative configuration of the PodsMetricStatus type for use\n// with apply.\ntype PodsMetricStatusApplyConfiguration struct {\n\tMetricName          *string                             `json:\"metricName,omitempty\"`\n\tCurrentAverageValue *resource.Quantity                  `json:\"currentAverageValue,omitempty\"`\n\tSelector            *v1.LabelSelectorApplyConfiguration `json:\"selector,omitempty\"`\n}\n\n// PodsMetricStatusApplyConfiguration constructs a declarative configuration of the PodsMetricStatus type for use with\n// apply.\nfunc PodsMetricStatus() *PodsMetricStatusApplyConfiguration {\n\treturn &PodsMetricStatusApplyConfiguration{}\n}\n\n// WithMetricName sets the MetricName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MetricName field is set to the value of the last call.\nfunc (b *PodsMetricStatusApplyConfiguration) WithMetricName(value string) *PodsMetricStatusApplyConfiguration {\n\tb.MetricName = &value\n\treturn b\n}\n\n// WithCurrentAverageValue sets the CurrentAverageValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentAverageValue field is set to the value of the last call.\nfunc (b *PodsMetricStatusApplyConfiguration) WithCurrentAverageValue(value resource.Quantity) *PodsMetricStatusApplyConfiguration {\n\tb.CurrentAverageValue = &value\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *PodsMetricStatusApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *PodsMetricStatusApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/resourcemetricsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n)\n\n// ResourceMetricSourceApplyConfiguration represents a declarative configuration of the ResourceMetricSource type for use\n// with apply.\ntype ResourceMetricSourceApplyConfiguration struct {\n\tName                     *v1.ResourceName   `json:\"name,omitempty\"`\n\tTargetAverageUtilization *int32             `json:\"targetAverageUtilization,omitempty\"`\n\tTargetAverageValue       *resource.Quantity `json:\"targetAverageValue,omitempty\"`\n}\n\n// ResourceMetricSourceApplyConfiguration constructs a declarative configuration of the ResourceMetricSource type for use with\n// apply.\nfunc ResourceMetricSource() *ResourceMetricSourceApplyConfiguration {\n\treturn &ResourceMetricSourceApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ResourceMetricSourceApplyConfiguration) WithName(value v1.ResourceName) *ResourceMetricSourceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithTargetAverageUtilization sets the TargetAverageUtilization field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TargetAverageUtilization field is set to the value of the last call.\nfunc (b *ResourceMetricSourceApplyConfiguration) WithTargetAverageUtilization(value int32) *ResourceMetricSourceApplyConfiguration {\n\tb.TargetAverageUtilization = &value\n\treturn b\n}\n\n// WithTargetAverageValue sets the TargetAverageValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TargetAverageValue field is set to the value of the last call.\nfunc (b *ResourceMetricSourceApplyConfiguration) WithTargetAverageValue(value resource.Quantity) *ResourceMetricSourceApplyConfiguration {\n\tb.TargetAverageValue = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta1/resourcemetricstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n)\n\n// ResourceMetricStatusApplyConfiguration represents a declarative configuration of the ResourceMetricStatus type for use\n// with apply.\ntype ResourceMetricStatusApplyConfiguration struct {\n\tName                      *v1.ResourceName   `json:\"name,omitempty\"`\n\tCurrentAverageUtilization *int32             `json:\"currentAverageUtilization,omitempty\"`\n\tCurrentAverageValue       *resource.Quantity `json:\"currentAverageValue,omitempty\"`\n}\n\n// ResourceMetricStatusApplyConfiguration constructs a declarative configuration of the ResourceMetricStatus type for use with\n// apply.\nfunc ResourceMetricStatus() *ResourceMetricStatusApplyConfiguration {\n\treturn &ResourceMetricStatusApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ResourceMetricStatusApplyConfiguration) WithName(value v1.ResourceName) *ResourceMetricStatusApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithCurrentAverageUtilization sets the CurrentAverageUtilization field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentAverageUtilization field is set to the value of the last call.\nfunc (b *ResourceMetricStatusApplyConfiguration) WithCurrentAverageUtilization(value int32) *ResourceMetricStatusApplyConfiguration {\n\tb.CurrentAverageUtilization = &value\n\treturn b\n}\n\n// WithCurrentAverageValue sets the CurrentAverageValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentAverageValue field is set to the value of the last call.\nfunc (b *ResourceMetricStatusApplyConfiguration) WithCurrentAverageValue(value resource.Quantity) *ResourceMetricStatusApplyConfiguration {\n\tb.CurrentAverageValue = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/containerresourcemetricsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// ContainerResourceMetricSourceApplyConfiguration represents a declarative configuration of the ContainerResourceMetricSource type for use\n// with apply.\ntype ContainerResourceMetricSourceApplyConfiguration struct {\n\tName      *v1.ResourceName                `json:\"name,omitempty\"`\n\tTarget    *MetricTargetApplyConfiguration `json:\"target,omitempty\"`\n\tContainer *string                         `json:\"container,omitempty\"`\n}\n\n// ContainerResourceMetricSourceApplyConfiguration constructs a declarative configuration of the ContainerResourceMetricSource type for use with\n// apply.\nfunc ContainerResourceMetricSource() *ContainerResourceMetricSourceApplyConfiguration {\n\treturn &ContainerResourceMetricSourceApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ContainerResourceMetricSourceApplyConfiguration) WithName(value v1.ResourceName) *ContainerResourceMetricSourceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithTarget sets the Target field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Target field is set to the value of the last call.\nfunc (b *ContainerResourceMetricSourceApplyConfiguration) WithTarget(value *MetricTargetApplyConfiguration) *ContainerResourceMetricSourceApplyConfiguration {\n\tb.Target = value\n\treturn b\n}\n\n// WithContainer sets the Container field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Container field is set to the value of the last call.\nfunc (b *ContainerResourceMetricSourceApplyConfiguration) WithContainer(value string) *ContainerResourceMetricSourceApplyConfiguration {\n\tb.Container = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/containerresourcemetricstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// ContainerResourceMetricStatusApplyConfiguration represents a declarative configuration of the ContainerResourceMetricStatus type for use\n// with apply.\ntype ContainerResourceMetricStatusApplyConfiguration struct {\n\tName      *v1.ResourceName                     `json:\"name,omitempty\"`\n\tCurrent   *MetricValueStatusApplyConfiguration `json:\"current,omitempty\"`\n\tContainer *string                              `json:\"container,omitempty\"`\n}\n\n// ContainerResourceMetricStatusApplyConfiguration constructs a declarative configuration of the ContainerResourceMetricStatus type for use with\n// apply.\nfunc ContainerResourceMetricStatus() *ContainerResourceMetricStatusApplyConfiguration {\n\treturn &ContainerResourceMetricStatusApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ContainerResourceMetricStatusApplyConfiguration) WithName(value v1.ResourceName) *ContainerResourceMetricStatusApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithCurrent sets the Current field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Current field is set to the value of the last call.\nfunc (b *ContainerResourceMetricStatusApplyConfiguration) WithCurrent(value *MetricValueStatusApplyConfiguration) *ContainerResourceMetricStatusApplyConfiguration {\n\tb.Current = value\n\treturn b\n}\n\n// WithContainer sets the Container field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Container field is set to the value of the last call.\nfunc (b *ContainerResourceMetricStatusApplyConfiguration) WithContainer(value string) *ContainerResourceMetricStatusApplyConfiguration {\n\tb.Container = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/crossversionobjectreference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\n// CrossVersionObjectReferenceApplyConfiguration represents a declarative configuration of the CrossVersionObjectReference type for use\n// with apply.\ntype CrossVersionObjectReferenceApplyConfiguration struct {\n\tKind       *string `json:\"kind,omitempty\"`\n\tName       *string `json:\"name,omitempty\"`\n\tAPIVersion *string `json:\"apiVersion,omitempty\"`\n}\n\n// CrossVersionObjectReferenceApplyConfiguration constructs a declarative configuration of the CrossVersionObjectReference type for use with\n// apply.\nfunc CrossVersionObjectReference() *CrossVersionObjectReferenceApplyConfiguration {\n\treturn &CrossVersionObjectReferenceApplyConfiguration{}\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *CrossVersionObjectReferenceApplyConfiguration) WithKind(value string) *CrossVersionObjectReferenceApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *CrossVersionObjectReferenceApplyConfiguration) WithName(value string) *CrossVersionObjectReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *CrossVersionObjectReferenceApplyConfiguration) WithAPIVersion(value string) *CrossVersionObjectReferenceApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/externalmetricsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\n// ExternalMetricSourceApplyConfiguration represents a declarative configuration of the ExternalMetricSource type for use\n// with apply.\ntype ExternalMetricSourceApplyConfiguration struct {\n\tMetric *MetricIdentifierApplyConfiguration `json:\"metric,omitempty\"`\n\tTarget *MetricTargetApplyConfiguration     `json:\"target,omitempty\"`\n}\n\n// ExternalMetricSourceApplyConfiguration constructs a declarative configuration of the ExternalMetricSource type for use with\n// apply.\nfunc ExternalMetricSource() *ExternalMetricSourceApplyConfiguration {\n\treturn &ExternalMetricSourceApplyConfiguration{}\n}\n\n// WithMetric sets the Metric field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Metric field is set to the value of the last call.\nfunc (b *ExternalMetricSourceApplyConfiguration) WithMetric(value *MetricIdentifierApplyConfiguration) *ExternalMetricSourceApplyConfiguration {\n\tb.Metric = value\n\treturn b\n}\n\n// WithTarget sets the Target field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Target field is set to the value of the last call.\nfunc (b *ExternalMetricSourceApplyConfiguration) WithTarget(value *MetricTargetApplyConfiguration) *ExternalMetricSourceApplyConfiguration {\n\tb.Target = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/externalmetricstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\n// ExternalMetricStatusApplyConfiguration represents a declarative configuration of the ExternalMetricStatus type for use\n// with apply.\ntype ExternalMetricStatusApplyConfiguration struct {\n\tMetric  *MetricIdentifierApplyConfiguration  `json:\"metric,omitempty\"`\n\tCurrent *MetricValueStatusApplyConfiguration `json:\"current,omitempty\"`\n}\n\n// ExternalMetricStatusApplyConfiguration constructs a declarative configuration of the ExternalMetricStatus type for use with\n// apply.\nfunc ExternalMetricStatus() *ExternalMetricStatusApplyConfiguration {\n\treturn &ExternalMetricStatusApplyConfiguration{}\n}\n\n// WithMetric sets the Metric field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Metric field is set to the value of the last call.\nfunc (b *ExternalMetricStatusApplyConfiguration) WithMetric(value *MetricIdentifierApplyConfiguration) *ExternalMetricStatusApplyConfiguration {\n\tb.Metric = value\n\treturn b\n}\n\n// WithCurrent sets the Current field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Current field is set to the value of the last call.\nfunc (b *ExternalMetricStatusApplyConfiguration) WithCurrent(value *MetricValueStatusApplyConfiguration) *ExternalMetricStatusApplyConfiguration {\n\tb.Current = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/horizontalpodautoscaler.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\nimport (\n\tautoscalingv2beta2 \"k8s.io/api/autoscaling/v2beta2\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// HorizontalPodAutoscalerApplyConfiguration represents a declarative configuration of the HorizontalPodAutoscaler type for use\n// with apply.\ntype HorizontalPodAutoscalerApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *HorizontalPodAutoscalerSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *HorizontalPodAutoscalerStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// HorizontalPodAutoscaler constructs a declarative configuration of the HorizontalPodAutoscaler type for use with\n// apply.\nfunc HorizontalPodAutoscaler(name, namespace string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb := &HorizontalPodAutoscalerApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"HorizontalPodAutoscaler\")\n\tb.WithAPIVersion(\"autoscaling/v2beta2\")\n\treturn b\n}\n\n// ExtractHorizontalPodAutoscaler extracts the applied configuration owned by fieldManager from\n// horizontalPodAutoscaler. If no managedFields are found in horizontalPodAutoscaler for fieldManager, a\n// HorizontalPodAutoscalerApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// horizontalPodAutoscaler must be a unmodified HorizontalPodAutoscaler API object that was retrieved from the Kubernetes API.\n// ExtractHorizontalPodAutoscaler provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractHorizontalPodAutoscaler(horizontalPodAutoscaler *autoscalingv2beta2.HorizontalPodAutoscaler, fieldManager string) (*HorizontalPodAutoscalerApplyConfiguration, error) {\n\treturn extractHorizontalPodAutoscaler(horizontalPodAutoscaler, fieldManager, \"\")\n}\n\n// ExtractHorizontalPodAutoscalerStatus is the same as ExtractHorizontalPodAutoscaler except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractHorizontalPodAutoscalerStatus(horizontalPodAutoscaler *autoscalingv2beta2.HorizontalPodAutoscaler, fieldManager string) (*HorizontalPodAutoscalerApplyConfiguration, error) {\n\treturn extractHorizontalPodAutoscaler(horizontalPodAutoscaler, fieldManager, \"status\")\n}\n\nfunc extractHorizontalPodAutoscaler(horizontalPodAutoscaler *autoscalingv2beta2.HorizontalPodAutoscaler, fieldManager string, subresource string) (*HorizontalPodAutoscalerApplyConfiguration, error) {\n\tb := &HorizontalPodAutoscalerApplyConfiguration{}\n\terr := managedfields.ExtractInto(horizontalPodAutoscaler, internal.Parser().Type(\"io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(horizontalPodAutoscaler.Name)\n\tb.WithNamespace(horizontalPodAutoscaler.Namespace)\n\n\tb.WithKind(\"HorizontalPodAutoscaler\")\n\tb.WithAPIVersion(\"autoscaling/v2beta2\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithKind(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithAPIVersion(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithName(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithGenerateName(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithNamespace(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithUID(value types.UID) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithResourceVersion(value string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithGeneration(value int64) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithCreationTimestamp(value metav1.Time) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithLabels(entries map[string]string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithAnnotations(entries map[string]string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithFinalizers(values ...string) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithSpec(value *HorizontalPodAutoscalerSpecApplyConfiguration) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) WithStatus(value *HorizontalPodAutoscalerStatusApplyConfiguration) *HorizontalPodAutoscalerApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *HorizontalPodAutoscalerApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/horizontalpodautoscalerbehavior.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\n// HorizontalPodAutoscalerBehaviorApplyConfiguration represents a declarative configuration of the HorizontalPodAutoscalerBehavior type for use\n// with apply.\ntype HorizontalPodAutoscalerBehaviorApplyConfiguration struct {\n\tScaleUp   *HPAScalingRulesApplyConfiguration `json:\"scaleUp,omitempty\"`\n\tScaleDown *HPAScalingRulesApplyConfiguration `json:\"scaleDown,omitempty\"`\n}\n\n// HorizontalPodAutoscalerBehaviorApplyConfiguration constructs a declarative configuration of the HorizontalPodAutoscalerBehavior type for use with\n// apply.\nfunc HorizontalPodAutoscalerBehavior() *HorizontalPodAutoscalerBehaviorApplyConfiguration {\n\treturn &HorizontalPodAutoscalerBehaviorApplyConfiguration{}\n}\n\n// WithScaleUp sets the ScaleUp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ScaleUp field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerBehaviorApplyConfiguration) WithScaleUp(value *HPAScalingRulesApplyConfiguration) *HorizontalPodAutoscalerBehaviorApplyConfiguration {\n\tb.ScaleUp = value\n\treturn b\n}\n\n// WithScaleDown sets the ScaleDown field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ScaleDown field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerBehaviorApplyConfiguration) WithScaleDown(value *HPAScalingRulesApplyConfiguration) *HorizontalPodAutoscalerBehaviorApplyConfiguration {\n\tb.ScaleDown = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/horizontalpodautoscalercondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\nimport (\n\tautoscalingv2beta2 \"k8s.io/api/autoscaling/v2beta2\"\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// HorizontalPodAutoscalerConditionApplyConfiguration represents a declarative configuration of the HorizontalPodAutoscalerCondition type for use\n// with apply.\ntype HorizontalPodAutoscalerConditionApplyConfiguration struct {\n\tType               *autoscalingv2beta2.HorizontalPodAutoscalerConditionType `json:\"type,omitempty\"`\n\tStatus             *v1.ConditionStatus                                      `json:\"status,omitempty\"`\n\tLastTransitionTime *metav1.Time                                             `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                                                  `json:\"reason,omitempty\"`\n\tMessage            *string                                                  `json:\"message,omitempty\"`\n}\n\n// HorizontalPodAutoscalerConditionApplyConfiguration constructs a declarative configuration of the HorizontalPodAutoscalerCondition type for use with\n// apply.\nfunc HorizontalPodAutoscalerCondition() *HorizontalPodAutoscalerConditionApplyConfiguration {\n\treturn &HorizontalPodAutoscalerConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerConditionApplyConfiguration) WithType(value autoscalingv2beta2.HorizontalPodAutoscalerConditionType) *HorizontalPodAutoscalerConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *HorizontalPodAutoscalerConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *HorizontalPodAutoscalerConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerConditionApplyConfiguration) WithReason(value string) *HorizontalPodAutoscalerConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerConditionApplyConfiguration) WithMessage(value string) *HorizontalPodAutoscalerConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/horizontalpodautoscalerspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\n// HorizontalPodAutoscalerSpecApplyConfiguration represents a declarative configuration of the HorizontalPodAutoscalerSpec type for use\n// with apply.\ntype HorizontalPodAutoscalerSpecApplyConfiguration struct {\n\tScaleTargetRef *CrossVersionObjectReferenceApplyConfiguration     `json:\"scaleTargetRef,omitempty\"`\n\tMinReplicas    *int32                                             `json:\"minReplicas,omitempty\"`\n\tMaxReplicas    *int32                                             `json:\"maxReplicas,omitempty\"`\n\tMetrics        []MetricSpecApplyConfiguration                     `json:\"metrics,omitempty\"`\n\tBehavior       *HorizontalPodAutoscalerBehaviorApplyConfiguration `json:\"behavior,omitempty\"`\n}\n\n// HorizontalPodAutoscalerSpecApplyConfiguration constructs a declarative configuration of the HorizontalPodAutoscalerSpec type for use with\n// apply.\nfunc HorizontalPodAutoscalerSpec() *HorizontalPodAutoscalerSpecApplyConfiguration {\n\treturn &HorizontalPodAutoscalerSpecApplyConfiguration{}\n}\n\n// WithScaleTargetRef sets the ScaleTargetRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ScaleTargetRef field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithScaleTargetRef(value *CrossVersionObjectReferenceApplyConfiguration) *HorizontalPodAutoscalerSpecApplyConfiguration {\n\tb.ScaleTargetRef = value\n\treturn b\n}\n\n// WithMinReplicas sets the MinReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MinReplicas field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithMinReplicas(value int32) *HorizontalPodAutoscalerSpecApplyConfiguration {\n\tb.MinReplicas = &value\n\treturn b\n}\n\n// WithMaxReplicas sets the MaxReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxReplicas field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithMaxReplicas(value int32) *HorizontalPodAutoscalerSpecApplyConfiguration {\n\tb.MaxReplicas = &value\n\treturn b\n}\n\n// WithMetrics adds the given value to the Metrics field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Metrics field.\nfunc (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithMetrics(values ...*MetricSpecApplyConfiguration) *HorizontalPodAutoscalerSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithMetrics\")\n\t\t}\n\t\tb.Metrics = append(b.Metrics, *values[i])\n\t}\n\treturn b\n}\n\n// WithBehavior sets the Behavior field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Behavior field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerSpecApplyConfiguration) WithBehavior(value *HorizontalPodAutoscalerBehaviorApplyConfiguration) *HorizontalPodAutoscalerSpecApplyConfiguration {\n\tb.Behavior = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/horizontalpodautoscalerstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// HorizontalPodAutoscalerStatusApplyConfiguration represents a declarative configuration of the HorizontalPodAutoscalerStatus type for use\n// with apply.\ntype HorizontalPodAutoscalerStatusApplyConfiguration struct {\n\tObservedGeneration *int64                                               `json:\"observedGeneration,omitempty\"`\n\tLastScaleTime      *v1.Time                                             `json:\"lastScaleTime,omitempty\"`\n\tCurrentReplicas    *int32                                               `json:\"currentReplicas,omitempty\"`\n\tDesiredReplicas    *int32                                               `json:\"desiredReplicas,omitempty\"`\n\tCurrentMetrics     []MetricStatusApplyConfiguration                     `json:\"currentMetrics,omitempty\"`\n\tConditions         []HorizontalPodAutoscalerConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// HorizontalPodAutoscalerStatusApplyConfiguration constructs a declarative configuration of the HorizontalPodAutoscalerStatus type for use with\n// apply.\nfunc HorizontalPodAutoscalerStatus() *HorizontalPodAutoscalerStatusApplyConfiguration {\n\treturn &HorizontalPodAutoscalerStatusApplyConfiguration{}\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithObservedGeneration(value int64) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithLastScaleTime sets the LastScaleTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastScaleTime field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithLastScaleTime(value v1.Time) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tb.LastScaleTime = &value\n\treturn b\n}\n\n// WithCurrentReplicas sets the CurrentReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentReplicas field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithCurrentReplicas(value int32) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tb.CurrentReplicas = &value\n\treturn b\n}\n\n// WithDesiredReplicas sets the DesiredReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DesiredReplicas field is set to the value of the last call.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithDesiredReplicas(value int32) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tb.DesiredReplicas = &value\n\treturn b\n}\n\n// WithCurrentMetrics adds the given value to the CurrentMetrics field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the CurrentMetrics field.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithCurrentMetrics(values ...*MetricStatusApplyConfiguration) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithCurrentMetrics\")\n\t\t}\n\t\tb.CurrentMetrics = append(b.CurrentMetrics, *values[i])\n\t}\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *HorizontalPodAutoscalerStatusApplyConfiguration) WithConditions(values ...*HorizontalPodAutoscalerConditionApplyConfiguration) *HorizontalPodAutoscalerStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/hpascalingpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\nimport (\n\tautoscalingv2beta2 \"k8s.io/api/autoscaling/v2beta2\"\n)\n\n// HPAScalingPolicyApplyConfiguration represents a declarative configuration of the HPAScalingPolicy type for use\n// with apply.\ntype HPAScalingPolicyApplyConfiguration struct {\n\tType          *autoscalingv2beta2.HPAScalingPolicyType `json:\"type,omitempty\"`\n\tValue         *int32                                   `json:\"value,omitempty\"`\n\tPeriodSeconds *int32                                   `json:\"periodSeconds,omitempty\"`\n}\n\n// HPAScalingPolicyApplyConfiguration constructs a declarative configuration of the HPAScalingPolicy type for use with\n// apply.\nfunc HPAScalingPolicy() *HPAScalingPolicyApplyConfiguration {\n\treturn &HPAScalingPolicyApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *HPAScalingPolicyApplyConfiguration) WithType(value autoscalingv2beta2.HPAScalingPolicyType) *HPAScalingPolicyApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithValue sets the Value field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Value field is set to the value of the last call.\nfunc (b *HPAScalingPolicyApplyConfiguration) WithValue(value int32) *HPAScalingPolicyApplyConfiguration {\n\tb.Value = &value\n\treturn b\n}\n\n// WithPeriodSeconds sets the PeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PeriodSeconds field is set to the value of the last call.\nfunc (b *HPAScalingPolicyApplyConfiguration) WithPeriodSeconds(value int32) *HPAScalingPolicyApplyConfiguration {\n\tb.PeriodSeconds = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/hpascalingrules.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\nimport (\n\tautoscalingv2beta2 \"k8s.io/api/autoscaling/v2beta2\"\n)\n\n// HPAScalingRulesApplyConfiguration represents a declarative configuration of the HPAScalingRules type for use\n// with apply.\ntype HPAScalingRulesApplyConfiguration struct {\n\tStabilizationWindowSeconds *int32                                  `json:\"stabilizationWindowSeconds,omitempty\"`\n\tSelectPolicy               *autoscalingv2beta2.ScalingPolicySelect `json:\"selectPolicy,omitempty\"`\n\tPolicies                   []HPAScalingPolicyApplyConfiguration    `json:\"policies,omitempty\"`\n}\n\n// HPAScalingRulesApplyConfiguration constructs a declarative configuration of the HPAScalingRules type for use with\n// apply.\nfunc HPAScalingRules() *HPAScalingRulesApplyConfiguration {\n\treturn &HPAScalingRulesApplyConfiguration{}\n}\n\n// WithStabilizationWindowSeconds sets the StabilizationWindowSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StabilizationWindowSeconds field is set to the value of the last call.\nfunc (b *HPAScalingRulesApplyConfiguration) WithStabilizationWindowSeconds(value int32) *HPAScalingRulesApplyConfiguration {\n\tb.StabilizationWindowSeconds = &value\n\treturn b\n}\n\n// WithSelectPolicy sets the SelectPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SelectPolicy field is set to the value of the last call.\nfunc (b *HPAScalingRulesApplyConfiguration) WithSelectPolicy(value autoscalingv2beta2.ScalingPolicySelect) *HPAScalingRulesApplyConfiguration {\n\tb.SelectPolicy = &value\n\treturn b\n}\n\n// WithPolicies adds the given value to the Policies field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Policies field.\nfunc (b *HPAScalingRulesApplyConfiguration) WithPolicies(values ...*HPAScalingPolicyApplyConfiguration) *HPAScalingRulesApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPolicies\")\n\t\t}\n\t\tb.Policies = append(b.Policies, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/metricidentifier.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\nimport (\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// MetricIdentifierApplyConfiguration represents a declarative configuration of the MetricIdentifier type for use\n// with apply.\ntype MetricIdentifierApplyConfiguration struct {\n\tName     *string                             `json:\"name,omitempty\"`\n\tSelector *v1.LabelSelectorApplyConfiguration `json:\"selector,omitempty\"`\n}\n\n// MetricIdentifierApplyConfiguration constructs a declarative configuration of the MetricIdentifier type for use with\n// apply.\nfunc MetricIdentifier() *MetricIdentifierApplyConfiguration {\n\treturn &MetricIdentifierApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *MetricIdentifierApplyConfiguration) WithName(value string) *MetricIdentifierApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *MetricIdentifierApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *MetricIdentifierApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/metricspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\nimport (\n\tautoscalingv2beta2 \"k8s.io/api/autoscaling/v2beta2\"\n)\n\n// MetricSpecApplyConfiguration represents a declarative configuration of the MetricSpec type for use\n// with apply.\ntype MetricSpecApplyConfiguration struct {\n\tType              *autoscalingv2beta2.MetricSourceType             `json:\"type,omitempty\"`\n\tObject            *ObjectMetricSourceApplyConfiguration            `json:\"object,omitempty\"`\n\tPods              *PodsMetricSourceApplyConfiguration              `json:\"pods,omitempty\"`\n\tResource          *ResourceMetricSourceApplyConfiguration          `json:\"resource,omitempty\"`\n\tContainerResource *ContainerResourceMetricSourceApplyConfiguration `json:\"containerResource,omitempty\"`\n\tExternal          *ExternalMetricSourceApplyConfiguration          `json:\"external,omitempty\"`\n}\n\n// MetricSpecApplyConfiguration constructs a declarative configuration of the MetricSpec type for use with\n// apply.\nfunc MetricSpec() *MetricSpecApplyConfiguration {\n\treturn &MetricSpecApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *MetricSpecApplyConfiguration) WithType(value autoscalingv2beta2.MetricSourceType) *MetricSpecApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithObject sets the Object field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Object field is set to the value of the last call.\nfunc (b *MetricSpecApplyConfiguration) WithObject(value *ObjectMetricSourceApplyConfiguration) *MetricSpecApplyConfiguration {\n\tb.Object = value\n\treturn b\n}\n\n// WithPods sets the Pods field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Pods field is set to the value of the last call.\nfunc (b *MetricSpecApplyConfiguration) WithPods(value *PodsMetricSourceApplyConfiguration) *MetricSpecApplyConfiguration {\n\tb.Pods = value\n\treturn b\n}\n\n// WithResource sets the Resource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Resource field is set to the value of the last call.\nfunc (b *MetricSpecApplyConfiguration) WithResource(value *ResourceMetricSourceApplyConfiguration) *MetricSpecApplyConfiguration {\n\tb.Resource = value\n\treturn b\n}\n\n// WithContainerResource sets the ContainerResource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ContainerResource field is set to the value of the last call.\nfunc (b *MetricSpecApplyConfiguration) WithContainerResource(value *ContainerResourceMetricSourceApplyConfiguration) *MetricSpecApplyConfiguration {\n\tb.ContainerResource = value\n\treturn b\n}\n\n// WithExternal sets the External field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the External field is set to the value of the last call.\nfunc (b *MetricSpecApplyConfiguration) WithExternal(value *ExternalMetricSourceApplyConfiguration) *MetricSpecApplyConfiguration {\n\tb.External = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/metricstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\nimport (\n\tautoscalingv2beta2 \"k8s.io/api/autoscaling/v2beta2\"\n)\n\n// MetricStatusApplyConfiguration represents a declarative configuration of the MetricStatus type for use\n// with apply.\ntype MetricStatusApplyConfiguration struct {\n\tType              *autoscalingv2beta2.MetricSourceType             `json:\"type,omitempty\"`\n\tObject            *ObjectMetricStatusApplyConfiguration            `json:\"object,omitempty\"`\n\tPods              *PodsMetricStatusApplyConfiguration              `json:\"pods,omitempty\"`\n\tResource          *ResourceMetricStatusApplyConfiguration          `json:\"resource,omitempty\"`\n\tContainerResource *ContainerResourceMetricStatusApplyConfiguration `json:\"containerResource,omitempty\"`\n\tExternal          *ExternalMetricStatusApplyConfiguration          `json:\"external,omitempty\"`\n}\n\n// MetricStatusApplyConfiguration constructs a declarative configuration of the MetricStatus type for use with\n// apply.\nfunc MetricStatus() *MetricStatusApplyConfiguration {\n\treturn &MetricStatusApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *MetricStatusApplyConfiguration) WithType(value autoscalingv2beta2.MetricSourceType) *MetricStatusApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithObject sets the Object field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Object field is set to the value of the last call.\nfunc (b *MetricStatusApplyConfiguration) WithObject(value *ObjectMetricStatusApplyConfiguration) *MetricStatusApplyConfiguration {\n\tb.Object = value\n\treturn b\n}\n\n// WithPods sets the Pods field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Pods field is set to the value of the last call.\nfunc (b *MetricStatusApplyConfiguration) WithPods(value *PodsMetricStatusApplyConfiguration) *MetricStatusApplyConfiguration {\n\tb.Pods = value\n\treturn b\n}\n\n// WithResource sets the Resource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Resource field is set to the value of the last call.\nfunc (b *MetricStatusApplyConfiguration) WithResource(value *ResourceMetricStatusApplyConfiguration) *MetricStatusApplyConfiguration {\n\tb.Resource = value\n\treturn b\n}\n\n// WithContainerResource sets the ContainerResource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ContainerResource field is set to the value of the last call.\nfunc (b *MetricStatusApplyConfiguration) WithContainerResource(value *ContainerResourceMetricStatusApplyConfiguration) *MetricStatusApplyConfiguration {\n\tb.ContainerResource = value\n\treturn b\n}\n\n// WithExternal sets the External field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the External field is set to the value of the last call.\nfunc (b *MetricStatusApplyConfiguration) WithExternal(value *ExternalMetricStatusApplyConfiguration) *MetricStatusApplyConfiguration {\n\tb.External = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/metrictarget.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\nimport (\n\tautoscalingv2beta2 \"k8s.io/api/autoscaling/v2beta2\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n)\n\n// MetricTargetApplyConfiguration represents a declarative configuration of the MetricTarget type for use\n// with apply.\ntype MetricTargetApplyConfiguration struct {\n\tType               *autoscalingv2beta2.MetricTargetType `json:\"type,omitempty\"`\n\tValue              *resource.Quantity                   `json:\"value,omitempty\"`\n\tAverageValue       *resource.Quantity                   `json:\"averageValue,omitempty\"`\n\tAverageUtilization *int32                               `json:\"averageUtilization,omitempty\"`\n}\n\n// MetricTargetApplyConfiguration constructs a declarative configuration of the MetricTarget type for use with\n// apply.\nfunc MetricTarget() *MetricTargetApplyConfiguration {\n\treturn &MetricTargetApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *MetricTargetApplyConfiguration) WithType(value autoscalingv2beta2.MetricTargetType) *MetricTargetApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithValue sets the Value field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Value field is set to the value of the last call.\nfunc (b *MetricTargetApplyConfiguration) WithValue(value resource.Quantity) *MetricTargetApplyConfiguration {\n\tb.Value = &value\n\treturn b\n}\n\n// WithAverageValue sets the AverageValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AverageValue field is set to the value of the last call.\nfunc (b *MetricTargetApplyConfiguration) WithAverageValue(value resource.Quantity) *MetricTargetApplyConfiguration {\n\tb.AverageValue = &value\n\treturn b\n}\n\n// WithAverageUtilization sets the AverageUtilization field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AverageUtilization field is set to the value of the last call.\nfunc (b *MetricTargetApplyConfiguration) WithAverageUtilization(value int32) *MetricTargetApplyConfiguration {\n\tb.AverageUtilization = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/metricvaluestatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\nimport (\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n)\n\n// MetricValueStatusApplyConfiguration represents a declarative configuration of the MetricValueStatus type for use\n// with apply.\ntype MetricValueStatusApplyConfiguration struct {\n\tValue              *resource.Quantity `json:\"value,omitempty\"`\n\tAverageValue       *resource.Quantity `json:\"averageValue,omitempty\"`\n\tAverageUtilization *int32             `json:\"averageUtilization,omitempty\"`\n}\n\n// MetricValueStatusApplyConfiguration constructs a declarative configuration of the MetricValueStatus type for use with\n// apply.\nfunc MetricValueStatus() *MetricValueStatusApplyConfiguration {\n\treturn &MetricValueStatusApplyConfiguration{}\n}\n\n// WithValue sets the Value field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Value field is set to the value of the last call.\nfunc (b *MetricValueStatusApplyConfiguration) WithValue(value resource.Quantity) *MetricValueStatusApplyConfiguration {\n\tb.Value = &value\n\treturn b\n}\n\n// WithAverageValue sets the AverageValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AverageValue field is set to the value of the last call.\nfunc (b *MetricValueStatusApplyConfiguration) WithAverageValue(value resource.Quantity) *MetricValueStatusApplyConfiguration {\n\tb.AverageValue = &value\n\treturn b\n}\n\n// WithAverageUtilization sets the AverageUtilization field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AverageUtilization field is set to the value of the last call.\nfunc (b *MetricValueStatusApplyConfiguration) WithAverageUtilization(value int32) *MetricValueStatusApplyConfiguration {\n\tb.AverageUtilization = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/objectmetricsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\n// ObjectMetricSourceApplyConfiguration represents a declarative configuration of the ObjectMetricSource type for use\n// with apply.\ntype ObjectMetricSourceApplyConfiguration struct {\n\tDescribedObject *CrossVersionObjectReferenceApplyConfiguration `json:\"describedObject,omitempty\"`\n\tTarget          *MetricTargetApplyConfiguration                `json:\"target,omitempty\"`\n\tMetric          *MetricIdentifierApplyConfiguration            `json:\"metric,omitempty\"`\n}\n\n// ObjectMetricSourceApplyConfiguration constructs a declarative configuration of the ObjectMetricSource type for use with\n// apply.\nfunc ObjectMetricSource() *ObjectMetricSourceApplyConfiguration {\n\treturn &ObjectMetricSourceApplyConfiguration{}\n}\n\n// WithDescribedObject sets the DescribedObject field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DescribedObject field is set to the value of the last call.\nfunc (b *ObjectMetricSourceApplyConfiguration) WithDescribedObject(value *CrossVersionObjectReferenceApplyConfiguration) *ObjectMetricSourceApplyConfiguration {\n\tb.DescribedObject = value\n\treturn b\n}\n\n// WithTarget sets the Target field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Target field is set to the value of the last call.\nfunc (b *ObjectMetricSourceApplyConfiguration) WithTarget(value *MetricTargetApplyConfiguration) *ObjectMetricSourceApplyConfiguration {\n\tb.Target = value\n\treturn b\n}\n\n// WithMetric sets the Metric field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Metric field is set to the value of the last call.\nfunc (b *ObjectMetricSourceApplyConfiguration) WithMetric(value *MetricIdentifierApplyConfiguration) *ObjectMetricSourceApplyConfiguration {\n\tb.Metric = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/objectmetricstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\n// ObjectMetricStatusApplyConfiguration represents a declarative configuration of the ObjectMetricStatus type for use\n// with apply.\ntype ObjectMetricStatusApplyConfiguration struct {\n\tMetric          *MetricIdentifierApplyConfiguration            `json:\"metric,omitempty\"`\n\tCurrent         *MetricValueStatusApplyConfiguration           `json:\"current,omitempty\"`\n\tDescribedObject *CrossVersionObjectReferenceApplyConfiguration `json:\"describedObject,omitempty\"`\n}\n\n// ObjectMetricStatusApplyConfiguration constructs a declarative configuration of the ObjectMetricStatus type for use with\n// apply.\nfunc ObjectMetricStatus() *ObjectMetricStatusApplyConfiguration {\n\treturn &ObjectMetricStatusApplyConfiguration{}\n}\n\n// WithMetric sets the Metric field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Metric field is set to the value of the last call.\nfunc (b *ObjectMetricStatusApplyConfiguration) WithMetric(value *MetricIdentifierApplyConfiguration) *ObjectMetricStatusApplyConfiguration {\n\tb.Metric = value\n\treturn b\n}\n\n// WithCurrent sets the Current field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Current field is set to the value of the last call.\nfunc (b *ObjectMetricStatusApplyConfiguration) WithCurrent(value *MetricValueStatusApplyConfiguration) *ObjectMetricStatusApplyConfiguration {\n\tb.Current = value\n\treturn b\n}\n\n// WithDescribedObject sets the DescribedObject field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DescribedObject field is set to the value of the last call.\nfunc (b *ObjectMetricStatusApplyConfiguration) WithDescribedObject(value *CrossVersionObjectReferenceApplyConfiguration) *ObjectMetricStatusApplyConfiguration {\n\tb.DescribedObject = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/podsmetricsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\n// PodsMetricSourceApplyConfiguration represents a declarative configuration of the PodsMetricSource type for use\n// with apply.\ntype PodsMetricSourceApplyConfiguration struct {\n\tMetric *MetricIdentifierApplyConfiguration `json:\"metric,omitempty\"`\n\tTarget *MetricTargetApplyConfiguration     `json:\"target,omitempty\"`\n}\n\n// PodsMetricSourceApplyConfiguration constructs a declarative configuration of the PodsMetricSource type for use with\n// apply.\nfunc PodsMetricSource() *PodsMetricSourceApplyConfiguration {\n\treturn &PodsMetricSourceApplyConfiguration{}\n}\n\n// WithMetric sets the Metric field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Metric field is set to the value of the last call.\nfunc (b *PodsMetricSourceApplyConfiguration) WithMetric(value *MetricIdentifierApplyConfiguration) *PodsMetricSourceApplyConfiguration {\n\tb.Metric = value\n\treturn b\n}\n\n// WithTarget sets the Target field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Target field is set to the value of the last call.\nfunc (b *PodsMetricSourceApplyConfiguration) WithTarget(value *MetricTargetApplyConfiguration) *PodsMetricSourceApplyConfiguration {\n\tb.Target = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/podsmetricstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\n// PodsMetricStatusApplyConfiguration represents a declarative configuration of the PodsMetricStatus type for use\n// with apply.\ntype PodsMetricStatusApplyConfiguration struct {\n\tMetric  *MetricIdentifierApplyConfiguration  `json:\"metric,omitempty\"`\n\tCurrent *MetricValueStatusApplyConfiguration `json:\"current,omitempty\"`\n}\n\n// PodsMetricStatusApplyConfiguration constructs a declarative configuration of the PodsMetricStatus type for use with\n// apply.\nfunc PodsMetricStatus() *PodsMetricStatusApplyConfiguration {\n\treturn &PodsMetricStatusApplyConfiguration{}\n}\n\n// WithMetric sets the Metric field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Metric field is set to the value of the last call.\nfunc (b *PodsMetricStatusApplyConfiguration) WithMetric(value *MetricIdentifierApplyConfiguration) *PodsMetricStatusApplyConfiguration {\n\tb.Metric = value\n\treturn b\n}\n\n// WithCurrent sets the Current field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Current field is set to the value of the last call.\nfunc (b *PodsMetricStatusApplyConfiguration) WithCurrent(value *MetricValueStatusApplyConfiguration) *PodsMetricStatusApplyConfiguration {\n\tb.Current = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/resourcemetricsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// ResourceMetricSourceApplyConfiguration represents a declarative configuration of the ResourceMetricSource type for use\n// with apply.\ntype ResourceMetricSourceApplyConfiguration struct {\n\tName   *v1.ResourceName                `json:\"name,omitempty\"`\n\tTarget *MetricTargetApplyConfiguration `json:\"target,omitempty\"`\n}\n\n// ResourceMetricSourceApplyConfiguration constructs a declarative configuration of the ResourceMetricSource type for use with\n// apply.\nfunc ResourceMetricSource() *ResourceMetricSourceApplyConfiguration {\n\treturn &ResourceMetricSourceApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ResourceMetricSourceApplyConfiguration) WithName(value v1.ResourceName) *ResourceMetricSourceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithTarget sets the Target field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Target field is set to the value of the last call.\nfunc (b *ResourceMetricSourceApplyConfiguration) WithTarget(value *MetricTargetApplyConfiguration) *ResourceMetricSourceApplyConfiguration {\n\tb.Target = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/autoscaling/v2beta2/resourcemetricstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v2beta2\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// ResourceMetricStatusApplyConfiguration represents a declarative configuration of the ResourceMetricStatus type for use\n// with apply.\ntype ResourceMetricStatusApplyConfiguration struct {\n\tName    *v1.ResourceName                     `json:\"name,omitempty\"`\n\tCurrent *MetricValueStatusApplyConfiguration `json:\"current,omitempty\"`\n}\n\n// ResourceMetricStatusApplyConfiguration constructs a declarative configuration of the ResourceMetricStatus type for use with\n// apply.\nfunc ResourceMetricStatus() *ResourceMetricStatusApplyConfiguration {\n\treturn &ResourceMetricStatusApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ResourceMetricStatusApplyConfiguration) WithName(value v1.ResourceName) *ResourceMetricStatusApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithCurrent sets the Current field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Current field is set to the value of the last call.\nfunc (b *ResourceMetricStatusApplyConfiguration) WithCurrent(value *MetricValueStatusApplyConfiguration) *ResourceMetricStatusApplyConfiguration {\n\tb.Current = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/batch/v1/cronjob.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tbatchv1 \"k8s.io/api/batch/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// CronJobApplyConfiguration represents a declarative configuration of the CronJob type for use\n// with apply.\ntype CronJobApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                                 *CronJobSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                               *CronJobStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// CronJob constructs a declarative configuration of the CronJob type for use with\n// apply.\nfunc CronJob(name, namespace string) *CronJobApplyConfiguration {\n\tb := &CronJobApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"CronJob\")\n\tb.WithAPIVersion(\"batch/v1\")\n\treturn b\n}\n\n// ExtractCronJob extracts the applied configuration owned by fieldManager from\n// cronJob. If no managedFields are found in cronJob for fieldManager, a\n// CronJobApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// cronJob must be a unmodified CronJob API object that was retrieved from the Kubernetes API.\n// ExtractCronJob provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractCronJob(cronJob *batchv1.CronJob, fieldManager string) (*CronJobApplyConfiguration, error) {\n\treturn extractCronJob(cronJob, fieldManager, \"\")\n}\n\n// ExtractCronJobStatus is the same as ExtractCronJob except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractCronJobStatus(cronJob *batchv1.CronJob, fieldManager string) (*CronJobApplyConfiguration, error) {\n\treturn extractCronJob(cronJob, fieldManager, \"status\")\n}\n\nfunc extractCronJob(cronJob *batchv1.CronJob, fieldManager string, subresource string) (*CronJobApplyConfiguration, error) {\n\tb := &CronJobApplyConfiguration{}\n\terr := managedfields.ExtractInto(cronJob, internal.Parser().Type(\"io.k8s.api.batch.v1.CronJob\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(cronJob.Name)\n\tb.WithNamespace(cronJob.Namespace)\n\n\tb.WithKind(\"CronJob\")\n\tb.WithAPIVersion(\"batch/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithKind(value string) *CronJobApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithAPIVersion(value string) *CronJobApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithName(value string) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithGenerateName(value string) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithNamespace(value string) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithUID(value types.UID) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithResourceVersion(value string) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithGeneration(value int64) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *CronJobApplyConfiguration) WithLabels(entries map[string]string) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *CronJobApplyConfiguration) WithAnnotations(entries map[string]string) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *CronJobApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *CronJobApplyConfiguration) WithFinalizers(values ...string) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *CronJobApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithSpec(value *CronJobSpecApplyConfiguration) *CronJobApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithStatus(value *CronJobStatusApplyConfiguration) *CronJobApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *CronJobApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/batch/v1/cronjobspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tbatchv1 \"k8s.io/api/batch/v1\"\n)\n\n// CronJobSpecApplyConfiguration represents a declarative configuration of the CronJobSpec type for use\n// with apply.\ntype CronJobSpecApplyConfiguration struct {\n\tSchedule                   *string                            `json:\"schedule,omitempty\"`\n\tTimeZone                   *string                            `json:\"timeZone,omitempty\"`\n\tStartingDeadlineSeconds    *int64                             `json:\"startingDeadlineSeconds,omitempty\"`\n\tConcurrencyPolicy          *batchv1.ConcurrencyPolicy         `json:\"concurrencyPolicy,omitempty\"`\n\tSuspend                    *bool                              `json:\"suspend,omitempty\"`\n\tJobTemplate                *JobTemplateSpecApplyConfiguration `json:\"jobTemplate,omitempty\"`\n\tSuccessfulJobsHistoryLimit *int32                             `json:\"successfulJobsHistoryLimit,omitempty\"`\n\tFailedJobsHistoryLimit     *int32                             `json:\"failedJobsHistoryLimit,omitempty\"`\n}\n\n// CronJobSpecApplyConfiguration constructs a declarative configuration of the CronJobSpec type for use with\n// apply.\nfunc CronJobSpec() *CronJobSpecApplyConfiguration {\n\treturn &CronJobSpecApplyConfiguration{}\n}\n\n// WithSchedule sets the Schedule field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Schedule field is set to the value of the last call.\nfunc (b *CronJobSpecApplyConfiguration) WithSchedule(value string) *CronJobSpecApplyConfiguration {\n\tb.Schedule = &value\n\treturn b\n}\n\n// WithTimeZone sets the TimeZone field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TimeZone field is set to the value of the last call.\nfunc (b *CronJobSpecApplyConfiguration) WithTimeZone(value string) *CronJobSpecApplyConfiguration {\n\tb.TimeZone = &value\n\treturn b\n}\n\n// WithStartingDeadlineSeconds sets the StartingDeadlineSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StartingDeadlineSeconds field is set to the value of the last call.\nfunc (b *CronJobSpecApplyConfiguration) WithStartingDeadlineSeconds(value int64) *CronJobSpecApplyConfiguration {\n\tb.StartingDeadlineSeconds = &value\n\treturn b\n}\n\n// WithConcurrencyPolicy sets the ConcurrencyPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ConcurrencyPolicy field is set to the value of the last call.\nfunc (b *CronJobSpecApplyConfiguration) WithConcurrencyPolicy(value batchv1.ConcurrencyPolicy) *CronJobSpecApplyConfiguration {\n\tb.ConcurrencyPolicy = &value\n\treturn b\n}\n\n// WithSuspend sets the Suspend field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Suspend field is set to the value of the last call.\nfunc (b *CronJobSpecApplyConfiguration) WithSuspend(value bool) *CronJobSpecApplyConfiguration {\n\tb.Suspend = &value\n\treturn b\n}\n\n// WithJobTemplate sets the JobTemplate field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the JobTemplate field is set to the value of the last call.\nfunc (b *CronJobSpecApplyConfiguration) WithJobTemplate(value *JobTemplateSpecApplyConfiguration) *CronJobSpecApplyConfiguration {\n\tb.JobTemplate = value\n\treturn b\n}\n\n// WithSuccessfulJobsHistoryLimit sets the SuccessfulJobsHistoryLimit field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SuccessfulJobsHistoryLimit field is set to the value of the last call.\nfunc (b *CronJobSpecApplyConfiguration) WithSuccessfulJobsHistoryLimit(value int32) *CronJobSpecApplyConfiguration {\n\tb.SuccessfulJobsHistoryLimit = &value\n\treturn b\n}\n\n// WithFailedJobsHistoryLimit sets the FailedJobsHistoryLimit field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FailedJobsHistoryLimit field is set to the value of the last call.\nfunc (b *CronJobSpecApplyConfiguration) WithFailedJobsHistoryLimit(value int32) *CronJobSpecApplyConfiguration {\n\tb.FailedJobsHistoryLimit = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/batch/v1/cronjobstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n)\n\n// CronJobStatusApplyConfiguration represents a declarative configuration of the CronJobStatus type for use\n// with apply.\ntype CronJobStatusApplyConfiguration struct {\n\tActive             []corev1.ObjectReferenceApplyConfiguration `json:\"active,omitempty\"`\n\tLastScheduleTime   *metav1.Time                               `json:\"lastScheduleTime,omitempty\"`\n\tLastSuccessfulTime *metav1.Time                               `json:\"lastSuccessfulTime,omitempty\"`\n}\n\n// CronJobStatusApplyConfiguration constructs a declarative configuration of the CronJobStatus type for use with\n// apply.\nfunc CronJobStatus() *CronJobStatusApplyConfiguration {\n\treturn &CronJobStatusApplyConfiguration{}\n}\n\n// WithActive adds the given value to the Active field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Active field.\nfunc (b *CronJobStatusApplyConfiguration) WithActive(values ...*corev1.ObjectReferenceApplyConfiguration) *CronJobStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithActive\")\n\t\t}\n\t\tb.Active = append(b.Active, *values[i])\n\t}\n\treturn b\n}\n\n// WithLastScheduleTime sets the LastScheduleTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastScheduleTime field is set to the value of the last call.\nfunc (b *CronJobStatusApplyConfiguration) WithLastScheduleTime(value metav1.Time) *CronJobStatusApplyConfiguration {\n\tb.LastScheduleTime = &value\n\treturn b\n}\n\n// WithLastSuccessfulTime sets the LastSuccessfulTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastSuccessfulTime field is set to the value of the last call.\nfunc (b *CronJobStatusApplyConfiguration) WithLastSuccessfulTime(value metav1.Time) *CronJobStatusApplyConfiguration {\n\tb.LastSuccessfulTime = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/batch/v1/job.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tbatchv1 \"k8s.io/api/batch/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// JobApplyConfiguration represents a declarative configuration of the Job type for use\n// with apply.\ntype JobApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                                 *JobSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                               *JobStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// Job constructs a declarative configuration of the Job type for use with\n// apply.\nfunc Job(name, namespace string) *JobApplyConfiguration {\n\tb := &JobApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Job\")\n\tb.WithAPIVersion(\"batch/v1\")\n\treturn b\n}\n\n// ExtractJob extracts the applied configuration owned by fieldManager from\n// job. If no managedFields are found in job for fieldManager, a\n// JobApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// job must be a unmodified Job API object that was retrieved from the Kubernetes API.\n// ExtractJob provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractJob(job *batchv1.Job, fieldManager string) (*JobApplyConfiguration, error) {\n\treturn extractJob(job, fieldManager, \"\")\n}\n\n// ExtractJobStatus is the same as ExtractJob except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractJobStatus(job *batchv1.Job, fieldManager string) (*JobApplyConfiguration, error) {\n\treturn extractJob(job, fieldManager, \"status\")\n}\n\nfunc extractJob(job *batchv1.Job, fieldManager string, subresource string) (*JobApplyConfiguration, error) {\n\tb := &JobApplyConfiguration{}\n\terr := managedfields.ExtractInto(job, internal.Parser().Type(\"io.k8s.api.batch.v1.Job\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(job.Name)\n\tb.WithNamespace(job.Namespace)\n\n\tb.WithKind(\"Job\")\n\tb.WithAPIVersion(\"batch/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *JobApplyConfiguration) WithKind(value string) *JobApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *JobApplyConfiguration) WithAPIVersion(value string) *JobApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *JobApplyConfiguration) WithName(value string) *JobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *JobApplyConfiguration) WithGenerateName(value string) *JobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *JobApplyConfiguration) WithNamespace(value string) *JobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *JobApplyConfiguration) WithUID(value types.UID) *JobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *JobApplyConfiguration) WithResourceVersion(value string) *JobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *JobApplyConfiguration) WithGeneration(value int64) *JobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *JobApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *JobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *JobApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *JobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *JobApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *JobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *JobApplyConfiguration) WithLabels(entries map[string]string) *JobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *JobApplyConfiguration) WithAnnotations(entries map[string]string) *JobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *JobApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *JobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *JobApplyConfiguration) WithFinalizers(values ...string) *JobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *JobApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *JobApplyConfiguration) WithSpec(value *JobSpecApplyConfiguration) *JobApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *JobApplyConfiguration) WithStatus(value *JobStatusApplyConfiguration) *JobApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *JobApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/batch/v1/jobcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tbatchv1 \"k8s.io/api/batch/v1\"\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// JobConditionApplyConfiguration represents a declarative configuration of the JobCondition type for use\n// with apply.\ntype JobConditionApplyConfiguration struct {\n\tType               *batchv1.JobConditionType `json:\"type,omitempty\"`\n\tStatus             *corev1.ConditionStatus   `json:\"status,omitempty\"`\n\tLastProbeTime      *metav1.Time              `json:\"lastProbeTime,omitempty\"`\n\tLastTransitionTime *metav1.Time              `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                   `json:\"reason,omitempty\"`\n\tMessage            *string                   `json:\"message,omitempty\"`\n}\n\n// JobConditionApplyConfiguration constructs a declarative configuration of the JobCondition type for use with\n// apply.\nfunc JobCondition() *JobConditionApplyConfiguration {\n\treturn &JobConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *JobConditionApplyConfiguration) WithType(value batchv1.JobConditionType) *JobConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *JobConditionApplyConfiguration) WithStatus(value corev1.ConditionStatus) *JobConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastProbeTime sets the LastProbeTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastProbeTime field is set to the value of the last call.\nfunc (b *JobConditionApplyConfiguration) WithLastProbeTime(value metav1.Time) *JobConditionApplyConfiguration {\n\tb.LastProbeTime = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *JobConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *JobConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *JobConditionApplyConfiguration) WithReason(value string) *JobConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *JobConditionApplyConfiguration) WithMessage(value string) *JobConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/batch/v1/jobspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tbatchv1 \"k8s.io/api/batch/v1\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// JobSpecApplyConfiguration represents a declarative configuration of the JobSpec type for use\n// with apply.\ntype JobSpecApplyConfiguration struct {\n\tParallelism             *int32                                    `json:\"parallelism,omitempty\"`\n\tCompletions             *int32                                    `json:\"completions,omitempty\"`\n\tActiveDeadlineSeconds   *int64                                    `json:\"activeDeadlineSeconds,omitempty\"`\n\tPodFailurePolicy        *PodFailurePolicyApplyConfiguration       `json:\"podFailurePolicy,omitempty\"`\n\tSuccessPolicy           *SuccessPolicyApplyConfiguration          `json:\"successPolicy,omitempty\"`\n\tBackoffLimit            *int32                                    `json:\"backoffLimit,omitempty\"`\n\tBackoffLimitPerIndex    *int32                                    `json:\"backoffLimitPerIndex,omitempty\"`\n\tMaxFailedIndexes        *int32                                    `json:\"maxFailedIndexes,omitempty\"`\n\tSelector                *metav1.LabelSelectorApplyConfiguration   `json:\"selector,omitempty\"`\n\tManualSelector          *bool                                     `json:\"manualSelector,omitempty\"`\n\tTemplate                *corev1.PodTemplateSpecApplyConfiguration `json:\"template,omitempty\"`\n\tTTLSecondsAfterFinished *int32                                    `json:\"ttlSecondsAfterFinished,omitempty\"`\n\tCompletionMode          *batchv1.CompletionMode                   `json:\"completionMode,omitempty\"`\n\tSuspend                 *bool                                     `json:\"suspend,omitempty\"`\n\tPodReplacementPolicy    *batchv1.PodReplacementPolicy             `json:\"podReplacementPolicy,omitempty\"`\n\tManagedBy               *string                                   `json:\"managedBy,omitempty\"`\n}\n\n// JobSpecApplyConfiguration constructs a declarative configuration of the JobSpec type for use with\n// apply.\nfunc JobSpec() *JobSpecApplyConfiguration {\n\treturn &JobSpecApplyConfiguration{}\n}\n\n// WithParallelism sets the Parallelism field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Parallelism field is set to the value of the last call.\nfunc (b *JobSpecApplyConfiguration) WithParallelism(value int32) *JobSpecApplyConfiguration {\n\tb.Parallelism = &value\n\treturn b\n}\n\n// WithCompletions sets the Completions field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Completions field is set to the value of the last call.\nfunc (b *JobSpecApplyConfiguration) WithCompletions(value int32) *JobSpecApplyConfiguration {\n\tb.Completions = &value\n\treturn b\n}\n\n// WithActiveDeadlineSeconds sets the ActiveDeadlineSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ActiveDeadlineSeconds field is set to the value of the last call.\nfunc (b *JobSpecApplyConfiguration) WithActiveDeadlineSeconds(value int64) *JobSpecApplyConfiguration {\n\tb.ActiveDeadlineSeconds = &value\n\treturn b\n}\n\n// WithPodFailurePolicy sets the PodFailurePolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PodFailurePolicy field is set to the value of the last call.\nfunc (b *JobSpecApplyConfiguration) WithPodFailurePolicy(value *PodFailurePolicyApplyConfiguration) *JobSpecApplyConfiguration {\n\tb.PodFailurePolicy = value\n\treturn b\n}\n\n// WithSuccessPolicy sets the SuccessPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SuccessPolicy field is set to the value of the last call.\nfunc (b *JobSpecApplyConfiguration) WithSuccessPolicy(value *SuccessPolicyApplyConfiguration) *JobSpecApplyConfiguration {\n\tb.SuccessPolicy = value\n\treturn b\n}\n\n// WithBackoffLimit sets the BackoffLimit field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the BackoffLimit field is set to the value of the last call.\nfunc (b *JobSpecApplyConfiguration) WithBackoffLimit(value int32) *JobSpecApplyConfiguration {\n\tb.BackoffLimit = &value\n\treturn b\n}\n\n// WithBackoffLimitPerIndex sets the BackoffLimitPerIndex field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the BackoffLimitPerIndex field is set to the value of the last call.\nfunc (b *JobSpecApplyConfiguration) WithBackoffLimitPerIndex(value int32) *JobSpecApplyConfiguration {\n\tb.BackoffLimitPerIndex = &value\n\treturn b\n}\n\n// WithMaxFailedIndexes sets the MaxFailedIndexes field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxFailedIndexes field is set to the value of the last call.\nfunc (b *JobSpecApplyConfiguration) WithMaxFailedIndexes(value int32) *JobSpecApplyConfiguration {\n\tb.MaxFailedIndexes = &value\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *JobSpecApplyConfiguration) WithSelector(value *metav1.LabelSelectorApplyConfiguration) *JobSpecApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n\n// WithManualSelector sets the ManualSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ManualSelector field is set to the value of the last call.\nfunc (b *JobSpecApplyConfiguration) WithManualSelector(value bool) *JobSpecApplyConfiguration {\n\tb.ManualSelector = &value\n\treturn b\n}\n\n// WithTemplate sets the Template field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Template field is set to the value of the last call.\nfunc (b *JobSpecApplyConfiguration) WithTemplate(value *corev1.PodTemplateSpecApplyConfiguration) *JobSpecApplyConfiguration {\n\tb.Template = value\n\treturn b\n}\n\n// WithTTLSecondsAfterFinished sets the TTLSecondsAfterFinished field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TTLSecondsAfterFinished field is set to the value of the last call.\nfunc (b *JobSpecApplyConfiguration) WithTTLSecondsAfterFinished(value int32) *JobSpecApplyConfiguration {\n\tb.TTLSecondsAfterFinished = &value\n\treturn b\n}\n\n// WithCompletionMode sets the CompletionMode field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CompletionMode field is set to the value of the last call.\nfunc (b *JobSpecApplyConfiguration) WithCompletionMode(value batchv1.CompletionMode) *JobSpecApplyConfiguration {\n\tb.CompletionMode = &value\n\treturn b\n}\n\n// WithSuspend sets the Suspend field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Suspend field is set to the value of the last call.\nfunc (b *JobSpecApplyConfiguration) WithSuspend(value bool) *JobSpecApplyConfiguration {\n\tb.Suspend = &value\n\treturn b\n}\n\n// WithPodReplacementPolicy sets the PodReplacementPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PodReplacementPolicy field is set to the value of the last call.\nfunc (b *JobSpecApplyConfiguration) WithPodReplacementPolicy(value batchv1.PodReplacementPolicy) *JobSpecApplyConfiguration {\n\tb.PodReplacementPolicy = &value\n\treturn b\n}\n\n// WithManagedBy sets the ManagedBy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ManagedBy field is set to the value of the last call.\nfunc (b *JobSpecApplyConfiguration) WithManagedBy(value string) *JobSpecApplyConfiguration {\n\tb.ManagedBy = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/batch/v1/jobstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// JobStatusApplyConfiguration represents a declarative configuration of the JobStatus type for use\n// with apply.\ntype JobStatusApplyConfiguration struct {\n\tConditions              []JobConditionApplyConfiguration           `json:\"conditions,omitempty\"`\n\tStartTime               *metav1.Time                               `json:\"startTime,omitempty\"`\n\tCompletionTime          *metav1.Time                               `json:\"completionTime,omitempty\"`\n\tActive                  *int32                                     `json:\"active,omitempty\"`\n\tSucceeded               *int32                                     `json:\"succeeded,omitempty\"`\n\tFailed                  *int32                                     `json:\"failed,omitempty\"`\n\tTerminating             *int32                                     `json:\"terminating,omitempty\"`\n\tCompletedIndexes        *string                                    `json:\"completedIndexes,omitempty\"`\n\tFailedIndexes           *string                                    `json:\"failedIndexes,omitempty\"`\n\tUncountedTerminatedPods *UncountedTerminatedPodsApplyConfiguration `json:\"uncountedTerminatedPods,omitempty\"`\n\tReady                   *int32                                     `json:\"ready,omitempty\"`\n}\n\n// JobStatusApplyConfiguration constructs a declarative configuration of the JobStatus type for use with\n// apply.\nfunc JobStatus() *JobStatusApplyConfiguration {\n\treturn &JobStatusApplyConfiguration{}\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *JobStatusApplyConfiguration) WithConditions(values ...*JobConditionApplyConfiguration) *JobStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n\n// WithStartTime sets the StartTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StartTime field is set to the value of the last call.\nfunc (b *JobStatusApplyConfiguration) WithStartTime(value metav1.Time) *JobStatusApplyConfiguration {\n\tb.StartTime = &value\n\treturn b\n}\n\n// WithCompletionTime sets the CompletionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CompletionTime field is set to the value of the last call.\nfunc (b *JobStatusApplyConfiguration) WithCompletionTime(value metav1.Time) *JobStatusApplyConfiguration {\n\tb.CompletionTime = &value\n\treturn b\n}\n\n// WithActive sets the Active field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Active field is set to the value of the last call.\nfunc (b *JobStatusApplyConfiguration) WithActive(value int32) *JobStatusApplyConfiguration {\n\tb.Active = &value\n\treturn b\n}\n\n// WithSucceeded sets the Succeeded field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Succeeded field is set to the value of the last call.\nfunc (b *JobStatusApplyConfiguration) WithSucceeded(value int32) *JobStatusApplyConfiguration {\n\tb.Succeeded = &value\n\treturn b\n}\n\n// WithFailed sets the Failed field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Failed field is set to the value of the last call.\nfunc (b *JobStatusApplyConfiguration) WithFailed(value int32) *JobStatusApplyConfiguration {\n\tb.Failed = &value\n\treturn b\n}\n\n// WithTerminating sets the Terminating field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Terminating field is set to the value of the last call.\nfunc (b *JobStatusApplyConfiguration) WithTerminating(value int32) *JobStatusApplyConfiguration {\n\tb.Terminating = &value\n\treturn b\n}\n\n// WithCompletedIndexes sets the CompletedIndexes field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CompletedIndexes field is set to the value of the last call.\nfunc (b *JobStatusApplyConfiguration) WithCompletedIndexes(value string) *JobStatusApplyConfiguration {\n\tb.CompletedIndexes = &value\n\treturn b\n}\n\n// WithFailedIndexes sets the FailedIndexes field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FailedIndexes field is set to the value of the last call.\nfunc (b *JobStatusApplyConfiguration) WithFailedIndexes(value string) *JobStatusApplyConfiguration {\n\tb.FailedIndexes = &value\n\treturn b\n}\n\n// WithUncountedTerminatedPods sets the UncountedTerminatedPods field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UncountedTerminatedPods field is set to the value of the last call.\nfunc (b *JobStatusApplyConfiguration) WithUncountedTerminatedPods(value *UncountedTerminatedPodsApplyConfiguration) *JobStatusApplyConfiguration {\n\tb.UncountedTerminatedPods = value\n\treturn b\n}\n\n// WithReady sets the Ready field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Ready field is set to the value of the last call.\nfunc (b *JobStatusApplyConfiguration) WithReady(value int32) *JobStatusApplyConfiguration {\n\tb.Ready = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/batch/v1/jobtemplatespec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// JobTemplateSpecApplyConfiguration represents a declarative configuration of the JobTemplateSpec type for use\n// with apply.\ntype JobTemplateSpecApplyConfiguration struct {\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                                 *JobSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// JobTemplateSpecApplyConfiguration constructs a declarative configuration of the JobTemplateSpec type for use with\n// apply.\nfunc JobTemplateSpec() *JobTemplateSpecApplyConfiguration {\n\treturn &JobTemplateSpecApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *JobTemplateSpecApplyConfiguration) WithName(value string) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *JobTemplateSpecApplyConfiguration) WithGenerateName(value string) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *JobTemplateSpecApplyConfiguration) WithNamespace(value string) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *JobTemplateSpecApplyConfiguration) WithUID(value types.UID) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *JobTemplateSpecApplyConfiguration) WithResourceVersion(value string) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *JobTemplateSpecApplyConfiguration) WithGeneration(value int64) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *JobTemplateSpecApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *JobTemplateSpecApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *JobTemplateSpecApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *JobTemplateSpecApplyConfiguration) WithLabels(entries map[string]string) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *JobTemplateSpecApplyConfiguration) WithAnnotations(entries map[string]string) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *JobTemplateSpecApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *JobTemplateSpecApplyConfiguration) WithFinalizers(values ...string) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *JobTemplateSpecApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *JobTemplateSpecApplyConfiguration) WithSpec(value *JobSpecApplyConfiguration) *JobTemplateSpecApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *JobTemplateSpecApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/batch/v1/podfailurepolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// PodFailurePolicyApplyConfiguration represents a declarative configuration of the PodFailurePolicy type for use\n// with apply.\ntype PodFailurePolicyApplyConfiguration struct {\n\tRules []PodFailurePolicyRuleApplyConfiguration `json:\"rules,omitempty\"`\n}\n\n// PodFailurePolicyApplyConfiguration constructs a declarative configuration of the PodFailurePolicy type for use with\n// apply.\nfunc PodFailurePolicy() *PodFailurePolicyApplyConfiguration {\n\treturn &PodFailurePolicyApplyConfiguration{}\n}\n\n// WithRules adds the given value to the Rules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Rules field.\nfunc (b *PodFailurePolicyApplyConfiguration) WithRules(values ...*PodFailurePolicyRuleApplyConfiguration) *PodFailurePolicyApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRules\")\n\t\t}\n\t\tb.Rules = append(b.Rules, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/batch/v1/podfailurepolicyonexitcodesrequirement.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tbatchv1 \"k8s.io/api/batch/v1\"\n)\n\n// PodFailurePolicyOnExitCodesRequirementApplyConfiguration represents a declarative configuration of the PodFailurePolicyOnExitCodesRequirement type for use\n// with apply.\ntype PodFailurePolicyOnExitCodesRequirementApplyConfiguration struct {\n\tContainerName *string                                      `json:\"containerName,omitempty\"`\n\tOperator      *batchv1.PodFailurePolicyOnExitCodesOperator `json:\"operator,omitempty\"`\n\tValues        []int32                                      `json:\"values,omitempty\"`\n}\n\n// PodFailurePolicyOnExitCodesRequirementApplyConfiguration constructs a declarative configuration of the PodFailurePolicyOnExitCodesRequirement type for use with\n// apply.\nfunc PodFailurePolicyOnExitCodesRequirement() *PodFailurePolicyOnExitCodesRequirementApplyConfiguration {\n\treturn &PodFailurePolicyOnExitCodesRequirementApplyConfiguration{}\n}\n\n// WithContainerName sets the ContainerName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ContainerName field is set to the value of the last call.\nfunc (b *PodFailurePolicyOnExitCodesRequirementApplyConfiguration) WithContainerName(value string) *PodFailurePolicyOnExitCodesRequirementApplyConfiguration {\n\tb.ContainerName = &value\n\treturn b\n}\n\n// WithOperator sets the Operator field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Operator field is set to the value of the last call.\nfunc (b *PodFailurePolicyOnExitCodesRequirementApplyConfiguration) WithOperator(value batchv1.PodFailurePolicyOnExitCodesOperator) *PodFailurePolicyOnExitCodesRequirementApplyConfiguration {\n\tb.Operator = &value\n\treturn b\n}\n\n// WithValues adds the given value to the Values field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Values field.\nfunc (b *PodFailurePolicyOnExitCodesRequirementApplyConfiguration) WithValues(values ...int32) *PodFailurePolicyOnExitCodesRequirementApplyConfiguration {\n\tfor i := range values {\n\t\tb.Values = append(b.Values, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/batch/v1/podfailurepolicyonpodconditionspattern.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// PodFailurePolicyOnPodConditionsPatternApplyConfiguration represents a declarative configuration of the PodFailurePolicyOnPodConditionsPattern type for use\n// with apply.\ntype PodFailurePolicyOnPodConditionsPatternApplyConfiguration struct {\n\tType   *corev1.PodConditionType `json:\"type,omitempty\"`\n\tStatus *corev1.ConditionStatus  `json:\"status,omitempty\"`\n}\n\n// PodFailurePolicyOnPodConditionsPatternApplyConfiguration constructs a declarative configuration of the PodFailurePolicyOnPodConditionsPattern type for use with\n// apply.\nfunc PodFailurePolicyOnPodConditionsPattern() *PodFailurePolicyOnPodConditionsPatternApplyConfiguration {\n\treturn &PodFailurePolicyOnPodConditionsPatternApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *PodFailurePolicyOnPodConditionsPatternApplyConfiguration) WithType(value corev1.PodConditionType) *PodFailurePolicyOnPodConditionsPatternApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *PodFailurePolicyOnPodConditionsPatternApplyConfiguration) WithStatus(value corev1.ConditionStatus) *PodFailurePolicyOnPodConditionsPatternApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/batch/v1/podfailurepolicyrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tbatchv1 \"k8s.io/api/batch/v1\"\n)\n\n// PodFailurePolicyRuleApplyConfiguration represents a declarative configuration of the PodFailurePolicyRule type for use\n// with apply.\ntype PodFailurePolicyRuleApplyConfiguration struct {\n\tAction          *batchv1.PodFailurePolicyAction                            `json:\"action,omitempty\"`\n\tOnExitCodes     *PodFailurePolicyOnExitCodesRequirementApplyConfiguration  `json:\"onExitCodes,omitempty\"`\n\tOnPodConditions []PodFailurePolicyOnPodConditionsPatternApplyConfiguration `json:\"onPodConditions,omitempty\"`\n}\n\n// PodFailurePolicyRuleApplyConfiguration constructs a declarative configuration of the PodFailurePolicyRule type for use with\n// apply.\nfunc PodFailurePolicyRule() *PodFailurePolicyRuleApplyConfiguration {\n\treturn &PodFailurePolicyRuleApplyConfiguration{}\n}\n\n// WithAction sets the Action field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Action field is set to the value of the last call.\nfunc (b *PodFailurePolicyRuleApplyConfiguration) WithAction(value batchv1.PodFailurePolicyAction) *PodFailurePolicyRuleApplyConfiguration {\n\tb.Action = &value\n\treturn b\n}\n\n// WithOnExitCodes sets the OnExitCodes field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the OnExitCodes field is set to the value of the last call.\nfunc (b *PodFailurePolicyRuleApplyConfiguration) WithOnExitCodes(value *PodFailurePolicyOnExitCodesRequirementApplyConfiguration) *PodFailurePolicyRuleApplyConfiguration {\n\tb.OnExitCodes = value\n\treturn b\n}\n\n// WithOnPodConditions adds the given value to the OnPodConditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OnPodConditions field.\nfunc (b *PodFailurePolicyRuleApplyConfiguration) WithOnPodConditions(values ...*PodFailurePolicyOnPodConditionsPatternApplyConfiguration) *PodFailurePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOnPodConditions\")\n\t\t}\n\t\tb.OnPodConditions = append(b.OnPodConditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/batch/v1/successpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// SuccessPolicyApplyConfiguration represents a declarative configuration of the SuccessPolicy type for use\n// with apply.\ntype SuccessPolicyApplyConfiguration struct {\n\tRules []SuccessPolicyRuleApplyConfiguration `json:\"rules,omitempty\"`\n}\n\n// SuccessPolicyApplyConfiguration constructs a declarative configuration of the SuccessPolicy type for use with\n// apply.\nfunc SuccessPolicy() *SuccessPolicyApplyConfiguration {\n\treturn &SuccessPolicyApplyConfiguration{}\n}\n\n// WithRules adds the given value to the Rules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Rules field.\nfunc (b *SuccessPolicyApplyConfiguration) WithRules(values ...*SuccessPolicyRuleApplyConfiguration) *SuccessPolicyApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRules\")\n\t\t}\n\t\tb.Rules = append(b.Rules, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/batch/v1/successpolicyrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// SuccessPolicyRuleApplyConfiguration represents a declarative configuration of the SuccessPolicyRule type for use\n// with apply.\ntype SuccessPolicyRuleApplyConfiguration struct {\n\tSucceededIndexes *string `json:\"succeededIndexes,omitempty\"`\n\tSucceededCount   *int32  `json:\"succeededCount,omitempty\"`\n}\n\n// SuccessPolicyRuleApplyConfiguration constructs a declarative configuration of the SuccessPolicyRule type for use with\n// apply.\nfunc SuccessPolicyRule() *SuccessPolicyRuleApplyConfiguration {\n\treturn &SuccessPolicyRuleApplyConfiguration{}\n}\n\n// WithSucceededIndexes sets the SucceededIndexes field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SucceededIndexes field is set to the value of the last call.\nfunc (b *SuccessPolicyRuleApplyConfiguration) WithSucceededIndexes(value string) *SuccessPolicyRuleApplyConfiguration {\n\tb.SucceededIndexes = &value\n\treturn b\n}\n\n// WithSucceededCount sets the SucceededCount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SucceededCount field is set to the value of the last call.\nfunc (b *SuccessPolicyRuleApplyConfiguration) WithSucceededCount(value int32) *SuccessPolicyRuleApplyConfiguration {\n\tb.SucceededCount = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/batch/v1/uncountedterminatedpods.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n)\n\n// UncountedTerminatedPodsApplyConfiguration represents a declarative configuration of the UncountedTerminatedPods type for use\n// with apply.\ntype UncountedTerminatedPodsApplyConfiguration struct {\n\tSucceeded []types.UID `json:\"succeeded,omitempty\"`\n\tFailed    []types.UID `json:\"failed,omitempty\"`\n}\n\n// UncountedTerminatedPodsApplyConfiguration constructs a declarative configuration of the UncountedTerminatedPods type for use with\n// apply.\nfunc UncountedTerminatedPods() *UncountedTerminatedPodsApplyConfiguration {\n\treturn &UncountedTerminatedPodsApplyConfiguration{}\n}\n\n// WithSucceeded adds the given value to the Succeeded field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Succeeded field.\nfunc (b *UncountedTerminatedPodsApplyConfiguration) WithSucceeded(values ...types.UID) *UncountedTerminatedPodsApplyConfiguration {\n\tfor i := range values {\n\t\tb.Succeeded = append(b.Succeeded, values[i])\n\t}\n\treturn b\n}\n\n// WithFailed adds the given value to the Failed field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Failed field.\nfunc (b *UncountedTerminatedPodsApplyConfiguration) WithFailed(values ...types.UID) *UncountedTerminatedPodsApplyConfiguration {\n\tfor i := range values {\n\t\tb.Failed = append(b.Failed, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/batch/v1beta1/cronjob.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tbatchv1beta1 \"k8s.io/api/batch/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// CronJobApplyConfiguration represents a declarative configuration of the CronJob type for use\n// with apply.\ntype CronJobApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *CronJobSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *CronJobStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// CronJob constructs a declarative configuration of the CronJob type for use with\n// apply.\nfunc CronJob(name, namespace string) *CronJobApplyConfiguration {\n\tb := &CronJobApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"CronJob\")\n\tb.WithAPIVersion(\"batch/v1beta1\")\n\treturn b\n}\n\n// ExtractCronJob extracts the applied configuration owned by fieldManager from\n// cronJob. If no managedFields are found in cronJob for fieldManager, a\n// CronJobApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// cronJob must be a unmodified CronJob API object that was retrieved from the Kubernetes API.\n// ExtractCronJob provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractCronJob(cronJob *batchv1beta1.CronJob, fieldManager string) (*CronJobApplyConfiguration, error) {\n\treturn extractCronJob(cronJob, fieldManager, \"\")\n}\n\n// ExtractCronJobStatus is the same as ExtractCronJob except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractCronJobStatus(cronJob *batchv1beta1.CronJob, fieldManager string) (*CronJobApplyConfiguration, error) {\n\treturn extractCronJob(cronJob, fieldManager, \"status\")\n}\n\nfunc extractCronJob(cronJob *batchv1beta1.CronJob, fieldManager string, subresource string) (*CronJobApplyConfiguration, error) {\n\tb := &CronJobApplyConfiguration{}\n\terr := managedfields.ExtractInto(cronJob, internal.Parser().Type(\"io.k8s.api.batch.v1beta1.CronJob\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(cronJob.Name)\n\tb.WithNamespace(cronJob.Namespace)\n\n\tb.WithKind(\"CronJob\")\n\tb.WithAPIVersion(\"batch/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithKind(value string) *CronJobApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithAPIVersion(value string) *CronJobApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithName(value string) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithGenerateName(value string) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithNamespace(value string) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithUID(value types.UID) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithResourceVersion(value string) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithGeneration(value int64) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithCreationTimestamp(value metav1.Time) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *CronJobApplyConfiguration) WithLabels(entries map[string]string) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *CronJobApplyConfiguration) WithAnnotations(entries map[string]string) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *CronJobApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *CronJobApplyConfiguration) WithFinalizers(values ...string) *CronJobApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *CronJobApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithSpec(value *CronJobSpecApplyConfiguration) *CronJobApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *CronJobApplyConfiguration) WithStatus(value *CronJobStatusApplyConfiguration) *CronJobApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *CronJobApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/batch/v1beta1/cronjobspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tbatchv1beta1 \"k8s.io/api/batch/v1beta1\"\n)\n\n// CronJobSpecApplyConfiguration represents a declarative configuration of the CronJobSpec type for use\n// with apply.\ntype CronJobSpecApplyConfiguration struct {\n\tSchedule                   *string                            `json:\"schedule,omitempty\"`\n\tTimeZone                   *string                            `json:\"timeZone,omitempty\"`\n\tStartingDeadlineSeconds    *int64                             `json:\"startingDeadlineSeconds,omitempty\"`\n\tConcurrencyPolicy          *batchv1beta1.ConcurrencyPolicy    `json:\"concurrencyPolicy,omitempty\"`\n\tSuspend                    *bool                              `json:\"suspend,omitempty\"`\n\tJobTemplate                *JobTemplateSpecApplyConfiguration `json:\"jobTemplate,omitempty\"`\n\tSuccessfulJobsHistoryLimit *int32                             `json:\"successfulJobsHistoryLimit,omitempty\"`\n\tFailedJobsHistoryLimit     *int32                             `json:\"failedJobsHistoryLimit,omitempty\"`\n}\n\n// CronJobSpecApplyConfiguration constructs a declarative configuration of the CronJobSpec type for use with\n// apply.\nfunc CronJobSpec() *CronJobSpecApplyConfiguration {\n\treturn &CronJobSpecApplyConfiguration{}\n}\n\n// WithSchedule sets the Schedule field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Schedule field is set to the value of the last call.\nfunc (b *CronJobSpecApplyConfiguration) WithSchedule(value string) *CronJobSpecApplyConfiguration {\n\tb.Schedule = &value\n\treturn b\n}\n\n// WithTimeZone sets the TimeZone field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TimeZone field is set to the value of the last call.\nfunc (b *CronJobSpecApplyConfiguration) WithTimeZone(value string) *CronJobSpecApplyConfiguration {\n\tb.TimeZone = &value\n\treturn b\n}\n\n// WithStartingDeadlineSeconds sets the StartingDeadlineSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StartingDeadlineSeconds field is set to the value of the last call.\nfunc (b *CronJobSpecApplyConfiguration) WithStartingDeadlineSeconds(value int64) *CronJobSpecApplyConfiguration {\n\tb.StartingDeadlineSeconds = &value\n\treturn b\n}\n\n// WithConcurrencyPolicy sets the ConcurrencyPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ConcurrencyPolicy field is set to the value of the last call.\nfunc (b *CronJobSpecApplyConfiguration) WithConcurrencyPolicy(value batchv1beta1.ConcurrencyPolicy) *CronJobSpecApplyConfiguration {\n\tb.ConcurrencyPolicy = &value\n\treturn b\n}\n\n// WithSuspend sets the Suspend field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Suspend field is set to the value of the last call.\nfunc (b *CronJobSpecApplyConfiguration) WithSuspend(value bool) *CronJobSpecApplyConfiguration {\n\tb.Suspend = &value\n\treturn b\n}\n\n// WithJobTemplate sets the JobTemplate field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the JobTemplate field is set to the value of the last call.\nfunc (b *CronJobSpecApplyConfiguration) WithJobTemplate(value *JobTemplateSpecApplyConfiguration) *CronJobSpecApplyConfiguration {\n\tb.JobTemplate = value\n\treturn b\n}\n\n// WithSuccessfulJobsHistoryLimit sets the SuccessfulJobsHistoryLimit field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SuccessfulJobsHistoryLimit field is set to the value of the last call.\nfunc (b *CronJobSpecApplyConfiguration) WithSuccessfulJobsHistoryLimit(value int32) *CronJobSpecApplyConfiguration {\n\tb.SuccessfulJobsHistoryLimit = &value\n\treturn b\n}\n\n// WithFailedJobsHistoryLimit sets the FailedJobsHistoryLimit field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FailedJobsHistoryLimit field is set to the value of the last call.\nfunc (b *CronJobSpecApplyConfiguration) WithFailedJobsHistoryLimit(value int32) *CronJobSpecApplyConfiguration {\n\tb.FailedJobsHistoryLimit = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/batch/v1beta1/cronjobstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tv1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n)\n\n// CronJobStatusApplyConfiguration represents a declarative configuration of the CronJobStatus type for use\n// with apply.\ntype CronJobStatusApplyConfiguration struct {\n\tActive             []v1.ObjectReferenceApplyConfiguration `json:\"active,omitempty\"`\n\tLastScheduleTime   *metav1.Time                           `json:\"lastScheduleTime,omitempty\"`\n\tLastSuccessfulTime *metav1.Time                           `json:\"lastSuccessfulTime,omitempty\"`\n}\n\n// CronJobStatusApplyConfiguration constructs a declarative configuration of the CronJobStatus type for use with\n// apply.\nfunc CronJobStatus() *CronJobStatusApplyConfiguration {\n\treturn &CronJobStatusApplyConfiguration{}\n}\n\n// WithActive adds the given value to the Active field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Active field.\nfunc (b *CronJobStatusApplyConfiguration) WithActive(values ...*v1.ObjectReferenceApplyConfiguration) *CronJobStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithActive\")\n\t\t}\n\t\tb.Active = append(b.Active, *values[i])\n\t}\n\treturn b\n}\n\n// WithLastScheduleTime sets the LastScheduleTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastScheduleTime field is set to the value of the last call.\nfunc (b *CronJobStatusApplyConfiguration) WithLastScheduleTime(value metav1.Time) *CronJobStatusApplyConfiguration {\n\tb.LastScheduleTime = &value\n\treturn b\n}\n\n// WithLastSuccessfulTime sets the LastSuccessfulTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastSuccessfulTime field is set to the value of the last call.\nfunc (b *CronJobStatusApplyConfiguration) WithLastSuccessfulTime(value metav1.Time) *CronJobStatusApplyConfiguration {\n\tb.LastSuccessfulTime = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/batch/v1beta1/jobtemplatespec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tbatchv1 \"k8s.io/client-go/applyconfigurations/batch/v1\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// JobTemplateSpecApplyConfiguration represents a declarative configuration of the JobTemplateSpec type for use\n// with apply.\ntype JobTemplateSpecApplyConfiguration struct {\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *batchv1.JobSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// JobTemplateSpecApplyConfiguration constructs a declarative configuration of the JobTemplateSpec type for use with\n// apply.\nfunc JobTemplateSpec() *JobTemplateSpecApplyConfiguration {\n\treturn &JobTemplateSpecApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *JobTemplateSpecApplyConfiguration) WithName(value string) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *JobTemplateSpecApplyConfiguration) WithGenerateName(value string) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *JobTemplateSpecApplyConfiguration) WithNamespace(value string) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *JobTemplateSpecApplyConfiguration) WithUID(value types.UID) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *JobTemplateSpecApplyConfiguration) WithResourceVersion(value string) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *JobTemplateSpecApplyConfiguration) WithGeneration(value int64) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *JobTemplateSpecApplyConfiguration) WithCreationTimestamp(value metav1.Time) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *JobTemplateSpecApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *JobTemplateSpecApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *JobTemplateSpecApplyConfiguration) WithLabels(entries map[string]string) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *JobTemplateSpecApplyConfiguration) WithAnnotations(entries map[string]string) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *JobTemplateSpecApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *JobTemplateSpecApplyConfiguration) WithFinalizers(values ...string) *JobTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *JobTemplateSpecApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *JobTemplateSpecApplyConfiguration) WithSpec(value *batchv1.JobSpecApplyConfiguration) *JobTemplateSpecApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *JobTemplateSpecApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/certificates/v1/certificatesigningrequest.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcertificatesv1 \"k8s.io/api/certificates/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// CertificateSigningRequestApplyConfiguration represents a declarative configuration of the CertificateSigningRequest type for use\n// with apply.\ntype CertificateSigningRequestApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                                 *CertificateSigningRequestSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                               *CertificateSigningRequestStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// CertificateSigningRequest constructs a declarative configuration of the CertificateSigningRequest type for use with\n// apply.\nfunc CertificateSigningRequest(name string) *CertificateSigningRequestApplyConfiguration {\n\tb := &CertificateSigningRequestApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"CertificateSigningRequest\")\n\tb.WithAPIVersion(\"certificates.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractCertificateSigningRequest extracts the applied configuration owned by fieldManager from\n// certificateSigningRequest. If no managedFields are found in certificateSigningRequest for fieldManager, a\n// CertificateSigningRequestApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// certificateSigningRequest must be a unmodified CertificateSigningRequest API object that was retrieved from the Kubernetes API.\n// ExtractCertificateSigningRequest provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractCertificateSigningRequest(certificateSigningRequest *certificatesv1.CertificateSigningRequest, fieldManager string) (*CertificateSigningRequestApplyConfiguration, error) {\n\treturn extractCertificateSigningRequest(certificateSigningRequest, fieldManager, \"\")\n}\n\n// ExtractCertificateSigningRequestStatus is the same as ExtractCertificateSigningRequest except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractCertificateSigningRequestStatus(certificateSigningRequest *certificatesv1.CertificateSigningRequest, fieldManager string) (*CertificateSigningRequestApplyConfiguration, error) {\n\treturn extractCertificateSigningRequest(certificateSigningRequest, fieldManager, \"status\")\n}\n\nfunc extractCertificateSigningRequest(certificateSigningRequest *certificatesv1.CertificateSigningRequest, fieldManager string, subresource string) (*CertificateSigningRequestApplyConfiguration, error) {\n\tb := &CertificateSigningRequestApplyConfiguration{}\n\terr := managedfields.ExtractInto(certificateSigningRequest, internal.Parser().Type(\"io.k8s.api.certificates.v1.CertificateSigningRequest\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(certificateSigningRequest.Name)\n\n\tb.WithKind(\"CertificateSigningRequest\")\n\tb.WithAPIVersion(\"certificates.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithKind(value string) *CertificateSigningRequestApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithAPIVersion(value string) *CertificateSigningRequestApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithName(value string) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithGenerateName(value string) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithNamespace(value string) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithUID(value types.UID) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithResourceVersion(value string) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithGeneration(value int64) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithLabels(entries map[string]string) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithAnnotations(entries map[string]string) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithFinalizers(values ...string) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *CertificateSigningRequestApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithSpec(value *CertificateSigningRequestSpecApplyConfiguration) *CertificateSigningRequestApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithStatus(value *CertificateSigningRequestStatusApplyConfiguration) *CertificateSigningRequestApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *CertificateSigningRequestApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/certificates/v1/certificatesigningrequestcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcertificatesv1 \"k8s.io/api/certificates/v1\"\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// CertificateSigningRequestConditionApplyConfiguration represents a declarative configuration of the CertificateSigningRequestCondition type for use\n// with apply.\ntype CertificateSigningRequestConditionApplyConfiguration struct {\n\tType               *certificatesv1.RequestConditionType `json:\"type,omitempty\"`\n\tStatus             *corev1.ConditionStatus              `json:\"status,omitempty\"`\n\tReason             *string                              `json:\"reason,omitempty\"`\n\tMessage            *string                              `json:\"message,omitempty\"`\n\tLastUpdateTime     *metav1.Time                         `json:\"lastUpdateTime,omitempty\"`\n\tLastTransitionTime *metav1.Time                         `json:\"lastTransitionTime,omitempty\"`\n}\n\n// CertificateSigningRequestConditionApplyConfiguration constructs a declarative configuration of the CertificateSigningRequestCondition type for use with\n// apply.\nfunc CertificateSigningRequestCondition() *CertificateSigningRequestConditionApplyConfiguration {\n\treturn &CertificateSigningRequestConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *CertificateSigningRequestConditionApplyConfiguration) WithType(value certificatesv1.RequestConditionType) *CertificateSigningRequestConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *CertificateSigningRequestConditionApplyConfiguration) WithStatus(value corev1.ConditionStatus) *CertificateSigningRequestConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *CertificateSigningRequestConditionApplyConfiguration) WithReason(value string) *CertificateSigningRequestConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *CertificateSigningRequestConditionApplyConfiguration) WithMessage(value string) *CertificateSigningRequestConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n\n// WithLastUpdateTime sets the LastUpdateTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastUpdateTime field is set to the value of the last call.\nfunc (b *CertificateSigningRequestConditionApplyConfiguration) WithLastUpdateTime(value metav1.Time) *CertificateSigningRequestConditionApplyConfiguration {\n\tb.LastUpdateTime = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *CertificateSigningRequestConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *CertificateSigningRequestConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/certificates/v1/certificatesigningrequestspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcertificatesv1 \"k8s.io/api/certificates/v1\"\n)\n\n// CertificateSigningRequestSpecApplyConfiguration represents a declarative configuration of the CertificateSigningRequestSpec type for use\n// with apply.\ntype CertificateSigningRequestSpecApplyConfiguration struct {\n\tRequest           []byte                               `json:\"request,omitempty\"`\n\tSignerName        *string                              `json:\"signerName,omitempty\"`\n\tExpirationSeconds *int32                               `json:\"expirationSeconds,omitempty\"`\n\tUsages            []certificatesv1.KeyUsage            `json:\"usages,omitempty\"`\n\tUsername          *string                              `json:\"username,omitempty\"`\n\tUID               *string                              `json:\"uid,omitempty\"`\n\tGroups            []string                             `json:\"groups,omitempty\"`\n\tExtra             map[string]certificatesv1.ExtraValue `json:\"extra,omitempty\"`\n}\n\n// CertificateSigningRequestSpecApplyConfiguration constructs a declarative configuration of the CertificateSigningRequestSpec type for use with\n// apply.\nfunc CertificateSigningRequestSpec() *CertificateSigningRequestSpecApplyConfiguration {\n\treturn &CertificateSigningRequestSpecApplyConfiguration{}\n}\n\n// WithRequest adds the given value to the Request field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Request field.\nfunc (b *CertificateSigningRequestSpecApplyConfiguration) WithRequest(values ...byte) *CertificateSigningRequestSpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.Request = append(b.Request, values[i])\n\t}\n\treturn b\n}\n\n// WithSignerName sets the SignerName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SignerName field is set to the value of the last call.\nfunc (b *CertificateSigningRequestSpecApplyConfiguration) WithSignerName(value string) *CertificateSigningRequestSpecApplyConfiguration {\n\tb.SignerName = &value\n\treturn b\n}\n\n// WithExpirationSeconds sets the ExpirationSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ExpirationSeconds field is set to the value of the last call.\nfunc (b *CertificateSigningRequestSpecApplyConfiguration) WithExpirationSeconds(value int32) *CertificateSigningRequestSpecApplyConfiguration {\n\tb.ExpirationSeconds = &value\n\treturn b\n}\n\n// WithUsages adds the given value to the Usages field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Usages field.\nfunc (b *CertificateSigningRequestSpecApplyConfiguration) WithUsages(values ...certificatesv1.KeyUsage) *CertificateSigningRequestSpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.Usages = append(b.Usages, values[i])\n\t}\n\treturn b\n}\n\n// WithUsername sets the Username field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Username field is set to the value of the last call.\nfunc (b *CertificateSigningRequestSpecApplyConfiguration) WithUsername(value string) *CertificateSigningRequestSpecApplyConfiguration {\n\tb.Username = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *CertificateSigningRequestSpecApplyConfiguration) WithUID(value string) *CertificateSigningRequestSpecApplyConfiguration {\n\tb.UID = &value\n\treturn b\n}\n\n// WithGroups adds the given value to the Groups field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Groups field.\nfunc (b *CertificateSigningRequestSpecApplyConfiguration) WithGroups(values ...string) *CertificateSigningRequestSpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.Groups = append(b.Groups, values[i])\n\t}\n\treturn b\n}\n\n// WithExtra puts the entries into the Extra field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Extra field,\n// overwriting an existing map entries in Extra field with the same key.\nfunc (b *CertificateSigningRequestSpecApplyConfiguration) WithExtra(entries map[string]certificatesv1.ExtraValue) *CertificateSigningRequestSpecApplyConfiguration {\n\tif b.Extra == nil && len(entries) > 0 {\n\t\tb.Extra = make(map[string]certificatesv1.ExtraValue, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Extra[k] = v\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/certificates/v1/certificatesigningrequeststatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// CertificateSigningRequestStatusApplyConfiguration represents a declarative configuration of the CertificateSigningRequestStatus type for use\n// with apply.\ntype CertificateSigningRequestStatusApplyConfiguration struct {\n\tConditions  []CertificateSigningRequestConditionApplyConfiguration `json:\"conditions,omitempty\"`\n\tCertificate []byte                                                 `json:\"certificate,omitempty\"`\n}\n\n// CertificateSigningRequestStatusApplyConfiguration constructs a declarative configuration of the CertificateSigningRequestStatus type for use with\n// apply.\nfunc CertificateSigningRequestStatus() *CertificateSigningRequestStatusApplyConfiguration {\n\treturn &CertificateSigningRequestStatusApplyConfiguration{}\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *CertificateSigningRequestStatusApplyConfiguration) WithConditions(values ...*CertificateSigningRequestConditionApplyConfiguration) *CertificateSigningRequestStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n\n// WithCertificate adds the given value to the Certificate field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Certificate field.\nfunc (b *CertificateSigningRequestStatusApplyConfiguration) WithCertificate(values ...byte) *CertificateSigningRequestStatusApplyConfiguration {\n\tfor i := range values {\n\t\tb.Certificate = append(b.Certificate, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/certificates/v1alpha1/clustertrustbundle.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcertificatesv1alpha1 \"k8s.io/api/certificates/v1alpha1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ClusterTrustBundleApplyConfiguration represents a declarative configuration of the ClusterTrustBundle type for use\n// with apply.\ntype ClusterTrustBundleApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *ClusterTrustBundleSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// ClusterTrustBundle constructs a declarative configuration of the ClusterTrustBundle type for use with\n// apply.\nfunc ClusterTrustBundle(name string) *ClusterTrustBundleApplyConfiguration {\n\tb := &ClusterTrustBundleApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"ClusterTrustBundle\")\n\tb.WithAPIVersion(\"certificates.k8s.io/v1alpha1\")\n\treturn b\n}\n\n// ExtractClusterTrustBundle extracts the applied configuration owned by fieldManager from\n// clusterTrustBundle. If no managedFields are found in clusterTrustBundle for fieldManager, a\n// ClusterTrustBundleApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// clusterTrustBundle must be a unmodified ClusterTrustBundle API object that was retrieved from the Kubernetes API.\n// ExtractClusterTrustBundle provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractClusterTrustBundle(clusterTrustBundle *certificatesv1alpha1.ClusterTrustBundle, fieldManager string) (*ClusterTrustBundleApplyConfiguration, error) {\n\treturn extractClusterTrustBundle(clusterTrustBundle, fieldManager, \"\")\n}\n\n// ExtractClusterTrustBundleStatus is the same as ExtractClusterTrustBundle except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractClusterTrustBundleStatus(clusterTrustBundle *certificatesv1alpha1.ClusterTrustBundle, fieldManager string) (*ClusterTrustBundleApplyConfiguration, error) {\n\treturn extractClusterTrustBundle(clusterTrustBundle, fieldManager, \"status\")\n}\n\nfunc extractClusterTrustBundle(clusterTrustBundle *certificatesv1alpha1.ClusterTrustBundle, fieldManager string, subresource string) (*ClusterTrustBundleApplyConfiguration, error) {\n\tb := &ClusterTrustBundleApplyConfiguration{}\n\terr := managedfields.ExtractInto(clusterTrustBundle, internal.Parser().Type(\"io.k8s.api.certificates.v1alpha1.ClusterTrustBundle\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(clusterTrustBundle.Name)\n\n\tb.WithKind(\"ClusterTrustBundle\")\n\tb.WithAPIVersion(\"certificates.k8s.io/v1alpha1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ClusterTrustBundleApplyConfiguration) WithKind(value string) *ClusterTrustBundleApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ClusterTrustBundleApplyConfiguration) WithAPIVersion(value string) *ClusterTrustBundleApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ClusterTrustBundleApplyConfiguration) WithName(value string) *ClusterTrustBundleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ClusterTrustBundleApplyConfiguration) WithGenerateName(value string) *ClusterTrustBundleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ClusterTrustBundleApplyConfiguration) WithNamespace(value string) *ClusterTrustBundleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ClusterTrustBundleApplyConfiguration) WithUID(value types.UID) *ClusterTrustBundleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ClusterTrustBundleApplyConfiguration) WithResourceVersion(value string) *ClusterTrustBundleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ClusterTrustBundleApplyConfiguration) WithGeneration(value int64) *ClusterTrustBundleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ClusterTrustBundleApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ClusterTrustBundleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ClusterTrustBundleApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ClusterTrustBundleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ClusterTrustBundleApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ClusterTrustBundleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ClusterTrustBundleApplyConfiguration) WithLabels(entries map[string]string) *ClusterTrustBundleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ClusterTrustBundleApplyConfiguration) WithAnnotations(entries map[string]string) *ClusterTrustBundleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ClusterTrustBundleApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ClusterTrustBundleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ClusterTrustBundleApplyConfiguration) WithFinalizers(values ...string) *ClusterTrustBundleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ClusterTrustBundleApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *ClusterTrustBundleApplyConfiguration) WithSpec(value *ClusterTrustBundleSpecApplyConfiguration) *ClusterTrustBundleApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *ClusterTrustBundleApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/certificates/v1alpha1/clustertrustbundlespec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// ClusterTrustBundleSpecApplyConfiguration represents a declarative configuration of the ClusterTrustBundleSpec type for use\n// with apply.\ntype ClusterTrustBundleSpecApplyConfiguration struct {\n\tSignerName  *string `json:\"signerName,omitempty\"`\n\tTrustBundle *string `json:\"trustBundle,omitempty\"`\n}\n\n// ClusterTrustBundleSpecApplyConfiguration constructs a declarative configuration of the ClusterTrustBundleSpec type for use with\n// apply.\nfunc ClusterTrustBundleSpec() *ClusterTrustBundleSpecApplyConfiguration {\n\treturn &ClusterTrustBundleSpecApplyConfiguration{}\n}\n\n// WithSignerName sets the SignerName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SignerName field is set to the value of the last call.\nfunc (b *ClusterTrustBundleSpecApplyConfiguration) WithSignerName(value string) *ClusterTrustBundleSpecApplyConfiguration {\n\tb.SignerName = &value\n\treturn b\n}\n\n// WithTrustBundle sets the TrustBundle field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TrustBundle field is set to the value of the last call.\nfunc (b *ClusterTrustBundleSpecApplyConfiguration) WithTrustBundle(value string) *ClusterTrustBundleSpecApplyConfiguration {\n\tb.TrustBundle = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/certificates/v1beta1/certificatesigningrequest.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcertificatesv1beta1 \"k8s.io/api/certificates/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// CertificateSigningRequestApplyConfiguration represents a declarative configuration of the CertificateSigningRequest type for use\n// with apply.\ntype CertificateSigningRequestApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *CertificateSigningRequestSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *CertificateSigningRequestStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// CertificateSigningRequest constructs a declarative configuration of the CertificateSigningRequest type for use with\n// apply.\nfunc CertificateSigningRequest(name string) *CertificateSigningRequestApplyConfiguration {\n\tb := &CertificateSigningRequestApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"CertificateSigningRequest\")\n\tb.WithAPIVersion(\"certificates.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractCertificateSigningRequest extracts the applied configuration owned by fieldManager from\n// certificateSigningRequest. If no managedFields are found in certificateSigningRequest for fieldManager, a\n// CertificateSigningRequestApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// certificateSigningRequest must be a unmodified CertificateSigningRequest API object that was retrieved from the Kubernetes API.\n// ExtractCertificateSigningRequest provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractCertificateSigningRequest(certificateSigningRequest *certificatesv1beta1.CertificateSigningRequest, fieldManager string) (*CertificateSigningRequestApplyConfiguration, error) {\n\treturn extractCertificateSigningRequest(certificateSigningRequest, fieldManager, \"\")\n}\n\n// ExtractCertificateSigningRequestStatus is the same as ExtractCertificateSigningRequest except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractCertificateSigningRequestStatus(certificateSigningRequest *certificatesv1beta1.CertificateSigningRequest, fieldManager string) (*CertificateSigningRequestApplyConfiguration, error) {\n\treturn extractCertificateSigningRequest(certificateSigningRequest, fieldManager, \"status\")\n}\n\nfunc extractCertificateSigningRequest(certificateSigningRequest *certificatesv1beta1.CertificateSigningRequest, fieldManager string, subresource string) (*CertificateSigningRequestApplyConfiguration, error) {\n\tb := &CertificateSigningRequestApplyConfiguration{}\n\terr := managedfields.ExtractInto(certificateSigningRequest, internal.Parser().Type(\"io.k8s.api.certificates.v1beta1.CertificateSigningRequest\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(certificateSigningRequest.Name)\n\n\tb.WithKind(\"CertificateSigningRequest\")\n\tb.WithAPIVersion(\"certificates.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithKind(value string) *CertificateSigningRequestApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithAPIVersion(value string) *CertificateSigningRequestApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithName(value string) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithGenerateName(value string) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithNamespace(value string) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithUID(value types.UID) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithResourceVersion(value string) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithGeneration(value int64) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithCreationTimestamp(value metav1.Time) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithLabels(entries map[string]string) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithAnnotations(entries map[string]string) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithFinalizers(values ...string) *CertificateSigningRequestApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *CertificateSigningRequestApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithSpec(value *CertificateSigningRequestSpecApplyConfiguration) *CertificateSigningRequestApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *CertificateSigningRequestApplyConfiguration) WithStatus(value *CertificateSigningRequestStatusApplyConfiguration) *CertificateSigningRequestApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *CertificateSigningRequestApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/certificates/v1beta1/certificatesigningrequestcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcertificatesv1beta1 \"k8s.io/api/certificates/v1beta1\"\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// CertificateSigningRequestConditionApplyConfiguration represents a declarative configuration of the CertificateSigningRequestCondition type for use\n// with apply.\ntype CertificateSigningRequestConditionApplyConfiguration struct {\n\tType               *certificatesv1beta1.RequestConditionType `json:\"type,omitempty\"`\n\tStatus             *v1.ConditionStatus                       `json:\"status,omitempty\"`\n\tReason             *string                                   `json:\"reason,omitempty\"`\n\tMessage            *string                                   `json:\"message,omitempty\"`\n\tLastUpdateTime     *metav1.Time                              `json:\"lastUpdateTime,omitempty\"`\n\tLastTransitionTime *metav1.Time                              `json:\"lastTransitionTime,omitempty\"`\n}\n\n// CertificateSigningRequestConditionApplyConfiguration constructs a declarative configuration of the CertificateSigningRequestCondition type for use with\n// apply.\nfunc CertificateSigningRequestCondition() *CertificateSigningRequestConditionApplyConfiguration {\n\treturn &CertificateSigningRequestConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *CertificateSigningRequestConditionApplyConfiguration) WithType(value certificatesv1beta1.RequestConditionType) *CertificateSigningRequestConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *CertificateSigningRequestConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *CertificateSigningRequestConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *CertificateSigningRequestConditionApplyConfiguration) WithReason(value string) *CertificateSigningRequestConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *CertificateSigningRequestConditionApplyConfiguration) WithMessage(value string) *CertificateSigningRequestConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n\n// WithLastUpdateTime sets the LastUpdateTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastUpdateTime field is set to the value of the last call.\nfunc (b *CertificateSigningRequestConditionApplyConfiguration) WithLastUpdateTime(value metav1.Time) *CertificateSigningRequestConditionApplyConfiguration {\n\tb.LastUpdateTime = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *CertificateSigningRequestConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *CertificateSigningRequestConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/certificates/v1beta1/certificatesigningrequestspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcertificatesv1beta1 \"k8s.io/api/certificates/v1beta1\"\n)\n\n// CertificateSigningRequestSpecApplyConfiguration represents a declarative configuration of the CertificateSigningRequestSpec type for use\n// with apply.\ntype CertificateSigningRequestSpecApplyConfiguration struct {\n\tRequest           []byte                                    `json:\"request,omitempty\"`\n\tSignerName        *string                                   `json:\"signerName,omitempty\"`\n\tExpirationSeconds *int32                                    `json:\"expirationSeconds,omitempty\"`\n\tUsages            []certificatesv1beta1.KeyUsage            `json:\"usages,omitempty\"`\n\tUsername          *string                                   `json:\"username,omitempty\"`\n\tUID               *string                                   `json:\"uid,omitempty\"`\n\tGroups            []string                                  `json:\"groups,omitempty\"`\n\tExtra             map[string]certificatesv1beta1.ExtraValue `json:\"extra,omitempty\"`\n}\n\n// CertificateSigningRequestSpecApplyConfiguration constructs a declarative configuration of the CertificateSigningRequestSpec type for use with\n// apply.\nfunc CertificateSigningRequestSpec() *CertificateSigningRequestSpecApplyConfiguration {\n\treturn &CertificateSigningRequestSpecApplyConfiguration{}\n}\n\n// WithRequest adds the given value to the Request field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Request field.\nfunc (b *CertificateSigningRequestSpecApplyConfiguration) WithRequest(values ...byte) *CertificateSigningRequestSpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.Request = append(b.Request, values[i])\n\t}\n\treturn b\n}\n\n// WithSignerName sets the SignerName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SignerName field is set to the value of the last call.\nfunc (b *CertificateSigningRequestSpecApplyConfiguration) WithSignerName(value string) *CertificateSigningRequestSpecApplyConfiguration {\n\tb.SignerName = &value\n\treturn b\n}\n\n// WithExpirationSeconds sets the ExpirationSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ExpirationSeconds field is set to the value of the last call.\nfunc (b *CertificateSigningRequestSpecApplyConfiguration) WithExpirationSeconds(value int32) *CertificateSigningRequestSpecApplyConfiguration {\n\tb.ExpirationSeconds = &value\n\treturn b\n}\n\n// WithUsages adds the given value to the Usages field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Usages field.\nfunc (b *CertificateSigningRequestSpecApplyConfiguration) WithUsages(values ...certificatesv1beta1.KeyUsage) *CertificateSigningRequestSpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.Usages = append(b.Usages, values[i])\n\t}\n\treturn b\n}\n\n// WithUsername sets the Username field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Username field is set to the value of the last call.\nfunc (b *CertificateSigningRequestSpecApplyConfiguration) WithUsername(value string) *CertificateSigningRequestSpecApplyConfiguration {\n\tb.Username = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *CertificateSigningRequestSpecApplyConfiguration) WithUID(value string) *CertificateSigningRequestSpecApplyConfiguration {\n\tb.UID = &value\n\treturn b\n}\n\n// WithGroups adds the given value to the Groups field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Groups field.\nfunc (b *CertificateSigningRequestSpecApplyConfiguration) WithGroups(values ...string) *CertificateSigningRequestSpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.Groups = append(b.Groups, values[i])\n\t}\n\treturn b\n}\n\n// WithExtra puts the entries into the Extra field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Extra field,\n// overwriting an existing map entries in Extra field with the same key.\nfunc (b *CertificateSigningRequestSpecApplyConfiguration) WithExtra(entries map[string]certificatesv1beta1.ExtraValue) *CertificateSigningRequestSpecApplyConfiguration {\n\tif b.Extra == nil && len(entries) > 0 {\n\t\tb.Extra = make(map[string]certificatesv1beta1.ExtraValue, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Extra[k] = v\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/certificates/v1beta1/certificatesigningrequeststatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// CertificateSigningRequestStatusApplyConfiguration represents a declarative configuration of the CertificateSigningRequestStatus type for use\n// with apply.\ntype CertificateSigningRequestStatusApplyConfiguration struct {\n\tConditions  []CertificateSigningRequestConditionApplyConfiguration `json:\"conditions,omitempty\"`\n\tCertificate []byte                                                 `json:\"certificate,omitempty\"`\n}\n\n// CertificateSigningRequestStatusApplyConfiguration constructs a declarative configuration of the CertificateSigningRequestStatus type for use with\n// apply.\nfunc CertificateSigningRequestStatus() *CertificateSigningRequestStatusApplyConfiguration {\n\treturn &CertificateSigningRequestStatusApplyConfiguration{}\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *CertificateSigningRequestStatusApplyConfiguration) WithConditions(values ...*CertificateSigningRequestConditionApplyConfiguration) *CertificateSigningRequestStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n\n// WithCertificate adds the given value to the Certificate field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Certificate field.\nfunc (b *CertificateSigningRequestStatusApplyConfiguration) WithCertificate(values ...byte) *CertificateSigningRequestStatusApplyConfiguration {\n\tfor i := range values {\n\t\tb.Certificate = append(b.Certificate, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/coordination/v1/lease.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcoordinationv1 \"k8s.io/api/coordination/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// LeaseApplyConfiguration represents a declarative configuration of the Lease type for use\n// with apply.\ntype LeaseApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                                 *LeaseSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// Lease constructs a declarative configuration of the Lease type for use with\n// apply.\nfunc Lease(name, namespace string) *LeaseApplyConfiguration {\n\tb := &LeaseApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Lease\")\n\tb.WithAPIVersion(\"coordination.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractLease extracts the applied configuration owned by fieldManager from\n// lease. If no managedFields are found in lease for fieldManager, a\n// LeaseApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// lease must be a unmodified Lease API object that was retrieved from the Kubernetes API.\n// ExtractLease provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractLease(lease *coordinationv1.Lease, fieldManager string) (*LeaseApplyConfiguration, error) {\n\treturn extractLease(lease, fieldManager, \"\")\n}\n\n// ExtractLeaseStatus is the same as ExtractLease except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractLeaseStatus(lease *coordinationv1.Lease, fieldManager string) (*LeaseApplyConfiguration, error) {\n\treturn extractLease(lease, fieldManager, \"status\")\n}\n\nfunc extractLease(lease *coordinationv1.Lease, fieldManager string, subresource string) (*LeaseApplyConfiguration, error) {\n\tb := &LeaseApplyConfiguration{}\n\terr := managedfields.ExtractInto(lease, internal.Parser().Type(\"io.k8s.api.coordination.v1.Lease\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(lease.Name)\n\tb.WithNamespace(lease.Namespace)\n\n\tb.WithKind(\"Lease\")\n\tb.WithAPIVersion(\"coordination.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithKind(value string) *LeaseApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithAPIVersion(value string) *LeaseApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithName(value string) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithGenerateName(value string) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithNamespace(value string) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithUID(value types.UID) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithResourceVersion(value string) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithGeneration(value int64) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *LeaseApplyConfiguration) WithLabels(entries map[string]string) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *LeaseApplyConfiguration) WithAnnotations(entries map[string]string) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *LeaseApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *LeaseApplyConfiguration) WithFinalizers(values ...string) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *LeaseApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithSpec(value *LeaseSpecApplyConfiguration) *LeaseApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *LeaseApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/coordination/v1/leasespec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcoordinationv1 \"k8s.io/api/coordination/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// LeaseSpecApplyConfiguration represents a declarative configuration of the LeaseSpec type for use\n// with apply.\ntype LeaseSpecApplyConfiguration struct {\n\tHolderIdentity       *string                                  `json:\"holderIdentity,omitempty\"`\n\tLeaseDurationSeconds *int32                                   `json:\"leaseDurationSeconds,omitempty\"`\n\tAcquireTime          *metav1.MicroTime                        `json:\"acquireTime,omitempty\"`\n\tRenewTime            *metav1.MicroTime                        `json:\"renewTime,omitempty\"`\n\tLeaseTransitions     *int32                                   `json:\"leaseTransitions,omitempty\"`\n\tStrategy             *coordinationv1.CoordinatedLeaseStrategy `json:\"strategy,omitempty\"`\n\tPreferredHolder      *string                                  `json:\"preferredHolder,omitempty\"`\n}\n\n// LeaseSpecApplyConfiguration constructs a declarative configuration of the LeaseSpec type for use with\n// apply.\nfunc LeaseSpec() *LeaseSpecApplyConfiguration {\n\treturn &LeaseSpecApplyConfiguration{}\n}\n\n// WithHolderIdentity sets the HolderIdentity field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HolderIdentity field is set to the value of the last call.\nfunc (b *LeaseSpecApplyConfiguration) WithHolderIdentity(value string) *LeaseSpecApplyConfiguration {\n\tb.HolderIdentity = &value\n\treturn b\n}\n\n// WithLeaseDurationSeconds sets the LeaseDurationSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LeaseDurationSeconds field is set to the value of the last call.\nfunc (b *LeaseSpecApplyConfiguration) WithLeaseDurationSeconds(value int32) *LeaseSpecApplyConfiguration {\n\tb.LeaseDurationSeconds = &value\n\treturn b\n}\n\n// WithAcquireTime sets the AcquireTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AcquireTime field is set to the value of the last call.\nfunc (b *LeaseSpecApplyConfiguration) WithAcquireTime(value metav1.MicroTime) *LeaseSpecApplyConfiguration {\n\tb.AcquireTime = &value\n\treturn b\n}\n\n// WithRenewTime sets the RenewTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RenewTime field is set to the value of the last call.\nfunc (b *LeaseSpecApplyConfiguration) WithRenewTime(value metav1.MicroTime) *LeaseSpecApplyConfiguration {\n\tb.RenewTime = &value\n\treturn b\n}\n\n// WithLeaseTransitions sets the LeaseTransitions field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LeaseTransitions field is set to the value of the last call.\nfunc (b *LeaseSpecApplyConfiguration) WithLeaseTransitions(value int32) *LeaseSpecApplyConfiguration {\n\tb.LeaseTransitions = &value\n\treturn b\n}\n\n// WithStrategy sets the Strategy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Strategy field is set to the value of the last call.\nfunc (b *LeaseSpecApplyConfiguration) WithStrategy(value coordinationv1.CoordinatedLeaseStrategy) *LeaseSpecApplyConfiguration {\n\tb.Strategy = &value\n\treturn b\n}\n\n// WithPreferredHolder sets the PreferredHolder field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PreferredHolder field is set to the value of the last call.\nfunc (b *LeaseSpecApplyConfiguration) WithPreferredHolder(value string) *LeaseSpecApplyConfiguration {\n\tb.PreferredHolder = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/coordination/v1alpha2/leasecandidate.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha2\n\nimport (\n\tcoordinationv1alpha2 \"k8s.io/api/coordination/v1alpha2\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// LeaseCandidateApplyConfiguration represents a declarative configuration of the LeaseCandidate type for use\n// with apply.\ntype LeaseCandidateApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *LeaseCandidateSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// LeaseCandidate constructs a declarative configuration of the LeaseCandidate type for use with\n// apply.\nfunc LeaseCandidate(name, namespace string) *LeaseCandidateApplyConfiguration {\n\tb := &LeaseCandidateApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"LeaseCandidate\")\n\tb.WithAPIVersion(\"coordination.k8s.io/v1alpha2\")\n\treturn b\n}\n\n// ExtractLeaseCandidate extracts the applied configuration owned by fieldManager from\n// leaseCandidate. If no managedFields are found in leaseCandidate for fieldManager, a\n// LeaseCandidateApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// leaseCandidate must be a unmodified LeaseCandidate API object that was retrieved from the Kubernetes API.\n// ExtractLeaseCandidate provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractLeaseCandidate(leaseCandidate *coordinationv1alpha2.LeaseCandidate, fieldManager string) (*LeaseCandidateApplyConfiguration, error) {\n\treturn extractLeaseCandidate(leaseCandidate, fieldManager, \"\")\n}\n\n// ExtractLeaseCandidateStatus is the same as ExtractLeaseCandidate except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractLeaseCandidateStatus(leaseCandidate *coordinationv1alpha2.LeaseCandidate, fieldManager string) (*LeaseCandidateApplyConfiguration, error) {\n\treturn extractLeaseCandidate(leaseCandidate, fieldManager, \"status\")\n}\n\nfunc extractLeaseCandidate(leaseCandidate *coordinationv1alpha2.LeaseCandidate, fieldManager string, subresource string) (*LeaseCandidateApplyConfiguration, error) {\n\tb := &LeaseCandidateApplyConfiguration{}\n\terr := managedfields.ExtractInto(leaseCandidate, internal.Parser().Type(\"io.k8s.api.coordination.v1alpha2.LeaseCandidate\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(leaseCandidate.Name)\n\tb.WithNamespace(leaseCandidate.Namespace)\n\n\tb.WithKind(\"LeaseCandidate\")\n\tb.WithAPIVersion(\"coordination.k8s.io/v1alpha2\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *LeaseCandidateApplyConfiguration) WithKind(value string) *LeaseCandidateApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *LeaseCandidateApplyConfiguration) WithAPIVersion(value string) *LeaseCandidateApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *LeaseCandidateApplyConfiguration) WithName(value string) *LeaseCandidateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *LeaseCandidateApplyConfiguration) WithGenerateName(value string) *LeaseCandidateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *LeaseCandidateApplyConfiguration) WithNamespace(value string) *LeaseCandidateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *LeaseCandidateApplyConfiguration) WithUID(value types.UID) *LeaseCandidateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *LeaseCandidateApplyConfiguration) WithResourceVersion(value string) *LeaseCandidateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *LeaseCandidateApplyConfiguration) WithGeneration(value int64) *LeaseCandidateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *LeaseCandidateApplyConfiguration) WithCreationTimestamp(value metav1.Time) *LeaseCandidateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *LeaseCandidateApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *LeaseCandidateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *LeaseCandidateApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *LeaseCandidateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *LeaseCandidateApplyConfiguration) WithLabels(entries map[string]string) *LeaseCandidateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *LeaseCandidateApplyConfiguration) WithAnnotations(entries map[string]string) *LeaseCandidateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *LeaseCandidateApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *LeaseCandidateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *LeaseCandidateApplyConfiguration) WithFinalizers(values ...string) *LeaseCandidateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *LeaseCandidateApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *LeaseCandidateApplyConfiguration) WithSpec(value *LeaseCandidateSpecApplyConfiguration) *LeaseCandidateApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *LeaseCandidateApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/coordination/v1alpha2/leasecandidatespec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha2\n\nimport (\n\tcoordinationv1 \"k8s.io/api/coordination/v1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// LeaseCandidateSpecApplyConfiguration represents a declarative configuration of the LeaseCandidateSpec type for use\n// with apply.\ntype LeaseCandidateSpecApplyConfiguration struct {\n\tLeaseName        *string                                  `json:\"leaseName,omitempty\"`\n\tPingTime         *v1.MicroTime                            `json:\"pingTime,omitempty\"`\n\tRenewTime        *v1.MicroTime                            `json:\"renewTime,omitempty\"`\n\tBinaryVersion    *string                                  `json:\"binaryVersion,omitempty\"`\n\tEmulationVersion *string                                  `json:\"emulationVersion,omitempty\"`\n\tStrategy         *coordinationv1.CoordinatedLeaseStrategy `json:\"strategy,omitempty\"`\n}\n\n// LeaseCandidateSpecApplyConfiguration constructs a declarative configuration of the LeaseCandidateSpec type for use with\n// apply.\nfunc LeaseCandidateSpec() *LeaseCandidateSpecApplyConfiguration {\n\treturn &LeaseCandidateSpecApplyConfiguration{}\n}\n\n// WithLeaseName sets the LeaseName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LeaseName field is set to the value of the last call.\nfunc (b *LeaseCandidateSpecApplyConfiguration) WithLeaseName(value string) *LeaseCandidateSpecApplyConfiguration {\n\tb.LeaseName = &value\n\treturn b\n}\n\n// WithPingTime sets the PingTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PingTime field is set to the value of the last call.\nfunc (b *LeaseCandidateSpecApplyConfiguration) WithPingTime(value v1.MicroTime) *LeaseCandidateSpecApplyConfiguration {\n\tb.PingTime = &value\n\treturn b\n}\n\n// WithRenewTime sets the RenewTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RenewTime field is set to the value of the last call.\nfunc (b *LeaseCandidateSpecApplyConfiguration) WithRenewTime(value v1.MicroTime) *LeaseCandidateSpecApplyConfiguration {\n\tb.RenewTime = &value\n\treturn b\n}\n\n// WithBinaryVersion sets the BinaryVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the BinaryVersion field is set to the value of the last call.\nfunc (b *LeaseCandidateSpecApplyConfiguration) WithBinaryVersion(value string) *LeaseCandidateSpecApplyConfiguration {\n\tb.BinaryVersion = &value\n\treturn b\n}\n\n// WithEmulationVersion sets the EmulationVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the EmulationVersion field is set to the value of the last call.\nfunc (b *LeaseCandidateSpecApplyConfiguration) WithEmulationVersion(value string) *LeaseCandidateSpecApplyConfiguration {\n\tb.EmulationVersion = &value\n\treturn b\n}\n\n// WithStrategy sets the Strategy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Strategy field is set to the value of the last call.\nfunc (b *LeaseCandidateSpecApplyConfiguration) WithStrategy(value coordinationv1.CoordinatedLeaseStrategy) *LeaseCandidateSpecApplyConfiguration {\n\tb.Strategy = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/coordination/v1beta1/lease.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcoordinationv1beta1 \"k8s.io/api/coordination/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// LeaseApplyConfiguration represents a declarative configuration of the Lease type for use\n// with apply.\ntype LeaseApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *LeaseSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// Lease constructs a declarative configuration of the Lease type for use with\n// apply.\nfunc Lease(name, namespace string) *LeaseApplyConfiguration {\n\tb := &LeaseApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Lease\")\n\tb.WithAPIVersion(\"coordination.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractLease extracts the applied configuration owned by fieldManager from\n// lease. If no managedFields are found in lease for fieldManager, a\n// LeaseApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// lease must be a unmodified Lease API object that was retrieved from the Kubernetes API.\n// ExtractLease provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractLease(lease *coordinationv1beta1.Lease, fieldManager string) (*LeaseApplyConfiguration, error) {\n\treturn extractLease(lease, fieldManager, \"\")\n}\n\n// ExtractLeaseStatus is the same as ExtractLease except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractLeaseStatus(lease *coordinationv1beta1.Lease, fieldManager string) (*LeaseApplyConfiguration, error) {\n\treturn extractLease(lease, fieldManager, \"status\")\n}\n\nfunc extractLease(lease *coordinationv1beta1.Lease, fieldManager string, subresource string) (*LeaseApplyConfiguration, error) {\n\tb := &LeaseApplyConfiguration{}\n\terr := managedfields.ExtractInto(lease, internal.Parser().Type(\"io.k8s.api.coordination.v1beta1.Lease\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(lease.Name)\n\tb.WithNamespace(lease.Namespace)\n\n\tb.WithKind(\"Lease\")\n\tb.WithAPIVersion(\"coordination.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithKind(value string) *LeaseApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithAPIVersion(value string) *LeaseApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithName(value string) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithGenerateName(value string) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithNamespace(value string) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithUID(value types.UID) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithResourceVersion(value string) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithGeneration(value int64) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithCreationTimestamp(value metav1.Time) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *LeaseApplyConfiguration) WithLabels(entries map[string]string) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *LeaseApplyConfiguration) WithAnnotations(entries map[string]string) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *LeaseApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *LeaseApplyConfiguration) WithFinalizers(values ...string) *LeaseApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *LeaseApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *LeaseApplyConfiguration) WithSpec(value *LeaseSpecApplyConfiguration) *LeaseApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *LeaseApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/coordination/v1beta1/leasespec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcoordinationv1 \"k8s.io/api/coordination/v1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// LeaseSpecApplyConfiguration represents a declarative configuration of the LeaseSpec type for use\n// with apply.\ntype LeaseSpecApplyConfiguration struct {\n\tHolderIdentity       *string                                  `json:\"holderIdentity,omitempty\"`\n\tLeaseDurationSeconds *int32                                   `json:\"leaseDurationSeconds,omitempty\"`\n\tAcquireTime          *v1.MicroTime                            `json:\"acquireTime,omitempty\"`\n\tRenewTime            *v1.MicroTime                            `json:\"renewTime,omitempty\"`\n\tLeaseTransitions     *int32                                   `json:\"leaseTransitions,omitempty\"`\n\tStrategy             *coordinationv1.CoordinatedLeaseStrategy `json:\"strategy,omitempty\"`\n\tPreferredHolder      *string                                  `json:\"preferredHolder,omitempty\"`\n}\n\n// LeaseSpecApplyConfiguration constructs a declarative configuration of the LeaseSpec type for use with\n// apply.\nfunc LeaseSpec() *LeaseSpecApplyConfiguration {\n\treturn &LeaseSpecApplyConfiguration{}\n}\n\n// WithHolderIdentity sets the HolderIdentity field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HolderIdentity field is set to the value of the last call.\nfunc (b *LeaseSpecApplyConfiguration) WithHolderIdentity(value string) *LeaseSpecApplyConfiguration {\n\tb.HolderIdentity = &value\n\treturn b\n}\n\n// WithLeaseDurationSeconds sets the LeaseDurationSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LeaseDurationSeconds field is set to the value of the last call.\nfunc (b *LeaseSpecApplyConfiguration) WithLeaseDurationSeconds(value int32) *LeaseSpecApplyConfiguration {\n\tb.LeaseDurationSeconds = &value\n\treturn b\n}\n\n// WithAcquireTime sets the AcquireTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AcquireTime field is set to the value of the last call.\nfunc (b *LeaseSpecApplyConfiguration) WithAcquireTime(value v1.MicroTime) *LeaseSpecApplyConfiguration {\n\tb.AcquireTime = &value\n\treturn b\n}\n\n// WithRenewTime sets the RenewTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RenewTime field is set to the value of the last call.\nfunc (b *LeaseSpecApplyConfiguration) WithRenewTime(value v1.MicroTime) *LeaseSpecApplyConfiguration {\n\tb.RenewTime = &value\n\treturn b\n}\n\n// WithLeaseTransitions sets the LeaseTransitions field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LeaseTransitions field is set to the value of the last call.\nfunc (b *LeaseSpecApplyConfiguration) WithLeaseTransitions(value int32) *LeaseSpecApplyConfiguration {\n\tb.LeaseTransitions = &value\n\treturn b\n}\n\n// WithStrategy sets the Strategy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Strategy field is set to the value of the last call.\nfunc (b *LeaseSpecApplyConfiguration) WithStrategy(value coordinationv1.CoordinatedLeaseStrategy) *LeaseSpecApplyConfiguration {\n\tb.Strategy = &value\n\treturn b\n}\n\n// WithPreferredHolder sets the PreferredHolder field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PreferredHolder field is set to the value of the last call.\nfunc (b *LeaseSpecApplyConfiguration) WithPreferredHolder(value string) *LeaseSpecApplyConfiguration {\n\tb.PreferredHolder = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/affinity.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// AffinityApplyConfiguration represents a declarative configuration of the Affinity type for use\n// with apply.\ntype AffinityApplyConfiguration struct {\n\tNodeAffinity    *NodeAffinityApplyConfiguration    `json:\"nodeAffinity,omitempty\"`\n\tPodAffinity     *PodAffinityApplyConfiguration     `json:\"podAffinity,omitempty\"`\n\tPodAntiAffinity *PodAntiAffinityApplyConfiguration `json:\"podAntiAffinity,omitempty\"`\n}\n\n// AffinityApplyConfiguration constructs a declarative configuration of the Affinity type for use with\n// apply.\nfunc Affinity() *AffinityApplyConfiguration {\n\treturn &AffinityApplyConfiguration{}\n}\n\n// WithNodeAffinity sets the NodeAffinity field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeAffinity field is set to the value of the last call.\nfunc (b *AffinityApplyConfiguration) WithNodeAffinity(value *NodeAffinityApplyConfiguration) *AffinityApplyConfiguration {\n\tb.NodeAffinity = value\n\treturn b\n}\n\n// WithPodAffinity sets the PodAffinity field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PodAffinity field is set to the value of the last call.\nfunc (b *AffinityApplyConfiguration) WithPodAffinity(value *PodAffinityApplyConfiguration) *AffinityApplyConfiguration {\n\tb.PodAffinity = value\n\treturn b\n}\n\n// WithPodAntiAffinity sets the PodAntiAffinity field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PodAntiAffinity field is set to the value of the last call.\nfunc (b *AffinityApplyConfiguration) WithPodAntiAffinity(value *PodAntiAffinityApplyConfiguration) *AffinityApplyConfiguration {\n\tb.PodAntiAffinity = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/apparmorprofile.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// AppArmorProfileApplyConfiguration represents a declarative configuration of the AppArmorProfile type for use\n// with apply.\ntype AppArmorProfileApplyConfiguration struct {\n\tType             *corev1.AppArmorProfileType `json:\"type,omitempty\"`\n\tLocalhostProfile *string                     `json:\"localhostProfile,omitempty\"`\n}\n\n// AppArmorProfileApplyConfiguration constructs a declarative configuration of the AppArmorProfile type for use with\n// apply.\nfunc AppArmorProfile() *AppArmorProfileApplyConfiguration {\n\treturn &AppArmorProfileApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *AppArmorProfileApplyConfiguration) WithType(value corev1.AppArmorProfileType) *AppArmorProfileApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithLocalhostProfile sets the LocalhostProfile field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LocalhostProfile field is set to the value of the last call.\nfunc (b *AppArmorProfileApplyConfiguration) WithLocalhostProfile(value string) *AppArmorProfileApplyConfiguration {\n\tb.LocalhostProfile = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/attachedvolume.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// AttachedVolumeApplyConfiguration represents a declarative configuration of the AttachedVolume type for use\n// with apply.\ntype AttachedVolumeApplyConfiguration struct {\n\tName       *corev1.UniqueVolumeName `json:\"name,omitempty\"`\n\tDevicePath *string                  `json:\"devicePath,omitempty\"`\n}\n\n// AttachedVolumeApplyConfiguration constructs a declarative configuration of the AttachedVolume type for use with\n// apply.\nfunc AttachedVolume() *AttachedVolumeApplyConfiguration {\n\treturn &AttachedVolumeApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *AttachedVolumeApplyConfiguration) WithName(value corev1.UniqueVolumeName) *AttachedVolumeApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithDevicePath sets the DevicePath field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DevicePath field is set to the value of the last call.\nfunc (b *AttachedVolumeApplyConfiguration) WithDevicePath(value string) *AttachedVolumeApplyConfiguration {\n\tb.DevicePath = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/awselasticblockstorevolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// AWSElasticBlockStoreVolumeSourceApplyConfiguration represents a declarative configuration of the AWSElasticBlockStoreVolumeSource type for use\n// with apply.\ntype AWSElasticBlockStoreVolumeSourceApplyConfiguration struct {\n\tVolumeID  *string `json:\"volumeID,omitempty\"`\n\tFSType    *string `json:\"fsType,omitempty\"`\n\tPartition *int32  `json:\"partition,omitempty\"`\n\tReadOnly  *bool   `json:\"readOnly,omitempty\"`\n}\n\n// AWSElasticBlockStoreVolumeSourceApplyConfiguration constructs a declarative configuration of the AWSElasticBlockStoreVolumeSource type for use with\n// apply.\nfunc AWSElasticBlockStoreVolumeSource() *AWSElasticBlockStoreVolumeSourceApplyConfiguration {\n\treturn &AWSElasticBlockStoreVolumeSourceApplyConfiguration{}\n}\n\n// WithVolumeID sets the VolumeID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VolumeID field is set to the value of the last call.\nfunc (b *AWSElasticBlockStoreVolumeSourceApplyConfiguration) WithVolumeID(value string) *AWSElasticBlockStoreVolumeSourceApplyConfiguration {\n\tb.VolumeID = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *AWSElasticBlockStoreVolumeSourceApplyConfiguration) WithFSType(value string) *AWSElasticBlockStoreVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n\n// WithPartition sets the Partition field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Partition field is set to the value of the last call.\nfunc (b *AWSElasticBlockStoreVolumeSourceApplyConfiguration) WithPartition(value int32) *AWSElasticBlockStoreVolumeSourceApplyConfiguration {\n\tb.Partition = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *AWSElasticBlockStoreVolumeSourceApplyConfiguration) WithReadOnly(value bool) *AWSElasticBlockStoreVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/azurediskvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// AzureDiskVolumeSourceApplyConfiguration represents a declarative configuration of the AzureDiskVolumeSource type for use\n// with apply.\ntype AzureDiskVolumeSourceApplyConfiguration struct {\n\tDiskName    *string                          `json:\"diskName,omitempty\"`\n\tDataDiskURI *string                          `json:\"diskURI,omitempty\"`\n\tCachingMode *corev1.AzureDataDiskCachingMode `json:\"cachingMode,omitempty\"`\n\tFSType      *string                          `json:\"fsType,omitempty\"`\n\tReadOnly    *bool                            `json:\"readOnly,omitempty\"`\n\tKind        *corev1.AzureDataDiskKind        `json:\"kind,omitempty\"`\n}\n\n// AzureDiskVolumeSourceApplyConfiguration constructs a declarative configuration of the AzureDiskVolumeSource type for use with\n// apply.\nfunc AzureDiskVolumeSource() *AzureDiskVolumeSourceApplyConfiguration {\n\treturn &AzureDiskVolumeSourceApplyConfiguration{}\n}\n\n// WithDiskName sets the DiskName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DiskName field is set to the value of the last call.\nfunc (b *AzureDiskVolumeSourceApplyConfiguration) WithDiskName(value string) *AzureDiskVolumeSourceApplyConfiguration {\n\tb.DiskName = &value\n\treturn b\n}\n\n// WithDataDiskURI sets the DataDiskURI field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DataDiskURI field is set to the value of the last call.\nfunc (b *AzureDiskVolumeSourceApplyConfiguration) WithDataDiskURI(value string) *AzureDiskVolumeSourceApplyConfiguration {\n\tb.DataDiskURI = &value\n\treturn b\n}\n\n// WithCachingMode sets the CachingMode field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CachingMode field is set to the value of the last call.\nfunc (b *AzureDiskVolumeSourceApplyConfiguration) WithCachingMode(value corev1.AzureDataDiskCachingMode) *AzureDiskVolumeSourceApplyConfiguration {\n\tb.CachingMode = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *AzureDiskVolumeSourceApplyConfiguration) WithFSType(value string) *AzureDiskVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *AzureDiskVolumeSourceApplyConfiguration) WithReadOnly(value bool) *AzureDiskVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *AzureDiskVolumeSourceApplyConfiguration) WithKind(value corev1.AzureDataDiskKind) *AzureDiskVolumeSourceApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/azurefilepersistentvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// AzureFilePersistentVolumeSourceApplyConfiguration represents a declarative configuration of the AzureFilePersistentVolumeSource type for use\n// with apply.\ntype AzureFilePersistentVolumeSourceApplyConfiguration struct {\n\tSecretName      *string `json:\"secretName,omitempty\"`\n\tShareName       *string `json:\"shareName,omitempty\"`\n\tReadOnly        *bool   `json:\"readOnly,omitempty\"`\n\tSecretNamespace *string `json:\"secretNamespace,omitempty\"`\n}\n\n// AzureFilePersistentVolumeSourceApplyConfiguration constructs a declarative configuration of the AzureFilePersistentVolumeSource type for use with\n// apply.\nfunc AzureFilePersistentVolumeSource() *AzureFilePersistentVolumeSourceApplyConfiguration {\n\treturn &AzureFilePersistentVolumeSourceApplyConfiguration{}\n}\n\n// WithSecretName sets the SecretName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretName field is set to the value of the last call.\nfunc (b *AzureFilePersistentVolumeSourceApplyConfiguration) WithSecretName(value string) *AzureFilePersistentVolumeSourceApplyConfiguration {\n\tb.SecretName = &value\n\treturn b\n}\n\n// WithShareName sets the ShareName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ShareName field is set to the value of the last call.\nfunc (b *AzureFilePersistentVolumeSourceApplyConfiguration) WithShareName(value string) *AzureFilePersistentVolumeSourceApplyConfiguration {\n\tb.ShareName = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *AzureFilePersistentVolumeSourceApplyConfiguration) WithReadOnly(value bool) *AzureFilePersistentVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n\n// WithSecretNamespace sets the SecretNamespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretNamespace field is set to the value of the last call.\nfunc (b *AzureFilePersistentVolumeSourceApplyConfiguration) WithSecretNamespace(value string) *AzureFilePersistentVolumeSourceApplyConfiguration {\n\tb.SecretNamespace = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/azurefilevolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// AzureFileVolumeSourceApplyConfiguration represents a declarative configuration of the AzureFileVolumeSource type for use\n// with apply.\ntype AzureFileVolumeSourceApplyConfiguration struct {\n\tSecretName *string `json:\"secretName,omitempty\"`\n\tShareName  *string `json:\"shareName,omitempty\"`\n\tReadOnly   *bool   `json:\"readOnly,omitempty\"`\n}\n\n// AzureFileVolumeSourceApplyConfiguration constructs a declarative configuration of the AzureFileVolumeSource type for use with\n// apply.\nfunc AzureFileVolumeSource() *AzureFileVolumeSourceApplyConfiguration {\n\treturn &AzureFileVolumeSourceApplyConfiguration{}\n}\n\n// WithSecretName sets the SecretName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretName field is set to the value of the last call.\nfunc (b *AzureFileVolumeSourceApplyConfiguration) WithSecretName(value string) *AzureFileVolumeSourceApplyConfiguration {\n\tb.SecretName = &value\n\treturn b\n}\n\n// WithShareName sets the ShareName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ShareName field is set to the value of the last call.\nfunc (b *AzureFileVolumeSourceApplyConfiguration) WithShareName(value string) *AzureFileVolumeSourceApplyConfiguration {\n\tb.ShareName = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *AzureFileVolumeSourceApplyConfiguration) WithReadOnly(value bool) *AzureFileVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/capabilities.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// CapabilitiesApplyConfiguration represents a declarative configuration of the Capabilities type for use\n// with apply.\ntype CapabilitiesApplyConfiguration struct {\n\tAdd  []corev1.Capability `json:\"add,omitempty\"`\n\tDrop []corev1.Capability `json:\"drop,omitempty\"`\n}\n\n// CapabilitiesApplyConfiguration constructs a declarative configuration of the Capabilities type for use with\n// apply.\nfunc Capabilities() *CapabilitiesApplyConfiguration {\n\treturn &CapabilitiesApplyConfiguration{}\n}\n\n// WithAdd adds the given value to the Add field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Add field.\nfunc (b *CapabilitiesApplyConfiguration) WithAdd(values ...corev1.Capability) *CapabilitiesApplyConfiguration {\n\tfor i := range values {\n\t\tb.Add = append(b.Add, values[i])\n\t}\n\treturn b\n}\n\n// WithDrop adds the given value to the Drop field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Drop field.\nfunc (b *CapabilitiesApplyConfiguration) WithDrop(values ...corev1.Capability) *CapabilitiesApplyConfiguration {\n\tfor i := range values {\n\t\tb.Drop = append(b.Drop, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/cephfspersistentvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// CephFSPersistentVolumeSourceApplyConfiguration represents a declarative configuration of the CephFSPersistentVolumeSource type for use\n// with apply.\ntype CephFSPersistentVolumeSourceApplyConfiguration struct {\n\tMonitors   []string                           `json:\"monitors,omitempty\"`\n\tPath       *string                            `json:\"path,omitempty\"`\n\tUser       *string                            `json:\"user,omitempty\"`\n\tSecretFile *string                            `json:\"secretFile,omitempty\"`\n\tSecretRef  *SecretReferenceApplyConfiguration `json:\"secretRef,omitempty\"`\n\tReadOnly   *bool                              `json:\"readOnly,omitempty\"`\n}\n\n// CephFSPersistentVolumeSourceApplyConfiguration constructs a declarative configuration of the CephFSPersistentVolumeSource type for use with\n// apply.\nfunc CephFSPersistentVolumeSource() *CephFSPersistentVolumeSourceApplyConfiguration {\n\treturn &CephFSPersistentVolumeSourceApplyConfiguration{}\n}\n\n// WithMonitors adds the given value to the Monitors field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Monitors field.\nfunc (b *CephFSPersistentVolumeSourceApplyConfiguration) WithMonitors(values ...string) *CephFSPersistentVolumeSourceApplyConfiguration {\n\tfor i := range values {\n\t\tb.Monitors = append(b.Monitors, values[i])\n\t}\n\treturn b\n}\n\n// WithPath sets the Path field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Path field is set to the value of the last call.\nfunc (b *CephFSPersistentVolumeSourceApplyConfiguration) WithPath(value string) *CephFSPersistentVolumeSourceApplyConfiguration {\n\tb.Path = &value\n\treturn b\n}\n\n// WithUser sets the User field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the User field is set to the value of the last call.\nfunc (b *CephFSPersistentVolumeSourceApplyConfiguration) WithUser(value string) *CephFSPersistentVolumeSourceApplyConfiguration {\n\tb.User = &value\n\treturn b\n}\n\n// WithSecretFile sets the SecretFile field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretFile field is set to the value of the last call.\nfunc (b *CephFSPersistentVolumeSourceApplyConfiguration) WithSecretFile(value string) *CephFSPersistentVolumeSourceApplyConfiguration {\n\tb.SecretFile = &value\n\treturn b\n}\n\n// WithSecretRef sets the SecretRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretRef field is set to the value of the last call.\nfunc (b *CephFSPersistentVolumeSourceApplyConfiguration) WithSecretRef(value *SecretReferenceApplyConfiguration) *CephFSPersistentVolumeSourceApplyConfiguration {\n\tb.SecretRef = value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *CephFSPersistentVolumeSourceApplyConfiguration) WithReadOnly(value bool) *CephFSPersistentVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/cephfsvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// CephFSVolumeSourceApplyConfiguration represents a declarative configuration of the CephFSVolumeSource type for use\n// with apply.\ntype CephFSVolumeSourceApplyConfiguration struct {\n\tMonitors   []string                                `json:\"monitors,omitempty\"`\n\tPath       *string                                 `json:\"path,omitempty\"`\n\tUser       *string                                 `json:\"user,omitempty\"`\n\tSecretFile *string                                 `json:\"secretFile,omitempty\"`\n\tSecretRef  *LocalObjectReferenceApplyConfiguration `json:\"secretRef,omitempty\"`\n\tReadOnly   *bool                                   `json:\"readOnly,omitempty\"`\n}\n\n// CephFSVolumeSourceApplyConfiguration constructs a declarative configuration of the CephFSVolumeSource type for use with\n// apply.\nfunc CephFSVolumeSource() *CephFSVolumeSourceApplyConfiguration {\n\treturn &CephFSVolumeSourceApplyConfiguration{}\n}\n\n// WithMonitors adds the given value to the Monitors field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Monitors field.\nfunc (b *CephFSVolumeSourceApplyConfiguration) WithMonitors(values ...string) *CephFSVolumeSourceApplyConfiguration {\n\tfor i := range values {\n\t\tb.Monitors = append(b.Monitors, values[i])\n\t}\n\treturn b\n}\n\n// WithPath sets the Path field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Path field is set to the value of the last call.\nfunc (b *CephFSVolumeSourceApplyConfiguration) WithPath(value string) *CephFSVolumeSourceApplyConfiguration {\n\tb.Path = &value\n\treturn b\n}\n\n// WithUser sets the User field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the User field is set to the value of the last call.\nfunc (b *CephFSVolumeSourceApplyConfiguration) WithUser(value string) *CephFSVolumeSourceApplyConfiguration {\n\tb.User = &value\n\treturn b\n}\n\n// WithSecretFile sets the SecretFile field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretFile field is set to the value of the last call.\nfunc (b *CephFSVolumeSourceApplyConfiguration) WithSecretFile(value string) *CephFSVolumeSourceApplyConfiguration {\n\tb.SecretFile = &value\n\treturn b\n}\n\n// WithSecretRef sets the SecretRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretRef field is set to the value of the last call.\nfunc (b *CephFSVolumeSourceApplyConfiguration) WithSecretRef(value *LocalObjectReferenceApplyConfiguration) *CephFSVolumeSourceApplyConfiguration {\n\tb.SecretRef = value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *CephFSVolumeSourceApplyConfiguration) WithReadOnly(value bool) *CephFSVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/cinderpersistentvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// CinderPersistentVolumeSourceApplyConfiguration represents a declarative configuration of the CinderPersistentVolumeSource type for use\n// with apply.\ntype CinderPersistentVolumeSourceApplyConfiguration struct {\n\tVolumeID  *string                            `json:\"volumeID,omitempty\"`\n\tFSType    *string                            `json:\"fsType,omitempty\"`\n\tReadOnly  *bool                              `json:\"readOnly,omitempty\"`\n\tSecretRef *SecretReferenceApplyConfiguration `json:\"secretRef,omitempty\"`\n}\n\n// CinderPersistentVolumeSourceApplyConfiguration constructs a declarative configuration of the CinderPersistentVolumeSource type for use with\n// apply.\nfunc CinderPersistentVolumeSource() *CinderPersistentVolumeSourceApplyConfiguration {\n\treturn &CinderPersistentVolumeSourceApplyConfiguration{}\n}\n\n// WithVolumeID sets the VolumeID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VolumeID field is set to the value of the last call.\nfunc (b *CinderPersistentVolumeSourceApplyConfiguration) WithVolumeID(value string) *CinderPersistentVolumeSourceApplyConfiguration {\n\tb.VolumeID = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *CinderPersistentVolumeSourceApplyConfiguration) WithFSType(value string) *CinderPersistentVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *CinderPersistentVolumeSourceApplyConfiguration) WithReadOnly(value bool) *CinderPersistentVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n\n// WithSecretRef sets the SecretRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretRef field is set to the value of the last call.\nfunc (b *CinderPersistentVolumeSourceApplyConfiguration) WithSecretRef(value *SecretReferenceApplyConfiguration) *CinderPersistentVolumeSourceApplyConfiguration {\n\tb.SecretRef = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/cindervolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// CinderVolumeSourceApplyConfiguration represents a declarative configuration of the CinderVolumeSource type for use\n// with apply.\ntype CinderVolumeSourceApplyConfiguration struct {\n\tVolumeID  *string                                 `json:\"volumeID,omitempty\"`\n\tFSType    *string                                 `json:\"fsType,omitempty\"`\n\tReadOnly  *bool                                   `json:\"readOnly,omitempty\"`\n\tSecretRef *LocalObjectReferenceApplyConfiguration `json:\"secretRef,omitempty\"`\n}\n\n// CinderVolumeSourceApplyConfiguration constructs a declarative configuration of the CinderVolumeSource type for use with\n// apply.\nfunc CinderVolumeSource() *CinderVolumeSourceApplyConfiguration {\n\treturn &CinderVolumeSourceApplyConfiguration{}\n}\n\n// WithVolumeID sets the VolumeID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VolumeID field is set to the value of the last call.\nfunc (b *CinderVolumeSourceApplyConfiguration) WithVolumeID(value string) *CinderVolumeSourceApplyConfiguration {\n\tb.VolumeID = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *CinderVolumeSourceApplyConfiguration) WithFSType(value string) *CinderVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *CinderVolumeSourceApplyConfiguration) WithReadOnly(value bool) *CinderVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n\n// WithSecretRef sets the SecretRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretRef field is set to the value of the last call.\nfunc (b *CinderVolumeSourceApplyConfiguration) WithSecretRef(value *LocalObjectReferenceApplyConfiguration) *CinderVolumeSourceApplyConfiguration {\n\tb.SecretRef = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/clientipconfig.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ClientIPConfigApplyConfiguration represents a declarative configuration of the ClientIPConfig type for use\n// with apply.\ntype ClientIPConfigApplyConfiguration struct {\n\tTimeoutSeconds *int32 `json:\"timeoutSeconds,omitempty\"`\n}\n\n// ClientIPConfigApplyConfiguration constructs a declarative configuration of the ClientIPConfig type for use with\n// apply.\nfunc ClientIPConfig() *ClientIPConfigApplyConfiguration {\n\treturn &ClientIPConfigApplyConfiguration{}\n}\n\n// WithTimeoutSeconds sets the TimeoutSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TimeoutSeconds field is set to the value of the last call.\nfunc (b *ClientIPConfigApplyConfiguration) WithTimeoutSeconds(value int32) *ClientIPConfigApplyConfiguration {\n\tb.TimeoutSeconds = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/clustertrustbundleprojection.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ClusterTrustBundleProjectionApplyConfiguration represents a declarative configuration of the ClusterTrustBundleProjection type for use\n// with apply.\ntype ClusterTrustBundleProjectionApplyConfiguration struct {\n\tName          *string                                 `json:\"name,omitempty\"`\n\tSignerName    *string                                 `json:\"signerName,omitempty\"`\n\tLabelSelector *metav1.LabelSelectorApplyConfiguration `json:\"labelSelector,omitempty\"`\n\tOptional      *bool                                   `json:\"optional,omitempty\"`\n\tPath          *string                                 `json:\"path,omitempty\"`\n}\n\n// ClusterTrustBundleProjectionApplyConfiguration constructs a declarative configuration of the ClusterTrustBundleProjection type for use with\n// apply.\nfunc ClusterTrustBundleProjection() *ClusterTrustBundleProjectionApplyConfiguration {\n\treturn &ClusterTrustBundleProjectionApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ClusterTrustBundleProjectionApplyConfiguration) WithName(value string) *ClusterTrustBundleProjectionApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithSignerName sets the SignerName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SignerName field is set to the value of the last call.\nfunc (b *ClusterTrustBundleProjectionApplyConfiguration) WithSignerName(value string) *ClusterTrustBundleProjectionApplyConfiguration {\n\tb.SignerName = &value\n\treturn b\n}\n\n// WithLabelSelector sets the LabelSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LabelSelector field is set to the value of the last call.\nfunc (b *ClusterTrustBundleProjectionApplyConfiguration) WithLabelSelector(value *metav1.LabelSelectorApplyConfiguration) *ClusterTrustBundleProjectionApplyConfiguration {\n\tb.LabelSelector = value\n\treturn b\n}\n\n// WithOptional sets the Optional field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Optional field is set to the value of the last call.\nfunc (b *ClusterTrustBundleProjectionApplyConfiguration) WithOptional(value bool) *ClusterTrustBundleProjectionApplyConfiguration {\n\tb.Optional = &value\n\treturn b\n}\n\n// WithPath sets the Path field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Path field is set to the value of the last call.\nfunc (b *ClusterTrustBundleProjectionApplyConfiguration) WithPath(value string) *ClusterTrustBundleProjectionApplyConfiguration {\n\tb.Path = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/componentcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// ComponentConditionApplyConfiguration represents a declarative configuration of the ComponentCondition type for use\n// with apply.\ntype ComponentConditionApplyConfiguration struct {\n\tType    *corev1.ComponentConditionType `json:\"type,omitempty\"`\n\tStatus  *corev1.ConditionStatus        `json:\"status,omitempty\"`\n\tMessage *string                        `json:\"message,omitempty\"`\n\tError   *string                        `json:\"error,omitempty\"`\n}\n\n// ComponentConditionApplyConfiguration constructs a declarative configuration of the ComponentCondition type for use with\n// apply.\nfunc ComponentCondition() *ComponentConditionApplyConfiguration {\n\treturn &ComponentConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *ComponentConditionApplyConfiguration) WithType(value corev1.ComponentConditionType) *ComponentConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *ComponentConditionApplyConfiguration) WithStatus(value corev1.ConditionStatus) *ComponentConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *ComponentConditionApplyConfiguration) WithMessage(value string) *ComponentConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n\n// WithError sets the Error field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Error field is set to the value of the last call.\nfunc (b *ComponentConditionApplyConfiguration) WithError(value string) *ComponentConditionApplyConfiguration {\n\tb.Error = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/componentstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ComponentStatusApplyConfiguration represents a declarative configuration of the ComponentStatus type for use\n// with apply.\ntype ComponentStatusApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tConditions                           []ComponentConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// ComponentStatus constructs a declarative configuration of the ComponentStatus type for use with\n// apply.\nfunc ComponentStatus(name string) *ComponentStatusApplyConfiguration {\n\tb := &ComponentStatusApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"ComponentStatus\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b\n}\n\n// ExtractComponentStatus extracts the applied configuration owned by fieldManager from\n// componentStatus. If no managedFields are found in componentStatus for fieldManager, a\n// ComponentStatusApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// componentStatus must be a unmodified ComponentStatus API object that was retrieved from the Kubernetes API.\n// ExtractComponentStatus provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractComponentStatus(componentStatus *corev1.ComponentStatus, fieldManager string) (*ComponentStatusApplyConfiguration, error) {\n\treturn extractComponentStatus(componentStatus, fieldManager, \"\")\n}\n\n// ExtractComponentStatusStatus is the same as ExtractComponentStatus except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractComponentStatusStatus(componentStatus *corev1.ComponentStatus, fieldManager string) (*ComponentStatusApplyConfiguration, error) {\n\treturn extractComponentStatus(componentStatus, fieldManager, \"status\")\n}\n\nfunc extractComponentStatus(componentStatus *corev1.ComponentStatus, fieldManager string, subresource string) (*ComponentStatusApplyConfiguration, error) {\n\tb := &ComponentStatusApplyConfiguration{}\n\terr := managedfields.ExtractInto(componentStatus, internal.Parser().Type(\"io.k8s.api.core.v1.ComponentStatus\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(componentStatus.Name)\n\n\tb.WithKind(\"ComponentStatus\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ComponentStatusApplyConfiguration) WithKind(value string) *ComponentStatusApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ComponentStatusApplyConfiguration) WithAPIVersion(value string) *ComponentStatusApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ComponentStatusApplyConfiguration) WithName(value string) *ComponentStatusApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ComponentStatusApplyConfiguration) WithGenerateName(value string) *ComponentStatusApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ComponentStatusApplyConfiguration) WithNamespace(value string) *ComponentStatusApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ComponentStatusApplyConfiguration) WithUID(value types.UID) *ComponentStatusApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ComponentStatusApplyConfiguration) WithResourceVersion(value string) *ComponentStatusApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ComponentStatusApplyConfiguration) WithGeneration(value int64) *ComponentStatusApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ComponentStatusApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *ComponentStatusApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ComponentStatusApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *ComponentStatusApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ComponentStatusApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ComponentStatusApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ComponentStatusApplyConfiguration) WithLabels(entries map[string]string) *ComponentStatusApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ComponentStatusApplyConfiguration) WithAnnotations(entries map[string]string) *ComponentStatusApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ComponentStatusApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *ComponentStatusApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ComponentStatusApplyConfiguration) WithFinalizers(values ...string) *ComponentStatusApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ComponentStatusApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *ComponentStatusApplyConfiguration) WithConditions(values ...*ComponentConditionApplyConfiguration) *ComponentStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *ComponentStatusApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/configmap.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ConfigMapApplyConfiguration represents a declarative configuration of the ConfigMap type for use\n// with apply.\ntype ConfigMapApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tImmutable                            *bool             `json:\"immutable,omitempty\"`\n\tData                                 map[string]string `json:\"data,omitempty\"`\n\tBinaryData                           map[string][]byte `json:\"binaryData,omitempty\"`\n}\n\n// ConfigMap constructs a declarative configuration of the ConfigMap type for use with\n// apply.\nfunc ConfigMap(name, namespace string) *ConfigMapApplyConfiguration {\n\tb := &ConfigMapApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"ConfigMap\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b\n}\n\n// ExtractConfigMap extracts the applied configuration owned by fieldManager from\n// configMap. If no managedFields are found in configMap for fieldManager, a\n// ConfigMapApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// configMap must be a unmodified ConfigMap API object that was retrieved from the Kubernetes API.\n// ExtractConfigMap provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractConfigMap(configMap *corev1.ConfigMap, fieldManager string) (*ConfigMapApplyConfiguration, error) {\n\treturn extractConfigMap(configMap, fieldManager, \"\")\n}\n\n// ExtractConfigMapStatus is the same as ExtractConfigMap except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractConfigMapStatus(configMap *corev1.ConfigMap, fieldManager string) (*ConfigMapApplyConfiguration, error) {\n\treturn extractConfigMap(configMap, fieldManager, \"status\")\n}\n\nfunc extractConfigMap(configMap *corev1.ConfigMap, fieldManager string, subresource string) (*ConfigMapApplyConfiguration, error) {\n\tb := &ConfigMapApplyConfiguration{}\n\terr := managedfields.ExtractInto(configMap, internal.Parser().Type(\"io.k8s.api.core.v1.ConfigMap\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(configMap.Name)\n\tb.WithNamespace(configMap.Namespace)\n\n\tb.WithKind(\"ConfigMap\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ConfigMapApplyConfiguration) WithKind(value string) *ConfigMapApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ConfigMapApplyConfiguration) WithAPIVersion(value string) *ConfigMapApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ConfigMapApplyConfiguration) WithName(value string) *ConfigMapApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ConfigMapApplyConfiguration) WithGenerateName(value string) *ConfigMapApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ConfigMapApplyConfiguration) WithNamespace(value string) *ConfigMapApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ConfigMapApplyConfiguration) WithUID(value types.UID) *ConfigMapApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ConfigMapApplyConfiguration) WithResourceVersion(value string) *ConfigMapApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ConfigMapApplyConfiguration) WithGeneration(value int64) *ConfigMapApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ConfigMapApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *ConfigMapApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ConfigMapApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *ConfigMapApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ConfigMapApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ConfigMapApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ConfigMapApplyConfiguration) WithLabels(entries map[string]string) *ConfigMapApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ConfigMapApplyConfiguration) WithAnnotations(entries map[string]string) *ConfigMapApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ConfigMapApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *ConfigMapApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ConfigMapApplyConfiguration) WithFinalizers(values ...string) *ConfigMapApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ConfigMapApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithImmutable sets the Immutable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Immutable field is set to the value of the last call.\nfunc (b *ConfigMapApplyConfiguration) WithImmutable(value bool) *ConfigMapApplyConfiguration {\n\tb.Immutable = &value\n\treturn b\n}\n\n// WithData puts the entries into the Data field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Data field,\n// overwriting an existing map entries in Data field with the same key.\nfunc (b *ConfigMapApplyConfiguration) WithData(entries map[string]string) *ConfigMapApplyConfiguration {\n\tif b.Data == nil && len(entries) > 0 {\n\t\tb.Data = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Data[k] = v\n\t}\n\treturn b\n}\n\n// WithBinaryData puts the entries into the BinaryData field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the BinaryData field,\n// overwriting an existing map entries in BinaryData field with the same key.\nfunc (b *ConfigMapApplyConfiguration) WithBinaryData(entries map[string][]byte) *ConfigMapApplyConfiguration {\n\tif b.BinaryData == nil && len(entries) > 0 {\n\t\tb.BinaryData = make(map[string][]byte, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.BinaryData[k] = v\n\t}\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *ConfigMapApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/configmapenvsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ConfigMapEnvSourceApplyConfiguration represents a declarative configuration of the ConfigMapEnvSource type for use\n// with apply.\ntype ConfigMapEnvSourceApplyConfiguration struct {\n\tLocalObjectReferenceApplyConfiguration `json:\",inline\"`\n\tOptional                               *bool `json:\"optional,omitempty\"`\n}\n\n// ConfigMapEnvSourceApplyConfiguration constructs a declarative configuration of the ConfigMapEnvSource type for use with\n// apply.\nfunc ConfigMapEnvSource() *ConfigMapEnvSourceApplyConfiguration {\n\treturn &ConfigMapEnvSourceApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ConfigMapEnvSourceApplyConfiguration) WithName(value string) *ConfigMapEnvSourceApplyConfiguration {\n\tb.LocalObjectReferenceApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithOptional sets the Optional field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Optional field is set to the value of the last call.\nfunc (b *ConfigMapEnvSourceApplyConfiguration) WithOptional(value bool) *ConfigMapEnvSourceApplyConfiguration {\n\tb.Optional = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/configmapkeyselector.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ConfigMapKeySelectorApplyConfiguration represents a declarative configuration of the ConfigMapKeySelector type for use\n// with apply.\ntype ConfigMapKeySelectorApplyConfiguration struct {\n\tLocalObjectReferenceApplyConfiguration `json:\",inline\"`\n\tKey                                    *string `json:\"key,omitempty\"`\n\tOptional                               *bool   `json:\"optional,omitempty\"`\n}\n\n// ConfigMapKeySelectorApplyConfiguration constructs a declarative configuration of the ConfigMapKeySelector type for use with\n// apply.\nfunc ConfigMapKeySelector() *ConfigMapKeySelectorApplyConfiguration {\n\treturn &ConfigMapKeySelectorApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ConfigMapKeySelectorApplyConfiguration) WithName(value string) *ConfigMapKeySelectorApplyConfiguration {\n\tb.LocalObjectReferenceApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithKey sets the Key field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Key field is set to the value of the last call.\nfunc (b *ConfigMapKeySelectorApplyConfiguration) WithKey(value string) *ConfigMapKeySelectorApplyConfiguration {\n\tb.Key = &value\n\treturn b\n}\n\n// WithOptional sets the Optional field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Optional field is set to the value of the last call.\nfunc (b *ConfigMapKeySelectorApplyConfiguration) WithOptional(value bool) *ConfigMapKeySelectorApplyConfiguration {\n\tb.Optional = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/configmapnodeconfigsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n)\n\n// ConfigMapNodeConfigSourceApplyConfiguration represents a declarative configuration of the ConfigMapNodeConfigSource type for use\n// with apply.\ntype ConfigMapNodeConfigSourceApplyConfiguration struct {\n\tNamespace        *string    `json:\"namespace,omitempty\"`\n\tName             *string    `json:\"name,omitempty\"`\n\tUID              *types.UID `json:\"uid,omitempty\"`\n\tResourceVersion  *string    `json:\"resourceVersion,omitempty\"`\n\tKubeletConfigKey *string    `json:\"kubeletConfigKey,omitempty\"`\n}\n\n// ConfigMapNodeConfigSourceApplyConfiguration constructs a declarative configuration of the ConfigMapNodeConfigSource type for use with\n// apply.\nfunc ConfigMapNodeConfigSource() *ConfigMapNodeConfigSourceApplyConfiguration {\n\treturn &ConfigMapNodeConfigSourceApplyConfiguration{}\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ConfigMapNodeConfigSourceApplyConfiguration) WithNamespace(value string) *ConfigMapNodeConfigSourceApplyConfiguration {\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ConfigMapNodeConfigSourceApplyConfiguration) WithName(value string) *ConfigMapNodeConfigSourceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ConfigMapNodeConfigSourceApplyConfiguration) WithUID(value types.UID) *ConfigMapNodeConfigSourceApplyConfiguration {\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ConfigMapNodeConfigSourceApplyConfiguration) WithResourceVersion(value string) *ConfigMapNodeConfigSourceApplyConfiguration {\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithKubeletConfigKey sets the KubeletConfigKey field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the KubeletConfigKey field is set to the value of the last call.\nfunc (b *ConfigMapNodeConfigSourceApplyConfiguration) WithKubeletConfigKey(value string) *ConfigMapNodeConfigSourceApplyConfiguration {\n\tb.KubeletConfigKey = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/configmapprojection.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ConfigMapProjectionApplyConfiguration represents a declarative configuration of the ConfigMapProjection type for use\n// with apply.\ntype ConfigMapProjectionApplyConfiguration struct {\n\tLocalObjectReferenceApplyConfiguration `json:\",inline\"`\n\tItems                                  []KeyToPathApplyConfiguration `json:\"items,omitempty\"`\n\tOptional                               *bool                         `json:\"optional,omitempty\"`\n}\n\n// ConfigMapProjectionApplyConfiguration constructs a declarative configuration of the ConfigMapProjection type for use with\n// apply.\nfunc ConfigMapProjection() *ConfigMapProjectionApplyConfiguration {\n\treturn &ConfigMapProjectionApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ConfigMapProjectionApplyConfiguration) WithName(value string) *ConfigMapProjectionApplyConfiguration {\n\tb.LocalObjectReferenceApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithItems adds the given value to the Items field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Items field.\nfunc (b *ConfigMapProjectionApplyConfiguration) WithItems(values ...*KeyToPathApplyConfiguration) *ConfigMapProjectionApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithItems\")\n\t\t}\n\t\tb.Items = append(b.Items, *values[i])\n\t}\n\treturn b\n}\n\n// WithOptional sets the Optional field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Optional field is set to the value of the last call.\nfunc (b *ConfigMapProjectionApplyConfiguration) WithOptional(value bool) *ConfigMapProjectionApplyConfiguration {\n\tb.Optional = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/configmapvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ConfigMapVolumeSourceApplyConfiguration represents a declarative configuration of the ConfigMapVolumeSource type for use\n// with apply.\ntype ConfigMapVolumeSourceApplyConfiguration struct {\n\tLocalObjectReferenceApplyConfiguration `json:\",inline\"`\n\tItems                                  []KeyToPathApplyConfiguration `json:\"items,omitempty\"`\n\tDefaultMode                            *int32                        `json:\"defaultMode,omitempty\"`\n\tOptional                               *bool                         `json:\"optional,omitempty\"`\n}\n\n// ConfigMapVolumeSourceApplyConfiguration constructs a declarative configuration of the ConfigMapVolumeSource type for use with\n// apply.\nfunc ConfigMapVolumeSource() *ConfigMapVolumeSourceApplyConfiguration {\n\treturn &ConfigMapVolumeSourceApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ConfigMapVolumeSourceApplyConfiguration) WithName(value string) *ConfigMapVolumeSourceApplyConfiguration {\n\tb.LocalObjectReferenceApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithItems adds the given value to the Items field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Items field.\nfunc (b *ConfigMapVolumeSourceApplyConfiguration) WithItems(values ...*KeyToPathApplyConfiguration) *ConfigMapVolumeSourceApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithItems\")\n\t\t}\n\t\tb.Items = append(b.Items, *values[i])\n\t}\n\treturn b\n}\n\n// WithDefaultMode sets the DefaultMode field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DefaultMode field is set to the value of the last call.\nfunc (b *ConfigMapVolumeSourceApplyConfiguration) WithDefaultMode(value int32) *ConfigMapVolumeSourceApplyConfiguration {\n\tb.DefaultMode = &value\n\treturn b\n}\n\n// WithOptional sets the Optional field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Optional field is set to the value of the last call.\nfunc (b *ConfigMapVolumeSourceApplyConfiguration) WithOptional(value bool) *ConfigMapVolumeSourceApplyConfiguration {\n\tb.Optional = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/container.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// ContainerApplyConfiguration represents a declarative configuration of the Container type for use\n// with apply.\ntype ContainerApplyConfiguration struct {\n\tName                     *string                                   `json:\"name,omitempty\"`\n\tImage                    *string                                   `json:\"image,omitempty\"`\n\tCommand                  []string                                  `json:\"command,omitempty\"`\n\tArgs                     []string                                  `json:\"args,omitempty\"`\n\tWorkingDir               *string                                   `json:\"workingDir,omitempty\"`\n\tPorts                    []ContainerPortApplyConfiguration         `json:\"ports,omitempty\"`\n\tEnvFrom                  []EnvFromSourceApplyConfiguration         `json:\"envFrom,omitempty\"`\n\tEnv                      []EnvVarApplyConfiguration                `json:\"env,omitempty\"`\n\tResources                *ResourceRequirementsApplyConfiguration   `json:\"resources,omitempty\"`\n\tResizePolicy             []ContainerResizePolicyApplyConfiguration `json:\"resizePolicy,omitempty\"`\n\tRestartPolicy            *corev1.ContainerRestartPolicy            `json:\"restartPolicy,omitempty\"`\n\tVolumeMounts             []VolumeMountApplyConfiguration           `json:\"volumeMounts,omitempty\"`\n\tVolumeDevices            []VolumeDeviceApplyConfiguration          `json:\"volumeDevices,omitempty\"`\n\tLivenessProbe            *ProbeApplyConfiguration                  `json:\"livenessProbe,omitempty\"`\n\tReadinessProbe           *ProbeApplyConfiguration                  `json:\"readinessProbe,omitempty\"`\n\tStartupProbe             *ProbeApplyConfiguration                  `json:\"startupProbe,omitempty\"`\n\tLifecycle                *LifecycleApplyConfiguration              `json:\"lifecycle,omitempty\"`\n\tTerminationMessagePath   *string                                   `json:\"terminationMessagePath,omitempty\"`\n\tTerminationMessagePolicy *corev1.TerminationMessagePolicy          `json:\"terminationMessagePolicy,omitempty\"`\n\tImagePullPolicy          *corev1.PullPolicy                        `json:\"imagePullPolicy,omitempty\"`\n\tSecurityContext          *SecurityContextApplyConfiguration        `json:\"securityContext,omitempty\"`\n\tStdin                    *bool                                     `json:\"stdin,omitempty\"`\n\tStdinOnce                *bool                                     `json:\"stdinOnce,omitempty\"`\n\tTTY                      *bool                                     `json:\"tty,omitempty\"`\n}\n\n// ContainerApplyConfiguration constructs a declarative configuration of the Container type for use with\n// apply.\nfunc Container() *ContainerApplyConfiguration {\n\treturn &ContainerApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ContainerApplyConfiguration) WithName(value string) *ContainerApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithImage sets the Image field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Image field is set to the value of the last call.\nfunc (b *ContainerApplyConfiguration) WithImage(value string) *ContainerApplyConfiguration {\n\tb.Image = &value\n\treturn b\n}\n\n// WithCommand adds the given value to the Command field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Command field.\nfunc (b *ContainerApplyConfiguration) WithCommand(values ...string) *ContainerApplyConfiguration {\n\tfor i := range values {\n\t\tb.Command = append(b.Command, values[i])\n\t}\n\treturn b\n}\n\n// WithArgs adds the given value to the Args field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Args field.\nfunc (b *ContainerApplyConfiguration) WithArgs(values ...string) *ContainerApplyConfiguration {\n\tfor i := range values {\n\t\tb.Args = append(b.Args, values[i])\n\t}\n\treturn b\n}\n\n// WithWorkingDir sets the WorkingDir field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the WorkingDir field is set to the value of the last call.\nfunc (b *ContainerApplyConfiguration) WithWorkingDir(value string) *ContainerApplyConfiguration {\n\tb.WorkingDir = &value\n\treturn b\n}\n\n// WithPorts adds the given value to the Ports field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ports field.\nfunc (b *ContainerApplyConfiguration) WithPorts(values ...*ContainerPortApplyConfiguration) *ContainerApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPorts\")\n\t\t}\n\t\tb.Ports = append(b.Ports, *values[i])\n\t}\n\treturn b\n}\n\n// WithEnvFrom adds the given value to the EnvFrom field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the EnvFrom field.\nfunc (b *ContainerApplyConfiguration) WithEnvFrom(values ...*EnvFromSourceApplyConfiguration) *ContainerApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithEnvFrom\")\n\t\t}\n\t\tb.EnvFrom = append(b.EnvFrom, *values[i])\n\t}\n\treturn b\n}\n\n// WithEnv adds the given value to the Env field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Env field.\nfunc (b *ContainerApplyConfiguration) WithEnv(values ...*EnvVarApplyConfiguration) *ContainerApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithEnv\")\n\t\t}\n\t\tb.Env = append(b.Env, *values[i])\n\t}\n\treturn b\n}\n\n// WithResources sets the Resources field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Resources field is set to the value of the last call.\nfunc (b *ContainerApplyConfiguration) WithResources(value *ResourceRequirementsApplyConfiguration) *ContainerApplyConfiguration {\n\tb.Resources = value\n\treturn b\n}\n\n// WithResizePolicy adds the given value to the ResizePolicy field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ResizePolicy field.\nfunc (b *ContainerApplyConfiguration) WithResizePolicy(values ...*ContainerResizePolicyApplyConfiguration) *ContainerApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithResizePolicy\")\n\t\t}\n\t\tb.ResizePolicy = append(b.ResizePolicy, *values[i])\n\t}\n\treturn b\n}\n\n// WithRestartPolicy sets the RestartPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RestartPolicy field is set to the value of the last call.\nfunc (b *ContainerApplyConfiguration) WithRestartPolicy(value corev1.ContainerRestartPolicy) *ContainerApplyConfiguration {\n\tb.RestartPolicy = &value\n\treturn b\n}\n\n// WithVolumeMounts adds the given value to the VolumeMounts field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the VolumeMounts field.\nfunc (b *ContainerApplyConfiguration) WithVolumeMounts(values ...*VolumeMountApplyConfiguration) *ContainerApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithVolumeMounts\")\n\t\t}\n\t\tb.VolumeMounts = append(b.VolumeMounts, *values[i])\n\t}\n\treturn b\n}\n\n// WithVolumeDevices adds the given value to the VolumeDevices field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the VolumeDevices field.\nfunc (b *ContainerApplyConfiguration) WithVolumeDevices(values ...*VolumeDeviceApplyConfiguration) *ContainerApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithVolumeDevices\")\n\t\t}\n\t\tb.VolumeDevices = append(b.VolumeDevices, *values[i])\n\t}\n\treturn b\n}\n\n// WithLivenessProbe sets the LivenessProbe field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LivenessProbe field is set to the value of the last call.\nfunc (b *ContainerApplyConfiguration) WithLivenessProbe(value *ProbeApplyConfiguration) *ContainerApplyConfiguration {\n\tb.LivenessProbe = value\n\treturn b\n}\n\n// WithReadinessProbe sets the ReadinessProbe field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadinessProbe field is set to the value of the last call.\nfunc (b *ContainerApplyConfiguration) WithReadinessProbe(value *ProbeApplyConfiguration) *ContainerApplyConfiguration {\n\tb.ReadinessProbe = value\n\treturn b\n}\n\n// WithStartupProbe sets the StartupProbe field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StartupProbe field is set to the value of the last call.\nfunc (b *ContainerApplyConfiguration) WithStartupProbe(value *ProbeApplyConfiguration) *ContainerApplyConfiguration {\n\tb.StartupProbe = value\n\treturn b\n}\n\n// WithLifecycle sets the Lifecycle field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Lifecycle field is set to the value of the last call.\nfunc (b *ContainerApplyConfiguration) WithLifecycle(value *LifecycleApplyConfiguration) *ContainerApplyConfiguration {\n\tb.Lifecycle = value\n\treturn b\n}\n\n// WithTerminationMessagePath sets the TerminationMessagePath field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TerminationMessagePath field is set to the value of the last call.\nfunc (b *ContainerApplyConfiguration) WithTerminationMessagePath(value string) *ContainerApplyConfiguration {\n\tb.TerminationMessagePath = &value\n\treturn b\n}\n\n// WithTerminationMessagePolicy sets the TerminationMessagePolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TerminationMessagePolicy field is set to the value of the last call.\nfunc (b *ContainerApplyConfiguration) WithTerminationMessagePolicy(value corev1.TerminationMessagePolicy) *ContainerApplyConfiguration {\n\tb.TerminationMessagePolicy = &value\n\treturn b\n}\n\n// WithImagePullPolicy sets the ImagePullPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ImagePullPolicy field is set to the value of the last call.\nfunc (b *ContainerApplyConfiguration) WithImagePullPolicy(value corev1.PullPolicy) *ContainerApplyConfiguration {\n\tb.ImagePullPolicy = &value\n\treturn b\n}\n\n// WithSecurityContext sets the SecurityContext field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecurityContext field is set to the value of the last call.\nfunc (b *ContainerApplyConfiguration) WithSecurityContext(value *SecurityContextApplyConfiguration) *ContainerApplyConfiguration {\n\tb.SecurityContext = value\n\treturn b\n}\n\n// WithStdin sets the Stdin field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Stdin field is set to the value of the last call.\nfunc (b *ContainerApplyConfiguration) WithStdin(value bool) *ContainerApplyConfiguration {\n\tb.Stdin = &value\n\treturn b\n}\n\n// WithStdinOnce sets the StdinOnce field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StdinOnce field is set to the value of the last call.\nfunc (b *ContainerApplyConfiguration) WithStdinOnce(value bool) *ContainerApplyConfiguration {\n\tb.StdinOnce = &value\n\treturn b\n}\n\n// WithTTY sets the TTY field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TTY field is set to the value of the last call.\nfunc (b *ContainerApplyConfiguration) WithTTY(value bool) *ContainerApplyConfiguration {\n\tb.TTY = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/containerimage.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ContainerImageApplyConfiguration represents a declarative configuration of the ContainerImage type for use\n// with apply.\ntype ContainerImageApplyConfiguration struct {\n\tNames     []string `json:\"names,omitempty\"`\n\tSizeBytes *int64   `json:\"sizeBytes,omitempty\"`\n}\n\n// ContainerImageApplyConfiguration constructs a declarative configuration of the ContainerImage type for use with\n// apply.\nfunc ContainerImage() *ContainerImageApplyConfiguration {\n\treturn &ContainerImageApplyConfiguration{}\n}\n\n// WithNames adds the given value to the Names field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Names field.\nfunc (b *ContainerImageApplyConfiguration) WithNames(values ...string) *ContainerImageApplyConfiguration {\n\tfor i := range values {\n\t\tb.Names = append(b.Names, values[i])\n\t}\n\treturn b\n}\n\n// WithSizeBytes sets the SizeBytes field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SizeBytes field is set to the value of the last call.\nfunc (b *ContainerImageApplyConfiguration) WithSizeBytes(value int64) *ContainerImageApplyConfiguration {\n\tb.SizeBytes = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/containerport.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// ContainerPortApplyConfiguration represents a declarative configuration of the ContainerPort type for use\n// with apply.\ntype ContainerPortApplyConfiguration struct {\n\tName          *string          `json:\"name,omitempty\"`\n\tHostPort      *int32           `json:\"hostPort,omitempty\"`\n\tContainerPort *int32           `json:\"containerPort,omitempty\"`\n\tProtocol      *corev1.Protocol `json:\"protocol,omitempty\"`\n\tHostIP        *string          `json:\"hostIP,omitempty\"`\n}\n\n// ContainerPortApplyConfiguration constructs a declarative configuration of the ContainerPort type for use with\n// apply.\nfunc ContainerPort() *ContainerPortApplyConfiguration {\n\treturn &ContainerPortApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ContainerPortApplyConfiguration) WithName(value string) *ContainerPortApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithHostPort sets the HostPort field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HostPort field is set to the value of the last call.\nfunc (b *ContainerPortApplyConfiguration) WithHostPort(value int32) *ContainerPortApplyConfiguration {\n\tb.HostPort = &value\n\treturn b\n}\n\n// WithContainerPort sets the ContainerPort field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ContainerPort field is set to the value of the last call.\nfunc (b *ContainerPortApplyConfiguration) WithContainerPort(value int32) *ContainerPortApplyConfiguration {\n\tb.ContainerPort = &value\n\treturn b\n}\n\n// WithProtocol sets the Protocol field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Protocol field is set to the value of the last call.\nfunc (b *ContainerPortApplyConfiguration) WithProtocol(value corev1.Protocol) *ContainerPortApplyConfiguration {\n\tb.Protocol = &value\n\treturn b\n}\n\n// WithHostIP sets the HostIP field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HostIP field is set to the value of the last call.\nfunc (b *ContainerPortApplyConfiguration) WithHostIP(value string) *ContainerPortApplyConfiguration {\n\tb.HostIP = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/containerresizepolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// ContainerResizePolicyApplyConfiguration represents a declarative configuration of the ContainerResizePolicy type for use\n// with apply.\ntype ContainerResizePolicyApplyConfiguration struct {\n\tResourceName  *corev1.ResourceName                `json:\"resourceName,omitempty\"`\n\tRestartPolicy *corev1.ResourceResizeRestartPolicy `json:\"restartPolicy,omitempty\"`\n}\n\n// ContainerResizePolicyApplyConfiguration constructs a declarative configuration of the ContainerResizePolicy type for use with\n// apply.\nfunc ContainerResizePolicy() *ContainerResizePolicyApplyConfiguration {\n\treturn &ContainerResizePolicyApplyConfiguration{}\n}\n\n// WithResourceName sets the ResourceName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceName field is set to the value of the last call.\nfunc (b *ContainerResizePolicyApplyConfiguration) WithResourceName(value corev1.ResourceName) *ContainerResizePolicyApplyConfiguration {\n\tb.ResourceName = &value\n\treturn b\n}\n\n// WithRestartPolicy sets the RestartPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RestartPolicy field is set to the value of the last call.\nfunc (b *ContainerResizePolicyApplyConfiguration) WithRestartPolicy(value corev1.ResourceResizeRestartPolicy) *ContainerResizePolicyApplyConfiguration {\n\tb.RestartPolicy = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/containerstate.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ContainerStateApplyConfiguration represents a declarative configuration of the ContainerState type for use\n// with apply.\ntype ContainerStateApplyConfiguration struct {\n\tWaiting    *ContainerStateWaitingApplyConfiguration    `json:\"waiting,omitempty\"`\n\tRunning    *ContainerStateRunningApplyConfiguration    `json:\"running,omitempty\"`\n\tTerminated *ContainerStateTerminatedApplyConfiguration `json:\"terminated,omitempty\"`\n}\n\n// ContainerStateApplyConfiguration constructs a declarative configuration of the ContainerState type for use with\n// apply.\nfunc ContainerState() *ContainerStateApplyConfiguration {\n\treturn &ContainerStateApplyConfiguration{}\n}\n\n// WithWaiting sets the Waiting field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Waiting field is set to the value of the last call.\nfunc (b *ContainerStateApplyConfiguration) WithWaiting(value *ContainerStateWaitingApplyConfiguration) *ContainerStateApplyConfiguration {\n\tb.Waiting = value\n\treturn b\n}\n\n// WithRunning sets the Running field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Running field is set to the value of the last call.\nfunc (b *ContainerStateApplyConfiguration) WithRunning(value *ContainerStateRunningApplyConfiguration) *ContainerStateApplyConfiguration {\n\tb.Running = value\n\treturn b\n}\n\n// WithTerminated sets the Terminated field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Terminated field is set to the value of the last call.\nfunc (b *ContainerStateApplyConfiguration) WithTerminated(value *ContainerStateTerminatedApplyConfiguration) *ContainerStateApplyConfiguration {\n\tb.Terminated = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/containerstaterunning.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// ContainerStateRunningApplyConfiguration represents a declarative configuration of the ContainerStateRunning type for use\n// with apply.\ntype ContainerStateRunningApplyConfiguration struct {\n\tStartedAt *metav1.Time `json:\"startedAt,omitempty\"`\n}\n\n// ContainerStateRunningApplyConfiguration constructs a declarative configuration of the ContainerStateRunning type for use with\n// apply.\nfunc ContainerStateRunning() *ContainerStateRunningApplyConfiguration {\n\treturn &ContainerStateRunningApplyConfiguration{}\n}\n\n// WithStartedAt sets the StartedAt field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StartedAt field is set to the value of the last call.\nfunc (b *ContainerStateRunningApplyConfiguration) WithStartedAt(value metav1.Time) *ContainerStateRunningApplyConfiguration {\n\tb.StartedAt = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/containerstateterminated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// ContainerStateTerminatedApplyConfiguration represents a declarative configuration of the ContainerStateTerminated type for use\n// with apply.\ntype ContainerStateTerminatedApplyConfiguration struct {\n\tExitCode    *int32       `json:\"exitCode,omitempty\"`\n\tSignal      *int32       `json:\"signal,omitempty\"`\n\tReason      *string      `json:\"reason,omitempty\"`\n\tMessage     *string      `json:\"message,omitempty\"`\n\tStartedAt   *metav1.Time `json:\"startedAt,omitempty\"`\n\tFinishedAt  *metav1.Time `json:\"finishedAt,omitempty\"`\n\tContainerID *string      `json:\"containerID,omitempty\"`\n}\n\n// ContainerStateTerminatedApplyConfiguration constructs a declarative configuration of the ContainerStateTerminated type for use with\n// apply.\nfunc ContainerStateTerminated() *ContainerStateTerminatedApplyConfiguration {\n\treturn &ContainerStateTerminatedApplyConfiguration{}\n}\n\n// WithExitCode sets the ExitCode field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ExitCode field is set to the value of the last call.\nfunc (b *ContainerStateTerminatedApplyConfiguration) WithExitCode(value int32) *ContainerStateTerminatedApplyConfiguration {\n\tb.ExitCode = &value\n\treturn b\n}\n\n// WithSignal sets the Signal field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Signal field is set to the value of the last call.\nfunc (b *ContainerStateTerminatedApplyConfiguration) WithSignal(value int32) *ContainerStateTerminatedApplyConfiguration {\n\tb.Signal = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *ContainerStateTerminatedApplyConfiguration) WithReason(value string) *ContainerStateTerminatedApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *ContainerStateTerminatedApplyConfiguration) WithMessage(value string) *ContainerStateTerminatedApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n\n// WithStartedAt sets the StartedAt field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StartedAt field is set to the value of the last call.\nfunc (b *ContainerStateTerminatedApplyConfiguration) WithStartedAt(value metav1.Time) *ContainerStateTerminatedApplyConfiguration {\n\tb.StartedAt = &value\n\treturn b\n}\n\n// WithFinishedAt sets the FinishedAt field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FinishedAt field is set to the value of the last call.\nfunc (b *ContainerStateTerminatedApplyConfiguration) WithFinishedAt(value metav1.Time) *ContainerStateTerminatedApplyConfiguration {\n\tb.FinishedAt = &value\n\treturn b\n}\n\n// WithContainerID sets the ContainerID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ContainerID field is set to the value of the last call.\nfunc (b *ContainerStateTerminatedApplyConfiguration) WithContainerID(value string) *ContainerStateTerminatedApplyConfiguration {\n\tb.ContainerID = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/containerstatewaiting.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ContainerStateWaitingApplyConfiguration represents a declarative configuration of the ContainerStateWaiting type for use\n// with apply.\ntype ContainerStateWaitingApplyConfiguration struct {\n\tReason  *string `json:\"reason,omitempty\"`\n\tMessage *string `json:\"message,omitempty\"`\n}\n\n// ContainerStateWaitingApplyConfiguration constructs a declarative configuration of the ContainerStateWaiting type for use with\n// apply.\nfunc ContainerStateWaiting() *ContainerStateWaitingApplyConfiguration {\n\treturn &ContainerStateWaitingApplyConfiguration{}\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *ContainerStateWaitingApplyConfiguration) WithReason(value string) *ContainerStateWaitingApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *ContainerStateWaitingApplyConfiguration) WithMessage(value string) *ContainerStateWaitingApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/containerstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// ContainerStatusApplyConfiguration represents a declarative configuration of the ContainerStatus type for use\n// with apply.\ntype ContainerStatusApplyConfiguration struct {\n\tName                     *string                                 `json:\"name,omitempty\"`\n\tState                    *ContainerStateApplyConfiguration       `json:\"state,omitempty\"`\n\tLastTerminationState     *ContainerStateApplyConfiguration       `json:\"lastState,omitempty\"`\n\tReady                    *bool                                   `json:\"ready,omitempty\"`\n\tRestartCount             *int32                                  `json:\"restartCount,omitempty\"`\n\tImage                    *string                                 `json:\"image,omitempty\"`\n\tImageID                  *string                                 `json:\"imageID,omitempty\"`\n\tContainerID              *string                                 `json:\"containerID,omitempty\"`\n\tStarted                  *bool                                   `json:\"started,omitempty\"`\n\tAllocatedResources       *corev1.ResourceList                    `json:\"allocatedResources,omitempty\"`\n\tResources                *ResourceRequirementsApplyConfiguration `json:\"resources,omitempty\"`\n\tVolumeMounts             []VolumeMountStatusApplyConfiguration   `json:\"volumeMounts,omitempty\"`\n\tUser                     *ContainerUserApplyConfiguration        `json:\"user,omitempty\"`\n\tAllocatedResourcesStatus []ResourceStatusApplyConfiguration      `json:\"allocatedResourcesStatus,omitempty\"`\n}\n\n// ContainerStatusApplyConfiguration constructs a declarative configuration of the ContainerStatus type for use with\n// apply.\nfunc ContainerStatus() *ContainerStatusApplyConfiguration {\n\treturn &ContainerStatusApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ContainerStatusApplyConfiguration) WithName(value string) *ContainerStatusApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithState sets the State field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the State field is set to the value of the last call.\nfunc (b *ContainerStatusApplyConfiguration) WithState(value *ContainerStateApplyConfiguration) *ContainerStatusApplyConfiguration {\n\tb.State = value\n\treturn b\n}\n\n// WithLastTerminationState sets the LastTerminationState field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTerminationState field is set to the value of the last call.\nfunc (b *ContainerStatusApplyConfiguration) WithLastTerminationState(value *ContainerStateApplyConfiguration) *ContainerStatusApplyConfiguration {\n\tb.LastTerminationState = value\n\treturn b\n}\n\n// WithReady sets the Ready field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Ready field is set to the value of the last call.\nfunc (b *ContainerStatusApplyConfiguration) WithReady(value bool) *ContainerStatusApplyConfiguration {\n\tb.Ready = &value\n\treturn b\n}\n\n// WithRestartCount sets the RestartCount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RestartCount field is set to the value of the last call.\nfunc (b *ContainerStatusApplyConfiguration) WithRestartCount(value int32) *ContainerStatusApplyConfiguration {\n\tb.RestartCount = &value\n\treturn b\n}\n\n// WithImage sets the Image field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Image field is set to the value of the last call.\nfunc (b *ContainerStatusApplyConfiguration) WithImage(value string) *ContainerStatusApplyConfiguration {\n\tb.Image = &value\n\treturn b\n}\n\n// WithImageID sets the ImageID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ImageID field is set to the value of the last call.\nfunc (b *ContainerStatusApplyConfiguration) WithImageID(value string) *ContainerStatusApplyConfiguration {\n\tb.ImageID = &value\n\treturn b\n}\n\n// WithContainerID sets the ContainerID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ContainerID field is set to the value of the last call.\nfunc (b *ContainerStatusApplyConfiguration) WithContainerID(value string) *ContainerStatusApplyConfiguration {\n\tb.ContainerID = &value\n\treturn b\n}\n\n// WithStarted sets the Started field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Started field is set to the value of the last call.\nfunc (b *ContainerStatusApplyConfiguration) WithStarted(value bool) *ContainerStatusApplyConfiguration {\n\tb.Started = &value\n\treturn b\n}\n\n// WithAllocatedResources sets the AllocatedResources field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AllocatedResources field is set to the value of the last call.\nfunc (b *ContainerStatusApplyConfiguration) WithAllocatedResources(value corev1.ResourceList) *ContainerStatusApplyConfiguration {\n\tb.AllocatedResources = &value\n\treturn b\n}\n\n// WithResources sets the Resources field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Resources field is set to the value of the last call.\nfunc (b *ContainerStatusApplyConfiguration) WithResources(value *ResourceRequirementsApplyConfiguration) *ContainerStatusApplyConfiguration {\n\tb.Resources = value\n\treturn b\n}\n\n// WithVolumeMounts adds the given value to the VolumeMounts field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the VolumeMounts field.\nfunc (b *ContainerStatusApplyConfiguration) WithVolumeMounts(values ...*VolumeMountStatusApplyConfiguration) *ContainerStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithVolumeMounts\")\n\t\t}\n\t\tb.VolumeMounts = append(b.VolumeMounts, *values[i])\n\t}\n\treturn b\n}\n\n// WithUser sets the User field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the User field is set to the value of the last call.\nfunc (b *ContainerStatusApplyConfiguration) WithUser(value *ContainerUserApplyConfiguration) *ContainerStatusApplyConfiguration {\n\tb.User = value\n\treturn b\n}\n\n// WithAllocatedResourcesStatus adds the given value to the AllocatedResourcesStatus field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the AllocatedResourcesStatus field.\nfunc (b *ContainerStatusApplyConfiguration) WithAllocatedResourcesStatus(values ...*ResourceStatusApplyConfiguration) *ContainerStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithAllocatedResourcesStatus\")\n\t\t}\n\t\tb.AllocatedResourcesStatus = append(b.AllocatedResourcesStatus, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/containeruser.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ContainerUserApplyConfiguration represents a declarative configuration of the ContainerUser type for use\n// with apply.\ntype ContainerUserApplyConfiguration struct {\n\tLinux *LinuxContainerUserApplyConfiguration `json:\"linux,omitempty\"`\n}\n\n// ContainerUserApplyConfiguration constructs a declarative configuration of the ContainerUser type for use with\n// apply.\nfunc ContainerUser() *ContainerUserApplyConfiguration {\n\treturn &ContainerUserApplyConfiguration{}\n}\n\n// WithLinux sets the Linux field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Linux field is set to the value of the last call.\nfunc (b *ContainerUserApplyConfiguration) WithLinux(value *LinuxContainerUserApplyConfiguration) *ContainerUserApplyConfiguration {\n\tb.Linux = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/csipersistentvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// CSIPersistentVolumeSourceApplyConfiguration represents a declarative configuration of the CSIPersistentVolumeSource type for use\n// with apply.\ntype CSIPersistentVolumeSourceApplyConfiguration struct {\n\tDriver                     *string                            `json:\"driver,omitempty\"`\n\tVolumeHandle               *string                            `json:\"volumeHandle,omitempty\"`\n\tReadOnly                   *bool                              `json:\"readOnly,omitempty\"`\n\tFSType                     *string                            `json:\"fsType,omitempty\"`\n\tVolumeAttributes           map[string]string                  `json:\"volumeAttributes,omitempty\"`\n\tControllerPublishSecretRef *SecretReferenceApplyConfiguration `json:\"controllerPublishSecretRef,omitempty\"`\n\tNodeStageSecretRef         *SecretReferenceApplyConfiguration `json:\"nodeStageSecretRef,omitempty\"`\n\tNodePublishSecretRef       *SecretReferenceApplyConfiguration `json:\"nodePublishSecretRef,omitempty\"`\n\tControllerExpandSecretRef  *SecretReferenceApplyConfiguration `json:\"controllerExpandSecretRef,omitempty\"`\n\tNodeExpandSecretRef        *SecretReferenceApplyConfiguration `json:\"nodeExpandSecretRef,omitempty\"`\n}\n\n// CSIPersistentVolumeSourceApplyConfiguration constructs a declarative configuration of the CSIPersistentVolumeSource type for use with\n// apply.\nfunc CSIPersistentVolumeSource() *CSIPersistentVolumeSourceApplyConfiguration {\n\treturn &CSIPersistentVolumeSourceApplyConfiguration{}\n}\n\n// WithDriver sets the Driver field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Driver field is set to the value of the last call.\nfunc (b *CSIPersistentVolumeSourceApplyConfiguration) WithDriver(value string) *CSIPersistentVolumeSourceApplyConfiguration {\n\tb.Driver = &value\n\treturn b\n}\n\n// WithVolumeHandle sets the VolumeHandle field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VolumeHandle field is set to the value of the last call.\nfunc (b *CSIPersistentVolumeSourceApplyConfiguration) WithVolumeHandle(value string) *CSIPersistentVolumeSourceApplyConfiguration {\n\tb.VolumeHandle = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *CSIPersistentVolumeSourceApplyConfiguration) WithReadOnly(value bool) *CSIPersistentVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *CSIPersistentVolumeSourceApplyConfiguration) WithFSType(value string) *CSIPersistentVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n\n// WithVolumeAttributes puts the entries into the VolumeAttributes field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the VolumeAttributes field,\n// overwriting an existing map entries in VolumeAttributes field with the same key.\nfunc (b *CSIPersistentVolumeSourceApplyConfiguration) WithVolumeAttributes(entries map[string]string) *CSIPersistentVolumeSourceApplyConfiguration {\n\tif b.VolumeAttributes == nil && len(entries) > 0 {\n\t\tb.VolumeAttributes = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.VolumeAttributes[k] = v\n\t}\n\treturn b\n}\n\n// WithControllerPublishSecretRef sets the ControllerPublishSecretRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ControllerPublishSecretRef field is set to the value of the last call.\nfunc (b *CSIPersistentVolumeSourceApplyConfiguration) WithControllerPublishSecretRef(value *SecretReferenceApplyConfiguration) *CSIPersistentVolumeSourceApplyConfiguration {\n\tb.ControllerPublishSecretRef = value\n\treturn b\n}\n\n// WithNodeStageSecretRef sets the NodeStageSecretRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeStageSecretRef field is set to the value of the last call.\nfunc (b *CSIPersistentVolumeSourceApplyConfiguration) WithNodeStageSecretRef(value *SecretReferenceApplyConfiguration) *CSIPersistentVolumeSourceApplyConfiguration {\n\tb.NodeStageSecretRef = value\n\treturn b\n}\n\n// WithNodePublishSecretRef sets the NodePublishSecretRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodePublishSecretRef field is set to the value of the last call.\nfunc (b *CSIPersistentVolumeSourceApplyConfiguration) WithNodePublishSecretRef(value *SecretReferenceApplyConfiguration) *CSIPersistentVolumeSourceApplyConfiguration {\n\tb.NodePublishSecretRef = value\n\treturn b\n}\n\n// WithControllerExpandSecretRef sets the ControllerExpandSecretRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ControllerExpandSecretRef field is set to the value of the last call.\nfunc (b *CSIPersistentVolumeSourceApplyConfiguration) WithControllerExpandSecretRef(value *SecretReferenceApplyConfiguration) *CSIPersistentVolumeSourceApplyConfiguration {\n\tb.ControllerExpandSecretRef = value\n\treturn b\n}\n\n// WithNodeExpandSecretRef sets the NodeExpandSecretRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeExpandSecretRef field is set to the value of the last call.\nfunc (b *CSIPersistentVolumeSourceApplyConfiguration) WithNodeExpandSecretRef(value *SecretReferenceApplyConfiguration) *CSIPersistentVolumeSourceApplyConfiguration {\n\tb.NodeExpandSecretRef = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/csivolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// CSIVolumeSourceApplyConfiguration represents a declarative configuration of the CSIVolumeSource type for use\n// with apply.\ntype CSIVolumeSourceApplyConfiguration struct {\n\tDriver               *string                                 `json:\"driver,omitempty\"`\n\tReadOnly             *bool                                   `json:\"readOnly,omitempty\"`\n\tFSType               *string                                 `json:\"fsType,omitempty\"`\n\tVolumeAttributes     map[string]string                       `json:\"volumeAttributes,omitempty\"`\n\tNodePublishSecretRef *LocalObjectReferenceApplyConfiguration `json:\"nodePublishSecretRef,omitempty\"`\n}\n\n// CSIVolumeSourceApplyConfiguration constructs a declarative configuration of the CSIVolumeSource type for use with\n// apply.\nfunc CSIVolumeSource() *CSIVolumeSourceApplyConfiguration {\n\treturn &CSIVolumeSourceApplyConfiguration{}\n}\n\n// WithDriver sets the Driver field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Driver field is set to the value of the last call.\nfunc (b *CSIVolumeSourceApplyConfiguration) WithDriver(value string) *CSIVolumeSourceApplyConfiguration {\n\tb.Driver = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *CSIVolumeSourceApplyConfiguration) WithReadOnly(value bool) *CSIVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *CSIVolumeSourceApplyConfiguration) WithFSType(value string) *CSIVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n\n// WithVolumeAttributes puts the entries into the VolumeAttributes field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the VolumeAttributes field,\n// overwriting an existing map entries in VolumeAttributes field with the same key.\nfunc (b *CSIVolumeSourceApplyConfiguration) WithVolumeAttributes(entries map[string]string) *CSIVolumeSourceApplyConfiguration {\n\tif b.VolumeAttributes == nil && len(entries) > 0 {\n\t\tb.VolumeAttributes = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.VolumeAttributes[k] = v\n\t}\n\treturn b\n}\n\n// WithNodePublishSecretRef sets the NodePublishSecretRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodePublishSecretRef field is set to the value of the last call.\nfunc (b *CSIVolumeSourceApplyConfiguration) WithNodePublishSecretRef(value *LocalObjectReferenceApplyConfiguration) *CSIVolumeSourceApplyConfiguration {\n\tb.NodePublishSecretRef = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/daemonendpoint.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// DaemonEndpointApplyConfiguration represents a declarative configuration of the DaemonEndpoint type for use\n// with apply.\ntype DaemonEndpointApplyConfiguration struct {\n\tPort *int32 `json:\"Port,omitempty\"`\n}\n\n// DaemonEndpointApplyConfiguration constructs a declarative configuration of the DaemonEndpoint type for use with\n// apply.\nfunc DaemonEndpoint() *DaemonEndpointApplyConfiguration {\n\treturn &DaemonEndpointApplyConfiguration{}\n}\n\n// WithPort sets the Port field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Port field is set to the value of the last call.\nfunc (b *DaemonEndpointApplyConfiguration) WithPort(value int32) *DaemonEndpointApplyConfiguration {\n\tb.Port = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/downwardapiprojection.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// DownwardAPIProjectionApplyConfiguration represents a declarative configuration of the DownwardAPIProjection type for use\n// with apply.\ntype DownwardAPIProjectionApplyConfiguration struct {\n\tItems []DownwardAPIVolumeFileApplyConfiguration `json:\"items,omitempty\"`\n}\n\n// DownwardAPIProjectionApplyConfiguration constructs a declarative configuration of the DownwardAPIProjection type for use with\n// apply.\nfunc DownwardAPIProjection() *DownwardAPIProjectionApplyConfiguration {\n\treturn &DownwardAPIProjectionApplyConfiguration{}\n}\n\n// WithItems adds the given value to the Items field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Items field.\nfunc (b *DownwardAPIProjectionApplyConfiguration) WithItems(values ...*DownwardAPIVolumeFileApplyConfiguration) *DownwardAPIProjectionApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithItems\")\n\t\t}\n\t\tb.Items = append(b.Items, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/downwardapivolumefile.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// DownwardAPIVolumeFileApplyConfiguration represents a declarative configuration of the DownwardAPIVolumeFile type for use\n// with apply.\ntype DownwardAPIVolumeFileApplyConfiguration struct {\n\tPath             *string                                  `json:\"path,omitempty\"`\n\tFieldRef         *ObjectFieldSelectorApplyConfiguration   `json:\"fieldRef,omitempty\"`\n\tResourceFieldRef *ResourceFieldSelectorApplyConfiguration `json:\"resourceFieldRef,omitempty\"`\n\tMode             *int32                                   `json:\"mode,omitempty\"`\n}\n\n// DownwardAPIVolumeFileApplyConfiguration constructs a declarative configuration of the DownwardAPIVolumeFile type for use with\n// apply.\nfunc DownwardAPIVolumeFile() *DownwardAPIVolumeFileApplyConfiguration {\n\treturn &DownwardAPIVolumeFileApplyConfiguration{}\n}\n\n// WithPath sets the Path field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Path field is set to the value of the last call.\nfunc (b *DownwardAPIVolumeFileApplyConfiguration) WithPath(value string) *DownwardAPIVolumeFileApplyConfiguration {\n\tb.Path = &value\n\treturn b\n}\n\n// WithFieldRef sets the FieldRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FieldRef field is set to the value of the last call.\nfunc (b *DownwardAPIVolumeFileApplyConfiguration) WithFieldRef(value *ObjectFieldSelectorApplyConfiguration) *DownwardAPIVolumeFileApplyConfiguration {\n\tb.FieldRef = value\n\treturn b\n}\n\n// WithResourceFieldRef sets the ResourceFieldRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceFieldRef field is set to the value of the last call.\nfunc (b *DownwardAPIVolumeFileApplyConfiguration) WithResourceFieldRef(value *ResourceFieldSelectorApplyConfiguration) *DownwardAPIVolumeFileApplyConfiguration {\n\tb.ResourceFieldRef = value\n\treturn b\n}\n\n// WithMode sets the Mode field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Mode field is set to the value of the last call.\nfunc (b *DownwardAPIVolumeFileApplyConfiguration) WithMode(value int32) *DownwardAPIVolumeFileApplyConfiguration {\n\tb.Mode = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/downwardapivolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// DownwardAPIVolumeSourceApplyConfiguration represents a declarative configuration of the DownwardAPIVolumeSource type for use\n// with apply.\ntype DownwardAPIVolumeSourceApplyConfiguration struct {\n\tItems       []DownwardAPIVolumeFileApplyConfiguration `json:\"items,omitempty\"`\n\tDefaultMode *int32                                    `json:\"defaultMode,omitempty\"`\n}\n\n// DownwardAPIVolumeSourceApplyConfiguration constructs a declarative configuration of the DownwardAPIVolumeSource type for use with\n// apply.\nfunc DownwardAPIVolumeSource() *DownwardAPIVolumeSourceApplyConfiguration {\n\treturn &DownwardAPIVolumeSourceApplyConfiguration{}\n}\n\n// WithItems adds the given value to the Items field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Items field.\nfunc (b *DownwardAPIVolumeSourceApplyConfiguration) WithItems(values ...*DownwardAPIVolumeFileApplyConfiguration) *DownwardAPIVolumeSourceApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithItems\")\n\t\t}\n\t\tb.Items = append(b.Items, *values[i])\n\t}\n\treturn b\n}\n\n// WithDefaultMode sets the DefaultMode field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DefaultMode field is set to the value of the last call.\nfunc (b *DownwardAPIVolumeSourceApplyConfiguration) WithDefaultMode(value int32) *DownwardAPIVolumeSourceApplyConfiguration {\n\tb.DefaultMode = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/emptydirvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n)\n\n// EmptyDirVolumeSourceApplyConfiguration represents a declarative configuration of the EmptyDirVolumeSource type for use\n// with apply.\ntype EmptyDirVolumeSourceApplyConfiguration struct {\n\tMedium    *corev1.StorageMedium `json:\"medium,omitempty\"`\n\tSizeLimit *resource.Quantity    `json:\"sizeLimit,omitempty\"`\n}\n\n// EmptyDirVolumeSourceApplyConfiguration constructs a declarative configuration of the EmptyDirVolumeSource type for use with\n// apply.\nfunc EmptyDirVolumeSource() *EmptyDirVolumeSourceApplyConfiguration {\n\treturn &EmptyDirVolumeSourceApplyConfiguration{}\n}\n\n// WithMedium sets the Medium field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Medium field is set to the value of the last call.\nfunc (b *EmptyDirVolumeSourceApplyConfiguration) WithMedium(value corev1.StorageMedium) *EmptyDirVolumeSourceApplyConfiguration {\n\tb.Medium = &value\n\treturn b\n}\n\n// WithSizeLimit sets the SizeLimit field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SizeLimit field is set to the value of the last call.\nfunc (b *EmptyDirVolumeSourceApplyConfiguration) WithSizeLimit(value resource.Quantity) *EmptyDirVolumeSourceApplyConfiguration {\n\tb.SizeLimit = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/endpointaddress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// EndpointAddressApplyConfiguration represents a declarative configuration of the EndpointAddress type for use\n// with apply.\ntype EndpointAddressApplyConfiguration struct {\n\tIP        *string                            `json:\"ip,omitempty\"`\n\tHostname  *string                            `json:\"hostname,omitempty\"`\n\tNodeName  *string                            `json:\"nodeName,omitempty\"`\n\tTargetRef *ObjectReferenceApplyConfiguration `json:\"targetRef,omitempty\"`\n}\n\n// EndpointAddressApplyConfiguration constructs a declarative configuration of the EndpointAddress type for use with\n// apply.\nfunc EndpointAddress() *EndpointAddressApplyConfiguration {\n\treturn &EndpointAddressApplyConfiguration{}\n}\n\n// WithIP sets the IP field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the IP field is set to the value of the last call.\nfunc (b *EndpointAddressApplyConfiguration) WithIP(value string) *EndpointAddressApplyConfiguration {\n\tb.IP = &value\n\treturn b\n}\n\n// WithHostname sets the Hostname field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Hostname field is set to the value of the last call.\nfunc (b *EndpointAddressApplyConfiguration) WithHostname(value string) *EndpointAddressApplyConfiguration {\n\tb.Hostname = &value\n\treturn b\n}\n\n// WithNodeName sets the NodeName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeName field is set to the value of the last call.\nfunc (b *EndpointAddressApplyConfiguration) WithNodeName(value string) *EndpointAddressApplyConfiguration {\n\tb.NodeName = &value\n\treturn b\n}\n\n// WithTargetRef sets the TargetRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TargetRef field is set to the value of the last call.\nfunc (b *EndpointAddressApplyConfiguration) WithTargetRef(value *ObjectReferenceApplyConfiguration) *EndpointAddressApplyConfiguration {\n\tb.TargetRef = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/endpointport.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// EndpointPortApplyConfiguration represents a declarative configuration of the EndpointPort type for use\n// with apply.\ntype EndpointPortApplyConfiguration struct {\n\tName        *string          `json:\"name,omitempty\"`\n\tPort        *int32           `json:\"port,omitempty\"`\n\tProtocol    *corev1.Protocol `json:\"protocol,omitempty\"`\n\tAppProtocol *string          `json:\"appProtocol,omitempty\"`\n}\n\n// EndpointPortApplyConfiguration constructs a declarative configuration of the EndpointPort type for use with\n// apply.\nfunc EndpointPort() *EndpointPortApplyConfiguration {\n\treturn &EndpointPortApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *EndpointPortApplyConfiguration) WithName(value string) *EndpointPortApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithPort sets the Port field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Port field is set to the value of the last call.\nfunc (b *EndpointPortApplyConfiguration) WithPort(value int32) *EndpointPortApplyConfiguration {\n\tb.Port = &value\n\treturn b\n}\n\n// WithProtocol sets the Protocol field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Protocol field is set to the value of the last call.\nfunc (b *EndpointPortApplyConfiguration) WithProtocol(value corev1.Protocol) *EndpointPortApplyConfiguration {\n\tb.Protocol = &value\n\treturn b\n}\n\n// WithAppProtocol sets the AppProtocol field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AppProtocol field is set to the value of the last call.\nfunc (b *EndpointPortApplyConfiguration) WithAppProtocol(value string) *EndpointPortApplyConfiguration {\n\tb.AppProtocol = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/endpoints.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// EndpointsApplyConfiguration represents a declarative configuration of the Endpoints type for use\n// with apply.\ntype EndpointsApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSubsets                              []EndpointSubsetApplyConfiguration `json:\"subsets,omitempty\"`\n}\n\n// Endpoints constructs a declarative configuration of the Endpoints type for use with\n// apply.\nfunc Endpoints(name, namespace string) *EndpointsApplyConfiguration {\n\tb := &EndpointsApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Endpoints\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b\n}\n\n// ExtractEndpoints extracts the applied configuration owned by fieldManager from\n// endpoints. If no managedFields are found in endpoints for fieldManager, a\n// EndpointsApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// endpoints must be a unmodified Endpoints API object that was retrieved from the Kubernetes API.\n// ExtractEndpoints provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractEndpoints(endpoints *corev1.Endpoints, fieldManager string) (*EndpointsApplyConfiguration, error) {\n\treturn extractEndpoints(endpoints, fieldManager, \"\")\n}\n\n// ExtractEndpointsStatus is the same as ExtractEndpoints except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractEndpointsStatus(endpoints *corev1.Endpoints, fieldManager string) (*EndpointsApplyConfiguration, error) {\n\treturn extractEndpoints(endpoints, fieldManager, \"status\")\n}\n\nfunc extractEndpoints(endpoints *corev1.Endpoints, fieldManager string, subresource string) (*EndpointsApplyConfiguration, error) {\n\tb := &EndpointsApplyConfiguration{}\n\terr := managedfields.ExtractInto(endpoints, internal.Parser().Type(\"io.k8s.api.core.v1.Endpoints\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(endpoints.Name)\n\tb.WithNamespace(endpoints.Namespace)\n\n\tb.WithKind(\"Endpoints\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *EndpointsApplyConfiguration) WithKind(value string) *EndpointsApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *EndpointsApplyConfiguration) WithAPIVersion(value string) *EndpointsApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *EndpointsApplyConfiguration) WithName(value string) *EndpointsApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *EndpointsApplyConfiguration) WithGenerateName(value string) *EndpointsApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *EndpointsApplyConfiguration) WithNamespace(value string) *EndpointsApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *EndpointsApplyConfiguration) WithUID(value types.UID) *EndpointsApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *EndpointsApplyConfiguration) WithResourceVersion(value string) *EndpointsApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *EndpointsApplyConfiguration) WithGeneration(value int64) *EndpointsApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *EndpointsApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *EndpointsApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *EndpointsApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *EndpointsApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *EndpointsApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *EndpointsApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *EndpointsApplyConfiguration) WithLabels(entries map[string]string) *EndpointsApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *EndpointsApplyConfiguration) WithAnnotations(entries map[string]string) *EndpointsApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *EndpointsApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *EndpointsApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *EndpointsApplyConfiguration) WithFinalizers(values ...string) *EndpointsApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *EndpointsApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSubsets adds the given value to the Subsets field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Subsets field.\nfunc (b *EndpointsApplyConfiguration) WithSubsets(values ...*EndpointSubsetApplyConfiguration) *EndpointsApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithSubsets\")\n\t\t}\n\t\tb.Subsets = append(b.Subsets, *values[i])\n\t}\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *EndpointsApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/endpointsubset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// EndpointSubsetApplyConfiguration represents a declarative configuration of the EndpointSubset type for use\n// with apply.\ntype EndpointSubsetApplyConfiguration struct {\n\tAddresses         []EndpointAddressApplyConfiguration `json:\"addresses,omitempty\"`\n\tNotReadyAddresses []EndpointAddressApplyConfiguration `json:\"notReadyAddresses,omitempty\"`\n\tPorts             []EndpointPortApplyConfiguration    `json:\"ports,omitempty\"`\n}\n\n// EndpointSubsetApplyConfiguration constructs a declarative configuration of the EndpointSubset type for use with\n// apply.\nfunc EndpointSubset() *EndpointSubsetApplyConfiguration {\n\treturn &EndpointSubsetApplyConfiguration{}\n}\n\n// WithAddresses adds the given value to the Addresses field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Addresses field.\nfunc (b *EndpointSubsetApplyConfiguration) WithAddresses(values ...*EndpointAddressApplyConfiguration) *EndpointSubsetApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithAddresses\")\n\t\t}\n\t\tb.Addresses = append(b.Addresses, *values[i])\n\t}\n\treturn b\n}\n\n// WithNotReadyAddresses adds the given value to the NotReadyAddresses field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the NotReadyAddresses field.\nfunc (b *EndpointSubsetApplyConfiguration) WithNotReadyAddresses(values ...*EndpointAddressApplyConfiguration) *EndpointSubsetApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithNotReadyAddresses\")\n\t\t}\n\t\tb.NotReadyAddresses = append(b.NotReadyAddresses, *values[i])\n\t}\n\treturn b\n}\n\n// WithPorts adds the given value to the Ports field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ports field.\nfunc (b *EndpointSubsetApplyConfiguration) WithPorts(values ...*EndpointPortApplyConfiguration) *EndpointSubsetApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPorts\")\n\t\t}\n\t\tb.Ports = append(b.Ports, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/envfromsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// EnvFromSourceApplyConfiguration represents a declarative configuration of the EnvFromSource type for use\n// with apply.\ntype EnvFromSourceApplyConfiguration struct {\n\tPrefix       *string                               `json:\"prefix,omitempty\"`\n\tConfigMapRef *ConfigMapEnvSourceApplyConfiguration `json:\"configMapRef,omitempty\"`\n\tSecretRef    *SecretEnvSourceApplyConfiguration    `json:\"secretRef,omitempty\"`\n}\n\n// EnvFromSourceApplyConfiguration constructs a declarative configuration of the EnvFromSource type for use with\n// apply.\nfunc EnvFromSource() *EnvFromSourceApplyConfiguration {\n\treturn &EnvFromSourceApplyConfiguration{}\n}\n\n// WithPrefix sets the Prefix field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Prefix field is set to the value of the last call.\nfunc (b *EnvFromSourceApplyConfiguration) WithPrefix(value string) *EnvFromSourceApplyConfiguration {\n\tb.Prefix = &value\n\treturn b\n}\n\n// WithConfigMapRef sets the ConfigMapRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ConfigMapRef field is set to the value of the last call.\nfunc (b *EnvFromSourceApplyConfiguration) WithConfigMapRef(value *ConfigMapEnvSourceApplyConfiguration) *EnvFromSourceApplyConfiguration {\n\tb.ConfigMapRef = value\n\treturn b\n}\n\n// WithSecretRef sets the SecretRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretRef field is set to the value of the last call.\nfunc (b *EnvFromSourceApplyConfiguration) WithSecretRef(value *SecretEnvSourceApplyConfiguration) *EnvFromSourceApplyConfiguration {\n\tb.SecretRef = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/envvar.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// EnvVarApplyConfiguration represents a declarative configuration of the EnvVar type for use\n// with apply.\ntype EnvVarApplyConfiguration struct {\n\tName      *string                         `json:\"name,omitempty\"`\n\tValue     *string                         `json:\"value,omitempty\"`\n\tValueFrom *EnvVarSourceApplyConfiguration `json:\"valueFrom,omitempty\"`\n}\n\n// EnvVarApplyConfiguration constructs a declarative configuration of the EnvVar type for use with\n// apply.\nfunc EnvVar() *EnvVarApplyConfiguration {\n\treturn &EnvVarApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *EnvVarApplyConfiguration) WithName(value string) *EnvVarApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithValue sets the Value field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Value field is set to the value of the last call.\nfunc (b *EnvVarApplyConfiguration) WithValue(value string) *EnvVarApplyConfiguration {\n\tb.Value = &value\n\treturn b\n}\n\n// WithValueFrom sets the ValueFrom field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ValueFrom field is set to the value of the last call.\nfunc (b *EnvVarApplyConfiguration) WithValueFrom(value *EnvVarSourceApplyConfiguration) *EnvVarApplyConfiguration {\n\tb.ValueFrom = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/envvarsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// EnvVarSourceApplyConfiguration represents a declarative configuration of the EnvVarSource type for use\n// with apply.\ntype EnvVarSourceApplyConfiguration struct {\n\tFieldRef         *ObjectFieldSelectorApplyConfiguration   `json:\"fieldRef,omitempty\"`\n\tResourceFieldRef *ResourceFieldSelectorApplyConfiguration `json:\"resourceFieldRef,omitempty\"`\n\tConfigMapKeyRef  *ConfigMapKeySelectorApplyConfiguration  `json:\"configMapKeyRef,omitempty\"`\n\tSecretKeyRef     *SecretKeySelectorApplyConfiguration     `json:\"secretKeyRef,omitempty\"`\n}\n\n// EnvVarSourceApplyConfiguration constructs a declarative configuration of the EnvVarSource type for use with\n// apply.\nfunc EnvVarSource() *EnvVarSourceApplyConfiguration {\n\treturn &EnvVarSourceApplyConfiguration{}\n}\n\n// WithFieldRef sets the FieldRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FieldRef field is set to the value of the last call.\nfunc (b *EnvVarSourceApplyConfiguration) WithFieldRef(value *ObjectFieldSelectorApplyConfiguration) *EnvVarSourceApplyConfiguration {\n\tb.FieldRef = value\n\treturn b\n}\n\n// WithResourceFieldRef sets the ResourceFieldRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceFieldRef field is set to the value of the last call.\nfunc (b *EnvVarSourceApplyConfiguration) WithResourceFieldRef(value *ResourceFieldSelectorApplyConfiguration) *EnvVarSourceApplyConfiguration {\n\tb.ResourceFieldRef = value\n\treturn b\n}\n\n// WithConfigMapKeyRef sets the ConfigMapKeyRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ConfigMapKeyRef field is set to the value of the last call.\nfunc (b *EnvVarSourceApplyConfiguration) WithConfigMapKeyRef(value *ConfigMapKeySelectorApplyConfiguration) *EnvVarSourceApplyConfiguration {\n\tb.ConfigMapKeyRef = value\n\treturn b\n}\n\n// WithSecretKeyRef sets the SecretKeyRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretKeyRef field is set to the value of the last call.\nfunc (b *EnvVarSourceApplyConfiguration) WithSecretKeyRef(value *SecretKeySelectorApplyConfiguration) *EnvVarSourceApplyConfiguration {\n\tb.SecretKeyRef = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/ephemeralcontainer.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// EphemeralContainerApplyConfiguration represents a declarative configuration of the EphemeralContainer type for use\n// with apply.\ntype EphemeralContainerApplyConfiguration struct {\n\tEphemeralContainerCommonApplyConfiguration `json:\",inline\"`\n\tTargetContainerName                        *string `json:\"targetContainerName,omitempty\"`\n}\n\n// EphemeralContainerApplyConfiguration constructs a declarative configuration of the EphemeralContainer type for use with\n// apply.\nfunc EphemeralContainer() *EphemeralContainerApplyConfiguration {\n\treturn &EphemeralContainerApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *EphemeralContainerApplyConfiguration) WithName(value string) *EphemeralContainerApplyConfiguration {\n\tb.EphemeralContainerCommonApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithImage sets the Image field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Image field is set to the value of the last call.\nfunc (b *EphemeralContainerApplyConfiguration) WithImage(value string) *EphemeralContainerApplyConfiguration {\n\tb.EphemeralContainerCommonApplyConfiguration.Image = &value\n\treturn b\n}\n\n// WithCommand adds the given value to the Command field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Command field.\nfunc (b *EphemeralContainerApplyConfiguration) WithCommand(values ...string) *EphemeralContainerApplyConfiguration {\n\tfor i := range values {\n\t\tb.EphemeralContainerCommonApplyConfiguration.Command = append(b.EphemeralContainerCommonApplyConfiguration.Command, values[i])\n\t}\n\treturn b\n}\n\n// WithArgs adds the given value to the Args field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Args field.\nfunc (b *EphemeralContainerApplyConfiguration) WithArgs(values ...string) *EphemeralContainerApplyConfiguration {\n\tfor i := range values {\n\t\tb.EphemeralContainerCommonApplyConfiguration.Args = append(b.EphemeralContainerCommonApplyConfiguration.Args, values[i])\n\t}\n\treturn b\n}\n\n// WithWorkingDir sets the WorkingDir field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the WorkingDir field is set to the value of the last call.\nfunc (b *EphemeralContainerApplyConfiguration) WithWorkingDir(value string) *EphemeralContainerApplyConfiguration {\n\tb.EphemeralContainerCommonApplyConfiguration.WorkingDir = &value\n\treturn b\n}\n\n// WithPorts adds the given value to the Ports field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ports field.\nfunc (b *EphemeralContainerApplyConfiguration) WithPorts(values ...*ContainerPortApplyConfiguration) *EphemeralContainerApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPorts\")\n\t\t}\n\t\tb.EphemeralContainerCommonApplyConfiguration.Ports = append(b.EphemeralContainerCommonApplyConfiguration.Ports, *values[i])\n\t}\n\treturn b\n}\n\n// WithEnvFrom adds the given value to the EnvFrom field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the EnvFrom field.\nfunc (b *EphemeralContainerApplyConfiguration) WithEnvFrom(values ...*EnvFromSourceApplyConfiguration) *EphemeralContainerApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithEnvFrom\")\n\t\t}\n\t\tb.EphemeralContainerCommonApplyConfiguration.EnvFrom = append(b.EphemeralContainerCommonApplyConfiguration.EnvFrom, *values[i])\n\t}\n\treturn b\n}\n\n// WithEnv adds the given value to the Env field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Env field.\nfunc (b *EphemeralContainerApplyConfiguration) WithEnv(values ...*EnvVarApplyConfiguration) *EphemeralContainerApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithEnv\")\n\t\t}\n\t\tb.EphemeralContainerCommonApplyConfiguration.Env = append(b.EphemeralContainerCommonApplyConfiguration.Env, *values[i])\n\t}\n\treturn b\n}\n\n// WithResources sets the Resources field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Resources field is set to the value of the last call.\nfunc (b *EphemeralContainerApplyConfiguration) WithResources(value *ResourceRequirementsApplyConfiguration) *EphemeralContainerApplyConfiguration {\n\tb.EphemeralContainerCommonApplyConfiguration.Resources = value\n\treturn b\n}\n\n// WithResizePolicy adds the given value to the ResizePolicy field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ResizePolicy field.\nfunc (b *EphemeralContainerApplyConfiguration) WithResizePolicy(values ...*ContainerResizePolicyApplyConfiguration) *EphemeralContainerApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithResizePolicy\")\n\t\t}\n\t\tb.EphemeralContainerCommonApplyConfiguration.ResizePolicy = append(b.EphemeralContainerCommonApplyConfiguration.ResizePolicy, *values[i])\n\t}\n\treturn b\n}\n\n// WithRestartPolicy sets the RestartPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RestartPolicy field is set to the value of the last call.\nfunc (b *EphemeralContainerApplyConfiguration) WithRestartPolicy(value corev1.ContainerRestartPolicy) *EphemeralContainerApplyConfiguration {\n\tb.EphemeralContainerCommonApplyConfiguration.RestartPolicy = &value\n\treturn b\n}\n\n// WithVolumeMounts adds the given value to the VolumeMounts field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the VolumeMounts field.\nfunc (b *EphemeralContainerApplyConfiguration) WithVolumeMounts(values ...*VolumeMountApplyConfiguration) *EphemeralContainerApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithVolumeMounts\")\n\t\t}\n\t\tb.EphemeralContainerCommonApplyConfiguration.VolumeMounts = append(b.EphemeralContainerCommonApplyConfiguration.VolumeMounts, *values[i])\n\t}\n\treturn b\n}\n\n// WithVolumeDevices adds the given value to the VolumeDevices field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the VolumeDevices field.\nfunc (b *EphemeralContainerApplyConfiguration) WithVolumeDevices(values ...*VolumeDeviceApplyConfiguration) *EphemeralContainerApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithVolumeDevices\")\n\t\t}\n\t\tb.EphemeralContainerCommonApplyConfiguration.VolumeDevices = append(b.EphemeralContainerCommonApplyConfiguration.VolumeDevices, *values[i])\n\t}\n\treturn b\n}\n\n// WithLivenessProbe sets the LivenessProbe field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LivenessProbe field is set to the value of the last call.\nfunc (b *EphemeralContainerApplyConfiguration) WithLivenessProbe(value *ProbeApplyConfiguration) *EphemeralContainerApplyConfiguration {\n\tb.EphemeralContainerCommonApplyConfiguration.LivenessProbe = value\n\treturn b\n}\n\n// WithReadinessProbe sets the ReadinessProbe field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadinessProbe field is set to the value of the last call.\nfunc (b *EphemeralContainerApplyConfiguration) WithReadinessProbe(value *ProbeApplyConfiguration) *EphemeralContainerApplyConfiguration {\n\tb.EphemeralContainerCommonApplyConfiguration.ReadinessProbe = value\n\treturn b\n}\n\n// WithStartupProbe sets the StartupProbe field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StartupProbe field is set to the value of the last call.\nfunc (b *EphemeralContainerApplyConfiguration) WithStartupProbe(value *ProbeApplyConfiguration) *EphemeralContainerApplyConfiguration {\n\tb.EphemeralContainerCommonApplyConfiguration.StartupProbe = value\n\treturn b\n}\n\n// WithLifecycle sets the Lifecycle field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Lifecycle field is set to the value of the last call.\nfunc (b *EphemeralContainerApplyConfiguration) WithLifecycle(value *LifecycleApplyConfiguration) *EphemeralContainerApplyConfiguration {\n\tb.EphemeralContainerCommonApplyConfiguration.Lifecycle = value\n\treturn b\n}\n\n// WithTerminationMessagePath sets the TerminationMessagePath field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TerminationMessagePath field is set to the value of the last call.\nfunc (b *EphemeralContainerApplyConfiguration) WithTerminationMessagePath(value string) *EphemeralContainerApplyConfiguration {\n\tb.EphemeralContainerCommonApplyConfiguration.TerminationMessagePath = &value\n\treturn b\n}\n\n// WithTerminationMessagePolicy sets the TerminationMessagePolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TerminationMessagePolicy field is set to the value of the last call.\nfunc (b *EphemeralContainerApplyConfiguration) WithTerminationMessagePolicy(value corev1.TerminationMessagePolicy) *EphemeralContainerApplyConfiguration {\n\tb.EphemeralContainerCommonApplyConfiguration.TerminationMessagePolicy = &value\n\treturn b\n}\n\n// WithImagePullPolicy sets the ImagePullPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ImagePullPolicy field is set to the value of the last call.\nfunc (b *EphemeralContainerApplyConfiguration) WithImagePullPolicy(value corev1.PullPolicy) *EphemeralContainerApplyConfiguration {\n\tb.EphemeralContainerCommonApplyConfiguration.ImagePullPolicy = &value\n\treturn b\n}\n\n// WithSecurityContext sets the SecurityContext field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecurityContext field is set to the value of the last call.\nfunc (b *EphemeralContainerApplyConfiguration) WithSecurityContext(value *SecurityContextApplyConfiguration) *EphemeralContainerApplyConfiguration {\n\tb.EphemeralContainerCommonApplyConfiguration.SecurityContext = value\n\treturn b\n}\n\n// WithStdin sets the Stdin field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Stdin field is set to the value of the last call.\nfunc (b *EphemeralContainerApplyConfiguration) WithStdin(value bool) *EphemeralContainerApplyConfiguration {\n\tb.EphemeralContainerCommonApplyConfiguration.Stdin = &value\n\treturn b\n}\n\n// WithStdinOnce sets the StdinOnce field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StdinOnce field is set to the value of the last call.\nfunc (b *EphemeralContainerApplyConfiguration) WithStdinOnce(value bool) *EphemeralContainerApplyConfiguration {\n\tb.EphemeralContainerCommonApplyConfiguration.StdinOnce = &value\n\treturn b\n}\n\n// WithTTY sets the TTY field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TTY field is set to the value of the last call.\nfunc (b *EphemeralContainerApplyConfiguration) WithTTY(value bool) *EphemeralContainerApplyConfiguration {\n\tb.EphemeralContainerCommonApplyConfiguration.TTY = &value\n\treturn b\n}\n\n// WithTargetContainerName sets the TargetContainerName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TargetContainerName field is set to the value of the last call.\nfunc (b *EphemeralContainerApplyConfiguration) WithTargetContainerName(value string) *EphemeralContainerApplyConfiguration {\n\tb.TargetContainerName = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/ephemeralcontainercommon.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// EphemeralContainerCommonApplyConfiguration represents a declarative configuration of the EphemeralContainerCommon type for use\n// with apply.\ntype EphemeralContainerCommonApplyConfiguration struct {\n\tName                     *string                                   `json:\"name,omitempty\"`\n\tImage                    *string                                   `json:\"image,omitempty\"`\n\tCommand                  []string                                  `json:\"command,omitempty\"`\n\tArgs                     []string                                  `json:\"args,omitempty\"`\n\tWorkingDir               *string                                   `json:\"workingDir,omitempty\"`\n\tPorts                    []ContainerPortApplyConfiguration         `json:\"ports,omitempty\"`\n\tEnvFrom                  []EnvFromSourceApplyConfiguration         `json:\"envFrom,omitempty\"`\n\tEnv                      []EnvVarApplyConfiguration                `json:\"env,omitempty\"`\n\tResources                *ResourceRequirementsApplyConfiguration   `json:\"resources,omitempty\"`\n\tResizePolicy             []ContainerResizePolicyApplyConfiguration `json:\"resizePolicy,omitempty\"`\n\tRestartPolicy            *corev1.ContainerRestartPolicy            `json:\"restartPolicy,omitempty\"`\n\tVolumeMounts             []VolumeMountApplyConfiguration           `json:\"volumeMounts,omitempty\"`\n\tVolumeDevices            []VolumeDeviceApplyConfiguration          `json:\"volumeDevices,omitempty\"`\n\tLivenessProbe            *ProbeApplyConfiguration                  `json:\"livenessProbe,omitempty\"`\n\tReadinessProbe           *ProbeApplyConfiguration                  `json:\"readinessProbe,omitempty\"`\n\tStartupProbe             *ProbeApplyConfiguration                  `json:\"startupProbe,omitempty\"`\n\tLifecycle                *LifecycleApplyConfiguration              `json:\"lifecycle,omitempty\"`\n\tTerminationMessagePath   *string                                   `json:\"terminationMessagePath,omitempty\"`\n\tTerminationMessagePolicy *corev1.TerminationMessagePolicy          `json:\"terminationMessagePolicy,omitempty\"`\n\tImagePullPolicy          *corev1.PullPolicy                        `json:\"imagePullPolicy,omitempty\"`\n\tSecurityContext          *SecurityContextApplyConfiguration        `json:\"securityContext,omitempty\"`\n\tStdin                    *bool                                     `json:\"stdin,omitempty\"`\n\tStdinOnce                *bool                                     `json:\"stdinOnce,omitempty\"`\n\tTTY                      *bool                                     `json:\"tty,omitempty\"`\n}\n\n// EphemeralContainerCommonApplyConfiguration constructs a declarative configuration of the EphemeralContainerCommon type for use with\n// apply.\nfunc EphemeralContainerCommon() *EphemeralContainerCommonApplyConfiguration {\n\treturn &EphemeralContainerCommonApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithName(value string) *EphemeralContainerCommonApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithImage sets the Image field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Image field is set to the value of the last call.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithImage(value string) *EphemeralContainerCommonApplyConfiguration {\n\tb.Image = &value\n\treturn b\n}\n\n// WithCommand adds the given value to the Command field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Command field.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithCommand(values ...string) *EphemeralContainerCommonApplyConfiguration {\n\tfor i := range values {\n\t\tb.Command = append(b.Command, values[i])\n\t}\n\treturn b\n}\n\n// WithArgs adds the given value to the Args field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Args field.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithArgs(values ...string) *EphemeralContainerCommonApplyConfiguration {\n\tfor i := range values {\n\t\tb.Args = append(b.Args, values[i])\n\t}\n\treturn b\n}\n\n// WithWorkingDir sets the WorkingDir field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the WorkingDir field is set to the value of the last call.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithWorkingDir(value string) *EphemeralContainerCommonApplyConfiguration {\n\tb.WorkingDir = &value\n\treturn b\n}\n\n// WithPorts adds the given value to the Ports field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ports field.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithPorts(values ...*ContainerPortApplyConfiguration) *EphemeralContainerCommonApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPorts\")\n\t\t}\n\t\tb.Ports = append(b.Ports, *values[i])\n\t}\n\treturn b\n}\n\n// WithEnvFrom adds the given value to the EnvFrom field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the EnvFrom field.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithEnvFrom(values ...*EnvFromSourceApplyConfiguration) *EphemeralContainerCommonApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithEnvFrom\")\n\t\t}\n\t\tb.EnvFrom = append(b.EnvFrom, *values[i])\n\t}\n\treturn b\n}\n\n// WithEnv adds the given value to the Env field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Env field.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithEnv(values ...*EnvVarApplyConfiguration) *EphemeralContainerCommonApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithEnv\")\n\t\t}\n\t\tb.Env = append(b.Env, *values[i])\n\t}\n\treturn b\n}\n\n// WithResources sets the Resources field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Resources field is set to the value of the last call.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithResources(value *ResourceRequirementsApplyConfiguration) *EphemeralContainerCommonApplyConfiguration {\n\tb.Resources = value\n\treturn b\n}\n\n// WithResizePolicy adds the given value to the ResizePolicy field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ResizePolicy field.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithResizePolicy(values ...*ContainerResizePolicyApplyConfiguration) *EphemeralContainerCommonApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithResizePolicy\")\n\t\t}\n\t\tb.ResizePolicy = append(b.ResizePolicy, *values[i])\n\t}\n\treturn b\n}\n\n// WithRestartPolicy sets the RestartPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RestartPolicy field is set to the value of the last call.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithRestartPolicy(value corev1.ContainerRestartPolicy) *EphemeralContainerCommonApplyConfiguration {\n\tb.RestartPolicy = &value\n\treturn b\n}\n\n// WithVolumeMounts adds the given value to the VolumeMounts field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the VolumeMounts field.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithVolumeMounts(values ...*VolumeMountApplyConfiguration) *EphemeralContainerCommonApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithVolumeMounts\")\n\t\t}\n\t\tb.VolumeMounts = append(b.VolumeMounts, *values[i])\n\t}\n\treturn b\n}\n\n// WithVolumeDevices adds the given value to the VolumeDevices field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the VolumeDevices field.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithVolumeDevices(values ...*VolumeDeviceApplyConfiguration) *EphemeralContainerCommonApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithVolumeDevices\")\n\t\t}\n\t\tb.VolumeDevices = append(b.VolumeDevices, *values[i])\n\t}\n\treturn b\n}\n\n// WithLivenessProbe sets the LivenessProbe field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LivenessProbe field is set to the value of the last call.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithLivenessProbe(value *ProbeApplyConfiguration) *EphemeralContainerCommonApplyConfiguration {\n\tb.LivenessProbe = value\n\treturn b\n}\n\n// WithReadinessProbe sets the ReadinessProbe field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadinessProbe field is set to the value of the last call.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithReadinessProbe(value *ProbeApplyConfiguration) *EphemeralContainerCommonApplyConfiguration {\n\tb.ReadinessProbe = value\n\treturn b\n}\n\n// WithStartupProbe sets the StartupProbe field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StartupProbe field is set to the value of the last call.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithStartupProbe(value *ProbeApplyConfiguration) *EphemeralContainerCommonApplyConfiguration {\n\tb.StartupProbe = value\n\treturn b\n}\n\n// WithLifecycle sets the Lifecycle field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Lifecycle field is set to the value of the last call.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithLifecycle(value *LifecycleApplyConfiguration) *EphemeralContainerCommonApplyConfiguration {\n\tb.Lifecycle = value\n\treturn b\n}\n\n// WithTerminationMessagePath sets the TerminationMessagePath field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TerminationMessagePath field is set to the value of the last call.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithTerminationMessagePath(value string) *EphemeralContainerCommonApplyConfiguration {\n\tb.TerminationMessagePath = &value\n\treturn b\n}\n\n// WithTerminationMessagePolicy sets the TerminationMessagePolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TerminationMessagePolicy field is set to the value of the last call.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithTerminationMessagePolicy(value corev1.TerminationMessagePolicy) *EphemeralContainerCommonApplyConfiguration {\n\tb.TerminationMessagePolicy = &value\n\treturn b\n}\n\n// WithImagePullPolicy sets the ImagePullPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ImagePullPolicy field is set to the value of the last call.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithImagePullPolicy(value corev1.PullPolicy) *EphemeralContainerCommonApplyConfiguration {\n\tb.ImagePullPolicy = &value\n\treturn b\n}\n\n// WithSecurityContext sets the SecurityContext field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecurityContext field is set to the value of the last call.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithSecurityContext(value *SecurityContextApplyConfiguration) *EphemeralContainerCommonApplyConfiguration {\n\tb.SecurityContext = value\n\treturn b\n}\n\n// WithStdin sets the Stdin field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Stdin field is set to the value of the last call.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithStdin(value bool) *EphemeralContainerCommonApplyConfiguration {\n\tb.Stdin = &value\n\treturn b\n}\n\n// WithStdinOnce sets the StdinOnce field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StdinOnce field is set to the value of the last call.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithStdinOnce(value bool) *EphemeralContainerCommonApplyConfiguration {\n\tb.StdinOnce = &value\n\treturn b\n}\n\n// WithTTY sets the TTY field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TTY field is set to the value of the last call.\nfunc (b *EphemeralContainerCommonApplyConfiguration) WithTTY(value bool) *EphemeralContainerCommonApplyConfiguration {\n\tb.TTY = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/ephemeralvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// EphemeralVolumeSourceApplyConfiguration represents a declarative configuration of the EphemeralVolumeSource type for use\n// with apply.\ntype EphemeralVolumeSourceApplyConfiguration struct {\n\tVolumeClaimTemplate *PersistentVolumeClaimTemplateApplyConfiguration `json:\"volumeClaimTemplate,omitempty\"`\n}\n\n// EphemeralVolumeSourceApplyConfiguration constructs a declarative configuration of the EphemeralVolumeSource type for use with\n// apply.\nfunc EphemeralVolumeSource() *EphemeralVolumeSourceApplyConfiguration {\n\treturn &EphemeralVolumeSourceApplyConfiguration{}\n}\n\n// WithVolumeClaimTemplate sets the VolumeClaimTemplate field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VolumeClaimTemplate field is set to the value of the last call.\nfunc (b *EphemeralVolumeSourceApplyConfiguration) WithVolumeClaimTemplate(value *PersistentVolumeClaimTemplateApplyConfiguration) *EphemeralVolumeSourceApplyConfiguration {\n\tb.VolumeClaimTemplate = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/event.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// EventApplyConfiguration represents a declarative configuration of the Event type for use\n// with apply.\ntype EventApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tInvolvedObject                       *ObjectReferenceApplyConfiguration `json:\"involvedObject,omitempty\"`\n\tReason                               *string                            `json:\"reason,omitempty\"`\n\tMessage                              *string                            `json:\"message,omitempty\"`\n\tSource                               *EventSourceApplyConfiguration     `json:\"source,omitempty\"`\n\tFirstTimestamp                       *apismetav1.Time                   `json:\"firstTimestamp,omitempty\"`\n\tLastTimestamp                        *apismetav1.Time                   `json:\"lastTimestamp,omitempty\"`\n\tCount                                *int32                             `json:\"count,omitempty\"`\n\tType                                 *string                            `json:\"type,omitempty\"`\n\tEventTime                            *apismetav1.MicroTime              `json:\"eventTime,omitempty\"`\n\tSeries                               *EventSeriesApplyConfiguration     `json:\"series,omitempty\"`\n\tAction                               *string                            `json:\"action,omitempty\"`\n\tRelated                              *ObjectReferenceApplyConfiguration `json:\"related,omitempty\"`\n\tReportingController                  *string                            `json:\"reportingComponent,omitempty\"`\n\tReportingInstance                    *string                            `json:\"reportingInstance,omitempty\"`\n}\n\n// Event constructs a declarative configuration of the Event type for use with\n// apply.\nfunc Event(name, namespace string) *EventApplyConfiguration {\n\tb := &EventApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Event\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b\n}\n\n// ExtractEvent extracts the applied configuration owned by fieldManager from\n// event. If no managedFields are found in event for fieldManager, a\n// EventApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// event must be a unmodified Event API object that was retrieved from the Kubernetes API.\n// ExtractEvent provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractEvent(event *corev1.Event, fieldManager string) (*EventApplyConfiguration, error) {\n\treturn extractEvent(event, fieldManager, \"\")\n}\n\n// ExtractEventStatus is the same as ExtractEvent except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractEventStatus(event *corev1.Event, fieldManager string) (*EventApplyConfiguration, error) {\n\treturn extractEvent(event, fieldManager, \"status\")\n}\n\nfunc extractEvent(event *corev1.Event, fieldManager string, subresource string) (*EventApplyConfiguration, error) {\n\tb := &EventApplyConfiguration{}\n\terr := managedfields.ExtractInto(event, internal.Parser().Type(\"io.k8s.api.core.v1.Event\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(event.Name)\n\tb.WithNamespace(event.Namespace)\n\n\tb.WithKind(\"Event\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithKind(value string) *EventApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithAPIVersion(value string) *EventApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithName(value string) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithGenerateName(value string) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithNamespace(value string) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithUID(value types.UID) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithResourceVersion(value string) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithGeneration(value int64) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *EventApplyConfiguration) WithLabels(entries map[string]string) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *EventApplyConfiguration) WithAnnotations(entries map[string]string) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *EventApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *EventApplyConfiguration) WithFinalizers(values ...string) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *EventApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithInvolvedObject sets the InvolvedObject field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the InvolvedObject field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithInvolvedObject(value *ObjectReferenceApplyConfiguration) *EventApplyConfiguration {\n\tb.InvolvedObject = value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithReason(value string) *EventApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithMessage(value string) *EventApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n\n// WithSource sets the Source field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Source field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithSource(value *EventSourceApplyConfiguration) *EventApplyConfiguration {\n\tb.Source = value\n\treturn b\n}\n\n// WithFirstTimestamp sets the FirstTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FirstTimestamp field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithFirstTimestamp(value apismetav1.Time) *EventApplyConfiguration {\n\tb.FirstTimestamp = &value\n\treturn b\n}\n\n// WithLastTimestamp sets the LastTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTimestamp field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithLastTimestamp(value apismetav1.Time) *EventApplyConfiguration {\n\tb.LastTimestamp = &value\n\treturn b\n}\n\n// WithCount sets the Count field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Count field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithCount(value int32) *EventApplyConfiguration {\n\tb.Count = &value\n\treturn b\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithType(value string) *EventApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithEventTime sets the EventTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the EventTime field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithEventTime(value apismetav1.MicroTime) *EventApplyConfiguration {\n\tb.EventTime = &value\n\treturn b\n}\n\n// WithSeries sets the Series field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Series field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithSeries(value *EventSeriesApplyConfiguration) *EventApplyConfiguration {\n\tb.Series = value\n\treturn b\n}\n\n// WithAction sets the Action field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Action field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithAction(value string) *EventApplyConfiguration {\n\tb.Action = &value\n\treturn b\n}\n\n// WithRelated sets the Related field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Related field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithRelated(value *ObjectReferenceApplyConfiguration) *EventApplyConfiguration {\n\tb.Related = value\n\treturn b\n}\n\n// WithReportingController sets the ReportingController field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReportingController field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithReportingController(value string) *EventApplyConfiguration {\n\tb.ReportingController = &value\n\treturn b\n}\n\n// WithReportingInstance sets the ReportingInstance field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReportingInstance field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithReportingInstance(value string) *EventApplyConfiguration {\n\tb.ReportingInstance = &value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *EventApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/eventseries.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// EventSeriesApplyConfiguration represents a declarative configuration of the EventSeries type for use\n// with apply.\ntype EventSeriesApplyConfiguration struct {\n\tCount            *int32            `json:\"count,omitempty\"`\n\tLastObservedTime *metav1.MicroTime `json:\"lastObservedTime,omitempty\"`\n}\n\n// EventSeriesApplyConfiguration constructs a declarative configuration of the EventSeries type for use with\n// apply.\nfunc EventSeries() *EventSeriesApplyConfiguration {\n\treturn &EventSeriesApplyConfiguration{}\n}\n\n// WithCount sets the Count field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Count field is set to the value of the last call.\nfunc (b *EventSeriesApplyConfiguration) WithCount(value int32) *EventSeriesApplyConfiguration {\n\tb.Count = &value\n\treturn b\n}\n\n// WithLastObservedTime sets the LastObservedTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastObservedTime field is set to the value of the last call.\nfunc (b *EventSeriesApplyConfiguration) WithLastObservedTime(value metav1.MicroTime) *EventSeriesApplyConfiguration {\n\tb.LastObservedTime = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/eventsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// EventSourceApplyConfiguration represents a declarative configuration of the EventSource type for use\n// with apply.\ntype EventSourceApplyConfiguration struct {\n\tComponent *string `json:\"component,omitempty\"`\n\tHost      *string `json:\"host,omitempty\"`\n}\n\n// EventSourceApplyConfiguration constructs a declarative configuration of the EventSource type for use with\n// apply.\nfunc EventSource() *EventSourceApplyConfiguration {\n\treturn &EventSourceApplyConfiguration{}\n}\n\n// WithComponent sets the Component field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Component field is set to the value of the last call.\nfunc (b *EventSourceApplyConfiguration) WithComponent(value string) *EventSourceApplyConfiguration {\n\tb.Component = &value\n\treturn b\n}\n\n// WithHost sets the Host field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Host field is set to the value of the last call.\nfunc (b *EventSourceApplyConfiguration) WithHost(value string) *EventSourceApplyConfiguration {\n\tb.Host = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/execaction.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ExecActionApplyConfiguration represents a declarative configuration of the ExecAction type for use\n// with apply.\ntype ExecActionApplyConfiguration struct {\n\tCommand []string `json:\"command,omitempty\"`\n}\n\n// ExecActionApplyConfiguration constructs a declarative configuration of the ExecAction type for use with\n// apply.\nfunc ExecAction() *ExecActionApplyConfiguration {\n\treturn &ExecActionApplyConfiguration{}\n}\n\n// WithCommand adds the given value to the Command field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Command field.\nfunc (b *ExecActionApplyConfiguration) WithCommand(values ...string) *ExecActionApplyConfiguration {\n\tfor i := range values {\n\t\tb.Command = append(b.Command, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/fcvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// FCVolumeSourceApplyConfiguration represents a declarative configuration of the FCVolumeSource type for use\n// with apply.\ntype FCVolumeSourceApplyConfiguration struct {\n\tTargetWWNs []string `json:\"targetWWNs,omitempty\"`\n\tLun        *int32   `json:\"lun,omitempty\"`\n\tFSType     *string  `json:\"fsType,omitempty\"`\n\tReadOnly   *bool    `json:\"readOnly,omitempty\"`\n\tWWIDs      []string `json:\"wwids,omitempty\"`\n}\n\n// FCVolumeSourceApplyConfiguration constructs a declarative configuration of the FCVolumeSource type for use with\n// apply.\nfunc FCVolumeSource() *FCVolumeSourceApplyConfiguration {\n\treturn &FCVolumeSourceApplyConfiguration{}\n}\n\n// WithTargetWWNs adds the given value to the TargetWWNs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the TargetWWNs field.\nfunc (b *FCVolumeSourceApplyConfiguration) WithTargetWWNs(values ...string) *FCVolumeSourceApplyConfiguration {\n\tfor i := range values {\n\t\tb.TargetWWNs = append(b.TargetWWNs, values[i])\n\t}\n\treturn b\n}\n\n// WithLun sets the Lun field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Lun field is set to the value of the last call.\nfunc (b *FCVolumeSourceApplyConfiguration) WithLun(value int32) *FCVolumeSourceApplyConfiguration {\n\tb.Lun = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *FCVolumeSourceApplyConfiguration) WithFSType(value string) *FCVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *FCVolumeSourceApplyConfiguration) WithReadOnly(value bool) *FCVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n\n// WithWWIDs adds the given value to the WWIDs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the WWIDs field.\nfunc (b *FCVolumeSourceApplyConfiguration) WithWWIDs(values ...string) *FCVolumeSourceApplyConfiguration {\n\tfor i := range values {\n\t\tb.WWIDs = append(b.WWIDs, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/flexpersistentvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// FlexPersistentVolumeSourceApplyConfiguration represents a declarative configuration of the FlexPersistentVolumeSource type for use\n// with apply.\ntype FlexPersistentVolumeSourceApplyConfiguration struct {\n\tDriver    *string                            `json:\"driver,omitempty\"`\n\tFSType    *string                            `json:\"fsType,omitempty\"`\n\tSecretRef *SecretReferenceApplyConfiguration `json:\"secretRef,omitempty\"`\n\tReadOnly  *bool                              `json:\"readOnly,omitempty\"`\n\tOptions   map[string]string                  `json:\"options,omitempty\"`\n}\n\n// FlexPersistentVolumeSourceApplyConfiguration constructs a declarative configuration of the FlexPersistentVolumeSource type for use with\n// apply.\nfunc FlexPersistentVolumeSource() *FlexPersistentVolumeSourceApplyConfiguration {\n\treturn &FlexPersistentVolumeSourceApplyConfiguration{}\n}\n\n// WithDriver sets the Driver field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Driver field is set to the value of the last call.\nfunc (b *FlexPersistentVolumeSourceApplyConfiguration) WithDriver(value string) *FlexPersistentVolumeSourceApplyConfiguration {\n\tb.Driver = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *FlexPersistentVolumeSourceApplyConfiguration) WithFSType(value string) *FlexPersistentVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n\n// WithSecretRef sets the SecretRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretRef field is set to the value of the last call.\nfunc (b *FlexPersistentVolumeSourceApplyConfiguration) WithSecretRef(value *SecretReferenceApplyConfiguration) *FlexPersistentVolumeSourceApplyConfiguration {\n\tb.SecretRef = value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *FlexPersistentVolumeSourceApplyConfiguration) WithReadOnly(value bool) *FlexPersistentVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n\n// WithOptions puts the entries into the Options field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Options field,\n// overwriting an existing map entries in Options field with the same key.\nfunc (b *FlexPersistentVolumeSourceApplyConfiguration) WithOptions(entries map[string]string) *FlexPersistentVolumeSourceApplyConfiguration {\n\tif b.Options == nil && len(entries) > 0 {\n\t\tb.Options = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Options[k] = v\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/flexvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// FlexVolumeSourceApplyConfiguration represents a declarative configuration of the FlexVolumeSource type for use\n// with apply.\ntype FlexVolumeSourceApplyConfiguration struct {\n\tDriver    *string                                 `json:\"driver,omitempty\"`\n\tFSType    *string                                 `json:\"fsType,omitempty\"`\n\tSecretRef *LocalObjectReferenceApplyConfiguration `json:\"secretRef,omitempty\"`\n\tReadOnly  *bool                                   `json:\"readOnly,omitempty\"`\n\tOptions   map[string]string                       `json:\"options,omitempty\"`\n}\n\n// FlexVolumeSourceApplyConfiguration constructs a declarative configuration of the FlexVolumeSource type for use with\n// apply.\nfunc FlexVolumeSource() *FlexVolumeSourceApplyConfiguration {\n\treturn &FlexVolumeSourceApplyConfiguration{}\n}\n\n// WithDriver sets the Driver field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Driver field is set to the value of the last call.\nfunc (b *FlexVolumeSourceApplyConfiguration) WithDriver(value string) *FlexVolumeSourceApplyConfiguration {\n\tb.Driver = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *FlexVolumeSourceApplyConfiguration) WithFSType(value string) *FlexVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n\n// WithSecretRef sets the SecretRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretRef field is set to the value of the last call.\nfunc (b *FlexVolumeSourceApplyConfiguration) WithSecretRef(value *LocalObjectReferenceApplyConfiguration) *FlexVolumeSourceApplyConfiguration {\n\tb.SecretRef = value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *FlexVolumeSourceApplyConfiguration) WithReadOnly(value bool) *FlexVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n\n// WithOptions puts the entries into the Options field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Options field,\n// overwriting an existing map entries in Options field with the same key.\nfunc (b *FlexVolumeSourceApplyConfiguration) WithOptions(entries map[string]string) *FlexVolumeSourceApplyConfiguration {\n\tif b.Options == nil && len(entries) > 0 {\n\t\tb.Options = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Options[k] = v\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/flockervolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// FlockerVolumeSourceApplyConfiguration represents a declarative configuration of the FlockerVolumeSource type for use\n// with apply.\ntype FlockerVolumeSourceApplyConfiguration struct {\n\tDatasetName *string `json:\"datasetName,omitempty\"`\n\tDatasetUUID *string `json:\"datasetUUID,omitempty\"`\n}\n\n// FlockerVolumeSourceApplyConfiguration constructs a declarative configuration of the FlockerVolumeSource type for use with\n// apply.\nfunc FlockerVolumeSource() *FlockerVolumeSourceApplyConfiguration {\n\treturn &FlockerVolumeSourceApplyConfiguration{}\n}\n\n// WithDatasetName sets the DatasetName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DatasetName field is set to the value of the last call.\nfunc (b *FlockerVolumeSourceApplyConfiguration) WithDatasetName(value string) *FlockerVolumeSourceApplyConfiguration {\n\tb.DatasetName = &value\n\treturn b\n}\n\n// WithDatasetUUID sets the DatasetUUID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DatasetUUID field is set to the value of the last call.\nfunc (b *FlockerVolumeSourceApplyConfiguration) WithDatasetUUID(value string) *FlockerVolumeSourceApplyConfiguration {\n\tb.DatasetUUID = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/gcepersistentdiskvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// GCEPersistentDiskVolumeSourceApplyConfiguration represents a declarative configuration of the GCEPersistentDiskVolumeSource type for use\n// with apply.\ntype GCEPersistentDiskVolumeSourceApplyConfiguration struct {\n\tPDName    *string `json:\"pdName,omitempty\"`\n\tFSType    *string `json:\"fsType,omitempty\"`\n\tPartition *int32  `json:\"partition,omitempty\"`\n\tReadOnly  *bool   `json:\"readOnly,omitempty\"`\n}\n\n// GCEPersistentDiskVolumeSourceApplyConfiguration constructs a declarative configuration of the GCEPersistentDiskVolumeSource type for use with\n// apply.\nfunc GCEPersistentDiskVolumeSource() *GCEPersistentDiskVolumeSourceApplyConfiguration {\n\treturn &GCEPersistentDiskVolumeSourceApplyConfiguration{}\n}\n\n// WithPDName sets the PDName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PDName field is set to the value of the last call.\nfunc (b *GCEPersistentDiskVolumeSourceApplyConfiguration) WithPDName(value string) *GCEPersistentDiskVolumeSourceApplyConfiguration {\n\tb.PDName = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *GCEPersistentDiskVolumeSourceApplyConfiguration) WithFSType(value string) *GCEPersistentDiskVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n\n// WithPartition sets the Partition field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Partition field is set to the value of the last call.\nfunc (b *GCEPersistentDiskVolumeSourceApplyConfiguration) WithPartition(value int32) *GCEPersistentDiskVolumeSourceApplyConfiguration {\n\tb.Partition = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *GCEPersistentDiskVolumeSourceApplyConfiguration) WithReadOnly(value bool) *GCEPersistentDiskVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/gitrepovolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// GitRepoVolumeSourceApplyConfiguration represents a declarative configuration of the GitRepoVolumeSource type for use\n// with apply.\ntype GitRepoVolumeSourceApplyConfiguration struct {\n\tRepository *string `json:\"repository,omitempty\"`\n\tRevision   *string `json:\"revision,omitempty\"`\n\tDirectory  *string `json:\"directory,omitempty\"`\n}\n\n// GitRepoVolumeSourceApplyConfiguration constructs a declarative configuration of the GitRepoVolumeSource type for use with\n// apply.\nfunc GitRepoVolumeSource() *GitRepoVolumeSourceApplyConfiguration {\n\treturn &GitRepoVolumeSourceApplyConfiguration{}\n}\n\n// WithRepository sets the Repository field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Repository field is set to the value of the last call.\nfunc (b *GitRepoVolumeSourceApplyConfiguration) WithRepository(value string) *GitRepoVolumeSourceApplyConfiguration {\n\tb.Repository = &value\n\treturn b\n}\n\n// WithRevision sets the Revision field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Revision field is set to the value of the last call.\nfunc (b *GitRepoVolumeSourceApplyConfiguration) WithRevision(value string) *GitRepoVolumeSourceApplyConfiguration {\n\tb.Revision = &value\n\treturn b\n}\n\n// WithDirectory sets the Directory field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Directory field is set to the value of the last call.\nfunc (b *GitRepoVolumeSourceApplyConfiguration) WithDirectory(value string) *GitRepoVolumeSourceApplyConfiguration {\n\tb.Directory = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/glusterfspersistentvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// GlusterfsPersistentVolumeSourceApplyConfiguration represents a declarative configuration of the GlusterfsPersistentVolumeSource type for use\n// with apply.\ntype GlusterfsPersistentVolumeSourceApplyConfiguration struct {\n\tEndpointsName      *string `json:\"endpoints,omitempty\"`\n\tPath               *string `json:\"path,omitempty\"`\n\tReadOnly           *bool   `json:\"readOnly,omitempty\"`\n\tEndpointsNamespace *string `json:\"endpointsNamespace,omitempty\"`\n}\n\n// GlusterfsPersistentVolumeSourceApplyConfiguration constructs a declarative configuration of the GlusterfsPersistentVolumeSource type for use with\n// apply.\nfunc GlusterfsPersistentVolumeSource() *GlusterfsPersistentVolumeSourceApplyConfiguration {\n\treturn &GlusterfsPersistentVolumeSourceApplyConfiguration{}\n}\n\n// WithEndpointsName sets the EndpointsName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the EndpointsName field is set to the value of the last call.\nfunc (b *GlusterfsPersistentVolumeSourceApplyConfiguration) WithEndpointsName(value string) *GlusterfsPersistentVolumeSourceApplyConfiguration {\n\tb.EndpointsName = &value\n\treturn b\n}\n\n// WithPath sets the Path field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Path field is set to the value of the last call.\nfunc (b *GlusterfsPersistentVolumeSourceApplyConfiguration) WithPath(value string) *GlusterfsPersistentVolumeSourceApplyConfiguration {\n\tb.Path = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *GlusterfsPersistentVolumeSourceApplyConfiguration) WithReadOnly(value bool) *GlusterfsPersistentVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n\n// WithEndpointsNamespace sets the EndpointsNamespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the EndpointsNamespace field is set to the value of the last call.\nfunc (b *GlusterfsPersistentVolumeSourceApplyConfiguration) WithEndpointsNamespace(value string) *GlusterfsPersistentVolumeSourceApplyConfiguration {\n\tb.EndpointsNamespace = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/glusterfsvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// GlusterfsVolumeSourceApplyConfiguration represents a declarative configuration of the GlusterfsVolumeSource type for use\n// with apply.\ntype GlusterfsVolumeSourceApplyConfiguration struct {\n\tEndpointsName *string `json:\"endpoints,omitempty\"`\n\tPath          *string `json:\"path,omitempty\"`\n\tReadOnly      *bool   `json:\"readOnly,omitempty\"`\n}\n\n// GlusterfsVolumeSourceApplyConfiguration constructs a declarative configuration of the GlusterfsVolumeSource type for use with\n// apply.\nfunc GlusterfsVolumeSource() *GlusterfsVolumeSourceApplyConfiguration {\n\treturn &GlusterfsVolumeSourceApplyConfiguration{}\n}\n\n// WithEndpointsName sets the EndpointsName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the EndpointsName field is set to the value of the last call.\nfunc (b *GlusterfsVolumeSourceApplyConfiguration) WithEndpointsName(value string) *GlusterfsVolumeSourceApplyConfiguration {\n\tb.EndpointsName = &value\n\treturn b\n}\n\n// WithPath sets the Path field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Path field is set to the value of the last call.\nfunc (b *GlusterfsVolumeSourceApplyConfiguration) WithPath(value string) *GlusterfsVolumeSourceApplyConfiguration {\n\tb.Path = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *GlusterfsVolumeSourceApplyConfiguration) WithReadOnly(value bool) *GlusterfsVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/grpcaction.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// GRPCActionApplyConfiguration represents a declarative configuration of the GRPCAction type for use\n// with apply.\ntype GRPCActionApplyConfiguration struct {\n\tPort    *int32  `json:\"port,omitempty\"`\n\tService *string `json:\"service,omitempty\"`\n}\n\n// GRPCActionApplyConfiguration constructs a declarative configuration of the GRPCAction type for use with\n// apply.\nfunc GRPCAction() *GRPCActionApplyConfiguration {\n\treturn &GRPCActionApplyConfiguration{}\n}\n\n// WithPort sets the Port field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Port field is set to the value of the last call.\nfunc (b *GRPCActionApplyConfiguration) WithPort(value int32) *GRPCActionApplyConfiguration {\n\tb.Port = &value\n\treturn b\n}\n\n// WithService sets the Service field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Service field is set to the value of the last call.\nfunc (b *GRPCActionApplyConfiguration) WithService(value string) *GRPCActionApplyConfiguration {\n\tb.Service = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/hostalias.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// HostAliasApplyConfiguration represents a declarative configuration of the HostAlias type for use\n// with apply.\ntype HostAliasApplyConfiguration struct {\n\tIP        *string  `json:\"ip,omitempty\"`\n\tHostnames []string `json:\"hostnames,omitempty\"`\n}\n\n// HostAliasApplyConfiguration constructs a declarative configuration of the HostAlias type for use with\n// apply.\nfunc HostAlias() *HostAliasApplyConfiguration {\n\treturn &HostAliasApplyConfiguration{}\n}\n\n// WithIP sets the IP field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the IP field is set to the value of the last call.\nfunc (b *HostAliasApplyConfiguration) WithIP(value string) *HostAliasApplyConfiguration {\n\tb.IP = &value\n\treturn b\n}\n\n// WithHostnames adds the given value to the Hostnames field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Hostnames field.\nfunc (b *HostAliasApplyConfiguration) WithHostnames(values ...string) *HostAliasApplyConfiguration {\n\tfor i := range values {\n\t\tb.Hostnames = append(b.Hostnames, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/hostip.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// HostIPApplyConfiguration represents a declarative configuration of the HostIP type for use\n// with apply.\ntype HostIPApplyConfiguration struct {\n\tIP *string `json:\"ip,omitempty\"`\n}\n\n// HostIPApplyConfiguration constructs a declarative configuration of the HostIP type for use with\n// apply.\nfunc HostIP() *HostIPApplyConfiguration {\n\treturn &HostIPApplyConfiguration{}\n}\n\n// WithIP sets the IP field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the IP field is set to the value of the last call.\nfunc (b *HostIPApplyConfiguration) WithIP(value string) *HostIPApplyConfiguration {\n\tb.IP = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/hostpathvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// HostPathVolumeSourceApplyConfiguration represents a declarative configuration of the HostPathVolumeSource type for use\n// with apply.\ntype HostPathVolumeSourceApplyConfiguration struct {\n\tPath *string              `json:\"path,omitempty\"`\n\tType *corev1.HostPathType `json:\"type,omitempty\"`\n}\n\n// HostPathVolumeSourceApplyConfiguration constructs a declarative configuration of the HostPathVolumeSource type for use with\n// apply.\nfunc HostPathVolumeSource() *HostPathVolumeSourceApplyConfiguration {\n\treturn &HostPathVolumeSourceApplyConfiguration{}\n}\n\n// WithPath sets the Path field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Path field is set to the value of the last call.\nfunc (b *HostPathVolumeSourceApplyConfiguration) WithPath(value string) *HostPathVolumeSourceApplyConfiguration {\n\tb.Path = &value\n\treturn b\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *HostPathVolumeSourceApplyConfiguration) WithType(value corev1.HostPathType) *HostPathVolumeSourceApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/httpgetaction.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// HTTPGetActionApplyConfiguration represents a declarative configuration of the HTTPGetAction type for use\n// with apply.\ntype HTTPGetActionApplyConfiguration struct {\n\tPath        *string                        `json:\"path,omitempty\"`\n\tPort        *intstr.IntOrString            `json:\"port,omitempty\"`\n\tHost        *string                        `json:\"host,omitempty\"`\n\tScheme      *corev1.URIScheme              `json:\"scheme,omitempty\"`\n\tHTTPHeaders []HTTPHeaderApplyConfiguration `json:\"httpHeaders,omitempty\"`\n}\n\n// HTTPGetActionApplyConfiguration constructs a declarative configuration of the HTTPGetAction type for use with\n// apply.\nfunc HTTPGetAction() *HTTPGetActionApplyConfiguration {\n\treturn &HTTPGetActionApplyConfiguration{}\n}\n\n// WithPath sets the Path field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Path field is set to the value of the last call.\nfunc (b *HTTPGetActionApplyConfiguration) WithPath(value string) *HTTPGetActionApplyConfiguration {\n\tb.Path = &value\n\treturn b\n}\n\n// WithPort sets the Port field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Port field is set to the value of the last call.\nfunc (b *HTTPGetActionApplyConfiguration) WithPort(value intstr.IntOrString) *HTTPGetActionApplyConfiguration {\n\tb.Port = &value\n\treturn b\n}\n\n// WithHost sets the Host field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Host field is set to the value of the last call.\nfunc (b *HTTPGetActionApplyConfiguration) WithHost(value string) *HTTPGetActionApplyConfiguration {\n\tb.Host = &value\n\treturn b\n}\n\n// WithScheme sets the Scheme field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Scheme field is set to the value of the last call.\nfunc (b *HTTPGetActionApplyConfiguration) WithScheme(value corev1.URIScheme) *HTTPGetActionApplyConfiguration {\n\tb.Scheme = &value\n\treturn b\n}\n\n// WithHTTPHeaders adds the given value to the HTTPHeaders field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the HTTPHeaders field.\nfunc (b *HTTPGetActionApplyConfiguration) WithHTTPHeaders(values ...*HTTPHeaderApplyConfiguration) *HTTPGetActionApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithHTTPHeaders\")\n\t\t}\n\t\tb.HTTPHeaders = append(b.HTTPHeaders, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/httpheader.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// HTTPHeaderApplyConfiguration represents a declarative configuration of the HTTPHeader type for use\n// with apply.\ntype HTTPHeaderApplyConfiguration struct {\n\tName  *string `json:\"name,omitempty\"`\n\tValue *string `json:\"value,omitempty\"`\n}\n\n// HTTPHeaderApplyConfiguration constructs a declarative configuration of the HTTPHeader type for use with\n// apply.\nfunc HTTPHeader() *HTTPHeaderApplyConfiguration {\n\treturn &HTTPHeaderApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *HTTPHeaderApplyConfiguration) WithName(value string) *HTTPHeaderApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithValue sets the Value field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Value field is set to the value of the last call.\nfunc (b *HTTPHeaderApplyConfiguration) WithValue(value string) *HTTPHeaderApplyConfiguration {\n\tb.Value = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/imagevolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// ImageVolumeSourceApplyConfiguration represents a declarative configuration of the ImageVolumeSource type for use\n// with apply.\ntype ImageVolumeSourceApplyConfiguration struct {\n\tReference  *string            `json:\"reference,omitempty\"`\n\tPullPolicy *corev1.PullPolicy `json:\"pullPolicy,omitempty\"`\n}\n\n// ImageVolumeSourceApplyConfiguration constructs a declarative configuration of the ImageVolumeSource type for use with\n// apply.\nfunc ImageVolumeSource() *ImageVolumeSourceApplyConfiguration {\n\treturn &ImageVolumeSourceApplyConfiguration{}\n}\n\n// WithReference sets the Reference field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reference field is set to the value of the last call.\nfunc (b *ImageVolumeSourceApplyConfiguration) WithReference(value string) *ImageVolumeSourceApplyConfiguration {\n\tb.Reference = &value\n\treturn b\n}\n\n// WithPullPolicy sets the PullPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PullPolicy field is set to the value of the last call.\nfunc (b *ImageVolumeSourceApplyConfiguration) WithPullPolicy(value corev1.PullPolicy) *ImageVolumeSourceApplyConfiguration {\n\tb.PullPolicy = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/iscsipersistentvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ISCSIPersistentVolumeSourceApplyConfiguration represents a declarative configuration of the ISCSIPersistentVolumeSource type for use\n// with apply.\ntype ISCSIPersistentVolumeSourceApplyConfiguration struct {\n\tTargetPortal      *string                            `json:\"targetPortal,omitempty\"`\n\tIQN               *string                            `json:\"iqn,omitempty\"`\n\tLun               *int32                             `json:\"lun,omitempty\"`\n\tISCSIInterface    *string                            `json:\"iscsiInterface,omitempty\"`\n\tFSType            *string                            `json:\"fsType,omitempty\"`\n\tReadOnly          *bool                              `json:\"readOnly,omitempty\"`\n\tPortals           []string                           `json:\"portals,omitempty\"`\n\tDiscoveryCHAPAuth *bool                              `json:\"chapAuthDiscovery,omitempty\"`\n\tSessionCHAPAuth   *bool                              `json:\"chapAuthSession,omitempty\"`\n\tSecretRef         *SecretReferenceApplyConfiguration `json:\"secretRef,omitempty\"`\n\tInitiatorName     *string                            `json:\"initiatorName,omitempty\"`\n}\n\n// ISCSIPersistentVolumeSourceApplyConfiguration constructs a declarative configuration of the ISCSIPersistentVolumeSource type for use with\n// apply.\nfunc ISCSIPersistentVolumeSource() *ISCSIPersistentVolumeSourceApplyConfiguration {\n\treturn &ISCSIPersistentVolumeSourceApplyConfiguration{}\n}\n\n// WithTargetPortal sets the TargetPortal field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TargetPortal field is set to the value of the last call.\nfunc (b *ISCSIPersistentVolumeSourceApplyConfiguration) WithTargetPortal(value string) *ISCSIPersistentVolumeSourceApplyConfiguration {\n\tb.TargetPortal = &value\n\treturn b\n}\n\n// WithIQN sets the IQN field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the IQN field is set to the value of the last call.\nfunc (b *ISCSIPersistentVolumeSourceApplyConfiguration) WithIQN(value string) *ISCSIPersistentVolumeSourceApplyConfiguration {\n\tb.IQN = &value\n\treturn b\n}\n\n// WithLun sets the Lun field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Lun field is set to the value of the last call.\nfunc (b *ISCSIPersistentVolumeSourceApplyConfiguration) WithLun(value int32) *ISCSIPersistentVolumeSourceApplyConfiguration {\n\tb.Lun = &value\n\treturn b\n}\n\n// WithISCSIInterface sets the ISCSIInterface field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ISCSIInterface field is set to the value of the last call.\nfunc (b *ISCSIPersistentVolumeSourceApplyConfiguration) WithISCSIInterface(value string) *ISCSIPersistentVolumeSourceApplyConfiguration {\n\tb.ISCSIInterface = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *ISCSIPersistentVolumeSourceApplyConfiguration) WithFSType(value string) *ISCSIPersistentVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *ISCSIPersistentVolumeSourceApplyConfiguration) WithReadOnly(value bool) *ISCSIPersistentVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n\n// WithPortals adds the given value to the Portals field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Portals field.\nfunc (b *ISCSIPersistentVolumeSourceApplyConfiguration) WithPortals(values ...string) *ISCSIPersistentVolumeSourceApplyConfiguration {\n\tfor i := range values {\n\t\tb.Portals = append(b.Portals, values[i])\n\t}\n\treturn b\n}\n\n// WithDiscoveryCHAPAuth sets the DiscoveryCHAPAuth field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DiscoveryCHAPAuth field is set to the value of the last call.\nfunc (b *ISCSIPersistentVolumeSourceApplyConfiguration) WithDiscoveryCHAPAuth(value bool) *ISCSIPersistentVolumeSourceApplyConfiguration {\n\tb.DiscoveryCHAPAuth = &value\n\treturn b\n}\n\n// WithSessionCHAPAuth sets the SessionCHAPAuth field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SessionCHAPAuth field is set to the value of the last call.\nfunc (b *ISCSIPersistentVolumeSourceApplyConfiguration) WithSessionCHAPAuth(value bool) *ISCSIPersistentVolumeSourceApplyConfiguration {\n\tb.SessionCHAPAuth = &value\n\treturn b\n}\n\n// WithSecretRef sets the SecretRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretRef field is set to the value of the last call.\nfunc (b *ISCSIPersistentVolumeSourceApplyConfiguration) WithSecretRef(value *SecretReferenceApplyConfiguration) *ISCSIPersistentVolumeSourceApplyConfiguration {\n\tb.SecretRef = value\n\treturn b\n}\n\n// WithInitiatorName sets the InitiatorName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the InitiatorName field is set to the value of the last call.\nfunc (b *ISCSIPersistentVolumeSourceApplyConfiguration) WithInitiatorName(value string) *ISCSIPersistentVolumeSourceApplyConfiguration {\n\tb.InitiatorName = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/iscsivolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ISCSIVolumeSourceApplyConfiguration represents a declarative configuration of the ISCSIVolumeSource type for use\n// with apply.\ntype ISCSIVolumeSourceApplyConfiguration struct {\n\tTargetPortal      *string                                 `json:\"targetPortal,omitempty\"`\n\tIQN               *string                                 `json:\"iqn,omitempty\"`\n\tLun               *int32                                  `json:\"lun,omitempty\"`\n\tISCSIInterface    *string                                 `json:\"iscsiInterface,omitempty\"`\n\tFSType            *string                                 `json:\"fsType,omitempty\"`\n\tReadOnly          *bool                                   `json:\"readOnly,omitempty\"`\n\tPortals           []string                                `json:\"portals,omitempty\"`\n\tDiscoveryCHAPAuth *bool                                   `json:\"chapAuthDiscovery,omitempty\"`\n\tSessionCHAPAuth   *bool                                   `json:\"chapAuthSession,omitempty\"`\n\tSecretRef         *LocalObjectReferenceApplyConfiguration `json:\"secretRef,omitempty\"`\n\tInitiatorName     *string                                 `json:\"initiatorName,omitempty\"`\n}\n\n// ISCSIVolumeSourceApplyConfiguration constructs a declarative configuration of the ISCSIVolumeSource type for use with\n// apply.\nfunc ISCSIVolumeSource() *ISCSIVolumeSourceApplyConfiguration {\n\treturn &ISCSIVolumeSourceApplyConfiguration{}\n}\n\n// WithTargetPortal sets the TargetPortal field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TargetPortal field is set to the value of the last call.\nfunc (b *ISCSIVolumeSourceApplyConfiguration) WithTargetPortal(value string) *ISCSIVolumeSourceApplyConfiguration {\n\tb.TargetPortal = &value\n\treturn b\n}\n\n// WithIQN sets the IQN field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the IQN field is set to the value of the last call.\nfunc (b *ISCSIVolumeSourceApplyConfiguration) WithIQN(value string) *ISCSIVolumeSourceApplyConfiguration {\n\tb.IQN = &value\n\treturn b\n}\n\n// WithLun sets the Lun field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Lun field is set to the value of the last call.\nfunc (b *ISCSIVolumeSourceApplyConfiguration) WithLun(value int32) *ISCSIVolumeSourceApplyConfiguration {\n\tb.Lun = &value\n\treturn b\n}\n\n// WithISCSIInterface sets the ISCSIInterface field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ISCSIInterface field is set to the value of the last call.\nfunc (b *ISCSIVolumeSourceApplyConfiguration) WithISCSIInterface(value string) *ISCSIVolumeSourceApplyConfiguration {\n\tb.ISCSIInterface = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *ISCSIVolumeSourceApplyConfiguration) WithFSType(value string) *ISCSIVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *ISCSIVolumeSourceApplyConfiguration) WithReadOnly(value bool) *ISCSIVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n\n// WithPortals adds the given value to the Portals field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Portals field.\nfunc (b *ISCSIVolumeSourceApplyConfiguration) WithPortals(values ...string) *ISCSIVolumeSourceApplyConfiguration {\n\tfor i := range values {\n\t\tb.Portals = append(b.Portals, values[i])\n\t}\n\treturn b\n}\n\n// WithDiscoveryCHAPAuth sets the DiscoveryCHAPAuth field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DiscoveryCHAPAuth field is set to the value of the last call.\nfunc (b *ISCSIVolumeSourceApplyConfiguration) WithDiscoveryCHAPAuth(value bool) *ISCSIVolumeSourceApplyConfiguration {\n\tb.DiscoveryCHAPAuth = &value\n\treturn b\n}\n\n// WithSessionCHAPAuth sets the SessionCHAPAuth field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SessionCHAPAuth field is set to the value of the last call.\nfunc (b *ISCSIVolumeSourceApplyConfiguration) WithSessionCHAPAuth(value bool) *ISCSIVolumeSourceApplyConfiguration {\n\tb.SessionCHAPAuth = &value\n\treturn b\n}\n\n// WithSecretRef sets the SecretRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretRef field is set to the value of the last call.\nfunc (b *ISCSIVolumeSourceApplyConfiguration) WithSecretRef(value *LocalObjectReferenceApplyConfiguration) *ISCSIVolumeSourceApplyConfiguration {\n\tb.SecretRef = value\n\treturn b\n}\n\n// WithInitiatorName sets the InitiatorName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the InitiatorName field is set to the value of the last call.\nfunc (b *ISCSIVolumeSourceApplyConfiguration) WithInitiatorName(value string) *ISCSIVolumeSourceApplyConfiguration {\n\tb.InitiatorName = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/keytopath.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// KeyToPathApplyConfiguration represents a declarative configuration of the KeyToPath type for use\n// with apply.\ntype KeyToPathApplyConfiguration struct {\n\tKey  *string `json:\"key,omitempty\"`\n\tPath *string `json:\"path,omitempty\"`\n\tMode *int32  `json:\"mode,omitempty\"`\n}\n\n// KeyToPathApplyConfiguration constructs a declarative configuration of the KeyToPath type for use with\n// apply.\nfunc KeyToPath() *KeyToPathApplyConfiguration {\n\treturn &KeyToPathApplyConfiguration{}\n}\n\n// WithKey sets the Key field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Key field is set to the value of the last call.\nfunc (b *KeyToPathApplyConfiguration) WithKey(value string) *KeyToPathApplyConfiguration {\n\tb.Key = &value\n\treturn b\n}\n\n// WithPath sets the Path field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Path field is set to the value of the last call.\nfunc (b *KeyToPathApplyConfiguration) WithPath(value string) *KeyToPathApplyConfiguration {\n\tb.Path = &value\n\treturn b\n}\n\n// WithMode sets the Mode field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Mode field is set to the value of the last call.\nfunc (b *KeyToPathApplyConfiguration) WithMode(value int32) *KeyToPathApplyConfiguration {\n\tb.Mode = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/lifecycle.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// LifecycleApplyConfiguration represents a declarative configuration of the Lifecycle type for use\n// with apply.\ntype LifecycleApplyConfiguration struct {\n\tPostStart *LifecycleHandlerApplyConfiguration `json:\"postStart,omitempty\"`\n\tPreStop   *LifecycleHandlerApplyConfiguration `json:\"preStop,omitempty\"`\n}\n\n// LifecycleApplyConfiguration constructs a declarative configuration of the Lifecycle type for use with\n// apply.\nfunc Lifecycle() *LifecycleApplyConfiguration {\n\treturn &LifecycleApplyConfiguration{}\n}\n\n// WithPostStart sets the PostStart field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PostStart field is set to the value of the last call.\nfunc (b *LifecycleApplyConfiguration) WithPostStart(value *LifecycleHandlerApplyConfiguration) *LifecycleApplyConfiguration {\n\tb.PostStart = value\n\treturn b\n}\n\n// WithPreStop sets the PreStop field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PreStop field is set to the value of the last call.\nfunc (b *LifecycleApplyConfiguration) WithPreStop(value *LifecycleHandlerApplyConfiguration) *LifecycleApplyConfiguration {\n\tb.PreStop = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/lifecyclehandler.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// LifecycleHandlerApplyConfiguration represents a declarative configuration of the LifecycleHandler type for use\n// with apply.\ntype LifecycleHandlerApplyConfiguration struct {\n\tExec      *ExecActionApplyConfiguration      `json:\"exec,omitempty\"`\n\tHTTPGet   *HTTPGetActionApplyConfiguration   `json:\"httpGet,omitempty\"`\n\tTCPSocket *TCPSocketActionApplyConfiguration `json:\"tcpSocket,omitempty\"`\n\tSleep     *SleepActionApplyConfiguration     `json:\"sleep,omitempty\"`\n}\n\n// LifecycleHandlerApplyConfiguration constructs a declarative configuration of the LifecycleHandler type for use with\n// apply.\nfunc LifecycleHandler() *LifecycleHandlerApplyConfiguration {\n\treturn &LifecycleHandlerApplyConfiguration{}\n}\n\n// WithExec sets the Exec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Exec field is set to the value of the last call.\nfunc (b *LifecycleHandlerApplyConfiguration) WithExec(value *ExecActionApplyConfiguration) *LifecycleHandlerApplyConfiguration {\n\tb.Exec = value\n\treturn b\n}\n\n// WithHTTPGet sets the HTTPGet field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HTTPGet field is set to the value of the last call.\nfunc (b *LifecycleHandlerApplyConfiguration) WithHTTPGet(value *HTTPGetActionApplyConfiguration) *LifecycleHandlerApplyConfiguration {\n\tb.HTTPGet = value\n\treturn b\n}\n\n// WithTCPSocket sets the TCPSocket field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TCPSocket field is set to the value of the last call.\nfunc (b *LifecycleHandlerApplyConfiguration) WithTCPSocket(value *TCPSocketActionApplyConfiguration) *LifecycleHandlerApplyConfiguration {\n\tb.TCPSocket = value\n\treturn b\n}\n\n// WithSleep sets the Sleep field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Sleep field is set to the value of the last call.\nfunc (b *LifecycleHandlerApplyConfiguration) WithSleep(value *SleepActionApplyConfiguration) *LifecycleHandlerApplyConfiguration {\n\tb.Sleep = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/limitrange.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// LimitRangeApplyConfiguration represents a declarative configuration of the LimitRange type for use\n// with apply.\ntype LimitRangeApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                                 *LimitRangeSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// LimitRange constructs a declarative configuration of the LimitRange type for use with\n// apply.\nfunc LimitRange(name, namespace string) *LimitRangeApplyConfiguration {\n\tb := &LimitRangeApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"LimitRange\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b\n}\n\n// ExtractLimitRange extracts the applied configuration owned by fieldManager from\n// limitRange. If no managedFields are found in limitRange for fieldManager, a\n// LimitRangeApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// limitRange must be a unmodified LimitRange API object that was retrieved from the Kubernetes API.\n// ExtractLimitRange provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractLimitRange(limitRange *corev1.LimitRange, fieldManager string) (*LimitRangeApplyConfiguration, error) {\n\treturn extractLimitRange(limitRange, fieldManager, \"\")\n}\n\n// ExtractLimitRangeStatus is the same as ExtractLimitRange except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractLimitRangeStatus(limitRange *corev1.LimitRange, fieldManager string) (*LimitRangeApplyConfiguration, error) {\n\treturn extractLimitRange(limitRange, fieldManager, \"status\")\n}\n\nfunc extractLimitRange(limitRange *corev1.LimitRange, fieldManager string, subresource string) (*LimitRangeApplyConfiguration, error) {\n\tb := &LimitRangeApplyConfiguration{}\n\terr := managedfields.ExtractInto(limitRange, internal.Parser().Type(\"io.k8s.api.core.v1.LimitRange\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(limitRange.Name)\n\tb.WithNamespace(limitRange.Namespace)\n\n\tb.WithKind(\"LimitRange\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *LimitRangeApplyConfiguration) WithKind(value string) *LimitRangeApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *LimitRangeApplyConfiguration) WithAPIVersion(value string) *LimitRangeApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *LimitRangeApplyConfiguration) WithName(value string) *LimitRangeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *LimitRangeApplyConfiguration) WithGenerateName(value string) *LimitRangeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *LimitRangeApplyConfiguration) WithNamespace(value string) *LimitRangeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *LimitRangeApplyConfiguration) WithUID(value types.UID) *LimitRangeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *LimitRangeApplyConfiguration) WithResourceVersion(value string) *LimitRangeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *LimitRangeApplyConfiguration) WithGeneration(value int64) *LimitRangeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *LimitRangeApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *LimitRangeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *LimitRangeApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *LimitRangeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *LimitRangeApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *LimitRangeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *LimitRangeApplyConfiguration) WithLabels(entries map[string]string) *LimitRangeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *LimitRangeApplyConfiguration) WithAnnotations(entries map[string]string) *LimitRangeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *LimitRangeApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *LimitRangeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *LimitRangeApplyConfiguration) WithFinalizers(values ...string) *LimitRangeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *LimitRangeApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *LimitRangeApplyConfiguration) WithSpec(value *LimitRangeSpecApplyConfiguration) *LimitRangeApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *LimitRangeApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/limitrangeitem.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// LimitRangeItemApplyConfiguration represents a declarative configuration of the LimitRangeItem type for use\n// with apply.\ntype LimitRangeItemApplyConfiguration struct {\n\tType                 *corev1.LimitType    `json:\"type,omitempty\"`\n\tMax                  *corev1.ResourceList `json:\"max,omitempty\"`\n\tMin                  *corev1.ResourceList `json:\"min,omitempty\"`\n\tDefault              *corev1.ResourceList `json:\"default,omitempty\"`\n\tDefaultRequest       *corev1.ResourceList `json:\"defaultRequest,omitempty\"`\n\tMaxLimitRequestRatio *corev1.ResourceList `json:\"maxLimitRequestRatio,omitempty\"`\n}\n\n// LimitRangeItemApplyConfiguration constructs a declarative configuration of the LimitRangeItem type for use with\n// apply.\nfunc LimitRangeItem() *LimitRangeItemApplyConfiguration {\n\treturn &LimitRangeItemApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *LimitRangeItemApplyConfiguration) WithType(value corev1.LimitType) *LimitRangeItemApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithMax sets the Max field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Max field is set to the value of the last call.\nfunc (b *LimitRangeItemApplyConfiguration) WithMax(value corev1.ResourceList) *LimitRangeItemApplyConfiguration {\n\tb.Max = &value\n\treturn b\n}\n\n// WithMin sets the Min field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Min field is set to the value of the last call.\nfunc (b *LimitRangeItemApplyConfiguration) WithMin(value corev1.ResourceList) *LimitRangeItemApplyConfiguration {\n\tb.Min = &value\n\treturn b\n}\n\n// WithDefault sets the Default field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Default field is set to the value of the last call.\nfunc (b *LimitRangeItemApplyConfiguration) WithDefault(value corev1.ResourceList) *LimitRangeItemApplyConfiguration {\n\tb.Default = &value\n\treturn b\n}\n\n// WithDefaultRequest sets the DefaultRequest field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DefaultRequest field is set to the value of the last call.\nfunc (b *LimitRangeItemApplyConfiguration) WithDefaultRequest(value corev1.ResourceList) *LimitRangeItemApplyConfiguration {\n\tb.DefaultRequest = &value\n\treturn b\n}\n\n// WithMaxLimitRequestRatio sets the MaxLimitRequestRatio field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxLimitRequestRatio field is set to the value of the last call.\nfunc (b *LimitRangeItemApplyConfiguration) WithMaxLimitRequestRatio(value corev1.ResourceList) *LimitRangeItemApplyConfiguration {\n\tb.MaxLimitRequestRatio = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/limitrangespec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// LimitRangeSpecApplyConfiguration represents a declarative configuration of the LimitRangeSpec type for use\n// with apply.\ntype LimitRangeSpecApplyConfiguration struct {\n\tLimits []LimitRangeItemApplyConfiguration `json:\"limits,omitempty\"`\n}\n\n// LimitRangeSpecApplyConfiguration constructs a declarative configuration of the LimitRangeSpec type for use with\n// apply.\nfunc LimitRangeSpec() *LimitRangeSpecApplyConfiguration {\n\treturn &LimitRangeSpecApplyConfiguration{}\n}\n\n// WithLimits adds the given value to the Limits field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Limits field.\nfunc (b *LimitRangeSpecApplyConfiguration) WithLimits(values ...*LimitRangeItemApplyConfiguration) *LimitRangeSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithLimits\")\n\t\t}\n\t\tb.Limits = append(b.Limits, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/linuxcontaineruser.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// LinuxContainerUserApplyConfiguration represents a declarative configuration of the LinuxContainerUser type for use\n// with apply.\ntype LinuxContainerUserApplyConfiguration struct {\n\tUID                *int64  `json:\"uid,omitempty\"`\n\tGID                *int64  `json:\"gid,omitempty\"`\n\tSupplementalGroups []int64 `json:\"supplementalGroups,omitempty\"`\n}\n\n// LinuxContainerUserApplyConfiguration constructs a declarative configuration of the LinuxContainerUser type for use with\n// apply.\nfunc LinuxContainerUser() *LinuxContainerUserApplyConfiguration {\n\treturn &LinuxContainerUserApplyConfiguration{}\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *LinuxContainerUserApplyConfiguration) WithUID(value int64) *LinuxContainerUserApplyConfiguration {\n\tb.UID = &value\n\treturn b\n}\n\n// WithGID sets the GID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GID field is set to the value of the last call.\nfunc (b *LinuxContainerUserApplyConfiguration) WithGID(value int64) *LinuxContainerUserApplyConfiguration {\n\tb.GID = &value\n\treturn b\n}\n\n// WithSupplementalGroups adds the given value to the SupplementalGroups field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the SupplementalGroups field.\nfunc (b *LinuxContainerUserApplyConfiguration) WithSupplementalGroups(values ...int64) *LinuxContainerUserApplyConfiguration {\n\tfor i := range values {\n\t\tb.SupplementalGroups = append(b.SupplementalGroups, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/loadbalanceringress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// LoadBalancerIngressApplyConfiguration represents a declarative configuration of the LoadBalancerIngress type for use\n// with apply.\ntype LoadBalancerIngressApplyConfiguration struct {\n\tIP       *string                        `json:\"ip,omitempty\"`\n\tHostname *string                        `json:\"hostname,omitempty\"`\n\tIPMode   *corev1.LoadBalancerIPMode     `json:\"ipMode,omitempty\"`\n\tPorts    []PortStatusApplyConfiguration `json:\"ports,omitempty\"`\n}\n\n// LoadBalancerIngressApplyConfiguration constructs a declarative configuration of the LoadBalancerIngress type for use with\n// apply.\nfunc LoadBalancerIngress() *LoadBalancerIngressApplyConfiguration {\n\treturn &LoadBalancerIngressApplyConfiguration{}\n}\n\n// WithIP sets the IP field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the IP field is set to the value of the last call.\nfunc (b *LoadBalancerIngressApplyConfiguration) WithIP(value string) *LoadBalancerIngressApplyConfiguration {\n\tb.IP = &value\n\treturn b\n}\n\n// WithHostname sets the Hostname field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Hostname field is set to the value of the last call.\nfunc (b *LoadBalancerIngressApplyConfiguration) WithHostname(value string) *LoadBalancerIngressApplyConfiguration {\n\tb.Hostname = &value\n\treturn b\n}\n\n// WithIPMode sets the IPMode field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the IPMode field is set to the value of the last call.\nfunc (b *LoadBalancerIngressApplyConfiguration) WithIPMode(value corev1.LoadBalancerIPMode) *LoadBalancerIngressApplyConfiguration {\n\tb.IPMode = &value\n\treturn b\n}\n\n// WithPorts adds the given value to the Ports field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ports field.\nfunc (b *LoadBalancerIngressApplyConfiguration) WithPorts(values ...*PortStatusApplyConfiguration) *LoadBalancerIngressApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPorts\")\n\t\t}\n\t\tb.Ports = append(b.Ports, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/loadbalancerstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// LoadBalancerStatusApplyConfiguration represents a declarative configuration of the LoadBalancerStatus type for use\n// with apply.\ntype LoadBalancerStatusApplyConfiguration struct {\n\tIngress []LoadBalancerIngressApplyConfiguration `json:\"ingress,omitempty\"`\n}\n\n// LoadBalancerStatusApplyConfiguration constructs a declarative configuration of the LoadBalancerStatus type for use with\n// apply.\nfunc LoadBalancerStatus() *LoadBalancerStatusApplyConfiguration {\n\treturn &LoadBalancerStatusApplyConfiguration{}\n}\n\n// WithIngress adds the given value to the Ingress field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ingress field.\nfunc (b *LoadBalancerStatusApplyConfiguration) WithIngress(values ...*LoadBalancerIngressApplyConfiguration) *LoadBalancerStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithIngress\")\n\t\t}\n\t\tb.Ingress = append(b.Ingress, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/localobjectreference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// LocalObjectReferenceApplyConfiguration represents a declarative configuration of the LocalObjectReference type for use\n// with apply.\ntype LocalObjectReferenceApplyConfiguration struct {\n\tName *string `json:\"name,omitempty\"`\n}\n\n// LocalObjectReferenceApplyConfiguration constructs a declarative configuration of the LocalObjectReference type for use with\n// apply.\nfunc LocalObjectReference() *LocalObjectReferenceApplyConfiguration {\n\treturn &LocalObjectReferenceApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *LocalObjectReferenceApplyConfiguration) WithName(value string) *LocalObjectReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/localvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// LocalVolumeSourceApplyConfiguration represents a declarative configuration of the LocalVolumeSource type for use\n// with apply.\ntype LocalVolumeSourceApplyConfiguration struct {\n\tPath   *string `json:\"path,omitempty\"`\n\tFSType *string `json:\"fsType,omitempty\"`\n}\n\n// LocalVolumeSourceApplyConfiguration constructs a declarative configuration of the LocalVolumeSource type for use with\n// apply.\nfunc LocalVolumeSource() *LocalVolumeSourceApplyConfiguration {\n\treturn &LocalVolumeSourceApplyConfiguration{}\n}\n\n// WithPath sets the Path field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Path field is set to the value of the last call.\nfunc (b *LocalVolumeSourceApplyConfiguration) WithPath(value string) *LocalVolumeSourceApplyConfiguration {\n\tb.Path = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *LocalVolumeSourceApplyConfiguration) WithFSType(value string) *LocalVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/modifyvolumestatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// ModifyVolumeStatusApplyConfiguration represents a declarative configuration of the ModifyVolumeStatus type for use\n// with apply.\ntype ModifyVolumeStatusApplyConfiguration struct {\n\tTargetVolumeAttributesClassName *string                                         `json:\"targetVolumeAttributesClassName,omitempty\"`\n\tStatus                          *corev1.PersistentVolumeClaimModifyVolumeStatus `json:\"status,omitempty\"`\n}\n\n// ModifyVolumeStatusApplyConfiguration constructs a declarative configuration of the ModifyVolumeStatus type for use with\n// apply.\nfunc ModifyVolumeStatus() *ModifyVolumeStatusApplyConfiguration {\n\treturn &ModifyVolumeStatusApplyConfiguration{}\n}\n\n// WithTargetVolumeAttributesClassName sets the TargetVolumeAttributesClassName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TargetVolumeAttributesClassName field is set to the value of the last call.\nfunc (b *ModifyVolumeStatusApplyConfiguration) WithTargetVolumeAttributesClassName(value string) *ModifyVolumeStatusApplyConfiguration {\n\tb.TargetVolumeAttributesClassName = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *ModifyVolumeStatusApplyConfiguration) WithStatus(value corev1.PersistentVolumeClaimModifyVolumeStatus) *ModifyVolumeStatusApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/namespace.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// NamespaceApplyConfiguration represents a declarative configuration of the Namespace type for use\n// with apply.\ntype NamespaceApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                                 *NamespaceSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                               *NamespaceStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// Namespace constructs a declarative configuration of the Namespace type for use with\n// apply.\nfunc Namespace(name string) *NamespaceApplyConfiguration {\n\tb := &NamespaceApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"Namespace\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b\n}\n\n// ExtractNamespace extracts the applied configuration owned by fieldManager from\n// namespace. If no managedFields are found in namespace for fieldManager, a\n// NamespaceApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// namespace must be a unmodified Namespace API object that was retrieved from the Kubernetes API.\n// ExtractNamespace provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractNamespace(namespace *corev1.Namespace, fieldManager string) (*NamespaceApplyConfiguration, error) {\n\treturn extractNamespace(namespace, fieldManager, \"\")\n}\n\n// ExtractNamespaceStatus is the same as ExtractNamespace except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractNamespaceStatus(namespace *corev1.Namespace, fieldManager string) (*NamespaceApplyConfiguration, error) {\n\treturn extractNamespace(namespace, fieldManager, \"status\")\n}\n\nfunc extractNamespace(namespace *corev1.Namespace, fieldManager string, subresource string) (*NamespaceApplyConfiguration, error) {\n\tb := &NamespaceApplyConfiguration{}\n\terr := managedfields.ExtractInto(namespace, internal.Parser().Type(\"io.k8s.api.core.v1.Namespace\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(namespace.Name)\n\n\tb.WithKind(\"Namespace\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *NamespaceApplyConfiguration) WithKind(value string) *NamespaceApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *NamespaceApplyConfiguration) WithAPIVersion(value string) *NamespaceApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *NamespaceApplyConfiguration) WithName(value string) *NamespaceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *NamespaceApplyConfiguration) WithGenerateName(value string) *NamespaceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *NamespaceApplyConfiguration) WithNamespace(value string) *NamespaceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *NamespaceApplyConfiguration) WithUID(value types.UID) *NamespaceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *NamespaceApplyConfiguration) WithResourceVersion(value string) *NamespaceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *NamespaceApplyConfiguration) WithGeneration(value int64) *NamespaceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *NamespaceApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *NamespaceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *NamespaceApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *NamespaceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *NamespaceApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *NamespaceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *NamespaceApplyConfiguration) WithLabels(entries map[string]string) *NamespaceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *NamespaceApplyConfiguration) WithAnnotations(entries map[string]string) *NamespaceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *NamespaceApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *NamespaceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *NamespaceApplyConfiguration) WithFinalizers(values ...string) *NamespaceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *NamespaceApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *NamespaceApplyConfiguration) WithSpec(value *NamespaceSpecApplyConfiguration) *NamespaceApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *NamespaceApplyConfiguration) WithStatus(value *NamespaceStatusApplyConfiguration) *NamespaceApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *NamespaceApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/namespacecondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// NamespaceConditionApplyConfiguration represents a declarative configuration of the NamespaceCondition type for use\n// with apply.\ntype NamespaceConditionApplyConfiguration struct {\n\tType               *corev1.NamespaceConditionType `json:\"type,omitempty\"`\n\tStatus             *corev1.ConditionStatus        `json:\"status,omitempty\"`\n\tLastTransitionTime *metav1.Time                   `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                        `json:\"reason,omitempty\"`\n\tMessage            *string                        `json:\"message,omitempty\"`\n}\n\n// NamespaceConditionApplyConfiguration constructs a declarative configuration of the NamespaceCondition type for use with\n// apply.\nfunc NamespaceCondition() *NamespaceConditionApplyConfiguration {\n\treturn &NamespaceConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *NamespaceConditionApplyConfiguration) WithType(value corev1.NamespaceConditionType) *NamespaceConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *NamespaceConditionApplyConfiguration) WithStatus(value corev1.ConditionStatus) *NamespaceConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *NamespaceConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *NamespaceConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *NamespaceConditionApplyConfiguration) WithReason(value string) *NamespaceConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *NamespaceConditionApplyConfiguration) WithMessage(value string) *NamespaceConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/namespacespec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// NamespaceSpecApplyConfiguration represents a declarative configuration of the NamespaceSpec type for use\n// with apply.\ntype NamespaceSpecApplyConfiguration struct {\n\tFinalizers []corev1.FinalizerName `json:\"finalizers,omitempty\"`\n}\n\n// NamespaceSpecApplyConfiguration constructs a declarative configuration of the NamespaceSpec type for use with\n// apply.\nfunc NamespaceSpec() *NamespaceSpecApplyConfiguration {\n\treturn &NamespaceSpecApplyConfiguration{}\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *NamespaceSpecApplyConfiguration) WithFinalizers(values ...corev1.FinalizerName) *NamespaceSpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/namespacestatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// NamespaceStatusApplyConfiguration represents a declarative configuration of the NamespaceStatus type for use\n// with apply.\ntype NamespaceStatusApplyConfiguration struct {\n\tPhase      *corev1.NamespacePhase                 `json:\"phase,omitempty\"`\n\tConditions []NamespaceConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// NamespaceStatusApplyConfiguration constructs a declarative configuration of the NamespaceStatus type for use with\n// apply.\nfunc NamespaceStatus() *NamespaceStatusApplyConfiguration {\n\treturn &NamespaceStatusApplyConfiguration{}\n}\n\n// WithPhase sets the Phase field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Phase field is set to the value of the last call.\nfunc (b *NamespaceStatusApplyConfiguration) WithPhase(value corev1.NamespacePhase) *NamespaceStatusApplyConfiguration {\n\tb.Phase = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *NamespaceStatusApplyConfiguration) WithConditions(values ...*NamespaceConditionApplyConfiguration) *NamespaceStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/nfsvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// NFSVolumeSourceApplyConfiguration represents a declarative configuration of the NFSVolumeSource type for use\n// with apply.\ntype NFSVolumeSourceApplyConfiguration struct {\n\tServer   *string `json:\"server,omitempty\"`\n\tPath     *string `json:\"path,omitempty\"`\n\tReadOnly *bool   `json:\"readOnly,omitempty\"`\n}\n\n// NFSVolumeSourceApplyConfiguration constructs a declarative configuration of the NFSVolumeSource type for use with\n// apply.\nfunc NFSVolumeSource() *NFSVolumeSourceApplyConfiguration {\n\treturn &NFSVolumeSourceApplyConfiguration{}\n}\n\n// WithServer sets the Server field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Server field is set to the value of the last call.\nfunc (b *NFSVolumeSourceApplyConfiguration) WithServer(value string) *NFSVolumeSourceApplyConfiguration {\n\tb.Server = &value\n\treturn b\n}\n\n// WithPath sets the Path field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Path field is set to the value of the last call.\nfunc (b *NFSVolumeSourceApplyConfiguration) WithPath(value string) *NFSVolumeSourceApplyConfiguration {\n\tb.Path = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *NFSVolumeSourceApplyConfiguration) WithReadOnly(value bool) *NFSVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/node.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// NodeApplyConfiguration represents a declarative configuration of the Node type for use\n// with apply.\ntype NodeApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                                 *NodeSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                               *NodeStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// Node constructs a declarative configuration of the Node type for use with\n// apply.\nfunc Node(name string) *NodeApplyConfiguration {\n\tb := &NodeApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"Node\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b\n}\n\n// ExtractNode extracts the applied configuration owned by fieldManager from\n// node. If no managedFields are found in node for fieldManager, a\n// NodeApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// node must be a unmodified Node API object that was retrieved from the Kubernetes API.\n// ExtractNode provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractNode(node *corev1.Node, fieldManager string) (*NodeApplyConfiguration, error) {\n\treturn extractNode(node, fieldManager, \"\")\n}\n\n// ExtractNodeStatus is the same as ExtractNode except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractNodeStatus(node *corev1.Node, fieldManager string) (*NodeApplyConfiguration, error) {\n\treturn extractNode(node, fieldManager, \"status\")\n}\n\nfunc extractNode(node *corev1.Node, fieldManager string, subresource string) (*NodeApplyConfiguration, error) {\n\tb := &NodeApplyConfiguration{}\n\terr := managedfields.ExtractInto(node, internal.Parser().Type(\"io.k8s.api.core.v1.Node\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(node.Name)\n\n\tb.WithKind(\"Node\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *NodeApplyConfiguration) WithKind(value string) *NodeApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *NodeApplyConfiguration) WithAPIVersion(value string) *NodeApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *NodeApplyConfiguration) WithName(value string) *NodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *NodeApplyConfiguration) WithGenerateName(value string) *NodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *NodeApplyConfiguration) WithNamespace(value string) *NodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *NodeApplyConfiguration) WithUID(value types.UID) *NodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *NodeApplyConfiguration) WithResourceVersion(value string) *NodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *NodeApplyConfiguration) WithGeneration(value int64) *NodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *NodeApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *NodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *NodeApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *NodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *NodeApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *NodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *NodeApplyConfiguration) WithLabels(entries map[string]string) *NodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *NodeApplyConfiguration) WithAnnotations(entries map[string]string) *NodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *NodeApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *NodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *NodeApplyConfiguration) WithFinalizers(values ...string) *NodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *NodeApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *NodeApplyConfiguration) WithSpec(value *NodeSpecApplyConfiguration) *NodeApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *NodeApplyConfiguration) WithStatus(value *NodeStatusApplyConfiguration) *NodeApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *NodeApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/nodeaddress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// NodeAddressApplyConfiguration represents a declarative configuration of the NodeAddress type for use\n// with apply.\ntype NodeAddressApplyConfiguration struct {\n\tType    *corev1.NodeAddressType `json:\"type,omitempty\"`\n\tAddress *string                 `json:\"address,omitempty\"`\n}\n\n// NodeAddressApplyConfiguration constructs a declarative configuration of the NodeAddress type for use with\n// apply.\nfunc NodeAddress() *NodeAddressApplyConfiguration {\n\treturn &NodeAddressApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *NodeAddressApplyConfiguration) WithType(value corev1.NodeAddressType) *NodeAddressApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithAddress sets the Address field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Address field is set to the value of the last call.\nfunc (b *NodeAddressApplyConfiguration) WithAddress(value string) *NodeAddressApplyConfiguration {\n\tb.Address = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/nodeaffinity.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// NodeAffinityApplyConfiguration represents a declarative configuration of the NodeAffinity type for use\n// with apply.\ntype NodeAffinityApplyConfiguration struct {\n\tRequiredDuringSchedulingIgnoredDuringExecution  *NodeSelectorApplyConfiguration             `json:\"requiredDuringSchedulingIgnoredDuringExecution,omitempty\"`\n\tPreferredDuringSchedulingIgnoredDuringExecution []PreferredSchedulingTermApplyConfiguration `json:\"preferredDuringSchedulingIgnoredDuringExecution,omitempty\"`\n}\n\n// NodeAffinityApplyConfiguration constructs a declarative configuration of the NodeAffinity type for use with\n// apply.\nfunc NodeAffinity() *NodeAffinityApplyConfiguration {\n\treturn &NodeAffinityApplyConfiguration{}\n}\n\n// WithRequiredDuringSchedulingIgnoredDuringExecution sets the RequiredDuringSchedulingIgnoredDuringExecution field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RequiredDuringSchedulingIgnoredDuringExecution field is set to the value of the last call.\nfunc (b *NodeAffinityApplyConfiguration) WithRequiredDuringSchedulingIgnoredDuringExecution(value *NodeSelectorApplyConfiguration) *NodeAffinityApplyConfiguration {\n\tb.RequiredDuringSchedulingIgnoredDuringExecution = value\n\treturn b\n}\n\n// WithPreferredDuringSchedulingIgnoredDuringExecution adds the given value to the PreferredDuringSchedulingIgnoredDuringExecution field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the PreferredDuringSchedulingIgnoredDuringExecution field.\nfunc (b *NodeAffinityApplyConfiguration) WithPreferredDuringSchedulingIgnoredDuringExecution(values ...*PreferredSchedulingTermApplyConfiguration) *NodeAffinityApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPreferredDuringSchedulingIgnoredDuringExecution\")\n\t\t}\n\t\tb.PreferredDuringSchedulingIgnoredDuringExecution = append(b.PreferredDuringSchedulingIgnoredDuringExecution, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/nodecondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// NodeConditionApplyConfiguration represents a declarative configuration of the NodeCondition type for use\n// with apply.\ntype NodeConditionApplyConfiguration struct {\n\tType               *corev1.NodeConditionType `json:\"type,omitempty\"`\n\tStatus             *corev1.ConditionStatus   `json:\"status,omitempty\"`\n\tLastHeartbeatTime  *metav1.Time              `json:\"lastHeartbeatTime,omitempty\"`\n\tLastTransitionTime *metav1.Time              `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                   `json:\"reason,omitempty\"`\n\tMessage            *string                   `json:\"message,omitempty\"`\n}\n\n// NodeConditionApplyConfiguration constructs a declarative configuration of the NodeCondition type for use with\n// apply.\nfunc NodeCondition() *NodeConditionApplyConfiguration {\n\treturn &NodeConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *NodeConditionApplyConfiguration) WithType(value corev1.NodeConditionType) *NodeConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *NodeConditionApplyConfiguration) WithStatus(value corev1.ConditionStatus) *NodeConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastHeartbeatTime sets the LastHeartbeatTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastHeartbeatTime field is set to the value of the last call.\nfunc (b *NodeConditionApplyConfiguration) WithLastHeartbeatTime(value metav1.Time) *NodeConditionApplyConfiguration {\n\tb.LastHeartbeatTime = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *NodeConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *NodeConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *NodeConditionApplyConfiguration) WithReason(value string) *NodeConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *NodeConditionApplyConfiguration) WithMessage(value string) *NodeConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/nodeconfigsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// NodeConfigSourceApplyConfiguration represents a declarative configuration of the NodeConfigSource type for use\n// with apply.\ntype NodeConfigSourceApplyConfiguration struct {\n\tConfigMap *ConfigMapNodeConfigSourceApplyConfiguration `json:\"configMap,omitempty\"`\n}\n\n// NodeConfigSourceApplyConfiguration constructs a declarative configuration of the NodeConfigSource type for use with\n// apply.\nfunc NodeConfigSource() *NodeConfigSourceApplyConfiguration {\n\treturn &NodeConfigSourceApplyConfiguration{}\n}\n\n// WithConfigMap sets the ConfigMap field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ConfigMap field is set to the value of the last call.\nfunc (b *NodeConfigSourceApplyConfiguration) WithConfigMap(value *ConfigMapNodeConfigSourceApplyConfiguration) *NodeConfigSourceApplyConfiguration {\n\tb.ConfigMap = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/nodeconfigstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// NodeConfigStatusApplyConfiguration represents a declarative configuration of the NodeConfigStatus type for use\n// with apply.\ntype NodeConfigStatusApplyConfiguration struct {\n\tAssigned      *NodeConfigSourceApplyConfiguration `json:\"assigned,omitempty\"`\n\tActive        *NodeConfigSourceApplyConfiguration `json:\"active,omitempty\"`\n\tLastKnownGood *NodeConfigSourceApplyConfiguration `json:\"lastKnownGood,omitempty\"`\n\tError         *string                             `json:\"error,omitempty\"`\n}\n\n// NodeConfigStatusApplyConfiguration constructs a declarative configuration of the NodeConfigStatus type for use with\n// apply.\nfunc NodeConfigStatus() *NodeConfigStatusApplyConfiguration {\n\treturn &NodeConfigStatusApplyConfiguration{}\n}\n\n// WithAssigned sets the Assigned field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Assigned field is set to the value of the last call.\nfunc (b *NodeConfigStatusApplyConfiguration) WithAssigned(value *NodeConfigSourceApplyConfiguration) *NodeConfigStatusApplyConfiguration {\n\tb.Assigned = value\n\treturn b\n}\n\n// WithActive sets the Active field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Active field is set to the value of the last call.\nfunc (b *NodeConfigStatusApplyConfiguration) WithActive(value *NodeConfigSourceApplyConfiguration) *NodeConfigStatusApplyConfiguration {\n\tb.Active = value\n\treturn b\n}\n\n// WithLastKnownGood sets the LastKnownGood field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastKnownGood field is set to the value of the last call.\nfunc (b *NodeConfigStatusApplyConfiguration) WithLastKnownGood(value *NodeConfigSourceApplyConfiguration) *NodeConfigStatusApplyConfiguration {\n\tb.LastKnownGood = value\n\treturn b\n}\n\n// WithError sets the Error field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Error field is set to the value of the last call.\nfunc (b *NodeConfigStatusApplyConfiguration) WithError(value string) *NodeConfigStatusApplyConfiguration {\n\tb.Error = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/nodedaemonendpoints.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// NodeDaemonEndpointsApplyConfiguration represents a declarative configuration of the NodeDaemonEndpoints type for use\n// with apply.\ntype NodeDaemonEndpointsApplyConfiguration struct {\n\tKubeletEndpoint *DaemonEndpointApplyConfiguration `json:\"kubeletEndpoint,omitempty\"`\n}\n\n// NodeDaemonEndpointsApplyConfiguration constructs a declarative configuration of the NodeDaemonEndpoints type for use with\n// apply.\nfunc NodeDaemonEndpoints() *NodeDaemonEndpointsApplyConfiguration {\n\treturn &NodeDaemonEndpointsApplyConfiguration{}\n}\n\n// WithKubeletEndpoint sets the KubeletEndpoint field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the KubeletEndpoint field is set to the value of the last call.\nfunc (b *NodeDaemonEndpointsApplyConfiguration) WithKubeletEndpoint(value *DaemonEndpointApplyConfiguration) *NodeDaemonEndpointsApplyConfiguration {\n\tb.KubeletEndpoint = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/nodefeatures.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// NodeFeaturesApplyConfiguration represents a declarative configuration of the NodeFeatures type for use\n// with apply.\ntype NodeFeaturesApplyConfiguration struct {\n\tSupplementalGroupsPolicy *bool `json:\"supplementalGroupsPolicy,omitempty\"`\n}\n\n// NodeFeaturesApplyConfiguration constructs a declarative configuration of the NodeFeatures type for use with\n// apply.\nfunc NodeFeatures() *NodeFeaturesApplyConfiguration {\n\treturn &NodeFeaturesApplyConfiguration{}\n}\n\n// WithSupplementalGroupsPolicy sets the SupplementalGroupsPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SupplementalGroupsPolicy field is set to the value of the last call.\nfunc (b *NodeFeaturesApplyConfiguration) WithSupplementalGroupsPolicy(value bool) *NodeFeaturesApplyConfiguration {\n\tb.SupplementalGroupsPolicy = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/noderuntimehandler.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// NodeRuntimeHandlerApplyConfiguration represents a declarative configuration of the NodeRuntimeHandler type for use\n// with apply.\ntype NodeRuntimeHandlerApplyConfiguration struct {\n\tName     *string                                       `json:\"name,omitempty\"`\n\tFeatures *NodeRuntimeHandlerFeaturesApplyConfiguration `json:\"features,omitempty\"`\n}\n\n// NodeRuntimeHandlerApplyConfiguration constructs a declarative configuration of the NodeRuntimeHandler type for use with\n// apply.\nfunc NodeRuntimeHandler() *NodeRuntimeHandlerApplyConfiguration {\n\treturn &NodeRuntimeHandlerApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *NodeRuntimeHandlerApplyConfiguration) WithName(value string) *NodeRuntimeHandlerApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithFeatures sets the Features field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Features field is set to the value of the last call.\nfunc (b *NodeRuntimeHandlerApplyConfiguration) WithFeatures(value *NodeRuntimeHandlerFeaturesApplyConfiguration) *NodeRuntimeHandlerApplyConfiguration {\n\tb.Features = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/noderuntimehandlerfeatures.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// NodeRuntimeHandlerFeaturesApplyConfiguration represents a declarative configuration of the NodeRuntimeHandlerFeatures type for use\n// with apply.\ntype NodeRuntimeHandlerFeaturesApplyConfiguration struct {\n\tRecursiveReadOnlyMounts *bool `json:\"recursiveReadOnlyMounts,omitempty\"`\n\tUserNamespaces          *bool `json:\"userNamespaces,omitempty\"`\n}\n\n// NodeRuntimeHandlerFeaturesApplyConfiguration constructs a declarative configuration of the NodeRuntimeHandlerFeatures type for use with\n// apply.\nfunc NodeRuntimeHandlerFeatures() *NodeRuntimeHandlerFeaturesApplyConfiguration {\n\treturn &NodeRuntimeHandlerFeaturesApplyConfiguration{}\n}\n\n// WithRecursiveReadOnlyMounts sets the RecursiveReadOnlyMounts field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RecursiveReadOnlyMounts field is set to the value of the last call.\nfunc (b *NodeRuntimeHandlerFeaturesApplyConfiguration) WithRecursiveReadOnlyMounts(value bool) *NodeRuntimeHandlerFeaturesApplyConfiguration {\n\tb.RecursiveReadOnlyMounts = &value\n\treturn b\n}\n\n// WithUserNamespaces sets the UserNamespaces field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UserNamespaces field is set to the value of the last call.\nfunc (b *NodeRuntimeHandlerFeaturesApplyConfiguration) WithUserNamespaces(value bool) *NodeRuntimeHandlerFeaturesApplyConfiguration {\n\tb.UserNamespaces = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/nodeselector.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// NodeSelectorApplyConfiguration represents a declarative configuration of the NodeSelector type for use\n// with apply.\ntype NodeSelectorApplyConfiguration struct {\n\tNodeSelectorTerms []NodeSelectorTermApplyConfiguration `json:\"nodeSelectorTerms,omitempty\"`\n}\n\n// NodeSelectorApplyConfiguration constructs a declarative configuration of the NodeSelector type for use with\n// apply.\nfunc NodeSelector() *NodeSelectorApplyConfiguration {\n\treturn &NodeSelectorApplyConfiguration{}\n}\n\n// WithNodeSelectorTerms adds the given value to the NodeSelectorTerms field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the NodeSelectorTerms field.\nfunc (b *NodeSelectorApplyConfiguration) WithNodeSelectorTerms(values ...*NodeSelectorTermApplyConfiguration) *NodeSelectorApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithNodeSelectorTerms\")\n\t\t}\n\t\tb.NodeSelectorTerms = append(b.NodeSelectorTerms, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/nodeselectorrequirement.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// NodeSelectorRequirementApplyConfiguration represents a declarative configuration of the NodeSelectorRequirement type for use\n// with apply.\ntype NodeSelectorRequirementApplyConfiguration struct {\n\tKey      *string                      `json:\"key,omitempty\"`\n\tOperator *corev1.NodeSelectorOperator `json:\"operator,omitempty\"`\n\tValues   []string                     `json:\"values,omitempty\"`\n}\n\n// NodeSelectorRequirementApplyConfiguration constructs a declarative configuration of the NodeSelectorRequirement type for use with\n// apply.\nfunc NodeSelectorRequirement() *NodeSelectorRequirementApplyConfiguration {\n\treturn &NodeSelectorRequirementApplyConfiguration{}\n}\n\n// WithKey sets the Key field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Key field is set to the value of the last call.\nfunc (b *NodeSelectorRequirementApplyConfiguration) WithKey(value string) *NodeSelectorRequirementApplyConfiguration {\n\tb.Key = &value\n\treturn b\n}\n\n// WithOperator sets the Operator field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Operator field is set to the value of the last call.\nfunc (b *NodeSelectorRequirementApplyConfiguration) WithOperator(value corev1.NodeSelectorOperator) *NodeSelectorRequirementApplyConfiguration {\n\tb.Operator = &value\n\treturn b\n}\n\n// WithValues adds the given value to the Values field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Values field.\nfunc (b *NodeSelectorRequirementApplyConfiguration) WithValues(values ...string) *NodeSelectorRequirementApplyConfiguration {\n\tfor i := range values {\n\t\tb.Values = append(b.Values, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/nodeselectorterm.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// NodeSelectorTermApplyConfiguration represents a declarative configuration of the NodeSelectorTerm type for use\n// with apply.\ntype NodeSelectorTermApplyConfiguration struct {\n\tMatchExpressions []NodeSelectorRequirementApplyConfiguration `json:\"matchExpressions,omitempty\"`\n\tMatchFields      []NodeSelectorRequirementApplyConfiguration `json:\"matchFields,omitempty\"`\n}\n\n// NodeSelectorTermApplyConfiguration constructs a declarative configuration of the NodeSelectorTerm type for use with\n// apply.\nfunc NodeSelectorTerm() *NodeSelectorTermApplyConfiguration {\n\treturn &NodeSelectorTermApplyConfiguration{}\n}\n\n// WithMatchExpressions adds the given value to the MatchExpressions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the MatchExpressions field.\nfunc (b *NodeSelectorTermApplyConfiguration) WithMatchExpressions(values ...*NodeSelectorRequirementApplyConfiguration) *NodeSelectorTermApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithMatchExpressions\")\n\t\t}\n\t\tb.MatchExpressions = append(b.MatchExpressions, *values[i])\n\t}\n\treturn b\n}\n\n// WithMatchFields adds the given value to the MatchFields field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the MatchFields field.\nfunc (b *NodeSelectorTermApplyConfiguration) WithMatchFields(values ...*NodeSelectorRequirementApplyConfiguration) *NodeSelectorTermApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithMatchFields\")\n\t\t}\n\t\tb.MatchFields = append(b.MatchFields, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/nodespec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// NodeSpecApplyConfiguration represents a declarative configuration of the NodeSpec type for use\n// with apply.\ntype NodeSpecApplyConfiguration struct {\n\tPodCIDR            *string                             `json:\"podCIDR,omitempty\"`\n\tPodCIDRs           []string                            `json:\"podCIDRs,omitempty\"`\n\tProviderID         *string                             `json:\"providerID,omitempty\"`\n\tUnschedulable      *bool                               `json:\"unschedulable,omitempty\"`\n\tTaints             []TaintApplyConfiguration           `json:\"taints,omitempty\"`\n\tConfigSource       *NodeConfigSourceApplyConfiguration `json:\"configSource,omitempty\"`\n\tDoNotUseExternalID *string                             `json:\"externalID,omitempty\"`\n}\n\n// NodeSpecApplyConfiguration constructs a declarative configuration of the NodeSpec type for use with\n// apply.\nfunc NodeSpec() *NodeSpecApplyConfiguration {\n\treturn &NodeSpecApplyConfiguration{}\n}\n\n// WithPodCIDR sets the PodCIDR field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PodCIDR field is set to the value of the last call.\nfunc (b *NodeSpecApplyConfiguration) WithPodCIDR(value string) *NodeSpecApplyConfiguration {\n\tb.PodCIDR = &value\n\treturn b\n}\n\n// WithPodCIDRs adds the given value to the PodCIDRs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the PodCIDRs field.\nfunc (b *NodeSpecApplyConfiguration) WithPodCIDRs(values ...string) *NodeSpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.PodCIDRs = append(b.PodCIDRs, values[i])\n\t}\n\treturn b\n}\n\n// WithProviderID sets the ProviderID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ProviderID field is set to the value of the last call.\nfunc (b *NodeSpecApplyConfiguration) WithProviderID(value string) *NodeSpecApplyConfiguration {\n\tb.ProviderID = &value\n\treturn b\n}\n\n// WithUnschedulable sets the Unschedulable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Unschedulable field is set to the value of the last call.\nfunc (b *NodeSpecApplyConfiguration) WithUnschedulable(value bool) *NodeSpecApplyConfiguration {\n\tb.Unschedulable = &value\n\treturn b\n}\n\n// WithTaints adds the given value to the Taints field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Taints field.\nfunc (b *NodeSpecApplyConfiguration) WithTaints(values ...*TaintApplyConfiguration) *NodeSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithTaints\")\n\t\t}\n\t\tb.Taints = append(b.Taints, *values[i])\n\t}\n\treturn b\n}\n\n// WithConfigSource sets the ConfigSource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ConfigSource field is set to the value of the last call.\nfunc (b *NodeSpecApplyConfiguration) WithConfigSource(value *NodeConfigSourceApplyConfiguration) *NodeSpecApplyConfiguration {\n\tb.ConfigSource = value\n\treturn b\n}\n\n// WithDoNotUseExternalID sets the DoNotUseExternalID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DoNotUseExternalID field is set to the value of the last call.\nfunc (b *NodeSpecApplyConfiguration) WithDoNotUseExternalID(value string) *NodeSpecApplyConfiguration {\n\tb.DoNotUseExternalID = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/nodestatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// NodeStatusApplyConfiguration represents a declarative configuration of the NodeStatus type for use\n// with apply.\ntype NodeStatusApplyConfiguration struct {\n\tCapacity        *corev1.ResourceList                   `json:\"capacity,omitempty\"`\n\tAllocatable     *corev1.ResourceList                   `json:\"allocatable,omitempty\"`\n\tPhase           *corev1.NodePhase                      `json:\"phase,omitempty\"`\n\tConditions      []NodeConditionApplyConfiguration      `json:\"conditions,omitempty\"`\n\tAddresses       []NodeAddressApplyConfiguration        `json:\"addresses,omitempty\"`\n\tDaemonEndpoints *NodeDaemonEndpointsApplyConfiguration `json:\"daemonEndpoints,omitempty\"`\n\tNodeInfo        *NodeSystemInfoApplyConfiguration      `json:\"nodeInfo,omitempty\"`\n\tImages          []ContainerImageApplyConfiguration     `json:\"images,omitempty\"`\n\tVolumesInUse    []corev1.UniqueVolumeName              `json:\"volumesInUse,omitempty\"`\n\tVolumesAttached []AttachedVolumeApplyConfiguration     `json:\"volumesAttached,omitempty\"`\n\tConfig          *NodeConfigStatusApplyConfiguration    `json:\"config,omitempty\"`\n\tRuntimeHandlers []NodeRuntimeHandlerApplyConfiguration `json:\"runtimeHandlers,omitempty\"`\n\tFeatures        *NodeFeaturesApplyConfiguration        `json:\"features,omitempty\"`\n}\n\n// NodeStatusApplyConfiguration constructs a declarative configuration of the NodeStatus type for use with\n// apply.\nfunc NodeStatus() *NodeStatusApplyConfiguration {\n\treturn &NodeStatusApplyConfiguration{}\n}\n\n// WithCapacity sets the Capacity field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Capacity field is set to the value of the last call.\nfunc (b *NodeStatusApplyConfiguration) WithCapacity(value corev1.ResourceList) *NodeStatusApplyConfiguration {\n\tb.Capacity = &value\n\treturn b\n}\n\n// WithAllocatable sets the Allocatable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Allocatable field is set to the value of the last call.\nfunc (b *NodeStatusApplyConfiguration) WithAllocatable(value corev1.ResourceList) *NodeStatusApplyConfiguration {\n\tb.Allocatable = &value\n\treturn b\n}\n\n// WithPhase sets the Phase field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Phase field is set to the value of the last call.\nfunc (b *NodeStatusApplyConfiguration) WithPhase(value corev1.NodePhase) *NodeStatusApplyConfiguration {\n\tb.Phase = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *NodeStatusApplyConfiguration) WithConditions(values ...*NodeConditionApplyConfiguration) *NodeStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n\n// WithAddresses adds the given value to the Addresses field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Addresses field.\nfunc (b *NodeStatusApplyConfiguration) WithAddresses(values ...*NodeAddressApplyConfiguration) *NodeStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithAddresses\")\n\t\t}\n\t\tb.Addresses = append(b.Addresses, *values[i])\n\t}\n\treturn b\n}\n\n// WithDaemonEndpoints sets the DaemonEndpoints field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DaemonEndpoints field is set to the value of the last call.\nfunc (b *NodeStatusApplyConfiguration) WithDaemonEndpoints(value *NodeDaemonEndpointsApplyConfiguration) *NodeStatusApplyConfiguration {\n\tb.DaemonEndpoints = value\n\treturn b\n}\n\n// WithNodeInfo sets the NodeInfo field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeInfo field is set to the value of the last call.\nfunc (b *NodeStatusApplyConfiguration) WithNodeInfo(value *NodeSystemInfoApplyConfiguration) *NodeStatusApplyConfiguration {\n\tb.NodeInfo = value\n\treturn b\n}\n\n// WithImages adds the given value to the Images field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Images field.\nfunc (b *NodeStatusApplyConfiguration) WithImages(values ...*ContainerImageApplyConfiguration) *NodeStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithImages\")\n\t\t}\n\t\tb.Images = append(b.Images, *values[i])\n\t}\n\treturn b\n}\n\n// WithVolumesInUse adds the given value to the VolumesInUse field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the VolumesInUse field.\nfunc (b *NodeStatusApplyConfiguration) WithVolumesInUse(values ...corev1.UniqueVolumeName) *NodeStatusApplyConfiguration {\n\tfor i := range values {\n\t\tb.VolumesInUse = append(b.VolumesInUse, values[i])\n\t}\n\treturn b\n}\n\n// WithVolumesAttached adds the given value to the VolumesAttached field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the VolumesAttached field.\nfunc (b *NodeStatusApplyConfiguration) WithVolumesAttached(values ...*AttachedVolumeApplyConfiguration) *NodeStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithVolumesAttached\")\n\t\t}\n\t\tb.VolumesAttached = append(b.VolumesAttached, *values[i])\n\t}\n\treturn b\n}\n\n// WithConfig sets the Config field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Config field is set to the value of the last call.\nfunc (b *NodeStatusApplyConfiguration) WithConfig(value *NodeConfigStatusApplyConfiguration) *NodeStatusApplyConfiguration {\n\tb.Config = value\n\treturn b\n}\n\n// WithRuntimeHandlers adds the given value to the RuntimeHandlers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the RuntimeHandlers field.\nfunc (b *NodeStatusApplyConfiguration) WithRuntimeHandlers(values ...*NodeRuntimeHandlerApplyConfiguration) *NodeStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRuntimeHandlers\")\n\t\t}\n\t\tb.RuntimeHandlers = append(b.RuntimeHandlers, *values[i])\n\t}\n\treturn b\n}\n\n// WithFeatures sets the Features field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Features field is set to the value of the last call.\nfunc (b *NodeStatusApplyConfiguration) WithFeatures(value *NodeFeaturesApplyConfiguration) *NodeStatusApplyConfiguration {\n\tb.Features = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/nodesysteminfo.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// NodeSystemInfoApplyConfiguration represents a declarative configuration of the NodeSystemInfo type for use\n// with apply.\ntype NodeSystemInfoApplyConfiguration struct {\n\tMachineID               *string `json:\"machineID,omitempty\"`\n\tSystemUUID              *string `json:\"systemUUID,omitempty\"`\n\tBootID                  *string `json:\"bootID,omitempty\"`\n\tKernelVersion           *string `json:\"kernelVersion,omitempty\"`\n\tOSImage                 *string `json:\"osImage,omitempty\"`\n\tContainerRuntimeVersion *string `json:\"containerRuntimeVersion,omitempty\"`\n\tKubeletVersion          *string `json:\"kubeletVersion,omitempty\"`\n\tKubeProxyVersion        *string `json:\"kubeProxyVersion,omitempty\"`\n\tOperatingSystem         *string `json:\"operatingSystem,omitempty\"`\n\tArchitecture            *string `json:\"architecture,omitempty\"`\n}\n\n// NodeSystemInfoApplyConfiguration constructs a declarative configuration of the NodeSystemInfo type for use with\n// apply.\nfunc NodeSystemInfo() *NodeSystemInfoApplyConfiguration {\n\treturn &NodeSystemInfoApplyConfiguration{}\n}\n\n// WithMachineID sets the MachineID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MachineID field is set to the value of the last call.\nfunc (b *NodeSystemInfoApplyConfiguration) WithMachineID(value string) *NodeSystemInfoApplyConfiguration {\n\tb.MachineID = &value\n\treturn b\n}\n\n// WithSystemUUID sets the SystemUUID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SystemUUID field is set to the value of the last call.\nfunc (b *NodeSystemInfoApplyConfiguration) WithSystemUUID(value string) *NodeSystemInfoApplyConfiguration {\n\tb.SystemUUID = &value\n\treturn b\n}\n\n// WithBootID sets the BootID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the BootID field is set to the value of the last call.\nfunc (b *NodeSystemInfoApplyConfiguration) WithBootID(value string) *NodeSystemInfoApplyConfiguration {\n\tb.BootID = &value\n\treturn b\n}\n\n// WithKernelVersion sets the KernelVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the KernelVersion field is set to the value of the last call.\nfunc (b *NodeSystemInfoApplyConfiguration) WithKernelVersion(value string) *NodeSystemInfoApplyConfiguration {\n\tb.KernelVersion = &value\n\treturn b\n}\n\n// WithOSImage sets the OSImage field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the OSImage field is set to the value of the last call.\nfunc (b *NodeSystemInfoApplyConfiguration) WithOSImage(value string) *NodeSystemInfoApplyConfiguration {\n\tb.OSImage = &value\n\treturn b\n}\n\n// WithContainerRuntimeVersion sets the ContainerRuntimeVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ContainerRuntimeVersion field is set to the value of the last call.\nfunc (b *NodeSystemInfoApplyConfiguration) WithContainerRuntimeVersion(value string) *NodeSystemInfoApplyConfiguration {\n\tb.ContainerRuntimeVersion = &value\n\treturn b\n}\n\n// WithKubeletVersion sets the KubeletVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the KubeletVersion field is set to the value of the last call.\nfunc (b *NodeSystemInfoApplyConfiguration) WithKubeletVersion(value string) *NodeSystemInfoApplyConfiguration {\n\tb.KubeletVersion = &value\n\treturn b\n}\n\n// WithKubeProxyVersion sets the KubeProxyVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the KubeProxyVersion field is set to the value of the last call.\nfunc (b *NodeSystemInfoApplyConfiguration) WithKubeProxyVersion(value string) *NodeSystemInfoApplyConfiguration {\n\tb.KubeProxyVersion = &value\n\treturn b\n}\n\n// WithOperatingSystem sets the OperatingSystem field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the OperatingSystem field is set to the value of the last call.\nfunc (b *NodeSystemInfoApplyConfiguration) WithOperatingSystem(value string) *NodeSystemInfoApplyConfiguration {\n\tb.OperatingSystem = &value\n\treturn b\n}\n\n// WithArchitecture sets the Architecture field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Architecture field is set to the value of the last call.\nfunc (b *NodeSystemInfoApplyConfiguration) WithArchitecture(value string) *NodeSystemInfoApplyConfiguration {\n\tb.Architecture = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/objectfieldselector.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ObjectFieldSelectorApplyConfiguration represents a declarative configuration of the ObjectFieldSelector type for use\n// with apply.\ntype ObjectFieldSelectorApplyConfiguration struct {\n\tAPIVersion *string `json:\"apiVersion,omitempty\"`\n\tFieldPath  *string `json:\"fieldPath,omitempty\"`\n}\n\n// ObjectFieldSelectorApplyConfiguration constructs a declarative configuration of the ObjectFieldSelector type for use with\n// apply.\nfunc ObjectFieldSelector() *ObjectFieldSelectorApplyConfiguration {\n\treturn &ObjectFieldSelectorApplyConfiguration{}\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ObjectFieldSelectorApplyConfiguration) WithAPIVersion(value string) *ObjectFieldSelectorApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithFieldPath sets the FieldPath field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FieldPath field is set to the value of the last call.\nfunc (b *ObjectFieldSelectorApplyConfiguration) WithFieldPath(value string) *ObjectFieldSelectorApplyConfiguration {\n\tb.FieldPath = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/objectreference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n)\n\n// ObjectReferenceApplyConfiguration represents a declarative configuration of the ObjectReference type for use\n// with apply.\ntype ObjectReferenceApplyConfiguration struct {\n\tKind            *string    `json:\"kind,omitempty\"`\n\tNamespace       *string    `json:\"namespace,omitempty\"`\n\tName            *string    `json:\"name,omitempty\"`\n\tUID             *types.UID `json:\"uid,omitempty\"`\n\tAPIVersion      *string    `json:\"apiVersion,omitempty\"`\n\tResourceVersion *string    `json:\"resourceVersion,omitempty\"`\n\tFieldPath       *string    `json:\"fieldPath,omitempty\"`\n}\n\n// ObjectReferenceApplyConfiguration constructs a declarative configuration of the ObjectReference type for use with\n// apply.\nfunc ObjectReference() *ObjectReferenceApplyConfiguration {\n\treturn &ObjectReferenceApplyConfiguration{}\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ObjectReferenceApplyConfiguration) WithKind(value string) *ObjectReferenceApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ObjectReferenceApplyConfiguration) WithNamespace(value string) *ObjectReferenceApplyConfiguration {\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ObjectReferenceApplyConfiguration) WithName(value string) *ObjectReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ObjectReferenceApplyConfiguration) WithUID(value types.UID) *ObjectReferenceApplyConfiguration {\n\tb.UID = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ObjectReferenceApplyConfiguration) WithAPIVersion(value string) *ObjectReferenceApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ObjectReferenceApplyConfiguration) WithResourceVersion(value string) *ObjectReferenceApplyConfiguration {\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithFieldPath sets the FieldPath field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FieldPath field is set to the value of the last call.\nfunc (b *ObjectReferenceApplyConfiguration) WithFieldPath(value string) *ObjectReferenceApplyConfiguration {\n\tb.FieldPath = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolume.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PersistentVolumeApplyConfiguration represents a declarative configuration of the PersistentVolume type for use\n// with apply.\ntype PersistentVolumeApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                                 *PersistentVolumeSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                               *PersistentVolumeStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// PersistentVolume constructs a declarative configuration of the PersistentVolume type for use with\n// apply.\nfunc PersistentVolume(name string) *PersistentVolumeApplyConfiguration {\n\tb := &PersistentVolumeApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"PersistentVolume\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b\n}\n\n// ExtractPersistentVolume extracts the applied configuration owned by fieldManager from\n// persistentVolume. If no managedFields are found in persistentVolume for fieldManager, a\n// PersistentVolumeApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// persistentVolume must be a unmodified PersistentVolume API object that was retrieved from the Kubernetes API.\n// ExtractPersistentVolume provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractPersistentVolume(persistentVolume *corev1.PersistentVolume, fieldManager string) (*PersistentVolumeApplyConfiguration, error) {\n\treturn extractPersistentVolume(persistentVolume, fieldManager, \"\")\n}\n\n// ExtractPersistentVolumeStatus is the same as ExtractPersistentVolume except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractPersistentVolumeStatus(persistentVolume *corev1.PersistentVolume, fieldManager string) (*PersistentVolumeApplyConfiguration, error) {\n\treturn extractPersistentVolume(persistentVolume, fieldManager, \"status\")\n}\n\nfunc extractPersistentVolume(persistentVolume *corev1.PersistentVolume, fieldManager string, subresource string) (*PersistentVolumeApplyConfiguration, error) {\n\tb := &PersistentVolumeApplyConfiguration{}\n\terr := managedfields.ExtractInto(persistentVolume, internal.Parser().Type(\"io.k8s.api.core.v1.PersistentVolume\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(persistentVolume.Name)\n\n\tb.WithKind(\"PersistentVolume\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *PersistentVolumeApplyConfiguration) WithKind(value string) *PersistentVolumeApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *PersistentVolumeApplyConfiguration) WithAPIVersion(value string) *PersistentVolumeApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PersistentVolumeApplyConfiguration) WithName(value string) *PersistentVolumeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *PersistentVolumeApplyConfiguration) WithGenerateName(value string) *PersistentVolumeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *PersistentVolumeApplyConfiguration) WithNamespace(value string) *PersistentVolumeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *PersistentVolumeApplyConfiguration) WithUID(value types.UID) *PersistentVolumeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *PersistentVolumeApplyConfiguration) WithResourceVersion(value string) *PersistentVolumeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *PersistentVolumeApplyConfiguration) WithGeneration(value int64) *PersistentVolumeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *PersistentVolumeApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *PersistentVolumeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *PersistentVolumeApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *PersistentVolumeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *PersistentVolumeApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PersistentVolumeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *PersistentVolumeApplyConfiguration) WithLabels(entries map[string]string) *PersistentVolumeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *PersistentVolumeApplyConfiguration) WithAnnotations(entries map[string]string) *PersistentVolumeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *PersistentVolumeApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *PersistentVolumeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *PersistentVolumeApplyConfiguration) WithFinalizers(values ...string) *PersistentVolumeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *PersistentVolumeApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *PersistentVolumeApplyConfiguration) WithSpec(value *PersistentVolumeSpecApplyConfiguration) *PersistentVolumeApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *PersistentVolumeApplyConfiguration) WithStatus(value *PersistentVolumeStatusApplyConfiguration) *PersistentVolumeApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *PersistentVolumeApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumeclaim.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PersistentVolumeClaimApplyConfiguration represents a declarative configuration of the PersistentVolumeClaim type for use\n// with apply.\ntype PersistentVolumeClaimApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                                 *PersistentVolumeClaimSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                               *PersistentVolumeClaimStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// PersistentVolumeClaim constructs a declarative configuration of the PersistentVolumeClaim type for use with\n// apply.\nfunc PersistentVolumeClaim(name, namespace string) *PersistentVolumeClaimApplyConfiguration {\n\tb := &PersistentVolumeClaimApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"PersistentVolumeClaim\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b\n}\n\n// ExtractPersistentVolumeClaim extracts the applied configuration owned by fieldManager from\n// persistentVolumeClaim. If no managedFields are found in persistentVolumeClaim for fieldManager, a\n// PersistentVolumeClaimApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// persistentVolumeClaim must be a unmodified PersistentVolumeClaim API object that was retrieved from the Kubernetes API.\n// ExtractPersistentVolumeClaim provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractPersistentVolumeClaim(persistentVolumeClaim *corev1.PersistentVolumeClaim, fieldManager string) (*PersistentVolumeClaimApplyConfiguration, error) {\n\treturn extractPersistentVolumeClaim(persistentVolumeClaim, fieldManager, \"\")\n}\n\n// ExtractPersistentVolumeClaimStatus is the same as ExtractPersistentVolumeClaim except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractPersistentVolumeClaimStatus(persistentVolumeClaim *corev1.PersistentVolumeClaim, fieldManager string) (*PersistentVolumeClaimApplyConfiguration, error) {\n\treturn extractPersistentVolumeClaim(persistentVolumeClaim, fieldManager, \"status\")\n}\n\nfunc extractPersistentVolumeClaim(persistentVolumeClaim *corev1.PersistentVolumeClaim, fieldManager string, subresource string) (*PersistentVolumeClaimApplyConfiguration, error) {\n\tb := &PersistentVolumeClaimApplyConfiguration{}\n\terr := managedfields.ExtractInto(persistentVolumeClaim, internal.Parser().Type(\"io.k8s.api.core.v1.PersistentVolumeClaim\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(persistentVolumeClaim.Name)\n\tb.WithNamespace(persistentVolumeClaim.Namespace)\n\n\tb.WithKind(\"PersistentVolumeClaim\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimApplyConfiguration) WithKind(value string) *PersistentVolumeClaimApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimApplyConfiguration) WithAPIVersion(value string) *PersistentVolumeClaimApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimApplyConfiguration) WithName(value string) *PersistentVolumeClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimApplyConfiguration) WithGenerateName(value string) *PersistentVolumeClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimApplyConfiguration) WithNamespace(value string) *PersistentVolumeClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimApplyConfiguration) WithUID(value types.UID) *PersistentVolumeClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimApplyConfiguration) WithResourceVersion(value string) *PersistentVolumeClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimApplyConfiguration) WithGeneration(value int64) *PersistentVolumeClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *PersistentVolumeClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *PersistentVolumeClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PersistentVolumeClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *PersistentVolumeClaimApplyConfiguration) WithLabels(entries map[string]string) *PersistentVolumeClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *PersistentVolumeClaimApplyConfiguration) WithAnnotations(entries map[string]string) *PersistentVolumeClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *PersistentVolumeClaimApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *PersistentVolumeClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *PersistentVolumeClaimApplyConfiguration) WithFinalizers(values ...string) *PersistentVolumeClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *PersistentVolumeClaimApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimApplyConfiguration) WithSpec(value *PersistentVolumeClaimSpecApplyConfiguration) *PersistentVolumeClaimApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimApplyConfiguration) WithStatus(value *PersistentVolumeClaimStatusApplyConfiguration) *PersistentVolumeClaimApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *PersistentVolumeClaimApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumeclaimcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// PersistentVolumeClaimConditionApplyConfiguration represents a declarative configuration of the PersistentVolumeClaimCondition type for use\n// with apply.\ntype PersistentVolumeClaimConditionApplyConfiguration struct {\n\tType               *corev1.PersistentVolumeClaimConditionType `json:\"type,omitempty\"`\n\tStatus             *corev1.ConditionStatus                    `json:\"status,omitempty\"`\n\tLastProbeTime      *metav1.Time                               `json:\"lastProbeTime,omitempty\"`\n\tLastTransitionTime *metav1.Time                               `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                                    `json:\"reason,omitempty\"`\n\tMessage            *string                                    `json:\"message,omitempty\"`\n}\n\n// PersistentVolumeClaimConditionApplyConfiguration constructs a declarative configuration of the PersistentVolumeClaimCondition type for use with\n// apply.\nfunc PersistentVolumeClaimCondition() *PersistentVolumeClaimConditionApplyConfiguration {\n\treturn &PersistentVolumeClaimConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimConditionApplyConfiguration) WithType(value corev1.PersistentVolumeClaimConditionType) *PersistentVolumeClaimConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimConditionApplyConfiguration) WithStatus(value corev1.ConditionStatus) *PersistentVolumeClaimConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastProbeTime sets the LastProbeTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastProbeTime field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimConditionApplyConfiguration) WithLastProbeTime(value metav1.Time) *PersistentVolumeClaimConditionApplyConfiguration {\n\tb.LastProbeTime = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *PersistentVolumeClaimConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimConditionApplyConfiguration) WithReason(value string) *PersistentVolumeClaimConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimConditionApplyConfiguration) WithMessage(value string) *PersistentVolumeClaimConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumeclaimspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PersistentVolumeClaimSpecApplyConfiguration represents a declarative configuration of the PersistentVolumeClaimSpec type for use\n// with apply.\ntype PersistentVolumeClaimSpecApplyConfiguration struct {\n\tAccessModes               []corev1.PersistentVolumeAccessMode           `json:\"accessModes,omitempty\"`\n\tSelector                  *metav1.LabelSelectorApplyConfiguration       `json:\"selector,omitempty\"`\n\tResources                 *VolumeResourceRequirementsApplyConfiguration `json:\"resources,omitempty\"`\n\tVolumeName                *string                                       `json:\"volumeName,omitempty\"`\n\tStorageClassName          *string                                       `json:\"storageClassName,omitempty\"`\n\tVolumeMode                *corev1.PersistentVolumeMode                  `json:\"volumeMode,omitempty\"`\n\tDataSource                *TypedLocalObjectReferenceApplyConfiguration  `json:\"dataSource,omitempty\"`\n\tDataSourceRef             *TypedObjectReferenceApplyConfiguration       `json:\"dataSourceRef,omitempty\"`\n\tVolumeAttributesClassName *string                                       `json:\"volumeAttributesClassName,omitempty\"`\n}\n\n// PersistentVolumeClaimSpecApplyConfiguration constructs a declarative configuration of the PersistentVolumeClaimSpec type for use with\n// apply.\nfunc PersistentVolumeClaimSpec() *PersistentVolumeClaimSpecApplyConfiguration {\n\treturn &PersistentVolumeClaimSpecApplyConfiguration{}\n}\n\n// WithAccessModes adds the given value to the AccessModes field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the AccessModes field.\nfunc (b *PersistentVolumeClaimSpecApplyConfiguration) WithAccessModes(values ...corev1.PersistentVolumeAccessMode) *PersistentVolumeClaimSpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.AccessModes = append(b.AccessModes, values[i])\n\t}\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimSpecApplyConfiguration) WithSelector(value *metav1.LabelSelectorApplyConfiguration) *PersistentVolumeClaimSpecApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n\n// WithResources sets the Resources field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Resources field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimSpecApplyConfiguration) WithResources(value *VolumeResourceRequirementsApplyConfiguration) *PersistentVolumeClaimSpecApplyConfiguration {\n\tb.Resources = value\n\treturn b\n}\n\n// WithVolumeName sets the VolumeName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VolumeName field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimSpecApplyConfiguration) WithVolumeName(value string) *PersistentVolumeClaimSpecApplyConfiguration {\n\tb.VolumeName = &value\n\treturn b\n}\n\n// WithStorageClassName sets the StorageClassName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StorageClassName field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimSpecApplyConfiguration) WithStorageClassName(value string) *PersistentVolumeClaimSpecApplyConfiguration {\n\tb.StorageClassName = &value\n\treturn b\n}\n\n// WithVolumeMode sets the VolumeMode field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VolumeMode field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimSpecApplyConfiguration) WithVolumeMode(value corev1.PersistentVolumeMode) *PersistentVolumeClaimSpecApplyConfiguration {\n\tb.VolumeMode = &value\n\treturn b\n}\n\n// WithDataSource sets the DataSource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DataSource field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimSpecApplyConfiguration) WithDataSource(value *TypedLocalObjectReferenceApplyConfiguration) *PersistentVolumeClaimSpecApplyConfiguration {\n\tb.DataSource = value\n\treturn b\n}\n\n// WithDataSourceRef sets the DataSourceRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DataSourceRef field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimSpecApplyConfiguration) WithDataSourceRef(value *TypedObjectReferenceApplyConfiguration) *PersistentVolumeClaimSpecApplyConfiguration {\n\tb.DataSourceRef = value\n\treturn b\n}\n\n// WithVolumeAttributesClassName sets the VolumeAttributesClassName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VolumeAttributesClassName field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimSpecApplyConfiguration) WithVolumeAttributesClassName(value string) *PersistentVolumeClaimSpecApplyConfiguration {\n\tb.VolumeAttributesClassName = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumeclaimstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// PersistentVolumeClaimStatusApplyConfiguration represents a declarative configuration of the PersistentVolumeClaimStatus type for use\n// with apply.\ntype PersistentVolumeClaimStatusApplyConfiguration struct {\n\tPhase                            *corev1.PersistentVolumeClaimPhase                 `json:\"phase,omitempty\"`\n\tAccessModes                      []corev1.PersistentVolumeAccessMode                `json:\"accessModes,omitempty\"`\n\tCapacity                         *corev1.ResourceList                               `json:\"capacity,omitempty\"`\n\tConditions                       []PersistentVolumeClaimConditionApplyConfiguration `json:\"conditions,omitempty\"`\n\tAllocatedResources               *corev1.ResourceList                               `json:\"allocatedResources,omitempty\"`\n\tAllocatedResourceStatuses        map[corev1.ResourceName]corev1.ClaimResourceStatus `json:\"allocatedResourceStatuses,omitempty\"`\n\tCurrentVolumeAttributesClassName *string                                            `json:\"currentVolumeAttributesClassName,omitempty\"`\n\tModifyVolumeStatus               *ModifyVolumeStatusApplyConfiguration              `json:\"modifyVolumeStatus,omitempty\"`\n}\n\n// PersistentVolumeClaimStatusApplyConfiguration constructs a declarative configuration of the PersistentVolumeClaimStatus type for use with\n// apply.\nfunc PersistentVolumeClaimStatus() *PersistentVolumeClaimStatusApplyConfiguration {\n\treturn &PersistentVolumeClaimStatusApplyConfiguration{}\n}\n\n// WithPhase sets the Phase field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Phase field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimStatusApplyConfiguration) WithPhase(value corev1.PersistentVolumeClaimPhase) *PersistentVolumeClaimStatusApplyConfiguration {\n\tb.Phase = &value\n\treturn b\n}\n\n// WithAccessModes adds the given value to the AccessModes field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the AccessModes field.\nfunc (b *PersistentVolumeClaimStatusApplyConfiguration) WithAccessModes(values ...corev1.PersistentVolumeAccessMode) *PersistentVolumeClaimStatusApplyConfiguration {\n\tfor i := range values {\n\t\tb.AccessModes = append(b.AccessModes, values[i])\n\t}\n\treturn b\n}\n\n// WithCapacity sets the Capacity field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Capacity field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimStatusApplyConfiguration) WithCapacity(value corev1.ResourceList) *PersistentVolumeClaimStatusApplyConfiguration {\n\tb.Capacity = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *PersistentVolumeClaimStatusApplyConfiguration) WithConditions(values ...*PersistentVolumeClaimConditionApplyConfiguration) *PersistentVolumeClaimStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n\n// WithAllocatedResources sets the AllocatedResources field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AllocatedResources field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimStatusApplyConfiguration) WithAllocatedResources(value corev1.ResourceList) *PersistentVolumeClaimStatusApplyConfiguration {\n\tb.AllocatedResources = &value\n\treturn b\n}\n\n// WithAllocatedResourceStatuses puts the entries into the AllocatedResourceStatuses field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the AllocatedResourceStatuses field,\n// overwriting an existing map entries in AllocatedResourceStatuses field with the same key.\nfunc (b *PersistentVolumeClaimStatusApplyConfiguration) WithAllocatedResourceStatuses(entries map[corev1.ResourceName]corev1.ClaimResourceStatus) *PersistentVolumeClaimStatusApplyConfiguration {\n\tif b.AllocatedResourceStatuses == nil && len(entries) > 0 {\n\t\tb.AllocatedResourceStatuses = make(map[corev1.ResourceName]corev1.ClaimResourceStatus, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.AllocatedResourceStatuses[k] = v\n\t}\n\treturn b\n}\n\n// WithCurrentVolumeAttributesClassName sets the CurrentVolumeAttributesClassName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentVolumeAttributesClassName field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimStatusApplyConfiguration) WithCurrentVolumeAttributesClassName(value string) *PersistentVolumeClaimStatusApplyConfiguration {\n\tb.CurrentVolumeAttributesClassName = &value\n\treturn b\n}\n\n// WithModifyVolumeStatus sets the ModifyVolumeStatus field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ModifyVolumeStatus field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimStatusApplyConfiguration) WithModifyVolumeStatus(value *ModifyVolumeStatusApplyConfiguration) *PersistentVolumeClaimStatusApplyConfiguration {\n\tb.ModifyVolumeStatus = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumeclaimtemplate.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PersistentVolumeClaimTemplateApplyConfiguration represents a declarative configuration of the PersistentVolumeClaimTemplate type for use\n// with apply.\ntype PersistentVolumeClaimTemplateApplyConfiguration struct {\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                                 *PersistentVolumeClaimSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// PersistentVolumeClaimTemplateApplyConfiguration constructs a declarative configuration of the PersistentVolumeClaimTemplate type for use with\n// apply.\nfunc PersistentVolumeClaimTemplate() *PersistentVolumeClaimTemplateApplyConfiguration {\n\treturn &PersistentVolumeClaimTemplateApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimTemplateApplyConfiguration) WithName(value string) *PersistentVolumeClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimTemplateApplyConfiguration) WithGenerateName(value string) *PersistentVolumeClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimTemplateApplyConfiguration) WithNamespace(value string) *PersistentVolumeClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimTemplateApplyConfiguration) WithUID(value types.UID) *PersistentVolumeClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimTemplateApplyConfiguration) WithResourceVersion(value string) *PersistentVolumeClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimTemplateApplyConfiguration) WithGeneration(value int64) *PersistentVolumeClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimTemplateApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *PersistentVolumeClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimTemplateApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *PersistentVolumeClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimTemplateApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PersistentVolumeClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *PersistentVolumeClaimTemplateApplyConfiguration) WithLabels(entries map[string]string) *PersistentVolumeClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *PersistentVolumeClaimTemplateApplyConfiguration) WithAnnotations(entries map[string]string) *PersistentVolumeClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *PersistentVolumeClaimTemplateApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *PersistentVolumeClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *PersistentVolumeClaimTemplateApplyConfiguration) WithFinalizers(values ...string) *PersistentVolumeClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *PersistentVolumeClaimTemplateApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimTemplateApplyConfiguration) WithSpec(value *PersistentVolumeClaimSpecApplyConfiguration) *PersistentVolumeClaimTemplateApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *PersistentVolumeClaimTemplateApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumeclaimvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// PersistentVolumeClaimVolumeSourceApplyConfiguration represents a declarative configuration of the PersistentVolumeClaimVolumeSource type for use\n// with apply.\ntype PersistentVolumeClaimVolumeSourceApplyConfiguration struct {\n\tClaimName *string `json:\"claimName,omitempty\"`\n\tReadOnly  *bool   `json:\"readOnly,omitempty\"`\n}\n\n// PersistentVolumeClaimVolumeSourceApplyConfiguration constructs a declarative configuration of the PersistentVolumeClaimVolumeSource type for use with\n// apply.\nfunc PersistentVolumeClaimVolumeSource() *PersistentVolumeClaimVolumeSourceApplyConfiguration {\n\treturn &PersistentVolumeClaimVolumeSourceApplyConfiguration{}\n}\n\n// WithClaimName sets the ClaimName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ClaimName field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimVolumeSourceApplyConfiguration) WithClaimName(value string) *PersistentVolumeClaimVolumeSourceApplyConfiguration {\n\tb.ClaimName = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *PersistentVolumeClaimVolumeSourceApplyConfiguration) WithReadOnly(value bool) *PersistentVolumeClaimVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// PersistentVolumeSourceApplyConfiguration represents a declarative configuration of the PersistentVolumeSource type for use\n// with apply.\ntype PersistentVolumeSourceApplyConfiguration struct {\n\tGCEPersistentDisk    *GCEPersistentDiskVolumeSourceApplyConfiguration    `json:\"gcePersistentDisk,omitempty\"`\n\tAWSElasticBlockStore *AWSElasticBlockStoreVolumeSourceApplyConfiguration `json:\"awsElasticBlockStore,omitempty\"`\n\tHostPath             *HostPathVolumeSourceApplyConfiguration             `json:\"hostPath,omitempty\"`\n\tGlusterfs            *GlusterfsPersistentVolumeSourceApplyConfiguration  `json:\"glusterfs,omitempty\"`\n\tNFS                  *NFSVolumeSourceApplyConfiguration                  `json:\"nfs,omitempty\"`\n\tRBD                  *RBDPersistentVolumeSourceApplyConfiguration        `json:\"rbd,omitempty\"`\n\tISCSI                *ISCSIPersistentVolumeSourceApplyConfiguration      `json:\"iscsi,omitempty\"`\n\tCinder               *CinderPersistentVolumeSourceApplyConfiguration     `json:\"cinder,omitempty\"`\n\tCephFS               *CephFSPersistentVolumeSourceApplyConfiguration     `json:\"cephfs,omitempty\"`\n\tFC                   *FCVolumeSourceApplyConfiguration                   `json:\"fc,omitempty\"`\n\tFlocker              *FlockerVolumeSourceApplyConfiguration              `json:\"flocker,omitempty\"`\n\tFlexVolume           *FlexPersistentVolumeSourceApplyConfiguration       `json:\"flexVolume,omitempty\"`\n\tAzureFile            *AzureFilePersistentVolumeSourceApplyConfiguration  `json:\"azureFile,omitempty\"`\n\tVsphereVolume        *VsphereVirtualDiskVolumeSourceApplyConfiguration   `json:\"vsphereVolume,omitempty\"`\n\tQuobyte              *QuobyteVolumeSourceApplyConfiguration              `json:\"quobyte,omitempty\"`\n\tAzureDisk            *AzureDiskVolumeSourceApplyConfiguration            `json:\"azureDisk,omitempty\"`\n\tPhotonPersistentDisk *PhotonPersistentDiskVolumeSourceApplyConfiguration `json:\"photonPersistentDisk,omitempty\"`\n\tPortworxVolume       *PortworxVolumeSourceApplyConfiguration             `json:\"portworxVolume,omitempty\"`\n\tScaleIO              *ScaleIOPersistentVolumeSourceApplyConfiguration    `json:\"scaleIO,omitempty\"`\n\tLocal                *LocalVolumeSourceApplyConfiguration                `json:\"local,omitempty\"`\n\tStorageOS            *StorageOSPersistentVolumeSourceApplyConfiguration  `json:\"storageos,omitempty\"`\n\tCSI                  *CSIPersistentVolumeSourceApplyConfiguration        `json:\"csi,omitempty\"`\n}\n\n// PersistentVolumeSourceApplyConfiguration constructs a declarative configuration of the PersistentVolumeSource type for use with\n// apply.\nfunc PersistentVolumeSource() *PersistentVolumeSourceApplyConfiguration {\n\treturn &PersistentVolumeSourceApplyConfiguration{}\n}\n\n// WithGCEPersistentDisk sets the GCEPersistentDisk field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GCEPersistentDisk field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithGCEPersistentDisk(value *GCEPersistentDiskVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.GCEPersistentDisk = value\n\treturn b\n}\n\n// WithAWSElasticBlockStore sets the AWSElasticBlockStore field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AWSElasticBlockStore field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithAWSElasticBlockStore(value *AWSElasticBlockStoreVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.AWSElasticBlockStore = value\n\treturn b\n}\n\n// WithHostPath sets the HostPath field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HostPath field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithHostPath(value *HostPathVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.HostPath = value\n\treturn b\n}\n\n// WithGlusterfs sets the Glusterfs field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Glusterfs field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithGlusterfs(value *GlusterfsPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.Glusterfs = value\n\treturn b\n}\n\n// WithNFS sets the NFS field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NFS field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithNFS(value *NFSVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.NFS = value\n\treturn b\n}\n\n// WithRBD sets the RBD field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RBD field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithRBD(value *RBDPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.RBD = value\n\treturn b\n}\n\n// WithISCSI sets the ISCSI field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ISCSI field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithISCSI(value *ISCSIPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.ISCSI = value\n\treturn b\n}\n\n// WithCinder sets the Cinder field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Cinder field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithCinder(value *CinderPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.Cinder = value\n\treturn b\n}\n\n// WithCephFS sets the CephFS field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CephFS field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithCephFS(value *CephFSPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.CephFS = value\n\treturn b\n}\n\n// WithFC sets the FC field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FC field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithFC(value *FCVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.FC = value\n\treturn b\n}\n\n// WithFlocker sets the Flocker field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Flocker field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithFlocker(value *FlockerVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.Flocker = value\n\treturn b\n}\n\n// WithFlexVolume sets the FlexVolume field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FlexVolume field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithFlexVolume(value *FlexPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.FlexVolume = value\n\treturn b\n}\n\n// WithAzureFile sets the AzureFile field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AzureFile field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithAzureFile(value *AzureFilePersistentVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.AzureFile = value\n\treturn b\n}\n\n// WithVsphereVolume sets the VsphereVolume field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VsphereVolume field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithVsphereVolume(value *VsphereVirtualDiskVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.VsphereVolume = value\n\treturn b\n}\n\n// WithQuobyte sets the Quobyte field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Quobyte field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithQuobyte(value *QuobyteVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.Quobyte = value\n\treturn b\n}\n\n// WithAzureDisk sets the AzureDisk field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AzureDisk field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithAzureDisk(value *AzureDiskVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.AzureDisk = value\n\treturn b\n}\n\n// WithPhotonPersistentDisk sets the PhotonPersistentDisk field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PhotonPersistentDisk field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithPhotonPersistentDisk(value *PhotonPersistentDiskVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.PhotonPersistentDisk = value\n\treturn b\n}\n\n// WithPortworxVolume sets the PortworxVolume field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PortworxVolume field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithPortworxVolume(value *PortworxVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.PortworxVolume = value\n\treturn b\n}\n\n// WithScaleIO sets the ScaleIO field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ScaleIO field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithScaleIO(value *ScaleIOPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.ScaleIO = value\n\treturn b\n}\n\n// WithLocal sets the Local field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Local field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithLocal(value *LocalVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.Local = value\n\treturn b\n}\n\n// WithStorageOS sets the StorageOS field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StorageOS field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithStorageOS(value *StorageOSPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.StorageOS = value\n\treturn b\n}\n\n// WithCSI sets the CSI field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CSI field is set to the value of the last call.\nfunc (b *PersistentVolumeSourceApplyConfiguration) WithCSI(value *CSIPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSourceApplyConfiguration {\n\tb.CSI = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumespec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// PersistentVolumeSpecApplyConfiguration represents a declarative configuration of the PersistentVolumeSpec type for use\n// with apply.\ntype PersistentVolumeSpecApplyConfiguration struct {\n\tCapacity                                 *corev1.ResourceList `json:\"capacity,omitempty\"`\n\tPersistentVolumeSourceApplyConfiguration `json:\",inline\"`\n\tAccessModes                              []corev1.PersistentVolumeAccessMode   `json:\"accessModes,omitempty\"`\n\tClaimRef                                 *ObjectReferenceApplyConfiguration    `json:\"claimRef,omitempty\"`\n\tPersistentVolumeReclaimPolicy            *corev1.PersistentVolumeReclaimPolicy `json:\"persistentVolumeReclaimPolicy,omitempty\"`\n\tStorageClassName                         *string                               `json:\"storageClassName,omitempty\"`\n\tMountOptions                             []string                              `json:\"mountOptions,omitempty\"`\n\tVolumeMode                               *corev1.PersistentVolumeMode          `json:\"volumeMode,omitempty\"`\n\tNodeAffinity                             *VolumeNodeAffinityApplyConfiguration `json:\"nodeAffinity,omitempty\"`\n\tVolumeAttributesClassName                *string                               `json:\"volumeAttributesClassName,omitempty\"`\n}\n\n// PersistentVolumeSpecApplyConfiguration constructs a declarative configuration of the PersistentVolumeSpec type for use with\n// apply.\nfunc PersistentVolumeSpec() *PersistentVolumeSpecApplyConfiguration {\n\treturn &PersistentVolumeSpecApplyConfiguration{}\n}\n\n// WithCapacity sets the Capacity field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Capacity field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithCapacity(value corev1.ResourceList) *PersistentVolumeSpecApplyConfiguration {\n\tb.Capacity = &value\n\treturn b\n}\n\n// WithGCEPersistentDisk sets the GCEPersistentDisk field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GCEPersistentDisk field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithGCEPersistentDisk(value *GCEPersistentDiskVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.PersistentVolumeSourceApplyConfiguration.GCEPersistentDisk = value\n\treturn b\n}\n\n// WithAWSElasticBlockStore sets the AWSElasticBlockStore field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AWSElasticBlockStore field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithAWSElasticBlockStore(value *AWSElasticBlockStoreVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.PersistentVolumeSourceApplyConfiguration.AWSElasticBlockStore = value\n\treturn b\n}\n\n// WithHostPath sets the HostPath field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HostPath field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithHostPath(value *HostPathVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.PersistentVolumeSourceApplyConfiguration.HostPath = value\n\treturn b\n}\n\n// WithGlusterfs sets the Glusterfs field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Glusterfs field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithGlusterfs(value *GlusterfsPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.PersistentVolumeSourceApplyConfiguration.Glusterfs = value\n\treturn b\n}\n\n// WithNFS sets the NFS field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NFS field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithNFS(value *NFSVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.PersistentVolumeSourceApplyConfiguration.NFS = value\n\treturn b\n}\n\n// WithRBD sets the RBD field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RBD field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithRBD(value *RBDPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.PersistentVolumeSourceApplyConfiguration.RBD = value\n\treturn b\n}\n\n// WithISCSI sets the ISCSI field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ISCSI field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithISCSI(value *ISCSIPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.PersistentVolumeSourceApplyConfiguration.ISCSI = value\n\treturn b\n}\n\n// WithCinder sets the Cinder field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Cinder field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithCinder(value *CinderPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.PersistentVolumeSourceApplyConfiguration.Cinder = value\n\treturn b\n}\n\n// WithCephFS sets the CephFS field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CephFS field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithCephFS(value *CephFSPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.PersistentVolumeSourceApplyConfiguration.CephFS = value\n\treturn b\n}\n\n// WithFC sets the FC field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FC field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithFC(value *FCVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.PersistentVolumeSourceApplyConfiguration.FC = value\n\treturn b\n}\n\n// WithFlocker sets the Flocker field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Flocker field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithFlocker(value *FlockerVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.PersistentVolumeSourceApplyConfiguration.Flocker = value\n\treturn b\n}\n\n// WithFlexVolume sets the FlexVolume field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FlexVolume field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithFlexVolume(value *FlexPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.PersistentVolumeSourceApplyConfiguration.FlexVolume = value\n\treturn b\n}\n\n// WithAzureFile sets the AzureFile field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AzureFile field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithAzureFile(value *AzureFilePersistentVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.PersistentVolumeSourceApplyConfiguration.AzureFile = value\n\treturn b\n}\n\n// WithVsphereVolume sets the VsphereVolume field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VsphereVolume field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithVsphereVolume(value *VsphereVirtualDiskVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.PersistentVolumeSourceApplyConfiguration.VsphereVolume = value\n\treturn b\n}\n\n// WithQuobyte sets the Quobyte field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Quobyte field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithQuobyte(value *QuobyteVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.PersistentVolumeSourceApplyConfiguration.Quobyte = value\n\treturn b\n}\n\n// WithAzureDisk sets the AzureDisk field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AzureDisk field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithAzureDisk(value *AzureDiskVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.PersistentVolumeSourceApplyConfiguration.AzureDisk = value\n\treturn b\n}\n\n// WithPhotonPersistentDisk sets the PhotonPersistentDisk field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PhotonPersistentDisk field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithPhotonPersistentDisk(value *PhotonPersistentDiskVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.PersistentVolumeSourceApplyConfiguration.PhotonPersistentDisk = value\n\treturn b\n}\n\n// WithPortworxVolume sets the PortworxVolume field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PortworxVolume field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithPortworxVolume(value *PortworxVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.PersistentVolumeSourceApplyConfiguration.PortworxVolume = value\n\treturn b\n}\n\n// WithScaleIO sets the ScaleIO field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ScaleIO field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithScaleIO(value *ScaleIOPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.PersistentVolumeSourceApplyConfiguration.ScaleIO = value\n\treturn b\n}\n\n// WithLocal sets the Local field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Local field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithLocal(value *LocalVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.PersistentVolumeSourceApplyConfiguration.Local = value\n\treturn b\n}\n\n// WithStorageOS sets the StorageOS field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StorageOS field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithStorageOS(value *StorageOSPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.PersistentVolumeSourceApplyConfiguration.StorageOS = value\n\treturn b\n}\n\n// WithCSI sets the CSI field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CSI field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithCSI(value *CSIPersistentVolumeSourceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.PersistentVolumeSourceApplyConfiguration.CSI = value\n\treturn b\n}\n\n// WithAccessModes adds the given value to the AccessModes field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the AccessModes field.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithAccessModes(values ...corev1.PersistentVolumeAccessMode) *PersistentVolumeSpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.AccessModes = append(b.AccessModes, values[i])\n\t}\n\treturn b\n}\n\n// WithClaimRef sets the ClaimRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ClaimRef field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithClaimRef(value *ObjectReferenceApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.ClaimRef = value\n\treturn b\n}\n\n// WithPersistentVolumeReclaimPolicy sets the PersistentVolumeReclaimPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PersistentVolumeReclaimPolicy field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithPersistentVolumeReclaimPolicy(value corev1.PersistentVolumeReclaimPolicy) *PersistentVolumeSpecApplyConfiguration {\n\tb.PersistentVolumeReclaimPolicy = &value\n\treturn b\n}\n\n// WithStorageClassName sets the StorageClassName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StorageClassName field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithStorageClassName(value string) *PersistentVolumeSpecApplyConfiguration {\n\tb.StorageClassName = &value\n\treturn b\n}\n\n// WithMountOptions adds the given value to the MountOptions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the MountOptions field.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithMountOptions(values ...string) *PersistentVolumeSpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.MountOptions = append(b.MountOptions, values[i])\n\t}\n\treturn b\n}\n\n// WithVolumeMode sets the VolumeMode field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VolumeMode field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithVolumeMode(value corev1.PersistentVolumeMode) *PersistentVolumeSpecApplyConfiguration {\n\tb.VolumeMode = &value\n\treturn b\n}\n\n// WithNodeAffinity sets the NodeAffinity field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeAffinity field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithNodeAffinity(value *VolumeNodeAffinityApplyConfiguration) *PersistentVolumeSpecApplyConfiguration {\n\tb.NodeAffinity = value\n\treturn b\n}\n\n// WithVolumeAttributesClassName sets the VolumeAttributesClassName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VolumeAttributesClassName field is set to the value of the last call.\nfunc (b *PersistentVolumeSpecApplyConfiguration) WithVolumeAttributesClassName(value string) *PersistentVolumeSpecApplyConfiguration {\n\tb.VolumeAttributesClassName = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/persistentvolumestatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// PersistentVolumeStatusApplyConfiguration represents a declarative configuration of the PersistentVolumeStatus type for use\n// with apply.\ntype PersistentVolumeStatusApplyConfiguration struct {\n\tPhase                   *corev1.PersistentVolumePhase `json:\"phase,omitempty\"`\n\tMessage                 *string                       `json:\"message,omitempty\"`\n\tReason                  *string                       `json:\"reason,omitempty\"`\n\tLastPhaseTransitionTime *metav1.Time                  `json:\"lastPhaseTransitionTime,omitempty\"`\n}\n\n// PersistentVolumeStatusApplyConfiguration constructs a declarative configuration of the PersistentVolumeStatus type for use with\n// apply.\nfunc PersistentVolumeStatus() *PersistentVolumeStatusApplyConfiguration {\n\treturn &PersistentVolumeStatusApplyConfiguration{}\n}\n\n// WithPhase sets the Phase field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Phase field is set to the value of the last call.\nfunc (b *PersistentVolumeStatusApplyConfiguration) WithPhase(value corev1.PersistentVolumePhase) *PersistentVolumeStatusApplyConfiguration {\n\tb.Phase = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *PersistentVolumeStatusApplyConfiguration) WithMessage(value string) *PersistentVolumeStatusApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *PersistentVolumeStatusApplyConfiguration) WithReason(value string) *PersistentVolumeStatusApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithLastPhaseTransitionTime sets the LastPhaseTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastPhaseTransitionTime field is set to the value of the last call.\nfunc (b *PersistentVolumeStatusApplyConfiguration) WithLastPhaseTransitionTime(value metav1.Time) *PersistentVolumeStatusApplyConfiguration {\n\tb.LastPhaseTransitionTime = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/photonpersistentdiskvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// PhotonPersistentDiskVolumeSourceApplyConfiguration represents a declarative configuration of the PhotonPersistentDiskVolumeSource type for use\n// with apply.\ntype PhotonPersistentDiskVolumeSourceApplyConfiguration struct {\n\tPdID   *string `json:\"pdID,omitempty\"`\n\tFSType *string `json:\"fsType,omitempty\"`\n}\n\n// PhotonPersistentDiskVolumeSourceApplyConfiguration constructs a declarative configuration of the PhotonPersistentDiskVolumeSource type for use with\n// apply.\nfunc PhotonPersistentDiskVolumeSource() *PhotonPersistentDiskVolumeSourceApplyConfiguration {\n\treturn &PhotonPersistentDiskVolumeSourceApplyConfiguration{}\n}\n\n// WithPdID sets the PdID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PdID field is set to the value of the last call.\nfunc (b *PhotonPersistentDiskVolumeSourceApplyConfiguration) WithPdID(value string) *PhotonPersistentDiskVolumeSourceApplyConfiguration {\n\tb.PdID = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *PhotonPersistentDiskVolumeSourceApplyConfiguration) WithFSType(value string) *PhotonPersistentDiskVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/pod.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PodApplyConfiguration represents a declarative configuration of the Pod type for use\n// with apply.\ntype PodApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                                 *PodSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                               *PodStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// Pod constructs a declarative configuration of the Pod type for use with\n// apply.\nfunc Pod(name, namespace string) *PodApplyConfiguration {\n\tb := &PodApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Pod\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b\n}\n\n// ExtractPod extracts the applied configuration owned by fieldManager from\n// pod. If no managedFields are found in pod for fieldManager, a\n// PodApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// pod must be a unmodified Pod API object that was retrieved from the Kubernetes API.\n// ExtractPod provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractPod(pod *corev1.Pod, fieldManager string) (*PodApplyConfiguration, error) {\n\treturn extractPod(pod, fieldManager, \"\")\n}\n\n// ExtractPodStatus is the same as ExtractPod except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractPodStatus(pod *corev1.Pod, fieldManager string) (*PodApplyConfiguration, error) {\n\treturn extractPod(pod, fieldManager, \"status\")\n}\n\nfunc extractPod(pod *corev1.Pod, fieldManager string, subresource string) (*PodApplyConfiguration, error) {\n\tb := &PodApplyConfiguration{}\n\terr := managedfields.ExtractInto(pod, internal.Parser().Type(\"io.k8s.api.core.v1.Pod\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(pod.Name)\n\tb.WithNamespace(pod.Namespace)\n\n\tb.WithKind(\"Pod\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *PodApplyConfiguration) WithKind(value string) *PodApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *PodApplyConfiguration) WithAPIVersion(value string) *PodApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PodApplyConfiguration) WithName(value string) *PodApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *PodApplyConfiguration) WithGenerateName(value string) *PodApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *PodApplyConfiguration) WithNamespace(value string) *PodApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *PodApplyConfiguration) WithUID(value types.UID) *PodApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *PodApplyConfiguration) WithResourceVersion(value string) *PodApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *PodApplyConfiguration) WithGeneration(value int64) *PodApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *PodApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *PodApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *PodApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *PodApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *PodApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PodApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *PodApplyConfiguration) WithLabels(entries map[string]string) *PodApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *PodApplyConfiguration) WithAnnotations(entries map[string]string) *PodApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *PodApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *PodApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *PodApplyConfiguration) WithFinalizers(values ...string) *PodApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *PodApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *PodApplyConfiguration) WithSpec(value *PodSpecApplyConfiguration) *PodApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *PodApplyConfiguration) WithStatus(value *PodStatusApplyConfiguration) *PodApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *PodApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/podaffinity.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// PodAffinityApplyConfiguration represents a declarative configuration of the PodAffinity type for use\n// with apply.\ntype PodAffinityApplyConfiguration struct {\n\tRequiredDuringSchedulingIgnoredDuringExecution  []PodAffinityTermApplyConfiguration         `json:\"requiredDuringSchedulingIgnoredDuringExecution,omitempty\"`\n\tPreferredDuringSchedulingIgnoredDuringExecution []WeightedPodAffinityTermApplyConfiguration `json:\"preferredDuringSchedulingIgnoredDuringExecution,omitempty\"`\n}\n\n// PodAffinityApplyConfiguration constructs a declarative configuration of the PodAffinity type for use with\n// apply.\nfunc PodAffinity() *PodAffinityApplyConfiguration {\n\treturn &PodAffinityApplyConfiguration{}\n}\n\n// WithRequiredDuringSchedulingIgnoredDuringExecution adds the given value to the RequiredDuringSchedulingIgnoredDuringExecution field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the RequiredDuringSchedulingIgnoredDuringExecution field.\nfunc (b *PodAffinityApplyConfiguration) WithRequiredDuringSchedulingIgnoredDuringExecution(values ...*PodAffinityTermApplyConfiguration) *PodAffinityApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRequiredDuringSchedulingIgnoredDuringExecution\")\n\t\t}\n\t\tb.RequiredDuringSchedulingIgnoredDuringExecution = append(b.RequiredDuringSchedulingIgnoredDuringExecution, *values[i])\n\t}\n\treturn b\n}\n\n// WithPreferredDuringSchedulingIgnoredDuringExecution adds the given value to the PreferredDuringSchedulingIgnoredDuringExecution field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the PreferredDuringSchedulingIgnoredDuringExecution field.\nfunc (b *PodAffinityApplyConfiguration) WithPreferredDuringSchedulingIgnoredDuringExecution(values ...*WeightedPodAffinityTermApplyConfiguration) *PodAffinityApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPreferredDuringSchedulingIgnoredDuringExecution\")\n\t\t}\n\t\tb.PreferredDuringSchedulingIgnoredDuringExecution = append(b.PreferredDuringSchedulingIgnoredDuringExecution, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/podaffinityterm.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PodAffinityTermApplyConfiguration represents a declarative configuration of the PodAffinityTerm type for use\n// with apply.\ntype PodAffinityTermApplyConfiguration struct {\n\tLabelSelector     *metav1.LabelSelectorApplyConfiguration `json:\"labelSelector,omitempty\"`\n\tNamespaces        []string                                `json:\"namespaces,omitempty\"`\n\tTopologyKey       *string                                 `json:\"topologyKey,omitempty\"`\n\tNamespaceSelector *metav1.LabelSelectorApplyConfiguration `json:\"namespaceSelector,omitempty\"`\n\tMatchLabelKeys    []string                                `json:\"matchLabelKeys,omitempty\"`\n\tMismatchLabelKeys []string                                `json:\"mismatchLabelKeys,omitempty\"`\n}\n\n// PodAffinityTermApplyConfiguration constructs a declarative configuration of the PodAffinityTerm type for use with\n// apply.\nfunc PodAffinityTerm() *PodAffinityTermApplyConfiguration {\n\treturn &PodAffinityTermApplyConfiguration{}\n}\n\n// WithLabelSelector sets the LabelSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LabelSelector field is set to the value of the last call.\nfunc (b *PodAffinityTermApplyConfiguration) WithLabelSelector(value *metav1.LabelSelectorApplyConfiguration) *PodAffinityTermApplyConfiguration {\n\tb.LabelSelector = value\n\treturn b\n}\n\n// WithNamespaces adds the given value to the Namespaces field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Namespaces field.\nfunc (b *PodAffinityTermApplyConfiguration) WithNamespaces(values ...string) *PodAffinityTermApplyConfiguration {\n\tfor i := range values {\n\t\tb.Namespaces = append(b.Namespaces, values[i])\n\t}\n\treturn b\n}\n\n// WithTopologyKey sets the TopologyKey field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TopologyKey field is set to the value of the last call.\nfunc (b *PodAffinityTermApplyConfiguration) WithTopologyKey(value string) *PodAffinityTermApplyConfiguration {\n\tb.TopologyKey = &value\n\treturn b\n}\n\n// WithNamespaceSelector sets the NamespaceSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NamespaceSelector field is set to the value of the last call.\nfunc (b *PodAffinityTermApplyConfiguration) WithNamespaceSelector(value *metav1.LabelSelectorApplyConfiguration) *PodAffinityTermApplyConfiguration {\n\tb.NamespaceSelector = value\n\treturn b\n}\n\n// WithMatchLabelKeys adds the given value to the MatchLabelKeys field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the MatchLabelKeys field.\nfunc (b *PodAffinityTermApplyConfiguration) WithMatchLabelKeys(values ...string) *PodAffinityTermApplyConfiguration {\n\tfor i := range values {\n\t\tb.MatchLabelKeys = append(b.MatchLabelKeys, values[i])\n\t}\n\treturn b\n}\n\n// WithMismatchLabelKeys adds the given value to the MismatchLabelKeys field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the MismatchLabelKeys field.\nfunc (b *PodAffinityTermApplyConfiguration) WithMismatchLabelKeys(values ...string) *PodAffinityTermApplyConfiguration {\n\tfor i := range values {\n\t\tb.MismatchLabelKeys = append(b.MismatchLabelKeys, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/podantiaffinity.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// PodAntiAffinityApplyConfiguration represents a declarative configuration of the PodAntiAffinity type for use\n// with apply.\ntype PodAntiAffinityApplyConfiguration struct {\n\tRequiredDuringSchedulingIgnoredDuringExecution  []PodAffinityTermApplyConfiguration         `json:\"requiredDuringSchedulingIgnoredDuringExecution,omitempty\"`\n\tPreferredDuringSchedulingIgnoredDuringExecution []WeightedPodAffinityTermApplyConfiguration `json:\"preferredDuringSchedulingIgnoredDuringExecution,omitempty\"`\n}\n\n// PodAntiAffinityApplyConfiguration constructs a declarative configuration of the PodAntiAffinity type for use with\n// apply.\nfunc PodAntiAffinity() *PodAntiAffinityApplyConfiguration {\n\treturn &PodAntiAffinityApplyConfiguration{}\n}\n\n// WithRequiredDuringSchedulingIgnoredDuringExecution adds the given value to the RequiredDuringSchedulingIgnoredDuringExecution field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the RequiredDuringSchedulingIgnoredDuringExecution field.\nfunc (b *PodAntiAffinityApplyConfiguration) WithRequiredDuringSchedulingIgnoredDuringExecution(values ...*PodAffinityTermApplyConfiguration) *PodAntiAffinityApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRequiredDuringSchedulingIgnoredDuringExecution\")\n\t\t}\n\t\tb.RequiredDuringSchedulingIgnoredDuringExecution = append(b.RequiredDuringSchedulingIgnoredDuringExecution, *values[i])\n\t}\n\treturn b\n}\n\n// WithPreferredDuringSchedulingIgnoredDuringExecution adds the given value to the PreferredDuringSchedulingIgnoredDuringExecution field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the PreferredDuringSchedulingIgnoredDuringExecution field.\nfunc (b *PodAntiAffinityApplyConfiguration) WithPreferredDuringSchedulingIgnoredDuringExecution(values ...*WeightedPodAffinityTermApplyConfiguration) *PodAntiAffinityApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPreferredDuringSchedulingIgnoredDuringExecution\")\n\t\t}\n\t\tb.PreferredDuringSchedulingIgnoredDuringExecution = append(b.PreferredDuringSchedulingIgnoredDuringExecution, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/podcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// PodConditionApplyConfiguration represents a declarative configuration of the PodCondition type for use\n// with apply.\ntype PodConditionApplyConfiguration struct {\n\tType               *corev1.PodConditionType `json:\"type,omitempty\"`\n\tStatus             *corev1.ConditionStatus  `json:\"status,omitempty\"`\n\tLastProbeTime      *metav1.Time             `json:\"lastProbeTime,omitempty\"`\n\tLastTransitionTime *metav1.Time             `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                  `json:\"reason,omitempty\"`\n\tMessage            *string                  `json:\"message,omitempty\"`\n}\n\n// PodConditionApplyConfiguration constructs a declarative configuration of the PodCondition type for use with\n// apply.\nfunc PodCondition() *PodConditionApplyConfiguration {\n\treturn &PodConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *PodConditionApplyConfiguration) WithType(value corev1.PodConditionType) *PodConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *PodConditionApplyConfiguration) WithStatus(value corev1.ConditionStatus) *PodConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastProbeTime sets the LastProbeTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastProbeTime field is set to the value of the last call.\nfunc (b *PodConditionApplyConfiguration) WithLastProbeTime(value metav1.Time) *PodConditionApplyConfiguration {\n\tb.LastProbeTime = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *PodConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *PodConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *PodConditionApplyConfiguration) WithReason(value string) *PodConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *PodConditionApplyConfiguration) WithMessage(value string) *PodConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/poddnsconfig.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// PodDNSConfigApplyConfiguration represents a declarative configuration of the PodDNSConfig type for use\n// with apply.\ntype PodDNSConfigApplyConfiguration struct {\n\tNameservers []string                               `json:\"nameservers,omitempty\"`\n\tSearches    []string                               `json:\"searches,omitempty\"`\n\tOptions     []PodDNSConfigOptionApplyConfiguration `json:\"options,omitempty\"`\n}\n\n// PodDNSConfigApplyConfiguration constructs a declarative configuration of the PodDNSConfig type for use with\n// apply.\nfunc PodDNSConfig() *PodDNSConfigApplyConfiguration {\n\treturn &PodDNSConfigApplyConfiguration{}\n}\n\n// WithNameservers adds the given value to the Nameservers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Nameservers field.\nfunc (b *PodDNSConfigApplyConfiguration) WithNameservers(values ...string) *PodDNSConfigApplyConfiguration {\n\tfor i := range values {\n\t\tb.Nameservers = append(b.Nameservers, values[i])\n\t}\n\treturn b\n}\n\n// WithSearches adds the given value to the Searches field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Searches field.\nfunc (b *PodDNSConfigApplyConfiguration) WithSearches(values ...string) *PodDNSConfigApplyConfiguration {\n\tfor i := range values {\n\t\tb.Searches = append(b.Searches, values[i])\n\t}\n\treturn b\n}\n\n// WithOptions adds the given value to the Options field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Options field.\nfunc (b *PodDNSConfigApplyConfiguration) WithOptions(values ...*PodDNSConfigOptionApplyConfiguration) *PodDNSConfigApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOptions\")\n\t\t}\n\t\tb.Options = append(b.Options, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/poddnsconfigoption.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// PodDNSConfigOptionApplyConfiguration represents a declarative configuration of the PodDNSConfigOption type for use\n// with apply.\ntype PodDNSConfigOptionApplyConfiguration struct {\n\tName  *string `json:\"name,omitempty\"`\n\tValue *string `json:\"value,omitempty\"`\n}\n\n// PodDNSConfigOptionApplyConfiguration constructs a declarative configuration of the PodDNSConfigOption type for use with\n// apply.\nfunc PodDNSConfigOption() *PodDNSConfigOptionApplyConfiguration {\n\treturn &PodDNSConfigOptionApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PodDNSConfigOptionApplyConfiguration) WithName(value string) *PodDNSConfigOptionApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithValue sets the Value field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Value field is set to the value of the last call.\nfunc (b *PodDNSConfigOptionApplyConfiguration) WithValue(value string) *PodDNSConfigOptionApplyConfiguration {\n\tb.Value = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/podip.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// PodIPApplyConfiguration represents a declarative configuration of the PodIP type for use\n// with apply.\ntype PodIPApplyConfiguration struct {\n\tIP *string `json:\"ip,omitempty\"`\n}\n\n// PodIPApplyConfiguration constructs a declarative configuration of the PodIP type for use with\n// apply.\nfunc PodIP() *PodIPApplyConfiguration {\n\treturn &PodIPApplyConfiguration{}\n}\n\n// WithIP sets the IP field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the IP field is set to the value of the last call.\nfunc (b *PodIPApplyConfiguration) WithIP(value string) *PodIPApplyConfiguration {\n\tb.IP = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/podos.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// PodOSApplyConfiguration represents a declarative configuration of the PodOS type for use\n// with apply.\ntype PodOSApplyConfiguration struct {\n\tName *corev1.OSName `json:\"name,omitempty\"`\n}\n\n// PodOSApplyConfiguration constructs a declarative configuration of the PodOS type for use with\n// apply.\nfunc PodOS() *PodOSApplyConfiguration {\n\treturn &PodOSApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PodOSApplyConfiguration) WithName(value corev1.OSName) *PodOSApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/podreadinessgate.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// PodReadinessGateApplyConfiguration represents a declarative configuration of the PodReadinessGate type for use\n// with apply.\ntype PodReadinessGateApplyConfiguration struct {\n\tConditionType *corev1.PodConditionType `json:\"conditionType,omitempty\"`\n}\n\n// PodReadinessGateApplyConfiguration constructs a declarative configuration of the PodReadinessGate type for use with\n// apply.\nfunc PodReadinessGate() *PodReadinessGateApplyConfiguration {\n\treturn &PodReadinessGateApplyConfiguration{}\n}\n\n// WithConditionType sets the ConditionType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ConditionType field is set to the value of the last call.\nfunc (b *PodReadinessGateApplyConfiguration) WithConditionType(value corev1.PodConditionType) *PodReadinessGateApplyConfiguration {\n\tb.ConditionType = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/podresourceclaim.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// PodResourceClaimApplyConfiguration represents a declarative configuration of the PodResourceClaim type for use\n// with apply.\ntype PodResourceClaimApplyConfiguration struct {\n\tName                      *string `json:\"name,omitempty\"`\n\tResourceClaimName         *string `json:\"resourceClaimName,omitempty\"`\n\tResourceClaimTemplateName *string `json:\"resourceClaimTemplateName,omitempty\"`\n}\n\n// PodResourceClaimApplyConfiguration constructs a declarative configuration of the PodResourceClaim type for use with\n// apply.\nfunc PodResourceClaim() *PodResourceClaimApplyConfiguration {\n\treturn &PodResourceClaimApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PodResourceClaimApplyConfiguration) WithName(value string) *PodResourceClaimApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithResourceClaimName sets the ResourceClaimName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceClaimName field is set to the value of the last call.\nfunc (b *PodResourceClaimApplyConfiguration) WithResourceClaimName(value string) *PodResourceClaimApplyConfiguration {\n\tb.ResourceClaimName = &value\n\treturn b\n}\n\n// WithResourceClaimTemplateName sets the ResourceClaimTemplateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceClaimTemplateName field is set to the value of the last call.\nfunc (b *PodResourceClaimApplyConfiguration) WithResourceClaimTemplateName(value string) *PodResourceClaimApplyConfiguration {\n\tb.ResourceClaimTemplateName = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/podresourceclaimstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// PodResourceClaimStatusApplyConfiguration represents a declarative configuration of the PodResourceClaimStatus type for use\n// with apply.\ntype PodResourceClaimStatusApplyConfiguration struct {\n\tName              *string `json:\"name,omitempty\"`\n\tResourceClaimName *string `json:\"resourceClaimName,omitempty\"`\n}\n\n// PodResourceClaimStatusApplyConfiguration constructs a declarative configuration of the PodResourceClaimStatus type for use with\n// apply.\nfunc PodResourceClaimStatus() *PodResourceClaimStatusApplyConfiguration {\n\treturn &PodResourceClaimStatusApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PodResourceClaimStatusApplyConfiguration) WithName(value string) *PodResourceClaimStatusApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithResourceClaimName sets the ResourceClaimName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceClaimName field is set to the value of the last call.\nfunc (b *PodResourceClaimStatusApplyConfiguration) WithResourceClaimName(value string) *PodResourceClaimStatusApplyConfiguration {\n\tb.ResourceClaimName = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/podschedulinggate.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// PodSchedulingGateApplyConfiguration represents a declarative configuration of the PodSchedulingGate type for use\n// with apply.\ntype PodSchedulingGateApplyConfiguration struct {\n\tName *string `json:\"name,omitempty\"`\n}\n\n// PodSchedulingGateApplyConfiguration constructs a declarative configuration of the PodSchedulingGate type for use with\n// apply.\nfunc PodSchedulingGate() *PodSchedulingGateApplyConfiguration {\n\treturn &PodSchedulingGateApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PodSchedulingGateApplyConfiguration) WithName(value string) *PodSchedulingGateApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/podsecuritycontext.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// PodSecurityContextApplyConfiguration represents a declarative configuration of the PodSecurityContext type for use\n// with apply.\ntype PodSecurityContextApplyConfiguration struct {\n\tSELinuxOptions           *SELinuxOptionsApplyConfiguration                `json:\"seLinuxOptions,omitempty\"`\n\tWindowsOptions           *WindowsSecurityContextOptionsApplyConfiguration `json:\"windowsOptions,omitempty\"`\n\tRunAsUser                *int64                                           `json:\"runAsUser,omitempty\"`\n\tRunAsGroup               *int64                                           `json:\"runAsGroup,omitempty\"`\n\tRunAsNonRoot             *bool                                            `json:\"runAsNonRoot,omitempty\"`\n\tSupplementalGroups       []int64                                          `json:\"supplementalGroups,omitempty\"`\n\tSupplementalGroupsPolicy *corev1.SupplementalGroupsPolicy                 `json:\"supplementalGroupsPolicy,omitempty\"`\n\tFSGroup                  *int64                                           `json:\"fsGroup,omitempty\"`\n\tSysctls                  []SysctlApplyConfiguration                       `json:\"sysctls,omitempty\"`\n\tFSGroupChangePolicy      *corev1.PodFSGroupChangePolicy                   `json:\"fsGroupChangePolicy,omitempty\"`\n\tSeccompProfile           *SeccompProfileApplyConfiguration                `json:\"seccompProfile,omitempty\"`\n\tAppArmorProfile          *AppArmorProfileApplyConfiguration               `json:\"appArmorProfile,omitempty\"`\n\tSELinuxChangePolicy      *corev1.PodSELinuxChangePolicy                   `json:\"seLinuxChangePolicy,omitempty\"`\n}\n\n// PodSecurityContextApplyConfiguration constructs a declarative configuration of the PodSecurityContext type for use with\n// apply.\nfunc PodSecurityContext() *PodSecurityContextApplyConfiguration {\n\treturn &PodSecurityContextApplyConfiguration{}\n}\n\n// WithSELinuxOptions sets the SELinuxOptions field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SELinuxOptions field is set to the value of the last call.\nfunc (b *PodSecurityContextApplyConfiguration) WithSELinuxOptions(value *SELinuxOptionsApplyConfiguration) *PodSecurityContextApplyConfiguration {\n\tb.SELinuxOptions = value\n\treturn b\n}\n\n// WithWindowsOptions sets the WindowsOptions field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the WindowsOptions field is set to the value of the last call.\nfunc (b *PodSecurityContextApplyConfiguration) WithWindowsOptions(value *WindowsSecurityContextOptionsApplyConfiguration) *PodSecurityContextApplyConfiguration {\n\tb.WindowsOptions = value\n\treturn b\n}\n\n// WithRunAsUser sets the RunAsUser field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RunAsUser field is set to the value of the last call.\nfunc (b *PodSecurityContextApplyConfiguration) WithRunAsUser(value int64) *PodSecurityContextApplyConfiguration {\n\tb.RunAsUser = &value\n\treturn b\n}\n\n// WithRunAsGroup sets the RunAsGroup field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RunAsGroup field is set to the value of the last call.\nfunc (b *PodSecurityContextApplyConfiguration) WithRunAsGroup(value int64) *PodSecurityContextApplyConfiguration {\n\tb.RunAsGroup = &value\n\treturn b\n}\n\n// WithRunAsNonRoot sets the RunAsNonRoot field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RunAsNonRoot field is set to the value of the last call.\nfunc (b *PodSecurityContextApplyConfiguration) WithRunAsNonRoot(value bool) *PodSecurityContextApplyConfiguration {\n\tb.RunAsNonRoot = &value\n\treturn b\n}\n\n// WithSupplementalGroups adds the given value to the SupplementalGroups field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the SupplementalGroups field.\nfunc (b *PodSecurityContextApplyConfiguration) WithSupplementalGroups(values ...int64) *PodSecurityContextApplyConfiguration {\n\tfor i := range values {\n\t\tb.SupplementalGroups = append(b.SupplementalGroups, values[i])\n\t}\n\treturn b\n}\n\n// WithSupplementalGroupsPolicy sets the SupplementalGroupsPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SupplementalGroupsPolicy field is set to the value of the last call.\nfunc (b *PodSecurityContextApplyConfiguration) WithSupplementalGroupsPolicy(value corev1.SupplementalGroupsPolicy) *PodSecurityContextApplyConfiguration {\n\tb.SupplementalGroupsPolicy = &value\n\treturn b\n}\n\n// WithFSGroup sets the FSGroup field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSGroup field is set to the value of the last call.\nfunc (b *PodSecurityContextApplyConfiguration) WithFSGroup(value int64) *PodSecurityContextApplyConfiguration {\n\tb.FSGroup = &value\n\treturn b\n}\n\n// WithSysctls adds the given value to the Sysctls field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Sysctls field.\nfunc (b *PodSecurityContextApplyConfiguration) WithSysctls(values ...*SysctlApplyConfiguration) *PodSecurityContextApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithSysctls\")\n\t\t}\n\t\tb.Sysctls = append(b.Sysctls, *values[i])\n\t}\n\treturn b\n}\n\n// WithFSGroupChangePolicy sets the FSGroupChangePolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSGroupChangePolicy field is set to the value of the last call.\nfunc (b *PodSecurityContextApplyConfiguration) WithFSGroupChangePolicy(value corev1.PodFSGroupChangePolicy) *PodSecurityContextApplyConfiguration {\n\tb.FSGroupChangePolicy = &value\n\treturn b\n}\n\n// WithSeccompProfile sets the SeccompProfile field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SeccompProfile field is set to the value of the last call.\nfunc (b *PodSecurityContextApplyConfiguration) WithSeccompProfile(value *SeccompProfileApplyConfiguration) *PodSecurityContextApplyConfiguration {\n\tb.SeccompProfile = value\n\treturn b\n}\n\n// WithAppArmorProfile sets the AppArmorProfile field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AppArmorProfile field is set to the value of the last call.\nfunc (b *PodSecurityContextApplyConfiguration) WithAppArmorProfile(value *AppArmorProfileApplyConfiguration) *PodSecurityContextApplyConfiguration {\n\tb.AppArmorProfile = value\n\treturn b\n}\n\n// WithSELinuxChangePolicy sets the SELinuxChangePolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SELinuxChangePolicy field is set to the value of the last call.\nfunc (b *PodSecurityContextApplyConfiguration) WithSELinuxChangePolicy(value corev1.PodSELinuxChangePolicy) *PodSecurityContextApplyConfiguration {\n\tb.SELinuxChangePolicy = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/podspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// PodSpecApplyConfiguration represents a declarative configuration of the PodSpec type for use\n// with apply.\ntype PodSpecApplyConfiguration struct {\n\tVolumes                       []VolumeApplyConfiguration                   `json:\"volumes,omitempty\"`\n\tInitContainers                []ContainerApplyConfiguration                `json:\"initContainers,omitempty\"`\n\tContainers                    []ContainerApplyConfiguration                `json:\"containers,omitempty\"`\n\tEphemeralContainers           []EphemeralContainerApplyConfiguration       `json:\"ephemeralContainers,omitempty\"`\n\tRestartPolicy                 *corev1.RestartPolicy                        `json:\"restartPolicy,omitempty\"`\n\tTerminationGracePeriodSeconds *int64                                       `json:\"terminationGracePeriodSeconds,omitempty\"`\n\tActiveDeadlineSeconds         *int64                                       `json:\"activeDeadlineSeconds,omitempty\"`\n\tDNSPolicy                     *corev1.DNSPolicy                            `json:\"dnsPolicy,omitempty\"`\n\tNodeSelector                  map[string]string                            `json:\"nodeSelector,omitempty\"`\n\tServiceAccountName            *string                                      `json:\"serviceAccountName,omitempty\"`\n\tDeprecatedServiceAccount      *string                                      `json:\"serviceAccount,omitempty\"`\n\tAutomountServiceAccountToken  *bool                                        `json:\"automountServiceAccountToken,omitempty\"`\n\tNodeName                      *string                                      `json:\"nodeName,omitempty\"`\n\tHostNetwork                   *bool                                        `json:\"hostNetwork,omitempty\"`\n\tHostPID                       *bool                                        `json:\"hostPID,omitempty\"`\n\tHostIPC                       *bool                                        `json:\"hostIPC,omitempty\"`\n\tShareProcessNamespace         *bool                                        `json:\"shareProcessNamespace,omitempty\"`\n\tSecurityContext               *PodSecurityContextApplyConfiguration        `json:\"securityContext,omitempty\"`\n\tImagePullSecrets              []LocalObjectReferenceApplyConfiguration     `json:\"imagePullSecrets,omitempty\"`\n\tHostname                      *string                                      `json:\"hostname,omitempty\"`\n\tSubdomain                     *string                                      `json:\"subdomain,omitempty\"`\n\tAffinity                      *AffinityApplyConfiguration                  `json:\"affinity,omitempty\"`\n\tSchedulerName                 *string                                      `json:\"schedulerName,omitempty\"`\n\tTolerations                   []TolerationApplyConfiguration               `json:\"tolerations,omitempty\"`\n\tHostAliases                   []HostAliasApplyConfiguration                `json:\"hostAliases,omitempty\"`\n\tPriorityClassName             *string                                      `json:\"priorityClassName,omitempty\"`\n\tPriority                      *int32                                       `json:\"priority,omitempty\"`\n\tDNSConfig                     *PodDNSConfigApplyConfiguration              `json:\"dnsConfig,omitempty\"`\n\tReadinessGates                []PodReadinessGateApplyConfiguration         `json:\"readinessGates,omitempty\"`\n\tRuntimeClassName              *string                                      `json:\"runtimeClassName,omitempty\"`\n\tEnableServiceLinks            *bool                                        `json:\"enableServiceLinks,omitempty\"`\n\tPreemptionPolicy              *corev1.PreemptionPolicy                     `json:\"preemptionPolicy,omitempty\"`\n\tOverhead                      *corev1.ResourceList                         `json:\"overhead,omitempty\"`\n\tTopologySpreadConstraints     []TopologySpreadConstraintApplyConfiguration `json:\"topologySpreadConstraints,omitempty\"`\n\tSetHostnameAsFQDN             *bool                                        `json:\"setHostnameAsFQDN,omitempty\"`\n\tOS                            *PodOSApplyConfiguration                     `json:\"os,omitempty\"`\n\tHostUsers                     *bool                                        `json:\"hostUsers,omitempty\"`\n\tSchedulingGates               []PodSchedulingGateApplyConfiguration        `json:\"schedulingGates,omitempty\"`\n\tResourceClaims                []PodResourceClaimApplyConfiguration         `json:\"resourceClaims,omitempty\"`\n\tResources                     *ResourceRequirementsApplyConfiguration      `json:\"resources,omitempty\"`\n}\n\n// PodSpecApplyConfiguration constructs a declarative configuration of the PodSpec type for use with\n// apply.\nfunc PodSpec() *PodSpecApplyConfiguration {\n\treturn &PodSpecApplyConfiguration{}\n}\n\n// WithVolumes adds the given value to the Volumes field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Volumes field.\nfunc (b *PodSpecApplyConfiguration) WithVolumes(values ...*VolumeApplyConfiguration) *PodSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithVolumes\")\n\t\t}\n\t\tb.Volumes = append(b.Volumes, *values[i])\n\t}\n\treturn b\n}\n\n// WithInitContainers adds the given value to the InitContainers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the InitContainers field.\nfunc (b *PodSpecApplyConfiguration) WithInitContainers(values ...*ContainerApplyConfiguration) *PodSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithInitContainers\")\n\t\t}\n\t\tb.InitContainers = append(b.InitContainers, *values[i])\n\t}\n\treturn b\n}\n\n// WithContainers adds the given value to the Containers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Containers field.\nfunc (b *PodSpecApplyConfiguration) WithContainers(values ...*ContainerApplyConfiguration) *PodSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithContainers\")\n\t\t}\n\t\tb.Containers = append(b.Containers, *values[i])\n\t}\n\treturn b\n}\n\n// WithEphemeralContainers adds the given value to the EphemeralContainers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the EphemeralContainers field.\nfunc (b *PodSpecApplyConfiguration) WithEphemeralContainers(values ...*EphemeralContainerApplyConfiguration) *PodSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithEphemeralContainers\")\n\t\t}\n\t\tb.EphemeralContainers = append(b.EphemeralContainers, *values[i])\n\t}\n\treturn b\n}\n\n// WithRestartPolicy sets the RestartPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RestartPolicy field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithRestartPolicy(value corev1.RestartPolicy) *PodSpecApplyConfiguration {\n\tb.RestartPolicy = &value\n\treturn b\n}\n\n// WithTerminationGracePeriodSeconds sets the TerminationGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TerminationGracePeriodSeconds field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithTerminationGracePeriodSeconds(value int64) *PodSpecApplyConfiguration {\n\tb.TerminationGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithActiveDeadlineSeconds sets the ActiveDeadlineSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ActiveDeadlineSeconds field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithActiveDeadlineSeconds(value int64) *PodSpecApplyConfiguration {\n\tb.ActiveDeadlineSeconds = &value\n\treturn b\n}\n\n// WithDNSPolicy sets the DNSPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DNSPolicy field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithDNSPolicy(value corev1.DNSPolicy) *PodSpecApplyConfiguration {\n\tb.DNSPolicy = &value\n\treturn b\n}\n\n// WithNodeSelector puts the entries into the NodeSelector field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the NodeSelector field,\n// overwriting an existing map entries in NodeSelector field with the same key.\nfunc (b *PodSpecApplyConfiguration) WithNodeSelector(entries map[string]string) *PodSpecApplyConfiguration {\n\tif b.NodeSelector == nil && len(entries) > 0 {\n\t\tb.NodeSelector = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.NodeSelector[k] = v\n\t}\n\treturn b\n}\n\n// WithServiceAccountName sets the ServiceAccountName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ServiceAccountName field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithServiceAccountName(value string) *PodSpecApplyConfiguration {\n\tb.ServiceAccountName = &value\n\treturn b\n}\n\n// WithDeprecatedServiceAccount sets the DeprecatedServiceAccount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeprecatedServiceAccount field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithDeprecatedServiceAccount(value string) *PodSpecApplyConfiguration {\n\tb.DeprecatedServiceAccount = &value\n\treturn b\n}\n\n// WithAutomountServiceAccountToken sets the AutomountServiceAccountToken field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AutomountServiceAccountToken field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithAutomountServiceAccountToken(value bool) *PodSpecApplyConfiguration {\n\tb.AutomountServiceAccountToken = &value\n\treturn b\n}\n\n// WithNodeName sets the NodeName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeName field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithNodeName(value string) *PodSpecApplyConfiguration {\n\tb.NodeName = &value\n\treturn b\n}\n\n// WithHostNetwork sets the HostNetwork field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HostNetwork field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithHostNetwork(value bool) *PodSpecApplyConfiguration {\n\tb.HostNetwork = &value\n\treturn b\n}\n\n// WithHostPID sets the HostPID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HostPID field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithHostPID(value bool) *PodSpecApplyConfiguration {\n\tb.HostPID = &value\n\treturn b\n}\n\n// WithHostIPC sets the HostIPC field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HostIPC field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithHostIPC(value bool) *PodSpecApplyConfiguration {\n\tb.HostIPC = &value\n\treturn b\n}\n\n// WithShareProcessNamespace sets the ShareProcessNamespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ShareProcessNamespace field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithShareProcessNamespace(value bool) *PodSpecApplyConfiguration {\n\tb.ShareProcessNamespace = &value\n\treturn b\n}\n\n// WithSecurityContext sets the SecurityContext field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecurityContext field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithSecurityContext(value *PodSecurityContextApplyConfiguration) *PodSpecApplyConfiguration {\n\tb.SecurityContext = value\n\treturn b\n}\n\n// WithImagePullSecrets adds the given value to the ImagePullSecrets field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ImagePullSecrets field.\nfunc (b *PodSpecApplyConfiguration) WithImagePullSecrets(values ...*LocalObjectReferenceApplyConfiguration) *PodSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithImagePullSecrets\")\n\t\t}\n\t\tb.ImagePullSecrets = append(b.ImagePullSecrets, *values[i])\n\t}\n\treturn b\n}\n\n// WithHostname sets the Hostname field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Hostname field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithHostname(value string) *PodSpecApplyConfiguration {\n\tb.Hostname = &value\n\treturn b\n}\n\n// WithSubdomain sets the Subdomain field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Subdomain field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithSubdomain(value string) *PodSpecApplyConfiguration {\n\tb.Subdomain = &value\n\treturn b\n}\n\n// WithAffinity sets the Affinity field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Affinity field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithAffinity(value *AffinityApplyConfiguration) *PodSpecApplyConfiguration {\n\tb.Affinity = value\n\treturn b\n}\n\n// WithSchedulerName sets the SchedulerName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SchedulerName field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithSchedulerName(value string) *PodSpecApplyConfiguration {\n\tb.SchedulerName = &value\n\treturn b\n}\n\n// WithTolerations adds the given value to the Tolerations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Tolerations field.\nfunc (b *PodSpecApplyConfiguration) WithTolerations(values ...*TolerationApplyConfiguration) *PodSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithTolerations\")\n\t\t}\n\t\tb.Tolerations = append(b.Tolerations, *values[i])\n\t}\n\treturn b\n}\n\n// WithHostAliases adds the given value to the HostAliases field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the HostAliases field.\nfunc (b *PodSpecApplyConfiguration) WithHostAliases(values ...*HostAliasApplyConfiguration) *PodSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithHostAliases\")\n\t\t}\n\t\tb.HostAliases = append(b.HostAliases, *values[i])\n\t}\n\treturn b\n}\n\n// WithPriorityClassName sets the PriorityClassName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PriorityClassName field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithPriorityClassName(value string) *PodSpecApplyConfiguration {\n\tb.PriorityClassName = &value\n\treturn b\n}\n\n// WithPriority sets the Priority field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Priority field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithPriority(value int32) *PodSpecApplyConfiguration {\n\tb.Priority = &value\n\treturn b\n}\n\n// WithDNSConfig sets the DNSConfig field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DNSConfig field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithDNSConfig(value *PodDNSConfigApplyConfiguration) *PodSpecApplyConfiguration {\n\tb.DNSConfig = value\n\treturn b\n}\n\n// WithReadinessGates adds the given value to the ReadinessGates field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ReadinessGates field.\nfunc (b *PodSpecApplyConfiguration) WithReadinessGates(values ...*PodReadinessGateApplyConfiguration) *PodSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithReadinessGates\")\n\t\t}\n\t\tb.ReadinessGates = append(b.ReadinessGates, *values[i])\n\t}\n\treturn b\n}\n\n// WithRuntimeClassName sets the RuntimeClassName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RuntimeClassName field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithRuntimeClassName(value string) *PodSpecApplyConfiguration {\n\tb.RuntimeClassName = &value\n\treturn b\n}\n\n// WithEnableServiceLinks sets the EnableServiceLinks field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the EnableServiceLinks field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithEnableServiceLinks(value bool) *PodSpecApplyConfiguration {\n\tb.EnableServiceLinks = &value\n\treturn b\n}\n\n// WithPreemptionPolicy sets the PreemptionPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PreemptionPolicy field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithPreemptionPolicy(value corev1.PreemptionPolicy) *PodSpecApplyConfiguration {\n\tb.PreemptionPolicy = &value\n\treturn b\n}\n\n// WithOverhead sets the Overhead field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Overhead field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithOverhead(value corev1.ResourceList) *PodSpecApplyConfiguration {\n\tb.Overhead = &value\n\treturn b\n}\n\n// WithTopologySpreadConstraints adds the given value to the TopologySpreadConstraints field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the TopologySpreadConstraints field.\nfunc (b *PodSpecApplyConfiguration) WithTopologySpreadConstraints(values ...*TopologySpreadConstraintApplyConfiguration) *PodSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithTopologySpreadConstraints\")\n\t\t}\n\t\tb.TopologySpreadConstraints = append(b.TopologySpreadConstraints, *values[i])\n\t}\n\treturn b\n}\n\n// WithSetHostnameAsFQDN sets the SetHostnameAsFQDN field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SetHostnameAsFQDN field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithSetHostnameAsFQDN(value bool) *PodSpecApplyConfiguration {\n\tb.SetHostnameAsFQDN = &value\n\treturn b\n}\n\n// WithOS sets the OS field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the OS field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithOS(value *PodOSApplyConfiguration) *PodSpecApplyConfiguration {\n\tb.OS = value\n\treturn b\n}\n\n// WithHostUsers sets the HostUsers field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HostUsers field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithHostUsers(value bool) *PodSpecApplyConfiguration {\n\tb.HostUsers = &value\n\treturn b\n}\n\n// WithSchedulingGates adds the given value to the SchedulingGates field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the SchedulingGates field.\nfunc (b *PodSpecApplyConfiguration) WithSchedulingGates(values ...*PodSchedulingGateApplyConfiguration) *PodSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithSchedulingGates\")\n\t\t}\n\t\tb.SchedulingGates = append(b.SchedulingGates, *values[i])\n\t}\n\treturn b\n}\n\n// WithResourceClaims adds the given value to the ResourceClaims field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ResourceClaims field.\nfunc (b *PodSpecApplyConfiguration) WithResourceClaims(values ...*PodResourceClaimApplyConfiguration) *PodSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithResourceClaims\")\n\t\t}\n\t\tb.ResourceClaims = append(b.ResourceClaims, *values[i])\n\t}\n\treturn b\n}\n\n// WithResources sets the Resources field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Resources field is set to the value of the last call.\nfunc (b *PodSpecApplyConfiguration) WithResources(value *ResourceRequirementsApplyConfiguration) *PodSpecApplyConfiguration {\n\tb.Resources = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/podstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// PodStatusApplyConfiguration represents a declarative configuration of the PodStatus type for use\n// with apply.\ntype PodStatusApplyConfiguration struct {\n\tPhase                      *corev1.PodPhase                           `json:\"phase,omitempty\"`\n\tConditions                 []PodConditionApplyConfiguration           `json:\"conditions,omitempty\"`\n\tMessage                    *string                                    `json:\"message,omitempty\"`\n\tReason                     *string                                    `json:\"reason,omitempty\"`\n\tNominatedNodeName          *string                                    `json:\"nominatedNodeName,omitempty\"`\n\tHostIP                     *string                                    `json:\"hostIP,omitempty\"`\n\tHostIPs                    []HostIPApplyConfiguration                 `json:\"hostIPs,omitempty\"`\n\tPodIP                      *string                                    `json:\"podIP,omitempty\"`\n\tPodIPs                     []PodIPApplyConfiguration                  `json:\"podIPs,omitempty\"`\n\tStartTime                  *metav1.Time                               `json:\"startTime,omitempty\"`\n\tInitContainerStatuses      []ContainerStatusApplyConfiguration        `json:\"initContainerStatuses,omitempty\"`\n\tContainerStatuses          []ContainerStatusApplyConfiguration        `json:\"containerStatuses,omitempty\"`\n\tQOSClass                   *corev1.PodQOSClass                        `json:\"qosClass,omitempty\"`\n\tEphemeralContainerStatuses []ContainerStatusApplyConfiguration        `json:\"ephemeralContainerStatuses,omitempty\"`\n\tResize                     *corev1.PodResizeStatus                    `json:\"resize,omitempty\"`\n\tResourceClaimStatuses      []PodResourceClaimStatusApplyConfiguration `json:\"resourceClaimStatuses,omitempty\"`\n}\n\n// PodStatusApplyConfiguration constructs a declarative configuration of the PodStatus type for use with\n// apply.\nfunc PodStatus() *PodStatusApplyConfiguration {\n\treturn &PodStatusApplyConfiguration{}\n}\n\n// WithPhase sets the Phase field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Phase field is set to the value of the last call.\nfunc (b *PodStatusApplyConfiguration) WithPhase(value corev1.PodPhase) *PodStatusApplyConfiguration {\n\tb.Phase = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *PodStatusApplyConfiguration) WithConditions(values ...*PodConditionApplyConfiguration) *PodStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *PodStatusApplyConfiguration) WithMessage(value string) *PodStatusApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *PodStatusApplyConfiguration) WithReason(value string) *PodStatusApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithNominatedNodeName sets the NominatedNodeName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NominatedNodeName field is set to the value of the last call.\nfunc (b *PodStatusApplyConfiguration) WithNominatedNodeName(value string) *PodStatusApplyConfiguration {\n\tb.NominatedNodeName = &value\n\treturn b\n}\n\n// WithHostIP sets the HostIP field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HostIP field is set to the value of the last call.\nfunc (b *PodStatusApplyConfiguration) WithHostIP(value string) *PodStatusApplyConfiguration {\n\tb.HostIP = &value\n\treturn b\n}\n\n// WithHostIPs adds the given value to the HostIPs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the HostIPs field.\nfunc (b *PodStatusApplyConfiguration) WithHostIPs(values ...*HostIPApplyConfiguration) *PodStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithHostIPs\")\n\t\t}\n\t\tb.HostIPs = append(b.HostIPs, *values[i])\n\t}\n\treturn b\n}\n\n// WithPodIP sets the PodIP field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PodIP field is set to the value of the last call.\nfunc (b *PodStatusApplyConfiguration) WithPodIP(value string) *PodStatusApplyConfiguration {\n\tb.PodIP = &value\n\treturn b\n}\n\n// WithPodIPs adds the given value to the PodIPs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the PodIPs field.\nfunc (b *PodStatusApplyConfiguration) WithPodIPs(values ...*PodIPApplyConfiguration) *PodStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPodIPs\")\n\t\t}\n\t\tb.PodIPs = append(b.PodIPs, *values[i])\n\t}\n\treturn b\n}\n\n// WithStartTime sets the StartTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StartTime field is set to the value of the last call.\nfunc (b *PodStatusApplyConfiguration) WithStartTime(value metav1.Time) *PodStatusApplyConfiguration {\n\tb.StartTime = &value\n\treturn b\n}\n\n// WithInitContainerStatuses adds the given value to the InitContainerStatuses field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the InitContainerStatuses field.\nfunc (b *PodStatusApplyConfiguration) WithInitContainerStatuses(values ...*ContainerStatusApplyConfiguration) *PodStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithInitContainerStatuses\")\n\t\t}\n\t\tb.InitContainerStatuses = append(b.InitContainerStatuses, *values[i])\n\t}\n\treturn b\n}\n\n// WithContainerStatuses adds the given value to the ContainerStatuses field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ContainerStatuses field.\nfunc (b *PodStatusApplyConfiguration) WithContainerStatuses(values ...*ContainerStatusApplyConfiguration) *PodStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithContainerStatuses\")\n\t\t}\n\t\tb.ContainerStatuses = append(b.ContainerStatuses, *values[i])\n\t}\n\treturn b\n}\n\n// WithQOSClass sets the QOSClass field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the QOSClass field is set to the value of the last call.\nfunc (b *PodStatusApplyConfiguration) WithQOSClass(value corev1.PodQOSClass) *PodStatusApplyConfiguration {\n\tb.QOSClass = &value\n\treturn b\n}\n\n// WithEphemeralContainerStatuses adds the given value to the EphemeralContainerStatuses field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the EphemeralContainerStatuses field.\nfunc (b *PodStatusApplyConfiguration) WithEphemeralContainerStatuses(values ...*ContainerStatusApplyConfiguration) *PodStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithEphemeralContainerStatuses\")\n\t\t}\n\t\tb.EphemeralContainerStatuses = append(b.EphemeralContainerStatuses, *values[i])\n\t}\n\treturn b\n}\n\n// WithResize sets the Resize field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Resize field is set to the value of the last call.\nfunc (b *PodStatusApplyConfiguration) WithResize(value corev1.PodResizeStatus) *PodStatusApplyConfiguration {\n\tb.Resize = &value\n\treturn b\n}\n\n// WithResourceClaimStatuses adds the given value to the ResourceClaimStatuses field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ResourceClaimStatuses field.\nfunc (b *PodStatusApplyConfiguration) WithResourceClaimStatuses(values ...*PodResourceClaimStatusApplyConfiguration) *PodStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithResourceClaimStatuses\")\n\t\t}\n\t\tb.ResourceClaimStatuses = append(b.ResourceClaimStatuses, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/podtemplate.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PodTemplateApplyConfiguration represents a declarative configuration of the PodTemplate type for use\n// with apply.\ntype PodTemplateApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tTemplate                             *PodTemplateSpecApplyConfiguration `json:\"template,omitempty\"`\n}\n\n// PodTemplate constructs a declarative configuration of the PodTemplate type for use with\n// apply.\nfunc PodTemplate(name, namespace string) *PodTemplateApplyConfiguration {\n\tb := &PodTemplateApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"PodTemplate\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b\n}\n\n// ExtractPodTemplate extracts the applied configuration owned by fieldManager from\n// podTemplate. If no managedFields are found in podTemplate for fieldManager, a\n// PodTemplateApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// podTemplate must be a unmodified PodTemplate API object that was retrieved from the Kubernetes API.\n// ExtractPodTemplate provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractPodTemplate(podTemplate *corev1.PodTemplate, fieldManager string) (*PodTemplateApplyConfiguration, error) {\n\treturn extractPodTemplate(podTemplate, fieldManager, \"\")\n}\n\n// ExtractPodTemplateStatus is the same as ExtractPodTemplate except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractPodTemplateStatus(podTemplate *corev1.PodTemplate, fieldManager string) (*PodTemplateApplyConfiguration, error) {\n\treturn extractPodTemplate(podTemplate, fieldManager, \"status\")\n}\n\nfunc extractPodTemplate(podTemplate *corev1.PodTemplate, fieldManager string, subresource string) (*PodTemplateApplyConfiguration, error) {\n\tb := &PodTemplateApplyConfiguration{}\n\terr := managedfields.ExtractInto(podTemplate, internal.Parser().Type(\"io.k8s.api.core.v1.PodTemplate\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(podTemplate.Name)\n\tb.WithNamespace(podTemplate.Namespace)\n\n\tb.WithKind(\"PodTemplate\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *PodTemplateApplyConfiguration) WithKind(value string) *PodTemplateApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *PodTemplateApplyConfiguration) WithAPIVersion(value string) *PodTemplateApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PodTemplateApplyConfiguration) WithName(value string) *PodTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *PodTemplateApplyConfiguration) WithGenerateName(value string) *PodTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *PodTemplateApplyConfiguration) WithNamespace(value string) *PodTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *PodTemplateApplyConfiguration) WithUID(value types.UID) *PodTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *PodTemplateApplyConfiguration) WithResourceVersion(value string) *PodTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *PodTemplateApplyConfiguration) WithGeneration(value int64) *PodTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *PodTemplateApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *PodTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *PodTemplateApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *PodTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *PodTemplateApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PodTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *PodTemplateApplyConfiguration) WithLabels(entries map[string]string) *PodTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *PodTemplateApplyConfiguration) WithAnnotations(entries map[string]string) *PodTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *PodTemplateApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *PodTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *PodTemplateApplyConfiguration) WithFinalizers(values ...string) *PodTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *PodTemplateApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithTemplate sets the Template field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Template field is set to the value of the last call.\nfunc (b *PodTemplateApplyConfiguration) WithTemplate(value *PodTemplateSpecApplyConfiguration) *PodTemplateApplyConfiguration {\n\tb.Template = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *PodTemplateApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/podtemplatespec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PodTemplateSpecApplyConfiguration represents a declarative configuration of the PodTemplateSpec type for use\n// with apply.\ntype PodTemplateSpecApplyConfiguration struct {\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                                 *PodSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// PodTemplateSpecApplyConfiguration constructs a declarative configuration of the PodTemplateSpec type for use with\n// apply.\nfunc PodTemplateSpec() *PodTemplateSpecApplyConfiguration {\n\treturn &PodTemplateSpecApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PodTemplateSpecApplyConfiguration) WithName(value string) *PodTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *PodTemplateSpecApplyConfiguration) WithGenerateName(value string) *PodTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *PodTemplateSpecApplyConfiguration) WithNamespace(value string) *PodTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *PodTemplateSpecApplyConfiguration) WithUID(value types.UID) *PodTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *PodTemplateSpecApplyConfiguration) WithResourceVersion(value string) *PodTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *PodTemplateSpecApplyConfiguration) WithGeneration(value int64) *PodTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *PodTemplateSpecApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *PodTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *PodTemplateSpecApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *PodTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *PodTemplateSpecApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PodTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *PodTemplateSpecApplyConfiguration) WithLabels(entries map[string]string) *PodTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *PodTemplateSpecApplyConfiguration) WithAnnotations(entries map[string]string) *PodTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *PodTemplateSpecApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *PodTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *PodTemplateSpecApplyConfiguration) WithFinalizers(values ...string) *PodTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *PodTemplateSpecApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *PodTemplateSpecApplyConfiguration) WithSpec(value *PodSpecApplyConfiguration) *PodTemplateSpecApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *PodTemplateSpecApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/portstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// PortStatusApplyConfiguration represents a declarative configuration of the PortStatus type for use\n// with apply.\ntype PortStatusApplyConfiguration struct {\n\tPort     *int32           `json:\"port,omitempty\"`\n\tProtocol *corev1.Protocol `json:\"protocol,omitempty\"`\n\tError    *string          `json:\"error,omitempty\"`\n}\n\n// PortStatusApplyConfiguration constructs a declarative configuration of the PortStatus type for use with\n// apply.\nfunc PortStatus() *PortStatusApplyConfiguration {\n\treturn &PortStatusApplyConfiguration{}\n}\n\n// WithPort sets the Port field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Port field is set to the value of the last call.\nfunc (b *PortStatusApplyConfiguration) WithPort(value int32) *PortStatusApplyConfiguration {\n\tb.Port = &value\n\treturn b\n}\n\n// WithProtocol sets the Protocol field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Protocol field is set to the value of the last call.\nfunc (b *PortStatusApplyConfiguration) WithProtocol(value corev1.Protocol) *PortStatusApplyConfiguration {\n\tb.Protocol = &value\n\treturn b\n}\n\n// WithError sets the Error field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Error field is set to the value of the last call.\nfunc (b *PortStatusApplyConfiguration) WithError(value string) *PortStatusApplyConfiguration {\n\tb.Error = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/portworxvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// PortworxVolumeSourceApplyConfiguration represents a declarative configuration of the PortworxVolumeSource type for use\n// with apply.\ntype PortworxVolumeSourceApplyConfiguration struct {\n\tVolumeID *string `json:\"volumeID,omitempty\"`\n\tFSType   *string `json:\"fsType,omitempty\"`\n\tReadOnly *bool   `json:\"readOnly,omitempty\"`\n}\n\n// PortworxVolumeSourceApplyConfiguration constructs a declarative configuration of the PortworxVolumeSource type for use with\n// apply.\nfunc PortworxVolumeSource() *PortworxVolumeSourceApplyConfiguration {\n\treturn &PortworxVolumeSourceApplyConfiguration{}\n}\n\n// WithVolumeID sets the VolumeID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VolumeID field is set to the value of the last call.\nfunc (b *PortworxVolumeSourceApplyConfiguration) WithVolumeID(value string) *PortworxVolumeSourceApplyConfiguration {\n\tb.VolumeID = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *PortworxVolumeSourceApplyConfiguration) WithFSType(value string) *PortworxVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *PortworxVolumeSourceApplyConfiguration) WithReadOnly(value bool) *PortworxVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/preferredschedulingterm.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// PreferredSchedulingTermApplyConfiguration represents a declarative configuration of the PreferredSchedulingTerm type for use\n// with apply.\ntype PreferredSchedulingTermApplyConfiguration struct {\n\tWeight     *int32                              `json:\"weight,omitempty\"`\n\tPreference *NodeSelectorTermApplyConfiguration `json:\"preference,omitempty\"`\n}\n\n// PreferredSchedulingTermApplyConfiguration constructs a declarative configuration of the PreferredSchedulingTerm type for use with\n// apply.\nfunc PreferredSchedulingTerm() *PreferredSchedulingTermApplyConfiguration {\n\treturn &PreferredSchedulingTermApplyConfiguration{}\n}\n\n// WithWeight sets the Weight field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Weight field is set to the value of the last call.\nfunc (b *PreferredSchedulingTermApplyConfiguration) WithWeight(value int32) *PreferredSchedulingTermApplyConfiguration {\n\tb.Weight = &value\n\treturn b\n}\n\n// WithPreference sets the Preference field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Preference field is set to the value of the last call.\nfunc (b *PreferredSchedulingTermApplyConfiguration) WithPreference(value *NodeSelectorTermApplyConfiguration) *PreferredSchedulingTermApplyConfiguration {\n\tb.Preference = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/probe.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ProbeApplyConfiguration represents a declarative configuration of the Probe type for use\n// with apply.\ntype ProbeApplyConfiguration struct {\n\tProbeHandlerApplyConfiguration `json:\",inline\"`\n\tInitialDelaySeconds            *int32 `json:\"initialDelaySeconds,omitempty\"`\n\tTimeoutSeconds                 *int32 `json:\"timeoutSeconds,omitempty\"`\n\tPeriodSeconds                  *int32 `json:\"periodSeconds,omitempty\"`\n\tSuccessThreshold               *int32 `json:\"successThreshold,omitempty\"`\n\tFailureThreshold               *int32 `json:\"failureThreshold,omitempty\"`\n\tTerminationGracePeriodSeconds  *int64 `json:\"terminationGracePeriodSeconds,omitempty\"`\n}\n\n// ProbeApplyConfiguration constructs a declarative configuration of the Probe type for use with\n// apply.\nfunc Probe() *ProbeApplyConfiguration {\n\treturn &ProbeApplyConfiguration{}\n}\n\n// WithExec sets the Exec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Exec field is set to the value of the last call.\nfunc (b *ProbeApplyConfiguration) WithExec(value *ExecActionApplyConfiguration) *ProbeApplyConfiguration {\n\tb.ProbeHandlerApplyConfiguration.Exec = value\n\treturn b\n}\n\n// WithHTTPGet sets the HTTPGet field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HTTPGet field is set to the value of the last call.\nfunc (b *ProbeApplyConfiguration) WithHTTPGet(value *HTTPGetActionApplyConfiguration) *ProbeApplyConfiguration {\n\tb.ProbeHandlerApplyConfiguration.HTTPGet = value\n\treturn b\n}\n\n// WithTCPSocket sets the TCPSocket field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TCPSocket field is set to the value of the last call.\nfunc (b *ProbeApplyConfiguration) WithTCPSocket(value *TCPSocketActionApplyConfiguration) *ProbeApplyConfiguration {\n\tb.ProbeHandlerApplyConfiguration.TCPSocket = value\n\treturn b\n}\n\n// WithGRPC sets the GRPC field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GRPC field is set to the value of the last call.\nfunc (b *ProbeApplyConfiguration) WithGRPC(value *GRPCActionApplyConfiguration) *ProbeApplyConfiguration {\n\tb.ProbeHandlerApplyConfiguration.GRPC = value\n\treturn b\n}\n\n// WithInitialDelaySeconds sets the InitialDelaySeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the InitialDelaySeconds field is set to the value of the last call.\nfunc (b *ProbeApplyConfiguration) WithInitialDelaySeconds(value int32) *ProbeApplyConfiguration {\n\tb.InitialDelaySeconds = &value\n\treturn b\n}\n\n// WithTimeoutSeconds sets the TimeoutSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TimeoutSeconds field is set to the value of the last call.\nfunc (b *ProbeApplyConfiguration) WithTimeoutSeconds(value int32) *ProbeApplyConfiguration {\n\tb.TimeoutSeconds = &value\n\treturn b\n}\n\n// WithPeriodSeconds sets the PeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PeriodSeconds field is set to the value of the last call.\nfunc (b *ProbeApplyConfiguration) WithPeriodSeconds(value int32) *ProbeApplyConfiguration {\n\tb.PeriodSeconds = &value\n\treturn b\n}\n\n// WithSuccessThreshold sets the SuccessThreshold field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SuccessThreshold field is set to the value of the last call.\nfunc (b *ProbeApplyConfiguration) WithSuccessThreshold(value int32) *ProbeApplyConfiguration {\n\tb.SuccessThreshold = &value\n\treturn b\n}\n\n// WithFailureThreshold sets the FailureThreshold field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FailureThreshold field is set to the value of the last call.\nfunc (b *ProbeApplyConfiguration) WithFailureThreshold(value int32) *ProbeApplyConfiguration {\n\tb.FailureThreshold = &value\n\treturn b\n}\n\n// WithTerminationGracePeriodSeconds sets the TerminationGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TerminationGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ProbeApplyConfiguration) WithTerminationGracePeriodSeconds(value int64) *ProbeApplyConfiguration {\n\tb.TerminationGracePeriodSeconds = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/probehandler.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ProbeHandlerApplyConfiguration represents a declarative configuration of the ProbeHandler type for use\n// with apply.\ntype ProbeHandlerApplyConfiguration struct {\n\tExec      *ExecActionApplyConfiguration      `json:\"exec,omitempty\"`\n\tHTTPGet   *HTTPGetActionApplyConfiguration   `json:\"httpGet,omitempty\"`\n\tTCPSocket *TCPSocketActionApplyConfiguration `json:\"tcpSocket,omitempty\"`\n\tGRPC      *GRPCActionApplyConfiguration      `json:\"grpc,omitempty\"`\n}\n\n// ProbeHandlerApplyConfiguration constructs a declarative configuration of the ProbeHandler type for use with\n// apply.\nfunc ProbeHandler() *ProbeHandlerApplyConfiguration {\n\treturn &ProbeHandlerApplyConfiguration{}\n}\n\n// WithExec sets the Exec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Exec field is set to the value of the last call.\nfunc (b *ProbeHandlerApplyConfiguration) WithExec(value *ExecActionApplyConfiguration) *ProbeHandlerApplyConfiguration {\n\tb.Exec = value\n\treturn b\n}\n\n// WithHTTPGet sets the HTTPGet field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HTTPGet field is set to the value of the last call.\nfunc (b *ProbeHandlerApplyConfiguration) WithHTTPGet(value *HTTPGetActionApplyConfiguration) *ProbeHandlerApplyConfiguration {\n\tb.HTTPGet = value\n\treturn b\n}\n\n// WithTCPSocket sets the TCPSocket field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TCPSocket field is set to the value of the last call.\nfunc (b *ProbeHandlerApplyConfiguration) WithTCPSocket(value *TCPSocketActionApplyConfiguration) *ProbeHandlerApplyConfiguration {\n\tb.TCPSocket = value\n\treturn b\n}\n\n// WithGRPC sets the GRPC field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GRPC field is set to the value of the last call.\nfunc (b *ProbeHandlerApplyConfiguration) WithGRPC(value *GRPCActionApplyConfiguration) *ProbeHandlerApplyConfiguration {\n\tb.GRPC = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/projectedvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ProjectedVolumeSourceApplyConfiguration represents a declarative configuration of the ProjectedVolumeSource type for use\n// with apply.\ntype ProjectedVolumeSourceApplyConfiguration struct {\n\tSources     []VolumeProjectionApplyConfiguration `json:\"sources,omitempty\"`\n\tDefaultMode *int32                               `json:\"defaultMode,omitempty\"`\n}\n\n// ProjectedVolumeSourceApplyConfiguration constructs a declarative configuration of the ProjectedVolumeSource type for use with\n// apply.\nfunc ProjectedVolumeSource() *ProjectedVolumeSourceApplyConfiguration {\n\treturn &ProjectedVolumeSourceApplyConfiguration{}\n}\n\n// WithSources adds the given value to the Sources field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Sources field.\nfunc (b *ProjectedVolumeSourceApplyConfiguration) WithSources(values ...*VolumeProjectionApplyConfiguration) *ProjectedVolumeSourceApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithSources\")\n\t\t}\n\t\tb.Sources = append(b.Sources, *values[i])\n\t}\n\treturn b\n}\n\n// WithDefaultMode sets the DefaultMode field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DefaultMode field is set to the value of the last call.\nfunc (b *ProjectedVolumeSourceApplyConfiguration) WithDefaultMode(value int32) *ProjectedVolumeSourceApplyConfiguration {\n\tb.DefaultMode = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/quobytevolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// QuobyteVolumeSourceApplyConfiguration represents a declarative configuration of the QuobyteVolumeSource type for use\n// with apply.\ntype QuobyteVolumeSourceApplyConfiguration struct {\n\tRegistry *string `json:\"registry,omitempty\"`\n\tVolume   *string `json:\"volume,omitempty\"`\n\tReadOnly *bool   `json:\"readOnly,omitempty\"`\n\tUser     *string `json:\"user,omitempty\"`\n\tGroup    *string `json:\"group,omitempty\"`\n\tTenant   *string `json:\"tenant,omitempty\"`\n}\n\n// QuobyteVolumeSourceApplyConfiguration constructs a declarative configuration of the QuobyteVolumeSource type for use with\n// apply.\nfunc QuobyteVolumeSource() *QuobyteVolumeSourceApplyConfiguration {\n\treturn &QuobyteVolumeSourceApplyConfiguration{}\n}\n\n// WithRegistry sets the Registry field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Registry field is set to the value of the last call.\nfunc (b *QuobyteVolumeSourceApplyConfiguration) WithRegistry(value string) *QuobyteVolumeSourceApplyConfiguration {\n\tb.Registry = &value\n\treturn b\n}\n\n// WithVolume sets the Volume field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Volume field is set to the value of the last call.\nfunc (b *QuobyteVolumeSourceApplyConfiguration) WithVolume(value string) *QuobyteVolumeSourceApplyConfiguration {\n\tb.Volume = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *QuobyteVolumeSourceApplyConfiguration) WithReadOnly(value bool) *QuobyteVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n\n// WithUser sets the User field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the User field is set to the value of the last call.\nfunc (b *QuobyteVolumeSourceApplyConfiguration) WithUser(value string) *QuobyteVolumeSourceApplyConfiguration {\n\tb.User = &value\n\treturn b\n}\n\n// WithGroup sets the Group field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Group field is set to the value of the last call.\nfunc (b *QuobyteVolumeSourceApplyConfiguration) WithGroup(value string) *QuobyteVolumeSourceApplyConfiguration {\n\tb.Group = &value\n\treturn b\n}\n\n// WithTenant sets the Tenant field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Tenant field is set to the value of the last call.\nfunc (b *QuobyteVolumeSourceApplyConfiguration) WithTenant(value string) *QuobyteVolumeSourceApplyConfiguration {\n\tb.Tenant = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/rbdpersistentvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// RBDPersistentVolumeSourceApplyConfiguration represents a declarative configuration of the RBDPersistentVolumeSource type for use\n// with apply.\ntype RBDPersistentVolumeSourceApplyConfiguration struct {\n\tCephMonitors []string                           `json:\"monitors,omitempty\"`\n\tRBDImage     *string                            `json:\"image,omitempty\"`\n\tFSType       *string                            `json:\"fsType,omitempty\"`\n\tRBDPool      *string                            `json:\"pool,omitempty\"`\n\tRadosUser    *string                            `json:\"user,omitempty\"`\n\tKeyring      *string                            `json:\"keyring,omitempty\"`\n\tSecretRef    *SecretReferenceApplyConfiguration `json:\"secretRef,omitempty\"`\n\tReadOnly     *bool                              `json:\"readOnly,omitempty\"`\n}\n\n// RBDPersistentVolumeSourceApplyConfiguration constructs a declarative configuration of the RBDPersistentVolumeSource type for use with\n// apply.\nfunc RBDPersistentVolumeSource() *RBDPersistentVolumeSourceApplyConfiguration {\n\treturn &RBDPersistentVolumeSourceApplyConfiguration{}\n}\n\n// WithCephMonitors adds the given value to the CephMonitors field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the CephMonitors field.\nfunc (b *RBDPersistentVolumeSourceApplyConfiguration) WithCephMonitors(values ...string) *RBDPersistentVolumeSourceApplyConfiguration {\n\tfor i := range values {\n\t\tb.CephMonitors = append(b.CephMonitors, values[i])\n\t}\n\treturn b\n}\n\n// WithRBDImage sets the RBDImage field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RBDImage field is set to the value of the last call.\nfunc (b *RBDPersistentVolumeSourceApplyConfiguration) WithRBDImage(value string) *RBDPersistentVolumeSourceApplyConfiguration {\n\tb.RBDImage = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *RBDPersistentVolumeSourceApplyConfiguration) WithFSType(value string) *RBDPersistentVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n\n// WithRBDPool sets the RBDPool field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RBDPool field is set to the value of the last call.\nfunc (b *RBDPersistentVolumeSourceApplyConfiguration) WithRBDPool(value string) *RBDPersistentVolumeSourceApplyConfiguration {\n\tb.RBDPool = &value\n\treturn b\n}\n\n// WithRadosUser sets the RadosUser field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RadosUser field is set to the value of the last call.\nfunc (b *RBDPersistentVolumeSourceApplyConfiguration) WithRadosUser(value string) *RBDPersistentVolumeSourceApplyConfiguration {\n\tb.RadosUser = &value\n\treturn b\n}\n\n// WithKeyring sets the Keyring field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Keyring field is set to the value of the last call.\nfunc (b *RBDPersistentVolumeSourceApplyConfiguration) WithKeyring(value string) *RBDPersistentVolumeSourceApplyConfiguration {\n\tb.Keyring = &value\n\treturn b\n}\n\n// WithSecretRef sets the SecretRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretRef field is set to the value of the last call.\nfunc (b *RBDPersistentVolumeSourceApplyConfiguration) WithSecretRef(value *SecretReferenceApplyConfiguration) *RBDPersistentVolumeSourceApplyConfiguration {\n\tb.SecretRef = value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *RBDPersistentVolumeSourceApplyConfiguration) WithReadOnly(value bool) *RBDPersistentVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/rbdvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// RBDVolumeSourceApplyConfiguration represents a declarative configuration of the RBDVolumeSource type for use\n// with apply.\ntype RBDVolumeSourceApplyConfiguration struct {\n\tCephMonitors []string                                `json:\"monitors,omitempty\"`\n\tRBDImage     *string                                 `json:\"image,omitempty\"`\n\tFSType       *string                                 `json:\"fsType,omitempty\"`\n\tRBDPool      *string                                 `json:\"pool,omitempty\"`\n\tRadosUser    *string                                 `json:\"user,omitempty\"`\n\tKeyring      *string                                 `json:\"keyring,omitempty\"`\n\tSecretRef    *LocalObjectReferenceApplyConfiguration `json:\"secretRef,omitempty\"`\n\tReadOnly     *bool                                   `json:\"readOnly,omitempty\"`\n}\n\n// RBDVolumeSourceApplyConfiguration constructs a declarative configuration of the RBDVolumeSource type for use with\n// apply.\nfunc RBDVolumeSource() *RBDVolumeSourceApplyConfiguration {\n\treturn &RBDVolumeSourceApplyConfiguration{}\n}\n\n// WithCephMonitors adds the given value to the CephMonitors field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the CephMonitors field.\nfunc (b *RBDVolumeSourceApplyConfiguration) WithCephMonitors(values ...string) *RBDVolumeSourceApplyConfiguration {\n\tfor i := range values {\n\t\tb.CephMonitors = append(b.CephMonitors, values[i])\n\t}\n\treturn b\n}\n\n// WithRBDImage sets the RBDImage field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RBDImage field is set to the value of the last call.\nfunc (b *RBDVolumeSourceApplyConfiguration) WithRBDImage(value string) *RBDVolumeSourceApplyConfiguration {\n\tb.RBDImage = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *RBDVolumeSourceApplyConfiguration) WithFSType(value string) *RBDVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n\n// WithRBDPool sets the RBDPool field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RBDPool field is set to the value of the last call.\nfunc (b *RBDVolumeSourceApplyConfiguration) WithRBDPool(value string) *RBDVolumeSourceApplyConfiguration {\n\tb.RBDPool = &value\n\treturn b\n}\n\n// WithRadosUser sets the RadosUser field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RadosUser field is set to the value of the last call.\nfunc (b *RBDVolumeSourceApplyConfiguration) WithRadosUser(value string) *RBDVolumeSourceApplyConfiguration {\n\tb.RadosUser = &value\n\treturn b\n}\n\n// WithKeyring sets the Keyring field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Keyring field is set to the value of the last call.\nfunc (b *RBDVolumeSourceApplyConfiguration) WithKeyring(value string) *RBDVolumeSourceApplyConfiguration {\n\tb.Keyring = &value\n\treturn b\n}\n\n// WithSecretRef sets the SecretRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretRef field is set to the value of the last call.\nfunc (b *RBDVolumeSourceApplyConfiguration) WithSecretRef(value *LocalObjectReferenceApplyConfiguration) *RBDVolumeSourceApplyConfiguration {\n\tb.SecretRef = value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *RBDVolumeSourceApplyConfiguration) WithReadOnly(value bool) *RBDVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/replicationcontroller.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ReplicationControllerApplyConfiguration represents a declarative configuration of the ReplicationController type for use\n// with apply.\ntype ReplicationControllerApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                                 *ReplicationControllerSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                               *ReplicationControllerStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// ReplicationController constructs a declarative configuration of the ReplicationController type for use with\n// apply.\nfunc ReplicationController(name, namespace string) *ReplicationControllerApplyConfiguration {\n\tb := &ReplicationControllerApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"ReplicationController\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b\n}\n\n// ExtractReplicationController extracts the applied configuration owned by fieldManager from\n// replicationController. If no managedFields are found in replicationController for fieldManager, a\n// ReplicationControllerApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// replicationController must be a unmodified ReplicationController API object that was retrieved from the Kubernetes API.\n// ExtractReplicationController provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractReplicationController(replicationController *corev1.ReplicationController, fieldManager string) (*ReplicationControllerApplyConfiguration, error) {\n\treturn extractReplicationController(replicationController, fieldManager, \"\")\n}\n\n// ExtractReplicationControllerStatus is the same as ExtractReplicationController except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractReplicationControllerStatus(replicationController *corev1.ReplicationController, fieldManager string) (*ReplicationControllerApplyConfiguration, error) {\n\treturn extractReplicationController(replicationController, fieldManager, \"status\")\n}\n\nfunc extractReplicationController(replicationController *corev1.ReplicationController, fieldManager string, subresource string) (*ReplicationControllerApplyConfiguration, error) {\n\tb := &ReplicationControllerApplyConfiguration{}\n\terr := managedfields.ExtractInto(replicationController, internal.Parser().Type(\"io.k8s.api.core.v1.ReplicationController\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(replicationController.Name)\n\tb.WithNamespace(replicationController.Namespace)\n\n\tb.WithKind(\"ReplicationController\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ReplicationControllerApplyConfiguration) WithKind(value string) *ReplicationControllerApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ReplicationControllerApplyConfiguration) WithAPIVersion(value string) *ReplicationControllerApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ReplicationControllerApplyConfiguration) WithName(value string) *ReplicationControllerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ReplicationControllerApplyConfiguration) WithGenerateName(value string) *ReplicationControllerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ReplicationControllerApplyConfiguration) WithNamespace(value string) *ReplicationControllerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ReplicationControllerApplyConfiguration) WithUID(value types.UID) *ReplicationControllerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ReplicationControllerApplyConfiguration) WithResourceVersion(value string) *ReplicationControllerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ReplicationControllerApplyConfiguration) WithGeneration(value int64) *ReplicationControllerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ReplicationControllerApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *ReplicationControllerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ReplicationControllerApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *ReplicationControllerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ReplicationControllerApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ReplicationControllerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ReplicationControllerApplyConfiguration) WithLabels(entries map[string]string) *ReplicationControllerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ReplicationControllerApplyConfiguration) WithAnnotations(entries map[string]string) *ReplicationControllerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ReplicationControllerApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *ReplicationControllerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ReplicationControllerApplyConfiguration) WithFinalizers(values ...string) *ReplicationControllerApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ReplicationControllerApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *ReplicationControllerApplyConfiguration) WithSpec(value *ReplicationControllerSpecApplyConfiguration) *ReplicationControllerApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *ReplicationControllerApplyConfiguration) WithStatus(value *ReplicationControllerStatusApplyConfiguration) *ReplicationControllerApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *ReplicationControllerApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/replicationcontrollercondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// ReplicationControllerConditionApplyConfiguration represents a declarative configuration of the ReplicationControllerCondition type for use\n// with apply.\ntype ReplicationControllerConditionApplyConfiguration struct {\n\tType               *corev1.ReplicationControllerConditionType `json:\"type,omitempty\"`\n\tStatus             *corev1.ConditionStatus                    `json:\"status,omitempty\"`\n\tLastTransitionTime *metav1.Time                               `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                                    `json:\"reason,omitempty\"`\n\tMessage            *string                                    `json:\"message,omitempty\"`\n}\n\n// ReplicationControllerConditionApplyConfiguration constructs a declarative configuration of the ReplicationControllerCondition type for use with\n// apply.\nfunc ReplicationControllerCondition() *ReplicationControllerConditionApplyConfiguration {\n\treturn &ReplicationControllerConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *ReplicationControllerConditionApplyConfiguration) WithType(value corev1.ReplicationControllerConditionType) *ReplicationControllerConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *ReplicationControllerConditionApplyConfiguration) WithStatus(value corev1.ConditionStatus) *ReplicationControllerConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *ReplicationControllerConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *ReplicationControllerConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *ReplicationControllerConditionApplyConfiguration) WithReason(value string) *ReplicationControllerConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *ReplicationControllerConditionApplyConfiguration) WithMessage(value string) *ReplicationControllerConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/replicationcontrollerspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ReplicationControllerSpecApplyConfiguration represents a declarative configuration of the ReplicationControllerSpec type for use\n// with apply.\ntype ReplicationControllerSpecApplyConfiguration struct {\n\tReplicas        *int32                             `json:\"replicas,omitempty\"`\n\tMinReadySeconds *int32                             `json:\"minReadySeconds,omitempty\"`\n\tSelector        map[string]string                  `json:\"selector,omitempty\"`\n\tTemplate        *PodTemplateSpecApplyConfiguration `json:\"template,omitempty\"`\n}\n\n// ReplicationControllerSpecApplyConfiguration constructs a declarative configuration of the ReplicationControllerSpec type for use with\n// apply.\nfunc ReplicationControllerSpec() *ReplicationControllerSpecApplyConfiguration {\n\treturn &ReplicationControllerSpecApplyConfiguration{}\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *ReplicationControllerSpecApplyConfiguration) WithReplicas(value int32) *ReplicationControllerSpecApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithMinReadySeconds sets the MinReadySeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MinReadySeconds field is set to the value of the last call.\nfunc (b *ReplicationControllerSpecApplyConfiguration) WithMinReadySeconds(value int32) *ReplicationControllerSpecApplyConfiguration {\n\tb.MinReadySeconds = &value\n\treturn b\n}\n\n// WithSelector puts the entries into the Selector field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Selector field,\n// overwriting an existing map entries in Selector field with the same key.\nfunc (b *ReplicationControllerSpecApplyConfiguration) WithSelector(entries map[string]string) *ReplicationControllerSpecApplyConfiguration {\n\tif b.Selector == nil && len(entries) > 0 {\n\t\tb.Selector = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Selector[k] = v\n\t}\n\treturn b\n}\n\n// WithTemplate sets the Template field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Template field is set to the value of the last call.\nfunc (b *ReplicationControllerSpecApplyConfiguration) WithTemplate(value *PodTemplateSpecApplyConfiguration) *ReplicationControllerSpecApplyConfiguration {\n\tb.Template = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/replicationcontrollerstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ReplicationControllerStatusApplyConfiguration represents a declarative configuration of the ReplicationControllerStatus type for use\n// with apply.\ntype ReplicationControllerStatusApplyConfiguration struct {\n\tReplicas             *int32                                             `json:\"replicas,omitempty\"`\n\tFullyLabeledReplicas *int32                                             `json:\"fullyLabeledReplicas,omitempty\"`\n\tReadyReplicas        *int32                                             `json:\"readyReplicas,omitempty\"`\n\tAvailableReplicas    *int32                                             `json:\"availableReplicas,omitempty\"`\n\tObservedGeneration   *int64                                             `json:\"observedGeneration,omitempty\"`\n\tConditions           []ReplicationControllerConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// ReplicationControllerStatusApplyConfiguration constructs a declarative configuration of the ReplicationControllerStatus type for use with\n// apply.\nfunc ReplicationControllerStatus() *ReplicationControllerStatusApplyConfiguration {\n\treturn &ReplicationControllerStatusApplyConfiguration{}\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *ReplicationControllerStatusApplyConfiguration) WithReplicas(value int32) *ReplicationControllerStatusApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithFullyLabeledReplicas sets the FullyLabeledReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FullyLabeledReplicas field is set to the value of the last call.\nfunc (b *ReplicationControllerStatusApplyConfiguration) WithFullyLabeledReplicas(value int32) *ReplicationControllerStatusApplyConfiguration {\n\tb.FullyLabeledReplicas = &value\n\treturn b\n}\n\n// WithReadyReplicas sets the ReadyReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadyReplicas field is set to the value of the last call.\nfunc (b *ReplicationControllerStatusApplyConfiguration) WithReadyReplicas(value int32) *ReplicationControllerStatusApplyConfiguration {\n\tb.ReadyReplicas = &value\n\treturn b\n}\n\n// WithAvailableReplicas sets the AvailableReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AvailableReplicas field is set to the value of the last call.\nfunc (b *ReplicationControllerStatusApplyConfiguration) WithAvailableReplicas(value int32) *ReplicationControllerStatusApplyConfiguration {\n\tb.AvailableReplicas = &value\n\treturn b\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *ReplicationControllerStatusApplyConfiguration) WithObservedGeneration(value int64) *ReplicationControllerStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *ReplicationControllerStatusApplyConfiguration) WithConditions(values ...*ReplicationControllerConditionApplyConfiguration) *ReplicationControllerStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/resourceclaim.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ResourceClaimApplyConfiguration represents a declarative configuration of the ResourceClaim type for use\n// with apply.\ntype ResourceClaimApplyConfiguration struct {\n\tName    *string `json:\"name,omitempty\"`\n\tRequest *string `json:\"request,omitempty\"`\n}\n\n// ResourceClaimApplyConfiguration constructs a declarative configuration of the ResourceClaim type for use with\n// apply.\nfunc ResourceClaim() *ResourceClaimApplyConfiguration {\n\treturn &ResourceClaimApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ResourceClaimApplyConfiguration) WithName(value string) *ResourceClaimApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithRequest sets the Request field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Request field is set to the value of the last call.\nfunc (b *ResourceClaimApplyConfiguration) WithRequest(value string) *ResourceClaimApplyConfiguration {\n\tb.Request = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/resourcefieldselector.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n)\n\n// ResourceFieldSelectorApplyConfiguration represents a declarative configuration of the ResourceFieldSelector type for use\n// with apply.\ntype ResourceFieldSelectorApplyConfiguration struct {\n\tContainerName *string            `json:\"containerName,omitempty\"`\n\tResource      *string            `json:\"resource,omitempty\"`\n\tDivisor       *resource.Quantity `json:\"divisor,omitempty\"`\n}\n\n// ResourceFieldSelectorApplyConfiguration constructs a declarative configuration of the ResourceFieldSelector type for use with\n// apply.\nfunc ResourceFieldSelector() *ResourceFieldSelectorApplyConfiguration {\n\treturn &ResourceFieldSelectorApplyConfiguration{}\n}\n\n// WithContainerName sets the ContainerName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ContainerName field is set to the value of the last call.\nfunc (b *ResourceFieldSelectorApplyConfiguration) WithContainerName(value string) *ResourceFieldSelectorApplyConfiguration {\n\tb.ContainerName = &value\n\treturn b\n}\n\n// WithResource sets the Resource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Resource field is set to the value of the last call.\nfunc (b *ResourceFieldSelectorApplyConfiguration) WithResource(value string) *ResourceFieldSelectorApplyConfiguration {\n\tb.Resource = &value\n\treturn b\n}\n\n// WithDivisor sets the Divisor field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Divisor field is set to the value of the last call.\nfunc (b *ResourceFieldSelectorApplyConfiguration) WithDivisor(value resource.Quantity) *ResourceFieldSelectorApplyConfiguration {\n\tb.Divisor = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/resourcehealth.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// ResourceHealthApplyConfiguration represents a declarative configuration of the ResourceHealth type for use\n// with apply.\ntype ResourceHealthApplyConfiguration struct {\n\tResourceID *corev1.ResourceID           `json:\"resourceID,omitempty\"`\n\tHealth     *corev1.ResourceHealthStatus `json:\"health,omitempty\"`\n}\n\n// ResourceHealthApplyConfiguration constructs a declarative configuration of the ResourceHealth type for use with\n// apply.\nfunc ResourceHealth() *ResourceHealthApplyConfiguration {\n\treturn &ResourceHealthApplyConfiguration{}\n}\n\n// WithResourceID sets the ResourceID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceID field is set to the value of the last call.\nfunc (b *ResourceHealthApplyConfiguration) WithResourceID(value corev1.ResourceID) *ResourceHealthApplyConfiguration {\n\tb.ResourceID = &value\n\treturn b\n}\n\n// WithHealth sets the Health field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Health field is set to the value of the last call.\nfunc (b *ResourceHealthApplyConfiguration) WithHealth(value corev1.ResourceHealthStatus) *ResourceHealthApplyConfiguration {\n\tb.Health = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/resourcequota.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ResourceQuotaApplyConfiguration represents a declarative configuration of the ResourceQuota type for use\n// with apply.\ntype ResourceQuotaApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                                 *ResourceQuotaSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                               *ResourceQuotaStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// ResourceQuota constructs a declarative configuration of the ResourceQuota type for use with\n// apply.\nfunc ResourceQuota(name, namespace string) *ResourceQuotaApplyConfiguration {\n\tb := &ResourceQuotaApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"ResourceQuota\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b\n}\n\n// ExtractResourceQuota extracts the applied configuration owned by fieldManager from\n// resourceQuota. If no managedFields are found in resourceQuota for fieldManager, a\n// ResourceQuotaApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// resourceQuota must be a unmodified ResourceQuota API object that was retrieved from the Kubernetes API.\n// ExtractResourceQuota provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractResourceQuota(resourceQuota *corev1.ResourceQuota, fieldManager string) (*ResourceQuotaApplyConfiguration, error) {\n\treturn extractResourceQuota(resourceQuota, fieldManager, \"\")\n}\n\n// ExtractResourceQuotaStatus is the same as ExtractResourceQuota except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractResourceQuotaStatus(resourceQuota *corev1.ResourceQuota, fieldManager string) (*ResourceQuotaApplyConfiguration, error) {\n\treturn extractResourceQuota(resourceQuota, fieldManager, \"status\")\n}\n\nfunc extractResourceQuota(resourceQuota *corev1.ResourceQuota, fieldManager string, subresource string) (*ResourceQuotaApplyConfiguration, error) {\n\tb := &ResourceQuotaApplyConfiguration{}\n\terr := managedfields.ExtractInto(resourceQuota, internal.Parser().Type(\"io.k8s.api.core.v1.ResourceQuota\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(resourceQuota.Name)\n\tb.WithNamespace(resourceQuota.Namespace)\n\n\tb.WithKind(\"ResourceQuota\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ResourceQuotaApplyConfiguration) WithKind(value string) *ResourceQuotaApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ResourceQuotaApplyConfiguration) WithAPIVersion(value string) *ResourceQuotaApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ResourceQuotaApplyConfiguration) WithName(value string) *ResourceQuotaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ResourceQuotaApplyConfiguration) WithGenerateName(value string) *ResourceQuotaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ResourceQuotaApplyConfiguration) WithNamespace(value string) *ResourceQuotaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ResourceQuotaApplyConfiguration) WithUID(value types.UID) *ResourceQuotaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ResourceQuotaApplyConfiguration) WithResourceVersion(value string) *ResourceQuotaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ResourceQuotaApplyConfiguration) WithGeneration(value int64) *ResourceQuotaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ResourceQuotaApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *ResourceQuotaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ResourceQuotaApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *ResourceQuotaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ResourceQuotaApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ResourceQuotaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ResourceQuotaApplyConfiguration) WithLabels(entries map[string]string) *ResourceQuotaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ResourceQuotaApplyConfiguration) WithAnnotations(entries map[string]string) *ResourceQuotaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ResourceQuotaApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *ResourceQuotaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ResourceQuotaApplyConfiguration) WithFinalizers(values ...string) *ResourceQuotaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ResourceQuotaApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *ResourceQuotaApplyConfiguration) WithSpec(value *ResourceQuotaSpecApplyConfiguration) *ResourceQuotaApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *ResourceQuotaApplyConfiguration) WithStatus(value *ResourceQuotaStatusApplyConfiguration) *ResourceQuotaApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *ResourceQuotaApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/resourcequotaspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// ResourceQuotaSpecApplyConfiguration represents a declarative configuration of the ResourceQuotaSpec type for use\n// with apply.\ntype ResourceQuotaSpecApplyConfiguration struct {\n\tHard          *corev1.ResourceList             `json:\"hard,omitempty\"`\n\tScopes        []corev1.ResourceQuotaScope      `json:\"scopes,omitempty\"`\n\tScopeSelector *ScopeSelectorApplyConfiguration `json:\"scopeSelector,omitempty\"`\n}\n\n// ResourceQuotaSpecApplyConfiguration constructs a declarative configuration of the ResourceQuotaSpec type for use with\n// apply.\nfunc ResourceQuotaSpec() *ResourceQuotaSpecApplyConfiguration {\n\treturn &ResourceQuotaSpecApplyConfiguration{}\n}\n\n// WithHard sets the Hard field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Hard field is set to the value of the last call.\nfunc (b *ResourceQuotaSpecApplyConfiguration) WithHard(value corev1.ResourceList) *ResourceQuotaSpecApplyConfiguration {\n\tb.Hard = &value\n\treturn b\n}\n\n// WithScopes adds the given value to the Scopes field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Scopes field.\nfunc (b *ResourceQuotaSpecApplyConfiguration) WithScopes(values ...corev1.ResourceQuotaScope) *ResourceQuotaSpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.Scopes = append(b.Scopes, values[i])\n\t}\n\treturn b\n}\n\n// WithScopeSelector sets the ScopeSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ScopeSelector field is set to the value of the last call.\nfunc (b *ResourceQuotaSpecApplyConfiguration) WithScopeSelector(value *ScopeSelectorApplyConfiguration) *ResourceQuotaSpecApplyConfiguration {\n\tb.ScopeSelector = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/resourcequotastatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// ResourceQuotaStatusApplyConfiguration represents a declarative configuration of the ResourceQuotaStatus type for use\n// with apply.\ntype ResourceQuotaStatusApplyConfiguration struct {\n\tHard *corev1.ResourceList `json:\"hard,omitempty\"`\n\tUsed *corev1.ResourceList `json:\"used,omitempty\"`\n}\n\n// ResourceQuotaStatusApplyConfiguration constructs a declarative configuration of the ResourceQuotaStatus type for use with\n// apply.\nfunc ResourceQuotaStatus() *ResourceQuotaStatusApplyConfiguration {\n\treturn &ResourceQuotaStatusApplyConfiguration{}\n}\n\n// WithHard sets the Hard field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Hard field is set to the value of the last call.\nfunc (b *ResourceQuotaStatusApplyConfiguration) WithHard(value corev1.ResourceList) *ResourceQuotaStatusApplyConfiguration {\n\tb.Hard = &value\n\treturn b\n}\n\n// WithUsed sets the Used field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Used field is set to the value of the last call.\nfunc (b *ResourceQuotaStatusApplyConfiguration) WithUsed(value corev1.ResourceList) *ResourceQuotaStatusApplyConfiguration {\n\tb.Used = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/resourcerequirements.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// ResourceRequirementsApplyConfiguration represents a declarative configuration of the ResourceRequirements type for use\n// with apply.\ntype ResourceRequirementsApplyConfiguration struct {\n\tLimits   *corev1.ResourceList              `json:\"limits,omitempty\"`\n\tRequests *corev1.ResourceList              `json:\"requests,omitempty\"`\n\tClaims   []ResourceClaimApplyConfiguration `json:\"claims,omitempty\"`\n}\n\n// ResourceRequirementsApplyConfiguration constructs a declarative configuration of the ResourceRequirements type for use with\n// apply.\nfunc ResourceRequirements() *ResourceRequirementsApplyConfiguration {\n\treturn &ResourceRequirementsApplyConfiguration{}\n}\n\n// WithLimits sets the Limits field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Limits field is set to the value of the last call.\nfunc (b *ResourceRequirementsApplyConfiguration) WithLimits(value corev1.ResourceList) *ResourceRequirementsApplyConfiguration {\n\tb.Limits = &value\n\treturn b\n}\n\n// WithRequests sets the Requests field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Requests field is set to the value of the last call.\nfunc (b *ResourceRequirementsApplyConfiguration) WithRequests(value corev1.ResourceList) *ResourceRequirementsApplyConfiguration {\n\tb.Requests = &value\n\treturn b\n}\n\n// WithClaims adds the given value to the Claims field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Claims field.\nfunc (b *ResourceRequirementsApplyConfiguration) WithClaims(values ...*ResourceClaimApplyConfiguration) *ResourceRequirementsApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithClaims\")\n\t\t}\n\t\tb.Claims = append(b.Claims, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/resourcestatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// ResourceStatusApplyConfiguration represents a declarative configuration of the ResourceStatus type for use\n// with apply.\ntype ResourceStatusApplyConfiguration struct {\n\tName      *corev1.ResourceName               `json:\"name,omitempty\"`\n\tResources []ResourceHealthApplyConfiguration `json:\"resources,omitempty\"`\n}\n\n// ResourceStatusApplyConfiguration constructs a declarative configuration of the ResourceStatus type for use with\n// apply.\nfunc ResourceStatus() *ResourceStatusApplyConfiguration {\n\treturn &ResourceStatusApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ResourceStatusApplyConfiguration) WithName(value corev1.ResourceName) *ResourceStatusApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithResources adds the given value to the Resources field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Resources field.\nfunc (b *ResourceStatusApplyConfiguration) WithResources(values ...*ResourceHealthApplyConfiguration) *ResourceStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithResources\")\n\t\t}\n\t\tb.Resources = append(b.Resources, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/scaleiopersistentvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ScaleIOPersistentVolumeSourceApplyConfiguration represents a declarative configuration of the ScaleIOPersistentVolumeSource type for use\n// with apply.\ntype ScaleIOPersistentVolumeSourceApplyConfiguration struct {\n\tGateway          *string                            `json:\"gateway,omitempty\"`\n\tSystem           *string                            `json:\"system,omitempty\"`\n\tSecretRef        *SecretReferenceApplyConfiguration `json:\"secretRef,omitempty\"`\n\tSSLEnabled       *bool                              `json:\"sslEnabled,omitempty\"`\n\tProtectionDomain *string                            `json:\"protectionDomain,omitempty\"`\n\tStoragePool      *string                            `json:\"storagePool,omitempty\"`\n\tStorageMode      *string                            `json:\"storageMode,omitempty\"`\n\tVolumeName       *string                            `json:\"volumeName,omitempty\"`\n\tFSType           *string                            `json:\"fsType,omitempty\"`\n\tReadOnly         *bool                              `json:\"readOnly,omitempty\"`\n}\n\n// ScaleIOPersistentVolumeSourceApplyConfiguration constructs a declarative configuration of the ScaleIOPersistentVolumeSource type for use with\n// apply.\nfunc ScaleIOPersistentVolumeSource() *ScaleIOPersistentVolumeSourceApplyConfiguration {\n\treturn &ScaleIOPersistentVolumeSourceApplyConfiguration{}\n}\n\n// WithGateway sets the Gateway field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Gateway field is set to the value of the last call.\nfunc (b *ScaleIOPersistentVolumeSourceApplyConfiguration) WithGateway(value string) *ScaleIOPersistentVolumeSourceApplyConfiguration {\n\tb.Gateway = &value\n\treturn b\n}\n\n// WithSystem sets the System field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the System field is set to the value of the last call.\nfunc (b *ScaleIOPersistentVolumeSourceApplyConfiguration) WithSystem(value string) *ScaleIOPersistentVolumeSourceApplyConfiguration {\n\tb.System = &value\n\treturn b\n}\n\n// WithSecretRef sets the SecretRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretRef field is set to the value of the last call.\nfunc (b *ScaleIOPersistentVolumeSourceApplyConfiguration) WithSecretRef(value *SecretReferenceApplyConfiguration) *ScaleIOPersistentVolumeSourceApplyConfiguration {\n\tb.SecretRef = value\n\treturn b\n}\n\n// WithSSLEnabled sets the SSLEnabled field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SSLEnabled field is set to the value of the last call.\nfunc (b *ScaleIOPersistentVolumeSourceApplyConfiguration) WithSSLEnabled(value bool) *ScaleIOPersistentVolumeSourceApplyConfiguration {\n\tb.SSLEnabled = &value\n\treturn b\n}\n\n// WithProtectionDomain sets the ProtectionDomain field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ProtectionDomain field is set to the value of the last call.\nfunc (b *ScaleIOPersistentVolumeSourceApplyConfiguration) WithProtectionDomain(value string) *ScaleIOPersistentVolumeSourceApplyConfiguration {\n\tb.ProtectionDomain = &value\n\treturn b\n}\n\n// WithStoragePool sets the StoragePool field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StoragePool field is set to the value of the last call.\nfunc (b *ScaleIOPersistentVolumeSourceApplyConfiguration) WithStoragePool(value string) *ScaleIOPersistentVolumeSourceApplyConfiguration {\n\tb.StoragePool = &value\n\treturn b\n}\n\n// WithStorageMode sets the StorageMode field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StorageMode field is set to the value of the last call.\nfunc (b *ScaleIOPersistentVolumeSourceApplyConfiguration) WithStorageMode(value string) *ScaleIOPersistentVolumeSourceApplyConfiguration {\n\tb.StorageMode = &value\n\treturn b\n}\n\n// WithVolumeName sets the VolumeName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VolumeName field is set to the value of the last call.\nfunc (b *ScaleIOPersistentVolumeSourceApplyConfiguration) WithVolumeName(value string) *ScaleIOPersistentVolumeSourceApplyConfiguration {\n\tb.VolumeName = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *ScaleIOPersistentVolumeSourceApplyConfiguration) WithFSType(value string) *ScaleIOPersistentVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *ScaleIOPersistentVolumeSourceApplyConfiguration) WithReadOnly(value bool) *ScaleIOPersistentVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/scaleiovolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ScaleIOVolumeSourceApplyConfiguration represents a declarative configuration of the ScaleIOVolumeSource type for use\n// with apply.\ntype ScaleIOVolumeSourceApplyConfiguration struct {\n\tGateway          *string                                 `json:\"gateway,omitempty\"`\n\tSystem           *string                                 `json:\"system,omitempty\"`\n\tSecretRef        *LocalObjectReferenceApplyConfiguration `json:\"secretRef,omitempty\"`\n\tSSLEnabled       *bool                                   `json:\"sslEnabled,omitempty\"`\n\tProtectionDomain *string                                 `json:\"protectionDomain,omitempty\"`\n\tStoragePool      *string                                 `json:\"storagePool,omitempty\"`\n\tStorageMode      *string                                 `json:\"storageMode,omitempty\"`\n\tVolumeName       *string                                 `json:\"volumeName,omitempty\"`\n\tFSType           *string                                 `json:\"fsType,omitempty\"`\n\tReadOnly         *bool                                   `json:\"readOnly,omitempty\"`\n}\n\n// ScaleIOVolumeSourceApplyConfiguration constructs a declarative configuration of the ScaleIOVolumeSource type for use with\n// apply.\nfunc ScaleIOVolumeSource() *ScaleIOVolumeSourceApplyConfiguration {\n\treturn &ScaleIOVolumeSourceApplyConfiguration{}\n}\n\n// WithGateway sets the Gateway field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Gateway field is set to the value of the last call.\nfunc (b *ScaleIOVolumeSourceApplyConfiguration) WithGateway(value string) *ScaleIOVolumeSourceApplyConfiguration {\n\tb.Gateway = &value\n\treturn b\n}\n\n// WithSystem sets the System field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the System field is set to the value of the last call.\nfunc (b *ScaleIOVolumeSourceApplyConfiguration) WithSystem(value string) *ScaleIOVolumeSourceApplyConfiguration {\n\tb.System = &value\n\treturn b\n}\n\n// WithSecretRef sets the SecretRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretRef field is set to the value of the last call.\nfunc (b *ScaleIOVolumeSourceApplyConfiguration) WithSecretRef(value *LocalObjectReferenceApplyConfiguration) *ScaleIOVolumeSourceApplyConfiguration {\n\tb.SecretRef = value\n\treturn b\n}\n\n// WithSSLEnabled sets the SSLEnabled field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SSLEnabled field is set to the value of the last call.\nfunc (b *ScaleIOVolumeSourceApplyConfiguration) WithSSLEnabled(value bool) *ScaleIOVolumeSourceApplyConfiguration {\n\tb.SSLEnabled = &value\n\treturn b\n}\n\n// WithProtectionDomain sets the ProtectionDomain field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ProtectionDomain field is set to the value of the last call.\nfunc (b *ScaleIOVolumeSourceApplyConfiguration) WithProtectionDomain(value string) *ScaleIOVolumeSourceApplyConfiguration {\n\tb.ProtectionDomain = &value\n\treturn b\n}\n\n// WithStoragePool sets the StoragePool field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StoragePool field is set to the value of the last call.\nfunc (b *ScaleIOVolumeSourceApplyConfiguration) WithStoragePool(value string) *ScaleIOVolumeSourceApplyConfiguration {\n\tb.StoragePool = &value\n\treturn b\n}\n\n// WithStorageMode sets the StorageMode field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StorageMode field is set to the value of the last call.\nfunc (b *ScaleIOVolumeSourceApplyConfiguration) WithStorageMode(value string) *ScaleIOVolumeSourceApplyConfiguration {\n\tb.StorageMode = &value\n\treturn b\n}\n\n// WithVolumeName sets the VolumeName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VolumeName field is set to the value of the last call.\nfunc (b *ScaleIOVolumeSourceApplyConfiguration) WithVolumeName(value string) *ScaleIOVolumeSourceApplyConfiguration {\n\tb.VolumeName = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *ScaleIOVolumeSourceApplyConfiguration) WithFSType(value string) *ScaleIOVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *ScaleIOVolumeSourceApplyConfiguration) WithReadOnly(value bool) *ScaleIOVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/scopedresourceselectorrequirement.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// ScopedResourceSelectorRequirementApplyConfiguration represents a declarative configuration of the ScopedResourceSelectorRequirement type for use\n// with apply.\ntype ScopedResourceSelectorRequirementApplyConfiguration struct {\n\tScopeName *corev1.ResourceQuotaScope    `json:\"scopeName,omitempty\"`\n\tOperator  *corev1.ScopeSelectorOperator `json:\"operator,omitempty\"`\n\tValues    []string                      `json:\"values,omitempty\"`\n}\n\n// ScopedResourceSelectorRequirementApplyConfiguration constructs a declarative configuration of the ScopedResourceSelectorRequirement type for use with\n// apply.\nfunc ScopedResourceSelectorRequirement() *ScopedResourceSelectorRequirementApplyConfiguration {\n\treturn &ScopedResourceSelectorRequirementApplyConfiguration{}\n}\n\n// WithScopeName sets the ScopeName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ScopeName field is set to the value of the last call.\nfunc (b *ScopedResourceSelectorRequirementApplyConfiguration) WithScopeName(value corev1.ResourceQuotaScope) *ScopedResourceSelectorRequirementApplyConfiguration {\n\tb.ScopeName = &value\n\treturn b\n}\n\n// WithOperator sets the Operator field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Operator field is set to the value of the last call.\nfunc (b *ScopedResourceSelectorRequirementApplyConfiguration) WithOperator(value corev1.ScopeSelectorOperator) *ScopedResourceSelectorRequirementApplyConfiguration {\n\tb.Operator = &value\n\treturn b\n}\n\n// WithValues adds the given value to the Values field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Values field.\nfunc (b *ScopedResourceSelectorRequirementApplyConfiguration) WithValues(values ...string) *ScopedResourceSelectorRequirementApplyConfiguration {\n\tfor i := range values {\n\t\tb.Values = append(b.Values, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/scopeselector.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ScopeSelectorApplyConfiguration represents a declarative configuration of the ScopeSelector type for use\n// with apply.\ntype ScopeSelectorApplyConfiguration struct {\n\tMatchExpressions []ScopedResourceSelectorRequirementApplyConfiguration `json:\"matchExpressions,omitempty\"`\n}\n\n// ScopeSelectorApplyConfiguration constructs a declarative configuration of the ScopeSelector type for use with\n// apply.\nfunc ScopeSelector() *ScopeSelectorApplyConfiguration {\n\treturn &ScopeSelectorApplyConfiguration{}\n}\n\n// WithMatchExpressions adds the given value to the MatchExpressions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the MatchExpressions field.\nfunc (b *ScopeSelectorApplyConfiguration) WithMatchExpressions(values ...*ScopedResourceSelectorRequirementApplyConfiguration) *ScopeSelectorApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithMatchExpressions\")\n\t\t}\n\t\tb.MatchExpressions = append(b.MatchExpressions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/seccompprofile.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// SeccompProfileApplyConfiguration represents a declarative configuration of the SeccompProfile type for use\n// with apply.\ntype SeccompProfileApplyConfiguration struct {\n\tType             *corev1.SeccompProfileType `json:\"type,omitempty\"`\n\tLocalhostProfile *string                    `json:\"localhostProfile,omitempty\"`\n}\n\n// SeccompProfileApplyConfiguration constructs a declarative configuration of the SeccompProfile type for use with\n// apply.\nfunc SeccompProfile() *SeccompProfileApplyConfiguration {\n\treturn &SeccompProfileApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *SeccompProfileApplyConfiguration) WithType(value corev1.SeccompProfileType) *SeccompProfileApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithLocalhostProfile sets the LocalhostProfile field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LocalhostProfile field is set to the value of the last call.\nfunc (b *SeccompProfileApplyConfiguration) WithLocalhostProfile(value string) *SeccompProfileApplyConfiguration {\n\tb.LocalhostProfile = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/secret.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// SecretApplyConfiguration represents a declarative configuration of the Secret type for use\n// with apply.\ntype SecretApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tImmutable                            *bool              `json:\"immutable,omitempty\"`\n\tData                                 map[string][]byte  `json:\"data,omitempty\"`\n\tStringData                           map[string]string  `json:\"stringData,omitempty\"`\n\tType                                 *corev1.SecretType `json:\"type,omitempty\"`\n}\n\n// Secret constructs a declarative configuration of the Secret type for use with\n// apply.\nfunc Secret(name, namespace string) *SecretApplyConfiguration {\n\tb := &SecretApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Secret\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b\n}\n\n// ExtractSecret extracts the applied configuration owned by fieldManager from\n// secret. If no managedFields are found in secret for fieldManager, a\n// SecretApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// secret must be a unmodified Secret API object that was retrieved from the Kubernetes API.\n// ExtractSecret provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractSecret(secret *corev1.Secret, fieldManager string) (*SecretApplyConfiguration, error) {\n\treturn extractSecret(secret, fieldManager, \"\")\n}\n\n// ExtractSecretStatus is the same as ExtractSecret except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractSecretStatus(secret *corev1.Secret, fieldManager string) (*SecretApplyConfiguration, error) {\n\treturn extractSecret(secret, fieldManager, \"status\")\n}\n\nfunc extractSecret(secret *corev1.Secret, fieldManager string, subresource string) (*SecretApplyConfiguration, error) {\n\tb := &SecretApplyConfiguration{}\n\terr := managedfields.ExtractInto(secret, internal.Parser().Type(\"io.k8s.api.core.v1.Secret\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(secret.Name)\n\tb.WithNamespace(secret.Namespace)\n\n\tb.WithKind(\"Secret\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *SecretApplyConfiguration) WithKind(value string) *SecretApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *SecretApplyConfiguration) WithAPIVersion(value string) *SecretApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *SecretApplyConfiguration) WithName(value string) *SecretApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *SecretApplyConfiguration) WithGenerateName(value string) *SecretApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *SecretApplyConfiguration) WithNamespace(value string) *SecretApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *SecretApplyConfiguration) WithUID(value types.UID) *SecretApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *SecretApplyConfiguration) WithResourceVersion(value string) *SecretApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *SecretApplyConfiguration) WithGeneration(value int64) *SecretApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *SecretApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *SecretApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *SecretApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *SecretApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *SecretApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *SecretApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *SecretApplyConfiguration) WithLabels(entries map[string]string) *SecretApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *SecretApplyConfiguration) WithAnnotations(entries map[string]string) *SecretApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *SecretApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *SecretApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *SecretApplyConfiguration) WithFinalizers(values ...string) *SecretApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *SecretApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithImmutable sets the Immutable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Immutable field is set to the value of the last call.\nfunc (b *SecretApplyConfiguration) WithImmutable(value bool) *SecretApplyConfiguration {\n\tb.Immutable = &value\n\treturn b\n}\n\n// WithData puts the entries into the Data field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Data field,\n// overwriting an existing map entries in Data field with the same key.\nfunc (b *SecretApplyConfiguration) WithData(entries map[string][]byte) *SecretApplyConfiguration {\n\tif b.Data == nil && len(entries) > 0 {\n\t\tb.Data = make(map[string][]byte, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Data[k] = v\n\t}\n\treturn b\n}\n\n// WithStringData puts the entries into the StringData field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the StringData field,\n// overwriting an existing map entries in StringData field with the same key.\nfunc (b *SecretApplyConfiguration) WithStringData(entries map[string]string) *SecretApplyConfiguration {\n\tif b.StringData == nil && len(entries) > 0 {\n\t\tb.StringData = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.StringData[k] = v\n\t}\n\treturn b\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *SecretApplyConfiguration) WithType(value corev1.SecretType) *SecretApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *SecretApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/secretenvsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// SecretEnvSourceApplyConfiguration represents a declarative configuration of the SecretEnvSource type for use\n// with apply.\ntype SecretEnvSourceApplyConfiguration struct {\n\tLocalObjectReferenceApplyConfiguration `json:\",inline\"`\n\tOptional                               *bool `json:\"optional,omitempty\"`\n}\n\n// SecretEnvSourceApplyConfiguration constructs a declarative configuration of the SecretEnvSource type for use with\n// apply.\nfunc SecretEnvSource() *SecretEnvSourceApplyConfiguration {\n\treturn &SecretEnvSourceApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *SecretEnvSourceApplyConfiguration) WithName(value string) *SecretEnvSourceApplyConfiguration {\n\tb.LocalObjectReferenceApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithOptional sets the Optional field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Optional field is set to the value of the last call.\nfunc (b *SecretEnvSourceApplyConfiguration) WithOptional(value bool) *SecretEnvSourceApplyConfiguration {\n\tb.Optional = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/secretkeyselector.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// SecretKeySelectorApplyConfiguration represents a declarative configuration of the SecretKeySelector type for use\n// with apply.\ntype SecretKeySelectorApplyConfiguration struct {\n\tLocalObjectReferenceApplyConfiguration `json:\",inline\"`\n\tKey                                    *string `json:\"key,omitempty\"`\n\tOptional                               *bool   `json:\"optional,omitempty\"`\n}\n\n// SecretKeySelectorApplyConfiguration constructs a declarative configuration of the SecretKeySelector type for use with\n// apply.\nfunc SecretKeySelector() *SecretKeySelectorApplyConfiguration {\n\treturn &SecretKeySelectorApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *SecretKeySelectorApplyConfiguration) WithName(value string) *SecretKeySelectorApplyConfiguration {\n\tb.LocalObjectReferenceApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithKey sets the Key field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Key field is set to the value of the last call.\nfunc (b *SecretKeySelectorApplyConfiguration) WithKey(value string) *SecretKeySelectorApplyConfiguration {\n\tb.Key = &value\n\treturn b\n}\n\n// WithOptional sets the Optional field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Optional field is set to the value of the last call.\nfunc (b *SecretKeySelectorApplyConfiguration) WithOptional(value bool) *SecretKeySelectorApplyConfiguration {\n\tb.Optional = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/secretprojection.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// SecretProjectionApplyConfiguration represents a declarative configuration of the SecretProjection type for use\n// with apply.\ntype SecretProjectionApplyConfiguration struct {\n\tLocalObjectReferenceApplyConfiguration `json:\",inline\"`\n\tItems                                  []KeyToPathApplyConfiguration `json:\"items,omitempty\"`\n\tOptional                               *bool                         `json:\"optional,omitempty\"`\n}\n\n// SecretProjectionApplyConfiguration constructs a declarative configuration of the SecretProjection type for use with\n// apply.\nfunc SecretProjection() *SecretProjectionApplyConfiguration {\n\treturn &SecretProjectionApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *SecretProjectionApplyConfiguration) WithName(value string) *SecretProjectionApplyConfiguration {\n\tb.LocalObjectReferenceApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithItems adds the given value to the Items field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Items field.\nfunc (b *SecretProjectionApplyConfiguration) WithItems(values ...*KeyToPathApplyConfiguration) *SecretProjectionApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithItems\")\n\t\t}\n\t\tb.Items = append(b.Items, *values[i])\n\t}\n\treturn b\n}\n\n// WithOptional sets the Optional field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Optional field is set to the value of the last call.\nfunc (b *SecretProjectionApplyConfiguration) WithOptional(value bool) *SecretProjectionApplyConfiguration {\n\tb.Optional = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/secretreference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// SecretReferenceApplyConfiguration represents a declarative configuration of the SecretReference type for use\n// with apply.\ntype SecretReferenceApplyConfiguration struct {\n\tName      *string `json:\"name,omitempty\"`\n\tNamespace *string `json:\"namespace,omitempty\"`\n}\n\n// SecretReferenceApplyConfiguration constructs a declarative configuration of the SecretReference type for use with\n// apply.\nfunc SecretReference() *SecretReferenceApplyConfiguration {\n\treturn &SecretReferenceApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *SecretReferenceApplyConfiguration) WithName(value string) *SecretReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *SecretReferenceApplyConfiguration) WithNamespace(value string) *SecretReferenceApplyConfiguration {\n\tb.Namespace = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/secretvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// SecretVolumeSourceApplyConfiguration represents a declarative configuration of the SecretVolumeSource type for use\n// with apply.\ntype SecretVolumeSourceApplyConfiguration struct {\n\tSecretName  *string                       `json:\"secretName,omitempty\"`\n\tItems       []KeyToPathApplyConfiguration `json:\"items,omitempty\"`\n\tDefaultMode *int32                        `json:\"defaultMode,omitempty\"`\n\tOptional    *bool                         `json:\"optional,omitempty\"`\n}\n\n// SecretVolumeSourceApplyConfiguration constructs a declarative configuration of the SecretVolumeSource type for use with\n// apply.\nfunc SecretVolumeSource() *SecretVolumeSourceApplyConfiguration {\n\treturn &SecretVolumeSourceApplyConfiguration{}\n}\n\n// WithSecretName sets the SecretName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretName field is set to the value of the last call.\nfunc (b *SecretVolumeSourceApplyConfiguration) WithSecretName(value string) *SecretVolumeSourceApplyConfiguration {\n\tb.SecretName = &value\n\treturn b\n}\n\n// WithItems adds the given value to the Items field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Items field.\nfunc (b *SecretVolumeSourceApplyConfiguration) WithItems(values ...*KeyToPathApplyConfiguration) *SecretVolumeSourceApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithItems\")\n\t\t}\n\t\tb.Items = append(b.Items, *values[i])\n\t}\n\treturn b\n}\n\n// WithDefaultMode sets the DefaultMode field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DefaultMode field is set to the value of the last call.\nfunc (b *SecretVolumeSourceApplyConfiguration) WithDefaultMode(value int32) *SecretVolumeSourceApplyConfiguration {\n\tb.DefaultMode = &value\n\treturn b\n}\n\n// WithOptional sets the Optional field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Optional field is set to the value of the last call.\nfunc (b *SecretVolumeSourceApplyConfiguration) WithOptional(value bool) *SecretVolumeSourceApplyConfiguration {\n\tb.Optional = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/securitycontext.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// SecurityContextApplyConfiguration represents a declarative configuration of the SecurityContext type for use\n// with apply.\ntype SecurityContextApplyConfiguration struct {\n\tCapabilities             *CapabilitiesApplyConfiguration                  `json:\"capabilities,omitempty\"`\n\tPrivileged               *bool                                            `json:\"privileged,omitempty\"`\n\tSELinuxOptions           *SELinuxOptionsApplyConfiguration                `json:\"seLinuxOptions,omitempty\"`\n\tWindowsOptions           *WindowsSecurityContextOptionsApplyConfiguration `json:\"windowsOptions,omitempty\"`\n\tRunAsUser                *int64                                           `json:\"runAsUser,omitempty\"`\n\tRunAsGroup               *int64                                           `json:\"runAsGroup,omitempty\"`\n\tRunAsNonRoot             *bool                                            `json:\"runAsNonRoot,omitempty\"`\n\tReadOnlyRootFilesystem   *bool                                            `json:\"readOnlyRootFilesystem,omitempty\"`\n\tAllowPrivilegeEscalation *bool                                            `json:\"allowPrivilegeEscalation,omitempty\"`\n\tProcMount                *corev1.ProcMountType                            `json:\"procMount,omitempty\"`\n\tSeccompProfile           *SeccompProfileApplyConfiguration                `json:\"seccompProfile,omitempty\"`\n\tAppArmorProfile          *AppArmorProfileApplyConfiguration               `json:\"appArmorProfile,omitempty\"`\n}\n\n// SecurityContextApplyConfiguration constructs a declarative configuration of the SecurityContext type for use with\n// apply.\nfunc SecurityContext() *SecurityContextApplyConfiguration {\n\treturn &SecurityContextApplyConfiguration{}\n}\n\n// WithCapabilities sets the Capabilities field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Capabilities field is set to the value of the last call.\nfunc (b *SecurityContextApplyConfiguration) WithCapabilities(value *CapabilitiesApplyConfiguration) *SecurityContextApplyConfiguration {\n\tb.Capabilities = value\n\treturn b\n}\n\n// WithPrivileged sets the Privileged field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Privileged field is set to the value of the last call.\nfunc (b *SecurityContextApplyConfiguration) WithPrivileged(value bool) *SecurityContextApplyConfiguration {\n\tb.Privileged = &value\n\treturn b\n}\n\n// WithSELinuxOptions sets the SELinuxOptions field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SELinuxOptions field is set to the value of the last call.\nfunc (b *SecurityContextApplyConfiguration) WithSELinuxOptions(value *SELinuxOptionsApplyConfiguration) *SecurityContextApplyConfiguration {\n\tb.SELinuxOptions = value\n\treturn b\n}\n\n// WithWindowsOptions sets the WindowsOptions field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the WindowsOptions field is set to the value of the last call.\nfunc (b *SecurityContextApplyConfiguration) WithWindowsOptions(value *WindowsSecurityContextOptionsApplyConfiguration) *SecurityContextApplyConfiguration {\n\tb.WindowsOptions = value\n\treturn b\n}\n\n// WithRunAsUser sets the RunAsUser field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RunAsUser field is set to the value of the last call.\nfunc (b *SecurityContextApplyConfiguration) WithRunAsUser(value int64) *SecurityContextApplyConfiguration {\n\tb.RunAsUser = &value\n\treturn b\n}\n\n// WithRunAsGroup sets the RunAsGroup field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RunAsGroup field is set to the value of the last call.\nfunc (b *SecurityContextApplyConfiguration) WithRunAsGroup(value int64) *SecurityContextApplyConfiguration {\n\tb.RunAsGroup = &value\n\treturn b\n}\n\n// WithRunAsNonRoot sets the RunAsNonRoot field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RunAsNonRoot field is set to the value of the last call.\nfunc (b *SecurityContextApplyConfiguration) WithRunAsNonRoot(value bool) *SecurityContextApplyConfiguration {\n\tb.RunAsNonRoot = &value\n\treturn b\n}\n\n// WithReadOnlyRootFilesystem sets the ReadOnlyRootFilesystem field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnlyRootFilesystem field is set to the value of the last call.\nfunc (b *SecurityContextApplyConfiguration) WithReadOnlyRootFilesystem(value bool) *SecurityContextApplyConfiguration {\n\tb.ReadOnlyRootFilesystem = &value\n\treturn b\n}\n\n// WithAllowPrivilegeEscalation sets the AllowPrivilegeEscalation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AllowPrivilegeEscalation field is set to the value of the last call.\nfunc (b *SecurityContextApplyConfiguration) WithAllowPrivilegeEscalation(value bool) *SecurityContextApplyConfiguration {\n\tb.AllowPrivilegeEscalation = &value\n\treturn b\n}\n\n// WithProcMount sets the ProcMount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ProcMount field is set to the value of the last call.\nfunc (b *SecurityContextApplyConfiguration) WithProcMount(value corev1.ProcMountType) *SecurityContextApplyConfiguration {\n\tb.ProcMount = &value\n\treturn b\n}\n\n// WithSeccompProfile sets the SeccompProfile field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SeccompProfile field is set to the value of the last call.\nfunc (b *SecurityContextApplyConfiguration) WithSeccompProfile(value *SeccompProfileApplyConfiguration) *SecurityContextApplyConfiguration {\n\tb.SeccompProfile = value\n\treturn b\n}\n\n// WithAppArmorProfile sets the AppArmorProfile field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AppArmorProfile field is set to the value of the last call.\nfunc (b *SecurityContextApplyConfiguration) WithAppArmorProfile(value *AppArmorProfileApplyConfiguration) *SecurityContextApplyConfiguration {\n\tb.AppArmorProfile = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/selinuxoptions.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// SELinuxOptionsApplyConfiguration represents a declarative configuration of the SELinuxOptions type for use\n// with apply.\ntype SELinuxOptionsApplyConfiguration struct {\n\tUser  *string `json:\"user,omitempty\"`\n\tRole  *string `json:\"role,omitempty\"`\n\tType  *string `json:\"type,omitempty\"`\n\tLevel *string `json:\"level,omitempty\"`\n}\n\n// SELinuxOptionsApplyConfiguration constructs a declarative configuration of the SELinuxOptions type for use with\n// apply.\nfunc SELinuxOptions() *SELinuxOptionsApplyConfiguration {\n\treturn &SELinuxOptionsApplyConfiguration{}\n}\n\n// WithUser sets the User field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the User field is set to the value of the last call.\nfunc (b *SELinuxOptionsApplyConfiguration) WithUser(value string) *SELinuxOptionsApplyConfiguration {\n\tb.User = &value\n\treturn b\n}\n\n// WithRole sets the Role field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Role field is set to the value of the last call.\nfunc (b *SELinuxOptionsApplyConfiguration) WithRole(value string) *SELinuxOptionsApplyConfiguration {\n\tb.Role = &value\n\treturn b\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *SELinuxOptionsApplyConfiguration) WithType(value string) *SELinuxOptionsApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithLevel sets the Level field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Level field is set to the value of the last call.\nfunc (b *SELinuxOptionsApplyConfiguration) WithLevel(value string) *SELinuxOptionsApplyConfiguration {\n\tb.Level = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/service.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ServiceApplyConfiguration represents a declarative configuration of the Service type for use\n// with apply.\ntype ServiceApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                                 *ServiceSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                               *ServiceStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// Service constructs a declarative configuration of the Service type for use with\n// apply.\nfunc Service(name, namespace string) *ServiceApplyConfiguration {\n\tb := &ServiceApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Service\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b\n}\n\n// ExtractService extracts the applied configuration owned by fieldManager from\n// service. If no managedFields are found in service for fieldManager, a\n// ServiceApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// service must be a unmodified Service API object that was retrieved from the Kubernetes API.\n// ExtractService provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractService(service *corev1.Service, fieldManager string) (*ServiceApplyConfiguration, error) {\n\treturn extractService(service, fieldManager, \"\")\n}\n\n// ExtractServiceStatus is the same as ExtractService except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractServiceStatus(service *corev1.Service, fieldManager string) (*ServiceApplyConfiguration, error) {\n\treturn extractService(service, fieldManager, \"status\")\n}\n\nfunc extractService(service *corev1.Service, fieldManager string, subresource string) (*ServiceApplyConfiguration, error) {\n\tb := &ServiceApplyConfiguration{}\n\terr := managedfields.ExtractInto(service, internal.Parser().Type(\"io.k8s.api.core.v1.Service\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(service.Name)\n\tb.WithNamespace(service.Namespace)\n\n\tb.WithKind(\"Service\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ServiceApplyConfiguration) WithKind(value string) *ServiceApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ServiceApplyConfiguration) WithAPIVersion(value string) *ServiceApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ServiceApplyConfiguration) WithName(value string) *ServiceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ServiceApplyConfiguration) WithGenerateName(value string) *ServiceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ServiceApplyConfiguration) WithNamespace(value string) *ServiceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ServiceApplyConfiguration) WithUID(value types.UID) *ServiceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ServiceApplyConfiguration) WithResourceVersion(value string) *ServiceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ServiceApplyConfiguration) WithGeneration(value int64) *ServiceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ServiceApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *ServiceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ServiceApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *ServiceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ServiceApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ServiceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ServiceApplyConfiguration) WithLabels(entries map[string]string) *ServiceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ServiceApplyConfiguration) WithAnnotations(entries map[string]string) *ServiceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ServiceApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *ServiceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ServiceApplyConfiguration) WithFinalizers(values ...string) *ServiceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ServiceApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *ServiceApplyConfiguration) WithSpec(value *ServiceSpecApplyConfiguration) *ServiceApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *ServiceApplyConfiguration) WithStatus(value *ServiceStatusApplyConfiguration) *ServiceApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *ServiceApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/serviceaccount.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ServiceAccountApplyConfiguration represents a declarative configuration of the ServiceAccount type for use\n// with apply.\ntype ServiceAccountApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSecrets                              []ObjectReferenceApplyConfiguration      `json:\"secrets,omitempty\"`\n\tImagePullSecrets                     []LocalObjectReferenceApplyConfiguration `json:\"imagePullSecrets,omitempty\"`\n\tAutomountServiceAccountToken         *bool                                    `json:\"automountServiceAccountToken,omitempty\"`\n}\n\n// ServiceAccount constructs a declarative configuration of the ServiceAccount type for use with\n// apply.\nfunc ServiceAccount(name, namespace string) *ServiceAccountApplyConfiguration {\n\tb := &ServiceAccountApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"ServiceAccount\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b\n}\n\n// ExtractServiceAccount extracts the applied configuration owned by fieldManager from\n// serviceAccount. If no managedFields are found in serviceAccount for fieldManager, a\n// ServiceAccountApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// serviceAccount must be a unmodified ServiceAccount API object that was retrieved from the Kubernetes API.\n// ExtractServiceAccount provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractServiceAccount(serviceAccount *corev1.ServiceAccount, fieldManager string) (*ServiceAccountApplyConfiguration, error) {\n\treturn extractServiceAccount(serviceAccount, fieldManager, \"\")\n}\n\n// ExtractServiceAccountStatus is the same as ExtractServiceAccount except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractServiceAccountStatus(serviceAccount *corev1.ServiceAccount, fieldManager string) (*ServiceAccountApplyConfiguration, error) {\n\treturn extractServiceAccount(serviceAccount, fieldManager, \"status\")\n}\n\nfunc extractServiceAccount(serviceAccount *corev1.ServiceAccount, fieldManager string, subresource string) (*ServiceAccountApplyConfiguration, error) {\n\tb := &ServiceAccountApplyConfiguration{}\n\terr := managedfields.ExtractInto(serviceAccount, internal.Parser().Type(\"io.k8s.api.core.v1.ServiceAccount\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(serviceAccount.Name)\n\tb.WithNamespace(serviceAccount.Namespace)\n\n\tb.WithKind(\"ServiceAccount\")\n\tb.WithAPIVersion(\"v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ServiceAccountApplyConfiguration) WithKind(value string) *ServiceAccountApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ServiceAccountApplyConfiguration) WithAPIVersion(value string) *ServiceAccountApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ServiceAccountApplyConfiguration) WithName(value string) *ServiceAccountApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ServiceAccountApplyConfiguration) WithGenerateName(value string) *ServiceAccountApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ServiceAccountApplyConfiguration) WithNamespace(value string) *ServiceAccountApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ServiceAccountApplyConfiguration) WithUID(value types.UID) *ServiceAccountApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ServiceAccountApplyConfiguration) WithResourceVersion(value string) *ServiceAccountApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ServiceAccountApplyConfiguration) WithGeneration(value int64) *ServiceAccountApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ServiceAccountApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *ServiceAccountApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ServiceAccountApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *ServiceAccountApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ServiceAccountApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ServiceAccountApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ServiceAccountApplyConfiguration) WithLabels(entries map[string]string) *ServiceAccountApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ServiceAccountApplyConfiguration) WithAnnotations(entries map[string]string) *ServiceAccountApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ServiceAccountApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *ServiceAccountApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ServiceAccountApplyConfiguration) WithFinalizers(values ...string) *ServiceAccountApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ServiceAccountApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSecrets adds the given value to the Secrets field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Secrets field.\nfunc (b *ServiceAccountApplyConfiguration) WithSecrets(values ...*ObjectReferenceApplyConfiguration) *ServiceAccountApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithSecrets\")\n\t\t}\n\t\tb.Secrets = append(b.Secrets, *values[i])\n\t}\n\treturn b\n}\n\n// WithImagePullSecrets adds the given value to the ImagePullSecrets field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ImagePullSecrets field.\nfunc (b *ServiceAccountApplyConfiguration) WithImagePullSecrets(values ...*LocalObjectReferenceApplyConfiguration) *ServiceAccountApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithImagePullSecrets\")\n\t\t}\n\t\tb.ImagePullSecrets = append(b.ImagePullSecrets, *values[i])\n\t}\n\treturn b\n}\n\n// WithAutomountServiceAccountToken sets the AutomountServiceAccountToken field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AutomountServiceAccountToken field is set to the value of the last call.\nfunc (b *ServiceAccountApplyConfiguration) WithAutomountServiceAccountToken(value bool) *ServiceAccountApplyConfiguration {\n\tb.AutomountServiceAccountToken = &value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *ServiceAccountApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/serviceaccounttokenprojection.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ServiceAccountTokenProjectionApplyConfiguration represents a declarative configuration of the ServiceAccountTokenProjection type for use\n// with apply.\ntype ServiceAccountTokenProjectionApplyConfiguration struct {\n\tAudience          *string `json:\"audience,omitempty\"`\n\tExpirationSeconds *int64  `json:\"expirationSeconds,omitempty\"`\n\tPath              *string `json:\"path,omitempty\"`\n}\n\n// ServiceAccountTokenProjectionApplyConfiguration constructs a declarative configuration of the ServiceAccountTokenProjection type for use with\n// apply.\nfunc ServiceAccountTokenProjection() *ServiceAccountTokenProjectionApplyConfiguration {\n\treturn &ServiceAccountTokenProjectionApplyConfiguration{}\n}\n\n// WithAudience sets the Audience field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Audience field is set to the value of the last call.\nfunc (b *ServiceAccountTokenProjectionApplyConfiguration) WithAudience(value string) *ServiceAccountTokenProjectionApplyConfiguration {\n\tb.Audience = &value\n\treturn b\n}\n\n// WithExpirationSeconds sets the ExpirationSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ExpirationSeconds field is set to the value of the last call.\nfunc (b *ServiceAccountTokenProjectionApplyConfiguration) WithExpirationSeconds(value int64) *ServiceAccountTokenProjectionApplyConfiguration {\n\tb.ExpirationSeconds = &value\n\treturn b\n}\n\n// WithPath sets the Path field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Path field is set to the value of the last call.\nfunc (b *ServiceAccountTokenProjectionApplyConfiguration) WithPath(value string) *ServiceAccountTokenProjectionApplyConfiguration {\n\tb.Path = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/serviceport.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// ServicePortApplyConfiguration represents a declarative configuration of the ServicePort type for use\n// with apply.\ntype ServicePortApplyConfiguration struct {\n\tName        *string             `json:\"name,omitempty\"`\n\tProtocol    *corev1.Protocol    `json:\"protocol,omitempty\"`\n\tAppProtocol *string             `json:\"appProtocol,omitempty\"`\n\tPort        *int32              `json:\"port,omitempty\"`\n\tTargetPort  *intstr.IntOrString `json:\"targetPort,omitempty\"`\n\tNodePort    *int32              `json:\"nodePort,omitempty\"`\n}\n\n// ServicePortApplyConfiguration constructs a declarative configuration of the ServicePort type for use with\n// apply.\nfunc ServicePort() *ServicePortApplyConfiguration {\n\treturn &ServicePortApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ServicePortApplyConfiguration) WithName(value string) *ServicePortApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithProtocol sets the Protocol field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Protocol field is set to the value of the last call.\nfunc (b *ServicePortApplyConfiguration) WithProtocol(value corev1.Protocol) *ServicePortApplyConfiguration {\n\tb.Protocol = &value\n\treturn b\n}\n\n// WithAppProtocol sets the AppProtocol field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AppProtocol field is set to the value of the last call.\nfunc (b *ServicePortApplyConfiguration) WithAppProtocol(value string) *ServicePortApplyConfiguration {\n\tb.AppProtocol = &value\n\treturn b\n}\n\n// WithPort sets the Port field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Port field is set to the value of the last call.\nfunc (b *ServicePortApplyConfiguration) WithPort(value int32) *ServicePortApplyConfiguration {\n\tb.Port = &value\n\treturn b\n}\n\n// WithTargetPort sets the TargetPort field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TargetPort field is set to the value of the last call.\nfunc (b *ServicePortApplyConfiguration) WithTargetPort(value intstr.IntOrString) *ServicePortApplyConfiguration {\n\tb.TargetPort = &value\n\treturn b\n}\n\n// WithNodePort sets the NodePort field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodePort field is set to the value of the last call.\nfunc (b *ServicePortApplyConfiguration) WithNodePort(value int32) *ServicePortApplyConfiguration {\n\tb.NodePort = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/servicespec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// ServiceSpecApplyConfiguration represents a declarative configuration of the ServiceSpec type for use\n// with apply.\ntype ServiceSpecApplyConfiguration struct {\n\tPorts                         []ServicePortApplyConfiguration          `json:\"ports,omitempty\"`\n\tSelector                      map[string]string                        `json:\"selector,omitempty\"`\n\tClusterIP                     *string                                  `json:\"clusterIP,omitempty\"`\n\tClusterIPs                    []string                                 `json:\"clusterIPs,omitempty\"`\n\tType                          *corev1.ServiceType                      `json:\"type,omitempty\"`\n\tExternalIPs                   []string                                 `json:\"externalIPs,omitempty\"`\n\tSessionAffinity               *corev1.ServiceAffinity                  `json:\"sessionAffinity,omitempty\"`\n\tLoadBalancerIP                *string                                  `json:\"loadBalancerIP,omitempty\"`\n\tLoadBalancerSourceRanges      []string                                 `json:\"loadBalancerSourceRanges,omitempty\"`\n\tExternalName                  *string                                  `json:\"externalName,omitempty\"`\n\tExternalTrafficPolicy         *corev1.ServiceExternalTrafficPolicy     `json:\"externalTrafficPolicy,omitempty\"`\n\tHealthCheckNodePort           *int32                                   `json:\"healthCheckNodePort,omitempty\"`\n\tPublishNotReadyAddresses      *bool                                    `json:\"publishNotReadyAddresses,omitempty\"`\n\tSessionAffinityConfig         *SessionAffinityConfigApplyConfiguration `json:\"sessionAffinityConfig,omitempty\"`\n\tIPFamilies                    []corev1.IPFamily                        `json:\"ipFamilies,omitempty\"`\n\tIPFamilyPolicy                *corev1.IPFamilyPolicy                   `json:\"ipFamilyPolicy,omitempty\"`\n\tAllocateLoadBalancerNodePorts *bool                                    `json:\"allocateLoadBalancerNodePorts,omitempty\"`\n\tLoadBalancerClass             *string                                  `json:\"loadBalancerClass,omitempty\"`\n\tInternalTrafficPolicy         *corev1.ServiceInternalTrafficPolicy     `json:\"internalTrafficPolicy,omitempty\"`\n\tTrafficDistribution           *string                                  `json:\"trafficDistribution,omitempty\"`\n}\n\n// ServiceSpecApplyConfiguration constructs a declarative configuration of the ServiceSpec type for use with\n// apply.\nfunc ServiceSpec() *ServiceSpecApplyConfiguration {\n\treturn &ServiceSpecApplyConfiguration{}\n}\n\n// WithPorts adds the given value to the Ports field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ports field.\nfunc (b *ServiceSpecApplyConfiguration) WithPorts(values ...*ServicePortApplyConfiguration) *ServiceSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPorts\")\n\t\t}\n\t\tb.Ports = append(b.Ports, *values[i])\n\t}\n\treturn b\n}\n\n// WithSelector puts the entries into the Selector field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Selector field,\n// overwriting an existing map entries in Selector field with the same key.\nfunc (b *ServiceSpecApplyConfiguration) WithSelector(entries map[string]string) *ServiceSpecApplyConfiguration {\n\tif b.Selector == nil && len(entries) > 0 {\n\t\tb.Selector = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Selector[k] = v\n\t}\n\treturn b\n}\n\n// WithClusterIP sets the ClusterIP field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ClusterIP field is set to the value of the last call.\nfunc (b *ServiceSpecApplyConfiguration) WithClusterIP(value string) *ServiceSpecApplyConfiguration {\n\tb.ClusterIP = &value\n\treturn b\n}\n\n// WithClusterIPs adds the given value to the ClusterIPs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ClusterIPs field.\nfunc (b *ServiceSpecApplyConfiguration) WithClusterIPs(values ...string) *ServiceSpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.ClusterIPs = append(b.ClusterIPs, values[i])\n\t}\n\treturn b\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *ServiceSpecApplyConfiguration) WithType(value corev1.ServiceType) *ServiceSpecApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithExternalIPs adds the given value to the ExternalIPs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ExternalIPs field.\nfunc (b *ServiceSpecApplyConfiguration) WithExternalIPs(values ...string) *ServiceSpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.ExternalIPs = append(b.ExternalIPs, values[i])\n\t}\n\treturn b\n}\n\n// WithSessionAffinity sets the SessionAffinity field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SessionAffinity field is set to the value of the last call.\nfunc (b *ServiceSpecApplyConfiguration) WithSessionAffinity(value corev1.ServiceAffinity) *ServiceSpecApplyConfiguration {\n\tb.SessionAffinity = &value\n\treturn b\n}\n\n// WithLoadBalancerIP sets the LoadBalancerIP field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LoadBalancerIP field is set to the value of the last call.\nfunc (b *ServiceSpecApplyConfiguration) WithLoadBalancerIP(value string) *ServiceSpecApplyConfiguration {\n\tb.LoadBalancerIP = &value\n\treturn b\n}\n\n// WithLoadBalancerSourceRanges adds the given value to the LoadBalancerSourceRanges field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the LoadBalancerSourceRanges field.\nfunc (b *ServiceSpecApplyConfiguration) WithLoadBalancerSourceRanges(values ...string) *ServiceSpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.LoadBalancerSourceRanges = append(b.LoadBalancerSourceRanges, values[i])\n\t}\n\treturn b\n}\n\n// WithExternalName sets the ExternalName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ExternalName field is set to the value of the last call.\nfunc (b *ServiceSpecApplyConfiguration) WithExternalName(value string) *ServiceSpecApplyConfiguration {\n\tb.ExternalName = &value\n\treturn b\n}\n\n// WithExternalTrafficPolicy sets the ExternalTrafficPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ExternalTrafficPolicy field is set to the value of the last call.\nfunc (b *ServiceSpecApplyConfiguration) WithExternalTrafficPolicy(value corev1.ServiceExternalTrafficPolicy) *ServiceSpecApplyConfiguration {\n\tb.ExternalTrafficPolicy = &value\n\treturn b\n}\n\n// WithHealthCheckNodePort sets the HealthCheckNodePort field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HealthCheckNodePort field is set to the value of the last call.\nfunc (b *ServiceSpecApplyConfiguration) WithHealthCheckNodePort(value int32) *ServiceSpecApplyConfiguration {\n\tb.HealthCheckNodePort = &value\n\treturn b\n}\n\n// WithPublishNotReadyAddresses sets the PublishNotReadyAddresses field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PublishNotReadyAddresses field is set to the value of the last call.\nfunc (b *ServiceSpecApplyConfiguration) WithPublishNotReadyAddresses(value bool) *ServiceSpecApplyConfiguration {\n\tb.PublishNotReadyAddresses = &value\n\treturn b\n}\n\n// WithSessionAffinityConfig sets the SessionAffinityConfig field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SessionAffinityConfig field is set to the value of the last call.\nfunc (b *ServiceSpecApplyConfiguration) WithSessionAffinityConfig(value *SessionAffinityConfigApplyConfiguration) *ServiceSpecApplyConfiguration {\n\tb.SessionAffinityConfig = value\n\treturn b\n}\n\n// WithIPFamilies adds the given value to the IPFamilies field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the IPFamilies field.\nfunc (b *ServiceSpecApplyConfiguration) WithIPFamilies(values ...corev1.IPFamily) *ServiceSpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.IPFamilies = append(b.IPFamilies, values[i])\n\t}\n\treturn b\n}\n\n// WithIPFamilyPolicy sets the IPFamilyPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the IPFamilyPolicy field is set to the value of the last call.\nfunc (b *ServiceSpecApplyConfiguration) WithIPFamilyPolicy(value corev1.IPFamilyPolicy) *ServiceSpecApplyConfiguration {\n\tb.IPFamilyPolicy = &value\n\treturn b\n}\n\n// WithAllocateLoadBalancerNodePorts sets the AllocateLoadBalancerNodePorts field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AllocateLoadBalancerNodePorts field is set to the value of the last call.\nfunc (b *ServiceSpecApplyConfiguration) WithAllocateLoadBalancerNodePorts(value bool) *ServiceSpecApplyConfiguration {\n\tb.AllocateLoadBalancerNodePorts = &value\n\treturn b\n}\n\n// WithLoadBalancerClass sets the LoadBalancerClass field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LoadBalancerClass field is set to the value of the last call.\nfunc (b *ServiceSpecApplyConfiguration) WithLoadBalancerClass(value string) *ServiceSpecApplyConfiguration {\n\tb.LoadBalancerClass = &value\n\treturn b\n}\n\n// WithInternalTrafficPolicy sets the InternalTrafficPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the InternalTrafficPolicy field is set to the value of the last call.\nfunc (b *ServiceSpecApplyConfiguration) WithInternalTrafficPolicy(value corev1.ServiceInternalTrafficPolicy) *ServiceSpecApplyConfiguration {\n\tb.InternalTrafficPolicy = &value\n\treturn b\n}\n\n// WithTrafficDistribution sets the TrafficDistribution field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TrafficDistribution field is set to the value of the last call.\nfunc (b *ServiceSpecApplyConfiguration) WithTrafficDistribution(value string) *ServiceSpecApplyConfiguration {\n\tb.TrafficDistribution = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/servicestatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ServiceStatusApplyConfiguration represents a declarative configuration of the ServiceStatus type for use\n// with apply.\ntype ServiceStatusApplyConfiguration struct {\n\tLoadBalancer *LoadBalancerStatusApplyConfiguration `json:\"loadBalancer,omitempty\"`\n\tConditions   []metav1.ConditionApplyConfiguration  `json:\"conditions,omitempty\"`\n}\n\n// ServiceStatusApplyConfiguration constructs a declarative configuration of the ServiceStatus type for use with\n// apply.\nfunc ServiceStatus() *ServiceStatusApplyConfiguration {\n\treturn &ServiceStatusApplyConfiguration{}\n}\n\n// WithLoadBalancer sets the LoadBalancer field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LoadBalancer field is set to the value of the last call.\nfunc (b *ServiceStatusApplyConfiguration) WithLoadBalancer(value *LoadBalancerStatusApplyConfiguration) *ServiceStatusApplyConfiguration {\n\tb.LoadBalancer = value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *ServiceStatusApplyConfiguration) WithConditions(values ...*metav1.ConditionApplyConfiguration) *ServiceStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/sessionaffinityconfig.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// SessionAffinityConfigApplyConfiguration represents a declarative configuration of the SessionAffinityConfig type for use\n// with apply.\ntype SessionAffinityConfigApplyConfiguration struct {\n\tClientIP *ClientIPConfigApplyConfiguration `json:\"clientIP,omitempty\"`\n}\n\n// SessionAffinityConfigApplyConfiguration constructs a declarative configuration of the SessionAffinityConfig type for use with\n// apply.\nfunc SessionAffinityConfig() *SessionAffinityConfigApplyConfiguration {\n\treturn &SessionAffinityConfigApplyConfiguration{}\n}\n\n// WithClientIP sets the ClientIP field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ClientIP field is set to the value of the last call.\nfunc (b *SessionAffinityConfigApplyConfiguration) WithClientIP(value *ClientIPConfigApplyConfiguration) *SessionAffinityConfigApplyConfiguration {\n\tb.ClientIP = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/sleepaction.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// SleepActionApplyConfiguration represents a declarative configuration of the SleepAction type for use\n// with apply.\ntype SleepActionApplyConfiguration struct {\n\tSeconds *int64 `json:\"seconds,omitempty\"`\n}\n\n// SleepActionApplyConfiguration constructs a declarative configuration of the SleepAction type for use with\n// apply.\nfunc SleepAction() *SleepActionApplyConfiguration {\n\treturn &SleepActionApplyConfiguration{}\n}\n\n// WithSeconds sets the Seconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Seconds field is set to the value of the last call.\nfunc (b *SleepActionApplyConfiguration) WithSeconds(value int64) *SleepActionApplyConfiguration {\n\tb.Seconds = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/storageospersistentvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// StorageOSPersistentVolumeSourceApplyConfiguration represents a declarative configuration of the StorageOSPersistentVolumeSource type for use\n// with apply.\ntype StorageOSPersistentVolumeSourceApplyConfiguration struct {\n\tVolumeName      *string                            `json:\"volumeName,omitempty\"`\n\tVolumeNamespace *string                            `json:\"volumeNamespace,omitempty\"`\n\tFSType          *string                            `json:\"fsType,omitempty\"`\n\tReadOnly        *bool                              `json:\"readOnly,omitempty\"`\n\tSecretRef       *ObjectReferenceApplyConfiguration `json:\"secretRef,omitempty\"`\n}\n\n// StorageOSPersistentVolumeSourceApplyConfiguration constructs a declarative configuration of the StorageOSPersistentVolumeSource type for use with\n// apply.\nfunc StorageOSPersistentVolumeSource() *StorageOSPersistentVolumeSourceApplyConfiguration {\n\treturn &StorageOSPersistentVolumeSourceApplyConfiguration{}\n}\n\n// WithVolumeName sets the VolumeName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VolumeName field is set to the value of the last call.\nfunc (b *StorageOSPersistentVolumeSourceApplyConfiguration) WithVolumeName(value string) *StorageOSPersistentVolumeSourceApplyConfiguration {\n\tb.VolumeName = &value\n\treturn b\n}\n\n// WithVolumeNamespace sets the VolumeNamespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VolumeNamespace field is set to the value of the last call.\nfunc (b *StorageOSPersistentVolumeSourceApplyConfiguration) WithVolumeNamespace(value string) *StorageOSPersistentVolumeSourceApplyConfiguration {\n\tb.VolumeNamespace = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *StorageOSPersistentVolumeSourceApplyConfiguration) WithFSType(value string) *StorageOSPersistentVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *StorageOSPersistentVolumeSourceApplyConfiguration) WithReadOnly(value bool) *StorageOSPersistentVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n\n// WithSecretRef sets the SecretRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretRef field is set to the value of the last call.\nfunc (b *StorageOSPersistentVolumeSourceApplyConfiguration) WithSecretRef(value *ObjectReferenceApplyConfiguration) *StorageOSPersistentVolumeSourceApplyConfiguration {\n\tb.SecretRef = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/storageosvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// StorageOSVolumeSourceApplyConfiguration represents a declarative configuration of the StorageOSVolumeSource type for use\n// with apply.\ntype StorageOSVolumeSourceApplyConfiguration struct {\n\tVolumeName      *string                                 `json:\"volumeName,omitempty\"`\n\tVolumeNamespace *string                                 `json:\"volumeNamespace,omitempty\"`\n\tFSType          *string                                 `json:\"fsType,omitempty\"`\n\tReadOnly        *bool                                   `json:\"readOnly,omitempty\"`\n\tSecretRef       *LocalObjectReferenceApplyConfiguration `json:\"secretRef,omitempty\"`\n}\n\n// StorageOSVolumeSourceApplyConfiguration constructs a declarative configuration of the StorageOSVolumeSource type for use with\n// apply.\nfunc StorageOSVolumeSource() *StorageOSVolumeSourceApplyConfiguration {\n\treturn &StorageOSVolumeSourceApplyConfiguration{}\n}\n\n// WithVolumeName sets the VolumeName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VolumeName field is set to the value of the last call.\nfunc (b *StorageOSVolumeSourceApplyConfiguration) WithVolumeName(value string) *StorageOSVolumeSourceApplyConfiguration {\n\tb.VolumeName = &value\n\treturn b\n}\n\n// WithVolumeNamespace sets the VolumeNamespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VolumeNamespace field is set to the value of the last call.\nfunc (b *StorageOSVolumeSourceApplyConfiguration) WithVolumeNamespace(value string) *StorageOSVolumeSourceApplyConfiguration {\n\tb.VolumeNamespace = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *StorageOSVolumeSourceApplyConfiguration) WithFSType(value string) *StorageOSVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *StorageOSVolumeSourceApplyConfiguration) WithReadOnly(value bool) *StorageOSVolumeSourceApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n\n// WithSecretRef sets the SecretRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretRef field is set to the value of the last call.\nfunc (b *StorageOSVolumeSourceApplyConfiguration) WithSecretRef(value *LocalObjectReferenceApplyConfiguration) *StorageOSVolumeSourceApplyConfiguration {\n\tb.SecretRef = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/sysctl.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// SysctlApplyConfiguration represents a declarative configuration of the Sysctl type for use\n// with apply.\ntype SysctlApplyConfiguration struct {\n\tName  *string `json:\"name,omitempty\"`\n\tValue *string `json:\"value,omitempty\"`\n}\n\n// SysctlApplyConfiguration constructs a declarative configuration of the Sysctl type for use with\n// apply.\nfunc Sysctl() *SysctlApplyConfiguration {\n\treturn &SysctlApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *SysctlApplyConfiguration) WithName(value string) *SysctlApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithValue sets the Value field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Value field is set to the value of the last call.\nfunc (b *SysctlApplyConfiguration) WithValue(value string) *SysctlApplyConfiguration {\n\tb.Value = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/taint.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// TaintApplyConfiguration represents a declarative configuration of the Taint type for use\n// with apply.\ntype TaintApplyConfiguration struct {\n\tKey       *string             `json:\"key,omitempty\"`\n\tValue     *string             `json:\"value,omitempty\"`\n\tEffect    *corev1.TaintEffect `json:\"effect,omitempty\"`\n\tTimeAdded *metav1.Time        `json:\"timeAdded,omitempty\"`\n}\n\n// TaintApplyConfiguration constructs a declarative configuration of the Taint type for use with\n// apply.\nfunc Taint() *TaintApplyConfiguration {\n\treturn &TaintApplyConfiguration{}\n}\n\n// WithKey sets the Key field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Key field is set to the value of the last call.\nfunc (b *TaintApplyConfiguration) WithKey(value string) *TaintApplyConfiguration {\n\tb.Key = &value\n\treturn b\n}\n\n// WithValue sets the Value field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Value field is set to the value of the last call.\nfunc (b *TaintApplyConfiguration) WithValue(value string) *TaintApplyConfiguration {\n\tb.Value = &value\n\treturn b\n}\n\n// WithEffect sets the Effect field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Effect field is set to the value of the last call.\nfunc (b *TaintApplyConfiguration) WithEffect(value corev1.TaintEffect) *TaintApplyConfiguration {\n\tb.Effect = &value\n\treturn b\n}\n\n// WithTimeAdded sets the TimeAdded field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TimeAdded field is set to the value of the last call.\nfunc (b *TaintApplyConfiguration) WithTimeAdded(value metav1.Time) *TaintApplyConfiguration {\n\tb.TimeAdded = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/tcpsocketaction.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// TCPSocketActionApplyConfiguration represents a declarative configuration of the TCPSocketAction type for use\n// with apply.\ntype TCPSocketActionApplyConfiguration struct {\n\tPort *intstr.IntOrString `json:\"port,omitempty\"`\n\tHost *string             `json:\"host,omitempty\"`\n}\n\n// TCPSocketActionApplyConfiguration constructs a declarative configuration of the TCPSocketAction type for use with\n// apply.\nfunc TCPSocketAction() *TCPSocketActionApplyConfiguration {\n\treturn &TCPSocketActionApplyConfiguration{}\n}\n\n// WithPort sets the Port field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Port field is set to the value of the last call.\nfunc (b *TCPSocketActionApplyConfiguration) WithPort(value intstr.IntOrString) *TCPSocketActionApplyConfiguration {\n\tb.Port = &value\n\treturn b\n}\n\n// WithHost sets the Host field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Host field is set to the value of the last call.\nfunc (b *TCPSocketActionApplyConfiguration) WithHost(value string) *TCPSocketActionApplyConfiguration {\n\tb.Host = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/toleration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// TolerationApplyConfiguration represents a declarative configuration of the Toleration type for use\n// with apply.\ntype TolerationApplyConfiguration struct {\n\tKey               *string                    `json:\"key,omitempty\"`\n\tOperator          *corev1.TolerationOperator `json:\"operator,omitempty\"`\n\tValue             *string                    `json:\"value,omitempty\"`\n\tEffect            *corev1.TaintEffect        `json:\"effect,omitempty\"`\n\tTolerationSeconds *int64                     `json:\"tolerationSeconds,omitempty\"`\n}\n\n// TolerationApplyConfiguration constructs a declarative configuration of the Toleration type for use with\n// apply.\nfunc Toleration() *TolerationApplyConfiguration {\n\treturn &TolerationApplyConfiguration{}\n}\n\n// WithKey sets the Key field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Key field is set to the value of the last call.\nfunc (b *TolerationApplyConfiguration) WithKey(value string) *TolerationApplyConfiguration {\n\tb.Key = &value\n\treturn b\n}\n\n// WithOperator sets the Operator field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Operator field is set to the value of the last call.\nfunc (b *TolerationApplyConfiguration) WithOperator(value corev1.TolerationOperator) *TolerationApplyConfiguration {\n\tb.Operator = &value\n\treturn b\n}\n\n// WithValue sets the Value field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Value field is set to the value of the last call.\nfunc (b *TolerationApplyConfiguration) WithValue(value string) *TolerationApplyConfiguration {\n\tb.Value = &value\n\treturn b\n}\n\n// WithEffect sets the Effect field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Effect field is set to the value of the last call.\nfunc (b *TolerationApplyConfiguration) WithEffect(value corev1.TaintEffect) *TolerationApplyConfiguration {\n\tb.Effect = &value\n\treturn b\n}\n\n// WithTolerationSeconds sets the TolerationSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TolerationSeconds field is set to the value of the last call.\nfunc (b *TolerationApplyConfiguration) WithTolerationSeconds(value int64) *TolerationApplyConfiguration {\n\tb.TolerationSeconds = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/topologyselectorlabelrequirement.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// TopologySelectorLabelRequirementApplyConfiguration represents a declarative configuration of the TopologySelectorLabelRequirement type for use\n// with apply.\ntype TopologySelectorLabelRequirementApplyConfiguration struct {\n\tKey    *string  `json:\"key,omitempty\"`\n\tValues []string `json:\"values,omitempty\"`\n}\n\n// TopologySelectorLabelRequirementApplyConfiguration constructs a declarative configuration of the TopologySelectorLabelRequirement type for use with\n// apply.\nfunc TopologySelectorLabelRequirement() *TopologySelectorLabelRequirementApplyConfiguration {\n\treturn &TopologySelectorLabelRequirementApplyConfiguration{}\n}\n\n// WithKey sets the Key field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Key field is set to the value of the last call.\nfunc (b *TopologySelectorLabelRequirementApplyConfiguration) WithKey(value string) *TopologySelectorLabelRequirementApplyConfiguration {\n\tb.Key = &value\n\treturn b\n}\n\n// WithValues adds the given value to the Values field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Values field.\nfunc (b *TopologySelectorLabelRequirementApplyConfiguration) WithValues(values ...string) *TopologySelectorLabelRequirementApplyConfiguration {\n\tfor i := range values {\n\t\tb.Values = append(b.Values, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/topologyselectorterm.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// TopologySelectorTermApplyConfiguration represents a declarative configuration of the TopologySelectorTerm type for use\n// with apply.\ntype TopologySelectorTermApplyConfiguration struct {\n\tMatchLabelExpressions []TopologySelectorLabelRequirementApplyConfiguration `json:\"matchLabelExpressions,omitempty\"`\n}\n\n// TopologySelectorTermApplyConfiguration constructs a declarative configuration of the TopologySelectorTerm type for use with\n// apply.\nfunc TopologySelectorTerm() *TopologySelectorTermApplyConfiguration {\n\treturn &TopologySelectorTermApplyConfiguration{}\n}\n\n// WithMatchLabelExpressions adds the given value to the MatchLabelExpressions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the MatchLabelExpressions field.\nfunc (b *TopologySelectorTermApplyConfiguration) WithMatchLabelExpressions(values ...*TopologySelectorLabelRequirementApplyConfiguration) *TopologySelectorTermApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithMatchLabelExpressions\")\n\t\t}\n\t\tb.MatchLabelExpressions = append(b.MatchLabelExpressions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/topologyspreadconstraint.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// TopologySpreadConstraintApplyConfiguration represents a declarative configuration of the TopologySpreadConstraint type for use\n// with apply.\ntype TopologySpreadConstraintApplyConfiguration struct {\n\tMaxSkew            *int32                                  `json:\"maxSkew,omitempty\"`\n\tTopologyKey        *string                                 `json:\"topologyKey,omitempty\"`\n\tWhenUnsatisfiable  *corev1.UnsatisfiableConstraintAction   `json:\"whenUnsatisfiable,omitempty\"`\n\tLabelSelector      *metav1.LabelSelectorApplyConfiguration `json:\"labelSelector,omitempty\"`\n\tMinDomains         *int32                                  `json:\"minDomains,omitempty\"`\n\tNodeAffinityPolicy *corev1.NodeInclusionPolicy             `json:\"nodeAffinityPolicy,omitempty\"`\n\tNodeTaintsPolicy   *corev1.NodeInclusionPolicy             `json:\"nodeTaintsPolicy,omitempty\"`\n\tMatchLabelKeys     []string                                `json:\"matchLabelKeys,omitempty\"`\n}\n\n// TopologySpreadConstraintApplyConfiguration constructs a declarative configuration of the TopologySpreadConstraint type for use with\n// apply.\nfunc TopologySpreadConstraint() *TopologySpreadConstraintApplyConfiguration {\n\treturn &TopologySpreadConstraintApplyConfiguration{}\n}\n\n// WithMaxSkew sets the MaxSkew field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxSkew field is set to the value of the last call.\nfunc (b *TopologySpreadConstraintApplyConfiguration) WithMaxSkew(value int32) *TopologySpreadConstraintApplyConfiguration {\n\tb.MaxSkew = &value\n\treturn b\n}\n\n// WithTopologyKey sets the TopologyKey field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TopologyKey field is set to the value of the last call.\nfunc (b *TopologySpreadConstraintApplyConfiguration) WithTopologyKey(value string) *TopologySpreadConstraintApplyConfiguration {\n\tb.TopologyKey = &value\n\treturn b\n}\n\n// WithWhenUnsatisfiable sets the WhenUnsatisfiable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the WhenUnsatisfiable field is set to the value of the last call.\nfunc (b *TopologySpreadConstraintApplyConfiguration) WithWhenUnsatisfiable(value corev1.UnsatisfiableConstraintAction) *TopologySpreadConstraintApplyConfiguration {\n\tb.WhenUnsatisfiable = &value\n\treturn b\n}\n\n// WithLabelSelector sets the LabelSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LabelSelector field is set to the value of the last call.\nfunc (b *TopologySpreadConstraintApplyConfiguration) WithLabelSelector(value *metav1.LabelSelectorApplyConfiguration) *TopologySpreadConstraintApplyConfiguration {\n\tb.LabelSelector = value\n\treturn b\n}\n\n// WithMinDomains sets the MinDomains field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MinDomains field is set to the value of the last call.\nfunc (b *TopologySpreadConstraintApplyConfiguration) WithMinDomains(value int32) *TopologySpreadConstraintApplyConfiguration {\n\tb.MinDomains = &value\n\treturn b\n}\n\n// WithNodeAffinityPolicy sets the NodeAffinityPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeAffinityPolicy field is set to the value of the last call.\nfunc (b *TopologySpreadConstraintApplyConfiguration) WithNodeAffinityPolicy(value corev1.NodeInclusionPolicy) *TopologySpreadConstraintApplyConfiguration {\n\tb.NodeAffinityPolicy = &value\n\treturn b\n}\n\n// WithNodeTaintsPolicy sets the NodeTaintsPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeTaintsPolicy field is set to the value of the last call.\nfunc (b *TopologySpreadConstraintApplyConfiguration) WithNodeTaintsPolicy(value corev1.NodeInclusionPolicy) *TopologySpreadConstraintApplyConfiguration {\n\tb.NodeTaintsPolicy = &value\n\treturn b\n}\n\n// WithMatchLabelKeys adds the given value to the MatchLabelKeys field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the MatchLabelKeys field.\nfunc (b *TopologySpreadConstraintApplyConfiguration) WithMatchLabelKeys(values ...string) *TopologySpreadConstraintApplyConfiguration {\n\tfor i := range values {\n\t\tb.MatchLabelKeys = append(b.MatchLabelKeys, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/typedlocalobjectreference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// TypedLocalObjectReferenceApplyConfiguration represents a declarative configuration of the TypedLocalObjectReference type for use\n// with apply.\ntype TypedLocalObjectReferenceApplyConfiguration struct {\n\tAPIGroup *string `json:\"apiGroup,omitempty\"`\n\tKind     *string `json:\"kind,omitempty\"`\n\tName     *string `json:\"name,omitempty\"`\n}\n\n// TypedLocalObjectReferenceApplyConfiguration constructs a declarative configuration of the TypedLocalObjectReference type for use with\n// apply.\nfunc TypedLocalObjectReference() *TypedLocalObjectReferenceApplyConfiguration {\n\treturn &TypedLocalObjectReferenceApplyConfiguration{}\n}\n\n// WithAPIGroup sets the APIGroup field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIGroup field is set to the value of the last call.\nfunc (b *TypedLocalObjectReferenceApplyConfiguration) WithAPIGroup(value string) *TypedLocalObjectReferenceApplyConfiguration {\n\tb.APIGroup = &value\n\treturn b\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *TypedLocalObjectReferenceApplyConfiguration) WithKind(value string) *TypedLocalObjectReferenceApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *TypedLocalObjectReferenceApplyConfiguration) WithName(value string) *TypedLocalObjectReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/typedobjectreference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// TypedObjectReferenceApplyConfiguration represents a declarative configuration of the TypedObjectReference type for use\n// with apply.\ntype TypedObjectReferenceApplyConfiguration struct {\n\tAPIGroup  *string `json:\"apiGroup,omitempty\"`\n\tKind      *string `json:\"kind,omitempty\"`\n\tName      *string `json:\"name,omitempty\"`\n\tNamespace *string `json:\"namespace,omitempty\"`\n}\n\n// TypedObjectReferenceApplyConfiguration constructs a declarative configuration of the TypedObjectReference type for use with\n// apply.\nfunc TypedObjectReference() *TypedObjectReferenceApplyConfiguration {\n\treturn &TypedObjectReferenceApplyConfiguration{}\n}\n\n// WithAPIGroup sets the APIGroup field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIGroup field is set to the value of the last call.\nfunc (b *TypedObjectReferenceApplyConfiguration) WithAPIGroup(value string) *TypedObjectReferenceApplyConfiguration {\n\tb.APIGroup = &value\n\treturn b\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *TypedObjectReferenceApplyConfiguration) WithKind(value string) *TypedObjectReferenceApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *TypedObjectReferenceApplyConfiguration) WithName(value string) *TypedObjectReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *TypedObjectReferenceApplyConfiguration) WithNamespace(value string) *TypedObjectReferenceApplyConfiguration {\n\tb.Namespace = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/volume.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// VolumeApplyConfiguration represents a declarative configuration of the Volume type for use\n// with apply.\ntype VolumeApplyConfiguration struct {\n\tName                           *string `json:\"name,omitempty\"`\n\tVolumeSourceApplyConfiguration `json:\",inline\"`\n}\n\n// VolumeApplyConfiguration constructs a declarative configuration of the Volume type for use with\n// apply.\nfunc Volume() *VolumeApplyConfiguration {\n\treturn &VolumeApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithName(value string) *VolumeApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithHostPath sets the HostPath field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HostPath field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithHostPath(value *HostPathVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.VolumeSourceApplyConfiguration.HostPath = value\n\treturn b\n}\n\n// WithEmptyDir sets the EmptyDir field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the EmptyDir field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithEmptyDir(value *EmptyDirVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.VolumeSourceApplyConfiguration.EmptyDir = value\n\treturn b\n}\n\n// WithGCEPersistentDisk sets the GCEPersistentDisk field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GCEPersistentDisk field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithGCEPersistentDisk(value *GCEPersistentDiskVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.VolumeSourceApplyConfiguration.GCEPersistentDisk = value\n\treturn b\n}\n\n// WithAWSElasticBlockStore sets the AWSElasticBlockStore field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AWSElasticBlockStore field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithAWSElasticBlockStore(value *AWSElasticBlockStoreVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.VolumeSourceApplyConfiguration.AWSElasticBlockStore = value\n\treturn b\n}\n\n// WithGitRepo sets the GitRepo field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GitRepo field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithGitRepo(value *GitRepoVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.VolumeSourceApplyConfiguration.GitRepo = value\n\treturn b\n}\n\n// WithSecret sets the Secret field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Secret field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithSecret(value *SecretVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.VolumeSourceApplyConfiguration.Secret = value\n\treturn b\n}\n\n// WithNFS sets the NFS field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NFS field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithNFS(value *NFSVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.VolumeSourceApplyConfiguration.NFS = value\n\treturn b\n}\n\n// WithISCSI sets the ISCSI field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ISCSI field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithISCSI(value *ISCSIVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.VolumeSourceApplyConfiguration.ISCSI = value\n\treturn b\n}\n\n// WithGlusterfs sets the Glusterfs field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Glusterfs field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithGlusterfs(value *GlusterfsVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.VolumeSourceApplyConfiguration.Glusterfs = value\n\treturn b\n}\n\n// WithPersistentVolumeClaim sets the PersistentVolumeClaim field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PersistentVolumeClaim field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithPersistentVolumeClaim(value *PersistentVolumeClaimVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.VolumeSourceApplyConfiguration.PersistentVolumeClaim = value\n\treturn b\n}\n\n// WithRBD sets the RBD field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RBD field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithRBD(value *RBDVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.VolumeSourceApplyConfiguration.RBD = value\n\treturn b\n}\n\n// WithFlexVolume sets the FlexVolume field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FlexVolume field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithFlexVolume(value *FlexVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.VolumeSourceApplyConfiguration.FlexVolume = value\n\treturn b\n}\n\n// WithCinder sets the Cinder field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Cinder field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithCinder(value *CinderVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.VolumeSourceApplyConfiguration.Cinder = value\n\treturn b\n}\n\n// WithCephFS sets the CephFS field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CephFS field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithCephFS(value *CephFSVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.VolumeSourceApplyConfiguration.CephFS = value\n\treturn b\n}\n\n// WithFlocker sets the Flocker field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Flocker field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithFlocker(value *FlockerVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.VolumeSourceApplyConfiguration.Flocker = value\n\treturn b\n}\n\n// WithDownwardAPI sets the DownwardAPI field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DownwardAPI field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithDownwardAPI(value *DownwardAPIVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.VolumeSourceApplyConfiguration.DownwardAPI = value\n\treturn b\n}\n\n// WithFC sets the FC field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FC field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithFC(value *FCVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.VolumeSourceApplyConfiguration.FC = value\n\treturn b\n}\n\n// WithAzureFile sets the AzureFile field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AzureFile field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithAzureFile(value *AzureFileVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.VolumeSourceApplyConfiguration.AzureFile = value\n\treturn b\n}\n\n// WithConfigMap sets the ConfigMap field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ConfigMap field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithConfigMap(value *ConfigMapVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.VolumeSourceApplyConfiguration.ConfigMap = value\n\treturn b\n}\n\n// WithVsphereVolume sets the VsphereVolume field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VsphereVolume field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithVsphereVolume(value *VsphereVirtualDiskVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.VolumeSourceApplyConfiguration.VsphereVolume = value\n\treturn b\n}\n\n// WithQuobyte sets the Quobyte field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Quobyte field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithQuobyte(value *QuobyteVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.VolumeSourceApplyConfiguration.Quobyte = value\n\treturn b\n}\n\n// WithAzureDisk sets the AzureDisk field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AzureDisk field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithAzureDisk(value *AzureDiskVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.VolumeSourceApplyConfiguration.AzureDisk = value\n\treturn b\n}\n\n// WithPhotonPersistentDisk sets the PhotonPersistentDisk field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PhotonPersistentDisk field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithPhotonPersistentDisk(value *PhotonPersistentDiskVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.VolumeSourceApplyConfiguration.PhotonPersistentDisk = value\n\treturn b\n}\n\n// WithProjected sets the Projected field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Projected field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithProjected(value *ProjectedVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.VolumeSourceApplyConfiguration.Projected = value\n\treturn b\n}\n\n// WithPortworxVolume sets the PortworxVolume field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PortworxVolume field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithPortworxVolume(value *PortworxVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.VolumeSourceApplyConfiguration.PortworxVolume = value\n\treturn b\n}\n\n// WithScaleIO sets the ScaleIO field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ScaleIO field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithScaleIO(value *ScaleIOVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.VolumeSourceApplyConfiguration.ScaleIO = value\n\treturn b\n}\n\n// WithStorageOS sets the StorageOS field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StorageOS field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithStorageOS(value *StorageOSVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.VolumeSourceApplyConfiguration.StorageOS = value\n\treturn b\n}\n\n// WithCSI sets the CSI field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CSI field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithCSI(value *CSIVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.VolumeSourceApplyConfiguration.CSI = value\n\treturn b\n}\n\n// WithEphemeral sets the Ephemeral field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Ephemeral field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithEphemeral(value *EphemeralVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.VolumeSourceApplyConfiguration.Ephemeral = value\n\treturn b\n}\n\n// WithImage sets the Image field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Image field is set to the value of the last call.\nfunc (b *VolumeApplyConfiguration) WithImage(value *ImageVolumeSourceApplyConfiguration) *VolumeApplyConfiguration {\n\tb.VolumeSourceApplyConfiguration.Image = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/volumedevice.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// VolumeDeviceApplyConfiguration represents a declarative configuration of the VolumeDevice type for use\n// with apply.\ntype VolumeDeviceApplyConfiguration struct {\n\tName       *string `json:\"name,omitempty\"`\n\tDevicePath *string `json:\"devicePath,omitempty\"`\n}\n\n// VolumeDeviceApplyConfiguration constructs a declarative configuration of the VolumeDevice type for use with\n// apply.\nfunc VolumeDevice() *VolumeDeviceApplyConfiguration {\n\treturn &VolumeDeviceApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *VolumeDeviceApplyConfiguration) WithName(value string) *VolumeDeviceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithDevicePath sets the DevicePath field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DevicePath field is set to the value of the last call.\nfunc (b *VolumeDeviceApplyConfiguration) WithDevicePath(value string) *VolumeDeviceApplyConfiguration {\n\tb.DevicePath = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/volumemount.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// VolumeMountApplyConfiguration represents a declarative configuration of the VolumeMount type for use\n// with apply.\ntype VolumeMountApplyConfiguration struct {\n\tName              *string                       `json:\"name,omitempty\"`\n\tReadOnly          *bool                         `json:\"readOnly,omitempty\"`\n\tRecursiveReadOnly *corev1.RecursiveReadOnlyMode `json:\"recursiveReadOnly,omitempty\"`\n\tMountPath         *string                       `json:\"mountPath,omitempty\"`\n\tSubPath           *string                       `json:\"subPath,omitempty\"`\n\tMountPropagation  *corev1.MountPropagationMode  `json:\"mountPropagation,omitempty\"`\n\tSubPathExpr       *string                       `json:\"subPathExpr,omitempty\"`\n}\n\n// VolumeMountApplyConfiguration constructs a declarative configuration of the VolumeMount type for use with\n// apply.\nfunc VolumeMount() *VolumeMountApplyConfiguration {\n\treturn &VolumeMountApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *VolumeMountApplyConfiguration) WithName(value string) *VolumeMountApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *VolumeMountApplyConfiguration) WithReadOnly(value bool) *VolumeMountApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n\n// WithRecursiveReadOnly sets the RecursiveReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RecursiveReadOnly field is set to the value of the last call.\nfunc (b *VolumeMountApplyConfiguration) WithRecursiveReadOnly(value corev1.RecursiveReadOnlyMode) *VolumeMountApplyConfiguration {\n\tb.RecursiveReadOnly = &value\n\treturn b\n}\n\n// WithMountPath sets the MountPath field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MountPath field is set to the value of the last call.\nfunc (b *VolumeMountApplyConfiguration) WithMountPath(value string) *VolumeMountApplyConfiguration {\n\tb.MountPath = &value\n\treturn b\n}\n\n// WithSubPath sets the SubPath field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SubPath field is set to the value of the last call.\nfunc (b *VolumeMountApplyConfiguration) WithSubPath(value string) *VolumeMountApplyConfiguration {\n\tb.SubPath = &value\n\treturn b\n}\n\n// WithMountPropagation sets the MountPropagation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MountPropagation field is set to the value of the last call.\nfunc (b *VolumeMountApplyConfiguration) WithMountPropagation(value corev1.MountPropagationMode) *VolumeMountApplyConfiguration {\n\tb.MountPropagation = &value\n\treturn b\n}\n\n// WithSubPathExpr sets the SubPathExpr field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SubPathExpr field is set to the value of the last call.\nfunc (b *VolumeMountApplyConfiguration) WithSubPathExpr(value string) *VolumeMountApplyConfiguration {\n\tb.SubPathExpr = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/volumemountstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// VolumeMountStatusApplyConfiguration represents a declarative configuration of the VolumeMountStatus type for use\n// with apply.\ntype VolumeMountStatusApplyConfiguration struct {\n\tName              *string                       `json:\"name,omitempty\"`\n\tMountPath         *string                       `json:\"mountPath,omitempty\"`\n\tReadOnly          *bool                         `json:\"readOnly,omitempty\"`\n\tRecursiveReadOnly *corev1.RecursiveReadOnlyMode `json:\"recursiveReadOnly,omitempty\"`\n}\n\n// VolumeMountStatusApplyConfiguration constructs a declarative configuration of the VolumeMountStatus type for use with\n// apply.\nfunc VolumeMountStatus() *VolumeMountStatusApplyConfiguration {\n\treturn &VolumeMountStatusApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *VolumeMountStatusApplyConfiguration) WithName(value string) *VolumeMountStatusApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithMountPath sets the MountPath field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MountPath field is set to the value of the last call.\nfunc (b *VolumeMountStatusApplyConfiguration) WithMountPath(value string) *VolumeMountStatusApplyConfiguration {\n\tb.MountPath = &value\n\treturn b\n}\n\n// WithReadOnly sets the ReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadOnly field is set to the value of the last call.\nfunc (b *VolumeMountStatusApplyConfiguration) WithReadOnly(value bool) *VolumeMountStatusApplyConfiguration {\n\tb.ReadOnly = &value\n\treturn b\n}\n\n// WithRecursiveReadOnly sets the RecursiveReadOnly field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RecursiveReadOnly field is set to the value of the last call.\nfunc (b *VolumeMountStatusApplyConfiguration) WithRecursiveReadOnly(value corev1.RecursiveReadOnlyMode) *VolumeMountStatusApplyConfiguration {\n\tb.RecursiveReadOnly = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/volumenodeaffinity.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// VolumeNodeAffinityApplyConfiguration represents a declarative configuration of the VolumeNodeAffinity type for use\n// with apply.\ntype VolumeNodeAffinityApplyConfiguration struct {\n\tRequired *NodeSelectorApplyConfiguration `json:\"required,omitempty\"`\n}\n\n// VolumeNodeAffinityApplyConfiguration constructs a declarative configuration of the VolumeNodeAffinity type for use with\n// apply.\nfunc VolumeNodeAffinity() *VolumeNodeAffinityApplyConfiguration {\n\treturn &VolumeNodeAffinityApplyConfiguration{}\n}\n\n// WithRequired sets the Required field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Required field is set to the value of the last call.\nfunc (b *VolumeNodeAffinityApplyConfiguration) WithRequired(value *NodeSelectorApplyConfiguration) *VolumeNodeAffinityApplyConfiguration {\n\tb.Required = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/volumeprojection.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// VolumeProjectionApplyConfiguration represents a declarative configuration of the VolumeProjection type for use\n// with apply.\ntype VolumeProjectionApplyConfiguration struct {\n\tSecret              *SecretProjectionApplyConfiguration              `json:\"secret,omitempty\"`\n\tDownwardAPI         *DownwardAPIProjectionApplyConfiguration         `json:\"downwardAPI,omitempty\"`\n\tConfigMap           *ConfigMapProjectionApplyConfiguration           `json:\"configMap,omitempty\"`\n\tServiceAccountToken *ServiceAccountTokenProjectionApplyConfiguration `json:\"serviceAccountToken,omitempty\"`\n\tClusterTrustBundle  *ClusterTrustBundleProjectionApplyConfiguration  `json:\"clusterTrustBundle,omitempty\"`\n}\n\n// VolumeProjectionApplyConfiguration constructs a declarative configuration of the VolumeProjection type for use with\n// apply.\nfunc VolumeProjection() *VolumeProjectionApplyConfiguration {\n\treturn &VolumeProjectionApplyConfiguration{}\n}\n\n// WithSecret sets the Secret field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Secret field is set to the value of the last call.\nfunc (b *VolumeProjectionApplyConfiguration) WithSecret(value *SecretProjectionApplyConfiguration) *VolumeProjectionApplyConfiguration {\n\tb.Secret = value\n\treturn b\n}\n\n// WithDownwardAPI sets the DownwardAPI field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DownwardAPI field is set to the value of the last call.\nfunc (b *VolumeProjectionApplyConfiguration) WithDownwardAPI(value *DownwardAPIProjectionApplyConfiguration) *VolumeProjectionApplyConfiguration {\n\tb.DownwardAPI = value\n\treturn b\n}\n\n// WithConfigMap sets the ConfigMap field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ConfigMap field is set to the value of the last call.\nfunc (b *VolumeProjectionApplyConfiguration) WithConfigMap(value *ConfigMapProjectionApplyConfiguration) *VolumeProjectionApplyConfiguration {\n\tb.ConfigMap = value\n\treturn b\n}\n\n// WithServiceAccountToken sets the ServiceAccountToken field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ServiceAccountToken field is set to the value of the last call.\nfunc (b *VolumeProjectionApplyConfiguration) WithServiceAccountToken(value *ServiceAccountTokenProjectionApplyConfiguration) *VolumeProjectionApplyConfiguration {\n\tb.ServiceAccountToken = value\n\treturn b\n}\n\n// WithClusterTrustBundle sets the ClusterTrustBundle field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ClusterTrustBundle field is set to the value of the last call.\nfunc (b *VolumeProjectionApplyConfiguration) WithClusterTrustBundle(value *ClusterTrustBundleProjectionApplyConfiguration) *VolumeProjectionApplyConfiguration {\n\tb.ClusterTrustBundle = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/volumeresourcerequirements.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// VolumeResourceRequirementsApplyConfiguration represents a declarative configuration of the VolumeResourceRequirements type for use\n// with apply.\ntype VolumeResourceRequirementsApplyConfiguration struct {\n\tLimits   *corev1.ResourceList `json:\"limits,omitempty\"`\n\tRequests *corev1.ResourceList `json:\"requests,omitempty\"`\n}\n\n// VolumeResourceRequirementsApplyConfiguration constructs a declarative configuration of the VolumeResourceRequirements type for use with\n// apply.\nfunc VolumeResourceRequirements() *VolumeResourceRequirementsApplyConfiguration {\n\treturn &VolumeResourceRequirementsApplyConfiguration{}\n}\n\n// WithLimits sets the Limits field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Limits field is set to the value of the last call.\nfunc (b *VolumeResourceRequirementsApplyConfiguration) WithLimits(value corev1.ResourceList) *VolumeResourceRequirementsApplyConfiguration {\n\tb.Limits = &value\n\treturn b\n}\n\n// WithRequests sets the Requests field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Requests field is set to the value of the last call.\nfunc (b *VolumeResourceRequirementsApplyConfiguration) WithRequests(value corev1.ResourceList) *VolumeResourceRequirementsApplyConfiguration {\n\tb.Requests = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/volumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// VolumeSourceApplyConfiguration represents a declarative configuration of the VolumeSource type for use\n// with apply.\ntype VolumeSourceApplyConfiguration struct {\n\tHostPath              *HostPathVolumeSourceApplyConfiguration              `json:\"hostPath,omitempty\"`\n\tEmptyDir              *EmptyDirVolumeSourceApplyConfiguration              `json:\"emptyDir,omitempty\"`\n\tGCEPersistentDisk     *GCEPersistentDiskVolumeSourceApplyConfiguration     `json:\"gcePersistentDisk,omitempty\"`\n\tAWSElasticBlockStore  *AWSElasticBlockStoreVolumeSourceApplyConfiguration  `json:\"awsElasticBlockStore,omitempty\"`\n\tGitRepo               *GitRepoVolumeSourceApplyConfiguration               `json:\"gitRepo,omitempty\"`\n\tSecret                *SecretVolumeSourceApplyConfiguration                `json:\"secret,omitempty\"`\n\tNFS                   *NFSVolumeSourceApplyConfiguration                   `json:\"nfs,omitempty\"`\n\tISCSI                 *ISCSIVolumeSourceApplyConfiguration                 `json:\"iscsi,omitempty\"`\n\tGlusterfs             *GlusterfsVolumeSourceApplyConfiguration             `json:\"glusterfs,omitempty\"`\n\tPersistentVolumeClaim *PersistentVolumeClaimVolumeSourceApplyConfiguration `json:\"persistentVolumeClaim,omitempty\"`\n\tRBD                   *RBDVolumeSourceApplyConfiguration                   `json:\"rbd,omitempty\"`\n\tFlexVolume            *FlexVolumeSourceApplyConfiguration                  `json:\"flexVolume,omitempty\"`\n\tCinder                *CinderVolumeSourceApplyConfiguration                `json:\"cinder,omitempty\"`\n\tCephFS                *CephFSVolumeSourceApplyConfiguration                `json:\"cephfs,omitempty\"`\n\tFlocker               *FlockerVolumeSourceApplyConfiguration               `json:\"flocker,omitempty\"`\n\tDownwardAPI           *DownwardAPIVolumeSourceApplyConfiguration           `json:\"downwardAPI,omitempty\"`\n\tFC                    *FCVolumeSourceApplyConfiguration                    `json:\"fc,omitempty\"`\n\tAzureFile             *AzureFileVolumeSourceApplyConfiguration             `json:\"azureFile,omitempty\"`\n\tConfigMap             *ConfigMapVolumeSourceApplyConfiguration             `json:\"configMap,omitempty\"`\n\tVsphereVolume         *VsphereVirtualDiskVolumeSourceApplyConfiguration    `json:\"vsphereVolume,omitempty\"`\n\tQuobyte               *QuobyteVolumeSourceApplyConfiguration               `json:\"quobyte,omitempty\"`\n\tAzureDisk             *AzureDiskVolumeSourceApplyConfiguration             `json:\"azureDisk,omitempty\"`\n\tPhotonPersistentDisk  *PhotonPersistentDiskVolumeSourceApplyConfiguration  `json:\"photonPersistentDisk,omitempty\"`\n\tProjected             *ProjectedVolumeSourceApplyConfiguration             `json:\"projected,omitempty\"`\n\tPortworxVolume        *PortworxVolumeSourceApplyConfiguration              `json:\"portworxVolume,omitempty\"`\n\tScaleIO               *ScaleIOVolumeSourceApplyConfiguration               `json:\"scaleIO,omitempty\"`\n\tStorageOS             *StorageOSVolumeSourceApplyConfiguration             `json:\"storageos,omitempty\"`\n\tCSI                   *CSIVolumeSourceApplyConfiguration                   `json:\"csi,omitempty\"`\n\tEphemeral             *EphemeralVolumeSourceApplyConfiguration             `json:\"ephemeral,omitempty\"`\n\tImage                 *ImageVolumeSourceApplyConfiguration                 `json:\"image,omitempty\"`\n}\n\n// VolumeSourceApplyConfiguration constructs a declarative configuration of the VolumeSource type for use with\n// apply.\nfunc VolumeSource() *VolumeSourceApplyConfiguration {\n\treturn &VolumeSourceApplyConfiguration{}\n}\n\n// WithHostPath sets the HostPath field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HostPath field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithHostPath(value *HostPathVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.HostPath = value\n\treturn b\n}\n\n// WithEmptyDir sets the EmptyDir field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the EmptyDir field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithEmptyDir(value *EmptyDirVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.EmptyDir = value\n\treturn b\n}\n\n// WithGCEPersistentDisk sets the GCEPersistentDisk field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GCEPersistentDisk field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithGCEPersistentDisk(value *GCEPersistentDiskVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.GCEPersistentDisk = value\n\treturn b\n}\n\n// WithAWSElasticBlockStore sets the AWSElasticBlockStore field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AWSElasticBlockStore field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithAWSElasticBlockStore(value *AWSElasticBlockStoreVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.AWSElasticBlockStore = value\n\treturn b\n}\n\n// WithGitRepo sets the GitRepo field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GitRepo field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithGitRepo(value *GitRepoVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.GitRepo = value\n\treturn b\n}\n\n// WithSecret sets the Secret field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Secret field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithSecret(value *SecretVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.Secret = value\n\treturn b\n}\n\n// WithNFS sets the NFS field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NFS field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithNFS(value *NFSVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.NFS = value\n\treturn b\n}\n\n// WithISCSI sets the ISCSI field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ISCSI field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithISCSI(value *ISCSIVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.ISCSI = value\n\treturn b\n}\n\n// WithGlusterfs sets the Glusterfs field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Glusterfs field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithGlusterfs(value *GlusterfsVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.Glusterfs = value\n\treturn b\n}\n\n// WithPersistentVolumeClaim sets the PersistentVolumeClaim field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PersistentVolumeClaim field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithPersistentVolumeClaim(value *PersistentVolumeClaimVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.PersistentVolumeClaim = value\n\treturn b\n}\n\n// WithRBD sets the RBD field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RBD field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithRBD(value *RBDVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.RBD = value\n\treturn b\n}\n\n// WithFlexVolume sets the FlexVolume field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FlexVolume field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithFlexVolume(value *FlexVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.FlexVolume = value\n\treturn b\n}\n\n// WithCinder sets the Cinder field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Cinder field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithCinder(value *CinderVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.Cinder = value\n\treturn b\n}\n\n// WithCephFS sets the CephFS field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CephFS field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithCephFS(value *CephFSVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.CephFS = value\n\treturn b\n}\n\n// WithFlocker sets the Flocker field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Flocker field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithFlocker(value *FlockerVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.Flocker = value\n\treturn b\n}\n\n// WithDownwardAPI sets the DownwardAPI field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DownwardAPI field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithDownwardAPI(value *DownwardAPIVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.DownwardAPI = value\n\treturn b\n}\n\n// WithFC sets the FC field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FC field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithFC(value *FCVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.FC = value\n\treturn b\n}\n\n// WithAzureFile sets the AzureFile field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AzureFile field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithAzureFile(value *AzureFileVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.AzureFile = value\n\treturn b\n}\n\n// WithConfigMap sets the ConfigMap field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ConfigMap field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithConfigMap(value *ConfigMapVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.ConfigMap = value\n\treturn b\n}\n\n// WithVsphereVolume sets the VsphereVolume field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VsphereVolume field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithVsphereVolume(value *VsphereVirtualDiskVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.VsphereVolume = value\n\treturn b\n}\n\n// WithQuobyte sets the Quobyte field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Quobyte field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithQuobyte(value *QuobyteVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.Quobyte = value\n\treturn b\n}\n\n// WithAzureDisk sets the AzureDisk field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AzureDisk field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithAzureDisk(value *AzureDiskVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.AzureDisk = value\n\treturn b\n}\n\n// WithPhotonPersistentDisk sets the PhotonPersistentDisk field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PhotonPersistentDisk field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithPhotonPersistentDisk(value *PhotonPersistentDiskVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.PhotonPersistentDisk = value\n\treturn b\n}\n\n// WithProjected sets the Projected field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Projected field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithProjected(value *ProjectedVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.Projected = value\n\treturn b\n}\n\n// WithPortworxVolume sets the PortworxVolume field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PortworxVolume field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithPortworxVolume(value *PortworxVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.PortworxVolume = value\n\treturn b\n}\n\n// WithScaleIO sets the ScaleIO field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ScaleIO field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithScaleIO(value *ScaleIOVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.ScaleIO = value\n\treturn b\n}\n\n// WithStorageOS sets the StorageOS field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StorageOS field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithStorageOS(value *StorageOSVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.StorageOS = value\n\treturn b\n}\n\n// WithCSI sets the CSI field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CSI field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithCSI(value *CSIVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.CSI = value\n\treturn b\n}\n\n// WithEphemeral sets the Ephemeral field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Ephemeral field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithEphemeral(value *EphemeralVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.Ephemeral = value\n\treturn b\n}\n\n// WithImage sets the Image field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Image field is set to the value of the last call.\nfunc (b *VolumeSourceApplyConfiguration) WithImage(value *ImageVolumeSourceApplyConfiguration) *VolumeSourceApplyConfiguration {\n\tb.Image = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/vspherevirtualdiskvolumesource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// VsphereVirtualDiskVolumeSourceApplyConfiguration represents a declarative configuration of the VsphereVirtualDiskVolumeSource type for use\n// with apply.\ntype VsphereVirtualDiskVolumeSourceApplyConfiguration struct {\n\tVolumePath        *string `json:\"volumePath,omitempty\"`\n\tFSType            *string `json:\"fsType,omitempty\"`\n\tStoragePolicyName *string `json:\"storagePolicyName,omitempty\"`\n\tStoragePolicyID   *string `json:\"storagePolicyID,omitempty\"`\n}\n\n// VsphereVirtualDiskVolumeSourceApplyConfiguration constructs a declarative configuration of the VsphereVirtualDiskVolumeSource type for use with\n// apply.\nfunc VsphereVirtualDiskVolumeSource() *VsphereVirtualDiskVolumeSourceApplyConfiguration {\n\treturn &VsphereVirtualDiskVolumeSourceApplyConfiguration{}\n}\n\n// WithVolumePath sets the VolumePath field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VolumePath field is set to the value of the last call.\nfunc (b *VsphereVirtualDiskVolumeSourceApplyConfiguration) WithVolumePath(value string) *VsphereVirtualDiskVolumeSourceApplyConfiguration {\n\tb.VolumePath = &value\n\treturn b\n}\n\n// WithFSType sets the FSType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSType field is set to the value of the last call.\nfunc (b *VsphereVirtualDiskVolumeSourceApplyConfiguration) WithFSType(value string) *VsphereVirtualDiskVolumeSourceApplyConfiguration {\n\tb.FSType = &value\n\treturn b\n}\n\n// WithStoragePolicyName sets the StoragePolicyName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StoragePolicyName field is set to the value of the last call.\nfunc (b *VsphereVirtualDiskVolumeSourceApplyConfiguration) WithStoragePolicyName(value string) *VsphereVirtualDiskVolumeSourceApplyConfiguration {\n\tb.StoragePolicyName = &value\n\treturn b\n}\n\n// WithStoragePolicyID sets the StoragePolicyID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StoragePolicyID field is set to the value of the last call.\nfunc (b *VsphereVirtualDiskVolumeSourceApplyConfiguration) WithStoragePolicyID(value string) *VsphereVirtualDiskVolumeSourceApplyConfiguration {\n\tb.StoragePolicyID = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/weightedpodaffinityterm.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// WeightedPodAffinityTermApplyConfiguration represents a declarative configuration of the WeightedPodAffinityTerm type for use\n// with apply.\ntype WeightedPodAffinityTermApplyConfiguration struct {\n\tWeight          *int32                             `json:\"weight,omitempty\"`\n\tPodAffinityTerm *PodAffinityTermApplyConfiguration `json:\"podAffinityTerm,omitempty\"`\n}\n\n// WeightedPodAffinityTermApplyConfiguration constructs a declarative configuration of the WeightedPodAffinityTerm type for use with\n// apply.\nfunc WeightedPodAffinityTerm() *WeightedPodAffinityTermApplyConfiguration {\n\treturn &WeightedPodAffinityTermApplyConfiguration{}\n}\n\n// WithWeight sets the Weight field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Weight field is set to the value of the last call.\nfunc (b *WeightedPodAffinityTermApplyConfiguration) WithWeight(value int32) *WeightedPodAffinityTermApplyConfiguration {\n\tb.Weight = &value\n\treturn b\n}\n\n// WithPodAffinityTerm sets the PodAffinityTerm field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PodAffinityTerm field is set to the value of the last call.\nfunc (b *WeightedPodAffinityTermApplyConfiguration) WithPodAffinityTerm(value *PodAffinityTermApplyConfiguration) *WeightedPodAffinityTermApplyConfiguration {\n\tb.PodAffinityTerm = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/core/v1/windowssecuritycontextoptions.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// WindowsSecurityContextOptionsApplyConfiguration represents a declarative configuration of the WindowsSecurityContextOptions type for use\n// with apply.\ntype WindowsSecurityContextOptionsApplyConfiguration struct {\n\tGMSACredentialSpecName *string `json:\"gmsaCredentialSpecName,omitempty\"`\n\tGMSACredentialSpec     *string `json:\"gmsaCredentialSpec,omitempty\"`\n\tRunAsUserName          *string `json:\"runAsUserName,omitempty\"`\n\tHostProcess            *bool   `json:\"hostProcess,omitempty\"`\n}\n\n// WindowsSecurityContextOptionsApplyConfiguration constructs a declarative configuration of the WindowsSecurityContextOptions type for use with\n// apply.\nfunc WindowsSecurityContextOptions() *WindowsSecurityContextOptionsApplyConfiguration {\n\treturn &WindowsSecurityContextOptionsApplyConfiguration{}\n}\n\n// WithGMSACredentialSpecName sets the GMSACredentialSpecName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GMSACredentialSpecName field is set to the value of the last call.\nfunc (b *WindowsSecurityContextOptionsApplyConfiguration) WithGMSACredentialSpecName(value string) *WindowsSecurityContextOptionsApplyConfiguration {\n\tb.GMSACredentialSpecName = &value\n\treturn b\n}\n\n// WithGMSACredentialSpec sets the GMSACredentialSpec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GMSACredentialSpec field is set to the value of the last call.\nfunc (b *WindowsSecurityContextOptionsApplyConfiguration) WithGMSACredentialSpec(value string) *WindowsSecurityContextOptionsApplyConfiguration {\n\tb.GMSACredentialSpec = &value\n\treturn b\n}\n\n// WithRunAsUserName sets the RunAsUserName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RunAsUserName field is set to the value of the last call.\nfunc (b *WindowsSecurityContextOptionsApplyConfiguration) WithRunAsUserName(value string) *WindowsSecurityContextOptionsApplyConfiguration {\n\tb.RunAsUserName = &value\n\treturn b\n}\n\n// WithHostProcess sets the HostProcess field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HostProcess field is set to the value of the last call.\nfunc (b *WindowsSecurityContextOptionsApplyConfiguration) WithHostProcess(value bool) *WindowsSecurityContextOptionsApplyConfiguration {\n\tb.HostProcess = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/discovery/v1/endpoint.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n)\n\n// EndpointApplyConfiguration represents a declarative configuration of the Endpoint type for use\n// with apply.\ntype EndpointApplyConfiguration struct {\n\tAddresses          []string                                  `json:\"addresses,omitempty\"`\n\tConditions         *EndpointConditionsApplyConfiguration     `json:\"conditions,omitempty\"`\n\tHostname           *string                                   `json:\"hostname,omitempty\"`\n\tTargetRef          *corev1.ObjectReferenceApplyConfiguration `json:\"targetRef,omitempty\"`\n\tDeprecatedTopology map[string]string                         `json:\"deprecatedTopology,omitempty\"`\n\tNodeName           *string                                   `json:\"nodeName,omitempty\"`\n\tZone               *string                                   `json:\"zone,omitempty\"`\n\tHints              *EndpointHintsApplyConfiguration          `json:\"hints,omitempty\"`\n}\n\n// EndpointApplyConfiguration constructs a declarative configuration of the Endpoint type for use with\n// apply.\nfunc Endpoint() *EndpointApplyConfiguration {\n\treturn &EndpointApplyConfiguration{}\n}\n\n// WithAddresses adds the given value to the Addresses field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Addresses field.\nfunc (b *EndpointApplyConfiguration) WithAddresses(values ...string) *EndpointApplyConfiguration {\n\tfor i := range values {\n\t\tb.Addresses = append(b.Addresses, values[i])\n\t}\n\treturn b\n}\n\n// WithConditions sets the Conditions field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Conditions field is set to the value of the last call.\nfunc (b *EndpointApplyConfiguration) WithConditions(value *EndpointConditionsApplyConfiguration) *EndpointApplyConfiguration {\n\tb.Conditions = value\n\treturn b\n}\n\n// WithHostname sets the Hostname field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Hostname field is set to the value of the last call.\nfunc (b *EndpointApplyConfiguration) WithHostname(value string) *EndpointApplyConfiguration {\n\tb.Hostname = &value\n\treturn b\n}\n\n// WithTargetRef sets the TargetRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TargetRef field is set to the value of the last call.\nfunc (b *EndpointApplyConfiguration) WithTargetRef(value *corev1.ObjectReferenceApplyConfiguration) *EndpointApplyConfiguration {\n\tb.TargetRef = value\n\treturn b\n}\n\n// WithDeprecatedTopology puts the entries into the DeprecatedTopology field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the DeprecatedTopology field,\n// overwriting an existing map entries in DeprecatedTopology field with the same key.\nfunc (b *EndpointApplyConfiguration) WithDeprecatedTopology(entries map[string]string) *EndpointApplyConfiguration {\n\tif b.DeprecatedTopology == nil && len(entries) > 0 {\n\t\tb.DeprecatedTopology = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.DeprecatedTopology[k] = v\n\t}\n\treturn b\n}\n\n// WithNodeName sets the NodeName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeName field is set to the value of the last call.\nfunc (b *EndpointApplyConfiguration) WithNodeName(value string) *EndpointApplyConfiguration {\n\tb.NodeName = &value\n\treturn b\n}\n\n// WithZone sets the Zone field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Zone field is set to the value of the last call.\nfunc (b *EndpointApplyConfiguration) WithZone(value string) *EndpointApplyConfiguration {\n\tb.Zone = &value\n\treturn b\n}\n\n// WithHints sets the Hints field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Hints field is set to the value of the last call.\nfunc (b *EndpointApplyConfiguration) WithHints(value *EndpointHintsApplyConfiguration) *EndpointApplyConfiguration {\n\tb.Hints = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/discovery/v1/endpointconditions.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// EndpointConditionsApplyConfiguration represents a declarative configuration of the EndpointConditions type for use\n// with apply.\ntype EndpointConditionsApplyConfiguration struct {\n\tReady       *bool `json:\"ready,omitempty\"`\n\tServing     *bool `json:\"serving,omitempty\"`\n\tTerminating *bool `json:\"terminating,omitempty\"`\n}\n\n// EndpointConditionsApplyConfiguration constructs a declarative configuration of the EndpointConditions type for use with\n// apply.\nfunc EndpointConditions() *EndpointConditionsApplyConfiguration {\n\treturn &EndpointConditionsApplyConfiguration{}\n}\n\n// WithReady sets the Ready field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Ready field is set to the value of the last call.\nfunc (b *EndpointConditionsApplyConfiguration) WithReady(value bool) *EndpointConditionsApplyConfiguration {\n\tb.Ready = &value\n\treturn b\n}\n\n// WithServing sets the Serving field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Serving field is set to the value of the last call.\nfunc (b *EndpointConditionsApplyConfiguration) WithServing(value bool) *EndpointConditionsApplyConfiguration {\n\tb.Serving = &value\n\treturn b\n}\n\n// WithTerminating sets the Terminating field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Terminating field is set to the value of the last call.\nfunc (b *EndpointConditionsApplyConfiguration) WithTerminating(value bool) *EndpointConditionsApplyConfiguration {\n\tb.Terminating = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/discovery/v1/endpointhints.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// EndpointHintsApplyConfiguration represents a declarative configuration of the EndpointHints type for use\n// with apply.\ntype EndpointHintsApplyConfiguration struct {\n\tForZones []ForZoneApplyConfiguration `json:\"forZones,omitempty\"`\n}\n\n// EndpointHintsApplyConfiguration constructs a declarative configuration of the EndpointHints type for use with\n// apply.\nfunc EndpointHints() *EndpointHintsApplyConfiguration {\n\treturn &EndpointHintsApplyConfiguration{}\n}\n\n// WithForZones adds the given value to the ForZones field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ForZones field.\nfunc (b *EndpointHintsApplyConfiguration) WithForZones(values ...*ForZoneApplyConfiguration) *EndpointHintsApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithForZones\")\n\t\t}\n\t\tb.ForZones = append(b.ForZones, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/discovery/v1/endpointport.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// EndpointPortApplyConfiguration represents a declarative configuration of the EndpointPort type for use\n// with apply.\ntype EndpointPortApplyConfiguration struct {\n\tName        *string          `json:\"name,omitempty\"`\n\tProtocol    *corev1.Protocol `json:\"protocol,omitempty\"`\n\tPort        *int32           `json:\"port,omitempty\"`\n\tAppProtocol *string          `json:\"appProtocol,omitempty\"`\n}\n\n// EndpointPortApplyConfiguration constructs a declarative configuration of the EndpointPort type for use with\n// apply.\nfunc EndpointPort() *EndpointPortApplyConfiguration {\n\treturn &EndpointPortApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *EndpointPortApplyConfiguration) WithName(value string) *EndpointPortApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithProtocol sets the Protocol field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Protocol field is set to the value of the last call.\nfunc (b *EndpointPortApplyConfiguration) WithProtocol(value corev1.Protocol) *EndpointPortApplyConfiguration {\n\tb.Protocol = &value\n\treturn b\n}\n\n// WithPort sets the Port field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Port field is set to the value of the last call.\nfunc (b *EndpointPortApplyConfiguration) WithPort(value int32) *EndpointPortApplyConfiguration {\n\tb.Port = &value\n\treturn b\n}\n\n// WithAppProtocol sets the AppProtocol field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AppProtocol field is set to the value of the last call.\nfunc (b *EndpointPortApplyConfiguration) WithAppProtocol(value string) *EndpointPortApplyConfiguration {\n\tb.AppProtocol = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/discovery/v1/endpointslice.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tdiscoveryv1 \"k8s.io/api/discovery/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// EndpointSliceApplyConfiguration represents a declarative configuration of the EndpointSlice type for use\n// with apply.\ntype EndpointSliceApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tAddressType                          *discoveryv1.AddressType         `json:\"addressType,omitempty\"`\n\tEndpoints                            []EndpointApplyConfiguration     `json:\"endpoints,omitempty\"`\n\tPorts                                []EndpointPortApplyConfiguration `json:\"ports,omitempty\"`\n}\n\n// EndpointSlice constructs a declarative configuration of the EndpointSlice type for use with\n// apply.\nfunc EndpointSlice(name, namespace string) *EndpointSliceApplyConfiguration {\n\tb := &EndpointSliceApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"EndpointSlice\")\n\tb.WithAPIVersion(\"discovery.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractEndpointSlice extracts the applied configuration owned by fieldManager from\n// endpointSlice. If no managedFields are found in endpointSlice for fieldManager, a\n// EndpointSliceApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// endpointSlice must be a unmodified EndpointSlice API object that was retrieved from the Kubernetes API.\n// ExtractEndpointSlice provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractEndpointSlice(endpointSlice *discoveryv1.EndpointSlice, fieldManager string) (*EndpointSliceApplyConfiguration, error) {\n\treturn extractEndpointSlice(endpointSlice, fieldManager, \"\")\n}\n\n// ExtractEndpointSliceStatus is the same as ExtractEndpointSlice except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractEndpointSliceStatus(endpointSlice *discoveryv1.EndpointSlice, fieldManager string) (*EndpointSliceApplyConfiguration, error) {\n\treturn extractEndpointSlice(endpointSlice, fieldManager, \"status\")\n}\n\nfunc extractEndpointSlice(endpointSlice *discoveryv1.EndpointSlice, fieldManager string, subresource string) (*EndpointSliceApplyConfiguration, error) {\n\tb := &EndpointSliceApplyConfiguration{}\n\terr := managedfields.ExtractInto(endpointSlice, internal.Parser().Type(\"io.k8s.api.discovery.v1.EndpointSlice\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(endpointSlice.Name)\n\tb.WithNamespace(endpointSlice.Namespace)\n\n\tb.WithKind(\"EndpointSlice\")\n\tb.WithAPIVersion(\"discovery.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithKind(value string) *EndpointSliceApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithAPIVersion(value string) *EndpointSliceApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithName(value string) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithGenerateName(value string) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithNamespace(value string) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithUID(value types.UID) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithResourceVersion(value string) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithGeneration(value int64) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *EndpointSliceApplyConfiguration) WithLabels(entries map[string]string) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *EndpointSliceApplyConfiguration) WithAnnotations(entries map[string]string) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *EndpointSliceApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *EndpointSliceApplyConfiguration) WithFinalizers(values ...string) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *EndpointSliceApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithAddressType sets the AddressType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AddressType field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithAddressType(value discoveryv1.AddressType) *EndpointSliceApplyConfiguration {\n\tb.AddressType = &value\n\treturn b\n}\n\n// WithEndpoints adds the given value to the Endpoints field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Endpoints field.\nfunc (b *EndpointSliceApplyConfiguration) WithEndpoints(values ...*EndpointApplyConfiguration) *EndpointSliceApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithEndpoints\")\n\t\t}\n\t\tb.Endpoints = append(b.Endpoints, *values[i])\n\t}\n\treturn b\n}\n\n// WithPorts adds the given value to the Ports field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ports field.\nfunc (b *EndpointSliceApplyConfiguration) WithPorts(values ...*EndpointPortApplyConfiguration) *EndpointSliceApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPorts\")\n\t\t}\n\t\tb.Ports = append(b.Ports, *values[i])\n\t}\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *EndpointSliceApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/discovery/v1/forzone.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ForZoneApplyConfiguration represents a declarative configuration of the ForZone type for use\n// with apply.\ntype ForZoneApplyConfiguration struct {\n\tName *string `json:\"name,omitempty\"`\n}\n\n// ForZoneApplyConfiguration constructs a declarative configuration of the ForZone type for use with\n// apply.\nfunc ForZone() *ForZoneApplyConfiguration {\n\treturn &ForZoneApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ForZoneApplyConfiguration) WithName(value string) *ForZoneApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/discovery/v1beta1/endpoint.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n)\n\n// EndpointApplyConfiguration represents a declarative configuration of the Endpoint type for use\n// with apply.\ntype EndpointApplyConfiguration struct {\n\tAddresses  []string                              `json:\"addresses,omitempty\"`\n\tConditions *EndpointConditionsApplyConfiguration `json:\"conditions,omitempty\"`\n\tHostname   *string                               `json:\"hostname,omitempty\"`\n\tTargetRef  *v1.ObjectReferenceApplyConfiguration `json:\"targetRef,omitempty\"`\n\tTopology   map[string]string                     `json:\"topology,omitempty\"`\n\tNodeName   *string                               `json:\"nodeName,omitempty\"`\n\tHints      *EndpointHintsApplyConfiguration      `json:\"hints,omitempty\"`\n}\n\n// EndpointApplyConfiguration constructs a declarative configuration of the Endpoint type for use with\n// apply.\nfunc Endpoint() *EndpointApplyConfiguration {\n\treturn &EndpointApplyConfiguration{}\n}\n\n// WithAddresses adds the given value to the Addresses field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Addresses field.\nfunc (b *EndpointApplyConfiguration) WithAddresses(values ...string) *EndpointApplyConfiguration {\n\tfor i := range values {\n\t\tb.Addresses = append(b.Addresses, values[i])\n\t}\n\treturn b\n}\n\n// WithConditions sets the Conditions field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Conditions field is set to the value of the last call.\nfunc (b *EndpointApplyConfiguration) WithConditions(value *EndpointConditionsApplyConfiguration) *EndpointApplyConfiguration {\n\tb.Conditions = value\n\treturn b\n}\n\n// WithHostname sets the Hostname field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Hostname field is set to the value of the last call.\nfunc (b *EndpointApplyConfiguration) WithHostname(value string) *EndpointApplyConfiguration {\n\tb.Hostname = &value\n\treturn b\n}\n\n// WithTargetRef sets the TargetRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TargetRef field is set to the value of the last call.\nfunc (b *EndpointApplyConfiguration) WithTargetRef(value *v1.ObjectReferenceApplyConfiguration) *EndpointApplyConfiguration {\n\tb.TargetRef = value\n\treturn b\n}\n\n// WithTopology puts the entries into the Topology field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Topology field,\n// overwriting an existing map entries in Topology field with the same key.\nfunc (b *EndpointApplyConfiguration) WithTopology(entries map[string]string) *EndpointApplyConfiguration {\n\tif b.Topology == nil && len(entries) > 0 {\n\t\tb.Topology = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Topology[k] = v\n\t}\n\treturn b\n}\n\n// WithNodeName sets the NodeName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeName field is set to the value of the last call.\nfunc (b *EndpointApplyConfiguration) WithNodeName(value string) *EndpointApplyConfiguration {\n\tb.NodeName = &value\n\treturn b\n}\n\n// WithHints sets the Hints field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Hints field is set to the value of the last call.\nfunc (b *EndpointApplyConfiguration) WithHints(value *EndpointHintsApplyConfiguration) *EndpointApplyConfiguration {\n\tb.Hints = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/discovery/v1beta1/endpointconditions.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// EndpointConditionsApplyConfiguration represents a declarative configuration of the EndpointConditions type for use\n// with apply.\ntype EndpointConditionsApplyConfiguration struct {\n\tReady       *bool `json:\"ready,omitempty\"`\n\tServing     *bool `json:\"serving,omitempty\"`\n\tTerminating *bool `json:\"terminating,omitempty\"`\n}\n\n// EndpointConditionsApplyConfiguration constructs a declarative configuration of the EndpointConditions type for use with\n// apply.\nfunc EndpointConditions() *EndpointConditionsApplyConfiguration {\n\treturn &EndpointConditionsApplyConfiguration{}\n}\n\n// WithReady sets the Ready field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Ready field is set to the value of the last call.\nfunc (b *EndpointConditionsApplyConfiguration) WithReady(value bool) *EndpointConditionsApplyConfiguration {\n\tb.Ready = &value\n\treturn b\n}\n\n// WithServing sets the Serving field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Serving field is set to the value of the last call.\nfunc (b *EndpointConditionsApplyConfiguration) WithServing(value bool) *EndpointConditionsApplyConfiguration {\n\tb.Serving = &value\n\treturn b\n}\n\n// WithTerminating sets the Terminating field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Terminating field is set to the value of the last call.\nfunc (b *EndpointConditionsApplyConfiguration) WithTerminating(value bool) *EndpointConditionsApplyConfiguration {\n\tb.Terminating = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/discovery/v1beta1/endpointhints.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// EndpointHintsApplyConfiguration represents a declarative configuration of the EndpointHints type for use\n// with apply.\ntype EndpointHintsApplyConfiguration struct {\n\tForZones []ForZoneApplyConfiguration `json:\"forZones,omitempty\"`\n}\n\n// EndpointHintsApplyConfiguration constructs a declarative configuration of the EndpointHints type for use with\n// apply.\nfunc EndpointHints() *EndpointHintsApplyConfiguration {\n\treturn &EndpointHintsApplyConfiguration{}\n}\n\n// WithForZones adds the given value to the ForZones field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ForZones field.\nfunc (b *EndpointHintsApplyConfiguration) WithForZones(values ...*ForZoneApplyConfiguration) *EndpointHintsApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithForZones\")\n\t\t}\n\t\tb.ForZones = append(b.ForZones, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/discovery/v1beta1/endpointport.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// EndpointPortApplyConfiguration represents a declarative configuration of the EndpointPort type for use\n// with apply.\ntype EndpointPortApplyConfiguration struct {\n\tName        *string      `json:\"name,omitempty\"`\n\tProtocol    *v1.Protocol `json:\"protocol,omitempty\"`\n\tPort        *int32       `json:\"port,omitempty\"`\n\tAppProtocol *string      `json:\"appProtocol,omitempty\"`\n}\n\n// EndpointPortApplyConfiguration constructs a declarative configuration of the EndpointPort type for use with\n// apply.\nfunc EndpointPort() *EndpointPortApplyConfiguration {\n\treturn &EndpointPortApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *EndpointPortApplyConfiguration) WithName(value string) *EndpointPortApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithProtocol sets the Protocol field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Protocol field is set to the value of the last call.\nfunc (b *EndpointPortApplyConfiguration) WithProtocol(value v1.Protocol) *EndpointPortApplyConfiguration {\n\tb.Protocol = &value\n\treturn b\n}\n\n// WithPort sets the Port field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Port field is set to the value of the last call.\nfunc (b *EndpointPortApplyConfiguration) WithPort(value int32) *EndpointPortApplyConfiguration {\n\tb.Port = &value\n\treturn b\n}\n\n// WithAppProtocol sets the AppProtocol field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AppProtocol field is set to the value of the last call.\nfunc (b *EndpointPortApplyConfiguration) WithAppProtocol(value string) *EndpointPortApplyConfiguration {\n\tb.AppProtocol = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/discovery/v1beta1/endpointslice.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tdiscoveryv1beta1 \"k8s.io/api/discovery/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// EndpointSliceApplyConfiguration represents a declarative configuration of the EndpointSlice type for use\n// with apply.\ntype EndpointSliceApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tAddressType                      *discoveryv1beta1.AddressType    `json:\"addressType,omitempty\"`\n\tEndpoints                        []EndpointApplyConfiguration     `json:\"endpoints,omitempty\"`\n\tPorts                            []EndpointPortApplyConfiguration `json:\"ports,omitempty\"`\n}\n\n// EndpointSlice constructs a declarative configuration of the EndpointSlice type for use with\n// apply.\nfunc EndpointSlice(name, namespace string) *EndpointSliceApplyConfiguration {\n\tb := &EndpointSliceApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"EndpointSlice\")\n\tb.WithAPIVersion(\"discovery.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractEndpointSlice extracts the applied configuration owned by fieldManager from\n// endpointSlice. If no managedFields are found in endpointSlice for fieldManager, a\n// EndpointSliceApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// endpointSlice must be a unmodified EndpointSlice API object that was retrieved from the Kubernetes API.\n// ExtractEndpointSlice provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractEndpointSlice(endpointSlice *discoveryv1beta1.EndpointSlice, fieldManager string) (*EndpointSliceApplyConfiguration, error) {\n\treturn extractEndpointSlice(endpointSlice, fieldManager, \"\")\n}\n\n// ExtractEndpointSliceStatus is the same as ExtractEndpointSlice except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractEndpointSliceStatus(endpointSlice *discoveryv1beta1.EndpointSlice, fieldManager string) (*EndpointSliceApplyConfiguration, error) {\n\treturn extractEndpointSlice(endpointSlice, fieldManager, \"status\")\n}\n\nfunc extractEndpointSlice(endpointSlice *discoveryv1beta1.EndpointSlice, fieldManager string, subresource string) (*EndpointSliceApplyConfiguration, error) {\n\tb := &EndpointSliceApplyConfiguration{}\n\terr := managedfields.ExtractInto(endpointSlice, internal.Parser().Type(\"io.k8s.api.discovery.v1beta1.EndpointSlice\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(endpointSlice.Name)\n\tb.WithNamespace(endpointSlice.Namespace)\n\n\tb.WithKind(\"EndpointSlice\")\n\tb.WithAPIVersion(\"discovery.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithKind(value string) *EndpointSliceApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithAPIVersion(value string) *EndpointSliceApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithName(value string) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithGenerateName(value string) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithNamespace(value string) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithUID(value types.UID) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithResourceVersion(value string) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithGeneration(value int64) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithCreationTimestamp(value metav1.Time) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *EndpointSliceApplyConfiguration) WithLabels(entries map[string]string) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *EndpointSliceApplyConfiguration) WithAnnotations(entries map[string]string) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *EndpointSliceApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *EndpointSliceApplyConfiguration) WithFinalizers(values ...string) *EndpointSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *EndpointSliceApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithAddressType sets the AddressType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AddressType field is set to the value of the last call.\nfunc (b *EndpointSliceApplyConfiguration) WithAddressType(value discoveryv1beta1.AddressType) *EndpointSliceApplyConfiguration {\n\tb.AddressType = &value\n\treturn b\n}\n\n// WithEndpoints adds the given value to the Endpoints field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Endpoints field.\nfunc (b *EndpointSliceApplyConfiguration) WithEndpoints(values ...*EndpointApplyConfiguration) *EndpointSliceApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithEndpoints\")\n\t\t}\n\t\tb.Endpoints = append(b.Endpoints, *values[i])\n\t}\n\treturn b\n}\n\n// WithPorts adds the given value to the Ports field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ports field.\nfunc (b *EndpointSliceApplyConfiguration) WithPorts(values ...*EndpointPortApplyConfiguration) *EndpointSliceApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPorts\")\n\t\t}\n\t\tb.Ports = append(b.Ports, *values[i])\n\t}\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *EndpointSliceApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/discovery/v1beta1/forzone.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// ForZoneApplyConfiguration represents a declarative configuration of the ForZone type for use\n// with apply.\ntype ForZoneApplyConfiguration struct {\n\tName *string `json:\"name,omitempty\"`\n}\n\n// ForZoneApplyConfiguration constructs a declarative configuration of the ForZone type for use with\n// apply.\nfunc ForZone() *ForZoneApplyConfiguration {\n\treturn &ForZoneApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ForZoneApplyConfiguration) WithName(value string) *ForZoneApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/doc.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n/*\nPackage applyconfigurations provides typesafe go representations of the apply\nconfigurations that are used to constructs Server-side Apply requests.\n\n# Basics\n\nThe Apply functions in the typed client (see the k8s.io/client-go/kubernetes/typed packages) offer\na direct and typesafe way of calling Server-side Apply. Each Apply function takes an \"apply\nconfiguration\" type as an argument, which is a structured representation of an Apply request. For\nexample:\n\n\timport (\n\t     ...\n\t     v1ac \"k8s.io/client-go/applyconfigurations/autoscaling/v1\"\n\t)\n\thpaApplyConfig := v1ac.HorizontalPodAutoscaler(autoscalerName, ns).\n\t     WithSpec(v1ac.HorizontalPodAutoscalerSpec().\n\t              WithMinReplicas(0)\n\t     )\n\treturn hpav1client.Apply(ctx, hpaApplyConfig, metav1.ApplyOptions{FieldManager: \"mycontroller\", Force: true})\n\nNote in this example that HorizontalPodAutoscaler is imported from an \"applyconfigurations\"\npackage. Each \"apply configuration\" type represents the same Kubernetes object kind as the\ncorresponding go struct, but where all fields are pointers to make them optional, allowing apply\nrequests to be accurately represented. For example, this when the apply configuration in the above\nexample is marshalled to YAML, it produces:\n\n\tapiVersion: autoscaling/v1\n\tkind: HorizontalPodAutoscaler\n\tmetadata:\n\t    name: myHPA\n\t    namespace: myNamespace\n\tspec:\n\t    minReplicas: 0\n\nTo understand why this is needed, the above YAML cannot be produced by the\nv1.HorizontalPodAutoscaler go struct. Take for example:\n\n\thpa := v1.HorizontalPodAutoscaler{\n\t     TypeMeta: metav1.TypeMeta{\n\t              APIVersion: \"autoscaling/v1\",\n\t              Kind:       \"HorizontalPodAutoscaler\",\n\t     },\n\t     ObjectMeta: ObjectMeta{\n\t              Namespace: ns,\n\t              Name:      autoscalerName,\n\t     },\n\t     Spec: v1.HorizontalPodAutoscalerSpec{\n\t              MinReplicas: pointer.Int32Ptr(0),\n\t     },\n\t}\n\nThe above code attempts to declare the same apply configuration as shown in the previous examples,\nbut when marshalled to YAML, produces:\n\n\tkind: HorizontalPodAutoscaler\n\tapiVersion: autoscaling/v1\n\tmetadata:\n\t  name: myHPA\n\t  namespace: myNamespace\n\t  creationTimestamp: null\n\tspec:\n\t  scaleTargetRef:\n\t    kind: \"\"\n\t    name: \"\"\n\t  minReplicas: 0\n\t  maxReplicas: 0\n\nWhich, among other things, contains spec.maxReplicas set to 0. This is almost certainly not what\nthe caller intended (the intended apply configuration says nothing about the maxReplicas field),\nand could have serious consequences on a production system: it directs the autoscaler to downscale\nto zero pods. The problem here originates from the fact that the go structs contain required fields\nthat are zero valued if not set explicitly. The go structs work as intended for create and update\noperations, but are fundamentally incompatible with apply, which is why we have introduced the\ngenerated \"apply configuration\" types.\n\nThe \"apply configurations\" also have convenience With<FieldName> functions that make it easier to\nbuild apply requests. This allows developers to set fields without having to deal with the fact that\nall the fields in the \"apply configuration\" types are pointers, and are inconvenient to set using\ngo. For example \"MinReplicas: &0\" is not legal go code, so without the With functions, developers\nwould work around this problem by using a library, .e.g. \"MinReplicas: pointer.Int32Ptr(0)\", but\nstring enumerations like corev1.Protocol are still a problem since they cannot be supported by a\ngeneral purpose library. In addition to the convenience, the With functions also isolate\ndevelopers from the underlying representation, which makes it safer for the underlying\nrepresentation to be changed to support additional features in the future.\n\n# Controller Support\n\nThe new client-go support makes it much easier to use Server-side Apply in controllers, by either of\ntwo mechanisms.\n\nMechanism 1:\n\nWhen authoring new controllers to use Server-side Apply, a good approach is to have the controller\nrecreate the apply configuration for an object each time it reconciles that object.  This ensures\nthat the controller fully reconciles all the fields that it is responsible for. Controllers\ntypically should unconditionally set all the fields they own by setting \"Force: true\" in the\nApplyOptions. Controllers must also provide a FieldManager name that is unique to the\nreconciliation loop that apply is called from.\n\nWhen upgrading existing controllers to use Server-side Apply the same approach often works\nwell--migrate the controllers to recreate the apply configuration each time it reconciles any\nobject. For cases where this does not work well, see Mechanism 2.\n\nMechanism 2:\n\nWhen upgrading existing controllers to use Server-side Apply, the controller might have multiple\ncode paths that update different parts of an object depending on various conditions. Migrating a\ncontroller like this to Server-side Apply can be risky because if the controller forgets to include\nany fields in an apply configuration that is included in a previous apply request, a field can be\naccidentally deleted. For such cases, an alternative to mechanism 1 is to replace any controller\nreconciliation code that performs a \"read/modify-in-place/update\" (or patch) workflow with a\n\"extract/modify-in-place/apply\" workflow. Here's an example of the new workflow:\n\n\t    fieldMgr := \"my-field-manager\"\n\t    deploymentClient := clientset.AppsV1().Deployments(\"default\")\n\t    // read, could also be read from a shared informer\n\t    deployment, err := deploymentClient.Get(ctx, \"example-deployment\", metav1.GetOptions{})\n\t    if err != nil {\n\t      // handle error\n\t    }\n\t    // extract\n\t    deploymentApplyConfig, err := appsv1ac.ExtractDeployment(deployment, fieldMgr)\n\t    if err != nil {\n\t      // handle error\n\t    }\n\t    // modify-in-place\n\t    deploymentApplyConfig.Spec.Template.Spec.WithContainers(corev1ac.Container().\n\t\tWithName(\"modify-slice\").\n\t\tWithImage(\"nginx:1.14.2\"),\n\t    )\n\t    // apply\n\t    applied, err := deploymentClient.Apply(ctx, extractedDeployment, metav1.ApplyOptions{FieldManager: fieldMgr})\n*/\npackage applyconfigurations // import \"k8s.io/client-go/applyconfigurations\"\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/events/v1/event.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\teventsv1 \"k8s.io/api/events/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// EventApplyConfiguration represents a declarative configuration of the Event type for use\n// with apply.\ntype EventApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tEventTime                            *apismetav1.MicroTime                     `json:\"eventTime,omitempty\"`\n\tSeries                               *EventSeriesApplyConfiguration            `json:\"series,omitempty\"`\n\tReportingController                  *string                                   `json:\"reportingController,omitempty\"`\n\tReportingInstance                    *string                                   `json:\"reportingInstance,omitempty\"`\n\tAction                               *string                                   `json:\"action,omitempty\"`\n\tReason                               *string                                   `json:\"reason,omitempty\"`\n\tRegarding                            *corev1.ObjectReferenceApplyConfiguration `json:\"regarding,omitempty\"`\n\tRelated                              *corev1.ObjectReferenceApplyConfiguration `json:\"related,omitempty\"`\n\tNote                                 *string                                   `json:\"note,omitempty\"`\n\tType                                 *string                                   `json:\"type,omitempty\"`\n\tDeprecatedSource                     *corev1.EventSourceApplyConfiguration     `json:\"deprecatedSource,omitempty\"`\n\tDeprecatedFirstTimestamp             *apismetav1.Time                          `json:\"deprecatedFirstTimestamp,omitempty\"`\n\tDeprecatedLastTimestamp              *apismetav1.Time                          `json:\"deprecatedLastTimestamp,omitempty\"`\n\tDeprecatedCount                      *int32                                    `json:\"deprecatedCount,omitempty\"`\n}\n\n// Event constructs a declarative configuration of the Event type for use with\n// apply.\nfunc Event(name, namespace string) *EventApplyConfiguration {\n\tb := &EventApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Event\")\n\tb.WithAPIVersion(\"events.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractEvent extracts the applied configuration owned by fieldManager from\n// event. If no managedFields are found in event for fieldManager, a\n// EventApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// event must be a unmodified Event API object that was retrieved from the Kubernetes API.\n// ExtractEvent provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractEvent(event *eventsv1.Event, fieldManager string) (*EventApplyConfiguration, error) {\n\treturn extractEvent(event, fieldManager, \"\")\n}\n\n// ExtractEventStatus is the same as ExtractEvent except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractEventStatus(event *eventsv1.Event, fieldManager string) (*EventApplyConfiguration, error) {\n\treturn extractEvent(event, fieldManager, \"status\")\n}\n\nfunc extractEvent(event *eventsv1.Event, fieldManager string, subresource string) (*EventApplyConfiguration, error) {\n\tb := &EventApplyConfiguration{}\n\terr := managedfields.ExtractInto(event, internal.Parser().Type(\"io.k8s.api.events.v1.Event\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(event.Name)\n\tb.WithNamespace(event.Namespace)\n\n\tb.WithKind(\"Event\")\n\tb.WithAPIVersion(\"events.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithKind(value string) *EventApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithAPIVersion(value string) *EventApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithName(value string) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithGenerateName(value string) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithNamespace(value string) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithUID(value types.UID) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithResourceVersion(value string) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithGeneration(value int64) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *EventApplyConfiguration) WithLabels(entries map[string]string) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *EventApplyConfiguration) WithAnnotations(entries map[string]string) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *EventApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *EventApplyConfiguration) WithFinalizers(values ...string) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *EventApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithEventTime sets the EventTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the EventTime field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithEventTime(value apismetav1.MicroTime) *EventApplyConfiguration {\n\tb.EventTime = &value\n\treturn b\n}\n\n// WithSeries sets the Series field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Series field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithSeries(value *EventSeriesApplyConfiguration) *EventApplyConfiguration {\n\tb.Series = value\n\treturn b\n}\n\n// WithReportingController sets the ReportingController field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReportingController field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithReportingController(value string) *EventApplyConfiguration {\n\tb.ReportingController = &value\n\treturn b\n}\n\n// WithReportingInstance sets the ReportingInstance field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReportingInstance field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithReportingInstance(value string) *EventApplyConfiguration {\n\tb.ReportingInstance = &value\n\treturn b\n}\n\n// WithAction sets the Action field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Action field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithAction(value string) *EventApplyConfiguration {\n\tb.Action = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithReason(value string) *EventApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithRegarding sets the Regarding field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Regarding field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithRegarding(value *corev1.ObjectReferenceApplyConfiguration) *EventApplyConfiguration {\n\tb.Regarding = value\n\treturn b\n}\n\n// WithRelated sets the Related field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Related field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithRelated(value *corev1.ObjectReferenceApplyConfiguration) *EventApplyConfiguration {\n\tb.Related = value\n\treturn b\n}\n\n// WithNote sets the Note field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Note field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithNote(value string) *EventApplyConfiguration {\n\tb.Note = &value\n\treturn b\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithType(value string) *EventApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithDeprecatedSource sets the DeprecatedSource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeprecatedSource field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithDeprecatedSource(value *corev1.EventSourceApplyConfiguration) *EventApplyConfiguration {\n\tb.DeprecatedSource = value\n\treturn b\n}\n\n// WithDeprecatedFirstTimestamp sets the DeprecatedFirstTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeprecatedFirstTimestamp field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithDeprecatedFirstTimestamp(value apismetav1.Time) *EventApplyConfiguration {\n\tb.DeprecatedFirstTimestamp = &value\n\treturn b\n}\n\n// WithDeprecatedLastTimestamp sets the DeprecatedLastTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeprecatedLastTimestamp field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithDeprecatedLastTimestamp(value apismetav1.Time) *EventApplyConfiguration {\n\tb.DeprecatedLastTimestamp = &value\n\treturn b\n}\n\n// WithDeprecatedCount sets the DeprecatedCount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeprecatedCount field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithDeprecatedCount(value int32) *EventApplyConfiguration {\n\tb.DeprecatedCount = &value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *EventApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/events/v1/eventseries.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// EventSeriesApplyConfiguration represents a declarative configuration of the EventSeries type for use\n// with apply.\ntype EventSeriesApplyConfiguration struct {\n\tCount            *int32            `json:\"count,omitempty\"`\n\tLastObservedTime *metav1.MicroTime `json:\"lastObservedTime,omitempty\"`\n}\n\n// EventSeriesApplyConfiguration constructs a declarative configuration of the EventSeries type for use with\n// apply.\nfunc EventSeries() *EventSeriesApplyConfiguration {\n\treturn &EventSeriesApplyConfiguration{}\n}\n\n// WithCount sets the Count field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Count field is set to the value of the last call.\nfunc (b *EventSeriesApplyConfiguration) WithCount(value int32) *EventSeriesApplyConfiguration {\n\tb.Count = &value\n\treturn b\n}\n\n// WithLastObservedTime sets the LastObservedTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastObservedTime field is set to the value of the last call.\nfunc (b *EventSeriesApplyConfiguration) WithLastObservedTime(value metav1.MicroTime) *EventSeriesApplyConfiguration {\n\tb.LastObservedTime = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/events/v1beta1/event.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\teventsv1beta1 \"k8s.io/api/events/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// EventApplyConfiguration represents a declarative configuration of the Event type for use\n// with apply.\ntype EventApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tEventTime                        *metav1.MicroTime                         `json:\"eventTime,omitempty\"`\n\tSeries                           *EventSeriesApplyConfiguration            `json:\"series,omitempty\"`\n\tReportingController              *string                                   `json:\"reportingController,omitempty\"`\n\tReportingInstance                *string                                   `json:\"reportingInstance,omitempty\"`\n\tAction                           *string                                   `json:\"action,omitempty\"`\n\tReason                           *string                                   `json:\"reason,omitempty\"`\n\tRegarding                        *corev1.ObjectReferenceApplyConfiguration `json:\"regarding,omitempty\"`\n\tRelated                          *corev1.ObjectReferenceApplyConfiguration `json:\"related,omitempty\"`\n\tNote                             *string                                   `json:\"note,omitempty\"`\n\tType                             *string                                   `json:\"type,omitempty\"`\n\tDeprecatedSource                 *corev1.EventSourceApplyConfiguration     `json:\"deprecatedSource,omitempty\"`\n\tDeprecatedFirstTimestamp         *metav1.Time                              `json:\"deprecatedFirstTimestamp,omitempty\"`\n\tDeprecatedLastTimestamp          *metav1.Time                              `json:\"deprecatedLastTimestamp,omitempty\"`\n\tDeprecatedCount                  *int32                                    `json:\"deprecatedCount,omitempty\"`\n}\n\n// Event constructs a declarative configuration of the Event type for use with\n// apply.\nfunc Event(name, namespace string) *EventApplyConfiguration {\n\tb := &EventApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Event\")\n\tb.WithAPIVersion(\"events.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractEvent extracts the applied configuration owned by fieldManager from\n// event. If no managedFields are found in event for fieldManager, a\n// EventApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// event must be a unmodified Event API object that was retrieved from the Kubernetes API.\n// ExtractEvent provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractEvent(event *eventsv1beta1.Event, fieldManager string) (*EventApplyConfiguration, error) {\n\treturn extractEvent(event, fieldManager, \"\")\n}\n\n// ExtractEventStatus is the same as ExtractEvent except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractEventStatus(event *eventsv1beta1.Event, fieldManager string) (*EventApplyConfiguration, error) {\n\treturn extractEvent(event, fieldManager, \"status\")\n}\n\nfunc extractEvent(event *eventsv1beta1.Event, fieldManager string, subresource string) (*EventApplyConfiguration, error) {\n\tb := &EventApplyConfiguration{}\n\terr := managedfields.ExtractInto(event, internal.Parser().Type(\"io.k8s.api.events.v1beta1.Event\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(event.Name)\n\tb.WithNamespace(event.Namespace)\n\n\tb.WithKind(\"Event\")\n\tb.WithAPIVersion(\"events.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithKind(value string) *EventApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithAPIVersion(value string) *EventApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithName(value string) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithGenerateName(value string) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithNamespace(value string) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithUID(value types.UID) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithResourceVersion(value string) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithGeneration(value int64) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithCreationTimestamp(value metav1.Time) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *EventApplyConfiguration) WithLabels(entries map[string]string) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *EventApplyConfiguration) WithAnnotations(entries map[string]string) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *EventApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *EventApplyConfiguration) WithFinalizers(values ...string) *EventApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *EventApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithEventTime sets the EventTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the EventTime field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithEventTime(value metav1.MicroTime) *EventApplyConfiguration {\n\tb.EventTime = &value\n\treturn b\n}\n\n// WithSeries sets the Series field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Series field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithSeries(value *EventSeriesApplyConfiguration) *EventApplyConfiguration {\n\tb.Series = value\n\treturn b\n}\n\n// WithReportingController sets the ReportingController field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReportingController field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithReportingController(value string) *EventApplyConfiguration {\n\tb.ReportingController = &value\n\treturn b\n}\n\n// WithReportingInstance sets the ReportingInstance field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReportingInstance field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithReportingInstance(value string) *EventApplyConfiguration {\n\tb.ReportingInstance = &value\n\treturn b\n}\n\n// WithAction sets the Action field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Action field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithAction(value string) *EventApplyConfiguration {\n\tb.Action = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithReason(value string) *EventApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithRegarding sets the Regarding field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Regarding field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithRegarding(value *corev1.ObjectReferenceApplyConfiguration) *EventApplyConfiguration {\n\tb.Regarding = value\n\treturn b\n}\n\n// WithRelated sets the Related field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Related field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithRelated(value *corev1.ObjectReferenceApplyConfiguration) *EventApplyConfiguration {\n\tb.Related = value\n\treturn b\n}\n\n// WithNote sets the Note field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Note field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithNote(value string) *EventApplyConfiguration {\n\tb.Note = &value\n\treturn b\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithType(value string) *EventApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithDeprecatedSource sets the DeprecatedSource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeprecatedSource field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithDeprecatedSource(value *corev1.EventSourceApplyConfiguration) *EventApplyConfiguration {\n\tb.DeprecatedSource = value\n\treturn b\n}\n\n// WithDeprecatedFirstTimestamp sets the DeprecatedFirstTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeprecatedFirstTimestamp field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithDeprecatedFirstTimestamp(value metav1.Time) *EventApplyConfiguration {\n\tb.DeprecatedFirstTimestamp = &value\n\treturn b\n}\n\n// WithDeprecatedLastTimestamp sets the DeprecatedLastTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeprecatedLastTimestamp field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithDeprecatedLastTimestamp(value metav1.Time) *EventApplyConfiguration {\n\tb.DeprecatedLastTimestamp = &value\n\treturn b\n}\n\n// WithDeprecatedCount sets the DeprecatedCount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeprecatedCount field is set to the value of the last call.\nfunc (b *EventApplyConfiguration) WithDeprecatedCount(value int32) *EventApplyConfiguration {\n\tb.DeprecatedCount = &value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *EventApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/events/v1beta1/eventseries.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// EventSeriesApplyConfiguration represents a declarative configuration of the EventSeries type for use\n// with apply.\ntype EventSeriesApplyConfiguration struct {\n\tCount            *int32        `json:\"count,omitempty\"`\n\tLastObservedTime *v1.MicroTime `json:\"lastObservedTime,omitempty\"`\n}\n\n// EventSeriesApplyConfiguration constructs a declarative configuration of the EventSeries type for use with\n// apply.\nfunc EventSeries() *EventSeriesApplyConfiguration {\n\treturn &EventSeriesApplyConfiguration{}\n}\n\n// WithCount sets the Count field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Count field is set to the value of the last call.\nfunc (b *EventSeriesApplyConfiguration) WithCount(value int32) *EventSeriesApplyConfiguration {\n\tb.Count = &value\n\treturn b\n}\n\n// WithLastObservedTime sets the LastObservedTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastObservedTime field is set to the value of the last call.\nfunc (b *EventSeriesApplyConfiguration) WithLastObservedTime(value v1.MicroTime) *EventSeriesApplyConfiguration {\n\tb.LastObservedTime = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/daemonset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\textensionsv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// DaemonSetApplyConfiguration represents a declarative configuration of the DaemonSet type for use\n// with apply.\ntype DaemonSetApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *DaemonSetSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *DaemonSetStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// DaemonSet constructs a declarative configuration of the DaemonSet type for use with\n// apply.\nfunc DaemonSet(name, namespace string) *DaemonSetApplyConfiguration {\n\tb := &DaemonSetApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"DaemonSet\")\n\tb.WithAPIVersion(\"extensions/v1beta1\")\n\treturn b\n}\n\n// ExtractDaemonSet extracts the applied configuration owned by fieldManager from\n// daemonSet. If no managedFields are found in daemonSet for fieldManager, a\n// DaemonSetApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// daemonSet must be a unmodified DaemonSet API object that was retrieved from the Kubernetes API.\n// ExtractDaemonSet provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractDaemonSet(daemonSet *extensionsv1beta1.DaemonSet, fieldManager string) (*DaemonSetApplyConfiguration, error) {\n\treturn extractDaemonSet(daemonSet, fieldManager, \"\")\n}\n\n// ExtractDaemonSetStatus is the same as ExtractDaemonSet except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractDaemonSetStatus(daemonSet *extensionsv1beta1.DaemonSet, fieldManager string) (*DaemonSetApplyConfiguration, error) {\n\treturn extractDaemonSet(daemonSet, fieldManager, \"status\")\n}\n\nfunc extractDaemonSet(daemonSet *extensionsv1beta1.DaemonSet, fieldManager string, subresource string) (*DaemonSetApplyConfiguration, error) {\n\tb := &DaemonSetApplyConfiguration{}\n\terr := managedfields.ExtractInto(daemonSet, internal.Parser().Type(\"io.k8s.api.extensions.v1beta1.DaemonSet\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(daemonSet.Name)\n\tb.WithNamespace(daemonSet.Namespace)\n\n\tb.WithKind(\"DaemonSet\")\n\tb.WithAPIVersion(\"extensions/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithKind(value string) *DaemonSetApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithAPIVersion(value string) *DaemonSetApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithName(value string) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithGenerateName(value string) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithNamespace(value string) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithUID(value types.UID) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithResourceVersion(value string) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithGeneration(value int64) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithCreationTimestamp(value metav1.Time) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *DaemonSetApplyConfiguration) WithLabels(entries map[string]string) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *DaemonSetApplyConfiguration) WithAnnotations(entries map[string]string) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *DaemonSetApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *DaemonSetApplyConfiguration) WithFinalizers(values ...string) *DaemonSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *DaemonSetApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithSpec(value *DaemonSetSpecApplyConfiguration) *DaemonSetApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *DaemonSetApplyConfiguration) WithStatus(value *DaemonSetStatusApplyConfiguration) *DaemonSetApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *DaemonSetApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/daemonsetcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\textensionsv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// DaemonSetConditionApplyConfiguration represents a declarative configuration of the DaemonSetCondition type for use\n// with apply.\ntype DaemonSetConditionApplyConfiguration struct {\n\tType               *extensionsv1beta1.DaemonSetConditionType `json:\"type,omitempty\"`\n\tStatus             *v1.ConditionStatus                       `json:\"status,omitempty\"`\n\tLastTransitionTime *metav1.Time                              `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                                   `json:\"reason,omitempty\"`\n\tMessage            *string                                   `json:\"message,omitempty\"`\n}\n\n// DaemonSetConditionApplyConfiguration constructs a declarative configuration of the DaemonSetCondition type for use with\n// apply.\nfunc DaemonSetCondition() *DaemonSetConditionApplyConfiguration {\n\treturn &DaemonSetConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *DaemonSetConditionApplyConfiguration) WithType(value extensionsv1beta1.DaemonSetConditionType) *DaemonSetConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *DaemonSetConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *DaemonSetConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *DaemonSetConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *DaemonSetConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *DaemonSetConditionApplyConfiguration) WithReason(value string) *DaemonSetConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *DaemonSetConditionApplyConfiguration) WithMessage(value string) *DaemonSetConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/daemonsetspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// DaemonSetSpecApplyConfiguration represents a declarative configuration of the DaemonSetSpec type for use\n// with apply.\ntype DaemonSetSpecApplyConfiguration struct {\n\tSelector             *v1.LabelSelectorApplyConfiguration        `json:\"selector,omitempty\"`\n\tTemplate             *corev1.PodTemplateSpecApplyConfiguration  `json:\"template,omitempty\"`\n\tUpdateStrategy       *DaemonSetUpdateStrategyApplyConfiguration `json:\"updateStrategy,omitempty\"`\n\tMinReadySeconds      *int32                                     `json:\"minReadySeconds,omitempty\"`\n\tTemplateGeneration   *int64                                     `json:\"templateGeneration,omitempty\"`\n\tRevisionHistoryLimit *int32                                     `json:\"revisionHistoryLimit,omitempty\"`\n}\n\n// DaemonSetSpecApplyConfiguration constructs a declarative configuration of the DaemonSetSpec type for use with\n// apply.\nfunc DaemonSetSpec() *DaemonSetSpecApplyConfiguration {\n\treturn &DaemonSetSpecApplyConfiguration{}\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *DaemonSetSpecApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *DaemonSetSpecApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n\n// WithTemplate sets the Template field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Template field is set to the value of the last call.\nfunc (b *DaemonSetSpecApplyConfiguration) WithTemplate(value *corev1.PodTemplateSpecApplyConfiguration) *DaemonSetSpecApplyConfiguration {\n\tb.Template = value\n\treturn b\n}\n\n// WithUpdateStrategy sets the UpdateStrategy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UpdateStrategy field is set to the value of the last call.\nfunc (b *DaemonSetSpecApplyConfiguration) WithUpdateStrategy(value *DaemonSetUpdateStrategyApplyConfiguration) *DaemonSetSpecApplyConfiguration {\n\tb.UpdateStrategy = value\n\treturn b\n}\n\n// WithMinReadySeconds sets the MinReadySeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MinReadySeconds field is set to the value of the last call.\nfunc (b *DaemonSetSpecApplyConfiguration) WithMinReadySeconds(value int32) *DaemonSetSpecApplyConfiguration {\n\tb.MinReadySeconds = &value\n\treturn b\n}\n\n// WithTemplateGeneration sets the TemplateGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the TemplateGeneration field is set to the value of the last call.\nfunc (b *DaemonSetSpecApplyConfiguration) WithTemplateGeneration(value int64) *DaemonSetSpecApplyConfiguration {\n\tb.TemplateGeneration = &value\n\treturn b\n}\n\n// WithRevisionHistoryLimit sets the RevisionHistoryLimit field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RevisionHistoryLimit field is set to the value of the last call.\nfunc (b *DaemonSetSpecApplyConfiguration) WithRevisionHistoryLimit(value int32) *DaemonSetSpecApplyConfiguration {\n\tb.RevisionHistoryLimit = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/daemonsetstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// DaemonSetStatusApplyConfiguration represents a declarative configuration of the DaemonSetStatus type for use\n// with apply.\ntype DaemonSetStatusApplyConfiguration struct {\n\tCurrentNumberScheduled *int32                                 `json:\"currentNumberScheduled,omitempty\"`\n\tNumberMisscheduled     *int32                                 `json:\"numberMisscheduled,omitempty\"`\n\tDesiredNumberScheduled *int32                                 `json:\"desiredNumberScheduled,omitempty\"`\n\tNumberReady            *int32                                 `json:\"numberReady,omitempty\"`\n\tObservedGeneration     *int64                                 `json:\"observedGeneration,omitempty\"`\n\tUpdatedNumberScheduled *int32                                 `json:\"updatedNumberScheduled,omitempty\"`\n\tNumberAvailable        *int32                                 `json:\"numberAvailable,omitempty\"`\n\tNumberUnavailable      *int32                                 `json:\"numberUnavailable,omitempty\"`\n\tCollisionCount         *int32                                 `json:\"collisionCount,omitempty\"`\n\tConditions             []DaemonSetConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// DaemonSetStatusApplyConfiguration constructs a declarative configuration of the DaemonSetStatus type for use with\n// apply.\nfunc DaemonSetStatus() *DaemonSetStatusApplyConfiguration {\n\treturn &DaemonSetStatusApplyConfiguration{}\n}\n\n// WithCurrentNumberScheduled sets the CurrentNumberScheduled field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentNumberScheduled field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithCurrentNumberScheduled(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.CurrentNumberScheduled = &value\n\treturn b\n}\n\n// WithNumberMisscheduled sets the NumberMisscheduled field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NumberMisscheduled field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithNumberMisscheduled(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.NumberMisscheduled = &value\n\treturn b\n}\n\n// WithDesiredNumberScheduled sets the DesiredNumberScheduled field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DesiredNumberScheduled field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithDesiredNumberScheduled(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.DesiredNumberScheduled = &value\n\treturn b\n}\n\n// WithNumberReady sets the NumberReady field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NumberReady field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithNumberReady(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.NumberReady = &value\n\treturn b\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithObservedGeneration(value int64) *DaemonSetStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithUpdatedNumberScheduled sets the UpdatedNumberScheduled field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UpdatedNumberScheduled field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithUpdatedNumberScheduled(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.UpdatedNumberScheduled = &value\n\treturn b\n}\n\n// WithNumberAvailable sets the NumberAvailable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NumberAvailable field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithNumberAvailable(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.NumberAvailable = &value\n\treturn b\n}\n\n// WithNumberUnavailable sets the NumberUnavailable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NumberUnavailable field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithNumberUnavailable(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.NumberUnavailable = &value\n\treturn b\n}\n\n// WithCollisionCount sets the CollisionCount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CollisionCount field is set to the value of the last call.\nfunc (b *DaemonSetStatusApplyConfiguration) WithCollisionCount(value int32) *DaemonSetStatusApplyConfiguration {\n\tb.CollisionCount = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *DaemonSetStatusApplyConfiguration) WithConditions(values ...*DaemonSetConditionApplyConfiguration) *DaemonSetStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/daemonsetupdatestrategy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\textensionsv1beta1 \"k8s.io/api/extensions/v1beta1\"\n)\n\n// DaemonSetUpdateStrategyApplyConfiguration represents a declarative configuration of the DaemonSetUpdateStrategy type for use\n// with apply.\ntype DaemonSetUpdateStrategyApplyConfiguration struct {\n\tType          *extensionsv1beta1.DaemonSetUpdateStrategyType `json:\"type,omitempty\"`\n\tRollingUpdate *RollingUpdateDaemonSetApplyConfiguration      `json:\"rollingUpdate,omitempty\"`\n}\n\n// DaemonSetUpdateStrategyApplyConfiguration constructs a declarative configuration of the DaemonSetUpdateStrategy type for use with\n// apply.\nfunc DaemonSetUpdateStrategy() *DaemonSetUpdateStrategyApplyConfiguration {\n\treturn &DaemonSetUpdateStrategyApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *DaemonSetUpdateStrategyApplyConfiguration) WithType(value extensionsv1beta1.DaemonSetUpdateStrategyType) *DaemonSetUpdateStrategyApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithRollingUpdate sets the RollingUpdate field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RollingUpdate field is set to the value of the last call.\nfunc (b *DaemonSetUpdateStrategyApplyConfiguration) WithRollingUpdate(value *RollingUpdateDaemonSetApplyConfiguration) *DaemonSetUpdateStrategyApplyConfiguration {\n\tb.RollingUpdate = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/deployment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\textensionsv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// DeploymentApplyConfiguration represents a declarative configuration of the Deployment type for use\n// with apply.\ntype DeploymentApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *DeploymentSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *DeploymentStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// Deployment constructs a declarative configuration of the Deployment type for use with\n// apply.\nfunc Deployment(name, namespace string) *DeploymentApplyConfiguration {\n\tb := &DeploymentApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Deployment\")\n\tb.WithAPIVersion(\"extensions/v1beta1\")\n\treturn b\n}\n\n// ExtractDeployment extracts the applied configuration owned by fieldManager from\n// deployment. If no managedFields are found in deployment for fieldManager, a\n// DeploymentApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// deployment must be a unmodified Deployment API object that was retrieved from the Kubernetes API.\n// ExtractDeployment provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractDeployment(deployment *extensionsv1beta1.Deployment, fieldManager string) (*DeploymentApplyConfiguration, error) {\n\treturn extractDeployment(deployment, fieldManager, \"\")\n}\n\n// ExtractDeploymentStatus is the same as ExtractDeployment except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractDeploymentStatus(deployment *extensionsv1beta1.Deployment, fieldManager string) (*DeploymentApplyConfiguration, error) {\n\treturn extractDeployment(deployment, fieldManager, \"status\")\n}\n\nfunc extractDeployment(deployment *extensionsv1beta1.Deployment, fieldManager string, subresource string) (*DeploymentApplyConfiguration, error) {\n\tb := &DeploymentApplyConfiguration{}\n\terr := managedfields.ExtractInto(deployment, internal.Parser().Type(\"io.k8s.api.extensions.v1beta1.Deployment\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(deployment.Name)\n\tb.WithNamespace(deployment.Namespace)\n\n\tb.WithKind(\"Deployment\")\n\tb.WithAPIVersion(\"extensions/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithKind(value string) *DeploymentApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithAPIVersion(value string) *DeploymentApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithName(value string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithGenerateName(value string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithNamespace(value string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithUID(value types.UID) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithResourceVersion(value string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithGeneration(value int64) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithCreationTimestamp(value metav1.Time) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *DeploymentApplyConfiguration) WithLabels(entries map[string]string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *DeploymentApplyConfiguration) WithAnnotations(entries map[string]string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *DeploymentApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *DeploymentApplyConfiguration) WithFinalizers(values ...string) *DeploymentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *DeploymentApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithSpec(value *DeploymentSpecApplyConfiguration) *DeploymentApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *DeploymentApplyConfiguration) WithStatus(value *DeploymentStatusApplyConfiguration) *DeploymentApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *DeploymentApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/deploymentcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\textensionsv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// DeploymentConditionApplyConfiguration represents a declarative configuration of the DeploymentCondition type for use\n// with apply.\ntype DeploymentConditionApplyConfiguration struct {\n\tType               *extensionsv1beta1.DeploymentConditionType `json:\"type,omitempty\"`\n\tStatus             *v1.ConditionStatus                        `json:\"status,omitempty\"`\n\tLastUpdateTime     *metav1.Time                               `json:\"lastUpdateTime,omitempty\"`\n\tLastTransitionTime *metav1.Time                               `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                                    `json:\"reason,omitempty\"`\n\tMessage            *string                                    `json:\"message,omitempty\"`\n}\n\n// DeploymentConditionApplyConfiguration constructs a declarative configuration of the DeploymentCondition type for use with\n// apply.\nfunc DeploymentCondition() *DeploymentConditionApplyConfiguration {\n\treturn &DeploymentConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithType(value extensionsv1beta1.DeploymentConditionType) *DeploymentConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *DeploymentConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastUpdateTime sets the LastUpdateTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastUpdateTime field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithLastUpdateTime(value metav1.Time) *DeploymentConditionApplyConfiguration {\n\tb.LastUpdateTime = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *DeploymentConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithReason(value string) *DeploymentConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *DeploymentConditionApplyConfiguration) WithMessage(value string) *DeploymentConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/deploymentspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// DeploymentSpecApplyConfiguration represents a declarative configuration of the DeploymentSpec type for use\n// with apply.\ntype DeploymentSpecApplyConfiguration struct {\n\tReplicas                *int32                                    `json:\"replicas,omitempty\"`\n\tSelector                *v1.LabelSelectorApplyConfiguration       `json:\"selector,omitempty\"`\n\tTemplate                *corev1.PodTemplateSpecApplyConfiguration `json:\"template,omitempty\"`\n\tStrategy                *DeploymentStrategyApplyConfiguration     `json:\"strategy,omitempty\"`\n\tMinReadySeconds         *int32                                    `json:\"minReadySeconds,omitempty\"`\n\tRevisionHistoryLimit    *int32                                    `json:\"revisionHistoryLimit,omitempty\"`\n\tPaused                  *bool                                     `json:\"paused,omitempty\"`\n\tRollbackTo              *RollbackConfigApplyConfiguration         `json:\"rollbackTo,omitempty\"`\n\tProgressDeadlineSeconds *int32                                    `json:\"progressDeadlineSeconds,omitempty\"`\n}\n\n// DeploymentSpecApplyConfiguration constructs a declarative configuration of the DeploymentSpec type for use with\n// apply.\nfunc DeploymentSpec() *DeploymentSpecApplyConfiguration {\n\treturn &DeploymentSpecApplyConfiguration{}\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithReplicas(value int32) *DeploymentSpecApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *DeploymentSpecApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n\n// WithTemplate sets the Template field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Template field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithTemplate(value *corev1.PodTemplateSpecApplyConfiguration) *DeploymentSpecApplyConfiguration {\n\tb.Template = value\n\treturn b\n}\n\n// WithStrategy sets the Strategy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Strategy field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithStrategy(value *DeploymentStrategyApplyConfiguration) *DeploymentSpecApplyConfiguration {\n\tb.Strategy = value\n\treturn b\n}\n\n// WithMinReadySeconds sets the MinReadySeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MinReadySeconds field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithMinReadySeconds(value int32) *DeploymentSpecApplyConfiguration {\n\tb.MinReadySeconds = &value\n\treturn b\n}\n\n// WithRevisionHistoryLimit sets the RevisionHistoryLimit field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RevisionHistoryLimit field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithRevisionHistoryLimit(value int32) *DeploymentSpecApplyConfiguration {\n\tb.RevisionHistoryLimit = &value\n\treturn b\n}\n\n// WithPaused sets the Paused field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Paused field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithPaused(value bool) *DeploymentSpecApplyConfiguration {\n\tb.Paused = &value\n\treturn b\n}\n\n// WithRollbackTo sets the RollbackTo field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RollbackTo field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithRollbackTo(value *RollbackConfigApplyConfiguration) *DeploymentSpecApplyConfiguration {\n\tb.RollbackTo = value\n\treturn b\n}\n\n// WithProgressDeadlineSeconds sets the ProgressDeadlineSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ProgressDeadlineSeconds field is set to the value of the last call.\nfunc (b *DeploymentSpecApplyConfiguration) WithProgressDeadlineSeconds(value int32) *DeploymentSpecApplyConfiguration {\n\tb.ProgressDeadlineSeconds = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/deploymentstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// DeploymentStatusApplyConfiguration represents a declarative configuration of the DeploymentStatus type for use\n// with apply.\ntype DeploymentStatusApplyConfiguration struct {\n\tObservedGeneration  *int64                                  `json:\"observedGeneration,omitempty\"`\n\tReplicas            *int32                                  `json:\"replicas,omitempty\"`\n\tUpdatedReplicas     *int32                                  `json:\"updatedReplicas,omitempty\"`\n\tReadyReplicas       *int32                                  `json:\"readyReplicas,omitempty\"`\n\tAvailableReplicas   *int32                                  `json:\"availableReplicas,omitempty\"`\n\tUnavailableReplicas *int32                                  `json:\"unavailableReplicas,omitempty\"`\n\tConditions          []DeploymentConditionApplyConfiguration `json:\"conditions,omitempty\"`\n\tCollisionCount      *int32                                  `json:\"collisionCount,omitempty\"`\n}\n\n// DeploymentStatusApplyConfiguration constructs a declarative configuration of the DeploymentStatus type for use with\n// apply.\nfunc DeploymentStatus() *DeploymentStatusApplyConfiguration {\n\treturn &DeploymentStatusApplyConfiguration{}\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithObservedGeneration(value int64) *DeploymentStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithReplicas(value int32) *DeploymentStatusApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithUpdatedReplicas sets the UpdatedReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UpdatedReplicas field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithUpdatedReplicas(value int32) *DeploymentStatusApplyConfiguration {\n\tb.UpdatedReplicas = &value\n\treturn b\n}\n\n// WithReadyReplicas sets the ReadyReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadyReplicas field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithReadyReplicas(value int32) *DeploymentStatusApplyConfiguration {\n\tb.ReadyReplicas = &value\n\treturn b\n}\n\n// WithAvailableReplicas sets the AvailableReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AvailableReplicas field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithAvailableReplicas(value int32) *DeploymentStatusApplyConfiguration {\n\tb.AvailableReplicas = &value\n\treturn b\n}\n\n// WithUnavailableReplicas sets the UnavailableReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UnavailableReplicas field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithUnavailableReplicas(value int32) *DeploymentStatusApplyConfiguration {\n\tb.UnavailableReplicas = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *DeploymentStatusApplyConfiguration) WithConditions(values ...*DeploymentConditionApplyConfiguration) *DeploymentStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n\n// WithCollisionCount sets the CollisionCount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CollisionCount field is set to the value of the last call.\nfunc (b *DeploymentStatusApplyConfiguration) WithCollisionCount(value int32) *DeploymentStatusApplyConfiguration {\n\tb.CollisionCount = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/deploymentstrategy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\textensionsv1beta1 \"k8s.io/api/extensions/v1beta1\"\n)\n\n// DeploymentStrategyApplyConfiguration represents a declarative configuration of the DeploymentStrategy type for use\n// with apply.\ntype DeploymentStrategyApplyConfiguration struct {\n\tType          *extensionsv1beta1.DeploymentStrategyType  `json:\"type,omitempty\"`\n\tRollingUpdate *RollingUpdateDeploymentApplyConfiguration `json:\"rollingUpdate,omitempty\"`\n}\n\n// DeploymentStrategyApplyConfiguration constructs a declarative configuration of the DeploymentStrategy type for use with\n// apply.\nfunc DeploymentStrategy() *DeploymentStrategyApplyConfiguration {\n\treturn &DeploymentStrategyApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *DeploymentStrategyApplyConfiguration) WithType(value extensionsv1beta1.DeploymentStrategyType) *DeploymentStrategyApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithRollingUpdate sets the RollingUpdate field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RollingUpdate field is set to the value of the last call.\nfunc (b *DeploymentStrategyApplyConfiguration) WithRollingUpdate(value *RollingUpdateDeploymentApplyConfiguration) *DeploymentStrategyApplyConfiguration {\n\tb.RollingUpdate = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/httpingresspath.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\textensionsv1beta1 \"k8s.io/api/extensions/v1beta1\"\n)\n\n// HTTPIngressPathApplyConfiguration represents a declarative configuration of the HTTPIngressPath type for use\n// with apply.\ntype HTTPIngressPathApplyConfiguration struct {\n\tPath     *string                           `json:\"path,omitempty\"`\n\tPathType *extensionsv1beta1.PathType       `json:\"pathType,omitempty\"`\n\tBackend  *IngressBackendApplyConfiguration `json:\"backend,omitempty\"`\n}\n\n// HTTPIngressPathApplyConfiguration constructs a declarative configuration of the HTTPIngressPath type for use with\n// apply.\nfunc HTTPIngressPath() *HTTPIngressPathApplyConfiguration {\n\treturn &HTTPIngressPathApplyConfiguration{}\n}\n\n// WithPath sets the Path field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Path field is set to the value of the last call.\nfunc (b *HTTPIngressPathApplyConfiguration) WithPath(value string) *HTTPIngressPathApplyConfiguration {\n\tb.Path = &value\n\treturn b\n}\n\n// WithPathType sets the PathType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PathType field is set to the value of the last call.\nfunc (b *HTTPIngressPathApplyConfiguration) WithPathType(value extensionsv1beta1.PathType) *HTTPIngressPathApplyConfiguration {\n\tb.PathType = &value\n\treturn b\n}\n\n// WithBackend sets the Backend field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Backend field is set to the value of the last call.\nfunc (b *HTTPIngressPathApplyConfiguration) WithBackend(value *IngressBackendApplyConfiguration) *HTTPIngressPathApplyConfiguration {\n\tb.Backend = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/httpingressrulevalue.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// HTTPIngressRuleValueApplyConfiguration represents a declarative configuration of the HTTPIngressRuleValue type for use\n// with apply.\ntype HTTPIngressRuleValueApplyConfiguration struct {\n\tPaths []HTTPIngressPathApplyConfiguration `json:\"paths,omitempty\"`\n}\n\n// HTTPIngressRuleValueApplyConfiguration constructs a declarative configuration of the HTTPIngressRuleValue type for use with\n// apply.\nfunc HTTPIngressRuleValue() *HTTPIngressRuleValueApplyConfiguration {\n\treturn &HTTPIngressRuleValueApplyConfiguration{}\n}\n\n// WithPaths adds the given value to the Paths field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Paths field.\nfunc (b *HTTPIngressRuleValueApplyConfiguration) WithPaths(values ...*HTTPIngressPathApplyConfiguration) *HTTPIngressRuleValueApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPaths\")\n\t\t}\n\t\tb.Paths = append(b.Paths, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\textensionsv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// IngressApplyConfiguration represents a declarative configuration of the Ingress type for use\n// with apply.\ntype IngressApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *IngressSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *IngressStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// Ingress constructs a declarative configuration of the Ingress type for use with\n// apply.\nfunc Ingress(name, namespace string) *IngressApplyConfiguration {\n\tb := &IngressApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Ingress\")\n\tb.WithAPIVersion(\"extensions/v1beta1\")\n\treturn b\n}\n\n// ExtractIngress extracts the applied configuration owned by fieldManager from\n// ingress. If no managedFields are found in ingress for fieldManager, a\n// IngressApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// ingress must be a unmodified Ingress API object that was retrieved from the Kubernetes API.\n// ExtractIngress provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractIngress(ingress *extensionsv1beta1.Ingress, fieldManager string) (*IngressApplyConfiguration, error) {\n\treturn extractIngress(ingress, fieldManager, \"\")\n}\n\n// ExtractIngressStatus is the same as ExtractIngress except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractIngressStatus(ingress *extensionsv1beta1.Ingress, fieldManager string) (*IngressApplyConfiguration, error) {\n\treturn extractIngress(ingress, fieldManager, \"status\")\n}\n\nfunc extractIngress(ingress *extensionsv1beta1.Ingress, fieldManager string, subresource string) (*IngressApplyConfiguration, error) {\n\tb := &IngressApplyConfiguration{}\n\terr := managedfields.ExtractInto(ingress, internal.Parser().Type(\"io.k8s.api.extensions.v1beta1.Ingress\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(ingress.Name)\n\tb.WithNamespace(ingress.Namespace)\n\n\tb.WithKind(\"Ingress\")\n\tb.WithAPIVersion(\"extensions/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithKind(value string) *IngressApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithAPIVersion(value string) *IngressApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithName(value string) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithGenerateName(value string) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithNamespace(value string) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithUID(value types.UID) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithResourceVersion(value string) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithGeneration(value int64) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithCreationTimestamp(value metav1.Time) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *IngressApplyConfiguration) WithLabels(entries map[string]string) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *IngressApplyConfiguration) WithAnnotations(entries map[string]string) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *IngressApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *IngressApplyConfiguration) WithFinalizers(values ...string) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *IngressApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithSpec(value *IngressSpecApplyConfiguration) *IngressApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithStatus(value *IngressStatusApplyConfiguration) *IngressApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *IngressApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingressbackend.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n\tv1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n)\n\n// IngressBackendApplyConfiguration represents a declarative configuration of the IngressBackend type for use\n// with apply.\ntype IngressBackendApplyConfiguration struct {\n\tServiceName *string                                         `json:\"serviceName,omitempty\"`\n\tServicePort *intstr.IntOrString                             `json:\"servicePort,omitempty\"`\n\tResource    *v1.TypedLocalObjectReferenceApplyConfiguration `json:\"resource,omitempty\"`\n}\n\n// IngressBackendApplyConfiguration constructs a declarative configuration of the IngressBackend type for use with\n// apply.\nfunc IngressBackend() *IngressBackendApplyConfiguration {\n\treturn &IngressBackendApplyConfiguration{}\n}\n\n// WithServiceName sets the ServiceName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ServiceName field is set to the value of the last call.\nfunc (b *IngressBackendApplyConfiguration) WithServiceName(value string) *IngressBackendApplyConfiguration {\n\tb.ServiceName = &value\n\treturn b\n}\n\n// WithServicePort sets the ServicePort field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ServicePort field is set to the value of the last call.\nfunc (b *IngressBackendApplyConfiguration) WithServicePort(value intstr.IntOrString) *IngressBackendApplyConfiguration {\n\tb.ServicePort = &value\n\treturn b\n}\n\n// WithResource sets the Resource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Resource field is set to the value of the last call.\nfunc (b *IngressBackendApplyConfiguration) WithResource(value *v1.TypedLocalObjectReferenceApplyConfiguration) *IngressBackendApplyConfiguration {\n\tb.Resource = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingressloadbalanceringress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// IngressLoadBalancerIngressApplyConfiguration represents a declarative configuration of the IngressLoadBalancerIngress type for use\n// with apply.\ntype IngressLoadBalancerIngressApplyConfiguration struct {\n\tIP       *string                               `json:\"ip,omitempty\"`\n\tHostname *string                               `json:\"hostname,omitempty\"`\n\tPorts    []IngressPortStatusApplyConfiguration `json:\"ports,omitempty\"`\n}\n\n// IngressLoadBalancerIngressApplyConfiguration constructs a declarative configuration of the IngressLoadBalancerIngress type for use with\n// apply.\nfunc IngressLoadBalancerIngress() *IngressLoadBalancerIngressApplyConfiguration {\n\treturn &IngressLoadBalancerIngressApplyConfiguration{}\n}\n\n// WithIP sets the IP field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the IP field is set to the value of the last call.\nfunc (b *IngressLoadBalancerIngressApplyConfiguration) WithIP(value string) *IngressLoadBalancerIngressApplyConfiguration {\n\tb.IP = &value\n\treturn b\n}\n\n// WithHostname sets the Hostname field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Hostname field is set to the value of the last call.\nfunc (b *IngressLoadBalancerIngressApplyConfiguration) WithHostname(value string) *IngressLoadBalancerIngressApplyConfiguration {\n\tb.Hostname = &value\n\treturn b\n}\n\n// WithPorts adds the given value to the Ports field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ports field.\nfunc (b *IngressLoadBalancerIngressApplyConfiguration) WithPorts(values ...*IngressPortStatusApplyConfiguration) *IngressLoadBalancerIngressApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPorts\")\n\t\t}\n\t\tb.Ports = append(b.Ports, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingressloadbalancerstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// IngressLoadBalancerStatusApplyConfiguration represents a declarative configuration of the IngressLoadBalancerStatus type for use\n// with apply.\ntype IngressLoadBalancerStatusApplyConfiguration struct {\n\tIngress []IngressLoadBalancerIngressApplyConfiguration `json:\"ingress,omitempty\"`\n}\n\n// IngressLoadBalancerStatusApplyConfiguration constructs a declarative configuration of the IngressLoadBalancerStatus type for use with\n// apply.\nfunc IngressLoadBalancerStatus() *IngressLoadBalancerStatusApplyConfiguration {\n\treturn &IngressLoadBalancerStatusApplyConfiguration{}\n}\n\n// WithIngress adds the given value to the Ingress field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ingress field.\nfunc (b *IngressLoadBalancerStatusApplyConfiguration) WithIngress(values ...*IngressLoadBalancerIngressApplyConfiguration) *IngressLoadBalancerStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithIngress\")\n\t\t}\n\t\tb.Ingress = append(b.Ingress, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingressportstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// IngressPortStatusApplyConfiguration represents a declarative configuration of the IngressPortStatus type for use\n// with apply.\ntype IngressPortStatusApplyConfiguration struct {\n\tPort     *int32       `json:\"port,omitempty\"`\n\tProtocol *v1.Protocol `json:\"protocol,omitempty\"`\n\tError    *string      `json:\"error,omitempty\"`\n}\n\n// IngressPortStatusApplyConfiguration constructs a declarative configuration of the IngressPortStatus type for use with\n// apply.\nfunc IngressPortStatus() *IngressPortStatusApplyConfiguration {\n\treturn &IngressPortStatusApplyConfiguration{}\n}\n\n// WithPort sets the Port field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Port field is set to the value of the last call.\nfunc (b *IngressPortStatusApplyConfiguration) WithPort(value int32) *IngressPortStatusApplyConfiguration {\n\tb.Port = &value\n\treturn b\n}\n\n// WithProtocol sets the Protocol field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Protocol field is set to the value of the last call.\nfunc (b *IngressPortStatusApplyConfiguration) WithProtocol(value v1.Protocol) *IngressPortStatusApplyConfiguration {\n\tb.Protocol = &value\n\treturn b\n}\n\n// WithError sets the Error field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Error field is set to the value of the last call.\nfunc (b *IngressPortStatusApplyConfiguration) WithError(value string) *IngressPortStatusApplyConfiguration {\n\tb.Error = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingressrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// IngressRuleApplyConfiguration represents a declarative configuration of the IngressRule type for use\n// with apply.\ntype IngressRuleApplyConfiguration struct {\n\tHost                               *string `json:\"host,omitempty\"`\n\tIngressRuleValueApplyConfiguration `json:\",inline\"`\n}\n\n// IngressRuleApplyConfiguration constructs a declarative configuration of the IngressRule type for use with\n// apply.\nfunc IngressRule() *IngressRuleApplyConfiguration {\n\treturn &IngressRuleApplyConfiguration{}\n}\n\n// WithHost sets the Host field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Host field is set to the value of the last call.\nfunc (b *IngressRuleApplyConfiguration) WithHost(value string) *IngressRuleApplyConfiguration {\n\tb.Host = &value\n\treturn b\n}\n\n// WithHTTP sets the HTTP field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HTTP field is set to the value of the last call.\nfunc (b *IngressRuleApplyConfiguration) WithHTTP(value *HTTPIngressRuleValueApplyConfiguration) *IngressRuleApplyConfiguration {\n\tb.IngressRuleValueApplyConfiguration.HTTP = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingressrulevalue.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// IngressRuleValueApplyConfiguration represents a declarative configuration of the IngressRuleValue type for use\n// with apply.\ntype IngressRuleValueApplyConfiguration struct {\n\tHTTP *HTTPIngressRuleValueApplyConfiguration `json:\"http,omitempty\"`\n}\n\n// IngressRuleValueApplyConfiguration constructs a declarative configuration of the IngressRuleValue type for use with\n// apply.\nfunc IngressRuleValue() *IngressRuleValueApplyConfiguration {\n\treturn &IngressRuleValueApplyConfiguration{}\n}\n\n// WithHTTP sets the HTTP field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HTTP field is set to the value of the last call.\nfunc (b *IngressRuleValueApplyConfiguration) WithHTTP(value *HTTPIngressRuleValueApplyConfiguration) *IngressRuleValueApplyConfiguration {\n\tb.HTTP = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingressspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// IngressSpecApplyConfiguration represents a declarative configuration of the IngressSpec type for use\n// with apply.\ntype IngressSpecApplyConfiguration struct {\n\tIngressClassName *string                           `json:\"ingressClassName,omitempty\"`\n\tBackend          *IngressBackendApplyConfiguration `json:\"backend,omitempty\"`\n\tTLS              []IngressTLSApplyConfiguration    `json:\"tls,omitempty\"`\n\tRules            []IngressRuleApplyConfiguration   `json:\"rules,omitempty\"`\n}\n\n// IngressSpecApplyConfiguration constructs a declarative configuration of the IngressSpec type for use with\n// apply.\nfunc IngressSpec() *IngressSpecApplyConfiguration {\n\treturn &IngressSpecApplyConfiguration{}\n}\n\n// WithIngressClassName sets the IngressClassName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the IngressClassName field is set to the value of the last call.\nfunc (b *IngressSpecApplyConfiguration) WithIngressClassName(value string) *IngressSpecApplyConfiguration {\n\tb.IngressClassName = &value\n\treturn b\n}\n\n// WithBackend sets the Backend field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Backend field is set to the value of the last call.\nfunc (b *IngressSpecApplyConfiguration) WithBackend(value *IngressBackendApplyConfiguration) *IngressSpecApplyConfiguration {\n\tb.Backend = value\n\treturn b\n}\n\n// WithTLS adds the given value to the TLS field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the TLS field.\nfunc (b *IngressSpecApplyConfiguration) WithTLS(values ...*IngressTLSApplyConfiguration) *IngressSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithTLS\")\n\t\t}\n\t\tb.TLS = append(b.TLS, *values[i])\n\t}\n\treturn b\n}\n\n// WithRules adds the given value to the Rules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Rules field.\nfunc (b *IngressSpecApplyConfiguration) WithRules(values ...*IngressRuleApplyConfiguration) *IngressSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRules\")\n\t\t}\n\t\tb.Rules = append(b.Rules, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingressstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// IngressStatusApplyConfiguration represents a declarative configuration of the IngressStatus type for use\n// with apply.\ntype IngressStatusApplyConfiguration struct {\n\tLoadBalancer *IngressLoadBalancerStatusApplyConfiguration `json:\"loadBalancer,omitempty\"`\n}\n\n// IngressStatusApplyConfiguration constructs a declarative configuration of the IngressStatus type for use with\n// apply.\nfunc IngressStatus() *IngressStatusApplyConfiguration {\n\treturn &IngressStatusApplyConfiguration{}\n}\n\n// WithLoadBalancer sets the LoadBalancer field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LoadBalancer field is set to the value of the last call.\nfunc (b *IngressStatusApplyConfiguration) WithLoadBalancer(value *IngressLoadBalancerStatusApplyConfiguration) *IngressStatusApplyConfiguration {\n\tb.LoadBalancer = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ingresstls.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// IngressTLSApplyConfiguration represents a declarative configuration of the IngressTLS type for use\n// with apply.\ntype IngressTLSApplyConfiguration struct {\n\tHosts      []string `json:\"hosts,omitempty\"`\n\tSecretName *string  `json:\"secretName,omitempty\"`\n}\n\n// IngressTLSApplyConfiguration constructs a declarative configuration of the IngressTLS type for use with\n// apply.\nfunc IngressTLS() *IngressTLSApplyConfiguration {\n\treturn &IngressTLSApplyConfiguration{}\n}\n\n// WithHosts adds the given value to the Hosts field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Hosts field.\nfunc (b *IngressTLSApplyConfiguration) WithHosts(values ...string) *IngressTLSApplyConfiguration {\n\tfor i := range values {\n\t\tb.Hosts = append(b.Hosts, values[i])\n\t}\n\treturn b\n}\n\n// WithSecretName sets the SecretName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretName field is set to the value of the last call.\nfunc (b *IngressTLSApplyConfiguration) WithSecretName(value string) *IngressTLSApplyConfiguration {\n\tb.SecretName = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/ipblock.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// IPBlockApplyConfiguration represents a declarative configuration of the IPBlock type for use\n// with apply.\ntype IPBlockApplyConfiguration struct {\n\tCIDR   *string  `json:\"cidr,omitempty\"`\n\tExcept []string `json:\"except,omitempty\"`\n}\n\n// IPBlockApplyConfiguration constructs a declarative configuration of the IPBlock type for use with\n// apply.\nfunc IPBlock() *IPBlockApplyConfiguration {\n\treturn &IPBlockApplyConfiguration{}\n}\n\n// WithCIDR sets the CIDR field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CIDR field is set to the value of the last call.\nfunc (b *IPBlockApplyConfiguration) WithCIDR(value string) *IPBlockApplyConfiguration {\n\tb.CIDR = &value\n\treturn b\n}\n\n// WithExcept adds the given value to the Except field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Except field.\nfunc (b *IPBlockApplyConfiguration) WithExcept(values ...string) *IPBlockApplyConfiguration {\n\tfor i := range values {\n\t\tb.Except = append(b.Except, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/networkpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\textensionsv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// NetworkPolicyApplyConfiguration represents a declarative configuration of the NetworkPolicy type for use\n// with apply.\ntype NetworkPolicyApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *NetworkPolicySpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// NetworkPolicy constructs a declarative configuration of the NetworkPolicy type for use with\n// apply.\nfunc NetworkPolicy(name, namespace string) *NetworkPolicyApplyConfiguration {\n\tb := &NetworkPolicyApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"NetworkPolicy\")\n\tb.WithAPIVersion(\"extensions/v1beta1\")\n\treturn b\n}\n\n// ExtractNetworkPolicy extracts the applied configuration owned by fieldManager from\n// networkPolicy. If no managedFields are found in networkPolicy for fieldManager, a\n// NetworkPolicyApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// networkPolicy must be a unmodified NetworkPolicy API object that was retrieved from the Kubernetes API.\n// ExtractNetworkPolicy provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractNetworkPolicy(networkPolicy *extensionsv1beta1.NetworkPolicy, fieldManager string) (*NetworkPolicyApplyConfiguration, error) {\n\treturn extractNetworkPolicy(networkPolicy, fieldManager, \"\")\n}\n\n// ExtractNetworkPolicyStatus is the same as ExtractNetworkPolicy except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractNetworkPolicyStatus(networkPolicy *extensionsv1beta1.NetworkPolicy, fieldManager string) (*NetworkPolicyApplyConfiguration, error) {\n\treturn extractNetworkPolicy(networkPolicy, fieldManager, \"status\")\n}\n\nfunc extractNetworkPolicy(networkPolicy *extensionsv1beta1.NetworkPolicy, fieldManager string, subresource string) (*NetworkPolicyApplyConfiguration, error) {\n\tb := &NetworkPolicyApplyConfiguration{}\n\terr := managedfields.ExtractInto(networkPolicy, internal.Parser().Type(\"io.k8s.api.extensions.v1beta1.NetworkPolicy\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(networkPolicy.Name)\n\tb.WithNamespace(networkPolicy.Namespace)\n\n\tb.WithKind(\"NetworkPolicy\")\n\tb.WithAPIVersion(\"extensions/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithKind(value string) *NetworkPolicyApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithAPIVersion(value string) *NetworkPolicyApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithName(value string) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithGenerateName(value string) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithNamespace(value string) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithUID(value types.UID) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithResourceVersion(value string) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithGeneration(value int64) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithCreationTimestamp(value metav1.Time) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *NetworkPolicyApplyConfiguration) WithLabels(entries map[string]string) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *NetworkPolicyApplyConfiguration) WithAnnotations(entries map[string]string) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *NetworkPolicyApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *NetworkPolicyApplyConfiguration) WithFinalizers(values ...string) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *NetworkPolicyApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithSpec(value *NetworkPolicySpecApplyConfiguration) *NetworkPolicyApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *NetworkPolicyApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/networkpolicyegressrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// NetworkPolicyEgressRuleApplyConfiguration represents a declarative configuration of the NetworkPolicyEgressRule type for use\n// with apply.\ntype NetworkPolicyEgressRuleApplyConfiguration struct {\n\tPorts []NetworkPolicyPortApplyConfiguration `json:\"ports,omitempty\"`\n\tTo    []NetworkPolicyPeerApplyConfiguration `json:\"to,omitempty\"`\n}\n\n// NetworkPolicyEgressRuleApplyConfiguration constructs a declarative configuration of the NetworkPolicyEgressRule type for use with\n// apply.\nfunc NetworkPolicyEgressRule() *NetworkPolicyEgressRuleApplyConfiguration {\n\treturn &NetworkPolicyEgressRuleApplyConfiguration{}\n}\n\n// WithPorts adds the given value to the Ports field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ports field.\nfunc (b *NetworkPolicyEgressRuleApplyConfiguration) WithPorts(values ...*NetworkPolicyPortApplyConfiguration) *NetworkPolicyEgressRuleApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPorts\")\n\t\t}\n\t\tb.Ports = append(b.Ports, *values[i])\n\t}\n\treturn b\n}\n\n// WithTo adds the given value to the To field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the To field.\nfunc (b *NetworkPolicyEgressRuleApplyConfiguration) WithTo(values ...*NetworkPolicyPeerApplyConfiguration) *NetworkPolicyEgressRuleApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithTo\")\n\t\t}\n\t\tb.To = append(b.To, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/networkpolicyingressrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// NetworkPolicyIngressRuleApplyConfiguration represents a declarative configuration of the NetworkPolicyIngressRule type for use\n// with apply.\ntype NetworkPolicyIngressRuleApplyConfiguration struct {\n\tPorts []NetworkPolicyPortApplyConfiguration `json:\"ports,omitempty\"`\n\tFrom  []NetworkPolicyPeerApplyConfiguration `json:\"from,omitempty\"`\n}\n\n// NetworkPolicyIngressRuleApplyConfiguration constructs a declarative configuration of the NetworkPolicyIngressRule type for use with\n// apply.\nfunc NetworkPolicyIngressRule() *NetworkPolicyIngressRuleApplyConfiguration {\n\treturn &NetworkPolicyIngressRuleApplyConfiguration{}\n}\n\n// WithPorts adds the given value to the Ports field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ports field.\nfunc (b *NetworkPolicyIngressRuleApplyConfiguration) WithPorts(values ...*NetworkPolicyPortApplyConfiguration) *NetworkPolicyIngressRuleApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPorts\")\n\t\t}\n\t\tb.Ports = append(b.Ports, *values[i])\n\t}\n\treturn b\n}\n\n// WithFrom adds the given value to the From field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the From field.\nfunc (b *NetworkPolicyIngressRuleApplyConfiguration) WithFrom(values ...*NetworkPolicyPeerApplyConfiguration) *NetworkPolicyIngressRuleApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithFrom\")\n\t\t}\n\t\tb.From = append(b.From, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/networkpolicypeer.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// NetworkPolicyPeerApplyConfiguration represents a declarative configuration of the NetworkPolicyPeer type for use\n// with apply.\ntype NetworkPolicyPeerApplyConfiguration struct {\n\tPodSelector       *v1.LabelSelectorApplyConfiguration `json:\"podSelector,omitempty\"`\n\tNamespaceSelector *v1.LabelSelectorApplyConfiguration `json:\"namespaceSelector,omitempty\"`\n\tIPBlock           *IPBlockApplyConfiguration          `json:\"ipBlock,omitempty\"`\n}\n\n// NetworkPolicyPeerApplyConfiguration constructs a declarative configuration of the NetworkPolicyPeer type for use with\n// apply.\nfunc NetworkPolicyPeer() *NetworkPolicyPeerApplyConfiguration {\n\treturn &NetworkPolicyPeerApplyConfiguration{}\n}\n\n// WithPodSelector sets the PodSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PodSelector field is set to the value of the last call.\nfunc (b *NetworkPolicyPeerApplyConfiguration) WithPodSelector(value *v1.LabelSelectorApplyConfiguration) *NetworkPolicyPeerApplyConfiguration {\n\tb.PodSelector = value\n\treturn b\n}\n\n// WithNamespaceSelector sets the NamespaceSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NamespaceSelector field is set to the value of the last call.\nfunc (b *NetworkPolicyPeerApplyConfiguration) WithNamespaceSelector(value *v1.LabelSelectorApplyConfiguration) *NetworkPolicyPeerApplyConfiguration {\n\tb.NamespaceSelector = value\n\treturn b\n}\n\n// WithIPBlock sets the IPBlock field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the IPBlock field is set to the value of the last call.\nfunc (b *NetworkPolicyPeerApplyConfiguration) WithIPBlock(value *IPBlockApplyConfiguration) *NetworkPolicyPeerApplyConfiguration {\n\tb.IPBlock = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/networkpolicyport.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// NetworkPolicyPortApplyConfiguration represents a declarative configuration of the NetworkPolicyPort type for use\n// with apply.\ntype NetworkPolicyPortApplyConfiguration struct {\n\tProtocol *v1.Protocol        `json:\"protocol,omitempty\"`\n\tPort     *intstr.IntOrString `json:\"port,omitempty\"`\n\tEndPort  *int32              `json:\"endPort,omitempty\"`\n}\n\n// NetworkPolicyPortApplyConfiguration constructs a declarative configuration of the NetworkPolicyPort type for use with\n// apply.\nfunc NetworkPolicyPort() *NetworkPolicyPortApplyConfiguration {\n\treturn &NetworkPolicyPortApplyConfiguration{}\n}\n\n// WithProtocol sets the Protocol field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Protocol field is set to the value of the last call.\nfunc (b *NetworkPolicyPortApplyConfiguration) WithProtocol(value v1.Protocol) *NetworkPolicyPortApplyConfiguration {\n\tb.Protocol = &value\n\treturn b\n}\n\n// WithPort sets the Port field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Port field is set to the value of the last call.\nfunc (b *NetworkPolicyPortApplyConfiguration) WithPort(value intstr.IntOrString) *NetworkPolicyPortApplyConfiguration {\n\tb.Port = &value\n\treturn b\n}\n\n// WithEndPort sets the EndPort field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the EndPort field is set to the value of the last call.\nfunc (b *NetworkPolicyPortApplyConfiguration) WithEndPort(value int32) *NetworkPolicyPortApplyConfiguration {\n\tb.EndPort = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/networkpolicyspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\textensionsv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// NetworkPolicySpecApplyConfiguration represents a declarative configuration of the NetworkPolicySpec type for use\n// with apply.\ntype NetworkPolicySpecApplyConfiguration struct {\n\tPodSelector *v1.LabelSelectorApplyConfiguration          `json:\"podSelector,omitempty\"`\n\tIngress     []NetworkPolicyIngressRuleApplyConfiguration `json:\"ingress,omitempty\"`\n\tEgress      []NetworkPolicyEgressRuleApplyConfiguration  `json:\"egress,omitempty\"`\n\tPolicyTypes []extensionsv1beta1.PolicyType               `json:\"policyTypes,omitempty\"`\n}\n\n// NetworkPolicySpecApplyConfiguration constructs a declarative configuration of the NetworkPolicySpec type for use with\n// apply.\nfunc NetworkPolicySpec() *NetworkPolicySpecApplyConfiguration {\n\treturn &NetworkPolicySpecApplyConfiguration{}\n}\n\n// WithPodSelector sets the PodSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PodSelector field is set to the value of the last call.\nfunc (b *NetworkPolicySpecApplyConfiguration) WithPodSelector(value *v1.LabelSelectorApplyConfiguration) *NetworkPolicySpecApplyConfiguration {\n\tb.PodSelector = value\n\treturn b\n}\n\n// WithIngress adds the given value to the Ingress field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ingress field.\nfunc (b *NetworkPolicySpecApplyConfiguration) WithIngress(values ...*NetworkPolicyIngressRuleApplyConfiguration) *NetworkPolicySpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithIngress\")\n\t\t}\n\t\tb.Ingress = append(b.Ingress, *values[i])\n\t}\n\treturn b\n}\n\n// WithEgress adds the given value to the Egress field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Egress field.\nfunc (b *NetworkPolicySpecApplyConfiguration) WithEgress(values ...*NetworkPolicyEgressRuleApplyConfiguration) *NetworkPolicySpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithEgress\")\n\t\t}\n\t\tb.Egress = append(b.Egress, *values[i])\n\t}\n\treturn b\n}\n\n// WithPolicyTypes adds the given value to the PolicyTypes field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the PolicyTypes field.\nfunc (b *NetworkPolicySpecApplyConfiguration) WithPolicyTypes(values ...extensionsv1beta1.PolicyType) *NetworkPolicySpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.PolicyTypes = append(b.PolicyTypes, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/replicaset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\textensionsv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ReplicaSetApplyConfiguration represents a declarative configuration of the ReplicaSet type for use\n// with apply.\ntype ReplicaSetApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *ReplicaSetSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *ReplicaSetStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// ReplicaSet constructs a declarative configuration of the ReplicaSet type for use with\n// apply.\nfunc ReplicaSet(name, namespace string) *ReplicaSetApplyConfiguration {\n\tb := &ReplicaSetApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"ReplicaSet\")\n\tb.WithAPIVersion(\"extensions/v1beta1\")\n\treturn b\n}\n\n// ExtractReplicaSet extracts the applied configuration owned by fieldManager from\n// replicaSet. If no managedFields are found in replicaSet for fieldManager, a\n// ReplicaSetApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// replicaSet must be a unmodified ReplicaSet API object that was retrieved from the Kubernetes API.\n// ExtractReplicaSet provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractReplicaSet(replicaSet *extensionsv1beta1.ReplicaSet, fieldManager string) (*ReplicaSetApplyConfiguration, error) {\n\treturn extractReplicaSet(replicaSet, fieldManager, \"\")\n}\n\n// ExtractReplicaSetStatus is the same as ExtractReplicaSet except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractReplicaSetStatus(replicaSet *extensionsv1beta1.ReplicaSet, fieldManager string) (*ReplicaSetApplyConfiguration, error) {\n\treturn extractReplicaSet(replicaSet, fieldManager, \"status\")\n}\n\nfunc extractReplicaSet(replicaSet *extensionsv1beta1.ReplicaSet, fieldManager string, subresource string) (*ReplicaSetApplyConfiguration, error) {\n\tb := &ReplicaSetApplyConfiguration{}\n\terr := managedfields.ExtractInto(replicaSet, internal.Parser().Type(\"io.k8s.api.extensions.v1beta1.ReplicaSet\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(replicaSet.Name)\n\tb.WithNamespace(replicaSet.Namespace)\n\n\tb.WithKind(\"ReplicaSet\")\n\tb.WithAPIVersion(\"extensions/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithKind(value string) *ReplicaSetApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithAPIVersion(value string) *ReplicaSetApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithName(value string) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithGenerateName(value string) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithNamespace(value string) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithUID(value types.UID) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithResourceVersion(value string) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithGeneration(value int64) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ReplicaSetApplyConfiguration) WithLabels(entries map[string]string) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ReplicaSetApplyConfiguration) WithAnnotations(entries map[string]string) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ReplicaSetApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ReplicaSetApplyConfiguration) WithFinalizers(values ...string) *ReplicaSetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ReplicaSetApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithSpec(value *ReplicaSetSpecApplyConfiguration) *ReplicaSetApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *ReplicaSetApplyConfiguration) WithStatus(value *ReplicaSetStatusApplyConfiguration) *ReplicaSetApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *ReplicaSetApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/replicasetcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\textensionsv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// ReplicaSetConditionApplyConfiguration represents a declarative configuration of the ReplicaSetCondition type for use\n// with apply.\ntype ReplicaSetConditionApplyConfiguration struct {\n\tType               *extensionsv1beta1.ReplicaSetConditionType `json:\"type,omitempty\"`\n\tStatus             *v1.ConditionStatus                        `json:\"status,omitempty\"`\n\tLastTransitionTime *metav1.Time                               `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                                    `json:\"reason,omitempty\"`\n\tMessage            *string                                    `json:\"message,omitempty\"`\n}\n\n// ReplicaSetConditionApplyConfiguration constructs a declarative configuration of the ReplicaSetCondition type for use with\n// apply.\nfunc ReplicaSetCondition() *ReplicaSetConditionApplyConfiguration {\n\treturn &ReplicaSetConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *ReplicaSetConditionApplyConfiguration) WithType(value extensionsv1beta1.ReplicaSetConditionType) *ReplicaSetConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *ReplicaSetConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *ReplicaSetConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *ReplicaSetConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *ReplicaSetConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *ReplicaSetConditionApplyConfiguration) WithReason(value string) *ReplicaSetConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *ReplicaSetConditionApplyConfiguration) WithMessage(value string) *ReplicaSetConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/replicasetspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ReplicaSetSpecApplyConfiguration represents a declarative configuration of the ReplicaSetSpec type for use\n// with apply.\ntype ReplicaSetSpecApplyConfiguration struct {\n\tReplicas        *int32                                    `json:\"replicas,omitempty\"`\n\tMinReadySeconds *int32                                    `json:\"minReadySeconds,omitempty\"`\n\tSelector        *v1.LabelSelectorApplyConfiguration       `json:\"selector,omitempty\"`\n\tTemplate        *corev1.PodTemplateSpecApplyConfiguration `json:\"template,omitempty\"`\n}\n\n// ReplicaSetSpecApplyConfiguration constructs a declarative configuration of the ReplicaSetSpec type for use with\n// apply.\nfunc ReplicaSetSpec() *ReplicaSetSpecApplyConfiguration {\n\treturn &ReplicaSetSpecApplyConfiguration{}\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *ReplicaSetSpecApplyConfiguration) WithReplicas(value int32) *ReplicaSetSpecApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithMinReadySeconds sets the MinReadySeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MinReadySeconds field is set to the value of the last call.\nfunc (b *ReplicaSetSpecApplyConfiguration) WithMinReadySeconds(value int32) *ReplicaSetSpecApplyConfiguration {\n\tb.MinReadySeconds = &value\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *ReplicaSetSpecApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *ReplicaSetSpecApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n\n// WithTemplate sets the Template field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Template field is set to the value of the last call.\nfunc (b *ReplicaSetSpecApplyConfiguration) WithTemplate(value *corev1.PodTemplateSpecApplyConfiguration) *ReplicaSetSpecApplyConfiguration {\n\tb.Template = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/replicasetstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// ReplicaSetStatusApplyConfiguration represents a declarative configuration of the ReplicaSetStatus type for use\n// with apply.\ntype ReplicaSetStatusApplyConfiguration struct {\n\tReplicas             *int32                                  `json:\"replicas,omitempty\"`\n\tFullyLabeledReplicas *int32                                  `json:\"fullyLabeledReplicas,omitempty\"`\n\tReadyReplicas        *int32                                  `json:\"readyReplicas,omitempty\"`\n\tAvailableReplicas    *int32                                  `json:\"availableReplicas,omitempty\"`\n\tObservedGeneration   *int64                                  `json:\"observedGeneration,omitempty\"`\n\tConditions           []ReplicaSetConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// ReplicaSetStatusApplyConfiguration constructs a declarative configuration of the ReplicaSetStatus type for use with\n// apply.\nfunc ReplicaSetStatus() *ReplicaSetStatusApplyConfiguration {\n\treturn &ReplicaSetStatusApplyConfiguration{}\n}\n\n// WithReplicas sets the Replicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Replicas field is set to the value of the last call.\nfunc (b *ReplicaSetStatusApplyConfiguration) WithReplicas(value int32) *ReplicaSetStatusApplyConfiguration {\n\tb.Replicas = &value\n\treturn b\n}\n\n// WithFullyLabeledReplicas sets the FullyLabeledReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FullyLabeledReplicas field is set to the value of the last call.\nfunc (b *ReplicaSetStatusApplyConfiguration) WithFullyLabeledReplicas(value int32) *ReplicaSetStatusApplyConfiguration {\n\tb.FullyLabeledReplicas = &value\n\treturn b\n}\n\n// WithReadyReplicas sets the ReadyReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReadyReplicas field is set to the value of the last call.\nfunc (b *ReplicaSetStatusApplyConfiguration) WithReadyReplicas(value int32) *ReplicaSetStatusApplyConfiguration {\n\tb.ReadyReplicas = &value\n\treturn b\n}\n\n// WithAvailableReplicas sets the AvailableReplicas field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AvailableReplicas field is set to the value of the last call.\nfunc (b *ReplicaSetStatusApplyConfiguration) WithAvailableReplicas(value int32) *ReplicaSetStatusApplyConfiguration {\n\tb.AvailableReplicas = &value\n\treturn b\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *ReplicaSetStatusApplyConfiguration) WithObservedGeneration(value int64) *ReplicaSetStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *ReplicaSetStatusApplyConfiguration) WithConditions(values ...*ReplicaSetConditionApplyConfiguration) *ReplicaSetStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/rollbackconfig.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// RollbackConfigApplyConfiguration represents a declarative configuration of the RollbackConfig type for use\n// with apply.\ntype RollbackConfigApplyConfiguration struct {\n\tRevision *int64 `json:\"revision,omitempty\"`\n}\n\n// RollbackConfigApplyConfiguration constructs a declarative configuration of the RollbackConfig type for use with\n// apply.\nfunc RollbackConfig() *RollbackConfigApplyConfiguration {\n\treturn &RollbackConfigApplyConfiguration{}\n}\n\n// WithRevision sets the Revision field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Revision field is set to the value of the last call.\nfunc (b *RollbackConfigApplyConfiguration) WithRevision(value int64) *RollbackConfigApplyConfiguration {\n\tb.Revision = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/rollingupdatedaemonset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// RollingUpdateDaemonSetApplyConfiguration represents a declarative configuration of the RollingUpdateDaemonSet type for use\n// with apply.\ntype RollingUpdateDaemonSetApplyConfiguration struct {\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\"`\n\tMaxSurge       *intstr.IntOrString `json:\"maxSurge,omitempty\"`\n}\n\n// RollingUpdateDaemonSetApplyConfiguration constructs a declarative configuration of the RollingUpdateDaemonSet type for use with\n// apply.\nfunc RollingUpdateDaemonSet() *RollingUpdateDaemonSetApplyConfiguration {\n\treturn &RollingUpdateDaemonSetApplyConfiguration{}\n}\n\n// WithMaxUnavailable sets the MaxUnavailable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxUnavailable field is set to the value of the last call.\nfunc (b *RollingUpdateDaemonSetApplyConfiguration) WithMaxUnavailable(value intstr.IntOrString) *RollingUpdateDaemonSetApplyConfiguration {\n\tb.MaxUnavailable = &value\n\treturn b\n}\n\n// WithMaxSurge sets the MaxSurge field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxSurge field is set to the value of the last call.\nfunc (b *RollingUpdateDaemonSetApplyConfiguration) WithMaxSurge(value intstr.IntOrString) *RollingUpdateDaemonSetApplyConfiguration {\n\tb.MaxSurge = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/rollingupdatedeployment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// RollingUpdateDeploymentApplyConfiguration represents a declarative configuration of the RollingUpdateDeployment type for use\n// with apply.\ntype RollingUpdateDeploymentApplyConfiguration struct {\n\tMaxUnavailable *intstr.IntOrString `json:\"maxUnavailable,omitempty\"`\n\tMaxSurge       *intstr.IntOrString `json:\"maxSurge,omitempty\"`\n}\n\n// RollingUpdateDeploymentApplyConfiguration constructs a declarative configuration of the RollingUpdateDeployment type for use with\n// apply.\nfunc RollingUpdateDeployment() *RollingUpdateDeploymentApplyConfiguration {\n\treturn &RollingUpdateDeploymentApplyConfiguration{}\n}\n\n// WithMaxUnavailable sets the MaxUnavailable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxUnavailable field is set to the value of the last call.\nfunc (b *RollingUpdateDeploymentApplyConfiguration) WithMaxUnavailable(value intstr.IntOrString) *RollingUpdateDeploymentApplyConfiguration {\n\tb.MaxUnavailable = &value\n\treturn b\n}\n\n// WithMaxSurge sets the MaxSurge field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxSurge field is set to the value of the last call.\nfunc (b *RollingUpdateDeploymentApplyConfiguration) WithMaxSurge(value intstr.IntOrString) *RollingUpdateDeploymentApplyConfiguration {\n\tb.MaxSurge = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/extensions/v1beta1/scale.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\textensionsv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ScaleApplyConfiguration represents a declarative configuration of the Scale type for use\n// with apply.\ntype ScaleApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *extensionsv1beta1.ScaleSpec   `json:\"spec,omitempty\"`\n\tStatus                           *extensionsv1beta1.ScaleStatus `json:\"status,omitempty\"`\n}\n\n// ScaleApplyConfiguration constructs a declarative configuration of the Scale type for use with\n// apply.\nfunc Scale() *ScaleApplyConfiguration {\n\tb := &ScaleApplyConfiguration{}\n\tb.WithKind(\"Scale\")\n\tb.WithAPIVersion(\"extensions/v1beta1\")\n\treturn b\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithKind(value string) *ScaleApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithAPIVersion(value string) *ScaleApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithName(value string) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithGenerateName(value string) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithNamespace(value string) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithUID(value types.UID) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithResourceVersion(value string) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithGeneration(value int64) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ScaleApplyConfiguration) WithLabels(entries map[string]string) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ScaleApplyConfiguration) WithAnnotations(entries map[string]string) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ScaleApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ScaleApplyConfiguration) WithFinalizers(values ...string) *ScaleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ScaleApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithSpec(value extensionsv1beta1.ScaleSpec) *ScaleApplyConfiguration {\n\tb.Spec = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *ScaleApplyConfiguration) WithStatus(value extensionsv1beta1.ScaleStatus) *ScaleApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *ScaleApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1/exemptprioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ExemptPriorityLevelConfigurationApplyConfiguration represents a declarative configuration of the ExemptPriorityLevelConfiguration type for use\n// with apply.\ntype ExemptPriorityLevelConfigurationApplyConfiguration struct {\n\tNominalConcurrencyShares *int32 `json:\"nominalConcurrencyShares,omitempty\"`\n\tLendablePercent          *int32 `json:\"lendablePercent,omitempty\"`\n}\n\n// ExemptPriorityLevelConfigurationApplyConfiguration constructs a declarative configuration of the ExemptPriorityLevelConfiguration type for use with\n// apply.\nfunc ExemptPriorityLevelConfiguration() *ExemptPriorityLevelConfigurationApplyConfiguration {\n\treturn &ExemptPriorityLevelConfigurationApplyConfiguration{}\n}\n\n// WithNominalConcurrencyShares sets the NominalConcurrencyShares field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NominalConcurrencyShares field is set to the value of the last call.\nfunc (b *ExemptPriorityLevelConfigurationApplyConfiguration) WithNominalConcurrencyShares(value int32) *ExemptPriorityLevelConfigurationApplyConfiguration {\n\tb.NominalConcurrencyShares = &value\n\treturn b\n}\n\n// WithLendablePercent sets the LendablePercent field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LendablePercent field is set to the value of the last call.\nfunc (b *ExemptPriorityLevelConfigurationApplyConfiguration) WithLendablePercent(value int32) *ExemptPriorityLevelConfigurationApplyConfiguration {\n\tb.LendablePercent = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1/flowdistinguishermethod.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tflowcontrolv1 \"k8s.io/api/flowcontrol/v1\"\n)\n\n// FlowDistinguisherMethodApplyConfiguration represents a declarative configuration of the FlowDistinguisherMethod type for use\n// with apply.\ntype FlowDistinguisherMethodApplyConfiguration struct {\n\tType *flowcontrolv1.FlowDistinguisherMethodType `json:\"type,omitempty\"`\n}\n\n// FlowDistinguisherMethodApplyConfiguration constructs a declarative configuration of the FlowDistinguisherMethod type for use with\n// apply.\nfunc FlowDistinguisherMethod() *FlowDistinguisherMethodApplyConfiguration {\n\treturn &FlowDistinguisherMethodApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *FlowDistinguisherMethodApplyConfiguration) WithType(value flowcontrolv1.FlowDistinguisherMethodType) *FlowDistinguisherMethodApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1/flowschema.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tflowcontrolv1 \"k8s.io/api/flowcontrol/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// FlowSchemaApplyConfiguration represents a declarative configuration of the FlowSchema type for use\n// with apply.\ntype FlowSchemaApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                                 *FlowSchemaSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                               *FlowSchemaStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// FlowSchema constructs a declarative configuration of the FlowSchema type for use with\n// apply.\nfunc FlowSchema(name string) *FlowSchemaApplyConfiguration {\n\tb := &FlowSchemaApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"FlowSchema\")\n\tb.WithAPIVersion(\"flowcontrol.apiserver.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractFlowSchema extracts the applied configuration owned by fieldManager from\n// flowSchema. If no managedFields are found in flowSchema for fieldManager, a\n// FlowSchemaApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// flowSchema must be a unmodified FlowSchema API object that was retrieved from the Kubernetes API.\n// ExtractFlowSchema provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractFlowSchema(flowSchema *flowcontrolv1.FlowSchema, fieldManager string) (*FlowSchemaApplyConfiguration, error) {\n\treturn extractFlowSchema(flowSchema, fieldManager, \"\")\n}\n\n// ExtractFlowSchemaStatus is the same as ExtractFlowSchema except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractFlowSchemaStatus(flowSchema *flowcontrolv1.FlowSchema, fieldManager string) (*FlowSchemaApplyConfiguration, error) {\n\treturn extractFlowSchema(flowSchema, fieldManager, \"status\")\n}\n\nfunc extractFlowSchema(flowSchema *flowcontrolv1.FlowSchema, fieldManager string, subresource string) (*FlowSchemaApplyConfiguration, error) {\n\tb := &FlowSchemaApplyConfiguration{}\n\terr := managedfields.ExtractInto(flowSchema, internal.Parser().Type(\"io.k8s.api.flowcontrol.v1.FlowSchema\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(flowSchema.Name)\n\n\tb.WithKind(\"FlowSchema\")\n\tb.WithAPIVersion(\"flowcontrol.apiserver.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithKind(value string) *FlowSchemaApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithAPIVersion(value string) *FlowSchemaApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithName(value string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithGenerateName(value string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithNamespace(value string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithUID(value types.UID) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithResourceVersion(value string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithGeneration(value int64) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *FlowSchemaApplyConfiguration) WithLabels(entries map[string]string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *FlowSchemaApplyConfiguration) WithAnnotations(entries map[string]string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *FlowSchemaApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *FlowSchemaApplyConfiguration) WithFinalizers(values ...string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *FlowSchemaApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithSpec(value *FlowSchemaSpecApplyConfiguration) *FlowSchemaApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithStatus(value *FlowSchemaStatusApplyConfiguration) *FlowSchemaApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *FlowSchemaApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1/flowschemacondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tflowcontrolv1 \"k8s.io/api/flowcontrol/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// FlowSchemaConditionApplyConfiguration represents a declarative configuration of the FlowSchemaCondition type for use\n// with apply.\ntype FlowSchemaConditionApplyConfiguration struct {\n\tType               *flowcontrolv1.FlowSchemaConditionType `json:\"type,omitempty\"`\n\tStatus             *flowcontrolv1.ConditionStatus         `json:\"status,omitempty\"`\n\tLastTransitionTime *metav1.Time                           `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                                `json:\"reason,omitempty\"`\n\tMessage            *string                                `json:\"message,omitempty\"`\n}\n\n// FlowSchemaConditionApplyConfiguration constructs a declarative configuration of the FlowSchemaCondition type for use with\n// apply.\nfunc FlowSchemaCondition() *FlowSchemaConditionApplyConfiguration {\n\treturn &FlowSchemaConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *FlowSchemaConditionApplyConfiguration) WithType(value flowcontrolv1.FlowSchemaConditionType) *FlowSchemaConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *FlowSchemaConditionApplyConfiguration) WithStatus(value flowcontrolv1.ConditionStatus) *FlowSchemaConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *FlowSchemaConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *FlowSchemaConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *FlowSchemaConditionApplyConfiguration) WithReason(value string) *FlowSchemaConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *FlowSchemaConditionApplyConfiguration) WithMessage(value string) *FlowSchemaConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1/flowschemaspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// FlowSchemaSpecApplyConfiguration represents a declarative configuration of the FlowSchemaSpec type for use\n// with apply.\ntype FlowSchemaSpecApplyConfiguration struct {\n\tPriorityLevelConfiguration *PriorityLevelConfigurationReferenceApplyConfiguration `json:\"priorityLevelConfiguration,omitempty\"`\n\tMatchingPrecedence         *int32                                                 `json:\"matchingPrecedence,omitempty\"`\n\tDistinguisherMethod        *FlowDistinguisherMethodApplyConfiguration             `json:\"distinguisherMethod,omitempty\"`\n\tRules                      []PolicyRulesWithSubjectsApplyConfiguration            `json:\"rules,omitempty\"`\n}\n\n// FlowSchemaSpecApplyConfiguration constructs a declarative configuration of the FlowSchemaSpec type for use with\n// apply.\nfunc FlowSchemaSpec() *FlowSchemaSpecApplyConfiguration {\n\treturn &FlowSchemaSpecApplyConfiguration{}\n}\n\n// WithPriorityLevelConfiguration sets the PriorityLevelConfiguration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PriorityLevelConfiguration field is set to the value of the last call.\nfunc (b *FlowSchemaSpecApplyConfiguration) WithPriorityLevelConfiguration(value *PriorityLevelConfigurationReferenceApplyConfiguration) *FlowSchemaSpecApplyConfiguration {\n\tb.PriorityLevelConfiguration = value\n\treturn b\n}\n\n// WithMatchingPrecedence sets the MatchingPrecedence field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MatchingPrecedence field is set to the value of the last call.\nfunc (b *FlowSchemaSpecApplyConfiguration) WithMatchingPrecedence(value int32) *FlowSchemaSpecApplyConfiguration {\n\tb.MatchingPrecedence = &value\n\treturn b\n}\n\n// WithDistinguisherMethod sets the DistinguisherMethod field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DistinguisherMethod field is set to the value of the last call.\nfunc (b *FlowSchemaSpecApplyConfiguration) WithDistinguisherMethod(value *FlowDistinguisherMethodApplyConfiguration) *FlowSchemaSpecApplyConfiguration {\n\tb.DistinguisherMethod = value\n\treturn b\n}\n\n// WithRules adds the given value to the Rules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Rules field.\nfunc (b *FlowSchemaSpecApplyConfiguration) WithRules(values ...*PolicyRulesWithSubjectsApplyConfiguration) *FlowSchemaSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRules\")\n\t\t}\n\t\tb.Rules = append(b.Rules, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1/flowschemastatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// FlowSchemaStatusApplyConfiguration represents a declarative configuration of the FlowSchemaStatus type for use\n// with apply.\ntype FlowSchemaStatusApplyConfiguration struct {\n\tConditions []FlowSchemaConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// FlowSchemaStatusApplyConfiguration constructs a declarative configuration of the FlowSchemaStatus type for use with\n// apply.\nfunc FlowSchemaStatus() *FlowSchemaStatusApplyConfiguration {\n\treturn &FlowSchemaStatusApplyConfiguration{}\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *FlowSchemaStatusApplyConfiguration) WithConditions(values ...*FlowSchemaConditionApplyConfiguration) *FlowSchemaStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1/groupsubject.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// GroupSubjectApplyConfiguration represents a declarative configuration of the GroupSubject type for use\n// with apply.\ntype GroupSubjectApplyConfiguration struct {\n\tName *string `json:\"name,omitempty\"`\n}\n\n// GroupSubjectApplyConfiguration constructs a declarative configuration of the GroupSubject type for use with\n// apply.\nfunc GroupSubject() *GroupSubjectApplyConfiguration {\n\treturn &GroupSubjectApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *GroupSubjectApplyConfiguration) WithName(value string) *GroupSubjectApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1/limitedprioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// LimitedPriorityLevelConfigurationApplyConfiguration represents a declarative configuration of the LimitedPriorityLevelConfiguration type for use\n// with apply.\ntype LimitedPriorityLevelConfigurationApplyConfiguration struct {\n\tNominalConcurrencyShares *int32                           `json:\"nominalConcurrencyShares,omitempty\"`\n\tLimitResponse            *LimitResponseApplyConfiguration `json:\"limitResponse,omitempty\"`\n\tLendablePercent          *int32                           `json:\"lendablePercent,omitempty\"`\n\tBorrowingLimitPercent    *int32                           `json:\"borrowingLimitPercent,omitempty\"`\n}\n\n// LimitedPriorityLevelConfigurationApplyConfiguration constructs a declarative configuration of the LimitedPriorityLevelConfiguration type for use with\n// apply.\nfunc LimitedPriorityLevelConfiguration() *LimitedPriorityLevelConfigurationApplyConfiguration {\n\treturn &LimitedPriorityLevelConfigurationApplyConfiguration{}\n}\n\n// WithNominalConcurrencyShares sets the NominalConcurrencyShares field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NominalConcurrencyShares field is set to the value of the last call.\nfunc (b *LimitedPriorityLevelConfigurationApplyConfiguration) WithNominalConcurrencyShares(value int32) *LimitedPriorityLevelConfigurationApplyConfiguration {\n\tb.NominalConcurrencyShares = &value\n\treturn b\n}\n\n// WithLimitResponse sets the LimitResponse field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LimitResponse field is set to the value of the last call.\nfunc (b *LimitedPriorityLevelConfigurationApplyConfiguration) WithLimitResponse(value *LimitResponseApplyConfiguration) *LimitedPriorityLevelConfigurationApplyConfiguration {\n\tb.LimitResponse = value\n\treturn b\n}\n\n// WithLendablePercent sets the LendablePercent field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LendablePercent field is set to the value of the last call.\nfunc (b *LimitedPriorityLevelConfigurationApplyConfiguration) WithLendablePercent(value int32) *LimitedPriorityLevelConfigurationApplyConfiguration {\n\tb.LendablePercent = &value\n\treturn b\n}\n\n// WithBorrowingLimitPercent sets the BorrowingLimitPercent field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the BorrowingLimitPercent field is set to the value of the last call.\nfunc (b *LimitedPriorityLevelConfigurationApplyConfiguration) WithBorrowingLimitPercent(value int32) *LimitedPriorityLevelConfigurationApplyConfiguration {\n\tb.BorrowingLimitPercent = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1/limitresponse.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tflowcontrolv1 \"k8s.io/api/flowcontrol/v1\"\n)\n\n// LimitResponseApplyConfiguration represents a declarative configuration of the LimitResponse type for use\n// with apply.\ntype LimitResponseApplyConfiguration struct {\n\tType    *flowcontrolv1.LimitResponseType        `json:\"type,omitempty\"`\n\tQueuing *QueuingConfigurationApplyConfiguration `json:\"queuing,omitempty\"`\n}\n\n// LimitResponseApplyConfiguration constructs a declarative configuration of the LimitResponse type for use with\n// apply.\nfunc LimitResponse() *LimitResponseApplyConfiguration {\n\treturn &LimitResponseApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *LimitResponseApplyConfiguration) WithType(value flowcontrolv1.LimitResponseType) *LimitResponseApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithQueuing sets the Queuing field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Queuing field is set to the value of the last call.\nfunc (b *LimitResponseApplyConfiguration) WithQueuing(value *QueuingConfigurationApplyConfiguration) *LimitResponseApplyConfiguration {\n\tb.Queuing = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1/nonresourcepolicyrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// NonResourcePolicyRuleApplyConfiguration represents a declarative configuration of the NonResourcePolicyRule type for use\n// with apply.\ntype NonResourcePolicyRuleApplyConfiguration struct {\n\tVerbs           []string `json:\"verbs,omitempty\"`\n\tNonResourceURLs []string `json:\"nonResourceURLs,omitempty\"`\n}\n\n// NonResourcePolicyRuleApplyConfiguration constructs a declarative configuration of the NonResourcePolicyRule type for use with\n// apply.\nfunc NonResourcePolicyRule() *NonResourcePolicyRuleApplyConfiguration {\n\treturn &NonResourcePolicyRuleApplyConfiguration{}\n}\n\n// WithVerbs adds the given value to the Verbs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Verbs field.\nfunc (b *NonResourcePolicyRuleApplyConfiguration) WithVerbs(values ...string) *NonResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Verbs = append(b.Verbs, values[i])\n\t}\n\treturn b\n}\n\n// WithNonResourceURLs adds the given value to the NonResourceURLs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the NonResourceURLs field.\nfunc (b *NonResourcePolicyRuleApplyConfiguration) WithNonResourceURLs(values ...string) *NonResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.NonResourceURLs = append(b.NonResourceURLs, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1/policyruleswithsubjects.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// PolicyRulesWithSubjectsApplyConfiguration represents a declarative configuration of the PolicyRulesWithSubjects type for use\n// with apply.\ntype PolicyRulesWithSubjectsApplyConfiguration struct {\n\tSubjects         []SubjectApplyConfiguration               `json:\"subjects,omitempty\"`\n\tResourceRules    []ResourcePolicyRuleApplyConfiguration    `json:\"resourceRules,omitempty\"`\n\tNonResourceRules []NonResourcePolicyRuleApplyConfiguration `json:\"nonResourceRules,omitempty\"`\n}\n\n// PolicyRulesWithSubjectsApplyConfiguration constructs a declarative configuration of the PolicyRulesWithSubjects type for use with\n// apply.\nfunc PolicyRulesWithSubjects() *PolicyRulesWithSubjectsApplyConfiguration {\n\treturn &PolicyRulesWithSubjectsApplyConfiguration{}\n}\n\n// WithSubjects adds the given value to the Subjects field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Subjects field.\nfunc (b *PolicyRulesWithSubjectsApplyConfiguration) WithSubjects(values ...*SubjectApplyConfiguration) *PolicyRulesWithSubjectsApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithSubjects\")\n\t\t}\n\t\tb.Subjects = append(b.Subjects, *values[i])\n\t}\n\treturn b\n}\n\n// WithResourceRules adds the given value to the ResourceRules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ResourceRules field.\nfunc (b *PolicyRulesWithSubjectsApplyConfiguration) WithResourceRules(values ...*ResourcePolicyRuleApplyConfiguration) *PolicyRulesWithSubjectsApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithResourceRules\")\n\t\t}\n\t\tb.ResourceRules = append(b.ResourceRules, *values[i])\n\t}\n\treturn b\n}\n\n// WithNonResourceRules adds the given value to the NonResourceRules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the NonResourceRules field.\nfunc (b *PolicyRulesWithSubjectsApplyConfiguration) WithNonResourceRules(values ...*NonResourcePolicyRuleApplyConfiguration) *PolicyRulesWithSubjectsApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithNonResourceRules\")\n\t\t}\n\t\tb.NonResourceRules = append(b.NonResourceRules, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1/prioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tflowcontrolv1 \"k8s.io/api/flowcontrol/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PriorityLevelConfigurationApplyConfiguration represents a declarative configuration of the PriorityLevelConfiguration type for use\n// with apply.\ntype PriorityLevelConfigurationApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                                 *PriorityLevelConfigurationSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                               *PriorityLevelConfigurationStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// PriorityLevelConfiguration constructs a declarative configuration of the PriorityLevelConfiguration type for use with\n// apply.\nfunc PriorityLevelConfiguration(name string) *PriorityLevelConfigurationApplyConfiguration {\n\tb := &PriorityLevelConfigurationApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"PriorityLevelConfiguration\")\n\tb.WithAPIVersion(\"flowcontrol.apiserver.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractPriorityLevelConfiguration extracts the applied configuration owned by fieldManager from\n// priorityLevelConfiguration. If no managedFields are found in priorityLevelConfiguration for fieldManager, a\n// PriorityLevelConfigurationApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// priorityLevelConfiguration must be a unmodified PriorityLevelConfiguration API object that was retrieved from the Kubernetes API.\n// ExtractPriorityLevelConfiguration provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractPriorityLevelConfiguration(priorityLevelConfiguration *flowcontrolv1.PriorityLevelConfiguration, fieldManager string) (*PriorityLevelConfigurationApplyConfiguration, error) {\n\treturn extractPriorityLevelConfiguration(priorityLevelConfiguration, fieldManager, \"\")\n}\n\n// ExtractPriorityLevelConfigurationStatus is the same as ExtractPriorityLevelConfiguration except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractPriorityLevelConfigurationStatus(priorityLevelConfiguration *flowcontrolv1.PriorityLevelConfiguration, fieldManager string) (*PriorityLevelConfigurationApplyConfiguration, error) {\n\treturn extractPriorityLevelConfiguration(priorityLevelConfiguration, fieldManager, \"status\")\n}\n\nfunc extractPriorityLevelConfiguration(priorityLevelConfiguration *flowcontrolv1.PriorityLevelConfiguration, fieldManager string, subresource string) (*PriorityLevelConfigurationApplyConfiguration, error) {\n\tb := &PriorityLevelConfigurationApplyConfiguration{}\n\terr := managedfields.ExtractInto(priorityLevelConfiguration, internal.Parser().Type(\"io.k8s.api.flowcontrol.v1.PriorityLevelConfiguration\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(priorityLevelConfiguration.Name)\n\n\tb.WithKind(\"PriorityLevelConfiguration\")\n\tb.WithAPIVersion(\"flowcontrol.apiserver.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithKind(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithAPIVersion(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithName(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithGenerateName(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithNamespace(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithUID(value types.UID) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithResourceVersion(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithGeneration(value int64) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithLabels(entries map[string]string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithAnnotations(entries map[string]string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithFinalizers(values ...string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *PriorityLevelConfigurationApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithSpec(value *PriorityLevelConfigurationSpecApplyConfiguration) *PriorityLevelConfigurationApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithStatus(value *PriorityLevelConfigurationStatusApplyConfiguration) *PriorityLevelConfigurationApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1/prioritylevelconfigurationcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tflowcontrolv1 \"k8s.io/api/flowcontrol/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// PriorityLevelConfigurationConditionApplyConfiguration represents a declarative configuration of the PriorityLevelConfigurationCondition type for use\n// with apply.\ntype PriorityLevelConfigurationConditionApplyConfiguration struct {\n\tType               *flowcontrolv1.PriorityLevelConfigurationConditionType `json:\"type,omitempty\"`\n\tStatus             *flowcontrolv1.ConditionStatus                         `json:\"status,omitempty\"`\n\tLastTransitionTime *metav1.Time                                           `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                                                `json:\"reason,omitempty\"`\n\tMessage            *string                                                `json:\"message,omitempty\"`\n}\n\n// PriorityLevelConfigurationConditionApplyConfiguration constructs a declarative configuration of the PriorityLevelConfigurationCondition type for use with\n// apply.\nfunc PriorityLevelConfigurationCondition() *PriorityLevelConfigurationConditionApplyConfiguration {\n\treturn &PriorityLevelConfigurationConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationConditionApplyConfiguration) WithType(value flowcontrolv1.PriorityLevelConfigurationConditionType) *PriorityLevelConfigurationConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationConditionApplyConfiguration) WithStatus(value flowcontrolv1.ConditionStatus) *PriorityLevelConfigurationConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *PriorityLevelConfigurationConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationConditionApplyConfiguration) WithReason(value string) *PriorityLevelConfigurationConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationConditionApplyConfiguration) WithMessage(value string) *PriorityLevelConfigurationConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1/prioritylevelconfigurationreference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// PriorityLevelConfigurationReferenceApplyConfiguration represents a declarative configuration of the PriorityLevelConfigurationReference type for use\n// with apply.\ntype PriorityLevelConfigurationReferenceApplyConfiguration struct {\n\tName *string `json:\"name,omitempty\"`\n}\n\n// PriorityLevelConfigurationReferenceApplyConfiguration constructs a declarative configuration of the PriorityLevelConfigurationReference type for use with\n// apply.\nfunc PriorityLevelConfigurationReference() *PriorityLevelConfigurationReferenceApplyConfiguration {\n\treturn &PriorityLevelConfigurationReferenceApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationReferenceApplyConfiguration) WithName(value string) *PriorityLevelConfigurationReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1/prioritylevelconfigurationspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tflowcontrolv1 \"k8s.io/api/flowcontrol/v1\"\n)\n\n// PriorityLevelConfigurationSpecApplyConfiguration represents a declarative configuration of the PriorityLevelConfigurationSpec type for use\n// with apply.\ntype PriorityLevelConfigurationSpecApplyConfiguration struct {\n\tType    *flowcontrolv1.PriorityLevelEnablement               `json:\"type,omitempty\"`\n\tLimited *LimitedPriorityLevelConfigurationApplyConfiguration `json:\"limited,omitempty\"`\n\tExempt  *ExemptPriorityLevelConfigurationApplyConfiguration  `json:\"exempt,omitempty\"`\n}\n\n// PriorityLevelConfigurationSpecApplyConfiguration constructs a declarative configuration of the PriorityLevelConfigurationSpec type for use with\n// apply.\nfunc PriorityLevelConfigurationSpec() *PriorityLevelConfigurationSpecApplyConfiguration {\n\treturn &PriorityLevelConfigurationSpecApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationSpecApplyConfiguration) WithType(value flowcontrolv1.PriorityLevelEnablement) *PriorityLevelConfigurationSpecApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithLimited sets the Limited field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Limited field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationSpecApplyConfiguration) WithLimited(value *LimitedPriorityLevelConfigurationApplyConfiguration) *PriorityLevelConfigurationSpecApplyConfiguration {\n\tb.Limited = value\n\treturn b\n}\n\n// WithExempt sets the Exempt field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Exempt field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationSpecApplyConfiguration) WithExempt(value *ExemptPriorityLevelConfigurationApplyConfiguration) *PriorityLevelConfigurationSpecApplyConfiguration {\n\tb.Exempt = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1/prioritylevelconfigurationstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// PriorityLevelConfigurationStatusApplyConfiguration represents a declarative configuration of the PriorityLevelConfigurationStatus type for use\n// with apply.\ntype PriorityLevelConfigurationStatusApplyConfiguration struct {\n\tConditions []PriorityLevelConfigurationConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// PriorityLevelConfigurationStatusApplyConfiguration constructs a declarative configuration of the PriorityLevelConfigurationStatus type for use with\n// apply.\nfunc PriorityLevelConfigurationStatus() *PriorityLevelConfigurationStatusApplyConfiguration {\n\treturn &PriorityLevelConfigurationStatusApplyConfiguration{}\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *PriorityLevelConfigurationStatusApplyConfiguration) WithConditions(values ...*PriorityLevelConfigurationConditionApplyConfiguration) *PriorityLevelConfigurationStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1/queuingconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// QueuingConfigurationApplyConfiguration represents a declarative configuration of the QueuingConfiguration type for use\n// with apply.\ntype QueuingConfigurationApplyConfiguration struct {\n\tQueues           *int32 `json:\"queues,omitempty\"`\n\tHandSize         *int32 `json:\"handSize,omitempty\"`\n\tQueueLengthLimit *int32 `json:\"queueLengthLimit,omitempty\"`\n}\n\n// QueuingConfigurationApplyConfiguration constructs a declarative configuration of the QueuingConfiguration type for use with\n// apply.\nfunc QueuingConfiguration() *QueuingConfigurationApplyConfiguration {\n\treturn &QueuingConfigurationApplyConfiguration{}\n}\n\n// WithQueues sets the Queues field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Queues field is set to the value of the last call.\nfunc (b *QueuingConfigurationApplyConfiguration) WithQueues(value int32) *QueuingConfigurationApplyConfiguration {\n\tb.Queues = &value\n\treturn b\n}\n\n// WithHandSize sets the HandSize field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HandSize field is set to the value of the last call.\nfunc (b *QueuingConfigurationApplyConfiguration) WithHandSize(value int32) *QueuingConfigurationApplyConfiguration {\n\tb.HandSize = &value\n\treturn b\n}\n\n// WithQueueLengthLimit sets the QueueLengthLimit field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the QueueLengthLimit field is set to the value of the last call.\nfunc (b *QueuingConfigurationApplyConfiguration) WithQueueLengthLimit(value int32) *QueuingConfigurationApplyConfiguration {\n\tb.QueueLengthLimit = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1/resourcepolicyrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ResourcePolicyRuleApplyConfiguration represents a declarative configuration of the ResourcePolicyRule type for use\n// with apply.\ntype ResourcePolicyRuleApplyConfiguration struct {\n\tVerbs        []string `json:\"verbs,omitempty\"`\n\tAPIGroups    []string `json:\"apiGroups,omitempty\"`\n\tResources    []string `json:\"resources,omitempty\"`\n\tClusterScope *bool    `json:\"clusterScope,omitempty\"`\n\tNamespaces   []string `json:\"namespaces,omitempty\"`\n}\n\n// ResourcePolicyRuleApplyConfiguration constructs a declarative configuration of the ResourcePolicyRule type for use with\n// apply.\nfunc ResourcePolicyRule() *ResourcePolicyRuleApplyConfiguration {\n\treturn &ResourcePolicyRuleApplyConfiguration{}\n}\n\n// WithVerbs adds the given value to the Verbs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Verbs field.\nfunc (b *ResourcePolicyRuleApplyConfiguration) WithVerbs(values ...string) *ResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Verbs = append(b.Verbs, values[i])\n\t}\n\treturn b\n}\n\n// WithAPIGroups adds the given value to the APIGroups field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the APIGroups field.\nfunc (b *ResourcePolicyRuleApplyConfiguration) WithAPIGroups(values ...string) *ResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.APIGroups = append(b.APIGroups, values[i])\n\t}\n\treturn b\n}\n\n// WithResources adds the given value to the Resources field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Resources field.\nfunc (b *ResourcePolicyRuleApplyConfiguration) WithResources(values ...string) *ResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Resources = append(b.Resources, values[i])\n\t}\n\treturn b\n}\n\n// WithClusterScope sets the ClusterScope field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ClusterScope field is set to the value of the last call.\nfunc (b *ResourcePolicyRuleApplyConfiguration) WithClusterScope(value bool) *ResourcePolicyRuleApplyConfiguration {\n\tb.ClusterScope = &value\n\treturn b\n}\n\n// WithNamespaces adds the given value to the Namespaces field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Namespaces field.\nfunc (b *ResourcePolicyRuleApplyConfiguration) WithNamespaces(values ...string) *ResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Namespaces = append(b.Namespaces, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1/serviceaccountsubject.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ServiceAccountSubjectApplyConfiguration represents a declarative configuration of the ServiceAccountSubject type for use\n// with apply.\ntype ServiceAccountSubjectApplyConfiguration struct {\n\tNamespace *string `json:\"namespace,omitempty\"`\n\tName      *string `json:\"name,omitempty\"`\n}\n\n// ServiceAccountSubjectApplyConfiguration constructs a declarative configuration of the ServiceAccountSubject type for use with\n// apply.\nfunc ServiceAccountSubject() *ServiceAccountSubjectApplyConfiguration {\n\treturn &ServiceAccountSubjectApplyConfiguration{}\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ServiceAccountSubjectApplyConfiguration) WithNamespace(value string) *ServiceAccountSubjectApplyConfiguration {\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ServiceAccountSubjectApplyConfiguration) WithName(value string) *ServiceAccountSubjectApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1/subject.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tflowcontrolv1 \"k8s.io/api/flowcontrol/v1\"\n)\n\n// SubjectApplyConfiguration represents a declarative configuration of the Subject type for use\n// with apply.\ntype SubjectApplyConfiguration struct {\n\tKind           *flowcontrolv1.SubjectKind               `json:\"kind,omitempty\"`\n\tUser           *UserSubjectApplyConfiguration           `json:\"user,omitempty\"`\n\tGroup          *GroupSubjectApplyConfiguration          `json:\"group,omitempty\"`\n\tServiceAccount *ServiceAccountSubjectApplyConfiguration `json:\"serviceAccount,omitempty\"`\n}\n\n// SubjectApplyConfiguration constructs a declarative configuration of the Subject type for use with\n// apply.\nfunc Subject() *SubjectApplyConfiguration {\n\treturn &SubjectApplyConfiguration{}\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithKind(value flowcontrolv1.SubjectKind) *SubjectApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithUser sets the User field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the User field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithUser(value *UserSubjectApplyConfiguration) *SubjectApplyConfiguration {\n\tb.User = value\n\treturn b\n}\n\n// WithGroup sets the Group field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Group field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithGroup(value *GroupSubjectApplyConfiguration) *SubjectApplyConfiguration {\n\tb.Group = value\n\treturn b\n}\n\n// WithServiceAccount sets the ServiceAccount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ServiceAccount field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithServiceAccount(value *ServiceAccountSubjectApplyConfiguration) *SubjectApplyConfiguration {\n\tb.ServiceAccount = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1/usersubject.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// UserSubjectApplyConfiguration represents a declarative configuration of the UserSubject type for use\n// with apply.\ntype UserSubjectApplyConfiguration struct {\n\tName *string `json:\"name,omitempty\"`\n}\n\n// UserSubjectApplyConfiguration constructs a declarative configuration of the UserSubject type for use with\n// apply.\nfunc UserSubject() *UserSubjectApplyConfiguration {\n\treturn &UserSubjectApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *UserSubjectApplyConfiguration) WithName(value string) *UserSubjectApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/exemptprioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// ExemptPriorityLevelConfigurationApplyConfiguration represents a declarative configuration of the ExemptPriorityLevelConfiguration type for use\n// with apply.\ntype ExemptPriorityLevelConfigurationApplyConfiguration struct {\n\tNominalConcurrencyShares *int32 `json:\"nominalConcurrencyShares,omitempty\"`\n\tLendablePercent          *int32 `json:\"lendablePercent,omitempty\"`\n}\n\n// ExemptPriorityLevelConfigurationApplyConfiguration constructs a declarative configuration of the ExemptPriorityLevelConfiguration type for use with\n// apply.\nfunc ExemptPriorityLevelConfiguration() *ExemptPriorityLevelConfigurationApplyConfiguration {\n\treturn &ExemptPriorityLevelConfigurationApplyConfiguration{}\n}\n\n// WithNominalConcurrencyShares sets the NominalConcurrencyShares field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NominalConcurrencyShares field is set to the value of the last call.\nfunc (b *ExemptPriorityLevelConfigurationApplyConfiguration) WithNominalConcurrencyShares(value int32) *ExemptPriorityLevelConfigurationApplyConfiguration {\n\tb.NominalConcurrencyShares = &value\n\treturn b\n}\n\n// WithLendablePercent sets the LendablePercent field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LendablePercent field is set to the value of the last call.\nfunc (b *ExemptPriorityLevelConfigurationApplyConfiguration) WithLendablePercent(value int32) *ExemptPriorityLevelConfigurationApplyConfiguration {\n\tb.LendablePercent = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/flowdistinguishermethod.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tflowcontrolv1beta1 \"k8s.io/api/flowcontrol/v1beta1\"\n)\n\n// FlowDistinguisherMethodApplyConfiguration represents a declarative configuration of the FlowDistinguisherMethod type for use\n// with apply.\ntype FlowDistinguisherMethodApplyConfiguration struct {\n\tType *flowcontrolv1beta1.FlowDistinguisherMethodType `json:\"type,omitempty\"`\n}\n\n// FlowDistinguisherMethodApplyConfiguration constructs a declarative configuration of the FlowDistinguisherMethod type for use with\n// apply.\nfunc FlowDistinguisherMethod() *FlowDistinguisherMethodApplyConfiguration {\n\treturn &FlowDistinguisherMethodApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *FlowDistinguisherMethodApplyConfiguration) WithType(value flowcontrolv1beta1.FlowDistinguisherMethodType) *FlowDistinguisherMethodApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/flowschema.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tflowcontrolv1beta1 \"k8s.io/api/flowcontrol/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// FlowSchemaApplyConfiguration represents a declarative configuration of the FlowSchema type for use\n// with apply.\ntype FlowSchemaApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *FlowSchemaSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *FlowSchemaStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// FlowSchema constructs a declarative configuration of the FlowSchema type for use with\n// apply.\nfunc FlowSchema(name string) *FlowSchemaApplyConfiguration {\n\tb := &FlowSchemaApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"FlowSchema\")\n\tb.WithAPIVersion(\"flowcontrol.apiserver.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractFlowSchema extracts the applied configuration owned by fieldManager from\n// flowSchema. If no managedFields are found in flowSchema for fieldManager, a\n// FlowSchemaApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// flowSchema must be a unmodified FlowSchema API object that was retrieved from the Kubernetes API.\n// ExtractFlowSchema provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractFlowSchema(flowSchema *flowcontrolv1beta1.FlowSchema, fieldManager string) (*FlowSchemaApplyConfiguration, error) {\n\treturn extractFlowSchema(flowSchema, fieldManager, \"\")\n}\n\n// ExtractFlowSchemaStatus is the same as ExtractFlowSchema except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractFlowSchemaStatus(flowSchema *flowcontrolv1beta1.FlowSchema, fieldManager string) (*FlowSchemaApplyConfiguration, error) {\n\treturn extractFlowSchema(flowSchema, fieldManager, \"status\")\n}\n\nfunc extractFlowSchema(flowSchema *flowcontrolv1beta1.FlowSchema, fieldManager string, subresource string) (*FlowSchemaApplyConfiguration, error) {\n\tb := &FlowSchemaApplyConfiguration{}\n\terr := managedfields.ExtractInto(flowSchema, internal.Parser().Type(\"io.k8s.api.flowcontrol.v1beta1.FlowSchema\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(flowSchema.Name)\n\n\tb.WithKind(\"FlowSchema\")\n\tb.WithAPIVersion(\"flowcontrol.apiserver.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithKind(value string) *FlowSchemaApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithAPIVersion(value string) *FlowSchemaApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithName(value string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithGenerateName(value string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithNamespace(value string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithUID(value types.UID) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithResourceVersion(value string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithGeneration(value int64) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithCreationTimestamp(value metav1.Time) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *FlowSchemaApplyConfiguration) WithLabels(entries map[string]string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *FlowSchemaApplyConfiguration) WithAnnotations(entries map[string]string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *FlowSchemaApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *FlowSchemaApplyConfiguration) WithFinalizers(values ...string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *FlowSchemaApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithSpec(value *FlowSchemaSpecApplyConfiguration) *FlowSchemaApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithStatus(value *FlowSchemaStatusApplyConfiguration) *FlowSchemaApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *FlowSchemaApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/flowschemacondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tflowcontrolv1beta1 \"k8s.io/api/flowcontrol/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// FlowSchemaConditionApplyConfiguration represents a declarative configuration of the FlowSchemaCondition type for use\n// with apply.\ntype FlowSchemaConditionApplyConfiguration struct {\n\tType               *flowcontrolv1beta1.FlowSchemaConditionType `json:\"type,omitempty\"`\n\tStatus             *flowcontrolv1beta1.ConditionStatus         `json:\"status,omitempty\"`\n\tLastTransitionTime *v1.Time                                    `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                                     `json:\"reason,omitempty\"`\n\tMessage            *string                                     `json:\"message,omitempty\"`\n}\n\n// FlowSchemaConditionApplyConfiguration constructs a declarative configuration of the FlowSchemaCondition type for use with\n// apply.\nfunc FlowSchemaCondition() *FlowSchemaConditionApplyConfiguration {\n\treturn &FlowSchemaConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *FlowSchemaConditionApplyConfiguration) WithType(value flowcontrolv1beta1.FlowSchemaConditionType) *FlowSchemaConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *FlowSchemaConditionApplyConfiguration) WithStatus(value flowcontrolv1beta1.ConditionStatus) *FlowSchemaConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *FlowSchemaConditionApplyConfiguration) WithLastTransitionTime(value v1.Time) *FlowSchemaConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *FlowSchemaConditionApplyConfiguration) WithReason(value string) *FlowSchemaConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *FlowSchemaConditionApplyConfiguration) WithMessage(value string) *FlowSchemaConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/flowschemaspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// FlowSchemaSpecApplyConfiguration represents a declarative configuration of the FlowSchemaSpec type for use\n// with apply.\ntype FlowSchemaSpecApplyConfiguration struct {\n\tPriorityLevelConfiguration *PriorityLevelConfigurationReferenceApplyConfiguration `json:\"priorityLevelConfiguration,omitempty\"`\n\tMatchingPrecedence         *int32                                                 `json:\"matchingPrecedence,omitempty\"`\n\tDistinguisherMethod        *FlowDistinguisherMethodApplyConfiguration             `json:\"distinguisherMethod,omitempty\"`\n\tRules                      []PolicyRulesWithSubjectsApplyConfiguration            `json:\"rules,omitempty\"`\n}\n\n// FlowSchemaSpecApplyConfiguration constructs a declarative configuration of the FlowSchemaSpec type for use with\n// apply.\nfunc FlowSchemaSpec() *FlowSchemaSpecApplyConfiguration {\n\treturn &FlowSchemaSpecApplyConfiguration{}\n}\n\n// WithPriorityLevelConfiguration sets the PriorityLevelConfiguration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PriorityLevelConfiguration field is set to the value of the last call.\nfunc (b *FlowSchemaSpecApplyConfiguration) WithPriorityLevelConfiguration(value *PriorityLevelConfigurationReferenceApplyConfiguration) *FlowSchemaSpecApplyConfiguration {\n\tb.PriorityLevelConfiguration = value\n\treturn b\n}\n\n// WithMatchingPrecedence sets the MatchingPrecedence field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MatchingPrecedence field is set to the value of the last call.\nfunc (b *FlowSchemaSpecApplyConfiguration) WithMatchingPrecedence(value int32) *FlowSchemaSpecApplyConfiguration {\n\tb.MatchingPrecedence = &value\n\treturn b\n}\n\n// WithDistinguisherMethod sets the DistinguisherMethod field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DistinguisherMethod field is set to the value of the last call.\nfunc (b *FlowSchemaSpecApplyConfiguration) WithDistinguisherMethod(value *FlowDistinguisherMethodApplyConfiguration) *FlowSchemaSpecApplyConfiguration {\n\tb.DistinguisherMethod = value\n\treturn b\n}\n\n// WithRules adds the given value to the Rules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Rules field.\nfunc (b *FlowSchemaSpecApplyConfiguration) WithRules(values ...*PolicyRulesWithSubjectsApplyConfiguration) *FlowSchemaSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRules\")\n\t\t}\n\t\tb.Rules = append(b.Rules, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/flowschemastatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// FlowSchemaStatusApplyConfiguration represents a declarative configuration of the FlowSchemaStatus type for use\n// with apply.\ntype FlowSchemaStatusApplyConfiguration struct {\n\tConditions []FlowSchemaConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// FlowSchemaStatusApplyConfiguration constructs a declarative configuration of the FlowSchemaStatus type for use with\n// apply.\nfunc FlowSchemaStatus() *FlowSchemaStatusApplyConfiguration {\n\treturn &FlowSchemaStatusApplyConfiguration{}\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *FlowSchemaStatusApplyConfiguration) WithConditions(values ...*FlowSchemaConditionApplyConfiguration) *FlowSchemaStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/groupsubject.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// GroupSubjectApplyConfiguration represents a declarative configuration of the GroupSubject type for use\n// with apply.\ntype GroupSubjectApplyConfiguration struct {\n\tName *string `json:\"name,omitempty\"`\n}\n\n// GroupSubjectApplyConfiguration constructs a declarative configuration of the GroupSubject type for use with\n// apply.\nfunc GroupSubject() *GroupSubjectApplyConfiguration {\n\treturn &GroupSubjectApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *GroupSubjectApplyConfiguration) WithName(value string) *GroupSubjectApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/limitedprioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// LimitedPriorityLevelConfigurationApplyConfiguration represents a declarative configuration of the LimitedPriorityLevelConfiguration type for use\n// with apply.\ntype LimitedPriorityLevelConfigurationApplyConfiguration struct {\n\tAssuredConcurrencyShares *int32                           `json:\"assuredConcurrencyShares,omitempty\"`\n\tLimitResponse            *LimitResponseApplyConfiguration `json:\"limitResponse,omitempty\"`\n\tLendablePercent          *int32                           `json:\"lendablePercent,omitempty\"`\n\tBorrowingLimitPercent    *int32                           `json:\"borrowingLimitPercent,omitempty\"`\n}\n\n// LimitedPriorityLevelConfigurationApplyConfiguration constructs a declarative configuration of the LimitedPriorityLevelConfiguration type for use with\n// apply.\nfunc LimitedPriorityLevelConfiguration() *LimitedPriorityLevelConfigurationApplyConfiguration {\n\treturn &LimitedPriorityLevelConfigurationApplyConfiguration{}\n}\n\n// WithAssuredConcurrencyShares sets the AssuredConcurrencyShares field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AssuredConcurrencyShares field is set to the value of the last call.\nfunc (b *LimitedPriorityLevelConfigurationApplyConfiguration) WithAssuredConcurrencyShares(value int32) *LimitedPriorityLevelConfigurationApplyConfiguration {\n\tb.AssuredConcurrencyShares = &value\n\treturn b\n}\n\n// WithLimitResponse sets the LimitResponse field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LimitResponse field is set to the value of the last call.\nfunc (b *LimitedPriorityLevelConfigurationApplyConfiguration) WithLimitResponse(value *LimitResponseApplyConfiguration) *LimitedPriorityLevelConfigurationApplyConfiguration {\n\tb.LimitResponse = value\n\treturn b\n}\n\n// WithLendablePercent sets the LendablePercent field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LendablePercent field is set to the value of the last call.\nfunc (b *LimitedPriorityLevelConfigurationApplyConfiguration) WithLendablePercent(value int32) *LimitedPriorityLevelConfigurationApplyConfiguration {\n\tb.LendablePercent = &value\n\treturn b\n}\n\n// WithBorrowingLimitPercent sets the BorrowingLimitPercent field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the BorrowingLimitPercent field is set to the value of the last call.\nfunc (b *LimitedPriorityLevelConfigurationApplyConfiguration) WithBorrowingLimitPercent(value int32) *LimitedPriorityLevelConfigurationApplyConfiguration {\n\tb.BorrowingLimitPercent = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/limitresponse.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tflowcontrolv1beta1 \"k8s.io/api/flowcontrol/v1beta1\"\n)\n\n// LimitResponseApplyConfiguration represents a declarative configuration of the LimitResponse type for use\n// with apply.\ntype LimitResponseApplyConfiguration struct {\n\tType    *flowcontrolv1beta1.LimitResponseType   `json:\"type,omitempty\"`\n\tQueuing *QueuingConfigurationApplyConfiguration `json:\"queuing,omitempty\"`\n}\n\n// LimitResponseApplyConfiguration constructs a declarative configuration of the LimitResponse type for use with\n// apply.\nfunc LimitResponse() *LimitResponseApplyConfiguration {\n\treturn &LimitResponseApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *LimitResponseApplyConfiguration) WithType(value flowcontrolv1beta1.LimitResponseType) *LimitResponseApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithQueuing sets the Queuing field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Queuing field is set to the value of the last call.\nfunc (b *LimitResponseApplyConfiguration) WithQueuing(value *QueuingConfigurationApplyConfiguration) *LimitResponseApplyConfiguration {\n\tb.Queuing = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/nonresourcepolicyrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// NonResourcePolicyRuleApplyConfiguration represents a declarative configuration of the NonResourcePolicyRule type for use\n// with apply.\ntype NonResourcePolicyRuleApplyConfiguration struct {\n\tVerbs           []string `json:\"verbs,omitempty\"`\n\tNonResourceURLs []string `json:\"nonResourceURLs,omitempty\"`\n}\n\n// NonResourcePolicyRuleApplyConfiguration constructs a declarative configuration of the NonResourcePolicyRule type for use with\n// apply.\nfunc NonResourcePolicyRule() *NonResourcePolicyRuleApplyConfiguration {\n\treturn &NonResourcePolicyRuleApplyConfiguration{}\n}\n\n// WithVerbs adds the given value to the Verbs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Verbs field.\nfunc (b *NonResourcePolicyRuleApplyConfiguration) WithVerbs(values ...string) *NonResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Verbs = append(b.Verbs, values[i])\n\t}\n\treturn b\n}\n\n// WithNonResourceURLs adds the given value to the NonResourceURLs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the NonResourceURLs field.\nfunc (b *NonResourcePolicyRuleApplyConfiguration) WithNonResourceURLs(values ...string) *NonResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.NonResourceURLs = append(b.NonResourceURLs, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/policyruleswithsubjects.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// PolicyRulesWithSubjectsApplyConfiguration represents a declarative configuration of the PolicyRulesWithSubjects type for use\n// with apply.\ntype PolicyRulesWithSubjectsApplyConfiguration struct {\n\tSubjects         []SubjectApplyConfiguration               `json:\"subjects,omitempty\"`\n\tResourceRules    []ResourcePolicyRuleApplyConfiguration    `json:\"resourceRules,omitempty\"`\n\tNonResourceRules []NonResourcePolicyRuleApplyConfiguration `json:\"nonResourceRules,omitempty\"`\n}\n\n// PolicyRulesWithSubjectsApplyConfiguration constructs a declarative configuration of the PolicyRulesWithSubjects type for use with\n// apply.\nfunc PolicyRulesWithSubjects() *PolicyRulesWithSubjectsApplyConfiguration {\n\treturn &PolicyRulesWithSubjectsApplyConfiguration{}\n}\n\n// WithSubjects adds the given value to the Subjects field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Subjects field.\nfunc (b *PolicyRulesWithSubjectsApplyConfiguration) WithSubjects(values ...*SubjectApplyConfiguration) *PolicyRulesWithSubjectsApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithSubjects\")\n\t\t}\n\t\tb.Subjects = append(b.Subjects, *values[i])\n\t}\n\treturn b\n}\n\n// WithResourceRules adds the given value to the ResourceRules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ResourceRules field.\nfunc (b *PolicyRulesWithSubjectsApplyConfiguration) WithResourceRules(values ...*ResourcePolicyRuleApplyConfiguration) *PolicyRulesWithSubjectsApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithResourceRules\")\n\t\t}\n\t\tb.ResourceRules = append(b.ResourceRules, *values[i])\n\t}\n\treturn b\n}\n\n// WithNonResourceRules adds the given value to the NonResourceRules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the NonResourceRules field.\nfunc (b *PolicyRulesWithSubjectsApplyConfiguration) WithNonResourceRules(values ...*NonResourcePolicyRuleApplyConfiguration) *PolicyRulesWithSubjectsApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithNonResourceRules\")\n\t\t}\n\t\tb.NonResourceRules = append(b.NonResourceRules, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/prioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tflowcontrolv1beta1 \"k8s.io/api/flowcontrol/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PriorityLevelConfigurationApplyConfiguration represents a declarative configuration of the PriorityLevelConfiguration type for use\n// with apply.\ntype PriorityLevelConfigurationApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *PriorityLevelConfigurationSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *PriorityLevelConfigurationStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// PriorityLevelConfiguration constructs a declarative configuration of the PriorityLevelConfiguration type for use with\n// apply.\nfunc PriorityLevelConfiguration(name string) *PriorityLevelConfigurationApplyConfiguration {\n\tb := &PriorityLevelConfigurationApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"PriorityLevelConfiguration\")\n\tb.WithAPIVersion(\"flowcontrol.apiserver.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractPriorityLevelConfiguration extracts the applied configuration owned by fieldManager from\n// priorityLevelConfiguration. If no managedFields are found in priorityLevelConfiguration for fieldManager, a\n// PriorityLevelConfigurationApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// priorityLevelConfiguration must be a unmodified PriorityLevelConfiguration API object that was retrieved from the Kubernetes API.\n// ExtractPriorityLevelConfiguration provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractPriorityLevelConfiguration(priorityLevelConfiguration *flowcontrolv1beta1.PriorityLevelConfiguration, fieldManager string) (*PriorityLevelConfigurationApplyConfiguration, error) {\n\treturn extractPriorityLevelConfiguration(priorityLevelConfiguration, fieldManager, \"\")\n}\n\n// ExtractPriorityLevelConfigurationStatus is the same as ExtractPriorityLevelConfiguration except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractPriorityLevelConfigurationStatus(priorityLevelConfiguration *flowcontrolv1beta1.PriorityLevelConfiguration, fieldManager string) (*PriorityLevelConfigurationApplyConfiguration, error) {\n\treturn extractPriorityLevelConfiguration(priorityLevelConfiguration, fieldManager, \"status\")\n}\n\nfunc extractPriorityLevelConfiguration(priorityLevelConfiguration *flowcontrolv1beta1.PriorityLevelConfiguration, fieldManager string, subresource string) (*PriorityLevelConfigurationApplyConfiguration, error) {\n\tb := &PriorityLevelConfigurationApplyConfiguration{}\n\terr := managedfields.ExtractInto(priorityLevelConfiguration, internal.Parser().Type(\"io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfiguration\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(priorityLevelConfiguration.Name)\n\n\tb.WithKind(\"PriorityLevelConfiguration\")\n\tb.WithAPIVersion(\"flowcontrol.apiserver.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithKind(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithAPIVersion(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithName(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithGenerateName(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithNamespace(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithUID(value types.UID) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithResourceVersion(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithGeneration(value int64) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithCreationTimestamp(value metav1.Time) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithLabels(entries map[string]string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithAnnotations(entries map[string]string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithFinalizers(values ...string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *PriorityLevelConfigurationApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithSpec(value *PriorityLevelConfigurationSpecApplyConfiguration) *PriorityLevelConfigurationApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithStatus(value *PriorityLevelConfigurationStatusApplyConfiguration) *PriorityLevelConfigurationApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/prioritylevelconfigurationcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tflowcontrolv1beta1 \"k8s.io/api/flowcontrol/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// PriorityLevelConfigurationConditionApplyConfiguration represents a declarative configuration of the PriorityLevelConfigurationCondition type for use\n// with apply.\ntype PriorityLevelConfigurationConditionApplyConfiguration struct {\n\tType               *flowcontrolv1beta1.PriorityLevelConfigurationConditionType `json:\"type,omitempty\"`\n\tStatus             *flowcontrolv1beta1.ConditionStatus                         `json:\"status,omitempty\"`\n\tLastTransitionTime *v1.Time                                                    `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                                                     `json:\"reason,omitempty\"`\n\tMessage            *string                                                     `json:\"message,omitempty\"`\n}\n\n// PriorityLevelConfigurationConditionApplyConfiguration constructs a declarative configuration of the PriorityLevelConfigurationCondition type for use with\n// apply.\nfunc PriorityLevelConfigurationCondition() *PriorityLevelConfigurationConditionApplyConfiguration {\n\treturn &PriorityLevelConfigurationConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationConditionApplyConfiguration) WithType(value flowcontrolv1beta1.PriorityLevelConfigurationConditionType) *PriorityLevelConfigurationConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationConditionApplyConfiguration) WithStatus(value flowcontrolv1beta1.ConditionStatus) *PriorityLevelConfigurationConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationConditionApplyConfiguration) WithLastTransitionTime(value v1.Time) *PriorityLevelConfigurationConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationConditionApplyConfiguration) WithReason(value string) *PriorityLevelConfigurationConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationConditionApplyConfiguration) WithMessage(value string) *PriorityLevelConfigurationConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/prioritylevelconfigurationreference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// PriorityLevelConfigurationReferenceApplyConfiguration represents a declarative configuration of the PriorityLevelConfigurationReference type for use\n// with apply.\ntype PriorityLevelConfigurationReferenceApplyConfiguration struct {\n\tName *string `json:\"name,omitempty\"`\n}\n\n// PriorityLevelConfigurationReferenceApplyConfiguration constructs a declarative configuration of the PriorityLevelConfigurationReference type for use with\n// apply.\nfunc PriorityLevelConfigurationReference() *PriorityLevelConfigurationReferenceApplyConfiguration {\n\treturn &PriorityLevelConfigurationReferenceApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationReferenceApplyConfiguration) WithName(value string) *PriorityLevelConfigurationReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/prioritylevelconfigurationspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tflowcontrolv1beta1 \"k8s.io/api/flowcontrol/v1beta1\"\n)\n\n// PriorityLevelConfigurationSpecApplyConfiguration represents a declarative configuration of the PriorityLevelConfigurationSpec type for use\n// with apply.\ntype PriorityLevelConfigurationSpecApplyConfiguration struct {\n\tType    *flowcontrolv1beta1.PriorityLevelEnablement          `json:\"type,omitempty\"`\n\tLimited *LimitedPriorityLevelConfigurationApplyConfiguration `json:\"limited,omitempty\"`\n\tExempt  *ExemptPriorityLevelConfigurationApplyConfiguration  `json:\"exempt,omitempty\"`\n}\n\n// PriorityLevelConfigurationSpecApplyConfiguration constructs a declarative configuration of the PriorityLevelConfigurationSpec type for use with\n// apply.\nfunc PriorityLevelConfigurationSpec() *PriorityLevelConfigurationSpecApplyConfiguration {\n\treturn &PriorityLevelConfigurationSpecApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationSpecApplyConfiguration) WithType(value flowcontrolv1beta1.PriorityLevelEnablement) *PriorityLevelConfigurationSpecApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithLimited sets the Limited field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Limited field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationSpecApplyConfiguration) WithLimited(value *LimitedPriorityLevelConfigurationApplyConfiguration) *PriorityLevelConfigurationSpecApplyConfiguration {\n\tb.Limited = value\n\treturn b\n}\n\n// WithExempt sets the Exempt field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Exempt field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationSpecApplyConfiguration) WithExempt(value *ExemptPriorityLevelConfigurationApplyConfiguration) *PriorityLevelConfigurationSpecApplyConfiguration {\n\tb.Exempt = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/prioritylevelconfigurationstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// PriorityLevelConfigurationStatusApplyConfiguration represents a declarative configuration of the PriorityLevelConfigurationStatus type for use\n// with apply.\ntype PriorityLevelConfigurationStatusApplyConfiguration struct {\n\tConditions []PriorityLevelConfigurationConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// PriorityLevelConfigurationStatusApplyConfiguration constructs a declarative configuration of the PriorityLevelConfigurationStatus type for use with\n// apply.\nfunc PriorityLevelConfigurationStatus() *PriorityLevelConfigurationStatusApplyConfiguration {\n\treturn &PriorityLevelConfigurationStatusApplyConfiguration{}\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *PriorityLevelConfigurationStatusApplyConfiguration) WithConditions(values ...*PriorityLevelConfigurationConditionApplyConfiguration) *PriorityLevelConfigurationStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/queuingconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// QueuingConfigurationApplyConfiguration represents a declarative configuration of the QueuingConfiguration type for use\n// with apply.\ntype QueuingConfigurationApplyConfiguration struct {\n\tQueues           *int32 `json:\"queues,omitempty\"`\n\tHandSize         *int32 `json:\"handSize,omitempty\"`\n\tQueueLengthLimit *int32 `json:\"queueLengthLimit,omitempty\"`\n}\n\n// QueuingConfigurationApplyConfiguration constructs a declarative configuration of the QueuingConfiguration type for use with\n// apply.\nfunc QueuingConfiguration() *QueuingConfigurationApplyConfiguration {\n\treturn &QueuingConfigurationApplyConfiguration{}\n}\n\n// WithQueues sets the Queues field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Queues field is set to the value of the last call.\nfunc (b *QueuingConfigurationApplyConfiguration) WithQueues(value int32) *QueuingConfigurationApplyConfiguration {\n\tb.Queues = &value\n\treturn b\n}\n\n// WithHandSize sets the HandSize field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HandSize field is set to the value of the last call.\nfunc (b *QueuingConfigurationApplyConfiguration) WithHandSize(value int32) *QueuingConfigurationApplyConfiguration {\n\tb.HandSize = &value\n\treturn b\n}\n\n// WithQueueLengthLimit sets the QueueLengthLimit field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the QueueLengthLimit field is set to the value of the last call.\nfunc (b *QueuingConfigurationApplyConfiguration) WithQueueLengthLimit(value int32) *QueuingConfigurationApplyConfiguration {\n\tb.QueueLengthLimit = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/resourcepolicyrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// ResourcePolicyRuleApplyConfiguration represents a declarative configuration of the ResourcePolicyRule type for use\n// with apply.\ntype ResourcePolicyRuleApplyConfiguration struct {\n\tVerbs        []string `json:\"verbs,omitempty\"`\n\tAPIGroups    []string `json:\"apiGroups,omitempty\"`\n\tResources    []string `json:\"resources,omitempty\"`\n\tClusterScope *bool    `json:\"clusterScope,omitempty\"`\n\tNamespaces   []string `json:\"namespaces,omitempty\"`\n}\n\n// ResourcePolicyRuleApplyConfiguration constructs a declarative configuration of the ResourcePolicyRule type for use with\n// apply.\nfunc ResourcePolicyRule() *ResourcePolicyRuleApplyConfiguration {\n\treturn &ResourcePolicyRuleApplyConfiguration{}\n}\n\n// WithVerbs adds the given value to the Verbs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Verbs field.\nfunc (b *ResourcePolicyRuleApplyConfiguration) WithVerbs(values ...string) *ResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Verbs = append(b.Verbs, values[i])\n\t}\n\treturn b\n}\n\n// WithAPIGroups adds the given value to the APIGroups field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the APIGroups field.\nfunc (b *ResourcePolicyRuleApplyConfiguration) WithAPIGroups(values ...string) *ResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.APIGroups = append(b.APIGroups, values[i])\n\t}\n\treturn b\n}\n\n// WithResources adds the given value to the Resources field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Resources field.\nfunc (b *ResourcePolicyRuleApplyConfiguration) WithResources(values ...string) *ResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Resources = append(b.Resources, values[i])\n\t}\n\treturn b\n}\n\n// WithClusterScope sets the ClusterScope field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ClusterScope field is set to the value of the last call.\nfunc (b *ResourcePolicyRuleApplyConfiguration) WithClusterScope(value bool) *ResourcePolicyRuleApplyConfiguration {\n\tb.ClusterScope = &value\n\treturn b\n}\n\n// WithNamespaces adds the given value to the Namespaces field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Namespaces field.\nfunc (b *ResourcePolicyRuleApplyConfiguration) WithNamespaces(values ...string) *ResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Namespaces = append(b.Namespaces, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/serviceaccountsubject.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// ServiceAccountSubjectApplyConfiguration represents a declarative configuration of the ServiceAccountSubject type for use\n// with apply.\ntype ServiceAccountSubjectApplyConfiguration struct {\n\tNamespace *string `json:\"namespace,omitempty\"`\n\tName      *string `json:\"name,omitempty\"`\n}\n\n// ServiceAccountSubjectApplyConfiguration constructs a declarative configuration of the ServiceAccountSubject type for use with\n// apply.\nfunc ServiceAccountSubject() *ServiceAccountSubjectApplyConfiguration {\n\treturn &ServiceAccountSubjectApplyConfiguration{}\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ServiceAccountSubjectApplyConfiguration) WithNamespace(value string) *ServiceAccountSubjectApplyConfiguration {\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ServiceAccountSubjectApplyConfiguration) WithName(value string) *ServiceAccountSubjectApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/subject.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tflowcontrolv1beta1 \"k8s.io/api/flowcontrol/v1beta1\"\n)\n\n// SubjectApplyConfiguration represents a declarative configuration of the Subject type for use\n// with apply.\ntype SubjectApplyConfiguration struct {\n\tKind           *flowcontrolv1beta1.SubjectKind          `json:\"kind,omitempty\"`\n\tUser           *UserSubjectApplyConfiguration           `json:\"user,omitempty\"`\n\tGroup          *GroupSubjectApplyConfiguration          `json:\"group,omitempty\"`\n\tServiceAccount *ServiceAccountSubjectApplyConfiguration `json:\"serviceAccount,omitempty\"`\n}\n\n// SubjectApplyConfiguration constructs a declarative configuration of the Subject type for use with\n// apply.\nfunc Subject() *SubjectApplyConfiguration {\n\treturn &SubjectApplyConfiguration{}\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithKind(value flowcontrolv1beta1.SubjectKind) *SubjectApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithUser sets the User field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the User field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithUser(value *UserSubjectApplyConfiguration) *SubjectApplyConfiguration {\n\tb.User = value\n\treturn b\n}\n\n// WithGroup sets the Group field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Group field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithGroup(value *GroupSubjectApplyConfiguration) *SubjectApplyConfiguration {\n\tb.Group = value\n\treturn b\n}\n\n// WithServiceAccount sets the ServiceAccount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ServiceAccount field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithServiceAccount(value *ServiceAccountSubjectApplyConfiguration) *SubjectApplyConfiguration {\n\tb.ServiceAccount = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1/usersubject.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// UserSubjectApplyConfiguration represents a declarative configuration of the UserSubject type for use\n// with apply.\ntype UserSubjectApplyConfiguration struct {\n\tName *string `json:\"name,omitempty\"`\n}\n\n// UserSubjectApplyConfiguration constructs a declarative configuration of the UserSubject type for use with\n// apply.\nfunc UserSubject() *UserSubjectApplyConfiguration {\n\treturn &UserSubjectApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *UserSubjectApplyConfiguration) WithName(value string) *UserSubjectApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2/exemptprioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\n// ExemptPriorityLevelConfigurationApplyConfiguration represents a declarative configuration of the ExemptPriorityLevelConfiguration type for use\n// with apply.\ntype ExemptPriorityLevelConfigurationApplyConfiguration struct {\n\tNominalConcurrencyShares *int32 `json:\"nominalConcurrencyShares,omitempty\"`\n\tLendablePercent          *int32 `json:\"lendablePercent,omitempty\"`\n}\n\n// ExemptPriorityLevelConfigurationApplyConfiguration constructs a declarative configuration of the ExemptPriorityLevelConfiguration type for use with\n// apply.\nfunc ExemptPriorityLevelConfiguration() *ExemptPriorityLevelConfigurationApplyConfiguration {\n\treturn &ExemptPriorityLevelConfigurationApplyConfiguration{}\n}\n\n// WithNominalConcurrencyShares sets the NominalConcurrencyShares field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NominalConcurrencyShares field is set to the value of the last call.\nfunc (b *ExemptPriorityLevelConfigurationApplyConfiguration) WithNominalConcurrencyShares(value int32) *ExemptPriorityLevelConfigurationApplyConfiguration {\n\tb.NominalConcurrencyShares = &value\n\treturn b\n}\n\n// WithLendablePercent sets the LendablePercent field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LendablePercent field is set to the value of the last call.\nfunc (b *ExemptPriorityLevelConfigurationApplyConfiguration) WithLendablePercent(value int32) *ExemptPriorityLevelConfigurationApplyConfiguration {\n\tb.LendablePercent = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2/flowdistinguishermethod.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tflowcontrolv1beta2 \"k8s.io/api/flowcontrol/v1beta2\"\n)\n\n// FlowDistinguisherMethodApplyConfiguration represents a declarative configuration of the FlowDistinguisherMethod type for use\n// with apply.\ntype FlowDistinguisherMethodApplyConfiguration struct {\n\tType *flowcontrolv1beta2.FlowDistinguisherMethodType `json:\"type,omitempty\"`\n}\n\n// FlowDistinguisherMethodApplyConfiguration constructs a declarative configuration of the FlowDistinguisherMethod type for use with\n// apply.\nfunc FlowDistinguisherMethod() *FlowDistinguisherMethodApplyConfiguration {\n\treturn &FlowDistinguisherMethodApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *FlowDistinguisherMethodApplyConfiguration) WithType(value flowcontrolv1beta2.FlowDistinguisherMethodType) *FlowDistinguisherMethodApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2/flowschema.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tflowcontrolv1beta2 \"k8s.io/api/flowcontrol/v1beta2\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// FlowSchemaApplyConfiguration represents a declarative configuration of the FlowSchema type for use\n// with apply.\ntype FlowSchemaApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *FlowSchemaSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *FlowSchemaStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// FlowSchema constructs a declarative configuration of the FlowSchema type for use with\n// apply.\nfunc FlowSchema(name string) *FlowSchemaApplyConfiguration {\n\tb := &FlowSchemaApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"FlowSchema\")\n\tb.WithAPIVersion(\"flowcontrol.apiserver.k8s.io/v1beta2\")\n\treturn b\n}\n\n// ExtractFlowSchema extracts the applied configuration owned by fieldManager from\n// flowSchema. If no managedFields are found in flowSchema for fieldManager, a\n// FlowSchemaApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// flowSchema must be a unmodified FlowSchema API object that was retrieved from the Kubernetes API.\n// ExtractFlowSchema provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractFlowSchema(flowSchema *flowcontrolv1beta2.FlowSchema, fieldManager string) (*FlowSchemaApplyConfiguration, error) {\n\treturn extractFlowSchema(flowSchema, fieldManager, \"\")\n}\n\n// ExtractFlowSchemaStatus is the same as ExtractFlowSchema except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractFlowSchemaStatus(flowSchema *flowcontrolv1beta2.FlowSchema, fieldManager string) (*FlowSchemaApplyConfiguration, error) {\n\treturn extractFlowSchema(flowSchema, fieldManager, \"status\")\n}\n\nfunc extractFlowSchema(flowSchema *flowcontrolv1beta2.FlowSchema, fieldManager string, subresource string) (*FlowSchemaApplyConfiguration, error) {\n\tb := &FlowSchemaApplyConfiguration{}\n\terr := managedfields.ExtractInto(flowSchema, internal.Parser().Type(\"io.k8s.api.flowcontrol.v1beta2.FlowSchema\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(flowSchema.Name)\n\n\tb.WithKind(\"FlowSchema\")\n\tb.WithAPIVersion(\"flowcontrol.apiserver.k8s.io/v1beta2\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithKind(value string) *FlowSchemaApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithAPIVersion(value string) *FlowSchemaApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithName(value string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithGenerateName(value string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithNamespace(value string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithUID(value types.UID) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithResourceVersion(value string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithGeneration(value int64) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithCreationTimestamp(value metav1.Time) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *FlowSchemaApplyConfiguration) WithLabels(entries map[string]string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *FlowSchemaApplyConfiguration) WithAnnotations(entries map[string]string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *FlowSchemaApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *FlowSchemaApplyConfiguration) WithFinalizers(values ...string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *FlowSchemaApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithSpec(value *FlowSchemaSpecApplyConfiguration) *FlowSchemaApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithStatus(value *FlowSchemaStatusApplyConfiguration) *FlowSchemaApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *FlowSchemaApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2/flowschemacondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tflowcontrolv1beta2 \"k8s.io/api/flowcontrol/v1beta2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// FlowSchemaConditionApplyConfiguration represents a declarative configuration of the FlowSchemaCondition type for use\n// with apply.\ntype FlowSchemaConditionApplyConfiguration struct {\n\tType               *flowcontrolv1beta2.FlowSchemaConditionType `json:\"type,omitempty\"`\n\tStatus             *flowcontrolv1beta2.ConditionStatus         `json:\"status,omitempty\"`\n\tLastTransitionTime *v1.Time                                    `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                                     `json:\"reason,omitempty\"`\n\tMessage            *string                                     `json:\"message,omitempty\"`\n}\n\n// FlowSchemaConditionApplyConfiguration constructs a declarative configuration of the FlowSchemaCondition type for use with\n// apply.\nfunc FlowSchemaCondition() *FlowSchemaConditionApplyConfiguration {\n\treturn &FlowSchemaConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *FlowSchemaConditionApplyConfiguration) WithType(value flowcontrolv1beta2.FlowSchemaConditionType) *FlowSchemaConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *FlowSchemaConditionApplyConfiguration) WithStatus(value flowcontrolv1beta2.ConditionStatus) *FlowSchemaConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *FlowSchemaConditionApplyConfiguration) WithLastTransitionTime(value v1.Time) *FlowSchemaConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *FlowSchemaConditionApplyConfiguration) WithReason(value string) *FlowSchemaConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *FlowSchemaConditionApplyConfiguration) WithMessage(value string) *FlowSchemaConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2/flowschemaspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\n// FlowSchemaSpecApplyConfiguration represents a declarative configuration of the FlowSchemaSpec type for use\n// with apply.\ntype FlowSchemaSpecApplyConfiguration struct {\n\tPriorityLevelConfiguration *PriorityLevelConfigurationReferenceApplyConfiguration `json:\"priorityLevelConfiguration,omitempty\"`\n\tMatchingPrecedence         *int32                                                 `json:\"matchingPrecedence,omitempty\"`\n\tDistinguisherMethod        *FlowDistinguisherMethodApplyConfiguration             `json:\"distinguisherMethod,omitempty\"`\n\tRules                      []PolicyRulesWithSubjectsApplyConfiguration            `json:\"rules,omitempty\"`\n}\n\n// FlowSchemaSpecApplyConfiguration constructs a declarative configuration of the FlowSchemaSpec type for use with\n// apply.\nfunc FlowSchemaSpec() *FlowSchemaSpecApplyConfiguration {\n\treturn &FlowSchemaSpecApplyConfiguration{}\n}\n\n// WithPriorityLevelConfiguration sets the PriorityLevelConfiguration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PriorityLevelConfiguration field is set to the value of the last call.\nfunc (b *FlowSchemaSpecApplyConfiguration) WithPriorityLevelConfiguration(value *PriorityLevelConfigurationReferenceApplyConfiguration) *FlowSchemaSpecApplyConfiguration {\n\tb.PriorityLevelConfiguration = value\n\treturn b\n}\n\n// WithMatchingPrecedence sets the MatchingPrecedence field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MatchingPrecedence field is set to the value of the last call.\nfunc (b *FlowSchemaSpecApplyConfiguration) WithMatchingPrecedence(value int32) *FlowSchemaSpecApplyConfiguration {\n\tb.MatchingPrecedence = &value\n\treturn b\n}\n\n// WithDistinguisherMethod sets the DistinguisherMethod field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DistinguisherMethod field is set to the value of the last call.\nfunc (b *FlowSchemaSpecApplyConfiguration) WithDistinguisherMethod(value *FlowDistinguisherMethodApplyConfiguration) *FlowSchemaSpecApplyConfiguration {\n\tb.DistinguisherMethod = value\n\treturn b\n}\n\n// WithRules adds the given value to the Rules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Rules field.\nfunc (b *FlowSchemaSpecApplyConfiguration) WithRules(values ...*PolicyRulesWithSubjectsApplyConfiguration) *FlowSchemaSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRules\")\n\t\t}\n\t\tb.Rules = append(b.Rules, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2/flowschemastatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\n// FlowSchemaStatusApplyConfiguration represents a declarative configuration of the FlowSchemaStatus type for use\n// with apply.\ntype FlowSchemaStatusApplyConfiguration struct {\n\tConditions []FlowSchemaConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// FlowSchemaStatusApplyConfiguration constructs a declarative configuration of the FlowSchemaStatus type for use with\n// apply.\nfunc FlowSchemaStatus() *FlowSchemaStatusApplyConfiguration {\n\treturn &FlowSchemaStatusApplyConfiguration{}\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *FlowSchemaStatusApplyConfiguration) WithConditions(values ...*FlowSchemaConditionApplyConfiguration) *FlowSchemaStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2/groupsubject.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\n// GroupSubjectApplyConfiguration represents a declarative configuration of the GroupSubject type for use\n// with apply.\ntype GroupSubjectApplyConfiguration struct {\n\tName *string `json:\"name,omitempty\"`\n}\n\n// GroupSubjectApplyConfiguration constructs a declarative configuration of the GroupSubject type for use with\n// apply.\nfunc GroupSubject() *GroupSubjectApplyConfiguration {\n\treturn &GroupSubjectApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *GroupSubjectApplyConfiguration) WithName(value string) *GroupSubjectApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2/limitedprioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\n// LimitedPriorityLevelConfigurationApplyConfiguration represents a declarative configuration of the LimitedPriorityLevelConfiguration type for use\n// with apply.\ntype LimitedPriorityLevelConfigurationApplyConfiguration struct {\n\tAssuredConcurrencyShares *int32                           `json:\"assuredConcurrencyShares,omitempty\"`\n\tLimitResponse            *LimitResponseApplyConfiguration `json:\"limitResponse,omitempty\"`\n\tLendablePercent          *int32                           `json:\"lendablePercent,omitempty\"`\n\tBorrowingLimitPercent    *int32                           `json:\"borrowingLimitPercent,omitempty\"`\n}\n\n// LimitedPriorityLevelConfigurationApplyConfiguration constructs a declarative configuration of the LimitedPriorityLevelConfiguration type for use with\n// apply.\nfunc LimitedPriorityLevelConfiguration() *LimitedPriorityLevelConfigurationApplyConfiguration {\n\treturn &LimitedPriorityLevelConfigurationApplyConfiguration{}\n}\n\n// WithAssuredConcurrencyShares sets the AssuredConcurrencyShares field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AssuredConcurrencyShares field is set to the value of the last call.\nfunc (b *LimitedPriorityLevelConfigurationApplyConfiguration) WithAssuredConcurrencyShares(value int32) *LimitedPriorityLevelConfigurationApplyConfiguration {\n\tb.AssuredConcurrencyShares = &value\n\treturn b\n}\n\n// WithLimitResponse sets the LimitResponse field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LimitResponse field is set to the value of the last call.\nfunc (b *LimitedPriorityLevelConfigurationApplyConfiguration) WithLimitResponse(value *LimitResponseApplyConfiguration) *LimitedPriorityLevelConfigurationApplyConfiguration {\n\tb.LimitResponse = value\n\treturn b\n}\n\n// WithLendablePercent sets the LendablePercent field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LendablePercent field is set to the value of the last call.\nfunc (b *LimitedPriorityLevelConfigurationApplyConfiguration) WithLendablePercent(value int32) *LimitedPriorityLevelConfigurationApplyConfiguration {\n\tb.LendablePercent = &value\n\treturn b\n}\n\n// WithBorrowingLimitPercent sets the BorrowingLimitPercent field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the BorrowingLimitPercent field is set to the value of the last call.\nfunc (b *LimitedPriorityLevelConfigurationApplyConfiguration) WithBorrowingLimitPercent(value int32) *LimitedPriorityLevelConfigurationApplyConfiguration {\n\tb.BorrowingLimitPercent = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2/limitresponse.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tflowcontrolv1beta2 \"k8s.io/api/flowcontrol/v1beta2\"\n)\n\n// LimitResponseApplyConfiguration represents a declarative configuration of the LimitResponse type for use\n// with apply.\ntype LimitResponseApplyConfiguration struct {\n\tType    *flowcontrolv1beta2.LimitResponseType   `json:\"type,omitempty\"`\n\tQueuing *QueuingConfigurationApplyConfiguration `json:\"queuing,omitempty\"`\n}\n\n// LimitResponseApplyConfiguration constructs a declarative configuration of the LimitResponse type for use with\n// apply.\nfunc LimitResponse() *LimitResponseApplyConfiguration {\n\treturn &LimitResponseApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *LimitResponseApplyConfiguration) WithType(value flowcontrolv1beta2.LimitResponseType) *LimitResponseApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithQueuing sets the Queuing field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Queuing field is set to the value of the last call.\nfunc (b *LimitResponseApplyConfiguration) WithQueuing(value *QueuingConfigurationApplyConfiguration) *LimitResponseApplyConfiguration {\n\tb.Queuing = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2/nonresourcepolicyrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\n// NonResourcePolicyRuleApplyConfiguration represents a declarative configuration of the NonResourcePolicyRule type for use\n// with apply.\ntype NonResourcePolicyRuleApplyConfiguration struct {\n\tVerbs           []string `json:\"verbs,omitempty\"`\n\tNonResourceURLs []string `json:\"nonResourceURLs,omitempty\"`\n}\n\n// NonResourcePolicyRuleApplyConfiguration constructs a declarative configuration of the NonResourcePolicyRule type for use with\n// apply.\nfunc NonResourcePolicyRule() *NonResourcePolicyRuleApplyConfiguration {\n\treturn &NonResourcePolicyRuleApplyConfiguration{}\n}\n\n// WithVerbs adds the given value to the Verbs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Verbs field.\nfunc (b *NonResourcePolicyRuleApplyConfiguration) WithVerbs(values ...string) *NonResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Verbs = append(b.Verbs, values[i])\n\t}\n\treturn b\n}\n\n// WithNonResourceURLs adds the given value to the NonResourceURLs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the NonResourceURLs field.\nfunc (b *NonResourcePolicyRuleApplyConfiguration) WithNonResourceURLs(values ...string) *NonResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.NonResourceURLs = append(b.NonResourceURLs, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2/policyruleswithsubjects.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\n// PolicyRulesWithSubjectsApplyConfiguration represents a declarative configuration of the PolicyRulesWithSubjects type for use\n// with apply.\ntype PolicyRulesWithSubjectsApplyConfiguration struct {\n\tSubjects         []SubjectApplyConfiguration               `json:\"subjects,omitempty\"`\n\tResourceRules    []ResourcePolicyRuleApplyConfiguration    `json:\"resourceRules,omitempty\"`\n\tNonResourceRules []NonResourcePolicyRuleApplyConfiguration `json:\"nonResourceRules,omitempty\"`\n}\n\n// PolicyRulesWithSubjectsApplyConfiguration constructs a declarative configuration of the PolicyRulesWithSubjects type for use with\n// apply.\nfunc PolicyRulesWithSubjects() *PolicyRulesWithSubjectsApplyConfiguration {\n\treturn &PolicyRulesWithSubjectsApplyConfiguration{}\n}\n\n// WithSubjects adds the given value to the Subjects field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Subjects field.\nfunc (b *PolicyRulesWithSubjectsApplyConfiguration) WithSubjects(values ...*SubjectApplyConfiguration) *PolicyRulesWithSubjectsApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithSubjects\")\n\t\t}\n\t\tb.Subjects = append(b.Subjects, *values[i])\n\t}\n\treturn b\n}\n\n// WithResourceRules adds the given value to the ResourceRules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ResourceRules field.\nfunc (b *PolicyRulesWithSubjectsApplyConfiguration) WithResourceRules(values ...*ResourcePolicyRuleApplyConfiguration) *PolicyRulesWithSubjectsApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithResourceRules\")\n\t\t}\n\t\tb.ResourceRules = append(b.ResourceRules, *values[i])\n\t}\n\treturn b\n}\n\n// WithNonResourceRules adds the given value to the NonResourceRules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the NonResourceRules field.\nfunc (b *PolicyRulesWithSubjectsApplyConfiguration) WithNonResourceRules(values ...*NonResourcePolicyRuleApplyConfiguration) *PolicyRulesWithSubjectsApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithNonResourceRules\")\n\t\t}\n\t\tb.NonResourceRules = append(b.NonResourceRules, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2/prioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tflowcontrolv1beta2 \"k8s.io/api/flowcontrol/v1beta2\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PriorityLevelConfigurationApplyConfiguration represents a declarative configuration of the PriorityLevelConfiguration type for use\n// with apply.\ntype PriorityLevelConfigurationApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *PriorityLevelConfigurationSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *PriorityLevelConfigurationStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// PriorityLevelConfiguration constructs a declarative configuration of the PriorityLevelConfiguration type for use with\n// apply.\nfunc PriorityLevelConfiguration(name string) *PriorityLevelConfigurationApplyConfiguration {\n\tb := &PriorityLevelConfigurationApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"PriorityLevelConfiguration\")\n\tb.WithAPIVersion(\"flowcontrol.apiserver.k8s.io/v1beta2\")\n\treturn b\n}\n\n// ExtractPriorityLevelConfiguration extracts the applied configuration owned by fieldManager from\n// priorityLevelConfiguration. If no managedFields are found in priorityLevelConfiguration for fieldManager, a\n// PriorityLevelConfigurationApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// priorityLevelConfiguration must be a unmodified PriorityLevelConfiguration API object that was retrieved from the Kubernetes API.\n// ExtractPriorityLevelConfiguration provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractPriorityLevelConfiguration(priorityLevelConfiguration *flowcontrolv1beta2.PriorityLevelConfiguration, fieldManager string) (*PriorityLevelConfigurationApplyConfiguration, error) {\n\treturn extractPriorityLevelConfiguration(priorityLevelConfiguration, fieldManager, \"\")\n}\n\n// ExtractPriorityLevelConfigurationStatus is the same as ExtractPriorityLevelConfiguration except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractPriorityLevelConfigurationStatus(priorityLevelConfiguration *flowcontrolv1beta2.PriorityLevelConfiguration, fieldManager string) (*PriorityLevelConfigurationApplyConfiguration, error) {\n\treturn extractPriorityLevelConfiguration(priorityLevelConfiguration, fieldManager, \"status\")\n}\n\nfunc extractPriorityLevelConfiguration(priorityLevelConfiguration *flowcontrolv1beta2.PriorityLevelConfiguration, fieldManager string, subresource string) (*PriorityLevelConfigurationApplyConfiguration, error) {\n\tb := &PriorityLevelConfigurationApplyConfiguration{}\n\terr := managedfields.ExtractInto(priorityLevelConfiguration, internal.Parser().Type(\"io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfiguration\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(priorityLevelConfiguration.Name)\n\n\tb.WithKind(\"PriorityLevelConfiguration\")\n\tb.WithAPIVersion(\"flowcontrol.apiserver.k8s.io/v1beta2\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithKind(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithAPIVersion(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithName(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithGenerateName(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithNamespace(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithUID(value types.UID) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithResourceVersion(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithGeneration(value int64) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithCreationTimestamp(value metav1.Time) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithLabels(entries map[string]string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithAnnotations(entries map[string]string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithFinalizers(values ...string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *PriorityLevelConfigurationApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithSpec(value *PriorityLevelConfigurationSpecApplyConfiguration) *PriorityLevelConfigurationApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithStatus(value *PriorityLevelConfigurationStatusApplyConfiguration) *PriorityLevelConfigurationApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2/prioritylevelconfigurationcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tflowcontrolv1beta2 \"k8s.io/api/flowcontrol/v1beta2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// PriorityLevelConfigurationConditionApplyConfiguration represents a declarative configuration of the PriorityLevelConfigurationCondition type for use\n// with apply.\ntype PriorityLevelConfigurationConditionApplyConfiguration struct {\n\tType               *flowcontrolv1beta2.PriorityLevelConfigurationConditionType `json:\"type,omitempty\"`\n\tStatus             *flowcontrolv1beta2.ConditionStatus                         `json:\"status,omitempty\"`\n\tLastTransitionTime *v1.Time                                                    `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                                                     `json:\"reason,omitempty\"`\n\tMessage            *string                                                     `json:\"message,omitempty\"`\n}\n\n// PriorityLevelConfigurationConditionApplyConfiguration constructs a declarative configuration of the PriorityLevelConfigurationCondition type for use with\n// apply.\nfunc PriorityLevelConfigurationCondition() *PriorityLevelConfigurationConditionApplyConfiguration {\n\treturn &PriorityLevelConfigurationConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationConditionApplyConfiguration) WithType(value flowcontrolv1beta2.PriorityLevelConfigurationConditionType) *PriorityLevelConfigurationConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationConditionApplyConfiguration) WithStatus(value flowcontrolv1beta2.ConditionStatus) *PriorityLevelConfigurationConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationConditionApplyConfiguration) WithLastTransitionTime(value v1.Time) *PriorityLevelConfigurationConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationConditionApplyConfiguration) WithReason(value string) *PriorityLevelConfigurationConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationConditionApplyConfiguration) WithMessage(value string) *PriorityLevelConfigurationConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2/prioritylevelconfigurationreference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\n// PriorityLevelConfigurationReferenceApplyConfiguration represents a declarative configuration of the PriorityLevelConfigurationReference type for use\n// with apply.\ntype PriorityLevelConfigurationReferenceApplyConfiguration struct {\n\tName *string `json:\"name,omitempty\"`\n}\n\n// PriorityLevelConfigurationReferenceApplyConfiguration constructs a declarative configuration of the PriorityLevelConfigurationReference type for use with\n// apply.\nfunc PriorityLevelConfigurationReference() *PriorityLevelConfigurationReferenceApplyConfiguration {\n\treturn &PriorityLevelConfigurationReferenceApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationReferenceApplyConfiguration) WithName(value string) *PriorityLevelConfigurationReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2/prioritylevelconfigurationspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tflowcontrolv1beta2 \"k8s.io/api/flowcontrol/v1beta2\"\n)\n\n// PriorityLevelConfigurationSpecApplyConfiguration represents a declarative configuration of the PriorityLevelConfigurationSpec type for use\n// with apply.\ntype PriorityLevelConfigurationSpecApplyConfiguration struct {\n\tType    *flowcontrolv1beta2.PriorityLevelEnablement          `json:\"type,omitempty\"`\n\tLimited *LimitedPriorityLevelConfigurationApplyConfiguration `json:\"limited,omitempty\"`\n\tExempt  *ExemptPriorityLevelConfigurationApplyConfiguration  `json:\"exempt,omitempty\"`\n}\n\n// PriorityLevelConfigurationSpecApplyConfiguration constructs a declarative configuration of the PriorityLevelConfigurationSpec type for use with\n// apply.\nfunc PriorityLevelConfigurationSpec() *PriorityLevelConfigurationSpecApplyConfiguration {\n\treturn &PriorityLevelConfigurationSpecApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationSpecApplyConfiguration) WithType(value flowcontrolv1beta2.PriorityLevelEnablement) *PriorityLevelConfigurationSpecApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithLimited sets the Limited field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Limited field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationSpecApplyConfiguration) WithLimited(value *LimitedPriorityLevelConfigurationApplyConfiguration) *PriorityLevelConfigurationSpecApplyConfiguration {\n\tb.Limited = value\n\treturn b\n}\n\n// WithExempt sets the Exempt field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Exempt field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationSpecApplyConfiguration) WithExempt(value *ExemptPriorityLevelConfigurationApplyConfiguration) *PriorityLevelConfigurationSpecApplyConfiguration {\n\tb.Exempt = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2/prioritylevelconfigurationstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\n// PriorityLevelConfigurationStatusApplyConfiguration represents a declarative configuration of the PriorityLevelConfigurationStatus type for use\n// with apply.\ntype PriorityLevelConfigurationStatusApplyConfiguration struct {\n\tConditions []PriorityLevelConfigurationConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// PriorityLevelConfigurationStatusApplyConfiguration constructs a declarative configuration of the PriorityLevelConfigurationStatus type for use with\n// apply.\nfunc PriorityLevelConfigurationStatus() *PriorityLevelConfigurationStatusApplyConfiguration {\n\treturn &PriorityLevelConfigurationStatusApplyConfiguration{}\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *PriorityLevelConfigurationStatusApplyConfiguration) WithConditions(values ...*PriorityLevelConfigurationConditionApplyConfiguration) *PriorityLevelConfigurationStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2/queuingconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\n// QueuingConfigurationApplyConfiguration represents a declarative configuration of the QueuingConfiguration type for use\n// with apply.\ntype QueuingConfigurationApplyConfiguration struct {\n\tQueues           *int32 `json:\"queues,omitempty\"`\n\tHandSize         *int32 `json:\"handSize,omitempty\"`\n\tQueueLengthLimit *int32 `json:\"queueLengthLimit,omitempty\"`\n}\n\n// QueuingConfigurationApplyConfiguration constructs a declarative configuration of the QueuingConfiguration type for use with\n// apply.\nfunc QueuingConfiguration() *QueuingConfigurationApplyConfiguration {\n\treturn &QueuingConfigurationApplyConfiguration{}\n}\n\n// WithQueues sets the Queues field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Queues field is set to the value of the last call.\nfunc (b *QueuingConfigurationApplyConfiguration) WithQueues(value int32) *QueuingConfigurationApplyConfiguration {\n\tb.Queues = &value\n\treturn b\n}\n\n// WithHandSize sets the HandSize field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HandSize field is set to the value of the last call.\nfunc (b *QueuingConfigurationApplyConfiguration) WithHandSize(value int32) *QueuingConfigurationApplyConfiguration {\n\tb.HandSize = &value\n\treturn b\n}\n\n// WithQueueLengthLimit sets the QueueLengthLimit field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the QueueLengthLimit field is set to the value of the last call.\nfunc (b *QueuingConfigurationApplyConfiguration) WithQueueLengthLimit(value int32) *QueuingConfigurationApplyConfiguration {\n\tb.QueueLengthLimit = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2/resourcepolicyrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\n// ResourcePolicyRuleApplyConfiguration represents a declarative configuration of the ResourcePolicyRule type for use\n// with apply.\ntype ResourcePolicyRuleApplyConfiguration struct {\n\tVerbs        []string `json:\"verbs,omitempty\"`\n\tAPIGroups    []string `json:\"apiGroups,omitempty\"`\n\tResources    []string `json:\"resources,omitempty\"`\n\tClusterScope *bool    `json:\"clusterScope,omitempty\"`\n\tNamespaces   []string `json:\"namespaces,omitempty\"`\n}\n\n// ResourcePolicyRuleApplyConfiguration constructs a declarative configuration of the ResourcePolicyRule type for use with\n// apply.\nfunc ResourcePolicyRule() *ResourcePolicyRuleApplyConfiguration {\n\treturn &ResourcePolicyRuleApplyConfiguration{}\n}\n\n// WithVerbs adds the given value to the Verbs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Verbs field.\nfunc (b *ResourcePolicyRuleApplyConfiguration) WithVerbs(values ...string) *ResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Verbs = append(b.Verbs, values[i])\n\t}\n\treturn b\n}\n\n// WithAPIGroups adds the given value to the APIGroups field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the APIGroups field.\nfunc (b *ResourcePolicyRuleApplyConfiguration) WithAPIGroups(values ...string) *ResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.APIGroups = append(b.APIGroups, values[i])\n\t}\n\treturn b\n}\n\n// WithResources adds the given value to the Resources field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Resources field.\nfunc (b *ResourcePolicyRuleApplyConfiguration) WithResources(values ...string) *ResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Resources = append(b.Resources, values[i])\n\t}\n\treturn b\n}\n\n// WithClusterScope sets the ClusterScope field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ClusterScope field is set to the value of the last call.\nfunc (b *ResourcePolicyRuleApplyConfiguration) WithClusterScope(value bool) *ResourcePolicyRuleApplyConfiguration {\n\tb.ClusterScope = &value\n\treturn b\n}\n\n// WithNamespaces adds the given value to the Namespaces field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Namespaces field.\nfunc (b *ResourcePolicyRuleApplyConfiguration) WithNamespaces(values ...string) *ResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Namespaces = append(b.Namespaces, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2/serviceaccountsubject.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\n// ServiceAccountSubjectApplyConfiguration represents a declarative configuration of the ServiceAccountSubject type for use\n// with apply.\ntype ServiceAccountSubjectApplyConfiguration struct {\n\tNamespace *string `json:\"namespace,omitempty\"`\n\tName      *string `json:\"name,omitempty\"`\n}\n\n// ServiceAccountSubjectApplyConfiguration constructs a declarative configuration of the ServiceAccountSubject type for use with\n// apply.\nfunc ServiceAccountSubject() *ServiceAccountSubjectApplyConfiguration {\n\treturn &ServiceAccountSubjectApplyConfiguration{}\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ServiceAccountSubjectApplyConfiguration) WithNamespace(value string) *ServiceAccountSubjectApplyConfiguration {\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ServiceAccountSubjectApplyConfiguration) WithName(value string) *ServiceAccountSubjectApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2/subject.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tflowcontrolv1beta2 \"k8s.io/api/flowcontrol/v1beta2\"\n)\n\n// SubjectApplyConfiguration represents a declarative configuration of the Subject type for use\n// with apply.\ntype SubjectApplyConfiguration struct {\n\tKind           *flowcontrolv1beta2.SubjectKind          `json:\"kind,omitempty\"`\n\tUser           *UserSubjectApplyConfiguration           `json:\"user,omitempty\"`\n\tGroup          *GroupSubjectApplyConfiguration          `json:\"group,omitempty\"`\n\tServiceAccount *ServiceAccountSubjectApplyConfiguration `json:\"serviceAccount,omitempty\"`\n}\n\n// SubjectApplyConfiguration constructs a declarative configuration of the Subject type for use with\n// apply.\nfunc Subject() *SubjectApplyConfiguration {\n\treturn &SubjectApplyConfiguration{}\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithKind(value flowcontrolv1beta2.SubjectKind) *SubjectApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithUser sets the User field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the User field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithUser(value *UserSubjectApplyConfiguration) *SubjectApplyConfiguration {\n\tb.User = value\n\treturn b\n}\n\n// WithGroup sets the Group field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Group field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithGroup(value *GroupSubjectApplyConfiguration) *SubjectApplyConfiguration {\n\tb.Group = value\n\treturn b\n}\n\n// WithServiceAccount sets the ServiceAccount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ServiceAccount field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithServiceAccount(value *ServiceAccountSubjectApplyConfiguration) *SubjectApplyConfiguration {\n\tb.ServiceAccount = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2/usersubject.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta2\n\n// UserSubjectApplyConfiguration represents a declarative configuration of the UserSubject type for use\n// with apply.\ntype UserSubjectApplyConfiguration struct {\n\tName *string `json:\"name,omitempty\"`\n}\n\n// UserSubjectApplyConfiguration constructs a declarative configuration of the UserSubject type for use with\n// apply.\nfunc UserSubject() *UserSubjectApplyConfiguration {\n\treturn &UserSubjectApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *UserSubjectApplyConfiguration) WithName(value string) *UserSubjectApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3/exemptprioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta3\n\n// ExemptPriorityLevelConfigurationApplyConfiguration represents a declarative configuration of the ExemptPriorityLevelConfiguration type for use\n// with apply.\ntype ExemptPriorityLevelConfigurationApplyConfiguration struct {\n\tNominalConcurrencyShares *int32 `json:\"nominalConcurrencyShares,omitempty\"`\n\tLendablePercent          *int32 `json:\"lendablePercent,omitempty\"`\n}\n\n// ExemptPriorityLevelConfigurationApplyConfiguration constructs a declarative configuration of the ExemptPriorityLevelConfiguration type for use with\n// apply.\nfunc ExemptPriorityLevelConfiguration() *ExemptPriorityLevelConfigurationApplyConfiguration {\n\treturn &ExemptPriorityLevelConfigurationApplyConfiguration{}\n}\n\n// WithNominalConcurrencyShares sets the NominalConcurrencyShares field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NominalConcurrencyShares field is set to the value of the last call.\nfunc (b *ExemptPriorityLevelConfigurationApplyConfiguration) WithNominalConcurrencyShares(value int32) *ExemptPriorityLevelConfigurationApplyConfiguration {\n\tb.NominalConcurrencyShares = &value\n\treturn b\n}\n\n// WithLendablePercent sets the LendablePercent field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LendablePercent field is set to the value of the last call.\nfunc (b *ExemptPriorityLevelConfigurationApplyConfiguration) WithLendablePercent(value int32) *ExemptPriorityLevelConfigurationApplyConfiguration {\n\tb.LendablePercent = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3/flowdistinguishermethod.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta3\n\nimport (\n\tflowcontrolv1beta3 \"k8s.io/api/flowcontrol/v1beta3\"\n)\n\n// FlowDistinguisherMethodApplyConfiguration represents a declarative configuration of the FlowDistinguisherMethod type for use\n// with apply.\ntype FlowDistinguisherMethodApplyConfiguration struct {\n\tType *flowcontrolv1beta3.FlowDistinguisherMethodType `json:\"type,omitempty\"`\n}\n\n// FlowDistinguisherMethodApplyConfiguration constructs a declarative configuration of the FlowDistinguisherMethod type for use with\n// apply.\nfunc FlowDistinguisherMethod() *FlowDistinguisherMethodApplyConfiguration {\n\treturn &FlowDistinguisherMethodApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *FlowDistinguisherMethodApplyConfiguration) WithType(value flowcontrolv1beta3.FlowDistinguisherMethodType) *FlowDistinguisherMethodApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3/flowschema.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta3\n\nimport (\n\tflowcontrolv1beta3 \"k8s.io/api/flowcontrol/v1beta3\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// FlowSchemaApplyConfiguration represents a declarative configuration of the FlowSchema type for use\n// with apply.\ntype FlowSchemaApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *FlowSchemaSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *FlowSchemaStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// FlowSchema constructs a declarative configuration of the FlowSchema type for use with\n// apply.\nfunc FlowSchema(name string) *FlowSchemaApplyConfiguration {\n\tb := &FlowSchemaApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"FlowSchema\")\n\tb.WithAPIVersion(\"flowcontrol.apiserver.k8s.io/v1beta3\")\n\treturn b\n}\n\n// ExtractFlowSchema extracts the applied configuration owned by fieldManager from\n// flowSchema. If no managedFields are found in flowSchema for fieldManager, a\n// FlowSchemaApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// flowSchema must be a unmodified FlowSchema API object that was retrieved from the Kubernetes API.\n// ExtractFlowSchema provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractFlowSchema(flowSchema *flowcontrolv1beta3.FlowSchema, fieldManager string) (*FlowSchemaApplyConfiguration, error) {\n\treturn extractFlowSchema(flowSchema, fieldManager, \"\")\n}\n\n// ExtractFlowSchemaStatus is the same as ExtractFlowSchema except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractFlowSchemaStatus(flowSchema *flowcontrolv1beta3.FlowSchema, fieldManager string) (*FlowSchemaApplyConfiguration, error) {\n\treturn extractFlowSchema(flowSchema, fieldManager, \"status\")\n}\n\nfunc extractFlowSchema(flowSchema *flowcontrolv1beta3.FlowSchema, fieldManager string, subresource string) (*FlowSchemaApplyConfiguration, error) {\n\tb := &FlowSchemaApplyConfiguration{}\n\terr := managedfields.ExtractInto(flowSchema, internal.Parser().Type(\"io.k8s.api.flowcontrol.v1beta3.FlowSchema\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(flowSchema.Name)\n\n\tb.WithKind(\"FlowSchema\")\n\tb.WithAPIVersion(\"flowcontrol.apiserver.k8s.io/v1beta3\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithKind(value string) *FlowSchemaApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithAPIVersion(value string) *FlowSchemaApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithName(value string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithGenerateName(value string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithNamespace(value string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithUID(value types.UID) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithResourceVersion(value string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithGeneration(value int64) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithCreationTimestamp(value metav1.Time) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *FlowSchemaApplyConfiguration) WithLabels(entries map[string]string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *FlowSchemaApplyConfiguration) WithAnnotations(entries map[string]string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *FlowSchemaApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *FlowSchemaApplyConfiguration) WithFinalizers(values ...string) *FlowSchemaApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *FlowSchemaApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithSpec(value *FlowSchemaSpecApplyConfiguration) *FlowSchemaApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *FlowSchemaApplyConfiguration) WithStatus(value *FlowSchemaStatusApplyConfiguration) *FlowSchemaApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *FlowSchemaApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3/flowschemacondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta3\n\nimport (\n\tflowcontrolv1beta3 \"k8s.io/api/flowcontrol/v1beta3\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// FlowSchemaConditionApplyConfiguration represents a declarative configuration of the FlowSchemaCondition type for use\n// with apply.\ntype FlowSchemaConditionApplyConfiguration struct {\n\tType               *flowcontrolv1beta3.FlowSchemaConditionType `json:\"type,omitempty\"`\n\tStatus             *flowcontrolv1beta3.ConditionStatus         `json:\"status,omitempty\"`\n\tLastTransitionTime *v1.Time                                    `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                                     `json:\"reason,omitempty\"`\n\tMessage            *string                                     `json:\"message,omitempty\"`\n}\n\n// FlowSchemaConditionApplyConfiguration constructs a declarative configuration of the FlowSchemaCondition type for use with\n// apply.\nfunc FlowSchemaCondition() *FlowSchemaConditionApplyConfiguration {\n\treturn &FlowSchemaConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *FlowSchemaConditionApplyConfiguration) WithType(value flowcontrolv1beta3.FlowSchemaConditionType) *FlowSchemaConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *FlowSchemaConditionApplyConfiguration) WithStatus(value flowcontrolv1beta3.ConditionStatus) *FlowSchemaConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *FlowSchemaConditionApplyConfiguration) WithLastTransitionTime(value v1.Time) *FlowSchemaConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *FlowSchemaConditionApplyConfiguration) WithReason(value string) *FlowSchemaConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *FlowSchemaConditionApplyConfiguration) WithMessage(value string) *FlowSchemaConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3/flowschemaspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta3\n\n// FlowSchemaSpecApplyConfiguration represents a declarative configuration of the FlowSchemaSpec type for use\n// with apply.\ntype FlowSchemaSpecApplyConfiguration struct {\n\tPriorityLevelConfiguration *PriorityLevelConfigurationReferenceApplyConfiguration `json:\"priorityLevelConfiguration,omitempty\"`\n\tMatchingPrecedence         *int32                                                 `json:\"matchingPrecedence,omitempty\"`\n\tDistinguisherMethod        *FlowDistinguisherMethodApplyConfiguration             `json:\"distinguisherMethod,omitempty\"`\n\tRules                      []PolicyRulesWithSubjectsApplyConfiguration            `json:\"rules,omitempty\"`\n}\n\n// FlowSchemaSpecApplyConfiguration constructs a declarative configuration of the FlowSchemaSpec type for use with\n// apply.\nfunc FlowSchemaSpec() *FlowSchemaSpecApplyConfiguration {\n\treturn &FlowSchemaSpecApplyConfiguration{}\n}\n\n// WithPriorityLevelConfiguration sets the PriorityLevelConfiguration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PriorityLevelConfiguration field is set to the value of the last call.\nfunc (b *FlowSchemaSpecApplyConfiguration) WithPriorityLevelConfiguration(value *PriorityLevelConfigurationReferenceApplyConfiguration) *FlowSchemaSpecApplyConfiguration {\n\tb.PriorityLevelConfiguration = value\n\treturn b\n}\n\n// WithMatchingPrecedence sets the MatchingPrecedence field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MatchingPrecedence field is set to the value of the last call.\nfunc (b *FlowSchemaSpecApplyConfiguration) WithMatchingPrecedence(value int32) *FlowSchemaSpecApplyConfiguration {\n\tb.MatchingPrecedence = &value\n\treturn b\n}\n\n// WithDistinguisherMethod sets the DistinguisherMethod field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DistinguisherMethod field is set to the value of the last call.\nfunc (b *FlowSchemaSpecApplyConfiguration) WithDistinguisherMethod(value *FlowDistinguisherMethodApplyConfiguration) *FlowSchemaSpecApplyConfiguration {\n\tb.DistinguisherMethod = value\n\treturn b\n}\n\n// WithRules adds the given value to the Rules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Rules field.\nfunc (b *FlowSchemaSpecApplyConfiguration) WithRules(values ...*PolicyRulesWithSubjectsApplyConfiguration) *FlowSchemaSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRules\")\n\t\t}\n\t\tb.Rules = append(b.Rules, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3/flowschemastatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta3\n\n// FlowSchemaStatusApplyConfiguration represents a declarative configuration of the FlowSchemaStatus type for use\n// with apply.\ntype FlowSchemaStatusApplyConfiguration struct {\n\tConditions []FlowSchemaConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// FlowSchemaStatusApplyConfiguration constructs a declarative configuration of the FlowSchemaStatus type for use with\n// apply.\nfunc FlowSchemaStatus() *FlowSchemaStatusApplyConfiguration {\n\treturn &FlowSchemaStatusApplyConfiguration{}\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *FlowSchemaStatusApplyConfiguration) WithConditions(values ...*FlowSchemaConditionApplyConfiguration) *FlowSchemaStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3/groupsubject.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta3\n\n// GroupSubjectApplyConfiguration represents a declarative configuration of the GroupSubject type for use\n// with apply.\ntype GroupSubjectApplyConfiguration struct {\n\tName *string `json:\"name,omitempty\"`\n}\n\n// GroupSubjectApplyConfiguration constructs a declarative configuration of the GroupSubject type for use with\n// apply.\nfunc GroupSubject() *GroupSubjectApplyConfiguration {\n\treturn &GroupSubjectApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *GroupSubjectApplyConfiguration) WithName(value string) *GroupSubjectApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3/limitedprioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta3\n\n// LimitedPriorityLevelConfigurationApplyConfiguration represents a declarative configuration of the LimitedPriorityLevelConfiguration type for use\n// with apply.\ntype LimitedPriorityLevelConfigurationApplyConfiguration struct {\n\tNominalConcurrencyShares *int32                           `json:\"nominalConcurrencyShares,omitempty\"`\n\tLimitResponse            *LimitResponseApplyConfiguration `json:\"limitResponse,omitempty\"`\n\tLendablePercent          *int32                           `json:\"lendablePercent,omitempty\"`\n\tBorrowingLimitPercent    *int32                           `json:\"borrowingLimitPercent,omitempty\"`\n}\n\n// LimitedPriorityLevelConfigurationApplyConfiguration constructs a declarative configuration of the LimitedPriorityLevelConfiguration type for use with\n// apply.\nfunc LimitedPriorityLevelConfiguration() *LimitedPriorityLevelConfigurationApplyConfiguration {\n\treturn &LimitedPriorityLevelConfigurationApplyConfiguration{}\n}\n\n// WithNominalConcurrencyShares sets the NominalConcurrencyShares field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NominalConcurrencyShares field is set to the value of the last call.\nfunc (b *LimitedPriorityLevelConfigurationApplyConfiguration) WithNominalConcurrencyShares(value int32) *LimitedPriorityLevelConfigurationApplyConfiguration {\n\tb.NominalConcurrencyShares = &value\n\treturn b\n}\n\n// WithLimitResponse sets the LimitResponse field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LimitResponse field is set to the value of the last call.\nfunc (b *LimitedPriorityLevelConfigurationApplyConfiguration) WithLimitResponse(value *LimitResponseApplyConfiguration) *LimitedPriorityLevelConfigurationApplyConfiguration {\n\tb.LimitResponse = value\n\treturn b\n}\n\n// WithLendablePercent sets the LendablePercent field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LendablePercent field is set to the value of the last call.\nfunc (b *LimitedPriorityLevelConfigurationApplyConfiguration) WithLendablePercent(value int32) *LimitedPriorityLevelConfigurationApplyConfiguration {\n\tb.LendablePercent = &value\n\treturn b\n}\n\n// WithBorrowingLimitPercent sets the BorrowingLimitPercent field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the BorrowingLimitPercent field is set to the value of the last call.\nfunc (b *LimitedPriorityLevelConfigurationApplyConfiguration) WithBorrowingLimitPercent(value int32) *LimitedPriorityLevelConfigurationApplyConfiguration {\n\tb.BorrowingLimitPercent = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3/limitresponse.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta3\n\nimport (\n\tflowcontrolv1beta3 \"k8s.io/api/flowcontrol/v1beta3\"\n)\n\n// LimitResponseApplyConfiguration represents a declarative configuration of the LimitResponse type for use\n// with apply.\ntype LimitResponseApplyConfiguration struct {\n\tType    *flowcontrolv1beta3.LimitResponseType   `json:\"type,omitempty\"`\n\tQueuing *QueuingConfigurationApplyConfiguration `json:\"queuing,omitempty\"`\n}\n\n// LimitResponseApplyConfiguration constructs a declarative configuration of the LimitResponse type for use with\n// apply.\nfunc LimitResponse() *LimitResponseApplyConfiguration {\n\treturn &LimitResponseApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *LimitResponseApplyConfiguration) WithType(value flowcontrolv1beta3.LimitResponseType) *LimitResponseApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithQueuing sets the Queuing field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Queuing field is set to the value of the last call.\nfunc (b *LimitResponseApplyConfiguration) WithQueuing(value *QueuingConfigurationApplyConfiguration) *LimitResponseApplyConfiguration {\n\tb.Queuing = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3/nonresourcepolicyrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta3\n\n// NonResourcePolicyRuleApplyConfiguration represents a declarative configuration of the NonResourcePolicyRule type for use\n// with apply.\ntype NonResourcePolicyRuleApplyConfiguration struct {\n\tVerbs           []string `json:\"verbs,omitempty\"`\n\tNonResourceURLs []string `json:\"nonResourceURLs,omitempty\"`\n}\n\n// NonResourcePolicyRuleApplyConfiguration constructs a declarative configuration of the NonResourcePolicyRule type for use with\n// apply.\nfunc NonResourcePolicyRule() *NonResourcePolicyRuleApplyConfiguration {\n\treturn &NonResourcePolicyRuleApplyConfiguration{}\n}\n\n// WithVerbs adds the given value to the Verbs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Verbs field.\nfunc (b *NonResourcePolicyRuleApplyConfiguration) WithVerbs(values ...string) *NonResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Verbs = append(b.Verbs, values[i])\n\t}\n\treturn b\n}\n\n// WithNonResourceURLs adds the given value to the NonResourceURLs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the NonResourceURLs field.\nfunc (b *NonResourcePolicyRuleApplyConfiguration) WithNonResourceURLs(values ...string) *NonResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.NonResourceURLs = append(b.NonResourceURLs, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3/policyruleswithsubjects.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta3\n\n// PolicyRulesWithSubjectsApplyConfiguration represents a declarative configuration of the PolicyRulesWithSubjects type for use\n// with apply.\ntype PolicyRulesWithSubjectsApplyConfiguration struct {\n\tSubjects         []SubjectApplyConfiguration               `json:\"subjects,omitempty\"`\n\tResourceRules    []ResourcePolicyRuleApplyConfiguration    `json:\"resourceRules,omitempty\"`\n\tNonResourceRules []NonResourcePolicyRuleApplyConfiguration `json:\"nonResourceRules,omitempty\"`\n}\n\n// PolicyRulesWithSubjectsApplyConfiguration constructs a declarative configuration of the PolicyRulesWithSubjects type for use with\n// apply.\nfunc PolicyRulesWithSubjects() *PolicyRulesWithSubjectsApplyConfiguration {\n\treturn &PolicyRulesWithSubjectsApplyConfiguration{}\n}\n\n// WithSubjects adds the given value to the Subjects field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Subjects field.\nfunc (b *PolicyRulesWithSubjectsApplyConfiguration) WithSubjects(values ...*SubjectApplyConfiguration) *PolicyRulesWithSubjectsApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithSubjects\")\n\t\t}\n\t\tb.Subjects = append(b.Subjects, *values[i])\n\t}\n\treturn b\n}\n\n// WithResourceRules adds the given value to the ResourceRules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ResourceRules field.\nfunc (b *PolicyRulesWithSubjectsApplyConfiguration) WithResourceRules(values ...*ResourcePolicyRuleApplyConfiguration) *PolicyRulesWithSubjectsApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithResourceRules\")\n\t\t}\n\t\tb.ResourceRules = append(b.ResourceRules, *values[i])\n\t}\n\treturn b\n}\n\n// WithNonResourceRules adds the given value to the NonResourceRules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the NonResourceRules field.\nfunc (b *PolicyRulesWithSubjectsApplyConfiguration) WithNonResourceRules(values ...*NonResourcePolicyRuleApplyConfiguration) *PolicyRulesWithSubjectsApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithNonResourceRules\")\n\t\t}\n\t\tb.NonResourceRules = append(b.NonResourceRules, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3/prioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta3\n\nimport (\n\tflowcontrolv1beta3 \"k8s.io/api/flowcontrol/v1beta3\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PriorityLevelConfigurationApplyConfiguration represents a declarative configuration of the PriorityLevelConfiguration type for use\n// with apply.\ntype PriorityLevelConfigurationApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *PriorityLevelConfigurationSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *PriorityLevelConfigurationStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// PriorityLevelConfiguration constructs a declarative configuration of the PriorityLevelConfiguration type for use with\n// apply.\nfunc PriorityLevelConfiguration(name string) *PriorityLevelConfigurationApplyConfiguration {\n\tb := &PriorityLevelConfigurationApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"PriorityLevelConfiguration\")\n\tb.WithAPIVersion(\"flowcontrol.apiserver.k8s.io/v1beta3\")\n\treturn b\n}\n\n// ExtractPriorityLevelConfiguration extracts the applied configuration owned by fieldManager from\n// priorityLevelConfiguration. If no managedFields are found in priorityLevelConfiguration for fieldManager, a\n// PriorityLevelConfigurationApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// priorityLevelConfiguration must be a unmodified PriorityLevelConfiguration API object that was retrieved from the Kubernetes API.\n// ExtractPriorityLevelConfiguration provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractPriorityLevelConfiguration(priorityLevelConfiguration *flowcontrolv1beta3.PriorityLevelConfiguration, fieldManager string) (*PriorityLevelConfigurationApplyConfiguration, error) {\n\treturn extractPriorityLevelConfiguration(priorityLevelConfiguration, fieldManager, \"\")\n}\n\n// ExtractPriorityLevelConfigurationStatus is the same as ExtractPriorityLevelConfiguration except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractPriorityLevelConfigurationStatus(priorityLevelConfiguration *flowcontrolv1beta3.PriorityLevelConfiguration, fieldManager string) (*PriorityLevelConfigurationApplyConfiguration, error) {\n\treturn extractPriorityLevelConfiguration(priorityLevelConfiguration, fieldManager, \"status\")\n}\n\nfunc extractPriorityLevelConfiguration(priorityLevelConfiguration *flowcontrolv1beta3.PriorityLevelConfiguration, fieldManager string, subresource string) (*PriorityLevelConfigurationApplyConfiguration, error) {\n\tb := &PriorityLevelConfigurationApplyConfiguration{}\n\terr := managedfields.ExtractInto(priorityLevelConfiguration, internal.Parser().Type(\"io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfiguration\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(priorityLevelConfiguration.Name)\n\n\tb.WithKind(\"PriorityLevelConfiguration\")\n\tb.WithAPIVersion(\"flowcontrol.apiserver.k8s.io/v1beta3\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithKind(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithAPIVersion(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithName(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithGenerateName(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithNamespace(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithUID(value types.UID) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithResourceVersion(value string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithGeneration(value int64) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithCreationTimestamp(value metav1.Time) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithLabels(entries map[string]string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithAnnotations(entries map[string]string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithFinalizers(values ...string) *PriorityLevelConfigurationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *PriorityLevelConfigurationApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithSpec(value *PriorityLevelConfigurationSpecApplyConfiguration) *PriorityLevelConfigurationApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) WithStatus(value *PriorityLevelConfigurationStatusApplyConfiguration) *PriorityLevelConfigurationApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *PriorityLevelConfigurationApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3/prioritylevelconfigurationcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta3\n\nimport (\n\tflowcontrolv1beta3 \"k8s.io/api/flowcontrol/v1beta3\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// PriorityLevelConfigurationConditionApplyConfiguration represents a declarative configuration of the PriorityLevelConfigurationCondition type for use\n// with apply.\ntype PriorityLevelConfigurationConditionApplyConfiguration struct {\n\tType               *flowcontrolv1beta3.PriorityLevelConfigurationConditionType `json:\"type,omitempty\"`\n\tStatus             *flowcontrolv1beta3.ConditionStatus                         `json:\"status,omitempty\"`\n\tLastTransitionTime *v1.Time                                                    `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                                                     `json:\"reason,omitempty\"`\n\tMessage            *string                                                     `json:\"message,omitempty\"`\n}\n\n// PriorityLevelConfigurationConditionApplyConfiguration constructs a declarative configuration of the PriorityLevelConfigurationCondition type for use with\n// apply.\nfunc PriorityLevelConfigurationCondition() *PriorityLevelConfigurationConditionApplyConfiguration {\n\treturn &PriorityLevelConfigurationConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationConditionApplyConfiguration) WithType(value flowcontrolv1beta3.PriorityLevelConfigurationConditionType) *PriorityLevelConfigurationConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationConditionApplyConfiguration) WithStatus(value flowcontrolv1beta3.ConditionStatus) *PriorityLevelConfigurationConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationConditionApplyConfiguration) WithLastTransitionTime(value v1.Time) *PriorityLevelConfigurationConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationConditionApplyConfiguration) WithReason(value string) *PriorityLevelConfigurationConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationConditionApplyConfiguration) WithMessage(value string) *PriorityLevelConfigurationConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3/prioritylevelconfigurationreference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta3\n\n// PriorityLevelConfigurationReferenceApplyConfiguration represents a declarative configuration of the PriorityLevelConfigurationReference type for use\n// with apply.\ntype PriorityLevelConfigurationReferenceApplyConfiguration struct {\n\tName *string `json:\"name,omitempty\"`\n}\n\n// PriorityLevelConfigurationReferenceApplyConfiguration constructs a declarative configuration of the PriorityLevelConfigurationReference type for use with\n// apply.\nfunc PriorityLevelConfigurationReference() *PriorityLevelConfigurationReferenceApplyConfiguration {\n\treturn &PriorityLevelConfigurationReferenceApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationReferenceApplyConfiguration) WithName(value string) *PriorityLevelConfigurationReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3/prioritylevelconfigurationspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta3\n\nimport (\n\tflowcontrolv1beta3 \"k8s.io/api/flowcontrol/v1beta3\"\n)\n\n// PriorityLevelConfigurationSpecApplyConfiguration represents a declarative configuration of the PriorityLevelConfigurationSpec type for use\n// with apply.\ntype PriorityLevelConfigurationSpecApplyConfiguration struct {\n\tType    *flowcontrolv1beta3.PriorityLevelEnablement          `json:\"type,omitempty\"`\n\tLimited *LimitedPriorityLevelConfigurationApplyConfiguration `json:\"limited,omitempty\"`\n\tExempt  *ExemptPriorityLevelConfigurationApplyConfiguration  `json:\"exempt,omitempty\"`\n}\n\n// PriorityLevelConfigurationSpecApplyConfiguration constructs a declarative configuration of the PriorityLevelConfigurationSpec type for use with\n// apply.\nfunc PriorityLevelConfigurationSpec() *PriorityLevelConfigurationSpecApplyConfiguration {\n\treturn &PriorityLevelConfigurationSpecApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationSpecApplyConfiguration) WithType(value flowcontrolv1beta3.PriorityLevelEnablement) *PriorityLevelConfigurationSpecApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithLimited sets the Limited field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Limited field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationSpecApplyConfiguration) WithLimited(value *LimitedPriorityLevelConfigurationApplyConfiguration) *PriorityLevelConfigurationSpecApplyConfiguration {\n\tb.Limited = value\n\treturn b\n}\n\n// WithExempt sets the Exempt field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Exempt field is set to the value of the last call.\nfunc (b *PriorityLevelConfigurationSpecApplyConfiguration) WithExempt(value *ExemptPriorityLevelConfigurationApplyConfiguration) *PriorityLevelConfigurationSpecApplyConfiguration {\n\tb.Exempt = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3/prioritylevelconfigurationstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta3\n\n// PriorityLevelConfigurationStatusApplyConfiguration represents a declarative configuration of the PriorityLevelConfigurationStatus type for use\n// with apply.\ntype PriorityLevelConfigurationStatusApplyConfiguration struct {\n\tConditions []PriorityLevelConfigurationConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// PriorityLevelConfigurationStatusApplyConfiguration constructs a declarative configuration of the PriorityLevelConfigurationStatus type for use with\n// apply.\nfunc PriorityLevelConfigurationStatus() *PriorityLevelConfigurationStatusApplyConfiguration {\n\treturn &PriorityLevelConfigurationStatusApplyConfiguration{}\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *PriorityLevelConfigurationStatusApplyConfiguration) WithConditions(values ...*PriorityLevelConfigurationConditionApplyConfiguration) *PriorityLevelConfigurationStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3/queuingconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta3\n\n// QueuingConfigurationApplyConfiguration represents a declarative configuration of the QueuingConfiguration type for use\n// with apply.\ntype QueuingConfigurationApplyConfiguration struct {\n\tQueues           *int32 `json:\"queues,omitempty\"`\n\tHandSize         *int32 `json:\"handSize,omitempty\"`\n\tQueueLengthLimit *int32 `json:\"queueLengthLimit,omitempty\"`\n}\n\n// QueuingConfigurationApplyConfiguration constructs a declarative configuration of the QueuingConfiguration type for use with\n// apply.\nfunc QueuingConfiguration() *QueuingConfigurationApplyConfiguration {\n\treturn &QueuingConfigurationApplyConfiguration{}\n}\n\n// WithQueues sets the Queues field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Queues field is set to the value of the last call.\nfunc (b *QueuingConfigurationApplyConfiguration) WithQueues(value int32) *QueuingConfigurationApplyConfiguration {\n\tb.Queues = &value\n\treturn b\n}\n\n// WithHandSize sets the HandSize field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HandSize field is set to the value of the last call.\nfunc (b *QueuingConfigurationApplyConfiguration) WithHandSize(value int32) *QueuingConfigurationApplyConfiguration {\n\tb.HandSize = &value\n\treturn b\n}\n\n// WithQueueLengthLimit sets the QueueLengthLimit field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the QueueLengthLimit field is set to the value of the last call.\nfunc (b *QueuingConfigurationApplyConfiguration) WithQueueLengthLimit(value int32) *QueuingConfigurationApplyConfiguration {\n\tb.QueueLengthLimit = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3/resourcepolicyrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta3\n\n// ResourcePolicyRuleApplyConfiguration represents a declarative configuration of the ResourcePolicyRule type for use\n// with apply.\ntype ResourcePolicyRuleApplyConfiguration struct {\n\tVerbs        []string `json:\"verbs,omitempty\"`\n\tAPIGroups    []string `json:\"apiGroups,omitempty\"`\n\tResources    []string `json:\"resources,omitempty\"`\n\tClusterScope *bool    `json:\"clusterScope,omitempty\"`\n\tNamespaces   []string `json:\"namespaces,omitempty\"`\n}\n\n// ResourcePolicyRuleApplyConfiguration constructs a declarative configuration of the ResourcePolicyRule type for use with\n// apply.\nfunc ResourcePolicyRule() *ResourcePolicyRuleApplyConfiguration {\n\treturn &ResourcePolicyRuleApplyConfiguration{}\n}\n\n// WithVerbs adds the given value to the Verbs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Verbs field.\nfunc (b *ResourcePolicyRuleApplyConfiguration) WithVerbs(values ...string) *ResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Verbs = append(b.Verbs, values[i])\n\t}\n\treturn b\n}\n\n// WithAPIGroups adds the given value to the APIGroups field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the APIGroups field.\nfunc (b *ResourcePolicyRuleApplyConfiguration) WithAPIGroups(values ...string) *ResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.APIGroups = append(b.APIGroups, values[i])\n\t}\n\treturn b\n}\n\n// WithResources adds the given value to the Resources field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Resources field.\nfunc (b *ResourcePolicyRuleApplyConfiguration) WithResources(values ...string) *ResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Resources = append(b.Resources, values[i])\n\t}\n\treturn b\n}\n\n// WithClusterScope sets the ClusterScope field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ClusterScope field is set to the value of the last call.\nfunc (b *ResourcePolicyRuleApplyConfiguration) WithClusterScope(value bool) *ResourcePolicyRuleApplyConfiguration {\n\tb.ClusterScope = &value\n\treturn b\n}\n\n// WithNamespaces adds the given value to the Namespaces field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Namespaces field.\nfunc (b *ResourcePolicyRuleApplyConfiguration) WithNamespaces(values ...string) *ResourcePolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Namespaces = append(b.Namespaces, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3/serviceaccountsubject.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta3\n\n// ServiceAccountSubjectApplyConfiguration represents a declarative configuration of the ServiceAccountSubject type for use\n// with apply.\ntype ServiceAccountSubjectApplyConfiguration struct {\n\tNamespace *string `json:\"namespace,omitempty\"`\n\tName      *string `json:\"name,omitempty\"`\n}\n\n// ServiceAccountSubjectApplyConfiguration constructs a declarative configuration of the ServiceAccountSubject type for use with\n// apply.\nfunc ServiceAccountSubject() *ServiceAccountSubjectApplyConfiguration {\n\treturn &ServiceAccountSubjectApplyConfiguration{}\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ServiceAccountSubjectApplyConfiguration) WithNamespace(value string) *ServiceAccountSubjectApplyConfiguration {\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ServiceAccountSubjectApplyConfiguration) WithName(value string) *ServiceAccountSubjectApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3/subject.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta3\n\nimport (\n\tflowcontrolv1beta3 \"k8s.io/api/flowcontrol/v1beta3\"\n)\n\n// SubjectApplyConfiguration represents a declarative configuration of the Subject type for use\n// with apply.\ntype SubjectApplyConfiguration struct {\n\tKind           *flowcontrolv1beta3.SubjectKind          `json:\"kind,omitempty\"`\n\tUser           *UserSubjectApplyConfiguration           `json:\"user,omitempty\"`\n\tGroup          *GroupSubjectApplyConfiguration          `json:\"group,omitempty\"`\n\tServiceAccount *ServiceAccountSubjectApplyConfiguration `json:\"serviceAccount,omitempty\"`\n}\n\n// SubjectApplyConfiguration constructs a declarative configuration of the Subject type for use with\n// apply.\nfunc Subject() *SubjectApplyConfiguration {\n\treturn &SubjectApplyConfiguration{}\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithKind(value flowcontrolv1beta3.SubjectKind) *SubjectApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithUser sets the User field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the User field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithUser(value *UserSubjectApplyConfiguration) *SubjectApplyConfiguration {\n\tb.User = value\n\treturn b\n}\n\n// WithGroup sets the Group field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Group field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithGroup(value *GroupSubjectApplyConfiguration) *SubjectApplyConfiguration {\n\tb.Group = value\n\treturn b\n}\n\n// WithServiceAccount sets the ServiceAccount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ServiceAccount field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithServiceAccount(value *ServiceAccountSubjectApplyConfiguration) *SubjectApplyConfiguration {\n\tb.ServiceAccount = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3/usersubject.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta3\n\n// UserSubjectApplyConfiguration represents a declarative configuration of the UserSubject type for use\n// with apply.\ntype UserSubjectApplyConfiguration struct {\n\tName *string `json:\"name,omitempty\"`\n}\n\n// UserSubjectApplyConfiguration constructs a declarative configuration of the UserSubject type for use with\n// apply.\nfunc UserSubject() *UserSubjectApplyConfiguration {\n\treturn &UserSubjectApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *UserSubjectApplyConfiguration) WithName(value string) *UserSubjectApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/imagepolicy/v1alpha1/imagereview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\timagepolicyv1alpha1 \"k8s.io/api/imagepolicy/v1alpha1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ImageReviewApplyConfiguration represents a declarative configuration of the ImageReview type for use\n// with apply.\ntype ImageReviewApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *ImageReviewSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *ImageReviewStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// ImageReview constructs a declarative configuration of the ImageReview type for use with\n// apply.\nfunc ImageReview(name string) *ImageReviewApplyConfiguration {\n\tb := &ImageReviewApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"ImageReview\")\n\tb.WithAPIVersion(\"imagepolicy.k8s.io/v1alpha1\")\n\treturn b\n}\n\n// ExtractImageReview extracts the applied configuration owned by fieldManager from\n// imageReview. If no managedFields are found in imageReview for fieldManager, a\n// ImageReviewApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// imageReview must be a unmodified ImageReview API object that was retrieved from the Kubernetes API.\n// ExtractImageReview provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractImageReview(imageReview *imagepolicyv1alpha1.ImageReview, fieldManager string) (*ImageReviewApplyConfiguration, error) {\n\treturn extractImageReview(imageReview, fieldManager, \"\")\n}\n\n// ExtractImageReviewStatus is the same as ExtractImageReview except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractImageReviewStatus(imageReview *imagepolicyv1alpha1.ImageReview, fieldManager string) (*ImageReviewApplyConfiguration, error) {\n\treturn extractImageReview(imageReview, fieldManager, \"status\")\n}\n\nfunc extractImageReview(imageReview *imagepolicyv1alpha1.ImageReview, fieldManager string, subresource string) (*ImageReviewApplyConfiguration, error) {\n\tb := &ImageReviewApplyConfiguration{}\n\terr := managedfields.ExtractInto(imageReview, internal.Parser().Type(\"io.k8s.api.imagepolicy.v1alpha1.ImageReview\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(imageReview.Name)\n\n\tb.WithKind(\"ImageReview\")\n\tb.WithAPIVersion(\"imagepolicy.k8s.io/v1alpha1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ImageReviewApplyConfiguration) WithKind(value string) *ImageReviewApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ImageReviewApplyConfiguration) WithAPIVersion(value string) *ImageReviewApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ImageReviewApplyConfiguration) WithName(value string) *ImageReviewApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ImageReviewApplyConfiguration) WithGenerateName(value string) *ImageReviewApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ImageReviewApplyConfiguration) WithNamespace(value string) *ImageReviewApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ImageReviewApplyConfiguration) WithUID(value types.UID) *ImageReviewApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ImageReviewApplyConfiguration) WithResourceVersion(value string) *ImageReviewApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ImageReviewApplyConfiguration) WithGeneration(value int64) *ImageReviewApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ImageReviewApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ImageReviewApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ImageReviewApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ImageReviewApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ImageReviewApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ImageReviewApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ImageReviewApplyConfiguration) WithLabels(entries map[string]string) *ImageReviewApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ImageReviewApplyConfiguration) WithAnnotations(entries map[string]string) *ImageReviewApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ImageReviewApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ImageReviewApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ImageReviewApplyConfiguration) WithFinalizers(values ...string) *ImageReviewApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ImageReviewApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *ImageReviewApplyConfiguration) WithSpec(value *ImageReviewSpecApplyConfiguration) *ImageReviewApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *ImageReviewApplyConfiguration) WithStatus(value *ImageReviewStatusApplyConfiguration) *ImageReviewApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *ImageReviewApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/imagepolicy/v1alpha1/imagereviewcontainerspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// ImageReviewContainerSpecApplyConfiguration represents a declarative configuration of the ImageReviewContainerSpec type for use\n// with apply.\ntype ImageReviewContainerSpecApplyConfiguration struct {\n\tImage *string `json:\"image,omitempty\"`\n}\n\n// ImageReviewContainerSpecApplyConfiguration constructs a declarative configuration of the ImageReviewContainerSpec type for use with\n// apply.\nfunc ImageReviewContainerSpec() *ImageReviewContainerSpecApplyConfiguration {\n\treturn &ImageReviewContainerSpecApplyConfiguration{}\n}\n\n// WithImage sets the Image field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Image field is set to the value of the last call.\nfunc (b *ImageReviewContainerSpecApplyConfiguration) WithImage(value string) *ImageReviewContainerSpecApplyConfiguration {\n\tb.Image = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/imagepolicy/v1alpha1/imagereviewspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// ImageReviewSpecApplyConfiguration represents a declarative configuration of the ImageReviewSpec type for use\n// with apply.\ntype ImageReviewSpecApplyConfiguration struct {\n\tContainers  []ImageReviewContainerSpecApplyConfiguration `json:\"containers,omitempty\"`\n\tAnnotations map[string]string                            `json:\"annotations,omitempty\"`\n\tNamespace   *string                                      `json:\"namespace,omitempty\"`\n}\n\n// ImageReviewSpecApplyConfiguration constructs a declarative configuration of the ImageReviewSpec type for use with\n// apply.\nfunc ImageReviewSpec() *ImageReviewSpecApplyConfiguration {\n\treturn &ImageReviewSpecApplyConfiguration{}\n}\n\n// WithContainers adds the given value to the Containers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Containers field.\nfunc (b *ImageReviewSpecApplyConfiguration) WithContainers(values ...*ImageReviewContainerSpecApplyConfiguration) *ImageReviewSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithContainers\")\n\t\t}\n\t\tb.Containers = append(b.Containers, *values[i])\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ImageReviewSpecApplyConfiguration) WithAnnotations(entries map[string]string) *ImageReviewSpecApplyConfiguration {\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ImageReviewSpecApplyConfiguration) WithNamespace(value string) *ImageReviewSpecApplyConfiguration {\n\tb.Namespace = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/imagepolicy/v1alpha1/imagereviewstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// ImageReviewStatusApplyConfiguration represents a declarative configuration of the ImageReviewStatus type for use\n// with apply.\ntype ImageReviewStatusApplyConfiguration struct {\n\tAllowed          *bool             `json:\"allowed,omitempty\"`\n\tReason           *string           `json:\"reason,omitempty\"`\n\tAuditAnnotations map[string]string `json:\"auditAnnotations,omitempty\"`\n}\n\n// ImageReviewStatusApplyConfiguration constructs a declarative configuration of the ImageReviewStatus type for use with\n// apply.\nfunc ImageReviewStatus() *ImageReviewStatusApplyConfiguration {\n\treturn &ImageReviewStatusApplyConfiguration{}\n}\n\n// WithAllowed sets the Allowed field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Allowed field is set to the value of the last call.\nfunc (b *ImageReviewStatusApplyConfiguration) WithAllowed(value bool) *ImageReviewStatusApplyConfiguration {\n\tb.Allowed = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *ImageReviewStatusApplyConfiguration) WithReason(value string) *ImageReviewStatusApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithAuditAnnotations puts the entries into the AuditAnnotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the AuditAnnotations field,\n// overwriting an existing map entries in AuditAnnotations field with the same key.\nfunc (b *ImageReviewStatusApplyConfiguration) WithAuditAnnotations(entries map[string]string) *ImageReviewStatusApplyConfiguration {\n\tif b.AuditAnnotations == nil && len(entries) > 0 {\n\t\tb.AuditAnnotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.AuditAnnotations[k] = v\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/internal/internal.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage internal\n\nimport (\n\tfmt \"fmt\"\n\tsync \"sync\"\n\n\ttyped \"sigs.k8s.io/structured-merge-diff/v4/typed\"\n)\n\nfunc Parser() *typed.Parser {\n\tparserOnce.Do(func() {\n\t\tvar err error\n\t\tparser, err = typed.NewParser(schemaYAML)\n\t\tif err != nil {\n\t\t\tpanic(fmt.Sprintf(\"Failed to parse schema: %v\", err))\n\t\t}\n\t})\n\treturn parser\n}\n\nvar parserOnce sync.Once\nvar parser *typed.Parser\nvar schemaYAML = typed.YAMLObject(`types:\n- name: io.k8s.api.admissionregistration.v1.AuditAnnotation\n  map:\n    fields:\n    - name: key\n      type:\n        scalar: string\n      default: \"\"\n    - name: valueExpression\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.admissionregistration.v1.ExpressionWarning\n  map:\n    fields:\n    - name: fieldRef\n      type:\n        scalar: string\n      default: \"\"\n    - name: warning\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.admissionregistration.v1.MatchCondition\n  map:\n    fields:\n    - name: expression\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.admissionregistration.v1.MatchResources\n  map:\n    fields:\n    - name: excludeResourceRules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1.NamedRuleWithOperations\n          elementRelationship: atomic\n    - name: matchPolicy\n      type:\n        scalar: string\n    - name: namespaceSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: objectSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: resourceRules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1.NamedRuleWithOperations\n          elementRelationship: atomic\n    elementRelationship: atomic\n- name: io.k8s.api.admissionregistration.v1.MutatingWebhook\n  map:\n    fields:\n    - name: admissionReviewVersions\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: clientConfig\n      type:\n        namedType: io.k8s.api.admissionregistration.v1.WebhookClientConfig\n      default: {}\n    - name: failurePolicy\n      type:\n        scalar: string\n    - name: matchConditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1.MatchCondition\n          elementRelationship: associative\n          keys:\n          - name\n    - name: matchPolicy\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: namespaceSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: objectSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: reinvocationPolicy\n      type:\n        scalar: string\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1.RuleWithOperations\n          elementRelationship: atomic\n    - name: sideEffects\n      type:\n        scalar: string\n    - name: timeoutSeconds\n      type:\n        scalar: numeric\n- name: io.k8s.api.admissionregistration.v1.MutatingWebhookConfiguration\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: webhooks\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1.MutatingWebhook\n          elementRelationship: associative\n          keys:\n          - name\n- name: io.k8s.api.admissionregistration.v1.NamedRuleWithOperations\n  map:\n    fields:\n    - name: apiGroups\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: apiVersions\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: operations\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: resourceNames\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: resources\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: scope\n      type:\n        scalar: string\n    elementRelationship: atomic\n- name: io.k8s.api.admissionregistration.v1.ParamKind\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    elementRelationship: atomic\n- name: io.k8s.api.admissionregistration.v1.ParamRef\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n    - name: namespace\n      type:\n        scalar: string\n    - name: parameterNotFoundAction\n      type:\n        scalar: string\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    elementRelationship: atomic\n- name: io.k8s.api.admissionregistration.v1.RuleWithOperations\n  map:\n    fields:\n    - name: apiGroups\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: apiVersions\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: operations\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: resources\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: scope\n      type:\n        scalar: string\n- name: io.k8s.api.admissionregistration.v1.ServiceReference\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: namespace\n      type:\n        scalar: string\n      default: \"\"\n    - name: path\n      type:\n        scalar: string\n    - name: port\n      type:\n        scalar: numeric\n- name: io.k8s.api.admissionregistration.v1.TypeChecking\n  map:\n    fields:\n    - name: expressionWarnings\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1.ExpressionWarning\n          elementRelationship: atomic\n- name: io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicy\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicySpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicyStatus\n      default: {}\n- name: io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicyBinding\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicyBindingSpec\n      default: {}\n- name: io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicyBindingSpec\n  map:\n    fields:\n    - name: matchResources\n      type:\n        namedType: io.k8s.api.admissionregistration.v1.MatchResources\n    - name: paramRef\n      type:\n        namedType: io.k8s.api.admissionregistration.v1.ParamRef\n    - name: policyName\n      type:\n        scalar: string\n    - name: validationActions\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n- name: io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicySpec\n  map:\n    fields:\n    - name: auditAnnotations\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1.AuditAnnotation\n          elementRelationship: atomic\n    - name: failurePolicy\n      type:\n        scalar: string\n    - name: matchConditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1.MatchCondition\n          elementRelationship: associative\n          keys:\n          - name\n    - name: matchConstraints\n      type:\n        namedType: io.k8s.api.admissionregistration.v1.MatchResources\n    - name: paramKind\n      type:\n        namedType: io.k8s.api.admissionregistration.v1.ParamKind\n    - name: validations\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1.Validation\n          elementRelationship: atomic\n    - name: variables\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1.Variable\n          elementRelationship: associative\n          keys:\n          - name\n- name: io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicyStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Condition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: observedGeneration\n      type:\n        scalar: numeric\n    - name: typeChecking\n      type:\n        namedType: io.k8s.api.admissionregistration.v1.TypeChecking\n- name: io.k8s.api.admissionregistration.v1.ValidatingWebhook\n  map:\n    fields:\n    - name: admissionReviewVersions\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: clientConfig\n      type:\n        namedType: io.k8s.api.admissionregistration.v1.WebhookClientConfig\n      default: {}\n    - name: failurePolicy\n      type:\n        scalar: string\n    - name: matchConditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1.MatchCondition\n          elementRelationship: associative\n          keys:\n          - name\n    - name: matchPolicy\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: namespaceSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: objectSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1.RuleWithOperations\n          elementRelationship: atomic\n    - name: sideEffects\n      type:\n        scalar: string\n    - name: timeoutSeconds\n      type:\n        scalar: numeric\n- name: io.k8s.api.admissionregistration.v1.ValidatingWebhookConfiguration\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: webhooks\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1.ValidatingWebhook\n          elementRelationship: associative\n          keys:\n          - name\n- name: io.k8s.api.admissionregistration.v1.Validation\n  map:\n    fields:\n    - name: expression\n      type:\n        scalar: string\n      default: \"\"\n    - name: message\n      type:\n        scalar: string\n    - name: messageExpression\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n- name: io.k8s.api.admissionregistration.v1.Variable\n  map:\n    fields:\n    - name: expression\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    elementRelationship: atomic\n- name: io.k8s.api.admissionregistration.v1.WebhookClientConfig\n  map:\n    fields:\n    - name: caBundle\n      type:\n        scalar: string\n    - name: service\n      type:\n        namedType: io.k8s.api.admissionregistration.v1.ServiceReference\n    - name: url\n      type:\n        scalar: string\n- name: io.k8s.api.admissionregistration.v1alpha1.ApplyConfiguration\n  map:\n    fields:\n    - name: expression\n      type:\n        scalar: string\n- name: io.k8s.api.admissionregistration.v1alpha1.AuditAnnotation\n  map:\n    fields:\n    - name: key\n      type:\n        scalar: string\n      default: \"\"\n    - name: valueExpression\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.admissionregistration.v1alpha1.ExpressionWarning\n  map:\n    fields:\n    - name: fieldRef\n      type:\n        scalar: string\n      default: \"\"\n    - name: warning\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.admissionregistration.v1alpha1.JSONPatch\n  map:\n    fields:\n    - name: expression\n      type:\n        scalar: string\n- name: io.k8s.api.admissionregistration.v1alpha1.MatchCondition\n  map:\n    fields:\n    - name: expression\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.admissionregistration.v1alpha1.MatchResources\n  map:\n    fields:\n    - name: excludeResourceRules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1alpha1.NamedRuleWithOperations\n          elementRelationship: atomic\n    - name: matchPolicy\n      type:\n        scalar: string\n    - name: namespaceSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: objectSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: resourceRules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1alpha1.NamedRuleWithOperations\n          elementRelationship: atomic\n    elementRelationship: atomic\n- name: io.k8s.api.admissionregistration.v1alpha1.MutatingAdmissionPolicy\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.admissionregistration.v1alpha1.MutatingAdmissionPolicySpec\n      default: {}\n- name: io.k8s.api.admissionregistration.v1alpha1.MutatingAdmissionPolicyBinding\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.admissionregistration.v1alpha1.MutatingAdmissionPolicyBindingSpec\n      default: {}\n- name: io.k8s.api.admissionregistration.v1alpha1.MutatingAdmissionPolicyBindingSpec\n  map:\n    fields:\n    - name: matchResources\n      type:\n        namedType: io.k8s.api.admissionregistration.v1alpha1.MatchResources\n    - name: paramRef\n      type:\n        namedType: io.k8s.api.admissionregistration.v1alpha1.ParamRef\n    - name: policyName\n      type:\n        scalar: string\n- name: io.k8s.api.admissionregistration.v1alpha1.MutatingAdmissionPolicySpec\n  map:\n    fields:\n    - name: failurePolicy\n      type:\n        scalar: string\n    - name: matchConditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1alpha1.MatchCondition\n          elementRelationship: associative\n          keys:\n          - name\n    - name: matchConstraints\n      type:\n        namedType: io.k8s.api.admissionregistration.v1alpha1.MatchResources\n    - name: mutations\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1alpha1.Mutation\n          elementRelationship: atomic\n    - name: paramKind\n      type:\n        namedType: io.k8s.api.admissionregistration.v1alpha1.ParamKind\n    - name: reinvocationPolicy\n      type:\n        scalar: string\n    - name: variables\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1alpha1.Variable\n          elementRelationship: atomic\n- name: io.k8s.api.admissionregistration.v1alpha1.Mutation\n  map:\n    fields:\n    - name: applyConfiguration\n      type:\n        namedType: io.k8s.api.admissionregistration.v1alpha1.ApplyConfiguration\n    - name: jsonPatch\n      type:\n        namedType: io.k8s.api.admissionregistration.v1alpha1.JSONPatch\n    - name: patchType\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.admissionregistration.v1alpha1.NamedRuleWithOperations\n  map:\n    fields:\n    - name: apiGroups\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: apiVersions\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: operations\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: resourceNames\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: resources\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: scope\n      type:\n        scalar: string\n    elementRelationship: atomic\n- name: io.k8s.api.admissionregistration.v1alpha1.ParamKind\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    elementRelationship: atomic\n- name: io.k8s.api.admissionregistration.v1alpha1.ParamRef\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n    - name: namespace\n      type:\n        scalar: string\n    - name: parameterNotFoundAction\n      type:\n        scalar: string\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    elementRelationship: atomic\n- name: io.k8s.api.admissionregistration.v1alpha1.TypeChecking\n  map:\n    fields:\n    - name: expressionWarnings\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1alpha1.ExpressionWarning\n          elementRelationship: atomic\n- name: io.k8s.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicy\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicySpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicyStatus\n      default: {}\n- name: io.k8s.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicyBinding\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicyBindingSpec\n      default: {}\n- name: io.k8s.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicyBindingSpec\n  map:\n    fields:\n    - name: matchResources\n      type:\n        namedType: io.k8s.api.admissionregistration.v1alpha1.MatchResources\n    - name: paramRef\n      type:\n        namedType: io.k8s.api.admissionregistration.v1alpha1.ParamRef\n    - name: policyName\n      type:\n        scalar: string\n    - name: validationActions\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n- name: io.k8s.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicySpec\n  map:\n    fields:\n    - name: auditAnnotations\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1alpha1.AuditAnnotation\n          elementRelationship: atomic\n    - name: failurePolicy\n      type:\n        scalar: string\n    - name: matchConditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1alpha1.MatchCondition\n          elementRelationship: associative\n          keys:\n          - name\n    - name: matchConstraints\n      type:\n        namedType: io.k8s.api.admissionregistration.v1alpha1.MatchResources\n    - name: paramKind\n      type:\n        namedType: io.k8s.api.admissionregistration.v1alpha1.ParamKind\n    - name: validations\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1alpha1.Validation\n          elementRelationship: atomic\n    - name: variables\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1alpha1.Variable\n          elementRelationship: associative\n          keys:\n          - name\n- name: io.k8s.api.admissionregistration.v1alpha1.ValidatingAdmissionPolicyStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Condition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: observedGeneration\n      type:\n        scalar: numeric\n    - name: typeChecking\n      type:\n        namedType: io.k8s.api.admissionregistration.v1alpha1.TypeChecking\n- name: io.k8s.api.admissionregistration.v1alpha1.Validation\n  map:\n    fields:\n    - name: expression\n      type:\n        scalar: string\n      default: \"\"\n    - name: message\n      type:\n        scalar: string\n    - name: messageExpression\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n- name: io.k8s.api.admissionregistration.v1alpha1.Variable\n  map:\n    fields:\n    - name: expression\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.admissionregistration.v1beta1.AuditAnnotation\n  map:\n    fields:\n    - name: key\n      type:\n        scalar: string\n      default: \"\"\n    - name: valueExpression\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.admissionregistration.v1beta1.ExpressionWarning\n  map:\n    fields:\n    - name: fieldRef\n      type:\n        scalar: string\n      default: \"\"\n    - name: warning\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.admissionregistration.v1beta1.MatchCondition\n  map:\n    fields:\n    - name: expression\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.admissionregistration.v1beta1.MatchResources\n  map:\n    fields:\n    - name: excludeResourceRules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1beta1.NamedRuleWithOperations\n          elementRelationship: atomic\n    - name: matchPolicy\n      type:\n        scalar: string\n    - name: namespaceSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: objectSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: resourceRules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1beta1.NamedRuleWithOperations\n          elementRelationship: atomic\n    elementRelationship: atomic\n- name: io.k8s.api.admissionregistration.v1beta1.MutatingWebhook\n  map:\n    fields:\n    - name: admissionReviewVersions\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: clientConfig\n      type:\n        namedType: io.k8s.api.admissionregistration.v1beta1.WebhookClientConfig\n      default: {}\n    - name: failurePolicy\n      type:\n        scalar: string\n    - name: matchConditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1beta1.MatchCondition\n          elementRelationship: associative\n          keys:\n          - name\n    - name: matchPolicy\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: namespaceSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: objectSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: reinvocationPolicy\n      type:\n        scalar: string\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1.RuleWithOperations\n          elementRelationship: atomic\n    - name: sideEffects\n      type:\n        scalar: string\n    - name: timeoutSeconds\n      type:\n        scalar: numeric\n- name: io.k8s.api.admissionregistration.v1beta1.MutatingWebhookConfiguration\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: webhooks\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1beta1.MutatingWebhook\n          elementRelationship: associative\n          keys:\n          - name\n- name: io.k8s.api.admissionregistration.v1beta1.NamedRuleWithOperations\n  map:\n    fields:\n    - name: apiGroups\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: apiVersions\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: operations\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: resourceNames\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: resources\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: scope\n      type:\n        scalar: string\n    elementRelationship: atomic\n- name: io.k8s.api.admissionregistration.v1beta1.ParamKind\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    elementRelationship: atomic\n- name: io.k8s.api.admissionregistration.v1beta1.ParamRef\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n    - name: namespace\n      type:\n        scalar: string\n    - name: parameterNotFoundAction\n      type:\n        scalar: string\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    elementRelationship: atomic\n- name: io.k8s.api.admissionregistration.v1beta1.ServiceReference\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: namespace\n      type:\n        scalar: string\n      default: \"\"\n    - name: path\n      type:\n        scalar: string\n    - name: port\n      type:\n        scalar: numeric\n- name: io.k8s.api.admissionregistration.v1beta1.TypeChecking\n  map:\n    fields:\n    - name: expressionWarnings\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1beta1.ExpressionWarning\n          elementRelationship: atomic\n- name: io.k8s.api.admissionregistration.v1beta1.ValidatingAdmissionPolicy\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.admissionregistration.v1beta1.ValidatingAdmissionPolicySpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.admissionregistration.v1beta1.ValidatingAdmissionPolicyStatus\n      default: {}\n- name: io.k8s.api.admissionregistration.v1beta1.ValidatingAdmissionPolicyBinding\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.admissionregistration.v1beta1.ValidatingAdmissionPolicyBindingSpec\n      default: {}\n- name: io.k8s.api.admissionregistration.v1beta1.ValidatingAdmissionPolicyBindingSpec\n  map:\n    fields:\n    - name: matchResources\n      type:\n        namedType: io.k8s.api.admissionregistration.v1beta1.MatchResources\n    - name: paramRef\n      type:\n        namedType: io.k8s.api.admissionregistration.v1beta1.ParamRef\n    - name: policyName\n      type:\n        scalar: string\n    - name: validationActions\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n- name: io.k8s.api.admissionregistration.v1beta1.ValidatingAdmissionPolicySpec\n  map:\n    fields:\n    - name: auditAnnotations\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1beta1.AuditAnnotation\n          elementRelationship: atomic\n    - name: failurePolicy\n      type:\n        scalar: string\n    - name: matchConditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1beta1.MatchCondition\n          elementRelationship: associative\n          keys:\n          - name\n    - name: matchConstraints\n      type:\n        namedType: io.k8s.api.admissionregistration.v1beta1.MatchResources\n    - name: paramKind\n      type:\n        namedType: io.k8s.api.admissionregistration.v1beta1.ParamKind\n    - name: validations\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1beta1.Validation\n          elementRelationship: atomic\n    - name: variables\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1beta1.Variable\n          elementRelationship: associative\n          keys:\n          - name\n- name: io.k8s.api.admissionregistration.v1beta1.ValidatingAdmissionPolicyStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Condition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: observedGeneration\n      type:\n        scalar: numeric\n    - name: typeChecking\n      type:\n        namedType: io.k8s.api.admissionregistration.v1beta1.TypeChecking\n- name: io.k8s.api.admissionregistration.v1beta1.ValidatingWebhook\n  map:\n    fields:\n    - name: admissionReviewVersions\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: clientConfig\n      type:\n        namedType: io.k8s.api.admissionregistration.v1beta1.WebhookClientConfig\n      default: {}\n    - name: failurePolicy\n      type:\n        scalar: string\n    - name: matchConditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1beta1.MatchCondition\n          elementRelationship: associative\n          keys:\n          - name\n    - name: matchPolicy\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: namespaceSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: objectSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1.RuleWithOperations\n          elementRelationship: atomic\n    - name: sideEffects\n      type:\n        scalar: string\n    - name: timeoutSeconds\n      type:\n        scalar: numeric\n- name: io.k8s.api.admissionregistration.v1beta1.ValidatingWebhookConfiguration\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: webhooks\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.admissionregistration.v1beta1.ValidatingWebhook\n          elementRelationship: associative\n          keys:\n          - name\n- name: io.k8s.api.admissionregistration.v1beta1.Validation\n  map:\n    fields:\n    - name: expression\n      type:\n        scalar: string\n      default: \"\"\n    - name: message\n      type:\n        scalar: string\n    - name: messageExpression\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n- name: io.k8s.api.admissionregistration.v1beta1.Variable\n  map:\n    fields:\n    - name: expression\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    elementRelationship: atomic\n- name: io.k8s.api.admissionregistration.v1beta1.WebhookClientConfig\n  map:\n    fields:\n    - name: caBundle\n      type:\n        scalar: string\n    - name: service\n      type:\n        namedType: io.k8s.api.admissionregistration.v1beta1.ServiceReference\n    - name: url\n      type:\n        scalar: string\n- name: io.k8s.api.apiserverinternal.v1alpha1.ServerStorageVersion\n  map:\n    fields:\n    - name: apiServerID\n      type:\n        scalar: string\n    - name: decodableVersions\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: encodingVersion\n      type:\n        scalar: string\n    - name: servedVersions\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n- name: io.k8s.api.apiserverinternal.v1alpha1.StorageVersion\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.apiserverinternal.v1alpha1.StorageVersionSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.apiserverinternal.v1alpha1.StorageVersionStatus\n      default: {}\n- name: io.k8s.api.apiserverinternal.v1alpha1.StorageVersionCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: observedGeneration\n      type:\n        scalar: numeric\n    - name: reason\n      type:\n        scalar: string\n      default: \"\"\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.apiserverinternal.v1alpha1.StorageVersionSpec\n  map:\n    elementType:\n      scalar: untyped\n      list:\n        elementType:\n          namedType: __untyped_atomic_\n        elementRelationship: atomic\n      map:\n        elementType:\n          namedType: __untyped_deduced_\n        elementRelationship: separable\n- name: io.k8s.api.apiserverinternal.v1alpha1.StorageVersionStatus\n  map:\n    fields:\n    - name: commonEncodingVersion\n      type:\n        scalar: string\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.apiserverinternal.v1alpha1.StorageVersionCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: storageVersions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.apiserverinternal.v1alpha1.ServerStorageVersion\n          elementRelationship: associative\n          keys:\n          - apiServerID\n- name: io.k8s.api.apps.v1.ControllerRevision\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: data\n      type:\n        namedType: __untyped_atomic_\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: revision\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.apps.v1.DaemonSet\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.apps.v1.DaemonSetSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.apps.v1.DaemonSetStatus\n      default: {}\n- name: io.k8s.api.apps.v1.DaemonSetCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.apps.v1.DaemonSetSpec\n  map:\n    fields:\n    - name: minReadySeconds\n      type:\n        scalar: numeric\n    - name: revisionHistoryLimit\n      type:\n        scalar: numeric\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: template\n      type:\n        namedType: io.k8s.api.core.v1.PodTemplateSpec\n      default: {}\n    - name: updateStrategy\n      type:\n        namedType: io.k8s.api.apps.v1.DaemonSetUpdateStrategy\n      default: {}\n- name: io.k8s.api.apps.v1.DaemonSetStatus\n  map:\n    fields:\n    - name: collisionCount\n      type:\n        scalar: numeric\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.apps.v1.DaemonSetCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: currentNumberScheduled\n      type:\n        scalar: numeric\n      default: 0\n    - name: desiredNumberScheduled\n      type:\n        scalar: numeric\n      default: 0\n    - name: numberAvailable\n      type:\n        scalar: numeric\n    - name: numberMisscheduled\n      type:\n        scalar: numeric\n      default: 0\n    - name: numberReady\n      type:\n        scalar: numeric\n      default: 0\n    - name: numberUnavailable\n      type:\n        scalar: numeric\n    - name: observedGeneration\n      type:\n        scalar: numeric\n    - name: updatedNumberScheduled\n      type:\n        scalar: numeric\n- name: io.k8s.api.apps.v1.DaemonSetUpdateStrategy\n  map:\n    fields:\n    - name: rollingUpdate\n      type:\n        namedType: io.k8s.api.apps.v1.RollingUpdateDaemonSet\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.apps.v1.Deployment\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.apps.v1.DeploymentSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.apps.v1.DeploymentStatus\n      default: {}\n- name: io.k8s.api.apps.v1.DeploymentCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: lastUpdateTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.apps.v1.DeploymentSpec\n  map:\n    fields:\n    - name: minReadySeconds\n      type:\n        scalar: numeric\n    - name: paused\n      type:\n        scalar: boolean\n    - name: progressDeadlineSeconds\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n    - name: revisionHistoryLimit\n      type:\n        scalar: numeric\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: strategy\n      type:\n        namedType: io.k8s.api.apps.v1.DeploymentStrategy\n      default: {}\n    - name: template\n      type:\n        namedType: io.k8s.api.core.v1.PodTemplateSpec\n      default: {}\n- name: io.k8s.api.apps.v1.DeploymentStatus\n  map:\n    fields:\n    - name: availableReplicas\n      type:\n        scalar: numeric\n    - name: collisionCount\n      type:\n        scalar: numeric\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.apps.v1.DeploymentCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: observedGeneration\n      type:\n        scalar: numeric\n    - name: readyReplicas\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n    - name: unavailableReplicas\n      type:\n        scalar: numeric\n    - name: updatedReplicas\n      type:\n        scalar: numeric\n- name: io.k8s.api.apps.v1.DeploymentStrategy\n  map:\n    fields:\n    - name: rollingUpdate\n      type:\n        namedType: io.k8s.api.apps.v1.RollingUpdateDeployment\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.apps.v1.ReplicaSet\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.apps.v1.ReplicaSetSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.apps.v1.ReplicaSetStatus\n      default: {}\n- name: io.k8s.api.apps.v1.ReplicaSetCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.apps.v1.ReplicaSetSpec\n  map:\n    fields:\n    - name: minReadySeconds\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: template\n      type:\n        namedType: io.k8s.api.core.v1.PodTemplateSpec\n      default: {}\n- name: io.k8s.api.apps.v1.ReplicaSetStatus\n  map:\n    fields:\n    - name: availableReplicas\n      type:\n        scalar: numeric\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.apps.v1.ReplicaSetCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: fullyLabeledReplicas\n      type:\n        scalar: numeric\n    - name: observedGeneration\n      type:\n        scalar: numeric\n    - name: readyReplicas\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.apps.v1.RollingUpdateDaemonSet\n  map:\n    fields:\n    - name: maxSurge\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n    - name: maxUnavailable\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n- name: io.k8s.api.apps.v1.RollingUpdateDeployment\n  map:\n    fields:\n    - name: maxSurge\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n    - name: maxUnavailable\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n- name: io.k8s.api.apps.v1.RollingUpdateStatefulSetStrategy\n  map:\n    fields:\n    - name: maxUnavailable\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n    - name: partition\n      type:\n        scalar: numeric\n- name: io.k8s.api.apps.v1.StatefulSet\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.apps.v1.StatefulSetSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.apps.v1.StatefulSetStatus\n      default: {}\n- name: io.k8s.api.apps.v1.StatefulSetCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.apps.v1.StatefulSetOrdinals\n  map:\n    fields:\n    - name: start\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.apps.v1.StatefulSetPersistentVolumeClaimRetentionPolicy\n  map:\n    fields:\n    - name: whenDeleted\n      type:\n        scalar: string\n    - name: whenScaled\n      type:\n        scalar: string\n- name: io.k8s.api.apps.v1.StatefulSetSpec\n  map:\n    fields:\n    - name: minReadySeconds\n      type:\n        scalar: numeric\n    - name: ordinals\n      type:\n        namedType: io.k8s.api.apps.v1.StatefulSetOrdinals\n    - name: persistentVolumeClaimRetentionPolicy\n      type:\n        namedType: io.k8s.api.apps.v1.StatefulSetPersistentVolumeClaimRetentionPolicy\n    - name: podManagementPolicy\n      type:\n        scalar: string\n    - name: replicas\n      type:\n        scalar: numeric\n    - name: revisionHistoryLimit\n      type:\n        scalar: numeric\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: serviceName\n      type:\n        scalar: string\n      default: \"\"\n    - name: template\n      type:\n        namedType: io.k8s.api.core.v1.PodTemplateSpec\n      default: {}\n    - name: updateStrategy\n      type:\n        namedType: io.k8s.api.apps.v1.StatefulSetUpdateStrategy\n      default: {}\n    - name: volumeClaimTemplates\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PersistentVolumeClaim\n          elementRelationship: atomic\n- name: io.k8s.api.apps.v1.StatefulSetStatus\n  map:\n    fields:\n    - name: availableReplicas\n      type:\n        scalar: numeric\n      default: 0\n    - name: collisionCount\n      type:\n        scalar: numeric\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.apps.v1.StatefulSetCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: currentReplicas\n      type:\n        scalar: numeric\n    - name: currentRevision\n      type:\n        scalar: string\n    - name: observedGeneration\n      type:\n        scalar: numeric\n    - name: readyReplicas\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n      default: 0\n    - name: updateRevision\n      type:\n        scalar: string\n    - name: updatedReplicas\n      type:\n        scalar: numeric\n- name: io.k8s.api.apps.v1.StatefulSetUpdateStrategy\n  map:\n    fields:\n    - name: rollingUpdate\n      type:\n        namedType: io.k8s.api.apps.v1.RollingUpdateStatefulSetStrategy\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.apps.v1beta1.ControllerRevision\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: data\n      type:\n        namedType: __untyped_atomic_\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: revision\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.apps.v1beta1.Deployment\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.apps.v1beta1.DeploymentSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.apps.v1beta1.DeploymentStatus\n      default: {}\n- name: io.k8s.api.apps.v1beta1.DeploymentCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: lastUpdateTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.apps.v1beta1.DeploymentSpec\n  map:\n    fields:\n    - name: minReadySeconds\n      type:\n        scalar: numeric\n    - name: paused\n      type:\n        scalar: boolean\n    - name: progressDeadlineSeconds\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n    - name: revisionHistoryLimit\n      type:\n        scalar: numeric\n    - name: rollbackTo\n      type:\n        namedType: io.k8s.api.apps.v1beta1.RollbackConfig\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: strategy\n      type:\n        namedType: io.k8s.api.apps.v1beta1.DeploymentStrategy\n      default: {}\n    - name: template\n      type:\n        namedType: io.k8s.api.core.v1.PodTemplateSpec\n      default: {}\n- name: io.k8s.api.apps.v1beta1.DeploymentStatus\n  map:\n    fields:\n    - name: availableReplicas\n      type:\n        scalar: numeric\n    - name: collisionCount\n      type:\n        scalar: numeric\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.apps.v1beta1.DeploymentCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: observedGeneration\n      type:\n        scalar: numeric\n    - name: readyReplicas\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n    - name: unavailableReplicas\n      type:\n        scalar: numeric\n    - name: updatedReplicas\n      type:\n        scalar: numeric\n- name: io.k8s.api.apps.v1beta1.DeploymentStrategy\n  map:\n    fields:\n    - name: rollingUpdate\n      type:\n        namedType: io.k8s.api.apps.v1beta1.RollingUpdateDeployment\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.apps.v1beta1.RollbackConfig\n  map:\n    fields:\n    - name: revision\n      type:\n        scalar: numeric\n- name: io.k8s.api.apps.v1beta1.RollingUpdateDeployment\n  map:\n    fields:\n    - name: maxSurge\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n    - name: maxUnavailable\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n- name: io.k8s.api.apps.v1beta1.RollingUpdateStatefulSetStrategy\n  map:\n    fields:\n    - name: maxUnavailable\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n    - name: partition\n      type:\n        scalar: numeric\n- name: io.k8s.api.apps.v1beta1.StatefulSet\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.apps.v1beta1.StatefulSetSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.apps.v1beta1.StatefulSetStatus\n      default: {}\n- name: io.k8s.api.apps.v1beta1.StatefulSetCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.apps.v1beta1.StatefulSetOrdinals\n  map:\n    fields:\n    - name: start\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.apps.v1beta1.StatefulSetPersistentVolumeClaimRetentionPolicy\n  map:\n    fields:\n    - name: whenDeleted\n      type:\n        scalar: string\n    - name: whenScaled\n      type:\n        scalar: string\n- name: io.k8s.api.apps.v1beta1.StatefulSetSpec\n  map:\n    fields:\n    - name: minReadySeconds\n      type:\n        scalar: numeric\n    - name: ordinals\n      type:\n        namedType: io.k8s.api.apps.v1beta1.StatefulSetOrdinals\n    - name: persistentVolumeClaimRetentionPolicy\n      type:\n        namedType: io.k8s.api.apps.v1beta1.StatefulSetPersistentVolumeClaimRetentionPolicy\n    - name: podManagementPolicy\n      type:\n        scalar: string\n    - name: replicas\n      type:\n        scalar: numeric\n    - name: revisionHistoryLimit\n      type:\n        scalar: numeric\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: serviceName\n      type:\n        scalar: string\n      default: \"\"\n    - name: template\n      type:\n        namedType: io.k8s.api.core.v1.PodTemplateSpec\n      default: {}\n    - name: updateStrategy\n      type:\n        namedType: io.k8s.api.apps.v1beta1.StatefulSetUpdateStrategy\n      default: {}\n    - name: volumeClaimTemplates\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PersistentVolumeClaim\n          elementRelationship: atomic\n- name: io.k8s.api.apps.v1beta1.StatefulSetStatus\n  map:\n    fields:\n    - name: availableReplicas\n      type:\n        scalar: numeric\n      default: 0\n    - name: collisionCount\n      type:\n        scalar: numeric\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.apps.v1beta1.StatefulSetCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: currentReplicas\n      type:\n        scalar: numeric\n    - name: currentRevision\n      type:\n        scalar: string\n    - name: observedGeneration\n      type:\n        scalar: numeric\n    - name: readyReplicas\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n      default: 0\n    - name: updateRevision\n      type:\n        scalar: string\n    - name: updatedReplicas\n      type:\n        scalar: numeric\n- name: io.k8s.api.apps.v1beta1.StatefulSetUpdateStrategy\n  map:\n    fields:\n    - name: rollingUpdate\n      type:\n        namedType: io.k8s.api.apps.v1beta1.RollingUpdateStatefulSetStrategy\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.apps.v1beta2.ControllerRevision\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: data\n      type:\n        namedType: __untyped_atomic_\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: revision\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.apps.v1beta2.DaemonSet\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.apps.v1beta2.DaemonSetSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.apps.v1beta2.DaemonSetStatus\n      default: {}\n- name: io.k8s.api.apps.v1beta2.DaemonSetCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.apps.v1beta2.DaemonSetSpec\n  map:\n    fields:\n    - name: minReadySeconds\n      type:\n        scalar: numeric\n    - name: revisionHistoryLimit\n      type:\n        scalar: numeric\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: template\n      type:\n        namedType: io.k8s.api.core.v1.PodTemplateSpec\n      default: {}\n    - name: updateStrategy\n      type:\n        namedType: io.k8s.api.apps.v1beta2.DaemonSetUpdateStrategy\n      default: {}\n- name: io.k8s.api.apps.v1beta2.DaemonSetStatus\n  map:\n    fields:\n    - name: collisionCount\n      type:\n        scalar: numeric\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.apps.v1beta2.DaemonSetCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: currentNumberScheduled\n      type:\n        scalar: numeric\n      default: 0\n    - name: desiredNumberScheduled\n      type:\n        scalar: numeric\n      default: 0\n    - name: numberAvailable\n      type:\n        scalar: numeric\n    - name: numberMisscheduled\n      type:\n        scalar: numeric\n      default: 0\n    - name: numberReady\n      type:\n        scalar: numeric\n      default: 0\n    - name: numberUnavailable\n      type:\n        scalar: numeric\n    - name: observedGeneration\n      type:\n        scalar: numeric\n    - name: updatedNumberScheduled\n      type:\n        scalar: numeric\n- name: io.k8s.api.apps.v1beta2.DaemonSetUpdateStrategy\n  map:\n    fields:\n    - name: rollingUpdate\n      type:\n        namedType: io.k8s.api.apps.v1beta2.RollingUpdateDaemonSet\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.apps.v1beta2.Deployment\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.apps.v1beta2.DeploymentSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.apps.v1beta2.DeploymentStatus\n      default: {}\n- name: io.k8s.api.apps.v1beta2.DeploymentCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: lastUpdateTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.apps.v1beta2.DeploymentSpec\n  map:\n    fields:\n    - name: minReadySeconds\n      type:\n        scalar: numeric\n    - name: paused\n      type:\n        scalar: boolean\n    - name: progressDeadlineSeconds\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n    - name: revisionHistoryLimit\n      type:\n        scalar: numeric\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: strategy\n      type:\n        namedType: io.k8s.api.apps.v1beta2.DeploymentStrategy\n      default: {}\n    - name: template\n      type:\n        namedType: io.k8s.api.core.v1.PodTemplateSpec\n      default: {}\n- name: io.k8s.api.apps.v1beta2.DeploymentStatus\n  map:\n    fields:\n    - name: availableReplicas\n      type:\n        scalar: numeric\n    - name: collisionCount\n      type:\n        scalar: numeric\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.apps.v1beta2.DeploymentCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: observedGeneration\n      type:\n        scalar: numeric\n    - name: readyReplicas\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n    - name: unavailableReplicas\n      type:\n        scalar: numeric\n    - name: updatedReplicas\n      type:\n        scalar: numeric\n- name: io.k8s.api.apps.v1beta2.DeploymentStrategy\n  map:\n    fields:\n    - name: rollingUpdate\n      type:\n        namedType: io.k8s.api.apps.v1beta2.RollingUpdateDeployment\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.apps.v1beta2.ReplicaSet\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.apps.v1beta2.ReplicaSetSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.apps.v1beta2.ReplicaSetStatus\n      default: {}\n- name: io.k8s.api.apps.v1beta2.ReplicaSetCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.apps.v1beta2.ReplicaSetSpec\n  map:\n    fields:\n    - name: minReadySeconds\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: template\n      type:\n        namedType: io.k8s.api.core.v1.PodTemplateSpec\n      default: {}\n- name: io.k8s.api.apps.v1beta2.ReplicaSetStatus\n  map:\n    fields:\n    - name: availableReplicas\n      type:\n        scalar: numeric\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.apps.v1beta2.ReplicaSetCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: fullyLabeledReplicas\n      type:\n        scalar: numeric\n    - name: observedGeneration\n      type:\n        scalar: numeric\n    - name: readyReplicas\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.apps.v1beta2.RollingUpdateDaemonSet\n  map:\n    fields:\n    - name: maxSurge\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n    - name: maxUnavailable\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n- name: io.k8s.api.apps.v1beta2.RollingUpdateDeployment\n  map:\n    fields:\n    - name: maxSurge\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n    - name: maxUnavailable\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n- name: io.k8s.api.apps.v1beta2.RollingUpdateStatefulSetStrategy\n  map:\n    fields:\n    - name: maxUnavailable\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n    - name: partition\n      type:\n        scalar: numeric\n- name: io.k8s.api.apps.v1beta2.StatefulSet\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.apps.v1beta2.StatefulSetSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.apps.v1beta2.StatefulSetStatus\n      default: {}\n- name: io.k8s.api.apps.v1beta2.StatefulSetCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.apps.v1beta2.StatefulSetOrdinals\n  map:\n    fields:\n    - name: start\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.apps.v1beta2.StatefulSetPersistentVolumeClaimRetentionPolicy\n  map:\n    fields:\n    - name: whenDeleted\n      type:\n        scalar: string\n    - name: whenScaled\n      type:\n        scalar: string\n- name: io.k8s.api.apps.v1beta2.StatefulSetSpec\n  map:\n    fields:\n    - name: minReadySeconds\n      type:\n        scalar: numeric\n    - name: ordinals\n      type:\n        namedType: io.k8s.api.apps.v1beta2.StatefulSetOrdinals\n    - name: persistentVolumeClaimRetentionPolicy\n      type:\n        namedType: io.k8s.api.apps.v1beta2.StatefulSetPersistentVolumeClaimRetentionPolicy\n    - name: podManagementPolicy\n      type:\n        scalar: string\n    - name: replicas\n      type:\n        scalar: numeric\n    - name: revisionHistoryLimit\n      type:\n        scalar: numeric\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: serviceName\n      type:\n        scalar: string\n      default: \"\"\n    - name: template\n      type:\n        namedType: io.k8s.api.core.v1.PodTemplateSpec\n      default: {}\n    - name: updateStrategy\n      type:\n        namedType: io.k8s.api.apps.v1beta2.StatefulSetUpdateStrategy\n      default: {}\n    - name: volumeClaimTemplates\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PersistentVolumeClaim\n          elementRelationship: atomic\n- name: io.k8s.api.apps.v1beta2.StatefulSetStatus\n  map:\n    fields:\n    - name: availableReplicas\n      type:\n        scalar: numeric\n      default: 0\n    - name: collisionCount\n      type:\n        scalar: numeric\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.apps.v1beta2.StatefulSetCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: currentReplicas\n      type:\n        scalar: numeric\n    - name: currentRevision\n      type:\n        scalar: string\n    - name: observedGeneration\n      type:\n        scalar: numeric\n    - name: readyReplicas\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n      default: 0\n    - name: updateRevision\n      type:\n        scalar: string\n    - name: updatedReplicas\n      type:\n        scalar: numeric\n- name: io.k8s.api.apps.v1beta2.StatefulSetUpdateStrategy\n  map:\n    fields:\n    - name: rollingUpdate\n      type:\n        namedType: io.k8s.api.apps.v1beta2.RollingUpdateStatefulSetStrategy\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.autoscaling.v1.CrossVersionObjectReference\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    elementRelationship: atomic\n- name: io.k8s.api.autoscaling.v1.HorizontalPodAutoscaler\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus\n      default: {}\n- name: io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerSpec\n  map:\n    fields:\n    - name: maxReplicas\n      type:\n        scalar: numeric\n      default: 0\n    - name: minReplicas\n      type:\n        scalar: numeric\n    - name: scaleTargetRef\n      type:\n        namedType: io.k8s.api.autoscaling.v1.CrossVersionObjectReference\n      default: {}\n    - name: targetCPUUtilizationPercentage\n      type:\n        scalar: numeric\n- name: io.k8s.api.autoscaling.v1.HorizontalPodAutoscalerStatus\n  map:\n    fields:\n    - name: currentCPUUtilizationPercentage\n      type:\n        scalar: numeric\n    - name: currentReplicas\n      type:\n        scalar: numeric\n      default: 0\n    - name: desiredReplicas\n      type:\n        scalar: numeric\n      default: 0\n    - name: lastScaleTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: observedGeneration\n      type:\n        scalar: numeric\n- name: io.k8s.api.autoscaling.v2.ContainerResourceMetricSource\n  map:\n    fields:\n    - name: container\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: target\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricTarget\n      default: {}\n- name: io.k8s.api.autoscaling.v2.ContainerResourceMetricStatus\n  map:\n    fields:\n    - name: container\n      type:\n        scalar: string\n      default: \"\"\n    - name: current\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricValueStatus\n      default: {}\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.autoscaling.v2.CrossVersionObjectReference\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.autoscaling.v2.ExternalMetricSource\n  map:\n    fields:\n    - name: metric\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricIdentifier\n      default: {}\n    - name: target\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricTarget\n      default: {}\n- name: io.k8s.api.autoscaling.v2.ExternalMetricStatus\n  map:\n    fields:\n    - name: current\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricValueStatus\n      default: {}\n    - name: metric\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricIdentifier\n      default: {}\n- name: io.k8s.api.autoscaling.v2.HPAScalingPolicy\n  map:\n    fields:\n    - name: periodSeconds\n      type:\n        scalar: numeric\n      default: 0\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n    - name: value\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.autoscaling.v2.HPAScalingRules\n  map:\n    fields:\n    - name: policies\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.autoscaling.v2.HPAScalingPolicy\n          elementRelationship: atomic\n    - name: selectPolicy\n      type:\n        scalar: string\n    - name: stabilizationWindowSeconds\n      type:\n        scalar: numeric\n- name: io.k8s.api.autoscaling.v2.HorizontalPodAutoscaler\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerStatus\n      default: {}\n- name: io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerBehavior\n  map:\n    fields:\n    - name: scaleDown\n      type:\n        namedType: io.k8s.api.autoscaling.v2.HPAScalingRules\n    - name: scaleUp\n      type:\n        namedType: io.k8s.api.autoscaling.v2.HPAScalingRules\n- name: io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerSpec\n  map:\n    fields:\n    - name: behavior\n      type:\n        namedType: io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerBehavior\n    - name: maxReplicas\n      type:\n        scalar: numeric\n      default: 0\n    - name: metrics\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.autoscaling.v2.MetricSpec\n          elementRelationship: atomic\n    - name: minReplicas\n      type:\n        scalar: numeric\n    - name: scaleTargetRef\n      type:\n        namedType: io.k8s.api.autoscaling.v2.CrossVersionObjectReference\n      default: {}\n- name: io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.autoscaling.v2.HorizontalPodAutoscalerCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: currentMetrics\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.autoscaling.v2.MetricStatus\n          elementRelationship: atomic\n    - name: currentReplicas\n      type:\n        scalar: numeric\n    - name: desiredReplicas\n      type:\n        scalar: numeric\n      default: 0\n    - name: lastScaleTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: observedGeneration\n      type:\n        scalar: numeric\n- name: io.k8s.api.autoscaling.v2.MetricIdentifier\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n- name: io.k8s.api.autoscaling.v2.MetricSpec\n  map:\n    fields:\n    - name: containerResource\n      type:\n        namedType: io.k8s.api.autoscaling.v2.ContainerResourceMetricSource\n    - name: external\n      type:\n        namedType: io.k8s.api.autoscaling.v2.ExternalMetricSource\n    - name: object\n      type:\n        namedType: io.k8s.api.autoscaling.v2.ObjectMetricSource\n    - name: pods\n      type:\n        namedType: io.k8s.api.autoscaling.v2.PodsMetricSource\n    - name: resource\n      type:\n        namedType: io.k8s.api.autoscaling.v2.ResourceMetricSource\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.autoscaling.v2.MetricStatus\n  map:\n    fields:\n    - name: containerResource\n      type:\n        namedType: io.k8s.api.autoscaling.v2.ContainerResourceMetricStatus\n    - name: external\n      type:\n        namedType: io.k8s.api.autoscaling.v2.ExternalMetricStatus\n    - name: object\n      type:\n        namedType: io.k8s.api.autoscaling.v2.ObjectMetricStatus\n    - name: pods\n      type:\n        namedType: io.k8s.api.autoscaling.v2.PodsMetricStatus\n    - name: resource\n      type:\n        namedType: io.k8s.api.autoscaling.v2.ResourceMetricStatus\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.autoscaling.v2.MetricTarget\n  map:\n    fields:\n    - name: averageUtilization\n      type:\n        scalar: numeric\n    - name: averageValue\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n    - name: value\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n- name: io.k8s.api.autoscaling.v2.MetricValueStatus\n  map:\n    fields:\n    - name: averageUtilization\n      type:\n        scalar: numeric\n    - name: averageValue\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: value\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n- name: io.k8s.api.autoscaling.v2.ObjectMetricSource\n  map:\n    fields:\n    - name: describedObject\n      type:\n        namedType: io.k8s.api.autoscaling.v2.CrossVersionObjectReference\n      default: {}\n    - name: metric\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricIdentifier\n      default: {}\n    - name: target\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricTarget\n      default: {}\n- name: io.k8s.api.autoscaling.v2.ObjectMetricStatus\n  map:\n    fields:\n    - name: current\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricValueStatus\n      default: {}\n    - name: describedObject\n      type:\n        namedType: io.k8s.api.autoscaling.v2.CrossVersionObjectReference\n      default: {}\n    - name: metric\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricIdentifier\n      default: {}\n- name: io.k8s.api.autoscaling.v2.PodsMetricSource\n  map:\n    fields:\n    - name: metric\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricIdentifier\n      default: {}\n    - name: target\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricTarget\n      default: {}\n- name: io.k8s.api.autoscaling.v2.PodsMetricStatus\n  map:\n    fields:\n    - name: current\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricValueStatus\n      default: {}\n    - name: metric\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricIdentifier\n      default: {}\n- name: io.k8s.api.autoscaling.v2.ResourceMetricSource\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: target\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricTarget\n      default: {}\n- name: io.k8s.api.autoscaling.v2.ResourceMetricStatus\n  map:\n    fields:\n    - name: current\n      type:\n        namedType: io.k8s.api.autoscaling.v2.MetricValueStatus\n      default: {}\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.autoscaling.v2beta1.ContainerResourceMetricSource\n  map:\n    fields:\n    - name: container\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: targetAverageUtilization\n      type:\n        scalar: numeric\n    - name: targetAverageValue\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n- name: io.k8s.api.autoscaling.v2beta1.ContainerResourceMetricStatus\n  map:\n    fields:\n    - name: container\n      type:\n        scalar: string\n      default: \"\"\n    - name: currentAverageUtilization\n      type:\n        scalar: numeric\n    - name: currentAverageValue\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.autoscaling.v2beta1.ExternalMetricSource\n  map:\n    fields:\n    - name: metricName\n      type:\n        scalar: string\n      default: \"\"\n    - name: metricSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: targetAverageValue\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: targetValue\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n- name: io.k8s.api.autoscaling.v2beta1.ExternalMetricStatus\n  map:\n    fields:\n    - name: currentAverageValue\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: currentValue\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: metricName\n      type:\n        scalar: string\n      default: \"\"\n    - name: metricSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n- name: io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerStatus\n      default: {}\n- name: io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerSpec\n  map:\n    fields:\n    - name: maxReplicas\n      type:\n        scalar: numeric\n      default: 0\n    - name: metrics\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.autoscaling.v2beta1.MetricSpec\n          elementRelationship: atomic\n    - name: minReplicas\n      type:\n        scalar: numeric\n    - name: scaleTargetRef\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference\n      default: {}\n- name: io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerCondition\n          elementRelationship: atomic\n    - name: currentMetrics\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.autoscaling.v2beta1.MetricStatus\n          elementRelationship: atomic\n    - name: currentReplicas\n      type:\n        scalar: numeric\n      default: 0\n    - name: desiredReplicas\n      type:\n        scalar: numeric\n      default: 0\n    - name: lastScaleTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: observedGeneration\n      type:\n        scalar: numeric\n- name: io.k8s.api.autoscaling.v2beta1.MetricSpec\n  map:\n    fields:\n    - name: containerResource\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta1.ContainerResourceMetricSource\n    - name: external\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta1.ExternalMetricSource\n    - name: object\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta1.ObjectMetricSource\n    - name: pods\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta1.PodsMetricSource\n    - name: resource\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta1.ResourceMetricSource\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.autoscaling.v2beta1.MetricStatus\n  map:\n    fields:\n    - name: containerResource\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta1.ContainerResourceMetricStatus\n    - name: external\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta1.ExternalMetricStatus\n    - name: object\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta1.ObjectMetricStatus\n    - name: pods\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta1.PodsMetricStatus\n    - name: resource\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta1.ResourceMetricStatus\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.autoscaling.v2beta1.ObjectMetricSource\n  map:\n    fields:\n    - name: averageValue\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: metricName\n      type:\n        scalar: string\n      default: \"\"\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: target\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference\n      default: {}\n    - name: targetValue\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n- name: io.k8s.api.autoscaling.v2beta1.ObjectMetricStatus\n  map:\n    fields:\n    - name: averageValue\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: currentValue\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: metricName\n      type:\n        scalar: string\n      default: \"\"\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: target\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference\n      default: {}\n- name: io.k8s.api.autoscaling.v2beta1.PodsMetricSource\n  map:\n    fields:\n    - name: metricName\n      type:\n        scalar: string\n      default: \"\"\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: targetAverageValue\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n- name: io.k8s.api.autoscaling.v2beta1.PodsMetricStatus\n  map:\n    fields:\n    - name: currentAverageValue\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: metricName\n      type:\n        scalar: string\n      default: \"\"\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n- name: io.k8s.api.autoscaling.v2beta1.ResourceMetricSource\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: targetAverageUtilization\n      type:\n        scalar: numeric\n    - name: targetAverageValue\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n- name: io.k8s.api.autoscaling.v2beta1.ResourceMetricStatus\n  map:\n    fields:\n    - name: currentAverageUtilization\n      type:\n        scalar: numeric\n    - name: currentAverageValue\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.autoscaling.v2beta2.ContainerResourceMetricSource\n  map:\n    fields:\n    - name: container\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: target\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.MetricTarget\n      default: {}\n- name: io.k8s.api.autoscaling.v2beta2.ContainerResourceMetricStatus\n  map:\n    fields:\n    - name: container\n      type:\n        scalar: string\n      default: \"\"\n    - name: current\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.MetricValueStatus\n      default: {}\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.autoscaling.v2beta2.ExternalMetricSource\n  map:\n    fields:\n    - name: metric\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.MetricIdentifier\n      default: {}\n    - name: target\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.MetricTarget\n      default: {}\n- name: io.k8s.api.autoscaling.v2beta2.ExternalMetricStatus\n  map:\n    fields:\n    - name: current\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.MetricValueStatus\n      default: {}\n    - name: metric\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.MetricIdentifier\n      default: {}\n- name: io.k8s.api.autoscaling.v2beta2.HPAScalingPolicy\n  map:\n    fields:\n    - name: periodSeconds\n      type:\n        scalar: numeric\n      default: 0\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n    - name: value\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.autoscaling.v2beta2.HPAScalingRules\n  map:\n    fields:\n    - name: policies\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.autoscaling.v2beta2.HPAScalingPolicy\n          elementRelationship: atomic\n    - name: selectPolicy\n      type:\n        scalar: string\n    - name: stabilizationWindowSeconds\n      type:\n        scalar: numeric\n- name: io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerStatus\n      default: {}\n- name: io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerBehavior\n  map:\n    fields:\n    - name: scaleDown\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.HPAScalingRules\n    - name: scaleUp\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.HPAScalingRules\n- name: io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerSpec\n  map:\n    fields:\n    - name: behavior\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerBehavior\n    - name: maxReplicas\n      type:\n        scalar: numeric\n      default: 0\n    - name: metrics\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.autoscaling.v2beta2.MetricSpec\n          elementRelationship: atomic\n    - name: minReplicas\n      type:\n        scalar: numeric\n    - name: scaleTargetRef\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference\n      default: {}\n- name: io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerCondition\n          elementRelationship: atomic\n    - name: currentMetrics\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.autoscaling.v2beta2.MetricStatus\n          elementRelationship: atomic\n    - name: currentReplicas\n      type:\n        scalar: numeric\n      default: 0\n    - name: desiredReplicas\n      type:\n        scalar: numeric\n      default: 0\n    - name: lastScaleTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: observedGeneration\n      type:\n        scalar: numeric\n- name: io.k8s.api.autoscaling.v2beta2.MetricIdentifier\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n- name: io.k8s.api.autoscaling.v2beta2.MetricSpec\n  map:\n    fields:\n    - name: containerResource\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.ContainerResourceMetricSource\n    - name: external\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.ExternalMetricSource\n    - name: object\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.ObjectMetricSource\n    - name: pods\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.PodsMetricSource\n    - name: resource\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.ResourceMetricSource\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.autoscaling.v2beta2.MetricStatus\n  map:\n    fields:\n    - name: containerResource\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.ContainerResourceMetricStatus\n    - name: external\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.ExternalMetricStatus\n    - name: object\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.ObjectMetricStatus\n    - name: pods\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.PodsMetricStatus\n    - name: resource\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.ResourceMetricStatus\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.autoscaling.v2beta2.MetricTarget\n  map:\n    fields:\n    - name: averageUtilization\n      type:\n        scalar: numeric\n    - name: averageValue\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n    - name: value\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n- name: io.k8s.api.autoscaling.v2beta2.MetricValueStatus\n  map:\n    fields:\n    - name: averageUtilization\n      type:\n        scalar: numeric\n    - name: averageValue\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: value\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n- name: io.k8s.api.autoscaling.v2beta2.ObjectMetricSource\n  map:\n    fields:\n    - name: describedObject\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference\n      default: {}\n    - name: metric\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.MetricIdentifier\n      default: {}\n    - name: target\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.MetricTarget\n      default: {}\n- name: io.k8s.api.autoscaling.v2beta2.ObjectMetricStatus\n  map:\n    fields:\n    - name: current\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.MetricValueStatus\n      default: {}\n    - name: describedObject\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference\n      default: {}\n    - name: metric\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.MetricIdentifier\n      default: {}\n- name: io.k8s.api.autoscaling.v2beta2.PodsMetricSource\n  map:\n    fields:\n    - name: metric\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.MetricIdentifier\n      default: {}\n    - name: target\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.MetricTarget\n      default: {}\n- name: io.k8s.api.autoscaling.v2beta2.PodsMetricStatus\n  map:\n    fields:\n    - name: current\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.MetricValueStatus\n      default: {}\n    - name: metric\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.MetricIdentifier\n      default: {}\n- name: io.k8s.api.autoscaling.v2beta2.ResourceMetricSource\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: target\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.MetricTarget\n      default: {}\n- name: io.k8s.api.autoscaling.v2beta2.ResourceMetricStatus\n  map:\n    fields:\n    - name: current\n      type:\n        namedType: io.k8s.api.autoscaling.v2beta2.MetricValueStatus\n      default: {}\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.batch.v1.CronJob\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.batch.v1.CronJobSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.batch.v1.CronJobStatus\n      default: {}\n- name: io.k8s.api.batch.v1.CronJobSpec\n  map:\n    fields:\n    - name: concurrencyPolicy\n      type:\n        scalar: string\n    - name: failedJobsHistoryLimit\n      type:\n        scalar: numeric\n    - name: jobTemplate\n      type:\n        namedType: io.k8s.api.batch.v1.JobTemplateSpec\n      default: {}\n    - name: schedule\n      type:\n        scalar: string\n      default: \"\"\n    - name: startingDeadlineSeconds\n      type:\n        scalar: numeric\n    - name: successfulJobsHistoryLimit\n      type:\n        scalar: numeric\n    - name: suspend\n      type:\n        scalar: boolean\n    - name: timeZone\n      type:\n        scalar: string\n- name: io.k8s.api.batch.v1.CronJobStatus\n  map:\n    fields:\n    - name: active\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ObjectReference\n          elementRelationship: atomic\n    - name: lastScheduleTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: lastSuccessfulTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n- name: io.k8s.api.batch.v1.Job\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.batch.v1.JobSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.batch.v1.JobStatus\n      default: {}\n- name: io.k8s.api.batch.v1.JobCondition\n  map:\n    fields:\n    - name: lastProbeTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.batch.v1.JobSpec\n  map:\n    fields:\n    - name: activeDeadlineSeconds\n      type:\n        scalar: numeric\n    - name: backoffLimit\n      type:\n        scalar: numeric\n    - name: backoffLimitPerIndex\n      type:\n        scalar: numeric\n    - name: completionMode\n      type:\n        scalar: string\n    - name: completions\n      type:\n        scalar: numeric\n    - name: managedBy\n      type:\n        scalar: string\n    - name: manualSelector\n      type:\n        scalar: boolean\n    - name: maxFailedIndexes\n      type:\n        scalar: numeric\n    - name: parallelism\n      type:\n        scalar: numeric\n    - name: podFailurePolicy\n      type:\n        namedType: io.k8s.api.batch.v1.PodFailurePolicy\n    - name: podReplacementPolicy\n      type:\n        scalar: string\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: successPolicy\n      type:\n        namedType: io.k8s.api.batch.v1.SuccessPolicy\n    - name: suspend\n      type:\n        scalar: boolean\n    - name: template\n      type:\n        namedType: io.k8s.api.core.v1.PodTemplateSpec\n      default: {}\n    - name: ttlSecondsAfterFinished\n      type:\n        scalar: numeric\n- name: io.k8s.api.batch.v1.JobStatus\n  map:\n    fields:\n    - name: active\n      type:\n        scalar: numeric\n    - name: completedIndexes\n      type:\n        scalar: string\n    - name: completionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.batch.v1.JobCondition\n          elementRelationship: atomic\n    - name: failed\n      type:\n        scalar: numeric\n    - name: failedIndexes\n      type:\n        scalar: string\n    - name: ready\n      type:\n        scalar: numeric\n    - name: startTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: succeeded\n      type:\n        scalar: numeric\n    - name: terminating\n      type:\n        scalar: numeric\n    - name: uncountedTerminatedPods\n      type:\n        namedType: io.k8s.api.batch.v1.UncountedTerminatedPods\n- name: io.k8s.api.batch.v1.JobTemplateSpec\n  map:\n    fields:\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.batch.v1.JobSpec\n      default: {}\n- name: io.k8s.api.batch.v1.PodFailurePolicy\n  map:\n    fields:\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.batch.v1.PodFailurePolicyRule\n          elementRelationship: atomic\n- name: io.k8s.api.batch.v1.PodFailurePolicyOnExitCodesRequirement\n  map:\n    fields:\n    - name: containerName\n      type:\n        scalar: string\n    - name: operator\n      type:\n        scalar: string\n      default: \"\"\n    - name: values\n      type:\n        list:\n          elementType:\n            scalar: numeric\n          elementRelationship: associative\n- name: io.k8s.api.batch.v1.PodFailurePolicyOnPodConditionsPattern\n  map:\n    fields:\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.batch.v1.PodFailurePolicyRule\n  map:\n    fields:\n    - name: action\n      type:\n        scalar: string\n      default: \"\"\n    - name: onExitCodes\n      type:\n        namedType: io.k8s.api.batch.v1.PodFailurePolicyOnExitCodesRequirement\n    - name: onPodConditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.batch.v1.PodFailurePolicyOnPodConditionsPattern\n          elementRelationship: atomic\n- name: io.k8s.api.batch.v1.SuccessPolicy\n  map:\n    fields:\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.batch.v1.SuccessPolicyRule\n          elementRelationship: atomic\n- name: io.k8s.api.batch.v1.SuccessPolicyRule\n  map:\n    fields:\n    - name: succeededCount\n      type:\n        scalar: numeric\n    - name: succeededIndexes\n      type:\n        scalar: string\n- name: io.k8s.api.batch.v1.UncountedTerminatedPods\n  map:\n    fields:\n    - name: failed\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: succeeded\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n- name: io.k8s.api.batch.v1beta1.CronJob\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.batch.v1beta1.CronJobSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.batch.v1beta1.CronJobStatus\n      default: {}\n- name: io.k8s.api.batch.v1beta1.CronJobSpec\n  map:\n    fields:\n    - name: concurrencyPolicy\n      type:\n        scalar: string\n    - name: failedJobsHistoryLimit\n      type:\n        scalar: numeric\n    - name: jobTemplate\n      type:\n        namedType: io.k8s.api.batch.v1beta1.JobTemplateSpec\n      default: {}\n    - name: schedule\n      type:\n        scalar: string\n      default: \"\"\n    - name: startingDeadlineSeconds\n      type:\n        scalar: numeric\n    - name: successfulJobsHistoryLimit\n      type:\n        scalar: numeric\n    - name: suspend\n      type:\n        scalar: boolean\n    - name: timeZone\n      type:\n        scalar: string\n- name: io.k8s.api.batch.v1beta1.CronJobStatus\n  map:\n    fields:\n    - name: active\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ObjectReference\n          elementRelationship: atomic\n    - name: lastScheduleTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: lastSuccessfulTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n- name: io.k8s.api.batch.v1beta1.JobTemplateSpec\n  map:\n    fields:\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.batch.v1.JobSpec\n      default: {}\n- name: io.k8s.api.certificates.v1.CertificateSigningRequest\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.certificates.v1.CertificateSigningRequestSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.certificates.v1.CertificateSigningRequestStatus\n      default: {}\n- name: io.k8s.api.certificates.v1.CertificateSigningRequestCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: lastUpdateTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.certificates.v1.CertificateSigningRequestSpec\n  map:\n    fields:\n    - name: expirationSeconds\n      type:\n        scalar: numeric\n    - name: extra\n      type:\n        map:\n          elementType:\n            list:\n              elementType:\n                scalar: string\n              elementRelationship: atomic\n    - name: groups\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: request\n      type:\n        scalar: string\n    - name: signerName\n      type:\n        scalar: string\n      default: \"\"\n    - name: uid\n      type:\n        scalar: string\n    - name: usages\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: username\n      type:\n        scalar: string\n- name: io.k8s.api.certificates.v1.CertificateSigningRequestStatus\n  map:\n    fields:\n    - name: certificate\n      type:\n        scalar: string\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.certificates.v1.CertificateSigningRequestCondition\n          elementRelationship: associative\n          keys:\n          - type\n- name: io.k8s.api.certificates.v1alpha1.ClusterTrustBundle\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.certificates.v1alpha1.ClusterTrustBundleSpec\n      default: {}\n- name: io.k8s.api.certificates.v1alpha1.ClusterTrustBundleSpec\n  map:\n    fields:\n    - name: signerName\n      type:\n        scalar: string\n    - name: trustBundle\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.certificates.v1beta1.CertificateSigningRequest\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.certificates.v1beta1.CertificateSigningRequestSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.certificates.v1beta1.CertificateSigningRequestStatus\n      default: {}\n- name: io.k8s.api.certificates.v1beta1.CertificateSigningRequestCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: lastUpdateTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.certificates.v1beta1.CertificateSigningRequestSpec\n  map:\n    fields:\n    - name: expirationSeconds\n      type:\n        scalar: numeric\n    - name: extra\n      type:\n        map:\n          elementType:\n            list:\n              elementType:\n                scalar: string\n              elementRelationship: atomic\n    - name: groups\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: request\n      type:\n        scalar: string\n    - name: signerName\n      type:\n        scalar: string\n    - name: uid\n      type:\n        scalar: string\n    - name: usages\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: username\n      type:\n        scalar: string\n- name: io.k8s.api.certificates.v1beta1.CertificateSigningRequestStatus\n  map:\n    fields:\n    - name: certificate\n      type:\n        scalar: string\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.certificates.v1beta1.CertificateSigningRequestCondition\n          elementRelationship: associative\n          keys:\n          - type\n- name: io.k8s.api.coordination.v1.Lease\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.coordination.v1.LeaseSpec\n      default: {}\n- name: io.k8s.api.coordination.v1.LeaseSpec\n  map:\n    fields:\n    - name: acquireTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\n    - name: holderIdentity\n      type:\n        scalar: string\n    - name: leaseDurationSeconds\n      type:\n        scalar: numeric\n    - name: leaseTransitions\n      type:\n        scalar: numeric\n    - name: preferredHolder\n      type:\n        scalar: string\n    - name: renewTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\n    - name: strategy\n      type:\n        scalar: string\n- name: io.k8s.api.coordination.v1alpha2.LeaseCandidate\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.coordination.v1alpha2.LeaseCandidateSpec\n      default: {}\n- name: io.k8s.api.coordination.v1alpha2.LeaseCandidateSpec\n  map:\n    fields:\n    - name: binaryVersion\n      type:\n        scalar: string\n      default: \"\"\n    - name: emulationVersion\n      type:\n        scalar: string\n    - name: leaseName\n      type:\n        scalar: string\n      default: \"\"\n    - name: pingTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\n    - name: renewTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\n    - name: strategy\n      type:\n        scalar: string\n- name: io.k8s.api.coordination.v1beta1.Lease\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.coordination.v1beta1.LeaseSpec\n      default: {}\n- name: io.k8s.api.coordination.v1beta1.LeaseSpec\n  map:\n    fields:\n    - name: acquireTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\n    - name: holderIdentity\n      type:\n        scalar: string\n    - name: leaseDurationSeconds\n      type:\n        scalar: numeric\n    - name: leaseTransitions\n      type:\n        scalar: numeric\n    - name: preferredHolder\n      type:\n        scalar: string\n    - name: renewTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\n    - name: strategy\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n    - name: partition\n      type:\n        scalar: numeric\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: volumeID\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.Affinity\n  map:\n    fields:\n    - name: nodeAffinity\n      type:\n        namedType: io.k8s.api.core.v1.NodeAffinity\n    - name: podAffinity\n      type:\n        namedType: io.k8s.api.core.v1.PodAffinity\n    - name: podAntiAffinity\n      type:\n        namedType: io.k8s.api.core.v1.PodAntiAffinity\n- name: io.k8s.api.core.v1.AppArmorProfile\n  map:\n    fields:\n    - name: localhostProfile\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n    unions:\n    - discriminator: type\n      fields:\n      - fieldName: localhostProfile\n        discriminatorValue: LocalhostProfile\n- name: io.k8s.api.core.v1.AttachedVolume\n  map:\n    fields:\n    - name: devicePath\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.AzureDiskVolumeSource\n  map:\n    fields:\n    - name: cachingMode\n      type:\n        scalar: string\n      default: ReadWrite\n    - name: diskName\n      type:\n        scalar: string\n      default: \"\"\n    - name: diskURI\n      type:\n        scalar: string\n      default: \"\"\n    - name: fsType\n      type:\n        scalar: string\n      default: ext4\n    - name: kind\n      type:\n        scalar: string\n      default: Shared\n    - name: readOnly\n      type:\n        scalar: boolean\n      default: false\n- name: io.k8s.api.core.v1.AzureFilePersistentVolumeSource\n  map:\n    fields:\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretName\n      type:\n        scalar: string\n      default: \"\"\n    - name: secretNamespace\n      type:\n        scalar: string\n    - name: shareName\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.AzureFileVolumeSource\n  map:\n    fields:\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretName\n      type:\n        scalar: string\n      default: \"\"\n    - name: shareName\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.CSIPersistentVolumeSource\n  map:\n    fields:\n    - name: controllerExpandSecretRef\n      type:\n        namedType: io.k8s.api.core.v1.SecretReference\n    - name: controllerPublishSecretRef\n      type:\n        namedType: io.k8s.api.core.v1.SecretReference\n    - name: driver\n      type:\n        scalar: string\n      default: \"\"\n    - name: fsType\n      type:\n        scalar: string\n    - name: nodeExpandSecretRef\n      type:\n        namedType: io.k8s.api.core.v1.SecretReference\n    - name: nodePublishSecretRef\n      type:\n        namedType: io.k8s.api.core.v1.SecretReference\n    - name: nodeStageSecretRef\n      type:\n        namedType: io.k8s.api.core.v1.SecretReference\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: volumeAttributes\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: volumeHandle\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.CSIVolumeSource\n  map:\n    fields:\n    - name: driver\n      type:\n        scalar: string\n      default: \"\"\n    - name: fsType\n      type:\n        scalar: string\n    - name: nodePublishSecretRef\n      type:\n        namedType: io.k8s.api.core.v1.LocalObjectReference\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: volumeAttributes\n      type:\n        map:\n          elementType:\n            scalar: string\n- name: io.k8s.api.core.v1.Capabilities\n  map:\n    fields:\n    - name: add\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: drop\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.CephFSPersistentVolumeSource\n  map:\n    fields:\n    - name: monitors\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: path\n      type:\n        scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretFile\n      type:\n        scalar: string\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.SecretReference\n    - name: user\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.CephFSVolumeSource\n  map:\n    fields:\n    - name: monitors\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: path\n      type:\n        scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretFile\n      type:\n        scalar: string\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.LocalObjectReference\n    - name: user\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.CinderPersistentVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.SecretReference\n    - name: volumeID\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.CinderVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.LocalObjectReference\n    - name: volumeID\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.ClientIPConfig\n  map:\n    fields:\n    - name: timeoutSeconds\n      type:\n        scalar: numeric\n- name: io.k8s.api.core.v1.ClusterTrustBundleProjection\n  map:\n    fields:\n    - name: labelSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: name\n      type:\n        scalar: string\n    - name: optional\n      type:\n        scalar: boolean\n    - name: path\n      type:\n        scalar: string\n      default: \"\"\n    - name: signerName\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.ComponentCondition\n  map:\n    fields:\n    - name: error\n      type:\n        scalar: string\n    - name: message\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.ComponentStatus\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ComponentCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n- name: io.k8s.api.core.v1.ConfigMap\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: binaryData\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: data\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: immutable\n      type:\n        scalar: boolean\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n- name: io.k8s.api.core.v1.ConfigMapEnvSource\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: optional\n      type:\n        scalar: boolean\n- name: io.k8s.api.core.v1.ConfigMapKeySelector\n  map:\n    fields:\n    - name: key\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: optional\n      type:\n        scalar: boolean\n    elementRelationship: atomic\n- name: io.k8s.api.core.v1.ConfigMapNodeConfigSource\n  map:\n    fields:\n    - name: kubeletConfigKey\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: namespace\n      type:\n        scalar: string\n      default: \"\"\n    - name: resourceVersion\n      type:\n        scalar: string\n    - name: uid\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.ConfigMapProjection\n  map:\n    fields:\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.KeyToPath\n          elementRelationship: atomic\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: optional\n      type:\n        scalar: boolean\n- name: io.k8s.api.core.v1.ConfigMapVolumeSource\n  map:\n    fields:\n    - name: defaultMode\n      type:\n        scalar: numeric\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.KeyToPath\n          elementRelationship: atomic\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: optional\n      type:\n        scalar: boolean\n- name: io.k8s.api.core.v1.Container\n  map:\n    fields:\n    - name: args\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: command\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: env\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.EnvVar\n          elementRelationship: associative\n          keys:\n          - name\n    - name: envFrom\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.EnvFromSource\n          elementRelationship: atomic\n    - name: image\n      type:\n        scalar: string\n    - name: imagePullPolicy\n      type:\n        scalar: string\n    - name: lifecycle\n      type:\n        namedType: io.k8s.api.core.v1.Lifecycle\n    - name: livenessProbe\n      type:\n        namedType: io.k8s.api.core.v1.Probe\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: ports\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ContainerPort\n          elementRelationship: associative\n          keys:\n          - containerPort\n          - protocol\n    - name: readinessProbe\n      type:\n        namedType: io.k8s.api.core.v1.Probe\n    - name: resizePolicy\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ContainerResizePolicy\n          elementRelationship: atomic\n    - name: resources\n      type:\n        namedType: io.k8s.api.core.v1.ResourceRequirements\n      default: {}\n    - name: restartPolicy\n      type:\n        scalar: string\n    - name: securityContext\n      type:\n        namedType: io.k8s.api.core.v1.SecurityContext\n    - name: startupProbe\n      type:\n        namedType: io.k8s.api.core.v1.Probe\n    - name: stdin\n      type:\n        scalar: boolean\n    - name: stdinOnce\n      type:\n        scalar: boolean\n    - name: terminationMessagePath\n      type:\n        scalar: string\n    - name: terminationMessagePolicy\n      type:\n        scalar: string\n    - name: tty\n      type:\n        scalar: boolean\n    - name: volumeDevices\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.VolumeDevice\n          elementRelationship: associative\n          keys:\n          - devicePath\n    - name: volumeMounts\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.VolumeMount\n          elementRelationship: associative\n          keys:\n          - mountPath\n    - name: workingDir\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.ContainerImage\n  map:\n    fields:\n    - name: names\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: sizeBytes\n      type:\n        scalar: numeric\n- name: io.k8s.api.core.v1.ContainerPort\n  map:\n    fields:\n    - name: containerPort\n      type:\n        scalar: numeric\n      default: 0\n    - name: hostIP\n      type:\n        scalar: string\n    - name: hostPort\n      type:\n        scalar: numeric\n    - name: name\n      type:\n        scalar: string\n    - name: protocol\n      type:\n        scalar: string\n      default: TCP\n- name: io.k8s.api.core.v1.ContainerResizePolicy\n  map:\n    fields:\n    - name: resourceName\n      type:\n        scalar: string\n      default: \"\"\n    - name: restartPolicy\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.ContainerState\n  map:\n    fields:\n    - name: running\n      type:\n        namedType: io.k8s.api.core.v1.ContainerStateRunning\n    - name: terminated\n      type:\n        namedType: io.k8s.api.core.v1.ContainerStateTerminated\n    - name: waiting\n      type:\n        namedType: io.k8s.api.core.v1.ContainerStateWaiting\n- name: io.k8s.api.core.v1.ContainerStateRunning\n  map:\n    fields:\n    - name: startedAt\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n- name: io.k8s.api.core.v1.ContainerStateTerminated\n  map:\n    fields:\n    - name: containerID\n      type:\n        scalar: string\n    - name: exitCode\n      type:\n        scalar: numeric\n      default: 0\n    - name: finishedAt\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: signal\n      type:\n        scalar: numeric\n    - name: startedAt\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n- name: io.k8s.api.core.v1.ContainerStateWaiting\n  map:\n    fields:\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.ContainerStatus\n  map:\n    fields:\n    - name: allocatedResources\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: allocatedResourcesStatus\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ResourceStatus\n          elementRelationship: associative\n          keys:\n          - name\n    - name: containerID\n      type:\n        scalar: string\n    - name: image\n      type:\n        scalar: string\n      default: \"\"\n    - name: imageID\n      type:\n        scalar: string\n      default: \"\"\n    - name: lastState\n      type:\n        namedType: io.k8s.api.core.v1.ContainerState\n      default: {}\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: ready\n      type:\n        scalar: boolean\n      default: false\n    - name: resources\n      type:\n        namedType: io.k8s.api.core.v1.ResourceRequirements\n    - name: restartCount\n      type:\n        scalar: numeric\n      default: 0\n    - name: started\n      type:\n        scalar: boolean\n    - name: state\n      type:\n        namedType: io.k8s.api.core.v1.ContainerState\n      default: {}\n    - name: user\n      type:\n        namedType: io.k8s.api.core.v1.ContainerUser\n    - name: volumeMounts\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.VolumeMountStatus\n          elementRelationship: associative\n          keys:\n          - mountPath\n- name: io.k8s.api.core.v1.ContainerUser\n  map:\n    fields:\n    - name: linux\n      type:\n        namedType: io.k8s.api.core.v1.LinuxContainerUser\n- name: io.k8s.api.core.v1.DaemonEndpoint\n  map:\n    fields:\n    - name: Port\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.core.v1.DownwardAPIProjection\n  map:\n    fields:\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.DownwardAPIVolumeFile\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.DownwardAPIVolumeFile\n  map:\n    fields:\n    - name: fieldRef\n      type:\n        namedType: io.k8s.api.core.v1.ObjectFieldSelector\n    - name: mode\n      type:\n        scalar: numeric\n    - name: path\n      type:\n        scalar: string\n      default: \"\"\n    - name: resourceFieldRef\n      type:\n        namedType: io.k8s.api.core.v1.ResourceFieldSelector\n- name: io.k8s.api.core.v1.DownwardAPIVolumeSource\n  map:\n    fields:\n    - name: defaultMode\n      type:\n        scalar: numeric\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.DownwardAPIVolumeFile\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.EmptyDirVolumeSource\n  map:\n    fields:\n    - name: medium\n      type:\n        scalar: string\n    - name: sizeLimit\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n- name: io.k8s.api.core.v1.EndpointAddress\n  map:\n    fields:\n    - name: hostname\n      type:\n        scalar: string\n    - name: ip\n      type:\n        scalar: string\n      default: \"\"\n    - name: nodeName\n      type:\n        scalar: string\n    - name: targetRef\n      type:\n        namedType: io.k8s.api.core.v1.ObjectReference\n    elementRelationship: atomic\n- name: io.k8s.api.core.v1.EndpointPort\n  map:\n    fields:\n    - name: appProtocol\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n    - name: port\n      type:\n        scalar: numeric\n      default: 0\n    - name: protocol\n      type:\n        scalar: string\n    elementRelationship: atomic\n- name: io.k8s.api.core.v1.EndpointSubset\n  map:\n    fields:\n    - name: addresses\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.EndpointAddress\n          elementRelationship: atomic\n    - name: notReadyAddresses\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.EndpointAddress\n          elementRelationship: atomic\n    - name: ports\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.EndpointPort\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.Endpoints\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: subsets\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.EndpointSubset\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.EnvFromSource\n  map:\n    fields:\n    - name: configMapRef\n      type:\n        namedType: io.k8s.api.core.v1.ConfigMapEnvSource\n    - name: prefix\n      type:\n        scalar: string\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.SecretEnvSource\n- name: io.k8s.api.core.v1.EnvVar\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: value\n      type:\n        scalar: string\n    - name: valueFrom\n      type:\n        namedType: io.k8s.api.core.v1.EnvVarSource\n- name: io.k8s.api.core.v1.EnvVarSource\n  map:\n    fields:\n    - name: configMapKeyRef\n      type:\n        namedType: io.k8s.api.core.v1.ConfigMapKeySelector\n    - name: fieldRef\n      type:\n        namedType: io.k8s.api.core.v1.ObjectFieldSelector\n    - name: resourceFieldRef\n      type:\n        namedType: io.k8s.api.core.v1.ResourceFieldSelector\n    - name: secretKeyRef\n      type:\n        namedType: io.k8s.api.core.v1.SecretKeySelector\n- name: io.k8s.api.core.v1.EphemeralContainer\n  map:\n    fields:\n    - name: args\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: command\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: env\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.EnvVar\n          elementRelationship: associative\n          keys:\n          - name\n    - name: envFrom\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.EnvFromSource\n          elementRelationship: atomic\n    - name: image\n      type:\n        scalar: string\n    - name: imagePullPolicy\n      type:\n        scalar: string\n    - name: lifecycle\n      type:\n        namedType: io.k8s.api.core.v1.Lifecycle\n    - name: livenessProbe\n      type:\n        namedType: io.k8s.api.core.v1.Probe\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: ports\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ContainerPort\n          elementRelationship: associative\n          keys:\n          - containerPort\n          - protocol\n    - name: readinessProbe\n      type:\n        namedType: io.k8s.api.core.v1.Probe\n    - name: resizePolicy\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ContainerResizePolicy\n          elementRelationship: atomic\n    - name: resources\n      type:\n        namedType: io.k8s.api.core.v1.ResourceRequirements\n      default: {}\n    - name: restartPolicy\n      type:\n        scalar: string\n    - name: securityContext\n      type:\n        namedType: io.k8s.api.core.v1.SecurityContext\n    - name: startupProbe\n      type:\n        namedType: io.k8s.api.core.v1.Probe\n    - name: stdin\n      type:\n        scalar: boolean\n    - name: stdinOnce\n      type:\n        scalar: boolean\n    - name: targetContainerName\n      type:\n        scalar: string\n    - name: terminationMessagePath\n      type:\n        scalar: string\n    - name: terminationMessagePolicy\n      type:\n        scalar: string\n    - name: tty\n      type:\n        scalar: boolean\n    - name: volumeDevices\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.VolumeDevice\n          elementRelationship: associative\n          keys:\n          - devicePath\n    - name: volumeMounts\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.VolumeMount\n          elementRelationship: associative\n          keys:\n          - mountPath\n    - name: workingDir\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.EphemeralVolumeSource\n  map:\n    fields:\n    - name: volumeClaimTemplate\n      type:\n        namedType: io.k8s.api.core.v1.PersistentVolumeClaimTemplate\n- name: io.k8s.api.core.v1.Event\n  map:\n    fields:\n    - name: action\n      type:\n        scalar: string\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: count\n      type:\n        scalar: numeric\n    - name: eventTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\n    - name: firstTimestamp\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: involvedObject\n      type:\n        namedType: io.k8s.api.core.v1.ObjectReference\n      default: {}\n    - name: kind\n      type:\n        scalar: string\n    - name: lastTimestamp\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: reason\n      type:\n        scalar: string\n    - name: related\n      type:\n        namedType: io.k8s.api.core.v1.ObjectReference\n    - name: reportingComponent\n      type:\n        scalar: string\n      default: \"\"\n    - name: reportingInstance\n      type:\n        scalar: string\n      default: \"\"\n    - name: series\n      type:\n        namedType: io.k8s.api.core.v1.EventSeries\n    - name: source\n      type:\n        namedType: io.k8s.api.core.v1.EventSource\n      default: {}\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.EventSeries\n  map:\n    fields:\n    - name: count\n      type:\n        scalar: numeric\n    - name: lastObservedTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\n- name: io.k8s.api.core.v1.EventSource\n  map:\n    fields:\n    - name: component\n      type:\n        scalar: string\n    - name: host\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.ExecAction\n  map:\n    fields:\n    - name: command\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.FCVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n    - name: lun\n      type:\n        scalar: numeric\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: targetWWNs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: wwids\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.FlexPersistentVolumeSource\n  map:\n    fields:\n    - name: driver\n      type:\n        scalar: string\n      default: \"\"\n    - name: fsType\n      type:\n        scalar: string\n    - name: options\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.SecretReference\n- name: io.k8s.api.core.v1.FlexVolumeSource\n  map:\n    fields:\n    - name: driver\n      type:\n        scalar: string\n      default: \"\"\n    - name: fsType\n      type:\n        scalar: string\n    - name: options\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.LocalObjectReference\n- name: io.k8s.api.core.v1.FlockerVolumeSource\n  map:\n    fields:\n    - name: datasetName\n      type:\n        scalar: string\n    - name: datasetUUID\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.GCEPersistentDiskVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n    - name: partition\n      type:\n        scalar: numeric\n    - name: pdName\n      type:\n        scalar: string\n      default: \"\"\n    - name: readOnly\n      type:\n        scalar: boolean\n- name: io.k8s.api.core.v1.GRPCAction\n  map:\n    fields:\n    - name: port\n      type:\n        scalar: numeric\n      default: 0\n    - name: service\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.GitRepoVolumeSource\n  map:\n    fields:\n    - name: directory\n      type:\n        scalar: string\n    - name: repository\n      type:\n        scalar: string\n      default: \"\"\n    - name: revision\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.GlusterfsPersistentVolumeSource\n  map:\n    fields:\n    - name: endpoints\n      type:\n        scalar: string\n      default: \"\"\n    - name: endpointsNamespace\n      type:\n        scalar: string\n    - name: path\n      type:\n        scalar: string\n      default: \"\"\n    - name: readOnly\n      type:\n        scalar: boolean\n- name: io.k8s.api.core.v1.GlusterfsVolumeSource\n  map:\n    fields:\n    - name: endpoints\n      type:\n        scalar: string\n      default: \"\"\n    - name: path\n      type:\n        scalar: string\n      default: \"\"\n    - name: readOnly\n      type:\n        scalar: boolean\n- name: io.k8s.api.core.v1.HTTPGetAction\n  map:\n    fields:\n    - name: host\n      type:\n        scalar: string\n    - name: httpHeaders\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.HTTPHeader\n          elementRelationship: atomic\n    - name: path\n      type:\n        scalar: string\n    - name: port\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n    - name: scheme\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.HTTPHeader\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: value\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.HostAlias\n  map:\n    fields:\n    - name: hostnames\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: ip\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.HostIP\n  map:\n    fields:\n    - name: ip\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.HostPathVolumeSource\n  map:\n    fields:\n    - name: path\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.ISCSIPersistentVolumeSource\n  map:\n    fields:\n    - name: chapAuthDiscovery\n      type:\n        scalar: boolean\n    - name: chapAuthSession\n      type:\n        scalar: boolean\n    - name: fsType\n      type:\n        scalar: string\n    - name: initiatorName\n      type:\n        scalar: string\n    - name: iqn\n      type:\n        scalar: string\n      default: \"\"\n    - name: iscsiInterface\n      type:\n        scalar: string\n      default: default\n    - name: lun\n      type:\n        scalar: numeric\n      default: 0\n    - name: portals\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.SecretReference\n    - name: targetPortal\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.ISCSIVolumeSource\n  map:\n    fields:\n    - name: chapAuthDiscovery\n      type:\n        scalar: boolean\n    - name: chapAuthSession\n      type:\n        scalar: boolean\n    - name: fsType\n      type:\n        scalar: string\n    - name: initiatorName\n      type:\n        scalar: string\n    - name: iqn\n      type:\n        scalar: string\n      default: \"\"\n    - name: iscsiInterface\n      type:\n        scalar: string\n      default: default\n    - name: lun\n      type:\n        scalar: numeric\n      default: 0\n    - name: portals\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.LocalObjectReference\n    - name: targetPortal\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.ImageVolumeSource\n  map:\n    fields:\n    - name: pullPolicy\n      type:\n        scalar: string\n    - name: reference\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.KeyToPath\n  map:\n    fields:\n    - name: key\n      type:\n        scalar: string\n      default: \"\"\n    - name: mode\n      type:\n        scalar: numeric\n    - name: path\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.Lifecycle\n  map:\n    fields:\n    - name: postStart\n      type:\n        namedType: io.k8s.api.core.v1.LifecycleHandler\n    - name: preStop\n      type:\n        namedType: io.k8s.api.core.v1.LifecycleHandler\n- name: io.k8s.api.core.v1.LifecycleHandler\n  map:\n    fields:\n    - name: exec\n      type:\n        namedType: io.k8s.api.core.v1.ExecAction\n    - name: httpGet\n      type:\n        namedType: io.k8s.api.core.v1.HTTPGetAction\n    - name: sleep\n      type:\n        namedType: io.k8s.api.core.v1.SleepAction\n    - name: tcpSocket\n      type:\n        namedType: io.k8s.api.core.v1.TCPSocketAction\n- name: io.k8s.api.core.v1.LimitRange\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.core.v1.LimitRangeSpec\n      default: {}\n- name: io.k8s.api.core.v1.LimitRangeItem\n  map:\n    fields:\n    - name: default\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: defaultRequest\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: max\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: maxLimitRequestRatio\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: min\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.LimitRangeSpec\n  map:\n    fields:\n    - name: limits\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.LimitRangeItem\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.LinuxContainerUser\n  map:\n    fields:\n    - name: gid\n      type:\n        scalar: numeric\n      default: 0\n    - name: supplementalGroups\n      type:\n        list:\n          elementType:\n            scalar: numeric\n          elementRelationship: atomic\n    - name: uid\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.core.v1.LoadBalancerIngress\n  map:\n    fields:\n    - name: hostname\n      type:\n        scalar: string\n    - name: ip\n      type:\n        scalar: string\n    - name: ipMode\n      type:\n        scalar: string\n    - name: ports\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PortStatus\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.LoadBalancerStatus\n  map:\n    fields:\n    - name: ingress\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.LoadBalancerIngress\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.LocalObjectReference\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    elementRelationship: atomic\n- name: io.k8s.api.core.v1.LocalVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n    - name: path\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.ModifyVolumeStatus\n  map:\n    fields:\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: targetVolumeAttributesClassName\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.NFSVolumeSource\n  map:\n    fields:\n    - name: path\n      type:\n        scalar: string\n      default: \"\"\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: server\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.Namespace\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.core.v1.NamespaceSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.core.v1.NamespaceStatus\n      default: {}\n- name: io.k8s.api.core.v1.NamespaceCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.NamespaceSpec\n  map:\n    fields:\n    - name: finalizers\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.NamespaceStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.NamespaceCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: phase\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.Node\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.core.v1.NodeSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.core.v1.NodeStatus\n      default: {}\n- name: io.k8s.api.core.v1.NodeAddress\n  map:\n    fields:\n    - name: address\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.NodeAffinity\n  map:\n    fields:\n    - name: preferredDuringSchedulingIgnoredDuringExecution\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PreferredSchedulingTerm\n          elementRelationship: atomic\n    - name: requiredDuringSchedulingIgnoredDuringExecution\n      type:\n        namedType: io.k8s.api.core.v1.NodeSelector\n- name: io.k8s.api.core.v1.NodeCondition\n  map:\n    fields:\n    - name: lastHeartbeatTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.NodeConfigSource\n  map:\n    fields:\n    - name: configMap\n      type:\n        namedType: io.k8s.api.core.v1.ConfigMapNodeConfigSource\n- name: io.k8s.api.core.v1.NodeConfigStatus\n  map:\n    fields:\n    - name: active\n      type:\n        namedType: io.k8s.api.core.v1.NodeConfigSource\n    - name: assigned\n      type:\n        namedType: io.k8s.api.core.v1.NodeConfigSource\n    - name: error\n      type:\n        scalar: string\n    - name: lastKnownGood\n      type:\n        namedType: io.k8s.api.core.v1.NodeConfigSource\n- name: io.k8s.api.core.v1.NodeDaemonEndpoints\n  map:\n    fields:\n    - name: kubeletEndpoint\n      type:\n        namedType: io.k8s.api.core.v1.DaemonEndpoint\n      default: {}\n- name: io.k8s.api.core.v1.NodeFeatures\n  map:\n    fields:\n    - name: supplementalGroupsPolicy\n      type:\n        scalar: boolean\n- name: io.k8s.api.core.v1.NodeRuntimeHandler\n  map:\n    fields:\n    - name: features\n      type:\n        namedType: io.k8s.api.core.v1.NodeRuntimeHandlerFeatures\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.NodeRuntimeHandlerFeatures\n  map:\n    fields:\n    - name: recursiveReadOnlyMounts\n      type:\n        scalar: boolean\n    - name: userNamespaces\n      type:\n        scalar: boolean\n- name: io.k8s.api.core.v1.NodeSelector\n  map:\n    fields:\n    - name: nodeSelectorTerms\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.NodeSelectorTerm\n          elementRelationship: atomic\n    elementRelationship: atomic\n- name: io.k8s.api.core.v1.NodeSelectorRequirement\n  map:\n    fields:\n    - name: key\n      type:\n        scalar: string\n      default: \"\"\n    - name: operator\n      type:\n        scalar: string\n      default: \"\"\n    - name: values\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.NodeSelectorTerm\n  map:\n    fields:\n    - name: matchExpressions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.NodeSelectorRequirement\n          elementRelationship: atomic\n    - name: matchFields\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.NodeSelectorRequirement\n          elementRelationship: atomic\n    elementRelationship: atomic\n- name: io.k8s.api.core.v1.NodeSpec\n  map:\n    fields:\n    - name: configSource\n      type:\n        namedType: io.k8s.api.core.v1.NodeConfigSource\n    - name: externalID\n      type:\n        scalar: string\n    - name: podCIDR\n      type:\n        scalar: string\n    - name: podCIDRs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: providerID\n      type:\n        scalar: string\n    - name: taints\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.Taint\n          elementRelationship: atomic\n    - name: unschedulable\n      type:\n        scalar: boolean\n- name: io.k8s.api.core.v1.NodeStatus\n  map:\n    fields:\n    - name: addresses\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.NodeAddress\n          elementRelationship: associative\n          keys:\n          - type\n    - name: allocatable\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: capacity\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.NodeCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: config\n      type:\n        namedType: io.k8s.api.core.v1.NodeConfigStatus\n    - name: daemonEndpoints\n      type:\n        namedType: io.k8s.api.core.v1.NodeDaemonEndpoints\n      default: {}\n    - name: features\n      type:\n        namedType: io.k8s.api.core.v1.NodeFeatures\n    - name: images\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ContainerImage\n          elementRelationship: atomic\n    - name: nodeInfo\n      type:\n        namedType: io.k8s.api.core.v1.NodeSystemInfo\n      default: {}\n    - name: phase\n      type:\n        scalar: string\n    - name: runtimeHandlers\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.NodeRuntimeHandler\n          elementRelationship: atomic\n    - name: volumesAttached\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.AttachedVolume\n          elementRelationship: atomic\n    - name: volumesInUse\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.NodeSystemInfo\n  map:\n    fields:\n    - name: architecture\n      type:\n        scalar: string\n      default: \"\"\n    - name: bootID\n      type:\n        scalar: string\n      default: \"\"\n    - name: containerRuntimeVersion\n      type:\n        scalar: string\n      default: \"\"\n    - name: kernelVersion\n      type:\n        scalar: string\n      default: \"\"\n    - name: kubeProxyVersion\n      type:\n        scalar: string\n      default: \"\"\n    - name: kubeletVersion\n      type:\n        scalar: string\n      default: \"\"\n    - name: machineID\n      type:\n        scalar: string\n      default: \"\"\n    - name: operatingSystem\n      type:\n        scalar: string\n      default: \"\"\n    - name: osImage\n      type:\n        scalar: string\n      default: \"\"\n    - name: systemUUID\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.ObjectFieldSelector\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: fieldPath\n      type:\n        scalar: string\n      default: \"\"\n    elementRelationship: atomic\n- name: io.k8s.api.core.v1.ObjectReference\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: fieldPath\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n    - name: namespace\n      type:\n        scalar: string\n    - name: resourceVersion\n      type:\n        scalar: string\n    - name: uid\n      type:\n        scalar: string\n    elementRelationship: atomic\n- name: io.k8s.api.core.v1.PersistentVolume\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.core.v1.PersistentVolumeSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.core.v1.PersistentVolumeStatus\n      default: {}\n- name: io.k8s.api.core.v1.PersistentVolumeClaim\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.core.v1.PersistentVolumeClaimSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.core.v1.PersistentVolumeClaimStatus\n      default: {}\n- name: io.k8s.api.core.v1.PersistentVolumeClaimCondition\n  map:\n    fields:\n    - name: lastProbeTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.PersistentVolumeClaimSpec\n  map:\n    fields:\n    - name: accessModes\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: dataSource\n      type:\n        namedType: io.k8s.api.core.v1.TypedLocalObjectReference\n    - name: dataSourceRef\n      type:\n        namedType: io.k8s.api.core.v1.TypedObjectReference\n    - name: resources\n      type:\n        namedType: io.k8s.api.core.v1.VolumeResourceRequirements\n      default: {}\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: storageClassName\n      type:\n        scalar: string\n    - name: volumeAttributesClassName\n      type:\n        scalar: string\n    - name: volumeMode\n      type:\n        scalar: string\n    - name: volumeName\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.PersistentVolumeClaimStatus\n  map:\n    fields:\n    - name: accessModes\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: allocatedResourceStatuses\n      type:\n        map:\n          elementType:\n            scalar: string\n          elementRelationship: separable\n    - name: allocatedResources\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: capacity\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PersistentVolumeClaimCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: currentVolumeAttributesClassName\n      type:\n        scalar: string\n    - name: modifyVolumeStatus\n      type:\n        namedType: io.k8s.api.core.v1.ModifyVolumeStatus\n    - name: phase\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.PersistentVolumeClaimTemplate\n  map:\n    fields:\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.core.v1.PersistentVolumeClaimSpec\n      default: {}\n- name: io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource\n  map:\n    fields:\n    - name: claimName\n      type:\n        scalar: string\n      default: \"\"\n    - name: readOnly\n      type:\n        scalar: boolean\n- name: io.k8s.api.core.v1.PersistentVolumeSpec\n  map:\n    fields:\n    - name: accessModes\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: awsElasticBlockStore\n      type:\n        namedType: io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource\n    - name: azureDisk\n      type:\n        namedType: io.k8s.api.core.v1.AzureDiskVolumeSource\n    - name: azureFile\n      type:\n        namedType: io.k8s.api.core.v1.AzureFilePersistentVolumeSource\n    - name: capacity\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: cephfs\n      type:\n        namedType: io.k8s.api.core.v1.CephFSPersistentVolumeSource\n    - name: cinder\n      type:\n        namedType: io.k8s.api.core.v1.CinderPersistentVolumeSource\n    - name: claimRef\n      type:\n        namedType: io.k8s.api.core.v1.ObjectReference\n        elementRelationship: separable\n    - name: csi\n      type:\n        namedType: io.k8s.api.core.v1.CSIPersistentVolumeSource\n    - name: fc\n      type:\n        namedType: io.k8s.api.core.v1.FCVolumeSource\n    - name: flexVolume\n      type:\n        namedType: io.k8s.api.core.v1.FlexPersistentVolumeSource\n    - name: flocker\n      type:\n        namedType: io.k8s.api.core.v1.FlockerVolumeSource\n    - name: gcePersistentDisk\n      type:\n        namedType: io.k8s.api.core.v1.GCEPersistentDiskVolumeSource\n    - name: glusterfs\n      type:\n        namedType: io.k8s.api.core.v1.GlusterfsPersistentVolumeSource\n    - name: hostPath\n      type:\n        namedType: io.k8s.api.core.v1.HostPathVolumeSource\n    - name: iscsi\n      type:\n        namedType: io.k8s.api.core.v1.ISCSIPersistentVolumeSource\n    - name: local\n      type:\n        namedType: io.k8s.api.core.v1.LocalVolumeSource\n    - name: mountOptions\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: nfs\n      type:\n        namedType: io.k8s.api.core.v1.NFSVolumeSource\n    - name: nodeAffinity\n      type:\n        namedType: io.k8s.api.core.v1.VolumeNodeAffinity\n    - name: persistentVolumeReclaimPolicy\n      type:\n        scalar: string\n    - name: photonPersistentDisk\n      type:\n        namedType: io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\n    - name: portworxVolume\n      type:\n        namedType: io.k8s.api.core.v1.PortworxVolumeSource\n    - name: quobyte\n      type:\n        namedType: io.k8s.api.core.v1.QuobyteVolumeSource\n    - name: rbd\n      type:\n        namedType: io.k8s.api.core.v1.RBDPersistentVolumeSource\n    - name: scaleIO\n      type:\n        namedType: io.k8s.api.core.v1.ScaleIOPersistentVolumeSource\n    - name: storageClassName\n      type:\n        scalar: string\n    - name: storageos\n      type:\n        namedType: io.k8s.api.core.v1.StorageOSPersistentVolumeSource\n    - name: volumeAttributesClassName\n      type:\n        scalar: string\n    - name: volumeMode\n      type:\n        scalar: string\n    - name: vsphereVolume\n      type:\n        namedType: io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\n- name: io.k8s.api.core.v1.PersistentVolumeStatus\n  map:\n    fields:\n    - name: lastPhaseTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: phase\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n    - name: pdID\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.Pod\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.core.v1.PodSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.core.v1.PodStatus\n      default: {}\n- name: io.k8s.api.core.v1.PodAffinity\n  map:\n    fields:\n    - name: preferredDuringSchedulingIgnoredDuringExecution\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.WeightedPodAffinityTerm\n          elementRelationship: atomic\n    - name: requiredDuringSchedulingIgnoredDuringExecution\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PodAffinityTerm\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.PodAffinityTerm\n  map:\n    fields:\n    - name: labelSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: matchLabelKeys\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: mismatchLabelKeys\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: namespaceSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: namespaces\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: topologyKey\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.PodAntiAffinity\n  map:\n    fields:\n    - name: preferredDuringSchedulingIgnoredDuringExecution\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.WeightedPodAffinityTerm\n          elementRelationship: atomic\n    - name: requiredDuringSchedulingIgnoredDuringExecution\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PodAffinityTerm\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.PodCondition\n  map:\n    fields:\n    - name: lastProbeTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.PodDNSConfig\n  map:\n    fields:\n    - name: nameservers\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: options\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PodDNSConfigOption\n          elementRelationship: atomic\n    - name: searches\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.PodDNSConfigOption\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n    - name: value\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.PodIP\n  map:\n    fields:\n    - name: ip\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.PodOS\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.PodReadinessGate\n  map:\n    fields:\n    - name: conditionType\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.PodResourceClaim\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: resourceClaimName\n      type:\n        scalar: string\n    - name: resourceClaimTemplateName\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.PodResourceClaimStatus\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: resourceClaimName\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.PodSchedulingGate\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.PodSecurityContext\n  map:\n    fields:\n    - name: appArmorProfile\n      type:\n        namedType: io.k8s.api.core.v1.AppArmorProfile\n    - name: fsGroup\n      type:\n        scalar: numeric\n    - name: fsGroupChangePolicy\n      type:\n        scalar: string\n    - name: runAsGroup\n      type:\n        scalar: numeric\n    - name: runAsNonRoot\n      type:\n        scalar: boolean\n    - name: runAsUser\n      type:\n        scalar: numeric\n    - name: seLinuxChangePolicy\n      type:\n        scalar: string\n    - name: seLinuxOptions\n      type:\n        namedType: io.k8s.api.core.v1.SELinuxOptions\n    - name: seccompProfile\n      type:\n        namedType: io.k8s.api.core.v1.SeccompProfile\n    - name: supplementalGroups\n      type:\n        list:\n          elementType:\n            scalar: numeric\n          elementRelationship: atomic\n    - name: supplementalGroupsPolicy\n      type:\n        scalar: string\n    - name: sysctls\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.Sysctl\n          elementRelationship: atomic\n    - name: windowsOptions\n      type:\n        namedType: io.k8s.api.core.v1.WindowsSecurityContextOptions\n- name: io.k8s.api.core.v1.PodSpec\n  map:\n    fields:\n    - name: activeDeadlineSeconds\n      type:\n        scalar: numeric\n    - name: affinity\n      type:\n        namedType: io.k8s.api.core.v1.Affinity\n    - name: automountServiceAccountToken\n      type:\n        scalar: boolean\n    - name: containers\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.Container\n          elementRelationship: associative\n          keys:\n          - name\n    - name: dnsConfig\n      type:\n        namedType: io.k8s.api.core.v1.PodDNSConfig\n    - name: dnsPolicy\n      type:\n        scalar: string\n    - name: enableServiceLinks\n      type:\n        scalar: boolean\n    - name: ephemeralContainers\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.EphemeralContainer\n          elementRelationship: associative\n          keys:\n          - name\n    - name: hostAliases\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.HostAlias\n          elementRelationship: associative\n          keys:\n          - ip\n    - name: hostIPC\n      type:\n        scalar: boolean\n    - name: hostNetwork\n      type:\n        scalar: boolean\n    - name: hostPID\n      type:\n        scalar: boolean\n    - name: hostUsers\n      type:\n        scalar: boolean\n    - name: hostname\n      type:\n        scalar: string\n    - name: imagePullSecrets\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.LocalObjectReference\n          elementRelationship: associative\n          keys:\n          - name\n    - name: initContainers\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.Container\n          elementRelationship: associative\n          keys:\n          - name\n    - name: nodeName\n      type:\n        scalar: string\n    - name: nodeSelector\n      type:\n        map:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: os\n      type:\n        namedType: io.k8s.api.core.v1.PodOS\n    - name: overhead\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: preemptionPolicy\n      type:\n        scalar: string\n    - name: priority\n      type:\n        scalar: numeric\n    - name: priorityClassName\n      type:\n        scalar: string\n    - name: readinessGates\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PodReadinessGate\n          elementRelationship: atomic\n    - name: resourceClaims\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PodResourceClaim\n          elementRelationship: associative\n          keys:\n          - name\n    - name: resources\n      type:\n        namedType: io.k8s.api.core.v1.ResourceRequirements\n    - name: restartPolicy\n      type:\n        scalar: string\n    - name: runtimeClassName\n      type:\n        scalar: string\n    - name: schedulerName\n      type:\n        scalar: string\n    - name: schedulingGates\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PodSchedulingGate\n          elementRelationship: associative\n          keys:\n          - name\n    - name: securityContext\n      type:\n        namedType: io.k8s.api.core.v1.PodSecurityContext\n    - name: serviceAccount\n      type:\n        scalar: string\n    - name: serviceAccountName\n      type:\n        scalar: string\n    - name: setHostnameAsFQDN\n      type:\n        scalar: boolean\n    - name: shareProcessNamespace\n      type:\n        scalar: boolean\n    - name: subdomain\n      type:\n        scalar: string\n    - name: terminationGracePeriodSeconds\n      type:\n        scalar: numeric\n    - name: tolerations\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.Toleration\n          elementRelationship: atomic\n    - name: topologySpreadConstraints\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.TopologySpreadConstraint\n          elementRelationship: associative\n          keys:\n          - topologyKey\n          - whenUnsatisfiable\n    - name: volumes\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.Volume\n          elementRelationship: associative\n          keys:\n          - name\n- name: io.k8s.api.core.v1.PodStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PodCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: containerStatuses\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ContainerStatus\n          elementRelationship: atomic\n    - name: ephemeralContainerStatuses\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ContainerStatus\n          elementRelationship: atomic\n    - name: hostIP\n      type:\n        scalar: string\n    - name: hostIPs\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.HostIP\n          elementRelationship: atomic\n    - name: initContainerStatuses\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ContainerStatus\n          elementRelationship: atomic\n    - name: message\n      type:\n        scalar: string\n    - name: nominatedNodeName\n      type:\n        scalar: string\n    - name: phase\n      type:\n        scalar: string\n    - name: podIP\n      type:\n        scalar: string\n    - name: podIPs\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PodIP\n          elementRelationship: associative\n          keys:\n          - ip\n    - name: qosClass\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: resize\n      type:\n        scalar: string\n    - name: resourceClaimStatuses\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.PodResourceClaimStatus\n          elementRelationship: associative\n          keys:\n          - name\n    - name: startTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n- name: io.k8s.api.core.v1.PodTemplate\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: template\n      type:\n        namedType: io.k8s.api.core.v1.PodTemplateSpec\n      default: {}\n- name: io.k8s.api.core.v1.PodTemplateSpec\n  map:\n    fields:\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.core.v1.PodSpec\n      default: {}\n- name: io.k8s.api.core.v1.PortStatus\n  map:\n    fields:\n    - name: error\n      type:\n        scalar: string\n    - name: port\n      type:\n        scalar: numeric\n      default: 0\n    - name: protocol\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.PortworxVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: volumeID\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.PreferredSchedulingTerm\n  map:\n    fields:\n    - name: preference\n      type:\n        namedType: io.k8s.api.core.v1.NodeSelectorTerm\n      default: {}\n    - name: weight\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.core.v1.Probe\n  map:\n    fields:\n    - name: exec\n      type:\n        namedType: io.k8s.api.core.v1.ExecAction\n    - name: failureThreshold\n      type:\n        scalar: numeric\n    - name: grpc\n      type:\n        namedType: io.k8s.api.core.v1.GRPCAction\n    - name: httpGet\n      type:\n        namedType: io.k8s.api.core.v1.HTTPGetAction\n    - name: initialDelaySeconds\n      type:\n        scalar: numeric\n    - name: periodSeconds\n      type:\n        scalar: numeric\n    - name: successThreshold\n      type:\n        scalar: numeric\n    - name: tcpSocket\n      type:\n        namedType: io.k8s.api.core.v1.TCPSocketAction\n    - name: terminationGracePeriodSeconds\n      type:\n        scalar: numeric\n    - name: timeoutSeconds\n      type:\n        scalar: numeric\n- name: io.k8s.api.core.v1.ProjectedVolumeSource\n  map:\n    fields:\n    - name: defaultMode\n      type:\n        scalar: numeric\n    - name: sources\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.VolumeProjection\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.QuobyteVolumeSource\n  map:\n    fields:\n    - name: group\n      type:\n        scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: registry\n      type:\n        scalar: string\n      default: \"\"\n    - name: tenant\n      type:\n        scalar: string\n    - name: user\n      type:\n        scalar: string\n    - name: volume\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.RBDPersistentVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n    - name: image\n      type:\n        scalar: string\n      default: \"\"\n    - name: keyring\n      type:\n        scalar: string\n      default: /etc/ceph/keyring\n    - name: monitors\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: pool\n      type:\n        scalar: string\n      default: rbd\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.SecretReference\n    - name: user\n      type:\n        scalar: string\n      default: admin\n- name: io.k8s.api.core.v1.RBDVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n    - name: image\n      type:\n        scalar: string\n      default: \"\"\n    - name: keyring\n      type:\n        scalar: string\n      default: /etc/ceph/keyring\n    - name: monitors\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: pool\n      type:\n        scalar: string\n      default: rbd\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.LocalObjectReference\n    - name: user\n      type:\n        scalar: string\n      default: admin\n- name: io.k8s.api.core.v1.ReplicationController\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.core.v1.ReplicationControllerSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.core.v1.ReplicationControllerStatus\n      default: {}\n- name: io.k8s.api.core.v1.ReplicationControllerCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.ReplicationControllerSpec\n  map:\n    fields:\n    - name: minReadySeconds\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n    - name: selector\n      type:\n        map:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: template\n      type:\n        namedType: io.k8s.api.core.v1.PodTemplateSpec\n- name: io.k8s.api.core.v1.ReplicationControllerStatus\n  map:\n    fields:\n    - name: availableReplicas\n      type:\n        scalar: numeric\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ReplicationControllerCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: fullyLabeledReplicas\n      type:\n        scalar: numeric\n    - name: observedGeneration\n      type:\n        scalar: numeric\n    - name: readyReplicas\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.core.v1.ResourceClaim\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: request\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.ResourceFieldSelector\n  map:\n    fields:\n    - name: containerName\n      type:\n        scalar: string\n    - name: divisor\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: resource\n      type:\n        scalar: string\n      default: \"\"\n    elementRelationship: atomic\n- name: io.k8s.api.core.v1.ResourceHealth\n  map:\n    fields:\n    - name: health\n      type:\n        scalar: string\n    - name: resourceID\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.ResourceQuota\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.core.v1.ResourceQuotaSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.core.v1.ResourceQuotaStatus\n      default: {}\n- name: io.k8s.api.core.v1.ResourceQuotaSpec\n  map:\n    fields:\n    - name: hard\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: scopeSelector\n      type:\n        namedType: io.k8s.api.core.v1.ScopeSelector\n    - name: scopes\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.ResourceQuotaStatus\n  map:\n    fields:\n    - name: hard\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: used\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n- name: io.k8s.api.core.v1.ResourceRequirements\n  map:\n    fields:\n    - name: claims\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ResourceClaim\n          elementRelationship: associative\n          keys:\n          - name\n    - name: limits\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: requests\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n- name: io.k8s.api.core.v1.ResourceStatus\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: resources\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ResourceHealth\n          elementRelationship: associative\n          keys:\n          - resourceID\n- name: io.k8s.api.core.v1.SELinuxOptions\n  map:\n    fields:\n    - name: level\n      type:\n        scalar: string\n    - name: role\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n    - name: user\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.ScaleIOPersistentVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n      default: xfs\n    - name: gateway\n      type:\n        scalar: string\n      default: \"\"\n    - name: protectionDomain\n      type:\n        scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.SecretReference\n    - name: sslEnabled\n      type:\n        scalar: boolean\n    - name: storageMode\n      type:\n        scalar: string\n      default: ThinProvisioned\n    - name: storagePool\n      type:\n        scalar: string\n    - name: system\n      type:\n        scalar: string\n      default: \"\"\n    - name: volumeName\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.ScaleIOVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n      default: xfs\n    - name: gateway\n      type:\n        scalar: string\n      default: \"\"\n    - name: protectionDomain\n      type:\n        scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.LocalObjectReference\n    - name: sslEnabled\n      type:\n        scalar: boolean\n    - name: storageMode\n      type:\n        scalar: string\n      default: ThinProvisioned\n    - name: storagePool\n      type:\n        scalar: string\n    - name: system\n      type:\n        scalar: string\n      default: \"\"\n    - name: volumeName\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.ScopeSelector\n  map:\n    fields:\n    - name: matchExpressions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ScopedResourceSelectorRequirement\n          elementRelationship: atomic\n    elementRelationship: atomic\n- name: io.k8s.api.core.v1.ScopedResourceSelectorRequirement\n  map:\n    fields:\n    - name: operator\n      type:\n        scalar: string\n      default: \"\"\n    - name: scopeName\n      type:\n        scalar: string\n      default: \"\"\n    - name: values\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.SeccompProfile\n  map:\n    fields:\n    - name: localhostProfile\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n    unions:\n    - discriminator: type\n      fields:\n      - fieldName: localhostProfile\n        discriminatorValue: LocalhostProfile\n- name: io.k8s.api.core.v1.Secret\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: data\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: immutable\n      type:\n        scalar: boolean\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: stringData\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.SecretEnvSource\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: optional\n      type:\n        scalar: boolean\n- name: io.k8s.api.core.v1.SecretKeySelector\n  map:\n    fields:\n    - name: key\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: optional\n      type:\n        scalar: boolean\n    elementRelationship: atomic\n- name: io.k8s.api.core.v1.SecretProjection\n  map:\n    fields:\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.KeyToPath\n          elementRelationship: atomic\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: optional\n      type:\n        scalar: boolean\n- name: io.k8s.api.core.v1.SecretReference\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n    - name: namespace\n      type:\n        scalar: string\n    elementRelationship: atomic\n- name: io.k8s.api.core.v1.SecretVolumeSource\n  map:\n    fields:\n    - name: defaultMode\n      type:\n        scalar: numeric\n    - name: items\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.KeyToPath\n          elementRelationship: atomic\n    - name: optional\n      type:\n        scalar: boolean\n    - name: secretName\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.SecurityContext\n  map:\n    fields:\n    - name: allowPrivilegeEscalation\n      type:\n        scalar: boolean\n    - name: appArmorProfile\n      type:\n        namedType: io.k8s.api.core.v1.AppArmorProfile\n    - name: capabilities\n      type:\n        namedType: io.k8s.api.core.v1.Capabilities\n    - name: privileged\n      type:\n        scalar: boolean\n    - name: procMount\n      type:\n        scalar: string\n    - name: readOnlyRootFilesystem\n      type:\n        scalar: boolean\n    - name: runAsGroup\n      type:\n        scalar: numeric\n    - name: runAsNonRoot\n      type:\n        scalar: boolean\n    - name: runAsUser\n      type:\n        scalar: numeric\n    - name: seLinuxOptions\n      type:\n        namedType: io.k8s.api.core.v1.SELinuxOptions\n    - name: seccompProfile\n      type:\n        namedType: io.k8s.api.core.v1.SeccompProfile\n    - name: windowsOptions\n      type:\n        namedType: io.k8s.api.core.v1.WindowsSecurityContextOptions\n- name: io.k8s.api.core.v1.Service\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.core.v1.ServiceSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.core.v1.ServiceStatus\n      default: {}\n- name: io.k8s.api.core.v1.ServiceAccount\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: automountServiceAccountToken\n      type:\n        scalar: boolean\n    - name: imagePullSecrets\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.LocalObjectReference\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: secrets\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ObjectReference\n          elementRelationship: associative\n          keys:\n          - name\n- name: io.k8s.api.core.v1.ServiceAccountTokenProjection\n  map:\n    fields:\n    - name: audience\n      type:\n        scalar: string\n    - name: expirationSeconds\n      type:\n        scalar: numeric\n    - name: path\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.ServicePort\n  map:\n    fields:\n    - name: appProtocol\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n    - name: nodePort\n      type:\n        scalar: numeric\n    - name: port\n      type:\n        scalar: numeric\n      default: 0\n    - name: protocol\n      type:\n        scalar: string\n      default: TCP\n    - name: targetPort\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n- name: io.k8s.api.core.v1.ServiceSpec\n  map:\n    fields:\n    - name: allocateLoadBalancerNodePorts\n      type:\n        scalar: boolean\n    - name: clusterIP\n      type:\n        scalar: string\n    - name: clusterIPs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: externalIPs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: externalName\n      type:\n        scalar: string\n    - name: externalTrafficPolicy\n      type:\n        scalar: string\n    - name: healthCheckNodePort\n      type:\n        scalar: numeric\n    - name: internalTrafficPolicy\n      type:\n        scalar: string\n    - name: ipFamilies\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: ipFamilyPolicy\n      type:\n        scalar: string\n    - name: loadBalancerClass\n      type:\n        scalar: string\n    - name: loadBalancerIP\n      type:\n        scalar: string\n    - name: loadBalancerSourceRanges\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: ports\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.ServicePort\n          elementRelationship: associative\n          keys:\n          - port\n          - protocol\n    - name: publishNotReadyAddresses\n      type:\n        scalar: boolean\n    - name: selector\n      type:\n        map:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: sessionAffinity\n      type:\n        scalar: string\n    - name: sessionAffinityConfig\n      type:\n        namedType: io.k8s.api.core.v1.SessionAffinityConfig\n    - name: trafficDistribution\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.ServiceStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Condition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: loadBalancer\n      type:\n        namedType: io.k8s.api.core.v1.LoadBalancerStatus\n      default: {}\n- name: io.k8s.api.core.v1.SessionAffinityConfig\n  map:\n    fields:\n    - name: clientIP\n      type:\n        namedType: io.k8s.api.core.v1.ClientIPConfig\n- name: io.k8s.api.core.v1.SleepAction\n  map:\n    fields:\n    - name: seconds\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.core.v1.StorageOSPersistentVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.ObjectReference\n    - name: volumeName\n      type:\n        scalar: string\n    - name: volumeNamespace\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.StorageOSVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: secretRef\n      type:\n        namedType: io.k8s.api.core.v1.LocalObjectReference\n    - name: volumeName\n      type:\n        scalar: string\n    - name: volumeNamespace\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.Sysctl\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: value\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.TCPSocketAction\n  map:\n    fields:\n    - name: host\n      type:\n        scalar: string\n    - name: port\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n- name: io.k8s.api.core.v1.Taint\n  map:\n    fields:\n    - name: effect\n      type:\n        scalar: string\n      default: \"\"\n    - name: key\n      type:\n        scalar: string\n      default: \"\"\n    - name: timeAdded\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: value\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.Toleration\n  map:\n    fields:\n    - name: effect\n      type:\n        scalar: string\n    - name: key\n      type:\n        scalar: string\n    - name: operator\n      type:\n        scalar: string\n    - name: tolerationSeconds\n      type:\n        scalar: numeric\n    - name: value\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.TopologySelectorLabelRequirement\n  map:\n    fields:\n    - name: key\n      type:\n        scalar: string\n      default: \"\"\n    - name: values\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.core.v1.TopologySelectorTerm\n  map:\n    fields:\n    - name: matchLabelExpressions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.TopologySelectorLabelRequirement\n          elementRelationship: atomic\n    elementRelationship: atomic\n- name: io.k8s.api.core.v1.TopologySpreadConstraint\n  map:\n    fields:\n    - name: labelSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: matchLabelKeys\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: maxSkew\n      type:\n        scalar: numeric\n      default: 0\n    - name: minDomains\n      type:\n        scalar: numeric\n    - name: nodeAffinityPolicy\n      type:\n        scalar: string\n    - name: nodeTaintsPolicy\n      type:\n        scalar: string\n    - name: topologyKey\n      type:\n        scalar: string\n      default: \"\"\n    - name: whenUnsatisfiable\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.TypedLocalObjectReference\n  map:\n    fields:\n    - name: apiGroup\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    elementRelationship: atomic\n- name: io.k8s.api.core.v1.TypedObjectReference\n  map:\n    fields:\n    - name: apiGroup\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: namespace\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.Volume\n  map:\n    fields:\n    - name: awsElasticBlockStore\n      type:\n        namedType: io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource\n    - name: azureDisk\n      type:\n        namedType: io.k8s.api.core.v1.AzureDiskVolumeSource\n    - name: azureFile\n      type:\n        namedType: io.k8s.api.core.v1.AzureFileVolumeSource\n    - name: cephfs\n      type:\n        namedType: io.k8s.api.core.v1.CephFSVolumeSource\n    - name: cinder\n      type:\n        namedType: io.k8s.api.core.v1.CinderVolumeSource\n    - name: configMap\n      type:\n        namedType: io.k8s.api.core.v1.ConfigMapVolumeSource\n    - name: csi\n      type:\n        namedType: io.k8s.api.core.v1.CSIVolumeSource\n    - name: downwardAPI\n      type:\n        namedType: io.k8s.api.core.v1.DownwardAPIVolumeSource\n    - name: emptyDir\n      type:\n        namedType: io.k8s.api.core.v1.EmptyDirVolumeSource\n    - name: ephemeral\n      type:\n        namedType: io.k8s.api.core.v1.EphemeralVolumeSource\n    - name: fc\n      type:\n        namedType: io.k8s.api.core.v1.FCVolumeSource\n    - name: flexVolume\n      type:\n        namedType: io.k8s.api.core.v1.FlexVolumeSource\n    - name: flocker\n      type:\n        namedType: io.k8s.api.core.v1.FlockerVolumeSource\n    - name: gcePersistentDisk\n      type:\n        namedType: io.k8s.api.core.v1.GCEPersistentDiskVolumeSource\n    - name: gitRepo\n      type:\n        namedType: io.k8s.api.core.v1.GitRepoVolumeSource\n    - name: glusterfs\n      type:\n        namedType: io.k8s.api.core.v1.GlusterfsVolumeSource\n    - name: hostPath\n      type:\n        namedType: io.k8s.api.core.v1.HostPathVolumeSource\n    - name: image\n      type:\n        namedType: io.k8s.api.core.v1.ImageVolumeSource\n    - name: iscsi\n      type:\n        namedType: io.k8s.api.core.v1.ISCSIVolumeSource\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: nfs\n      type:\n        namedType: io.k8s.api.core.v1.NFSVolumeSource\n    - name: persistentVolumeClaim\n      type:\n        namedType: io.k8s.api.core.v1.PersistentVolumeClaimVolumeSource\n    - name: photonPersistentDisk\n      type:\n        namedType: io.k8s.api.core.v1.PhotonPersistentDiskVolumeSource\n    - name: portworxVolume\n      type:\n        namedType: io.k8s.api.core.v1.PortworxVolumeSource\n    - name: projected\n      type:\n        namedType: io.k8s.api.core.v1.ProjectedVolumeSource\n    - name: quobyte\n      type:\n        namedType: io.k8s.api.core.v1.QuobyteVolumeSource\n    - name: rbd\n      type:\n        namedType: io.k8s.api.core.v1.RBDVolumeSource\n    - name: scaleIO\n      type:\n        namedType: io.k8s.api.core.v1.ScaleIOVolumeSource\n    - name: secret\n      type:\n        namedType: io.k8s.api.core.v1.SecretVolumeSource\n    - name: storageos\n      type:\n        namedType: io.k8s.api.core.v1.StorageOSVolumeSource\n    - name: vsphereVolume\n      type:\n        namedType: io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\n- name: io.k8s.api.core.v1.VolumeDevice\n  map:\n    fields:\n    - name: devicePath\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.VolumeMount\n  map:\n    fields:\n    - name: mountPath\n      type:\n        scalar: string\n      default: \"\"\n    - name: mountPropagation\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: recursiveReadOnly\n      type:\n        scalar: string\n    - name: subPath\n      type:\n        scalar: string\n    - name: subPathExpr\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.VolumeMountStatus\n  map:\n    fields:\n    - name: mountPath\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: readOnly\n      type:\n        scalar: boolean\n    - name: recursiveReadOnly\n      type:\n        scalar: string\n- name: io.k8s.api.core.v1.VolumeNodeAffinity\n  map:\n    fields:\n    - name: required\n      type:\n        namedType: io.k8s.api.core.v1.NodeSelector\n- name: io.k8s.api.core.v1.VolumeProjection\n  map:\n    fields:\n    - name: clusterTrustBundle\n      type:\n        namedType: io.k8s.api.core.v1.ClusterTrustBundleProjection\n    - name: configMap\n      type:\n        namedType: io.k8s.api.core.v1.ConfigMapProjection\n    - name: downwardAPI\n      type:\n        namedType: io.k8s.api.core.v1.DownwardAPIProjection\n    - name: secret\n      type:\n        namedType: io.k8s.api.core.v1.SecretProjection\n    - name: serviceAccountToken\n      type:\n        namedType: io.k8s.api.core.v1.ServiceAccountTokenProjection\n- name: io.k8s.api.core.v1.VolumeResourceRequirements\n  map:\n    fields:\n    - name: limits\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: requests\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n- name: io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource\n  map:\n    fields:\n    - name: fsType\n      type:\n        scalar: string\n    - name: storagePolicyID\n      type:\n        scalar: string\n    - name: storagePolicyName\n      type:\n        scalar: string\n    - name: volumePath\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.core.v1.WeightedPodAffinityTerm\n  map:\n    fields:\n    - name: podAffinityTerm\n      type:\n        namedType: io.k8s.api.core.v1.PodAffinityTerm\n      default: {}\n    - name: weight\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.core.v1.WindowsSecurityContextOptions\n  map:\n    fields:\n    - name: gmsaCredentialSpec\n      type:\n        scalar: string\n    - name: gmsaCredentialSpecName\n      type:\n        scalar: string\n    - name: hostProcess\n      type:\n        scalar: boolean\n    - name: runAsUserName\n      type:\n        scalar: string\n- name: io.k8s.api.discovery.v1.Endpoint\n  map:\n    fields:\n    - name: addresses\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: conditions\n      type:\n        namedType: io.k8s.api.discovery.v1.EndpointConditions\n      default: {}\n    - name: deprecatedTopology\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: hints\n      type:\n        namedType: io.k8s.api.discovery.v1.EndpointHints\n    - name: hostname\n      type:\n        scalar: string\n    - name: nodeName\n      type:\n        scalar: string\n    - name: targetRef\n      type:\n        namedType: io.k8s.api.core.v1.ObjectReference\n    - name: zone\n      type:\n        scalar: string\n- name: io.k8s.api.discovery.v1.EndpointConditions\n  map:\n    fields:\n    - name: ready\n      type:\n        scalar: boolean\n    - name: serving\n      type:\n        scalar: boolean\n    - name: terminating\n      type:\n        scalar: boolean\n- name: io.k8s.api.discovery.v1.EndpointHints\n  map:\n    fields:\n    - name: forZones\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.discovery.v1.ForZone\n          elementRelationship: atomic\n- name: io.k8s.api.discovery.v1.EndpointPort\n  map:\n    fields:\n    - name: appProtocol\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n    - name: port\n      type:\n        scalar: numeric\n    - name: protocol\n      type:\n        scalar: string\n    elementRelationship: atomic\n- name: io.k8s.api.discovery.v1.EndpointSlice\n  map:\n    fields:\n    - name: addressType\n      type:\n        scalar: string\n      default: \"\"\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: endpoints\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.discovery.v1.Endpoint\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: ports\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.discovery.v1.EndpointPort\n          elementRelationship: atomic\n- name: io.k8s.api.discovery.v1.ForZone\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.discovery.v1beta1.Endpoint\n  map:\n    fields:\n    - name: addresses\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: conditions\n      type:\n        namedType: io.k8s.api.discovery.v1beta1.EndpointConditions\n      default: {}\n    - name: hints\n      type:\n        namedType: io.k8s.api.discovery.v1beta1.EndpointHints\n    - name: hostname\n      type:\n        scalar: string\n    - name: nodeName\n      type:\n        scalar: string\n    - name: targetRef\n      type:\n        namedType: io.k8s.api.core.v1.ObjectReference\n    - name: topology\n      type:\n        map:\n          elementType:\n            scalar: string\n- name: io.k8s.api.discovery.v1beta1.EndpointConditions\n  map:\n    fields:\n    - name: ready\n      type:\n        scalar: boolean\n    - name: serving\n      type:\n        scalar: boolean\n    - name: terminating\n      type:\n        scalar: boolean\n- name: io.k8s.api.discovery.v1beta1.EndpointHints\n  map:\n    fields:\n    - name: forZones\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.discovery.v1beta1.ForZone\n          elementRelationship: atomic\n- name: io.k8s.api.discovery.v1beta1.EndpointPort\n  map:\n    fields:\n    - name: appProtocol\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n    - name: port\n      type:\n        scalar: numeric\n    - name: protocol\n      type:\n        scalar: string\n- name: io.k8s.api.discovery.v1beta1.EndpointSlice\n  map:\n    fields:\n    - name: addressType\n      type:\n        scalar: string\n      default: \"\"\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: endpoints\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.discovery.v1beta1.Endpoint\n          elementRelationship: atomic\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: ports\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.discovery.v1beta1.EndpointPort\n          elementRelationship: atomic\n- name: io.k8s.api.discovery.v1beta1.ForZone\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.events.v1.Event\n  map:\n    fields:\n    - name: action\n      type:\n        scalar: string\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: deprecatedCount\n      type:\n        scalar: numeric\n    - name: deprecatedFirstTimestamp\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: deprecatedLastTimestamp\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: deprecatedSource\n      type:\n        namedType: io.k8s.api.core.v1.EventSource\n      default: {}\n    - name: eventTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: note\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: regarding\n      type:\n        namedType: io.k8s.api.core.v1.ObjectReference\n      default: {}\n    - name: related\n      type:\n        namedType: io.k8s.api.core.v1.ObjectReference\n    - name: reportingController\n      type:\n        scalar: string\n    - name: reportingInstance\n      type:\n        scalar: string\n    - name: series\n      type:\n        namedType: io.k8s.api.events.v1.EventSeries\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.events.v1.EventSeries\n  map:\n    fields:\n    - name: count\n      type:\n        scalar: numeric\n      default: 0\n    - name: lastObservedTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\n- name: io.k8s.api.events.v1beta1.Event\n  map:\n    fields:\n    - name: action\n      type:\n        scalar: string\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: deprecatedCount\n      type:\n        scalar: numeric\n    - name: deprecatedFirstTimestamp\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: deprecatedLastTimestamp\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: deprecatedSource\n      type:\n        namedType: io.k8s.api.core.v1.EventSource\n      default: {}\n    - name: eventTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: note\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: regarding\n      type:\n        namedType: io.k8s.api.core.v1.ObjectReference\n      default: {}\n    - name: related\n      type:\n        namedType: io.k8s.api.core.v1.ObjectReference\n    - name: reportingController\n      type:\n        scalar: string\n    - name: reportingInstance\n      type:\n        scalar: string\n    - name: series\n      type:\n        namedType: io.k8s.api.events.v1beta1.EventSeries\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.events.v1beta1.EventSeries\n  map:\n    fields:\n    - name: count\n      type:\n        scalar: numeric\n      default: 0\n    - name: lastObservedTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\n- name: io.k8s.api.extensions.v1beta1.DaemonSet\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.extensions.v1beta1.DaemonSetSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.extensions.v1beta1.DaemonSetStatus\n      default: {}\n- name: io.k8s.api.extensions.v1beta1.DaemonSetCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.extensions.v1beta1.DaemonSetSpec\n  map:\n    fields:\n    - name: minReadySeconds\n      type:\n        scalar: numeric\n    - name: revisionHistoryLimit\n      type:\n        scalar: numeric\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: template\n      type:\n        namedType: io.k8s.api.core.v1.PodTemplateSpec\n      default: {}\n    - name: templateGeneration\n      type:\n        scalar: numeric\n    - name: updateStrategy\n      type:\n        namedType: io.k8s.api.extensions.v1beta1.DaemonSetUpdateStrategy\n      default: {}\n- name: io.k8s.api.extensions.v1beta1.DaemonSetStatus\n  map:\n    fields:\n    - name: collisionCount\n      type:\n        scalar: numeric\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.extensions.v1beta1.DaemonSetCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: currentNumberScheduled\n      type:\n        scalar: numeric\n      default: 0\n    - name: desiredNumberScheduled\n      type:\n        scalar: numeric\n      default: 0\n    - name: numberAvailable\n      type:\n        scalar: numeric\n    - name: numberMisscheduled\n      type:\n        scalar: numeric\n      default: 0\n    - name: numberReady\n      type:\n        scalar: numeric\n      default: 0\n    - name: numberUnavailable\n      type:\n        scalar: numeric\n    - name: observedGeneration\n      type:\n        scalar: numeric\n    - name: updatedNumberScheduled\n      type:\n        scalar: numeric\n- name: io.k8s.api.extensions.v1beta1.DaemonSetUpdateStrategy\n  map:\n    fields:\n    - name: rollingUpdate\n      type:\n        namedType: io.k8s.api.extensions.v1beta1.RollingUpdateDaemonSet\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.extensions.v1beta1.Deployment\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.extensions.v1beta1.DeploymentSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.extensions.v1beta1.DeploymentStatus\n      default: {}\n- name: io.k8s.api.extensions.v1beta1.DeploymentCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: lastUpdateTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.extensions.v1beta1.DeploymentSpec\n  map:\n    fields:\n    - name: minReadySeconds\n      type:\n        scalar: numeric\n    - name: paused\n      type:\n        scalar: boolean\n    - name: progressDeadlineSeconds\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n    - name: revisionHistoryLimit\n      type:\n        scalar: numeric\n    - name: rollbackTo\n      type:\n        namedType: io.k8s.api.extensions.v1beta1.RollbackConfig\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: strategy\n      type:\n        namedType: io.k8s.api.extensions.v1beta1.DeploymentStrategy\n      default: {}\n    - name: template\n      type:\n        namedType: io.k8s.api.core.v1.PodTemplateSpec\n      default: {}\n- name: io.k8s.api.extensions.v1beta1.DeploymentStatus\n  map:\n    fields:\n    - name: availableReplicas\n      type:\n        scalar: numeric\n    - name: collisionCount\n      type:\n        scalar: numeric\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.extensions.v1beta1.DeploymentCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: observedGeneration\n      type:\n        scalar: numeric\n    - name: readyReplicas\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n    - name: unavailableReplicas\n      type:\n        scalar: numeric\n    - name: updatedReplicas\n      type:\n        scalar: numeric\n- name: io.k8s.api.extensions.v1beta1.DeploymentStrategy\n  map:\n    fields:\n    - name: rollingUpdate\n      type:\n        namedType: io.k8s.api.extensions.v1beta1.RollingUpdateDeployment\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.extensions.v1beta1.HTTPIngressPath\n  map:\n    fields:\n    - name: backend\n      type:\n        namedType: io.k8s.api.extensions.v1beta1.IngressBackend\n      default: {}\n    - name: path\n      type:\n        scalar: string\n    - name: pathType\n      type:\n        scalar: string\n- name: io.k8s.api.extensions.v1beta1.HTTPIngressRuleValue\n  map:\n    fields:\n    - name: paths\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.extensions.v1beta1.HTTPIngressPath\n          elementRelationship: atomic\n- name: io.k8s.api.extensions.v1beta1.IPBlock\n  map:\n    fields:\n    - name: cidr\n      type:\n        scalar: string\n      default: \"\"\n    - name: except\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.extensions.v1beta1.Ingress\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.extensions.v1beta1.IngressSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.extensions.v1beta1.IngressStatus\n      default: {}\n- name: io.k8s.api.extensions.v1beta1.IngressBackend\n  map:\n    fields:\n    - name: resource\n      type:\n        namedType: io.k8s.api.core.v1.TypedLocalObjectReference\n    - name: serviceName\n      type:\n        scalar: string\n    - name: servicePort\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n- name: io.k8s.api.extensions.v1beta1.IngressLoadBalancerIngress\n  map:\n    fields:\n    - name: hostname\n      type:\n        scalar: string\n    - name: ip\n      type:\n        scalar: string\n    - name: ports\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.extensions.v1beta1.IngressPortStatus\n          elementRelationship: atomic\n- name: io.k8s.api.extensions.v1beta1.IngressLoadBalancerStatus\n  map:\n    fields:\n    - name: ingress\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.extensions.v1beta1.IngressLoadBalancerIngress\n          elementRelationship: atomic\n- name: io.k8s.api.extensions.v1beta1.IngressPortStatus\n  map:\n    fields:\n    - name: error\n      type:\n        scalar: string\n    - name: port\n      type:\n        scalar: numeric\n      default: 0\n    - name: protocol\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.extensions.v1beta1.IngressRule\n  map:\n    fields:\n    - name: host\n      type:\n        scalar: string\n    - name: http\n      type:\n        namedType: io.k8s.api.extensions.v1beta1.HTTPIngressRuleValue\n- name: io.k8s.api.extensions.v1beta1.IngressSpec\n  map:\n    fields:\n    - name: backend\n      type:\n        namedType: io.k8s.api.extensions.v1beta1.IngressBackend\n    - name: ingressClassName\n      type:\n        scalar: string\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.extensions.v1beta1.IngressRule\n          elementRelationship: atomic\n    - name: tls\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.extensions.v1beta1.IngressTLS\n          elementRelationship: atomic\n- name: io.k8s.api.extensions.v1beta1.IngressStatus\n  map:\n    fields:\n    - name: loadBalancer\n      type:\n        namedType: io.k8s.api.extensions.v1beta1.IngressLoadBalancerStatus\n      default: {}\n- name: io.k8s.api.extensions.v1beta1.IngressTLS\n  map:\n    fields:\n    - name: hosts\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: secretName\n      type:\n        scalar: string\n- name: io.k8s.api.extensions.v1beta1.NetworkPolicy\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.extensions.v1beta1.NetworkPolicySpec\n      default: {}\n- name: io.k8s.api.extensions.v1beta1.NetworkPolicyEgressRule\n  map:\n    fields:\n    - name: ports\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.extensions.v1beta1.NetworkPolicyPort\n          elementRelationship: atomic\n    - name: to\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.extensions.v1beta1.NetworkPolicyPeer\n          elementRelationship: atomic\n- name: io.k8s.api.extensions.v1beta1.NetworkPolicyIngressRule\n  map:\n    fields:\n    - name: from\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.extensions.v1beta1.NetworkPolicyPeer\n          elementRelationship: atomic\n    - name: ports\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.extensions.v1beta1.NetworkPolicyPort\n          elementRelationship: atomic\n- name: io.k8s.api.extensions.v1beta1.NetworkPolicyPeer\n  map:\n    fields:\n    - name: ipBlock\n      type:\n        namedType: io.k8s.api.extensions.v1beta1.IPBlock\n    - name: namespaceSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: podSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n- name: io.k8s.api.extensions.v1beta1.NetworkPolicyPort\n  map:\n    fields:\n    - name: endPort\n      type:\n        scalar: numeric\n    - name: port\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n    - name: protocol\n      type:\n        scalar: string\n- name: io.k8s.api.extensions.v1beta1.NetworkPolicySpec\n  map:\n    fields:\n    - name: egress\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.extensions.v1beta1.NetworkPolicyEgressRule\n          elementRelationship: atomic\n    - name: ingress\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.extensions.v1beta1.NetworkPolicyIngressRule\n          elementRelationship: atomic\n    - name: podSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n      default: {}\n    - name: policyTypes\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.extensions.v1beta1.ReplicaSet\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.extensions.v1beta1.ReplicaSetSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.extensions.v1beta1.ReplicaSetStatus\n      default: {}\n- name: io.k8s.api.extensions.v1beta1.ReplicaSetCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.extensions.v1beta1.ReplicaSetSpec\n  map:\n    fields:\n    - name: minReadySeconds\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: template\n      type:\n        namedType: io.k8s.api.core.v1.PodTemplateSpec\n      default: {}\n- name: io.k8s.api.extensions.v1beta1.ReplicaSetStatus\n  map:\n    fields:\n    - name: availableReplicas\n      type:\n        scalar: numeric\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.extensions.v1beta1.ReplicaSetCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: fullyLabeledReplicas\n      type:\n        scalar: numeric\n    - name: observedGeneration\n      type:\n        scalar: numeric\n    - name: readyReplicas\n      type:\n        scalar: numeric\n    - name: replicas\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.extensions.v1beta1.RollbackConfig\n  map:\n    fields:\n    - name: revision\n      type:\n        scalar: numeric\n- name: io.k8s.api.extensions.v1beta1.RollingUpdateDaemonSet\n  map:\n    fields:\n    - name: maxSurge\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n    - name: maxUnavailable\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n- name: io.k8s.api.extensions.v1beta1.RollingUpdateDeployment\n  map:\n    fields:\n    - name: maxSurge\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n    - name: maxUnavailable\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n- name: io.k8s.api.flowcontrol.v1.ExemptPriorityLevelConfiguration\n  map:\n    fields:\n    - name: lendablePercent\n      type:\n        scalar: numeric\n    - name: nominalConcurrencyShares\n      type:\n        scalar: numeric\n- name: io.k8s.api.flowcontrol.v1.FlowDistinguisherMethod\n  map:\n    fields:\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.flowcontrol.v1.FlowSchema\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.flowcontrol.v1.FlowSchemaSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.flowcontrol.v1.FlowSchemaStatus\n      default: {}\n- name: io.k8s.api.flowcontrol.v1.FlowSchemaCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.flowcontrol.v1.FlowSchemaSpec\n  map:\n    fields:\n    - name: distinguisherMethod\n      type:\n        namedType: io.k8s.api.flowcontrol.v1.FlowDistinguisherMethod\n    - name: matchingPrecedence\n      type:\n        scalar: numeric\n      default: 0\n    - name: priorityLevelConfiguration\n      type:\n        namedType: io.k8s.api.flowcontrol.v1.PriorityLevelConfigurationReference\n      default: {}\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1.PolicyRulesWithSubjects\n          elementRelationship: atomic\n- name: io.k8s.api.flowcontrol.v1.FlowSchemaStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1.FlowSchemaCondition\n          elementRelationship: associative\n          keys:\n          - type\n- name: io.k8s.api.flowcontrol.v1.GroupSubject\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.flowcontrol.v1.LimitResponse\n  map:\n    fields:\n    - name: queuing\n      type:\n        namedType: io.k8s.api.flowcontrol.v1.QueuingConfiguration\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n    unions:\n    - discriminator: type\n      fields:\n      - fieldName: queuing\n        discriminatorValue: Queuing\n- name: io.k8s.api.flowcontrol.v1.LimitedPriorityLevelConfiguration\n  map:\n    fields:\n    - name: borrowingLimitPercent\n      type:\n        scalar: numeric\n    - name: lendablePercent\n      type:\n        scalar: numeric\n    - name: limitResponse\n      type:\n        namedType: io.k8s.api.flowcontrol.v1.LimitResponse\n      default: {}\n    - name: nominalConcurrencyShares\n      type:\n        scalar: numeric\n- name: io.k8s.api.flowcontrol.v1.NonResourcePolicyRule\n  map:\n    fields:\n    - name: nonResourceURLs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: verbs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n- name: io.k8s.api.flowcontrol.v1.PolicyRulesWithSubjects\n  map:\n    fields:\n    - name: nonResourceRules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1.NonResourcePolicyRule\n          elementRelationship: atomic\n    - name: resourceRules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1.ResourcePolicyRule\n          elementRelationship: atomic\n    - name: subjects\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1.Subject\n          elementRelationship: atomic\n- name: io.k8s.api.flowcontrol.v1.PriorityLevelConfiguration\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.flowcontrol.v1.PriorityLevelConfigurationSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.flowcontrol.v1.PriorityLevelConfigurationStatus\n      default: {}\n- name: io.k8s.api.flowcontrol.v1.PriorityLevelConfigurationCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.flowcontrol.v1.PriorityLevelConfigurationReference\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.flowcontrol.v1.PriorityLevelConfigurationSpec\n  map:\n    fields:\n    - name: exempt\n      type:\n        namedType: io.k8s.api.flowcontrol.v1.ExemptPriorityLevelConfiguration\n    - name: limited\n      type:\n        namedType: io.k8s.api.flowcontrol.v1.LimitedPriorityLevelConfiguration\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n    unions:\n    - discriminator: type\n      fields:\n      - fieldName: exempt\n        discriminatorValue: Exempt\n      - fieldName: limited\n        discriminatorValue: Limited\n- name: io.k8s.api.flowcontrol.v1.PriorityLevelConfigurationStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1.PriorityLevelConfigurationCondition\n          elementRelationship: associative\n          keys:\n          - type\n- name: io.k8s.api.flowcontrol.v1.QueuingConfiguration\n  map:\n    fields:\n    - name: handSize\n      type:\n        scalar: numeric\n      default: 0\n    - name: queueLengthLimit\n      type:\n        scalar: numeric\n      default: 0\n    - name: queues\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.flowcontrol.v1.ResourcePolicyRule\n  map:\n    fields:\n    - name: apiGroups\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: clusterScope\n      type:\n        scalar: boolean\n    - name: namespaces\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: resources\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: verbs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n- name: io.k8s.api.flowcontrol.v1.ServiceAccountSubject\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: namespace\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.flowcontrol.v1.Subject\n  map:\n    fields:\n    - name: group\n      type:\n        namedType: io.k8s.api.flowcontrol.v1.GroupSubject\n    - name: kind\n      type:\n        scalar: string\n      default: \"\"\n    - name: serviceAccount\n      type:\n        namedType: io.k8s.api.flowcontrol.v1.ServiceAccountSubject\n    - name: user\n      type:\n        namedType: io.k8s.api.flowcontrol.v1.UserSubject\n    unions:\n    - discriminator: kind\n      fields:\n      - fieldName: group\n        discriminatorValue: Group\n      - fieldName: serviceAccount\n        discriminatorValue: ServiceAccount\n      - fieldName: user\n        discriminatorValue: User\n- name: io.k8s.api.flowcontrol.v1.UserSubject\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.flowcontrol.v1beta1.ExemptPriorityLevelConfiguration\n  map:\n    fields:\n    - name: lendablePercent\n      type:\n        scalar: numeric\n    - name: nominalConcurrencyShares\n      type:\n        scalar: numeric\n- name: io.k8s.api.flowcontrol.v1beta1.FlowDistinguisherMethod\n  map:\n    fields:\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.flowcontrol.v1beta1.FlowSchema\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta1.FlowSchemaSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta1.FlowSchemaStatus\n      default: {}\n- name: io.k8s.api.flowcontrol.v1beta1.FlowSchemaCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.flowcontrol.v1beta1.FlowSchemaSpec\n  map:\n    fields:\n    - name: distinguisherMethod\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta1.FlowDistinguisherMethod\n    - name: matchingPrecedence\n      type:\n        scalar: numeric\n      default: 0\n    - name: priorityLevelConfiguration\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfigurationReference\n      default: {}\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta1.PolicyRulesWithSubjects\n          elementRelationship: atomic\n- name: io.k8s.api.flowcontrol.v1beta1.FlowSchemaStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta1.FlowSchemaCondition\n          elementRelationship: associative\n          keys:\n          - type\n- name: io.k8s.api.flowcontrol.v1beta1.GroupSubject\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.flowcontrol.v1beta1.LimitResponse\n  map:\n    fields:\n    - name: queuing\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta1.QueuingConfiguration\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n    unions:\n    - discriminator: type\n      fields:\n      - fieldName: queuing\n        discriminatorValue: Queuing\n- name: io.k8s.api.flowcontrol.v1beta1.LimitedPriorityLevelConfiguration\n  map:\n    fields:\n    - name: assuredConcurrencyShares\n      type:\n        scalar: numeric\n      default: 0\n    - name: borrowingLimitPercent\n      type:\n        scalar: numeric\n    - name: lendablePercent\n      type:\n        scalar: numeric\n    - name: limitResponse\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta1.LimitResponse\n      default: {}\n- name: io.k8s.api.flowcontrol.v1beta1.NonResourcePolicyRule\n  map:\n    fields:\n    - name: nonResourceURLs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: verbs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n- name: io.k8s.api.flowcontrol.v1beta1.PolicyRulesWithSubjects\n  map:\n    fields:\n    - name: nonResourceRules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta1.NonResourcePolicyRule\n          elementRelationship: atomic\n    - name: resourceRules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta1.ResourcePolicyRule\n          elementRelationship: atomic\n    - name: subjects\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta1.Subject\n          elementRelationship: atomic\n- name: io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfiguration\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfigurationSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfigurationStatus\n      default: {}\n- name: io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfigurationCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfigurationReference\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfigurationSpec\n  map:\n    fields:\n    - name: exempt\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta1.ExemptPriorityLevelConfiguration\n    - name: limited\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta1.LimitedPriorityLevelConfiguration\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n    unions:\n    - discriminator: type\n      fields:\n      - fieldName: exempt\n        discriminatorValue: Exempt\n      - fieldName: limited\n        discriminatorValue: Limited\n- name: io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfigurationStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta1.PriorityLevelConfigurationCondition\n          elementRelationship: associative\n          keys:\n          - type\n- name: io.k8s.api.flowcontrol.v1beta1.QueuingConfiguration\n  map:\n    fields:\n    - name: handSize\n      type:\n        scalar: numeric\n      default: 0\n    - name: queueLengthLimit\n      type:\n        scalar: numeric\n      default: 0\n    - name: queues\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.flowcontrol.v1beta1.ResourcePolicyRule\n  map:\n    fields:\n    - name: apiGroups\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: clusterScope\n      type:\n        scalar: boolean\n    - name: namespaces\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: resources\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: verbs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n- name: io.k8s.api.flowcontrol.v1beta1.ServiceAccountSubject\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: namespace\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.flowcontrol.v1beta1.Subject\n  map:\n    fields:\n    - name: group\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta1.GroupSubject\n    - name: kind\n      type:\n        scalar: string\n      default: \"\"\n    - name: serviceAccount\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta1.ServiceAccountSubject\n    - name: user\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta1.UserSubject\n    unions:\n    - discriminator: kind\n      fields:\n      - fieldName: group\n        discriminatorValue: Group\n      - fieldName: serviceAccount\n        discriminatorValue: ServiceAccount\n      - fieldName: user\n        discriminatorValue: User\n- name: io.k8s.api.flowcontrol.v1beta1.UserSubject\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.flowcontrol.v1beta2.ExemptPriorityLevelConfiguration\n  map:\n    fields:\n    - name: lendablePercent\n      type:\n        scalar: numeric\n    - name: nominalConcurrencyShares\n      type:\n        scalar: numeric\n- name: io.k8s.api.flowcontrol.v1beta2.FlowDistinguisherMethod\n  map:\n    fields:\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.flowcontrol.v1beta2.FlowSchema\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta2.FlowSchemaSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta2.FlowSchemaStatus\n      default: {}\n- name: io.k8s.api.flowcontrol.v1beta2.FlowSchemaCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.flowcontrol.v1beta2.FlowSchemaSpec\n  map:\n    fields:\n    - name: distinguisherMethod\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta2.FlowDistinguisherMethod\n    - name: matchingPrecedence\n      type:\n        scalar: numeric\n      default: 0\n    - name: priorityLevelConfiguration\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfigurationReference\n      default: {}\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta2.PolicyRulesWithSubjects\n          elementRelationship: atomic\n- name: io.k8s.api.flowcontrol.v1beta2.FlowSchemaStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta2.FlowSchemaCondition\n          elementRelationship: associative\n          keys:\n          - type\n- name: io.k8s.api.flowcontrol.v1beta2.GroupSubject\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.flowcontrol.v1beta2.LimitResponse\n  map:\n    fields:\n    - name: queuing\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta2.QueuingConfiguration\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n    unions:\n    - discriminator: type\n      fields:\n      - fieldName: queuing\n        discriminatorValue: Queuing\n- name: io.k8s.api.flowcontrol.v1beta2.LimitedPriorityLevelConfiguration\n  map:\n    fields:\n    - name: assuredConcurrencyShares\n      type:\n        scalar: numeric\n      default: 0\n    - name: borrowingLimitPercent\n      type:\n        scalar: numeric\n    - name: lendablePercent\n      type:\n        scalar: numeric\n    - name: limitResponse\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta2.LimitResponse\n      default: {}\n- name: io.k8s.api.flowcontrol.v1beta2.NonResourcePolicyRule\n  map:\n    fields:\n    - name: nonResourceURLs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: verbs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n- name: io.k8s.api.flowcontrol.v1beta2.PolicyRulesWithSubjects\n  map:\n    fields:\n    - name: nonResourceRules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta2.NonResourcePolicyRule\n          elementRelationship: atomic\n    - name: resourceRules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta2.ResourcePolicyRule\n          elementRelationship: atomic\n    - name: subjects\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta2.Subject\n          elementRelationship: atomic\n- name: io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfiguration\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfigurationSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfigurationStatus\n      default: {}\n- name: io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfigurationCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfigurationReference\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfigurationSpec\n  map:\n    fields:\n    - name: exempt\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta2.ExemptPriorityLevelConfiguration\n    - name: limited\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta2.LimitedPriorityLevelConfiguration\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n    unions:\n    - discriminator: type\n      fields:\n      - fieldName: exempt\n        discriminatorValue: Exempt\n      - fieldName: limited\n        discriminatorValue: Limited\n- name: io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfigurationStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta2.PriorityLevelConfigurationCondition\n          elementRelationship: associative\n          keys:\n          - type\n- name: io.k8s.api.flowcontrol.v1beta2.QueuingConfiguration\n  map:\n    fields:\n    - name: handSize\n      type:\n        scalar: numeric\n      default: 0\n    - name: queueLengthLimit\n      type:\n        scalar: numeric\n      default: 0\n    - name: queues\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.flowcontrol.v1beta2.ResourcePolicyRule\n  map:\n    fields:\n    - name: apiGroups\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: clusterScope\n      type:\n        scalar: boolean\n    - name: namespaces\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: resources\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: verbs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n- name: io.k8s.api.flowcontrol.v1beta2.ServiceAccountSubject\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: namespace\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.flowcontrol.v1beta2.Subject\n  map:\n    fields:\n    - name: group\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta2.GroupSubject\n    - name: kind\n      type:\n        scalar: string\n      default: \"\"\n    - name: serviceAccount\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta2.ServiceAccountSubject\n    - name: user\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta2.UserSubject\n    unions:\n    - discriminator: kind\n      fields:\n      - fieldName: group\n        discriminatorValue: Group\n      - fieldName: serviceAccount\n        discriminatorValue: ServiceAccount\n      - fieldName: user\n        discriminatorValue: User\n- name: io.k8s.api.flowcontrol.v1beta2.UserSubject\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.flowcontrol.v1beta3.ExemptPriorityLevelConfiguration\n  map:\n    fields:\n    - name: lendablePercent\n      type:\n        scalar: numeric\n    - name: nominalConcurrencyShares\n      type:\n        scalar: numeric\n- name: io.k8s.api.flowcontrol.v1beta3.FlowDistinguisherMethod\n  map:\n    fields:\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.flowcontrol.v1beta3.FlowSchema\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta3.FlowSchemaSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta3.FlowSchemaStatus\n      default: {}\n- name: io.k8s.api.flowcontrol.v1beta3.FlowSchemaCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.flowcontrol.v1beta3.FlowSchemaSpec\n  map:\n    fields:\n    - name: distinguisherMethod\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta3.FlowDistinguisherMethod\n    - name: matchingPrecedence\n      type:\n        scalar: numeric\n      default: 0\n    - name: priorityLevelConfiguration\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationReference\n      default: {}\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta3.PolicyRulesWithSubjects\n          elementRelationship: atomic\n- name: io.k8s.api.flowcontrol.v1beta3.FlowSchemaStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta3.FlowSchemaCondition\n          elementRelationship: associative\n          keys:\n          - type\n- name: io.k8s.api.flowcontrol.v1beta3.GroupSubject\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.flowcontrol.v1beta3.LimitResponse\n  map:\n    fields:\n    - name: queuing\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta3.QueuingConfiguration\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n    unions:\n    - discriminator: type\n      fields:\n      - fieldName: queuing\n        discriminatorValue: Queuing\n- name: io.k8s.api.flowcontrol.v1beta3.LimitedPriorityLevelConfiguration\n  map:\n    fields:\n    - name: borrowingLimitPercent\n      type:\n        scalar: numeric\n    - name: lendablePercent\n      type:\n        scalar: numeric\n    - name: limitResponse\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta3.LimitResponse\n      default: {}\n    - name: nominalConcurrencyShares\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.flowcontrol.v1beta3.NonResourcePolicyRule\n  map:\n    fields:\n    - name: nonResourceURLs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: verbs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n- name: io.k8s.api.flowcontrol.v1beta3.PolicyRulesWithSubjects\n  map:\n    fields:\n    - name: nonResourceRules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta3.NonResourcePolicyRule\n          elementRelationship: atomic\n    - name: resourceRules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta3.ResourcePolicyRule\n          elementRelationship: atomic\n    - name: subjects\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta3.Subject\n          elementRelationship: atomic\n- name: io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfiguration\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationStatus\n      default: {}\n- name: io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationCondition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n    - name: type\n      type:\n        scalar: string\n- name: io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationReference\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationSpec\n  map:\n    fields:\n    - name: exempt\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta3.ExemptPriorityLevelConfiguration\n    - name: limited\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta3.LimitedPriorityLevelConfiguration\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n    unions:\n    - discriminator: type\n      fields:\n      - fieldName: exempt\n        discriminatorValue: Exempt\n      - fieldName: limited\n        discriminatorValue: Limited\n- name: io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.flowcontrol.v1beta3.PriorityLevelConfigurationCondition\n          elementRelationship: associative\n          keys:\n          - type\n- name: io.k8s.api.flowcontrol.v1beta3.QueuingConfiguration\n  map:\n    fields:\n    - name: handSize\n      type:\n        scalar: numeric\n      default: 0\n    - name: queueLengthLimit\n      type:\n        scalar: numeric\n      default: 0\n    - name: queues\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.flowcontrol.v1beta3.ResourcePolicyRule\n  map:\n    fields:\n    - name: apiGroups\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: clusterScope\n      type:\n        scalar: boolean\n    - name: namespaces\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: resources\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: verbs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n- name: io.k8s.api.flowcontrol.v1beta3.ServiceAccountSubject\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: namespace\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.flowcontrol.v1beta3.Subject\n  map:\n    fields:\n    - name: group\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta3.GroupSubject\n    - name: kind\n      type:\n        scalar: string\n      default: \"\"\n    - name: serviceAccount\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta3.ServiceAccountSubject\n    - name: user\n      type:\n        namedType: io.k8s.api.flowcontrol.v1beta3.UserSubject\n    unions:\n    - discriminator: kind\n      fields:\n      - fieldName: group\n        discriminatorValue: Group\n      - fieldName: serviceAccount\n        discriminatorValue: ServiceAccount\n      - fieldName: user\n        discriminatorValue: User\n- name: io.k8s.api.flowcontrol.v1beta3.UserSubject\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.imagepolicy.v1alpha1.ImageReview\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.imagepolicy.v1alpha1.ImageReviewSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.imagepolicy.v1alpha1.ImageReviewStatus\n      default: {}\n- name: io.k8s.api.imagepolicy.v1alpha1.ImageReviewContainerSpec\n  map:\n    fields:\n    - name: image\n      type:\n        scalar: string\n- name: io.k8s.api.imagepolicy.v1alpha1.ImageReviewSpec\n  map:\n    fields:\n    - name: annotations\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: containers\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.imagepolicy.v1alpha1.ImageReviewContainerSpec\n          elementRelationship: atomic\n    - name: namespace\n      type:\n        scalar: string\n- name: io.k8s.api.imagepolicy.v1alpha1.ImageReviewStatus\n  map:\n    fields:\n    - name: allowed\n      type:\n        scalar: boolean\n      default: false\n    - name: auditAnnotations\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: reason\n      type:\n        scalar: string\n- name: io.k8s.api.networking.v1.HTTPIngressPath\n  map:\n    fields:\n    - name: backend\n      type:\n        namedType: io.k8s.api.networking.v1.IngressBackend\n      default: {}\n    - name: path\n      type:\n        scalar: string\n    - name: pathType\n      type:\n        scalar: string\n- name: io.k8s.api.networking.v1.HTTPIngressRuleValue\n  map:\n    fields:\n    - name: paths\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1.HTTPIngressPath\n          elementRelationship: atomic\n- name: io.k8s.api.networking.v1.IPBlock\n  map:\n    fields:\n    - name: cidr\n      type:\n        scalar: string\n      default: \"\"\n    - name: except\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.networking.v1.Ingress\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.networking.v1.IngressSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.networking.v1.IngressStatus\n      default: {}\n- name: io.k8s.api.networking.v1.IngressBackend\n  map:\n    fields:\n    - name: resource\n      type:\n        namedType: io.k8s.api.core.v1.TypedLocalObjectReference\n    - name: service\n      type:\n        namedType: io.k8s.api.networking.v1.IngressServiceBackend\n- name: io.k8s.api.networking.v1.IngressClass\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.networking.v1.IngressClassSpec\n      default: {}\n- name: io.k8s.api.networking.v1.IngressClassParametersReference\n  map:\n    fields:\n    - name: apiGroup\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: namespace\n      type:\n        scalar: string\n    - name: scope\n      type:\n        scalar: string\n- name: io.k8s.api.networking.v1.IngressClassSpec\n  map:\n    fields:\n    - name: controller\n      type:\n        scalar: string\n    - name: parameters\n      type:\n        namedType: io.k8s.api.networking.v1.IngressClassParametersReference\n- name: io.k8s.api.networking.v1.IngressLoadBalancerIngress\n  map:\n    fields:\n    - name: hostname\n      type:\n        scalar: string\n    - name: ip\n      type:\n        scalar: string\n    - name: ports\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1.IngressPortStatus\n          elementRelationship: atomic\n- name: io.k8s.api.networking.v1.IngressLoadBalancerStatus\n  map:\n    fields:\n    - name: ingress\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1.IngressLoadBalancerIngress\n          elementRelationship: atomic\n- name: io.k8s.api.networking.v1.IngressPortStatus\n  map:\n    fields:\n    - name: error\n      type:\n        scalar: string\n    - name: port\n      type:\n        scalar: numeric\n      default: 0\n    - name: protocol\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.networking.v1.IngressRule\n  map:\n    fields:\n    - name: host\n      type:\n        scalar: string\n    - name: http\n      type:\n        namedType: io.k8s.api.networking.v1.HTTPIngressRuleValue\n- name: io.k8s.api.networking.v1.IngressServiceBackend\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: port\n      type:\n        namedType: io.k8s.api.networking.v1.ServiceBackendPort\n      default: {}\n- name: io.k8s.api.networking.v1.IngressSpec\n  map:\n    fields:\n    - name: defaultBackend\n      type:\n        namedType: io.k8s.api.networking.v1.IngressBackend\n    - name: ingressClassName\n      type:\n        scalar: string\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1.IngressRule\n          elementRelationship: atomic\n    - name: tls\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1.IngressTLS\n          elementRelationship: atomic\n- name: io.k8s.api.networking.v1.IngressStatus\n  map:\n    fields:\n    - name: loadBalancer\n      type:\n        namedType: io.k8s.api.networking.v1.IngressLoadBalancerStatus\n      default: {}\n- name: io.k8s.api.networking.v1.IngressTLS\n  map:\n    fields:\n    - name: hosts\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: secretName\n      type:\n        scalar: string\n- name: io.k8s.api.networking.v1.NetworkPolicy\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.networking.v1.NetworkPolicySpec\n      default: {}\n- name: io.k8s.api.networking.v1.NetworkPolicyEgressRule\n  map:\n    fields:\n    - name: ports\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1.NetworkPolicyPort\n          elementRelationship: atomic\n    - name: to\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1.NetworkPolicyPeer\n          elementRelationship: atomic\n- name: io.k8s.api.networking.v1.NetworkPolicyIngressRule\n  map:\n    fields:\n    - name: from\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1.NetworkPolicyPeer\n          elementRelationship: atomic\n    - name: ports\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1.NetworkPolicyPort\n          elementRelationship: atomic\n- name: io.k8s.api.networking.v1.NetworkPolicyPeer\n  map:\n    fields:\n    - name: ipBlock\n      type:\n        namedType: io.k8s.api.networking.v1.IPBlock\n    - name: namespaceSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: podSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n- name: io.k8s.api.networking.v1.NetworkPolicyPort\n  map:\n    fields:\n    - name: endPort\n      type:\n        scalar: numeric\n    - name: port\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n    - name: protocol\n      type:\n        scalar: string\n- name: io.k8s.api.networking.v1.NetworkPolicySpec\n  map:\n    fields:\n    - name: egress\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1.NetworkPolicyEgressRule\n          elementRelationship: atomic\n    - name: ingress\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1.NetworkPolicyIngressRule\n          elementRelationship: atomic\n    - name: podSelector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n      default: {}\n    - name: policyTypes\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.networking.v1.ServiceBackendPort\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n    - name: number\n      type:\n        scalar: numeric\n    elementRelationship: atomic\n- name: io.k8s.api.networking.v1alpha1.IPAddress\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.networking.v1alpha1.IPAddressSpec\n      default: {}\n- name: io.k8s.api.networking.v1alpha1.IPAddressSpec\n  map:\n    fields:\n    - name: parentRef\n      type:\n        namedType: io.k8s.api.networking.v1alpha1.ParentReference\n- name: io.k8s.api.networking.v1alpha1.ParentReference\n  map:\n    fields:\n    - name: group\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n    - name: namespace\n      type:\n        scalar: string\n    - name: resource\n      type:\n        scalar: string\n- name: io.k8s.api.networking.v1alpha1.ServiceCIDR\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.networking.v1alpha1.ServiceCIDRSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.networking.v1alpha1.ServiceCIDRStatus\n      default: {}\n- name: io.k8s.api.networking.v1alpha1.ServiceCIDRSpec\n  map:\n    fields:\n    - name: cidrs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.networking.v1alpha1.ServiceCIDRStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Condition\n          elementRelationship: associative\n          keys:\n          - type\n- name: io.k8s.api.networking.v1beta1.HTTPIngressPath\n  map:\n    fields:\n    - name: backend\n      type:\n        namedType: io.k8s.api.networking.v1beta1.IngressBackend\n      default: {}\n    - name: path\n      type:\n        scalar: string\n    - name: pathType\n      type:\n        scalar: string\n- name: io.k8s.api.networking.v1beta1.HTTPIngressRuleValue\n  map:\n    fields:\n    - name: paths\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1beta1.HTTPIngressPath\n          elementRelationship: atomic\n- name: io.k8s.api.networking.v1beta1.IPAddress\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.networking.v1beta1.IPAddressSpec\n      default: {}\n- name: io.k8s.api.networking.v1beta1.IPAddressSpec\n  map:\n    fields:\n    - name: parentRef\n      type:\n        namedType: io.k8s.api.networking.v1beta1.ParentReference\n- name: io.k8s.api.networking.v1beta1.Ingress\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.networking.v1beta1.IngressSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.networking.v1beta1.IngressStatus\n      default: {}\n- name: io.k8s.api.networking.v1beta1.IngressBackend\n  map:\n    fields:\n    - name: resource\n      type:\n        namedType: io.k8s.api.core.v1.TypedLocalObjectReference\n    - name: serviceName\n      type:\n        scalar: string\n    - name: servicePort\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n- name: io.k8s.api.networking.v1beta1.IngressClass\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.networking.v1beta1.IngressClassSpec\n      default: {}\n- name: io.k8s.api.networking.v1beta1.IngressClassParametersReference\n  map:\n    fields:\n    - name: apiGroup\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: namespace\n      type:\n        scalar: string\n    - name: scope\n      type:\n        scalar: string\n- name: io.k8s.api.networking.v1beta1.IngressClassSpec\n  map:\n    fields:\n    - name: controller\n      type:\n        scalar: string\n    - name: parameters\n      type:\n        namedType: io.k8s.api.networking.v1beta1.IngressClassParametersReference\n- name: io.k8s.api.networking.v1beta1.IngressLoadBalancerIngress\n  map:\n    fields:\n    - name: hostname\n      type:\n        scalar: string\n    - name: ip\n      type:\n        scalar: string\n    - name: ports\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1beta1.IngressPortStatus\n          elementRelationship: atomic\n- name: io.k8s.api.networking.v1beta1.IngressLoadBalancerStatus\n  map:\n    fields:\n    - name: ingress\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1beta1.IngressLoadBalancerIngress\n          elementRelationship: atomic\n- name: io.k8s.api.networking.v1beta1.IngressPortStatus\n  map:\n    fields:\n    - name: error\n      type:\n        scalar: string\n    - name: port\n      type:\n        scalar: numeric\n      default: 0\n    - name: protocol\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.networking.v1beta1.IngressRule\n  map:\n    fields:\n    - name: host\n      type:\n        scalar: string\n    - name: http\n      type:\n        namedType: io.k8s.api.networking.v1beta1.HTTPIngressRuleValue\n- name: io.k8s.api.networking.v1beta1.IngressSpec\n  map:\n    fields:\n    - name: backend\n      type:\n        namedType: io.k8s.api.networking.v1beta1.IngressBackend\n    - name: ingressClassName\n      type:\n        scalar: string\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1beta1.IngressRule\n          elementRelationship: atomic\n    - name: tls\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.networking.v1beta1.IngressTLS\n          elementRelationship: atomic\n- name: io.k8s.api.networking.v1beta1.IngressStatus\n  map:\n    fields:\n    - name: loadBalancer\n      type:\n        namedType: io.k8s.api.networking.v1beta1.IngressLoadBalancerStatus\n      default: {}\n- name: io.k8s.api.networking.v1beta1.IngressTLS\n  map:\n    fields:\n    - name: hosts\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: secretName\n      type:\n        scalar: string\n- name: io.k8s.api.networking.v1beta1.ParentReference\n  map:\n    fields:\n    - name: group\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n    - name: namespace\n      type:\n        scalar: string\n    - name: resource\n      type:\n        scalar: string\n- name: io.k8s.api.networking.v1beta1.ServiceCIDR\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.networking.v1beta1.ServiceCIDRSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.networking.v1beta1.ServiceCIDRStatus\n      default: {}\n- name: io.k8s.api.networking.v1beta1.ServiceCIDRSpec\n  map:\n    fields:\n    - name: cidrs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.networking.v1beta1.ServiceCIDRStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Condition\n          elementRelationship: associative\n          keys:\n          - type\n- name: io.k8s.api.node.v1.Overhead\n  map:\n    fields:\n    - name: podFixed\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n- name: io.k8s.api.node.v1.RuntimeClass\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: handler\n      type:\n        scalar: string\n      default: \"\"\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: overhead\n      type:\n        namedType: io.k8s.api.node.v1.Overhead\n    - name: scheduling\n      type:\n        namedType: io.k8s.api.node.v1.Scheduling\n- name: io.k8s.api.node.v1.Scheduling\n  map:\n    fields:\n    - name: nodeSelector\n      type:\n        map:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: tolerations\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.Toleration\n          elementRelationship: atomic\n- name: io.k8s.api.node.v1alpha1.Overhead\n  map:\n    fields:\n    - name: podFixed\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n- name: io.k8s.api.node.v1alpha1.RuntimeClass\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.node.v1alpha1.RuntimeClassSpec\n      default: {}\n- name: io.k8s.api.node.v1alpha1.RuntimeClassSpec\n  map:\n    fields:\n    - name: overhead\n      type:\n        namedType: io.k8s.api.node.v1alpha1.Overhead\n    - name: runtimeHandler\n      type:\n        scalar: string\n      default: \"\"\n    - name: scheduling\n      type:\n        namedType: io.k8s.api.node.v1alpha1.Scheduling\n- name: io.k8s.api.node.v1alpha1.Scheduling\n  map:\n    fields:\n    - name: nodeSelector\n      type:\n        map:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: tolerations\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.Toleration\n          elementRelationship: atomic\n- name: io.k8s.api.node.v1beta1.Overhead\n  map:\n    fields:\n    - name: podFixed\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n- name: io.k8s.api.node.v1beta1.RuntimeClass\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: handler\n      type:\n        scalar: string\n      default: \"\"\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: overhead\n      type:\n        namedType: io.k8s.api.node.v1beta1.Overhead\n    - name: scheduling\n      type:\n        namedType: io.k8s.api.node.v1beta1.Scheduling\n- name: io.k8s.api.node.v1beta1.Scheduling\n  map:\n    fields:\n    - name: nodeSelector\n      type:\n        map:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: tolerations\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.Toleration\n          elementRelationship: atomic\n- name: io.k8s.api.policy.v1.Eviction\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: deleteOptions\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n- name: io.k8s.api.policy.v1.PodDisruptionBudget\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.policy.v1.PodDisruptionBudgetSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.policy.v1.PodDisruptionBudgetStatus\n      default: {}\n- name: io.k8s.api.policy.v1.PodDisruptionBudgetSpec\n  map:\n    fields:\n    - name: maxUnavailable\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n    - name: minAvailable\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: unhealthyPodEvictionPolicy\n      type:\n        scalar: string\n- name: io.k8s.api.policy.v1.PodDisruptionBudgetStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Condition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: currentHealthy\n      type:\n        scalar: numeric\n      default: 0\n    - name: desiredHealthy\n      type:\n        scalar: numeric\n      default: 0\n    - name: disruptedPods\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: disruptionsAllowed\n      type:\n        scalar: numeric\n      default: 0\n    - name: expectedPods\n      type:\n        scalar: numeric\n      default: 0\n    - name: observedGeneration\n      type:\n        scalar: numeric\n- name: io.k8s.api.policy.v1beta1.Eviction\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: deleteOptions\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n- name: io.k8s.api.policy.v1beta1.PodDisruptionBudget\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.policy.v1beta1.PodDisruptionBudgetSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.policy.v1beta1.PodDisruptionBudgetStatus\n      default: {}\n- name: io.k8s.api.policy.v1beta1.PodDisruptionBudgetSpec\n  map:\n    fields:\n    - name: maxUnavailable\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n    - name: minAvailable\n      type:\n        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n    - name: selector\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: unhealthyPodEvictionPolicy\n      type:\n        scalar: string\n- name: io.k8s.api.policy.v1beta1.PodDisruptionBudgetStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Condition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: currentHealthy\n      type:\n        scalar: numeric\n      default: 0\n    - name: desiredHealthy\n      type:\n        scalar: numeric\n      default: 0\n    - name: disruptedPods\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: disruptionsAllowed\n      type:\n        scalar: numeric\n      default: 0\n    - name: expectedPods\n      type:\n        scalar: numeric\n      default: 0\n    - name: observedGeneration\n      type:\n        scalar: numeric\n- name: io.k8s.api.rbac.v1.AggregationRule\n  map:\n    fields:\n    - name: clusterRoleSelectors\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n          elementRelationship: atomic\n- name: io.k8s.api.rbac.v1.ClusterRole\n  map:\n    fields:\n    - name: aggregationRule\n      type:\n        namedType: io.k8s.api.rbac.v1.AggregationRule\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.rbac.v1.PolicyRule\n          elementRelationship: atomic\n- name: io.k8s.api.rbac.v1.ClusterRoleBinding\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: roleRef\n      type:\n        namedType: io.k8s.api.rbac.v1.RoleRef\n      default: {}\n    - name: subjects\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.rbac.v1.Subject\n          elementRelationship: atomic\n- name: io.k8s.api.rbac.v1.PolicyRule\n  map:\n    fields:\n    - name: apiGroups\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: nonResourceURLs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: resourceNames\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: resources\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: verbs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.rbac.v1.Role\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.rbac.v1.PolicyRule\n          elementRelationship: atomic\n- name: io.k8s.api.rbac.v1.RoleBinding\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: roleRef\n      type:\n        namedType: io.k8s.api.rbac.v1.RoleRef\n      default: {}\n    - name: subjects\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.rbac.v1.Subject\n          elementRelationship: atomic\n- name: io.k8s.api.rbac.v1.RoleRef\n  map:\n    fields:\n    - name: apiGroup\n      type:\n        scalar: string\n      default: \"\"\n    - name: kind\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    elementRelationship: atomic\n- name: io.k8s.api.rbac.v1.Subject\n  map:\n    fields:\n    - name: apiGroup\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: namespace\n      type:\n        scalar: string\n    elementRelationship: atomic\n- name: io.k8s.api.rbac.v1alpha1.AggregationRule\n  map:\n    fields:\n    - name: clusterRoleSelectors\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n          elementRelationship: atomic\n- name: io.k8s.api.rbac.v1alpha1.ClusterRole\n  map:\n    fields:\n    - name: aggregationRule\n      type:\n        namedType: io.k8s.api.rbac.v1alpha1.AggregationRule\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.rbac.v1alpha1.PolicyRule\n          elementRelationship: atomic\n- name: io.k8s.api.rbac.v1alpha1.ClusterRoleBinding\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: roleRef\n      type:\n        namedType: io.k8s.api.rbac.v1alpha1.RoleRef\n      default: {}\n    - name: subjects\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.rbac.v1alpha1.Subject\n          elementRelationship: atomic\n- name: io.k8s.api.rbac.v1alpha1.PolicyRule\n  map:\n    fields:\n    - name: apiGroups\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: nonResourceURLs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: resourceNames\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: resources\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: verbs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.rbac.v1alpha1.Role\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.rbac.v1alpha1.PolicyRule\n          elementRelationship: atomic\n- name: io.k8s.api.rbac.v1alpha1.RoleBinding\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: roleRef\n      type:\n        namedType: io.k8s.api.rbac.v1alpha1.RoleRef\n      default: {}\n    - name: subjects\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.rbac.v1alpha1.Subject\n          elementRelationship: atomic\n- name: io.k8s.api.rbac.v1alpha1.RoleRef\n  map:\n    fields:\n    - name: apiGroup\n      type:\n        scalar: string\n      default: \"\"\n    - name: kind\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.rbac.v1alpha1.Subject\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: namespace\n      type:\n        scalar: string\n- name: io.k8s.api.rbac.v1beta1.AggregationRule\n  map:\n    fields:\n    - name: clusterRoleSelectors\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n          elementRelationship: atomic\n- name: io.k8s.api.rbac.v1beta1.ClusterRole\n  map:\n    fields:\n    - name: aggregationRule\n      type:\n        namedType: io.k8s.api.rbac.v1beta1.AggregationRule\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.rbac.v1beta1.PolicyRule\n          elementRelationship: atomic\n- name: io.k8s.api.rbac.v1beta1.ClusterRoleBinding\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: roleRef\n      type:\n        namedType: io.k8s.api.rbac.v1beta1.RoleRef\n      default: {}\n    - name: subjects\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.rbac.v1beta1.Subject\n          elementRelationship: atomic\n- name: io.k8s.api.rbac.v1beta1.PolicyRule\n  map:\n    fields:\n    - name: apiGroups\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: nonResourceURLs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: resourceNames\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: resources\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: verbs\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.rbac.v1beta1.Role\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: rules\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.rbac.v1beta1.PolicyRule\n          elementRelationship: atomic\n- name: io.k8s.api.rbac.v1beta1.RoleBinding\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: roleRef\n      type:\n        namedType: io.k8s.api.rbac.v1beta1.RoleRef\n      default: {}\n    - name: subjects\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.rbac.v1beta1.Subject\n          elementRelationship: atomic\n- name: io.k8s.api.rbac.v1beta1.RoleRef\n  map:\n    fields:\n    - name: apiGroup\n      type:\n        scalar: string\n      default: \"\"\n    - name: kind\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.rbac.v1beta1.Subject\n  map:\n    fields:\n    - name: apiGroup\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: namespace\n      type:\n        scalar: string\n- name: io.k8s.api.resource.v1alpha3.AllocatedDeviceStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Condition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: data\n      type:\n        namedType: __untyped_atomic_\n    - name: device\n      type:\n        scalar: string\n      default: \"\"\n    - name: driver\n      type:\n        scalar: string\n      default: \"\"\n    - name: networkData\n      type:\n        namedType: io.k8s.api.resource.v1alpha3.NetworkDeviceData\n    - name: pool\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.resource.v1alpha3.AllocationResult\n  map:\n    fields:\n    - name: devices\n      type:\n        namedType: io.k8s.api.resource.v1alpha3.DeviceAllocationResult\n      default: {}\n    - name: nodeSelector\n      type:\n        namedType: io.k8s.api.core.v1.NodeSelector\n- name: io.k8s.api.resource.v1alpha3.BasicDevice\n  map:\n    fields:\n    - name: attributes\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.api.resource.v1alpha3.DeviceAttribute\n    - name: capacity\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n- name: io.k8s.api.resource.v1alpha3.CELDeviceSelector\n  map:\n    fields:\n    - name: expression\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.resource.v1alpha3.Device\n  map:\n    fields:\n    - name: basic\n      type:\n        namedType: io.k8s.api.resource.v1alpha3.BasicDevice\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.resource.v1alpha3.DeviceAllocationConfiguration\n  map:\n    fields:\n    - name: opaque\n      type:\n        namedType: io.k8s.api.resource.v1alpha3.OpaqueDeviceConfiguration\n    - name: requests\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: source\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.resource.v1alpha3.DeviceAllocationResult\n  map:\n    fields:\n    - name: config\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.resource.v1alpha3.DeviceAllocationConfiguration\n          elementRelationship: atomic\n    - name: results\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.resource.v1alpha3.DeviceRequestAllocationResult\n          elementRelationship: atomic\n- name: io.k8s.api.resource.v1alpha3.DeviceAttribute\n  map:\n    fields:\n    - name: bool\n      type:\n        scalar: boolean\n    - name: int\n      type:\n        scalar: numeric\n    - name: string\n      type:\n        scalar: string\n    - name: version\n      type:\n        scalar: string\n- name: io.k8s.api.resource.v1alpha3.DeviceClaim\n  map:\n    fields:\n    - name: config\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.resource.v1alpha3.DeviceClaimConfiguration\n          elementRelationship: atomic\n    - name: constraints\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.resource.v1alpha3.DeviceConstraint\n          elementRelationship: atomic\n    - name: requests\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.resource.v1alpha3.DeviceRequest\n          elementRelationship: atomic\n- name: io.k8s.api.resource.v1alpha3.DeviceClaimConfiguration\n  map:\n    fields:\n    - name: opaque\n      type:\n        namedType: io.k8s.api.resource.v1alpha3.OpaqueDeviceConfiguration\n    - name: requests\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.resource.v1alpha3.DeviceClass\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.resource.v1alpha3.DeviceClassSpec\n      default: {}\n- name: io.k8s.api.resource.v1alpha3.DeviceClassConfiguration\n  map:\n    fields:\n    - name: opaque\n      type:\n        namedType: io.k8s.api.resource.v1alpha3.OpaqueDeviceConfiguration\n- name: io.k8s.api.resource.v1alpha3.DeviceClassSpec\n  map:\n    fields:\n    - name: config\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.resource.v1alpha3.DeviceClassConfiguration\n          elementRelationship: atomic\n    - name: selectors\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.resource.v1alpha3.DeviceSelector\n          elementRelationship: atomic\n- name: io.k8s.api.resource.v1alpha3.DeviceConstraint\n  map:\n    fields:\n    - name: matchAttribute\n      type:\n        scalar: string\n    - name: requests\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.resource.v1alpha3.DeviceRequest\n  map:\n    fields:\n    - name: adminAccess\n      type:\n        scalar: boolean\n    - name: allocationMode\n      type:\n        scalar: string\n    - name: count\n      type:\n        scalar: numeric\n    - name: deviceClassName\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: selectors\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.resource.v1alpha3.DeviceSelector\n          elementRelationship: atomic\n- name: io.k8s.api.resource.v1alpha3.DeviceRequestAllocationResult\n  map:\n    fields:\n    - name: adminAccess\n      type:\n        scalar: boolean\n    - name: device\n      type:\n        scalar: string\n      default: \"\"\n    - name: driver\n      type:\n        scalar: string\n      default: \"\"\n    - name: pool\n      type:\n        scalar: string\n      default: \"\"\n    - name: request\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.resource.v1alpha3.DeviceSelector\n  map:\n    fields:\n    - name: cel\n      type:\n        namedType: io.k8s.api.resource.v1alpha3.CELDeviceSelector\n- name: io.k8s.api.resource.v1alpha3.NetworkDeviceData\n  map:\n    fields:\n    - name: hardwareAddress\n      type:\n        scalar: string\n    - name: interfaceName\n      type:\n        scalar: string\n    - name: ips\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.resource.v1alpha3.OpaqueDeviceConfiguration\n  map:\n    fields:\n    - name: driver\n      type:\n        scalar: string\n      default: \"\"\n    - name: parameters\n      type:\n        namedType: __untyped_atomic_\n- name: io.k8s.api.resource.v1alpha3.ResourceClaim\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.resource.v1alpha3.ResourceClaimSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.resource.v1alpha3.ResourceClaimStatus\n      default: {}\n- name: io.k8s.api.resource.v1alpha3.ResourceClaimConsumerReference\n  map:\n    fields:\n    - name: apiGroup\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: resource\n      type:\n        scalar: string\n      default: \"\"\n    - name: uid\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.resource.v1alpha3.ResourceClaimSpec\n  map:\n    fields:\n    - name: devices\n      type:\n        namedType: io.k8s.api.resource.v1alpha3.DeviceClaim\n      default: {}\n- name: io.k8s.api.resource.v1alpha3.ResourceClaimStatus\n  map:\n    fields:\n    - name: allocation\n      type:\n        namedType: io.k8s.api.resource.v1alpha3.AllocationResult\n    - name: devices\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.resource.v1alpha3.AllocatedDeviceStatus\n          elementRelationship: associative\n          keys:\n          - driver\n          - device\n          - pool\n    - name: reservedFor\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.resource.v1alpha3.ResourceClaimConsumerReference\n          elementRelationship: associative\n          keys:\n          - uid\n- name: io.k8s.api.resource.v1alpha3.ResourceClaimTemplate\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.resource.v1alpha3.ResourceClaimTemplateSpec\n      default: {}\n- name: io.k8s.api.resource.v1alpha3.ResourceClaimTemplateSpec\n  map:\n    fields:\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.resource.v1alpha3.ResourceClaimSpec\n      default: {}\n- name: io.k8s.api.resource.v1alpha3.ResourcePool\n  map:\n    fields:\n    - name: generation\n      type:\n        scalar: numeric\n      default: 0\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: resourceSliceCount\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.resource.v1alpha3.ResourceSlice\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.resource.v1alpha3.ResourceSliceSpec\n      default: {}\n- name: io.k8s.api.resource.v1alpha3.ResourceSliceSpec\n  map:\n    fields:\n    - name: allNodes\n      type:\n        scalar: boolean\n    - name: devices\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.resource.v1alpha3.Device\n          elementRelationship: atomic\n    - name: driver\n      type:\n        scalar: string\n      default: \"\"\n    - name: nodeName\n      type:\n        scalar: string\n    - name: nodeSelector\n      type:\n        namedType: io.k8s.api.core.v1.NodeSelector\n    - name: pool\n      type:\n        namedType: io.k8s.api.resource.v1alpha3.ResourcePool\n      default: {}\n- name: io.k8s.api.resource.v1beta1.AllocatedDeviceStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Condition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: data\n      type:\n        namedType: __untyped_atomic_\n    - name: device\n      type:\n        scalar: string\n      default: \"\"\n    - name: driver\n      type:\n        scalar: string\n      default: \"\"\n    - name: networkData\n      type:\n        namedType: io.k8s.api.resource.v1beta1.NetworkDeviceData\n    - name: pool\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.resource.v1beta1.AllocationResult\n  map:\n    fields:\n    - name: devices\n      type:\n        namedType: io.k8s.api.resource.v1beta1.DeviceAllocationResult\n      default: {}\n    - name: nodeSelector\n      type:\n        namedType: io.k8s.api.core.v1.NodeSelector\n- name: io.k8s.api.resource.v1beta1.BasicDevice\n  map:\n    fields:\n    - name: attributes\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.api.resource.v1beta1.DeviceAttribute\n    - name: capacity\n      type:\n        map:\n          elementType:\n            namedType: io.k8s.api.resource.v1beta1.DeviceCapacity\n- name: io.k8s.api.resource.v1beta1.CELDeviceSelector\n  map:\n    fields:\n    - name: expression\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.resource.v1beta1.Device\n  map:\n    fields:\n    - name: basic\n      type:\n        namedType: io.k8s.api.resource.v1beta1.BasicDevice\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.resource.v1beta1.DeviceAllocationConfiguration\n  map:\n    fields:\n    - name: opaque\n      type:\n        namedType: io.k8s.api.resource.v1beta1.OpaqueDeviceConfiguration\n    - name: requests\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: source\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.resource.v1beta1.DeviceAllocationResult\n  map:\n    fields:\n    - name: config\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.resource.v1beta1.DeviceAllocationConfiguration\n          elementRelationship: atomic\n    - name: results\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.resource.v1beta1.DeviceRequestAllocationResult\n          elementRelationship: atomic\n- name: io.k8s.api.resource.v1beta1.DeviceAttribute\n  map:\n    fields:\n    - name: bool\n      type:\n        scalar: boolean\n    - name: int\n      type:\n        scalar: numeric\n    - name: string\n      type:\n        scalar: string\n    - name: version\n      type:\n        scalar: string\n- name: io.k8s.api.resource.v1beta1.DeviceCapacity\n  map:\n    fields:\n    - name: value\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n- name: io.k8s.api.resource.v1beta1.DeviceClaim\n  map:\n    fields:\n    - name: config\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.resource.v1beta1.DeviceClaimConfiguration\n          elementRelationship: atomic\n    - name: constraints\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.resource.v1beta1.DeviceConstraint\n          elementRelationship: atomic\n    - name: requests\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.resource.v1beta1.DeviceRequest\n          elementRelationship: atomic\n- name: io.k8s.api.resource.v1beta1.DeviceClaimConfiguration\n  map:\n    fields:\n    - name: opaque\n      type:\n        namedType: io.k8s.api.resource.v1beta1.OpaqueDeviceConfiguration\n    - name: requests\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.resource.v1beta1.DeviceClass\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.resource.v1beta1.DeviceClassSpec\n      default: {}\n- name: io.k8s.api.resource.v1beta1.DeviceClassConfiguration\n  map:\n    fields:\n    - name: opaque\n      type:\n        namedType: io.k8s.api.resource.v1beta1.OpaqueDeviceConfiguration\n- name: io.k8s.api.resource.v1beta1.DeviceClassSpec\n  map:\n    fields:\n    - name: config\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.resource.v1beta1.DeviceClassConfiguration\n          elementRelationship: atomic\n    - name: selectors\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.resource.v1beta1.DeviceSelector\n          elementRelationship: atomic\n- name: io.k8s.api.resource.v1beta1.DeviceConstraint\n  map:\n    fields:\n    - name: matchAttribute\n      type:\n        scalar: string\n    - name: requests\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.resource.v1beta1.DeviceRequest\n  map:\n    fields:\n    - name: adminAccess\n      type:\n        scalar: boolean\n    - name: allocationMode\n      type:\n        scalar: string\n    - name: count\n      type:\n        scalar: numeric\n    - name: deviceClassName\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: selectors\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.resource.v1beta1.DeviceSelector\n          elementRelationship: atomic\n- name: io.k8s.api.resource.v1beta1.DeviceRequestAllocationResult\n  map:\n    fields:\n    - name: adminAccess\n      type:\n        scalar: boolean\n    - name: device\n      type:\n        scalar: string\n      default: \"\"\n    - name: driver\n      type:\n        scalar: string\n      default: \"\"\n    - name: pool\n      type:\n        scalar: string\n      default: \"\"\n    - name: request\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.resource.v1beta1.DeviceSelector\n  map:\n    fields:\n    - name: cel\n      type:\n        namedType: io.k8s.api.resource.v1beta1.CELDeviceSelector\n- name: io.k8s.api.resource.v1beta1.NetworkDeviceData\n  map:\n    fields:\n    - name: hardwareAddress\n      type:\n        scalar: string\n    - name: interfaceName\n      type:\n        scalar: string\n    - name: ips\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.resource.v1beta1.OpaqueDeviceConfiguration\n  map:\n    fields:\n    - name: driver\n      type:\n        scalar: string\n      default: \"\"\n    - name: parameters\n      type:\n        namedType: __untyped_atomic_\n- name: io.k8s.api.resource.v1beta1.ResourceClaim\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.resource.v1beta1.ResourceClaimSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.resource.v1beta1.ResourceClaimStatus\n      default: {}\n- name: io.k8s.api.resource.v1beta1.ResourceClaimConsumerReference\n  map:\n    fields:\n    - name: apiGroup\n      type:\n        scalar: string\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: resource\n      type:\n        scalar: string\n      default: \"\"\n    - name: uid\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.resource.v1beta1.ResourceClaimSpec\n  map:\n    fields:\n    - name: devices\n      type:\n        namedType: io.k8s.api.resource.v1beta1.DeviceClaim\n      default: {}\n- name: io.k8s.api.resource.v1beta1.ResourceClaimStatus\n  map:\n    fields:\n    - name: allocation\n      type:\n        namedType: io.k8s.api.resource.v1beta1.AllocationResult\n    - name: devices\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.resource.v1beta1.AllocatedDeviceStatus\n          elementRelationship: associative\n          keys:\n          - driver\n          - device\n          - pool\n    - name: reservedFor\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.resource.v1beta1.ResourceClaimConsumerReference\n          elementRelationship: associative\n          keys:\n          - uid\n- name: io.k8s.api.resource.v1beta1.ResourceClaimTemplate\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.resource.v1beta1.ResourceClaimTemplateSpec\n      default: {}\n- name: io.k8s.api.resource.v1beta1.ResourceClaimTemplateSpec\n  map:\n    fields:\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.resource.v1beta1.ResourceClaimSpec\n      default: {}\n- name: io.k8s.api.resource.v1beta1.ResourcePool\n  map:\n    fields:\n    - name: generation\n      type:\n        scalar: numeric\n      default: 0\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: resourceSliceCount\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.resource.v1beta1.ResourceSlice\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.resource.v1beta1.ResourceSliceSpec\n      default: {}\n- name: io.k8s.api.resource.v1beta1.ResourceSliceSpec\n  map:\n    fields:\n    - name: allNodes\n      type:\n        scalar: boolean\n    - name: devices\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.resource.v1beta1.Device\n          elementRelationship: atomic\n    - name: driver\n      type:\n        scalar: string\n      default: \"\"\n    - name: nodeName\n      type:\n        scalar: string\n    - name: nodeSelector\n      type:\n        namedType: io.k8s.api.core.v1.NodeSelector\n    - name: pool\n      type:\n        namedType: io.k8s.api.resource.v1beta1.ResourcePool\n      default: {}\n- name: io.k8s.api.scheduling.v1.PriorityClass\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: description\n      type:\n        scalar: string\n    - name: globalDefault\n      type:\n        scalar: boolean\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: preemptionPolicy\n      type:\n        scalar: string\n    - name: value\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.scheduling.v1alpha1.PriorityClass\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: description\n      type:\n        scalar: string\n    - name: globalDefault\n      type:\n        scalar: boolean\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: preemptionPolicy\n      type:\n        scalar: string\n    - name: value\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.scheduling.v1beta1.PriorityClass\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: description\n      type:\n        scalar: string\n    - name: globalDefault\n      type:\n        scalar: boolean\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: preemptionPolicy\n      type:\n        scalar: string\n    - name: value\n      type:\n        scalar: numeric\n      default: 0\n- name: io.k8s.api.storage.v1.CSIDriver\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.storage.v1.CSIDriverSpec\n      default: {}\n- name: io.k8s.api.storage.v1.CSIDriverSpec\n  map:\n    fields:\n    - name: attachRequired\n      type:\n        scalar: boolean\n    - name: fsGroupPolicy\n      type:\n        scalar: string\n    - name: podInfoOnMount\n      type:\n        scalar: boolean\n    - name: requiresRepublish\n      type:\n        scalar: boolean\n    - name: seLinuxMount\n      type:\n        scalar: boolean\n    - name: storageCapacity\n      type:\n        scalar: boolean\n    - name: tokenRequests\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.storage.v1.TokenRequest\n          elementRelationship: atomic\n    - name: volumeLifecycleModes\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n- name: io.k8s.api.storage.v1.CSINode\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.storage.v1.CSINodeSpec\n      default: {}\n- name: io.k8s.api.storage.v1.CSINodeDriver\n  map:\n    fields:\n    - name: allocatable\n      type:\n        namedType: io.k8s.api.storage.v1.VolumeNodeResources\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: nodeID\n      type:\n        scalar: string\n      default: \"\"\n    - name: topologyKeys\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.storage.v1.CSINodeSpec\n  map:\n    fields:\n    - name: drivers\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.storage.v1.CSINodeDriver\n          elementRelationship: associative\n          keys:\n          - name\n- name: io.k8s.api.storage.v1.CSIStorageCapacity\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: capacity\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: kind\n      type:\n        scalar: string\n    - name: maximumVolumeSize\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: nodeTopology\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: storageClassName\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.storage.v1.StorageClass\n  map:\n    fields:\n    - name: allowVolumeExpansion\n      type:\n        scalar: boolean\n    - name: allowedTopologies\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.TopologySelectorTerm\n          elementRelationship: atomic\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: mountOptions\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: parameters\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: provisioner\n      type:\n        scalar: string\n      default: \"\"\n    - name: reclaimPolicy\n      type:\n        scalar: string\n    - name: volumeBindingMode\n      type:\n        scalar: string\n- name: io.k8s.api.storage.v1.TokenRequest\n  map:\n    fields:\n    - name: audience\n      type:\n        scalar: string\n      default: \"\"\n    - name: expirationSeconds\n      type:\n        scalar: numeric\n- name: io.k8s.api.storage.v1.VolumeAttachment\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.storage.v1.VolumeAttachmentSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.storage.v1.VolumeAttachmentStatus\n      default: {}\n- name: io.k8s.api.storage.v1.VolumeAttachmentSource\n  map:\n    fields:\n    - name: inlineVolumeSpec\n      type:\n        namedType: io.k8s.api.core.v1.PersistentVolumeSpec\n    - name: persistentVolumeName\n      type:\n        scalar: string\n- name: io.k8s.api.storage.v1.VolumeAttachmentSpec\n  map:\n    fields:\n    - name: attacher\n      type:\n        scalar: string\n      default: \"\"\n    - name: nodeName\n      type:\n        scalar: string\n      default: \"\"\n    - name: source\n      type:\n        namedType: io.k8s.api.storage.v1.VolumeAttachmentSource\n      default: {}\n- name: io.k8s.api.storage.v1.VolumeAttachmentStatus\n  map:\n    fields:\n    - name: attachError\n      type:\n        namedType: io.k8s.api.storage.v1.VolumeError\n    - name: attached\n      type:\n        scalar: boolean\n      default: false\n    - name: attachmentMetadata\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: detachError\n      type:\n        namedType: io.k8s.api.storage.v1.VolumeError\n- name: io.k8s.api.storage.v1.VolumeError\n  map:\n    fields:\n    - name: message\n      type:\n        scalar: string\n    - name: time\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n- name: io.k8s.api.storage.v1.VolumeNodeResources\n  map:\n    fields:\n    - name: count\n      type:\n        scalar: numeric\n- name: io.k8s.api.storage.v1alpha1.CSIStorageCapacity\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: capacity\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: kind\n      type:\n        scalar: string\n    - name: maximumVolumeSize\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: nodeTopology\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: storageClassName\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.storage.v1alpha1.VolumeAttachment\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.storage.v1alpha1.VolumeAttachmentSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.storage.v1alpha1.VolumeAttachmentStatus\n      default: {}\n- name: io.k8s.api.storage.v1alpha1.VolumeAttachmentSource\n  map:\n    fields:\n    - name: inlineVolumeSpec\n      type:\n        namedType: io.k8s.api.core.v1.PersistentVolumeSpec\n    - name: persistentVolumeName\n      type:\n        scalar: string\n- name: io.k8s.api.storage.v1alpha1.VolumeAttachmentSpec\n  map:\n    fields:\n    - name: attacher\n      type:\n        scalar: string\n      default: \"\"\n    - name: nodeName\n      type:\n        scalar: string\n      default: \"\"\n    - name: source\n      type:\n        namedType: io.k8s.api.storage.v1alpha1.VolumeAttachmentSource\n      default: {}\n- name: io.k8s.api.storage.v1alpha1.VolumeAttachmentStatus\n  map:\n    fields:\n    - name: attachError\n      type:\n        namedType: io.k8s.api.storage.v1alpha1.VolumeError\n    - name: attached\n      type:\n        scalar: boolean\n      default: false\n    - name: attachmentMetadata\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: detachError\n      type:\n        namedType: io.k8s.api.storage.v1alpha1.VolumeError\n- name: io.k8s.api.storage.v1alpha1.VolumeAttributesClass\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: driverName\n      type:\n        scalar: string\n      default: \"\"\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: parameters\n      type:\n        map:\n          elementType:\n            scalar: string\n- name: io.k8s.api.storage.v1alpha1.VolumeError\n  map:\n    fields:\n    - name: message\n      type:\n        scalar: string\n    - name: time\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n- name: io.k8s.api.storage.v1beta1.CSIDriver\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.storage.v1beta1.CSIDriverSpec\n      default: {}\n- name: io.k8s.api.storage.v1beta1.CSIDriverSpec\n  map:\n    fields:\n    - name: attachRequired\n      type:\n        scalar: boolean\n    - name: fsGroupPolicy\n      type:\n        scalar: string\n    - name: podInfoOnMount\n      type:\n        scalar: boolean\n    - name: requiresRepublish\n      type:\n        scalar: boolean\n    - name: seLinuxMount\n      type:\n        scalar: boolean\n    - name: storageCapacity\n      type:\n        scalar: boolean\n    - name: tokenRequests\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.storage.v1beta1.TokenRequest\n          elementRelationship: atomic\n    - name: volumeLifecycleModes\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.storage.v1beta1.CSINode\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.storage.v1beta1.CSINodeSpec\n      default: {}\n- name: io.k8s.api.storage.v1beta1.CSINodeDriver\n  map:\n    fields:\n    - name: allocatable\n      type:\n        namedType: io.k8s.api.storage.v1beta1.VolumeNodeResources\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: nodeID\n      type:\n        scalar: string\n      default: \"\"\n    - name: topologyKeys\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.api.storage.v1beta1.CSINodeSpec\n  map:\n    fields:\n    - name: drivers\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.storage.v1beta1.CSINodeDriver\n          elementRelationship: associative\n          keys:\n          - name\n- name: io.k8s.api.storage.v1beta1.CSIStorageCapacity\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: capacity\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: kind\n      type:\n        scalar: string\n    - name: maximumVolumeSize\n      type:\n        namedType: io.k8s.apimachinery.pkg.api.resource.Quantity\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: nodeTopology\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n    - name: storageClassName\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.storage.v1beta1.StorageClass\n  map:\n    fields:\n    - name: allowVolumeExpansion\n      type:\n        scalar: boolean\n    - name: allowedTopologies\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.core.v1.TopologySelectorTerm\n          elementRelationship: atomic\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: mountOptions\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: parameters\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: provisioner\n      type:\n        scalar: string\n      default: \"\"\n    - name: reclaimPolicy\n      type:\n        scalar: string\n    - name: volumeBindingMode\n      type:\n        scalar: string\n- name: io.k8s.api.storage.v1beta1.TokenRequest\n  map:\n    fields:\n    - name: audience\n      type:\n        scalar: string\n      default: \"\"\n    - name: expirationSeconds\n      type:\n        scalar: numeric\n- name: io.k8s.api.storage.v1beta1.VolumeAttachment\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.storage.v1beta1.VolumeAttachmentSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.storage.v1beta1.VolumeAttachmentStatus\n      default: {}\n- name: io.k8s.api.storage.v1beta1.VolumeAttachmentSource\n  map:\n    fields:\n    - name: inlineVolumeSpec\n      type:\n        namedType: io.k8s.api.core.v1.PersistentVolumeSpec\n    - name: persistentVolumeName\n      type:\n        scalar: string\n- name: io.k8s.api.storage.v1beta1.VolumeAttachmentSpec\n  map:\n    fields:\n    - name: attacher\n      type:\n        scalar: string\n      default: \"\"\n    - name: nodeName\n      type:\n        scalar: string\n      default: \"\"\n    - name: source\n      type:\n        namedType: io.k8s.api.storage.v1beta1.VolumeAttachmentSource\n      default: {}\n- name: io.k8s.api.storage.v1beta1.VolumeAttachmentStatus\n  map:\n    fields:\n    - name: attachError\n      type:\n        namedType: io.k8s.api.storage.v1beta1.VolumeError\n    - name: attached\n      type:\n        scalar: boolean\n      default: false\n    - name: attachmentMetadata\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: detachError\n      type:\n        namedType: io.k8s.api.storage.v1beta1.VolumeError\n- name: io.k8s.api.storage.v1beta1.VolumeAttributesClass\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: driverName\n      type:\n        scalar: string\n      default: \"\"\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: parameters\n      type:\n        map:\n          elementType:\n            scalar: string\n- name: io.k8s.api.storage.v1beta1.VolumeError\n  map:\n    fields:\n    - name: message\n      type:\n        scalar: string\n    - name: time\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n- name: io.k8s.api.storage.v1beta1.VolumeNodeResources\n  map:\n    fields:\n    - name: count\n      type:\n        scalar: numeric\n- name: io.k8s.api.storagemigration.v1alpha1.GroupVersionResource\n  map:\n    fields:\n    - name: group\n      type:\n        scalar: string\n    - name: resource\n      type:\n        scalar: string\n    - name: version\n      type:\n        scalar: string\n- name: io.k8s.api.storagemigration.v1alpha1.MigrationCondition\n  map:\n    fields:\n    - name: lastUpdateTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n    - name: reason\n      type:\n        scalar: string\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.api.storagemigration.v1alpha1.StorageVersionMigration\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: kind\n      type:\n        scalar: string\n    - name: metadata\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n      default: {}\n    - name: spec\n      type:\n        namedType: io.k8s.api.storagemigration.v1alpha1.StorageVersionMigrationSpec\n      default: {}\n    - name: status\n      type:\n        namedType: io.k8s.api.storagemigration.v1alpha1.StorageVersionMigrationStatus\n      default: {}\n- name: io.k8s.api.storagemigration.v1alpha1.StorageVersionMigrationSpec\n  map:\n    fields:\n    - name: continueToken\n      type:\n        scalar: string\n    - name: resource\n      type:\n        namedType: io.k8s.api.storagemigration.v1alpha1.GroupVersionResource\n      default: {}\n- name: io.k8s.api.storagemigration.v1alpha1.StorageVersionMigrationStatus\n  map:\n    fields:\n    - name: conditions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.api.storagemigration.v1alpha1.MigrationCondition\n          elementRelationship: associative\n          keys:\n          - type\n    - name: resourceVersion\n      type:\n        scalar: string\n- name: io.k8s.apimachinery.pkg.api.resource.Quantity\n  scalar: untyped\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.Condition\n  map:\n    fields:\n    - name: lastTransitionTime\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: message\n      type:\n        scalar: string\n      default: \"\"\n    - name: observedGeneration\n      type:\n        scalar: numeric\n    - name: reason\n      type:\n        scalar: string\n      default: \"\"\n    - name: status\n      type:\n        scalar: string\n      default: \"\"\n    - name: type\n      type:\n        scalar: string\n      default: \"\"\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: dryRun\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n    - name: gracePeriodSeconds\n      type:\n        scalar: numeric\n    - name: ignoreStoreReadErrorWithClusterBreakingPotential\n      type:\n        scalar: boolean\n    - name: kind\n      type:\n        scalar: string\n    - name: orphanDependents\n      type:\n        scalar: boolean\n    - name: preconditions\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\n    - name: propagationPolicy\n      type:\n        scalar: string\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\n  map:\n    elementType:\n      scalar: untyped\n      list:\n        elementType:\n          namedType: __untyped_atomic_\n        elementRelationship: atomic\n      map:\n        elementType:\n          namedType: __untyped_deduced_\n        elementRelationship: separable\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector\n  map:\n    fields:\n    - name: matchExpressions\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement\n          elementRelationship: atomic\n    - name: matchLabels\n      type:\n        map:\n          elementType:\n            scalar: string\n    elementRelationship: atomic\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement\n  map:\n    fields:\n    - name: key\n      type:\n        scalar: string\n      default: \"\"\n    - name: operator\n      type:\n        scalar: string\n      default: \"\"\n    - name: values\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n    - name: fieldsType\n      type:\n        scalar: string\n    - name: fieldsV1\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1\n    - name: manager\n      type:\n        scalar: string\n    - name: operation\n      type:\n        scalar: string\n    - name: subresource\n      type:\n        scalar: string\n    - name: time\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.MicroTime\n  scalar: untyped\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta\n  map:\n    fields:\n    - name: annotations\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: creationTimestamp\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: deletionGracePeriodSeconds\n      type:\n        scalar: numeric\n    - name: deletionTimestamp\n      type:\n        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n    - name: finalizers\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: associative\n    - name: generateName\n      type:\n        scalar: string\n    - name: generation\n      type:\n        scalar: numeric\n    - name: labels\n      type:\n        map:\n          elementType:\n            scalar: string\n    - name: managedFields\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry\n          elementRelationship: atomic\n    - name: name\n      type:\n        scalar: string\n    - name: namespace\n      type:\n        scalar: string\n    - name: ownerReferences\n      type:\n        list:\n          elementType:\n            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\n          elementRelationship: associative\n          keys:\n          - uid\n    - name: resourceVersion\n      type:\n        scalar: string\n    - name: selfLink\n      type:\n        scalar: string\n    - name: uid\n      type:\n        scalar: string\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference\n  map:\n    fields:\n    - name: apiVersion\n      type:\n        scalar: string\n      default: \"\"\n    - name: blockOwnerDeletion\n      type:\n        scalar: boolean\n    - name: controller\n      type:\n        scalar: boolean\n    - name: kind\n      type:\n        scalar: string\n      default: \"\"\n    - name: name\n      type:\n        scalar: string\n      default: \"\"\n    - name: uid\n      type:\n        scalar: string\n      default: \"\"\n    elementRelationship: atomic\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.Preconditions\n  map:\n    fields:\n    - name: resourceVersion\n      type:\n        scalar: string\n    - name: uid\n      type:\n        scalar: string\n- name: io.k8s.apimachinery.pkg.apis.meta.v1.Time\n  scalar: untyped\n- name: io.k8s.apimachinery.pkg.runtime.RawExtension\n  map:\n    elementType:\n      scalar: untyped\n      list:\n        elementType:\n          namedType: __untyped_atomic_\n        elementRelationship: atomic\n      map:\n        elementType:\n          namedType: __untyped_deduced_\n        elementRelationship: separable\n- name: io.k8s.apimachinery.pkg.util.intstr.IntOrString\n  scalar: untyped\n- name: __untyped_atomic_\n  scalar: untyped\n  list:\n    elementType:\n      namedType: __untyped_atomic_\n    elementRelationship: atomic\n  map:\n    elementType:\n      namedType: __untyped_atomic_\n    elementRelationship: atomic\n- name: __untyped_deduced_\n  scalar: untyped\n  list:\n    elementType:\n      namedType: __untyped_atomic_\n    elementRelationship: atomic\n  map:\n    elementType:\n      namedType: __untyped_deduced_\n    elementRelationship: separable\n`)\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/meta/v1/condition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// ConditionApplyConfiguration represents a declarative configuration of the Condition type for use\n// with apply.\ntype ConditionApplyConfiguration struct {\n\tType               *string                 `json:\"type,omitempty\"`\n\tStatus             *metav1.ConditionStatus `json:\"status,omitempty\"`\n\tObservedGeneration *int64                  `json:\"observedGeneration,omitempty\"`\n\tLastTransitionTime *metav1.Time            `json:\"lastTransitionTime,omitempty\"`\n\tReason             *string                 `json:\"reason,omitempty\"`\n\tMessage            *string                 `json:\"message,omitempty\"`\n}\n\n// ConditionApplyConfiguration constructs a declarative configuration of the Condition type for use with\n// apply.\nfunc Condition() *ConditionApplyConfiguration {\n\treturn &ConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *ConditionApplyConfiguration) WithType(value string) *ConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *ConditionApplyConfiguration) WithStatus(value metav1.ConditionStatus) *ConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *ConditionApplyConfiguration) WithObservedGeneration(value int64) *ConditionApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastTransitionTime field is set to the value of the last call.\nfunc (b *ConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *ConditionApplyConfiguration {\n\tb.LastTransitionTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *ConditionApplyConfiguration) WithReason(value string) *ConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *ConditionApplyConfiguration) WithMessage(value string) *ConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/meta/v1/deleteoptions.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// DeleteOptionsApplyConfiguration represents a declarative configuration of the DeleteOptions type for use\n// with apply.\ntype DeleteOptionsApplyConfiguration struct {\n\tTypeMetaApplyConfiguration                       `json:\",inline\"`\n\tGracePeriodSeconds                               *int64                           `json:\"gracePeriodSeconds,omitempty\"`\n\tPreconditions                                    *PreconditionsApplyConfiguration `json:\"preconditions,omitempty\"`\n\tOrphanDependents                                 *bool                            `json:\"orphanDependents,omitempty\"`\n\tPropagationPolicy                                *metav1.DeletionPropagation      `json:\"propagationPolicy,omitempty\"`\n\tDryRun                                           []string                         `json:\"dryRun,omitempty\"`\n\tIgnoreStoreReadErrorWithClusterBreakingPotential *bool                            `json:\"ignoreStoreReadErrorWithClusterBreakingPotential,omitempty\"`\n}\n\n// DeleteOptionsApplyConfiguration constructs a declarative configuration of the DeleteOptions type for use with\n// apply.\nfunc DeleteOptions() *DeleteOptionsApplyConfiguration {\n\tb := &DeleteOptionsApplyConfiguration{}\n\tb.WithKind(\"DeleteOptions\")\n\tb.WithAPIVersion(\"meta.k8s.io/v1\")\n\treturn b\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *DeleteOptionsApplyConfiguration) WithKind(value string) *DeleteOptionsApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *DeleteOptionsApplyConfiguration) WithAPIVersion(value string) *DeleteOptionsApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithGracePeriodSeconds sets the GracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GracePeriodSeconds field is set to the value of the last call.\nfunc (b *DeleteOptionsApplyConfiguration) WithGracePeriodSeconds(value int64) *DeleteOptionsApplyConfiguration {\n\tb.GracePeriodSeconds = &value\n\treturn b\n}\n\n// WithPreconditions sets the Preconditions field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Preconditions field is set to the value of the last call.\nfunc (b *DeleteOptionsApplyConfiguration) WithPreconditions(value *PreconditionsApplyConfiguration) *DeleteOptionsApplyConfiguration {\n\tb.Preconditions = value\n\treturn b\n}\n\n// WithOrphanDependents sets the OrphanDependents field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the OrphanDependents field is set to the value of the last call.\nfunc (b *DeleteOptionsApplyConfiguration) WithOrphanDependents(value bool) *DeleteOptionsApplyConfiguration {\n\tb.OrphanDependents = &value\n\treturn b\n}\n\n// WithPropagationPolicy sets the PropagationPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PropagationPolicy field is set to the value of the last call.\nfunc (b *DeleteOptionsApplyConfiguration) WithPropagationPolicy(value metav1.DeletionPropagation) *DeleteOptionsApplyConfiguration {\n\tb.PropagationPolicy = &value\n\treturn b\n}\n\n// WithDryRun adds the given value to the DryRun field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the DryRun field.\nfunc (b *DeleteOptionsApplyConfiguration) WithDryRun(values ...string) *DeleteOptionsApplyConfiguration {\n\tfor i := range values {\n\t\tb.DryRun = append(b.DryRun, values[i])\n\t}\n\treturn b\n}\n\n// WithIgnoreStoreReadErrorWithClusterBreakingPotential sets the IgnoreStoreReadErrorWithClusterBreakingPotential field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the IgnoreStoreReadErrorWithClusterBreakingPotential field is set to the value of the last call.\nfunc (b *DeleteOptionsApplyConfiguration) WithIgnoreStoreReadErrorWithClusterBreakingPotential(value bool) *DeleteOptionsApplyConfiguration {\n\tb.IgnoreStoreReadErrorWithClusterBreakingPotential = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/meta/v1/labelselector.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// LabelSelectorApplyConfiguration represents a declarative configuration of the LabelSelector type for use\n// with apply.\ntype LabelSelectorApplyConfiguration struct {\n\tMatchLabels      map[string]string                            `json:\"matchLabels,omitempty\"`\n\tMatchExpressions []LabelSelectorRequirementApplyConfiguration `json:\"matchExpressions,omitempty\"`\n}\n\n// LabelSelectorApplyConfiguration constructs a declarative configuration of the LabelSelector type for use with\n// apply.\nfunc LabelSelector() *LabelSelectorApplyConfiguration {\n\treturn &LabelSelectorApplyConfiguration{}\n}\n\n// WithMatchLabels puts the entries into the MatchLabels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the MatchLabels field,\n// overwriting an existing map entries in MatchLabels field with the same key.\nfunc (b *LabelSelectorApplyConfiguration) WithMatchLabels(entries map[string]string) *LabelSelectorApplyConfiguration {\n\tif b.MatchLabels == nil && len(entries) > 0 {\n\t\tb.MatchLabels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.MatchLabels[k] = v\n\t}\n\treturn b\n}\n\n// WithMatchExpressions adds the given value to the MatchExpressions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the MatchExpressions field.\nfunc (b *LabelSelectorApplyConfiguration) WithMatchExpressions(values ...*LabelSelectorRequirementApplyConfiguration) *LabelSelectorApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithMatchExpressions\")\n\t\t}\n\t\tb.MatchExpressions = append(b.MatchExpressions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/meta/v1/labelselectorrequirement.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// LabelSelectorRequirementApplyConfiguration represents a declarative configuration of the LabelSelectorRequirement type for use\n// with apply.\ntype LabelSelectorRequirementApplyConfiguration struct {\n\tKey      *string                       `json:\"key,omitempty\"`\n\tOperator *metav1.LabelSelectorOperator `json:\"operator,omitempty\"`\n\tValues   []string                      `json:\"values,omitempty\"`\n}\n\n// LabelSelectorRequirementApplyConfiguration constructs a declarative configuration of the LabelSelectorRequirement type for use with\n// apply.\nfunc LabelSelectorRequirement() *LabelSelectorRequirementApplyConfiguration {\n\treturn &LabelSelectorRequirementApplyConfiguration{}\n}\n\n// WithKey sets the Key field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Key field is set to the value of the last call.\nfunc (b *LabelSelectorRequirementApplyConfiguration) WithKey(value string) *LabelSelectorRequirementApplyConfiguration {\n\tb.Key = &value\n\treturn b\n}\n\n// WithOperator sets the Operator field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Operator field is set to the value of the last call.\nfunc (b *LabelSelectorRequirementApplyConfiguration) WithOperator(value metav1.LabelSelectorOperator) *LabelSelectorRequirementApplyConfiguration {\n\tb.Operator = &value\n\treturn b\n}\n\n// WithValues adds the given value to the Values field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Values field.\nfunc (b *LabelSelectorRequirementApplyConfiguration) WithValues(values ...string) *LabelSelectorRequirementApplyConfiguration {\n\tfor i := range values {\n\t\tb.Values = append(b.Values, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/meta/v1/managedfieldsentry.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// ManagedFieldsEntryApplyConfiguration represents a declarative configuration of the ManagedFieldsEntry type for use\n// with apply.\ntype ManagedFieldsEntryApplyConfiguration struct {\n\tManager     *string                            `json:\"manager,omitempty\"`\n\tOperation   *metav1.ManagedFieldsOperationType `json:\"operation,omitempty\"`\n\tAPIVersion  *string                            `json:\"apiVersion,omitempty\"`\n\tTime        *metav1.Time                       `json:\"time,omitempty\"`\n\tFieldsType  *string                            `json:\"fieldsType,omitempty\"`\n\tFieldsV1    *metav1.FieldsV1                   `json:\"fieldsV1,omitempty\"`\n\tSubresource *string                            `json:\"subresource,omitempty\"`\n}\n\n// ManagedFieldsEntryApplyConfiguration constructs a declarative configuration of the ManagedFieldsEntry type for use with\n// apply.\nfunc ManagedFieldsEntry() *ManagedFieldsEntryApplyConfiguration {\n\treturn &ManagedFieldsEntryApplyConfiguration{}\n}\n\n// WithManager sets the Manager field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Manager field is set to the value of the last call.\nfunc (b *ManagedFieldsEntryApplyConfiguration) WithManager(value string) *ManagedFieldsEntryApplyConfiguration {\n\tb.Manager = &value\n\treturn b\n}\n\n// WithOperation sets the Operation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Operation field is set to the value of the last call.\nfunc (b *ManagedFieldsEntryApplyConfiguration) WithOperation(value metav1.ManagedFieldsOperationType) *ManagedFieldsEntryApplyConfiguration {\n\tb.Operation = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ManagedFieldsEntryApplyConfiguration) WithAPIVersion(value string) *ManagedFieldsEntryApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithTime sets the Time field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Time field is set to the value of the last call.\nfunc (b *ManagedFieldsEntryApplyConfiguration) WithTime(value metav1.Time) *ManagedFieldsEntryApplyConfiguration {\n\tb.Time = &value\n\treturn b\n}\n\n// WithFieldsType sets the FieldsType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FieldsType field is set to the value of the last call.\nfunc (b *ManagedFieldsEntryApplyConfiguration) WithFieldsType(value string) *ManagedFieldsEntryApplyConfiguration {\n\tb.FieldsType = &value\n\treturn b\n}\n\n// WithFieldsV1 sets the FieldsV1 field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FieldsV1 field is set to the value of the last call.\nfunc (b *ManagedFieldsEntryApplyConfiguration) WithFieldsV1(value metav1.FieldsV1) *ManagedFieldsEntryApplyConfiguration {\n\tb.FieldsV1 = &value\n\treturn b\n}\n\n// WithSubresource sets the Subresource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Subresource field is set to the value of the last call.\nfunc (b *ManagedFieldsEntryApplyConfiguration) WithSubresource(value string) *ManagedFieldsEntryApplyConfiguration {\n\tb.Subresource = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/meta/v1/objectmeta.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n)\n\n// ObjectMetaApplyConfiguration represents a declarative configuration of the ObjectMeta type for use\n// with apply.\ntype ObjectMetaApplyConfiguration struct {\n\tName                       *string                            `json:\"name,omitempty\"`\n\tGenerateName               *string                            `json:\"generateName,omitempty\"`\n\tNamespace                  *string                            `json:\"namespace,omitempty\"`\n\tUID                        *types.UID                         `json:\"uid,omitempty\"`\n\tResourceVersion            *string                            `json:\"resourceVersion,omitempty\"`\n\tGeneration                 *int64                             `json:\"generation,omitempty\"`\n\tCreationTimestamp          *metav1.Time                       `json:\"creationTimestamp,omitempty\"`\n\tDeletionTimestamp          *metav1.Time                       `json:\"deletionTimestamp,omitempty\"`\n\tDeletionGracePeriodSeconds *int64                             `json:\"deletionGracePeriodSeconds,omitempty\"`\n\tLabels                     map[string]string                  `json:\"labels,omitempty\"`\n\tAnnotations                map[string]string                  `json:\"annotations,omitempty\"`\n\tOwnerReferences            []OwnerReferenceApplyConfiguration `json:\"ownerReferences,omitempty\"`\n\tFinalizers                 []string                           `json:\"finalizers,omitempty\"`\n}\n\n// ObjectMetaApplyConfiguration constructs a declarative configuration of the ObjectMeta type for use with\n// apply.\nfunc ObjectMeta() *ObjectMetaApplyConfiguration {\n\treturn &ObjectMetaApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ObjectMetaApplyConfiguration) WithName(value string) *ObjectMetaApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ObjectMetaApplyConfiguration) WithGenerateName(value string) *ObjectMetaApplyConfiguration {\n\tb.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ObjectMetaApplyConfiguration) WithNamespace(value string) *ObjectMetaApplyConfiguration {\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ObjectMetaApplyConfiguration) WithUID(value types.UID) *ObjectMetaApplyConfiguration {\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ObjectMetaApplyConfiguration) WithResourceVersion(value string) *ObjectMetaApplyConfiguration {\n\tb.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ObjectMetaApplyConfiguration) WithGeneration(value int64) *ObjectMetaApplyConfiguration {\n\tb.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ObjectMetaApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ObjectMetaApplyConfiguration {\n\tb.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ObjectMetaApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ObjectMetaApplyConfiguration {\n\tb.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ObjectMetaApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ObjectMetaApplyConfiguration {\n\tb.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ObjectMetaApplyConfiguration) WithLabels(entries map[string]string) *ObjectMetaApplyConfiguration {\n\tif b.Labels == nil && len(entries) > 0 {\n\t\tb.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ObjectMetaApplyConfiguration) WithAnnotations(entries map[string]string) *ObjectMetaApplyConfiguration {\n\tif b.Annotations == nil && len(entries) > 0 {\n\t\tb.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ObjectMetaApplyConfiguration) WithOwnerReferences(values ...*OwnerReferenceApplyConfiguration) *ObjectMetaApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.OwnerReferences = append(b.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ObjectMetaApplyConfiguration) WithFinalizers(values ...string) *ObjectMetaApplyConfiguration {\n\tfor i := range values {\n\t\tb.Finalizers = append(b.Finalizers, values[i])\n\t}\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *ObjectMetaApplyConfiguration) GetName() *string {\n\treturn b.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/meta/v1/ownerreference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n)\n\n// OwnerReferenceApplyConfiguration represents a declarative configuration of the OwnerReference type for use\n// with apply.\ntype OwnerReferenceApplyConfiguration struct {\n\tAPIVersion         *string    `json:\"apiVersion,omitempty\"`\n\tKind               *string    `json:\"kind,omitempty\"`\n\tName               *string    `json:\"name,omitempty\"`\n\tUID                *types.UID `json:\"uid,omitempty\"`\n\tController         *bool      `json:\"controller,omitempty\"`\n\tBlockOwnerDeletion *bool      `json:\"blockOwnerDeletion,omitempty\"`\n}\n\n// OwnerReferenceApplyConfiguration constructs a declarative configuration of the OwnerReference type for use with\n// apply.\nfunc OwnerReference() *OwnerReferenceApplyConfiguration {\n\treturn &OwnerReferenceApplyConfiguration{}\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *OwnerReferenceApplyConfiguration) WithAPIVersion(value string) *OwnerReferenceApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *OwnerReferenceApplyConfiguration) WithKind(value string) *OwnerReferenceApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *OwnerReferenceApplyConfiguration) WithName(value string) *OwnerReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *OwnerReferenceApplyConfiguration) WithUID(value types.UID) *OwnerReferenceApplyConfiguration {\n\tb.UID = &value\n\treturn b\n}\n\n// WithController sets the Controller field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Controller field is set to the value of the last call.\nfunc (b *OwnerReferenceApplyConfiguration) WithController(value bool) *OwnerReferenceApplyConfiguration {\n\tb.Controller = &value\n\treturn b\n}\n\n// WithBlockOwnerDeletion sets the BlockOwnerDeletion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the BlockOwnerDeletion field is set to the value of the last call.\nfunc (b *OwnerReferenceApplyConfiguration) WithBlockOwnerDeletion(value bool) *OwnerReferenceApplyConfiguration {\n\tb.BlockOwnerDeletion = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/meta/v1/preconditions.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n)\n\n// PreconditionsApplyConfiguration represents a declarative configuration of the Preconditions type for use\n// with apply.\ntype PreconditionsApplyConfiguration struct {\n\tUID             *types.UID `json:\"uid,omitempty\"`\n\tResourceVersion *string    `json:\"resourceVersion,omitempty\"`\n}\n\n// PreconditionsApplyConfiguration constructs a declarative configuration of the Preconditions type for use with\n// apply.\nfunc Preconditions() *PreconditionsApplyConfiguration {\n\treturn &PreconditionsApplyConfiguration{}\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *PreconditionsApplyConfiguration) WithUID(value types.UID) *PreconditionsApplyConfiguration {\n\tb.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *PreconditionsApplyConfiguration) WithResourceVersion(value string) *PreconditionsApplyConfiguration {\n\tb.ResourceVersion = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/meta/v1/typemeta.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// TypeMetaApplyConfiguration represents a declarative configuration of the TypeMeta type for use\n// with apply.\ntype TypeMetaApplyConfiguration struct {\n\tKind       *string `json:\"kind,omitempty\"`\n\tAPIVersion *string `json:\"apiVersion,omitempty\"`\n}\n\n// TypeMetaApplyConfiguration constructs a declarative configuration of the TypeMeta type for use with\n// apply.\nfunc TypeMeta() *TypeMetaApplyConfiguration {\n\treturn &TypeMetaApplyConfiguration{}\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *TypeMetaApplyConfiguration) WithKind(value string) *TypeMetaApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *TypeMetaApplyConfiguration) WithAPIVersion(value string) *TypeMetaApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/meta/v1/unstructured.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"fmt\"\n\t\"sync\"\n\t\"time\"\n\n\t\"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/util/managedfields\"\n\t\"k8s.io/client-go/discovery\"\n\t\"k8s.io/kube-openapi/pkg/util/proto\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/typed\"\n)\n\n// openAPISchemaTTL is how frequently we need to check\n// whether the open API schema has changed or not.\nconst openAPISchemaTTL = time.Minute\n\n// UnstructuredExtractor enables extracting the applied configuration state from object for fieldManager into an\n// unstructured object type.\ntype UnstructuredExtractor interface {\n\tExtract(object *unstructured.Unstructured, fieldManager string) (*unstructured.Unstructured, error)\n\tExtractStatus(object *unstructured.Unstructured, fieldManager string) (*unstructured.Unstructured, error)\n}\n\n// gvkParserCache caches the GVKParser in order to prevent from having to repeatedly\n// parse the models from the open API schema when the schema itself changes infrequently.\ntype gvkParserCache struct {\n\t// discoveryClient is the client for retrieving the openAPI document and checking\n\t// whether the document has changed recently\n\tdiscoveryClient discovery.DiscoveryInterface\n\t// mu protects the gvkParser\n\tmu sync.Mutex\n\t// gvkParser retrieves the objectType for a given gvk\n\tgvkParser *managedfields.GvkParser\n\t// lastChecked is the last time we checked if the openAPI doc has changed.\n\tlastChecked time.Time\n}\n\n// regenerateGVKParser builds the parser from the raw OpenAPI schema.\nfunc regenerateGVKParser(dc discovery.DiscoveryInterface) (*managedfields.GvkParser, error) {\n\tdoc, err := dc.OpenAPISchema()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tmodels, err := proto.NewOpenAPIData(doc)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn managedfields.NewGVKParser(models, false)\n}\n\n// objectTypeForGVK retrieves the typed.ParseableType for a given gvk from the cache\nfunc (c *gvkParserCache) objectTypeForGVK(gvk schema.GroupVersionKind) (*typed.ParseableType, error) {\n\tc.mu.Lock()\n\tdefer c.mu.Unlock()\n\t// if the ttl on the openAPISchema has expired,\n\t// regenerate the gvk parser\n\tif time.Since(c.lastChecked) > openAPISchemaTTL {\n\t\tc.lastChecked = time.Now()\n\t\tparser, err := regenerateGVKParser(c.discoveryClient)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tc.gvkParser = parser\n\t}\n\treturn c.gvkParser.Type(gvk), nil\n}\n\ntype extractor struct {\n\tcache *gvkParserCache\n}\n\n// NewUnstructuredExtractor creates the extractor with which you can extract the applied configuration\n// for a given manager from an unstructured object.\nfunc NewUnstructuredExtractor(dc discovery.DiscoveryInterface) (UnstructuredExtractor, error) {\n\tparser, err := regenerateGVKParser(dc)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed generating initial GVK Parser: %v\", err)\n\t}\n\treturn &extractor{\n\t\tcache: &gvkParserCache{\n\t\t\tgvkParser:       parser,\n\t\t\tdiscoveryClient: dc,\n\t\t},\n\t}, nil\n}\n\n// Extract extracts the applied configuration owned by fieldManager from an unstructured object.\n// Note that the apply configuration itself is also an unstructured object.\nfunc (e *extractor) Extract(object *unstructured.Unstructured, fieldManager string) (*unstructured.Unstructured, error) {\n\treturn e.extractUnstructured(object, fieldManager, \"\")\n}\n\n// ExtractStatus is the same as ExtractUnstructured except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc (e *extractor) ExtractStatus(object *unstructured.Unstructured, fieldManager string) (*unstructured.Unstructured, error) {\n\treturn e.extractUnstructured(object, fieldManager, \"status\")\n}\n\nfunc (e *extractor) extractUnstructured(object *unstructured.Unstructured, fieldManager string, subresource string) (*unstructured.Unstructured, error) {\n\tgvk := object.GetObjectKind().GroupVersionKind()\n\tobjectType, err := e.cache.objectTypeForGVK(gvk)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to fetch the objectType: %v\", err)\n\t}\n\tresult := &unstructured.Unstructured{}\n\terr = managedfields.ExtractInto(object, *objectType, fieldManager, result, subresource) //nolint:forbidigo\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed calling ExtractInto for unstructured: %v\", err)\n\t}\n\tresult.SetName(object.GetName())\n\tresult.SetNamespace(object.GetNamespace())\n\tresult.SetKind(object.GetKind())\n\tresult.SetAPIVersion(object.GetAPIVersion())\n\treturn result, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/httpingresspath.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tnetworkingv1 \"k8s.io/api/networking/v1\"\n)\n\n// HTTPIngressPathApplyConfiguration represents a declarative configuration of the HTTPIngressPath type for use\n// with apply.\ntype HTTPIngressPathApplyConfiguration struct {\n\tPath     *string                           `json:\"path,omitempty\"`\n\tPathType *networkingv1.PathType            `json:\"pathType,omitempty\"`\n\tBackend  *IngressBackendApplyConfiguration `json:\"backend,omitempty\"`\n}\n\n// HTTPIngressPathApplyConfiguration constructs a declarative configuration of the HTTPIngressPath type for use with\n// apply.\nfunc HTTPIngressPath() *HTTPIngressPathApplyConfiguration {\n\treturn &HTTPIngressPathApplyConfiguration{}\n}\n\n// WithPath sets the Path field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Path field is set to the value of the last call.\nfunc (b *HTTPIngressPathApplyConfiguration) WithPath(value string) *HTTPIngressPathApplyConfiguration {\n\tb.Path = &value\n\treturn b\n}\n\n// WithPathType sets the PathType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PathType field is set to the value of the last call.\nfunc (b *HTTPIngressPathApplyConfiguration) WithPathType(value networkingv1.PathType) *HTTPIngressPathApplyConfiguration {\n\tb.PathType = &value\n\treturn b\n}\n\n// WithBackend sets the Backend field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Backend field is set to the value of the last call.\nfunc (b *HTTPIngressPathApplyConfiguration) WithBackend(value *IngressBackendApplyConfiguration) *HTTPIngressPathApplyConfiguration {\n\tb.Backend = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/httpingressrulevalue.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// HTTPIngressRuleValueApplyConfiguration represents a declarative configuration of the HTTPIngressRuleValue type for use\n// with apply.\ntype HTTPIngressRuleValueApplyConfiguration struct {\n\tPaths []HTTPIngressPathApplyConfiguration `json:\"paths,omitempty\"`\n}\n\n// HTTPIngressRuleValueApplyConfiguration constructs a declarative configuration of the HTTPIngressRuleValue type for use with\n// apply.\nfunc HTTPIngressRuleValue() *HTTPIngressRuleValueApplyConfiguration {\n\treturn &HTTPIngressRuleValueApplyConfiguration{}\n}\n\n// WithPaths adds the given value to the Paths field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Paths field.\nfunc (b *HTTPIngressRuleValueApplyConfiguration) WithPaths(values ...*HTTPIngressPathApplyConfiguration) *HTTPIngressRuleValueApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPaths\")\n\t\t}\n\t\tb.Paths = append(b.Paths, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tnetworkingv1 \"k8s.io/api/networking/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// IngressApplyConfiguration represents a declarative configuration of the Ingress type for use\n// with apply.\ntype IngressApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                                 *IngressSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                               *IngressStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// Ingress constructs a declarative configuration of the Ingress type for use with\n// apply.\nfunc Ingress(name, namespace string) *IngressApplyConfiguration {\n\tb := &IngressApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Ingress\")\n\tb.WithAPIVersion(\"networking.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractIngress extracts the applied configuration owned by fieldManager from\n// ingress. If no managedFields are found in ingress for fieldManager, a\n// IngressApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// ingress must be a unmodified Ingress API object that was retrieved from the Kubernetes API.\n// ExtractIngress provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractIngress(ingress *networkingv1.Ingress, fieldManager string) (*IngressApplyConfiguration, error) {\n\treturn extractIngress(ingress, fieldManager, \"\")\n}\n\n// ExtractIngressStatus is the same as ExtractIngress except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractIngressStatus(ingress *networkingv1.Ingress, fieldManager string) (*IngressApplyConfiguration, error) {\n\treturn extractIngress(ingress, fieldManager, \"status\")\n}\n\nfunc extractIngress(ingress *networkingv1.Ingress, fieldManager string, subresource string) (*IngressApplyConfiguration, error) {\n\tb := &IngressApplyConfiguration{}\n\terr := managedfields.ExtractInto(ingress, internal.Parser().Type(\"io.k8s.api.networking.v1.Ingress\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(ingress.Name)\n\tb.WithNamespace(ingress.Namespace)\n\n\tb.WithKind(\"Ingress\")\n\tb.WithAPIVersion(\"networking.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithKind(value string) *IngressApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithAPIVersion(value string) *IngressApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithName(value string) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithGenerateName(value string) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithNamespace(value string) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithUID(value types.UID) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithResourceVersion(value string) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithGeneration(value int64) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *IngressApplyConfiguration) WithLabels(entries map[string]string) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *IngressApplyConfiguration) WithAnnotations(entries map[string]string) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *IngressApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *IngressApplyConfiguration) WithFinalizers(values ...string) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *IngressApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithSpec(value *IngressSpecApplyConfiguration) *IngressApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithStatus(value *IngressStatusApplyConfiguration) *IngressApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *IngressApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressbackend.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n)\n\n// IngressBackendApplyConfiguration represents a declarative configuration of the IngressBackend type for use\n// with apply.\ntype IngressBackendApplyConfiguration struct {\n\tService  *IngressServiceBackendApplyConfiguration            `json:\"service,omitempty\"`\n\tResource *corev1.TypedLocalObjectReferenceApplyConfiguration `json:\"resource,omitempty\"`\n}\n\n// IngressBackendApplyConfiguration constructs a declarative configuration of the IngressBackend type for use with\n// apply.\nfunc IngressBackend() *IngressBackendApplyConfiguration {\n\treturn &IngressBackendApplyConfiguration{}\n}\n\n// WithService sets the Service field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Service field is set to the value of the last call.\nfunc (b *IngressBackendApplyConfiguration) WithService(value *IngressServiceBackendApplyConfiguration) *IngressBackendApplyConfiguration {\n\tb.Service = value\n\treturn b\n}\n\n// WithResource sets the Resource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Resource field is set to the value of the last call.\nfunc (b *IngressBackendApplyConfiguration) WithResource(value *corev1.TypedLocalObjectReferenceApplyConfiguration) *IngressBackendApplyConfiguration {\n\tb.Resource = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tnetworkingv1 \"k8s.io/api/networking/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// IngressClassApplyConfiguration represents a declarative configuration of the IngressClass type for use\n// with apply.\ntype IngressClassApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                                 *IngressClassSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// IngressClass constructs a declarative configuration of the IngressClass type for use with\n// apply.\nfunc IngressClass(name string) *IngressClassApplyConfiguration {\n\tb := &IngressClassApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"IngressClass\")\n\tb.WithAPIVersion(\"networking.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractIngressClass extracts the applied configuration owned by fieldManager from\n// ingressClass. If no managedFields are found in ingressClass for fieldManager, a\n// IngressClassApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// ingressClass must be a unmodified IngressClass API object that was retrieved from the Kubernetes API.\n// ExtractIngressClass provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractIngressClass(ingressClass *networkingv1.IngressClass, fieldManager string) (*IngressClassApplyConfiguration, error) {\n\treturn extractIngressClass(ingressClass, fieldManager, \"\")\n}\n\n// ExtractIngressClassStatus is the same as ExtractIngressClass except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractIngressClassStatus(ingressClass *networkingv1.IngressClass, fieldManager string) (*IngressClassApplyConfiguration, error) {\n\treturn extractIngressClass(ingressClass, fieldManager, \"status\")\n}\n\nfunc extractIngressClass(ingressClass *networkingv1.IngressClass, fieldManager string, subresource string) (*IngressClassApplyConfiguration, error) {\n\tb := &IngressClassApplyConfiguration{}\n\terr := managedfields.ExtractInto(ingressClass, internal.Parser().Type(\"io.k8s.api.networking.v1.IngressClass\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(ingressClass.Name)\n\n\tb.WithKind(\"IngressClass\")\n\tb.WithAPIVersion(\"networking.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithKind(value string) *IngressClassApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithAPIVersion(value string) *IngressClassApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithName(value string) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithGenerateName(value string) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithNamespace(value string) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithUID(value types.UID) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithResourceVersion(value string) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithGeneration(value int64) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *IngressClassApplyConfiguration) WithLabels(entries map[string]string) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *IngressClassApplyConfiguration) WithAnnotations(entries map[string]string) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *IngressClassApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *IngressClassApplyConfiguration) WithFinalizers(values ...string) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *IngressClassApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithSpec(value *IngressClassSpecApplyConfiguration) *IngressClassApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *IngressClassApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressclassparametersreference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// IngressClassParametersReferenceApplyConfiguration represents a declarative configuration of the IngressClassParametersReference type for use\n// with apply.\ntype IngressClassParametersReferenceApplyConfiguration struct {\n\tAPIGroup  *string `json:\"apiGroup,omitempty\"`\n\tKind      *string `json:\"kind,omitempty\"`\n\tName      *string `json:\"name,omitempty\"`\n\tScope     *string `json:\"scope,omitempty\"`\n\tNamespace *string `json:\"namespace,omitempty\"`\n}\n\n// IngressClassParametersReferenceApplyConfiguration constructs a declarative configuration of the IngressClassParametersReference type for use with\n// apply.\nfunc IngressClassParametersReference() *IngressClassParametersReferenceApplyConfiguration {\n\treturn &IngressClassParametersReferenceApplyConfiguration{}\n}\n\n// WithAPIGroup sets the APIGroup field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIGroup field is set to the value of the last call.\nfunc (b *IngressClassParametersReferenceApplyConfiguration) WithAPIGroup(value string) *IngressClassParametersReferenceApplyConfiguration {\n\tb.APIGroup = &value\n\treturn b\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *IngressClassParametersReferenceApplyConfiguration) WithKind(value string) *IngressClassParametersReferenceApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *IngressClassParametersReferenceApplyConfiguration) WithName(value string) *IngressClassParametersReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithScope sets the Scope field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Scope field is set to the value of the last call.\nfunc (b *IngressClassParametersReferenceApplyConfiguration) WithScope(value string) *IngressClassParametersReferenceApplyConfiguration {\n\tb.Scope = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *IngressClassParametersReferenceApplyConfiguration) WithNamespace(value string) *IngressClassParametersReferenceApplyConfiguration {\n\tb.Namespace = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressclassspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// IngressClassSpecApplyConfiguration represents a declarative configuration of the IngressClassSpec type for use\n// with apply.\ntype IngressClassSpecApplyConfiguration struct {\n\tController *string                                            `json:\"controller,omitempty\"`\n\tParameters *IngressClassParametersReferenceApplyConfiguration `json:\"parameters,omitempty\"`\n}\n\n// IngressClassSpecApplyConfiguration constructs a declarative configuration of the IngressClassSpec type for use with\n// apply.\nfunc IngressClassSpec() *IngressClassSpecApplyConfiguration {\n\treturn &IngressClassSpecApplyConfiguration{}\n}\n\n// WithController sets the Controller field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Controller field is set to the value of the last call.\nfunc (b *IngressClassSpecApplyConfiguration) WithController(value string) *IngressClassSpecApplyConfiguration {\n\tb.Controller = &value\n\treturn b\n}\n\n// WithParameters sets the Parameters field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Parameters field is set to the value of the last call.\nfunc (b *IngressClassSpecApplyConfiguration) WithParameters(value *IngressClassParametersReferenceApplyConfiguration) *IngressClassSpecApplyConfiguration {\n\tb.Parameters = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressloadbalanceringress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// IngressLoadBalancerIngressApplyConfiguration represents a declarative configuration of the IngressLoadBalancerIngress type for use\n// with apply.\ntype IngressLoadBalancerIngressApplyConfiguration struct {\n\tIP       *string                               `json:\"ip,omitempty\"`\n\tHostname *string                               `json:\"hostname,omitempty\"`\n\tPorts    []IngressPortStatusApplyConfiguration `json:\"ports,omitempty\"`\n}\n\n// IngressLoadBalancerIngressApplyConfiguration constructs a declarative configuration of the IngressLoadBalancerIngress type for use with\n// apply.\nfunc IngressLoadBalancerIngress() *IngressLoadBalancerIngressApplyConfiguration {\n\treturn &IngressLoadBalancerIngressApplyConfiguration{}\n}\n\n// WithIP sets the IP field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the IP field is set to the value of the last call.\nfunc (b *IngressLoadBalancerIngressApplyConfiguration) WithIP(value string) *IngressLoadBalancerIngressApplyConfiguration {\n\tb.IP = &value\n\treturn b\n}\n\n// WithHostname sets the Hostname field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Hostname field is set to the value of the last call.\nfunc (b *IngressLoadBalancerIngressApplyConfiguration) WithHostname(value string) *IngressLoadBalancerIngressApplyConfiguration {\n\tb.Hostname = &value\n\treturn b\n}\n\n// WithPorts adds the given value to the Ports field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ports field.\nfunc (b *IngressLoadBalancerIngressApplyConfiguration) WithPorts(values ...*IngressPortStatusApplyConfiguration) *IngressLoadBalancerIngressApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPorts\")\n\t\t}\n\t\tb.Ports = append(b.Ports, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressloadbalancerstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// IngressLoadBalancerStatusApplyConfiguration represents a declarative configuration of the IngressLoadBalancerStatus type for use\n// with apply.\ntype IngressLoadBalancerStatusApplyConfiguration struct {\n\tIngress []IngressLoadBalancerIngressApplyConfiguration `json:\"ingress,omitempty\"`\n}\n\n// IngressLoadBalancerStatusApplyConfiguration constructs a declarative configuration of the IngressLoadBalancerStatus type for use with\n// apply.\nfunc IngressLoadBalancerStatus() *IngressLoadBalancerStatusApplyConfiguration {\n\treturn &IngressLoadBalancerStatusApplyConfiguration{}\n}\n\n// WithIngress adds the given value to the Ingress field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ingress field.\nfunc (b *IngressLoadBalancerStatusApplyConfiguration) WithIngress(values ...*IngressLoadBalancerIngressApplyConfiguration) *IngressLoadBalancerStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithIngress\")\n\t\t}\n\t\tb.Ingress = append(b.Ingress, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressportstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// IngressPortStatusApplyConfiguration represents a declarative configuration of the IngressPortStatus type for use\n// with apply.\ntype IngressPortStatusApplyConfiguration struct {\n\tPort     *int32           `json:\"port,omitempty\"`\n\tProtocol *corev1.Protocol `json:\"protocol,omitempty\"`\n\tError    *string          `json:\"error,omitempty\"`\n}\n\n// IngressPortStatusApplyConfiguration constructs a declarative configuration of the IngressPortStatus type for use with\n// apply.\nfunc IngressPortStatus() *IngressPortStatusApplyConfiguration {\n\treturn &IngressPortStatusApplyConfiguration{}\n}\n\n// WithPort sets the Port field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Port field is set to the value of the last call.\nfunc (b *IngressPortStatusApplyConfiguration) WithPort(value int32) *IngressPortStatusApplyConfiguration {\n\tb.Port = &value\n\treturn b\n}\n\n// WithProtocol sets the Protocol field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Protocol field is set to the value of the last call.\nfunc (b *IngressPortStatusApplyConfiguration) WithProtocol(value corev1.Protocol) *IngressPortStatusApplyConfiguration {\n\tb.Protocol = &value\n\treturn b\n}\n\n// WithError sets the Error field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Error field is set to the value of the last call.\nfunc (b *IngressPortStatusApplyConfiguration) WithError(value string) *IngressPortStatusApplyConfiguration {\n\tb.Error = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// IngressRuleApplyConfiguration represents a declarative configuration of the IngressRule type for use\n// with apply.\ntype IngressRuleApplyConfiguration struct {\n\tHost                               *string `json:\"host,omitempty\"`\n\tIngressRuleValueApplyConfiguration `json:\",inline\"`\n}\n\n// IngressRuleApplyConfiguration constructs a declarative configuration of the IngressRule type for use with\n// apply.\nfunc IngressRule() *IngressRuleApplyConfiguration {\n\treturn &IngressRuleApplyConfiguration{}\n}\n\n// WithHost sets the Host field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Host field is set to the value of the last call.\nfunc (b *IngressRuleApplyConfiguration) WithHost(value string) *IngressRuleApplyConfiguration {\n\tb.Host = &value\n\treturn b\n}\n\n// WithHTTP sets the HTTP field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HTTP field is set to the value of the last call.\nfunc (b *IngressRuleApplyConfiguration) WithHTTP(value *HTTPIngressRuleValueApplyConfiguration) *IngressRuleApplyConfiguration {\n\tb.IngressRuleValueApplyConfiguration.HTTP = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressrulevalue.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// IngressRuleValueApplyConfiguration represents a declarative configuration of the IngressRuleValue type for use\n// with apply.\ntype IngressRuleValueApplyConfiguration struct {\n\tHTTP *HTTPIngressRuleValueApplyConfiguration `json:\"http,omitempty\"`\n}\n\n// IngressRuleValueApplyConfiguration constructs a declarative configuration of the IngressRuleValue type for use with\n// apply.\nfunc IngressRuleValue() *IngressRuleValueApplyConfiguration {\n\treturn &IngressRuleValueApplyConfiguration{}\n}\n\n// WithHTTP sets the HTTP field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HTTP field is set to the value of the last call.\nfunc (b *IngressRuleValueApplyConfiguration) WithHTTP(value *HTTPIngressRuleValueApplyConfiguration) *IngressRuleValueApplyConfiguration {\n\tb.HTTP = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressservicebackend.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// IngressServiceBackendApplyConfiguration represents a declarative configuration of the IngressServiceBackend type for use\n// with apply.\ntype IngressServiceBackendApplyConfiguration struct {\n\tName *string                               `json:\"name,omitempty\"`\n\tPort *ServiceBackendPortApplyConfiguration `json:\"port,omitempty\"`\n}\n\n// IngressServiceBackendApplyConfiguration constructs a declarative configuration of the IngressServiceBackend type for use with\n// apply.\nfunc IngressServiceBackend() *IngressServiceBackendApplyConfiguration {\n\treturn &IngressServiceBackendApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *IngressServiceBackendApplyConfiguration) WithName(value string) *IngressServiceBackendApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithPort sets the Port field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Port field is set to the value of the last call.\nfunc (b *IngressServiceBackendApplyConfiguration) WithPort(value *ServiceBackendPortApplyConfiguration) *IngressServiceBackendApplyConfiguration {\n\tb.Port = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// IngressSpecApplyConfiguration represents a declarative configuration of the IngressSpec type for use\n// with apply.\ntype IngressSpecApplyConfiguration struct {\n\tIngressClassName *string                           `json:\"ingressClassName,omitempty\"`\n\tDefaultBackend   *IngressBackendApplyConfiguration `json:\"defaultBackend,omitempty\"`\n\tTLS              []IngressTLSApplyConfiguration    `json:\"tls,omitempty\"`\n\tRules            []IngressRuleApplyConfiguration   `json:\"rules,omitempty\"`\n}\n\n// IngressSpecApplyConfiguration constructs a declarative configuration of the IngressSpec type for use with\n// apply.\nfunc IngressSpec() *IngressSpecApplyConfiguration {\n\treturn &IngressSpecApplyConfiguration{}\n}\n\n// WithIngressClassName sets the IngressClassName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the IngressClassName field is set to the value of the last call.\nfunc (b *IngressSpecApplyConfiguration) WithIngressClassName(value string) *IngressSpecApplyConfiguration {\n\tb.IngressClassName = &value\n\treturn b\n}\n\n// WithDefaultBackend sets the DefaultBackend field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DefaultBackend field is set to the value of the last call.\nfunc (b *IngressSpecApplyConfiguration) WithDefaultBackend(value *IngressBackendApplyConfiguration) *IngressSpecApplyConfiguration {\n\tb.DefaultBackend = value\n\treturn b\n}\n\n// WithTLS adds the given value to the TLS field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the TLS field.\nfunc (b *IngressSpecApplyConfiguration) WithTLS(values ...*IngressTLSApplyConfiguration) *IngressSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithTLS\")\n\t\t}\n\t\tb.TLS = append(b.TLS, *values[i])\n\t}\n\treturn b\n}\n\n// WithRules adds the given value to the Rules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Rules field.\nfunc (b *IngressSpecApplyConfiguration) WithRules(values ...*IngressRuleApplyConfiguration) *IngressSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRules\")\n\t\t}\n\t\tb.Rules = append(b.Rules, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingressstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// IngressStatusApplyConfiguration represents a declarative configuration of the IngressStatus type for use\n// with apply.\ntype IngressStatusApplyConfiguration struct {\n\tLoadBalancer *IngressLoadBalancerStatusApplyConfiguration `json:\"loadBalancer,omitempty\"`\n}\n\n// IngressStatusApplyConfiguration constructs a declarative configuration of the IngressStatus type for use with\n// apply.\nfunc IngressStatus() *IngressStatusApplyConfiguration {\n\treturn &IngressStatusApplyConfiguration{}\n}\n\n// WithLoadBalancer sets the LoadBalancer field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LoadBalancer field is set to the value of the last call.\nfunc (b *IngressStatusApplyConfiguration) WithLoadBalancer(value *IngressLoadBalancerStatusApplyConfiguration) *IngressStatusApplyConfiguration {\n\tb.LoadBalancer = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/ingresstls.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// IngressTLSApplyConfiguration represents a declarative configuration of the IngressTLS type for use\n// with apply.\ntype IngressTLSApplyConfiguration struct {\n\tHosts      []string `json:\"hosts,omitempty\"`\n\tSecretName *string  `json:\"secretName,omitempty\"`\n}\n\n// IngressTLSApplyConfiguration constructs a declarative configuration of the IngressTLS type for use with\n// apply.\nfunc IngressTLS() *IngressTLSApplyConfiguration {\n\treturn &IngressTLSApplyConfiguration{}\n}\n\n// WithHosts adds the given value to the Hosts field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Hosts field.\nfunc (b *IngressTLSApplyConfiguration) WithHosts(values ...string) *IngressTLSApplyConfiguration {\n\tfor i := range values {\n\t\tb.Hosts = append(b.Hosts, values[i])\n\t}\n\treturn b\n}\n\n// WithSecretName sets the SecretName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretName field is set to the value of the last call.\nfunc (b *IngressTLSApplyConfiguration) WithSecretName(value string) *IngressTLSApplyConfiguration {\n\tb.SecretName = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/ipblock.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// IPBlockApplyConfiguration represents a declarative configuration of the IPBlock type for use\n// with apply.\ntype IPBlockApplyConfiguration struct {\n\tCIDR   *string  `json:\"cidr,omitempty\"`\n\tExcept []string `json:\"except,omitempty\"`\n}\n\n// IPBlockApplyConfiguration constructs a declarative configuration of the IPBlock type for use with\n// apply.\nfunc IPBlock() *IPBlockApplyConfiguration {\n\treturn &IPBlockApplyConfiguration{}\n}\n\n// WithCIDR sets the CIDR field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CIDR field is set to the value of the last call.\nfunc (b *IPBlockApplyConfiguration) WithCIDR(value string) *IPBlockApplyConfiguration {\n\tb.CIDR = &value\n\treturn b\n}\n\n// WithExcept adds the given value to the Except field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Except field.\nfunc (b *IPBlockApplyConfiguration) WithExcept(values ...string) *IPBlockApplyConfiguration {\n\tfor i := range values {\n\t\tb.Except = append(b.Except, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/networkpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tnetworkingv1 \"k8s.io/api/networking/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// NetworkPolicyApplyConfiguration represents a declarative configuration of the NetworkPolicy type for use\n// with apply.\ntype NetworkPolicyApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                                 *NetworkPolicySpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// NetworkPolicy constructs a declarative configuration of the NetworkPolicy type for use with\n// apply.\nfunc NetworkPolicy(name, namespace string) *NetworkPolicyApplyConfiguration {\n\tb := &NetworkPolicyApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"NetworkPolicy\")\n\tb.WithAPIVersion(\"networking.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractNetworkPolicy extracts the applied configuration owned by fieldManager from\n// networkPolicy. If no managedFields are found in networkPolicy for fieldManager, a\n// NetworkPolicyApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// networkPolicy must be a unmodified NetworkPolicy API object that was retrieved from the Kubernetes API.\n// ExtractNetworkPolicy provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractNetworkPolicy(networkPolicy *networkingv1.NetworkPolicy, fieldManager string) (*NetworkPolicyApplyConfiguration, error) {\n\treturn extractNetworkPolicy(networkPolicy, fieldManager, \"\")\n}\n\n// ExtractNetworkPolicyStatus is the same as ExtractNetworkPolicy except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractNetworkPolicyStatus(networkPolicy *networkingv1.NetworkPolicy, fieldManager string) (*NetworkPolicyApplyConfiguration, error) {\n\treturn extractNetworkPolicy(networkPolicy, fieldManager, \"status\")\n}\n\nfunc extractNetworkPolicy(networkPolicy *networkingv1.NetworkPolicy, fieldManager string, subresource string) (*NetworkPolicyApplyConfiguration, error) {\n\tb := &NetworkPolicyApplyConfiguration{}\n\terr := managedfields.ExtractInto(networkPolicy, internal.Parser().Type(\"io.k8s.api.networking.v1.NetworkPolicy\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(networkPolicy.Name)\n\tb.WithNamespace(networkPolicy.Namespace)\n\n\tb.WithKind(\"NetworkPolicy\")\n\tb.WithAPIVersion(\"networking.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithKind(value string) *NetworkPolicyApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithAPIVersion(value string) *NetworkPolicyApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithName(value string) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithGenerateName(value string) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithNamespace(value string) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithUID(value types.UID) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithResourceVersion(value string) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithGeneration(value int64) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *NetworkPolicyApplyConfiguration) WithLabels(entries map[string]string) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *NetworkPolicyApplyConfiguration) WithAnnotations(entries map[string]string) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *NetworkPolicyApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *NetworkPolicyApplyConfiguration) WithFinalizers(values ...string) *NetworkPolicyApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *NetworkPolicyApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *NetworkPolicyApplyConfiguration) WithSpec(value *NetworkPolicySpecApplyConfiguration) *NetworkPolicyApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *NetworkPolicyApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/networkpolicyegressrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// NetworkPolicyEgressRuleApplyConfiguration represents a declarative configuration of the NetworkPolicyEgressRule type for use\n// with apply.\ntype NetworkPolicyEgressRuleApplyConfiguration struct {\n\tPorts []NetworkPolicyPortApplyConfiguration `json:\"ports,omitempty\"`\n\tTo    []NetworkPolicyPeerApplyConfiguration `json:\"to,omitempty\"`\n}\n\n// NetworkPolicyEgressRuleApplyConfiguration constructs a declarative configuration of the NetworkPolicyEgressRule type for use with\n// apply.\nfunc NetworkPolicyEgressRule() *NetworkPolicyEgressRuleApplyConfiguration {\n\treturn &NetworkPolicyEgressRuleApplyConfiguration{}\n}\n\n// WithPorts adds the given value to the Ports field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ports field.\nfunc (b *NetworkPolicyEgressRuleApplyConfiguration) WithPorts(values ...*NetworkPolicyPortApplyConfiguration) *NetworkPolicyEgressRuleApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPorts\")\n\t\t}\n\t\tb.Ports = append(b.Ports, *values[i])\n\t}\n\treturn b\n}\n\n// WithTo adds the given value to the To field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the To field.\nfunc (b *NetworkPolicyEgressRuleApplyConfiguration) WithTo(values ...*NetworkPolicyPeerApplyConfiguration) *NetworkPolicyEgressRuleApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithTo\")\n\t\t}\n\t\tb.To = append(b.To, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/networkpolicyingressrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// NetworkPolicyIngressRuleApplyConfiguration represents a declarative configuration of the NetworkPolicyIngressRule type for use\n// with apply.\ntype NetworkPolicyIngressRuleApplyConfiguration struct {\n\tPorts []NetworkPolicyPortApplyConfiguration `json:\"ports,omitempty\"`\n\tFrom  []NetworkPolicyPeerApplyConfiguration `json:\"from,omitempty\"`\n}\n\n// NetworkPolicyIngressRuleApplyConfiguration constructs a declarative configuration of the NetworkPolicyIngressRule type for use with\n// apply.\nfunc NetworkPolicyIngressRule() *NetworkPolicyIngressRuleApplyConfiguration {\n\treturn &NetworkPolicyIngressRuleApplyConfiguration{}\n}\n\n// WithPorts adds the given value to the Ports field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ports field.\nfunc (b *NetworkPolicyIngressRuleApplyConfiguration) WithPorts(values ...*NetworkPolicyPortApplyConfiguration) *NetworkPolicyIngressRuleApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPorts\")\n\t\t}\n\t\tb.Ports = append(b.Ports, *values[i])\n\t}\n\treturn b\n}\n\n// WithFrom adds the given value to the From field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the From field.\nfunc (b *NetworkPolicyIngressRuleApplyConfiguration) WithFrom(values ...*NetworkPolicyPeerApplyConfiguration) *NetworkPolicyIngressRuleApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithFrom\")\n\t\t}\n\t\tb.From = append(b.From, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/networkpolicypeer.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// NetworkPolicyPeerApplyConfiguration represents a declarative configuration of the NetworkPolicyPeer type for use\n// with apply.\ntype NetworkPolicyPeerApplyConfiguration struct {\n\tPodSelector       *metav1.LabelSelectorApplyConfiguration `json:\"podSelector,omitempty\"`\n\tNamespaceSelector *metav1.LabelSelectorApplyConfiguration `json:\"namespaceSelector,omitempty\"`\n\tIPBlock           *IPBlockApplyConfiguration              `json:\"ipBlock,omitempty\"`\n}\n\n// NetworkPolicyPeerApplyConfiguration constructs a declarative configuration of the NetworkPolicyPeer type for use with\n// apply.\nfunc NetworkPolicyPeer() *NetworkPolicyPeerApplyConfiguration {\n\treturn &NetworkPolicyPeerApplyConfiguration{}\n}\n\n// WithPodSelector sets the PodSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PodSelector field is set to the value of the last call.\nfunc (b *NetworkPolicyPeerApplyConfiguration) WithPodSelector(value *metav1.LabelSelectorApplyConfiguration) *NetworkPolicyPeerApplyConfiguration {\n\tb.PodSelector = value\n\treturn b\n}\n\n// WithNamespaceSelector sets the NamespaceSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NamespaceSelector field is set to the value of the last call.\nfunc (b *NetworkPolicyPeerApplyConfiguration) WithNamespaceSelector(value *metav1.LabelSelectorApplyConfiguration) *NetworkPolicyPeerApplyConfiguration {\n\tb.NamespaceSelector = value\n\treturn b\n}\n\n// WithIPBlock sets the IPBlock field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the IPBlock field is set to the value of the last call.\nfunc (b *NetworkPolicyPeerApplyConfiguration) WithIPBlock(value *IPBlockApplyConfiguration) *NetworkPolicyPeerApplyConfiguration {\n\tb.IPBlock = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/networkpolicyport.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n)\n\n// NetworkPolicyPortApplyConfiguration represents a declarative configuration of the NetworkPolicyPort type for use\n// with apply.\ntype NetworkPolicyPortApplyConfiguration struct {\n\tProtocol *corev1.Protocol    `json:\"protocol,omitempty\"`\n\tPort     *intstr.IntOrString `json:\"port,omitempty\"`\n\tEndPort  *int32              `json:\"endPort,omitempty\"`\n}\n\n// NetworkPolicyPortApplyConfiguration constructs a declarative configuration of the NetworkPolicyPort type for use with\n// apply.\nfunc NetworkPolicyPort() *NetworkPolicyPortApplyConfiguration {\n\treturn &NetworkPolicyPortApplyConfiguration{}\n}\n\n// WithProtocol sets the Protocol field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Protocol field is set to the value of the last call.\nfunc (b *NetworkPolicyPortApplyConfiguration) WithProtocol(value corev1.Protocol) *NetworkPolicyPortApplyConfiguration {\n\tb.Protocol = &value\n\treturn b\n}\n\n// WithPort sets the Port field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Port field is set to the value of the last call.\nfunc (b *NetworkPolicyPortApplyConfiguration) WithPort(value intstr.IntOrString) *NetworkPolicyPortApplyConfiguration {\n\tb.Port = &value\n\treturn b\n}\n\n// WithEndPort sets the EndPort field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the EndPort field is set to the value of the last call.\nfunc (b *NetworkPolicyPortApplyConfiguration) WithEndPort(value int32) *NetworkPolicyPortApplyConfiguration {\n\tb.EndPort = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/networkpolicyspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tnetworkingv1 \"k8s.io/api/networking/v1\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// NetworkPolicySpecApplyConfiguration represents a declarative configuration of the NetworkPolicySpec type for use\n// with apply.\ntype NetworkPolicySpecApplyConfiguration struct {\n\tPodSelector *metav1.LabelSelectorApplyConfiguration      `json:\"podSelector,omitempty\"`\n\tIngress     []NetworkPolicyIngressRuleApplyConfiguration `json:\"ingress,omitempty\"`\n\tEgress      []NetworkPolicyEgressRuleApplyConfiguration  `json:\"egress,omitempty\"`\n\tPolicyTypes []networkingv1.PolicyType                    `json:\"policyTypes,omitempty\"`\n}\n\n// NetworkPolicySpecApplyConfiguration constructs a declarative configuration of the NetworkPolicySpec type for use with\n// apply.\nfunc NetworkPolicySpec() *NetworkPolicySpecApplyConfiguration {\n\treturn &NetworkPolicySpecApplyConfiguration{}\n}\n\n// WithPodSelector sets the PodSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PodSelector field is set to the value of the last call.\nfunc (b *NetworkPolicySpecApplyConfiguration) WithPodSelector(value *metav1.LabelSelectorApplyConfiguration) *NetworkPolicySpecApplyConfiguration {\n\tb.PodSelector = value\n\treturn b\n}\n\n// WithIngress adds the given value to the Ingress field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ingress field.\nfunc (b *NetworkPolicySpecApplyConfiguration) WithIngress(values ...*NetworkPolicyIngressRuleApplyConfiguration) *NetworkPolicySpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithIngress\")\n\t\t}\n\t\tb.Ingress = append(b.Ingress, *values[i])\n\t}\n\treturn b\n}\n\n// WithEgress adds the given value to the Egress field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Egress field.\nfunc (b *NetworkPolicySpecApplyConfiguration) WithEgress(values ...*NetworkPolicyEgressRuleApplyConfiguration) *NetworkPolicySpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithEgress\")\n\t\t}\n\t\tb.Egress = append(b.Egress, *values[i])\n\t}\n\treturn b\n}\n\n// WithPolicyTypes adds the given value to the PolicyTypes field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the PolicyTypes field.\nfunc (b *NetworkPolicySpecApplyConfiguration) WithPolicyTypes(values ...networkingv1.PolicyType) *NetworkPolicySpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.PolicyTypes = append(b.PolicyTypes, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1/servicebackendport.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// ServiceBackendPortApplyConfiguration represents a declarative configuration of the ServiceBackendPort type for use\n// with apply.\ntype ServiceBackendPortApplyConfiguration struct {\n\tName   *string `json:\"name,omitempty\"`\n\tNumber *int32  `json:\"number,omitempty\"`\n}\n\n// ServiceBackendPortApplyConfiguration constructs a declarative configuration of the ServiceBackendPort type for use with\n// apply.\nfunc ServiceBackendPort() *ServiceBackendPortApplyConfiguration {\n\treturn &ServiceBackendPortApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ServiceBackendPortApplyConfiguration) WithName(value string) *ServiceBackendPortApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithNumber sets the Number field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Number field is set to the value of the last call.\nfunc (b *ServiceBackendPortApplyConfiguration) WithNumber(value int32) *ServiceBackendPortApplyConfiguration {\n\tb.Number = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1alpha1/ipaddress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tnetworkingv1alpha1 \"k8s.io/api/networking/v1alpha1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// IPAddressApplyConfiguration represents a declarative configuration of the IPAddress type for use\n// with apply.\ntype IPAddressApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *IPAddressSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// IPAddress constructs a declarative configuration of the IPAddress type for use with\n// apply.\nfunc IPAddress(name string) *IPAddressApplyConfiguration {\n\tb := &IPAddressApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"IPAddress\")\n\tb.WithAPIVersion(\"networking.k8s.io/v1alpha1\")\n\treturn b\n}\n\n// ExtractIPAddress extracts the applied configuration owned by fieldManager from\n// iPAddress. If no managedFields are found in iPAddress for fieldManager, a\n// IPAddressApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// iPAddress must be a unmodified IPAddress API object that was retrieved from the Kubernetes API.\n// ExtractIPAddress provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractIPAddress(iPAddress *networkingv1alpha1.IPAddress, fieldManager string) (*IPAddressApplyConfiguration, error) {\n\treturn extractIPAddress(iPAddress, fieldManager, \"\")\n}\n\n// ExtractIPAddressStatus is the same as ExtractIPAddress except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractIPAddressStatus(iPAddress *networkingv1alpha1.IPAddress, fieldManager string) (*IPAddressApplyConfiguration, error) {\n\treturn extractIPAddress(iPAddress, fieldManager, \"status\")\n}\n\nfunc extractIPAddress(iPAddress *networkingv1alpha1.IPAddress, fieldManager string, subresource string) (*IPAddressApplyConfiguration, error) {\n\tb := &IPAddressApplyConfiguration{}\n\terr := managedfields.ExtractInto(iPAddress, internal.Parser().Type(\"io.k8s.api.networking.v1alpha1.IPAddress\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(iPAddress.Name)\n\n\tb.WithKind(\"IPAddress\")\n\tb.WithAPIVersion(\"networking.k8s.io/v1alpha1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *IPAddressApplyConfiguration) WithKind(value string) *IPAddressApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *IPAddressApplyConfiguration) WithAPIVersion(value string) *IPAddressApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *IPAddressApplyConfiguration) WithName(value string) *IPAddressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *IPAddressApplyConfiguration) WithGenerateName(value string) *IPAddressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *IPAddressApplyConfiguration) WithNamespace(value string) *IPAddressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *IPAddressApplyConfiguration) WithUID(value types.UID) *IPAddressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *IPAddressApplyConfiguration) WithResourceVersion(value string) *IPAddressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *IPAddressApplyConfiguration) WithGeneration(value int64) *IPAddressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *IPAddressApplyConfiguration) WithCreationTimestamp(value metav1.Time) *IPAddressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *IPAddressApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *IPAddressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *IPAddressApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *IPAddressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *IPAddressApplyConfiguration) WithLabels(entries map[string]string) *IPAddressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *IPAddressApplyConfiguration) WithAnnotations(entries map[string]string) *IPAddressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *IPAddressApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *IPAddressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *IPAddressApplyConfiguration) WithFinalizers(values ...string) *IPAddressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *IPAddressApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *IPAddressApplyConfiguration) WithSpec(value *IPAddressSpecApplyConfiguration) *IPAddressApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *IPAddressApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1alpha1/ipaddressspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// IPAddressSpecApplyConfiguration represents a declarative configuration of the IPAddressSpec type for use\n// with apply.\ntype IPAddressSpecApplyConfiguration struct {\n\tParentRef *ParentReferenceApplyConfiguration `json:\"parentRef,omitempty\"`\n}\n\n// IPAddressSpecApplyConfiguration constructs a declarative configuration of the IPAddressSpec type for use with\n// apply.\nfunc IPAddressSpec() *IPAddressSpecApplyConfiguration {\n\treturn &IPAddressSpecApplyConfiguration{}\n}\n\n// WithParentRef sets the ParentRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ParentRef field is set to the value of the last call.\nfunc (b *IPAddressSpecApplyConfiguration) WithParentRef(value *ParentReferenceApplyConfiguration) *IPAddressSpecApplyConfiguration {\n\tb.ParentRef = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1alpha1/parentreference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// ParentReferenceApplyConfiguration represents a declarative configuration of the ParentReference type for use\n// with apply.\ntype ParentReferenceApplyConfiguration struct {\n\tGroup     *string `json:\"group,omitempty\"`\n\tResource  *string `json:\"resource,omitempty\"`\n\tNamespace *string `json:\"namespace,omitempty\"`\n\tName      *string `json:\"name,omitempty\"`\n}\n\n// ParentReferenceApplyConfiguration constructs a declarative configuration of the ParentReference type for use with\n// apply.\nfunc ParentReference() *ParentReferenceApplyConfiguration {\n\treturn &ParentReferenceApplyConfiguration{}\n}\n\n// WithGroup sets the Group field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Group field is set to the value of the last call.\nfunc (b *ParentReferenceApplyConfiguration) WithGroup(value string) *ParentReferenceApplyConfiguration {\n\tb.Group = &value\n\treturn b\n}\n\n// WithResource sets the Resource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Resource field is set to the value of the last call.\nfunc (b *ParentReferenceApplyConfiguration) WithResource(value string) *ParentReferenceApplyConfiguration {\n\tb.Resource = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ParentReferenceApplyConfiguration) WithNamespace(value string) *ParentReferenceApplyConfiguration {\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ParentReferenceApplyConfiguration) WithName(value string) *ParentReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1alpha1/servicecidr.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tnetworkingv1alpha1 \"k8s.io/api/networking/v1alpha1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ServiceCIDRApplyConfiguration represents a declarative configuration of the ServiceCIDR type for use\n// with apply.\ntype ServiceCIDRApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *ServiceCIDRSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *ServiceCIDRStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// ServiceCIDR constructs a declarative configuration of the ServiceCIDR type for use with\n// apply.\nfunc ServiceCIDR(name string) *ServiceCIDRApplyConfiguration {\n\tb := &ServiceCIDRApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"ServiceCIDR\")\n\tb.WithAPIVersion(\"networking.k8s.io/v1alpha1\")\n\treturn b\n}\n\n// ExtractServiceCIDR extracts the applied configuration owned by fieldManager from\n// serviceCIDR. If no managedFields are found in serviceCIDR for fieldManager, a\n// ServiceCIDRApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// serviceCIDR must be a unmodified ServiceCIDR API object that was retrieved from the Kubernetes API.\n// ExtractServiceCIDR provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractServiceCIDR(serviceCIDR *networkingv1alpha1.ServiceCIDR, fieldManager string) (*ServiceCIDRApplyConfiguration, error) {\n\treturn extractServiceCIDR(serviceCIDR, fieldManager, \"\")\n}\n\n// ExtractServiceCIDRStatus is the same as ExtractServiceCIDR except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractServiceCIDRStatus(serviceCIDR *networkingv1alpha1.ServiceCIDR, fieldManager string) (*ServiceCIDRApplyConfiguration, error) {\n\treturn extractServiceCIDR(serviceCIDR, fieldManager, \"status\")\n}\n\nfunc extractServiceCIDR(serviceCIDR *networkingv1alpha1.ServiceCIDR, fieldManager string, subresource string) (*ServiceCIDRApplyConfiguration, error) {\n\tb := &ServiceCIDRApplyConfiguration{}\n\terr := managedfields.ExtractInto(serviceCIDR, internal.Parser().Type(\"io.k8s.api.networking.v1alpha1.ServiceCIDR\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(serviceCIDR.Name)\n\n\tb.WithKind(\"ServiceCIDR\")\n\tb.WithAPIVersion(\"networking.k8s.io/v1alpha1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ServiceCIDRApplyConfiguration) WithKind(value string) *ServiceCIDRApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ServiceCIDRApplyConfiguration) WithAPIVersion(value string) *ServiceCIDRApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ServiceCIDRApplyConfiguration) WithName(value string) *ServiceCIDRApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ServiceCIDRApplyConfiguration) WithGenerateName(value string) *ServiceCIDRApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ServiceCIDRApplyConfiguration) WithNamespace(value string) *ServiceCIDRApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ServiceCIDRApplyConfiguration) WithUID(value types.UID) *ServiceCIDRApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ServiceCIDRApplyConfiguration) WithResourceVersion(value string) *ServiceCIDRApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ServiceCIDRApplyConfiguration) WithGeneration(value int64) *ServiceCIDRApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ServiceCIDRApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ServiceCIDRApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ServiceCIDRApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ServiceCIDRApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ServiceCIDRApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ServiceCIDRApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ServiceCIDRApplyConfiguration) WithLabels(entries map[string]string) *ServiceCIDRApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ServiceCIDRApplyConfiguration) WithAnnotations(entries map[string]string) *ServiceCIDRApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ServiceCIDRApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ServiceCIDRApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ServiceCIDRApplyConfiguration) WithFinalizers(values ...string) *ServiceCIDRApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ServiceCIDRApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *ServiceCIDRApplyConfiguration) WithSpec(value *ServiceCIDRSpecApplyConfiguration) *ServiceCIDRApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *ServiceCIDRApplyConfiguration) WithStatus(value *ServiceCIDRStatusApplyConfiguration) *ServiceCIDRApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *ServiceCIDRApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1alpha1/servicecidrspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// ServiceCIDRSpecApplyConfiguration represents a declarative configuration of the ServiceCIDRSpec type for use\n// with apply.\ntype ServiceCIDRSpecApplyConfiguration struct {\n\tCIDRs []string `json:\"cidrs,omitempty\"`\n}\n\n// ServiceCIDRSpecApplyConfiguration constructs a declarative configuration of the ServiceCIDRSpec type for use with\n// apply.\nfunc ServiceCIDRSpec() *ServiceCIDRSpecApplyConfiguration {\n\treturn &ServiceCIDRSpecApplyConfiguration{}\n}\n\n// WithCIDRs adds the given value to the CIDRs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the CIDRs field.\nfunc (b *ServiceCIDRSpecApplyConfiguration) WithCIDRs(values ...string) *ServiceCIDRSpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.CIDRs = append(b.CIDRs, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1alpha1/servicecidrstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ServiceCIDRStatusApplyConfiguration represents a declarative configuration of the ServiceCIDRStatus type for use\n// with apply.\ntype ServiceCIDRStatusApplyConfiguration struct {\n\tConditions []v1.ConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// ServiceCIDRStatusApplyConfiguration constructs a declarative configuration of the ServiceCIDRStatus type for use with\n// apply.\nfunc ServiceCIDRStatus() *ServiceCIDRStatusApplyConfiguration {\n\treturn &ServiceCIDRStatusApplyConfiguration{}\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *ServiceCIDRStatusApplyConfiguration) WithConditions(values ...*v1.ConditionApplyConfiguration) *ServiceCIDRStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/httpingresspath.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tnetworkingv1beta1 \"k8s.io/api/networking/v1beta1\"\n)\n\n// HTTPIngressPathApplyConfiguration represents a declarative configuration of the HTTPIngressPath type for use\n// with apply.\ntype HTTPIngressPathApplyConfiguration struct {\n\tPath     *string                           `json:\"path,omitempty\"`\n\tPathType *networkingv1beta1.PathType       `json:\"pathType,omitempty\"`\n\tBackend  *IngressBackendApplyConfiguration `json:\"backend,omitempty\"`\n}\n\n// HTTPIngressPathApplyConfiguration constructs a declarative configuration of the HTTPIngressPath type for use with\n// apply.\nfunc HTTPIngressPath() *HTTPIngressPathApplyConfiguration {\n\treturn &HTTPIngressPathApplyConfiguration{}\n}\n\n// WithPath sets the Path field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Path field is set to the value of the last call.\nfunc (b *HTTPIngressPathApplyConfiguration) WithPath(value string) *HTTPIngressPathApplyConfiguration {\n\tb.Path = &value\n\treturn b\n}\n\n// WithPathType sets the PathType field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PathType field is set to the value of the last call.\nfunc (b *HTTPIngressPathApplyConfiguration) WithPathType(value networkingv1beta1.PathType) *HTTPIngressPathApplyConfiguration {\n\tb.PathType = &value\n\treturn b\n}\n\n// WithBackend sets the Backend field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Backend field is set to the value of the last call.\nfunc (b *HTTPIngressPathApplyConfiguration) WithBackend(value *IngressBackendApplyConfiguration) *HTTPIngressPathApplyConfiguration {\n\tb.Backend = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/httpingressrulevalue.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// HTTPIngressRuleValueApplyConfiguration represents a declarative configuration of the HTTPIngressRuleValue type for use\n// with apply.\ntype HTTPIngressRuleValueApplyConfiguration struct {\n\tPaths []HTTPIngressPathApplyConfiguration `json:\"paths,omitempty\"`\n}\n\n// HTTPIngressRuleValueApplyConfiguration constructs a declarative configuration of the HTTPIngressRuleValue type for use with\n// apply.\nfunc HTTPIngressRuleValue() *HTTPIngressRuleValueApplyConfiguration {\n\treturn &HTTPIngressRuleValueApplyConfiguration{}\n}\n\n// WithPaths adds the given value to the Paths field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Paths field.\nfunc (b *HTTPIngressRuleValueApplyConfiguration) WithPaths(values ...*HTTPIngressPathApplyConfiguration) *HTTPIngressRuleValueApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPaths\")\n\t\t}\n\t\tb.Paths = append(b.Paths, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tnetworkingv1beta1 \"k8s.io/api/networking/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// IngressApplyConfiguration represents a declarative configuration of the Ingress type for use\n// with apply.\ntype IngressApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *IngressSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *IngressStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// Ingress constructs a declarative configuration of the Ingress type for use with\n// apply.\nfunc Ingress(name, namespace string) *IngressApplyConfiguration {\n\tb := &IngressApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Ingress\")\n\tb.WithAPIVersion(\"networking.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractIngress extracts the applied configuration owned by fieldManager from\n// ingress. If no managedFields are found in ingress for fieldManager, a\n// IngressApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// ingress must be a unmodified Ingress API object that was retrieved from the Kubernetes API.\n// ExtractIngress provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractIngress(ingress *networkingv1beta1.Ingress, fieldManager string) (*IngressApplyConfiguration, error) {\n\treturn extractIngress(ingress, fieldManager, \"\")\n}\n\n// ExtractIngressStatus is the same as ExtractIngress except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractIngressStatus(ingress *networkingv1beta1.Ingress, fieldManager string) (*IngressApplyConfiguration, error) {\n\treturn extractIngress(ingress, fieldManager, \"status\")\n}\n\nfunc extractIngress(ingress *networkingv1beta1.Ingress, fieldManager string, subresource string) (*IngressApplyConfiguration, error) {\n\tb := &IngressApplyConfiguration{}\n\terr := managedfields.ExtractInto(ingress, internal.Parser().Type(\"io.k8s.api.networking.v1beta1.Ingress\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(ingress.Name)\n\tb.WithNamespace(ingress.Namespace)\n\n\tb.WithKind(\"Ingress\")\n\tb.WithAPIVersion(\"networking.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithKind(value string) *IngressApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithAPIVersion(value string) *IngressApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithName(value string) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithGenerateName(value string) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithNamespace(value string) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithUID(value types.UID) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithResourceVersion(value string) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithGeneration(value int64) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithCreationTimestamp(value metav1.Time) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *IngressApplyConfiguration) WithLabels(entries map[string]string) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *IngressApplyConfiguration) WithAnnotations(entries map[string]string) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *IngressApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *IngressApplyConfiguration) WithFinalizers(values ...string) *IngressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *IngressApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithSpec(value *IngressSpecApplyConfiguration) *IngressApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *IngressApplyConfiguration) WithStatus(value *IngressStatusApplyConfiguration) *IngressApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *IngressApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressbackend.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n\tv1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n)\n\n// IngressBackendApplyConfiguration represents a declarative configuration of the IngressBackend type for use\n// with apply.\ntype IngressBackendApplyConfiguration struct {\n\tServiceName *string                                         `json:\"serviceName,omitempty\"`\n\tServicePort *intstr.IntOrString                             `json:\"servicePort,omitempty\"`\n\tResource    *v1.TypedLocalObjectReferenceApplyConfiguration `json:\"resource,omitempty\"`\n}\n\n// IngressBackendApplyConfiguration constructs a declarative configuration of the IngressBackend type for use with\n// apply.\nfunc IngressBackend() *IngressBackendApplyConfiguration {\n\treturn &IngressBackendApplyConfiguration{}\n}\n\n// WithServiceName sets the ServiceName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ServiceName field is set to the value of the last call.\nfunc (b *IngressBackendApplyConfiguration) WithServiceName(value string) *IngressBackendApplyConfiguration {\n\tb.ServiceName = &value\n\treturn b\n}\n\n// WithServicePort sets the ServicePort field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ServicePort field is set to the value of the last call.\nfunc (b *IngressBackendApplyConfiguration) WithServicePort(value intstr.IntOrString) *IngressBackendApplyConfiguration {\n\tb.ServicePort = &value\n\treturn b\n}\n\n// WithResource sets the Resource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Resource field is set to the value of the last call.\nfunc (b *IngressBackendApplyConfiguration) WithResource(value *v1.TypedLocalObjectReferenceApplyConfiguration) *IngressBackendApplyConfiguration {\n\tb.Resource = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tnetworkingv1beta1 \"k8s.io/api/networking/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// IngressClassApplyConfiguration represents a declarative configuration of the IngressClass type for use\n// with apply.\ntype IngressClassApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *IngressClassSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// IngressClass constructs a declarative configuration of the IngressClass type for use with\n// apply.\nfunc IngressClass(name string) *IngressClassApplyConfiguration {\n\tb := &IngressClassApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"IngressClass\")\n\tb.WithAPIVersion(\"networking.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractIngressClass extracts the applied configuration owned by fieldManager from\n// ingressClass. If no managedFields are found in ingressClass for fieldManager, a\n// IngressClassApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// ingressClass must be a unmodified IngressClass API object that was retrieved from the Kubernetes API.\n// ExtractIngressClass provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractIngressClass(ingressClass *networkingv1beta1.IngressClass, fieldManager string) (*IngressClassApplyConfiguration, error) {\n\treturn extractIngressClass(ingressClass, fieldManager, \"\")\n}\n\n// ExtractIngressClassStatus is the same as ExtractIngressClass except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractIngressClassStatus(ingressClass *networkingv1beta1.IngressClass, fieldManager string) (*IngressClassApplyConfiguration, error) {\n\treturn extractIngressClass(ingressClass, fieldManager, \"status\")\n}\n\nfunc extractIngressClass(ingressClass *networkingv1beta1.IngressClass, fieldManager string, subresource string) (*IngressClassApplyConfiguration, error) {\n\tb := &IngressClassApplyConfiguration{}\n\terr := managedfields.ExtractInto(ingressClass, internal.Parser().Type(\"io.k8s.api.networking.v1beta1.IngressClass\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(ingressClass.Name)\n\n\tb.WithKind(\"IngressClass\")\n\tb.WithAPIVersion(\"networking.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithKind(value string) *IngressClassApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithAPIVersion(value string) *IngressClassApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithName(value string) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithGenerateName(value string) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithNamespace(value string) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithUID(value types.UID) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithResourceVersion(value string) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithGeneration(value int64) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithCreationTimestamp(value metav1.Time) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *IngressClassApplyConfiguration) WithLabels(entries map[string]string) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *IngressClassApplyConfiguration) WithAnnotations(entries map[string]string) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *IngressClassApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *IngressClassApplyConfiguration) WithFinalizers(values ...string) *IngressClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *IngressClassApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *IngressClassApplyConfiguration) WithSpec(value *IngressClassSpecApplyConfiguration) *IngressClassApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *IngressClassApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressclassparametersreference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// IngressClassParametersReferenceApplyConfiguration represents a declarative configuration of the IngressClassParametersReference type for use\n// with apply.\ntype IngressClassParametersReferenceApplyConfiguration struct {\n\tAPIGroup  *string `json:\"apiGroup,omitempty\"`\n\tKind      *string `json:\"kind,omitempty\"`\n\tName      *string `json:\"name,omitempty\"`\n\tScope     *string `json:\"scope,omitempty\"`\n\tNamespace *string `json:\"namespace,omitempty\"`\n}\n\n// IngressClassParametersReferenceApplyConfiguration constructs a declarative configuration of the IngressClassParametersReference type for use with\n// apply.\nfunc IngressClassParametersReference() *IngressClassParametersReferenceApplyConfiguration {\n\treturn &IngressClassParametersReferenceApplyConfiguration{}\n}\n\n// WithAPIGroup sets the APIGroup field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIGroup field is set to the value of the last call.\nfunc (b *IngressClassParametersReferenceApplyConfiguration) WithAPIGroup(value string) *IngressClassParametersReferenceApplyConfiguration {\n\tb.APIGroup = &value\n\treturn b\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *IngressClassParametersReferenceApplyConfiguration) WithKind(value string) *IngressClassParametersReferenceApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *IngressClassParametersReferenceApplyConfiguration) WithName(value string) *IngressClassParametersReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithScope sets the Scope field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Scope field is set to the value of the last call.\nfunc (b *IngressClassParametersReferenceApplyConfiguration) WithScope(value string) *IngressClassParametersReferenceApplyConfiguration {\n\tb.Scope = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *IngressClassParametersReferenceApplyConfiguration) WithNamespace(value string) *IngressClassParametersReferenceApplyConfiguration {\n\tb.Namespace = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressclassspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// IngressClassSpecApplyConfiguration represents a declarative configuration of the IngressClassSpec type for use\n// with apply.\ntype IngressClassSpecApplyConfiguration struct {\n\tController *string                                            `json:\"controller,omitempty\"`\n\tParameters *IngressClassParametersReferenceApplyConfiguration `json:\"parameters,omitempty\"`\n}\n\n// IngressClassSpecApplyConfiguration constructs a declarative configuration of the IngressClassSpec type for use with\n// apply.\nfunc IngressClassSpec() *IngressClassSpecApplyConfiguration {\n\treturn &IngressClassSpecApplyConfiguration{}\n}\n\n// WithController sets the Controller field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Controller field is set to the value of the last call.\nfunc (b *IngressClassSpecApplyConfiguration) WithController(value string) *IngressClassSpecApplyConfiguration {\n\tb.Controller = &value\n\treturn b\n}\n\n// WithParameters sets the Parameters field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Parameters field is set to the value of the last call.\nfunc (b *IngressClassSpecApplyConfiguration) WithParameters(value *IngressClassParametersReferenceApplyConfiguration) *IngressClassSpecApplyConfiguration {\n\tb.Parameters = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressloadbalanceringress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// IngressLoadBalancerIngressApplyConfiguration represents a declarative configuration of the IngressLoadBalancerIngress type for use\n// with apply.\ntype IngressLoadBalancerIngressApplyConfiguration struct {\n\tIP       *string                               `json:\"ip,omitempty\"`\n\tHostname *string                               `json:\"hostname,omitempty\"`\n\tPorts    []IngressPortStatusApplyConfiguration `json:\"ports,omitempty\"`\n}\n\n// IngressLoadBalancerIngressApplyConfiguration constructs a declarative configuration of the IngressLoadBalancerIngress type for use with\n// apply.\nfunc IngressLoadBalancerIngress() *IngressLoadBalancerIngressApplyConfiguration {\n\treturn &IngressLoadBalancerIngressApplyConfiguration{}\n}\n\n// WithIP sets the IP field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the IP field is set to the value of the last call.\nfunc (b *IngressLoadBalancerIngressApplyConfiguration) WithIP(value string) *IngressLoadBalancerIngressApplyConfiguration {\n\tb.IP = &value\n\treturn b\n}\n\n// WithHostname sets the Hostname field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Hostname field is set to the value of the last call.\nfunc (b *IngressLoadBalancerIngressApplyConfiguration) WithHostname(value string) *IngressLoadBalancerIngressApplyConfiguration {\n\tb.Hostname = &value\n\treturn b\n}\n\n// WithPorts adds the given value to the Ports field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ports field.\nfunc (b *IngressLoadBalancerIngressApplyConfiguration) WithPorts(values ...*IngressPortStatusApplyConfiguration) *IngressLoadBalancerIngressApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithPorts\")\n\t\t}\n\t\tb.Ports = append(b.Ports, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressloadbalancerstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// IngressLoadBalancerStatusApplyConfiguration represents a declarative configuration of the IngressLoadBalancerStatus type for use\n// with apply.\ntype IngressLoadBalancerStatusApplyConfiguration struct {\n\tIngress []IngressLoadBalancerIngressApplyConfiguration `json:\"ingress,omitempty\"`\n}\n\n// IngressLoadBalancerStatusApplyConfiguration constructs a declarative configuration of the IngressLoadBalancerStatus type for use with\n// apply.\nfunc IngressLoadBalancerStatus() *IngressLoadBalancerStatusApplyConfiguration {\n\treturn &IngressLoadBalancerStatusApplyConfiguration{}\n}\n\n// WithIngress adds the given value to the Ingress field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Ingress field.\nfunc (b *IngressLoadBalancerStatusApplyConfiguration) WithIngress(values ...*IngressLoadBalancerIngressApplyConfiguration) *IngressLoadBalancerStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithIngress\")\n\t\t}\n\t\tb.Ingress = append(b.Ingress, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressportstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// IngressPortStatusApplyConfiguration represents a declarative configuration of the IngressPortStatus type for use\n// with apply.\ntype IngressPortStatusApplyConfiguration struct {\n\tPort     *int32       `json:\"port,omitempty\"`\n\tProtocol *v1.Protocol `json:\"protocol,omitempty\"`\n\tError    *string      `json:\"error,omitempty\"`\n}\n\n// IngressPortStatusApplyConfiguration constructs a declarative configuration of the IngressPortStatus type for use with\n// apply.\nfunc IngressPortStatus() *IngressPortStatusApplyConfiguration {\n\treturn &IngressPortStatusApplyConfiguration{}\n}\n\n// WithPort sets the Port field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Port field is set to the value of the last call.\nfunc (b *IngressPortStatusApplyConfiguration) WithPort(value int32) *IngressPortStatusApplyConfiguration {\n\tb.Port = &value\n\treturn b\n}\n\n// WithProtocol sets the Protocol field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Protocol field is set to the value of the last call.\nfunc (b *IngressPortStatusApplyConfiguration) WithProtocol(value v1.Protocol) *IngressPortStatusApplyConfiguration {\n\tb.Protocol = &value\n\treturn b\n}\n\n// WithError sets the Error field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Error field is set to the value of the last call.\nfunc (b *IngressPortStatusApplyConfiguration) WithError(value string) *IngressPortStatusApplyConfiguration {\n\tb.Error = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// IngressRuleApplyConfiguration represents a declarative configuration of the IngressRule type for use\n// with apply.\ntype IngressRuleApplyConfiguration struct {\n\tHost                               *string `json:\"host,omitempty\"`\n\tIngressRuleValueApplyConfiguration `json:\",inline\"`\n}\n\n// IngressRuleApplyConfiguration constructs a declarative configuration of the IngressRule type for use with\n// apply.\nfunc IngressRule() *IngressRuleApplyConfiguration {\n\treturn &IngressRuleApplyConfiguration{}\n}\n\n// WithHost sets the Host field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Host field is set to the value of the last call.\nfunc (b *IngressRuleApplyConfiguration) WithHost(value string) *IngressRuleApplyConfiguration {\n\tb.Host = &value\n\treturn b\n}\n\n// WithHTTP sets the HTTP field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HTTP field is set to the value of the last call.\nfunc (b *IngressRuleApplyConfiguration) WithHTTP(value *HTTPIngressRuleValueApplyConfiguration) *IngressRuleApplyConfiguration {\n\tb.IngressRuleValueApplyConfiguration.HTTP = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressrulevalue.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// IngressRuleValueApplyConfiguration represents a declarative configuration of the IngressRuleValue type for use\n// with apply.\ntype IngressRuleValueApplyConfiguration struct {\n\tHTTP *HTTPIngressRuleValueApplyConfiguration `json:\"http,omitempty\"`\n}\n\n// IngressRuleValueApplyConfiguration constructs a declarative configuration of the IngressRuleValue type for use with\n// apply.\nfunc IngressRuleValue() *IngressRuleValueApplyConfiguration {\n\treturn &IngressRuleValueApplyConfiguration{}\n}\n\n// WithHTTP sets the HTTP field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HTTP field is set to the value of the last call.\nfunc (b *IngressRuleValueApplyConfiguration) WithHTTP(value *HTTPIngressRuleValueApplyConfiguration) *IngressRuleValueApplyConfiguration {\n\tb.HTTP = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// IngressSpecApplyConfiguration represents a declarative configuration of the IngressSpec type for use\n// with apply.\ntype IngressSpecApplyConfiguration struct {\n\tIngressClassName *string                           `json:\"ingressClassName,omitempty\"`\n\tBackend          *IngressBackendApplyConfiguration `json:\"backend,omitempty\"`\n\tTLS              []IngressTLSApplyConfiguration    `json:\"tls,omitempty\"`\n\tRules            []IngressRuleApplyConfiguration   `json:\"rules,omitempty\"`\n}\n\n// IngressSpecApplyConfiguration constructs a declarative configuration of the IngressSpec type for use with\n// apply.\nfunc IngressSpec() *IngressSpecApplyConfiguration {\n\treturn &IngressSpecApplyConfiguration{}\n}\n\n// WithIngressClassName sets the IngressClassName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the IngressClassName field is set to the value of the last call.\nfunc (b *IngressSpecApplyConfiguration) WithIngressClassName(value string) *IngressSpecApplyConfiguration {\n\tb.IngressClassName = &value\n\treturn b\n}\n\n// WithBackend sets the Backend field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Backend field is set to the value of the last call.\nfunc (b *IngressSpecApplyConfiguration) WithBackend(value *IngressBackendApplyConfiguration) *IngressSpecApplyConfiguration {\n\tb.Backend = value\n\treturn b\n}\n\n// WithTLS adds the given value to the TLS field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the TLS field.\nfunc (b *IngressSpecApplyConfiguration) WithTLS(values ...*IngressTLSApplyConfiguration) *IngressSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithTLS\")\n\t\t}\n\t\tb.TLS = append(b.TLS, *values[i])\n\t}\n\treturn b\n}\n\n// WithRules adds the given value to the Rules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Rules field.\nfunc (b *IngressSpecApplyConfiguration) WithRules(values ...*IngressRuleApplyConfiguration) *IngressSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRules\")\n\t\t}\n\t\tb.Rules = append(b.Rules, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingressstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// IngressStatusApplyConfiguration represents a declarative configuration of the IngressStatus type for use\n// with apply.\ntype IngressStatusApplyConfiguration struct {\n\tLoadBalancer *IngressLoadBalancerStatusApplyConfiguration `json:\"loadBalancer,omitempty\"`\n}\n\n// IngressStatusApplyConfiguration constructs a declarative configuration of the IngressStatus type for use with\n// apply.\nfunc IngressStatus() *IngressStatusApplyConfiguration {\n\treturn &IngressStatusApplyConfiguration{}\n}\n\n// WithLoadBalancer sets the LoadBalancer field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LoadBalancer field is set to the value of the last call.\nfunc (b *IngressStatusApplyConfiguration) WithLoadBalancer(value *IngressLoadBalancerStatusApplyConfiguration) *IngressStatusApplyConfiguration {\n\tb.LoadBalancer = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ingresstls.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// IngressTLSApplyConfiguration represents a declarative configuration of the IngressTLS type for use\n// with apply.\ntype IngressTLSApplyConfiguration struct {\n\tHosts      []string `json:\"hosts,omitempty\"`\n\tSecretName *string  `json:\"secretName,omitempty\"`\n}\n\n// IngressTLSApplyConfiguration constructs a declarative configuration of the IngressTLS type for use with\n// apply.\nfunc IngressTLS() *IngressTLSApplyConfiguration {\n\treturn &IngressTLSApplyConfiguration{}\n}\n\n// WithHosts adds the given value to the Hosts field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Hosts field.\nfunc (b *IngressTLSApplyConfiguration) WithHosts(values ...string) *IngressTLSApplyConfiguration {\n\tfor i := range values {\n\t\tb.Hosts = append(b.Hosts, values[i])\n\t}\n\treturn b\n}\n\n// WithSecretName sets the SecretName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SecretName field is set to the value of the last call.\nfunc (b *IngressTLSApplyConfiguration) WithSecretName(value string) *IngressTLSApplyConfiguration {\n\tb.SecretName = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ipaddress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tnetworkingv1beta1 \"k8s.io/api/networking/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// IPAddressApplyConfiguration represents a declarative configuration of the IPAddress type for use\n// with apply.\ntype IPAddressApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *IPAddressSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// IPAddress constructs a declarative configuration of the IPAddress type for use with\n// apply.\nfunc IPAddress(name string) *IPAddressApplyConfiguration {\n\tb := &IPAddressApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"IPAddress\")\n\tb.WithAPIVersion(\"networking.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractIPAddress extracts the applied configuration owned by fieldManager from\n// iPAddress. If no managedFields are found in iPAddress for fieldManager, a\n// IPAddressApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// iPAddress must be a unmodified IPAddress API object that was retrieved from the Kubernetes API.\n// ExtractIPAddress provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractIPAddress(iPAddress *networkingv1beta1.IPAddress, fieldManager string) (*IPAddressApplyConfiguration, error) {\n\treturn extractIPAddress(iPAddress, fieldManager, \"\")\n}\n\n// ExtractIPAddressStatus is the same as ExtractIPAddress except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractIPAddressStatus(iPAddress *networkingv1beta1.IPAddress, fieldManager string) (*IPAddressApplyConfiguration, error) {\n\treturn extractIPAddress(iPAddress, fieldManager, \"status\")\n}\n\nfunc extractIPAddress(iPAddress *networkingv1beta1.IPAddress, fieldManager string, subresource string) (*IPAddressApplyConfiguration, error) {\n\tb := &IPAddressApplyConfiguration{}\n\terr := managedfields.ExtractInto(iPAddress, internal.Parser().Type(\"io.k8s.api.networking.v1beta1.IPAddress\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(iPAddress.Name)\n\n\tb.WithKind(\"IPAddress\")\n\tb.WithAPIVersion(\"networking.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *IPAddressApplyConfiguration) WithKind(value string) *IPAddressApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *IPAddressApplyConfiguration) WithAPIVersion(value string) *IPAddressApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *IPAddressApplyConfiguration) WithName(value string) *IPAddressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *IPAddressApplyConfiguration) WithGenerateName(value string) *IPAddressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *IPAddressApplyConfiguration) WithNamespace(value string) *IPAddressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *IPAddressApplyConfiguration) WithUID(value types.UID) *IPAddressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *IPAddressApplyConfiguration) WithResourceVersion(value string) *IPAddressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *IPAddressApplyConfiguration) WithGeneration(value int64) *IPAddressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *IPAddressApplyConfiguration) WithCreationTimestamp(value metav1.Time) *IPAddressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *IPAddressApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *IPAddressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *IPAddressApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *IPAddressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *IPAddressApplyConfiguration) WithLabels(entries map[string]string) *IPAddressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *IPAddressApplyConfiguration) WithAnnotations(entries map[string]string) *IPAddressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *IPAddressApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *IPAddressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *IPAddressApplyConfiguration) WithFinalizers(values ...string) *IPAddressApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *IPAddressApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *IPAddressApplyConfiguration) WithSpec(value *IPAddressSpecApplyConfiguration) *IPAddressApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *IPAddressApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/ipaddressspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// IPAddressSpecApplyConfiguration represents a declarative configuration of the IPAddressSpec type for use\n// with apply.\ntype IPAddressSpecApplyConfiguration struct {\n\tParentRef *ParentReferenceApplyConfiguration `json:\"parentRef,omitempty\"`\n}\n\n// IPAddressSpecApplyConfiguration constructs a declarative configuration of the IPAddressSpec type for use with\n// apply.\nfunc IPAddressSpec() *IPAddressSpecApplyConfiguration {\n\treturn &IPAddressSpecApplyConfiguration{}\n}\n\n// WithParentRef sets the ParentRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ParentRef field is set to the value of the last call.\nfunc (b *IPAddressSpecApplyConfiguration) WithParentRef(value *ParentReferenceApplyConfiguration) *IPAddressSpecApplyConfiguration {\n\tb.ParentRef = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/parentreference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// ParentReferenceApplyConfiguration represents a declarative configuration of the ParentReference type for use\n// with apply.\ntype ParentReferenceApplyConfiguration struct {\n\tGroup     *string `json:\"group,omitempty\"`\n\tResource  *string `json:\"resource,omitempty\"`\n\tNamespace *string `json:\"namespace,omitempty\"`\n\tName      *string `json:\"name,omitempty\"`\n}\n\n// ParentReferenceApplyConfiguration constructs a declarative configuration of the ParentReference type for use with\n// apply.\nfunc ParentReference() *ParentReferenceApplyConfiguration {\n\treturn &ParentReferenceApplyConfiguration{}\n}\n\n// WithGroup sets the Group field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Group field is set to the value of the last call.\nfunc (b *ParentReferenceApplyConfiguration) WithGroup(value string) *ParentReferenceApplyConfiguration {\n\tb.Group = &value\n\treturn b\n}\n\n// WithResource sets the Resource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Resource field is set to the value of the last call.\nfunc (b *ParentReferenceApplyConfiguration) WithResource(value string) *ParentReferenceApplyConfiguration {\n\tb.Resource = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ParentReferenceApplyConfiguration) WithNamespace(value string) *ParentReferenceApplyConfiguration {\n\tb.Namespace = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ParentReferenceApplyConfiguration) WithName(value string) *ParentReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/servicecidr.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tnetworkingv1beta1 \"k8s.io/api/networking/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ServiceCIDRApplyConfiguration represents a declarative configuration of the ServiceCIDR type for use\n// with apply.\ntype ServiceCIDRApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *ServiceCIDRSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *ServiceCIDRStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// ServiceCIDR constructs a declarative configuration of the ServiceCIDR type for use with\n// apply.\nfunc ServiceCIDR(name string) *ServiceCIDRApplyConfiguration {\n\tb := &ServiceCIDRApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"ServiceCIDR\")\n\tb.WithAPIVersion(\"networking.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractServiceCIDR extracts the applied configuration owned by fieldManager from\n// serviceCIDR. If no managedFields are found in serviceCIDR for fieldManager, a\n// ServiceCIDRApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// serviceCIDR must be a unmodified ServiceCIDR API object that was retrieved from the Kubernetes API.\n// ExtractServiceCIDR provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractServiceCIDR(serviceCIDR *networkingv1beta1.ServiceCIDR, fieldManager string) (*ServiceCIDRApplyConfiguration, error) {\n\treturn extractServiceCIDR(serviceCIDR, fieldManager, \"\")\n}\n\n// ExtractServiceCIDRStatus is the same as ExtractServiceCIDR except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractServiceCIDRStatus(serviceCIDR *networkingv1beta1.ServiceCIDR, fieldManager string) (*ServiceCIDRApplyConfiguration, error) {\n\treturn extractServiceCIDR(serviceCIDR, fieldManager, \"status\")\n}\n\nfunc extractServiceCIDR(serviceCIDR *networkingv1beta1.ServiceCIDR, fieldManager string, subresource string) (*ServiceCIDRApplyConfiguration, error) {\n\tb := &ServiceCIDRApplyConfiguration{}\n\terr := managedfields.ExtractInto(serviceCIDR, internal.Parser().Type(\"io.k8s.api.networking.v1beta1.ServiceCIDR\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(serviceCIDR.Name)\n\n\tb.WithKind(\"ServiceCIDR\")\n\tb.WithAPIVersion(\"networking.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ServiceCIDRApplyConfiguration) WithKind(value string) *ServiceCIDRApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ServiceCIDRApplyConfiguration) WithAPIVersion(value string) *ServiceCIDRApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ServiceCIDRApplyConfiguration) WithName(value string) *ServiceCIDRApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ServiceCIDRApplyConfiguration) WithGenerateName(value string) *ServiceCIDRApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ServiceCIDRApplyConfiguration) WithNamespace(value string) *ServiceCIDRApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ServiceCIDRApplyConfiguration) WithUID(value types.UID) *ServiceCIDRApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ServiceCIDRApplyConfiguration) WithResourceVersion(value string) *ServiceCIDRApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ServiceCIDRApplyConfiguration) WithGeneration(value int64) *ServiceCIDRApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ServiceCIDRApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ServiceCIDRApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ServiceCIDRApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ServiceCIDRApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ServiceCIDRApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ServiceCIDRApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ServiceCIDRApplyConfiguration) WithLabels(entries map[string]string) *ServiceCIDRApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ServiceCIDRApplyConfiguration) WithAnnotations(entries map[string]string) *ServiceCIDRApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ServiceCIDRApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ServiceCIDRApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ServiceCIDRApplyConfiguration) WithFinalizers(values ...string) *ServiceCIDRApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ServiceCIDRApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *ServiceCIDRApplyConfiguration) WithSpec(value *ServiceCIDRSpecApplyConfiguration) *ServiceCIDRApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *ServiceCIDRApplyConfiguration) WithStatus(value *ServiceCIDRStatusApplyConfiguration) *ServiceCIDRApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *ServiceCIDRApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/servicecidrspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// ServiceCIDRSpecApplyConfiguration represents a declarative configuration of the ServiceCIDRSpec type for use\n// with apply.\ntype ServiceCIDRSpecApplyConfiguration struct {\n\tCIDRs []string `json:\"cidrs,omitempty\"`\n}\n\n// ServiceCIDRSpecApplyConfiguration constructs a declarative configuration of the ServiceCIDRSpec type for use with\n// apply.\nfunc ServiceCIDRSpec() *ServiceCIDRSpecApplyConfiguration {\n\treturn &ServiceCIDRSpecApplyConfiguration{}\n}\n\n// WithCIDRs adds the given value to the CIDRs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the CIDRs field.\nfunc (b *ServiceCIDRSpecApplyConfiguration) WithCIDRs(values ...string) *ServiceCIDRSpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.CIDRs = append(b.CIDRs, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/networking/v1beta1/servicecidrstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ServiceCIDRStatusApplyConfiguration represents a declarative configuration of the ServiceCIDRStatus type for use\n// with apply.\ntype ServiceCIDRStatusApplyConfiguration struct {\n\tConditions []v1.ConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// ServiceCIDRStatusApplyConfiguration constructs a declarative configuration of the ServiceCIDRStatus type for use with\n// apply.\nfunc ServiceCIDRStatus() *ServiceCIDRStatusApplyConfiguration {\n\treturn &ServiceCIDRStatusApplyConfiguration{}\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *ServiceCIDRStatusApplyConfiguration) WithConditions(values ...*v1.ConditionApplyConfiguration) *ServiceCIDRStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/node/v1/overhead.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n)\n\n// OverheadApplyConfiguration represents a declarative configuration of the Overhead type for use\n// with apply.\ntype OverheadApplyConfiguration struct {\n\tPodFixed *corev1.ResourceList `json:\"podFixed,omitempty\"`\n}\n\n// OverheadApplyConfiguration constructs a declarative configuration of the Overhead type for use with\n// apply.\nfunc Overhead() *OverheadApplyConfiguration {\n\treturn &OverheadApplyConfiguration{}\n}\n\n// WithPodFixed sets the PodFixed field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PodFixed field is set to the value of the last call.\nfunc (b *OverheadApplyConfiguration) WithPodFixed(value corev1.ResourceList) *OverheadApplyConfiguration {\n\tb.PodFixed = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/node/v1/runtimeclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tnodev1 \"k8s.io/api/node/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// RuntimeClassApplyConfiguration represents a declarative configuration of the RuntimeClass type for use\n// with apply.\ntype RuntimeClassApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tHandler                              *string                       `json:\"handler,omitempty\"`\n\tOverhead                             *OverheadApplyConfiguration   `json:\"overhead,omitempty\"`\n\tScheduling                           *SchedulingApplyConfiguration `json:\"scheduling,omitempty\"`\n}\n\n// RuntimeClass constructs a declarative configuration of the RuntimeClass type for use with\n// apply.\nfunc RuntimeClass(name string) *RuntimeClassApplyConfiguration {\n\tb := &RuntimeClassApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"RuntimeClass\")\n\tb.WithAPIVersion(\"node.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractRuntimeClass extracts the applied configuration owned by fieldManager from\n// runtimeClass. If no managedFields are found in runtimeClass for fieldManager, a\n// RuntimeClassApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// runtimeClass must be a unmodified RuntimeClass API object that was retrieved from the Kubernetes API.\n// ExtractRuntimeClass provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractRuntimeClass(runtimeClass *nodev1.RuntimeClass, fieldManager string) (*RuntimeClassApplyConfiguration, error) {\n\treturn extractRuntimeClass(runtimeClass, fieldManager, \"\")\n}\n\n// ExtractRuntimeClassStatus is the same as ExtractRuntimeClass except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractRuntimeClassStatus(runtimeClass *nodev1.RuntimeClass, fieldManager string) (*RuntimeClassApplyConfiguration, error) {\n\treturn extractRuntimeClass(runtimeClass, fieldManager, \"status\")\n}\n\nfunc extractRuntimeClass(runtimeClass *nodev1.RuntimeClass, fieldManager string, subresource string) (*RuntimeClassApplyConfiguration, error) {\n\tb := &RuntimeClassApplyConfiguration{}\n\terr := managedfields.ExtractInto(runtimeClass, internal.Parser().Type(\"io.k8s.api.node.v1.RuntimeClass\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(runtimeClass.Name)\n\n\tb.WithKind(\"RuntimeClass\")\n\tb.WithAPIVersion(\"node.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithKind(value string) *RuntimeClassApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithAPIVersion(value string) *RuntimeClassApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithName(value string) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithGenerateName(value string) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithNamespace(value string) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithUID(value types.UID) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithResourceVersion(value string) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithGeneration(value int64) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *RuntimeClassApplyConfiguration) WithLabels(entries map[string]string) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *RuntimeClassApplyConfiguration) WithAnnotations(entries map[string]string) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *RuntimeClassApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *RuntimeClassApplyConfiguration) WithFinalizers(values ...string) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *RuntimeClassApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithHandler sets the Handler field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Handler field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithHandler(value string) *RuntimeClassApplyConfiguration {\n\tb.Handler = &value\n\treturn b\n}\n\n// WithOverhead sets the Overhead field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Overhead field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithOverhead(value *OverheadApplyConfiguration) *RuntimeClassApplyConfiguration {\n\tb.Overhead = value\n\treturn b\n}\n\n// WithScheduling sets the Scheduling field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Scheduling field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithScheduling(value *SchedulingApplyConfiguration) *RuntimeClassApplyConfiguration {\n\tb.Scheduling = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *RuntimeClassApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/node/v1/scheduling.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n)\n\n// SchedulingApplyConfiguration represents a declarative configuration of the Scheduling type for use\n// with apply.\ntype SchedulingApplyConfiguration struct {\n\tNodeSelector map[string]string                     `json:\"nodeSelector,omitempty\"`\n\tTolerations  []corev1.TolerationApplyConfiguration `json:\"tolerations,omitempty\"`\n}\n\n// SchedulingApplyConfiguration constructs a declarative configuration of the Scheduling type for use with\n// apply.\nfunc Scheduling() *SchedulingApplyConfiguration {\n\treturn &SchedulingApplyConfiguration{}\n}\n\n// WithNodeSelector puts the entries into the NodeSelector field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the NodeSelector field,\n// overwriting an existing map entries in NodeSelector field with the same key.\nfunc (b *SchedulingApplyConfiguration) WithNodeSelector(entries map[string]string) *SchedulingApplyConfiguration {\n\tif b.NodeSelector == nil && len(entries) > 0 {\n\t\tb.NodeSelector = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.NodeSelector[k] = v\n\t}\n\treturn b\n}\n\n// WithTolerations adds the given value to the Tolerations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Tolerations field.\nfunc (b *SchedulingApplyConfiguration) WithTolerations(values ...*corev1.TolerationApplyConfiguration) *SchedulingApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithTolerations\")\n\t\t}\n\t\tb.Tolerations = append(b.Tolerations, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/node/v1alpha1/overhead.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// OverheadApplyConfiguration represents a declarative configuration of the Overhead type for use\n// with apply.\ntype OverheadApplyConfiguration struct {\n\tPodFixed *v1.ResourceList `json:\"podFixed,omitempty\"`\n}\n\n// OverheadApplyConfiguration constructs a declarative configuration of the Overhead type for use with\n// apply.\nfunc Overhead() *OverheadApplyConfiguration {\n\treturn &OverheadApplyConfiguration{}\n}\n\n// WithPodFixed sets the PodFixed field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PodFixed field is set to the value of the last call.\nfunc (b *OverheadApplyConfiguration) WithPodFixed(value v1.ResourceList) *OverheadApplyConfiguration {\n\tb.PodFixed = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/node/v1alpha1/runtimeclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tnodev1alpha1 \"k8s.io/api/node/v1alpha1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// RuntimeClassApplyConfiguration represents a declarative configuration of the RuntimeClass type for use\n// with apply.\ntype RuntimeClassApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *RuntimeClassSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// RuntimeClass constructs a declarative configuration of the RuntimeClass type for use with\n// apply.\nfunc RuntimeClass(name string) *RuntimeClassApplyConfiguration {\n\tb := &RuntimeClassApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"RuntimeClass\")\n\tb.WithAPIVersion(\"node.k8s.io/v1alpha1\")\n\treturn b\n}\n\n// ExtractRuntimeClass extracts the applied configuration owned by fieldManager from\n// runtimeClass. If no managedFields are found in runtimeClass for fieldManager, a\n// RuntimeClassApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// runtimeClass must be a unmodified RuntimeClass API object that was retrieved from the Kubernetes API.\n// ExtractRuntimeClass provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractRuntimeClass(runtimeClass *nodev1alpha1.RuntimeClass, fieldManager string) (*RuntimeClassApplyConfiguration, error) {\n\treturn extractRuntimeClass(runtimeClass, fieldManager, \"\")\n}\n\n// ExtractRuntimeClassStatus is the same as ExtractRuntimeClass except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractRuntimeClassStatus(runtimeClass *nodev1alpha1.RuntimeClass, fieldManager string) (*RuntimeClassApplyConfiguration, error) {\n\treturn extractRuntimeClass(runtimeClass, fieldManager, \"status\")\n}\n\nfunc extractRuntimeClass(runtimeClass *nodev1alpha1.RuntimeClass, fieldManager string, subresource string) (*RuntimeClassApplyConfiguration, error) {\n\tb := &RuntimeClassApplyConfiguration{}\n\terr := managedfields.ExtractInto(runtimeClass, internal.Parser().Type(\"io.k8s.api.node.v1alpha1.RuntimeClass\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(runtimeClass.Name)\n\n\tb.WithKind(\"RuntimeClass\")\n\tb.WithAPIVersion(\"node.k8s.io/v1alpha1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithKind(value string) *RuntimeClassApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithAPIVersion(value string) *RuntimeClassApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithName(value string) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithGenerateName(value string) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithNamespace(value string) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithUID(value types.UID) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithResourceVersion(value string) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithGeneration(value int64) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithCreationTimestamp(value metav1.Time) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *RuntimeClassApplyConfiguration) WithLabels(entries map[string]string) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *RuntimeClassApplyConfiguration) WithAnnotations(entries map[string]string) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *RuntimeClassApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *RuntimeClassApplyConfiguration) WithFinalizers(values ...string) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *RuntimeClassApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithSpec(value *RuntimeClassSpecApplyConfiguration) *RuntimeClassApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *RuntimeClassApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/node/v1alpha1/runtimeclassspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// RuntimeClassSpecApplyConfiguration represents a declarative configuration of the RuntimeClassSpec type for use\n// with apply.\ntype RuntimeClassSpecApplyConfiguration struct {\n\tRuntimeHandler *string                       `json:\"runtimeHandler,omitempty\"`\n\tOverhead       *OverheadApplyConfiguration   `json:\"overhead,omitempty\"`\n\tScheduling     *SchedulingApplyConfiguration `json:\"scheduling,omitempty\"`\n}\n\n// RuntimeClassSpecApplyConfiguration constructs a declarative configuration of the RuntimeClassSpec type for use with\n// apply.\nfunc RuntimeClassSpec() *RuntimeClassSpecApplyConfiguration {\n\treturn &RuntimeClassSpecApplyConfiguration{}\n}\n\n// WithRuntimeHandler sets the RuntimeHandler field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RuntimeHandler field is set to the value of the last call.\nfunc (b *RuntimeClassSpecApplyConfiguration) WithRuntimeHandler(value string) *RuntimeClassSpecApplyConfiguration {\n\tb.RuntimeHandler = &value\n\treturn b\n}\n\n// WithOverhead sets the Overhead field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Overhead field is set to the value of the last call.\nfunc (b *RuntimeClassSpecApplyConfiguration) WithOverhead(value *OverheadApplyConfiguration) *RuntimeClassSpecApplyConfiguration {\n\tb.Overhead = value\n\treturn b\n}\n\n// WithScheduling sets the Scheduling field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Scheduling field is set to the value of the last call.\nfunc (b *RuntimeClassSpecApplyConfiguration) WithScheduling(value *SchedulingApplyConfiguration) *RuntimeClassSpecApplyConfiguration {\n\tb.Scheduling = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/node/v1alpha1/scheduling.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tv1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n)\n\n// SchedulingApplyConfiguration represents a declarative configuration of the Scheduling type for use\n// with apply.\ntype SchedulingApplyConfiguration struct {\n\tNodeSelector map[string]string                 `json:\"nodeSelector,omitempty\"`\n\tTolerations  []v1.TolerationApplyConfiguration `json:\"tolerations,omitempty\"`\n}\n\n// SchedulingApplyConfiguration constructs a declarative configuration of the Scheduling type for use with\n// apply.\nfunc Scheduling() *SchedulingApplyConfiguration {\n\treturn &SchedulingApplyConfiguration{}\n}\n\n// WithNodeSelector puts the entries into the NodeSelector field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the NodeSelector field,\n// overwriting an existing map entries in NodeSelector field with the same key.\nfunc (b *SchedulingApplyConfiguration) WithNodeSelector(entries map[string]string) *SchedulingApplyConfiguration {\n\tif b.NodeSelector == nil && len(entries) > 0 {\n\t\tb.NodeSelector = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.NodeSelector[k] = v\n\t}\n\treturn b\n}\n\n// WithTolerations adds the given value to the Tolerations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Tolerations field.\nfunc (b *SchedulingApplyConfiguration) WithTolerations(values ...*v1.TolerationApplyConfiguration) *SchedulingApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithTolerations\")\n\t\t}\n\t\tb.Tolerations = append(b.Tolerations, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/node/v1beta1/overhead.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n)\n\n// OverheadApplyConfiguration represents a declarative configuration of the Overhead type for use\n// with apply.\ntype OverheadApplyConfiguration struct {\n\tPodFixed *v1.ResourceList `json:\"podFixed,omitempty\"`\n}\n\n// OverheadApplyConfiguration constructs a declarative configuration of the Overhead type for use with\n// apply.\nfunc Overhead() *OverheadApplyConfiguration {\n\treturn &OverheadApplyConfiguration{}\n}\n\n// WithPodFixed sets the PodFixed field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PodFixed field is set to the value of the last call.\nfunc (b *OverheadApplyConfiguration) WithPodFixed(value v1.ResourceList) *OverheadApplyConfiguration {\n\tb.PodFixed = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/node/v1beta1/runtimeclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tnodev1beta1 \"k8s.io/api/node/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// RuntimeClassApplyConfiguration represents a declarative configuration of the RuntimeClass type for use\n// with apply.\ntype RuntimeClassApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tHandler                          *string                       `json:\"handler,omitempty\"`\n\tOverhead                         *OverheadApplyConfiguration   `json:\"overhead,omitempty\"`\n\tScheduling                       *SchedulingApplyConfiguration `json:\"scheduling,omitempty\"`\n}\n\n// RuntimeClass constructs a declarative configuration of the RuntimeClass type for use with\n// apply.\nfunc RuntimeClass(name string) *RuntimeClassApplyConfiguration {\n\tb := &RuntimeClassApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"RuntimeClass\")\n\tb.WithAPIVersion(\"node.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractRuntimeClass extracts the applied configuration owned by fieldManager from\n// runtimeClass. If no managedFields are found in runtimeClass for fieldManager, a\n// RuntimeClassApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// runtimeClass must be a unmodified RuntimeClass API object that was retrieved from the Kubernetes API.\n// ExtractRuntimeClass provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractRuntimeClass(runtimeClass *nodev1beta1.RuntimeClass, fieldManager string) (*RuntimeClassApplyConfiguration, error) {\n\treturn extractRuntimeClass(runtimeClass, fieldManager, \"\")\n}\n\n// ExtractRuntimeClassStatus is the same as ExtractRuntimeClass except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractRuntimeClassStatus(runtimeClass *nodev1beta1.RuntimeClass, fieldManager string) (*RuntimeClassApplyConfiguration, error) {\n\treturn extractRuntimeClass(runtimeClass, fieldManager, \"status\")\n}\n\nfunc extractRuntimeClass(runtimeClass *nodev1beta1.RuntimeClass, fieldManager string, subresource string) (*RuntimeClassApplyConfiguration, error) {\n\tb := &RuntimeClassApplyConfiguration{}\n\terr := managedfields.ExtractInto(runtimeClass, internal.Parser().Type(\"io.k8s.api.node.v1beta1.RuntimeClass\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(runtimeClass.Name)\n\n\tb.WithKind(\"RuntimeClass\")\n\tb.WithAPIVersion(\"node.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithKind(value string) *RuntimeClassApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithAPIVersion(value string) *RuntimeClassApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithName(value string) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithGenerateName(value string) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithNamespace(value string) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithUID(value types.UID) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithResourceVersion(value string) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithGeneration(value int64) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithCreationTimestamp(value metav1.Time) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *RuntimeClassApplyConfiguration) WithLabels(entries map[string]string) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *RuntimeClassApplyConfiguration) WithAnnotations(entries map[string]string) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *RuntimeClassApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *RuntimeClassApplyConfiguration) WithFinalizers(values ...string) *RuntimeClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *RuntimeClassApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithHandler sets the Handler field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Handler field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithHandler(value string) *RuntimeClassApplyConfiguration {\n\tb.Handler = &value\n\treturn b\n}\n\n// WithOverhead sets the Overhead field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Overhead field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithOverhead(value *OverheadApplyConfiguration) *RuntimeClassApplyConfiguration {\n\tb.Overhead = value\n\treturn b\n}\n\n// WithScheduling sets the Scheduling field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Scheduling field is set to the value of the last call.\nfunc (b *RuntimeClassApplyConfiguration) WithScheduling(value *SchedulingApplyConfiguration) *RuntimeClassApplyConfiguration {\n\tb.Scheduling = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *RuntimeClassApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/node/v1beta1/scheduling.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n)\n\n// SchedulingApplyConfiguration represents a declarative configuration of the Scheduling type for use\n// with apply.\ntype SchedulingApplyConfiguration struct {\n\tNodeSelector map[string]string                 `json:\"nodeSelector,omitempty\"`\n\tTolerations  []v1.TolerationApplyConfiguration `json:\"tolerations,omitempty\"`\n}\n\n// SchedulingApplyConfiguration constructs a declarative configuration of the Scheduling type for use with\n// apply.\nfunc Scheduling() *SchedulingApplyConfiguration {\n\treturn &SchedulingApplyConfiguration{}\n}\n\n// WithNodeSelector puts the entries into the NodeSelector field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the NodeSelector field,\n// overwriting an existing map entries in NodeSelector field with the same key.\nfunc (b *SchedulingApplyConfiguration) WithNodeSelector(entries map[string]string) *SchedulingApplyConfiguration {\n\tif b.NodeSelector == nil && len(entries) > 0 {\n\t\tb.NodeSelector = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.NodeSelector[k] = v\n\t}\n\treturn b\n}\n\n// WithTolerations adds the given value to the Tolerations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Tolerations field.\nfunc (b *SchedulingApplyConfiguration) WithTolerations(values ...*v1.TolerationApplyConfiguration) *SchedulingApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithTolerations\")\n\t\t}\n\t\tb.Tolerations = append(b.Tolerations, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/policy/v1/eviction.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tpolicyv1 \"k8s.io/api/policy/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// EvictionApplyConfiguration represents a declarative configuration of the Eviction type for use\n// with apply.\ntype EvictionApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tDeleteOptions                        *metav1.DeleteOptionsApplyConfiguration `json:\"deleteOptions,omitempty\"`\n}\n\n// Eviction constructs a declarative configuration of the Eviction type for use with\n// apply.\nfunc Eviction(name, namespace string) *EvictionApplyConfiguration {\n\tb := &EvictionApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Eviction\")\n\tb.WithAPIVersion(\"policy/v1\")\n\treturn b\n}\n\n// ExtractEviction extracts the applied configuration owned by fieldManager from\n// eviction. If no managedFields are found in eviction for fieldManager, a\n// EvictionApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// eviction must be a unmodified Eviction API object that was retrieved from the Kubernetes API.\n// ExtractEviction provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractEviction(eviction *policyv1.Eviction, fieldManager string) (*EvictionApplyConfiguration, error) {\n\treturn extractEviction(eviction, fieldManager, \"\")\n}\n\n// ExtractEvictionStatus is the same as ExtractEviction except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractEvictionStatus(eviction *policyv1.Eviction, fieldManager string) (*EvictionApplyConfiguration, error) {\n\treturn extractEviction(eviction, fieldManager, \"status\")\n}\n\nfunc extractEviction(eviction *policyv1.Eviction, fieldManager string, subresource string) (*EvictionApplyConfiguration, error) {\n\tb := &EvictionApplyConfiguration{}\n\terr := managedfields.ExtractInto(eviction, internal.Parser().Type(\"io.k8s.api.policy.v1.Eviction\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(eviction.Name)\n\tb.WithNamespace(eviction.Namespace)\n\n\tb.WithKind(\"Eviction\")\n\tb.WithAPIVersion(\"policy/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithKind(value string) *EvictionApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithAPIVersion(value string) *EvictionApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithName(value string) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithGenerateName(value string) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithNamespace(value string) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithUID(value types.UID) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithResourceVersion(value string) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithGeneration(value int64) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *EvictionApplyConfiguration) WithLabels(entries map[string]string) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *EvictionApplyConfiguration) WithAnnotations(entries map[string]string) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *EvictionApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *EvictionApplyConfiguration) WithFinalizers(values ...string) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *EvictionApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithDeleteOptions sets the DeleteOptions field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeleteOptions field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithDeleteOptions(value *metav1.DeleteOptionsApplyConfiguration) *EvictionApplyConfiguration {\n\tb.DeleteOptions = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *EvictionApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/policy/v1/poddisruptionbudget.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tpolicyv1 \"k8s.io/api/policy/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PodDisruptionBudgetApplyConfiguration represents a declarative configuration of the PodDisruptionBudget type for use\n// with apply.\ntype PodDisruptionBudgetApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                                 *PodDisruptionBudgetSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                               *PodDisruptionBudgetStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// PodDisruptionBudget constructs a declarative configuration of the PodDisruptionBudget type for use with\n// apply.\nfunc PodDisruptionBudget(name, namespace string) *PodDisruptionBudgetApplyConfiguration {\n\tb := &PodDisruptionBudgetApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"PodDisruptionBudget\")\n\tb.WithAPIVersion(\"policy/v1\")\n\treturn b\n}\n\n// ExtractPodDisruptionBudget extracts the applied configuration owned by fieldManager from\n// podDisruptionBudget. If no managedFields are found in podDisruptionBudget for fieldManager, a\n// PodDisruptionBudgetApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// podDisruptionBudget must be a unmodified PodDisruptionBudget API object that was retrieved from the Kubernetes API.\n// ExtractPodDisruptionBudget provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractPodDisruptionBudget(podDisruptionBudget *policyv1.PodDisruptionBudget, fieldManager string) (*PodDisruptionBudgetApplyConfiguration, error) {\n\treturn extractPodDisruptionBudget(podDisruptionBudget, fieldManager, \"\")\n}\n\n// ExtractPodDisruptionBudgetStatus is the same as ExtractPodDisruptionBudget except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractPodDisruptionBudgetStatus(podDisruptionBudget *policyv1.PodDisruptionBudget, fieldManager string) (*PodDisruptionBudgetApplyConfiguration, error) {\n\treturn extractPodDisruptionBudget(podDisruptionBudget, fieldManager, \"status\")\n}\n\nfunc extractPodDisruptionBudget(podDisruptionBudget *policyv1.PodDisruptionBudget, fieldManager string, subresource string) (*PodDisruptionBudgetApplyConfiguration, error) {\n\tb := &PodDisruptionBudgetApplyConfiguration{}\n\terr := managedfields.ExtractInto(podDisruptionBudget, internal.Parser().Type(\"io.k8s.api.policy.v1.PodDisruptionBudget\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(podDisruptionBudget.Name)\n\tb.WithNamespace(podDisruptionBudget.Namespace)\n\n\tb.WithKind(\"PodDisruptionBudget\")\n\tb.WithAPIVersion(\"policy/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithKind(value string) *PodDisruptionBudgetApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithAPIVersion(value string) *PodDisruptionBudgetApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithName(value string) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithGenerateName(value string) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithNamespace(value string) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithUID(value types.UID) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithResourceVersion(value string) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithGeneration(value int64) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithLabels(entries map[string]string) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithAnnotations(entries map[string]string) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithFinalizers(values ...string) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *PodDisruptionBudgetApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithSpec(value *PodDisruptionBudgetSpecApplyConfiguration) *PodDisruptionBudgetApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithStatus(value *PodDisruptionBudgetStatusApplyConfiguration) *PodDisruptionBudgetApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *PodDisruptionBudgetApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/policy/v1/poddisruptionbudgetspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tpolicyv1 \"k8s.io/api/policy/v1\"\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PodDisruptionBudgetSpecApplyConfiguration represents a declarative configuration of the PodDisruptionBudgetSpec type for use\n// with apply.\ntype PodDisruptionBudgetSpecApplyConfiguration struct {\n\tMinAvailable               *intstr.IntOrString                      `json:\"minAvailable,omitempty\"`\n\tSelector                   *metav1.LabelSelectorApplyConfiguration  `json:\"selector,omitempty\"`\n\tMaxUnavailable             *intstr.IntOrString                      `json:\"maxUnavailable,omitempty\"`\n\tUnhealthyPodEvictionPolicy *policyv1.UnhealthyPodEvictionPolicyType `json:\"unhealthyPodEvictionPolicy,omitempty\"`\n}\n\n// PodDisruptionBudgetSpecApplyConfiguration constructs a declarative configuration of the PodDisruptionBudgetSpec type for use with\n// apply.\nfunc PodDisruptionBudgetSpec() *PodDisruptionBudgetSpecApplyConfiguration {\n\treturn &PodDisruptionBudgetSpecApplyConfiguration{}\n}\n\n// WithMinAvailable sets the MinAvailable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MinAvailable field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetSpecApplyConfiguration) WithMinAvailable(value intstr.IntOrString) *PodDisruptionBudgetSpecApplyConfiguration {\n\tb.MinAvailable = &value\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetSpecApplyConfiguration) WithSelector(value *metav1.LabelSelectorApplyConfiguration) *PodDisruptionBudgetSpecApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n\n// WithMaxUnavailable sets the MaxUnavailable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxUnavailable field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetSpecApplyConfiguration) WithMaxUnavailable(value intstr.IntOrString) *PodDisruptionBudgetSpecApplyConfiguration {\n\tb.MaxUnavailable = &value\n\treturn b\n}\n\n// WithUnhealthyPodEvictionPolicy sets the UnhealthyPodEvictionPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UnhealthyPodEvictionPolicy field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetSpecApplyConfiguration) WithUnhealthyPodEvictionPolicy(value policyv1.UnhealthyPodEvictionPolicyType) *PodDisruptionBudgetSpecApplyConfiguration {\n\tb.UnhealthyPodEvictionPolicy = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/policy/v1/poddisruptionbudgetstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tapplyconfigurationsmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PodDisruptionBudgetStatusApplyConfiguration represents a declarative configuration of the PodDisruptionBudgetStatus type for use\n// with apply.\ntype PodDisruptionBudgetStatusApplyConfiguration struct {\n\tObservedGeneration *int64                                                  `json:\"observedGeneration,omitempty\"`\n\tDisruptedPods      map[string]metav1.Time                                  `json:\"disruptedPods,omitempty\"`\n\tDisruptionsAllowed *int32                                                  `json:\"disruptionsAllowed,omitempty\"`\n\tCurrentHealthy     *int32                                                  `json:\"currentHealthy,omitempty\"`\n\tDesiredHealthy     *int32                                                  `json:\"desiredHealthy,omitempty\"`\n\tExpectedPods       *int32                                                  `json:\"expectedPods,omitempty\"`\n\tConditions         []applyconfigurationsmetav1.ConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// PodDisruptionBudgetStatusApplyConfiguration constructs a declarative configuration of the PodDisruptionBudgetStatus type for use with\n// apply.\nfunc PodDisruptionBudgetStatus() *PodDisruptionBudgetStatusApplyConfiguration {\n\treturn &PodDisruptionBudgetStatusApplyConfiguration{}\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetStatusApplyConfiguration) WithObservedGeneration(value int64) *PodDisruptionBudgetStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithDisruptedPods puts the entries into the DisruptedPods field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the DisruptedPods field,\n// overwriting an existing map entries in DisruptedPods field with the same key.\nfunc (b *PodDisruptionBudgetStatusApplyConfiguration) WithDisruptedPods(entries map[string]metav1.Time) *PodDisruptionBudgetStatusApplyConfiguration {\n\tif b.DisruptedPods == nil && len(entries) > 0 {\n\t\tb.DisruptedPods = make(map[string]metav1.Time, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.DisruptedPods[k] = v\n\t}\n\treturn b\n}\n\n// WithDisruptionsAllowed sets the DisruptionsAllowed field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DisruptionsAllowed field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetStatusApplyConfiguration) WithDisruptionsAllowed(value int32) *PodDisruptionBudgetStatusApplyConfiguration {\n\tb.DisruptionsAllowed = &value\n\treturn b\n}\n\n// WithCurrentHealthy sets the CurrentHealthy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentHealthy field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetStatusApplyConfiguration) WithCurrentHealthy(value int32) *PodDisruptionBudgetStatusApplyConfiguration {\n\tb.CurrentHealthy = &value\n\treturn b\n}\n\n// WithDesiredHealthy sets the DesiredHealthy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DesiredHealthy field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetStatusApplyConfiguration) WithDesiredHealthy(value int32) *PodDisruptionBudgetStatusApplyConfiguration {\n\tb.DesiredHealthy = &value\n\treturn b\n}\n\n// WithExpectedPods sets the ExpectedPods field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ExpectedPods field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetStatusApplyConfiguration) WithExpectedPods(value int32) *PodDisruptionBudgetStatusApplyConfiguration {\n\tb.ExpectedPods = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *PodDisruptionBudgetStatusApplyConfiguration) WithConditions(values ...*applyconfigurationsmetav1.ConditionApplyConfiguration) *PodDisruptionBudgetStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/eviction.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tpolicyv1beta1 \"k8s.io/api/policy/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// EvictionApplyConfiguration represents a declarative configuration of the Eviction type for use\n// with apply.\ntype EvictionApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tDeleteOptions                    *v1.DeleteOptionsApplyConfiguration `json:\"deleteOptions,omitempty\"`\n}\n\n// Eviction constructs a declarative configuration of the Eviction type for use with\n// apply.\nfunc Eviction(name, namespace string) *EvictionApplyConfiguration {\n\tb := &EvictionApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Eviction\")\n\tb.WithAPIVersion(\"policy/v1beta1\")\n\treturn b\n}\n\n// ExtractEviction extracts the applied configuration owned by fieldManager from\n// eviction. If no managedFields are found in eviction for fieldManager, a\n// EvictionApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// eviction must be a unmodified Eviction API object that was retrieved from the Kubernetes API.\n// ExtractEviction provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractEviction(eviction *policyv1beta1.Eviction, fieldManager string) (*EvictionApplyConfiguration, error) {\n\treturn extractEviction(eviction, fieldManager, \"\")\n}\n\n// ExtractEvictionStatus is the same as ExtractEviction except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractEvictionStatus(eviction *policyv1beta1.Eviction, fieldManager string) (*EvictionApplyConfiguration, error) {\n\treturn extractEviction(eviction, fieldManager, \"status\")\n}\n\nfunc extractEviction(eviction *policyv1beta1.Eviction, fieldManager string, subresource string) (*EvictionApplyConfiguration, error) {\n\tb := &EvictionApplyConfiguration{}\n\terr := managedfields.ExtractInto(eviction, internal.Parser().Type(\"io.k8s.api.policy.v1beta1.Eviction\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(eviction.Name)\n\tb.WithNamespace(eviction.Namespace)\n\n\tb.WithKind(\"Eviction\")\n\tb.WithAPIVersion(\"policy/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithKind(value string) *EvictionApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithAPIVersion(value string) *EvictionApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithName(value string) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithGenerateName(value string) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithNamespace(value string) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithUID(value types.UID) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithResourceVersion(value string) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithGeneration(value int64) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithCreationTimestamp(value metav1.Time) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *EvictionApplyConfiguration) WithLabels(entries map[string]string) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *EvictionApplyConfiguration) WithAnnotations(entries map[string]string) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *EvictionApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *EvictionApplyConfiguration) WithFinalizers(values ...string) *EvictionApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *EvictionApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithDeleteOptions sets the DeleteOptions field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeleteOptions field is set to the value of the last call.\nfunc (b *EvictionApplyConfiguration) WithDeleteOptions(value *v1.DeleteOptionsApplyConfiguration) *EvictionApplyConfiguration {\n\tb.DeleteOptions = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *EvictionApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/poddisruptionbudget.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tpolicyv1beta1 \"k8s.io/api/policy/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PodDisruptionBudgetApplyConfiguration represents a declarative configuration of the PodDisruptionBudget type for use\n// with apply.\ntype PodDisruptionBudgetApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *PodDisruptionBudgetSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *PodDisruptionBudgetStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// PodDisruptionBudget constructs a declarative configuration of the PodDisruptionBudget type for use with\n// apply.\nfunc PodDisruptionBudget(name, namespace string) *PodDisruptionBudgetApplyConfiguration {\n\tb := &PodDisruptionBudgetApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"PodDisruptionBudget\")\n\tb.WithAPIVersion(\"policy/v1beta1\")\n\treturn b\n}\n\n// ExtractPodDisruptionBudget extracts the applied configuration owned by fieldManager from\n// podDisruptionBudget. If no managedFields are found in podDisruptionBudget for fieldManager, a\n// PodDisruptionBudgetApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// podDisruptionBudget must be a unmodified PodDisruptionBudget API object that was retrieved from the Kubernetes API.\n// ExtractPodDisruptionBudget provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractPodDisruptionBudget(podDisruptionBudget *policyv1beta1.PodDisruptionBudget, fieldManager string) (*PodDisruptionBudgetApplyConfiguration, error) {\n\treturn extractPodDisruptionBudget(podDisruptionBudget, fieldManager, \"\")\n}\n\n// ExtractPodDisruptionBudgetStatus is the same as ExtractPodDisruptionBudget except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractPodDisruptionBudgetStatus(podDisruptionBudget *policyv1beta1.PodDisruptionBudget, fieldManager string) (*PodDisruptionBudgetApplyConfiguration, error) {\n\treturn extractPodDisruptionBudget(podDisruptionBudget, fieldManager, \"status\")\n}\n\nfunc extractPodDisruptionBudget(podDisruptionBudget *policyv1beta1.PodDisruptionBudget, fieldManager string, subresource string) (*PodDisruptionBudgetApplyConfiguration, error) {\n\tb := &PodDisruptionBudgetApplyConfiguration{}\n\terr := managedfields.ExtractInto(podDisruptionBudget, internal.Parser().Type(\"io.k8s.api.policy.v1beta1.PodDisruptionBudget\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(podDisruptionBudget.Name)\n\tb.WithNamespace(podDisruptionBudget.Namespace)\n\n\tb.WithKind(\"PodDisruptionBudget\")\n\tb.WithAPIVersion(\"policy/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithKind(value string) *PodDisruptionBudgetApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithAPIVersion(value string) *PodDisruptionBudgetApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithName(value string) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithGenerateName(value string) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithNamespace(value string) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithUID(value types.UID) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithResourceVersion(value string) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithGeneration(value int64) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithCreationTimestamp(value metav1.Time) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithLabels(entries map[string]string) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithAnnotations(entries map[string]string) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithFinalizers(values ...string) *PodDisruptionBudgetApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *PodDisruptionBudgetApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithSpec(value *PodDisruptionBudgetSpecApplyConfiguration) *PodDisruptionBudgetApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetApplyConfiguration) WithStatus(value *PodDisruptionBudgetStatusApplyConfiguration) *PodDisruptionBudgetApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *PodDisruptionBudgetApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/poddisruptionbudgetspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tpolicyv1beta1 \"k8s.io/api/policy/v1beta1\"\n\tintstr \"k8s.io/apimachinery/pkg/util/intstr\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PodDisruptionBudgetSpecApplyConfiguration represents a declarative configuration of the PodDisruptionBudgetSpec type for use\n// with apply.\ntype PodDisruptionBudgetSpecApplyConfiguration struct {\n\tMinAvailable               *intstr.IntOrString                           `json:\"minAvailable,omitempty\"`\n\tSelector                   *v1.LabelSelectorApplyConfiguration           `json:\"selector,omitempty\"`\n\tMaxUnavailable             *intstr.IntOrString                           `json:\"maxUnavailable,omitempty\"`\n\tUnhealthyPodEvictionPolicy *policyv1beta1.UnhealthyPodEvictionPolicyType `json:\"unhealthyPodEvictionPolicy,omitempty\"`\n}\n\n// PodDisruptionBudgetSpecApplyConfiguration constructs a declarative configuration of the PodDisruptionBudgetSpec type for use with\n// apply.\nfunc PodDisruptionBudgetSpec() *PodDisruptionBudgetSpecApplyConfiguration {\n\treturn &PodDisruptionBudgetSpecApplyConfiguration{}\n}\n\n// WithMinAvailable sets the MinAvailable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MinAvailable field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetSpecApplyConfiguration) WithMinAvailable(value intstr.IntOrString) *PodDisruptionBudgetSpecApplyConfiguration {\n\tb.MinAvailable = &value\n\treturn b\n}\n\n// WithSelector sets the Selector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Selector field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetSpecApplyConfiguration) WithSelector(value *v1.LabelSelectorApplyConfiguration) *PodDisruptionBudgetSpecApplyConfiguration {\n\tb.Selector = value\n\treturn b\n}\n\n// WithMaxUnavailable sets the MaxUnavailable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaxUnavailable field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetSpecApplyConfiguration) WithMaxUnavailable(value intstr.IntOrString) *PodDisruptionBudgetSpecApplyConfiguration {\n\tb.MaxUnavailable = &value\n\treturn b\n}\n\n// WithUnhealthyPodEvictionPolicy sets the UnhealthyPodEvictionPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UnhealthyPodEvictionPolicy field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetSpecApplyConfiguration) WithUnhealthyPodEvictionPolicy(value policyv1beta1.UnhealthyPodEvictionPolicyType) *PodDisruptionBudgetSpecApplyConfiguration {\n\tb.UnhealthyPodEvictionPolicy = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/policy/v1beta1/poddisruptionbudgetstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PodDisruptionBudgetStatusApplyConfiguration represents a declarative configuration of the PodDisruptionBudgetStatus type for use\n// with apply.\ntype PodDisruptionBudgetStatusApplyConfiguration struct {\n\tObservedGeneration *int64                               `json:\"observedGeneration,omitempty\"`\n\tDisruptedPods      map[string]v1.Time                   `json:\"disruptedPods,omitempty\"`\n\tDisruptionsAllowed *int32                               `json:\"disruptionsAllowed,omitempty\"`\n\tCurrentHealthy     *int32                               `json:\"currentHealthy,omitempty\"`\n\tDesiredHealthy     *int32                               `json:\"desiredHealthy,omitempty\"`\n\tExpectedPods       *int32                               `json:\"expectedPods,omitempty\"`\n\tConditions         []metav1.ConditionApplyConfiguration `json:\"conditions,omitempty\"`\n}\n\n// PodDisruptionBudgetStatusApplyConfiguration constructs a declarative configuration of the PodDisruptionBudgetStatus type for use with\n// apply.\nfunc PodDisruptionBudgetStatus() *PodDisruptionBudgetStatusApplyConfiguration {\n\treturn &PodDisruptionBudgetStatusApplyConfiguration{}\n}\n\n// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ObservedGeneration field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetStatusApplyConfiguration) WithObservedGeneration(value int64) *PodDisruptionBudgetStatusApplyConfiguration {\n\tb.ObservedGeneration = &value\n\treturn b\n}\n\n// WithDisruptedPods puts the entries into the DisruptedPods field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the DisruptedPods field,\n// overwriting an existing map entries in DisruptedPods field with the same key.\nfunc (b *PodDisruptionBudgetStatusApplyConfiguration) WithDisruptedPods(entries map[string]v1.Time) *PodDisruptionBudgetStatusApplyConfiguration {\n\tif b.DisruptedPods == nil && len(entries) > 0 {\n\t\tb.DisruptedPods = make(map[string]v1.Time, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.DisruptedPods[k] = v\n\t}\n\treturn b\n}\n\n// WithDisruptionsAllowed sets the DisruptionsAllowed field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DisruptionsAllowed field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetStatusApplyConfiguration) WithDisruptionsAllowed(value int32) *PodDisruptionBudgetStatusApplyConfiguration {\n\tb.DisruptionsAllowed = &value\n\treturn b\n}\n\n// WithCurrentHealthy sets the CurrentHealthy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CurrentHealthy field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetStatusApplyConfiguration) WithCurrentHealthy(value int32) *PodDisruptionBudgetStatusApplyConfiguration {\n\tb.CurrentHealthy = &value\n\treturn b\n}\n\n// WithDesiredHealthy sets the DesiredHealthy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DesiredHealthy field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetStatusApplyConfiguration) WithDesiredHealthy(value int32) *PodDisruptionBudgetStatusApplyConfiguration {\n\tb.DesiredHealthy = &value\n\treturn b\n}\n\n// WithExpectedPods sets the ExpectedPods field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ExpectedPods field is set to the value of the last call.\nfunc (b *PodDisruptionBudgetStatusApplyConfiguration) WithExpectedPods(value int32) *PodDisruptionBudgetStatusApplyConfiguration {\n\tb.ExpectedPods = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *PodDisruptionBudgetStatusApplyConfiguration) WithConditions(values ...*metav1.ConditionApplyConfiguration) *PodDisruptionBudgetStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1/aggregationrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// AggregationRuleApplyConfiguration represents a declarative configuration of the AggregationRule type for use\n// with apply.\ntype AggregationRuleApplyConfiguration struct {\n\tClusterRoleSelectors []metav1.LabelSelectorApplyConfiguration `json:\"clusterRoleSelectors,omitempty\"`\n}\n\n// AggregationRuleApplyConfiguration constructs a declarative configuration of the AggregationRule type for use with\n// apply.\nfunc AggregationRule() *AggregationRuleApplyConfiguration {\n\treturn &AggregationRuleApplyConfiguration{}\n}\n\n// WithClusterRoleSelectors adds the given value to the ClusterRoleSelectors field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ClusterRoleSelectors field.\nfunc (b *AggregationRuleApplyConfiguration) WithClusterRoleSelectors(values ...*metav1.LabelSelectorApplyConfiguration) *AggregationRuleApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithClusterRoleSelectors\")\n\t\t}\n\t\tb.ClusterRoleSelectors = append(b.ClusterRoleSelectors, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1/clusterrole.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\trbacv1 \"k8s.io/api/rbac/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ClusterRoleApplyConfiguration represents a declarative configuration of the ClusterRole type for use\n// with apply.\ntype ClusterRoleApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tRules                                []PolicyRuleApplyConfiguration     `json:\"rules,omitempty\"`\n\tAggregationRule                      *AggregationRuleApplyConfiguration `json:\"aggregationRule,omitempty\"`\n}\n\n// ClusterRole constructs a declarative configuration of the ClusterRole type for use with\n// apply.\nfunc ClusterRole(name string) *ClusterRoleApplyConfiguration {\n\tb := &ClusterRoleApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"ClusterRole\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractClusterRole extracts the applied configuration owned by fieldManager from\n// clusterRole. If no managedFields are found in clusterRole for fieldManager, a\n// ClusterRoleApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// clusterRole must be a unmodified ClusterRole API object that was retrieved from the Kubernetes API.\n// ExtractClusterRole provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractClusterRole(clusterRole *rbacv1.ClusterRole, fieldManager string) (*ClusterRoleApplyConfiguration, error) {\n\treturn extractClusterRole(clusterRole, fieldManager, \"\")\n}\n\n// ExtractClusterRoleStatus is the same as ExtractClusterRole except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractClusterRoleStatus(clusterRole *rbacv1.ClusterRole, fieldManager string) (*ClusterRoleApplyConfiguration, error) {\n\treturn extractClusterRole(clusterRole, fieldManager, \"status\")\n}\n\nfunc extractClusterRole(clusterRole *rbacv1.ClusterRole, fieldManager string, subresource string) (*ClusterRoleApplyConfiguration, error) {\n\tb := &ClusterRoleApplyConfiguration{}\n\terr := managedfields.ExtractInto(clusterRole, internal.Parser().Type(\"io.k8s.api.rbac.v1.ClusterRole\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(clusterRole.Name)\n\n\tb.WithKind(\"ClusterRole\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithKind(value string) *ClusterRoleApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithAPIVersion(value string) *ClusterRoleApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithName(value string) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithGenerateName(value string) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithNamespace(value string) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithUID(value types.UID) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithResourceVersion(value string) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithGeneration(value int64) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ClusterRoleApplyConfiguration) WithLabels(entries map[string]string) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ClusterRoleApplyConfiguration) WithAnnotations(entries map[string]string) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ClusterRoleApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ClusterRoleApplyConfiguration) WithFinalizers(values ...string) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ClusterRoleApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithRules adds the given value to the Rules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Rules field.\nfunc (b *ClusterRoleApplyConfiguration) WithRules(values ...*PolicyRuleApplyConfiguration) *ClusterRoleApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRules\")\n\t\t}\n\t\tb.Rules = append(b.Rules, *values[i])\n\t}\n\treturn b\n}\n\n// WithAggregationRule sets the AggregationRule field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AggregationRule field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithAggregationRule(value *AggregationRuleApplyConfiguration) *ClusterRoleApplyConfiguration {\n\tb.AggregationRule = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *ClusterRoleApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1/clusterrolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\trbacv1 \"k8s.io/api/rbac/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ClusterRoleBindingApplyConfiguration represents a declarative configuration of the ClusterRoleBinding type for use\n// with apply.\ntype ClusterRoleBindingApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSubjects                             []SubjectApplyConfiguration `json:\"subjects,omitempty\"`\n\tRoleRef                              *RoleRefApplyConfiguration  `json:\"roleRef,omitempty\"`\n}\n\n// ClusterRoleBinding constructs a declarative configuration of the ClusterRoleBinding type for use with\n// apply.\nfunc ClusterRoleBinding(name string) *ClusterRoleBindingApplyConfiguration {\n\tb := &ClusterRoleBindingApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"ClusterRoleBinding\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractClusterRoleBinding extracts the applied configuration owned by fieldManager from\n// clusterRoleBinding. If no managedFields are found in clusterRoleBinding for fieldManager, a\n// ClusterRoleBindingApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// clusterRoleBinding must be a unmodified ClusterRoleBinding API object that was retrieved from the Kubernetes API.\n// ExtractClusterRoleBinding provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractClusterRoleBinding(clusterRoleBinding *rbacv1.ClusterRoleBinding, fieldManager string) (*ClusterRoleBindingApplyConfiguration, error) {\n\treturn extractClusterRoleBinding(clusterRoleBinding, fieldManager, \"\")\n}\n\n// ExtractClusterRoleBindingStatus is the same as ExtractClusterRoleBinding except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractClusterRoleBindingStatus(clusterRoleBinding *rbacv1.ClusterRoleBinding, fieldManager string) (*ClusterRoleBindingApplyConfiguration, error) {\n\treturn extractClusterRoleBinding(clusterRoleBinding, fieldManager, \"status\")\n}\n\nfunc extractClusterRoleBinding(clusterRoleBinding *rbacv1.ClusterRoleBinding, fieldManager string, subresource string) (*ClusterRoleBindingApplyConfiguration, error) {\n\tb := &ClusterRoleBindingApplyConfiguration{}\n\terr := managedfields.ExtractInto(clusterRoleBinding, internal.Parser().Type(\"io.k8s.api.rbac.v1.ClusterRoleBinding\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(clusterRoleBinding.Name)\n\n\tb.WithKind(\"ClusterRoleBinding\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithKind(value string) *ClusterRoleBindingApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithAPIVersion(value string) *ClusterRoleBindingApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithName(value string) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithGenerateName(value string) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithNamespace(value string) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithUID(value types.UID) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithResourceVersion(value string) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithGeneration(value int64) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithLabels(entries map[string]string) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithAnnotations(entries map[string]string) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithFinalizers(values ...string) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ClusterRoleBindingApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSubjects adds the given value to the Subjects field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Subjects field.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithSubjects(values ...*SubjectApplyConfiguration) *ClusterRoleBindingApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithSubjects\")\n\t\t}\n\t\tb.Subjects = append(b.Subjects, *values[i])\n\t}\n\treturn b\n}\n\n// WithRoleRef sets the RoleRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RoleRef field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithRoleRef(value *RoleRefApplyConfiguration) *ClusterRoleBindingApplyConfiguration {\n\tb.RoleRef = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *ClusterRoleBindingApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1/policyrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// PolicyRuleApplyConfiguration represents a declarative configuration of the PolicyRule type for use\n// with apply.\ntype PolicyRuleApplyConfiguration struct {\n\tVerbs           []string `json:\"verbs,omitempty\"`\n\tAPIGroups       []string `json:\"apiGroups,omitempty\"`\n\tResources       []string `json:\"resources,omitempty\"`\n\tResourceNames   []string `json:\"resourceNames,omitempty\"`\n\tNonResourceURLs []string `json:\"nonResourceURLs,omitempty\"`\n}\n\n// PolicyRuleApplyConfiguration constructs a declarative configuration of the PolicyRule type for use with\n// apply.\nfunc PolicyRule() *PolicyRuleApplyConfiguration {\n\treturn &PolicyRuleApplyConfiguration{}\n}\n\n// WithVerbs adds the given value to the Verbs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Verbs field.\nfunc (b *PolicyRuleApplyConfiguration) WithVerbs(values ...string) *PolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Verbs = append(b.Verbs, values[i])\n\t}\n\treturn b\n}\n\n// WithAPIGroups adds the given value to the APIGroups field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the APIGroups field.\nfunc (b *PolicyRuleApplyConfiguration) WithAPIGroups(values ...string) *PolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.APIGroups = append(b.APIGroups, values[i])\n\t}\n\treturn b\n}\n\n// WithResources adds the given value to the Resources field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Resources field.\nfunc (b *PolicyRuleApplyConfiguration) WithResources(values ...string) *PolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Resources = append(b.Resources, values[i])\n\t}\n\treturn b\n}\n\n// WithResourceNames adds the given value to the ResourceNames field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ResourceNames field.\nfunc (b *PolicyRuleApplyConfiguration) WithResourceNames(values ...string) *PolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.ResourceNames = append(b.ResourceNames, values[i])\n\t}\n\treturn b\n}\n\n// WithNonResourceURLs adds the given value to the NonResourceURLs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the NonResourceURLs field.\nfunc (b *PolicyRuleApplyConfiguration) WithNonResourceURLs(values ...string) *PolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.NonResourceURLs = append(b.NonResourceURLs, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1/role.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\trbacv1 \"k8s.io/api/rbac/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// RoleApplyConfiguration represents a declarative configuration of the Role type for use\n// with apply.\ntype RoleApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tRules                                []PolicyRuleApplyConfiguration `json:\"rules,omitempty\"`\n}\n\n// Role constructs a declarative configuration of the Role type for use with\n// apply.\nfunc Role(name, namespace string) *RoleApplyConfiguration {\n\tb := &RoleApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Role\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractRole extracts the applied configuration owned by fieldManager from\n// role. If no managedFields are found in role for fieldManager, a\n// RoleApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// role must be a unmodified Role API object that was retrieved from the Kubernetes API.\n// ExtractRole provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractRole(role *rbacv1.Role, fieldManager string) (*RoleApplyConfiguration, error) {\n\treturn extractRole(role, fieldManager, \"\")\n}\n\n// ExtractRoleStatus is the same as ExtractRole except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractRoleStatus(role *rbacv1.Role, fieldManager string) (*RoleApplyConfiguration, error) {\n\treturn extractRole(role, fieldManager, \"status\")\n}\n\nfunc extractRole(role *rbacv1.Role, fieldManager string, subresource string) (*RoleApplyConfiguration, error) {\n\tb := &RoleApplyConfiguration{}\n\terr := managedfields.ExtractInto(role, internal.Parser().Type(\"io.k8s.api.rbac.v1.Role\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(role.Name)\n\tb.WithNamespace(role.Namespace)\n\n\tb.WithKind(\"Role\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithKind(value string) *RoleApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithAPIVersion(value string) *RoleApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithName(value string) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithGenerateName(value string) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithNamespace(value string) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithUID(value types.UID) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithResourceVersion(value string) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithGeneration(value int64) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *RoleApplyConfiguration) WithLabels(entries map[string]string) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *RoleApplyConfiguration) WithAnnotations(entries map[string]string) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *RoleApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *RoleApplyConfiguration) WithFinalizers(values ...string) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *RoleApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithRules adds the given value to the Rules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Rules field.\nfunc (b *RoleApplyConfiguration) WithRules(values ...*PolicyRuleApplyConfiguration) *RoleApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRules\")\n\t\t}\n\t\tb.Rules = append(b.Rules, *values[i])\n\t}\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *RoleApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1/rolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\trbacv1 \"k8s.io/api/rbac/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// RoleBindingApplyConfiguration represents a declarative configuration of the RoleBinding type for use\n// with apply.\ntype RoleBindingApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSubjects                             []SubjectApplyConfiguration `json:\"subjects,omitempty\"`\n\tRoleRef                              *RoleRefApplyConfiguration  `json:\"roleRef,omitempty\"`\n}\n\n// RoleBinding constructs a declarative configuration of the RoleBinding type for use with\n// apply.\nfunc RoleBinding(name, namespace string) *RoleBindingApplyConfiguration {\n\tb := &RoleBindingApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"RoleBinding\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractRoleBinding extracts the applied configuration owned by fieldManager from\n// roleBinding. If no managedFields are found in roleBinding for fieldManager, a\n// RoleBindingApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// roleBinding must be a unmodified RoleBinding API object that was retrieved from the Kubernetes API.\n// ExtractRoleBinding provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractRoleBinding(roleBinding *rbacv1.RoleBinding, fieldManager string) (*RoleBindingApplyConfiguration, error) {\n\treturn extractRoleBinding(roleBinding, fieldManager, \"\")\n}\n\n// ExtractRoleBindingStatus is the same as ExtractRoleBinding except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractRoleBindingStatus(roleBinding *rbacv1.RoleBinding, fieldManager string) (*RoleBindingApplyConfiguration, error) {\n\treturn extractRoleBinding(roleBinding, fieldManager, \"status\")\n}\n\nfunc extractRoleBinding(roleBinding *rbacv1.RoleBinding, fieldManager string, subresource string) (*RoleBindingApplyConfiguration, error) {\n\tb := &RoleBindingApplyConfiguration{}\n\terr := managedfields.ExtractInto(roleBinding, internal.Parser().Type(\"io.k8s.api.rbac.v1.RoleBinding\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(roleBinding.Name)\n\tb.WithNamespace(roleBinding.Namespace)\n\n\tb.WithKind(\"RoleBinding\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithKind(value string) *RoleBindingApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithAPIVersion(value string) *RoleBindingApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithName(value string) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithGenerateName(value string) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithNamespace(value string) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithUID(value types.UID) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithResourceVersion(value string) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithGeneration(value int64) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *RoleBindingApplyConfiguration) WithLabels(entries map[string]string) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *RoleBindingApplyConfiguration) WithAnnotations(entries map[string]string) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *RoleBindingApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *RoleBindingApplyConfiguration) WithFinalizers(values ...string) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *RoleBindingApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSubjects adds the given value to the Subjects field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Subjects field.\nfunc (b *RoleBindingApplyConfiguration) WithSubjects(values ...*SubjectApplyConfiguration) *RoleBindingApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithSubjects\")\n\t\t}\n\t\tb.Subjects = append(b.Subjects, *values[i])\n\t}\n\treturn b\n}\n\n// WithRoleRef sets the RoleRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RoleRef field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithRoleRef(value *RoleRefApplyConfiguration) *RoleBindingApplyConfiguration {\n\tb.RoleRef = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *RoleBindingApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1/roleref.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// RoleRefApplyConfiguration represents a declarative configuration of the RoleRef type for use\n// with apply.\ntype RoleRefApplyConfiguration struct {\n\tAPIGroup *string `json:\"apiGroup,omitempty\"`\n\tKind     *string `json:\"kind,omitempty\"`\n\tName     *string `json:\"name,omitempty\"`\n}\n\n// RoleRefApplyConfiguration constructs a declarative configuration of the RoleRef type for use with\n// apply.\nfunc RoleRef() *RoleRefApplyConfiguration {\n\treturn &RoleRefApplyConfiguration{}\n}\n\n// WithAPIGroup sets the APIGroup field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIGroup field is set to the value of the last call.\nfunc (b *RoleRefApplyConfiguration) WithAPIGroup(value string) *RoleRefApplyConfiguration {\n\tb.APIGroup = &value\n\treturn b\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *RoleRefApplyConfiguration) WithKind(value string) *RoleRefApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *RoleRefApplyConfiguration) WithName(value string) *RoleRefApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1/subject.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// SubjectApplyConfiguration represents a declarative configuration of the Subject type for use\n// with apply.\ntype SubjectApplyConfiguration struct {\n\tKind      *string `json:\"kind,omitempty\"`\n\tAPIGroup  *string `json:\"apiGroup,omitempty\"`\n\tName      *string `json:\"name,omitempty\"`\n\tNamespace *string `json:\"namespace,omitempty\"`\n}\n\n// SubjectApplyConfiguration constructs a declarative configuration of the Subject type for use with\n// apply.\nfunc Subject() *SubjectApplyConfiguration {\n\treturn &SubjectApplyConfiguration{}\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithKind(value string) *SubjectApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIGroup sets the APIGroup field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIGroup field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithAPIGroup(value string) *SubjectApplyConfiguration {\n\tb.APIGroup = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithName(value string) *SubjectApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithNamespace(value string) *SubjectApplyConfiguration {\n\tb.Namespace = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1alpha1/aggregationrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// AggregationRuleApplyConfiguration represents a declarative configuration of the AggregationRule type for use\n// with apply.\ntype AggregationRuleApplyConfiguration struct {\n\tClusterRoleSelectors []v1.LabelSelectorApplyConfiguration `json:\"clusterRoleSelectors,omitempty\"`\n}\n\n// AggregationRuleApplyConfiguration constructs a declarative configuration of the AggregationRule type for use with\n// apply.\nfunc AggregationRule() *AggregationRuleApplyConfiguration {\n\treturn &AggregationRuleApplyConfiguration{}\n}\n\n// WithClusterRoleSelectors adds the given value to the ClusterRoleSelectors field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ClusterRoleSelectors field.\nfunc (b *AggregationRuleApplyConfiguration) WithClusterRoleSelectors(values ...*v1.LabelSelectorApplyConfiguration) *AggregationRuleApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithClusterRoleSelectors\")\n\t\t}\n\t\tb.ClusterRoleSelectors = append(b.ClusterRoleSelectors, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1alpha1/clusterrole.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\trbacv1alpha1 \"k8s.io/api/rbac/v1alpha1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ClusterRoleApplyConfiguration represents a declarative configuration of the ClusterRole type for use\n// with apply.\ntype ClusterRoleApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tRules                            []PolicyRuleApplyConfiguration     `json:\"rules,omitempty\"`\n\tAggregationRule                  *AggregationRuleApplyConfiguration `json:\"aggregationRule,omitempty\"`\n}\n\n// ClusterRole constructs a declarative configuration of the ClusterRole type for use with\n// apply.\nfunc ClusterRole(name string) *ClusterRoleApplyConfiguration {\n\tb := &ClusterRoleApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"ClusterRole\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1alpha1\")\n\treturn b\n}\n\n// ExtractClusterRole extracts the applied configuration owned by fieldManager from\n// clusterRole. If no managedFields are found in clusterRole for fieldManager, a\n// ClusterRoleApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// clusterRole must be a unmodified ClusterRole API object that was retrieved from the Kubernetes API.\n// ExtractClusterRole provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractClusterRole(clusterRole *rbacv1alpha1.ClusterRole, fieldManager string) (*ClusterRoleApplyConfiguration, error) {\n\treturn extractClusterRole(clusterRole, fieldManager, \"\")\n}\n\n// ExtractClusterRoleStatus is the same as ExtractClusterRole except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractClusterRoleStatus(clusterRole *rbacv1alpha1.ClusterRole, fieldManager string) (*ClusterRoleApplyConfiguration, error) {\n\treturn extractClusterRole(clusterRole, fieldManager, \"status\")\n}\n\nfunc extractClusterRole(clusterRole *rbacv1alpha1.ClusterRole, fieldManager string, subresource string) (*ClusterRoleApplyConfiguration, error) {\n\tb := &ClusterRoleApplyConfiguration{}\n\terr := managedfields.ExtractInto(clusterRole, internal.Parser().Type(\"io.k8s.api.rbac.v1alpha1.ClusterRole\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(clusterRole.Name)\n\n\tb.WithKind(\"ClusterRole\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1alpha1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithKind(value string) *ClusterRoleApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithAPIVersion(value string) *ClusterRoleApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithName(value string) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithGenerateName(value string) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithNamespace(value string) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithUID(value types.UID) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithResourceVersion(value string) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithGeneration(value int64) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ClusterRoleApplyConfiguration) WithLabels(entries map[string]string) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ClusterRoleApplyConfiguration) WithAnnotations(entries map[string]string) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ClusterRoleApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ClusterRoleApplyConfiguration) WithFinalizers(values ...string) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ClusterRoleApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithRules adds the given value to the Rules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Rules field.\nfunc (b *ClusterRoleApplyConfiguration) WithRules(values ...*PolicyRuleApplyConfiguration) *ClusterRoleApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRules\")\n\t\t}\n\t\tb.Rules = append(b.Rules, *values[i])\n\t}\n\treturn b\n}\n\n// WithAggregationRule sets the AggregationRule field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AggregationRule field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithAggregationRule(value *AggregationRuleApplyConfiguration) *ClusterRoleApplyConfiguration {\n\tb.AggregationRule = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *ClusterRoleApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1alpha1/clusterrolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\trbacv1alpha1 \"k8s.io/api/rbac/v1alpha1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ClusterRoleBindingApplyConfiguration represents a declarative configuration of the ClusterRoleBinding type for use\n// with apply.\ntype ClusterRoleBindingApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSubjects                         []SubjectApplyConfiguration `json:\"subjects,omitempty\"`\n\tRoleRef                          *RoleRefApplyConfiguration  `json:\"roleRef,omitempty\"`\n}\n\n// ClusterRoleBinding constructs a declarative configuration of the ClusterRoleBinding type for use with\n// apply.\nfunc ClusterRoleBinding(name string) *ClusterRoleBindingApplyConfiguration {\n\tb := &ClusterRoleBindingApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"ClusterRoleBinding\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1alpha1\")\n\treturn b\n}\n\n// ExtractClusterRoleBinding extracts the applied configuration owned by fieldManager from\n// clusterRoleBinding. If no managedFields are found in clusterRoleBinding for fieldManager, a\n// ClusterRoleBindingApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// clusterRoleBinding must be a unmodified ClusterRoleBinding API object that was retrieved from the Kubernetes API.\n// ExtractClusterRoleBinding provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractClusterRoleBinding(clusterRoleBinding *rbacv1alpha1.ClusterRoleBinding, fieldManager string) (*ClusterRoleBindingApplyConfiguration, error) {\n\treturn extractClusterRoleBinding(clusterRoleBinding, fieldManager, \"\")\n}\n\n// ExtractClusterRoleBindingStatus is the same as ExtractClusterRoleBinding except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractClusterRoleBindingStatus(clusterRoleBinding *rbacv1alpha1.ClusterRoleBinding, fieldManager string) (*ClusterRoleBindingApplyConfiguration, error) {\n\treturn extractClusterRoleBinding(clusterRoleBinding, fieldManager, \"status\")\n}\n\nfunc extractClusterRoleBinding(clusterRoleBinding *rbacv1alpha1.ClusterRoleBinding, fieldManager string, subresource string) (*ClusterRoleBindingApplyConfiguration, error) {\n\tb := &ClusterRoleBindingApplyConfiguration{}\n\terr := managedfields.ExtractInto(clusterRoleBinding, internal.Parser().Type(\"io.k8s.api.rbac.v1alpha1.ClusterRoleBinding\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(clusterRoleBinding.Name)\n\n\tb.WithKind(\"ClusterRoleBinding\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1alpha1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithKind(value string) *ClusterRoleBindingApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithAPIVersion(value string) *ClusterRoleBindingApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithName(value string) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithGenerateName(value string) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithNamespace(value string) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithUID(value types.UID) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithResourceVersion(value string) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithGeneration(value int64) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithLabels(entries map[string]string) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithAnnotations(entries map[string]string) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithFinalizers(values ...string) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ClusterRoleBindingApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSubjects adds the given value to the Subjects field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Subjects field.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithSubjects(values ...*SubjectApplyConfiguration) *ClusterRoleBindingApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithSubjects\")\n\t\t}\n\t\tb.Subjects = append(b.Subjects, *values[i])\n\t}\n\treturn b\n}\n\n// WithRoleRef sets the RoleRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RoleRef field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithRoleRef(value *RoleRefApplyConfiguration) *ClusterRoleBindingApplyConfiguration {\n\tb.RoleRef = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *ClusterRoleBindingApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1alpha1/policyrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// PolicyRuleApplyConfiguration represents a declarative configuration of the PolicyRule type for use\n// with apply.\ntype PolicyRuleApplyConfiguration struct {\n\tVerbs           []string `json:\"verbs,omitempty\"`\n\tAPIGroups       []string `json:\"apiGroups,omitempty\"`\n\tResources       []string `json:\"resources,omitempty\"`\n\tResourceNames   []string `json:\"resourceNames,omitempty\"`\n\tNonResourceURLs []string `json:\"nonResourceURLs,omitempty\"`\n}\n\n// PolicyRuleApplyConfiguration constructs a declarative configuration of the PolicyRule type for use with\n// apply.\nfunc PolicyRule() *PolicyRuleApplyConfiguration {\n\treturn &PolicyRuleApplyConfiguration{}\n}\n\n// WithVerbs adds the given value to the Verbs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Verbs field.\nfunc (b *PolicyRuleApplyConfiguration) WithVerbs(values ...string) *PolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Verbs = append(b.Verbs, values[i])\n\t}\n\treturn b\n}\n\n// WithAPIGroups adds the given value to the APIGroups field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the APIGroups field.\nfunc (b *PolicyRuleApplyConfiguration) WithAPIGroups(values ...string) *PolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.APIGroups = append(b.APIGroups, values[i])\n\t}\n\treturn b\n}\n\n// WithResources adds the given value to the Resources field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Resources field.\nfunc (b *PolicyRuleApplyConfiguration) WithResources(values ...string) *PolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Resources = append(b.Resources, values[i])\n\t}\n\treturn b\n}\n\n// WithResourceNames adds the given value to the ResourceNames field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ResourceNames field.\nfunc (b *PolicyRuleApplyConfiguration) WithResourceNames(values ...string) *PolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.ResourceNames = append(b.ResourceNames, values[i])\n\t}\n\treturn b\n}\n\n// WithNonResourceURLs adds the given value to the NonResourceURLs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the NonResourceURLs field.\nfunc (b *PolicyRuleApplyConfiguration) WithNonResourceURLs(values ...string) *PolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.NonResourceURLs = append(b.NonResourceURLs, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1alpha1/role.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\trbacv1alpha1 \"k8s.io/api/rbac/v1alpha1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// RoleApplyConfiguration represents a declarative configuration of the Role type for use\n// with apply.\ntype RoleApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tRules                            []PolicyRuleApplyConfiguration `json:\"rules,omitempty\"`\n}\n\n// Role constructs a declarative configuration of the Role type for use with\n// apply.\nfunc Role(name, namespace string) *RoleApplyConfiguration {\n\tb := &RoleApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Role\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1alpha1\")\n\treturn b\n}\n\n// ExtractRole extracts the applied configuration owned by fieldManager from\n// role. If no managedFields are found in role for fieldManager, a\n// RoleApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// role must be a unmodified Role API object that was retrieved from the Kubernetes API.\n// ExtractRole provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractRole(role *rbacv1alpha1.Role, fieldManager string) (*RoleApplyConfiguration, error) {\n\treturn extractRole(role, fieldManager, \"\")\n}\n\n// ExtractRoleStatus is the same as ExtractRole except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractRoleStatus(role *rbacv1alpha1.Role, fieldManager string) (*RoleApplyConfiguration, error) {\n\treturn extractRole(role, fieldManager, \"status\")\n}\n\nfunc extractRole(role *rbacv1alpha1.Role, fieldManager string, subresource string) (*RoleApplyConfiguration, error) {\n\tb := &RoleApplyConfiguration{}\n\terr := managedfields.ExtractInto(role, internal.Parser().Type(\"io.k8s.api.rbac.v1alpha1.Role\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(role.Name)\n\tb.WithNamespace(role.Namespace)\n\n\tb.WithKind(\"Role\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1alpha1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithKind(value string) *RoleApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithAPIVersion(value string) *RoleApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithName(value string) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithGenerateName(value string) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithNamespace(value string) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithUID(value types.UID) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithResourceVersion(value string) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithGeneration(value int64) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithCreationTimestamp(value metav1.Time) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *RoleApplyConfiguration) WithLabels(entries map[string]string) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *RoleApplyConfiguration) WithAnnotations(entries map[string]string) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *RoleApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *RoleApplyConfiguration) WithFinalizers(values ...string) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *RoleApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithRules adds the given value to the Rules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Rules field.\nfunc (b *RoleApplyConfiguration) WithRules(values ...*PolicyRuleApplyConfiguration) *RoleApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRules\")\n\t\t}\n\t\tb.Rules = append(b.Rules, *values[i])\n\t}\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *RoleApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1alpha1/rolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\trbacv1alpha1 \"k8s.io/api/rbac/v1alpha1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// RoleBindingApplyConfiguration represents a declarative configuration of the RoleBinding type for use\n// with apply.\ntype RoleBindingApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSubjects                         []SubjectApplyConfiguration `json:\"subjects,omitempty\"`\n\tRoleRef                          *RoleRefApplyConfiguration  `json:\"roleRef,omitempty\"`\n}\n\n// RoleBinding constructs a declarative configuration of the RoleBinding type for use with\n// apply.\nfunc RoleBinding(name, namespace string) *RoleBindingApplyConfiguration {\n\tb := &RoleBindingApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"RoleBinding\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1alpha1\")\n\treturn b\n}\n\n// ExtractRoleBinding extracts the applied configuration owned by fieldManager from\n// roleBinding. If no managedFields are found in roleBinding for fieldManager, a\n// RoleBindingApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// roleBinding must be a unmodified RoleBinding API object that was retrieved from the Kubernetes API.\n// ExtractRoleBinding provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractRoleBinding(roleBinding *rbacv1alpha1.RoleBinding, fieldManager string) (*RoleBindingApplyConfiguration, error) {\n\treturn extractRoleBinding(roleBinding, fieldManager, \"\")\n}\n\n// ExtractRoleBindingStatus is the same as ExtractRoleBinding except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractRoleBindingStatus(roleBinding *rbacv1alpha1.RoleBinding, fieldManager string) (*RoleBindingApplyConfiguration, error) {\n\treturn extractRoleBinding(roleBinding, fieldManager, \"status\")\n}\n\nfunc extractRoleBinding(roleBinding *rbacv1alpha1.RoleBinding, fieldManager string, subresource string) (*RoleBindingApplyConfiguration, error) {\n\tb := &RoleBindingApplyConfiguration{}\n\terr := managedfields.ExtractInto(roleBinding, internal.Parser().Type(\"io.k8s.api.rbac.v1alpha1.RoleBinding\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(roleBinding.Name)\n\tb.WithNamespace(roleBinding.Namespace)\n\n\tb.WithKind(\"RoleBinding\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1alpha1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithKind(value string) *RoleBindingApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithAPIVersion(value string) *RoleBindingApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithName(value string) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithGenerateName(value string) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithNamespace(value string) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithUID(value types.UID) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithResourceVersion(value string) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithGeneration(value int64) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithCreationTimestamp(value metav1.Time) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *RoleBindingApplyConfiguration) WithLabels(entries map[string]string) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *RoleBindingApplyConfiguration) WithAnnotations(entries map[string]string) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *RoleBindingApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *RoleBindingApplyConfiguration) WithFinalizers(values ...string) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *RoleBindingApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSubjects adds the given value to the Subjects field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Subjects field.\nfunc (b *RoleBindingApplyConfiguration) WithSubjects(values ...*SubjectApplyConfiguration) *RoleBindingApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithSubjects\")\n\t\t}\n\t\tb.Subjects = append(b.Subjects, *values[i])\n\t}\n\treturn b\n}\n\n// WithRoleRef sets the RoleRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RoleRef field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithRoleRef(value *RoleRefApplyConfiguration) *RoleBindingApplyConfiguration {\n\tb.RoleRef = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *RoleBindingApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1alpha1/roleref.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// RoleRefApplyConfiguration represents a declarative configuration of the RoleRef type for use\n// with apply.\ntype RoleRefApplyConfiguration struct {\n\tAPIGroup *string `json:\"apiGroup,omitempty\"`\n\tKind     *string `json:\"kind,omitempty\"`\n\tName     *string `json:\"name,omitempty\"`\n}\n\n// RoleRefApplyConfiguration constructs a declarative configuration of the RoleRef type for use with\n// apply.\nfunc RoleRef() *RoleRefApplyConfiguration {\n\treturn &RoleRefApplyConfiguration{}\n}\n\n// WithAPIGroup sets the APIGroup field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIGroup field is set to the value of the last call.\nfunc (b *RoleRefApplyConfiguration) WithAPIGroup(value string) *RoleRefApplyConfiguration {\n\tb.APIGroup = &value\n\treturn b\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *RoleRefApplyConfiguration) WithKind(value string) *RoleRefApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *RoleRefApplyConfiguration) WithName(value string) *RoleRefApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1alpha1/subject.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// SubjectApplyConfiguration represents a declarative configuration of the Subject type for use\n// with apply.\ntype SubjectApplyConfiguration struct {\n\tKind       *string `json:\"kind,omitempty\"`\n\tAPIVersion *string `json:\"apiVersion,omitempty\"`\n\tName       *string `json:\"name,omitempty\"`\n\tNamespace  *string `json:\"namespace,omitempty\"`\n}\n\n// SubjectApplyConfiguration constructs a declarative configuration of the Subject type for use with\n// apply.\nfunc Subject() *SubjectApplyConfiguration {\n\treturn &SubjectApplyConfiguration{}\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithKind(value string) *SubjectApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithAPIVersion(value string) *SubjectApplyConfiguration {\n\tb.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithName(value string) *SubjectApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithNamespace(value string) *SubjectApplyConfiguration {\n\tb.Namespace = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1beta1/aggregationrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// AggregationRuleApplyConfiguration represents a declarative configuration of the AggregationRule type for use\n// with apply.\ntype AggregationRuleApplyConfiguration struct {\n\tClusterRoleSelectors []v1.LabelSelectorApplyConfiguration `json:\"clusterRoleSelectors,omitempty\"`\n}\n\n// AggregationRuleApplyConfiguration constructs a declarative configuration of the AggregationRule type for use with\n// apply.\nfunc AggregationRule() *AggregationRuleApplyConfiguration {\n\treturn &AggregationRuleApplyConfiguration{}\n}\n\n// WithClusterRoleSelectors adds the given value to the ClusterRoleSelectors field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ClusterRoleSelectors field.\nfunc (b *AggregationRuleApplyConfiguration) WithClusterRoleSelectors(values ...*v1.LabelSelectorApplyConfiguration) *AggregationRuleApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithClusterRoleSelectors\")\n\t\t}\n\t\tb.ClusterRoleSelectors = append(b.ClusterRoleSelectors, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1beta1/clusterrole.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\trbacv1beta1 \"k8s.io/api/rbac/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ClusterRoleApplyConfiguration represents a declarative configuration of the ClusterRole type for use\n// with apply.\ntype ClusterRoleApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tRules                            []PolicyRuleApplyConfiguration     `json:\"rules,omitempty\"`\n\tAggregationRule                  *AggregationRuleApplyConfiguration `json:\"aggregationRule,omitempty\"`\n}\n\n// ClusterRole constructs a declarative configuration of the ClusterRole type for use with\n// apply.\nfunc ClusterRole(name string) *ClusterRoleApplyConfiguration {\n\tb := &ClusterRoleApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"ClusterRole\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractClusterRole extracts the applied configuration owned by fieldManager from\n// clusterRole. If no managedFields are found in clusterRole for fieldManager, a\n// ClusterRoleApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// clusterRole must be a unmodified ClusterRole API object that was retrieved from the Kubernetes API.\n// ExtractClusterRole provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractClusterRole(clusterRole *rbacv1beta1.ClusterRole, fieldManager string) (*ClusterRoleApplyConfiguration, error) {\n\treturn extractClusterRole(clusterRole, fieldManager, \"\")\n}\n\n// ExtractClusterRoleStatus is the same as ExtractClusterRole except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractClusterRoleStatus(clusterRole *rbacv1beta1.ClusterRole, fieldManager string) (*ClusterRoleApplyConfiguration, error) {\n\treturn extractClusterRole(clusterRole, fieldManager, \"status\")\n}\n\nfunc extractClusterRole(clusterRole *rbacv1beta1.ClusterRole, fieldManager string, subresource string) (*ClusterRoleApplyConfiguration, error) {\n\tb := &ClusterRoleApplyConfiguration{}\n\terr := managedfields.ExtractInto(clusterRole, internal.Parser().Type(\"io.k8s.api.rbac.v1beta1.ClusterRole\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(clusterRole.Name)\n\n\tb.WithKind(\"ClusterRole\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithKind(value string) *ClusterRoleApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithAPIVersion(value string) *ClusterRoleApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithName(value string) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithGenerateName(value string) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithNamespace(value string) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithUID(value types.UID) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithResourceVersion(value string) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithGeneration(value int64) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ClusterRoleApplyConfiguration) WithLabels(entries map[string]string) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ClusterRoleApplyConfiguration) WithAnnotations(entries map[string]string) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ClusterRoleApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ClusterRoleApplyConfiguration) WithFinalizers(values ...string) *ClusterRoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ClusterRoleApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithRules adds the given value to the Rules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Rules field.\nfunc (b *ClusterRoleApplyConfiguration) WithRules(values ...*PolicyRuleApplyConfiguration) *ClusterRoleApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRules\")\n\t\t}\n\t\tb.Rules = append(b.Rules, *values[i])\n\t}\n\treturn b\n}\n\n// WithAggregationRule sets the AggregationRule field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AggregationRule field is set to the value of the last call.\nfunc (b *ClusterRoleApplyConfiguration) WithAggregationRule(value *AggregationRuleApplyConfiguration) *ClusterRoleApplyConfiguration {\n\tb.AggregationRule = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *ClusterRoleApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1beta1/clusterrolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\trbacv1beta1 \"k8s.io/api/rbac/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ClusterRoleBindingApplyConfiguration represents a declarative configuration of the ClusterRoleBinding type for use\n// with apply.\ntype ClusterRoleBindingApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSubjects                         []SubjectApplyConfiguration `json:\"subjects,omitempty\"`\n\tRoleRef                          *RoleRefApplyConfiguration  `json:\"roleRef,omitempty\"`\n}\n\n// ClusterRoleBinding constructs a declarative configuration of the ClusterRoleBinding type for use with\n// apply.\nfunc ClusterRoleBinding(name string) *ClusterRoleBindingApplyConfiguration {\n\tb := &ClusterRoleBindingApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"ClusterRoleBinding\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractClusterRoleBinding extracts the applied configuration owned by fieldManager from\n// clusterRoleBinding. If no managedFields are found in clusterRoleBinding for fieldManager, a\n// ClusterRoleBindingApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// clusterRoleBinding must be a unmodified ClusterRoleBinding API object that was retrieved from the Kubernetes API.\n// ExtractClusterRoleBinding provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractClusterRoleBinding(clusterRoleBinding *rbacv1beta1.ClusterRoleBinding, fieldManager string) (*ClusterRoleBindingApplyConfiguration, error) {\n\treturn extractClusterRoleBinding(clusterRoleBinding, fieldManager, \"\")\n}\n\n// ExtractClusterRoleBindingStatus is the same as ExtractClusterRoleBinding except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractClusterRoleBindingStatus(clusterRoleBinding *rbacv1beta1.ClusterRoleBinding, fieldManager string) (*ClusterRoleBindingApplyConfiguration, error) {\n\treturn extractClusterRoleBinding(clusterRoleBinding, fieldManager, \"status\")\n}\n\nfunc extractClusterRoleBinding(clusterRoleBinding *rbacv1beta1.ClusterRoleBinding, fieldManager string, subresource string) (*ClusterRoleBindingApplyConfiguration, error) {\n\tb := &ClusterRoleBindingApplyConfiguration{}\n\terr := managedfields.ExtractInto(clusterRoleBinding, internal.Parser().Type(\"io.k8s.api.rbac.v1beta1.ClusterRoleBinding\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(clusterRoleBinding.Name)\n\n\tb.WithKind(\"ClusterRoleBinding\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithKind(value string) *ClusterRoleBindingApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithAPIVersion(value string) *ClusterRoleBindingApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithName(value string) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithGenerateName(value string) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithNamespace(value string) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithUID(value types.UID) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithResourceVersion(value string) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithGeneration(value int64) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithLabels(entries map[string]string) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithAnnotations(entries map[string]string) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithFinalizers(values ...string) *ClusterRoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ClusterRoleBindingApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSubjects adds the given value to the Subjects field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Subjects field.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithSubjects(values ...*SubjectApplyConfiguration) *ClusterRoleBindingApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithSubjects\")\n\t\t}\n\t\tb.Subjects = append(b.Subjects, *values[i])\n\t}\n\treturn b\n}\n\n// WithRoleRef sets the RoleRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RoleRef field is set to the value of the last call.\nfunc (b *ClusterRoleBindingApplyConfiguration) WithRoleRef(value *RoleRefApplyConfiguration) *ClusterRoleBindingApplyConfiguration {\n\tb.RoleRef = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *ClusterRoleBindingApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1beta1/policyrule.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// PolicyRuleApplyConfiguration represents a declarative configuration of the PolicyRule type for use\n// with apply.\ntype PolicyRuleApplyConfiguration struct {\n\tVerbs           []string `json:\"verbs,omitempty\"`\n\tAPIGroups       []string `json:\"apiGroups,omitempty\"`\n\tResources       []string `json:\"resources,omitempty\"`\n\tResourceNames   []string `json:\"resourceNames,omitempty\"`\n\tNonResourceURLs []string `json:\"nonResourceURLs,omitempty\"`\n}\n\n// PolicyRuleApplyConfiguration constructs a declarative configuration of the PolicyRule type for use with\n// apply.\nfunc PolicyRule() *PolicyRuleApplyConfiguration {\n\treturn &PolicyRuleApplyConfiguration{}\n}\n\n// WithVerbs adds the given value to the Verbs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Verbs field.\nfunc (b *PolicyRuleApplyConfiguration) WithVerbs(values ...string) *PolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Verbs = append(b.Verbs, values[i])\n\t}\n\treturn b\n}\n\n// WithAPIGroups adds the given value to the APIGroups field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the APIGroups field.\nfunc (b *PolicyRuleApplyConfiguration) WithAPIGroups(values ...string) *PolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.APIGroups = append(b.APIGroups, values[i])\n\t}\n\treturn b\n}\n\n// WithResources adds the given value to the Resources field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Resources field.\nfunc (b *PolicyRuleApplyConfiguration) WithResources(values ...string) *PolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.Resources = append(b.Resources, values[i])\n\t}\n\treturn b\n}\n\n// WithResourceNames adds the given value to the ResourceNames field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ResourceNames field.\nfunc (b *PolicyRuleApplyConfiguration) WithResourceNames(values ...string) *PolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.ResourceNames = append(b.ResourceNames, values[i])\n\t}\n\treturn b\n}\n\n// WithNonResourceURLs adds the given value to the NonResourceURLs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the NonResourceURLs field.\nfunc (b *PolicyRuleApplyConfiguration) WithNonResourceURLs(values ...string) *PolicyRuleApplyConfiguration {\n\tfor i := range values {\n\t\tb.NonResourceURLs = append(b.NonResourceURLs, values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1beta1/role.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\trbacv1beta1 \"k8s.io/api/rbac/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// RoleApplyConfiguration represents a declarative configuration of the Role type for use\n// with apply.\ntype RoleApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tRules                            []PolicyRuleApplyConfiguration `json:\"rules,omitempty\"`\n}\n\n// Role constructs a declarative configuration of the Role type for use with\n// apply.\nfunc Role(name, namespace string) *RoleApplyConfiguration {\n\tb := &RoleApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"Role\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractRole extracts the applied configuration owned by fieldManager from\n// role. If no managedFields are found in role for fieldManager, a\n// RoleApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// role must be a unmodified Role API object that was retrieved from the Kubernetes API.\n// ExtractRole provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractRole(role *rbacv1beta1.Role, fieldManager string) (*RoleApplyConfiguration, error) {\n\treturn extractRole(role, fieldManager, \"\")\n}\n\n// ExtractRoleStatus is the same as ExtractRole except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractRoleStatus(role *rbacv1beta1.Role, fieldManager string) (*RoleApplyConfiguration, error) {\n\treturn extractRole(role, fieldManager, \"status\")\n}\n\nfunc extractRole(role *rbacv1beta1.Role, fieldManager string, subresource string) (*RoleApplyConfiguration, error) {\n\tb := &RoleApplyConfiguration{}\n\terr := managedfields.ExtractInto(role, internal.Parser().Type(\"io.k8s.api.rbac.v1beta1.Role\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(role.Name)\n\tb.WithNamespace(role.Namespace)\n\n\tb.WithKind(\"Role\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithKind(value string) *RoleApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithAPIVersion(value string) *RoleApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithName(value string) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithGenerateName(value string) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithNamespace(value string) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithUID(value types.UID) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithResourceVersion(value string) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithGeneration(value int64) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithCreationTimestamp(value metav1.Time) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *RoleApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *RoleApplyConfiguration) WithLabels(entries map[string]string) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *RoleApplyConfiguration) WithAnnotations(entries map[string]string) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *RoleApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *RoleApplyConfiguration) WithFinalizers(values ...string) *RoleApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *RoleApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithRules adds the given value to the Rules field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Rules field.\nfunc (b *RoleApplyConfiguration) WithRules(values ...*PolicyRuleApplyConfiguration) *RoleApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRules\")\n\t\t}\n\t\tb.Rules = append(b.Rules, *values[i])\n\t}\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *RoleApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1beta1/rolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\trbacv1beta1 \"k8s.io/api/rbac/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// RoleBindingApplyConfiguration represents a declarative configuration of the RoleBinding type for use\n// with apply.\ntype RoleBindingApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSubjects                         []SubjectApplyConfiguration `json:\"subjects,omitempty\"`\n\tRoleRef                          *RoleRefApplyConfiguration  `json:\"roleRef,omitempty\"`\n}\n\n// RoleBinding constructs a declarative configuration of the RoleBinding type for use with\n// apply.\nfunc RoleBinding(name, namespace string) *RoleBindingApplyConfiguration {\n\tb := &RoleBindingApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"RoleBinding\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractRoleBinding extracts the applied configuration owned by fieldManager from\n// roleBinding. If no managedFields are found in roleBinding for fieldManager, a\n// RoleBindingApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// roleBinding must be a unmodified RoleBinding API object that was retrieved from the Kubernetes API.\n// ExtractRoleBinding provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractRoleBinding(roleBinding *rbacv1beta1.RoleBinding, fieldManager string) (*RoleBindingApplyConfiguration, error) {\n\treturn extractRoleBinding(roleBinding, fieldManager, \"\")\n}\n\n// ExtractRoleBindingStatus is the same as ExtractRoleBinding except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractRoleBindingStatus(roleBinding *rbacv1beta1.RoleBinding, fieldManager string) (*RoleBindingApplyConfiguration, error) {\n\treturn extractRoleBinding(roleBinding, fieldManager, \"status\")\n}\n\nfunc extractRoleBinding(roleBinding *rbacv1beta1.RoleBinding, fieldManager string, subresource string) (*RoleBindingApplyConfiguration, error) {\n\tb := &RoleBindingApplyConfiguration{}\n\terr := managedfields.ExtractInto(roleBinding, internal.Parser().Type(\"io.k8s.api.rbac.v1beta1.RoleBinding\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(roleBinding.Name)\n\tb.WithNamespace(roleBinding.Namespace)\n\n\tb.WithKind(\"RoleBinding\")\n\tb.WithAPIVersion(\"rbac.authorization.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithKind(value string) *RoleBindingApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithAPIVersion(value string) *RoleBindingApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithName(value string) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithGenerateName(value string) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithNamespace(value string) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithUID(value types.UID) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithResourceVersion(value string) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithGeneration(value int64) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithCreationTimestamp(value metav1.Time) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *RoleBindingApplyConfiguration) WithLabels(entries map[string]string) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *RoleBindingApplyConfiguration) WithAnnotations(entries map[string]string) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *RoleBindingApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *RoleBindingApplyConfiguration) WithFinalizers(values ...string) *RoleBindingApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *RoleBindingApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSubjects adds the given value to the Subjects field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Subjects field.\nfunc (b *RoleBindingApplyConfiguration) WithSubjects(values ...*SubjectApplyConfiguration) *RoleBindingApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithSubjects\")\n\t\t}\n\t\tb.Subjects = append(b.Subjects, *values[i])\n\t}\n\treturn b\n}\n\n// WithRoleRef sets the RoleRef field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RoleRef field is set to the value of the last call.\nfunc (b *RoleBindingApplyConfiguration) WithRoleRef(value *RoleRefApplyConfiguration) *RoleBindingApplyConfiguration {\n\tb.RoleRef = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *RoleBindingApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1beta1/roleref.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// RoleRefApplyConfiguration represents a declarative configuration of the RoleRef type for use\n// with apply.\ntype RoleRefApplyConfiguration struct {\n\tAPIGroup *string `json:\"apiGroup,omitempty\"`\n\tKind     *string `json:\"kind,omitempty\"`\n\tName     *string `json:\"name,omitempty\"`\n}\n\n// RoleRefApplyConfiguration constructs a declarative configuration of the RoleRef type for use with\n// apply.\nfunc RoleRef() *RoleRefApplyConfiguration {\n\treturn &RoleRefApplyConfiguration{}\n}\n\n// WithAPIGroup sets the APIGroup field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIGroup field is set to the value of the last call.\nfunc (b *RoleRefApplyConfiguration) WithAPIGroup(value string) *RoleRefApplyConfiguration {\n\tb.APIGroup = &value\n\treturn b\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *RoleRefApplyConfiguration) WithKind(value string) *RoleRefApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *RoleRefApplyConfiguration) WithName(value string) *RoleRefApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/rbac/v1beta1/subject.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// SubjectApplyConfiguration represents a declarative configuration of the Subject type for use\n// with apply.\ntype SubjectApplyConfiguration struct {\n\tKind      *string `json:\"kind,omitempty\"`\n\tAPIGroup  *string `json:\"apiGroup,omitempty\"`\n\tName      *string `json:\"name,omitempty\"`\n\tNamespace *string `json:\"namespace,omitempty\"`\n}\n\n// SubjectApplyConfiguration constructs a declarative configuration of the Subject type for use with\n// apply.\nfunc Subject() *SubjectApplyConfiguration {\n\treturn &SubjectApplyConfiguration{}\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithKind(value string) *SubjectApplyConfiguration {\n\tb.Kind = &value\n\treturn b\n}\n\n// WithAPIGroup sets the APIGroup field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIGroup field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithAPIGroup(value string) *SubjectApplyConfiguration {\n\tb.APIGroup = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithName(value string) *SubjectApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *SubjectApplyConfiguration) WithNamespace(value string) *SubjectApplyConfiguration {\n\tb.Namespace = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha3/allocateddevicestatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha3\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// AllocatedDeviceStatusApplyConfiguration represents a declarative configuration of the AllocatedDeviceStatus type for use\n// with apply.\ntype AllocatedDeviceStatusApplyConfiguration struct {\n\tDriver      *string                              `json:\"driver,omitempty\"`\n\tPool        *string                              `json:\"pool,omitempty\"`\n\tDevice      *string                              `json:\"device,omitempty\"`\n\tConditions  []v1.ConditionApplyConfiguration     `json:\"conditions,omitempty\"`\n\tData        *runtime.RawExtension                `json:\"data,omitempty\"`\n\tNetworkData *NetworkDeviceDataApplyConfiguration `json:\"networkData,omitempty\"`\n}\n\n// AllocatedDeviceStatusApplyConfiguration constructs a declarative configuration of the AllocatedDeviceStatus type for use with\n// apply.\nfunc AllocatedDeviceStatus() *AllocatedDeviceStatusApplyConfiguration {\n\treturn &AllocatedDeviceStatusApplyConfiguration{}\n}\n\n// WithDriver sets the Driver field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Driver field is set to the value of the last call.\nfunc (b *AllocatedDeviceStatusApplyConfiguration) WithDriver(value string) *AllocatedDeviceStatusApplyConfiguration {\n\tb.Driver = &value\n\treturn b\n}\n\n// WithPool sets the Pool field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Pool field is set to the value of the last call.\nfunc (b *AllocatedDeviceStatusApplyConfiguration) WithPool(value string) *AllocatedDeviceStatusApplyConfiguration {\n\tb.Pool = &value\n\treturn b\n}\n\n// WithDevice sets the Device field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Device field is set to the value of the last call.\nfunc (b *AllocatedDeviceStatusApplyConfiguration) WithDevice(value string) *AllocatedDeviceStatusApplyConfiguration {\n\tb.Device = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *AllocatedDeviceStatusApplyConfiguration) WithConditions(values ...*v1.ConditionApplyConfiguration) *AllocatedDeviceStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n\n// WithData sets the Data field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Data field is set to the value of the last call.\nfunc (b *AllocatedDeviceStatusApplyConfiguration) WithData(value runtime.RawExtension) *AllocatedDeviceStatusApplyConfiguration {\n\tb.Data = &value\n\treturn b\n}\n\n// WithNetworkData sets the NetworkData field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NetworkData field is set to the value of the last call.\nfunc (b *AllocatedDeviceStatusApplyConfiguration) WithNetworkData(value *NetworkDeviceDataApplyConfiguration) *AllocatedDeviceStatusApplyConfiguration {\n\tb.NetworkData = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha3/allocationresult.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha3\n\nimport (\n\tv1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n)\n\n// AllocationResultApplyConfiguration represents a declarative configuration of the AllocationResult type for use\n// with apply.\ntype AllocationResultApplyConfiguration struct {\n\tDevices      *DeviceAllocationResultApplyConfiguration `json:\"devices,omitempty\"`\n\tNodeSelector *v1.NodeSelectorApplyConfiguration        `json:\"nodeSelector,omitempty\"`\n}\n\n// AllocationResultApplyConfiguration constructs a declarative configuration of the AllocationResult type for use with\n// apply.\nfunc AllocationResult() *AllocationResultApplyConfiguration {\n\treturn &AllocationResultApplyConfiguration{}\n}\n\n// WithDevices sets the Devices field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Devices field is set to the value of the last call.\nfunc (b *AllocationResultApplyConfiguration) WithDevices(value *DeviceAllocationResultApplyConfiguration) *AllocationResultApplyConfiguration {\n\tb.Devices = value\n\treturn b\n}\n\n// WithNodeSelector sets the NodeSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeSelector field is set to the value of the last call.\nfunc (b *AllocationResultApplyConfiguration) WithNodeSelector(value *v1.NodeSelectorApplyConfiguration) *AllocationResultApplyConfiguration {\n\tb.NodeSelector = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha3/basicdevice.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha3\n\nimport (\n\tresourcev1alpha3 \"k8s.io/api/resource/v1alpha3\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n)\n\n// BasicDeviceApplyConfiguration represents a declarative configuration of the BasicDevice type for use\n// with apply.\ntype BasicDeviceApplyConfiguration struct {\n\tAttributes map[resourcev1alpha3.QualifiedName]DeviceAttributeApplyConfiguration `json:\"attributes,omitempty\"`\n\tCapacity   map[resourcev1alpha3.QualifiedName]resource.Quantity                 `json:\"capacity,omitempty\"`\n}\n\n// BasicDeviceApplyConfiguration constructs a declarative configuration of the BasicDevice type for use with\n// apply.\nfunc BasicDevice() *BasicDeviceApplyConfiguration {\n\treturn &BasicDeviceApplyConfiguration{}\n}\n\n// WithAttributes puts the entries into the Attributes field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Attributes field,\n// overwriting an existing map entries in Attributes field with the same key.\nfunc (b *BasicDeviceApplyConfiguration) WithAttributes(entries map[resourcev1alpha3.QualifiedName]DeviceAttributeApplyConfiguration) *BasicDeviceApplyConfiguration {\n\tif b.Attributes == nil && len(entries) > 0 {\n\t\tb.Attributes = make(map[resourcev1alpha3.QualifiedName]DeviceAttributeApplyConfiguration, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Attributes[k] = v\n\t}\n\treturn b\n}\n\n// WithCapacity puts the entries into the Capacity field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Capacity field,\n// overwriting an existing map entries in Capacity field with the same key.\nfunc (b *BasicDeviceApplyConfiguration) WithCapacity(entries map[resourcev1alpha3.QualifiedName]resource.Quantity) *BasicDeviceApplyConfiguration {\n\tif b.Capacity == nil && len(entries) > 0 {\n\t\tb.Capacity = make(map[resourcev1alpha3.QualifiedName]resource.Quantity, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Capacity[k] = v\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha3/celdeviceselector.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha3\n\n// CELDeviceSelectorApplyConfiguration represents a declarative configuration of the CELDeviceSelector type for use\n// with apply.\ntype CELDeviceSelectorApplyConfiguration struct {\n\tExpression *string `json:\"expression,omitempty\"`\n}\n\n// CELDeviceSelectorApplyConfiguration constructs a declarative configuration of the CELDeviceSelector type for use with\n// apply.\nfunc CELDeviceSelector() *CELDeviceSelectorApplyConfiguration {\n\treturn &CELDeviceSelectorApplyConfiguration{}\n}\n\n// WithExpression sets the Expression field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Expression field is set to the value of the last call.\nfunc (b *CELDeviceSelectorApplyConfiguration) WithExpression(value string) *CELDeviceSelectorApplyConfiguration {\n\tb.Expression = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha3/device.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha3\n\n// DeviceApplyConfiguration represents a declarative configuration of the Device type for use\n// with apply.\ntype DeviceApplyConfiguration struct {\n\tName  *string                        `json:\"name,omitempty\"`\n\tBasic *BasicDeviceApplyConfiguration `json:\"basic,omitempty\"`\n}\n\n// DeviceApplyConfiguration constructs a declarative configuration of the Device type for use with\n// apply.\nfunc Device() *DeviceApplyConfiguration {\n\treturn &DeviceApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *DeviceApplyConfiguration) WithName(value string) *DeviceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithBasic sets the Basic field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Basic field is set to the value of the last call.\nfunc (b *DeviceApplyConfiguration) WithBasic(value *BasicDeviceApplyConfiguration) *DeviceApplyConfiguration {\n\tb.Basic = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha3/deviceallocationconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha3\n\nimport (\n\tresourcev1alpha3 \"k8s.io/api/resource/v1alpha3\"\n)\n\n// DeviceAllocationConfigurationApplyConfiguration represents a declarative configuration of the DeviceAllocationConfiguration type for use\n// with apply.\ntype DeviceAllocationConfigurationApplyConfiguration struct {\n\tSource                                *resourcev1alpha3.AllocationConfigSource `json:\"source,omitempty\"`\n\tRequests                              []string                                 `json:\"requests,omitempty\"`\n\tDeviceConfigurationApplyConfiguration `json:\",inline\"`\n}\n\n// DeviceAllocationConfigurationApplyConfiguration constructs a declarative configuration of the DeviceAllocationConfiguration type for use with\n// apply.\nfunc DeviceAllocationConfiguration() *DeviceAllocationConfigurationApplyConfiguration {\n\treturn &DeviceAllocationConfigurationApplyConfiguration{}\n}\n\n// WithSource sets the Source field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Source field is set to the value of the last call.\nfunc (b *DeviceAllocationConfigurationApplyConfiguration) WithSource(value resourcev1alpha3.AllocationConfigSource) *DeviceAllocationConfigurationApplyConfiguration {\n\tb.Source = &value\n\treturn b\n}\n\n// WithRequests adds the given value to the Requests field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Requests field.\nfunc (b *DeviceAllocationConfigurationApplyConfiguration) WithRequests(values ...string) *DeviceAllocationConfigurationApplyConfiguration {\n\tfor i := range values {\n\t\tb.Requests = append(b.Requests, values[i])\n\t}\n\treturn b\n}\n\n// WithOpaque sets the Opaque field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Opaque field is set to the value of the last call.\nfunc (b *DeviceAllocationConfigurationApplyConfiguration) WithOpaque(value *OpaqueDeviceConfigurationApplyConfiguration) *DeviceAllocationConfigurationApplyConfiguration {\n\tb.DeviceConfigurationApplyConfiguration.Opaque = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha3/deviceallocationresult.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha3\n\n// DeviceAllocationResultApplyConfiguration represents a declarative configuration of the DeviceAllocationResult type for use\n// with apply.\ntype DeviceAllocationResultApplyConfiguration struct {\n\tResults []DeviceRequestAllocationResultApplyConfiguration `json:\"results,omitempty\"`\n\tConfig  []DeviceAllocationConfigurationApplyConfiguration `json:\"config,omitempty\"`\n}\n\n// DeviceAllocationResultApplyConfiguration constructs a declarative configuration of the DeviceAllocationResult type for use with\n// apply.\nfunc DeviceAllocationResult() *DeviceAllocationResultApplyConfiguration {\n\treturn &DeviceAllocationResultApplyConfiguration{}\n}\n\n// WithResults adds the given value to the Results field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Results field.\nfunc (b *DeviceAllocationResultApplyConfiguration) WithResults(values ...*DeviceRequestAllocationResultApplyConfiguration) *DeviceAllocationResultApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithResults\")\n\t\t}\n\t\tb.Results = append(b.Results, *values[i])\n\t}\n\treturn b\n}\n\n// WithConfig adds the given value to the Config field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Config field.\nfunc (b *DeviceAllocationResultApplyConfiguration) WithConfig(values ...*DeviceAllocationConfigurationApplyConfiguration) *DeviceAllocationResultApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConfig\")\n\t\t}\n\t\tb.Config = append(b.Config, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha3/deviceattribute.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha3\n\n// DeviceAttributeApplyConfiguration represents a declarative configuration of the DeviceAttribute type for use\n// with apply.\ntype DeviceAttributeApplyConfiguration struct {\n\tIntValue     *int64  `json:\"int,omitempty\"`\n\tBoolValue    *bool   `json:\"bool,omitempty\"`\n\tStringValue  *string `json:\"string,omitempty\"`\n\tVersionValue *string `json:\"version,omitempty\"`\n}\n\n// DeviceAttributeApplyConfiguration constructs a declarative configuration of the DeviceAttribute type for use with\n// apply.\nfunc DeviceAttribute() *DeviceAttributeApplyConfiguration {\n\treturn &DeviceAttributeApplyConfiguration{}\n}\n\n// WithIntValue sets the IntValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the IntValue field is set to the value of the last call.\nfunc (b *DeviceAttributeApplyConfiguration) WithIntValue(value int64) *DeviceAttributeApplyConfiguration {\n\tb.IntValue = &value\n\treturn b\n}\n\n// WithBoolValue sets the BoolValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the BoolValue field is set to the value of the last call.\nfunc (b *DeviceAttributeApplyConfiguration) WithBoolValue(value bool) *DeviceAttributeApplyConfiguration {\n\tb.BoolValue = &value\n\treturn b\n}\n\n// WithStringValue sets the StringValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StringValue field is set to the value of the last call.\nfunc (b *DeviceAttributeApplyConfiguration) WithStringValue(value string) *DeviceAttributeApplyConfiguration {\n\tb.StringValue = &value\n\treturn b\n}\n\n// WithVersionValue sets the VersionValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VersionValue field is set to the value of the last call.\nfunc (b *DeviceAttributeApplyConfiguration) WithVersionValue(value string) *DeviceAttributeApplyConfiguration {\n\tb.VersionValue = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha3/deviceclaim.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha3\n\n// DeviceClaimApplyConfiguration represents a declarative configuration of the DeviceClaim type for use\n// with apply.\ntype DeviceClaimApplyConfiguration struct {\n\tRequests    []DeviceRequestApplyConfiguration            `json:\"requests,omitempty\"`\n\tConstraints []DeviceConstraintApplyConfiguration         `json:\"constraints,omitempty\"`\n\tConfig      []DeviceClaimConfigurationApplyConfiguration `json:\"config,omitempty\"`\n}\n\n// DeviceClaimApplyConfiguration constructs a declarative configuration of the DeviceClaim type for use with\n// apply.\nfunc DeviceClaim() *DeviceClaimApplyConfiguration {\n\treturn &DeviceClaimApplyConfiguration{}\n}\n\n// WithRequests adds the given value to the Requests field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Requests field.\nfunc (b *DeviceClaimApplyConfiguration) WithRequests(values ...*DeviceRequestApplyConfiguration) *DeviceClaimApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRequests\")\n\t\t}\n\t\tb.Requests = append(b.Requests, *values[i])\n\t}\n\treturn b\n}\n\n// WithConstraints adds the given value to the Constraints field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Constraints field.\nfunc (b *DeviceClaimApplyConfiguration) WithConstraints(values ...*DeviceConstraintApplyConfiguration) *DeviceClaimApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConstraints\")\n\t\t}\n\t\tb.Constraints = append(b.Constraints, *values[i])\n\t}\n\treturn b\n}\n\n// WithConfig adds the given value to the Config field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Config field.\nfunc (b *DeviceClaimApplyConfiguration) WithConfig(values ...*DeviceClaimConfigurationApplyConfiguration) *DeviceClaimApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConfig\")\n\t\t}\n\t\tb.Config = append(b.Config, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha3/deviceclaimconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha3\n\n// DeviceClaimConfigurationApplyConfiguration represents a declarative configuration of the DeviceClaimConfiguration type for use\n// with apply.\ntype DeviceClaimConfigurationApplyConfiguration struct {\n\tRequests                              []string `json:\"requests,omitempty\"`\n\tDeviceConfigurationApplyConfiguration `json:\",inline\"`\n}\n\n// DeviceClaimConfigurationApplyConfiguration constructs a declarative configuration of the DeviceClaimConfiguration type for use with\n// apply.\nfunc DeviceClaimConfiguration() *DeviceClaimConfigurationApplyConfiguration {\n\treturn &DeviceClaimConfigurationApplyConfiguration{}\n}\n\n// WithRequests adds the given value to the Requests field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Requests field.\nfunc (b *DeviceClaimConfigurationApplyConfiguration) WithRequests(values ...string) *DeviceClaimConfigurationApplyConfiguration {\n\tfor i := range values {\n\t\tb.Requests = append(b.Requests, values[i])\n\t}\n\treturn b\n}\n\n// WithOpaque sets the Opaque field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Opaque field is set to the value of the last call.\nfunc (b *DeviceClaimConfigurationApplyConfiguration) WithOpaque(value *OpaqueDeviceConfigurationApplyConfiguration) *DeviceClaimConfigurationApplyConfiguration {\n\tb.DeviceConfigurationApplyConfiguration.Opaque = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha3/deviceclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha3\n\nimport (\n\tresourcev1alpha3 \"k8s.io/api/resource/v1alpha3\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// DeviceClassApplyConfiguration represents a declarative configuration of the DeviceClass type for use\n// with apply.\ntype DeviceClassApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *DeviceClassSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// DeviceClass constructs a declarative configuration of the DeviceClass type for use with\n// apply.\nfunc DeviceClass(name string) *DeviceClassApplyConfiguration {\n\tb := &DeviceClassApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"DeviceClass\")\n\tb.WithAPIVersion(\"resource.k8s.io/v1alpha3\")\n\treturn b\n}\n\n// ExtractDeviceClass extracts the applied configuration owned by fieldManager from\n// deviceClass. If no managedFields are found in deviceClass for fieldManager, a\n// DeviceClassApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// deviceClass must be a unmodified DeviceClass API object that was retrieved from the Kubernetes API.\n// ExtractDeviceClass provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractDeviceClass(deviceClass *resourcev1alpha3.DeviceClass, fieldManager string) (*DeviceClassApplyConfiguration, error) {\n\treturn extractDeviceClass(deviceClass, fieldManager, \"\")\n}\n\n// ExtractDeviceClassStatus is the same as ExtractDeviceClass except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractDeviceClassStatus(deviceClass *resourcev1alpha3.DeviceClass, fieldManager string) (*DeviceClassApplyConfiguration, error) {\n\treturn extractDeviceClass(deviceClass, fieldManager, \"status\")\n}\n\nfunc extractDeviceClass(deviceClass *resourcev1alpha3.DeviceClass, fieldManager string, subresource string) (*DeviceClassApplyConfiguration, error) {\n\tb := &DeviceClassApplyConfiguration{}\n\terr := managedfields.ExtractInto(deviceClass, internal.Parser().Type(\"io.k8s.api.resource.v1alpha3.DeviceClass\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(deviceClass.Name)\n\n\tb.WithKind(\"DeviceClass\")\n\tb.WithAPIVersion(\"resource.k8s.io/v1alpha3\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *DeviceClassApplyConfiguration) WithKind(value string) *DeviceClassApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *DeviceClassApplyConfiguration) WithAPIVersion(value string) *DeviceClassApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *DeviceClassApplyConfiguration) WithName(value string) *DeviceClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *DeviceClassApplyConfiguration) WithGenerateName(value string) *DeviceClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *DeviceClassApplyConfiguration) WithNamespace(value string) *DeviceClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *DeviceClassApplyConfiguration) WithUID(value types.UID) *DeviceClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *DeviceClassApplyConfiguration) WithResourceVersion(value string) *DeviceClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *DeviceClassApplyConfiguration) WithGeneration(value int64) *DeviceClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *DeviceClassApplyConfiguration) WithCreationTimestamp(value metav1.Time) *DeviceClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *DeviceClassApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *DeviceClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *DeviceClassApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *DeviceClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *DeviceClassApplyConfiguration) WithLabels(entries map[string]string) *DeviceClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *DeviceClassApplyConfiguration) WithAnnotations(entries map[string]string) *DeviceClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *DeviceClassApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *DeviceClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *DeviceClassApplyConfiguration) WithFinalizers(values ...string) *DeviceClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *DeviceClassApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *DeviceClassApplyConfiguration) WithSpec(value *DeviceClassSpecApplyConfiguration) *DeviceClassApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *DeviceClassApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha3/deviceclassconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha3\n\n// DeviceClassConfigurationApplyConfiguration represents a declarative configuration of the DeviceClassConfiguration type for use\n// with apply.\ntype DeviceClassConfigurationApplyConfiguration struct {\n\tDeviceConfigurationApplyConfiguration `json:\",inline\"`\n}\n\n// DeviceClassConfigurationApplyConfiguration constructs a declarative configuration of the DeviceClassConfiguration type for use with\n// apply.\nfunc DeviceClassConfiguration() *DeviceClassConfigurationApplyConfiguration {\n\treturn &DeviceClassConfigurationApplyConfiguration{}\n}\n\n// WithOpaque sets the Opaque field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Opaque field is set to the value of the last call.\nfunc (b *DeviceClassConfigurationApplyConfiguration) WithOpaque(value *OpaqueDeviceConfigurationApplyConfiguration) *DeviceClassConfigurationApplyConfiguration {\n\tb.DeviceConfigurationApplyConfiguration.Opaque = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha3/deviceclassspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha3\n\n// DeviceClassSpecApplyConfiguration represents a declarative configuration of the DeviceClassSpec type for use\n// with apply.\ntype DeviceClassSpecApplyConfiguration struct {\n\tSelectors []DeviceSelectorApplyConfiguration           `json:\"selectors,omitempty\"`\n\tConfig    []DeviceClassConfigurationApplyConfiguration `json:\"config,omitempty\"`\n}\n\n// DeviceClassSpecApplyConfiguration constructs a declarative configuration of the DeviceClassSpec type for use with\n// apply.\nfunc DeviceClassSpec() *DeviceClassSpecApplyConfiguration {\n\treturn &DeviceClassSpecApplyConfiguration{}\n}\n\n// WithSelectors adds the given value to the Selectors field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Selectors field.\nfunc (b *DeviceClassSpecApplyConfiguration) WithSelectors(values ...*DeviceSelectorApplyConfiguration) *DeviceClassSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithSelectors\")\n\t\t}\n\t\tb.Selectors = append(b.Selectors, *values[i])\n\t}\n\treturn b\n}\n\n// WithConfig adds the given value to the Config field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Config field.\nfunc (b *DeviceClassSpecApplyConfiguration) WithConfig(values ...*DeviceClassConfigurationApplyConfiguration) *DeviceClassSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConfig\")\n\t\t}\n\t\tb.Config = append(b.Config, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha3/deviceconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha3\n\n// DeviceConfigurationApplyConfiguration represents a declarative configuration of the DeviceConfiguration type for use\n// with apply.\ntype DeviceConfigurationApplyConfiguration struct {\n\tOpaque *OpaqueDeviceConfigurationApplyConfiguration `json:\"opaque,omitempty\"`\n}\n\n// DeviceConfigurationApplyConfiguration constructs a declarative configuration of the DeviceConfiguration type for use with\n// apply.\nfunc DeviceConfiguration() *DeviceConfigurationApplyConfiguration {\n\treturn &DeviceConfigurationApplyConfiguration{}\n}\n\n// WithOpaque sets the Opaque field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Opaque field is set to the value of the last call.\nfunc (b *DeviceConfigurationApplyConfiguration) WithOpaque(value *OpaqueDeviceConfigurationApplyConfiguration) *DeviceConfigurationApplyConfiguration {\n\tb.Opaque = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha3/deviceconstraint.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha3\n\nimport (\n\tresourcev1alpha3 \"k8s.io/api/resource/v1alpha3\"\n)\n\n// DeviceConstraintApplyConfiguration represents a declarative configuration of the DeviceConstraint type for use\n// with apply.\ntype DeviceConstraintApplyConfiguration struct {\n\tRequests       []string                             `json:\"requests,omitempty\"`\n\tMatchAttribute *resourcev1alpha3.FullyQualifiedName `json:\"matchAttribute,omitempty\"`\n}\n\n// DeviceConstraintApplyConfiguration constructs a declarative configuration of the DeviceConstraint type for use with\n// apply.\nfunc DeviceConstraint() *DeviceConstraintApplyConfiguration {\n\treturn &DeviceConstraintApplyConfiguration{}\n}\n\n// WithRequests adds the given value to the Requests field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Requests field.\nfunc (b *DeviceConstraintApplyConfiguration) WithRequests(values ...string) *DeviceConstraintApplyConfiguration {\n\tfor i := range values {\n\t\tb.Requests = append(b.Requests, values[i])\n\t}\n\treturn b\n}\n\n// WithMatchAttribute sets the MatchAttribute field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MatchAttribute field is set to the value of the last call.\nfunc (b *DeviceConstraintApplyConfiguration) WithMatchAttribute(value resourcev1alpha3.FullyQualifiedName) *DeviceConstraintApplyConfiguration {\n\tb.MatchAttribute = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha3/devicerequest.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha3\n\nimport (\n\tresourcev1alpha3 \"k8s.io/api/resource/v1alpha3\"\n)\n\n// DeviceRequestApplyConfiguration represents a declarative configuration of the DeviceRequest type for use\n// with apply.\ntype DeviceRequestApplyConfiguration struct {\n\tName            *string                                `json:\"name,omitempty\"`\n\tDeviceClassName *string                                `json:\"deviceClassName,omitempty\"`\n\tSelectors       []DeviceSelectorApplyConfiguration     `json:\"selectors,omitempty\"`\n\tAllocationMode  *resourcev1alpha3.DeviceAllocationMode `json:\"allocationMode,omitempty\"`\n\tCount           *int64                                 `json:\"count,omitempty\"`\n\tAdminAccess     *bool                                  `json:\"adminAccess,omitempty\"`\n}\n\n// DeviceRequestApplyConfiguration constructs a declarative configuration of the DeviceRequest type for use with\n// apply.\nfunc DeviceRequest() *DeviceRequestApplyConfiguration {\n\treturn &DeviceRequestApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *DeviceRequestApplyConfiguration) WithName(value string) *DeviceRequestApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithDeviceClassName sets the DeviceClassName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeviceClassName field is set to the value of the last call.\nfunc (b *DeviceRequestApplyConfiguration) WithDeviceClassName(value string) *DeviceRequestApplyConfiguration {\n\tb.DeviceClassName = &value\n\treturn b\n}\n\n// WithSelectors adds the given value to the Selectors field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Selectors field.\nfunc (b *DeviceRequestApplyConfiguration) WithSelectors(values ...*DeviceSelectorApplyConfiguration) *DeviceRequestApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithSelectors\")\n\t\t}\n\t\tb.Selectors = append(b.Selectors, *values[i])\n\t}\n\treturn b\n}\n\n// WithAllocationMode sets the AllocationMode field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AllocationMode field is set to the value of the last call.\nfunc (b *DeviceRequestApplyConfiguration) WithAllocationMode(value resourcev1alpha3.DeviceAllocationMode) *DeviceRequestApplyConfiguration {\n\tb.AllocationMode = &value\n\treturn b\n}\n\n// WithCount sets the Count field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Count field is set to the value of the last call.\nfunc (b *DeviceRequestApplyConfiguration) WithCount(value int64) *DeviceRequestApplyConfiguration {\n\tb.Count = &value\n\treturn b\n}\n\n// WithAdminAccess sets the AdminAccess field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AdminAccess field is set to the value of the last call.\nfunc (b *DeviceRequestApplyConfiguration) WithAdminAccess(value bool) *DeviceRequestApplyConfiguration {\n\tb.AdminAccess = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha3/devicerequestallocationresult.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha3\n\n// DeviceRequestAllocationResultApplyConfiguration represents a declarative configuration of the DeviceRequestAllocationResult type for use\n// with apply.\ntype DeviceRequestAllocationResultApplyConfiguration struct {\n\tRequest     *string `json:\"request,omitempty\"`\n\tDriver      *string `json:\"driver,omitempty\"`\n\tPool        *string `json:\"pool,omitempty\"`\n\tDevice      *string `json:\"device,omitempty\"`\n\tAdminAccess *bool   `json:\"adminAccess,omitempty\"`\n}\n\n// DeviceRequestAllocationResultApplyConfiguration constructs a declarative configuration of the DeviceRequestAllocationResult type for use with\n// apply.\nfunc DeviceRequestAllocationResult() *DeviceRequestAllocationResultApplyConfiguration {\n\treturn &DeviceRequestAllocationResultApplyConfiguration{}\n}\n\n// WithRequest sets the Request field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Request field is set to the value of the last call.\nfunc (b *DeviceRequestAllocationResultApplyConfiguration) WithRequest(value string) *DeviceRequestAllocationResultApplyConfiguration {\n\tb.Request = &value\n\treturn b\n}\n\n// WithDriver sets the Driver field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Driver field is set to the value of the last call.\nfunc (b *DeviceRequestAllocationResultApplyConfiguration) WithDriver(value string) *DeviceRequestAllocationResultApplyConfiguration {\n\tb.Driver = &value\n\treturn b\n}\n\n// WithPool sets the Pool field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Pool field is set to the value of the last call.\nfunc (b *DeviceRequestAllocationResultApplyConfiguration) WithPool(value string) *DeviceRequestAllocationResultApplyConfiguration {\n\tb.Pool = &value\n\treturn b\n}\n\n// WithDevice sets the Device field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Device field is set to the value of the last call.\nfunc (b *DeviceRequestAllocationResultApplyConfiguration) WithDevice(value string) *DeviceRequestAllocationResultApplyConfiguration {\n\tb.Device = &value\n\treturn b\n}\n\n// WithAdminAccess sets the AdminAccess field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AdminAccess field is set to the value of the last call.\nfunc (b *DeviceRequestAllocationResultApplyConfiguration) WithAdminAccess(value bool) *DeviceRequestAllocationResultApplyConfiguration {\n\tb.AdminAccess = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha3/deviceselector.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha3\n\n// DeviceSelectorApplyConfiguration represents a declarative configuration of the DeviceSelector type for use\n// with apply.\ntype DeviceSelectorApplyConfiguration struct {\n\tCEL *CELDeviceSelectorApplyConfiguration `json:\"cel,omitempty\"`\n}\n\n// DeviceSelectorApplyConfiguration constructs a declarative configuration of the DeviceSelector type for use with\n// apply.\nfunc DeviceSelector() *DeviceSelectorApplyConfiguration {\n\treturn &DeviceSelectorApplyConfiguration{}\n}\n\n// WithCEL sets the CEL field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CEL field is set to the value of the last call.\nfunc (b *DeviceSelectorApplyConfiguration) WithCEL(value *CELDeviceSelectorApplyConfiguration) *DeviceSelectorApplyConfiguration {\n\tb.CEL = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha3/networkdevicedata.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha3\n\n// NetworkDeviceDataApplyConfiguration represents a declarative configuration of the NetworkDeviceData type for use\n// with apply.\ntype NetworkDeviceDataApplyConfiguration struct {\n\tInterfaceName   *string  `json:\"interfaceName,omitempty\"`\n\tIPs             []string `json:\"ips,omitempty\"`\n\tHardwareAddress *string  `json:\"hardwareAddress,omitempty\"`\n}\n\n// NetworkDeviceDataApplyConfiguration constructs a declarative configuration of the NetworkDeviceData type for use with\n// apply.\nfunc NetworkDeviceData() *NetworkDeviceDataApplyConfiguration {\n\treturn &NetworkDeviceDataApplyConfiguration{}\n}\n\n// WithInterfaceName sets the InterfaceName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the InterfaceName field is set to the value of the last call.\nfunc (b *NetworkDeviceDataApplyConfiguration) WithInterfaceName(value string) *NetworkDeviceDataApplyConfiguration {\n\tb.InterfaceName = &value\n\treturn b\n}\n\n// WithIPs adds the given value to the IPs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the IPs field.\nfunc (b *NetworkDeviceDataApplyConfiguration) WithIPs(values ...string) *NetworkDeviceDataApplyConfiguration {\n\tfor i := range values {\n\t\tb.IPs = append(b.IPs, values[i])\n\t}\n\treturn b\n}\n\n// WithHardwareAddress sets the HardwareAddress field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HardwareAddress field is set to the value of the last call.\nfunc (b *NetworkDeviceDataApplyConfiguration) WithHardwareAddress(value string) *NetworkDeviceDataApplyConfiguration {\n\tb.HardwareAddress = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha3/opaquedeviceconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha3\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// OpaqueDeviceConfigurationApplyConfiguration represents a declarative configuration of the OpaqueDeviceConfiguration type for use\n// with apply.\ntype OpaqueDeviceConfigurationApplyConfiguration struct {\n\tDriver     *string               `json:\"driver,omitempty\"`\n\tParameters *runtime.RawExtension `json:\"parameters,omitempty\"`\n}\n\n// OpaqueDeviceConfigurationApplyConfiguration constructs a declarative configuration of the OpaqueDeviceConfiguration type for use with\n// apply.\nfunc OpaqueDeviceConfiguration() *OpaqueDeviceConfigurationApplyConfiguration {\n\treturn &OpaqueDeviceConfigurationApplyConfiguration{}\n}\n\n// WithDriver sets the Driver field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Driver field is set to the value of the last call.\nfunc (b *OpaqueDeviceConfigurationApplyConfiguration) WithDriver(value string) *OpaqueDeviceConfigurationApplyConfiguration {\n\tb.Driver = &value\n\treturn b\n}\n\n// WithParameters sets the Parameters field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Parameters field is set to the value of the last call.\nfunc (b *OpaqueDeviceConfigurationApplyConfiguration) WithParameters(value runtime.RawExtension) *OpaqueDeviceConfigurationApplyConfiguration {\n\tb.Parameters = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha3/resourceclaim.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha3\n\nimport (\n\tresourcev1alpha3 \"k8s.io/api/resource/v1alpha3\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ResourceClaimApplyConfiguration represents a declarative configuration of the ResourceClaim type for use\n// with apply.\ntype ResourceClaimApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *ResourceClaimSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *ResourceClaimStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// ResourceClaim constructs a declarative configuration of the ResourceClaim type for use with\n// apply.\nfunc ResourceClaim(name, namespace string) *ResourceClaimApplyConfiguration {\n\tb := &ResourceClaimApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"ResourceClaim\")\n\tb.WithAPIVersion(\"resource.k8s.io/v1alpha3\")\n\treturn b\n}\n\n// ExtractResourceClaim extracts the applied configuration owned by fieldManager from\n// resourceClaim. If no managedFields are found in resourceClaim for fieldManager, a\n// ResourceClaimApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// resourceClaim must be a unmodified ResourceClaim API object that was retrieved from the Kubernetes API.\n// ExtractResourceClaim provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractResourceClaim(resourceClaim *resourcev1alpha3.ResourceClaim, fieldManager string) (*ResourceClaimApplyConfiguration, error) {\n\treturn extractResourceClaim(resourceClaim, fieldManager, \"\")\n}\n\n// ExtractResourceClaimStatus is the same as ExtractResourceClaim except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractResourceClaimStatus(resourceClaim *resourcev1alpha3.ResourceClaim, fieldManager string) (*ResourceClaimApplyConfiguration, error) {\n\treturn extractResourceClaim(resourceClaim, fieldManager, \"status\")\n}\n\nfunc extractResourceClaim(resourceClaim *resourcev1alpha3.ResourceClaim, fieldManager string, subresource string) (*ResourceClaimApplyConfiguration, error) {\n\tb := &ResourceClaimApplyConfiguration{}\n\terr := managedfields.ExtractInto(resourceClaim, internal.Parser().Type(\"io.k8s.api.resource.v1alpha3.ResourceClaim\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(resourceClaim.Name)\n\tb.WithNamespace(resourceClaim.Namespace)\n\n\tb.WithKind(\"ResourceClaim\")\n\tb.WithAPIVersion(\"resource.k8s.io/v1alpha3\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ResourceClaimApplyConfiguration) WithKind(value string) *ResourceClaimApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ResourceClaimApplyConfiguration) WithAPIVersion(value string) *ResourceClaimApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ResourceClaimApplyConfiguration) WithName(value string) *ResourceClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ResourceClaimApplyConfiguration) WithGenerateName(value string) *ResourceClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ResourceClaimApplyConfiguration) WithNamespace(value string) *ResourceClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ResourceClaimApplyConfiguration) WithUID(value types.UID) *ResourceClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ResourceClaimApplyConfiguration) WithResourceVersion(value string) *ResourceClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ResourceClaimApplyConfiguration) WithGeneration(value int64) *ResourceClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ResourceClaimApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ResourceClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ResourceClaimApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ResourceClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ResourceClaimApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ResourceClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ResourceClaimApplyConfiguration) WithLabels(entries map[string]string) *ResourceClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ResourceClaimApplyConfiguration) WithAnnotations(entries map[string]string) *ResourceClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ResourceClaimApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ResourceClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ResourceClaimApplyConfiguration) WithFinalizers(values ...string) *ResourceClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ResourceClaimApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *ResourceClaimApplyConfiguration) WithSpec(value *ResourceClaimSpecApplyConfiguration) *ResourceClaimApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *ResourceClaimApplyConfiguration) WithStatus(value *ResourceClaimStatusApplyConfiguration) *ResourceClaimApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *ResourceClaimApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha3/resourceclaimconsumerreference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha3\n\nimport (\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n)\n\n// ResourceClaimConsumerReferenceApplyConfiguration represents a declarative configuration of the ResourceClaimConsumerReference type for use\n// with apply.\ntype ResourceClaimConsumerReferenceApplyConfiguration struct {\n\tAPIGroup *string    `json:\"apiGroup,omitempty\"`\n\tResource *string    `json:\"resource,omitempty\"`\n\tName     *string    `json:\"name,omitempty\"`\n\tUID      *types.UID `json:\"uid,omitempty\"`\n}\n\n// ResourceClaimConsumerReferenceApplyConfiguration constructs a declarative configuration of the ResourceClaimConsumerReference type for use with\n// apply.\nfunc ResourceClaimConsumerReference() *ResourceClaimConsumerReferenceApplyConfiguration {\n\treturn &ResourceClaimConsumerReferenceApplyConfiguration{}\n}\n\n// WithAPIGroup sets the APIGroup field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIGroup field is set to the value of the last call.\nfunc (b *ResourceClaimConsumerReferenceApplyConfiguration) WithAPIGroup(value string) *ResourceClaimConsumerReferenceApplyConfiguration {\n\tb.APIGroup = &value\n\treturn b\n}\n\n// WithResource sets the Resource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Resource field is set to the value of the last call.\nfunc (b *ResourceClaimConsumerReferenceApplyConfiguration) WithResource(value string) *ResourceClaimConsumerReferenceApplyConfiguration {\n\tb.Resource = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ResourceClaimConsumerReferenceApplyConfiguration) WithName(value string) *ResourceClaimConsumerReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ResourceClaimConsumerReferenceApplyConfiguration) WithUID(value types.UID) *ResourceClaimConsumerReferenceApplyConfiguration {\n\tb.UID = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha3/resourceclaimspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha3\n\n// ResourceClaimSpecApplyConfiguration represents a declarative configuration of the ResourceClaimSpec type for use\n// with apply.\ntype ResourceClaimSpecApplyConfiguration struct {\n\tDevices *DeviceClaimApplyConfiguration `json:\"devices,omitempty\"`\n}\n\n// ResourceClaimSpecApplyConfiguration constructs a declarative configuration of the ResourceClaimSpec type for use with\n// apply.\nfunc ResourceClaimSpec() *ResourceClaimSpecApplyConfiguration {\n\treturn &ResourceClaimSpecApplyConfiguration{}\n}\n\n// WithDevices sets the Devices field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Devices field is set to the value of the last call.\nfunc (b *ResourceClaimSpecApplyConfiguration) WithDevices(value *DeviceClaimApplyConfiguration) *ResourceClaimSpecApplyConfiguration {\n\tb.Devices = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha3/resourceclaimstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha3\n\n// ResourceClaimStatusApplyConfiguration represents a declarative configuration of the ResourceClaimStatus type for use\n// with apply.\ntype ResourceClaimStatusApplyConfiguration struct {\n\tAllocation  *AllocationResultApplyConfiguration                `json:\"allocation,omitempty\"`\n\tReservedFor []ResourceClaimConsumerReferenceApplyConfiguration `json:\"reservedFor,omitempty\"`\n\tDevices     []AllocatedDeviceStatusApplyConfiguration          `json:\"devices,omitempty\"`\n}\n\n// ResourceClaimStatusApplyConfiguration constructs a declarative configuration of the ResourceClaimStatus type for use with\n// apply.\nfunc ResourceClaimStatus() *ResourceClaimStatusApplyConfiguration {\n\treturn &ResourceClaimStatusApplyConfiguration{}\n}\n\n// WithAllocation sets the Allocation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Allocation field is set to the value of the last call.\nfunc (b *ResourceClaimStatusApplyConfiguration) WithAllocation(value *AllocationResultApplyConfiguration) *ResourceClaimStatusApplyConfiguration {\n\tb.Allocation = value\n\treturn b\n}\n\n// WithReservedFor adds the given value to the ReservedFor field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ReservedFor field.\nfunc (b *ResourceClaimStatusApplyConfiguration) WithReservedFor(values ...*ResourceClaimConsumerReferenceApplyConfiguration) *ResourceClaimStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithReservedFor\")\n\t\t}\n\t\tb.ReservedFor = append(b.ReservedFor, *values[i])\n\t}\n\treturn b\n}\n\n// WithDevices adds the given value to the Devices field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Devices field.\nfunc (b *ResourceClaimStatusApplyConfiguration) WithDevices(values ...*AllocatedDeviceStatusApplyConfiguration) *ResourceClaimStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithDevices\")\n\t\t}\n\t\tb.Devices = append(b.Devices, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha3/resourceclaimtemplate.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha3\n\nimport (\n\tresourcev1alpha3 \"k8s.io/api/resource/v1alpha3\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ResourceClaimTemplateApplyConfiguration represents a declarative configuration of the ResourceClaimTemplate type for use\n// with apply.\ntype ResourceClaimTemplateApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *ResourceClaimTemplateSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// ResourceClaimTemplate constructs a declarative configuration of the ResourceClaimTemplate type for use with\n// apply.\nfunc ResourceClaimTemplate(name, namespace string) *ResourceClaimTemplateApplyConfiguration {\n\tb := &ResourceClaimTemplateApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"ResourceClaimTemplate\")\n\tb.WithAPIVersion(\"resource.k8s.io/v1alpha3\")\n\treturn b\n}\n\n// ExtractResourceClaimTemplate extracts the applied configuration owned by fieldManager from\n// resourceClaimTemplate. If no managedFields are found in resourceClaimTemplate for fieldManager, a\n// ResourceClaimTemplateApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// resourceClaimTemplate must be a unmodified ResourceClaimTemplate API object that was retrieved from the Kubernetes API.\n// ExtractResourceClaimTemplate provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractResourceClaimTemplate(resourceClaimTemplate *resourcev1alpha3.ResourceClaimTemplate, fieldManager string) (*ResourceClaimTemplateApplyConfiguration, error) {\n\treturn extractResourceClaimTemplate(resourceClaimTemplate, fieldManager, \"\")\n}\n\n// ExtractResourceClaimTemplateStatus is the same as ExtractResourceClaimTemplate except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractResourceClaimTemplateStatus(resourceClaimTemplate *resourcev1alpha3.ResourceClaimTemplate, fieldManager string) (*ResourceClaimTemplateApplyConfiguration, error) {\n\treturn extractResourceClaimTemplate(resourceClaimTemplate, fieldManager, \"status\")\n}\n\nfunc extractResourceClaimTemplate(resourceClaimTemplate *resourcev1alpha3.ResourceClaimTemplate, fieldManager string, subresource string) (*ResourceClaimTemplateApplyConfiguration, error) {\n\tb := &ResourceClaimTemplateApplyConfiguration{}\n\terr := managedfields.ExtractInto(resourceClaimTemplate, internal.Parser().Type(\"io.k8s.api.resource.v1alpha3.ResourceClaimTemplate\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(resourceClaimTemplate.Name)\n\tb.WithNamespace(resourceClaimTemplate.Namespace)\n\n\tb.WithKind(\"ResourceClaimTemplate\")\n\tb.WithAPIVersion(\"resource.k8s.io/v1alpha3\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithKind(value string) *ResourceClaimTemplateApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithAPIVersion(value string) *ResourceClaimTemplateApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithName(value string) *ResourceClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithGenerateName(value string) *ResourceClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithNamespace(value string) *ResourceClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithUID(value types.UID) *ResourceClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithResourceVersion(value string) *ResourceClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithGeneration(value int64) *ResourceClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ResourceClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ResourceClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ResourceClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithLabels(entries map[string]string) *ResourceClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithAnnotations(entries map[string]string) *ResourceClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ResourceClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithFinalizers(values ...string) *ResourceClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ResourceClaimTemplateApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithSpec(value *ResourceClaimTemplateSpecApplyConfiguration) *ResourceClaimTemplateApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *ResourceClaimTemplateApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha3/resourceclaimtemplatespec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha3\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ResourceClaimTemplateSpecApplyConfiguration represents a declarative configuration of the ResourceClaimTemplateSpec type for use\n// with apply.\ntype ResourceClaimTemplateSpecApplyConfiguration struct {\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *ResourceClaimSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// ResourceClaimTemplateSpecApplyConfiguration constructs a declarative configuration of the ResourceClaimTemplateSpec type for use with\n// apply.\nfunc ResourceClaimTemplateSpec() *ResourceClaimTemplateSpecApplyConfiguration {\n\treturn &ResourceClaimTemplateSpecApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) WithName(value string) *ResourceClaimTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) WithGenerateName(value string) *ResourceClaimTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) WithNamespace(value string) *ResourceClaimTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) WithUID(value types.UID) *ResourceClaimTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) WithResourceVersion(value string) *ResourceClaimTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) WithGeneration(value int64) *ResourceClaimTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ResourceClaimTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ResourceClaimTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ResourceClaimTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) WithLabels(entries map[string]string) *ResourceClaimTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) WithAnnotations(entries map[string]string) *ResourceClaimTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ResourceClaimTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) WithFinalizers(values ...string) *ResourceClaimTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) WithSpec(value *ResourceClaimSpecApplyConfiguration) *ResourceClaimTemplateSpecApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha3/resourcepool.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha3\n\n// ResourcePoolApplyConfiguration represents a declarative configuration of the ResourcePool type for use\n// with apply.\ntype ResourcePoolApplyConfiguration struct {\n\tName               *string `json:\"name,omitempty\"`\n\tGeneration         *int64  `json:\"generation,omitempty\"`\n\tResourceSliceCount *int64  `json:\"resourceSliceCount,omitempty\"`\n}\n\n// ResourcePoolApplyConfiguration constructs a declarative configuration of the ResourcePool type for use with\n// apply.\nfunc ResourcePool() *ResourcePoolApplyConfiguration {\n\treturn &ResourcePoolApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ResourcePoolApplyConfiguration) WithName(value string) *ResourcePoolApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ResourcePoolApplyConfiguration) WithGeneration(value int64) *ResourcePoolApplyConfiguration {\n\tb.Generation = &value\n\treturn b\n}\n\n// WithResourceSliceCount sets the ResourceSliceCount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceSliceCount field is set to the value of the last call.\nfunc (b *ResourcePoolApplyConfiguration) WithResourceSliceCount(value int64) *ResourcePoolApplyConfiguration {\n\tb.ResourceSliceCount = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha3/resourceslice.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha3\n\nimport (\n\tresourcev1alpha3 \"k8s.io/api/resource/v1alpha3\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ResourceSliceApplyConfiguration represents a declarative configuration of the ResourceSlice type for use\n// with apply.\ntype ResourceSliceApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *ResourceSliceSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// ResourceSlice constructs a declarative configuration of the ResourceSlice type for use with\n// apply.\nfunc ResourceSlice(name string) *ResourceSliceApplyConfiguration {\n\tb := &ResourceSliceApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"ResourceSlice\")\n\tb.WithAPIVersion(\"resource.k8s.io/v1alpha3\")\n\treturn b\n}\n\n// ExtractResourceSlice extracts the applied configuration owned by fieldManager from\n// resourceSlice. If no managedFields are found in resourceSlice for fieldManager, a\n// ResourceSliceApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// resourceSlice must be a unmodified ResourceSlice API object that was retrieved from the Kubernetes API.\n// ExtractResourceSlice provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractResourceSlice(resourceSlice *resourcev1alpha3.ResourceSlice, fieldManager string) (*ResourceSliceApplyConfiguration, error) {\n\treturn extractResourceSlice(resourceSlice, fieldManager, \"\")\n}\n\n// ExtractResourceSliceStatus is the same as ExtractResourceSlice except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractResourceSliceStatus(resourceSlice *resourcev1alpha3.ResourceSlice, fieldManager string) (*ResourceSliceApplyConfiguration, error) {\n\treturn extractResourceSlice(resourceSlice, fieldManager, \"status\")\n}\n\nfunc extractResourceSlice(resourceSlice *resourcev1alpha3.ResourceSlice, fieldManager string, subresource string) (*ResourceSliceApplyConfiguration, error) {\n\tb := &ResourceSliceApplyConfiguration{}\n\terr := managedfields.ExtractInto(resourceSlice, internal.Parser().Type(\"io.k8s.api.resource.v1alpha3.ResourceSlice\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(resourceSlice.Name)\n\n\tb.WithKind(\"ResourceSlice\")\n\tb.WithAPIVersion(\"resource.k8s.io/v1alpha3\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ResourceSliceApplyConfiguration) WithKind(value string) *ResourceSliceApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ResourceSliceApplyConfiguration) WithAPIVersion(value string) *ResourceSliceApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ResourceSliceApplyConfiguration) WithName(value string) *ResourceSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ResourceSliceApplyConfiguration) WithGenerateName(value string) *ResourceSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ResourceSliceApplyConfiguration) WithNamespace(value string) *ResourceSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ResourceSliceApplyConfiguration) WithUID(value types.UID) *ResourceSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ResourceSliceApplyConfiguration) WithResourceVersion(value string) *ResourceSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ResourceSliceApplyConfiguration) WithGeneration(value int64) *ResourceSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ResourceSliceApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ResourceSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ResourceSliceApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ResourceSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ResourceSliceApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ResourceSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ResourceSliceApplyConfiguration) WithLabels(entries map[string]string) *ResourceSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ResourceSliceApplyConfiguration) WithAnnotations(entries map[string]string) *ResourceSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ResourceSliceApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ResourceSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ResourceSliceApplyConfiguration) WithFinalizers(values ...string) *ResourceSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ResourceSliceApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *ResourceSliceApplyConfiguration) WithSpec(value *ResourceSliceSpecApplyConfiguration) *ResourceSliceApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *ResourceSliceApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha3/resourceslicespec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha3\n\nimport (\n\tv1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n)\n\n// ResourceSliceSpecApplyConfiguration represents a declarative configuration of the ResourceSliceSpec type for use\n// with apply.\ntype ResourceSliceSpecApplyConfiguration struct {\n\tDriver       *string                            `json:\"driver,omitempty\"`\n\tPool         *ResourcePoolApplyConfiguration    `json:\"pool,omitempty\"`\n\tNodeName     *string                            `json:\"nodeName,omitempty\"`\n\tNodeSelector *v1.NodeSelectorApplyConfiguration `json:\"nodeSelector,omitempty\"`\n\tAllNodes     *bool                              `json:\"allNodes,omitempty\"`\n\tDevices      []DeviceApplyConfiguration         `json:\"devices,omitempty\"`\n}\n\n// ResourceSliceSpecApplyConfiguration constructs a declarative configuration of the ResourceSliceSpec type for use with\n// apply.\nfunc ResourceSliceSpec() *ResourceSliceSpecApplyConfiguration {\n\treturn &ResourceSliceSpecApplyConfiguration{}\n}\n\n// WithDriver sets the Driver field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Driver field is set to the value of the last call.\nfunc (b *ResourceSliceSpecApplyConfiguration) WithDriver(value string) *ResourceSliceSpecApplyConfiguration {\n\tb.Driver = &value\n\treturn b\n}\n\n// WithPool sets the Pool field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Pool field is set to the value of the last call.\nfunc (b *ResourceSliceSpecApplyConfiguration) WithPool(value *ResourcePoolApplyConfiguration) *ResourceSliceSpecApplyConfiguration {\n\tb.Pool = value\n\treturn b\n}\n\n// WithNodeName sets the NodeName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeName field is set to the value of the last call.\nfunc (b *ResourceSliceSpecApplyConfiguration) WithNodeName(value string) *ResourceSliceSpecApplyConfiguration {\n\tb.NodeName = &value\n\treturn b\n}\n\n// WithNodeSelector sets the NodeSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeSelector field is set to the value of the last call.\nfunc (b *ResourceSliceSpecApplyConfiguration) WithNodeSelector(value *v1.NodeSelectorApplyConfiguration) *ResourceSliceSpecApplyConfiguration {\n\tb.NodeSelector = value\n\treturn b\n}\n\n// WithAllNodes sets the AllNodes field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AllNodes field is set to the value of the last call.\nfunc (b *ResourceSliceSpecApplyConfiguration) WithAllNodes(value bool) *ResourceSliceSpecApplyConfiguration {\n\tb.AllNodes = &value\n\treturn b\n}\n\n// WithDevices adds the given value to the Devices field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Devices field.\nfunc (b *ResourceSliceSpecApplyConfiguration) WithDevices(values ...*DeviceApplyConfiguration) *ResourceSliceSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithDevices\")\n\t\t}\n\t\tb.Devices = append(b.Devices, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1beta1/allocateddevicestatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// AllocatedDeviceStatusApplyConfiguration represents a declarative configuration of the AllocatedDeviceStatus type for use\n// with apply.\ntype AllocatedDeviceStatusApplyConfiguration struct {\n\tDriver      *string                              `json:\"driver,omitempty\"`\n\tPool        *string                              `json:\"pool,omitempty\"`\n\tDevice      *string                              `json:\"device,omitempty\"`\n\tConditions  []v1.ConditionApplyConfiguration     `json:\"conditions,omitempty\"`\n\tData        *runtime.RawExtension                `json:\"data,omitempty\"`\n\tNetworkData *NetworkDeviceDataApplyConfiguration `json:\"networkData,omitempty\"`\n}\n\n// AllocatedDeviceStatusApplyConfiguration constructs a declarative configuration of the AllocatedDeviceStatus type for use with\n// apply.\nfunc AllocatedDeviceStatus() *AllocatedDeviceStatusApplyConfiguration {\n\treturn &AllocatedDeviceStatusApplyConfiguration{}\n}\n\n// WithDriver sets the Driver field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Driver field is set to the value of the last call.\nfunc (b *AllocatedDeviceStatusApplyConfiguration) WithDriver(value string) *AllocatedDeviceStatusApplyConfiguration {\n\tb.Driver = &value\n\treturn b\n}\n\n// WithPool sets the Pool field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Pool field is set to the value of the last call.\nfunc (b *AllocatedDeviceStatusApplyConfiguration) WithPool(value string) *AllocatedDeviceStatusApplyConfiguration {\n\tb.Pool = &value\n\treturn b\n}\n\n// WithDevice sets the Device field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Device field is set to the value of the last call.\nfunc (b *AllocatedDeviceStatusApplyConfiguration) WithDevice(value string) *AllocatedDeviceStatusApplyConfiguration {\n\tb.Device = &value\n\treturn b\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *AllocatedDeviceStatusApplyConfiguration) WithConditions(values ...*v1.ConditionApplyConfiguration) *AllocatedDeviceStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n\n// WithData sets the Data field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Data field is set to the value of the last call.\nfunc (b *AllocatedDeviceStatusApplyConfiguration) WithData(value runtime.RawExtension) *AllocatedDeviceStatusApplyConfiguration {\n\tb.Data = &value\n\treturn b\n}\n\n// WithNetworkData sets the NetworkData field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NetworkData field is set to the value of the last call.\nfunc (b *AllocatedDeviceStatusApplyConfiguration) WithNetworkData(value *NetworkDeviceDataApplyConfiguration) *AllocatedDeviceStatusApplyConfiguration {\n\tb.NetworkData = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1beta1/allocationresult.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n)\n\n// AllocationResultApplyConfiguration represents a declarative configuration of the AllocationResult type for use\n// with apply.\ntype AllocationResultApplyConfiguration struct {\n\tDevices      *DeviceAllocationResultApplyConfiguration `json:\"devices,omitempty\"`\n\tNodeSelector *v1.NodeSelectorApplyConfiguration        `json:\"nodeSelector,omitempty\"`\n}\n\n// AllocationResultApplyConfiguration constructs a declarative configuration of the AllocationResult type for use with\n// apply.\nfunc AllocationResult() *AllocationResultApplyConfiguration {\n\treturn &AllocationResultApplyConfiguration{}\n}\n\n// WithDevices sets the Devices field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Devices field is set to the value of the last call.\nfunc (b *AllocationResultApplyConfiguration) WithDevices(value *DeviceAllocationResultApplyConfiguration) *AllocationResultApplyConfiguration {\n\tb.Devices = value\n\treturn b\n}\n\n// WithNodeSelector sets the NodeSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeSelector field is set to the value of the last call.\nfunc (b *AllocationResultApplyConfiguration) WithNodeSelector(value *v1.NodeSelectorApplyConfiguration) *AllocationResultApplyConfiguration {\n\tb.NodeSelector = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1beta1/basicdevice.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tresourcev1beta1 \"k8s.io/api/resource/v1beta1\"\n)\n\n// BasicDeviceApplyConfiguration represents a declarative configuration of the BasicDevice type for use\n// with apply.\ntype BasicDeviceApplyConfiguration struct {\n\tAttributes map[resourcev1beta1.QualifiedName]DeviceAttributeApplyConfiguration `json:\"attributes,omitempty\"`\n\tCapacity   map[resourcev1beta1.QualifiedName]DeviceCapacityApplyConfiguration  `json:\"capacity,omitempty\"`\n}\n\n// BasicDeviceApplyConfiguration constructs a declarative configuration of the BasicDevice type for use with\n// apply.\nfunc BasicDevice() *BasicDeviceApplyConfiguration {\n\treturn &BasicDeviceApplyConfiguration{}\n}\n\n// WithAttributes puts the entries into the Attributes field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Attributes field,\n// overwriting an existing map entries in Attributes field with the same key.\nfunc (b *BasicDeviceApplyConfiguration) WithAttributes(entries map[resourcev1beta1.QualifiedName]DeviceAttributeApplyConfiguration) *BasicDeviceApplyConfiguration {\n\tif b.Attributes == nil && len(entries) > 0 {\n\t\tb.Attributes = make(map[resourcev1beta1.QualifiedName]DeviceAttributeApplyConfiguration, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Attributes[k] = v\n\t}\n\treturn b\n}\n\n// WithCapacity puts the entries into the Capacity field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Capacity field,\n// overwriting an existing map entries in Capacity field with the same key.\nfunc (b *BasicDeviceApplyConfiguration) WithCapacity(entries map[resourcev1beta1.QualifiedName]DeviceCapacityApplyConfiguration) *BasicDeviceApplyConfiguration {\n\tif b.Capacity == nil && len(entries) > 0 {\n\t\tb.Capacity = make(map[resourcev1beta1.QualifiedName]DeviceCapacityApplyConfiguration, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Capacity[k] = v\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1beta1/celdeviceselector.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// CELDeviceSelectorApplyConfiguration represents a declarative configuration of the CELDeviceSelector type for use\n// with apply.\ntype CELDeviceSelectorApplyConfiguration struct {\n\tExpression *string `json:\"expression,omitempty\"`\n}\n\n// CELDeviceSelectorApplyConfiguration constructs a declarative configuration of the CELDeviceSelector type for use with\n// apply.\nfunc CELDeviceSelector() *CELDeviceSelectorApplyConfiguration {\n\treturn &CELDeviceSelectorApplyConfiguration{}\n}\n\n// WithExpression sets the Expression field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Expression field is set to the value of the last call.\nfunc (b *CELDeviceSelectorApplyConfiguration) WithExpression(value string) *CELDeviceSelectorApplyConfiguration {\n\tb.Expression = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1beta1/device.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// DeviceApplyConfiguration represents a declarative configuration of the Device type for use\n// with apply.\ntype DeviceApplyConfiguration struct {\n\tName  *string                        `json:\"name,omitempty\"`\n\tBasic *BasicDeviceApplyConfiguration `json:\"basic,omitempty\"`\n}\n\n// DeviceApplyConfiguration constructs a declarative configuration of the Device type for use with\n// apply.\nfunc Device() *DeviceApplyConfiguration {\n\treturn &DeviceApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *DeviceApplyConfiguration) WithName(value string) *DeviceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithBasic sets the Basic field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Basic field is set to the value of the last call.\nfunc (b *DeviceApplyConfiguration) WithBasic(value *BasicDeviceApplyConfiguration) *DeviceApplyConfiguration {\n\tb.Basic = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1beta1/deviceallocationconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tresourcev1beta1 \"k8s.io/api/resource/v1beta1\"\n)\n\n// DeviceAllocationConfigurationApplyConfiguration represents a declarative configuration of the DeviceAllocationConfiguration type for use\n// with apply.\ntype DeviceAllocationConfigurationApplyConfiguration struct {\n\tSource                                *resourcev1beta1.AllocationConfigSource `json:\"source,omitempty\"`\n\tRequests                              []string                                `json:\"requests,omitempty\"`\n\tDeviceConfigurationApplyConfiguration `json:\",inline\"`\n}\n\n// DeviceAllocationConfigurationApplyConfiguration constructs a declarative configuration of the DeviceAllocationConfiguration type for use with\n// apply.\nfunc DeviceAllocationConfiguration() *DeviceAllocationConfigurationApplyConfiguration {\n\treturn &DeviceAllocationConfigurationApplyConfiguration{}\n}\n\n// WithSource sets the Source field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Source field is set to the value of the last call.\nfunc (b *DeviceAllocationConfigurationApplyConfiguration) WithSource(value resourcev1beta1.AllocationConfigSource) *DeviceAllocationConfigurationApplyConfiguration {\n\tb.Source = &value\n\treturn b\n}\n\n// WithRequests adds the given value to the Requests field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Requests field.\nfunc (b *DeviceAllocationConfigurationApplyConfiguration) WithRequests(values ...string) *DeviceAllocationConfigurationApplyConfiguration {\n\tfor i := range values {\n\t\tb.Requests = append(b.Requests, values[i])\n\t}\n\treturn b\n}\n\n// WithOpaque sets the Opaque field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Opaque field is set to the value of the last call.\nfunc (b *DeviceAllocationConfigurationApplyConfiguration) WithOpaque(value *OpaqueDeviceConfigurationApplyConfiguration) *DeviceAllocationConfigurationApplyConfiguration {\n\tb.DeviceConfigurationApplyConfiguration.Opaque = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1beta1/deviceallocationresult.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// DeviceAllocationResultApplyConfiguration represents a declarative configuration of the DeviceAllocationResult type for use\n// with apply.\ntype DeviceAllocationResultApplyConfiguration struct {\n\tResults []DeviceRequestAllocationResultApplyConfiguration `json:\"results,omitempty\"`\n\tConfig  []DeviceAllocationConfigurationApplyConfiguration `json:\"config,omitempty\"`\n}\n\n// DeviceAllocationResultApplyConfiguration constructs a declarative configuration of the DeviceAllocationResult type for use with\n// apply.\nfunc DeviceAllocationResult() *DeviceAllocationResultApplyConfiguration {\n\treturn &DeviceAllocationResultApplyConfiguration{}\n}\n\n// WithResults adds the given value to the Results field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Results field.\nfunc (b *DeviceAllocationResultApplyConfiguration) WithResults(values ...*DeviceRequestAllocationResultApplyConfiguration) *DeviceAllocationResultApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithResults\")\n\t\t}\n\t\tb.Results = append(b.Results, *values[i])\n\t}\n\treturn b\n}\n\n// WithConfig adds the given value to the Config field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Config field.\nfunc (b *DeviceAllocationResultApplyConfiguration) WithConfig(values ...*DeviceAllocationConfigurationApplyConfiguration) *DeviceAllocationResultApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConfig\")\n\t\t}\n\t\tb.Config = append(b.Config, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1beta1/deviceattribute.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// DeviceAttributeApplyConfiguration represents a declarative configuration of the DeviceAttribute type for use\n// with apply.\ntype DeviceAttributeApplyConfiguration struct {\n\tIntValue     *int64  `json:\"int,omitempty\"`\n\tBoolValue    *bool   `json:\"bool,omitempty\"`\n\tStringValue  *string `json:\"string,omitempty\"`\n\tVersionValue *string `json:\"version,omitempty\"`\n}\n\n// DeviceAttributeApplyConfiguration constructs a declarative configuration of the DeviceAttribute type for use with\n// apply.\nfunc DeviceAttribute() *DeviceAttributeApplyConfiguration {\n\treturn &DeviceAttributeApplyConfiguration{}\n}\n\n// WithIntValue sets the IntValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the IntValue field is set to the value of the last call.\nfunc (b *DeviceAttributeApplyConfiguration) WithIntValue(value int64) *DeviceAttributeApplyConfiguration {\n\tb.IntValue = &value\n\treturn b\n}\n\n// WithBoolValue sets the BoolValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the BoolValue field is set to the value of the last call.\nfunc (b *DeviceAttributeApplyConfiguration) WithBoolValue(value bool) *DeviceAttributeApplyConfiguration {\n\tb.BoolValue = &value\n\treturn b\n}\n\n// WithStringValue sets the StringValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StringValue field is set to the value of the last call.\nfunc (b *DeviceAttributeApplyConfiguration) WithStringValue(value string) *DeviceAttributeApplyConfiguration {\n\tb.StringValue = &value\n\treturn b\n}\n\n// WithVersionValue sets the VersionValue field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VersionValue field is set to the value of the last call.\nfunc (b *DeviceAttributeApplyConfiguration) WithVersionValue(value string) *DeviceAttributeApplyConfiguration {\n\tb.VersionValue = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1beta1/devicecapacity.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n)\n\n// DeviceCapacityApplyConfiguration represents a declarative configuration of the DeviceCapacity type for use\n// with apply.\ntype DeviceCapacityApplyConfiguration struct {\n\tValue *resource.Quantity `json:\"value,omitempty\"`\n}\n\n// DeviceCapacityApplyConfiguration constructs a declarative configuration of the DeviceCapacity type for use with\n// apply.\nfunc DeviceCapacity() *DeviceCapacityApplyConfiguration {\n\treturn &DeviceCapacityApplyConfiguration{}\n}\n\n// WithValue sets the Value field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Value field is set to the value of the last call.\nfunc (b *DeviceCapacityApplyConfiguration) WithValue(value resource.Quantity) *DeviceCapacityApplyConfiguration {\n\tb.Value = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1beta1/deviceclaim.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// DeviceClaimApplyConfiguration represents a declarative configuration of the DeviceClaim type for use\n// with apply.\ntype DeviceClaimApplyConfiguration struct {\n\tRequests    []DeviceRequestApplyConfiguration            `json:\"requests,omitempty\"`\n\tConstraints []DeviceConstraintApplyConfiguration         `json:\"constraints,omitempty\"`\n\tConfig      []DeviceClaimConfigurationApplyConfiguration `json:\"config,omitempty\"`\n}\n\n// DeviceClaimApplyConfiguration constructs a declarative configuration of the DeviceClaim type for use with\n// apply.\nfunc DeviceClaim() *DeviceClaimApplyConfiguration {\n\treturn &DeviceClaimApplyConfiguration{}\n}\n\n// WithRequests adds the given value to the Requests field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Requests field.\nfunc (b *DeviceClaimApplyConfiguration) WithRequests(values ...*DeviceRequestApplyConfiguration) *DeviceClaimApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithRequests\")\n\t\t}\n\t\tb.Requests = append(b.Requests, *values[i])\n\t}\n\treturn b\n}\n\n// WithConstraints adds the given value to the Constraints field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Constraints field.\nfunc (b *DeviceClaimApplyConfiguration) WithConstraints(values ...*DeviceConstraintApplyConfiguration) *DeviceClaimApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConstraints\")\n\t\t}\n\t\tb.Constraints = append(b.Constraints, *values[i])\n\t}\n\treturn b\n}\n\n// WithConfig adds the given value to the Config field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Config field.\nfunc (b *DeviceClaimApplyConfiguration) WithConfig(values ...*DeviceClaimConfigurationApplyConfiguration) *DeviceClaimApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConfig\")\n\t\t}\n\t\tb.Config = append(b.Config, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1beta1/deviceclaimconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// DeviceClaimConfigurationApplyConfiguration represents a declarative configuration of the DeviceClaimConfiguration type for use\n// with apply.\ntype DeviceClaimConfigurationApplyConfiguration struct {\n\tRequests                              []string `json:\"requests,omitempty\"`\n\tDeviceConfigurationApplyConfiguration `json:\",inline\"`\n}\n\n// DeviceClaimConfigurationApplyConfiguration constructs a declarative configuration of the DeviceClaimConfiguration type for use with\n// apply.\nfunc DeviceClaimConfiguration() *DeviceClaimConfigurationApplyConfiguration {\n\treturn &DeviceClaimConfigurationApplyConfiguration{}\n}\n\n// WithRequests adds the given value to the Requests field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Requests field.\nfunc (b *DeviceClaimConfigurationApplyConfiguration) WithRequests(values ...string) *DeviceClaimConfigurationApplyConfiguration {\n\tfor i := range values {\n\t\tb.Requests = append(b.Requests, values[i])\n\t}\n\treturn b\n}\n\n// WithOpaque sets the Opaque field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Opaque field is set to the value of the last call.\nfunc (b *DeviceClaimConfigurationApplyConfiguration) WithOpaque(value *OpaqueDeviceConfigurationApplyConfiguration) *DeviceClaimConfigurationApplyConfiguration {\n\tb.DeviceConfigurationApplyConfiguration.Opaque = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1beta1/deviceclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tresourcev1beta1 \"k8s.io/api/resource/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// DeviceClassApplyConfiguration represents a declarative configuration of the DeviceClass type for use\n// with apply.\ntype DeviceClassApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *DeviceClassSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// DeviceClass constructs a declarative configuration of the DeviceClass type for use with\n// apply.\nfunc DeviceClass(name string) *DeviceClassApplyConfiguration {\n\tb := &DeviceClassApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"DeviceClass\")\n\tb.WithAPIVersion(\"resource.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractDeviceClass extracts the applied configuration owned by fieldManager from\n// deviceClass. If no managedFields are found in deviceClass for fieldManager, a\n// DeviceClassApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// deviceClass must be a unmodified DeviceClass API object that was retrieved from the Kubernetes API.\n// ExtractDeviceClass provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractDeviceClass(deviceClass *resourcev1beta1.DeviceClass, fieldManager string) (*DeviceClassApplyConfiguration, error) {\n\treturn extractDeviceClass(deviceClass, fieldManager, \"\")\n}\n\n// ExtractDeviceClassStatus is the same as ExtractDeviceClass except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractDeviceClassStatus(deviceClass *resourcev1beta1.DeviceClass, fieldManager string) (*DeviceClassApplyConfiguration, error) {\n\treturn extractDeviceClass(deviceClass, fieldManager, \"status\")\n}\n\nfunc extractDeviceClass(deviceClass *resourcev1beta1.DeviceClass, fieldManager string, subresource string) (*DeviceClassApplyConfiguration, error) {\n\tb := &DeviceClassApplyConfiguration{}\n\terr := managedfields.ExtractInto(deviceClass, internal.Parser().Type(\"io.k8s.api.resource.v1beta1.DeviceClass\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(deviceClass.Name)\n\n\tb.WithKind(\"DeviceClass\")\n\tb.WithAPIVersion(\"resource.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *DeviceClassApplyConfiguration) WithKind(value string) *DeviceClassApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *DeviceClassApplyConfiguration) WithAPIVersion(value string) *DeviceClassApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *DeviceClassApplyConfiguration) WithName(value string) *DeviceClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *DeviceClassApplyConfiguration) WithGenerateName(value string) *DeviceClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *DeviceClassApplyConfiguration) WithNamespace(value string) *DeviceClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *DeviceClassApplyConfiguration) WithUID(value types.UID) *DeviceClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *DeviceClassApplyConfiguration) WithResourceVersion(value string) *DeviceClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *DeviceClassApplyConfiguration) WithGeneration(value int64) *DeviceClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *DeviceClassApplyConfiguration) WithCreationTimestamp(value metav1.Time) *DeviceClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *DeviceClassApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *DeviceClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *DeviceClassApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *DeviceClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *DeviceClassApplyConfiguration) WithLabels(entries map[string]string) *DeviceClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *DeviceClassApplyConfiguration) WithAnnotations(entries map[string]string) *DeviceClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *DeviceClassApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *DeviceClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *DeviceClassApplyConfiguration) WithFinalizers(values ...string) *DeviceClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *DeviceClassApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *DeviceClassApplyConfiguration) WithSpec(value *DeviceClassSpecApplyConfiguration) *DeviceClassApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *DeviceClassApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1beta1/deviceclassconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// DeviceClassConfigurationApplyConfiguration represents a declarative configuration of the DeviceClassConfiguration type for use\n// with apply.\ntype DeviceClassConfigurationApplyConfiguration struct {\n\tDeviceConfigurationApplyConfiguration `json:\",inline\"`\n}\n\n// DeviceClassConfigurationApplyConfiguration constructs a declarative configuration of the DeviceClassConfiguration type for use with\n// apply.\nfunc DeviceClassConfiguration() *DeviceClassConfigurationApplyConfiguration {\n\treturn &DeviceClassConfigurationApplyConfiguration{}\n}\n\n// WithOpaque sets the Opaque field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Opaque field is set to the value of the last call.\nfunc (b *DeviceClassConfigurationApplyConfiguration) WithOpaque(value *OpaqueDeviceConfigurationApplyConfiguration) *DeviceClassConfigurationApplyConfiguration {\n\tb.DeviceConfigurationApplyConfiguration.Opaque = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1beta1/deviceclassspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// DeviceClassSpecApplyConfiguration represents a declarative configuration of the DeviceClassSpec type for use\n// with apply.\ntype DeviceClassSpecApplyConfiguration struct {\n\tSelectors []DeviceSelectorApplyConfiguration           `json:\"selectors,omitempty\"`\n\tConfig    []DeviceClassConfigurationApplyConfiguration `json:\"config,omitempty\"`\n}\n\n// DeviceClassSpecApplyConfiguration constructs a declarative configuration of the DeviceClassSpec type for use with\n// apply.\nfunc DeviceClassSpec() *DeviceClassSpecApplyConfiguration {\n\treturn &DeviceClassSpecApplyConfiguration{}\n}\n\n// WithSelectors adds the given value to the Selectors field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Selectors field.\nfunc (b *DeviceClassSpecApplyConfiguration) WithSelectors(values ...*DeviceSelectorApplyConfiguration) *DeviceClassSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithSelectors\")\n\t\t}\n\t\tb.Selectors = append(b.Selectors, *values[i])\n\t}\n\treturn b\n}\n\n// WithConfig adds the given value to the Config field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Config field.\nfunc (b *DeviceClassSpecApplyConfiguration) WithConfig(values ...*DeviceClassConfigurationApplyConfiguration) *DeviceClassSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConfig\")\n\t\t}\n\t\tb.Config = append(b.Config, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1beta1/deviceconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// DeviceConfigurationApplyConfiguration represents a declarative configuration of the DeviceConfiguration type for use\n// with apply.\ntype DeviceConfigurationApplyConfiguration struct {\n\tOpaque *OpaqueDeviceConfigurationApplyConfiguration `json:\"opaque,omitempty\"`\n}\n\n// DeviceConfigurationApplyConfiguration constructs a declarative configuration of the DeviceConfiguration type for use with\n// apply.\nfunc DeviceConfiguration() *DeviceConfigurationApplyConfiguration {\n\treturn &DeviceConfigurationApplyConfiguration{}\n}\n\n// WithOpaque sets the Opaque field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Opaque field is set to the value of the last call.\nfunc (b *DeviceConfigurationApplyConfiguration) WithOpaque(value *OpaqueDeviceConfigurationApplyConfiguration) *DeviceConfigurationApplyConfiguration {\n\tb.Opaque = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1beta1/deviceconstraint.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tresourcev1beta1 \"k8s.io/api/resource/v1beta1\"\n)\n\n// DeviceConstraintApplyConfiguration represents a declarative configuration of the DeviceConstraint type for use\n// with apply.\ntype DeviceConstraintApplyConfiguration struct {\n\tRequests       []string                            `json:\"requests,omitempty\"`\n\tMatchAttribute *resourcev1beta1.FullyQualifiedName `json:\"matchAttribute,omitempty\"`\n}\n\n// DeviceConstraintApplyConfiguration constructs a declarative configuration of the DeviceConstraint type for use with\n// apply.\nfunc DeviceConstraint() *DeviceConstraintApplyConfiguration {\n\treturn &DeviceConstraintApplyConfiguration{}\n}\n\n// WithRequests adds the given value to the Requests field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Requests field.\nfunc (b *DeviceConstraintApplyConfiguration) WithRequests(values ...string) *DeviceConstraintApplyConfiguration {\n\tfor i := range values {\n\t\tb.Requests = append(b.Requests, values[i])\n\t}\n\treturn b\n}\n\n// WithMatchAttribute sets the MatchAttribute field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MatchAttribute field is set to the value of the last call.\nfunc (b *DeviceConstraintApplyConfiguration) WithMatchAttribute(value resourcev1beta1.FullyQualifiedName) *DeviceConstraintApplyConfiguration {\n\tb.MatchAttribute = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1beta1/devicerequest.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tresourcev1beta1 \"k8s.io/api/resource/v1beta1\"\n)\n\n// DeviceRequestApplyConfiguration represents a declarative configuration of the DeviceRequest type for use\n// with apply.\ntype DeviceRequestApplyConfiguration struct {\n\tName            *string                               `json:\"name,omitempty\"`\n\tDeviceClassName *string                               `json:\"deviceClassName,omitempty\"`\n\tSelectors       []DeviceSelectorApplyConfiguration    `json:\"selectors,omitempty\"`\n\tAllocationMode  *resourcev1beta1.DeviceAllocationMode `json:\"allocationMode,omitempty\"`\n\tCount           *int64                                `json:\"count,omitempty\"`\n\tAdminAccess     *bool                                 `json:\"adminAccess,omitempty\"`\n}\n\n// DeviceRequestApplyConfiguration constructs a declarative configuration of the DeviceRequest type for use with\n// apply.\nfunc DeviceRequest() *DeviceRequestApplyConfiguration {\n\treturn &DeviceRequestApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *DeviceRequestApplyConfiguration) WithName(value string) *DeviceRequestApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithDeviceClassName sets the DeviceClassName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeviceClassName field is set to the value of the last call.\nfunc (b *DeviceRequestApplyConfiguration) WithDeviceClassName(value string) *DeviceRequestApplyConfiguration {\n\tb.DeviceClassName = &value\n\treturn b\n}\n\n// WithSelectors adds the given value to the Selectors field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Selectors field.\nfunc (b *DeviceRequestApplyConfiguration) WithSelectors(values ...*DeviceSelectorApplyConfiguration) *DeviceRequestApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithSelectors\")\n\t\t}\n\t\tb.Selectors = append(b.Selectors, *values[i])\n\t}\n\treturn b\n}\n\n// WithAllocationMode sets the AllocationMode field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AllocationMode field is set to the value of the last call.\nfunc (b *DeviceRequestApplyConfiguration) WithAllocationMode(value resourcev1beta1.DeviceAllocationMode) *DeviceRequestApplyConfiguration {\n\tb.AllocationMode = &value\n\treturn b\n}\n\n// WithCount sets the Count field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Count field is set to the value of the last call.\nfunc (b *DeviceRequestApplyConfiguration) WithCount(value int64) *DeviceRequestApplyConfiguration {\n\tb.Count = &value\n\treturn b\n}\n\n// WithAdminAccess sets the AdminAccess field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AdminAccess field is set to the value of the last call.\nfunc (b *DeviceRequestApplyConfiguration) WithAdminAccess(value bool) *DeviceRequestApplyConfiguration {\n\tb.AdminAccess = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1beta1/devicerequestallocationresult.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// DeviceRequestAllocationResultApplyConfiguration represents a declarative configuration of the DeviceRequestAllocationResult type for use\n// with apply.\ntype DeviceRequestAllocationResultApplyConfiguration struct {\n\tRequest     *string `json:\"request,omitempty\"`\n\tDriver      *string `json:\"driver,omitempty\"`\n\tPool        *string `json:\"pool,omitempty\"`\n\tDevice      *string `json:\"device,omitempty\"`\n\tAdminAccess *bool   `json:\"adminAccess,omitempty\"`\n}\n\n// DeviceRequestAllocationResultApplyConfiguration constructs a declarative configuration of the DeviceRequestAllocationResult type for use with\n// apply.\nfunc DeviceRequestAllocationResult() *DeviceRequestAllocationResultApplyConfiguration {\n\treturn &DeviceRequestAllocationResultApplyConfiguration{}\n}\n\n// WithRequest sets the Request field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Request field is set to the value of the last call.\nfunc (b *DeviceRequestAllocationResultApplyConfiguration) WithRequest(value string) *DeviceRequestAllocationResultApplyConfiguration {\n\tb.Request = &value\n\treturn b\n}\n\n// WithDriver sets the Driver field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Driver field is set to the value of the last call.\nfunc (b *DeviceRequestAllocationResultApplyConfiguration) WithDriver(value string) *DeviceRequestAllocationResultApplyConfiguration {\n\tb.Driver = &value\n\treturn b\n}\n\n// WithPool sets the Pool field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Pool field is set to the value of the last call.\nfunc (b *DeviceRequestAllocationResultApplyConfiguration) WithPool(value string) *DeviceRequestAllocationResultApplyConfiguration {\n\tb.Pool = &value\n\treturn b\n}\n\n// WithDevice sets the Device field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Device field is set to the value of the last call.\nfunc (b *DeviceRequestAllocationResultApplyConfiguration) WithDevice(value string) *DeviceRequestAllocationResultApplyConfiguration {\n\tb.Device = &value\n\treturn b\n}\n\n// WithAdminAccess sets the AdminAccess field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AdminAccess field is set to the value of the last call.\nfunc (b *DeviceRequestAllocationResultApplyConfiguration) WithAdminAccess(value bool) *DeviceRequestAllocationResultApplyConfiguration {\n\tb.AdminAccess = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1beta1/deviceselector.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// DeviceSelectorApplyConfiguration represents a declarative configuration of the DeviceSelector type for use\n// with apply.\ntype DeviceSelectorApplyConfiguration struct {\n\tCEL *CELDeviceSelectorApplyConfiguration `json:\"cel,omitempty\"`\n}\n\n// DeviceSelectorApplyConfiguration constructs a declarative configuration of the DeviceSelector type for use with\n// apply.\nfunc DeviceSelector() *DeviceSelectorApplyConfiguration {\n\treturn &DeviceSelectorApplyConfiguration{}\n}\n\n// WithCEL sets the CEL field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CEL field is set to the value of the last call.\nfunc (b *DeviceSelectorApplyConfiguration) WithCEL(value *CELDeviceSelectorApplyConfiguration) *DeviceSelectorApplyConfiguration {\n\tb.CEL = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1beta1/networkdevicedata.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// NetworkDeviceDataApplyConfiguration represents a declarative configuration of the NetworkDeviceData type for use\n// with apply.\ntype NetworkDeviceDataApplyConfiguration struct {\n\tInterfaceName   *string  `json:\"interfaceName,omitempty\"`\n\tIPs             []string `json:\"ips,omitempty\"`\n\tHardwareAddress *string  `json:\"hardwareAddress,omitempty\"`\n}\n\n// NetworkDeviceDataApplyConfiguration constructs a declarative configuration of the NetworkDeviceData type for use with\n// apply.\nfunc NetworkDeviceData() *NetworkDeviceDataApplyConfiguration {\n\treturn &NetworkDeviceDataApplyConfiguration{}\n}\n\n// WithInterfaceName sets the InterfaceName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the InterfaceName field is set to the value of the last call.\nfunc (b *NetworkDeviceDataApplyConfiguration) WithInterfaceName(value string) *NetworkDeviceDataApplyConfiguration {\n\tb.InterfaceName = &value\n\treturn b\n}\n\n// WithIPs adds the given value to the IPs field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the IPs field.\nfunc (b *NetworkDeviceDataApplyConfiguration) WithIPs(values ...string) *NetworkDeviceDataApplyConfiguration {\n\tfor i := range values {\n\t\tb.IPs = append(b.IPs, values[i])\n\t}\n\treturn b\n}\n\n// WithHardwareAddress sets the HardwareAddress field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the HardwareAddress field is set to the value of the last call.\nfunc (b *NetworkDeviceDataApplyConfiguration) WithHardwareAddress(value string) *NetworkDeviceDataApplyConfiguration {\n\tb.HardwareAddress = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1beta1/opaquedeviceconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// OpaqueDeviceConfigurationApplyConfiguration represents a declarative configuration of the OpaqueDeviceConfiguration type for use\n// with apply.\ntype OpaqueDeviceConfigurationApplyConfiguration struct {\n\tDriver     *string               `json:\"driver,omitempty\"`\n\tParameters *runtime.RawExtension `json:\"parameters,omitempty\"`\n}\n\n// OpaqueDeviceConfigurationApplyConfiguration constructs a declarative configuration of the OpaqueDeviceConfiguration type for use with\n// apply.\nfunc OpaqueDeviceConfiguration() *OpaqueDeviceConfigurationApplyConfiguration {\n\treturn &OpaqueDeviceConfigurationApplyConfiguration{}\n}\n\n// WithDriver sets the Driver field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Driver field is set to the value of the last call.\nfunc (b *OpaqueDeviceConfigurationApplyConfiguration) WithDriver(value string) *OpaqueDeviceConfigurationApplyConfiguration {\n\tb.Driver = &value\n\treturn b\n}\n\n// WithParameters sets the Parameters field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Parameters field is set to the value of the last call.\nfunc (b *OpaqueDeviceConfigurationApplyConfiguration) WithParameters(value runtime.RawExtension) *OpaqueDeviceConfigurationApplyConfiguration {\n\tb.Parameters = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1beta1/resourceclaim.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tresourcev1beta1 \"k8s.io/api/resource/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ResourceClaimApplyConfiguration represents a declarative configuration of the ResourceClaim type for use\n// with apply.\ntype ResourceClaimApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *ResourceClaimSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *ResourceClaimStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// ResourceClaim constructs a declarative configuration of the ResourceClaim type for use with\n// apply.\nfunc ResourceClaim(name, namespace string) *ResourceClaimApplyConfiguration {\n\tb := &ResourceClaimApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"ResourceClaim\")\n\tb.WithAPIVersion(\"resource.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractResourceClaim extracts the applied configuration owned by fieldManager from\n// resourceClaim. If no managedFields are found in resourceClaim for fieldManager, a\n// ResourceClaimApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// resourceClaim must be a unmodified ResourceClaim API object that was retrieved from the Kubernetes API.\n// ExtractResourceClaim provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractResourceClaim(resourceClaim *resourcev1beta1.ResourceClaim, fieldManager string) (*ResourceClaimApplyConfiguration, error) {\n\treturn extractResourceClaim(resourceClaim, fieldManager, \"\")\n}\n\n// ExtractResourceClaimStatus is the same as ExtractResourceClaim except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractResourceClaimStatus(resourceClaim *resourcev1beta1.ResourceClaim, fieldManager string) (*ResourceClaimApplyConfiguration, error) {\n\treturn extractResourceClaim(resourceClaim, fieldManager, \"status\")\n}\n\nfunc extractResourceClaim(resourceClaim *resourcev1beta1.ResourceClaim, fieldManager string, subresource string) (*ResourceClaimApplyConfiguration, error) {\n\tb := &ResourceClaimApplyConfiguration{}\n\terr := managedfields.ExtractInto(resourceClaim, internal.Parser().Type(\"io.k8s.api.resource.v1beta1.ResourceClaim\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(resourceClaim.Name)\n\tb.WithNamespace(resourceClaim.Namespace)\n\n\tb.WithKind(\"ResourceClaim\")\n\tb.WithAPIVersion(\"resource.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ResourceClaimApplyConfiguration) WithKind(value string) *ResourceClaimApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ResourceClaimApplyConfiguration) WithAPIVersion(value string) *ResourceClaimApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ResourceClaimApplyConfiguration) WithName(value string) *ResourceClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ResourceClaimApplyConfiguration) WithGenerateName(value string) *ResourceClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ResourceClaimApplyConfiguration) WithNamespace(value string) *ResourceClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ResourceClaimApplyConfiguration) WithUID(value types.UID) *ResourceClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ResourceClaimApplyConfiguration) WithResourceVersion(value string) *ResourceClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ResourceClaimApplyConfiguration) WithGeneration(value int64) *ResourceClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ResourceClaimApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ResourceClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ResourceClaimApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ResourceClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ResourceClaimApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ResourceClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ResourceClaimApplyConfiguration) WithLabels(entries map[string]string) *ResourceClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ResourceClaimApplyConfiguration) WithAnnotations(entries map[string]string) *ResourceClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ResourceClaimApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ResourceClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ResourceClaimApplyConfiguration) WithFinalizers(values ...string) *ResourceClaimApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ResourceClaimApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *ResourceClaimApplyConfiguration) WithSpec(value *ResourceClaimSpecApplyConfiguration) *ResourceClaimApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *ResourceClaimApplyConfiguration) WithStatus(value *ResourceClaimStatusApplyConfiguration) *ResourceClaimApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *ResourceClaimApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1beta1/resourceclaimconsumerreference.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n)\n\n// ResourceClaimConsumerReferenceApplyConfiguration represents a declarative configuration of the ResourceClaimConsumerReference type for use\n// with apply.\ntype ResourceClaimConsumerReferenceApplyConfiguration struct {\n\tAPIGroup *string    `json:\"apiGroup,omitempty\"`\n\tResource *string    `json:\"resource,omitempty\"`\n\tName     *string    `json:\"name,omitempty\"`\n\tUID      *types.UID `json:\"uid,omitempty\"`\n}\n\n// ResourceClaimConsumerReferenceApplyConfiguration constructs a declarative configuration of the ResourceClaimConsumerReference type for use with\n// apply.\nfunc ResourceClaimConsumerReference() *ResourceClaimConsumerReferenceApplyConfiguration {\n\treturn &ResourceClaimConsumerReferenceApplyConfiguration{}\n}\n\n// WithAPIGroup sets the APIGroup field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIGroup field is set to the value of the last call.\nfunc (b *ResourceClaimConsumerReferenceApplyConfiguration) WithAPIGroup(value string) *ResourceClaimConsumerReferenceApplyConfiguration {\n\tb.APIGroup = &value\n\treturn b\n}\n\n// WithResource sets the Resource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Resource field is set to the value of the last call.\nfunc (b *ResourceClaimConsumerReferenceApplyConfiguration) WithResource(value string) *ResourceClaimConsumerReferenceApplyConfiguration {\n\tb.Resource = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ResourceClaimConsumerReferenceApplyConfiguration) WithName(value string) *ResourceClaimConsumerReferenceApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ResourceClaimConsumerReferenceApplyConfiguration) WithUID(value types.UID) *ResourceClaimConsumerReferenceApplyConfiguration {\n\tb.UID = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1beta1/resourceclaimspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// ResourceClaimSpecApplyConfiguration represents a declarative configuration of the ResourceClaimSpec type for use\n// with apply.\ntype ResourceClaimSpecApplyConfiguration struct {\n\tDevices *DeviceClaimApplyConfiguration `json:\"devices,omitempty\"`\n}\n\n// ResourceClaimSpecApplyConfiguration constructs a declarative configuration of the ResourceClaimSpec type for use with\n// apply.\nfunc ResourceClaimSpec() *ResourceClaimSpecApplyConfiguration {\n\treturn &ResourceClaimSpecApplyConfiguration{}\n}\n\n// WithDevices sets the Devices field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Devices field is set to the value of the last call.\nfunc (b *ResourceClaimSpecApplyConfiguration) WithDevices(value *DeviceClaimApplyConfiguration) *ResourceClaimSpecApplyConfiguration {\n\tb.Devices = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1beta1/resourceclaimstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// ResourceClaimStatusApplyConfiguration represents a declarative configuration of the ResourceClaimStatus type for use\n// with apply.\ntype ResourceClaimStatusApplyConfiguration struct {\n\tAllocation  *AllocationResultApplyConfiguration                `json:\"allocation,omitempty\"`\n\tReservedFor []ResourceClaimConsumerReferenceApplyConfiguration `json:\"reservedFor,omitempty\"`\n\tDevices     []AllocatedDeviceStatusApplyConfiguration          `json:\"devices,omitempty\"`\n}\n\n// ResourceClaimStatusApplyConfiguration constructs a declarative configuration of the ResourceClaimStatus type for use with\n// apply.\nfunc ResourceClaimStatus() *ResourceClaimStatusApplyConfiguration {\n\treturn &ResourceClaimStatusApplyConfiguration{}\n}\n\n// WithAllocation sets the Allocation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Allocation field is set to the value of the last call.\nfunc (b *ResourceClaimStatusApplyConfiguration) WithAllocation(value *AllocationResultApplyConfiguration) *ResourceClaimStatusApplyConfiguration {\n\tb.Allocation = value\n\treturn b\n}\n\n// WithReservedFor adds the given value to the ReservedFor field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the ReservedFor field.\nfunc (b *ResourceClaimStatusApplyConfiguration) WithReservedFor(values ...*ResourceClaimConsumerReferenceApplyConfiguration) *ResourceClaimStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithReservedFor\")\n\t\t}\n\t\tb.ReservedFor = append(b.ReservedFor, *values[i])\n\t}\n\treturn b\n}\n\n// WithDevices adds the given value to the Devices field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Devices field.\nfunc (b *ResourceClaimStatusApplyConfiguration) WithDevices(values ...*AllocatedDeviceStatusApplyConfiguration) *ResourceClaimStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithDevices\")\n\t\t}\n\t\tb.Devices = append(b.Devices, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1beta1/resourceclaimtemplate.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tresourcev1beta1 \"k8s.io/api/resource/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ResourceClaimTemplateApplyConfiguration represents a declarative configuration of the ResourceClaimTemplate type for use\n// with apply.\ntype ResourceClaimTemplateApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *ResourceClaimTemplateSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// ResourceClaimTemplate constructs a declarative configuration of the ResourceClaimTemplate type for use with\n// apply.\nfunc ResourceClaimTemplate(name, namespace string) *ResourceClaimTemplateApplyConfiguration {\n\tb := &ResourceClaimTemplateApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"ResourceClaimTemplate\")\n\tb.WithAPIVersion(\"resource.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractResourceClaimTemplate extracts the applied configuration owned by fieldManager from\n// resourceClaimTemplate. If no managedFields are found in resourceClaimTemplate for fieldManager, a\n// ResourceClaimTemplateApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// resourceClaimTemplate must be a unmodified ResourceClaimTemplate API object that was retrieved from the Kubernetes API.\n// ExtractResourceClaimTemplate provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractResourceClaimTemplate(resourceClaimTemplate *resourcev1beta1.ResourceClaimTemplate, fieldManager string) (*ResourceClaimTemplateApplyConfiguration, error) {\n\treturn extractResourceClaimTemplate(resourceClaimTemplate, fieldManager, \"\")\n}\n\n// ExtractResourceClaimTemplateStatus is the same as ExtractResourceClaimTemplate except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractResourceClaimTemplateStatus(resourceClaimTemplate *resourcev1beta1.ResourceClaimTemplate, fieldManager string) (*ResourceClaimTemplateApplyConfiguration, error) {\n\treturn extractResourceClaimTemplate(resourceClaimTemplate, fieldManager, \"status\")\n}\n\nfunc extractResourceClaimTemplate(resourceClaimTemplate *resourcev1beta1.ResourceClaimTemplate, fieldManager string, subresource string) (*ResourceClaimTemplateApplyConfiguration, error) {\n\tb := &ResourceClaimTemplateApplyConfiguration{}\n\terr := managedfields.ExtractInto(resourceClaimTemplate, internal.Parser().Type(\"io.k8s.api.resource.v1beta1.ResourceClaimTemplate\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(resourceClaimTemplate.Name)\n\tb.WithNamespace(resourceClaimTemplate.Namespace)\n\n\tb.WithKind(\"ResourceClaimTemplate\")\n\tb.WithAPIVersion(\"resource.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithKind(value string) *ResourceClaimTemplateApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithAPIVersion(value string) *ResourceClaimTemplateApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithName(value string) *ResourceClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithGenerateName(value string) *ResourceClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithNamespace(value string) *ResourceClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithUID(value types.UID) *ResourceClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithResourceVersion(value string) *ResourceClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithGeneration(value int64) *ResourceClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ResourceClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ResourceClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ResourceClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithLabels(entries map[string]string) *ResourceClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithAnnotations(entries map[string]string) *ResourceClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ResourceClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithFinalizers(values ...string) *ResourceClaimTemplateApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ResourceClaimTemplateApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateApplyConfiguration) WithSpec(value *ResourceClaimTemplateSpecApplyConfiguration) *ResourceClaimTemplateApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *ResourceClaimTemplateApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1beta1/resourceclaimtemplatespec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ResourceClaimTemplateSpecApplyConfiguration represents a declarative configuration of the ResourceClaimTemplateSpec type for use\n// with apply.\ntype ResourceClaimTemplateSpecApplyConfiguration struct {\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *ResourceClaimSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// ResourceClaimTemplateSpecApplyConfiguration constructs a declarative configuration of the ResourceClaimTemplateSpec type for use with\n// apply.\nfunc ResourceClaimTemplateSpec() *ResourceClaimTemplateSpecApplyConfiguration {\n\treturn &ResourceClaimTemplateSpecApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) WithName(value string) *ResourceClaimTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) WithGenerateName(value string) *ResourceClaimTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) WithNamespace(value string) *ResourceClaimTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) WithUID(value types.UID) *ResourceClaimTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) WithResourceVersion(value string) *ResourceClaimTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) WithGeneration(value int64) *ResourceClaimTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ResourceClaimTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ResourceClaimTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ResourceClaimTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) WithLabels(entries map[string]string) *ResourceClaimTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) WithAnnotations(entries map[string]string) *ResourceClaimTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ResourceClaimTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) WithFinalizers(values ...string) *ResourceClaimTemplateSpecApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) WithSpec(value *ResourceClaimSpecApplyConfiguration) *ResourceClaimTemplateSpecApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *ResourceClaimTemplateSpecApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1beta1/resourcepool.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// ResourcePoolApplyConfiguration represents a declarative configuration of the ResourcePool type for use\n// with apply.\ntype ResourcePoolApplyConfiguration struct {\n\tName               *string `json:\"name,omitempty\"`\n\tGeneration         *int64  `json:\"generation,omitempty\"`\n\tResourceSliceCount *int64  `json:\"resourceSliceCount,omitempty\"`\n}\n\n// ResourcePoolApplyConfiguration constructs a declarative configuration of the ResourcePool type for use with\n// apply.\nfunc ResourcePool() *ResourcePoolApplyConfiguration {\n\treturn &ResourcePoolApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ResourcePoolApplyConfiguration) WithName(value string) *ResourcePoolApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ResourcePoolApplyConfiguration) WithGeneration(value int64) *ResourcePoolApplyConfiguration {\n\tb.Generation = &value\n\treturn b\n}\n\n// WithResourceSliceCount sets the ResourceSliceCount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceSliceCount field is set to the value of the last call.\nfunc (b *ResourcePoolApplyConfiguration) WithResourceSliceCount(value int64) *ResourcePoolApplyConfiguration {\n\tb.ResourceSliceCount = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1beta1/resourceslice.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tresourcev1beta1 \"k8s.io/api/resource/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// ResourceSliceApplyConfiguration represents a declarative configuration of the ResourceSlice type for use\n// with apply.\ntype ResourceSliceApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *ResourceSliceSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// ResourceSlice constructs a declarative configuration of the ResourceSlice type for use with\n// apply.\nfunc ResourceSlice(name string) *ResourceSliceApplyConfiguration {\n\tb := &ResourceSliceApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"ResourceSlice\")\n\tb.WithAPIVersion(\"resource.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractResourceSlice extracts the applied configuration owned by fieldManager from\n// resourceSlice. If no managedFields are found in resourceSlice for fieldManager, a\n// ResourceSliceApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// resourceSlice must be a unmodified ResourceSlice API object that was retrieved from the Kubernetes API.\n// ExtractResourceSlice provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractResourceSlice(resourceSlice *resourcev1beta1.ResourceSlice, fieldManager string) (*ResourceSliceApplyConfiguration, error) {\n\treturn extractResourceSlice(resourceSlice, fieldManager, \"\")\n}\n\n// ExtractResourceSliceStatus is the same as ExtractResourceSlice except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractResourceSliceStatus(resourceSlice *resourcev1beta1.ResourceSlice, fieldManager string) (*ResourceSliceApplyConfiguration, error) {\n\treturn extractResourceSlice(resourceSlice, fieldManager, \"status\")\n}\n\nfunc extractResourceSlice(resourceSlice *resourcev1beta1.ResourceSlice, fieldManager string, subresource string) (*ResourceSliceApplyConfiguration, error) {\n\tb := &ResourceSliceApplyConfiguration{}\n\terr := managedfields.ExtractInto(resourceSlice, internal.Parser().Type(\"io.k8s.api.resource.v1beta1.ResourceSlice\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(resourceSlice.Name)\n\n\tb.WithKind(\"ResourceSlice\")\n\tb.WithAPIVersion(\"resource.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *ResourceSliceApplyConfiguration) WithKind(value string) *ResourceSliceApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *ResourceSliceApplyConfiguration) WithAPIVersion(value string) *ResourceSliceApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *ResourceSliceApplyConfiguration) WithName(value string) *ResourceSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *ResourceSliceApplyConfiguration) WithGenerateName(value string) *ResourceSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *ResourceSliceApplyConfiguration) WithNamespace(value string) *ResourceSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *ResourceSliceApplyConfiguration) WithUID(value types.UID) *ResourceSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *ResourceSliceApplyConfiguration) WithResourceVersion(value string) *ResourceSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *ResourceSliceApplyConfiguration) WithGeneration(value int64) *ResourceSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *ResourceSliceApplyConfiguration) WithCreationTimestamp(value metav1.Time) *ResourceSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *ResourceSliceApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *ResourceSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *ResourceSliceApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *ResourceSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *ResourceSliceApplyConfiguration) WithLabels(entries map[string]string) *ResourceSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *ResourceSliceApplyConfiguration) WithAnnotations(entries map[string]string) *ResourceSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *ResourceSliceApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *ResourceSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *ResourceSliceApplyConfiguration) WithFinalizers(values ...string) *ResourceSliceApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *ResourceSliceApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *ResourceSliceApplyConfiguration) WithSpec(value *ResourceSliceSpecApplyConfiguration) *ResourceSliceApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *ResourceSliceApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/resource/v1beta1/resourceslicespec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n)\n\n// ResourceSliceSpecApplyConfiguration represents a declarative configuration of the ResourceSliceSpec type for use\n// with apply.\ntype ResourceSliceSpecApplyConfiguration struct {\n\tDriver       *string                            `json:\"driver,omitempty\"`\n\tPool         *ResourcePoolApplyConfiguration    `json:\"pool,omitempty\"`\n\tNodeName     *string                            `json:\"nodeName,omitempty\"`\n\tNodeSelector *v1.NodeSelectorApplyConfiguration `json:\"nodeSelector,omitempty\"`\n\tAllNodes     *bool                              `json:\"allNodes,omitempty\"`\n\tDevices      []DeviceApplyConfiguration         `json:\"devices,omitempty\"`\n}\n\n// ResourceSliceSpecApplyConfiguration constructs a declarative configuration of the ResourceSliceSpec type for use with\n// apply.\nfunc ResourceSliceSpec() *ResourceSliceSpecApplyConfiguration {\n\treturn &ResourceSliceSpecApplyConfiguration{}\n}\n\n// WithDriver sets the Driver field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Driver field is set to the value of the last call.\nfunc (b *ResourceSliceSpecApplyConfiguration) WithDriver(value string) *ResourceSliceSpecApplyConfiguration {\n\tb.Driver = &value\n\treturn b\n}\n\n// WithPool sets the Pool field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Pool field is set to the value of the last call.\nfunc (b *ResourceSliceSpecApplyConfiguration) WithPool(value *ResourcePoolApplyConfiguration) *ResourceSliceSpecApplyConfiguration {\n\tb.Pool = value\n\treturn b\n}\n\n// WithNodeName sets the NodeName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeName field is set to the value of the last call.\nfunc (b *ResourceSliceSpecApplyConfiguration) WithNodeName(value string) *ResourceSliceSpecApplyConfiguration {\n\tb.NodeName = &value\n\treturn b\n}\n\n// WithNodeSelector sets the NodeSelector field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeSelector field is set to the value of the last call.\nfunc (b *ResourceSliceSpecApplyConfiguration) WithNodeSelector(value *v1.NodeSelectorApplyConfiguration) *ResourceSliceSpecApplyConfiguration {\n\tb.NodeSelector = value\n\treturn b\n}\n\n// WithAllNodes sets the AllNodes field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AllNodes field is set to the value of the last call.\nfunc (b *ResourceSliceSpecApplyConfiguration) WithAllNodes(value bool) *ResourceSliceSpecApplyConfiguration {\n\tb.AllNodes = &value\n\treturn b\n}\n\n// WithDevices adds the given value to the Devices field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Devices field.\nfunc (b *ResourceSliceSpecApplyConfiguration) WithDevices(values ...*DeviceApplyConfiguration) *ResourceSliceSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithDevices\")\n\t\t}\n\t\tb.Devices = append(b.Devices, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/scheduling/v1/priorityclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tschedulingv1 \"k8s.io/api/scheduling/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PriorityClassApplyConfiguration represents a declarative configuration of the PriorityClass type for use\n// with apply.\ntype PriorityClassApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tValue                                *int32                   `json:\"value,omitempty\"`\n\tGlobalDefault                        *bool                    `json:\"globalDefault,omitempty\"`\n\tDescription                          *string                  `json:\"description,omitempty\"`\n\tPreemptionPolicy                     *corev1.PreemptionPolicy `json:\"preemptionPolicy,omitempty\"`\n}\n\n// PriorityClass constructs a declarative configuration of the PriorityClass type for use with\n// apply.\nfunc PriorityClass(name string) *PriorityClassApplyConfiguration {\n\tb := &PriorityClassApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"PriorityClass\")\n\tb.WithAPIVersion(\"scheduling.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractPriorityClass extracts the applied configuration owned by fieldManager from\n// priorityClass. If no managedFields are found in priorityClass for fieldManager, a\n// PriorityClassApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// priorityClass must be a unmodified PriorityClass API object that was retrieved from the Kubernetes API.\n// ExtractPriorityClass provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractPriorityClass(priorityClass *schedulingv1.PriorityClass, fieldManager string) (*PriorityClassApplyConfiguration, error) {\n\treturn extractPriorityClass(priorityClass, fieldManager, \"\")\n}\n\n// ExtractPriorityClassStatus is the same as ExtractPriorityClass except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractPriorityClassStatus(priorityClass *schedulingv1.PriorityClass, fieldManager string) (*PriorityClassApplyConfiguration, error) {\n\treturn extractPriorityClass(priorityClass, fieldManager, \"status\")\n}\n\nfunc extractPriorityClass(priorityClass *schedulingv1.PriorityClass, fieldManager string, subresource string) (*PriorityClassApplyConfiguration, error) {\n\tb := &PriorityClassApplyConfiguration{}\n\terr := managedfields.ExtractInto(priorityClass, internal.Parser().Type(\"io.k8s.api.scheduling.v1.PriorityClass\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(priorityClass.Name)\n\n\tb.WithKind(\"PriorityClass\")\n\tb.WithAPIVersion(\"scheduling.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithKind(value string) *PriorityClassApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithAPIVersion(value string) *PriorityClassApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithName(value string) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithGenerateName(value string) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithNamespace(value string) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithUID(value types.UID) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithResourceVersion(value string) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithGeneration(value int64) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *PriorityClassApplyConfiguration) WithLabels(entries map[string]string) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *PriorityClassApplyConfiguration) WithAnnotations(entries map[string]string) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *PriorityClassApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *PriorityClassApplyConfiguration) WithFinalizers(values ...string) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *PriorityClassApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithValue sets the Value field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Value field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithValue(value int32) *PriorityClassApplyConfiguration {\n\tb.Value = &value\n\treturn b\n}\n\n// WithGlobalDefault sets the GlobalDefault field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GlobalDefault field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithGlobalDefault(value bool) *PriorityClassApplyConfiguration {\n\tb.GlobalDefault = &value\n\treturn b\n}\n\n// WithDescription sets the Description field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Description field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithDescription(value string) *PriorityClassApplyConfiguration {\n\tb.Description = &value\n\treturn b\n}\n\n// WithPreemptionPolicy sets the PreemptionPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PreemptionPolicy field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithPreemptionPolicy(value corev1.PreemptionPolicy) *PriorityClassApplyConfiguration {\n\tb.PreemptionPolicy = &value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *PriorityClassApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/scheduling/v1alpha1/priorityclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tschedulingv1alpha1 \"k8s.io/api/scheduling/v1alpha1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PriorityClassApplyConfiguration represents a declarative configuration of the PriorityClass type for use\n// with apply.\ntype PriorityClassApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tValue                            *int32                   `json:\"value,omitempty\"`\n\tGlobalDefault                    *bool                    `json:\"globalDefault,omitempty\"`\n\tDescription                      *string                  `json:\"description,omitempty\"`\n\tPreemptionPolicy                 *corev1.PreemptionPolicy `json:\"preemptionPolicy,omitempty\"`\n}\n\n// PriorityClass constructs a declarative configuration of the PriorityClass type for use with\n// apply.\nfunc PriorityClass(name string) *PriorityClassApplyConfiguration {\n\tb := &PriorityClassApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"PriorityClass\")\n\tb.WithAPIVersion(\"scheduling.k8s.io/v1alpha1\")\n\treturn b\n}\n\n// ExtractPriorityClass extracts the applied configuration owned by fieldManager from\n// priorityClass. If no managedFields are found in priorityClass for fieldManager, a\n// PriorityClassApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// priorityClass must be a unmodified PriorityClass API object that was retrieved from the Kubernetes API.\n// ExtractPriorityClass provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractPriorityClass(priorityClass *schedulingv1alpha1.PriorityClass, fieldManager string) (*PriorityClassApplyConfiguration, error) {\n\treturn extractPriorityClass(priorityClass, fieldManager, \"\")\n}\n\n// ExtractPriorityClassStatus is the same as ExtractPriorityClass except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractPriorityClassStatus(priorityClass *schedulingv1alpha1.PriorityClass, fieldManager string) (*PriorityClassApplyConfiguration, error) {\n\treturn extractPriorityClass(priorityClass, fieldManager, \"status\")\n}\n\nfunc extractPriorityClass(priorityClass *schedulingv1alpha1.PriorityClass, fieldManager string, subresource string) (*PriorityClassApplyConfiguration, error) {\n\tb := &PriorityClassApplyConfiguration{}\n\terr := managedfields.ExtractInto(priorityClass, internal.Parser().Type(\"io.k8s.api.scheduling.v1alpha1.PriorityClass\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(priorityClass.Name)\n\n\tb.WithKind(\"PriorityClass\")\n\tb.WithAPIVersion(\"scheduling.k8s.io/v1alpha1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithKind(value string) *PriorityClassApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithAPIVersion(value string) *PriorityClassApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithName(value string) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithGenerateName(value string) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithNamespace(value string) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithUID(value types.UID) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithResourceVersion(value string) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithGeneration(value int64) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithCreationTimestamp(value metav1.Time) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *PriorityClassApplyConfiguration) WithLabels(entries map[string]string) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *PriorityClassApplyConfiguration) WithAnnotations(entries map[string]string) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *PriorityClassApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *PriorityClassApplyConfiguration) WithFinalizers(values ...string) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *PriorityClassApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithValue sets the Value field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Value field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithValue(value int32) *PriorityClassApplyConfiguration {\n\tb.Value = &value\n\treturn b\n}\n\n// WithGlobalDefault sets the GlobalDefault field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GlobalDefault field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithGlobalDefault(value bool) *PriorityClassApplyConfiguration {\n\tb.GlobalDefault = &value\n\treturn b\n}\n\n// WithDescription sets the Description field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Description field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithDescription(value string) *PriorityClassApplyConfiguration {\n\tb.Description = &value\n\treturn b\n}\n\n// WithPreemptionPolicy sets the PreemptionPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PreemptionPolicy field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithPreemptionPolicy(value corev1.PreemptionPolicy) *PriorityClassApplyConfiguration {\n\tb.PreemptionPolicy = &value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *PriorityClassApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/scheduling/v1beta1/priorityclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tschedulingv1beta1 \"k8s.io/api/scheduling/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// PriorityClassApplyConfiguration represents a declarative configuration of the PriorityClass type for use\n// with apply.\ntype PriorityClassApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tValue                            *int32                   `json:\"value,omitempty\"`\n\tGlobalDefault                    *bool                    `json:\"globalDefault,omitempty\"`\n\tDescription                      *string                  `json:\"description,omitempty\"`\n\tPreemptionPolicy                 *corev1.PreemptionPolicy `json:\"preemptionPolicy,omitempty\"`\n}\n\n// PriorityClass constructs a declarative configuration of the PriorityClass type for use with\n// apply.\nfunc PriorityClass(name string) *PriorityClassApplyConfiguration {\n\tb := &PriorityClassApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"PriorityClass\")\n\tb.WithAPIVersion(\"scheduling.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractPriorityClass extracts the applied configuration owned by fieldManager from\n// priorityClass. If no managedFields are found in priorityClass for fieldManager, a\n// PriorityClassApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// priorityClass must be a unmodified PriorityClass API object that was retrieved from the Kubernetes API.\n// ExtractPriorityClass provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractPriorityClass(priorityClass *schedulingv1beta1.PriorityClass, fieldManager string) (*PriorityClassApplyConfiguration, error) {\n\treturn extractPriorityClass(priorityClass, fieldManager, \"\")\n}\n\n// ExtractPriorityClassStatus is the same as ExtractPriorityClass except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractPriorityClassStatus(priorityClass *schedulingv1beta1.PriorityClass, fieldManager string) (*PriorityClassApplyConfiguration, error) {\n\treturn extractPriorityClass(priorityClass, fieldManager, \"status\")\n}\n\nfunc extractPriorityClass(priorityClass *schedulingv1beta1.PriorityClass, fieldManager string, subresource string) (*PriorityClassApplyConfiguration, error) {\n\tb := &PriorityClassApplyConfiguration{}\n\terr := managedfields.ExtractInto(priorityClass, internal.Parser().Type(\"io.k8s.api.scheduling.v1beta1.PriorityClass\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(priorityClass.Name)\n\n\tb.WithKind(\"PriorityClass\")\n\tb.WithAPIVersion(\"scheduling.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithKind(value string) *PriorityClassApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithAPIVersion(value string) *PriorityClassApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithName(value string) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithGenerateName(value string) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithNamespace(value string) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithUID(value types.UID) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithResourceVersion(value string) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithGeneration(value int64) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithCreationTimestamp(value metav1.Time) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *PriorityClassApplyConfiguration) WithLabels(entries map[string]string) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *PriorityClassApplyConfiguration) WithAnnotations(entries map[string]string) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *PriorityClassApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *PriorityClassApplyConfiguration) WithFinalizers(values ...string) *PriorityClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *PriorityClassApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithValue sets the Value field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Value field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithValue(value int32) *PriorityClassApplyConfiguration {\n\tb.Value = &value\n\treturn b\n}\n\n// WithGlobalDefault sets the GlobalDefault field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GlobalDefault field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithGlobalDefault(value bool) *PriorityClassApplyConfiguration {\n\tb.GlobalDefault = &value\n\treturn b\n}\n\n// WithDescription sets the Description field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Description field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithDescription(value string) *PriorityClassApplyConfiguration {\n\tb.Description = &value\n\treturn b\n}\n\n// WithPreemptionPolicy sets the PreemptionPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PreemptionPolicy field is set to the value of the last call.\nfunc (b *PriorityClassApplyConfiguration) WithPreemptionPolicy(value corev1.PreemptionPolicy) *PriorityClassApplyConfiguration {\n\tb.PreemptionPolicy = &value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *PriorityClassApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1/csidriver.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tstoragev1 \"k8s.io/api/storage/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// CSIDriverApplyConfiguration represents a declarative configuration of the CSIDriver type for use\n// with apply.\ntype CSIDriverApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                                 *CSIDriverSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// CSIDriver constructs a declarative configuration of the CSIDriver type for use with\n// apply.\nfunc CSIDriver(name string) *CSIDriverApplyConfiguration {\n\tb := &CSIDriverApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"CSIDriver\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractCSIDriver extracts the applied configuration owned by fieldManager from\n// cSIDriver. If no managedFields are found in cSIDriver for fieldManager, a\n// CSIDriverApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// cSIDriver must be a unmodified CSIDriver API object that was retrieved from the Kubernetes API.\n// ExtractCSIDriver provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractCSIDriver(cSIDriver *storagev1.CSIDriver, fieldManager string) (*CSIDriverApplyConfiguration, error) {\n\treturn extractCSIDriver(cSIDriver, fieldManager, \"\")\n}\n\n// ExtractCSIDriverStatus is the same as ExtractCSIDriver except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractCSIDriverStatus(cSIDriver *storagev1.CSIDriver, fieldManager string) (*CSIDriverApplyConfiguration, error) {\n\treturn extractCSIDriver(cSIDriver, fieldManager, \"status\")\n}\n\nfunc extractCSIDriver(cSIDriver *storagev1.CSIDriver, fieldManager string, subresource string) (*CSIDriverApplyConfiguration, error) {\n\tb := &CSIDriverApplyConfiguration{}\n\terr := managedfields.ExtractInto(cSIDriver, internal.Parser().Type(\"io.k8s.api.storage.v1.CSIDriver\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(cSIDriver.Name)\n\n\tb.WithKind(\"CSIDriver\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithKind(value string) *CSIDriverApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithAPIVersion(value string) *CSIDriverApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithName(value string) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithGenerateName(value string) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithNamespace(value string) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithUID(value types.UID) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithResourceVersion(value string) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithGeneration(value int64) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *CSIDriverApplyConfiguration) WithLabels(entries map[string]string) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *CSIDriverApplyConfiguration) WithAnnotations(entries map[string]string) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *CSIDriverApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *CSIDriverApplyConfiguration) WithFinalizers(values ...string) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *CSIDriverApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithSpec(value *CSIDriverSpecApplyConfiguration) *CSIDriverApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *CSIDriverApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1/csidriverspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tstoragev1 \"k8s.io/api/storage/v1\"\n)\n\n// CSIDriverSpecApplyConfiguration represents a declarative configuration of the CSIDriverSpec type for use\n// with apply.\ntype CSIDriverSpecApplyConfiguration struct {\n\tAttachRequired       *bool                            `json:\"attachRequired,omitempty\"`\n\tPodInfoOnMount       *bool                            `json:\"podInfoOnMount,omitempty\"`\n\tVolumeLifecycleModes []storagev1.VolumeLifecycleMode  `json:\"volumeLifecycleModes,omitempty\"`\n\tStorageCapacity      *bool                            `json:\"storageCapacity,omitempty\"`\n\tFSGroupPolicy        *storagev1.FSGroupPolicy         `json:\"fsGroupPolicy,omitempty\"`\n\tTokenRequests        []TokenRequestApplyConfiguration `json:\"tokenRequests,omitempty\"`\n\tRequiresRepublish    *bool                            `json:\"requiresRepublish,omitempty\"`\n\tSELinuxMount         *bool                            `json:\"seLinuxMount,omitempty\"`\n}\n\n// CSIDriverSpecApplyConfiguration constructs a declarative configuration of the CSIDriverSpec type for use with\n// apply.\nfunc CSIDriverSpec() *CSIDriverSpecApplyConfiguration {\n\treturn &CSIDriverSpecApplyConfiguration{}\n}\n\n// WithAttachRequired sets the AttachRequired field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AttachRequired field is set to the value of the last call.\nfunc (b *CSIDriverSpecApplyConfiguration) WithAttachRequired(value bool) *CSIDriverSpecApplyConfiguration {\n\tb.AttachRequired = &value\n\treturn b\n}\n\n// WithPodInfoOnMount sets the PodInfoOnMount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PodInfoOnMount field is set to the value of the last call.\nfunc (b *CSIDriverSpecApplyConfiguration) WithPodInfoOnMount(value bool) *CSIDriverSpecApplyConfiguration {\n\tb.PodInfoOnMount = &value\n\treturn b\n}\n\n// WithVolumeLifecycleModes adds the given value to the VolumeLifecycleModes field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the VolumeLifecycleModes field.\nfunc (b *CSIDriverSpecApplyConfiguration) WithVolumeLifecycleModes(values ...storagev1.VolumeLifecycleMode) *CSIDriverSpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.VolumeLifecycleModes = append(b.VolumeLifecycleModes, values[i])\n\t}\n\treturn b\n}\n\n// WithStorageCapacity sets the StorageCapacity field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StorageCapacity field is set to the value of the last call.\nfunc (b *CSIDriverSpecApplyConfiguration) WithStorageCapacity(value bool) *CSIDriverSpecApplyConfiguration {\n\tb.StorageCapacity = &value\n\treturn b\n}\n\n// WithFSGroupPolicy sets the FSGroupPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSGroupPolicy field is set to the value of the last call.\nfunc (b *CSIDriverSpecApplyConfiguration) WithFSGroupPolicy(value storagev1.FSGroupPolicy) *CSIDriverSpecApplyConfiguration {\n\tb.FSGroupPolicy = &value\n\treturn b\n}\n\n// WithTokenRequests adds the given value to the TokenRequests field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the TokenRequests field.\nfunc (b *CSIDriverSpecApplyConfiguration) WithTokenRequests(values ...*TokenRequestApplyConfiguration) *CSIDriverSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithTokenRequests\")\n\t\t}\n\t\tb.TokenRequests = append(b.TokenRequests, *values[i])\n\t}\n\treturn b\n}\n\n// WithRequiresRepublish sets the RequiresRepublish field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RequiresRepublish field is set to the value of the last call.\nfunc (b *CSIDriverSpecApplyConfiguration) WithRequiresRepublish(value bool) *CSIDriverSpecApplyConfiguration {\n\tb.RequiresRepublish = &value\n\treturn b\n}\n\n// WithSELinuxMount sets the SELinuxMount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SELinuxMount field is set to the value of the last call.\nfunc (b *CSIDriverSpecApplyConfiguration) WithSELinuxMount(value bool) *CSIDriverSpecApplyConfiguration {\n\tb.SELinuxMount = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1/csinode.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tstoragev1 \"k8s.io/api/storage/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// CSINodeApplyConfiguration represents a declarative configuration of the CSINode type for use\n// with apply.\ntype CSINodeApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                                 *CSINodeSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// CSINode constructs a declarative configuration of the CSINode type for use with\n// apply.\nfunc CSINode(name string) *CSINodeApplyConfiguration {\n\tb := &CSINodeApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"CSINode\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractCSINode extracts the applied configuration owned by fieldManager from\n// cSINode. If no managedFields are found in cSINode for fieldManager, a\n// CSINodeApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// cSINode must be a unmodified CSINode API object that was retrieved from the Kubernetes API.\n// ExtractCSINode provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractCSINode(cSINode *storagev1.CSINode, fieldManager string) (*CSINodeApplyConfiguration, error) {\n\treturn extractCSINode(cSINode, fieldManager, \"\")\n}\n\n// ExtractCSINodeStatus is the same as ExtractCSINode except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractCSINodeStatus(cSINode *storagev1.CSINode, fieldManager string) (*CSINodeApplyConfiguration, error) {\n\treturn extractCSINode(cSINode, fieldManager, \"status\")\n}\n\nfunc extractCSINode(cSINode *storagev1.CSINode, fieldManager string, subresource string) (*CSINodeApplyConfiguration, error) {\n\tb := &CSINodeApplyConfiguration{}\n\terr := managedfields.ExtractInto(cSINode, internal.Parser().Type(\"io.k8s.api.storage.v1.CSINode\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(cSINode.Name)\n\n\tb.WithKind(\"CSINode\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithKind(value string) *CSINodeApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithAPIVersion(value string) *CSINodeApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithName(value string) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithGenerateName(value string) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithNamespace(value string) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithUID(value types.UID) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithResourceVersion(value string) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithGeneration(value int64) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *CSINodeApplyConfiguration) WithLabels(entries map[string]string) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *CSINodeApplyConfiguration) WithAnnotations(entries map[string]string) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *CSINodeApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *CSINodeApplyConfiguration) WithFinalizers(values ...string) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *CSINodeApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithSpec(value *CSINodeSpecApplyConfiguration) *CSINodeApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *CSINodeApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1/csinodedriver.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// CSINodeDriverApplyConfiguration represents a declarative configuration of the CSINodeDriver type for use\n// with apply.\ntype CSINodeDriverApplyConfiguration struct {\n\tName         *string                                `json:\"name,omitempty\"`\n\tNodeID       *string                                `json:\"nodeID,omitempty\"`\n\tTopologyKeys []string                               `json:\"topologyKeys,omitempty\"`\n\tAllocatable  *VolumeNodeResourcesApplyConfiguration `json:\"allocatable,omitempty\"`\n}\n\n// CSINodeDriverApplyConfiguration constructs a declarative configuration of the CSINodeDriver type for use with\n// apply.\nfunc CSINodeDriver() *CSINodeDriverApplyConfiguration {\n\treturn &CSINodeDriverApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *CSINodeDriverApplyConfiguration) WithName(value string) *CSINodeDriverApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithNodeID sets the NodeID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeID field is set to the value of the last call.\nfunc (b *CSINodeDriverApplyConfiguration) WithNodeID(value string) *CSINodeDriverApplyConfiguration {\n\tb.NodeID = &value\n\treturn b\n}\n\n// WithTopologyKeys adds the given value to the TopologyKeys field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the TopologyKeys field.\nfunc (b *CSINodeDriverApplyConfiguration) WithTopologyKeys(values ...string) *CSINodeDriverApplyConfiguration {\n\tfor i := range values {\n\t\tb.TopologyKeys = append(b.TopologyKeys, values[i])\n\t}\n\treturn b\n}\n\n// WithAllocatable sets the Allocatable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Allocatable field is set to the value of the last call.\nfunc (b *CSINodeDriverApplyConfiguration) WithAllocatable(value *VolumeNodeResourcesApplyConfiguration) *CSINodeDriverApplyConfiguration {\n\tb.Allocatable = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1/csinodespec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// CSINodeSpecApplyConfiguration represents a declarative configuration of the CSINodeSpec type for use\n// with apply.\ntype CSINodeSpecApplyConfiguration struct {\n\tDrivers []CSINodeDriverApplyConfiguration `json:\"drivers,omitempty\"`\n}\n\n// CSINodeSpecApplyConfiguration constructs a declarative configuration of the CSINodeSpec type for use with\n// apply.\nfunc CSINodeSpec() *CSINodeSpecApplyConfiguration {\n\treturn &CSINodeSpecApplyConfiguration{}\n}\n\n// WithDrivers adds the given value to the Drivers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Drivers field.\nfunc (b *CSINodeSpecApplyConfiguration) WithDrivers(values ...*CSINodeDriverApplyConfiguration) *CSINodeSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithDrivers\")\n\t\t}\n\t\tb.Drivers = append(b.Drivers, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1/csistoragecapacity.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tstoragev1 \"k8s.io/api/storage/v1\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// CSIStorageCapacityApplyConfiguration represents a declarative configuration of the CSIStorageCapacity type for use\n// with apply.\ntype CSIStorageCapacityApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tNodeTopology                         *metav1.LabelSelectorApplyConfiguration `json:\"nodeTopology,omitempty\"`\n\tStorageClassName                     *string                                 `json:\"storageClassName,omitempty\"`\n\tCapacity                             *resource.Quantity                      `json:\"capacity,omitempty\"`\n\tMaximumVolumeSize                    *resource.Quantity                      `json:\"maximumVolumeSize,omitempty\"`\n}\n\n// CSIStorageCapacity constructs a declarative configuration of the CSIStorageCapacity type for use with\n// apply.\nfunc CSIStorageCapacity(name, namespace string) *CSIStorageCapacityApplyConfiguration {\n\tb := &CSIStorageCapacityApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"CSIStorageCapacity\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractCSIStorageCapacity extracts the applied configuration owned by fieldManager from\n// cSIStorageCapacity. If no managedFields are found in cSIStorageCapacity for fieldManager, a\n// CSIStorageCapacityApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// cSIStorageCapacity must be a unmodified CSIStorageCapacity API object that was retrieved from the Kubernetes API.\n// ExtractCSIStorageCapacity provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractCSIStorageCapacity(cSIStorageCapacity *storagev1.CSIStorageCapacity, fieldManager string) (*CSIStorageCapacityApplyConfiguration, error) {\n\treturn extractCSIStorageCapacity(cSIStorageCapacity, fieldManager, \"\")\n}\n\n// ExtractCSIStorageCapacityStatus is the same as ExtractCSIStorageCapacity except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractCSIStorageCapacityStatus(cSIStorageCapacity *storagev1.CSIStorageCapacity, fieldManager string) (*CSIStorageCapacityApplyConfiguration, error) {\n\treturn extractCSIStorageCapacity(cSIStorageCapacity, fieldManager, \"status\")\n}\n\nfunc extractCSIStorageCapacity(cSIStorageCapacity *storagev1.CSIStorageCapacity, fieldManager string, subresource string) (*CSIStorageCapacityApplyConfiguration, error) {\n\tb := &CSIStorageCapacityApplyConfiguration{}\n\terr := managedfields.ExtractInto(cSIStorageCapacity, internal.Parser().Type(\"io.k8s.api.storage.v1.CSIStorageCapacity\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(cSIStorageCapacity.Name)\n\tb.WithNamespace(cSIStorageCapacity.Namespace)\n\n\tb.WithKind(\"CSIStorageCapacity\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithKind(value string) *CSIStorageCapacityApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithAPIVersion(value string) *CSIStorageCapacityApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithName(value string) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithGenerateName(value string) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithNamespace(value string) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithUID(value types.UID) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithResourceVersion(value string) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithGeneration(value int64) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithLabels(entries map[string]string) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithAnnotations(entries map[string]string) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithFinalizers(values ...string) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *CSIStorageCapacityApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithNodeTopology sets the NodeTopology field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeTopology field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithNodeTopology(value *metav1.LabelSelectorApplyConfiguration) *CSIStorageCapacityApplyConfiguration {\n\tb.NodeTopology = value\n\treturn b\n}\n\n// WithStorageClassName sets the StorageClassName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StorageClassName field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithStorageClassName(value string) *CSIStorageCapacityApplyConfiguration {\n\tb.StorageClassName = &value\n\treturn b\n}\n\n// WithCapacity sets the Capacity field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Capacity field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithCapacity(value resource.Quantity) *CSIStorageCapacityApplyConfiguration {\n\tb.Capacity = &value\n\treturn b\n}\n\n// WithMaximumVolumeSize sets the MaximumVolumeSize field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaximumVolumeSize field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithMaximumVolumeSize(value resource.Quantity) *CSIStorageCapacityApplyConfiguration {\n\tb.MaximumVolumeSize = &value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *CSIStorageCapacityApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1/storageclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tstoragev1 \"k8s.io/api/storage/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tapplyconfigurationscorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// StorageClassApplyConfiguration represents a declarative configuration of the StorageClass type for use\n// with apply.\ntype StorageClassApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tProvisioner                          *string                                                            `json:\"provisioner,omitempty\"`\n\tParameters                           map[string]string                                                  `json:\"parameters,omitempty\"`\n\tReclaimPolicy                        *corev1.PersistentVolumeReclaimPolicy                              `json:\"reclaimPolicy,omitempty\"`\n\tMountOptions                         []string                                                           `json:\"mountOptions,omitempty\"`\n\tAllowVolumeExpansion                 *bool                                                              `json:\"allowVolumeExpansion,omitempty\"`\n\tVolumeBindingMode                    *storagev1.VolumeBindingMode                                       `json:\"volumeBindingMode,omitempty\"`\n\tAllowedTopologies                    []applyconfigurationscorev1.TopologySelectorTermApplyConfiguration `json:\"allowedTopologies,omitempty\"`\n}\n\n// StorageClass constructs a declarative configuration of the StorageClass type for use with\n// apply.\nfunc StorageClass(name string) *StorageClassApplyConfiguration {\n\tb := &StorageClassApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"StorageClass\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractStorageClass extracts the applied configuration owned by fieldManager from\n// storageClass. If no managedFields are found in storageClass for fieldManager, a\n// StorageClassApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// storageClass must be a unmodified StorageClass API object that was retrieved from the Kubernetes API.\n// ExtractStorageClass provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractStorageClass(storageClass *storagev1.StorageClass, fieldManager string) (*StorageClassApplyConfiguration, error) {\n\treturn extractStorageClass(storageClass, fieldManager, \"\")\n}\n\n// ExtractStorageClassStatus is the same as ExtractStorageClass except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractStorageClassStatus(storageClass *storagev1.StorageClass, fieldManager string) (*StorageClassApplyConfiguration, error) {\n\treturn extractStorageClass(storageClass, fieldManager, \"status\")\n}\n\nfunc extractStorageClass(storageClass *storagev1.StorageClass, fieldManager string, subresource string) (*StorageClassApplyConfiguration, error) {\n\tb := &StorageClassApplyConfiguration{}\n\terr := managedfields.ExtractInto(storageClass, internal.Parser().Type(\"io.k8s.api.storage.v1.StorageClass\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(storageClass.Name)\n\n\tb.WithKind(\"StorageClass\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithKind(value string) *StorageClassApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithAPIVersion(value string) *StorageClassApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithName(value string) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithGenerateName(value string) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithNamespace(value string) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithUID(value types.UID) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithResourceVersion(value string) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithGeneration(value int64) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *StorageClassApplyConfiguration) WithLabels(entries map[string]string) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *StorageClassApplyConfiguration) WithAnnotations(entries map[string]string) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *StorageClassApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *StorageClassApplyConfiguration) WithFinalizers(values ...string) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *StorageClassApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithProvisioner sets the Provisioner field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Provisioner field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithProvisioner(value string) *StorageClassApplyConfiguration {\n\tb.Provisioner = &value\n\treturn b\n}\n\n// WithParameters puts the entries into the Parameters field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Parameters field,\n// overwriting an existing map entries in Parameters field with the same key.\nfunc (b *StorageClassApplyConfiguration) WithParameters(entries map[string]string) *StorageClassApplyConfiguration {\n\tif b.Parameters == nil && len(entries) > 0 {\n\t\tb.Parameters = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Parameters[k] = v\n\t}\n\treturn b\n}\n\n// WithReclaimPolicy sets the ReclaimPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReclaimPolicy field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithReclaimPolicy(value corev1.PersistentVolumeReclaimPolicy) *StorageClassApplyConfiguration {\n\tb.ReclaimPolicy = &value\n\treturn b\n}\n\n// WithMountOptions adds the given value to the MountOptions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the MountOptions field.\nfunc (b *StorageClassApplyConfiguration) WithMountOptions(values ...string) *StorageClassApplyConfiguration {\n\tfor i := range values {\n\t\tb.MountOptions = append(b.MountOptions, values[i])\n\t}\n\treturn b\n}\n\n// WithAllowVolumeExpansion sets the AllowVolumeExpansion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AllowVolumeExpansion field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithAllowVolumeExpansion(value bool) *StorageClassApplyConfiguration {\n\tb.AllowVolumeExpansion = &value\n\treturn b\n}\n\n// WithVolumeBindingMode sets the VolumeBindingMode field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VolumeBindingMode field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithVolumeBindingMode(value storagev1.VolumeBindingMode) *StorageClassApplyConfiguration {\n\tb.VolumeBindingMode = &value\n\treturn b\n}\n\n// WithAllowedTopologies adds the given value to the AllowedTopologies field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the AllowedTopologies field.\nfunc (b *StorageClassApplyConfiguration) WithAllowedTopologies(values ...*applyconfigurationscorev1.TopologySelectorTermApplyConfiguration) *StorageClassApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithAllowedTopologies\")\n\t\t}\n\t\tb.AllowedTopologies = append(b.AllowedTopologies, *values[i])\n\t}\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *StorageClassApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1/tokenrequest.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// TokenRequestApplyConfiguration represents a declarative configuration of the TokenRequest type for use\n// with apply.\ntype TokenRequestApplyConfiguration struct {\n\tAudience          *string `json:\"audience,omitempty\"`\n\tExpirationSeconds *int64  `json:\"expirationSeconds,omitempty\"`\n}\n\n// TokenRequestApplyConfiguration constructs a declarative configuration of the TokenRequest type for use with\n// apply.\nfunc TokenRequest() *TokenRequestApplyConfiguration {\n\treturn &TokenRequestApplyConfiguration{}\n}\n\n// WithAudience sets the Audience field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Audience field is set to the value of the last call.\nfunc (b *TokenRequestApplyConfiguration) WithAudience(value string) *TokenRequestApplyConfiguration {\n\tb.Audience = &value\n\treturn b\n}\n\n// WithExpirationSeconds sets the ExpirationSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ExpirationSeconds field is set to the value of the last call.\nfunc (b *TokenRequestApplyConfiguration) WithExpirationSeconds(value int64) *TokenRequestApplyConfiguration {\n\tb.ExpirationSeconds = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1/volumeattachment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tstoragev1 \"k8s.io/api/storage/v1\"\n\tapismetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// VolumeAttachmentApplyConfiguration represents a declarative configuration of the VolumeAttachment type for use\n// with apply.\ntype VolumeAttachmentApplyConfiguration struct {\n\tmetav1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*metav1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                                 *VolumeAttachmentSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                               *VolumeAttachmentStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// VolumeAttachment constructs a declarative configuration of the VolumeAttachment type for use with\n// apply.\nfunc VolumeAttachment(name string) *VolumeAttachmentApplyConfiguration {\n\tb := &VolumeAttachmentApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"VolumeAttachment\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1\")\n\treturn b\n}\n\n// ExtractVolumeAttachment extracts the applied configuration owned by fieldManager from\n// volumeAttachment. If no managedFields are found in volumeAttachment for fieldManager, a\n// VolumeAttachmentApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// volumeAttachment must be a unmodified VolumeAttachment API object that was retrieved from the Kubernetes API.\n// ExtractVolumeAttachment provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractVolumeAttachment(volumeAttachment *storagev1.VolumeAttachment, fieldManager string) (*VolumeAttachmentApplyConfiguration, error) {\n\treturn extractVolumeAttachment(volumeAttachment, fieldManager, \"\")\n}\n\n// ExtractVolumeAttachmentStatus is the same as ExtractVolumeAttachment except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractVolumeAttachmentStatus(volumeAttachment *storagev1.VolumeAttachment, fieldManager string) (*VolumeAttachmentApplyConfiguration, error) {\n\treturn extractVolumeAttachment(volumeAttachment, fieldManager, \"status\")\n}\n\nfunc extractVolumeAttachment(volumeAttachment *storagev1.VolumeAttachment, fieldManager string, subresource string) (*VolumeAttachmentApplyConfiguration, error) {\n\tb := &VolumeAttachmentApplyConfiguration{}\n\terr := managedfields.ExtractInto(volumeAttachment, internal.Parser().Type(\"io.k8s.api.storage.v1.VolumeAttachment\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(volumeAttachment.Name)\n\n\tb.WithKind(\"VolumeAttachment\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithKind(value string) *VolumeAttachmentApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithAPIVersion(value string) *VolumeAttachmentApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithName(value string) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithGenerateName(value string) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithNamespace(value string) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithUID(value types.UID) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithResourceVersion(value string) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithGeneration(value int64) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithCreationTimestamp(value apismetav1.Time) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithDeletionTimestamp(value apismetav1.Time) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *VolumeAttachmentApplyConfiguration) WithLabels(entries map[string]string) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *VolumeAttachmentApplyConfiguration) WithAnnotations(entries map[string]string) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *VolumeAttachmentApplyConfiguration) WithOwnerReferences(values ...*metav1.OwnerReferenceApplyConfiguration) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *VolumeAttachmentApplyConfiguration) WithFinalizers(values ...string) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *VolumeAttachmentApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &metav1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithSpec(value *VolumeAttachmentSpecApplyConfiguration) *VolumeAttachmentApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithStatus(value *VolumeAttachmentStatusApplyConfiguration) *VolumeAttachmentApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *VolumeAttachmentApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1/volumeattachmentsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n)\n\n// VolumeAttachmentSourceApplyConfiguration represents a declarative configuration of the VolumeAttachmentSource type for use\n// with apply.\ntype VolumeAttachmentSourceApplyConfiguration struct {\n\tPersistentVolumeName *string                                        `json:\"persistentVolumeName,omitempty\"`\n\tInlineVolumeSpec     *corev1.PersistentVolumeSpecApplyConfiguration `json:\"inlineVolumeSpec,omitempty\"`\n}\n\n// VolumeAttachmentSourceApplyConfiguration constructs a declarative configuration of the VolumeAttachmentSource type for use with\n// apply.\nfunc VolumeAttachmentSource() *VolumeAttachmentSourceApplyConfiguration {\n\treturn &VolumeAttachmentSourceApplyConfiguration{}\n}\n\n// WithPersistentVolumeName sets the PersistentVolumeName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PersistentVolumeName field is set to the value of the last call.\nfunc (b *VolumeAttachmentSourceApplyConfiguration) WithPersistentVolumeName(value string) *VolumeAttachmentSourceApplyConfiguration {\n\tb.PersistentVolumeName = &value\n\treturn b\n}\n\n// WithInlineVolumeSpec sets the InlineVolumeSpec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the InlineVolumeSpec field is set to the value of the last call.\nfunc (b *VolumeAttachmentSourceApplyConfiguration) WithInlineVolumeSpec(value *corev1.PersistentVolumeSpecApplyConfiguration) *VolumeAttachmentSourceApplyConfiguration {\n\tb.InlineVolumeSpec = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1/volumeattachmentspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// VolumeAttachmentSpecApplyConfiguration represents a declarative configuration of the VolumeAttachmentSpec type for use\n// with apply.\ntype VolumeAttachmentSpecApplyConfiguration struct {\n\tAttacher *string                                   `json:\"attacher,omitempty\"`\n\tSource   *VolumeAttachmentSourceApplyConfiguration `json:\"source,omitempty\"`\n\tNodeName *string                                   `json:\"nodeName,omitempty\"`\n}\n\n// VolumeAttachmentSpecApplyConfiguration constructs a declarative configuration of the VolumeAttachmentSpec type for use with\n// apply.\nfunc VolumeAttachmentSpec() *VolumeAttachmentSpecApplyConfiguration {\n\treturn &VolumeAttachmentSpecApplyConfiguration{}\n}\n\n// WithAttacher sets the Attacher field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Attacher field is set to the value of the last call.\nfunc (b *VolumeAttachmentSpecApplyConfiguration) WithAttacher(value string) *VolumeAttachmentSpecApplyConfiguration {\n\tb.Attacher = &value\n\treturn b\n}\n\n// WithSource sets the Source field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Source field is set to the value of the last call.\nfunc (b *VolumeAttachmentSpecApplyConfiguration) WithSource(value *VolumeAttachmentSourceApplyConfiguration) *VolumeAttachmentSpecApplyConfiguration {\n\tb.Source = value\n\treturn b\n}\n\n// WithNodeName sets the NodeName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeName field is set to the value of the last call.\nfunc (b *VolumeAttachmentSpecApplyConfiguration) WithNodeName(value string) *VolumeAttachmentSpecApplyConfiguration {\n\tb.NodeName = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1/volumeattachmentstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// VolumeAttachmentStatusApplyConfiguration represents a declarative configuration of the VolumeAttachmentStatus type for use\n// with apply.\ntype VolumeAttachmentStatusApplyConfiguration struct {\n\tAttached           *bool                          `json:\"attached,omitempty\"`\n\tAttachmentMetadata map[string]string              `json:\"attachmentMetadata,omitempty\"`\n\tAttachError        *VolumeErrorApplyConfiguration `json:\"attachError,omitempty\"`\n\tDetachError        *VolumeErrorApplyConfiguration `json:\"detachError,omitempty\"`\n}\n\n// VolumeAttachmentStatusApplyConfiguration constructs a declarative configuration of the VolumeAttachmentStatus type for use with\n// apply.\nfunc VolumeAttachmentStatus() *VolumeAttachmentStatusApplyConfiguration {\n\treturn &VolumeAttachmentStatusApplyConfiguration{}\n}\n\n// WithAttached sets the Attached field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Attached field is set to the value of the last call.\nfunc (b *VolumeAttachmentStatusApplyConfiguration) WithAttached(value bool) *VolumeAttachmentStatusApplyConfiguration {\n\tb.Attached = &value\n\treturn b\n}\n\n// WithAttachmentMetadata puts the entries into the AttachmentMetadata field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the AttachmentMetadata field,\n// overwriting an existing map entries in AttachmentMetadata field with the same key.\nfunc (b *VolumeAttachmentStatusApplyConfiguration) WithAttachmentMetadata(entries map[string]string) *VolumeAttachmentStatusApplyConfiguration {\n\tif b.AttachmentMetadata == nil && len(entries) > 0 {\n\t\tb.AttachmentMetadata = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.AttachmentMetadata[k] = v\n\t}\n\treturn b\n}\n\n// WithAttachError sets the AttachError field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AttachError field is set to the value of the last call.\nfunc (b *VolumeAttachmentStatusApplyConfiguration) WithAttachError(value *VolumeErrorApplyConfiguration) *VolumeAttachmentStatusApplyConfiguration {\n\tb.AttachError = value\n\treturn b\n}\n\n// WithDetachError sets the DetachError field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DetachError field is set to the value of the last call.\nfunc (b *VolumeAttachmentStatusApplyConfiguration) WithDetachError(value *VolumeErrorApplyConfiguration) *VolumeAttachmentStatusApplyConfiguration {\n\tb.DetachError = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1/volumeerror.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// VolumeErrorApplyConfiguration represents a declarative configuration of the VolumeError type for use\n// with apply.\ntype VolumeErrorApplyConfiguration struct {\n\tTime    *metav1.Time `json:\"time,omitempty\"`\n\tMessage *string      `json:\"message,omitempty\"`\n}\n\n// VolumeErrorApplyConfiguration constructs a declarative configuration of the VolumeError type for use with\n// apply.\nfunc VolumeError() *VolumeErrorApplyConfiguration {\n\treturn &VolumeErrorApplyConfiguration{}\n}\n\n// WithTime sets the Time field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Time field is set to the value of the last call.\nfunc (b *VolumeErrorApplyConfiguration) WithTime(value metav1.Time) *VolumeErrorApplyConfiguration {\n\tb.Time = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *VolumeErrorApplyConfiguration) WithMessage(value string) *VolumeErrorApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1/volumenoderesources.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1\n\n// VolumeNodeResourcesApplyConfiguration represents a declarative configuration of the VolumeNodeResources type for use\n// with apply.\ntype VolumeNodeResourcesApplyConfiguration struct {\n\tCount *int32 `json:\"count,omitempty\"`\n}\n\n// VolumeNodeResourcesApplyConfiguration constructs a declarative configuration of the VolumeNodeResources type for use with\n// apply.\nfunc VolumeNodeResources() *VolumeNodeResourcesApplyConfiguration {\n\treturn &VolumeNodeResourcesApplyConfiguration{}\n}\n\n// WithCount sets the Count field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Count field is set to the value of the last call.\nfunc (b *VolumeNodeResourcesApplyConfiguration) WithCount(value int32) *VolumeNodeResourcesApplyConfiguration {\n\tb.Count = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1alpha1/csistoragecapacity.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tstoragev1alpha1 \"k8s.io/api/storage/v1alpha1\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// CSIStorageCapacityApplyConfiguration represents a declarative configuration of the CSIStorageCapacity type for use\n// with apply.\ntype CSIStorageCapacityApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tNodeTopology                     *v1.LabelSelectorApplyConfiguration `json:\"nodeTopology,omitempty\"`\n\tStorageClassName                 *string                             `json:\"storageClassName,omitempty\"`\n\tCapacity                         *resource.Quantity                  `json:\"capacity,omitempty\"`\n\tMaximumVolumeSize                *resource.Quantity                  `json:\"maximumVolumeSize,omitempty\"`\n}\n\n// CSIStorageCapacity constructs a declarative configuration of the CSIStorageCapacity type for use with\n// apply.\nfunc CSIStorageCapacity(name, namespace string) *CSIStorageCapacityApplyConfiguration {\n\tb := &CSIStorageCapacityApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"CSIStorageCapacity\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1alpha1\")\n\treturn b\n}\n\n// ExtractCSIStorageCapacity extracts the applied configuration owned by fieldManager from\n// cSIStorageCapacity. If no managedFields are found in cSIStorageCapacity for fieldManager, a\n// CSIStorageCapacityApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// cSIStorageCapacity must be a unmodified CSIStorageCapacity API object that was retrieved from the Kubernetes API.\n// ExtractCSIStorageCapacity provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractCSIStorageCapacity(cSIStorageCapacity *storagev1alpha1.CSIStorageCapacity, fieldManager string) (*CSIStorageCapacityApplyConfiguration, error) {\n\treturn extractCSIStorageCapacity(cSIStorageCapacity, fieldManager, \"\")\n}\n\n// ExtractCSIStorageCapacityStatus is the same as ExtractCSIStorageCapacity except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractCSIStorageCapacityStatus(cSIStorageCapacity *storagev1alpha1.CSIStorageCapacity, fieldManager string) (*CSIStorageCapacityApplyConfiguration, error) {\n\treturn extractCSIStorageCapacity(cSIStorageCapacity, fieldManager, \"status\")\n}\n\nfunc extractCSIStorageCapacity(cSIStorageCapacity *storagev1alpha1.CSIStorageCapacity, fieldManager string, subresource string) (*CSIStorageCapacityApplyConfiguration, error) {\n\tb := &CSIStorageCapacityApplyConfiguration{}\n\terr := managedfields.ExtractInto(cSIStorageCapacity, internal.Parser().Type(\"io.k8s.api.storage.v1alpha1.CSIStorageCapacity\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(cSIStorageCapacity.Name)\n\tb.WithNamespace(cSIStorageCapacity.Namespace)\n\n\tb.WithKind(\"CSIStorageCapacity\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1alpha1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithKind(value string) *CSIStorageCapacityApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithAPIVersion(value string) *CSIStorageCapacityApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithName(value string) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithGenerateName(value string) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithNamespace(value string) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithUID(value types.UID) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithResourceVersion(value string) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithGeneration(value int64) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithCreationTimestamp(value metav1.Time) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithLabels(entries map[string]string) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithAnnotations(entries map[string]string) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithFinalizers(values ...string) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *CSIStorageCapacityApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithNodeTopology sets the NodeTopology field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeTopology field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithNodeTopology(value *v1.LabelSelectorApplyConfiguration) *CSIStorageCapacityApplyConfiguration {\n\tb.NodeTopology = value\n\treturn b\n}\n\n// WithStorageClassName sets the StorageClassName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StorageClassName field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithStorageClassName(value string) *CSIStorageCapacityApplyConfiguration {\n\tb.StorageClassName = &value\n\treturn b\n}\n\n// WithCapacity sets the Capacity field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Capacity field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithCapacity(value resource.Quantity) *CSIStorageCapacityApplyConfiguration {\n\tb.Capacity = &value\n\treturn b\n}\n\n// WithMaximumVolumeSize sets the MaximumVolumeSize field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaximumVolumeSize field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithMaximumVolumeSize(value resource.Quantity) *CSIStorageCapacityApplyConfiguration {\n\tb.MaximumVolumeSize = &value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *CSIStorageCapacityApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1alpha1/volumeattachment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tstoragev1alpha1 \"k8s.io/api/storage/v1alpha1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// VolumeAttachmentApplyConfiguration represents a declarative configuration of the VolumeAttachment type for use\n// with apply.\ntype VolumeAttachmentApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *VolumeAttachmentSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *VolumeAttachmentStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// VolumeAttachment constructs a declarative configuration of the VolumeAttachment type for use with\n// apply.\nfunc VolumeAttachment(name string) *VolumeAttachmentApplyConfiguration {\n\tb := &VolumeAttachmentApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"VolumeAttachment\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1alpha1\")\n\treturn b\n}\n\n// ExtractVolumeAttachment extracts the applied configuration owned by fieldManager from\n// volumeAttachment. If no managedFields are found in volumeAttachment for fieldManager, a\n// VolumeAttachmentApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// volumeAttachment must be a unmodified VolumeAttachment API object that was retrieved from the Kubernetes API.\n// ExtractVolumeAttachment provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractVolumeAttachment(volumeAttachment *storagev1alpha1.VolumeAttachment, fieldManager string) (*VolumeAttachmentApplyConfiguration, error) {\n\treturn extractVolumeAttachment(volumeAttachment, fieldManager, \"\")\n}\n\n// ExtractVolumeAttachmentStatus is the same as ExtractVolumeAttachment except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractVolumeAttachmentStatus(volumeAttachment *storagev1alpha1.VolumeAttachment, fieldManager string) (*VolumeAttachmentApplyConfiguration, error) {\n\treturn extractVolumeAttachment(volumeAttachment, fieldManager, \"status\")\n}\n\nfunc extractVolumeAttachment(volumeAttachment *storagev1alpha1.VolumeAttachment, fieldManager string, subresource string) (*VolumeAttachmentApplyConfiguration, error) {\n\tb := &VolumeAttachmentApplyConfiguration{}\n\terr := managedfields.ExtractInto(volumeAttachment, internal.Parser().Type(\"io.k8s.api.storage.v1alpha1.VolumeAttachment\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(volumeAttachment.Name)\n\n\tb.WithKind(\"VolumeAttachment\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1alpha1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithKind(value string) *VolumeAttachmentApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithAPIVersion(value string) *VolumeAttachmentApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithName(value string) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithGenerateName(value string) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithNamespace(value string) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithUID(value types.UID) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithResourceVersion(value string) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithGeneration(value int64) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithCreationTimestamp(value metav1.Time) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *VolumeAttachmentApplyConfiguration) WithLabels(entries map[string]string) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *VolumeAttachmentApplyConfiguration) WithAnnotations(entries map[string]string) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *VolumeAttachmentApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *VolumeAttachmentApplyConfiguration) WithFinalizers(values ...string) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *VolumeAttachmentApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithSpec(value *VolumeAttachmentSpecApplyConfiguration) *VolumeAttachmentApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithStatus(value *VolumeAttachmentStatusApplyConfiguration) *VolumeAttachmentApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *VolumeAttachmentApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1alpha1/volumeattachmentsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tv1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n)\n\n// VolumeAttachmentSourceApplyConfiguration represents a declarative configuration of the VolumeAttachmentSource type for use\n// with apply.\ntype VolumeAttachmentSourceApplyConfiguration struct {\n\tPersistentVolumeName *string                                    `json:\"persistentVolumeName,omitempty\"`\n\tInlineVolumeSpec     *v1.PersistentVolumeSpecApplyConfiguration `json:\"inlineVolumeSpec,omitempty\"`\n}\n\n// VolumeAttachmentSourceApplyConfiguration constructs a declarative configuration of the VolumeAttachmentSource type for use with\n// apply.\nfunc VolumeAttachmentSource() *VolumeAttachmentSourceApplyConfiguration {\n\treturn &VolumeAttachmentSourceApplyConfiguration{}\n}\n\n// WithPersistentVolumeName sets the PersistentVolumeName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PersistentVolumeName field is set to the value of the last call.\nfunc (b *VolumeAttachmentSourceApplyConfiguration) WithPersistentVolumeName(value string) *VolumeAttachmentSourceApplyConfiguration {\n\tb.PersistentVolumeName = &value\n\treturn b\n}\n\n// WithInlineVolumeSpec sets the InlineVolumeSpec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the InlineVolumeSpec field is set to the value of the last call.\nfunc (b *VolumeAttachmentSourceApplyConfiguration) WithInlineVolumeSpec(value *v1.PersistentVolumeSpecApplyConfiguration) *VolumeAttachmentSourceApplyConfiguration {\n\tb.InlineVolumeSpec = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1alpha1/volumeattachmentspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// VolumeAttachmentSpecApplyConfiguration represents a declarative configuration of the VolumeAttachmentSpec type for use\n// with apply.\ntype VolumeAttachmentSpecApplyConfiguration struct {\n\tAttacher *string                                   `json:\"attacher,omitempty\"`\n\tSource   *VolumeAttachmentSourceApplyConfiguration `json:\"source,omitempty\"`\n\tNodeName *string                                   `json:\"nodeName,omitempty\"`\n}\n\n// VolumeAttachmentSpecApplyConfiguration constructs a declarative configuration of the VolumeAttachmentSpec type for use with\n// apply.\nfunc VolumeAttachmentSpec() *VolumeAttachmentSpecApplyConfiguration {\n\treturn &VolumeAttachmentSpecApplyConfiguration{}\n}\n\n// WithAttacher sets the Attacher field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Attacher field is set to the value of the last call.\nfunc (b *VolumeAttachmentSpecApplyConfiguration) WithAttacher(value string) *VolumeAttachmentSpecApplyConfiguration {\n\tb.Attacher = &value\n\treturn b\n}\n\n// WithSource sets the Source field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Source field is set to the value of the last call.\nfunc (b *VolumeAttachmentSpecApplyConfiguration) WithSource(value *VolumeAttachmentSourceApplyConfiguration) *VolumeAttachmentSpecApplyConfiguration {\n\tb.Source = value\n\treturn b\n}\n\n// WithNodeName sets the NodeName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeName field is set to the value of the last call.\nfunc (b *VolumeAttachmentSpecApplyConfiguration) WithNodeName(value string) *VolumeAttachmentSpecApplyConfiguration {\n\tb.NodeName = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1alpha1/volumeattachmentstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// VolumeAttachmentStatusApplyConfiguration represents a declarative configuration of the VolumeAttachmentStatus type for use\n// with apply.\ntype VolumeAttachmentStatusApplyConfiguration struct {\n\tAttached           *bool                          `json:\"attached,omitempty\"`\n\tAttachmentMetadata map[string]string              `json:\"attachmentMetadata,omitempty\"`\n\tAttachError        *VolumeErrorApplyConfiguration `json:\"attachError,omitempty\"`\n\tDetachError        *VolumeErrorApplyConfiguration `json:\"detachError,omitempty\"`\n}\n\n// VolumeAttachmentStatusApplyConfiguration constructs a declarative configuration of the VolumeAttachmentStatus type for use with\n// apply.\nfunc VolumeAttachmentStatus() *VolumeAttachmentStatusApplyConfiguration {\n\treturn &VolumeAttachmentStatusApplyConfiguration{}\n}\n\n// WithAttached sets the Attached field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Attached field is set to the value of the last call.\nfunc (b *VolumeAttachmentStatusApplyConfiguration) WithAttached(value bool) *VolumeAttachmentStatusApplyConfiguration {\n\tb.Attached = &value\n\treturn b\n}\n\n// WithAttachmentMetadata puts the entries into the AttachmentMetadata field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the AttachmentMetadata field,\n// overwriting an existing map entries in AttachmentMetadata field with the same key.\nfunc (b *VolumeAttachmentStatusApplyConfiguration) WithAttachmentMetadata(entries map[string]string) *VolumeAttachmentStatusApplyConfiguration {\n\tif b.AttachmentMetadata == nil && len(entries) > 0 {\n\t\tb.AttachmentMetadata = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.AttachmentMetadata[k] = v\n\t}\n\treturn b\n}\n\n// WithAttachError sets the AttachError field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AttachError field is set to the value of the last call.\nfunc (b *VolumeAttachmentStatusApplyConfiguration) WithAttachError(value *VolumeErrorApplyConfiguration) *VolumeAttachmentStatusApplyConfiguration {\n\tb.AttachError = value\n\treturn b\n}\n\n// WithDetachError sets the DetachError field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DetachError field is set to the value of the last call.\nfunc (b *VolumeAttachmentStatusApplyConfiguration) WithDetachError(value *VolumeErrorApplyConfiguration) *VolumeAttachmentStatusApplyConfiguration {\n\tb.DetachError = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1alpha1/volumeattributesclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tstoragev1alpha1 \"k8s.io/api/storage/v1alpha1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// VolumeAttributesClassApplyConfiguration represents a declarative configuration of the VolumeAttributesClass type for use\n// with apply.\ntype VolumeAttributesClassApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tDriverName                       *string           `json:\"driverName,omitempty\"`\n\tParameters                       map[string]string `json:\"parameters,omitempty\"`\n}\n\n// VolumeAttributesClass constructs a declarative configuration of the VolumeAttributesClass type for use with\n// apply.\nfunc VolumeAttributesClass(name string) *VolumeAttributesClassApplyConfiguration {\n\tb := &VolumeAttributesClassApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"VolumeAttributesClass\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1alpha1\")\n\treturn b\n}\n\n// ExtractVolumeAttributesClass extracts the applied configuration owned by fieldManager from\n// volumeAttributesClass. If no managedFields are found in volumeAttributesClass for fieldManager, a\n// VolumeAttributesClassApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// volumeAttributesClass must be a unmodified VolumeAttributesClass API object that was retrieved from the Kubernetes API.\n// ExtractVolumeAttributesClass provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractVolumeAttributesClass(volumeAttributesClass *storagev1alpha1.VolumeAttributesClass, fieldManager string) (*VolumeAttributesClassApplyConfiguration, error) {\n\treturn extractVolumeAttributesClass(volumeAttributesClass, fieldManager, \"\")\n}\n\n// ExtractVolumeAttributesClassStatus is the same as ExtractVolumeAttributesClass except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractVolumeAttributesClassStatus(volumeAttributesClass *storagev1alpha1.VolumeAttributesClass, fieldManager string) (*VolumeAttributesClassApplyConfiguration, error) {\n\treturn extractVolumeAttributesClass(volumeAttributesClass, fieldManager, \"status\")\n}\n\nfunc extractVolumeAttributesClass(volumeAttributesClass *storagev1alpha1.VolumeAttributesClass, fieldManager string, subresource string) (*VolumeAttributesClassApplyConfiguration, error) {\n\tb := &VolumeAttributesClassApplyConfiguration{}\n\terr := managedfields.ExtractInto(volumeAttributesClass, internal.Parser().Type(\"io.k8s.api.storage.v1alpha1.VolumeAttributesClass\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(volumeAttributesClass.Name)\n\n\tb.WithKind(\"VolumeAttributesClass\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1alpha1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *VolumeAttributesClassApplyConfiguration) WithKind(value string) *VolumeAttributesClassApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *VolumeAttributesClassApplyConfiguration) WithAPIVersion(value string) *VolumeAttributesClassApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *VolumeAttributesClassApplyConfiguration) WithName(value string) *VolumeAttributesClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *VolumeAttributesClassApplyConfiguration) WithGenerateName(value string) *VolumeAttributesClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *VolumeAttributesClassApplyConfiguration) WithNamespace(value string) *VolumeAttributesClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *VolumeAttributesClassApplyConfiguration) WithUID(value types.UID) *VolumeAttributesClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *VolumeAttributesClassApplyConfiguration) WithResourceVersion(value string) *VolumeAttributesClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *VolumeAttributesClassApplyConfiguration) WithGeneration(value int64) *VolumeAttributesClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *VolumeAttributesClassApplyConfiguration) WithCreationTimestamp(value metav1.Time) *VolumeAttributesClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *VolumeAttributesClassApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *VolumeAttributesClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *VolumeAttributesClassApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *VolumeAttributesClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *VolumeAttributesClassApplyConfiguration) WithLabels(entries map[string]string) *VolumeAttributesClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *VolumeAttributesClassApplyConfiguration) WithAnnotations(entries map[string]string) *VolumeAttributesClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *VolumeAttributesClassApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *VolumeAttributesClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *VolumeAttributesClassApplyConfiguration) WithFinalizers(values ...string) *VolumeAttributesClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *VolumeAttributesClassApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithDriverName sets the DriverName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DriverName field is set to the value of the last call.\nfunc (b *VolumeAttributesClassApplyConfiguration) WithDriverName(value string) *VolumeAttributesClassApplyConfiguration {\n\tb.DriverName = &value\n\treturn b\n}\n\n// WithParameters puts the entries into the Parameters field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Parameters field,\n// overwriting an existing map entries in Parameters field with the same key.\nfunc (b *VolumeAttributesClassApplyConfiguration) WithParameters(entries map[string]string) *VolumeAttributesClassApplyConfiguration {\n\tif b.Parameters == nil && len(entries) > 0 {\n\t\tb.Parameters = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Parameters[k] = v\n\t}\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *VolumeAttributesClassApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1alpha1/volumeerror.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// VolumeErrorApplyConfiguration represents a declarative configuration of the VolumeError type for use\n// with apply.\ntype VolumeErrorApplyConfiguration struct {\n\tTime    *v1.Time `json:\"time,omitempty\"`\n\tMessage *string  `json:\"message,omitempty\"`\n}\n\n// VolumeErrorApplyConfiguration constructs a declarative configuration of the VolumeError type for use with\n// apply.\nfunc VolumeError() *VolumeErrorApplyConfiguration {\n\treturn &VolumeErrorApplyConfiguration{}\n}\n\n// WithTime sets the Time field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Time field is set to the value of the last call.\nfunc (b *VolumeErrorApplyConfiguration) WithTime(value v1.Time) *VolumeErrorApplyConfiguration {\n\tb.Time = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *VolumeErrorApplyConfiguration) WithMessage(value string) *VolumeErrorApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/csidriver.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tstoragev1beta1 \"k8s.io/api/storage/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// CSIDriverApplyConfiguration represents a declarative configuration of the CSIDriver type for use\n// with apply.\ntype CSIDriverApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *CSIDriverSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// CSIDriver constructs a declarative configuration of the CSIDriver type for use with\n// apply.\nfunc CSIDriver(name string) *CSIDriverApplyConfiguration {\n\tb := &CSIDriverApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"CSIDriver\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractCSIDriver extracts the applied configuration owned by fieldManager from\n// cSIDriver. If no managedFields are found in cSIDriver for fieldManager, a\n// CSIDriverApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// cSIDriver must be a unmodified CSIDriver API object that was retrieved from the Kubernetes API.\n// ExtractCSIDriver provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractCSIDriver(cSIDriver *storagev1beta1.CSIDriver, fieldManager string) (*CSIDriverApplyConfiguration, error) {\n\treturn extractCSIDriver(cSIDriver, fieldManager, \"\")\n}\n\n// ExtractCSIDriverStatus is the same as ExtractCSIDriver except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractCSIDriverStatus(cSIDriver *storagev1beta1.CSIDriver, fieldManager string) (*CSIDriverApplyConfiguration, error) {\n\treturn extractCSIDriver(cSIDriver, fieldManager, \"status\")\n}\n\nfunc extractCSIDriver(cSIDriver *storagev1beta1.CSIDriver, fieldManager string, subresource string) (*CSIDriverApplyConfiguration, error) {\n\tb := &CSIDriverApplyConfiguration{}\n\terr := managedfields.ExtractInto(cSIDriver, internal.Parser().Type(\"io.k8s.api.storage.v1beta1.CSIDriver\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(cSIDriver.Name)\n\n\tb.WithKind(\"CSIDriver\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithKind(value string) *CSIDriverApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithAPIVersion(value string) *CSIDriverApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithName(value string) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithGenerateName(value string) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithNamespace(value string) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithUID(value types.UID) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithResourceVersion(value string) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithGeneration(value int64) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithCreationTimestamp(value metav1.Time) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *CSIDriverApplyConfiguration) WithLabels(entries map[string]string) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *CSIDriverApplyConfiguration) WithAnnotations(entries map[string]string) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *CSIDriverApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *CSIDriverApplyConfiguration) WithFinalizers(values ...string) *CSIDriverApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *CSIDriverApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *CSIDriverApplyConfiguration) WithSpec(value *CSIDriverSpecApplyConfiguration) *CSIDriverApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *CSIDriverApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/csidriverspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tstoragev1beta1 \"k8s.io/api/storage/v1beta1\"\n)\n\n// CSIDriverSpecApplyConfiguration represents a declarative configuration of the CSIDriverSpec type for use\n// with apply.\ntype CSIDriverSpecApplyConfiguration struct {\n\tAttachRequired       *bool                                `json:\"attachRequired,omitempty\"`\n\tPodInfoOnMount       *bool                                `json:\"podInfoOnMount,omitempty\"`\n\tVolumeLifecycleModes []storagev1beta1.VolumeLifecycleMode `json:\"volumeLifecycleModes,omitempty\"`\n\tStorageCapacity      *bool                                `json:\"storageCapacity,omitempty\"`\n\tFSGroupPolicy        *storagev1beta1.FSGroupPolicy        `json:\"fsGroupPolicy,omitempty\"`\n\tTokenRequests        []TokenRequestApplyConfiguration     `json:\"tokenRequests,omitempty\"`\n\tRequiresRepublish    *bool                                `json:\"requiresRepublish,omitempty\"`\n\tSELinuxMount         *bool                                `json:\"seLinuxMount,omitempty\"`\n}\n\n// CSIDriverSpecApplyConfiguration constructs a declarative configuration of the CSIDriverSpec type for use with\n// apply.\nfunc CSIDriverSpec() *CSIDriverSpecApplyConfiguration {\n\treturn &CSIDriverSpecApplyConfiguration{}\n}\n\n// WithAttachRequired sets the AttachRequired field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AttachRequired field is set to the value of the last call.\nfunc (b *CSIDriverSpecApplyConfiguration) WithAttachRequired(value bool) *CSIDriverSpecApplyConfiguration {\n\tb.AttachRequired = &value\n\treturn b\n}\n\n// WithPodInfoOnMount sets the PodInfoOnMount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PodInfoOnMount field is set to the value of the last call.\nfunc (b *CSIDriverSpecApplyConfiguration) WithPodInfoOnMount(value bool) *CSIDriverSpecApplyConfiguration {\n\tb.PodInfoOnMount = &value\n\treturn b\n}\n\n// WithVolumeLifecycleModes adds the given value to the VolumeLifecycleModes field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the VolumeLifecycleModes field.\nfunc (b *CSIDriverSpecApplyConfiguration) WithVolumeLifecycleModes(values ...storagev1beta1.VolumeLifecycleMode) *CSIDriverSpecApplyConfiguration {\n\tfor i := range values {\n\t\tb.VolumeLifecycleModes = append(b.VolumeLifecycleModes, values[i])\n\t}\n\treturn b\n}\n\n// WithStorageCapacity sets the StorageCapacity field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StorageCapacity field is set to the value of the last call.\nfunc (b *CSIDriverSpecApplyConfiguration) WithStorageCapacity(value bool) *CSIDriverSpecApplyConfiguration {\n\tb.StorageCapacity = &value\n\treturn b\n}\n\n// WithFSGroupPolicy sets the FSGroupPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the FSGroupPolicy field is set to the value of the last call.\nfunc (b *CSIDriverSpecApplyConfiguration) WithFSGroupPolicy(value storagev1beta1.FSGroupPolicy) *CSIDriverSpecApplyConfiguration {\n\tb.FSGroupPolicy = &value\n\treturn b\n}\n\n// WithTokenRequests adds the given value to the TokenRequests field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the TokenRequests field.\nfunc (b *CSIDriverSpecApplyConfiguration) WithTokenRequests(values ...*TokenRequestApplyConfiguration) *CSIDriverSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithTokenRequests\")\n\t\t}\n\t\tb.TokenRequests = append(b.TokenRequests, *values[i])\n\t}\n\treturn b\n}\n\n// WithRequiresRepublish sets the RequiresRepublish field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the RequiresRepublish field is set to the value of the last call.\nfunc (b *CSIDriverSpecApplyConfiguration) WithRequiresRepublish(value bool) *CSIDriverSpecApplyConfiguration {\n\tb.RequiresRepublish = &value\n\treturn b\n}\n\n// WithSELinuxMount sets the SELinuxMount field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the SELinuxMount field is set to the value of the last call.\nfunc (b *CSIDriverSpecApplyConfiguration) WithSELinuxMount(value bool) *CSIDriverSpecApplyConfiguration {\n\tb.SELinuxMount = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/csinode.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tstoragev1beta1 \"k8s.io/api/storage/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// CSINodeApplyConfiguration represents a declarative configuration of the CSINode type for use\n// with apply.\ntype CSINodeApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *CSINodeSpecApplyConfiguration `json:\"spec,omitempty\"`\n}\n\n// CSINode constructs a declarative configuration of the CSINode type for use with\n// apply.\nfunc CSINode(name string) *CSINodeApplyConfiguration {\n\tb := &CSINodeApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"CSINode\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractCSINode extracts the applied configuration owned by fieldManager from\n// cSINode. If no managedFields are found in cSINode for fieldManager, a\n// CSINodeApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// cSINode must be a unmodified CSINode API object that was retrieved from the Kubernetes API.\n// ExtractCSINode provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractCSINode(cSINode *storagev1beta1.CSINode, fieldManager string) (*CSINodeApplyConfiguration, error) {\n\treturn extractCSINode(cSINode, fieldManager, \"\")\n}\n\n// ExtractCSINodeStatus is the same as ExtractCSINode except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractCSINodeStatus(cSINode *storagev1beta1.CSINode, fieldManager string) (*CSINodeApplyConfiguration, error) {\n\treturn extractCSINode(cSINode, fieldManager, \"status\")\n}\n\nfunc extractCSINode(cSINode *storagev1beta1.CSINode, fieldManager string, subresource string) (*CSINodeApplyConfiguration, error) {\n\tb := &CSINodeApplyConfiguration{}\n\terr := managedfields.ExtractInto(cSINode, internal.Parser().Type(\"io.k8s.api.storage.v1beta1.CSINode\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(cSINode.Name)\n\n\tb.WithKind(\"CSINode\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithKind(value string) *CSINodeApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithAPIVersion(value string) *CSINodeApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithName(value string) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithGenerateName(value string) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithNamespace(value string) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithUID(value types.UID) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithResourceVersion(value string) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithGeneration(value int64) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithCreationTimestamp(value metav1.Time) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *CSINodeApplyConfiguration) WithLabels(entries map[string]string) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *CSINodeApplyConfiguration) WithAnnotations(entries map[string]string) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *CSINodeApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *CSINodeApplyConfiguration) WithFinalizers(values ...string) *CSINodeApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *CSINodeApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *CSINodeApplyConfiguration) WithSpec(value *CSINodeSpecApplyConfiguration) *CSINodeApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *CSINodeApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/csinodedriver.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// CSINodeDriverApplyConfiguration represents a declarative configuration of the CSINodeDriver type for use\n// with apply.\ntype CSINodeDriverApplyConfiguration struct {\n\tName         *string                                `json:\"name,omitempty\"`\n\tNodeID       *string                                `json:\"nodeID,omitempty\"`\n\tTopologyKeys []string                               `json:\"topologyKeys,omitempty\"`\n\tAllocatable  *VolumeNodeResourcesApplyConfiguration `json:\"allocatable,omitempty\"`\n}\n\n// CSINodeDriverApplyConfiguration constructs a declarative configuration of the CSINodeDriver type for use with\n// apply.\nfunc CSINodeDriver() *CSINodeDriverApplyConfiguration {\n\treturn &CSINodeDriverApplyConfiguration{}\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *CSINodeDriverApplyConfiguration) WithName(value string) *CSINodeDriverApplyConfiguration {\n\tb.Name = &value\n\treturn b\n}\n\n// WithNodeID sets the NodeID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeID field is set to the value of the last call.\nfunc (b *CSINodeDriverApplyConfiguration) WithNodeID(value string) *CSINodeDriverApplyConfiguration {\n\tb.NodeID = &value\n\treturn b\n}\n\n// WithTopologyKeys adds the given value to the TopologyKeys field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the TopologyKeys field.\nfunc (b *CSINodeDriverApplyConfiguration) WithTopologyKeys(values ...string) *CSINodeDriverApplyConfiguration {\n\tfor i := range values {\n\t\tb.TopologyKeys = append(b.TopologyKeys, values[i])\n\t}\n\treturn b\n}\n\n// WithAllocatable sets the Allocatable field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Allocatable field is set to the value of the last call.\nfunc (b *CSINodeDriverApplyConfiguration) WithAllocatable(value *VolumeNodeResourcesApplyConfiguration) *CSINodeDriverApplyConfiguration {\n\tb.Allocatable = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/csinodespec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// CSINodeSpecApplyConfiguration represents a declarative configuration of the CSINodeSpec type for use\n// with apply.\ntype CSINodeSpecApplyConfiguration struct {\n\tDrivers []CSINodeDriverApplyConfiguration `json:\"drivers,omitempty\"`\n}\n\n// CSINodeSpecApplyConfiguration constructs a declarative configuration of the CSINodeSpec type for use with\n// apply.\nfunc CSINodeSpec() *CSINodeSpecApplyConfiguration {\n\treturn &CSINodeSpecApplyConfiguration{}\n}\n\n// WithDrivers adds the given value to the Drivers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Drivers field.\nfunc (b *CSINodeSpecApplyConfiguration) WithDrivers(values ...*CSINodeDriverApplyConfiguration) *CSINodeSpecApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithDrivers\")\n\t\t}\n\t\tb.Drivers = append(b.Drivers, *values[i])\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/csistoragecapacity.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tstoragev1beta1 \"k8s.io/api/storage/v1beta1\"\n\tresource \"k8s.io/apimachinery/pkg/api/resource\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// CSIStorageCapacityApplyConfiguration represents a declarative configuration of the CSIStorageCapacity type for use\n// with apply.\ntype CSIStorageCapacityApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tNodeTopology                     *v1.LabelSelectorApplyConfiguration `json:\"nodeTopology,omitempty\"`\n\tStorageClassName                 *string                             `json:\"storageClassName,omitempty\"`\n\tCapacity                         *resource.Quantity                  `json:\"capacity,omitempty\"`\n\tMaximumVolumeSize                *resource.Quantity                  `json:\"maximumVolumeSize,omitempty\"`\n}\n\n// CSIStorageCapacity constructs a declarative configuration of the CSIStorageCapacity type for use with\n// apply.\nfunc CSIStorageCapacity(name, namespace string) *CSIStorageCapacityApplyConfiguration {\n\tb := &CSIStorageCapacityApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithNamespace(namespace)\n\tb.WithKind(\"CSIStorageCapacity\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractCSIStorageCapacity extracts the applied configuration owned by fieldManager from\n// cSIStorageCapacity. If no managedFields are found in cSIStorageCapacity for fieldManager, a\n// CSIStorageCapacityApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// cSIStorageCapacity must be a unmodified CSIStorageCapacity API object that was retrieved from the Kubernetes API.\n// ExtractCSIStorageCapacity provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractCSIStorageCapacity(cSIStorageCapacity *storagev1beta1.CSIStorageCapacity, fieldManager string) (*CSIStorageCapacityApplyConfiguration, error) {\n\treturn extractCSIStorageCapacity(cSIStorageCapacity, fieldManager, \"\")\n}\n\n// ExtractCSIStorageCapacityStatus is the same as ExtractCSIStorageCapacity except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractCSIStorageCapacityStatus(cSIStorageCapacity *storagev1beta1.CSIStorageCapacity, fieldManager string) (*CSIStorageCapacityApplyConfiguration, error) {\n\treturn extractCSIStorageCapacity(cSIStorageCapacity, fieldManager, \"status\")\n}\n\nfunc extractCSIStorageCapacity(cSIStorageCapacity *storagev1beta1.CSIStorageCapacity, fieldManager string, subresource string) (*CSIStorageCapacityApplyConfiguration, error) {\n\tb := &CSIStorageCapacityApplyConfiguration{}\n\terr := managedfields.ExtractInto(cSIStorageCapacity, internal.Parser().Type(\"io.k8s.api.storage.v1beta1.CSIStorageCapacity\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(cSIStorageCapacity.Name)\n\tb.WithNamespace(cSIStorageCapacity.Namespace)\n\n\tb.WithKind(\"CSIStorageCapacity\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithKind(value string) *CSIStorageCapacityApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithAPIVersion(value string) *CSIStorageCapacityApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithName(value string) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithGenerateName(value string) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithNamespace(value string) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithUID(value types.UID) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithResourceVersion(value string) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithGeneration(value int64) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithCreationTimestamp(value metav1.Time) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithLabels(entries map[string]string) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithAnnotations(entries map[string]string) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithFinalizers(values ...string) *CSIStorageCapacityApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *CSIStorageCapacityApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithNodeTopology sets the NodeTopology field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeTopology field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithNodeTopology(value *v1.LabelSelectorApplyConfiguration) *CSIStorageCapacityApplyConfiguration {\n\tb.NodeTopology = value\n\treturn b\n}\n\n// WithStorageClassName sets the StorageClassName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the StorageClassName field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithStorageClassName(value string) *CSIStorageCapacityApplyConfiguration {\n\tb.StorageClassName = &value\n\treturn b\n}\n\n// WithCapacity sets the Capacity field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Capacity field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithCapacity(value resource.Quantity) *CSIStorageCapacityApplyConfiguration {\n\tb.Capacity = &value\n\treturn b\n}\n\n// WithMaximumVolumeSize sets the MaximumVolumeSize field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the MaximumVolumeSize field is set to the value of the last call.\nfunc (b *CSIStorageCapacityApplyConfiguration) WithMaximumVolumeSize(value resource.Quantity) *CSIStorageCapacityApplyConfiguration {\n\tb.MaximumVolumeSize = &value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *CSIStorageCapacityApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/storageclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tstoragev1beta1 \"k8s.io/api/storage/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tapplyconfigurationscorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// StorageClassApplyConfiguration represents a declarative configuration of the StorageClass type for use\n// with apply.\ntype StorageClassApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tProvisioner                      *string                                                            `json:\"provisioner,omitempty\"`\n\tParameters                       map[string]string                                                  `json:\"parameters,omitempty\"`\n\tReclaimPolicy                    *corev1.PersistentVolumeReclaimPolicy                              `json:\"reclaimPolicy,omitempty\"`\n\tMountOptions                     []string                                                           `json:\"mountOptions,omitempty\"`\n\tAllowVolumeExpansion             *bool                                                              `json:\"allowVolumeExpansion,omitempty\"`\n\tVolumeBindingMode                *storagev1beta1.VolumeBindingMode                                  `json:\"volumeBindingMode,omitempty\"`\n\tAllowedTopologies                []applyconfigurationscorev1.TopologySelectorTermApplyConfiguration `json:\"allowedTopologies,omitempty\"`\n}\n\n// StorageClass constructs a declarative configuration of the StorageClass type for use with\n// apply.\nfunc StorageClass(name string) *StorageClassApplyConfiguration {\n\tb := &StorageClassApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"StorageClass\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractStorageClass extracts the applied configuration owned by fieldManager from\n// storageClass. If no managedFields are found in storageClass for fieldManager, a\n// StorageClassApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// storageClass must be a unmodified StorageClass API object that was retrieved from the Kubernetes API.\n// ExtractStorageClass provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractStorageClass(storageClass *storagev1beta1.StorageClass, fieldManager string) (*StorageClassApplyConfiguration, error) {\n\treturn extractStorageClass(storageClass, fieldManager, \"\")\n}\n\n// ExtractStorageClassStatus is the same as ExtractStorageClass except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractStorageClassStatus(storageClass *storagev1beta1.StorageClass, fieldManager string) (*StorageClassApplyConfiguration, error) {\n\treturn extractStorageClass(storageClass, fieldManager, \"status\")\n}\n\nfunc extractStorageClass(storageClass *storagev1beta1.StorageClass, fieldManager string, subresource string) (*StorageClassApplyConfiguration, error) {\n\tb := &StorageClassApplyConfiguration{}\n\terr := managedfields.ExtractInto(storageClass, internal.Parser().Type(\"io.k8s.api.storage.v1beta1.StorageClass\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(storageClass.Name)\n\n\tb.WithKind(\"StorageClass\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithKind(value string) *StorageClassApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithAPIVersion(value string) *StorageClassApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithName(value string) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithGenerateName(value string) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithNamespace(value string) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithUID(value types.UID) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithResourceVersion(value string) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithGeneration(value int64) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithCreationTimestamp(value metav1.Time) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *StorageClassApplyConfiguration) WithLabels(entries map[string]string) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *StorageClassApplyConfiguration) WithAnnotations(entries map[string]string) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *StorageClassApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *StorageClassApplyConfiguration) WithFinalizers(values ...string) *StorageClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *StorageClassApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithProvisioner sets the Provisioner field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Provisioner field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithProvisioner(value string) *StorageClassApplyConfiguration {\n\tb.Provisioner = &value\n\treturn b\n}\n\n// WithParameters puts the entries into the Parameters field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Parameters field,\n// overwriting an existing map entries in Parameters field with the same key.\nfunc (b *StorageClassApplyConfiguration) WithParameters(entries map[string]string) *StorageClassApplyConfiguration {\n\tif b.Parameters == nil && len(entries) > 0 {\n\t\tb.Parameters = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Parameters[k] = v\n\t}\n\treturn b\n}\n\n// WithReclaimPolicy sets the ReclaimPolicy field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ReclaimPolicy field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithReclaimPolicy(value corev1.PersistentVolumeReclaimPolicy) *StorageClassApplyConfiguration {\n\tb.ReclaimPolicy = &value\n\treturn b\n}\n\n// WithMountOptions adds the given value to the MountOptions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the MountOptions field.\nfunc (b *StorageClassApplyConfiguration) WithMountOptions(values ...string) *StorageClassApplyConfiguration {\n\tfor i := range values {\n\t\tb.MountOptions = append(b.MountOptions, values[i])\n\t}\n\treturn b\n}\n\n// WithAllowVolumeExpansion sets the AllowVolumeExpansion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AllowVolumeExpansion field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithAllowVolumeExpansion(value bool) *StorageClassApplyConfiguration {\n\tb.AllowVolumeExpansion = &value\n\treturn b\n}\n\n// WithVolumeBindingMode sets the VolumeBindingMode field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the VolumeBindingMode field is set to the value of the last call.\nfunc (b *StorageClassApplyConfiguration) WithVolumeBindingMode(value storagev1beta1.VolumeBindingMode) *StorageClassApplyConfiguration {\n\tb.VolumeBindingMode = &value\n\treturn b\n}\n\n// WithAllowedTopologies adds the given value to the AllowedTopologies field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the AllowedTopologies field.\nfunc (b *StorageClassApplyConfiguration) WithAllowedTopologies(values ...*applyconfigurationscorev1.TopologySelectorTermApplyConfiguration) *StorageClassApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithAllowedTopologies\")\n\t\t}\n\t\tb.AllowedTopologies = append(b.AllowedTopologies, *values[i])\n\t}\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *StorageClassApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/tokenrequest.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// TokenRequestApplyConfiguration represents a declarative configuration of the TokenRequest type for use\n// with apply.\ntype TokenRequestApplyConfiguration struct {\n\tAudience          *string `json:\"audience,omitempty\"`\n\tExpirationSeconds *int64  `json:\"expirationSeconds,omitempty\"`\n}\n\n// TokenRequestApplyConfiguration constructs a declarative configuration of the TokenRequest type for use with\n// apply.\nfunc TokenRequest() *TokenRequestApplyConfiguration {\n\treturn &TokenRequestApplyConfiguration{}\n}\n\n// WithAudience sets the Audience field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Audience field is set to the value of the last call.\nfunc (b *TokenRequestApplyConfiguration) WithAudience(value string) *TokenRequestApplyConfiguration {\n\tb.Audience = &value\n\treturn b\n}\n\n// WithExpirationSeconds sets the ExpirationSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ExpirationSeconds field is set to the value of the last call.\nfunc (b *TokenRequestApplyConfiguration) WithExpirationSeconds(value int64) *TokenRequestApplyConfiguration {\n\tb.ExpirationSeconds = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/volumeattachment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tstoragev1beta1 \"k8s.io/api/storage/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// VolumeAttachmentApplyConfiguration represents a declarative configuration of the VolumeAttachment type for use\n// with apply.\ntype VolumeAttachmentApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *VolumeAttachmentSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *VolumeAttachmentStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// VolumeAttachment constructs a declarative configuration of the VolumeAttachment type for use with\n// apply.\nfunc VolumeAttachment(name string) *VolumeAttachmentApplyConfiguration {\n\tb := &VolumeAttachmentApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"VolumeAttachment\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractVolumeAttachment extracts the applied configuration owned by fieldManager from\n// volumeAttachment. If no managedFields are found in volumeAttachment for fieldManager, a\n// VolumeAttachmentApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// volumeAttachment must be a unmodified VolumeAttachment API object that was retrieved from the Kubernetes API.\n// ExtractVolumeAttachment provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractVolumeAttachment(volumeAttachment *storagev1beta1.VolumeAttachment, fieldManager string) (*VolumeAttachmentApplyConfiguration, error) {\n\treturn extractVolumeAttachment(volumeAttachment, fieldManager, \"\")\n}\n\n// ExtractVolumeAttachmentStatus is the same as ExtractVolumeAttachment except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractVolumeAttachmentStatus(volumeAttachment *storagev1beta1.VolumeAttachment, fieldManager string) (*VolumeAttachmentApplyConfiguration, error) {\n\treturn extractVolumeAttachment(volumeAttachment, fieldManager, \"status\")\n}\n\nfunc extractVolumeAttachment(volumeAttachment *storagev1beta1.VolumeAttachment, fieldManager string, subresource string) (*VolumeAttachmentApplyConfiguration, error) {\n\tb := &VolumeAttachmentApplyConfiguration{}\n\terr := managedfields.ExtractInto(volumeAttachment, internal.Parser().Type(\"io.k8s.api.storage.v1beta1.VolumeAttachment\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(volumeAttachment.Name)\n\n\tb.WithKind(\"VolumeAttachment\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithKind(value string) *VolumeAttachmentApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithAPIVersion(value string) *VolumeAttachmentApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithName(value string) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithGenerateName(value string) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithNamespace(value string) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithUID(value types.UID) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithResourceVersion(value string) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithGeneration(value int64) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithCreationTimestamp(value metav1.Time) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *VolumeAttachmentApplyConfiguration) WithLabels(entries map[string]string) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *VolumeAttachmentApplyConfiguration) WithAnnotations(entries map[string]string) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *VolumeAttachmentApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *VolumeAttachmentApplyConfiguration) WithFinalizers(values ...string) *VolumeAttachmentApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *VolumeAttachmentApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithSpec(value *VolumeAttachmentSpecApplyConfiguration) *VolumeAttachmentApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *VolumeAttachmentApplyConfiguration) WithStatus(value *VolumeAttachmentStatusApplyConfiguration) *VolumeAttachmentApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *VolumeAttachmentApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/volumeattachmentsource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n)\n\n// VolumeAttachmentSourceApplyConfiguration represents a declarative configuration of the VolumeAttachmentSource type for use\n// with apply.\ntype VolumeAttachmentSourceApplyConfiguration struct {\n\tPersistentVolumeName *string                                    `json:\"persistentVolumeName,omitempty\"`\n\tInlineVolumeSpec     *v1.PersistentVolumeSpecApplyConfiguration `json:\"inlineVolumeSpec,omitempty\"`\n}\n\n// VolumeAttachmentSourceApplyConfiguration constructs a declarative configuration of the VolumeAttachmentSource type for use with\n// apply.\nfunc VolumeAttachmentSource() *VolumeAttachmentSourceApplyConfiguration {\n\treturn &VolumeAttachmentSourceApplyConfiguration{}\n}\n\n// WithPersistentVolumeName sets the PersistentVolumeName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the PersistentVolumeName field is set to the value of the last call.\nfunc (b *VolumeAttachmentSourceApplyConfiguration) WithPersistentVolumeName(value string) *VolumeAttachmentSourceApplyConfiguration {\n\tb.PersistentVolumeName = &value\n\treturn b\n}\n\n// WithInlineVolumeSpec sets the InlineVolumeSpec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the InlineVolumeSpec field is set to the value of the last call.\nfunc (b *VolumeAttachmentSourceApplyConfiguration) WithInlineVolumeSpec(value *v1.PersistentVolumeSpecApplyConfiguration) *VolumeAttachmentSourceApplyConfiguration {\n\tb.InlineVolumeSpec = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/volumeattachmentspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// VolumeAttachmentSpecApplyConfiguration represents a declarative configuration of the VolumeAttachmentSpec type for use\n// with apply.\ntype VolumeAttachmentSpecApplyConfiguration struct {\n\tAttacher *string                                   `json:\"attacher,omitempty\"`\n\tSource   *VolumeAttachmentSourceApplyConfiguration `json:\"source,omitempty\"`\n\tNodeName *string                                   `json:\"nodeName,omitempty\"`\n}\n\n// VolumeAttachmentSpecApplyConfiguration constructs a declarative configuration of the VolumeAttachmentSpec type for use with\n// apply.\nfunc VolumeAttachmentSpec() *VolumeAttachmentSpecApplyConfiguration {\n\treturn &VolumeAttachmentSpecApplyConfiguration{}\n}\n\n// WithAttacher sets the Attacher field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Attacher field is set to the value of the last call.\nfunc (b *VolumeAttachmentSpecApplyConfiguration) WithAttacher(value string) *VolumeAttachmentSpecApplyConfiguration {\n\tb.Attacher = &value\n\treturn b\n}\n\n// WithSource sets the Source field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Source field is set to the value of the last call.\nfunc (b *VolumeAttachmentSpecApplyConfiguration) WithSource(value *VolumeAttachmentSourceApplyConfiguration) *VolumeAttachmentSpecApplyConfiguration {\n\tb.Source = value\n\treturn b\n}\n\n// WithNodeName sets the NodeName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the NodeName field is set to the value of the last call.\nfunc (b *VolumeAttachmentSpecApplyConfiguration) WithNodeName(value string) *VolumeAttachmentSpecApplyConfiguration {\n\tb.NodeName = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/volumeattachmentstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// VolumeAttachmentStatusApplyConfiguration represents a declarative configuration of the VolumeAttachmentStatus type for use\n// with apply.\ntype VolumeAttachmentStatusApplyConfiguration struct {\n\tAttached           *bool                          `json:\"attached,omitempty\"`\n\tAttachmentMetadata map[string]string              `json:\"attachmentMetadata,omitempty\"`\n\tAttachError        *VolumeErrorApplyConfiguration `json:\"attachError,omitempty\"`\n\tDetachError        *VolumeErrorApplyConfiguration `json:\"detachError,omitempty\"`\n}\n\n// VolumeAttachmentStatusApplyConfiguration constructs a declarative configuration of the VolumeAttachmentStatus type for use with\n// apply.\nfunc VolumeAttachmentStatus() *VolumeAttachmentStatusApplyConfiguration {\n\treturn &VolumeAttachmentStatusApplyConfiguration{}\n}\n\n// WithAttached sets the Attached field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Attached field is set to the value of the last call.\nfunc (b *VolumeAttachmentStatusApplyConfiguration) WithAttached(value bool) *VolumeAttachmentStatusApplyConfiguration {\n\tb.Attached = &value\n\treturn b\n}\n\n// WithAttachmentMetadata puts the entries into the AttachmentMetadata field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the AttachmentMetadata field,\n// overwriting an existing map entries in AttachmentMetadata field with the same key.\nfunc (b *VolumeAttachmentStatusApplyConfiguration) WithAttachmentMetadata(entries map[string]string) *VolumeAttachmentStatusApplyConfiguration {\n\tif b.AttachmentMetadata == nil && len(entries) > 0 {\n\t\tb.AttachmentMetadata = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.AttachmentMetadata[k] = v\n\t}\n\treturn b\n}\n\n// WithAttachError sets the AttachError field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the AttachError field is set to the value of the last call.\nfunc (b *VolumeAttachmentStatusApplyConfiguration) WithAttachError(value *VolumeErrorApplyConfiguration) *VolumeAttachmentStatusApplyConfiguration {\n\tb.AttachError = value\n\treturn b\n}\n\n// WithDetachError sets the DetachError field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DetachError field is set to the value of the last call.\nfunc (b *VolumeAttachmentStatusApplyConfiguration) WithDetachError(value *VolumeErrorApplyConfiguration) *VolumeAttachmentStatusApplyConfiguration {\n\tb.DetachError = value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/volumeattributesclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tstoragev1beta1 \"k8s.io/api/storage/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// VolumeAttributesClassApplyConfiguration represents a declarative configuration of the VolumeAttributesClass type for use\n// with apply.\ntype VolumeAttributesClassApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tDriverName                       *string           `json:\"driverName,omitempty\"`\n\tParameters                       map[string]string `json:\"parameters,omitempty\"`\n}\n\n// VolumeAttributesClass constructs a declarative configuration of the VolumeAttributesClass type for use with\n// apply.\nfunc VolumeAttributesClass(name string) *VolumeAttributesClassApplyConfiguration {\n\tb := &VolumeAttributesClassApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"VolumeAttributesClass\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1beta1\")\n\treturn b\n}\n\n// ExtractVolumeAttributesClass extracts the applied configuration owned by fieldManager from\n// volumeAttributesClass. If no managedFields are found in volumeAttributesClass for fieldManager, a\n// VolumeAttributesClassApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// volumeAttributesClass must be a unmodified VolumeAttributesClass API object that was retrieved from the Kubernetes API.\n// ExtractVolumeAttributesClass provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractVolumeAttributesClass(volumeAttributesClass *storagev1beta1.VolumeAttributesClass, fieldManager string) (*VolumeAttributesClassApplyConfiguration, error) {\n\treturn extractVolumeAttributesClass(volumeAttributesClass, fieldManager, \"\")\n}\n\n// ExtractVolumeAttributesClassStatus is the same as ExtractVolumeAttributesClass except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractVolumeAttributesClassStatus(volumeAttributesClass *storagev1beta1.VolumeAttributesClass, fieldManager string) (*VolumeAttributesClassApplyConfiguration, error) {\n\treturn extractVolumeAttributesClass(volumeAttributesClass, fieldManager, \"status\")\n}\n\nfunc extractVolumeAttributesClass(volumeAttributesClass *storagev1beta1.VolumeAttributesClass, fieldManager string, subresource string) (*VolumeAttributesClassApplyConfiguration, error) {\n\tb := &VolumeAttributesClassApplyConfiguration{}\n\terr := managedfields.ExtractInto(volumeAttributesClass, internal.Parser().Type(\"io.k8s.api.storage.v1beta1.VolumeAttributesClass\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(volumeAttributesClass.Name)\n\n\tb.WithKind(\"VolumeAttributesClass\")\n\tb.WithAPIVersion(\"storage.k8s.io/v1beta1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *VolumeAttributesClassApplyConfiguration) WithKind(value string) *VolumeAttributesClassApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *VolumeAttributesClassApplyConfiguration) WithAPIVersion(value string) *VolumeAttributesClassApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *VolumeAttributesClassApplyConfiguration) WithName(value string) *VolumeAttributesClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *VolumeAttributesClassApplyConfiguration) WithGenerateName(value string) *VolumeAttributesClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *VolumeAttributesClassApplyConfiguration) WithNamespace(value string) *VolumeAttributesClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *VolumeAttributesClassApplyConfiguration) WithUID(value types.UID) *VolumeAttributesClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *VolumeAttributesClassApplyConfiguration) WithResourceVersion(value string) *VolumeAttributesClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *VolumeAttributesClassApplyConfiguration) WithGeneration(value int64) *VolumeAttributesClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *VolumeAttributesClassApplyConfiguration) WithCreationTimestamp(value metav1.Time) *VolumeAttributesClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *VolumeAttributesClassApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *VolumeAttributesClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *VolumeAttributesClassApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *VolumeAttributesClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *VolumeAttributesClassApplyConfiguration) WithLabels(entries map[string]string) *VolumeAttributesClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *VolumeAttributesClassApplyConfiguration) WithAnnotations(entries map[string]string) *VolumeAttributesClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *VolumeAttributesClassApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *VolumeAttributesClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *VolumeAttributesClassApplyConfiguration) WithFinalizers(values ...string) *VolumeAttributesClassApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *VolumeAttributesClassApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithDriverName sets the DriverName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DriverName field is set to the value of the last call.\nfunc (b *VolumeAttributesClassApplyConfiguration) WithDriverName(value string) *VolumeAttributesClassApplyConfiguration {\n\tb.DriverName = &value\n\treturn b\n}\n\n// WithParameters puts the entries into the Parameters field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Parameters field,\n// overwriting an existing map entries in Parameters field with the same key.\nfunc (b *VolumeAttributesClassApplyConfiguration) WithParameters(entries map[string]string) *VolumeAttributesClassApplyConfiguration {\n\tif b.Parameters == nil && len(entries) > 0 {\n\t\tb.Parameters = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.Parameters[k] = v\n\t}\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *VolumeAttributesClassApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/volumeerror.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// VolumeErrorApplyConfiguration represents a declarative configuration of the VolumeError type for use\n// with apply.\ntype VolumeErrorApplyConfiguration struct {\n\tTime    *v1.Time `json:\"time,omitempty\"`\n\tMessage *string  `json:\"message,omitempty\"`\n}\n\n// VolumeErrorApplyConfiguration constructs a declarative configuration of the VolumeError type for use with\n// apply.\nfunc VolumeError() *VolumeErrorApplyConfiguration {\n\treturn &VolumeErrorApplyConfiguration{}\n}\n\n// WithTime sets the Time field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Time field is set to the value of the last call.\nfunc (b *VolumeErrorApplyConfiguration) WithTime(value v1.Time) *VolumeErrorApplyConfiguration {\n\tb.Time = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *VolumeErrorApplyConfiguration) WithMessage(value string) *VolumeErrorApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storage/v1beta1/volumenoderesources.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// VolumeNodeResourcesApplyConfiguration represents a declarative configuration of the VolumeNodeResources type for use\n// with apply.\ntype VolumeNodeResourcesApplyConfiguration struct {\n\tCount *int32 `json:\"count,omitempty\"`\n}\n\n// VolumeNodeResourcesApplyConfiguration constructs a declarative configuration of the VolumeNodeResources type for use with\n// apply.\nfunc VolumeNodeResources() *VolumeNodeResourcesApplyConfiguration {\n\treturn &VolumeNodeResourcesApplyConfiguration{}\n}\n\n// WithCount sets the Count field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Count field is set to the value of the last call.\nfunc (b *VolumeNodeResourcesApplyConfiguration) WithCount(value int32) *VolumeNodeResourcesApplyConfiguration {\n\tb.Count = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storagemigration/v1alpha1/groupversionresource.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// GroupVersionResourceApplyConfiguration represents a declarative configuration of the GroupVersionResource type for use\n// with apply.\ntype GroupVersionResourceApplyConfiguration struct {\n\tGroup    *string `json:\"group,omitempty\"`\n\tVersion  *string `json:\"version,omitempty\"`\n\tResource *string `json:\"resource,omitempty\"`\n}\n\n// GroupVersionResourceApplyConfiguration constructs a declarative configuration of the GroupVersionResource type for use with\n// apply.\nfunc GroupVersionResource() *GroupVersionResourceApplyConfiguration {\n\treturn &GroupVersionResourceApplyConfiguration{}\n}\n\n// WithGroup sets the Group field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Group field is set to the value of the last call.\nfunc (b *GroupVersionResourceApplyConfiguration) WithGroup(value string) *GroupVersionResourceApplyConfiguration {\n\tb.Group = &value\n\treturn b\n}\n\n// WithVersion sets the Version field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Version field is set to the value of the last call.\nfunc (b *GroupVersionResourceApplyConfiguration) WithVersion(value string) *GroupVersionResourceApplyConfiguration {\n\tb.Version = &value\n\treturn b\n}\n\n// WithResource sets the Resource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Resource field is set to the value of the last call.\nfunc (b *GroupVersionResourceApplyConfiguration) WithResource(value string) *GroupVersionResourceApplyConfiguration {\n\tb.Resource = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storagemigration/v1alpha1/migrationcondition.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tstoragemigrationv1alpha1 \"k8s.io/api/storagemigration/v1alpha1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// MigrationConditionApplyConfiguration represents a declarative configuration of the MigrationCondition type for use\n// with apply.\ntype MigrationConditionApplyConfiguration struct {\n\tType           *storagemigrationv1alpha1.MigrationConditionType `json:\"type,omitempty\"`\n\tStatus         *v1.ConditionStatus                              `json:\"status,omitempty\"`\n\tLastUpdateTime *metav1.Time                                     `json:\"lastUpdateTime,omitempty\"`\n\tReason         *string                                          `json:\"reason,omitempty\"`\n\tMessage        *string                                          `json:\"message,omitempty\"`\n}\n\n// MigrationConditionApplyConfiguration constructs a declarative configuration of the MigrationCondition type for use with\n// apply.\nfunc MigrationCondition() *MigrationConditionApplyConfiguration {\n\treturn &MigrationConditionApplyConfiguration{}\n}\n\n// WithType sets the Type field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Type field is set to the value of the last call.\nfunc (b *MigrationConditionApplyConfiguration) WithType(value storagemigrationv1alpha1.MigrationConditionType) *MigrationConditionApplyConfiguration {\n\tb.Type = &value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *MigrationConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *MigrationConditionApplyConfiguration {\n\tb.Status = &value\n\treturn b\n}\n\n// WithLastUpdateTime sets the LastUpdateTime field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the LastUpdateTime field is set to the value of the last call.\nfunc (b *MigrationConditionApplyConfiguration) WithLastUpdateTime(value metav1.Time) *MigrationConditionApplyConfiguration {\n\tb.LastUpdateTime = &value\n\treturn b\n}\n\n// WithReason sets the Reason field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Reason field is set to the value of the last call.\nfunc (b *MigrationConditionApplyConfiguration) WithReason(value string) *MigrationConditionApplyConfiguration {\n\tb.Reason = &value\n\treturn b\n}\n\n// WithMessage sets the Message field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Message field is set to the value of the last call.\nfunc (b *MigrationConditionApplyConfiguration) WithMessage(value string) *MigrationConditionApplyConfiguration {\n\tb.Message = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storagemigration/v1alpha1/storageversionmigration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tstoragemigrationv1alpha1 \"k8s.io/api/storagemigration/v1alpha1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tmanagedfields \"k8s.io/apimachinery/pkg/util/managedfields\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tv1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n)\n\n// StorageVersionMigrationApplyConfiguration represents a declarative configuration of the StorageVersionMigration type for use\n// with apply.\ntype StorageVersionMigrationApplyConfiguration struct {\n\tv1.TypeMetaApplyConfiguration    `json:\",inline\"`\n\t*v1.ObjectMetaApplyConfiguration `json:\"metadata,omitempty\"`\n\tSpec                             *StorageVersionMigrationSpecApplyConfiguration   `json:\"spec,omitempty\"`\n\tStatus                           *StorageVersionMigrationStatusApplyConfiguration `json:\"status,omitempty\"`\n}\n\n// StorageVersionMigration constructs a declarative configuration of the StorageVersionMigration type for use with\n// apply.\nfunc StorageVersionMigration(name string) *StorageVersionMigrationApplyConfiguration {\n\tb := &StorageVersionMigrationApplyConfiguration{}\n\tb.WithName(name)\n\tb.WithKind(\"StorageVersionMigration\")\n\tb.WithAPIVersion(\"storagemigration.k8s.io/v1alpha1\")\n\treturn b\n}\n\n// ExtractStorageVersionMigration extracts the applied configuration owned by fieldManager from\n// storageVersionMigration. If no managedFields are found in storageVersionMigration for fieldManager, a\n// StorageVersionMigrationApplyConfiguration is returned with only the Name, Namespace (if applicable),\n// APIVersion and Kind populated. It is possible that no managed fields were found for because other\n// field managers have taken ownership of all the fields previously owned by fieldManager, or because\n// the fieldManager never owned fields any fields.\n// storageVersionMigration must be a unmodified StorageVersionMigration API object that was retrieved from the Kubernetes API.\n// ExtractStorageVersionMigration provides a way to perform a extract/modify-in-place/apply workflow.\n// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously\n// applied if another fieldManager has updated or force applied any of the previously applied fields.\n// Experimental!\nfunc ExtractStorageVersionMigration(storageVersionMigration *storagemigrationv1alpha1.StorageVersionMigration, fieldManager string) (*StorageVersionMigrationApplyConfiguration, error) {\n\treturn extractStorageVersionMigration(storageVersionMigration, fieldManager, \"\")\n}\n\n// ExtractStorageVersionMigrationStatus is the same as ExtractStorageVersionMigration except\n// that it extracts the status subresource applied configuration.\n// Experimental!\nfunc ExtractStorageVersionMigrationStatus(storageVersionMigration *storagemigrationv1alpha1.StorageVersionMigration, fieldManager string) (*StorageVersionMigrationApplyConfiguration, error) {\n\treturn extractStorageVersionMigration(storageVersionMigration, fieldManager, \"status\")\n}\n\nfunc extractStorageVersionMigration(storageVersionMigration *storagemigrationv1alpha1.StorageVersionMigration, fieldManager string, subresource string) (*StorageVersionMigrationApplyConfiguration, error) {\n\tb := &StorageVersionMigrationApplyConfiguration{}\n\terr := managedfields.ExtractInto(storageVersionMigration, internal.Parser().Type(\"io.k8s.api.storagemigration.v1alpha1.StorageVersionMigration\"), fieldManager, b, subresource)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb.WithName(storageVersionMigration.Name)\n\n\tb.WithKind(\"StorageVersionMigration\")\n\tb.WithAPIVersion(\"storagemigration.k8s.io/v1alpha1\")\n\treturn b, nil\n}\n\n// WithKind sets the Kind field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Kind field is set to the value of the last call.\nfunc (b *StorageVersionMigrationApplyConfiguration) WithKind(value string) *StorageVersionMigrationApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.Kind = &value\n\treturn b\n}\n\n// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the APIVersion field is set to the value of the last call.\nfunc (b *StorageVersionMigrationApplyConfiguration) WithAPIVersion(value string) *StorageVersionMigrationApplyConfiguration {\n\tb.TypeMetaApplyConfiguration.APIVersion = &value\n\treturn b\n}\n\n// WithName sets the Name field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Name field is set to the value of the last call.\nfunc (b *StorageVersionMigrationApplyConfiguration) WithName(value string) *StorageVersionMigrationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Name = &value\n\treturn b\n}\n\n// WithGenerateName sets the GenerateName field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the GenerateName field is set to the value of the last call.\nfunc (b *StorageVersionMigrationApplyConfiguration) WithGenerateName(value string) *StorageVersionMigrationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.GenerateName = &value\n\treturn b\n}\n\n// WithNamespace sets the Namespace field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Namespace field is set to the value of the last call.\nfunc (b *StorageVersionMigrationApplyConfiguration) WithNamespace(value string) *StorageVersionMigrationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Namespace = &value\n\treturn b\n}\n\n// WithUID sets the UID field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the UID field is set to the value of the last call.\nfunc (b *StorageVersionMigrationApplyConfiguration) WithUID(value types.UID) *StorageVersionMigrationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.UID = &value\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *StorageVersionMigrationApplyConfiguration) WithResourceVersion(value string) *StorageVersionMigrationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.ResourceVersion = &value\n\treturn b\n}\n\n// WithGeneration sets the Generation field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Generation field is set to the value of the last call.\nfunc (b *StorageVersionMigrationApplyConfiguration) WithGeneration(value int64) *StorageVersionMigrationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.Generation = &value\n\treturn b\n}\n\n// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the CreationTimestamp field is set to the value of the last call.\nfunc (b *StorageVersionMigrationApplyConfiguration) WithCreationTimestamp(value metav1.Time) *StorageVersionMigrationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.CreationTimestamp = &value\n\treturn b\n}\n\n// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionTimestamp field is set to the value of the last call.\nfunc (b *StorageVersionMigrationApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *StorageVersionMigrationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionTimestamp = &value\n\treturn b\n}\n\n// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call.\nfunc (b *StorageVersionMigrationApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *StorageVersionMigrationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tb.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value\n\treturn b\n}\n\n// WithLabels puts the entries into the Labels field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Labels field,\n// overwriting an existing map entries in Labels field with the same key.\nfunc (b *StorageVersionMigrationApplyConfiguration) WithLabels(entries map[string]string) *StorageVersionMigrationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Labels[k] = v\n\t}\n\treturn b\n}\n\n// WithAnnotations puts the entries into the Annotations field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, the entries provided by each call will be put on the Annotations field,\n// overwriting an existing map entries in Annotations field with the same key.\nfunc (b *StorageVersionMigrationApplyConfiguration) WithAnnotations(entries map[string]string) *StorageVersionMigrationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tif b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 {\n\t\tb.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries))\n\t}\n\tfor k, v := range entries {\n\t\tb.ObjectMetaApplyConfiguration.Annotations[k] = v\n\t}\n\treturn b\n}\n\n// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the OwnerReferences field.\nfunc (b *StorageVersionMigrationApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *StorageVersionMigrationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithOwnerReferences\")\n\t\t}\n\t\tb.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i])\n\t}\n\treturn b\n}\n\n// WithFinalizers adds the given value to the Finalizers field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Finalizers field.\nfunc (b *StorageVersionMigrationApplyConfiguration) WithFinalizers(values ...string) *StorageVersionMigrationApplyConfiguration {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\tfor i := range values {\n\t\tb.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i])\n\t}\n\treturn b\n}\n\nfunc (b *StorageVersionMigrationApplyConfiguration) ensureObjectMetaApplyConfigurationExists() {\n\tif b.ObjectMetaApplyConfiguration == nil {\n\t\tb.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{}\n\t}\n}\n\n// WithSpec sets the Spec field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Spec field is set to the value of the last call.\nfunc (b *StorageVersionMigrationApplyConfiguration) WithSpec(value *StorageVersionMigrationSpecApplyConfiguration) *StorageVersionMigrationApplyConfiguration {\n\tb.Spec = value\n\treturn b\n}\n\n// WithStatus sets the Status field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Status field is set to the value of the last call.\nfunc (b *StorageVersionMigrationApplyConfiguration) WithStatus(value *StorageVersionMigrationStatusApplyConfiguration) *StorageVersionMigrationApplyConfiguration {\n\tb.Status = value\n\treturn b\n}\n\n// GetName retrieves the value of the Name field in the declarative configuration.\nfunc (b *StorageVersionMigrationApplyConfiguration) GetName() *string {\n\tb.ensureObjectMetaApplyConfigurationExists()\n\treturn b.ObjectMetaApplyConfiguration.Name\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storagemigration/v1alpha1/storageversionmigrationspec.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// StorageVersionMigrationSpecApplyConfiguration represents a declarative configuration of the StorageVersionMigrationSpec type for use\n// with apply.\ntype StorageVersionMigrationSpecApplyConfiguration struct {\n\tResource      *GroupVersionResourceApplyConfiguration `json:\"resource,omitempty\"`\n\tContinueToken *string                                 `json:\"continueToken,omitempty\"`\n}\n\n// StorageVersionMigrationSpecApplyConfiguration constructs a declarative configuration of the StorageVersionMigrationSpec type for use with\n// apply.\nfunc StorageVersionMigrationSpec() *StorageVersionMigrationSpecApplyConfiguration {\n\treturn &StorageVersionMigrationSpecApplyConfiguration{}\n}\n\n// WithResource sets the Resource field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the Resource field is set to the value of the last call.\nfunc (b *StorageVersionMigrationSpecApplyConfiguration) WithResource(value *GroupVersionResourceApplyConfiguration) *StorageVersionMigrationSpecApplyConfiguration {\n\tb.Resource = value\n\treturn b\n}\n\n// WithContinueToken sets the ContinueToken field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ContinueToken field is set to the value of the last call.\nfunc (b *StorageVersionMigrationSpecApplyConfiguration) WithContinueToken(value string) *StorageVersionMigrationSpecApplyConfiguration {\n\tb.ContinueToken = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/storagemigration/v1alpha1/storageversionmigrationstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// StorageVersionMigrationStatusApplyConfiguration represents a declarative configuration of the StorageVersionMigrationStatus type for use\n// with apply.\ntype StorageVersionMigrationStatusApplyConfiguration struct {\n\tConditions      []MigrationConditionApplyConfiguration `json:\"conditions,omitempty\"`\n\tResourceVersion *string                                `json:\"resourceVersion,omitempty\"`\n}\n\n// StorageVersionMigrationStatusApplyConfiguration constructs a declarative configuration of the StorageVersionMigrationStatus type for use with\n// apply.\nfunc StorageVersionMigrationStatus() *StorageVersionMigrationStatusApplyConfiguration {\n\treturn &StorageVersionMigrationStatusApplyConfiguration{}\n}\n\n// WithConditions adds the given value to the Conditions field in the declarative configuration\n// and returns the receiver, so that objects can be build by chaining \"With\" function invocations.\n// If called multiple times, values provided by each call will be appended to the Conditions field.\nfunc (b *StorageVersionMigrationStatusApplyConfiguration) WithConditions(values ...*MigrationConditionApplyConfiguration) *StorageVersionMigrationStatusApplyConfiguration {\n\tfor i := range values {\n\t\tif values[i] == nil {\n\t\t\tpanic(\"nil value passed to WithConditions\")\n\t\t}\n\t\tb.Conditions = append(b.Conditions, *values[i])\n\t}\n\treturn b\n}\n\n// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value\n// and returns the receiver, so that objects can be built by chaining \"With\" function invocations.\n// If called multiple times, the ResourceVersion field is set to the value of the last call.\nfunc (b *StorageVersionMigrationStatusApplyConfiguration) WithResourceVersion(value string) *StorageVersionMigrationStatusApplyConfiguration {\n\tb.ResourceVersion = &value\n\treturn b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/applyconfigurations/utils.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by applyconfiguration-gen. DO NOT EDIT.\n\npackage applyconfigurations\n\nimport (\n\tv1 \"k8s.io/api/admissionregistration/v1\"\n\tv1alpha1 \"k8s.io/api/admissionregistration/v1alpha1\"\n\tv1beta1 \"k8s.io/api/admissionregistration/v1beta1\"\n\tapiserverinternalv1alpha1 \"k8s.io/api/apiserverinternal/v1alpha1\"\n\tappsv1 \"k8s.io/api/apps/v1\"\n\tappsv1beta1 \"k8s.io/api/apps/v1beta1\"\n\tv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tautoscalingv1 \"k8s.io/api/autoscaling/v1\"\n\tv2 \"k8s.io/api/autoscaling/v2\"\n\tv2beta1 \"k8s.io/api/autoscaling/v2beta1\"\n\tv2beta2 \"k8s.io/api/autoscaling/v2beta2\"\n\tbatchv1 \"k8s.io/api/batch/v1\"\n\tbatchv1beta1 \"k8s.io/api/batch/v1beta1\"\n\tcertificatesv1 \"k8s.io/api/certificates/v1\"\n\tcertificatesv1alpha1 \"k8s.io/api/certificates/v1alpha1\"\n\tcertificatesv1beta1 \"k8s.io/api/certificates/v1beta1\"\n\tcoordinationv1 \"k8s.io/api/coordination/v1\"\n\tv1alpha2 \"k8s.io/api/coordination/v1alpha2\"\n\tcoordinationv1beta1 \"k8s.io/api/coordination/v1beta1\"\n\tcorev1 \"k8s.io/api/core/v1\"\n\tdiscoveryv1 \"k8s.io/api/discovery/v1\"\n\tdiscoveryv1beta1 \"k8s.io/api/discovery/v1beta1\"\n\teventsv1 \"k8s.io/api/events/v1\"\n\teventsv1beta1 \"k8s.io/api/events/v1beta1\"\n\textensionsv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tflowcontrolv1 \"k8s.io/api/flowcontrol/v1\"\n\tflowcontrolv1beta1 \"k8s.io/api/flowcontrol/v1beta1\"\n\tflowcontrolv1beta2 \"k8s.io/api/flowcontrol/v1beta2\"\n\tv1beta3 \"k8s.io/api/flowcontrol/v1beta3\"\n\timagepolicyv1alpha1 \"k8s.io/api/imagepolicy/v1alpha1\"\n\tnetworkingv1 \"k8s.io/api/networking/v1\"\n\tnetworkingv1alpha1 \"k8s.io/api/networking/v1alpha1\"\n\tnetworkingv1beta1 \"k8s.io/api/networking/v1beta1\"\n\tnodev1 \"k8s.io/api/node/v1\"\n\tnodev1alpha1 \"k8s.io/api/node/v1alpha1\"\n\tnodev1beta1 \"k8s.io/api/node/v1beta1\"\n\tpolicyv1 \"k8s.io/api/policy/v1\"\n\tpolicyv1beta1 \"k8s.io/api/policy/v1beta1\"\n\trbacv1 \"k8s.io/api/rbac/v1\"\n\trbacv1alpha1 \"k8s.io/api/rbac/v1alpha1\"\n\trbacv1beta1 \"k8s.io/api/rbac/v1beta1\"\n\tv1alpha3 \"k8s.io/api/resource/v1alpha3\"\n\tresourcev1beta1 \"k8s.io/api/resource/v1beta1\"\n\tschedulingv1 \"k8s.io/api/scheduling/v1\"\n\tschedulingv1alpha1 \"k8s.io/api/scheduling/v1alpha1\"\n\tschedulingv1beta1 \"k8s.io/api/scheduling/v1beta1\"\n\tstoragev1 \"k8s.io/api/storage/v1\"\n\tstoragev1alpha1 \"k8s.io/api/storage/v1alpha1\"\n\tstoragev1beta1 \"k8s.io/api/storage/v1beta1\"\n\tstoragemigrationv1alpha1 \"k8s.io/api/storagemigration/v1alpha1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n\tadmissionregistrationv1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1\"\n\tadmissionregistrationv1alpha1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1\"\n\tadmissionregistrationv1beta1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1\"\n\tapplyconfigurationsapiserverinternalv1alpha1 \"k8s.io/client-go/applyconfigurations/apiserverinternal/v1alpha1\"\n\tapplyconfigurationsappsv1 \"k8s.io/client-go/applyconfigurations/apps/v1\"\n\tapplyconfigurationsappsv1beta1 \"k8s.io/client-go/applyconfigurations/apps/v1beta1\"\n\tappsv1beta2 \"k8s.io/client-go/applyconfigurations/apps/v1beta2\"\n\tapplyconfigurationsautoscalingv1 \"k8s.io/client-go/applyconfigurations/autoscaling/v1\"\n\tautoscalingv2 \"k8s.io/client-go/applyconfigurations/autoscaling/v2\"\n\tautoscalingv2beta1 \"k8s.io/client-go/applyconfigurations/autoscaling/v2beta1\"\n\tautoscalingv2beta2 \"k8s.io/client-go/applyconfigurations/autoscaling/v2beta2\"\n\tapplyconfigurationsbatchv1 \"k8s.io/client-go/applyconfigurations/batch/v1\"\n\tapplyconfigurationsbatchv1beta1 \"k8s.io/client-go/applyconfigurations/batch/v1beta1\"\n\tapplyconfigurationscertificatesv1 \"k8s.io/client-go/applyconfigurations/certificates/v1\"\n\tapplyconfigurationscertificatesv1alpha1 \"k8s.io/client-go/applyconfigurations/certificates/v1alpha1\"\n\tapplyconfigurationscertificatesv1beta1 \"k8s.io/client-go/applyconfigurations/certificates/v1beta1\"\n\tapplyconfigurationscoordinationv1 \"k8s.io/client-go/applyconfigurations/coordination/v1\"\n\tcoordinationv1alpha2 \"k8s.io/client-go/applyconfigurations/coordination/v1alpha2\"\n\tapplyconfigurationscoordinationv1beta1 \"k8s.io/client-go/applyconfigurations/coordination/v1beta1\"\n\tapplyconfigurationscorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tapplyconfigurationsdiscoveryv1 \"k8s.io/client-go/applyconfigurations/discovery/v1\"\n\tapplyconfigurationsdiscoveryv1beta1 \"k8s.io/client-go/applyconfigurations/discovery/v1beta1\"\n\tapplyconfigurationseventsv1 \"k8s.io/client-go/applyconfigurations/events/v1\"\n\tapplyconfigurationseventsv1beta1 \"k8s.io/client-go/applyconfigurations/events/v1beta1\"\n\tapplyconfigurationsextensionsv1beta1 \"k8s.io/client-go/applyconfigurations/extensions/v1beta1\"\n\tapplyconfigurationsflowcontrolv1 \"k8s.io/client-go/applyconfigurations/flowcontrol/v1\"\n\tapplyconfigurationsflowcontrolv1beta1 \"k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1\"\n\tapplyconfigurationsflowcontrolv1beta2 \"k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2\"\n\tflowcontrolv1beta3 \"k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3\"\n\tapplyconfigurationsimagepolicyv1alpha1 \"k8s.io/client-go/applyconfigurations/imagepolicy/v1alpha1\"\n\tinternal \"k8s.io/client-go/applyconfigurations/internal\"\n\tapplyconfigurationsmetav1 \"k8s.io/client-go/applyconfigurations/meta/v1\"\n\tapplyconfigurationsnetworkingv1 \"k8s.io/client-go/applyconfigurations/networking/v1\"\n\tapplyconfigurationsnetworkingv1alpha1 \"k8s.io/client-go/applyconfigurations/networking/v1alpha1\"\n\tapplyconfigurationsnetworkingv1beta1 \"k8s.io/client-go/applyconfigurations/networking/v1beta1\"\n\tapplyconfigurationsnodev1 \"k8s.io/client-go/applyconfigurations/node/v1\"\n\tapplyconfigurationsnodev1alpha1 \"k8s.io/client-go/applyconfigurations/node/v1alpha1\"\n\tapplyconfigurationsnodev1beta1 \"k8s.io/client-go/applyconfigurations/node/v1beta1\"\n\tapplyconfigurationspolicyv1 \"k8s.io/client-go/applyconfigurations/policy/v1\"\n\tapplyconfigurationspolicyv1beta1 \"k8s.io/client-go/applyconfigurations/policy/v1beta1\"\n\tapplyconfigurationsrbacv1 \"k8s.io/client-go/applyconfigurations/rbac/v1\"\n\tapplyconfigurationsrbacv1alpha1 \"k8s.io/client-go/applyconfigurations/rbac/v1alpha1\"\n\tapplyconfigurationsrbacv1beta1 \"k8s.io/client-go/applyconfigurations/rbac/v1beta1\"\n\tresourcev1alpha3 \"k8s.io/client-go/applyconfigurations/resource/v1alpha3\"\n\tapplyconfigurationsresourcev1beta1 \"k8s.io/client-go/applyconfigurations/resource/v1beta1\"\n\tapplyconfigurationsschedulingv1 \"k8s.io/client-go/applyconfigurations/scheduling/v1\"\n\tapplyconfigurationsschedulingv1alpha1 \"k8s.io/client-go/applyconfigurations/scheduling/v1alpha1\"\n\tapplyconfigurationsschedulingv1beta1 \"k8s.io/client-go/applyconfigurations/scheduling/v1beta1\"\n\tapplyconfigurationsstoragev1 \"k8s.io/client-go/applyconfigurations/storage/v1\"\n\tapplyconfigurationsstoragev1alpha1 \"k8s.io/client-go/applyconfigurations/storage/v1alpha1\"\n\tapplyconfigurationsstoragev1beta1 \"k8s.io/client-go/applyconfigurations/storage/v1beta1\"\n\tapplyconfigurationsstoragemigrationv1alpha1 \"k8s.io/client-go/applyconfigurations/storagemigration/v1alpha1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// ForKind returns an apply configuration type for the given GroupVersionKind, or nil if no\n// apply configuration type exists for the given GroupVersionKind.\nfunc ForKind(kind schema.GroupVersionKind) interface{} {\n\tswitch kind {\n\t// Group=admissionregistration.k8s.io, Version=v1\n\tcase v1.SchemeGroupVersion.WithKind(\"AuditAnnotation\"):\n\t\treturn &admissionregistrationv1.AuditAnnotationApplyConfiguration{}\n\tcase v1.SchemeGroupVersion.WithKind(\"ExpressionWarning\"):\n\t\treturn &admissionregistrationv1.ExpressionWarningApplyConfiguration{}\n\tcase v1.SchemeGroupVersion.WithKind(\"MatchCondition\"):\n\t\treturn &admissionregistrationv1.MatchConditionApplyConfiguration{}\n\tcase v1.SchemeGroupVersion.WithKind(\"MatchResources\"):\n\t\treturn &admissionregistrationv1.MatchResourcesApplyConfiguration{}\n\tcase v1.SchemeGroupVersion.WithKind(\"MutatingWebhook\"):\n\t\treturn &admissionregistrationv1.MutatingWebhookApplyConfiguration{}\n\tcase v1.SchemeGroupVersion.WithKind(\"MutatingWebhookConfiguration\"):\n\t\treturn &admissionregistrationv1.MutatingWebhookConfigurationApplyConfiguration{}\n\tcase v1.SchemeGroupVersion.WithKind(\"NamedRuleWithOperations\"):\n\t\treturn &admissionregistrationv1.NamedRuleWithOperationsApplyConfiguration{}\n\tcase v1.SchemeGroupVersion.WithKind(\"ParamKind\"):\n\t\treturn &admissionregistrationv1.ParamKindApplyConfiguration{}\n\tcase v1.SchemeGroupVersion.WithKind(\"ParamRef\"):\n\t\treturn &admissionregistrationv1.ParamRefApplyConfiguration{}\n\tcase v1.SchemeGroupVersion.WithKind(\"Rule\"):\n\t\treturn &admissionregistrationv1.RuleApplyConfiguration{}\n\tcase v1.SchemeGroupVersion.WithKind(\"RuleWithOperations\"):\n\t\treturn &admissionregistrationv1.RuleWithOperationsApplyConfiguration{}\n\tcase v1.SchemeGroupVersion.WithKind(\"ServiceReference\"):\n\t\treturn &admissionregistrationv1.ServiceReferenceApplyConfiguration{}\n\tcase v1.SchemeGroupVersion.WithKind(\"TypeChecking\"):\n\t\treturn &admissionregistrationv1.TypeCheckingApplyConfiguration{}\n\tcase v1.SchemeGroupVersion.WithKind(\"ValidatingAdmissionPolicy\"):\n\t\treturn &admissionregistrationv1.ValidatingAdmissionPolicyApplyConfiguration{}\n\tcase v1.SchemeGroupVersion.WithKind(\"ValidatingAdmissionPolicyBinding\"):\n\t\treturn &admissionregistrationv1.ValidatingAdmissionPolicyBindingApplyConfiguration{}\n\tcase v1.SchemeGroupVersion.WithKind(\"ValidatingAdmissionPolicyBindingSpec\"):\n\t\treturn &admissionregistrationv1.ValidatingAdmissionPolicyBindingSpecApplyConfiguration{}\n\tcase v1.SchemeGroupVersion.WithKind(\"ValidatingAdmissionPolicySpec\"):\n\t\treturn &admissionregistrationv1.ValidatingAdmissionPolicySpecApplyConfiguration{}\n\tcase v1.SchemeGroupVersion.WithKind(\"ValidatingAdmissionPolicyStatus\"):\n\t\treturn &admissionregistrationv1.ValidatingAdmissionPolicyStatusApplyConfiguration{}\n\tcase v1.SchemeGroupVersion.WithKind(\"ValidatingWebhook\"):\n\t\treturn &admissionregistrationv1.ValidatingWebhookApplyConfiguration{}\n\tcase v1.SchemeGroupVersion.WithKind(\"ValidatingWebhookConfiguration\"):\n\t\treturn &admissionregistrationv1.ValidatingWebhookConfigurationApplyConfiguration{}\n\tcase v1.SchemeGroupVersion.WithKind(\"Validation\"):\n\t\treturn &admissionregistrationv1.ValidationApplyConfiguration{}\n\tcase v1.SchemeGroupVersion.WithKind(\"Variable\"):\n\t\treturn &admissionregistrationv1.VariableApplyConfiguration{}\n\tcase v1.SchemeGroupVersion.WithKind(\"WebhookClientConfig\"):\n\t\treturn &admissionregistrationv1.WebhookClientConfigApplyConfiguration{}\n\n\t\t// Group=admissionregistration.k8s.io, Version=v1alpha1\n\tcase v1alpha1.SchemeGroupVersion.WithKind(\"ApplyConfiguration\"):\n\t\treturn &admissionregistrationv1alpha1.ApplyConfigurationApplyConfiguration{}\n\tcase v1alpha1.SchemeGroupVersion.WithKind(\"AuditAnnotation\"):\n\t\treturn &admissionregistrationv1alpha1.AuditAnnotationApplyConfiguration{}\n\tcase v1alpha1.SchemeGroupVersion.WithKind(\"ExpressionWarning\"):\n\t\treturn &admissionregistrationv1alpha1.ExpressionWarningApplyConfiguration{}\n\tcase v1alpha1.SchemeGroupVersion.WithKind(\"JSONPatch\"):\n\t\treturn &admissionregistrationv1alpha1.JSONPatchApplyConfiguration{}\n\tcase v1alpha1.SchemeGroupVersion.WithKind(\"MatchCondition\"):\n\t\treturn &admissionregistrationv1alpha1.MatchConditionApplyConfiguration{}\n\tcase v1alpha1.SchemeGroupVersion.WithKind(\"MatchResources\"):\n\t\treturn &admissionregistrationv1alpha1.MatchResourcesApplyConfiguration{}\n\tcase v1alpha1.SchemeGroupVersion.WithKind(\"MutatingAdmissionPolicy\"):\n\t\treturn &admissionregistrationv1alpha1.MutatingAdmissionPolicyApplyConfiguration{}\n\tcase v1alpha1.SchemeGroupVersion.WithKind(\"MutatingAdmissionPolicyBinding\"):\n\t\treturn &admissionregistrationv1alpha1.MutatingAdmissionPolicyBindingApplyConfiguration{}\n\tcase v1alpha1.SchemeGroupVersion.WithKind(\"MutatingAdmissionPolicyBindingSpec\"):\n\t\treturn &admissionregistrationv1alpha1.MutatingAdmissionPolicyBindingSpecApplyConfiguration{}\n\tcase v1alpha1.SchemeGroupVersion.WithKind(\"MutatingAdmissionPolicySpec\"):\n\t\treturn &admissionregistrationv1alpha1.MutatingAdmissionPolicySpecApplyConfiguration{}\n\tcase v1alpha1.SchemeGroupVersion.WithKind(\"Mutation\"):\n\t\treturn &admissionregistrationv1alpha1.MutationApplyConfiguration{}\n\tcase v1alpha1.SchemeGroupVersion.WithKind(\"NamedRuleWithOperations\"):\n\t\treturn &admissionregistrationv1alpha1.NamedRuleWithOperationsApplyConfiguration{}\n\tcase v1alpha1.SchemeGroupVersion.WithKind(\"ParamKind\"):\n\t\treturn &admissionregistrationv1alpha1.ParamKindApplyConfiguration{}\n\tcase v1alpha1.SchemeGroupVersion.WithKind(\"ParamRef\"):\n\t\treturn &admissionregistrationv1alpha1.ParamRefApplyConfiguration{}\n\tcase v1alpha1.SchemeGroupVersion.WithKind(\"TypeChecking\"):\n\t\treturn &admissionregistrationv1alpha1.TypeCheckingApplyConfiguration{}\n\tcase v1alpha1.SchemeGroupVersion.WithKind(\"ValidatingAdmissionPolicy\"):\n\t\treturn &admissionregistrationv1alpha1.ValidatingAdmissionPolicyApplyConfiguration{}\n\tcase v1alpha1.SchemeGroupVersion.WithKind(\"ValidatingAdmissionPolicyBinding\"):\n\t\treturn &admissionregistrationv1alpha1.ValidatingAdmissionPolicyBindingApplyConfiguration{}\n\tcase v1alpha1.SchemeGroupVersion.WithKind(\"ValidatingAdmissionPolicyBindingSpec\"):\n\t\treturn &admissionregistrationv1alpha1.ValidatingAdmissionPolicyBindingSpecApplyConfiguration{}\n\tcase v1alpha1.SchemeGroupVersion.WithKind(\"ValidatingAdmissionPolicySpec\"):\n\t\treturn &admissionregistrationv1alpha1.ValidatingAdmissionPolicySpecApplyConfiguration{}\n\tcase v1alpha1.SchemeGroupVersion.WithKind(\"ValidatingAdmissionPolicyStatus\"):\n\t\treturn &admissionregistrationv1alpha1.ValidatingAdmissionPolicyStatusApplyConfiguration{}\n\tcase v1alpha1.SchemeGroupVersion.WithKind(\"Validation\"):\n\t\treturn &admissionregistrationv1alpha1.ValidationApplyConfiguration{}\n\tcase v1alpha1.SchemeGroupVersion.WithKind(\"Variable\"):\n\t\treturn &admissionregistrationv1alpha1.VariableApplyConfiguration{}\n\n\t\t// Group=admissionregistration.k8s.io, Version=v1beta1\n\tcase v1beta1.SchemeGroupVersion.WithKind(\"AuditAnnotation\"):\n\t\treturn &admissionregistrationv1beta1.AuditAnnotationApplyConfiguration{}\n\tcase v1beta1.SchemeGroupVersion.WithKind(\"ExpressionWarning\"):\n\t\treturn &admissionregistrationv1beta1.ExpressionWarningApplyConfiguration{}\n\tcase v1beta1.SchemeGroupVersion.WithKind(\"MatchCondition\"):\n\t\treturn &admissionregistrationv1beta1.MatchConditionApplyConfiguration{}\n\tcase v1beta1.SchemeGroupVersion.WithKind(\"MatchResources\"):\n\t\treturn &admissionregistrationv1beta1.MatchResourcesApplyConfiguration{}\n\tcase v1beta1.SchemeGroupVersion.WithKind(\"MutatingWebhook\"):\n\t\treturn &admissionregistrationv1beta1.MutatingWebhookApplyConfiguration{}\n\tcase v1beta1.SchemeGroupVersion.WithKind(\"MutatingWebhookConfiguration\"):\n\t\treturn &admissionregistrationv1beta1.MutatingWebhookConfigurationApplyConfiguration{}\n\tcase v1beta1.SchemeGroupVersion.WithKind(\"NamedRuleWithOperations\"):\n\t\treturn &admissionregistrationv1beta1.NamedRuleWithOperationsApplyConfiguration{}\n\tcase v1beta1.SchemeGroupVersion.WithKind(\"ParamKind\"):\n\t\treturn &admissionregistrationv1beta1.ParamKindApplyConfiguration{}\n\tcase v1beta1.SchemeGroupVersion.WithKind(\"ParamRef\"):\n\t\treturn &admissionregistrationv1beta1.ParamRefApplyConfiguration{}\n\tcase v1beta1.SchemeGroupVersion.WithKind(\"ServiceReference\"):\n\t\treturn &admissionregistrationv1beta1.ServiceReferenceApplyConfiguration{}\n\tcase v1beta1.SchemeGroupVersion.WithKind(\"TypeChecking\"):\n\t\treturn &admissionregistrationv1beta1.TypeCheckingApplyConfiguration{}\n\tcase v1beta1.SchemeGroupVersion.WithKind(\"ValidatingAdmissionPolicy\"):\n\t\treturn &admissionregistrationv1beta1.ValidatingAdmissionPolicyApplyConfiguration{}\n\tcase v1beta1.SchemeGroupVersion.WithKind(\"ValidatingAdmissionPolicyBinding\"):\n\t\treturn &admissionregistrationv1beta1.ValidatingAdmissionPolicyBindingApplyConfiguration{}\n\tcase v1beta1.SchemeGroupVersion.WithKind(\"ValidatingAdmissionPolicyBindingSpec\"):\n\t\treturn &admissionregistrationv1beta1.ValidatingAdmissionPolicyBindingSpecApplyConfiguration{}\n\tcase v1beta1.SchemeGroupVersion.WithKind(\"ValidatingAdmissionPolicySpec\"):\n\t\treturn &admissionregistrationv1beta1.ValidatingAdmissionPolicySpecApplyConfiguration{}\n\tcase v1beta1.SchemeGroupVersion.WithKind(\"ValidatingAdmissionPolicyStatus\"):\n\t\treturn &admissionregistrationv1beta1.ValidatingAdmissionPolicyStatusApplyConfiguration{}\n\tcase v1beta1.SchemeGroupVersion.WithKind(\"ValidatingWebhook\"):\n\t\treturn &admissionregistrationv1beta1.ValidatingWebhookApplyConfiguration{}\n\tcase v1beta1.SchemeGroupVersion.WithKind(\"ValidatingWebhookConfiguration\"):\n\t\treturn &admissionregistrationv1beta1.ValidatingWebhookConfigurationApplyConfiguration{}\n\tcase v1beta1.SchemeGroupVersion.WithKind(\"Validation\"):\n\t\treturn &admissionregistrationv1beta1.ValidationApplyConfiguration{}\n\tcase v1beta1.SchemeGroupVersion.WithKind(\"Variable\"):\n\t\treturn &admissionregistrationv1beta1.VariableApplyConfiguration{}\n\tcase v1beta1.SchemeGroupVersion.WithKind(\"WebhookClientConfig\"):\n\t\treturn &admissionregistrationv1beta1.WebhookClientConfigApplyConfiguration{}\n\n\t\t// Group=apps, Version=v1\n\tcase appsv1.SchemeGroupVersion.WithKind(\"ControllerRevision\"):\n\t\treturn &applyconfigurationsappsv1.ControllerRevisionApplyConfiguration{}\n\tcase appsv1.SchemeGroupVersion.WithKind(\"DaemonSet\"):\n\t\treturn &applyconfigurationsappsv1.DaemonSetApplyConfiguration{}\n\tcase appsv1.SchemeGroupVersion.WithKind(\"DaemonSetCondition\"):\n\t\treturn &applyconfigurationsappsv1.DaemonSetConditionApplyConfiguration{}\n\tcase appsv1.SchemeGroupVersion.WithKind(\"DaemonSetSpec\"):\n\t\treturn &applyconfigurationsappsv1.DaemonSetSpecApplyConfiguration{}\n\tcase appsv1.SchemeGroupVersion.WithKind(\"DaemonSetStatus\"):\n\t\treturn &applyconfigurationsappsv1.DaemonSetStatusApplyConfiguration{}\n\tcase appsv1.SchemeGroupVersion.WithKind(\"DaemonSetUpdateStrategy\"):\n\t\treturn &applyconfigurationsappsv1.DaemonSetUpdateStrategyApplyConfiguration{}\n\tcase appsv1.SchemeGroupVersion.WithKind(\"Deployment\"):\n\t\treturn &applyconfigurationsappsv1.DeploymentApplyConfiguration{}\n\tcase appsv1.SchemeGroupVersion.WithKind(\"DeploymentCondition\"):\n\t\treturn &applyconfigurationsappsv1.DeploymentConditionApplyConfiguration{}\n\tcase appsv1.SchemeGroupVersion.WithKind(\"DeploymentSpec\"):\n\t\treturn &applyconfigurationsappsv1.DeploymentSpecApplyConfiguration{}\n\tcase appsv1.SchemeGroupVersion.WithKind(\"DeploymentStatus\"):\n\t\treturn &applyconfigurationsappsv1.DeploymentStatusApplyConfiguration{}\n\tcase appsv1.SchemeGroupVersion.WithKind(\"DeploymentStrategy\"):\n\t\treturn &applyconfigurationsappsv1.DeploymentStrategyApplyConfiguration{}\n\tcase appsv1.SchemeGroupVersion.WithKind(\"ReplicaSet\"):\n\t\treturn &applyconfigurationsappsv1.ReplicaSetApplyConfiguration{}\n\tcase appsv1.SchemeGroupVersion.WithKind(\"ReplicaSetCondition\"):\n\t\treturn &applyconfigurationsappsv1.ReplicaSetConditionApplyConfiguration{}\n\tcase appsv1.SchemeGroupVersion.WithKind(\"ReplicaSetSpec\"):\n\t\treturn &applyconfigurationsappsv1.ReplicaSetSpecApplyConfiguration{}\n\tcase appsv1.SchemeGroupVersion.WithKind(\"ReplicaSetStatus\"):\n\t\treturn &applyconfigurationsappsv1.ReplicaSetStatusApplyConfiguration{}\n\tcase appsv1.SchemeGroupVersion.WithKind(\"RollingUpdateDaemonSet\"):\n\t\treturn &applyconfigurationsappsv1.RollingUpdateDaemonSetApplyConfiguration{}\n\tcase appsv1.SchemeGroupVersion.WithKind(\"RollingUpdateDeployment\"):\n\t\treturn &applyconfigurationsappsv1.RollingUpdateDeploymentApplyConfiguration{}\n\tcase appsv1.SchemeGroupVersion.WithKind(\"RollingUpdateStatefulSetStrategy\"):\n\t\treturn &applyconfigurationsappsv1.RollingUpdateStatefulSetStrategyApplyConfiguration{}\n\tcase appsv1.SchemeGroupVersion.WithKind(\"StatefulSet\"):\n\t\treturn &applyconfigurationsappsv1.StatefulSetApplyConfiguration{}\n\tcase appsv1.SchemeGroupVersion.WithKind(\"StatefulSetCondition\"):\n\t\treturn &applyconfigurationsappsv1.StatefulSetConditionApplyConfiguration{}\n\tcase appsv1.SchemeGroupVersion.WithKind(\"StatefulSetOrdinals\"):\n\t\treturn &applyconfigurationsappsv1.StatefulSetOrdinalsApplyConfiguration{}\n\tcase appsv1.SchemeGroupVersion.WithKind(\"StatefulSetPersistentVolumeClaimRetentionPolicy\"):\n\t\treturn &applyconfigurationsappsv1.StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration{}\n\tcase appsv1.SchemeGroupVersion.WithKind(\"StatefulSetSpec\"):\n\t\treturn &applyconfigurationsappsv1.StatefulSetSpecApplyConfiguration{}\n\tcase appsv1.SchemeGroupVersion.WithKind(\"StatefulSetStatus\"):\n\t\treturn &applyconfigurationsappsv1.StatefulSetStatusApplyConfiguration{}\n\tcase appsv1.SchemeGroupVersion.WithKind(\"StatefulSetUpdateStrategy\"):\n\t\treturn &applyconfigurationsappsv1.StatefulSetUpdateStrategyApplyConfiguration{}\n\n\t\t// Group=apps, Version=v1beta1\n\tcase appsv1beta1.SchemeGroupVersion.WithKind(\"ControllerRevision\"):\n\t\treturn &applyconfigurationsappsv1beta1.ControllerRevisionApplyConfiguration{}\n\tcase appsv1beta1.SchemeGroupVersion.WithKind(\"Deployment\"):\n\t\treturn &applyconfigurationsappsv1beta1.DeploymentApplyConfiguration{}\n\tcase appsv1beta1.SchemeGroupVersion.WithKind(\"DeploymentCondition\"):\n\t\treturn &applyconfigurationsappsv1beta1.DeploymentConditionApplyConfiguration{}\n\tcase appsv1beta1.SchemeGroupVersion.WithKind(\"DeploymentSpec\"):\n\t\treturn &applyconfigurationsappsv1beta1.DeploymentSpecApplyConfiguration{}\n\tcase appsv1beta1.SchemeGroupVersion.WithKind(\"DeploymentStatus\"):\n\t\treturn &applyconfigurationsappsv1beta1.DeploymentStatusApplyConfiguration{}\n\tcase appsv1beta1.SchemeGroupVersion.WithKind(\"DeploymentStrategy\"):\n\t\treturn &applyconfigurationsappsv1beta1.DeploymentStrategyApplyConfiguration{}\n\tcase appsv1beta1.SchemeGroupVersion.WithKind(\"RollbackConfig\"):\n\t\treturn &applyconfigurationsappsv1beta1.RollbackConfigApplyConfiguration{}\n\tcase appsv1beta1.SchemeGroupVersion.WithKind(\"RollingUpdateDeployment\"):\n\t\treturn &applyconfigurationsappsv1beta1.RollingUpdateDeploymentApplyConfiguration{}\n\tcase appsv1beta1.SchemeGroupVersion.WithKind(\"RollingUpdateStatefulSetStrategy\"):\n\t\treturn &applyconfigurationsappsv1beta1.RollingUpdateStatefulSetStrategyApplyConfiguration{}\n\tcase appsv1beta1.SchemeGroupVersion.WithKind(\"StatefulSet\"):\n\t\treturn &applyconfigurationsappsv1beta1.StatefulSetApplyConfiguration{}\n\tcase appsv1beta1.SchemeGroupVersion.WithKind(\"StatefulSetCondition\"):\n\t\treturn &applyconfigurationsappsv1beta1.StatefulSetConditionApplyConfiguration{}\n\tcase appsv1beta1.SchemeGroupVersion.WithKind(\"StatefulSetOrdinals\"):\n\t\treturn &applyconfigurationsappsv1beta1.StatefulSetOrdinalsApplyConfiguration{}\n\tcase appsv1beta1.SchemeGroupVersion.WithKind(\"StatefulSetPersistentVolumeClaimRetentionPolicy\"):\n\t\treturn &applyconfigurationsappsv1beta1.StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration{}\n\tcase appsv1beta1.SchemeGroupVersion.WithKind(\"StatefulSetSpec\"):\n\t\treturn &applyconfigurationsappsv1beta1.StatefulSetSpecApplyConfiguration{}\n\tcase appsv1beta1.SchemeGroupVersion.WithKind(\"StatefulSetStatus\"):\n\t\treturn &applyconfigurationsappsv1beta1.StatefulSetStatusApplyConfiguration{}\n\tcase appsv1beta1.SchemeGroupVersion.WithKind(\"StatefulSetUpdateStrategy\"):\n\t\treturn &applyconfigurationsappsv1beta1.StatefulSetUpdateStrategyApplyConfiguration{}\n\n\t\t// Group=apps, Version=v1beta2\n\tcase v1beta2.SchemeGroupVersion.WithKind(\"ControllerRevision\"):\n\t\treturn &appsv1beta2.ControllerRevisionApplyConfiguration{}\n\tcase v1beta2.SchemeGroupVersion.WithKind(\"DaemonSet\"):\n\t\treturn &appsv1beta2.DaemonSetApplyConfiguration{}\n\tcase v1beta2.SchemeGroupVersion.WithKind(\"DaemonSetCondition\"):\n\t\treturn &appsv1beta2.DaemonSetConditionApplyConfiguration{}\n\tcase v1beta2.SchemeGroupVersion.WithKind(\"DaemonSetSpec\"):\n\t\treturn &appsv1beta2.DaemonSetSpecApplyConfiguration{}\n\tcase v1beta2.SchemeGroupVersion.WithKind(\"DaemonSetStatus\"):\n\t\treturn &appsv1beta2.DaemonSetStatusApplyConfiguration{}\n\tcase v1beta2.SchemeGroupVersion.WithKind(\"DaemonSetUpdateStrategy\"):\n\t\treturn &appsv1beta2.DaemonSetUpdateStrategyApplyConfiguration{}\n\tcase v1beta2.SchemeGroupVersion.WithKind(\"Deployment\"):\n\t\treturn &appsv1beta2.DeploymentApplyConfiguration{}\n\tcase v1beta2.SchemeGroupVersion.WithKind(\"DeploymentCondition\"):\n\t\treturn &appsv1beta2.DeploymentConditionApplyConfiguration{}\n\tcase v1beta2.SchemeGroupVersion.WithKind(\"DeploymentSpec\"):\n\t\treturn &appsv1beta2.DeploymentSpecApplyConfiguration{}\n\tcase v1beta2.SchemeGroupVersion.WithKind(\"DeploymentStatus\"):\n\t\treturn &appsv1beta2.DeploymentStatusApplyConfiguration{}\n\tcase v1beta2.SchemeGroupVersion.WithKind(\"DeploymentStrategy\"):\n\t\treturn &appsv1beta2.DeploymentStrategyApplyConfiguration{}\n\tcase v1beta2.SchemeGroupVersion.WithKind(\"ReplicaSet\"):\n\t\treturn &appsv1beta2.ReplicaSetApplyConfiguration{}\n\tcase v1beta2.SchemeGroupVersion.WithKind(\"ReplicaSetCondition\"):\n\t\treturn &appsv1beta2.ReplicaSetConditionApplyConfiguration{}\n\tcase v1beta2.SchemeGroupVersion.WithKind(\"ReplicaSetSpec\"):\n\t\treturn &appsv1beta2.ReplicaSetSpecApplyConfiguration{}\n\tcase v1beta2.SchemeGroupVersion.WithKind(\"ReplicaSetStatus\"):\n\t\treturn &appsv1beta2.ReplicaSetStatusApplyConfiguration{}\n\tcase v1beta2.SchemeGroupVersion.WithKind(\"RollingUpdateDaemonSet\"):\n\t\treturn &appsv1beta2.RollingUpdateDaemonSetApplyConfiguration{}\n\tcase v1beta2.SchemeGroupVersion.WithKind(\"RollingUpdateDeployment\"):\n\t\treturn &appsv1beta2.RollingUpdateDeploymentApplyConfiguration{}\n\tcase v1beta2.SchemeGroupVersion.WithKind(\"RollingUpdateStatefulSetStrategy\"):\n\t\treturn &appsv1beta2.RollingUpdateStatefulSetStrategyApplyConfiguration{}\n\tcase v1beta2.SchemeGroupVersion.WithKind(\"Scale\"):\n\t\treturn &appsv1beta2.ScaleApplyConfiguration{}\n\tcase v1beta2.SchemeGroupVersion.WithKind(\"StatefulSet\"):\n\t\treturn &appsv1beta2.StatefulSetApplyConfiguration{}\n\tcase v1beta2.SchemeGroupVersion.WithKind(\"StatefulSetCondition\"):\n\t\treturn &appsv1beta2.StatefulSetConditionApplyConfiguration{}\n\tcase v1beta2.SchemeGroupVersion.WithKind(\"StatefulSetOrdinals\"):\n\t\treturn &appsv1beta2.StatefulSetOrdinalsApplyConfiguration{}\n\tcase v1beta2.SchemeGroupVersion.WithKind(\"StatefulSetPersistentVolumeClaimRetentionPolicy\"):\n\t\treturn &appsv1beta2.StatefulSetPersistentVolumeClaimRetentionPolicyApplyConfiguration{}\n\tcase v1beta2.SchemeGroupVersion.WithKind(\"StatefulSetSpec\"):\n\t\treturn &appsv1beta2.StatefulSetSpecApplyConfiguration{}\n\tcase v1beta2.SchemeGroupVersion.WithKind(\"StatefulSetStatus\"):\n\t\treturn &appsv1beta2.StatefulSetStatusApplyConfiguration{}\n\tcase v1beta2.SchemeGroupVersion.WithKind(\"StatefulSetUpdateStrategy\"):\n\t\treturn &appsv1beta2.StatefulSetUpdateStrategyApplyConfiguration{}\n\n\t\t// Group=autoscaling, Version=v1\n\tcase autoscalingv1.SchemeGroupVersion.WithKind(\"CrossVersionObjectReference\"):\n\t\treturn &applyconfigurationsautoscalingv1.CrossVersionObjectReferenceApplyConfiguration{}\n\tcase autoscalingv1.SchemeGroupVersion.WithKind(\"HorizontalPodAutoscaler\"):\n\t\treturn &applyconfigurationsautoscalingv1.HorizontalPodAutoscalerApplyConfiguration{}\n\tcase autoscalingv1.SchemeGroupVersion.WithKind(\"HorizontalPodAutoscalerSpec\"):\n\t\treturn &applyconfigurationsautoscalingv1.HorizontalPodAutoscalerSpecApplyConfiguration{}\n\tcase autoscalingv1.SchemeGroupVersion.WithKind(\"HorizontalPodAutoscalerStatus\"):\n\t\treturn &applyconfigurationsautoscalingv1.HorizontalPodAutoscalerStatusApplyConfiguration{}\n\tcase autoscalingv1.SchemeGroupVersion.WithKind(\"Scale\"):\n\t\treturn &applyconfigurationsautoscalingv1.ScaleApplyConfiguration{}\n\tcase autoscalingv1.SchemeGroupVersion.WithKind(\"ScaleSpec\"):\n\t\treturn &applyconfigurationsautoscalingv1.ScaleSpecApplyConfiguration{}\n\tcase autoscalingv1.SchemeGroupVersion.WithKind(\"ScaleStatus\"):\n\t\treturn &applyconfigurationsautoscalingv1.ScaleStatusApplyConfiguration{}\n\n\t\t// Group=autoscaling, Version=v2\n\tcase v2.SchemeGroupVersion.WithKind(\"ContainerResourceMetricSource\"):\n\t\treturn &autoscalingv2.ContainerResourceMetricSourceApplyConfiguration{}\n\tcase v2.SchemeGroupVersion.WithKind(\"ContainerResourceMetricStatus\"):\n\t\treturn &autoscalingv2.ContainerResourceMetricStatusApplyConfiguration{}\n\tcase v2.SchemeGroupVersion.WithKind(\"CrossVersionObjectReference\"):\n\t\treturn &autoscalingv2.CrossVersionObjectReferenceApplyConfiguration{}\n\tcase v2.SchemeGroupVersion.WithKind(\"ExternalMetricSource\"):\n\t\treturn &autoscalingv2.ExternalMetricSourceApplyConfiguration{}\n\tcase v2.SchemeGroupVersion.WithKind(\"ExternalMetricStatus\"):\n\t\treturn &autoscalingv2.ExternalMetricStatusApplyConfiguration{}\n\tcase v2.SchemeGroupVersion.WithKind(\"HorizontalPodAutoscaler\"):\n\t\treturn &autoscalingv2.HorizontalPodAutoscalerApplyConfiguration{}\n\tcase v2.SchemeGroupVersion.WithKind(\"HorizontalPodAutoscalerBehavior\"):\n\t\treturn &autoscalingv2.HorizontalPodAutoscalerBehaviorApplyConfiguration{}\n\tcase v2.SchemeGroupVersion.WithKind(\"HorizontalPodAutoscalerCondition\"):\n\t\treturn &autoscalingv2.HorizontalPodAutoscalerConditionApplyConfiguration{}\n\tcase v2.SchemeGroupVersion.WithKind(\"HorizontalPodAutoscalerSpec\"):\n\t\treturn &autoscalingv2.HorizontalPodAutoscalerSpecApplyConfiguration{}\n\tcase v2.SchemeGroupVersion.WithKind(\"HorizontalPodAutoscalerStatus\"):\n\t\treturn &autoscalingv2.HorizontalPodAutoscalerStatusApplyConfiguration{}\n\tcase v2.SchemeGroupVersion.WithKind(\"HPAScalingPolicy\"):\n\t\treturn &autoscalingv2.HPAScalingPolicyApplyConfiguration{}\n\tcase v2.SchemeGroupVersion.WithKind(\"HPAScalingRules\"):\n\t\treturn &autoscalingv2.HPAScalingRulesApplyConfiguration{}\n\tcase v2.SchemeGroupVersion.WithKind(\"MetricIdentifier\"):\n\t\treturn &autoscalingv2.MetricIdentifierApplyConfiguration{}\n\tcase v2.SchemeGroupVersion.WithKind(\"MetricSpec\"):\n\t\treturn &autoscalingv2.MetricSpecApplyConfiguration{}\n\tcase v2.SchemeGroupVersion.WithKind(\"MetricStatus\"):\n\t\treturn &autoscalingv2.MetricStatusApplyConfiguration{}\n\tcase v2.SchemeGroupVersion.WithKind(\"MetricTarget\"):\n\t\treturn &autoscalingv2.MetricTargetApplyConfiguration{}\n\tcase v2.SchemeGroupVersion.WithKind(\"MetricValueStatus\"):\n\t\treturn &autoscalingv2.MetricValueStatusApplyConfiguration{}\n\tcase v2.SchemeGroupVersion.WithKind(\"ObjectMetricSource\"):\n\t\treturn &autoscalingv2.ObjectMetricSourceApplyConfiguration{}\n\tcase v2.SchemeGroupVersion.WithKind(\"ObjectMetricStatus\"):\n\t\treturn &autoscalingv2.ObjectMetricStatusApplyConfiguration{}\n\tcase v2.SchemeGroupVersion.WithKind(\"PodsMetricSource\"):\n\t\treturn &autoscalingv2.PodsMetricSourceApplyConfiguration{}\n\tcase v2.SchemeGroupVersion.WithKind(\"PodsMetricStatus\"):\n\t\treturn &autoscalingv2.PodsMetricStatusApplyConfiguration{}\n\tcase v2.SchemeGroupVersion.WithKind(\"ResourceMetricSource\"):\n\t\treturn &autoscalingv2.ResourceMetricSourceApplyConfiguration{}\n\tcase v2.SchemeGroupVersion.WithKind(\"ResourceMetricStatus\"):\n\t\treturn &autoscalingv2.ResourceMetricStatusApplyConfiguration{}\n\n\t\t// Group=autoscaling, Version=v2beta1\n\tcase v2beta1.SchemeGroupVersion.WithKind(\"ContainerResourceMetricSource\"):\n\t\treturn &autoscalingv2beta1.ContainerResourceMetricSourceApplyConfiguration{}\n\tcase v2beta1.SchemeGroupVersion.WithKind(\"ContainerResourceMetricStatus\"):\n\t\treturn &autoscalingv2beta1.ContainerResourceMetricStatusApplyConfiguration{}\n\tcase v2beta1.SchemeGroupVersion.WithKind(\"CrossVersionObjectReference\"):\n\t\treturn &autoscalingv2beta1.CrossVersionObjectReferenceApplyConfiguration{}\n\tcase v2beta1.SchemeGroupVersion.WithKind(\"ExternalMetricSource\"):\n\t\treturn &autoscalingv2beta1.ExternalMetricSourceApplyConfiguration{}\n\tcase v2beta1.SchemeGroupVersion.WithKind(\"ExternalMetricStatus\"):\n\t\treturn &autoscalingv2beta1.ExternalMetricStatusApplyConfiguration{}\n\tcase v2beta1.SchemeGroupVersion.WithKind(\"HorizontalPodAutoscaler\"):\n\t\treturn &autoscalingv2beta1.HorizontalPodAutoscalerApplyConfiguration{}\n\tcase v2beta1.SchemeGroupVersion.WithKind(\"HorizontalPodAutoscalerCondition\"):\n\t\treturn &autoscalingv2beta1.HorizontalPodAutoscalerConditionApplyConfiguration{}\n\tcase v2beta1.SchemeGroupVersion.WithKind(\"HorizontalPodAutoscalerSpec\"):\n\t\treturn &autoscalingv2beta1.HorizontalPodAutoscalerSpecApplyConfiguration{}\n\tcase v2beta1.SchemeGroupVersion.WithKind(\"HorizontalPodAutoscalerStatus\"):\n\t\treturn &autoscalingv2beta1.HorizontalPodAutoscalerStatusApplyConfiguration{}\n\tcase v2beta1.SchemeGroupVersion.WithKind(\"MetricSpec\"):\n\t\treturn &autoscalingv2beta1.MetricSpecApplyConfiguration{}\n\tcase v2beta1.SchemeGroupVersion.WithKind(\"MetricStatus\"):\n\t\treturn &autoscalingv2beta1.MetricStatusApplyConfiguration{}\n\tcase v2beta1.SchemeGroupVersion.WithKind(\"ObjectMetricSource\"):\n\t\treturn &autoscalingv2beta1.ObjectMetricSourceApplyConfiguration{}\n\tcase v2beta1.SchemeGroupVersion.WithKind(\"ObjectMetricStatus\"):\n\t\treturn &autoscalingv2beta1.ObjectMetricStatusApplyConfiguration{}\n\tcase v2beta1.SchemeGroupVersion.WithKind(\"PodsMetricSource\"):\n\t\treturn &autoscalingv2beta1.PodsMetricSourceApplyConfiguration{}\n\tcase v2beta1.SchemeGroupVersion.WithKind(\"PodsMetricStatus\"):\n\t\treturn &autoscalingv2beta1.PodsMetricStatusApplyConfiguration{}\n\tcase v2beta1.SchemeGroupVersion.WithKind(\"ResourceMetricSource\"):\n\t\treturn &autoscalingv2beta1.ResourceMetricSourceApplyConfiguration{}\n\tcase v2beta1.SchemeGroupVersion.WithKind(\"ResourceMetricStatus\"):\n\t\treturn &autoscalingv2beta1.ResourceMetricStatusApplyConfiguration{}\n\n\t\t// Group=autoscaling, Version=v2beta2\n\tcase v2beta2.SchemeGroupVersion.WithKind(\"ContainerResourceMetricSource\"):\n\t\treturn &autoscalingv2beta2.ContainerResourceMetricSourceApplyConfiguration{}\n\tcase v2beta2.SchemeGroupVersion.WithKind(\"ContainerResourceMetricStatus\"):\n\t\treturn &autoscalingv2beta2.ContainerResourceMetricStatusApplyConfiguration{}\n\tcase v2beta2.SchemeGroupVersion.WithKind(\"CrossVersionObjectReference\"):\n\t\treturn &autoscalingv2beta2.CrossVersionObjectReferenceApplyConfiguration{}\n\tcase v2beta2.SchemeGroupVersion.WithKind(\"ExternalMetricSource\"):\n\t\treturn &autoscalingv2beta2.ExternalMetricSourceApplyConfiguration{}\n\tcase v2beta2.SchemeGroupVersion.WithKind(\"ExternalMetricStatus\"):\n\t\treturn &autoscalingv2beta2.ExternalMetricStatusApplyConfiguration{}\n\tcase v2beta2.SchemeGroupVersion.WithKind(\"HorizontalPodAutoscaler\"):\n\t\treturn &autoscalingv2beta2.HorizontalPodAutoscalerApplyConfiguration{}\n\tcase v2beta2.SchemeGroupVersion.WithKind(\"HorizontalPodAutoscalerBehavior\"):\n\t\treturn &autoscalingv2beta2.HorizontalPodAutoscalerBehaviorApplyConfiguration{}\n\tcase v2beta2.SchemeGroupVersion.WithKind(\"HorizontalPodAutoscalerCondition\"):\n\t\treturn &autoscalingv2beta2.HorizontalPodAutoscalerConditionApplyConfiguration{}\n\tcase v2beta2.SchemeGroupVersion.WithKind(\"HorizontalPodAutoscalerSpec\"):\n\t\treturn &autoscalingv2beta2.HorizontalPodAutoscalerSpecApplyConfiguration{}\n\tcase v2beta2.SchemeGroupVersion.WithKind(\"HorizontalPodAutoscalerStatus\"):\n\t\treturn &autoscalingv2beta2.HorizontalPodAutoscalerStatusApplyConfiguration{}\n\tcase v2beta2.SchemeGroupVersion.WithKind(\"HPAScalingPolicy\"):\n\t\treturn &autoscalingv2beta2.HPAScalingPolicyApplyConfiguration{}\n\tcase v2beta2.SchemeGroupVersion.WithKind(\"HPAScalingRules\"):\n\t\treturn &autoscalingv2beta2.HPAScalingRulesApplyConfiguration{}\n\tcase v2beta2.SchemeGroupVersion.WithKind(\"MetricIdentifier\"):\n\t\treturn &autoscalingv2beta2.MetricIdentifierApplyConfiguration{}\n\tcase v2beta2.SchemeGroupVersion.WithKind(\"MetricSpec\"):\n\t\treturn &autoscalingv2beta2.MetricSpecApplyConfiguration{}\n\tcase v2beta2.SchemeGroupVersion.WithKind(\"MetricStatus\"):\n\t\treturn &autoscalingv2beta2.MetricStatusApplyConfiguration{}\n\tcase v2beta2.SchemeGroupVersion.WithKind(\"MetricTarget\"):\n\t\treturn &autoscalingv2beta2.MetricTargetApplyConfiguration{}\n\tcase v2beta2.SchemeGroupVersion.WithKind(\"MetricValueStatus\"):\n\t\treturn &autoscalingv2beta2.MetricValueStatusApplyConfiguration{}\n\tcase v2beta2.SchemeGroupVersion.WithKind(\"ObjectMetricSource\"):\n\t\treturn &autoscalingv2beta2.ObjectMetricSourceApplyConfiguration{}\n\tcase v2beta2.SchemeGroupVersion.WithKind(\"ObjectMetricStatus\"):\n\t\treturn &autoscalingv2beta2.ObjectMetricStatusApplyConfiguration{}\n\tcase v2beta2.SchemeGroupVersion.WithKind(\"PodsMetricSource\"):\n\t\treturn &autoscalingv2beta2.PodsMetricSourceApplyConfiguration{}\n\tcase v2beta2.SchemeGroupVersion.WithKind(\"PodsMetricStatus\"):\n\t\treturn &autoscalingv2beta2.PodsMetricStatusApplyConfiguration{}\n\tcase v2beta2.SchemeGroupVersion.WithKind(\"ResourceMetricSource\"):\n\t\treturn &autoscalingv2beta2.ResourceMetricSourceApplyConfiguration{}\n\tcase v2beta2.SchemeGroupVersion.WithKind(\"ResourceMetricStatus\"):\n\t\treturn &autoscalingv2beta2.ResourceMetricStatusApplyConfiguration{}\n\n\t\t// Group=batch, Version=v1\n\tcase batchv1.SchemeGroupVersion.WithKind(\"CronJob\"):\n\t\treturn &applyconfigurationsbatchv1.CronJobApplyConfiguration{}\n\tcase batchv1.SchemeGroupVersion.WithKind(\"CronJobSpec\"):\n\t\treturn &applyconfigurationsbatchv1.CronJobSpecApplyConfiguration{}\n\tcase batchv1.SchemeGroupVersion.WithKind(\"CronJobStatus\"):\n\t\treturn &applyconfigurationsbatchv1.CronJobStatusApplyConfiguration{}\n\tcase batchv1.SchemeGroupVersion.WithKind(\"Job\"):\n\t\treturn &applyconfigurationsbatchv1.JobApplyConfiguration{}\n\tcase batchv1.SchemeGroupVersion.WithKind(\"JobCondition\"):\n\t\treturn &applyconfigurationsbatchv1.JobConditionApplyConfiguration{}\n\tcase batchv1.SchemeGroupVersion.WithKind(\"JobSpec\"):\n\t\treturn &applyconfigurationsbatchv1.JobSpecApplyConfiguration{}\n\tcase batchv1.SchemeGroupVersion.WithKind(\"JobStatus\"):\n\t\treturn &applyconfigurationsbatchv1.JobStatusApplyConfiguration{}\n\tcase batchv1.SchemeGroupVersion.WithKind(\"JobTemplateSpec\"):\n\t\treturn &applyconfigurationsbatchv1.JobTemplateSpecApplyConfiguration{}\n\tcase batchv1.SchemeGroupVersion.WithKind(\"PodFailurePolicy\"):\n\t\treturn &applyconfigurationsbatchv1.PodFailurePolicyApplyConfiguration{}\n\tcase batchv1.SchemeGroupVersion.WithKind(\"PodFailurePolicyOnExitCodesRequirement\"):\n\t\treturn &applyconfigurationsbatchv1.PodFailurePolicyOnExitCodesRequirementApplyConfiguration{}\n\tcase batchv1.SchemeGroupVersion.WithKind(\"PodFailurePolicyOnPodConditionsPattern\"):\n\t\treturn &applyconfigurationsbatchv1.PodFailurePolicyOnPodConditionsPatternApplyConfiguration{}\n\tcase batchv1.SchemeGroupVersion.WithKind(\"PodFailurePolicyRule\"):\n\t\treturn &applyconfigurationsbatchv1.PodFailurePolicyRuleApplyConfiguration{}\n\tcase batchv1.SchemeGroupVersion.WithKind(\"SuccessPolicy\"):\n\t\treturn &applyconfigurationsbatchv1.SuccessPolicyApplyConfiguration{}\n\tcase batchv1.SchemeGroupVersion.WithKind(\"SuccessPolicyRule\"):\n\t\treturn &applyconfigurationsbatchv1.SuccessPolicyRuleApplyConfiguration{}\n\tcase batchv1.SchemeGroupVersion.WithKind(\"UncountedTerminatedPods\"):\n\t\treturn &applyconfigurationsbatchv1.UncountedTerminatedPodsApplyConfiguration{}\n\n\t\t// Group=batch, Version=v1beta1\n\tcase batchv1beta1.SchemeGroupVersion.WithKind(\"CronJob\"):\n\t\treturn &applyconfigurationsbatchv1beta1.CronJobApplyConfiguration{}\n\tcase batchv1beta1.SchemeGroupVersion.WithKind(\"CronJobSpec\"):\n\t\treturn &applyconfigurationsbatchv1beta1.CronJobSpecApplyConfiguration{}\n\tcase batchv1beta1.SchemeGroupVersion.WithKind(\"CronJobStatus\"):\n\t\treturn &applyconfigurationsbatchv1beta1.CronJobStatusApplyConfiguration{}\n\tcase batchv1beta1.SchemeGroupVersion.WithKind(\"JobTemplateSpec\"):\n\t\treturn &applyconfigurationsbatchv1beta1.JobTemplateSpecApplyConfiguration{}\n\n\t\t// Group=certificates.k8s.io, Version=v1\n\tcase certificatesv1.SchemeGroupVersion.WithKind(\"CertificateSigningRequest\"):\n\t\treturn &applyconfigurationscertificatesv1.CertificateSigningRequestApplyConfiguration{}\n\tcase certificatesv1.SchemeGroupVersion.WithKind(\"CertificateSigningRequestCondition\"):\n\t\treturn &applyconfigurationscertificatesv1.CertificateSigningRequestConditionApplyConfiguration{}\n\tcase certificatesv1.SchemeGroupVersion.WithKind(\"CertificateSigningRequestSpec\"):\n\t\treturn &applyconfigurationscertificatesv1.CertificateSigningRequestSpecApplyConfiguration{}\n\tcase certificatesv1.SchemeGroupVersion.WithKind(\"CertificateSigningRequestStatus\"):\n\t\treturn &applyconfigurationscertificatesv1.CertificateSigningRequestStatusApplyConfiguration{}\n\n\t\t// Group=certificates.k8s.io, Version=v1alpha1\n\tcase certificatesv1alpha1.SchemeGroupVersion.WithKind(\"ClusterTrustBundle\"):\n\t\treturn &applyconfigurationscertificatesv1alpha1.ClusterTrustBundleApplyConfiguration{}\n\tcase certificatesv1alpha1.SchemeGroupVersion.WithKind(\"ClusterTrustBundleSpec\"):\n\t\treturn &applyconfigurationscertificatesv1alpha1.ClusterTrustBundleSpecApplyConfiguration{}\n\n\t\t// Group=certificates.k8s.io, Version=v1beta1\n\tcase certificatesv1beta1.SchemeGroupVersion.WithKind(\"CertificateSigningRequest\"):\n\t\treturn &applyconfigurationscertificatesv1beta1.CertificateSigningRequestApplyConfiguration{}\n\tcase certificatesv1beta1.SchemeGroupVersion.WithKind(\"CertificateSigningRequestCondition\"):\n\t\treturn &applyconfigurationscertificatesv1beta1.CertificateSigningRequestConditionApplyConfiguration{}\n\tcase certificatesv1beta1.SchemeGroupVersion.WithKind(\"CertificateSigningRequestSpec\"):\n\t\treturn &applyconfigurationscertificatesv1beta1.CertificateSigningRequestSpecApplyConfiguration{}\n\tcase certificatesv1beta1.SchemeGroupVersion.WithKind(\"CertificateSigningRequestStatus\"):\n\t\treturn &applyconfigurationscertificatesv1beta1.CertificateSigningRequestStatusApplyConfiguration{}\n\n\t\t// Group=coordination.k8s.io, Version=v1\n\tcase coordinationv1.SchemeGroupVersion.WithKind(\"Lease\"):\n\t\treturn &applyconfigurationscoordinationv1.LeaseApplyConfiguration{}\n\tcase coordinationv1.SchemeGroupVersion.WithKind(\"LeaseSpec\"):\n\t\treturn &applyconfigurationscoordinationv1.LeaseSpecApplyConfiguration{}\n\n\t\t// Group=coordination.k8s.io, Version=v1alpha2\n\tcase v1alpha2.SchemeGroupVersion.WithKind(\"LeaseCandidate\"):\n\t\treturn &coordinationv1alpha2.LeaseCandidateApplyConfiguration{}\n\tcase v1alpha2.SchemeGroupVersion.WithKind(\"LeaseCandidateSpec\"):\n\t\treturn &coordinationv1alpha2.LeaseCandidateSpecApplyConfiguration{}\n\n\t\t// Group=coordination.k8s.io, Version=v1beta1\n\tcase coordinationv1beta1.SchemeGroupVersion.WithKind(\"Lease\"):\n\t\treturn &applyconfigurationscoordinationv1beta1.LeaseApplyConfiguration{}\n\tcase coordinationv1beta1.SchemeGroupVersion.WithKind(\"LeaseSpec\"):\n\t\treturn &applyconfigurationscoordinationv1beta1.LeaseSpecApplyConfiguration{}\n\n\t\t// Group=core, Version=v1\n\tcase corev1.SchemeGroupVersion.WithKind(\"Affinity\"):\n\t\treturn &applyconfigurationscorev1.AffinityApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"AppArmorProfile\"):\n\t\treturn &applyconfigurationscorev1.AppArmorProfileApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"AttachedVolume\"):\n\t\treturn &applyconfigurationscorev1.AttachedVolumeApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"AWSElasticBlockStoreVolumeSource\"):\n\t\treturn &applyconfigurationscorev1.AWSElasticBlockStoreVolumeSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"AzureDiskVolumeSource\"):\n\t\treturn &applyconfigurationscorev1.AzureDiskVolumeSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"AzureFilePersistentVolumeSource\"):\n\t\treturn &applyconfigurationscorev1.AzureFilePersistentVolumeSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"AzureFileVolumeSource\"):\n\t\treturn &applyconfigurationscorev1.AzureFileVolumeSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"Capabilities\"):\n\t\treturn &applyconfigurationscorev1.CapabilitiesApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"CephFSPersistentVolumeSource\"):\n\t\treturn &applyconfigurationscorev1.CephFSPersistentVolumeSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"CephFSVolumeSource\"):\n\t\treturn &applyconfigurationscorev1.CephFSVolumeSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"CinderPersistentVolumeSource\"):\n\t\treturn &applyconfigurationscorev1.CinderPersistentVolumeSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"CinderVolumeSource\"):\n\t\treturn &applyconfigurationscorev1.CinderVolumeSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ClientIPConfig\"):\n\t\treturn &applyconfigurationscorev1.ClientIPConfigApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ClusterTrustBundleProjection\"):\n\t\treturn &applyconfigurationscorev1.ClusterTrustBundleProjectionApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ComponentCondition\"):\n\t\treturn &applyconfigurationscorev1.ComponentConditionApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ComponentStatus\"):\n\t\treturn &applyconfigurationscorev1.ComponentStatusApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ConfigMap\"):\n\t\treturn &applyconfigurationscorev1.ConfigMapApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ConfigMapEnvSource\"):\n\t\treturn &applyconfigurationscorev1.ConfigMapEnvSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ConfigMapKeySelector\"):\n\t\treturn &applyconfigurationscorev1.ConfigMapKeySelectorApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ConfigMapNodeConfigSource\"):\n\t\treturn &applyconfigurationscorev1.ConfigMapNodeConfigSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ConfigMapProjection\"):\n\t\treturn &applyconfigurationscorev1.ConfigMapProjectionApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ConfigMapVolumeSource\"):\n\t\treturn &applyconfigurationscorev1.ConfigMapVolumeSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"Container\"):\n\t\treturn &applyconfigurationscorev1.ContainerApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ContainerImage\"):\n\t\treturn &applyconfigurationscorev1.ContainerImageApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ContainerPort\"):\n\t\treturn &applyconfigurationscorev1.ContainerPortApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ContainerResizePolicy\"):\n\t\treturn &applyconfigurationscorev1.ContainerResizePolicyApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ContainerState\"):\n\t\treturn &applyconfigurationscorev1.ContainerStateApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ContainerStateRunning\"):\n\t\treturn &applyconfigurationscorev1.ContainerStateRunningApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ContainerStateTerminated\"):\n\t\treturn &applyconfigurationscorev1.ContainerStateTerminatedApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ContainerStateWaiting\"):\n\t\treturn &applyconfigurationscorev1.ContainerStateWaitingApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ContainerStatus\"):\n\t\treturn &applyconfigurationscorev1.ContainerStatusApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ContainerUser\"):\n\t\treturn &applyconfigurationscorev1.ContainerUserApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"CSIPersistentVolumeSource\"):\n\t\treturn &applyconfigurationscorev1.CSIPersistentVolumeSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"CSIVolumeSource\"):\n\t\treturn &applyconfigurationscorev1.CSIVolumeSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"DaemonEndpoint\"):\n\t\treturn &applyconfigurationscorev1.DaemonEndpointApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"DownwardAPIProjection\"):\n\t\treturn &applyconfigurationscorev1.DownwardAPIProjectionApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"DownwardAPIVolumeFile\"):\n\t\treturn &applyconfigurationscorev1.DownwardAPIVolumeFileApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"DownwardAPIVolumeSource\"):\n\t\treturn &applyconfigurationscorev1.DownwardAPIVolumeSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"EmptyDirVolumeSource\"):\n\t\treturn &applyconfigurationscorev1.EmptyDirVolumeSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"EndpointAddress\"):\n\t\treturn &applyconfigurationscorev1.EndpointAddressApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"EndpointPort\"):\n\t\treturn &applyconfigurationscorev1.EndpointPortApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"Endpoints\"):\n\t\treturn &applyconfigurationscorev1.EndpointsApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"EndpointSubset\"):\n\t\treturn &applyconfigurationscorev1.EndpointSubsetApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"EnvFromSource\"):\n\t\treturn &applyconfigurationscorev1.EnvFromSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"EnvVar\"):\n\t\treturn &applyconfigurationscorev1.EnvVarApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"EnvVarSource\"):\n\t\treturn &applyconfigurationscorev1.EnvVarSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"EphemeralContainer\"):\n\t\treturn &applyconfigurationscorev1.EphemeralContainerApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"EphemeralContainerCommon\"):\n\t\treturn &applyconfigurationscorev1.EphemeralContainerCommonApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"EphemeralVolumeSource\"):\n\t\treturn &applyconfigurationscorev1.EphemeralVolumeSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"Event\"):\n\t\treturn &applyconfigurationscorev1.EventApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"EventSeries\"):\n\t\treturn &applyconfigurationscorev1.EventSeriesApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"EventSource\"):\n\t\treturn &applyconfigurationscorev1.EventSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ExecAction\"):\n\t\treturn &applyconfigurationscorev1.ExecActionApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"FCVolumeSource\"):\n\t\treturn &applyconfigurationscorev1.FCVolumeSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"FlexPersistentVolumeSource\"):\n\t\treturn &applyconfigurationscorev1.FlexPersistentVolumeSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"FlexVolumeSource\"):\n\t\treturn &applyconfigurationscorev1.FlexVolumeSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"FlockerVolumeSource\"):\n\t\treturn &applyconfigurationscorev1.FlockerVolumeSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"GCEPersistentDiskVolumeSource\"):\n\t\treturn &applyconfigurationscorev1.GCEPersistentDiskVolumeSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"GitRepoVolumeSource\"):\n\t\treturn &applyconfigurationscorev1.GitRepoVolumeSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"GlusterfsPersistentVolumeSource\"):\n\t\treturn &applyconfigurationscorev1.GlusterfsPersistentVolumeSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"GlusterfsVolumeSource\"):\n\t\treturn &applyconfigurationscorev1.GlusterfsVolumeSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"GRPCAction\"):\n\t\treturn &applyconfigurationscorev1.GRPCActionApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"HostAlias\"):\n\t\treturn &applyconfigurationscorev1.HostAliasApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"HostIP\"):\n\t\treturn &applyconfigurationscorev1.HostIPApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"HostPathVolumeSource\"):\n\t\treturn &applyconfigurationscorev1.HostPathVolumeSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"HTTPGetAction\"):\n\t\treturn &applyconfigurationscorev1.HTTPGetActionApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"HTTPHeader\"):\n\t\treturn &applyconfigurationscorev1.HTTPHeaderApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ImageVolumeSource\"):\n\t\treturn &applyconfigurationscorev1.ImageVolumeSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ISCSIPersistentVolumeSource\"):\n\t\treturn &applyconfigurationscorev1.ISCSIPersistentVolumeSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ISCSIVolumeSource\"):\n\t\treturn &applyconfigurationscorev1.ISCSIVolumeSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"KeyToPath\"):\n\t\treturn &applyconfigurationscorev1.KeyToPathApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"Lifecycle\"):\n\t\treturn &applyconfigurationscorev1.LifecycleApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"LifecycleHandler\"):\n\t\treturn &applyconfigurationscorev1.LifecycleHandlerApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"LimitRange\"):\n\t\treturn &applyconfigurationscorev1.LimitRangeApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"LimitRangeItem\"):\n\t\treturn &applyconfigurationscorev1.LimitRangeItemApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"LimitRangeSpec\"):\n\t\treturn &applyconfigurationscorev1.LimitRangeSpecApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"LinuxContainerUser\"):\n\t\treturn &applyconfigurationscorev1.LinuxContainerUserApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"LoadBalancerIngress\"):\n\t\treturn &applyconfigurationscorev1.LoadBalancerIngressApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"LoadBalancerStatus\"):\n\t\treturn &applyconfigurationscorev1.LoadBalancerStatusApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"LocalObjectReference\"):\n\t\treturn &applyconfigurationscorev1.LocalObjectReferenceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"LocalVolumeSource\"):\n\t\treturn &applyconfigurationscorev1.LocalVolumeSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ModifyVolumeStatus\"):\n\t\treturn &applyconfigurationscorev1.ModifyVolumeStatusApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"Namespace\"):\n\t\treturn &applyconfigurationscorev1.NamespaceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"NamespaceCondition\"):\n\t\treturn &applyconfigurationscorev1.NamespaceConditionApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"NamespaceSpec\"):\n\t\treturn &applyconfigurationscorev1.NamespaceSpecApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"NamespaceStatus\"):\n\t\treturn &applyconfigurationscorev1.NamespaceStatusApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"NFSVolumeSource\"):\n\t\treturn &applyconfigurationscorev1.NFSVolumeSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"Node\"):\n\t\treturn &applyconfigurationscorev1.NodeApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"NodeAddress\"):\n\t\treturn &applyconfigurationscorev1.NodeAddressApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"NodeAffinity\"):\n\t\treturn &applyconfigurationscorev1.NodeAffinityApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"NodeCondition\"):\n\t\treturn &applyconfigurationscorev1.NodeConditionApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"NodeConfigSource\"):\n\t\treturn &applyconfigurationscorev1.NodeConfigSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"NodeConfigStatus\"):\n\t\treturn &applyconfigurationscorev1.NodeConfigStatusApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"NodeDaemonEndpoints\"):\n\t\treturn &applyconfigurationscorev1.NodeDaemonEndpointsApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"NodeFeatures\"):\n\t\treturn &applyconfigurationscorev1.NodeFeaturesApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"NodeRuntimeHandler\"):\n\t\treturn &applyconfigurationscorev1.NodeRuntimeHandlerApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"NodeRuntimeHandlerFeatures\"):\n\t\treturn &applyconfigurationscorev1.NodeRuntimeHandlerFeaturesApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"NodeSelector\"):\n\t\treturn &applyconfigurationscorev1.NodeSelectorApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"NodeSelectorRequirement\"):\n\t\treturn &applyconfigurationscorev1.NodeSelectorRequirementApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"NodeSelectorTerm\"):\n\t\treturn &applyconfigurationscorev1.NodeSelectorTermApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"NodeSpec\"):\n\t\treturn &applyconfigurationscorev1.NodeSpecApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"NodeStatus\"):\n\t\treturn &applyconfigurationscorev1.NodeStatusApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"NodeSystemInfo\"):\n\t\treturn &applyconfigurationscorev1.NodeSystemInfoApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ObjectFieldSelector\"):\n\t\treturn &applyconfigurationscorev1.ObjectFieldSelectorApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ObjectReference\"):\n\t\treturn &applyconfigurationscorev1.ObjectReferenceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"PersistentVolume\"):\n\t\treturn &applyconfigurationscorev1.PersistentVolumeApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"PersistentVolumeClaim\"):\n\t\treturn &applyconfigurationscorev1.PersistentVolumeClaimApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"PersistentVolumeClaimCondition\"):\n\t\treturn &applyconfigurationscorev1.PersistentVolumeClaimConditionApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"PersistentVolumeClaimSpec\"):\n\t\treturn &applyconfigurationscorev1.PersistentVolumeClaimSpecApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"PersistentVolumeClaimStatus\"):\n\t\treturn &applyconfigurationscorev1.PersistentVolumeClaimStatusApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"PersistentVolumeClaimTemplate\"):\n\t\treturn &applyconfigurationscorev1.PersistentVolumeClaimTemplateApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"PersistentVolumeClaimVolumeSource\"):\n\t\treturn &applyconfigurationscorev1.PersistentVolumeClaimVolumeSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"PersistentVolumeSource\"):\n\t\treturn &applyconfigurationscorev1.PersistentVolumeSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"PersistentVolumeSpec\"):\n\t\treturn &applyconfigurationscorev1.PersistentVolumeSpecApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"PersistentVolumeStatus\"):\n\t\treturn &applyconfigurationscorev1.PersistentVolumeStatusApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"PhotonPersistentDiskVolumeSource\"):\n\t\treturn &applyconfigurationscorev1.PhotonPersistentDiskVolumeSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"Pod\"):\n\t\treturn &applyconfigurationscorev1.PodApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"PodAffinity\"):\n\t\treturn &applyconfigurationscorev1.PodAffinityApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"PodAffinityTerm\"):\n\t\treturn &applyconfigurationscorev1.PodAffinityTermApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"PodAntiAffinity\"):\n\t\treturn &applyconfigurationscorev1.PodAntiAffinityApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"PodCondition\"):\n\t\treturn &applyconfigurationscorev1.PodConditionApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"PodDNSConfig\"):\n\t\treturn &applyconfigurationscorev1.PodDNSConfigApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"PodDNSConfigOption\"):\n\t\treturn &applyconfigurationscorev1.PodDNSConfigOptionApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"PodIP\"):\n\t\treturn &applyconfigurationscorev1.PodIPApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"PodOS\"):\n\t\treturn &applyconfigurationscorev1.PodOSApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"PodReadinessGate\"):\n\t\treturn &applyconfigurationscorev1.PodReadinessGateApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"PodResourceClaim\"):\n\t\treturn &applyconfigurationscorev1.PodResourceClaimApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"PodResourceClaimStatus\"):\n\t\treturn &applyconfigurationscorev1.PodResourceClaimStatusApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"PodSchedulingGate\"):\n\t\treturn &applyconfigurationscorev1.PodSchedulingGateApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"PodSecurityContext\"):\n\t\treturn &applyconfigurationscorev1.PodSecurityContextApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"PodSpec\"):\n\t\treturn &applyconfigurationscorev1.PodSpecApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"PodStatus\"):\n\t\treturn &applyconfigurationscorev1.PodStatusApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"PodTemplate\"):\n\t\treturn &applyconfigurationscorev1.PodTemplateApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"PodTemplateSpec\"):\n\t\treturn &applyconfigurationscorev1.PodTemplateSpecApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"PortStatus\"):\n\t\treturn &applyconfigurationscorev1.PortStatusApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"PortworxVolumeSource\"):\n\t\treturn &applyconfigurationscorev1.PortworxVolumeSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"PreferredSchedulingTerm\"):\n\t\treturn &applyconfigurationscorev1.PreferredSchedulingTermApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"Probe\"):\n\t\treturn &applyconfigurationscorev1.ProbeApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ProbeHandler\"):\n\t\treturn &applyconfigurationscorev1.ProbeHandlerApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ProjectedVolumeSource\"):\n\t\treturn &applyconfigurationscorev1.ProjectedVolumeSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"QuobyteVolumeSource\"):\n\t\treturn &applyconfigurationscorev1.QuobyteVolumeSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"RBDPersistentVolumeSource\"):\n\t\treturn &applyconfigurationscorev1.RBDPersistentVolumeSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"RBDVolumeSource\"):\n\t\treturn &applyconfigurationscorev1.RBDVolumeSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ReplicationController\"):\n\t\treturn &applyconfigurationscorev1.ReplicationControllerApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ReplicationControllerCondition\"):\n\t\treturn &applyconfigurationscorev1.ReplicationControllerConditionApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ReplicationControllerSpec\"):\n\t\treturn &applyconfigurationscorev1.ReplicationControllerSpecApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ReplicationControllerStatus\"):\n\t\treturn &applyconfigurationscorev1.ReplicationControllerStatusApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ResourceClaim\"):\n\t\treturn &applyconfigurationscorev1.ResourceClaimApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ResourceFieldSelector\"):\n\t\treturn &applyconfigurationscorev1.ResourceFieldSelectorApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ResourceHealth\"):\n\t\treturn &applyconfigurationscorev1.ResourceHealthApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ResourceQuota\"):\n\t\treturn &applyconfigurationscorev1.ResourceQuotaApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ResourceQuotaSpec\"):\n\t\treturn &applyconfigurationscorev1.ResourceQuotaSpecApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ResourceQuotaStatus\"):\n\t\treturn &applyconfigurationscorev1.ResourceQuotaStatusApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ResourceRequirements\"):\n\t\treturn &applyconfigurationscorev1.ResourceRequirementsApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ResourceStatus\"):\n\t\treturn &applyconfigurationscorev1.ResourceStatusApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ScaleIOPersistentVolumeSource\"):\n\t\treturn &applyconfigurationscorev1.ScaleIOPersistentVolumeSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ScaleIOVolumeSource\"):\n\t\treturn &applyconfigurationscorev1.ScaleIOVolumeSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ScopedResourceSelectorRequirement\"):\n\t\treturn &applyconfigurationscorev1.ScopedResourceSelectorRequirementApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ScopeSelector\"):\n\t\treturn &applyconfigurationscorev1.ScopeSelectorApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"SeccompProfile\"):\n\t\treturn &applyconfigurationscorev1.SeccompProfileApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"Secret\"):\n\t\treturn &applyconfigurationscorev1.SecretApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"SecretEnvSource\"):\n\t\treturn &applyconfigurationscorev1.SecretEnvSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"SecretKeySelector\"):\n\t\treturn &applyconfigurationscorev1.SecretKeySelectorApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"SecretProjection\"):\n\t\treturn &applyconfigurationscorev1.SecretProjectionApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"SecretReference\"):\n\t\treturn &applyconfigurationscorev1.SecretReferenceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"SecretVolumeSource\"):\n\t\treturn &applyconfigurationscorev1.SecretVolumeSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"SecurityContext\"):\n\t\treturn &applyconfigurationscorev1.SecurityContextApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"SELinuxOptions\"):\n\t\treturn &applyconfigurationscorev1.SELinuxOptionsApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"Service\"):\n\t\treturn &applyconfigurationscorev1.ServiceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ServiceAccount\"):\n\t\treturn &applyconfigurationscorev1.ServiceAccountApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ServiceAccountTokenProjection\"):\n\t\treturn &applyconfigurationscorev1.ServiceAccountTokenProjectionApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ServicePort\"):\n\t\treturn &applyconfigurationscorev1.ServicePortApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ServiceSpec\"):\n\t\treturn &applyconfigurationscorev1.ServiceSpecApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"ServiceStatus\"):\n\t\treturn &applyconfigurationscorev1.ServiceStatusApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"SessionAffinityConfig\"):\n\t\treturn &applyconfigurationscorev1.SessionAffinityConfigApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"SleepAction\"):\n\t\treturn &applyconfigurationscorev1.SleepActionApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"StorageOSPersistentVolumeSource\"):\n\t\treturn &applyconfigurationscorev1.StorageOSPersistentVolumeSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"StorageOSVolumeSource\"):\n\t\treturn &applyconfigurationscorev1.StorageOSVolumeSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"Sysctl\"):\n\t\treturn &applyconfigurationscorev1.SysctlApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"Taint\"):\n\t\treturn &applyconfigurationscorev1.TaintApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"TCPSocketAction\"):\n\t\treturn &applyconfigurationscorev1.TCPSocketActionApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"Toleration\"):\n\t\treturn &applyconfigurationscorev1.TolerationApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"TopologySelectorLabelRequirement\"):\n\t\treturn &applyconfigurationscorev1.TopologySelectorLabelRequirementApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"TopologySelectorTerm\"):\n\t\treturn &applyconfigurationscorev1.TopologySelectorTermApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"TopologySpreadConstraint\"):\n\t\treturn &applyconfigurationscorev1.TopologySpreadConstraintApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"TypedLocalObjectReference\"):\n\t\treturn &applyconfigurationscorev1.TypedLocalObjectReferenceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"TypedObjectReference\"):\n\t\treturn &applyconfigurationscorev1.TypedObjectReferenceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"Volume\"):\n\t\treturn &applyconfigurationscorev1.VolumeApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"VolumeDevice\"):\n\t\treturn &applyconfigurationscorev1.VolumeDeviceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"VolumeMount\"):\n\t\treturn &applyconfigurationscorev1.VolumeMountApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"VolumeMountStatus\"):\n\t\treturn &applyconfigurationscorev1.VolumeMountStatusApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"VolumeNodeAffinity\"):\n\t\treturn &applyconfigurationscorev1.VolumeNodeAffinityApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"VolumeProjection\"):\n\t\treturn &applyconfigurationscorev1.VolumeProjectionApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"VolumeResourceRequirements\"):\n\t\treturn &applyconfigurationscorev1.VolumeResourceRequirementsApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"VolumeSource\"):\n\t\treturn &applyconfigurationscorev1.VolumeSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"VsphereVirtualDiskVolumeSource\"):\n\t\treturn &applyconfigurationscorev1.VsphereVirtualDiskVolumeSourceApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"WeightedPodAffinityTerm\"):\n\t\treturn &applyconfigurationscorev1.WeightedPodAffinityTermApplyConfiguration{}\n\tcase corev1.SchemeGroupVersion.WithKind(\"WindowsSecurityContextOptions\"):\n\t\treturn &applyconfigurationscorev1.WindowsSecurityContextOptionsApplyConfiguration{}\n\n\t\t// Group=discovery.k8s.io, Version=v1\n\tcase discoveryv1.SchemeGroupVersion.WithKind(\"Endpoint\"):\n\t\treturn &applyconfigurationsdiscoveryv1.EndpointApplyConfiguration{}\n\tcase discoveryv1.SchemeGroupVersion.WithKind(\"EndpointConditions\"):\n\t\treturn &applyconfigurationsdiscoveryv1.EndpointConditionsApplyConfiguration{}\n\tcase discoveryv1.SchemeGroupVersion.WithKind(\"EndpointHints\"):\n\t\treturn &applyconfigurationsdiscoveryv1.EndpointHintsApplyConfiguration{}\n\tcase discoveryv1.SchemeGroupVersion.WithKind(\"EndpointPort\"):\n\t\treturn &applyconfigurationsdiscoveryv1.EndpointPortApplyConfiguration{}\n\tcase discoveryv1.SchemeGroupVersion.WithKind(\"EndpointSlice\"):\n\t\treturn &applyconfigurationsdiscoveryv1.EndpointSliceApplyConfiguration{}\n\tcase discoveryv1.SchemeGroupVersion.WithKind(\"ForZone\"):\n\t\treturn &applyconfigurationsdiscoveryv1.ForZoneApplyConfiguration{}\n\n\t\t// Group=discovery.k8s.io, Version=v1beta1\n\tcase discoveryv1beta1.SchemeGroupVersion.WithKind(\"Endpoint\"):\n\t\treturn &applyconfigurationsdiscoveryv1beta1.EndpointApplyConfiguration{}\n\tcase discoveryv1beta1.SchemeGroupVersion.WithKind(\"EndpointConditions\"):\n\t\treturn &applyconfigurationsdiscoveryv1beta1.EndpointConditionsApplyConfiguration{}\n\tcase discoveryv1beta1.SchemeGroupVersion.WithKind(\"EndpointHints\"):\n\t\treturn &applyconfigurationsdiscoveryv1beta1.EndpointHintsApplyConfiguration{}\n\tcase discoveryv1beta1.SchemeGroupVersion.WithKind(\"EndpointPort\"):\n\t\treturn &applyconfigurationsdiscoveryv1beta1.EndpointPortApplyConfiguration{}\n\tcase discoveryv1beta1.SchemeGroupVersion.WithKind(\"EndpointSlice\"):\n\t\treturn &applyconfigurationsdiscoveryv1beta1.EndpointSliceApplyConfiguration{}\n\tcase discoveryv1beta1.SchemeGroupVersion.WithKind(\"ForZone\"):\n\t\treturn &applyconfigurationsdiscoveryv1beta1.ForZoneApplyConfiguration{}\n\n\t\t// Group=events.k8s.io, Version=v1\n\tcase eventsv1.SchemeGroupVersion.WithKind(\"Event\"):\n\t\treturn &applyconfigurationseventsv1.EventApplyConfiguration{}\n\tcase eventsv1.SchemeGroupVersion.WithKind(\"EventSeries\"):\n\t\treturn &applyconfigurationseventsv1.EventSeriesApplyConfiguration{}\n\n\t\t// Group=events.k8s.io, Version=v1beta1\n\tcase eventsv1beta1.SchemeGroupVersion.WithKind(\"Event\"):\n\t\treturn &applyconfigurationseventsv1beta1.EventApplyConfiguration{}\n\tcase eventsv1beta1.SchemeGroupVersion.WithKind(\"EventSeries\"):\n\t\treturn &applyconfigurationseventsv1beta1.EventSeriesApplyConfiguration{}\n\n\t\t// Group=extensions, Version=v1beta1\n\tcase extensionsv1beta1.SchemeGroupVersion.WithKind(\"DaemonSet\"):\n\t\treturn &applyconfigurationsextensionsv1beta1.DaemonSetApplyConfiguration{}\n\tcase extensionsv1beta1.SchemeGroupVersion.WithKind(\"DaemonSetCondition\"):\n\t\treturn &applyconfigurationsextensionsv1beta1.DaemonSetConditionApplyConfiguration{}\n\tcase extensionsv1beta1.SchemeGroupVersion.WithKind(\"DaemonSetSpec\"):\n\t\treturn &applyconfigurationsextensionsv1beta1.DaemonSetSpecApplyConfiguration{}\n\tcase extensionsv1beta1.SchemeGroupVersion.WithKind(\"DaemonSetStatus\"):\n\t\treturn &applyconfigurationsextensionsv1beta1.DaemonSetStatusApplyConfiguration{}\n\tcase extensionsv1beta1.SchemeGroupVersion.WithKind(\"DaemonSetUpdateStrategy\"):\n\t\treturn &applyconfigurationsextensionsv1beta1.DaemonSetUpdateStrategyApplyConfiguration{}\n\tcase extensionsv1beta1.SchemeGroupVersion.WithKind(\"Deployment\"):\n\t\treturn &applyconfigurationsextensionsv1beta1.DeploymentApplyConfiguration{}\n\tcase extensionsv1beta1.SchemeGroupVersion.WithKind(\"DeploymentCondition\"):\n\t\treturn &applyconfigurationsextensionsv1beta1.DeploymentConditionApplyConfiguration{}\n\tcase extensionsv1beta1.SchemeGroupVersion.WithKind(\"DeploymentSpec\"):\n\t\treturn &applyconfigurationsextensionsv1beta1.DeploymentSpecApplyConfiguration{}\n\tcase extensionsv1beta1.SchemeGroupVersion.WithKind(\"DeploymentStatus\"):\n\t\treturn &applyconfigurationsextensionsv1beta1.DeploymentStatusApplyConfiguration{}\n\tcase extensionsv1beta1.SchemeGroupVersion.WithKind(\"DeploymentStrategy\"):\n\t\treturn &applyconfigurationsextensionsv1beta1.DeploymentStrategyApplyConfiguration{}\n\tcase extensionsv1beta1.SchemeGroupVersion.WithKind(\"HTTPIngressPath\"):\n\t\treturn &applyconfigurationsextensionsv1beta1.HTTPIngressPathApplyConfiguration{}\n\tcase extensionsv1beta1.SchemeGroupVersion.WithKind(\"HTTPIngressRuleValue\"):\n\t\treturn &applyconfigurationsextensionsv1beta1.HTTPIngressRuleValueApplyConfiguration{}\n\tcase extensionsv1beta1.SchemeGroupVersion.WithKind(\"Ingress\"):\n\t\treturn &applyconfigurationsextensionsv1beta1.IngressApplyConfiguration{}\n\tcase extensionsv1beta1.SchemeGroupVersion.WithKind(\"IngressBackend\"):\n\t\treturn &applyconfigurationsextensionsv1beta1.IngressBackendApplyConfiguration{}\n\tcase extensionsv1beta1.SchemeGroupVersion.WithKind(\"IngressLoadBalancerIngress\"):\n\t\treturn &applyconfigurationsextensionsv1beta1.IngressLoadBalancerIngressApplyConfiguration{}\n\tcase extensionsv1beta1.SchemeGroupVersion.WithKind(\"IngressLoadBalancerStatus\"):\n\t\treturn &applyconfigurationsextensionsv1beta1.IngressLoadBalancerStatusApplyConfiguration{}\n\tcase extensionsv1beta1.SchemeGroupVersion.WithKind(\"IngressPortStatus\"):\n\t\treturn &applyconfigurationsextensionsv1beta1.IngressPortStatusApplyConfiguration{}\n\tcase extensionsv1beta1.SchemeGroupVersion.WithKind(\"IngressRule\"):\n\t\treturn &applyconfigurationsextensionsv1beta1.IngressRuleApplyConfiguration{}\n\tcase extensionsv1beta1.SchemeGroupVersion.WithKind(\"IngressRuleValue\"):\n\t\treturn &applyconfigurationsextensionsv1beta1.IngressRuleValueApplyConfiguration{}\n\tcase extensionsv1beta1.SchemeGroupVersion.WithKind(\"IngressSpec\"):\n\t\treturn &applyconfigurationsextensionsv1beta1.IngressSpecApplyConfiguration{}\n\tcase extensionsv1beta1.SchemeGroupVersion.WithKind(\"IngressStatus\"):\n\t\treturn &applyconfigurationsextensionsv1beta1.IngressStatusApplyConfiguration{}\n\tcase extensionsv1beta1.SchemeGroupVersion.WithKind(\"IngressTLS\"):\n\t\treturn &applyconfigurationsextensionsv1beta1.IngressTLSApplyConfiguration{}\n\tcase extensionsv1beta1.SchemeGroupVersion.WithKind(\"IPBlock\"):\n\t\treturn &applyconfigurationsextensionsv1beta1.IPBlockApplyConfiguration{}\n\tcase extensionsv1beta1.SchemeGroupVersion.WithKind(\"NetworkPolicy\"):\n\t\treturn &applyconfigurationsextensionsv1beta1.NetworkPolicyApplyConfiguration{}\n\tcase extensionsv1beta1.SchemeGroupVersion.WithKind(\"NetworkPolicyEgressRule\"):\n\t\treturn &applyconfigurationsextensionsv1beta1.NetworkPolicyEgressRuleApplyConfiguration{}\n\tcase extensionsv1beta1.SchemeGroupVersion.WithKind(\"NetworkPolicyIngressRule\"):\n\t\treturn &applyconfigurationsextensionsv1beta1.NetworkPolicyIngressRuleApplyConfiguration{}\n\tcase extensionsv1beta1.SchemeGroupVersion.WithKind(\"NetworkPolicyPeer\"):\n\t\treturn &applyconfigurationsextensionsv1beta1.NetworkPolicyPeerApplyConfiguration{}\n\tcase extensionsv1beta1.SchemeGroupVersion.WithKind(\"NetworkPolicyPort\"):\n\t\treturn &applyconfigurationsextensionsv1beta1.NetworkPolicyPortApplyConfiguration{}\n\tcase extensionsv1beta1.SchemeGroupVersion.WithKind(\"NetworkPolicySpec\"):\n\t\treturn &applyconfigurationsextensionsv1beta1.NetworkPolicySpecApplyConfiguration{}\n\tcase extensionsv1beta1.SchemeGroupVersion.WithKind(\"ReplicaSet\"):\n\t\treturn &applyconfigurationsextensionsv1beta1.ReplicaSetApplyConfiguration{}\n\tcase extensionsv1beta1.SchemeGroupVersion.WithKind(\"ReplicaSetCondition\"):\n\t\treturn &applyconfigurationsextensionsv1beta1.ReplicaSetConditionApplyConfiguration{}\n\tcase extensionsv1beta1.SchemeGroupVersion.WithKind(\"ReplicaSetSpec\"):\n\t\treturn &applyconfigurationsextensionsv1beta1.ReplicaSetSpecApplyConfiguration{}\n\tcase extensionsv1beta1.SchemeGroupVersion.WithKind(\"ReplicaSetStatus\"):\n\t\treturn &applyconfigurationsextensionsv1beta1.ReplicaSetStatusApplyConfiguration{}\n\tcase extensionsv1beta1.SchemeGroupVersion.WithKind(\"RollbackConfig\"):\n\t\treturn &applyconfigurationsextensionsv1beta1.RollbackConfigApplyConfiguration{}\n\tcase extensionsv1beta1.SchemeGroupVersion.WithKind(\"RollingUpdateDaemonSet\"):\n\t\treturn &applyconfigurationsextensionsv1beta1.RollingUpdateDaemonSetApplyConfiguration{}\n\tcase extensionsv1beta1.SchemeGroupVersion.WithKind(\"RollingUpdateDeployment\"):\n\t\treturn &applyconfigurationsextensionsv1beta1.RollingUpdateDeploymentApplyConfiguration{}\n\tcase extensionsv1beta1.SchemeGroupVersion.WithKind(\"Scale\"):\n\t\treturn &applyconfigurationsextensionsv1beta1.ScaleApplyConfiguration{}\n\n\t\t// Group=flowcontrol.apiserver.k8s.io, Version=v1\n\tcase flowcontrolv1.SchemeGroupVersion.WithKind(\"ExemptPriorityLevelConfiguration\"):\n\t\treturn &applyconfigurationsflowcontrolv1.ExemptPriorityLevelConfigurationApplyConfiguration{}\n\tcase flowcontrolv1.SchemeGroupVersion.WithKind(\"FlowDistinguisherMethod\"):\n\t\treturn &applyconfigurationsflowcontrolv1.FlowDistinguisherMethodApplyConfiguration{}\n\tcase flowcontrolv1.SchemeGroupVersion.WithKind(\"FlowSchema\"):\n\t\treturn &applyconfigurationsflowcontrolv1.FlowSchemaApplyConfiguration{}\n\tcase flowcontrolv1.SchemeGroupVersion.WithKind(\"FlowSchemaCondition\"):\n\t\treturn &applyconfigurationsflowcontrolv1.FlowSchemaConditionApplyConfiguration{}\n\tcase flowcontrolv1.SchemeGroupVersion.WithKind(\"FlowSchemaSpec\"):\n\t\treturn &applyconfigurationsflowcontrolv1.FlowSchemaSpecApplyConfiguration{}\n\tcase flowcontrolv1.SchemeGroupVersion.WithKind(\"FlowSchemaStatus\"):\n\t\treturn &applyconfigurationsflowcontrolv1.FlowSchemaStatusApplyConfiguration{}\n\tcase flowcontrolv1.SchemeGroupVersion.WithKind(\"GroupSubject\"):\n\t\treturn &applyconfigurationsflowcontrolv1.GroupSubjectApplyConfiguration{}\n\tcase flowcontrolv1.SchemeGroupVersion.WithKind(\"LimitedPriorityLevelConfiguration\"):\n\t\treturn &applyconfigurationsflowcontrolv1.LimitedPriorityLevelConfigurationApplyConfiguration{}\n\tcase flowcontrolv1.SchemeGroupVersion.WithKind(\"LimitResponse\"):\n\t\treturn &applyconfigurationsflowcontrolv1.LimitResponseApplyConfiguration{}\n\tcase flowcontrolv1.SchemeGroupVersion.WithKind(\"NonResourcePolicyRule\"):\n\t\treturn &applyconfigurationsflowcontrolv1.NonResourcePolicyRuleApplyConfiguration{}\n\tcase flowcontrolv1.SchemeGroupVersion.WithKind(\"PolicyRulesWithSubjects\"):\n\t\treturn &applyconfigurationsflowcontrolv1.PolicyRulesWithSubjectsApplyConfiguration{}\n\tcase flowcontrolv1.SchemeGroupVersion.WithKind(\"PriorityLevelConfiguration\"):\n\t\treturn &applyconfigurationsflowcontrolv1.PriorityLevelConfigurationApplyConfiguration{}\n\tcase flowcontrolv1.SchemeGroupVersion.WithKind(\"PriorityLevelConfigurationCondition\"):\n\t\treturn &applyconfigurationsflowcontrolv1.PriorityLevelConfigurationConditionApplyConfiguration{}\n\tcase flowcontrolv1.SchemeGroupVersion.WithKind(\"PriorityLevelConfigurationReference\"):\n\t\treturn &applyconfigurationsflowcontrolv1.PriorityLevelConfigurationReferenceApplyConfiguration{}\n\tcase flowcontrolv1.SchemeGroupVersion.WithKind(\"PriorityLevelConfigurationSpec\"):\n\t\treturn &applyconfigurationsflowcontrolv1.PriorityLevelConfigurationSpecApplyConfiguration{}\n\tcase flowcontrolv1.SchemeGroupVersion.WithKind(\"PriorityLevelConfigurationStatus\"):\n\t\treturn &applyconfigurationsflowcontrolv1.PriorityLevelConfigurationStatusApplyConfiguration{}\n\tcase flowcontrolv1.SchemeGroupVersion.WithKind(\"QueuingConfiguration\"):\n\t\treturn &applyconfigurationsflowcontrolv1.QueuingConfigurationApplyConfiguration{}\n\tcase flowcontrolv1.SchemeGroupVersion.WithKind(\"ResourcePolicyRule\"):\n\t\treturn &applyconfigurationsflowcontrolv1.ResourcePolicyRuleApplyConfiguration{}\n\tcase flowcontrolv1.SchemeGroupVersion.WithKind(\"ServiceAccountSubject\"):\n\t\treturn &applyconfigurationsflowcontrolv1.ServiceAccountSubjectApplyConfiguration{}\n\tcase flowcontrolv1.SchemeGroupVersion.WithKind(\"Subject\"):\n\t\treturn &applyconfigurationsflowcontrolv1.SubjectApplyConfiguration{}\n\tcase flowcontrolv1.SchemeGroupVersion.WithKind(\"UserSubject\"):\n\t\treturn &applyconfigurationsflowcontrolv1.UserSubjectApplyConfiguration{}\n\n\t\t// Group=flowcontrol.apiserver.k8s.io, Version=v1beta1\n\tcase flowcontrolv1beta1.SchemeGroupVersion.WithKind(\"ExemptPriorityLevelConfiguration\"):\n\t\treturn &applyconfigurationsflowcontrolv1beta1.ExemptPriorityLevelConfigurationApplyConfiguration{}\n\tcase flowcontrolv1beta1.SchemeGroupVersion.WithKind(\"FlowDistinguisherMethod\"):\n\t\treturn &applyconfigurationsflowcontrolv1beta1.FlowDistinguisherMethodApplyConfiguration{}\n\tcase flowcontrolv1beta1.SchemeGroupVersion.WithKind(\"FlowSchema\"):\n\t\treturn &applyconfigurationsflowcontrolv1beta1.FlowSchemaApplyConfiguration{}\n\tcase flowcontrolv1beta1.SchemeGroupVersion.WithKind(\"FlowSchemaCondition\"):\n\t\treturn &applyconfigurationsflowcontrolv1beta1.FlowSchemaConditionApplyConfiguration{}\n\tcase flowcontrolv1beta1.SchemeGroupVersion.WithKind(\"FlowSchemaSpec\"):\n\t\treturn &applyconfigurationsflowcontrolv1beta1.FlowSchemaSpecApplyConfiguration{}\n\tcase flowcontrolv1beta1.SchemeGroupVersion.WithKind(\"FlowSchemaStatus\"):\n\t\treturn &applyconfigurationsflowcontrolv1beta1.FlowSchemaStatusApplyConfiguration{}\n\tcase flowcontrolv1beta1.SchemeGroupVersion.WithKind(\"GroupSubject\"):\n\t\treturn &applyconfigurationsflowcontrolv1beta1.GroupSubjectApplyConfiguration{}\n\tcase flowcontrolv1beta1.SchemeGroupVersion.WithKind(\"LimitedPriorityLevelConfiguration\"):\n\t\treturn &applyconfigurationsflowcontrolv1beta1.LimitedPriorityLevelConfigurationApplyConfiguration{}\n\tcase flowcontrolv1beta1.SchemeGroupVersion.WithKind(\"LimitResponse\"):\n\t\treturn &applyconfigurationsflowcontrolv1beta1.LimitResponseApplyConfiguration{}\n\tcase flowcontrolv1beta1.SchemeGroupVersion.WithKind(\"NonResourcePolicyRule\"):\n\t\treturn &applyconfigurationsflowcontrolv1beta1.NonResourcePolicyRuleApplyConfiguration{}\n\tcase flowcontrolv1beta1.SchemeGroupVersion.WithKind(\"PolicyRulesWithSubjects\"):\n\t\treturn &applyconfigurationsflowcontrolv1beta1.PolicyRulesWithSubjectsApplyConfiguration{}\n\tcase flowcontrolv1beta1.SchemeGroupVersion.WithKind(\"PriorityLevelConfiguration\"):\n\t\treturn &applyconfigurationsflowcontrolv1beta1.PriorityLevelConfigurationApplyConfiguration{}\n\tcase flowcontrolv1beta1.SchemeGroupVersion.WithKind(\"PriorityLevelConfigurationCondition\"):\n\t\treturn &applyconfigurationsflowcontrolv1beta1.PriorityLevelConfigurationConditionApplyConfiguration{}\n\tcase flowcontrolv1beta1.SchemeGroupVersion.WithKind(\"PriorityLevelConfigurationReference\"):\n\t\treturn &applyconfigurationsflowcontrolv1beta1.PriorityLevelConfigurationReferenceApplyConfiguration{}\n\tcase flowcontrolv1beta1.SchemeGroupVersion.WithKind(\"PriorityLevelConfigurationSpec\"):\n\t\treturn &applyconfigurationsflowcontrolv1beta1.PriorityLevelConfigurationSpecApplyConfiguration{}\n\tcase flowcontrolv1beta1.SchemeGroupVersion.WithKind(\"PriorityLevelConfigurationStatus\"):\n\t\treturn &applyconfigurationsflowcontrolv1beta1.PriorityLevelConfigurationStatusApplyConfiguration{}\n\tcase flowcontrolv1beta1.SchemeGroupVersion.WithKind(\"QueuingConfiguration\"):\n\t\treturn &applyconfigurationsflowcontrolv1beta1.QueuingConfigurationApplyConfiguration{}\n\tcase flowcontrolv1beta1.SchemeGroupVersion.WithKind(\"ResourcePolicyRule\"):\n\t\treturn &applyconfigurationsflowcontrolv1beta1.ResourcePolicyRuleApplyConfiguration{}\n\tcase flowcontrolv1beta1.SchemeGroupVersion.WithKind(\"ServiceAccountSubject\"):\n\t\treturn &applyconfigurationsflowcontrolv1beta1.ServiceAccountSubjectApplyConfiguration{}\n\tcase flowcontrolv1beta1.SchemeGroupVersion.WithKind(\"Subject\"):\n\t\treturn &applyconfigurationsflowcontrolv1beta1.SubjectApplyConfiguration{}\n\tcase flowcontrolv1beta1.SchemeGroupVersion.WithKind(\"UserSubject\"):\n\t\treturn &applyconfigurationsflowcontrolv1beta1.UserSubjectApplyConfiguration{}\n\n\t\t// Group=flowcontrol.apiserver.k8s.io, Version=v1beta2\n\tcase flowcontrolv1beta2.SchemeGroupVersion.WithKind(\"ExemptPriorityLevelConfiguration\"):\n\t\treturn &applyconfigurationsflowcontrolv1beta2.ExemptPriorityLevelConfigurationApplyConfiguration{}\n\tcase flowcontrolv1beta2.SchemeGroupVersion.WithKind(\"FlowDistinguisherMethod\"):\n\t\treturn &applyconfigurationsflowcontrolv1beta2.FlowDistinguisherMethodApplyConfiguration{}\n\tcase flowcontrolv1beta2.SchemeGroupVersion.WithKind(\"FlowSchema\"):\n\t\treturn &applyconfigurationsflowcontrolv1beta2.FlowSchemaApplyConfiguration{}\n\tcase flowcontrolv1beta2.SchemeGroupVersion.WithKind(\"FlowSchemaCondition\"):\n\t\treturn &applyconfigurationsflowcontrolv1beta2.FlowSchemaConditionApplyConfiguration{}\n\tcase flowcontrolv1beta2.SchemeGroupVersion.WithKind(\"FlowSchemaSpec\"):\n\t\treturn &applyconfigurationsflowcontrolv1beta2.FlowSchemaSpecApplyConfiguration{}\n\tcase flowcontrolv1beta2.SchemeGroupVersion.WithKind(\"FlowSchemaStatus\"):\n\t\treturn &applyconfigurationsflowcontrolv1beta2.FlowSchemaStatusApplyConfiguration{}\n\tcase flowcontrolv1beta2.SchemeGroupVersion.WithKind(\"GroupSubject\"):\n\t\treturn &applyconfigurationsflowcontrolv1beta2.GroupSubjectApplyConfiguration{}\n\tcase flowcontrolv1beta2.SchemeGroupVersion.WithKind(\"LimitedPriorityLevelConfiguration\"):\n\t\treturn &applyconfigurationsflowcontrolv1beta2.LimitedPriorityLevelConfigurationApplyConfiguration{}\n\tcase flowcontrolv1beta2.SchemeGroupVersion.WithKind(\"LimitResponse\"):\n\t\treturn &applyconfigurationsflowcontrolv1beta2.LimitResponseApplyConfiguration{}\n\tcase flowcontrolv1beta2.SchemeGroupVersion.WithKind(\"NonResourcePolicyRule\"):\n\t\treturn &applyconfigurationsflowcontrolv1beta2.NonResourcePolicyRuleApplyConfiguration{}\n\tcase flowcontrolv1beta2.SchemeGroupVersion.WithKind(\"PolicyRulesWithSubjects\"):\n\t\treturn &applyconfigurationsflowcontrolv1beta2.PolicyRulesWithSubjectsApplyConfiguration{}\n\tcase flowcontrolv1beta2.SchemeGroupVersion.WithKind(\"PriorityLevelConfiguration\"):\n\t\treturn &applyconfigurationsflowcontrolv1beta2.PriorityLevelConfigurationApplyConfiguration{}\n\tcase flowcontrolv1beta2.SchemeGroupVersion.WithKind(\"PriorityLevelConfigurationCondition\"):\n\t\treturn &applyconfigurationsflowcontrolv1beta2.PriorityLevelConfigurationConditionApplyConfiguration{}\n\tcase flowcontrolv1beta2.SchemeGroupVersion.WithKind(\"PriorityLevelConfigurationReference\"):\n\t\treturn &applyconfigurationsflowcontrolv1beta2.PriorityLevelConfigurationReferenceApplyConfiguration{}\n\tcase flowcontrolv1beta2.SchemeGroupVersion.WithKind(\"PriorityLevelConfigurationSpec\"):\n\t\treturn &applyconfigurationsflowcontrolv1beta2.PriorityLevelConfigurationSpecApplyConfiguration{}\n\tcase flowcontrolv1beta2.SchemeGroupVersion.WithKind(\"PriorityLevelConfigurationStatus\"):\n\t\treturn &applyconfigurationsflowcontrolv1beta2.PriorityLevelConfigurationStatusApplyConfiguration{}\n\tcase flowcontrolv1beta2.SchemeGroupVersion.WithKind(\"QueuingConfiguration\"):\n\t\treturn &applyconfigurationsflowcontrolv1beta2.QueuingConfigurationApplyConfiguration{}\n\tcase flowcontrolv1beta2.SchemeGroupVersion.WithKind(\"ResourcePolicyRule\"):\n\t\treturn &applyconfigurationsflowcontrolv1beta2.ResourcePolicyRuleApplyConfiguration{}\n\tcase flowcontrolv1beta2.SchemeGroupVersion.WithKind(\"ServiceAccountSubject\"):\n\t\treturn &applyconfigurationsflowcontrolv1beta2.ServiceAccountSubjectApplyConfiguration{}\n\tcase flowcontrolv1beta2.SchemeGroupVersion.WithKind(\"Subject\"):\n\t\treturn &applyconfigurationsflowcontrolv1beta2.SubjectApplyConfiguration{}\n\tcase flowcontrolv1beta2.SchemeGroupVersion.WithKind(\"UserSubject\"):\n\t\treturn &applyconfigurationsflowcontrolv1beta2.UserSubjectApplyConfiguration{}\n\n\t\t// Group=flowcontrol.apiserver.k8s.io, Version=v1beta3\n\tcase v1beta3.SchemeGroupVersion.WithKind(\"ExemptPriorityLevelConfiguration\"):\n\t\treturn &flowcontrolv1beta3.ExemptPriorityLevelConfigurationApplyConfiguration{}\n\tcase v1beta3.SchemeGroupVersion.WithKind(\"FlowDistinguisherMethod\"):\n\t\treturn &flowcontrolv1beta3.FlowDistinguisherMethodApplyConfiguration{}\n\tcase v1beta3.SchemeGroupVersion.WithKind(\"FlowSchema\"):\n\t\treturn &flowcontrolv1beta3.FlowSchemaApplyConfiguration{}\n\tcase v1beta3.SchemeGroupVersion.WithKind(\"FlowSchemaCondition\"):\n\t\treturn &flowcontrolv1beta3.FlowSchemaConditionApplyConfiguration{}\n\tcase v1beta3.SchemeGroupVersion.WithKind(\"FlowSchemaSpec\"):\n\t\treturn &flowcontrolv1beta3.FlowSchemaSpecApplyConfiguration{}\n\tcase v1beta3.SchemeGroupVersion.WithKind(\"FlowSchemaStatus\"):\n\t\treturn &flowcontrolv1beta3.FlowSchemaStatusApplyConfiguration{}\n\tcase v1beta3.SchemeGroupVersion.WithKind(\"GroupSubject\"):\n\t\treturn &flowcontrolv1beta3.GroupSubjectApplyConfiguration{}\n\tcase v1beta3.SchemeGroupVersion.WithKind(\"LimitedPriorityLevelConfiguration\"):\n\t\treturn &flowcontrolv1beta3.LimitedPriorityLevelConfigurationApplyConfiguration{}\n\tcase v1beta3.SchemeGroupVersion.WithKind(\"LimitResponse\"):\n\t\treturn &flowcontrolv1beta3.LimitResponseApplyConfiguration{}\n\tcase v1beta3.SchemeGroupVersion.WithKind(\"NonResourcePolicyRule\"):\n\t\treturn &flowcontrolv1beta3.NonResourcePolicyRuleApplyConfiguration{}\n\tcase v1beta3.SchemeGroupVersion.WithKind(\"PolicyRulesWithSubjects\"):\n\t\treturn &flowcontrolv1beta3.PolicyRulesWithSubjectsApplyConfiguration{}\n\tcase v1beta3.SchemeGroupVersion.WithKind(\"PriorityLevelConfiguration\"):\n\t\treturn &flowcontrolv1beta3.PriorityLevelConfigurationApplyConfiguration{}\n\tcase v1beta3.SchemeGroupVersion.WithKind(\"PriorityLevelConfigurationCondition\"):\n\t\treturn &flowcontrolv1beta3.PriorityLevelConfigurationConditionApplyConfiguration{}\n\tcase v1beta3.SchemeGroupVersion.WithKind(\"PriorityLevelConfigurationReference\"):\n\t\treturn &flowcontrolv1beta3.PriorityLevelConfigurationReferenceApplyConfiguration{}\n\tcase v1beta3.SchemeGroupVersion.WithKind(\"PriorityLevelConfigurationSpec\"):\n\t\treturn &flowcontrolv1beta3.PriorityLevelConfigurationSpecApplyConfiguration{}\n\tcase v1beta3.SchemeGroupVersion.WithKind(\"PriorityLevelConfigurationStatus\"):\n\t\treturn &flowcontrolv1beta3.PriorityLevelConfigurationStatusApplyConfiguration{}\n\tcase v1beta3.SchemeGroupVersion.WithKind(\"QueuingConfiguration\"):\n\t\treturn &flowcontrolv1beta3.QueuingConfigurationApplyConfiguration{}\n\tcase v1beta3.SchemeGroupVersion.WithKind(\"ResourcePolicyRule\"):\n\t\treturn &flowcontrolv1beta3.ResourcePolicyRuleApplyConfiguration{}\n\tcase v1beta3.SchemeGroupVersion.WithKind(\"ServiceAccountSubject\"):\n\t\treturn &flowcontrolv1beta3.ServiceAccountSubjectApplyConfiguration{}\n\tcase v1beta3.SchemeGroupVersion.WithKind(\"Subject\"):\n\t\treturn &flowcontrolv1beta3.SubjectApplyConfiguration{}\n\tcase v1beta3.SchemeGroupVersion.WithKind(\"UserSubject\"):\n\t\treturn &flowcontrolv1beta3.UserSubjectApplyConfiguration{}\n\n\t\t// Group=imagepolicy.k8s.io, Version=v1alpha1\n\tcase imagepolicyv1alpha1.SchemeGroupVersion.WithKind(\"ImageReview\"):\n\t\treturn &applyconfigurationsimagepolicyv1alpha1.ImageReviewApplyConfiguration{}\n\tcase imagepolicyv1alpha1.SchemeGroupVersion.WithKind(\"ImageReviewContainerSpec\"):\n\t\treturn &applyconfigurationsimagepolicyv1alpha1.ImageReviewContainerSpecApplyConfiguration{}\n\tcase imagepolicyv1alpha1.SchemeGroupVersion.WithKind(\"ImageReviewSpec\"):\n\t\treturn &applyconfigurationsimagepolicyv1alpha1.ImageReviewSpecApplyConfiguration{}\n\tcase imagepolicyv1alpha1.SchemeGroupVersion.WithKind(\"ImageReviewStatus\"):\n\t\treturn &applyconfigurationsimagepolicyv1alpha1.ImageReviewStatusApplyConfiguration{}\n\n\t\t// Group=internal.apiserver.k8s.io, Version=v1alpha1\n\tcase apiserverinternalv1alpha1.SchemeGroupVersion.WithKind(\"ServerStorageVersion\"):\n\t\treturn &applyconfigurationsapiserverinternalv1alpha1.ServerStorageVersionApplyConfiguration{}\n\tcase apiserverinternalv1alpha1.SchemeGroupVersion.WithKind(\"StorageVersion\"):\n\t\treturn &applyconfigurationsapiserverinternalv1alpha1.StorageVersionApplyConfiguration{}\n\tcase apiserverinternalv1alpha1.SchemeGroupVersion.WithKind(\"StorageVersionCondition\"):\n\t\treturn &applyconfigurationsapiserverinternalv1alpha1.StorageVersionConditionApplyConfiguration{}\n\tcase apiserverinternalv1alpha1.SchemeGroupVersion.WithKind(\"StorageVersionStatus\"):\n\t\treturn &applyconfigurationsapiserverinternalv1alpha1.StorageVersionStatusApplyConfiguration{}\n\n\t\t// Group=meta.k8s.io, Version=v1\n\tcase metav1.SchemeGroupVersion.WithKind(\"Condition\"):\n\t\treturn &applyconfigurationsmetav1.ConditionApplyConfiguration{}\n\tcase metav1.SchemeGroupVersion.WithKind(\"DeleteOptions\"):\n\t\treturn &applyconfigurationsmetav1.DeleteOptionsApplyConfiguration{}\n\tcase metav1.SchemeGroupVersion.WithKind(\"LabelSelector\"):\n\t\treturn &applyconfigurationsmetav1.LabelSelectorApplyConfiguration{}\n\tcase metav1.SchemeGroupVersion.WithKind(\"LabelSelectorRequirement\"):\n\t\treturn &applyconfigurationsmetav1.LabelSelectorRequirementApplyConfiguration{}\n\tcase metav1.SchemeGroupVersion.WithKind(\"ManagedFieldsEntry\"):\n\t\treturn &applyconfigurationsmetav1.ManagedFieldsEntryApplyConfiguration{}\n\tcase metav1.SchemeGroupVersion.WithKind(\"ObjectMeta\"):\n\t\treturn &applyconfigurationsmetav1.ObjectMetaApplyConfiguration{}\n\tcase metav1.SchemeGroupVersion.WithKind(\"OwnerReference\"):\n\t\treturn &applyconfigurationsmetav1.OwnerReferenceApplyConfiguration{}\n\tcase metav1.SchemeGroupVersion.WithKind(\"Preconditions\"):\n\t\treturn &applyconfigurationsmetav1.PreconditionsApplyConfiguration{}\n\tcase metav1.SchemeGroupVersion.WithKind(\"TypeMeta\"):\n\t\treturn &applyconfigurationsmetav1.TypeMetaApplyConfiguration{}\n\n\t\t// Group=networking.k8s.io, Version=v1\n\tcase networkingv1.SchemeGroupVersion.WithKind(\"HTTPIngressPath\"):\n\t\treturn &applyconfigurationsnetworkingv1.HTTPIngressPathApplyConfiguration{}\n\tcase networkingv1.SchemeGroupVersion.WithKind(\"HTTPIngressRuleValue\"):\n\t\treturn &applyconfigurationsnetworkingv1.HTTPIngressRuleValueApplyConfiguration{}\n\tcase networkingv1.SchemeGroupVersion.WithKind(\"Ingress\"):\n\t\treturn &applyconfigurationsnetworkingv1.IngressApplyConfiguration{}\n\tcase networkingv1.SchemeGroupVersion.WithKind(\"IngressBackend\"):\n\t\treturn &applyconfigurationsnetworkingv1.IngressBackendApplyConfiguration{}\n\tcase networkingv1.SchemeGroupVersion.WithKind(\"IngressClass\"):\n\t\treturn &applyconfigurationsnetworkingv1.IngressClassApplyConfiguration{}\n\tcase networkingv1.SchemeGroupVersion.WithKind(\"IngressClassParametersReference\"):\n\t\treturn &applyconfigurationsnetworkingv1.IngressClassParametersReferenceApplyConfiguration{}\n\tcase networkingv1.SchemeGroupVersion.WithKind(\"IngressClassSpec\"):\n\t\treturn &applyconfigurationsnetworkingv1.IngressClassSpecApplyConfiguration{}\n\tcase networkingv1.SchemeGroupVersion.WithKind(\"IngressLoadBalancerIngress\"):\n\t\treturn &applyconfigurationsnetworkingv1.IngressLoadBalancerIngressApplyConfiguration{}\n\tcase networkingv1.SchemeGroupVersion.WithKind(\"IngressLoadBalancerStatus\"):\n\t\treturn &applyconfigurationsnetworkingv1.IngressLoadBalancerStatusApplyConfiguration{}\n\tcase networkingv1.SchemeGroupVersion.WithKind(\"IngressPortStatus\"):\n\t\treturn &applyconfigurationsnetworkingv1.IngressPortStatusApplyConfiguration{}\n\tcase networkingv1.SchemeGroupVersion.WithKind(\"IngressRule\"):\n\t\treturn &applyconfigurationsnetworkingv1.IngressRuleApplyConfiguration{}\n\tcase networkingv1.SchemeGroupVersion.WithKind(\"IngressRuleValue\"):\n\t\treturn &applyconfigurationsnetworkingv1.IngressRuleValueApplyConfiguration{}\n\tcase networkingv1.SchemeGroupVersion.WithKind(\"IngressServiceBackend\"):\n\t\treturn &applyconfigurationsnetworkingv1.IngressServiceBackendApplyConfiguration{}\n\tcase networkingv1.SchemeGroupVersion.WithKind(\"IngressSpec\"):\n\t\treturn &applyconfigurationsnetworkingv1.IngressSpecApplyConfiguration{}\n\tcase networkingv1.SchemeGroupVersion.WithKind(\"IngressStatus\"):\n\t\treturn &applyconfigurationsnetworkingv1.IngressStatusApplyConfiguration{}\n\tcase networkingv1.SchemeGroupVersion.WithKind(\"IngressTLS\"):\n\t\treturn &applyconfigurationsnetworkingv1.IngressTLSApplyConfiguration{}\n\tcase networkingv1.SchemeGroupVersion.WithKind(\"IPBlock\"):\n\t\treturn &applyconfigurationsnetworkingv1.IPBlockApplyConfiguration{}\n\tcase networkingv1.SchemeGroupVersion.WithKind(\"NetworkPolicy\"):\n\t\treturn &applyconfigurationsnetworkingv1.NetworkPolicyApplyConfiguration{}\n\tcase networkingv1.SchemeGroupVersion.WithKind(\"NetworkPolicyEgressRule\"):\n\t\treturn &applyconfigurationsnetworkingv1.NetworkPolicyEgressRuleApplyConfiguration{}\n\tcase networkingv1.SchemeGroupVersion.WithKind(\"NetworkPolicyIngressRule\"):\n\t\treturn &applyconfigurationsnetworkingv1.NetworkPolicyIngressRuleApplyConfiguration{}\n\tcase networkingv1.SchemeGroupVersion.WithKind(\"NetworkPolicyPeer\"):\n\t\treturn &applyconfigurationsnetworkingv1.NetworkPolicyPeerApplyConfiguration{}\n\tcase networkingv1.SchemeGroupVersion.WithKind(\"NetworkPolicyPort\"):\n\t\treturn &applyconfigurationsnetworkingv1.NetworkPolicyPortApplyConfiguration{}\n\tcase networkingv1.SchemeGroupVersion.WithKind(\"NetworkPolicySpec\"):\n\t\treturn &applyconfigurationsnetworkingv1.NetworkPolicySpecApplyConfiguration{}\n\tcase networkingv1.SchemeGroupVersion.WithKind(\"ServiceBackendPort\"):\n\t\treturn &applyconfigurationsnetworkingv1.ServiceBackendPortApplyConfiguration{}\n\n\t\t// Group=networking.k8s.io, Version=v1alpha1\n\tcase networkingv1alpha1.SchemeGroupVersion.WithKind(\"IPAddress\"):\n\t\treturn &applyconfigurationsnetworkingv1alpha1.IPAddressApplyConfiguration{}\n\tcase networkingv1alpha1.SchemeGroupVersion.WithKind(\"IPAddressSpec\"):\n\t\treturn &applyconfigurationsnetworkingv1alpha1.IPAddressSpecApplyConfiguration{}\n\tcase networkingv1alpha1.SchemeGroupVersion.WithKind(\"ParentReference\"):\n\t\treturn &applyconfigurationsnetworkingv1alpha1.ParentReferenceApplyConfiguration{}\n\tcase networkingv1alpha1.SchemeGroupVersion.WithKind(\"ServiceCIDR\"):\n\t\treturn &applyconfigurationsnetworkingv1alpha1.ServiceCIDRApplyConfiguration{}\n\tcase networkingv1alpha1.SchemeGroupVersion.WithKind(\"ServiceCIDRSpec\"):\n\t\treturn &applyconfigurationsnetworkingv1alpha1.ServiceCIDRSpecApplyConfiguration{}\n\tcase networkingv1alpha1.SchemeGroupVersion.WithKind(\"ServiceCIDRStatus\"):\n\t\treturn &applyconfigurationsnetworkingv1alpha1.ServiceCIDRStatusApplyConfiguration{}\n\n\t\t// Group=networking.k8s.io, Version=v1beta1\n\tcase networkingv1beta1.SchemeGroupVersion.WithKind(\"HTTPIngressPath\"):\n\t\treturn &applyconfigurationsnetworkingv1beta1.HTTPIngressPathApplyConfiguration{}\n\tcase networkingv1beta1.SchemeGroupVersion.WithKind(\"HTTPIngressRuleValue\"):\n\t\treturn &applyconfigurationsnetworkingv1beta1.HTTPIngressRuleValueApplyConfiguration{}\n\tcase networkingv1beta1.SchemeGroupVersion.WithKind(\"Ingress\"):\n\t\treturn &applyconfigurationsnetworkingv1beta1.IngressApplyConfiguration{}\n\tcase networkingv1beta1.SchemeGroupVersion.WithKind(\"IngressBackend\"):\n\t\treturn &applyconfigurationsnetworkingv1beta1.IngressBackendApplyConfiguration{}\n\tcase networkingv1beta1.SchemeGroupVersion.WithKind(\"IngressClass\"):\n\t\treturn &applyconfigurationsnetworkingv1beta1.IngressClassApplyConfiguration{}\n\tcase networkingv1beta1.SchemeGroupVersion.WithKind(\"IngressClassParametersReference\"):\n\t\treturn &applyconfigurationsnetworkingv1beta1.IngressClassParametersReferenceApplyConfiguration{}\n\tcase networkingv1beta1.SchemeGroupVersion.WithKind(\"IngressClassSpec\"):\n\t\treturn &applyconfigurationsnetworkingv1beta1.IngressClassSpecApplyConfiguration{}\n\tcase networkingv1beta1.SchemeGroupVersion.WithKind(\"IngressLoadBalancerIngress\"):\n\t\treturn &applyconfigurationsnetworkingv1beta1.IngressLoadBalancerIngressApplyConfiguration{}\n\tcase networkingv1beta1.SchemeGroupVersion.WithKind(\"IngressLoadBalancerStatus\"):\n\t\treturn &applyconfigurationsnetworkingv1beta1.IngressLoadBalancerStatusApplyConfiguration{}\n\tcase networkingv1beta1.SchemeGroupVersion.WithKind(\"IngressPortStatus\"):\n\t\treturn &applyconfigurationsnetworkingv1beta1.IngressPortStatusApplyConfiguration{}\n\tcase networkingv1beta1.SchemeGroupVersion.WithKind(\"IngressRule\"):\n\t\treturn &applyconfigurationsnetworkingv1beta1.IngressRuleApplyConfiguration{}\n\tcase networkingv1beta1.SchemeGroupVersion.WithKind(\"IngressRuleValue\"):\n\t\treturn &applyconfigurationsnetworkingv1beta1.IngressRuleValueApplyConfiguration{}\n\tcase networkingv1beta1.SchemeGroupVersion.WithKind(\"IngressSpec\"):\n\t\treturn &applyconfigurationsnetworkingv1beta1.IngressSpecApplyConfiguration{}\n\tcase networkingv1beta1.SchemeGroupVersion.WithKind(\"IngressStatus\"):\n\t\treturn &applyconfigurationsnetworkingv1beta1.IngressStatusApplyConfiguration{}\n\tcase networkingv1beta1.SchemeGroupVersion.WithKind(\"IngressTLS\"):\n\t\treturn &applyconfigurationsnetworkingv1beta1.IngressTLSApplyConfiguration{}\n\tcase networkingv1beta1.SchemeGroupVersion.WithKind(\"IPAddress\"):\n\t\treturn &applyconfigurationsnetworkingv1beta1.IPAddressApplyConfiguration{}\n\tcase networkingv1beta1.SchemeGroupVersion.WithKind(\"IPAddressSpec\"):\n\t\treturn &applyconfigurationsnetworkingv1beta1.IPAddressSpecApplyConfiguration{}\n\tcase networkingv1beta1.SchemeGroupVersion.WithKind(\"ParentReference\"):\n\t\treturn &applyconfigurationsnetworkingv1beta1.ParentReferenceApplyConfiguration{}\n\tcase networkingv1beta1.SchemeGroupVersion.WithKind(\"ServiceCIDR\"):\n\t\treturn &applyconfigurationsnetworkingv1beta1.ServiceCIDRApplyConfiguration{}\n\tcase networkingv1beta1.SchemeGroupVersion.WithKind(\"ServiceCIDRSpec\"):\n\t\treturn &applyconfigurationsnetworkingv1beta1.ServiceCIDRSpecApplyConfiguration{}\n\tcase networkingv1beta1.SchemeGroupVersion.WithKind(\"ServiceCIDRStatus\"):\n\t\treturn &applyconfigurationsnetworkingv1beta1.ServiceCIDRStatusApplyConfiguration{}\n\n\t\t// Group=node.k8s.io, Version=v1\n\tcase nodev1.SchemeGroupVersion.WithKind(\"Overhead\"):\n\t\treturn &applyconfigurationsnodev1.OverheadApplyConfiguration{}\n\tcase nodev1.SchemeGroupVersion.WithKind(\"RuntimeClass\"):\n\t\treturn &applyconfigurationsnodev1.RuntimeClassApplyConfiguration{}\n\tcase nodev1.SchemeGroupVersion.WithKind(\"Scheduling\"):\n\t\treturn &applyconfigurationsnodev1.SchedulingApplyConfiguration{}\n\n\t\t// Group=node.k8s.io, Version=v1alpha1\n\tcase nodev1alpha1.SchemeGroupVersion.WithKind(\"Overhead\"):\n\t\treturn &applyconfigurationsnodev1alpha1.OverheadApplyConfiguration{}\n\tcase nodev1alpha1.SchemeGroupVersion.WithKind(\"RuntimeClass\"):\n\t\treturn &applyconfigurationsnodev1alpha1.RuntimeClassApplyConfiguration{}\n\tcase nodev1alpha1.SchemeGroupVersion.WithKind(\"RuntimeClassSpec\"):\n\t\treturn &applyconfigurationsnodev1alpha1.RuntimeClassSpecApplyConfiguration{}\n\tcase nodev1alpha1.SchemeGroupVersion.WithKind(\"Scheduling\"):\n\t\treturn &applyconfigurationsnodev1alpha1.SchedulingApplyConfiguration{}\n\n\t\t// Group=node.k8s.io, Version=v1beta1\n\tcase nodev1beta1.SchemeGroupVersion.WithKind(\"Overhead\"):\n\t\treturn &applyconfigurationsnodev1beta1.OverheadApplyConfiguration{}\n\tcase nodev1beta1.SchemeGroupVersion.WithKind(\"RuntimeClass\"):\n\t\treturn &applyconfigurationsnodev1beta1.RuntimeClassApplyConfiguration{}\n\tcase nodev1beta1.SchemeGroupVersion.WithKind(\"Scheduling\"):\n\t\treturn &applyconfigurationsnodev1beta1.SchedulingApplyConfiguration{}\n\n\t\t// Group=policy, Version=v1\n\tcase policyv1.SchemeGroupVersion.WithKind(\"Eviction\"):\n\t\treturn &applyconfigurationspolicyv1.EvictionApplyConfiguration{}\n\tcase policyv1.SchemeGroupVersion.WithKind(\"PodDisruptionBudget\"):\n\t\treturn &applyconfigurationspolicyv1.PodDisruptionBudgetApplyConfiguration{}\n\tcase policyv1.SchemeGroupVersion.WithKind(\"PodDisruptionBudgetSpec\"):\n\t\treturn &applyconfigurationspolicyv1.PodDisruptionBudgetSpecApplyConfiguration{}\n\tcase policyv1.SchemeGroupVersion.WithKind(\"PodDisruptionBudgetStatus\"):\n\t\treturn &applyconfigurationspolicyv1.PodDisruptionBudgetStatusApplyConfiguration{}\n\n\t\t// Group=policy, Version=v1beta1\n\tcase policyv1beta1.SchemeGroupVersion.WithKind(\"Eviction\"):\n\t\treturn &applyconfigurationspolicyv1beta1.EvictionApplyConfiguration{}\n\tcase policyv1beta1.SchemeGroupVersion.WithKind(\"PodDisruptionBudget\"):\n\t\treturn &applyconfigurationspolicyv1beta1.PodDisruptionBudgetApplyConfiguration{}\n\tcase policyv1beta1.SchemeGroupVersion.WithKind(\"PodDisruptionBudgetSpec\"):\n\t\treturn &applyconfigurationspolicyv1beta1.PodDisruptionBudgetSpecApplyConfiguration{}\n\tcase policyv1beta1.SchemeGroupVersion.WithKind(\"PodDisruptionBudgetStatus\"):\n\t\treturn &applyconfigurationspolicyv1beta1.PodDisruptionBudgetStatusApplyConfiguration{}\n\n\t\t// Group=rbac.authorization.k8s.io, Version=v1\n\tcase rbacv1.SchemeGroupVersion.WithKind(\"AggregationRule\"):\n\t\treturn &applyconfigurationsrbacv1.AggregationRuleApplyConfiguration{}\n\tcase rbacv1.SchemeGroupVersion.WithKind(\"ClusterRole\"):\n\t\treturn &applyconfigurationsrbacv1.ClusterRoleApplyConfiguration{}\n\tcase rbacv1.SchemeGroupVersion.WithKind(\"ClusterRoleBinding\"):\n\t\treturn &applyconfigurationsrbacv1.ClusterRoleBindingApplyConfiguration{}\n\tcase rbacv1.SchemeGroupVersion.WithKind(\"PolicyRule\"):\n\t\treturn &applyconfigurationsrbacv1.PolicyRuleApplyConfiguration{}\n\tcase rbacv1.SchemeGroupVersion.WithKind(\"Role\"):\n\t\treturn &applyconfigurationsrbacv1.RoleApplyConfiguration{}\n\tcase rbacv1.SchemeGroupVersion.WithKind(\"RoleBinding\"):\n\t\treturn &applyconfigurationsrbacv1.RoleBindingApplyConfiguration{}\n\tcase rbacv1.SchemeGroupVersion.WithKind(\"RoleRef\"):\n\t\treturn &applyconfigurationsrbacv1.RoleRefApplyConfiguration{}\n\tcase rbacv1.SchemeGroupVersion.WithKind(\"Subject\"):\n\t\treturn &applyconfigurationsrbacv1.SubjectApplyConfiguration{}\n\n\t\t// Group=rbac.authorization.k8s.io, Version=v1alpha1\n\tcase rbacv1alpha1.SchemeGroupVersion.WithKind(\"AggregationRule\"):\n\t\treturn &applyconfigurationsrbacv1alpha1.AggregationRuleApplyConfiguration{}\n\tcase rbacv1alpha1.SchemeGroupVersion.WithKind(\"ClusterRole\"):\n\t\treturn &applyconfigurationsrbacv1alpha1.ClusterRoleApplyConfiguration{}\n\tcase rbacv1alpha1.SchemeGroupVersion.WithKind(\"ClusterRoleBinding\"):\n\t\treturn &applyconfigurationsrbacv1alpha1.ClusterRoleBindingApplyConfiguration{}\n\tcase rbacv1alpha1.SchemeGroupVersion.WithKind(\"PolicyRule\"):\n\t\treturn &applyconfigurationsrbacv1alpha1.PolicyRuleApplyConfiguration{}\n\tcase rbacv1alpha1.SchemeGroupVersion.WithKind(\"Role\"):\n\t\treturn &applyconfigurationsrbacv1alpha1.RoleApplyConfiguration{}\n\tcase rbacv1alpha1.SchemeGroupVersion.WithKind(\"RoleBinding\"):\n\t\treturn &applyconfigurationsrbacv1alpha1.RoleBindingApplyConfiguration{}\n\tcase rbacv1alpha1.SchemeGroupVersion.WithKind(\"RoleRef\"):\n\t\treturn &applyconfigurationsrbacv1alpha1.RoleRefApplyConfiguration{}\n\tcase rbacv1alpha1.SchemeGroupVersion.WithKind(\"Subject\"):\n\t\treturn &applyconfigurationsrbacv1alpha1.SubjectApplyConfiguration{}\n\n\t\t// Group=rbac.authorization.k8s.io, Version=v1beta1\n\tcase rbacv1beta1.SchemeGroupVersion.WithKind(\"AggregationRule\"):\n\t\treturn &applyconfigurationsrbacv1beta1.AggregationRuleApplyConfiguration{}\n\tcase rbacv1beta1.SchemeGroupVersion.WithKind(\"ClusterRole\"):\n\t\treturn &applyconfigurationsrbacv1beta1.ClusterRoleApplyConfiguration{}\n\tcase rbacv1beta1.SchemeGroupVersion.WithKind(\"ClusterRoleBinding\"):\n\t\treturn &applyconfigurationsrbacv1beta1.ClusterRoleBindingApplyConfiguration{}\n\tcase rbacv1beta1.SchemeGroupVersion.WithKind(\"PolicyRule\"):\n\t\treturn &applyconfigurationsrbacv1beta1.PolicyRuleApplyConfiguration{}\n\tcase rbacv1beta1.SchemeGroupVersion.WithKind(\"Role\"):\n\t\treturn &applyconfigurationsrbacv1beta1.RoleApplyConfiguration{}\n\tcase rbacv1beta1.SchemeGroupVersion.WithKind(\"RoleBinding\"):\n\t\treturn &applyconfigurationsrbacv1beta1.RoleBindingApplyConfiguration{}\n\tcase rbacv1beta1.SchemeGroupVersion.WithKind(\"RoleRef\"):\n\t\treturn &applyconfigurationsrbacv1beta1.RoleRefApplyConfiguration{}\n\tcase rbacv1beta1.SchemeGroupVersion.WithKind(\"Subject\"):\n\t\treturn &applyconfigurationsrbacv1beta1.SubjectApplyConfiguration{}\n\n\t\t// Group=resource.k8s.io, Version=v1alpha3\n\tcase v1alpha3.SchemeGroupVersion.WithKind(\"AllocatedDeviceStatus\"):\n\t\treturn &resourcev1alpha3.AllocatedDeviceStatusApplyConfiguration{}\n\tcase v1alpha3.SchemeGroupVersion.WithKind(\"AllocationResult\"):\n\t\treturn &resourcev1alpha3.AllocationResultApplyConfiguration{}\n\tcase v1alpha3.SchemeGroupVersion.WithKind(\"BasicDevice\"):\n\t\treturn &resourcev1alpha3.BasicDeviceApplyConfiguration{}\n\tcase v1alpha3.SchemeGroupVersion.WithKind(\"CELDeviceSelector\"):\n\t\treturn &resourcev1alpha3.CELDeviceSelectorApplyConfiguration{}\n\tcase v1alpha3.SchemeGroupVersion.WithKind(\"Device\"):\n\t\treturn &resourcev1alpha3.DeviceApplyConfiguration{}\n\tcase v1alpha3.SchemeGroupVersion.WithKind(\"DeviceAllocationConfiguration\"):\n\t\treturn &resourcev1alpha3.DeviceAllocationConfigurationApplyConfiguration{}\n\tcase v1alpha3.SchemeGroupVersion.WithKind(\"DeviceAllocationResult\"):\n\t\treturn &resourcev1alpha3.DeviceAllocationResultApplyConfiguration{}\n\tcase v1alpha3.SchemeGroupVersion.WithKind(\"DeviceAttribute\"):\n\t\treturn &resourcev1alpha3.DeviceAttributeApplyConfiguration{}\n\tcase v1alpha3.SchemeGroupVersion.WithKind(\"DeviceClaim\"):\n\t\treturn &resourcev1alpha3.DeviceClaimApplyConfiguration{}\n\tcase v1alpha3.SchemeGroupVersion.WithKind(\"DeviceClaimConfiguration\"):\n\t\treturn &resourcev1alpha3.DeviceClaimConfigurationApplyConfiguration{}\n\tcase v1alpha3.SchemeGroupVersion.WithKind(\"DeviceClass\"):\n\t\treturn &resourcev1alpha3.DeviceClassApplyConfiguration{}\n\tcase v1alpha3.SchemeGroupVersion.WithKind(\"DeviceClassConfiguration\"):\n\t\treturn &resourcev1alpha3.DeviceClassConfigurationApplyConfiguration{}\n\tcase v1alpha3.SchemeGroupVersion.WithKind(\"DeviceClassSpec\"):\n\t\treturn &resourcev1alpha3.DeviceClassSpecApplyConfiguration{}\n\tcase v1alpha3.SchemeGroupVersion.WithKind(\"DeviceConfiguration\"):\n\t\treturn &resourcev1alpha3.DeviceConfigurationApplyConfiguration{}\n\tcase v1alpha3.SchemeGroupVersion.WithKind(\"DeviceConstraint\"):\n\t\treturn &resourcev1alpha3.DeviceConstraintApplyConfiguration{}\n\tcase v1alpha3.SchemeGroupVersion.WithKind(\"DeviceRequest\"):\n\t\treturn &resourcev1alpha3.DeviceRequestApplyConfiguration{}\n\tcase v1alpha3.SchemeGroupVersion.WithKind(\"DeviceRequestAllocationResult\"):\n\t\treturn &resourcev1alpha3.DeviceRequestAllocationResultApplyConfiguration{}\n\tcase v1alpha3.SchemeGroupVersion.WithKind(\"DeviceSelector\"):\n\t\treturn &resourcev1alpha3.DeviceSelectorApplyConfiguration{}\n\tcase v1alpha3.SchemeGroupVersion.WithKind(\"NetworkDeviceData\"):\n\t\treturn &resourcev1alpha3.NetworkDeviceDataApplyConfiguration{}\n\tcase v1alpha3.SchemeGroupVersion.WithKind(\"OpaqueDeviceConfiguration\"):\n\t\treturn &resourcev1alpha3.OpaqueDeviceConfigurationApplyConfiguration{}\n\tcase v1alpha3.SchemeGroupVersion.WithKind(\"ResourceClaim\"):\n\t\treturn &resourcev1alpha3.ResourceClaimApplyConfiguration{}\n\tcase v1alpha3.SchemeGroupVersion.WithKind(\"ResourceClaimConsumerReference\"):\n\t\treturn &resourcev1alpha3.ResourceClaimConsumerReferenceApplyConfiguration{}\n\tcase v1alpha3.SchemeGroupVersion.WithKind(\"ResourceClaimSpec\"):\n\t\treturn &resourcev1alpha3.ResourceClaimSpecApplyConfiguration{}\n\tcase v1alpha3.SchemeGroupVersion.WithKind(\"ResourceClaimStatus\"):\n\t\treturn &resourcev1alpha3.ResourceClaimStatusApplyConfiguration{}\n\tcase v1alpha3.SchemeGroupVersion.WithKind(\"ResourceClaimTemplate\"):\n\t\treturn &resourcev1alpha3.ResourceClaimTemplateApplyConfiguration{}\n\tcase v1alpha3.SchemeGroupVersion.WithKind(\"ResourceClaimTemplateSpec\"):\n\t\treturn &resourcev1alpha3.ResourceClaimTemplateSpecApplyConfiguration{}\n\tcase v1alpha3.SchemeGroupVersion.WithKind(\"ResourcePool\"):\n\t\treturn &resourcev1alpha3.ResourcePoolApplyConfiguration{}\n\tcase v1alpha3.SchemeGroupVersion.WithKind(\"ResourceSlice\"):\n\t\treturn &resourcev1alpha3.ResourceSliceApplyConfiguration{}\n\tcase v1alpha3.SchemeGroupVersion.WithKind(\"ResourceSliceSpec\"):\n\t\treturn &resourcev1alpha3.ResourceSliceSpecApplyConfiguration{}\n\n\t\t// Group=resource.k8s.io, Version=v1beta1\n\tcase resourcev1beta1.SchemeGroupVersion.WithKind(\"AllocatedDeviceStatus\"):\n\t\treturn &applyconfigurationsresourcev1beta1.AllocatedDeviceStatusApplyConfiguration{}\n\tcase resourcev1beta1.SchemeGroupVersion.WithKind(\"AllocationResult\"):\n\t\treturn &applyconfigurationsresourcev1beta1.AllocationResultApplyConfiguration{}\n\tcase resourcev1beta1.SchemeGroupVersion.WithKind(\"BasicDevice\"):\n\t\treturn &applyconfigurationsresourcev1beta1.BasicDeviceApplyConfiguration{}\n\tcase resourcev1beta1.SchemeGroupVersion.WithKind(\"CELDeviceSelector\"):\n\t\treturn &applyconfigurationsresourcev1beta1.CELDeviceSelectorApplyConfiguration{}\n\tcase resourcev1beta1.SchemeGroupVersion.WithKind(\"Device\"):\n\t\treturn &applyconfigurationsresourcev1beta1.DeviceApplyConfiguration{}\n\tcase resourcev1beta1.SchemeGroupVersion.WithKind(\"DeviceAllocationConfiguration\"):\n\t\treturn &applyconfigurationsresourcev1beta1.DeviceAllocationConfigurationApplyConfiguration{}\n\tcase resourcev1beta1.SchemeGroupVersion.WithKind(\"DeviceAllocationResult\"):\n\t\treturn &applyconfigurationsresourcev1beta1.DeviceAllocationResultApplyConfiguration{}\n\tcase resourcev1beta1.SchemeGroupVersion.WithKind(\"DeviceAttribute\"):\n\t\treturn &applyconfigurationsresourcev1beta1.DeviceAttributeApplyConfiguration{}\n\tcase resourcev1beta1.SchemeGroupVersion.WithKind(\"DeviceCapacity\"):\n\t\treturn &applyconfigurationsresourcev1beta1.DeviceCapacityApplyConfiguration{}\n\tcase resourcev1beta1.SchemeGroupVersion.WithKind(\"DeviceClaim\"):\n\t\treturn &applyconfigurationsresourcev1beta1.DeviceClaimApplyConfiguration{}\n\tcase resourcev1beta1.SchemeGroupVersion.WithKind(\"DeviceClaimConfiguration\"):\n\t\treturn &applyconfigurationsresourcev1beta1.DeviceClaimConfigurationApplyConfiguration{}\n\tcase resourcev1beta1.SchemeGroupVersion.WithKind(\"DeviceClass\"):\n\t\treturn &applyconfigurationsresourcev1beta1.DeviceClassApplyConfiguration{}\n\tcase resourcev1beta1.SchemeGroupVersion.WithKind(\"DeviceClassConfiguration\"):\n\t\treturn &applyconfigurationsresourcev1beta1.DeviceClassConfigurationApplyConfiguration{}\n\tcase resourcev1beta1.SchemeGroupVersion.WithKind(\"DeviceClassSpec\"):\n\t\treturn &applyconfigurationsresourcev1beta1.DeviceClassSpecApplyConfiguration{}\n\tcase resourcev1beta1.SchemeGroupVersion.WithKind(\"DeviceConfiguration\"):\n\t\treturn &applyconfigurationsresourcev1beta1.DeviceConfigurationApplyConfiguration{}\n\tcase resourcev1beta1.SchemeGroupVersion.WithKind(\"DeviceConstraint\"):\n\t\treturn &applyconfigurationsresourcev1beta1.DeviceConstraintApplyConfiguration{}\n\tcase resourcev1beta1.SchemeGroupVersion.WithKind(\"DeviceRequest\"):\n\t\treturn &applyconfigurationsresourcev1beta1.DeviceRequestApplyConfiguration{}\n\tcase resourcev1beta1.SchemeGroupVersion.WithKind(\"DeviceRequestAllocationResult\"):\n\t\treturn &applyconfigurationsresourcev1beta1.DeviceRequestAllocationResultApplyConfiguration{}\n\tcase resourcev1beta1.SchemeGroupVersion.WithKind(\"DeviceSelector\"):\n\t\treturn &applyconfigurationsresourcev1beta1.DeviceSelectorApplyConfiguration{}\n\tcase resourcev1beta1.SchemeGroupVersion.WithKind(\"NetworkDeviceData\"):\n\t\treturn &applyconfigurationsresourcev1beta1.NetworkDeviceDataApplyConfiguration{}\n\tcase resourcev1beta1.SchemeGroupVersion.WithKind(\"OpaqueDeviceConfiguration\"):\n\t\treturn &applyconfigurationsresourcev1beta1.OpaqueDeviceConfigurationApplyConfiguration{}\n\tcase resourcev1beta1.SchemeGroupVersion.WithKind(\"ResourceClaim\"):\n\t\treturn &applyconfigurationsresourcev1beta1.ResourceClaimApplyConfiguration{}\n\tcase resourcev1beta1.SchemeGroupVersion.WithKind(\"ResourceClaimConsumerReference\"):\n\t\treturn &applyconfigurationsresourcev1beta1.ResourceClaimConsumerReferenceApplyConfiguration{}\n\tcase resourcev1beta1.SchemeGroupVersion.WithKind(\"ResourceClaimSpec\"):\n\t\treturn &applyconfigurationsresourcev1beta1.ResourceClaimSpecApplyConfiguration{}\n\tcase resourcev1beta1.SchemeGroupVersion.WithKind(\"ResourceClaimStatus\"):\n\t\treturn &applyconfigurationsresourcev1beta1.ResourceClaimStatusApplyConfiguration{}\n\tcase resourcev1beta1.SchemeGroupVersion.WithKind(\"ResourceClaimTemplate\"):\n\t\treturn &applyconfigurationsresourcev1beta1.ResourceClaimTemplateApplyConfiguration{}\n\tcase resourcev1beta1.SchemeGroupVersion.WithKind(\"ResourceClaimTemplateSpec\"):\n\t\treturn &applyconfigurationsresourcev1beta1.ResourceClaimTemplateSpecApplyConfiguration{}\n\tcase resourcev1beta1.SchemeGroupVersion.WithKind(\"ResourcePool\"):\n\t\treturn &applyconfigurationsresourcev1beta1.ResourcePoolApplyConfiguration{}\n\tcase resourcev1beta1.SchemeGroupVersion.WithKind(\"ResourceSlice\"):\n\t\treturn &applyconfigurationsresourcev1beta1.ResourceSliceApplyConfiguration{}\n\tcase resourcev1beta1.SchemeGroupVersion.WithKind(\"ResourceSliceSpec\"):\n\t\treturn &applyconfigurationsresourcev1beta1.ResourceSliceSpecApplyConfiguration{}\n\n\t\t// Group=scheduling.k8s.io, Version=v1\n\tcase schedulingv1.SchemeGroupVersion.WithKind(\"PriorityClass\"):\n\t\treturn &applyconfigurationsschedulingv1.PriorityClassApplyConfiguration{}\n\n\t\t// Group=scheduling.k8s.io, Version=v1alpha1\n\tcase schedulingv1alpha1.SchemeGroupVersion.WithKind(\"PriorityClass\"):\n\t\treturn &applyconfigurationsschedulingv1alpha1.PriorityClassApplyConfiguration{}\n\n\t\t// Group=scheduling.k8s.io, Version=v1beta1\n\tcase schedulingv1beta1.SchemeGroupVersion.WithKind(\"PriorityClass\"):\n\t\treturn &applyconfigurationsschedulingv1beta1.PriorityClassApplyConfiguration{}\n\n\t\t// Group=storage.k8s.io, Version=v1\n\tcase storagev1.SchemeGroupVersion.WithKind(\"CSIDriver\"):\n\t\treturn &applyconfigurationsstoragev1.CSIDriverApplyConfiguration{}\n\tcase storagev1.SchemeGroupVersion.WithKind(\"CSIDriverSpec\"):\n\t\treturn &applyconfigurationsstoragev1.CSIDriverSpecApplyConfiguration{}\n\tcase storagev1.SchemeGroupVersion.WithKind(\"CSINode\"):\n\t\treturn &applyconfigurationsstoragev1.CSINodeApplyConfiguration{}\n\tcase storagev1.SchemeGroupVersion.WithKind(\"CSINodeDriver\"):\n\t\treturn &applyconfigurationsstoragev1.CSINodeDriverApplyConfiguration{}\n\tcase storagev1.SchemeGroupVersion.WithKind(\"CSINodeSpec\"):\n\t\treturn &applyconfigurationsstoragev1.CSINodeSpecApplyConfiguration{}\n\tcase storagev1.SchemeGroupVersion.WithKind(\"CSIStorageCapacity\"):\n\t\treturn &applyconfigurationsstoragev1.CSIStorageCapacityApplyConfiguration{}\n\tcase storagev1.SchemeGroupVersion.WithKind(\"StorageClass\"):\n\t\treturn &applyconfigurationsstoragev1.StorageClassApplyConfiguration{}\n\tcase storagev1.SchemeGroupVersion.WithKind(\"TokenRequest\"):\n\t\treturn &applyconfigurationsstoragev1.TokenRequestApplyConfiguration{}\n\tcase storagev1.SchemeGroupVersion.WithKind(\"VolumeAttachment\"):\n\t\treturn &applyconfigurationsstoragev1.VolumeAttachmentApplyConfiguration{}\n\tcase storagev1.SchemeGroupVersion.WithKind(\"VolumeAttachmentSource\"):\n\t\treturn &applyconfigurationsstoragev1.VolumeAttachmentSourceApplyConfiguration{}\n\tcase storagev1.SchemeGroupVersion.WithKind(\"VolumeAttachmentSpec\"):\n\t\treturn &applyconfigurationsstoragev1.VolumeAttachmentSpecApplyConfiguration{}\n\tcase storagev1.SchemeGroupVersion.WithKind(\"VolumeAttachmentStatus\"):\n\t\treturn &applyconfigurationsstoragev1.VolumeAttachmentStatusApplyConfiguration{}\n\tcase storagev1.SchemeGroupVersion.WithKind(\"VolumeError\"):\n\t\treturn &applyconfigurationsstoragev1.VolumeErrorApplyConfiguration{}\n\tcase storagev1.SchemeGroupVersion.WithKind(\"VolumeNodeResources\"):\n\t\treturn &applyconfigurationsstoragev1.VolumeNodeResourcesApplyConfiguration{}\n\n\t\t// Group=storage.k8s.io, Version=v1alpha1\n\tcase storagev1alpha1.SchemeGroupVersion.WithKind(\"CSIStorageCapacity\"):\n\t\treturn &applyconfigurationsstoragev1alpha1.CSIStorageCapacityApplyConfiguration{}\n\tcase storagev1alpha1.SchemeGroupVersion.WithKind(\"VolumeAttachment\"):\n\t\treturn &applyconfigurationsstoragev1alpha1.VolumeAttachmentApplyConfiguration{}\n\tcase storagev1alpha1.SchemeGroupVersion.WithKind(\"VolumeAttachmentSource\"):\n\t\treturn &applyconfigurationsstoragev1alpha1.VolumeAttachmentSourceApplyConfiguration{}\n\tcase storagev1alpha1.SchemeGroupVersion.WithKind(\"VolumeAttachmentSpec\"):\n\t\treturn &applyconfigurationsstoragev1alpha1.VolumeAttachmentSpecApplyConfiguration{}\n\tcase storagev1alpha1.SchemeGroupVersion.WithKind(\"VolumeAttachmentStatus\"):\n\t\treturn &applyconfigurationsstoragev1alpha1.VolumeAttachmentStatusApplyConfiguration{}\n\tcase storagev1alpha1.SchemeGroupVersion.WithKind(\"VolumeAttributesClass\"):\n\t\treturn &applyconfigurationsstoragev1alpha1.VolumeAttributesClassApplyConfiguration{}\n\tcase storagev1alpha1.SchemeGroupVersion.WithKind(\"VolumeError\"):\n\t\treturn &applyconfigurationsstoragev1alpha1.VolumeErrorApplyConfiguration{}\n\n\t\t// Group=storage.k8s.io, Version=v1beta1\n\tcase storagev1beta1.SchemeGroupVersion.WithKind(\"CSIDriver\"):\n\t\treturn &applyconfigurationsstoragev1beta1.CSIDriverApplyConfiguration{}\n\tcase storagev1beta1.SchemeGroupVersion.WithKind(\"CSIDriverSpec\"):\n\t\treturn &applyconfigurationsstoragev1beta1.CSIDriverSpecApplyConfiguration{}\n\tcase storagev1beta1.SchemeGroupVersion.WithKind(\"CSINode\"):\n\t\treturn &applyconfigurationsstoragev1beta1.CSINodeApplyConfiguration{}\n\tcase storagev1beta1.SchemeGroupVersion.WithKind(\"CSINodeDriver\"):\n\t\treturn &applyconfigurationsstoragev1beta1.CSINodeDriverApplyConfiguration{}\n\tcase storagev1beta1.SchemeGroupVersion.WithKind(\"CSINodeSpec\"):\n\t\treturn &applyconfigurationsstoragev1beta1.CSINodeSpecApplyConfiguration{}\n\tcase storagev1beta1.SchemeGroupVersion.WithKind(\"CSIStorageCapacity\"):\n\t\treturn &applyconfigurationsstoragev1beta1.CSIStorageCapacityApplyConfiguration{}\n\tcase storagev1beta1.SchemeGroupVersion.WithKind(\"StorageClass\"):\n\t\treturn &applyconfigurationsstoragev1beta1.StorageClassApplyConfiguration{}\n\tcase storagev1beta1.SchemeGroupVersion.WithKind(\"TokenRequest\"):\n\t\treturn &applyconfigurationsstoragev1beta1.TokenRequestApplyConfiguration{}\n\tcase storagev1beta1.SchemeGroupVersion.WithKind(\"VolumeAttachment\"):\n\t\treturn &applyconfigurationsstoragev1beta1.VolumeAttachmentApplyConfiguration{}\n\tcase storagev1beta1.SchemeGroupVersion.WithKind(\"VolumeAttachmentSource\"):\n\t\treturn &applyconfigurationsstoragev1beta1.VolumeAttachmentSourceApplyConfiguration{}\n\tcase storagev1beta1.SchemeGroupVersion.WithKind(\"VolumeAttachmentSpec\"):\n\t\treturn &applyconfigurationsstoragev1beta1.VolumeAttachmentSpecApplyConfiguration{}\n\tcase storagev1beta1.SchemeGroupVersion.WithKind(\"VolumeAttachmentStatus\"):\n\t\treturn &applyconfigurationsstoragev1beta1.VolumeAttachmentStatusApplyConfiguration{}\n\tcase storagev1beta1.SchemeGroupVersion.WithKind(\"VolumeAttributesClass\"):\n\t\treturn &applyconfigurationsstoragev1beta1.VolumeAttributesClassApplyConfiguration{}\n\tcase storagev1beta1.SchemeGroupVersion.WithKind(\"VolumeError\"):\n\t\treturn &applyconfigurationsstoragev1beta1.VolumeErrorApplyConfiguration{}\n\tcase storagev1beta1.SchemeGroupVersion.WithKind(\"VolumeNodeResources\"):\n\t\treturn &applyconfigurationsstoragev1beta1.VolumeNodeResourcesApplyConfiguration{}\n\n\t\t// Group=storagemigration.k8s.io, Version=v1alpha1\n\tcase storagemigrationv1alpha1.SchemeGroupVersion.WithKind(\"GroupVersionResource\"):\n\t\treturn &applyconfigurationsstoragemigrationv1alpha1.GroupVersionResourceApplyConfiguration{}\n\tcase storagemigrationv1alpha1.SchemeGroupVersion.WithKind(\"MigrationCondition\"):\n\t\treturn &applyconfigurationsstoragemigrationv1alpha1.MigrationConditionApplyConfiguration{}\n\tcase storagemigrationv1alpha1.SchemeGroupVersion.WithKind(\"StorageVersionMigration\"):\n\t\treturn &applyconfigurationsstoragemigrationv1alpha1.StorageVersionMigrationApplyConfiguration{}\n\tcase storagemigrationv1alpha1.SchemeGroupVersion.WithKind(\"StorageVersionMigrationSpec\"):\n\t\treturn &applyconfigurationsstoragemigrationv1alpha1.StorageVersionMigrationSpecApplyConfiguration{}\n\tcase storagemigrationv1alpha1.SchemeGroupVersion.WithKind(\"StorageVersionMigrationStatus\"):\n\t\treturn &applyconfigurationsstoragemigrationv1alpha1.StorageVersionMigrationStatusApplyConfiguration{}\n\n\t}\n\treturn nil\n}\n\nfunc NewTypeConverter(scheme *runtime.Scheme) *testing.TypeConverter {\n\treturn &testing.TypeConverter{Scheme: scheme, TypeResolver: internal.Parser()}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/discovery/aggregated_discovery.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage discovery\n\nimport (\n\t\"fmt\"\n\n\tapidiscovery \"k8s.io/api/apidiscovery/v2\"\n\tapidiscoveryv2beta1 \"k8s.io/api/apidiscovery/v2beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// StaleGroupVersionError encasulates failed GroupVersion marked \"stale\"\n// in the returned AggregatedDiscovery format.\ntype StaleGroupVersionError struct {\n\tgv schema.GroupVersion\n}\n\nfunc (s StaleGroupVersionError) Error() string {\n\treturn fmt.Sprintf(\"stale GroupVersion discovery: %v\", s.gv)\n}\n\n// SplitGroupsAndResources transforms \"aggregated\" discovery top-level structure into\n// the previous \"unaggregated\" discovery groups and resources.\nfunc SplitGroupsAndResources(aggregatedGroups apidiscovery.APIGroupDiscoveryList) (\n\t*metav1.APIGroupList,\n\tmap[schema.GroupVersion]*metav1.APIResourceList,\n\tmap[schema.GroupVersion]error) {\n\t// Aggregated group list will contain the entirety of discovery, including\n\t// groups, versions, and resources. GroupVersions marked \"stale\" are failed.\n\tgroups := []*metav1.APIGroup{}\n\tfailedGVs := map[schema.GroupVersion]error{}\n\tresourcesByGV := map[schema.GroupVersion]*metav1.APIResourceList{}\n\tfor _, aggGroup := range aggregatedGroups.Items {\n\t\tgroup, resources, failed := convertAPIGroup(aggGroup)\n\t\tgroups = append(groups, group)\n\t\tfor gv, resourceList := range resources {\n\t\t\tresourcesByGV[gv] = resourceList\n\t\t}\n\t\tfor gv, err := range failed {\n\t\t\tfailedGVs[gv] = err\n\t\t}\n\t}\n\t// Transform slice of groups to group list before returning.\n\tgroupList := &metav1.APIGroupList{}\n\tgroupList.Groups = make([]metav1.APIGroup, 0, len(groups))\n\tfor _, group := range groups {\n\t\tgroupList.Groups = append(groupList.Groups, *group)\n\t}\n\treturn groupList, resourcesByGV, failedGVs\n}\n\n// convertAPIGroup tranforms an \"aggregated\" APIGroupDiscovery to an \"legacy\" APIGroup,\n// also returning the map of APIResourceList for resources within GroupVersions.\nfunc convertAPIGroup(g apidiscovery.APIGroupDiscovery) (\n\t*metav1.APIGroup,\n\tmap[schema.GroupVersion]*metav1.APIResourceList,\n\tmap[schema.GroupVersion]error) {\n\t// Iterate through versions to convert to group and resources.\n\tgroup := &metav1.APIGroup{}\n\tgvResources := map[schema.GroupVersion]*metav1.APIResourceList{}\n\tfailedGVs := map[schema.GroupVersion]error{}\n\tgroup.Name = g.ObjectMeta.Name\n\tfor _, v := range g.Versions {\n\t\tgv := schema.GroupVersion{Group: g.Name, Version: v.Version}\n\t\tif v.Freshness == apidiscovery.DiscoveryFreshnessStale {\n\t\t\tfailedGVs[gv] = StaleGroupVersionError{gv: gv}\n\t\t\tcontinue\n\t\t}\n\t\tversion := metav1.GroupVersionForDiscovery{}\n\t\tversion.GroupVersion = gv.String()\n\t\tversion.Version = v.Version\n\t\tgroup.Versions = append(group.Versions, version)\n\t\t// PreferredVersion is first non-stale Version\n\t\tif group.PreferredVersion == (metav1.GroupVersionForDiscovery{}) {\n\t\t\tgroup.PreferredVersion = version\n\t\t}\n\t\tresourceList := &metav1.APIResourceList{}\n\t\tresourceList.GroupVersion = gv.String()\n\t\tfor _, r := range v.Resources {\n\t\t\tresource, err := convertAPIResource(r)\n\t\t\tif err == nil {\n\t\t\t\tresourceList.APIResources = append(resourceList.APIResources, resource)\n\t\t\t}\n\t\t\t// Subresources field in new format get transformed into full APIResources.\n\t\t\t// It is possible a partial result with an error was returned to be used\n\t\t\t// as the parent resource for the subresource.\n\t\t\tfor _, subresource := range r.Subresources {\n\t\t\t\tsr, err := convertAPISubresource(resource, subresource)\n\t\t\t\tif err == nil {\n\t\t\t\t\tresourceList.APIResources = append(resourceList.APIResources, sr)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tgvResources[gv] = resourceList\n\t}\n\treturn group, gvResources, failedGVs\n}\n\nvar emptyKind = metav1.GroupVersionKind{}\n\n// convertAPIResource tranforms a APIResourceDiscovery to an APIResource. We are\n// resilient to missing GVK, since this resource might be the parent resource\n// for a subresource. If the parent is missing a GVK, it is not returned in\n// discovery, and the subresource MUST have the GVK.\nfunc convertAPIResource(in apidiscovery.APIResourceDiscovery) (metav1.APIResource, error) {\n\tresult := metav1.APIResource{\n\t\tName:         in.Resource,\n\t\tSingularName: in.SingularResource,\n\t\tNamespaced:   in.Scope == apidiscovery.ScopeNamespace,\n\t\tVerbs:        in.Verbs,\n\t\tShortNames:   in.ShortNames,\n\t\tCategories:   in.Categories,\n\t}\n\tvar err error\n\tif in.ResponseKind != nil && (*in.ResponseKind) != emptyKind {\n\t\tresult.Group = in.ResponseKind.Group\n\t\tresult.Version = in.ResponseKind.Version\n\t\tresult.Kind = in.ResponseKind.Kind\n\t} else {\n\t\terr = fmt.Errorf(\"discovery resource %s missing GVK\", in.Resource)\n\t}\n\t// Can return partial result with error, which can be the parent for a\n\t// subresource. Do not add this result to the returned discovery resources.\n\treturn result, err\n}\n\n// convertAPISubresource tranforms a APISubresourceDiscovery to an APIResource.\nfunc convertAPISubresource(parent metav1.APIResource, in apidiscovery.APISubresourceDiscovery) (metav1.APIResource, error) {\n\tresult := metav1.APIResource{}\n\tif in.ResponseKind == nil || (*in.ResponseKind) == emptyKind {\n\t\treturn result, fmt.Errorf(\"subresource %s/%s missing GVK\", parent.Name, in.Subresource)\n\t}\n\tresult.Name = fmt.Sprintf(\"%s/%s\", parent.Name, in.Subresource)\n\tresult.SingularName = parent.SingularName\n\tresult.Namespaced = parent.Namespaced\n\tresult.Group = in.ResponseKind.Group\n\tresult.Version = in.ResponseKind.Version\n\tresult.Kind = in.ResponseKind.Kind\n\tresult.Verbs = in.Verbs\n\treturn result, nil\n}\n\n// Please note the functions below will be removed in v1.33. They facilitate conversion\n// between the deprecated type apidiscoveryv2beta1.APIGroupDiscoveryList.\n\n// SplitGroupsAndResourcesV2Beta1 transforms \"aggregated\" discovery top-level structure into\n// the previous \"unaggregated\" discovery groups and resources.\n// Deprecated: Please use SplitGroupsAndResources\nfunc SplitGroupsAndResourcesV2Beta1(aggregatedGroups apidiscoveryv2beta1.APIGroupDiscoveryList) (\n\t*metav1.APIGroupList,\n\tmap[schema.GroupVersion]*metav1.APIResourceList,\n\tmap[schema.GroupVersion]error) {\n\t// Aggregated group list will contain the entirety of discovery, including\n\t// groups, versions, and resources. GroupVersions marked \"stale\" are failed.\n\tgroups := []*metav1.APIGroup{}\n\tfailedGVs := map[schema.GroupVersion]error{}\n\tresourcesByGV := map[schema.GroupVersion]*metav1.APIResourceList{}\n\tfor _, aggGroup := range aggregatedGroups.Items {\n\t\tgroup, resources, failed := convertAPIGroupv2beta1(aggGroup)\n\t\tgroups = append(groups, group)\n\t\tfor gv, resourceList := range resources {\n\t\t\tresourcesByGV[gv] = resourceList\n\t\t}\n\t\tfor gv, err := range failed {\n\t\t\tfailedGVs[gv] = err\n\t\t}\n\t}\n\t// Transform slice of groups to group list before returning.\n\tgroupList := &metav1.APIGroupList{}\n\tgroupList.Groups = make([]metav1.APIGroup, 0, len(groups))\n\tfor _, group := range groups {\n\t\tgroupList.Groups = append(groupList.Groups, *group)\n\t}\n\treturn groupList, resourcesByGV, failedGVs\n}\n\n// convertAPIGroupv2beta1 tranforms an \"aggregated\" APIGroupDiscovery to an \"legacy\" APIGroup,\n// also returning the map of APIResourceList for resources within GroupVersions.\nfunc convertAPIGroupv2beta1(g apidiscoveryv2beta1.APIGroupDiscovery) (\n\t*metav1.APIGroup,\n\tmap[schema.GroupVersion]*metav1.APIResourceList,\n\tmap[schema.GroupVersion]error) {\n\t// Iterate through versions to convert to group and resources.\n\tgroup := &metav1.APIGroup{}\n\tgvResources := map[schema.GroupVersion]*metav1.APIResourceList{}\n\tfailedGVs := map[schema.GroupVersion]error{}\n\tgroup.Name = g.ObjectMeta.Name\n\tfor _, v := range g.Versions {\n\t\tgv := schema.GroupVersion{Group: g.Name, Version: v.Version}\n\t\tif v.Freshness == apidiscoveryv2beta1.DiscoveryFreshnessStale {\n\t\t\tfailedGVs[gv] = StaleGroupVersionError{gv: gv}\n\t\t\tcontinue\n\t\t}\n\t\tversion := metav1.GroupVersionForDiscovery{}\n\t\tversion.GroupVersion = gv.String()\n\t\tversion.Version = v.Version\n\t\tgroup.Versions = append(group.Versions, version)\n\t\t// PreferredVersion is first non-stale Version\n\t\tif group.PreferredVersion == (metav1.GroupVersionForDiscovery{}) {\n\t\t\tgroup.PreferredVersion = version\n\t\t}\n\t\tresourceList := &metav1.APIResourceList{}\n\t\tresourceList.GroupVersion = gv.String()\n\t\tfor _, r := range v.Resources {\n\t\t\tresource, err := convertAPIResourcev2beta1(r)\n\t\t\tif err == nil {\n\t\t\t\tresourceList.APIResources = append(resourceList.APIResources, resource)\n\t\t\t}\n\t\t\t// Subresources field in new format get transformed into full APIResources.\n\t\t\t// It is possible a partial result with an error was returned to be used\n\t\t\t// as the parent resource for the subresource.\n\t\t\tfor _, subresource := range r.Subresources {\n\t\t\t\tsr, err := convertAPISubresourcev2beta1(resource, subresource)\n\t\t\t\tif err == nil {\n\t\t\t\t\tresourceList.APIResources = append(resourceList.APIResources, sr)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tgvResources[gv] = resourceList\n\t}\n\treturn group, gvResources, failedGVs\n}\n\n// convertAPIResource tranforms a APIResourceDiscovery to an APIResource. We are\n// resilient to missing GVK, since this resource might be the parent resource\n// for a subresource. If the parent is missing a GVK, it is not returned in\n// discovery, and the subresource MUST have the GVK.\nfunc convertAPIResourcev2beta1(in apidiscoveryv2beta1.APIResourceDiscovery) (metav1.APIResource, error) {\n\tresult := metav1.APIResource{\n\t\tName:         in.Resource,\n\t\tSingularName: in.SingularResource,\n\t\tNamespaced:   in.Scope == apidiscoveryv2beta1.ScopeNamespace,\n\t\tVerbs:        in.Verbs,\n\t\tShortNames:   in.ShortNames,\n\t\tCategories:   in.Categories,\n\t}\n\t// Can return partial result with error, which can be the parent for a\n\t// subresource. Do not add this result to the returned discovery resources.\n\tif in.ResponseKind == nil || (*in.ResponseKind) == emptyKind {\n\t\treturn result, fmt.Errorf(\"discovery resource %s missing GVK\", in.Resource)\n\t}\n\tresult.Group = in.ResponseKind.Group\n\tresult.Version = in.ResponseKind.Version\n\tresult.Kind = in.ResponseKind.Kind\n\treturn result, nil\n}\n\n// convertAPISubresource tranforms a APISubresourceDiscovery to an APIResource.\nfunc convertAPISubresourcev2beta1(parent metav1.APIResource, in apidiscoveryv2beta1.APISubresourceDiscovery) (metav1.APIResource, error) {\n\tresult := metav1.APIResource{}\n\tif in.ResponseKind == nil || (*in.ResponseKind) == emptyKind {\n\t\treturn result, fmt.Errorf(\"subresource %s/%s missing GVK\", parent.Name, in.Subresource)\n\t}\n\tresult.Name = fmt.Sprintf(\"%s/%s\", parent.Name, in.Subresource)\n\tresult.SingularName = parent.SingularName\n\tresult.Namespaced = parent.Namespaced\n\tresult.Group = in.ResponseKind.Group\n\tresult.Version = in.ResponseKind.Version\n\tresult.Kind = in.ResponseKind.Kind\n\tresult.Verbs = in.Verbs\n\treturn result, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/discovery/discovery_client.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage discovery\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\tgoerrors \"errors\"\n\t\"fmt\"\n\t\"mime\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"sort\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t//nolint:staticcheck // SA1019 Keep using module since it's still being maintained and the api of google.golang.org/protobuf/proto differs\n\t\"github.com/golang/protobuf/proto\"\n\topenapi_v2 \"github.com/google/gnostic-models/openapiv2\"\n\n\tapidiscoveryv2 \"k8s.io/api/apidiscovery/v2\"\n\tapidiscoveryv2beta1 \"k8s.io/api/apidiscovery/v2beta1\"\n\t\"k8s.io/apimachinery/pkg/api/errors\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/runtime/serializer\"\n\tutilruntime \"k8s.io/apimachinery/pkg/util/runtime\"\n\t\"k8s.io/apimachinery/pkg/version\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\t\"k8s.io/client-go/openapi\"\n\trestclient \"k8s.io/client-go/rest\"\n)\n\nconst (\n\t// defaultRetries is the number of times a resource discovery is repeated if an api group disappears on the fly (e.g. CustomResourceDefinitions).\n\tdefaultRetries = 2\n\t// protobuf mime type\n\topenAPIV2mimePb = \"application/com.github.proto-openapi.spec.v2@v1.0+protobuf\"\n\n\t// defaultTimeout is the maximum amount of time per request when no timeout has been set on a RESTClient.\n\t// Defaults to 32s in order to have a distinguishable length of time, relative to other timeouts that exist.\n\tdefaultTimeout = 32 * time.Second\n\n\t// defaultBurst is the default burst to be used with the discovery client's token bucket rate limiter\n\tdefaultBurst = 300\n\n\tAcceptV1 = runtime.ContentTypeJSON\n\t// Aggregated discovery content-type (v2beta1). NOTE: content-type parameters\n\t// MUST be ordered (g, v, as) for server in \"Accept\" header (BUT we are resilient\n\t// to ordering when comparing returned values in \"Content-Type\" header).\n\tAcceptV2Beta1 = runtime.ContentTypeJSON + \";\" + \"g=apidiscovery.k8s.io;v=v2beta1;as=APIGroupDiscoveryList\"\n\tAcceptV2      = runtime.ContentTypeJSON + \";\" + \"g=apidiscovery.k8s.io;v=v2;as=APIGroupDiscoveryList\"\n\t// Prioritize aggregated discovery by placing first in the order of discovery accept types.\n\tacceptDiscoveryFormats = AcceptV2 + \",\" + AcceptV2Beta1 + \",\" + AcceptV1\n)\n\n// Aggregated discovery content-type GVK.\nvar v2Beta1GVK = schema.GroupVersionKind{Group: \"apidiscovery.k8s.io\", Version: \"v2beta1\", Kind: \"APIGroupDiscoveryList\"}\nvar v2GVK = schema.GroupVersionKind{Group: \"apidiscovery.k8s.io\", Version: \"v2\", Kind: \"APIGroupDiscoveryList\"}\n\n// DiscoveryInterface holds the methods that discover server-supported API groups,\n// versions and resources.\ntype DiscoveryInterface interface {\n\tRESTClient() restclient.Interface\n\tServerGroupsInterface\n\tServerResourcesInterface\n\tServerVersionInterface\n\tOpenAPISchemaInterface\n\tOpenAPIV3SchemaInterface\n\t// Returns copy of current discovery client that will only\n\t// receive the legacy discovery format, or pointer to current\n\t// discovery client if it does not support legacy-only discovery.\n\tWithLegacy() DiscoveryInterface\n}\n\n// AggregatedDiscoveryInterface extends DiscoveryInterface to include a method to possibly\n// return discovery resources along with the discovery groups, which is what the newer\n// aggregated discovery format does (APIGroupDiscoveryList).\ntype AggregatedDiscoveryInterface interface {\n\tDiscoveryInterface\n\n\tGroupsAndMaybeResources() (*metav1.APIGroupList, map[schema.GroupVersion]*metav1.APIResourceList, map[schema.GroupVersion]error, error)\n}\n\n// CachedDiscoveryInterface is a DiscoveryInterface with cache invalidation and freshness.\n// Note that If the ServerResourcesForGroupVersion method returns a cache miss\n// error, the user needs to explicitly call Invalidate to clear the cache,\n// otherwise the same cache miss error will be returned next time.\ntype CachedDiscoveryInterface interface {\n\tDiscoveryInterface\n\t// Fresh is supposed to tell the caller whether or not to retry if the cache\n\t// fails to find something (false = retry, true = no need to retry).\n\t//\n\t// TODO: this needs to be revisited, this interface can't be locked properly\n\t// and doesn't make a lot of sense.\n\tFresh() bool\n\t// Invalidate enforces that no cached data that is older than the current time\n\t// is used.\n\tInvalidate()\n}\n\n// ServerGroupsInterface has methods for obtaining supported groups on the API server\ntype ServerGroupsInterface interface {\n\t// ServerGroups returns the supported groups, with information like supported versions and the\n\t// preferred version.\n\tServerGroups() (*metav1.APIGroupList, error)\n}\n\n// ServerResourcesInterface has methods for obtaining supported resources on the API server\ntype ServerResourcesInterface interface {\n\t// ServerResourcesForGroupVersion returns the supported resources for a group and version.\n\tServerResourcesForGroupVersion(groupVersion string) (*metav1.APIResourceList, error)\n\t// ServerGroupsAndResources returns the supported groups and resources for all groups and versions.\n\t//\n\t// The returned group and resource lists might be non-nil with partial results even in the\n\t// case of non-nil error.\n\tServerGroupsAndResources() ([]*metav1.APIGroup, []*metav1.APIResourceList, error)\n\t// ServerPreferredResources returns the supported resources with the version preferred by the\n\t// server.\n\t//\n\t// The returned group and resource lists might be non-nil with partial results even in the\n\t// case of non-nil error.\n\tServerPreferredResources() ([]*metav1.APIResourceList, error)\n\t// ServerPreferredNamespacedResources returns the supported namespaced resources with the\n\t// version preferred by the server.\n\t//\n\t// The returned resource list might be non-nil with partial results even in the case of\n\t// non-nil error.\n\tServerPreferredNamespacedResources() ([]*metav1.APIResourceList, error)\n}\n\n// ServerVersionInterface has a method for retrieving the server's version.\ntype ServerVersionInterface interface {\n\t// ServerVersion retrieves and parses the server's version (git version).\n\tServerVersion() (*version.Info, error)\n}\n\n// OpenAPISchemaInterface has a method to retrieve the open API schema.\ntype OpenAPISchemaInterface interface {\n\t// OpenAPISchema retrieves and parses the swagger API schema the server supports.\n\tOpenAPISchema() (*openapi_v2.Document, error)\n}\n\ntype OpenAPIV3SchemaInterface interface {\n\tOpenAPIV3() openapi.Client\n}\n\n// DiscoveryClient implements the functions that discover server-supported API groups,\n// versions and resources.\ntype DiscoveryClient struct {\n\trestClient restclient.Interface\n\n\tLegacyPrefix string\n\t// Forces the client to request only \"unaggregated\" (legacy) discovery.\n\tUseLegacyDiscovery bool\n}\n\nvar _ AggregatedDiscoveryInterface = &DiscoveryClient{}\n\n// Convert metav1.APIVersions to metav1.APIGroup. APIVersions is used by legacy v1, so\n// group would be \"\".\nfunc apiVersionsToAPIGroup(apiVersions *metav1.APIVersions) (apiGroup metav1.APIGroup) {\n\tgroupVersions := []metav1.GroupVersionForDiscovery{}\n\tfor _, version := range apiVersions.Versions {\n\t\tgroupVersion := metav1.GroupVersionForDiscovery{\n\t\t\tGroupVersion: version,\n\t\t\tVersion:      version,\n\t\t}\n\t\tgroupVersions = append(groupVersions, groupVersion)\n\t}\n\tapiGroup.Versions = groupVersions\n\t// There should be only one groupVersion returned at /api\n\tapiGroup.PreferredVersion = groupVersions[0]\n\treturn\n}\n\n// GroupsAndMaybeResources returns the discovery groups, and (if new aggregated\n// discovery format) the resources keyed by group/version. Merges discovery groups\n// and resources from /api and /apis (either aggregated or not). Legacy groups\n// must be ordered first. The server will either return both endpoints (/api, /apis)\n// as aggregated discovery format or legacy format. For safety, resources will only\n// be returned if both endpoints returned resources. Returned \"failedGVs\" can be\n// empty, but will only be nil in the case an error is returned.\nfunc (d *DiscoveryClient) GroupsAndMaybeResources() (\n\t*metav1.APIGroupList,\n\tmap[schema.GroupVersion]*metav1.APIResourceList,\n\tmap[schema.GroupVersion]error,\n\terror) {\n\t// Legacy group ordered first (there is only one -- core/v1 group). Returned groups must\n\t// be non-nil, but it could be empty. Returned resources, apiResources map could be nil.\n\tgroups, resources, failedGVs, err := d.downloadLegacy()\n\tif err != nil {\n\t\treturn nil, nil, nil, err\n\t}\n\t// Discovery groups and (possibly) resources downloaded from /apis.\n\tapiGroups, apiResources, failedApisGVs, aerr := d.downloadAPIs()\n\tif aerr != nil {\n\t\treturn nil, nil, nil, aerr\n\t}\n\t// Merge apis groups into the legacy groups.\n\tfor _, group := range apiGroups.Groups {\n\t\tgroups.Groups = append(groups.Groups, group)\n\t}\n\t// For safety, only return resources if both endpoints returned resources.\n\tif resources != nil && apiResources != nil {\n\t\tfor gv, resourceList := range apiResources {\n\t\t\tresources[gv] = resourceList\n\t\t}\n\t} else if resources != nil {\n\t\tresources = nil\n\t}\n\t// Merge failed GroupVersions from /api and /apis\n\tfor gv, err := range failedApisGVs {\n\t\tfailedGVs[gv] = err\n\t}\n\treturn groups, resources, failedGVs, err\n}\n\n// downloadLegacy returns the discovery groups and possibly resources\n// for the legacy v1 GVR at /api, or an error if one occurred. It is\n// possible for the resource map to be nil if the server returned\n// the unaggregated discovery. Returned \"failedGVs\" can be empty, but\n// will only be nil in the case of a returned error.\nfunc (d *DiscoveryClient) downloadLegacy() (\n\t*metav1.APIGroupList,\n\tmap[schema.GroupVersion]*metav1.APIResourceList,\n\tmap[schema.GroupVersion]error,\n\terror) {\n\taccept := acceptDiscoveryFormats\n\tif d.UseLegacyDiscovery {\n\t\taccept = AcceptV1\n\t}\n\tvar responseContentType string\n\tbody, err := d.restClient.Get().\n\t\tAbsPath(\"/api\").\n\t\tSetHeader(\"Accept\", accept).\n\t\tDo(context.TODO()).\n\t\tContentType(&responseContentType).\n\t\tRaw()\n\tapiGroupList := &metav1.APIGroupList{}\n\tfailedGVs := map[schema.GroupVersion]error{}\n\tif err != nil {\n\t\t// Tolerate 404, since aggregated api servers can return it.\n\t\tif errors.IsNotFound(err) {\n\t\t\t// Return empty structures and no error.\n\t\t\temptyGVMap := map[schema.GroupVersion]*metav1.APIResourceList{}\n\t\t\treturn apiGroupList, emptyGVMap, failedGVs, nil\n\t\t} else {\n\t\t\treturn nil, nil, nil, err\n\t\t}\n\t}\n\n\tvar resourcesByGV map[schema.GroupVersion]*metav1.APIResourceList\n\t// Based on the content-type server responded with: aggregated or unaggregated.\n\tif isGVK, _ := ContentTypeIsGVK(responseContentType, v2GVK); isGVK {\n\t\tvar aggregatedDiscovery apidiscoveryv2.APIGroupDiscoveryList\n\t\terr = json.Unmarshal(body, &aggregatedDiscovery)\n\t\tif err != nil {\n\t\t\treturn nil, nil, nil, err\n\t\t}\n\t\tapiGroupList, resourcesByGV, failedGVs = SplitGroupsAndResources(aggregatedDiscovery)\n\t} else if isGVK, _ := ContentTypeIsGVK(responseContentType, v2Beta1GVK); isGVK {\n\t\tvar aggregatedDiscovery apidiscoveryv2beta1.APIGroupDiscoveryList\n\t\terr = json.Unmarshal(body, &aggregatedDiscovery)\n\t\tif err != nil {\n\t\t\treturn nil, nil, nil, err\n\t\t}\n\t\tapiGroupList, resourcesByGV, failedGVs = SplitGroupsAndResourcesV2Beta1(aggregatedDiscovery)\n\t} else {\n\t\t// Default is unaggregated discovery v1.\n\t\tvar v metav1.APIVersions\n\t\terr = json.Unmarshal(body, &v)\n\t\tif err != nil {\n\t\t\treturn nil, nil, nil, err\n\t\t}\n\t\tapiGroup := metav1.APIGroup{}\n\t\tif len(v.Versions) != 0 {\n\t\t\tapiGroup = apiVersionsToAPIGroup(&v)\n\t\t}\n\t\tapiGroupList.Groups = []metav1.APIGroup{apiGroup}\n\t}\n\n\treturn apiGroupList, resourcesByGV, failedGVs, nil\n}\n\n// downloadAPIs returns the discovery groups and (if aggregated format) the\n// discovery resources. The returned groups will always exist, but the\n// resources map may be nil. Returned \"failedGVs\" can be empty, but will\n// only be nil in the case of a returned error.\nfunc (d *DiscoveryClient) downloadAPIs() (\n\t*metav1.APIGroupList,\n\tmap[schema.GroupVersion]*metav1.APIResourceList,\n\tmap[schema.GroupVersion]error,\n\terror) {\n\taccept := acceptDiscoveryFormats\n\tif d.UseLegacyDiscovery {\n\t\taccept = AcceptV1\n\t}\n\tvar responseContentType string\n\tbody, err := d.restClient.Get().\n\t\tAbsPath(\"/apis\").\n\t\tSetHeader(\"Accept\", accept).\n\t\tDo(context.TODO()).\n\t\tContentType(&responseContentType).\n\t\tRaw()\n\tif err != nil {\n\t\treturn nil, nil, nil, err\n\t}\n\n\tapiGroupList := &metav1.APIGroupList{}\n\tfailedGVs := map[schema.GroupVersion]error{}\n\tvar resourcesByGV map[schema.GroupVersion]*metav1.APIResourceList\n\t// Based on the content-type server responded with: aggregated or unaggregated.\n\tif isGVK, _ := ContentTypeIsGVK(responseContentType, v2GVK); isGVK {\n\t\tvar aggregatedDiscovery apidiscoveryv2.APIGroupDiscoveryList\n\t\terr = json.Unmarshal(body, &aggregatedDiscovery)\n\t\tif err != nil {\n\t\t\treturn nil, nil, nil, err\n\t\t}\n\t\tapiGroupList, resourcesByGV, failedGVs = SplitGroupsAndResources(aggregatedDiscovery)\n\t} else if isGVK, _ := ContentTypeIsGVK(responseContentType, v2Beta1GVK); isGVK {\n\t\tvar aggregatedDiscovery apidiscoveryv2beta1.APIGroupDiscoveryList\n\t\terr = json.Unmarshal(body, &aggregatedDiscovery)\n\t\tif err != nil {\n\t\t\treturn nil, nil, nil, err\n\t\t}\n\t\tapiGroupList, resourcesByGV, failedGVs = SplitGroupsAndResourcesV2Beta1(aggregatedDiscovery)\n\t} else {\n\t\t// Default is unaggregated discovery v1.\n\t\terr = json.Unmarshal(body, apiGroupList)\n\t\tif err != nil {\n\t\t\treturn nil, nil, nil, err\n\t\t}\n\t}\n\n\treturn apiGroupList, resourcesByGV, failedGVs, nil\n}\n\n// ContentTypeIsGVK checks of the content-type string is both\n// \"application/json\" and matches the provided GVK. An error\n// is returned if the content type string is malformed.\n// NOTE: This function is resilient to the ordering of the\n// content-type parameters, as well as parameters added by\n// intermediaries such as proxies or gateways. Examples:\n//\n//\t(\"application/json; g=apidiscovery.k8s.io;v=v2beta1;as=APIGroupDiscoveryList\", {apidiscovery.k8s.io, v2beta1, APIGroupDiscoveryList}) = (true, nil)\n//\t(\"application/json; as=APIGroupDiscoveryList;v=v2beta1;g=apidiscovery.k8s.io\", {apidiscovery.k8s.io, v2beta1, APIGroupDiscoveryList}) = (true, nil)\n//\t(\"application/json; as=APIGroupDiscoveryList;v=v2beta1;g=apidiscovery.k8s.io;charset=utf-8\", {apidiscovery.k8s.io, v2beta1, APIGroupDiscoveryList}) = (true, nil)\n//\t(\"application/json\", any GVK) = (false, nil)\n//\t(\"application/json; charset=UTF-8\", any GVK) = (false, nil)\n//\t(\"malformed content type string\", any GVK) = (false, error)\nfunc ContentTypeIsGVK(contentType string, gvk schema.GroupVersionKind) (bool, error) {\n\tbase, params, err := mime.ParseMediaType(contentType)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tgvkMatch := runtime.ContentTypeJSON == base &&\n\t\tparams[\"g\"] == gvk.Group &&\n\t\tparams[\"v\"] == gvk.Version &&\n\t\tparams[\"as\"] == gvk.Kind\n\treturn gvkMatch, nil\n}\n\n// ServerGroups returns the supported groups, with information like supported versions and the\n// preferred version.\nfunc (d *DiscoveryClient) ServerGroups() (*metav1.APIGroupList, error) {\n\tgroups, _, _, err := d.GroupsAndMaybeResources()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn groups, nil\n}\n\n// ServerResourcesForGroupVersion returns the supported resources for a group and version.\nfunc (d *DiscoveryClient) ServerResourcesForGroupVersion(groupVersion string) (resources *metav1.APIResourceList, err error) {\n\turl := url.URL{}\n\tif len(groupVersion) == 0 {\n\t\treturn nil, fmt.Errorf(\"groupVersion shouldn't be empty\")\n\t}\n\tif len(d.LegacyPrefix) > 0 && groupVersion == \"v1\" {\n\t\turl.Path = d.LegacyPrefix + \"/\" + groupVersion\n\t} else {\n\t\turl.Path = \"/apis/\" + groupVersion\n\t}\n\tresources = &metav1.APIResourceList{\n\t\tGroupVersion: groupVersion,\n\t}\n\terr = d.restClient.Get().AbsPath(url.String()).Do(context.TODO()).Into(resources)\n\tif err != nil {\n\t\t// Tolerate core/v1 not found response by returning empty resource list;\n\t\t// this probably should not happen. But we should verify all callers are\n\t\t// not depending on this toleration before removal.\n\t\tif groupVersion == \"v1\" && errors.IsNotFound(err) {\n\t\t\treturn resources, nil\n\t\t}\n\t\treturn nil, err\n\t}\n\treturn resources, nil\n}\n\n// ServerGroupsAndResources returns the supported resources for all groups and versions.\nfunc (d *DiscoveryClient) ServerGroupsAndResources() ([]*metav1.APIGroup, []*metav1.APIResourceList, error) {\n\treturn withRetries(defaultRetries, func() ([]*metav1.APIGroup, []*metav1.APIResourceList, error) {\n\t\treturn ServerGroupsAndResources(d)\n\t})\n}\n\n// ErrGroupDiscoveryFailed is returned if one or more API groups fail to load.\ntype ErrGroupDiscoveryFailed struct {\n\t// Groups is a list of the groups that failed to load and the error cause\n\tGroups map[schema.GroupVersion]error\n}\n\n// Error implements the error interface\nfunc (e *ErrGroupDiscoveryFailed) Error() string {\n\tvar groups []string\n\tfor k, v := range e.Groups {\n\t\tgroups = append(groups, fmt.Sprintf(\"%s: %v\", k, v))\n\t}\n\tsort.Strings(groups)\n\treturn fmt.Sprintf(\"unable to retrieve the complete list of server APIs: %s\", strings.Join(groups, \", \"))\n}\n\n// Is makes it possible for the callers to use `errors.Is(` helper on errors wrapped with ErrGroupDiscoveryFailed error.\nfunc (e *ErrGroupDiscoveryFailed) Is(target error) bool {\n\t_, ok := target.(*ErrGroupDiscoveryFailed)\n\treturn ok\n}\n\n// IsGroupDiscoveryFailedError returns true if the provided error indicates the server was unable to discover\n// a complete list of APIs for the client to use.\nfunc IsGroupDiscoveryFailedError(err error) bool {\n\t_, ok := err.(*ErrGroupDiscoveryFailed)\n\treturn err != nil && ok\n}\n\n// GroupDiscoveryFailedErrorGroups returns true if the error is an ErrGroupDiscoveryFailed error,\n// along with the map of group versions that failed discovery.\nfunc GroupDiscoveryFailedErrorGroups(err error) (map[schema.GroupVersion]error, bool) {\n\tvar groupDiscoveryError *ErrGroupDiscoveryFailed\n\tif err != nil && goerrors.As(err, &groupDiscoveryError) {\n\t\treturn groupDiscoveryError.Groups, true\n\t}\n\treturn nil, false\n}\n\nfunc ServerGroupsAndResources(d DiscoveryInterface) ([]*metav1.APIGroup, []*metav1.APIResourceList, error) {\n\tvar sgs *metav1.APIGroupList\n\tvar resources []*metav1.APIResourceList\n\tvar failedGVs map[schema.GroupVersion]error\n\tvar err error\n\n\t// If the passed discovery object implements the wider AggregatedDiscoveryInterface,\n\t// then attempt to retrieve aggregated discovery with both groups and the resources.\n\tif ad, ok := d.(AggregatedDiscoveryInterface); ok {\n\t\tvar resourcesByGV map[schema.GroupVersion]*metav1.APIResourceList\n\t\tsgs, resourcesByGV, failedGVs, err = ad.GroupsAndMaybeResources()\n\t\tfor _, resourceList := range resourcesByGV {\n\t\t\tresources = append(resources, resourceList)\n\t\t}\n\t} else {\n\t\tsgs, err = d.ServerGroups()\n\t}\n\n\tif sgs == nil {\n\t\treturn nil, nil, err\n\t}\n\tresultGroups := []*metav1.APIGroup{}\n\tfor i := range sgs.Groups {\n\t\tresultGroups = append(resultGroups, &sgs.Groups[i])\n\t}\n\t// resources is non-nil if aggregated discovery succeeded.\n\tif resources != nil {\n\t\t// Any stale Group/Versions returned by aggregated discovery\n\t\t// must be surfaced to the caller as failed Group/Versions.\n\t\tvar ferr error\n\t\tif len(failedGVs) > 0 {\n\t\t\tferr = &ErrGroupDiscoveryFailed{Groups: failedGVs}\n\t\t}\n\t\treturn resultGroups, resources, ferr\n\t}\n\n\tgroupVersionResources, failedGroups := fetchGroupVersionResources(d, sgs)\n\n\t// order results by group/version discovery order\n\tresult := []*metav1.APIResourceList{}\n\tfor _, apiGroup := range sgs.Groups {\n\t\tfor _, version := range apiGroup.Versions {\n\t\t\tgv := schema.GroupVersion{Group: apiGroup.Name, Version: version.Version}\n\t\t\tif resources, ok := groupVersionResources[gv]; ok {\n\t\t\t\tresult = append(result, resources)\n\t\t\t}\n\t\t}\n\t}\n\n\tif len(failedGroups) == 0 {\n\t\treturn resultGroups, result, nil\n\t}\n\n\treturn resultGroups, result, &ErrGroupDiscoveryFailed{Groups: failedGroups}\n}\n\n// ServerPreferredResources uses the provided discovery interface to look up preferred resources\nfunc ServerPreferredResources(d DiscoveryInterface) ([]*metav1.APIResourceList, error) {\n\tvar serverGroupList *metav1.APIGroupList\n\tvar failedGroups map[schema.GroupVersion]error\n\tvar groupVersionResources map[schema.GroupVersion]*metav1.APIResourceList\n\tvar err error\n\n\t// If the passed discovery object implements the wider AggregatedDiscoveryInterface,\n\t// then it is attempt to retrieve both the groups and the resources. \"failedGroups\"\n\t// are Group/Versions returned as stale in AggregatedDiscovery format.\n\tad, ok := d.(AggregatedDiscoveryInterface)\n\tif ok {\n\t\tserverGroupList, groupVersionResources, failedGroups, err = ad.GroupsAndMaybeResources()\n\t} else {\n\t\tserverGroupList, err = d.ServerGroups()\n\t}\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\t// Non-aggregated discovery must fetch resources from Groups.\n\tif groupVersionResources == nil {\n\t\tgroupVersionResources, failedGroups = fetchGroupVersionResources(d, serverGroupList)\n\t}\n\n\tresult := []*metav1.APIResourceList{}\n\tgrVersions := map[schema.GroupResource]string{}                         // selected version of a GroupResource\n\tgrAPIResources := map[schema.GroupResource]*metav1.APIResource{}        // selected APIResource for a GroupResource\n\tgvAPIResourceLists := map[schema.GroupVersion]*metav1.APIResourceList{} // blueprint for a APIResourceList for later grouping\n\n\tfor _, apiGroup := range serverGroupList.Groups {\n\t\tfor _, version := range apiGroup.Versions {\n\t\t\tgroupVersion := schema.GroupVersion{Group: apiGroup.Name, Version: version.Version}\n\n\t\t\tapiResourceList, ok := groupVersionResources[groupVersion]\n\t\t\tif !ok {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// create empty list which is filled later in another loop\n\t\t\temptyAPIResourceList := metav1.APIResourceList{\n\t\t\t\tGroupVersion: version.GroupVersion,\n\t\t\t}\n\t\t\tgvAPIResourceLists[groupVersion] = &emptyAPIResourceList\n\t\t\tresult = append(result, &emptyAPIResourceList)\n\n\t\t\tfor i := range apiResourceList.APIResources {\n\t\t\t\tapiResource := &apiResourceList.APIResources[i]\n\t\t\t\tif strings.Contains(apiResource.Name, \"/\") {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tgv := schema.GroupResource{Group: apiGroup.Name, Resource: apiResource.Name}\n\t\t\t\tif _, ok := grAPIResources[gv]; ok && version.Version != apiGroup.PreferredVersion.Version {\n\t\t\t\t\t// only override with preferred version\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tgrVersions[gv] = version.Version\n\t\t\t\tgrAPIResources[gv] = apiResource\n\t\t\t}\n\t\t}\n\t}\n\n\t// group selected APIResources according to GroupVersion into APIResourceLists\n\tfor groupResource, apiResource := range grAPIResources {\n\t\tversion := grVersions[groupResource]\n\t\tgroupVersion := schema.GroupVersion{Group: groupResource.Group, Version: version}\n\t\tapiResourceList := gvAPIResourceLists[groupVersion]\n\t\tapiResourceList.APIResources = append(apiResourceList.APIResources, *apiResource)\n\t}\n\n\tif len(failedGroups) == 0 {\n\t\treturn result, nil\n\t}\n\n\treturn result, &ErrGroupDiscoveryFailed{Groups: failedGroups}\n}\n\n// fetchServerResourcesForGroupVersions uses the discovery client to fetch the resources for the specified groups in parallel.\nfunc fetchGroupVersionResources(d DiscoveryInterface, apiGroups *metav1.APIGroupList) (map[schema.GroupVersion]*metav1.APIResourceList, map[schema.GroupVersion]error) {\n\tgroupVersionResources := make(map[schema.GroupVersion]*metav1.APIResourceList)\n\tfailedGroups := make(map[schema.GroupVersion]error)\n\n\twg := &sync.WaitGroup{}\n\tresultLock := &sync.Mutex{}\n\tfor _, apiGroup := range apiGroups.Groups {\n\t\tfor _, version := range apiGroup.Versions {\n\t\t\tgroupVersion := schema.GroupVersion{Group: apiGroup.Name, Version: version.Version}\n\t\t\twg.Add(1)\n\t\t\tgo func() {\n\t\t\t\tdefer wg.Done()\n\t\t\t\tdefer utilruntime.HandleCrash()\n\n\t\t\t\tapiResourceList, err := d.ServerResourcesForGroupVersion(groupVersion.String())\n\n\t\t\t\t// lock to record results\n\t\t\t\tresultLock.Lock()\n\t\t\t\tdefer resultLock.Unlock()\n\n\t\t\t\tif err != nil {\n\t\t\t\t\t// TODO: maybe restrict this to NotFound errors\n\t\t\t\t\tfailedGroups[groupVersion] = err\n\t\t\t\t}\n\t\t\t\tif apiResourceList != nil {\n\t\t\t\t\t// even in case of error, some fallback might have been returned\n\t\t\t\t\tgroupVersionResources[groupVersion] = apiResourceList\n\t\t\t\t}\n\t\t\t}()\n\t\t}\n\t}\n\twg.Wait()\n\n\treturn groupVersionResources, failedGroups\n}\n\n// ServerPreferredResources returns the supported resources with the version preferred by the\n// server.\nfunc (d *DiscoveryClient) ServerPreferredResources() ([]*metav1.APIResourceList, error) {\n\t_, rs, err := withRetries(defaultRetries, func() ([]*metav1.APIGroup, []*metav1.APIResourceList, error) {\n\t\trs, err := ServerPreferredResources(d)\n\t\treturn nil, rs, err\n\t})\n\treturn rs, err\n}\n\n// ServerPreferredNamespacedResources returns the supported namespaced resources with the\n// version preferred by the server.\nfunc (d *DiscoveryClient) ServerPreferredNamespacedResources() ([]*metav1.APIResourceList, error) {\n\treturn ServerPreferredNamespacedResources(d)\n}\n\n// ServerPreferredNamespacedResources uses the provided discovery interface to look up preferred namespaced resources\nfunc ServerPreferredNamespacedResources(d DiscoveryInterface) ([]*metav1.APIResourceList, error) {\n\tall, err := ServerPreferredResources(d)\n\treturn FilteredBy(ResourcePredicateFunc(func(groupVersion string, r *metav1.APIResource) bool {\n\t\treturn r.Namespaced\n\t}), all), err\n}\n\n// ServerVersion retrieves and parses the server's version (git version).\nfunc (d *DiscoveryClient) ServerVersion() (*version.Info, error) {\n\tbody, err := d.restClient.Get().AbsPath(\"/version\").Do(context.TODO()).Raw()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tvar info version.Info\n\terr = json.Unmarshal(body, &info)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"unable to parse the server version: %v\", err)\n\t}\n\treturn &info, nil\n}\n\n// OpenAPISchema fetches the open api v2 schema using a rest client and parses the proto.\nfunc (d *DiscoveryClient) OpenAPISchema() (*openapi_v2.Document, error) {\n\tdata, err := d.restClient.Get().AbsPath(\"/openapi/v2\").SetHeader(\"Accept\", openAPIV2mimePb).Do(context.TODO()).Raw()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdocument := &openapi_v2.Document{}\n\terr = proto.Unmarshal(data, document)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn document, nil\n}\n\nfunc (d *DiscoveryClient) OpenAPIV3() openapi.Client {\n\treturn openapi.NewClient(d.restClient)\n}\n\n// WithLegacy returns copy of current discovery client that will only\n// receive the legacy discovery format.\nfunc (d *DiscoveryClient) WithLegacy() DiscoveryInterface {\n\tclient := *d\n\tclient.UseLegacyDiscovery = true\n\treturn &client\n}\n\n// withRetries retries the given recovery function in case the groups supported by the server change after ServerGroup() returns.\nfunc withRetries(maxRetries int, f func() ([]*metav1.APIGroup, []*metav1.APIResourceList, error)) ([]*metav1.APIGroup, []*metav1.APIResourceList, error) {\n\tvar result []*metav1.APIResourceList\n\tvar resultGroups []*metav1.APIGroup\n\tvar err error\n\tfor i := 0; i < maxRetries; i++ {\n\t\tresultGroups, result, err = f()\n\t\tif err == nil {\n\t\t\treturn resultGroups, result, nil\n\t\t}\n\t\tif _, ok := err.(*ErrGroupDiscoveryFailed); !ok {\n\t\t\treturn nil, nil, err\n\t\t}\n\t}\n\treturn resultGroups, result, err\n}\n\nfunc setDiscoveryDefaults(config *restclient.Config) error {\n\tconfig.APIPath = \"\"\n\tconfig.GroupVersion = nil\n\tif config.Timeout == 0 {\n\t\tconfig.Timeout = defaultTimeout\n\t}\n\t// if a burst limit is not already configured\n\tif config.Burst == 0 {\n\t\t// discovery is expected to be bursty, increase the default burst\n\t\t// to accommodate looking up resource info for many API groups.\n\t\t// matches burst set by ConfigFlags#ToDiscoveryClient().\n\t\t// see https://issue.k8s.io/86149\n\t\tconfig.Burst = defaultBurst\n\t}\n\tcodec := runtime.NoopEncoder{Decoder: scheme.Codecs.UniversalDecoder()}\n\tconfig.NegotiatedSerializer = serializer.NegotiatedSerializerWrapper(runtime.SerializerInfo{Serializer: codec})\n\tif len(config.UserAgent) == 0 {\n\t\tconfig.UserAgent = restclient.DefaultKubernetesUserAgent()\n\t}\n\treturn nil\n}\n\n// NewDiscoveryClientForConfig creates a new DiscoveryClient for the given config. This client\n// can be used to discover supported resources in the API server.\n// NewDiscoveryClientForConfig is equivalent to NewDiscoveryClientForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewDiscoveryClientForConfig(c *restclient.Config) (*DiscoveryClient, error) {\n\tconfig := *c\n\tif err := setDiscoveryDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := restclient.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewDiscoveryClientForConfigAndClient(&config, httpClient)\n}\n\n// NewDiscoveryClientForConfigAndClient creates a new DiscoveryClient for the given config. This client\n// can be used to discover supported resources in the API server.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewDiscoveryClientForConfigAndClient(c *restclient.Config, httpClient *http.Client) (*DiscoveryClient, error) {\n\tconfig := *c\n\tif err := setDiscoveryDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := restclient.UnversionedRESTClientForConfigAndClient(&config, httpClient)\n\treturn &DiscoveryClient{restClient: client, LegacyPrefix: \"/api\", UseLegacyDiscovery: false}, err\n}\n\n// NewDiscoveryClientForConfigOrDie creates a new DiscoveryClient for the given config. If\n// there is an error, it panics.\nfunc NewDiscoveryClientForConfigOrDie(c *restclient.Config) *DiscoveryClient {\n\tclient, err := NewDiscoveryClientForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n\n}\n\n// NewDiscoveryClient returns a new DiscoveryClient for the given RESTClient.\nfunc NewDiscoveryClient(c restclient.Interface) *DiscoveryClient {\n\treturn &DiscoveryClient{restClient: c, LegacyPrefix: \"/api\", UseLegacyDiscovery: false}\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (d *DiscoveryClient) RESTClient() restclient.Interface {\n\tif d == nil {\n\t\treturn nil\n\t}\n\treturn d.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/discovery/doc.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package discovery provides ways to discover server-supported\n// API groups, versions and resources.\npackage discovery // import \"k8s.io/client-go/discovery\"\n"
  },
  {
    "path": "vendor/k8s.io/client-go/discovery/fake/discovery.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fake\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\n\topenapi_v2 \"github.com/google/gnostic-models/openapiv2\"\n\n\t\"k8s.io/apimachinery/pkg/api/errors\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/version\"\n\t\"k8s.io/client-go/discovery\"\n\t\"k8s.io/client-go/openapi\"\n\tkubeversion \"k8s.io/client-go/pkg/version\"\n\trestclient \"k8s.io/client-go/rest\"\n\t\"k8s.io/client-go/testing\"\n)\n\n// FakeDiscovery implements discovery.DiscoveryInterface and sometimes calls testing.Fake.Invoke with an action,\n// but doesn't respect the return value if any. There is a way to fake static values like ServerVersion by using the Faked... fields on the struct.\ntype FakeDiscovery struct {\n\t*testing.Fake\n\tFakedServerVersion *version.Info\n}\n\n// ServerResourcesForGroupVersion returns the supported resources for a group\n// and version.\nfunc (c *FakeDiscovery) ServerResourcesForGroupVersion(groupVersion string) (*metav1.APIResourceList, error) {\n\taction := testing.ActionImpl{\n\t\tVerb:     \"get\",\n\t\tResource: schema.GroupVersionResource{Resource: \"resource\"},\n\t}\n\tif _, err := c.Invokes(action, nil); err != nil {\n\t\treturn nil, err\n\t}\n\tfor _, resourceList := range c.Resources {\n\t\tif resourceList.GroupVersion == groupVersion {\n\t\t\treturn resourceList, nil\n\t\t}\n\t}\n\treturn nil, &errors.StatusError{\n\t\tErrStatus: metav1.Status{\n\t\t\tStatus:  metav1.StatusFailure,\n\t\t\tCode:    http.StatusNotFound,\n\t\t\tReason:  metav1.StatusReasonNotFound,\n\t\t\tMessage: fmt.Sprintf(\"the server could not find the requested resource, GroupVersion %q not found\", groupVersion),\n\t\t}}\n}\n\n// ServerGroupsAndResources returns the supported groups and resources for all groups and versions.\nfunc (c *FakeDiscovery) ServerGroupsAndResources() ([]*metav1.APIGroup, []*metav1.APIResourceList, error) {\n\tsgs, err := c.ServerGroups()\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\tresultGroups := []*metav1.APIGroup{}\n\tfor i := range sgs.Groups {\n\t\tresultGroups = append(resultGroups, &sgs.Groups[i])\n\t}\n\n\taction := testing.ActionImpl{\n\t\tVerb:     \"get\",\n\t\tResource: schema.GroupVersionResource{Resource: \"resource\"},\n\t}\n\tif _, err = c.Invokes(action, nil); err != nil {\n\t\treturn resultGroups, c.Resources, err\n\t}\n\treturn resultGroups, c.Resources, nil\n}\n\n// ServerPreferredResources returns the supported resources with the version\n// preferred by the server.\nfunc (c *FakeDiscovery) ServerPreferredResources() ([]*metav1.APIResourceList, error) {\n\treturn nil, nil\n}\n\n// ServerPreferredNamespacedResources returns the supported namespaced resources\n// with the version preferred by the server.\nfunc (c *FakeDiscovery) ServerPreferredNamespacedResources() ([]*metav1.APIResourceList, error) {\n\treturn nil, nil\n}\n\n// ServerGroups returns the supported groups, with information like supported\n// versions and the preferred version.\nfunc (c *FakeDiscovery) ServerGroups() (*metav1.APIGroupList, error) {\n\taction := testing.ActionImpl{\n\t\tVerb:     \"get\",\n\t\tResource: schema.GroupVersionResource{Resource: \"group\"},\n\t}\n\tif _, err := c.Invokes(action, nil); err != nil {\n\t\treturn nil, err\n\t}\n\n\tgroups := map[string]*metav1.APIGroup{}\n\n\tfor _, res := range c.Resources {\n\t\tgv, err := schema.ParseGroupVersion(res.GroupVersion)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tgroup := groups[gv.Group]\n\t\tif group == nil {\n\t\t\tgroup = &metav1.APIGroup{\n\t\t\t\tName: gv.Group,\n\t\t\t\tPreferredVersion: metav1.GroupVersionForDiscovery{\n\t\t\t\t\tGroupVersion: res.GroupVersion,\n\t\t\t\t\tVersion:      gv.Version,\n\t\t\t\t},\n\t\t\t}\n\t\t\tgroups[gv.Group] = group\n\t\t}\n\n\t\tgroup.Versions = append(group.Versions, metav1.GroupVersionForDiscovery{\n\t\t\tGroupVersion: res.GroupVersion,\n\t\t\tVersion:      gv.Version,\n\t\t})\n\t}\n\n\tlist := &metav1.APIGroupList{}\n\tfor _, apiGroup := range groups {\n\t\tlist.Groups = append(list.Groups, *apiGroup)\n\t}\n\n\treturn list, nil\n\n}\n\n// ServerVersion retrieves and parses the server's version.\nfunc (c *FakeDiscovery) ServerVersion() (*version.Info, error) {\n\taction := testing.ActionImpl{}\n\taction.Verb = \"get\"\n\taction.Resource = schema.GroupVersionResource{Resource: \"version\"}\n\t_, err := c.Invokes(action, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif c.FakedServerVersion != nil {\n\t\treturn c.FakedServerVersion, nil\n\t}\n\n\tversionInfo := kubeversion.Get()\n\treturn &versionInfo, nil\n}\n\n// OpenAPISchema retrieves and parses the swagger API schema the server supports.\nfunc (c *FakeDiscovery) OpenAPISchema() (*openapi_v2.Document, error) {\n\treturn &openapi_v2.Document{}, nil\n}\n\nfunc (c *FakeDiscovery) OpenAPIV3() openapi.Client {\n\tpanic(\"unimplemented\")\n}\n\n// RESTClient returns a RESTClient that is used to communicate with API server\n// by this client implementation.\nfunc (c *FakeDiscovery) RESTClient() restclient.Interface {\n\treturn nil\n}\n\nfunc (c *FakeDiscovery) WithLegacy() discovery.DiscoveryInterface {\n\tpanic(\"unimplemented\")\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/discovery/helper.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage discovery\n\nimport (\n\t\"fmt\"\n\n\tapierrors \"k8s.io/apimachinery/pkg/api/errors\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/util/sets\"\n\tapimachineryversion \"k8s.io/apimachinery/pkg/version\"\n)\n\n// IsResourceEnabled queries the server to determine if the resource specified is present on the server.\n// This is particularly helpful when writing a controller or an e2e test that requires a particular resource to function.\nfunc IsResourceEnabled(client DiscoveryInterface, resourceToCheck schema.GroupVersionResource) (bool, error) {\n\t// this is a single request.  The ServerResourcesForGroupVersion handles the core v1 group as legacy.\n\tresourceList, err := client.ServerResourcesForGroupVersion(resourceToCheck.GroupVersion().String())\n\tif apierrors.IsNotFound(err) { // if the discovery endpoint isn't present, then the resource isn't present.\n\t\treturn false, nil\n\t}\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tfor _, actualResource := range resourceList.APIResources {\n\t\tif actualResource.Name == resourceToCheck.Resource {\n\t\t\treturn true, nil\n\t\t}\n\t}\n\n\treturn false, nil\n}\n\n// MatchesServerVersion queries the server to compares the build version\n// (git hash) of the client with the server's build version. It returns an error\n// if it failed to contact the server or if the versions are not an exact match.\nfunc MatchesServerVersion(clientVersion apimachineryversion.Info, client DiscoveryInterface) error {\n\tsVer, err := client.ServerVersion()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"couldn't read version from server: %v\", err)\n\t}\n\t// GitVersion includes GitCommit and GitTreeState, but best to be safe?\n\tif clientVersion.GitVersion != sVer.GitVersion || clientVersion.GitCommit != sVer.GitCommit || clientVersion.GitTreeState != sVer.GitTreeState {\n\t\treturn fmt.Errorf(\"server version (%#v) differs from client version (%#v)\", sVer, clientVersion)\n\t}\n\n\treturn nil\n}\n\n// ServerSupportsVersion returns an error if the server doesn't have the required version\nfunc ServerSupportsVersion(client DiscoveryInterface, requiredGV schema.GroupVersion) error {\n\tgroups, err := client.ServerGroups()\n\tif err != nil {\n\t\t// This is almost always a connection error, and higher level code should treat this as a generic error,\n\t\t// not a negotiation specific error.\n\t\treturn err\n\t}\n\tversions := metav1.ExtractGroupVersions(groups)\n\tserverVersions := sets.String{}\n\tfor _, v := range versions {\n\t\tserverVersions.Insert(v)\n\t}\n\n\tif serverVersions.Has(requiredGV.String()) {\n\t\treturn nil\n\t}\n\n\t// If the server supports no versions, then we should pretend it has the version because of old servers.\n\t// This can happen because discovery fails due to 403 Forbidden errors\n\tif len(serverVersions) == 0 {\n\t\treturn nil\n\t}\n\n\treturn fmt.Errorf(\"server does not support API version %q\", requiredGV)\n}\n\n// GroupVersionResources converts APIResourceLists to the GroupVersionResources.\nfunc GroupVersionResources(rls []*metav1.APIResourceList) (map[schema.GroupVersionResource]struct{}, error) {\n\tgvrs := map[schema.GroupVersionResource]struct{}{}\n\tfor _, rl := range rls {\n\t\tgv, err := schema.ParseGroupVersion(rl.GroupVersion)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tfor i := range rl.APIResources {\n\t\t\tgvrs[schema.GroupVersionResource{Group: gv.Group, Version: gv.Version, Resource: rl.APIResources[i].Name}] = struct{}{}\n\t\t}\n\t}\n\treturn gvrs, nil\n}\n\n// FilteredBy filters by the given predicate. Empty APIResourceLists are dropped.\nfunc FilteredBy(pred ResourcePredicate, rls []*metav1.APIResourceList) []*metav1.APIResourceList {\n\tresult := []*metav1.APIResourceList{}\n\tfor _, rl := range rls {\n\t\tfiltered := *rl\n\t\tfiltered.APIResources = nil\n\t\tfor i := range rl.APIResources {\n\t\t\tif pred.Match(rl.GroupVersion, &rl.APIResources[i]) {\n\t\t\t\tfiltered.APIResources = append(filtered.APIResources, rl.APIResources[i])\n\t\t\t}\n\t\t}\n\t\tif filtered.APIResources != nil {\n\t\t\tresult = append(result, &filtered)\n\t\t}\n\t}\n\treturn result\n}\n\n// ResourcePredicate has a method to check if a resource matches a given condition.\ntype ResourcePredicate interface {\n\tMatch(groupVersion string, r *metav1.APIResource) bool\n}\n\n// ResourcePredicateFunc returns true if it matches a resource based on a custom condition.\ntype ResourcePredicateFunc func(groupVersion string, r *metav1.APIResource) bool\n\n// Match is a wrapper around ResourcePredicateFunc.\nfunc (fn ResourcePredicateFunc) Match(groupVersion string, r *metav1.APIResource) bool {\n\treturn fn(groupVersion, r)\n}\n\n// SupportsAllVerbs is a predicate matching a resource iff all given verbs are supported.\ntype SupportsAllVerbs struct {\n\tVerbs []string\n}\n\n// Match checks if a resource contains all the given verbs.\nfunc (p SupportsAllVerbs) Match(groupVersion string, r *metav1.APIResource) bool {\n\treturn sets.NewString([]string(r.Verbs)...).HasAll(p.Verbs...)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/features/envvar.go",
    "content": "/*\nCopyright 2024 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage features\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"strconv\"\n\t\"sync\"\n\t\"sync/atomic\"\n\n\t\"k8s.io/apimachinery/pkg/util/naming\"\n\tutilruntime \"k8s.io/apimachinery/pkg/util/runtime\"\n\t\"k8s.io/klog/v2\"\n)\n\n// internalPackages are packages that ignored when creating a name for featureGates. These packages are in the common\n// call chains, so they'd be unhelpful as names.\nvar internalPackages = []string{\"k8s.io/client-go/features/envvar.go\"}\n\nvar _ Gates = &envVarFeatureGates{}\n\n// newEnvVarFeatureGates creates a feature gate that allows for registration\n// of features and checking if the features are enabled.\n//\n// On the first call to Enabled, the effective state of all known features is loaded from\n// environment variables. The environment variable read for a given feature is formed by\n// concatenating the prefix \"KUBE_FEATURE_\" with the feature's name.\n//\n// For example, if you have a feature named \"MyFeature\"\n// setting an environmental variable \"KUBE_FEATURE_MyFeature\"\n// will allow you to configure the state of that feature.\n//\n// Please note that environmental variables can only be set to the boolean value.\n// Incorrect values will be ignored and logged.\n//\n// Features can also be set directly via the Set method.\n// In that case, these features take precedence over\n// features set via environmental variables.\nfunc newEnvVarFeatureGates(features map[Feature]FeatureSpec) *envVarFeatureGates {\n\tknown := map[Feature]FeatureSpec{}\n\tfor name, spec := range features {\n\t\tknown[name] = spec\n\t}\n\n\tfg := &envVarFeatureGates{\n\t\tcallSiteName: naming.GetNameFromCallsite(internalPackages...),\n\t\tknown:        known,\n\t}\n\tfg.enabledViaEnvVar.Store(map[Feature]bool{})\n\tfg.enabledViaSetMethod = map[Feature]bool{}\n\n\treturn fg\n}\n\n// envVarFeatureGates implements Gates and allows for feature registration.\ntype envVarFeatureGates struct {\n\t// callSiteName holds the name of the file\n\t// that created this instance\n\tcallSiteName string\n\n\t// readEnvVarsOnce guards reading environmental variables\n\treadEnvVarsOnce sync.Once\n\n\t// known holds known feature gates\n\tknown map[Feature]FeatureSpec\n\n\t// enabledViaEnvVar holds a map[Feature]bool\n\t// with values explicitly set via env var\n\tenabledViaEnvVar atomic.Value\n\n\t// lockEnabledViaSetMethod protects enabledViaSetMethod\n\tlockEnabledViaSetMethod sync.RWMutex\n\n\t// enabledViaSetMethod holds values explicitly set\n\t// via Set method, features stored in this map take\n\t// precedence over features stored in enabledViaEnvVar\n\tenabledViaSetMethod map[Feature]bool\n\n\t// readEnvVars holds the boolean value which\n\t// indicates whether readEnvVarsOnce has been called.\n\treadEnvVars atomic.Bool\n}\n\n// Enabled returns true if the key is enabled. If the key is not known, this call will panic.\nfunc (f *envVarFeatureGates) Enabled(key Feature) bool {\n\tif v, ok := f.wasFeatureEnabledViaSetMethod(key); ok {\n\t\t// ensue that the state of all known features\n\t\t// is loaded from environment variables\n\t\t// on the first call to Enabled method.\n\t\tif !f.hasAlreadyReadEnvVar() {\n\t\t\t_ = f.getEnabledMapFromEnvVar()\n\t\t}\n\t\treturn v\n\t}\n\tif v, ok := f.getEnabledMapFromEnvVar()[key]; ok {\n\t\treturn v\n\t}\n\tif v, ok := f.known[key]; ok {\n\t\treturn v.Default\n\t}\n\tpanic(fmt.Errorf(\"feature %q is not registered in FeatureGates %q\", key, f.callSiteName))\n}\n\n// Set sets the given feature to the given value.\n//\n// Features set via this method take precedence over\n// the features set via environment variables.\nfunc (f *envVarFeatureGates) Set(featureName Feature, featureValue bool) error {\n\tfeature, ok := f.known[featureName]\n\tif !ok {\n\t\treturn fmt.Errorf(\"feature %q is not registered in FeatureGates %q\", featureName, f.callSiteName)\n\t}\n\tif feature.LockToDefault && feature.Default != featureValue {\n\t\treturn fmt.Errorf(\"cannot set feature gate %q to %v, feature is locked to %v\", featureName, featureValue, feature.Default)\n\t}\n\n\tf.lockEnabledViaSetMethod.Lock()\n\tdefer f.lockEnabledViaSetMethod.Unlock()\n\tf.enabledViaSetMethod[featureName] = featureValue\n\n\treturn nil\n}\n\n// getEnabledMapFromEnvVar will fill the enabled map on the first call.\n// This is the only time a known feature can be set to a value\n// read from the corresponding environmental variable.\nfunc (f *envVarFeatureGates) getEnabledMapFromEnvVar() map[Feature]bool {\n\tf.readEnvVarsOnce.Do(func() {\n\t\tfeatureGatesState := map[Feature]bool{}\n\t\tfor feature, featureSpec := range f.known {\n\t\t\tfeatureState, featureStateSet := os.LookupEnv(fmt.Sprintf(\"KUBE_FEATURE_%s\", feature))\n\t\t\tif !featureStateSet {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tboolVal, boolErr := strconv.ParseBool(featureState)\n\t\t\tswitch {\n\t\t\tcase boolErr != nil:\n\t\t\t\tutilruntime.HandleError(fmt.Errorf(\"cannot set feature gate %q to %q, due to %v\", feature, featureState, boolErr))\n\t\t\tcase featureSpec.LockToDefault:\n\t\t\t\tif boolVal != featureSpec.Default {\n\t\t\t\t\tutilruntime.HandleError(fmt.Errorf(\"cannot set feature gate %q to %q, feature is locked to %v\", feature, featureState, featureSpec.Default))\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t\tfeatureGatesState[feature] = featureSpec.Default\n\t\t\tdefault:\n\t\t\t\tfeatureGatesState[feature] = boolVal\n\t\t\t}\n\t\t}\n\t\tf.enabledViaEnvVar.Store(featureGatesState)\n\t\tf.readEnvVars.Store(true)\n\n\t\tfor feature, featureSpec := range f.known {\n\t\t\tif featureState, ok := featureGatesState[feature]; ok {\n\t\t\t\tklog.V(1).InfoS(\"Feature gate updated state\", \"feature\", feature, \"enabled\", featureState)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tklog.V(1).InfoS(\"Feature gate default state\", \"feature\", feature, \"enabled\", featureSpec.Default)\n\t\t}\n\t})\n\treturn f.enabledViaEnvVar.Load().(map[Feature]bool)\n}\n\nfunc (f *envVarFeatureGates) wasFeatureEnabledViaSetMethod(key Feature) (bool, bool) {\n\tf.lockEnabledViaSetMethod.RLock()\n\tdefer f.lockEnabledViaSetMethod.RUnlock()\n\n\tvalue, found := f.enabledViaSetMethod[key]\n\treturn value, found\n}\n\nfunc (f *envVarFeatureGates) hasAlreadyReadEnvVar() bool {\n\treturn f.readEnvVars.Load()\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/features/features.go",
    "content": "/*\nCopyright 2024 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage features\n\nimport (\n\t\"errors\"\n\t\"sync/atomic\"\n\n\tutilruntime \"k8s.io/apimachinery/pkg/util/runtime\"\n)\n\n// NOTE: types Feature, FeatureSpec, prerelease (and its values)\n// were duplicated from the component-base repository\n//\n// for more information please refer to https://docs.google.com/document/d/1g9BGCRw-7ucUxO6OtCWbb3lfzUGA_uU9178wLdXAIfs\n\nconst (\n\t// Values for PreRelease.\n\tAlpha = prerelease(\"ALPHA\")\n\tBeta  = prerelease(\"BETA\")\n\tGA    = prerelease(\"\")\n\n\t// Deprecated\n\tDeprecated = prerelease(\"DEPRECATED\")\n)\n\ntype prerelease string\n\ntype Feature string\n\ntype FeatureSpec struct {\n\t// Default is the default enablement state for the feature\n\tDefault bool\n\t// LockToDefault indicates that the feature is locked to its default and cannot be changed\n\tLockToDefault bool\n\t// PreRelease indicates the maturity level of the feature\n\tPreRelease prerelease\n}\n\n// Gates indicates whether a given feature is enabled or not.\ntype Gates interface {\n\t// Enabled returns true if the key is enabled.\n\tEnabled(key Feature) bool\n}\n\n// Registry represents an external feature gates registry.\ntype Registry interface {\n\t// Add adds existing feature gates to the provided registry.\n\t//\n\t// As of today, this method is used by AddFeaturesToExistingFeatureGates and\n\t// ReplaceFeatureGates to take control of the features exposed by this library.\n\tAdd(map[Feature]FeatureSpec) error\n}\n\n// FeatureGates returns the feature gates exposed by this library.\n//\n// By default, only the default features gates will be returned.\n// The default implementation allows controlling the features\n// via environmental variables.\n// For example, if you have a feature named \"MyFeature\"\n// setting an environmental variable \"KUBE_FEATURE_MyFeature\"\n// will allow you to configure the state of that feature.\n//\n// Please note that the actual set of the feature gates\n// might be overwritten by calling ReplaceFeatureGates method.\nfunc FeatureGates() Gates {\n\treturn featureGates.Load().(*featureGatesWrapper).Gates\n}\n\n// AddFeaturesToExistingFeatureGates adds the default feature gates to the provided registry.\n// Usually this function is combined with ReplaceFeatureGates to take control of the\n// features exposed by this library.\nfunc AddFeaturesToExistingFeatureGates(registry Registry) error {\n\treturn registry.Add(defaultKubernetesFeatureGates)\n}\n\n// ReplaceFeatureGates overwrites the default implementation of the feature gates\n// used by this library.\n//\n// Useful for binaries that would like to have full control of the features\n// exposed by this library, such as allowing consumers of a binary\n// to interact with the features via a command line flag.\n//\n// For example:\n//\n//\t// first, register client-go's features to your registry.\n//\tclientgofeaturegate.AddFeaturesToExistingFeatureGates(utilfeature.DefaultMutableFeatureGate)\n//\t// then replace client-go's feature gates implementation with your implementation\n//\tclientgofeaturegate.ReplaceFeatureGates(utilfeature.DefaultMutableFeatureGate)\nfunc ReplaceFeatureGates(newFeatureGates Gates) {\n\tif replaceFeatureGatesWithWarningIndicator(newFeatureGates) {\n\t\tutilruntime.HandleError(errors.New(\"the default feature gates implementation has already been used and now it's being overwritten. This might lead to unexpected behaviour. Check your initialization order\"))\n\t}\n}\n\nfunc replaceFeatureGatesWithWarningIndicator(newFeatureGates Gates) bool {\n\tshouldProduceWarning := false\n\n\tif defaultFeatureGates, ok := FeatureGates().(*envVarFeatureGates); ok {\n\t\tif defaultFeatureGates.hasAlreadyReadEnvVar() {\n\t\t\tshouldProduceWarning = true\n\t\t}\n\t}\n\twrappedFeatureGates := &featureGatesWrapper{newFeatureGates}\n\tfeatureGates.Store(wrappedFeatureGates)\n\n\treturn shouldProduceWarning\n}\n\nfunc init() {\n\tenvVarGates := newEnvVarFeatureGates(defaultKubernetesFeatureGates)\n\n\twrappedFeatureGates := &featureGatesWrapper{envVarGates}\n\tfeatureGates.Store(wrappedFeatureGates)\n}\n\n// featureGatesWrapper a thin wrapper to satisfy featureGates variable (atomic.Value).\n// That is, all calls to Store for a given Value must use values of the same concrete type.\ntype featureGatesWrapper struct {\n\tGates\n}\n\nvar (\n\t// featureGates is a shared global FeatureGates.\n\t//\n\t// Top-level commands/options setup that needs to modify this feature gates\n\t// should use AddFeaturesToExistingFeatureGates followed by ReplaceFeatureGates.\n\tfeatureGates = &atomic.Value{}\n)\n"
  },
  {
    "path": "vendor/k8s.io/client-go/features/known_features.go",
    "content": "/*\nCopyright 2024 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage features\n\nconst (\n\t// Every feature gate should add method here following this template:\n\t//\n\t// // owner: @username\n\t// // alpha: v1.4\n\t// MyFeature featuregate.Feature = \"MyFeature\"\n\t//\n\t// Feature gates should be listed in alphabetical, case-sensitive\n\t// (upper before any lower case character) order. This reduces the risk\n\t// of code conflicts because changes are more likely to be scattered\n\t// across the file.\n\n\t// owner: @benluddy\n\t// kep: https://kep.k8s.io/4222\n\t// alpha: 1.32\n\t//\n\t// If disabled, clients configured to accept \"application/cbor\" will instead accept\n\t// \"application/json\" with the same relative preference, and clients configured to write\n\t// \"application/cbor\" or \"application/apply-patch+cbor\" will instead write\n\t// \"application/json\" or \"application/apply-patch+yaml\", respectively.\n\tClientsAllowCBOR Feature = \"ClientsAllowCBOR\"\n\n\t// owner: @benluddy\n\t// kep: https://kep.k8s.io/4222\n\t// alpha: 1.32\n\t//\n\t// If enabled, and only if ClientsAllowCBOR is also enabled, the default request content\n\t// type (if not explicitly configured) and the dynamic client's request content type both\n\t// become \"application/cbor\" instead of \"application/json\". The default content type for\n\t// apply patch requests becomes \"application/apply-patch+cbor\" instead of\n\t// \"application/apply-patch+yaml\".\n\tClientsPreferCBOR Feature = \"ClientsPreferCBOR\"\n\n\t// owner: @nilekhc\n\t// alpha: v1.30\n\tInformerResourceVersion Feature = \"InformerResourceVersion\"\n\n\t// owner: @p0lyn0mial\n\t// beta: v1.30\n\t//\n\t// Allow the client to get a stream of individual items instead of chunking from the server.\n\t//\n\t// NOTE:\n\t//  The feature is disabled in Beta by default because\n\t//  it will only be turned on for selected control plane component(s).\n\tWatchListClient Feature = \"WatchListClient\"\n)\n\n// defaultKubernetesFeatureGates consists of all known Kubernetes-specific feature keys.\n//\n// To add a new feature, define a key for it above and add it here.\n// After registering with the binary, the features are, by default, controllable using environment variables.\n// For more details, please see envVarFeatureGates implementation.\nvar defaultKubernetesFeatureGates = map[Feature]FeatureSpec{\n\tClientsAllowCBOR:        {Default: false, PreRelease: Alpha},\n\tClientsPreferCBOR:       {Default: false, PreRelease: Alpha},\n\tInformerResourceVersion: {Default: false, PreRelease: Alpha},\n\tWatchListClient:         {Default: false, PreRelease: Beta},\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/gentype/fake.go",
    "content": "/*\nCopyright 2024 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage gentype\n\nimport (\n\t\"context\"\n\tjson \"encoding/json\"\n\t\"fmt\"\n\n\t\"k8s.io/apimachinery/pkg/api/meta\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// FakeClient represents a fake client\ntype FakeClient[T objectWithMeta] struct {\n\t*testing.Fake\n\tns        string\n\tresource  schema.GroupVersionResource\n\tkind      schema.GroupVersionKind\n\tnewObject func() T\n}\n\n// FakeClientWithList represents a fake client with support for lists.\ntype FakeClientWithList[T objectWithMeta, L runtime.Object] struct {\n\t*FakeClient[T]\n\talsoFakeLister[T, L]\n}\n\n// FakeClientWithApply represents a fake client with support for apply declarative configurations.\ntype FakeClientWithApply[T objectWithMeta, C namedObject] struct {\n\t*FakeClient[T]\n\talsoFakeApplier[T, C]\n}\n\n// FakeClientWithListAndApply represents a fake client with support for lists and apply declarative configurations.\ntype FakeClientWithListAndApply[T objectWithMeta, L runtime.Object, C namedObject] struct {\n\t*FakeClient[T]\n\talsoFakeLister[T, L]\n\talsoFakeApplier[T, C]\n}\n\n// Helper types for composition\ntype alsoFakeLister[T objectWithMeta, L runtime.Object] struct {\n\tclient       *FakeClient[T]\n\tnewList      func() L\n\tcopyListMeta func(L, L)\n\tgetItems     func(L) []T\n\tsetItems     func(L, []T)\n}\n\ntype alsoFakeApplier[T objectWithMeta, C namedObject] struct {\n\tclient *FakeClient[T]\n}\n\n// NewFakeClient constructs a fake client, namespaced or not, with no support for lists or apply.\n// Non-namespaced clients are constructed by passing an empty namespace (\"\").\nfunc NewFakeClient[T objectWithMeta](\n\tfake *testing.Fake, namespace string, resource schema.GroupVersionResource, kind schema.GroupVersionKind, emptyObjectCreator func() T,\n) *FakeClient[T] {\n\treturn &FakeClient[T]{fake, namespace, resource, kind, emptyObjectCreator}\n}\n\n// NewFakeClientWithList constructs a namespaced client with support for lists.\nfunc NewFakeClientWithList[T objectWithMeta, L runtime.Object](\n\tfake *testing.Fake, namespace string, resource schema.GroupVersionResource, kind schema.GroupVersionKind, emptyObjectCreator func() T,\n\temptyListCreator func() L, listMetaCopier func(L, L), itemGetter func(L) []T, itemSetter func(L, []T),\n) *FakeClientWithList[T, L] {\n\tfakeClient := NewFakeClient[T](fake, namespace, resource, kind, emptyObjectCreator)\n\treturn &FakeClientWithList[T, L]{\n\t\tfakeClient,\n\t\talsoFakeLister[T, L]{fakeClient, emptyListCreator, listMetaCopier, itemGetter, itemSetter},\n\t}\n}\n\n// NewFakeClientWithApply constructs a namespaced client with support for apply declarative configurations.\nfunc NewFakeClientWithApply[T objectWithMeta, C namedObject](\n\tfake *testing.Fake, namespace string, resource schema.GroupVersionResource, kind schema.GroupVersionKind, emptyObjectCreator func() T,\n) *FakeClientWithApply[T, C] {\n\tfakeClient := NewFakeClient[T](fake, namespace, resource, kind, emptyObjectCreator)\n\treturn &FakeClientWithApply[T, C]{\n\t\tfakeClient,\n\t\talsoFakeApplier[T, C]{fakeClient},\n\t}\n}\n\n// NewFakeClientWithListAndApply constructs a client with support for lists and applying declarative configurations.\nfunc NewFakeClientWithListAndApply[T objectWithMeta, L runtime.Object, C namedObject](\n\tfake *testing.Fake, namespace string, resource schema.GroupVersionResource, kind schema.GroupVersionKind, emptyObjectCreator func() T,\n\temptyListCreator func() L, listMetaCopier func(L, L), itemGetter func(L) []T, itemSetter func(L, []T),\n) *FakeClientWithListAndApply[T, L, C] {\n\tfakeClient := NewFakeClient[T](fake, namespace, resource, kind, emptyObjectCreator)\n\treturn &FakeClientWithListAndApply[T, L, C]{\n\t\tfakeClient,\n\t\talsoFakeLister[T, L]{fakeClient, emptyListCreator, listMetaCopier, itemGetter, itemSetter},\n\t\talsoFakeApplier[T, C]{fakeClient},\n\t}\n}\n\n// Get takes name of a resource, and returns the corresponding object, and an error if there is any.\nfunc (c *FakeClient[T]) Get(ctx context.Context, name string, options metav1.GetOptions) (T, error) {\n\temptyResult := c.newObject()\n\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetActionWithOptions(c.resource, c.ns, name, options), emptyResult)\n\tif obj == nil {\n\t\treturn emptyResult, err\n\t}\n\treturn obj.(T), err\n}\n\nfunc ToPointerSlice[T any](src []T) []*T {\n\tif src == nil {\n\t\treturn nil\n\t}\n\tresult := make([]*T, len(src))\n\tfor i := range src {\n\t\tresult[i] = &src[i]\n\t}\n\treturn result\n}\n\nfunc FromPointerSlice[T any](src []*T) []T {\n\tif src == nil {\n\t\treturn nil\n\t}\n\tresult := make([]T, len(src))\n\tfor i := range src {\n\t\tresult[i] = *src[i]\n\t}\n\treturn result\n}\n\n// List takes label and field selectors, and returns the list of resources that match those selectors.\nfunc (l *alsoFakeLister[T, L]) List(ctx context.Context, opts metav1.ListOptions) (result L, err error) {\n\temptyResult := l.newList()\n\tobj, err := l.client.Fake.\n\t\tInvokes(testing.NewListActionWithOptions(l.client.resource, l.client.kind, l.client.ns, opts), emptyResult)\n\tif obj == nil {\n\t\treturn emptyResult, err\n\t}\n\n\tlabel, _, _ := testing.ExtractFromListOptions(opts)\n\tif label == nil {\n\t\t// Everything matches\n\t\treturn obj.(L), nil\n\t}\n\tlist := l.newList()\n\tl.copyListMeta(list, obj.(L))\n\tvar items []T\n\tfor _, item := range l.getItems(obj.(L)) {\n\t\titemMeta, err := meta.Accessor(item)\n\t\tif err != nil {\n\t\t\t// No ObjectMeta, nothing can match\n\t\t\tcontinue\n\t\t}\n\t\tif label.Matches(labels.Set(itemMeta.GetLabels())) {\n\t\t\titems = append(items, item)\n\t\t}\n\t}\n\tl.setItems(list, items)\n\treturn list, err\n}\n\n// Watch returns a watch.Interface that watches the requested resources.\nfunc (c *FakeClient[T]) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\treturn c.Fake.\n\t\tInvokesWatch(testing.NewWatchActionWithOptions(c.resource, c.ns, opts))\n}\n\n// Create takes the representation of a resource and creates it.  Returns the server's representation of the resource, and an error, if there is any.\nfunc (c *FakeClient[T]) Create(ctx context.Context, resource T, opts metav1.CreateOptions) (result T, err error) {\n\temptyResult := c.newObject()\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateActionWithOptions(c.resource, c.ns, resource, opts), emptyResult)\n\tif obj == nil {\n\t\treturn emptyResult, err\n\t}\n\treturn obj.(T), err\n}\n\n// Update takes the representation of a resource and updates it. Returns the server's representation of the resource, and an error, if there is any.\nfunc (c *FakeClient[T]) Update(ctx context.Context, resource T, opts metav1.UpdateOptions) (result T, err error) {\n\temptyResult := c.newObject()\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateActionWithOptions(c.resource, c.ns, resource, opts), emptyResult)\n\tif obj == nil {\n\t\treturn emptyResult, err\n\t}\n\treturn obj.(T), err\n}\n\n// UpdateStatus updates the resource's status and returns the updated resource.\nfunc (c *FakeClient[T]) UpdateStatus(ctx context.Context, resource T, opts metav1.UpdateOptions) (result T, err error) {\n\temptyResult := c.newObject()\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceActionWithOptions(c.resource, \"status\", c.ns, resource, opts), emptyResult)\n\n\tif obj == nil {\n\t\treturn emptyResult, err\n\t}\n\treturn obj.(T), err\n}\n\n// Delete deletes the resource matching the given name. Returns an error if one occurs.\nfunc (c *FakeClient[T]) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\t_, err := c.Fake.\n\t\tInvokes(testing.NewDeleteActionWithOptions(c.resource, c.ns, name, opts), c.newObject())\n\treturn err\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (l *alsoFakeLister[T, L]) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\t_, err := l.client.Fake.\n\t\tInvokes(testing.NewDeleteCollectionActionWithOptions(l.client.resource, l.client.ns, opts, listOpts), l.newList())\n\treturn err\n}\n\n// Patch applies the patch and returns the patched resource.\nfunc (c *FakeClient[T]) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result T, err error) {\n\temptyResult := c.newObject()\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceActionWithOptions(c.resource, c.ns, name, pt, data, opts, subresources...), emptyResult)\n\tif obj == nil {\n\t\treturn emptyResult, err\n\t}\n\treturn obj.(T), err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied resource.\nfunc (a *alsoFakeApplier[T, C]) Apply(ctx context.Context, configuration C, opts metav1.ApplyOptions) (result T, err error) {\n\tif configuration == *new(C) {\n\t\treturn *new(T), fmt.Errorf(\"configuration provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(configuration)\n\tif err != nil {\n\t\treturn *new(T), err\n\t}\n\tname := configuration.GetName()\n\tif name == nil {\n\t\treturn *new(T), fmt.Errorf(\"configuration.Name must be provided to Apply\")\n\t}\n\temptyResult := a.client.newObject()\n\tobj, err := a.client.Fake.\n\t\tInvokes(testing.NewPatchSubresourceActionWithOptions(a.client.resource, a.client.ns, *name, types.ApplyPatchType, data, opts.ToPatchOptions()), emptyResult)\n\tif obj == nil {\n\t\treturn emptyResult, err\n\t}\n\treturn obj.(T), err\n}\n\n// ApplyStatus applies the given apply declarative configuration to the resource's status and returns the updated resource.\nfunc (a *alsoFakeApplier[T, C]) ApplyStatus(ctx context.Context, configuration C, opts metav1.ApplyOptions) (result T, err error) {\n\tif configuration == *new(C) {\n\t\treturn *new(T), fmt.Errorf(\"configuration provided to Apply must not be nil\")\n\t}\n\tdata, err := json.Marshal(configuration)\n\tif err != nil {\n\t\treturn *new(T), err\n\t}\n\tname := configuration.GetName()\n\tif name == nil {\n\t\treturn *new(T), fmt.Errorf(\"configuration.Name must be provided to Apply\")\n\t}\n\temptyResult := a.client.newObject()\n\tobj, err := a.client.Fake.\n\t\tInvokes(testing.NewPatchSubresourceActionWithOptions(a.client.resource, a.client.ns, *name, types.ApplyPatchType, data, opts.ToPatchOptions(), \"status\"), emptyResult)\n\n\tif obj == nil {\n\t\treturn emptyResult, err\n\t}\n\treturn obj.(T), err\n}\n\nfunc (c *FakeClient[T]) Namespace() string {\n\treturn c.ns\n}\n\nfunc (c *FakeClient[T]) Kind() schema.GroupVersionKind {\n\treturn c.kind\n}\n\nfunc (c *FakeClient[T]) Resource() schema.GroupVersionResource {\n\treturn c.resource\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/gentype/type.go",
    "content": "/*\nCopyright 2024 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage gentype\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"time\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\trest \"k8s.io/client-go/rest\"\n\t\"k8s.io/client-go/util/apply\"\n\t\"k8s.io/client-go/util/consistencydetector\"\n\t\"k8s.io/client-go/util/watchlist\"\n\t\"k8s.io/klog/v2\"\n)\n\n// objectWithMeta matches objects implementing both runtime.Object and metav1.Object.\ntype objectWithMeta interface {\n\truntime.Object\n\tmetav1.Object\n}\n\n// namedObject matches comparable objects implementing GetName(); it is intended for use with apply declarative configurations.\ntype namedObject interface {\n\tcomparable\n\tGetName() *string\n}\n\n// Client represents a client, optionally namespaced, with no support for lists or apply declarative configurations.\ntype Client[T objectWithMeta] struct {\n\tresource       string\n\tclient         rest.Interface\n\tnamespace      string // \"\" for non-namespaced clients\n\tnewObject      func() T\n\tparameterCodec runtime.ParameterCodec\n\n\tprefersProtobuf bool\n}\n\n// ClientWithList represents a client with support for lists.\ntype ClientWithList[T objectWithMeta, L runtime.Object] struct {\n\t*Client[T]\n\talsoLister[T, L]\n}\n\n// ClientWithApply represents a client with support for apply declarative configurations.\ntype ClientWithApply[T objectWithMeta, C namedObject] struct {\n\t*Client[T]\n\talsoApplier[T, C]\n}\n\n// ClientWithListAndApply represents a client with support for lists and apply declarative configurations.\ntype ClientWithListAndApply[T objectWithMeta, L runtime.Object, C namedObject] struct {\n\t*Client[T]\n\talsoLister[T, L]\n\talsoApplier[T, C]\n}\n\n// Helper types for composition\ntype alsoLister[T objectWithMeta, L runtime.Object] struct {\n\tclient  *Client[T]\n\tnewList func() L\n}\n\ntype alsoApplier[T objectWithMeta, C namedObject] struct {\n\tclient *Client[T]\n}\n\ntype Option[T objectWithMeta] func(*Client[T])\n\nfunc PrefersProtobuf[T objectWithMeta]() Option[T] {\n\treturn func(c *Client[T]) { c.prefersProtobuf = true }\n}\n\n// NewClient constructs a client, namespaced or not, with no support for lists or apply.\n// Non-namespaced clients are constructed by passing an empty namespace (\"\").\nfunc NewClient[T objectWithMeta](\n\tresource string, client rest.Interface, parameterCodec runtime.ParameterCodec, namespace string, emptyObjectCreator func() T,\n\toptions ...Option[T],\n) *Client[T] {\n\tc := &Client[T]{\n\t\tresource:       resource,\n\t\tclient:         client,\n\t\tparameterCodec: parameterCodec,\n\t\tnamespace:      namespace,\n\t\tnewObject:      emptyObjectCreator,\n\t}\n\tfor _, option := range options {\n\t\toption(c)\n\t}\n\treturn c\n}\n\n// NewClientWithList constructs a namespaced client with support for lists.\nfunc NewClientWithList[T objectWithMeta, L runtime.Object](\n\tresource string, client rest.Interface, parameterCodec runtime.ParameterCodec, namespace string, emptyObjectCreator func() T,\n\temptyListCreator func() L, options ...Option[T],\n) *ClientWithList[T, L] {\n\ttypeClient := NewClient[T](resource, client, parameterCodec, namespace, emptyObjectCreator, options...)\n\treturn &ClientWithList[T, L]{\n\t\ttypeClient,\n\t\talsoLister[T, L]{typeClient, emptyListCreator},\n\t}\n}\n\n// NewClientWithApply constructs a namespaced client with support for apply declarative configurations.\nfunc NewClientWithApply[T objectWithMeta, C namedObject](\n\tresource string, client rest.Interface, parameterCodec runtime.ParameterCodec, namespace string, emptyObjectCreator func() T,\n\toptions ...Option[T],\n) *ClientWithApply[T, C] {\n\ttypeClient := NewClient[T](resource, client, parameterCodec, namespace, emptyObjectCreator, options...)\n\treturn &ClientWithApply[T, C]{\n\t\ttypeClient,\n\t\talsoApplier[T, C]{typeClient},\n\t}\n}\n\n// NewClientWithListAndApply constructs a client with support for lists and applying declarative configurations.\nfunc NewClientWithListAndApply[T objectWithMeta, L runtime.Object, C namedObject](\n\tresource string, client rest.Interface, parameterCodec runtime.ParameterCodec, namespace string, emptyObjectCreator func() T,\n\temptyListCreator func() L, options ...Option[T],\n) *ClientWithListAndApply[T, L, C] {\n\ttypeClient := NewClient[T](resource, client, parameterCodec, namespace, emptyObjectCreator, options...)\n\treturn &ClientWithListAndApply[T, L, C]{\n\t\ttypeClient,\n\t\talsoLister[T, L]{typeClient, emptyListCreator},\n\t\talsoApplier[T, C]{typeClient},\n\t}\n}\n\n// GetClient returns the REST interface.\nfunc (c *Client[T]) GetClient() rest.Interface {\n\treturn c.client\n}\n\n// GetNamespace returns the client's namespace, if any.\nfunc (c *Client[T]) GetNamespace() string {\n\treturn c.namespace\n}\n\n// Get takes name of the resource, and returns the corresponding object, and an error if there is any.\nfunc (c *Client[T]) Get(ctx context.Context, name string, options metav1.GetOptions) (T, error) {\n\tresult := c.newObject()\n\terr := c.client.Get().\n\t\tUseProtobufAsDefaultIfPreferred(c.prefersProtobuf).\n\t\tNamespaceIfScoped(c.namespace, c.namespace != \"\").\n\t\tResource(c.resource).\n\t\tName(name).\n\t\tVersionedParams(&options, c.parameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn result, err\n}\n\n// List takes label and field selectors, and returns the list of resources that match those selectors.\nfunc (l *alsoLister[T, L]) List(ctx context.Context, opts metav1.ListOptions) (L, error) {\n\tif watchListOptions, hasWatchListOptionsPrepared, watchListOptionsErr := watchlist.PrepareWatchListOptionsFromListOptions(opts); watchListOptionsErr != nil {\n\t\tklog.Warningf(\"Failed preparing watchlist options for $.type|resource$, falling back to the standard LIST semantics, err = %v\", watchListOptionsErr)\n\t} else if hasWatchListOptionsPrepared {\n\t\tresult, err := l.watchList(ctx, watchListOptions)\n\t\tif err == nil {\n\t\t\tconsistencydetector.CheckWatchListFromCacheDataConsistencyIfRequested(ctx, \"watchlist request for \"+l.client.resource, l.list, opts, result)\n\t\t\treturn result, nil\n\t\t}\n\t\tklog.Warningf(\"The watchlist request for %s ended with an error, falling back to the standard LIST semantics, err = %v\", l.client.resource, err)\n\t}\n\tresult, err := l.list(ctx, opts)\n\tif err == nil {\n\t\tconsistencydetector.CheckListFromCacheDataConsistencyIfRequested(ctx, \"list request for \"+l.client.resource, l.list, opts, result)\n\t}\n\treturn result, err\n}\n\nfunc (l *alsoLister[T, L]) list(ctx context.Context, opts metav1.ListOptions) (L, error) {\n\tlist := l.newList()\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\terr := l.client.client.Get().\n\t\tUseProtobufAsDefaultIfPreferred(l.client.prefersProtobuf).\n\t\tNamespaceIfScoped(l.client.namespace, l.client.namespace != \"\").\n\t\tResource(l.client.resource).\n\t\tVersionedParams(&opts, l.client.parameterCodec).\n\t\tTimeout(timeout).\n\t\tDo(ctx).\n\t\tInto(list)\n\treturn list, err\n}\n\n// watchList establishes a watch stream with the server and returns the list of resources.\nfunc (l *alsoLister[T, L]) watchList(ctx context.Context, opts metav1.ListOptions) (result L, err error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\tresult = l.newList()\n\terr = l.client.client.Get().\n\t\tUseProtobufAsDefaultIfPreferred(l.client.prefersProtobuf).\n\t\tNamespaceIfScoped(l.client.namespace, l.client.namespace != \"\").\n\t\tResource(l.client.resource).\n\t\tVersionedParams(&opts, l.client.parameterCodec).\n\t\tTimeout(timeout).\n\t\tWatchList(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// Watch returns a watch.Interface that watches the requested resources.\nfunc (c *Client[T]) Watch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error) {\n\tvar timeout time.Duration\n\tif opts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*opts.TimeoutSeconds) * time.Second\n\t}\n\topts.Watch = true\n\treturn c.client.Get().\n\t\tUseProtobufAsDefaultIfPreferred(c.prefersProtobuf).\n\t\tNamespaceIfScoped(c.namespace, c.namespace != \"\").\n\t\tResource(c.resource).\n\t\tVersionedParams(&opts, c.parameterCodec).\n\t\tTimeout(timeout).\n\t\tWatch(ctx)\n}\n\n// Create takes the representation of a resource and creates it.  Returns the server's representation of the resource, and an error, if there is any.\nfunc (c *Client[T]) Create(ctx context.Context, obj T, opts metav1.CreateOptions) (T, error) {\n\tresult := c.newObject()\n\terr := c.client.Post().\n\t\tUseProtobufAsDefaultIfPreferred(c.prefersProtobuf).\n\t\tNamespaceIfScoped(c.namespace, c.namespace != \"\").\n\t\tResource(c.resource).\n\t\tVersionedParams(&opts, c.parameterCodec).\n\t\tBody(obj).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn result, err\n}\n\n// Update takes the representation of a resource and updates it. Returns the server's representation of the resource, and an error, if there is any.\nfunc (c *Client[T]) Update(ctx context.Context, obj T, opts metav1.UpdateOptions) (T, error) {\n\tresult := c.newObject()\n\terr := c.client.Put().\n\t\tUseProtobufAsDefaultIfPreferred(c.prefersProtobuf).\n\t\tNamespaceIfScoped(c.namespace, c.namespace != \"\").\n\t\tResource(c.resource).\n\t\tName(obj.GetName()).\n\t\tVersionedParams(&opts, c.parameterCodec).\n\t\tBody(obj).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn result, err\n}\n\n// UpdateStatus updates the status subresource of a resource. Returns the server's representation of the resource, and an error, if there is any.\nfunc (c *Client[T]) UpdateStatus(ctx context.Context, obj T, opts metav1.UpdateOptions) (T, error) {\n\tresult := c.newObject()\n\terr := c.client.Put().\n\t\tUseProtobufAsDefaultIfPreferred(c.prefersProtobuf).\n\t\tNamespaceIfScoped(c.namespace, c.namespace != \"\").\n\t\tResource(c.resource).\n\t\tName(obj.GetName()).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&opts, c.parameterCodec).\n\t\tBody(obj).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn result, err\n}\n\n// Delete takes name of the resource and deletes it. Returns an error if one occurs.\nfunc (c *Client[T]) Delete(ctx context.Context, name string, opts metav1.DeleteOptions) error {\n\treturn c.client.Delete().\n\t\tUseProtobufAsDefaultIfPreferred(c.prefersProtobuf).\n\t\tNamespaceIfScoped(c.namespace, c.namespace != \"\").\n\t\tResource(c.resource).\n\t\tName(name).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// DeleteCollection deletes a collection of objects.\nfunc (l *alsoLister[T, L]) DeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error {\n\tvar timeout time.Duration\n\tif listOpts.TimeoutSeconds != nil {\n\t\ttimeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second\n\t}\n\treturn l.client.client.Delete().\n\t\tUseProtobufAsDefaultIfPreferred(l.client.prefersProtobuf).\n\t\tNamespaceIfScoped(l.client.namespace, l.client.namespace != \"\").\n\t\tResource(l.client.resource).\n\t\tVersionedParams(&listOpts, l.client.parameterCodec).\n\t\tTimeout(timeout).\n\t\tBody(&opts).\n\t\tDo(ctx).\n\t\tError()\n}\n\n// Patch applies the patch and returns the patched resource.\nfunc (c *Client[T]) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (T, error) {\n\tresult := c.newObject()\n\terr := c.client.Patch(pt).\n\t\tUseProtobufAsDefaultIfPreferred(c.prefersProtobuf).\n\t\tNamespaceIfScoped(c.namespace, c.namespace != \"\").\n\t\tResource(c.resource).\n\t\tName(name).\n\t\tSubResource(subresources...).\n\t\tVersionedParams(&opts, c.parameterCodec).\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn result, err\n}\n\n// Apply takes the given apply declarative configuration, applies it and returns the applied resource.\nfunc (a *alsoApplier[T, C]) Apply(ctx context.Context, obj C, opts metav1.ApplyOptions) (T, error) {\n\tresult := a.client.newObject()\n\tif obj == *new(C) {\n\t\treturn *new(T), fmt.Errorf(\"object provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\tif obj.GetName() == nil {\n\t\treturn *new(T), fmt.Errorf(\"obj.Name must be provided to Apply\")\n\t}\n\n\trequest, err := apply.NewRequest(a.client.client, obj)\n\tif err != nil {\n\t\treturn *new(T), err\n\t}\n\n\terr = request.\n\t\tUseProtobufAsDefaultIfPreferred(a.client.prefersProtobuf).\n\t\tNamespaceIfScoped(a.client.namespace, a.client.namespace != \"\").\n\t\tResource(a.client.resource).\n\t\tName(*obj.GetName()).\n\t\tVersionedParams(&patchOpts, a.client.parameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn result, err\n}\n\n// Apply takes the given apply declarative configuration, applies it to the status subresource and returns the applied resource.\nfunc (a *alsoApplier[T, C]) ApplyStatus(ctx context.Context, obj C, opts metav1.ApplyOptions) (T, error) {\n\tif obj == *new(C) {\n\t\treturn *new(T), fmt.Errorf(\"object provided to Apply must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\n\tif obj.GetName() == nil {\n\t\treturn *new(T), fmt.Errorf(\"obj.Name must be provided to Apply\")\n\t}\n\n\trequest, err := apply.NewRequest(a.client.client, obj)\n\tif err != nil {\n\t\treturn *new(T), err\n\t}\n\n\tresult := a.client.newObject()\n\terr = request.\n\t\tUseProtobufAsDefaultIfPreferred(a.client.prefersProtobuf).\n\t\tNamespaceIfScoped(a.client.namespace, a.client.namespace != \"\").\n\t\tResource(a.client.resource).\n\t\tName(*obj.GetName()).\n\t\tSubResource(\"status\").\n\t\tVersionedParams(&patchOpts, a.client.parameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn result, err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/admissionregistration/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage admissionregistration\n\nimport (\n\tv1 \"k8s.io/client-go/informers/admissionregistration/v1\"\n\tv1alpha1 \"k8s.io/client-go/informers/admissionregistration/v1alpha1\"\n\tv1beta1 \"k8s.io/client-go/informers/admissionregistration/v1beta1\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to each of this group's versions.\ntype Interface interface {\n\t// V1 provides access to shared informers for resources in V1.\n\tV1() v1.Interface\n\t// V1alpha1 provides access to shared informers for resources in V1alpha1.\n\tV1alpha1() v1alpha1.Interface\n\t// V1beta1 provides access to shared informers for resources in V1beta1.\n\tV1beta1() v1beta1.Interface\n}\n\ntype group struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// V1 returns a new v1.Interface.\nfunc (g *group) V1() v1.Interface {\n\treturn v1.New(g.factory, g.namespace, g.tweakListOptions)\n}\n\n// V1alpha1 returns a new v1alpha1.Interface.\nfunc (g *group) V1alpha1() v1alpha1.Interface {\n\treturn v1alpha1.New(g.factory, g.namespace, g.tweakListOptions)\n}\n\n// V1beta1 returns a new v1beta1.Interface.\nfunc (g *group) V1beta1() v1beta1.Interface {\n\treturn v1beta1.New(g.factory, g.namespace, g.tweakListOptions)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/admissionregistration/v1/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// MutatingWebhookConfigurations returns a MutatingWebhookConfigurationInformer.\n\tMutatingWebhookConfigurations() MutatingWebhookConfigurationInformer\n\t// ValidatingAdmissionPolicies returns a ValidatingAdmissionPolicyInformer.\n\tValidatingAdmissionPolicies() ValidatingAdmissionPolicyInformer\n\t// ValidatingAdmissionPolicyBindings returns a ValidatingAdmissionPolicyBindingInformer.\n\tValidatingAdmissionPolicyBindings() ValidatingAdmissionPolicyBindingInformer\n\t// ValidatingWebhookConfigurations returns a ValidatingWebhookConfigurationInformer.\n\tValidatingWebhookConfigurations() ValidatingWebhookConfigurationInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// MutatingWebhookConfigurations returns a MutatingWebhookConfigurationInformer.\nfunc (v *version) MutatingWebhookConfigurations() MutatingWebhookConfigurationInformer {\n\treturn &mutatingWebhookConfigurationInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n\n// ValidatingAdmissionPolicies returns a ValidatingAdmissionPolicyInformer.\nfunc (v *version) ValidatingAdmissionPolicies() ValidatingAdmissionPolicyInformer {\n\treturn &validatingAdmissionPolicyInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n\n// ValidatingAdmissionPolicyBindings returns a ValidatingAdmissionPolicyBindingInformer.\nfunc (v *version) ValidatingAdmissionPolicyBindings() ValidatingAdmissionPolicyBindingInformer {\n\treturn &validatingAdmissionPolicyBindingInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n\n// ValidatingWebhookConfigurations returns a ValidatingWebhookConfigurationInformer.\nfunc (v *version) ValidatingWebhookConfigurations() ValidatingWebhookConfigurationInformer {\n\treturn &validatingWebhookConfigurationInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/admissionregistration/v1/mutatingwebhookconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiadmissionregistrationv1 \"k8s.io/api/admissionregistration/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tadmissionregistrationv1 \"k8s.io/client-go/listers/admissionregistration/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// MutatingWebhookConfigurationInformer provides access to a shared informer and lister for\n// MutatingWebhookConfigurations.\ntype MutatingWebhookConfigurationInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() admissionregistrationv1.MutatingWebhookConfigurationLister\n}\n\ntype mutatingWebhookConfigurationInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewMutatingWebhookConfigurationInformer constructs a new informer for MutatingWebhookConfiguration type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewMutatingWebhookConfigurationInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredMutatingWebhookConfigurationInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredMutatingWebhookConfigurationInformer constructs a new informer for MutatingWebhookConfiguration type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredMutatingWebhookConfigurationInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AdmissionregistrationV1().MutatingWebhookConfigurations().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AdmissionregistrationV1().MutatingWebhookConfigurations().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiadmissionregistrationv1.MutatingWebhookConfiguration{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *mutatingWebhookConfigurationInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredMutatingWebhookConfigurationInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *mutatingWebhookConfigurationInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiadmissionregistrationv1.MutatingWebhookConfiguration{}, f.defaultInformer)\n}\n\nfunc (f *mutatingWebhookConfigurationInformer) Lister() admissionregistrationv1.MutatingWebhookConfigurationLister {\n\treturn admissionregistrationv1.NewMutatingWebhookConfigurationLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/admissionregistration/v1/validatingadmissionpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiadmissionregistrationv1 \"k8s.io/api/admissionregistration/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tadmissionregistrationv1 \"k8s.io/client-go/listers/admissionregistration/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ValidatingAdmissionPolicyInformer provides access to a shared informer and lister for\n// ValidatingAdmissionPolicies.\ntype ValidatingAdmissionPolicyInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() admissionregistrationv1.ValidatingAdmissionPolicyLister\n}\n\ntype validatingAdmissionPolicyInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewValidatingAdmissionPolicyInformer constructs a new informer for ValidatingAdmissionPolicy type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewValidatingAdmissionPolicyInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredValidatingAdmissionPolicyInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredValidatingAdmissionPolicyInformer constructs a new informer for ValidatingAdmissionPolicy type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredValidatingAdmissionPolicyInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AdmissionregistrationV1().ValidatingAdmissionPolicies().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AdmissionregistrationV1().ValidatingAdmissionPolicies().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiadmissionregistrationv1.ValidatingAdmissionPolicy{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *validatingAdmissionPolicyInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredValidatingAdmissionPolicyInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *validatingAdmissionPolicyInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiadmissionregistrationv1.ValidatingAdmissionPolicy{}, f.defaultInformer)\n}\n\nfunc (f *validatingAdmissionPolicyInformer) Lister() admissionregistrationv1.ValidatingAdmissionPolicyLister {\n\treturn admissionregistrationv1.NewValidatingAdmissionPolicyLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/admissionregistration/v1/validatingadmissionpolicybinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiadmissionregistrationv1 \"k8s.io/api/admissionregistration/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tadmissionregistrationv1 \"k8s.io/client-go/listers/admissionregistration/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ValidatingAdmissionPolicyBindingInformer provides access to a shared informer and lister for\n// ValidatingAdmissionPolicyBindings.\ntype ValidatingAdmissionPolicyBindingInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() admissionregistrationv1.ValidatingAdmissionPolicyBindingLister\n}\n\ntype validatingAdmissionPolicyBindingInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewValidatingAdmissionPolicyBindingInformer constructs a new informer for ValidatingAdmissionPolicyBinding type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewValidatingAdmissionPolicyBindingInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredValidatingAdmissionPolicyBindingInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredValidatingAdmissionPolicyBindingInformer constructs a new informer for ValidatingAdmissionPolicyBinding type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredValidatingAdmissionPolicyBindingInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AdmissionregistrationV1().ValidatingAdmissionPolicyBindings().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AdmissionregistrationV1().ValidatingAdmissionPolicyBindings().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiadmissionregistrationv1.ValidatingAdmissionPolicyBinding{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *validatingAdmissionPolicyBindingInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredValidatingAdmissionPolicyBindingInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *validatingAdmissionPolicyBindingInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiadmissionregistrationv1.ValidatingAdmissionPolicyBinding{}, f.defaultInformer)\n}\n\nfunc (f *validatingAdmissionPolicyBindingInformer) Lister() admissionregistrationv1.ValidatingAdmissionPolicyBindingLister {\n\treturn admissionregistrationv1.NewValidatingAdmissionPolicyBindingLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/admissionregistration/v1/validatingwebhookconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiadmissionregistrationv1 \"k8s.io/api/admissionregistration/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tadmissionregistrationv1 \"k8s.io/client-go/listers/admissionregistration/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ValidatingWebhookConfigurationInformer provides access to a shared informer and lister for\n// ValidatingWebhookConfigurations.\ntype ValidatingWebhookConfigurationInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() admissionregistrationv1.ValidatingWebhookConfigurationLister\n}\n\ntype validatingWebhookConfigurationInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewValidatingWebhookConfigurationInformer constructs a new informer for ValidatingWebhookConfiguration type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewValidatingWebhookConfigurationInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredValidatingWebhookConfigurationInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredValidatingWebhookConfigurationInformer constructs a new informer for ValidatingWebhookConfiguration type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredValidatingWebhookConfigurationInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AdmissionregistrationV1().ValidatingWebhookConfigurations().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AdmissionregistrationV1().ValidatingWebhookConfigurations().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiadmissionregistrationv1.ValidatingWebhookConfiguration{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *validatingWebhookConfigurationInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredValidatingWebhookConfigurationInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *validatingWebhookConfigurationInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiadmissionregistrationv1.ValidatingWebhookConfiguration{}, f.defaultInformer)\n}\n\nfunc (f *validatingWebhookConfigurationInformer) Lister() admissionregistrationv1.ValidatingWebhookConfigurationLister {\n\treturn admissionregistrationv1.NewValidatingWebhookConfigurationLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/admissionregistration/v1alpha1/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// MutatingAdmissionPolicies returns a MutatingAdmissionPolicyInformer.\n\tMutatingAdmissionPolicies() MutatingAdmissionPolicyInformer\n\t// MutatingAdmissionPolicyBindings returns a MutatingAdmissionPolicyBindingInformer.\n\tMutatingAdmissionPolicyBindings() MutatingAdmissionPolicyBindingInformer\n\t// ValidatingAdmissionPolicies returns a ValidatingAdmissionPolicyInformer.\n\tValidatingAdmissionPolicies() ValidatingAdmissionPolicyInformer\n\t// ValidatingAdmissionPolicyBindings returns a ValidatingAdmissionPolicyBindingInformer.\n\tValidatingAdmissionPolicyBindings() ValidatingAdmissionPolicyBindingInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// MutatingAdmissionPolicies returns a MutatingAdmissionPolicyInformer.\nfunc (v *version) MutatingAdmissionPolicies() MutatingAdmissionPolicyInformer {\n\treturn &mutatingAdmissionPolicyInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n\n// MutatingAdmissionPolicyBindings returns a MutatingAdmissionPolicyBindingInformer.\nfunc (v *version) MutatingAdmissionPolicyBindings() MutatingAdmissionPolicyBindingInformer {\n\treturn &mutatingAdmissionPolicyBindingInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n\n// ValidatingAdmissionPolicies returns a ValidatingAdmissionPolicyInformer.\nfunc (v *version) ValidatingAdmissionPolicies() ValidatingAdmissionPolicyInformer {\n\treturn &validatingAdmissionPolicyInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n\n// ValidatingAdmissionPolicyBindings returns a ValidatingAdmissionPolicyBindingInformer.\nfunc (v *version) ValidatingAdmissionPolicyBindings() ValidatingAdmissionPolicyBindingInformer {\n\treturn &validatingAdmissionPolicyBindingInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/admissionregistration/v1alpha1/mutatingadmissionpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiadmissionregistrationv1alpha1 \"k8s.io/api/admissionregistration/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tadmissionregistrationv1alpha1 \"k8s.io/client-go/listers/admissionregistration/v1alpha1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// MutatingAdmissionPolicyInformer provides access to a shared informer and lister for\n// MutatingAdmissionPolicies.\ntype MutatingAdmissionPolicyInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() admissionregistrationv1alpha1.MutatingAdmissionPolicyLister\n}\n\ntype mutatingAdmissionPolicyInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewMutatingAdmissionPolicyInformer constructs a new informer for MutatingAdmissionPolicy type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewMutatingAdmissionPolicyInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredMutatingAdmissionPolicyInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredMutatingAdmissionPolicyInformer constructs a new informer for MutatingAdmissionPolicy type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredMutatingAdmissionPolicyInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AdmissionregistrationV1alpha1().MutatingAdmissionPolicies().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AdmissionregistrationV1alpha1().MutatingAdmissionPolicies().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiadmissionregistrationv1alpha1.MutatingAdmissionPolicy{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *mutatingAdmissionPolicyInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredMutatingAdmissionPolicyInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *mutatingAdmissionPolicyInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiadmissionregistrationv1alpha1.MutatingAdmissionPolicy{}, f.defaultInformer)\n}\n\nfunc (f *mutatingAdmissionPolicyInformer) Lister() admissionregistrationv1alpha1.MutatingAdmissionPolicyLister {\n\treturn admissionregistrationv1alpha1.NewMutatingAdmissionPolicyLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/admissionregistration/v1alpha1/mutatingadmissionpolicybinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiadmissionregistrationv1alpha1 \"k8s.io/api/admissionregistration/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tadmissionregistrationv1alpha1 \"k8s.io/client-go/listers/admissionregistration/v1alpha1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// MutatingAdmissionPolicyBindingInformer provides access to a shared informer and lister for\n// MutatingAdmissionPolicyBindings.\ntype MutatingAdmissionPolicyBindingInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() admissionregistrationv1alpha1.MutatingAdmissionPolicyBindingLister\n}\n\ntype mutatingAdmissionPolicyBindingInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewMutatingAdmissionPolicyBindingInformer constructs a new informer for MutatingAdmissionPolicyBinding type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewMutatingAdmissionPolicyBindingInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredMutatingAdmissionPolicyBindingInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredMutatingAdmissionPolicyBindingInformer constructs a new informer for MutatingAdmissionPolicyBinding type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredMutatingAdmissionPolicyBindingInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AdmissionregistrationV1alpha1().MutatingAdmissionPolicyBindings().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AdmissionregistrationV1alpha1().MutatingAdmissionPolicyBindings().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiadmissionregistrationv1alpha1.MutatingAdmissionPolicyBinding{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *mutatingAdmissionPolicyBindingInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredMutatingAdmissionPolicyBindingInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *mutatingAdmissionPolicyBindingInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiadmissionregistrationv1alpha1.MutatingAdmissionPolicyBinding{}, f.defaultInformer)\n}\n\nfunc (f *mutatingAdmissionPolicyBindingInformer) Lister() admissionregistrationv1alpha1.MutatingAdmissionPolicyBindingLister {\n\treturn admissionregistrationv1alpha1.NewMutatingAdmissionPolicyBindingLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/admissionregistration/v1alpha1/validatingadmissionpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiadmissionregistrationv1alpha1 \"k8s.io/api/admissionregistration/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tadmissionregistrationv1alpha1 \"k8s.io/client-go/listers/admissionregistration/v1alpha1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ValidatingAdmissionPolicyInformer provides access to a shared informer and lister for\n// ValidatingAdmissionPolicies.\ntype ValidatingAdmissionPolicyInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() admissionregistrationv1alpha1.ValidatingAdmissionPolicyLister\n}\n\ntype validatingAdmissionPolicyInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewValidatingAdmissionPolicyInformer constructs a new informer for ValidatingAdmissionPolicy type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewValidatingAdmissionPolicyInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredValidatingAdmissionPolicyInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredValidatingAdmissionPolicyInformer constructs a new informer for ValidatingAdmissionPolicy type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredValidatingAdmissionPolicyInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AdmissionregistrationV1alpha1().ValidatingAdmissionPolicies().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AdmissionregistrationV1alpha1().ValidatingAdmissionPolicies().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiadmissionregistrationv1alpha1.ValidatingAdmissionPolicy{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *validatingAdmissionPolicyInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredValidatingAdmissionPolicyInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *validatingAdmissionPolicyInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiadmissionregistrationv1alpha1.ValidatingAdmissionPolicy{}, f.defaultInformer)\n}\n\nfunc (f *validatingAdmissionPolicyInformer) Lister() admissionregistrationv1alpha1.ValidatingAdmissionPolicyLister {\n\treturn admissionregistrationv1alpha1.NewValidatingAdmissionPolicyLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/admissionregistration/v1alpha1/validatingadmissionpolicybinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiadmissionregistrationv1alpha1 \"k8s.io/api/admissionregistration/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tadmissionregistrationv1alpha1 \"k8s.io/client-go/listers/admissionregistration/v1alpha1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ValidatingAdmissionPolicyBindingInformer provides access to a shared informer and lister for\n// ValidatingAdmissionPolicyBindings.\ntype ValidatingAdmissionPolicyBindingInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() admissionregistrationv1alpha1.ValidatingAdmissionPolicyBindingLister\n}\n\ntype validatingAdmissionPolicyBindingInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewValidatingAdmissionPolicyBindingInformer constructs a new informer for ValidatingAdmissionPolicyBinding type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewValidatingAdmissionPolicyBindingInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredValidatingAdmissionPolicyBindingInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredValidatingAdmissionPolicyBindingInformer constructs a new informer for ValidatingAdmissionPolicyBinding type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredValidatingAdmissionPolicyBindingInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AdmissionregistrationV1alpha1().ValidatingAdmissionPolicyBindings().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AdmissionregistrationV1alpha1().ValidatingAdmissionPolicyBindings().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiadmissionregistrationv1alpha1.ValidatingAdmissionPolicyBinding{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *validatingAdmissionPolicyBindingInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredValidatingAdmissionPolicyBindingInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *validatingAdmissionPolicyBindingInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiadmissionregistrationv1alpha1.ValidatingAdmissionPolicyBinding{}, f.defaultInformer)\n}\n\nfunc (f *validatingAdmissionPolicyBindingInformer) Lister() admissionregistrationv1alpha1.ValidatingAdmissionPolicyBindingLister {\n\treturn admissionregistrationv1alpha1.NewValidatingAdmissionPolicyBindingLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/admissionregistration/v1beta1/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// MutatingWebhookConfigurations returns a MutatingWebhookConfigurationInformer.\n\tMutatingWebhookConfigurations() MutatingWebhookConfigurationInformer\n\t// ValidatingAdmissionPolicies returns a ValidatingAdmissionPolicyInformer.\n\tValidatingAdmissionPolicies() ValidatingAdmissionPolicyInformer\n\t// ValidatingAdmissionPolicyBindings returns a ValidatingAdmissionPolicyBindingInformer.\n\tValidatingAdmissionPolicyBindings() ValidatingAdmissionPolicyBindingInformer\n\t// ValidatingWebhookConfigurations returns a ValidatingWebhookConfigurationInformer.\n\tValidatingWebhookConfigurations() ValidatingWebhookConfigurationInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// MutatingWebhookConfigurations returns a MutatingWebhookConfigurationInformer.\nfunc (v *version) MutatingWebhookConfigurations() MutatingWebhookConfigurationInformer {\n\treturn &mutatingWebhookConfigurationInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n\n// ValidatingAdmissionPolicies returns a ValidatingAdmissionPolicyInformer.\nfunc (v *version) ValidatingAdmissionPolicies() ValidatingAdmissionPolicyInformer {\n\treturn &validatingAdmissionPolicyInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n\n// ValidatingAdmissionPolicyBindings returns a ValidatingAdmissionPolicyBindingInformer.\nfunc (v *version) ValidatingAdmissionPolicyBindings() ValidatingAdmissionPolicyBindingInformer {\n\treturn &validatingAdmissionPolicyBindingInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n\n// ValidatingWebhookConfigurations returns a ValidatingWebhookConfigurationInformer.\nfunc (v *version) ValidatingWebhookConfigurations() ValidatingWebhookConfigurationInformer {\n\treturn &validatingWebhookConfigurationInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/admissionregistration/v1beta1/mutatingwebhookconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiadmissionregistrationv1beta1 \"k8s.io/api/admissionregistration/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tadmissionregistrationv1beta1 \"k8s.io/client-go/listers/admissionregistration/v1beta1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// MutatingWebhookConfigurationInformer provides access to a shared informer and lister for\n// MutatingWebhookConfigurations.\ntype MutatingWebhookConfigurationInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() admissionregistrationv1beta1.MutatingWebhookConfigurationLister\n}\n\ntype mutatingWebhookConfigurationInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewMutatingWebhookConfigurationInformer constructs a new informer for MutatingWebhookConfiguration type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewMutatingWebhookConfigurationInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredMutatingWebhookConfigurationInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredMutatingWebhookConfigurationInformer constructs a new informer for MutatingWebhookConfiguration type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredMutatingWebhookConfigurationInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AdmissionregistrationV1beta1().MutatingWebhookConfigurations().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AdmissionregistrationV1beta1().MutatingWebhookConfigurations().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiadmissionregistrationv1beta1.MutatingWebhookConfiguration{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *mutatingWebhookConfigurationInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredMutatingWebhookConfigurationInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *mutatingWebhookConfigurationInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiadmissionregistrationv1beta1.MutatingWebhookConfiguration{}, f.defaultInformer)\n}\n\nfunc (f *mutatingWebhookConfigurationInformer) Lister() admissionregistrationv1beta1.MutatingWebhookConfigurationLister {\n\treturn admissionregistrationv1beta1.NewMutatingWebhookConfigurationLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/admissionregistration/v1beta1/validatingadmissionpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiadmissionregistrationv1beta1 \"k8s.io/api/admissionregistration/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tadmissionregistrationv1beta1 \"k8s.io/client-go/listers/admissionregistration/v1beta1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ValidatingAdmissionPolicyInformer provides access to a shared informer and lister for\n// ValidatingAdmissionPolicies.\ntype ValidatingAdmissionPolicyInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() admissionregistrationv1beta1.ValidatingAdmissionPolicyLister\n}\n\ntype validatingAdmissionPolicyInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewValidatingAdmissionPolicyInformer constructs a new informer for ValidatingAdmissionPolicy type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewValidatingAdmissionPolicyInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredValidatingAdmissionPolicyInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredValidatingAdmissionPolicyInformer constructs a new informer for ValidatingAdmissionPolicy type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredValidatingAdmissionPolicyInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AdmissionregistrationV1beta1().ValidatingAdmissionPolicies().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AdmissionregistrationV1beta1().ValidatingAdmissionPolicies().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiadmissionregistrationv1beta1.ValidatingAdmissionPolicy{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *validatingAdmissionPolicyInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredValidatingAdmissionPolicyInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *validatingAdmissionPolicyInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiadmissionregistrationv1beta1.ValidatingAdmissionPolicy{}, f.defaultInformer)\n}\n\nfunc (f *validatingAdmissionPolicyInformer) Lister() admissionregistrationv1beta1.ValidatingAdmissionPolicyLister {\n\treturn admissionregistrationv1beta1.NewValidatingAdmissionPolicyLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/admissionregistration/v1beta1/validatingadmissionpolicybinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiadmissionregistrationv1beta1 \"k8s.io/api/admissionregistration/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tadmissionregistrationv1beta1 \"k8s.io/client-go/listers/admissionregistration/v1beta1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ValidatingAdmissionPolicyBindingInformer provides access to a shared informer and lister for\n// ValidatingAdmissionPolicyBindings.\ntype ValidatingAdmissionPolicyBindingInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() admissionregistrationv1beta1.ValidatingAdmissionPolicyBindingLister\n}\n\ntype validatingAdmissionPolicyBindingInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewValidatingAdmissionPolicyBindingInformer constructs a new informer for ValidatingAdmissionPolicyBinding type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewValidatingAdmissionPolicyBindingInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredValidatingAdmissionPolicyBindingInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredValidatingAdmissionPolicyBindingInformer constructs a new informer for ValidatingAdmissionPolicyBinding type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredValidatingAdmissionPolicyBindingInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AdmissionregistrationV1beta1().ValidatingAdmissionPolicyBindings().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AdmissionregistrationV1beta1().ValidatingAdmissionPolicyBindings().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiadmissionregistrationv1beta1.ValidatingAdmissionPolicyBinding{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *validatingAdmissionPolicyBindingInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredValidatingAdmissionPolicyBindingInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *validatingAdmissionPolicyBindingInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiadmissionregistrationv1beta1.ValidatingAdmissionPolicyBinding{}, f.defaultInformer)\n}\n\nfunc (f *validatingAdmissionPolicyBindingInformer) Lister() admissionregistrationv1beta1.ValidatingAdmissionPolicyBindingLister {\n\treturn admissionregistrationv1beta1.NewValidatingAdmissionPolicyBindingLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/admissionregistration/v1beta1/validatingwebhookconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiadmissionregistrationv1beta1 \"k8s.io/api/admissionregistration/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tadmissionregistrationv1beta1 \"k8s.io/client-go/listers/admissionregistration/v1beta1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ValidatingWebhookConfigurationInformer provides access to a shared informer and lister for\n// ValidatingWebhookConfigurations.\ntype ValidatingWebhookConfigurationInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() admissionregistrationv1beta1.ValidatingWebhookConfigurationLister\n}\n\ntype validatingWebhookConfigurationInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewValidatingWebhookConfigurationInformer constructs a new informer for ValidatingWebhookConfiguration type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewValidatingWebhookConfigurationInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredValidatingWebhookConfigurationInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredValidatingWebhookConfigurationInformer constructs a new informer for ValidatingWebhookConfiguration type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredValidatingWebhookConfigurationInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AdmissionregistrationV1beta1().ValidatingWebhookConfigurations().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AdmissionregistrationV1beta1().ValidatingWebhookConfigurations().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiadmissionregistrationv1beta1.ValidatingWebhookConfiguration{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *validatingWebhookConfigurationInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredValidatingWebhookConfigurationInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *validatingWebhookConfigurationInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiadmissionregistrationv1beta1.ValidatingWebhookConfiguration{}, f.defaultInformer)\n}\n\nfunc (f *validatingWebhookConfigurationInformer) Lister() admissionregistrationv1beta1.ValidatingWebhookConfigurationLister {\n\treturn admissionregistrationv1beta1.NewValidatingWebhookConfigurationLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/apiserverinternal/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage apiserverinternal\n\nimport (\n\tv1alpha1 \"k8s.io/client-go/informers/apiserverinternal/v1alpha1\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to each of this group's versions.\ntype Interface interface {\n\t// V1alpha1 provides access to shared informers for resources in V1alpha1.\n\tV1alpha1() v1alpha1.Interface\n}\n\ntype group struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// V1alpha1 returns a new v1alpha1.Interface.\nfunc (g *group) V1alpha1() v1alpha1.Interface {\n\treturn v1alpha1.New(g.factory, g.namespace, g.tweakListOptions)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/apiserverinternal/v1alpha1/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// StorageVersions returns a StorageVersionInformer.\n\tStorageVersions() StorageVersionInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// StorageVersions returns a StorageVersionInformer.\nfunc (v *version) StorageVersions() StorageVersionInformer {\n\treturn &storageVersionInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/apiserverinternal/v1alpha1/storageversion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiapiserverinternalv1alpha1 \"k8s.io/api/apiserverinternal/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tapiserverinternalv1alpha1 \"k8s.io/client-go/listers/apiserverinternal/v1alpha1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// StorageVersionInformer provides access to a shared informer and lister for\n// StorageVersions.\ntype StorageVersionInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() apiserverinternalv1alpha1.StorageVersionLister\n}\n\ntype storageVersionInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewStorageVersionInformer constructs a new informer for StorageVersion type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewStorageVersionInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredStorageVersionInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredStorageVersionInformer constructs a new informer for StorageVersion type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredStorageVersionInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.InternalV1alpha1().StorageVersions().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.InternalV1alpha1().StorageVersions().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiapiserverinternalv1alpha1.StorageVersion{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *storageVersionInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredStorageVersionInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *storageVersionInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiapiserverinternalv1alpha1.StorageVersion{}, f.defaultInformer)\n}\n\nfunc (f *storageVersionInformer) Lister() apiserverinternalv1alpha1.StorageVersionLister {\n\treturn apiserverinternalv1alpha1.NewStorageVersionLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/apps/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage apps\n\nimport (\n\tv1 \"k8s.io/client-go/informers/apps/v1\"\n\tv1beta1 \"k8s.io/client-go/informers/apps/v1beta1\"\n\tv1beta2 \"k8s.io/client-go/informers/apps/v1beta2\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to each of this group's versions.\ntype Interface interface {\n\t// V1 provides access to shared informers for resources in V1.\n\tV1() v1.Interface\n\t// V1beta1 provides access to shared informers for resources in V1beta1.\n\tV1beta1() v1beta1.Interface\n\t// V1beta2 provides access to shared informers for resources in V1beta2.\n\tV1beta2() v1beta2.Interface\n}\n\ntype group struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// V1 returns a new v1.Interface.\nfunc (g *group) V1() v1.Interface {\n\treturn v1.New(g.factory, g.namespace, g.tweakListOptions)\n}\n\n// V1beta1 returns a new v1beta1.Interface.\nfunc (g *group) V1beta1() v1beta1.Interface {\n\treturn v1beta1.New(g.factory, g.namespace, g.tweakListOptions)\n}\n\n// V1beta2 returns a new v1beta2.Interface.\nfunc (g *group) V1beta2() v1beta2.Interface {\n\treturn v1beta2.New(g.factory, g.namespace, g.tweakListOptions)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/apps/v1/controllerrevision.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiappsv1 \"k8s.io/api/apps/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tappsv1 \"k8s.io/client-go/listers/apps/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ControllerRevisionInformer provides access to a shared informer and lister for\n// ControllerRevisions.\ntype ControllerRevisionInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() appsv1.ControllerRevisionLister\n}\n\ntype controllerRevisionInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewControllerRevisionInformer constructs a new informer for ControllerRevision type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewControllerRevisionInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredControllerRevisionInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredControllerRevisionInformer constructs a new informer for ControllerRevision type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredControllerRevisionInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AppsV1().ControllerRevisions(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AppsV1().ControllerRevisions(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiappsv1.ControllerRevision{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *controllerRevisionInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredControllerRevisionInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *controllerRevisionInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiappsv1.ControllerRevision{}, f.defaultInformer)\n}\n\nfunc (f *controllerRevisionInformer) Lister() appsv1.ControllerRevisionLister {\n\treturn appsv1.NewControllerRevisionLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/apps/v1/daemonset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiappsv1 \"k8s.io/api/apps/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tappsv1 \"k8s.io/client-go/listers/apps/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// DaemonSetInformer provides access to a shared informer and lister for\n// DaemonSets.\ntype DaemonSetInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() appsv1.DaemonSetLister\n}\n\ntype daemonSetInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewDaemonSetInformer constructs a new informer for DaemonSet type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewDaemonSetInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredDaemonSetInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredDaemonSetInformer constructs a new informer for DaemonSet type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredDaemonSetInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AppsV1().DaemonSets(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AppsV1().DaemonSets(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiappsv1.DaemonSet{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *daemonSetInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredDaemonSetInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *daemonSetInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiappsv1.DaemonSet{}, f.defaultInformer)\n}\n\nfunc (f *daemonSetInformer) Lister() appsv1.DaemonSetLister {\n\treturn appsv1.NewDaemonSetLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/apps/v1/deployment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiappsv1 \"k8s.io/api/apps/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tappsv1 \"k8s.io/client-go/listers/apps/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// DeploymentInformer provides access to a shared informer and lister for\n// Deployments.\ntype DeploymentInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() appsv1.DeploymentLister\n}\n\ntype deploymentInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewDeploymentInformer constructs a new informer for Deployment type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewDeploymentInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredDeploymentInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredDeploymentInformer constructs a new informer for Deployment type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredDeploymentInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AppsV1().Deployments(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AppsV1().Deployments(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiappsv1.Deployment{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *deploymentInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredDeploymentInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *deploymentInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiappsv1.Deployment{}, f.defaultInformer)\n}\n\nfunc (f *deploymentInformer) Lister() appsv1.DeploymentLister {\n\treturn appsv1.NewDeploymentLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/apps/v1/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// ControllerRevisions returns a ControllerRevisionInformer.\n\tControllerRevisions() ControllerRevisionInformer\n\t// DaemonSets returns a DaemonSetInformer.\n\tDaemonSets() DaemonSetInformer\n\t// Deployments returns a DeploymentInformer.\n\tDeployments() DeploymentInformer\n\t// ReplicaSets returns a ReplicaSetInformer.\n\tReplicaSets() ReplicaSetInformer\n\t// StatefulSets returns a StatefulSetInformer.\n\tStatefulSets() StatefulSetInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// ControllerRevisions returns a ControllerRevisionInformer.\nfunc (v *version) ControllerRevisions() ControllerRevisionInformer {\n\treturn &controllerRevisionInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n\n// DaemonSets returns a DaemonSetInformer.\nfunc (v *version) DaemonSets() DaemonSetInformer {\n\treturn &daemonSetInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n\n// Deployments returns a DeploymentInformer.\nfunc (v *version) Deployments() DeploymentInformer {\n\treturn &deploymentInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n\n// ReplicaSets returns a ReplicaSetInformer.\nfunc (v *version) ReplicaSets() ReplicaSetInformer {\n\treturn &replicaSetInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n\n// StatefulSets returns a StatefulSetInformer.\nfunc (v *version) StatefulSets() StatefulSetInformer {\n\treturn &statefulSetInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/apps/v1/replicaset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiappsv1 \"k8s.io/api/apps/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tappsv1 \"k8s.io/client-go/listers/apps/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ReplicaSetInformer provides access to a shared informer and lister for\n// ReplicaSets.\ntype ReplicaSetInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() appsv1.ReplicaSetLister\n}\n\ntype replicaSetInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewReplicaSetInformer constructs a new informer for ReplicaSet type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewReplicaSetInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredReplicaSetInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredReplicaSetInformer constructs a new informer for ReplicaSet type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredReplicaSetInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AppsV1().ReplicaSets(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AppsV1().ReplicaSets(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiappsv1.ReplicaSet{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *replicaSetInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredReplicaSetInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *replicaSetInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiappsv1.ReplicaSet{}, f.defaultInformer)\n}\n\nfunc (f *replicaSetInformer) Lister() appsv1.ReplicaSetLister {\n\treturn appsv1.NewReplicaSetLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/apps/v1/statefulset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiappsv1 \"k8s.io/api/apps/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tappsv1 \"k8s.io/client-go/listers/apps/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// StatefulSetInformer provides access to a shared informer and lister for\n// StatefulSets.\ntype StatefulSetInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() appsv1.StatefulSetLister\n}\n\ntype statefulSetInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewStatefulSetInformer constructs a new informer for StatefulSet type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewStatefulSetInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredStatefulSetInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredStatefulSetInformer constructs a new informer for StatefulSet type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredStatefulSetInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AppsV1().StatefulSets(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AppsV1().StatefulSets(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiappsv1.StatefulSet{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *statefulSetInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredStatefulSetInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *statefulSetInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiappsv1.StatefulSet{}, f.defaultInformer)\n}\n\nfunc (f *statefulSetInformer) Lister() appsv1.StatefulSetLister {\n\treturn appsv1.NewStatefulSetLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/apps/v1beta1/controllerrevision.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiappsv1beta1 \"k8s.io/api/apps/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tappsv1beta1 \"k8s.io/client-go/listers/apps/v1beta1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ControllerRevisionInformer provides access to a shared informer and lister for\n// ControllerRevisions.\ntype ControllerRevisionInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() appsv1beta1.ControllerRevisionLister\n}\n\ntype controllerRevisionInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewControllerRevisionInformer constructs a new informer for ControllerRevision type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewControllerRevisionInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredControllerRevisionInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredControllerRevisionInformer constructs a new informer for ControllerRevision type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredControllerRevisionInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AppsV1beta1().ControllerRevisions(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AppsV1beta1().ControllerRevisions(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiappsv1beta1.ControllerRevision{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *controllerRevisionInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredControllerRevisionInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *controllerRevisionInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiappsv1beta1.ControllerRevision{}, f.defaultInformer)\n}\n\nfunc (f *controllerRevisionInformer) Lister() appsv1beta1.ControllerRevisionLister {\n\treturn appsv1beta1.NewControllerRevisionLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/apps/v1beta1/deployment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiappsv1beta1 \"k8s.io/api/apps/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tappsv1beta1 \"k8s.io/client-go/listers/apps/v1beta1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// DeploymentInformer provides access to a shared informer and lister for\n// Deployments.\ntype DeploymentInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() appsv1beta1.DeploymentLister\n}\n\ntype deploymentInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewDeploymentInformer constructs a new informer for Deployment type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewDeploymentInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredDeploymentInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredDeploymentInformer constructs a new informer for Deployment type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredDeploymentInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AppsV1beta1().Deployments(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AppsV1beta1().Deployments(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiappsv1beta1.Deployment{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *deploymentInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredDeploymentInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *deploymentInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiappsv1beta1.Deployment{}, f.defaultInformer)\n}\n\nfunc (f *deploymentInformer) Lister() appsv1beta1.DeploymentLister {\n\treturn appsv1beta1.NewDeploymentLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/apps/v1beta1/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// ControllerRevisions returns a ControllerRevisionInformer.\n\tControllerRevisions() ControllerRevisionInformer\n\t// Deployments returns a DeploymentInformer.\n\tDeployments() DeploymentInformer\n\t// StatefulSets returns a StatefulSetInformer.\n\tStatefulSets() StatefulSetInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// ControllerRevisions returns a ControllerRevisionInformer.\nfunc (v *version) ControllerRevisions() ControllerRevisionInformer {\n\treturn &controllerRevisionInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n\n// Deployments returns a DeploymentInformer.\nfunc (v *version) Deployments() DeploymentInformer {\n\treturn &deploymentInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n\n// StatefulSets returns a StatefulSetInformer.\nfunc (v *version) StatefulSets() StatefulSetInformer {\n\treturn &statefulSetInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/apps/v1beta1/statefulset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiappsv1beta1 \"k8s.io/api/apps/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tappsv1beta1 \"k8s.io/client-go/listers/apps/v1beta1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// StatefulSetInformer provides access to a shared informer and lister for\n// StatefulSets.\ntype StatefulSetInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() appsv1beta1.StatefulSetLister\n}\n\ntype statefulSetInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewStatefulSetInformer constructs a new informer for StatefulSet type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewStatefulSetInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredStatefulSetInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredStatefulSetInformer constructs a new informer for StatefulSet type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredStatefulSetInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AppsV1beta1().StatefulSets(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AppsV1beta1().StatefulSets(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiappsv1beta1.StatefulSet{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *statefulSetInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredStatefulSetInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *statefulSetInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiappsv1beta1.StatefulSet{}, f.defaultInformer)\n}\n\nfunc (f *statefulSetInformer) Lister() appsv1beta1.StatefulSetLister {\n\treturn appsv1beta1.NewStatefulSetLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/apps/v1beta2/controllerrevision.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiappsv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tappsv1beta2 \"k8s.io/client-go/listers/apps/v1beta2\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ControllerRevisionInformer provides access to a shared informer and lister for\n// ControllerRevisions.\ntype ControllerRevisionInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() appsv1beta2.ControllerRevisionLister\n}\n\ntype controllerRevisionInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewControllerRevisionInformer constructs a new informer for ControllerRevision type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewControllerRevisionInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredControllerRevisionInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredControllerRevisionInformer constructs a new informer for ControllerRevision type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredControllerRevisionInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AppsV1beta2().ControllerRevisions(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AppsV1beta2().ControllerRevisions(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiappsv1beta2.ControllerRevision{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *controllerRevisionInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredControllerRevisionInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *controllerRevisionInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiappsv1beta2.ControllerRevision{}, f.defaultInformer)\n}\n\nfunc (f *controllerRevisionInformer) Lister() appsv1beta2.ControllerRevisionLister {\n\treturn appsv1beta2.NewControllerRevisionLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/apps/v1beta2/daemonset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiappsv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tappsv1beta2 \"k8s.io/client-go/listers/apps/v1beta2\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// DaemonSetInformer provides access to a shared informer and lister for\n// DaemonSets.\ntype DaemonSetInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() appsv1beta2.DaemonSetLister\n}\n\ntype daemonSetInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewDaemonSetInformer constructs a new informer for DaemonSet type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewDaemonSetInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredDaemonSetInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredDaemonSetInformer constructs a new informer for DaemonSet type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredDaemonSetInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AppsV1beta2().DaemonSets(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AppsV1beta2().DaemonSets(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiappsv1beta2.DaemonSet{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *daemonSetInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredDaemonSetInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *daemonSetInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiappsv1beta2.DaemonSet{}, f.defaultInformer)\n}\n\nfunc (f *daemonSetInformer) Lister() appsv1beta2.DaemonSetLister {\n\treturn appsv1beta2.NewDaemonSetLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/apps/v1beta2/deployment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiappsv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tappsv1beta2 \"k8s.io/client-go/listers/apps/v1beta2\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// DeploymentInformer provides access to a shared informer and lister for\n// Deployments.\ntype DeploymentInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() appsv1beta2.DeploymentLister\n}\n\ntype deploymentInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewDeploymentInformer constructs a new informer for Deployment type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewDeploymentInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredDeploymentInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredDeploymentInformer constructs a new informer for Deployment type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredDeploymentInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AppsV1beta2().Deployments(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AppsV1beta2().Deployments(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiappsv1beta2.Deployment{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *deploymentInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredDeploymentInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *deploymentInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiappsv1beta2.Deployment{}, f.defaultInformer)\n}\n\nfunc (f *deploymentInformer) Lister() appsv1beta2.DeploymentLister {\n\treturn appsv1beta2.NewDeploymentLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/apps/v1beta2/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// ControllerRevisions returns a ControllerRevisionInformer.\n\tControllerRevisions() ControllerRevisionInformer\n\t// DaemonSets returns a DaemonSetInformer.\n\tDaemonSets() DaemonSetInformer\n\t// Deployments returns a DeploymentInformer.\n\tDeployments() DeploymentInformer\n\t// ReplicaSets returns a ReplicaSetInformer.\n\tReplicaSets() ReplicaSetInformer\n\t// StatefulSets returns a StatefulSetInformer.\n\tStatefulSets() StatefulSetInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// ControllerRevisions returns a ControllerRevisionInformer.\nfunc (v *version) ControllerRevisions() ControllerRevisionInformer {\n\treturn &controllerRevisionInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n\n// DaemonSets returns a DaemonSetInformer.\nfunc (v *version) DaemonSets() DaemonSetInformer {\n\treturn &daemonSetInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n\n// Deployments returns a DeploymentInformer.\nfunc (v *version) Deployments() DeploymentInformer {\n\treturn &deploymentInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n\n// ReplicaSets returns a ReplicaSetInformer.\nfunc (v *version) ReplicaSets() ReplicaSetInformer {\n\treturn &replicaSetInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n\n// StatefulSets returns a StatefulSetInformer.\nfunc (v *version) StatefulSets() StatefulSetInformer {\n\treturn &statefulSetInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/apps/v1beta2/replicaset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiappsv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tappsv1beta2 \"k8s.io/client-go/listers/apps/v1beta2\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ReplicaSetInformer provides access to a shared informer and lister for\n// ReplicaSets.\ntype ReplicaSetInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() appsv1beta2.ReplicaSetLister\n}\n\ntype replicaSetInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewReplicaSetInformer constructs a new informer for ReplicaSet type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewReplicaSetInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredReplicaSetInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredReplicaSetInformer constructs a new informer for ReplicaSet type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredReplicaSetInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AppsV1beta2().ReplicaSets(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AppsV1beta2().ReplicaSets(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiappsv1beta2.ReplicaSet{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *replicaSetInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredReplicaSetInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *replicaSetInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiappsv1beta2.ReplicaSet{}, f.defaultInformer)\n}\n\nfunc (f *replicaSetInformer) Lister() appsv1beta2.ReplicaSetLister {\n\treturn appsv1beta2.NewReplicaSetLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/apps/v1beta2/statefulset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiappsv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tappsv1beta2 \"k8s.io/client-go/listers/apps/v1beta2\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// StatefulSetInformer provides access to a shared informer and lister for\n// StatefulSets.\ntype StatefulSetInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() appsv1beta2.StatefulSetLister\n}\n\ntype statefulSetInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewStatefulSetInformer constructs a new informer for StatefulSet type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewStatefulSetInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredStatefulSetInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredStatefulSetInformer constructs a new informer for StatefulSet type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredStatefulSetInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AppsV1beta2().StatefulSets(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AppsV1beta2().StatefulSets(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiappsv1beta2.StatefulSet{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *statefulSetInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredStatefulSetInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *statefulSetInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiappsv1beta2.StatefulSet{}, f.defaultInformer)\n}\n\nfunc (f *statefulSetInformer) Lister() appsv1beta2.StatefulSetLister {\n\treturn appsv1beta2.NewStatefulSetLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/autoscaling/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage autoscaling\n\nimport (\n\tv1 \"k8s.io/client-go/informers/autoscaling/v1\"\n\tv2 \"k8s.io/client-go/informers/autoscaling/v2\"\n\tv2beta1 \"k8s.io/client-go/informers/autoscaling/v2beta1\"\n\tv2beta2 \"k8s.io/client-go/informers/autoscaling/v2beta2\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to each of this group's versions.\ntype Interface interface {\n\t// V1 provides access to shared informers for resources in V1.\n\tV1() v1.Interface\n\t// V2 provides access to shared informers for resources in V2.\n\tV2() v2.Interface\n\t// V2beta1 provides access to shared informers for resources in V2beta1.\n\tV2beta1() v2beta1.Interface\n\t// V2beta2 provides access to shared informers for resources in V2beta2.\n\tV2beta2() v2beta2.Interface\n}\n\ntype group struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// V1 returns a new v1.Interface.\nfunc (g *group) V1() v1.Interface {\n\treturn v1.New(g.factory, g.namespace, g.tweakListOptions)\n}\n\n// V2 returns a new v2.Interface.\nfunc (g *group) V2() v2.Interface {\n\treturn v2.New(g.factory, g.namespace, g.tweakListOptions)\n}\n\n// V2beta1 returns a new v2beta1.Interface.\nfunc (g *group) V2beta1() v2beta1.Interface {\n\treturn v2beta1.New(g.factory, g.namespace, g.tweakListOptions)\n}\n\n// V2beta2 returns a new v2beta2.Interface.\nfunc (g *group) V2beta2() v2beta2.Interface {\n\treturn v2beta2.New(g.factory, g.namespace, g.tweakListOptions)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/autoscaling/v1/horizontalpodautoscaler.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiautoscalingv1 \"k8s.io/api/autoscaling/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tautoscalingv1 \"k8s.io/client-go/listers/autoscaling/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// HorizontalPodAutoscalerInformer provides access to a shared informer and lister for\n// HorizontalPodAutoscalers.\ntype HorizontalPodAutoscalerInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() autoscalingv1.HorizontalPodAutoscalerLister\n}\n\ntype horizontalPodAutoscalerInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewHorizontalPodAutoscalerInformer constructs a new informer for HorizontalPodAutoscaler type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewHorizontalPodAutoscalerInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredHorizontalPodAutoscalerInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredHorizontalPodAutoscalerInformer constructs a new informer for HorizontalPodAutoscaler type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredHorizontalPodAutoscalerInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AutoscalingV1().HorizontalPodAutoscalers(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AutoscalingV1().HorizontalPodAutoscalers(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiautoscalingv1.HorizontalPodAutoscaler{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *horizontalPodAutoscalerInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredHorizontalPodAutoscalerInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *horizontalPodAutoscalerInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiautoscalingv1.HorizontalPodAutoscaler{}, f.defaultInformer)\n}\n\nfunc (f *horizontalPodAutoscalerInformer) Lister() autoscalingv1.HorizontalPodAutoscalerLister {\n\treturn autoscalingv1.NewHorizontalPodAutoscalerLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/autoscaling/v1/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// HorizontalPodAutoscalers returns a HorizontalPodAutoscalerInformer.\n\tHorizontalPodAutoscalers() HorizontalPodAutoscalerInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// HorizontalPodAutoscalers returns a HorizontalPodAutoscalerInformer.\nfunc (v *version) HorizontalPodAutoscalers() HorizontalPodAutoscalerInformer {\n\treturn &horizontalPodAutoscalerInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/autoscaling/v2/horizontalpodautoscaler.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v2\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiautoscalingv2 \"k8s.io/api/autoscaling/v2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tautoscalingv2 \"k8s.io/client-go/listers/autoscaling/v2\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// HorizontalPodAutoscalerInformer provides access to a shared informer and lister for\n// HorizontalPodAutoscalers.\ntype HorizontalPodAutoscalerInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() autoscalingv2.HorizontalPodAutoscalerLister\n}\n\ntype horizontalPodAutoscalerInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewHorizontalPodAutoscalerInformer constructs a new informer for HorizontalPodAutoscaler type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewHorizontalPodAutoscalerInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredHorizontalPodAutoscalerInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredHorizontalPodAutoscalerInformer constructs a new informer for HorizontalPodAutoscaler type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredHorizontalPodAutoscalerInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AutoscalingV2().HorizontalPodAutoscalers(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AutoscalingV2().HorizontalPodAutoscalers(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiautoscalingv2.HorizontalPodAutoscaler{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *horizontalPodAutoscalerInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredHorizontalPodAutoscalerInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *horizontalPodAutoscalerInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiautoscalingv2.HorizontalPodAutoscaler{}, f.defaultInformer)\n}\n\nfunc (f *horizontalPodAutoscalerInformer) Lister() autoscalingv2.HorizontalPodAutoscalerLister {\n\treturn autoscalingv2.NewHorizontalPodAutoscalerLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/autoscaling/v2/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v2\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// HorizontalPodAutoscalers returns a HorizontalPodAutoscalerInformer.\n\tHorizontalPodAutoscalers() HorizontalPodAutoscalerInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// HorizontalPodAutoscalers returns a HorizontalPodAutoscalerInformer.\nfunc (v *version) HorizontalPodAutoscalers() HorizontalPodAutoscalerInformer {\n\treturn &horizontalPodAutoscalerInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/autoscaling/v2beta1/horizontalpodautoscaler.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v2beta1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiautoscalingv2beta1 \"k8s.io/api/autoscaling/v2beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tautoscalingv2beta1 \"k8s.io/client-go/listers/autoscaling/v2beta1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// HorizontalPodAutoscalerInformer provides access to a shared informer and lister for\n// HorizontalPodAutoscalers.\ntype HorizontalPodAutoscalerInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() autoscalingv2beta1.HorizontalPodAutoscalerLister\n}\n\ntype horizontalPodAutoscalerInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewHorizontalPodAutoscalerInformer constructs a new informer for HorizontalPodAutoscaler type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewHorizontalPodAutoscalerInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredHorizontalPodAutoscalerInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredHorizontalPodAutoscalerInformer constructs a new informer for HorizontalPodAutoscaler type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredHorizontalPodAutoscalerInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AutoscalingV2beta1().HorizontalPodAutoscalers(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AutoscalingV2beta1().HorizontalPodAutoscalers(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiautoscalingv2beta1.HorizontalPodAutoscaler{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *horizontalPodAutoscalerInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredHorizontalPodAutoscalerInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *horizontalPodAutoscalerInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiautoscalingv2beta1.HorizontalPodAutoscaler{}, f.defaultInformer)\n}\n\nfunc (f *horizontalPodAutoscalerInformer) Lister() autoscalingv2beta1.HorizontalPodAutoscalerLister {\n\treturn autoscalingv2beta1.NewHorizontalPodAutoscalerLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/autoscaling/v2beta1/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v2beta1\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// HorizontalPodAutoscalers returns a HorizontalPodAutoscalerInformer.\n\tHorizontalPodAutoscalers() HorizontalPodAutoscalerInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// HorizontalPodAutoscalers returns a HorizontalPodAutoscalerInformer.\nfunc (v *version) HorizontalPodAutoscalers() HorizontalPodAutoscalerInformer {\n\treturn &horizontalPodAutoscalerInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/autoscaling/v2beta2/horizontalpodautoscaler.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v2beta2\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiautoscalingv2beta2 \"k8s.io/api/autoscaling/v2beta2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tautoscalingv2beta2 \"k8s.io/client-go/listers/autoscaling/v2beta2\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// HorizontalPodAutoscalerInformer provides access to a shared informer and lister for\n// HorizontalPodAutoscalers.\ntype HorizontalPodAutoscalerInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() autoscalingv2beta2.HorizontalPodAutoscalerLister\n}\n\ntype horizontalPodAutoscalerInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewHorizontalPodAutoscalerInformer constructs a new informer for HorizontalPodAutoscaler type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewHorizontalPodAutoscalerInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredHorizontalPodAutoscalerInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredHorizontalPodAutoscalerInformer constructs a new informer for HorizontalPodAutoscaler type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredHorizontalPodAutoscalerInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AutoscalingV2beta2().HorizontalPodAutoscalers(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.AutoscalingV2beta2().HorizontalPodAutoscalers(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiautoscalingv2beta2.HorizontalPodAutoscaler{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *horizontalPodAutoscalerInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredHorizontalPodAutoscalerInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *horizontalPodAutoscalerInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiautoscalingv2beta2.HorizontalPodAutoscaler{}, f.defaultInformer)\n}\n\nfunc (f *horizontalPodAutoscalerInformer) Lister() autoscalingv2beta2.HorizontalPodAutoscalerLister {\n\treturn autoscalingv2beta2.NewHorizontalPodAutoscalerLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/autoscaling/v2beta2/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v2beta2\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// HorizontalPodAutoscalers returns a HorizontalPodAutoscalerInformer.\n\tHorizontalPodAutoscalers() HorizontalPodAutoscalerInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// HorizontalPodAutoscalers returns a HorizontalPodAutoscalerInformer.\nfunc (v *version) HorizontalPodAutoscalers() HorizontalPodAutoscalerInformer {\n\treturn &horizontalPodAutoscalerInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/batch/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage batch\n\nimport (\n\tv1 \"k8s.io/client-go/informers/batch/v1\"\n\tv1beta1 \"k8s.io/client-go/informers/batch/v1beta1\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to each of this group's versions.\ntype Interface interface {\n\t// V1 provides access to shared informers for resources in V1.\n\tV1() v1.Interface\n\t// V1beta1 provides access to shared informers for resources in V1beta1.\n\tV1beta1() v1beta1.Interface\n}\n\ntype group struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// V1 returns a new v1.Interface.\nfunc (g *group) V1() v1.Interface {\n\treturn v1.New(g.factory, g.namespace, g.tweakListOptions)\n}\n\n// V1beta1 returns a new v1beta1.Interface.\nfunc (g *group) V1beta1() v1beta1.Interface {\n\treturn v1beta1.New(g.factory, g.namespace, g.tweakListOptions)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/batch/v1/cronjob.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapibatchv1 \"k8s.io/api/batch/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tbatchv1 \"k8s.io/client-go/listers/batch/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// CronJobInformer provides access to a shared informer and lister for\n// CronJobs.\ntype CronJobInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() batchv1.CronJobLister\n}\n\ntype cronJobInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewCronJobInformer constructs a new informer for CronJob type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewCronJobInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredCronJobInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredCronJobInformer constructs a new informer for CronJob type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredCronJobInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.BatchV1().CronJobs(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.BatchV1().CronJobs(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apibatchv1.CronJob{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *cronJobInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredCronJobInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *cronJobInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apibatchv1.CronJob{}, f.defaultInformer)\n}\n\nfunc (f *cronJobInformer) Lister() batchv1.CronJobLister {\n\treturn batchv1.NewCronJobLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/batch/v1/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// CronJobs returns a CronJobInformer.\n\tCronJobs() CronJobInformer\n\t// Jobs returns a JobInformer.\n\tJobs() JobInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// CronJobs returns a CronJobInformer.\nfunc (v *version) CronJobs() CronJobInformer {\n\treturn &cronJobInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n\n// Jobs returns a JobInformer.\nfunc (v *version) Jobs() JobInformer {\n\treturn &jobInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/batch/v1/job.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapibatchv1 \"k8s.io/api/batch/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tbatchv1 \"k8s.io/client-go/listers/batch/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// JobInformer provides access to a shared informer and lister for\n// Jobs.\ntype JobInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() batchv1.JobLister\n}\n\ntype jobInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewJobInformer constructs a new informer for Job type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewJobInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredJobInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredJobInformer constructs a new informer for Job type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredJobInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.BatchV1().Jobs(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.BatchV1().Jobs(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apibatchv1.Job{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *jobInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredJobInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *jobInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apibatchv1.Job{}, f.defaultInformer)\n}\n\nfunc (f *jobInformer) Lister() batchv1.JobLister {\n\treturn batchv1.NewJobLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/batch/v1beta1/cronjob.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapibatchv1beta1 \"k8s.io/api/batch/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tbatchv1beta1 \"k8s.io/client-go/listers/batch/v1beta1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// CronJobInformer provides access to a shared informer and lister for\n// CronJobs.\ntype CronJobInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() batchv1beta1.CronJobLister\n}\n\ntype cronJobInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewCronJobInformer constructs a new informer for CronJob type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewCronJobInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredCronJobInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredCronJobInformer constructs a new informer for CronJob type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredCronJobInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.BatchV1beta1().CronJobs(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.BatchV1beta1().CronJobs(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apibatchv1beta1.CronJob{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *cronJobInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredCronJobInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *cronJobInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apibatchv1beta1.CronJob{}, f.defaultInformer)\n}\n\nfunc (f *cronJobInformer) Lister() batchv1beta1.CronJobLister {\n\treturn batchv1beta1.NewCronJobLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/batch/v1beta1/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// CronJobs returns a CronJobInformer.\n\tCronJobs() CronJobInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// CronJobs returns a CronJobInformer.\nfunc (v *version) CronJobs() CronJobInformer {\n\treturn &cronJobInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/certificates/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage certificates\n\nimport (\n\tv1 \"k8s.io/client-go/informers/certificates/v1\"\n\tv1alpha1 \"k8s.io/client-go/informers/certificates/v1alpha1\"\n\tv1beta1 \"k8s.io/client-go/informers/certificates/v1beta1\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to each of this group's versions.\ntype Interface interface {\n\t// V1 provides access to shared informers for resources in V1.\n\tV1() v1.Interface\n\t// V1alpha1 provides access to shared informers for resources in V1alpha1.\n\tV1alpha1() v1alpha1.Interface\n\t// V1beta1 provides access to shared informers for resources in V1beta1.\n\tV1beta1() v1beta1.Interface\n}\n\ntype group struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// V1 returns a new v1.Interface.\nfunc (g *group) V1() v1.Interface {\n\treturn v1.New(g.factory, g.namespace, g.tweakListOptions)\n}\n\n// V1alpha1 returns a new v1alpha1.Interface.\nfunc (g *group) V1alpha1() v1alpha1.Interface {\n\treturn v1alpha1.New(g.factory, g.namespace, g.tweakListOptions)\n}\n\n// V1beta1 returns a new v1beta1.Interface.\nfunc (g *group) V1beta1() v1beta1.Interface {\n\treturn v1beta1.New(g.factory, g.namespace, g.tweakListOptions)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/certificates/v1/certificatesigningrequest.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapicertificatesv1 \"k8s.io/api/certificates/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tcertificatesv1 \"k8s.io/client-go/listers/certificates/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// CertificateSigningRequestInformer provides access to a shared informer and lister for\n// CertificateSigningRequests.\ntype CertificateSigningRequestInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() certificatesv1.CertificateSigningRequestLister\n}\n\ntype certificateSigningRequestInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewCertificateSigningRequestInformer constructs a new informer for CertificateSigningRequest type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewCertificateSigningRequestInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredCertificateSigningRequestInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredCertificateSigningRequestInformer constructs a new informer for CertificateSigningRequest type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredCertificateSigningRequestInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CertificatesV1().CertificateSigningRequests().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CertificatesV1().CertificateSigningRequests().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apicertificatesv1.CertificateSigningRequest{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *certificateSigningRequestInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredCertificateSigningRequestInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *certificateSigningRequestInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apicertificatesv1.CertificateSigningRequest{}, f.defaultInformer)\n}\n\nfunc (f *certificateSigningRequestInformer) Lister() certificatesv1.CertificateSigningRequestLister {\n\treturn certificatesv1.NewCertificateSigningRequestLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/certificates/v1/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// CertificateSigningRequests returns a CertificateSigningRequestInformer.\n\tCertificateSigningRequests() CertificateSigningRequestInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// CertificateSigningRequests returns a CertificateSigningRequestInformer.\nfunc (v *version) CertificateSigningRequests() CertificateSigningRequestInformer {\n\treturn &certificateSigningRequestInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/certificates/v1alpha1/clustertrustbundle.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapicertificatesv1alpha1 \"k8s.io/api/certificates/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tcertificatesv1alpha1 \"k8s.io/client-go/listers/certificates/v1alpha1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ClusterTrustBundleInformer provides access to a shared informer and lister for\n// ClusterTrustBundles.\ntype ClusterTrustBundleInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() certificatesv1alpha1.ClusterTrustBundleLister\n}\n\ntype clusterTrustBundleInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewClusterTrustBundleInformer constructs a new informer for ClusterTrustBundle type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewClusterTrustBundleInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredClusterTrustBundleInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredClusterTrustBundleInformer constructs a new informer for ClusterTrustBundle type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredClusterTrustBundleInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CertificatesV1alpha1().ClusterTrustBundles().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CertificatesV1alpha1().ClusterTrustBundles().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apicertificatesv1alpha1.ClusterTrustBundle{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *clusterTrustBundleInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredClusterTrustBundleInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *clusterTrustBundleInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apicertificatesv1alpha1.ClusterTrustBundle{}, f.defaultInformer)\n}\n\nfunc (f *clusterTrustBundleInformer) Lister() certificatesv1alpha1.ClusterTrustBundleLister {\n\treturn certificatesv1alpha1.NewClusterTrustBundleLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/certificates/v1alpha1/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// ClusterTrustBundles returns a ClusterTrustBundleInformer.\n\tClusterTrustBundles() ClusterTrustBundleInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// ClusterTrustBundles returns a ClusterTrustBundleInformer.\nfunc (v *version) ClusterTrustBundles() ClusterTrustBundleInformer {\n\treturn &clusterTrustBundleInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/certificates/v1beta1/certificatesigningrequest.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapicertificatesv1beta1 \"k8s.io/api/certificates/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tcertificatesv1beta1 \"k8s.io/client-go/listers/certificates/v1beta1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// CertificateSigningRequestInformer provides access to a shared informer and lister for\n// CertificateSigningRequests.\ntype CertificateSigningRequestInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() certificatesv1beta1.CertificateSigningRequestLister\n}\n\ntype certificateSigningRequestInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewCertificateSigningRequestInformer constructs a new informer for CertificateSigningRequest type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewCertificateSigningRequestInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredCertificateSigningRequestInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredCertificateSigningRequestInformer constructs a new informer for CertificateSigningRequest type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredCertificateSigningRequestInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CertificatesV1beta1().CertificateSigningRequests().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CertificatesV1beta1().CertificateSigningRequests().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apicertificatesv1beta1.CertificateSigningRequest{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *certificateSigningRequestInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredCertificateSigningRequestInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *certificateSigningRequestInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apicertificatesv1beta1.CertificateSigningRequest{}, f.defaultInformer)\n}\n\nfunc (f *certificateSigningRequestInformer) Lister() certificatesv1beta1.CertificateSigningRequestLister {\n\treturn certificatesv1beta1.NewCertificateSigningRequestLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/certificates/v1beta1/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// CertificateSigningRequests returns a CertificateSigningRequestInformer.\n\tCertificateSigningRequests() CertificateSigningRequestInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// CertificateSigningRequests returns a CertificateSigningRequestInformer.\nfunc (v *version) CertificateSigningRequests() CertificateSigningRequestInformer {\n\treturn &certificateSigningRequestInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/coordination/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage coordination\n\nimport (\n\tv1 \"k8s.io/client-go/informers/coordination/v1\"\n\tv1alpha2 \"k8s.io/client-go/informers/coordination/v1alpha2\"\n\tv1beta1 \"k8s.io/client-go/informers/coordination/v1beta1\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to each of this group's versions.\ntype Interface interface {\n\t// V1 provides access to shared informers for resources in V1.\n\tV1() v1.Interface\n\t// V1alpha2 provides access to shared informers for resources in V1alpha2.\n\tV1alpha2() v1alpha2.Interface\n\t// V1beta1 provides access to shared informers for resources in V1beta1.\n\tV1beta1() v1beta1.Interface\n}\n\ntype group struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// V1 returns a new v1.Interface.\nfunc (g *group) V1() v1.Interface {\n\treturn v1.New(g.factory, g.namespace, g.tweakListOptions)\n}\n\n// V1alpha2 returns a new v1alpha2.Interface.\nfunc (g *group) V1alpha2() v1alpha2.Interface {\n\treturn v1alpha2.New(g.factory, g.namespace, g.tweakListOptions)\n}\n\n// V1beta1 returns a new v1beta1.Interface.\nfunc (g *group) V1beta1() v1beta1.Interface {\n\treturn v1beta1.New(g.factory, g.namespace, g.tweakListOptions)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/coordination/v1/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// Leases returns a LeaseInformer.\n\tLeases() LeaseInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// Leases returns a LeaseInformer.\nfunc (v *version) Leases() LeaseInformer {\n\treturn &leaseInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/coordination/v1/lease.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapicoordinationv1 \"k8s.io/api/coordination/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tcoordinationv1 \"k8s.io/client-go/listers/coordination/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// LeaseInformer provides access to a shared informer and lister for\n// Leases.\ntype LeaseInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() coordinationv1.LeaseLister\n}\n\ntype leaseInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewLeaseInformer constructs a new informer for Lease type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewLeaseInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredLeaseInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredLeaseInformer constructs a new informer for Lease type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredLeaseInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CoordinationV1().Leases(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CoordinationV1().Leases(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apicoordinationv1.Lease{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *leaseInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredLeaseInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *leaseInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apicoordinationv1.Lease{}, f.defaultInformer)\n}\n\nfunc (f *leaseInformer) Lister() coordinationv1.LeaseLister {\n\treturn coordinationv1.NewLeaseLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/coordination/v1alpha2/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1alpha2\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// LeaseCandidates returns a LeaseCandidateInformer.\n\tLeaseCandidates() LeaseCandidateInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// LeaseCandidates returns a LeaseCandidateInformer.\nfunc (v *version) LeaseCandidates() LeaseCandidateInformer {\n\treturn &leaseCandidateInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/coordination/v1alpha2/leasecandidate.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1alpha2\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapicoordinationv1alpha2 \"k8s.io/api/coordination/v1alpha2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tcoordinationv1alpha2 \"k8s.io/client-go/listers/coordination/v1alpha2\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// LeaseCandidateInformer provides access to a shared informer and lister for\n// LeaseCandidates.\ntype LeaseCandidateInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() coordinationv1alpha2.LeaseCandidateLister\n}\n\ntype leaseCandidateInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewLeaseCandidateInformer constructs a new informer for LeaseCandidate type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewLeaseCandidateInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredLeaseCandidateInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredLeaseCandidateInformer constructs a new informer for LeaseCandidate type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredLeaseCandidateInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CoordinationV1alpha2().LeaseCandidates(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CoordinationV1alpha2().LeaseCandidates(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apicoordinationv1alpha2.LeaseCandidate{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *leaseCandidateInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredLeaseCandidateInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *leaseCandidateInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apicoordinationv1alpha2.LeaseCandidate{}, f.defaultInformer)\n}\n\nfunc (f *leaseCandidateInformer) Lister() coordinationv1alpha2.LeaseCandidateLister {\n\treturn coordinationv1alpha2.NewLeaseCandidateLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/coordination/v1beta1/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// Leases returns a LeaseInformer.\n\tLeases() LeaseInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// Leases returns a LeaseInformer.\nfunc (v *version) Leases() LeaseInformer {\n\treturn &leaseInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/coordination/v1beta1/lease.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapicoordinationv1beta1 \"k8s.io/api/coordination/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tcoordinationv1beta1 \"k8s.io/client-go/listers/coordination/v1beta1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// LeaseInformer provides access to a shared informer and lister for\n// Leases.\ntype LeaseInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() coordinationv1beta1.LeaseLister\n}\n\ntype leaseInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewLeaseInformer constructs a new informer for Lease type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewLeaseInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredLeaseInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredLeaseInformer constructs a new informer for Lease type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredLeaseInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CoordinationV1beta1().Leases(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CoordinationV1beta1().Leases(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apicoordinationv1beta1.Lease{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *leaseInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredLeaseInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *leaseInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apicoordinationv1beta1.Lease{}, f.defaultInformer)\n}\n\nfunc (f *leaseInformer) Lister() coordinationv1beta1.LeaseLister {\n\treturn coordinationv1beta1.NewLeaseLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/core/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage core\n\nimport (\n\tv1 \"k8s.io/client-go/informers/core/v1\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to each of this group's versions.\ntype Interface interface {\n\t// V1 provides access to shared informers for resources in V1.\n\tV1() v1.Interface\n}\n\ntype group struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// V1 returns a new v1.Interface.\nfunc (g *group) V1() v1.Interface {\n\treturn v1.New(g.factory, g.namespace, g.tweakListOptions)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/core/v1/componentstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapicorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tcorev1 \"k8s.io/client-go/listers/core/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ComponentStatusInformer provides access to a shared informer and lister for\n// ComponentStatuses.\ntype ComponentStatusInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() corev1.ComponentStatusLister\n}\n\ntype componentStatusInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewComponentStatusInformer constructs a new informer for ComponentStatus type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewComponentStatusInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredComponentStatusInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredComponentStatusInformer constructs a new informer for ComponentStatus type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredComponentStatusInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CoreV1().ComponentStatuses().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CoreV1().ComponentStatuses().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apicorev1.ComponentStatus{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *componentStatusInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredComponentStatusInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *componentStatusInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apicorev1.ComponentStatus{}, f.defaultInformer)\n}\n\nfunc (f *componentStatusInformer) Lister() corev1.ComponentStatusLister {\n\treturn corev1.NewComponentStatusLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/core/v1/configmap.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapicorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tcorev1 \"k8s.io/client-go/listers/core/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ConfigMapInformer provides access to a shared informer and lister for\n// ConfigMaps.\ntype ConfigMapInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() corev1.ConfigMapLister\n}\n\ntype configMapInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewConfigMapInformer constructs a new informer for ConfigMap type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewConfigMapInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredConfigMapInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredConfigMapInformer constructs a new informer for ConfigMap type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredConfigMapInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CoreV1().ConfigMaps(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CoreV1().ConfigMaps(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apicorev1.ConfigMap{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *configMapInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredConfigMapInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *configMapInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apicorev1.ConfigMap{}, f.defaultInformer)\n}\n\nfunc (f *configMapInformer) Lister() corev1.ConfigMapLister {\n\treturn corev1.NewConfigMapLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/core/v1/endpoints.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapicorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tcorev1 \"k8s.io/client-go/listers/core/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// EndpointsInformer provides access to a shared informer and lister for\n// Endpoints.\ntype EndpointsInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() corev1.EndpointsLister\n}\n\ntype endpointsInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewEndpointsInformer constructs a new informer for Endpoints type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewEndpointsInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredEndpointsInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredEndpointsInformer constructs a new informer for Endpoints type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredEndpointsInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CoreV1().Endpoints(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CoreV1().Endpoints(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apicorev1.Endpoints{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *endpointsInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredEndpointsInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *endpointsInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apicorev1.Endpoints{}, f.defaultInformer)\n}\n\nfunc (f *endpointsInformer) Lister() corev1.EndpointsLister {\n\treturn corev1.NewEndpointsLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/core/v1/event.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapicorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tcorev1 \"k8s.io/client-go/listers/core/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// EventInformer provides access to a shared informer and lister for\n// Events.\ntype EventInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() corev1.EventLister\n}\n\ntype eventInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewEventInformer constructs a new informer for Event type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewEventInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredEventInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredEventInformer constructs a new informer for Event type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredEventInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CoreV1().Events(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CoreV1().Events(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apicorev1.Event{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *eventInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredEventInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *eventInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apicorev1.Event{}, f.defaultInformer)\n}\n\nfunc (f *eventInformer) Lister() corev1.EventLister {\n\treturn corev1.NewEventLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/core/v1/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// ComponentStatuses returns a ComponentStatusInformer.\n\tComponentStatuses() ComponentStatusInformer\n\t// ConfigMaps returns a ConfigMapInformer.\n\tConfigMaps() ConfigMapInformer\n\t// Endpoints returns a EndpointsInformer.\n\tEndpoints() EndpointsInformer\n\t// Events returns a EventInformer.\n\tEvents() EventInformer\n\t// LimitRanges returns a LimitRangeInformer.\n\tLimitRanges() LimitRangeInformer\n\t// Namespaces returns a NamespaceInformer.\n\tNamespaces() NamespaceInformer\n\t// Nodes returns a NodeInformer.\n\tNodes() NodeInformer\n\t// PersistentVolumes returns a PersistentVolumeInformer.\n\tPersistentVolumes() PersistentVolumeInformer\n\t// PersistentVolumeClaims returns a PersistentVolumeClaimInformer.\n\tPersistentVolumeClaims() PersistentVolumeClaimInformer\n\t// Pods returns a PodInformer.\n\tPods() PodInformer\n\t// PodTemplates returns a PodTemplateInformer.\n\tPodTemplates() PodTemplateInformer\n\t// ReplicationControllers returns a ReplicationControllerInformer.\n\tReplicationControllers() ReplicationControllerInformer\n\t// ResourceQuotas returns a ResourceQuotaInformer.\n\tResourceQuotas() ResourceQuotaInformer\n\t// Secrets returns a SecretInformer.\n\tSecrets() SecretInformer\n\t// Services returns a ServiceInformer.\n\tServices() ServiceInformer\n\t// ServiceAccounts returns a ServiceAccountInformer.\n\tServiceAccounts() ServiceAccountInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// ComponentStatuses returns a ComponentStatusInformer.\nfunc (v *version) ComponentStatuses() ComponentStatusInformer {\n\treturn &componentStatusInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n\n// ConfigMaps returns a ConfigMapInformer.\nfunc (v *version) ConfigMaps() ConfigMapInformer {\n\treturn &configMapInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n\n// Endpoints returns a EndpointsInformer.\nfunc (v *version) Endpoints() EndpointsInformer {\n\treturn &endpointsInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n\n// Events returns a EventInformer.\nfunc (v *version) Events() EventInformer {\n\treturn &eventInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n\n// LimitRanges returns a LimitRangeInformer.\nfunc (v *version) LimitRanges() LimitRangeInformer {\n\treturn &limitRangeInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n\n// Namespaces returns a NamespaceInformer.\nfunc (v *version) Namespaces() NamespaceInformer {\n\treturn &namespaceInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n\n// Nodes returns a NodeInformer.\nfunc (v *version) Nodes() NodeInformer {\n\treturn &nodeInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n\n// PersistentVolumes returns a PersistentVolumeInformer.\nfunc (v *version) PersistentVolumes() PersistentVolumeInformer {\n\treturn &persistentVolumeInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n\n// PersistentVolumeClaims returns a PersistentVolumeClaimInformer.\nfunc (v *version) PersistentVolumeClaims() PersistentVolumeClaimInformer {\n\treturn &persistentVolumeClaimInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n\n// Pods returns a PodInformer.\nfunc (v *version) Pods() PodInformer {\n\treturn &podInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n\n// PodTemplates returns a PodTemplateInformer.\nfunc (v *version) PodTemplates() PodTemplateInformer {\n\treturn &podTemplateInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n\n// ReplicationControllers returns a ReplicationControllerInformer.\nfunc (v *version) ReplicationControllers() ReplicationControllerInformer {\n\treturn &replicationControllerInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n\n// ResourceQuotas returns a ResourceQuotaInformer.\nfunc (v *version) ResourceQuotas() ResourceQuotaInformer {\n\treturn &resourceQuotaInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n\n// Secrets returns a SecretInformer.\nfunc (v *version) Secrets() SecretInformer {\n\treturn &secretInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n\n// Services returns a ServiceInformer.\nfunc (v *version) Services() ServiceInformer {\n\treturn &serviceInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n\n// ServiceAccounts returns a ServiceAccountInformer.\nfunc (v *version) ServiceAccounts() ServiceAccountInformer {\n\treturn &serviceAccountInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/core/v1/limitrange.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapicorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tcorev1 \"k8s.io/client-go/listers/core/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// LimitRangeInformer provides access to a shared informer and lister for\n// LimitRanges.\ntype LimitRangeInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() corev1.LimitRangeLister\n}\n\ntype limitRangeInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewLimitRangeInformer constructs a new informer for LimitRange type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewLimitRangeInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredLimitRangeInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredLimitRangeInformer constructs a new informer for LimitRange type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredLimitRangeInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CoreV1().LimitRanges(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CoreV1().LimitRanges(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apicorev1.LimitRange{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *limitRangeInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredLimitRangeInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *limitRangeInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apicorev1.LimitRange{}, f.defaultInformer)\n}\n\nfunc (f *limitRangeInformer) Lister() corev1.LimitRangeLister {\n\treturn corev1.NewLimitRangeLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/core/v1/namespace.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapicorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tcorev1 \"k8s.io/client-go/listers/core/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// NamespaceInformer provides access to a shared informer and lister for\n// Namespaces.\ntype NamespaceInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() corev1.NamespaceLister\n}\n\ntype namespaceInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewNamespaceInformer constructs a new informer for Namespace type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewNamespaceInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredNamespaceInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredNamespaceInformer constructs a new informer for Namespace type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredNamespaceInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CoreV1().Namespaces().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CoreV1().Namespaces().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apicorev1.Namespace{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *namespaceInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredNamespaceInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *namespaceInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apicorev1.Namespace{}, f.defaultInformer)\n}\n\nfunc (f *namespaceInformer) Lister() corev1.NamespaceLister {\n\treturn corev1.NewNamespaceLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/core/v1/node.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapicorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tcorev1 \"k8s.io/client-go/listers/core/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// NodeInformer provides access to a shared informer and lister for\n// Nodes.\ntype NodeInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() corev1.NodeLister\n}\n\ntype nodeInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewNodeInformer constructs a new informer for Node type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewNodeInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredNodeInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredNodeInformer constructs a new informer for Node type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredNodeInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CoreV1().Nodes().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CoreV1().Nodes().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apicorev1.Node{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *nodeInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredNodeInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *nodeInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apicorev1.Node{}, f.defaultInformer)\n}\n\nfunc (f *nodeInformer) Lister() corev1.NodeLister {\n\treturn corev1.NewNodeLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/core/v1/persistentvolume.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapicorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tcorev1 \"k8s.io/client-go/listers/core/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// PersistentVolumeInformer provides access to a shared informer and lister for\n// PersistentVolumes.\ntype PersistentVolumeInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() corev1.PersistentVolumeLister\n}\n\ntype persistentVolumeInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewPersistentVolumeInformer constructs a new informer for PersistentVolume type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewPersistentVolumeInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredPersistentVolumeInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredPersistentVolumeInformer constructs a new informer for PersistentVolume type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredPersistentVolumeInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CoreV1().PersistentVolumes().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CoreV1().PersistentVolumes().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apicorev1.PersistentVolume{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *persistentVolumeInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredPersistentVolumeInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *persistentVolumeInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apicorev1.PersistentVolume{}, f.defaultInformer)\n}\n\nfunc (f *persistentVolumeInformer) Lister() corev1.PersistentVolumeLister {\n\treturn corev1.NewPersistentVolumeLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/core/v1/persistentvolumeclaim.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapicorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tcorev1 \"k8s.io/client-go/listers/core/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// PersistentVolumeClaimInformer provides access to a shared informer and lister for\n// PersistentVolumeClaims.\ntype PersistentVolumeClaimInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() corev1.PersistentVolumeClaimLister\n}\n\ntype persistentVolumeClaimInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewPersistentVolumeClaimInformer constructs a new informer for PersistentVolumeClaim type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewPersistentVolumeClaimInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredPersistentVolumeClaimInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredPersistentVolumeClaimInformer constructs a new informer for PersistentVolumeClaim type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredPersistentVolumeClaimInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CoreV1().PersistentVolumeClaims(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CoreV1().PersistentVolumeClaims(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apicorev1.PersistentVolumeClaim{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *persistentVolumeClaimInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredPersistentVolumeClaimInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *persistentVolumeClaimInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apicorev1.PersistentVolumeClaim{}, f.defaultInformer)\n}\n\nfunc (f *persistentVolumeClaimInformer) Lister() corev1.PersistentVolumeClaimLister {\n\treturn corev1.NewPersistentVolumeClaimLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/core/v1/pod.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapicorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tcorev1 \"k8s.io/client-go/listers/core/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// PodInformer provides access to a shared informer and lister for\n// Pods.\ntype PodInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() corev1.PodLister\n}\n\ntype podInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewPodInformer constructs a new informer for Pod type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewPodInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredPodInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredPodInformer constructs a new informer for Pod type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredPodInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CoreV1().Pods(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CoreV1().Pods(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apicorev1.Pod{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *podInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredPodInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *podInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apicorev1.Pod{}, f.defaultInformer)\n}\n\nfunc (f *podInformer) Lister() corev1.PodLister {\n\treturn corev1.NewPodLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/core/v1/podtemplate.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapicorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tcorev1 \"k8s.io/client-go/listers/core/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// PodTemplateInformer provides access to a shared informer and lister for\n// PodTemplates.\ntype PodTemplateInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() corev1.PodTemplateLister\n}\n\ntype podTemplateInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewPodTemplateInformer constructs a new informer for PodTemplate type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewPodTemplateInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredPodTemplateInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredPodTemplateInformer constructs a new informer for PodTemplate type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredPodTemplateInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CoreV1().PodTemplates(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CoreV1().PodTemplates(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apicorev1.PodTemplate{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *podTemplateInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredPodTemplateInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *podTemplateInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apicorev1.PodTemplate{}, f.defaultInformer)\n}\n\nfunc (f *podTemplateInformer) Lister() corev1.PodTemplateLister {\n\treturn corev1.NewPodTemplateLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/core/v1/replicationcontroller.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapicorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tcorev1 \"k8s.io/client-go/listers/core/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ReplicationControllerInformer provides access to a shared informer and lister for\n// ReplicationControllers.\ntype ReplicationControllerInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() corev1.ReplicationControllerLister\n}\n\ntype replicationControllerInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewReplicationControllerInformer constructs a new informer for ReplicationController type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewReplicationControllerInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredReplicationControllerInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredReplicationControllerInformer constructs a new informer for ReplicationController type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredReplicationControllerInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CoreV1().ReplicationControllers(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CoreV1().ReplicationControllers(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apicorev1.ReplicationController{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *replicationControllerInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredReplicationControllerInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *replicationControllerInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apicorev1.ReplicationController{}, f.defaultInformer)\n}\n\nfunc (f *replicationControllerInformer) Lister() corev1.ReplicationControllerLister {\n\treturn corev1.NewReplicationControllerLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/core/v1/resourcequota.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapicorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tcorev1 \"k8s.io/client-go/listers/core/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ResourceQuotaInformer provides access to a shared informer and lister for\n// ResourceQuotas.\ntype ResourceQuotaInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() corev1.ResourceQuotaLister\n}\n\ntype resourceQuotaInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewResourceQuotaInformer constructs a new informer for ResourceQuota type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewResourceQuotaInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredResourceQuotaInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredResourceQuotaInformer constructs a new informer for ResourceQuota type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredResourceQuotaInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CoreV1().ResourceQuotas(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CoreV1().ResourceQuotas(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apicorev1.ResourceQuota{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *resourceQuotaInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredResourceQuotaInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *resourceQuotaInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apicorev1.ResourceQuota{}, f.defaultInformer)\n}\n\nfunc (f *resourceQuotaInformer) Lister() corev1.ResourceQuotaLister {\n\treturn corev1.NewResourceQuotaLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/core/v1/secret.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapicorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tcorev1 \"k8s.io/client-go/listers/core/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// SecretInformer provides access to a shared informer and lister for\n// Secrets.\ntype SecretInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() corev1.SecretLister\n}\n\ntype secretInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewSecretInformer constructs a new informer for Secret type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewSecretInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredSecretInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredSecretInformer constructs a new informer for Secret type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredSecretInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CoreV1().Secrets(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CoreV1().Secrets(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apicorev1.Secret{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *secretInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredSecretInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *secretInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apicorev1.Secret{}, f.defaultInformer)\n}\n\nfunc (f *secretInformer) Lister() corev1.SecretLister {\n\treturn corev1.NewSecretLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/core/v1/service.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapicorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tcorev1 \"k8s.io/client-go/listers/core/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ServiceInformer provides access to a shared informer and lister for\n// Services.\ntype ServiceInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() corev1.ServiceLister\n}\n\ntype serviceInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewServiceInformer constructs a new informer for Service type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewServiceInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredServiceInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredServiceInformer constructs a new informer for Service type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredServiceInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CoreV1().Services(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CoreV1().Services(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apicorev1.Service{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *serviceInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredServiceInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *serviceInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apicorev1.Service{}, f.defaultInformer)\n}\n\nfunc (f *serviceInformer) Lister() corev1.ServiceLister {\n\treturn corev1.NewServiceLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/core/v1/serviceaccount.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapicorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tcorev1 \"k8s.io/client-go/listers/core/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ServiceAccountInformer provides access to a shared informer and lister for\n// ServiceAccounts.\ntype ServiceAccountInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() corev1.ServiceAccountLister\n}\n\ntype serviceAccountInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewServiceAccountInformer constructs a new informer for ServiceAccount type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewServiceAccountInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredServiceAccountInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredServiceAccountInformer constructs a new informer for ServiceAccount type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredServiceAccountInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CoreV1().ServiceAccounts(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.CoreV1().ServiceAccounts(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apicorev1.ServiceAccount{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *serviceAccountInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredServiceAccountInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *serviceAccountInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apicorev1.ServiceAccount{}, f.defaultInformer)\n}\n\nfunc (f *serviceAccountInformer) Lister() corev1.ServiceAccountLister {\n\treturn corev1.NewServiceAccountLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/discovery/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage discovery\n\nimport (\n\tv1 \"k8s.io/client-go/informers/discovery/v1\"\n\tv1beta1 \"k8s.io/client-go/informers/discovery/v1beta1\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to each of this group's versions.\ntype Interface interface {\n\t// V1 provides access to shared informers for resources in V1.\n\tV1() v1.Interface\n\t// V1beta1 provides access to shared informers for resources in V1beta1.\n\tV1beta1() v1beta1.Interface\n}\n\ntype group struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// V1 returns a new v1.Interface.\nfunc (g *group) V1() v1.Interface {\n\treturn v1.New(g.factory, g.namespace, g.tweakListOptions)\n}\n\n// V1beta1 returns a new v1beta1.Interface.\nfunc (g *group) V1beta1() v1beta1.Interface {\n\treturn v1beta1.New(g.factory, g.namespace, g.tweakListOptions)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/discovery/v1/endpointslice.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapidiscoveryv1 \"k8s.io/api/discovery/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tdiscoveryv1 \"k8s.io/client-go/listers/discovery/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// EndpointSliceInformer provides access to a shared informer and lister for\n// EndpointSlices.\ntype EndpointSliceInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() discoveryv1.EndpointSliceLister\n}\n\ntype endpointSliceInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewEndpointSliceInformer constructs a new informer for EndpointSlice type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewEndpointSliceInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredEndpointSliceInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredEndpointSliceInformer constructs a new informer for EndpointSlice type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredEndpointSliceInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.DiscoveryV1().EndpointSlices(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.DiscoveryV1().EndpointSlices(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apidiscoveryv1.EndpointSlice{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *endpointSliceInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredEndpointSliceInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *endpointSliceInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apidiscoveryv1.EndpointSlice{}, f.defaultInformer)\n}\n\nfunc (f *endpointSliceInformer) Lister() discoveryv1.EndpointSliceLister {\n\treturn discoveryv1.NewEndpointSliceLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/discovery/v1/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// EndpointSlices returns a EndpointSliceInformer.\n\tEndpointSlices() EndpointSliceInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// EndpointSlices returns a EndpointSliceInformer.\nfunc (v *version) EndpointSlices() EndpointSliceInformer {\n\treturn &endpointSliceInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/discovery/v1beta1/endpointslice.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapidiscoveryv1beta1 \"k8s.io/api/discovery/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tdiscoveryv1beta1 \"k8s.io/client-go/listers/discovery/v1beta1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// EndpointSliceInformer provides access to a shared informer and lister for\n// EndpointSlices.\ntype EndpointSliceInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() discoveryv1beta1.EndpointSliceLister\n}\n\ntype endpointSliceInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewEndpointSliceInformer constructs a new informer for EndpointSlice type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewEndpointSliceInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredEndpointSliceInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredEndpointSliceInformer constructs a new informer for EndpointSlice type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredEndpointSliceInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.DiscoveryV1beta1().EndpointSlices(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.DiscoveryV1beta1().EndpointSlices(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apidiscoveryv1beta1.EndpointSlice{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *endpointSliceInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredEndpointSliceInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *endpointSliceInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apidiscoveryv1beta1.EndpointSlice{}, f.defaultInformer)\n}\n\nfunc (f *endpointSliceInformer) Lister() discoveryv1beta1.EndpointSliceLister {\n\treturn discoveryv1beta1.NewEndpointSliceLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/discovery/v1beta1/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// EndpointSlices returns a EndpointSliceInformer.\n\tEndpointSlices() EndpointSliceInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// EndpointSlices returns a EndpointSliceInformer.\nfunc (v *version) EndpointSlices() EndpointSliceInformer {\n\treturn &endpointSliceInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/doc.go",
    "content": "/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package informers provides generated informers for Kubernetes APIs.\npackage informers // import \"k8s.io/client-go/informers\"\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/events/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage events\n\nimport (\n\tv1 \"k8s.io/client-go/informers/events/v1\"\n\tv1beta1 \"k8s.io/client-go/informers/events/v1beta1\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to each of this group's versions.\ntype Interface interface {\n\t// V1 provides access to shared informers for resources in V1.\n\tV1() v1.Interface\n\t// V1beta1 provides access to shared informers for resources in V1beta1.\n\tV1beta1() v1beta1.Interface\n}\n\ntype group struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// V1 returns a new v1.Interface.\nfunc (g *group) V1() v1.Interface {\n\treturn v1.New(g.factory, g.namespace, g.tweakListOptions)\n}\n\n// V1beta1 returns a new v1beta1.Interface.\nfunc (g *group) V1beta1() v1beta1.Interface {\n\treturn v1beta1.New(g.factory, g.namespace, g.tweakListOptions)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/events/v1/event.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapieventsv1 \"k8s.io/api/events/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\teventsv1 \"k8s.io/client-go/listers/events/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// EventInformer provides access to a shared informer and lister for\n// Events.\ntype EventInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() eventsv1.EventLister\n}\n\ntype eventInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewEventInformer constructs a new informer for Event type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewEventInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredEventInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredEventInformer constructs a new informer for Event type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredEventInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.EventsV1().Events(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.EventsV1().Events(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apieventsv1.Event{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *eventInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredEventInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *eventInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apieventsv1.Event{}, f.defaultInformer)\n}\n\nfunc (f *eventInformer) Lister() eventsv1.EventLister {\n\treturn eventsv1.NewEventLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/events/v1/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// Events returns a EventInformer.\n\tEvents() EventInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// Events returns a EventInformer.\nfunc (v *version) Events() EventInformer {\n\treturn &eventInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/events/v1beta1/event.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapieventsv1beta1 \"k8s.io/api/events/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\teventsv1beta1 \"k8s.io/client-go/listers/events/v1beta1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// EventInformer provides access to a shared informer and lister for\n// Events.\ntype EventInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() eventsv1beta1.EventLister\n}\n\ntype eventInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewEventInformer constructs a new informer for Event type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewEventInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredEventInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredEventInformer constructs a new informer for Event type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredEventInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.EventsV1beta1().Events(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.EventsV1beta1().Events(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apieventsv1beta1.Event{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *eventInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredEventInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *eventInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apieventsv1beta1.Event{}, f.defaultInformer)\n}\n\nfunc (f *eventInformer) Lister() eventsv1beta1.EventLister {\n\treturn eventsv1beta1.NewEventLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/events/v1beta1/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// Events returns a EventInformer.\n\tEvents() EventInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// Events returns a EventInformer.\nfunc (v *version) Events() EventInformer {\n\treturn &eventInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/extensions/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage extensions\n\nimport (\n\tv1beta1 \"k8s.io/client-go/informers/extensions/v1beta1\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to each of this group's versions.\ntype Interface interface {\n\t// V1beta1 provides access to shared informers for resources in V1beta1.\n\tV1beta1() v1beta1.Interface\n}\n\ntype group struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// V1beta1 returns a new v1beta1.Interface.\nfunc (g *group) V1beta1() v1beta1.Interface {\n\treturn v1beta1.New(g.factory, g.namespace, g.tweakListOptions)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/extensions/v1beta1/daemonset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiextensionsv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\textensionsv1beta1 \"k8s.io/client-go/listers/extensions/v1beta1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// DaemonSetInformer provides access to a shared informer and lister for\n// DaemonSets.\ntype DaemonSetInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() extensionsv1beta1.DaemonSetLister\n}\n\ntype daemonSetInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewDaemonSetInformer constructs a new informer for DaemonSet type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewDaemonSetInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredDaemonSetInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredDaemonSetInformer constructs a new informer for DaemonSet type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredDaemonSetInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.ExtensionsV1beta1().DaemonSets(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.ExtensionsV1beta1().DaemonSets(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiextensionsv1beta1.DaemonSet{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *daemonSetInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredDaemonSetInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *daemonSetInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiextensionsv1beta1.DaemonSet{}, f.defaultInformer)\n}\n\nfunc (f *daemonSetInformer) Lister() extensionsv1beta1.DaemonSetLister {\n\treturn extensionsv1beta1.NewDaemonSetLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/extensions/v1beta1/deployment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiextensionsv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\textensionsv1beta1 \"k8s.io/client-go/listers/extensions/v1beta1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// DeploymentInformer provides access to a shared informer and lister for\n// Deployments.\ntype DeploymentInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() extensionsv1beta1.DeploymentLister\n}\n\ntype deploymentInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewDeploymentInformer constructs a new informer for Deployment type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewDeploymentInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredDeploymentInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredDeploymentInformer constructs a new informer for Deployment type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredDeploymentInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.ExtensionsV1beta1().Deployments(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.ExtensionsV1beta1().Deployments(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiextensionsv1beta1.Deployment{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *deploymentInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredDeploymentInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *deploymentInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiextensionsv1beta1.Deployment{}, f.defaultInformer)\n}\n\nfunc (f *deploymentInformer) Lister() extensionsv1beta1.DeploymentLister {\n\treturn extensionsv1beta1.NewDeploymentLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/extensions/v1beta1/ingress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiextensionsv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\textensionsv1beta1 \"k8s.io/client-go/listers/extensions/v1beta1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// IngressInformer provides access to a shared informer and lister for\n// Ingresses.\ntype IngressInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() extensionsv1beta1.IngressLister\n}\n\ntype ingressInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewIngressInformer constructs a new informer for Ingress type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewIngressInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredIngressInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredIngressInformer constructs a new informer for Ingress type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredIngressInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.ExtensionsV1beta1().Ingresses(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.ExtensionsV1beta1().Ingresses(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiextensionsv1beta1.Ingress{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *ingressInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredIngressInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *ingressInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiextensionsv1beta1.Ingress{}, f.defaultInformer)\n}\n\nfunc (f *ingressInformer) Lister() extensionsv1beta1.IngressLister {\n\treturn extensionsv1beta1.NewIngressLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/extensions/v1beta1/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// DaemonSets returns a DaemonSetInformer.\n\tDaemonSets() DaemonSetInformer\n\t// Deployments returns a DeploymentInformer.\n\tDeployments() DeploymentInformer\n\t// Ingresses returns a IngressInformer.\n\tIngresses() IngressInformer\n\t// NetworkPolicies returns a NetworkPolicyInformer.\n\tNetworkPolicies() NetworkPolicyInformer\n\t// ReplicaSets returns a ReplicaSetInformer.\n\tReplicaSets() ReplicaSetInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// DaemonSets returns a DaemonSetInformer.\nfunc (v *version) DaemonSets() DaemonSetInformer {\n\treturn &daemonSetInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n\n// Deployments returns a DeploymentInformer.\nfunc (v *version) Deployments() DeploymentInformer {\n\treturn &deploymentInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n\n// Ingresses returns a IngressInformer.\nfunc (v *version) Ingresses() IngressInformer {\n\treturn &ingressInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n\n// NetworkPolicies returns a NetworkPolicyInformer.\nfunc (v *version) NetworkPolicies() NetworkPolicyInformer {\n\treturn &networkPolicyInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n\n// ReplicaSets returns a ReplicaSetInformer.\nfunc (v *version) ReplicaSets() ReplicaSetInformer {\n\treturn &replicaSetInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/extensions/v1beta1/networkpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiextensionsv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\textensionsv1beta1 \"k8s.io/client-go/listers/extensions/v1beta1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// NetworkPolicyInformer provides access to a shared informer and lister for\n// NetworkPolicies.\ntype NetworkPolicyInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() extensionsv1beta1.NetworkPolicyLister\n}\n\ntype networkPolicyInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewNetworkPolicyInformer constructs a new informer for NetworkPolicy type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewNetworkPolicyInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredNetworkPolicyInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredNetworkPolicyInformer constructs a new informer for NetworkPolicy type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredNetworkPolicyInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.ExtensionsV1beta1().NetworkPolicies(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.ExtensionsV1beta1().NetworkPolicies(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiextensionsv1beta1.NetworkPolicy{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *networkPolicyInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredNetworkPolicyInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *networkPolicyInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiextensionsv1beta1.NetworkPolicy{}, f.defaultInformer)\n}\n\nfunc (f *networkPolicyInformer) Lister() extensionsv1beta1.NetworkPolicyLister {\n\treturn extensionsv1beta1.NewNetworkPolicyLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/extensions/v1beta1/replicaset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiextensionsv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\textensionsv1beta1 \"k8s.io/client-go/listers/extensions/v1beta1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ReplicaSetInformer provides access to a shared informer and lister for\n// ReplicaSets.\ntype ReplicaSetInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() extensionsv1beta1.ReplicaSetLister\n}\n\ntype replicaSetInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewReplicaSetInformer constructs a new informer for ReplicaSet type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewReplicaSetInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredReplicaSetInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredReplicaSetInformer constructs a new informer for ReplicaSet type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredReplicaSetInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.ExtensionsV1beta1().ReplicaSets(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.ExtensionsV1beta1().ReplicaSets(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiextensionsv1beta1.ReplicaSet{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *replicaSetInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredReplicaSetInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *replicaSetInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiextensionsv1beta1.ReplicaSet{}, f.defaultInformer)\n}\n\nfunc (f *replicaSetInformer) Lister() extensionsv1beta1.ReplicaSetLister {\n\treturn extensionsv1beta1.NewReplicaSetLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/factory.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage informers\n\nimport (\n\treflect \"reflect\"\n\tsync \"sync\"\n\ttime \"time\"\n\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n\tadmissionregistration \"k8s.io/client-go/informers/admissionregistration\"\n\tapiserverinternal \"k8s.io/client-go/informers/apiserverinternal\"\n\tapps \"k8s.io/client-go/informers/apps\"\n\tautoscaling \"k8s.io/client-go/informers/autoscaling\"\n\tbatch \"k8s.io/client-go/informers/batch\"\n\tcertificates \"k8s.io/client-go/informers/certificates\"\n\tcoordination \"k8s.io/client-go/informers/coordination\"\n\tcore \"k8s.io/client-go/informers/core\"\n\tdiscovery \"k8s.io/client-go/informers/discovery\"\n\tevents \"k8s.io/client-go/informers/events\"\n\textensions \"k8s.io/client-go/informers/extensions\"\n\tflowcontrol \"k8s.io/client-go/informers/flowcontrol\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tnetworking \"k8s.io/client-go/informers/networking\"\n\tnode \"k8s.io/client-go/informers/node\"\n\tpolicy \"k8s.io/client-go/informers/policy\"\n\trbac \"k8s.io/client-go/informers/rbac\"\n\tresource \"k8s.io/client-go/informers/resource\"\n\tscheduling \"k8s.io/client-go/informers/scheduling\"\n\tstorage \"k8s.io/client-go/informers/storage\"\n\tstoragemigration \"k8s.io/client-go/informers/storagemigration\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// SharedInformerOption defines the functional option type for SharedInformerFactory.\ntype SharedInformerOption func(*sharedInformerFactory) *sharedInformerFactory\n\ntype sharedInformerFactory struct {\n\tclient           kubernetes.Interface\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tlock             sync.Mutex\n\tdefaultResync    time.Duration\n\tcustomResync     map[reflect.Type]time.Duration\n\ttransform        cache.TransformFunc\n\n\tinformers map[reflect.Type]cache.SharedIndexInformer\n\t// startedInformers is used for tracking which informers have been started.\n\t// This allows Start() to be called multiple times safely.\n\tstartedInformers map[reflect.Type]bool\n\t// wg tracks how many goroutines were started.\n\twg sync.WaitGroup\n\t// shuttingDown is true when Shutdown has been called. It may still be running\n\t// because it needs to wait for goroutines.\n\tshuttingDown bool\n}\n\n// WithCustomResyncConfig sets a custom resync period for the specified informer types.\nfunc WithCustomResyncConfig(resyncConfig map[v1.Object]time.Duration) SharedInformerOption {\n\treturn func(factory *sharedInformerFactory) *sharedInformerFactory {\n\t\tfor k, v := range resyncConfig {\n\t\t\tfactory.customResync[reflect.TypeOf(k)] = v\n\t\t}\n\t\treturn factory\n\t}\n}\n\n// WithTweakListOptions sets a custom filter on all listers of the configured SharedInformerFactory.\nfunc WithTweakListOptions(tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerOption {\n\treturn func(factory *sharedInformerFactory) *sharedInformerFactory {\n\t\tfactory.tweakListOptions = tweakListOptions\n\t\treturn factory\n\t}\n}\n\n// WithNamespace limits the SharedInformerFactory to the specified namespace.\nfunc WithNamespace(namespace string) SharedInformerOption {\n\treturn func(factory *sharedInformerFactory) *sharedInformerFactory {\n\t\tfactory.namespace = namespace\n\t\treturn factory\n\t}\n}\n\n// WithTransform sets a transform on all informers.\nfunc WithTransform(transform cache.TransformFunc) SharedInformerOption {\n\treturn func(factory *sharedInformerFactory) *sharedInformerFactory {\n\t\tfactory.transform = transform\n\t\treturn factory\n\t}\n}\n\n// NewSharedInformerFactory constructs a new instance of sharedInformerFactory for all namespaces.\nfunc NewSharedInformerFactory(client kubernetes.Interface, defaultResync time.Duration) SharedInformerFactory {\n\treturn NewSharedInformerFactoryWithOptions(client, defaultResync)\n}\n\n// NewFilteredSharedInformerFactory constructs a new instance of sharedInformerFactory.\n// Listers obtained via this SharedInformerFactory will be subject to the same filters\n// as specified here.\n// Deprecated: Please use NewSharedInformerFactoryWithOptions instead\nfunc NewFilteredSharedInformerFactory(client kubernetes.Interface, defaultResync time.Duration, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerFactory {\n\treturn NewSharedInformerFactoryWithOptions(client, defaultResync, WithNamespace(namespace), WithTweakListOptions(tweakListOptions))\n}\n\n// NewSharedInformerFactoryWithOptions constructs a new instance of a SharedInformerFactory with additional options.\nfunc NewSharedInformerFactoryWithOptions(client kubernetes.Interface, defaultResync time.Duration, options ...SharedInformerOption) SharedInformerFactory {\n\tfactory := &sharedInformerFactory{\n\t\tclient:           client,\n\t\tnamespace:        v1.NamespaceAll,\n\t\tdefaultResync:    defaultResync,\n\t\tinformers:        make(map[reflect.Type]cache.SharedIndexInformer),\n\t\tstartedInformers: make(map[reflect.Type]bool),\n\t\tcustomResync:     make(map[reflect.Type]time.Duration),\n\t}\n\n\t// Apply all options\n\tfor _, opt := range options {\n\t\tfactory = opt(factory)\n\t}\n\n\treturn factory\n}\n\nfunc (f *sharedInformerFactory) Start(stopCh <-chan struct{}) {\n\tf.lock.Lock()\n\tdefer f.lock.Unlock()\n\n\tif f.shuttingDown {\n\t\treturn\n\t}\n\n\tfor informerType, informer := range f.informers {\n\t\tif !f.startedInformers[informerType] {\n\t\t\tf.wg.Add(1)\n\t\t\t// We need a new variable in each loop iteration,\n\t\t\t// otherwise the goroutine would use the loop variable\n\t\t\t// and that keeps changing.\n\t\t\tinformer := informer\n\t\t\tgo func() {\n\t\t\t\tdefer f.wg.Done()\n\t\t\t\tinformer.Run(stopCh)\n\t\t\t}()\n\t\t\tf.startedInformers[informerType] = true\n\t\t}\n\t}\n}\n\nfunc (f *sharedInformerFactory) Shutdown() {\n\tf.lock.Lock()\n\tf.shuttingDown = true\n\tf.lock.Unlock()\n\n\t// Will return immediately if there is nothing to wait for.\n\tf.wg.Wait()\n}\n\nfunc (f *sharedInformerFactory) WaitForCacheSync(stopCh <-chan struct{}) map[reflect.Type]bool {\n\tinformers := func() map[reflect.Type]cache.SharedIndexInformer {\n\t\tf.lock.Lock()\n\t\tdefer f.lock.Unlock()\n\n\t\tinformers := map[reflect.Type]cache.SharedIndexInformer{}\n\t\tfor informerType, informer := range f.informers {\n\t\t\tif f.startedInformers[informerType] {\n\t\t\t\tinformers[informerType] = informer\n\t\t\t}\n\t\t}\n\t\treturn informers\n\t}()\n\n\tres := map[reflect.Type]bool{}\n\tfor informType, informer := range informers {\n\t\tres[informType] = cache.WaitForCacheSync(stopCh, informer.HasSynced)\n\t}\n\treturn res\n}\n\n// InformerFor returns the SharedIndexInformer for obj using an internal\n// client.\nfunc (f *sharedInformerFactory) InformerFor(obj runtime.Object, newFunc internalinterfaces.NewInformerFunc) cache.SharedIndexInformer {\n\tf.lock.Lock()\n\tdefer f.lock.Unlock()\n\n\tinformerType := reflect.TypeOf(obj)\n\tinformer, exists := f.informers[informerType]\n\tif exists {\n\t\treturn informer\n\t}\n\n\tresyncPeriod, exists := f.customResync[informerType]\n\tif !exists {\n\t\tresyncPeriod = f.defaultResync\n\t}\n\n\tinformer = newFunc(f.client, resyncPeriod)\n\tinformer.SetTransform(f.transform)\n\tf.informers[informerType] = informer\n\n\treturn informer\n}\n\n// SharedInformerFactory provides shared informers for resources in all known\n// API group versions.\n//\n// It is typically used like this:\n//\n//\tctx, cancel := context.Background()\n//\tdefer cancel()\n//\tfactory := NewSharedInformerFactory(client, resyncPeriod)\n//\tdefer factory.WaitForStop()    // Returns immediately if nothing was started.\n//\tgenericInformer := factory.ForResource(resource)\n//\ttypedInformer := factory.SomeAPIGroup().V1().SomeType()\n//\tfactory.Start(ctx.Done())          // Start processing these informers.\n//\tsynced := factory.WaitForCacheSync(ctx.Done())\n//\tfor v, ok := range synced {\n//\t    if !ok {\n//\t        fmt.Fprintf(os.Stderr, \"caches failed to sync: %v\", v)\n//\t        return\n//\t    }\n//\t}\n//\n//\t// Creating informers can also be created after Start, but then\n//\t// Start must be called again:\n//\tanotherGenericInformer := factory.ForResource(resource)\n//\tfactory.Start(ctx.Done())\ntype SharedInformerFactory interface {\n\tinternalinterfaces.SharedInformerFactory\n\n\t// Start initializes all requested informers. They are handled in goroutines\n\t// which run until the stop channel gets closed.\n\t// Warning: Start does not block. When run in a go-routine, it will race with a later WaitForCacheSync.\n\tStart(stopCh <-chan struct{})\n\n\t// Shutdown marks a factory as shutting down. At that point no new\n\t// informers can be started anymore and Start will return without\n\t// doing anything.\n\t//\n\t// In addition, Shutdown blocks until all goroutines have terminated. For that\n\t// to happen, the close channel(s) that they were started with must be closed,\n\t// either before Shutdown gets called or while it is waiting.\n\t//\n\t// Shutdown may be called multiple times, even concurrently. All such calls will\n\t// block until all goroutines have terminated.\n\tShutdown()\n\n\t// WaitForCacheSync blocks until all started informers' caches were synced\n\t// or the stop channel gets closed.\n\tWaitForCacheSync(stopCh <-chan struct{}) map[reflect.Type]bool\n\n\t// ForResource gives generic access to a shared informer of the matching type.\n\tForResource(resource schema.GroupVersionResource) (GenericInformer, error)\n\n\t// InformerFor returns the SharedIndexInformer for obj using an internal\n\t// client.\n\tInformerFor(obj runtime.Object, newFunc internalinterfaces.NewInformerFunc) cache.SharedIndexInformer\n\n\tAdmissionregistration() admissionregistration.Interface\n\tInternal() apiserverinternal.Interface\n\tApps() apps.Interface\n\tAutoscaling() autoscaling.Interface\n\tBatch() batch.Interface\n\tCertificates() certificates.Interface\n\tCoordination() coordination.Interface\n\tCore() core.Interface\n\tDiscovery() discovery.Interface\n\tEvents() events.Interface\n\tExtensions() extensions.Interface\n\tFlowcontrol() flowcontrol.Interface\n\tNetworking() networking.Interface\n\tNode() node.Interface\n\tPolicy() policy.Interface\n\tRbac() rbac.Interface\n\tResource() resource.Interface\n\tScheduling() scheduling.Interface\n\tStorage() storage.Interface\n\tStoragemigration() storagemigration.Interface\n}\n\nfunc (f *sharedInformerFactory) Admissionregistration() admissionregistration.Interface {\n\treturn admissionregistration.New(f, f.namespace, f.tweakListOptions)\n}\n\nfunc (f *sharedInformerFactory) Internal() apiserverinternal.Interface {\n\treturn apiserverinternal.New(f, f.namespace, f.tweakListOptions)\n}\n\nfunc (f *sharedInformerFactory) Apps() apps.Interface {\n\treturn apps.New(f, f.namespace, f.tweakListOptions)\n}\n\nfunc (f *sharedInformerFactory) Autoscaling() autoscaling.Interface {\n\treturn autoscaling.New(f, f.namespace, f.tweakListOptions)\n}\n\nfunc (f *sharedInformerFactory) Batch() batch.Interface {\n\treturn batch.New(f, f.namespace, f.tweakListOptions)\n}\n\nfunc (f *sharedInformerFactory) Certificates() certificates.Interface {\n\treturn certificates.New(f, f.namespace, f.tweakListOptions)\n}\n\nfunc (f *sharedInformerFactory) Coordination() coordination.Interface {\n\treturn coordination.New(f, f.namespace, f.tweakListOptions)\n}\n\nfunc (f *sharedInformerFactory) Core() core.Interface {\n\treturn core.New(f, f.namespace, f.tweakListOptions)\n}\n\nfunc (f *sharedInformerFactory) Discovery() discovery.Interface {\n\treturn discovery.New(f, f.namespace, f.tweakListOptions)\n}\n\nfunc (f *sharedInformerFactory) Events() events.Interface {\n\treturn events.New(f, f.namespace, f.tweakListOptions)\n}\n\nfunc (f *sharedInformerFactory) Extensions() extensions.Interface {\n\treturn extensions.New(f, f.namespace, f.tweakListOptions)\n}\n\nfunc (f *sharedInformerFactory) Flowcontrol() flowcontrol.Interface {\n\treturn flowcontrol.New(f, f.namespace, f.tweakListOptions)\n}\n\nfunc (f *sharedInformerFactory) Networking() networking.Interface {\n\treturn networking.New(f, f.namespace, f.tweakListOptions)\n}\n\nfunc (f *sharedInformerFactory) Node() node.Interface {\n\treturn node.New(f, f.namespace, f.tweakListOptions)\n}\n\nfunc (f *sharedInformerFactory) Policy() policy.Interface {\n\treturn policy.New(f, f.namespace, f.tweakListOptions)\n}\n\nfunc (f *sharedInformerFactory) Rbac() rbac.Interface {\n\treturn rbac.New(f, f.namespace, f.tweakListOptions)\n}\n\nfunc (f *sharedInformerFactory) Resource() resource.Interface {\n\treturn resource.New(f, f.namespace, f.tweakListOptions)\n}\n\nfunc (f *sharedInformerFactory) Scheduling() scheduling.Interface {\n\treturn scheduling.New(f, f.namespace, f.tweakListOptions)\n}\n\nfunc (f *sharedInformerFactory) Storage() storage.Interface {\n\treturn storage.New(f, f.namespace, f.tweakListOptions)\n}\n\nfunc (f *sharedInformerFactory) Storagemigration() storagemigration.Interface {\n\treturn storagemigration.New(f, f.namespace, f.tweakListOptions)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/flowcontrol/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage flowcontrol\n\nimport (\n\tv1 \"k8s.io/client-go/informers/flowcontrol/v1\"\n\tv1beta1 \"k8s.io/client-go/informers/flowcontrol/v1beta1\"\n\tv1beta2 \"k8s.io/client-go/informers/flowcontrol/v1beta2\"\n\tv1beta3 \"k8s.io/client-go/informers/flowcontrol/v1beta3\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to each of this group's versions.\ntype Interface interface {\n\t// V1 provides access to shared informers for resources in V1.\n\tV1() v1.Interface\n\t// V1beta1 provides access to shared informers for resources in V1beta1.\n\tV1beta1() v1beta1.Interface\n\t// V1beta2 provides access to shared informers for resources in V1beta2.\n\tV1beta2() v1beta2.Interface\n\t// V1beta3 provides access to shared informers for resources in V1beta3.\n\tV1beta3() v1beta3.Interface\n}\n\ntype group struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// V1 returns a new v1.Interface.\nfunc (g *group) V1() v1.Interface {\n\treturn v1.New(g.factory, g.namespace, g.tweakListOptions)\n}\n\n// V1beta1 returns a new v1beta1.Interface.\nfunc (g *group) V1beta1() v1beta1.Interface {\n\treturn v1beta1.New(g.factory, g.namespace, g.tweakListOptions)\n}\n\n// V1beta2 returns a new v1beta2.Interface.\nfunc (g *group) V1beta2() v1beta2.Interface {\n\treturn v1beta2.New(g.factory, g.namespace, g.tweakListOptions)\n}\n\n// V1beta3 returns a new v1beta3.Interface.\nfunc (g *group) V1beta3() v1beta3.Interface {\n\treturn v1beta3.New(g.factory, g.namespace, g.tweakListOptions)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/flowcontrol/v1/flowschema.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiflowcontrolv1 \"k8s.io/api/flowcontrol/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tflowcontrolv1 \"k8s.io/client-go/listers/flowcontrol/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// FlowSchemaInformer provides access to a shared informer and lister for\n// FlowSchemas.\ntype FlowSchemaInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() flowcontrolv1.FlowSchemaLister\n}\n\ntype flowSchemaInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewFlowSchemaInformer constructs a new informer for FlowSchema type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFlowSchemaInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredFlowSchemaInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredFlowSchemaInformer constructs a new informer for FlowSchema type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredFlowSchemaInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.FlowcontrolV1().FlowSchemas().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.FlowcontrolV1().FlowSchemas().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiflowcontrolv1.FlowSchema{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *flowSchemaInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredFlowSchemaInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *flowSchemaInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiflowcontrolv1.FlowSchema{}, f.defaultInformer)\n}\n\nfunc (f *flowSchemaInformer) Lister() flowcontrolv1.FlowSchemaLister {\n\treturn flowcontrolv1.NewFlowSchemaLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/flowcontrol/v1/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// FlowSchemas returns a FlowSchemaInformer.\n\tFlowSchemas() FlowSchemaInformer\n\t// PriorityLevelConfigurations returns a PriorityLevelConfigurationInformer.\n\tPriorityLevelConfigurations() PriorityLevelConfigurationInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// FlowSchemas returns a FlowSchemaInformer.\nfunc (v *version) FlowSchemas() FlowSchemaInformer {\n\treturn &flowSchemaInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n\n// PriorityLevelConfigurations returns a PriorityLevelConfigurationInformer.\nfunc (v *version) PriorityLevelConfigurations() PriorityLevelConfigurationInformer {\n\treturn &priorityLevelConfigurationInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/flowcontrol/v1/prioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiflowcontrolv1 \"k8s.io/api/flowcontrol/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tflowcontrolv1 \"k8s.io/client-go/listers/flowcontrol/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// PriorityLevelConfigurationInformer provides access to a shared informer and lister for\n// PriorityLevelConfigurations.\ntype PriorityLevelConfigurationInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() flowcontrolv1.PriorityLevelConfigurationLister\n}\n\ntype priorityLevelConfigurationInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewPriorityLevelConfigurationInformer constructs a new informer for PriorityLevelConfiguration type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewPriorityLevelConfigurationInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredPriorityLevelConfigurationInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredPriorityLevelConfigurationInformer constructs a new informer for PriorityLevelConfiguration type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredPriorityLevelConfigurationInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.FlowcontrolV1().PriorityLevelConfigurations().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.FlowcontrolV1().PriorityLevelConfigurations().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiflowcontrolv1.PriorityLevelConfiguration{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *priorityLevelConfigurationInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredPriorityLevelConfigurationInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *priorityLevelConfigurationInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiflowcontrolv1.PriorityLevelConfiguration{}, f.defaultInformer)\n}\n\nfunc (f *priorityLevelConfigurationInformer) Lister() flowcontrolv1.PriorityLevelConfigurationLister {\n\treturn flowcontrolv1.NewPriorityLevelConfigurationLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/flowcontrol/v1beta1/flowschema.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiflowcontrolv1beta1 \"k8s.io/api/flowcontrol/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tflowcontrolv1beta1 \"k8s.io/client-go/listers/flowcontrol/v1beta1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// FlowSchemaInformer provides access to a shared informer and lister for\n// FlowSchemas.\ntype FlowSchemaInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() flowcontrolv1beta1.FlowSchemaLister\n}\n\ntype flowSchemaInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewFlowSchemaInformer constructs a new informer for FlowSchema type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFlowSchemaInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredFlowSchemaInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredFlowSchemaInformer constructs a new informer for FlowSchema type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredFlowSchemaInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.FlowcontrolV1beta1().FlowSchemas().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.FlowcontrolV1beta1().FlowSchemas().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiflowcontrolv1beta1.FlowSchema{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *flowSchemaInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredFlowSchemaInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *flowSchemaInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiflowcontrolv1beta1.FlowSchema{}, f.defaultInformer)\n}\n\nfunc (f *flowSchemaInformer) Lister() flowcontrolv1beta1.FlowSchemaLister {\n\treturn flowcontrolv1beta1.NewFlowSchemaLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/flowcontrol/v1beta1/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// FlowSchemas returns a FlowSchemaInformer.\n\tFlowSchemas() FlowSchemaInformer\n\t// PriorityLevelConfigurations returns a PriorityLevelConfigurationInformer.\n\tPriorityLevelConfigurations() PriorityLevelConfigurationInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// FlowSchemas returns a FlowSchemaInformer.\nfunc (v *version) FlowSchemas() FlowSchemaInformer {\n\treturn &flowSchemaInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n\n// PriorityLevelConfigurations returns a PriorityLevelConfigurationInformer.\nfunc (v *version) PriorityLevelConfigurations() PriorityLevelConfigurationInformer {\n\treturn &priorityLevelConfigurationInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/flowcontrol/v1beta1/prioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiflowcontrolv1beta1 \"k8s.io/api/flowcontrol/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tflowcontrolv1beta1 \"k8s.io/client-go/listers/flowcontrol/v1beta1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// PriorityLevelConfigurationInformer provides access to a shared informer and lister for\n// PriorityLevelConfigurations.\ntype PriorityLevelConfigurationInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() flowcontrolv1beta1.PriorityLevelConfigurationLister\n}\n\ntype priorityLevelConfigurationInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewPriorityLevelConfigurationInformer constructs a new informer for PriorityLevelConfiguration type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewPriorityLevelConfigurationInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredPriorityLevelConfigurationInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredPriorityLevelConfigurationInformer constructs a new informer for PriorityLevelConfiguration type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredPriorityLevelConfigurationInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.FlowcontrolV1beta1().PriorityLevelConfigurations().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.FlowcontrolV1beta1().PriorityLevelConfigurations().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiflowcontrolv1beta1.PriorityLevelConfiguration{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *priorityLevelConfigurationInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredPriorityLevelConfigurationInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *priorityLevelConfigurationInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiflowcontrolv1beta1.PriorityLevelConfiguration{}, f.defaultInformer)\n}\n\nfunc (f *priorityLevelConfigurationInformer) Lister() flowcontrolv1beta1.PriorityLevelConfigurationLister {\n\treturn flowcontrolv1beta1.NewPriorityLevelConfigurationLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/flowcontrol/v1beta2/flowschema.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiflowcontrolv1beta2 \"k8s.io/api/flowcontrol/v1beta2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tflowcontrolv1beta2 \"k8s.io/client-go/listers/flowcontrol/v1beta2\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// FlowSchemaInformer provides access to a shared informer and lister for\n// FlowSchemas.\ntype FlowSchemaInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() flowcontrolv1beta2.FlowSchemaLister\n}\n\ntype flowSchemaInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewFlowSchemaInformer constructs a new informer for FlowSchema type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFlowSchemaInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredFlowSchemaInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredFlowSchemaInformer constructs a new informer for FlowSchema type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredFlowSchemaInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.FlowcontrolV1beta2().FlowSchemas().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.FlowcontrolV1beta2().FlowSchemas().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiflowcontrolv1beta2.FlowSchema{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *flowSchemaInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredFlowSchemaInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *flowSchemaInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiflowcontrolv1beta2.FlowSchema{}, f.defaultInformer)\n}\n\nfunc (f *flowSchemaInformer) Lister() flowcontrolv1beta2.FlowSchemaLister {\n\treturn flowcontrolv1beta2.NewFlowSchemaLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/flowcontrol/v1beta2/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// FlowSchemas returns a FlowSchemaInformer.\n\tFlowSchemas() FlowSchemaInformer\n\t// PriorityLevelConfigurations returns a PriorityLevelConfigurationInformer.\n\tPriorityLevelConfigurations() PriorityLevelConfigurationInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// FlowSchemas returns a FlowSchemaInformer.\nfunc (v *version) FlowSchemas() FlowSchemaInformer {\n\treturn &flowSchemaInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n\n// PriorityLevelConfigurations returns a PriorityLevelConfigurationInformer.\nfunc (v *version) PriorityLevelConfigurations() PriorityLevelConfigurationInformer {\n\treturn &priorityLevelConfigurationInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/flowcontrol/v1beta2/prioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiflowcontrolv1beta2 \"k8s.io/api/flowcontrol/v1beta2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tflowcontrolv1beta2 \"k8s.io/client-go/listers/flowcontrol/v1beta2\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// PriorityLevelConfigurationInformer provides access to a shared informer and lister for\n// PriorityLevelConfigurations.\ntype PriorityLevelConfigurationInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() flowcontrolv1beta2.PriorityLevelConfigurationLister\n}\n\ntype priorityLevelConfigurationInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewPriorityLevelConfigurationInformer constructs a new informer for PriorityLevelConfiguration type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewPriorityLevelConfigurationInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredPriorityLevelConfigurationInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredPriorityLevelConfigurationInformer constructs a new informer for PriorityLevelConfiguration type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredPriorityLevelConfigurationInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.FlowcontrolV1beta2().PriorityLevelConfigurations().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.FlowcontrolV1beta2().PriorityLevelConfigurations().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiflowcontrolv1beta2.PriorityLevelConfiguration{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *priorityLevelConfigurationInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredPriorityLevelConfigurationInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *priorityLevelConfigurationInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiflowcontrolv1beta2.PriorityLevelConfiguration{}, f.defaultInformer)\n}\n\nfunc (f *priorityLevelConfigurationInformer) Lister() flowcontrolv1beta2.PriorityLevelConfigurationLister {\n\treturn flowcontrolv1beta2.NewPriorityLevelConfigurationLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/flowcontrol/v1beta3/flowschema.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta3\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiflowcontrolv1beta3 \"k8s.io/api/flowcontrol/v1beta3\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tflowcontrolv1beta3 \"k8s.io/client-go/listers/flowcontrol/v1beta3\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// FlowSchemaInformer provides access to a shared informer and lister for\n// FlowSchemas.\ntype FlowSchemaInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() flowcontrolv1beta3.FlowSchemaLister\n}\n\ntype flowSchemaInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewFlowSchemaInformer constructs a new informer for FlowSchema type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFlowSchemaInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredFlowSchemaInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredFlowSchemaInformer constructs a new informer for FlowSchema type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredFlowSchemaInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.FlowcontrolV1beta3().FlowSchemas().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.FlowcontrolV1beta3().FlowSchemas().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiflowcontrolv1beta3.FlowSchema{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *flowSchemaInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredFlowSchemaInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *flowSchemaInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiflowcontrolv1beta3.FlowSchema{}, f.defaultInformer)\n}\n\nfunc (f *flowSchemaInformer) Lister() flowcontrolv1beta3.FlowSchemaLister {\n\treturn flowcontrolv1beta3.NewFlowSchemaLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/flowcontrol/v1beta3/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta3\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// FlowSchemas returns a FlowSchemaInformer.\n\tFlowSchemas() FlowSchemaInformer\n\t// PriorityLevelConfigurations returns a PriorityLevelConfigurationInformer.\n\tPriorityLevelConfigurations() PriorityLevelConfigurationInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// FlowSchemas returns a FlowSchemaInformer.\nfunc (v *version) FlowSchemas() FlowSchemaInformer {\n\treturn &flowSchemaInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n\n// PriorityLevelConfigurations returns a PriorityLevelConfigurationInformer.\nfunc (v *version) PriorityLevelConfigurations() PriorityLevelConfigurationInformer {\n\treturn &priorityLevelConfigurationInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/flowcontrol/v1beta3/prioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta3\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiflowcontrolv1beta3 \"k8s.io/api/flowcontrol/v1beta3\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tflowcontrolv1beta3 \"k8s.io/client-go/listers/flowcontrol/v1beta3\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// PriorityLevelConfigurationInformer provides access to a shared informer and lister for\n// PriorityLevelConfigurations.\ntype PriorityLevelConfigurationInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() flowcontrolv1beta3.PriorityLevelConfigurationLister\n}\n\ntype priorityLevelConfigurationInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewPriorityLevelConfigurationInformer constructs a new informer for PriorityLevelConfiguration type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewPriorityLevelConfigurationInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredPriorityLevelConfigurationInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredPriorityLevelConfigurationInformer constructs a new informer for PriorityLevelConfiguration type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredPriorityLevelConfigurationInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.FlowcontrolV1beta3().PriorityLevelConfigurations().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.FlowcontrolV1beta3().PriorityLevelConfigurations().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiflowcontrolv1beta3.PriorityLevelConfiguration{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *priorityLevelConfigurationInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredPriorityLevelConfigurationInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *priorityLevelConfigurationInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiflowcontrolv1beta3.PriorityLevelConfiguration{}, f.defaultInformer)\n}\n\nfunc (f *priorityLevelConfigurationInformer) Lister() flowcontrolv1beta3.PriorityLevelConfigurationLister {\n\treturn flowcontrolv1beta3.NewPriorityLevelConfigurationLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/generic.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage informers\n\nimport (\n\tfmt \"fmt\"\n\n\tv1 \"k8s.io/api/admissionregistration/v1\"\n\tv1alpha1 \"k8s.io/api/admissionregistration/v1alpha1\"\n\tv1beta1 \"k8s.io/api/admissionregistration/v1beta1\"\n\tapiserverinternalv1alpha1 \"k8s.io/api/apiserverinternal/v1alpha1\"\n\tappsv1 \"k8s.io/api/apps/v1\"\n\tappsv1beta1 \"k8s.io/api/apps/v1beta1\"\n\tv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tautoscalingv1 \"k8s.io/api/autoscaling/v1\"\n\tv2 \"k8s.io/api/autoscaling/v2\"\n\tv2beta1 \"k8s.io/api/autoscaling/v2beta1\"\n\tv2beta2 \"k8s.io/api/autoscaling/v2beta2\"\n\tbatchv1 \"k8s.io/api/batch/v1\"\n\tbatchv1beta1 \"k8s.io/api/batch/v1beta1\"\n\tcertificatesv1 \"k8s.io/api/certificates/v1\"\n\tcertificatesv1alpha1 \"k8s.io/api/certificates/v1alpha1\"\n\tcertificatesv1beta1 \"k8s.io/api/certificates/v1beta1\"\n\tcoordinationv1 \"k8s.io/api/coordination/v1\"\n\tv1alpha2 \"k8s.io/api/coordination/v1alpha2\"\n\tcoordinationv1beta1 \"k8s.io/api/coordination/v1beta1\"\n\tcorev1 \"k8s.io/api/core/v1\"\n\tdiscoveryv1 \"k8s.io/api/discovery/v1\"\n\tdiscoveryv1beta1 \"k8s.io/api/discovery/v1beta1\"\n\teventsv1 \"k8s.io/api/events/v1\"\n\teventsv1beta1 \"k8s.io/api/events/v1beta1\"\n\textensionsv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tflowcontrolv1 \"k8s.io/api/flowcontrol/v1\"\n\tflowcontrolv1beta1 \"k8s.io/api/flowcontrol/v1beta1\"\n\tflowcontrolv1beta2 \"k8s.io/api/flowcontrol/v1beta2\"\n\tv1beta3 \"k8s.io/api/flowcontrol/v1beta3\"\n\tnetworkingv1 \"k8s.io/api/networking/v1\"\n\tnetworkingv1alpha1 \"k8s.io/api/networking/v1alpha1\"\n\tnetworkingv1beta1 \"k8s.io/api/networking/v1beta1\"\n\tnodev1 \"k8s.io/api/node/v1\"\n\tnodev1alpha1 \"k8s.io/api/node/v1alpha1\"\n\tnodev1beta1 \"k8s.io/api/node/v1beta1\"\n\tpolicyv1 \"k8s.io/api/policy/v1\"\n\tpolicyv1beta1 \"k8s.io/api/policy/v1beta1\"\n\trbacv1 \"k8s.io/api/rbac/v1\"\n\trbacv1alpha1 \"k8s.io/api/rbac/v1alpha1\"\n\trbacv1beta1 \"k8s.io/api/rbac/v1beta1\"\n\tv1alpha3 \"k8s.io/api/resource/v1alpha3\"\n\tresourcev1beta1 \"k8s.io/api/resource/v1beta1\"\n\tschedulingv1 \"k8s.io/api/scheduling/v1\"\n\tschedulingv1alpha1 \"k8s.io/api/scheduling/v1alpha1\"\n\tschedulingv1beta1 \"k8s.io/api/scheduling/v1beta1\"\n\tstoragev1 \"k8s.io/api/storage/v1\"\n\tstoragev1alpha1 \"k8s.io/api/storage/v1alpha1\"\n\tstoragev1beta1 \"k8s.io/api/storage/v1beta1\"\n\tstoragemigrationv1alpha1 \"k8s.io/api/storagemigration/v1alpha1\"\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// GenericInformer is type of SharedIndexInformer which will locate and delegate to other\n// sharedInformers based on type\ntype GenericInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() cache.GenericLister\n}\n\ntype genericInformer struct {\n\tinformer cache.SharedIndexInformer\n\tresource schema.GroupResource\n}\n\n// Informer returns the SharedIndexInformer.\nfunc (f *genericInformer) Informer() cache.SharedIndexInformer {\n\treturn f.informer\n}\n\n// Lister returns the GenericLister.\nfunc (f *genericInformer) Lister() cache.GenericLister {\n\treturn cache.NewGenericLister(f.Informer().GetIndexer(), f.resource)\n}\n\n// ForResource gives generic access to a shared informer of the matching type\n// TODO extend this to unknown resources with a client pool\nfunc (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource) (GenericInformer, error) {\n\tswitch resource {\n\t// Group=admissionregistration.k8s.io, Version=v1\n\tcase v1.SchemeGroupVersion.WithResource(\"mutatingwebhookconfigurations\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Admissionregistration().V1().MutatingWebhookConfigurations().Informer()}, nil\n\tcase v1.SchemeGroupVersion.WithResource(\"validatingadmissionpolicies\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Admissionregistration().V1().ValidatingAdmissionPolicies().Informer()}, nil\n\tcase v1.SchemeGroupVersion.WithResource(\"validatingadmissionpolicybindings\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Admissionregistration().V1().ValidatingAdmissionPolicyBindings().Informer()}, nil\n\tcase v1.SchemeGroupVersion.WithResource(\"validatingwebhookconfigurations\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Admissionregistration().V1().ValidatingWebhookConfigurations().Informer()}, nil\n\n\t\t// Group=admissionregistration.k8s.io, Version=v1alpha1\n\tcase v1alpha1.SchemeGroupVersion.WithResource(\"mutatingadmissionpolicies\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Admissionregistration().V1alpha1().MutatingAdmissionPolicies().Informer()}, nil\n\tcase v1alpha1.SchemeGroupVersion.WithResource(\"mutatingadmissionpolicybindings\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Admissionregistration().V1alpha1().MutatingAdmissionPolicyBindings().Informer()}, nil\n\tcase v1alpha1.SchemeGroupVersion.WithResource(\"validatingadmissionpolicies\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Admissionregistration().V1alpha1().ValidatingAdmissionPolicies().Informer()}, nil\n\tcase v1alpha1.SchemeGroupVersion.WithResource(\"validatingadmissionpolicybindings\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Admissionregistration().V1alpha1().ValidatingAdmissionPolicyBindings().Informer()}, nil\n\n\t\t// Group=admissionregistration.k8s.io, Version=v1beta1\n\tcase v1beta1.SchemeGroupVersion.WithResource(\"mutatingwebhookconfigurations\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Admissionregistration().V1beta1().MutatingWebhookConfigurations().Informer()}, nil\n\tcase v1beta1.SchemeGroupVersion.WithResource(\"validatingadmissionpolicies\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Admissionregistration().V1beta1().ValidatingAdmissionPolicies().Informer()}, nil\n\tcase v1beta1.SchemeGroupVersion.WithResource(\"validatingadmissionpolicybindings\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Admissionregistration().V1beta1().ValidatingAdmissionPolicyBindings().Informer()}, nil\n\tcase v1beta1.SchemeGroupVersion.WithResource(\"validatingwebhookconfigurations\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Admissionregistration().V1beta1().ValidatingWebhookConfigurations().Informer()}, nil\n\n\t\t// Group=apps, Version=v1\n\tcase appsv1.SchemeGroupVersion.WithResource(\"controllerrevisions\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Apps().V1().ControllerRevisions().Informer()}, nil\n\tcase appsv1.SchemeGroupVersion.WithResource(\"daemonsets\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Apps().V1().DaemonSets().Informer()}, nil\n\tcase appsv1.SchemeGroupVersion.WithResource(\"deployments\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Apps().V1().Deployments().Informer()}, nil\n\tcase appsv1.SchemeGroupVersion.WithResource(\"replicasets\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Apps().V1().ReplicaSets().Informer()}, nil\n\tcase appsv1.SchemeGroupVersion.WithResource(\"statefulsets\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Apps().V1().StatefulSets().Informer()}, nil\n\n\t\t// Group=apps, Version=v1beta1\n\tcase appsv1beta1.SchemeGroupVersion.WithResource(\"controllerrevisions\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Apps().V1beta1().ControllerRevisions().Informer()}, nil\n\tcase appsv1beta1.SchemeGroupVersion.WithResource(\"deployments\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Apps().V1beta1().Deployments().Informer()}, nil\n\tcase appsv1beta1.SchemeGroupVersion.WithResource(\"statefulsets\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Apps().V1beta1().StatefulSets().Informer()}, nil\n\n\t\t// Group=apps, Version=v1beta2\n\tcase v1beta2.SchemeGroupVersion.WithResource(\"controllerrevisions\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Apps().V1beta2().ControllerRevisions().Informer()}, nil\n\tcase v1beta2.SchemeGroupVersion.WithResource(\"daemonsets\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Apps().V1beta2().DaemonSets().Informer()}, nil\n\tcase v1beta2.SchemeGroupVersion.WithResource(\"deployments\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Apps().V1beta2().Deployments().Informer()}, nil\n\tcase v1beta2.SchemeGroupVersion.WithResource(\"replicasets\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Apps().V1beta2().ReplicaSets().Informer()}, nil\n\tcase v1beta2.SchemeGroupVersion.WithResource(\"statefulsets\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Apps().V1beta2().StatefulSets().Informer()}, nil\n\n\t\t// Group=autoscaling, Version=v1\n\tcase autoscalingv1.SchemeGroupVersion.WithResource(\"horizontalpodautoscalers\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Autoscaling().V1().HorizontalPodAutoscalers().Informer()}, nil\n\n\t\t// Group=autoscaling, Version=v2\n\tcase v2.SchemeGroupVersion.WithResource(\"horizontalpodautoscalers\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Autoscaling().V2().HorizontalPodAutoscalers().Informer()}, nil\n\n\t\t// Group=autoscaling, Version=v2beta1\n\tcase v2beta1.SchemeGroupVersion.WithResource(\"horizontalpodautoscalers\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Autoscaling().V2beta1().HorizontalPodAutoscalers().Informer()}, nil\n\n\t\t// Group=autoscaling, Version=v2beta2\n\tcase v2beta2.SchemeGroupVersion.WithResource(\"horizontalpodautoscalers\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Autoscaling().V2beta2().HorizontalPodAutoscalers().Informer()}, nil\n\n\t\t// Group=batch, Version=v1\n\tcase batchv1.SchemeGroupVersion.WithResource(\"cronjobs\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Batch().V1().CronJobs().Informer()}, nil\n\tcase batchv1.SchemeGroupVersion.WithResource(\"jobs\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Batch().V1().Jobs().Informer()}, nil\n\n\t\t// Group=batch, Version=v1beta1\n\tcase batchv1beta1.SchemeGroupVersion.WithResource(\"cronjobs\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Batch().V1beta1().CronJobs().Informer()}, nil\n\n\t\t// Group=certificates.k8s.io, Version=v1\n\tcase certificatesv1.SchemeGroupVersion.WithResource(\"certificatesigningrequests\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Certificates().V1().CertificateSigningRequests().Informer()}, nil\n\n\t\t// Group=certificates.k8s.io, Version=v1alpha1\n\tcase certificatesv1alpha1.SchemeGroupVersion.WithResource(\"clustertrustbundles\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Certificates().V1alpha1().ClusterTrustBundles().Informer()}, nil\n\n\t\t// Group=certificates.k8s.io, Version=v1beta1\n\tcase certificatesv1beta1.SchemeGroupVersion.WithResource(\"certificatesigningrequests\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Certificates().V1beta1().CertificateSigningRequests().Informer()}, nil\n\n\t\t// Group=coordination.k8s.io, Version=v1\n\tcase coordinationv1.SchemeGroupVersion.WithResource(\"leases\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Coordination().V1().Leases().Informer()}, nil\n\n\t\t// Group=coordination.k8s.io, Version=v1alpha2\n\tcase v1alpha2.SchemeGroupVersion.WithResource(\"leasecandidates\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Coordination().V1alpha2().LeaseCandidates().Informer()}, nil\n\n\t\t// Group=coordination.k8s.io, Version=v1beta1\n\tcase coordinationv1beta1.SchemeGroupVersion.WithResource(\"leases\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Coordination().V1beta1().Leases().Informer()}, nil\n\n\t\t// Group=core, Version=v1\n\tcase corev1.SchemeGroupVersion.WithResource(\"componentstatuses\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().ComponentStatuses().Informer()}, nil\n\tcase corev1.SchemeGroupVersion.WithResource(\"configmaps\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().ConfigMaps().Informer()}, nil\n\tcase corev1.SchemeGroupVersion.WithResource(\"endpoints\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().Endpoints().Informer()}, nil\n\tcase corev1.SchemeGroupVersion.WithResource(\"events\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().Events().Informer()}, nil\n\tcase corev1.SchemeGroupVersion.WithResource(\"limitranges\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().LimitRanges().Informer()}, nil\n\tcase corev1.SchemeGroupVersion.WithResource(\"namespaces\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().Namespaces().Informer()}, nil\n\tcase corev1.SchemeGroupVersion.WithResource(\"nodes\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().Nodes().Informer()}, nil\n\tcase corev1.SchemeGroupVersion.WithResource(\"persistentvolumes\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().PersistentVolumes().Informer()}, nil\n\tcase corev1.SchemeGroupVersion.WithResource(\"persistentvolumeclaims\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().PersistentVolumeClaims().Informer()}, nil\n\tcase corev1.SchemeGroupVersion.WithResource(\"pods\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().Pods().Informer()}, nil\n\tcase corev1.SchemeGroupVersion.WithResource(\"podtemplates\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().PodTemplates().Informer()}, nil\n\tcase corev1.SchemeGroupVersion.WithResource(\"replicationcontrollers\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().ReplicationControllers().Informer()}, nil\n\tcase corev1.SchemeGroupVersion.WithResource(\"resourcequotas\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().ResourceQuotas().Informer()}, nil\n\tcase corev1.SchemeGroupVersion.WithResource(\"secrets\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().Secrets().Informer()}, nil\n\tcase corev1.SchemeGroupVersion.WithResource(\"services\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().Services().Informer()}, nil\n\tcase corev1.SchemeGroupVersion.WithResource(\"serviceaccounts\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().ServiceAccounts().Informer()}, nil\n\n\t\t// Group=discovery.k8s.io, Version=v1\n\tcase discoveryv1.SchemeGroupVersion.WithResource(\"endpointslices\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Discovery().V1().EndpointSlices().Informer()}, nil\n\n\t\t// Group=discovery.k8s.io, Version=v1beta1\n\tcase discoveryv1beta1.SchemeGroupVersion.WithResource(\"endpointslices\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Discovery().V1beta1().EndpointSlices().Informer()}, nil\n\n\t\t// Group=events.k8s.io, Version=v1\n\tcase eventsv1.SchemeGroupVersion.WithResource(\"events\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Events().V1().Events().Informer()}, nil\n\n\t\t// Group=events.k8s.io, Version=v1beta1\n\tcase eventsv1beta1.SchemeGroupVersion.WithResource(\"events\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Events().V1beta1().Events().Informer()}, nil\n\n\t\t// Group=extensions, Version=v1beta1\n\tcase extensionsv1beta1.SchemeGroupVersion.WithResource(\"daemonsets\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Extensions().V1beta1().DaemonSets().Informer()}, nil\n\tcase extensionsv1beta1.SchemeGroupVersion.WithResource(\"deployments\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Extensions().V1beta1().Deployments().Informer()}, nil\n\tcase extensionsv1beta1.SchemeGroupVersion.WithResource(\"ingresses\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Extensions().V1beta1().Ingresses().Informer()}, nil\n\tcase extensionsv1beta1.SchemeGroupVersion.WithResource(\"networkpolicies\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Extensions().V1beta1().NetworkPolicies().Informer()}, nil\n\tcase extensionsv1beta1.SchemeGroupVersion.WithResource(\"replicasets\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Extensions().V1beta1().ReplicaSets().Informer()}, nil\n\n\t\t// Group=flowcontrol.apiserver.k8s.io, Version=v1\n\tcase flowcontrolv1.SchemeGroupVersion.WithResource(\"flowschemas\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Flowcontrol().V1().FlowSchemas().Informer()}, nil\n\tcase flowcontrolv1.SchemeGroupVersion.WithResource(\"prioritylevelconfigurations\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Flowcontrol().V1().PriorityLevelConfigurations().Informer()}, nil\n\n\t\t// Group=flowcontrol.apiserver.k8s.io, Version=v1beta1\n\tcase flowcontrolv1beta1.SchemeGroupVersion.WithResource(\"flowschemas\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Flowcontrol().V1beta1().FlowSchemas().Informer()}, nil\n\tcase flowcontrolv1beta1.SchemeGroupVersion.WithResource(\"prioritylevelconfigurations\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Flowcontrol().V1beta1().PriorityLevelConfigurations().Informer()}, nil\n\n\t\t// Group=flowcontrol.apiserver.k8s.io, Version=v1beta2\n\tcase flowcontrolv1beta2.SchemeGroupVersion.WithResource(\"flowschemas\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Flowcontrol().V1beta2().FlowSchemas().Informer()}, nil\n\tcase flowcontrolv1beta2.SchemeGroupVersion.WithResource(\"prioritylevelconfigurations\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Flowcontrol().V1beta2().PriorityLevelConfigurations().Informer()}, nil\n\n\t\t// Group=flowcontrol.apiserver.k8s.io, Version=v1beta3\n\tcase v1beta3.SchemeGroupVersion.WithResource(\"flowschemas\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Flowcontrol().V1beta3().FlowSchemas().Informer()}, nil\n\tcase v1beta3.SchemeGroupVersion.WithResource(\"prioritylevelconfigurations\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Flowcontrol().V1beta3().PriorityLevelConfigurations().Informer()}, nil\n\n\t\t// Group=internal.apiserver.k8s.io, Version=v1alpha1\n\tcase apiserverinternalv1alpha1.SchemeGroupVersion.WithResource(\"storageversions\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Internal().V1alpha1().StorageVersions().Informer()}, nil\n\n\t\t// Group=networking.k8s.io, Version=v1\n\tcase networkingv1.SchemeGroupVersion.WithResource(\"ingresses\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Networking().V1().Ingresses().Informer()}, nil\n\tcase networkingv1.SchemeGroupVersion.WithResource(\"ingressclasses\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Networking().V1().IngressClasses().Informer()}, nil\n\tcase networkingv1.SchemeGroupVersion.WithResource(\"networkpolicies\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Networking().V1().NetworkPolicies().Informer()}, nil\n\n\t\t// Group=networking.k8s.io, Version=v1alpha1\n\tcase networkingv1alpha1.SchemeGroupVersion.WithResource(\"ipaddresses\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Networking().V1alpha1().IPAddresses().Informer()}, nil\n\tcase networkingv1alpha1.SchemeGroupVersion.WithResource(\"servicecidrs\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Networking().V1alpha1().ServiceCIDRs().Informer()}, nil\n\n\t\t// Group=networking.k8s.io, Version=v1beta1\n\tcase networkingv1beta1.SchemeGroupVersion.WithResource(\"ipaddresses\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Networking().V1beta1().IPAddresses().Informer()}, nil\n\tcase networkingv1beta1.SchemeGroupVersion.WithResource(\"ingresses\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Networking().V1beta1().Ingresses().Informer()}, nil\n\tcase networkingv1beta1.SchemeGroupVersion.WithResource(\"ingressclasses\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Networking().V1beta1().IngressClasses().Informer()}, nil\n\tcase networkingv1beta1.SchemeGroupVersion.WithResource(\"servicecidrs\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Networking().V1beta1().ServiceCIDRs().Informer()}, nil\n\n\t\t// Group=node.k8s.io, Version=v1\n\tcase nodev1.SchemeGroupVersion.WithResource(\"runtimeclasses\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Node().V1().RuntimeClasses().Informer()}, nil\n\n\t\t// Group=node.k8s.io, Version=v1alpha1\n\tcase nodev1alpha1.SchemeGroupVersion.WithResource(\"runtimeclasses\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Node().V1alpha1().RuntimeClasses().Informer()}, nil\n\n\t\t// Group=node.k8s.io, Version=v1beta1\n\tcase nodev1beta1.SchemeGroupVersion.WithResource(\"runtimeclasses\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Node().V1beta1().RuntimeClasses().Informer()}, nil\n\n\t\t// Group=policy, Version=v1\n\tcase policyv1.SchemeGroupVersion.WithResource(\"poddisruptionbudgets\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Policy().V1().PodDisruptionBudgets().Informer()}, nil\n\n\t\t// Group=policy, Version=v1beta1\n\tcase policyv1beta1.SchemeGroupVersion.WithResource(\"poddisruptionbudgets\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Policy().V1beta1().PodDisruptionBudgets().Informer()}, nil\n\n\t\t// Group=rbac.authorization.k8s.io, Version=v1\n\tcase rbacv1.SchemeGroupVersion.WithResource(\"clusterroles\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1().ClusterRoles().Informer()}, nil\n\tcase rbacv1.SchemeGroupVersion.WithResource(\"clusterrolebindings\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1().ClusterRoleBindings().Informer()}, nil\n\tcase rbacv1.SchemeGroupVersion.WithResource(\"roles\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1().Roles().Informer()}, nil\n\tcase rbacv1.SchemeGroupVersion.WithResource(\"rolebindings\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1().RoleBindings().Informer()}, nil\n\n\t\t// Group=rbac.authorization.k8s.io, Version=v1alpha1\n\tcase rbacv1alpha1.SchemeGroupVersion.WithResource(\"clusterroles\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1alpha1().ClusterRoles().Informer()}, nil\n\tcase rbacv1alpha1.SchemeGroupVersion.WithResource(\"clusterrolebindings\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1alpha1().ClusterRoleBindings().Informer()}, nil\n\tcase rbacv1alpha1.SchemeGroupVersion.WithResource(\"roles\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1alpha1().Roles().Informer()}, nil\n\tcase rbacv1alpha1.SchemeGroupVersion.WithResource(\"rolebindings\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1alpha1().RoleBindings().Informer()}, nil\n\n\t\t// Group=rbac.authorization.k8s.io, Version=v1beta1\n\tcase rbacv1beta1.SchemeGroupVersion.WithResource(\"clusterroles\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1beta1().ClusterRoles().Informer()}, nil\n\tcase rbacv1beta1.SchemeGroupVersion.WithResource(\"clusterrolebindings\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1beta1().ClusterRoleBindings().Informer()}, nil\n\tcase rbacv1beta1.SchemeGroupVersion.WithResource(\"roles\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1beta1().Roles().Informer()}, nil\n\tcase rbacv1beta1.SchemeGroupVersion.WithResource(\"rolebindings\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1beta1().RoleBindings().Informer()}, nil\n\n\t\t// Group=resource.k8s.io, Version=v1alpha3\n\tcase v1alpha3.SchemeGroupVersion.WithResource(\"deviceclasses\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Resource().V1alpha3().DeviceClasses().Informer()}, nil\n\tcase v1alpha3.SchemeGroupVersion.WithResource(\"resourceclaims\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Resource().V1alpha3().ResourceClaims().Informer()}, nil\n\tcase v1alpha3.SchemeGroupVersion.WithResource(\"resourceclaimtemplates\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Resource().V1alpha3().ResourceClaimTemplates().Informer()}, nil\n\tcase v1alpha3.SchemeGroupVersion.WithResource(\"resourceslices\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Resource().V1alpha3().ResourceSlices().Informer()}, nil\n\n\t\t// Group=resource.k8s.io, Version=v1beta1\n\tcase resourcev1beta1.SchemeGroupVersion.WithResource(\"deviceclasses\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Resource().V1beta1().DeviceClasses().Informer()}, nil\n\tcase resourcev1beta1.SchemeGroupVersion.WithResource(\"resourceclaims\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Resource().V1beta1().ResourceClaims().Informer()}, nil\n\tcase resourcev1beta1.SchemeGroupVersion.WithResource(\"resourceclaimtemplates\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Resource().V1beta1().ResourceClaimTemplates().Informer()}, nil\n\tcase resourcev1beta1.SchemeGroupVersion.WithResource(\"resourceslices\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Resource().V1beta1().ResourceSlices().Informer()}, nil\n\n\t\t// Group=scheduling.k8s.io, Version=v1\n\tcase schedulingv1.SchemeGroupVersion.WithResource(\"priorityclasses\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Scheduling().V1().PriorityClasses().Informer()}, nil\n\n\t\t// Group=scheduling.k8s.io, Version=v1alpha1\n\tcase schedulingv1alpha1.SchemeGroupVersion.WithResource(\"priorityclasses\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Scheduling().V1alpha1().PriorityClasses().Informer()}, nil\n\n\t\t// Group=scheduling.k8s.io, Version=v1beta1\n\tcase schedulingv1beta1.SchemeGroupVersion.WithResource(\"priorityclasses\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Scheduling().V1beta1().PriorityClasses().Informer()}, nil\n\n\t\t// Group=storage.k8s.io, Version=v1\n\tcase storagev1.SchemeGroupVersion.WithResource(\"csidrivers\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Storage().V1().CSIDrivers().Informer()}, nil\n\tcase storagev1.SchemeGroupVersion.WithResource(\"csinodes\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Storage().V1().CSINodes().Informer()}, nil\n\tcase storagev1.SchemeGroupVersion.WithResource(\"csistoragecapacities\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Storage().V1().CSIStorageCapacities().Informer()}, nil\n\tcase storagev1.SchemeGroupVersion.WithResource(\"storageclasses\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Storage().V1().StorageClasses().Informer()}, nil\n\tcase storagev1.SchemeGroupVersion.WithResource(\"volumeattachments\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Storage().V1().VolumeAttachments().Informer()}, nil\n\n\t\t// Group=storage.k8s.io, Version=v1alpha1\n\tcase storagev1alpha1.SchemeGroupVersion.WithResource(\"csistoragecapacities\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Storage().V1alpha1().CSIStorageCapacities().Informer()}, nil\n\tcase storagev1alpha1.SchemeGroupVersion.WithResource(\"volumeattachments\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Storage().V1alpha1().VolumeAttachments().Informer()}, nil\n\tcase storagev1alpha1.SchemeGroupVersion.WithResource(\"volumeattributesclasses\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Storage().V1alpha1().VolumeAttributesClasses().Informer()}, nil\n\n\t\t// Group=storage.k8s.io, Version=v1beta1\n\tcase storagev1beta1.SchemeGroupVersion.WithResource(\"csidrivers\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Storage().V1beta1().CSIDrivers().Informer()}, nil\n\tcase storagev1beta1.SchemeGroupVersion.WithResource(\"csinodes\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Storage().V1beta1().CSINodes().Informer()}, nil\n\tcase storagev1beta1.SchemeGroupVersion.WithResource(\"csistoragecapacities\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Storage().V1beta1().CSIStorageCapacities().Informer()}, nil\n\tcase storagev1beta1.SchemeGroupVersion.WithResource(\"storageclasses\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Storage().V1beta1().StorageClasses().Informer()}, nil\n\tcase storagev1beta1.SchemeGroupVersion.WithResource(\"volumeattachments\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Storage().V1beta1().VolumeAttachments().Informer()}, nil\n\tcase storagev1beta1.SchemeGroupVersion.WithResource(\"volumeattributesclasses\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Storage().V1beta1().VolumeAttributesClasses().Informer()}, nil\n\n\t\t// Group=storagemigration.k8s.io, Version=v1alpha1\n\tcase storagemigrationv1alpha1.SchemeGroupVersion.WithResource(\"storageversionmigrations\"):\n\t\treturn &genericInformer{resource: resource.GroupResource(), informer: f.Storagemigration().V1alpha1().StorageVersionMigrations().Informer()}, nil\n\n\t}\n\n\treturn nil, fmt.Errorf(\"no informer found for %v\", resource)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/internalinterfaces/factory_interfaces.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage internalinterfaces\n\nimport (\n\ttime \"time\"\n\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// NewInformerFunc takes kubernetes.Interface and time.Duration to return a SharedIndexInformer.\ntype NewInformerFunc func(kubernetes.Interface, time.Duration) cache.SharedIndexInformer\n\n// SharedInformerFactory a small interface to allow for adding an informer without an import cycle\ntype SharedInformerFactory interface {\n\tStart(stopCh <-chan struct{})\n\tInformerFor(obj runtime.Object, newFunc NewInformerFunc) cache.SharedIndexInformer\n}\n\n// TweakListOptionsFunc is a function that transforms a v1.ListOptions.\ntype TweakListOptionsFunc func(*v1.ListOptions)\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/networking/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage networking\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tv1 \"k8s.io/client-go/informers/networking/v1\"\n\tv1alpha1 \"k8s.io/client-go/informers/networking/v1alpha1\"\n\tv1beta1 \"k8s.io/client-go/informers/networking/v1beta1\"\n)\n\n// Interface provides access to each of this group's versions.\ntype Interface interface {\n\t// V1 provides access to shared informers for resources in V1.\n\tV1() v1.Interface\n\t// V1alpha1 provides access to shared informers for resources in V1alpha1.\n\tV1alpha1() v1alpha1.Interface\n\t// V1beta1 provides access to shared informers for resources in V1beta1.\n\tV1beta1() v1beta1.Interface\n}\n\ntype group struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// V1 returns a new v1.Interface.\nfunc (g *group) V1() v1.Interface {\n\treturn v1.New(g.factory, g.namespace, g.tweakListOptions)\n}\n\n// V1alpha1 returns a new v1alpha1.Interface.\nfunc (g *group) V1alpha1() v1alpha1.Interface {\n\treturn v1alpha1.New(g.factory, g.namespace, g.tweakListOptions)\n}\n\n// V1beta1 returns a new v1beta1.Interface.\nfunc (g *group) V1beta1() v1beta1.Interface {\n\treturn v1beta1.New(g.factory, g.namespace, g.tweakListOptions)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/networking/v1/ingress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapinetworkingv1 \"k8s.io/api/networking/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tnetworkingv1 \"k8s.io/client-go/listers/networking/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// IngressInformer provides access to a shared informer and lister for\n// Ingresses.\ntype IngressInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() networkingv1.IngressLister\n}\n\ntype ingressInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewIngressInformer constructs a new informer for Ingress type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewIngressInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredIngressInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredIngressInformer constructs a new informer for Ingress type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredIngressInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.NetworkingV1().Ingresses(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.NetworkingV1().Ingresses(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apinetworkingv1.Ingress{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *ingressInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredIngressInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *ingressInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apinetworkingv1.Ingress{}, f.defaultInformer)\n}\n\nfunc (f *ingressInformer) Lister() networkingv1.IngressLister {\n\treturn networkingv1.NewIngressLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/networking/v1/ingressclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapinetworkingv1 \"k8s.io/api/networking/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tnetworkingv1 \"k8s.io/client-go/listers/networking/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// IngressClassInformer provides access to a shared informer and lister for\n// IngressClasses.\ntype IngressClassInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() networkingv1.IngressClassLister\n}\n\ntype ingressClassInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewIngressClassInformer constructs a new informer for IngressClass type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewIngressClassInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredIngressClassInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredIngressClassInformer constructs a new informer for IngressClass type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredIngressClassInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.NetworkingV1().IngressClasses().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.NetworkingV1().IngressClasses().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apinetworkingv1.IngressClass{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *ingressClassInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredIngressClassInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *ingressClassInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apinetworkingv1.IngressClass{}, f.defaultInformer)\n}\n\nfunc (f *ingressClassInformer) Lister() networkingv1.IngressClassLister {\n\treturn networkingv1.NewIngressClassLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/networking/v1/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// Ingresses returns a IngressInformer.\n\tIngresses() IngressInformer\n\t// IngressClasses returns a IngressClassInformer.\n\tIngressClasses() IngressClassInformer\n\t// NetworkPolicies returns a NetworkPolicyInformer.\n\tNetworkPolicies() NetworkPolicyInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// Ingresses returns a IngressInformer.\nfunc (v *version) Ingresses() IngressInformer {\n\treturn &ingressInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n\n// IngressClasses returns a IngressClassInformer.\nfunc (v *version) IngressClasses() IngressClassInformer {\n\treturn &ingressClassInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n\n// NetworkPolicies returns a NetworkPolicyInformer.\nfunc (v *version) NetworkPolicies() NetworkPolicyInformer {\n\treturn &networkPolicyInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/networking/v1/networkpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapinetworkingv1 \"k8s.io/api/networking/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tnetworkingv1 \"k8s.io/client-go/listers/networking/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// NetworkPolicyInformer provides access to a shared informer and lister for\n// NetworkPolicies.\ntype NetworkPolicyInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() networkingv1.NetworkPolicyLister\n}\n\ntype networkPolicyInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewNetworkPolicyInformer constructs a new informer for NetworkPolicy type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewNetworkPolicyInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredNetworkPolicyInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredNetworkPolicyInformer constructs a new informer for NetworkPolicy type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredNetworkPolicyInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.NetworkingV1().NetworkPolicies(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.NetworkingV1().NetworkPolicies(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apinetworkingv1.NetworkPolicy{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *networkPolicyInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredNetworkPolicyInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *networkPolicyInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apinetworkingv1.NetworkPolicy{}, f.defaultInformer)\n}\n\nfunc (f *networkPolicyInformer) Lister() networkingv1.NetworkPolicyLister {\n\treturn networkingv1.NewNetworkPolicyLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/networking/v1alpha1/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// IPAddresses returns a IPAddressInformer.\n\tIPAddresses() IPAddressInformer\n\t// ServiceCIDRs returns a ServiceCIDRInformer.\n\tServiceCIDRs() ServiceCIDRInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// IPAddresses returns a IPAddressInformer.\nfunc (v *version) IPAddresses() IPAddressInformer {\n\treturn &iPAddressInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n\n// ServiceCIDRs returns a ServiceCIDRInformer.\nfunc (v *version) ServiceCIDRs() ServiceCIDRInformer {\n\treturn &serviceCIDRInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/networking/v1alpha1/ipaddress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapinetworkingv1alpha1 \"k8s.io/api/networking/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tnetworkingv1alpha1 \"k8s.io/client-go/listers/networking/v1alpha1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// IPAddressInformer provides access to a shared informer and lister for\n// IPAddresses.\ntype IPAddressInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() networkingv1alpha1.IPAddressLister\n}\n\ntype iPAddressInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewIPAddressInformer constructs a new informer for IPAddress type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewIPAddressInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredIPAddressInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredIPAddressInformer constructs a new informer for IPAddress type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredIPAddressInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.NetworkingV1alpha1().IPAddresses().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.NetworkingV1alpha1().IPAddresses().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apinetworkingv1alpha1.IPAddress{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *iPAddressInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredIPAddressInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *iPAddressInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apinetworkingv1alpha1.IPAddress{}, f.defaultInformer)\n}\n\nfunc (f *iPAddressInformer) Lister() networkingv1alpha1.IPAddressLister {\n\treturn networkingv1alpha1.NewIPAddressLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/networking/v1alpha1/servicecidr.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapinetworkingv1alpha1 \"k8s.io/api/networking/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tnetworkingv1alpha1 \"k8s.io/client-go/listers/networking/v1alpha1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ServiceCIDRInformer provides access to a shared informer and lister for\n// ServiceCIDRs.\ntype ServiceCIDRInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() networkingv1alpha1.ServiceCIDRLister\n}\n\ntype serviceCIDRInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewServiceCIDRInformer constructs a new informer for ServiceCIDR type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewServiceCIDRInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredServiceCIDRInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredServiceCIDRInformer constructs a new informer for ServiceCIDR type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredServiceCIDRInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.NetworkingV1alpha1().ServiceCIDRs().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.NetworkingV1alpha1().ServiceCIDRs().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apinetworkingv1alpha1.ServiceCIDR{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *serviceCIDRInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredServiceCIDRInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *serviceCIDRInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apinetworkingv1alpha1.ServiceCIDR{}, f.defaultInformer)\n}\n\nfunc (f *serviceCIDRInformer) Lister() networkingv1alpha1.ServiceCIDRLister {\n\treturn networkingv1alpha1.NewServiceCIDRLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/networking/v1beta1/ingress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapinetworkingv1beta1 \"k8s.io/api/networking/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tnetworkingv1beta1 \"k8s.io/client-go/listers/networking/v1beta1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// IngressInformer provides access to a shared informer and lister for\n// Ingresses.\ntype IngressInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() networkingv1beta1.IngressLister\n}\n\ntype ingressInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewIngressInformer constructs a new informer for Ingress type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewIngressInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredIngressInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredIngressInformer constructs a new informer for Ingress type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredIngressInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.NetworkingV1beta1().Ingresses(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.NetworkingV1beta1().Ingresses(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apinetworkingv1beta1.Ingress{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *ingressInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredIngressInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *ingressInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apinetworkingv1beta1.Ingress{}, f.defaultInformer)\n}\n\nfunc (f *ingressInformer) Lister() networkingv1beta1.IngressLister {\n\treturn networkingv1beta1.NewIngressLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/networking/v1beta1/ingressclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapinetworkingv1beta1 \"k8s.io/api/networking/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tnetworkingv1beta1 \"k8s.io/client-go/listers/networking/v1beta1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// IngressClassInformer provides access to a shared informer and lister for\n// IngressClasses.\ntype IngressClassInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() networkingv1beta1.IngressClassLister\n}\n\ntype ingressClassInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewIngressClassInformer constructs a new informer for IngressClass type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewIngressClassInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredIngressClassInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredIngressClassInformer constructs a new informer for IngressClass type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredIngressClassInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.NetworkingV1beta1().IngressClasses().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.NetworkingV1beta1().IngressClasses().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apinetworkingv1beta1.IngressClass{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *ingressClassInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredIngressClassInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *ingressClassInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apinetworkingv1beta1.IngressClass{}, f.defaultInformer)\n}\n\nfunc (f *ingressClassInformer) Lister() networkingv1beta1.IngressClassLister {\n\treturn networkingv1beta1.NewIngressClassLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/networking/v1beta1/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// IPAddresses returns a IPAddressInformer.\n\tIPAddresses() IPAddressInformer\n\t// Ingresses returns a IngressInformer.\n\tIngresses() IngressInformer\n\t// IngressClasses returns a IngressClassInformer.\n\tIngressClasses() IngressClassInformer\n\t// ServiceCIDRs returns a ServiceCIDRInformer.\n\tServiceCIDRs() ServiceCIDRInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// IPAddresses returns a IPAddressInformer.\nfunc (v *version) IPAddresses() IPAddressInformer {\n\treturn &iPAddressInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n\n// Ingresses returns a IngressInformer.\nfunc (v *version) Ingresses() IngressInformer {\n\treturn &ingressInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n\n// IngressClasses returns a IngressClassInformer.\nfunc (v *version) IngressClasses() IngressClassInformer {\n\treturn &ingressClassInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n\n// ServiceCIDRs returns a ServiceCIDRInformer.\nfunc (v *version) ServiceCIDRs() ServiceCIDRInformer {\n\treturn &serviceCIDRInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/networking/v1beta1/ipaddress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapinetworkingv1beta1 \"k8s.io/api/networking/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tnetworkingv1beta1 \"k8s.io/client-go/listers/networking/v1beta1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// IPAddressInformer provides access to a shared informer and lister for\n// IPAddresses.\ntype IPAddressInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() networkingv1beta1.IPAddressLister\n}\n\ntype iPAddressInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewIPAddressInformer constructs a new informer for IPAddress type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewIPAddressInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredIPAddressInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredIPAddressInformer constructs a new informer for IPAddress type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredIPAddressInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.NetworkingV1beta1().IPAddresses().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.NetworkingV1beta1().IPAddresses().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apinetworkingv1beta1.IPAddress{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *iPAddressInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredIPAddressInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *iPAddressInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apinetworkingv1beta1.IPAddress{}, f.defaultInformer)\n}\n\nfunc (f *iPAddressInformer) Lister() networkingv1beta1.IPAddressLister {\n\treturn networkingv1beta1.NewIPAddressLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/networking/v1beta1/servicecidr.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapinetworkingv1beta1 \"k8s.io/api/networking/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tnetworkingv1beta1 \"k8s.io/client-go/listers/networking/v1beta1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ServiceCIDRInformer provides access to a shared informer and lister for\n// ServiceCIDRs.\ntype ServiceCIDRInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() networkingv1beta1.ServiceCIDRLister\n}\n\ntype serviceCIDRInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewServiceCIDRInformer constructs a new informer for ServiceCIDR type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewServiceCIDRInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredServiceCIDRInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredServiceCIDRInformer constructs a new informer for ServiceCIDR type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredServiceCIDRInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.NetworkingV1beta1().ServiceCIDRs().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.NetworkingV1beta1().ServiceCIDRs().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apinetworkingv1beta1.ServiceCIDR{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *serviceCIDRInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredServiceCIDRInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *serviceCIDRInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apinetworkingv1beta1.ServiceCIDR{}, f.defaultInformer)\n}\n\nfunc (f *serviceCIDRInformer) Lister() networkingv1beta1.ServiceCIDRLister {\n\treturn networkingv1beta1.NewServiceCIDRLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/node/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage node\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tv1 \"k8s.io/client-go/informers/node/v1\"\n\tv1alpha1 \"k8s.io/client-go/informers/node/v1alpha1\"\n\tv1beta1 \"k8s.io/client-go/informers/node/v1beta1\"\n)\n\n// Interface provides access to each of this group's versions.\ntype Interface interface {\n\t// V1 provides access to shared informers for resources in V1.\n\tV1() v1.Interface\n\t// V1alpha1 provides access to shared informers for resources in V1alpha1.\n\tV1alpha1() v1alpha1.Interface\n\t// V1beta1 provides access to shared informers for resources in V1beta1.\n\tV1beta1() v1beta1.Interface\n}\n\ntype group struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// V1 returns a new v1.Interface.\nfunc (g *group) V1() v1.Interface {\n\treturn v1.New(g.factory, g.namespace, g.tweakListOptions)\n}\n\n// V1alpha1 returns a new v1alpha1.Interface.\nfunc (g *group) V1alpha1() v1alpha1.Interface {\n\treturn v1alpha1.New(g.factory, g.namespace, g.tweakListOptions)\n}\n\n// V1beta1 returns a new v1beta1.Interface.\nfunc (g *group) V1beta1() v1beta1.Interface {\n\treturn v1beta1.New(g.factory, g.namespace, g.tweakListOptions)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/node/v1/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// RuntimeClasses returns a RuntimeClassInformer.\n\tRuntimeClasses() RuntimeClassInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// RuntimeClasses returns a RuntimeClassInformer.\nfunc (v *version) RuntimeClasses() RuntimeClassInformer {\n\treturn &runtimeClassInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/node/v1/runtimeclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapinodev1 \"k8s.io/api/node/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tnodev1 \"k8s.io/client-go/listers/node/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// RuntimeClassInformer provides access to a shared informer and lister for\n// RuntimeClasses.\ntype RuntimeClassInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() nodev1.RuntimeClassLister\n}\n\ntype runtimeClassInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewRuntimeClassInformer constructs a new informer for RuntimeClass type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewRuntimeClassInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredRuntimeClassInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredRuntimeClassInformer constructs a new informer for RuntimeClass type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredRuntimeClassInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.NodeV1().RuntimeClasses().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.NodeV1().RuntimeClasses().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apinodev1.RuntimeClass{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *runtimeClassInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredRuntimeClassInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *runtimeClassInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apinodev1.RuntimeClass{}, f.defaultInformer)\n}\n\nfunc (f *runtimeClassInformer) Lister() nodev1.RuntimeClassLister {\n\treturn nodev1.NewRuntimeClassLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/node/v1alpha1/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// RuntimeClasses returns a RuntimeClassInformer.\n\tRuntimeClasses() RuntimeClassInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// RuntimeClasses returns a RuntimeClassInformer.\nfunc (v *version) RuntimeClasses() RuntimeClassInformer {\n\treturn &runtimeClassInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/node/v1alpha1/runtimeclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapinodev1alpha1 \"k8s.io/api/node/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tnodev1alpha1 \"k8s.io/client-go/listers/node/v1alpha1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// RuntimeClassInformer provides access to a shared informer and lister for\n// RuntimeClasses.\ntype RuntimeClassInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() nodev1alpha1.RuntimeClassLister\n}\n\ntype runtimeClassInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewRuntimeClassInformer constructs a new informer for RuntimeClass type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewRuntimeClassInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredRuntimeClassInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredRuntimeClassInformer constructs a new informer for RuntimeClass type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredRuntimeClassInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.NodeV1alpha1().RuntimeClasses().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.NodeV1alpha1().RuntimeClasses().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apinodev1alpha1.RuntimeClass{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *runtimeClassInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredRuntimeClassInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *runtimeClassInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apinodev1alpha1.RuntimeClass{}, f.defaultInformer)\n}\n\nfunc (f *runtimeClassInformer) Lister() nodev1alpha1.RuntimeClassLister {\n\treturn nodev1alpha1.NewRuntimeClassLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/node/v1beta1/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// RuntimeClasses returns a RuntimeClassInformer.\n\tRuntimeClasses() RuntimeClassInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// RuntimeClasses returns a RuntimeClassInformer.\nfunc (v *version) RuntimeClasses() RuntimeClassInformer {\n\treturn &runtimeClassInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/node/v1beta1/runtimeclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapinodev1beta1 \"k8s.io/api/node/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tnodev1beta1 \"k8s.io/client-go/listers/node/v1beta1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// RuntimeClassInformer provides access to a shared informer and lister for\n// RuntimeClasses.\ntype RuntimeClassInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() nodev1beta1.RuntimeClassLister\n}\n\ntype runtimeClassInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewRuntimeClassInformer constructs a new informer for RuntimeClass type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewRuntimeClassInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredRuntimeClassInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredRuntimeClassInformer constructs a new informer for RuntimeClass type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredRuntimeClassInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.NodeV1beta1().RuntimeClasses().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.NodeV1beta1().RuntimeClasses().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apinodev1beta1.RuntimeClass{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *runtimeClassInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredRuntimeClassInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *runtimeClassInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apinodev1beta1.RuntimeClass{}, f.defaultInformer)\n}\n\nfunc (f *runtimeClassInformer) Lister() nodev1beta1.RuntimeClassLister {\n\treturn nodev1beta1.NewRuntimeClassLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/policy/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage policy\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tv1 \"k8s.io/client-go/informers/policy/v1\"\n\tv1beta1 \"k8s.io/client-go/informers/policy/v1beta1\"\n)\n\n// Interface provides access to each of this group's versions.\ntype Interface interface {\n\t// V1 provides access to shared informers for resources in V1.\n\tV1() v1.Interface\n\t// V1beta1 provides access to shared informers for resources in V1beta1.\n\tV1beta1() v1beta1.Interface\n}\n\ntype group struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// V1 returns a new v1.Interface.\nfunc (g *group) V1() v1.Interface {\n\treturn v1.New(g.factory, g.namespace, g.tweakListOptions)\n}\n\n// V1beta1 returns a new v1beta1.Interface.\nfunc (g *group) V1beta1() v1beta1.Interface {\n\treturn v1beta1.New(g.factory, g.namespace, g.tweakListOptions)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/policy/v1/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// PodDisruptionBudgets returns a PodDisruptionBudgetInformer.\n\tPodDisruptionBudgets() PodDisruptionBudgetInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// PodDisruptionBudgets returns a PodDisruptionBudgetInformer.\nfunc (v *version) PodDisruptionBudgets() PodDisruptionBudgetInformer {\n\treturn &podDisruptionBudgetInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/policy/v1/poddisruptionbudget.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapipolicyv1 \"k8s.io/api/policy/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tpolicyv1 \"k8s.io/client-go/listers/policy/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// PodDisruptionBudgetInformer provides access to a shared informer and lister for\n// PodDisruptionBudgets.\ntype PodDisruptionBudgetInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() policyv1.PodDisruptionBudgetLister\n}\n\ntype podDisruptionBudgetInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewPodDisruptionBudgetInformer constructs a new informer for PodDisruptionBudget type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewPodDisruptionBudgetInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredPodDisruptionBudgetInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredPodDisruptionBudgetInformer constructs a new informer for PodDisruptionBudget type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredPodDisruptionBudgetInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.PolicyV1().PodDisruptionBudgets(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.PolicyV1().PodDisruptionBudgets(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apipolicyv1.PodDisruptionBudget{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *podDisruptionBudgetInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredPodDisruptionBudgetInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *podDisruptionBudgetInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apipolicyv1.PodDisruptionBudget{}, f.defaultInformer)\n}\n\nfunc (f *podDisruptionBudgetInformer) Lister() policyv1.PodDisruptionBudgetLister {\n\treturn policyv1.NewPodDisruptionBudgetLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/policy/v1beta1/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// PodDisruptionBudgets returns a PodDisruptionBudgetInformer.\n\tPodDisruptionBudgets() PodDisruptionBudgetInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// PodDisruptionBudgets returns a PodDisruptionBudgetInformer.\nfunc (v *version) PodDisruptionBudgets() PodDisruptionBudgetInformer {\n\treturn &podDisruptionBudgetInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/policy/v1beta1/poddisruptionbudget.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapipolicyv1beta1 \"k8s.io/api/policy/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tpolicyv1beta1 \"k8s.io/client-go/listers/policy/v1beta1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// PodDisruptionBudgetInformer provides access to a shared informer and lister for\n// PodDisruptionBudgets.\ntype PodDisruptionBudgetInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() policyv1beta1.PodDisruptionBudgetLister\n}\n\ntype podDisruptionBudgetInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewPodDisruptionBudgetInformer constructs a new informer for PodDisruptionBudget type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewPodDisruptionBudgetInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredPodDisruptionBudgetInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredPodDisruptionBudgetInformer constructs a new informer for PodDisruptionBudget type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredPodDisruptionBudgetInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.PolicyV1beta1().PodDisruptionBudgets(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.PolicyV1beta1().PodDisruptionBudgets(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apipolicyv1beta1.PodDisruptionBudget{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *podDisruptionBudgetInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredPodDisruptionBudgetInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *podDisruptionBudgetInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apipolicyv1beta1.PodDisruptionBudget{}, f.defaultInformer)\n}\n\nfunc (f *podDisruptionBudgetInformer) Lister() policyv1beta1.PodDisruptionBudgetLister {\n\treturn policyv1beta1.NewPodDisruptionBudgetLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/rbac/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage rbac\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tv1 \"k8s.io/client-go/informers/rbac/v1\"\n\tv1alpha1 \"k8s.io/client-go/informers/rbac/v1alpha1\"\n\tv1beta1 \"k8s.io/client-go/informers/rbac/v1beta1\"\n)\n\n// Interface provides access to each of this group's versions.\ntype Interface interface {\n\t// V1 provides access to shared informers for resources in V1.\n\tV1() v1.Interface\n\t// V1alpha1 provides access to shared informers for resources in V1alpha1.\n\tV1alpha1() v1alpha1.Interface\n\t// V1beta1 provides access to shared informers for resources in V1beta1.\n\tV1beta1() v1beta1.Interface\n}\n\ntype group struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// V1 returns a new v1.Interface.\nfunc (g *group) V1() v1.Interface {\n\treturn v1.New(g.factory, g.namespace, g.tweakListOptions)\n}\n\n// V1alpha1 returns a new v1alpha1.Interface.\nfunc (g *group) V1alpha1() v1alpha1.Interface {\n\treturn v1alpha1.New(g.factory, g.namespace, g.tweakListOptions)\n}\n\n// V1beta1 returns a new v1beta1.Interface.\nfunc (g *group) V1beta1() v1beta1.Interface {\n\treturn v1beta1.New(g.factory, g.namespace, g.tweakListOptions)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/rbac/v1/clusterrole.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapirbacv1 \"k8s.io/api/rbac/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\trbacv1 \"k8s.io/client-go/listers/rbac/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ClusterRoleInformer provides access to a shared informer and lister for\n// ClusterRoles.\ntype ClusterRoleInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() rbacv1.ClusterRoleLister\n}\n\ntype clusterRoleInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewClusterRoleInformer constructs a new informer for ClusterRole type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewClusterRoleInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredClusterRoleInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredClusterRoleInformer constructs a new informer for ClusterRole type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredClusterRoleInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.RbacV1().ClusterRoles().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.RbacV1().ClusterRoles().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apirbacv1.ClusterRole{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *clusterRoleInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredClusterRoleInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *clusterRoleInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apirbacv1.ClusterRole{}, f.defaultInformer)\n}\n\nfunc (f *clusterRoleInformer) Lister() rbacv1.ClusterRoleLister {\n\treturn rbacv1.NewClusterRoleLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/rbac/v1/clusterrolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapirbacv1 \"k8s.io/api/rbac/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\trbacv1 \"k8s.io/client-go/listers/rbac/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ClusterRoleBindingInformer provides access to a shared informer and lister for\n// ClusterRoleBindings.\ntype ClusterRoleBindingInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() rbacv1.ClusterRoleBindingLister\n}\n\ntype clusterRoleBindingInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewClusterRoleBindingInformer constructs a new informer for ClusterRoleBinding type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewClusterRoleBindingInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredClusterRoleBindingInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredClusterRoleBindingInformer constructs a new informer for ClusterRoleBinding type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredClusterRoleBindingInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.RbacV1().ClusterRoleBindings().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.RbacV1().ClusterRoleBindings().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apirbacv1.ClusterRoleBinding{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *clusterRoleBindingInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredClusterRoleBindingInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *clusterRoleBindingInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apirbacv1.ClusterRoleBinding{}, f.defaultInformer)\n}\n\nfunc (f *clusterRoleBindingInformer) Lister() rbacv1.ClusterRoleBindingLister {\n\treturn rbacv1.NewClusterRoleBindingLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/rbac/v1/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// ClusterRoles returns a ClusterRoleInformer.\n\tClusterRoles() ClusterRoleInformer\n\t// ClusterRoleBindings returns a ClusterRoleBindingInformer.\n\tClusterRoleBindings() ClusterRoleBindingInformer\n\t// Roles returns a RoleInformer.\n\tRoles() RoleInformer\n\t// RoleBindings returns a RoleBindingInformer.\n\tRoleBindings() RoleBindingInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// ClusterRoles returns a ClusterRoleInformer.\nfunc (v *version) ClusterRoles() ClusterRoleInformer {\n\treturn &clusterRoleInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n\n// ClusterRoleBindings returns a ClusterRoleBindingInformer.\nfunc (v *version) ClusterRoleBindings() ClusterRoleBindingInformer {\n\treturn &clusterRoleBindingInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n\n// Roles returns a RoleInformer.\nfunc (v *version) Roles() RoleInformer {\n\treturn &roleInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n\n// RoleBindings returns a RoleBindingInformer.\nfunc (v *version) RoleBindings() RoleBindingInformer {\n\treturn &roleBindingInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/rbac/v1/role.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapirbacv1 \"k8s.io/api/rbac/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\trbacv1 \"k8s.io/client-go/listers/rbac/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// RoleInformer provides access to a shared informer and lister for\n// Roles.\ntype RoleInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() rbacv1.RoleLister\n}\n\ntype roleInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewRoleInformer constructs a new informer for Role type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewRoleInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredRoleInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredRoleInformer constructs a new informer for Role type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredRoleInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.RbacV1().Roles(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.RbacV1().Roles(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apirbacv1.Role{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *roleInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredRoleInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *roleInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apirbacv1.Role{}, f.defaultInformer)\n}\n\nfunc (f *roleInformer) Lister() rbacv1.RoleLister {\n\treturn rbacv1.NewRoleLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/rbac/v1/rolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapirbacv1 \"k8s.io/api/rbac/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\trbacv1 \"k8s.io/client-go/listers/rbac/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// RoleBindingInformer provides access to a shared informer and lister for\n// RoleBindings.\ntype RoleBindingInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() rbacv1.RoleBindingLister\n}\n\ntype roleBindingInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewRoleBindingInformer constructs a new informer for RoleBinding type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewRoleBindingInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredRoleBindingInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredRoleBindingInformer constructs a new informer for RoleBinding type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredRoleBindingInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.RbacV1().RoleBindings(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.RbacV1().RoleBindings(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apirbacv1.RoleBinding{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *roleBindingInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredRoleBindingInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *roleBindingInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apirbacv1.RoleBinding{}, f.defaultInformer)\n}\n\nfunc (f *roleBindingInformer) Lister() rbacv1.RoleBindingLister {\n\treturn rbacv1.NewRoleBindingLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/rbac/v1alpha1/clusterrole.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapirbacv1alpha1 \"k8s.io/api/rbac/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\trbacv1alpha1 \"k8s.io/client-go/listers/rbac/v1alpha1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ClusterRoleInformer provides access to a shared informer and lister for\n// ClusterRoles.\ntype ClusterRoleInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() rbacv1alpha1.ClusterRoleLister\n}\n\ntype clusterRoleInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewClusterRoleInformer constructs a new informer for ClusterRole type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewClusterRoleInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredClusterRoleInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredClusterRoleInformer constructs a new informer for ClusterRole type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredClusterRoleInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.RbacV1alpha1().ClusterRoles().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.RbacV1alpha1().ClusterRoles().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apirbacv1alpha1.ClusterRole{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *clusterRoleInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredClusterRoleInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *clusterRoleInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apirbacv1alpha1.ClusterRole{}, f.defaultInformer)\n}\n\nfunc (f *clusterRoleInformer) Lister() rbacv1alpha1.ClusterRoleLister {\n\treturn rbacv1alpha1.NewClusterRoleLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/rbac/v1alpha1/clusterrolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapirbacv1alpha1 \"k8s.io/api/rbac/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\trbacv1alpha1 \"k8s.io/client-go/listers/rbac/v1alpha1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ClusterRoleBindingInformer provides access to a shared informer and lister for\n// ClusterRoleBindings.\ntype ClusterRoleBindingInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() rbacv1alpha1.ClusterRoleBindingLister\n}\n\ntype clusterRoleBindingInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewClusterRoleBindingInformer constructs a new informer for ClusterRoleBinding type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewClusterRoleBindingInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredClusterRoleBindingInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredClusterRoleBindingInformer constructs a new informer for ClusterRoleBinding type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredClusterRoleBindingInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.RbacV1alpha1().ClusterRoleBindings().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.RbacV1alpha1().ClusterRoleBindings().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apirbacv1alpha1.ClusterRoleBinding{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *clusterRoleBindingInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredClusterRoleBindingInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *clusterRoleBindingInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apirbacv1alpha1.ClusterRoleBinding{}, f.defaultInformer)\n}\n\nfunc (f *clusterRoleBindingInformer) Lister() rbacv1alpha1.ClusterRoleBindingLister {\n\treturn rbacv1alpha1.NewClusterRoleBindingLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/rbac/v1alpha1/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// ClusterRoles returns a ClusterRoleInformer.\n\tClusterRoles() ClusterRoleInformer\n\t// ClusterRoleBindings returns a ClusterRoleBindingInformer.\n\tClusterRoleBindings() ClusterRoleBindingInformer\n\t// Roles returns a RoleInformer.\n\tRoles() RoleInformer\n\t// RoleBindings returns a RoleBindingInformer.\n\tRoleBindings() RoleBindingInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// ClusterRoles returns a ClusterRoleInformer.\nfunc (v *version) ClusterRoles() ClusterRoleInformer {\n\treturn &clusterRoleInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n\n// ClusterRoleBindings returns a ClusterRoleBindingInformer.\nfunc (v *version) ClusterRoleBindings() ClusterRoleBindingInformer {\n\treturn &clusterRoleBindingInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n\n// Roles returns a RoleInformer.\nfunc (v *version) Roles() RoleInformer {\n\treturn &roleInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n\n// RoleBindings returns a RoleBindingInformer.\nfunc (v *version) RoleBindings() RoleBindingInformer {\n\treturn &roleBindingInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/rbac/v1alpha1/role.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapirbacv1alpha1 \"k8s.io/api/rbac/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\trbacv1alpha1 \"k8s.io/client-go/listers/rbac/v1alpha1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// RoleInformer provides access to a shared informer and lister for\n// Roles.\ntype RoleInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() rbacv1alpha1.RoleLister\n}\n\ntype roleInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewRoleInformer constructs a new informer for Role type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewRoleInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredRoleInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredRoleInformer constructs a new informer for Role type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredRoleInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.RbacV1alpha1().Roles(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.RbacV1alpha1().Roles(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apirbacv1alpha1.Role{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *roleInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredRoleInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *roleInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apirbacv1alpha1.Role{}, f.defaultInformer)\n}\n\nfunc (f *roleInformer) Lister() rbacv1alpha1.RoleLister {\n\treturn rbacv1alpha1.NewRoleLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/rbac/v1alpha1/rolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapirbacv1alpha1 \"k8s.io/api/rbac/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\trbacv1alpha1 \"k8s.io/client-go/listers/rbac/v1alpha1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// RoleBindingInformer provides access to a shared informer and lister for\n// RoleBindings.\ntype RoleBindingInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() rbacv1alpha1.RoleBindingLister\n}\n\ntype roleBindingInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewRoleBindingInformer constructs a new informer for RoleBinding type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewRoleBindingInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredRoleBindingInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredRoleBindingInformer constructs a new informer for RoleBinding type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredRoleBindingInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.RbacV1alpha1().RoleBindings(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.RbacV1alpha1().RoleBindings(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apirbacv1alpha1.RoleBinding{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *roleBindingInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredRoleBindingInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *roleBindingInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apirbacv1alpha1.RoleBinding{}, f.defaultInformer)\n}\n\nfunc (f *roleBindingInformer) Lister() rbacv1alpha1.RoleBindingLister {\n\treturn rbacv1alpha1.NewRoleBindingLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/rbac/v1beta1/clusterrole.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapirbacv1beta1 \"k8s.io/api/rbac/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\trbacv1beta1 \"k8s.io/client-go/listers/rbac/v1beta1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ClusterRoleInformer provides access to a shared informer and lister for\n// ClusterRoles.\ntype ClusterRoleInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() rbacv1beta1.ClusterRoleLister\n}\n\ntype clusterRoleInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewClusterRoleInformer constructs a new informer for ClusterRole type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewClusterRoleInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredClusterRoleInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredClusterRoleInformer constructs a new informer for ClusterRole type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredClusterRoleInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.RbacV1beta1().ClusterRoles().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.RbacV1beta1().ClusterRoles().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apirbacv1beta1.ClusterRole{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *clusterRoleInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredClusterRoleInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *clusterRoleInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apirbacv1beta1.ClusterRole{}, f.defaultInformer)\n}\n\nfunc (f *clusterRoleInformer) Lister() rbacv1beta1.ClusterRoleLister {\n\treturn rbacv1beta1.NewClusterRoleLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/rbac/v1beta1/clusterrolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapirbacv1beta1 \"k8s.io/api/rbac/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\trbacv1beta1 \"k8s.io/client-go/listers/rbac/v1beta1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ClusterRoleBindingInformer provides access to a shared informer and lister for\n// ClusterRoleBindings.\ntype ClusterRoleBindingInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() rbacv1beta1.ClusterRoleBindingLister\n}\n\ntype clusterRoleBindingInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewClusterRoleBindingInformer constructs a new informer for ClusterRoleBinding type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewClusterRoleBindingInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredClusterRoleBindingInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredClusterRoleBindingInformer constructs a new informer for ClusterRoleBinding type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredClusterRoleBindingInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.RbacV1beta1().ClusterRoleBindings().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.RbacV1beta1().ClusterRoleBindings().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apirbacv1beta1.ClusterRoleBinding{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *clusterRoleBindingInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredClusterRoleBindingInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *clusterRoleBindingInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apirbacv1beta1.ClusterRoleBinding{}, f.defaultInformer)\n}\n\nfunc (f *clusterRoleBindingInformer) Lister() rbacv1beta1.ClusterRoleBindingLister {\n\treturn rbacv1beta1.NewClusterRoleBindingLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/rbac/v1beta1/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// ClusterRoles returns a ClusterRoleInformer.\n\tClusterRoles() ClusterRoleInformer\n\t// ClusterRoleBindings returns a ClusterRoleBindingInformer.\n\tClusterRoleBindings() ClusterRoleBindingInformer\n\t// Roles returns a RoleInformer.\n\tRoles() RoleInformer\n\t// RoleBindings returns a RoleBindingInformer.\n\tRoleBindings() RoleBindingInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// ClusterRoles returns a ClusterRoleInformer.\nfunc (v *version) ClusterRoles() ClusterRoleInformer {\n\treturn &clusterRoleInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n\n// ClusterRoleBindings returns a ClusterRoleBindingInformer.\nfunc (v *version) ClusterRoleBindings() ClusterRoleBindingInformer {\n\treturn &clusterRoleBindingInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n\n// Roles returns a RoleInformer.\nfunc (v *version) Roles() RoleInformer {\n\treturn &roleInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n\n// RoleBindings returns a RoleBindingInformer.\nfunc (v *version) RoleBindings() RoleBindingInformer {\n\treturn &roleBindingInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/rbac/v1beta1/role.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapirbacv1beta1 \"k8s.io/api/rbac/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\trbacv1beta1 \"k8s.io/client-go/listers/rbac/v1beta1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// RoleInformer provides access to a shared informer and lister for\n// Roles.\ntype RoleInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() rbacv1beta1.RoleLister\n}\n\ntype roleInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewRoleInformer constructs a new informer for Role type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewRoleInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredRoleInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredRoleInformer constructs a new informer for Role type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredRoleInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.RbacV1beta1().Roles(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.RbacV1beta1().Roles(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apirbacv1beta1.Role{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *roleInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredRoleInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *roleInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apirbacv1beta1.Role{}, f.defaultInformer)\n}\n\nfunc (f *roleInformer) Lister() rbacv1beta1.RoleLister {\n\treturn rbacv1beta1.NewRoleLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/rbac/v1beta1/rolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapirbacv1beta1 \"k8s.io/api/rbac/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\trbacv1beta1 \"k8s.io/client-go/listers/rbac/v1beta1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// RoleBindingInformer provides access to a shared informer and lister for\n// RoleBindings.\ntype RoleBindingInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() rbacv1beta1.RoleBindingLister\n}\n\ntype roleBindingInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewRoleBindingInformer constructs a new informer for RoleBinding type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewRoleBindingInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredRoleBindingInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredRoleBindingInformer constructs a new informer for RoleBinding type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredRoleBindingInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.RbacV1beta1().RoleBindings(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.RbacV1beta1().RoleBindings(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apirbacv1beta1.RoleBinding{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *roleBindingInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredRoleBindingInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *roleBindingInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apirbacv1beta1.RoleBinding{}, f.defaultInformer)\n}\n\nfunc (f *roleBindingInformer) Lister() rbacv1beta1.RoleBindingLister {\n\treturn rbacv1beta1.NewRoleBindingLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/resource/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage resource\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tv1alpha3 \"k8s.io/client-go/informers/resource/v1alpha3\"\n\tv1beta1 \"k8s.io/client-go/informers/resource/v1beta1\"\n)\n\n// Interface provides access to each of this group's versions.\ntype Interface interface {\n\t// V1alpha3 provides access to shared informers for resources in V1alpha3.\n\tV1alpha3() v1alpha3.Interface\n\t// V1beta1 provides access to shared informers for resources in V1beta1.\n\tV1beta1() v1beta1.Interface\n}\n\ntype group struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// V1alpha3 returns a new v1alpha3.Interface.\nfunc (g *group) V1alpha3() v1alpha3.Interface {\n\treturn v1alpha3.New(g.factory, g.namespace, g.tweakListOptions)\n}\n\n// V1beta1 returns a new v1beta1.Interface.\nfunc (g *group) V1beta1() v1beta1.Interface {\n\treturn v1beta1.New(g.factory, g.namespace, g.tweakListOptions)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/resource/v1alpha3/deviceclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1alpha3\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiresourcev1alpha3 \"k8s.io/api/resource/v1alpha3\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tresourcev1alpha3 \"k8s.io/client-go/listers/resource/v1alpha3\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// DeviceClassInformer provides access to a shared informer and lister for\n// DeviceClasses.\ntype DeviceClassInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() resourcev1alpha3.DeviceClassLister\n}\n\ntype deviceClassInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewDeviceClassInformer constructs a new informer for DeviceClass type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewDeviceClassInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredDeviceClassInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredDeviceClassInformer constructs a new informer for DeviceClass type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredDeviceClassInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.ResourceV1alpha3().DeviceClasses().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.ResourceV1alpha3().DeviceClasses().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiresourcev1alpha3.DeviceClass{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *deviceClassInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredDeviceClassInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *deviceClassInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiresourcev1alpha3.DeviceClass{}, f.defaultInformer)\n}\n\nfunc (f *deviceClassInformer) Lister() resourcev1alpha3.DeviceClassLister {\n\treturn resourcev1alpha3.NewDeviceClassLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/resource/v1alpha3/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1alpha3\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// DeviceClasses returns a DeviceClassInformer.\n\tDeviceClasses() DeviceClassInformer\n\t// ResourceClaims returns a ResourceClaimInformer.\n\tResourceClaims() ResourceClaimInformer\n\t// ResourceClaimTemplates returns a ResourceClaimTemplateInformer.\n\tResourceClaimTemplates() ResourceClaimTemplateInformer\n\t// ResourceSlices returns a ResourceSliceInformer.\n\tResourceSlices() ResourceSliceInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// DeviceClasses returns a DeviceClassInformer.\nfunc (v *version) DeviceClasses() DeviceClassInformer {\n\treturn &deviceClassInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n\n// ResourceClaims returns a ResourceClaimInformer.\nfunc (v *version) ResourceClaims() ResourceClaimInformer {\n\treturn &resourceClaimInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n\n// ResourceClaimTemplates returns a ResourceClaimTemplateInformer.\nfunc (v *version) ResourceClaimTemplates() ResourceClaimTemplateInformer {\n\treturn &resourceClaimTemplateInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n\n// ResourceSlices returns a ResourceSliceInformer.\nfunc (v *version) ResourceSlices() ResourceSliceInformer {\n\treturn &resourceSliceInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/resource/v1alpha3/resourceclaim.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1alpha3\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiresourcev1alpha3 \"k8s.io/api/resource/v1alpha3\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tresourcev1alpha3 \"k8s.io/client-go/listers/resource/v1alpha3\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ResourceClaimInformer provides access to a shared informer and lister for\n// ResourceClaims.\ntype ResourceClaimInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() resourcev1alpha3.ResourceClaimLister\n}\n\ntype resourceClaimInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewResourceClaimInformer constructs a new informer for ResourceClaim type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewResourceClaimInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredResourceClaimInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredResourceClaimInformer constructs a new informer for ResourceClaim type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredResourceClaimInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.ResourceV1alpha3().ResourceClaims(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.ResourceV1alpha3().ResourceClaims(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiresourcev1alpha3.ResourceClaim{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *resourceClaimInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredResourceClaimInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *resourceClaimInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiresourcev1alpha3.ResourceClaim{}, f.defaultInformer)\n}\n\nfunc (f *resourceClaimInformer) Lister() resourcev1alpha3.ResourceClaimLister {\n\treturn resourcev1alpha3.NewResourceClaimLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/resource/v1alpha3/resourceclaimtemplate.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1alpha3\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiresourcev1alpha3 \"k8s.io/api/resource/v1alpha3\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tresourcev1alpha3 \"k8s.io/client-go/listers/resource/v1alpha3\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ResourceClaimTemplateInformer provides access to a shared informer and lister for\n// ResourceClaimTemplates.\ntype ResourceClaimTemplateInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() resourcev1alpha3.ResourceClaimTemplateLister\n}\n\ntype resourceClaimTemplateInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewResourceClaimTemplateInformer constructs a new informer for ResourceClaimTemplate type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewResourceClaimTemplateInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredResourceClaimTemplateInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredResourceClaimTemplateInformer constructs a new informer for ResourceClaimTemplate type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredResourceClaimTemplateInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.ResourceV1alpha3().ResourceClaimTemplates(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.ResourceV1alpha3().ResourceClaimTemplates(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiresourcev1alpha3.ResourceClaimTemplate{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *resourceClaimTemplateInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredResourceClaimTemplateInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *resourceClaimTemplateInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiresourcev1alpha3.ResourceClaimTemplate{}, f.defaultInformer)\n}\n\nfunc (f *resourceClaimTemplateInformer) Lister() resourcev1alpha3.ResourceClaimTemplateLister {\n\treturn resourcev1alpha3.NewResourceClaimTemplateLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/resource/v1alpha3/resourceslice.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1alpha3\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiresourcev1alpha3 \"k8s.io/api/resource/v1alpha3\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tresourcev1alpha3 \"k8s.io/client-go/listers/resource/v1alpha3\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ResourceSliceInformer provides access to a shared informer and lister for\n// ResourceSlices.\ntype ResourceSliceInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() resourcev1alpha3.ResourceSliceLister\n}\n\ntype resourceSliceInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewResourceSliceInformer constructs a new informer for ResourceSlice type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewResourceSliceInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredResourceSliceInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredResourceSliceInformer constructs a new informer for ResourceSlice type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredResourceSliceInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.ResourceV1alpha3().ResourceSlices().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.ResourceV1alpha3().ResourceSlices().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiresourcev1alpha3.ResourceSlice{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *resourceSliceInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredResourceSliceInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *resourceSliceInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiresourcev1alpha3.ResourceSlice{}, f.defaultInformer)\n}\n\nfunc (f *resourceSliceInformer) Lister() resourcev1alpha3.ResourceSliceLister {\n\treturn resourcev1alpha3.NewResourceSliceLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/resource/v1beta1/deviceclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiresourcev1beta1 \"k8s.io/api/resource/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tresourcev1beta1 \"k8s.io/client-go/listers/resource/v1beta1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// DeviceClassInformer provides access to a shared informer and lister for\n// DeviceClasses.\ntype DeviceClassInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() resourcev1beta1.DeviceClassLister\n}\n\ntype deviceClassInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewDeviceClassInformer constructs a new informer for DeviceClass type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewDeviceClassInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredDeviceClassInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredDeviceClassInformer constructs a new informer for DeviceClass type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredDeviceClassInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.ResourceV1beta1().DeviceClasses().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.ResourceV1beta1().DeviceClasses().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiresourcev1beta1.DeviceClass{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *deviceClassInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredDeviceClassInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *deviceClassInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiresourcev1beta1.DeviceClass{}, f.defaultInformer)\n}\n\nfunc (f *deviceClassInformer) Lister() resourcev1beta1.DeviceClassLister {\n\treturn resourcev1beta1.NewDeviceClassLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/resource/v1beta1/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// DeviceClasses returns a DeviceClassInformer.\n\tDeviceClasses() DeviceClassInformer\n\t// ResourceClaims returns a ResourceClaimInformer.\n\tResourceClaims() ResourceClaimInformer\n\t// ResourceClaimTemplates returns a ResourceClaimTemplateInformer.\n\tResourceClaimTemplates() ResourceClaimTemplateInformer\n\t// ResourceSlices returns a ResourceSliceInformer.\n\tResourceSlices() ResourceSliceInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// DeviceClasses returns a DeviceClassInformer.\nfunc (v *version) DeviceClasses() DeviceClassInformer {\n\treturn &deviceClassInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n\n// ResourceClaims returns a ResourceClaimInformer.\nfunc (v *version) ResourceClaims() ResourceClaimInformer {\n\treturn &resourceClaimInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n\n// ResourceClaimTemplates returns a ResourceClaimTemplateInformer.\nfunc (v *version) ResourceClaimTemplates() ResourceClaimTemplateInformer {\n\treturn &resourceClaimTemplateInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n\n// ResourceSlices returns a ResourceSliceInformer.\nfunc (v *version) ResourceSlices() ResourceSliceInformer {\n\treturn &resourceSliceInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/resource/v1beta1/resourceclaim.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiresourcev1beta1 \"k8s.io/api/resource/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tresourcev1beta1 \"k8s.io/client-go/listers/resource/v1beta1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ResourceClaimInformer provides access to a shared informer and lister for\n// ResourceClaims.\ntype ResourceClaimInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() resourcev1beta1.ResourceClaimLister\n}\n\ntype resourceClaimInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewResourceClaimInformer constructs a new informer for ResourceClaim type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewResourceClaimInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredResourceClaimInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredResourceClaimInformer constructs a new informer for ResourceClaim type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredResourceClaimInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.ResourceV1beta1().ResourceClaims(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.ResourceV1beta1().ResourceClaims(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiresourcev1beta1.ResourceClaim{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *resourceClaimInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredResourceClaimInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *resourceClaimInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiresourcev1beta1.ResourceClaim{}, f.defaultInformer)\n}\n\nfunc (f *resourceClaimInformer) Lister() resourcev1beta1.ResourceClaimLister {\n\treturn resourcev1beta1.NewResourceClaimLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/resource/v1beta1/resourceclaimtemplate.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiresourcev1beta1 \"k8s.io/api/resource/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tresourcev1beta1 \"k8s.io/client-go/listers/resource/v1beta1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ResourceClaimTemplateInformer provides access to a shared informer and lister for\n// ResourceClaimTemplates.\ntype ResourceClaimTemplateInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() resourcev1beta1.ResourceClaimTemplateLister\n}\n\ntype resourceClaimTemplateInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewResourceClaimTemplateInformer constructs a new informer for ResourceClaimTemplate type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewResourceClaimTemplateInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredResourceClaimTemplateInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredResourceClaimTemplateInformer constructs a new informer for ResourceClaimTemplate type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredResourceClaimTemplateInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.ResourceV1beta1().ResourceClaimTemplates(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.ResourceV1beta1().ResourceClaimTemplates(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiresourcev1beta1.ResourceClaimTemplate{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *resourceClaimTemplateInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredResourceClaimTemplateInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *resourceClaimTemplateInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiresourcev1beta1.ResourceClaimTemplate{}, f.defaultInformer)\n}\n\nfunc (f *resourceClaimTemplateInformer) Lister() resourcev1beta1.ResourceClaimTemplateLister {\n\treturn resourcev1beta1.NewResourceClaimTemplateLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/resource/v1beta1/resourceslice.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapiresourcev1beta1 \"k8s.io/api/resource/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tresourcev1beta1 \"k8s.io/client-go/listers/resource/v1beta1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ResourceSliceInformer provides access to a shared informer and lister for\n// ResourceSlices.\ntype ResourceSliceInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() resourcev1beta1.ResourceSliceLister\n}\n\ntype resourceSliceInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewResourceSliceInformer constructs a new informer for ResourceSlice type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewResourceSliceInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredResourceSliceInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredResourceSliceInformer constructs a new informer for ResourceSlice type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredResourceSliceInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.ResourceV1beta1().ResourceSlices().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.ResourceV1beta1().ResourceSlices().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apiresourcev1beta1.ResourceSlice{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *resourceSliceInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredResourceSliceInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *resourceSliceInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apiresourcev1beta1.ResourceSlice{}, f.defaultInformer)\n}\n\nfunc (f *resourceSliceInformer) Lister() resourcev1beta1.ResourceSliceLister {\n\treturn resourcev1beta1.NewResourceSliceLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/scheduling/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage scheduling\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tv1 \"k8s.io/client-go/informers/scheduling/v1\"\n\tv1alpha1 \"k8s.io/client-go/informers/scheduling/v1alpha1\"\n\tv1beta1 \"k8s.io/client-go/informers/scheduling/v1beta1\"\n)\n\n// Interface provides access to each of this group's versions.\ntype Interface interface {\n\t// V1 provides access to shared informers for resources in V1.\n\tV1() v1.Interface\n\t// V1alpha1 provides access to shared informers for resources in V1alpha1.\n\tV1alpha1() v1alpha1.Interface\n\t// V1beta1 provides access to shared informers for resources in V1beta1.\n\tV1beta1() v1beta1.Interface\n}\n\ntype group struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// V1 returns a new v1.Interface.\nfunc (g *group) V1() v1.Interface {\n\treturn v1.New(g.factory, g.namespace, g.tweakListOptions)\n}\n\n// V1alpha1 returns a new v1alpha1.Interface.\nfunc (g *group) V1alpha1() v1alpha1.Interface {\n\treturn v1alpha1.New(g.factory, g.namespace, g.tweakListOptions)\n}\n\n// V1beta1 returns a new v1beta1.Interface.\nfunc (g *group) V1beta1() v1beta1.Interface {\n\treturn v1beta1.New(g.factory, g.namespace, g.tweakListOptions)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/scheduling/v1/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// PriorityClasses returns a PriorityClassInformer.\n\tPriorityClasses() PriorityClassInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// PriorityClasses returns a PriorityClassInformer.\nfunc (v *version) PriorityClasses() PriorityClassInformer {\n\treturn &priorityClassInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/scheduling/v1/priorityclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapischedulingv1 \"k8s.io/api/scheduling/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tschedulingv1 \"k8s.io/client-go/listers/scheduling/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// PriorityClassInformer provides access to a shared informer and lister for\n// PriorityClasses.\ntype PriorityClassInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() schedulingv1.PriorityClassLister\n}\n\ntype priorityClassInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewPriorityClassInformer constructs a new informer for PriorityClass type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewPriorityClassInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredPriorityClassInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredPriorityClassInformer constructs a new informer for PriorityClass type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredPriorityClassInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.SchedulingV1().PriorityClasses().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.SchedulingV1().PriorityClasses().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apischedulingv1.PriorityClass{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *priorityClassInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredPriorityClassInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *priorityClassInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apischedulingv1.PriorityClass{}, f.defaultInformer)\n}\n\nfunc (f *priorityClassInformer) Lister() schedulingv1.PriorityClassLister {\n\treturn schedulingv1.NewPriorityClassLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/scheduling/v1alpha1/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// PriorityClasses returns a PriorityClassInformer.\n\tPriorityClasses() PriorityClassInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// PriorityClasses returns a PriorityClassInformer.\nfunc (v *version) PriorityClasses() PriorityClassInformer {\n\treturn &priorityClassInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/scheduling/v1alpha1/priorityclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapischedulingv1alpha1 \"k8s.io/api/scheduling/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tschedulingv1alpha1 \"k8s.io/client-go/listers/scheduling/v1alpha1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// PriorityClassInformer provides access to a shared informer and lister for\n// PriorityClasses.\ntype PriorityClassInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() schedulingv1alpha1.PriorityClassLister\n}\n\ntype priorityClassInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewPriorityClassInformer constructs a new informer for PriorityClass type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewPriorityClassInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredPriorityClassInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredPriorityClassInformer constructs a new informer for PriorityClass type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredPriorityClassInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.SchedulingV1alpha1().PriorityClasses().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.SchedulingV1alpha1().PriorityClasses().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apischedulingv1alpha1.PriorityClass{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *priorityClassInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredPriorityClassInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *priorityClassInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apischedulingv1alpha1.PriorityClass{}, f.defaultInformer)\n}\n\nfunc (f *priorityClassInformer) Lister() schedulingv1alpha1.PriorityClassLister {\n\treturn schedulingv1alpha1.NewPriorityClassLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/scheduling/v1beta1/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// PriorityClasses returns a PriorityClassInformer.\n\tPriorityClasses() PriorityClassInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// PriorityClasses returns a PriorityClassInformer.\nfunc (v *version) PriorityClasses() PriorityClassInformer {\n\treturn &priorityClassInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/scheduling/v1beta1/priorityclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapischedulingv1beta1 \"k8s.io/api/scheduling/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tschedulingv1beta1 \"k8s.io/client-go/listers/scheduling/v1beta1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// PriorityClassInformer provides access to a shared informer and lister for\n// PriorityClasses.\ntype PriorityClassInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() schedulingv1beta1.PriorityClassLister\n}\n\ntype priorityClassInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewPriorityClassInformer constructs a new informer for PriorityClass type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewPriorityClassInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredPriorityClassInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredPriorityClassInformer constructs a new informer for PriorityClass type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredPriorityClassInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.SchedulingV1beta1().PriorityClasses().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.SchedulingV1beta1().PriorityClasses().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apischedulingv1beta1.PriorityClass{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *priorityClassInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredPriorityClassInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *priorityClassInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apischedulingv1beta1.PriorityClass{}, f.defaultInformer)\n}\n\nfunc (f *priorityClassInformer) Lister() schedulingv1beta1.PriorityClassLister {\n\treturn schedulingv1beta1.NewPriorityClassLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/storage/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage storage\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tv1 \"k8s.io/client-go/informers/storage/v1\"\n\tv1alpha1 \"k8s.io/client-go/informers/storage/v1alpha1\"\n\tv1beta1 \"k8s.io/client-go/informers/storage/v1beta1\"\n)\n\n// Interface provides access to each of this group's versions.\ntype Interface interface {\n\t// V1 provides access to shared informers for resources in V1.\n\tV1() v1.Interface\n\t// V1alpha1 provides access to shared informers for resources in V1alpha1.\n\tV1alpha1() v1alpha1.Interface\n\t// V1beta1 provides access to shared informers for resources in V1beta1.\n\tV1beta1() v1beta1.Interface\n}\n\ntype group struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// V1 returns a new v1.Interface.\nfunc (g *group) V1() v1.Interface {\n\treturn v1.New(g.factory, g.namespace, g.tweakListOptions)\n}\n\n// V1alpha1 returns a new v1alpha1.Interface.\nfunc (g *group) V1alpha1() v1alpha1.Interface {\n\treturn v1alpha1.New(g.factory, g.namespace, g.tweakListOptions)\n}\n\n// V1beta1 returns a new v1beta1.Interface.\nfunc (g *group) V1beta1() v1beta1.Interface {\n\treturn v1beta1.New(g.factory, g.namespace, g.tweakListOptions)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/storage/v1/csidriver.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapistoragev1 \"k8s.io/api/storage/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tstoragev1 \"k8s.io/client-go/listers/storage/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// CSIDriverInformer provides access to a shared informer and lister for\n// CSIDrivers.\ntype CSIDriverInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() storagev1.CSIDriverLister\n}\n\ntype cSIDriverInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewCSIDriverInformer constructs a new informer for CSIDriver type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewCSIDriverInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredCSIDriverInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredCSIDriverInformer constructs a new informer for CSIDriver type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredCSIDriverInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.StorageV1().CSIDrivers().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.StorageV1().CSIDrivers().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apistoragev1.CSIDriver{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *cSIDriverInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredCSIDriverInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *cSIDriverInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apistoragev1.CSIDriver{}, f.defaultInformer)\n}\n\nfunc (f *cSIDriverInformer) Lister() storagev1.CSIDriverLister {\n\treturn storagev1.NewCSIDriverLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/storage/v1/csinode.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapistoragev1 \"k8s.io/api/storage/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tstoragev1 \"k8s.io/client-go/listers/storage/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// CSINodeInformer provides access to a shared informer and lister for\n// CSINodes.\ntype CSINodeInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() storagev1.CSINodeLister\n}\n\ntype cSINodeInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewCSINodeInformer constructs a new informer for CSINode type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewCSINodeInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredCSINodeInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredCSINodeInformer constructs a new informer for CSINode type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredCSINodeInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.StorageV1().CSINodes().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.StorageV1().CSINodes().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apistoragev1.CSINode{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *cSINodeInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredCSINodeInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *cSINodeInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apistoragev1.CSINode{}, f.defaultInformer)\n}\n\nfunc (f *cSINodeInformer) Lister() storagev1.CSINodeLister {\n\treturn storagev1.NewCSINodeLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/storage/v1/csistoragecapacity.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapistoragev1 \"k8s.io/api/storage/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tstoragev1 \"k8s.io/client-go/listers/storage/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// CSIStorageCapacityInformer provides access to a shared informer and lister for\n// CSIStorageCapacities.\ntype CSIStorageCapacityInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() storagev1.CSIStorageCapacityLister\n}\n\ntype cSIStorageCapacityInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewCSIStorageCapacityInformer constructs a new informer for CSIStorageCapacity type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewCSIStorageCapacityInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredCSIStorageCapacityInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredCSIStorageCapacityInformer constructs a new informer for CSIStorageCapacity type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredCSIStorageCapacityInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.StorageV1().CSIStorageCapacities(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.StorageV1().CSIStorageCapacities(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apistoragev1.CSIStorageCapacity{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *cSIStorageCapacityInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredCSIStorageCapacityInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *cSIStorageCapacityInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apistoragev1.CSIStorageCapacity{}, f.defaultInformer)\n}\n\nfunc (f *cSIStorageCapacityInformer) Lister() storagev1.CSIStorageCapacityLister {\n\treturn storagev1.NewCSIStorageCapacityLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/storage/v1/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// CSIDrivers returns a CSIDriverInformer.\n\tCSIDrivers() CSIDriverInformer\n\t// CSINodes returns a CSINodeInformer.\n\tCSINodes() CSINodeInformer\n\t// CSIStorageCapacities returns a CSIStorageCapacityInformer.\n\tCSIStorageCapacities() CSIStorageCapacityInformer\n\t// StorageClasses returns a StorageClassInformer.\n\tStorageClasses() StorageClassInformer\n\t// VolumeAttachments returns a VolumeAttachmentInformer.\n\tVolumeAttachments() VolumeAttachmentInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// CSIDrivers returns a CSIDriverInformer.\nfunc (v *version) CSIDrivers() CSIDriverInformer {\n\treturn &cSIDriverInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n\n// CSINodes returns a CSINodeInformer.\nfunc (v *version) CSINodes() CSINodeInformer {\n\treturn &cSINodeInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n\n// CSIStorageCapacities returns a CSIStorageCapacityInformer.\nfunc (v *version) CSIStorageCapacities() CSIStorageCapacityInformer {\n\treturn &cSIStorageCapacityInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n\n// StorageClasses returns a StorageClassInformer.\nfunc (v *version) StorageClasses() StorageClassInformer {\n\treturn &storageClassInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n\n// VolumeAttachments returns a VolumeAttachmentInformer.\nfunc (v *version) VolumeAttachments() VolumeAttachmentInformer {\n\treturn &volumeAttachmentInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/storage/v1/storageclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapistoragev1 \"k8s.io/api/storage/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tstoragev1 \"k8s.io/client-go/listers/storage/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// StorageClassInformer provides access to a shared informer and lister for\n// StorageClasses.\ntype StorageClassInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() storagev1.StorageClassLister\n}\n\ntype storageClassInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewStorageClassInformer constructs a new informer for StorageClass type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewStorageClassInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredStorageClassInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredStorageClassInformer constructs a new informer for StorageClass type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredStorageClassInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.StorageV1().StorageClasses().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.StorageV1().StorageClasses().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apistoragev1.StorageClass{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *storageClassInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredStorageClassInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *storageClassInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apistoragev1.StorageClass{}, f.defaultInformer)\n}\n\nfunc (f *storageClassInformer) Lister() storagev1.StorageClassLister {\n\treturn storagev1.NewStorageClassLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/storage/v1/volumeattachment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapistoragev1 \"k8s.io/api/storage/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tstoragev1 \"k8s.io/client-go/listers/storage/v1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// VolumeAttachmentInformer provides access to a shared informer and lister for\n// VolumeAttachments.\ntype VolumeAttachmentInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() storagev1.VolumeAttachmentLister\n}\n\ntype volumeAttachmentInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewVolumeAttachmentInformer constructs a new informer for VolumeAttachment type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewVolumeAttachmentInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredVolumeAttachmentInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredVolumeAttachmentInformer constructs a new informer for VolumeAttachment type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredVolumeAttachmentInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options metav1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.StorageV1().VolumeAttachments().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.StorageV1().VolumeAttachments().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apistoragev1.VolumeAttachment{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *volumeAttachmentInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredVolumeAttachmentInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *volumeAttachmentInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apistoragev1.VolumeAttachment{}, f.defaultInformer)\n}\n\nfunc (f *volumeAttachmentInformer) Lister() storagev1.VolumeAttachmentLister {\n\treturn storagev1.NewVolumeAttachmentLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/storage/v1alpha1/csistoragecapacity.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapistoragev1alpha1 \"k8s.io/api/storage/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tstoragev1alpha1 \"k8s.io/client-go/listers/storage/v1alpha1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// CSIStorageCapacityInformer provides access to a shared informer and lister for\n// CSIStorageCapacities.\ntype CSIStorageCapacityInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() storagev1alpha1.CSIStorageCapacityLister\n}\n\ntype cSIStorageCapacityInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewCSIStorageCapacityInformer constructs a new informer for CSIStorageCapacity type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewCSIStorageCapacityInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredCSIStorageCapacityInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredCSIStorageCapacityInformer constructs a new informer for CSIStorageCapacity type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredCSIStorageCapacityInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.StorageV1alpha1().CSIStorageCapacities(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.StorageV1alpha1().CSIStorageCapacities(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apistoragev1alpha1.CSIStorageCapacity{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *cSIStorageCapacityInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredCSIStorageCapacityInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *cSIStorageCapacityInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apistoragev1alpha1.CSIStorageCapacity{}, f.defaultInformer)\n}\n\nfunc (f *cSIStorageCapacityInformer) Lister() storagev1alpha1.CSIStorageCapacityLister {\n\treturn storagev1alpha1.NewCSIStorageCapacityLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/storage/v1alpha1/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// CSIStorageCapacities returns a CSIStorageCapacityInformer.\n\tCSIStorageCapacities() CSIStorageCapacityInformer\n\t// VolumeAttachments returns a VolumeAttachmentInformer.\n\tVolumeAttachments() VolumeAttachmentInformer\n\t// VolumeAttributesClasses returns a VolumeAttributesClassInformer.\n\tVolumeAttributesClasses() VolumeAttributesClassInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// CSIStorageCapacities returns a CSIStorageCapacityInformer.\nfunc (v *version) CSIStorageCapacities() CSIStorageCapacityInformer {\n\treturn &cSIStorageCapacityInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n\n// VolumeAttachments returns a VolumeAttachmentInformer.\nfunc (v *version) VolumeAttachments() VolumeAttachmentInformer {\n\treturn &volumeAttachmentInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n\n// VolumeAttributesClasses returns a VolumeAttributesClassInformer.\nfunc (v *version) VolumeAttributesClasses() VolumeAttributesClassInformer {\n\treturn &volumeAttributesClassInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/storage/v1alpha1/volumeattachment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapistoragev1alpha1 \"k8s.io/api/storage/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tstoragev1alpha1 \"k8s.io/client-go/listers/storage/v1alpha1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// VolumeAttachmentInformer provides access to a shared informer and lister for\n// VolumeAttachments.\ntype VolumeAttachmentInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() storagev1alpha1.VolumeAttachmentLister\n}\n\ntype volumeAttachmentInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewVolumeAttachmentInformer constructs a new informer for VolumeAttachment type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewVolumeAttachmentInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredVolumeAttachmentInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredVolumeAttachmentInformer constructs a new informer for VolumeAttachment type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredVolumeAttachmentInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.StorageV1alpha1().VolumeAttachments().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.StorageV1alpha1().VolumeAttachments().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apistoragev1alpha1.VolumeAttachment{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *volumeAttachmentInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredVolumeAttachmentInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *volumeAttachmentInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apistoragev1alpha1.VolumeAttachment{}, f.defaultInformer)\n}\n\nfunc (f *volumeAttachmentInformer) Lister() storagev1alpha1.VolumeAttachmentLister {\n\treturn storagev1alpha1.NewVolumeAttachmentLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/storage/v1alpha1/volumeattributesclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapistoragev1alpha1 \"k8s.io/api/storage/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tstoragev1alpha1 \"k8s.io/client-go/listers/storage/v1alpha1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// VolumeAttributesClassInformer provides access to a shared informer and lister for\n// VolumeAttributesClasses.\ntype VolumeAttributesClassInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() storagev1alpha1.VolumeAttributesClassLister\n}\n\ntype volumeAttributesClassInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewVolumeAttributesClassInformer constructs a new informer for VolumeAttributesClass type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewVolumeAttributesClassInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredVolumeAttributesClassInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredVolumeAttributesClassInformer constructs a new informer for VolumeAttributesClass type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredVolumeAttributesClassInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.StorageV1alpha1().VolumeAttributesClasses().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.StorageV1alpha1().VolumeAttributesClasses().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apistoragev1alpha1.VolumeAttributesClass{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *volumeAttributesClassInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredVolumeAttributesClassInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *volumeAttributesClassInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apistoragev1alpha1.VolumeAttributesClass{}, f.defaultInformer)\n}\n\nfunc (f *volumeAttributesClassInformer) Lister() storagev1alpha1.VolumeAttributesClassLister {\n\treturn storagev1alpha1.NewVolumeAttributesClassLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/storage/v1beta1/csidriver.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapistoragev1beta1 \"k8s.io/api/storage/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tstoragev1beta1 \"k8s.io/client-go/listers/storage/v1beta1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// CSIDriverInformer provides access to a shared informer and lister for\n// CSIDrivers.\ntype CSIDriverInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() storagev1beta1.CSIDriverLister\n}\n\ntype cSIDriverInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewCSIDriverInformer constructs a new informer for CSIDriver type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewCSIDriverInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredCSIDriverInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredCSIDriverInformer constructs a new informer for CSIDriver type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredCSIDriverInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.StorageV1beta1().CSIDrivers().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.StorageV1beta1().CSIDrivers().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apistoragev1beta1.CSIDriver{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *cSIDriverInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredCSIDriverInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *cSIDriverInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apistoragev1beta1.CSIDriver{}, f.defaultInformer)\n}\n\nfunc (f *cSIDriverInformer) Lister() storagev1beta1.CSIDriverLister {\n\treturn storagev1beta1.NewCSIDriverLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/storage/v1beta1/csinode.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapistoragev1beta1 \"k8s.io/api/storage/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tstoragev1beta1 \"k8s.io/client-go/listers/storage/v1beta1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// CSINodeInformer provides access to a shared informer and lister for\n// CSINodes.\ntype CSINodeInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() storagev1beta1.CSINodeLister\n}\n\ntype cSINodeInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewCSINodeInformer constructs a new informer for CSINode type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewCSINodeInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredCSINodeInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredCSINodeInformer constructs a new informer for CSINode type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredCSINodeInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.StorageV1beta1().CSINodes().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.StorageV1beta1().CSINodes().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apistoragev1beta1.CSINode{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *cSINodeInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredCSINodeInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *cSINodeInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apistoragev1beta1.CSINode{}, f.defaultInformer)\n}\n\nfunc (f *cSINodeInformer) Lister() storagev1beta1.CSINodeLister {\n\treturn storagev1beta1.NewCSINodeLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/storage/v1beta1/csistoragecapacity.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapistoragev1beta1 \"k8s.io/api/storage/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tstoragev1beta1 \"k8s.io/client-go/listers/storage/v1beta1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// CSIStorageCapacityInformer provides access to a shared informer and lister for\n// CSIStorageCapacities.\ntype CSIStorageCapacityInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() storagev1beta1.CSIStorageCapacityLister\n}\n\ntype cSIStorageCapacityInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n\tnamespace        string\n}\n\n// NewCSIStorageCapacityInformer constructs a new informer for CSIStorageCapacity type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewCSIStorageCapacityInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredCSIStorageCapacityInformer(client, namespace, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredCSIStorageCapacityInformer constructs a new informer for CSIStorageCapacity type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredCSIStorageCapacityInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.StorageV1beta1().CSIStorageCapacities(namespace).List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.StorageV1beta1().CSIStorageCapacities(namespace).Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apistoragev1beta1.CSIStorageCapacity{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *cSIStorageCapacityInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredCSIStorageCapacityInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *cSIStorageCapacityInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apistoragev1beta1.CSIStorageCapacity{}, f.defaultInformer)\n}\n\nfunc (f *cSIStorageCapacityInformer) Lister() storagev1beta1.CSIStorageCapacityLister {\n\treturn storagev1beta1.NewCSIStorageCapacityLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/storage/v1beta1/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// CSIDrivers returns a CSIDriverInformer.\n\tCSIDrivers() CSIDriverInformer\n\t// CSINodes returns a CSINodeInformer.\n\tCSINodes() CSINodeInformer\n\t// CSIStorageCapacities returns a CSIStorageCapacityInformer.\n\tCSIStorageCapacities() CSIStorageCapacityInformer\n\t// StorageClasses returns a StorageClassInformer.\n\tStorageClasses() StorageClassInformer\n\t// VolumeAttachments returns a VolumeAttachmentInformer.\n\tVolumeAttachments() VolumeAttachmentInformer\n\t// VolumeAttributesClasses returns a VolumeAttributesClassInformer.\n\tVolumeAttributesClasses() VolumeAttributesClassInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// CSIDrivers returns a CSIDriverInformer.\nfunc (v *version) CSIDrivers() CSIDriverInformer {\n\treturn &cSIDriverInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n\n// CSINodes returns a CSINodeInformer.\nfunc (v *version) CSINodes() CSINodeInformer {\n\treturn &cSINodeInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n\n// CSIStorageCapacities returns a CSIStorageCapacityInformer.\nfunc (v *version) CSIStorageCapacities() CSIStorageCapacityInformer {\n\treturn &cSIStorageCapacityInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}\n}\n\n// StorageClasses returns a StorageClassInformer.\nfunc (v *version) StorageClasses() StorageClassInformer {\n\treturn &storageClassInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n\n// VolumeAttachments returns a VolumeAttachmentInformer.\nfunc (v *version) VolumeAttachments() VolumeAttachmentInformer {\n\treturn &volumeAttachmentInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n\n// VolumeAttributesClasses returns a VolumeAttributesClassInformer.\nfunc (v *version) VolumeAttributesClasses() VolumeAttributesClassInformer {\n\treturn &volumeAttributesClassInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/storage/v1beta1/storageclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapistoragev1beta1 \"k8s.io/api/storage/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tstoragev1beta1 \"k8s.io/client-go/listers/storage/v1beta1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// StorageClassInformer provides access to a shared informer and lister for\n// StorageClasses.\ntype StorageClassInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() storagev1beta1.StorageClassLister\n}\n\ntype storageClassInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewStorageClassInformer constructs a new informer for StorageClass type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewStorageClassInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredStorageClassInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredStorageClassInformer constructs a new informer for StorageClass type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredStorageClassInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.StorageV1beta1().StorageClasses().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.StorageV1beta1().StorageClasses().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apistoragev1beta1.StorageClass{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *storageClassInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredStorageClassInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *storageClassInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apistoragev1beta1.StorageClass{}, f.defaultInformer)\n}\n\nfunc (f *storageClassInformer) Lister() storagev1beta1.StorageClassLister {\n\treturn storagev1beta1.NewStorageClassLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/storage/v1beta1/volumeattachment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapistoragev1beta1 \"k8s.io/api/storage/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tstoragev1beta1 \"k8s.io/client-go/listers/storage/v1beta1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// VolumeAttachmentInformer provides access to a shared informer and lister for\n// VolumeAttachments.\ntype VolumeAttachmentInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() storagev1beta1.VolumeAttachmentLister\n}\n\ntype volumeAttachmentInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewVolumeAttachmentInformer constructs a new informer for VolumeAttachment type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewVolumeAttachmentInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredVolumeAttachmentInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredVolumeAttachmentInformer constructs a new informer for VolumeAttachment type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredVolumeAttachmentInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.StorageV1beta1().VolumeAttachments().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.StorageV1beta1().VolumeAttachments().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apistoragev1beta1.VolumeAttachment{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *volumeAttachmentInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredVolumeAttachmentInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *volumeAttachmentInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apistoragev1beta1.VolumeAttachment{}, f.defaultInformer)\n}\n\nfunc (f *volumeAttachmentInformer) Lister() storagev1beta1.VolumeAttachmentLister {\n\treturn storagev1beta1.NewVolumeAttachmentLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/storage/v1beta1/volumeattributesclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapistoragev1beta1 \"k8s.io/api/storage/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tstoragev1beta1 \"k8s.io/client-go/listers/storage/v1beta1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// VolumeAttributesClassInformer provides access to a shared informer and lister for\n// VolumeAttributesClasses.\ntype VolumeAttributesClassInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() storagev1beta1.VolumeAttributesClassLister\n}\n\ntype volumeAttributesClassInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewVolumeAttributesClassInformer constructs a new informer for VolumeAttributesClass type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewVolumeAttributesClassInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredVolumeAttributesClassInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredVolumeAttributesClassInformer constructs a new informer for VolumeAttributesClass type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredVolumeAttributesClassInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.StorageV1beta1().VolumeAttributesClasses().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.StorageV1beta1().VolumeAttributesClasses().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apistoragev1beta1.VolumeAttributesClass{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *volumeAttributesClassInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredVolumeAttributesClassInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *volumeAttributesClassInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apistoragev1beta1.VolumeAttributesClass{}, f.defaultInformer)\n}\n\nfunc (f *volumeAttributesClassInformer) Lister() storagev1beta1.VolumeAttributesClassLister {\n\treturn storagev1beta1.NewVolumeAttributesClassLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/storagemigration/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage storagemigration\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tv1alpha1 \"k8s.io/client-go/informers/storagemigration/v1alpha1\"\n)\n\n// Interface provides access to each of this group's versions.\ntype Interface interface {\n\t// V1alpha1 provides access to shared informers for resources in V1alpha1.\n\tV1alpha1() v1alpha1.Interface\n}\n\ntype group struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &group{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// V1alpha1 returns a new v1alpha1.Interface.\nfunc (g *group) V1alpha1() v1alpha1.Interface {\n\treturn v1alpha1.New(g.factory, g.namespace, g.tweakListOptions)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/storagemigration/v1alpha1/interface.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n)\n\n// Interface provides access to all the informers in this group version.\ntype Interface interface {\n\t// StorageVersionMigrations returns a StorageVersionMigrationInformer.\n\tStorageVersionMigrations() StorageVersionMigrationInformer\n}\n\ntype version struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\tnamespace        string\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// New returns a new Interface.\nfunc New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface {\n\treturn &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}\n}\n\n// StorageVersionMigrations returns a StorageVersionMigrationInformer.\nfunc (v *version) StorageVersionMigrations() StorageVersionMigrationInformer {\n\treturn &storageVersionMigrationInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/informers/storagemigration/v1alpha1/storageversionmigration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by informer-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcontext \"context\"\n\ttime \"time\"\n\n\tapistoragemigrationv1alpha1 \"k8s.io/api/storagemigration/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tinternalinterfaces \"k8s.io/client-go/informers/internalinterfaces\"\n\tkubernetes \"k8s.io/client-go/kubernetes\"\n\tstoragemigrationv1alpha1 \"k8s.io/client-go/listers/storagemigration/v1alpha1\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// StorageVersionMigrationInformer provides access to a shared informer and lister for\n// StorageVersionMigrations.\ntype StorageVersionMigrationInformer interface {\n\tInformer() cache.SharedIndexInformer\n\tLister() storagemigrationv1alpha1.StorageVersionMigrationLister\n}\n\ntype storageVersionMigrationInformer struct {\n\tfactory          internalinterfaces.SharedInformerFactory\n\ttweakListOptions internalinterfaces.TweakListOptionsFunc\n}\n\n// NewStorageVersionMigrationInformer constructs a new informer for StorageVersionMigration type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewStorageVersionMigrationInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {\n\treturn NewFilteredStorageVersionMigrationInformer(client, resyncPeriod, indexers, nil)\n}\n\n// NewFilteredStorageVersionMigrationInformer constructs a new informer for StorageVersionMigration type.\n// Always prefer using an informer factory to get a shared informer instead of getting an independent\n// one. This reduces memory footprint and number of connections to the server.\nfunc NewFilteredStorageVersionMigrationInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {\n\treturn cache.NewSharedIndexInformer(\n\t\t&cache.ListWatch{\n\t\t\tListFunc: func(options v1.ListOptions) (runtime.Object, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.StoragemigrationV1alpha1().StorageVersionMigrations().List(context.TODO(), options)\n\t\t\t},\n\t\t\tWatchFunc: func(options v1.ListOptions) (watch.Interface, error) {\n\t\t\t\tif tweakListOptions != nil {\n\t\t\t\t\ttweakListOptions(&options)\n\t\t\t\t}\n\t\t\t\treturn client.StoragemigrationV1alpha1().StorageVersionMigrations().Watch(context.TODO(), options)\n\t\t\t},\n\t\t},\n\t\t&apistoragemigrationv1alpha1.StorageVersionMigration{},\n\t\tresyncPeriod,\n\t\tindexers,\n\t)\n}\n\nfunc (f *storageVersionMigrationInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {\n\treturn NewFilteredStorageVersionMigrationInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)\n}\n\nfunc (f *storageVersionMigrationInformer) Informer() cache.SharedIndexInformer {\n\treturn f.factory.InformerFor(&apistoragemigrationv1alpha1.StorageVersionMigration{}, f.defaultInformer)\n}\n\nfunc (f *storageVersionMigrationInformer) Lister() storagemigrationv1alpha1.StorageVersionMigrationLister {\n\treturn storagemigrationv1alpha1.NewStorageVersionMigrationLister(f.Informer().GetIndexer())\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/clientset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage kubernetes\n\nimport (\n\tfmt \"fmt\"\n\thttp \"net/http\"\n\n\tdiscovery \"k8s.io/client-go/discovery\"\n\tadmissionregistrationv1 \"k8s.io/client-go/kubernetes/typed/admissionregistration/v1\"\n\tadmissionregistrationv1alpha1 \"k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1\"\n\tadmissionregistrationv1beta1 \"k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1\"\n\tinternalv1alpha1 \"k8s.io/client-go/kubernetes/typed/apiserverinternal/v1alpha1\"\n\tappsv1 \"k8s.io/client-go/kubernetes/typed/apps/v1\"\n\tappsv1beta1 \"k8s.io/client-go/kubernetes/typed/apps/v1beta1\"\n\tappsv1beta2 \"k8s.io/client-go/kubernetes/typed/apps/v1beta2\"\n\tauthenticationv1 \"k8s.io/client-go/kubernetes/typed/authentication/v1\"\n\tauthenticationv1alpha1 \"k8s.io/client-go/kubernetes/typed/authentication/v1alpha1\"\n\tauthenticationv1beta1 \"k8s.io/client-go/kubernetes/typed/authentication/v1beta1\"\n\tauthorizationv1 \"k8s.io/client-go/kubernetes/typed/authorization/v1\"\n\tauthorizationv1beta1 \"k8s.io/client-go/kubernetes/typed/authorization/v1beta1\"\n\tautoscalingv1 \"k8s.io/client-go/kubernetes/typed/autoscaling/v1\"\n\tautoscalingv2 \"k8s.io/client-go/kubernetes/typed/autoscaling/v2\"\n\tautoscalingv2beta1 \"k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1\"\n\tautoscalingv2beta2 \"k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2\"\n\tbatchv1 \"k8s.io/client-go/kubernetes/typed/batch/v1\"\n\tbatchv1beta1 \"k8s.io/client-go/kubernetes/typed/batch/v1beta1\"\n\tcertificatesv1 \"k8s.io/client-go/kubernetes/typed/certificates/v1\"\n\tcertificatesv1alpha1 \"k8s.io/client-go/kubernetes/typed/certificates/v1alpha1\"\n\tcertificatesv1beta1 \"k8s.io/client-go/kubernetes/typed/certificates/v1beta1\"\n\tcoordinationv1 \"k8s.io/client-go/kubernetes/typed/coordination/v1\"\n\tcoordinationv1alpha2 \"k8s.io/client-go/kubernetes/typed/coordination/v1alpha2\"\n\tcoordinationv1beta1 \"k8s.io/client-go/kubernetes/typed/coordination/v1beta1\"\n\tcorev1 \"k8s.io/client-go/kubernetes/typed/core/v1\"\n\tdiscoveryv1 \"k8s.io/client-go/kubernetes/typed/discovery/v1\"\n\tdiscoveryv1beta1 \"k8s.io/client-go/kubernetes/typed/discovery/v1beta1\"\n\teventsv1 \"k8s.io/client-go/kubernetes/typed/events/v1\"\n\teventsv1beta1 \"k8s.io/client-go/kubernetes/typed/events/v1beta1\"\n\textensionsv1beta1 \"k8s.io/client-go/kubernetes/typed/extensions/v1beta1\"\n\tflowcontrolv1 \"k8s.io/client-go/kubernetes/typed/flowcontrol/v1\"\n\tflowcontrolv1beta1 \"k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1\"\n\tflowcontrolv1beta2 \"k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta2\"\n\tflowcontrolv1beta3 \"k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta3\"\n\tnetworkingv1 \"k8s.io/client-go/kubernetes/typed/networking/v1\"\n\tnetworkingv1alpha1 \"k8s.io/client-go/kubernetes/typed/networking/v1alpha1\"\n\tnetworkingv1beta1 \"k8s.io/client-go/kubernetes/typed/networking/v1beta1\"\n\tnodev1 \"k8s.io/client-go/kubernetes/typed/node/v1\"\n\tnodev1alpha1 \"k8s.io/client-go/kubernetes/typed/node/v1alpha1\"\n\tnodev1beta1 \"k8s.io/client-go/kubernetes/typed/node/v1beta1\"\n\tpolicyv1 \"k8s.io/client-go/kubernetes/typed/policy/v1\"\n\tpolicyv1beta1 \"k8s.io/client-go/kubernetes/typed/policy/v1beta1\"\n\trbacv1 \"k8s.io/client-go/kubernetes/typed/rbac/v1\"\n\trbacv1alpha1 \"k8s.io/client-go/kubernetes/typed/rbac/v1alpha1\"\n\trbacv1beta1 \"k8s.io/client-go/kubernetes/typed/rbac/v1beta1\"\n\tresourcev1alpha3 \"k8s.io/client-go/kubernetes/typed/resource/v1alpha3\"\n\tresourcev1beta1 \"k8s.io/client-go/kubernetes/typed/resource/v1beta1\"\n\tschedulingv1 \"k8s.io/client-go/kubernetes/typed/scheduling/v1\"\n\tschedulingv1alpha1 \"k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1\"\n\tschedulingv1beta1 \"k8s.io/client-go/kubernetes/typed/scheduling/v1beta1\"\n\tstoragev1 \"k8s.io/client-go/kubernetes/typed/storage/v1\"\n\tstoragev1alpha1 \"k8s.io/client-go/kubernetes/typed/storage/v1alpha1\"\n\tstoragev1beta1 \"k8s.io/client-go/kubernetes/typed/storage/v1beta1\"\n\tstoragemigrationv1alpha1 \"k8s.io/client-go/kubernetes/typed/storagemigration/v1alpha1\"\n\trest \"k8s.io/client-go/rest\"\n\tflowcontrol \"k8s.io/client-go/util/flowcontrol\"\n)\n\ntype Interface interface {\n\tDiscovery() discovery.DiscoveryInterface\n\tAdmissionregistrationV1() admissionregistrationv1.AdmissionregistrationV1Interface\n\tAdmissionregistrationV1alpha1() admissionregistrationv1alpha1.AdmissionregistrationV1alpha1Interface\n\tAdmissionregistrationV1beta1() admissionregistrationv1beta1.AdmissionregistrationV1beta1Interface\n\tInternalV1alpha1() internalv1alpha1.InternalV1alpha1Interface\n\tAppsV1() appsv1.AppsV1Interface\n\tAppsV1beta1() appsv1beta1.AppsV1beta1Interface\n\tAppsV1beta2() appsv1beta2.AppsV1beta2Interface\n\tAuthenticationV1() authenticationv1.AuthenticationV1Interface\n\tAuthenticationV1alpha1() authenticationv1alpha1.AuthenticationV1alpha1Interface\n\tAuthenticationV1beta1() authenticationv1beta1.AuthenticationV1beta1Interface\n\tAuthorizationV1() authorizationv1.AuthorizationV1Interface\n\tAuthorizationV1beta1() authorizationv1beta1.AuthorizationV1beta1Interface\n\tAutoscalingV1() autoscalingv1.AutoscalingV1Interface\n\tAutoscalingV2() autoscalingv2.AutoscalingV2Interface\n\tAutoscalingV2beta1() autoscalingv2beta1.AutoscalingV2beta1Interface\n\tAutoscalingV2beta2() autoscalingv2beta2.AutoscalingV2beta2Interface\n\tBatchV1() batchv1.BatchV1Interface\n\tBatchV1beta1() batchv1beta1.BatchV1beta1Interface\n\tCertificatesV1() certificatesv1.CertificatesV1Interface\n\tCertificatesV1beta1() certificatesv1beta1.CertificatesV1beta1Interface\n\tCertificatesV1alpha1() certificatesv1alpha1.CertificatesV1alpha1Interface\n\tCoordinationV1alpha2() coordinationv1alpha2.CoordinationV1alpha2Interface\n\tCoordinationV1beta1() coordinationv1beta1.CoordinationV1beta1Interface\n\tCoordinationV1() coordinationv1.CoordinationV1Interface\n\tCoreV1() corev1.CoreV1Interface\n\tDiscoveryV1() discoveryv1.DiscoveryV1Interface\n\tDiscoveryV1beta1() discoveryv1beta1.DiscoveryV1beta1Interface\n\tEventsV1() eventsv1.EventsV1Interface\n\tEventsV1beta1() eventsv1beta1.EventsV1beta1Interface\n\tExtensionsV1beta1() extensionsv1beta1.ExtensionsV1beta1Interface\n\tFlowcontrolV1() flowcontrolv1.FlowcontrolV1Interface\n\tFlowcontrolV1beta1() flowcontrolv1beta1.FlowcontrolV1beta1Interface\n\tFlowcontrolV1beta2() flowcontrolv1beta2.FlowcontrolV1beta2Interface\n\tFlowcontrolV1beta3() flowcontrolv1beta3.FlowcontrolV1beta3Interface\n\tNetworkingV1() networkingv1.NetworkingV1Interface\n\tNetworkingV1alpha1() networkingv1alpha1.NetworkingV1alpha1Interface\n\tNetworkingV1beta1() networkingv1beta1.NetworkingV1beta1Interface\n\tNodeV1() nodev1.NodeV1Interface\n\tNodeV1alpha1() nodev1alpha1.NodeV1alpha1Interface\n\tNodeV1beta1() nodev1beta1.NodeV1beta1Interface\n\tPolicyV1() policyv1.PolicyV1Interface\n\tPolicyV1beta1() policyv1beta1.PolicyV1beta1Interface\n\tRbacV1() rbacv1.RbacV1Interface\n\tRbacV1beta1() rbacv1beta1.RbacV1beta1Interface\n\tRbacV1alpha1() rbacv1alpha1.RbacV1alpha1Interface\n\tResourceV1beta1() resourcev1beta1.ResourceV1beta1Interface\n\tResourceV1alpha3() resourcev1alpha3.ResourceV1alpha3Interface\n\tSchedulingV1alpha1() schedulingv1alpha1.SchedulingV1alpha1Interface\n\tSchedulingV1beta1() schedulingv1beta1.SchedulingV1beta1Interface\n\tSchedulingV1() schedulingv1.SchedulingV1Interface\n\tStorageV1beta1() storagev1beta1.StorageV1beta1Interface\n\tStorageV1() storagev1.StorageV1Interface\n\tStorageV1alpha1() storagev1alpha1.StorageV1alpha1Interface\n\tStoragemigrationV1alpha1() storagemigrationv1alpha1.StoragemigrationV1alpha1Interface\n}\n\n// Clientset contains the clients for groups.\ntype Clientset struct {\n\t*discovery.DiscoveryClient\n\tadmissionregistrationV1       *admissionregistrationv1.AdmissionregistrationV1Client\n\tadmissionregistrationV1alpha1 *admissionregistrationv1alpha1.AdmissionregistrationV1alpha1Client\n\tadmissionregistrationV1beta1  *admissionregistrationv1beta1.AdmissionregistrationV1beta1Client\n\tinternalV1alpha1              *internalv1alpha1.InternalV1alpha1Client\n\tappsV1                        *appsv1.AppsV1Client\n\tappsV1beta1                   *appsv1beta1.AppsV1beta1Client\n\tappsV1beta2                   *appsv1beta2.AppsV1beta2Client\n\tauthenticationV1              *authenticationv1.AuthenticationV1Client\n\tauthenticationV1alpha1        *authenticationv1alpha1.AuthenticationV1alpha1Client\n\tauthenticationV1beta1         *authenticationv1beta1.AuthenticationV1beta1Client\n\tauthorizationV1               *authorizationv1.AuthorizationV1Client\n\tauthorizationV1beta1          *authorizationv1beta1.AuthorizationV1beta1Client\n\tautoscalingV1                 *autoscalingv1.AutoscalingV1Client\n\tautoscalingV2                 *autoscalingv2.AutoscalingV2Client\n\tautoscalingV2beta1            *autoscalingv2beta1.AutoscalingV2beta1Client\n\tautoscalingV2beta2            *autoscalingv2beta2.AutoscalingV2beta2Client\n\tbatchV1                       *batchv1.BatchV1Client\n\tbatchV1beta1                  *batchv1beta1.BatchV1beta1Client\n\tcertificatesV1                *certificatesv1.CertificatesV1Client\n\tcertificatesV1beta1           *certificatesv1beta1.CertificatesV1beta1Client\n\tcertificatesV1alpha1          *certificatesv1alpha1.CertificatesV1alpha1Client\n\tcoordinationV1alpha2          *coordinationv1alpha2.CoordinationV1alpha2Client\n\tcoordinationV1beta1           *coordinationv1beta1.CoordinationV1beta1Client\n\tcoordinationV1                *coordinationv1.CoordinationV1Client\n\tcoreV1                        *corev1.CoreV1Client\n\tdiscoveryV1                   *discoveryv1.DiscoveryV1Client\n\tdiscoveryV1beta1              *discoveryv1beta1.DiscoveryV1beta1Client\n\teventsV1                      *eventsv1.EventsV1Client\n\teventsV1beta1                 *eventsv1beta1.EventsV1beta1Client\n\textensionsV1beta1             *extensionsv1beta1.ExtensionsV1beta1Client\n\tflowcontrolV1                 *flowcontrolv1.FlowcontrolV1Client\n\tflowcontrolV1beta1            *flowcontrolv1beta1.FlowcontrolV1beta1Client\n\tflowcontrolV1beta2            *flowcontrolv1beta2.FlowcontrolV1beta2Client\n\tflowcontrolV1beta3            *flowcontrolv1beta3.FlowcontrolV1beta3Client\n\tnetworkingV1                  *networkingv1.NetworkingV1Client\n\tnetworkingV1alpha1            *networkingv1alpha1.NetworkingV1alpha1Client\n\tnetworkingV1beta1             *networkingv1beta1.NetworkingV1beta1Client\n\tnodeV1                        *nodev1.NodeV1Client\n\tnodeV1alpha1                  *nodev1alpha1.NodeV1alpha1Client\n\tnodeV1beta1                   *nodev1beta1.NodeV1beta1Client\n\tpolicyV1                      *policyv1.PolicyV1Client\n\tpolicyV1beta1                 *policyv1beta1.PolicyV1beta1Client\n\trbacV1                        *rbacv1.RbacV1Client\n\trbacV1beta1                   *rbacv1beta1.RbacV1beta1Client\n\trbacV1alpha1                  *rbacv1alpha1.RbacV1alpha1Client\n\tresourceV1beta1               *resourcev1beta1.ResourceV1beta1Client\n\tresourceV1alpha3              *resourcev1alpha3.ResourceV1alpha3Client\n\tschedulingV1alpha1            *schedulingv1alpha1.SchedulingV1alpha1Client\n\tschedulingV1beta1             *schedulingv1beta1.SchedulingV1beta1Client\n\tschedulingV1                  *schedulingv1.SchedulingV1Client\n\tstorageV1beta1                *storagev1beta1.StorageV1beta1Client\n\tstorageV1                     *storagev1.StorageV1Client\n\tstorageV1alpha1               *storagev1alpha1.StorageV1alpha1Client\n\tstoragemigrationV1alpha1      *storagemigrationv1alpha1.StoragemigrationV1alpha1Client\n}\n\n// AdmissionregistrationV1 retrieves the AdmissionregistrationV1Client\nfunc (c *Clientset) AdmissionregistrationV1() admissionregistrationv1.AdmissionregistrationV1Interface {\n\treturn c.admissionregistrationV1\n}\n\n// AdmissionregistrationV1alpha1 retrieves the AdmissionregistrationV1alpha1Client\nfunc (c *Clientset) AdmissionregistrationV1alpha1() admissionregistrationv1alpha1.AdmissionregistrationV1alpha1Interface {\n\treturn c.admissionregistrationV1alpha1\n}\n\n// AdmissionregistrationV1beta1 retrieves the AdmissionregistrationV1beta1Client\nfunc (c *Clientset) AdmissionregistrationV1beta1() admissionregistrationv1beta1.AdmissionregistrationV1beta1Interface {\n\treturn c.admissionregistrationV1beta1\n}\n\n// InternalV1alpha1 retrieves the InternalV1alpha1Client\nfunc (c *Clientset) InternalV1alpha1() internalv1alpha1.InternalV1alpha1Interface {\n\treturn c.internalV1alpha1\n}\n\n// AppsV1 retrieves the AppsV1Client\nfunc (c *Clientset) AppsV1() appsv1.AppsV1Interface {\n\treturn c.appsV1\n}\n\n// AppsV1beta1 retrieves the AppsV1beta1Client\nfunc (c *Clientset) AppsV1beta1() appsv1beta1.AppsV1beta1Interface {\n\treturn c.appsV1beta1\n}\n\n// AppsV1beta2 retrieves the AppsV1beta2Client\nfunc (c *Clientset) AppsV1beta2() appsv1beta2.AppsV1beta2Interface {\n\treturn c.appsV1beta2\n}\n\n// AuthenticationV1 retrieves the AuthenticationV1Client\nfunc (c *Clientset) AuthenticationV1() authenticationv1.AuthenticationV1Interface {\n\treturn c.authenticationV1\n}\n\n// AuthenticationV1alpha1 retrieves the AuthenticationV1alpha1Client\nfunc (c *Clientset) AuthenticationV1alpha1() authenticationv1alpha1.AuthenticationV1alpha1Interface {\n\treturn c.authenticationV1alpha1\n}\n\n// AuthenticationV1beta1 retrieves the AuthenticationV1beta1Client\nfunc (c *Clientset) AuthenticationV1beta1() authenticationv1beta1.AuthenticationV1beta1Interface {\n\treturn c.authenticationV1beta1\n}\n\n// AuthorizationV1 retrieves the AuthorizationV1Client\nfunc (c *Clientset) AuthorizationV1() authorizationv1.AuthorizationV1Interface {\n\treturn c.authorizationV1\n}\n\n// AuthorizationV1beta1 retrieves the AuthorizationV1beta1Client\nfunc (c *Clientset) AuthorizationV1beta1() authorizationv1beta1.AuthorizationV1beta1Interface {\n\treturn c.authorizationV1beta1\n}\n\n// AutoscalingV1 retrieves the AutoscalingV1Client\nfunc (c *Clientset) AutoscalingV1() autoscalingv1.AutoscalingV1Interface {\n\treturn c.autoscalingV1\n}\n\n// AutoscalingV2 retrieves the AutoscalingV2Client\nfunc (c *Clientset) AutoscalingV2() autoscalingv2.AutoscalingV2Interface {\n\treturn c.autoscalingV2\n}\n\n// AutoscalingV2beta1 retrieves the AutoscalingV2beta1Client\nfunc (c *Clientset) AutoscalingV2beta1() autoscalingv2beta1.AutoscalingV2beta1Interface {\n\treturn c.autoscalingV2beta1\n}\n\n// AutoscalingV2beta2 retrieves the AutoscalingV2beta2Client\nfunc (c *Clientset) AutoscalingV2beta2() autoscalingv2beta2.AutoscalingV2beta2Interface {\n\treturn c.autoscalingV2beta2\n}\n\n// BatchV1 retrieves the BatchV1Client\nfunc (c *Clientset) BatchV1() batchv1.BatchV1Interface {\n\treturn c.batchV1\n}\n\n// BatchV1beta1 retrieves the BatchV1beta1Client\nfunc (c *Clientset) BatchV1beta1() batchv1beta1.BatchV1beta1Interface {\n\treturn c.batchV1beta1\n}\n\n// CertificatesV1 retrieves the CertificatesV1Client\nfunc (c *Clientset) CertificatesV1() certificatesv1.CertificatesV1Interface {\n\treturn c.certificatesV1\n}\n\n// CertificatesV1beta1 retrieves the CertificatesV1beta1Client\nfunc (c *Clientset) CertificatesV1beta1() certificatesv1beta1.CertificatesV1beta1Interface {\n\treturn c.certificatesV1beta1\n}\n\n// CertificatesV1alpha1 retrieves the CertificatesV1alpha1Client\nfunc (c *Clientset) CertificatesV1alpha1() certificatesv1alpha1.CertificatesV1alpha1Interface {\n\treturn c.certificatesV1alpha1\n}\n\n// CoordinationV1alpha2 retrieves the CoordinationV1alpha2Client\nfunc (c *Clientset) CoordinationV1alpha2() coordinationv1alpha2.CoordinationV1alpha2Interface {\n\treturn c.coordinationV1alpha2\n}\n\n// CoordinationV1beta1 retrieves the CoordinationV1beta1Client\nfunc (c *Clientset) CoordinationV1beta1() coordinationv1beta1.CoordinationV1beta1Interface {\n\treturn c.coordinationV1beta1\n}\n\n// CoordinationV1 retrieves the CoordinationV1Client\nfunc (c *Clientset) CoordinationV1() coordinationv1.CoordinationV1Interface {\n\treturn c.coordinationV1\n}\n\n// CoreV1 retrieves the CoreV1Client\nfunc (c *Clientset) CoreV1() corev1.CoreV1Interface {\n\treturn c.coreV1\n}\n\n// DiscoveryV1 retrieves the DiscoveryV1Client\nfunc (c *Clientset) DiscoveryV1() discoveryv1.DiscoveryV1Interface {\n\treturn c.discoveryV1\n}\n\n// DiscoveryV1beta1 retrieves the DiscoveryV1beta1Client\nfunc (c *Clientset) DiscoveryV1beta1() discoveryv1beta1.DiscoveryV1beta1Interface {\n\treturn c.discoveryV1beta1\n}\n\n// EventsV1 retrieves the EventsV1Client\nfunc (c *Clientset) EventsV1() eventsv1.EventsV1Interface {\n\treturn c.eventsV1\n}\n\n// EventsV1beta1 retrieves the EventsV1beta1Client\nfunc (c *Clientset) EventsV1beta1() eventsv1beta1.EventsV1beta1Interface {\n\treturn c.eventsV1beta1\n}\n\n// ExtensionsV1beta1 retrieves the ExtensionsV1beta1Client\nfunc (c *Clientset) ExtensionsV1beta1() extensionsv1beta1.ExtensionsV1beta1Interface {\n\treturn c.extensionsV1beta1\n}\n\n// FlowcontrolV1 retrieves the FlowcontrolV1Client\nfunc (c *Clientset) FlowcontrolV1() flowcontrolv1.FlowcontrolV1Interface {\n\treturn c.flowcontrolV1\n}\n\n// FlowcontrolV1beta1 retrieves the FlowcontrolV1beta1Client\nfunc (c *Clientset) FlowcontrolV1beta1() flowcontrolv1beta1.FlowcontrolV1beta1Interface {\n\treturn c.flowcontrolV1beta1\n}\n\n// FlowcontrolV1beta2 retrieves the FlowcontrolV1beta2Client\nfunc (c *Clientset) FlowcontrolV1beta2() flowcontrolv1beta2.FlowcontrolV1beta2Interface {\n\treturn c.flowcontrolV1beta2\n}\n\n// FlowcontrolV1beta3 retrieves the FlowcontrolV1beta3Client\nfunc (c *Clientset) FlowcontrolV1beta3() flowcontrolv1beta3.FlowcontrolV1beta3Interface {\n\treturn c.flowcontrolV1beta3\n}\n\n// NetworkingV1 retrieves the NetworkingV1Client\nfunc (c *Clientset) NetworkingV1() networkingv1.NetworkingV1Interface {\n\treturn c.networkingV1\n}\n\n// NetworkingV1alpha1 retrieves the NetworkingV1alpha1Client\nfunc (c *Clientset) NetworkingV1alpha1() networkingv1alpha1.NetworkingV1alpha1Interface {\n\treturn c.networkingV1alpha1\n}\n\n// NetworkingV1beta1 retrieves the NetworkingV1beta1Client\nfunc (c *Clientset) NetworkingV1beta1() networkingv1beta1.NetworkingV1beta1Interface {\n\treturn c.networkingV1beta1\n}\n\n// NodeV1 retrieves the NodeV1Client\nfunc (c *Clientset) NodeV1() nodev1.NodeV1Interface {\n\treturn c.nodeV1\n}\n\n// NodeV1alpha1 retrieves the NodeV1alpha1Client\nfunc (c *Clientset) NodeV1alpha1() nodev1alpha1.NodeV1alpha1Interface {\n\treturn c.nodeV1alpha1\n}\n\n// NodeV1beta1 retrieves the NodeV1beta1Client\nfunc (c *Clientset) NodeV1beta1() nodev1beta1.NodeV1beta1Interface {\n\treturn c.nodeV1beta1\n}\n\n// PolicyV1 retrieves the PolicyV1Client\nfunc (c *Clientset) PolicyV1() policyv1.PolicyV1Interface {\n\treturn c.policyV1\n}\n\n// PolicyV1beta1 retrieves the PolicyV1beta1Client\nfunc (c *Clientset) PolicyV1beta1() policyv1beta1.PolicyV1beta1Interface {\n\treturn c.policyV1beta1\n}\n\n// RbacV1 retrieves the RbacV1Client\nfunc (c *Clientset) RbacV1() rbacv1.RbacV1Interface {\n\treturn c.rbacV1\n}\n\n// RbacV1beta1 retrieves the RbacV1beta1Client\nfunc (c *Clientset) RbacV1beta1() rbacv1beta1.RbacV1beta1Interface {\n\treturn c.rbacV1beta1\n}\n\n// RbacV1alpha1 retrieves the RbacV1alpha1Client\nfunc (c *Clientset) RbacV1alpha1() rbacv1alpha1.RbacV1alpha1Interface {\n\treturn c.rbacV1alpha1\n}\n\n// ResourceV1beta1 retrieves the ResourceV1beta1Client\nfunc (c *Clientset) ResourceV1beta1() resourcev1beta1.ResourceV1beta1Interface {\n\treturn c.resourceV1beta1\n}\n\n// ResourceV1alpha3 retrieves the ResourceV1alpha3Client\nfunc (c *Clientset) ResourceV1alpha3() resourcev1alpha3.ResourceV1alpha3Interface {\n\treturn c.resourceV1alpha3\n}\n\n// SchedulingV1alpha1 retrieves the SchedulingV1alpha1Client\nfunc (c *Clientset) SchedulingV1alpha1() schedulingv1alpha1.SchedulingV1alpha1Interface {\n\treturn c.schedulingV1alpha1\n}\n\n// SchedulingV1beta1 retrieves the SchedulingV1beta1Client\nfunc (c *Clientset) SchedulingV1beta1() schedulingv1beta1.SchedulingV1beta1Interface {\n\treturn c.schedulingV1beta1\n}\n\n// SchedulingV1 retrieves the SchedulingV1Client\nfunc (c *Clientset) SchedulingV1() schedulingv1.SchedulingV1Interface {\n\treturn c.schedulingV1\n}\n\n// StorageV1beta1 retrieves the StorageV1beta1Client\nfunc (c *Clientset) StorageV1beta1() storagev1beta1.StorageV1beta1Interface {\n\treturn c.storageV1beta1\n}\n\n// StorageV1 retrieves the StorageV1Client\nfunc (c *Clientset) StorageV1() storagev1.StorageV1Interface {\n\treturn c.storageV1\n}\n\n// StorageV1alpha1 retrieves the StorageV1alpha1Client\nfunc (c *Clientset) StorageV1alpha1() storagev1alpha1.StorageV1alpha1Interface {\n\treturn c.storageV1alpha1\n}\n\n// StoragemigrationV1alpha1 retrieves the StoragemigrationV1alpha1Client\nfunc (c *Clientset) StoragemigrationV1alpha1() storagemigrationv1alpha1.StoragemigrationV1alpha1Interface {\n\treturn c.storagemigrationV1alpha1\n}\n\n// Discovery retrieves the DiscoveryClient\nfunc (c *Clientset) Discovery() discovery.DiscoveryInterface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.DiscoveryClient\n}\n\n// NewForConfig creates a new Clientset for the given config.\n// If config's RateLimiter is not set and QPS and Burst are acceptable,\n// NewForConfig will generate a rate-limiter in configShallowCopy.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*Clientset, error) {\n\tconfigShallowCopy := *c\n\n\tif configShallowCopy.UserAgent == \"\" {\n\t\tconfigShallowCopy.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\t// share the transport between all clients\n\thttpClient, err := rest.HTTPClientFor(&configShallowCopy)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn NewForConfigAndClient(&configShallowCopy, httpClient)\n}\n\n// NewForConfigAndClient creates a new Clientset for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\n// If config's RateLimiter is not set and QPS and Burst are acceptable,\n// NewForConfigAndClient will generate a rate-limiter in configShallowCopy.\nfunc NewForConfigAndClient(c *rest.Config, httpClient *http.Client) (*Clientset, error) {\n\tconfigShallowCopy := *c\n\tif configShallowCopy.RateLimiter == nil && configShallowCopy.QPS > 0 {\n\t\tif configShallowCopy.Burst <= 0 {\n\t\t\treturn nil, fmt.Errorf(\"burst is required to be greater than 0 when RateLimiter is not set and QPS is set to greater than 0\")\n\t\t}\n\t\tconfigShallowCopy.RateLimiter = flowcontrol.NewTokenBucketRateLimiter(configShallowCopy.QPS, configShallowCopy.Burst)\n\t}\n\n\tvar cs Clientset\n\tvar err error\n\tcs.admissionregistrationV1, err = admissionregistrationv1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.admissionregistrationV1alpha1, err = admissionregistrationv1alpha1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.admissionregistrationV1beta1, err = admissionregistrationv1beta1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.internalV1alpha1, err = internalv1alpha1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.appsV1, err = appsv1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.appsV1beta1, err = appsv1beta1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.appsV1beta2, err = appsv1beta2.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.authenticationV1, err = authenticationv1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.authenticationV1alpha1, err = authenticationv1alpha1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.authenticationV1beta1, err = authenticationv1beta1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.authorizationV1, err = authorizationv1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.authorizationV1beta1, err = authorizationv1beta1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.autoscalingV1, err = autoscalingv1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.autoscalingV2, err = autoscalingv2.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.autoscalingV2beta1, err = autoscalingv2beta1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.autoscalingV2beta2, err = autoscalingv2beta2.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.batchV1, err = batchv1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.batchV1beta1, err = batchv1beta1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.certificatesV1, err = certificatesv1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.certificatesV1beta1, err = certificatesv1beta1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.certificatesV1alpha1, err = certificatesv1alpha1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.coordinationV1alpha2, err = coordinationv1alpha2.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.coordinationV1beta1, err = coordinationv1beta1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.coordinationV1, err = coordinationv1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.coreV1, err = corev1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.discoveryV1, err = discoveryv1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.discoveryV1beta1, err = discoveryv1beta1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.eventsV1, err = eventsv1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.eventsV1beta1, err = eventsv1beta1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.extensionsV1beta1, err = extensionsv1beta1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.flowcontrolV1, err = flowcontrolv1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.flowcontrolV1beta1, err = flowcontrolv1beta1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.flowcontrolV1beta2, err = flowcontrolv1beta2.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.flowcontrolV1beta3, err = flowcontrolv1beta3.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.networkingV1, err = networkingv1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.networkingV1alpha1, err = networkingv1alpha1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.networkingV1beta1, err = networkingv1beta1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.nodeV1, err = nodev1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.nodeV1alpha1, err = nodev1alpha1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.nodeV1beta1, err = nodev1beta1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.policyV1, err = policyv1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.policyV1beta1, err = policyv1beta1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.rbacV1, err = rbacv1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.rbacV1beta1, err = rbacv1beta1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.rbacV1alpha1, err = rbacv1alpha1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.resourceV1beta1, err = resourcev1beta1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.resourceV1alpha3, err = resourcev1alpha3.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.schedulingV1alpha1, err = schedulingv1alpha1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.schedulingV1beta1, err = schedulingv1beta1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.schedulingV1, err = schedulingv1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.storageV1beta1, err = storagev1beta1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.storageV1, err = storagev1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.storageV1alpha1, err = storagev1alpha1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcs.storagemigrationV1alpha1, err = storagemigrationv1alpha1.NewForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcs.DiscoveryClient, err = discovery.NewDiscoveryClientForConfigAndClient(&configShallowCopy, httpClient)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &cs, nil\n}\n\n// NewForConfigOrDie creates a new Clientset for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *Clientset {\n\tcs, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn cs\n}\n\n// New creates a new Clientset for the given RESTClient.\nfunc New(c rest.Interface) *Clientset {\n\tvar cs Clientset\n\tcs.admissionregistrationV1 = admissionregistrationv1.New(c)\n\tcs.admissionregistrationV1alpha1 = admissionregistrationv1alpha1.New(c)\n\tcs.admissionregistrationV1beta1 = admissionregistrationv1beta1.New(c)\n\tcs.internalV1alpha1 = internalv1alpha1.New(c)\n\tcs.appsV1 = appsv1.New(c)\n\tcs.appsV1beta1 = appsv1beta1.New(c)\n\tcs.appsV1beta2 = appsv1beta2.New(c)\n\tcs.authenticationV1 = authenticationv1.New(c)\n\tcs.authenticationV1alpha1 = authenticationv1alpha1.New(c)\n\tcs.authenticationV1beta1 = authenticationv1beta1.New(c)\n\tcs.authorizationV1 = authorizationv1.New(c)\n\tcs.authorizationV1beta1 = authorizationv1beta1.New(c)\n\tcs.autoscalingV1 = autoscalingv1.New(c)\n\tcs.autoscalingV2 = autoscalingv2.New(c)\n\tcs.autoscalingV2beta1 = autoscalingv2beta1.New(c)\n\tcs.autoscalingV2beta2 = autoscalingv2beta2.New(c)\n\tcs.batchV1 = batchv1.New(c)\n\tcs.batchV1beta1 = batchv1beta1.New(c)\n\tcs.certificatesV1 = certificatesv1.New(c)\n\tcs.certificatesV1beta1 = certificatesv1beta1.New(c)\n\tcs.certificatesV1alpha1 = certificatesv1alpha1.New(c)\n\tcs.coordinationV1alpha2 = coordinationv1alpha2.New(c)\n\tcs.coordinationV1beta1 = coordinationv1beta1.New(c)\n\tcs.coordinationV1 = coordinationv1.New(c)\n\tcs.coreV1 = corev1.New(c)\n\tcs.discoveryV1 = discoveryv1.New(c)\n\tcs.discoveryV1beta1 = discoveryv1beta1.New(c)\n\tcs.eventsV1 = eventsv1.New(c)\n\tcs.eventsV1beta1 = eventsv1beta1.New(c)\n\tcs.extensionsV1beta1 = extensionsv1beta1.New(c)\n\tcs.flowcontrolV1 = flowcontrolv1.New(c)\n\tcs.flowcontrolV1beta1 = flowcontrolv1beta1.New(c)\n\tcs.flowcontrolV1beta2 = flowcontrolv1beta2.New(c)\n\tcs.flowcontrolV1beta3 = flowcontrolv1beta3.New(c)\n\tcs.networkingV1 = networkingv1.New(c)\n\tcs.networkingV1alpha1 = networkingv1alpha1.New(c)\n\tcs.networkingV1beta1 = networkingv1beta1.New(c)\n\tcs.nodeV1 = nodev1.New(c)\n\tcs.nodeV1alpha1 = nodev1alpha1.New(c)\n\tcs.nodeV1beta1 = nodev1beta1.New(c)\n\tcs.policyV1 = policyv1.New(c)\n\tcs.policyV1beta1 = policyv1beta1.New(c)\n\tcs.rbacV1 = rbacv1.New(c)\n\tcs.rbacV1beta1 = rbacv1beta1.New(c)\n\tcs.rbacV1alpha1 = rbacv1alpha1.New(c)\n\tcs.resourceV1beta1 = resourcev1beta1.New(c)\n\tcs.resourceV1alpha3 = resourcev1alpha3.New(c)\n\tcs.schedulingV1alpha1 = schedulingv1alpha1.New(c)\n\tcs.schedulingV1beta1 = schedulingv1beta1.New(c)\n\tcs.schedulingV1 = schedulingv1.New(c)\n\tcs.storageV1beta1 = storagev1beta1.New(c)\n\tcs.storageV1 = storagev1.New(c)\n\tcs.storageV1alpha1 = storagev1alpha1.New(c)\n\tcs.storagemigrationV1alpha1 = storagemigrationv1alpha1.New(c)\n\n\tcs.DiscoveryClient = discovery.NewDiscoveryClient(c)\n\treturn &cs\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/doc.go",
    "content": "/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package kubernetes holds packages which implement a clientset for Kubernetes\n// APIs.\npackage kubernetes // import \"k8s.io/client-go/kubernetes\"\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/fake/clientset_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurations \"k8s.io/client-go/applyconfigurations\"\n\t\"k8s.io/client-go/discovery\"\n\tfakediscovery \"k8s.io/client-go/discovery/fake\"\n\tclientset \"k8s.io/client-go/kubernetes\"\n\tadmissionregistrationv1 \"k8s.io/client-go/kubernetes/typed/admissionregistration/v1\"\n\tfakeadmissionregistrationv1 \"k8s.io/client-go/kubernetes/typed/admissionregistration/v1/fake\"\n\tadmissionregistrationv1alpha1 \"k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1\"\n\tfakeadmissionregistrationv1alpha1 \"k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake\"\n\tadmissionregistrationv1beta1 \"k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1\"\n\tfakeadmissionregistrationv1beta1 \"k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake\"\n\tinternalv1alpha1 \"k8s.io/client-go/kubernetes/typed/apiserverinternal/v1alpha1\"\n\tfakeinternalv1alpha1 \"k8s.io/client-go/kubernetes/typed/apiserverinternal/v1alpha1/fake\"\n\tappsv1 \"k8s.io/client-go/kubernetes/typed/apps/v1\"\n\tfakeappsv1 \"k8s.io/client-go/kubernetes/typed/apps/v1/fake\"\n\tappsv1beta1 \"k8s.io/client-go/kubernetes/typed/apps/v1beta1\"\n\tfakeappsv1beta1 \"k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake\"\n\tappsv1beta2 \"k8s.io/client-go/kubernetes/typed/apps/v1beta2\"\n\tfakeappsv1beta2 \"k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake\"\n\tauthenticationv1 \"k8s.io/client-go/kubernetes/typed/authentication/v1\"\n\tfakeauthenticationv1 \"k8s.io/client-go/kubernetes/typed/authentication/v1/fake\"\n\tauthenticationv1alpha1 \"k8s.io/client-go/kubernetes/typed/authentication/v1alpha1\"\n\tfakeauthenticationv1alpha1 \"k8s.io/client-go/kubernetes/typed/authentication/v1alpha1/fake\"\n\tauthenticationv1beta1 \"k8s.io/client-go/kubernetes/typed/authentication/v1beta1\"\n\tfakeauthenticationv1beta1 \"k8s.io/client-go/kubernetes/typed/authentication/v1beta1/fake\"\n\tauthorizationv1 \"k8s.io/client-go/kubernetes/typed/authorization/v1\"\n\tfakeauthorizationv1 \"k8s.io/client-go/kubernetes/typed/authorization/v1/fake\"\n\tauthorizationv1beta1 \"k8s.io/client-go/kubernetes/typed/authorization/v1beta1\"\n\tfakeauthorizationv1beta1 \"k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake\"\n\tautoscalingv1 \"k8s.io/client-go/kubernetes/typed/autoscaling/v1\"\n\tfakeautoscalingv1 \"k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake\"\n\tautoscalingv2 \"k8s.io/client-go/kubernetes/typed/autoscaling/v2\"\n\tfakeautoscalingv2 \"k8s.io/client-go/kubernetes/typed/autoscaling/v2/fake\"\n\tautoscalingv2beta1 \"k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1\"\n\tfakeautoscalingv2beta1 \"k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake\"\n\tautoscalingv2beta2 \"k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2\"\n\tfakeautoscalingv2beta2 \"k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/fake\"\n\tbatchv1 \"k8s.io/client-go/kubernetes/typed/batch/v1\"\n\tfakebatchv1 \"k8s.io/client-go/kubernetes/typed/batch/v1/fake\"\n\tbatchv1beta1 \"k8s.io/client-go/kubernetes/typed/batch/v1beta1\"\n\tfakebatchv1beta1 \"k8s.io/client-go/kubernetes/typed/batch/v1beta1/fake\"\n\tcertificatesv1 \"k8s.io/client-go/kubernetes/typed/certificates/v1\"\n\tfakecertificatesv1 \"k8s.io/client-go/kubernetes/typed/certificates/v1/fake\"\n\tcertificatesv1alpha1 \"k8s.io/client-go/kubernetes/typed/certificates/v1alpha1\"\n\tfakecertificatesv1alpha1 \"k8s.io/client-go/kubernetes/typed/certificates/v1alpha1/fake\"\n\tcertificatesv1beta1 \"k8s.io/client-go/kubernetes/typed/certificates/v1beta1\"\n\tfakecertificatesv1beta1 \"k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake\"\n\tcoordinationv1 \"k8s.io/client-go/kubernetes/typed/coordination/v1\"\n\tfakecoordinationv1 \"k8s.io/client-go/kubernetes/typed/coordination/v1/fake\"\n\tcoordinationv1alpha2 \"k8s.io/client-go/kubernetes/typed/coordination/v1alpha2\"\n\tfakecoordinationv1alpha2 \"k8s.io/client-go/kubernetes/typed/coordination/v1alpha2/fake\"\n\tcoordinationv1beta1 \"k8s.io/client-go/kubernetes/typed/coordination/v1beta1\"\n\tfakecoordinationv1beta1 \"k8s.io/client-go/kubernetes/typed/coordination/v1beta1/fake\"\n\tcorev1 \"k8s.io/client-go/kubernetes/typed/core/v1\"\n\tfakecorev1 \"k8s.io/client-go/kubernetes/typed/core/v1/fake\"\n\tdiscoveryv1 \"k8s.io/client-go/kubernetes/typed/discovery/v1\"\n\tfakediscoveryv1 \"k8s.io/client-go/kubernetes/typed/discovery/v1/fake\"\n\tdiscoveryv1beta1 \"k8s.io/client-go/kubernetes/typed/discovery/v1beta1\"\n\tfakediscoveryv1beta1 \"k8s.io/client-go/kubernetes/typed/discovery/v1beta1/fake\"\n\teventsv1 \"k8s.io/client-go/kubernetes/typed/events/v1\"\n\tfakeeventsv1 \"k8s.io/client-go/kubernetes/typed/events/v1/fake\"\n\teventsv1beta1 \"k8s.io/client-go/kubernetes/typed/events/v1beta1\"\n\tfakeeventsv1beta1 \"k8s.io/client-go/kubernetes/typed/events/v1beta1/fake\"\n\textensionsv1beta1 \"k8s.io/client-go/kubernetes/typed/extensions/v1beta1\"\n\tfakeextensionsv1beta1 \"k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake\"\n\tflowcontrolv1 \"k8s.io/client-go/kubernetes/typed/flowcontrol/v1\"\n\tfakeflowcontrolv1 \"k8s.io/client-go/kubernetes/typed/flowcontrol/v1/fake\"\n\tflowcontrolv1beta1 \"k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1\"\n\tfakeflowcontrolv1beta1 \"k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1/fake\"\n\tflowcontrolv1beta2 \"k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta2\"\n\tfakeflowcontrolv1beta2 \"k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta2/fake\"\n\tflowcontrolv1beta3 \"k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta3\"\n\tfakeflowcontrolv1beta3 \"k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta3/fake\"\n\tnetworkingv1 \"k8s.io/client-go/kubernetes/typed/networking/v1\"\n\tfakenetworkingv1 \"k8s.io/client-go/kubernetes/typed/networking/v1/fake\"\n\tnetworkingv1alpha1 \"k8s.io/client-go/kubernetes/typed/networking/v1alpha1\"\n\tfakenetworkingv1alpha1 \"k8s.io/client-go/kubernetes/typed/networking/v1alpha1/fake\"\n\tnetworkingv1beta1 \"k8s.io/client-go/kubernetes/typed/networking/v1beta1\"\n\tfakenetworkingv1beta1 \"k8s.io/client-go/kubernetes/typed/networking/v1beta1/fake\"\n\tnodev1 \"k8s.io/client-go/kubernetes/typed/node/v1\"\n\tfakenodev1 \"k8s.io/client-go/kubernetes/typed/node/v1/fake\"\n\tnodev1alpha1 \"k8s.io/client-go/kubernetes/typed/node/v1alpha1\"\n\tfakenodev1alpha1 \"k8s.io/client-go/kubernetes/typed/node/v1alpha1/fake\"\n\tnodev1beta1 \"k8s.io/client-go/kubernetes/typed/node/v1beta1\"\n\tfakenodev1beta1 \"k8s.io/client-go/kubernetes/typed/node/v1beta1/fake\"\n\tpolicyv1 \"k8s.io/client-go/kubernetes/typed/policy/v1\"\n\tfakepolicyv1 \"k8s.io/client-go/kubernetes/typed/policy/v1/fake\"\n\tpolicyv1beta1 \"k8s.io/client-go/kubernetes/typed/policy/v1beta1\"\n\tfakepolicyv1beta1 \"k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake\"\n\trbacv1 \"k8s.io/client-go/kubernetes/typed/rbac/v1\"\n\tfakerbacv1 \"k8s.io/client-go/kubernetes/typed/rbac/v1/fake\"\n\trbacv1alpha1 \"k8s.io/client-go/kubernetes/typed/rbac/v1alpha1\"\n\tfakerbacv1alpha1 \"k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake\"\n\trbacv1beta1 \"k8s.io/client-go/kubernetes/typed/rbac/v1beta1\"\n\tfakerbacv1beta1 \"k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake\"\n\tresourcev1alpha3 \"k8s.io/client-go/kubernetes/typed/resource/v1alpha3\"\n\tfakeresourcev1alpha3 \"k8s.io/client-go/kubernetes/typed/resource/v1alpha3/fake\"\n\tresourcev1beta1 \"k8s.io/client-go/kubernetes/typed/resource/v1beta1\"\n\tfakeresourcev1beta1 \"k8s.io/client-go/kubernetes/typed/resource/v1beta1/fake\"\n\tschedulingv1 \"k8s.io/client-go/kubernetes/typed/scheduling/v1\"\n\tfakeschedulingv1 \"k8s.io/client-go/kubernetes/typed/scheduling/v1/fake\"\n\tschedulingv1alpha1 \"k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1\"\n\tfakeschedulingv1alpha1 \"k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake\"\n\tschedulingv1beta1 \"k8s.io/client-go/kubernetes/typed/scheduling/v1beta1\"\n\tfakeschedulingv1beta1 \"k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/fake\"\n\tstoragev1 \"k8s.io/client-go/kubernetes/typed/storage/v1\"\n\tfakestoragev1 \"k8s.io/client-go/kubernetes/typed/storage/v1/fake\"\n\tstoragev1alpha1 \"k8s.io/client-go/kubernetes/typed/storage/v1alpha1\"\n\tfakestoragev1alpha1 \"k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake\"\n\tstoragev1beta1 \"k8s.io/client-go/kubernetes/typed/storage/v1beta1\"\n\tfakestoragev1beta1 \"k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake\"\n\tstoragemigrationv1alpha1 \"k8s.io/client-go/kubernetes/typed/storagemigration/v1alpha1\"\n\tfakestoragemigrationv1alpha1 \"k8s.io/client-go/kubernetes/typed/storagemigration/v1alpha1/fake\"\n\t\"k8s.io/client-go/testing\"\n)\n\n// NewSimpleClientset returns a clientset that will respond with the provided objects.\n// It's backed by a very simple object tracker that processes creates, updates and deletions as-is,\n// without applying any field management, validations and/or defaults. It shouldn't be considered a replacement\n// for a real clientset and is mostly useful in simple unit tests.\n//\n// DEPRECATED: NewClientset replaces this with support for field management, which significantly improves\n// server side apply testing. NewClientset is only available when apply configurations are generated (e.g.\n// via --with-applyconfig).\nfunc NewSimpleClientset(objects ...runtime.Object) *Clientset {\n\to := testing.NewObjectTracker(scheme, codecs.UniversalDecoder())\n\tfor _, obj := range objects {\n\t\tif err := o.Add(obj); err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n\n\tcs := &Clientset{tracker: o}\n\tcs.discovery = &fakediscovery.FakeDiscovery{Fake: &cs.Fake}\n\tcs.AddReactor(\"*\", \"*\", testing.ObjectReaction(o))\n\tcs.AddWatchReactor(\"*\", func(action testing.Action) (handled bool, ret watch.Interface, err error) {\n\t\tgvr := action.GetResource()\n\t\tns := action.GetNamespace()\n\t\twatch, err := o.Watch(gvr, ns)\n\t\tif err != nil {\n\t\t\treturn false, nil, err\n\t\t}\n\t\treturn true, watch, nil\n\t})\n\n\treturn cs\n}\n\n// Clientset implements clientset.Interface. Meant to be embedded into a\n// struct to get a default implementation. This makes faking out just the method\n// you want to test easier.\ntype Clientset struct {\n\ttesting.Fake\n\tdiscovery *fakediscovery.FakeDiscovery\n\ttracker   testing.ObjectTracker\n}\n\nfunc (c *Clientset) Discovery() discovery.DiscoveryInterface {\n\treturn c.discovery\n}\n\nfunc (c *Clientset) Tracker() testing.ObjectTracker {\n\treturn c.tracker\n}\n\n// NewClientset returns a clientset that will respond with the provided objects.\n// It's backed by a very simple object tracker that processes creates, updates and deletions as-is,\n// without applying any validations and/or defaults. It shouldn't be considered a replacement\n// for a real clientset and is mostly useful in simple unit tests.\nfunc NewClientset(objects ...runtime.Object) *Clientset {\n\to := testing.NewFieldManagedObjectTracker(\n\t\tscheme,\n\t\tcodecs.UniversalDecoder(),\n\t\tapplyconfigurations.NewTypeConverter(scheme),\n\t)\n\tfor _, obj := range objects {\n\t\tif err := o.Add(obj); err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n\n\tcs := &Clientset{tracker: o}\n\tcs.discovery = &fakediscovery.FakeDiscovery{Fake: &cs.Fake}\n\tcs.AddReactor(\"*\", \"*\", testing.ObjectReaction(o))\n\tcs.AddWatchReactor(\"*\", func(action testing.Action) (handled bool, ret watch.Interface, err error) {\n\t\tgvr := action.GetResource()\n\t\tns := action.GetNamespace()\n\t\twatch, err := o.Watch(gvr, ns)\n\t\tif err != nil {\n\t\t\treturn false, nil, err\n\t\t}\n\t\treturn true, watch, nil\n\t})\n\n\treturn cs\n}\n\nvar (\n\t_ clientset.Interface = &Clientset{}\n\t_ testing.FakeClient  = &Clientset{}\n)\n\n// AdmissionregistrationV1 retrieves the AdmissionregistrationV1Client\nfunc (c *Clientset) AdmissionregistrationV1() admissionregistrationv1.AdmissionregistrationV1Interface {\n\treturn &fakeadmissionregistrationv1.FakeAdmissionregistrationV1{Fake: &c.Fake}\n}\n\n// AdmissionregistrationV1alpha1 retrieves the AdmissionregistrationV1alpha1Client\nfunc (c *Clientset) AdmissionregistrationV1alpha1() admissionregistrationv1alpha1.AdmissionregistrationV1alpha1Interface {\n\treturn &fakeadmissionregistrationv1alpha1.FakeAdmissionregistrationV1alpha1{Fake: &c.Fake}\n}\n\n// AdmissionregistrationV1beta1 retrieves the AdmissionregistrationV1beta1Client\nfunc (c *Clientset) AdmissionregistrationV1beta1() admissionregistrationv1beta1.AdmissionregistrationV1beta1Interface {\n\treturn &fakeadmissionregistrationv1beta1.FakeAdmissionregistrationV1beta1{Fake: &c.Fake}\n}\n\n// InternalV1alpha1 retrieves the InternalV1alpha1Client\nfunc (c *Clientset) InternalV1alpha1() internalv1alpha1.InternalV1alpha1Interface {\n\treturn &fakeinternalv1alpha1.FakeInternalV1alpha1{Fake: &c.Fake}\n}\n\n// AppsV1 retrieves the AppsV1Client\nfunc (c *Clientset) AppsV1() appsv1.AppsV1Interface {\n\treturn &fakeappsv1.FakeAppsV1{Fake: &c.Fake}\n}\n\n// AppsV1beta1 retrieves the AppsV1beta1Client\nfunc (c *Clientset) AppsV1beta1() appsv1beta1.AppsV1beta1Interface {\n\treturn &fakeappsv1beta1.FakeAppsV1beta1{Fake: &c.Fake}\n}\n\n// AppsV1beta2 retrieves the AppsV1beta2Client\nfunc (c *Clientset) AppsV1beta2() appsv1beta2.AppsV1beta2Interface {\n\treturn &fakeappsv1beta2.FakeAppsV1beta2{Fake: &c.Fake}\n}\n\n// AuthenticationV1 retrieves the AuthenticationV1Client\nfunc (c *Clientset) AuthenticationV1() authenticationv1.AuthenticationV1Interface {\n\treturn &fakeauthenticationv1.FakeAuthenticationV1{Fake: &c.Fake}\n}\n\n// AuthenticationV1alpha1 retrieves the AuthenticationV1alpha1Client\nfunc (c *Clientset) AuthenticationV1alpha1() authenticationv1alpha1.AuthenticationV1alpha1Interface {\n\treturn &fakeauthenticationv1alpha1.FakeAuthenticationV1alpha1{Fake: &c.Fake}\n}\n\n// AuthenticationV1beta1 retrieves the AuthenticationV1beta1Client\nfunc (c *Clientset) AuthenticationV1beta1() authenticationv1beta1.AuthenticationV1beta1Interface {\n\treturn &fakeauthenticationv1beta1.FakeAuthenticationV1beta1{Fake: &c.Fake}\n}\n\n// AuthorizationV1 retrieves the AuthorizationV1Client\nfunc (c *Clientset) AuthorizationV1() authorizationv1.AuthorizationV1Interface {\n\treturn &fakeauthorizationv1.FakeAuthorizationV1{Fake: &c.Fake}\n}\n\n// AuthorizationV1beta1 retrieves the AuthorizationV1beta1Client\nfunc (c *Clientset) AuthorizationV1beta1() authorizationv1beta1.AuthorizationV1beta1Interface {\n\treturn &fakeauthorizationv1beta1.FakeAuthorizationV1beta1{Fake: &c.Fake}\n}\n\n// AutoscalingV1 retrieves the AutoscalingV1Client\nfunc (c *Clientset) AutoscalingV1() autoscalingv1.AutoscalingV1Interface {\n\treturn &fakeautoscalingv1.FakeAutoscalingV1{Fake: &c.Fake}\n}\n\n// AutoscalingV2 retrieves the AutoscalingV2Client\nfunc (c *Clientset) AutoscalingV2() autoscalingv2.AutoscalingV2Interface {\n\treturn &fakeautoscalingv2.FakeAutoscalingV2{Fake: &c.Fake}\n}\n\n// AutoscalingV2beta1 retrieves the AutoscalingV2beta1Client\nfunc (c *Clientset) AutoscalingV2beta1() autoscalingv2beta1.AutoscalingV2beta1Interface {\n\treturn &fakeautoscalingv2beta1.FakeAutoscalingV2beta1{Fake: &c.Fake}\n}\n\n// AutoscalingV2beta2 retrieves the AutoscalingV2beta2Client\nfunc (c *Clientset) AutoscalingV2beta2() autoscalingv2beta2.AutoscalingV2beta2Interface {\n\treturn &fakeautoscalingv2beta2.FakeAutoscalingV2beta2{Fake: &c.Fake}\n}\n\n// BatchV1 retrieves the BatchV1Client\nfunc (c *Clientset) BatchV1() batchv1.BatchV1Interface {\n\treturn &fakebatchv1.FakeBatchV1{Fake: &c.Fake}\n}\n\n// BatchV1beta1 retrieves the BatchV1beta1Client\nfunc (c *Clientset) BatchV1beta1() batchv1beta1.BatchV1beta1Interface {\n\treturn &fakebatchv1beta1.FakeBatchV1beta1{Fake: &c.Fake}\n}\n\n// CertificatesV1 retrieves the CertificatesV1Client\nfunc (c *Clientset) CertificatesV1() certificatesv1.CertificatesV1Interface {\n\treturn &fakecertificatesv1.FakeCertificatesV1{Fake: &c.Fake}\n}\n\n// CertificatesV1beta1 retrieves the CertificatesV1beta1Client\nfunc (c *Clientset) CertificatesV1beta1() certificatesv1beta1.CertificatesV1beta1Interface {\n\treturn &fakecertificatesv1beta1.FakeCertificatesV1beta1{Fake: &c.Fake}\n}\n\n// CertificatesV1alpha1 retrieves the CertificatesV1alpha1Client\nfunc (c *Clientset) CertificatesV1alpha1() certificatesv1alpha1.CertificatesV1alpha1Interface {\n\treturn &fakecertificatesv1alpha1.FakeCertificatesV1alpha1{Fake: &c.Fake}\n}\n\n// CoordinationV1alpha2 retrieves the CoordinationV1alpha2Client\nfunc (c *Clientset) CoordinationV1alpha2() coordinationv1alpha2.CoordinationV1alpha2Interface {\n\treturn &fakecoordinationv1alpha2.FakeCoordinationV1alpha2{Fake: &c.Fake}\n}\n\n// CoordinationV1beta1 retrieves the CoordinationV1beta1Client\nfunc (c *Clientset) CoordinationV1beta1() coordinationv1beta1.CoordinationV1beta1Interface {\n\treturn &fakecoordinationv1beta1.FakeCoordinationV1beta1{Fake: &c.Fake}\n}\n\n// CoordinationV1 retrieves the CoordinationV1Client\nfunc (c *Clientset) CoordinationV1() coordinationv1.CoordinationV1Interface {\n\treturn &fakecoordinationv1.FakeCoordinationV1{Fake: &c.Fake}\n}\n\n// CoreV1 retrieves the CoreV1Client\nfunc (c *Clientset) CoreV1() corev1.CoreV1Interface {\n\treturn &fakecorev1.FakeCoreV1{Fake: &c.Fake}\n}\n\n// DiscoveryV1 retrieves the DiscoveryV1Client\nfunc (c *Clientset) DiscoveryV1() discoveryv1.DiscoveryV1Interface {\n\treturn &fakediscoveryv1.FakeDiscoveryV1{Fake: &c.Fake}\n}\n\n// DiscoveryV1beta1 retrieves the DiscoveryV1beta1Client\nfunc (c *Clientset) DiscoveryV1beta1() discoveryv1beta1.DiscoveryV1beta1Interface {\n\treturn &fakediscoveryv1beta1.FakeDiscoveryV1beta1{Fake: &c.Fake}\n}\n\n// EventsV1 retrieves the EventsV1Client\nfunc (c *Clientset) EventsV1() eventsv1.EventsV1Interface {\n\treturn &fakeeventsv1.FakeEventsV1{Fake: &c.Fake}\n}\n\n// EventsV1beta1 retrieves the EventsV1beta1Client\nfunc (c *Clientset) EventsV1beta1() eventsv1beta1.EventsV1beta1Interface {\n\treturn &fakeeventsv1beta1.FakeEventsV1beta1{Fake: &c.Fake}\n}\n\n// ExtensionsV1beta1 retrieves the ExtensionsV1beta1Client\nfunc (c *Clientset) ExtensionsV1beta1() extensionsv1beta1.ExtensionsV1beta1Interface {\n\treturn &fakeextensionsv1beta1.FakeExtensionsV1beta1{Fake: &c.Fake}\n}\n\n// FlowcontrolV1 retrieves the FlowcontrolV1Client\nfunc (c *Clientset) FlowcontrolV1() flowcontrolv1.FlowcontrolV1Interface {\n\treturn &fakeflowcontrolv1.FakeFlowcontrolV1{Fake: &c.Fake}\n}\n\n// FlowcontrolV1beta1 retrieves the FlowcontrolV1beta1Client\nfunc (c *Clientset) FlowcontrolV1beta1() flowcontrolv1beta1.FlowcontrolV1beta1Interface {\n\treturn &fakeflowcontrolv1beta1.FakeFlowcontrolV1beta1{Fake: &c.Fake}\n}\n\n// FlowcontrolV1beta2 retrieves the FlowcontrolV1beta2Client\nfunc (c *Clientset) FlowcontrolV1beta2() flowcontrolv1beta2.FlowcontrolV1beta2Interface {\n\treturn &fakeflowcontrolv1beta2.FakeFlowcontrolV1beta2{Fake: &c.Fake}\n}\n\n// FlowcontrolV1beta3 retrieves the FlowcontrolV1beta3Client\nfunc (c *Clientset) FlowcontrolV1beta3() flowcontrolv1beta3.FlowcontrolV1beta3Interface {\n\treturn &fakeflowcontrolv1beta3.FakeFlowcontrolV1beta3{Fake: &c.Fake}\n}\n\n// NetworkingV1 retrieves the NetworkingV1Client\nfunc (c *Clientset) NetworkingV1() networkingv1.NetworkingV1Interface {\n\treturn &fakenetworkingv1.FakeNetworkingV1{Fake: &c.Fake}\n}\n\n// NetworkingV1alpha1 retrieves the NetworkingV1alpha1Client\nfunc (c *Clientset) NetworkingV1alpha1() networkingv1alpha1.NetworkingV1alpha1Interface {\n\treturn &fakenetworkingv1alpha1.FakeNetworkingV1alpha1{Fake: &c.Fake}\n}\n\n// NetworkingV1beta1 retrieves the NetworkingV1beta1Client\nfunc (c *Clientset) NetworkingV1beta1() networkingv1beta1.NetworkingV1beta1Interface {\n\treturn &fakenetworkingv1beta1.FakeNetworkingV1beta1{Fake: &c.Fake}\n}\n\n// NodeV1 retrieves the NodeV1Client\nfunc (c *Clientset) NodeV1() nodev1.NodeV1Interface {\n\treturn &fakenodev1.FakeNodeV1{Fake: &c.Fake}\n}\n\n// NodeV1alpha1 retrieves the NodeV1alpha1Client\nfunc (c *Clientset) NodeV1alpha1() nodev1alpha1.NodeV1alpha1Interface {\n\treturn &fakenodev1alpha1.FakeNodeV1alpha1{Fake: &c.Fake}\n}\n\n// NodeV1beta1 retrieves the NodeV1beta1Client\nfunc (c *Clientset) NodeV1beta1() nodev1beta1.NodeV1beta1Interface {\n\treturn &fakenodev1beta1.FakeNodeV1beta1{Fake: &c.Fake}\n}\n\n// PolicyV1 retrieves the PolicyV1Client\nfunc (c *Clientset) PolicyV1() policyv1.PolicyV1Interface {\n\treturn &fakepolicyv1.FakePolicyV1{Fake: &c.Fake}\n}\n\n// PolicyV1beta1 retrieves the PolicyV1beta1Client\nfunc (c *Clientset) PolicyV1beta1() policyv1beta1.PolicyV1beta1Interface {\n\treturn &fakepolicyv1beta1.FakePolicyV1beta1{Fake: &c.Fake}\n}\n\n// RbacV1 retrieves the RbacV1Client\nfunc (c *Clientset) RbacV1() rbacv1.RbacV1Interface {\n\treturn &fakerbacv1.FakeRbacV1{Fake: &c.Fake}\n}\n\n// RbacV1beta1 retrieves the RbacV1beta1Client\nfunc (c *Clientset) RbacV1beta1() rbacv1beta1.RbacV1beta1Interface {\n\treturn &fakerbacv1beta1.FakeRbacV1beta1{Fake: &c.Fake}\n}\n\n// RbacV1alpha1 retrieves the RbacV1alpha1Client\nfunc (c *Clientset) RbacV1alpha1() rbacv1alpha1.RbacV1alpha1Interface {\n\treturn &fakerbacv1alpha1.FakeRbacV1alpha1{Fake: &c.Fake}\n}\n\n// ResourceV1beta1 retrieves the ResourceV1beta1Client\nfunc (c *Clientset) ResourceV1beta1() resourcev1beta1.ResourceV1beta1Interface {\n\treturn &fakeresourcev1beta1.FakeResourceV1beta1{Fake: &c.Fake}\n}\n\n// ResourceV1alpha3 retrieves the ResourceV1alpha3Client\nfunc (c *Clientset) ResourceV1alpha3() resourcev1alpha3.ResourceV1alpha3Interface {\n\treturn &fakeresourcev1alpha3.FakeResourceV1alpha3{Fake: &c.Fake}\n}\n\n// SchedulingV1alpha1 retrieves the SchedulingV1alpha1Client\nfunc (c *Clientset) SchedulingV1alpha1() schedulingv1alpha1.SchedulingV1alpha1Interface {\n\treturn &fakeschedulingv1alpha1.FakeSchedulingV1alpha1{Fake: &c.Fake}\n}\n\n// SchedulingV1beta1 retrieves the SchedulingV1beta1Client\nfunc (c *Clientset) SchedulingV1beta1() schedulingv1beta1.SchedulingV1beta1Interface {\n\treturn &fakeschedulingv1beta1.FakeSchedulingV1beta1{Fake: &c.Fake}\n}\n\n// SchedulingV1 retrieves the SchedulingV1Client\nfunc (c *Clientset) SchedulingV1() schedulingv1.SchedulingV1Interface {\n\treturn &fakeschedulingv1.FakeSchedulingV1{Fake: &c.Fake}\n}\n\n// StorageV1beta1 retrieves the StorageV1beta1Client\nfunc (c *Clientset) StorageV1beta1() storagev1beta1.StorageV1beta1Interface {\n\treturn &fakestoragev1beta1.FakeStorageV1beta1{Fake: &c.Fake}\n}\n\n// StorageV1 retrieves the StorageV1Client\nfunc (c *Clientset) StorageV1() storagev1.StorageV1Interface {\n\treturn &fakestoragev1.FakeStorageV1{Fake: &c.Fake}\n}\n\n// StorageV1alpha1 retrieves the StorageV1alpha1Client\nfunc (c *Clientset) StorageV1alpha1() storagev1alpha1.StorageV1alpha1Interface {\n\treturn &fakestoragev1alpha1.FakeStorageV1alpha1{Fake: &c.Fake}\n}\n\n// StoragemigrationV1alpha1 retrieves the StoragemigrationV1alpha1Client\nfunc (c *Clientset) StoragemigrationV1alpha1() storagemigrationv1alpha1.StoragemigrationV1alpha1Interface {\n\treturn &fakestoragemigrationv1alpha1.FakeStoragemigrationV1alpha1{Fake: &c.Fake}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated fake clientset.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/fake/register.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tadmissionregistrationv1 \"k8s.io/api/admissionregistration/v1\"\n\tadmissionregistrationv1alpha1 \"k8s.io/api/admissionregistration/v1alpha1\"\n\tadmissionregistrationv1beta1 \"k8s.io/api/admissionregistration/v1beta1\"\n\tinternalv1alpha1 \"k8s.io/api/apiserverinternal/v1alpha1\"\n\tappsv1 \"k8s.io/api/apps/v1\"\n\tappsv1beta1 \"k8s.io/api/apps/v1beta1\"\n\tappsv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tauthenticationv1 \"k8s.io/api/authentication/v1\"\n\tauthenticationv1alpha1 \"k8s.io/api/authentication/v1alpha1\"\n\tauthenticationv1beta1 \"k8s.io/api/authentication/v1beta1\"\n\tauthorizationv1 \"k8s.io/api/authorization/v1\"\n\tauthorizationv1beta1 \"k8s.io/api/authorization/v1beta1\"\n\tautoscalingv1 \"k8s.io/api/autoscaling/v1\"\n\tautoscalingv2 \"k8s.io/api/autoscaling/v2\"\n\tautoscalingv2beta1 \"k8s.io/api/autoscaling/v2beta1\"\n\tautoscalingv2beta2 \"k8s.io/api/autoscaling/v2beta2\"\n\tbatchv1 \"k8s.io/api/batch/v1\"\n\tbatchv1beta1 \"k8s.io/api/batch/v1beta1\"\n\tcertificatesv1 \"k8s.io/api/certificates/v1\"\n\tcertificatesv1alpha1 \"k8s.io/api/certificates/v1alpha1\"\n\tcertificatesv1beta1 \"k8s.io/api/certificates/v1beta1\"\n\tcoordinationv1 \"k8s.io/api/coordination/v1\"\n\tcoordinationv1alpha2 \"k8s.io/api/coordination/v1alpha2\"\n\tcoordinationv1beta1 \"k8s.io/api/coordination/v1beta1\"\n\tcorev1 \"k8s.io/api/core/v1\"\n\tdiscoveryv1 \"k8s.io/api/discovery/v1\"\n\tdiscoveryv1beta1 \"k8s.io/api/discovery/v1beta1\"\n\teventsv1 \"k8s.io/api/events/v1\"\n\teventsv1beta1 \"k8s.io/api/events/v1beta1\"\n\textensionsv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tflowcontrolv1 \"k8s.io/api/flowcontrol/v1\"\n\tflowcontrolv1beta1 \"k8s.io/api/flowcontrol/v1beta1\"\n\tflowcontrolv1beta2 \"k8s.io/api/flowcontrol/v1beta2\"\n\tflowcontrolv1beta3 \"k8s.io/api/flowcontrol/v1beta3\"\n\tnetworkingv1 \"k8s.io/api/networking/v1\"\n\tnetworkingv1alpha1 \"k8s.io/api/networking/v1alpha1\"\n\tnetworkingv1beta1 \"k8s.io/api/networking/v1beta1\"\n\tnodev1 \"k8s.io/api/node/v1\"\n\tnodev1alpha1 \"k8s.io/api/node/v1alpha1\"\n\tnodev1beta1 \"k8s.io/api/node/v1beta1\"\n\tpolicyv1 \"k8s.io/api/policy/v1\"\n\tpolicyv1beta1 \"k8s.io/api/policy/v1beta1\"\n\trbacv1 \"k8s.io/api/rbac/v1\"\n\trbacv1alpha1 \"k8s.io/api/rbac/v1alpha1\"\n\trbacv1beta1 \"k8s.io/api/rbac/v1beta1\"\n\tresourcev1alpha3 \"k8s.io/api/resource/v1alpha3\"\n\tresourcev1beta1 \"k8s.io/api/resource/v1beta1\"\n\tschedulingv1 \"k8s.io/api/scheduling/v1\"\n\tschedulingv1alpha1 \"k8s.io/api/scheduling/v1alpha1\"\n\tschedulingv1beta1 \"k8s.io/api/scheduling/v1beta1\"\n\tstoragev1 \"k8s.io/api/storage/v1\"\n\tstoragev1alpha1 \"k8s.io/api/storage/v1alpha1\"\n\tstoragev1beta1 \"k8s.io/api/storage/v1beta1\"\n\tstoragemigrationv1alpha1 \"k8s.io/api/storagemigration/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n\tserializer \"k8s.io/apimachinery/pkg/runtime/serializer\"\n\tutilruntime \"k8s.io/apimachinery/pkg/util/runtime\"\n)\n\nvar scheme = runtime.NewScheme()\nvar codecs = serializer.NewCodecFactory(scheme)\n\nvar localSchemeBuilder = runtime.SchemeBuilder{\n\tadmissionregistrationv1.AddToScheme,\n\tadmissionregistrationv1alpha1.AddToScheme,\n\tadmissionregistrationv1beta1.AddToScheme,\n\tinternalv1alpha1.AddToScheme,\n\tappsv1.AddToScheme,\n\tappsv1beta1.AddToScheme,\n\tappsv1beta2.AddToScheme,\n\tauthenticationv1.AddToScheme,\n\tauthenticationv1alpha1.AddToScheme,\n\tauthenticationv1beta1.AddToScheme,\n\tauthorizationv1.AddToScheme,\n\tauthorizationv1beta1.AddToScheme,\n\tautoscalingv1.AddToScheme,\n\tautoscalingv2.AddToScheme,\n\tautoscalingv2beta1.AddToScheme,\n\tautoscalingv2beta2.AddToScheme,\n\tbatchv1.AddToScheme,\n\tbatchv1beta1.AddToScheme,\n\tcertificatesv1.AddToScheme,\n\tcertificatesv1beta1.AddToScheme,\n\tcertificatesv1alpha1.AddToScheme,\n\tcoordinationv1alpha2.AddToScheme,\n\tcoordinationv1beta1.AddToScheme,\n\tcoordinationv1.AddToScheme,\n\tcorev1.AddToScheme,\n\tdiscoveryv1.AddToScheme,\n\tdiscoveryv1beta1.AddToScheme,\n\teventsv1.AddToScheme,\n\teventsv1beta1.AddToScheme,\n\textensionsv1beta1.AddToScheme,\n\tflowcontrolv1.AddToScheme,\n\tflowcontrolv1beta1.AddToScheme,\n\tflowcontrolv1beta2.AddToScheme,\n\tflowcontrolv1beta3.AddToScheme,\n\tnetworkingv1.AddToScheme,\n\tnetworkingv1alpha1.AddToScheme,\n\tnetworkingv1beta1.AddToScheme,\n\tnodev1.AddToScheme,\n\tnodev1alpha1.AddToScheme,\n\tnodev1beta1.AddToScheme,\n\tpolicyv1.AddToScheme,\n\tpolicyv1beta1.AddToScheme,\n\trbacv1.AddToScheme,\n\trbacv1beta1.AddToScheme,\n\trbacv1alpha1.AddToScheme,\n\tresourcev1beta1.AddToScheme,\n\tresourcev1alpha3.AddToScheme,\n\tschedulingv1alpha1.AddToScheme,\n\tschedulingv1beta1.AddToScheme,\n\tschedulingv1.AddToScheme,\n\tstoragev1beta1.AddToScheme,\n\tstoragev1.AddToScheme,\n\tstoragev1alpha1.AddToScheme,\n\tstoragemigrationv1alpha1.AddToScheme,\n}\n\n// AddToScheme adds all types of this clientset into the given scheme. This allows composition\n// of clientsets, like in:\n//\n//\timport (\n//\t  \"k8s.io/client-go/kubernetes\"\n//\t  clientsetscheme \"k8s.io/client-go/kubernetes/scheme\"\n//\t  aggregatorclientsetscheme \"k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/scheme\"\n//\t)\n//\n//\tkclientset, _ := kubernetes.NewForConfig(c)\n//\t_ = aggregatorclientsetscheme.AddToScheme(clientsetscheme.Scheme)\n//\n// After this, RawExtensions in Kubernetes types will serialize kube-aggregator types\n// correctly.\nvar AddToScheme = localSchemeBuilder.AddToScheme\n\nfunc init() {\n\tv1.AddToGroupVersion(scheme, schema.GroupVersion{Version: \"v1\"})\n\tutilruntime.Must(AddToScheme(scheme))\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/import.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// This file exists to enforce this clientset's vanity import path.\n\npackage kubernetes // import \"k8s.io/client-go/kubernetes\"\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/scheme/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package contains the scheme of the automatically generated clientset.\npackage scheme\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/scheme/register.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage scheme\n\nimport (\n\tadmissionregistrationv1 \"k8s.io/api/admissionregistration/v1\"\n\tadmissionregistrationv1alpha1 \"k8s.io/api/admissionregistration/v1alpha1\"\n\tadmissionregistrationv1beta1 \"k8s.io/api/admissionregistration/v1beta1\"\n\tinternalv1alpha1 \"k8s.io/api/apiserverinternal/v1alpha1\"\n\tappsv1 \"k8s.io/api/apps/v1\"\n\tappsv1beta1 \"k8s.io/api/apps/v1beta1\"\n\tappsv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tauthenticationv1 \"k8s.io/api/authentication/v1\"\n\tauthenticationv1alpha1 \"k8s.io/api/authentication/v1alpha1\"\n\tauthenticationv1beta1 \"k8s.io/api/authentication/v1beta1\"\n\tauthorizationv1 \"k8s.io/api/authorization/v1\"\n\tauthorizationv1beta1 \"k8s.io/api/authorization/v1beta1\"\n\tautoscalingv1 \"k8s.io/api/autoscaling/v1\"\n\tautoscalingv2 \"k8s.io/api/autoscaling/v2\"\n\tautoscalingv2beta1 \"k8s.io/api/autoscaling/v2beta1\"\n\tautoscalingv2beta2 \"k8s.io/api/autoscaling/v2beta2\"\n\tbatchv1 \"k8s.io/api/batch/v1\"\n\tbatchv1beta1 \"k8s.io/api/batch/v1beta1\"\n\tcertificatesv1 \"k8s.io/api/certificates/v1\"\n\tcertificatesv1alpha1 \"k8s.io/api/certificates/v1alpha1\"\n\tcertificatesv1beta1 \"k8s.io/api/certificates/v1beta1\"\n\tcoordinationv1 \"k8s.io/api/coordination/v1\"\n\tcoordinationv1alpha2 \"k8s.io/api/coordination/v1alpha2\"\n\tcoordinationv1beta1 \"k8s.io/api/coordination/v1beta1\"\n\tcorev1 \"k8s.io/api/core/v1\"\n\tdiscoveryv1 \"k8s.io/api/discovery/v1\"\n\tdiscoveryv1beta1 \"k8s.io/api/discovery/v1beta1\"\n\teventsv1 \"k8s.io/api/events/v1\"\n\teventsv1beta1 \"k8s.io/api/events/v1beta1\"\n\textensionsv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tflowcontrolv1 \"k8s.io/api/flowcontrol/v1\"\n\tflowcontrolv1beta1 \"k8s.io/api/flowcontrol/v1beta1\"\n\tflowcontrolv1beta2 \"k8s.io/api/flowcontrol/v1beta2\"\n\tflowcontrolv1beta3 \"k8s.io/api/flowcontrol/v1beta3\"\n\tnetworkingv1 \"k8s.io/api/networking/v1\"\n\tnetworkingv1alpha1 \"k8s.io/api/networking/v1alpha1\"\n\tnetworkingv1beta1 \"k8s.io/api/networking/v1beta1\"\n\tnodev1 \"k8s.io/api/node/v1\"\n\tnodev1alpha1 \"k8s.io/api/node/v1alpha1\"\n\tnodev1beta1 \"k8s.io/api/node/v1beta1\"\n\tpolicyv1 \"k8s.io/api/policy/v1\"\n\tpolicyv1beta1 \"k8s.io/api/policy/v1beta1\"\n\trbacv1 \"k8s.io/api/rbac/v1\"\n\trbacv1alpha1 \"k8s.io/api/rbac/v1alpha1\"\n\trbacv1beta1 \"k8s.io/api/rbac/v1beta1\"\n\tresourcev1alpha3 \"k8s.io/api/resource/v1alpha3\"\n\tresourcev1beta1 \"k8s.io/api/resource/v1beta1\"\n\tschedulingv1 \"k8s.io/api/scheduling/v1\"\n\tschedulingv1alpha1 \"k8s.io/api/scheduling/v1alpha1\"\n\tschedulingv1beta1 \"k8s.io/api/scheduling/v1beta1\"\n\tstoragev1 \"k8s.io/api/storage/v1\"\n\tstoragev1alpha1 \"k8s.io/api/storage/v1alpha1\"\n\tstoragev1beta1 \"k8s.io/api/storage/v1beta1\"\n\tstoragemigrationv1alpha1 \"k8s.io/api/storagemigration/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\tschema \"k8s.io/apimachinery/pkg/runtime/schema\"\n\tserializer \"k8s.io/apimachinery/pkg/runtime/serializer\"\n\tutilruntime \"k8s.io/apimachinery/pkg/util/runtime\"\n)\n\nvar Scheme = runtime.NewScheme()\nvar Codecs = serializer.NewCodecFactory(Scheme)\nvar ParameterCodec = runtime.NewParameterCodec(Scheme)\nvar localSchemeBuilder = runtime.SchemeBuilder{\n\tadmissionregistrationv1.AddToScheme,\n\tadmissionregistrationv1alpha1.AddToScheme,\n\tadmissionregistrationv1beta1.AddToScheme,\n\tinternalv1alpha1.AddToScheme,\n\tappsv1.AddToScheme,\n\tappsv1beta1.AddToScheme,\n\tappsv1beta2.AddToScheme,\n\tauthenticationv1.AddToScheme,\n\tauthenticationv1alpha1.AddToScheme,\n\tauthenticationv1beta1.AddToScheme,\n\tauthorizationv1.AddToScheme,\n\tauthorizationv1beta1.AddToScheme,\n\tautoscalingv1.AddToScheme,\n\tautoscalingv2.AddToScheme,\n\tautoscalingv2beta1.AddToScheme,\n\tautoscalingv2beta2.AddToScheme,\n\tbatchv1.AddToScheme,\n\tbatchv1beta1.AddToScheme,\n\tcertificatesv1.AddToScheme,\n\tcertificatesv1beta1.AddToScheme,\n\tcertificatesv1alpha1.AddToScheme,\n\tcoordinationv1alpha2.AddToScheme,\n\tcoordinationv1beta1.AddToScheme,\n\tcoordinationv1.AddToScheme,\n\tcorev1.AddToScheme,\n\tdiscoveryv1.AddToScheme,\n\tdiscoveryv1beta1.AddToScheme,\n\teventsv1.AddToScheme,\n\teventsv1beta1.AddToScheme,\n\textensionsv1beta1.AddToScheme,\n\tflowcontrolv1.AddToScheme,\n\tflowcontrolv1beta1.AddToScheme,\n\tflowcontrolv1beta2.AddToScheme,\n\tflowcontrolv1beta3.AddToScheme,\n\tnetworkingv1.AddToScheme,\n\tnetworkingv1alpha1.AddToScheme,\n\tnetworkingv1beta1.AddToScheme,\n\tnodev1.AddToScheme,\n\tnodev1alpha1.AddToScheme,\n\tnodev1beta1.AddToScheme,\n\tpolicyv1.AddToScheme,\n\tpolicyv1beta1.AddToScheme,\n\trbacv1.AddToScheme,\n\trbacv1beta1.AddToScheme,\n\trbacv1alpha1.AddToScheme,\n\tresourcev1beta1.AddToScheme,\n\tresourcev1alpha3.AddToScheme,\n\tschedulingv1alpha1.AddToScheme,\n\tschedulingv1beta1.AddToScheme,\n\tschedulingv1.AddToScheme,\n\tstoragev1beta1.AddToScheme,\n\tstoragev1.AddToScheme,\n\tstoragev1alpha1.AddToScheme,\n\tstoragemigrationv1alpha1.AddToScheme,\n}\n\n// AddToScheme adds all types of this clientset into the given scheme. This allows composition\n// of clientsets, like in:\n//\n//\timport (\n//\t  \"k8s.io/client-go/kubernetes\"\n//\t  clientsetscheme \"k8s.io/client-go/kubernetes/scheme\"\n//\t  aggregatorclientsetscheme \"k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/scheme\"\n//\t)\n//\n//\tkclientset, _ := kubernetes.NewForConfig(c)\n//\t_ = aggregatorclientsetscheme.AddToScheme(clientsetscheme.Scheme)\n//\n// After this, RawExtensions in Kubernetes types will serialize kube-aggregator types\n// correctly.\nvar AddToScheme = localSchemeBuilder.AddToScheme\n\nfunc init() {\n\tv1.AddToGroupVersion(Scheme, schema.GroupVersion{Version: \"v1\"})\n\tutilruntime.Must(AddToScheme(Scheme))\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/admissionregistration_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\thttp \"net/http\"\n\n\tadmissionregistrationv1 \"k8s.io/api/admissionregistration/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype AdmissionregistrationV1Interface interface {\n\tRESTClient() rest.Interface\n\tMutatingWebhookConfigurationsGetter\n\tValidatingAdmissionPoliciesGetter\n\tValidatingAdmissionPolicyBindingsGetter\n\tValidatingWebhookConfigurationsGetter\n}\n\n// AdmissionregistrationV1Client is used to interact with features provided by the admissionregistration.k8s.io group.\ntype AdmissionregistrationV1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *AdmissionregistrationV1Client) MutatingWebhookConfigurations() MutatingWebhookConfigurationInterface {\n\treturn newMutatingWebhookConfigurations(c)\n}\n\nfunc (c *AdmissionregistrationV1Client) ValidatingAdmissionPolicies() ValidatingAdmissionPolicyInterface {\n\treturn newValidatingAdmissionPolicies(c)\n}\n\nfunc (c *AdmissionregistrationV1Client) ValidatingAdmissionPolicyBindings() ValidatingAdmissionPolicyBindingInterface {\n\treturn newValidatingAdmissionPolicyBindings(c)\n}\n\nfunc (c *AdmissionregistrationV1Client) ValidatingWebhookConfigurations() ValidatingWebhookConfigurationInterface {\n\treturn newValidatingWebhookConfigurations(c)\n}\n\n// NewForConfig creates a new AdmissionregistrationV1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*AdmissionregistrationV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new AdmissionregistrationV1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*AdmissionregistrationV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &AdmissionregistrationV1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new AdmissionregistrationV1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *AdmissionregistrationV1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new AdmissionregistrationV1Client for the given RESTClient.\nfunc New(c rest.Interface) *AdmissionregistrationV1Client {\n\treturn &AdmissionregistrationV1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := admissionregistrationv1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *AdmissionregistrationV1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/fake/fake_admissionregistration_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/client-go/kubernetes/typed/admissionregistration/v1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeAdmissionregistrationV1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeAdmissionregistrationV1) MutatingWebhookConfigurations() v1.MutatingWebhookConfigurationInterface {\n\treturn newFakeMutatingWebhookConfigurations(c)\n}\n\nfunc (c *FakeAdmissionregistrationV1) ValidatingAdmissionPolicies() v1.ValidatingAdmissionPolicyInterface {\n\treturn newFakeValidatingAdmissionPolicies(c)\n}\n\nfunc (c *FakeAdmissionregistrationV1) ValidatingAdmissionPolicyBindings() v1.ValidatingAdmissionPolicyBindingInterface {\n\treturn newFakeValidatingAdmissionPolicyBindings(c)\n}\n\nfunc (c *FakeAdmissionregistrationV1) ValidatingWebhookConfigurations() v1.ValidatingWebhookConfigurationInterface {\n\treturn newFakeValidatingWebhookConfigurations(c)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeAdmissionregistrationV1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/fake/fake_mutatingwebhookconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/admissionregistration/v1\"\n\tadmissionregistrationv1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedadmissionregistrationv1 \"k8s.io/client-go/kubernetes/typed/admissionregistration/v1\"\n)\n\n// fakeMutatingWebhookConfigurations implements MutatingWebhookConfigurationInterface\ntype fakeMutatingWebhookConfigurations struct {\n\t*gentype.FakeClientWithListAndApply[*v1.MutatingWebhookConfiguration, *v1.MutatingWebhookConfigurationList, *admissionregistrationv1.MutatingWebhookConfigurationApplyConfiguration]\n\tFake *FakeAdmissionregistrationV1\n}\n\nfunc newFakeMutatingWebhookConfigurations(fake *FakeAdmissionregistrationV1) typedadmissionregistrationv1.MutatingWebhookConfigurationInterface {\n\treturn &fakeMutatingWebhookConfigurations{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.MutatingWebhookConfiguration, *v1.MutatingWebhookConfigurationList, *admissionregistrationv1.MutatingWebhookConfigurationApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1.SchemeGroupVersion.WithResource(\"mutatingwebhookconfigurations\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"MutatingWebhookConfiguration\"),\n\t\t\tfunc() *v1.MutatingWebhookConfiguration { return &v1.MutatingWebhookConfiguration{} },\n\t\t\tfunc() *v1.MutatingWebhookConfigurationList { return &v1.MutatingWebhookConfigurationList{} },\n\t\t\tfunc(dst, src *v1.MutatingWebhookConfigurationList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.MutatingWebhookConfigurationList) []*v1.MutatingWebhookConfiguration {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1.MutatingWebhookConfigurationList, items []*v1.MutatingWebhookConfiguration) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/fake/fake_validatingadmissionpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/admissionregistration/v1\"\n\tadmissionregistrationv1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedadmissionregistrationv1 \"k8s.io/client-go/kubernetes/typed/admissionregistration/v1\"\n)\n\n// fakeValidatingAdmissionPolicies implements ValidatingAdmissionPolicyInterface\ntype fakeValidatingAdmissionPolicies struct {\n\t*gentype.FakeClientWithListAndApply[*v1.ValidatingAdmissionPolicy, *v1.ValidatingAdmissionPolicyList, *admissionregistrationv1.ValidatingAdmissionPolicyApplyConfiguration]\n\tFake *FakeAdmissionregistrationV1\n}\n\nfunc newFakeValidatingAdmissionPolicies(fake *FakeAdmissionregistrationV1) typedadmissionregistrationv1.ValidatingAdmissionPolicyInterface {\n\treturn &fakeValidatingAdmissionPolicies{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.ValidatingAdmissionPolicy, *v1.ValidatingAdmissionPolicyList, *admissionregistrationv1.ValidatingAdmissionPolicyApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1.SchemeGroupVersion.WithResource(\"validatingadmissionpolicies\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"ValidatingAdmissionPolicy\"),\n\t\t\tfunc() *v1.ValidatingAdmissionPolicy { return &v1.ValidatingAdmissionPolicy{} },\n\t\t\tfunc() *v1.ValidatingAdmissionPolicyList { return &v1.ValidatingAdmissionPolicyList{} },\n\t\t\tfunc(dst, src *v1.ValidatingAdmissionPolicyList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.ValidatingAdmissionPolicyList) []*v1.ValidatingAdmissionPolicy {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1.ValidatingAdmissionPolicyList, items []*v1.ValidatingAdmissionPolicy) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/fake/fake_validatingadmissionpolicybinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/admissionregistration/v1\"\n\tadmissionregistrationv1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedadmissionregistrationv1 \"k8s.io/client-go/kubernetes/typed/admissionregistration/v1\"\n)\n\n// fakeValidatingAdmissionPolicyBindings implements ValidatingAdmissionPolicyBindingInterface\ntype fakeValidatingAdmissionPolicyBindings struct {\n\t*gentype.FakeClientWithListAndApply[*v1.ValidatingAdmissionPolicyBinding, *v1.ValidatingAdmissionPolicyBindingList, *admissionregistrationv1.ValidatingAdmissionPolicyBindingApplyConfiguration]\n\tFake *FakeAdmissionregistrationV1\n}\n\nfunc newFakeValidatingAdmissionPolicyBindings(fake *FakeAdmissionregistrationV1) typedadmissionregistrationv1.ValidatingAdmissionPolicyBindingInterface {\n\treturn &fakeValidatingAdmissionPolicyBindings{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.ValidatingAdmissionPolicyBinding, *v1.ValidatingAdmissionPolicyBindingList, *admissionregistrationv1.ValidatingAdmissionPolicyBindingApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1.SchemeGroupVersion.WithResource(\"validatingadmissionpolicybindings\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"ValidatingAdmissionPolicyBinding\"),\n\t\t\tfunc() *v1.ValidatingAdmissionPolicyBinding { return &v1.ValidatingAdmissionPolicyBinding{} },\n\t\t\tfunc() *v1.ValidatingAdmissionPolicyBindingList { return &v1.ValidatingAdmissionPolicyBindingList{} },\n\t\t\tfunc(dst, src *v1.ValidatingAdmissionPolicyBindingList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.ValidatingAdmissionPolicyBindingList) []*v1.ValidatingAdmissionPolicyBinding {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1.ValidatingAdmissionPolicyBindingList, items []*v1.ValidatingAdmissionPolicyBinding) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/fake/fake_validatingwebhookconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/admissionregistration/v1\"\n\tadmissionregistrationv1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedadmissionregistrationv1 \"k8s.io/client-go/kubernetes/typed/admissionregistration/v1\"\n)\n\n// fakeValidatingWebhookConfigurations implements ValidatingWebhookConfigurationInterface\ntype fakeValidatingWebhookConfigurations struct {\n\t*gentype.FakeClientWithListAndApply[*v1.ValidatingWebhookConfiguration, *v1.ValidatingWebhookConfigurationList, *admissionregistrationv1.ValidatingWebhookConfigurationApplyConfiguration]\n\tFake *FakeAdmissionregistrationV1\n}\n\nfunc newFakeValidatingWebhookConfigurations(fake *FakeAdmissionregistrationV1) typedadmissionregistrationv1.ValidatingWebhookConfigurationInterface {\n\treturn &fakeValidatingWebhookConfigurations{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.ValidatingWebhookConfiguration, *v1.ValidatingWebhookConfigurationList, *admissionregistrationv1.ValidatingWebhookConfigurationApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1.SchemeGroupVersion.WithResource(\"validatingwebhookconfigurations\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"ValidatingWebhookConfiguration\"),\n\t\t\tfunc() *v1.ValidatingWebhookConfiguration { return &v1.ValidatingWebhookConfiguration{} },\n\t\t\tfunc() *v1.ValidatingWebhookConfigurationList { return &v1.ValidatingWebhookConfigurationList{} },\n\t\t\tfunc(dst, src *v1.ValidatingWebhookConfigurationList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.ValidatingWebhookConfigurationList) []*v1.ValidatingWebhookConfiguration {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1.ValidatingWebhookConfigurationList, items []*v1.ValidatingWebhookConfiguration) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\ntype MutatingWebhookConfigurationExpansion interface{}\n\ntype ValidatingAdmissionPolicyExpansion interface{}\n\ntype ValidatingAdmissionPolicyBindingExpansion interface{}\n\ntype ValidatingWebhookConfigurationExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/mutatingwebhookconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tadmissionregistrationv1 \"k8s.io/api/admissionregistration/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsadmissionregistrationv1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// MutatingWebhookConfigurationsGetter has a method to return a MutatingWebhookConfigurationInterface.\n// A group's client should implement this interface.\ntype MutatingWebhookConfigurationsGetter interface {\n\tMutatingWebhookConfigurations() MutatingWebhookConfigurationInterface\n}\n\n// MutatingWebhookConfigurationInterface has methods to work with MutatingWebhookConfiguration resources.\ntype MutatingWebhookConfigurationInterface interface {\n\tCreate(ctx context.Context, mutatingWebhookConfiguration *admissionregistrationv1.MutatingWebhookConfiguration, opts metav1.CreateOptions) (*admissionregistrationv1.MutatingWebhookConfiguration, error)\n\tUpdate(ctx context.Context, mutatingWebhookConfiguration *admissionregistrationv1.MutatingWebhookConfiguration, opts metav1.UpdateOptions) (*admissionregistrationv1.MutatingWebhookConfiguration, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*admissionregistrationv1.MutatingWebhookConfiguration, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*admissionregistrationv1.MutatingWebhookConfigurationList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *admissionregistrationv1.MutatingWebhookConfiguration, err error)\n\tApply(ctx context.Context, mutatingWebhookConfiguration *applyconfigurationsadmissionregistrationv1.MutatingWebhookConfigurationApplyConfiguration, opts metav1.ApplyOptions) (result *admissionregistrationv1.MutatingWebhookConfiguration, err error)\n\tMutatingWebhookConfigurationExpansion\n}\n\n// mutatingWebhookConfigurations implements MutatingWebhookConfigurationInterface\ntype mutatingWebhookConfigurations struct {\n\t*gentype.ClientWithListAndApply[*admissionregistrationv1.MutatingWebhookConfiguration, *admissionregistrationv1.MutatingWebhookConfigurationList, *applyconfigurationsadmissionregistrationv1.MutatingWebhookConfigurationApplyConfiguration]\n}\n\n// newMutatingWebhookConfigurations returns a MutatingWebhookConfigurations\nfunc newMutatingWebhookConfigurations(c *AdmissionregistrationV1Client) *mutatingWebhookConfigurations {\n\treturn &mutatingWebhookConfigurations{\n\t\tgentype.NewClientWithListAndApply[*admissionregistrationv1.MutatingWebhookConfiguration, *admissionregistrationv1.MutatingWebhookConfigurationList, *applyconfigurationsadmissionregistrationv1.MutatingWebhookConfigurationApplyConfiguration](\n\t\t\t\"mutatingwebhookconfigurations\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *admissionregistrationv1.MutatingWebhookConfiguration {\n\t\t\t\treturn &admissionregistrationv1.MutatingWebhookConfiguration{}\n\t\t\t},\n\t\t\tfunc() *admissionregistrationv1.MutatingWebhookConfigurationList {\n\t\t\t\treturn &admissionregistrationv1.MutatingWebhookConfigurationList{}\n\t\t\t},\n\t\t\tgentype.PrefersProtobuf[*admissionregistrationv1.MutatingWebhookConfiguration](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/validatingadmissionpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tadmissionregistrationv1 \"k8s.io/api/admissionregistration/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsadmissionregistrationv1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// ValidatingAdmissionPoliciesGetter has a method to return a ValidatingAdmissionPolicyInterface.\n// A group's client should implement this interface.\ntype ValidatingAdmissionPoliciesGetter interface {\n\tValidatingAdmissionPolicies() ValidatingAdmissionPolicyInterface\n}\n\n// ValidatingAdmissionPolicyInterface has methods to work with ValidatingAdmissionPolicy resources.\ntype ValidatingAdmissionPolicyInterface interface {\n\tCreate(ctx context.Context, validatingAdmissionPolicy *admissionregistrationv1.ValidatingAdmissionPolicy, opts metav1.CreateOptions) (*admissionregistrationv1.ValidatingAdmissionPolicy, error)\n\tUpdate(ctx context.Context, validatingAdmissionPolicy *admissionregistrationv1.ValidatingAdmissionPolicy, opts metav1.UpdateOptions) (*admissionregistrationv1.ValidatingAdmissionPolicy, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, validatingAdmissionPolicy *admissionregistrationv1.ValidatingAdmissionPolicy, opts metav1.UpdateOptions) (*admissionregistrationv1.ValidatingAdmissionPolicy, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*admissionregistrationv1.ValidatingAdmissionPolicy, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*admissionregistrationv1.ValidatingAdmissionPolicyList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *admissionregistrationv1.ValidatingAdmissionPolicy, err error)\n\tApply(ctx context.Context, validatingAdmissionPolicy *applyconfigurationsadmissionregistrationv1.ValidatingAdmissionPolicyApplyConfiguration, opts metav1.ApplyOptions) (result *admissionregistrationv1.ValidatingAdmissionPolicy, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, validatingAdmissionPolicy *applyconfigurationsadmissionregistrationv1.ValidatingAdmissionPolicyApplyConfiguration, opts metav1.ApplyOptions) (result *admissionregistrationv1.ValidatingAdmissionPolicy, err error)\n\tValidatingAdmissionPolicyExpansion\n}\n\n// validatingAdmissionPolicies implements ValidatingAdmissionPolicyInterface\ntype validatingAdmissionPolicies struct {\n\t*gentype.ClientWithListAndApply[*admissionregistrationv1.ValidatingAdmissionPolicy, *admissionregistrationv1.ValidatingAdmissionPolicyList, *applyconfigurationsadmissionregistrationv1.ValidatingAdmissionPolicyApplyConfiguration]\n}\n\n// newValidatingAdmissionPolicies returns a ValidatingAdmissionPolicies\nfunc newValidatingAdmissionPolicies(c *AdmissionregistrationV1Client) *validatingAdmissionPolicies {\n\treturn &validatingAdmissionPolicies{\n\t\tgentype.NewClientWithListAndApply[*admissionregistrationv1.ValidatingAdmissionPolicy, *admissionregistrationv1.ValidatingAdmissionPolicyList, *applyconfigurationsadmissionregistrationv1.ValidatingAdmissionPolicyApplyConfiguration](\n\t\t\t\"validatingadmissionpolicies\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *admissionregistrationv1.ValidatingAdmissionPolicy {\n\t\t\t\treturn &admissionregistrationv1.ValidatingAdmissionPolicy{}\n\t\t\t},\n\t\t\tfunc() *admissionregistrationv1.ValidatingAdmissionPolicyList {\n\t\t\t\treturn &admissionregistrationv1.ValidatingAdmissionPolicyList{}\n\t\t\t},\n\t\t\tgentype.PrefersProtobuf[*admissionregistrationv1.ValidatingAdmissionPolicy](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/validatingadmissionpolicybinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tadmissionregistrationv1 \"k8s.io/api/admissionregistration/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsadmissionregistrationv1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// ValidatingAdmissionPolicyBindingsGetter has a method to return a ValidatingAdmissionPolicyBindingInterface.\n// A group's client should implement this interface.\ntype ValidatingAdmissionPolicyBindingsGetter interface {\n\tValidatingAdmissionPolicyBindings() ValidatingAdmissionPolicyBindingInterface\n}\n\n// ValidatingAdmissionPolicyBindingInterface has methods to work with ValidatingAdmissionPolicyBinding resources.\ntype ValidatingAdmissionPolicyBindingInterface interface {\n\tCreate(ctx context.Context, validatingAdmissionPolicyBinding *admissionregistrationv1.ValidatingAdmissionPolicyBinding, opts metav1.CreateOptions) (*admissionregistrationv1.ValidatingAdmissionPolicyBinding, error)\n\tUpdate(ctx context.Context, validatingAdmissionPolicyBinding *admissionregistrationv1.ValidatingAdmissionPolicyBinding, opts metav1.UpdateOptions) (*admissionregistrationv1.ValidatingAdmissionPolicyBinding, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*admissionregistrationv1.ValidatingAdmissionPolicyBinding, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*admissionregistrationv1.ValidatingAdmissionPolicyBindingList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *admissionregistrationv1.ValidatingAdmissionPolicyBinding, err error)\n\tApply(ctx context.Context, validatingAdmissionPolicyBinding *applyconfigurationsadmissionregistrationv1.ValidatingAdmissionPolicyBindingApplyConfiguration, opts metav1.ApplyOptions) (result *admissionregistrationv1.ValidatingAdmissionPolicyBinding, err error)\n\tValidatingAdmissionPolicyBindingExpansion\n}\n\n// validatingAdmissionPolicyBindings implements ValidatingAdmissionPolicyBindingInterface\ntype validatingAdmissionPolicyBindings struct {\n\t*gentype.ClientWithListAndApply[*admissionregistrationv1.ValidatingAdmissionPolicyBinding, *admissionregistrationv1.ValidatingAdmissionPolicyBindingList, *applyconfigurationsadmissionregistrationv1.ValidatingAdmissionPolicyBindingApplyConfiguration]\n}\n\n// newValidatingAdmissionPolicyBindings returns a ValidatingAdmissionPolicyBindings\nfunc newValidatingAdmissionPolicyBindings(c *AdmissionregistrationV1Client) *validatingAdmissionPolicyBindings {\n\treturn &validatingAdmissionPolicyBindings{\n\t\tgentype.NewClientWithListAndApply[*admissionregistrationv1.ValidatingAdmissionPolicyBinding, *admissionregistrationv1.ValidatingAdmissionPolicyBindingList, *applyconfigurationsadmissionregistrationv1.ValidatingAdmissionPolicyBindingApplyConfiguration](\n\t\t\t\"validatingadmissionpolicybindings\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *admissionregistrationv1.ValidatingAdmissionPolicyBinding {\n\t\t\t\treturn &admissionregistrationv1.ValidatingAdmissionPolicyBinding{}\n\t\t\t},\n\t\t\tfunc() *admissionregistrationv1.ValidatingAdmissionPolicyBindingList {\n\t\t\t\treturn &admissionregistrationv1.ValidatingAdmissionPolicyBindingList{}\n\t\t\t},\n\t\t\tgentype.PrefersProtobuf[*admissionregistrationv1.ValidatingAdmissionPolicyBinding](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/validatingwebhookconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tadmissionregistrationv1 \"k8s.io/api/admissionregistration/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsadmissionregistrationv1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// ValidatingWebhookConfigurationsGetter has a method to return a ValidatingWebhookConfigurationInterface.\n// A group's client should implement this interface.\ntype ValidatingWebhookConfigurationsGetter interface {\n\tValidatingWebhookConfigurations() ValidatingWebhookConfigurationInterface\n}\n\n// ValidatingWebhookConfigurationInterface has methods to work with ValidatingWebhookConfiguration resources.\ntype ValidatingWebhookConfigurationInterface interface {\n\tCreate(ctx context.Context, validatingWebhookConfiguration *admissionregistrationv1.ValidatingWebhookConfiguration, opts metav1.CreateOptions) (*admissionregistrationv1.ValidatingWebhookConfiguration, error)\n\tUpdate(ctx context.Context, validatingWebhookConfiguration *admissionregistrationv1.ValidatingWebhookConfiguration, opts metav1.UpdateOptions) (*admissionregistrationv1.ValidatingWebhookConfiguration, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*admissionregistrationv1.ValidatingWebhookConfiguration, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*admissionregistrationv1.ValidatingWebhookConfigurationList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *admissionregistrationv1.ValidatingWebhookConfiguration, err error)\n\tApply(ctx context.Context, validatingWebhookConfiguration *applyconfigurationsadmissionregistrationv1.ValidatingWebhookConfigurationApplyConfiguration, opts metav1.ApplyOptions) (result *admissionregistrationv1.ValidatingWebhookConfiguration, err error)\n\tValidatingWebhookConfigurationExpansion\n}\n\n// validatingWebhookConfigurations implements ValidatingWebhookConfigurationInterface\ntype validatingWebhookConfigurations struct {\n\t*gentype.ClientWithListAndApply[*admissionregistrationv1.ValidatingWebhookConfiguration, *admissionregistrationv1.ValidatingWebhookConfigurationList, *applyconfigurationsadmissionregistrationv1.ValidatingWebhookConfigurationApplyConfiguration]\n}\n\n// newValidatingWebhookConfigurations returns a ValidatingWebhookConfigurations\nfunc newValidatingWebhookConfigurations(c *AdmissionregistrationV1Client) *validatingWebhookConfigurations {\n\treturn &validatingWebhookConfigurations{\n\t\tgentype.NewClientWithListAndApply[*admissionregistrationv1.ValidatingWebhookConfiguration, *admissionregistrationv1.ValidatingWebhookConfigurationList, *applyconfigurationsadmissionregistrationv1.ValidatingWebhookConfigurationApplyConfiguration](\n\t\t\t\"validatingwebhookconfigurations\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *admissionregistrationv1.ValidatingWebhookConfiguration {\n\t\t\t\treturn &admissionregistrationv1.ValidatingWebhookConfiguration{}\n\t\t\t},\n\t\t\tfunc() *admissionregistrationv1.ValidatingWebhookConfigurationList {\n\t\t\t\treturn &admissionregistrationv1.ValidatingWebhookConfigurationList{}\n\t\t\t},\n\t\t\tgentype.PrefersProtobuf[*admissionregistrationv1.ValidatingWebhookConfiguration](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/admissionregistration_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\thttp \"net/http\"\n\n\tadmissionregistrationv1alpha1 \"k8s.io/api/admissionregistration/v1alpha1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype AdmissionregistrationV1alpha1Interface interface {\n\tRESTClient() rest.Interface\n\tMutatingAdmissionPoliciesGetter\n\tMutatingAdmissionPolicyBindingsGetter\n\tValidatingAdmissionPoliciesGetter\n\tValidatingAdmissionPolicyBindingsGetter\n}\n\n// AdmissionregistrationV1alpha1Client is used to interact with features provided by the admissionregistration.k8s.io group.\ntype AdmissionregistrationV1alpha1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *AdmissionregistrationV1alpha1Client) MutatingAdmissionPolicies() MutatingAdmissionPolicyInterface {\n\treturn newMutatingAdmissionPolicies(c)\n}\n\nfunc (c *AdmissionregistrationV1alpha1Client) MutatingAdmissionPolicyBindings() MutatingAdmissionPolicyBindingInterface {\n\treturn newMutatingAdmissionPolicyBindings(c)\n}\n\nfunc (c *AdmissionregistrationV1alpha1Client) ValidatingAdmissionPolicies() ValidatingAdmissionPolicyInterface {\n\treturn newValidatingAdmissionPolicies(c)\n}\n\nfunc (c *AdmissionregistrationV1alpha1Client) ValidatingAdmissionPolicyBindings() ValidatingAdmissionPolicyBindingInterface {\n\treturn newValidatingAdmissionPolicyBindings(c)\n}\n\n// NewForConfig creates a new AdmissionregistrationV1alpha1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*AdmissionregistrationV1alpha1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new AdmissionregistrationV1alpha1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*AdmissionregistrationV1alpha1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &AdmissionregistrationV1alpha1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new AdmissionregistrationV1alpha1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *AdmissionregistrationV1alpha1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new AdmissionregistrationV1alpha1Client for the given RESTClient.\nfunc New(c rest.Interface) *AdmissionregistrationV1alpha1Client {\n\treturn &AdmissionregistrationV1alpha1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := admissionregistrationv1alpha1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *AdmissionregistrationV1alpha1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1alpha1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/fake_admissionregistration_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha1 \"k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeAdmissionregistrationV1alpha1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeAdmissionregistrationV1alpha1) MutatingAdmissionPolicies() v1alpha1.MutatingAdmissionPolicyInterface {\n\treturn newFakeMutatingAdmissionPolicies(c)\n}\n\nfunc (c *FakeAdmissionregistrationV1alpha1) MutatingAdmissionPolicyBindings() v1alpha1.MutatingAdmissionPolicyBindingInterface {\n\treturn newFakeMutatingAdmissionPolicyBindings(c)\n}\n\nfunc (c *FakeAdmissionregistrationV1alpha1) ValidatingAdmissionPolicies() v1alpha1.ValidatingAdmissionPolicyInterface {\n\treturn newFakeValidatingAdmissionPolicies(c)\n}\n\nfunc (c *FakeAdmissionregistrationV1alpha1) ValidatingAdmissionPolicyBindings() v1alpha1.ValidatingAdmissionPolicyBindingInterface {\n\treturn newFakeValidatingAdmissionPolicyBindings(c)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeAdmissionregistrationV1alpha1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/fake_mutatingadmissionpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha1 \"k8s.io/api/admissionregistration/v1alpha1\"\n\tadmissionregistrationv1alpha1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedadmissionregistrationv1alpha1 \"k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1\"\n)\n\n// fakeMutatingAdmissionPolicies implements MutatingAdmissionPolicyInterface\ntype fakeMutatingAdmissionPolicies struct {\n\t*gentype.FakeClientWithListAndApply[*v1alpha1.MutatingAdmissionPolicy, *v1alpha1.MutatingAdmissionPolicyList, *admissionregistrationv1alpha1.MutatingAdmissionPolicyApplyConfiguration]\n\tFake *FakeAdmissionregistrationV1alpha1\n}\n\nfunc newFakeMutatingAdmissionPolicies(fake *FakeAdmissionregistrationV1alpha1) typedadmissionregistrationv1alpha1.MutatingAdmissionPolicyInterface {\n\treturn &fakeMutatingAdmissionPolicies{\n\t\tgentype.NewFakeClientWithListAndApply[*v1alpha1.MutatingAdmissionPolicy, *v1alpha1.MutatingAdmissionPolicyList, *admissionregistrationv1alpha1.MutatingAdmissionPolicyApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1alpha1.SchemeGroupVersion.WithResource(\"mutatingadmissionpolicies\"),\n\t\t\tv1alpha1.SchemeGroupVersion.WithKind(\"MutatingAdmissionPolicy\"),\n\t\t\tfunc() *v1alpha1.MutatingAdmissionPolicy { return &v1alpha1.MutatingAdmissionPolicy{} },\n\t\t\tfunc() *v1alpha1.MutatingAdmissionPolicyList { return &v1alpha1.MutatingAdmissionPolicyList{} },\n\t\t\tfunc(dst, src *v1alpha1.MutatingAdmissionPolicyList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1alpha1.MutatingAdmissionPolicyList) []*v1alpha1.MutatingAdmissionPolicy {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1alpha1.MutatingAdmissionPolicyList, items []*v1alpha1.MutatingAdmissionPolicy) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/fake_mutatingadmissionpolicybinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha1 \"k8s.io/api/admissionregistration/v1alpha1\"\n\tadmissionregistrationv1alpha1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedadmissionregistrationv1alpha1 \"k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1\"\n)\n\n// fakeMutatingAdmissionPolicyBindings implements MutatingAdmissionPolicyBindingInterface\ntype fakeMutatingAdmissionPolicyBindings struct {\n\t*gentype.FakeClientWithListAndApply[*v1alpha1.MutatingAdmissionPolicyBinding, *v1alpha1.MutatingAdmissionPolicyBindingList, *admissionregistrationv1alpha1.MutatingAdmissionPolicyBindingApplyConfiguration]\n\tFake *FakeAdmissionregistrationV1alpha1\n}\n\nfunc newFakeMutatingAdmissionPolicyBindings(fake *FakeAdmissionregistrationV1alpha1) typedadmissionregistrationv1alpha1.MutatingAdmissionPolicyBindingInterface {\n\treturn &fakeMutatingAdmissionPolicyBindings{\n\t\tgentype.NewFakeClientWithListAndApply[*v1alpha1.MutatingAdmissionPolicyBinding, *v1alpha1.MutatingAdmissionPolicyBindingList, *admissionregistrationv1alpha1.MutatingAdmissionPolicyBindingApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1alpha1.SchemeGroupVersion.WithResource(\"mutatingadmissionpolicybindings\"),\n\t\t\tv1alpha1.SchemeGroupVersion.WithKind(\"MutatingAdmissionPolicyBinding\"),\n\t\t\tfunc() *v1alpha1.MutatingAdmissionPolicyBinding { return &v1alpha1.MutatingAdmissionPolicyBinding{} },\n\t\t\tfunc() *v1alpha1.MutatingAdmissionPolicyBindingList {\n\t\t\t\treturn &v1alpha1.MutatingAdmissionPolicyBindingList{}\n\t\t\t},\n\t\t\tfunc(dst, src *v1alpha1.MutatingAdmissionPolicyBindingList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1alpha1.MutatingAdmissionPolicyBindingList) []*v1alpha1.MutatingAdmissionPolicyBinding {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1alpha1.MutatingAdmissionPolicyBindingList, items []*v1alpha1.MutatingAdmissionPolicyBinding) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/fake_validatingadmissionpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha1 \"k8s.io/api/admissionregistration/v1alpha1\"\n\tadmissionregistrationv1alpha1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedadmissionregistrationv1alpha1 \"k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1\"\n)\n\n// fakeValidatingAdmissionPolicies implements ValidatingAdmissionPolicyInterface\ntype fakeValidatingAdmissionPolicies struct {\n\t*gentype.FakeClientWithListAndApply[*v1alpha1.ValidatingAdmissionPolicy, *v1alpha1.ValidatingAdmissionPolicyList, *admissionregistrationv1alpha1.ValidatingAdmissionPolicyApplyConfiguration]\n\tFake *FakeAdmissionregistrationV1alpha1\n}\n\nfunc newFakeValidatingAdmissionPolicies(fake *FakeAdmissionregistrationV1alpha1) typedadmissionregistrationv1alpha1.ValidatingAdmissionPolicyInterface {\n\treturn &fakeValidatingAdmissionPolicies{\n\t\tgentype.NewFakeClientWithListAndApply[*v1alpha1.ValidatingAdmissionPolicy, *v1alpha1.ValidatingAdmissionPolicyList, *admissionregistrationv1alpha1.ValidatingAdmissionPolicyApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1alpha1.SchemeGroupVersion.WithResource(\"validatingadmissionpolicies\"),\n\t\t\tv1alpha1.SchemeGroupVersion.WithKind(\"ValidatingAdmissionPolicy\"),\n\t\t\tfunc() *v1alpha1.ValidatingAdmissionPolicy { return &v1alpha1.ValidatingAdmissionPolicy{} },\n\t\t\tfunc() *v1alpha1.ValidatingAdmissionPolicyList { return &v1alpha1.ValidatingAdmissionPolicyList{} },\n\t\t\tfunc(dst, src *v1alpha1.ValidatingAdmissionPolicyList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1alpha1.ValidatingAdmissionPolicyList) []*v1alpha1.ValidatingAdmissionPolicy {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1alpha1.ValidatingAdmissionPolicyList, items []*v1alpha1.ValidatingAdmissionPolicy) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/fake_validatingadmissionpolicybinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha1 \"k8s.io/api/admissionregistration/v1alpha1\"\n\tadmissionregistrationv1alpha1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedadmissionregistrationv1alpha1 \"k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1\"\n)\n\n// fakeValidatingAdmissionPolicyBindings implements ValidatingAdmissionPolicyBindingInterface\ntype fakeValidatingAdmissionPolicyBindings struct {\n\t*gentype.FakeClientWithListAndApply[*v1alpha1.ValidatingAdmissionPolicyBinding, *v1alpha1.ValidatingAdmissionPolicyBindingList, *admissionregistrationv1alpha1.ValidatingAdmissionPolicyBindingApplyConfiguration]\n\tFake *FakeAdmissionregistrationV1alpha1\n}\n\nfunc newFakeValidatingAdmissionPolicyBindings(fake *FakeAdmissionregistrationV1alpha1) typedadmissionregistrationv1alpha1.ValidatingAdmissionPolicyBindingInterface {\n\treturn &fakeValidatingAdmissionPolicyBindings{\n\t\tgentype.NewFakeClientWithListAndApply[*v1alpha1.ValidatingAdmissionPolicyBinding, *v1alpha1.ValidatingAdmissionPolicyBindingList, *admissionregistrationv1alpha1.ValidatingAdmissionPolicyBindingApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1alpha1.SchemeGroupVersion.WithResource(\"validatingadmissionpolicybindings\"),\n\t\t\tv1alpha1.SchemeGroupVersion.WithKind(\"ValidatingAdmissionPolicyBinding\"),\n\t\t\tfunc() *v1alpha1.ValidatingAdmissionPolicyBinding { return &v1alpha1.ValidatingAdmissionPolicyBinding{} },\n\t\t\tfunc() *v1alpha1.ValidatingAdmissionPolicyBindingList {\n\t\t\t\treturn &v1alpha1.ValidatingAdmissionPolicyBindingList{}\n\t\t\t},\n\t\t\tfunc(dst, src *v1alpha1.ValidatingAdmissionPolicyBindingList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1alpha1.ValidatingAdmissionPolicyBindingList) []*v1alpha1.ValidatingAdmissionPolicyBinding {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1alpha1.ValidatingAdmissionPolicyBindingList, items []*v1alpha1.ValidatingAdmissionPolicyBinding) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\ntype MutatingAdmissionPolicyExpansion interface{}\n\ntype MutatingAdmissionPolicyBindingExpansion interface{}\n\ntype ValidatingAdmissionPolicyExpansion interface{}\n\ntype ValidatingAdmissionPolicyBindingExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/mutatingadmissionpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcontext \"context\"\n\n\tadmissionregistrationv1alpha1 \"k8s.io/api/admissionregistration/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsadmissionregistrationv1alpha1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// MutatingAdmissionPoliciesGetter has a method to return a MutatingAdmissionPolicyInterface.\n// A group's client should implement this interface.\ntype MutatingAdmissionPoliciesGetter interface {\n\tMutatingAdmissionPolicies() MutatingAdmissionPolicyInterface\n}\n\n// MutatingAdmissionPolicyInterface has methods to work with MutatingAdmissionPolicy resources.\ntype MutatingAdmissionPolicyInterface interface {\n\tCreate(ctx context.Context, mutatingAdmissionPolicy *admissionregistrationv1alpha1.MutatingAdmissionPolicy, opts v1.CreateOptions) (*admissionregistrationv1alpha1.MutatingAdmissionPolicy, error)\n\tUpdate(ctx context.Context, mutatingAdmissionPolicy *admissionregistrationv1alpha1.MutatingAdmissionPolicy, opts v1.UpdateOptions) (*admissionregistrationv1alpha1.MutatingAdmissionPolicy, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*admissionregistrationv1alpha1.MutatingAdmissionPolicy, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*admissionregistrationv1alpha1.MutatingAdmissionPolicyList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *admissionregistrationv1alpha1.MutatingAdmissionPolicy, err error)\n\tApply(ctx context.Context, mutatingAdmissionPolicy *applyconfigurationsadmissionregistrationv1alpha1.MutatingAdmissionPolicyApplyConfiguration, opts v1.ApplyOptions) (result *admissionregistrationv1alpha1.MutatingAdmissionPolicy, err error)\n\tMutatingAdmissionPolicyExpansion\n}\n\n// mutatingAdmissionPolicies implements MutatingAdmissionPolicyInterface\ntype mutatingAdmissionPolicies struct {\n\t*gentype.ClientWithListAndApply[*admissionregistrationv1alpha1.MutatingAdmissionPolicy, *admissionregistrationv1alpha1.MutatingAdmissionPolicyList, *applyconfigurationsadmissionregistrationv1alpha1.MutatingAdmissionPolicyApplyConfiguration]\n}\n\n// newMutatingAdmissionPolicies returns a MutatingAdmissionPolicies\nfunc newMutatingAdmissionPolicies(c *AdmissionregistrationV1alpha1Client) *mutatingAdmissionPolicies {\n\treturn &mutatingAdmissionPolicies{\n\t\tgentype.NewClientWithListAndApply[*admissionregistrationv1alpha1.MutatingAdmissionPolicy, *admissionregistrationv1alpha1.MutatingAdmissionPolicyList, *applyconfigurationsadmissionregistrationv1alpha1.MutatingAdmissionPolicyApplyConfiguration](\n\t\t\t\"mutatingadmissionpolicies\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *admissionregistrationv1alpha1.MutatingAdmissionPolicy {\n\t\t\t\treturn &admissionregistrationv1alpha1.MutatingAdmissionPolicy{}\n\t\t\t},\n\t\t\tfunc() *admissionregistrationv1alpha1.MutatingAdmissionPolicyList {\n\t\t\t\treturn &admissionregistrationv1alpha1.MutatingAdmissionPolicyList{}\n\t\t\t},\n\t\t\tgentype.PrefersProtobuf[*admissionregistrationv1alpha1.MutatingAdmissionPolicy](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/mutatingadmissionpolicybinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcontext \"context\"\n\n\tadmissionregistrationv1alpha1 \"k8s.io/api/admissionregistration/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsadmissionregistrationv1alpha1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// MutatingAdmissionPolicyBindingsGetter has a method to return a MutatingAdmissionPolicyBindingInterface.\n// A group's client should implement this interface.\ntype MutatingAdmissionPolicyBindingsGetter interface {\n\tMutatingAdmissionPolicyBindings() MutatingAdmissionPolicyBindingInterface\n}\n\n// MutatingAdmissionPolicyBindingInterface has methods to work with MutatingAdmissionPolicyBinding resources.\ntype MutatingAdmissionPolicyBindingInterface interface {\n\tCreate(ctx context.Context, mutatingAdmissionPolicyBinding *admissionregistrationv1alpha1.MutatingAdmissionPolicyBinding, opts v1.CreateOptions) (*admissionregistrationv1alpha1.MutatingAdmissionPolicyBinding, error)\n\tUpdate(ctx context.Context, mutatingAdmissionPolicyBinding *admissionregistrationv1alpha1.MutatingAdmissionPolicyBinding, opts v1.UpdateOptions) (*admissionregistrationv1alpha1.MutatingAdmissionPolicyBinding, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*admissionregistrationv1alpha1.MutatingAdmissionPolicyBinding, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*admissionregistrationv1alpha1.MutatingAdmissionPolicyBindingList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *admissionregistrationv1alpha1.MutatingAdmissionPolicyBinding, err error)\n\tApply(ctx context.Context, mutatingAdmissionPolicyBinding *applyconfigurationsadmissionregistrationv1alpha1.MutatingAdmissionPolicyBindingApplyConfiguration, opts v1.ApplyOptions) (result *admissionregistrationv1alpha1.MutatingAdmissionPolicyBinding, err error)\n\tMutatingAdmissionPolicyBindingExpansion\n}\n\n// mutatingAdmissionPolicyBindings implements MutatingAdmissionPolicyBindingInterface\ntype mutatingAdmissionPolicyBindings struct {\n\t*gentype.ClientWithListAndApply[*admissionregistrationv1alpha1.MutatingAdmissionPolicyBinding, *admissionregistrationv1alpha1.MutatingAdmissionPolicyBindingList, *applyconfigurationsadmissionregistrationv1alpha1.MutatingAdmissionPolicyBindingApplyConfiguration]\n}\n\n// newMutatingAdmissionPolicyBindings returns a MutatingAdmissionPolicyBindings\nfunc newMutatingAdmissionPolicyBindings(c *AdmissionregistrationV1alpha1Client) *mutatingAdmissionPolicyBindings {\n\treturn &mutatingAdmissionPolicyBindings{\n\t\tgentype.NewClientWithListAndApply[*admissionregistrationv1alpha1.MutatingAdmissionPolicyBinding, *admissionregistrationv1alpha1.MutatingAdmissionPolicyBindingList, *applyconfigurationsadmissionregistrationv1alpha1.MutatingAdmissionPolicyBindingApplyConfiguration](\n\t\t\t\"mutatingadmissionpolicybindings\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *admissionregistrationv1alpha1.MutatingAdmissionPolicyBinding {\n\t\t\t\treturn &admissionregistrationv1alpha1.MutatingAdmissionPolicyBinding{}\n\t\t\t},\n\t\t\tfunc() *admissionregistrationv1alpha1.MutatingAdmissionPolicyBindingList {\n\t\t\t\treturn &admissionregistrationv1alpha1.MutatingAdmissionPolicyBindingList{}\n\t\t\t},\n\t\t\tgentype.PrefersProtobuf[*admissionregistrationv1alpha1.MutatingAdmissionPolicyBinding](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/validatingadmissionpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcontext \"context\"\n\n\tadmissionregistrationv1alpha1 \"k8s.io/api/admissionregistration/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsadmissionregistrationv1alpha1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// ValidatingAdmissionPoliciesGetter has a method to return a ValidatingAdmissionPolicyInterface.\n// A group's client should implement this interface.\ntype ValidatingAdmissionPoliciesGetter interface {\n\tValidatingAdmissionPolicies() ValidatingAdmissionPolicyInterface\n}\n\n// ValidatingAdmissionPolicyInterface has methods to work with ValidatingAdmissionPolicy resources.\ntype ValidatingAdmissionPolicyInterface interface {\n\tCreate(ctx context.Context, validatingAdmissionPolicy *admissionregistrationv1alpha1.ValidatingAdmissionPolicy, opts v1.CreateOptions) (*admissionregistrationv1alpha1.ValidatingAdmissionPolicy, error)\n\tUpdate(ctx context.Context, validatingAdmissionPolicy *admissionregistrationv1alpha1.ValidatingAdmissionPolicy, opts v1.UpdateOptions) (*admissionregistrationv1alpha1.ValidatingAdmissionPolicy, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, validatingAdmissionPolicy *admissionregistrationv1alpha1.ValidatingAdmissionPolicy, opts v1.UpdateOptions) (*admissionregistrationv1alpha1.ValidatingAdmissionPolicy, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*admissionregistrationv1alpha1.ValidatingAdmissionPolicy, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*admissionregistrationv1alpha1.ValidatingAdmissionPolicyList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *admissionregistrationv1alpha1.ValidatingAdmissionPolicy, err error)\n\tApply(ctx context.Context, validatingAdmissionPolicy *applyconfigurationsadmissionregistrationv1alpha1.ValidatingAdmissionPolicyApplyConfiguration, opts v1.ApplyOptions) (result *admissionregistrationv1alpha1.ValidatingAdmissionPolicy, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, validatingAdmissionPolicy *applyconfigurationsadmissionregistrationv1alpha1.ValidatingAdmissionPolicyApplyConfiguration, opts v1.ApplyOptions) (result *admissionregistrationv1alpha1.ValidatingAdmissionPolicy, err error)\n\tValidatingAdmissionPolicyExpansion\n}\n\n// validatingAdmissionPolicies implements ValidatingAdmissionPolicyInterface\ntype validatingAdmissionPolicies struct {\n\t*gentype.ClientWithListAndApply[*admissionregistrationv1alpha1.ValidatingAdmissionPolicy, *admissionregistrationv1alpha1.ValidatingAdmissionPolicyList, *applyconfigurationsadmissionregistrationv1alpha1.ValidatingAdmissionPolicyApplyConfiguration]\n}\n\n// newValidatingAdmissionPolicies returns a ValidatingAdmissionPolicies\nfunc newValidatingAdmissionPolicies(c *AdmissionregistrationV1alpha1Client) *validatingAdmissionPolicies {\n\treturn &validatingAdmissionPolicies{\n\t\tgentype.NewClientWithListAndApply[*admissionregistrationv1alpha1.ValidatingAdmissionPolicy, *admissionregistrationv1alpha1.ValidatingAdmissionPolicyList, *applyconfigurationsadmissionregistrationv1alpha1.ValidatingAdmissionPolicyApplyConfiguration](\n\t\t\t\"validatingadmissionpolicies\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *admissionregistrationv1alpha1.ValidatingAdmissionPolicy {\n\t\t\t\treturn &admissionregistrationv1alpha1.ValidatingAdmissionPolicy{}\n\t\t\t},\n\t\t\tfunc() *admissionregistrationv1alpha1.ValidatingAdmissionPolicyList {\n\t\t\t\treturn &admissionregistrationv1alpha1.ValidatingAdmissionPolicyList{}\n\t\t\t},\n\t\t\tgentype.PrefersProtobuf[*admissionregistrationv1alpha1.ValidatingAdmissionPolicy](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/validatingadmissionpolicybinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcontext \"context\"\n\n\tadmissionregistrationv1alpha1 \"k8s.io/api/admissionregistration/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsadmissionregistrationv1alpha1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// ValidatingAdmissionPolicyBindingsGetter has a method to return a ValidatingAdmissionPolicyBindingInterface.\n// A group's client should implement this interface.\ntype ValidatingAdmissionPolicyBindingsGetter interface {\n\tValidatingAdmissionPolicyBindings() ValidatingAdmissionPolicyBindingInterface\n}\n\n// ValidatingAdmissionPolicyBindingInterface has methods to work with ValidatingAdmissionPolicyBinding resources.\ntype ValidatingAdmissionPolicyBindingInterface interface {\n\tCreate(ctx context.Context, validatingAdmissionPolicyBinding *admissionregistrationv1alpha1.ValidatingAdmissionPolicyBinding, opts v1.CreateOptions) (*admissionregistrationv1alpha1.ValidatingAdmissionPolicyBinding, error)\n\tUpdate(ctx context.Context, validatingAdmissionPolicyBinding *admissionregistrationv1alpha1.ValidatingAdmissionPolicyBinding, opts v1.UpdateOptions) (*admissionregistrationv1alpha1.ValidatingAdmissionPolicyBinding, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*admissionregistrationv1alpha1.ValidatingAdmissionPolicyBinding, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*admissionregistrationv1alpha1.ValidatingAdmissionPolicyBindingList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *admissionregistrationv1alpha1.ValidatingAdmissionPolicyBinding, err error)\n\tApply(ctx context.Context, validatingAdmissionPolicyBinding *applyconfigurationsadmissionregistrationv1alpha1.ValidatingAdmissionPolicyBindingApplyConfiguration, opts v1.ApplyOptions) (result *admissionregistrationv1alpha1.ValidatingAdmissionPolicyBinding, err error)\n\tValidatingAdmissionPolicyBindingExpansion\n}\n\n// validatingAdmissionPolicyBindings implements ValidatingAdmissionPolicyBindingInterface\ntype validatingAdmissionPolicyBindings struct {\n\t*gentype.ClientWithListAndApply[*admissionregistrationv1alpha1.ValidatingAdmissionPolicyBinding, *admissionregistrationv1alpha1.ValidatingAdmissionPolicyBindingList, *applyconfigurationsadmissionregistrationv1alpha1.ValidatingAdmissionPolicyBindingApplyConfiguration]\n}\n\n// newValidatingAdmissionPolicyBindings returns a ValidatingAdmissionPolicyBindings\nfunc newValidatingAdmissionPolicyBindings(c *AdmissionregistrationV1alpha1Client) *validatingAdmissionPolicyBindings {\n\treturn &validatingAdmissionPolicyBindings{\n\t\tgentype.NewClientWithListAndApply[*admissionregistrationv1alpha1.ValidatingAdmissionPolicyBinding, *admissionregistrationv1alpha1.ValidatingAdmissionPolicyBindingList, *applyconfigurationsadmissionregistrationv1alpha1.ValidatingAdmissionPolicyBindingApplyConfiguration](\n\t\t\t\"validatingadmissionpolicybindings\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *admissionregistrationv1alpha1.ValidatingAdmissionPolicyBinding {\n\t\t\t\treturn &admissionregistrationv1alpha1.ValidatingAdmissionPolicyBinding{}\n\t\t\t},\n\t\t\tfunc() *admissionregistrationv1alpha1.ValidatingAdmissionPolicyBindingList {\n\t\t\t\treturn &admissionregistrationv1alpha1.ValidatingAdmissionPolicyBindingList{}\n\t\t\t},\n\t\t\tgentype.PrefersProtobuf[*admissionregistrationv1alpha1.ValidatingAdmissionPolicyBinding](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/admissionregistration_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\thttp \"net/http\"\n\n\tadmissionregistrationv1beta1 \"k8s.io/api/admissionregistration/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype AdmissionregistrationV1beta1Interface interface {\n\tRESTClient() rest.Interface\n\tMutatingWebhookConfigurationsGetter\n\tValidatingAdmissionPoliciesGetter\n\tValidatingAdmissionPolicyBindingsGetter\n\tValidatingWebhookConfigurationsGetter\n}\n\n// AdmissionregistrationV1beta1Client is used to interact with features provided by the admissionregistration.k8s.io group.\ntype AdmissionregistrationV1beta1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *AdmissionregistrationV1beta1Client) MutatingWebhookConfigurations() MutatingWebhookConfigurationInterface {\n\treturn newMutatingWebhookConfigurations(c)\n}\n\nfunc (c *AdmissionregistrationV1beta1Client) ValidatingAdmissionPolicies() ValidatingAdmissionPolicyInterface {\n\treturn newValidatingAdmissionPolicies(c)\n}\n\nfunc (c *AdmissionregistrationV1beta1Client) ValidatingAdmissionPolicyBindings() ValidatingAdmissionPolicyBindingInterface {\n\treturn newValidatingAdmissionPolicyBindings(c)\n}\n\nfunc (c *AdmissionregistrationV1beta1Client) ValidatingWebhookConfigurations() ValidatingWebhookConfigurationInterface {\n\treturn newValidatingWebhookConfigurations(c)\n}\n\n// NewForConfig creates a new AdmissionregistrationV1beta1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*AdmissionregistrationV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new AdmissionregistrationV1beta1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*AdmissionregistrationV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &AdmissionregistrationV1beta1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new AdmissionregistrationV1beta1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *AdmissionregistrationV1beta1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new AdmissionregistrationV1beta1Client for the given RESTClient.\nfunc New(c rest.Interface) *AdmissionregistrationV1beta1Client {\n\treturn &AdmissionregistrationV1beta1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := admissionregistrationv1beta1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *AdmissionregistrationV1beta1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1beta1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake/fake_admissionregistration_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeAdmissionregistrationV1beta1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeAdmissionregistrationV1beta1) MutatingWebhookConfigurations() v1beta1.MutatingWebhookConfigurationInterface {\n\treturn newFakeMutatingWebhookConfigurations(c)\n}\n\nfunc (c *FakeAdmissionregistrationV1beta1) ValidatingAdmissionPolicies() v1beta1.ValidatingAdmissionPolicyInterface {\n\treturn newFakeValidatingAdmissionPolicies(c)\n}\n\nfunc (c *FakeAdmissionregistrationV1beta1) ValidatingAdmissionPolicyBindings() v1beta1.ValidatingAdmissionPolicyBindingInterface {\n\treturn newFakeValidatingAdmissionPolicyBindings(c)\n}\n\nfunc (c *FakeAdmissionregistrationV1beta1) ValidatingWebhookConfigurations() v1beta1.ValidatingWebhookConfigurationInterface {\n\treturn newFakeValidatingWebhookConfigurations(c)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeAdmissionregistrationV1beta1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake/fake_mutatingwebhookconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/admissionregistration/v1beta1\"\n\tadmissionregistrationv1beta1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedadmissionregistrationv1beta1 \"k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1\"\n)\n\n// fakeMutatingWebhookConfigurations implements MutatingWebhookConfigurationInterface\ntype fakeMutatingWebhookConfigurations struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta1.MutatingWebhookConfiguration, *v1beta1.MutatingWebhookConfigurationList, *admissionregistrationv1beta1.MutatingWebhookConfigurationApplyConfiguration]\n\tFake *FakeAdmissionregistrationV1beta1\n}\n\nfunc newFakeMutatingWebhookConfigurations(fake *FakeAdmissionregistrationV1beta1) typedadmissionregistrationv1beta1.MutatingWebhookConfigurationInterface {\n\treturn &fakeMutatingWebhookConfigurations{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta1.MutatingWebhookConfiguration, *v1beta1.MutatingWebhookConfigurationList, *admissionregistrationv1beta1.MutatingWebhookConfigurationApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"mutatingwebhookconfigurations\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"MutatingWebhookConfiguration\"),\n\t\t\tfunc() *v1beta1.MutatingWebhookConfiguration { return &v1beta1.MutatingWebhookConfiguration{} },\n\t\t\tfunc() *v1beta1.MutatingWebhookConfigurationList { return &v1beta1.MutatingWebhookConfigurationList{} },\n\t\t\tfunc(dst, src *v1beta1.MutatingWebhookConfigurationList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta1.MutatingWebhookConfigurationList) []*v1beta1.MutatingWebhookConfiguration {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1beta1.MutatingWebhookConfigurationList, items []*v1beta1.MutatingWebhookConfiguration) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake/fake_validatingadmissionpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/admissionregistration/v1beta1\"\n\tadmissionregistrationv1beta1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedadmissionregistrationv1beta1 \"k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1\"\n)\n\n// fakeValidatingAdmissionPolicies implements ValidatingAdmissionPolicyInterface\ntype fakeValidatingAdmissionPolicies struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta1.ValidatingAdmissionPolicy, *v1beta1.ValidatingAdmissionPolicyList, *admissionregistrationv1beta1.ValidatingAdmissionPolicyApplyConfiguration]\n\tFake *FakeAdmissionregistrationV1beta1\n}\n\nfunc newFakeValidatingAdmissionPolicies(fake *FakeAdmissionregistrationV1beta1) typedadmissionregistrationv1beta1.ValidatingAdmissionPolicyInterface {\n\treturn &fakeValidatingAdmissionPolicies{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta1.ValidatingAdmissionPolicy, *v1beta1.ValidatingAdmissionPolicyList, *admissionregistrationv1beta1.ValidatingAdmissionPolicyApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"validatingadmissionpolicies\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"ValidatingAdmissionPolicy\"),\n\t\t\tfunc() *v1beta1.ValidatingAdmissionPolicy { return &v1beta1.ValidatingAdmissionPolicy{} },\n\t\t\tfunc() *v1beta1.ValidatingAdmissionPolicyList { return &v1beta1.ValidatingAdmissionPolicyList{} },\n\t\t\tfunc(dst, src *v1beta1.ValidatingAdmissionPolicyList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta1.ValidatingAdmissionPolicyList) []*v1beta1.ValidatingAdmissionPolicy {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1beta1.ValidatingAdmissionPolicyList, items []*v1beta1.ValidatingAdmissionPolicy) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake/fake_validatingadmissionpolicybinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/admissionregistration/v1beta1\"\n\tadmissionregistrationv1beta1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedadmissionregistrationv1beta1 \"k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1\"\n)\n\n// fakeValidatingAdmissionPolicyBindings implements ValidatingAdmissionPolicyBindingInterface\ntype fakeValidatingAdmissionPolicyBindings struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta1.ValidatingAdmissionPolicyBinding, *v1beta1.ValidatingAdmissionPolicyBindingList, *admissionregistrationv1beta1.ValidatingAdmissionPolicyBindingApplyConfiguration]\n\tFake *FakeAdmissionregistrationV1beta1\n}\n\nfunc newFakeValidatingAdmissionPolicyBindings(fake *FakeAdmissionregistrationV1beta1) typedadmissionregistrationv1beta1.ValidatingAdmissionPolicyBindingInterface {\n\treturn &fakeValidatingAdmissionPolicyBindings{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta1.ValidatingAdmissionPolicyBinding, *v1beta1.ValidatingAdmissionPolicyBindingList, *admissionregistrationv1beta1.ValidatingAdmissionPolicyBindingApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"validatingadmissionpolicybindings\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"ValidatingAdmissionPolicyBinding\"),\n\t\t\tfunc() *v1beta1.ValidatingAdmissionPolicyBinding { return &v1beta1.ValidatingAdmissionPolicyBinding{} },\n\t\t\tfunc() *v1beta1.ValidatingAdmissionPolicyBindingList {\n\t\t\t\treturn &v1beta1.ValidatingAdmissionPolicyBindingList{}\n\t\t\t},\n\t\t\tfunc(dst, src *v1beta1.ValidatingAdmissionPolicyBindingList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta1.ValidatingAdmissionPolicyBindingList) []*v1beta1.ValidatingAdmissionPolicyBinding {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1beta1.ValidatingAdmissionPolicyBindingList, items []*v1beta1.ValidatingAdmissionPolicyBinding) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake/fake_validatingwebhookconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/admissionregistration/v1beta1\"\n\tadmissionregistrationv1beta1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedadmissionregistrationv1beta1 \"k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1\"\n)\n\n// fakeValidatingWebhookConfigurations implements ValidatingWebhookConfigurationInterface\ntype fakeValidatingWebhookConfigurations struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta1.ValidatingWebhookConfiguration, *v1beta1.ValidatingWebhookConfigurationList, *admissionregistrationv1beta1.ValidatingWebhookConfigurationApplyConfiguration]\n\tFake *FakeAdmissionregistrationV1beta1\n}\n\nfunc newFakeValidatingWebhookConfigurations(fake *FakeAdmissionregistrationV1beta1) typedadmissionregistrationv1beta1.ValidatingWebhookConfigurationInterface {\n\treturn &fakeValidatingWebhookConfigurations{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta1.ValidatingWebhookConfiguration, *v1beta1.ValidatingWebhookConfigurationList, *admissionregistrationv1beta1.ValidatingWebhookConfigurationApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"validatingwebhookconfigurations\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"ValidatingWebhookConfiguration\"),\n\t\t\tfunc() *v1beta1.ValidatingWebhookConfiguration { return &v1beta1.ValidatingWebhookConfiguration{} },\n\t\t\tfunc() *v1beta1.ValidatingWebhookConfigurationList {\n\t\t\t\treturn &v1beta1.ValidatingWebhookConfigurationList{}\n\t\t\t},\n\t\t\tfunc(dst, src *v1beta1.ValidatingWebhookConfigurationList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta1.ValidatingWebhookConfigurationList) []*v1beta1.ValidatingWebhookConfiguration {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1beta1.ValidatingWebhookConfigurationList, items []*v1beta1.ValidatingWebhookConfiguration) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\ntype MutatingWebhookConfigurationExpansion interface{}\n\ntype ValidatingAdmissionPolicyExpansion interface{}\n\ntype ValidatingAdmissionPolicyBindingExpansion interface{}\n\ntype ValidatingWebhookConfigurationExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/mutatingwebhookconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\tadmissionregistrationv1beta1 \"k8s.io/api/admissionregistration/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsadmissionregistrationv1beta1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// MutatingWebhookConfigurationsGetter has a method to return a MutatingWebhookConfigurationInterface.\n// A group's client should implement this interface.\ntype MutatingWebhookConfigurationsGetter interface {\n\tMutatingWebhookConfigurations() MutatingWebhookConfigurationInterface\n}\n\n// MutatingWebhookConfigurationInterface has methods to work with MutatingWebhookConfiguration resources.\ntype MutatingWebhookConfigurationInterface interface {\n\tCreate(ctx context.Context, mutatingWebhookConfiguration *admissionregistrationv1beta1.MutatingWebhookConfiguration, opts v1.CreateOptions) (*admissionregistrationv1beta1.MutatingWebhookConfiguration, error)\n\tUpdate(ctx context.Context, mutatingWebhookConfiguration *admissionregistrationv1beta1.MutatingWebhookConfiguration, opts v1.UpdateOptions) (*admissionregistrationv1beta1.MutatingWebhookConfiguration, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*admissionregistrationv1beta1.MutatingWebhookConfiguration, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*admissionregistrationv1beta1.MutatingWebhookConfigurationList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *admissionregistrationv1beta1.MutatingWebhookConfiguration, err error)\n\tApply(ctx context.Context, mutatingWebhookConfiguration *applyconfigurationsadmissionregistrationv1beta1.MutatingWebhookConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *admissionregistrationv1beta1.MutatingWebhookConfiguration, err error)\n\tMutatingWebhookConfigurationExpansion\n}\n\n// mutatingWebhookConfigurations implements MutatingWebhookConfigurationInterface\ntype mutatingWebhookConfigurations struct {\n\t*gentype.ClientWithListAndApply[*admissionregistrationv1beta1.MutatingWebhookConfiguration, *admissionregistrationv1beta1.MutatingWebhookConfigurationList, *applyconfigurationsadmissionregistrationv1beta1.MutatingWebhookConfigurationApplyConfiguration]\n}\n\n// newMutatingWebhookConfigurations returns a MutatingWebhookConfigurations\nfunc newMutatingWebhookConfigurations(c *AdmissionregistrationV1beta1Client) *mutatingWebhookConfigurations {\n\treturn &mutatingWebhookConfigurations{\n\t\tgentype.NewClientWithListAndApply[*admissionregistrationv1beta1.MutatingWebhookConfiguration, *admissionregistrationv1beta1.MutatingWebhookConfigurationList, *applyconfigurationsadmissionregistrationv1beta1.MutatingWebhookConfigurationApplyConfiguration](\n\t\t\t\"mutatingwebhookconfigurations\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *admissionregistrationv1beta1.MutatingWebhookConfiguration {\n\t\t\t\treturn &admissionregistrationv1beta1.MutatingWebhookConfiguration{}\n\t\t\t},\n\t\t\tfunc() *admissionregistrationv1beta1.MutatingWebhookConfigurationList {\n\t\t\t\treturn &admissionregistrationv1beta1.MutatingWebhookConfigurationList{}\n\t\t\t},\n\t\t\tgentype.PrefersProtobuf[*admissionregistrationv1beta1.MutatingWebhookConfiguration](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/validatingadmissionpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\tadmissionregistrationv1beta1 \"k8s.io/api/admissionregistration/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsadmissionregistrationv1beta1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// ValidatingAdmissionPoliciesGetter has a method to return a ValidatingAdmissionPolicyInterface.\n// A group's client should implement this interface.\ntype ValidatingAdmissionPoliciesGetter interface {\n\tValidatingAdmissionPolicies() ValidatingAdmissionPolicyInterface\n}\n\n// ValidatingAdmissionPolicyInterface has methods to work with ValidatingAdmissionPolicy resources.\ntype ValidatingAdmissionPolicyInterface interface {\n\tCreate(ctx context.Context, validatingAdmissionPolicy *admissionregistrationv1beta1.ValidatingAdmissionPolicy, opts v1.CreateOptions) (*admissionregistrationv1beta1.ValidatingAdmissionPolicy, error)\n\tUpdate(ctx context.Context, validatingAdmissionPolicy *admissionregistrationv1beta1.ValidatingAdmissionPolicy, opts v1.UpdateOptions) (*admissionregistrationv1beta1.ValidatingAdmissionPolicy, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, validatingAdmissionPolicy *admissionregistrationv1beta1.ValidatingAdmissionPolicy, opts v1.UpdateOptions) (*admissionregistrationv1beta1.ValidatingAdmissionPolicy, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*admissionregistrationv1beta1.ValidatingAdmissionPolicy, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*admissionregistrationv1beta1.ValidatingAdmissionPolicyList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *admissionregistrationv1beta1.ValidatingAdmissionPolicy, err error)\n\tApply(ctx context.Context, validatingAdmissionPolicy *applyconfigurationsadmissionregistrationv1beta1.ValidatingAdmissionPolicyApplyConfiguration, opts v1.ApplyOptions) (result *admissionregistrationv1beta1.ValidatingAdmissionPolicy, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, validatingAdmissionPolicy *applyconfigurationsadmissionregistrationv1beta1.ValidatingAdmissionPolicyApplyConfiguration, opts v1.ApplyOptions) (result *admissionregistrationv1beta1.ValidatingAdmissionPolicy, err error)\n\tValidatingAdmissionPolicyExpansion\n}\n\n// validatingAdmissionPolicies implements ValidatingAdmissionPolicyInterface\ntype validatingAdmissionPolicies struct {\n\t*gentype.ClientWithListAndApply[*admissionregistrationv1beta1.ValidatingAdmissionPolicy, *admissionregistrationv1beta1.ValidatingAdmissionPolicyList, *applyconfigurationsadmissionregistrationv1beta1.ValidatingAdmissionPolicyApplyConfiguration]\n}\n\n// newValidatingAdmissionPolicies returns a ValidatingAdmissionPolicies\nfunc newValidatingAdmissionPolicies(c *AdmissionregistrationV1beta1Client) *validatingAdmissionPolicies {\n\treturn &validatingAdmissionPolicies{\n\t\tgentype.NewClientWithListAndApply[*admissionregistrationv1beta1.ValidatingAdmissionPolicy, *admissionregistrationv1beta1.ValidatingAdmissionPolicyList, *applyconfigurationsadmissionregistrationv1beta1.ValidatingAdmissionPolicyApplyConfiguration](\n\t\t\t\"validatingadmissionpolicies\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *admissionregistrationv1beta1.ValidatingAdmissionPolicy {\n\t\t\t\treturn &admissionregistrationv1beta1.ValidatingAdmissionPolicy{}\n\t\t\t},\n\t\t\tfunc() *admissionregistrationv1beta1.ValidatingAdmissionPolicyList {\n\t\t\t\treturn &admissionregistrationv1beta1.ValidatingAdmissionPolicyList{}\n\t\t\t},\n\t\t\tgentype.PrefersProtobuf[*admissionregistrationv1beta1.ValidatingAdmissionPolicy](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/validatingadmissionpolicybinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\tadmissionregistrationv1beta1 \"k8s.io/api/admissionregistration/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsadmissionregistrationv1beta1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// ValidatingAdmissionPolicyBindingsGetter has a method to return a ValidatingAdmissionPolicyBindingInterface.\n// A group's client should implement this interface.\ntype ValidatingAdmissionPolicyBindingsGetter interface {\n\tValidatingAdmissionPolicyBindings() ValidatingAdmissionPolicyBindingInterface\n}\n\n// ValidatingAdmissionPolicyBindingInterface has methods to work with ValidatingAdmissionPolicyBinding resources.\ntype ValidatingAdmissionPolicyBindingInterface interface {\n\tCreate(ctx context.Context, validatingAdmissionPolicyBinding *admissionregistrationv1beta1.ValidatingAdmissionPolicyBinding, opts v1.CreateOptions) (*admissionregistrationv1beta1.ValidatingAdmissionPolicyBinding, error)\n\tUpdate(ctx context.Context, validatingAdmissionPolicyBinding *admissionregistrationv1beta1.ValidatingAdmissionPolicyBinding, opts v1.UpdateOptions) (*admissionregistrationv1beta1.ValidatingAdmissionPolicyBinding, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*admissionregistrationv1beta1.ValidatingAdmissionPolicyBinding, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*admissionregistrationv1beta1.ValidatingAdmissionPolicyBindingList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *admissionregistrationv1beta1.ValidatingAdmissionPolicyBinding, err error)\n\tApply(ctx context.Context, validatingAdmissionPolicyBinding *applyconfigurationsadmissionregistrationv1beta1.ValidatingAdmissionPolicyBindingApplyConfiguration, opts v1.ApplyOptions) (result *admissionregistrationv1beta1.ValidatingAdmissionPolicyBinding, err error)\n\tValidatingAdmissionPolicyBindingExpansion\n}\n\n// validatingAdmissionPolicyBindings implements ValidatingAdmissionPolicyBindingInterface\ntype validatingAdmissionPolicyBindings struct {\n\t*gentype.ClientWithListAndApply[*admissionregistrationv1beta1.ValidatingAdmissionPolicyBinding, *admissionregistrationv1beta1.ValidatingAdmissionPolicyBindingList, *applyconfigurationsadmissionregistrationv1beta1.ValidatingAdmissionPolicyBindingApplyConfiguration]\n}\n\n// newValidatingAdmissionPolicyBindings returns a ValidatingAdmissionPolicyBindings\nfunc newValidatingAdmissionPolicyBindings(c *AdmissionregistrationV1beta1Client) *validatingAdmissionPolicyBindings {\n\treturn &validatingAdmissionPolicyBindings{\n\t\tgentype.NewClientWithListAndApply[*admissionregistrationv1beta1.ValidatingAdmissionPolicyBinding, *admissionregistrationv1beta1.ValidatingAdmissionPolicyBindingList, *applyconfigurationsadmissionregistrationv1beta1.ValidatingAdmissionPolicyBindingApplyConfiguration](\n\t\t\t\"validatingadmissionpolicybindings\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *admissionregistrationv1beta1.ValidatingAdmissionPolicyBinding {\n\t\t\t\treturn &admissionregistrationv1beta1.ValidatingAdmissionPolicyBinding{}\n\t\t\t},\n\t\t\tfunc() *admissionregistrationv1beta1.ValidatingAdmissionPolicyBindingList {\n\t\t\t\treturn &admissionregistrationv1beta1.ValidatingAdmissionPolicyBindingList{}\n\t\t\t},\n\t\t\tgentype.PrefersProtobuf[*admissionregistrationv1beta1.ValidatingAdmissionPolicyBinding](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/validatingwebhookconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\tadmissionregistrationv1beta1 \"k8s.io/api/admissionregistration/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsadmissionregistrationv1beta1 \"k8s.io/client-go/applyconfigurations/admissionregistration/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// ValidatingWebhookConfigurationsGetter has a method to return a ValidatingWebhookConfigurationInterface.\n// A group's client should implement this interface.\ntype ValidatingWebhookConfigurationsGetter interface {\n\tValidatingWebhookConfigurations() ValidatingWebhookConfigurationInterface\n}\n\n// ValidatingWebhookConfigurationInterface has methods to work with ValidatingWebhookConfiguration resources.\ntype ValidatingWebhookConfigurationInterface interface {\n\tCreate(ctx context.Context, validatingWebhookConfiguration *admissionregistrationv1beta1.ValidatingWebhookConfiguration, opts v1.CreateOptions) (*admissionregistrationv1beta1.ValidatingWebhookConfiguration, error)\n\tUpdate(ctx context.Context, validatingWebhookConfiguration *admissionregistrationv1beta1.ValidatingWebhookConfiguration, opts v1.UpdateOptions) (*admissionregistrationv1beta1.ValidatingWebhookConfiguration, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*admissionregistrationv1beta1.ValidatingWebhookConfiguration, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*admissionregistrationv1beta1.ValidatingWebhookConfigurationList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *admissionregistrationv1beta1.ValidatingWebhookConfiguration, err error)\n\tApply(ctx context.Context, validatingWebhookConfiguration *applyconfigurationsadmissionregistrationv1beta1.ValidatingWebhookConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *admissionregistrationv1beta1.ValidatingWebhookConfiguration, err error)\n\tValidatingWebhookConfigurationExpansion\n}\n\n// validatingWebhookConfigurations implements ValidatingWebhookConfigurationInterface\ntype validatingWebhookConfigurations struct {\n\t*gentype.ClientWithListAndApply[*admissionregistrationv1beta1.ValidatingWebhookConfiguration, *admissionregistrationv1beta1.ValidatingWebhookConfigurationList, *applyconfigurationsadmissionregistrationv1beta1.ValidatingWebhookConfigurationApplyConfiguration]\n}\n\n// newValidatingWebhookConfigurations returns a ValidatingWebhookConfigurations\nfunc newValidatingWebhookConfigurations(c *AdmissionregistrationV1beta1Client) *validatingWebhookConfigurations {\n\treturn &validatingWebhookConfigurations{\n\t\tgentype.NewClientWithListAndApply[*admissionregistrationv1beta1.ValidatingWebhookConfiguration, *admissionregistrationv1beta1.ValidatingWebhookConfigurationList, *applyconfigurationsadmissionregistrationv1beta1.ValidatingWebhookConfigurationApplyConfiguration](\n\t\t\t\"validatingwebhookconfigurations\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *admissionregistrationv1beta1.ValidatingWebhookConfiguration {\n\t\t\t\treturn &admissionregistrationv1beta1.ValidatingWebhookConfiguration{}\n\t\t\t},\n\t\t\tfunc() *admissionregistrationv1beta1.ValidatingWebhookConfigurationList {\n\t\t\t\treturn &admissionregistrationv1beta1.ValidatingWebhookConfigurationList{}\n\t\t\t},\n\t\t\tgentype.PrefersProtobuf[*admissionregistrationv1beta1.ValidatingWebhookConfiguration](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apiserverinternal/v1alpha1/apiserverinternal_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\thttp \"net/http\"\n\n\tapiserverinternalv1alpha1 \"k8s.io/api/apiserverinternal/v1alpha1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype InternalV1alpha1Interface interface {\n\tRESTClient() rest.Interface\n\tStorageVersionsGetter\n}\n\n// InternalV1alpha1Client is used to interact with features provided by the internal.apiserver.k8s.io group.\ntype InternalV1alpha1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *InternalV1alpha1Client) StorageVersions() StorageVersionInterface {\n\treturn newStorageVersions(c)\n}\n\n// NewForConfig creates a new InternalV1alpha1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*InternalV1alpha1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new InternalV1alpha1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*InternalV1alpha1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &InternalV1alpha1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new InternalV1alpha1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *InternalV1alpha1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new InternalV1alpha1Client for the given RESTClient.\nfunc New(c rest.Interface) *InternalV1alpha1Client {\n\treturn &InternalV1alpha1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := apiserverinternalv1alpha1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *InternalV1alpha1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apiserverinternal/v1alpha1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1alpha1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apiserverinternal/v1alpha1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apiserverinternal/v1alpha1/fake/fake_apiserverinternal_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha1 \"k8s.io/client-go/kubernetes/typed/apiserverinternal/v1alpha1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeInternalV1alpha1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeInternalV1alpha1) StorageVersions() v1alpha1.StorageVersionInterface {\n\treturn newFakeStorageVersions(c)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeInternalV1alpha1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apiserverinternal/v1alpha1/fake/fake_storageversion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha1 \"k8s.io/api/apiserverinternal/v1alpha1\"\n\tapiserverinternalv1alpha1 \"k8s.io/client-go/applyconfigurations/apiserverinternal/v1alpha1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedapiserverinternalv1alpha1 \"k8s.io/client-go/kubernetes/typed/apiserverinternal/v1alpha1\"\n)\n\n// fakeStorageVersions implements StorageVersionInterface\ntype fakeStorageVersions struct {\n\t*gentype.FakeClientWithListAndApply[*v1alpha1.StorageVersion, *v1alpha1.StorageVersionList, *apiserverinternalv1alpha1.StorageVersionApplyConfiguration]\n\tFake *FakeInternalV1alpha1\n}\n\nfunc newFakeStorageVersions(fake *FakeInternalV1alpha1) typedapiserverinternalv1alpha1.StorageVersionInterface {\n\treturn &fakeStorageVersions{\n\t\tgentype.NewFakeClientWithListAndApply[*v1alpha1.StorageVersion, *v1alpha1.StorageVersionList, *apiserverinternalv1alpha1.StorageVersionApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1alpha1.SchemeGroupVersion.WithResource(\"storageversions\"),\n\t\t\tv1alpha1.SchemeGroupVersion.WithKind(\"StorageVersion\"),\n\t\t\tfunc() *v1alpha1.StorageVersion { return &v1alpha1.StorageVersion{} },\n\t\t\tfunc() *v1alpha1.StorageVersionList { return &v1alpha1.StorageVersionList{} },\n\t\t\tfunc(dst, src *v1alpha1.StorageVersionList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1alpha1.StorageVersionList) []*v1alpha1.StorageVersion {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1alpha1.StorageVersionList, items []*v1alpha1.StorageVersion) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apiserverinternal/v1alpha1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\ntype StorageVersionExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apiserverinternal/v1alpha1/storageversion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcontext \"context\"\n\n\tapiserverinternalv1alpha1 \"k8s.io/api/apiserverinternal/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsapiserverinternalv1alpha1 \"k8s.io/client-go/applyconfigurations/apiserverinternal/v1alpha1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// StorageVersionsGetter has a method to return a StorageVersionInterface.\n// A group's client should implement this interface.\ntype StorageVersionsGetter interface {\n\tStorageVersions() StorageVersionInterface\n}\n\n// StorageVersionInterface has methods to work with StorageVersion resources.\ntype StorageVersionInterface interface {\n\tCreate(ctx context.Context, storageVersion *apiserverinternalv1alpha1.StorageVersion, opts v1.CreateOptions) (*apiserverinternalv1alpha1.StorageVersion, error)\n\tUpdate(ctx context.Context, storageVersion *apiserverinternalv1alpha1.StorageVersion, opts v1.UpdateOptions) (*apiserverinternalv1alpha1.StorageVersion, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, storageVersion *apiserverinternalv1alpha1.StorageVersion, opts v1.UpdateOptions) (*apiserverinternalv1alpha1.StorageVersion, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*apiserverinternalv1alpha1.StorageVersion, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*apiserverinternalv1alpha1.StorageVersionList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *apiserverinternalv1alpha1.StorageVersion, err error)\n\tApply(ctx context.Context, storageVersion *applyconfigurationsapiserverinternalv1alpha1.StorageVersionApplyConfiguration, opts v1.ApplyOptions) (result *apiserverinternalv1alpha1.StorageVersion, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, storageVersion *applyconfigurationsapiserverinternalv1alpha1.StorageVersionApplyConfiguration, opts v1.ApplyOptions) (result *apiserverinternalv1alpha1.StorageVersion, err error)\n\tStorageVersionExpansion\n}\n\n// storageVersions implements StorageVersionInterface\ntype storageVersions struct {\n\t*gentype.ClientWithListAndApply[*apiserverinternalv1alpha1.StorageVersion, *apiserverinternalv1alpha1.StorageVersionList, *applyconfigurationsapiserverinternalv1alpha1.StorageVersionApplyConfiguration]\n}\n\n// newStorageVersions returns a StorageVersions\nfunc newStorageVersions(c *InternalV1alpha1Client) *storageVersions {\n\treturn &storageVersions{\n\t\tgentype.NewClientWithListAndApply[*apiserverinternalv1alpha1.StorageVersion, *apiserverinternalv1alpha1.StorageVersionList, *applyconfigurationsapiserverinternalv1alpha1.StorageVersionApplyConfiguration](\n\t\t\t\"storageversions\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *apiserverinternalv1alpha1.StorageVersion { return &apiserverinternalv1alpha1.StorageVersion{} },\n\t\t\tfunc() *apiserverinternalv1alpha1.StorageVersionList {\n\t\t\t\treturn &apiserverinternalv1alpha1.StorageVersionList{}\n\t\t\t},\n\t\t\tgentype.PrefersProtobuf[*apiserverinternalv1alpha1.StorageVersion](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1/apps_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\thttp \"net/http\"\n\n\tappsv1 \"k8s.io/api/apps/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype AppsV1Interface interface {\n\tRESTClient() rest.Interface\n\tControllerRevisionsGetter\n\tDaemonSetsGetter\n\tDeploymentsGetter\n\tReplicaSetsGetter\n\tStatefulSetsGetter\n}\n\n// AppsV1Client is used to interact with features provided by the apps group.\ntype AppsV1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *AppsV1Client) ControllerRevisions(namespace string) ControllerRevisionInterface {\n\treturn newControllerRevisions(c, namespace)\n}\n\nfunc (c *AppsV1Client) DaemonSets(namespace string) DaemonSetInterface {\n\treturn newDaemonSets(c, namespace)\n}\n\nfunc (c *AppsV1Client) Deployments(namespace string) DeploymentInterface {\n\treturn newDeployments(c, namespace)\n}\n\nfunc (c *AppsV1Client) ReplicaSets(namespace string) ReplicaSetInterface {\n\treturn newReplicaSets(c, namespace)\n}\n\nfunc (c *AppsV1Client) StatefulSets(namespace string) StatefulSetInterface {\n\treturn newStatefulSets(c, namespace)\n}\n\n// NewForConfig creates a new AppsV1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*AppsV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new AppsV1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*AppsV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &AppsV1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new AppsV1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *AppsV1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new AppsV1Client for the given RESTClient.\nfunc New(c rest.Interface) *AppsV1Client {\n\treturn &AppsV1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := appsv1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *AppsV1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1/controllerrevision.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tappsv1 \"k8s.io/api/apps/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsappsv1 \"k8s.io/client-go/applyconfigurations/apps/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// ControllerRevisionsGetter has a method to return a ControllerRevisionInterface.\n// A group's client should implement this interface.\ntype ControllerRevisionsGetter interface {\n\tControllerRevisions(namespace string) ControllerRevisionInterface\n}\n\n// ControllerRevisionInterface has methods to work with ControllerRevision resources.\ntype ControllerRevisionInterface interface {\n\tCreate(ctx context.Context, controllerRevision *appsv1.ControllerRevision, opts metav1.CreateOptions) (*appsv1.ControllerRevision, error)\n\tUpdate(ctx context.Context, controllerRevision *appsv1.ControllerRevision, opts metav1.UpdateOptions) (*appsv1.ControllerRevision, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*appsv1.ControllerRevision, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*appsv1.ControllerRevisionList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *appsv1.ControllerRevision, err error)\n\tApply(ctx context.Context, controllerRevision *applyconfigurationsappsv1.ControllerRevisionApplyConfiguration, opts metav1.ApplyOptions) (result *appsv1.ControllerRevision, err error)\n\tControllerRevisionExpansion\n}\n\n// controllerRevisions implements ControllerRevisionInterface\ntype controllerRevisions struct {\n\t*gentype.ClientWithListAndApply[*appsv1.ControllerRevision, *appsv1.ControllerRevisionList, *applyconfigurationsappsv1.ControllerRevisionApplyConfiguration]\n}\n\n// newControllerRevisions returns a ControllerRevisions\nfunc newControllerRevisions(c *AppsV1Client, namespace string) *controllerRevisions {\n\treturn &controllerRevisions{\n\t\tgentype.NewClientWithListAndApply[*appsv1.ControllerRevision, *appsv1.ControllerRevisionList, *applyconfigurationsappsv1.ControllerRevisionApplyConfiguration](\n\t\t\t\"controllerrevisions\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *appsv1.ControllerRevision { return &appsv1.ControllerRevision{} },\n\t\t\tfunc() *appsv1.ControllerRevisionList { return &appsv1.ControllerRevisionList{} },\n\t\t\tgentype.PrefersProtobuf[*appsv1.ControllerRevision](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1/daemonset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tappsv1 \"k8s.io/api/apps/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsappsv1 \"k8s.io/client-go/applyconfigurations/apps/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// DaemonSetsGetter has a method to return a DaemonSetInterface.\n// A group's client should implement this interface.\ntype DaemonSetsGetter interface {\n\tDaemonSets(namespace string) DaemonSetInterface\n}\n\n// DaemonSetInterface has methods to work with DaemonSet resources.\ntype DaemonSetInterface interface {\n\tCreate(ctx context.Context, daemonSet *appsv1.DaemonSet, opts metav1.CreateOptions) (*appsv1.DaemonSet, error)\n\tUpdate(ctx context.Context, daemonSet *appsv1.DaemonSet, opts metav1.UpdateOptions) (*appsv1.DaemonSet, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, daemonSet *appsv1.DaemonSet, opts metav1.UpdateOptions) (*appsv1.DaemonSet, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*appsv1.DaemonSet, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*appsv1.DaemonSetList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *appsv1.DaemonSet, err error)\n\tApply(ctx context.Context, daemonSet *applyconfigurationsappsv1.DaemonSetApplyConfiguration, opts metav1.ApplyOptions) (result *appsv1.DaemonSet, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, daemonSet *applyconfigurationsappsv1.DaemonSetApplyConfiguration, opts metav1.ApplyOptions) (result *appsv1.DaemonSet, err error)\n\tDaemonSetExpansion\n}\n\n// daemonSets implements DaemonSetInterface\ntype daemonSets struct {\n\t*gentype.ClientWithListAndApply[*appsv1.DaemonSet, *appsv1.DaemonSetList, *applyconfigurationsappsv1.DaemonSetApplyConfiguration]\n}\n\n// newDaemonSets returns a DaemonSets\nfunc newDaemonSets(c *AppsV1Client, namespace string) *daemonSets {\n\treturn &daemonSets{\n\t\tgentype.NewClientWithListAndApply[*appsv1.DaemonSet, *appsv1.DaemonSetList, *applyconfigurationsappsv1.DaemonSetApplyConfiguration](\n\t\t\t\"daemonsets\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *appsv1.DaemonSet { return &appsv1.DaemonSet{} },\n\t\t\tfunc() *appsv1.DaemonSetList { return &appsv1.DaemonSetList{} },\n\t\t\tgentype.PrefersProtobuf[*appsv1.DaemonSet](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1/deployment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\tfmt \"fmt\"\n\n\tappsv1 \"k8s.io/api/apps/v1\"\n\tautoscalingv1 \"k8s.io/api/autoscaling/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsappsv1 \"k8s.io/client-go/applyconfigurations/apps/v1\"\n\tapplyconfigurationsautoscalingv1 \"k8s.io/client-go/applyconfigurations/autoscaling/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\tapply \"k8s.io/client-go/util/apply\"\n)\n\n// DeploymentsGetter has a method to return a DeploymentInterface.\n// A group's client should implement this interface.\ntype DeploymentsGetter interface {\n\tDeployments(namespace string) DeploymentInterface\n}\n\n// DeploymentInterface has methods to work with Deployment resources.\ntype DeploymentInterface interface {\n\tCreate(ctx context.Context, deployment *appsv1.Deployment, opts metav1.CreateOptions) (*appsv1.Deployment, error)\n\tUpdate(ctx context.Context, deployment *appsv1.Deployment, opts metav1.UpdateOptions) (*appsv1.Deployment, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, deployment *appsv1.Deployment, opts metav1.UpdateOptions) (*appsv1.Deployment, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*appsv1.Deployment, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*appsv1.DeploymentList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *appsv1.Deployment, err error)\n\tApply(ctx context.Context, deployment *applyconfigurationsappsv1.DeploymentApplyConfiguration, opts metav1.ApplyOptions) (result *appsv1.Deployment, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, deployment *applyconfigurationsappsv1.DeploymentApplyConfiguration, opts metav1.ApplyOptions) (result *appsv1.Deployment, err error)\n\tGetScale(ctx context.Context, deploymentName string, options metav1.GetOptions) (*autoscalingv1.Scale, error)\n\tUpdateScale(ctx context.Context, deploymentName string, scale *autoscalingv1.Scale, opts metav1.UpdateOptions) (*autoscalingv1.Scale, error)\n\tApplyScale(ctx context.Context, deploymentName string, scale *applyconfigurationsautoscalingv1.ScaleApplyConfiguration, opts metav1.ApplyOptions) (*autoscalingv1.Scale, error)\n\n\tDeploymentExpansion\n}\n\n// deployments implements DeploymentInterface\ntype deployments struct {\n\t*gentype.ClientWithListAndApply[*appsv1.Deployment, *appsv1.DeploymentList, *applyconfigurationsappsv1.DeploymentApplyConfiguration]\n}\n\n// newDeployments returns a Deployments\nfunc newDeployments(c *AppsV1Client, namespace string) *deployments {\n\treturn &deployments{\n\t\tgentype.NewClientWithListAndApply[*appsv1.Deployment, *appsv1.DeploymentList, *applyconfigurationsappsv1.DeploymentApplyConfiguration](\n\t\t\t\"deployments\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *appsv1.Deployment { return &appsv1.Deployment{} },\n\t\t\tfunc() *appsv1.DeploymentList { return &appsv1.DeploymentList{} },\n\t\t\tgentype.PrefersProtobuf[*appsv1.Deployment](),\n\t\t),\n\t}\n}\n\n// GetScale takes name of the deployment, and returns the corresponding autoscalingv1.Scale object, and an error if there is any.\nfunc (c *deployments) GetScale(ctx context.Context, deploymentName string, options metav1.GetOptions) (result *autoscalingv1.Scale, err error) {\n\tresult = &autoscalingv1.Scale{}\n\terr = c.GetClient().Get().\n\t\tUseProtobufAsDefault().\n\t\tNamespace(c.GetNamespace()).\n\t\tResource(\"deployments\").\n\t\tName(deploymentName).\n\t\tSubResource(\"scale\").\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateScale takes the top resource name and the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any.\nfunc (c *deployments) UpdateScale(ctx context.Context, deploymentName string, scale *autoscalingv1.Scale, opts metav1.UpdateOptions) (result *autoscalingv1.Scale, err error) {\n\tresult = &autoscalingv1.Scale{}\n\terr = c.GetClient().Put().\n\t\tUseProtobufAsDefault().\n\t\tNamespace(c.GetNamespace()).\n\t\tResource(\"deployments\").\n\t\tName(deploymentName).\n\t\tSubResource(\"scale\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(scale).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyScale takes top resource name and the apply declarative configuration for scale,\n// applies it and returns the applied scale, and an error, if there is any.\nfunc (c *deployments) ApplyScale(ctx context.Context, deploymentName string, scale *applyconfigurationsautoscalingv1.ScaleApplyConfiguration, opts metav1.ApplyOptions) (result *autoscalingv1.Scale, err error) {\n\tif scale == nil {\n\t\treturn nil, fmt.Errorf(\"scale provided to ApplyScale must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\trequest, err := apply.NewRequest(c.GetClient(), scale)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresult = &autoscalingv1.Scale{}\n\terr = request.\n\t\tUseProtobufAsDefault().\n\t\tNamespace(c.GetNamespace()).\n\t\tResource(\"deployments\").\n\t\tName(deploymentName).\n\t\tSubResource(\"scale\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_apps_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/client-go/kubernetes/typed/apps/v1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeAppsV1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeAppsV1) ControllerRevisions(namespace string) v1.ControllerRevisionInterface {\n\treturn newFakeControllerRevisions(c, namespace)\n}\n\nfunc (c *FakeAppsV1) DaemonSets(namespace string) v1.DaemonSetInterface {\n\treturn newFakeDaemonSets(c, namespace)\n}\n\nfunc (c *FakeAppsV1) Deployments(namespace string) v1.DeploymentInterface {\n\treturn newFakeDeployments(c, namespace)\n}\n\nfunc (c *FakeAppsV1) ReplicaSets(namespace string) v1.ReplicaSetInterface {\n\treturn newFakeReplicaSets(c, namespace)\n}\n\nfunc (c *FakeAppsV1) StatefulSets(namespace string) v1.StatefulSetInterface {\n\treturn newFakeStatefulSets(c, namespace)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeAppsV1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_controllerrevision.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/apps/v1\"\n\tappsv1 \"k8s.io/client-go/applyconfigurations/apps/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedappsv1 \"k8s.io/client-go/kubernetes/typed/apps/v1\"\n)\n\n// fakeControllerRevisions implements ControllerRevisionInterface\ntype fakeControllerRevisions struct {\n\t*gentype.FakeClientWithListAndApply[*v1.ControllerRevision, *v1.ControllerRevisionList, *appsv1.ControllerRevisionApplyConfiguration]\n\tFake *FakeAppsV1\n}\n\nfunc newFakeControllerRevisions(fake *FakeAppsV1, namespace string) typedappsv1.ControllerRevisionInterface {\n\treturn &fakeControllerRevisions{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.ControllerRevision, *v1.ControllerRevisionList, *appsv1.ControllerRevisionApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1.SchemeGroupVersion.WithResource(\"controllerrevisions\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"ControllerRevision\"),\n\t\t\tfunc() *v1.ControllerRevision { return &v1.ControllerRevision{} },\n\t\t\tfunc() *v1.ControllerRevisionList { return &v1.ControllerRevisionList{} },\n\t\t\tfunc(dst, src *v1.ControllerRevisionList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.ControllerRevisionList) []*v1.ControllerRevision {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1.ControllerRevisionList, items []*v1.ControllerRevision) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_daemonset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/apps/v1\"\n\tappsv1 \"k8s.io/client-go/applyconfigurations/apps/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedappsv1 \"k8s.io/client-go/kubernetes/typed/apps/v1\"\n)\n\n// fakeDaemonSets implements DaemonSetInterface\ntype fakeDaemonSets struct {\n\t*gentype.FakeClientWithListAndApply[*v1.DaemonSet, *v1.DaemonSetList, *appsv1.DaemonSetApplyConfiguration]\n\tFake *FakeAppsV1\n}\n\nfunc newFakeDaemonSets(fake *FakeAppsV1, namespace string) typedappsv1.DaemonSetInterface {\n\treturn &fakeDaemonSets{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.DaemonSet, *v1.DaemonSetList, *appsv1.DaemonSetApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1.SchemeGroupVersion.WithResource(\"daemonsets\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"DaemonSet\"),\n\t\t\tfunc() *v1.DaemonSet { return &v1.DaemonSet{} },\n\t\t\tfunc() *v1.DaemonSetList { return &v1.DaemonSetList{} },\n\t\t\tfunc(dst, src *v1.DaemonSetList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.DaemonSetList) []*v1.DaemonSet { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1.DaemonSetList, items []*v1.DaemonSet) { list.Items = gentype.FromPointerSlice(items) },\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_deployment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tcontext \"context\"\n\tjson \"encoding/json\"\n\tfmt \"fmt\"\n\n\tv1 \"k8s.io/api/apps/v1\"\n\tautoscalingv1 \"k8s.io/api/autoscaling/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tappsv1 \"k8s.io/client-go/applyconfigurations/apps/v1\"\n\tapplyconfigurationsautoscalingv1 \"k8s.io/client-go/applyconfigurations/autoscaling/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedappsv1 \"k8s.io/client-go/kubernetes/typed/apps/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// fakeDeployments implements DeploymentInterface\ntype fakeDeployments struct {\n\t*gentype.FakeClientWithListAndApply[*v1.Deployment, *v1.DeploymentList, *appsv1.DeploymentApplyConfiguration]\n\tFake *FakeAppsV1\n}\n\nfunc newFakeDeployments(fake *FakeAppsV1, namespace string) typedappsv1.DeploymentInterface {\n\treturn &fakeDeployments{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.Deployment, *v1.DeploymentList, *appsv1.DeploymentApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1.SchemeGroupVersion.WithResource(\"deployments\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"Deployment\"),\n\t\t\tfunc() *v1.Deployment { return &v1.Deployment{} },\n\t\t\tfunc() *v1.DeploymentList { return &v1.DeploymentList{} },\n\t\t\tfunc(dst, src *v1.DeploymentList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.DeploymentList) []*v1.Deployment { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1.DeploymentList, items []*v1.Deployment) { list.Items = gentype.FromPointerSlice(items) },\n\t\t),\n\t\tfake,\n\t}\n}\n\n// GetScale takes name of the deployment, and returns the corresponding scale object, and an error if there is any.\nfunc (c *fakeDeployments) GetScale(ctx context.Context, deploymentName string, options metav1.GetOptions) (result *autoscalingv1.Scale, err error) {\n\temptyResult := &autoscalingv1.Scale{}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetSubresourceActionWithOptions(c.Resource(), c.Namespace(), \"scale\", deploymentName, options), emptyResult)\n\n\tif obj == nil {\n\t\treturn emptyResult, err\n\t}\n\treturn obj.(*autoscalingv1.Scale), err\n}\n\n// UpdateScale takes the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any.\nfunc (c *fakeDeployments) UpdateScale(ctx context.Context, deploymentName string, scale *autoscalingv1.Scale, opts metav1.UpdateOptions) (result *autoscalingv1.Scale, err error) {\n\temptyResult := &autoscalingv1.Scale{}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceActionWithOptions(c.Resource(), \"scale\", c.Namespace(), scale, opts), &autoscalingv1.Scale{})\n\n\tif obj == nil {\n\t\treturn emptyResult, err\n\t}\n\treturn obj.(*autoscalingv1.Scale), err\n}\n\n// ApplyScale takes top resource name and the apply declarative configuration for scale,\n// applies it and returns the applied scale, and an error, if there is any.\nfunc (c *fakeDeployments) ApplyScale(ctx context.Context, deploymentName string, scale *applyconfigurationsautoscalingv1.ScaleApplyConfiguration, opts metav1.ApplyOptions) (result *autoscalingv1.Scale, err error) {\n\tif scale == nil {\n\t\treturn nil, fmt.Errorf(\"scale provided to ApplyScale must not be nil\")\n\t}\n\tdata, err := json.Marshal(scale)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\temptyResult := &autoscalingv1.Scale{}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceActionWithOptions(c.Resource(), c.Namespace(), deploymentName, types.ApplyPatchType, data, opts.ToPatchOptions(), \"scale\"), emptyResult)\n\n\tif obj == nil {\n\t\treturn emptyResult, err\n\t}\n\treturn obj.(*autoscalingv1.Scale), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_replicaset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tcontext \"context\"\n\tjson \"encoding/json\"\n\tfmt \"fmt\"\n\n\tv1 \"k8s.io/api/apps/v1\"\n\tautoscalingv1 \"k8s.io/api/autoscaling/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tappsv1 \"k8s.io/client-go/applyconfigurations/apps/v1\"\n\tapplyconfigurationsautoscalingv1 \"k8s.io/client-go/applyconfigurations/autoscaling/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedappsv1 \"k8s.io/client-go/kubernetes/typed/apps/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// fakeReplicaSets implements ReplicaSetInterface\ntype fakeReplicaSets struct {\n\t*gentype.FakeClientWithListAndApply[*v1.ReplicaSet, *v1.ReplicaSetList, *appsv1.ReplicaSetApplyConfiguration]\n\tFake *FakeAppsV1\n}\n\nfunc newFakeReplicaSets(fake *FakeAppsV1, namespace string) typedappsv1.ReplicaSetInterface {\n\treturn &fakeReplicaSets{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.ReplicaSet, *v1.ReplicaSetList, *appsv1.ReplicaSetApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1.SchemeGroupVersion.WithResource(\"replicasets\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"ReplicaSet\"),\n\t\t\tfunc() *v1.ReplicaSet { return &v1.ReplicaSet{} },\n\t\t\tfunc() *v1.ReplicaSetList { return &v1.ReplicaSetList{} },\n\t\t\tfunc(dst, src *v1.ReplicaSetList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.ReplicaSetList) []*v1.ReplicaSet { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1.ReplicaSetList, items []*v1.ReplicaSet) { list.Items = gentype.FromPointerSlice(items) },\n\t\t),\n\t\tfake,\n\t}\n}\n\n// GetScale takes name of the replicaSet, and returns the corresponding scale object, and an error if there is any.\nfunc (c *fakeReplicaSets) GetScale(ctx context.Context, replicaSetName string, options metav1.GetOptions) (result *autoscalingv1.Scale, err error) {\n\temptyResult := &autoscalingv1.Scale{}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetSubresourceActionWithOptions(c.Resource(), c.Namespace(), \"scale\", replicaSetName, options), emptyResult)\n\n\tif obj == nil {\n\t\treturn emptyResult, err\n\t}\n\treturn obj.(*autoscalingv1.Scale), err\n}\n\n// UpdateScale takes the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any.\nfunc (c *fakeReplicaSets) UpdateScale(ctx context.Context, replicaSetName string, scale *autoscalingv1.Scale, opts metav1.UpdateOptions) (result *autoscalingv1.Scale, err error) {\n\temptyResult := &autoscalingv1.Scale{}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceActionWithOptions(c.Resource(), \"scale\", c.Namespace(), scale, opts), &autoscalingv1.Scale{})\n\n\tif obj == nil {\n\t\treturn emptyResult, err\n\t}\n\treturn obj.(*autoscalingv1.Scale), err\n}\n\n// ApplyScale takes top resource name and the apply declarative configuration for scale,\n// applies it and returns the applied scale, and an error, if there is any.\nfunc (c *fakeReplicaSets) ApplyScale(ctx context.Context, replicaSetName string, scale *applyconfigurationsautoscalingv1.ScaleApplyConfiguration, opts metav1.ApplyOptions) (result *autoscalingv1.Scale, err error) {\n\tif scale == nil {\n\t\treturn nil, fmt.Errorf(\"scale provided to ApplyScale must not be nil\")\n\t}\n\tdata, err := json.Marshal(scale)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\temptyResult := &autoscalingv1.Scale{}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceActionWithOptions(c.Resource(), c.Namespace(), replicaSetName, types.ApplyPatchType, data, opts.ToPatchOptions(), \"scale\"), emptyResult)\n\n\tif obj == nil {\n\t\treturn emptyResult, err\n\t}\n\treturn obj.(*autoscalingv1.Scale), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1/fake/fake_statefulset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tcontext \"context\"\n\tjson \"encoding/json\"\n\tfmt \"fmt\"\n\n\tv1 \"k8s.io/api/apps/v1\"\n\tautoscalingv1 \"k8s.io/api/autoscaling/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tappsv1 \"k8s.io/client-go/applyconfigurations/apps/v1\"\n\tapplyconfigurationsautoscalingv1 \"k8s.io/client-go/applyconfigurations/autoscaling/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedappsv1 \"k8s.io/client-go/kubernetes/typed/apps/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// fakeStatefulSets implements StatefulSetInterface\ntype fakeStatefulSets struct {\n\t*gentype.FakeClientWithListAndApply[*v1.StatefulSet, *v1.StatefulSetList, *appsv1.StatefulSetApplyConfiguration]\n\tFake *FakeAppsV1\n}\n\nfunc newFakeStatefulSets(fake *FakeAppsV1, namespace string) typedappsv1.StatefulSetInterface {\n\treturn &fakeStatefulSets{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.StatefulSet, *v1.StatefulSetList, *appsv1.StatefulSetApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1.SchemeGroupVersion.WithResource(\"statefulsets\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"StatefulSet\"),\n\t\t\tfunc() *v1.StatefulSet { return &v1.StatefulSet{} },\n\t\t\tfunc() *v1.StatefulSetList { return &v1.StatefulSetList{} },\n\t\t\tfunc(dst, src *v1.StatefulSetList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.StatefulSetList) []*v1.StatefulSet { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1.StatefulSetList, items []*v1.StatefulSet) { list.Items = gentype.FromPointerSlice(items) },\n\t\t),\n\t\tfake,\n\t}\n}\n\n// GetScale takes name of the statefulSet, and returns the corresponding scale object, and an error if there is any.\nfunc (c *fakeStatefulSets) GetScale(ctx context.Context, statefulSetName string, options metav1.GetOptions) (result *autoscalingv1.Scale, err error) {\n\temptyResult := &autoscalingv1.Scale{}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetSubresourceActionWithOptions(c.Resource(), c.Namespace(), \"scale\", statefulSetName, options), emptyResult)\n\n\tif obj == nil {\n\t\treturn emptyResult, err\n\t}\n\treturn obj.(*autoscalingv1.Scale), err\n}\n\n// UpdateScale takes the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any.\nfunc (c *fakeStatefulSets) UpdateScale(ctx context.Context, statefulSetName string, scale *autoscalingv1.Scale, opts metav1.UpdateOptions) (result *autoscalingv1.Scale, err error) {\n\temptyResult := &autoscalingv1.Scale{}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceActionWithOptions(c.Resource(), \"scale\", c.Namespace(), scale, opts), &autoscalingv1.Scale{})\n\n\tif obj == nil {\n\t\treturn emptyResult, err\n\t}\n\treturn obj.(*autoscalingv1.Scale), err\n}\n\n// ApplyScale takes top resource name and the apply declarative configuration for scale,\n// applies it and returns the applied scale, and an error, if there is any.\nfunc (c *fakeStatefulSets) ApplyScale(ctx context.Context, statefulSetName string, scale *applyconfigurationsautoscalingv1.ScaleApplyConfiguration, opts metav1.ApplyOptions) (result *autoscalingv1.Scale, err error) {\n\tif scale == nil {\n\t\treturn nil, fmt.Errorf(\"scale provided to ApplyScale must not be nil\")\n\t}\n\tdata, err := json.Marshal(scale)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\temptyResult := &autoscalingv1.Scale{}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceActionWithOptions(c.Resource(), c.Namespace(), statefulSetName, types.ApplyPatchType, data, opts.ToPatchOptions(), \"scale\"), emptyResult)\n\n\tif obj == nil {\n\t\treturn emptyResult, err\n\t}\n\treturn obj.(*autoscalingv1.Scale), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\ntype ControllerRevisionExpansion interface{}\n\ntype DaemonSetExpansion interface{}\n\ntype DeploymentExpansion interface{}\n\ntype ReplicaSetExpansion interface{}\n\ntype StatefulSetExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1/replicaset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\tfmt \"fmt\"\n\n\tappsv1 \"k8s.io/api/apps/v1\"\n\tautoscalingv1 \"k8s.io/api/autoscaling/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsappsv1 \"k8s.io/client-go/applyconfigurations/apps/v1\"\n\tapplyconfigurationsautoscalingv1 \"k8s.io/client-go/applyconfigurations/autoscaling/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\tapply \"k8s.io/client-go/util/apply\"\n)\n\n// ReplicaSetsGetter has a method to return a ReplicaSetInterface.\n// A group's client should implement this interface.\ntype ReplicaSetsGetter interface {\n\tReplicaSets(namespace string) ReplicaSetInterface\n}\n\n// ReplicaSetInterface has methods to work with ReplicaSet resources.\ntype ReplicaSetInterface interface {\n\tCreate(ctx context.Context, replicaSet *appsv1.ReplicaSet, opts metav1.CreateOptions) (*appsv1.ReplicaSet, error)\n\tUpdate(ctx context.Context, replicaSet *appsv1.ReplicaSet, opts metav1.UpdateOptions) (*appsv1.ReplicaSet, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, replicaSet *appsv1.ReplicaSet, opts metav1.UpdateOptions) (*appsv1.ReplicaSet, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*appsv1.ReplicaSet, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*appsv1.ReplicaSetList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *appsv1.ReplicaSet, err error)\n\tApply(ctx context.Context, replicaSet *applyconfigurationsappsv1.ReplicaSetApplyConfiguration, opts metav1.ApplyOptions) (result *appsv1.ReplicaSet, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, replicaSet *applyconfigurationsappsv1.ReplicaSetApplyConfiguration, opts metav1.ApplyOptions) (result *appsv1.ReplicaSet, err error)\n\tGetScale(ctx context.Context, replicaSetName string, options metav1.GetOptions) (*autoscalingv1.Scale, error)\n\tUpdateScale(ctx context.Context, replicaSetName string, scale *autoscalingv1.Scale, opts metav1.UpdateOptions) (*autoscalingv1.Scale, error)\n\tApplyScale(ctx context.Context, replicaSetName string, scale *applyconfigurationsautoscalingv1.ScaleApplyConfiguration, opts metav1.ApplyOptions) (*autoscalingv1.Scale, error)\n\n\tReplicaSetExpansion\n}\n\n// replicaSets implements ReplicaSetInterface\ntype replicaSets struct {\n\t*gentype.ClientWithListAndApply[*appsv1.ReplicaSet, *appsv1.ReplicaSetList, *applyconfigurationsappsv1.ReplicaSetApplyConfiguration]\n}\n\n// newReplicaSets returns a ReplicaSets\nfunc newReplicaSets(c *AppsV1Client, namespace string) *replicaSets {\n\treturn &replicaSets{\n\t\tgentype.NewClientWithListAndApply[*appsv1.ReplicaSet, *appsv1.ReplicaSetList, *applyconfigurationsappsv1.ReplicaSetApplyConfiguration](\n\t\t\t\"replicasets\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *appsv1.ReplicaSet { return &appsv1.ReplicaSet{} },\n\t\t\tfunc() *appsv1.ReplicaSetList { return &appsv1.ReplicaSetList{} },\n\t\t\tgentype.PrefersProtobuf[*appsv1.ReplicaSet](),\n\t\t),\n\t}\n}\n\n// GetScale takes name of the replicaSet, and returns the corresponding autoscalingv1.Scale object, and an error if there is any.\nfunc (c *replicaSets) GetScale(ctx context.Context, replicaSetName string, options metav1.GetOptions) (result *autoscalingv1.Scale, err error) {\n\tresult = &autoscalingv1.Scale{}\n\terr = c.GetClient().Get().\n\t\tUseProtobufAsDefault().\n\t\tNamespace(c.GetNamespace()).\n\t\tResource(\"replicasets\").\n\t\tName(replicaSetName).\n\t\tSubResource(\"scale\").\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateScale takes the top resource name and the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any.\nfunc (c *replicaSets) UpdateScale(ctx context.Context, replicaSetName string, scale *autoscalingv1.Scale, opts metav1.UpdateOptions) (result *autoscalingv1.Scale, err error) {\n\tresult = &autoscalingv1.Scale{}\n\terr = c.GetClient().Put().\n\t\tUseProtobufAsDefault().\n\t\tNamespace(c.GetNamespace()).\n\t\tResource(\"replicasets\").\n\t\tName(replicaSetName).\n\t\tSubResource(\"scale\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(scale).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyScale takes top resource name and the apply declarative configuration for scale,\n// applies it and returns the applied scale, and an error, if there is any.\nfunc (c *replicaSets) ApplyScale(ctx context.Context, replicaSetName string, scale *applyconfigurationsautoscalingv1.ScaleApplyConfiguration, opts metav1.ApplyOptions) (result *autoscalingv1.Scale, err error) {\n\tif scale == nil {\n\t\treturn nil, fmt.Errorf(\"scale provided to ApplyScale must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\trequest, err := apply.NewRequest(c.GetClient(), scale)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresult = &autoscalingv1.Scale{}\n\terr = request.\n\t\tUseProtobufAsDefault().\n\t\tNamespace(c.GetNamespace()).\n\t\tResource(\"replicasets\").\n\t\tName(replicaSetName).\n\t\tSubResource(\"scale\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1/statefulset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\tfmt \"fmt\"\n\n\tappsv1 \"k8s.io/api/apps/v1\"\n\tautoscalingv1 \"k8s.io/api/autoscaling/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsappsv1 \"k8s.io/client-go/applyconfigurations/apps/v1\"\n\tapplyconfigurationsautoscalingv1 \"k8s.io/client-go/applyconfigurations/autoscaling/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\tapply \"k8s.io/client-go/util/apply\"\n)\n\n// StatefulSetsGetter has a method to return a StatefulSetInterface.\n// A group's client should implement this interface.\ntype StatefulSetsGetter interface {\n\tStatefulSets(namespace string) StatefulSetInterface\n}\n\n// StatefulSetInterface has methods to work with StatefulSet resources.\ntype StatefulSetInterface interface {\n\tCreate(ctx context.Context, statefulSet *appsv1.StatefulSet, opts metav1.CreateOptions) (*appsv1.StatefulSet, error)\n\tUpdate(ctx context.Context, statefulSet *appsv1.StatefulSet, opts metav1.UpdateOptions) (*appsv1.StatefulSet, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, statefulSet *appsv1.StatefulSet, opts metav1.UpdateOptions) (*appsv1.StatefulSet, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*appsv1.StatefulSet, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*appsv1.StatefulSetList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *appsv1.StatefulSet, err error)\n\tApply(ctx context.Context, statefulSet *applyconfigurationsappsv1.StatefulSetApplyConfiguration, opts metav1.ApplyOptions) (result *appsv1.StatefulSet, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, statefulSet *applyconfigurationsappsv1.StatefulSetApplyConfiguration, opts metav1.ApplyOptions) (result *appsv1.StatefulSet, err error)\n\tGetScale(ctx context.Context, statefulSetName string, options metav1.GetOptions) (*autoscalingv1.Scale, error)\n\tUpdateScale(ctx context.Context, statefulSetName string, scale *autoscalingv1.Scale, opts metav1.UpdateOptions) (*autoscalingv1.Scale, error)\n\tApplyScale(ctx context.Context, statefulSetName string, scale *applyconfigurationsautoscalingv1.ScaleApplyConfiguration, opts metav1.ApplyOptions) (*autoscalingv1.Scale, error)\n\n\tStatefulSetExpansion\n}\n\n// statefulSets implements StatefulSetInterface\ntype statefulSets struct {\n\t*gentype.ClientWithListAndApply[*appsv1.StatefulSet, *appsv1.StatefulSetList, *applyconfigurationsappsv1.StatefulSetApplyConfiguration]\n}\n\n// newStatefulSets returns a StatefulSets\nfunc newStatefulSets(c *AppsV1Client, namespace string) *statefulSets {\n\treturn &statefulSets{\n\t\tgentype.NewClientWithListAndApply[*appsv1.StatefulSet, *appsv1.StatefulSetList, *applyconfigurationsappsv1.StatefulSetApplyConfiguration](\n\t\t\t\"statefulsets\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *appsv1.StatefulSet { return &appsv1.StatefulSet{} },\n\t\t\tfunc() *appsv1.StatefulSetList { return &appsv1.StatefulSetList{} },\n\t\t\tgentype.PrefersProtobuf[*appsv1.StatefulSet](),\n\t\t),\n\t}\n}\n\n// GetScale takes name of the statefulSet, and returns the corresponding autoscalingv1.Scale object, and an error if there is any.\nfunc (c *statefulSets) GetScale(ctx context.Context, statefulSetName string, options metav1.GetOptions) (result *autoscalingv1.Scale, err error) {\n\tresult = &autoscalingv1.Scale{}\n\terr = c.GetClient().Get().\n\t\tUseProtobufAsDefault().\n\t\tNamespace(c.GetNamespace()).\n\t\tResource(\"statefulsets\").\n\t\tName(statefulSetName).\n\t\tSubResource(\"scale\").\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateScale takes the top resource name and the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any.\nfunc (c *statefulSets) UpdateScale(ctx context.Context, statefulSetName string, scale *autoscalingv1.Scale, opts metav1.UpdateOptions) (result *autoscalingv1.Scale, err error) {\n\tresult = &autoscalingv1.Scale{}\n\terr = c.GetClient().Put().\n\t\tUseProtobufAsDefault().\n\t\tNamespace(c.GetNamespace()).\n\t\tResource(\"statefulsets\").\n\t\tName(statefulSetName).\n\t\tSubResource(\"scale\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(scale).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyScale takes top resource name and the apply declarative configuration for scale,\n// applies it and returns the applied scale, and an error, if there is any.\nfunc (c *statefulSets) ApplyScale(ctx context.Context, statefulSetName string, scale *applyconfigurationsautoscalingv1.ScaleApplyConfiguration, opts metav1.ApplyOptions) (result *autoscalingv1.Scale, err error) {\n\tif scale == nil {\n\t\treturn nil, fmt.Errorf(\"scale provided to ApplyScale must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\trequest, err := apply.NewRequest(c.GetClient(), scale)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresult = &autoscalingv1.Scale{}\n\terr = request.\n\t\tUseProtobufAsDefault().\n\t\tNamespace(c.GetNamespace()).\n\t\tResource(\"statefulsets\").\n\t\tName(statefulSetName).\n\t\tSubResource(\"scale\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/apps_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\thttp \"net/http\"\n\n\tappsv1beta1 \"k8s.io/api/apps/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype AppsV1beta1Interface interface {\n\tRESTClient() rest.Interface\n\tControllerRevisionsGetter\n\tDeploymentsGetter\n\tStatefulSetsGetter\n}\n\n// AppsV1beta1Client is used to interact with features provided by the apps group.\ntype AppsV1beta1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *AppsV1beta1Client) ControllerRevisions(namespace string) ControllerRevisionInterface {\n\treturn newControllerRevisions(c, namespace)\n}\n\nfunc (c *AppsV1beta1Client) Deployments(namespace string) DeploymentInterface {\n\treturn newDeployments(c, namespace)\n}\n\nfunc (c *AppsV1beta1Client) StatefulSets(namespace string) StatefulSetInterface {\n\treturn newStatefulSets(c, namespace)\n}\n\n// NewForConfig creates a new AppsV1beta1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*AppsV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new AppsV1beta1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*AppsV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &AppsV1beta1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new AppsV1beta1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *AppsV1beta1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new AppsV1beta1Client for the given RESTClient.\nfunc New(c rest.Interface) *AppsV1beta1Client {\n\treturn &AppsV1beta1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := appsv1beta1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *AppsV1beta1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/controllerrevision.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\tappsv1beta1 \"k8s.io/api/apps/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsappsv1beta1 \"k8s.io/client-go/applyconfigurations/apps/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// ControllerRevisionsGetter has a method to return a ControllerRevisionInterface.\n// A group's client should implement this interface.\ntype ControllerRevisionsGetter interface {\n\tControllerRevisions(namespace string) ControllerRevisionInterface\n}\n\n// ControllerRevisionInterface has methods to work with ControllerRevision resources.\ntype ControllerRevisionInterface interface {\n\tCreate(ctx context.Context, controllerRevision *appsv1beta1.ControllerRevision, opts v1.CreateOptions) (*appsv1beta1.ControllerRevision, error)\n\tUpdate(ctx context.Context, controllerRevision *appsv1beta1.ControllerRevision, opts v1.UpdateOptions) (*appsv1beta1.ControllerRevision, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*appsv1beta1.ControllerRevision, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*appsv1beta1.ControllerRevisionList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *appsv1beta1.ControllerRevision, err error)\n\tApply(ctx context.Context, controllerRevision *applyconfigurationsappsv1beta1.ControllerRevisionApplyConfiguration, opts v1.ApplyOptions) (result *appsv1beta1.ControllerRevision, err error)\n\tControllerRevisionExpansion\n}\n\n// controllerRevisions implements ControllerRevisionInterface\ntype controllerRevisions struct {\n\t*gentype.ClientWithListAndApply[*appsv1beta1.ControllerRevision, *appsv1beta1.ControllerRevisionList, *applyconfigurationsappsv1beta1.ControllerRevisionApplyConfiguration]\n}\n\n// newControllerRevisions returns a ControllerRevisions\nfunc newControllerRevisions(c *AppsV1beta1Client, namespace string) *controllerRevisions {\n\treturn &controllerRevisions{\n\t\tgentype.NewClientWithListAndApply[*appsv1beta1.ControllerRevision, *appsv1beta1.ControllerRevisionList, *applyconfigurationsappsv1beta1.ControllerRevisionApplyConfiguration](\n\t\t\t\"controllerrevisions\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *appsv1beta1.ControllerRevision { return &appsv1beta1.ControllerRevision{} },\n\t\t\tfunc() *appsv1beta1.ControllerRevisionList { return &appsv1beta1.ControllerRevisionList{} },\n\t\t\tgentype.PrefersProtobuf[*appsv1beta1.ControllerRevision](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/deployment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\tappsv1beta1 \"k8s.io/api/apps/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsappsv1beta1 \"k8s.io/client-go/applyconfigurations/apps/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// DeploymentsGetter has a method to return a DeploymentInterface.\n// A group's client should implement this interface.\ntype DeploymentsGetter interface {\n\tDeployments(namespace string) DeploymentInterface\n}\n\n// DeploymentInterface has methods to work with Deployment resources.\ntype DeploymentInterface interface {\n\tCreate(ctx context.Context, deployment *appsv1beta1.Deployment, opts v1.CreateOptions) (*appsv1beta1.Deployment, error)\n\tUpdate(ctx context.Context, deployment *appsv1beta1.Deployment, opts v1.UpdateOptions) (*appsv1beta1.Deployment, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, deployment *appsv1beta1.Deployment, opts v1.UpdateOptions) (*appsv1beta1.Deployment, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*appsv1beta1.Deployment, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*appsv1beta1.DeploymentList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *appsv1beta1.Deployment, err error)\n\tApply(ctx context.Context, deployment *applyconfigurationsappsv1beta1.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *appsv1beta1.Deployment, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, deployment *applyconfigurationsappsv1beta1.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *appsv1beta1.Deployment, err error)\n\tDeploymentExpansion\n}\n\n// deployments implements DeploymentInterface\ntype deployments struct {\n\t*gentype.ClientWithListAndApply[*appsv1beta1.Deployment, *appsv1beta1.DeploymentList, *applyconfigurationsappsv1beta1.DeploymentApplyConfiguration]\n}\n\n// newDeployments returns a Deployments\nfunc newDeployments(c *AppsV1beta1Client, namespace string) *deployments {\n\treturn &deployments{\n\t\tgentype.NewClientWithListAndApply[*appsv1beta1.Deployment, *appsv1beta1.DeploymentList, *applyconfigurationsappsv1beta1.DeploymentApplyConfiguration](\n\t\t\t\"deployments\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *appsv1beta1.Deployment { return &appsv1beta1.Deployment{} },\n\t\t\tfunc() *appsv1beta1.DeploymentList { return &appsv1beta1.DeploymentList{} },\n\t\t\tgentype.PrefersProtobuf[*appsv1beta1.Deployment](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1beta1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/fake_apps_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/client-go/kubernetes/typed/apps/v1beta1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeAppsV1beta1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeAppsV1beta1) ControllerRevisions(namespace string) v1beta1.ControllerRevisionInterface {\n\treturn newFakeControllerRevisions(c, namespace)\n}\n\nfunc (c *FakeAppsV1beta1) Deployments(namespace string) v1beta1.DeploymentInterface {\n\treturn newFakeDeployments(c, namespace)\n}\n\nfunc (c *FakeAppsV1beta1) StatefulSets(namespace string) v1beta1.StatefulSetInterface {\n\treturn newFakeStatefulSets(c, namespace)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeAppsV1beta1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/fake_controllerrevision.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/apps/v1beta1\"\n\tappsv1beta1 \"k8s.io/client-go/applyconfigurations/apps/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedappsv1beta1 \"k8s.io/client-go/kubernetes/typed/apps/v1beta1\"\n)\n\n// fakeControllerRevisions implements ControllerRevisionInterface\ntype fakeControllerRevisions struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta1.ControllerRevision, *v1beta1.ControllerRevisionList, *appsv1beta1.ControllerRevisionApplyConfiguration]\n\tFake *FakeAppsV1beta1\n}\n\nfunc newFakeControllerRevisions(fake *FakeAppsV1beta1, namespace string) typedappsv1beta1.ControllerRevisionInterface {\n\treturn &fakeControllerRevisions{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta1.ControllerRevision, *v1beta1.ControllerRevisionList, *appsv1beta1.ControllerRevisionApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"controllerrevisions\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"ControllerRevision\"),\n\t\t\tfunc() *v1beta1.ControllerRevision { return &v1beta1.ControllerRevision{} },\n\t\t\tfunc() *v1beta1.ControllerRevisionList { return &v1beta1.ControllerRevisionList{} },\n\t\t\tfunc(dst, src *v1beta1.ControllerRevisionList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta1.ControllerRevisionList) []*v1beta1.ControllerRevision {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1beta1.ControllerRevisionList, items []*v1beta1.ControllerRevision) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/fake_deployment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/apps/v1beta1\"\n\tappsv1beta1 \"k8s.io/client-go/applyconfigurations/apps/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedappsv1beta1 \"k8s.io/client-go/kubernetes/typed/apps/v1beta1\"\n)\n\n// fakeDeployments implements DeploymentInterface\ntype fakeDeployments struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta1.Deployment, *v1beta1.DeploymentList, *appsv1beta1.DeploymentApplyConfiguration]\n\tFake *FakeAppsV1beta1\n}\n\nfunc newFakeDeployments(fake *FakeAppsV1beta1, namespace string) typedappsv1beta1.DeploymentInterface {\n\treturn &fakeDeployments{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta1.Deployment, *v1beta1.DeploymentList, *appsv1beta1.DeploymentApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"deployments\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"Deployment\"),\n\t\t\tfunc() *v1beta1.Deployment { return &v1beta1.Deployment{} },\n\t\t\tfunc() *v1beta1.DeploymentList { return &v1beta1.DeploymentList{} },\n\t\t\tfunc(dst, src *v1beta1.DeploymentList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta1.DeploymentList) []*v1beta1.Deployment { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1beta1.DeploymentList, items []*v1beta1.Deployment) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/fake_statefulset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/apps/v1beta1\"\n\tappsv1beta1 \"k8s.io/client-go/applyconfigurations/apps/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedappsv1beta1 \"k8s.io/client-go/kubernetes/typed/apps/v1beta1\"\n)\n\n// fakeStatefulSets implements StatefulSetInterface\ntype fakeStatefulSets struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta1.StatefulSet, *v1beta1.StatefulSetList, *appsv1beta1.StatefulSetApplyConfiguration]\n\tFake *FakeAppsV1beta1\n}\n\nfunc newFakeStatefulSets(fake *FakeAppsV1beta1, namespace string) typedappsv1beta1.StatefulSetInterface {\n\treturn &fakeStatefulSets{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta1.StatefulSet, *v1beta1.StatefulSetList, *appsv1beta1.StatefulSetApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"statefulsets\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"StatefulSet\"),\n\t\t\tfunc() *v1beta1.StatefulSet { return &v1beta1.StatefulSet{} },\n\t\t\tfunc() *v1beta1.StatefulSetList { return &v1beta1.StatefulSetList{} },\n\t\t\tfunc(dst, src *v1beta1.StatefulSetList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta1.StatefulSetList) []*v1beta1.StatefulSet { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1beta1.StatefulSetList, items []*v1beta1.StatefulSet) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\ntype ControllerRevisionExpansion interface{}\n\ntype DeploymentExpansion interface{}\n\ntype StatefulSetExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta1/statefulset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\tappsv1beta1 \"k8s.io/api/apps/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsappsv1beta1 \"k8s.io/client-go/applyconfigurations/apps/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// StatefulSetsGetter has a method to return a StatefulSetInterface.\n// A group's client should implement this interface.\ntype StatefulSetsGetter interface {\n\tStatefulSets(namespace string) StatefulSetInterface\n}\n\n// StatefulSetInterface has methods to work with StatefulSet resources.\ntype StatefulSetInterface interface {\n\tCreate(ctx context.Context, statefulSet *appsv1beta1.StatefulSet, opts v1.CreateOptions) (*appsv1beta1.StatefulSet, error)\n\tUpdate(ctx context.Context, statefulSet *appsv1beta1.StatefulSet, opts v1.UpdateOptions) (*appsv1beta1.StatefulSet, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, statefulSet *appsv1beta1.StatefulSet, opts v1.UpdateOptions) (*appsv1beta1.StatefulSet, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*appsv1beta1.StatefulSet, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*appsv1beta1.StatefulSetList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *appsv1beta1.StatefulSet, err error)\n\tApply(ctx context.Context, statefulSet *applyconfigurationsappsv1beta1.StatefulSetApplyConfiguration, opts v1.ApplyOptions) (result *appsv1beta1.StatefulSet, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, statefulSet *applyconfigurationsappsv1beta1.StatefulSetApplyConfiguration, opts v1.ApplyOptions) (result *appsv1beta1.StatefulSet, err error)\n\tStatefulSetExpansion\n}\n\n// statefulSets implements StatefulSetInterface\ntype statefulSets struct {\n\t*gentype.ClientWithListAndApply[*appsv1beta1.StatefulSet, *appsv1beta1.StatefulSetList, *applyconfigurationsappsv1beta1.StatefulSetApplyConfiguration]\n}\n\n// newStatefulSets returns a StatefulSets\nfunc newStatefulSets(c *AppsV1beta1Client, namespace string) *statefulSets {\n\treturn &statefulSets{\n\t\tgentype.NewClientWithListAndApply[*appsv1beta1.StatefulSet, *appsv1beta1.StatefulSetList, *applyconfigurationsappsv1beta1.StatefulSetApplyConfiguration](\n\t\t\t\"statefulsets\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *appsv1beta1.StatefulSet { return &appsv1beta1.StatefulSet{} },\n\t\t\tfunc() *appsv1beta1.StatefulSetList { return &appsv1beta1.StatefulSetList{} },\n\t\t\tgentype.PrefersProtobuf[*appsv1beta1.StatefulSet](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/apps_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\thttp \"net/http\"\n\n\tappsv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype AppsV1beta2Interface interface {\n\tRESTClient() rest.Interface\n\tControllerRevisionsGetter\n\tDaemonSetsGetter\n\tDeploymentsGetter\n\tReplicaSetsGetter\n\tStatefulSetsGetter\n}\n\n// AppsV1beta2Client is used to interact with features provided by the apps group.\ntype AppsV1beta2Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *AppsV1beta2Client) ControllerRevisions(namespace string) ControllerRevisionInterface {\n\treturn newControllerRevisions(c, namespace)\n}\n\nfunc (c *AppsV1beta2Client) DaemonSets(namespace string) DaemonSetInterface {\n\treturn newDaemonSets(c, namespace)\n}\n\nfunc (c *AppsV1beta2Client) Deployments(namespace string) DeploymentInterface {\n\treturn newDeployments(c, namespace)\n}\n\nfunc (c *AppsV1beta2Client) ReplicaSets(namespace string) ReplicaSetInterface {\n\treturn newReplicaSets(c, namespace)\n}\n\nfunc (c *AppsV1beta2Client) StatefulSets(namespace string) StatefulSetInterface {\n\treturn newStatefulSets(c, namespace)\n}\n\n// NewForConfig creates a new AppsV1beta2Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*AppsV1beta2Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new AppsV1beta2Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*AppsV1beta2Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &AppsV1beta2Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new AppsV1beta2Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *AppsV1beta2Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new AppsV1beta2Client for the given RESTClient.\nfunc New(c rest.Interface) *AppsV1beta2Client {\n\treturn &AppsV1beta2Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := appsv1beta2.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *AppsV1beta2Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/controllerrevision.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tcontext \"context\"\n\n\tappsv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsappsv1beta2 \"k8s.io/client-go/applyconfigurations/apps/v1beta2\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// ControllerRevisionsGetter has a method to return a ControllerRevisionInterface.\n// A group's client should implement this interface.\ntype ControllerRevisionsGetter interface {\n\tControllerRevisions(namespace string) ControllerRevisionInterface\n}\n\n// ControllerRevisionInterface has methods to work with ControllerRevision resources.\ntype ControllerRevisionInterface interface {\n\tCreate(ctx context.Context, controllerRevision *appsv1beta2.ControllerRevision, opts v1.CreateOptions) (*appsv1beta2.ControllerRevision, error)\n\tUpdate(ctx context.Context, controllerRevision *appsv1beta2.ControllerRevision, opts v1.UpdateOptions) (*appsv1beta2.ControllerRevision, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*appsv1beta2.ControllerRevision, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*appsv1beta2.ControllerRevisionList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *appsv1beta2.ControllerRevision, err error)\n\tApply(ctx context.Context, controllerRevision *applyconfigurationsappsv1beta2.ControllerRevisionApplyConfiguration, opts v1.ApplyOptions) (result *appsv1beta2.ControllerRevision, err error)\n\tControllerRevisionExpansion\n}\n\n// controllerRevisions implements ControllerRevisionInterface\ntype controllerRevisions struct {\n\t*gentype.ClientWithListAndApply[*appsv1beta2.ControllerRevision, *appsv1beta2.ControllerRevisionList, *applyconfigurationsappsv1beta2.ControllerRevisionApplyConfiguration]\n}\n\n// newControllerRevisions returns a ControllerRevisions\nfunc newControllerRevisions(c *AppsV1beta2Client, namespace string) *controllerRevisions {\n\treturn &controllerRevisions{\n\t\tgentype.NewClientWithListAndApply[*appsv1beta2.ControllerRevision, *appsv1beta2.ControllerRevisionList, *applyconfigurationsappsv1beta2.ControllerRevisionApplyConfiguration](\n\t\t\t\"controllerrevisions\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *appsv1beta2.ControllerRevision { return &appsv1beta2.ControllerRevision{} },\n\t\t\tfunc() *appsv1beta2.ControllerRevisionList { return &appsv1beta2.ControllerRevisionList{} },\n\t\t\tgentype.PrefersProtobuf[*appsv1beta2.ControllerRevision](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/daemonset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tcontext \"context\"\n\n\tappsv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsappsv1beta2 \"k8s.io/client-go/applyconfigurations/apps/v1beta2\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// DaemonSetsGetter has a method to return a DaemonSetInterface.\n// A group's client should implement this interface.\ntype DaemonSetsGetter interface {\n\tDaemonSets(namespace string) DaemonSetInterface\n}\n\n// DaemonSetInterface has methods to work with DaemonSet resources.\ntype DaemonSetInterface interface {\n\tCreate(ctx context.Context, daemonSet *appsv1beta2.DaemonSet, opts v1.CreateOptions) (*appsv1beta2.DaemonSet, error)\n\tUpdate(ctx context.Context, daemonSet *appsv1beta2.DaemonSet, opts v1.UpdateOptions) (*appsv1beta2.DaemonSet, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, daemonSet *appsv1beta2.DaemonSet, opts v1.UpdateOptions) (*appsv1beta2.DaemonSet, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*appsv1beta2.DaemonSet, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*appsv1beta2.DaemonSetList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *appsv1beta2.DaemonSet, err error)\n\tApply(ctx context.Context, daemonSet *applyconfigurationsappsv1beta2.DaemonSetApplyConfiguration, opts v1.ApplyOptions) (result *appsv1beta2.DaemonSet, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, daemonSet *applyconfigurationsappsv1beta2.DaemonSetApplyConfiguration, opts v1.ApplyOptions) (result *appsv1beta2.DaemonSet, err error)\n\tDaemonSetExpansion\n}\n\n// daemonSets implements DaemonSetInterface\ntype daemonSets struct {\n\t*gentype.ClientWithListAndApply[*appsv1beta2.DaemonSet, *appsv1beta2.DaemonSetList, *applyconfigurationsappsv1beta2.DaemonSetApplyConfiguration]\n}\n\n// newDaemonSets returns a DaemonSets\nfunc newDaemonSets(c *AppsV1beta2Client, namespace string) *daemonSets {\n\treturn &daemonSets{\n\t\tgentype.NewClientWithListAndApply[*appsv1beta2.DaemonSet, *appsv1beta2.DaemonSetList, *applyconfigurationsappsv1beta2.DaemonSetApplyConfiguration](\n\t\t\t\"daemonsets\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *appsv1beta2.DaemonSet { return &appsv1beta2.DaemonSet{} },\n\t\t\tfunc() *appsv1beta2.DaemonSetList { return &appsv1beta2.DaemonSetList{} },\n\t\t\tgentype.PrefersProtobuf[*appsv1beta2.DaemonSet](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/deployment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tcontext \"context\"\n\n\tappsv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsappsv1beta2 \"k8s.io/client-go/applyconfigurations/apps/v1beta2\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// DeploymentsGetter has a method to return a DeploymentInterface.\n// A group's client should implement this interface.\ntype DeploymentsGetter interface {\n\tDeployments(namespace string) DeploymentInterface\n}\n\n// DeploymentInterface has methods to work with Deployment resources.\ntype DeploymentInterface interface {\n\tCreate(ctx context.Context, deployment *appsv1beta2.Deployment, opts v1.CreateOptions) (*appsv1beta2.Deployment, error)\n\tUpdate(ctx context.Context, deployment *appsv1beta2.Deployment, opts v1.UpdateOptions) (*appsv1beta2.Deployment, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, deployment *appsv1beta2.Deployment, opts v1.UpdateOptions) (*appsv1beta2.Deployment, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*appsv1beta2.Deployment, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*appsv1beta2.DeploymentList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *appsv1beta2.Deployment, err error)\n\tApply(ctx context.Context, deployment *applyconfigurationsappsv1beta2.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *appsv1beta2.Deployment, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, deployment *applyconfigurationsappsv1beta2.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *appsv1beta2.Deployment, err error)\n\tDeploymentExpansion\n}\n\n// deployments implements DeploymentInterface\ntype deployments struct {\n\t*gentype.ClientWithListAndApply[*appsv1beta2.Deployment, *appsv1beta2.DeploymentList, *applyconfigurationsappsv1beta2.DeploymentApplyConfiguration]\n}\n\n// newDeployments returns a Deployments\nfunc newDeployments(c *AppsV1beta2Client, namespace string) *deployments {\n\treturn &deployments{\n\t\tgentype.NewClientWithListAndApply[*appsv1beta2.Deployment, *appsv1beta2.DeploymentList, *applyconfigurationsappsv1beta2.DeploymentApplyConfiguration](\n\t\t\t\"deployments\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *appsv1beta2.Deployment { return &appsv1beta2.Deployment{} },\n\t\t\tfunc() *appsv1beta2.DeploymentList { return &appsv1beta2.DeploymentList{} },\n\t\t\tgentype.PrefersProtobuf[*appsv1beta2.Deployment](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1beta2\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_apps_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta2 \"k8s.io/client-go/kubernetes/typed/apps/v1beta2\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeAppsV1beta2 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeAppsV1beta2) ControllerRevisions(namespace string) v1beta2.ControllerRevisionInterface {\n\treturn newFakeControllerRevisions(c, namespace)\n}\n\nfunc (c *FakeAppsV1beta2) DaemonSets(namespace string) v1beta2.DaemonSetInterface {\n\treturn newFakeDaemonSets(c, namespace)\n}\n\nfunc (c *FakeAppsV1beta2) Deployments(namespace string) v1beta2.DeploymentInterface {\n\treturn newFakeDeployments(c, namespace)\n}\n\nfunc (c *FakeAppsV1beta2) ReplicaSets(namespace string) v1beta2.ReplicaSetInterface {\n\treturn newFakeReplicaSets(c, namespace)\n}\n\nfunc (c *FakeAppsV1beta2) StatefulSets(namespace string) v1beta2.StatefulSetInterface {\n\treturn newFakeStatefulSets(c, namespace)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeAppsV1beta2) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_controllerrevision.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tappsv1beta2 \"k8s.io/client-go/applyconfigurations/apps/v1beta2\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedappsv1beta2 \"k8s.io/client-go/kubernetes/typed/apps/v1beta2\"\n)\n\n// fakeControllerRevisions implements ControllerRevisionInterface\ntype fakeControllerRevisions struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta2.ControllerRevision, *v1beta2.ControllerRevisionList, *appsv1beta2.ControllerRevisionApplyConfiguration]\n\tFake *FakeAppsV1beta2\n}\n\nfunc newFakeControllerRevisions(fake *FakeAppsV1beta2, namespace string) typedappsv1beta2.ControllerRevisionInterface {\n\treturn &fakeControllerRevisions{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta2.ControllerRevision, *v1beta2.ControllerRevisionList, *appsv1beta2.ControllerRevisionApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1beta2.SchemeGroupVersion.WithResource(\"controllerrevisions\"),\n\t\t\tv1beta2.SchemeGroupVersion.WithKind(\"ControllerRevision\"),\n\t\t\tfunc() *v1beta2.ControllerRevision { return &v1beta2.ControllerRevision{} },\n\t\t\tfunc() *v1beta2.ControllerRevisionList { return &v1beta2.ControllerRevisionList{} },\n\t\t\tfunc(dst, src *v1beta2.ControllerRevisionList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta2.ControllerRevisionList) []*v1beta2.ControllerRevision {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1beta2.ControllerRevisionList, items []*v1beta2.ControllerRevision) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_daemonset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tappsv1beta2 \"k8s.io/client-go/applyconfigurations/apps/v1beta2\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedappsv1beta2 \"k8s.io/client-go/kubernetes/typed/apps/v1beta2\"\n)\n\n// fakeDaemonSets implements DaemonSetInterface\ntype fakeDaemonSets struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta2.DaemonSet, *v1beta2.DaemonSetList, *appsv1beta2.DaemonSetApplyConfiguration]\n\tFake *FakeAppsV1beta2\n}\n\nfunc newFakeDaemonSets(fake *FakeAppsV1beta2, namespace string) typedappsv1beta2.DaemonSetInterface {\n\treturn &fakeDaemonSets{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta2.DaemonSet, *v1beta2.DaemonSetList, *appsv1beta2.DaemonSetApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1beta2.SchemeGroupVersion.WithResource(\"daemonsets\"),\n\t\t\tv1beta2.SchemeGroupVersion.WithKind(\"DaemonSet\"),\n\t\t\tfunc() *v1beta2.DaemonSet { return &v1beta2.DaemonSet{} },\n\t\t\tfunc() *v1beta2.DaemonSetList { return &v1beta2.DaemonSetList{} },\n\t\t\tfunc(dst, src *v1beta2.DaemonSetList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta2.DaemonSetList) []*v1beta2.DaemonSet { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1beta2.DaemonSetList, items []*v1beta2.DaemonSet) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_deployment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tappsv1beta2 \"k8s.io/client-go/applyconfigurations/apps/v1beta2\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedappsv1beta2 \"k8s.io/client-go/kubernetes/typed/apps/v1beta2\"\n)\n\n// fakeDeployments implements DeploymentInterface\ntype fakeDeployments struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta2.Deployment, *v1beta2.DeploymentList, *appsv1beta2.DeploymentApplyConfiguration]\n\tFake *FakeAppsV1beta2\n}\n\nfunc newFakeDeployments(fake *FakeAppsV1beta2, namespace string) typedappsv1beta2.DeploymentInterface {\n\treturn &fakeDeployments{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta2.Deployment, *v1beta2.DeploymentList, *appsv1beta2.DeploymentApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1beta2.SchemeGroupVersion.WithResource(\"deployments\"),\n\t\t\tv1beta2.SchemeGroupVersion.WithKind(\"Deployment\"),\n\t\t\tfunc() *v1beta2.Deployment { return &v1beta2.Deployment{} },\n\t\t\tfunc() *v1beta2.DeploymentList { return &v1beta2.DeploymentList{} },\n\t\t\tfunc(dst, src *v1beta2.DeploymentList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta2.DeploymentList) []*v1beta2.Deployment { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1beta2.DeploymentList, items []*v1beta2.Deployment) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_replicaset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tappsv1beta2 \"k8s.io/client-go/applyconfigurations/apps/v1beta2\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedappsv1beta2 \"k8s.io/client-go/kubernetes/typed/apps/v1beta2\"\n)\n\n// fakeReplicaSets implements ReplicaSetInterface\ntype fakeReplicaSets struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta2.ReplicaSet, *v1beta2.ReplicaSetList, *appsv1beta2.ReplicaSetApplyConfiguration]\n\tFake *FakeAppsV1beta2\n}\n\nfunc newFakeReplicaSets(fake *FakeAppsV1beta2, namespace string) typedappsv1beta2.ReplicaSetInterface {\n\treturn &fakeReplicaSets{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta2.ReplicaSet, *v1beta2.ReplicaSetList, *appsv1beta2.ReplicaSetApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1beta2.SchemeGroupVersion.WithResource(\"replicasets\"),\n\t\t\tv1beta2.SchemeGroupVersion.WithKind(\"ReplicaSet\"),\n\t\t\tfunc() *v1beta2.ReplicaSet { return &v1beta2.ReplicaSet{} },\n\t\t\tfunc() *v1beta2.ReplicaSetList { return &v1beta2.ReplicaSetList{} },\n\t\t\tfunc(dst, src *v1beta2.ReplicaSetList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta2.ReplicaSetList) []*v1beta2.ReplicaSet { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1beta2.ReplicaSetList, items []*v1beta2.ReplicaSet) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/fake_statefulset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tcontext \"context\"\n\tjson \"encoding/json\"\n\tfmt \"fmt\"\n\n\tv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tappsv1beta2 \"k8s.io/client-go/applyconfigurations/apps/v1beta2\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedappsv1beta2 \"k8s.io/client-go/kubernetes/typed/apps/v1beta2\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// fakeStatefulSets implements StatefulSetInterface\ntype fakeStatefulSets struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta2.StatefulSet, *v1beta2.StatefulSetList, *appsv1beta2.StatefulSetApplyConfiguration]\n\tFake *FakeAppsV1beta2\n}\n\nfunc newFakeStatefulSets(fake *FakeAppsV1beta2, namespace string) typedappsv1beta2.StatefulSetInterface {\n\treturn &fakeStatefulSets{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta2.StatefulSet, *v1beta2.StatefulSetList, *appsv1beta2.StatefulSetApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1beta2.SchemeGroupVersion.WithResource(\"statefulsets\"),\n\t\t\tv1beta2.SchemeGroupVersion.WithKind(\"StatefulSet\"),\n\t\t\tfunc() *v1beta2.StatefulSet { return &v1beta2.StatefulSet{} },\n\t\t\tfunc() *v1beta2.StatefulSetList { return &v1beta2.StatefulSetList{} },\n\t\t\tfunc(dst, src *v1beta2.StatefulSetList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta2.StatefulSetList) []*v1beta2.StatefulSet { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1beta2.StatefulSetList, items []*v1beta2.StatefulSet) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n\n// GetScale takes name of the statefulSet, and returns the corresponding scale object, and an error if there is any.\nfunc (c *fakeStatefulSets) GetScale(ctx context.Context, statefulSetName string, options v1.GetOptions) (result *v1beta2.Scale, err error) {\n\temptyResult := &v1beta2.Scale{}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetSubresourceActionWithOptions(c.Resource(), c.Namespace(), \"scale\", statefulSetName, options), emptyResult)\n\n\tif obj == nil {\n\t\treturn emptyResult, err\n\t}\n\treturn obj.(*v1beta2.Scale), err\n}\n\n// UpdateScale takes the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any.\nfunc (c *fakeStatefulSets) UpdateScale(ctx context.Context, statefulSetName string, scale *v1beta2.Scale, opts v1.UpdateOptions) (result *v1beta2.Scale, err error) {\n\temptyResult := &v1beta2.Scale{}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceActionWithOptions(c.Resource(), \"scale\", c.Namespace(), scale, opts), &v1beta2.Scale{})\n\n\tif obj == nil {\n\t\treturn emptyResult, err\n\t}\n\treturn obj.(*v1beta2.Scale), err\n}\n\n// ApplyScale takes top resource name and the apply declarative configuration for scale,\n// applies it and returns the applied scale, and an error, if there is any.\nfunc (c *fakeStatefulSets) ApplyScale(ctx context.Context, statefulSetName string, scale *appsv1beta2.ScaleApplyConfiguration, opts v1.ApplyOptions) (result *v1beta2.Scale, err error) {\n\tif scale == nil {\n\t\treturn nil, fmt.Errorf(\"scale provided to ApplyScale must not be nil\")\n\t}\n\tdata, err := json.Marshal(scale)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\temptyResult := &v1beta2.Scale{}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceActionWithOptions(c.Resource(), c.Namespace(), statefulSetName, types.ApplyPatchType, data, opts.ToPatchOptions(), \"scale\"), emptyResult)\n\n\tif obj == nil {\n\t\treturn emptyResult, err\n\t}\n\treturn obj.(*v1beta2.Scale), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta2\n\ntype ControllerRevisionExpansion interface{}\n\ntype DaemonSetExpansion interface{}\n\ntype DeploymentExpansion interface{}\n\ntype ReplicaSetExpansion interface{}\n\ntype StatefulSetExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/replicaset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tcontext \"context\"\n\n\tappsv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsappsv1beta2 \"k8s.io/client-go/applyconfigurations/apps/v1beta2\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// ReplicaSetsGetter has a method to return a ReplicaSetInterface.\n// A group's client should implement this interface.\ntype ReplicaSetsGetter interface {\n\tReplicaSets(namespace string) ReplicaSetInterface\n}\n\n// ReplicaSetInterface has methods to work with ReplicaSet resources.\ntype ReplicaSetInterface interface {\n\tCreate(ctx context.Context, replicaSet *appsv1beta2.ReplicaSet, opts v1.CreateOptions) (*appsv1beta2.ReplicaSet, error)\n\tUpdate(ctx context.Context, replicaSet *appsv1beta2.ReplicaSet, opts v1.UpdateOptions) (*appsv1beta2.ReplicaSet, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, replicaSet *appsv1beta2.ReplicaSet, opts v1.UpdateOptions) (*appsv1beta2.ReplicaSet, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*appsv1beta2.ReplicaSet, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*appsv1beta2.ReplicaSetList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *appsv1beta2.ReplicaSet, err error)\n\tApply(ctx context.Context, replicaSet *applyconfigurationsappsv1beta2.ReplicaSetApplyConfiguration, opts v1.ApplyOptions) (result *appsv1beta2.ReplicaSet, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, replicaSet *applyconfigurationsappsv1beta2.ReplicaSetApplyConfiguration, opts v1.ApplyOptions) (result *appsv1beta2.ReplicaSet, err error)\n\tReplicaSetExpansion\n}\n\n// replicaSets implements ReplicaSetInterface\ntype replicaSets struct {\n\t*gentype.ClientWithListAndApply[*appsv1beta2.ReplicaSet, *appsv1beta2.ReplicaSetList, *applyconfigurationsappsv1beta2.ReplicaSetApplyConfiguration]\n}\n\n// newReplicaSets returns a ReplicaSets\nfunc newReplicaSets(c *AppsV1beta2Client, namespace string) *replicaSets {\n\treturn &replicaSets{\n\t\tgentype.NewClientWithListAndApply[*appsv1beta2.ReplicaSet, *appsv1beta2.ReplicaSetList, *applyconfigurationsappsv1beta2.ReplicaSetApplyConfiguration](\n\t\t\t\"replicasets\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *appsv1beta2.ReplicaSet { return &appsv1beta2.ReplicaSet{} },\n\t\t\tfunc() *appsv1beta2.ReplicaSetList { return &appsv1beta2.ReplicaSetList{} },\n\t\t\tgentype.PrefersProtobuf[*appsv1beta2.ReplicaSet](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/apps/v1beta2/statefulset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tcontext \"context\"\n\tfmt \"fmt\"\n\n\tappsv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsappsv1beta2 \"k8s.io/client-go/applyconfigurations/apps/v1beta2\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\tapply \"k8s.io/client-go/util/apply\"\n)\n\n// StatefulSetsGetter has a method to return a StatefulSetInterface.\n// A group's client should implement this interface.\ntype StatefulSetsGetter interface {\n\tStatefulSets(namespace string) StatefulSetInterface\n}\n\n// StatefulSetInterface has methods to work with StatefulSet resources.\ntype StatefulSetInterface interface {\n\tCreate(ctx context.Context, statefulSet *appsv1beta2.StatefulSet, opts v1.CreateOptions) (*appsv1beta2.StatefulSet, error)\n\tUpdate(ctx context.Context, statefulSet *appsv1beta2.StatefulSet, opts v1.UpdateOptions) (*appsv1beta2.StatefulSet, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, statefulSet *appsv1beta2.StatefulSet, opts v1.UpdateOptions) (*appsv1beta2.StatefulSet, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*appsv1beta2.StatefulSet, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*appsv1beta2.StatefulSetList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *appsv1beta2.StatefulSet, err error)\n\tApply(ctx context.Context, statefulSet *applyconfigurationsappsv1beta2.StatefulSetApplyConfiguration, opts v1.ApplyOptions) (result *appsv1beta2.StatefulSet, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, statefulSet *applyconfigurationsappsv1beta2.StatefulSetApplyConfiguration, opts v1.ApplyOptions) (result *appsv1beta2.StatefulSet, err error)\n\tGetScale(ctx context.Context, statefulSetName string, options v1.GetOptions) (*appsv1beta2.Scale, error)\n\tUpdateScale(ctx context.Context, statefulSetName string, scale *appsv1beta2.Scale, opts v1.UpdateOptions) (*appsv1beta2.Scale, error)\n\tApplyScale(ctx context.Context, statefulSetName string, scale *applyconfigurationsappsv1beta2.ScaleApplyConfiguration, opts v1.ApplyOptions) (*appsv1beta2.Scale, error)\n\n\tStatefulSetExpansion\n}\n\n// statefulSets implements StatefulSetInterface\ntype statefulSets struct {\n\t*gentype.ClientWithListAndApply[*appsv1beta2.StatefulSet, *appsv1beta2.StatefulSetList, *applyconfigurationsappsv1beta2.StatefulSetApplyConfiguration]\n}\n\n// newStatefulSets returns a StatefulSets\nfunc newStatefulSets(c *AppsV1beta2Client, namespace string) *statefulSets {\n\treturn &statefulSets{\n\t\tgentype.NewClientWithListAndApply[*appsv1beta2.StatefulSet, *appsv1beta2.StatefulSetList, *applyconfigurationsappsv1beta2.StatefulSetApplyConfiguration](\n\t\t\t\"statefulsets\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *appsv1beta2.StatefulSet { return &appsv1beta2.StatefulSet{} },\n\t\t\tfunc() *appsv1beta2.StatefulSetList { return &appsv1beta2.StatefulSetList{} },\n\t\t\tgentype.PrefersProtobuf[*appsv1beta2.StatefulSet](),\n\t\t),\n\t}\n}\n\n// GetScale takes name of the statefulSet, and returns the corresponding appsv1beta2.Scale object, and an error if there is any.\nfunc (c *statefulSets) GetScale(ctx context.Context, statefulSetName string, options v1.GetOptions) (result *appsv1beta2.Scale, err error) {\n\tresult = &appsv1beta2.Scale{}\n\terr = c.GetClient().Get().\n\t\tUseProtobufAsDefault().\n\t\tNamespace(c.GetNamespace()).\n\t\tResource(\"statefulsets\").\n\t\tName(statefulSetName).\n\t\tSubResource(\"scale\").\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateScale takes the top resource name and the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any.\nfunc (c *statefulSets) UpdateScale(ctx context.Context, statefulSetName string, scale *appsv1beta2.Scale, opts v1.UpdateOptions) (result *appsv1beta2.Scale, err error) {\n\tresult = &appsv1beta2.Scale{}\n\terr = c.GetClient().Put().\n\t\tUseProtobufAsDefault().\n\t\tNamespace(c.GetNamespace()).\n\t\tResource(\"statefulsets\").\n\t\tName(statefulSetName).\n\t\tSubResource(\"scale\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(scale).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyScale takes top resource name and the apply declarative configuration for scale,\n// applies it and returns the applied scale, and an error, if there is any.\nfunc (c *statefulSets) ApplyScale(ctx context.Context, statefulSetName string, scale *applyconfigurationsappsv1beta2.ScaleApplyConfiguration, opts v1.ApplyOptions) (result *appsv1beta2.Scale, err error) {\n\tif scale == nil {\n\t\treturn nil, fmt.Errorf(\"scale provided to ApplyScale must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\trequest, err := apply.NewRequest(c.GetClient(), scale)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresult = &appsv1beta2.Scale{}\n\terr = request.\n\t\tUseProtobufAsDefault().\n\t\tNamespace(c.GetNamespace()).\n\t\tResource(\"statefulsets\").\n\t\tName(statefulSetName).\n\t\tSubResource(\"scale\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/authentication_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\thttp \"net/http\"\n\n\tauthenticationv1 \"k8s.io/api/authentication/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype AuthenticationV1Interface interface {\n\tRESTClient() rest.Interface\n\tSelfSubjectReviewsGetter\n\tTokenReviewsGetter\n}\n\n// AuthenticationV1Client is used to interact with features provided by the authentication.k8s.io group.\ntype AuthenticationV1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *AuthenticationV1Client) SelfSubjectReviews() SelfSubjectReviewInterface {\n\treturn newSelfSubjectReviews(c)\n}\n\nfunc (c *AuthenticationV1Client) TokenReviews() TokenReviewInterface {\n\treturn newTokenReviews(c)\n}\n\n// NewForConfig creates a new AuthenticationV1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*AuthenticationV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new AuthenticationV1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*AuthenticationV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &AuthenticationV1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new AuthenticationV1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *AuthenticationV1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new AuthenticationV1Client for the given RESTClient.\nfunc New(c rest.Interface) *AuthenticationV1Client {\n\treturn &AuthenticationV1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := authenticationv1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *AuthenticationV1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/fake/fake_authentication_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/client-go/kubernetes/typed/authentication/v1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeAuthenticationV1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeAuthenticationV1) SelfSubjectReviews() v1.SelfSubjectReviewInterface {\n\treturn newFakeSelfSubjectReviews(c)\n}\n\nfunc (c *FakeAuthenticationV1) TokenReviews() v1.TokenReviewInterface {\n\treturn newFakeTokenReviews(c)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeAuthenticationV1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/fake/fake_selfsubjectreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/authentication/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tauthenticationv1 \"k8s.io/client-go/kubernetes/typed/authentication/v1\"\n)\n\n// fakeSelfSubjectReviews implements SelfSubjectReviewInterface\ntype fakeSelfSubjectReviews struct {\n\t*gentype.FakeClient[*v1.SelfSubjectReview]\n\tFake *FakeAuthenticationV1\n}\n\nfunc newFakeSelfSubjectReviews(fake *FakeAuthenticationV1) authenticationv1.SelfSubjectReviewInterface {\n\treturn &fakeSelfSubjectReviews{\n\t\tgentype.NewFakeClient[*v1.SelfSubjectReview](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1.SchemeGroupVersion.WithResource(\"selfsubjectreviews\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"SelfSubjectReview\"),\n\t\t\tfunc() *v1.SelfSubjectReview { return &v1.SelfSubjectReview{} },\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/fake/fake_tokenreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/authentication/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tauthenticationv1 \"k8s.io/client-go/kubernetes/typed/authentication/v1\"\n)\n\n// fakeTokenReviews implements TokenReviewInterface\ntype fakeTokenReviews struct {\n\t*gentype.FakeClient[*v1.TokenReview]\n\tFake *FakeAuthenticationV1\n}\n\nfunc newFakeTokenReviews(fake *FakeAuthenticationV1) authenticationv1.TokenReviewInterface {\n\treturn &fakeTokenReviews{\n\t\tgentype.NewFakeClient[*v1.TokenReview](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1.SchemeGroupVersion.WithResource(\"tokenreviews\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"TokenReview\"),\n\t\t\tfunc() *v1.TokenReview { return &v1.TokenReview{} },\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\ntype SelfSubjectReviewExpansion interface{}\n\ntype TokenReviewExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/selfsubjectreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tauthenticationv1 \"k8s.io/api/authentication/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// SelfSubjectReviewsGetter has a method to return a SelfSubjectReviewInterface.\n// A group's client should implement this interface.\ntype SelfSubjectReviewsGetter interface {\n\tSelfSubjectReviews() SelfSubjectReviewInterface\n}\n\n// SelfSubjectReviewInterface has methods to work with SelfSubjectReview resources.\ntype SelfSubjectReviewInterface interface {\n\tCreate(ctx context.Context, selfSubjectReview *authenticationv1.SelfSubjectReview, opts metav1.CreateOptions) (*authenticationv1.SelfSubjectReview, error)\n\tSelfSubjectReviewExpansion\n}\n\n// selfSubjectReviews implements SelfSubjectReviewInterface\ntype selfSubjectReviews struct {\n\t*gentype.Client[*authenticationv1.SelfSubjectReview]\n}\n\n// newSelfSubjectReviews returns a SelfSubjectReviews\nfunc newSelfSubjectReviews(c *AuthenticationV1Client) *selfSubjectReviews {\n\treturn &selfSubjectReviews{\n\t\tgentype.NewClient[*authenticationv1.SelfSubjectReview](\n\t\t\t\"selfsubjectreviews\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *authenticationv1.SelfSubjectReview { return &authenticationv1.SelfSubjectReview{} },\n\t\t\tgentype.PrefersProtobuf[*authenticationv1.SelfSubjectReview](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1/tokenreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tauthenticationv1 \"k8s.io/api/authentication/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// TokenReviewsGetter has a method to return a TokenReviewInterface.\n// A group's client should implement this interface.\ntype TokenReviewsGetter interface {\n\tTokenReviews() TokenReviewInterface\n}\n\n// TokenReviewInterface has methods to work with TokenReview resources.\ntype TokenReviewInterface interface {\n\tCreate(ctx context.Context, tokenReview *authenticationv1.TokenReview, opts metav1.CreateOptions) (*authenticationv1.TokenReview, error)\n\tTokenReviewExpansion\n}\n\n// tokenReviews implements TokenReviewInterface\ntype tokenReviews struct {\n\t*gentype.Client[*authenticationv1.TokenReview]\n}\n\n// newTokenReviews returns a TokenReviews\nfunc newTokenReviews(c *AuthenticationV1Client) *tokenReviews {\n\treturn &tokenReviews{\n\t\tgentype.NewClient[*authenticationv1.TokenReview](\n\t\t\t\"tokenreviews\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *authenticationv1.TokenReview { return &authenticationv1.TokenReview{} },\n\t\t\tgentype.PrefersProtobuf[*authenticationv1.TokenReview](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1alpha1/authentication_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\thttp \"net/http\"\n\n\tauthenticationv1alpha1 \"k8s.io/api/authentication/v1alpha1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype AuthenticationV1alpha1Interface interface {\n\tRESTClient() rest.Interface\n\tSelfSubjectReviewsGetter\n}\n\n// AuthenticationV1alpha1Client is used to interact with features provided by the authentication.k8s.io group.\ntype AuthenticationV1alpha1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *AuthenticationV1alpha1Client) SelfSubjectReviews() SelfSubjectReviewInterface {\n\treturn newSelfSubjectReviews(c)\n}\n\n// NewForConfig creates a new AuthenticationV1alpha1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*AuthenticationV1alpha1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new AuthenticationV1alpha1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*AuthenticationV1alpha1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &AuthenticationV1alpha1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new AuthenticationV1alpha1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *AuthenticationV1alpha1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new AuthenticationV1alpha1Client for the given RESTClient.\nfunc New(c rest.Interface) *AuthenticationV1alpha1Client {\n\treturn &AuthenticationV1alpha1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := authenticationv1alpha1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *AuthenticationV1alpha1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1alpha1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1alpha1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1alpha1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1alpha1/fake/fake_authentication_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha1 \"k8s.io/client-go/kubernetes/typed/authentication/v1alpha1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeAuthenticationV1alpha1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeAuthenticationV1alpha1) SelfSubjectReviews() v1alpha1.SelfSubjectReviewInterface {\n\treturn newFakeSelfSubjectReviews(c)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeAuthenticationV1alpha1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1alpha1/fake/fake_selfsubjectreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha1 \"k8s.io/api/authentication/v1alpha1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tauthenticationv1alpha1 \"k8s.io/client-go/kubernetes/typed/authentication/v1alpha1\"\n)\n\n// fakeSelfSubjectReviews implements SelfSubjectReviewInterface\ntype fakeSelfSubjectReviews struct {\n\t*gentype.FakeClient[*v1alpha1.SelfSubjectReview]\n\tFake *FakeAuthenticationV1alpha1\n}\n\nfunc newFakeSelfSubjectReviews(fake *FakeAuthenticationV1alpha1) authenticationv1alpha1.SelfSubjectReviewInterface {\n\treturn &fakeSelfSubjectReviews{\n\t\tgentype.NewFakeClient[*v1alpha1.SelfSubjectReview](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1alpha1.SchemeGroupVersion.WithResource(\"selfsubjectreviews\"),\n\t\t\tv1alpha1.SchemeGroupVersion.WithKind(\"SelfSubjectReview\"),\n\t\t\tfunc() *v1alpha1.SelfSubjectReview { return &v1alpha1.SelfSubjectReview{} },\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1alpha1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\ntype SelfSubjectReviewExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1alpha1/selfsubjectreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcontext \"context\"\n\n\tauthenticationv1alpha1 \"k8s.io/api/authentication/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// SelfSubjectReviewsGetter has a method to return a SelfSubjectReviewInterface.\n// A group's client should implement this interface.\ntype SelfSubjectReviewsGetter interface {\n\tSelfSubjectReviews() SelfSubjectReviewInterface\n}\n\n// SelfSubjectReviewInterface has methods to work with SelfSubjectReview resources.\ntype SelfSubjectReviewInterface interface {\n\tCreate(ctx context.Context, selfSubjectReview *authenticationv1alpha1.SelfSubjectReview, opts v1.CreateOptions) (*authenticationv1alpha1.SelfSubjectReview, error)\n\tSelfSubjectReviewExpansion\n}\n\n// selfSubjectReviews implements SelfSubjectReviewInterface\ntype selfSubjectReviews struct {\n\t*gentype.Client[*authenticationv1alpha1.SelfSubjectReview]\n}\n\n// newSelfSubjectReviews returns a SelfSubjectReviews\nfunc newSelfSubjectReviews(c *AuthenticationV1alpha1Client) *selfSubjectReviews {\n\treturn &selfSubjectReviews{\n\t\tgentype.NewClient[*authenticationv1alpha1.SelfSubjectReview](\n\t\t\t\"selfsubjectreviews\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *authenticationv1alpha1.SelfSubjectReview { return &authenticationv1alpha1.SelfSubjectReview{} },\n\t\t\tgentype.PrefersProtobuf[*authenticationv1alpha1.SelfSubjectReview](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/authentication_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\thttp \"net/http\"\n\n\tauthenticationv1beta1 \"k8s.io/api/authentication/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype AuthenticationV1beta1Interface interface {\n\tRESTClient() rest.Interface\n\tSelfSubjectReviewsGetter\n\tTokenReviewsGetter\n}\n\n// AuthenticationV1beta1Client is used to interact with features provided by the authentication.k8s.io group.\ntype AuthenticationV1beta1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *AuthenticationV1beta1Client) SelfSubjectReviews() SelfSubjectReviewInterface {\n\treturn newSelfSubjectReviews(c)\n}\n\nfunc (c *AuthenticationV1beta1Client) TokenReviews() TokenReviewInterface {\n\treturn newTokenReviews(c)\n}\n\n// NewForConfig creates a new AuthenticationV1beta1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*AuthenticationV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new AuthenticationV1beta1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*AuthenticationV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &AuthenticationV1beta1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new AuthenticationV1beta1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *AuthenticationV1beta1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new AuthenticationV1beta1Client for the given RESTClient.\nfunc New(c rest.Interface) *AuthenticationV1beta1Client {\n\treturn &AuthenticationV1beta1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := authenticationv1beta1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *AuthenticationV1beta1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1beta1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/fake/fake_authentication_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/client-go/kubernetes/typed/authentication/v1beta1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeAuthenticationV1beta1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeAuthenticationV1beta1) SelfSubjectReviews() v1beta1.SelfSubjectReviewInterface {\n\treturn newFakeSelfSubjectReviews(c)\n}\n\nfunc (c *FakeAuthenticationV1beta1) TokenReviews() v1beta1.TokenReviewInterface {\n\treturn newFakeTokenReviews(c)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeAuthenticationV1beta1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/fake/fake_selfsubjectreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/authentication/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tauthenticationv1beta1 \"k8s.io/client-go/kubernetes/typed/authentication/v1beta1\"\n)\n\n// fakeSelfSubjectReviews implements SelfSubjectReviewInterface\ntype fakeSelfSubjectReviews struct {\n\t*gentype.FakeClient[*v1beta1.SelfSubjectReview]\n\tFake *FakeAuthenticationV1beta1\n}\n\nfunc newFakeSelfSubjectReviews(fake *FakeAuthenticationV1beta1) authenticationv1beta1.SelfSubjectReviewInterface {\n\treturn &fakeSelfSubjectReviews{\n\t\tgentype.NewFakeClient[*v1beta1.SelfSubjectReview](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"selfsubjectreviews\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"SelfSubjectReview\"),\n\t\t\tfunc() *v1beta1.SelfSubjectReview { return &v1beta1.SelfSubjectReview{} },\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/fake/fake_tokenreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/authentication/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tauthenticationv1beta1 \"k8s.io/client-go/kubernetes/typed/authentication/v1beta1\"\n)\n\n// fakeTokenReviews implements TokenReviewInterface\ntype fakeTokenReviews struct {\n\t*gentype.FakeClient[*v1beta1.TokenReview]\n\tFake *FakeAuthenticationV1beta1\n}\n\nfunc newFakeTokenReviews(fake *FakeAuthenticationV1beta1) authenticationv1beta1.TokenReviewInterface {\n\treturn &fakeTokenReviews{\n\t\tgentype.NewFakeClient[*v1beta1.TokenReview](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"tokenreviews\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"TokenReview\"),\n\t\t\tfunc() *v1beta1.TokenReview { return &v1beta1.TokenReview{} },\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\ntype SelfSubjectReviewExpansion interface{}\n\ntype TokenReviewExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/selfsubjectreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\tauthenticationv1beta1 \"k8s.io/api/authentication/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// SelfSubjectReviewsGetter has a method to return a SelfSubjectReviewInterface.\n// A group's client should implement this interface.\ntype SelfSubjectReviewsGetter interface {\n\tSelfSubjectReviews() SelfSubjectReviewInterface\n}\n\n// SelfSubjectReviewInterface has methods to work with SelfSubjectReview resources.\ntype SelfSubjectReviewInterface interface {\n\tCreate(ctx context.Context, selfSubjectReview *authenticationv1beta1.SelfSubjectReview, opts v1.CreateOptions) (*authenticationv1beta1.SelfSubjectReview, error)\n\tSelfSubjectReviewExpansion\n}\n\n// selfSubjectReviews implements SelfSubjectReviewInterface\ntype selfSubjectReviews struct {\n\t*gentype.Client[*authenticationv1beta1.SelfSubjectReview]\n}\n\n// newSelfSubjectReviews returns a SelfSubjectReviews\nfunc newSelfSubjectReviews(c *AuthenticationV1beta1Client) *selfSubjectReviews {\n\treturn &selfSubjectReviews{\n\t\tgentype.NewClient[*authenticationv1beta1.SelfSubjectReview](\n\t\t\t\"selfsubjectreviews\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *authenticationv1beta1.SelfSubjectReview { return &authenticationv1beta1.SelfSubjectReview{} },\n\t\t\tgentype.PrefersProtobuf[*authenticationv1beta1.SelfSubjectReview](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/tokenreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\tauthenticationv1beta1 \"k8s.io/api/authentication/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// TokenReviewsGetter has a method to return a TokenReviewInterface.\n// A group's client should implement this interface.\ntype TokenReviewsGetter interface {\n\tTokenReviews() TokenReviewInterface\n}\n\n// TokenReviewInterface has methods to work with TokenReview resources.\ntype TokenReviewInterface interface {\n\tCreate(ctx context.Context, tokenReview *authenticationv1beta1.TokenReview, opts v1.CreateOptions) (*authenticationv1beta1.TokenReview, error)\n\tTokenReviewExpansion\n}\n\n// tokenReviews implements TokenReviewInterface\ntype tokenReviews struct {\n\t*gentype.Client[*authenticationv1beta1.TokenReview]\n}\n\n// newTokenReviews returns a TokenReviews\nfunc newTokenReviews(c *AuthenticationV1beta1Client) *tokenReviews {\n\treturn &tokenReviews{\n\t\tgentype.NewClient[*authenticationv1beta1.TokenReview](\n\t\t\t\"tokenreviews\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *authenticationv1beta1.TokenReview { return &authenticationv1beta1.TokenReview{} },\n\t\t\tgentype.PrefersProtobuf[*authenticationv1beta1.TokenReview](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/authorization_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\thttp \"net/http\"\n\n\tauthorizationv1 \"k8s.io/api/authorization/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype AuthorizationV1Interface interface {\n\tRESTClient() rest.Interface\n\tLocalSubjectAccessReviewsGetter\n\tSelfSubjectAccessReviewsGetter\n\tSelfSubjectRulesReviewsGetter\n\tSubjectAccessReviewsGetter\n}\n\n// AuthorizationV1Client is used to interact with features provided by the authorization.k8s.io group.\ntype AuthorizationV1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *AuthorizationV1Client) LocalSubjectAccessReviews(namespace string) LocalSubjectAccessReviewInterface {\n\treturn newLocalSubjectAccessReviews(c, namespace)\n}\n\nfunc (c *AuthorizationV1Client) SelfSubjectAccessReviews() SelfSubjectAccessReviewInterface {\n\treturn newSelfSubjectAccessReviews(c)\n}\n\nfunc (c *AuthorizationV1Client) SelfSubjectRulesReviews() SelfSubjectRulesReviewInterface {\n\treturn newSelfSubjectRulesReviews(c)\n}\n\nfunc (c *AuthorizationV1Client) SubjectAccessReviews() SubjectAccessReviewInterface {\n\treturn newSubjectAccessReviews(c)\n}\n\n// NewForConfig creates a new AuthorizationV1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*AuthorizationV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new AuthorizationV1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*AuthorizationV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &AuthorizationV1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new AuthorizationV1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *AuthorizationV1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new AuthorizationV1Client for the given RESTClient.\nfunc New(c rest.Interface) *AuthorizationV1Client {\n\treturn &AuthorizationV1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := authorizationv1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *AuthorizationV1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/fake_authorization_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/client-go/kubernetes/typed/authorization/v1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeAuthorizationV1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeAuthorizationV1) LocalSubjectAccessReviews(namespace string) v1.LocalSubjectAccessReviewInterface {\n\treturn newFakeLocalSubjectAccessReviews(c, namespace)\n}\n\nfunc (c *FakeAuthorizationV1) SelfSubjectAccessReviews() v1.SelfSubjectAccessReviewInterface {\n\treturn newFakeSelfSubjectAccessReviews(c)\n}\n\nfunc (c *FakeAuthorizationV1) SelfSubjectRulesReviews() v1.SelfSubjectRulesReviewInterface {\n\treturn newFakeSelfSubjectRulesReviews(c)\n}\n\nfunc (c *FakeAuthorizationV1) SubjectAccessReviews() v1.SubjectAccessReviewInterface {\n\treturn newFakeSubjectAccessReviews(c)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeAuthorizationV1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/fake_localsubjectaccessreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/authorization/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tauthorizationv1 \"k8s.io/client-go/kubernetes/typed/authorization/v1\"\n)\n\n// fakeLocalSubjectAccessReviews implements LocalSubjectAccessReviewInterface\ntype fakeLocalSubjectAccessReviews struct {\n\t*gentype.FakeClient[*v1.LocalSubjectAccessReview]\n\tFake *FakeAuthorizationV1\n}\n\nfunc newFakeLocalSubjectAccessReviews(fake *FakeAuthorizationV1, namespace string) authorizationv1.LocalSubjectAccessReviewInterface {\n\treturn &fakeLocalSubjectAccessReviews{\n\t\tgentype.NewFakeClient[*v1.LocalSubjectAccessReview](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1.SchemeGroupVersion.WithResource(\"localsubjectaccessreviews\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"LocalSubjectAccessReview\"),\n\t\t\tfunc() *v1.LocalSubjectAccessReview { return &v1.LocalSubjectAccessReview{} },\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/fake_selfsubjectaccessreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/authorization/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tauthorizationv1 \"k8s.io/client-go/kubernetes/typed/authorization/v1\"\n)\n\n// fakeSelfSubjectAccessReviews implements SelfSubjectAccessReviewInterface\ntype fakeSelfSubjectAccessReviews struct {\n\t*gentype.FakeClient[*v1.SelfSubjectAccessReview]\n\tFake *FakeAuthorizationV1\n}\n\nfunc newFakeSelfSubjectAccessReviews(fake *FakeAuthorizationV1) authorizationv1.SelfSubjectAccessReviewInterface {\n\treturn &fakeSelfSubjectAccessReviews{\n\t\tgentype.NewFakeClient[*v1.SelfSubjectAccessReview](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1.SchemeGroupVersion.WithResource(\"selfsubjectaccessreviews\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"SelfSubjectAccessReview\"),\n\t\t\tfunc() *v1.SelfSubjectAccessReview { return &v1.SelfSubjectAccessReview{} },\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/fake_selfsubjectrulesreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/authorization/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tauthorizationv1 \"k8s.io/client-go/kubernetes/typed/authorization/v1\"\n)\n\n// fakeSelfSubjectRulesReviews implements SelfSubjectRulesReviewInterface\ntype fakeSelfSubjectRulesReviews struct {\n\t*gentype.FakeClient[*v1.SelfSubjectRulesReview]\n\tFake *FakeAuthorizationV1\n}\n\nfunc newFakeSelfSubjectRulesReviews(fake *FakeAuthorizationV1) authorizationv1.SelfSubjectRulesReviewInterface {\n\treturn &fakeSelfSubjectRulesReviews{\n\t\tgentype.NewFakeClient[*v1.SelfSubjectRulesReview](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1.SchemeGroupVersion.WithResource(\"selfsubjectrulesreviews\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"SelfSubjectRulesReview\"),\n\t\t\tfunc() *v1.SelfSubjectRulesReview { return &v1.SelfSubjectRulesReview{} },\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/fake_subjectaccessreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/authorization/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tauthorizationv1 \"k8s.io/client-go/kubernetes/typed/authorization/v1\"\n)\n\n// fakeSubjectAccessReviews implements SubjectAccessReviewInterface\ntype fakeSubjectAccessReviews struct {\n\t*gentype.FakeClient[*v1.SubjectAccessReview]\n\tFake *FakeAuthorizationV1\n}\n\nfunc newFakeSubjectAccessReviews(fake *FakeAuthorizationV1) authorizationv1.SubjectAccessReviewInterface {\n\treturn &fakeSubjectAccessReviews{\n\t\tgentype.NewFakeClient[*v1.SubjectAccessReview](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1.SchemeGroupVersion.WithResource(\"subjectaccessreviews\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"SubjectAccessReview\"),\n\t\t\tfunc() *v1.SubjectAccessReview { return &v1.SubjectAccessReview{} },\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\ntype LocalSubjectAccessReviewExpansion interface{}\n\ntype SelfSubjectAccessReviewExpansion interface{}\n\ntype SelfSubjectRulesReviewExpansion interface{}\n\ntype SubjectAccessReviewExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/localsubjectaccessreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tauthorizationv1 \"k8s.io/api/authorization/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// LocalSubjectAccessReviewsGetter has a method to return a LocalSubjectAccessReviewInterface.\n// A group's client should implement this interface.\ntype LocalSubjectAccessReviewsGetter interface {\n\tLocalSubjectAccessReviews(namespace string) LocalSubjectAccessReviewInterface\n}\n\n// LocalSubjectAccessReviewInterface has methods to work with LocalSubjectAccessReview resources.\ntype LocalSubjectAccessReviewInterface interface {\n\tCreate(ctx context.Context, localSubjectAccessReview *authorizationv1.LocalSubjectAccessReview, opts metav1.CreateOptions) (*authorizationv1.LocalSubjectAccessReview, error)\n\tLocalSubjectAccessReviewExpansion\n}\n\n// localSubjectAccessReviews implements LocalSubjectAccessReviewInterface\ntype localSubjectAccessReviews struct {\n\t*gentype.Client[*authorizationv1.LocalSubjectAccessReview]\n}\n\n// newLocalSubjectAccessReviews returns a LocalSubjectAccessReviews\nfunc newLocalSubjectAccessReviews(c *AuthorizationV1Client, namespace string) *localSubjectAccessReviews {\n\treturn &localSubjectAccessReviews{\n\t\tgentype.NewClient[*authorizationv1.LocalSubjectAccessReview](\n\t\t\t\"localsubjectaccessreviews\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *authorizationv1.LocalSubjectAccessReview { return &authorizationv1.LocalSubjectAccessReview{} },\n\t\t\tgentype.PrefersProtobuf[*authorizationv1.LocalSubjectAccessReview](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/selfsubjectaccessreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tauthorizationv1 \"k8s.io/api/authorization/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// SelfSubjectAccessReviewsGetter has a method to return a SelfSubjectAccessReviewInterface.\n// A group's client should implement this interface.\ntype SelfSubjectAccessReviewsGetter interface {\n\tSelfSubjectAccessReviews() SelfSubjectAccessReviewInterface\n}\n\n// SelfSubjectAccessReviewInterface has methods to work with SelfSubjectAccessReview resources.\ntype SelfSubjectAccessReviewInterface interface {\n\tCreate(ctx context.Context, selfSubjectAccessReview *authorizationv1.SelfSubjectAccessReview, opts metav1.CreateOptions) (*authorizationv1.SelfSubjectAccessReview, error)\n\tSelfSubjectAccessReviewExpansion\n}\n\n// selfSubjectAccessReviews implements SelfSubjectAccessReviewInterface\ntype selfSubjectAccessReviews struct {\n\t*gentype.Client[*authorizationv1.SelfSubjectAccessReview]\n}\n\n// newSelfSubjectAccessReviews returns a SelfSubjectAccessReviews\nfunc newSelfSubjectAccessReviews(c *AuthorizationV1Client) *selfSubjectAccessReviews {\n\treturn &selfSubjectAccessReviews{\n\t\tgentype.NewClient[*authorizationv1.SelfSubjectAccessReview](\n\t\t\t\"selfsubjectaccessreviews\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *authorizationv1.SelfSubjectAccessReview { return &authorizationv1.SelfSubjectAccessReview{} },\n\t\t\tgentype.PrefersProtobuf[*authorizationv1.SelfSubjectAccessReview](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/selfsubjectrulesreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tauthorizationv1 \"k8s.io/api/authorization/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// SelfSubjectRulesReviewsGetter has a method to return a SelfSubjectRulesReviewInterface.\n// A group's client should implement this interface.\ntype SelfSubjectRulesReviewsGetter interface {\n\tSelfSubjectRulesReviews() SelfSubjectRulesReviewInterface\n}\n\n// SelfSubjectRulesReviewInterface has methods to work with SelfSubjectRulesReview resources.\ntype SelfSubjectRulesReviewInterface interface {\n\tCreate(ctx context.Context, selfSubjectRulesReview *authorizationv1.SelfSubjectRulesReview, opts metav1.CreateOptions) (*authorizationv1.SelfSubjectRulesReview, error)\n\tSelfSubjectRulesReviewExpansion\n}\n\n// selfSubjectRulesReviews implements SelfSubjectRulesReviewInterface\ntype selfSubjectRulesReviews struct {\n\t*gentype.Client[*authorizationv1.SelfSubjectRulesReview]\n}\n\n// newSelfSubjectRulesReviews returns a SelfSubjectRulesReviews\nfunc newSelfSubjectRulesReviews(c *AuthorizationV1Client) *selfSubjectRulesReviews {\n\treturn &selfSubjectRulesReviews{\n\t\tgentype.NewClient[*authorizationv1.SelfSubjectRulesReview](\n\t\t\t\"selfsubjectrulesreviews\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *authorizationv1.SelfSubjectRulesReview { return &authorizationv1.SelfSubjectRulesReview{} },\n\t\t\tgentype.PrefersProtobuf[*authorizationv1.SelfSubjectRulesReview](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1/subjectaccessreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tauthorizationv1 \"k8s.io/api/authorization/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// SubjectAccessReviewsGetter has a method to return a SubjectAccessReviewInterface.\n// A group's client should implement this interface.\ntype SubjectAccessReviewsGetter interface {\n\tSubjectAccessReviews() SubjectAccessReviewInterface\n}\n\n// SubjectAccessReviewInterface has methods to work with SubjectAccessReview resources.\ntype SubjectAccessReviewInterface interface {\n\tCreate(ctx context.Context, subjectAccessReview *authorizationv1.SubjectAccessReview, opts metav1.CreateOptions) (*authorizationv1.SubjectAccessReview, error)\n\tSubjectAccessReviewExpansion\n}\n\n// subjectAccessReviews implements SubjectAccessReviewInterface\ntype subjectAccessReviews struct {\n\t*gentype.Client[*authorizationv1.SubjectAccessReview]\n}\n\n// newSubjectAccessReviews returns a SubjectAccessReviews\nfunc newSubjectAccessReviews(c *AuthorizationV1Client) *subjectAccessReviews {\n\treturn &subjectAccessReviews{\n\t\tgentype.NewClient[*authorizationv1.SubjectAccessReview](\n\t\t\t\"subjectaccessreviews\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *authorizationv1.SubjectAccessReview { return &authorizationv1.SubjectAccessReview{} },\n\t\t\tgentype.PrefersProtobuf[*authorizationv1.SubjectAccessReview](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/authorization_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\thttp \"net/http\"\n\n\tauthorizationv1beta1 \"k8s.io/api/authorization/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype AuthorizationV1beta1Interface interface {\n\tRESTClient() rest.Interface\n\tLocalSubjectAccessReviewsGetter\n\tSelfSubjectAccessReviewsGetter\n\tSelfSubjectRulesReviewsGetter\n\tSubjectAccessReviewsGetter\n}\n\n// AuthorizationV1beta1Client is used to interact with features provided by the authorization.k8s.io group.\ntype AuthorizationV1beta1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *AuthorizationV1beta1Client) LocalSubjectAccessReviews(namespace string) LocalSubjectAccessReviewInterface {\n\treturn newLocalSubjectAccessReviews(c, namespace)\n}\n\nfunc (c *AuthorizationV1beta1Client) SelfSubjectAccessReviews() SelfSubjectAccessReviewInterface {\n\treturn newSelfSubjectAccessReviews(c)\n}\n\nfunc (c *AuthorizationV1beta1Client) SelfSubjectRulesReviews() SelfSubjectRulesReviewInterface {\n\treturn newSelfSubjectRulesReviews(c)\n}\n\nfunc (c *AuthorizationV1beta1Client) SubjectAccessReviews() SubjectAccessReviewInterface {\n\treturn newSubjectAccessReviews(c)\n}\n\n// NewForConfig creates a new AuthorizationV1beta1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*AuthorizationV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new AuthorizationV1beta1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*AuthorizationV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &AuthorizationV1beta1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new AuthorizationV1beta1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *AuthorizationV1beta1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new AuthorizationV1beta1Client for the given RESTClient.\nfunc New(c rest.Interface) *AuthorizationV1beta1Client {\n\treturn &AuthorizationV1beta1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := authorizationv1beta1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *AuthorizationV1beta1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1beta1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/fake_authorization_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/client-go/kubernetes/typed/authorization/v1beta1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeAuthorizationV1beta1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeAuthorizationV1beta1) LocalSubjectAccessReviews(namespace string) v1beta1.LocalSubjectAccessReviewInterface {\n\treturn newFakeLocalSubjectAccessReviews(c, namespace)\n}\n\nfunc (c *FakeAuthorizationV1beta1) SelfSubjectAccessReviews() v1beta1.SelfSubjectAccessReviewInterface {\n\treturn newFakeSelfSubjectAccessReviews(c)\n}\n\nfunc (c *FakeAuthorizationV1beta1) SelfSubjectRulesReviews() v1beta1.SelfSubjectRulesReviewInterface {\n\treturn newFakeSelfSubjectRulesReviews(c)\n}\n\nfunc (c *FakeAuthorizationV1beta1) SubjectAccessReviews() v1beta1.SubjectAccessReviewInterface {\n\treturn newFakeSubjectAccessReviews(c)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeAuthorizationV1beta1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/fake_localsubjectaccessreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/authorization/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tauthorizationv1beta1 \"k8s.io/client-go/kubernetes/typed/authorization/v1beta1\"\n)\n\n// fakeLocalSubjectAccessReviews implements LocalSubjectAccessReviewInterface\ntype fakeLocalSubjectAccessReviews struct {\n\t*gentype.FakeClient[*v1beta1.LocalSubjectAccessReview]\n\tFake *FakeAuthorizationV1beta1\n}\n\nfunc newFakeLocalSubjectAccessReviews(fake *FakeAuthorizationV1beta1, namespace string) authorizationv1beta1.LocalSubjectAccessReviewInterface {\n\treturn &fakeLocalSubjectAccessReviews{\n\t\tgentype.NewFakeClient[*v1beta1.LocalSubjectAccessReview](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"localsubjectaccessreviews\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"LocalSubjectAccessReview\"),\n\t\t\tfunc() *v1beta1.LocalSubjectAccessReview { return &v1beta1.LocalSubjectAccessReview{} },\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/fake_selfsubjectaccessreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/authorization/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tauthorizationv1beta1 \"k8s.io/client-go/kubernetes/typed/authorization/v1beta1\"\n)\n\n// fakeSelfSubjectAccessReviews implements SelfSubjectAccessReviewInterface\ntype fakeSelfSubjectAccessReviews struct {\n\t*gentype.FakeClient[*v1beta1.SelfSubjectAccessReview]\n\tFake *FakeAuthorizationV1beta1\n}\n\nfunc newFakeSelfSubjectAccessReviews(fake *FakeAuthorizationV1beta1) authorizationv1beta1.SelfSubjectAccessReviewInterface {\n\treturn &fakeSelfSubjectAccessReviews{\n\t\tgentype.NewFakeClient[*v1beta1.SelfSubjectAccessReview](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"selfsubjectaccessreviews\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"SelfSubjectAccessReview\"),\n\t\t\tfunc() *v1beta1.SelfSubjectAccessReview { return &v1beta1.SelfSubjectAccessReview{} },\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/fake_selfsubjectrulesreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/authorization/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tauthorizationv1beta1 \"k8s.io/client-go/kubernetes/typed/authorization/v1beta1\"\n)\n\n// fakeSelfSubjectRulesReviews implements SelfSubjectRulesReviewInterface\ntype fakeSelfSubjectRulesReviews struct {\n\t*gentype.FakeClient[*v1beta1.SelfSubjectRulesReview]\n\tFake *FakeAuthorizationV1beta1\n}\n\nfunc newFakeSelfSubjectRulesReviews(fake *FakeAuthorizationV1beta1) authorizationv1beta1.SelfSubjectRulesReviewInterface {\n\treturn &fakeSelfSubjectRulesReviews{\n\t\tgentype.NewFakeClient[*v1beta1.SelfSubjectRulesReview](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"selfsubjectrulesreviews\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"SelfSubjectRulesReview\"),\n\t\t\tfunc() *v1beta1.SelfSubjectRulesReview { return &v1beta1.SelfSubjectRulesReview{} },\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/fake_subjectaccessreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/authorization/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tauthorizationv1beta1 \"k8s.io/client-go/kubernetes/typed/authorization/v1beta1\"\n)\n\n// fakeSubjectAccessReviews implements SubjectAccessReviewInterface\ntype fakeSubjectAccessReviews struct {\n\t*gentype.FakeClient[*v1beta1.SubjectAccessReview]\n\tFake *FakeAuthorizationV1beta1\n}\n\nfunc newFakeSubjectAccessReviews(fake *FakeAuthorizationV1beta1) authorizationv1beta1.SubjectAccessReviewInterface {\n\treturn &fakeSubjectAccessReviews{\n\t\tgentype.NewFakeClient[*v1beta1.SubjectAccessReview](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"subjectaccessreviews\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"SubjectAccessReview\"),\n\t\t\tfunc() *v1beta1.SubjectAccessReview { return &v1beta1.SubjectAccessReview{} },\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\ntype LocalSubjectAccessReviewExpansion interface{}\n\ntype SelfSubjectAccessReviewExpansion interface{}\n\ntype SelfSubjectRulesReviewExpansion interface{}\n\ntype SubjectAccessReviewExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/localsubjectaccessreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\tauthorizationv1beta1 \"k8s.io/api/authorization/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// LocalSubjectAccessReviewsGetter has a method to return a LocalSubjectAccessReviewInterface.\n// A group's client should implement this interface.\ntype LocalSubjectAccessReviewsGetter interface {\n\tLocalSubjectAccessReviews(namespace string) LocalSubjectAccessReviewInterface\n}\n\n// LocalSubjectAccessReviewInterface has methods to work with LocalSubjectAccessReview resources.\ntype LocalSubjectAccessReviewInterface interface {\n\tCreate(ctx context.Context, localSubjectAccessReview *authorizationv1beta1.LocalSubjectAccessReview, opts v1.CreateOptions) (*authorizationv1beta1.LocalSubjectAccessReview, error)\n\tLocalSubjectAccessReviewExpansion\n}\n\n// localSubjectAccessReviews implements LocalSubjectAccessReviewInterface\ntype localSubjectAccessReviews struct {\n\t*gentype.Client[*authorizationv1beta1.LocalSubjectAccessReview]\n}\n\n// newLocalSubjectAccessReviews returns a LocalSubjectAccessReviews\nfunc newLocalSubjectAccessReviews(c *AuthorizationV1beta1Client, namespace string) *localSubjectAccessReviews {\n\treturn &localSubjectAccessReviews{\n\t\tgentype.NewClient[*authorizationv1beta1.LocalSubjectAccessReview](\n\t\t\t\"localsubjectaccessreviews\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *authorizationv1beta1.LocalSubjectAccessReview {\n\t\t\t\treturn &authorizationv1beta1.LocalSubjectAccessReview{}\n\t\t\t},\n\t\t\tgentype.PrefersProtobuf[*authorizationv1beta1.LocalSubjectAccessReview](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/selfsubjectaccessreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\tauthorizationv1beta1 \"k8s.io/api/authorization/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// SelfSubjectAccessReviewsGetter has a method to return a SelfSubjectAccessReviewInterface.\n// A group's client should implement this interface.\ntype SelfSubjectAccessReviewsGetter interface {\n\tSelfSubjectAccessReviews() SelfSubjectAccessReviewInterface\n}\n\n// SelfSubjectAccessReviewInterface has methods to work with SelfSubjectAccessReview resources.\ntype SelfSubjectAccessReviewInterface interface {\n\tCreate(ctx context.Context, selfSubjectAccessReview *authorizationv1beta1.SelfSubjectAccessReview, opts v1.CreateOptions) (*authorizationv1beta1.SelfSubjectAccessReview, error)\n\tSelfSubjectAccessReviewExpansion\n}\n\n// selfSubjectAccessReviews implements SelfSubjectAccessReviewInterface\ntype selfSubjectAccessReviews struct {\n\t*gentype.Client[*authorizationv1beta1.SelfSubjectAccessReview]\n}\n\n// newSelfSubjectAccessReviews returns a SelfSubjectAccessReviews\nfunc newSelfSubjectAccessReviews(c *AuthorizationV1beta1Client) *selfSubjectAccessReviews {\n\treturn &selfSubjectAccessReviews{\n\t\tgentype.NewClient[*authorizationv1beta1.SelfSubjectAccessReview](\n\t\t\t\"selfsubjectaccessreviews\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *authorizationv1beta1.SelfSubjectAccessReview {\n\t\t\t\treturn &authorizationv1beta1.SelfSubjectAccessReview{}\n\t\t\t},\n\t\t\tgentype.PrefersProtobuf[*authorizationv1beta1.SelfSubjectAccessReview](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/selfsubjectrulesreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\tauthorizationv1beta1 \"k8s.io/api/authorization/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// SelfSubjectRulesReviewsGetter has a method to return a SelfSubjectRulesReviewInterface.\n// A group's client should implement this interface.\ntype SelfSubjectRulesReviewsGetter interface {\n\tSelfSubjectRulesReviews() SelfSubjectRulesReviewInterface\n}\n\n// SelfSubjectRulesReviewInterface has methods to work with SelfSubjectRulesReview resources.\ntype SelfSubjectRulesReviewInterface interface {\n\tCreate(ctx context.Context, selfSubjectRulesReview *authorizationv1beta1.SelfSubjectRulesReview, opts v1.CreateOptions) (*authorizationv1beta1.SelfSubjectRulesReview, error)\n\tSelfSubjectRulesReviewExpansion\n}\n\n// selfSubjectRulesReviews implements SelfSubjectRulesReviewInterface\ntype selfSubjectRulesReviews struct {\n\t*gentype.Client[*authorizationv1beta1.SelfSubjectRulesReview]\n}\n\n// newSelfSubjectRulesReviews returns a SelfSubjectRulesReviews\nfunc newSelfSubjectRulesReviews(c *AuthorizationV1beta1Client) *selfSubjectRulesReviews {\n\treturn &selfSubjectRulesReviews{\n\t\tgentype.NewClient[*authorizationv1beta1.SelfSubjectRulesReview](\n\t\t\t\"selfsubjectrulesreviews\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *authorizationv1beta1.SelfSubjectRulesReview {\n\t\t\t\treturn &authorizationv1beta1.SelfSubjectRulesReview{}\n\t\t\t},\n\t\t\tgentype.PrefersProtobuf[*authorizationv1beta1.SelfSubjectRulesReview](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/subjectaccessreview.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\tauthorizationv1beta1 \"k8s.io/api/authorization/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// SubjectAccessReviewsGetter has a method to return a SubjectAccessReviewInterface.\n// A group's client should implement this interface.\ntype SubjectAccessReviewsGetter interface {\n\tSubjectAccessReviews() SubjectAccessReviewInterface\n}\n\n// SubjectAccessReviewInterface has methods to work with SubjectAccessReview resources.\ntype SubjectAccessReviewInterface interface {\n\tCreate(ctx context.Context, subjectAccessReview *authorizationv1beta1.SubjectAccessReview, opts v1.CreateOptions) (*authorizationv1beta1.SubjectAccessReview, error)\n\tSubjectAccessReviewExpansion\n}\n\n// subjectAccessReviews implements SubjectAccessReviewInterface\ntype subjectAccessReviews struct {\n\t*gentype.Client[*authorizationv1beta1.SubjectAccessReview]\n}\n\n// newSubjectAccessReviews returns a SubjectAccessReviews\nfunc newSubjectAccessReviews(c *AuthorizationV1beta1Client) *subjectAccessReviews {\n\treturn &subjectAccessReviews{\n\t\tgentype.NewClient[*authorizationv1beta1.SubjectAccessReview](\n\t\t\t\"subjectaccessreviews\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *authorizationv1beta1.SubjectAccessReview { return &authorizationv1beta1.SubjectAccessReview{} },\n\t\t\tgentype.PrefersProtobuf[*authorizationv1beta1.SubjectAccessReview](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/autoscaling_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\thttp \"net/http\"\n\n\tautoscalingv1 \"k8s.io/api/autoscaling/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype AutoscalingV1Interface interface {\n\tRESTClient() rest.Interface\n\tHorizontalPodAutoscalersGetter\n}\n\n// AutoscalingV1Client is used to interact with features provided by the autoscaling group.\ntype AutoscalingV1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *AutoscalingV1Client) HorizontalPodAutoscalers(namespace string) HorizontalPodAutoscalerInterface {\n\treturn newHorizontalPodAutoscalers(c, namespace)\n}\n\n// NewForConfig creates a new AutoscalingV1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*AutoscalingV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new AutoscalingV1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*AutoscalingV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &AutoscalingV1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new AutoscalingV1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *AutoscalingV1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new AutoscalingV1Client for the given RESTClient.\nfunc New(c rest.Interface) *AutoscalingV1Client {\n\treturn &AutoscalingV1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := autoscalingv1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *AutoscalingV1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake/fake_autoscaling_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/client-go/kubernetes/typed/autoscaling/v1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeAutoscalingV1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeAutoscalingV1) HorizontalPodAutoscalers(namespace string) v1.HorizontalPodAutoscalerInterface {\n\treturn newFakeHorizontalPodAutoscalers(c, namespace)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeAutoscalingV1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake/fake_horizontalpodautoscaler.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/autoscaling/v1\"\n\tautoscalingv1 \"k8s.io/client-go/applyconfigurations/autoscaling/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedautoscalingv1 \"k8s.io/client-go/kubernetes/typed/autoscaling/v1\"\n)\n\n// fakeHorizontalPodAutoscalers implements HorizontalPodAutoscalerInterface\ntype fakeHorizontalPodAutoscalers struct {\n\t*gentype.FakeClientWithListAndApply[*v1.HorizontalPodAutoscaler, *v1.HorizontalPodAutoscalerList, *autoscalingv1.HorizontalPodAutoscalerApplyConfiguration]\n\tFake *FakeAutoscalingV1\n}\n\nfunc newFakeHorizontalPodAutoscalers(fake *FakeAutoscalingV1, namespace string) typedautoscalingv1.HorizontalPodAutoscalerInterface {\n\treturn &fakeHorizontalPodAutoscalers{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.HorizontalPodAutoscaler, *v1.HorizontalPodAutoscalerList, *autoscalingv1.HorizontalPodAutoscalerApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1.SchemeGroupVersion.WithResource(\"horizontalpodautoscalers\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"HorizontalPodAutoscaler\"),\n\t\t\tfunc() *v1.HorizontalPodAutoscaler { return &v1.HorizontalPodAutoscaler{} },\n\t\t\tfunc() *v1.HorizontalPodAutoscalerList { return &v1.HorizontalPodAutoscalerList{} },\n\t\t\tfunc(dst, src *v1.HorizontalPodAutoscalerList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.HorizontalPodAutoscalerList) []*v1.HorizontalPodAutoscaler {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1.HorizontalPodAutoscalerList, items []*v1.HorizontalPodAutoscaler) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\ntype HorizontalPodAutoscalerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v1/horizontalpodautoscaler.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tautoscalingv1 \"k8s.io/api/autoscaling/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsautoscalingv1 \"k8s.io/client-go/applyconfigurations/autoscaling/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// HorizontalPodAutoscalersGetter has a method to return a HorizontalPodAutoscalerInterface.\n// A group's client should implement this interface.\ntype HorizontalPodAutoscalersGetter interface {\n\tHorizontalPodAutoscalers(namespace string) HorizontalPodAutoscalerInterface\n}\n\n// HorizontalPodAutoscalerInterface has methods to work with HorizontalPodAutoscaler resources.\ntype HorizontalPodAutoscalerInterface interface {\n\tCreate(ctx context.Context, horizontalPodAutoscaler *autoscalingv1.HorizontalPodAutoscaler, opts metav1.CreateOptions) (*autoscalingv1.HorizontalPodAutoscaler, error)\n\tUpdate(ctx context.Context, horizontalPodAutoscaler *autoscalingv1.HorizontalPodAutoscaler, opts metav1.UpdateOptions) (*autoscalingv1.HorizontalPodAutoscaler, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, horizontalPodAutoscaler *autoscalingv1.HorizontalPodAutoscaler, opts metav1.UpdateOptions) (*autoscalingv1.HorizontalPodAutoscaler, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*autoscalingv1.HorizontalPodAutoscaler, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*autoscalingv1.HorizontalPodAutoscalerList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *autoscalingv1.HorizontalPodAutoscaler, err error)\n\tApply(ctx context.Context, horizontalPodAutoscaler *applyconfigurationsautoscalingv1.HorizontalPodAutoscalerApplyConfiguration, opts metav1.ApplyOptions) (result *autoscalingv1.HorizontalPodAutoscaler, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, horizontalPodAutoscaler *applyconfigurationsautoscalingv1.HorizontalPodAutoscalerApplyConfiguration, opts metav1.ApplyOptions) (result *autoscalingv1.HorizontalPodAutoscaler, err error)\n\tHorizontalPodAutoscalerExpansion\n}\n\n// horizontalPodAutoscalers implements HorizontalPodAutoscalerInterface\ntype horizontalPodAutoscalers struct {\n\t*gentype.ClientWithListAndApply[*autoscalingv1.HorizontalPodAutoscaler, *autoscalingv1.HorizontalPodAutoscalerList, *applyconfigurationsautoscalingv1.HorizontalPodAutoscalerApplyConfiguration]\n}\n\n// newHorizontalPodAutoscalers returns a HorizontalPodAutoscalers\nfunc newHorizontalPodAutoscalers(c *AutoscalingV1Client, namespace string) *horizontalPodAutoscalers {\n\treturn &horizontalPodAutoscalers{\n\t\tgentype.NewClientWithListAndApply[*autoscalingv1.HorizontalPodAutoscaler, *autoscalingv1.HorizontalPodAutoscalerList, *applyconfigurationsautoscalingv1.HorizontalPodAutoscalerApplyConfiguration](\n\t\t\t\"horizontalpodautoscalers\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *autoscalingv1.HorizontalPodAutoscaler { return &autoscalingv1.HorizontalPodAutoscaler{} },\n\t\t\tfunc() *autoscalingv1.HorizontalPodAutoscalerList { return &autoscalingv1.HorizontalPodAutoscalerList{} },\n\t\t\tgentype.PrefersProtobuf[*autoscalingv1.HorizontalPodAutoscaler](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2/autoscaling_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v2\n\nimport (\n\thttp \"net/http\"\n\n\tautoscalingv2 \"k8s.io/api/autoscaling/v2\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype AutoscalingV2Interface interface {\n\tRESTClient() rest.Interface\n\tHorizontalPodAutoscalersGetter\n}\n\n// AutoscalingV2Client is used to interact with features provided by the autoscaling group.\ntype AutoscalingV2Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *AutoscalingV2Client) HorizontalPodAutoscalers(namespace string) HorizontalPodAutoscalerInterface {\n\treturn newHorizontalPodAutoscalers(c, namespace)\n}\n\n// NewForConfig creates a new AutoscalingV2Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*AutoscalingV2Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new AutoscalingV2Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*AutoscalingV2Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &AutoscalingV2Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new AutoscalingV2Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *AutoscalingV2Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new AutoscalingV2Client for the given RESTClient.\nfunc New(c rest.Interface) *AutoscalingV2Client {\n\treturn &AutoscalingV2Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := autoscalingv2.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *AutoscalingV2Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v2\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2/fake/fake_autoscaling_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv2 \"k8s.io/client-go/kubernetes/typed/autoscaling/v2\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeAutoscalingV2 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeAutoscalingV2) HorizontalPodAutoscalers(namespace string) v2.HorizontalPodAutoscalerInterface {\n\treturn newFakeHorizontalPodAutoscalers(c, namespace)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeAutoscalingV2) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2/fake/fake_horizontalpodautoscaler.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv2 \"k8s.io/api/autoscaling/v2\"\n\tautoscalingv2 \"k8s.io/client-go/applyconfigurations/autoscaling/v2\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedautoscalingv2 \"k8s.io/client-go/kubernetes/typed/autoscaling/v2\"\n)\n\n// fakeHorizontalPodAutoscalers implements HorizontalPodAutoscalerInterface\ntype fakeHorizontalPodAutoscalers struct {\n\t*gentype.FakeClientWithListAndApply[*v2.HorizontalPodAutoscaler, *v2.HorizontalPodAutoscalerList, *autoscalingv2.HorizontalPodAutoscalerApplyConfiguration]\n\tFake *FakeAutoscalingV2\n}\n\nfunc newFakeHorizontalPodAutoscalers(fake *FakeAutoscalingV2, namespace string) typedautoscalingv2.HorizontalPodAutoscalerInterface {\n\treturn &fakeHorizontalPodAutoscalers{\n\t\tgentype.NewFakeClientWithListAndApply[*v2.HorizontalPodAutoscaler, *v2.HorizontalPodAutoscalerList, *autoscalingv2.HorizontalPodAutoscalerApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv2.SchemeGroupVersion.WithResource(\"horizontalpodautoscalers\"),\n\t\t\tv2.SchemeGroupVersion.WithKind(\"HorizontalPodAutoscaler\"),\n\t\t\tfunc() *v2.HorizontalPodAutoscaler { return &v2.HorizontalPodAutoscaler{} },\n\t\t\tfunc() *v2.HorizontalPodAutoscalerList { return &v2.HorizontalPodAutoscalerList{} },\n\t\t\tfunc(dst, src *v2.HorizontalPodAutoscalerList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v2.HorizontalPodAutoscalerList) []*v2.HorizontalPodAutoscaler {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v2.HorizontalPodAutoscalerList, items []*v2.HorizontalPodAutoscaler) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v2\n\ntype HorizontalPodAutoscalerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2/horizontalpodautoscaler.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v2\n\nimport (\n\tcontext \"context\"\n\n\tautoscalingv2 \"k8s.io/api/autoscaling/v2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsautoscalingv2 \"k8s.io/client-go/applyconfigurations/autoscaling/v2\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// HorizontalPodAutoscalersGetter has a method to return a HorizontalPodAutoscalerInterface.\n// A group's client should implement this interface.\ntype HorizontalPodAutoscalersGetter interface {\n\tHorizontalPodAutoscalers(namespace string) HorizontalPodAutoscalerInterface\n}\n\n// HorizontalPodAutoscalerInterface has methods to work with HorizontalPodAutoscaler resources.\ntype HorizontalPodAutoscalerInterface interface {\n\tCreate(ctx context.Context, horizontalPodAutoscaler *autoscalingv2.HorizontalPodAutoscaler, opts v1.CreateOptions) (*autoscalingv2.HorizontalPodAutoscaler, error)\n\tUpdate(ctx context.Context, horizontalPodAutoscaler *autoscalingv2.HorizontalPodAutoscaler, opts v1.UpdateOptions) (*autoscalingv2.HorizontalPodAutoscaler, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, horizontalPodAutoscaler *autoscalingv2.HorizontalPodAutoscaler, opts v1.UpdateOptions) (*autoscalingv2.HorizontalPodAutoscaler, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*autoscalingv2.HorizontalPodAutoscaler, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*autoscalingv2.HorizontalPodAutoscalerList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *autoscalingv2.HorizontalPodAutoscaler, err error)\n\tApply(ctx context.Context, horizontalPodAutoscaler *applyconfigurationsautoscalingv2.HorizontalPodAutoscalerApplyConfiguration, opts v1.ApplyOptions) (result *autoscalingv2.HorizontalPodAutoscaler, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, horizontalPodAutoscaler *applyconfigurationsautoscalingv2.HorizontalPodAutoscalerApplyConfiguration, opts v1.ApplyOptions) (result *autoscalingv2.HorizontalPodAutoscaler, err error)\n\tHorizontalPodAutoscalerExpansion\n}\n\n// horizontalPodAutoscalers implements HorizontalPodAutoscalerInterface\ntype horizontalPodAutoscalers struct {\n\t*gentype.ClientWithListAndApply[*autoscalingv2.HorizontalPodAutoscaler, *autoscalingv2.HorizontalPodAutoscalerList, *applyconfigurationsautoscalingv2.HorizontalPodAutoscalerApplyConfiguration]\n}\n\n// newHorizontalPodAutoscalers returns a HorizontalPodAutoscalers\nfunc newHorizontalPodAutoscalers(c *AutoscalingV2Client, namespace string) *horizontalPodAutoscalers {\n\treturn &horizontalPodAutoscalers{\n\t\tgentype.NewClientWithListAndApply[*autoscalingv2.HorizontalPodAutoscaler, *autoscalingv2.HorizontalPodAutoscalerList, *applyconfigurationsautoscalingv2.HorizontalPodAutoscalerApplyConfiguration](\n\t\t\t\"horizontalpodautoscalers\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *autoscalingv2.HorizontalPodAutoscaler { return &autoscalingv2.HorizontalPodAutoscaler{} },\n\t\t\tfunc() *autoscalingv2.HorizontalPodAutoscalerList { return &autoscalingv2.HorizontalPodAutoscalerList{} },\n\t\t\tgentype.PrefersProtobuf[*autoscalingv2.HorizontalPodAutoscaler](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/autoscaling_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v2beta1\n\nimport (\n\thttp \"net/http\"\n\n\tautoscalingv2beta1 \"k8s.io/api/autoscaling/v2beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype AutoscalingV2beta1Interface interface {\n\tRESTClient() rest.Interface\n\tHorizontalPodAutoscalersGetter\n}\n\n// AutoscalingV2beta1Client is used to interact with features provided by the autoscaling group.\ntype AutoscalingV2beta1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *AutoscalingV2beta1Client) HorizontalPodAutoscalers(namespace string) HorizontalPodAutoscalerInterface {\n\treturn newHorizontalPodAutoscalers(c, namespace)\n}\n\n// NewForConfig creates a new AutoscalingV2beta1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*AutoscalingV2beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new AutoscalingV2beta1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*AutoscalingV2beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &AutoscalingV2beta1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new AutoscalingV2beta1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *AutoscalingV2beta1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new AutoscalingV2beta1Client for the given RESTClient.\nfunc New(c rest.Interface) *AutoscalingV2beta1Client {\n\treturn &AutoscalingV2beta1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := autoscalingv2beta1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *AutoscalingV2beta1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v2beta1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake/fake_autoscaling_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv2beta1 \"k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeAutoscalingV2beta1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeAutoscalingV2beta1) HorizontalPodAutoscalers(namespace string) v2beta1.HorizontalPodAutoscalerInterface {\n\treturn newFakeHorizontalPodAutoscalers(c, namespace)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeAutoscalingV2beta1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake/fake_horizontalpodautoscaler.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv2beta1 \"k8s.io/api/autoscaling/v2beta1\"\n\tautoscalingv2beta1 \"k8s.io/client-go/applyconfigurations/autoscaling/v2beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedautoscalingv2beta1 \"k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1\"\n)\n\n// fakeHorizontalPodAutoscalers implements HorizontalPodAutoscalerInterface\ntype fakeHorizontalPodAutoscalers struct {\n\t*gentype.FakeClientWithListAndApply[*v2beta1.HorizontalPodAutoscaler, *v2beta1.HorizontalPodAutoscalerList, *autoscalingv2beta1.HorizontalPodAutoscalerApplyConfiguration]\n\tFake *FakeAutoscalingV2beta1\n}\n\nfunc newFakeHorizontalPodAutoscalers(fake *FakeAutoscalingV2beta1, namespace string) typedautoscalingv2beta1.HorizontalPodAutoscalerInterface {\n\treturn &fakeHorizontalPodAutoscalers{\n\t\tgentype.NewFakeClientWithListAndApply[*v2beta1.HorizontalPodAutoscaler, *v2beta1.HorizontalPodAutoscalerList, *autoscalingv2beta1.HorizontalPodAutoscalerApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv2beta1.SchemeGroupVersion.WithResource(\"horizontalpodautoscalers\"),\n\t\t\tv2beta1.SchemeGroupVersion.WithKind(\"HorizontalPodAutoscaler\"),\n\t\t\tfunc() *v2beta1.HorizontalPodAutoscaler { return &v2beta1.HorizontalPodAutoscaler{} },\n\t\t\tfunc() *v2beta1.HorizontalPodAutoscalerList { return &v2beta1.HorizontalPodAutoscalerList{} },\n\t\t\tfunc(dst, src *v2beta1.HorizontalPodAutoscalerList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v2beta1.HorizontalPodAutoscalerList) []*v2beta1.HorizontalPodAutoscaler {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v2beta1.HorizontalPodAutoscalerList, items []*v2beta1.HorizontalPodAutoscaler) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v2beta1\n\ntype HorizontalPodAutoscalerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/horizontalpodautoscaler.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v2beta1\n\nimport (\n\tcontext \"context\"\n\n\tautoscalingv2beta1 \"k8s.io/api/autoscaling/v2beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsautoscalingv2beta1 \"k8s.io/client-go/applyconfigurations/autoscaling/v2beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// HorizontalPodAutoscalersGetter has a method to return a HorizontalPodAutoscalerInterface.\n// A group's client should implement this interface.\ntype HorizontalPodAutoscalersGetter interface {\n\tHorizontalPodAutoscalers(namespace string) HorizontalPodAutoscalerInterface\n}\n\n// HorizontalPodAutoscalerInterface has methods to work with HorizontalPodAutoscaler resources.\ntype HorizontalPodAutoscalerInterface interface {\n\tCreate(ctx context.Context, horizontalPodAutoscaler *autoscalingv2beta1.HorizontalPodAutoscaler, opts v1.CreateOptions) (*autoscalingv2beta1.HorizontalPodAutoscaler, error)\n\tUpdate(ctx context.Context, horizontalPodAutoscaler *autoscalingv2beta1.HorizontalPodAutoscaler, opts v1.UpdateOptions) (*autoscalingv2beta1.HorizontalPodAutoscaler, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, horizontalPodAutoscaler *autoscalingv2beta1.HorizontalPodAutoscaler, opts v1.UpdateOptions) (*autoscalingv2beta1.HorizontalPodAutoscaler, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*autoscalingv2beta1.HorizontalPodAutoscaler, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*autoscalingv2beta1.HorizontalPodAutoscalerList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *autoscalingv2beta1.HorizontalPodAutoscaler, err error)\n\tApply(ctx context.Context, horizontalPodAutoscaler *applyconfigurationsautoscalingv2beta1.HorizontalPodAutoscalerApplyConfiguration, opts v1.ApplyOptions) (result *autoscalingv2beta1.HorizontalPodAutoscaler, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, horizontalPodAutoscaler *applyconfigurationsautoscalingv2beta1.HorizontalPodAutoscalerApplyConfiguration, opts v1.ApplyOptions) (result *autoscalingv2beta1.HorizontalPodAutoscaler, err error)\n\tHorizontalPodAutoscalerExpansion\n}\n\n// horizontalPodAutoscalers implements HorizontalPodAutoscalerInterface\ntype horizontalPodAutoscalers struct {\n\t*gentype.ClientWithListAndApply[*autoscalingv2beta1.HorizontalPodAutoscaler, *autoscalingv2beta1.HorizontalPodAutoscalerList, *applyconfigurationsautoscalingv2beta1.HorizontalPodAutoscalerApplyConfiguration]\n}\n\n// newHorizontalPodAutoscalers returns a HorizontalPodAutoscalers\nfunc newHorizontalPodAutoscalers(c *AutoscalingV2beta1Client, namespace string) *horizontalPodAutoscalers {\n\treturn &horizontalPodAutoscalers{\n\t\tgentype.NewClientWithListAndApply[*autoscalingv2beta1.HorizontalPodAutoscaler, *autoscalingv2beta1.HorizontalPodAutoscalerList, *applyconfigurationsautoscalingv2beta1.HorizontalPodAutoscalerApplyConfiguration](\n\t\t\t\"horizontalpodautoscalers\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *autoscalingv2beta1.HorizontalPodAutoscaler {\n\t\t\t\treturn &autoscalingv2beta1.HorizontalPodAutoscaler{}\n\t\t\t},\n\t\t\tfunc() *autoscalingv2beta1.HorizontalPodAutoscalerList {\n\t\t\t\treturn &autoscalingv2beta1.HorizontalPodAutoscalerList{}\n\t\t\t},\n\t\t\tgentype.PrefersProtobuf[*autoscalingv2beta1.HorizontalPodAutoscaler](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/autoscaling_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v2beta2\n\nimport (\n\thttp \"net/http\"\n\n\tautoscalingv2beta2 \"k8s.io/api/autoscaling/v2beta2\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype AutoscalingV2beta2Interface interface {\n\tRESTClient() rest.Interface\n\tHorizontalPodAutoscalersGetter\n}\n\n// AutoscalingV2beta2Client is used to interact with features provided by the autoscaling group.\ntype AutoscalingV2beta2Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *AutoscalingV2beta2Client) HorizontalPodAutoscalers(namespace string) HorizontalPodAutoscalerInterface {\n\treturn newHorizontalPodAutoscalers(c, namespace)\n}\n\n// NewForConfig creates a new AutoscalingV2beta2Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*AutoscalingV2beta2Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new AutoscalingV2beta2Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*AutoscalingV2beta2Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &AutoscalingV2beta2Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new AutoscalingV2beta2Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *AutoscalingV2beta2Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new AutoscalingV2beta2Client for the given RESTClient.\nfunc New(c rest.Interface) *AutoscalingV2beta2Client {\n\treturn &AutoscalingV2beta2Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := autoscalingv2beta2.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *AutoscalingV2beta2Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v2beta2\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/fake/fake_autoscaling_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv2beta2 \"k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeAutoscalingV2beta2 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeAutoscalingV2beta2) HorizontalPodAutoscalers(namespace string) v2beta2.HorizontalPodAutoscalerInterface {\n\treturn newFakeHorizontalPodAutoscalers(c, namespace)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeAutoscalingV2beta2) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/fake/fake_horizontalpodautoscaler.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv2beta2 \"k8s.io/api/autoscaling/v2beta2\"\n\tautoscalingv2beta2 \"k8s.io/client-go/applyconfigurations/autoscaling/v2beta2\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedautoscalingv2beta2 \"k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2\"\n)\n\n// fakeHorizontalPodAutoscalers implements HorizontalPodAutoscalerInterface\ntype fakeHorizontalPodAutoscalers struct {\n\t*gentype.FakeClientWithListAndApply[*v2beta2.HorizontalPodAutoscaler, *v2beta2.HorizontalPodAutoscalerList, *autoscalingv2beta2.HorizontalPodAutoscalerApplyConfiguration]\n\tFake *FakeAutoscalingV2beta2\n}\n\nfunc newFakeHorizontalPodAutoscalers(fake *FakeAutoscalingV2beta2, namespace string) typedautoscalingv2beta2.HorizontalPodAutoscalerInterface {\n\treturn &fakeHorizontalPodAutoscalers{\n\t\tgentype.NewFakeClientWithListAndApply[*v2beta2.HorizontalPodAutoscaler, *v2beta2.HorizontalPodAutoscalerList, *autoscalingv2beta2.HorizontalPodAutoscalerApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv2beta2.SchemeGroupVersion.WithResource(\"horizontalpodautoscalers\"),\n\t\t\tv2beta2.SchemeGroupVersion.WithKind(\"HorizontalPodAutoscaler\"),\n\t\t\tfunc() *v2beta2.HorizontalPodAutoscaler { return &v2beta2.HorizontalPodAutoscaler{} },\n\t\t\tfunc() *v2beta2.HorizontalPodAutoscalerList { return &v2beta2.HorizontalPodAutoscalerList{} },\n\t\t\tfunc(dst, src *v2beta2.HorizontalPodAutoscalerList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v2beta2.HorizontalPodAutoscalerList) []*v2beta2.HorizontalPodAutoscaler {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v2beta2.HorizontalPodAutoscalerList, items []*v2beta2.HorizontalPodAutoscaler) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v2beta2\n\ntype HorizontalPodAutoscalerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/horizontalpodautoscaler.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v2beta2\n\nimport (\n\tcontext \"context\"\n\n\tautoscalingv2beta2 \"k8s.io/api/autoscaling/v2beta2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsautoscalingv2beta2 \"k8s.io/client-go/applyconfigurations/autoscaling/v2beta2\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// HorizontalPodAutoscalersGetter has a method to return a HorizontalPodAutoscalerInterface.\n// A group's client should implement this interface.\ntype HorizontalPodAutoscalersGetter interface {\n\tHorizontalPodAutoscalers(namespace string) HorizontalPodAutoscalerInterface\n}\n\n// HorizontalPodAutoscalerInterface has methods to work with HorizontalPodAutoscaler resources.\ntype HorizontalPodAutoscalerInterface interface {\n\tCreate(ctx context.Context, horizontalPodAutoscaler *autoscalingv2beta2.HorizontalPodAutoscaler, opts v1.CreateOptions) (*autoscalingv2beta2.HorizontalPodAutoscaler, error)\n\tUpdate(ctx context.Context, horizontalPodAutoscaler *autoscalingv2beta2.HorizontalPodAutoscaler, opts v1.UpdateOptions) (*autoscalingv2beta2.HorizontalPodAutoscaler, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, horizontalPodAutoscaler *autoscalingv2beta2.HorizontalPodAutoscaler, opts v1.UpdateOptions) (*autoscalingv2beta2.HorizontalPodAutoscaler, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*autoscalingv2beta2.HorizontalPodAutoscaler, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*autoscalingv2beta2.HorizontalPodAutoscalerList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *autoscalingv2beta2.HorizontalPodAutoscaler, err error)\n\tApply(ctx context.Context, horizontalPodAutoscaler *applyconfigurationsautoscalingv2beta2.HorizontalPodAutoscalerApplyConfiguration, opts v1.ApplyOptions) (result *autoscalingv2beta2.HorizontalPodAutoscaler, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, horizontalPodAutoscaler *applyconfigurationsautoscalingv2beta2.HorizontalPodAutoscalerApplyConfiguration, opts v1.ApplyOptions) (result *autoscalingv2beta2.HorizontalPodAutoscaler, err error)\n\tHorizontalPodAutoscalerExpansion\n}\n\n// horizontalPodAutoscalers implements HorizontalPodAutoscalerInterface\ntype horizontalPodAutoscalers struct {\n\t*gentype.ClientWithListAndApply[*autoscalingv2beta2.HorizontalPodAutoscaler, *autoscalingv2beta2.HorizontalPodAutoscalerList, *applyconfigurationsautoscalingv2beta2.HorizontalPodAutoscalerApplyConfiguration]\n}\n\n// newHorizontalPodAutoscalers returns a HorizontalPodAutoscalers\nfunc newHorizontalPodAutoscalers(c *AutoscalingV2beta2Client, namespace string) *horizontalPodAutoscalers {\n\treturn &horizontalPodAutoscalers{\n\t\tgentype.NewClientWithListAndApply[*autoscalingv2beta2.HorizontalPodAutoscaler, *autoscalingv2beta2.HorizontalPodAutoscalerList, *applyconfigurationsautoscalingv2beta2.HorizontalPodAutoscalerApplyConfiguration](\n\t\t\t\"horizontalpodautoscalers\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *autoscalingv2beta2.HorizontalPodAutoscaler {\n\t\t\t\treturn &autoscalingv2beta2.HorizontalPodAutoscaler{}\n\t\t\t},\n\t\t\tfunc() *autoscalingv2beta2.HorizontalPodAutoscalerList {\n\t\t\t\treturn &autoscalingv2beta2.HorizontalPodAutoscalerList{}\n\t\t\t},\n\t\t\tgentype.PrefersProtobuf[*autoscalingv2beta2.HorizontalPodAutoscaler](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/batch/v1/batch_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\thttp \"net/http\"\n\n\tbatchv1 \"k8s.io/api/batch/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype BatchV1Interface interface {\n\tRESTClient() rest.Interface\n\tCronJobsGetter\n\tJobsGetter\n}\n\n// BatchV1Client is used to interact with features provided by the batch group.\ntype BatchV1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *BatchV1Client) CronJobs(namespace string) CronJobInterface {\n\treturn newCronJobs(c, namespace)\n}\n\nfunc (c *BatchV1Client) Jobs(namespace string) JobInterface {\n\treturn newJobs(c, namespace)\n}\n\n// NewForConfig creates a new BatchV1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*BatchV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new BatchV1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*BatchV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &BatchV1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new BatchV1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *BatchV1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new BatchV1Client for the given RESTClient.\nfunc New(c rest.Interface) *BatchV1Client {\n\treturn &BatchV1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := batchv1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *BatchV1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/batch/v1/cronjob.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tbatchv1 \"k8s.io/api/batch/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsbatchv1 \"k8s.io/client-go/applyconfigurations/batch/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// CronJobsGetter has a method to return a CronJobInterface.\n// A group's client should implement this interface.\ntype CronJobsGetter interface {\n\tCronJobs(namespace string) CronJobInterface\n}\n\n// CronJobInterface has methods to work with CronJob resources.\ntype CronJobInterface interface {\n\tCreate(ctx context.Context, cronJob *batchv1.CronJob, opts metav1.CreateOptions) (*batchv1.CronJob, error)\n\tUpdate(ctx context.Context, cronJob *batchv1.CronJob, opts metav1.UpdateOptions) (*batchv1.CronJob, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, cronJob *batchv1.CronJob, opts metav1.UpdateOptions) (*batchv1.CronJob, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*batchv1.CronJob, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*batchv1.CronJobList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *batchv1.CronJob, err error)\n\tApply(ctx context.Context, cronJob *applyconfigurationsbatchv1.CronJobApplyConfiguration, opts metav1.ApplyOptions) (result *batchv1.CronJob, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, cronJob *applyconfigurationsbatchv1.CronJobApplyConfiguration, opts metav1.ApplyOptions) (result *batchv1.CronJob, err error)\n\tCronJobExpansion\n}\n\n// cronJobs implements CronJobInterface\ntype cronJobs struct {\n\t*gentype.ClientWithListAndApply[*batchv1.CronJob, *batchv1.CronJobList, *applyconfigurationsbatchv1.CronJobApplyConfiguration]\n}\n\n// newCronJobs returns a CronJobs\nfunc newCronJobs(c *BatchV1Client, namespace string) *cronJobs {\n\treturn &cronJobs{\n\t\tgentype.NewClientWithListAndApply[*batchv1.CronJob, *batchv1.CronJobList, *applyconfigurationsbatchv1.CronJobApplyConfiguration](\n\t\t\t\"cronjobs\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *batchv1.CronJob { return &batchv1.CronJob{} },\n\t\t\tfunc() *batchv1.CronJobList { return &batchv1.CronJobList{} },\n\t\t\tgentype.PrefersProtobuf[*batchv1.CronJob](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/batch/v1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/batch/v1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/batch/v1/fake/fake_batch_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/client-go/kubernetes/typed/batch/v1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeBatchV1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeBatchV1) CronJobs(namespace string) v1.CronJobInterface {\n\treturn newFakeCronJobs(c, namespace)\n}\n\nfunc (c *FakeBatchV1) Jobs(namespace string) v1.JobInterface {\n\treturn newFakeJobs(c, namespace)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeBatchV1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/batch/v1/fake/fake_cronjob.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/batch/v1\"\n\tbatchv1 \"k8s.io/client-go/applyconfigurations/batch/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedbatchv1 \"k8s.io/client-go/kubernetes/typed/batch/v1\"\n)\n\n// fakeCronJobs implements CronJobInterface\ntype fakeCronJobs struct {\n\t*gentype.FakeClientWithListAndApply[*v1.CronJob, *v1.CronJobList, *batchv1.CronJobApplyConfiguration]\n\tFake *FakeBatchV1\n}\n\nfunc newFakeCronJobs(fake *FakeBatchV1, namespace string) typedbatchv1.CronJobInterface {\n\treturn &fakeCronJobs{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.CronJob, *v1.CronJobList, *batchv1.CronJobApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1.SchemeGroupVersion.WithResource(\"cronjobs\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"CronJob\"),\n\t\t\tfunc() *v1.CronJob { return &v1.CronJob{} },\n\t\t\tfunc() *v1.CronJobList { return &v1.CronJobList{} },\n\t\t\tfunc(dst, src *v1.CronJobList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.CronJobList) []*v1.CronJob { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1.CronJobList, items []*v1.CronJob) { list.Items = gentype.FromPointerSlice(items) },\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/batch/v1/fake/fake_job.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/batch/v1\"\n\tbatchv1 \"k8s.io/client-go/applyconfigurations/batch/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedbatchv1 \"k8s.io/client-go/kubernetes/typed/batch/v1\"\n)\n\n// fakeJobs implements JobInterface\ntype fakeJobs struct {\n\t*gentype.FakeClientWithListAndApply[*v1.Job, *v1.JobList, *batchv1.JobApplyConfiguration]\n\tFake *FakeBatchV1\n}\n\nfunc newFakeJobs(fake *FakeBatchV1, namespace string) typedbatchv1.JobInterface {\n\treturn &fakeJobs{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.Job, *v1.JobList, *batchv1.JobApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1.SchemeGroupVersion.WithResource(\"jobs\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"Job\"),\n\t\t\tfunc() *v1.Job { return &v1.Job{} },\n\t\t\tfunc() *v1.JobList { return &v1.JobList{} },\n\t\t\tfunc(dst, src *v1.JobList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.JobList) []*v1.Job { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1.JobList, items []*v1.Job) { list.Items = gentype.FromPointerSlice(items) },\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/batch/v1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\ntype CronJobExpansion interface{}\n\ntype JobExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/batch/v1/job.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tbatchv1 \"k8s.io/api/batch/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsbatchv1 \"k8s.io/client-go/applyconfigurations/batch/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// JobsGetter has a method to return a JobInterface.\n// A group's client should implement this interface.\ntype JobsGetter interface {\n\tJobs(namespace string) JobInterface\n}\n\n// JobInterface has methods to work with Job resources.\ntype JobInterface interface {\n\tCreate(ctx context.Context, job *batchv1.Job, opts metav1.CreateOptions) (*batchv1.Job, error)\n\tUpdate(ctx context.Context, job *batchv1.Job, opts metav1.UpdateOptions) (*batchv1.Job, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, job *batchv1.Job, opts metav1.UpdateOptions) (*batchv1.Job, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*batchv1.Job, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*batchv1.JobList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *batchv1.Job, err error)\n\tApply(ctx context.Context, job *applyconfigurationsbatchv1.JobApplyConfiguration, opts metav1.ApplyOptions) (result *batchv1.Job, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, job *applyconfigurationsbatchv1.JobApplyConfiguration, opts metav1.ApplyOptions) (result *batchv1.Job, err error)\n\tJobExpansion\n}\n\n// jobs implements JobInterface\ntype jobs struct {\n\t*gentype.ClientWithListAndApply[*batchv1.Job, *batchv1.JobList, *applyconfigurationsbatchv1.JobApplyConfiguration]\n}\n\n// newJobs returns a Jobs\nfunc newJobs(c *BatchV1Client, namespace string) *jobs {\n\treturn &jobs{\n\t\tgentype.NewClientWithListAndApply[*batchv1.Job, *batchv1.JobList, *applyconfigurationsbatchv1.JobApplyConfiguration](\n\t\t\t\"jobs\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *batchv1.Job { return &batchv1.Job{} },\n\t\t\tfunc() *batchv1.JobList { return &batchv1.JobList{} },\n\t\t\tgentype.PrefersProtobuf[*batchv1.Job](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/batch_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\thttp \"net/http\"\n\n\tbatchv1beta1 \"k8s.io/api/batch/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype BatchV1beta1Interface interface {\n\tRESTClient() rest.Interface\n\tCronJobsGetter\n}\n\n// BatchV1beta1Client is used to interact with features provided by the batch group.\ntype BatchV1beta1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *BatchV1beta1Client) CronJobs(namespace string) CronJobInterface {\n\treturn newCronJobs(c, namespace)\n}\n\n// NewForConfig creates a new BatchV1beta1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*BatchV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new BatchV1beta1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*BatchV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &BatchV1beta1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new BatchV1beta1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *BatchV1beta1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new BatchV1beta1Client for the given RESTClient.\nfunc New(c rest.Interface) *BatchV1beta1Client {\n\treturn &BatchV1beta1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := batchv1beta1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *BatchV1beta1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/cronjob.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\tbatchv1beta1 \"k8s.io/api/batch/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsbatchv1beta1 \"k8s.io/client-go/applyconfigurations/batch/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// CronJobsGetter has a method to return a CronJobInterface.\n// A group's client should implement this interface.\ntype CronJobsGetter interface {\n\tCronJobs(namespace string) CronJobInterface\n}\n\n// CronJobInterface has methods to work with CronJob resources.\ntype CronJobInterface interface {\n\tCreate(ctx context.Context, cronJob *batchv1beta1.CronJob, opts v1.CreateOptions) (*batchv1beta1.CronJob, error)\n\tUpdate(ctx context.Context, cronJob *batchv1beta1.CronJob, opts v1.UpdateOptions) (*batchv1beta1.CronJob, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, cronJob *batchv1beta1.CronJob, opts v1.UpdateOptions) (*batchv1beta1.CronJob, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*batchv1beta1.CronJob, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*batchv1beta1.CronJobList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *batchv1beta1.CronJob, err error)\n\tApply(ctx context.Context, cronJob *applyconfigurationsbatchv1beta1.CronJobApplyConfiguration, opts v1.ApplyOptions) (result *batchv1beta1.CronJob, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, cronJob *applyconfigurationsbatchv1beta1.CronJobApplyConfiguration, opts v1.ApplyOptions) (result *batchv1beta1.CronJob, err error)\n\tCronJobExpansion\n}\n\n// cronJobs implements CronJobInterface\ntype cronJobs struct {\n\t*gentype.ClientWithListAndApply[*batchv1beta1.CronJob, *batchv1beta1.CronJobList, *applyconfigurationsbatchv1beta1.CronJobApplyConfiguration]\n}\n\n// newCronJobs returns a CronJobs\nfunc newCronJobs(c *BatchV1beta1Client, namespace string) *cronJobs {\n\treturn &cronJobs{\n\t\tgentype.NewClientWithListAndApply[*batchv1beta1.CronJob, *batchv1beta1.CronJobList, *applyconfigurationsbatchv1beta1.CronJobApplyConfiguration](\n\t\t\t\"cronjobs\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *batchv1beta1.CronJob { return &batchv1beta1.CronJob{} },\n\t\t\tfunc() *batchv1beta1.CronJobList { return &batchv1beta1.CronJobList{} },\n\t\t\tgentype.PrefersProtobuf[*batchv1beta1.CronJob](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1beta1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/fake/fake_batch_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/client-go/kubernetes/typed/batch/v1beta1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeBatchV1beta1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeBatchV1beta1) CronJobs(namespace string) v1beta1.CronJobInterface {\n\treturn newFakeCronJobs(c, namespace)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeBatchV1beta1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/fake/fake_cronjob.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/batch/v1beta1\"\n\tbatchv1beta1 \"k8s.io/client-go/applyconfigurations/batch/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedbatchv1beta1 \"k8s.io/client-go/kubernetes/typed/batch/v1beta1\"\n)\n\n// fakeCronJobs implements CronJobInterface\ntype fakeCronJobs struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta1.CronJob, *v1beta1.CronJobList, *batchv1beta1.CronJobApplyConfiguration]\n\tFake *FakeBatchV1beta1\n}\n\nfunc newFakeCronJobs(fake *FakeBatchV1beta1, namespace string) typedbatchv1beta1.CronJobInterface {\n\treturn &fakeCronJobs{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta1.CronJob, *v1beta1.CronJobList, *batchv1beta1.CronJobApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"cronjobs\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"CronJob\"),\n\t\t\tfunc() *v1beta1.CronJob { return &v1beta1.CronJob{} },\n\t\t\tfunc() *v1beta1.CronJobList { return &v1beta1.CronJobList{} },\n\t\t\tfunc(dst, src *v1beta1.CronJobList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta1.CronJobList) []*v1beta1.CronJob { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1beta1.CronJobList, items []*v1beta1.CronJob) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/batch/v1beta1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\ntype CronJobExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1/certificates_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\thttp \"net/http\"\n\n\tcertificatesv1 \"k8s.io/api/certificates/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype CertificatesV1Interface interface {\n\tRESTClient() rest.Interface\n\tCertificateSigningRequestsGetter\n}\n\n// CertificatesV1Client is used to interact with features provided by the certificates.k8s.io group.\ntype CertificatesV1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *CertificatesV1Client) CertificateSigningRequests() CertificateSigningRequestInterface {\n\treturn newCertificateSigningRequests(c)\n}\n\n// NewForConfig creates a new CertificatesV1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*CertificatesV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new CertificatesV1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*CertificatesV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &CertificatesV1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new CertificatesV1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *CertificatesV1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new CertificatesV1Client for the given RESTClient.\nfunc New(c rest.Interface) *CertificatesV1Client {\n\treturn &CertificatesV1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := certificatesv1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *CertificatesV1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1/certificatesigningrequest.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tcertificatesv1 \"k8s.io/api/certificates/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationscertificatesv1 \"k8s.io/client-go/applyconfigurations/certificates/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// CertificateSigningRequestsGetter has a method to return a CertificateSigningRequestInterface.\n// A group's client should implement this interface.\ntype CertificateSigningRequestsGetter interface {\n\tCertificateSigningRequests() CertificateSigningRequestInterface\n}\n\n// CertificateSigningRequestInterface has methods to work with CertificateSigningRequest resources.\ntype CertificateSigningRequestInterface interface {\n\tCreate(ctx context.Context, certificateSigningRequest *certificatesv1.CertificateSigningRequest, opts metav1.CreateOptions) (*certificatesv1.CertificateSigningRequest, error)\n\tUpdate(ctx context.Context, certificateSigningRequest *certificatesv1.CertificateSigningRequest, opts metav1.UpdateOptions) (*certificatesv1.CertificateSigningRequest, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, certificateSigningRequest *certificatesv1.CertificateSigningRequest, opts metav1.UpdateOptions) (*certificatesv1.CertificateSigningRequest, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*certificatesv1.CertificateSigningRequest, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*certificatesv1.CertificateSigningRequestList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *certificatesv1.CertificateSigningRequest, err error)\n\tApply(ctx context.Context, certificateSigningRequest *applyconfigurationscertificatesv1.CertificateSigningRequestApplyConfiguration, opts metav1.ApplyOptions) (result *certificatesv1.CertificateSigningRequest, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, certificateSigningRequest *applyconfigurationscertificatesv1.CertificateSigningRequestApplyConfiguration, opts metav1.ApplyOptions) (result *certificatesv1.CertificateSigningRequest, err error)\n\tUpdateApproval(ctx context.Context, certificateSigningRequestName string, certificateSigningRequest *certificatesv1.CertificateSigningRequest, opts metav1.UpdateOptions) (*certificatesv1.CertificateSigningRequest, error)\n\n\tCertificateSigningRequestExpansion\n}\n\n// certificateSigningRequests implements CertificateSigningRequestInterface\ntype certificateSigningRequests struct {\n\t*gentype.ClientWithListAndApply[*certificatesv1.CertificateSigningRequest, *certificatesv1.CertificateSigningRequestList, *applyconfigurationscertificatesv1.CertificateSigningRequestApplyConfiguration]\n}\n\n// newCertificateSigningRequests returns a CertificateSigningRequests\nfunc newCertificateSigningRequests(c *CertificatesV1Client) *certificateSigningRequests {\n\treturn &certificateSigningRequests{\n\t\tgentype.NewClientWithListAndApply[*certificatesv1.CertificateSigningRequest, *certificatesv1.CertificateSigningRequestList, *applyconfigurationscertificatesv1.CertificateSigningRequestApplyConfiguration](\n\t\t\t\"certificatesigningrequests\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *certificatesv1.CertificateSigningRequest { return &certificatesv1.CertificateSigningRequest{} },\n\t\t\tfunc() *certificatesv1.CertificateSigningRequestList {\n\t\t\t\treturn &certificatesv1.CertificateSigningRequestList{}\n\t\t\t},\n\t\t\tgentype.PrefersProtobuf[*certificatesv1.CertificateSigningRequest](),\n\t\t),\n\t}\n}\n\n// UpdateApproval takes the top resource name and the representation of a certificateSigningRequest and updates it. Returns the server's representation of the certificateSigningRequest, and an error, if there is any.\nfunc (c *certificateSigningRequests) UpdateApproval(ctx context.Context, certificateSigningRequestName string, certificateSigningRequest *certificatesv1.CertificateSigningRequest, opts metav1.UpdateOptions) (result *certificatesv1.CertificateSigningRequest, err error) {\n\tresult = &certificatesv1.CertificateSigningRequest{}\n\terr = c.GetClient().Put().\n\t\tUseProtobufAsDefault().\n\t\tResource(\"certificatesigningrequests\").\n\t\tName(certificateSigningRequestName).\n\t\tSubResource(\"approval\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(certificateSigningRequest).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1/fake/fake_certificates_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/client-go/kubernetes/typed/certificates/v1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeCertificatesV1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeCertificatesV1) CertificateSigningRequests() v1.CertificateSigningRequestInterface {\n\treturn newFakeCertificateSigningRequests(c)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeCertificatesV1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1/fake/fake_certificatesigningrequest.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tcontext \"context\"\n\n\tv1 \"k8s.io/api/certificates/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tcertificatesv1 \"k8s.io/client-go/applyconfigurations/certificates/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedcertificatesv1 \"k8s.io/client-go/kubernetes/typed/certificates/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// fakeCertificateSigningRequests implements CertificateSigningRequestInterface\ntype fakeCertificateSigningRequests struct {\n\t*gentype.FakeClientWithListAndApply[*v1.CertificateSigningRequest, *v1.CertificateSigningRequestList, *certificatesv1.CertificateSigningRequestApplyConfiguration]\n\tFake *FakeCertificatesV1\n}\n\nfunc newFakeCertificateSigningRequests(fake *FakeCertificatesV1) typedcertificatesv1.CertificateSigningRequestInterface {\n\treturn &fakeCertificateSigningRequests{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.CertificateSigningRequest, *v1.CertificateSigningRequestList, *certificatesv1.CertificateSigningRequestApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1.SchemeGroupVersion.WithResource(\"certificatesigningrequests\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"CertificateSigningRequest\"),\n\t\t\tfunc() *v1.CertificateSigningRequest { return &v1.CertificateSigningRequest{} },\n\t\t\tfunc() *v1.CertificateSigningRequestList { return &v1.CertificateSigningRequestList{} },\n\t\t\tfunc(dst, src *v1.CertificateSigningRequestList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.CertificateSigningRequestList) []*v1.CertificateSigningRequest {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1.CertificateSigningRequestList, items []*v1.CertificateSigningRequest) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n\n// UpdateApproval takes the representation of a certificateSigningRequest and updates it. Returns the server's representation of the certificateSigningRequest, and an error, if there is any.\nfunc (c *fakeCertificateSigningRequests) UpdateApproval(ctx context.Context, certificateSigningRequestName string, certificateSigningRequest *v1.CertificateSigningRequest, opts metav1.UpdateOptions) (result *v1.CertificateSigningRequest, err error) {\n\temptyResult := &v1.CertificateSigningRequest{}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewRootUpdateSubresourceActionWithOptions(c.Resource(), \"approval\", certificateSigningRequest, opts), emptyResult)\n\tif obj == nil {\n\t\treturn emptyResult, err\n\t}\n\treturn obj.(*v1.CertificateSigningRequest), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\ntype CertificateSigningRequestExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1alpha1/certificates_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\thttp \"net/http\"\n\n\tcertificatesv1alpha1 \"k8s.io/api/certificates/v1alpha1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype CertificatesV1alpha1Interface interface {\n\tRESTClient() rest.Interface\n\tClusterTrustBundlesGetter\n}\n\n// CertificatesV1alpha1Client is used to interact with features provided by the certificates.k8s.io group.\ntype CertificatesV1alpha1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *CertificatesV1alpha1Client) ClusterTrustBundles() ClusterTrustBundleInterface {\n\treturn newClusterTrustBundles(c)\n}\n\n// NewForConfig creates a new CertificatesV1alpha1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*CertificatesV1alpha1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new CertificatesV1alpha1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*CertificatesV1alpha1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &CertificatesV1alpha1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new CertificatesV1alpha1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *CertificatesV1alpha1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new CertificatesV1alpha1Client for the given RESTClient.\nfunc New(c rest.Interface) *CertificatesV1alpha1Client {\n\treturn &CertificatesV1alpha1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := certificatesv1alpha1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *CertificatesV1alpha1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1alpha1/clustertrustbundle.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcontext \"context\"\n\n\tcertificatesv1alpha1 \"k8s.io/api/certificates/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationscertificatesv1alpha1 \"k8s.io/client-go/applyconfigurations/certificates/v1alpha1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// ClusterTrustBundlesGetter has a method to return a ClusterTrustBundleInterface.\n// A group's client should implement this interface.\ntype ClusterTrustBundlesGetter interface {\n\tClusterTrustBundles() ClusterTrustBundleInterface\n}\n\n// ClusterTrustBundleInterface has methods to work with ClusterTrustBundle resources.\ntype ClusterTrustBundleInterface interface {\n\tCreate(ctx context.Context, clusterTrustBundle *certificatesv1alpha1.ClusterTrustBundle, opts v1.CreateOptions) (*certificatesv1alpha1.ClusterTrustBundle, error)\n\tUpdate(ctx context.Context, clusterTrustBundle *certificatesv1alpha1.ClusterTrustBundle, opts v1.UpdateOptions) (*certificatesv1alpha1.ClusterTrustBundle, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*certificatesv1alpha1.ClusterTrustBundle, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*certificatesv1alpha1.ClusterTrustBundleList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *certificatesv1alpha1.ClusterTrustBundle, err error)\n\tApply(ctx context.Context, clusterTrustBundle *applyconfigurationscertificatesv1alpha1.ClusterTrustBundleApplyConfiguration, opts v1.ApplyOptions) (result *certificatesv1alpha1.ClusterTrustBundle, err error)\n\tClusterTrustBundleExpansion\n}\n\n// clusterTrustBundles implements ClusterTrustBundleInterface\ntype clusterTrustBundles struct {\n\t*gentype.ClientWithListAndApply[*certificatesv1alpha1.ClusterTrustBundle, *certificatesv1alpha1.ClusterTrustBundleList, *applyconfigurationscertificatesv1alpha1.ClusterTrustBundleApplyConfiguration]\n}\n\n// newClusterTrustBundles returns a ClusterTrustBundles\nfunc newClusterTrustBundles(c *CertificatesV1alpha1Client) *clusterTrustBundles {\n\treturn &clusterTrustBundles{\n\t\tgentype.NewClientWithListAndApply[*certificatesv1alpha1.ClusterTrustBundle, *certificatesv1alpha1.ClusterTrustBundleList, *applyconfigurationscertificatesv1alpha1.ClusterTrustBundleApplyConfiguration](\n\t\t\t\"clustertrustbundles\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *certificatesv1alpha1.ClusterTrustBundle { return &certificatesv1alpha1.ClusterTrustBundle{} },\n\t\t\tfunc() *certificatesv1alpha1.ClusterTrustBundleList {\n\t\t\t\treturn &certificatesv1alpha1.ClusterTrustBundleList{}\n\t\t\t},\n\t\t\tgentype.PrefersProtobuf[*certificatesv1alpha1.ClusterTrustBundle](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1alpha1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1alpha1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1alpha1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1alpha1/fake/fake_certificates_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha1 \"k8s.io/client-go/kubernetes/typed/certificates/v1alpha1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeCertificatesV1alpha1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeCertificatesV1alpha1) ClusterTrustBundles() v1alpha1.ClusterTrustBundleInterface {\n\treturn newFakeClusterTrustBundles(c)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeCertificatesV1alpha1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1alpha1/fake/fake_clustertrustbundle.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha1 \"k8s.io/api/certificates/v1alpha1\"\n\tcertificatesv1alpha1 \"k8s.io/client-go/applyconfigurations/certificates/v1alpha1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedcertificatesv1alpha1 \"k8s.io/client-go/kubernetes/typed/certificates/v1alpha1\"\n)\n\n// fakeClusterTrustBundles implements ClusterTrustBundleInterface\ntype fakeClusterTrustBundles struct {\n\t*gentype.FakeClientWithListAndApply[*v1alpha1.ClusterTrustBundle, *v1alpha1.ClusterTrustBundleList, *certificatesv1alpha1.ClusterTrustBundleApplyConfiguration]\n\tFake *FakeCertificatesV1alpha1\n}\n\nfunc newFakeClusterTrustBundles(fake *FakeCertificatesV1alpha1) typedcertificatesv1alpha1.ClusterTrustBundleInterface {\n\treturn &fakeClusterTrustBundles{\n\t\tgentype.NewFakeClientWithListAndApply[*v1alpha1.ClusterTrustBundle, *v1alpha1.ClusterTrustBundleList, *certificatesv1alpha1.ClusterTrustBundleApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1alpha1.SchemeGroupVersion.WithResource(\"clustertrustbundles\"),\n\t\t\tv1alpha1.SchemeGroupVersion.WithKind(\"ClusterTrustBundle\"),\n\t\t\tfunc() *v1alpha1.ClusterTrustBundle { return &v1alpha1.ClusterTrustBundle{} },\n\t\t\tfunc() *v1alpha1.ClusterTrustBundleList { return &v1alpha1.ClusterTrustBundleList{} },\n\t\t\tfunc(dst, src *v1alpha1.ClusterTrustBundleList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1alpha1.ClusterTrustBundleList) []*v1alpha1.ClusterTrustBundle {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1alpha1.ClusterTrustBundleList, items []*v1alpha1.ClusterTrustBundle) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1alpha1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\ntype ClusterTrustBundleExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/certificates_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\thttp \"net/http\"\n\n\tcertificatesv1beta1 \"k8s.io/api/certificates/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype CertificatesV1beta1Interface interface {\n\tRESTClient() rest.Interface\n\tCertificateSigningRequestsGetter\n}\n\n// CertificatesV1beta1Client is used to interact with features provided by the certificates.k8s.io group.\ntype CertificatesV1beta1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *CertificatesV1beta1Client) CertificateSigningRequests() CertificateSigningRequestInterface {\n\treturn newCertificateSigningRequests(c)\n}\n\n// NewForConfig creates a new CertificatesV1beta1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*CertificatesV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new CertificatesV1beta1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*CertificatesV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &CertificatesV1beta1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new CertificatesV1beta1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *CertificatesV1beta1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new CertificatesV1beta1Client for the given RESTClient.\nfunc New(c rest.Interface) *CertificatesV1beta1Client {\n\treturn &CertificatesV1beta1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := certificatesv1beta1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *CertificatesV1beta1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/certificatesigningrequest.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\tcertificatesv1beta1 \"k8s.io/api/certificates/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationscertificatesv1beta1 \"k8s.io/client-go/applyconfigurations/certificates/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// CertificateSigningRequestsGetter has a method to return a CertificateSigningRequestInterface.\n// A group's client should implement this interface.\ntype CertificateSigningRequestsGetter interface {\n\tCertificateSigningRequests() CertificateSigningRequestInterface\n}\n\n// CertificateSigningRequestInterface has methods to work with CertificateSigningRequest resources.\ntype CertificateSigningRequestInterface interface {\n\tCreate(ctx context.Context, certificateSigningRequest *certificatesv1beta1.CertificateSigningRequest, opts v1.CreateOptions) (*certificatesv1beta1.CertificateSigningRequest, error)\n\tUpdate(ctx context.Context, certificateSigningRequest *certificatesv1beta1.CertificateSigningRequest, opts v1.UpdateOptions) (*certificatesv1beta1.CertificateSigningRequest, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, certificateSigningRequest *certificatesv1beta1.CertificateSigningRequest, opts v1.UpdateOptions) (*certificatesv1beta1.CertificateSigningRequest, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*certificatesv1beta1.CertificateSigningRequest, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*certificatesv1beta1.CertificateSigningRequestList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *certificatesv1beta1.CertificateSigningRequest, err error)\n\tApply(ctx context.Context, certificateSigningRequest *applyconfigurationscertificatesv1beta1.CertificateSigningRequestApplyConfiguration, opts v1.ApplyOptions) (result *certificatesv1beta1.CertificateSigningRequest, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, certificateSigningRequest *applyconfigurationscertificatesv1beta1.CertificateSigningRequestApplyConfiguration, opts v1.ApplyOptions) (result *certificatesv1beta1.CertificateSigningRequest, err error)\n\tCertificateSigningRequestExpansion\n}\n\n// certificateSigningRequests implements CertificateSigningRequestInterface\ntype certificateSigningRequests struct {\n\t*gentype.ClientWithListAndApply[*certificatesv1beta1.CertificateSigningRequest, *certificatesv1beta1.CertificateSigningRequestList, *applyconfigurationscertificatesv1beta1.CertificateSigningRequestApplyConfiguration]\n}\n\n// newCertificateSigningRequests returns a CertificateSigningRequests\nfunc newCertificateSigningRequests(c *CertificatesV1beta1Client) *certificateSigningRequests {\n\treturn &certificateSigningRequests{\n\t\tgentype.NewClientWithListAndApply[*certificatesv1beta1.CertificateSigningRequest, *certificatesv1beta1.CertificateSigningRequestList, *applyconfigurationscertificatesv1beta1.CertificateSigningRequestApplyConfiguration](\n\t\t\t\"certificatesigningrequests\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *certificatesv1beta1.CertificateSigningRequest {\n\t\t\t\treturn &certificatesv1beta1.CertificateSigningRequest{}\n\t\t\t},\n\t\t\tfunc() *certificatesv1beta1.CertificateSigningRequestList {\n\t\t\t\treturn &certificatesv1beta1.CertificateSigningRequestList{}\n\t\t\t},\n\t\t\tgentype.PrefersProtobuf[*certificatesv1beta1.CertificateSigningRequest](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/certificatesigningrequest_expansion.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\n\tcertificates \"k8s.io/api/certificates/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\ntype CertificateSigningRequestExpansion interface {\n\tUpdateApproval(ctx context.Context, certificateSigningRequest *certificates.CertificateSigningRequest, opts metav1.UpdateOptions) (result *certificates.CertificateSigningRequest, err error)\n}\n\nfunc (c *certificateSigningRequests) UpdateApproval(ctx context.Context, certificateSigningRequest *certificates.CertificateSigningRequest, opts metav1.UpdateOptions) (result *certificates.CertificateSigningRequest, err error) {\n\tresult = &certificates.CertificateSigningRequest{}\n\terr = c.GetClient().Put().\n\t\tResource(\"certificatesigningrequests\").\n\t\tName(certificateSigningRequest.Name).\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(certificateSigningRequest).\n\t\tSubResource(\"approval\").\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1beta1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake/fake_certificates_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/client-go/kubernetes/typed/certificates/v1beta1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeCertificatesV1beta1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeCertificatesV1beta1) CertificateSigningRequests() v1beta1.CertificateSigningRequestInterface {\n\treturn newFakeCertificateSigningRequests(c)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeCertificatesV1beta1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake/fake_certificatesigningrequest.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/certificates/v1beta1\"\n\tcertificatesv1beta1 \"k8s.io/client-go/applyconfigurations/certificates/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedcertificatesv1beta1 \"k8s.io/client-go/kubernetes/typed/certificates/v1beta1\"\n)\n\n// fakeCertificateSigningRequests implements CertificateSigningRequestInterface\ntype fakeCertificateSigningRequests struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta1.CertificateSigningRequest, *v1beta1.CertificateSigningRequestList, *certificatesv1beta1.CertificateSigningRequestApplyConfiguration]\n\tFake *FakeCertificatesV1beta1\n}\n\nfunc newFakeCertificateSigningRequests(fake *FakeCertificatesV1beta1) typedcertificatesv1beta1.CertificateSigningRequestInterface {\n\treturn &fakeCertificateSigningRequests{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta1.CertificateSigningRequest, *v1beta1.CertificateSigningRequestList, *certificatesv1beta1.CertificateSigningRequestApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"certificatesigningrequests\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"CertificateSigningRequest\"),\n\t\t\tfunc() *v1beta1.CertificateSigningRequest { return &v1beta1.CertificateSigningRequest{} },\n\t\t\tfunc() *v1beta1.CertificateSigningRequestList { return &v1beta1.CertificateSigningRequestList{} },\n\t\t\tfunc(dst, src *v1beta1.CertificateSigningRequestList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta1.CertificateSigningRequestList) []*v1beta1.CertificateSigningRequest {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1beta1.CertificateSigningRequestList, items []*v1beta1.CertificateSigningRequest) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake/fake_certificatesigningrequest_expansion.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fake\n\nimport (\n\t\"context\"\n\n\tcertificates \"k8s.io/api/certificates/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tcore \"k8s.io/client-go/testing\"\n)\n\nfunc (c *fakeCertificateSigningRequests) UpdateApproval(ctx context.Context, certificateSigningRequest *certificates.CertificateSigningRequest, opts metav1.UpdateOptions) (result *certificates.CertificateSigningRequest, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(core.NewRootUpdateSubresourceAction(c.Resource(), \"approval\", certificateSigningRequest), &certificates.CertificateSigningRequest{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*certificates.CertificateSigningRequest), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/coordination/v1/coordination_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\thttp \"net/http\"\n\n\tcoordinationv1 \"k8s.io/api/coordination/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype CoordinationV1Interface interface {\n\tRESTClient() rest.Interface\n\tLeasesGetter\n}\n\n// CoordinationV1Client is used to interact with features provided by the coordination.k8s.io group.\ntype CoordinationV1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *CoordinationV1Client) Leases(namespace string) LeaseInterface {\n\treturn newLeases(c, namespace)\n}\n\n// NewForConfig creates a new CoordinationV1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*CoordinationV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new CoordinationV1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*CoordinationV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &CoordinationV1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new CoordinationV1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *CoordinationV1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new CoordinationV1Client for the given RESTClient.\nfunc New(c rest.Interface) *CoordinationV1Client {\n\treturn &CoordinationV1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := coordinationv1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *CoordinationV1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/coordination/v1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/coordination/v1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/coordination/v1/fake/fake_coordination_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/client-go/kubernetes/typed/coordination/v1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeCoordinationV1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeCoordinationV1) Leases(namespace string) v1.LeaseInterface {\n\treturn newFakeLeases(c, namespace)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeCoordinationV1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/coordination/v1/fake/fake_lease.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/coordination/v1\"\n\tcoordinationv1 \"k8s.io/client-go/applyconfigurations/coordination/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedcoordinationv1 \"k8s.io/client-go/kubernetes/typed/coordination/v1\"\n)\n\n// fakeLeases implements LeaseInterface\ntype fakeLeases struct {\n\t*gentype.FakeClientWithListAndApply[*v1.Lease, *v1.LeaseList, *coordinationv1.LeaseApplyConfiguration]\n\tFake *FakeCoordinationV1\n}\n\nfunc newFakeLeases(fake *FakeCoordinationV1, namespace string) typedcoordinationv1.LeaseInterface {\n\treturn &fakeLeases{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.Lease, *v1.LeaseList, *coordinationv1.LeaseApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1.SchemeGroupVersion.WithResource(\"leases\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"Lease\"),\n\t\t\tfunc() *v1.Lease { return &v1.Lease{} },\n\t\t\tfunc() *v1.LeaseList { return &v1.LeaseList{} },\n\t\t\tfunc(dst, src *v1.LeaseList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.LeaseList) []*v1.Lease { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1.LeaseList, items []*v1.Lease) { list.Items = gentype.FromPointerSlice(items) },\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/coordination/v1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\ntype LeaseExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/coordination/v1/lease.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tcoordinationv1 \"k8s.io/api/coordination/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationscoordinationv1 \"k8s.io/client-go/applyconfigurations/coordination/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// LeasesGetter has a method to return a LeaseInterface.\n// A group's client should implement this interface.\ntype LeasesGetter interface {\n\tLeases(namespace string) LeaseInterface\n}\n\n// LeaseInterface has methods to work with Lease resources.\ntype LeaseInterface interface {\n\tCreate(ctx context.Context, lease *coordinationv1.Lease, opts metav1.CreateOptions) (*coordinationv1.Lease, error)\n\tUpdate(ctx context.Context, lease *coordinationv1.Lease, opts metav1.UpdateOptions) (*coordinationv1.Lease, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*coordinationv1.Lease, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*coordinationv1.LeaseList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *coordinationv1.Lease, err error)\n\tApply(ctx context.Context, lease *applyconfigurationscoordinationv1.LeaseApplyConfiguration, opts metav1.ApplyOptions) (result *coordinationv1.Lease, err error)\n\tLeaseExpansion\n}\n\n// leases implements LeaseInterface\ntype leases struct {\n\t*gentype.ClientWithListAndApply[*coordinationv1.Lease, *coordinationv1.LeaseList, *applyconfigurationscoordinationv1.LeaseApplyConfiguration]\n}\n\n// newLeases returns a Leases\nfunc newLeases(c *CoordinationV1Client, namespace string) *leases {\n\treturn &leases{\n\t\tgentype.NewClientWithListAndApply[*coordinationv1.Lease, *coordinationv1.LeaseList, *applyconfigurationscoordinationv1.LeaseApplyConfiguration](\n\t\t\t\"leases\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *coordinationv1.Lease { return &coordinationv1.Lease{} },\n\t\t\tfunc() *coordinationv1.LeaseList { return &coordinationv1.LeaseList{} },\n\t\t\tgentype.PrefersProtobuf[*coordinationv1.Lease](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/coordination/v1alpha2/coordination_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha2\n\nimport (\n\thttp \"net/http\"\n\n\tcoordinationv1alpha2 \"k8s.io/api/coordination/v1alpha2\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype CoordinationV1alpha2Interface interface {\n\tRESTClient() rest.Interface\n\tLeaseCandidatesGetter\n}\n\n// CoordinationV1alpha2Client is used to interact with features provided by the coordination.k8s.io group.\ntype CoordinationV1alpha2Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *CoordinationV1alpha2Client) LeaseCandidates(namespace string) LeaseCandidateInterface {\n\treturn newLeaseCandidates(c, namespace)\n}\n\n// NewForConfig creates a new CoordinationV1alpha2Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*CoordinationV1alpha2Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new CoordinationV1alpha2Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*CoordinationV1alpha2Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &CoordinationV1alpha2Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new CoordinationV1alpha2Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *CoordinationV1alpha2Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new CoordinationV1alpha2Client for the given RESTClient.\nfunc New(c rest.Interface) *CoordinationV1alpha2Client {\n\treturn &CoordinationV1alpha2Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := coordinationv1alpha2.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *CoordinationV1alpha2Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/coordination/v1alpha2/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1alpha2\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/coordination/v1alpha2/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/coordination/v1alpha2/fake/fake_coordination_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha2 \"k8s.io/client-go/kubernetes/typed/coordination/v1alpha2\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeCoordinationV1alpha2 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeCoordinationV1alpha2) LeaseCandidates(namespace string) v1alpha2.LeaseCandidateInterface {\n\treturn newFakeLeaseCandidates(c, namespace)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeCoordinationV1alpha2) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/coordination/v1alpha2/fake/fake_leasecandidate.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha2 \"k8s.io/api/coordination/v1alpha2\"\n\tcoordinationv1alpha2 \"k8s.io/client-go/applyconfigurations/coordination/v1alpha2\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedcoordinationv1alpha2 \"k8s.io/client-go/kubernetes/typed/coordination/v1alpha2\"\n)\n\n// fakeLeaseCandidates implements LeaseCandidateInterface\ntype fakeLeaseCandidates struct {\n\t*gentype.FakeClientWithListAndApply[*v1alpha2.LeaseCandidate, *v1alpha2.LeaseCandidateList, *coordinationv1alpha2.LeaseCandidateApplyConfiguration]\n\tFake *FakeCoordinationV1alpha2\n}\n\nfunc newFakeLeaseCandidates(fake *FakeCoordinationV1alpha2, namespace string) typedcoordinationv1alpha2.LeaseCandidateInterface {\n\treturn &fakeLeaseCandidates{\n\t\tgentype.NewFakeClientWithListAndApply[*v1alpha2.LeaseCandidate, *v1alpha2.LeaseCandidateList, *coordinationv1alpha2.LeaseCandidateApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1alpha2.SchemeGroupVersion.WithResource(\"leasecandidates\"),\n\t\t\tv1alpha2.SchemeGroupVersion.WithKind(\"LeaseCandidate\"),\n\t\t\tfunc() *v1alpha2.LeaseCandidate { return &v1alpha2.LeaseCandidate{} },\n\t\t\tfunc() *v1alpha2.LeaseCandidateList { return &v1alpha2.LeaseCandidateList{} },\n\t\t\tfunc(dst, src *v1alpha2.LeaseCandidateList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1alpha2.LeaseCandidateList) []*v1alpha2.LeaseCandidate {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1alpha2.LeaseCandidateList, items []*v1alpha2.LeaseCandidate) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/coordination/v1alpha2/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha2\n\ntype LeaseCandidateExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/coordination/v1alpha2/leasecandidate.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha2\n\nimport (\n\tcontext \"context\"\n\n\tcoordinationv1alpha2 \"k8s.io/api/coordination/v1alpha2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationscoordinationv1alpha2 \"k8s.io/client-go/applyconfigurations/coordination/v1alpha2\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// LeaseCandidatesGetter has a method to return a LeaseCandidateInterface.\n// A group's client should implement this interface.\ntype LeaseCandidatesGetter interface {\n\tLeaseCandidates(namespace string) LeaseCandidateInterface\n}\n\n// LeaseCandidateInterface has methods to work with LeaseCandidate resources.\ntype LeaseCandidateInterface interface {\n\tCreate(ctx context.Context, leaseCandidate *coordinationv1alpha2.LeaseCandidate, opts v1.CreateOptions) (*coordinationv1alpha2.LeaseCandidate, error)\n\tUpdate(ctx context.Context, leaseCandidate *coordinationv1alpha2.LeaseCandidate, opts v1.UpdateOptions) (*coordinationv1alpha2.LeaseCandidate, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*coordinationv1alpha2.LeaseCandidate, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*coordinationv1alpha2.LeaseCandidateList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *coordinationv1alpha2.LeaseCandidate, err error)\n\tApply(ctx context.Context, leaseCandidate *applyconfigurationscoordinationv1alpha2.LeaseCandidateApplyConfiguration, opts v1.ApplyOptions) (result *coordinationv1alpha2.LeaseCandidate, err error)\n\tLeaseCandidateExpansion\n}\n\n// leaseCandidates implements LeaseCandidateInterface\ntype leaseCandidates struct {\n\t*gentype.ClientWithListAndApply[*coordinationv1alpha2.LeaseCandidate, *coordinationv1alpha2.LeaseCandidateList, *applyconfigurationscoordinationv1alpha2.LeaseCandidateApplyConfiguration]\n}\n\n// newLeaseCandidates returns a LeaseCandidates\nfunc newLeaseCandidates(c *CoordinationV1alpha2Client, namespace string) *leaseCandidates {\n\treturn &leaseCandidates{\n\t\tgentype.NewClientWithListAndApply[*coordinationv1alpha2.LeaseCandidate, *coordinationv1alpha2.LeaseCandidateList, *applyconfigurationscoordinationv1alpha2.LeaseCandidateApplyConfiguration](\n\t\t\t\"leasecandidates\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *coordinationv1alpha2.LeaseCandidate { return &coordinationv1alpha2.LeaseCandidate{} },\n\t\t\tfunc() *coordinationv1alpha2.LeaseCandidateList { return &coordinationv1alpha2.LeaseCandidateList{} },\n\t\t\tgentype.PrefersProtobuf[*coordinationv1alpha2.LeaseCandidate](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1/coordination_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\thttp \"net/http\"\n\n\tcoordinationv1beta1 \"k8s.io/api/coordination/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype CoordinationV1beta1Interface interface {\n\tRESTClient() rest.Interface\n\tLeasesGetter\n}\n\n// CoordinationV1beta1Client is used to interact with features provided by the coordination.k8s.io group.\ntype CoordinationV1beta1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *CoordinationV1beta1Client) Leases(namespace string) LeaseInterface {\n\treturn newLeases(c, namespace)\n}\n\n// NewForConfig creates a new CoordinationV1beta1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*CoordinationV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new CoordinationV1beta1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*CoordinationV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &CoordinationV1beta1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new CoordinationV1beta1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *CoordinationV1beta1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new CoordinationV1beta1Client for the given RESTClient.\nfunc New(c rest.Interface) *CoordinationV1beta1Client {\n\treturn &CoordinationV1beta1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := coordinationv1beta1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *CoordinationV1beta1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1beta1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1/fake/fake_coordination_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/client-go/kubernetes/typed/coordination/v1beta1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeCoordinationV1beta1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeCoordinationV1beta1) Leases(namespace string) v1beta1.LeaseInterface {\n\treturn newFakeLeases(c, namespace)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeCoordinationV1beta1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1/fake/fake_lease.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/coordination/v1beta1\"\n\tcoordinationv1beta1 \"k8s.io/client-go/applyconfigurations/coordination/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedcoordinationv1beta1 \"k8s.io/client-go/kubernetes/typed/coordination/v1beta1\"\n)\n\n// fakeLeases implements LeaseInterface\ntype fakeLeases struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta1.Lease, *v1beta1.LeaseList, *coordinationv1beta1.LeaseApplyConfiguration]\n\tFake *FakeCoordinationV1beta1\n}\n\nfunc newFakeLeases(fake *FakeCoordinationV1beta1, namespace string) typedcoordinationv1beta1.LeaseInterface {\n\treturn &fakeLeases{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta1.Lease, *v1beta1.LeaseList, *coordinationv1beta1.LeaseApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"leases\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"Lease\"),\n\t\t\tfunc() *v1beta1.Lease { return &v1beta1.Lease{} },\n\t\t\tfunc() *v1beta1.LeaseList { return &v1beta1.LeaseList{} },\n\t\t\tfunc(dst, src *v1beta1.LeaseList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta1.LeaseList) []*v1beta1.Lease { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1beta1.LeaseList, items []*v1beta1.Lease) { list.Items = gentype.FromPointerSlice(items) },\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\ntype LeaseExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/coordination/v1beta1/lease.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\tcoordinationv1beta1 \"k8s.io/api/coordination/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationscoordinationv1beta1 \"k8s.io/client-go/applyconfigurations/coordination/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// LeasesGetter has a method to return a LeaseInterface.\n// A group's client should implement this interface.\ntype LeasesGetter interface {\n\tLeases(namespace string) LeaseInterface\n}\n\n// LeaseInterface has methods to work with Lease resources.\ntype LeaseInterface interface {\n\tCreate(ctx context.Context, lease *coordinationv1beta1.Lease, opts v1.CreateOptions) (*coordinationv1beta1.Lease, error)\n\tUpdate(ctx context.Context, lease *coordinationv1beta1.Lease, opts v1.UpdateOptions) (*coordinationv1beta1.Lease, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*coordinationv1beta1.Lease, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*coordinationv1beta1.LeaseList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *coordinationv1beta1.Lease, err error)\n\tApply(ctx context.Context, lease *applyconfigurationscoordinationv1beta1.LeaseApplyConfiguration, opts v1.ApplyOptions) (result *coordinationv1beta1.Lease, err error)\n\tLeaseExpansion\n}\n\n// leases implements LeaseInterface\ntype leases struct {\n\t*gentype.ClientWithListAndApply[*coordinationv1beta1.Lease, *coordinationv1beta1.LeaseList, *applyconfigurationscoordinationv1beta1.LeaseApplyConfiguration]\n}\n\n// newLeases returns a Leases\nfunc newLeases(c *CoordinationV1beta1Client, namespace string) *leases {\n\treturn &leases{\n\t\tgentype.NewClientWithListAndApply[*coordinationv1beta1.Lease, *coordinationv1beta1.LeaseList, *applyconfigurationscoordinationv1beta1.LeaseApplyConfiguration](\n\t\t\t\"leases\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *coordinationv1beta1.Lease { return &coordinationv1beta1.Lease{} },\n\t\t\tfunc() *coordinationv1beta1.LeaseList { return &coordinationv1beta1.LeaseList{} },\n\t\t\tgentype.PrefersProtobuf[*coordinationv1beta1.Lease](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/componentstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationscorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// ComponentStatusesGetter has a method to return a ComponentStatusInterface.\n// A group's client should implement this interface.\ntype ComponentStatusesGetter interface {\n\tComponentStatuses() ComponentStatusInterface\n}\n\n// ComponentStatusInterface has methods to work with ComponentStatus resources.\ntype ComponentStatusInterface interface {\n\tCreate(ctx context.Context, componentStatus *corev1.ComponentStatus, opts metav1.CreateOptions) (*corev1.ComponentStatus, error)\n\tUpdate(ctx context.Context, componentStatus *corev1.ComponentStatus, opts metav1.UpdateOptions) (*corev1.ComponentStatus, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*corev1.ComponentStatus, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*corev1.ComponentStatusList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *corev1.ComponentStatus, err error)\n\tApply(ctx context.Context, componentStatus *applyconfigurationscorev1.ComponentStatusApplyConfiguration, opts metav1.ApplyOptions) (result *corev1.ComponentStatus, err error)\n\tComponentStatusExpansion\n}\n\n// componentStatuses implements ComponentStatusInterface\ntype componentStatuses struct {\n\t*gentype.ClientWithListAndApply[*corev1.ComponentStatus, *corev1.ComponentStatusList, *applyconfigurationscorev1.ComponentStatusApplyConfiguration]\n}\n\n// newComponentStatuses returns a ComponentStatuses\nfunc newComponentStatuses(c *CoreV1Client) *componentStatuses {\n\treturn &componentStatuses{\n\t\tgentype.NewClientWithListAndApply[*corev1.ComponentStatus, *corev1.ComponentStatusList, *applyconfigurationscorev1.ComponentStatusApplyConfiguration](\n\t\t\t\"componentstatuses\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *corev1.ComponentStatus { return &corev1.ComponentStatus{} },\n\t\t\tfunc() *corev1.ComponentStatusList { return &corev1.ComponentStatusList{} },\n\t\t\tgentype.PrefersProtobuf[*corev1.ComponentStatus](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/configmap.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationscorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// ConfigMapsGetter has a method to return a ConfigMapInterface.\n// A group's client should implement this interface.\ntype ConfigMapsGetter interface {\n\tConfigMaps(namespace string) ConfigMapInterface\n}\n\n// ConfigMapInterface has methods to work with ConfigMap resources.\ntype ConfigMapInterface interface {\n\tCreate(ctx context.Context, configMap *corev1.ConfigMap, opts metav1.CreateOptions) (*corev1.ConfigMap, error)\n\tUpdate(ctx context.Context, configMap *corev1.ConfigMap, opts metav1.UpdateOptions) (*corev1.ConfigMap, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*corev1.ConfigMap, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*corev1.ConfigMapList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *corev1.ConfigMap, err error)\n\tApply(ctx context.Context, configMap *applyconfigurationscorev1.ConfigMapApplyConfiguration, opts metav1.ApplyOptions) (result *corev1.ConfigMap, err error)\n\tConfigMapExpansion\n}\n\n// configMaps implements ConfigMapInterface\ntype configMaps struct {\n\t*gentype.ClientWithListAndApply[*corev1.ConfigMap, *corev1.ConfigMapList, *applyconfigurationscorev1.ConfigMapApplyConfiguration]\n}\n\n// newConfigMaps returns a ConfigMaps\nfunc newConfigMaps(c *CoreV1Client, namespace string) *configMaps {\n\treturn &configMaps{\n\t\tgentype.NewClientWithListAndApply[*corev1.ConfigMap, *corev1.ConfigMapList, *applyconfigurationscorev1.ConfigMapApplyConfiguration](\n\t\t\t\"configmaps\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *corev1.ConfigMap { return &corev1.ConfigMap{} },\n\t\t\tfunc() *corev1.ConfigMapList { return &corev1.ConfigMapList{} },\n\t\t\tgentype.PrefersProtobuf[*corev1.ConfigMap](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/core_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\thttp \"net/http\"\n\n\tcorev1 \"k8s.io/api/core/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype CoreV1Interface interface {\n\tRESTClient() rest.Interface\n\tComponentStatusesGetter\n\tConfigMapsGetter\n\tEndpointsGetter\n\tEventsGetter\n\tLimitRangesGetter\n\tNamespacesGetter\n\tNodesGetter\n\tPersistentVolumesGetter\n\tPersistentVolumeClaimsGetter\n\tPodsGetter\n\tPodTemplatesGetter\n\tReplicationControllersGetter\n\tResourceQuotasGetter\n\tSecretsGetter\n\tServicesGetter\n\tServiceAccountsGetter\n}\n\n// CoreV1Client is used to interact with features provided by the  group.\ntype CoreV1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *CoreV1Client) ComponentStatuses() ComponentStatusInterface {\n\treturn newComponentStatuses(c)\n}\n\nfunc (c *CoreV1Client) ConfigMaps(namespace string) ConfigMapInterface {\n\treturn newConfigMaps(c, namespace)\n}\n\nfunc (c *CoreV1Client) Endpoints(namespace string) EndpointsInterface {\n\treturn newEndpoints(c, namespace)\n}\n\nfunc (c *CoreV1Client) Events(namespace string) EventInterface {\n\treturn newEvents(c, namespace)\n}\n\nfunc (c *CoreV1Client) LimitRanges(namespace string) LimitRangeInterface {\n\treturn newLimitRanges(c, namespace)\n}\n\nfunc (c *CoreV1Client) Namespaces() NamespaceInterface {\n\treturn newNamespaces(c)\n}\n\nfunc (c *CoreV1Client) Nodes() NodeInterface {\n\treturn newNodes(c)\n}\n\nfunc (c *CoreV1Client) PersistentVolumes() PersistentVolumeInterface {\n\treturn newPersistentVolumes(c)\n}\n\nfunc (c *CoreV1Client) PersistentVolumeClaims(namespace string) PersistentVolumeClaimInterface {\n\treturn newPersistentVolumeClaims(c, namespace)\n}\n\nfunc (c *CoreV1Client) Pods(namespace string) PodInterface {\n\treturn newPods(c, namespace)\n}\n\nfunc (c *CoreV1Client) PodTemplates(namespace string) PodTemplateInterface {\n\treturn newPodTemplates(c, namespace)\n}\n\nfunc (c *CoreV1Client) ReplicationControllers(namespace string) ReplicationControllerInterface {\n\treturn newReplicationControllers(c, namespace)\n}\n\nfunc (c *CoreV1Client) ResourceQuotas(namespace string) ResourceQuotaInterface {\n\treturn newResourceQuotas(c, namespace)\n}\n\nfunc (c *CoreV1Client) Secrets(namespace string) SecretInterface {\n\treturn newSecrets(c, namespace)\n}\n\nfunc (c *CoreV1Client) Services(namespace string) ServiceInterface {\n\treturn newServices(c, namespace)\n}\n\nfunc (c *CoreV1Client) ServiceAccounts(namespace string) ServiceAccountInterface {\n\treturn newServiceAccounts(c, namespace)\n}\n\n// NewForConfig creates a new CoreV1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*CoreV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new CoreV1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*CoreV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &CoreV1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new CoreV1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *CoreV1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new CoreV1Client for the given RESTClient.\nfunc New(c rest.Interface) *CoreV1Client {\n\treturn &CoreV1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := corev1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/api\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *CoreV1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/endpoints.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationscorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// EndpointsGetter has a method to return a EndpointsInterface.\n// A group's client should implement this interface.\ntype EndpointsGetter interface {\n\tEndpoints(namespace string) EndpointsInterface\n}\n\n// EndpointsInterface has methods to work with Endpoints resources.\ntype EndpointsInterface interface {\n\tCreate(ctx context.Context, endpoints *corev1.Endpoints, opts metav1.CreateOptions) (*corev1.Endpoints, error)\n\tUpdate(ctx context.Context, endpoints *corev1.Endpoints, opts metav1.UpdateOptions) (*corev1.Endpoints, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*corev1.Endpoints, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*corev1.EndpointsList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *corev1.Endpoints, err error)\n\tApply(ctx context.Context, endpoints *applyconfigurationscorev1.EndpointsApplyConfiguration, opts metav1.ApplyOptions) (result *corev1.Endpoints, err error)\n\tEndpointsExpansion\n}\n\n// endpoints implements EndpointsInterface\ntype endpoints struct {\n\t*gentype.ClientWithListAndApply[*corev1.Endpoints, *corev1.EndpointsList, *applyconfigurationscorev1.EndpointsApplyConfiguration]\n}\n\n// newEndpoints returns a Endpoints\nfunc newEndpoints(c *CoreV1Client, namespace string) *endpoints {\n\treturn &endpoints{\n\t\tgentype.NewClientWithListAndApply[*corev1.Endpoints, *corev1.EndpointsList, *applyconfigurationscorev1.EndpointsApplyConfiguration](\n\t\t\t\"endpoints\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *corev1.Endpoints { return &corev1.Endpoints{} },\n\t\t\tfunc() *corev1.EndpointsList { return &corev1.EndpointsList{} },\n\t\t\tgentype.PrefersProtobuf[*corev1.Endpoints](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/event.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationscorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// EventsGetter has a method to return a EventInterface.\n// A group's client should implement this interface.\ntype EventsGetter interface {\n\tEvents(namespace string) EventInterface\n}\n\n// EventInterface has methods to work with Event resources.\ntype EventInterface interface {\n\tCreate(ctx context.Context, event *corev1.Event, opts metav1.CreateOptions) (*corev1.Event, error)\n\tUpdate(ctx context.Context, event *corev1.Event, opts metav1.UpdateOptions) (*corev1.Event, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*corev1.Event, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*corev1.EventList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *corev1.Event, err error)\n\tApply(ctx context.Context, event *applyconfigurationscorev1.EventApplyConfiguration, opts metav1.ApplyOptions) (result *corev1.Event, err error)\n\tEventExpansion\n}\n\n// events implements EventInterface\ntype events struct {\n\t*gentype.ClientWithListAndApply[*corev1.Event, *corev1.EventList, *applyconfigurationscorev1.EventApplyConfiguration]\n}\n\n// newEvents returns a Events\nfunc newEvents(c *CoreV1Client, namespace string) *events {\n\treturn &events{\n\t\tgentype.NewClientWithListAndApply[*corev1.Event, *corev1.EventList, *applyconfigurationscorev1.EventApplyConfiguration](\n\t\t\t\"events\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *corev1.Event { return &corev1.Event{} },\n\t\t\tfunc() *corev1.EventList { return &corev1.EventList{} },\n\t\t\tgentype.PrefersProtobuf[*corev1.Event](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/event_expansion.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/fields\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/types\"\n\tref \"k8s.io/client-go/tools/reference\"\n)\n\n// The EventExpansion interface allows manually adding extra methods to the EventInterface.\ntype EventExpansion interface {\n\t// CreateWithEventNamespace is the same as a Create, except that it sends the request to the event.Namespace.\n\tCreateWithEventNamespace(event *v1.Event) (*v1.Event, error)\n\t// UpdateWithEventNamespace is the same as a Update, except that it sends the request to the event.Namespace.\n\tUpdateWithEventNamespace(event *v1.Event) (*v1.Event, error)\n\t// PatchWithEventNamespace is the same as a Patch, except that it sends the request to the event.Namespace.\n\tPatchWithEventNamespace(event *v1.Event, data []byte) (*v1.Event, error)\n\t// Search finds events about the specified object\n\tSearch(scheme *runtime.Scheme, objOrRef runtime.Object) (*v1.EventList, error)\n\t// Returns the appropriate field selector based on the API version being used to communicate with the server.\n\t// The returned field selector can be used with List and Watch to filter desired events.\n\tGetFieldSelector(involvedObjectName, involvedObjectNamespace, involvedObjectKind, involvedObjectUID *string) fields.Selector\n}\n\n// CreateWithEventNamespace makes a new event. Returns the copy of the event the server returns,\n// or an error. The namespace to create the event within is deduced from the\n// event; it must either match this event client's namespace, or this event\n// client must have been created with the \"\" namespace.\nfunc (e *events) CreateWithEventNamespace(event *v1.Event) (*v1.Event, error) {\n\tif e.GetNamespace() != \"\" && event.Namespace != e.GetNamespace() {\n\t\treturn nil, fmt.Errorf(\"can't create an event with namespace '%v' in namespace '%v'\", event.Namespace, e.GetNamespace())\n\t}\n\tresult := &v1.Event{}\n\terr := e.GetClient().Post().\n\t\tNamespaceIfScoped(event.Namespace, len(event.Namespace) > 0).\n\t\tResource(\"events\").\n\t\tBody(event).\n\t\tDo(context.TODO()).\n\t\tInto(result)\n\treturn result, err\n}\n\n// UpdateWithEventNamespace modifies an existing event. It returns the copy of the event that the server returns,\n// or an error. The namespace and key to update the event within is deduced from the event. The\n// namespace must either match this event client's namespace, or this event client must have been\n// created with the \"\" namespace. Update also requires the ResourceVersion to be set in the event\n// object.\nfunc (e *events) UpdateWithEventNamespace(event *v1.Event) (*v1.Event, error) {\n\tif e.GetNamespace() != \"\" && event.Namespace != e.GetNamespace() {\n\t\treturn nil, fmt.Errorf(\"can't update an event with namespace '%v' in namespace '%v'\", event.Namespace, e.GetNamespace())\n\t}\n\tresult := &v1.Event{}\n\terr := e.GetClient().Put().\n\t\tNamespaceIfScoped(event.Namespace, len(event.Namespace) > 0).\n\t\tResource(\"events\").\n\t\tName(event.Name).\n\t\tBody(event).\n\t\tDo(context.TODO()).\n\t\tInto(result)\n\treturn result, err\n}\n\n// PatchWithEventNamespace modifies an existing event. It returns the copy of\n// the event that the server returns, or an error. The namespace and name of the\n// target event is deduced from the incompleteEvent. The namespace must either\n// match this event client's namespace, or this event client must have been\n// created with the \"\" namespace.\nfunc (e *events) PatchWithEventNamespace(incompleteEvent *v1.Event, data []byte) (*v1.Event, error) {\n\tif e.GetNamespace() != \"\" && incompleteEvent.Namespace != e.GetNamespace() {\n\t\treturn nil, fmt.Errorf(\"can't patch an event with namespace '%v' in namespace '%v'\", incompleteEvent.Namespace, e.GetNamespace())\n\t}\n\tresult := &v1.Event{}\n\terr := e.GetClient().Patch(types.StrategicMergePatchType).\n\t\tNamespaceIfScoped(incompleteEvent.Namespace, len(incompleteEvent.Namespace) > 0).\n\t\tResource(\"events\").\n\t\tName(incompleteEvent.Name).\n\t\tBody(data).\n\t\tDo(context.TODO()).\n\t\tInto(result)\n\treturn result, err\n}\n\n// Search finds events about the specified object. The namespace of the\n// object must match this event's client namespace unless the event client\n// was made with the \"\" namespace.\nfunc (e *events) Search(scheme *runtime.Scheme, objOrRef runtime.Object) (*v1.EventList, error) {\n\tref, err := ref.GetReference(scheme, objOrRef)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif len(e.GetNamespace()) > 0 && ref.Namespace != e.GetNamespace() {\n\t\treturn nil, fmt.Errorf(\"won't be able to find any events of namespace '%v' in namespace '%v'\", ref.Namespace, e.GetNamespace())\n\t}\n\tstringRefKind := string(ref.Kind)\n\tvar refKind *string\n\tif len(stringRefKind) > 0 {\n\t\trefKind = &stringRefKind\n\t}\n\tstringRefUID := string(ref.UID)\n\tvar refUID *string\n\tif len(stringRefUID) > 0 {\n\t\trefUID = &stringRefUID\n\t}\n\tfieldSelector := e.GetFieldSelector(&ref.Name, &ref.Namespace, refKind, refUID)\n\treturn e.List(context.TODO(), metav1.ListOptions{FieldSelector: fieldSelector.String()})\n}\n\n// Returns the appropriate field selector based on the API version being used to communicate with the server.\n// The returned field selector can be used with List and Watch to filter desired events.\nfunc (e *events) GetFieldSelector(involvedObjectName, involvedObjectNamespace, involvedObjectKind, involvedObjectUID *string) fields.Selector {\n\tfield := fields.Set{}\n\tif involvedObjectName != nil {\n\t\tfield[\"involvedObject.name\"] = *involvedObjectName\n\t}\n\tif involvedObjectNamespace != nil {\n\t\tfield[\"involvedObject.namespace\"] = *involvedObjectNamespace\n\t}\n\tif involvedObjectKind != nil {\n\t\tfield[\"involvedObject.kind\"] = *involvedObjectKind\n\t}\n\tif involvedObjectUID != nil {\n\t\tfield[\"involvedObject.uid\"] = *involvedObjectUID\n\t}\n\treturn field.AsSelector()\n}\n\n// Returns the appropriate field label to use for name of the involved object as per the given API version.\n// DEPRECATED: please use \"involvedObject.name\" inline.\nfunc GetInvolvedObjectNameFieldLabel(version string) string {\n\treturn \"involvedObject.name\"\n}\n\n// TODO: This is a temporary arrangement and will be removed once all clients are moved to use the clientset.\ntype EventSinkImpl struct {\n\tInterface EventInterface\n}\n\nfunc (e *EventSinkImpl) Create(event *v1.Event) (*v1.Event, error) {\n\treturn e.Interface.CreateWithEventNamespace(event)\n}\n\nfunc (e *EventSinkImpl) Update(event *v1.Event) (*v1.Event, error) {\n\treturn e.Interface.UpdateWithEventNamespace(event)\n}\n\nfunc (e *EventSinkImpl) Patch(event *v1.Event, data []byte) (*v1.Event, error) {\n\treturn e.Interface.PatchWithEventNamespace(event, data)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_componentstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedcorev1 \"k8s.io/client-go/kubernetes/typed/core/v1\"\n)\n\n// fakeComponentStatuses implements ComponentStatusInterface\ntype fakeComponentStatuses struct {\n\t*gentype.FakeClientWithListAndApply[*v1.ComponentStatus, *v1.ComponentStatusList, *corev1.ComponentStatusApplyConfiguration]\n\tFake *FakeCoreV1\n}\n\nfunc newFakeComponentStatuses(fake *FakeCoreV1) typedcorev1.ComponentStatusInterface {\n\treturn &fakeComponentStatuses{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.ComponentStatus, *v1.ComponentStatusList, *corev1.ComponentStatusApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1.SchemeGroupVersion.WithResource(\"componentstatuses\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"ComponentStatus\"),\n\t\t\tfunc() *v1.ComponentStatus { return &v1.ComponentStatus{} },\n\t\t\tfunc() *v1.ComponentStatusList { return &v1.ComponentStatusList{} },\n\t\t\tfunc(dst, src *v1.ComponentStatusList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.ComponentStatusList) []*v1.ComponentStatus { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1.ComponentStatusList, items []*v1.ComponentStatus) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_configmap.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedcorev1 \"k8s.io/client-go/kubernetes/typed/core/v1\"\n)\n\n// fakeConfigMaps implements ConfigMapInterface\ntype fakeConfigMaps struct {\n\t*gentype.FakeClientWithListAndApply[*v1.ConfigMap, *v1.ConfigMapList, *corev1.ConfigMapApplyConfiguration]\n\tFake *FakeCoreV1\n}\n\nfunc newFakeConfigMaps(fake *FakeCoreV1, namespace string) typedcorev1.ConfigMapInterface {\n\treturn &fakeConfigMaps{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.ConfigMap, *v1.ConfigMapList, *corev1.ConfigMapApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1.SchemeGroupVersion.WithResource(\"configmaps\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"ConfigMap\"),\n\t\t\tfunc() *v1.ConfigMap { return &v1.ConfigMap{} },\n\t\t\tfunc() *v1.ConfigMapList { return &v1.ConfigMapList{} },\n\t\t\tfunc(dst, src *v1.ConfigMapList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.ConfigMapList) []*v1.ConfigMap { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1.ConfigMapList, items []*v1.ConfigMap) { list.Items = gentype.FromPointerSlice(items) },\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_core_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/client-go/kubernetes/typed/core/v1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeCoreV1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeCoreV1) ComponentStatuses() v1.ComponentStatusInterface {\n\treturn newFakeComponentStatuses(c)\n}\n\nfunc (c *FakeCoreV1) ConfigMaps(namespace string) v1.ConfigMapInterface {\n\treturn newFakeConfigMaps(c, namespace)\n}\n\nfunc (c *FakeCoreV1) Endpoints(namespace string) v1.EndpointsInterface {\n\treturn newFakeEndpoints(c, namespace)\n}\n\nfunc (c *FakeCoreV1) Events(namespace string) v1.EventInterface {\n\treturn newFakeEvents(c, namespace)\n}\n\nfunc (c *FakeCoreV1) LimitRanges(namespace string) v1.LimitRangeInterface {\n\treturn newFakeLimitRanges(c, namespace)\n}\n\nfunc (c *FakeCoreV1) Namespaces() v1.NamespaceInterface {\n\treturn newFakeNamespaces(c)\n}\n\nfunc (c *FakeCoreV1) Nodes() v1.NodeInterface {\n\treturn newFakeNodes(c)\n}\n\nfunc (c *FakeCoreV1) PersistentVolumes() v1.PersistentVolumeInterface {\n\treturn newFakePersistentVolumes(c)\n}\n\nfunc (c *FakeCoreV1) PersistentVolumeClaims(namespace string) v1.PersistentVolumeClaimInterface {\n\treturn newFakePersistentVolumeClaims(c, namespace)\n}\n\nfunc (c *FakeCoreV1) Pods(namespace string) v1.PodInterface {\n\treturn newFakePods(c, namespace)\n}\n\nfunc (c *FakeCoreV1) PodTemplates(namespace string) v1.PodTemplateInterface {\n\treturn newFakePodTemplates(c, namespace)\n}\n\nfunc (c *FakeCoreV1) ReplicationControllers(namespace string) v1.ReplicationControllerInterface {\n\treturn newFakeReplicationControllers(c, namespace)\n}\n\nfunc (c *FakeCoreV1) ResourceQuotas(namespace string) v1.ResourceQuotaInterface {\n\treturn newFakeResourceQuotas(c, namespace)\n}\n\nfunc (c *FakeCoreV1) Secrets(namespace string) v1.SecretInterface {\n\treturn newFakeSecrets(c, namespace)\n}\n\nfunc (c *FakeCoreV1) Services(namespace string) v1.ServiceInterface {\n\treturn newFakeServices(c, namespace)\n}\n\nfunc (c *FakeCoreV1) ServiceAccounts(namespace string) v1.ServiceAccountInterface {\n\treturn newFakeServiceAccounts(c, namespace)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeCoreV1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_endpoints.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedcorev1 \"k8s.io/client-go/kubernetes/typed/core/v1\"\n)\n\n// fakeEndpoints implements EndpointsInterface\ntype fakeEndpoints struct {\n\t*gentype.FakeClientWithListAndApply[*v1.Endpoints, *v1.EndpointsList, *corev1.EndpointsApplyConfiguration]\n\tFake *FakeCoreV1\n}\n\nfunc newFakeEndpoints(fake *FakeCoreV1, namespace string) typedcorev1.EndpointsInterface {\n\treturn &fakeEndpoints{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.Endpoints, *v1.EndpointsList, *corev1.EndpointsApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1.SchemeGroupVersion.WithResource(\"endpoints\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"Endpoints\"),\n\t\t\tfunc() *v1.Endpoints { return &v1.Endpoints{} },\n\t\t\tfunc() *v1.EndpointsList { return &v1.EndpointsList{} },\n\t\t\tfunc(dst, src *v1.EndpointsList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.EndpointsList) []*v1.Endpoints { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1.EndpointsList, items []*v1.Endpoints) { list.Items = gentype.FromPointerSlice(items) },\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_event.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedcorev1 \"k8s.io/client-go/kubernetes/typed/core/v1\"\n)\n\n// fakeEvents implements EventInterface\ntype fakeEvents struct {\n\t*gentype.FakeClientWithListAndApply[*v1.Event, *v1.EventList, *corev1.EventApplyConfiguration]\n\tFake *FakeCoreV1\n}\n\nfunc newFakeEvents(fake *FakeCoreV1, namespace string) typedcorev1.EventInterface {\n\treturn &fakeEvents{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.Event, *v1.EventList, *corev1.EventApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1.SchemeGroupVersion.WithResource(\"events\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"Event\"),\n\t\t\tfunc() *v1.Event { return &v1.Event{} },\n\t\t\tfunc() *v1.EventList { return &v1.EventList{} },\n\t\t\tfunc(dst, src *v1.EventList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.EventList) []*v1.Event { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1.EventList, items []*v1.Event) { list.Items = gentype.FromPointerSlice(items) },\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_event_expansion.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/fields\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tcore \"k8s.io/client-go/testing\"\n)\n\nfunc (c *fakeEvents) CreateWithEventNamespace(event *v1.Event) (*v1.Event, error) {\n\tvar action core.CreateActionImpl\n\tif c.Namespace() != \"\" {\n\t\taction = core.NewCreateAction(c.Resource(), c.Namespace(), event)\n\t} else {\n\t\taction = core.NewCreateAction(c.Resource(), event.GetNamespace(), event)\n\t}\n\tobj, err := c.Fake.Invokes(action, event)\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\treturn obj.(*v1.Event), err\n}\n\n// Update replaces an existing event. Returns the copy of the event the server returns, or an error.\nfunc (c *fakeEvents) UpdateWithEventNamespace(event *v1.Event) (*v1.Event, error) {\n\tvar action core.UpdateActionImpl\n\tif c.Namespace() != \"\" {\n\t\taction = core.NewUpdateAction(c.Resource(), c.Namespace(), event)\n\t} else {\n\t\taction = core.NewUpdateAction(c.Resource(), event.GetNamespace(), event)\n\t}\n\tobj, err := c.Fake.Invokes(action, event)\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\treturn obj.(*v1.Event), err\n}\n\n// PatchWithEventNamespace patches an existing event. Returns the copy of the event the server returns, or an error.\n// TODO: Should take a PatchType as an argument probably.\nfunc (c *fakeEvents) PatchWithEventNamespace(event *v1.Event, data []byte) (*v1.Event, error) {\n\t// TODO: Should be configurable to support additional patch strategies.\n\tpt := types.StrategicMergePatchType\n\tvar action core.PatchActionImpl\n\tif c.Namespace() != \"\" {\n\t\taction = core.NewPatchAction(c.Resource(), c.Namespace(), event.Name, pt, data)\n\t} else {\n\t\taction = core.NewPatchAction(c.Resource(), event.GetNamespace(), event.Name, pt, data)\n\t}\n\tobj, err := c.Fake.Invokes(action, event)\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\treturn obj.(*v1.Event), err\n}\n\n// Search returns a list of events matching the specified object.\nfunc (c *fakeEvents) Search(scheme *runtime.Scheme, objOrRef runtime.Object) (*v1.EventList, error) {\n\tvar action core.ListActionImpl\n\tif c.Namespace() != \"\" {\n\t\taction = core.NewListAction(c.Resource(), c.Kind(), c.Namespace(), metav1.ListOptions{})\n\t} else {\n\t\taction = core.NewListAction(c.Resource(), c.Kind(), v1.NamespaceDefault, metav1.ListOptions{})\n\t}\n\tobj, err := c.Fake.Invokes(action, &v1.EventList{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\treturn obj.(*v1.EventList), err\n}\n\nfunc (c *fakeEvents) GetFieldSelector(involvedObjectName, involvedObjectNamespace, involvedObjectKind, involvedObjectUID *string) fields.Selector {\n\taction := core.GenericActionImpl{}\n\taction.Verb = \"get-field-selector\"\n\taction.Resource = c.Resource()\n\n\tc.Fake.Invokes(action, nil)\n\treturn fields.Everything()\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_limitrange.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedcorev1 \"k8s.io/client-go/kubernetes/typed/core/v1\"\n)\n\n// fakeLimitRanges implements LimitRangeInterface\ntype fakeLimitRanges struct {\n\t*gentype.FakeClientWithListAndApply[*v1.LimitRange, *v1.LimitRangeList, *corev1.LimitRangeApplyConfiguration]\n\tFake *FakeCoreV1\n}\n\nfunc newFakeLimitRanges(fake *FakeCoreV1, namespace string) typedcorev1.LimitRangeInterface {\n\treturn &fakeLimitRanges{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.LimitRange, *v1.LimitRangeList, *corev1.LimitRangeApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1.SchemeGroupVersion.WithResource(\"limitranges\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"LimitRange\"),\n\t\t\tfunc() *v1.LimitRange { return &v1.LimitRange{} },\n\t\t\tfunc() *v1.LimitRangeList { return &v1.LimitRangeList{} },\n\t\t\tfunc(dst, src *v1.LimitRangeList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.LimitRangeList) []*v1.LimitRange { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1.LimitRangeList, items []*v1.LimitRange) { list.Items = gentype.FromPointerSlice(items) },\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_namespace.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedcorev1 \"k8s.io/client-go/kubernetes/typed/core/v1\"\n)\n\n// fakeNamespaces implements NamespaceInterface\ntype fakeNamespaces struct {\n\t*gentype.FakeClientWithListAndApply[*v1.Namespace, *v1.NamespaceList, *corev1.NamespaceApplyConfiguration]\n\tFake *FakeCoreV1\n}\n\nfunc newFakeNamespaces(fake *FakeCoreV1) typedcorev1.NamespaceInterface {\n\treturn &fakeNamespaces{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.Namespace, *v1.NamespaceList, *corev1.NamespaceApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1.SchemeGroupVersion.WithResource(\"namespaces\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"Namespace\"),\n\t\t\tfunc() *v1.Namespace { return &v1.Namespace{} },\n\t\t\tfunc() *v1.NamespaceList { return &v1.NamespaceList{} },\n\t\t\tfunc(dst, src *v1.NamespaceList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.NamespaceList) []*v1.Namespace { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1.NamespaceList, items []*v1.Namespace) { list.Items = gentype.FromPointerSlice(items) },\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_namespace_expansion.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fake\n\nimport (\n\t\"context\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tcore \"k8s.io/client-go/testing\"\n)\n\nfunc (c *fakeNamespaces) Finalize(ctx context.Context, namespace *v1.Namespace, opts metav1.UpdateOptions) (*v1.Namespace, error) {\n\taction := core.CreateActionImpl{}\n\taction.Verb = \"create\"\n\taction.Resource = c.Resource()\n\taction.Subresource = \"finalize\"\n\taction.Object = namespace\n\n\tobj, err := c.Fake.Invokes(action, namespace)\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\treturn obj.(*v1.Namespace), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_node.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedcorev1 \"k8s.io/client-go/kubernetes/typed/core/v1\"\n)\n\n// fakeNodes implements NodeInterface\ntype fakeNodes struct {\n\t*gentype.FakeClientWithListAndApply[*v1.Node, *v1.NodeList, *corev1.NodeApplyConfiguration]\n\tFake *FakeCoreV1\n}\n\nfunc newFakeNodes(fake *FakeCoreV1) typedcorev1.NodeInterface {\n\treturn &fakeNodes{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.Node, *v1.NodeList, *corev1.NodeApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1.SchemeGroupVersion.WithResource(\"nodes\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"Node\"),\n\t\t\tfunc() *v1.Node { return &v1.Node{} },\n\t\t\tfunc() *v1.NodeList { return &v1.NodeList{} },\n\t\t\tfunc(dst, src *v1.NodeList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.NodeList) []*v1.Node { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1.NodeList, items []*v1.Node) { list.Items = gentype.FromPointerSlice(items) },\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_node_expansion.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fake\n\nimport (\n\t\"context\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tcore \"k8s.io/client-go/testing\"\n)\n\n// TODO: Should take a PatchType as an argument probably.\nfunc (c *fakeNodes) PatchStatus(_ context.Context, nodeName string, data []byte) (*v1.Node, error) {\n\t// TODO: Should be configurable to support additional patch strategies.\n\tpt := types.StrategicMergePatchType\n\tobj, err := c.Fake.Invokes(\n\t\tcore.NewRootPatchSubresourceAction(c.Resource(), nodeName, pt, data, \"status\"), &v1.Node{})\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\treturn obj.(*v1.Node), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_persistentvolume.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedcorev1 \"k8s.io/client-go/kubernetes/typed/core/v1\"\n)\n\n// fakePersistentVolumes implements PersistentVolumeInterface\ntype fakePersistentVolumes struct {\n\t*gentype.FakeClientWithListAndApply[*v1.PersistentVolume, *v1.PersistentVolumeList, *corev1.PersistentVolumeApplyConfiguration]\n\tFake *FakeCoreV1\n}\n\nfunc newFakePersistentVolumes(fake *FakeCoreV1) typedcorev1.PersistentVolumeInterface {\n\treturn &fakePersistentVolumes{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.PersistentVolume, *v1.PersistentVolumeList, *corev1.PersistentVolumeApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1.SchemeGroupVersion.WithResource(\"persistentvolumes\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"PersistentVolume\"),\n\t\t\tfunc() *v1.PersistentVolume { return &v1.PersistentVolume{} },\n\t\t\tfunc() *v1.PersistentVolumeList { return &v1.PersistentVolumeList{} },\n\t\t\tfunc(dst, src *v1.PersistentVolumeList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.PersistentVolumeList) []*v1.PersistentVolume { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1.PersistentVolumeList, items []*v1.PersistentVolume) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_persistentvolumeclaim.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedcorev1 \"k8s.io/client-go/kubernetes/typed/core/v1\"\n)\n\n// fakePersistentVolumeClaims implements PersistentVolumeClaimInterface\ntype fakePersistentVolumeClaims struct {\n\t*gentype.FakeClientWithListAndApply[*v1.PersistentVolumeClaim, *v1.PersistentVolumeClaimList, *corev1.PersistentVolumeClaimApplyConfiguration]\n\tFake *FakeCoreV1\n}\n\nfunc newFakePersistentVolumeClaims(fake *FakeCoreV1, namespace string) typedcorev1.PersistentVolumeClaimInterface {\n\treturn &fakePersistentVolumeClaims{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.PersistentVolumeClaim, *v1.PersistentVolumeClaimList, *corev1.PersistentVolumeClaimApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1.SchemeGroupVersion.WithResource(\"persistentvolumeclaims\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"PersistentVolumeClaim\"),\n\t\t\tfunc() *v1.PersistentVolumeClaim { return &v1.PersistentVolumeClaim{} },\n\t\t\tfunc() *v1.PersistentVolumeClaimList { return &v1.PersistentVolumeClaimList{} },\n\t\t\tfunc(dst, src *v1.PersistentVolumeClaimList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.PersistentVolumeClaimList) []*v1.PersistentVolumeClaim {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1.PersistentVolumeClaimList, items []*v1.PersistentVolumeClaim) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_pod.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tcontext \"context\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedcorev1 \"k8s.io/client-go/kubernetes/typed/core/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// fakePods implements PodInterface\ntype fakePods struct {\n\t*gentype.FakeClientWithListAndApply[*v1.Pod, *v1.PodList, *corev1.PodApplyConfiguration]\n\tFake *FakeCoreV1\n}\n\nfunc newFakePods(fake *FakeCoreV1, namespace string) typedcorev1.PodInterface {\n\treturn &fakePods{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.Pod, *v1.PodList, *corev1.PodApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1.SchemeGroupVersion.WithResource(\"pods\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"Pod\"),\n\t\t\tfunc() *v1.Pod { return &v1.Pod{} },\n\t\t\tfunc() *v1.PodList { return &v1.PodList{} },\n\t\t\tfunc(dst, src *v1.PodList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.PodList) []*v1.Pod { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1.PodList, items []*v1.Pod) { list.Items = gentype.FromPointerSlice(items) },\n\t\t),\n\t\tfake,\n\t}\n}\n\n// UpdateEphemeralContainers takes the representation of a pod and updates it. Returns the server's representation of the pod, and an error, if there is any.\nfunc (c *fakePods) UpdateEphemeralContainers(ctx context.Context, podName string, pod *v1.Pod, opts metav1.UpdateOptions) (result *v1.Pod, err error) {\n\temptyResult := &v1.Pod{}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceActionWithOptions(c.Resource(), \"ephemeralcontainers\", c.Namespace(), pod, opts), &v1.Pod{})\n\n\tif obj == nil {\n\t\treturn emptyResult, err\n\t}\n\treturn obj.(*v1.Pod), err\n}\n\n// UpdateResize takes the representation of a pod and updates it. Returns the server's representation of the pod, and an error, if there is any.\nfunc (c *fakePods) UpdateResize(ctx context.Context, podName string, pod *v1.Pod, opts metav1.UpdateOptions) (result *v1.Pod, err error) {\n\temptyResult := &v1.Pod{}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceActionWithOptions(c.Resource(), \"resize\", c.Namespace(), pod, opts), &v1.Pod{})\n\n\tif obj == nil {\n\t\treturn emptyResult, err\n\t}\n\treturn obj.(*v1.Pod), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_pod_expansion.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fake\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n\t\"strings\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tpolicyv1 \"k8s.io/api/policy/v1\"\n\tpolicyv1beta1 \"k8s.io/api/policy/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trestclient \"k8s.io/client-go/rest\"\n\tfakerest \"k8s.io/client-go/rest/fake\"\n\tcore \"k8s.io/client-go/testing\"\n)\n\nfunc (c *fakePods) Bind(ctx context.Context, binding *v1.Binding, opts metav1.CreateOptions) error {\n\taction := core.CreateActionImpl{}\n\taction.Verb = \"create\"\n\taction.Namespace = binding.Namespace\n\taction.Resource = c.Resource()\n\taction.Subresource = \"binding\"\n\taction.Object = binding\n\n\t_, err := c.Fake.Invokes(action, binding)\n\treturn err\n}\n\nfunc (c *fakePods) GetBinding(name string) (result *v1.Binding, err error) {\n\tobj, err := c.Fake.\n\t\tInvokes(core.NewGetSubresourceAction(c.Resource(), c.Namespace(), \"binding\", name), &v1.Binding{})\n\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\treturn obj.(*v1.Binding), err\n}\n\nfunc (c *fakePods) GetLogs(name string, opts *v1.PodLogOptions) *restclient.Request {\n\taction := core.GenericActionImpl{}\n\taction.Verb = \"get\"\n\taction.Namespace = c.Namespace()\n\taction.Resource = c.Resource()\n\taction.Subresource = \"log\"\n\taction.Value = opts\n\n\t_, _ = c.Fake.Invokes(action, &v1.Pod{})\n\tfakeClient := &fakerest.RESTClient{\n\t\tClient: fakerest.CreateHTTPClient(func(request *http.Request) (*http.Response, error) {\n\t\t\tresp := &http.Response{\n\t\t\t\tStatusCode: http.StatusOK,\n\t\t\t\tBody:       io.NopCloser(strings.NewReader(\"fake logs\")),\n\t\t\t}\n\t\t\treturn resp, nil\n\t\t}),\n\t\tNegotiatedSerializer: scheme.Codecs.WithoutConversion(),\n\t\tGroupVersion:         c.Kind().GroupVersion(),\n\t\tVersionedAPIPath:     fmt.Sprintf(\"/api/v1/namespaces/%s/pods/%s/log\", c.Namespace(), name),\n\t}\n\treturn fakeClient.Request()\n}\n\nfunc (c *fakePods) Evict(ctx context.Context, eviction *policyv1beta1.Eviction) error {\n\treturn c.EvictV1beta1(ctx, eviction)\n}\n\nfunc (c *fakePods) EvictV1(ctx context.Context, eviction *policyv1.Eviction) error {\n\taction := core.CreateActionImpl{}\n\taction.Verb = \"create\"\n\taction.Namespace = c.Namespace()\n\taction.Resource = c.Resource()\n\taction.Subresource = \"eviction\"\n\taction.Object = eviction\n\n\t_, err := c.Fake.Invokes(action, eviction)\n\treturn err\n}\n\nfunc (c *fakePods) EvictV1beta1(ctx context.Context, eviction *policyv1beta1.Eviction) error {\n\taction := core.CreateActionImpl{}\n\taction.Verb = \"create\"\n\taction.Namespace = c.Namespace()\n\taction.Resource = c.Resource()\n\taction.Subresource = \"eviction\"\n\taction.Object = eviction\n\n\t_, err := c.Fake.Invokes(action, eviction)\n\treturn err\n}\n\nfunc (c *fakePods) ProxyGet(scheme, name, port, path string, params map[string]string) restclient.ResponseWrapper {\n\treturn c.Fake.InvokesProxy(core.NewProxyGetAction(c.Resource(), c.Namespace(), scheme, name, port, path, params))\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_podtemplate.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedcorev1 \"k8s.io/client-go/kubernetes/typed/core/v1\"\n)\n\n// fakePodTemplates implements PodTemplateInterface\ntype fakePodTemplates struct {\n\t*gentype.FakeClientWithListAndApply[*v1.PodTemplate, *v1.PodTemplateList, *corev1.PodTemplateApplyConfiguration]\n\tFake *FakeCoreV1\n}\n\nfunc newFakePodTemplates(fake *FakeCoreV1, namespace string) typedcorev1.PodTemplateInterface {\n\treturn &fakePodTemplates{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.PodTemplate, *v1.PodTemplateList, *corev1.PodTemplateApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1.SchemeGroupVersion.WithResource(\"podtemplates\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"PodTemplate\"),\n\t\t\tfunc() *v1.PodTemplate { return &v1.PodTemplate{} },\n\t\t\tfunc() *v1.PodTemplateList { return &v1.PodTemplateList{} },\n\t\t\tfunc(dst, src *v1.PodTemplateList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.PodTemplateList) []*v1.PodTemplate { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1.PodTemplateList, items []*v1.PodTemplate) { list.Items = gentype.FromPointerSlice(items) },\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_replicationcontroller.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tcontext \"context\"\n\n\tautoscalingv1 \"k8s.io/api/autoscaling/v1\"\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedcorev1 \"k8s.io/client-go/kubernetes/typed/core/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// fakeReplicationControllers implements ReplicationControllerInterface\ntype fakeReplicationControllers struct {\n\t*gentype.FakeClientWithListAndApply[*v1.ReplicationController, *v1.ReplicationControllerList, *corev1.ReplicationControllerApplyConfiguration]\n\tFake *FakeCoreV1\n}\n\nfunc newFakeReplicationControllers(fake *FakeCoreV1, namespace string) typedcorev1.ReplicationControllerInterface {\n\treturn &fakeReplicationControllers{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.ReplicationController, *v1.ReplicationControllerList, *corev1.ReplicationControllerApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1.SchemeGroupVersion.WithResource(\"replicationcontrollers\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"ReplicationController\"),\n\t\t\tfunc() *v1.ReplicationController { return &v1.ReplicationController{} },\n\t\t\tfunc() *v1.ReplicationControllerList { return &v1.ReplicationControllerList{} },\n\t\t\tfunc(dst, src *v1.ReplicationControllerList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.ReplicationControllerList) []*v1.ReplicationController {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1.ReplicationControllerList, items []*v1.ReplicationController) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n\n// GetScale takes name of the replicationController, and returns the corresponding scale object, and an error if there is any.\nfunc (c *fakeReplicationControllers) GetScale(ctx context.Context, replicationControllerName string, options metav1.GetOptions) (result *autoscalingv1.Scale, err error) {\n\temptyResult := &autoscalingv1.Scale{}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetSubresourceActionWithOptions(c.Resource(), c.Namespace(), \"scale\", replicationControllerName, options), emptyResult)\n\n\tif obj == nil {\n\t\treturn emptyResult, err\n\t}\n\treturn obj.(*autoscalingv1.Scale), err\n}\n\n// UpdateScale takes the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any.\nfunc (c *fakeReplicationControllers) UpdateScale(ctx context.Context, replicationControllerName string, scale *autoscalingv1.Scale, opts metav1.UpdateOptions) (result *autoscalingv1.Scale, err error) {\n\temptyResult := &autoscalingv1.Scale{}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceActionWithOptions(c.Resource(), \"scale\", c.Namespace(), scale, opts), &autoscalingv1.Scale{})\n\n\tif obj == nil {\n\t\treturn emptyResult, err\n\t}\n\treturn obj.(*autoscalingv1.Scale), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_resourcequota.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedcorev1 \"k8s.io/client-go/kubernetes/typed/core/v1\"\n)\n\n// fakeResourceQuotas implements ResourceQuotaInterface\ntype fakeResourceQuotas struct {\n\t*gentype.FakeClientWithListAndApply[*v1.ResourceQuota, *v1.ResourceQuotaList, *corev1.ResourceQuotaApplyConfiguration]\n\tFake *FakeCoreV1\n}\n\nfunc newFakeResourceQuotas(fake *FakeCoreV1, namespace string) typedcorev1.ResourceQuotaInterface {\n\treturn &fakeResourceQuotas{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.ResourceQuota, *v1.ResourceQuotaList, *corev1.ResourceQuotaApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1.SchemeGroupVersion.WithResource(\"resourcequotas\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"ResourceQuota\"),\n\t\t\tfunc() *v1.ResourceQuota { return &v1.ResourceQuota{} },\n\t\t\tfunc() *v1.ResourceQuotaList { return &v1.ResourceQuotaList{} },\n\t\t\tfunc(dst, src *v1.ResourceQuotaList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.ResourceQuotaList) []*v1.ResourceQuota { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1.ResourceQuotaList, items []*v1.ResourceQuota) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_secret.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedcorev1 \"k8s.io/client-go/kubernetes/typed/core/v1\"\n)\n\n// fakeSecrets implements SecretInterface\ntype fakeSecrets struct {\n\t*gentype.FakeClientWithListAndApply[*v1.Secret, *v1.SecretList, *corev1.SecretApplyConfiguration]\n\tFake *FakeCoreV1\n}\n\nfunc newFakeSecrets(fake *FakeCoreV1, namespace string) typedcorev1.SecretInterface {\n\treturn &fakeSecrets{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.Secret, *v1.SecretList, *corev1.SecretApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1.SchemeGroupVersion.WithResource(\"secrets\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"Secret\"),\n\t\t\tfunc() *v1.Secret { return &v1.Secret{} },\n\t\t\tfunc() *v1.SecretList { return &v1.SecretList{} },\n\t\t\tfunc(dst, src *v1.SecretList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.SecretList) []*v1.Secret { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1.SecretList, items []*v1.Secret) { list.Items = gentype.FromPointerSlice(items) },\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_service.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/core/v1\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedcorev1 \"k8s.io/client-go/kubernetes/typed/core/v1\"\n)\n\n// fakeServices implements ServiceInterface\ntype fakeServices struct {\n\t*gentype.FakeClientWithListAndApply[*v1.Service, *v1.ServiceList, *corev1.ServiceApplyConfiguration]\n\tFake *FakeCoreV1\n}\n\nfunc newFakeServices(fake *FakeCoreV1, namespace string) typedcorev1.ServiceInterface {\n\treturn &fakeServices{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.Service, *v1.ServiceList, *corev1.ServiceApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1.SchemeGroupVersion.WithResource(\"services\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"Service\"),\n\t\t\tfunc() *v1.Service { return &v1.Service{} },\n\t\t\tfunc() *v1.ServiceList { return &v1.ServiceList{} },\n\t\t\tfunc(dst, src *v1.ServiceList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.ServiceList) []*v1.Service { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1.ServiceList, items []*v1.Service) { list.Items = gentype.FromPointerSlice(items) },\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_service_expansion.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fake\n\nimport (\n\trestclient \"k8s.io/client-go/rest\"\n\tcore \"k8s.io/client-go/testing\"\n)\n\nfunc (c *fakeServices) ProxyGet(scheme, name, port, path string, params map[string]string) restclient.ResponseWrapper {\n\treturn c.Fake.InvokesProxy(core.NewProxyGetAction(c.Resource(), c.Namespace(), scheme, name, port, path, params))\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/fake/fake_serviceaccount.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tcontext \"context\"\n\n\tauthenticationv1 \"k8s.io/api/authentication/v1\"\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tcorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedcorev1 \"k8s.io/client-go/kubernetes/typed/core/v1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// fakeServiceAccounts implements ServiceAccountInterface\ntype fakeServiceAccounts struct {\n\t*gentype.FakeClientWithListAndApply[*v1.ServiceAccount, *v1.ServiceAccountList, *corev1.ServiceAccountApplyConfiguration]\n\tFake *FakeCoreV1\n}\n\nfunc newFakeServiceAccounts(fake *FakeCoreV1, namespace string) typedcorev1.ServiceAccountInterface {\n\treturn &fakeServiceAccounts{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.ServiceAccount, *v1.ServiceAccountList, *corev1.ServiceAccountApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1.SchemeGroupVersion.WithResource(\"serviceaccounts\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"ServiceAccount\"),\n\t\t\tfunc() *v1.ServiceAccount { return &v1.ServiceAccount{} },\n\t\t\tfunc() *v1.ServiceAccountList { return &v1.ServiceAccountList{} },\n\t\t\tfunc(dst, src *v1.ServiceAccountList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.ServiceAccountList) []*v1.ServiceAccount { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1.ServiceAccountList, items []*v1.ServiceAccount) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n\n// CreateToken takes the representation of a tokenRequest and creates it.  Returns the server's representation of the tokenRequest, and an error, if there is any.\nfunc (c *fakeServiceAccounts) CreateToken(ctx context.Context, serviceAccountName string, tokenRequest *authenticationv1.TokenRequest, opts metav1.CreateOptions) (result *authenticationv1.TokenRequest, err error) {\n\temptyResult := &authenticationv1.TokenRequest{}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewCreateSubresourceActionWithOptions(c.Resource(), serviceAccountName, \"token\", c.Namespace(), tokenRequest, opts), emptyResult)\n\n\tif obj == nil {\n\t\treturn emptyResult, err\n\t}\n\treturn obj.(*authenticationv1.TokenRequest), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\ntype ComponentStatusExpansion interface{}\n\ntype ConfigMapExpansion interface{}\n\ntype EndpointsExpansion interface{}\n\ntype LimitRangeExpansion interface{}\n\ntype PersistentVolumeExpansion interface{}\n\ntype PersistentVolumeClaimExpansion interface{}\n\ntype PodTemplateExpansion interface{}\n\ntype ReplicationControllerExpansion interface{}\n\ntype ResourceQuotaExpansion interface{}\n\ntype SecretExpansion interface{}\n\ntype ServiceAccountExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/limitrange.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationscorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// LimitRangesGetter has a method to return a LimitRangeInterface.\n// A group's client should implement this interface.\ntype LimitRangesGetter interface {\n\tLimitRanges(namespace string) LimitRangeInterface\n}\n\n// LimitRangeInterface has methods to work with LimitRange resources.\ntype LimitRangeInterface interface {\n\tCreate(ctx context.Context, limitRange *corev1.LimitRange, opts metav1.CreateOptions) (*corev1.LimitRange, error)\n\tUpdate(ctx context.Context, limitRange *corev1.LimitRange, opts metav1.UpdateOptions) (*corev1.LimitRange, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*corev1.LimitRange, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*corev1.LimitRangeList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *corev1.LimitRange, err error)\n\tApply(ctx context.Context, limitRange *applyconfigurationscorev1.LimitRangeApplyConfiguration, opts metav1.ApplyOptions) (result *corev1.LimitRange, err error)\n\tLimitRangeExpansion\n}\n\n// limitRanges implements LimitRangeInterface\ntype limitRanges struct {\n\t*gentype.ClientWithListAndApply[*corev1.LimitRange, *corev1.LimitRangeList, *applyconfigurationscorev1.LimitRangeApplyConfiguration]\n}\n\n// newLimitRanges returns a LimitRanges\nfunc newLimitRanges(c *CoreV1Client, namespace string) *limitRanges {\n\treturn &limitRanges{\n\t\tgentype.NewClientWithListAndApply[*corev1.LimitRange, *corev1.LimitRangeList, *applyconfigurationscorev1.LimitRangeApplyConfiguration](\n\t\t\t\"limitranges\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *corev1.LimitRange { return &corev1.LimitRange{} },\n\t\t\tfunc() *corev1.LimitRangeList { return &corev1.LimitRangeList{} },\n\t\t\tgentype.PrefersProtobuf[*corev1.LimitRange](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/namespace.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationscorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// NamespacesGetter has a method to return a NamespaceInterface.\n// A group's client should implement this interface.\ntype NamespacesGetter interface {\n\tNamespaces() NamespaceInterface\n}\n\n// NamespaceInterface has methods to work with Namespace resources.\ntype NamespaceInterface interface {\n\tCreate(ctx context.Context, namespace *corev1.Namespace, opts metav1.CreateOptions) (*corev1.Namespace, error)\n\tUpdate(ctx context.Context, namespace *corev1.Namespace, opts metav1.UpdateOptions) (*corev1.Namespace, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, namespace *corev1.Namespace, opts metav1.UpdateOptions) (*corev1.Namespace, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*corev1.Namespace, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*corev1.NamespaceList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *corev1.Namespace, err error)\n\tApply(ctx context.Context, namespace *applyconfigurationscorev1.NamespaceApplyConfiguration, opts metav1.ApplyOptions) (result *corev1.Namespace, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, namespace *applyconfigurationscorev1.NamespaceApplyConfiguration, opts metav1.ApplyOptions) (result *corev1.Namespace, err error)\n\tNamespaceExpansion\n}\n\n// namespaces implements NamespaceInterface\ntype namespaces struct {\n\t*gentype.ClientWithListAndApply[*corev1.Namespace, *corev1.NamespaceList, *applyconfigurationscorev1.NamespaceApplyConfiguration]\n}\n\n// newNamespaces returns a Namespaces\nfunc newNamespaces(c *CoreV1Client) *namespaces {\n\treturn &namespaces{\n\t\tgentype.NewClientWithListAndApply[*corev1.Namespace, *corev1.NamespaceList, *applyconfigurationscorev1.NamespaceApplyConfiguration](\n\t\t\t\"namespaces\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *corev1.Namespace { return &corev1.Namespace{} },\n\t\t\tfunc() *corev1.NamespaceList { return &corev1.NamespaceList{} },\n\t\t\tgentype.PrefersProtobuf[*corev1.Namespace](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/namespace_expansion.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"context\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// The NamespaceExpansion interface allows manually adding extra methods to the NamespaceInterface.\ntype NamespaceExpansion interface {\n\tFinalize(ctx context.Context, item *v1.Namespace, opts metav1.UpdateOptions) (*v1.Namespace, error)\n}\n\n// Finalize takes the representation of a namespace to update.  Returns the server's representation of the namespace, and an error, if it occurs.\nfunc (c *namespaces) Finalize(ctx context.Context, namespace *v1.Namespace, opts metav1.UpdateOptions) (result *v1.Namespace, err error) {\n\tresult = &v1.Namespace{}\n\terr = c.GetClient().Put().Resource(\"namespaces\").Name(namespace.Name).VersionedParams(&opts, scheme.ParameterCodec).SubResource(\"finalize\").Body(namespace).Do(ctx).Into(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/node.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationscorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// NodesGetter has a method to return a NodeInterface.\n// A group's client should implement this interface.\ntype NodesGetter interface {\n\tNodes() NodeInterface\n}\n\n// NodeInterface has methods to work with Node resources.\ntype NodeInterface interface {\n\tCreate(ctx context.Context, node *corev1.Node, opts metav1.CreateOptions) (*corev1.Node, error)\n\tUpdate(ctx context.Context, node *corev1.Node, opts metav1.UpdateOptions) (*corev1.Node, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, node *corev1.Node, opts metav1.UpdateOptions) (*corev1.Node, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*corev1.Node, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*corev1.NodeList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *corev1.Node, err error)\n\tApply(ctx context.Context, node *applyconfigurationscorev1.NodeApplyConfiguration, opts metav1.ApplyOptions) (result *corev1.Node, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, node *applyconfigurationscorev1.NodeApplyConfiguration, opts metav1.ApplyOptions) (result *corev1.Node, err error)\n\tNodeExpansion\n}\n\n// nodes implements NodeInterface\ntype nodes struct {\n\t*gentype.ClientWithListAndApply[*corev1.Node, *corev1.NodeList, *applyconfigurationscorev1.NodeApplyConfiguration]\n}\n\n// newNodes returns a Nodes\nfunc newNodes(c *CoreV1Client) *nodes {\n\treturn &nodes{\n\t\tgentype.NewClientWithListAndApply[*corev1.Node, *corev1.NodeList, *applyconfigurationscorev1.NodeApplyConfiguration](\n\t\t\t\"nodes\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *corev1.Node { return &corev1.Node{} },\n\t\t\tfunc() *corev1.NodeList { return &corev1.NodeList{} },\n\t\t\tgentype.PrefersProtobuf[*corev1.Node](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/node_expansion.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"context\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\t\"k8s.io/apimachinery/pkg/types\"\n)\n\n// The NodeExpansion interface allows manually adding extra methods to the NodeInterface.\ntype NodeExpansion interface {\n\t// PatchStatus modifies the status of an existing node. It returns the copy\n\t// of the node that the server returns, or an error.\n\tPatchStatus(ctx context.Context, nodeName string, data []byte) (*v1.Node, error)\n}\n\n// PatchStatus modifies the status of an existing node. It returns the copy of\n// the node that the server returns, or an error.\nfunc (c *nodes) PatchStatus(ctx context.Context, nodeName string, data []byte) (*v1.Node, error) {\n\tresult := &v1.Node{}\n\terr := c.GetClient().Patch(types.StrategicMergePatchType).\n\t\tResource(\"nodes\").\n\t\tName(nodeName).\n\t\tSubResource(\"status\").\n\t\tBody(data).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn result, err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/persistentvolume.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationscorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// PersistentVolumesGetter has a method to return a PersistentVolumeInterface.\n// A group's client should implement this interface.\ntype PersistentVolumesGetter interface {\n\tPersistentVolumes() PersistentVolumeInterface\n}\n\n// PersistentVolumeInterface has methods to work with PersistentVolume resources.\ntype PersistentVolumeInterface interface {\n\tCreate(ctx context.Context, persistentVolume *corev1.PersistentVolume, opts metav1.CreateOptions) (*corev1.PersistentVolume, error)\n\tUpdate(ctx context.Context, persistentVolume *corev1.PersistentVolume, opts metav1.UpdateOptions) (*corev1.PersistentVolume, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, persistentVolume *corev1.PersistentVolume, opts metav1.UpdateOptions) (*corev1.PersistentVolume, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*corev1.PersistentVolume, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*corev1.PersistentVolumeList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *corev1.PersistentVolume, err error)\n\tApply(ctx context.Context, persistentVolume *applyconfigurationscorev1.PersistentVolumeApplyConfiguration, opts metav1.ApplyOptions) (result *corev1.PersistentVolume, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, persistentVolume *applyconfigurationscorev1.PersistentVolumeApplyConfiguration, opts metav1.ApplyOptions) (result *corev1.PersistentVolume, err error)\n\tPersistentVolumeExpansion\n}\n\n// persistentVolumes implements PersistentVolumeInterface\ntype persistentVolumes struct {\n\t*gentype.ClientWithListAndApply[*corev1.PersistentVolume, *corev1.PersistentVolumeList, *applyconfigurationscorev1.PersistentVolumeApplyConfiguration]\n}\n\n// newPersistentVolumes returns a PersistentVolumes\nfunc newPersistentVolumes(c *CoreV1Client) *persistentVolumes {\n\treturn &persistentVolumes{\n\t\tgentype.NewClientWithListAndApply[*corev1.PersistentVolume, *corev1.PersistentVolumeList, *applyconfigurationscorev1.PersistentVolumeApplyConfiguration](\n\t\t\t\"persistentvolumes\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *corev1.PersistentVolume { return &corev1.PersistentVolume{} },\n\t\t\tfunc() *corev1.PersistentVolumeList { return &corev1.PersistentVolumeList{} },\n\t\t\tgentype.PrefersProtobuf[*corev1.PersistentVolume](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/persistentvolumeclaim.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationscorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// PersistentVolumeClaimsGetter has a method to return a PersistentVolumeClaimInterface.\n// A group's client should implement this interface.\ntype PersistentVolumeClaimsGetter interface {\n\tPersistentVolumeClaims(namespace string) PersistentVolumeClaimInterface\n}\n\n// PersistentVolumeClaimInterface has methods to work with PersistentVolumeClaim resources.\ntype PersistentVolumeClaimInterface interface {\n\tCreate(ctx context.Context, persistentVolumeClaim *corev1.PersistentVolumeClaim, opts metav1.CreateOptions) (*corev1.PersistentVolumeClaim, error)\n\tUpdate(ctx context.Context, persistentVolumeClaim *corev1.PersistentVolumeClaim, opts metav1.UpdateOptions) (*corev1.PersistentVolumeClaim, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, persistentVolumeClaim *corev1.PersistentVolumeClaim, opts metav1.UpdateOptions) (*corev1.PersistentVolumeClaim, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*corev1.PersistentVolumeClaim, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*corev1.PersistentVolumeClaimList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *corev1.PersistentVolumeClaim, err error)\n\tApply(ctx context.Context, persistentVolumeClaim *applyconfigurationscorev1.PersistentVolumeClaimApplyConfiguration, opts metav1.ApplyOptions) (result *corev1.PersistentVolumeClaim, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, persistentVolumeClaim *applyconfigurationscorev1.PersistentVolumeClaimApplyConfiguration, opts metav1.ApplyOptions) (result *corev1.PersistentVolumeClaim, err error)\n\tPersistentVolumeClaimExpansion\n}\n\n// persistentVolumeClaims implements PersistentVolumeClaimInterface\ntype persistentVolumeClaims struct {\n\t*gentype.ClientWithListAndApply[*corev1.PersistentVolumeClaim, *corev1.PersistentVolumeClaimList, *applyconfigurationscorev1.PersistentVolumeClaimApplyConfiguration]\n}\n\n// newPersistentVolumeClaims returns a PersistentVolumeClaims\nfunc newPersistentVolumeClaims(c *CoreV1Client, namespace string) *persistentVolumeClaims {\n\treturn &persistentVolumeClaims{\n\t\tgentype.NewClientWithListAndApply[*corev1.PersistentVolumeClaim, *corev1.PersistentVolumeClaimList, *applyconfigurationscorev1.PersistentVolumeClaimApplyConfiguration](\n\t\t\t\"persistentvolumeclaims\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *corev1.PersistentVolumeClaim { return &corev1.PersistentVolumeClaim{} },\n\t\t\tfunc() *corev1.PersistentVolumeClaimList { return &corev1.PersistentVolumeClaimList{} },\n\t\t\tgentype.PrefersProtobuf[*corev1.PersistentVolumeClaim](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/pod.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationscorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// PodsGetter has a method to return a PodInterface.\n// A group's client should implement this interface.\ntype PodsGetter interface {\n\tPods(namespace string) PodInterface\n}\n\n// PodInterface has methods to work with Pod resources.\ntype PodInterface interface {\n\tCreate(ctx context.Context, pod *corev1.Pod, opts metav1.CreateOptions) (*corev1.Pod, error)\n\tUpdate(ctx context.Context, pod *corev1.Pod, opts metav1.UpdateOptions) (*corev1.Pod, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, pod *corev1.Pod, opts metav1.UpdateOptions) (*corev1.Pod, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*corev1.Pod, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*corev1.PodList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *corev1.Pod, err error)\n\tApply(ctx context.Context, pod *applyconfigurationscorev1.PodApplyConfiguration, opts metav1.ApplyOptions) (result *corev1.Pod, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, pod *applyconfigurationscorev1.PodApplyConfiguration, opts metav1.ApplyOptions) (result *corev1.Pod, err error)\n\tUpdateEphemeralContainers(ctx context.Context, podName string, pod *corev1.Pod, opts metav1.UpdateOptions) (*corev1.Pod, error)\n\tUpdateResize(ctx context.Context, podName string, pod *corev1.Pod, opts metav1.UpdateOptions) (*corev1.Pod, error)\n\n\tPodExpansion\n}\n\n// pods implements PodInterface\ntype pods struct {\n\t*gentype.ClientWithListAndApply[*corev1.Pod, *corev1.PodList, *applyconfigurationscorev1.PodApplyConfiguration]\n}\n\n// newPods returns a Pods\nfunc newPods(c *CoreV1Client, namespace string) *pods {\n\treturn &pods{\n\t\tgentype.NewClientWithListAndApply[*corev1.Pod, *corev1.PodList, *applyconfigurationscorev1.PodApplyConfiguration](\n\t\t\t\"pods\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *corev1.Pod { return &corev1.Pod{} },\n\t\t\tfunc() *corev1.PodList { return &corev1.PodList{} },\n\t\t\tgentype.PrefersProtobuf[*corev1.Pod](),\n\t\t),\n\t}\n}\n\n// UpdateEphemeralContainers takes the top resource name and the representation of a pod and updates it. Returns the server's representation of the pod, and an error, if there is any.\nfunc (c *pods) UpdateEphemeralContainers(ctx context.Context, podName string, pod *corev1.Pod, opts metav1.UpdateOptions) (result *corev1.Pod, err error) {\n\tresult = &corev1.Pod{}\n\terr = c.GetClient().Put().\n\t\tUseProtobufAsDefault().\n\t\tNamespace(c.GetNamespace()).\n\t\tResource(\"pods\").\n\t\tName(podName).\n\t\tSubResource(\"ephemeralcontainers\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(pod).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateResize takes the top resource name and the representation of a pod and updates it. Returns the server's representation of the pod, and an error, if there is any.\nfunc (c *pods) UpdateResize(ctx context.Context, podName string, pod *corev1.Pod, opts metav1.UpdateOptions) (result *corev1.Pod, err error) {\n\tresult = &corev1.Pod{}\n\terr = c.GetClient().Put().\n\t\tUseProtobufAsDefault().\n\t\tNamespace(c.GetNamespace()).\n\t\tResource(\"pods\").\n\t\tName(podName).\n\t\tSubResource(\"resize\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(pod).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/pod_expansion.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"context\"\n\n\tv1 \"k8s.io/api/core/v1\"\n\tpolicyv1 \"k8s.io/api/policy/v1\"\n\tpolicyv1beta1 \"k8s.io/api/policy/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/util/net\"\n\t\"k8s.io/client-go/kubernetes/scheme\"\n\trestclient \"k8s.io/client-go/rest\"\n)\n\n// The PodExpansion interface allows manually adding extra methods to the PodInterface.\ntype PodExpansion interface {\n\tBind(ctx context.Context, binding *v1.Binding, opts metav1.CreateOptions) error\n\t// Evict submits a policy/v1beta1 Eviction request to the pod's eviction subresource.\n\t// Equivalent to calling EvictV1beta1.\n\t// Deprecated: Use EvictV1() (supported in 1.22+) or EvictV1beta1().\n\tEvict(ctx context.Context, eviction *policyv1beta1.Eviction) error\n\t// EvictV1 submits a policy/v1 Eviction request to the pod's eviction subresource.\n\t// Supported in 1.22+.\n\tEvictV1(ctx context.Context, eviction *policyv1.Eviction) error\n\t// EvictV1beta1 submits a policy/v1beta1 Eviction request to the pod's eviction subresource.\n\t// Supported in 1.22+.\n\tEvictV1beta1(ctx context.Context, eviction *policyv1beta1.Eviction) error\n\tGetLogs(name string, opts *v1.PodLogOptions) *restclient.Request\n\tProxyGet(scheme, name, port, path string, params map[string]string) restclient.ResponseWrapper\n}\n\n// Bind applies the provided binding to the named pod in the current namespace (binding.Namespace is ignored).\nfunc (c *pods) Bind(ctx context.Context, binding *v1.Binding, opts metav1.CreateOptions) error {\n\treturn c.GetClient().Post().Namespace(c.GetNamespace()).Resource(\"pods\").Name(binding.Name).VersionedParams(&opts, scheme.ParameterCodec).SubResource(\"binding\").Body(binding).Do(ctx).Error()\n}\n\n// Evict submits a policy/v1beta1 Eviction request to the pod's eviction subresource.\n// Equivalent to calling EvictV1beta1.\n// Deprecated: Use EvictV1() (supported in 1.22+) or EvictV1beta1().\nfunc (c *pods) Evict(ctx context.Context, eviction *policyv1beta1.Eviction) error {\n\treturn c.GetClient().Post().Namespace(c.GetNamespace()).Resource(\"pods\").Name(eviction.Name).SubResource(\"eviction\").Body(eviction).Do(ctx).Error()\n}\n\nfunc (c *pods) EvictV1beta1(ctx context.Context, eviction *policyv1beta1.Eviction) error {\n\treturn c.GetClient().Post().Namespace(c.GetNamespace()).Resource(\"pods\").Name(eviction.Name).SubResource(\"eviction\").Body(eviction).Do(ctx).Error()\n}\n\nfunc (c *pods) EvictV1(ctx context.Context, eviction *policyv1.Eviction) error {\n\treturn c.GetClient().Post().Namespace(c.GetNamespace()).Resource(\"pods\").Name(eviction.Name).SubResource(\"eviction\").Body(eviction).Do(ctx).Error()\n}\n\n// Get constructs a request for getting the logs for a pod\nfunc (c *pods) GetLogs(name string, opts *v1.PodLogOptions) *restclient.Request {\n\treturn c.GetClient().Get().Namespace(c.GetNamespace()).Name(name).Resource(\"pods\").SubResource(\"log\").VersionedParams(opts, scheme.ParameterCodec)\n}\n\n// ProxyGet returns a response of the pod by calling it through the proxy.\nfunc (c *pods) ProxyGet(scheme, name, port, path string, params map[string]string) restclient.ResponseWrapper {\n\trequest := c.GetClient().Get().\n\t\tNamespace(c.GetNamespace()).\n\t\tResource(\"pods\").\n\t\tSubResource(\"proxy\").\n\t\tName(net.JoinSchemeNamePort(scheme, name, port)).\n\t\tSuffix(path)\n\tfor k, v := range params {\n\t\trequest = request.Param(k, v)\n\t}\n\treturn request\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/podtemplate.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationscorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// PodTemplatesGetter has a method to return a PodTemplateInterface.\n// A group's client should implement this interface.\ntype PodTemplatesGetter interface {\n\tPodTemplates(namespace string) PodTemplateInterface\n}\n\n// PodTemplateInterface has methods to work with PodTemplate resources.\ntype PodTemplateInterface interface {\n\tCreate(ctx context.Context, podTemplate *corev1.PodTemplate, opts metav1.CreateOptions) (*corev1.PodTemplate, error)\n\tUpdate(ctx context.Context, podTemplate *corev1.PodTemplate, opts metav1.UpdateOptions) (*corev1.PodTemplate, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*corev1.PodTemplate, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*corev1.PodTemplateList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *corev1.PodTemplate, err error)\n\tApply(ctx context.Context, podTemplate *applyconfigurationscorev1.PodTemplateApplyConfiguration, opts metav1.ApplyOptions) (result *corev1.PodTemplate, err error)\n\tPodTemplateExpansion\n}\n\n// podTemplates implements PodTemplateInterface\ntype podTemplates struct {\n\t*gentype.ClientWithListAndApply[*corev1.PodTemplate, *corev1.PodTemplateList, *applyconfigurationscorev1.PodTemplateApplyConfiguration]\n}\n\n// newPodTemplates returns a PodTemplates\nfunc newPodTemplates(c *CoreV1Client, namespace string) *podTemplates {\n\treturn &podTemplates{\n\t\tgentype.NewClientWithListAndApply[*corev1.PodTemplate, *corev1.PodTemplateList, *applyconfigurationscorev1.PodTemplateApplyConfiguration](\n\t\t\t\"podtemplates\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *corev1.PodTemplate { return &corev1.PodTemplate{} },\n\t\t\tfunc() *corev1.PodTemplateList { return &corev1.PodTemplateList{} },\n\t\t\tgentype.PrefersProtobuf[*corev1.PodTemplate](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/replicationcontroller.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tautoscalingv1 \"k8s.io/api/autoscaling/v1\"\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationscorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// ReplicationControllersGetter has a method to return a ReplicationControllerInterface.\n// A group's client should implement this interface.\ntype ReplicationControllersGetter interface {\n\tReplicationControllers(namespace string) ReplicationControllerInterface\n}\n\n// ReplicationControllerInterface has methods to work with ReplicationController resources.\ntype ReplicationControllerInterface interface {\n\tCreate(ctx context.Context, replicationController *corev1.ReplicationController, opts metav1.CreateOptions) (*corev1.ReplicationController, error)\n\tUpdate(ctx context.Context, replicationController *corev1.ReplicationController, opts metav1.UpdateOptions) (*corev1.ReplicationController, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, replicationController *corev1.ReplicationController, opts metav1.UpdateOptions) (*corev1.ReplicationController, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*corev1.ReplicationController, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*corev1.ReplicationControllerList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *corev1.ReplicationController, err error)\n\tApply(ctx context.Context, replicationController *applyconfigurationscorev1.ReplicationControllerApplyConfiguration, opts metav1.ApplyOptions) (result *corev1.ReplicationController, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, replicationController *applyconfigurationscorev1.ReplicationControllerApplyConfiguration, opts metav1.ApplyOptions) (result *corev1.ReplicationController, err error)\n\tGetScale(ctx context.Context, replicationControllerName string, options metav1.GetOptions) (*autoscalingv1.Scale, error)\n\tUpdateScale(ctx context.Context, replicationControllerName string, scale *autoscalingv1.Scale, opts metav1.UpdateOptions) (*autoscalingv1.Scale, error)\n\n\tReplicationControllerExpansion\n}\n\n// replicationControllers implements ReplicationControllerInterface\ntype replicationControllers struct {\n\t*gentype.ClientWithListAndApply[*corev1.ReplicationController, *corev1.ReplicationControllerList, *applyconfigurationscorev1.ReplicationControllerApplyConfiguration]\n}\n\n// newReplicationControllers returns a ReplicationControllers\nfunc newReplicationControllers(c *CoreV1Client, namespace string) *replicationControllers {\n\treturn &replicationControllers{\n\t\tgentype.NewClientWithListAndApply[*corev1.ReplicationController, *corev1.ReplicationControllerList, *applyconfigurationscorev1.ReplicationControllerApplyConfiguration](\n\t\t\t\"replicationcontrollers\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *corev1.ReplicationController { return &corev1.ReplicationController{} },\n\t\t\tfunc() *corev1.ReplicationControllerList { return &corev1.ReplicationControllerList{} },\n\t\t\tgentype.PrefersProtobuf[*corev1.ReplicationController](),\n\t\t),\n\t}\n}\n\n// GetScale takes name of the replicationController, and returns the corresponding autoscalingv1.Scale object, and an error if there is any.\nfunc (c *replicationControllers) GetScale(ctx context.Context, replicationControllerName string, options metav1.GetOptions) (result *autoscalingv1.Scale, err error) {\n\tresult = &autoscalingv1.Scale{}\n\terr = c.GetClient().Get().\n\t\tUseProtobufAsDefault().\n\t\tNamespace(c.GetNamespace()).\n\t\tResource(\"replicationcontrollers\").\n\t\tName(replicationControllerName).\n\t\tSubResource(\"scale\").\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateScale takes the top resource name and the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any.\nfunc (c *replicationControllers) UpdateScale(ctx context.Context, replicationControllerName string, scale *autoscalingv1.Scale, opts metav1.UpdateOptions) (result *autoscalingv1.Scale, err error) {\n\tresult = &autoscalingv1.Scale{}\n\terr = c.GetClient().Put().\n\t\tUseProtobufAsDefault().\n\t\tNamespace(c.GetNamespace()).\n\t\tResource(\"replicationcontrollers\").\n\t\tName(replicationControllerName).\n\t\tSubResource(\"scale\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(scale).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/resourcequota.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationscorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// ResourceQuotasGetter has a method to return a ResourceQuotaInterface.\n// A group's client should implement this interface.\ntype ResourceQuotasGetter interface {\n\tResourceQuotas(namespace string) ResourceQuotaInterface\n}\n\n// ResourceQuotaInterface has methods to work with ResourceQuota resources.\ntype ResourceQuotaInterface interface {\n\tCreate(ctx context.Context, resourceQuota *corev1.ResourceQuota, opts metav1.CreateOptions) (*corev1.ResourceQuota, error)\n\tUpdate(ctx context.Context, resourceQuota *corev1.ResourceQuota, opts metav1.UpdateOptions) (*corev1.ResourceQuota, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, resourceQuota *corev1.ResourceQuota, opts metav1.UpdateOptions) (*corev1.ResourceQuota, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*corev1.ResourceQuota, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*corev1.ResourceQuotaList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *corev1.ResourceQuota, err error)\n\tApply(ctx context.Context, resourceQuota *applyconfigurationscorev1.ResourceQuotaApplyConfiguration, opts metav1.ApplyOptions) (result *corev1.ResourceQuota, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, resourceQuota *applyconfigurationscorev1.ResourceQuotaApplyConfiguration, opts metav1.ApplyOptions) (result *corev1.ResourceQuota, err error)\n\tResourceQuotaExpansion\n}\n\n// resourceQuotas implements ResourceQuotaInterface\ntype resourceQuotas struct {\n\t*gentype.ClientWithListAndApply[*corev1.ResourceQuota, *corev1.ResourceQuotaList, *applyconfigurationscorev1.ResourceQuotaApplyConfiguration]\n}\n\n// newResourceQuotas returns a ResourceQuotas\nfunc newResourceQuotas(c *CoreV1Client, namespace string) *resourceQuotas {\n\treturn &resourceQuotas{\n\t\tgentype.NewClientWithListAndApply[*corev1.ResourceQuota, *corev1.ResourceQuotaList, *applyconfigurationscorev1.ResourceQuotaApplyConfiguration](\n\t\t\t\"resourcequotas\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *corev1.ResourceQuota { return &corev1.ResourceQuota{} },\n\t\t\tfunc() *corev1.ResourceQuotaList { return &corev1.ResourceQuotaList{} },\n\t\t\tgentype.PrefersProtobuf[*corev1.ResourceQuota](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/secret.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationscorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// SecretsGetter has a method to return a SecretInterface.\n// A group's client should implement this interface.\ntype SecretsGetter interface {\n\tSecrets(namespace string) SecretInterface\n}\n\n// SecretInterface has methods to work with Secret resources.\ntype SecretInterface interface {\n\tCreate(ctx context.Context, secret *corev1.Secret, opts metav1.CreateOptions) (*corev1.Secret, error)\n\tUpdate(ctx context.Context, secret *corev1.Secret, opts metav1.UpdateOptions) (*corev1.Secret, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*corev1.Secret, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*corev1.SecretList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *corev1.Secret, err error)\n\tApply(ctx context.Context, secret *applyconfigurationscorev1.SecretApplyConfiguration, opts metav1.ApplyOptions) (result *corev1.Secret, err error)\n\tSecretExpansion\n}\n\n// secrets implements SecretInterface\ntype secrets struct {\n\t*gentype.ClientWithListAndApply[*corev1.Secret, *corev1.SecretList, *applyconfigurationscorev1.SecretApplyConfiguration]\n}\n\n// newSecrets returns a Secrets\nfunc newSecrets(c *CoreV1Client, namespace string) *secrets {\n\treturn &secrets{\n\t\tgentype.NewClientWithListAndApply[*corev1.Secret, *corev1.SecretList, *applyconfigurationscorev1.SecretApplyConfiguration](\n\t\t\t\"secrets\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *corev1.Secret { return &corev1.Secret{} },\n\t\t\tfunc() *corev1.SecretList { return &corev1.SecretList{} },\n\t\t\tgentype.PrefersProtobuf[*corev1.Secret](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/service.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationscorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// ServicesGetter has a method to return a ServiceInterface.\n// A group's client should implement this interface.\ntype ServicesGetter interface {\n\tServices(namespace string) ServiceInterface\n}\n\n// ServiceInterface has methods to work with Service resources.\ntype ServiceInterface interface {\n\tCreate(ctx context.Context, service *corev1.Service, opts metav1.CreateOptions) (*corev1.Service, error)\n\tUpdate(ctx context.Context, service *corev1.Service, opts metav1.UpdateOptions) (*corev1.Service, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, service *corev1.Service, opts metav1.UpdateOptions) (*corev1.Service, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*corev1.Service, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*corev1.ServiceList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *corev1.Service, err error)\n\tApply(ctx context.Context, service *applyconfigurationscorev1.ServiceApplyConfiguration, opts metav1.ApplyOptions) (result *corev1.Service, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, service *applyconfigurationscorev1.ServiceApplyConfiguration, opts metav1.ApplyOptions) (result *corev1.Service, err error)\n\tServiceExpansion\n}\n\n// services implements ServiceInterface\ntype services struct {\n\t*gentype.ClientWithListAndApply[*corev1.Service, *corev1.ServiceList, *applyconfigurationscorev1.ServiceApplyConfiguration]\n}\n\n// newServices returns a Services\nfunc newServices(c *CoreV1Client, namespace string) *services {\n\treturn &services{\n\t\tgentype.NewClientWithListAndApply[*corev1.Service, *corev1.ServiceList, *applyconfigurationscorev1.ServiceApplyConfiguration](\n\t\t\t\"services\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *corev1.Service { return &corev1.Service{} },\n\t\t\tfunc() *corev1.ServiceList { return &corev1.ServiceList{} },\n\t\t\tgentype.PrefersProtobuf[*corev1.Service](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/service_expansion.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"k8s.io/apimachinery/pkg/util/net\"\n\trestclient \"k8s.io/client-go/rest\"\n)\n\n// The ServiceExpansion interface allows manually adding extra methods to the ServiceInterface.\ntype ServiceExpansion interface {\n\tProxyGet(scheme, name, port, path string, params map[string]string) restclient.ResponseWrapper\n}\n\n// ProxyGet returns a response of the service by calling it through the proxy.\nfunc (c *services) ProxyGet(scheme, name, port, path string, params map[string]string) restclient.ResponseWrapper {\n\trequest := c.GetClient().Get().\n\t\tNamespace(c.GetNamespace()).\n\t\tResource(\"services\").\n\t\tSubResource(\"proxy\").\n\t\tName(net.JoinSchemeNamePort(scheme, name, port)).\n\t\tSuffix(path)\n\tfor k, v := range params {\n\t\trequest = request.Param(k, v)\n\t}\n\treturn request\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/core/v1/serviceaccount.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tauthenticationv1 \"k8s.io/api/authentication/v1\"\n\tcorev1 \"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationscorev1 \"k8s.io/client-go/applyconfigurations/core/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// ServiceAccountsGetter has a method to return a ServiceAccountInterface.\n// A group's client should implement this interface.\ntype ServiceAccountsGetter interface {\n\tServiceAccounts(namespace string) ServiceAccountInterface\n}\n\n// ServiceAccountInterface has methods to work with ServiceAccount resources.\ntype ServiceAccountInterface interface {\n\tCreate(ctx context.Context, serviceAccount *corev1.ServiceAccount, opts metav1.CreateOptions) (*corev1.ServiceAccount, error)\n\tUpdate(ctx context.Context, serviceAccount *corev1.ServiceAccount, opts metav1.UpdateOptions) (*corev1.ServiceAccount, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*corev1.ServiceAccount, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*corev1.ServiceAccountList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *corev1.ServiceAccount, err error)\n\tApply(ctx context.Context, serviceAccount *applyconfigurationscorev1.ServiceAccountApplyConfiguration, opts metav1.ApplyOptions) (result *corev1.ServiceAccount, err error)\n\tCreateToken(ctx context.Context, serviceAccountName string, tokenRequest *authenticationv1.TokenRequest, opts metav1.CreateOptions) (*authenticationv1.TokenRequest, error)\n\n\tServiceAccountExpansion\n}\n\n// serviceAccounts implements ServiceAccountInterface\ntype serviceAccounts struct {\n\t*gentype.ClientWithListAndApply[*corev1.ServiceAccount, *corev1.ServiceAccountList, *applyconfigurationscorev1.ServiceAccountApplyConfiguration]\n}\n\n// newServiceAccounts returns a ServiceAccounts\nfunc newServiceAccounts(c *CoreV1Client, namespace string) *serviceAccounts {\n\treturn &serviceAccounts{\n\t\tgentype.NewClientWithListAndApply[*corev1.ServiceAccount, *corev1.ServiceAccountList, *applyconfigurationscorev1.ServiceAccountApplyConfiguration](\n\t\t\t\"serviceaccounts\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *corev1.ServiceAccount { return &corev1.ServiceAccount{} },\n\t\t\tfunc() *corev1.ServiceAccountList { return &corev1.ServiceAccountList{} },\n\t\t\tgentype.PrefersProtobuf[*corev1.ServiceAccount](),\n\t\t),\n\t}\n}\n\n// CreateToken takes the representation of a tokenRequest and creates it.  Returns the server's representation of the tokenRequest, and an error, if there is any.\nfunc (c *serviceAccounts) CreateToken(ctx context.Context, serviceAccountName string, tokenRequest *authenticationv1.TokenRequest, opts metav1.CreateOptions) (result *authenticationv1.TokenRequest, err error) {\n\tresult = &authenticationv1.TokenRequest{}\n\terr = c.GetClient().Post().\n\t\tUseProtobufAsDefault().\n\t\tNamespace(c.GetNamespace()).\n\t\tResource(\"serviceaccounts\").\n\t\tName(serviceAccountName).\n\t\tSubResource(\"token\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(tokenRequest).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/discovery/v1/discovery_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\thttp \"net/http\"\n\n\tdiscoveryv1 \"k8s.io/api/discovery/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype DiscoveryV1Interface interface {\n\tRESTClient() rest.Interface\n\tEndpointSlicesGetter\n}\n\n// DiscoveryV1Client is used to interact with features provided by the discovery.k8s.io group.\ntype DiscoveryV1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *DiscoveryV1Client) EndpointSlices(namespace string) EndpointSliceInterface {\n\treturn newEndpointSlices(c, namespace)\n}\n\n// NewForConfig creates a new DiscoveryV1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*DiscoveryV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new DiscoveryV1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*DiscoveryV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &DiscoveryV1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new DiscoveryV1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *DiscoveryV1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new DiscoveryV1Client for the given RESTClient.\nfunc New(c rest.Interface) *DiscoveryV1Client {\n\treturn &DiscoveryV1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := discoveryv1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *DiscoveryV1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/discovery/v1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/discovery/v1/endpointslice.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tdiscoveryv1 \"k8s.io/api/discovery/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsdiscoveryv1 \"k8s.io/client-go/applyconfigurations/discovery/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// EndpointSlicesGetter has a method to return a EndpointSliceInterface.\n// A group's client should implement this interface.\ntype EndpointSlicesGetter interface {\n\tEndpointSlices(namespace string) EndpointSliceInterface\n}\n\n// EndpointSliceInterface has methods to work with EndpointSlice resources.\ntype EndpointSliceInterface interface {\n\tCreate(ctx context.Context, endpointSlice *discoveryv1.EndpointSlice, opts metav1.CreateOptions) (*discoveryv1.EndpointSlice, error)\n\tUpdate(ctx context.Context, endpointSlice *discoveryv1.EndpointSlice, opts metav1.UpdateOptions) (*discoveryv1.EndpointSlice, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*discoveryv1.EndpointSlice, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*discoveryv1.EndpointSliceList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *discoveryv1.EndpointSlice, err error)\n\tApply(ctx context.Context, endpointSlice *applyconfigurationsdiscoveryv1.EndpointSliceApplyConfiguration, opts metav1.ApplyOptions) (result *discoveryv1.EndpointSlice, err error)\n\tEndpointSliceExpansion\n}\n\n// endpointSlices implements EndpointSliceInterface\ntype endpointSlices struct {\n\t*gentype.ClientWithListAndApply[*discoveryv1.EndpointSlice, *discoveryv1.EndpointSliceList, *applyconfigurationsdiscoveryv1.EndpointSliceApplyConfiguration]\n}\n\n// newEndpointSlices returns a EndpointSlices\nfunc newEndpointSlices(c *DiscoveryV1Client, namespace string) *endpointSlices {\n\treturn &endpointSlices{\n\t\tgentype.NewClientWithListAndApply[*discoveryv1.EndpointSlice, *discoveryv1.EndpointSliceList, *applyconfigurationsdiscoveryv1.EndpointSliceApplyConfiguration](\n\t\t\t\"endpointslices\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *discoveryv1.EndpointSlice { return &discoveryv1.EndpointSlice{} },\n\t\t\tfunc() *discoveryv1.EndpointSliceList { return &discoveryv1.EndpointSliceList{} },\n\t\t\tgentype.PrefersProtobuf[*discoveryv1.EndpointSlice](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/discovery/v1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/discovery/v1/fake/fake_discovery_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/client-go/kubernetes/typed/discovery/v1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeDiscoveryV1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeDiscoveryV1) EndpointSlices(namespace string) v1.EndpointSliceInterface {\n\treturn newFakeEndpointSlices(c, namespace)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeDiscoveryV1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/discovery/v1/fake/fake_endpointslice.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/discovery/v1\"\n\tdiscoveryv1 \"k8s.io/client-go/applyconfigurations/discovery/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypeddiscoveryv1 \"k8s.io/client-go/kubernetes/typed/discovery/v1\"\n)\n\n// fakeEndpointSlices implements EndpointSliceInterface\ntype fakeEndpointSlices struct {\n\t*gentype.FakeClientWithListAndApply[*v1.EndpointSlice, *v1.EndpointSliceList, *discoveryv1.EndpointSliceApplyConfiguration]\n\tFake *FakeDiscoveryV1\n}\n\nfunc newFakeEndpointSlices(fake *FakeDiscoveryV1, namespace string) typeddiscoveryv1.EndpointSliceInterface {\n\treturn &fakeEndpointSlices{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.EndpointSlice, *v1.EndpointSliceList, *discoveryv1.EndpointSliceApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1.SchemeGroupVersion.WithResource(\"endpointslices\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"EndpointSlice\"),\n\t\t\tfunc() *v1.EndpointSlice { return &v1.EndpointSlice{} },\n\t\t\tfunc() *v1.EndpointSliceList { return &v1.EndpointSliceList{} },\n\t\t\tfunc(dst, src *v1.EndpointSliceList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.EndpointSliceList) []*v1.EndpointSlice { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1.EndpointSliceList, items []*v1.EndpointSlice) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/discovery/v1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\ntype EndpointSliceExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/discovery/v1beta1/discovery_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\thttp \"net/http\"\n\n\tdiscoveryv1beta1 \"k8s.io/api/discovery/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype DiscoveryV1beta1Interface interface {\n\tRESTClient() rest.Interface\n\tEndpointSlicesGetter\n}\n\n// DiscoveryV1beta1Client is used to interact with features provided by the discovery.k8s.io group.\ntype DiscoveryV1beta1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *DiscoveryV1beta1Client) EndpointSlices(namespace string) EndpointSliceInterface {\n\treturn newEndpointSlices(c, namespace)\n}\n\n// NewForConfig creates a new DiscoveryV1beta1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*DiscoveryV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new DiscoveryV1beta1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*DiscoveryV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &DiscoveryV1beta1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new DiscoveryV1beta1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *DiscoveryV1beta1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new DiscoveryV1beta1Client for the given RESTClient.\nfunc New(c rest.Interface) *DiscoveryV1beta1Client {\n\treturn &DiscoveryV1beta1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := discoveryv1beta1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *DiscoveryV1beta1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/discovery/v1beta1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1beta1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/discovery/v1beta1/endpointslice.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\tdiscoveryv1beta1 \"k8s.io/api/discovery/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsdiscoveryv1beta1 \"k8s.io/client-go/applyconfigurations/discovery/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// EndpointSlicesGetter has a method to return a EndpointSliceInterface.\n// A group's client should implement this interface.\ntype EndpointSlicesGetter interface {\n\tEndpointSlices(namespace string) EndpointSliceInterface\n}\n\n// EndpointSliceInterface has methods to work with EndpointSlice resources.\ntype EndpointSliceInterface interface {\n\tCreate(ctx context.Context, endpointSlice *discoveryv1beta1.EndpointSlice, opts v1.CreateOptions) (*discoveryv1beta1.EndpointSlice, error)\n\tUpdate(ctx context.Context, endpointSlice *discoveryv1beta1.EndpointSlice, opts v1.UpdateOptions) (*discoveryv1beta1.EndpointSlice, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*discoveryv1beta1.EndpointSlice, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*discoveryv1beta1.EndpointSliceList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *discoveryv1beta1.EndpointSlice, err error)\n\tApply(ctx context.Context, endpointSlice *applyconfigurationsdiscoveryv1beta1.EndpointSliceApplyConfiguration, opts v1.ApplyOptions) (result *discoveryv1beta1.EndpointSlice, err error)\n\tEndpointSliceExpansion\n}\n\n// endpointSlices implements EndpointSliceInterface\ntype endpointSlices struct {\n\t*gentype.ClientWithListAndApply[*discoveryv1beta1.EndpointSlice, *discoveryv1beta1.EndpointSliceList, *applyconfigurationsdiscoveryv1beta1.EndpointSliceApplyConfiguration]\n}\n\n// newEndpointSlices returns a EndpointSlices\nfunc newEndpointSlices(c *DiscoveryV1beta1Client, namespace string) *endpointSlices {\n\treturn &endpointSlices{\n\t\tgentype.NewClientWithListAndApply[*discoveryv1beta1.EndpointSlice, *discoveryv1beta1.EndpointSliceList, *applyconfigurationsdiscoveryv1beta1.EndpointSliceApplyConfiguration](\n\t\t\t\"endpointslices\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *discoveryv1beta1.EndpointSlice { return &discoveryv1beta1.EndpointSlice{} },\n\t\t\tfunc() *discoveryv1beta1.EndpointSliceList { return &discoveryv1beta1.EndpointSliceList{} },\n\t\t\tgentype.PrefersProtobuf[*discoveryv1beta1.EndpointSlice](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/discovery/v1beta1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/discovery/v1beta1/fake/fake_discovery_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/client-go/kubernetes/typed/discovery/v1beta1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeDiscoveryV1beta1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeDiscoveryV1beta1) EndpointSlices(namespace string) v1beta1.EndpointSliceInterface {\n\treturn newFakeEndpointSlices(c, namespace)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeDiscoveryV1beta1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/discovery/v1beta1/fake/fake_endpointslice.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/discovery/v1beta1\"\n\tdiscoveryv1beta1 \"k8s.io/client-go/applyconfigurations/discovery/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypeddiscoveryv1beta1 \"k8s.io/client-go/kubernetes/typed/discovery/v1beta1\"\n)\n\n// fakeEndpointSlices implements EndpointSliceInterface\ntype fakeEndpointSlices struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta1.EndpointSlice, *v1beta1.EndpointSliceList, *discoveryv1beta1.EndpointSliceApplyConfiguration]\n\tFake *FakeDiscoveryV1beta1\n}\n\nfunc newFakeEndpointSlices(fake *FakeDiscoveryV1beta1, namespace string) typeddiscoveryv1beta1.EndpointSliceInterface {\n\treturn &fakeEndpointSlices{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta1.EndpointSlice, *v1beta1.EndpointSliceList, *discoveryv1beta1.EndpointSliceApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"endpointslices\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"EndpointSlice\"),\n\t\t\tfunc() *v1beta1.EndpointSlice { return &v1beta1.EndpointSlice{} },\n\t\t\tfunc() *v1beta1.EndpointSliceList { return &v1beta1.EndpointSliceList{} },\n\t\t\tfunc(dst, src *v1beta1.EndpointSliceList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta1.EndpointSliceList) []*v1beta1.EndpointSlice {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1beta1.EndpointSliceList, items []*v1beta1.EndpointSlice) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/discovery/v1beta1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\ntype EndpointSliceExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/events/v1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/events/v1/event.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\teventsv1 \"k8s.io/api/events/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationseventsv1 \"k8s.io/client-go/applyconfigurations/events/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// EventsGetter has a method to return a EventInterface.\n// A group's client should implement this interface.\ntype EventsGetter interface {\n\tEvents(namespace string) EventInterface\n}\n\n// EventInterface has methods to work with Event resources.\ntype EventInterface interface {\n\tCreate(ctx context.Context, event *eventsv1.Event, opts metav1.CreateOptions) (*eventsv1.Event, error)\n\tUpdate(ctx context.Context, event *eventsv1.Event, opts metav1.UpdateOptions) (*eventsv1.Event, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*eventsv1.Event, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*eventsv1.EventList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *eventsv1.Event, err error)\n\tApply(ctx context.Context, event *applyconfigurationseventsv1.EventApplyConfiguration, opts metav1.ApplyOptions) (result *eventsv1.Event, err error)\n\tEventExpansion\n}\n\n// events implements EventInterface\ntype events struct {\n\t*gentype.ClientWithListAndApply[*eventsv1.Event, *eventsv1.EventList, *applyconfigurationseventsv1.EventApplyConfiguration]\n}\n\n// newEvents returns a Events\nfunc newEvents(c *EventsV1Client, namespace string) *events {\n\treturn &events{\n\t\tgentype.NewClientWithListAndApply[*eventsv1.Event, *eventsv1.EventList, *applyconfigurationseventsv1.EventApplyConfiguration](\n\t\t\t\"events\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *eventsv1.Event { return &eventsv1.Event{} },\n\t\t\tfunc() *eventsv1.EventList { return &eventsv1.EventList{} },\n\t\t\tgentype.PrefersProtobuf[*eventsv1.Event](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/events/v1/events_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\thttp \"net/http\"\n\n\teventsv1 \"k8s.io/api/events/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype EventsV1Interface interface {\n\tRESTClient() rest.Interface\n\tEventsGetter\n}\n\n// EventsV1Client is used to interact with features provided by the events.k8s.io group.\ntype EventsV1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *EventsV1Client) Events(namespace string) EventInterface {\n\treturn newEvents(c, namespace)\n}\n\n// NewForConfig creates a new EventsV1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*EventsV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new EventsV1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*EventsV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &EventsV1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new EventsV1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *EventsV1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new EventsV1Client for the given RESTClient.\nfunc New(c rest.Interface) *EventsV1Client {\n\treturn &EventsV1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := eventsv1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *EventsV1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/events/v1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/events/v1/fake/fake_event.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/events/v1\"\n\teventsv1 \"k8s.io/client-go/applyconfigurations/events/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedeventsv1 \"k8s.io/client-go/kubernetes/typed/events/v1\"\n)\n\n// fakeEvents implements EventInterface\ntype fakeEvents struct {\n\t*gentype.FakeClientWithListAndApply[*v1.Event, *v1.EventList, *eventsv1.EventApplyConfiguration]\n\tFake *FakeEventsV1\n}\n\nfunc newFakeEvents(fake *FakeEventsV1, namespace string) typedeventsv1.EventInterface {\n\treturn &fakeEvents{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.Event, *v1.EventList, *eventsv1.EventApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1.SchemeGroupVersion.WithResource(\"events\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"Event\"),\n\t\t\tfunc() *v1.Event { return &v1.Event{} },\n\t\t\tfunc() *v1.EventList { return &v1.EventList{} },\n\t\t\tfunc(dst, src *v1.EventList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.EventList) []*v1.Event { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1.EventList, items []*v1.Event) { list.Items = gentype.FromPointerSlice(items) },\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/events/v1/fake/fake_events_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/client-go/kubernetes/typed/events/v1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeEventsV1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeEventsV1) Events(namespace string) v1.EventInterface {\n\treturn newFakeEvents(c, namespace)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeEventsV1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/events/v1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\ntype EventExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1beta1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/event.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\teventsv1beta1 \"k8s.io/api/events/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationseventsv1beta1 \"k8s.io/client-go/applyconfigurations/events/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// EventsGetter has a method to return a EventInterface.\n// A group's client should implement this interface.\ntype EventsGetter interface {\n\tEvents(namespace string) EventInterface\n}\n\n// EventInterface has methods to work with Event resources.\ntype EventInterface interface {\n\tCreate(ctx context.Context, event *eventsv1beta1.Event, opts v1.CreateOptions) (*eventsv1beta1.Event, error)\n\tUpdate(ctx context.Context, event *eventsv1beta1.Event, opts v1.UpdateOptions) (*eventsv1beta1.Event, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*eventsv1beta1.Event, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*eventsv1beta1.EventList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *eventsv1beta1.Event, err error)\n\tApply(ctx context.Context, event *applyconfigurationseventsv1beta1.EventApplyConfiguration, opts v1.ApplyOptions) (result *eventsv1beta1.Event, err error)\n\tEventExpansion\n}\n\n// events implements EventInterface\ntype events struct {\n\t*gentype.ClientWithListAndApply[*eventsv1beta1.Event, *eventsv1beta1.EventList, *applyconfigurationseventsv1beta1.EventApplyConfiguration]\n}\n\n// newEvents returns a Events\nfunc newEvents(c *EventsV1beta1Client, namespace string) *events {\n\treturn &events{\n\t\tgentype.NewClientWithListAndApply[*eventsv1beta1.Event, *eventsv1beta1.EventList, *applyconfigurationseventsv1beta1.EventApplyConfiguration](\n\t\t\t\"events\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *eventsv1beta1.Event { return &eventsv1beta1.Event{} },\n\t\t\tfunc() *eventsv1beta1.EventList { return &eventsv1beta1.EventList{} },\n\t\t\tgentype.PrefersProtobuf[*eventsv1beta1.Event](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/event_expansion.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"k8s.io/api/events/v1beta1\"\n\t\"k8s.io/apimachinery/pkg/types\"\n)\n\n// The EventExpansion interface allows manually adding extra methods to the EventInterface.\n// TODO: Add querying functions to the event expansion\ntype EventExpansion interface {\n\t// CreateWithEventNamespace is the same as a Create\n\t// except that it sends the request to the event.Namespace.\n\tCreateWithEventNamespace(event *v1beta1.Event) (*v1beta1.Event, error)\n\t// UpdateWithEventNamespace is the same as a Update\n\t// except that it sends the request to the event.Namespace.\n\tUpdateWithEventNamespace(event *v1beta1.Event) (*v1beta1.Event, error)\n\t// PatchWithEventNamespace is the same as a Patch\n\t// except that it sends the request to the event.Namespace.\n\tPatchWithEventNamespace(event *v1beta1.Event, data []byte) (*v1beta1.Event, error)\n}\n\n// CreateWithEventNamespace makes a new event.\n// Returns the copy of the event the server returns, or an error.\n// The namespace to create the event within is deduced from the event.\n// it must either match this event client's namespace, or this event client must\n// have been created with the \"\" namespace.\nfunc (e *events) CreateWithEventNamespace(event *v1beta1.Event) (*v1beta1.Event, error) {\n\tif e.GetNamespace() != \"\" && event.Namespace != e.GetNamespace() {\n\t\treturn nil, fmt.Errorf(\"can't create an event with namespace '%v' in namespace '%v'\", event.Namespace, e.GetNamespace())\n\t}\n\tresult := &v1beta1.Event{}\n\terr := e.GetClient().Post().\n\t\tNamespaceIfScoped(event.Namespace, len(event.Namespace) > 0).\n\t\tResource(\"events\").\n\t\tBody(event).\n\t\tDo(context.TODO()).\n\t\tInto(result)\n\treturn result, err\n}\n\n// UpdateWithEventNamespace modifies an existing event.\n// It returns the copy of the event that the server returns, or an error.\n// The namespace and key to update the event within is deduced from the event.\n// The namespace must either match this event client's namespace, or this event client must have been\n// created with the \"\" namespace.\n// Update also requires the ResourceVersion to be set in the event object.\nfunc (e *events) UpdateWithEventNamespace(event *v1beta1.Event) (*v1beta1.Event, error) {\n\tif e.GetNamespace() != \"\" && event.Namespace != e.GetNamespace() {\n\t\treturn nil, fmt.Errorf(\"can't update an event with namespace '%v' in namespace '%v'\", event.Namespace, e.GetNamespace())\n\t}\n\tresult := &v1beta1.Event{}\n\terr := e.GetClient().Put().\n\t\tNamespaceIfScoped(event.Namespace, len(event.Namespace) > 0).\n\t\tResource(\"events\").\n\t\tName(event.Name).\n\t\tBody(event).\n\t\tDo(context.TODO()).\n\t\tInto(result)\n\treturn result, err\n}\n\n// PatchWithEventNamespace modifies an existing event.\n// It returns the copy of the event that the server returns, or an error.\n// The namespace and name of the target event is deduced from the event.\n// The namespace must either match this event client's namespace, or this event client must\n// have been created with the \"\" namespace.\nfunc (e *events) PatchWithEventNamespace(event *v1beta1.Event, data []byte) (*v1beta1.Event, error) {\n\tif e.GetNamespace() != \"\" && event.Namespace != e.GetNamespace() {\n\t\treturn nil, fmt.Errorf(\"can't patch an event with namespace '%v' in namespace '%v'\", event.Namespace, e.GetNamespace())\n\t}\n\tresult := &v1beta1.Event{}\n\terr := e.GetClient().Patch(types.StrategicMergePatchType).\n\t\tNamespaceIfScoped(event.Namespace, len(event.Namespace) > 0).\n\t\tResource(\"events\").\n\t\tName(event.Name).\n\t\tBody(data).\n\t\tDo(context.TODO()).\n\t\tInto(result)\n\treturn result, err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/events_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\thttp \"net/http\"\n\n\teventsv1beta1 \"k8s.io/api/events/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype EventsV1beta1Interface interface {\n\tRESTClient() rest.Interface\n\tEventsGetter\n}\n\n// EventsV1beta1Client is used to interact with features provided by the events.k8s.io group.\ntype EventsV1beta1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *EventsV1beta1Client) Events(namespace string) EventInterface {\n\treturn newEvents(c, namespace)\n}\n\n// NewForConfig creates a new EventsV1beta1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*EventsV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new EventsV1beta1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*EventsV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &EventsV1beta1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new EventsV1beta1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *EventsV1beta1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new EventsV1beta1Client for the given RESTClient.\nfunc New(c rest.Interface) *EventsV1beta1Client {\n\treturn &EventsV1beta1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := eventsv1beta1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *EventsV1beta1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/fake/fake_event.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/events/v1beta1\"\n\teventsv1beta1 \"k8s.io/client-go/applyconfigurations/events/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedeventsv1beta1 \"k8s.io/client-go/kubernetes/typed/events/v1beta1\"\n)\n\n// fakeEvents implements EventInterface\ntype fakeEvents struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta1.Event, *v1beta1.EventList, *eventsv1beta1.EventApplyConfiguration]\n\tFake *FakeEventsV1beta1\n}\n\nfunc newFakeEvents(fake *FakeEventsV1beta1, namespace string) typedeventsv1beta1.EventInterface {\n\treturn &fakeEvents{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta1.Event, *v1beta1.EventList, *eventsv1beta1.EventApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"events\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"Event\"),\n\t\t\tfunc() *v1beta1.Event { return &v1beta1.Event{} },\n\t\t\tfunc() *v1beta1.EventList { return &v1beta1.EventList{} },\n\t\t\tfunc(dst, src *v1beta1.EventList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta1.EventList) []*v1beta1.Event { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1beta1.EventList, items []*v1beta1.Event) { list.Items = gentype.FromPointerSlice(items) },\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/fake/fake_event_expansion.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/events/v1beta1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\tcore \"k8s.io/client-go/testing\"\n)\n\n// CreateWithEventNamespace creats a new event. Returns the copy of the event the server returns, or an error.\nfunc (c *fakeEvents) CreateWithEventNamespace(event *v1beta1.Event) (*v1beta1.Event, error) {\n\taction := core.NewRootCreateAction(c.Resource(), event)\n\tif c.Namespace() != \"\" {\n\t\taction = core.NewCreateAction(c.Resource(), c.Namespace(), event)\n\t}\n\tobj, err := c.Fake.Invokes(action, event)\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\treturn obj.(*v1beta1.Event), err\n}\n\n// UpdateWithEventNamespace replaces an existing event. Returns the copy of the event the server returns, or an error.\nfunc (c *fakeEvents) UpdateWithEventNamespace(event *v1beta1.Event) (*v1beta1.Event, error) {\n\taction := core.NewRootUpdateAction(c.Resource(), event)\n\tif c.Namespace() != \"\" {\n\t\taction = core.NewUpdateAction(c.Resource(), c.Namespace(), event)\n\t}\n\tobj, err := c.Fake.Invokes(action, event)\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\treturn obj.(*v1beta1.Event), err\n}\n\n// PatchWithEventNamespace patches an existing event. Returns the copy of the event the server returns, or an error.\nfunc (c *fakeEvents) PatchWithEventNamespace(event *v1beta1.Event, data []byte) (*v1beta1.Event, error) {\n\tpt := types.StrategicMergePatchType\n\taction := core.NewRootPatchAction(c.Resource(), event.Name, pt, data)\n\tif c.Namespace() != \"\" {\n\t\taction = core.NewPatchAction(c.Resource(), c.Namespace(), event.Name, pt, data)\n\t}\n\tobj, err := c.Fake.Invokes(action, event)\n\tif obj == nil {\n\t\treturn nil, err\n\t}\n\n\treturn obj.(*v1beta1.Event), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/fake/fake_events_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/client-go/kubernetes/typed/events/v1beta1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeEventsV1beta1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeEventsV1beta1) Events(namespace string) v1beta1.EventInterface {\n\treturn newFakeEvents(c, namespace)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeEventsV1beta1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/events/v1beta1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/daemonset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\textensionsv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsextensionsv1beta1 \"k8s.io/client-go/applyconfigurations/extensions/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// DaemonSetsGetter has a method to return a DaemonSetInterface.\n// A group's client should implement this interface.\ntype DaemonSetsGetter interface {\n\tDaemonSets(namespace string) DaemonSetInterface\n}\n\n// DaemonSetInterface has methods to work with DaemonSet resources.\ntype DaemonSetInterface interface {\n\tCreate(ctx context.Context, daemonSet *extensionsv1beta1.DaemonSet, opts v1.CreateOptions) (*extensionsv1beta1.DaemonSet, error)\n\tUpdate(ctx context.Context, daemonSet *extensionsv1beta1.DaemonSet, opts v1.UpdateOptions) (*extensionsv1beta1.DaemonSet, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, daemonSet *extensionsv1beta1.DaemonSet, opts v1.UpdateOptions) (*extensionsv1beta1.DaemonSet, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*extensionsv1beta1.DaemonSet, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*extensionsv1beta1.DaemonSetList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *extensionsv1beta1.DaemonSet, err error)\n\tApply(ctx context.Context, daemonSet *applyconfigurationsextensionsv1beta1.DaemonSetApplyConfiguration, opts v1.ApplyOptions) (result *extensionsv1beta1.DaemonSet, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, daemonSet *applyconfigurationsextensionsv1beta1.DaemonSetApplyConfiguration, opts v1.ApplyOptions) (result *extensionsv1beta1.DaemonSet, err error)\n\tDaemonSetExpansion\n}\n\n// daemonSets implements DaemonSetInterface\ntype daemonSets struct {\n\t*gentype.ClientWithListAndApply[*extensionsv1beta1.DaemonSet, *extensionsv1beta1.DaemonSetList, *applyconfigurationsextensionsv1beta1.DaemonSetApplyConfiguration]\n}\n\n// newDaemonSets returns a DaemonSets\nfunc newDaemonSets(c *ExtensionsV1beta1Client, namespace string) *daemonSets {\n\treturn &daemonSets{\n\t\tgentype.NewClientWithListAndApply[*extensionsv1beta1.DaemonSet, *extensionsv1beta1.DaemonSetList, *applyconfigurationsextensionsv1beta1.DaemonSetApplyConfiguration](\n\t\t\t\"daemonsets\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *extensionsv1beta1.DaemonSet { return &extensionsv1beta1.DaemonSet{} },\n\t\t\tfunc() *extensionsv1beta1.DaemonSetList { return &extensionsv1beta1.DaemonSetList{} },\n\t\t\tgentype.PrefersProtobuf[*extensionsv1beta1.DaemonSet](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/deployment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\tfmt \"fmt\"\n\n\textensionsv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsextensionsv1beta1 \"k8s.io/client-go/applyconfigurations/extensions/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\tapply \"k8s.io/client-go/util/apply\"\n)\n\n// DeploymentsGetter has a method to return a DeploymentInterface.\n// A group's client should implement this interface.\ntype DeploymentsGetter interface {\n\tDeployments(namespace string) DeploymentInterface\n}\n\n// DeploymentInterface has methods to work with Deployment resources.\ntype DeploymentInterface interface {\n\tCreate(ctx context.Context, deployment *extensionsv1beta1.Deployment, opts v1.CreateOptions) (*extensionsv1beta1.Deployment, error)\n\tUpdate(ctx context.Context, deployment *extensionsv1beta1.Deployment, opts v1.UpdateOptions) (*extensionsv1beta1.Deployment, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, deployment *extensionsv1beta1.Deployment, opts v1.UpdateOptions) (*extensionsv1beta1.Deployment, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*extensionsv1beta1.Deployment, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*extensionsv1beta1.DeploymentList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *extensionsv1beta1.Deployment, err error)\n\tApply(ctx context.Context, deployment *applyconfigurationsextensionsv1beta1.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *extensionsv1beta1.Deployment, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, deployment *applyconfigurationsextensionsv1beta1.DeploymentApplyConfiguration, opts v1.ApplyOptions) (result *extensionsv1beta1.Deployment, err error)\n\tGetScale(ctx context.Context, deploymentName string, options v1.GetOptions) (*extensionsv1beta1.Scale, error)\n\tUpdateScale(ctx context.Context, deploymentName string, scale *extensionsv1beta1.Scale, opts v1.UpdateOptions) (*extensionsv1beta1.Scale, error)\n\tApplyScale(ctx context.Context, deploymentName string, scale *applyconfigurationsextensionsv1beta1.ScaleApplyConfiguration, opts v1.ApplyOptions) (*extensionsv1beta1.Scale, error)\n\n\tDeploymentExpansion\n}\n\n// deployments implements DeploymentInterface\ntype deployments struct {\n\t*gentype.ClientWithListAndApply[*extensionsv1beta1.Deployment, *extensionsv1beta1.DeploymentList, *applyconfigurationsextensionsv1beta1.DeploymentApplyConfiguration]\n}\n\n// newDeployments returns a Deployments\nfunc newDeployments(c *ExtensionsV1beta1Client, namespace string) *deployments {\n\treturn &deployments{\n\t\tgentype.NewClientWithListAndApply[*extensionsv1beta1.Deployment, *extensionsv1beta1.DeploymentList, *applyconfigurationsextensionsv1beta1.DeploymentApplyConfiguration](\n\t\t\t\"deployments\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *extensionsv1beta1.Deployment { return &extensionsv1beta1.Deployment{} },\n\t\t\tfunc() *extensionsv1beta1.DeploymentList { return &extensionsv1beta1.DeploymentList{} },\n\t\t\tgentype.PrefersProtobuf[*extensionsv1beta1.Deployment](),\n\t\t),\n\t}\n}\n\n// GetScale takes name of the deployment, and returns the corresponding extensionsv1beta1.Scale object, and an error if there is any.\nfunc (c *deployments) GetScale(ctx context.Context, deploymentName string, options v1.GetOptions) (result *extensionsv1beta1.Scale, err error) {\n\tresult = &extensionsv1beta1.Scale{}\n\terr = c.GetClient().Get().\n\t\tUseProtobufAsDefault().\n\t\tNamespace(c.GetNamespace()).\n\t\tResource(\"deployments\").\n\t\tName(deploymentName).\n\t\tSubResource(\"scale\").\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateScale takes the top resource name and the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any.\nfunc (c *deployments) UpdateScale(ctx context.Context, deploymentName string, scale *extensionsv1beta1.Scale, opts v1.UpdateOptions) (result *extensionsv1beta1.Scale, err error) {\n\tresult = &extensionsv1beta1.Scale{}\n\terr = c.GetClient().Put().\n\t\tUseProtobufAsDefault().\n\t\tNamespace(c.GetNamespace()).\n\t\tResource(\"deployments\").\n\t\tName(deploymentName).\n\t\tSubResource(\"scale\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(scale).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyScale takes top resource name and the apply declarative configuration for scale,\n// applies it and returns the applied scale, and an error, if there is any.\nfunc (c *deployments) ApplyScale(ctx context.Context, deploymentName string, scale *applyconfigurationsextensionsv1beta1.ScaleApplyConfiguration, opts v1.ApplyOptions) (result *extensionsv1beta1.Scale, err error) {\n\tif scale == nil {\n\t\treturn nil, fmt.Errorf(\"scale provided to ApplyScale must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\trequest, err := apply.NewRequest(c.GetClient(), scale)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresult = &extensionsv1beta1.Scale{}\n\terr = request.\n\t\tUseProtobufAsDefault().\n\t\tNamespace(c.GetNamespace()).\n\t\tResource(\"deployments\").\n\t\tName(deploymentName).\n\t\tSubResource(\"scale\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/deployment_expansion.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\n\t\"k8s.io/api/extensions/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// The DeploymentExpansion interface allows manually adding extra methods to the DeploymentInterface.\ntype DeploymentExpansion interface {\n\tRollback(context.Context, *v1beta1.DeploymentRollback, metav1.CreateOptions) error\n}\n\n// Rollback applied the provided DeploymentRollback to the named deployment in the current namespace.\nfunc (c *deployments) Rollback(ctx context.Context, deploymentRollback *v1beta1.DeploymentRollback, opts metav1.CreateOptions) error {\n\treturn c.GetClient().Post().Namespace(c.GetNamespace()).Resource(\"deployments\").Name(deploymentRollback.Name).VersionedParams(&opts, scheme.ParameterCodec).SubResource(\"rollback\").Body(deploymentRollback).Do(ctx).Error()\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1beta1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/extensions_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\thttp \"net/http\"\n\n\textensionsv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype ExtensionsV1beta1Interface interface {\n\tRESTClient() rest.Interface\n\tDaemonSetsGetter\n\tDeploymentsGetter\n\tIngressesGetter\n\tNetworkPoliciesGetter\n\tReplicaSetsGetter\n}\n\n// ExtensionsV1beta1Client is used to interact with features provided by the extensions group.\ntype ExtensionsV1beta1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *ExtensionsV1beta1Client) DaemonSets(namespace string) DaemonSetInterface {\n\treturn newDaemonSets(c, namespace)\n}\n\nfunc (c *ExtensionsV1beta1Client) Deployments(namespace string) DeploymentInterface {\n\treturn newDeployments(c, namespace)\n}\n\nfunc (c *ExtensionsV1beta1Client) Ingresses(namespace string) IngressInterface {\n\treturn newIngresses(c, namespace)\n}\n\nfunc (c *ExtensionsV1beta1Client) NetworkPolicies(namespace string) NetworkPolicyInterface {\n\treturn newNetworkPolicies(c, namespace)\n}\n\nfunc (c *ExtensionsV1beta1Client) ReplicaSets(namespace string) ReplicaSetInterface {\n\treturn newReplicaSets(c, namespace)\n}\n\n// NewForConfig creates a new ExtensionsV1beta1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*ExtensionsV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new ExtensionsV1beta1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*ExtensionsV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &ExtensionsV1beta1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new ExtensionsV1beta1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *ExtensionsV1beta1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new ExtensionsV1beta1Client for the given RESTClient.\nfunc New(c rest.Interface) *ExtensionsV1beta1Client {\n\treturn &ExtensionsV1beta1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := extensionsv1beta1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *ExtensionsV1beta1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_daemonset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\textensionsv1beta1 \"k8s.io/client-go/applyconfigurations/extensions/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedextensionsv1beta1 \"k8s.io/client-go/kubernetes/typed/extensions/v1beta1\"\n)\n\n// fakeDaemonSets implements DaemonSetInterface\ntype fakeDaemonSets struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta1.DaemonSet, *v1beta1.DaemonSetList, *extensionsv1beta1.DaemonSetApplyConfiguration]\n\tFake *FakeExtensionsV1beta1\n}\n\nfunc newFakeDaemonSets(fake *FakeExtensionsV1beta1, namespace string) typedextensionsv1beta1.DaemonSetInterface {\n\treturn &fakeDaemonSets{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta1.DaemonSet, *v1beta1.DaemonSetList, *extensionsv1beta1.DaemonSetApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"daemonsets\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"DaemonSet\"),\n\t\t\tfunc() *v1beta1.DaemonSet { return &v1beta1.DaemonSet{} },\n\t\t\tfunc() *v1beta1.DaemonSetList { return &v1beta1.DaemonSetList{} },\n\t\t\tfunc(dst, src *v1beta1.DaemonSetList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta1.DaemonSetList) []*v1beta1.DaemonSet { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1beta1.DaemonSetList, items []*v1beta1.DaemonSet) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_deployment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tcontext \"context\"\n\tjson \"encoding/json\"\n\tfmt \"fmt\"\n\n\tv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\textensionsv1beta1 \"k8s.io/client-go/applyconfigurations/extensions/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedextensionsv1beta1 \"k8s.io/client-go/kubernetes/typed/extensions/v1beta1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// fakeDeployments implements DeploymentInterface\ntype fakeDeployments struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta1.Deployment, *v1beta1.DeploymentList, *extensionsv1beta1.DeploymentApplyConfiguration]\n\tFake *FakeExtensionsV1beta1\n}\n\nfunc newFakeDeployments(fake *FakeExtensionsV1beta1, namespace string) typedextensionsv1beta1.DeploymentInterface {\n\treturn &fakeDeployments{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta1.Deployment, *v1beta1.DeploymentList, *extensionsv1beta1.DeploymentApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"deployments\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"Deployment\"),\n\t\t\tfunc() *v1beta1.Deployment { return &v1beta1.Deployment{} },\n\t\t\tfunc() *v1beta1.DeploymentList { return &v1beta1.DeploymentList{} },\n\t\t\tfunc(dst, src *v1beta1.DeploymentList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta1.DeploymentList) []*v1beta1.Deployment { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1beta1.DeploymentList, items []*v1beta1.Deployment) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n\n// GetScale takes name of the deployment, and returns the corresponding scale object, and an error if there is any.\nfunc (c *fakeDeployments) GetScale(ctx context.Context, deploymentName string, options v1.GetOptions) (result *v1beta1.Scale, err error) {\n\temptyResult := &v1beta1.Scale{}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetSubresourceActionWithOptions(c.Resource(), c.Namespace(), \"scale\", deploymentName, options), emptyResult)\n\n\tif obj == nil {\n\t\treturn emptyResult, err\n\t}\n\treturn obj.(*v1beta1.Scale), err\n}\n\n// UpdateScale takes the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any.\nfunc (c *fakeDeployments) UpdateScale(ctx context.Context, deploymentName string, scale *v1beta1.Scale, opts v1.UpdateOptions) (result *v1beta1.Scale, err error) {\n\temptyResult := &v1beta1.Scale{}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceActionWithOptions(c.Resource(), \"scale\", c.Namespace(), scale, opts), &v1beta1.Scale{})\n\n\tif obj == nil {\n\t\treturn emptyResult, err\n\t}\n\treturn obj.(*v1beta1.Scale), err\n}\n\n// ApplyScale takes top resource name and the apply declarative configuration for scale,\n// applies it and returns the applied scale, and an error, if there is any.\nfunc (c *fakeDeployments) ApplyScale(ctx context.Context, deploymentName string, scale *extensionsv1beta1.ScaleApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Scale, err error) {\n\tif scale == nil {\n\t\treturn nil, fmt.Errorf(\"scale provided to ApplyScale must not be nil\")\n\t}\n\tdata, err := json.Marshal(scale)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\temptyResult := &v1beta1.Scale{}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceActionWithOptions(c.Resource(), c.Namespace(), deploymentName, types.ApplyPatchType, data, opts.ToPatchOptions(), \"scale\"), emptyResult)\n\n\tif obj == nil {\n\t\treturn emptyResult, err\n\t}\n\treturn obj.(*v1beta1.Scale), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_deployment_expansion.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fake\n\nimport (\n\t\"context\"\n\n\t\"k8s.io/api/extensions/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tcore \"k8s.io/client-go/testing\"\n)\n\nfunc (c *fakeDeployments) Rollback(ctx context.Context, deploymentRollback *v1beta1.DeploymentRollback, opts metav1.CreateOptions) error {\n\taction := core.CreateActionImpl{}\n\taction.Verb = \"create\"\n\taction.Resource = c.Resource()\n\taction.Subresource = \"rollback\"\n\taction.Object = deploymentRollback\n\n\t_, err := c.Fake.Invokes(action, deploymentRollback)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_extensions_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/client-go/kubernetes/typed/extensions/v1beta1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeExtensionsV1beta1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeExtensionsV1beta1) DaemonSets(namespace string) v1beta1.DaemonSetInterface {\n\treturn newFakeDaemonSets(c, namespace)\n}\n\nfunc (c *FakeExtensionsV1beta1) Deployments(namespace string) v1beta1.DeploymentInterface {\n\treturn newFakeDeployments(c, namespace)\n}\n\nfunc (c *FakeExtensionsV1beta1) Ingresses(namespace string) v1beta1.IngressInterface {\n\treturn newFakeIngresses(c, namespace)\n}\n\nfunc (c *FakeExtensionsV1beta1) NetworkPolicies(namespace string) v1beta1.NetworkPolicyInterface {\n\treturn newFakeNetworkPolicies(c, namespace)\n}\n\nfunc (c *FakeExtensionsV1beta1) ReplicaSets(namespace string) v1beta1.ReplicaSetInterface {\n\treturn newFakeReplicaSets(c, namespace)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeExtensionsV1beta1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_ingress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\textensionsv1beta1 \"k8s.io/client-go/applyconfigurations/extensions/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedextensionsv1beta1 \"k8s.io/client-go/kubernetes/typed/extensions/v1beta1\"\n)\n\n// fakeIngresses implements IngressInterface\ntype fakeIngresses struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta1.Ingress, *v1beta1.IngressList, *extensionsv1beta1.IngressApplyConfiguration]\n\tFake *FakeExtensionsV1beta1\n}\n\nfunc newFakeIngresses(fake *FakeExtensionsV1beta1, namespace string) typedextensionsv1beta1.IngressInterface {\n\treturn &fakeIngresses{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta1.Ingress, *v1beta1.IngressList, *extensionsv1beta1.IngressApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"ingresses\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"Ingress\"),\n\t\t\tfunc() *v1beta1.Ingress { return &v1beta1.Ingress{} },\n\t\t\tfunc() *v1beta1.IngressList { return &v1beta1.IngressList{} },\n\t\t\tfunc(dst, src *v1beta1.IngressList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta1.IngressList) []*v1beta1.Ingress { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1beta1.IngressList, items []*v1beta1.Ingress) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_networkpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\textensionsv1beta1 \"k8s.io/client-go/applyconfigurations/extensions/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedextensionsv1beta1 \"k8s.io/client-go/kubernetes/typed/extensions/v1beta1\"\n)\n\n// fakeNetworkPolicies implements NetworkPolicyInterface\ntype fakeNetworkPolicies struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta1.NetworkPolicy, *v1beta1.NetworkPolicyList, *extensionsv1beta1.NetworkPolicyApplyConfiguration]\n\tFake *FakeExtensionsV1beta1\n}\n\nfunc newFakeNetworkPolicies(fake *FakeExtensionsV1beta1, namespace string) typedextensionsv1beta1.NetworkPolicyInterface {\n\treturn &fakeNetworkPolicies{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta1.NetworkPolicy, *v1beta1.NetworkPolicyList, *extensionsv1beta1.NetworkPolicyApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"networkpolicies\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"NetworkPolicy\"),\n\t\t\tfunc() *v1beta1.NetworkPolicy { return &v1beta1.NetworkPolicy{} },\n\t\t\tfunc() *v1beta1.NetworkPolicyList { return &v1beta1.NetworkPolicyList{} },\n\t\t\tfunc(dst, src *v1beta1.NetworkPolicyList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta1.NetworkPolicyList) []*v1beta1.NetworkPolicy {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1beta1.NetworkPolicyList, items []*v1beta1.NetworkPolicy) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/fake_replicaset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tcontext \"context\"\n\tjson \"encoding/json\"\n\tfmt \"fmt\"\n\n\tv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\textensionsv1beta1 \"k8s.io/client-go/applyconfigurations/extensions/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedextensionsv1beta1 \"k8s.io/client-go/kubernetes/typed/extensions/v1beta1\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\n// fakeReplicaSets implements ReplicaSetInterface\ntype fakeReplicaSets struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta1.ReplicaSet, *v1beta1.ReplicaSetList, *extensionsv1beta1.ReplicaSetApplyConfiguration]\n\tFake *FakeExtensionsV1beta1\n}\n\nfunc newFakeReplicaSets(fake *FakeExtensionsV1beta1, namespace string) typedextensionsv1beta1.ReplicaSetInterface {\n\treturn &fakeReplicaSets{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta1.ReplicaSet, *v1beta1.ReplicaSetList, *extensionsv1beta1.ReplicaSetApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"replicasets\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"ReplicaSet\"),\n\t\t\tfunc() *v1beta1.ReplicaSet { return &v1beta1.ReplicaSet{} },\n\t\t\tfunc() *v1beta1.ReplicaSetList { return &v1beta1.ReplicaSetList{} },\n\t\t\tfunc(dst, src *v1beta1.ReplicaSetList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta1.ReplicaSetList) []*v1beta1.ReplicaSet { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1beta1.ReplicaSetList, items []*v1beta1.ReplicaSet) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n\n// GetScale takes name of the replicaSet, and returns the corresponding scale object, and an error if there is any.\nfunc (c *fakeReplicaSets) GetScale(ctx context.Context, replicaSetName string, options v1.GetOptions) (result *v1beta1.Scale, err error) {\n\temptyResult := &v1beta1.Scale{}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewGetSubresourceActionWithOptions(c.Resource(), c.Namespace(), \"scale\", replicaSetName, options), emptyResult)\n\n\tif obj == nil {\n\t\treturn emptyResult, err\n\t}\n\treturn obj.(*v1beta1.Scale), err\n}\n\n// UpdateScale takes the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any.\nfunc (c *fakeReplicaSets) UpdateScale(ctx context.Context, replicaSetName string, scale *v1beta1.Scale, opts v1.UpdateOptions) (result *v1beta1.Scale, err error) {\n\temptyResult := &v1beta1.Scale{}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewUpdateSubresourceActionWithOptions(c.Resource(), \"scale\", c.Namespace(), scale, opts), &v1beta1.Scale{})\n\n\tif obj == nil {\n\t\treturn emptyResult, err\n\t}\n\treturn obj.(*v1beta1.Scale), err\n}\n\n// ApplyScale takes top resource name and the apply declarative configuration for scale,\n// applies it and returns the applied scale, and an error, if there is any.\nfunc (c *fakeReplicaSets) ApplyScale(ctx context.Context, replicaSetName string, scale *extensionsv1beta1.ScaleApplyConfiguration, opts v1.ApplyOptions) (result *v1beta1.Scale, err error) {\n\tif scale == nil {\n\t\treturn nil, fmt.Errorf(\"scale provided to ApplyScale must not be nil\")\n\t}\n\tdata, err := json.Marshal(scale)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\temptyResult := &v1beta1.Scale{}\n\tobj, err := c.Fake.\n\t\tInvokes(testing.NewPatchSubresourceActionWithOptions(c.Resource(), c.Namespace(), replicaSetName, types.ApplyPatchType, data, opts.ToPatchOptions(), \"scale\"), emptyResult)\n\n\tif obj == nil {\n\t\treturn emptyResult, err\n\t}\n\treturn obj.(*v1beta1.Scale), err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\ntype DaemonSetExpansion interface{}\n\ntype IngressExpansion interface{}\n\ntype NetworkPolicyExpansion interface{}\n\ntype ReplicaSetExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/ingress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\textensionsv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsextensionsv1beta1 \"k8s.io/client-go/applyconfigurations/extensions/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// IngressesGetter has a method to return a IngressInterface.\n// A group's client should implement this interface.\ntype IngressesGetter interface {\n\tIngresses(namespace string) IngressInterface\n}\n\n// IngressInterface has methods to work with Ingress resources.\ntype IngressInterface interface {\n\tCreate(ctx context.Context, ingress *extensionsv1beta1.Ingress, opts v1.CreateOptions) (*extensionsv1beta1.Ingress, error)\n\tUpdate(ctx context.Context, ingress *extensionsv1beta1.Ingress, opts v1.UpdateOptions) (*extensionsv1beta1.Ingress, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, ingress *extensionsv1beta1.Ingress, opts v1.UpdateOptions) (*extensionsv1beta1.Ingress, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*extensionsv1beta1.Ingress, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*extensionsv1beta1.IngressList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *extensionsv1beta1.Ingress, err error)\n\tApply(ctx context.Context, ingress *applyconfigurationsextensionsv1beta1.IngressApplyConfiguration, opts v1.ApplyOptions) (result *extensionsv1beta1.Ingress, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, ingress *applyconfigurationsextensionsv1beta1.IngressApplyConfiguration, opts v1.ApplyOptions) (result *extensionsv1beta1.Ingress, err error)\n\tIngressExpansion\n}\n\n// ingresses implements IngressInterface\ntype ingresses struct {\n\t*gentype.ClientWithListAndApply[*extensionsv1beta1.Ingress, *extensionsv1beta1.IngressList, *applyconfigurationsextensionsv1beta1.IngressApplyConfiguration]\n}\n\n// newIngresses returns a Ingresses\nfunc newIngresses(c *ExtensionsV1beta1Client, namespace string) *ingresses {\n\treturn &ingresses{\n\t\tgentype.NewClientWithListAndApply[*extensionsv1beta1.Ingress, *extensionsv1beta1.IngressList, *applyconfigurationsextensionsv1beta1.IngressApplyConfiguration](\n\t\t\t\"ingresses\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *extensionsv1beta1.Ingress { return &extensionsv1beta1.Ingress{} },\n\t\t\tfunc() *extensionsv1beta1.IngressList { return &extensionsv1beta1.IngressList{} },\n\t\t\tgentype.PrefersProtobuf[*extensionsv1beta1.Ingress](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/networkpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\textensionsv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsextensionsv1beta1 \"k8s.io/client-go/applyconfigurations/extensions/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// NetworkPoliciesGetter has a method to return a NetworkPolicyInterface.\n// A group's client should implement this interface.\ntype NetworkPoliciesGetter interface {\n\tNetworkPolicies(namespace string) NetworkPolicyInterface\n}\n\n// NetworkPolicyInterface has methods to work with NetworkPolicy resources.\ntype NetworkPolicyInterface interface {\n\tCreate(ctx context.Context, networkPolicy *extensionsv1beta1.NetworkPolicy, opts v1.CreateOptions) (*extensionsv1beta1.NetworkPolicy, error)\n\tUpdate(ctx context.Context, networkPolicy *extensionsv1beta1.NetworkPolicy, opts v1.UpdateOptions) (*extensionsv1beta1.NetworkPolicy, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*extensionsv1beta1.NetworkPolicy, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*extensionsv1beta1.NetworkPolicyList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *extensionsv1beta1.NetworkPolicy, err error)\n\tApply(ctx context.Context, networkPolicy *applyconfigurationsextensionsv1beta1.NetworkPolicyApplyConfiguration, opts v1.ApplyOptions) (result *extensionsv1beta1.NetworkPolicy, err error)\n\tNetworkPolicyExpansion\n}\n\n// networkPolicies implements NetworkPolicyInterface\ntype networkPolicies struct {\n\t*gentype.ClientWithListAndApply[*extensionsv1beta1.NetworkPolicy, *extensionsv1beta1.NetworkPolicyList, *applyconfigurationsextensionsv1beta1.NetworkPolicyApplyConfiguration]\n}\n\n// newNetworkPolicies returns a NetworkPolicies\nfunc newNetworkPolicies(c *ExtensionsV1beta1Client, namespace string) *networkPolicies {\n\treturn &networkPolicies{\n\t\tgentype.NewClientWithListAndApply[*extensionsv1beta1.NetworkPolicy, *extensionsv1beta1.NetworkPolicyList, *applyconfigurationsextensionsv1beta1.NetworkPolicyApplyConfiguration](\n\t\t\t\"networkpolicies\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *extensionsv1beta1.NetworkPolicy { return &extensionsv1beta1.NetworkPolicy{} },\n\t\t\tfunc() *extensionsv1beta1.NetworkPolicyList { return &extensionsv1beta1.NetworkPolicyList{} },\n\t\t\tgentype.PrefersProtobuf[*extensionsv1beta1.NetworkPolicy](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/replicaset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\tfmt \"fmt\"\n\n\textensionsv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsextensionsv1beta1 \"k8s.io/client-go/applyconfigurations/extensions/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\tapply \"k8s.io/client-go/util/apply\"\n)\n\n// ReplicaSetsGetter has a method to return a ReplicaSetInterface.\n// A group's client should implement this interface.\ntype ReplicaSetsGetter interface {\n\tReplicaSets(namespace string) ReplicaSetInterface\n}\n\n// ReplicaSetInterface has methods to work with ReplicaSet resources.\ntype ReplicaSetInterface interface {\n\tCreate(ctx context.Context, replicaSet *extensionsv1beta1.ReplicaSet, opts v1.CreateOptions) (*extensionsv1beta1.ReplicaSet, error)\n\tUpdate(ctx context.Context, replicaSet *extensionsv1beta1.ReplicaSet, opts v1.UpdateOptions) (*extensionsv1beta1.ReplicaSet, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, replicaSet *extensionsv1beta1.ReplicaSet, opts v1.UpdateOptions) (*extensionsv1beta1.ReplicaSet, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*extensionsv1beta1.ReplicaSet, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*extensionsv1beta1.ReplicaSetList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *extensionsv1beta1.ReplicaSet, err error)\n\tApply(ctx context.Context, replicaSet *applyconfigurationsextensionsv1beta1.ReplicaSetApplyConfiguration, opts v1.ApplyOptions) (result *extensionsv1beta1.ReplicaSet, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, replicaSet *applyconfigurationsextensionsv1beta1.ReplicaSetApplyConfiguration, opts v1.ApplyOptions) (result *extensionsv1beta1.ReplicaSet, err error)\n\tGetScale(ctx context.Context, replicaSetName string, options v1.GetOptions) (*extensionsv1beta1.Scale, error)\n\tUpdateScale(ctx context.Context, replicaSetName string, scale *extensionsv1beta1.Scale, opts v1.UpdateOptions) (*extensionsv1beta1.Scale, error)\n\tApplyScale(ctx context.Context, replicaSetName string, scale *applyconfigurationsextensionsv1beta1.ScaleApplyConfiguration, opts v1.ApplyOptions) (*extensionsv1beta1.Scale, error)\n\n\tReplicaSetExpansion\n}\n\n// replicaSets implements ReplicaSetInterface\ntype replicaSets struct {\n\t*gentype.ClientWithListAndApply[*extensionsv1beta1.ReplicaSet, *extensionsv1beta1.ReplicaSetList, *applyconfigurationsextensionsv1beta1.ReplicaSetApplyConfiguration]\n}\n\n// newReplicaSets returns a ReplicaSets\nfunc newReplicaSets(c *ExtensionsV1beta1Client, namespace string) *replicaSets {\n\treturn &replicaSets{\n\t\tgentype.NewClientWithListAndApply[*extensionsv1beta1.ReplicaSet, *extensionsv1beta1.ReplicaSetList, *applyconfigurationsextensionsv1beta1.ReplicaSetApplyConfiguration](\n\t\t\t\"replicasets\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *extensionsv1beta1.ReplicaSet { return &extensionsv1beta1.ReplicaSet{} },\n\t\t\tfunc() *extensionsv1beta1.ReplicaSetList { return &extensionsv1beta1.ReplicaSetList{} },\n\t\t\tgentype.PrefersProtobuf[*extensionsv1beta1.ReplicaSet](),\n\t\t),\n\t}\n}\n\n// GetScale takes name of the replicaSet, and returns the corresponding extensionsv1beta1.Scale object, and an error if there is any.\nfunc (c *replicaSets) GetScale(ctx context.Context, replicaSetName string, options v1.GetOptions) (result *extensionsv1beta1.Scale, err error) {\n\tresult = &extensionsv1beta1.Scale{}\n\terr = c.GetClient().Get().\n\t\tUseProtobufAsDefault().\n\t\tNamespace(c.GetNamespace()).\n\t\tResource(\"replicasets\").\n\t\tName(replicaSetName).\n\t\tSubResource(\"scale\").\n\t\tVersionedParams(&options, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// UpdateScale takes the top resource name and the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any.\nfunc (c *replicaSets) UpdateScale(ctx context.Context, replicaSetName string, scale *extensionsv1beta1.Scale, opts v1.UpdateOptions) (result *extensionsv1beta1.Scale, err error) {\n\tresult = &extensionsv1beta1.Scale{}\n\terr = c.GetClient().Put().\n\t\tUseProtobufAsDefault().\n\t\tNamespace(c.GetNamespace()).\n\t\tResource(\"replicasets\").\n\t\tName(replicaSetName).\n\t\tSubResource(\"scale\").\n\t\tVersionedParams(&opts, scheme.ParameterCodec).\n\t\tBody(scale).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n\n// ApplyScale takes top resource name and the apply declarative configuration for scale,\n// applies it and returns the applied scale, and an error, if there is any.\nfunc (c *replicaSets) ApplyScale(ctx context.Context, replicaSetName string, scale *applyconfigurationsextensionsv1beta1.ScaleApplyConfiguration, opts v1.ApplyOptions) (result *extensionsv1beta1.Scale, err error) {\n\tif scale == nil {\n\t\treturn nil, fmt.Errorf(\"scale provided to ApplyScale must not be nil\")\n\t}\n\tpatchOpts := opts.ToPatchOptions()\n\trequest, err := apply.NewRequest(c.GetClient(), scale)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tresult = &extensionsv1beta1.Scale{}\n\terr = request.\n\t\tUseProtobufAsDefault().\n\t\tNamespace(c.GetNamespace()).\n\t\tResource(\"replicasets\").\n\t\tName(replicaSetName).\n\t\tSubResource(\"scale\").\n\t\tVersionedParams(&patchOpts, scheme.ParameterCodec).\n\t\tDo(ctx).\n\t\tInto(result)\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1/fake/fake_flowcontrol_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/client-go/kubernetes/typed/flowcontrol/v1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeFlowcontrolV1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeFlowcontrolV1) FlowSchemas() v1.FlowSchemaInterface {\n\treturn newFakeFlowSchemas(c)\n}\n\nfunc (c *FakeFlowcontrolV1) PriorityLevelConfigurations() v1.PriorityLevelConfigurationInterface {\n\treturn newFakePriorityLevelConfigurations(c)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeFlowcontrolV1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1/fake/fake_flowschema.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/flowcontrol/v1\"\n\tflowcontrolv1 \"k8s.io/client-go/applyconfigurations/flowcontrol/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedflowcontrolv1 \"k8s.io/client-go/kubernetes/typed/flowcontrol/v1\"\n)\n\n// fakeFlowSchemas implements FlowSchemaInterface\ntype fakeFlowSchemas struct {\n\t*gentype.FakeClientWithListAndApply[*v1.FlowSchema, *v1.FlowSchemaList, *flowcontrolv1.FlowSchemaApplyConfiguration]\n\tFake *FakeFlowcontrolV1\n}\n\nfunc newFakeFlowSchemas(fake *FakeFlowcontrolV1) typedflowcontrolv1.FlowSchemaInterface {\n\treturn &fakeFlowSchemas{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.FlowSchema, *v1.FlowSchemaList, *flowcontrolv1.FlowSchemaApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1.SchemeGroupVersion.WithResource(\"flowschemas\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"FlowSchema\"),\n\t\t\tfunc() *v1.FlowSchema { return &v1.FlowSchema{} },\n\t\t\tfunc() *v1.FlowSchemaList { return &v1.FlowSchemaList{} },\n\t\t\tfunc(dst, src *v1.FlowSchemaList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.FlowSchemaList) []*v1.FlowSchema { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1.FlowSchemaList, items []*v1.FlowSchema) { list.Items = gentype.FromPointerSlice(items) },\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1/fake/fake_prioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/flowcontrol/v1\"\n\tflowcontrolv1 \"k8s.io/client-go/applyconfigurations/flowcontrol/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedflowcontrolv1 \"k8s.io/client-go/kubernetes/typed/flowcontrol/v1\"\n)\n\n// fakePriorityLevelConfigurations implements PriorityLevelConfigurationInterface\ntype fakePriorityLevelConfigurations struct {\n\t*gentype.FakeClientWithListAndApply[*v1.PriorityLevelConfiguration, *v1.PriorityLevelConfigurationList, *flowcontrolv1.PriorityLevelConfigurationApplyConfiguration]\n\tFake *FakeFlowcontrolV1\n}\n\nfunc newFakePriorityLevelConfigurations(fake *FakeFlowcontrolV1) typedflowcontrolv1.PriorityLevelConfigurationInterface {\n\treturn &fakePriorityLevelConfigurations{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.PriorityLevelConfiguration, *v1.PriorityLevelConfigurationList, *flowcontrolv1.PriorityLevelConfigurationApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1.SchemeGroupVersion.WithResource(\"prioritylevelconfigurations\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"PriorityLevelConfiguration\"),\n\t\t\tfunc() *v1.PriorityLevelConfiguration { return &v1.PriorityLevelConfiguration{} },\n\t\t\tfunc() *v1.PriorityLevelConfigurationList { return &v1.PriorityLevelConfigurationList{} },\n\t\t\tfunc(dst, src *v1.PriorityLevelConfigurationList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.PriorityLevelConfigurationList) []*v1.PriorityLevelConfiguration {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1.PriorityLevelConfigurationList, items []*v1.PriorityLevelConfiguration) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1/flowcontrol_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\thttp \"net/http\"\n\n\tflowcontrolv1 \"k8s.io/api/flowcontrol/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype FlowcontrolV1Interface interface {\n\tRESTClient() rest.Interface\n\tFlowSchemasGetter\n\tPriorityLevelConfigurationsGetter\n}\n\n// FlowcontrolV1Client is used to interact with features provided by the flowcontrol.apiserver.k8s.io group.\ntype FlowcontrolV1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *FlowcontrolV1Client) FlowSchemas() FlowSchemaInterface {\n\treturn newFlowSchemas(c)\n}\n\nfunc (c *FlowcontrolV1Client) PriorityLevelConfigurations() PriorityLevelConfigurationInterface {\n\treturn newPriorityLevelConfigurations(c)\n}\n\n// NewForConfig creates a new FlowcontrolV1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*FlowcontrolV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new FlowcontrolV1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*FlowcontrolV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &FlowcontrolV1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new FlowcontrolV1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *FlowcontrolV1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new FlowcontrolV1Client for the given RESTClient.\nfunc New(c rest.Interface) *FlowcontrolV1Client {\n\treturn &FlowcontrolV1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := flowcontrolv1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FlowcontrolV1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1/flowschema.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tflowcontrolv1 \"k8s.io/api/flowcontrol/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsflowcontrolv1 \"k8s.io/client-go/applyconfigurations/flowcontrol/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// FlowSchemasGetter has a method to return a FlowSchemaInterface.\n// A group's client should implement this interface.\ntype FlowSchemasGetter interface {\n\tFlowSchemas() FlowSchemaInterface\n}\n\n// FlowSchemaInterface has methods to work with FlowSchema resources.\ntype FlowSchemaInterface interface {\n\tCreate(ctx context.Context, flowSchema *flowcontrolv1.FlowSchema, opts metav1.CreateOptions) (*flowcontrolv1.FlowSchema, error)\n\tUpdate(ctx context.Context, flowSchema *flowcontrolv1.FlowSchema, opts metav1.UpdateOptions) (*flowcontrolv1.FlowSchema, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, flowSchema *flowcontrolv1.FlowSchema, opts metav1.UpdateOptions) (*flowcontrolv1.FlowSchema, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*flowcontrolv1.FlowSchema, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*flowcontrolv1.FlowSchemaList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *flowcontrolv1.FlowSchema, err error)\n\tApply(ctx context.Context, flowSchema *applyconfigurationsflowcontrolv1.FlowSchemaApplyConfiguration, opts metav1.ApplyOptions) (result *flowcontrolv1.FlowSchema, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, flowSchema *applyconfigurationsflowcontrolv1.FlowSchemaApplyConfiguration, opts metav1.ApplyOptions) (result *flowcontrolv1.FlowSchema, err error)\n\tFlowSchemaExpansion\n}\n\n// flowSchemas implements FlowSchemaInterface\ntype flowSchemas struct {\n\t*gentype.ClientWithListAndApply[*flowcontrolv1.FlowSchema, *flowcontrolv1.FlowSchemaList, *applyconfigurationsflowcontrolv1.FlowSchemaApplyConfiguration]\n}\n\n// newFlowSchemas returns a FlowSchemas\nfunc newFlowSchemas(c *FlowcontrolV1Client) *flowSchemas {\n\treturn &flowSchemas{\n\t\tgentype.NewClientWithListAndApply[*flowcontrolv1.FlowSchema, *flowcontrolv1.FlowSchemaList, *applyconfigurationsflowcontrolv1.FlowSchemaApplyConfiguration](\n\t\t\t\"flowschemas\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *flowcontrolv1.FlowSchema { return &flowcontrolv1.FlowSchema{} },\n\t\t\tfunc() *flowcontrolv1.FlowSchemaList { return &flowcontrolv1.FlowSchemaList{} },\n\t\t\tgentype.PrefersProtobuf[*flowcontrolv1.FlowSchema](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\ntype FlowSchemaExpansion interface{}\n\ntype PriorityLevelConfigurationExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1/prioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tflowcontrolv1 \"k8s.io/api/flowcontrol/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsflowcontrolv1 \"k8s.io/client-go/applyconfigurations/flowcontrol/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// PriorityLevelConfigurationsGetter has a method to return a PriorityLevelConfigurationInterface.\n// A group's client should implement this interface.\ntype PriorityLevelConfigurationsGetter interface {\n\tPriorityLevelConfigurations() PriorityLevelConfigurationInterface\n}\n\n// PriorityLevelConfigurationInterface has methods to work with PriorityLevelConfiguration resources.\ntype PriorityLevelConfigurationInterface interface {\n\tCreate(ctx context.Context, priorityLevelConfiguration *flowcontrolv1.PriorityLevelConfiguration, opts metav1.CreateOptions) (*flowcontrolv1.PriorityLevelConfiguration, error)\n\tUpdate(ctx context.Context, priorityLevelConfiguration *flowcontrolv1.PriorityLevelConfiguration, opts metav1.UpdateOptions) (*flowcontrolv1.PriorityLevelConfiguration, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, priorityLevelConfiguration *flowcontrolv1.PriorityLevelConfiguration, opts metav1.UpdateOptions) (*flowcontrolv1.PriorityLevelConfiguration, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*flowcontrolv1.PriorityLevelConfiguration, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*flowcontrolv1.PriorityLevelConfigurationList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *flowcontrolv1.PriorityLevelConfiguration, err error)\n\tApply(ctx context.Context, priorityLevelConfiguration *applyconfigurationsflowcontrolv1.PriorityLevelConfigurationApplyConfiguration, opts metav1.ApplyOptions) (result *flowcontrolv1.PriorityLevelConfiguration, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, priorityLevelConfiguration *applyconfigurationsflowcontrolv1.PriorityLevelConfigurationApplyConfiguration, opts metav1.ApplyOptions) (result *flowcontrolv1.PriorityLevelConfiguration, err error)\n\tPriorityLevelConfigurationExpansion\n}\n\n// priorityLevelConfigurations implements PriorityLevelConfigurationInterface\ntype priorityLevelConfigurations struct {\n\t*gentype.ClientWithListAndApply[*flowcontrolv1.PriorityLevelConfiguration, *flowcontrolv1.PriorityLevelConfigurationList, *applyconfigurationsflowcontrolv1.PriorityLevelConfigurationApplyConfiguration]\n}\n\n// newPriorityLevelConfigurations returns a PriorityLevelConfigurations\nfunc newPriorityLevelConfigurations(c *FlowcontrolV1Client) *priorityLevelConfigurations {\n\treturn &priorityLevelConfigurations{\n\t\tgentype.NewClientWithListAndApply[*flowcontrolv1.PriorityLevelConfiguration, *flowcontrolv1.PriorityLevelConfigurationList, *applyconfigurationsflowcontrolv1.PriorityLevelConfigurationApplyConfiguration](\n\t\t\t\"prioritylevelconfigurations\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *flowcontrolv1.PriorityLevelConfiguration { return &flowcontrolv1.PriorityLevelConfiguration{} },\n\t\t\tfunc() *flowcontrolv1.PriorityLevelConfigurationList {\n\t\t\t\treturn &flowcontrolv1.PriorityLevelConfigurationList{}\n\t\t\t},\n\t\t\tgentype.PrefersProtobuf[*flowcontrolv1.PriorityLevelConfiguration](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1beta1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1/fake/fake_flowcontrol_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeFlowcontrolV1beta1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeFlowcontrolV1beta1) FlowSchemas() v1beta1.FlowSchemaInterface {\n\treturn newFakeFlowSchemas(c)\n}\n\nfunc (c *FakeFlowcontrolV1beta1) PriorityLevelConfigurations() v1beta1.PriorityLevelConfigurationInterface {\n\treturn newFakePriorityLevelConfigurations(c)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeFlowcontrolV1beta1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1/fake/fake_flowschema.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/flowcontrol/v1beta1\"\n\tflowcontrolv1beta1 \"k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedflowcontrolv1beta1 \"k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1\"\n)\n\n// fakeFlowSchemas implements FlowSchemaInterface\ntype fakeFlowSchemas struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta1.FlowSchema, *v1beta1.FlowSchemaList, *flowcontrolv1beta1.FlowSchemaApplyConfiguration]\n\tFake *FakeFlowcontrolV1beta1\n}\n\nfunc newFakeFlowSchemas(fake *FakeFlowcontrolV1beta1) typedflowcontrolv1beta1.FlowSchemaInterface {\n\treturn &fakeFlowSchemas{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta1.FlowSchema, *v1beta1.FlowSchemaList, *flowcontrolv1beta1.FlowSchemaApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"flowschemas\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"FlowSchema\"),\n\t\t\tfunc() *v1beta1.FlowSchema { return &v1beta1.FlowSchema{} },\n\t\t\tfunc() *v1beta1.FlowSchemaList { return &v1beta1.FlowSchemaList{} },\n\t\t\tfunc(dst, src *v1beta1.FlowSchemaList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta1.FlowSchemaList) []*v1beta1.FlowSchema { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1beta1.FlowSchemaList, items []*v1beta1.FlowSchema) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1/fake/fake_prioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/flowcontrol/v1beta1\"\n\tflowcontrolv1beta1 \"k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedflowcontrolv1beta1 \"k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1\"\n)\n\n// fakePriorityLevelConfigurations implements PriorityLevelConfigurationInterface\ntype fakePriorityLevelConfigurations struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta1.PriorityLevelConfiguration, *v1beta1.PriorityLevelConfigurationList, *flowcontrolv1beta1.PriorityLevelConfigurationApplyConfiguration]\n\tFake *FakeFlowcontrolV1beta1\n}\n\nfunc newFakePriorityLevelConfigurations(fake *FakeFlowcontrolV1beta1) typedflowcontrolv1beta1.PriorityLevelConfigurationInterface {\n\treturn &fakePriorityLevelConfigurations{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta1.PriorityLevelConfiguration, *v1beta1.PriorityLevelConfigurationList, *flowcontrolv1beta1.PriorityLevelConfigurationApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"prioritylevelconfigurations\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"PriorityLevelConfiguration\"),\n\t\t\tfunc() *v1beta1.PriorityLevelConfiguration { return &v1beta1.PriorityLevelConfiguration{} },\n\t\t\tfunc() *v1beta1.PriorityLevelConfigurationList { return &v1beta1.PriorityLevelConfigurationList{} },\n\t\t\tfunc(dst, src *v1beta1.PriorityLevelConfigurationList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta1.PriorityLevelConfigurationList) []*v1beta1.PriorityLevelConfiguration {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1beta1.PriorityLevelConfigurationList, items []*v1beta1.PriorityLevelConfiguration) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1/flowcontrol_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\thttp \"net/http\"\n\n\tflowcontrolv1beta1 \"k8s.io/api/flowcontrol/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype FlowcontrolV1beta1Interface interface {\n\tRESTClient() rest.Interface\n\tFlowSchemasGetter\n\tPriorityLevelConfigurationsGetter\n}\n\n// FlowcontrolV1beta1Client is used to interact with features provided by the flowcontrol.apiserver.k8s.io group.\ntype FlowcontrolV1beta1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *FlowcontrolV1beta1Client) FlowSchemas() FlowSchemaInterface {\n\treturn newFlowSchemas(c)\n}\n\nfunc (c *FlowcontrolV1beta1Client) PriorityLevelConfigurations() PriorityLevelConfigurationInterface {\n\treturn newPriorityLevelConfigurations(c)\n}\n\n// NewForConfig creates a new FlowcontrolV1beta1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*FlowcontrolV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new FlowcontrolV1beta1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*FlowcontrolV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &FlowcontrolV1beta1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new FlowcontrolV1beta1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *FlowcontrolV1beta1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new FlowcontrolV1beta1Client for the given RESTClient.\nfunc New(c rest.Interface) *FlowcontrolV1beta1Client {\n\treturn &FlowcontrolV1beta1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := flowcontrolv1beta1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FlowcontrolV1beta1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1/flowschema.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\tflowcontrolv1beta1 \"k8s.io/api/flowcontrol/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsflowcontrolv1beta1 \"k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// FlowSchemasGetter has a method to return a FlowSchemaInterface.\n// A group's client should implement this interface.\ntype FlowSchemasGetter interface {\n\tFlowSchemas() FlowSchemaInterface\n}\n\n// FlowSchemaInterface has methods to work with FlowSchema resources.\ntype FlowSchemaInterface interface {\n\tCreate(ctx context.Context, flowSchema *flowcontrolv1beta1.FlowSchema, opts v1.CreateOptions) (*flowcontrolv1beta1.FlowSchema, error)\n\tUpdate(ctx context.Context, flowSchema *flowcontrolv1beta1.FlowSchema, opts v1.UpdateOptions) (*flowcontrolv1beta1.FlowSchema, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, flowSchema *flowcontrolv1beta1.FlowSchema, opts v1.UpdateOptions) (*flowcontrolv1beta1.FlowSchema, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*flowcontrolv1beta1.FlowSchema, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*flowcontrolv1beta1.FlowSchemaList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *flowcontrolv1beta1.FlowSchema, err error)\n\tApply(ctx context.Context, flowSchema *applyconfigurationsflowcontrolv1beta1.FlowSchemaApplyConfiguration, opts v1.ApplyOptions) (result *flowcontrolv1beta1.FlowSchema, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, flowSchema *applyconfigurationsflowcontrolv1beta1.FlowSchemaApplyConfiguration, opts v1.ApplyOptions) (result *flowcontrolv1beta1.FlowSchema, err error)\n\tFlowSchemaExpansion\n}\n\n// flowSchemas implements FlowSchemaInterface\ntype flowSchemas struct {\n\t*gentype.ClientWithListAndApply[*flowcontrolv1beta1.FlowSchema, *flowcontrolv1beta1.FlowSchemaList, *applyconfigurationsflowcontrolv1beta1.FlowSchemaApplyConfiguration]\n}\n\n// newFlowSchemas returns a FlowSchemas\nfunc newFlowSchemas(c *FlowcontrolV1beta1Client) *flowSchemas {\n\treturn &flowSchemas{\n\t\tgentype.NewClientWithListAndApply[*flowcontrolv1beta1.FlowSchema, *flowcontrolv1beta1.FlowSchemaList, *applyconfigurationsflowcontrolv1beta1.FlowSchemaApplyConfiguration](\n\t\t\t\"flowschemas\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *flowcontrolv1beta1.FlowSchema { return &flowcontrolv1beta1.FlowSchema{} },\n\t\t\tfunc() *flowcontrolv1beta1.FlowSchemaList { return &flowcontrolv1beta1.FlowSchemaList{} },\n\t\t\tgentype.PrefersProtobuf[*flowcontrolv1beta1.FlowSchema](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\ntype FlowSchemaExpansion interface{}\n\ntype PriorityLevelConfigurationExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1/prioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\tflowcontrolv1beta1 \"k8s.io/api/flowcontrol/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsflowcontrolv1beta1 \"k8s.io/client-go/applyconfigurations/flowcontrol/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// PriorityLevelConfigurationsGetter has a method to return a PriorityLevelConfigurationInterface.\n// A group's client should implement this interface.\ntype PriorityLevelConfigurationsGetter interface {\n\tPriorityLevelConfigurations() PriorityLevelConfigurationInterface\n}\n\n// PriorityLevelConfigurationInterface has methods to work with PriorityLevelConfiguration resources.\ntype PriorityLevelConfigurationInterface interface {\n\tCreate(ctx context.Context, priorityLevelConfiguration *flowcontrolv1beta1.PriorityLevelConfiguration, opts v1.CreateOptions) (*flowcontrolv1beta1.PriorityLevelConfiguration, error)\n\tUpdate(ctx context.Context, priorityLevelConfiguration *flowcontrolv1beta1.PriorityLevelConfiguration, opts v1.UpdateOptions) (*flowcontrolv1beta1.PriorityLevelConfiguration, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, priorityLevelConfiguration *flowcontrolv1beta1.PriorityLevelConfiguration, opts v1.UpdateOptions) (*flowcontrolv1beta1.PriorityLevelConfiguration, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*flowcontrolv1beta1.PriorityLevelConfiguration, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*flowcontrolv1beta1.PriorityLevelConfigurationList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *flowcontrolv1beta1.PriorityLevelConfiguration, err error)\n\tApply(ctx context.Context, priorityLevelConfiguration *applyconfigurationsflowcontrolv1beta1.PriorityLevelConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *flowcontrolv1beta1.PriorityLevelConfiguration, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, priorityLevelConfiguration *applyconfigurationsflowcontrolv1beta1.PriorityLevelConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *flowcontrolv1beta1.PriorityLevelConfiguration, err error)\n\tPriorityLevelConfigurationExpansion\n}\n\n// priorityLevelConfigurations implements PriorityLevelConfigurationInterface\ntype priorityLevelConfigurations struct {\n\t*gentype.ClientWithListAndApply[*flowcontrolv1beta1.PriorityLevelConfiguration, *flowcontrolv1beta1.PriorityLevelConfigurationList, *applyconfigurationsflowcontrolv1beta1.PriorityLevelConfigurationApplyConfiguration]\n}\n\n// newPriorityLevelConfigurations returns a PriorityLevelConfigurations\nfunc newPriorityLevelConfigurations(c *FlowcontrolV1beta1Client) *priorityLevelConfigurations {\n\treturn &priorityLevelConfigurations{\n\t\tgentype.NewClientWithListAndApply[*flowcontrolv1beta1.PriorityLevelConfiguration, *flowcontrolv1beta1.PriorityLevelConfigurationList, *applyconfigurationsflowcontrolv1beta1.PriorityLevelConfigurationApplyConfiguration](\n\t\t\t\"prioritylevelconfigurations\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *flowcontrolv1beta1.PriorityLevelConfiguration {\n\t\t\t\treturn &flowcontrolv1beta1.PriorityLevelConfiguration{}\n\t\t\t},\n\t\t\tfunc() *flowcontrolv1beta1.PriorityLevelConfigurationList {\n\t\t\t\treturn &flowcontrolv1beta1.PriorityLevelConfigurationList{}\n\t\t\t},\n\t\t\tgentype.PrefersProtobuf[*flowcontrolv1beta1.PriorityLevelConfiguration](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta2/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1beta2\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta2/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta2/fake/fake_flowcontrol_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta2 \"k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta2\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeFlowcontrolV1beta2 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeFlowcontrolV1beta2) FlowSchemas() v1beta2.FlowSchemaInterface {\n\treturn newFakeFlowSchemas(c)\n}\n\nfunc (c *FakeFlowcontrolV1beta2) PriorityLevelConfigurations() v1beta2.PriorityLevelConfigurationInterface {\n\treturn newFakePriorityLevelConfigurations(c)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeFlowcontrolV1beta2) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta2/fake/fake_flowschema.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta2 \"k8s.io/api/flowcontrol/v1beta2\"\n\tflowcontrolv1beta2 \"k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedflowcontrolv1beta2 \"k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta2\"\n)\n\n// fakeFlowSchemas implements FlowSchemaInterface\ntype fakeFlowSchemas struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta2.FlowSchema, *v1beta2.FlowSchemaList, *flowcontrolv1beta2.FlowSchemaApplyConfiguration]\n\tFake *FakeFlowcontrolV1beta2\n}\n\nfunc newFakeFlowSchemas(fake *FakeFlowcontrolV1beta2) typedflowcontrolv1beta2.FlowSchemaInterface {\n\treturn &fakeFlowSchemas{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta2.FlowSchema, *v1beta2.FlowSchemaList, *flowcontrolv1beta2.FlowSchemaApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1beta2.SchemeGroupVersion.WithResource(\"flowschemas\"),\n\t\t\tv1beta2.SchemeGroupVersion.WithKind(\"FlowSchema\"),\n\t\t\tfunc() *v1beta2.FlowSchema { return &v1beta2.FlowSchema{} },\n\t\t\tfunc() *v1beta2.FlowSchemaList { return &v1beta2.FlowSchemaList{} },\n\t\t\tfunc(dst, src *v1beta2.FlowSchemaList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta2.FlowSchemaList) []*v1beta2.FlowSchema { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1beta2.FlowSchemaList, items []*v1beta2.FlowSchema) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta2/fake/fake_prioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta2 \"k8s.io/api/flowcontrol/v1beta2\"\n\tflowcontrolv1beta2 \"k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedflowcontrolv1beta2 \"k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta2\"\n)\n\n// fakePriorityLevelConfigurations implements PriorityLevelConfigurationInterface\ntype fakePriorityLevelConfigurations struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta2.PriorityLevelConfiguration, *v1beta2.PriorityLevelConfigurationList, *flowcontrolv1beta2.PriorityLevelConfigurationApplyConfiguration]\n\tFake *FakeFlowcontrolV1beta2\n}\n\nfunc newFakePriorityLevelConfigurations(fake *FakeFlowcontrolV1beta2) typedflowcontrolv1beta2.PriorityLevelConfigurationInterface {\n\treturn &fakePriorityLevelConfigurations{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta2.PriorityLevelConfiguration, *v1beta2.PriorityLevelConfigurationList, *flowcontrolv1beta2.PriorityLevelConfigurationApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1beta2.SchemeGroupVersion.WithResource(\"prioritylevelconfigurations\"),\n\t\t\tv1beta2.SchemeGroupVersion.WithKind(\"PriorityLevelConfiguration\"),\n\t\t\tfunc() *v1beta2.PriorityLevelConfiguration { return &v1beta2.PriorityLevelConfiguration{} },\n\t\t\tfunc() *v1beta2.PriorityLevelConfigurationList { return &v1beta2.PriorityLevelConfigurationList{} },\n\t\t\tfunc(dst, src *v1beta2.PriorityLevelConfigurationList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta2.PriorityLevelConfigurationList) []*v1beta2.PriorityLevelConfiguration {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1beta2.PriorityLevelConfigurationList, items []*v1beta2.PriorityLevelConfiguration) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta2/flowcontrol_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\thttp \"net/http\"\n\n\tflowcontrolv1beta2 \"k8s.io/api/flowcontrol/v1beta2\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype FlowcontrolV1beta2Interface interface {\n\tRESTClient() rest.Interface\n\tFlowSchemasGetter\n\tPriorityLevelConfigurationsGetter\n}\n\n// FlowcontrolV1beta2Client is used to interact with features provided by the flowcontrol.apiserver.k8s.io group.\ntype FlowcontrolV1beta2Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *FlowcontrolV1beta2Client) FlowSchemas() FlowSchemaInterface {\n\treturn newFlowSchemas(c)\n}\n\nfunc (c *FlowcontrolV1beta2Client) PriorityLevelConfigurations() PriorityLevelConfigurationInterface {\n\treturn newPriorityLevelConfigurations(c)\n}\n\n// NewForConfig creates a new FlowcontrolV1beta2Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*FlowcontrolV1beta2Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new FlowcontrolV1beta2Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*FlowcontrolV1beta2Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &FlowcontrolV1beta2Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new FlowcontrolV1beta2Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *FlowcontrolV1beta2Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new FlowcontrolV1beta2Client for the given RESTClient.\nfunc New(c rest.Interface) *FlowcontrolV1beta2Client {\n\treturn &FlowcontrolV1beta2Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := flowcontrolv1beta2.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FlowcontrolV1beta2Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta2/flowschema.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tcontext \"context\"\n\n\tflowcontrolv1beta2 \"k8s.io/api/flowcontrol/v1beta2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsflowcontrolv1beta2 \"k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// FlowSchemasGetter has a method to return a FlowSchemaInterface.\n// A group's client should implement this interface.\ntype FlowSchemasGetter interface {\n\tFlowSchemas() FlowSchemaInterface\n}\n\n// FlowSchemaInterface has methods to work with FlowSchema resources.\ntype FlowSchemaInterface interface {\n\tCreate(ctx context.Context, flowSchema *flowcontrolv1beta2.FlowSchema, opts v1.CreateOptions) (*flowcontrolv1beta2.FlowSchema, error)\n\tUpdate(ctx context.Context, flowSchema *flowcontrolv1beta2.FlowSchema, opts v1.UpdateOptions) (*flowcontrolv1beta2.FlowSchema, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, flowSchema *flowcontrolv1beta2.FlowSchema, opts v1.UpdateOptions) (*flowcontrolv1beta2.FlowSchema, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*flowcontrolv1beta2.FlowSchema, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*flowcontrolv1beta2.FlowSchemaList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *flowcontrolv1beta2.FlowSchema, err error)\n\tApply(ctx context.Context, flowSchema *applyconfigurationsflowcontrolv1beta2.FlowSchemaApplyConfiguration, opts v1.ApplyOptions) (result *flowcontrolv1beta2.FlowSchema, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, flowSchema *applyconfigurationsflowcontrolv1beta2.FlowSchemaApplyConfiguration, opts v1.ApplyOptions) (result *flowcontrolv1beta2.FlowSchema, err error)\n\tFlowSchemaExpansion\n}\n\n// flowSchemas implements FlowSchemaInterface\ntype flowSchemas struct {\n\t*gentype.ClientWithListAndApply[*flowcontrolv1beta2.FlowSchema, *flowcontrolv1beta2.FlowSchemaList, *applyconfigurationsflowcontrolv1beta2.FlowSchemaApplyConfiguration]\n}\n\n// newFlowSchemas returns a FlowSchemas\nfunc newFlowSchemas(c *FlowcontrolV1beta2Client) *flowSchemas {\n\treturn &flowSchemas{\n\t\tgentype.NewClientWithListAndApply[*flowcontrolv1beta2.FlowSchema, *flowcontrolv1beta2.FlowSchemaList, *applyconfigurationsflowcontrolv1beta2.FlowSchemaApplyConfiguration](\n\t\t\t\"flowschemas\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *flowcontrolv1beta2.FlowSchema { return &flowcontrolv1beta2.FlowSchema{} },\n\t\t\tfunc() *flowcontrolv1beta2.FlowSchemaList { return &flowcontrolv1beta2.FlowSchemaList{} },\n\t\t\tgentype.PrefersProtobuf[*flowcontrolv1beta2.FlowSchema](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta2/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta2\n\ntype FlowSchemaExpansion interface{}\n\ntype PriorityLevelConfigurationExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta2/prioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tcontext \"context\"\n\n\tflowcontrolv1beta2 \"k8s.io/api/flowcontrol/v1beta2\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsflowcontrolv1beta2 \"k8s.io/client-go/applyconfigurations/flowcontrol/v1beta2\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// PriorityLevelConfigurationsGetter has a method to return a PriorityLevelConfigurationInterface.\n// A group's client should implement this interface.\ntype PriorityLevelConfigurationsGetter interface {\n\tPriorityLevelConfigurations() PriorityLevelConfigurationInterface\n}\n\n// PriorityLevelConfigurationInterface has methods to work with PriorityLevelConfiguration resources.\ntype PriorityLevelConfigurationInterface interface {\n\tCreate(ctx context.Context, priorityLevelConfiguration *flowcontrolv1beta2.PriorityLevelConfiguration, opts v1.CreateOptions) (*flowcontrolv1beta2.PriorityLevelConfiguration, error)\n\tUpdate(ctx context.Context, priorityLevelConfiguration *flowcontrolv1beta2.PriorityLevelConfiguration, opts v1.UpdateOptions) (*flowcontrolv1beta2.PriorityLevelConfiguration, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, priorityLevelConfiguration *flowcontrolv1beta2.PriorityLevelConfiguration, opts v1.UpdateOptions) (*flowcontrolv1beta2.PriorityLevelConfiguration, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*flowcontrolv1beta2.PriorityLevelConfiguration, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*flowcontrolv1beta2.PriorityLevelConfigurationList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *flowcontrolv1beta2.PriorityLevelConfiguration, err error)\n\tApply(ctx context.Context, priorityLevelConfiguration *applyconfigurationsflowcontrolv1beta2.PriorityLevelConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *flowcontrolv1beta2.PriorityLevelConfiguration, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, priorityLevelConfiguration *applyconfigurationsflowcontrolv1beta2.PriorityLevelConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *flowcontrolv1beta2.PriorityLevelConfiguration, err error)\n\tPriorityLevelConfigurationExpansion\n}\n\n// priorityLevelConfigurations implements PriorityLevelConfigurationInterface\ntype priorityLevelConfigurations struct {\n\t*gentype.ClientWithListAndApply[*flowcontrolv1beta2.PriorityLevelConfiguration, *flowcontrolv1beta2.PriorityLevelConfigurationList, *applyconfigurationsflowcontrolv1beta2.PriorityLevelConfigurationApplyConfiguration]\n}\n\n// newPriorityLevelConfigurations returns a PriorityLevelConfigurations\nfunc newPriorityLevelConfigurations(c *FlowcontrolV1beta2Client) *priorityLevelConfigurations {\n\treturn &priorityLevelConfigurations{\n\t\tgentype.NewClientWithListAndApply[*flowcontrolv1beta2.PriorityLevelConfiguration, *flowcontrolv1beta2.PriorityLevelConfigurationList, *applyconfigurationsflowcontrolv1beta2.PriorityLevelConfigurationApplyConfiguration](\n\t\t\t\"prioritylevelconfigurations\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *flowcontrolv1beta2.PriorityLevelConfiguration {\n\t\t\t\treturn &flowcontrolv1beta2.PriorityLevelConfiguration{}\n\t\t\t},\n\t\t\tfunc() *flowcontrolv1beta2.PriorityLevelConfigurationList {\n\t\t\t\treturn &flowcontrolv1beta2.PriorityLevelConfigurationList{}\n\t\t\t},\n\t\t\tgentype.PrefersProtobuf[*flowcontrolv1beta2.PriorityLevelConfiguration](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta3/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1beta3\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta3/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta3/fake/fake_flowcontrol_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta3 \"k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta3\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeFlowcontrolV1beta3 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeFlowcontrolV1beta3) FlowSchemas() v1beta3.FlowSchemaInterface {\n\treturn newFakeFlowSchemas(c)\n}\n\nfunc (c *FakeFlowcontrolV1beta3) PriorityLevelConfigurations() v1beta3.PriorityLevelConfigurationInterface {\n\treturn newFakePriorityLevelConfigurations(c)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeFlowcontrolV1beta3) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta3/fake/fake_flowschema.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta3 \"k8s.io/api/flowcontrol/v1beta3\"\n\tflowcontrolv1beta3 \"k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedflowcontrolv1beta3 \"k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta3\"\n)\n\n// fakeFlowSchemas implements FlowSchemaInterface\ntype fakeFlowSchemas struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta3.FlowSchema, *v1beta3.FlowSchemaList, *flowcontrolv1beta3.FlowSchemaApplyConfiguration]\n\tFake *FakeFlowcontrolV1beta3\n}\n\nfunc newFakeFlowSchemas(fake *FakeFlowcontrolV1beta3) typedflowcontrolv1beta3.FlowSchemaInterface {\n\treturn &fakeFlowSchemas{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta3.FlowSchema, *v1beta3.FlowSchemaList, *flowcontrolv1beta3.FlowSchemaApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1beta3.SchemeGroupVersion.WithResource(\"flowschemas\"),\n\t\t\tv1beta3.SchemeGroupVersion.WithKind(\"FlowSchema\"),\n\t\t\tfunc() *v1beta3.FlowSchema { return &v1beta3.FlowSchema{} },\n\t\t\tfunc() *v1beta3.FlowSchemaList { return &v1beta3.FlowSchemaList{} },\n\t\t\tfunc(dst, src *v1beta3.FlowSchemaList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta3.FlowSchemaList) []*v1beta3.FlowSchema { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1beta3.FlowSchemaList, items []*v1beta3.FlowSchema) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta3/fake/fake_prioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta3 \"k8s.io/api/flowcontrol/v1beta3\"\n\tflowcontrolv1beta3 \"k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedflowcontrolv1beta3 \"k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta3\"\n)\n\n// fakePriorityLevelConfigurations implements PriorityLevelConfigurationInterface\ntype fakePriorityLevelConfigurations struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta3.PriorityLevelConfiguration, *v1beta3.PriorityLevelConfigurationList, *flowcontrolv1beta3.PriorityLevelConfigurationApplyConfiguration]\n\tFake *FakeFlowcontrolV1beta3\n}\n\nfunc newFakePriorityLevelConfigurations(fake *FakeFlowcontrolV1beta3) typedflowcontrolv1beta3.PriorityLevelConfigurationInterface {\n\treturn &fakePriorityLevelConfigurations{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta3.PriorityLevelConfiguration, *v1beta3.PriorityLevelConfigurationList, *flowcontrolv1beta3.PriorityLevelConfigurationApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1beta3.SchemeGroupVersion.WithResource(\"prioritylevelconfigurations\"),\n\t\t\tv1beta3.SchemeGroupVersion.WithKind(\"PriorityLevelConfiguration\"),\n\t\t\tfunc() *v1beta3.PriorityLevelConfiguration { return &v1beta3.PriorityLevelConfiguration{} },\n\t\t\tfunc() *v1beta3.PriorityLevelConfigurationList { return &v1beta3.PriorityLevelConfigurationList{} },\n\t\t\tfunc(dst, src *v1beta3.PriorityLevelConfigurationList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta3.PriorityLevelConfigurationList) []*v1beta3.PriorityLevelConfiguration {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1beta3.PriorityLevelConfigurationList, items []*v1beta3.PriorityLevelConfiguration) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta3/flowcontrol_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta3\n\nimport (\n\thttp \"net/http\"\n\n\tflowcontrolv1beta3 \"k8s.io/api/flowcontrol/v1beta3\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype FlowcontrolV1beta3Interface interface {\n\tRESTClient() rest.Interface\n\tFlowSchemasGetter\n\tPriorityLevelConfigurationsGetter\n}\n\n// FlowcontrolV1beta3Client is used to interact with features provided by the flowcontrol.apiserver.k8s.io group.\ntype FlowcontrolV1beta3Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *FlowcontrolV1beta3Client) FlowSchemas() FlowSchemaInterface {\n\treturn newFlowSchemas(c)\n}\n\nfunc (c *FlowcontrolV1beta3Client) PriorityLevelConfigurations() PriorityLevelConfigurationInterface {\n\treturn newPriorityLevelConfigurations(c)\n}\n\n// NewForConfig creates a new FlowcontrolV1beta3Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*FlowcontrolV1beta3Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new FlowcontrolV1beta3Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*FlowcontrolV1beta3Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &FlowcontrolV1beta3Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new FlowcontrolV1beta3Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *FlowcontrolV1beta3Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new FlowcontrolV1beta3Client for the given RESTClient.\nfunc New(c rest.Interface) *FlowcontrolV1beta3Client {\n\treturn &FlowcontrolV1beta3Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := flowcontrolv1beta3.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FlowcontrolV1beta3Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta3/flowschema.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta3\n\nimport (\n\tcontext \"context\"\n\n\tflowcontrolv1beta3 \"k8s.io/api/flowcontrol/v1beta3\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsflowcontrolv1beta3 \"k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// FlowSchemasGetter has a method to return a FlowSchemaInterface.\n// A group's client should implement this interface.\ntype FlowSchemasGetter interface {\n\tFlowSchemas() FlowSchemaInterface\n}\n\n// FlowSchemaInterface has methods to work with FlowSchema resources.\ntype FlowSchemaInterface interface {\n\tCreate(ctx context.Context, flowSchema *flowcontrolv1beta3.FlowSchema, opts v1.CreateOptions) (*flowcontrolv1beta3.FlowSchema, error)\n\tUpdate(ctx context.Context, flowSchema *flowcontrolv1beta3.FlowSchema, opts v1.UpdateOptions) (*flowcontrolv1beta3.FlowSchema, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, flowSchema *flowcontrolv1beta3.FlowSchema, opts v1.UpdateOptions) (*flowcontrolv1beta3.FlowSchema, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*flowcontrolv1beta3.FlowSchema, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*flowcontrolv1beta3.FlowSchemaList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *flowcontrolv1beta3.FlowSchema, err error)\n\tApply(ctx context.Context, flowSchema *applyconfigurationsflowcontrolv1beta3.FlowSchemaApplyConfiguration, opts v1.ApplyOptions) (result *flowcontrolv1beta3.FlowSchema, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, flowSchema *applyconfigurationsflowcontrolv1beta3.FlowSchemaApplyConfiguration, opts v1.ApplyOptions) (result *flowcontrolv1beta3.FlowSchema, err error)\n\tFlowSchemaExpansion\n}\n\n// flowSchemas implements FlowSchemaInterface\ntype flowSchemas struct {\n\t*gentype.ClientWithListAndApply[*flowcontrolv1beta3.FlowSchema, *flowcontrolv1beta3.FlowSchemaList, *applyconfigurationsflowcontrolv1beta3.FlowSchemaApplyConfiguration]\n}\n\n// newFlowSchemas returns a FlowSchemas\nfunc newFlowSchemas(c *FlowcontrolV1beta3Client) *flowSchemas {\n\treturn &flowSchemas{\n\t\tgentype.NewClientWithListAndApply[*flowcontrolv1beta3.FlowSchema, *flowcontrolv1beta3.FlowSchemaList, *applyconfigurationsflowcontrolv1beta3.FlowSchemaApplyConfiguration](\n\t\t\t\"flowschemas\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *flowcontrolv1beta3.FlowSchema { return &flowcontrolv1beta3.FlowSchema{} },\n\t\t\tfunc() *flowcontrolv1beta3.FlowSchemaList { return &flowcontrolv1beta3.FlowSchemaList{} },\n\t\t\tgentype.PrefersProtobuf[*flowcontrolv1beta3.FlowSchema](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta3/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta3\n\ntype FlowSchemaExpansion interface{}\n\ntype PriorityLevelConfigurationExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/flowcontrol/v1beta3/prioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta3\n\nimport (\n\tcontext \"context\"\n\n\tflowcontrolv1beta3 \"k8s.io/api/flowcontrol/v1beta3\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsflowcontrolv1beta3 \"k8s.io/client-go/applyconfigurations/flowcontrol/v1beta3\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// PriorityLevelConfigurationsGetter has a method to return a PriorityLevelConfigurationInterface.\n// A group's client should implement this interface.\ntype PriorityLevelConfigurationsGetter interface {\n\tPriorityLevelConfigurations() PriorityLevelConfigurationInterface\n}\n\n// PriorityLevelConfigurationInterface has methods to work with PriorityLevelConfiguration resources.\ntype PriorityLevelConfigurationInterface interface {\n\tCreate(ctx context.Context, priorityLevelConfiguration *flowcontrolv1beta3.PriorityLevelConfiguration, opts v1.CreateOptions) (*flowcontrolv1beta3.PriorityLevelConfiguration, error)\n\tUpdate(ctx context.Context, priorityLevelConfiguration *flowcontrolv1beta3.PriorityLevelConfiguration, opts v1.UpdateOptions) (*flowcontrolv1beta3.PriorityLevelConfiguration, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, priorityLevelConfiguration *flowcontrolv1beta3.PriorityLevelConfiguration, opts v1.UpdateOptions) (*flowcontrolv1beta3.PriorityLevelConfiguration, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*flowcontrolv1beta3.PriorityLevelConfiguration, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*flowcontrolv1beta3.PriorityLevelConfigurationList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *flowcontrolv1beta3.PriorityLevelConfiguration, err error)\n\tApply(ctx context.Context, priorityLevelConfiguration *applyconfigurationsflowcontrolv1beta3.PriorityLevelConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *flowcontrolv1beta3.PriorityLevelConfiguration, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, priorityLevelConfiguration *applyconfigurationsflowcontrolv1beta3.PriorityLevelConfigurationApplyConfiguration, opts v1.ApplyOptions) (result *flowcontrolv1beta3.PriorityLevelConfiguration, err error)\n\tPriorityLevelConfigurationExpansion\n}\n\n// priorityLevelConfigurations implements PriorityLevelConfigurationInterface\ntype priorityLevelConfigurations struct {\n\t*gentype.ClientWithListAndApply[*flowcontrolv1beta3.PriorityLevelConfiguration, *flowcontrolv1beta3.PriorityLevelConfigurationList, *applyconfigurationsflowcontrolv1beta3.PriorityLevelConfigurationApplyConfiguration]\n}\n\n// newPriorityLevelConfigurations returns a PriorityLevelConfigurations\nfunc newPriorityLevelConfigurations(c *FlowcontrolV1beta3Client) *priorityLevelConfigurations {\n\treturn &priorityLevelConfigurations{\n\t\tgentype.NewClientWithListAndApply[*flowcontrolv1beta3.PriorityLevelConfiguration, *flowcontrolv1beta3.PriorityLevelConfigurationList, *applyconfigurationsflowcontrolv1beta3.PriorityLevelConfigurationApplyConfiguration](\n\t\t\t\"prioritylevelconfigurations\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *flowcontrolv1beta3.PriorityLevelConfiguration {\n\t\t\t\treturn &flowcontrolv1beta3.PriorityLevelConfiguration{}\n\t\t\t},\n\t\t\tfunc() *flowcontrolv1beta3.PriorityLevelConfigurationList {\n\t\t\t\treturn &flowcontrolv1beta3.PriorityLevelConfigurationList{}\n\t\t\t},\n\t\t\tgentype.PrefersProtobuf[*flowcontrolv1beta3.PriorityLevelConfiguration](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1/fake/fake_ingress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/networking/v1\"\n\tnetworkingv1 \"k8s.io/client-go/applyconfigurations/networking/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypednetworkingv1 \"k8s.io/client-go/kubernetes/typed/networking/v1\"\n)\n\n// fakeIngresses implements IngressInterface\ntype fakeIngresses struct {\n\t*gentype.FakeClientWithListAndApply[*v1.Ingress, *v1.IngressList, *networkingv1.IngressApplyConfiguration]\n\tFake *FakeNetworkingV1\n}\n\nfunc newFakeIngresses(fake *FakeNetworkingV1, namespace string) typednetworkingv1.IngressInterface {\n\treturn &fakeIngresses{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.Ingress, *v1.IngressList, *networkingv1.IngressApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1.SchemeGroupVersion.WithResource(\"ingresses\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"Ingress\"),\n\t\t\tfunc() *v1.Ingress { return &v1.Ingress{} },\n\t\t\tfunc() *v1.IngressList { return &v1.IngressList{} },\n\t\t\tfunc(dst, src *v1.IngressList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.IngressList) []*v1.Ingress { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1.IngressList, items []*v1.Ingress) { list.Items = gentype.FromPointerSlice(items) },\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1/fake/fake_ingressclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/networking/v1\"\n\tnetworkingv1 \"k8s.io/client-go/applyconfigurations/networking/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypednetworkingv1 \"k8s.io/client-go/kubernetes/typed/networking/v1\"\n)\n\n// fakeIngressClasses implements IngressClassInterface\ntype fakeIngressClasses struct {\n\t*gentype.FakeClientWithListAndApply[*v1.IngressClass, *v1.IngressClassList, *networkingv1.IngressClassApplyConfiguration]\n\tFake *FakeNetworkingV1\n}\n\nfunc newFakeIngressClasses(fake *FakeNetworkingV1) typednetworkingv1.IngressClassInterface {\n\treturn &fakeIngressClasses{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.IngressClass, *v1.IngressClassList, *networkingv1.IngressClassApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1.SchemeGroupVersion.WithResource(\"ingressclasses\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"IngressClass\"),\n\t\t\tfunc() *v1.IngressClass { return &v1.IngressClass{} },\n\t\t\tfunc() *v1.IngressClassList { return &v1.IngressClassList{} },\n\t\t\tfunc(dst, src *v1.IngressClassList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.IngressClassList) []*v1.IngressClass { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1.IngressClassList, items []*v1.IngressClass) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1/fake/fake_networking_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/client-go/kubernetes/typed/networking/v1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeNetworkingV1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeNetworkingV1) Ingresses(namespace string) v1.IngressInterface {\n\treturn newFakeIngresses(c, namespace)\n}\n\nfunc (c *FakeNetworkingV1) IngressClasses() v1.IngressClassInterface {\n\treturn newFakeIngressClasses(c)\n}\n\nfunc (c *FakeNetworkingV1) NetworkPolicies(namespace string) v1.NetworkPolicyInterface {\n\treturn newFakeNetworkPolicies(c, namespace)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeNetworkingV1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1/fake/fake_networkpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/networking/v1\"\n\tnetworkingv1 \"k8s.io/client-go/applyconfigurations/networking/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypednetworkingv1 \"k8s.io/client-go/kubernetes/typed/networking/v1\"\n)\n\n// fakeNetworkPolicies implements NetworkPolicyInterface\ntype fakeNetworkPolicies struct {\n\t*gentype.FakeClientWithListAndApply[*v1.NetworkPolicy, *v1.NetworkPolicyList, *networkingv1.NetworkPolicyApplyConfiguration]\n\tFake *FakeNetworkingV1\n}\n\nfunc newFakeNetworkPolicies(fake *FakeNetworkingV1, namespace string) typednetworkingv1.NetworkPolicyInterface {\n\treturn &fakeNetworkPolicies{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.NetworkPolicy, *v1.NetworkPolicyList, *networkingv1.NetworkPolicyApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1.SchemeGroupVersion.WithResource(\"networkpolicies\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"NetworkPolicy\"),\n\t\t\tfunc() *v1.NetworkPolicy { return &v1.NetworkPolicy{} },\n\t\t\tfunc() *v1.NetworkPolicyList { return &v1.NetworkPolicyList{} },\n\t\t\tfunc(dst, src *v1.NetworkPolicyList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.NetworkPolicyList) []*v1.NetworkPolicy { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1.NetworkPolicyList, items []*v1.NetworkPolicy) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\ntype IngressExpansion interface{}\n\ntype IngressClassExpansion interface{}\n\ntype NetworkPolicyExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1/ingress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tnetworkingv1 \"k8s.io/api/networking/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsnetworkingv1 \"k8s.io/client-go/applyconfigurations/networking/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// IngressesGetter has a method to return a IngressInterface.\n// A group's client should implement this interface.\ntype IngressesGetter interface {\n\tIngresses(namespace string) IngressInterface\n}\n\n// IngressInterface has methods to work with Ingress resources.\ntype IngressInterface interface {\n\tCreate(ctx context.Context, ingress *networkingv1.Ingress, opts metav1.CreateOptions) (*networkingv1.Ingress, error)\n\tUpdate(ctx context.Context, ingress *networkingv1.Ingress, opts metav1.UpdateOptions) (*networkingv1.Ingress, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, ingress *networkingv1.Ingress, opts metav1.UpdateOptions) (*networkingv1.Ingress, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*networkingv1.Ingress, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*networkingv1.IngressList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *networkingv1.Ingress, err error)\n\tApply(ctx context.Context, ingress *applyconfigurationsnetworkingv1.IngressApplyConfiguration, opts metav1.ApplyOptions) (result *networkingv1.Ingress, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, ingress *applyconfigurationsnetworkingv1.IngressApplyConfiguration, opts metav1.ApplyOptions) (result *networkingv1.Ingress, err error)\n\tIngressExpansion\n}\n\n// ingresses implements IngressInterface\ntype ingresses struct {\n\t*gentype.ClientWithListAndApply[*networkingv1.Ingress, *networkingv1.IngressList, *applyconfigurationsnetworkingv1.IngressApplyConfiguration]\n}\n\n// newIngresses returns a Ingresses\nfunc newIngresses(c *NetworkingV1Client, namespace string) *ingresses {\n\treturn &ingresses{\n\t\tgentype.NewClientWithListAndApply[*networkingv1.Ingress, *networkingv1.IngressList, *applyconfigurationsnetworkingv1.IngressApplyConfiguration](\n\t\t\t\"ingresses\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *networkingv1.Ingress { return &networkingv1.Ingress{} },\n\t\t\tfunc() *networkingv1.IngressList { return &networkingv1.IngressList{} },\n\t\t\tgentype.PrefersProtobuf[*networkingv1.Ingress](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1/ingressclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tnetworkingv1 \"k8s.io/api/networking/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsnetworkingv1 \"k8s.io/client-go/applyconfigurations/networking/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// IngressClassesGetter has a method to return a IngressClassInterface.\n// A group's client should implement this interface.\ntype IngressClassesGetter interface {\n\tIngressClasses() IngressClassInterface\n}\n\n// IngressClassInterface has methods to work with IngressClass resources.\ntype IngressClassInterface interface {\n\tCreate(ctx context.Context, ingressClass *networkingv1.IngressClass, opts metav1.CreateOptions) (*networkingv1.IngressClass, error)\n\tUpdate(ctx context.Context, ingressClass *networkingv1.IngressClass, opts metav1.UpdateOptions) (*networkingv1.IngressClass, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*networkingv1.IngressClass, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*networkingv1.IngressClassList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *networkingv1.IngressClass, err error)\n\tApply(ctx context.Context, ingressClass *applyconfigurationsnetworkingv1.IngressClassApplyConfiguration, opts metav1.ApplyOptions) (result *networkingv1.IngressClass, err error)\n\tIngressClassExpansion\n}\n\n// ingressClasses implements IngressClassInterface\ntype ingressClasses struct {\n\t*gentype.ClientWithListAndApply[*networkingv1.IngressClass, *networkingv1.IngressClassList, *applyconfigurationsnetworkingv1.IngressClassApplyConfiguration]\n}\n\n// newIngressClasses returns a IngressClasses\nfunc newIngressClasses(c *NetworkingV1Client) *ingressClasses {\n\treturn &ingressClasses{\n\t\tgentype.NewClientWithListAndApply[*networkingv1.IngressClass, *networkingv1.IngressClassList, *applyconfigurationsnetworkingv1.IngressClassApplyConfiguration](\n\t\t\t\"ingressclasses\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *networkingv1.IngressClass { return &networkingv1.IngressClass{} },\n\t\t\tfunc() *networkingv1.IngressClassList { return &networkingv1.IngressClassList{} },\n\t\t\tgentype.PrefersProtobuf[*networkingv1.IngressClass](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1/networking_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\thttp \"net/http\"\n\n\tnetworkingv1 \"k8s.io/api/networking/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype NetworkingV1Interface interface {\n\tRESTClient() rest.Interface\n\tIngressesGetter\n\tIngressClassesGetter\n\tNetworkPoliciesGetter\n}\n\n// NetworkingV1Client is used to interact with features provided by the networking.k8s.io group.\ntype NetworkingV1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *NetworkingV1Client) Ingresses(namespace string) IngressInterface {\n\treturn newIngresses(c, namespace)\n}\n\nfunc (c *NetworkingV1Client) IngressClasses() IngressClassInterface {\n\treturn newIngressClasses(c)\n}\n\nfunc (c *NetworkingV1Client) NetworkPolicies(namespace string) NetworkPolicyInterface {\n\treturn newNetworkPolicies(c, namespace)\n}\n\n// NewForConfig creates a new NetworkingV1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*NetworkingV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new NetworkingV1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*NetworkingV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &NetworkingV1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new NetworkingV1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *NetworkingV1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new NetworkingV1Client for the given RESTClient.\nfunc New(c rest.Interface) *NetworkingV1Client {\n\treturn &NetworkingV1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := networkingv1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *NetworkingV1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1/networkpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tnetworkingv1 \"k8s.io/api/networking/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsnetworkingv1 \"k8s.io/client-go/applyconfigurations/networking/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// NetworkPoliciesGetter has a method to return a NetworkPolicyInterface.\n// A group's client should implement this interface.\ntype NetworkPoliciesGetter interface {\n\tNetworkPolicies(namespace string) NetworkPolicyInterface\n}\n\n// NetworkPolicyInterface has methods to work with NetworkPolicy resources.\ntype NetworkPolicyInterface interface {\n\tCreate(ctx context.Context, networkPolicy *networkingv1.NetworkPolicy, opts metav1.CreateOptions) (*networkingv1.NetworkPolicy, error)\n\tUpdate(ctx context.Context, networkPolicy *networkingv1.NetworkPolicy, opts metav1.UpdateOptions) (*networkingv1.NetworkPolicy, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*networkingv1.NetworkPolicy, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*networkingv1.NetworkPolicyList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *networkingv1.NetworkPolicy, err error)\n\tApply(ctx context.Context, networkPolicy *applyconfigurationsnetworkingv1.NetworkPolicyApplyConfiguration, opts metav1.ApplyOptions) (result *networkingv1.NetworkPolicy, err error)\n\tNetworkPolicyExpansion\n}\n\n// networkPolicies implements NetworkPolicyInterface\ntype networkPolicies struct {\n\t*gentype.ClientWithListAndApply[*networkingv1.NetworkPolicy, *networkingv1.NetworkPolicyList, *applyconfigurationsnetworkingv1.NetworkPolicyApplyConfiguration]\n}\n\n// newNetworkPolicies returns a NetworkPolicies\nfunc newNetworkPolicies(c *NetworkingV1Client, namespace string) *networkPolicies {\n\treturn &networkPolicies{\n\t\tgentype.NewClientWithListAndApply[*networkingv1.NetworkPolicy, *networkingv1.NetworkPolicyList, *applyconfigurationsnetworkingv1.NetworkPolicyApplyConfiguration](\n\t\t\t\"networkpolicies\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *networkingv1.NetworkPolicy { return &networkingv1.NetworkPolicy{} },\n\t\t\tfunc() *networkingv1.NetworkPolicyList { return &networkingv1.NetworkPolicyList{} },\n\t\t\tgentype.PrefersProtobuf[*networkingv1.NetworkPolicy](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1alpha1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/fake/fake_ipaddress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha1 \"k8s.io/api/networking/v1alpha1\"\n\tnetworkingv1alpha1 \"k8s.io/client-go/applyconfigurations/networking/v1alpha1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypednetworkingv1alpha1 \"k8s.io/client-go/kubernetes/typed/networking/v1alpha1\"\n)\n\n// fakeIPAddresses implements IPAddressInterface\ntype fakeIPAddresses struct {\n\t*gentype.FakeClientWithListAndApply[*v1alpha1.IPAddress, *v1alpha1.IPAddressList, *networkingv1alpha1.IPAddressApplyConfiguration]\n\tFake *FakeNetworkingV1alpha1\n}\n\nfunc newFakeIPAddresses(fake *FakeNetworkingV1alpha1) typednetworkingv1alpha1.IPAddressInterface {\n\treturn &fakeIPAddresses{\n\t\tgentype.NewFakeClientWithListAndApply[*v1alpha1.IPAddress, *v1alpha1.IPAddressList, *networkingv1alpha1.IPAddressApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1alpha1.SchemeGroupVersion.WithResource(\"ipaddresses\"),\n\t\t\tv1alpha1.SchemeGroupVersion.WithKind(\"IPAddress\"),\n\t\t\tfunc() *v1alpha1.IPAddress { return &v1alpha1.IPAddress{} },\n\t\t\tfunc() *v1alpha1.IPAddressList { return &v1alpha1.IPAddressList{} },\n\t\t\tfunc(dst, src *v1alpha1.IPAddressList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1alpha1.IPAddressList) []*v1alpha1.IPAddress { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1alpha1.IPAddressList, items []*v1alpha1.IPAddress) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/fake/fake_networking_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha1 \"k8s.io/client-go/kubernetes/typed/networking/v1alpha1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeNetworkingV1alpha1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeNetworkingV1alpha1) IPAddresses() v1alpha1.IPAddressInterface {\n\treturn newFakeIPAddresses(c)\n}\n\nfunc (c *FakeNetworkingV1alpha1) ServiceCIDRs() v1alpha1.ServiceCIDRInterface {\n\treturn newFakeServiceCIDRs(c)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeNetworkingV1alpha1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/fake/fake_servicecidr.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha1 \"k8s.io/api/networking/v1alpha1\"\n\tnetworkingv1alpha1 \"k8s.io/client-go/applyconfigurations/networking/v1alpha1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypednetworkingv1alpha1 \"k8s.io/client-go/kubernetes/typed/networking/v1alpha1\"\n)\n\n// fakeServiceCIDRs implements ServiceCIDRInterface\ntype fakeServiceCIDRs struct {\n\t*gentype.FakeClientWithListAndApply[*v1alpha1.ServiceCIDR, *v1alpha1.ServiceCIDRList, *networkingv1alpha1.ServiceCIDRApplyConfiguration]\n\tFake *FakeNetworkingV1alpha1\n}\n\nfunc newFakeServiceCIDRs(fake *FakeNetworkingV1alpha1) typednetworkingv1alpha1.ServiceCIDRInterface {\n\treturn &fakeServiceCIDRs{\n\t\tgentype.NewFakeClientWithListAndApply[*v1alpha1.ServiceCIDR, *v1alpha1.ServiceCIDRList, *networkingv1alpha1.ServiceCIDRApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1alpha1.SchemeGroupVersion.WithResource(\"servicecidrs\"),\n\t\t\tv1alpha1.SchemeGroupVersion.WithKind(\"ServiceCIDR\"),\n\t\t\tfunc() *v1alpha1.ServiceCIDR { return &v1alpha1.ServiceCIDR{} },\n\t\t\tfunc() *v1alpha1.ServiceCIDRList { return &v1alpha1.ServiceCIDRList{} },\n\t\t\tfunc(dst, src *v1alpha1.ServiceCIDRList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1alpha1.ServiceCIDRList) []*v1alpha1.ServiceCIDR {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1alpha1.ServiceCIDRList, items []*v1alpha1.ServiceCIDR) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\ntype IPAddressExpansion interface{}\n\ntype ServiceCIDRExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/ipaddress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcontext \"context\"\n\n\tnetworkingv1alpha1 \"k8s.io/api/networking/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsnetworkingv1alpha1 \"k8s.io/client-go/applyconfigurations/networking/v1alpha1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// IPAddressesGetter has a method to return a IPAddressInterface.\n// A group's client should implement this interface.\ntype IPAddressesGetter interface {\n\tIPAddresses() IPAddressInterface\n}\n\n// IPAddressInterface has methods to work with IPAddress resources.\ntype IPAddressInterface interface {\n\tCreate(ctx context.Context, iPAddress *networkingv1alpha1.IPAddress, opts v1.CreateOptions) (*networkingv1alpha1.IPAddress, error)\n\tUpdate(ctx context.Context, iPAddress *networkingv1alpha1.IPAddress, opts v1.UpdateOptions) (*networkingv1alpha1.IPAddress, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*networkingv1alpha1.IPAddress, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*networkingv1alpha1.IPAddressList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *networkingv1alpha1.IPAddress, err error)\n\tApply(ctx context.Context, iPAddress *applyconfigurationsnetworkingv1alpha1.IPAddressApplyConfiguration, opts v1.ApplyOptions) (result *networkingv1alpha1.IPAddress, err error)\n\tIPAddressExpansion\n}\n\n// iPAddresses implements IPAddressInterface\ntype iPAddresses struct {\n\t*gentype.ClientWithListAndApply[*networkingv1alpha1.IPAddress, *networkingv1alpha1.IPAddressList, *applyconfigurationsnetworkingv1alpha1.IPAddressApplyConfiguration]\n}\n\n// newIPAddresses returns a IPAddresses\nfunc newIPAddresses(c *NetworkingV1alpha1Client) *iPAddresses {\n\treturn &iPAddresses{\n\t\tgentype.NewClientWithListAndApply[*networkingv1alpha1.IPAddress, *networkingv1alpha1.IPAddressList, *applyconfigurationsnetworkingv1alpha1.IPAddressApplyConfiguration](\n\t\t\t\"ipaddresses\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *networkingv1alpha1.IPAddress { return &networkingv1alpha1.IPAddress{} },\n\t\t\tfunc() *networkingv1alpha1.IPAddressList { return &networkingv1alpha1.IPAddressList{} },\n\t\t\tgentype.PrefersProtobuf[*networkingv1alpha1.IPAddress](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/networking_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\thttp \"net/http\"\n\n\tnetworkingv1alpha1 \"k8s.io/api/networking/v1alpha1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype NetworkingV1alpha1Interface interface {\n\tRESTClient() rest.Interface\n\tIPAddressesGetter\n\tServiceCIDRsGetter\n}\n\n// NetworkingV1alpha1Client is used to interact with features provided by the networking.k8s.io group.\ntype NetworkingV1alpha1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *NetworkingV1alpha1Client) IPAddresses() IPAddressInterface {\n\treturn newIPAddresses(c)\n}\n\nfunc (c *NetworkingV1alpha1Client) ServiceCIDRs() ServiceCIDRInterface {\n\treturn newServiceCIDRs(c)\n}\n\n// NewForConfig creates a new NetworkingV1alpha1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*NetworkingV1alpha1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new NetworkingV1alpha1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*NetworkingV1alpha1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &NetworkingV1alpha1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new NetworkingV1alpha1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *NetworkingV1alpha1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new NetworkingV1alpha1Client for the given RESTClient.\nfunc New(c rest.Interface) *NetworkingV1alpha1Client {\n\treturn &NetworkingV1alpha1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := networkingv1alpha1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *NetworkingV1alpha1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1alpha1/servicecidr.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcontext \"context\"\n\n\tnetworkingv1alpha1 \"k8s.io/api/networking/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsnetworkingv1alpha1 \"k8s.io/client-go/applyconfigurations/networking/v1alpha1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// ServiceCIDRsGetter has a method to return a ServiceCIDRInterface.\n// A group's client should implement this interface.\ntype ServiceCIDRsGetter interface {\n\tServiceCIDRs() ServiceCIDRInterface\n}\n\n// ServiceCIDRInterface has methods to work with ServiceCIDR resources.\ntype ServiceCIDRInterface interface {\n\tCreate(ctx context.Context, serviceCIDR *networkingv1alpha1.ServiceCIDR, opts v1.CreateOptions) (*networkingv1alpha1.ServiceCIDR, error)\n\tUpdate(ctx context.Context, serviceCIDR *networkingv1alpha1.ServiceCIDR, opts v1.UpdateOptions) (*networkingv1alpha1.ServiceCIDR, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, serviceCIDR *networkingv1alpha1.ServiceCIDR, opts v1.UpdateOptions) (*networkingv1alpha1.ServiceCIDR, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*networkingv1alpha1.ServiceCIDR, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*networkingv1alpha1.ServiceCIDRList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *networkingv1alpha1.ServiceCIDR, err error)\n\tApply(ctx context.Context, serviceCIDR *applyconfigurationsnetworkingv1alpha1.ServiceCIDRApplyConfiguration, opts v1.ApplyOptions) (result *networkingv1alpha1.ServiceCIDR, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, serviceCIDR *applyconfigurationsnetworkingv1alpha1.ServiceCIDRApplyConfiguration, opts v1.ApplyOptions) (result *networkingv1alpha1.ServiceCIDR, err error)\n\tServiceCIDRExpansion\n}\n\n// serviceCIDRs implements ServiceCIDRInterface\ntype serviceCIDRs struct {\n\t*gentype.ClientWithListAndApply[*networkingv1alpha1.ServiceCIDR, *networkingv1alpha1.ServiceCIDRList, *applyconfigurationsnetworkingv1alpha1.ServiceCIDRApplyConfiguration]\n}\n\n// newServiceCIDRs returns a ServiceCIDRs\nfunc newServiceCIDRs(c *NetworkingV1alpha1Client) *serviceCIDRs {\n\treturn &serviceCIDRs{\n\t\tgentype.NewClientWithListAndApply[*networkingv1alpha1.ServiceCIDR, *networkingv1alpha1.ServiceCIDRList, *applyconfigurationsnetworkingv1alpha1.ServiceCIDRApplyConfiguration](\n\t\t\t\"servicecidrs\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *networkingv1alpha1.ServiceCIDR { return &networkingv1alpha1.ServiceCIDR{} },\n\t\t\tfunc() *networkingv1alpha1.ServiceCIDRList { return &networkingv1alpha1.ServiceCIDRList{} },\n\t\t\tgentype.PrefersProtobuf[*networkingv1alpha1.ServiceCIDR](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1beta1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1beta1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1beta1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1beta1/fake/fake_ingress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/networking/v1beta1\"\n\tnetworkingv1beta1 \"k8s.io/client-go/applyconfigurations/networking/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypednetworkingv1beta1 \"k8s.io/client-go/kubernetes/typed/networking/v1beta1\"\n)\n\n// fakeIngresses implements IngressInterface\ntype fakeIngresses struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta1.Ingress, *v1beta1.IngressList, *networkingv1beta1.IngressApplyConfiguration]\n\tFake *FakeNetworkingV1beta1\n}\n\nfunc newFakeIngresses(fake *FakeNetworkingV1beta1, namespace string) typednetworkingv1beta1.IngressInterface {\n\treturn &fakeIngresses{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta1.Ingress, *v1beta1.IngressList, *networkingv1beta1.IngressApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"ingresses\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"Ingress\"),\n\t\t\tfunc() *v1beta1.Ingress { return &v1beta1.Ingress{} },\n\t\t\tfunc() *v1beta1.IngressList { return &v1beta1.IngressList{} },\n\t\t\tfunc(dst, src *v1beta1.IngressList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta1.IngressList) []*v1beta1.Ingress { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1beta1.IngressList, items []*v1beta1.Ingress) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1beta1/fake/fake_ingressclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/networking/v1beta1\"\n\tnetworkingv1beta1 \"k8s.io/client-go/applyconfigurations/networking/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypednetworkingv1beta1 \"k8s.io/client-go/kubernetes/typed/networking/v1beta1\"\n)\n\n// fakeIngressClasses implements IngressClassInterface\ntype fakeIngressClasses struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta1.IngressClass, *v1beta1.IngressClassList, *networkingv1beta1.IngressClassApplyConfiguration]\n\tFake *FakeNetworkingV1beta1\n}\n\nfunc newFakeIngressClasses(fake *FakeNetworkingV1beta1) typednetworkingv1beta1.IngressClassInterface {\n\treturn &fakeIngressClasses{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta1.IngressClass, *v1beta1.IngressClassList, *networkingv1beta1.IngressClassApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"ingressclasses\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"IngressClass\"),\n\t\t\tfunc() *v1beta1.IngressClass { return &v1beta1.IngressClass{} },\n\t\t\tfunc() *v1beta1.IngressClassList { return &v1beta1.IngressClassList{} },\n\t\t\tfunc(dst, src *v1beta1.IngressClassList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta1.IngressClassList) []*v1beta1.IngressClass {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1beta1.IngressClassList, items []*v1beta1.IngressClass) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1beta1/fake/fake_ipaddress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/networking/v1beta1\"\n\tnetworkingv1beta1 \"k8s.io/client-go/applyconfigurations/networking/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypednetworkingv1beta1 \"k8s.io/client-go/kubernetes/typed/networking/v1beta1\"\n)\n\n// fakeIPAddresses implements IPAddressInterface\ntype fakeIPAddresses struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta1.IPAddress, *v1beta1.IPAddressList, *networkingv1beta1.IPAddressApplyConfiguration]\n\tFake *FakeNetworkingV1beta1\n}\n\nfunc newFakeIPAddresses(fake *FakeNetworkingV1beta1) typednetworkingv1beta1.IPAddressInterface {\n\treturn &fakeIPAddresses{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta1.IPAddress, *v1beta1.IPAddressList, *networkingv1beta1.IPAddressApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"ipaddresses\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"IPAddress\"),\n\t\t\tfunc() *v1beta1.IPAddress { return &v1beta1.IPAddress{} },\n\t\t\tfunc() *v1beta1.IPAddressList { return &v1beta1.IPAddressList{} },\n\t\t\tfunc(dst, src *v1beta1.IPAddressList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta1.IPAddressList) []*v1beta1.IPAddress { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1beta1.IPAddressList, items []*v1beta1.IPAddress) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1beta1/fake/fake_networking_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/client-go/kubernetes/typed/networking/v1beta1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeNetworkingV1beta1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeNetworkingV1beta1) IPAddresses() v1beta1.IPAddressInterface {\n\treturn newFakeIPAddresses(c)\n}\n\nfunc (c *FakeNetworkingV1beta1) Ingresses(namespace string) v1beta1.IngressInterface {\n\treturn newFakeIngresses(c, namespace)\n}\n\nfunc (c *FakeNetworkingV1beta1) IngressClasses() v1beta1.IngressClassInterface {\n\treturn newFakeIngressClasses(c)\n}\n\nfunc (c *FakeNetworkingV1beta1) ServiceCIDRs() v1beta1.ServiceCIDRInterface {\n\treturn newFakeServiceCIDRs(c)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeNetworkingV1beta1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1beta1/fake/fake_servicecidr.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/networking/v1beta1\"\n\tnetworkingv1beta1 \"k8s.io/client-go/applyconfigurations/networking/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypednetworkingv1beta1 \"k8s.io/client-go/kubernetes/typed/networking/v1beta1\"\n)\n\n// fakeServiceCIDRs implements ServiceCIDRInterface\ntype fakeServiceCIDRs struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta1.ServiceCIDR, *v1beta1.ServiceCIDRList, *networkingv1beta1.ServiceCIDRApplyConfiguration]\n\tFake *FakeNetworkingV1beta1\n}\n\nfunc newFakeServiceCIDRs(fake *FakeNetworkingV1beta1) typednetworkingv1beta1.ServiceCIDRInterface {\n\treturn &fakeServiceCIDRs{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta1.ServiceCIDR, *v1beta1.ServiceCIDRList, *networkingv1beta1.ServiceCIDRApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"servicecidrs\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"ServiceCIDR\"),\n\t\t\tfunc() *v1beta1.ServiceCIDR { return &v1beta1.ServiceCIDR{} },\n\t\t\tfunc() *v1beta1.ServiceCIDRList { return &v1beta1.ServiceCIDRList{} },\n\t\t\tfunc(dst, src *v1beta1.ServiceCIDRList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta1.ServiceCIDRList) []*v1beta1.ServiceCIDR { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1beta1.ServiceCIDRList, items []*v1beta1.ServiceCIDR) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1beta1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\ntype IPAddressExpansion interface{}\n\ntype IngressExpansion interface{}\n\ntype IngressClassExpansion interface{}\n\ntype ServiceCIDRExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1beta1/ingress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\tnetworkingv1beta1 \"k8s.io/api/networking/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsnetworkingv1beta1 \"k8s.io/client-go/applyconfigurations/networking/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// IngressesGetter has a method to return a IngressInterface.\n// A group's client should implement this interface.\ntype IngressesGetter interface {\n\tIngresses(namespace string) IngressInterface\n}\n\n// IngressInterface has methods to work with Ingress resources.\ntype IngressInterface interface {\n\tCreate(ctx context.Context, ingress *networkingv1beta1.Ingress, opts v1.CreateOptions) (*networkingv1beta1.Ingress, error)\n\tUpdate(ctx context.Context, ingress *networkingv1beta1.Ingress, opts v1.UpdateOptions) (*networkingv1beta1.Ingress, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, ingress *networkingv1beta1.Ingress, opts v1.UpdateOptions) (*networkingv1beta1.Ingress, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*networkingv1beta1.Ingress, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*networkingv1beta1.IngressList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *networkingv1beta1.Ingress, err error)\n\tApply(ctx context.Context, ingress *applyconfigurationsnetworkingv1beta1.IngressApplyConfiguration, opts v1.ApplyOptions) (result *networkingv1beta1.Ingress, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, ingress *applyconfigurationsnetworkingv1beta1.IngressApplyConfiguration, opts v1.ApplyOptions) (result *networkingv1beta1.Ingress, err error)\n\tIngressExpansion\n}\n\n// ingresses implements IngressInterface\ntype ingresses struct {\n\t*gentype.ClientWithListAndApply[*networkingv1beta1.Ingress, *networkingv1beta1.IngressList, *applyconfigurationsnetworkingv1beta1.IngressApplyConfiguration]\n}\n\n// newIngresses returns a Ingresses\nfunc newIngresses(c *NetworkingV1beta1Client, namespace string) *ingresses {\n\treturn &ingresses{\n\t\tgentype.NewClientWithListAndApply[*networkingv1beta1.Ingress, *networkingv1beta1.IngressList, *applyconfigurationsnetworkingv1beta1.IngressApplyConfiguration](\n\t\t\t\"ingresses\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *networkingv1beta1.Ingress { return &networkingv1beta1.Ingress{} },\n\t\t\tfunc() *networkingv1beta1.IngressList { return &networkingv1beta1.IngressList{} },\n\t\t\tgentype.PrefersProtobuf[*networkingv1beta1.Ingress](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1beta1/ingressclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\tnetworkingv1beta1 \"k8s.io/api/networking/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsnetworkingv1beta1 \"k8s.io/client-go/applyconfigurations/networking/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// IngressClassesGetter has a method to return a IngressClassInterface.\n// A group's client should implement this interface.\ntype IngressClassesGetter interface {\n\tIngressClasses() IngressClassInterface\n}\n\n// IngressClassInterface has methods to work with IngressClass resources.\ntype IngressClassInterface interface {\n\tCreate(ctx context.Context, ingressClass *networkingv1beta1.IngressClass, opts v1.CreateOptions) (*networkingv1beta1.IngressClass, error)\n\tUpdate(ctx context.Context, ingressClass *networkingv1beta1.IngressClass, opts v1.UpdateOptions) (*networkingv1beta1.IngressClass, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*networkingv1beta1.IngressClass, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*networkingv1beta1.IngressClassList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *networkingv1beta1.IngressClass, err error)\n\tApply(ctx context.Context, ingressClass *applyconfigurationsnetworkingv1beta1.IngressClassApplyConfiguration, opts v1.ApplyOptions) (result *networkingv1beta1.IngressClass, err error)\n\tIngressClassExpansion\n}\n\n// ingressClasses implements IngressClassInterface\ntype ingressClasses struct {\n\t*gentype.ClientWithListAndApply[*networkingv1beta1.IngressClass, *networkingv1beta1.IngressClassList, *applyconfigurationsnetworkingv1beta1.IngressClassApplyConfiguration]\n}\n\n// newIngressClasses returns a IngressClasses\nfunc newIngressClasses(c *NetworkingV1beta1Client) *ingressClasses {\n\treturn &ingressClasses{\n\t\tgentype.NewClientWithListAndApply[*networkingv1beta1.IngressClass, *networkingv1beta1.IngressClassList, *applyconfigurationsnetworkingv1beta1.IngressClassApplyConfiguration](\n\t\t\t\"ingressclasses\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *networkingv1beta1.IngressClass { return &networkingv1beta1.IngressClass{} },\n\t\t\tfunc() *networkingv1beta1.IngressClassList { return &networkingv1beta1.IngressClassList{} },\n\t\t\tgentype.PrefersProtobuf[*networkingv1beta1.IngressClass](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1beta1/ipaddress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\tnetworkingv1beta1 \"k8s.io/api/networking/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsnetworkingv1beta1 \"k8s.io/client-go/applyconfigurations/networking/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// IPAddressesGetter has a method to return a IPAddressInterface.\n// A group's client should implement this interface.\ntype IPAddressesGetter interface {\n\tIPAddresses() IPAddressInterface\n}\n\n// IPAddressInterface has methods to work with IPAddress resources.\ntype IPAddressInterface interface {\n\tCreate(ctx context.Context, iPAddress *networkingv1beta1.IPAddress, opts v1.CreateOptions) (*networkingv1beta1.IPAddress, error)\n\tUpdate(ctx context.Context, iPAddress *networkingv1beta1.IPAddress, opts v1.UpdateOptions) (*networkingv1beta1.IPAddress, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*networkingv1beta1.IPAddress, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*networkingv1beta1.IPAddressList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *networkingv1beta1.IPAddress, err error)\n\tApply(ctx context.Context, iPAddress *applyconfigurationsnetworkingv1beta1.IPAddressApplyConfiguration, opts v1.ApplyOptions) (result *networkingv1beta1.IPAddress, err error)\n\tIPAddressExpansion\n}\n\n// iPAddresses implements IPAddressInterface\ntype iPAddresses struct {\n\t*gentype.ClientWithListAndApply[*networkingv1beta1.IPAddress, *networkingv1beta1.IPAddressList, *applyconfigurationsnetworkingv1beta1.IPAddressApplyConfiguration]\n}\n\n// newIPAddresses returns a IPAddresses\nfunc newIPAddresses(c *NetworkingV1beta1Client) *iPAddresses {\n\treturn &iPAddresses{\n\t\tgentype.NewClientWithListAndApply[*networkingv1beta1.IPAddress, *networkingv1beta1.IPAddressList, *applyconfigurationsnetworkingv1beta1.IPAddressApplyConfiguration](\n\t\t\t\"ipaddresses\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *networkingv1beta1.IPAddress { return &networkingv1beta1.IPAddress{} },\n\t\t\tfunc() *networkingv1beta1.IPAddressList { return &networkingv1beta1.IPAddressList{} },\n\t\t\tgentype.PrefersProtobuf[*networkingv1beta1.IPAddress](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1beta1/networking_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\thttp \"net/http\"\n\n\tnetworkingv1beta1 \"k8s.io/api/networking/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype NetworkingV1beta1Interface interface {\n\tRESTClient() rest.Interface\n\tIPAddressesGetter\n\tIngressesGetter\n\tIngressClassesGetter\n\tServiceCIDRsGetter\n}\n\n// NetworkingV1beta1Client is used to interact with features provided by the networking.k8s.io group.\ntype NetworkingV1beta1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *NetworkingV1beta1Client) IPAddresses() IPAddressInterface {\n\treturn newIPAddresses(c)\n}\n\nfunc (c *NetworkingV1beta1Client) Ingresses(namespace string) IngressInterface {\n\treturn newIngresses(c, namespace)\n}\n\nfunc (c *NetworkingV1beta1Client) IngressClasses() IngressClassInterface {\n\treturn newIngressClasses(c)\n}\n\nfunc (c *NetworkingV1beta1Client) ServiceCIDRs() ServiceCIDRInterface {\n\treturn newServiceCIDRs(c)\n}\n\n// NewForConfig creates a new NetworkingV1beta1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*NetworkingV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new NetworkingV1beta1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*NetworkingV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &NetworkingV1beta1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new NetworkingV1beta1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *NetworkingV1beta1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new NetworkingV1beta1Client for the given RESTClient.\nfunc New(c rest.Interface) *NetworkingV1beta1Client {\n\treturn &NetworkingV1beta1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := networkingv1beta1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *NetworkingV1beta1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/networking/v1beta1/servicecidr.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\tnetworkingv1beta1 \"k8s.io/api/networking/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsnetworkingv1beta1 \"k8s.io/client-go/applyconfigurations/networking/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// ServiceCIDRsGetter has a method to return a ServiceCIDRInterface.\n// A group's client should implement this interface.\ntype ServiceCIDRsGetter interface {\n\tServiceCIDRs() ServiceCIDRInterface\n}\n\n// ServiceCIDRInterface has methods to work with ServiceCIDR resources.\ntype ServiceCIDRInterface interface {\n\tCreate(ctx context.Context, serviceCIDR *networkingv1beta1.ServiceCIDR, opts v1.CreateOptions) (*networkingv1beta1.ServiceCIDR, error)\n\tUpdate(ctx context.Context, serviceCIDR *networkingv1beta1.ServiceCIDR, opts v1.UpdateOptions) (*networkingv1beta1.ServiceCIDR, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, serviceCIDR *networkingv1beta1.ServiceCIDR, opts v1.UpdateOptions) (*networkingv1beta1.ServiceCIDR, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*networkingv1beta1.ServiceCIDR, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*networkingv1beta1.ServiceCIDRList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *networkingv1beta1.ServiceCIDR, err error)\n\tApply(ctx context.Context, serviceCIDR *applyconfigurationsnetworkingv1beta1.ServiceCIDRApplyConfiguration, opts v1.ApplyOptions) (result *networkingv1beta1.ServiceCIDR, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, serviceCIDR *applyconfigurationsnetworkingv1beta1.ServiceCIDRApplyConfiguration, opts v1.ApplyOptions) (result *networkingv1beta1.ServiceCIDR, err error)\n\tServiceCIDRExpansion\n}\n\n// serviceCIDRs implements ServiceCIDRInterface\ntype serviceCIDRs struct {\n\t*gentype.ClientWithListAndApply[*networkingv1beta1.ServiceCIDR, *networkingv1beta1.ServiceCIDRList, *applyconfigurationsnetworkingv1beta1.ServiceCIDRApplyConfiguration]\n}\n\n// newServiceCIDRs returns a ServiceCIDRs\nfunc newServiceCIDRs(c *NetworkingV1beta1Client) *serviceCIDRs {\n\treturn &serviceCIDRs{\n\t\tgentype.NewClientWithListAndApply[*networkingv1beta1.ServiceCIDR, *networkingv1beta1.ServiceCIDRList, *applyconfigurationsnetworkingv1beta1.ServiceCIDRApplyConfiguration](\n\t\t\t\"servicecidrs\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *networkingv1beta1.ServiceCIDR { return &networkingv1beta1.ServiceCIDR{} },\n\t\t\tfunc() *networkingv1beta1.ServiceCIDRList { return &networkingv1beta1.ServiceCIDRList{} },\n\t\t\tgentype.PrefersProtobuf[*networkingv1beta1.ServiceCIDR](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/node/v1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/node/v1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/node/v1/fake/fake_node_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/client-go/kubernetes/typed/node/v1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeNodeV1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeNodeV1) RuntimeClasses() v1.RuntimeClassInterface {\n\treturn newFakeRuntimeClasses(c)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeNodeV1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/node/v1/fake/fake_runtimeclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/node/v1\"\n\tnodev1 \"k8s.io/client-go/applyconfigurations/node/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypednodev1 \"k8s.io/client-go/kubernetes/typed/node/v1\"\n)\n\n// fakeRuntimeClasses implements RuntimeClassInterface\ntype fakeRuntimeClasses struct {\n\t*gentype.FakeClientWithListAndApply[*v1.RuntimeClass, *v1.RuntimeClassList, *nodev1.RuntimeClassApplyConfiguration]\n\tFake *FakeNodeV1\n}\n\nfunc newFakeRuntimeClasses(fake *FakeNodeV1) typednodev1.RuntimeClassInterface {\n\treturn &fakeRuntimeClasses{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.RuntimeClass, *v1.RuntimeClassList, *nodev1.RuntimeClassApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1.SchemeGroupVersion.WithResource(\"runtimeclasses\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"RuntimeClass\"),\n\t\t\tfunc() *v1.RuntimeClass { return &v1.RuntimeClass{} },\n\t\t\tfunc() *v1.RuntimeClassList { return &v1.RuntimeClassList{} },\n\t\t\tfunc(dst, src *v1.RuntimeClassList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.RuntimeClassList) []*v1.RuntimeClass { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1.RuntimeClassList, items []*v1.RuntimeClass) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/node/v1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\ntype RuntimeClassExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/node/v1/node_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\thttp \"net/http\"\n\n\tnodev1 \"k8s.io/api/node/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype NodeV1Interface interface {\n\tRESTClient() rest.Interface\n\tRuntimeClassesGetter\n}\n\n// NodeV1Client is used to interact with features provided by the node.k8s.io group.\ntype NodeV1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *NodeV1Client) RuntimeClasses() RuntimeClassInterface {\n\treturn newRuntimeClasses(c)\n}\n\n// NewForConfig creates a new NodeV1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*NodeV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new NodeV1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*NodeV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &NodeV1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new NodeV1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *NodeV1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new NodeV1Client for the given RESTClient.\nfunc New(c rest.Interface) *NodeV1Client {\n\treturn &NodeV1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := nodev1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *NodeV1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/node/v1/runtimeclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tnodev1 \"k8s.io/api/node/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsnodev1 \"k8s.io/client-go/applyconfigurations/node/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// RuntimeClassesGetter has a method to return a RuntimeClassInterface.\n// A group's client should implement this interface.\ntype RuntimeClassesGetter interface {\n\tRuntimeClasses() RuntimeClassInterface\n}\n\n// RuntimeClassInterface has methods to work with RuntimeClass resources.\ntype RuntimeClassInterface interface {\n\tCreate(ctx context.Context, runtimeClass *nodev1.RuntimeClass, opts metav1.CreateOptions) (*nodev1.RuntimeClass, error)\n\tUpdate(ctx context.Context, runtimeClass *nodev1.RuntimeClass, opts metav1.UpdateOptions) (*nodev1.RuntimeClass, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*nodev1.RuntimeClass, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*nodev1.RuntimeClassList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *nodev1.RuntimeClass, err error)\n\tApply(ctx context.Context, runtimeClass *applyconfigurationsnodev1.RuntimeClassApplyConfiguration, opts metav1.ApplyOptions) (result *nodev1.RuntimeClass, err error)\n\tRuntimeClassExpansion\n}\n\n// runtimeClasses implements RuntimeClassInterface\ntype runtimeClasses struct {\n\t*gentype.ClientWithListAndApply[*nodev1.RuntimeClass, *nodev1.RuntimeClassList, *applyconfigurationsnodev1.RuntimeClassApplyConfiguration]\n}\n\n// newRuntimeClasses returns a RuntimeClasses\nfunc newRuntimeClasses(c *NodeV1Client) *runtimeClasses {\n\treturn &runtimeClasses{\n\t\tgentype.NewClientWithListAndApply[*nodev1.RuntimeClass, *nodev1.RuntimeClassList, *applyconfigurationsnodev1.RuntimeClassApplyConfiguration](\n\t\t\t\"runtimeclasses\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *nodev1.RuntimeClass { return &nodev1.RuntimeClass{} },\n\t\t\tfunc() *nodev1.RuntimeClassList { return &nodev1.RuntimeClassList{} },\n\t\t\tgentype.PrefersProtobuf[*nodev1.RuntimeClass](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/node/v1alpha1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1alpha1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/node/v1alpha1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/node/v1alpha1/fake/fake_node_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha1 \"k8s.io/client-go/kubernetes/typed/node/v1alpha1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeNodeV1alpha1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeNodeV1alpha1) RuntimeClasses() v1alpha1.RuntimeClassInterface {\n\treturn newFakeRuntimeClasses(c)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeNodeV1alpha1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/node/v1alpha1/fake/fake_runtimeclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha1 \"k8s.io/api/node/v1alpha1\"\n\tnodev1alpha1 \"k8s.io/client-go/applyconfigurations/node/v1alpha1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypednodev1alpha1 \"k8s.io/client-go/kubernetes/typed/node/v1alpha1\"\n)\n\n// fakeRuntimeClasses implements RuntimeClassInterface\ntype fakeRuntimeClasses struct {\n\t*gentype.FakeClientWithListAndApply[*v1alpha1.RuntimeClass, *v1alpha1.RuntimeClassList, *nodev1alpha1.RuntimeClassApplyConfiguration]\n\tFake *FakeNodeV1alpha1\n}\n\nfunc newFakeRuntimeClasses(fake *FakeNodeV1alpha1) typednodev1alpha1.RuntimeClassInterface {\n\treturn &fakeRuntimeClasses{\n\t\tgentype.NewFakeClientWithListAndApply[*v1alpha1.RuntimeClass, *v1alpha1.RuntimeClassList, *nodev1alpha1.RuntimeClassApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1alpha1.SchemeGroupVersion.WithResource(\"runtimeclasses\"),\n\t\t\tv1alpha1.SchemeGroupVersion.WithKind(\"RuntimeClass\"),\n\t\t\tfunc() *v1alpha1.RuntimeClass { return &v1alpha1.RuntimeClass{} },\n\t\t\tfunc() *v1alpha1.RuntimeClassList { return &v1alpha1.RuntimeClassList{} },\n\t\t\tfunc(dst, src *v1alpha1.RuntimeClassList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1alpha1.RuntimeClassList) []*v1alpha1.RuntimeClass {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1alpha1.RuntimeClassList, items []*v1alpha1.RuntimeClass) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/node/v1alpha1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\ntype RuntimeClassExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/node/v1alpha1/node_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\thttp \"net/http\"\n\n\tnodev1alpha1 \"k8s.io/api/node/v1alpha1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype NodeV1alpha1Interface interface {\n\tRESTClient() rest.Interface\n\tRuntimeClassesGetter\n}\n\n// NodeV1alpha1Client is used to interact with features provided by the node.k8s.io group.\ntype NodeV1alpha1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *NodeV1alpha1Client) RuntimeClasses() RuntimeClassInterface {\n\treturn newRuntimeClasses(c)\n}\n\n// NewForConfig creates a new NodeV1alpha1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*NodeV1alpha1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new NodeV1alpha1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*NodeV1alpha1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &NodeV1alpha1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new NodeV1alpha1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *NodeV1alpha1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new NodeV1alpha1Client for the given RESTClient.\nfunc New(c rest.Interface) *NodeV1alpha1Client {\n\treturn &NodeV1alpha1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := nodev1alpha1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *NodeV1alpha1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/node/v1alpha1/runtimeclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcontext \"context\"\n\n\tnodev1alpha1 \"k8s.io/api/node/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsnodev1alpha1 \"k8s.io/client-go/applyconfigurations/node/v1alpha1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// RuntimeClassesGetter has a method to return a RuntimeClassInterface.\n// A group's client should implement this interface.\ntype RuntimeClassesGetter interface {\n\tRuntimeClasses() RuntimeClassInterface\n}\n\n// RuntimeClassInterface has methods to work with RuntimeClass resources.\ntype RuntimeClassInterface interface {\n\tCreate(ctx context.Context, runtimeClass *nodev1alpha1.RuntimeClass, opts v1.CreateOptions) (*nodev1alpha1.RuntimeClass, error)\n\tUpdate(ctx context.Context, runtimeClass *nodev1alpha1.RuntimeClass, opts v1.UpdateOptions) (*nodev1alpha1.RuntimeClass, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*nodev1alpha1.RuntimeClass, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*nodev1alpha1.RuntimeClassList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *nodev1alpha1.RuntimeClass, err error)\n\tApply(ctx context.Context, runtimeClass *applyconfigurationsnodev1alpha1.RuntimeClassApplyConfiguration, opts v1.ApplyOptions) (result *nodev1alpha1.RuntimeClass, err error)\n\tRuntimeClassExpansion\n}\n\n// runtimeClasses implements RuntimeClassInterface\ntype runtimeClasses struct {\n\t*gentype.ClientWithListAndApply[*nodev1alpha1.RuntimeClass, *nodev1alpha1.RuntimeClassList, *applyconfigurationsnodev1alpha1.RuntimeClassApplyConfiguration]\n}\n\n// newRuntimeClasses returns a RuntimeClasses\nfunc newRuntimeClasses(c *NodeV1alpha1Client) *runtimeClasses {\n\treturn &runtimeClasses{\n\t\tgentype.NewClientWithListAndApply[*nodev1alpha1.RuntimeClass, *nodev1alpha1.RuntimeClassList, *applyconfigurationsnodev1alpha1.RuntimeClassApplyConfiguration](\n\t\t\t\"runtimeclasses\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *nodev1alpha1.RuntimeClass { return &nodev1alpha1.RuntimeClass{} },\n\t\t\tfunc() *nodev1alpha1.RuntimeClassList { return &nodev1alpha1.RuntimeClassList{} },\n\t\t\tgentype.PrefersProtobuf[*nodev1alpha1.RuntimeClass](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/node/v1beta1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1beta1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/node/v1beta1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/node/v1beta1/fake/fake_node_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/client-go/kubernetes/typed/node/v1beta1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeNodeV1beta1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeNodeV1beta1) RuntimeClasses() v1beta1.RuntimeClassInterface {\n\treturn newFakeRuntimeClasses(c)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeNodeV1beta1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/node/v1beta1/fake/fake_runtimeclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/node/v1beta1\"\n\tnodev1beta1 \"k8s.io/client-go/applyconfigurations/node/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypednodev1beta1 \"k8s.io/client-go/kubernetes/typed/node/v1beta1\"\n)\n\n// fakeRuntimeClasses implements RuntimeClassInterface\ntype fakeRuntimeClasses struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta1.RuntimeClass, *v1beta1.RuntimeClassList, *nodev1beta1.RuntimeClassApplyConfiguration]\n\tFake *FakeNodeV1beta1\n}\n\nfunc newFakeRuntimeClasses(fake *FakeNodeV1beta1) typednodev1beta1.RuntimeClassInterface {\n\treturn &fakeRuntimeClasses{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta1.RuntimeClass, *v1beta1.RuntimeClassList, *nodev1beta1.RuntimeClassApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"runtimeclasses\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"RuntimeClass\"),\n\t\t\tfunc() *v1beta1.RuntimeClass { return &v1beta1.RuntimeClass{} },\n\t\t\tfunc() *v1beta1.RuntimeClassList { return &v1beta1.RuntimeClassList{} },\n\t\t\tfunc(dst, src *v1beta1.RuntimeClassList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta1.RuntimeClassList) []*v1beta1.RuntimeClass {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1beta1.RuntimeClassList, items []*v1beta1.RuntimeClass) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/node/v1beta1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\ntype RuntimeClassExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/node/v1beta1/node_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\thttp \"net/http\"\n\n\tnodev1beta1 \"k8s.io/api/node/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype NodeV1beta1Interface interface {\n\tRESTClient() rest.Interface\n\tRuntimeClassesGetter\n}\n\n// NodeV1beta1Client is used to interact with features provided by the node.k8s.io group.\ntype NodeV1beta1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *NodeV1beta1Client) RuntimeClasses() RuntimeClassInterface {\n\treturn newRuntimeClasses(c)\n}\n\n// NewForConfig creates a new NodeV1beta1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*NodeV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new NodeV1beta1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*NodeV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &NodeV1beta1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new NodeV1beta1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *NodeV1beta1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new NodeV1beta1Client for the given RESTClient.\nfunc New(c rest.Interface) *NodeV1beta1Client {\n\treturn &NodeV1beta1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := nodev1beta1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *NodeV1beta1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/node/v1beta1/runtimeclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\tnodev1beta1 \"k8s.io/api/node/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsnodev1beta1 \"k8s.io/client-go/applyconfigurations/node/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// RuntimeClassesGetter has a method to return a RuntimeClassInterface.\n// A group's client should implement this interface.\ntype RuntimeClassesGetter interface {\n\tRuntimeClasses() RuntimeClassInterface\n}\n\n// RuntimeClassInterface has methods to work with RuntimeClass resources.\ntype RuntimeClassInterface interface {\n\tCreate(ctx context.Context, runtimeClass *nodev1beta1.RuntimeClass, opts v1.CreateOptions) (*nodev1beta1.RuntimeClass, error)\n\tUpdate(ctx context.Context, runtimeClass *nodev1beta1.RuntimeClass, opts v1.UpdateOptions) (*nodev1beta1.RuntimeClass, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*nodev1beta1.RuntimeClass, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*nodev1beta1.RuntimeClassList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *nodev1beta1.RuntimeClass, err error)\n\tApply(ctx context.Context, runtimeClass *applyconfigurationsnodev1beta1.RuntimeClassApplyConfiguration, opts v1.ApplyOptions) (result *nodev1beta1.RuntimeClass, err error)\n\tRuntimeClassExpansion\n}\n\n// runtimeClasses implements RuntimeClassInterface\ntype runtimeClasses struct {\n\t*gentype.ClientWithListAndApply[*nodev1beta1.RuntimeClass, *nodev1beta1.RuntimeClassList, *applyconfigurationsnodev1beta1.RuntimeClassApplyConfiguration]\n}\n\n// newRuntimeClasses returns a RuntimeClasses\nfunc newRuntimeClasses(c *NodeV1beta1Client) *runtimeClasses {\n\treturn &runtimeClasses{\n\t\tgentype.NewClientWithListAndApply[*nodev1beta1.RuntimeClass, *nodev1beta1.RuntimeClassList, *applyconfigurationsnodev1beta1.RuntimeClassApplyConfiguration](\n\t\t\t\"runtimeclasses\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *nodev1beta1.RuntimeClass { return &nodev1beta1.RuntimeClass{} },\n\t\t\tfunc() *nodev1beta1.RuntimeClassList { return &nodev1beta1.RuntimeClassList{} },\n\t\t\tgentype.PrefersProtobuf[*nodev1beta1.RuntimeClass](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1/eviction.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tpolicyv1 \"k8s.io/api/policy/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// EvictionsGetter has a method to return a EvictionInterface.\n// A group's client should implement this interface.\ntype EvictionsGetter interface {\n\tEvictions(namespace string) EvictionInterface\n}\n\n// EvictionInterface has methods to work with Eviction resources.\ntype EvictionInterface interface {\n\tEvictionExpansion\n}\n\n// evictions implements EvictionInterface\ntype evictions struct {\n\t*gentype.Client[*policyv1.Eviction]\n}\n\n// newEvictions returns a Evictions\nfunc newEvictions(c *PolicyV1Client, namespace string) *evictions {\n\treturn &evictions{\n\t\tgentype.NewClient[*policyv1.Eviction](\n\t\t\t\"evictions\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *policyv1.Eviction { return &policyv1.Eviction{} },\n\t\t\tgentype.PrefersProtobuf[*policyv1.Eviction](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1/eviction_expansion.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"context\"\n\n\tpolicy \"k8s.io/api/policy/v1\"\n)\n\n// The EvictionExpansion interface allows manually adding extra methods to the ScaleInterface.\ntype EvictionExpansion interface {\n\tEvict(ctx context.Context, eviction *policy.Eviction) error\n}\n\nfunc (c *evictions) Evict(ctx context.Context, eviction *policy.Eviction) error {\n\treturn c.GetClient().Post().\n\t\tAbsPath(\"/api/v1\").\n\t\tNamespace(eviction.Namespace).\n\t\tResource(\"pods\").\n\t\tName(eviction.Name).\n\t\tSubResource(\"eviction\").\n\t\tBody(eviction).\n\t\tDo(ctx).\n\t\tError()\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1/fake/fake_eviction.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/policy/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tpolicyv1 \"k8s.io/client-go/kubernetes/typed/policy/v1\"\n)\n\n// fakeEvictions implements EvictionInterface\ntype fakeEvictions struct {\n\t*gentype.FakeClient[*v1.Eviction]\n\tFake *FakePolicyV1\n}\n\nfunc newFakeEvictions(fake *FakePolicyV1, namespace string) policyv1.EvictionInterface {\n\treturn &fakeEvictions{\n\t\tgentype.NewFakeClient[*v1.Eviction](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1.SchemeGroupVersion.WithResource(\"evictions\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"Eviction\"),\n\t\t\tfunc() *v1.Eviction { return &v1.Eviction{} },\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1/fake/fake_eviction_expansion.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fake\n\nimport (\n\t\"context\"\n\n\tpolicy \"k8s.io/api/policy/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\tcore \"k8s.io/client-go/testing\"\n)\n\nfunc (c *fakeEvictions) Evict(ctx context.Context, eviction *policy.Eviction) error {\n\taction := core.CreateActionImpl{}\n\taction.Verb = \"create\"\n\taction.Namespace = c.Namespace()\n\taction.Resource = schema.GroupVersionResource{Group: \"\", Version: \"v1\", Resource: \"pods\"}\n\taction.Subresource = \"eviction\"\n\taction.Object = eviction\n\n\t_, err := c.Fake.Invokes(action, eviction)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1/fake/fake_poddisruptionbudget.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/policy/v1\"\n\tpolicyv1 \"k8s.io/client-go/applyconfigurations/policy/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedpolicyv1 \"k8s.io/client-go/kubernetes/typed/policy/v1\"\n)\n\n// fakePodDisruptionBudgets implements PodDisruptionBudgetInterface\ntype fakePodDisruptionBudgets struct {\n\t*gentype.FakeClientWithListAndApply[*v1.PodDisruptionBudget, *v1.PodDisruptionBudgetList, *policyv1.PodDisruptionBudgetApplyConfiguration]\n\tFake *FakePolicyV1\n}\n\nfunc newFakePodDisruptionBudgets(fake *FakePolicyV1, namespace string) typedpolicyv1.PodDisruptionBudgetInterface {\n\treturn &fakePodDisruptionBudgets{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.PodDisruptionBudget, *v1.PodDisruptionBudgetList, *policyv1.PodDisruptionBudgetApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1.SchemeGroupVersion.WithResource(\"poddisruptionbudgets\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"PodDisruptionBudget\"),\n\t\t\tfunc() *v1.PodDisruptionBudget { return &v1.PodDisruptionBudget{} },\n\t\t\tfunc() *v1.PodDisruptionBudgetList { return &v1.PodDisruptionBudgetList{} },\n\t\t\tfunc(dst, src *v1.PodDisruptionBudgetList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.PodDisruptionBudgetList) []*v1.PodDisruptionBudget {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1.PodDisruptionBudgetList, items []*v1.PodDisruptionBudget) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1/fake/fake_policy_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/client-go/kubernetes/typed/policy/v1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakePolicyV1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakePolicyV1) Evictions(namespace string) v1.EvictionInterface {\n\treturn newFakeEvictions(c, namespace)\n}\n\nfunc (c *FakePolicyV1) PodDisruptionBudgets(namespace string) v1.PodDisruptionBudgetInterface {\n\treturn newFakePodDisruptionBudgets(c, namespace)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakePolicyV1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\ntype PodDisruptionBudgetExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1/poddisruptionbudget.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tpolicyv1 \"k8s.io/api/policy/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationspolicyv1 \"k8s.io/client-go/applyconfigurations/policy/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// PodDisruptionBudgetsGetter has a method to return a PodDisruptionBudgetInterface.\n// A group's client should implement this interface.\ntype PodDisruptionBudgetsGetter interface {\n\tPodDisruptionBudgets(namespace string) PodDisruptionBudgetInterface\n}\n\n// PodDisruptionBudgetInterface has methods to work with PodDisruptionBudget resources.\ntype PodDisruptionBudgetInterface interface {\n\tCreate(ctx context.Context, podDisruptionBudget *policyv1.PodDisruptionBudget, opts metav1.CreateOptions) (*policyv1.PodDisruptionBudget, error)\n\tUpdate(ctx context.Context, podDisruptionBudget *policyv1.PodDisruptionBudget, opts metav1.UpdateOptions) (*policyv1.PodDisruptionBudget, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, podDisruptionBudget *policyv1.PodDisruptionBudget, opts metav1.UpdateOptions) (*policyv1.PodDisruptionBudget, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*policyv1.PodDisruptionBudget, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*policyv1.PodDisruptionBudgetList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *policyv1.PodDisruptionBudget, err error)\n\tApply(ctx context.Context, podDisruptionBudget *applyconfigurationspolicyv1.PodDisruptionBudgetApplyConfiguration, opts metav1.ApplyOptions) (result *policyv1.PodDisruptionBudget, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, podDisruptionBudget *applyconfigurationspolicyv1.PodDisruptionBudgetApplyConfiguration, opts metav1.ApplyOptions) (result *policyv1.PodDisruptionBudget, err error)\n\tPodDisruptionBudgetExpansion\n}\n\n// podDisruptionBudgets implements PodDisruptionBudgetInterface\ntype podDisruptionBudgets struct {\n\t*gentype.ClientWithListAndApply[*policyv1.PodDisruptionBudget, *policyv1.PodDisruptionBudgetList, *applyconfigurationspolicyv1.PodDisruptionBudgetApplyConfiguration]\n}\n\n// newPodDisruptionBudgets returns a PodDisruptionBudgets\nfunc newPodDisruptionBudgets(c *PolicyV1Client, namespace string) *podDisruptionBudgets {\n\treturn &podDisruptionBudgets{\n\t\tgentype.NewClientWithListAndApply[*policyv1.PodDisruptionBudget, *policyv1.PodDisruptionBudgetList, *applyconfigurationspolicyv1.PodDisruptionBudgetApplyConfiguration](\n\t\t\t\"poddisruptionbudgets\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *policyv1.PodDisruptionBudget { return &policyv1.PodDisruptionBudget{} },\n\t\t\tfunc() *policyv1.PodDisruptionBudgetList { return &policyv1.PodDisruptionBudgetList{} },\n\t\t\tgentype.PrefersProtobuf[*policyv1.PodDisruptionBudget](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1/policy_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\thttp \"net/http\"\n\n\tpolicyv1 \"k8s.io/api/policy/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype PolicyV1Interface interface {\n\tRESTClient() rest.Interface\n\tEvictionsGetter\n\tPodDisruptionBudgetsGetter\n}\n\n// PolicyV1Client is used to interact with features provided by the policy group.\ntype PolicyV1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *PolicyV1Client) Evictions(namespace string) EvictionInterface {\n\treturn newEvictions(c, namespace)\n}\n\nfunc (c *PolicyV1Client) PodDisruptionBudgets(namespace string) PodDisruptionBudgetInterface {\n\treturn newPodDisruptionBudgets(c, namespace)\n}\n\n// NewForConfig creates a new PolicyV1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*PolicyV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new PolicyV1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*PolicyV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &PolicyV1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new PolicyV1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *PolicyV1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new PolicyV1Client for the given RESTClient.\nfunc New(c rest.Interface) *PolicyV1Client {\n\treturn &PolicyV1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := policyv1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *PolicyV1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1beta1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/eviction.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tpolicyv1beta1 \"k8s.io/api/policy/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// EvictionsGetter has a method to return a EvictionInterface.\n// A group's client should implement this interface.\ntype EvictionsGetter interface {\n\tEvictions(namespace string) EvictionInterface\n}\n\n// EvictionInterface has methods to work with Eviction resources.\ntype EvictionInterface interface {\n\tEvictionExpansion\n}\n\n// evictions implements EvictionInterface\ntype evictions struct {\n\t*gentype.Client[*policyv1beta1.Eviction]\n}\n\n// newEvictions returns a Evictions\nfunc newEvictions(c *PolicyV1beta1Client, namespace string) *evictions {\n\treturn &evictions{\n\t\tgentype.NewClient[*policyv1beta1.Eviction](\n\t\t\t\"evictions\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *policyv1beta1.Eviction { return &policyv1beta1.Eviction{} },\n\t\t\tgentype.PrefersProtobuf[*policyv1beta1.Eviction](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/eviction_expansion.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\t\"context\"\n\n\tpolicy \"k8s.io/api/policy/v1beta1\"\n)\n\n// The EvictionExpansion interface allows manually adding extra methods to the ScaleInterface.\ntype EvictionExpansion interface {\n\tEvict(ctx context.Context, eviction *policy.Eviction) error\n}\n\nfunc (c *evictions) Evict(ctx context.Context, eviction *policy.Eviction) error {\n\treturn c.GetClient().Post().\n\t\tAbsPath(\"/api/v1\").\n\t\tNamespace(eviction.Namespace).\n\t\tResource(\"pods\").\n\t\tName(eviction.Name).\n\t\tSubResource(\"eviction\").\n\t\tBody(eviction).\n\t\tDo(ctx).\n\t\tError()\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/fake_eviction.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/policy/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tpolicyv1beta1 \"k8s.io/client-go/kubernetes/typed/policy/v1beta1\"\n)\n\n// fakeEvictions implements EvictionInterface\ntype fakeEvictions struct {\n\t*gentype.FakeClient[*v1beta1.Eviction]\n\tFake *FakePolicyV1beta1\n}\n\nfunc newFakeEvictions(fake *FakePolicyV1beta1, namespace string) policyv1beta1.EvictionInterface {\n\treturn &fakeEvictions{\n\t\tgentype.NewFakeClient[*v1beta1.Eviction](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"evictions\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"Eviction\"),\n\t\t\tfunc() *v1beta1.Eviction { return &v1beta1.Eviction{} },\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/fake_eviction_expansion.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fake\n\nimport (\n\t\"context\"\n\n\tpolicy \"k8s.io/api/policy/v1beta1\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\tcore \"k8s.io/client-go/testing\"\n)\n\nfunc (c *fakeEvictions) Evict(ctx context.Context, eviction *policy.Eviction) error {\n\taction := core.CreateActionImpl{}\n\taction.Verb = \"create\"\n\taction.Namespace = c.Namespace()\n\taction.Resource = schema.GroupVersionResource{Group: \"\", Version: \"v1\", Resource: \"pods\"}\n\taction.Subresource = \"eviction\"\n\taction.Object = eviction\n\n\t_, err := c.Fake.Invokes(action, eviction)\n\treturn err\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/fake_poddisruptionbudget.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/policy/v1beta1\"\n\tpolicyv1beta1 \"k8s.io/client-go/applyconfigurations/policy/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedpolicyv1beta1 \"k8s.io/client-go/kubernetes/typed/policy/v1beta1\"\n)\n\n// fakePodDisruptionBudgets implements PodDisruptionBudgetInterface\ntype fakePodDisruptionBudgets struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta1.PodDisruptionBudget, *v1beta1.PodDisruptionBudgetList, *policyv1beta1.PodDisruptionBudgetApplyConfiguration]\n\tFake *FakePolicyV1beta1\n}\n\nfunc newFakePodDisruptionBudgets(fake *FakePolicyV1beta1, namespace string) typedpolicyv1beta1.PodDisruptionBudgetInterface {\n\treturn &fakePodDisruptionBudgets{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta1.PodDisruptionBudget, *v1beta1.PodDisruptionBudgetList, *policyv1beta1.PodDisruptionBudgetApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"poddisruptionbudgets\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"PodDisruptionBudget\"),\n\t\t\tfunc() *v1beta1.PodDisruptionBudget { return &v1beta1.PodDisruptionBudget{} },\n\t\t\tfunc() *v1beta1.PodDisruptionBudgetList { return &v1beta1.PodDisruptionBudgetList{} },\n\t\t\tfunc(dst, src *v1beta1.PodDisruptionBudgetList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta1.PodDisruptionBudgetList) []*v1beta1.PodDisruptionBudget {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1beta1.PodDisruptionBudgetList, items []*v1beta1.PodDisruptionBudget) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/fake_policy_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/client-go/kubernetes/typed/policy/v1beta1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakePolicyV1beta1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakePolicyV1beta1) Evictions(namespace string) v1beta1.EvictionInterface {\n\treturn newFakeEvictions(c, namespace)\n}\n\nfunc (c *FakePolicyV1beta1) PodDisruptionBudgets(namespace string) v1beta1.PodDisruptionBudgetInterface {\n\treturn newFakePodDisruptionBudgets(c, namespace)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakePolicyV1beta1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\ntype PodDisruptionBudgetExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/poddisruptionbudget.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\tpolicyv1beta1 \"k8s.io/api/policy/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationspolicyv1beta1 \"k8s.io/client-go/applyconfigurations/policy/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// PodDisruptionBudgetsGetter has a method to return a PodDisruptionBudgetInterface.\n// A group's client should implement this interface.\ntype PodDisruptionBudgetsGetter interface {\n\tPodDisruptionBudgets(namespace string) PodDisruptionBudgetInterface\n}\n\n// PodDisruptionBudgetInterface has methods to work with PodDisruptionBudget resources.\ntype PodDisruptionBudgetInterface interface {\n\tCreate(ctx context.Context, podDisruptionBudget *policyv1beta1.PodDisruptionBudget, opts v1.CreateOptions) (*policyv1beta1.PodDisruptionBudget, error)\n\tUpdate(ctx context.Context, podDisruptionBudget *policyv1beta1.PodDisruptionBudget, opts v1.UpdateOptions) (*policyv1beta1.PodDisruptionBudget, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, podDisruptionBudget *policyv1beta1.PodDisruptionBudget, opts v1.UpdateOptions) (*policyv1beta1.PodDisruptionBudget, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*policyv1beta1.PodDisruptionBudget, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*policyv1beta1.PodDisruptionBudgetList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *policyv1beta1.PodDisruptionBudget, err error)\n\tApply(ctx context.Context, podDisruptionBudget *applyconfigurationspolicyv1beta1.PodDisruptionBudgetApplyConfiguration, opts v1.ApplyOptions) (result *policyv1beta1.PodDisruptionBudget, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, podDisruptionBudget *applyconfigurationspolicyv1beta1.PodDisruptionBudgetApplyConfiguration, opts v1.ApplyOptions) (result *policyv1beta1.PodDisruptionBudget, err error)\n\tPodDisruptionBudgetExpansion\n}\n\n// podDisruptionBudgets implements PodDisruptionBudgetInterface\ntype podDisruptionBudgets struct {\n\t*gentype.ClientWithListAndApply[*policyv1beta1.PodDisruptionBudget, *policyv1beta1.PodDisruptionBudgetList, *applyconfigurationspolicyv1beta1.PodDisruptionBudgetApplyConfiguration]\n}\n\n// newPodDisruptionBudgets returns a PodDisruptionBudgets\nfunc newPodDisruptionBudgets(c *PolicyV1beta1Client, namespace string) *podDisruptionBudgets {\n\treturn &podDisruptionBudgets{\n\t\tgentype.NewClientWithListAndApply[*policyv1beta1.PodDisruptionBudget, *policyv1beta1.PodDisruptionBudgetList, *applyconfigurationspolicyv1beta1.PodDisruptionBudgetApplyConfiguration](\n\t\t\t\"poddisruptionbudgets\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *policyv1beta1.PodDisruptionBudget { return &policyv1beta1.PodDisruptionBudget{} },\n\t\t\tfunc() *policyv1beta1.PodDisruptionBudgetList { return &policyv1beta1.PodDisruptionBudgetList{} },\n\t\t\tgentype.PrefersProtobuf[*policyv1beta1.PodDisruptionBudget](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/policy_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\thttp \"net/http\"\n\n\tpolicyv1beta1 \"k8s.io/api/policy/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype PolicyV1beta1Interface interface {\n\tRESTClient() rest.Interface\n\tEvictionsGetter\n\tPodDisruptionBudgetsGetter\n}\n\n// PolicyV1beta1Client is used to interact with features provided by the policy group.\ntype PolicyV1beta1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *PolicyV1beta1Client) Evictions(namespace string) EvictionInterface {\n\treturn newEvictions(c, namespace)\n}\n\nfunc (c *PolicyV1beta1Client) PodDisruptionBudgets(namespace string) PodDisruptionBudgetInterface {\n\treturn newPodDisruptionBudgets(c, namespace)\n}\n\n// NewForConfig creates a new PolicyV1beta1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*PolicyV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new PolicyV1beta1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*PolicyV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &PolicyV1beta1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new PolicyV1beta1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *PolicyV1beta1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new PolicyV1beta1Client for the given RESTClient.\nfunc New(c rest.Interface) *PolicyV1beta1Client {\n\treturn &PolicyV1beta1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := policyv1beta1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *PolicyV1beta1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/clusterrole.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\trbacv1 \"k8s.io/api/rbac/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsrbacv1 \"k8s.io/client-go/applyconfigurations/rbac/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// ClusterRolesGetter has a method to return a ClusterRoleInterface.\n// A group's client should implement this interface.\ntype ClusterRolesGetter interface {\n\tClusterRoles() ClusterRoleInterface\n}\n\n// ClusterRoleInterface has methods to work with ClusterRole resources.\ntype ClusterRoleInterface interface {\n\tCreate(ctx context.Context, clusterRole *rbacv1.ClusterRole, opts metav1.CreateOptions) (*rbacv1.ClusterRole, error)\n\tUpdate(ctx context.Context, clusterRole *rbacv1.ClusterRole, opts metav1.UpdateOptions) (*rbacv1.ClusterRole, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*rbacv1.ClusterRole, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*rbacv1.ClusterRoleList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *rbacv1.ClusterRole, err error)\n\tApply(ctx context.Context, clusterRole *applyconfigurationsrbacv1.ClusterRoleApplyConfiguration, opts metav1.ApplyOptions) (result *rbacv1.ClusterRole, err error)\n\tClusterRoleExpansion\n}\n\n// clusterRoles implements ClusterRoleInterface\ntype clusterRoles struct {\n\t*gentype.ClientWithListAndApply[*rbacv1.ClusterRole, *rbacv1.ClusterRoleList, *applyconfigurationsrbacv1.ClusterRoleApplyConfiguration]\n}\n\n// newClusterRoles returns a ClusterRoles\nfunc newClusterRoles(c *RbacV1Client) *clusterRoles {\n\treturn &clusterRoles{\n\t\tgentype.NewClientWithListAndApply[*rbacv1.ClusterRole, *rbacv1.ClusterRoleList, *applyconfigurationsrbacv1.ClusterRoleApplyConfiguration](\n\t\t\t\"clusterroles\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *rbacv1.ClusterRole { return &rbacv1.ClusterRole{} },\n\t\t\tfunc() *rbacv1.ClusterRoleList { return &rbacv1.ClusterRoleList{} },\n\t\t\tgentype.PrefersProtobuf[*rbacv1.ClusterRole](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/clusterrolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\trbacv1 \"k8s.io/api/rbac/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsrbacv1 \"k8s.io/client-go/applyconfigurations/rbac/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// ClusterRoleBindingsGetter has a method to return a ClusterRoleBindingInterface.\n// A group's client should implement this interface.\ntype ClusterRoleBindingsGetter interface {\n\tClusterRoleBindings() ClusterRoleBindingInterface\n}\n\n// ClusterRoleBindingInterface has methods to work with ClusterRoleBinding resources.\ntype ClusterRoleBindingInterface interface {\n\tCreate(ctx context.Context, clusterRoleBinding *rbacv1.ClusterRoleBinding, opts metav1.CreateOptions) (*rbacv1.ClusterRoleBinding, error)\n\tUpdate(ctx context.Context, clusterRoleBinding *rbacv1.ClusterRoleBinding, opts metav1.UpdateOptions) (*rbacv1.ClusterRoleBinding, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*rbacv1.ClusterRoleBinding, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*rbacv1.ClusterRoleBindingList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *rbacv1.ClusterRoleBinding, err error)\n\tApply(ctx context.Context, clusterRoleBinding *applyconfigurationsrbacv1.ClusterRoleBindingApplyConfiguration, opts metav1.ApplyOptions) (result *rbacv1.ClusterRoleBinding, err error)\n\tClusterRoleBindingExpansion\n}\n\n// clusterRoleBindings implements ClusterRoleBindingInterface\ntype clusterRoleBindings struct {\n\t*gentype.ClientWithListAndApply[*rbacv1.ClusterRoleBinding, *rbacv1.ClusterRoleBindingList, *applyconfigurationsrbacv1.ClusterRoleBindingApplyConfiguration]\n}\n\n// newClusterRoleBindings returns a ClusterRoleBindings\nfunc newClusterRoleBindings(c *RbacV1Client) *clusterRoleBindings {\n\treturn &clusterRoleBindings{\n\t\tgentype.NewClientWithListAndApply[*rbacv1.ClusterRoleBinding, *rbacv1.ClusterRoleBindingList, *applyconfigurationsrbacv1.ClusterRoleBindingApplyConfiguration](\n\t\t\t\"clusterrolebindings\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *rbacv1.ClusterRoleBinding { return &rbacv1.ClusterRoleBinding{} },\n\t\t\tfunc() *rbacv1.ClusterRoleBindingList { return &rbacv1.ClusterRoleBindingList{} },\n\t\t\tgentype.PrefersProtobuf[*rbacv1.ClusterRoleBinding](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_clusterrole.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/rbac/v1\"\n\trbacv1 \"k8s.io/client-go/applyconfigurations/rbac/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedrbacv1 \"k8s.io/client-go/kubernetes/typed/rbac/v1\"\n)\n\n// fakeClusterRoles implements ClusterRoleInterface\ntype fakeClusterRoles struct {\n\t*gentype.FakeClientWithListAndApply[*v1.ClusterRole, *v1.ClusterRoleList, *rbacv1.ClusterRoleApplyConfiguration]\n\tFake *FakeRbacV1\n}\n\nfunc newFakeClusterRoles(fake *FakeRbacV1) typedrbacv1.ClusterRoleInterface {\n\treturn &fakeClusterRoles{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.ClusterRole, *v1.ClusterRoleList, *rbacv1.ClusterRoleApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1.SchemeGroupVersion.WithResource(\"clusterroles\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"ClusterRole\"),\n\t\t\tfunc() *v1.ClusterRole { return &v1.ClusterRole{} },\n\t\t\tfunc() *v1.ClusterRoleList { return &v1.ClusterRoleList{} },\n\t\t\tfunc(dst, src *v1.ClusterRoleList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.ClusterRoleList) []*v1.ClusterRole { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1.ClusterRoleList, items []*v1.ClusterRole) { list.Items = gentype.FromPointerSlice(items) },\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_clusterrolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/rbac/v1\"\n\trbacv1 \"k8s.io/client-go/applyconfigurations/rbac/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedrbacv1 \"k8s.io/client-go/kubernetes/typed/rbac/v1\"\n)\n\n// fakeClusterRoleBindings implements ClusterRoleBindingInterface\ntype fakeClusterRoleBindings struct {\n\t*gentype.FakeClientWithListAndApply[*v1.ClusterRoleBinding, *v1.ClusterRoleBindingList, *rbacv1.ClusterRoleBindingApplyConfiguration]\n\tFake *FakeRbacV1\n}\n\nfunc newFakeClusterRoleBindings(fake *FakeRbacV1) typedrbacv1.ClusterRoleBindingInterface {\n\treturn &fakeClusterRoleBindings{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.ClusterRoleBinding, *v1.ClusterRoleBindingList, *rbacv1.ClusterRoleBindingApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1.SchemeGroupVersion.WithResource(\"clusterrolebindings\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"ClusterRoleBinding\"),\n\t\t\tfunc() *v1.ClusterRoleBinding { return &v1.ClusterRoleBinding{} },\n\t\t\tfunc() *v1.ClusterRoleBindingList { return &v1.ClusterRoleBindingList{} },\n\t\t\tfunc(dst, src *v1.ClusterRoleBindingList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.ClusterRoleBindingList) []*v1.ClusterRoleBinding {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1.ClusterRoleBindingList, items []*v1.ClusterRoleBinding) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_rbac_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/client-go/kubernetes/typed/rbac/v1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeRbacV1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeRbacV1) ClusterRoles() v1.ClusterRoleInterface {\n\treturn newFakeClusterRoles(c)\n}\n\nfunc (c *FakeRbacV1) ClusterRoleBindings() v1.ClusterRoleBindingInterface {\n\treturn newFakeClusterRoleBindings(c)\n}\n\nfunc (c *FakeRbacV1) Roles(namespace string) v1.RoleInterface {\n\treturn newFakeRoles(c, namespace)\n}\n\nfunc (c *FakeRbacV1) RoleBindings(namespace string) v1.RoleBindingInterface {\n\treturn newFakeRoleBindings(c, namespace)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeRbacV1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_role.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/rbac/v1\"\n\trbacv1 \"k8s.io/client-go/applyconfigurations/rbac/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedrbacv1 \"k8s.io/client-go/kubernetes/typed/rbac/v1\"\n)\n\n// fakeRoles implements RoleInterface\ntype fakeRoles struct {\n\t*gentype.FakeClientWithListAndApply[*v1.Role, *v1.RoleList, *rbacv1.RoleApplyConfiguration]\n\tFake *FakeRbacV1\n}\n\nfunc newFakeRoles(fake *FakeRbacV1, namespace string) typedrbacv1.RoleInterface {\n\treturn &fakeRoles{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.Role, *v1.RoleList, *rbacv1.RoleApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1.SchemeGroupVersion.WithResource(\"roles\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"Role\"),\n\t\t\tfunc() *v1.Role { return &v1.Role{} },\n\t\t\tfunc() *v1.RoleList { return &v1.RoleList{} },\n\t\t\tfunc(dst, src *v1.RoleList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.RoleList) []*v1.Role { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1.RoleList, items []*v1.Role) { list.Items = gentype.FromPointerSlice(items) },\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_rolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/rbac/v1\"\n\trbacv1 \"k8s.io/client-go/applyconfigurations/rbac/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedrbacv1 \"k8s.io/client-go/kubernetes/typed/rbac/v1\"\n)\n\n// fakeRoleBindings implements RoleBindingInterface\ntype fakeRoleBindings struct {\n\t*gentype.FakeClientWithListAndApply[*v1.RoleBinding, *v1.RoleBindingList, *rbacv1.RoleBindingApplyConfiguration]\n\tFake *FakeRbacV1\n}\n\nfunc newFakeRoleBindings(fake *FakeRbacV1, namespace string) typedrbacv1.RoleBindingInterface {\n\treturn &fakeRoleBindings{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.RoleBinding, *v1.RoleBindingList, *rbacv1.RoleBindingApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1.SchemeGroupVersion.WithResource(\"rolebindings\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"RoleBinding\"),\n\t\t\tfunc() *v1.RoleBinding { return &v1.RoleBinding{} },\n\t\t\tfunc() *v1.RoleBindingList { return &v1.RoleBindingList{} },\n\t\t\tfunc(dst, src *v1.RoleBindingList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.RoleBindingList) []*v1.RoleBinding { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1.RoleBindingList, items []*v1.RoleBinding) { list.Items = gentype.FromPointerSlice(items) },\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\ntype ClusterRoleExpansion interface{}\n\ntype ClusterRoleBindingExpansion interface{}\n\ntype RoleExpansion interface{}\n\ntype RoleBindingExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/rbac_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\thttp \"net/http\"\n\n\trbacv1 \"k8s.io/api/rbac/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype RbacV1Interface interface {\n\tRESTClient() rest.Interface\n\tClusterRolesGetter\n\tClusterRoleBindingsGetter\n\tRolesGetter\n\tRoleBindingsGetter\n}\n\n// RbacV1Client is used to interact with features provided by the rbac.authorization.k8s.io group.\ntype RbacV1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *RbacV1Client) ClusterRoles() ClusterRoleInterface {\n\treturn newClusterRoles(c)\n}\n\nfunc (c *RbacV1Client) ClusterRoleBindings() ClusterRoleBindingInterface {\n\treturn newClusterRoleBindings(c)\n}\n\nfunc (c *RbacV1Client) Roles(namespace string) RoleInterface {\n\treturn newRoles(c, namespace)\n}\n\nfunc (c *RbacV1Client) RoleBindings(namespace string) RoleBindingInterface {\n\treturn newRoleBindings(c, namespace)\n}\n\n// NewForConfig creates a new RbacV1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*RbacV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new RbacV1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*RbacV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &RbacV1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new RbacV1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *RbacV1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new RbacV1Client for the given RESTClient.\nfunc New(c rest.Interface) *RbacV1Client {\n\treturn &RbacV1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := rbacv1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *RbacV1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/role.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\trbacv1 \"k8s.io/api/rbac/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsrbacv1 \"k8s.io/client-go/applyconfigurations/rbac/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// RolesGetter has a method to return a RoleInterface.\n// A group's client should implement this interface.\ntype RolesGetter interface {\n\tRoles(namespace string) RoleInterface\n}\n\n// RoleInterface has methods to work with Role resources.\ntype RoleInterface interface {\n\tCreate(ctx context.Context, role *rbacv1.Role, opts metav1.CreateOptions) (*rbacv1.Role, error)\n\tUpdate(ctx context.Context, role *rbacv1.Role, opts metav1.UpdateOptions) (*rbacv1.Role, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*rbacv1.Role, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*rbacv1.RoleList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *rbacv1.Role, err error)\n\tApply(ctx context.Context, role *applyconfigurationsrbacv1.RoleApplyConfiguration, opts metav1.ApplyOptions) (result *rbacv1.Role, err error)\n\tRoleExpansion\n}\n\n// roles implements RoleInterface\ntype roles struct {\n\t*gentype.ClientWithListAndApply[*rbacv1.Role, *rbacv1.RoleList, *applyconfigurationsrbacv1.RoleApplyConfiguration]\n}\n\n// newRoles returns a Roles\nfunc newRoles(c *RbacV1Client, namespace string) *roles {\n\treturn &roles{\n\t\tgentype.NewClientWithListAndApply[*rbacv1.Role, *rbacv1.RoleList, *applyconfigurationsrbacv1.RoleApplyConfiguration](\n\t\t\t\"roles\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *rbacv1.Role { return &rbacv1.Role{} },\n\t\t\tfunc() *rbacv1.RoleList { return &rbacv1.RoleList{} },\n\t\t\tgentype.PrefersProtobuf[*rbacv1.Role](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/rolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\trbacv1 \"k8s.io/api/rbac/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsrbacv1 \"k8s.io/client-go/applyconfigurations/rbac/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// RoleBindingsGetter has a method to return a RoleBindingInterface.\n// A group's client should implement this interface.\ntype RoleBindingsGetter interface {\n\tRoleBindings(namespace string) RoleBindingInterface\n}\n\n// RoleBindingInterface has methods to work with RoleBinding resources.\ntype RoleBindingInterface interface {\n\tCreate(ctx context.Context, roleBinding *rbacv1.RoleBinding, opts metav1.CreateOptions) (*rbacv1.RoleBinding, error)\n\tUpdate(ctx context.Context, roleBinding *rbacv1.RoleBinding, opts metav1.UpdateOptions) (*rbacv1.RoleBinding, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*rbacv1.RoleBinding, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*rbacv1.RoleBindingList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *rbacv1.RoleBinding, err error)\n\tApply(ctx context.Context, roleBinding *applyconfigurationsrbacv1.RoleBindingApplyConfiguration, opts metav1.ApplyOptions) (result *rbacv1.RoleBinding, err error)\n\tRoleBindingExpansion\n}\n\n// roleBindings implements RoleBindingInterface\ntype roleBindings struct {\n\t*gentype.ClientWithListAndApply[*rbacv1.RoleBinding, *rbacv1.RoleBindingList, *applyconfigurationsrbacv1.RoleBindingApplyConfiguration]\n}\n\n// newRoleBindings returns a RoleBindings\nfunc newRoleBindings(c *RbacV1Client, namespace string) *roleBindings {\n\treturn &roleBindings{\n\t\tgentype.NewClientWithListAndApply[*rbacv1.RoleBinding, *rbacv1.RoleBindingList, *applyconfigurationsrbacv1.RoleBindingApplyConfiguration](\n\t\t\t\"rolebindings\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *rbacv1.RoleBinding { return &rbacv1.RoleBinding{} },\n\t\t\tfunc() *rbacv1.RoleBindingList { return &rbacv1.RoleBindingList{} },\n\t\t\tgentype.PrefersProtobuf[*rbacv1.RoleBinding](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/clusterrole.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcontext \"context\"\n\n\trbacv1alpha1 \"k8s.io/api/rbac/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsrbacv1alpha1 \"k8s.io/client-go/applyconfigurations/rbac/v1alpha1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// ClusterRolesGetter has a method to return a ClusterRoleInterface.\n// A group's client should implement this interface.\ntype ClusterRolesGetter interface {\n\tClusterRoles() ClusterRoleInterface\n}\n\n// ClusterRoleInterface has methods to work with ClusterRole resources.\ntype ClusterRoleInterface interface {\n\tCreate(ctx context.Context, clusterRole *rbacv1alpha1.ClusterRole, opts v1.CreateOptions) (*rbacv1alpha1.ClusterRole, error)\n\tUpdate(ctx context.Context, clusterRole *rbacv1alpha1.ClusterRole, opts v1.UpdateOptions) (*rbacv1alpha1.ClusterRole, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*rbacv1alpha1.ClusterRole, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*rbacv1alpha1.ClusterRoleList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *rbacv1alpha1.ClusterRole, err error)\n\tApply(ctx context.Context, clusterRole *applyconfigurationsrbacv1alpha1.ClusterRoleApplyConfiguration, opts v1.ApplyOptions) (result *rbacv1alpha1.ClusterRole, err error)\n\tClusterRoleExpansion\n}\n\n// clusterRoles implements ClusterRoleInterface\ntype clusterRoles struct {\n\t*gentype.ClientWithListAndApply[*rbacv1alpha1.ClusterRole, *rbacv1alpha1.ClusterRoleList, *applyconfigurationsrbacv1alpha1.ClusterRoleApplyConfiguration]\n}\n\n// newClusterRoles returns a ClusterRoles\nfunc newClusterRoles(c *RbacV1alpha1Client) *clusterRoles {\n\treturn &clusterRoles{\n\t\tgentype.NewClientWithListAndApply[*rbacv1alpha1.ClusterRole, *rbacv1alpha1.ClusterRoleList, *applyconfigurationsrbacv1alpha1.ClusterRoleApplyConfiguration](\n\t\t\t\"clusterroles\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *rbacv1alpha1.ClusterRole { return &rbacv1alpha1.ClusterRole{} },\n\t\t\tfunc() *rbacv1alpha1.ClusterRoleList { return &rbacv1alpha1.ClusterRoleList{} },\n\t\t\tgentype.PrefersProtobuf[*rbacv1alpha1.ClusterRole](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/clusterrolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcontext \"context\"\n\n\trbacv1alpha1 \"k8s.io/api/rbac/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsrbacv1alpha1 \"k8s.io/client-go/applyconfigurations/rbac/v1alpha1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// ClusterRoleBindingsGetter has a method to return a ClusterRoleBindingInterface.\n// A group's client should implement this interface.\ntype ClusterRoleBindingsGetter interface {\n\tClusterRoleBindings() ClusterRoleBindingInterface\n}\n\n// ClusterRoleBindingInterface has methods to work with ClusterRoleBinding resources.\ntype ClusterRoleBindingInterface interface {\n\tCreate(ctx context.Context, clusterRoleBinding *rbacv1alpha1.ClusterRoleBinding, opts v1.CreateOptions) (*rbacv1alpha1.ClusterRoleBinding, error)\n\tUpdate(ctx context.Context, clusterRoleBinding *rbacv1alpha1.ClusterRoleBinding, opts v1.UpdateOptions) (*rbacv1alpha1.ClusterRoleBinding, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*rbacv1alpha1.ClusterRoleBinding, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*rbacv1alpha1.ClusterRoleBindingList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *rbacv1alpha1.ClusterRoleBinding, err error)\n\tApply(ctx context.Context, clusterRoleBinding *applyconfigurationsrbacv1alpha1.ClusterRoleBindingApplyConfiguration, opts v1.ApplyOptions) (result *rbacv1alpha1.ClusterRoleBinding, err error)\n\tClusterRoleBindingExpansion\n}\n\n// clusterRoleBindings implements ClusterRoleBindingInterface\ntype clusterRoleBindings struct {\n\t*gentype.ClientWithListAndApply[*rbacv1alpha1.ClusterRoleBinding, *rbacv1alpha1.ClusterRoleBindingList, *applyconfigurationsrbacv1alpha1.ClusterRoleBindingApplyConfiguration]\n}\n\n// newClusterRoleBindings returns a ClusterRoleBindings\nfunc newClusterRoleBindings(c *RbacV1alpha1Client) *clusterRoleBindings {\n\treturn &clusterRoleBindings{\n\t\tgentype.NewClientWithListAndApply[*rbacv1alpha1.ClusterRoleBinding, *rbacv1alpha1.ClusterRoleBindingList, *applyconfigurationsrbacv1alpha1.ClusterRoleBindingApplyConfiguration](\n\t\t\t\"clusterrolebindings\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *rbacv1alpha1.ClusterRoleBinding { return &rbacv1alpha1.ClusterRoleBinding{} },\n\t\t\tfunc() *rbacv1alpha1.ClusterRoleBindingList { return &rbacv1alpha1.ClusterRoleBindingList{} },\n\t\t\tgentype.PrefersProtobuf[*rbacv1alpha1.ClusterRoleBinding](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1alpha1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_clusterrole.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha1 \"k8s.io/api/rbac/v1alpha1\"\n\trbacv1alpha1 \"k8s.io/client-go/applyconfigurations/rbac/v1alpha1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedrbacv1alpha1 \"k8s.io/client-go/kubernetes/typed/rbac/v1alpha1\"\n)\n\n// fakeClusterRoles implements ClusterRoleInterface\ntype fakeClusterRoles struct {\n\t*gentype.FakeClientWithListAndApply[*v1alpha1.ClusterRole, *v1alpha1.ClusterRoleList, *rbacv1alpha1.ClusterRoleApplyConfiguration]\n\tFake *FakeRbacV1alpha1\n}\n\nfunc newFakeClusterRoles(fake *FakeRbacV1alpha1) typedrbacv1alpha1.ClusterRoleInterface {\n\treturn &fakeClusterRoles{\n\t\tgentype.NewFakeClientWithListAndApply[*v1alpha1.ClusterRole, *v1alpha1.ClusterRoleList, *rbacv1alpha1.ClusterRoleApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1alpha1.SchemeGroupVersion.WithResource(\"clusterroles\"),\n\t\t\tv1alpha1.SchemeGroupVersion.WithKind(\"ClusterRole\"),\n\t\t\tfunc() *v1alpha1.ClusterRole { return &v1alpha1.ClusterRole{} },\n\t\t\tfunc() *v1alpha1.ClusterRoleList { return &v1alpha1.ClusterRoleList{} },\n\t\t\tfunc(dst, src *v1alpha1.ClusterRoleList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1alpha1.ClusterRoleList) []*v1alpha1.ClusterRole {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1alpha1.ClusterRoleList, items []*v1alpha1.ClusterRole) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_clusterrolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha1 \"k8s.io/api/rbac/v1alpha1\"\n\trbacv1alpha1 \"k8s.io/client-go/applyconfigurations/rbac/v1alpha1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedrbacv1alpha1 \"k8s.io/client-go/kubernetes/typed/rbac/v1alpha1\"\n)\n\n// fakeClusterRoleBindings implements ClusterRoleBindingInterface\ntype fakeClusterRoleBindings struct {\n\t*gentype.FakeClientWithListAndApply[*v1alpha1.ClusterRoleBinding, *v1alpha1.ClusterRoleBindingList, *rbacv1alpha1.ClusterRoleBindingApplyConfiguration]\n\tFake *FakeRbacV1alpha1\n}\n\nfunc newFakeClusterRoleBindings(fake *FakeRbacV1alpha1) typedrbacv1alpha1.ClusterRoleBindingInterface {\n\treturn &fakeClusterRoleBindings{\n\t\tgentype.NewFakeClientWithListAndApply[*v1alpha1.ClusterRoleBinding, *v1alpha1.ClusterRoleBindingList, *rbacv1alpha1.ClusterRoleBindingApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1alpha1.SchemeGroupVersion.WithResource(\"clusterrolebindings\"),\n\t\t\tv1alpha1.SchemeGroupVersion.WithKind(\"ClusterRoleBinding\"),\n\t\t\tfunc() *v1alpha1.ClusterRoleBinding { return &v1alpha1.ClusterRoleBinding{} },\n\t\t\tfunc() *v1alpha1.ClusterRoleBindingList { return &v1alpha1.ClusterRoleBindingList{} },\n\t\t\tfunc(dst, src *v1alpha1.ClusterRoleBindingList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1alpha1.ClusterRoleBindingList) []*v1alpha1.ClusterRoleBinding {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1alpha1.ClusterRoleBindingList, items []*v1alpha1.ClusterRoleBinding) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_rbac_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha1 \"k8s.io/client-go/kubernetes/typed/rbac/v1alpha1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeRbacV1alpha1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeRbacV1alpha1) ClusterRoles() v1alpha1.ClusterRoleInterface {\n\treturn newFakeClusterRoles(c)\n}\n\nfunc (c *FakeRbacV1alpha1) ClusterRoleBindings() v1alpha1.ClusterRoleBindingInterface {\n\treturn newFakeClusterRoleBindings(c)\n}\n\nfunc (c *FakeRbacV1alpha1) Roles(namespace string) v1alpha1.RoleInterface {\n\treturn newFakeRoles(c, namespace)\n}\n\nfunc (c *FakeRbacV1alpha1) RoleBindings(namespace string) v1alpha1.RoleBindingInterface {\n\treturn newFakeRoleBindings(c, namespace)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeRbacV1alpha1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_role.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha1 \"k8s.io/api/rbac/v1alpha1\"\n\trbacv1alpha1 \"k8s.io/client-go/applyconfigurations/rbac/v1alpha1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedrbacv1alpha1 \"k8s.io/client-go/kubernetes/typed/rbac/v1alpha1\"\n)\n\n// fakeRoles implements RoleInterface\ntype fakeRoles struct {\n\t*gentype.FakeClientWithListAndApply[*v1alpha1.Role, *v1alpha1.RoleList, *rbacv1alpha1.RoleApplyConfiguration]\n\tFake *FakeRbacV1alpha1\n}\n\nfunc newFakeRoles(fake *FakeRbacV1alpha1, namespace string) typedrbacv1alpha1.RoleInterface {\n\treturn &fakeRoles{\n\t\tgentype.NewFakeClientWithListAndApply[*v1alpha1.Role, *v1alpha1.RoleList, *rbacv1alpha1.RoleApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1alpha1.SchemeGroupVersion.WithResource(\"roles\"),\n\t\t\tv1alpha1.SchemeGroupVersion.WithKind(\"Role\"),\n\t\t\tfunc() *v1alpha1.Role { return &v1alpha1.Role{} },\n\t\t\tfunc() *v1alpha1.RoleList { return &v1alpha1.RoleList{} },\n\t\t\tfunc(dst, src *v1alpha1.RoleList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1alpha1.RoleList) []*v1alpha1.Role { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1alpha1.RoleList, items []*v1alpha1.Role) { list.Items = gentype.FromPointerSlice(items) },\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/fake_rolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha1 \"k8s.io/api/rbac/v1alpha1\"\n\trbacv1alpha1 \"k8s.io/client-go/applyconfigurations/rbac/v1alpha1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedrbacv1alpha1 \"k8s.io/client-go/kubernetes/typed/rbac/v1alpha1\"\n)\n\n// fakeRoleBindings implements RoleBindingInterface\ntype fakeRoleBindings struct {\n\t*gentype.FakeClientWithListAndApply[*v1alpha1.RoleBinding, *v1alpha1.RoleBindingList, *rbacv1alpha1.RoleBindingApplyConfiguration]\n\tFake *FakeRbacV1alpha1\n}\n\nfunc newFakeRoleBindings(fake *FakeRbacV1alpha1, namespace string) typedrbacv1alpha1.RoleBindingInterface {\n\treturn &fakeRoleBindings{\n\t\tgentype.NewFakeClientWithListAndApply[*v1alpha1.RoleBinding, *v1alpha1.RoleBindingList, *rbacv1alpha1.RoleBindingApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1alpha1.SchemeGroupVersion.WithResource(\"rolebindings\"),\n\t\t\tv1alpha1.SchemeGroupVersion.WithKind(\"RoleBinding\"),\n\t\t\tfunc() *v1alpha1.RoleBinding { return &v1alpha1.RoleBinding{} },\n\t\t\tfunc() *v1alpha1.RoleBindingList { return &v1alpha1.RoleBindingList{} },\n\t\t\tfunc(dst, src *v1alpha1.RoleBindingList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1alpha1.RoleBindingList) []*v1alpha1.RoleBinding {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1alpha1.RoleBindingList, items []*v1alpha1.RoleBinding) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\ntype ClusterRoleExpansion interface{}\n\ntype ClusterRoleBindingExpansion interface{}\n\ntype RoleExpansion interface{}\n\ntype RoleBindingExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/rbac_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\thttp \"net/http\"\n\n\trbacv1alpha1 \"k8s.io/api/rbac/v1alpha1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype RbacV1alpha1Interface interface {\n\tRESTClient() rest.Interface\n\tClusterRolesGetter\n\tClusterRoleBindingsGetter\n\tRolesGetter\n\tRoleBindingsGetter\n}\n\n// RbacV1alpha1Client is used to interact with features provided by the rbac.authorization.k8s.io group.\ntype RbacV1alpha1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *RbacV1alpha1Client) ClusterRoles() ClusterRoleInterface {\n\treturn newClusterRoles(c)\n}\n\nfunc (c *RbacV1alpha1Client) ClusterRoleBindings() ClusterRoleBindingInterface {\n\treturn newClusterRoleBindings(c)\n}\n\nfunc (c *RbacV1alpha1Client) Roles(namespace string) RoleInterface {\n\treturn newRoles(c, namespace)\n}\n\nfunc (c *RbacV1alpha1Client) RoleBindings(namespace string) RoleBindingInterface {\n\treturn newRoleBindings(c, namespace)\n}\n\n// NewForConfig creates a new RbacV1alpha1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*RbacV1alpha1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new RbacV1alpha1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*RbacV1alpha1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &RbacV1alpha1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new RbacV1alpha1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *RbacV1alpha1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new RbacV1alpha1Client for the given RESTClient.\nfunc New(c rest.Interface) *RbacV1alpha1Client {\n\treturn &RbacV1alpha1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := rbacv1alpha1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *RbacV1alpha1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/role.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcontext \"context\"\n\n\trbacv1alpha1 \"k8s.io/api/rbac/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsrbacv1alpha1 \"k8s.io/client-go/applyconfigurations/rbac/v1alpha1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// RolesGetter has a method to return a RoleInterface.\n// A group's client should implement this interface.\ntype RolesGetter interface {\n\tRoles(namespace string) RoleInterface\n}\n\n// RoleInterface has methods to work with Role resources.\ntype RoleInterface interface {\n\tCreate(ctx context.Context, role *rbacv1alpha1.Role, opts v1.CreateOptions) (*rbacv1alpha1.Role, error)\n\tUpdate(ctx context.Context, role *rbacv1alpha1.Role, opts v1.UpdateOptions) (*rbacv1alpha1.Role, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*rbacv1alpha1.Role, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*rbacv1alpha1.RoleList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *rbacv1alpha1.Role, err error)\n\tApply(ctx context.Context, role *applyconfigurationsrbacv1alpha1.RoleApplyConfiguration, opts v1.ApplyOptions) (result *rbacv1alpha1.Role, err error)\n\tRoleExpansion\n}\n\n// roles implements RoleInterface\ntype roles struct {\n\t*gentype.ClientWithListAndApply[*rbacv1alpha1.Role, *rbacv1alpha1.RoleList, *applyconfigurationsrbacv1alpha1.RoleApplyConfiguration]\n}\n\n// newRoles returns a Roles\nfunc newRoles(c *RbacV1alpha1Client, namespace string) *roles {\n\treturn &roles{\n\t\tgentype.NewClientWithListAndApply[*rbacv1alpha1.Role, *rbacv1alpha1.RoleList, *applyconfigurationsrbacv1alpha1.RoleApplyConfiguration](\n\t\t\t\"roles\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *rbacv1alpha1.Role { return &rbacv1alpha1.Role{} },\n\t\t\tfunc() *rbacv1alpha1.RoleList { return &rbacv1alpha1.RoleList{} },\n\t\t\tgentype.PrefersProtobuf[*rbacv1alpha1.Role](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/rolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcontext \"context\"\n\n\trbacv1alpha1 \"k8s.io/api/rbac/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsrbacv1alpha1 \"k8s.io/client-go/applyconfigurations/rbac/v1alpha1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// RoleBindingsGetter has a method to return a RoleBindingInterface.\n// A group's client should implement this interface.\ntype RoleBindingsGetter interface {\n\tRoleBindings(namespace string) RoleBindingInterface\n}\n\n// RoleBindingInterface has methods to work with RoleBinding resources.\ntype RoleBindingInterface interface {\n\tCreate(ctx context.Context, roleBinding *rbacv1alpha1.RoleBinding, opts v1.CreateOptions) (*rbacv1alpha1.RoleBinding, error)\n\tUpdate(ctx context.Context, roleBinding *rbacv1alpha1.RoleBinding, opts v1.UpdateOptions) (*rbacv1alpha1.RoleBinding, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*rbacv1alpha1.RoleBinding, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*rbacv1alpha1.RoleBindingList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *rbacv1alpha1.RoleBinding, err error)\n\tApply(ctx context.Context, roleBinding *applyconfigurationsrbacv1alpha1.RoleBindingApplyConfiguration, opts v1.ApplyOptions) (result *rbacv1alpha1.RoleBinding, err error)\n\tRoleBindingExpansion\n}\n\n// roleBindings implements RoleBindingInterface\ntype roleBindings struct {\n\t*gentype.ClientWithListAndApply[*rbacv1alpha1.RoleBinding, *rbacv1alpha1.RoleBindingList, *applyconfigurationsrbacv1alpha1.RoleBindingApplyConfiguration]\n}\n\n// newRoleBindings returns a RoleBindings\nfunc newRoleBindings(c *RbacV1alpha1Client, namespace string) *roleBindings {\n\treturn &roleBindings{\n\t\tgentype.NewClientWithListAndApply[*rbacv1alpha1.RoleBinding, *rbacv1alpha1.RoleBindingList, *applyconfigurationsrbacv1alpha1.RoleBindingApplyConfiguration](\n\t\t\t\"rolebindings\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *rbacv1alpha1.RoleBinding { return &rbacv1alpha1.RoleBinding{} },\n\t\t\tfunc() *rbacv1alpha1.RoleBindingList { return &rbacv1alpha1.RoleBindingList{} },\n\t\t\tgentype.PrefersProtobuf[*rbacv1alpha1.RoleBinding](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/clusterrole.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\trbacv1beta1 \"k8s.io/api/rbac/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsrbacv1beta1 \"k8s.io/client-go/applyconfigurations/rbac/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// ClusterRolesGetter has a method to return a ClusterRoleInterface.\n// A group's client should implement this interface.\ntype ClusterRolesGetter interface {\n\tClusterRoles() ClusterRoleInterface\n}\n\n// ClusterRoleInterface has methods to work with ClusterRole resources.\ntype ClusterRoleInterface interface {\n\tCreate(ctx context.Context, clusterRole *rbacv1beta1.ClusterRole, opts v1.CreateOptions) (*rbacv1beta1.ClusterRole, error)\n\tUpdate(ctx context.Context, clusterRole *rbacv1beta1.ClusterRole, opts v1.UpdateOptions) (*rbacv1beta1.ClusterRole, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*rbacv1beta1.ClusterRole, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*rbacv1beta1.ClusterRoleList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *rbacv1beta1.ClusterRole, err error)\n\tApply(ctx context.Context, clusterRole *applyconfigurationsrbacv1beta1.ClusterRoleApplyConfiguration, opts v1.ApplyOptions) (result *rbacv1beta1.ClusterRole, err error)\n\tClusterRoleExpansion\n}\n\n// clusterRoles implements ClusterRoleInterface\ntype clusterRoles struct {\n\t*gentype.ClientWithListAndApply[*rbacv1beta1.ClusterRole, *rbacv1beta1.ClusterRoleList, *applyconfigurationsrbacv1beta1.ClusterRoleApplyConfiguration]\n}\n\n// newClusterRoles returns a ClusterRoles\nfunc newClusterRoles(c *RbacV1beta1Client) *clusterRoles {\n\treturn &clusterRoles{\n\t\tgentype.NewClientWithListAndApply[*rbacv1beta1.ClusterRole, *rbacv1beta1.ClusterRoleList, *applyconfigurationsrbacv1beta1.ClusterRoleApplyConfiguration](\n\t\t\t\"clusterroles\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *rbacv1beta1.ClusterRole { return &rbacv1beta1.ClusterRole{} },\n\t\t\tfunc() *rbacv1beta1.ClusterRoleList { return &rbacv1beta1.ClusterRoleList{} },\n\t\t\tgentype.PrefersProtobuf[*rbacv1beta1.ClusterRole](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/clusterrolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\trbacv1beta1 \"k8s.io/api/rbac/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsrbacv1beta1 \"k8s.io/client-go/applyconfigurations/rbac/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// ClusterRoleBindingsGetter has a method to return a ClusterRoleBindingInterface.\n// A group's client should implement this interface.\ntype ClusterRoleBindingsGetter interface {\n\tClusterRoleBindings() ClusterRoleBindingInterface\n}\n\n// ClusterRoleBindingInterface has methods to work with ClusterRoleBinding resources.\ntype ClusterRoleBindingInterface interface {\n\tCreate(ctx context.Context, clusterRoleBinding *rbacv1beta1.ClusterRoleBinding, opts v1.CreateOptions) (*rbacv1beta1.ClusterRoleBinding, error)\n\tUpdate(ctx context.Context, clusterRoleBinding *rbacv1beta1.ClusterRoleBinding, opts v1.UpdateOptions) (*rbacv1beta1.ClusterRoleBinding, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*rbacv1beta1.ClusterRoleBinding, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*rbacv1beta1.ClusterRoleBindingList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *rbacv1beta1.ClusterRoleBinding, err error)\n\tApply(ctx context.Context, clusterRoleBinding *applyconfigurationsrbacv1beta1.ClusterRoleBindingApplyConfiguration, opts v1.ApplyOptions) (result *rbacv1beta1.ClusterRoleBinding, err error)\n\tClusterRoleBindingExpansion\n}\n\n// clusterRoleBindings implements ClusterRoleBindingInterface\ntype clusterRoleBindings struct {\n\t*gentype.ClientWithListAndApply[*rbacv1beta1.ClusterRoleBinding, *rbacv1beta1.ClusterRoleBindingList, *applyconfigurationsrbacv1beta1.ClusterRoleBindingApplyConfiguration]\n}\n\n// newClusterRoleBindings returns a ClusterRoleBindings\nfunc newClusterRoleBindings(c *RbacV1beta1Client) *clusterRoleBindings {\n\treturn &clusterRoleBindings{\n\t\tgentype.NewClientWithListAndApply[*rbacv1beta1.ClusterRoleBinding, *rbacv1beta1.ClusterRoleBindingList, *applyconfigurationsrbacv1beta1.ClusterRoleBindingApplyConfiguration](\n\t\t\t\"clusterrolebindings\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *rbacv1beta1.ClusterRoleBinding { return &rbacv1beta1.ClusterRoleBinding{} },\n\t\t\tfunc() *rbacv1beta1.ClusterRoleBindingList { return &rbacv1beta1.ClusterRoleBindingList{} },\n\t\t\tgentype.PrefersProtobuf[*rbacv1beta1.ClusterRoleBinding](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1beta1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_clusterrole.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/rbac/v1beta1\"\n\trbacv1beta1 \"k8s.io/client-go/applyconfigurations/rbac/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedrbacv1beta1 \"k8s.io/client-go/kubernetes/typed/rbac/v1beta1\"\n)\n\n// fakeClusterRoles implements ClusterRoleInterface\ntype fakeClusterRoles struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta1.ClusterRole, *v1beta1.ClusterRoleList, *rbacv1beta1.ClusterRoleApplyConfiguration]\n\tFake *FakeRbacV1beta1\n}\n\nfunc newFakeClusterRoles(fake *FakeRbacV1beta1) typedrbacv1beta1.ClusterRoleInterface {\n\treturn &fakeClusterRoles{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta1.ClusterRole, *v1beta1.ClusterRoleList, *rbacv1beta1.ClusterRoleApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"clusterroles\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"ClusterRole\"),\n\t\t\tfunc() *v1beta1.ClusterRole { return &v1beta1.ClusterRole{} },\n\t\t\tfunc() *v1beta1.ClusterRoleList { return &v1beta1.ClusterRoleList{} },\n\t\t\tfunc(dst, src *v1beta1.ClusterRoleList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta1.ClusterRoleList) []*v1beta1.ClusterRole { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1beta1.ClusterRoleList, items []*v1beta1.ClusterRole) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_clusterrolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/rbac/v1beta1\"\n\trbacv1beta1 \"k8s.io/client-go/applyconfigurations/rbac/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedrbacv1beta1 \"k8s.io/client-go/kubernetes/typed/rbac/v1beta1\"\n)\n\n// fakeClusterRoleBindings implements ClusterRoleBindingInterface\ntype fakeClusterRoleBindings struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta1.ClusterRoleBinding, *v1beta1.ClusterRoleBindingList, *rbacv1beta1.ClusterRoleBindingApplyConfiguration]\n\tFake *FakeRbacV1beta1\n}\n\nfunc newFakeClusterRoleBindings(fake *FakeRbacV1beta1) typedrbacv1beta1.ClusterRoleBindingInterface {\n\treturn &fakeClusterRoleBindings{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta1.ClusterRoleBinding, *v1beta1.ClusterRoleBindingList, *rbacv1beta1.ClusterRoleBindingApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"clusterrolebindings\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"ClusterRoleBinding\"),\n\t\t\tfunc() *v1beta1.ClusterRoleBinding { return &v1beta1.ClusterRoleBinding{} },\n\t\t\tfunc() *v1beta1.ClusterRoleBindingList { return &v1beta1.ClusterRoleBindingList{} },\n\t\t\tfunc(dst, src *v1beta1.ClusterRoleBindingList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta1.ClusterRoleBindingList) []*v1beta1.ClusterRoleBinding {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1beta1.ClusterRoleBindingList, items []*v1beta1.ClusterRoleBinding) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_rbac_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/client-go/kubernetes/typed/rbac/v1beta1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeRbacV1beta1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeRbacV1beta1) ClusterRoles() v1beta1.ClusterRoleInterface {\n\treturn newFakeClusterRoles(c)\n}\n\nfunc (c *FakeRbacV1beta1) ClusterRoleBindings() v1beta1.ClusterRoleBindingInterface {\n\treturn newFakeClusterRoleBindings(c)\n}\n\nfunc (c *FakeRbacV1beta1) Roles(namespace string) v1beta1.RoleInterface {\n\treturn newFakeRoles(c, namespace)\n}\n\nfunc (c *FakeRbacV1beta1) RoleBindings(namespace string) v1beta1.RoleBindingInterface {\n\treturn newFakeRoleBindings(c, namespace)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeRbacV1beta1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_role.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/rbac/v1beta1\"\n\trbacv1beta1 \"k8s.io/client-go/applyconfigurations/rbac/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedrbacv1beta1 \"k8s.io/client-go/kubernetes/typed/rbac/v1beta1\"\n)\n\n// fakeRoles implements RoleInterface\ntype fakeRoles struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta1.Role, *v1beta1.RoleList, *rbacv1beta1.RoleApplyConfiguration]\n\tFake *FakeRbacV1beta1\n}\n\nfunc newFakeRoles(fake *FakeRbacV1beta1, namespace string) typedrbacv1beta1.RoleInterface {\n\treturn &fakeRoles{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta1.Role, *v1beta1.RoleList, *rbacv1beta1.RoleApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"roles\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"Role\"),\n\t\t\tfunc() *v1beta1.Role { return &v1beta1.Role{} },\n\t\t\tfunc() *v1beta1.RoleList { return &v1beta1.RoleList{} },\n\t\t\tfunc(dst, src *v1beta1.RoleList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta1.RoleList) []*v1beta1.Role { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1beta1.RoleList, items []*v1beta1.Role) { list.Items = gentype.FromPointerSlice(items) },\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/fake_rolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/rbac/v1beta1\"\n\trbacv1beta1 \"k8s.io/client-go/applyconfigurations/rbac/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedrbacv1beta1 \"k8s.io/client-go/kubernetes/typed/rbac/v1beta1\"\n)\n\n// fakeRoleBindings implements RoleBindingInterface\ntype fakeRoleBindings struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta1.RoleBinding, *v1beta1.RoleBindingList, *rbacv1beta1.RoleBindingApplyConfiguration]\n\tFake *FakeRbacV1beta1\n}\n\nfunc newFakeRoleBindings(fake *FakeRbacV1beta1, namespace string) typedrbacv1beta1.RoleBindingInterface {\n\treturn &fakeRoleBindings{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta1.RoleBinding, *v1beta1.RoleBindingList, *rbacv1beta1.RoleBindingApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"rolebindings\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"RoleBinding\"),\n\t\t\tfunc() *v1beta1.RoleBinding { return &v1beta1.RoleBinding{} },\n\t\t\tfunc() *v1beta1.RoleBindingList { return &v1beta1.RoleBindingList{} },\n\t\t\tfunc(dst, src *v1beta1.RoleBindingList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta1.RoleBindingList) []*v1beta1.RoleBinding { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1beta1.RoleBindingList, items []*v1beta1.RoleBinding) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\ntype ClusterRoleExpansion interface{}\n\ntype ClusterRoleBindingExpansion interface{}\n\ntype RoleExpansion interface{}\n\ntype RoleBindingExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/rbac_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\thttp \"net/http\"\n\n\trbacv1beta1 \"k8s.io/api/rbac/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype RbacV1beta1Interface interface {\n\tRESTClient() rest.Interface\n\tClusterRolesGetter\n\tClusterRoleBindingsGetter\n\tRolesGetter\n\tRoleBindingsGetter\n}\n\n// RbacV1beta1Client is used to interact with features provided by the rbac.authorization.k8s.io group.\ntype RbacV1beta1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *RbacV1beta1Client) ClusterRoles() ClusterRoleInterface {\n\treturn newClusterRoles(c)\n}\n\nfunc (c *RbacV1beta1Client) ClusterRoleBindings() ClusterRoleBindingInterface {\n\treturn newClusterRoleBindings(c)\n}\n\nfunc (c *RbacV1beta1Client) Roles(namespace string) RoleInterface {\n\treturn newRoles(c, namespace)\n}\n\nfunc (c *RbacV1beta1Client) RoleBindings(namespace string) RoleBindingInterface {\n\treturn newRoleBindings(c, namespace)\n}\n\n// NewForConfig creates a new RbacV1beta1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*RbacV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new RbacV1beta1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*RbacV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &RbacV1beta1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new RbacV1beta1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *RbacV1beta1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new RbacV1beta1Client for the given RESTClient.\nfunc New(c rest.Interface) *RbacV1beta1Client {\n\treturn &RbacV1beta1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := rbacv1beta1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *RbacV1beta1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/role.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\trbacv1beta1 \"k8s.io/api/rbac/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsrbacv1beta1 \"k8s.io/client-go/applyconfigurations/rbac/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// RolesGetter has a method to return a RoleInterface.\n// A group's client should implement this interface.\ntype RolesGetter interface {\n\tRoles(namespace string) RoleInterface\n}\n\n// RoleInterface has methods to work with Role resources.\ntype RoleInterface interface {\n\tCreate(ctx context.Context, role *rbacv1beta1.Role, opts v1.CreateOptions) (*rbacv1beta1.Role, error)\n\tUpdate(ctx context.Context, role *rbacv1beta1.Role, opts v1.UpdateOptions) (*rbacv1beta1.Role, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*rbacv1beta1.Role, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*rbacv1beta1.RoleList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *rbacv1beta1.Role, err error)\n\tApply(ctx context.Context, role *applyconfigurationsrbacv1beta1.RoleApplyConfiguration, opts v1.ApplyOptions) (result *rbacv1beta1.Role, err error)\n\tRoleExpansion\n}\n\n// roles implements RoleInterface\ntype roles struct {\n\t*gentype.ClientWithListAndApply[*rbacv1beta1.Role, *rbacv1beta1.RoleList, *applyconfigurationsrbacv1beta1.RoleApplyConfiguration]\n}\n\n// newRoles returns a Roles\nfunc newRoles(c *RbacV1beta1Client, namespace string) *roles {\n\treturn &roles{\n\t\tgentype.NewClientWithListAndApply[*rbacv1beta1.Role, *rbacv1beta1.RoleList, *applyconfigurationsrbacv1beta1.RoleApplyConfiguration](\n\t\t\t\"roles\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *rbacv1beta1.Role { return &rbacv1beta1.Role{} },\n\t\t\tfunc() *rbacv1beta1.RoleList { return &rbacv1beta1.RoleList{} },\n\t\t\tgentype.PrefersProtobuf[*rbacv1beta1.Role](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/rolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\trbacv1beta1 \"k8s.io/api/rbac/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsrbacv1beta1 \"k8s.io/client-go/applyconfigurations/rbac/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// RoleBindingsGetter has a method to return a RoleBindingInterface.\n// A group's client should implement this interface.\ntype RoleBindingsGetter interface {\n\tRoleBindings(namespace string) RoleBindingInterface\n}\n\n// RoleBindingInterface has methods to work with RoleBinding resources.\ntype RoleBindingInterface interface {\n\tCreate(ctx context.Context, roleBinding *rbacv1beta1.RoleBinding, opts v1.CreateOptions) (*rbacv1beta1.RoleBinding, error)\n\tUpdate(ctx context.Context, roleBinding *rbacv1beta1.RoleBinding, opts v1.UpdateOptions) (*rbacv1beta1.RoleBinding, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*rbacv1beta1.RoleBinding, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*rbacv1beta1.RoleBindingList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *rbacv1beta1.RoleBinding, err error)\n\tApply(ctx context.Context, roleBinding *applyconfigurationsrbacv1beta1.RoleBindingApplyConfiguration, opts v1.ApplyOptions) (result *rbacv1beta1.RoleBinding, err error)\n\tRoleBindingExpansion\n}\n\n// roleBindings implements RoleBindingInterface\ntype roleBindings struct {\n\t*gentype.ClientWithListAndApply[*rbacv1beta1.RoleBinding, *rbacv1beta1.RoleBindingList, *applyconfigurationsrbacv1beta1.RoleBindingApplyConfiguration]\n}\n\n// newRoleBindings returns a RoleBindings\nfunc newRoleBindings(c *RbacV1beta1Client, namespace string) *roleBindings {\n\treturn &roleBindings{\n\t\tgentype.NewClientWithListAndApply[*rbacv1beta1.RoleBinding, *rbacv1beta1.RoleBindingList, *applyconfigurationsrbacv1beta1.RoleBindingApplyConfiguration](\n\t\t\t\"rolebindings\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *rbacv1beta1.RoleBinding { return &rbacv1beta1.RoleBinding{} },\n\t\t\tfunc() *rbacv1beta1.RoleBindingList { return &rbacv1beta1.RoleBindingList{} },\n\t\t\tgentype.PrefersProtobuf[*rbacv1beta1.RoleBinding](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/resource/v1alpha3/deviceclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha3\n\nimport (\n\tcontext \"context\"\n\n\tresourcev1alpha3 \"k8s.io/api/resource/v1alpha3\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsresourcev1alpha3 \"k8s.io/client-go/applyconfigurations/resource/v1alpha3\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// DeviceClassesGetter has a method to return a DeviceClassInterface.\n// A group's client should implement this interface.\ntype DeviceClassesGetter interface {\n\tDeviceClasses() DeviceClassInterface\n}\n\n// DeviceClassInterface has methods to work with DeviceClass resources.\ntype DeviceClassInterface interface {\n\tCreate(ctx context.Context, deviceClass *resourcev1alpha3.DeviceClass, opts v1.CreateOptions) (*resourcev1alpha3.DeviceClass, error)\n\tUpdate(ctx context.Context, deviceClass *resourcev1alpha3.DeviceClass, opts v1.UpdateOptions) (*resourcev1alpha3.DeviceClass, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*resourcev1alpha3.DeviceClass, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*resourcev1alpha3.DeviceClassList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *resourcev1alpha3.DeviceClass, err error)\n\tApply(ctx context.Context, deviceClass *applyconfigurationsresourcev1alpha3.DeviceClassApplyConfiguration, opts v1.ApplyOptions) (result *resourcev1alpha3.DeviceClass, err error)\n\tDeviceClassExpansion\n}\n\n// deviceClasses implements DeviceClassInterface\ntype deviceClasses struct {\n\t*gentype.ClientWithListAndApply[*resourcev1alpha3.DeviceClass, *resourcev1alpha3.DeviceClassList, *applyconfigurationsresourcev1alpha3.DeviceClassApplyConfiguration]\n}\n\n// newDeviceClasses returns a DeviceClasses\nfunc newDeviceClasses(c *ResourceV1alpha3Client) *deviceClasses {\n\treturn &deviceClasses{\n\t\tgentype.NewClientWithListAndApply[*resourcev1alpha3.DeviceClass, *resourcev1alpha3.DeviceClassList, *applyconfigurationsresourcev1alpha3.DeviceClassApplyConfiguration](\n\t\t\t\"deviceclasses\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *resourcev1alpha3.DeviceClass { return &resourcev1alpha3.DeviceClass{} },\n\t\t\tfunc() *resourcev1alpha3.DeviceClassList { return &resourcev1alpha3.DeviceClassList{} },\n\t\t\tgentype.PrefersProtobuf[*resourcev1alpha3.DeviceClass](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/resource/v1alpha3/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1alpha3\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/resource/v1alpha3/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/resource/v1alpha3/fake/fake_deviceclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha3 \"k8s.io/api/resource/v1alpha3\"\n\tresourcev1alpha3 \"k8s.io/client-go/applyconfigurations/resource/v1alpha3\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedresourcev1alpha3 \"k8s.io/client-go/kubernetes/typed/resource/v1alpha3\"\n)\n\n// fakeDeviceClasses implements DeviceClassInterface\ntype fakeDeviceClasses struct {\n\t*gentype.FakeClientWithListAndApply[*v1alpha3.DeviceClass, *v1alpha3.DeviceClassList, *resourcev1alpha3.DeviceClassApplyConfiguration]\n\tFake *FakeResourceV1alpha3\n}\n\nfunc newFakeDeviceClasses(fake *FakeResourceV1alpha3) typedresourcev1alpha3.DeviceClassInterface {\n\treturn &fakeDeviceClasses{\n\t\tgentype.NewFakeClientWithListAndApply[*v1alpha3.DeviceClass, *v1alpha3.DeviceClassList, *resourcev1alpha3.DeviceClassApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1alpha3.SchemeGroupVersion.WithResource(\"deviceclasses\"),\n\t\t\tv1alpha3.SchemeGroupVersion.WithKind(\"DeviceClass\"),\n\t\t\tfunc() *v1alpha3.DeviceClass { return &v1alpha3.DeviceClass{} },\n\t\t\tfunc() *v1alpha3.DeviceClassList { return &v1alpha3.DeviceClassList{} },\n\t\t\tfunc(dst, src *v1alpha3.DeviceClassList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1alpha3.DeviceClassList) []*v1alpha3.DeviceClass {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1alpha3.DeviceClassList, items []*v1alpha3.DeviceClass) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/resource/v1alpha3/fake/fake_resource_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha3 \"k8s.io/client-go/kubernetes/typed/resource/v1alpha3\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeResourceV1alpha3 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeResourceV1alpha3) DeviceClasses() v1alpha3.DeviceClassInterface {\n\treturn newFakeDeviceClasses(c)\n}\n\nfunc (c *FakeResourceV1alpha3) ResourceClaims(namespace string) v1alpha3.ResourceClaimInterface {\n\treturn newFakeResourceClaims(c, namespace)\n}\n\nfunc (c *FakeResourceV1alpha3) ResourceClaimTemplates(namespace string) v1alpha3.ResourceClaimTemplateInterface {\n\treturn newFakeResourceClaimTemplates(c, namespace)\n}\n\nfunc (c *FakeResourceV1alpha3) ResourceSlices() v1alpha3.ResourceSliceInterface {\n\treturn newFakeResourceSlices(c)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeResourceV1alpha3) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/resource/v1alpha3/fake/fake_resourceclaim.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha3 \"k8s.io/api/resource/v1alpha3\"\n\tresourcev1alpha3 \"k8s.io/client-go/applyconfigurations/resource/v1alpha3\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedresourcev1alpha3 \"k8s.io/client-go/kubernetes/typed/resource/v1alpha3\"\n)\n\n// fakeResourceClaims implements ResourceClaimInterface\ntype fakeResourceClaims struct {\n\t*gentype.FakeClientWithListAndApply[*v1alpha3.ResourceClaim, *v1alpha3.ResourceClaimList, *resourcev1alpha3.ResourceClaimApplyConfiguration]\n\tFake *FakeResourceV1alpha3\n}\n\nfunc newFakeResourceClaims(fake *FakeResourceV1alpha3, namespace string) typedresourcev1alpha3.ResourceClaimInterface {\n\treturn &fakeResourceClaims{\n\t\tgentype.NewFakeClientWithListAndApply[*v1alpha3.ResourceClaim, *v1alpha3.ResourceClaimList, *resourcev1alpha3.ResourceClaimApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1alpha3.SchemeGroupVersion.WithResource(\"resourceclaims\"),\n\t\t\tv1alpha3.SchemeGroupVersion.WithKind(\"ResourceClaim\"),\n\t\t\tfunc() *v1alpha3.ResourceClaim { return &v1alpha3.ResourceClaim{} },\n\t\t\tfunc() *v1alpha3.ResourceClaimList { return &v1alpha3.ResourceClaimList{} },\n\t\t\tfunc(dst, src *v1alpha3.ResourceClaimList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1alpha3.ResourceClaimList) []*v1alpha3.ResourceClaim {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1alpha3.ResourceClaimList, items []*v1alpha3.ResourceClaim) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/resource/v1alpha3/fake/fake_resourceclaimtemplate.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha3 \"k8s.io/api/resource/v1alpha3\"\n\tresourcev1alpha3 \"k8s.io/client-go/applyconfigurations/resource/v1alpha3\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedresourcev1alpha3 \"k8s.io/client-go/kubernetes/typed/resource/v1alpha3\"\n)\n\n// fakeResourceClaimTemplates implements ResourceClaimTemplateInterface\ntype fakeResourceClaimTemplates struct {\n\t*gentype.FakeClientWithListAndApply[*v1alpha3.ResourceClaimTemplate, *v1alpha3.ResourceClaimTemplateList, *resourcev1alpha3.ResourceClaimTemplateApplyConfiguration]\n\tFake *FakeResourceV1alpha3\n}\n\nfunc newFakeResourceClaimTemplates(fake *FakeResourceV1alpha3, namespace string) typedresourcev1alpha3.ResourceClaimTemplateInterface {\n\treturn &fakeResourceClaimTemplates{\n\t\tgentype.NewFakeClientWithListAndApply[*v1alpha3.ResourceClaimTemplate, *v1alpha3.ResourceClaimTemplateList, *resourcev1alpha3.ResourceClaimTemplateApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1alpha3.SchemeGroupVersion.WithResource(\"resourceclaimtemplates\"),\n\t\t\tv1alpha3.SchemeGroupVersion.WithKind(\"ResourceClaimTemplate\"),\n\t\t\tfunc() *v1alpha3.ResourceClaimTemplate { return &v1alpha3.ResourceClaimTemplate{} },\n\t\t\tfunc() *v1alpha3.ResourceClaimTemplateList { return &v1alpha3.ResourceClaimTemplateList{} },\n\t\t\tfunc(dst, src *v1alpha3.ResourceClaimTemplateList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1alpha3.ResourceClaimTemplateList) []*v1alpha3.ResourceClaimTemplate {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1alpha3.ResourceClaimTemplateList, items []*v1alpha3.ResourceClaimTemplate) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/resource/v1alpha3/fake/fake_resourceslice.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha3 \"k8s.io/api/resource/v1alpha3\"\n\tresourcev1alpha3 \"k8s.io/client-go/applyconfigurations/resource/v1alpha3\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedresourcev1alpha3 \"k8s.io/client-go/kubernetes/typed/resource/v1alpha3\"\n)\n\n// fakeResourceSlices implements ResourceSliceInterface\ntype fakeResourceSlices struct {\n\t*gentype.FakeClientWithListAndApply[*v1alpha3.ResourceSlice, *v1alpha3.ResourceSliceList, *resourcev1alpha3.ResourceSliceApplyConfiguration]\n\tFake *FakeResourceV1alpha3\n}\n\nfunc newFakeResourceSlices(fake *FakeResourceV1alpha3) typedresourcev1alpha3.ResourceSliceInterface {\n\treturn &fakeResourceSlices{\n\t\tgentype.NewFakeClientWithListAndApply[*v1alpha3.ResourceSlice, *v1alpha3.ResourceSliceList, *resourcev1alpha3.ResourceSliceApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1alpha3.SchemeGroupVersion.WithResource(\"resourceslices\"),\n\t\t\tv1alpha3.SchemeGroupVersion.WithKind(\"ResourceSlice\"),\n\t\t\tfunc() *v1alpha3.ResourceSlice { return &v1alpha3.ResourceSlice{} },\n\t\t\tfunc() *v1alpha3.ResourceSliceList { return &v1alpha3.ResourceSliceList{} },\n\t\t\tfunc(dst, src *v1alpha3.ResourceSliceList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1alpha3.ResourceSliceList) []*v1alpha3.ResourceSlice {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1alpha3.ResourceSliceList, items []*v1alpha3.ResourceSlice) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/resource/v1alpha3/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha3\n\ntype DeviceClassExpansion interface{}\n\ntype ResourceClaimExpansion interface{}\n\ntype ResourceClaimTemplateExpansion interface{}\n\ntype ResourceSliceExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/resource/v1alpha3/resource_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha3\n\nimport (\n\thttp \"net/http\"\n\n\tresourcev1alpha3 \"k8s.io/api/resource/v1alpha3\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype ResourceV1alpha3Interface interface {\n\tRESTClient() rest.Interface\n\tDeviceClassesGetter\n\tResourceClaimsGetter\n\tResourceClaimTemplatesGetter\n\tResourceSlicesGetter\n}\n\n// ResourceV1alpha3Client is used to interact with features provided by the resource.k8s.io group.\ntype ResourceV1alpha3Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *ResourceV1alpha3Client) DeviceClasses() DeviceClassInterface {\n\treturn newDeviceClasses(c)\n}\n\nfunc (c *ResourceV1alpha3Client) ResourceClaims(namespace string) ResourceClaimInterface {\n\treturn newResourceClaims(c, namespace)\n}\n\nfunc (c *ResourceV1alpha3Client) ResourceClaimTemplates(namespace string) ResourceClaimTemplateInterface {\n\treturn newResourceClaimTemplates(c, namespace)\n}\n\nfunc (c *ResourceV1alpha3Client) ResourceSlices() ResourceSliceInterface {\n\treturn newResourceSlices(c)\n}\n\n// NewForConfig creates a new ResourceV1alpha3Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*ResourceV1alpha3Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new ResourceV1alpha3Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*ResourceV1alpha3Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &ResourceV1alpha3Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new ResourceV1alpha3Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *ResourceV1alpha3Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new ResourceV1alpha3Client for the given RESTClient.\nfunc New(c rest.Interface) *ResourceV1alpha3Client {\n\treturn &ResourceV1alpha3Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := resourcev1alpha3.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *ResourceV1alpha3Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/resource/v1alpha3/resourceclaim.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha3\n\nimport (\n\tcontext \"context\"\n\n\tresourcev1alpha3 \"k8s.io/api/resource/v1alpha3\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsresourcev1alpha3 \"k8s.io/client-go/applyconfigurations/resource/v1alpha3\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// ResourceClaimsGetter has a method to return a ResourceClaimInterface.\n// A group's client should implement this interface.\ntype ResourceClaimsGetter interface {\n\tResourceClaims(namespace string) ResourceClaimInterface\n}\n\n// ResourceClaimInterface has methods to work with ResourceClaim resources.\ntype ResourceClaimInterface interface {\n\tCreate(ctx context.Context, resourceClaim *resourcev1alpha3.ResourceClaim, opts v1.CreateOptions) (*resourcev1alpha3.ResourceClaim, error)\n\tUpdate(ctx context.Context, resourceClaim *resourcev1alpha3.ResourceClaim, opts v1.UpdateOptions) (*resourcev1alpha3.ResourceClaim, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, resourceClaim *resourcev1alpha3.ResourceClaim, opts v1.UpdateOptions) (*resourcev1alpha3.ResourceClaim, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*resourcev1alpha3.ResourceClaim, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*resourcev1alpha3.ResourceClaimList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *resourcev1alpha3.ResourceClaim, err error)\n\tApply(ctx context.Context, resourceClaim *applyconfigurationsresourcev1alpha3.ResourceClaimApplyConfiguration, opts v1.ApplyOptions) (result *resourcev1alpha3.ResourceClaim, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, resourceClaim *applyconfigurationsresourcev1alpha3.ResourceClaimApplyConfiguration, opts v1.ApplyOptions) (result *resourcev1alpha3.ResourceClaim, err error)\n\tResourceClaimExpansion\n}\n\n// resourceClaims implements ResourceClaimInterface\ntype resourceClaims struct {\n\t*gentype.ClientWithListAndApply[*resourcev1alpha3.ResourceClaim, *resourcev1alpha3.ResourceClaimList, *applyconfigurationsresourcev1alpha3.ResourceClaimApplyConfiguration]\n}\n\n// newResourceClaims returns a ResourceClaims\nfunc newResourceClaims(c *ResourceV1alpha3Client, namespace string) *resourceClaims {\n\treturn &resourceClaims{\n\t\tgentype.NewClientWithListAndApply[*resourcev1alpha3.ResourceClaim, *resourcev1alpha3.ResourceClaimList, *applyconfigurationsresourcev1alpha3.ResourceClaimApplyConfiguration](\n\t\t\t\"resourceclaims\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *resourcev1alpha3.ResourceClaim { return &resourcev1alpha3.ResourceClaim{} },\n\t\t\tfunc() *resourcev1alpha3.ResourceClaimList { return &resourcev1alpha3.ResourceClaimList{} },\n\t\t\tgentype.PrefersProtobuf[*resourcev1alpha3.ResourceClaim](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/resource/v1alpha3/resourceclaimtemplate.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha3\n\nimport (\n\tcontext \"context\"\n\n\tresourcev1alpha3 \"k8s.io/api/resource/v1alpha3\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsresourcev1alpha3 \"k8s.io/client-go/applyconfigurations/resource/v1alpha3\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// ResourceClaimTemplatesGetter has a method to return a ResourceClaimTemplateInterface.\n// A group's client should implement this interface.\ntype ResourceClaimTemplatesGetter interface {\n\tResourceClaimTemplates(namespace string) ResourceClaimTemplateInterface\n}\n\n// ResourceClaimTemplateInterface has methods to work with ResourceClaimTemplate resources.\ntype ResourceClaimTemplateInterface interface {\n\tCreate(ctx context.Context, resourceClaimTemplate *resourcev1alpha3.ResourceClaimTemplate, opts v1.CreateOptions) (*resourcev1alpha3.ResourceClaimTemplate, error)\n\tUpdate(ctx context.Context, resourceClaimTemplate *resourcev1alpha3.ResourceClaimTemplate, opts v1.UpdateOptions) (*resourcev1alpha3.ResourceClaimTemplate, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*resourcev1alpha3.ResourceClaimTemplate, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*resourcev1alpha3.ResourceClaimTemplateList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *resourcev1alpha3.ResourceClaimTemplate, err error)\n\tApply(ctx context.Context, resourceClaimTemplate *applyconfigurationsresourcev1alpha3.ResourceClaimTemplateApplyConfiguration, opts v1.ApplyOptions) (result *resourcev1alpha3.ResourceClaimTemplate, err error)\n\tResourceClaimTemplateExpansion\n}\n\n// resourceClaimTemplates implements ResourceClaimTemplateInterface\ntype resourceClaimTemplates struct {\n\t*gentype.ClientWithListAndApply[*resourcev1alpha3.ResourceClaimTemplate, *resourcev1alpha3.ResourceClaimTemplateList, *applyconfigurationsresourcev1alpha3.ResourceClaimTemplateApplyConfiguration]\n}\n\n// newResourceClaimTemplates returns a ResourceClaimTemplates\nfunc newResourceClaimTemplates(c *ResourceV1alpha3Client, namespace string) *resourceClaimTemplates {\n\treturn &resourceClaimTemplates{\n\t\tgentype.NewClientWithListAndApply[*resourcev1alpha3.ResourceClaimTemplate, *resourcev1alpha3.ResourceClaimTemplateList, *applyconfigurationsresourcev1alpha3.ResourceClaimTemplateApplyConfiguration](\n\t\t\t\"resourceclaimtemplates\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *resourcev1alpha3.ResourceClaimTemplate { return &resourcev1alpha3.ResourceClaimTemplate{} },\n\t\t\tfunc() *resourcev1alpha3.ResourceClaimTemplateList {\n\t\t\t\treturn &resourcev1alpha3.ResourceClaimTemplateList{}\n\t\t\t},\n\t\t\tgentype.PrefersProtobuf[*resourcev1alpha3.ResourceClaimTemplate](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/resource/v1alpha3/resourceslice.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha3\n\nimport (\n\tcontext \"context\"\n\n\tresourcev1alpha3 \"k8s.io/api/resource/v1alpha3\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsresourcev1alpha3 \"k8s.io/client-go/applyconfigurations/resource/v1alpha3\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// ResourceSlicesGetter has a method to return a ResourceSliceInterface.\n// A group's client should implement this interface.\ntype ResourceSlicesGetter interface {\n\tResourceSlices() ResourceSliceInterface\n}\n\n// ResourceSliceInterface has methods to work with ResourceSlice resources.\ntype ResourceSliceInterface interface {\n\tCreate(ctx context.Context, resourceSlice *resourcev1alpha3.ResourceSlice, opts v1.CreateOptions) (*resourcev1alpha3.ResourceSlice, error)\n\tUpdate(ctx context.Context, resourceSlice *resourcev1alpha3.ResourceSlice, opts v1.UpdateOptions) (*resourcev1alpha3.ResourceSlice, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*resourcev1alpha3.ResourceSlice, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*resourcev1alpha3.ResourceSliceList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *resourcev1alpha3.ResourceSlice, err error)\n\tApply(ctx context.Context, resourceSlice *applyconfigurationsresourcev1alpha3.ResourceSliceApplyConfiguration, opts v1.ApplyOptions) (result *resourcev1alpha3.ResourceSlice, err error)\n\tResourceSliceExpansion\n}\n\n// resourceSlices implements ResourceSliceInterface\ntype resourceSlices struct {\n\t*gentype.ClientWithListAndApply[*resourcev1alpha3.ResourceSlice, *resourcev1alpha3.ResourceSliceList, *applyconfigurationsresourcev1alpha3.ResourceSliceApplyConfiguration]\n}\n\n// newResourceSlices returns a ResourceSlices\nfunc newResourceSlices(c *ResourceV1alpha3Client) *resourceSlices {\n\treturn &resourceSlices{\n\t\tgentype.NewClientWithListAndApply[*resourcev1alpha3.ResourceSlice, *resourcev1alpha3.ResourceSliceList, *applyconfigurationsresourcev1alpha3.ResourceSliceApplyConfiguration](\n\t\t\t\"resourceslices\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *resourcev1alpha3.ResourceSlice { return &resourcev1alpha3.ResourceSlice{} },\n\t\t\tfunc() *resourcev1alpha3.ResourceSliceList { return &resourcev1alpha3.ResourceSliceList{} },\n\t\t\tgentype.PrefersProtobuf[*resourcev1alpha3.ResourceSlice](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/resource/v1beta1/deviceclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\tresourcev1beta1 \"k8s.io/api/resource/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsresourcev1beta1 \"k8s.io/client-go/applyconfigurations/resource/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// DeviceClassesGetter has a method to return a DeviceClassInterface.\n// A group's client should implement this interface.\ntype DeviceClassesGetter interface {\n\tDeviceClasses() DeviceClassInterface\n}\n\n// DeviceClassInterface has methods to work with DeviceClass resources.\ntype DeviceClassInterface interface {\n\tCreate(ctx context.Context, deviceClass *resourcev1beta1.DeviceClass, opts v1.CreateOptions) (*resourcev1beta1.DeviceClass, error)\n\tUpdate(ctx context.Context, deviceClass *resourcev1beta1.DeviceClass, opts v1.UpdateOptions) (*resourcev1beta1.DeviceClass, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*resourcev1beta1.DeviceClass, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*resourcev1beta1.DeviceClassList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *resourcev1beta1.DeviceClass, err error)\n\tApply(ctx context.Context, deviceClass *applyconfigurationsresourcev1beta1.DeviceClassApplyConfiguration, opts v1.ApplyOptions) (result *resourcev1beta1.DeviceClass, err error)\n\tDeviceClassExpansion\n}\n\n// deviceClasses implements DeviceClassInterface\ntype deviceClasses struct {\n\t*gentype.ClientWithListAndApply[*resourcev1beta1.DeviceClass, *resourcev1beta1.DeviceClassList, *applyconfigurationsresourcev1beta1.DeviceClassApplyConfiguration]\n}\n\n// newDeviceClasses returns a DeviceClasses\nfunc newDeviceClasses(c *ResourceV1beta1Client) *deviceClasses {\n\treturn &deviceClasses{\n\t\tgentype.NewClientWithListAndApply[*resourcev1beta1.DeviceClass, *resourcev1beta1.DeviceClassList, *applyconfigurationsresourcev1beta1.DeviceClassApplyConfiguration](\n\t\t\t\"deviceclasses\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *resourcev1beta1.DeviceClass { return &resourcev1beta1.DeviceClass{} },\n\t\t\tfunc() *resourcev1beta1.DeviceClassList { return &resourcev1beta1.DeviceClassList{} },\n\t\t\tgentype.PrefersProtobuf[*resourcev1beta1.DeviceClass](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/resource/v1beta1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1beta1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/resource/v1beta1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/resource/v1beta1/fake/fake_deviceclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/resource/v1beta1\"\n\tresourcev1beta1 \"k8s.io/client-go/applyconfigurations/resource/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedresourcev1beta1 \"k8s.io/client-go/kubernetes/typed/resource/v1beta1\"\n)\n\n// fakeDeviceClasses implements DeviceClassInterface\ntype fakeDeviceClasses struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta1.DeviceClass, *v1beta1.DeviceClassList, *resourcev1beta1.DeviceClassApplyConfiguration]\n\tFake *FakeResourceV1beta1\n}\n\nfunc newFakeDeviceClasses(fake *FakeResourceV1beta1) typedresourcev1beta1.DeviceClassInterface {\n\treturn &fakeDeviceClasses{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta1.DeviceClass, *v1beta1.DeviceClassList, *resourcev1beta1.DeviceClassApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"deviceclasses\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"DeviceClass\"),\n\t\t\tfunc() *v1beta1.DeviceClass { return &v1beta1.DeviceClass{} },\n\t\t\tfunc() *v1beta1.DeviceClassList { return &v1beta1.DeviceClassList{} },\n\t\t\tfunc(dst, src *v1beta1.DeviceClassList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta1.DeviceClassList) []*v1beta1.DeviceClass { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1beta1.DeviceClassList, items []*v1beta1.DeviceClass) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/resource/v1beta1/fake/fake_resource_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/client-go/kubernetes/typed/resource/v1beta1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeResourceV1beta1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeResourceV1beta1) DeviceClasses() v1beta1.DeviceClassInterface {\n\treturn newFakeDeviceClasses(c)\n}\n\nfunc (c *FakeResourceV1beta1) ResourceClaims(namespace string) v1beta1.ResourceClaimInterface {\n\treturn newFakeResourceClaims(c, namespace)\n}\n\nfunc (c *FakeResourceV1beta1) ResourceClaimTemplates(namespace string) v1beta1.ResourceClaimTemplateInterface {\n\treturn newFakeResourceClaimTemplates(c, namespace)\n}\n\nfunc (c *FakeResourceV1beta1) ResourceSlices() v1beta1.ResourceSliceInterface {\n\treturn newFakeResourceSlices(c)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeResourceV1beta1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/resource/v1beta1/fake/fake_resourceclaim.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/resource/v1beta1\"\n\tresourcev1beta1 \"k8s.io/client-go/applyconfigurations/resource/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedresourcev1beta1 \"k8s.io/client-go/kubernetes/typed/resource/v1beta1\"\n)\n\n// fakeResourceClaims implements ResourceClaimInterface\ntype fakeResourceClaims struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta1.ResourceClaim, *v1beta1.ResourceClaimList, *resourcev1beta1.ResourceClaimApplyConfiguration]\n\tFake *FakeResourceV1beta1\n}\n\nfunc newFakeResourceClaims(fake *FakeResourceV1beta1, namespace string) typedresourcev1beta1.ResourceClaimInterface {\n\treturn &fakeResourceClaims{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta1.ResourceClaim, *v1beta1.ResourceClaimList, *resourcev1beta1.ResourceClaimApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"resourceclaims\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"ResourceClaim\"),\n\t\t\tfunc() *v1beta1.ResourceClaim { return &v1beta1.ResourceClaim{} },\n\t\t\tfunc() *v1beta1.ResourceClaimList { return &v1beta1.ResourceClaimList{} },\n\t\t\tfunc(dst, src *v1beta1.ResourceClaimList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta1.ResourceClaimList) []*v1beta1.ResourceClaim {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1beta1.ResourceClaimList, items []*v1beta1.ResourceClaim) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/resource/v1beta1/fake/fake_resourceclaimtemplate.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/resource/v1beta1\"\n\tresourcev1beta1 \"k8s.io/client-go/applyconfigurations/resource/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedresourcev1beta1 \"k8s.io/client-go/kubernetes/typed/resource/v1beta1\"\n)\n\n// fakeResourceClaimTemplates implements ResourceClaimTemplateInterface\ntype fakeResourceClaimTemplates struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta1.ResourceClaimTemplate, *v1beta1.ResourceClaimTemplateList, *resourcev1beta1.ResourceClaimTemplateApplyConfiguration]\n\tFake *FakeResourceV1beta1\n}\n\nfunc newFakeResourceClaimTemplates(fake *FakeResourceV1beta1, namespace string) typedresourcev1beta1.ResourceClaimTemplateInterface {\n\treturn &fakeResourceClaimTemplates{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta1.ResourceClaimTemplate, *v1beta1.ResourceClaimTemplateList, *resourcev1beta1.ResourceClaimTemplateApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"resourceclaimtemplates\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"ResourceClaimTemplate\"),\n\t\t\tfunc() *v1beta1.ResourceClaimTemplate { return &v1beta1.ResourceClaimTemplate{} },\n\t\t\tfunc() *v1beta1.ResourceClaimTemplateList { return &v1beta1.ResourceClaimTemplateList{} },\n\t\t\tfunc(dst, src *v1beta1.ResourceClaimTemplateList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta1.ResourceClaimTemplateList) []*v1beta1.ResourceClaimTemplate {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1beta1.ResourceClaimTemplateList, items []*v1beta1.ResourceClaimTemplate) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/resource/v1beta1/fake/fake_resourceslice.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/resource/v1beta1\"\n\tresourcev1beta1 \"k8s.io/client-go/applyconfigurations/resource/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedresourcev1beta1 \"k8s.io/client-go/kubernetes/typed/resource/v1beta1\"\n)\n\n// fakeResourceSlices implements ResourceSliceInterface\ntype fakeResourceSlices struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta1.ResourceSlice, *v1beta1.ResourceSliceList, *resourcev1beta1.ResourceSliceApplyConfiguration]\n\tFake *FakeResourceV1beta1\n}\n\nfunc newFakeResourceSlices(fake *FakeResourceV1beta1) typedresourcev1beta1.ResourceSliceInterface {\n\treturn &fakeResourceSlices{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta1.ResourceSlice, *v1beta1.ResourceSliceList, *resourcev1beta1.ResourceSliceApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"resourceslices\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"ResourceSlice\"),\n\t\t\tfunc() *v1beta1.ResourceSlice { return &v1beta1.ResourceSlice{} },\n\t\t\tfunc() *v1beta1.ResourceSliceList { return &v1beta1.ResourceSliceList{} },\n\t\t\tfunc(dst, src *v1beta1.ResourceSliceList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta1.ResourceSliceList) []*v1beta1.ResourceSlice {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1beta1.ResourceSliceList, items []*v1beta1.ResourceSlice) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/resource/v1beta1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\ntype DeviceClassExpansion interface{}\n\ntype ResourceClaimExpansion interface{}\n\ntype ResourceClaimTemplateExpansion interface{}\n\ntype ResourceSliceExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/resource/v1beta1/resource_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\thttp \"net/http\"\n\n\tresourcev1beta1 \"k8s.io/api/resource/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype ResourceV1beta1Interface interface {\n\tRESTClient() rest.Interface\n\tDeviceClassesGetter\n\tResourceClaimsGetter\n\tResourceClaimTemplatesGetter\n\tResourceSlicesGetter\n}\n\n// ResourceV1beta1Client is used to interact with features provided by the resource.k8s.io group.\ntype ResourceV1beta1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *ResourceV1beta1Client) DeviceClasses() DeviceClassInterface {\n\treturn newDeviceClasses(c)\n}\n\nfunc (c *ResourceV1beta1Client) ResourceClaims(namespace string) ResourceClaimInterface {\n\treturn newResourceClaims(c, namespace)\n}\n\nfunc (c *ResourceV1beta1Client) ResourceClaimTemplates(namespace string) ResourceClaimTemplateInterface {\n\treturn newResourceClaimTemplates(c, namespace)\n}\n\nfunc (c *ResourceV1beta1Client) ResourceSlices() ResourceSliceInterface {\n\treturn newResourceSlices(c)\n}\n\n// NewForConfig creates a new ResourceV1beta1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*ResourceV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new ResourceV1beta1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*ResourceV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &ResourceV1beta1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new ResourceV1beta1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *ResourceV1beta1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new ResourceV1beta1Client for the given RESTClient.\nfunc New(c rest.Interface) *ResourceV1beta1Client {\n\treturn &ResourceV1beta1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := resourcev1beta1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *ResourceV1beta1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/resource/v1beta1/resourceclaim.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\tresourcev1beta1 \"k8s.io/api/resource/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsresourcev1beta1 \"k8s.io/client-go/applyconfigurations/resource/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// ResourceClaimsGetter has a method to return a ResourceClaimInterface.\n// A group's client should implement this interface.\ntype ResourceClaimsGetter interface {\n\tResourceClaims(namespace string) ResourceClaimInterface\n}\n\n// ResourceClaimInterface has methods to work with ResourceClaim resources.\ntype ResourceClaimInterface interface {\n\tCreate(ctx context.Context, resourceClaim *resourcev1beta1.ResourceClaim, opts v1.CreateOptions) (*resourcev1beta1.ResourceClaim, error)\n\tUpdate(ctx context.Context, resourceClaim *resourcev1beta1.ResourceClaim, opts v1.UpdateOptions) (*resourcev1beta1.ResourceClaim, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, resourceClaim *resourcev1beta1.ResourceClaim, opts v1.UpdateOptions) (*resourcev1beta1.ResourceClaim, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*resourcev1beta1.ResourceClaim, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*resourcev1beta1.ResourceClaimList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *resourcev1beta1.ResourceClaim, err error)\n\tApply(ctx context.Context, resourceClaim *applyconfigurationsresourcev1beta1.ResourceClaimApplyConfiguration, opts v1.ApplyOptions) (result *resourcev1beta1.ResourceClaim, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, resourceClaim *applyconfigurationsresourcev1beta1.ResourceClaimApplyConfiguration, opts v1.ApplyOptions) (result *resourcev1beta1.ResourceClaim, err error)\n\tResourceClaimExpansion\n}\n\n// resourceClaims implements ResourceClaimInterface\ntype resourceClaims struct {\n\t*gentype.ClientWithListAndApply[*resourcev1beta1.ResourceClaim, *resourcev1beta1.ResourceClaimList, *applyconfigurationsresourcev1beta1.ResourceClaimApplyConfiguration]\n}\n\n// newResourceClaims returns a ResourceClaims\nfunc newResourceClaims(c *ResourceV1beta1Client, namespace string) *resourceClaims {\n\treturn &resourceClaims{\n\t\tgentype.NewClientWithListAndApply[*resourcev1beta1.ResourceClaim, *resourcev1beta1.ResourceClaimList, *applyconfigurationsresourcev1beta1.ResourceClaimApplyConfiguration](\n\t\t\t\"resourceclaims\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *resourcev1beta1.ResourceClaim { return &resourcev1beta1.ResourceClaim{} },\n\t\t\tfunc() *resourcev1beta1.ResourceClaimList { return &resourcev1beta1.ResourceClaimList{} },\n\t\t\tgentype.PrefersProtobuf[*resourcev1beta1.ResourceClaim](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/resource/v1beta1/resourceclaimtemplate.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\tresourcev1beta1 \"k8s.io/api/resource/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsresourcev1beta1 \"k8s.io/client-go/applyconfigurations/resource/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// ResourceClaimTemplatesGetter has a method to return a ResourceClaimTemplateInterface.\n// A group's client should implement this interface.\ntype ResourceClaimTemplatesGetter interface {\n\tResourceClaimTemplates(namespace string) ResourceClaimTemplateInterface\n}\n\n// ResourceClaimTemplateInterface has methods to work with ResourceClaimTemplate resources.\ntype ResourceClaimTemplateInterface interface {\n\tCreate(ctx context.Context, resourceClaimTemplate *resourcev1beta1.ResourceClaimTemplate, opts v1.CreateOptions) (*resourcev1beta1.ResourceClaimTemplate, error)\n\tUpdate(ctx context.Context, resourceClaimTemplate *resourcev1beta1.ResourceClaimTemplate, opts v1.UpdateOptions) (*resourcev1beta1.ResourceClaimTemplate, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*resourcev1beta1.ResourceClaimTemplate, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*resourcev1beta1.ResourceClaimTemplateList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *resourcev1beta1.ResourceClaimTemplate, err error)\n\tApply(ctx context.Context, resourceClaimTemplate *applyconfigurationsresourcev1beta1.ResourceClaimTemplateApplyConfiguration, opts v1.ApplyOptions) (result *resourcev1beta1.ResourceClaimTemplate, err error)\n\tResourceClaimTemplateExpansion\n}\n\n// resourceClaimTemplates implements ResourceClaimTemplateInterface\ntype resourceClaimTemplates struct {\n\t*gentype.ClientWithListAndApply[*resourcev1beta1.ResourceClaimTemplate, *resourcev1beta1.ResourceClaimTemplateList, *applyconfigurationsresourcev1beta1.ResourceClaimTemplateApplyConfiguration]\n}\n\n// newResourceClaimTemplates returns a ResourceClaimTemplates\nfunc newResourceClaimTemplates(c *ResourceV1beta1Client, namespace string) *resourceClaimTemplates {\n\treturn &resourceClaimTemplates{\n\t\tgentype.NewClientWithListAndApply[*resourcev1beta1.ResourceClaimTemplate, *resourcev1beta1.ResourceClaimTemplateList, *applyconfigurationsresourcev1beta1.ResourceClaimTemplateApplyConfiguration](\n\t\t\t\"resourceclaimtemplates\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *resourcev1beta1.ResourceClaimTemplate { return &resourcev1beta1.ResourceClaimTemplate{} },\n\t\t\tfunc() *resourcev1beta1.ResourceClaimTemplateList { return &resourcev1beta1.ResourceClaimTemplateList{} },\n\t\t\tgentype.PrefersProtobuf[*resourcev1beta1.ResourceClaimTemplate](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/resource/v1beta1/resourceslice.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\tresourcev1beta1 \"k8s.io/api/resource/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsresourcev1beta1 \"k8s.io/client-go/applyconfigurations/resource/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// ResourceSlicesGetter has a method to return a ResourceSliceInterface.\n// A group's client should implement this interface.\ntype ResourceSlicesGetter interface {\n\tResourceSlices() ResourceSliceInterface\n}\n\n// ResourceSliceInterface has methods to work with ResourceSlice resources.\ntype ResourceSliceInterface interface {\n\tCreate(ctx context.Context, resourceSlice *resourcev1beta1.ResourceSlice, opts v1.CreateOptions) (*resourcev1beta1.ResourceSlice, error)\n\tUpdate(ctx context.Context, resourceSlice *resourcev1beta1.ResourceSlice, opts v1.UpdateOptions) (*resourcev1beta1.ResourceSlice, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*resourcev1beta1.ResourceSlice, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*resourcev1beta1.ResourceSliceList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *resourcev1beta1.ResourceSlice, err error)\n\tApply(ctx context.Context, resourceSlice *applyconfigurationsresourcev1beta1.ResourceSliceApplyConfiguration, opts v1.ApplyOptions) (result *resourcev1beta1.ResourceSlice, err error)\n\tResourceSliceExpansion\n}\n\n// resourceSlices implements ResourceSliceInterface\ntype resourceSlices struct {\n\t*gentype.ClientWithListAndApply[*resourcev1beta1.ResourceSlice, *resourcev1beta1.ResourceSliceList, *applyconfigurationsresourcev1beta1.ResourceSliceApplyConfiguration]\n}\n\n// newResourceSlices returns a ResourceSlices\nfunc newResourceSlices(c *ResourceV1beta1Client) *resourceSlices {\n\treturn &resourceSlices{\n\t\tgentype.NewClientWithListAndApply[*resourcev1beta1.ResourceSlice, *resourcev1beta1.ResourceSliceList, *applyconfigurationsresourcev1beta1.ResourceSliceApplyConfiguration](\n\t\t\t\"resourceslices\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *resourcev1beta1.ResourceSlice { return &resourcev1beta1.ResourceSlice{} },\n\t\t\tfunc() *resourcev1beta1.ResourceSliceList { return &resourcev1beta1.ResourceSliceList{} },\n\t\t\tgentype.PrefersProtobuf[*resourcev1beta1.ResourceSlice](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1/fake/fake_priorityclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/scheduling/v1\"\n\tschedulingv1 \"k8s.io/client-go/applyconfigurations/scheduling/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedschedulingv1 \"k8s.io/client-go/kubernetes/typed/scheduling/v1\"\n)\n\n// fakePriorityClasses implements PriorityClassInterface\ntype fakePriorityClasses struct {\n\t*gentype.FakeClientWithListAndApply[*v1.PriorityClass, *v1.PriorityClassList, *schedulingv1.PriorityClassApplyConfiguration]\n\tFake *FakeSchedulingV1\n}\n\nfunc newFakePriorityClasses(fake *FakeSchedulingV1) typedschedulingv1.PriorityClassInterface {\n\treturn &fakePriorityClasses{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.PriorityClass, *v1.PriorityClassList, *schedulingv1.PriorityClassApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1.SchemeGroupVersion.WithResource(\"priorityclasses\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"PriorityClass\"),\n\t\t\tfunc() *v1.PriorityClass { return &v1.PriorityClass{} },\n\t\t\tfunc() *v1.PriorityClassList { return &v1.PriorityClassList{} },\n\t\t\tfunc(dst, src *v1.PriorityClassList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.PriorityClassList) []*v1.PriorityClass { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1.PriorityClassList, items []*v1.PriorityClass) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1/fake/fake_scheduling_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/client-go/kubernetes/typed/scheduling/v1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeSchedulingV1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeSchedulingV1) PriorityClasses() v1.PriorityClassInterface {\n\treturn newFakePriorityClasses(c)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeSchedulingV1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\ntype PriorityClassExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1/priorityclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tschedulingv1 \"k8s.io/api/scheduling/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsschedulingv1 \"k8s.io/client-go/applyconfigurations/scheduling/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// PriorityClassesGetter has a method to return a PriorityClassInterface.\n// A group's client should implement this interface.\ntype PriorityClassesGetter interface {\n\tPriorityClasses() PriorityClassInterface\n}\n\n// PriorityClassInterface has methods to work with PriorityClass resources.\ntype PriorityClassInterface interface {\n\tCreate(ctx context.Context, priorityClass *schedulingv1.PriorityClass, opts metav1.CreateOptions) (*schedulingv1.PriorityClass, error)\n\tUpdate(ctx context.Context, priorityClass *schedulingv1.PriorityClass, opts metav1.UpdateOptions) (*schedulingv1.PriorityClass, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*schedulingv1.PriorityClass, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*schedulingv1.PriorityClassList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *schedulingv1.PriorityClass, err error)\n\tApply(ctx context.Context, priorityClass *applyconfigurationsschedulingv1.PriorityClassApplyConfiguration, opts metav1.ApplyOptions) (result *schedulingv1.PriorityClass, err error)\n\tPriorityClassExpansion\n}\n\n// priorityClasses implements PriorityClassInterface\ntype priorityClasses struct {\n\t*gentype.ClientWithListAndApply[*schedulingv1.PriorityClass, *schedulingv1.PriorityClassList, *applyconfigurationsschedulingv1.PriorityClassApplyConfiguration]\n}\n\n// newPriorityClasses returns a PriorityClasses\nfunc newPriorityClasses(c *SchedulingV1Client) *priorityClasses {\n\treturn &priorityClasses{\n\t\tgentype.NewClientWithListAndApply[*schedulingv1.PriorityClass, *schedulingv1.PriorityClassList, *applyconfigurationsschedulingv1.PriorityClassApplyConfiguration](\n\t\t\t\"priorityclasses\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *schedulingv1.PriorityClass { return &schedulingv1.PriorityClass{} },\n\t\t\tfunc() *schedulingv1.PriorityClassList { return &schedulingv1.PriorityClassList{} },\n\t\t\tgentype.PrefersProtobuf[*schedulingv1.PriorityClass](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1/scheduling_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\thttp \"net/http\"\n\n\tschedulingv1 \"k8s.io/api/scheduling/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype SchedulingV1Interface interface {\n\tRESTClient() rest.Interface\n\tPriorityClassesGetter\n}\n\n// SchedulingV1Client is used to interact with features provided by the scheduling.k8s.io group.\ntype SchedulingV1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *SchedulingV1Client) PriorityClasses() PriorityClassInterface {\n\treturn newPriorityClasses(c)\n}\n\n// NewForConfig creates a new SchedulingV1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*SchedulingV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new SchedulingV1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*SchedulingV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &SchedulingV1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new SchedulingV1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *SchedulingV1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new SchedulingV1Client for the given RESTClient.\nfunc New(c rest.Interface) *SchedulingV1Client {\n\treturn &SchedulingV1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := schedulingv1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *SchedulingV1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1alpha1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake/fake_priorityclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha1 \"k8s.io/api/scheduling/v1alpha1\"\n\tschedulingv1alpha1 \"k8s.io/client-go/applyconfigurations/scheduling/v1alpha1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedschedulingv1alpha1 \"k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1\"\n)\n\n// fakePriorityClasses implements PriorityClassInterface\ntype fakePriorityClasses struct {\n\t*gentype.FakeClientWithListAndApply[*v1alpha1.PriorityClass, *v1alpha1.PriorityClassList, *schedulingv1alpha1.PriorityClassApplyConfiguration]\n\tFake *FakeSchedulingV1alpha1\n}\n\nfunc newFakePriorityClasses(fake *FakeSchedulingV1alpha1) typedschedulingv1alpha1.PriorityClassInterface {\n\treturn &fakePriorityClasses{\n\t\tgentype.NewFakeClientWithListAndApply[*v1alpha1.PriorityClass, *v1alpha1.PriorityClassList, *schedulingv1alpha1.PriorityClassApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1alpha1.SchemeGroupVersion.WithResource(\"priorityclasses\"),\n\t\t\tv1alpha1.SchemeGroupVersion.WithKind(\"PriorityClass\"),\n\t\t\tfunc() *v1alpha1.PriorityClass { return &v1alpha1.PriorityClass{} },\n\t\t\tfunc() *v1alpha1.PriorityClassList { return &v1alpha1.PriorityClassList{} },\n\t\t\tfunc(dst, src *v1alpha1.PriorityClassList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1alpha1.PriorityClassList) []*v1alpha1.PriorityClass {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1alpha1.PriorityClassList, items []*v1alpha1.PriorityClass) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake/fake_scheduling_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha1 \"k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeSchedulingV1alpha1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeSchedulingV1alpha1) PriorityClasses() v1alpha1.PriorityClassInterface {\n\treturn newFakePriorityClasses(c)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeSchedulingV1alpha1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\ntype PriorityClassExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/priorityclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcontext \"context\"\n\n\tschedulingv1alpha1 \"k8s.io/api/scheduling/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsschedulingv1alpha1 \"k8s.io/client-go/applyconfigurations/scheduling/v1alpha1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// PriorityClassesGetter has a method to return a PriorityClassInterface.\n// A group's client should implement this interface.\ntype PriorityClassesGetter interface {\n\tPriorityClasses() PriorityClassInterface\n}\n\n// PriorityClassInterface has methods to work with PriorityClass resources.\ntype PriorityClassInterface interface {\n\tCreate(ctx context.Context, priorityClass *schedulingv1alpha1.PriorityClass, opts v1.CreateOptions) (*schedulingv1alpha1.PriorityClass, error)\n\tUpdate(ctx context.Context, priorityClass *schedulingv1alpha1.PriorityClass, opts v1.UpdateOptions) (*schedulingv1alpha1.PriorityClass, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*schedulingv1alpha1.PriorityClass, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*schedulingv1alpha1.PriorityClassList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *schedulingv1alpha1.PriorityClass, err error)\n\tApply(ctx context.Context, priorityClass *applyconfigurationsschedulingv1alpha1.PriorityClassApplyConfiguration, opts v1.ApplyOptions) (result *schedulingv1alpha1.PriorityClass, err error)\n\tPriorityClassExpansion\n}\n\n// priorityClasses implements PriorityClassInterface\ntype priorityClasses struct {\n\t*gentype.ClientWithListAndApply[*schedulingv1alpha1.PriorityClass, *schedulingv1alpha1.PriorityClassList, *applyconfigurationsschedulingv1alpha1.PriorityClassApplyConfiguration]\n}\n\n// newPriorityClasses returns a PriorityClasses\nfunc newPriorityClasses(c *SchedulingV1alpha1Client) *priorityClasses {\n\treturn &priorityClasses{\n\t\tgentype.NewClientWithListAndApply[*schedulingv1alpha1.PriorityClass, *schedulingv1alpha1.PriorityClassList, *applyconfigurationsschedulingv1alpha1.PriorityClassApplyConfiguration](\n\t\t\t\"priorityclasses\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *schedulingv1alpha1.PriorityClass { return &schedulingv1alpha1.PriorityClass{} },\n\t\t\tfunc() *schedulingv1alpha1.PriorityClassList { return &schedulingv1alpha1.PriorityClassList{} },\n\t\t\tgentype.PrefersProtobuf[*schedulingv1alpha1.PriorityClass](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/scheduling_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\thttp \"net/http\"\n\n\tschedulingv1alpha1 \"k8s.io/api/scheduling/v1alpha1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype SchedulingV1alpha1Interface interface {\n\tRESTClient() rest.Interface\n\tPriorityClassesGetter\n}\n\n// SchedulingV1alpha1Client is used to interact with features provided by the scheduling.k8s.io group.\ntype SchedulingV1alpha1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *SchedulingV1alpha1Client) PriorityClasses() PriorityClassInterface {\n\treturn newPriorityClasses(c)\n}\n\n// NewForConfig creates a new SchedulingV1alpha1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*SchedulingV1alpha1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new SchedulingV1alpha1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*SchedulingV1alpha1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &SchedulingV1alpha1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new SchedulingV1alpha1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *SchedulingV1alpha1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new SchedulingV1alpha1Client for the given RESTClient.\nfunc New(c rest.Interface) *SchedulingV1alpha1Client {\n\treturn &SchedulingV1alpha1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := schedulingv1alpha1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *SchedulingV1alpha1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1beta1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/fake/fake_priorityclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/scheduling/v1beta1\"\n\tschedulingv1beta1 \"k8s.io/client-go/applyconfigurations/scheduling/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedschedulingv1beta1 \"k8s.io/client-go/kubernetes/typed/scheduling/v1beta1\"\n)\n\n// fakePriorityClasses implements PriorityClassInterface\ntype fakePriorityClasses struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta1.PriorityClass, *v1beta1.PriorityClassList, *schedulingv1beta1.PriorityClassApplyConfiguration]\n\tFake *FakeSchedulingV1beta1\n}\n\nfunc newFakePriorityClasses(fake *FakeSchedulingV1beta1) typedschedulingv1beta1.PriorityClassInterface {\n\treturn &fakePriorityClasses{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta1.PriorityClass, *v1beta1.PriorityClassList, *schedulingv1beta1.PriorityClassApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"priorityclasses\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"PriorityClass\"),\n\t\t\tfunc() *v1beta1.PriorityClass { return &v1beta1.PriorityClass{} },\n\t\t\tfunc() *v1beta1.PriorityClassList { return &v1beta1.PriorityClassList{} },\n\t\t\tfunc(dst, src *v1beta1.PriorityClassList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta1.PriorityClassList) []*v1beta1.PriorityClass {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1beta1.PriorityClassList, items []*v1beta1.PriorityClass) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/fake/fake_scheduling_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/client-go/kubernetes/typed/scheduling/v1beta1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeSchedulingV1beta1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeSchedulingV1beta1) PriorityClasses() v1beta1.PriorityClassInterface {\n\treturn newFakePriorityClasses(c)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeSchedulingV1beta1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\ntype PriorityClassExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/priorityclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\tschedulingv1beta1 \"k8s.io/api/scheduling/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsschedulingv1beta1 \"k8s.io/client-go/applyconfigurations/scheduling/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// PriorityClassesGetter has a method to return a PriorityClassInterface.\n// A group's client should implement this interface.\ntype PriorityClassesGetter interface {\n\tPriorityClasses() PriorityClassInterface\n}\n\n// PriorityClassInterface has methods to work with PriorityClass resources.\ntype PriorityClassInterface interface {\n\tCreate(ctx context.Context, priorityClass *schedulingv1beta1.PriorityClass, opts v1.CreateOptions) (*schedulingv1beta1.PriorityClass, error)\n\tUpdate(ctx context.Context, priorityClass *schedulingv1beta1.PriorityClass, opts v1.UpdateOptions) (*schedulingv1beta1.PriorityClass, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*schedulingv1beta1.PriorityClass, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*schedulingv1beta1.PriorityClassList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *schedulingv1beta1.PriorityClass, err error)\n\tApply(ctx context.Context, priorityClass *applyconfigurationsschedulingv1beta1.PriorityClassApplyConfiguration, opts v1.ApplyOptions) (result *schedulingv1beta1.PriorityClass, err error)\n\tPriorityClassExpansion\n}\n\n// priorityClasses implements PriorityClassInterface\ntype priorityClasses struct {\n\t*gentype.ClientWithListAndApply[*schedulingv1beta1.PriorityClass, *schedulingv1beta1.PriorityClassList, *applyconfigurationsschedulingv1beta1.PriorityClassApplyConfiguration]\n}\n\n// newPriorityClasses returns a PriorityClasses\nfunc newPriorityClasses(c *SchedulingV1beta1Client) *priorityClasses {\n\treturn &priorityClasses{\n\t\tgentype.NewClientWithListAndApply[*schedulingv1beta1.PriorityClass, *schedulingv1beta1.PriorityClassList, *applyconfigurationsschedulingv1beta1.PriorityClassApplyConfiguration](\n\t\t\t\"priorityclasses\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *schedulingv1beta1.PriorityClass { return &schedulingv1beta1.PriorityClass{} },\n\t\t\tfunc() *schedulingv1beta1.PriorityClassList { return &schedulingv1beta1.PriorityClassList{} },\n\t\t\tgentype.PrefersProtobuf[*schedulingv1beta1.PriorityClass](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1beta1/scheduling_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\thttp \"net/http\"\n\n\tschedulingv1beta1 \"k8s.io/api/scheduling/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype SchedulingV1beta1Interface interface {\n\tRESTClient() rest.Interface\n\tPriorityClassesGetter\n}\n\n// SchedulingV1beta1Client is used to interact with features provided by the scheduling.k8s.io group.\ntype SchedulingV1beta1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *SchedulingV1beta1Client) PriorityClasses() PriorityClassInterface {\n\treturn newPriorityClasses(c)\n}\n\n// NewForConfig creates a new SchedulingV1beta1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*SchedulingV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new SchedulingV1beta1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*SchedulingV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &SchedulingV1beta1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new SchedulingV1beta1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *SchedulingV1beta1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new SchedulingV1beta1Client for the given RESTClient.\nfunc New(c rest.Interface) *SchedulingV1beta1Client {\n\treturn &SchedulingV1beta1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := schedulingv1beta1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *SchedulingV1beta1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1/csidriver.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tstoragev1 \"k8s.io/api/storage/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsstoragev1 \"k8s.io/client-go/applyconfigurations/storage/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// CSIDriversGetter has a method to return a CSIDriverInterface.\n// A group's client should implement this interface.\ntype CSIDriversGetter interface {\n\tCSIDrivers() CSIDriverInterface\n}\n\n// CSIDriverInterface has methods to work with CSIDriver resources.\ntype CSIDriverInterface interface {\n\tCreate(ctx context.Context, cSIDriver *storagev1.CSIDriver, opts metav1.CreateOptions) (*storagev1.CSIDriver, error)\n\tUpdate(ctx context.Context, cSIDriver *storagev1.CSIDriver, opts metav1.UpdateOptions) (*storagev1.CSIDriver, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*storagev1.CSIDriver, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*storagev1.CSIDriverList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *storagev1.CSIDriver, err error)\n\tApply(ctx context.Context, cSIDriver *applyconfigurationsstoragev1.CSIDriverApplyConfiguration, opts metav1.ApplyOptions) (result *storagev1.CSIDriver, err error)\n\tCSIDriverExpansion\n}\n\n// cSIDrivers implements CSIDriverInterface\ntype cSIDrivers struct {\n\t*gentype.ClientWithListAndApply[*storagev1.CSIDriver, *storagev1.CSIDriverList, *applyconfigurationsstoragev1.CSIDriverApplyConfiguration]\n}\n\n// newCSIDrivers returns a CSIDrivers\nfunc newCSIDrivers(c *StorageV1Client) *cSIDrivers {\n\treturn &cSIDrivers{\n\t\tgentype.NewClientWithListAndApply[*storagev1.CSIDriver, *storagev1.CSIDriverList, *applyconfigurationsstoragev1.CSIDriverApplyConfiguration](\n\t\t\t\"csidrivers\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *storagev1.CSIDriver { return &storagev1.CSIDriver{} },\n\t\t\tfunc() *storagev1.CSIDriverList { return &storagev1.CSIDriverList{} },\n\t\t\tgentype.PrefersProtobuf[*storagev1.CSIDriver](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1/csinode.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tstoragev1 \"k8s.io/api/storage/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsstoragev1 \"k8s.io/client-go/applyconfigurations/storage/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// CSINodesGetter has a method to return a CSINodeInterface.\n// A group's client should implement this interface.\ntype CSINodesGetter interface {\n\tCSINodes() CSINodeInterface\n}\n\n// CSINodeInterface has methods to work with CSINode resources.\ntype CSINodeInterface interface {\n\tCreate(ctx context.Context, cSINode *storagev1.CSINode, opts metav1.CreateOptions) (*storagev1.CSINode, error)\n\tUpdate(ctx context.Context, cSINode *storagev1.CSINode, opts metav1.UpdateOptions) (*storagev1.CSINode, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*storagev1.CSINode, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*storagev1.CSINodeList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *storagev1.CSINode, err error)\n\tApply(ctx context.Context, cSINode *applyconfigurationsstoragev1.CSINodeApplyConfiguration, opts metav1.ApplyOptions) (result *storagev1.CSINode, err error)\n\tCSINodeExpansion\n}\n\n// cSINodes implements CSINodeInterface\ntype cSINodes struct {\n\t*gentype.ClientWithListAndApply[*storagev1.CSINode, *storagev1.CSINodeList, *applyconfigurationsstoragev1.CSINodeApplyConfiguration]\n}\n\n// newCSINodes returns a CSINodes\nfunc newCSINodes(c *StorageV1Client) *cSINodes {\n\treturn &cSINodes{\n\t\tgentype.NewClientWithListAndApply[*storagev1.CSINode, *storagev1.CSINodeList, *applyconfigurationsstoragev1.CSINodeApplyConfiguration](\n\t\t\t\"csinodes\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *storagev1.CSINode { return &storagev1.CSINode{} },\n\t\t\tfunc() *storagev1.CSINodeList { return &storagev1.CSINodeList{} },\n\t\t\tgentype.PrefersProtobuf[*storagev1.CSINode](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1/csistoragecapacity.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tstoragev1 \"k8s.io/api/storage/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsstoragev1 \"k8s.io/client-go/applyconfigurations/storage/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// CSIStorageCapacitiesGetter has a method to return a CSIStorageCapacityInterface.\n// A group's client should implement this interface.\ntype CSIStorageCapacitiesGetter interface {\n\tCSIStorageCapacities(namespace string) CSIStorageCapacityInterface\n}\n\n// CSIStorageCapacityInterface has methods to work with CSIStorageCapacity resources.\ntype CSIStorageCapacityInterface interface {\n\tCreate(ctx context.Context, cSIStorageCapacity *storagev1.CSIStorageCapacity, opts metav1.CreateOptions) (*storagev1.CSIStorageCapacity, error)\n\tUpdate(ctx context.Context, cSIStorageCapacity *storagev1.CSIStorageCapacity, opts metav1.UpdateOptions) (*storagev1.CSIStorageCapacity, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*storagev1.CSIStorageCapacity, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*storagev1.CSIStorageCapacityList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *storagev1.CSIStorageCapacity, err error)\n\tApply(ctx context.Context, cSIStorageCapacity *applyconfigurationsstoragev1.CSIStorageCapacityApplyConfiguration, opts metav1.ApplyOptions) (result *storagev1.CSIStorageCapacity, err error)\n\tCSIStorageCapacityExpansion\n}\n\n// cSIStorageCapacities implements CSIStorageCapacityInterface\ntype cSIStorageCapacities struct {\n\t*gentype.ClientWithListAndApply[*storagev1.CSIStorageCapacity, *storagev1.CSIStorageCapacityList, *applyconfigurationsstoragev1.CSIStorageCapacityApplyConfiguration]\n}\n\n// newCSIStorageCapacities returns a CSIStorageCapacities\nfunc newCSIStorageCapacities(c *StorageV1Client, namespace string) *cSIStorageCapacities {\n\treturn &cSIStorageCapacities{\n\t\tgentype.NewClientWithListAndApply[*storagev1.CSIStorageCapacity, *storagev1.CSIStorageCapacityList, *applyconfigurationsstoragev1.CSIStorageCapacityApplyConfiguration](\n\t\t\t\"csistoragecapacities\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *storagev1.CSIStorageCapacity { return &storagev1.CSIStorageCapacity{} },\n\t\t\tfunc() *storagev1.CSIStorageCapacityList { return &storagev1.CSIStorageCapacityList{} },\n\t\t\tgentype.PrefersProtobuf[*storagev1.CSIStorageCapacity](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/fake_csidriver.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/storage/v1\"\n\tstoragev1 \"k8s.io/client-go/applyconfigurations/storage/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedstoragev1 \"k8s.io/client-go/kubernetes/typed/storage/v1\"\n)\n\n// fakeCSIDrivers implements CSIDriverInterface\ntype fakeCSIDrivers struct {\n\t*gentype.FakeClientWithListAndApply[*v1.CSIDriver, *v1.CSIDriverList, *storagev1.CSIDriverApplyConfiguration]\n\tFake *FakeStorageV1\n}\n\nfunc newFakeCSIDrivers(fake *FakeStorageV1) typedstoragev1.CSIDriverInterface {\n\treturn &fakeCSIDrivers{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.CSIDriver, *v1.CSIDriverList, *storagev1.CSIDriverApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1.SchemeGroupVersion.WithResource(\"csidrivers\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"CSIDriver\"),\n\t\t\tfunc() *v1.CSIDriver { return &v1.CSIDriver{} },\n\t\t\tfunc() *v1.CSIDriverList { return &v1.CSIDriverList{} },\n\t\t\tfunc(dst, src *v1.CSIDriverList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.CSIDriverList) []*v1.CSIDriver { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1.CSIDriverList, items []*v1.CSIDriver) { list.Items = gentype.FromPointerSlice(items) },\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/fake_csinode.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/storage/v1\"\n\tstoragev1 \"k8s.io/client-go/applyconfigurations/storage/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedstoragev1 \"k8s.io/client-go/kubernetes/typed/storage/v1\"\n)\n\n// fakeCSINodes implements CSINodeInterface\ntype fakeCSINodes struct {\n\t*gentype.FakeClientWithListAndApply[*v1.CSINode, *v1.CSINodeList, *storagev1.CSINodeApplyConfiguration]\n\tFake *FakeStorageV1\n}\n\nfunc newFakeCSINodes(fake *FakeStorageV1) typedstoragev1.CSINodeInterface {\n\treturn &fakeCSINodes{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.CSINode, *v1.CSINodeList, *storagev1.CSINodeApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1.SchemeGroupVersion.WithResource(\"csinodes\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"CSINode\"),\n\t\t\tfunc() *v1.CSINode { return &v1.CSINode{} },\n\t\t\tfunc() *v1.CSINodeList { return &v1.CSINodeList{} },\n\t\t\tfunc(dst, src *v1.CSINodeList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.CSINodeList) []*v1.CSINode { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1.CSINodeList, items []*v1.CSINode) { list.Items = gentype.FromPointerSlice(items) },\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/fake_csistoragecapacity.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/storage/v1\"\n\tstoragev1 \"k8s.io/client-go/applyconfigurations/storage/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedstoragev1 \"k8s.io/client-go/kubernetes/typed/storage/v1\"\n)\n\n// fakeCSIStorageCapacities implements CSIStorageCapacityInterface\ntype fakeCSIStorageCapacities struct {\n\t*gentype.FakeClientWithListAndApply[*v1.CSIStorageCapacity, *v1.CSIStorageCapacityList, *storagev1.CSIStorageCapacityApplyConfiguration]\n\tFake *FakeStorageV1\n}\n\nfunc newFakeCSIStorageCapacities(fake *FakeStorageV1, namespace string) typedstoragev1.CSIStorageCapacityInterface {\n\treturn &fakeCSIStorageCapacities{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.CSIStorageCapacity, *v1.CSIStorageCapacityList, *storagev1.CSIStorageCapacityApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1.SchemeGroupVersion.WithResource(\"csistoragecapacities\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"CSIStorageCapacity\"),\n\t\t\tfunc() *v1.CSIStorageCapacity { return &v1.CSIStorageCapacity{} },\n\t\t\tfunc() *v1.CSIStorageCapacityList { return &v1.CSIStorageCapacityList{} },\n\t\t\tfunc(dst, src *v1.CSIStorageCapacityList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.CSIStorageCapacityList) []*v1.CSIStorageCapacity {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1.CSIStorageCapacityList, items []*v1.CSIStorageCapacity) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/fake_storage_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/client-go/kubernetes/typed/storage/v1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeStorageV1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeStorageV1) CSIDrivers() v1.CSIDriverInterface {\n\treturn newFakeCSIDrivers(c)\n}\n\nfunc (c *FakeStorageV1) CSINodes() v1.CSINodeInterface {\n\treturn newFakeCSINodes(c)\n}\n\nfunc (c *FakeStorageV1) CSIStorageCapacities(namespace string) v1.CSIStorageCapacityInterface {\n\treturn newFakeCSIStorageCapacities(c, namespace)\n}\n\nfunc (c *FakeStorageV1) StorageClasses() v1.StorageClassInterface {\n\treturn newFakeStorageClasses(c)\n}\n\nfunc (c *FakeStorageV1) VolumeAttachments() v1.VolumeAttachmentInterface {\n\treturn newFakeVolumeAttachments(c)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeStorageV1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/fake_storageclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/storage/v1\"\n\tstoragev1 \"k8s.io/client-go/applyconfigurations/storage/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedstoragev1 \"k8s.io/client-go/kubernetes/typed/storage/v1\"\n)\n\n// fakeStorageClasses implements StorageClassInterface\ntype fakeStorageClasses struct {\n\t*gentype.FakeClientWithListAndApply[*v1.StorageClass, *v1.StorageClassList, *storagev1.StorageClassApplyConfiguration]\n\tFake *FakeStorageV1\n}\n\nfunc newFakeStorageClasses(fake *FakeStorageV1) typedstoragev1.StorageClassInterface {\n\treturn &fakeStorageClasses{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.StorageClass, *v1.StorageClassList, *storagev1.StorageClassApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1.SchemeGroupVersion.WithResource(\"storageclasses\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"StorageClass\"),\n\t\t\tfunc() *v1.StorageClass { return &v1.StorageClass{} },\n\t\t\tfunc() *v1.StorageClassList { return &v1.StorageClassList{} },\n\t\t\tfunc(dst, src *v1.StorageClassList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.StorageClassList) []*v1.StorageClass { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1.StorageClassList, items []*v1.StorageClass) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1/fake/fake_volumeattachment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1 \"k8s.io/api/storage/v1\"\n\tstoragev1 \"k8s.io/client-go/applyconfigurations/storage/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedstoragev1 \"k8s.io/client-go/kubernetes/typed/storage/v1\"\n)\n\n// fakeVolumeAttachments implements VolumeAttachmentInterface\ntype fakeVolumeAttachments struct {\n\t*gentype.FakeClientWithListAndApply[*v1.VolumeAttachment, *v1.VolumeAttachmentList, *storagev1.VolumeAttachmentApplyConfiguration]\n\tFake *FakeStorageV1\n}\n\nfunc newFakeVolumeAttachments(fake *FakeStorageV1) typedstoragev1.VolumeAttachmentInterface {\n\treturn &fakeVolumeAttachments{\n\t\tgentype.NewFakeClientWithListAndApply[*v1.VolumeAttachment, *v1.VolumeAttachmentList, *storagev1.VolumeAttachmentApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1.SchemeGroupVersion.WithResource(\"volumeattachments\"),\n\t\t\tv1.SchemeGroupVersion.WithKind(\"VolumeAttachment\"),\n\t\t\tfunc() *v1.VolumeAttachment { return &v1.VolumeAttachment{} },\n\t\t\tfunc() *v1.VolumeAttachmentList { return &v1.VolumeAttachmentList{} },\n\t\t\tfunc(dst, src *v1.VolumeAttachmentList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1.VolumeAttachmentList) []*v1.VolumeAttachment { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1.VolumeAttachmentList, items []*v1.VolumeAttachment) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\ntype CSIDriverExpansion interface{}\n\ntype CSINodeExpansion interface{}\n\ntype CSIStorageCapacityExpansion interface{}\n\ntype StorageClassExpansion interface{}\n\ntype VolumeAttachmentExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1/storage_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\thttp \"net/http\"\n\n\tstoragev1 \"k8s.io/api/storage/v1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype StorageV1Interface interface {\n\tRESTClient() rest.Interface\n\tCSIDriversGetter\n\tCSINodesGetter\n\tCSIStorageCapacitiesGetter\n\tStorageClassesGetter\n\tVolumeAttachmentsGetter\n}\n\n// StorageV1Client is used to interact with features provided by the storage.k8s.io group.\ntype StorageV1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *StorageV1Client) CSIDrivers() CSIDriverInterface {\n\treturn newCSIDrivers(c)\n}\n\nfunc (c *StorageV1Client) CSINodes() CSINodeInterface {\n\treturn newCSINodes(c)\n}\n\nfunc (c *StorageV1Client) CSIStorageCapacities(namespace string) CSIStorageCapacityInterface {\n\treturn newCSIStorageCapacities(c, namespace)\n}\n\nfunc (c *StorageV1Client) StorageClasses() StorageClassInterface {\n\treturn newStorageClasses(c)\n}\n\nfunc (c *StorageV1Client) VolumeAttachments() VolumeAttachmentInterface {\n\treturn newVolumeAttachments(c)\n}\n\n// NewForConfig creates a new StorageV1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*StorageV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new StorageV1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*StorageV1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &StorageV1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new StorageV1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *StorageV1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new StorageV1Client for the given RESTClient.\nfunc New(c rest.Interface) *StorageV1Client {\n\treturn &StorageV1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := storagev1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *StorageV1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1/storageclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tstoragev1 \"k8s.io/api/storage/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsstoragev1 \"k8s.io/client-go/applyconfigurations/storage/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// StorageClassesGetter has a method to return a StorageClassInterface.\n// A group's client should implement this interface.\ntype StorageClassesGetter interface {\n\tStorageClasses() StorageClassInterface\n}\n\n// StorageClassInterface has methods to work with StorageClass resources.\ntype StorageClassInterface interface {\n\tCreate(ctx context.Context, storageClass *storagev1.StorageClass, opts metav1.CreateOptions) (*storagev1.StorageClass, error)\n\tUpdate(ctx context.Context, storageClass *storagev1.StorageClass, opts metav1.UpdateOptions) (*storagev1.StorageClass, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*storagev1.StorageClass, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*storagev1.StorageClassList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *storagev1.StorageClass, err error)\n\tApply(ctx context.Context, storageClass *applyconfigurationsstoragev1.StorageClassApplyConfiguration, opts metav1.ApplyOptions) (result *storagev1.StorageClass, err error)\n\tStorageClassExpansion\n}\n\n// storageClasses implements StorageClassInterface\ntype storageClasses struct {\n\t*gentype.ClientWithListAndApply[*storagev1.StorageClass, *storagev1.StorageClassList, *applyconfigurationsstoragev1.StorageClassApplyConfiguration]\n}\n\n// newStorageClasses returns a StorageClasses\nfunc newStorageClasses(c *StorageV1Client) *storageClasses {\n\treturn &storageClasses{\n\t\tgentype.NewClientWithListAndApply[*storagev1.StorageClass, *storagev1.StorageClassList, *applyconfigurationsstoragev1.StorageClassApplyConfiguration](\n\t\t\t\"storageclasses\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *storagev1.StorageClass { return &storagev1.StorageClass{} },\n\t\t\tfunc() *storagev1.StorageClassList { return &storagev1.StorageClassList{} },\n\t\t\tgentype.PrefersProtobuf[*storagev1.StorageClass](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1/volumeattachment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcontext \"context\"\n\n\tstoragev1 \"k8s.io/api/storage/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsstoragev1 \"k8s.io/client-go/applyconfigurations/storage/v1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// VolumeAttachmentsGetter has a method to return a VolumeAttachmentInterface.\n// A group's client should implement this interface.\ntype VolumeAttachmentsGetter interface {\n\tVolumeAttachments() VolumeAttachmentInterface\n}\n\n// VolumeAttachmentInterface has methods to work with VolumeAttachment resources.\ntype VolumeAttachmentInterface interface {\n\tCreate(ctx context.Context, volumeAttachment *storagev1.VolumeAttachment, opts metav1.CreateOptions) (*storagev1.VolumeAttachment, error)\n\tUpdate(ctx context.Context, volumeAttachment *storagev1.VolumeAttachment, opts metav1.UpdateOptions) (*storagev1.VolumeAttachment, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, volumeAttachment *storagev1.VolumeAttachment, opts metav1.UpdateOptions) (*storagev1.VolumeAttachment, error)\n\tDelete(ctx context.Context, name string, opts metav1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts metav1.DeleteOptions, listOpts metav1.ListOptions) error\n\tGet(ctx context.Context, name string, opts metav1.GetOptions) (*storagev1.VolumeAttachment, error)\n\tList(ctx context.Context, opts metav1.ListOptions) (*storagev1.VolumeAttachmentList, error)\n\tWatch(ctx context.Context, opts metav1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts metav1.PatchOptions, subresources ...string) (result *storagev1.VolumeAttachment, err error)\n\tApply(ctx context.Context, volumeAttachment *applyconfigurationsstoragev1.VolumeAttachmentApplyConfiguration, opts metav1.ApplyOptions) (result *storagev1.VolumeAttachment, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, volumeAttachment *applyconfigurationsstoragev1.VolumeAttachmentApplyConfiguration, opts metav1.ApplyOptions) (result *storagev1.VolumeAttachment, err error)\n\tVolumeAttachmentExpansion\n}\n\n// volumeAttachments implements VolumeAttachmentInterface\ntype volumeAttachments struct {\n\t*gentype.ClientWithListAndApply[*storagev1.VolumeAttachment, *storagev1.VolumeAttachmentList, *applyconfigurationsstoragev1.VolumeAttachmentApplyConfiguration]\n}\n\n// newVolumeAttachments returns a VolumeAttachments\nfunc newVolumeAttachments(c *StorageV1Client) *volumeAttachments {\n\treturn &volumeAttachments{\n\t\tgentype.NewClientWithListAndApply[*storagev1.VolumeAttachment, *storagev1.VolumeAttachmentList, *applyconfigurationsstoragev1.VolumeAttachmentApplyConfiguration](\n\t\t\t\"volumeattachments\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *storagev1.VolumeAttachment { return &storagev1.VolumeAttachment{} },\n\t\t\tfunc() *storagev1.VolumeAttachmentList { return &storagev1.VolumeAttachmentList{} },\n\t\t\tgentype.PrefersProtobuf[*storagev1.VolumeAttachment](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/csistoragecapacity.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcontext \"context\"\n\n\tstoragev1alpha1 \"k8s.io/api/storage/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsstoragev1alpha1 \"k8s.io/client-go/applyconfigurations/storage/v1alpha1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// CSIStorageCapacitiesGetter has a method to return a CSIStorageCapacityInterface.\n// A group's client should implement this interface.\ntype CSIStorageCapacitiesGetter interface {\n\tCSIStorageCapacities(namespace string) CSIStorageCapacityInterface\n}\n\n// CSIStorageCapacityInterface has methods to work with CSIStorageCapacity resources.\ntype CSIStorageCapacityInterface interface {\n\tCreate(ctx context.Context, cSIStorageCapacity *storagev1alpha1.CSIStorageCapacity, opts v1.CreateOptions) (*storagev1alpha1.CSIStorageCapacity, error)\n\tUpdate(ctx context.Context, cSIStorageCapacity *storagev1alpha1.CSIStorageCapacity, opts v1.UpdateOptions) (*storagev1alpha1.CSIStorageCapacity, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*storagev1alpha1.CSIStorageCapacity, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*storagev1alpha1.CSIStorageCapacityList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *storagev1alpha1.CSIStorageCapacity, err error)\n\tApply(ctx context.Context, cSIStorageCapacity *applyconfigurationsstoragev1alpha1.CSIStorageCapacityApplyConfiguration, opts v1.ApplyOptions) (result *storagev1alpha1.CSIStorageCapacity, err error)\n\tCSIStorageCapacityExpansion\n}\n\n// cSIStorageCapacities implements CSIStorageCapacityInterface\ntype cSIStorageCapacities struct {\n\t*gentype.ClientWithListAndApply[*storagev1alpha1.CSIStorageCapacity, *storagev1alpha1.CSIStorageCapacityList, *applyconfigurationsstoragev1alpha1.CSIStorageCapacityApplyConfiguration]\n}\n\n// newCSIStorageCapacities returns a CSIStorageCapacities\nfunc newCSIStorageCapacities(c *StorageV1alpha1Client, namespace string) *cSIStorageCapacities {\n\treturn &cSIStorageCapacities{\n\t\tgentype.NewClientWithListAndApply[*storagev1alpha1.CSIStorageCapacity, *storagev1alpha1.CSIStorageCapacityList, *applyconfigurationsstoragev1alpha1.CSIStorageCapacityApplyConfiguration](\n\t\t\t\"csistoragecapacities\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *storagev1alpha1.CSIStorageCapacity { return &storagev1alpha1.CSIStorageCapacity{} },\n\t\t\tfunc() *storagev1alpha1.CSIStorageCapacityList { return &storagev1alpha1.CSIStorageCapacityList{} },\n\t\t\tgentype.PrefersProtobuf[*storagev1alpha1.CSIStorageCapacity](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1alpha1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/fake_csistoragecapacity.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha1 \"k8s.io/api/storage/v1alpha1\"\n\tstoragev1alpha1 \"k8s.io/client-go/applyconfigurations/storage/v1alpha1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedstoragev1alpha1 \"k8s.io/client-go/kubernetes/typed/storage/v1alpha1\"\n)\n\n// fakeCSIStorageCapacities implements CSIStorageCapacityInterface\ntype fakeCSIStorageCapacities struct {\n\t*gentype.FakeClientWithListAndApply[*v1alpha1.CSIStorageCapacity, *v1alpha1.CSIStorageCapacityList, *storagev1alpha1.CSIStorageCapacityApplyConfiguration]\n\tFake *FakeStorageV1alpha1\n}\n\nfunc newFakeCSIStorageCapacities(fake *FakeStorageV1alpha1, namespace string) typedstoragev1alpha1.CSIStorageCapacityInterface {\n\treturn &fakeCSIStorageCapacities{\n\t\tgentype.NewFakeClientWithListAndApply[*v1alpha1.CSIStorageCapacity, *v1alpha1.CSIStorageCapacityList, *storagev1alpha1.CSIStorageCapacityApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1alpha1.SchemeGroupVersion.WithResource(\"csistoragecapacities\"),\n\t\t\tv1alpha1.SchemeGroupVersion.WithKind(\"CSIStorageCapacity\"),\n\t\t\tfunc() *v1alpha1.CSIStorageCapacity { return &v1alpha1.CSIStorageCapacity{} },\n\t\t\tfunc() *v1alpha1.CSIStorageCapacityList { return &v1alpha1.CSIStorageCapacityList{} },\n\t\t\tfunc(dst, src *v1alpha1.CSIStorageCapacityList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1alpha1.CSIStorageCapacityList) []*v1alpha1.CSIStorageCapacity {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1alpha1.CSIStorageCapacityList, items []*v1alpha1.CSIStorageCapacity) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/fake_storage_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha1 \"k8s.io/client-go/kubernetes/typed/storage/v1alpha1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeStorageV1alpha1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeStorageV1alpha1) CSIStorageCapacities(namespace string) v1alpha1.CSIStorageCapacityInterface {\n\treturn newFakeCSIStorageCapacities(c, namespace)\n}\n\nfunc (c *FakeStorageV1alpha1) VolumeAttachments() v1alpha1.VolumeAttachmentInterface {\n\treturn newFakeVolumeAttachments(c)\n}\n\nfunc (c *FakeStorageV1alpha1) VolumeAttributesClasses() v1alpha1.VolumeAttributesClassInterface {\n\treturn newFakeVolumeAttributesClasses(c)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeStorageV1alpha1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/fake_volumeattachment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha1 \"k8s.io/api/storage/v1alpha1\"\n\tstoragev1alpha1 \"k8s.io/client-go/applyconfigurations/storage/v1alpha1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedstoragev1alpha1 \"k8s.io/client-go/kubernetes/typed/storage/v1alpha1\"\n)\n\n// fakeVolumeAttachments implements VolumeAttachmentInterface\ntype fakeVolumeAttachments struct {\n\t*gentype.FakeClientWithListAndApply[*v1alpha1.VolumeAttachment, *v1alpha1.VolumeAttachmentList, *storagev1alpha1.VolumeAttachmentApplyConfiguration]\n\tFake *FakeStorageV1alpha1\n}\n\nfunc newFakeVolumeAttachments(fake *FakeStorageV1alpha1) typedstoragev1alpha1.VolumeAttachmentInterface {\n\treturn &fakeVolumeAttachments{\n\t\tgentype.NewFakeClientWithListAndApply[*v1alpha1.VolumeAttachment, *v1alpha1.VolumeAttachmentList, *storagev1alpha1.VolumeAttachmentApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1alpha1.SchemeGroupVersion.WithResource(\"volumeattachments\"),\n\t\t\tv1alpha1.SchemeGroupVersion.WithKind(\"VolumeAttachment\"),\n\t\t\tfunc() *v1alpha1.VolumeAttachment { return &v1alpha1.VolumeAttachment{} },\n\t\t\tfunc() *v1alpha1.VolumeAttachmentList { return &v1alpha1.VolumeAttachmentList{} },\n\t\t\tfunc(dst, src *v1alpha1.VolumeAttachmentList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1alpha1.VolumeAttachmentList) []*v1alpha1.VolumeAttachment {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1alpha1.VolumeAttachmentList, items []*v1alpha1.VolumeAttachment) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake/fake_volumeattributesclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha1 \"k8s.io/api/storage/v1alpha1\"\n\tstoragev1alpha1 \"k8s.io/client-go/applyconfigurations/storage/v1alpha1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedstoragev1alpha1 \"k8s.io/client-go/kubernetes/typed/storage/v1alpha1\"\n)\n\n// fakeVolumeAttributesClasses implements VolumeAttributesClassInterface\ntype fakeVolumeAttributesClasses struct {\n\t*gentype.FakeClientWithListAndApply[*v1alpha1.VolumeAttributesClass, *v1alpha1.VolumeAttributesClassList, *storagev1alpha1.VolumeAttributesClassApplyConfiguration]\n\tFake *FakeStorageV1alpha1\n}\n\nfunc newFakeVolumeAttributesClasses(fake *FakeStorageV1alpha1) typedstoragev1alpha1.VolumeAttributesClassInterface {\n\treturn &fakeVolumeAttributesClasses{\n\t\tgentype.NewFakeClientWithListAndApply[*v1alpha1.VolumeAttributesClass, *v1alpha1.VolumeAttributesClassList, *storagev1alpha1.VolumeAttributesClassApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1alpha1.SchemeGroupVersion.WithResource(\"volumeattributesclasses\"),\n\t\t\tv1alpha1.SchemeGroupVersion.WithKind(\"VolumeAttributesClass\"),\n\t\t\tfunc() *v1alpha1.VolumeAttributesClass { return &v1alpha1.VolumeAttributesClass{} },\n\t\t\tfunc() *v1alpha1.VolumeAttributesClassList { return &v1alpha1.VolumeAttributesClassList{} },\n\t\t\tfunc(dst, src *v1alpha1.VolumeAttributesClassList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1alpha1.VolumeAttributesClassList) []*v1alpha1.VolumeAttributesClass {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1alpha1.VolumeAttributesClassList, items []*v1alpha1.VolumeAttributesClass) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\ntype CSIStorageCapacityExpansion interface{}\n\ntype VolumeAttachmentExpansion interface{}\n\ntype VolumeAttributesClassExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/storage_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\thttp \"net/http\"\n\n\tstoragev1alpha1 \"k8s.io/api/storage/v1alpha1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype StorageV1alpha1Interface interface {\n\tRESTClient() rest.Interface\n\tCSIStorageCapacitiesGetter\n\tVolumeAttachmentsGetter\n\tVolumeAttributesClassesGetter\n}\n\n// StorageV1alpha1Client is used to interact with features provided by the storage.k8s.io group.\ntype StorageV1alpha1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *StorageV1alpha1Client) CSIStorageCapacities(namespace string) CSIStorageCapacityInterface {\n\treturn newCSIStorageCapacities(c, namespace)\n}\n\nfunc (c *StorageV1alpha1Client) VolumeAttachments() VolumeAttachmentInterface {\n\treturn newVolumeAttachments(c)\n}\n\nfunc (c *StorageV1alpha1Client) VolumeAttributesClasses() VolumeAttributesClassInterface {\n\treturn newVolumeAttributesClasses(c)\n}\n\n// NewForConfig creates a new StorageV1alpha1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*StorageV1alpha1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new StorageV1alpha1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*StorageV1alpha1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &StorageV1alpha1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new StorageV1alpha1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *StorageV1alpha1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new StorageV1alpha1Client for the given RESTClient.\nfunc New(c rest.Interface) *StorageV1alpha1Client {\n\treturn &StorageV1alpha1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := storagev1alpha1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *StorageV1alpha1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/volumeattachment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcontext \"context\"\n\n\tstoragev1alpha1 \"k8s.io/api/storage/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsstoragev1alpha1 \"k8s.io/client-go/applyconfigurations/storage/v1alpha1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// VolumeAttachmentsGetter has a method to return a VolumeAttachmentInterface.\n// A group's client should implement this interface.\ntype VolumeAttachmentsGetter interface {\n\tVolumeAttachments() VolumeAttachmentInterface\n}\n\n// VolumeAttachmentInterface has methods to work with VolumeAttachment resources.\ntype VolumeAttachmentInterface interface {\n\tCreate(ctx context.Context, volumeAttachment *storagev1alpha1.VolumeAttachment, opts v1.CreateOptions) (*storagev1alpha1.VolumeAttachment, error)\n\tUpdate(ctx context.Context, volumeAttachment *storagev1alpha1.VolumeAttachment, opts v1.UpdateOptions) (*storagev1alpha1.VolumeAttachment, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, volumeAttachment *storagev1alpha1.VolumeAttachment, opts v1.UpdateOptions) (*storagev1alpha1.VolumeAttachment, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*storagev1alpha1.VolumeAttachment, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*storagev1alpha1.VolumeAttachmentList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *storagev1alpha1.VolumeAttachment, err error)\n\tApply(ctx context.Context, volumeAttachment *applyconfigurationsstoragev1alpha1.VolumeAttachmentApplyConfiguration, opts v1.ApplyOptions) (result *storagev1alpha1.VolumeAttachment, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, volumeAttachment *applyconfigurationsstoragev1alpha1.VolumeAttachmentApplyConfiguration, opts v1.ApplyOptions) (result *storagev1alpha1.VolumeAttachment, err error)\n\tVolumeAttachmentExpansion\n}\n\n// volumeAttachments implements VolumeAttachmentInterface\ntype volumeAttachments struct {\n\t*gentype.ClientWithListAndApply[*storagev1alpha1.VolumeAttachment, *storagev1alpha1.VolumeAttachmentList, *applyconfigurationsstoragev1alpha1.VolumeAttachmentApplyConfiguration]\n}\n\n// newVolumeAttachments returns a VolumeAttachments\nfunc newVolumeAttachments(c *StorageV1alpha1Client) *volumeAttachments {\n\treturn &volumeAttachments{\n\t\tgentype.NewClientWithListAndApply[*storagev1alpha1.VolumeAttachment, *storagev1alpha1.VolumeAttachmentList, *applyconfigurationsstoragev1alpha1.VolumeAttachmentApplyConfiguration](\n\t\t\t\"volumeattachments\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *storagev1alpha1.VolumeAttachment { return &storagev1alpha1.VolumeAttachment{} },\n\t\t\tfunc() *storagev1alpha1.VolumeAttachmentList { return &storagev1alpha1.VolumeAttachmentList{} },\n\t\t\tgentype.PrefersProtobuf[*storagev1alpha1.VolumeAttachment](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1alpha1/volumeattributesclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcontext \"context\"\n\n\tstoragev1alpha1 \"k8s.io/api/storage/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsstoragev1alpha1 \"k8s.io/client-go/applyconfigurations/storage/v1alpha1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// VolumeAttributesClassesGetter has a method to return a VolumeAttributesClassInterface.\n// A group's client should implement this interface.\ntype VolumeAttributesClassesGetter interface {\n\tVolumeAttributesClasses() VolumeAttributesClassInterface\n}\n\n// VolumeAttributesClassInterface has methods to work with VolumeAttributesClass resources.\ntype VolumeAttributesClassInterface interface {\n\tCreate(ctx context.Context, volumeAttributesClass *storagev1alpha1.VolumeAttributesClass, opts v1.CreateOptions) (*storagev1alpha1.VolumeAttributesClass, error)\n\tUpdate(ctx context.Context, volumeAttributesClass *storagev1alpha1.VolumeAttributesClass, opts v1.UpdateOptions) (*storagev1alpha1.VolumeAttributesClass, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*storagev1alpha1.VolumeAttributesClass, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*storagev1alpha1.VolumeAttributesClassList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *storagev1alpha1.VolumeAttributesClass, err error)\n\tApply(ctx context.Context, volumeAttributesClass *applyconfigurationsstoragev1alpha1.VolumeAttributesClassApplyConfiguration, opts v1.ApplyOptions) (result *storagev1alpha1.VolumeAttributesClass, err error)\n\tVolumeAttributesClassExpansion\n}\n\n// volumeAttributesClasses implements VolumeAttributesClassInterface\ntype volumeAttributesClasses struct {\n\t*gentype.ClientWithListAndApply[*storagev1alpha1.VolumeAttributesClass, *storagev1alpha1.VolumeAttributesClassList, *applyconfigurationsstoragev1alpha1.VolumeAttributesClassApplyConfiguration]\n}\n\n// newVolumeAttributesClasses returns a VolumeAttributesClasses\nfunc newVolumeAttributesClasses(c *StorageV1alpha1Client) *volumeAttributesClasses {\n\treturn &volumeAttributesClasses{\n\t\tgentype.NewClientWithListAndApply[*storagev1alpha1.VolumeAttributesClass, *storagev1alpha1.VolumeAttributesClassList, *applyconfigurationsstoragev1alpha1.VolumeAttributesClassApplyConfiguration](\n\t\t\t\"volumeattributesclasses\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *storagev1alpha1.VolumeAttributesClass { return &storagev1alpha1.VolumeAttributesClass{} },\n\t\t\tfunc() *storagev1alpha1.VolumeAttributesClassList { return &storagev1alpha1.VolumeAttributesClassList{} },\n\t\t\tgentype.PrefersProtobuf[*storagev1alpha1.VolumeAttributesClass](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/csidriver.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\tstoragev1beta1 \"k8s.io/api/storage/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsstoragev1beta1 \"k8s.io/client-go/applyconfigurations/storage/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// CSIDriversGetter has a method to return a CSIDriverInterface.\n// A group's client should implement this interface.\ntype CSIDriversGetter interface {\n\tCSIDrivers() CSIDriverInterface\n}\n\n// CSIDriverInterface has methods to work with CSIDriver resources.\ntype CSIDriverInterface interface {\n\tCreate(ctx context.Context, cSIDriver *storagev1beta1.CSIDriver, opts v1.CreateOptions) (*storagev1beta1.CSIDriver, error)\n\tUpdate(ctx context.Context, cSIDriver *storagev1beta1.CSIDriver, opts v1.UpdateOptions) (*storagev1beta1.CSIDriver, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*storagev1beta1.CSIDriver, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*storagev1beta1.CSIDriverList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *storagev1beta1.CSIDriver, err error)\n\tApply(ctx context.Context, cSIDriver *applyconfigurationsstoragev1beta1.CSIDriverApplyConfiguration, opts v1.ApplyOptions) (result *storagev1beta1.CSIDriver, err error)\n\tCSIDriverExpansion\n}\n\n// cSIDrivers implements CSIDriverInterface\ntype cSIDrivers struct {\n\t*gentype.ClientWithListAndApply[*storagev1beta1.CSIDriver, *storagev1beta1.CSIDriverList, *applyconfigurationsstoragev1beta1.CSIDriverApplyConfiguration]\n}\n\n// newCSIDrivers returns a CSIDrivers\nfunc newCSIDrivers(c *StorageV1beta1Client) *cSIDrivers {\n\treturn &cSIDrivers{\n\t\tgentype.NewClientWithListAndApply[*storagev1beta1.CSIDriver, *storagev1beta1.CSIDriverList, *applyconfigurationsstoragev1beta1.CSIDriverApplyConfiguration](\n\t\t\t\"csidrivers\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *storagev1beta1.CSIDriver { return &storagev1beta1.CSIDriver{} },\n\t\t\tfunc() *storagev1beta1.CSIDriverList { return &storagev1beta1.CSIDriverList{} },\n\t\t\tgentype.PrefersProtobuf[*storagev1beta1.CSIDriver](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/csinode.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\tstoragev1beta1 \"k8s.io/api/storage/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsstoragev1beta1 \"k8s.io/client-go/applyconfigurations/storage/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// CSINodesGetter has a method to return a CSINodeInterface.\n// A group's client should implement this interface.\ntype CSINodesGetter interface {\n\tCSINodes() CSINodeInterface\n}\n\n// CSINodeInterface has methods to work with CSINode resources.\ntype CSINodeInterface interface {\n\tCreate(ctx context.Context, cSINode *storagev1beta1.CSINode, opts v1.CreateOptions) (*storagev1beta1.CSINode, error)\n\tUpdate(ctx context.Context, cSINode *storagev1beta1.CSINode, opts v1.UpdateOptions) (*storagev1beta1.CSINode, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*storagev1beta1.CSINode, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*storagev1beta1.CSINodeList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *storagev1beta1.CSINode, err error)\n\tApply(ctx context.Context, cSINode *applyconfigurationsstoragev1beta1.CSINodeApplyConfiguration, opts v1.ApplyOptions) (result *storagev1beta1.CSINode, err error)\n\tCSINodeExpansion\n}\n\n// cSINodes implements CSINodeInterface\ntype cSINodes struct {\n\t*gentype.ClientWithListAndApply[*storagev1beta1.CSINode, *storagev1beta1.CSINodeList, *applyconfigurationsstoragev1beta1.CSINodeApplyConfiguration]\n}\n\n// newCSINodes returns a CSINodes\nfunc newCSINodes(c *StorageV1beta1Client) *cSINodes {\n\treturn &cSINodes{\n\t\tgentype.NewClientWithListAndApply[*storagev1beta1.CSINode, *storagev1beta1.CSINodeList, *applyconfigurationsstoragev1beta1.CSINodeApplyConfiguration](\n\t\t\t\"csinodes\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *storagev1beta1.CSINode { return &storagev1beta1.CSINode{} },\n\t\t\tfunc() *storagev1beta1.CSINodeList { return &storagev1beta1.CSINodeList{} },\n\t\t\tgentype.PrefersProtobuf[*storagev1beta1.CSINode](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/csistoragecapacity.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\tstoragev1beta1 \"k8s.io/api/storage/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsstoragev1beta1 \"k8s.io/client-go/applyconfigurations/storage/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// CSIStorageCapacitiesGetter has a method to return a CSIStorageCapacityInterface.\n// A group's client should implement this interface.\ntype CSIStorageCapacitiesGetter interface {\n\tCSIStorageCapacities(namespace string) CSIStorageCapacityInterface\n}\n\n// CSIStorageCapacityInterface has methods to work with CSIStorageCapacity resources.\ntype CSIStorageCapacityInterface interface {\n\tCreate(ctx context.Context, cSIStorageCapacity *storagev1beta1.CSIStorageCapacity, opts v1.CreateOptions) (*storagev1beta1.CSIStorageCapacity, error)\n\tUpdate(ctx context.Context, cSIStorageCapacity *storagev1beta1.CSIStorageCapacity, opts v1.UpdateOptions) (*storagev1beta1.CSIStorageCapacity, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*storagev1beta1.CSIStorageCapacity, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*storagev1beta1.CSIStorageCapacityList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *storagev1beta1.CSIStorageCapacity, err error)\n\tApply(ctx context.Context, cSIStorageCapacity *applyconfigurationsstoragev1beta1.CSIStorageCapacityApplyConfiguration, opts v1.ApplyOptions) (result *storagev1beta1.CSIStorageCapacity, err error)\n\tCSIStorageCapacityExpansion\n}\n\n// cSIStorageCapacities implements CSIStorageCapacityInterface\ntype cSIStorageCapacities struct {\n\t*gentype.ClientWithListAndApply[*storagev1beta1.CSIStorageCapacity, *storagev1beta1.CSIStorageCapacityList, *applyconfigurationsstoragev1beta1.CSIStorageCapacityApplyConfiguration]\n}\n\n// newCSIStorageCapacities returns a CSIStorageCapacities\nfunc newCSIStorageCapacities(c *StorageV1beta1Client, namespace string) *cSIStorageCapacities {\n\treturn &cSIStorageCapacities{\n\t\tgentype.NewClientWithListAndApply[*storagev1beta1.CSIStorageCapacity, *storagev1beta1.CSIStorageCapacityList, *applyconfigurationsstoragev1beta1.CSIStorageCapacityApplyConfiguration](\n\t\t\t\"csistoragecapacities\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\tnamespace,\n\t\t\tfunc() *storagev1beta1.CSIStorageCapacity { return &storagev1beta1.CSIStorageCapacity{} },\n\t\t\tfunc() *storagev1beta1.CSIStorageCapacityList { return &storagev1beta1.CSIStorageCapacityList{} },\n\t\t\tgentype.PrefersProtobuf[*storagev1beta1.CSIStorageCapacity](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1beta1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_csidriver.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/storage/v1beta1\"\n\tstoragev1beta1 \"k8s.io/client-go/applyconfigurations/storage/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedstoragev1beta1 \"k8s.io/client-go/kubernetes/typed/storage/v1beta1\"\n)\n\n// fakeCSIDrivers implements CSIDriverInterface\ntype fakeCSIDrivers struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta1.CSIDriver, *v1beta1.CSIDriverList, *storagev1beta1.CSIDriverApplyConfiguration]\n\tFake *FakeStorageV1beta1\n}\n\nfunc newFakeCSIDrivers(fake *FakeStorageV1beta1) typedstoragev1beta1.CSIDriverInterface {\n\treturn &fakeCSIDrivers{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta1.CSIDriver, *v1beta1.CSIDriverList, *storagev1beta1.CSIDriverApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"csidrivers\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"CSIDriver\"),\n\t\t\tfunc() *v1beta1.CSIDriver { return &v1beta1.CSIDriver{} },\n\t\t\tfunc() *v1beta1.CSIDriverList { return &v1beta1.CSIDriverList{} },\n\t\t\tfunc(dst, src *v1beta1.CSIDriverList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta1.CSIDriverList) []*v1beta1.CSIDriver { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1beta1.CSIDriverList, items []*v1beta1.CSIDriver) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_csinode.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/storage/v1beta1\"\n\tstoragev1beta1 \"k8s.io/client-go/applyconfigurations/storage/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedstoragev1beta1 \"k8s.io/client-go/kubernetes/typed/storage/v1beta1\"\n)\n\n// fakeCSINodes implements CSINodeInterface\ntype fakeCSINodes struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta1.CSINode, *v1beta1.CSINodeList, *storagev1beta1.CSINodeApplyConfiguration]\n\tFake *FakeStorageV1beta1\n}\n\nfunc newFakeCSINodes(fake *FakeStorageV1beta1) typedstoragev1beta1.CSINodeInterface {\n\treturn &fakeCSINodes{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta1.CSINode, *v1beta1.CSINodeList, *storagev1beta1.CSINodeApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"csinodes\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"CSINode\"),\n\t\t\tfunc() *v1beta1.CSINode { return &v1beta1.CSINode{} },\n\t\t\tfunc() *v1beta1.CSINodeList { return &v1beta1.CSINodeList{} },\n\t\t\tfunc(dst, src *v1beta1.CSINodeList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta1.CSINodeList) []*v1beta1.CSINode { return gentype.ToPointerSlice(list.Items) },\n\t\t\tfunc(list *v1beta1.CSINodeList, items []*v1beta1.CSINode) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_csistoragecapacity.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/storage/v1beta1\"\n\tstoragev1beta1 \"k8s.io/client-go/applyconfigurations/storage/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedstoragev1beta1 \"k8s.io/client-go/kubernetes/typed/storage/v1beta1\"\n)\n\n// fakeCSIStorageCapacities implements CSIStorageCapacityInterface\ntype fakeCSIStorageCapacities struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta1.CSIStorageCapacity, *v1beta1.CSIStorageCapacityList, *storagev1beta1.CSIStorageCapacityApplyConfiguration]\n\tFake *FakeStorageV1beta1\n}\n\nfunc newFakeCSIStorageCapacities(fake *FakeStorageV1beta1, namespace string) typedstoragev1beta1.CSIStorageCapacityInterface {\n\treturn &fakeCSIStorageCapacities{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta1.CSIStorageCapacity, *v1beta1.CSIStorageCapacityList, *storagev1beta1.CSIStorageCapacityApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\tnamespace,\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"csistoragecapacities\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"CSIStorageCapacity\"),\n\t\t\tfunc() *v1beta1.CSIStorageCapacity { return &v1beta1.CSIStorageCapacity{} },\n\t\t\tfunc() *v1beta1.CSIStorageCapacityList { return &v1beta1.CSIStorageCapacityList{} },\n\t\t\tfunc(dst, src *v1beta1.CSIStorageCapacityList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta1.CSIStorageCapacityList) []*v1beta1.CSIStorageCapacity {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1beta1.CSIStorageCapacityList, items []*v1beta1.CSIStorageCapacity) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_storage_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/client-go/kubernetes/typed/storage/v1beta1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeStorageV1beta1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeStorageV1beta1) CSIDrivers() v1beta1.CSIDriverInterface {\n\treturn newFakeCSIDrivers(c)\n}\n\nfunc (c *FakeStorageV1beta1) CSINodes() v1beta1.CSINodeInterface {\n\treturn newFakeCSINodes(c)\n}\n\nfunc (c *FakeStorageV1beta1) CSIStorageCapacities(namespace string) v1beta1.CSIStorageCapacityInterface {\n\treturn newFakeCSIStorageCapacities(c, namespace)\n}\n\nfunc (c *FakeStorageV1beta1) StorageClasses() v1beta1.StorageClassInterface {\n\treturn newFakeStorageClasses(c)\n}\n\nfunc (c *FakeStorageV1beta1) VolumeAttachments() v1beta1.VolumeAttachmentInterface {\n\treturn newFakeVolumeAttachments(c)\n}\n\nfunc (c *FakeStorageV1beta1) VolumeAttributesClasses() v1beta1.VolumeAttributesClassInterface {\n\treturn newFakeVolumeAttributesClasses(c)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeStorageV1beta1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_storageclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/storage/v1beta1\"\n\tstoragev1beta1 \"k8s.io/client-go/applyconfigurations/storage/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedstoragev1beta1 \"k8s.io/client-go/kubernetes/typed/storage/v1beta1\"\n)\n\n// fakeStorageClasses implements StorageClassInterface\ntype fakeStorageClasses struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta1.StorageClass, *v1beta1.StorageClassList, *storagev1beta1.StorageClassApplyConfiguration]\n\tFake *FakeStorageV1beta1\n}\n\nfunc newFakeStorageClasses(fake *FakeStorageV1beta1) typedstoragev1beta1.StorageClassInterface {\n\treturn &fakeStorageClasses{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta1.StorageClass, *v1beta1.StorageClassList, *storagev1beta1.StorageClassApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"storageclasses\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"StorageClass\"),\n\t\t\tfunc() *v1beta1.StorageClass { return &v1beta1.StorageClass{} },\n\t\t\tfunc() *v1beta1.StorageClassList { return &v1beta1.StorageClassList{} },\n\t\t\tfunc(dst, src *v1beta1.StorageClassList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta1.StorageClassList) []*v1beta1.StorageClass {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1beta1.StorageClassList, items []*v1beta1.StorageClass) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_volumeattachment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/storage/v1beta1\"\n\tstoragev1beta1 \"k8s.io/client-go/applyconfigurations/storage/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedstoragev1beta1 \"k8s.io/client-go/kubernetes/typed/storage/v1beta1\"\n)\n\n// fakeVolumeAttachments implements VolumeAttachmentInterface\ntype fakeVolumeAttachments struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta1.VolumeAttachment, *v1beta1.VolumeAttachmentList, *storagev1beta1.VolumeAttachmentApplyConfiguration]\n\tFake *FakeStorageV1beta1\n}\n\nfunc newFakeVolumeAttachments(fake *FakeStorageV1beta1) typedstoragev1beta1.VolumeAttachmentInterface {\n\treturn &fakeVolumeAttachments{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta1.VolumeAttachment, *v1beta1.VolumeAttachmentList, *storagev1beta1.VolumeAttachmentApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"volumeattachments\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"VolumeAttachment\"),\n\t\t\tfunc() *v1beta1.VolumeAttachment { return &v1beta1.VolumeAttachment{} },\n\t\t\tfunc() *v1beta1.VolumeAttachmentList { return &v1beta1.VolumeAttachmentList{} },\n\t\t\tfunc(dst, src *v1beta1.VolumeAttachmentList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta1.VolumeAttachmentList) []*v1beta1.VolumeAttachment {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1beta1.VolumeAttachmentList, items []*v1beta1.VolumeAttachment) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/fake_volumeattributesclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1beta1 \"k8s.io/api/storage/v1beta1\"\n\tstoragev1beta1 \"k8s.io/client-go/applyconfigurations/storage/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedstoragev1beta1 \"k8s.io/client-go/kubernetes/typed/storage/v1beta1\"\n)\n\n// fakeVolumeAttributesClasses implements VolumeAttributesClassInterface\ntype fakeVolumeAttributesClasses struct {\n\t*gentype.FakeClientWithListAndApply[*v1beta1.VolumeAttributesClass, *v1beta1.VolumeAttributesClassList, *storagev1beta1.VolumeAttributesClassApplyConfiguration]\n\tFake *FakeStorageV1beta1\n}\n\nfunc newFakeVolumeAttributesClasses(fake *FakeStorageV1beta1) typedstoragev1beta1.VolumeAttributesClassInterface {\n\treturn &fakeVolumeAttributesClasses{\n\t\tgentype.NewFakeClientWithListAndApply[*v1beta1.VolumeAttributesClass, *v1beta1.VolumeAttributesClassList, *storagev1beta1.VolumeAttributesClassApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1beta1.SchemeGroupVersion.WithResource(\"volumeattributesclasses\"),\n\t\t\tv1beta1.SchemeGroupVersion.WithKind(\"VolumeAttributesClass\"),\n\t\t\tfunc() *v1beta1.VolumeAttributesClass { return &v1beta1.VolumeAttributesClass{} },\n\t\t\tfunc() *v1beta1.VolumeAttributesClassList { return &v1beta1.VolumeAttributesClassList{} },\n\t\t\tfunc(dst, src *v1beta1.VolumeAttributesClassList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1beta1.VolumeAttributesClassList) []*v1beta1.VolumeAttributesClass {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1beta1.VolumeAttributesClassList, items []*v1beta1.VolumeAttributesClass) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\ntype CSIDriverExpansion interface{}\n\ntype CSINodeExpansion interface{}\n\ntype CSIStorageCapacityExpansion interface{}\n\ntype StorageClassExpansion interface{}\n\ntype VolumeAttachmentExpansion interface{}\n\ntype VolumeAttributesClassExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/storage_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\thttp \"net/http\"\n\n\tstoragev1beta1 \"k8s.io/api/storage/v1beta1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype StorageV1beta1Interface interface {\n\tRESTClient() rest.Interface\n\tCSIDriversGetter\n\tCSINodesGetter\n\tCSIStorageCapacitiesGetter\n\tStorageClassesGetter\n\tVolumeAttachmentsGetter\n\tVolumeAttributesClassesGetter\n}\n\n// StorageV1beta1Client is used to interact with features provided by the storage.k8s.io group.\ntype StorageV1beta1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *StorageV1beta1Client) CSIDrivers() CSIDriverInterface {\n\treturn newCSIDrivers(c)\n}\n\nfunc (c *StorageV1beta1Client) CSINodes() CSINodeInterface {\n\treturn newCSINodes(c)\n}\n\nfunc (c *StorageV1beta1Client) CSIStorageCapacities(namespace string) CSIStorageCapacityInterface {\n\treturn newCSIStorageCapacities(c, namespace)\n}\n\nfunc (c *StorageV1beta1Client) StorageClasses() StorageClassInterface {\n\treturn newStorageClasses(c)\n}\n\nfunc (c *StorageV1beta1Client) VolumeAttachments() VolumeAttachmentInterface {\n\treturn newVolumeAttachments(c)\n}\n\nfunc (c *StorageV1beta1Client) VolumeAttributesClasses() VolumeAttributesClassInterface {\n\treturn newVolumeAttributesClasses(c)\n}\n\n// NewForConfig creates a new StorageV1beta1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*StorageV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new StorageV1beta1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*StorageV1beta1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &StorageV1beta1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new StorageV1beta1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *StorageV1beta1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new StorageV1beta1Client for the given RESTClient.\nfunc New(c rest.Interface) *StorageV1beta1Client {\n\treturn &StorageV1beta1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := storagev1beta1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *StorageV1beta1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/storageclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\tstoragev1beta1 \"k8s.io/api/storage/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsstoragev1beta1 \"k8s.io/client-go/applyconfigurations/storage/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// StorageClassesGetter has a method to return a StorageClassInterface.\n// A group's client should implement this interface.\ntype StorageClassesGetter interface {\n\tStorageClasses() StorageClassInterface\n}\n\n// StorageClassInterface has methods to work with StorageClass resources.\ntype StorageClassInterface interface {\n\tCreate(ctx context.Context, storageClass *storagev1beta1.StorageClass, opts v1.CreateOptions) (*storagev1beta1.StorageClass, error)\n\tUpdate(ctx context.Context, storageClass *storagev1beta1.StorageClass, opts v1.UpdateOptions) (*storagev1beta1.StorageClass, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*storagev1beta1.StorageClass, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*storagev1beta1.StorageClassList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *storagev1beta1.StorageClass, err error)\n\tApply(ctx context.Context, storageClass *applyconfigurationsstoragev1beta1.StorageClassApplyConfiguration, opts v1.ApplyOptions) (result *storagev1beta1.StorageClass, err error)\n\tStorageClassExpansion\n}\n\n// storageClasses implements StorageClassInterface\ntype storageClasses struct {\n\t*gentype.ClientWithListAndApply[*storagev1beta1.StorageClass, *storagev1beta1.StorageClassList, *applyconfigurationsstoragev1beta1.StorageClassApplyConfiguration]\n}\n\n// newStorageClasses returns a StorageClasses\nfunc newStorageClasses(c *StorageV1beta1Client) *storageClasses {\n\treturn &storageClasses{\n\t\tgentype.NewClientWithListAndApply[*storagev1beta1.StorageClass, *storagev1beta1.StorageClassList, *applyconfigurationsstoragev1beta1.StorageClassApplyConfiguration](\n\t\t\t\"storageclasses\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *storagev1beta1.StorageClass { return &storagev1beta1.StorageClass{} },\n\t\t\tfunc() *storagev1beta1.StorageClassList { return &storagev1beta1.StorageClassList{} },\n\t\t\tgentype.PrefersProtobuf[*storagev1beta1.StorageClass](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/volumeattachment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\tstoragev1beta1 \"k8s.io/api/storage/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsstoragev1beta1 \"k8s.io/client-go/applyconfigurations/storage/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// VolumeAttachmentsGetter has a method to return a VolumeAttachmentInterface.\n// A group's client should implement this interface.\ntype VolumeAttachmentsGetter interface {\n\tVolumeAttachments() VolumeAttachmentInterface\n}\n\n// VolumeAttachmentInterface has methods to work with VolumeAttachment resources.\ntype VolumeAttachmentInterface interface {\n\tCreate(ctx context.Context, volumeAttachment *storagev1beta1.VolumeAttachment, opts v1.CreateOptions) (*storagev1beta1.VolumeAttachment, error)\n\tUpdate(ctx context.Context, volumeAttachment *storagev1beta1.VolumeAttachment, opts v1.UpdateOptions) (*storagev1beta1.VolumeAttachment, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, volumeAttachment *storagev1beta1.VolumeAttachment, opts v1.UpdateOptions) (*storagev1beta1.VolumeAttachment, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*storagev1beta1.VolumeAttachment, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*storagev1beta1.VolumeAttachmentList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *storagev1beta1.VolumeAttachment, err error)\n\tApply(ctx context.Context, volumeAttachment *applyconfigurationsstoragev1beta1.VolumeAttachmentApplyConfiguration, opts v1.ApplyOptions) (result *storagev1beta1.VolumeAttachment, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, volumeAttachment *applyconfigurationsstoragev1beta1.VolumeAttachmentApplyConfiguration, opts v1.ApplyOptions) (result *storagev1beta1.VolumeAttachment, err error)\n\tVolumeAttachmentExpansion\n}\n\n// volumeAttachments implements VolumeAttachmentInterface\ntype volumeAttachments struct {\n\t*gentype.ClientWithListAndApply[*storagev1beta1.VolumeAttachment, *storagev1beta1.VolumeAttachmentList, *applyconfigurationsstoragev1beta1.VolumeAttachmentApplyConfiguration]\n}\n\n// newVolumeAttachments returns a VolumeAttachments\nfunc newVolumeAttachments(c *StorageV1beta1Client) *volumeAttachments {\n\treturn &volumeAttachments{\n\t\tgentype.NewClientWithListAndApply[*storagev1beta1.VolumeAttachment, *storagev1beta1.VolumeAttachmentList, *applyconfigurationsstoragev1beta1.VolumeAttachmentApplyConfiguration](\n\t\t\t\"volumeattachments\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *storagev1beta1.VolumeAttachment { return &storagev1beta1.VolumeAttachment{} },\n\t\t\tfunc() *storagev1beta1.VolumeAttachmentList { return &storagev1beta1.VolumeAttachmentList{} },\n\t\t\tgentype.PrefersProtobuf[*storagev1beta1.VolumeAttachment](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storage/v1beta1/volumeattributesclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcontext \"context\"\n\n\tstoragev1beta1 \"k8s.io/api/storage/v1beta1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsstoragev1beta1 \"k8s.io/client-go/applyconfigurations/storage/v1beta1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// VolumeAttributesClassesGetter has a method to return a VolumeAttributesClassInterface.\n// A group's client should implement this interface.\ntype VolumeAttributesClassesGetter interface {\n\tVolumeAttributesClasses() VolumeAttributesClassInterface\n}\n\n// VolumeAttributesClassInterface has methods to work with VolumeAttributesClass resources.\ntype VolumeAttributesClassInterface interface {\n\tCreate(ctx context.Context, volumeAttributesClass *storagev1beta1.VolumeAttributesClass, opts v1.CreateOptions) (*storagev1beta1.VolumeAttributesClass, error)\n\tUpdate(ctx context.Context, volumeAttributesClass *storagev1beta1.VolumeAttributesClass, opts v1.UpdateOptions) (*storagev1beta1.VolumeAttributesClass, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*storagev1beta1.VolumeAttributesClass, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*storagev1beta1.VolumeAttributesClassList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *storagev1beta1.VolumeAttributesClass, err error)\n\tApply(ctx context.Context, volumeAttributesClass *applyconfigurationsstoragev1beta1.VolumeAttributesClassApplyConfiguration, opts v1.ApplyOptions) (result *storagev1beta1.VolumeAttributesClass, err error)\n\tVolumeAttributesClassExpansion\n}\n\n// volumeAttributesClasses implements VolumeAttributesClassInterface\ntype volumeAttributesClasses struct {\n\t*gentype.ClientWithListAndApply[*storagev1beta1.VolumeAttributesClass, *storagev1beta1.VolumeAttributesClassList, *applyconfigurationsstoragev1beta1.VolumeAttributesClassApplyConfiguration]\n}\n\n// newVolumeAttributesClasses returns a VolumeAttributesClasses\nfunc newVolumeAttributesClasses(c *StorageV1beta1Client) *volumeAttributesClasses {\n\treturn &volumeAttributesClasses{\n\t\tgentype.NewClientWithListAndApply[*storagev1beta1.VolumeAttributesClass, *storagev1beta1.VolumeAttributesClassList, *applyconfigurationsstoragev1beta1.VolumeAttributesClassApplyConfiguration](\n\t\t\t\"volumeattributesclasses\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *storagev1beta1.VolumeAttributesClass { return &storagev1beta1.VolumeAttributesClass{} },\n\t\t\tfunc() *storagev1beta1.VolumeAttributesClassList { return &storagev1beta1.VolumeAttributesClassList{} },\n\t\t\tgentype.PrefersProtobuf[*storagev1beta1.VolumeAttributesClass](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storagemigration/v1alpha1/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// This package has the automatically generated typed clients.\npackage v1alpha1\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storagemigration/v1alpha1/fake/doc.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\n// Package fake has the automatically generated clients.\npackage fake\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storagemigration/v1alpha1/fake/fake_storagemigration_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha1 \"k8s.io/client-go/kubernetes/typed/storagemigration/v1alpha1\"\n\trest \"k8s.io/client-go/rest\"\n\ttesting \"k8s.io/client-go/testing\"\n)\n\ntype FakeStoragemigrationV1alpha1 struct {\n\t*testing.Fake\n}\n\nfunc (c *FakeStoragemigrationV1alpha1) StorageVersionMigrations() v1alpha1.StorageVersionMigrationInterface {\n\treturn newFakeStorageVersionMigrations(c)\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *FakeStoragemigrationV1alpha1) RESTClient() rest.Interface {\n\tvar ret *rest.RESTClient\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storagemigration/v1alpha1/fake/fake_storageversionmigration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage fake\n\nimport (\n\tv1alpha1 \"k8s.io/api/storagemigration/v1alpha1\"\n\tstoragemigrationv1alpha1 \"k8s.io/client-go/applyconfigurations/storagemigration/v1alpha1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\ttypedstoragemigrationv1alpha1 \"k8s.io/client-go/kubernetes/typed/storagemigration/v1alpha1\"\n)\n\n// fakeStorageVersionMigrations implements StorageVersionMigrationInterface\ntype fakeStorageVersionMigrations struct {\n\t*gentype.FakeClientWithListAndApply[*v1alpha1.StorageVersionMigration, *v1alpha1.StorageVersionMigrationList, *storagemigrationv1alpha1.StorageVersionMigrationApplyConfiguration]\n\tFake *FakeStoragemigrationV1alpha1\n}\n\nfunc newFakeStorageVersionMigrations(fake *FakeStoragemigrationV1alpha1) typedstoragemigrationv1alpha1.StorageVersionMigrationInterface {\n\treturn &fakeStorageVersionMigrations{\n\t\tgentype.NewFakeClientWithListAndApply[*v1alpha1.StorageVersionMigration, *v1alpha1.StorageVersionMigrationList, *storagemigrationv1alpha1.StorageVersionMigrationApplyConfiguration](\n\t\t\tfake.Fake,\n\t\t\t\"\",\n\t\t\tv1alpha1.SchemeGroupVersion.WithResource(\"storageversionmigrations\"),\n\t\t\tv1alpha1.SchemeGroupVersion.WithKind(\"StorageVersionMigration\"),\n\t\t\tfunc() *v1alpha1.StorageVersionMigration { return &v1alpha1.StorageVersionMigration{} },\n\t\t\tfunc() *v1alpha1.StorageVersionMigrationList { return &v1alpha1.StorageVersionMigrationList{} },\n\t\t\tfunc(dst, src *v1alpha1.StorageVersionMigrationList) { dst.ListMeta = src.ListMeta },\n\t\t\tfunc(list *v1alpha1.StorageVersionMigrationList) []*v1alpha1.StorageVersionMigration {\n\t\t\t\treturn gentype.ToPointerSlice(list.Items)\n\t\t\t},\n\t\t\tfunc(list *v1alpha1.StorageVersionMigrationList, items []*v1alpha1.StorageVersionMigration) {\n\t\t\t\tlist.Items = gentype.FromPointerSlice(items)\n\t\t\t},\n\t\t),\n\t\tfake,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storagemigration/v1alpha1/generated_expansion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\ntype StorageVersionMigrationExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storagemigration/v1alpha1/storagemigration_client.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\thttp \"net/http\"\n\n\tstoragemigrationv1alpha1 \"k8s.io/api/storagemigration/v1alpha1\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n\trest \"k8s.io/client-go/rest\"\n)\n\ntype StoragemigrationV1alpha1Interface interface {\n\tRESTClient() rest.Interface\n\tStorageVersionMigrationsGetter\n}\n\n// StoragemigrationV1alpha1Client is used to interact with features provided by the storagemigration.k8s.io group.\ntype StoragemigrationV1alpha1Client struct {\n\trestClient rest.Interface\n}\n\nfunc (c *StoragemigrationV1alpha1Client) StorageVersionMigrations() StorageVersionMigrationInterface {\n\treturn newStorageVersionMigrations(c)\n}\n\n// NewForConfig creates a new StoragemigrationV1alpha1Client for the given config.\n// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient),\n// where httpClient was generated with rest.HTTPClientFor(c).\nfunc NewForConfig(c *rest.Config) (*StoragemigrationV1alpha1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\thttpClient, err := rest.HTTPClientFor(&config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn NewForConfigAndClient(&config, httpClient)\n}\n\n// NewForConfigAndClient creates a new StoragemigrationV1alpha1Client for the given config and http client.\n// Note the http client provided takes precedence over the configured transport values.\nfunc NewForConfigAndClient(c *rest.Config, h *http.Client) (*StoragemigrationV1alpha1Client, error) {\n\tconfig := *c\n\tif err := setConfigDefaults(&config); err != nil {\n\t\treturn nil, err\n\t}\n\tclient, err := rest.RESTClientForConfigAndClient(&config, h)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &StoragemigrationV1alpha1Client{client}, nil\n}\n\n// NewForConfigOrDie creates a new StoragemigrationV1alpha1Client for the given config and\n// panics if there is an error in the config.\nfunc NewForConfigOrDie(c *rest.Config) *StoragemigrationV1alpha1Client {\n\tclient, err := NewForConfig(c)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn client\n}\n\n// New creates a new StoragemigrationV1alpha1Client for the given RESTClient.\nfunc New(c rest.Interface) *StoragemigrationV1alpha1Client {\n\treturn &StoragemigrationV1alpha1Client{c}\n}\n\nfunc setConfigDefaults(config *rest.Config) error {\n\tgv := storagemigrationv1alpha1.SchemeGroupVersion\n\tconfig.GroupVersion = &gv\n\tconfig.APIPath = \"/apis\"\n\tconfig.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()\n\n\tif config.UserAgent == \"\" {\n\t\tconfig.UserAgent = rest.DefaultKubernetesUserAgent()\n\t}\n\n\treturn nil\n}\n\n// RESTClient returns a RESTClient that is used to communicate\n// with API server by this client implementation.\nfunc (c *StoragemigrationV1alpha1Client) RESTClient() rest.Interface {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.restClient\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/kubernetes/typed/storagemigration/v1alpha1/storageversionmigration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by client-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcontext \"context\"\n\n\tstoragemigrationv1alpha1 \"k8s.io/api/storagemigration/v1alpha1\"\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\ttypes \"k8s.io/apimachinery/pkg/types\"\n\twatch \"k8s.io/apimachinery/pkg/watch\"\n\tapplyconfigurationsstoragemigrationv1alpha1 \"k8s.io/client-go/applyconfigurations/storagemigration/v1alpha1\"\n\tgentype \"k8s.io/client-go/gentype\"\n\tscheme \"k8s.io/client-go/kubernetes/scheme\"\n)\n\n// StorageVersionMigrationsGetter has a method to return a StorageVersionMigrationInterface.\n// A group's client should implement this interface.\ntype StorageVersionMigrationsGetter interface {\n\tStorageVersionMigrations() StorageVersionMigrationInterface\n}\n\n// StorageVersionMigrationInterface has methods to work with StorageVersionMigration resources.\ntype StorageVersionMigrationInterface interface {\n\tCreate(ctx context.Context, storageVersionMigration *storagemigrationv1alpha1.StorageVersionMigration, opts v1.CreateOptions) (*storagemigrationv1alpha1.StorageVersionMigration, error)\n\tUpdate(ctx context.Context, storageVersionMigration *storagemigrationv1alpha1.StorageVersionMigration, opts v1.UpdateOptions) (*storagemigrationv1alpha1.StorageVersionMigration, error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().\n\tUpdateStatus(ctx context.Context, storageVersionMigration *storagemigrationv1alpha1.StorageVersionMigration, opts v1.UpdateOptions) (*storagemigrationv1alpha1.StorageVersionMigration, error)\n\tDelete(ctx context.Context, name string, opts v1.DeleteOptions) error\n\tDeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error\n\tGet(ctx context.Context, name string, opts v1.GetOptions) (*storagemigrationv1alpha1.StorageVersionMigration, error)\n\tList(ctx context.Context, opts v1.ListOptions) (*storagemigrationv1alpha1.StorageVersionMigrationList, error)\n\tWatch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)\n\tPatch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *storagemigrationv1alpha1.StorageVersionMigration, err error)\n\tApply(ctx context.Context, storageVersionMigration *applyconfigurationsstoragemigrationv1alpha1.StorageVersionMigrationApplyConfiguration, opts v1.ApplyOptions) (result *storagemigrationv1alpha1.StorageVersionMigration, err error)\n\t// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus().\n\tApplyStatus(ctx context.Context, storageVersionMigration *applyconfigurationsstoragemigrationv1alpha1.StorageVersionMigrationApplyConfiguration, opts v1.ApplyOptions) (result *storagemigrationv1alpha1.StorageVersionMigration, err error)\n\tStorageVersionMigrationExpansion\n}\n\n// storageVersionMigrations implements StorageVersionMigrationInterface\ntype storageVersionMigrations struct {\n\t*gentype.ClientWithListAndApply[*storagemigrationv1alpha1.StorageVersionMigration, *storagemigrationv1alpha1.StorageVersionMigrationList, *applyconfigurationsstoragemigrationv1alpha1.StorageVersionMigrationApplyConfiguration]\n}\n\n// newStorageVersionMigrations returns a StorageVersionMigrations\nfunc newStorageVersionMigrations(c *StoragemigrationV1alpha1Client) *storageVersionMigrations {\n\treturn &storageVersionMigrations{\n\t\tgentype.NewClientWithListAndApply[*storagemigrationv1alpha1.StorageVersionMigration, *storagemigrationv1alpha1.StorageVersionMigrationList, *applyconfigurationsstoragemigrationv1alpha1.StorageVersionMigrationApplyConfiguration](\n\t\t\t\"storageversionmigrations\",\n\t\t\tc.RESTClient(),\n\t\t\tscheme.ParameterCodec,\n\t\t\t\"\",\n\t\t\tfunc() *storagemigrationv1alpha1.StorageVersionMigration {\n\t\t\t\treturn &storagemigrationv1alpha1.StorageVersionMigration{}\n\t\t\t},\n\t\t\tfunc() *storagemigrationv1alpha1.StorageVersionMigrationList {\n\t\t\t\treturn &storagemigrationv1alpha1.StorageVersionMigrationList{}\n\t\t\t},\n\t\t\tgentype.PrefersProtobuf[*storagemigrationv1alpha1.StorageVersionMigration](),\n\t\t),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/admissionregistration/v1/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\n// MutatingWebhookConfigurationListerExpansion allows custom methods to be added to\n// MutatingWebhookConfigurationLister.\ntype MutatingWebhookConfigurationListerExpansion interface{}\n\n// ValidatingAdmissionPolicyListerExpansion allows custom methods to be added to\n// ValidatingAdmissionPolicyLister.\ntype ValidatingAdmissionPolicyListerExpansion interface{}\n\n// ValidatingAdmissionPolicyBindingListerExpansion allows custom methods to be added to\n// ValidatingAdmissionPolicyBindingLister.\ntype ValidatingAdmissionPolicyBindingListerExpansion interface{}\n\n// ValidatingWebhookConfigurationListerExpansion allows custom methods to be added to\n// ValidatingWebhookConfigurationLister.\ntype ValidatingWebhookConfigurationListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/admissionregistration/v1/mutatingwebhookconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tadmissionregistrationv1 \"k8s.io/api/admissionregistration/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// MutatingWebhookConfigurationLister helps list MutatingWebhookConfigurations.\n// All objects returned here must be treated as read-only.\ntype MutatingWebhookConfigurationLister interface {\n\t// List lists all MutatingWebhookConfigurations in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*admissionregistrationv1.MutatingWebhookConfiguration, err error)\n\t// Get retrieves the MutatingWebhookConfiguration from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*admissionregistrationv1.MutatingWebhookConfiguration, error)\n\tMutatingWebhookConfigurationListerExpansion\n}\n\n// mutatingWebhookConfigurationLister implements the MutatingWebhookConfigurationLister interface.\ntype mutatingWebhookConfigurationLister struct {\n\tlisters.ResourceIndexer[*admissionregistrationv1.MutatingWebhookConfiguration]\n}\n\n// NewMutatingWebhookConfigurationLister returns a new MutatingWebhookConfigurationLister.\nfunc NewMutatingWebhookConfigurationLister(indexer cache.Indexer) MutatingWebhookConfigurationLister {\n\treturn &mutatingWebhookConfigurationLister{listers.New[*admissionregistrationv1.MutatingWebhookConfiguration](indexer, admissionregistrationv1.Resource(\"mutatingwebhookconfiguration\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/admissionregistration/v1/validatingadmissionpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tadmissionregistrationv1 \"k8s.io/api/admissionregistration/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ValidatingAdmissionPolicyLister helps list ValidatingAdmissionPolicies.\n// All objects returned here must be treated as read-only.\ntype ValidatingAdmissionPolicyLister interface {\n\t// List lists all ValidatingAdmissionPolicies in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*admissionregistrationv1.ValidatingAdmissionPolicy, err error)\n\t// Get retrieves the ValidatingAdmissionPolicy from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*admissionregistrationv1.ValidatingAdmissionPolicy, error)\n\tValidatingAdmissionPolicyListerExpansion\n}\n\n// validatingAdmissionPolicyLister implements the ValidatingAdmissionPolicyLister interface.\ntype validatingAdmissionPolicyLister struct {\n\tlisters.ResourceIndexer[*admissionregistrationv1.ValidatingAdmissionPolicy]\n}\n\n// NewValidatingAdmissionPolicyLister returns a new ValidatingAdmissionPolicyLister.\nfunc NewValidatingAdmissionPolicyLister(indexer cache.Indexer) ValidatingAdmissionPolicyLister {\n\treturn &validatingAdmissionPolicyLister{listers.New[*admissionregistrationv1.ValidatingAdmissionPolicy](indexer, admissionregistrationv1.Resource(\"validatingadmissionpolicy\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/admissionregistration/v1/validatingadmissionpolicybinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tadmissionregistrationv1 \"k8s.io/api/admissionregistration/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ValidatingAdmissionPolicyBindingLister helps list ValidatingAdmissionPolicyBindings.\n// All objects returned here must be treated as read-only.\ntype ValidatingAdmissionPolicyBindingLister interface {\n\t// List lists all ValidatingAdmissionPolicyBindings in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*admissionregistrationv1.ValidatingAdmissionPolicyBinding, err error)\n\t// Get retrieves the ValidatingAdmissionPolicyBinding from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*admissionregistrationv1.ValidatingAdmissionPolicyBinding, error)\n\tValidatingAdmissionPolicyBindingListerExpansion\n}\n\n// validatingAdmissionPolicyBindingLister implements the ValidatingAdmissionPolicyBindingLister interface.\ntype validatingAdmissionPolicyBindingLister struct {\n\tlisters.ResourceIndexer[*admissionregistrationv1.ValidatingAdmissionPolicyBinding]\n}\n\n// NewValidatingAdmissionPolicyBindingLister returns a new ValidatingAdmissionPolicyBindingLister.\nfunc NewValidatingAdmissionPolicyBindingLister(indexer cache.Indexer) ValidatingAdmissionPolicyBindingLister {\n\treturn &validatingAdmissionPolicyBindingLister{listers.New[*admissionregistrationv1.ValidatingAdmissionPolicyBinding](indexer, admissionregistrationv1.Resource(\"validatingadmissionpolicybinding\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/admissionregistration/v1/validatingwebhookconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tadmissionregistrationv1 \"k8s.io/api/admissionregistration/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ValidatingWebhookConfigurationLister helps list ValidatingWebhookConfigurations.\n// All objects returned here must be treated as read-only.\ntype ValidatingWebhookConfigurationLister interface {\n\t// List lists all ValidatingWebhookConfigurations in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*admissionregistrationv1.ValidatingWebhookConfiguration, err error)\n\t// Get retrieves the ValidatingWebhookConfiguration from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*admissionregistrationv1.ValidatingWebhookConfiguration, error)\n\tValidatingWebhookConfigurationListerExpansion\n}\n\n// validatingWebhookConfigurationLister implements the ValidatingWebhookConfigurationLister interface.\ntype validatingWebhookConfigurationLister struct {\n\tlisters.ResourceIndexer[*admissionregistrationv1.ValidatingWebhookConfiguration]\n}\n\n// NewValidatingWebhookConfigurationLister returns a new ValidatingWebhookConfigurationLister.\nfunc NewValidatingWebhookConfigurationLister(indexer cache.Indexer) ValidatingWebhookConfigurationLister {\n\treturn &validatingWebhookConfigurationLister{listers.New[*admissionregistrationv1.ValidatingWebhookConfiguration](indexer, admissionregistrationv1.Resource(\"validatingwebhookconfiguration\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/admissionregistration/v1alpha1/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// MutatingAdmissionPolicyListerExpansion allows custom methods to be added to\n// MutatingAdmissionPolicyLister.\ntype MutatingAdmissionPolicyListerExpansion interface{}\n\n// MutatingAdmissionPolicyBindingListerExpansion allows custom methods to be added to\n// MutatingAdmissionPolicyBindingLister.\ntype MutatingAdmissionPolicyBindingListerExpansion interface{}\n\n// ValidatingAdmissionPolicyListerExpansion allows custom methods to be added to\n// ValidatingAdmissionPolicyLister.\ntype ValidatingAdmissionPolicyListerExpansion interface{}\n\n// ValidatingAdmissionPolicyBindingListerExpansion allows custom methods to be added to\n// ValidatingAdmissionPolicyBindingLister.\ntype ValidatingAdmissionPolicyBindingListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/admissionregistration/v1alpha1/mutatingadmissionpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tadmissionregistrationv1alpha1 \"k8s.io/api/admissionregistration/v1alpha1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// MutatingAdmissionPolicyLister helps list MutatingAdmissionPolicies.\n// All objects returned here must be treated as read-only.\ntype MutatingAdmissionPolicyLister interface {\n\t// List lists all MutatingAdmissionPolicies in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*admissionregistrationv1alpha1.MutatingAdmissionPolicy, err error)\n\t// Get retrieves the MutatingAdmissionPolicy from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*admissionregistrationv1alpha1.MutatingAdmissionPolicy, error)\n\tMutatingAdmissionPolicyListerExpansion\n}\n\n// mutatingAdmissionPolicyLister implements the MutatingAdmissionPolicyLister interface.\ntype mutatingAdmissionPolicyLister struct {\n\tlisters.ResourceIndexer[*admissionregistrationv1alpha1.MutatingAdmissionPolicy]\n}\n\n// NewMutatingAdmissionPolicyLister returns a new MutatingAdmissionPolicyLister.\nfunc NewMutatingAdmissionPolicyLister(indexer cache.Indexer) MutatingAdmissionPolicyLister {\n\treturn &mutatingAdmissionPolicyLister{listers.New[*admissionregistrationv1alpha1.MutatingAdmissionPolicy](indexer, admissionregistrationv1alpha1.Resource(\"mutatingadmissionpolicy\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/admissionregistration/v1alpha1/mutatingadmissionpolicybinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tadmissionregistrationv1alpha1 \"k8s.io/api/admissionregistration/v1alpha1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// MutatingAdmissionPolicyBindingLister helps list MutatingAdmissionPolicyBindings.\n// All objects returned here must be treated as read-only.\ntype MutatingAdmissionPolicyBindingLister interface {\n\t// List lists all MutatingAdmissionPolicyBindings in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*admissionregistrationv1alpha1.MutatingAdmissionPolicyBinding, err error)\n\t// Get retrieves the MutatingAdmissionPolicyBinding from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*admissionregistrationv1alpha1.MutatingAdmissionPolicyBinding, error)\n\tMutatingAdmissionPolicyBindingListerExpansion\n}\n\n// mutatingAdmissionPolicyBindingLister implements the MutatingAdmissionPolicyBindingLister interface.\ntype mutatingAdmissionPolicyBindingLister struct {\n\tlisters.ResourceIndexer[*admissionregistrationv1alpha1.MutatingAdmissionPolicyBinding]\n}\n\n// NewMutatingAdmissionPolicyBindingLister returns a new MutatingAdmissionPolicyBindingLister.\nfunc NewMutatingAdmissionPolicyBindingLister(indexer cache.Indexer) MutatingAdmissionPolicyBindingLister {\n\treturn &mutatingAdmissionPolicyBindingLister{listers.New[*admissionregistrationv1alpha1.MutatingAdmissionPolicyBinding](indexer, admissionregistrationv1alpha1.Resource(\"mutatingadmissionpolicybinding\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/admissionregistration/v1alpha1/validatingadmissionpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tadmissionregistrationv1alpha1 \"k8s.io/api/admissionregistration/v1alpha1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ValidatingAdmissionPolicyLister helps list ValidatingAdmissionPolicies.\n// All objects returned here must be treated as read-only.\ntype ValidatingAdmissionPolicyLister interface {\n\t// List lists all ValidatingAdmissionPolicies in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*admissionregistrationv1alpha1.ValidatingAdmissionPolicy, err error)\n\t// Get retrieves the ValidatingAdmissionPolicy from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*admissionregistrationv1alpha1.ValidatingAdmissionPolicy, error)\n\tValidatingAdmissionPolicyListerExpansion\n}\n\n// validatingAdmissionPolicyLister implements the ValidatingAdmissionPolicyLister interface.\ntype validatingAdmissionPolicyLister struct {\n\tlisters.ResourceIndexer[*admissionregistrationv1alpha1.ValidatingAdmissionPolicy]\n}\n\n// NewValidatingAdmissionPolicyLister returns a new ValidatingAdmissionPolicyLister.\nfunc NewValidatingAdmissionPolicyLister(indexer cache.Indexer) ValidatingAdmissionPolicyLister {\n\treturn &validatingAdmissionPolicyLister{listers.New[*admissionregistrationv1alpha1.ValidatingAdmissionPolicy](indexer, admissionregistrationv1alpha1.Resource(\"validatingadmissionpolicy\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/admissionregistration/v1alpha1/validatingadmissionpolicybinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tadmissionregistrationv1alpha1 \"k8s.io/api/admissionregistration/v1alpha1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ValidatingAdmissionPolicyBindingLister helps list ValidatingAdmissionPolicyBindings.\n// All objects returned here must be treated as read-only.\ntype ValidatingAdmissionPolicyBindingLister interface {\n\t// List lists all ValidatingAdmissionPolicyBindings in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*admissionregistrationv1alpha1.ValidatingAdmissionPolicyBinding, err error)\n\t// Get retrieves the ValidatingAdmissionPolicyBinding from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*admissionregistrationv1alpha1.ValidatingAdmissionPolicyBinding, error)\n\tValidatingAdmissionPolicyBindingListerExpansion\n}\n\n// validatingAdmissionPolicyBindingLister implements the ValidatingAdmissionPolicyBindingLister interface.\ntype validatingAdmissionPolicyBindingLister struct {\n\tlisters.ResourceIndexer[*admissionregistrationv1alpha1.ValidatingAdmissionPolicyBinding]\n}\n\n// NewValidatingAdmissionPolicyBindingLister returns a new ValidatingAdmissionPolicyBindingLister.\nfunc NewValidatingAdmissionPolicyBindingLister(indexer cache.Indexer) ValidatingAdmissionPolicyBindingLister {\n\treturn &validatingAdmissionPolicyBindingLister{listers.New[*admissionregistrationv1alpha1.ValidatingAdmissionPolicyBinding](indexer, admissionregistrationv1alpha1.Resource(\"validatingadmissionpolicybinding\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/admissionregistration/v1beta1/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// MutatingWebhookConfigurationListerExpansion allows custom methods to be added to\n// MutatingWebhookConfigurationLister.\ntype MutatingWebhookConfigurationListerExpansion interface{}\n\n// ValidatingAdmissionPolicyListerExpansion allows custom methods to be added to\n// ValidatingAdmissionPolicyLister.\ntype ValidatingAdmissionPolicyListerExpansion interface{}\n\n// ValidatingAdmissionPolicyBindingListerExpansion allows custom methods to be added to\n// ValidatingAdmissionPolicyBindingLister.\ntype ValidatingAdmissionPolicyBindingListerExpansion interface{}\n\n// ValidatingWebhookConfigurationListerExpansion allows custom methods to be added to\n// ValidatingWebhookConfigurationLister.\ntype ValidatingWebhookConfigurationListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/admissionregistration/v1beta1/mutatingwebhookconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tadmissionregistrationv1beta1 \"k8s.io/api/admissionregistration/v1beta1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// MutatingWebhookConfigurationLister helps list MutatingWebhookConfigurations.\n// All objects returned here must be treated as read-only.\ntype MutatingWebhookConfigurationLister interface {\n\t// List lists all MutatingWebhookConfigurations in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*admissionregistrationv1beta1.MutatingWebhookConfiguration, err error)\n\t// Get retrieves the MutatingWebhookConfiguration from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*admissionregistrationv1beta1.MutatingWebhookConfiguration, error)\n\tMutatingWebhookConfigurationListerExpansion\n}\n\n// mutatingWebhookConfigurationLister implements the MutatingWebhookConfigurationLister interface.\ntype mutatingWebhookConfigurationLister struct {\n\tlisters.ResourceIndexer[*admissionregistrationv1beta1.MutatingWebhookConfiguration]\n}\n\n// NewMutatingWebhookConfigurationLister returns a new MutatingWebhookConfigurationLister.\nfunc NewMutatingWebhookConfigurationLister(indexer cache.Indexer) MutatingWebhookConfigurationLister {\n\treturn &mutatingWebhookConfigurationLister{listers.New[*admissionregistrationv1beta1.MutatingWebhookConfiguration](indexer, admissionregistrationv1beta1.Resource(\"mutatingwebhookconfiguration\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/admissionregistration/v1beta1/validatingadmissionpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tadmissionregistrationv1beta1 \"k8s.io/api/admissionregistration/v1beta1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ValidatingAdmissionPolicyLister helps list ValidatingAdmissionPolicies.\n// All objects returned here must be treated as read-only.\ntype ValidatingAdmissionPolicyLister interface {\n\t// List lists all ValidatingAdmissionPolicies in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*admissionregistrationv1beta1.ValidatingAdmissionPolicy, err error)\n\t// Get retrieves the ValidatingAdmissionPolicy from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*admissionregistrationv1beta1.ValidatingAdmissionPolicy, error)\n\tValidatingAdmissionPolicyListerExpansion\n}\n\n// validatingAdmissionPolicyLister implements the ValidatingAdmissionPolicyLister interface.\ntype validatingAdmissionPolicyLister struct {\n\tlisters.ResourceIndexer[*admissionregistrationv1beta1.ValidatingAdmissionPolicy]\n}\n\n// NewValidatingAdmissionPolicyLister returns a new ValidatingAdmissionPolicyLister.\nfunc NewValidatingAdmissionPolicyLister(indexer cache.Indexer) ValidatingAdmissionPolicyLister {\n\treturn &validatingAdmissionPolicyLister{listers.New[*admissionregistrationv1beta1.ValidatingAdmissionPolicy](indexer, admissionregistrationv1beta1.Resource(\"validatingadmissionpolicy\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/admissionregistration/v1beta1/validatingadmissionpolicybinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tadmissionregistrationv1beta1 \"k8s.io/api/admissionregistration/v1beta1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ValidatingAdmissionPolicyBindingLister helps list ValidatingAdmissionPolicyBindings.\n// All objects returned here must be treated as read-only.\ntype ValidatingAdmissionPolicyBindingLister interface {\n\t// List lists all ValidatingAdmissionPolicyBindings in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*admissionregistrationv1beta1.ValidatingAdmissionPolicyBinding, err error)\n\t// Get retrieves the ValidatingAdmissionPolicyBinding from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*admissionregistrationv1beta1.ValidatingAdmissionPolicyBinding, error)\n\tValidatingAdmissionPolicyBindingListerExpansion\n}\n\n// validatingAdmissionPolicyBindingLister implements the ValidatingAdmissionPolicyBindingLister interface.\ntype validatingAdmissionPolicyBindingLister struct {\n\tlisters.ResourceIndexer[*admissionregistrationv1beta1.ValidatingAdmissionPolicyBinding]\n}\n\n// NewValidatingAdmissionPolicyBindingLister returns a new ValidatingAdmissionPolicyBindingLister.\nfunc NewValidatingAdmissionPolicyBindingLister(indexer cache.Indexer) ValidatingAdmissionPolicyBindingLister {\n\treturn &validatingAdmissionPolicyBindingLister{listers.New[*admissionregistrationv1beta1.ValidatingAdmissionPolicyBinding](indexer, admissionregistrationv1beta1.Resource(\"validatingadmissionpolicybinding\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/admissionregistration/v1beta1/validatingwebhookconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tadmissionregistrationv1beta1 \"k8s.io/api/admissionregistration/v1beta1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ValidatingWebhookConfigurationLister helps list ValidatingWebhookConfigurations.\n// All objects returned here must be treated as read-only.\ntype ValidatingWebhookConfigurationLister interface {\n\t// List lists all ValidatingWebhookConfigurations in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*admissionregistrationv1beta1.ValidatingWebhookConfiguration, err error)\n\t// Get retrieves the ValidatingWebhookConfiguration from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*admissionregistrationv1beta1.ValidatingWebhookConfiguration, error)\n\tValidatingWebhookConfigurationListerExpansion\n}\n\n// validatingWebhookConfigurationLister implements the ValidatingWebhookConfigurationLister interface.\ntype validatingWebhookConfigurationLister struct {\n\tlisters.ResourceIndexer[*admissionregistrationv1beta1.ValidatingWebhookConfiguration]\n}\n\n// NewValidatingWebhookConfigurationLister returns a new ValidatingWebhookConfigurationLister.\nfunc NewValidatingWebhookConfigurationLister(indexer cache.Indexer) ValidatingWebhookConfigurationLister {\n\treturn &validatingWebhookConfigurationLister{listers.New[*admissionregistrationv1beta1.ValidatingWebhookConfiguration](indexer, admissionregistrationv1beta1.Resource(\"validatingwebhookconfiguration\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/apiserverinternal/v1alpha1/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// StorageVersionListerExpansion allows custom methods to be added to\n// StorageVersionLister.\ntype StorageVersionListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/apiserverinternal/v1alpha1/storageversion.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tapiserverinternalv1alpha1 \"k8s.io/api/apiserverinternal/v1alpha1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// StorageVersionLister helps list StorageVersions.\n// All objects returned here must be treated as read-only.\ntype StorageVersionLister interface {\n\t// List lists all StorageVersions in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*apiserverinternalv1alpha1.StorageVersion, err error)\n\t// Get retrieves the StorageVersion from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*apiserverinternalv1alpha1.StorageVersion, error)\n\tStorageVersionListerExpansion\n}\n\n// storageVersionLister implements the StorageVersionLister interface.\ntype storageVersionLister struct {\n\tlisters.ResourceIndexer[*apiserverinternalv1alpha1.StorageVersion]\n}\n\n// NewStorageVersionLister returns a new StorageVersionLister.\nfunc NewStorageVersionLister(indexer cache.Indexer) StorageVersionLister {\n\treturn &storageVersionLister{listers.New[*apiserverinternalv1alpha1.StorageVersion](indexer, apiserverinternalv1alpha1.Resource(\"storageversion\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/apps/v1/controllerrevision.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tappsv1 \"k8s.io/api/apps/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ControllerRevisionLister helps list ControllerRevisions.\n// All objects returned here must be treated as read-only.\ntype ControllerRevisionLister interface {\n\t// List lists all ControllerRevisions in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*appsv1.ControllerRevision, err error)\n\t// ControllerRevisions returns an object that can list and get ControllerRevisions.\n\tControllerRevisions(namespace string) ControllerRevisionNamespaceLister\n\tControllerRevisionListerExpansion\n}\n\n// controllerRevisionLister implements the ControllerRevisionLister interface.\ntype controllerRevisionLister struct {\n\tlisters.ResourceIndexer[*appsv1.ControllerRevision]\n}\n\n// NewControllerRevisionLister returns a new ControllerRevisionLister.\nfunc NewControllerRevisionLister(indexer cache.Indexer) ControllerRevisionLister {\n\treturn &controllerRevisionLister{listers.New[*appsv1.ControllerRevision](indexer, appsv1.Resource(\"controllerrevision\"))}\n}\n\n// ControllerRevisions returns an object that can list and get ControllerRevisions.\nfunc (s *controllerRevisionLister) ControllerRevisions(namespace string) ControllerRevisionNamespaceLister {\n\treturn controllerRevisionNamespaceLister{listers.NewNamespaced[*appsv1.ControllerRevision](s.ResourceIndexer, namespace)}\n}\n\n// ControllerRevisionNamespaceLister helps list and get ControllerRevisions.\n// All objects returned here must be treated as read-only.\ntype ControllerRevisionNamespaceLister interface {\n\t// List lists all ControllerRevisions in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*appsv1.ControllerRevision, err error)\n\t// Get retrieves the ControllerRevision from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*appsv1.ControllerRevision, error)\n\tControllerRevisionNamespaceListerExpansion\n}\n\n// controllerRevisionNamespaceLister implements the ControllerRevisionNamespaceLister\n// interface.\ntype controllerRevisionNamespaceLister struct {\n\tlisters.ResourceIndexer[*appsv1.ControllerRevision]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/apps/v1/daemonset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tappsv1 \"k8s.io/api/apps/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// DaemonSetLister helps list DaemonSets.\n// All objects returned here must be treated as read-only.\ntype DaemonSetLister interface {\n\t// List lists all DaemonSets in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*appsv1.DaemonSet, err error)\n\t// DaemonSets returns an object that can list and get DaemonSets.\n\tDaemonSets(namespace string) DaemonSetNamespaceLister\n\tDaemonSetListerExpansion\n}\n\n// daemonSetLister implements the DaemonSetLister interface.\ntype daemonSetLister struct {\n\tlisters.ResourceIndexer[*appsv1.DaemonSet]\n}\n\n// NewDaemonSetLister returns a new DaemonSetLister.\nfunc NewDaemonSetLister(indexer cache.Indexer) DaemonSetLister {\n\treturn &daemonSetLister{listers.New[*appsv1.DaemonSet](indexer, appsv1.Resource(\"daemonset\"))}\n}\n\n// DaemonSets returns an object that can list and get DaemonSets.\nfunc (s *daemonSetLister) DaemonSets(namespace string) DaemonSetNamespaceLister {\n\treturn daemonSetNamespaceLister{listers.NewNamespaced[*appsv1.DaemonSet](s.ResourceIndexer, namespace)}\n}\n\n// DaemonSetNamespaceLister helps list and get DaemonSets.\n// All objects returned here must be treated as read-only.\ntype DaemonSetNamespaceLister interface {\n\t// List lists all DaemonSets in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*appsv1.DaemonSet, err error)\n\t// Get retrieves the DaemonSet from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*appsv1.DaemonSet, error)\n\tDaemonSetNamespaceListerExpansion\n}\n\n// daemonSetNamespaceLister implements the DaemonSetNamespaceLister\n// interface.\ntype daemonSetNamespaceLister struct {\n\tlisters.ResourceIndexer[*appsv1.DaemonSet]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/apps/v1/daemonset_expansion.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"fmt\"\n\n\tapps \"k8s.io/api/apps/v1\"\n\t\"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/labels\"\n)\n\n// DaemonSetListerExpansion allows custom methods to be added to\n// DaemonSetLister.\ntype DaemonSetListerExpansion interface {\n\tGetPodDaemonSets(pod *v1.Pod) ([]*apps.DaemonSet, error)\n\tGetHistoryDaemonSets(history *apps.ControllerRevision) ([]*apps.DaemonSet, error)\n}\n\n// DaemonSetNamespaceListerExpansion allows custom methods to be added to\n// DaemonSetNamespaceLister.\ntype DaemonSetNamespaceListerExpansion interface{}\n\n// GetPodDaemonSets returns a list of DaemonSets that potentially match a pod.\n// Only the one specified in the Pod's ControllerRef will actually manage it.\n// Returns an error only if no matching DaemonSets are found.\nfunc (s *daemonSetLister) GetPodDaemonSets(pod *v1.Pod) ([]*apps.DaemonSet, error) {\n\tvar selector labels.Selector\n\tvar daemonSet *apps.DaemonSet\n\n\tif len(pod.Labels) == 0 {\n\t\treturn nil, fmt.Errorf(\"no daemon sets found for pod %v because it has no labels\", pod.Name)\n\t}\n\n\tlist, err := s.DaemonSets(pod.Namespace).List(labels.Everything())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar daemonSets []*apps.DaemonSet\n\tfor i := range list {\n\t\tdaemonSet = list[i]\n\t\tif daemonSet.Namespace != pod.Namespace {\n\t\t\tcontinue\n\t\t}\n\t\tselector, err = metav1.LabelSelectorAsSelector(daemonSet.Spec.Selector)\n\t\tif err != nil {\n\t\t\t// This object has an invalid selector, it does not match the pod\n\t\t\tcontinue\n\t\t}\n\n\t\t// If a daemonSet with a nil or empty selector creeps in, it should match nothing, not everything.\n\t\tif selector.Empty() || !selector.Matches(labels.Set(pod.Labels)) {\n\t\t\tcontinue\n\t\t}\n\t\tdaemonSets = append(daemonSets, daemonSet)\n\t}\n\n\tif len(daemonSets) == 0 {\n\t\treturn nil, fmt.Errorf(\"could not find daemon set for pod %s in namespace %s with labels: %v\", pod.Name, pod.Namespace, pod.Labels)\n\t}\n\n\treturn daemonSets, nil\n}\n\n// GetHistoryDaemonSets returns a list of DaemonSets that potentially\n// match a ControllerRevision. Only the one specified in the ControllerRevision's ControllerRef\n// will actually manage it.\n// Returns an error only if no matching DaemonSets are found.\nfunc (s *daemonSetLister) GetHistoryDaemonSets(history *apps.ControllerRevision) ([]*apps.DaemonSet, error) {\n\tif len(history.Labels) == 0 {\n\t\treturn nil, fmt.Errorf(\"no DaemonSet found for ControllerRevision %s because it has no labels\", history.Name)\n\t}\n\n\tlist, err := s.DaemonSets(history.Namespace).List(labels.Everything())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar daemonSets []*apps.DaemonSet\n\tfor _, ds := range list {\n\t\tselector, err := metav1.LabelSelectorAsSelector(ds.Spec.Selector)\n\t\tif err != nil {\n\t\t\t// This object has an invalid selector, it does not match the history\n\t\t\tcontinue\n\t\t}\n\t\t// If a DaemonSet with a nil or empty selector creeps in, it should match nothing, not everything.\n\t\tif selector.Empty() || !selector.Matches(labels.Set(history.Labels)) {\n\t\t\tcontinue\n\t\t}\n\t\tdaemonSets = append(daemonSets, ds)\n\t}\n\n\tif len(daemonSets) == 0 {\n\t\treturn nil, fmt.Errorf(\"could not find DaemonSets for ControllerRevision %s in namespace %s with labels: %v\", history.Name, history.Namespace, history.Labels)\n\t}\n\n\treturn daemonSets, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/apps/v1/deployment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tappsv1 \"k8s.io/api/apps/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// DeploymentLister helps list Deployments.\n// All objects returned here must be treated as read-only.\ntype DeploymentLister interface {\n\t// List lists all Deployments in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*appsv1.Deployment, err error)\n\t// Deployments returns an object that can list and get Deployments.\n\tDeployments(namespace string) DeploymentNamespaceLister\n\tDeploymentListerExpansion\n}\n\n// deploymentLister implements the DeploymentLister interface.\ntype deploymentLister struct {\n\tlisters.ResourceIndexer[*appsv1.Deployment]\n}\n\n// NewDeploymentLister returns a new DeploymentLister.\nfunc NewDeploymentLister(indexer cache.Indexer) DeploymentLister {\n\treturn &deploymentLister{listers.New[*appsv1.Deployment](indexer, appsv1.Resource(\"deployment\"))}\n}\n\n// Deployments returns an object that can list and get Deployments.\nfunc (s *deploymentLister) Deployments(namespace string) DeploymentNamespaceLister {\n\treturn deploymentNamespaceLister{listers.NewNamespaced[*appsv1.Deployment](s.ResourceIndexer, namespace)}\n}\n\n// DeploymentNamespaceLister helps list and get Deployments.\n// All objects returned here must be treated as read-only.\ntype DeploymentNamespaceLister interface {\n\t// List lists all Deployments in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*appsv1.Deployment, err error)\n\t// Get retrieves the Deployment from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*appsv1.Deployment, error)\n\tDeploymentNamespaceListerExpansion\n}\n\n// deploymentNamespaceLister implements the DeploymentNamespaceLister\n// interface.\ntype deploymentNamespaceLister struct {\n\tlisters.ResourceIndexer[*appsv1.Deployment]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/apps/v1/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\n// ControllerRevisionListerExpansion allows custom methods to be added to\n// ControllerRevisionLister.\ntype ControllerRevisionListerExpansion interface{}\n\n// ControllerRevisionNamespaceListerExpansion allows custom methods to be added to\n// ControllerRevisionNamespaceLister.\ntype ControllerRevisionNamespaceListerExpansion interface{}\n\n// DeploymentListerExpansion allows custom methods to be added to\n// DeploymentLister.\ntype DeploymentListerExpansion interface{}\n\n// DeploymentNamespaceListerExpansion allows custom methods to be added to\n// DeploymentNamespaceLister.\ntype DeploymentNamespaceListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/apps/v1/replicaset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tappsv1 \"k8s.io/api/apps/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ReplicaSetLister helps list ReplicaSets.\n// All objects returned here must be treated as read-only.\ntype ReplicaSetLister interface {\n\t// List lists all ReplicaSets in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*appsv1.ReplicaSet, err error)\n\t// ReplicaSets returns an object that can list and get ReplicaSets.\n\tReplicaSets(namespace string) ReplicaSetNamespaceLister\n\tReplicaSetListerExpansion\n}\n\n// replicaSetLister implements the ReplicaSetLister interface.\ntype replicaSetLister struct {\n\tlisters.ResourceIndexer[*appsv1.ReplicaSet]\n}\n\n// NewReplicaSetLister returns a new ReplicaSetLister.\nfunc NewReplicaSetLister(indexer cache.Indexer) ReplicaSetLister {\n\treturn &replicaSetLister{listers.New[*appsv1.ReplicaSet](indexer, appsv1.Resource(\"replicaset\"))}\n}\n\n// ReplicaSets returns an object that can list and get ReplicaSets.\nfunc (s *replicaSetLister) ReplicaSets(namespace string) ReplicaSetNamespaceLister {\n\treturn replicaSetNamespaceLister{listers.NewNamespaced[*appsv1.ReplicaSet](s.ResourceIndexer, namespace)}\n}\n\n// ReplicaSetNamespaceLister helps list and get ReplicaSets.\n// All objects returned here must be treated as read-only.\ntype ReplicaSetNamespaceLister interface {\n\t// List lists all ReplicaSets in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*appsv1.ReplicaSet, err error)\n\t// Get retrieves the ReplicaSet from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*appsv1.ReplicaSet, error)\n\tReplicaSetNamespaceListerExpansion\n}\n\n// replicaSetNamespaceLister implements the ReplicaSetNamespaceLister\n// interface.\ntype replicaSetNamespaceLister struct {\n\tlisters.ResourceIndexer[*appsv1.ReplicaSet]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/apps/v1/replicaset_expansion.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"fmt\"\n\n\tapps \"k8s.io/api/apps/v1\"\n\t\"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/labels\"\n)\n\n// ReplicaSetListerExpansion allows custom methods to be added to\n// ReplicaSetLister.\ntype ReplicaSetListerExpansion interface {\n\tGetPodReplicaSets(pod *v1.Pod) ([]*apps.ReplicaSet, error)\n}\n\n// ReplicaSetNamespaceListerExpansion allows custom methods to be added to\n// ReplicaSetNamespaceLister.\ntype ReplicaSetNamespaceListerExpansion interface{}\n\n// GetPodReplicaSets returns a list of ReplicaSets that potentially match a pod.\n// Only the one specified in the Pod's ControllerRef will actually manage it.\n// Returns an error only if no matching ReplicaSets are found.\nfunc (s *replicaSetLister) GetPodReplicaSets(pod *v1.Pod) ([]*apps.ReplicaSet, error) {\n\tif len(pod.Labels) == 0 {\n\t\treturn nil, fmt.Errorf(\"no ReplicaSets found for pod %v because it has no labels\", pod.Name)\n\t}\n\n\tlist, err := s.ReplicaSets(pod.Namespace).List(labels.Everything())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar rss []*apps.ReplicaSet\n\tfor _, rs := range list {\n\t\tif rs.Namespace != pod.Namespace {\n\t\t\tcontinue\n\t\t}\n\t\tselector, err := metav1.LabelSelectorAsSelector(rs.Spec.Selector)\n\t\tif err != nil {\n\t\t\t// This object has an invalid selector, it does not match the pod\n\t\t\tcontinue\n\t\t}\n\n\t\t// If a ReplicaSet with a nil or empty selector creeps in, it should match nothing, not everything.\n\t\tif selector.Empty() || !selector.Matches(labels.Set(pod.Labels)) {\n\t\t\tcontinue\n\t\t}\n\t\trss = append(rss, rs)\n\t}\n\n\tif len(rss) == 0 {\n\t\treturn nil, fmt.Errorf(\"could not find ReplicaSet for pod %s in namespace %s with labels: %v\", pod.Name, pod.Namespace, pod.Labels)\n\t}\n\n\treturn rss, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/apps/v1/statefulset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tappsv1 \"k8s.io/api/apps/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// StatefulSetLister helps list StatefulSets.\n// All objects returned here must be treated as read-only.\ntype StatefulSetLister interface {\n\t// List lists all StatefulSets in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*appsv1.StatefulSet, err error)\n\t// StatefulSets returns an object that can list and get StatefulSets.\n\tStatefulSets(namespace string) StatefulSetNamespaceLister\n\tStatefulSetListerExpansion\n}\n\n// statefulSetLister implements the StatefulSetLister interface.\ntype statefulSetLister struct {\n\tlisters.ResourceIndexer[*appsv1.StatefulSet]\n}\n\n// NewStatefulSetLister returns a new StatefulSetLister.\nfunc NewStatefulSetLister(indexer cache.Indexer) StatefulSetLister {\n\treturn &statefulSetLister{listers.New[*appsv1.StatefulSet](indexer, appsv1.Resource(\"statefulset\"))}\n}\n\n// StatefulSets returns an object that can list and get StatefulSets.\nfunc (s *statefulSetLister) StatefulSets(namespace string) StatefulSetNamespaceLister {\n\treturn statefulSetNamespaceLister{listers.NewNamespaced[*appsv1.StatefulSet](s.ResourceIndexer, namespace)}\n}\n\n// StatefulSetNamespaceLister helps list and get StatefulSets.\n// All objects returned here must be treated as read-only.\ntype StatefulSetNamespaceLister interface {\n\t// List lists all StatefulSets in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*appsv1.StatefulSet, err error)\n\t// Get retrieves the StatefulSet from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*appsv1.StatefulSet, error)\n\tStatefulSetNamespaceListerExpansion\n}\n\n// statefulSetNamespaceLister implements the StatefulSetNamespaceLister\n// interface.\ntype statefulSetNamespaceLister struct {\n\tlisters.ResourceIndexer[*appsv1.StatefulSet]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/apps/v1/statefulset_expansion.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"fmt\"\n\n\tapps \"k8s.io/api/apps/v1\"\n\t\"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/labels\"\n)\n\n// StatefulSetListerExpansion allows custom methods to be added to\n// StatefulSetLister.\ntype StatefulSetListerExpansion interface {\n\tGetPodStatefulSets(pod *v1.Pod) ([]*apps.StatefulSet, error)\n}\n\n// StatefulSetNamespaceListerExpansion allows custom methods to be added to\n// StatefulSetNamespaceLister.\ntype StatefulSetNamespaceListerExpansion interface{}\n\n// GetPodStatefulSets returns a list of StatefulSets that potentially match a pod.\n// Only the one specified in the Pod's ControllerRef will actually manage it.\n// Returns an error only if no matching StatefulSets are found.\nfunc (s *statefulSetLister) GetPodStatefulSets(pod *v1.Pod) ([]*apps.StatefulSet, error) {\n\tvar selector labels.Selector\n\tvar ps *apps.StatefulSet\n\n\tif len(pod.Labels) == 0 {\n\t\treturn nil, fmt.Errorf(\"no StatefulSets found for pod %v because it has no labels\", pod.Name)\n\t}\n\n\tlist, err := s.StatefulSets(pod.Namespace).List(labels.Everything())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar psList []*apps.StatefulSet\n\tfor i := range list {\n\t\tps = list[i]\n\t\tif ps.Namespace != pod.Namespace {\n\t\t\tcontinue\n\t\t}\n\t\tselector, err = metav1.LabelSelectorAsSelector(ps.Spec.Selector)\n\t\tif err != nil {\n\t\t\t// This object has an invalid selector, it does not match the pod\n\t\t\tcontinue\n\t\t}\n\n\t\t// If a StatefulSet with a nil or empty selector creeps in, it should match nothing, not everything.\n\t\tif selector.Empty() || !selector.Matches(labels.Set(pod.Labels)) {\n\t\t\tcontinue\n\t\t}\n\t\tpsList = append(psList, ps)\n\t}\n\n\tif len(psList) == 0 {\n\t\treturn nil, fmt.Errorf(\"could not find StatefulSet for pod %s in namespace %s with labels: %v\", pod.Name, pod.Namespace, pod.Labels)\n\t}\n\n\treturn psList, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/apps/v1beta1/controllerrevision.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tappsv1beta1 \"k8s.io/api/apps/v1beta1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ControllerRevisionLister helps list ControllerRevisions.\n// All objects returned here must be treated as read-only.\ntype ControllerRevisionLister interface {\n\t// List lists all ControllerRevisions in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*appsv1beta1.ControllerRevision, err error)\n\t// ControllerRevisions returns an object that can list and get ControllerRevisions.\n\tControllerRevisions(namespace string) ControllerRevisionNamespaceLister\n\tControllerRevisionListerExpansion\n}\n\n// controllerRevisionLister implements the ControllerRevisionLister interface.\ntype controllerRevisionLister struct {\n\tlisters.ResourceIndexer[*appsv1beta1.ControllerRevision]\n}\n\n// NewControllerRevisionLister returns a new ControllerRevisionLister.\nfunc NewControllerRevisionLister(indexer cache.Indexer) ControllerRevisionLister {\n\treturn &controllerRevisionLister{listers.New[*appsv1beta1.ControllerRevision](indexer, appsv1beta1.Resource(\"controllerrevision\"))}\n}\n\n// ControllerRevisions returns an object that can list and get ControllerRevisions.\nfunc (s *controllerRevisionLister) ControllerRevisions(namespace string) ControllerRevisionNamespaceLister {\n\treturn controllerRevisionNamespaceLister{listers.NewNamespaced[*appsv1beta1.ControllerRevision](s.ResourceIndexer, namespace)}\n}\n\n// ControllerRevisionNamespaceLister helps list and get ControllerRevisions.\n// All objects returned here must be treated as read-only.\ntype ControllerRevisionNamespaceLister interface {\n\t// List lists all ControllerRevisions in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*appsv1beta1.ControllerRevision, err error)\n\t// Get retrieves the ControllerRevision from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*appsv1beta1.ControllerRevision, error)\n\tControllerRevisionNamespaceListerExpansion\n}\n\n// controllerRevisionNamespaceLister implements the ControllerRevisionNamespaceLister\n// interface.\ntype controllerRevisionNamespaceLister struct {\n\tlisters.ResourceIndexer[*appsv1beta1.ControllerRevision]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/apps/v1beta1/deployment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tappsv1beta1 \"k8s.io/api/apps/v1beta1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// DeploymentLister helps list Deployments.\n// All objects returned here must be treated as read-only.\ntype DeploymentLister interface {\n\t// List lists all Deployments in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*appsv1beta1.Deployment, err error)\n\t// Deployments returns an object that can list and get Deployments.\n\tDeployments(namespace string) DeploymentNamespaceLister\n\tDeploymentListerExpansion\n}\n\n// deploymentLister implements the DeploymentLister interface.\ntype deploymentLister struct {\n\tlisters.ResourceIndexer[*appsv1beta1.Deployment]\n}\n\n// NewDeploymentLister returns a new DeploymentLister.\nfunc NewDeploymentLister(indexer cache.Indexer) DeploymentLister {\n\treturn &deploymentLister{listers.New[*appsv1beta1.Deployment](indexer, appsv1beta1.Resource(\"deployment\"))}\n}\n\n// Deployments returns an object that can list and get Deployments.\nfunc (s *deploymentLister) Deployments(namespace string) DeploymentNamespaceLister {\n\treturn deploymentNamespaceLister{listers.NewNamespaced[*appsv1beta1.Deployment](s.ResourceIndexer, namespace)}\n}\n\n// DeploymentNamespaceLister helps list and get Deployments.\n// All objects returned here must be treated as read-only.\ntype DeploymentNamespaceLister interface {\n\t// List lists all Deployments in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*appsv1beta1.Deployment, err error)\n\t// Get retrieves the Deployment from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*appsv1beta1.Deployment, error)\n\tDeploymentNamespaceListerExpansion\n}\n\n// deploymentNamespaceLister implements the DeploymentNamespaceLister\n// interface.\ntype deploymentNamespaceLister struct {\n\tlisters.ResourceIndexer[*appsv1beta1.Deployment]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/apps/v1beta1/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// ControllerRevisionListerExpansion allows custom methods to be added to\n// ControllerRevisionLister.\ntype ControllerRevisionListerExpansion interface{}\n\n// ControllerRevisionNamespaceListerExpansion allows custom methods to be added to\n// ControllerRevisionNamespaceLister.\ntype ControllerRevisionNamespaceListerExpansion interface{}\n\n// DeploymentListerExpansion allows custom methods to be added to\n// DeploymentLister.\ntype DeploymentListerExpansion interface{}\n\n// DeploymentNamespaceListerExpansion allows custom methods to be added to\n// DeploymentNamespaceLister.\ntype DeploymentNamespaceListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/apps/v1beta1/statefulset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tappsv1beta1 \"k8s.io/api/apps/v1beta1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// StatefulSetLister helps list StatefulSets.\n// All objects returned here must be treated as read-only.\ntype StatefulSetLister interface {\n\t// List lists all StatefulSets in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*appsv1beta1.StatefulSet, err error)\n\t// StatefulSets returns an object that can list and get StatefulSets.\n\tStatefulSets(namespace string) StatefulSetNamespaceLister\n\tStatefulSetListerExpansion\n}\n\n// statefulSetLister implements the StatefulSetLister interface.\ntype statefulSetLister struct {\n\tlisters.ResourceIndexer[*appsv1beta1.StatefulSet]\n}\n\n// NewStatefulSetLister returns a new StatefulSetLister.\nfunc NewStatefulSetLister(indexer cache.Indexer) StatefulSetLister {\n\treturn &statefulSetLister{listers.New[*appsv1beta1.StatefulSet](indexer, appsv1beta1.Resource(\"statefulset\"))}\n}\n\n// StatefulSets returns an object that can list and get StatefulSets.\nfunc (s *statefulSetLister) StatefulSets(namespace string) StatefulSetNamespaceLister {\n\treturn statefulSetNamespaceLister{listers.NewNamespaced[*appsv1beta1.StatefulSet](s.ResourceIndexer, namespace)}\n}\n\n// StatefulSetNamespaceLister helps list and get StatefulSets.\n// All objects returned here must be treated as read-only.\ntype StatefulSetNamespaceLister interface {\n\t// List lists all StatefulSets in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*appsv1beta1.StatefulSet, err error)\n\t// Get retrieves the StatefulSet from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*appsv1beta1.StatefulSet, error)\n\tStatefulSetNamespaceListerExpansion\n}\n\n// statefulSetNamespaceLister implements the StatefulSetNamespaceLister\n// interface.\ntype statefulSetNamespaceLister struct {\n\tlisters.ResourceIndexer[*appsv1beta1.StatefulSet]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/apps/v1beta1/statefulset_expansion.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\t\"fmt\"\n\n\tapps \"k8s.io/api/apps/v1beta1\"\n\t\"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/labels\"\n)\n\n// StatefulSetListerExpansion allows custom methods to be added to\n// StatefulSetLister.\ntype StatefulSetListerExpansion interface {\n\tGetPodStatefulSets(pod *v1.Pod) ([]*apps.StatefulSet, error)\n}\n\n// StatefulSetNamespaceListerExpansion allows custom methods to be added to\n// StatefulSetNamespaceLister.\ntype StatefulSetNamespaceListerExpansion interface{}\n\n// GetPodStatefulSets returns a list of StatefulSets that potentially match a pod.\n// Only the one specified in the Pod's ControllerRef will actually manage it.\n// Returns an error only if no matching StatefulSets are found.\nfunc (s *statefulSetLister) GetPodStatefulSets(pod *v1.Pod) ([]*apps.StatefulSet, error) {\n\tvar selector labels.Selector\n\tvar ps *apps.StatefulSet\n\n\tif len(pod.Labels) == 0 {\n\t\treturn nil, fmt.Errorf(\"no StatefulSets found for pod %v because it has no labels\", pod.Name)\n\t}\n\n\tlist, err := s.StatefulSets(pod.Namespace).List(labels.Everything())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar psList []*apps.StatefulSet\n\tfor i := range list {\n\t\tps = list[i]\n\t\tif ps.Namespace != pod.Namespace {\n\t\t\tcontinue\n\t\t}\n\t\tselector, err = metav1.LabelSelectorAsSelector(ps.Spec.Selector)\n\t\tif err != nil {\n\t\t\t// This object has an invalid selector, it does not match the pod\n\t\t\tcontinue\n\t\t}\n\n\t\t// If a StatefulSet with a nil or empty selector creeps in, it should match nothing, not everything.\n\t\tif selector.Empty() || !selector.Matches(labels.Set(pod.Labels)) {\n\t\t\tcontinue\n\t\t}\n\t\tpsList = append(psList, ps)\n\t}\n\n\tif len(psList) == 0 {\n\t\treturn nil, fmt.Errorf(\"could not find StatefulSet for pod %s in namespace %s with labels: %v\", pod.Name, pod.Namespace, pod.Labels)\n\t}\n\n\treturn psList, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/apps/v1beta2/controllerrevision.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tappsv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ControllerRevisionLister helps list ControllerRevisions.\n// All objects returned here must be treated as read-only.\ntype ControllerRevisionLister interface {\n\t// List lists all ControllerRevisions in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*appsv1beta2.ControllerRevision, err error)\n\t// ControllerRevisions returns an object that can list and get ControllerRevisions.\n\tControllerRevisions(namespace string) ControllerRevisionNamespaceLister\n\tControllerRevisionListerExpansion\n}\n\n// controllerRevisionLister implements the ControllerRevisionLister interface.\ntype controllerRevisionLister struct {\n\tlisters.ResourceIndexer[*appsv1beta2.ControllerRevision]\n}\n\n// NewControllerRevisionLister returns a new ControllerRevisionLister.\nfunc NewControllerRevisionLister(indexer cache.Indexer) ControllerRevisionLister {\n\treturn &controllerRevisionLister{listers.New[*appsv1beta2.ControllerRevision](indexer, appsv1beta2.Resource(\"controllerrevision\"))}\n}\n\n// ControllerRevisions returns an object that can list and get ControllerRevisions.\nfunc (s *controllerRevisionLister) ControllerRevisions(namespace string) ControllerRevisionNamespaceLister {\n\treturn controllerRevisionNamespaceLister{listers.NewNamespaced[*appsv1beta2.ControllerRevision](s.ResourceIndexer, namespace)}\n}\n\n// ControllerRevisionNamespaceLister helps list and get ControllerRevisions.\n// All objects returned here must be treated as read-only.\ntype ControllerRevisionNamespaceLister interface {\n\t// List lists all ControllerRevisions in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*appsv1beta2.ControllerRevision, err error)\n\t// Get retrieves the ControllerRevision from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*appsv1beta2.ControllerRevision, error)\n\tControllerRevisionNamespaceListerExpansion\n}\n\n// controllerRevisionNamespaceLister implements the ControllerRevisionNamespaceLister\n// interface.\ntype controllerRevisionNamespaceLister struct {\n\tlisters.ResourceIndexer[*appsv1beta2.ControllerRevision]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/apps/v1beta2/daemonset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tappsv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// DaemonSetLister helps list DaemonSets.\n// All objects returned here must be treated as read-only.\ntype DaemonSetLister interface {\n\t// List lists all DaemonSets in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*appsv1beta2.DaemonSet, err error)\n\t// DaemonSets returns an object that can list and get DaemonSets.\n\tDaemonSets(namespace string) DaemonSetNamespaceLister\n\tDaemonSetListerExpansion\n}\n\n// daemonSetLister implements the DaemonSetLister interface.\ntype daemonSetLister struct {\n\tlisters.ResourceIndexer[*appsv1beta2.DaemonSet]\n}\n\n// NewDaemonSetLister returns a new DaemonSetLister.\nfunc NewDaemonSetLister(indexer cache.Indexer) DaemonSetLister {\n\treturn &daemonSetLister{listers.New[*appsv1beta2.DaemonSet](indexer, appsv1beta2.Resource(\"daemonset\"))}\n}\n\n// DaemonSets returns an object that can list and get DaemonSets.\nfunc (s *daemonSetLister) DaemonSets(namespace string) DaemonSetNamespaceLister {\n\treturn daemonSetNamespaceLister{listers.NewNamespaced[*appsv1beta2.DaemonSet](s.ResourceIndexer, namespace)}\n}\n\n// DaemonSetNamespaceLister helps list and get DaemonSets.\n// All objects returned here must be treated as read-only.\ntype DaemonSetNamespaceLister interface {\n\t// List lists all DaemonSets in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*appsv1beta2.DaemonSet, err error)\n\t// Get retrieves the DaemonSet from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*appsv1beta2.DaemonSet, error)\n\tDaemonSetNamespaceListerExpansion\n}\n\n// daemonSetNamespaceLister implements the DaemonSetNamespaceLister\n// interface.\ntype daemonSetNamespaceLister struct {\n\tlisters.ResourceIndexer[*appsv1beta2.DaemonSet]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/apps/v1beta2/daemonset_expansion.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta2\n\nimport (\n\t\"fmt\"\n\n\tapps \"k8s.io/api/apps/v1beta2\"\n\t\"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/labels\"\n)\n\n// DaemonSetListerExpansion allows custom methods to be added to\n// DaemonSetLister.\ntype DaemonSetListerExpansion interface {\n\tGetPodDaemonSets(pod *v1.Pod) ([]*apps.DaemonSet, error)\n\tGetHistoryDaemonSets(history *apps.ControllerRevision) ([]*apps.DaemonSet, error)\n}\n\n// DaemonSetNamespaceListerExpansion allows custom methods to be added to\n// DaemonSetNamespaceLister.\ntype DaemonSetNamespaceListerExpansion interface{}\n\n// GetPodDaemonSets returns a list of DaemonSets that potentially match a pod.\n// Only the one specified in the Pod's ControllerRef will actually manage it.\n// Returns an error only if no matching DaemonSets are found.\nfunc (s *daemonSetLister) GetPodDaemonSets(pod *v1.Pod) ([]*apps.DaemonSet, error) {\n\tvar selector labels.Selector\n\tvar daemonSet *apps.DaemonSet\n\n\tif len(pod.Labels) == 0 {\n\t\treturn nil, fmt.Errorf(\"no daemon sets found for pod %v because it has no labels\", pod.Name)\n\t}\n\n\tlist, err := s.DaemonSets(pod.Namespace).List(labels.Everything())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar daemonSets []*apps.DaemonSet\n\tfor i := range list {\n\t\tdaemonSet = list[i]\n\t\tif daemonSet.Namespace != pod.Namespace {\n\t\t\tcontinue\n\t\t}\n\t\tselector, err = metav1.LabelSelectorAsSelector(daemonSet.Spec.Selector)\n\t\tif err != nil {\n\t\t\t// This object has an invalid selector, it does not match the pod\n\t\t\tcontinue\n\t\t}\n\n\t\t// If a daemonSet with a nil or empty selector creeps in, it should match nothing, not everything.\n\t\tif selector.Empty() || !selector.Matches(labels.Set(pod.Labels)) {\n\t\t\tcontinue\n\t\t}\n\t\tdaemonSets = append(daemonSets, daemonSet)\n\t}\n\n\tif len(daemonSets) == 0 {\n\t\treturn nil, fmt.Errorf(\"could not find daemon set for pod %s in namespace %s with labels: %v\", pod.Name, pod.Namespace, pod.Labels)\n\t}\n\n\treturn daemonSets, nil\n}\n\n// GetHistoryDaemonSets returns a list of DaemonSets that potentially\n// match a ControllerRevision. Only the one specified in the ControllerRevision's ControllerRef\n// will actually manage it.\n// Returns an error only if no matching DaemonSets are found.\nfunc (s *daemonSetLister) GetHistoryDaemonSets(history *apps.ControllerRevision) ([]*apps.DaemonSet, error) {\n\tif len(history.Labels) == 0 {\n\t\treturn nil, fmt.Errorf(\"no DaemonSet found for ControllerRevision %s because it has no labels\", history.Name)\n\t}\n\n\tlist, err := s.DaemonSets(history.Namespace).List(labels.Everything())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar daemonSets []*apps.DaemonSet\n\tfor _, ds := range list {\n\t\tselector, err := metav1.LabelSelectorAsSelector(ds.Spec.Selector)\n\t\tif err != nil {\n\t\t\t// This object has an invalid selector, it does not match the history object\n\t\t\tcontinue\n\t\t}\n\t\t// If a DaemonSet with a nil or empty selector creeps in, it should match nothing, not everything.\n\t\tif selector.Empty() || !selector.Matches(labels.Set(history.Labels)) {\n\t\t\tcontinue\n\t\t}\n\t\tdaemonSets = append(daemonSets, ds)\n\t}\n\n\tif len(daemonSets) == 0 {\n\t\treturn nil, fmt.Errorf(\"could not find DaemonSets for ControllerRevision %s in namespace %s with labels: %v\", history.Name, history.Namespace, history.Labels)\n\t}\n\n\treturn daemonSets, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/apps/v1beta2/deployment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tappsv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// DeploymentLister helps list Deployments.\n// All objects returned here must be treated as read-only.\ntype DeploymentLister interface {\n\t// List lists all Deployments in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*appsv1beta2.Deployment, err error)\n\t// Deployments returns an object that can list and get Deployments.\n\tDeployments(namespace string) DeploymentNamespaceLister\n\tDeploymentListerExpansion\n}\n\n// deploymentLister implements the DeploymentLister interface.\ntype deploymentLister struct {\n\tlisters.ResourceIndexer[*appsv1beta2.Deployment]\n}\n\n// NewDeploymentLister returns a new DeploymentLister.\nfunc NewDeploymentLister(indexer cache.Indexer) DeploymentLister {\n\treturn &deploymentLister{listers.New[*appsv1beta2.Deployment](indexer, appsv1beta2.Resource(\"deployment\"))}\n}\n\n// Deployments returns an object that can list and get Deployments.\nfunc (s *deploymentLister) Deployments(namespace string) DeploymentNamespaceLister {\n\treturn deploymentNamespaceLister{listers.NewNamespaced[*appsv1beta2.Deployment](s.ResourceIndexer, namespace)}\n}\n\n// DeploymentNamespaceLister helps list and get Deployments.\n// All objects returned here must be treated as read-only.\ntype DeploymentNamespaceLister interface {\n\t// List lists all Deployments in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*appsv1beta2.Deployment, err error)\n\t// Get retrieves the Deployment from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*appsv1beta2.Deployment, error)\n\tDeploymentNamespaceListerExpansion\n}\n\n// deploymentNamespaceLister implements the DeploymentNamespaceLister\n// interface.\ntype deploymentNamespaceLister struct {\n\tlisters.ResourceIndexer[*appsv1beta2.Deployment]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/apps/v1beta2/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta2\n\n// ControllerRevisionListerExpansion allows custom methods to be added to\n// ControllerRevisionLister.\ntype ControllerRevisionListerExpansion interface{}\n\n// ControllerRevisionNamespaceListerExpansion allows custom methods to be added to\n// ControllerRevisionNamespaceLister.\ntype ControllerRevisionNamespaceListerExpansion interface{}\n\n// DeploymentListerExpansion allows custom methods to be added to\n// DeploymentLister.\ntype DeploymentListerExpansion interface{}\n\n// DeploymentNamespaceListerExpansion allows custom methods to be added to\n// DeploymentNamespaceLister.\ntype DeploymentNamespaceListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/apps/v1beta2/replicaset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tappsv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ReplicaSetLister helps list ReplicaSets.\n// All objects returned here must be treated as read-only.\ntype ReplicaSetLister interface {\n\t// List lists all ReplicaSets in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*appsv1beta2.ReplicaSet, err error)\n\t// ReplicaSets returns an object that can list and get ReplicaSets.\n\tReplicaSets(namespace string) ReplicaSetNamespaceLister\n\tReplicaSetListerExpansion\n}\n\n// replicaSetLister implements the ReplicaSetLister interface.\ntype replicaSetLister struct {\n\tlisters.ResourceIndexer[*appsv1beta2.ReplicaSet]\n}\n\n// NewReplicaSetLister returns a new ReplicaSetLister.\nfunc NewReplicaSetLister(indexer cache.Indexer) ReplicaSetLister {\n\treturn &replicaSetLister{listers.New[*appsv1beta2.ReplicaSet](indexer, appsv1beta2.Resource(\"replicaset\"))}\n}\n\n// ReplicaSets returns an object that can list and get ReplicaSets.\nfunc (s *replicaSetLister) ReplicaSets(namespace string) ReplicaSetNamespaceLister {\n\treturn replicaSetNamespaceLister{listers.NewNamespaced[*appsv1beta2.ReplicaSet](s.ResourceIndexer, namespace)}\n}\n\n// ReplicaSetNamespaceLister helps list and get ReplicaSets.\n// All objects returned here must be treated as read-only.\ntype ReplicaSetNamespaceLister interface {\n\t// List lists all ReplicaSets in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*appsv1beta2.ReplicaSet, err error)\n\t// Get retrieves the ReplicaSet from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*appsv1beta2.ReplicaSet, error)\n\tReplicaSetNamespaceListerExpansion\n}\n\n// replicaSetNamespaceLister implements the ReplicaSetNamespaceLister\n// interface.\ntype replicaSetNamespaceLister struct {\n\tlisters.ResourceIndexer[*appsv1beta2.ReplicaSet]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/apps/v1beta2/replicaset_expansion.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta2\n\nimport (\n\t\"fmt\"\n\n\tapps \"k8s.io/api/apps/v1beta2\"\n\t\"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/labels\"\n)\n\n// ReplicaSetListerExpansion allows custom methods to be added to\n// ReplicaSetLister.\ntype ReplicaSetListerExpansion interface {\n\tGetPodReplicaSets(pod *v1.Pod) ([]*apps.ReplicaSet, error)\n}\n\n// ReplicaSetNamespaceListerExpansion allows custom methods to be added to\n// ReplicaSetNamespaceLister.\ntype ReplicaSetNamespaceListerExpansion interface{}\n\n// GetPodReplicaSets returns a list of ReplicaSets that potentially match a pod.\n// Only the one specified in the Pod's ControllerRef will actually manage it.\n// Returns an error only if no matching ReplicaSets are found.\nfunc (s *replicaSetLister) GetPodReplicaSets(pod *v1.Pod) ([]*apps.ReplicaSet, error) {\n\tif len(pod.Labels) == 0 {\n\t\treturn nil, fmt.Errorf(\"no ReplicaSets found for pod %v because it has no labels\", pod.Name)\n\t}\n\n\tlist, err := s.ReplicaSets(pod.Namespace).List(labels.Everything())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar rss []*apps.ReplicaSet\n\tfor _, rs := range list {\n\t\tif rs.Namespace != pod.Namespace {\n\t\t\tcontinue\n\t\t}\n\t\tselector, err := metav1.LabelSelectorAsSelector(rs.Spec.Selector)\n\t\tif err != nil {\n\t\t\t// This object has an invalid selector, it does not match the pod\n\t\t\tcontinue\n\t\t}\n\n\t\t// If a ReplicaSet with a nil or empty selector creeps in, it should match nothing, not everything.\n\t\tif selector.Empty() || !selector.Matches(labels.Set(pod.Labels)) {\n\t\t\tcontinue\n\t\t}\n\t\trss = append(rss, rs)\n\t}\n\n\tif len(rss) == 0 {\n\t\treturn nil, fmt.Errorf(\"could not find ReplicaSet for pod %s in namespace %s with labels: %v\", pod.Name, pod.Namespace, pod.Labels)\n\t}\n\n\treturn rss, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/apps/v1beta2/statefulset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tappsv1beta2 \"k8s.io/api/apps/v1beta2\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// StatefulSetLister helps list StatefulSets.\n// All objects returned here must be treated as read-only.\ntype StatefulSetLister interface {\n\t// List lists all StatefulSets in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*appsv1beta2.StatefulSet, err error)\n\t// StatefulSets returns an object that can list and get StatefulSets.\n\tStatefulSets(namespace string) StatefulSetNamespaceLister\n\tStatefulSetListerExpansion\n}\n\n// statefulSetLister implements the StatefulSetLister interface.\ntype statefulSetLister struct {\n\tlisters.ResourceIndexer[*appsv1beta2.StatefulSet]\n}\n\n// NewStatefulSetLister returns a new StatefulSetLister.\nfunc NewStatefulSetLister(indexer cache.Indexer) StatefulSetLister {\n\treturn &statefulSetLister{listers.New[*appsv1beta2.StatefulSet](indexer, appsv1beta2.Resource(\"statefulset\"))}\n}\n\n// StatefulSets returns an object that can list and get StatefulSets.\nfunc (s *statefulSetLister) StatefulSets(namespace string) StatefulSetNamespaceLister {\n\treturn statefulSetNamespaceLister{listers.NewNamespaced[*appsv1beta2.StatefulSet](s.ResourceIndexer, namespace)}\n}\n\n// StatefulSetNamespaceLister helps list and get StatefulSets.\n// All objects returned here must be treated as read-only.\ntype StatefulSetNamespaceLister interface {\n\t// List lists all StatefulSets in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*appsv1beta2.StatefulSet, err error)\n\t// Get retrieves the StatefulSet from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*appsv1beta2.StatefulSet, error)\n\tStatefulSetNamespaceListerExpansion\n}\n\n// statefulSetNamespaceLister implements the StatefulSetNamespaceLister\n// interface.\ntype statefulSetNamespaceLister struct {\n\tlisters.ResourceIndexer[*appsv1beta2.StatefulSet]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/apps/v1beta2/statefulset_expansion.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta2\n\nimport (\n\t\"fmt\"\n\n\tapps \"k8s.io/api/apps/v1beta2\"\n\t\"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/labels\"\n)\n\n// StatefulSetListerExpansion allows custom methods to be added to\n// StatefulSetLister.\ntype StatefulSetListerExpansion interface {\n\tGetPodStatefulSets(pod *v1.Pod) ([]*apps.StatefulSet, error)\n}\n\n// StatefulSetNamespaceListerExpansion allows custom methods to be added to\n// StatefulSetNamespaceLister.\ntype StatefulSetNamespaceListerExpansion interface{}\n\n// GetPodStatefulSets returns a list of StatefulSets that potentially match a pod.\n// Only the one specified in the Pod's ControllerRef will actually manage it.\n// Returns an error only if no matching StatefulSets are found.\nfunc (s *statefulSetLister) GetPodStatefulSets(pod *v1.Pod) ([]*apps.StatefulSet, error) {\n\tvar selector labels.Selector\n\tvar ps *apps.StatefulSet\n\n\tif len(pod.Labels) == 0 {\n\t\treturn nil, fmt.Errorf(\"no StatefulSets found for pod %v because it has no labels\", pod.Name)\n\t}\n\n\tlist, err := s.StatefulSets(pod.Namespace).List(labels.Everything())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar psList []*apps.StatefulSet\n\tfor i := range list {\n\t\tps = list[i]\n\t\tif ps.Namespace != pod.Namespace {\n\t\t\tcontinue\n\t\t}\n\t\tselector, err = metav1.LabelSelectorAsSelector(ps.Spec.Selector)\n\t\tif err != nil {\n\t\t\t// This object has an invalid selector, it does not match the pod\n\t\t\tcontinue\n\t\t}\n\n\t\t// If a StatefulSet with a nil or empty selector creeps in, it should match nothing, not everything.\n\t\tif selector.Empty() || !selector.Matches(labels.Set(pod.Labels)) {\n\t\t\tcontinue\n\t\t}\n\t\tpsList = append(psList, ps)\n\t}\n\n\tif len(psList) == 0 {\n\t\treturn nil, fmt.Errorf(\"could not find StatefulSet for pod %s in namespace %s with labels: %v\", pod.Name, pod.Namespace, pod.Labels)\n\t}\n\n\treturn psList, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/autoscaling/v1/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\n// HorizontalPodAutoscalerListerExpansion allows custom methods to be added to\n// HorizontalPodAutoscalerLister.\ntype HorizontalPodAutoscalerListerExpansion interface{}\n\n// HorizontalPodAutoscalerNamespaceListerExpansion allows custom methods to be added to\n// HorizontalPodAutoscalerNamespaceLister.\ntype HorizontalPodAutoscalerNamespaceListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/autoscaling/v1/horizontalpodautoscaler.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tautoscalingv1 \"k8s.io/api/autoscaling/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// HorizontalPodAutoscalerLister helps list HorizontalPodAutoscalers.\n// All objects returned here must be treated as read-only.\ntype HorizontalPodAutoscalerLister interface {\n\t// List lists all HorizontalPodAutoscalers in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*autoscalingv1.HorizontalPodAutoscaler, err error)\n\t// HorizontalPodAutoscalers returns an object that can list and get HorizontalPodAutoscalers.\n\tHorizontalPodAutoscalers(namespace string) HorizontalPodAutoscalerNamespaceLister\n\tHorizontalPodAutoscalerListerExpansion\n}\n\n// horizontalPodAutoscalerLister implements the HorizontalPodAutoscalerLister interface.\ntype horizontalPodAutoscalerLister struct {\n\tlisters.ResourceIndexer[*autoscalingv1.HorizontalPodAutoscaler]\n}\n\n// NewHorizontalPodAutoscalerLister returns a new HorizontalPodAutoscalerLister.\nfunc NewHorizontalPodAutoscalerLister(indexer cache.Indexer) HorizontalPodAutoscalerLister {\n\treturn &horizontalPodAutoscalerLister{listers.New[*autoscalingv1.HorizontalPodAutoscaler](indexer, autoscalingv1.Resource(\"horizontalpodautoscaler\"))}\n}\n\n// HorizontalPodAutoscalers returns an object that can list and get HorizontalPodAutoscalers.\nfunc (s *horizontalPodAutoscalerLister) HorizontalPodAutoscalers(namespace string) HorizontalPodAutoscalerNamespaceLister {\n\treturn horizontalPodAutoscalerNamespaceLister{listers.NewNamespaced[*autoscalingv1.HorizontalPodAutoscaler](s.ResourceIndexer, namespace)}\n}\n\n// HorizontalPodAutoscalerNamespaceLister helps list and get HorizontalPodAutoscalers.\n// All objects returned here must be treated as read-only.\ntype HorizontalPodAutoscalerNamespaceLister interface {\n\t// List lists all HorizontalPodAutoscalers in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*autoscalingv1.HorizontalPodAutoscaler, err error)\n\t// Get retrieves the HorizontalPodAutoscaler from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*autoscalingv1.HorizontalPodAutoscaler, error)\n\tHorizontalPodAutoscalerNamespaceListerExpansion\n}\n\n// horizontalPodAutoscalerNamespaceLister implements the HorizontalPodAutoscalerNamespaceLister\n// interface.\ntype horizontalPodAutoscalerNamespaceLister struct {\n\tlisters.ResourceIndexer[*autoscalingv1.HorizontalPodAutoscaler]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/autoscaling/v2/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v2\n\n// HorizontalPodAutoscalerListerExpansion allows custom methods to be added to\n// HorizontalPodAutoscalerLister.\ntype HorizontalPodAutoscalerListerExpansion interface{}\n\n// HorizontalPodAutoscalerNamespaceListerExpansion allows custom methods to be added to\n// HorizontalPodAutoscalerNamespaceLister.\ntype HorizontalPodAutoscalerNamespaceListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/autoscaling/v2/horizontalpodautoscaler.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v2\n\nimport (\n\tautoscalingv2 \"k8s.io/api/autoscaling/v2\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// HorizontalPodAutoscalerLister helps list HorizontalPodAutoscalers.\n// All objects returned here must be treated as read-only.\ntype HorizontalPodAutoscalerLister interface {\n\t// List lists all HorizontalPodAutoscalers in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*autoscalingv2.HorizontalPodAutoscaler, err error)\n\t// HorizontalPodAutoscalers returns an object that can list and get HorizontalPodAutoscalers.\n\tHorizontalPodAutoscalers(namespace string) HorizontalPodAutoscalerNamespaceLister\n\tHorizontalPodAutoscalerListerExpansion\n}\n\n// horizontalPodAutoscalerLister implements the HorizontalPodAutoscalerLister interface.\ntype horizontalPodAutoscalerLister struct {\n\tlisters.ResourceIndexer[*autoscalingv2.HorizontalPodAutoscaler]\n}\n\n// NewHorizontalPodAutoscalerLister returns a new HorizontalPodAutoscalerLister.\nfunc NewHorizontalPodAutoscalerLister(indexer cache.Indexer) HorizontalPodAutoscalerLister {\n\treturn &horizontalPodAutoscalerLister{listers.New[*autoscalingv2.HorizontalPodAutoscaler](indexer, autoscalingv2.Resource(\"horizontalpodautoscaler\"))}\n}\n\n// HorizontalPodAutoscalers returns an object that can list and get HorizontalPodAutoscalers.\nfunc (s *horizontalPodAutoscalerLister) HorizontalPodAutoscalers(namespace string) HorizontalPodAutoscalerNamespaceLister {\n\treturn horizontalPodAutoscalerNamespaceLister{listers.NewNamespaced[*autoscalingv2.HorizontalPodAutoscaler](s.ResourceIndexer, namespace)}\n}\n\n// HorizontalPodAutoscalerNamespaceLister helps list and get HorizontalPodAutoscalers.\n// All objects returned here must be treated as read-only.\ntype HorizontalPodAutoscalerNamespaceLister interface {\n\t// List lists all HorizontalPodAutoscalers in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*autoscalingv2.HorizontalPodAutoscaler, err error)\n\t// Get retrieves the HorizontalPodAutoscaler from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*autoscalingv2.HorizontalPodAutoscaler, error)\n\tHorizontalPodAutoscalerNamespaceListerExpansion\n}\n\n// horizontalPodAutoscalerNamespaceLister implements the HorizontalPodAutoscalerNamespaceLister\n// interface.\ntype horizontalPodAutoscalerNamespaceLister struct {\n\tlisters.ResourceIndexer[*autoscalingv2.HorizontalPodAutoscaler]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/autoscaling/v2beta1/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v2beta1\n\n// HorizontalPodAutoscalerListerExpansion allows custom methods to be added to\n// HorizontalPodAutoscalerLister.\ntype HorizontalPodAutoscalerListerExpansion interface{}\n\n// HorizontalPodAutoscalerNamespaceListerExpansion allows custom methods to be added to\n// HorizontalPodAutoscalerNamespaceLister.\ntype HorizontalPodAutoscalerNamespaceListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/autoscaling/v2beta1/horizontalpodautoscaler.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v2beta1\n\nimport (\n\tautoscalingv2beta1 \"k8s.io/api/autoscaling/v2beta1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// HorizontalPodAutoscalerLister helps list HorizontalPodAutoscalers.\n// All objects returned here must be treated as read-only.\ntype HorizontalPodAutoscalerLister interface {\n\t// List lists all HorizontalPodAutoscalers in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*autoscalingv2beta1.HorizontalPodAutoscaler, err error)\n\t// HorizontalPodAutoscalers returns an object that can list and get HorizontalPodAutoscalers.\n\tHorizontalPodAutoscalers(namespace string) HorizontalPodAutoscalerNamespaceLister\n\tHorizontalPodAutoscalerListerExpansion\n}\n\n// horizontalPodAutoscalerLister implements the HorizontalPodAutoscalerLister interface.\ntype horizontalPodAutoscalerLister struct {\n\tlisters.ResourceIndexer[*autoscalingv2beta1.HorizontalPodAutoscaler]\n}\n\n// NewHorizontalPodAutoscalerLister returns a new HorizontalPodAutoscalerLister.\nfunc NewHorizontalPodAutoscalerLister(indexer cache.Indexer) HorizontalPodAutoscalerLister {\n\treturn &horizontalPodAutoscalerLister{listers.New[*autoscalingv2beta1.HorizontalPodAutoscaler](indexer, autoscalingv2beta1.Resource(\"horizontalpodautoscaler\"))}\n}\n\n// HorizontalPodAutoscalers returns an object that can list and get HorizontalPodAutoscalers.\nfunc (s *horizontalPodAutoscalerLister) HorizontalPodAutoscalers(namespace string) HorizontalPodAutoscalerNamespaceLister {\n\treturn horizontalPodAutoscalerNamespaceLister{listers.NewNamespaced[*autoscalingv2beta1.HorizontalPodAutoscaler](s.ResourceIndexer, namespace)}\n}\n\n// HorizontalPodAutoscalerNamespaceLister helps list and get HorizontalPodAutoscalers.\n// All objects returned here must be treated as read-only.\ntype HorizontalPodAutoscalerNamespaceLister interface {\n\t// List lists all HorizontalPodAutoscalers in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*autoscalingv2beta1.HorizontalPodAutoscaler, err error)\n\t// Get retrieves the HorizontalPodAutoscaler from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*autoscalingv2beta1.HorizontalPodAutoscaler, error)\n\tHorizontalPodAutoscalerNamespaceListerExpansion\n}\n\n// horizontalPodAutoscalerNamespaceLister implements the HorizontalPodAutoscalerNamespaceLister\n// interface.\ntype horizontalPodAutoscalerNamespaceLister struct {\n\tlisters.ResourceIndexer[*autoscalingv2beta1.HorizontalPodAutoscaler]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/autoscaling/v2beta2/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v2beta2\n\n// HorizontalPodAutoscalerListerExpansion allows custom methods to be added to\n// HorizontalPodAutoscalerLister.\ntype HorizontalPodAutoscalerListerExpansion interface{}\n\n// HorizontalPodAutoscalerNamespaceListerExpansion allows custom methods to be added to\n// HorizontalPodAutoscalerNamespaceLister.\ntype HorizontalPodAutoscalerNamespaceListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/autoscaling/v2beta2/horizontalpodautoscaler.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v2beta2\n\nimport (\n\tautoscalingv2beta2 \"k8s.io/api/autoscaling/v2beta2\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// HorizontalPodAutoscalerLister helps list HorizontalPodAutoscalers.\n// All objects returned here must be treated as read-only.\ntype HorizontalPodAutoscalerLister interface {\n\t// List lists all HorizontalPodAutoscalers in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*autoscalingv2beta2.HorizontalPodAutoscaler, err error)\n\t// HorizontalPodAutoscalers returns an object that can list and get HorizontalPodAutoscalers.\n\tHorizontalPodAutoscalers(namespace string) HorizontalPodAutoscalerNamespaceLister\n\tHorizontalPodAutoscalerListerExpansion\n}\n\n// horizontalPodAutoscalerLister implements the HorizontalPodAutoscalerLister interface.\ntype horizontalPodAutoscalerLister struct {\n\tlisters.ResourceIndexer[*autoscalingv2beta2.HorizontalPodAutoscaler]\n}\n\n// NewHorizontalPodAutoscalerLister returns a new HorizontalPodAutoscalerLister.\nfunc NewHorizontalPodAutoscalerLister(indexer cache.Indexer) HorizontalPodAutoscalerLister {\n\treturn &horizontalPodAutoscalerLister{listers.New[*autoscalingv2beta2.HorizontalPodAutoscaler](indexer, autoscalingv2beta2.Resource(\"horizontalpodautoscaler\"))}\n}\n\n// HorizontalPodAutoscalers returns an object that can list and get HorizontalPodAutoscalers.\nfunc (s *horizontalPodAutoscalerLister) HorizontalPodAutoscalers(namespace string) HorizontalPodAutoscalerNamespaceLister {\n\treturn horizontalPodAutoscalerNamespaceLister{listers.NewNamespaced[*autoscalingv2beta2.HorizontalPodAutoscaler](s.ResourceIndexer, namespace)}\n}\n\n// HorizontalPodAutoscalerNamespaceLister helps list and get HorizontalPodAutoscalers.\n// All objects returned here must be treated as read-only.\ntype HorizontalPodAutoscalerNamespaceLister interface {\n\t// List lists all HorizontalPodAutoscalers in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*autoscalingv2beta2.HorizontalPodAutoscaler, err error)\n\t// Get retrieves the HorizontalPodAutoscaler from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*autoscalingv2beta2.HorizontalPodAutoscaler, error)\n\tHorizontalPodAutoscalerNamespaceListerExpansion\n}\n\n// horizontalPodAutoscalerNamespaceLister implements the HorizontalPodAutoscalerNamespaceLister\n// interface.\ntype horizontalPodAutoscalerNamespaceLister struct {\n\tlisters.ResourceIndexer[*autoscalingv2beta2.HorizontalPodAutoscaler]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/batch/v1/cronjob.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tbatchv1 \"k8s.io/api/batch/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// CronJobLister helps list CronJobs.\n// All objects returned here must be treated as read-only.\ntype CronJobLister interface {\n\t// List lists all CronJobs in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*batchv1.CronJob, err error)\n\t// CronJobs returns an object that can list and get CronJobs.\n\tCronJobs(namespace string) CronJobNamespaceLister\n\tCronJobListerExpansion\n}\n\n// cronJobLister implements the CronJobLister interface.\ntype cronJobLister struct {\n\tlisters.ResourceIndexer[*batchv1.CronJob]\n}\n\n// NewCronJobLister returns a new CronJobLister.\nfunc NewCronJobLister(indexer cache.Indexer) CronJobLister {\n\treturn &cronJobLister{listers.New[*batchv1.CronJob](indexer, batchv1.Resource(\"cronjob\"))}\n}\n\n// CronJobs returns an object that can list and get CronJobs.\nfunc (s *cronJobLister) CronJobs(namespace string) CronJobNamespaceLister {\n\treturn cronJobNamespaceLister{listers.NewNamespaced[*batchv1.CronJob](s.ResourceIndexer, namespace)}\n}\n\n// CronJobNamespaceLister helps list and get CronJobs.\n// All objects returned here must be treated as read-only.\ntype CronJobNamespaceLister interface {\n\t// List lists all CronJobs in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*batchv1.CronJob, err error)\n\t// Get retrieves the CronJob from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*batchv1.CronJob, error)\n\tCronJobNamespaceListerExpansion\n}\n\n// cronJobNamespaceLister implements the CronJobNamespaceLister\n// interface.\ntype cronJobNamespaceLister struct {\n\tlisters.ResourceIndexer[*batchv1.CronJob]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/batch/v1/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\n// CronJobListerExpansion allows custom methods to be added to\n// CronJobLister.\ntype CronJobListerExpansion interface{}\n\n// CronJobNamespaceListerExpansion allows custom methods to be added to\n// CronJobNamespaceLister.\ntype CronJobNamespaceListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/batch/v1/job.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tbatchv1 \"k8s.io/api/batch/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// JobLister helps list Jobs.\n// All objects returned here must be treated as read-only.\ntype JobLister interface {\n\t// List lists all Jobs in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*batchv1.Job, err error)\n\t// Jobs returns an object that can list and get Jobs.\n\tJobs(namespace string) JobNamespaceLister\n\tJobListerExpansion\n}\n\n// jobLister implements the JobLister interface.\ntype jobLister struct {\n\tlisters.ResourceIndexer[*batchv1.Job]\n}\n\n// NewJobLister returns a new JobLister.\nfunc NewJobLister(indexer cache.Indexer) JobLister {\n\treturn &jobLister{listers.New[*batchv1.Job](indexer, batchv1.Resource(\"job\"))}\n}\n\n// Jobs returns an object that can list and get Jobs.\nfunc (s *jobLister) Jobs(namespace string) JobNamespaceLister {\n\treturn jobNamespaceLister{listers.NewNamespaced[*batchv1.Job](s.ResourceIndexer, namespace)}\n}\n\n// JobNamespaceLister helps list and get Jobs.\n// All objects returned here must be treated as read-only.\ntype JobNamespaceLister interface {\n\t// List lists all Jobs in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*batchv1.Job, err error)\n\t// Get retrieves the Job from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*batchv1.Job, error)\n\tJobNamespaceListerExpansion\n}\n\n// jobNamespaceLister implements the JobNamespaceLister\n// interface.\ntype jobNamespaceLister struct {\n\tlisters.ResourceIndexer[*batchv1.Job]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/batch/v1/job_expansion.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"fmt\"\n\n\tbatch \"k8s.io/api/batch/v1\"\n\t\"k8s.io/api/core/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/labels\"\n)\n\n// JobListerExpansion allows custom methods to be added to\n// JobLister.\ntype JobListerExpansion interface {\n\t// GetPodJobs returns a list of Jobs that potentially\n\t// match a Pod. Only the one specified in the Pod's ControllerRef\n\t// will actually manage it.\n\t// Returns an error only if no matching Jobs are found.\n\tGetPodJobs(pod *v1.Pod) (jobs []batch.Job, err error)\n}\n\n// GetPodJobs returns a list of Jobs that potentially\n// match a Pod. Only the one specified in the Pod's ControllerRef\n// will actually manage it.\n// Returns an error only if no matching Jobs are found.\nfunc (l *jobLister) GetPodJobs(pod *v1.Pod) (jobs []batch.Job, err error) {\n\tif len(pod.Labels) == 0 {\n\t\terr = fmt.Errorf(\"no jobs found for pod %v because it has no labels\", pod.Name)\n\t\treturn\n\t}\n\n\tvar list []*batch.Job\n\tlist, err = l.Jobs(pod.Namespace).List(labels.Everything())\n\tif err != nil {\n\t\treturn\n\t}\n\tfor _, job := range list {\n\t\tselector, err := metav1.LabelSelectorAsSelector(job.Spec.Selector)\n\t\tif err != nil {\n\t\t\t// This object has an invalid selector, it does not match the pod\n\t\t\tcontinue\n\t\t}\n\t\tif !selector.Matches(labels.Set(pod.Labels)) {\n\t\t\tcontinue\n\t\t}\n\t\tjobs = append(jobs, *job)\n\t}\n\tif len(jobs) == 0 {\n\t\terr = fmt.Errorf(\"could not find jobs for pod %s in namespace %s with labels: %v\", pod.Name, pod.Namespace, pod.Labels)\n\t}\n\treturn\n}\n\n// JobNamespaceListerExpansion allows custom methods to be added to\n// JobNamespaceLister.\ntype JobNamespaceListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/batch/v1beta1/cronjob.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tbatchv1beta1 \"k8s.io/api/batch/v1beta1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// CronJobLister helps list CronJobs.\n// All objects returned here must be treated as read-only.\ntype CronJobLister interface {\n\t// List lists all CronJobs in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*batchv1beta1.CronJob, err error)\n\t// CronJobs returns an object that can list and get CronJobs.\n\tCronJobs(namespace string) CronJobNamespaceLister\n\tCronJobListerExpansion\n}\n\n// cronJobLister implements the CronJobLister interface.\ntype cronJobLister struct {\n\tlisters.ResourceIndexer[*batchv1beta1.CronJob]\n}\n\n// NewCronJobLister returns a new CronJobLister.\nfunc NewCronJobLister(indexer cache.Indexer) CronJobLister {\n\treturn &cronJobLister{listers.New[*batchv1beta1.CronJob](indexer, batchv1beta1.Resource(\"cronjob\"))}\n}\n\n// CronJobs returns an object that can list and get CronJobs.\nfunc (s *cronJobLister) CronJobs(namespace string) CronJobNamespaceLister {\n\treturn cronJobNamespaceLister{listers.NewNamespaced[*batchv1beta1.CronJob](s.ResourceIndexer, namespace)}\n}\n\n// CronJobNamespaceLister helps list and get CronJobs.\n// All objects returned here must be treated as read-only.\ntype CronJobNamespaceLister interface {\n\t// List lists all CronJobs in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*batchv1beta1.CronJob, err error)\n\t// Get retrieves the CronJob from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*batchv1beta1.CronJob, error)\n\tCronJobNamespaceListerExpansion\n}\n\n// cronJobNamespaceLister implements the CronJobNamespaceLister\n// interface.\ntype cronJobNamespaceLister struct {\n\tlisters.ResourceIndexer[*batchv1beta1.CronJob]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/batch/v1beta1/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// CronJobListerExpansion allows custom methods to be added to\n// CronJobLister.\ntype CronJobListerExpansion interface{}\n\n// CronJobNamespaceListerExpansion allows custom methods to be added to\n// CronJobNamespaceLister.\ntype CronJobNamespaceListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/certificates/v1/certificatesigningrequest.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcertificatesv1 \"k8s.io/api/certificates/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// CertificateSigningRequestLister helps list CertificateSigningRequests.\n// All objects returned here must be treated as read-only.\ntype CertificateSigningRequestLister interface {\n\t// List lists all CertificateSigningRequests in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*certificatesv1.CertificateSigningRequest, err error)\n\t// Get retrieves the CertificateSigningRequest from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*certificatesv1.CertificateSigningRequest, error)\n\tCertificateSigningRequestListerExpansion\n}\n\n// certificateSigningRequestLister implements the CertificateSigningRequestLister interface.\ntype certificateSigningRequestLister struct {\n\tlisters.ResourceIndexer[*certificatesv1.CertificateSigningRequest]\n}\n\n// NewCertificateSigningRequestLister returns a new CertificateSigningRequestLister.\nfunc NewCertificateSigningRequestLister(indexer cache.Indexer) CertificateSigningRequestLister {\n\treturn &certificateSigningRequestLister{listers.New[*certificatesv1.CertificateSigningRequest](indexer, certificatesv1.Resource(\"certificatesigningrequest\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/certificates/v1/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\n// CertificateSigningRequestListerExpansion allows custom methods to be added to\n// CertificateSigningRequestLister.\ntype CertificateSigningRequestListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/certificates/v1alpha1/clustertrustbundle.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tcertificatesv1alpha1 \"k8s.io/api/certificates/v1alpha1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ClusterTrustBundleLister helps list ClusterTrustBundles.\n// All objects returned here must be treated as read-only.\ntype ClusterTrustBundleLister interface {\n\t// List lists all ClusterTrustBundles in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*certificatesv1alpha1.ClusterTrustBundle, err error)\n\t// Get retrieves the ClusterTrustBundle from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*certificatesv1alpha1.ClusterTrustBundle, error)\n\tClusterTrustBundleListerExpansion\n}\n\n// clusterTrustBundleLister implements the ClusterTrustBundleLister interface.\ntype clusterTrustBundleLister struct {\n\tlisters.ResourceIndexer[*certificatesv1alpha1.ClusterTrustBundle]\n}\n\n// NewClusterTrustBundleLister returns a new ClusterTrustBundleLister.\nfunc NewClusterTrustBundleLister(indexer cache.Indexer) ClusterTrustBundleLister {\n\treturn &clusterTrustBundleLister{listers.New[*certificatesv1alpha1.ClusterTrustBundle](indexer, certificatesv1alpha1.Resource(\"clustertrustbundle\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/certificates/v1alpha1/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// ClusterTrustBundleListerExpansion allows custom methods to be added to\n// ClusterTrustBundleLister.\ntype ClusterTrustBundleListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/certificates/v1beta1/certificatesigningrequest.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcertificatesv1beta1 \"k8s.io/api/certificates/v1beta1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// CertificateSigningRequestLister helps list CertificateSigningRequests.\n// All objects returned here must be treated as read-only.\ntype CertificateSigningRequestLister interface {\n\t// List lists all CertificateSigningRequests in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*certificatesv1beta1.CertificateSigningRequest, err error)\n\t// Get retrieves the CertificateSigningRequest from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*certificatesv1beta1.CertificateSigningRequest, error)\n\tCertificateSigningRequestListerExpansion\n}\n\n// certificateSigningRequestLister implements the CertificateSigningRequestLister interface.\ntype certificateSigningRequestLister struct {\n\tlisters.ResourceIndexer[*certificatesv1beta1.CertificateSigningRequest]\n}\n\n// NewCertificateSigningRequestLister returns a new CertificateSigningRequestLister.\nfunc NewCertificateSigningRequestLister(indexer cache.Indexer) CertificateSigningRequestLister {\n\treturn &certificateSigningRequestLister{listers.New[*certificatesv1beta1.CertificateSigningRequest](indexer, certificatesv1beta1.Resource(\"certificatesigningrequest\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/certificates/v1beta1/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// CertificateSigningRequestListerExpansion allows custom methods to be added to\n// CertificateSigningRequestLister.\ntype CertificateSigningRequestListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/coordination/v1/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\n// LeaseListerExpansion allows custom methods to be added to\n// LeaseLister.\ntype LeaseListerExpansion interface{}\n\n// LeaseNamespaceListerExpansion allows custom methods to be added to\n// LeaseNamespaceLister.\ntype LeaseNamespaceListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/coordination/v1/lease.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcoordinationv1 \"k8s.io/api/coordination/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// LeaseLister helps list Leases.\n// All objects returned here must be treated as read-only.\ntype LeaseLister interface {\n\t// List lists all Leases in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*coordinationv1.Lease, err error)\n\t// Leases returns an object that can list and get Leases.\n\tLeases(namespace string) LeaseNamespaceLister\n\tLeaseListerExpansion\n}\n\n// leaseLister implements the LeaseLister interface.\ntype leaseLister struct {\n\tlisters.ResourceIndexer[*coordinationv1.Lease]\n}\n\n// NewLeaseLister returns a new LeaseLister.\nfunc NewLeaseLister(indexer cache.Indexer) LeaseLister {\n\treturn &leaseLister{listers.New[*coordinationv1.Lease](indexer, coordinationv1.Resource(\"lease\"))}\n}\n\n// Leases returns an object that can list and get Leases.\nfunc (s *leaseLister) Leases(namespace string) LeaseNamespaceLister {\n\treturn leaseNamespaceLister{listers.NewNamespaced[*coordinationv1.Lease](s.ResourceIndexer, namespace)}\n}\n\n// LeaseNamespaceLister helps list and get Leases.\n// All objects returned here must be treated as read-only.\ntype LeaseNamespaceLister interface {\n\t// List lists all Leases in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*coordinationv1.Lease, err error)\n\t// Get retrieves the Lease from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*coordinationv1.Lease, error)\n\tLeaseNamespaceListerExpansion\n}\n\n// leaseNamespaceLister implements the LeaseNamespaceLister\n// interface.\ntype leaseNamespaceLister struct {\n\tlisters.ResourceIndexer[*coordinationv1.Lease]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/coordination/v1alpha2/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1alpha2\n\n// LeaseCandidateListerExpansion allows custom methods to be added to\n// LeaseCandidateLister.\ntype LeaseCandidateListerExpansion interface{}\n\n// LeaseCandidateNamespaceListerExpansion allows custom methods to be added to\n// LeaseCandidateNamespaceLister.\ntype LeaseCandidateNamespaceListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/coordination/v1alpha2/leasecandidate.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1alpha2\n\nimport (\n\tcoordinationv1alpha2 \"k8s.io/api/coordination/v1alpha2\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// LeaseCandidateLister helps list LeaseCandidates.\n// All objects returned here must be treated as read-only.\ntype LeaseCandidateLister interface {\n\t// List lists all LeaseCandidates in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*coordinationv1alpha2.LeaseCandidate, err error)\n\t// LeaseCandidates returns an object that can list and get LeaseCandidates.\n\tLeaseCandidates(namespace string) LeaseCandidateNamespaceLister\n\tLeaseCandidateListerExpansion\n}\n\n// leaseCandidateLister implements the LeaseCandidateLister interface.\ntype leaseCandidateLister struct {\n\tlisters.ResourceIndexer[*coordinationv1alpha2.LeaseCandidate]\n}\n\n// NewLeaseCandidateLister returns a new LeaseCandidateLister.\nfunc NewLeaseCandidateLister(indexer cache.Indexer) LeaseCandidateLister {\n\treturn &leaseCandidateLister{listers.New[*coordinationv1alpha2.LeaseCandidate](indexer, coordinationv1alpha2.Resource(\"leasecandidate\"))}\n}\n\n// LeaseCandidates returns an object that can list and get LeaseCandidates.\nfunc (s *leaseCandidateLister) LeaseCandidates(namespace string) LeaseCandidateNamespaceLister {\n\treturn leaseCandidateNamespaceLister{listers.NewNamespaced[*coordinationv1alpha2.LeaseCandidate](s.ResourceIndexer, namespace)}\n}\n\n// LeaseCandidateNamespaceLister helps list and get LeaseCandidates.\n// All objects returned here must be treated as read-only.\ntype LeaseCandidateNamespaceLister interface {\n\t// List lists all LeaseCandidates in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*coordinationv1alpha2.LeaseCandidate, err error)\n\t// Get retrieves the LeaseCandidate from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*coordinationv1alpha2.LeaseCandidate, error)\n\tLeaseCandidateNamespaceListerExpansion\n}\n\n// leaseCandidateNamespaceLister implements the LeaseCandidateNamespaceLister\n// interface.\ntype leaseCandidateNamespaceLister struct {\n\tlisters.ResourceIndexer[*coordinationv1alpha2.LeaseCandidate]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/coordination/v1beta1/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// LeaseListerExpansion allows custom methods to be added to\n// LeaseLister.\ntype LeaseListerExpansion interface{}\n\n// LeaseNamespaceListerExpansion allows custom methods to be added to\n// LeaseNamespaceLister.\ntype LeaseNamespaceListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/coordination/v1beta1/lease.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tcoordinationv1beta1 \"k8s.io/api/coordination/v1beta1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// LeaseLister helps list Leases.\n// All objects returned here must be treated as read-only.\ntype LeaseLister interface {\n\t// List lists all Leases in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*coordinationv1beta1.Lease, err error)\n\t// Leases returns an object that can list and get Leases.\n\tLeases(namespace string) LeaseNamespaceLister\n\tLeaseListerExpansion\n}\n\n// leaseLister implements the LeaseLister interface.\ntype leaseLister struct {\n\tlisters.ResourceIndexer[*coordinationv1beta1.Lease]\n}\n\n// NewLeaseLister returns a new LeaseLister.\nfunc NewLeaseLister(indexer cache.Indexer) LeaseLister {\n\treturn &leaseLister{listers.New[*coordinationv1beta1.Lease](indexer, coordinationv1beta1.Resource(\"lease\"))}\n}\n\n// Leases returns an object that can list and get Leases.\nfunc (s *leaseLister) Leases(namespace string) LeaseNamespaceLister {\n\treturn leaseNamespaceLister{listers.NewNamespaced[*coordinationv1beta1.Lease](s.ResourceIndexer, namespace)}\n}\n\n// LeaseNamespaceLister helps list and get Leases.\n// All objects returned here must be treated as read-only.\ntype LeaseNamespaceLister interface {\n\t// List lists all Leases in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*coordinationv1beta1.Lease, err error)\n\t// Get retrieves the Lease from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*coordinationv1beta1.Lease, error)\n\tLeaseNamespaceListerExpansion\n}\n\n// leaseNamespaceLister implements the LeaseNamespaceLister\n// interface.\ntype leaseNamespaceLister struct {\n\tlisters.ResourceIndexer[*coordinationv1beta1.Lease]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/core/v1/componentstatus.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ComponentStatusLister helps list ComponentStatuses.\n// All objects returned here must be treated as read-only.\ntype ComponentStatusLister interface {\n\t// List lists all ComponentStatuses in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*corev1.ComponentStatus, err error)\n\t// Get retrieves the ComponentStatus from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*corev1.ComponentStatus, error)\n\tComponentStatusListerExpansion\n}\n\n// componentStatusLister implements the ComponentStatusLister interface.\ntype componentStatusLister struct {\n\tlisters.ResourceIndexer[*corev1.ComponentStatus]\n}\n\n// NewComponentStatusLister returns a new ComponentStatusLister.\nfunc NewComponentStatusLister(indexer cache.Indexer) ComponentStatusLister {\n\treturn &componentStatusLister{listers.New[*corev1.ComponentStatus](indexer, corev1.Resource(\"componentstatus\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/core/v1/configmap.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ConfigMapLister helps list ConfigMaps.\n// All objects returned here must be treated as read-only.\ntype ConfigMapLister interface {\n\t// List lists all ConfigMaps in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*corev1.ConfigMap, err error)\n\t// ConfigMaps returns an object that can list and get ConfigMaps.\n\tConfigMaps(namespace string) ConfigMapNamespaceLister\n\tConfigMapListerExpansion\n}\n\n// configMapLister implements the ConfigMapLister interface.\ntype configMapLister struct {\n\tlisters.ResourceIndexer[*corev1.ConfigMap]\n}\n\n// NewConfigMapLister returns a new ConfigMapLister.\nfunc NewConfigMapLister(indexer cache.Indexer) ConfigMapLister {\n\treturn &configMapLister{listers.New[*corev1.ConfigMap](indexer, corev1.Resource(\"configmap\"))}\n}\n\n// ConfigMaps returns an object that can list and get ConfigMaps.\nfunc (s *configMapLister) ConfigMaps(namespace string) ConfigMapNamespaceLister {\n\treturn configMapNamespaceLister{listers.NewNamespaced[*corev1.ConfigMap](s.ResourceIndexer, namespace)}\n}\n\n// ConfigMapNamespaceLister helps list and get ConfigMaps.\n// All objects returned here must be treated as read-only.\ntype ConfigMapNamespaceLister interface {\n\t// List lists all ConfigMaps in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*corev1.ConfigMap, err error)\n\t// Get retrieves the ConfigMap from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*corev1.ConfigMap, error)\n\tConfigMapNamespaceListerExpansion\n}\n\n// configMapNamespaceLister implements the ConfigMapNamespaceLister\n// interface.\ntype configMapNamespaceLister struct {\n\tlisters.ResourceIndexer[*corev1.ConfigMap]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/core/v1/endpoints.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// EndpointsLister helps list Endpoints.\n// All objects returned here must be treated as read-only.\ntype EndpointsLister interface {\n\t// List lists all Endpoints in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*corev1.Endpoints, err error)\n\t// Endpoints returns an object that can list and get Endpoints.\n\tEndpoints(namespace string) EndpointsNamespaceLister\n\tEndpointsListerExpansion\n}\n\n// endpointsLister implements the EndpointsLister interface.\ntype endpointsLister struct {\n\tlisters.ResourceIndexer[*corev1.Endpoints]\n}\n\n// NewEndpointsLister returns a new EndpointsLister.\nfunc NewEndpointsLister(indexer cache.Indexer) EndpointsLister {\n\treturn &endpointsLister{listers.New[*corev1.Endpoints](indexer, corev1.Resource(\"endpoints\"))}\n}\n\n// Endpoints returns an object that can list and get Endpoints.\nfunc (s *endpointsLister) Endpoints(namespace string) EndpointsNamespaceLister {\n\treturn endpointsNamespaceLister{listers.NewNamespaced[*corev1.Endpoints](s.ResourceIndexer, namespace)}\n}\n\n// EndpointsNamespaceLister helps list and get Endpoints.\n// All objects returned here must be treated as read-only.\ntype EndpointsNamespaceLister interface {\n\t// List lists all Endpoints in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*corev1.Endpoints, err error)\n\t// Get retrieves the Endpoints from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*corev1.Endpoints, error)\n\tEndpointsNamespaceListerExpansion\n}\n\n// endpointsNamespaceLister implements the EndpointsNamespaceLister\n// interface.\ntype endpointsNamespaceLister struct {\n\tlisters.ResourceIndexer[*corev1.Endpoints]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/core/v1/event.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// EventLister helps list Events.\n// All objects returned here must be treated as read-only.\ntype EventLister interface {\n\t// List lists all Events in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*corev1.Event, err error)\n\t// Events returns an object that can list and get Events.\n\tEvents(namespace string) EventNamespaceLister\n\tEventListerExpansion\n}\n\n// eventLister implements the EventLister interface.\ntype eventLister struct {\n\tlisters.ResourceIndexer[*corev1.Event]\n}\n\n// NewEventLister returns a new EventLister.\nfunc NewEventLister(indexer cache.Indexer) EventLister {\n\treturn &eventLister{listers.New[*corev1.Event](indexer, corev1.Resource(\"event\"))}\n}\n\n// Events returns an object that can list and get Events.\nfunc (s *eventLister) Events(namespace string) EventNamespaceLister {\n\treturn eventNamespaceLister{listers.NewNamespaced[*corev1.Event](s.ResourceIndexer, namespace)}\n}\n\n// EventNamespaceLister helps list and get Events.\n// All objects returned here must be treated as read-only.\ntype EventNamespaceLister interface {\n\t// List lists all Events in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*corev1.Event, err error)\n\t// Get retrieves the Event from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*corev1.Event, error)\n\tEventNamespaceListerExpansion\n}\n\n// eventNamespaceLister implements the EventNamespaceLister\n// interface.\ntype eventNamespaceLister struct {\n\tlisters.ResourceIndexer[*corev1.Event]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/core/v1/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\n// ComponentStatusListerExpansion allows custom methods to be added to\n// ComponentStatusLister.\ntype ComponentStatusListerExpansion interface{}\n\n// ConfigMapListerExpansion allows custom methods to be added to\n// ConfigMapLister.\ntype ConfigMapListerExpansion interface{}\n\n// ConfigMapNamespaceListerExpansion allows custom methods to be added to\n// ConfigMapNamespaceLister.\ntype ConfigMapNamespaceListerExpansion interface{}\n\n// EndpointsListerExpansion allows custom methods to be added to\n// EndpointsLister.\ntype EndpointsListerExpansion interface{}\n\n// EndpointsNamespaceListerExpansion allows custom methods to be added to\n// EndpointsNamespaceLister.\ntype EndpointsNamespaceListerExpansion interface{}\n\n// EventListerExpansion allows custom methods to be added to\n// EventLister.\ntype EventListerExpansion interface{}\n\n// EventNamespaceListerExpansion allows custom methods to be added to\n// EventNamespaceLister.\ntype EventNamespaceListerExpansion interface{}\n\n// LimitRangeListerExpansion allows custom methods to be added to\n// LimitRangeLister.\ntype LimitRangeListerExpansion interface{}\n\n// LimitRangeNamespaceListerExpansion allows custom methods to be added to\n// LimitRangeNamespaceLister.\ntype LimitRangeNamespaceListerExpansion interface{}\n\n// NamespaceListerExpansion allows custom methods to be added to\n// NamespaceLister.\ntype NamespaceListerExpansion interface{}\n\n// NodeListerExpansion allows custom methods to be added to\n// NodeLister.\ntype NodeListerExpansion interface{}\n\n// PersistentVolumeListerExpansion allows custom methods to be added to\n// PersistentVolumeLister.\ntype PersistentVolumeListerExpansion interface{}\n\n// PersistentVolumeClaimListerExpansion allows custom methods to be added to\n// PersistentVolumeClaimLister.\ntype PersistentVolumeClaimListerExpansion interface{}\n\n// PersistentVolumeClaimNamespaceListerExpansion allows custom methods to be added to\n// PersistentVolumeClaimNamespaceLister.\ntype PersistentVolumeClaimNamespaceListerExpansion interface{}\n\n// PodListerExpansion allows custom methods to be added to\n// PodLister.\ntype PodListerExpansion interface{}\n\n// PodNamespaceListerExpansion allows custom methods to be added to\n// PodNamespaceLister.\ntype PodNamespaceListerExpansion interface{}\n\n// PodTemplateListerExpansion allows custom methods to be added to\n// PodTemplateLister.\ntype PodTemplateListerExpansion interface{}\n\n// PodTemplateNamespaceListerExpansion allows custom methods to be added to\n// PodTemplateNamespaceLister.\ntype PodTemplateNamespaceListerExpansion interface{}\n\n// ResourceQuotaListerExpansion allows custom methods to be added to\n// ResourceQuotaLister.\ntype ResourceQuotaListerExpansion interface{}\n\n// ResourceQuotaNamespaceListerExpansion allows custom methods to be added to\n// ResourceQuotaNamespaceLister.\ntype ResourceQuotaNamespaceListerExpansion interface{}\n\n// SecretListerExpansion allows custom methods to be added to\n// SecretLister.\ntype SecretListerExpansion interface{}\n\n// SecretNamespaceListerExpansion allows custom methods to be added to\n// SecretNamespaceLister.\ntype SecretNamespaceListerExpansion interface{}\n\n// ServiceListerExpansion allows custom methods to be added to\n// ServiceLister.\ntype ServiceListerExpansion interface{}\n\n// ServiceNamespaceListerExpansion allows custom methods to be added to\n// ServiceNamespaceLister.\ntype ServiceNamespaceListerExpansion interface{}\n\n// ServiceAccountListerExpansion allows custom methods to be added to\n// ServiceAccountLister.\ntype ServiceAccountListerExpansion interface{}\n\n// ServiceAccountNamespaceListerExpansion allows custom methods to be added to\n// ServiceAccountNamespaceLister.\ntype ServiceAccountNamespaceListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/core/v1/limitrange.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// LimitRangeLister helps list LimitRanges.\n// All objects returned here must be treated as read-only.\ntype LimitRangeLister interface {\n\t// List lists all LimitRanges in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*corev1.LimitRange, err error)\n\t// LimitRanges returns an object that can list and get LimitRanges.\n\tLimitRanges(namespace string) LimitRangeNamespaceLister\n\tLimitRangeListerExpansion\n}\n\n// limitRangeLister implements the LimitRangeLister interface.\ntype limitRangeLister struct {\n\tlisters.ResourceIndexer[*corev1.LimitRange]\n}\n\n// NewLimitRangeLister returns a new LimitRangeLister.\nfunc NewLimitRangeLister(indexer cache.Indexer) LimitRangeLister {\n\treturn &limitRangeLister{listers.New[*corev1.LimitRange](indexer, corev1.Resource(\"limitrange\"))}\n}\n\n// LimitRanges returns an object that can list and get LimitRanges.\nfunc (s *limitRangeLister) LimitRanges(namespace string) LimitRangeNamespaceLister {\n\treturn limitRangeNamespaceLister{listers.NewNamespaced[*corev1.LimitRange](s.ResourceIndexer, namespace)}\n}\n\n// LimitRangeNamespaceLister helps list and get LimitRanges.\n// All objects returned here must be treated as read-only.\ntype LimitRangeNamespaceLister interface {\n\t// List lists all LimitRanges in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*corev1.LimitRange, err error)\n\t// Get retrieves the LimitRange from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*corev1.LimitRange, error)\n\tLimitRangeNamespaceListerExpansion\n}\n\n// limitRangeNamespaceLister implements the LimitRangeNamespaceLister\n// interface.\ntype limitRangeNamespaceLister struct {\n\tlisters.ResourceIndexer[*corev1.LimitRange]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/core/v1/namespace.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// NamespaceLister helps list Namespaces.\n// All objects returned here must be treated as read-only.\ntype NamespaceLister interface {\n\t// List lists all Namespaces in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*corev1.Namespace, err error)\n\t// Get retrieves the Namespace from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*corev1.Namespace, error)\n\tNamespaceListerExpansion\n}\n\n// namespaceLister implements the NamespaceLister interface.\ntype namespaceLister struct {\n\tlisters.ResourceIndexer[*corev1.Namespace]\n}\n\n// NewNamespaceLister returns a new NamespaceLister.\nfunc NewNamespaceLister(indexer cache.Indexer) NamespaceLister {\n\treturn &namespaceLister{listers.New[*corev1.Namespace](indexer, corev1.Resource(\"namespace\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/core/v1/node.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// NodeLister helps list Nodes.\n// All objects returned here must be treated as read-only.\ntype NodeLister interface {\n\t// List lists all Nodes in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*corev1.Node, err error)\n\t// Get retrieves the Node from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*corev1.Node, error)\n\tNodeListerExpansion\n}\n\n// nodeLister implements the NodeLister interface.\ntype nodeLister struct {\n\tlisters.ResourceIndexer[*corev1.Node]\n}\n\n// NewNodeLister returns a new NodeLister.\nfunc NewNodeLister(indexer cache.Indexer) NodeLister {\n\treturn &nodeLister{listers.New[*corev1.Node](indexer, corev1.Resource(\"node\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/core/v1/persistentvolume.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// PersistentVolumeLister helps list PersistentVolumes.\n// All objects returned here must be treated as read-only.\ntype PersistentVolumeLister interface {\n\t// List lists all PersistentVolumes in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*corev1.PersistentVolume, err error)\n\t// Get retrieves the PersistentVolume from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*corev1.PersistentVolume, error)\n\tPersistentVolumeListerExpansion\n}\n\n// persistentVolumeLister implements the PersistentVolumeLister interface.\ntype persistentVolumeLister struct {\n\tlisters.ResourceIndexer[*corev1.PersistentVolume]\n}\n\n// NewPersistentVolumeLister returns a new PersistentVolumeLister.\nfunc NewPersistentVolumeLister(indexer cache.Indexer) PersistentVolumeLister {\n\treturn &persistentVolumeLister{listers.New[*corev1.PersistentVolume](indexer, corev1.Resource(\"persistentvolume\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/core/v1/persistentvolumeclaim.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// PersistentVolumeClaimLister helps list PersistentVolumeClaims.\n// All objects returned here must be treated as read-only.\ntype PersistentVolumeClaimLister interface {\n\t// List lists all PersistentVolumeClaims in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*corev1.PersistentVolumeClaim, err error)\n\t// PersistentVolumeClaims returns an object that can list and get PersistentVolumeClaims.\n\tPersistentVolumeClaims(namespace string) PersistentVolumeClaimNamespaceLister\n\tPersistentVolumeClaimListerExpansion\n}\n\n// persistentVolumeClaimLister implements the PersistentVolumeClaimLister interface.\ntype persistentVolumeClaimLister struct {\n\tlisters.ResourceIndexer[*corev1.PersistentVolumeClaim]\n}\n\n// NewPersistentVolumeClaimLister returns a new PersistentVolumeClaimLister.\nfunc NewPersistentVolumeClaimLister(indexer cache.Indexer) PersistentVolumeClaimLister {\n\treturn &persistentVolumeClaimLister{listers.New[*corev1.PersistentVolumeClaim](indexer, corev1.Resource(\"persistentvolumeclaim\"))}\n}\n\n// PersistentVolumeClaims returns an object that can list and get PersistentVolumeClaims.\nfunc (s *persistentVolumeClaimLister) PersistentVolumeClaims(namespace string) PersistentVolumeClaimNamespaceLister {\n\treturn persistentVolumeClaimNamespaceLister{listers.NewNamespaced[*corev1.PersistentVolumeClaim](s.ResourceIndexer, namespace)}\n}\n\n// PersistentVolumeClaimNamespaceLister helps list and get PersistentVolumeClaims.\n// All objects returned here must be treated as read-only.\ntype PersistentVolumeClaimNamespaceLister interface {\n\t// List lists all PersistentVolumeClaims in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*corev1.PersistentVolumeClaim, err error)\n\t// Get retrieves the PersistentVolumeClaim from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*corev1.PersistentVolumeClaim, error)\n\tPersistentVolumeClaimNamespaceListerExpansion\n}\n\n// persistentVolumeClaimNamespaceLister implements the PersistentVolumeClaimNamespaceLister\n// interface.\ntype persistentVolumeClaimNamespaceLister struct {\n\tlisters.ResourceIndexer[*corev1.PersistentVolumeClaim]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/core/v1/pod.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// PodLister helps list Pods.\n// All objects returned here must be treated as read-only.\ntype PodLister interface {\n\t// List lists all Pods in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*corev1.Pod, err error)\n\t// Pods returns an object that can list and get Pods.\n\tPods(namespace string) PodNamespaceLister\n\tPodListerExpansion\n}\n\n// podLister implements the PodLister interface.\ntype podLister struct {\n\tlisters.ResourceIndexer[*corev1.Pod]\n}\n\n// NewPodLister returns a new PodLister.\nfunc NewPodLister(indexer cache.Indexer) PodLister {\n\treturn &podLister{listers.New[*corev1.Pod](indexer, corev1.Resource(\"pod\"))}\n}\n\n// Pods returns an object that can list and get Pods.\nfunc (s *podLister) Pods(namespace string) PodNamespaceLister {\n\treturn podNamespaceLister{listers.NewNamespaced[*corev1.Pod](s.ResourceIndexer, namespace)}\n}\n\n// PodNamespaceLister helps list and get Pods.\n// All objects returned here must be treated as read-only.\ntype PodNamespaceLister interface {\n\t// List lists all Pods in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*corev1.Pod, err error)\n\t// Get retrieves the Pod from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*corev1.Pod, error)\n\tPodNamespaceListerExpansion\n}\n\n// podNamespaceLister implements the PodNamespaceLister\n// interface.\ntype podNamespaceLister struct {\n\tlisters.ResourceIndexer[*corev1.Pod]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/core/v1/podtemplate.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// PodTemplateLister helps list PodTemplates.\n// All objects returned here must be treated as read-only.\ntype PodTemplateLister interface {\n\t// List lists all PodTemplates in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*corev1.PodTemplate, err error)\n\t// PodTemplates returns an object that can list and get PodTemplates.\n\tPodTemplates(namespace string) PodTemplateNamespaceLister\n\tPodTemplateListerExpansion\n}\n\n// podTemplateLister implements the PodTemplateLister interface.\ntype podTemplateLister struct {\n\tlisters.ResourceIndexer[*corev1.PodTemplate]\n}\n\n// NewPodTemplateLister returns a new PodTemplateLister.\nfunc NewPodTemplateLister(indexer cache.Indexer) PodTemplateLister {\n\treturn &podTemplateLister{listers.New[*corev1.PodTemplate](indexer, corev1.Resource(\"podtemplate\"))}\n}\n\n// PodTemplates returns an object that can list and get PodTemplates.\nfunc (s *podTemplateLister) PodTemplates(namespace string) PodTemplateNamespaceLister {\n\treturn podTemplateNamespaceLister{listers.NewNamespaced[*corev1.PodTemplate](s.ResourceIndexer, namespace)}\n}\n\n// PodTemplateNamespaceLister helps list and get PodTemplates.\n// All objects returned here must be treated as read-only.\ntype PodTemplateNamespaceLister interface {\n\t// List lists all PodTemplates in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*corev1.PodTemplate, err error)\n\t// Get retrieves the PodTemplate from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*corev1.PodTemplate, error)\n\tPodTemplateNamespaceListerExpansion\n}\n\n// podTemplateNamespaceLister implements the PodTemplateNamespaceLister\n// interface.\ntype podTemplateNamespaceLister struct {\n\tlisters.ResourceIndexer[*corev1.PodTemplate]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/core/v1/replicationcontroller.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ReplicationControllerLister helps list ReplicationControllers.\n// All objects returned here must be treated as read-only.\ntype ReplicationControllerLister interface {\n\t// List lists all ReplicationControllers in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*corev1.ReplicationController, err error)\n\t// ReplicationControllers returns an object that can list and get ReplicationControllers.\n\tReplicationControllers(namespace string) ReplicationControllerNamespaceLister\n\tReplicationControllerListerExpansion\n}\n\n// replicationControllerLister implements the ReplicationControllerLister interface.\ntype replicationControllerLister struct {\n\tlisters.ResourceIndexer[*corev1.ReplicationController]\n}\n\n// NewReplicationControllerLister returns a new ReplicationControllerLister.\nfunc NewReplicationControllerLister(indexer cache.Indexer) ReplicationControllerLister {\n\treturn &replicationControllerLister{listers.New[*corev1.ReplicationController](indexer, corev1.Resource(\"replicationcontroller\"))}\n}\n\n// ReplicationControllers returns an object that can list and get ReplicationControllers.\nfunc (s *replicationControllerLister) ReplicationControllers(namespace string) ReplicationControllerNamespaceLister {\n\treturn replicationControllerNamespaceLister{listers.NewNamespaced[*corev1.ReplicationController](s.ResourceIndexer, namespace)}\n}\n\n// ReplicationControllerNamespaceLister helps list and get ReplicationControllers.\n// All objects returned here must be treated as read-only.\ntype ReplicationControllerNamespaceLister interface {\n\t// List lists all ReplicationControllers in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*corev1.ReplicationController, err error)\n\t// Get retrieves the ReplicationController from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*corev1.ReplicationController, error)\n\tReplicationControllerNamespaceListerExpansion\n}\n\n// replicationControllerNamespaceLister implements the ReplicationControllerNamespaceLister\n// interface.\ntype replicationControllerNamespaceLister struct {\n\tlisters.ResourceIndexer[*corev1.ReplicationController]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/core/v1/replicationcontroller_expansion.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"fmt\"\n\n\t\"k8s.io/api/core/v1\"\n\t\"k8s.io/apimachinery/pkg/labels\"\n)\n\n// ReplicationControllerListerExpansion allows custom methods to be added to\n// ReplicationControllerLister.\ntype ReplicationControllerListerExpansion interface {\n\tGetPodControllers(pod *v1.Pod) ([]*v1.ReplicationController, error)\n}\n\n// ReplicationControllerNamespaceListerExpansion allows custom methods to be added to\n// ReplicationControllerNamespaceLister.\ntype ReplicationControllerNamespaceListerExpansion interface{}\n\n// GetPodControllers returns a list of ReplicationControllers that potentially match a pod.\n// Only the one specified in the Pod's ControllerRef will actually manage it.\n// Returns an error only if no matching ReplicationControllers are found.\nfunc (s *replicationControllerLister) GetPodControllers(pod *v1.Pod) ([]*v1.ReplicationController, error) {\n\tif len(pod.Labels) == 0 {\n\t\treturn nil, fmt.Errorf(\"no controllers found for pod %v because it has no labels\", pod.Name)\n\t}\n\n\titems, err := s.ReplicationControllers(pod.Namespace).List(labels.Everything())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar controllers []*v1.ReplicationController\n\tfor i := range items {\n\t\trc := items[i]\n\t\tselector := labels.Set(rc.Spec.Selector).AsSelectorPreValidated()\n\n\t\t// If an rc with a nil or empty selector creeps in, it should match nothing, not everything.\n\t\tif selector.Empty() || !selector.Matches(labels.Set(pod.Labels)) {\n\t\t\tcontinue\n\t\t}\n\t\tcontrollers = append(controllers, rc)\n\t}\n\n\tif len(controllers) == 0 {\n\t\treturn nil, fmt.Errorf(\"could not find controller for pod %s in namespace %s with labels: %v\", pod.Name, pod.Namespace, pod.Labels)\n\t}\n\n\treturn controllers, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/core/v1/resourcequota.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ResourceQuotaLister helps list ResourceQuotas.\n// All objects returned here must be treated as read-only.\ntype ResourceQuotaLister interface {\n\t// List lists all ResourceQuotas in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*corev1.ResourceQuota, err error)\n\t// ResourceQuotas returns an object that can list and get ResourceQuotas.\n\tResourceQuotas(namespace string) ResourceQuotaNamespaceLister\n\tResourceQuotaListerExpansion\n}\n\n// resourceQuotaLister implements the ResourceQuotaLister interface.\ntype resourceQuotaLister struct {\n\tlisters.ResourceIndexer[*corev1.ResourceQuota]\n}\n\n// NewResourceQuotaLister returns a new ResourceQuotaLister.\nfunc NewResourceQuotaLister(indexer cache.Indexer) ResourceQuotaLister {\n\treturn &resourceQuotaLister{listers.New[*corev1.ResourceQuota](indexer, corev1.Resource(\"resourcequota\"))}\n}\n\n// ResourceQuotas returns an object that can list and get ResourceQuotas.\nfunc (s *resourceQuotaLister) ResourceQuotas(namespace string) ResourceQuotaNamespaceLister {\n\treturn resourceQuotaNamespaceLister{listers.NewNamespaced[*corev1.ResourceQuota](s.ResourceIndexer, namespace)}\n}\n\n// ResourceQuotaNamespaceLister helps list and get ResourceQuotas.\n// All objects returned here must be treated as read-only.\ntype ResourceQuotaNamespaceLister interface {\n\t// List lists all ResourceQuotas in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*corev1.ResourceQuota, err error)\n\t// Get retrieves the ResourceQuota from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*corev1.ResourceQuota, error)\n\tResourceQuotaNamespaceListerExpansion\n}\n\n// resourceQuotaNamespaceLister implements the ResourceQuotaNamespaceLister\n// interface.\ntype resourceQuotaNamespaceLister struct {\n\tlisters.ResourceIndexer[*corev1.ResourceQuota]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/core/v1/secret.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// SecretLister helps list Secrets.\n// All objects returned here must be treated as read-only.\ntype SecretLister interface {\n\t// List lists all Secrets in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*corev1.Secret, err error)\n\t// Secrets returns an object that can list and get Secrets.\n\tSecrets(namespace string) SecretNamespaceLister\n\tSecretListerExpansion\n}\n\n// secretLister implements the SecretLister interface.\ntype secretLister struct {\n\tlisters.ResourceIndexer[*corev1.Secret]\n}\n\n// NewSecretLister returns a new SecretLister.\nfunc NewSecretLister(indexer cache.Indexer) SecretLister {\n\treturn &secretLister{listers.New[*corev1.Secret](indexer, corev1.Resource(\"secret\"))}\n}\n\n// Secrets returns an object that can list and get Secrets.\nfunc (s *secretLister) Secrets(namespace string) SecretNamespaceLister {\n\treturn secretNamespaceLister{listers.NewNamespaced[*corev1.Secret](s.ResourceIndexer, namespace)}\n}\n\n// SecretNamespaceLister helps list and get Secrets.\n// All objects returned here must be treated as read-only.\ntype SecretNamespaceLister interface {\n\t// List lists all Secrets in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*corev1.Secret, err error)\n\t// Get retrieves the Secret from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*corev1.Secret, error)\n\tSecretNamespaceListerExpansion\n}\n\n// secretNamespaceLister implements the SecretNamespaceLister\n// interface.\ntype secretNamespaceLister struct {\n\tlisters.ResourceIndexer[*corev1.Secret]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/core/v1/service.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ServiceLister helps list Services.\n// All objects returned here must be treated as read-only.\ntype ServiceLister interface {\n\t// List lists all Services in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*corev1.Service, err error)\n\t// Services returns an object that can list and get Services.\n\tServices(namespace string) ServiceNamespaceLister\n\tServiceListerExpansion\n}\n\n// serviceLister implements the ServiceLister interface.\ntype serviceLister struct {\n\tlisters.ResourceIndexer[*corev1.Service]\n}\n\n// NewServiceLister returns a new ServiceLister.\nfunc NewServiceLister(indexer cache.Indexer) ServiceLister {\n\treturn &serviceLister{listers.New[*corev1.Service](indexer, corev1.Resource(\"service\"))}\n}\n\n// Services returns an object that can list and get Services.\nfunc (s *serviceLister) Services(namespace string) ServiceNamespaceLister {\n\treturn serviceNamespaceLister{listers.NewNamespaced[*corev1.Service](s.ResourceIndexer, namespace)}\n}\n\n// ServiceNamespaceLister helps list and get Services.\n// All objects returned here must be treated as read-only.\ntype ServiceNamespaceLister interface {\n\t// List lists all Services in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*corev1.Service, err error)\n\t// Get retrieves the Service from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*corev1.Service, error)\n\tServiceNamespaceListerExpansion\n}\n\n// serviceNamespaceLister implements the ServiceNamespaceLister\n// interface.\ntype serviceNamespaceLister struct {\n\tlisters.ResourceIndexer[*corev1.Service]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/core/v1/serviceaccount.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tcorev1 \"k8s.io/api/core/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ServiceAccountLister helps list ServiceAccounts.\n// All objects returned here must be treated as read-only.\ntype ServiceAccountLister interface {\n\t// List lists all ServiceAccounts in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*corev1.ServiceAccount, err error)\n\t// ServiceAccounts returns an object that can list and get ServiceAccounts.\n\tServiceAccounts(namespace string) ServiceAccountNamespaceLister\n\tServiceAccountListerExpansion\n}\n\n// serviceAccountLister implements the ServiceAccountLister interface.\ntype serviceAccountLister struct {\n\tlisters.ResourceIndexer[*corev1.ServiceAccount]\n}\n\n// NewServiceAccountLister returns a new ServiceAccountLister.\nfunc NewServiceAccountLister(indexer cache.Indexer) ServiceAccountLister {\n\treturn &serviceAccountLister{listers.New[*corev1.ServiceAccount](indexer, corev1.Resource(\"serviceaccount\"))}\n}\n\n// ServiceAccounts returns an object that can list and get ServiceAccounts.\nfunc (s *serviceAccountLister) ServiceAccounts(namespace string) ServiceAccountNamespaceLister {\n\treturn serviceAccountNamespaceLister{listers.NewNamespaced[*corev1.ServiceAccount](s.ResourceIndexer, namespace)}\n}\n\n// ServiceAccountNamespaceLister helps list and get ServiceAccounts.\n// All objects returned here must be treated as read-only.\ntype ServiceAccountNamespaceLister interface {\n\t// List lists all ServiceAccounts in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*corev1.ServiceAccount, err error)\n\t// Get retrieves the ServiceAccount from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*corev1.ServiceAccount, error)\n\tServiceAccountNamespaceListerExpansion\n}\n\n// serviceAccountNamespaceLister implements the ServiceAccountNamespaceLister\n// interface.\ntype serviceAccountNamespaceLister struct {\n\tlisters.ResourceIndexer[*corev1.ServiceAccount]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/discovery/v1/endpointslice.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tdiscoveryv1 \"k8s.io/api/discovery/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// EndpointSliceLister helps list EndpointSlices.\n// All objects returned here must be treated as read-only.\ntype EndpointSliceLister interface {\n\t// List lists all EndpointSlices in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*discoveryv1.EndpointSlice, err error)\n\t// EndpointSlices returns an object that can list and get EndpointSlices.\n\tEndpointSlices(namespace string) EndpointSliceNamespaceLister\n\tEndpointSliceListerExpansion\n}\n\n// endpointSliceLister implements the EndpointSliceLister interface.\ntype endpointSliceLister struct {\n\tlisters.ResourceIndexer[*discoveryv1.EndpointSlice]\n}\n\n// NewEndpointSliceLister returns a new EndpointSliceLister.\nfunc NewEndpointSliceLister(indexer cache.Indexer) EndpointSliceLister {\n\treturn &endpointSliceLister{listers.New[*discoveryv1.EndpointSlice](indexer, discoveryv1.Resource(\"endpointslice\"))}\n}\n\n// EndpointSlices returns an object that can list and get EndpointSlices.\nfunc (s *endpointSliceLister) EndpointSlices(namespace string) EndpointSliceNamespaceLister {\n\treturn endpointSliceNamespaceLister{listers.NewNamespaced[*discoveryv1.EndpointSlice](s.ResourceIndexer, namespace)}\n}\n\n// EndpointSliceNamespaceLister helps list and get EndpointSlices.\n// All objects returned here must be treated as read-only.\ntype EndpointSliceNamespaceLister interface {\n\t// List lists all EndpointSlices in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*discoveryv1.EndpointSlice, err error)\n\t// Get retrieves the EndpointSlice from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*discoveryv1.EndpointSlice, error)\n\tEndpointSliceNamespaceListerExpansion\n}\n\n// endpointSliceNamespaceLister implements the EndpointSliceNamespaceLister\n// interface.\ntype endpointSliceNamespaceLister struct {\n\tlisters.ResourceIndexer[*discoveryv1.EndpointSlice]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/discovery/v1/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\n// EndpointSliceListerExpansion allows custom methods to be added to\n// EndpointSliceLister.\ntype EndpointSliceListerExpansion interface{}\n\n// EndpointSliceNamespaceListerExpansion allows custom methods to be added to\n// EndpointSliceNamespaceLister.\ntype EndpointSliceNamespaceListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/discovery/v1beta1/endpointslice.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tdiscoveryv1beta1 \"k8s.io/api/discovery/v1beta1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// EndpointSliceLister helps list EndpointSlices.\n// All objects returned here must be treated as read-only.\ntype EndpointSliceLister interface {\n\t// List lists all EndpointSlices in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*discoveryv1beta1.EndpointSlice, err error)\n\t// EndpointSlices returns an object that can list and get EndpointSlices.\n\tEndpointSlices(namespace string) EndpointSliceNamespaceLister\n\tEndpointSliceListerExpansion\n}\n\n// endpointSliceLister implements the EndpointSliceLister interface.\ntype endpointSliceLister struct {\n\tlisters.ResourceIndexer[*discoveryv1beta1.EndpointSlice]\n}\n\n// NewEndpointSliceLister returns a new EndpointSliceLister.\nfunc NewEndpointSliceLister(indexer cache.Indexer) EndpointSliceLister {\n\treturn &endpointSliceLister{listers.New[*discoveryv1beta1.EndpointSlice](indexer, discoveryv1beta1.Resource(\"endpointslice\"))}\n}\n\n// EndpointSlices returns an object that can list and get EndpointSlices.\nfunc (s *endpointSliceLister) EndpointSlices(namespace string) EndpointSliceNamespaceLister {\n\treturn endpointSliceNamespaceLister{listers.NewNamespaced[*discoveryv1beta1.EndpointSlice](s.ResourceIndexer, namespace)}\n}\n\n// EndpointSliceNamespaceLister helps list and get EndpointSlices.\n// All objects returned here must be treated as read-only.\ntype EndpointSliceNamespaceLister interface {\n\t// List lists all EndpointSlices in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*discoveryv1beta1.EndpointSlice, err error)\n\t// Get retrieves the EndpointSlice from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*discoveryv1beta1.EndpointSlice, error)\n\tEndpointSliceNamespaceListerExpansion\n}\n\n// endpointSliceNamespaceLister implements the EndpointSliceNamespaceLister\n// interface.\ntype endpointSliceNamespaceLister struct {\n\tlisters.ResourceIndexer[*discoveryv1beta1.EndpointSlice]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/discovery/v1beta1/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// EndpointSliceListerExpansion allows custom methods to be added to\n// EndpointSliceLister.\ntype EndpointSliceListerExpansion interface{}\n\n// EndpointSliceNamespaceListerExpansion allows custom methods to be added to\n// EndpointSliceNamespaceLister.\ntype EndpointSliceNamespaceListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/doc.go",
    "content": "/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package listers provides generated listers for Kubernetes APIs.\npackage listers // import \"k8s.io/client-go/listers\"\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/events/v1/event.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\teventsv1 \"k8s.io/api/events/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// EventLister helps list Events.\n// All objects returned here must be treated as read-only.\ntype EventLister interface {\n\t// List lists all Events in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*eventsv1.Event, err error)\n\t// Events returns an object that can list and get Events.\n\tEvents(namespace string) EventNamespaceLister\n\tEventListerExpansion\n}\n\n// eventLister implements the EventLister interface.\ntype eventLister struct {\n\tlisters.ResourceIndexer[*eventsv1.Event]\n}\n\n// NewEventLister returns a new EventLister.\nfunc NewEventLister(indexer cache.Indexer) EventLister {\n\treturn &eventLister{listers.New[*eventsv1.Event](indexer, eventsv1.Resource(\"event\"))}\n}\n\n// Events returns an object that can list and get Events.\nfunc (s *eventLister) Events(namespace string) EventNamespaceLister {\n\treturn eventNamespaceLister{listers.NewNamespaced[*eventsv1.Event](s.ResourceIndexer, namespace)}\n}\n\n// EventNamespaceLister helps list and get Events.\n// All objects returned here must be treated as read-only.\ntype EventNamespaceLister interface {\n\t// List lists all Events in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*eventsv1.Event, err error)\n\t// Get retrieves the Event from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*eventsv1.Event, error)\n\tEventNamespaceListerExpansion\n}\n\n// eventNamespaceLister implements the EventNamespaceLister\n// interface.\ntype eventNamespaceLister struct {\n\tlisters.ResourceIndexer[*eventsv1.Event]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/events/v1/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\n// EventListerExpansion allows custom methods to be added to\n// EventLister.\ntype EventListerExpansion interface{}\n\n// EventNamespaceListerExpansion allows custom methods to be added to\n// EventNamespaceLister.\ntype EventNamespaceListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/events/v1beta1/event.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\teventsv1beta1 \"k8s.io/api/events/v1beta1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// EventLister helps list Events.\n// All objects returned here must be treated as read-only.\ntype EventLister interface {\n\t// List lists all Events in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*eventsv1beta1.Event, err error)\n\t// Events returns an object that can list and get Events.\n\tEvents(namespace string) EventNamespaceLister\n\tEventListerExpansion\n}\n\n// eventLister implements the EventLister interface.\ntype eventLister struct {\n\tlisters.ResourceIndexer[*eventsv1beta1.Event]\n}\n\n// NewEventLister returns a new EventLister.\nfunc NewEventLister(indexer cache.Indexer) EventLister {\n\treturn &eventLister{listers.New[*eventsv1beta1.Event](indexer, eventsv1beta1.Resource(\"event\"))}\n}\n\n// Events returns an object that can list and get Events.\nfunc (s *eventLister) Events(namespace string) EventNamespaceLister {\n\treturn eventNamespaceLister{listers.NewNamespaced[*eventsv1beta1.Event](s.ResourceIndexer, namespace)}\n}\n\n// EventNamespaceLister helps list and get Events.\n// All objects returned here must be treated as read-only.\ntype EventNamespaceLister interface {\n\t// List lists all Events in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*eventsv1beta1.Event, err error)\n\t// Get retrieves the Event from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*eventsv1beta1.Event, error)\n\tEventNamespaceListerExpansion\n}\n\n// eventNamespaceLister implements the EventNamespaceLister\n// interface.\ntype eventNamespaceLister struct {\n\tlisters.ResourceIndexer[*eventsv1beta1.Event]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/events/v1beta1/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// EventListerExpansion allows custom methods to be added to\n// EventLister.\ntype EventListerExpansion interface{}\n\n// EventNamespaceListerExpansion allows custom methods to be added to\n// EventNamespaceLister.\ntype EventNamespaceListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/extensions/v1beta1/daemonset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\textensionsv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// DaemonSetLister helps list DaemonSets.\n// All objects returned here must be treated as read-only.\ntype DaemonSetLister interface {\n\t// List lists all DaemonSets in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*extensionsv1beta1.DaemonSet, err error)\n\t// DaemonSets returns an object that can list and get DaemonSets.\n\tDaemonSets(namespace string) DaemonSetNamespaceLister\n\tDaemonSetListerExpansion\n}\n\n// daemonSetLister implements the DaemonSetLister interface.\ntype daemonSetLister struct {\n\tlisters.ResourceIndexer[*extensionsv1beta1.DaemonSet]\n}\n\n// NewDaemonSetLister returns a new DaemonSetLister.\nfunc NewDaemonSetLister(indexer cache.Indexer) DaemonSetLister {\n\treturn &daemonSetLister{listers.New[*extensionsv1beta1.DaemonSet](indexer, extensionsv1beta1.Resource(\"daemonset\"))}\n}\n\n// DaemonSets returns an object that can list and get DaemonSets.\nfunc (s *daemonSetLister) DaemonSets(namespace string) DaemonSetNamespaceLister {\n\treturn daemonSetNamespaceLister{listers.NewNamespaced[*extensionsv1beta1.DaemonSet](s.ResourceIndexer, namespace)}\n}\n\n// DaemonSetNamespaceLister helps list and get DaemonSets.\n// All objects returned here must be treated as read-only.\ntype DaemonSetNamespaceLister interface {\n\t// List lists all DaemonSets in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*extensionsv1beta1.DaemonSet, err error)\n\t// Get retrieves the DaemonSet from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*extensionsv1beta1.DaemonSet, error)\n\tDaemonSetNamespaceListerExpansion\n}\n\n// daemonSetNamespaceLister implements the DaemonSetNamespaceLister\n// interface.\ntype daemonSetNamespaceLister struct {\n\tlisters.ResourceIndexer[*extensionsv1beta1.DaemonSet]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/extensions/v1beta1/daemonset_expansion.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\t\"fmt\"\n\n\tapps \"k8s.io/api/apps/v1beta1\"\n\t\"k8s.io/api/core/v1\"\n\t\"k8s.io/api/extensions/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/labels\"\n)\n\n// DaemonSetListerExpansion allows custom methods to be added to\n// DaemonSetLister.\ntype DaemonSetListerExpansion interface {\n\tGetPodDaemonSets(pod *v1.Pod) ([]*v1beta1.DaemonSet, error)\n\tGetHistoryDaemonSets(history *apps.ControllerRevision) ([]*v1beta1.DaemonSet, error)\n}\n\n// DaemonSetNamespaceListerExpansion allows custom methods to be added to\n// DaemonSetNamespaceLister.\ntype DaemonSetNamespaceListerExpansion interface{}\n\n// GetPodDaemonSets returns a list of DaemonSets that potentially match a pod.\n// Only the one specified in the Pod's ControllerRef will actually manage it.\n// Returns an error only if no matching DaemonSets are found.\nfunc (s *daemonSetLister) GetPodDaemonSets(pod *v1.Pod) ([]*v1beta1.DaemonSet, error) {\n\tvar selector labels.Selector\n\tvar daemonSet *v1beta1.DaemonSet\n\n\tif len(pod.Labels) == 0 {\n\t\treturn nil, fmt.Errorf(\"no daemon sets found for pod %v because it has no labels\", pod.Name)\n\t}\n\n\tlist, err := s.DaemonSets(pod.Namespace).List(labels.Everything())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar daemonSets []*v1beta1.DaemonSet\n\tfor i := range list {\n\t\tdaemonSet = list[i]\n\t\tif daemonSet.Namespace != pod.Namespace {\n\t\t\tcontinue\n\t\t}\n\t\tselector, err = metav1.LabelSelectorAsSelector(daemonSet.Spec.Selector)\n\t\tif err != nil {\n\t\t\t// This object has an invalid selector, it does not match the pod\n\t\t\tcontinue\n\t\t}\n\n\t\t// If a daemonSet with a nil or empty selector creeps in, it should match nothing, not everything.\n\t\tif selector.Empty() || !selector.Matches(labels.Set(pod.Labels)) {\n\t\t\tcontinue\n\t\t}\n\t\tdaemonSets = append(daemonSets, daemonSet)\n\t}\n\n\tif len(daemonSets) == 0 {\n\t\treturn nil, fmt.Errorf(\"could not find daemon set for pod %s in namespace %s with labels: %v\", pod.Name, pod.Namespace, pod.Labels)\n\t}\n\n\treturn daemonSets, nil\n}\n\n// GetHistoryDaemonSets returns a list of DaemonSets that potentially\n// match a ControllerRevision. Only the one specified in the ControllerRevision's ControllerRef\n// will actually manage it.\n// Returns an error only if no matching DaemonSets are found.\nfunc (s *daemonSetLister) GetHistoryDaemonSets(history *apps.ControllerRevision) ([]*v1beta1.DaemonSet, error) {\n\tif len(history.Labels) == 0 {\n\t\treturn nil, fmt.Errorf(\"no DaemonSet found for ControllerRevision %s because it has no labels\", history.Name)\n\t}\n\n\tlist, err := s.DaemonSets(history.Namespace).List(labels.Everything())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar daemonSets []*v1beta1.DaemonSet\n\tfor _, ds := range list {\n\t\tselector, err := metav1.LabelSelectorAsSelector(ds.Spec.Selector)\n\t\tif err != nil {\n\t\t\t// This object has an invalid selector, it does not match the history object\n\t\t\tcontinue\n\t\t}\n\t\t// If a DaemonSet with a nil or empty selector creeps in, it should match nothing, not everything.\n\t\tif selector.Empty() || !selector.Matches(labels.Set(history.Labels)) {\n\t\t\tcontinue\n\t\t}\n\t\tdaemonSets = append(daemonSets, ds)\n\t}\n\n\tif len(daemonSets) == 0 {\n\t\treturn nil, fmt.Errorf(\"could not find DaemonSets for ControllerRevision %s in namespace %s with labels: %v\", history.Name, history.Namespace, history.Labels)\n\t}\n\n\treturn daemonSets, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/extensions/v1beta1/deployment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\textensionsv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// DeploymentLister helps list Deployments.\n// All objects returned here must be treated as read-only.\ntype DeploymentLister interface {\n\t// List lists all Deployments in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*extensionsv1beta1.Deployment, err error)\n\t// Deployments returns an object that can list and get Deployments.\n\tDeployments(namespace string) DeploymentNamespaceLister\n\tDeploymentListerExpansion\n}\n\n// deploymentLister implements the DeploymentLister interface.\ntype deploymentLister struct {\n\tlisters.ResourceIndexer[*extensionsv1beta1.Deployment]\n}\n\n// NewDeploymentLister returns a new DeploymentLister.\nfunc NewDeploymentLister(indexer cache.Indexer) DeploymentLister {\n\treturn &deploymentLister{listers.New[*extensionsv1beta1.Deployment](indexer, extensionsv1beta1.Resource(\"deployment\"))}\n}\n\n// Deployments returns an object that can list and get Deployments.\nfunc (s *deploymentLister) Deployments(namespace string) DeploymentNamespaceLister {\n\treturn deploymentNamespaceLister{listers.NewNamespaced[*extensionsv1beta1.Deployment](s.ResourceIndexer, namespace)}\n}\n\n// DeploymentNamespaceLister helps list and get Deployments.\n// All objects returned here must be treated as read-only.\ntype DeploymentNamespaceLister interface {\n\t// List lists all Deployments in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*extensionsv1beta1.Deployment, err error)\n\t// Get retrieves the Deployment from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*extensionsv1beta1.Deployment, error)\n\tDeploymentNamespaceListerExpansion\n}\n\n// deploymentNamespaceLister implements the DeploymentNamespaceLister\n// interface.\ntype deploymentNamespaceLister struct {\n\tlisters.ResourceIndexer[*extensionsv1beta1.Deployment]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/extensions/v1beta1/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// DeploymentListerExpansion allows custom methods to be added to\n// DeploymentLister.\ntype DeploymentListerExpansion interface{}\n\n// DeploymentNamespaceListerExpansion allows custom methods to be added to\n// DeploymentNamespaceLister.\ntype DeploymentNamespaceListerExpansion interface{}\n\n// IngressListerExpansion allows custom methods to be added to\n// IngressLister.\ntype IngressListerExpansion interface{}\n\n// IngressNamespaceListerExpansion allows custom methods to be added to\n// IngressNamespaceLister.\ntype IngressNamespaceListerExpansion interface{}\n\n// NetworkPolicyListerExpansion allows custom methods to be added to\n// NetworkPolicyLister.\ntype NetworkPolicyListerExpansion interface{}\n\n// NetworkPolicyNamespaceListerExpansion allows custom methods to be added to\n// NetworkPolicyNamespaceLister.\ntype NetworkPolicyNamespaceListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/extensions/v1beta1/ingress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\textensionsv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// IngressLister helps list Ingresses.\n// All objects returned here must be treated as read-only.\ntype IngressLister interface {\n\t// List lists all Ingresses in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*extensionsv1beta1.Ingress, err error)\n\t// Ingresses returns an object that can list and get Ingresses.\n\tIngresses(namespace string) IngressNamespaceLister\n\tIngressListerExpansion\n}\n\n// ingressLister implements the IngressLister interface.\ntype ingressLister struct {\n\tlisters.ResourceIndexer[*extensionsv1beta1.Ingress]\n}\n\n// NewIngressLister returns a new IngressLister.\nfunc NewIngressLister(indexer cache.Indexer) IngressLister {\n\treturn &ingressLister{listers.New[*extensionsv1beta1.Ingress](indexer, extensionsv1beta1.Resource(\"ingress\"))}\n}\n\n// Ingresses returns an object that can list and get Ingresses.\nfunc (s *ingressLister) Ingresses(namespace string) IngressNamespaceLister {\n\treturn ingressNamespaceLister{listers.NewNamespaced[*extensionsv1beta1.Ingress](s.ResourceIndexer, namespace)}\n}\n\n// IngressNamespaceLister helps list and get Ingresses.\n// All objects returned here must be treated as read-only.\ntype IngressNamespaceLister interface {\n\t// List lists all Ingresses in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*extensionsv1beta1.Ingress, err error)\n\t// Get retrieves the Ingress from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*extensionsv1beta1.Ingress, error)\n\tIngressNamespaceListerExpansion\n}\n\n// ingressNamespaceLister implements the IngressNamespaceLister\n// interface.\ntype ingressNamespaceLister struct {\n\tlisters.ResourceIndexer[*extensionsv1beta1.Ingress]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/extensions/v1beta1/networkpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\textensionsv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// NetworkPolicyLister helps list NetworkPolicies.\n// All objects returned here must be treated as read-only.\ntype NetworkPolicyLister interface {\n\t// List lists all NetworkPolicies in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*extensionsv1beta1.NetworkPolicy, err error)\n\t// NetworkPolicies returns an object that can list and get NetworkPolicies.\n\tNetworkPolicies(namespace string) NetworkPolicyNamespaceLister\n\tNetworkPolicyListerExpansion\n}\n\n// networkPolicyLister implements the NetworkPolicyLister interface.\ntype networkPolicyLister struct {\n\tlisters.ResourceIndexer[*extensionsv1beta1.NetworkPolicy]\n}\n\n// NewNetworkPolicyLister returns a new NetworkPolicyLister.\nfunc NewNetworkPolicyLister(indexer cache.Indexer) NetworkPolicyLister {\n\treturn &networkPolicyLister{listers.New[*extensionsv1beta1.NetworkPolicy](indexer, extensionsv1beta1.Resource(\"networkpolicy\"))}\n}\n\n// NetworkPolicies returns an object that can list and get NetworkPolicies.\nfunc (s *networkPolicyLister) NetworkPolicies(namespace string) NetworkPolicyNamespaceLister {\n\treturn networkPolicyNamespaceLister{listers.NewNamespaced[*extensionsv1beta1.NetworkPolicy](s.ResourceIndexer, namespace)}\n}\n\n// NetworkPolicyNamespaceLister helps list and get NetworkPolicies.\n// All objects returned here must be treated as read-only.\ntype NetworkPolicyNamespaceLister interface {\n\t// List lists all NetworkPolicies in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*extensionsv1beta1.NetworkPolicy, err error)\n\t// Get retrieves the NetworkPolicy from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*extensionsv1beta1.NetworkPolicy, error)\n\tNetworkPolicyNamespaceListerExpansion\n}\n\n// networkPolicyNamespaceLister implements the NetworkPolicyNamespaceLister\n// interface.\ntype networkPolicyNamespaceLister struct {\n\tlisters.ResourceIndexer[*extensionsv1beta1.NetworkPolicy]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/extensions/v1beta1/replicaset.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\textensionsv1beta1 \"k8s.io/api/extensions/v1beta1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ReplicaSetLister helps list ReplicaSets.\n// All objects returned here must be treated as read-only.\ntype ReplicaSetLister interface {\n\t// List lists all ReplicaSets in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*extensionsv1beta1.ReplicaSet, err error)\n\t// ReplicaSets returns an object that can list and get ReplicaSets.\n\tReplicaSets(namespace string) ReplicaSetNamespaceLister\n\tReplicaSetListerExpansion\n}\n\n// replicaSetLister implements the ReplicaSetLister interface.\ntype replicaSetLister struct {\n\tlisters.ResourceIndexer[*extensionsv1beta1.ReplicaSet]\n}\n\n// NewReplicaSetLister returns a new ReplicaSetLister.\nfunc NewReplicaSetLister(indexer cache.Indexer) ReplicaSetLister {\n\treturn &replicaSetLister{listers.New[*extensionsv1beta1.ReplicaSet](indexer, extensionsv1beta1.Resource(\"replicaset\"))}\n}\n\n// ReplicaSets returns an object that can list and get ReplicaSets.\nfunc (s *replicaSetLister) ReplicaSets(namespace string) ReplicaSetNamespaceLister {\n\treturn replicaSetNamespaceLister{listers.NewNamespaced[*extensionsv1beta1.ReplicaSet](s.ResourceIndexer, namespace)}\n}\n\n// ReplicaSetNamespaceLister helps list and get ReplicaSets.\n// All objects returned here must be treated as read-only.\ntype ReplicaSetNamespaceLister interface {\n\t// List lists all ReplicaSets in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*extensionsv1beta1.ReplicaSet, err error)\n\t// Get retrieves the ReplicaSet from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*extensionsv1beta1.ReplicaSet, error)\n\tReplicaSetNamespaceListerExpansion\n}\n\n// replicaSetNamespaceLister implements the ReplicaSetNamespaceLister\n// interface.\ntype replicaSetNamespaceLister struct {\n\tlisters.ResourceIndexer[*extensionsv1beta1.ReplicaSet]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/extensions/v1beta1/replicaset_expansion.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\t\"fmt\"\n\n\t\"k8s.io/api/core/v1\"\n\textensions \"k8s.io/api/extensions/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/labels\"\n)\n\n// ReplicaSetListerExpansion allows custom methods to be added to\n// ReplicaSetLister.\ntype ReplicaSetListerExpansion interface {\n\tGetPodReplicaSets(pod *v1.Pod) ([]*extensions.ReplicaSet, error)\n}\n\n// ReplicaSetNamespaceListerExpansion allows custom methods to be added to\n// ReplicaSetNamespaceLister.\ntype ReplicaSetNamespaceListerExpansion interface{}\n\n// GetPodReplicaSets returns a list of ReplicaSets that potentially match a pod.\n// Only the one specified in the Pod's ControllerRef will actually manage it.\n// Returns an error only if no matching ReplicaSets are found.\nfunc (s *replicaSetLister) GetPodReplicaSets(pod *v1.Pod) ([]*extensions.ReplicaSet, error) {\n\tif len(pod.Labels) == 0 {\n\t\treturn nil, fmt.Errorf(\"no ReplicaSets found for pod %v because it has no labels\", pod.Name)\n\t}\n\n\tlist, err := s.ReplicaSets(pod.Namespace).List(labels.Everything())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar rss []*extensions.ReplicaSet\n\tfor _, rs := range list {\n\t\tif rs.Namespace != pod.Namespace {\n\t\t\tcontinue\n\t\t}\n\t\tselector, err := metav1.LabelSelectorAsSelector(rs.Spec.Selector)\n\t\tif err != nil {\n\t\t\t// This object has an invalid selector, it does not match the pod\n\t\t\tcontinue\n\t\t}\n\n\t\t// If a ReplicaSet with a nil or empty selector creeps in, it should match nothing, not everything.\n\t\tif selector.Empty() || !selector.Matches(labels.Set(pod.Labels)) {\n\t\t\tcontinue\n\t\t}\n\t\trss = append(rss, rs)\n\t}\n\n\tif len(rss) == 0 {\n\t\treturn nil, fmt.Errorf(\"could not find ReplicaSet for pod %s in namespace %s with labels: %v\", pod.Name, pod.Namespace, pod.Labels)\n\t}\n\n\treturn rss, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/flowcontrol/v1/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\n// FlowSchemaListerExpansion allows custom methods to be added to\n// FlowSchemaLister.\ntype FlowSchemaListerExpansion interface{}\n\n// PriorityLevelConfigurationListerExpansion allows custom methods to be added to\n// PriorityLevelConfigurationLister.\ntype PriorityLevelConfigurationListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/flowcontrol/v1/flowschema.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tflowcontrolv1 \"k8s.io/api/flowcontrol/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// FlowSchemaLister helps list FlowSchemas.\n// All objects returned here must be treated as read-only.\ntype FlowSchemaLister interface {\n\t// List lists all FlowSchemas in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*flowcontrolv1.FlowSchema, err error)\n\t// Get retrieves the FlowSchema from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*flowcontrolv1.FlowSchema, error)\n\tFlowSchemaListerExpansion\n}\n\n// flowSchemaLister implements the FlowSchemaLister interface.\ntype flowSchemaLister struct {\n\tlisters.ResourceIndexer[*flowcontrolv1.FlowSchema]\n}\n\n// NewFlowSchemaLister returns a new FlowSchemaLister.\nfunc NewFlowSchemaLister(indexer cache.Indexer) FlowSchemaLister {\n\treturn &flowSchemaLister{listers.New[*flowcontrolv1.FlowSchema](indexer, flowcontrolv1.Resource(\"flowschema\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/flowcontrol/v1/prioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tflowcontrolv1 \"k8s.io/api/flowcontrol/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// PriorityLevelConfigurationLister helps list PriorityLevelConfigurations.\n// All objects returned here must be treated as read-only.\ntype PriorityLevelConfigurationLister interface {\n\t// List lists all PriorityLevelConfigurations in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*flowcontrolv1.PriorityLevelConfiguration, err error)\n\t// Get retrieves the PriorityLevelConfiguration from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*flowcontrolv1.PriorityLevelConfiguration, error)\n\tPriorityLevelConfigurationListerExpansion\n}\n\n// priorityLevelConfigurationLister implements the PriorityLevelConfigurationLister interface.\ntype priorityLevelConfigurationLister struct {\n\tlisters.ResourceIndexer[*flowcontrolv1.PriorityLevelConfiguration]\n}\n\n// NewPriorityLevelConfigurationLister returns a new PriorityLevelConfigurationLister.\nfunc NewPriorityLevelConfigurationLister(indexer cache.Indexer) PriorityLevelConfigurationLister {\n\treturn &priorityLevelConfigurationLister{listers.New[*flowcontrolv1.PriorityLevelConfiguration](indexer, flowcontrolv1.Resource(\"prioritylevelconfiguration\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/flowcontrol/v1beta1/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// FlowSchemaListerExpansion allows custom methods to be added to\n// FlowSchemaLister.\ntype FlowSchemaListerExpansion interface{}\n\n// PriorityLevelConfigurationListerExpansion allows custom methods to be added to\n// PriorityLevelConfigurationLister.\ntype PriorityLevelConfigurationListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/flowcontrol/v1beta1/flowschema.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tflowcontrolv1beta1 \"k8s.io/api/flowcontrol/v1beta1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// FlowSchemaLister helps list FlowSchemas.\n// All objects returned here must be treated as read-only.\ntype FlowSchemaLister interface {\n\t// List lists all FlowSchemas in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*flowcontrolv1beta1.FlowSchema, err error)\n\t// Get retrieves the FlowSchema from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*flowcontrolv1beta1.FlowSchema, error)\n\tFlowSchemaListerExpansion\n}\n\n// flowSchemaLister implements the FlowSchemaLister interface.\ntype flowSchemaLister struct {\n\tlisters.ResourceIndexer[*flowcontrolv1beta1.FlowSchema]\n}\n\n// NewFlowSchemaLister returns a new FlowSchemaLister.\nfunc NewFlowSchemaLister(indexer cache.Indexer) FlowSchemaLister {\n\treturn &flowSchemaLister{listers.New[*flowcontrolv1beta1.FlowSchema](indexer, flowcontrolv1beta1.Resource(\"flowschema\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/flowcontrol/v1beta1/prioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tflowcontrolv1beta1 \"k8s.io/api/flowcontrol/v1beta1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// PriorityLevelConfigurationLister helps list PriorityLevelConfigurations.\n// All objects returned here must be treated as read-only.\ntype PriorityLevelConfigurationLister interface {\n\t// List lists all PriorityLevelConfigurations in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*flowcontrolv1beta1.PriorityLevelConfiguration, err error)\n\t// Get retrieves the PriorityLevelConfiguration from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*flowcontrolv1beta1.PriorityLevelConfiguration, error)\n\tPriorityLevelConfigurationListerExpansion\n}\n\n// priorityLevelConfigurationLister implements the PriorityLevelConfigurationLister interface.\ntype priorityLevelConfigurationLister struct {\n\tlisters.ResourceIndexer[*flowcontrolv1beta1.PriorityLevelConfiguration]\n}\n\n// NewPriorityLevelConfigurationLister returns a new PriorityLevelConfigurationLister.\nfunc NewPriorityLevelConfigurationLister(indexer cache.Indexer) PriorityLevelConfigurationLister {\n\treturn &priorityLevelConfigurationLister{listers.New[*flowcontrolv1beta1.PriorityLevelConfiguration](indexer, flowcontrolv1beta1.Resource(\"prioritylevelconfiguration\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/flowcontrol/v1beta2/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta2\n\n// FlowSchemaListerExpansion allows custom methods to be added to\n// FlowSchemaLister.\ntype FlowSchemaListerExpansion interface{}\n\n// PriorityLevelConfigurationListerExpansion allows custom methods to be added to\n// PriorityLevelConfigurationLister.\ntype PriorityLevelConfigurationListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/flowcontrol/v1beta2/flowschema.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tflowcontrolv1beta2 \"k8s.io/api/flowcontrol/v1beta2\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// FlowSchemaLister helps list FlowSchemas.\n// All objects returned here must be treated as read-only.\ntype FlowSchemaLister interface {\n\t// List lists all FlowSchemas in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*flowcontrolv1beta2.FlowSchema, err error)\n\t// Get retrieves the FlowSchema from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*flowcontrolv1beta2.FlowSchema, error)\n\tFlowSchemaListerExpansion\n}\n\n// flowSchemaLister implements the FlowSchemaLister interface.\ntype flowSchemaLister struct {\n\tlisters.ResourceIndexer[*flowcontrolv1beta2.FlowSchema]\n}\n\n// NewFlowSchemaLister returns a new FlowSchemaLister.\nfunc NewFlowSchemaLister(indexer cache.Indexer) FlowSchemaLister {\n\treturn &flowSchemaLister{listers.New[*flowcontrolv1beta2.FlowSchema](indexer, flowcontrolv1beta2.Resource(\"flowschema\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/flowcontrol/v1beta2/prioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta2\n\nimport (\n\tflowcontrolv1beta2 \"k8s.io/api/flowcontrol/v1beta2\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// PriorityLevelConfigurationLister helps list PriorityLevelConfigurations.\n// All objects returned here must be treated as read-only.\ntype PriorityLevelConfigurationLister interface {\n\t// List lists all PriorityLevelConfigurations in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*flowcontrolv1beta2.PriorityLevelConfiguration, err error)\n\t// Get retrieves the PriorityLevelConfiguration from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*flowcontrolv1beta2.PriorityLevelConfiguration, error)\n\tPriorityLevelConfigurationListerExpansion\n}\n\n// priorityLevelConfigurationLister implements the PriorityLevelConfigurationLister interface.\ntype priorityLevelConfigurationLister struct {\n\tlisters.ResourceIndexer[*flowcontrolv1beta2.PriorityLevelConfiguration]\n}\n\n// NewPriorityLevelConfigurationLister returns a new PriorityLevelConfigurationLister.\nfunc NewPriorityLevelConfigurationLister(indexer cache.Indexer) PriorityLevelConfigurationLister {\n\treturn &priorityLevelConfigurationLister{listers.New[*flowcontrolv1beta2.PriorityLevelConfiguration](indexer, flowcontrolv1beta2.Resource(\"prioritylevelconfiguration\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/flowcontrol/v1beta3/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta3\n\n// FlowSchemaListerExpansion allows custom methods to be added to\n// FlowSchemaLister.\ntype FlowSchemaListerExpansion interface{}\n\n// PriorityLevelConfigurationListerExpansion allows custom methods to be added to\n// PriorityLevelConfigurationLister.\ntype PriorityLevelConfigurationListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/flowcontrol/v1beta3/flowschema.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta3\n\nimport (\n\tflowcontrolv1beta3 \"k8s.io/api/flowcontrol/v1beta3\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// FlowSchemaLister helps list FlowSchemas.\n// All objects returned here must be treated as read-only.\ntype FlowSchemaLister interface {\n\t// List lists all FlowSchemas in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*flowcontrolv1beta3.FlowSchema, err error)\n\t// Get retrieves the FlowSchema from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*flowcontrolv1beta3.FlowSchema, error)\n\tFlowSchemaListerExpansion\n}\n\n// flowSchemaLister implements the FlowSchemaLister interface.\ntype flowSchemaLister struct {\n\tlisters.ResourceIndexer[*flowcontrolv1beta3.FlowSchema]\n}\n\n// NewFlowSchemaLister returns a new FlowSchemaLister.\nfunc NewFlowSchemaLister(indexer cache.Indexer) FlowSchemaLister {\n\treturn &flowSchemaLister{listers.New[*flowcontrolv1beta3.FlowSchema](indexer, flowcontrolv1beta3.Resource(\"flowschema\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/flowcontrol/v1beta3/prioritylevelconfiguration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta3\n\nimport (\n\tflowcontrolv1beta3 \"k8s.io/api/flowcontrol/v1beta3\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// PriorityLevelConfigurationLister helps list PriorityLevelConfigurations.\n// All objects returned here must be treated as read-only.\ntype PriorityLevelConfigurationLister interface {\n\t// List lists all PriorityLevelConfigurations in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*flowcontrolv1beta3.PriorityLevelConfiguration, err error)\n\t// Get retrieves the PriorityLevelConfiguration from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*flowcontrolv1beta3.PriorityLevelConfiguration, error)\n\tPriorityLevelConfigurationListerExpansion\n}\n\n// priorityLevelConfigurationLister implements the PriorityLevelConfigurationLister interface.\ntype priorityLevelConfigurationLister struct {\n\tlisters.ResourceIndexer[*flowcontrolv1beta3.PriorityLevelConfiguration]\n}\n\n// NewPriorityLevelConfigurationLister returns a new PriorityLevelConfigurationLister.\nfunc NewPriorityLevelConfigurationLister(indexer cache.Indexer) PriorityLevelConfigurationLister {\n\treturn &priorityLevelConfigurationLister{listers.New[*flowcontrolv1beta3.PriorityLevelConfiguration](indexer, flowcontrolv1beta3.Resource(\"prioritylevelconfiguration\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/generic_helpers.go",
    "content": "/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage listers\n\nimport (\n\t\"k8s.io/apimachinery/pkg/api/errors\"\n\t\"k8s.io/apimachinery/pkg/labels\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/client-go/tools/cache\"\n)\n\n// ResourceIndexer wraps an indexer, resource, and optional namespace for a given type.\n// This is intended for use by listers (generated by lister-gen) only.\ntype ResourceIndexer[T runtime.Object] struct {\n\tindexer   cache.Indexer\n\tresource  schema.GroupResource\n\tnamespace string // empty for non-namespaced types\n}\n\n// New returns a new instance of a lister (resource indexer) wrapping the given indexer and resource for the specified type.\n// This is intended for use by listers (generated by lister-gen) only.\nfunc New[T runtime.Object](indexer cache.Indexer, resource schema.GroupResource) ResourceIndexer[T] {\n\treturn ResourceIndexer[T]{indexer: indexer, resource: resource}\n}\n\n// NewNamespaced returns a new instance of a namespaced lister (resource indexer) wrapping the given parent and namespace for the specified type.\n// This is intended for use by listers (generated by lister-gen) only.\nfunc NewNamespaced[T runtime.Object](parent ResourceIndexer[T], namespace string) ResourceIndexer[T] {\n\treturn ResourceIndexer[T]{indexer: parent.indexer, resource: parent.resource, namespace: namespace}\n}\n\n// List lists all resources in the indexer matching the given selector.\nfunc (l ResourceIndexer[T]) List(selector labels.Selector) (ret []T, err error) {\n\t// ListAllByNamespace reverts to ListAll on empty namespaces\n\terr = cache.ListAllByNamespace(l.indexer, l.namespace, selector, func(m interface{}) {\n\t\tret = append(ret, m.(T))\n\t})\n\treturn ret, err\n}\n\n// Get retrieves the resource from the index for a given name.\nfunc (l ResourceIndexer[T]) Get(name string) (T, error) {\n\tvar key string\n\tif l.namespace == \"\" {\n\t\tkey = name\n\t} else {\n\t\tkey = l.namespace + \"/\" + name\n\t}\n\tobj, exists, err := l.indexer.GetByKey(key)\n\tif err != nil {\n\t\treturn *new(T), err\n\t}\n\tif !exists {\n\t\treturn *new(T), errors.NewNotFound(l.resource, name)\n\t}\n\treturn obj.(T), nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/networking/v1/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\n// IngressListerExpansion allows custom methods to be added to\n// IngressLister.\ntype IngressListerExpansion interface{}\n\n// IngressNamespaceListerExpansion allows custom methods to be added to\n// IngressNamespaceLister.\ntype IngressNamespaceListerExpansion interface{}\n\n// IngressClassListerExpansion allows custom methods to be added to\n// IngressClassLister.\ntype IngressClassListerExpansion interface{}\n\n// NetworkPolicyListerExpansion allows custom methods to be added to\n// NetworkPolicyLister.\ntype NetworkPolicyListerExpansion interface{}\n\n// NetworkPolicyNamespaceListerExpansion allows custom methods to be added to\n// NetworkPolicyNamespaceLister.\ntype NetworkPolicyNamespaceListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/networking/v1/ingress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tnetworkingv1 \"k8s.io/api/networking/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// IngressLister helps list Ingresses.\n// All objects returned here must be treated as read-only.\ntype IngressLister interface {\n\t// List lists all Ingresses in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*networkingv1.Ingress, err error)\n\t// Ingresses returns an object that can list and get Ingresses.\n\tIngresses(namespace string) IngressNamespaceLister\n\tIngressListerExpansion\n}\n\n// ingressLister implements the IngressLister interface.\ntype ingressLister struct {\n\tlisters.ResourceIndexer[*networkingv1.Ingress]\n}\n\n// NewIngressLister returns a new IngressLister.\nfunc NewIngressLister(indexer cache.Indexer) IngressLister {\n\treturn &ingressLister{listers.New[*networkingv1.Ingress](indexer, networkingv1.Resource(\"ingress\"))}\n}\n\n// Ingresses returns an object that can list and get Ingresses.\nfunc (s *ingressLister) Ingresses(namespace string) IngressNamespaceLister {\n\treturn ingressNamespaceLister{listers.NewNamespaced[*networkingv1.Ingress](s.ResourceIndexer, namespace)}\n}\n\n// IngressNamespaceLister helps list and get Ingresses.\n// All objects returned here must be treated as read-only.\ntype IngressNamespaceLister interface {\n\t// List lists all Ingresses in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*networkingv1.Ingress, err error)\n\t// Get retrieves the Ingress from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*networkingv1.Ingress, error)\n\tIngressNamespaceListerExpansion\n}\n\n// ingressNamespaceLister implements the IngressNamespaceLister\n// interface.\ntype ingressNamespaceLister struct {\n\tlisters.ResourceIndexer[*networkingv1.Ingress]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/networking/v1/ingressclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tnetworkingv1 \"k8s.io/api/networking/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// IngressClassLister helps list IngressClasses.\n// All objects returned here must be treated as read-only.\ntype IngressClassLister interface {\n\t// List lists all IngressClasses in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*networkingv1.IngressClass, err error)\n\t// Get retrieves the IngressClass from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*networkingv1.IngressClass, error)\n\tIngressClassListerExpansion\n}\n\n// ingressClassLister implements the IngressClassLister interface.\ntype ingressClassLister struct {\n\tlisters.ResourceIndexer[*networkingv1.IngressClass]\n}\n\n// NewIngressClassLister returns a new IngressClassLister.\nfunc NewIngressClassLister(indexer cache.Indexer) IngressClassLister {\n\treturn &ingressClassLister{listers.New[*networkingv1.IngressClass](indexer, networkingv1.Resource(\"ingressclass\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/networking/v1/networkpolicy.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tnetworkingv1 \"k8s.io/api/networking/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// NetworkPolicyLister helps list NetworkPolicies.\n// All objects returned here must be treated as read-only.\ntype NetworkPolicyLister interface {\n\t// List lists all NetworkPolicies in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*networkingv1.NetworkPolicy, err error)\n\t// NetworkPolicies returns an object that can list and get NetworkPolicies.\n\tNetworkPolicies(namespace string) NetworkPolicyNamespaceLister\n\tNetworkPolicyListerExpansion\n}\n\n// networkPolicyLister implements the NetworkPolicyLister interface.\ntype networkPolicyLister struct {\n\tlisters.ResourceIndexer[*networkingv1.NetworkPolicy]\n}\n\n// NewNetworkPolicyLister returns a new NetworkPolicyLister.\nfunc NewNetworkPolicyLister(indexer cache.Indexer) NetworkPolicyLister {\n\treturn &networkPolicyLister{listers.New[*networkingv1.NetworkPolicy](indexer, networkingv1.Resource(\"networkpolicy\"))}\n}\n\n// NetworkPolicies returns an object that can list and get NetworkPolicies.\nfunc (s *networkPolicyLister) NetworkPolicies(namespace string) NetworkPolicyNamespaceLister {\n\treturn networkPolicyNamespaceLister{listers.NewNamespaced[*networkingv1.NetworkPolicy](s.ResourceIndexer, namespace)}\n}\n\n// NetworkPolicyNamespaceLister helps list and get NetworkPolicies.\n// All objects returned here must be treated as read-only.\ntype NetworkPolicyNamespaceLister interface {\n\t// List lists all NetworkPolicies in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*networkingv1.NetworkPolicy, err error)\n\t// Get retrieves the NetworkPolicy from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*networkingv1.NetworkPolicy, error)\n\tNetworkPolicyNamespaceListerExpansion\n}\n\n// networkPolicyNamespaceLister implements the NetworkPolicyNamespaceLister\n// interface.\ntype networkPolicyNamespaceLister struct {\n\tlisters.ResourceIndexer[*networkingv1.NetworkPolicy]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/networking/v1alpha1/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// IPAddressListerExpansion allows custom methods to be added to\n// IPAddressLister.\ntype IPAddressListerExpansion interface{}\n\n// ServiceCIDRListerExpansion allows custom methods to be added to\n// ServiceCIDRLister.\ntype ServiceCIDRListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/networking/v1alpha1/ipaddress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tnetworkingv1alpha1 \"k8s.io/api/networking/v1alpha1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// IPAddressLister helps list IPAddresses.\n// All objects returned here must be treated as read-only.\ntype IPAddressLister interface {\n\t// List lists all IPAddresses in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*networkingv1alpha1.IPAddress, err error)\n\t// Get retrieves the IPAddress from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*networkingv1alpha1.IPAddress, error)\n\tIPAddressListerExpansion\n}\n\n// iPAddressLister implements the IPAddressLister interface.\ntype iPAddressLister struct {\n\tlisters.ResourceIndexer[*networkingv1alpha1.IPAddress]\n}\n\n// NewIPAddressLister returns a new IPAddressLister.\nfunc NewIPAddressLister(indexer cache.Indexer) IPAddressLister {\n\treturn &iPAddressLister{listers.New[*networkingv1alpha1.IPAddress](indexer, networkingv1alpha1.Resource(\"ipaddress\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/networking/v1alpha1/servicecidr.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tnetworkingv1alpha1 \"k8s.io/api/networking/v1alpha1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ServiceCIDRLister helps list ServiceCIDRs.\n// All objects returned here must be treated as read-only.\ntype ServiceCIDRLister interface {\n\t// List lists all ServiceCIDRs in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*networkingv1alpha1.ServiceCIDR, err error)\n\t// Get retrieves the ServiceCIDR from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*networkingv1alpha1.ServiceCIDR, error)\n\tServiceCIDRListerExpansion\n}\n\n// serviceCIDRLister implements the ServiceCIDRLister interface.\ntype serviceCIDRLister struct {\n\tlisters.ResourceIndexer[*networkingv1alpha1.ServiceCIDR]\n}\n\n// NewServiceCIDRLister returns a new ServiceCIDRLister.\nfunc NewServiceCIDRLister(indexer cache.Indexer) ServiceCIDRLister {\n\treturn &serviceCIDRLister{listers.New[*networkingv1alpha1.ServiceCIDR](indexer, networkingv1alpha1.Resource(\"servicecidr\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/networking/v1beta1/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// IPAddressListerExpansion allows custom methods to be added to\n// IPAddressLister.\ntype IPAddressListerExpansion interface{}\n\n// IngressListerExpansion allows custom methods to be added to\n// IngressLister.\ntype IngressListerExpansion interface{}\n\n// IngressNamespaceListerExpansion allows custom methods to be added to\n// IngressNamespaceLister.\ntype IngressNamespaceListerExpansion interface{}\n\n// IngressClassListerExpansion allows custom methods to be added to\n// IngressClassLister.\ntype IngressClassListerExpansion interface{}\n\n// ServiceCIDRListerExpansion allows custom methods to be added to\n// ServiceCIDRLister.\ntype ServiceCIDRListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/networking/v1beta1/ingress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tnetworkingv1beta1 \"k8s.io/api/networking/v1beta1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// IngressLister helps list Ingresses.\n// All objects returned here must be treated as read-only.\ntype IngressLister interface {\n\t// List lists all Ingresses in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*networkingv1beta1.Ingress, err error)\n\t// Ingresses returns an object that can list and get Ingresses.\n\tIngresses(namespace string) IngressNamespaceLister\n\tIngressListerExpansion\n}\n\n// ingressLister implements the IngressLister interface.\ntype ingressLister struct {\n\tlisters.ResourceIndexer[*networkingv1beta1.Ingress]\n}\n\n// NewIngressLister returns a new IngressLister.\nfunc NewIngressLister(indexer cache.Indexer) IngressLister {\n\treturn &ingressLister{listers.New[*networkingv1beta1.Ingress](indexer, networkingv1beta1.Resource(\"ingress\"))}\n}\n\n// Ingresses returns an object that can list and get Ingresses.\nfunc (s *ingressLister) Ingresses(namespace string) IngressNamespaceLister {\n\treturn ingressNamespaceLister{listers.NewNamespaced[*networkingv1beta1.Ingress](s.ResourceIndexer, namespace)}\n}\n\n// IngressNamespaceLister helps list and get Ingresses.\n// All objects returned here must be treated as read-only.\ntype IngressNamespaceLister interface {\n\t// List lists all Ingresses in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*networkingv1beta1.Ingress, err error)\n\t// Get retrieves the Ingress from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*networkingv1beta1.Ingress, error)\n\tIngressNamespaceListerExpansion\n}\n\n// ingressNamespaceLister implements the IngressNamespaceLister\n// interface.\ntype ingressNamespaceLister struct {\n\tlisters.ResourceIndexer[*networkingv1beta1.Ingress]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/networking/v1beta1/ingressclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tnetworkingv1beta1 \"k8s.io/api/networking/v1beta1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// IngressClassLister helps list IngressClasses.\n// All objects returned here must be treated as read-only.\ntype IngressClassLister interface {\n\t// List lists all IngressClasses in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*networkingv1beta1.IngressClass, err error)\n\t// Get retrieves the IngressClass from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*networkingv1beta1.IngressClass, error)\n\tIngressClassListerExpansion\n}\n\n// ingressClassLister implements the IngressClassLister interface.\ntype ingressClassLister struct {\n\tlisters.ResourceIndexer[*networkingv1beta1.IngressClass]\n}\n\n// NewIngressClassLister returns a new IngressClassLister.\nfunc NewIngressClassLister(indexer cache.Indexer) IngressClassLister {\n\treturn &ingressClassLister{listers.New[*networkingv1beta1.IngressClass](indexer, networkingv1beta1.Resource(\"ingressclass\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/networking/v1beta1/ipaddress.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tnetworkingv1beta1 \"k8s.io/api/networking/v1beta1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// IPAddressLister helps list IPAddresses.\n// All objects returned here must be treated as read-only.\ntype IPAddressLister interface {\n\t// List lists all IPAddresses in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*networkingv1beta1.IPAddress, err error)\n\t// Get retrieves the IPAddress from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*networkingv1beta1.IPAddress, error)\n\tIPAddressListerExpansion\n}\n\n// iPAddressLister implements the IPAddressLister interface.\ntype iPAddressLister struct {\n\tlisters.ResourceIndexer[*networkingv1beta1.IPAddress]\n}\n\n// NewIPAddressLister returns a new IPAddressLister.\nfunc NewIPAddressLister(indexer cache.Indexer) IPAddressLister {\n\treturn &iPAddressLister{listers.New[*networkingv1beta1.IPAddress](indexer, networkingv1beta1.Resource(\"ipaddress\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/networking/v1beta1/servicecidr.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tnetworkingv1beta1 \"k8s.io/api/networking/v1beta1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ServiceCIDRLister helps list ServiceCIDRs.\n// All objects returned here must be treated as read-only.\ntype ServiceCIDRLister interface {\n\t// List lists all ServiceCIDRs in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*networkingv1beta1.ServiceCIDR, err error)\n\t// Get retrieves the ServiceCIDR from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*networkingv1beta1.ServiceCIDR, error)\n\tServiceCIDRListerExpansion\n}\n\n// serviceCIDRLister implements the ServiceCIDRLister interface.\ntype serviceCIDRLister struct {\n\tlisters.ResourceIndexer[*networkingv1beta1.ServiceCIDR]\n}\n\n// NewServiceCIDRLister returns a new ServiceCIDRLister.\nfunc NewServiceCIDRLister(indexer cache.Indexer) ServiceCIDRLister {\n\treturn &serviceCIDRLister{listers.New[*networkingv1beta1.ServiceCIDR](indexer, networkingv1beta1.Resource(\"servicecidr\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/node/v1/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\n// RuntimeClassListerExpansion allows custom methods to be added to\n// RuntimeClassLister.\ntype RuntimeClassListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/node/v1/runtimeclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tnodev1 \"k8s.io/api/node/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// RuntimeClassLister helps list RuntimeClasses.\n// All objects returned here must be treated as read-only.\ntype RuntimeClassLister interface {\n\t// List lists all RuntimeClasses in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*nodev1.RuntimeClass, err error)\n\t// Get retrieves the RuntimeClass from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*nodev1.RuntimeClass, error)\n\tRuntimeClassListerExpansion\n}\n\n// runtimeClassLister implements the RuntimeClassLister interface.\ntype runtimeClassLister struct {\n\tlisters.ResourceIndexer[*nodev1.RuntimeClass]\n}\n\n// NewRuntimeClassLister returns a new RuntimeClassLister.\nfunc NewRuntimeClassLister(indexer cache.Indexer) RuntimeClassLister {\n\treturn &runtimeClassLister{listers.New[*nodev1.RuntimeClass](indexer, nodev1.Resource(\"runtimeclass\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/node/v1alpha1/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// RuntimeClassListerExpansion allows custom methods to be added to\n// RuntimeClassLister.\ntype RuntimeClassListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/node/v1alpha1/runtimeclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tnodev1alpha1 \"k8s.io/api/node/v1alpha1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// RuntimeClassLister helps list RuntimeClasses.\n// All objects returned here must be treated as read-only.\ntype RuntimeClassLister interface {\n\t// List lists all RuntimeClasses in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*nodev1alpha1.RuntimeClass, err error)\n\t// Get retrieves the RuntimeClass from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*nodev1alpha1.RuntimeClass, error)\n\tRuntimeClassListerExpansion\n}\n\n// runtimeClassLister implements the RuntimeClassLister interface.\ntype runtimeClassLister struct {\n\tlisters.ResourceIndexer[*nodev1alpha1.RuntimeClass]\n}\n\n// NewRuntimeClassLister returns a new RuntimeClassLister.\nfunc NewRuntimeClassLister(indexer cache.Indexer) RuntimeClassLister {\n\treturn &runtimeClassLister{listers.New[*nodev1alpha1.RuntimeClass](indexer, nodev1alpha1.Resource(\"runtimeclass\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/node/v1beta1/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// RuntimeClassListerExpansion allows custom methods to be added to\n// RuntimeClassLister.\ntype RuntimeClassListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/node/v1beta1/runtimeclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tnodev1beta1 \"k8s.io/api/node/v1beta1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// RuntimeClassLister helps list RuntimeClasses.\n// All objects returned here must be treated as read-only.\ntype RuntimeClassLister interface {\n\t// List lists all RuntimeClasses in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*nodev1beta1.RuntimeClass, err error)\n\t// Get retrieves the RuntimeClass from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*nodev1beta1.RuntimeClass, error)\n\tRuntimeClassListerExpansion\n}\n\n// runtimeClassLister implements the RuntimeClassLister interface.\ntype runtimeClassLister struct {\n\tlisters.ResourceIndexer[*nodev1beta1.RuntimeClass]\n}\n\n// NewRuntimeClassLister returns a new RuntimeClassLister.\nfunc NewRuntimeClassLister(indexer cache.Indexer) RuntimeClassLister {\n\treturn &runtimeClassLister{listers.New[*nodev1beta1.RuntimeClass](indexer, nodev1beta1.Resource(\"runtimeclass\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/policy/v1/eviction.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tpolicyv1 \"k8s.io/api/policy/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// EvictionLister helps list Evictions.\n// All objects returned here must be treated as read-only.\ntype EvictionLister interface {\n\t// List lists all Evictions in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*policyv1.Eviction, err error)\n\t// Evictions returns an object that can list and get Evictions.\n\tEvictions(namespace string) EvictionNamespaceLister\n\tEvictionListerExpansion\n}\n\n// evictionLister implements the EvictionLister interface.\ntype evictionLister struct {\n\tlisters.ResourceIndexer[*policyv1.Eviction]\n}\n\n// NewEvictionLister returns a new EvictionLister.\nfunc NewEvictionLister(indexer cache.Indexer) EvictionLister {\n\treturn &evictionLister{listers.New[*policyv1.Eviction](indexer, policyv1.Resource(\"eviction\"))}\n}\n\n// Evictions returns an object that can list and get Evictions.\nfunc (s *evictionLister) Evictions(namespace string) EvictionNamespaceLister {\n\treturn evictionNamespaceLister{listers.NewNamespaced[*policyv1.Eviction](s.ResourceIndexer, namespace)}\n}\n\n// EvictionNamespaceLister helps list and get Evictions.\n// All objects returned here must be treated as read-only.\ntype EvictionNamespaceLister interface {\n\t// List lists all Evictions in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*policyv1.Eviction, err error)\n\t// Get retrieves the Eviction from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*policyv1.Eviction, error)\n\tEvictionNamespaceListerExpansion\n}\n\n// evictionNamespaceLister implements the EvictionNamespaceLister\n// interface.\ntype evictionNamespaceLister struct {\n\tlisters.ResourceIndexer[*policyv1.Eviction]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/policy/v1/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\n// EvictionListerExpansion allows custom methods to be added to\n// EvictionLister.\ntype EvictionListerExpansion interface{}\n\n// EvictionNamespaceListerExpansion allows custom methods to be added to\n// EvictionNamespaceLister.\ntype EvictionNamespaceListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/policy/v1/poddisruptionbudget.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tpolicyv1 \"k8s.io/api/policy/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// PodDisruptionBudgetLister helps list PodDisruptionBudgets.\n// All objects returned here must be treated as read-only.\ntype PodDisruptionBudgetLister interface {\n\t// List lists all PodDisruptionBudgets in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*policyv1.PodDisruptionBudget, err error)\n\t// PodDisruptionBudgets returns an object that can list and get PodDisruptionBudgets.\n\tPodDisruptionBudgets(namespace string) PodDisruptionBudgetNamespaceLister\n\tPodDisruptionBudgetListerExpansion\n}\n\n// podDisruptionBudgetLister implements the PodDisruptionBudgetLister interface.\ntype podDisruptionBudgetLister struct {\n\tlisters.ResourceIndexer[*policyv1.PodDisruptionBudget]\n}\n\n// NewPodDisruptionBudgetLister returns a new PodDisruptionBudgetLister.\nfunc NewPodDisruptionBudgetLister(indexer cache.Indexer) PodDisruptionBudgetLister {\n\treturn &podDisruptionBudgetLister{listers.New[*policyv1.PodDisruptionBudget](indexer, policyv1.Resource(\"poddisruptionbudget\"))}\n}\n\n// PodDisruptionBudgets returns an object that can list and get PodDisruptionBudgets.\nfunc (s *podDisruptionBudgetLister) PodDisruptionBudgets(namespace string) PodDisruptionBudgetNamespaceLister {\n\treturn podDisruptionBudgetNamespaceLister{listers.NewNamespaced[*policyv1.PodDisruptionBudget](s.ResourceIndexer, namespace)}\n}\n\n// PodDisruptionBudgetNamespaceLister helps list and get PodDisruptionBudgets.\n// All objects returned here must be treated as read-only.\ntype PodDisruptionBudgetNamespaceLister interface {\n\t// List lists all PodDisruptionBudgets in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*policyv1.PodDisruptionBudget, err error)\n\t// Get retrieves the PodDisruptionBudget from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*policyv1.PodDisruptionBudget, error)\n\tPodDisruptionBudgetNamespaceListerExpansion\n}\n\n// podDisruptionBudgetNamespaceLister implements the PodDisruptionBudgetNamespaceLister\n// interface.\ntype podDisruptionBudgetNamespaceLister struct {\n\tlisters.ResourceIndexer[*policyv1.PodDisruptionBudget]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/policy/v1/poddisruptionbudget_expansion.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\t\"fmt\"\n\n\t\"k8s.io/api/core/v1\"\n\tpolicy \"k8s.io/api/policy/v1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/labels\"\n)\n\n// PodDisruptionBudgetListerExpansion allows custom methods to be added to\n// PodDisruptionBudgetLister.\ntype PodDisruptionBudgetListerExpansion interface {\n\tGetPodPodDisruptionBudgets(pod *v1.Pod) ([]*policy.PodDisruptionBudget, error)\n}\n\n// PodDisruptionBudgetNamespaceListerExpansion allows custom methods to be added to\n// PodDisruptionBudgetNamespaceLister.\ntype PodDisruptionBudgetNamespaceListerExpansion interface{}\n\n// GetPodPodDisruptionBudgets returns a list of PodDisruptionBudgets matching a pod.\nfunc (s *podDisruptionBudgetLister) GetPodPodDisruptionBudgets(pod *v1.Pod) ([]*policy.PodDisruptionBudget, error) {\n\tvar selector labels.Selector\n\n\tlist, err := s.PodDisruptionBudgets(pod.Namespace).List(labels.Everything())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar pdbList []*policy.PodDisruptionBudget\n\tfor i := range list {\n\t\tpdb := list[i]\n\t\tselector, err = metav1.LabelSelectorAsSelector(pdb.Spec.Selector)\n\t\tif err != nil {\n\t\t\t// This object has an invalid selector, it does not match the pod\n\t\t\tcontinue\n\t\t}\n\n\t\t// Unlike the v1beta version, here we let an empty selector match everything.\n\t\tif !selector.Matches(labels.Set(pod.Labels)) {\n\t\t\tcontinue\n\t\t}\n\t\tpdbList = append(pdbList, pdb)\n\t}\n\n\tif len(pdbList) == 0 {\n\t\treturn nil, fmt.Errorf(\"could not find PodDisruptionBudget for pod %s in namespace %s with labels: %v\", pod.Name, pod.Namespace, pod.Labels)\n\t}\n\n\treturn pdbList, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/policy/v1beta1/eviction.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tpolicyv1beta1 \"k8s.io/api/policy/v1beta1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// EvictionLister helps list Evictions.\n// All objects returned here must be treated as read-only.\ntype EvictionLister interface {\n\t// List lists all Evictions in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*policyv1beta1.Eviction, err error)\n\t// Evictions returns an object that can list and get Evictions.\n\tEvictions(namespace string) EvictionNamespaceLister\n\tEvictionListerExpansion\n}\n\n// evictionLister implements the EvictionLister interface.\ntype evictionLister struct {\n\tlisters.ResourceIndexer[*policyv1beta1.Eviction]\n}\n\n// NewEvictionLister returns a new EvictionLister.\nfunc NewEvictionLister(indexer cache.Indexer) EvictionLister {\n\treturn &evictionLister{listers.New[*policyv1beta1.Eviction](indexer, policyv1beta1.Resource(\"eviction\"))}\n}\n\n// Evictions returns an object that can list and get Evictions.\nfunc (s *evictionLister) Evictions(namespace string) EvictionNamespaceLister {\n\treturn evictionNamespaceLister{listers.NewNamespaced[*policyv1beta1.Eviction](s.ResourceIndexer, namespace)}\n}\n\n// EvictionNamespaceLister helps list and get Evictions.\n// All objects returned here must be treated as read-only.\ntype EvictionNamespaceLister interface {\n\t// List lists all Evictions in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*policyv1beta1.Eviction, err error)\n\t// Get retrieves the Eviction from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*policyv1beta1.Eviction, error)\n\tEvictionNamespaceListerExpansion\n}\n\n// evictionNamespaceLister implements the EvictionNamespaceLister\n// interface.\ntype evictionNamespaceLister struct {\n\tlisters.ResourceIndexer[*policyv1beta1.Eviction]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/policy/v1beta1/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// EvictionListerExpansion allows custom methods to be added to\n// EvictionLister.\ntype EvictionListerExpansion interface{}\n\n// EvictionNamespaceListerExpansion allows custom methods to be added to\n// EvictionNamespaceLister.\ntype EvictionNamespaceListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/policy/v1beta1/poddisruptionbudget.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tpolicyv1beta1 \"k8s.io/api/policy/v1beta1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// PodDisruptionBudgetLister helps list PodDisruptionBudgets.\n// All objects returned here must be treated as read-only.\ntype PodDisruptionBudgetLister interface {\n\t// List lists all PodDisruptionBudgets in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*policyv1beta1.PodDisruptionBudget, err error)\n\t// PodDisruptionBudgets returns an object that can list and get PodDisruptionBudgets.\n\tPodDisruptionBudgets(namespace string) PodDisruptionBudgetNamespaceLister\n\tPodDisruptionBudgetListerExpansion\n}\n\n// podDisruptionBudgetLister implements the PodDisruptionBudgetLister interface.\ntype podDisruptionBudgetLister struct {\n\tlisters.ResourceIndexer[*policyv1beta1.PodDisruptionBudget]\n}\n\n// NewPodDisruptionBudgetLister returns a new PodDisruptionBudgetLister.\nfunc NewPodDisruptionBudgetLister(indexer cache.Indexer) PodDisruptionBudgetLister {\n\treturn &podDisruptionBudgetLister{listers.New[*policyv1beta1.PodDisruptionBudget](indexer, policyv1beta1.Resource(\"poddisruptionbudget\"))}\n}\n\n// PodDisruptionBudgets returns an object that can list and get PodDisruptionBudgets.\nfunc (s *podDisruptionBudgetLister) PodDisruptionBudgets(namespace string) PodDisruptionBudgetNamespaceLister {\n\treturn podDisruptionBudgetNamespaceLister{listers.NewNamespaced[*policyv1beta1.PodDisruptionBudget](s.ResourceIndexer, namespace)}\n}\n\n// PodDisruptionBudgetNamespaceLister helps list and get PodDisruptionBudgets.\n// All objects returned here must be treated as read-only.\ntype PodDisruptionBudgetNamespaceLister interface {\n\t// List lists all PodDisruptionBudgets in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*policyv1beta1.PodDisruptionBudget, err error)\n\t// Get retrieves the PodDisruptionBudget from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*policyv1beta1.PodDisruptionBudget, error)\n\tPodDisruptionBudgetNamespaceListerExpansion\n}\n\n// podDisruptionBudgetNamespaceLister implements the PodDisruptionBudgetNamespaceLister\n// interface.\ntype podDisruptionBudgetNamespaceLister struct {\n\tlisters.ResourceIndexer[*policyv1beta1.PodDisruptionBudget]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/policy/v1beta1/poddisruptionbudget_expansion.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\t\"fmt\"\n\n\t\"k8s.io/api/core/v1\"\n\tpolicy \"k8s.io/api/policy/v1beta1\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/labels\"\n)\n\n// PodDisruptionBudgetListerExpansion allows custom methods to be added to\n// PodDisruptionBudgetLister.\ntype PodDisruptionBudgetListerExpansion interface {\n\tGetPodPodDisruptionBudgets(pod *v1.Pod) ([]*policy.PodDisruptionBudget, error)\n}\n\n// PodDisruptionBudgetNamespaceListerExpansion allows custom methods to be added to\n// PodDisruptionBudgetNamespaceLister.\ntype PodDisruptionBudgetNamespaceListerExpansion interface{}\n\n// GetPodPodDisruptionBudgets returns a list of PodDisruptionBudgets matching a pod.  Returns an error only if no matching PodDisruptionBudgets are found.\nfunc (s *podDisruptionBudgetLister) GetPodPodDisruptionBudgets(pod *v1.Pod) ([]*policy.PodDisruptionBudget, error) {\n\tvar selector labels.Selector\n\n\tlist, err := s.PodDisruptionBudgets(pod.Namespace).List(labels.Everything())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tvar pdbList []*policy.PodDisruptionBudget\n\tfor i := range list {\n\t\tpdb := list[i]\n\t\tselector, err = metav1.LabelSelectorAsSelector(pdb.Spec.Selector)\n\t\tif err != nil {\n\t\t\t// This object has an invalid selector, it does not match the pod\n\t\t\tcontinue\n\t\t}\n\n\t\t// If a PDB with a nil or empty selector creeps in, it should match nothing, not everything.\n\t\tif selector.Empty() || !selector.Matches(labels.Set(pod.Labels)) {\n\t\t\tcontinue\n\t\t}\n\t\tpdbList = append(pdbList, pdb)\n\t}\n\n\tif len(pdbList) == 0 {\n\t\treturn nil, fmt.Errorf(\"could not find PodDisruptionBudget for pod %s in namespace %s with labels: %v\", pod.Name, pod.Namespace, pod.Labels)\n\t}\n\n\treturn pdbList, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/rbac/v1/clusterrole.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\trbacv1 \"k8s.io/api/rbac/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ClusterRoleLister helps list ClusterRoles.\n// All objects returned here must be treated as read-only.\ntype ClusterRoleLister interface {\n\t// List lists all ClusterRoles in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*rbacv1.ClusterRole, err error)\n\t// Get retrieves the ClusterRole from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*rbacv1.ClusterRole, error)\n\tClusterRoleListerExpansion\n}\n\n// clusterRoleLister implements the ClusterRoleLister interface.\ntype clusterRoleLister struct {\n\tlisters.ResourceIndexer[*rbacv1.ClusterRole]\n}\n\n// NewClusterRoleLister returns a new ClusterRoleLister.\nfunc NewClusterRoleLister(indexer cache.Indexer) ClusterRoleLister {\n\treturn &clusterRoleLister{listers.New[*rbacv1.ClusterRole](indexer, rbacv1.Resource(\"clusterrole\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/rbac/v1/clusterrolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\trbacv1 \"k8s.io/api/rbac/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ClusterRoleBindingLister helps list ClusterRoleBindings.\n// All objects returned here must be treated as read-only.\ntype ClusterRoleBindingLister interface {\n\t// List lists all ClusterRoleBindings in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*rbacv1.ClusterRoleBinding, err error)\n\t// Get retrieves the ClusterRoleBinding from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*rbacv1.ClusterRoleBinding, error)\n\tClusterRoleBindingListerExpansion\n}\n\n// clusterRoleBindingLister implements the ClusterRoleBindingLister interface.\ntype clusterRoleBindingLister struct {\n\tlisters.ResourceIndexer[*rbacv1.ClusterRoleBinding]\n}\n\n// NewClusterRoleBindingLister returns a new ClusterRoleBindingLister.\nfunc NewClusterRoleBindingLister(indexer cache.Indexer) ClusterRoleBindingLister {\n\treturn &clusterRoleBindingLister{listers.New[*rbacv1.ClusterRoleBinding](indexer, rbacv1.Resource(\"clusterrolebinding\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/rbac/v1/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\n// ClusterRoleListerExpansion allows custom methods to be added to\n// ClusterRoleLister.\ntype ClusterRoleListerExpansion interface{}\n\n// ClusterRoleBindingListerExpansion allows custom methods to be added to\n// ClusterRoleBindingLister.\ntype ClusterRoleBindingListerExpansion interface{}\n\n// RoleListerExpansion allows custom methods to be added to\n// RoleLister.\ntype RoleListerExpansion interface{}\n\n// RoleNamespaceListerExpansion allows custom methods to be added to\n// RoleNamespaceLister.\ntype RoleNamespaceListerExpansion interface{}\n\n// RoleBindingListerExpansion allows custom methods to be added to\n// RoleBindingLister.\ntype RoleBindingListerExpansion interface{}\n\n// RoleBindingNamespaceListerExpansion allows custom methods to be added to\n// RoleBindingNamespaceLister.\ntype RoleBindingNamespaceListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/rbac/v1/role.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\trbacv1 \"k8s.io/api/rbac/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// RoleLister helps list Roles.\n// All objects returned here must be treated as read-only.\ntype RoleLister interface {\n\t// List lists all Roles in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*rbacv1.Role, err error)\n\t// Roles returns an object that can list and get Roles.\n\tRoles(namespace string) RoleNamespaceLister\n\tRoleListerExpansion\n}\n\n// roleLister implements the RoleLister interface.\ntype roleLister struct {\n\tlisters.ResourceIndexer[*rbacv1.Role]\n}\n\n// NewRoleLister returns a new RoleLister.\nfunc NewRoleLister(indexer cache.Indexer) RoleLister {\n\treturn &roleLister{listers.New[*rbacv1.Role](indexer, rbacv1.Resource(\"role\"))}\n}\n\n// Roles returns an object that can list and get Roles.\nfunc (s *roleLister) Roles(namespace string) RoleNamespaceLister {\n\treturn roleNamespaceLister{listers.NewNamespaced[*rbacv1.Role](s.ResourceIndexer, namespace)}\n}\n\n// RoleNamespaceLister helps list and get Roles.\n// All objects returned here must be treated as read-only.\ntype RoleNamespaceLister interface {\n\t// List lists all Roles in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*rbacv1.Role, err error)\n\t// Get retrieves the Role from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*rbacv1.Role, error)\n\tRoleNamespaceListerExpansion\n}\n\n// roleNamespaceLister implements the RoleNamespaceLister\n// interface.\ntype roleNamespaceLister struct {\n\tlisters.ResourceIndexer[*rbacv1.Role]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/rbac/v1/rolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\trbacv1 \"k8s.io/api/rbac/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// RoleBindingLister helps list RoleBindings.\n// All objects returned here must be treated as read-only.\ntype RoleBindingLister interface {\n\t// List lists all RoleBindings in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*rbacv1.RoleBinding, err error)\n\t// RoleBindings returns an object that can list and get RoleBindings.\n\tRoleBindings(namespace string) RoleBindingNamespaceLister\n\tRoleBindingListerExpansion\n}\n\n// roleBindingLister implements the RoleBindingLister interface.\ntype roleBindingLister struct {\n\tlisters.ResourceIndexer[*rbacv1.RoleBinding]\n}\n\n// NewRoleBindingLister returns a new RoleBindingLister.\nfunc NewRoleBindingLister(indexer cache.Indexer) RoleBindingLister {\n\treturn &roleBindingLister{listers.New[*rbacv1.RoleBinding](indexer, rbacv1.Resource(\"rolebinding\"))}\n}\n\n// RoleBindings returns an object that can list and get RoleBindings.\nfunc (s *roleBindingLister) RoleBindings(namespace string) RoleBindingNamespaceLister {\n\treturn roleBindingNamespaceLister{listers.NewNamespaced[*rbacv1.RoleBinding](s.ResourceIndexer, namespace)}\n}\n\n// RoleBindingNamespaceLister helps list and get RoleBindings.\n// All objects returned here must be treated as read-only.\ntype RoleBindingNamespaceLister interface {\n\t// List lists all RoleBindings in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*rbacv1.RoleBinding, err error)\n\t// Get retrieves the RoleBinding from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*rbacv1.RoleBinding, error)\n\tRoleBindingNamespaceListerExpansion\n}\n\n// roleBindingNamespaceLister implements the RoleBindingNamespaceLister\n// interface.\ntype roleBindingNamespaceLister struct {\n\tlisters.ResourceIndexer[*rbacv1.RoleBinding]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/rbac/v1alpha1/clusterrole.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\trbacv1alpha1 \"k8s.io/api/rbac/v1alpha1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ClusterRoleLister helps list ClusterRoles.\n// All objects returned here must be treated as read-only.\ntype ClusterRoleLister interface {\n\t// List lists all ClusterRoles in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*rbacv1alpha1.ClusterRole, err error)\n\t// Get retrieves the ClusterRole from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*rbacv1alpha1.ClusterRole, error)\n\tClusterRoleListerExpansion\n}\n\n// clusterRoleLister implements the ClusterRoleLister interface.\ntype clusterRoleLister struct {\n\tlisters.ResourceIndexer[*rbacv1alpha1.ClusterRole]\n}\n\n// NewClusterRoleLister returns a new ClusterRoleLister.\nfunc NewClusterRoleLister(indexer cache.Indexer) ClusterRoleLister {\n\treturn &clusterRoleLister{listers.New[*rbacv1alpha1.ClusterRole](indexer, rbacv1alpha1.Resource(\"clusterrole\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/rbac/v1alpha1/clusterrolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\trbacv1alpha1 \"k8s.io/api/rbac/v1alpha1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ClusterRoleBindingLister helps list ClusterRoleBindings.\n// All objects returned here must be treated as read-only.\ntype ClusterRoleBindingLister interface {\n\t// List lists all ClusterRoleBindings in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*rbacv1alpha1.ClusterRoleBinding, err error)\n\t// Get retrieves the ClusterRoleBinding from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*rbacv1alpha1.ClusterRoleBinding, error)\n\tClusterRoleBindingListerExpansion\n}\n\n// clusterRoleBindingLister implements the ClusterRoleBindingLister interface.\ntype clusterRoleBindingLister struct {\n\tlisters.ResourceIndexer[*rbacv1alpha1.ClusterRoleBinding]\n}\n\n// NewClusterRoleBindingLister returns a new ClusterRoleBindingLister.\nfunc NewClusterRoleBindingLister(indexer cache.Indexer) ClusterRoleBindingLister {\n\treturn &clusterRoleBindingLister{listers.New[*rbacv1alpha1.ClusterRoleBinding](indexer, rbacv1alpha1.Resource(\"clusterrolebinding\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/rbac/v1alpha1/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// ClusterRoleListerExpansion allows custom methods to be added to\n// ClusterRoleLister.\ntype ClusterRoleListerExpansion interface{}\n\n// ClusterRoleBindingListerExpansion allows custom methods to be added to\n// ClusterRoleBindingLister.\ntype ClusterRoleBindingListerExpansion interface{}\n\n// RoleListerExpansion allows custom methods to be added to\n// RoleLister.\ntype RoleListerExpansion interface{}\n\n// RoleNamespaceListerExpansion allows custom methods to be added to\n// RoleNamespaceLister.\ntype RoleNamespaceListerExpansion interface{}\n\n// RoleBindingListerExpansion allows custom methods to be added to\n// RoleBindingLister.\ntype RoleBindingListerExpansion interface{}\n\n// RoleBindingNamespaceListerExpansion allows custom methods to be added to\n// RoleBindingNamespaceLister.\ntype RoleBindingNamespaceListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/rbac/v1alpha1/role.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\trbacv1alpha1 \"k8s.io/api/rbac/v1alpha1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// RoleLister helps list Roles.\n// All objects returned here must be treated as read-only.\ntype RoleLister interface {\n\t// List lists all Roles in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*rbacv1alpha1.Role, err error)\n\t// Roles returns an object that can list and get Roles.\n\tRoles(namespace string) RoleNamespaceLister\n\tRoleListerExpansion\n}\n\n// roleLister implements the RoleLister interface.\ntype roleLister struct {\n\tlisters.ResourceIndexer[*rbacv1alpha1.Role]\n}\n\n// NewRoleLister returns a new RoleLister.\nfunc NewRoleLister(indexer cache.Indexer) RoleLister {\n\treturn &roleLister{listers.New[*rbacv1alpha1.Role](indexer, rbacv1alpha1.Resource(\"role\"))}\n}\n\n// Roles returns an object that can list and get Roles.\nfunc (s *roleLister) Roles(namespace string) RoleNamespaceLister {\n\treturn roleNamespaceLister{listers.NewNamespaced[*rbacv1alpha1.Role](s.ResourceIndexer, namespace)}\n}\n\n// RoleNamespaceLister helps list and get Roles.\n// All objects returned here must be treated as read-only.\ntype RoleNamespaceLister interface {\n\t// List lists all Roles in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*rbacv1alpha1.Role, err error)\n\t// Get retrieves the Role from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*rbacv1alpha1.Role, error)\n\tRoleNamespaceListerExpansion\n}\n\n// roleNamespaceLister implements the RoleNamespaceLister\n// interface.\ntype roleNamespaceLister struct {\n\tlisters.ResourceIndexer[*rbacv1alpha1.Role]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/rbac/v1alpha1/rolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\trbacv1alpha1 \"k8s.io/api/rbac/v1alpha1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// RoleBindingLister helps list RoleBindings.\n// All objects returned here must be treated as read-only.\ntype RoleBindingLister interface {\n\t// List lists all RoleBindings in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*rbacv1alpha1.RoleBinding, err error)\n\t// RoleBindings returns an object that can list and get RoleBindings.\n\tRoleBindings(namespace string) RoleBindingNamespaceLister\n\tRoleBindingListerExpansion\n}\n\n// roleBindingLister implements the RoleBindingLister interface.\ntype roleBindingLister struct {\n\tlisters.ResourceIndexer[*rbacv1alpha1.RoleBinding]\n}\n\n// NewRoleBindingLister returns a new RoleBindingLister.\nfunc NewRoleBindingLister(indexer cache.Indexer) RoleBindingLister {\n\treturn &roleBindingLister{listers.New[*rbacv1alpha1.RoleBinding](indexer, rbacv1alpha1.Resource(\"rolebinding\"))}\n}\n\n// RoleBindings returns an object that can list and get RoleBindings.\nfunc (s *roleBindingLister) RoleBindings(namespace string) RoleBindingNamespaceLister {\n\treturn roleBindingNamespaceLister{listers.NewNamespaced[*rbacv1alpha1.RoleBinding](s.ResourceIndexer, namespace)}\n}\n\n// RoleBindingNamespaceLister helps list and get RoleBindings.\n// All objects returned here must be treated as read-only.\ntype RoleBindingNamespaceLister interface {\n\t// List lists all RoleBindings in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*rbacv1alpha1.RoleBinding, err error)\n\t// Get retrieves the RoleBinding from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*rbacv1alpha1.RoleBinding, error)\n\tRoleBindingNamespaceListerExpansion\n}\n\n// roleBindingNamespaceLister implements the RoleBindingNamespaceLister\n// interface.\ntype roleBindingNamespaceLister struct {\n\tlisters.ResourceIndexer[*rbacv1alpha1.RoleBinding]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/rbac/v1beta1/clusterrole.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\trbacv1beta1 \"k8s.io/api/rbac/v1beta1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ClusterRoleLister helps list ClusterRoles.\n// All objects returned here must be treated as read-only.\ntype ClusterRoleLister interface {\n\t// List lists all ClusterRoles in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*rbacv1beta1.ClusterRole, err error)\n\t// Get retrieves the ClusterRole from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*rbacv1beta1.ClusterRole, error)\n\tClusterRoleListerExpansion\n}\n\n// clusterRoleLister implements the ClusterRoleLister interface.\ntype clusterRoleLister struct {\n\tlisters.ResourceIndexer[*rbacv1beta1.ClusterRole]\n}\n\n// NewClusterRoleLister returns a new ClusterRoleLister.\nfunc NewClusterRoleLister(indexer cache.Indexer) ClusterRoleLister {\n\treturn &clusterRoleLister{listers.New[*rbacv1beta1.ClusterRole](indexer, rbacv1beta1.Resource(\"clusterrole\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/rbac/v1beta1/clusterrolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\trbacv1beta1 \"k8s.io/api/rbac/v1beta1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ClusterRoleBindingLister helps list ClusterRoleBindings.\n// All objects returned here must be treated as read-only.\ntype ClusterRoleBindingLister interface {\n\t// List lists all ClusterRoleBindings in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*rbacv1beta1.ClusterRoleBinding, err error)\n\t// Get retrieves the ClusterRoleBinding from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*rbacv1beta1.ClusterRoleBinding, error)\n\tClusterRoleBindingListerExpansion\n}\n\n// clusterRoleBindingLister implements the ClusterRoleBindingLister interface.\ntype clusterRoleBindingLister struct {\n\tlisters.ResourceIndexer[*rbacv1beta1.ClusterRoleBinding]\n}\n\n// NewClusterRoleBindingLister returns a new ClusterRoleBindingLister.\nfunc NewClusterRoleBindingLister(indexer cache.Indexer) ClusterRoleBindingLister {\n\treturn &clusterRoleBindingLister{listers.New[*rbacv1beta1.ClusterRoleBinding](indexer, rbacv1beta1.Resource(\"clusterrolebinding\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/rbac/v1beta1/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// ClusterRoleListerExpansion allows custom methods to be added to\n// ClusterRoleLister.\ntype ClusterRoleListerExpansion interface{}\n\n// ClusterRoleBindingListerExpansion allows custom methods to be added to\n// ClusterRoleBindingLister.\ntype ClusterRoleBindingListerExpansion interface{}\n\n// RoleListerExpansion allows custom methods to be added to\n// RoleLister.\ntype RoleListerExpansion interface{}\n\n// RoleNamespaceListerExpansion allows custom methods to be added to\n// RoleNamespaceLister.\ntype RoleNamespaceListerExpansion interface{}\n\n// RoleBindingListerExpansion allows custom methods to be added to\n// RoleBindingLister.\ntype RoleBindingListerExpansion interface{}\n\n// RoleBindingNamespaceListerExpansion allows custom methods to be added to\n// RoleBindingNamespaceLister.\ntype RoleBindingNamespaceListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/rbac/v1beta1/role.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\trbacv1beta1 \"k8s.io/api/rbac/v1beta1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// RoleLister helps list Roles.\n// All objects returned here must be treated as read-only.\ntype RoleLister interface {\n\t// List lists all Roles in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*rbacv1beta1.Role, err error)\n\t// Roles returns an object that can list and get Roles.\n\tRoles(namespace string) RoleNamespaceLister\n\tRoleListerExpansion\n}\n\n// roleLister implements the RoleLister interface.\ntype roleLister struct {\n\tlisters.ResourceIndexer[*rbacv1beta1.Role]\n}\n\n// NewRoleLister returns a new RoleLister.\nfunc NewRoleLister(indexer cache.Indexer) RoleLister {\n\treturn &roleLister{listers.New[*rbacv1beta1.Role](indexer, rbacv1beta1.Resource(\"role\"))}\n}\n\n// Roles returns an object that can list and get Roles.\nfunc (s *roleLister) Roles(namespace string) RoleNamespaceLister {\n\treturn roleNamespaceLister{listers.NewNamespaced[*rbacv1beta1.Role](s.ResourceIndexer, namespace)}\n}\n\n// RoleNamespaceLister helps list and get Roles.\n// All objects returned here must be treated as read-only.\ntype RoleNamespaceLister interface {\n\t// List lists all Roles in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*rbacv1beta1.Role, err error)\n\t// Get retrieves the Role from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*rbacv1beta1.Role, error)\n\tRoleNamespaceListerExpansion\n}\n\n// roleNamespaceLister implements the RoleNamespaceLister\n// interface.\ntype roleNamespaceLister struct {\n\tlisters.ResourceIndexer[*rbacv1beta1.Role]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/rbac/v1beta1/rolebinding.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\trbacv1beta1 \"k8s.io/api/rbac/v1beta1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// RoleBindingLister helps list RoleBindings.\n// All objects returned here must be treated as read-only.\ntype RoleBindingLister interface {\n\t// List lists all RoleBindings in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*rbacv1beta1.RoleBinding, err error)\n\t// RoleBindings returns an object that can list and get RoleBindings.\n\tRoleBindings(namespace string) RoleBindingNamespaceLister\n\tRoleBindingListerExpansion\n}\n\n// roleBindingLister implements the RoleBindingLister interface.\ntype roleBindingLister struct {\n\tlisters.ResourceIndexer[*rbacv1beta1.RoleBinding]\n}\n\n// NewRoleBindingLister returns a new RoleBindingLister.\nfunc NewRoleBindingLister(indexer cache.Indexer) RoleBindingLister {\n\treturn &roleBindingLister{listers.New[*rbacv1beta1.RoleBinding](indexer, rbacv1beta1.Resource(\"rolebinding\"))}\n}\n\n// RoleBindings returns an object that can list and get RoleBindings.\nfunc (s *roleBindingLister) RoleBindings(namespace string) RoleBindingNamespaceLister {\n\treturn roleBindingNamespaceLister{listers.NewNamespaced[*rbacv1beta1.RoleBinding](s.ResourceIndexer, namespace)}\n}\n\n// RoleBindingNamespaceLister helps list and get RoleBindings.\n// All objects returned here must be treated as read-only.\ntype RoleBindingNamespaceLister interface {\n\t// List lists all RoleBindings in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*rbacv1beta1.RoleBinding, err error)\n\t// Get retrieves the RoleBinding from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*rbacv1beta1.RoleBinding, error)\n\tRoleBindingNamespaceListerExpansion\n}\n\n// roleBindingNamespaceLister implements the RoleBindingNamespaceLister\n// interface.\ntype roleBindingNamespaceLister struct {\n\tlisters.ResourceIndexer[*rbacv1beta1.RoleBinding]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/resource/v1alpha3/deviceclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1alpha3\n\nimport (\n\tresourcev1alpha3 \"k8s.io/api/resource/v1alpha3\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// DeviceClassLister helps list DeviceClasses.\n// All objects returned here must be treated as read-only.\ntype DeviceClassLister interface {\n\t// List lists all DeviceClasses in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*resourcev1alpha3.DeviceClass, err error)\n\t// Get retrieves the DeviceClass from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*resourcev1alpha3.DeviceClass, error)\n\tDeviceClassListerExpansion\n}\n\n// deviceClassLister implements the DeviceClassLister interface.\ntype deviceClassLister struct {\n\tlisters.ResourceIndexer[*resourcev1alpha3.DeviceClass]\n}\n\n// NewDeviceClassLister returns a new DeviceClassLister.\nfunc NewDeviceClassLister(indexer cache.Indexer) DeviceClassLister {\n\treturn &deviceClassLister{listers.New[*resourcev1alpha3.DeviceClass](indexer, resourcev1alpha3.Resource(\"deviceclass\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/resource/v1alpha3/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1alpha3\n\n// DeviceClassListerExpansion allows custom methods to be added to\n// DeviceClassLister.\ntype DeviceClassListerExpansion interface{}\n\n// ResourceClaimListerExpansion allows custom methods to be added to\n// ResourceClaimLister.\ntype ResourceClaimListerExpansion interface{}\n\n// ResourceClaimNamespaceListerExpansion allows custom methods to be added to\n// ResourceClaimNamespaceLister.\ntype ResourceClaimNamespaceListerExpansion interface{}\n\n// ResourceClaimTemplateListerExpansion allows custom methods to be added to\n// ResourceClaimTemplateLister.\ntype ResourceClaimTemplateListerExpansion interface{}\n\n// ResourceClaimTemplateNamespaceListerExpansion allows custom methods to be added to\n// ResourceClaimTemplateNamespaceLister.\ntype ResourceClaimTemplateNamespaceListerExpansion interface{}\n\n// ResourceSliceListerExpansion allows custom methods to be added to\n// ResourceSliceLister.\ntype ResourceSliceListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/resource/v1alpha3/resourceclaim.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1alpha3\n\nimport (\n\tresourcev1alpha3 \"k8s.io/api/resource/v1alpha3\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ResourceClaimLister helps list ResourceClaims.\n// All objects returned here must be treated as read-only.\ntype ResourceClaimLister interface {\n\t// List lists all ResourceClaims in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*resourcev1alpha3.ResourceClaim, err error)\n\t// ResourceClaims returns an object that can list and get ResourceClaims.\n\tResourceClaims(namespace string) ResourceClaimNamespaceLister\n\tResourceClaimListerExpansion\n}\n\n// resourceClaimLister implements the ResourceClaimLister interface.\ntype resourceClaimLister struct {\n\tlisters.ResourceIndexer[*resourcev1alpha3.ResourceClaim]\n}\n\n// NewResourceClaimLister returns a new ResourceClaimLister.\nfunc NewResourceClaimLister(indexer cache.Indexer) ResourceClaimLister {\n\treturn &resourceClaimLister{listers.New[*resourcev1alpha3.ResourceClaim](indexer, resourcev1alpha3.Resource(\"resourceclaim\"))}\n}\n\n// ResourceClaims returns an object that can list and get ResourceClaims.\nfunc (s *resourceClaimLister) ResourceClaims(namespace string) ResourceClaimNamespaceLister {\n\treturn resourceClaimNamespaceLister{listers.NewNamespaced[*resourcev1alpha3.ResourceClaim](s.ResourceIndexer, namespace)}\n}\n\n// ResourceClaimNamespaceLister helps list and get ResourceClaims.\n// All objects returned here must be treated as read-only.\ntype ResourceClaimNamespaceLister interface {\n\t// List lists all ResourceClaims in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*resourcev1alpha3.ResourceClaim, err error)\n\t// Get retrieves the ResourceClaim from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*resourcev1alpha3.ResourceClaim, error)\n\tResourceClaimNamespaceListerExpansion\n}\n\n// resourceClaimNamespaceLister implements the ResourceClaimNamespaceLister\n// interface.\ntype resourceClaimNamespaceLister struct {\n\tlisters.ResourceIndexer[*resourcev1alpha3.ResourceClaim]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/resource/v1alpha3/resourceclaimtemplate.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1alpha3\n\nimport (\n\tresourcev1alpha3 \"k8s.io/api/resource/v1alpha3\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ResourceClaimTemplateLister helps list ResourceClaimTemplates.\n// All objects returned here must be treated as read-only.\ntype ResourceClaimTemplateLister interface {\n\t// List lists all ResourceClaimTemplates in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*resourcev1alpha3.ResourceClaimTemplate, err error)\n\t// ResourceClaimTemplates returns an object that can list and get ResourceClaimTemplates.\n\tResourceClaimTemplates(namespace string) ResourceClaimTemplateNamespaceLister\n\tResourceClaimTemplateListerExpansion\n}\n\n// resourceClaimTemplateLister implements the ResourceClaimTemplateLister interface.\ntype resourceClaimTemplateLister struct {\n\tlisters.ResourceIndexer[*resourcev1alpha3.ResourceClaimTemplate]\n}\n\n// NewResourceClaimTemplateLister returns a new ResourceClaimTemplateLister.\nfunc NewResourceClaimTemplateLister(indexer cache.Indexer) ResourceClaimTemplateLister {\n\treturn &resourceClaimTemplateLister{listers.New[*resourcev1alpha3.ResourceClaimTemplate](indexer, resourcev1alpha3.Resource(\"resourceclaimtemplate\"))}\n}\n\n// ResourceClaimTemplates returns an object that can list and get ResourceClaimTemplates.\nfunc (s *resourceClaimTemplateLister) ResourceClaimTemplates(namespace string) ResourceClaimTemplateNamespaceLister {\n\treturn resourceClaimTemplateNamespaceLister{listers.NewNamespaced[*resourcev1alpha3.ResourceClaimTemplate](s.ResourceIndexer, namespace)}\n}\n\n// ResourceClaimTemplateNamespaceLister helps list and get ResourceClaimTemplates.\n// All objects returned here must be treated as read-only.\ntype ResourceClaimTemplateNamespaceLister interface {\n\t// List lists all ResourceClaimTemplates in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*resourcev1alpha3.ResourceClaimTemplate, err error)\n\t// Get retrieves the ResourceClaimTemplate from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*resourcev1alpha3.ResourceClaimTemplate, error)\n\tResourceClaimTemplateNamespaceListerExpansion\n}\n\n// resourceClaimTemplateNamespaceLister implements the ResourceClaimTemplateNamespaceLister\n// interface.\ntype resourceClaimTemplateNamespaceLister struct {\n\tlisters.ResourceIndexer[*resourcev1alpha3.ResourceClaimTemplate]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/resource/v1alpha3/resourceslice.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1alpha3\n\nimport (\n\tresourcev1alpha3 \"k8s.io/api/resource/v1alpha3\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ResourceSliceLister helps list ResourceSlices.\n// All objects returned here must be treated as read-only.\ntype ResourceSliceLister interface {\n\t// List lists all ResourceSlices in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*resourcev1alpha3.ResourceSlice, err error)\n\t// Get retrieves the ResourceSlice from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*resourcev1alpha3.ResourceSlice, error)\n\tResourceSliceListerExpansion\n}\n\n// resourceSliceLister implements the ResourceSliceLister interface.\ntype resourceSliceLister struct {\n\tlisters.ResourceIndexer[*resourcev1alpha3.ResourceSlice]\n}\n\n// NewResourceSliceLister returns a new ResourceSliceLister.\nfunc NewResourceSliceLister(indexer cache.Indexer) ResourceSliceLister {\n\treturn &resourceSliceLister{listers.New[*resourcev1alpha3.ResourceSlice](indexer, resourcev1alpha3.Resource(\"resourceslice\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/resource/v1beta1/deviceclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tresourcev1beta1 \"k8s.io/api/resource/v1beta1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// DeviceClassLister helps list DeviceClasses.\n// All objects returned here must be treated as read-only.\ntype DeviceClassLister interface {\n\t// List lists all DeviceClasses in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*resourcev1beta1.DeviceClass, err error)\n\t// Get retrieves the DeviceClass from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*resourcev1beta1.DeviceClass, error)\n\tDeviceClassListerExpansion\n}\n\n// deviceClassLister implements the DeviceClassLister interface.\ntype deviceClassLister struct {\n\tlisters.ResourceIndexer[*resourcev1beta1.DeviceClass]\n}\n\n// NewDeviceClassLister returns a new DeviceClassLister.\nfunc NewDeviceClassLister(indexer cache.Indexer) DeviceClassLister {\n\treturn &deviceClassLister{listers.New[*resourcev1beta1.DeviceClass](indexer, resourcev1beta1.Resource(\"deviceclass\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/resource/v1beta1/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// DeviceClassListerExpansion allows custom methods to be added to\n// DeviceClassLister.\ntype DeviceClassListerExpansion interface{}\n\n// ResourceClaimListerExpansion allows custom methods to be added to\n// ResourceClaimLister.\ntype ResourceClaimListerExpansion interface{}\n\n// ResourceClaimNamespaceListerExpansion allows custom methods to be added to\n// ResourceClaimNamespaceLister.\ntype ResourceClaimNamespaceListerExpansion interface{}\n\n// ResourceClaimTemplateListerExpansion allows custom methods to be added to\n// ResourceClaimTemplateLister.\ntype ResourceClaimTemplateListerExpansion interface{}\n\n// ResourceClaimTemplateNamespaceListerExpansion allows custom methods to be added to\n// ResourceClaimTemplateNamespaceLister.\ntype ResourceClaimTemplateNamespaceListerExpansion interface{}\n\n// ResourceSliceListerExpansion allows custom methods to be added to\n// ResourceSliceLister.\ntype ResourceSliceListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/resource/v1beta1/resourceclaim.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tresourcev1beta1 \"k8s.io/api/resource/v1beta1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ResourceClaimLister helps list ResourceClaims.\n// All objects returned here must be treated as read-only.\ntype ResourceClaimLister interface {\n\t// List lists all ResourceClaims in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*resourcev1beta1.ResourceClaim, err error)\n\t// ResourceClaims returns an object that can list and get ResourceClaims.\n\tResourceClaims(namespace string) ResourceClaimNamespaceLister\n\tResourceClaimListerExpansion\n}\n\n// resourceClaimLister implements the ResourceClaimLister interface.\ntype resourceClaimLister struct {\n\tlisters.ResourceIndexer[*resourcev1beta1.ResourceClaim]\n}\n\n// NewResourceClaimLister returns a new ResourceClaimLister.\nfunc NewResourceClaimLister(indexer cache.Indexer) ResourceClaimLister {\n\treturn &resourceClaimLister{listers.New[*resourcev1beta1.ResourceClaim](indexer, resourcev1beta1.Resource(\"resourceclaim\"))}\n}\n\n// ResourceClaims returns an object that can list and get ResourceClaims.\nfunc (s *resourceClaimLister) ResourceClaims(namespace string) ResourceClaimNamespaceLister {\n\treturn resourceClaimNamespaceLister{listers.NewNamespaced[*resourcev1beta1.ResourceClaim](s.ResourceIndexer, namespace)}\n}\n\n// ResourceClaimNamespaceLister helps list and get ResourceClaims.\n// All objects returned here must be treated as read-only.\ntype ResourceClaimNamespaceLister interface {\n\t// List lists all ResourceClaims in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*resourcev1beta1.ResourceClaim, err error)\n\t// Get retrieves the ResourceClaim from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*resourcev1beta1.ResourceClaim, error)\n\tResourceClaimNamespaceListerExpansion\n}\n\n// resourceClaimNamespaceLister implements the ResourceClaimNamespaceLister\n// interface.\ntype resourceClaimNamespaceLister struct {\n\tlisters.ResourceIndexer[*resourcev1beta1.ResourceClaim]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/resource/v1beta1/resourceclaimtemplate.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tresourcev1beta1 \"k8s.io/api/resource/v1beta1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ResourceClaimTemplateLister helps list ResourceClaimTemplates.\n// All objects returned here must be treated as read-only.\ntype ResourceClaimTemplateLister interface {\n\t// List lists all ResourceClaimTemplates in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*resourcev1beta1.ResourceClaimTemplate, err error)\n\t// ResourceClaimTemplates returns an object that can list and get ResourceClaimTemplates.\n\tResourceClaimTemplates(namespace string) ResourceClaimTemplateNamespaceLister\n\tResourceClaimTemplateListerExpansion\n}\n\n// resourceClaimTemplateLister implements the ResourceClaimTemplateLister interface.\ntype resourceClaimTemplateLister struct {\n\tlisters.ResourceIndexer[*resourcev1beta1.ResourceClaimTemplate]\n}\n\n// NewResourceClaimTemplateLister returns a new ResourceClaimTemplateLister.\nfunc NewResourceClaimTemplateLister(indexer cache.Indexer) ResourceClaimTemplateLister {\n\treturn &resourceClaimTemplateLister{listers.New[*resourcev1beta1.ResourceClaimTemplate](indexer, resourcev1beta1.Resource(\"resourceclaimtemplate\"))}\n}\n\n// ResourceClaimTemplates returns an object that can list and get ResourceClaimTemplates.\nfunc (s *resourceClaimTemplateLister) ResourceClaimTemplates(namespace string) ResourceClaimTemplateNamespaceLister {\n\treturn resourceClaimTemplateNamespaceLister{listers.NewNamespaced[*resourcev1beta1.ResourceClaimTemplate](s.ResourceIndexer, namespace)}\n}\n\n// ResourceClaimTemplateNamespaceLister helps list and get ResourceClaimTemplates.\n// All objects returned here must be treated as read-only.\ntype ResourceClaimTemplateNamespaceLister interface {\n\t// List lists all ResourceClaimTemplates in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*resourcev1beta1.ResourceClaimTemplate, err error)\n\t// Get retrieves the ResourceClaimTemplate from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*resourcev1beta1.ResourceClaimTemplate, error)\n\tResourceClaimTemplateNamespaceListerExpansion\n}\n\n// resourceClaimTemplateNamespaceLister implements the ResourceClaimTemplateNamespaceLister\n// interface.\ntype resourceClaimTemplateNamespaceLister struct {\n\tlisters.ResourceIndexer[*resourcev1beta1.ResourceClaimTemplate]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/resource/v1beta1/resourceslice.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tresourcev1beta1 \"k8s.io/api/resource/v1beta1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// ResourceSliceLister helps list ResourceSlices.\n// All objects returned here must be treated as read-only.\ntype ResourceSliceLister interface {\n\t// List lists all ResourceSlices in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*resourcev1beta1.ResourceSlice, err error)\n\t// Get retrieves the ResourceSlice from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*resourcev1beta1.ResourceSlice, error)\n\tResourceSliceListerExpansion\n}\n\n// resourceSliceLister implements the ResourceSliceLister interface.\ntype resourceSliceLister struct {\n\tlisters.ResourceIndexer[*resourcev1beta1.ResourceSlice]\n}\n\n// NewResourceSliceLister returns a new ResourceSliceLister.\nfunc NewResourceSliceLister(indexer cache.Indexer) ResourceSliceLister {\n\treturn &resourceSliceLister{listers.New[*resourcev1beta1.ResourceSlice](indexer, resourcev1beta1.Resource(\"resourceslice\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/scheduling/v1/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\n// PriorityClassListerExpansion allows custom methods to be added to\n// PriorityClassLister.\ntype PriorityClassListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/scheduling/v1/priorityclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tschedulingv1 \"k8s.io/api/scheduling/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// PriorityClassLister helps list PriorityClasses.\n// All objects returned here must be treated as read-only.\ntype PriorityClassLister interface {\n\t// List lists all PriorityClasses in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*schedulingv1.PriorityClass, err error)\n\t// Get retrieves the PriorityClass from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*schedulingv1.PriorityClass, error)\n\tPriorityClassListerExpansion\n}\n\n// priorityClassLister implements the PriorityClassLister interface.\ntype priorityClassLister struct {\n\tlisters.ResourceIndexer[*schedulingv1.PriorityClass]\n}\n\n// NewPriorityClassLister returns a new PriorityClassLister.\nfunc NewPriorityClassLister(indexer cache.Indexer) PriorityClassLister {\n\treturn &priorityClassLister{listers.New[*schedulingv1.PriorityClass](indexer, schedulingv1.Resource(\"priorityclass\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/scheduling/v1alpha1/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// PriorityClassListerExpansion allows custom methods to be added to\n// PriorityClassLister.\ntype PriorityClassListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/scheduling/v1alpha1/priorityclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tschedulingv1alpha1 \"k8s.io/api/scheduling/v1alpha1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// PriorityClassLister helps list PriorityClasses.\n// All objects returned here must be treated as read-only.\ntype PriorityClassLister interface {\n\t// List lists all PriorityClasses in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*schedulingv1alpha1.PriorityClass, err error)\n\t// Get retrieves the PriorityClass from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*schedulingv1alpha1.PriorityClass, error)\n\tPriorityClassListerExpansion\n}\n\n// priorityClassLister implements the PriorityClassLister interface.\ntype priorityClassLister struct {\n\tlisters.ResourceIndexer[*schedulingv1alpha1.PriorityClass]\n}\n\n// NewPriorityClassLister returns a new PriorityClassLister.\nfunc NewPriorityClassLister(indexer cache.Indexer) PriorityClassLister {\n\treturn &priorityClassLister{listers.New[*schedulingv1alpha1.PriorityClass](indexer, schedulingv1alpha1.Resource(\"priorityclass\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/scheduling/v1beta1/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// PriorityClassListerExpansion allows custom methods to be added to\n// PriorityClassLister.\ntype PriorityClassListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/scheduling/v1beta1/priorityclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tschedulingv1beta1 \"k8s.io/api/scheduling/v1beta1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// PriorityClassLister helps list PriorityClasses.\n// All objects returned here must be treated as read-only.\ntype PriorityClassLister interface {\n\t// List lists all PriorityClasses in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*schedulingv1beta1.PriorityClass, err error)\n\t// Get retrieves the PriorityClass from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*schedulingv1beta1.PriorityClass, error)\n\tPriorityClassListerExpansion\n}\n\n// priorityClassLister implements the PriorityClassLister interface.\ntype priorityClassLister struct {\n\tlisters.ResourceIndexer[*schedulingv1beta1.PriorityClass]\n}\n\n// NewPriorityClassLister returns a new PriorityClassLister.\nfunc NewPriorityClassLister(indexer cache.Indexer) PriorityClassLister {\n\treturn &priorityClassLister{listers.New[*schedulingv1beta1.PriorityClass](indexer, schedulingv1beta1.Resource(\"priorityclass\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/storage/v1/csidriver.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tstoragev1 \"k8s.io/api/storage/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// CSIDriverLister helps list CSIDrivers.\n// All objects returned here must be treated as read-only.\ntype CSIDriverLister interface {\n\t// List lists all CSIDrivers in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*storagev1.CSIDriver, err error)\n\t// Get retrieves the CSIDriver from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*storagev1.CSIDriver, error)\n\tCSIDriverListerExpansion\n}\n\n// cSIDriverLister implements the CSIDriverLister interface.\ntype cSIDriverLister struct {\n\tlisters.ResourceIndexer[*storagev1.CSIDriver]\n}\n\n// NewCSIDriverLister returns a new CSIDriverLister.\nfunc NewCSIDriverLister(indexer cache.Indexer) CSIDriverLister {\n\treturn &cSIDriverLister{listers.New[*storagev1.CSIDriver](indexer, storagev1.Resource(\"csidriver\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/storage/v1/csinode.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tstoragev1 \"k8s.io/api/storage/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// CSINodeLister helps list CSINodes.\n// All objects returned here must be treated as read-only.\ntype CSINodeLister interface {\n\t// List lists all CSINodes in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*storagev1.CSINode, err error)\n\t// Get retrieves the CSINode from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*storagev1.CSINode, error)\n\tCSINodeListerExpansion\n}\n\n// cSINodeLister implements the CSINodeLister interface.\ntype cSINodeLister struct {\n\tlisters.ResourceIndexer[*storagev1.CSINode]\n}\n\n// NewCSINodeLister returns a new CSINodeLister.\nfunc NewCSINodeLister(indexer cache.Indexer) CSINodeLister {\n\treturn &cSINodeLister{listers.New[*storagev1.CSINode](indexer, storagev1.Resource(\"csinode\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/storage/v1/csistoragecapacity.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tstoragev1 \"k8s.io/api/storage/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// CSIStorageCapacityLister helps list CSIStorageCapacities.\n// All objects returned here must be treated as read-only.\ntype CSIStorageCapacityLister interface {\n\t// List lists all CSIStorageCapacities in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*storagev1.CSIStorageCapacity, err error)\n\t// CSIStorageCapacities returns an object that can list and get CSIStorageCapacities.\n\tCSIStorageCapacities(namespace string) CSIStorageCapacityNamespaceLister\n\tCSIStorageCapacityListerExpansion\n}\n\n// cSIStorageCapacityLister implements the CSIStorageCapacityLister interface.\ntype cSIStorageCapacityLister struct {\n\tlisters.ResourceIndexer[*storagev1.CSIStorageCapacity]\n}\n\n// NewCSIStorageCapacityLister returns a new CSIStorageCapacityLister.\nfunc NewCSIStorageCapacityLister(indexer cache.Indexer) CSIStorageCapacityLister {\n\treturn &cSIStorageCapacityLister{listers.New[*storagev1.CSIStorageCapacity](indexer, storagev1.Resource(\"csistoragecapacity\"))}\n}\n\n// CSIStorageCapacities returns an object that can list and get CSIStorageCapacities.\nfunc (s *cSIStorageCapacityLister) CSIStorageCapacities(namespace string) CSIStorageCapacityNamespaceLister {\n\treturn cSIStorageCapacityNamespaceLister{listers.NewNamespaced[*storagev1.CSIStorageCapacity](s.ResourceIndexer, namespace)}\n}\n\n// CSIStorageCapacityNamespaceLister helps list and get CSIStorageCapacities.\n// All objects returned here must be treated as read-only.\ntype CSIStorageCapacityNamespaceLister interface {\n\t// List lists all CSIStorageCapacities in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*storagev1.CSIStorageCapacity, err error)\n\t// Get retrieves the CSIStorageCapacity from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*storagev1.CSIStorageCapacity, error)\n\tCSIStorageCapacityNamespaceListerExpansion\n}\n\n// cSIStorageCapacityNamespaceLister implements the CSIStorageCapacityNamespaceLister\n// interface.\ntype cSIStorageCapacityNamespaceLister struct {\n\tlisters.ResourceIndexer[*storagev1.CSIStorageCapacity]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/storage/v1/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\n// CSIDriverListerExpansion allows custom methods to be added to\n// CSIDriverLister.\ntype CSIDriverListerExpansion interface{}\n\n// CSINodeListerExpansion allows custom methods to be added to\n// CSINodeLister.\ntype CSINodeListerExpansion interface{}\n\n// CSIStorageCapacityListerExpansion allows custom methods to be added to\n// CSIStorageCapacityLister.\ntype CSIStorageCapacityListerExpansion interface{}\n\n// CSIStorageCapacityNamespaceListerExpansion allows custom methods to be added to\n// CSIStorageCapacityNamespaceLister.\ntype CSIStorageCapacityNamespaceListerExpansion interface{}\n\n// StorageClassListerExpansion allows custom methods to be added to\n// StorageClassLister.\ntype StorageClassListerExpansion interface{}\n\n// VolumeAttachmentListerExpansion allows custom methods to be added to\n// VolumeAttachmentLister.\ntype VolumeAttachmentListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/storage/v1/storageclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tstoragev1 \"k8s.io/api/storage/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// StorageClassLister helps list StorageClasses.\n// All objects returned here must be treated as read-only.\ntype StorageClassLister interface {\n\t// List lists all StorageClasses in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*storagev1.StorageClass, err error)\n\t// Get retrieves the StorageClass from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*storagev1.StorageClass, error)\n\tStorageClassListerExpansion\n}\n\n// storageClassLister implements the StorageClassLister interface.\ntype storageClassLister struct {\n\tlisters.ResourceIndexer[*storagev1.StorageClass]\n}\n\n// NewStorageClassLister returns a new StorageClassLister.\nfunc NewStorageClassLister(indexer cache.Indexer) StorageClassLister {\n\treturn &storageClassLister{listers.New[*storagev1.StorageClass](indexer, storagev1.Resource(\"storageclass\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/storage/v1/volumeattachment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tstoragev1 \"k8s.io/api/storage/v1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// VolumeAttachmentLister helps list VolumeAttachments.\n// All objects returned here must be treated as read-only.\ntype VolumeAttachmentLister interface {\n\t// List lists all VolumeAttachments in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*storagev1.VolumeAttachment, err error)\n\t// Get retrieves the VolumeAttachment from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*storagev1.VolumeAttachment, error)\n\tVolumeAttachmentListerExpansion\n}\n\n// volumeAttachmentLister implements the VolumeAttachmentLister interface.\ntype volumeAttachmentLister struct {\n\tlisters.ResourceIndexer[*storagev1.VolumeAttachment]\n}\n\n// NewVolumeAttachmentLister returns a new VolumeAttachmentLister.\nfunc NewVolumeAttachmentLister(indexer cache.Indexer) VolumeAttachmentLister {\n\treturn &volumeAttachmentLister{listers.New[*storagev1.VolumeAttachment](indexer, storagev1.Resource(\"volumeattachment\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/storage/v1alpha1/csistoragecapacity.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tstoragev1alpha1 \"k8s.io/api/storage/v1alpha1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// CSIStorageCapacityLister helps list CSIStorageCapacities.\n// All objects returned here must be treated as read-only.\ntype CSIStorageCapacityLister interface {\n\t// List lists all CSIStorageCapacities in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*storagev1alpha1.CSIStorageCapacity, err error)\n\t// CSIStorageCapacities returns an object that can list and get CSIStorageCapacities.\n\tCSIStorageCapacities(namespace string) CSIStorageCapacityNamespaceLister\n\tCSIStorageCapacityListerExpansion\n}\n\n// cSIStorageCapacityLister implements the CSIStorageCapacityLister interface.\ntype cSIStorageCapacityLister struct {\n\tlisters.ResourceIndexer[*storagev1alpha1.CSIStorageCapacity]\n}\n\n// NewCSIStorageCapacityLister returns a new CSIStorageCapacityLister.\nfunc NewCSIStorageCapacityLister(indexer cache.Indexer) CSIStorageCapacityLister {\n\treturn &cSIStorageCapacityLister{listers.New[*storagev1alpha1.CSIStorageCapacity](indexer, storagev1alpha1.Resource(\"csistoragecapacity\"))}\n}\n\n// CSIStorageCapacities returns an object that can list and get CSIStorageCapacities.\nfunc (s *cSIStorageCapacityLister) CSIStorageCapacities(namespace string) CSIStorageCapacityNamespaceLister {\n\treturn cSIStorageCapacityNamespaceLister{listers.NewNamespaced[*storagev1alpha1.CSIStorageCapacity](s.ResourceIndexer, namespace)}\n}\n\n// CSIStorageCapacityNamespaceLister helps list and get CSIStorageCapacities.\n// All objects returned here must be treated as read-only.\ntype CSIStorageCapacityNamespaceLister interface {\n\t// List lists all CSIStorageCapacities in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*storagev1alpha1.CSIStorageCapacity, err error)\n\t// Get retrieves the CSIStorageCapacity from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*storagev1alpha1.CSIStorageCapacity, error)\n\tCSIStorageCapacityNamespaceListerExpansion\n}\n\n// cSIStorageCapacityNamespaceLister implements the CSIStorageCapacityNamespaceLister\n// interface.\ntype cSIStorageCapacityNamespaceLister struct {\n\tlisters.ResourceIndexer[*storagev1alpha1.CSIStorageCapacity]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/storage/v1alpha1/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// CSIStorageCapacityListerExpansion allows custom methods to be added to\n// CSIStorageCapacityLister.\ntype CSIStorageCapacityListerExpansion interface{}\n\n// CSIStorageCapacityNamespaceListerExpansion allows custom methods to be added to\n// CSIStorageCapacityNamespaceLister.\ntype CSIStorageCapacityNamespaceListerExpansion interface{}\n\n// VolumeAttachmentListerExpansion allows custom methods to be added to\n// VolumeAttachmentLister.\ntype VolumeAttachmentListerExpansion interface{}\n\n// VolumeAttributesClassListerExpansion allows custom methods to be added to\n// VolumeAttributesClassLister.\ntype VolumeAttributesClassListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/storage/v1alpha1/volumeattachment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tstoragev1alpha1 \"k8s.io/api/storage/v1alpha1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// VolumeAttachmentLister helps list VolumeAttachments.\n// All objects returned here must be treated as read-only.\ntype VolumeAttachmentLister interface {\n\t// List lists all VolumeAttachments in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*storagev1alpha1.VolumeAttachment, err error)\n\t// Get retrieves the VolumeAttachment from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*storagev1alpha1.VolumeAttachment, error)\n\tVolumeAttachmentListerExpansion\n}\n\n// volumeAttachmentLister implements the VolumeAttachmentLister interface.\ntype volumeAttachmentLister struct {\n\tlisters.ResourceIndexer[*storagev1alpha1.VolumeAttachment]\n}\n\n// NewVolumeAttachmentLister returns a new VolumeAttachmentLister.\nfunc NewVolumeAttachmentLister(indexer cache.Indexer) VolumeAttachmentLister {\n\treturn &volumeAttachmentLister{listers.New[*storagev1alpha1.VolumeAttachment](indexer, storagev1alpha1.Resource(\"volumeattachment\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/storage/v1alpha1/volumeattributesclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tstoragev1alpha1 \"k8s.io/api/storage/v1alpha1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// VolumeAttributesClassLister helps list VolumeAttributesClasses.\n// All objects returned here must be treated as read-only.\ntype VolumeAttributesClassLister interface {\n\t// List lists all VolumeAttributesClasses in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*storagev1alpha1.VolumeAttributesClass, err error)\n\t// Get retrieves the VolumeAttributesClass from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*storagev1alpha1.VolumeAttributesClass, error)\n\tVolumeAttributesClassListerExpansion\n}\n\n// volumeAttributesClassLister implements the VolumeAttributesClassLister interface.\ntype volumeAttributesClassLister struct {\n\tlisters.ResourceIndexer[*storagev1alpha1.VolumeAttributesClass]\n}\n\n// NewVolumeAttributesClassLister returns a new VolumeAttributesClassLister.\nfunc NewVolumeAttributesClassLister(indexer cache.Indexer) VolumeAttributesClassLister {\n\treturn &volumeAttributesClassLister{listers.New[*storagev1alpha1.VolumeAttributesClass](indexer, storagev1alpha1.Resource(\"volumeattributesclass\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/storage/v1beta1/csidriver.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tstoragev1beta1 \"k8s.io/api/storage/v1beta1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// CSIDriverLister helps list CSIDrivers.\n// All objects returned here must be treated as read-only.\ntype CSIDriverLister interface {\n\t// List lists all CSIDrivers in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*storagev1beta1.CSIDriver, err error)\n\t// Get retrieves the CSIDriver from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*storagev1beta1.CSIDriver, error)\n\tCSIDriverListerExpansion\n}\n\n// cSIDriverLister implements the CSIDriverLister interface.\ntype cSIDriverLister struct {\n\tlisters.ResourceIndexer[*storagev1beta1.CSIDriver]\n}\n\n// NewCSIDriverLister returns a new CSIDriverLister.\nfunc NewCSIDriverLister(indexer cache.Indexer) CSIDriverLister {\n\treturn &cSIDriverLister{listers.New[*storagev1beta1.CSIDriver](indexer, storagev1beta1.Resource(\"csidriver\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/storage/v1beta1/csinode.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tstoragev1beta1 \"k8s.io/api/storage/v1beta1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// CSINodeLister helps list CSINodes.\n// All objects returned here must be treated as read-only.\ntype CSINodeLister interface {\n\t// List lists all CSINodes in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*storagev1beta1.CSINode, err error)\n\t// Get retrieves the CSINode from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*storagev1beta1.CSINode, error)\n\tCSINodeListerExpansion\n}\n\n// cSINodeLister implements the CSINodeLister interface.\ntype cSINodeLister struct {\n\tlisters.ResourceIndexer[*storagev1beta1.CSINode]\n}\n\n// NewCSINodeLister returns a new CSINodeLister.\nfunc NewCSINodeLister(indexer cache.Indexer) CSINodeLister {\n\treturn &cSINodeLister{listers.New[*storagev1beta1.CSINode](indexer, storagev1beta1.Resource(\"csinode\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/storage/v1beta1/csistoragecapacity.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tstoragev1beta1 \"k8s.io/api/storage/v1beta1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// CSIStorageCapacityLister helps list CSIStorageCapacities.\n// All objects returned here must be treated as read-only.\ntype CSIStorageCapacityLister interface {\n\t// List lists all CSIStorageCapacities in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*storagev1beta1.CSIStorageCapacity, err error)\n\t// CSIStorageCapacities returns an object that can list and get CSIStorageCapacities.\n\tCSIStorageCapacities(namespace string) CSIStorageCapacityNamespaceLister\n\tCSIStorageCapacityListerExpansion\n}\n\n// cSIStorageCapacityLister implements the CSIStorageCapacityLister interface.\ntype cSIStorageCapacityLister struct {\n\tlisters.ResourceIndexer[*storagev1beta1.CSIStorageCapacity]\n}\n\n// NewCSIStorageCapacityLister returns a new CSIStorageCapacityLister.\nfunc NewCSIStorageCapacityLister(indexer cache.Indexer) CSIStorageCapacityLister {\n\treturn &cSIStorageCapacityLister{listers.New[*storagev1beta1.CSIStorageCapacity](indexer, storagev1beta1.Resource(\"csistoragecapacity\"))}\n}\n\n// CSIStorageCapacities returns an object that can list and get CSIStorageCapacities.\nfunc (s *cSIStorageCapacityLister) CSIStorageCapacities(namespace string) CSIStorageCapacityNamespaceLister {\n\treturn cSIStorageCapacityNamespaceLister{listers.NewNamespaced[*storagev1beta1.CSIStorageCapacity](s.ResourceIndexer, namespace)}\n}\n\n// CSIStorageCapacityNamespaceLister helps list and get CSIStorageCapacities.\n// All objects returned here must be treated as read-only.\ntype CSIStorageCapacityNamespaceLister interface {\n\t// List lists all CSIStorageCapacities in the indexer for a given namespace.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*storagev1beta1.CSIStorageCapacity, err error)\n\t// Get retrieves the CSIStorageCapacity from the indexer for a given namespace and name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*storagev1beta1.CSIStorageCapacity, error)\n\tCSIStorageCapacityNamespaceListerExpansion\n}\n\n// cSIStorageCapacityNamespaceLister implements the CSIStorageCapacityNamespaceLister\n// interface.\ntype cSIStorageCapacityNamespaceLister struct {\n\tlisters.ResourceIndexer[*storagev1beta1.CSIStorageCapacity]\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/storage/v1beta1/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\n// CSIDriverListerExpansion allows custom methods to be added to\n// CSIDriverLister.\ntype CSIDriverListerExpansion interface{}\n\n// CSINodeListerExpansion allows custom methods to be added to\n// CSINodeLister.\ntype CSINodeListerExpansion interface{}\n\n// CSIStorageCapacityListerExpansion allows custom methods to be added to\n// CSIStorageCapacityLister.\ntype CSIStorageCapacityListerExpansion interface{}\n\n// CSIStorageCapacityNamespaceListerExpansion allows custom methods to be added to\n// CSIStorageCapacityNamespaceLister.\ntype CSIStorageCapacityNamespaceListerExpansion interface{}\n\n// StorageClassListerExpansion allows custom methods to be added to\n// StorageClassLister.\ntype StorageClassListerExpansion interface{}\n\n// VolumeAttachmentListerExpansion allows custom methods to be added to\n// VolumeAttachmentLister.\ntype VolumeAttachmentListerExpansion interface{}\n\n// VolumeAttributesClassListerExpansion allows custom methods to be added to\n// VolumeAttributesClassLister.\ntype VolumeAttributesClassListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/storage/v1beta1/storageclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tstoragev1beta1 \"k8s.io/api/storage/v1beta1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// StorageClassLister helps list StorageClasses.\n// All objects returned here must be treated as read-only.\ntype StorageClassLister interface {\n\t// List lists all StorageClasses in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*storagev1beta1.StorageClass, err error)\n\t// Get retrieves the StorageClass from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*storagev1beta1.StorageClass, error)\n\tStorageClassListerExpansion\n}\n\n// storageClassLister implements the StorageClassLister interface.\ntype storageClassLister struct {\n\tlisters.ResourceIndexer[*storagev1beta1.StorageClass]\n}\n\n// NewStorageClassLister returns a new StorageClassLister.\nfunc NewStorageClassLister(indexer cache.Indexer) StorageClassLister {\n\treturn &storageClassLister{listers.New[*storagev1beta1.StorageClass](indexer, storagev1beta1.Resource(\"storageclass\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/storage/v1beta1/volumeattachment.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tstoragev1beta1 \"k8s.io/api/storage/v1beta1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// VolumeAttachmentLister helps list VolumeAttachments.\n// All objects returned here must be treated as read-only.\ntype VolumeAttachmentLister interface {\n\t// List lists all VolumeAttachments in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*storagev1beta1.VolumeAttachment, err error)\n\t// Get retrieves the VolumeAttachment from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*storagev1beta1.VolumeAttachment, error)\n\tVolumeAttachmentListerExpansion\n}\n\n// volumeAttachmentLister implements the VolumeAttachmentLister interface.\ntype volumeAttachmentLister struct {\n\tlisters.ResourceIndexer[*storagev1beta1.VolumeAttachment]\n}\n\n// NewVolumeAttachmentLister returns a new VolumeAttachmentLister.\nfunc NewVolumeAttachmentLister(indexer cache.Indexer) VolumeAttachmentLister {\n\treturn &volumeAttachmentLister{listers.New[*storagev1beta1.VolumeAttachment](indexer, storagev1beta1.Resource(\"volumeattachment\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/storage/v1beta1/volumeattributesclass.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tstoragev1beta1 \"k8s.io/api/storage/v1beta1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// VolumeAttributesClassLister helps list VolumeAttributesClasses.\n// All objects returned here must be treated as read-only.\ntype VolumeAttributesClassLister interface {\n\t// List lists all VolumeAttributesClasses in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*storagev1beta1.VolumeAttributesClass, err error)\n\t// Get retrieves the VolumeAttributesClass from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*storagev1beta1.VolumeAttributesClass, error)\n\tVolumeAttributesClassListerExpansion\n}\n\n// volumeAttributesClassLister implements the VolumeAttributesClassLister interface.\ntype volumeAttributesClassLister struct {\n\tlisters.ResourceIndexer[*storagev1beta1.VolumeAttributesClass]\n}\n\n// NewVolumeAttributesClassLister returns a new VolumeAttributesClassLister.\nfunc NewVolumeAttributesClassLister(indexer cache.Indexer) VolumeAttributesClassLister {\n\treturn &volumeAttributesClassLister{listers.New[*storagev1beta1.VolumeAttributesClass](indexer, storagev1beta1.Resource(\"volumeattributesclass\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/storagemigration/v1alpha1/expansion_generated.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1alpha1\n\n// StorageVersionMigrationListerExpansion allows custom methods to be added to\n// StorageVersionMigrationLister.\ntype StorageVersionMigrationListerExpansion interface{}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/listers/storagemigration/v1alpha1/storageversionmigration.go",
    "content": "/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by lister-gen. DO NOT EDIT.\n\npackage v1alpha1\n\nimport (\n\tstoragemigrationv1alpha1 \"k8s.io/api/storagemigration/v1alpha1\"\n\tlabels \"k8s.io/apimachinery/pkg/labels\"\n\tlisters \"k8s.io/client-go/listers\"\n\tcache \"k8s.io/client-go/tools/cache\"\n)\n\n// StorageVersionMigrationLister helps list StorageVersionMigrations.\n// All objects returned here must be treated as read-only.\ntype StorageVersionMigrationLister interface {\n\t// List lists all StorageVersionMigrations in the indexer.\n\t// Objects returned here must be treated as read-only.\n\tList(selector labels.Selector) (ret []*storagemigrationv1alpha1.StorageVersionMigration, err error)\n\t// Get retrieves the StorageVersionMigration from the index for a given name.\n\t// Objects returned here must be treated as read-only.\n\tGet(name string) (*storagemigrationv1alpha1.StorageVersionMigration, error)\n\tStorageVersionMigrationListerExpansion\n}\n\n// storageVersionMigrationLister implements the StorageVersionMigrationLister interface.\ntype storageVersionMigrationLister struct {\n\tlisters.ResourceIndexer[*storagemigrationv1alpha1.StorageVersionMigration]\n}\n\n// NewStorageVersionMigrationLister returns a new StorageVersionMigrationLister.\nfunc NewStorageVersionMigrationLister(indexer cache.Indexer) StorageVersionMigrationLister {\n\treturn &storageVersionMigrationLister{listers.New[*storagemigrationv1alpha1.StorageVersionMigration](indexer, storagemigrationv1alpha1.Resource(\"storageversionmigration\"))}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/openapi/OWNERS",
    "content": "# See the OWNERS docs at https://go.k8s.io/owners\n\napprovers:\n  - apelisse\n"
  },
  {
    "path": "vendor/k8s.io/client-go/openapi/client.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage openapi\n\nimport (\n\t\"context\"\n\t\"encoding/json\"\n\t\"strings\"\n\n\t\"k8s.io/client-go/rest\"\n\t\"k8s.io/kube-openapi/pkg/handler3\"\n)\n\ntype Client interface {\n\tPaths() (map[string]GroupVersion, error)\n}\n\ntype client struct {\n\t// URL includes the `hash` query param to take advantage of cache busting\n\trestClient rest.Interface\n}\n\nfunc NewClient(restClient rest.Interface) Client {\n\treturn &client{\n\t\trestClient: restClient,\n\t}\n}\n\nfunc (c *client) Paths() (map[string]GroupVersion, error) {\n\tdata, err := c.restClient.Get().\n\t\tAbsPath(\"/openapi/v3\").\n\t\tDo(context.TODO()).\n\t\tRaw()\n\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tdiscoMap := &handler3.OpenAPIV3Discovery{}\n\terr = json.Unmarshal(data, discoMap)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Create GroupVersions for each element of the result\n\tresult := map[string]GroupVersion{}\n\tfor k, v := range discoMap.Paths {\n\t\t// If the server returned a URL rooted at /openapi/v3, preserve any additional client-side prefix.\n\t\t// If the server returned a URL not rooted at /openapi/v3, treat it as an actual server-relative URL.\n\t\t// See https://github.com/kubernetes/kubernetes/issues/117463 for details\n\t\tuseClientPrefix := strings.HasPrefix(v.ServerRelativeURL, \"/openapi/v3\")\n\t\tresult[k] = newGroupVersion(c, v, useClientPrefix)\n\t}\n\treturn result, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/openapi/groupversion.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage openapi\n\nimport (\n\t\"context\"\n\t\"net/url\"\n\n\t\"k8s.io/kube-openapi/pkg/handler3\"\n)\n\nconst ContentTypeOpenAPIV3PB = \"application/com.github.proto-openapi.spec.v3@v1.0+protobuf\"\n\ntype GroupVersion interface {\n\tSchema(contentType string) ([]byte, error)\n\n\t// ServerRelativeURL. Returns the path and parameters used to fetch the schema.\n\t// You should use the Schema method to fetch it, but this value can be used\n\t// to key the current version of the schema in a cache since it contains a\n\t// hash string which changes upon schema update.\n\tServerRelativeURL() string\n}\n\ntype groupversion struct {\n\tclient          *client\n\titem            handler3.OpenAPIV3DiscoveryGroupVersion\n\tuseClientPrefix bool\n}\n\nfunc newGroupVersion(client *client, item handler3.OpenAPIV3DiscoveryGroupVersion, useClientPrefix bool) *groupversion {\n\treturn &groupversion{client: client, item: item, useClientPrefix: useClientPrefix}\n}\n\nfunc (g *groupversion) Schema(contentType string) ([]byte, error) {\n\tif !g.useClientPrefix {\n\t\treturn g.client.restClient.Get().\n\t\t\tRequestURI(g.item.ServerRelativeURL).\n\t\t\tSetHeader(\"Accept\", contentType).\n\t\t\tDo(context.TODO()).\n\t\t\tRaw()\n\t}\n\n\tlocator, err := url.Parse(g.item.ServerRelativeURL)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tpath := g.client.restClient.Get().\n\t\tAbsPath(locator.Path).\n\t\tSetHeader(\"Accept\", contentType)\n\n\t// Other than root endpoints(openapiv3/apis), resources have hash query parameter to support etags.\n\t// However, absPath does not support handling query parameters internally,\n\t// so that hash query parameter is added manually\n\tfor k, value := range locator.Query() {\n\t\tfor _, v := range value {\n\t\t\tpath.Param(k, v)\n\t\t}\n\t}\n\n\treturn path.Do(context.TODO()).Raw()\n}\n\n// URL used for fetching the schema. The URL includes a hash and can be used\n// to key the current version of the schema in a cache.\nfunc (g *groupversion) ServerRelativeURL() string {\n\treturn g.item.ServerRelativeURL\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/openapi/typeconverter.go",
    "content": "/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage openapi\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"k8s.io/apimachinery/pkg/util/managedfields\"\n\t\"k8s.io/kube-openapi/pkg/spec3\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\nfunc NewTypeConverter(client Client, preserveUnknownFields bool) (managedfields.TypeConverter, error) {\n\tspec := map[string]*spec.Schema{}\n\tpaths, err := client.Paths()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to list paths: %w\", err)\n\t}\n\tfor _, gv := range paths {\n\t\ts, err := gv.Schema(\"application/json\")\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to download schema: %w\", err)\n\t\t}\n\t\tvar openapi spec3.OpenAPI\n\t\tif err := json.Unmarshal(s, &openapi); err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to parse schema: %w\", err)\n\t\t}\n\t\tfor k, v := range openapi.Components.Schemas {\n\t\t\tspec[k] = v\n\t\t}\n\t}\n\treturn managedfields.NewTypeConverter(spec, preserveUnknownFields)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/pkg/apis/clientauthentication/OWNERS",
    "content": "# See the OWNERS docs at https://go.k8s.io/owners\n\n# approval on api packages bubbles to api-approvers\nreviewers:\n  - sig-auth-authenticators-approvers\n  - sig-auth-authenticators-reviewers\nlabels:\n  - sig/auth\n"
  },
  {
    "path": "vendor/k8s.io/client-go/pkg/apis/clientauthentication/doc.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +groupName=client.authentication.k8s.io\n\npackage clientauthentication // import \"k8s.io/client-go/pkg/apis/clientauthentication\"\n"
  },
  {
    "path": "vendor/k8s.io/client-go/pkg/apis/clientauthentication/install/install.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package install installs the experimental API group, making it available as\n// an option to all of the API encoding/decoding machinery.\npackage install\n\nimport (\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\tutilruntime \"k8s.io/apimachinery/pkg/util/runtime\"\n\t\"k8s.io/client-go/pkg/apis/clientauthentication\"\n\t\"k8s.io/client-go/pkg/apis/clientauthentication/v1\"\n\t\"k8s.io/client-go/pkg/apis/clientauthentication/v1beta1\"\n)\n\n// Install registers the API group and adds types to a scheme\nfunc Install(scheme *runtime.Scheme) {\n\tutilruntime.Must(clientauthentication.AddToScheme(scheme))\n\tutilruntime.Must(v1.AddToScheme(scheme))\n\tutilruntime.Must(v1beta1.AddToScheme(scheme))\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/pkg/apis/clientauthentication/register.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage clientauthentication\n\nimport (\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"client.authentication.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal}\n\n// Kind takes an unqualified kind and returns a Group qualified GroupKind\nfunc Kind(kind string) schema.GroupKind {\n\treturn SchemeGroupVersion.WithKind(kind).GroupKind()\n}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\tSchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)\n\tAddToScheme   = SchemeBuilder.AddToScheme\n)\n\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&ExecCredential{},\n\t)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/pkg/apis/clientauthentication/types.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage clientauthentication\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// ExecCredential is used by exec-based plugins to communicate credentials to\n// HTTP transports.\ntype ExecCredential struct {\n\tmetav1.TypeMeta\n\n\t// Spec holds information passed to the plugin by the transport. This contains\n\t// request and runtime specific information, such as if the session is interactive.\n\tSpec ExecCredentialSpec\n\n\t// Status is filled in by the plugin and holds the credentials that the transport\n\t// should use to contact the API.\n\t// +optional\n\tStatus *ExecCredentialStatus\n}\n\n// ExecCredentialSpec holds request and runtime specific information provided by\n// the transport.\ntype ExecCredentialSpec struct {\n\t// Interactive is true when the transport detects the command is being called from an\n\t// interactive prompt, i.e., when stdin has been passed to this exec plugin.\n\t// +optional\n\tInteractive bool\n\n\t// Cluster contains information to allow an exec plugin to communicate with the\n\t// kubernetes cluster being authenticated to. Note that Cluster is non-nil only\n\t// when provideClusterInfo is set to true in the exec provider config (i.e.,\n\t// ExecConfig.ProvideClusterInfo).\n\t// +optional\n\tCluster *Cluster\n}\n\n// ExecCredentialStatus holds credentials for the transport to use.\ntype ExecCredentialStatus struct {\n\t// ExpirationTimestamp indicates a time when the provided credentials expire.\n\t// +optional\n\tExpirationTimestamp *metav1.Time\n\t// Token is a bearer token used by the client for request authentication.\n\t// +optional\n\tToken string `datapolicy:\"token\"`\n\t// PEM-encoded client TLS certificate.\n\t// +optional\n\tClientCertificateData string\n\t// PEM-encoded client TLS private key.\n\t// +optional\n\tClientKeyData string `datapolicy:\"secret-key\"`\n}\n\n// Cluster contains information to allow an exec plugin to communicate\n// with the kubernetes cluster being authenticated to.\n//\n// To ensure that this struct contains everything someone would need to communicate\n// with a kubernetes cluster (just like they would via a kubeconfig), the fields\n// should shadow \"k8s.io/client-go/tools/clientcmd/api/v1\".Cluster, with the exception\n// of CertificateAuthority, since CA data will always be passed to the plugin as bytes.\ntype Cluster struct {\n\t// Server is the address of the kubernetes cluster (https://hostname:port).\n\tServer string\n\t// TLSServerName is passed to the server for SNI and is used in the client to\n\t// check server certificates against. If ServerName is empty, the hostname\n\t// used to contact the server is used.\n\t// +optional\n\tTLSServerName string\n\t// InsecureSkipTLSVerify skips the validity check for the server's certificate.\n\t// This will make your HTTPS connections insecure.\n\t// +optional\n\tInsecureSkipTLSVerify bool\n\t// CAData contains PEM-encoded certificate authority certificates.\n\t// If empty, system roots should be used.\n\t// +listType=atomic\n\t// +optional\n\tCertificateAuthorityData []byte\n\t// ProxyURL is the URL to the proxy to be used for all requests to this\n\t// cluster.\n\t// +optional\n\tProxyURL string\n\t// DisableCompression allows client to opt-out of response compression for all requests to the server. This is useful\n\t// to speed up requests (specifically lists) when client-server network bandwidth is ample, by saving time on\n\t// compression (server-side) and decompression (client-side): https://github.com/kubernetes/kubernetes/issues/112296.\n\t// +optional\n\tDisableCompression bool\n\t// Config holds additional config data that is specific to the exec\n\t// plugin with regards to the cluster being authenticated to.\n\t//\n\t// This data is sourced from the clientcmd Cluster object's\n\t// extensions[client.authentication.k8s.io/exec] field:\n\t//\n\t// clusters:\n\t// - name: my-cluster\n\t//   cluster:\n\t//     ...\n\t//     extensions:\n\t//     - name: client.authentication.k8s.io/exec  # reserved extension name for per cluster exec config\n\t//       extension:\n\t//         audience: 06e3fbd18de8  # arbitrary config\n\t//\n\t// In some environments, the user config may be exactly the same across many clusters\n\t// (i.e. call this exec plugin) minus some details that are specific to each cluster\n\t// such as the audience.  This field allows the per cluster config to be directly\n\t// specified with the cluster info.  Using this field to store secret data is not\n\t// recommended as one of the prime benefits of exec plugins is that no secrets need\n\t// to be stored directly in the kubeconfig.\n\t// +optional\n\tConfig runtime.Object\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1/doc.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:conversion-gen=k8s.io/client-go/pkg/apis/clientauthentication\n// +k8s:openapi-gen=true\n// +k8s:defaulter-gen=TypeMeta\n\n// +groupName=client.authentication.k8s.io\n\npackage v1 // import \"k8s.io/client-go/pkg/apis/clientauthentication/v1\"\n"
  },
  {
    "path": "vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1/register.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"client.authentication.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\tSchemeBuilder      runtime.SchemeBuilder\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\nfunc init() {\n\t// We only register manually written functions here. The registration of the\n\t// generated functions takes place in the generated files. The separation\n\t// makes the code compile even when the generated files are missing.\n\tlocalSchemeBuilder.Register(addKnownTypes)\n}\n\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&ExecCredential{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1/types.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// ExecCredential is used by exec-based plugins to communicate credentials to\n// HTTP transports.\ntype ExecCredential struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Spec holds information passed to the plugin by the transport.\n\tSpec ExecCredentialSpec `json:\"spec,omitempty\"`\n\n\t// Status is filled in by the plugin and holds the credentials that the transport\n\t// should use to contact the API.\n\t// +optional\n\tStatus *ExecCredentialStatus `json:\"status,omitempty\"`\n}\n\n// ExecCredentialSpec holds request and runtime specific information provided by\n// the transport.\ntype ExecCredentialSpec struct {\n\t// Cluster contains information to allow an exec plugin to communicate with the\n\t// kubernetes cluster being authenticated to. Note that Cluster is non-nil only\n\t// when provideClusterInfo is set to true in the exec provider config (i.e.,\n\t// ExecConfig.ProvideClusterInfo).\n\t// +optional\n\tCluster *Cluster `json:\"cluster,omitempty\"`\n\n\t// Interactive declares whether stdin has been passed to this exec plugin.\n\tInteractive bool `json:\"interactive\"`\n}\n\n// ExecCredentialStatus holds credentials for the transport to use.\n//\n// Token and ClientKeyData are sensitive fields. This data should only be\n// transmitted in-memory between client and exec plugin process. Exec plugin\n// itself should at least be protected via file permissions.\ntype ExecCredentialStatus struct {\n\t// ExpirationTimestamp indicates a time when the provided credentials expire.\n\t// +optional\n\tExpirationTimestamp *metav1.Time `json:\"expirationTimestamp,omitempty\"`\n\t// Token is a bearer token used by the client for request authentication.\n\tToken string `json:\"token,omitempty\" datapolicy:\"token\"`\n\t// PEM-encoded client TLS certificates (including intermediates, if any).\n\tClientCertificateData string `json:\"clientCertificateData,omitempty\"`\n\t// PEM-encoded private key for the above certificate.\n\tClientKeyData string `json:\"clientKeyData,omitempty\" datapolicy:\"security-key\"`\n}\n\n// Cluster contains information to allow an exec plugin to communicate\n// with the kubernetes cluster being authenticated to.\n//\n// To ensure that this struct contains everything someone would need to communicate\n// with a kubernetes cluster (just like they would via a kubeconfig), the fields\n// should shadow \"k8s.io/client-go/tools/clientcmd/api/v1\".Cluster, with the exception\n// of CertificateAuthority, since CA data will always be passed to the plugin as bytes.\ntype Cluster struct {\n\t// Server is the address of the kubernetes cluster (https://hostname:port).\n\tServer string `json:\"server\"`\n\t// TLSServerName is passed to the server for SNI and is used in the client to\n\t// check server certificates against. If ServerName is empty, the hostname\n\t// used to contact the server is used.\n\t// +optional\n\tTLSServerName string `json:\"tls-server-name,omitempty\"`\n\t// InsecureSkipTLSVerify skips the validity check for the server's certificate.\n\t// This will make your HTTPS connections insecure.\n\t// +optional\n\tInsecureSkipTLSVerify bool `json:\"insecure-skip-tls-verify,omitempty\"`\n\t// CAData contains PEM-encoded certificate authority certificates.\n\t// If empty, system roots should be used.\n\t// +listType=atomic\n\t// +optional\n\tCertificateAuthorityData []byte `json:\"certificate-authority-data,omitempty\"`\n\t// ProxyURL is the URL to the proxy to be used for all requests to this\n\t// cluster.\n\t// +optional\n\tProxyURL string `json:\"proxy-url,omitempty\"`\n\t// DisableCompression allows client to opt-out of response compression for all requests to the server. This is useful\n\t// to speed up requests (specifically lists) when client-server network bandwidth is ample, by saving time on\n\t// compression (server-side) and decompression (client-side): https://github.com/kubernetes/kubernetes/issues/112296.\n\t// +optional\n\tDisableCompression bool `json:\"disable-compression,omitempty\"`\n\t// Config holds additional config data that is specific to the exec\n\t// plugin with regards to the cluster being authenticated to.\n\t//\n\t// This data is sourced from the clientcmd Cluster object's\n\t// extensions[client.authentication.k8s.io/exec] field:\n\t//\n\t// clusters:\n\t// - name: my-cluster\n\t//   cluster:\n\t//     ...\n\t//     extensions:\n\t//     - name: client.authentication.k8s.io/exec  # reserved extension name for per cluster exec config\n\t//       extension:\n\t//         audience: 06e3fbd18de8  # arbitrary config\n\t//\n\t// In some environments, the user config may be exactly the same across many clusters\n\t// (i.e. call this exec plugin) minus some details that are specific to each cluster\n\t// such as the audience.  This field allows the per cluster config to be directly\n\t// specified with the cluster info.  Using this field to store secret data is not\n\t// recommended as one of the prime benefits of exec plugins is that no secrets need\n\t// to be stored directly in the kubeconfig.\n\t// +optional\n\tConfig runtime.RawExtension `json:\"config,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1/zz_generated.conversion.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by conversion-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\tunsafe \"unsafe\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tconversion \"k8s.io/apimachinery/pkg/conversion\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\tclientauthentication \"k8s.io/client-go/pkg/apis/clientauthentication\"\n)\n\nfunc init() {\n\tlocalSchemeBuilder.Register(RegisterConversions)\n}\n\n// RegisterConversions adds conversion functions to the given scheme.\n// Public to allow building arbitrary schemes.\nfunc RegisterConversions(s *runtime.Scheme) error {\n\tif err := s.AddGeneratedConversionFunc((*Cluster)(nil), (*clientauthentication.Cluster)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_v1_Cluster_To_clientauthentication_Cluster(a.(*Cluster), b.(*clientauthentication.Cluster), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*clientauthentication.Cluster)(nil), (*Cluster)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_clientauthentication_Cluster_To_v1_Cluster(a.(*clientauthentication.Cluster), b.(*Cluster), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*ExecCredential)(nil), (*clientauthentication.ExecCredential)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_v1_ExecCredential_To_clientauthentication_ExecCredential(a.(*ExecCredential), b.(*clientauthentication.ExecCredential), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*clientauthentication.ExecCredential)(nil), (*ExecCredential)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_clientauthentication_ExecCredential_To_v1_ExecCredential(a.(*clientauthentication.ExecCredential), b.(*ExecCredential), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*ExecCredentialSpec)(nil), (*clientauthentication.ExecCredentialSpec)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_v1_ExecCredentialSpec_To_clientauthentication_ExecCredentialSpec(a.(*ExecCredentialSpec), b.(*clientauthentication.ExecCredentialSpec), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*clientauthentication.ExecCredentialSpec)(nil), (*ExecCredentialSpec)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_clientauthentication_ExecCredentialSpec_To_v1_ExecCredentialSpec(a.(*clientauthentication.ExecCredentialSpec), b.(*ExecCredentialSpec), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*ExecCredentialStatus)(nil), (*clientauthentication.ExecCredentialStatus)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_v1_ExecCredentialStatus_To_clientauthentication_ExecCredentialStatus(a.(*ExecCredentialStatus), b.(*clientauthentication.ExecCredentialStatus), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*clientauthentication.ExecCredentialStatus)(nil), (*ExecCredentialStatus)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_clientauthentication_ExecCredentialStatus_To_v1_ExecCredentialStatus(a.(*clientauthentication.ExecCredentialStatus), b.(*ExecCredentialStatus), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc autoConvert_v1_Cluster_To_clientauthentication_Cluster(in *Cluster, out *clientauthentication.Cluster, s conversion.Scope) error {\n\tout.Server = in.Server\n\tout.TLSServerName = in.TLSServerName\n\tout.InsecureSkipTLSVerify = in.InsecureSkipTLSVerify\n\tout.CertificateAuthorityData = *(*[]byte)(unsafe.Pointer(&in.CertificateAuthorityData))\n\tout.ProxyURL = in.ProxyURL\n\tout.DisableCompression = in.DisableCompression\n\tif err := runtime.Convert_runtime_RawExtension_To_runtime_Object(&in.Config, &out.Config, s); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// Convert_v1_Cluster_To_clientauthentication_Cluster is an autogenerated conversion function.\nfunc Convert_v1_Cluster_To_clientauthentication_Cluster(in *Cluster, out *clientauthentication.Cluster, s conversion.Scope) error {\n\treturn autoConvert_v1_Cluster_To_clientauthentication_Cluster(in, out, s)\n}\n\nfunc autoConvert_clientauthentication_Cluster_To_v1_Cluster(in *clientauthentication.Cluster, out *Cluster, s conversion.Scope) error {\n\tout.Server = in.Server\n\tout.TLSServerName = in.TLSServerName\n\tout.InsecureSkipTLSVerify = in.InsecureSkipTLSVerify\n\tout.CertificateAuthorityData = *(*[]byte)(unsafe.Pointer(&in.CertificateAuthorityData))\n\tout.ProxyURL = in.ProxyURL\n\tout.DisableCompression = in.DisableCompression\n\tif err := runtime.Convert_runtime_Object_To_runtime_RawExtension(&in.Config, &out.Config, s); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// Convert_clientauthentication_Cluster_To_v1_Cluster is an autogenerated conversion function.\nfunc Convert_clientauthentication_Cluster_To_v1_Cluster(in *clientauthentication.Cluster, out *Cluster, s conversion.Scope) error {\n\treturn autoConvert_clientauthentication_Cluster_To_v1_Cluster(in, out, s)\n}\n\nfunc autoConvert_v1_ExecCredential_To_clientauthentication_ExecCredential(in *ExecCredential, out *clientauthentication.ExecCredential, s conversion.Scope) error {\n\tif err := Convert_v1_ExecCredentialSpec_To_clientauthentication_ExecCredentialSpec(&in.Spec, &out.Spec, s); err != nil {\n\t\treturn err\n\t}\n\tout.Status = (*clientauthentication.ExecCredentialStatus)(unsafe.Pointer(in.Status))\n\treturn nil\n}\n\n// Convert_v1_ExecCredential_To_clientauthentication_ExecCredential is an autogenerated conversion function.\nfunc Convert_v1_ExecCredential_To_clientauthentication_ExecCredential(in *ExecCredential, out *clientauthentication.ExecCredential, s conversion.Scope) error {\n\treturn autoConvert_v1_ExecCredential_To_clientauthentication_ExecCredential(in, out, s)\n}\n\nfunc autoConvert_clientauthentication_ExecCredential_To_v1_ExecCredential(in *clientauthentication.ExecCredential, out *ExecCredential, s conversion.Scope) error {\n\tif err := Convert_clientauthentication_ExecCredentialSpec_To_v1_ExecCredentialSpec(&in.Spec, &out.Spec, s); err != nil {\n\t\treturn err\n\t}\n\tout.Status = (*ExecCredentialStatus)(unsafe.Pointer(in.Status))\n\treturn nil\n}\n\n// Convert_clientauthentication_ExecCredential_To_v1_ExecCredential is an autogenerated conversion function.\nfunc Convert_clientauthentication_ExecCredential_To_v1_ExecCredential(in *clientauthentication.ExecCredential, out *ExecCredential, s conversion.Scope) error {\n\treturn autoConvert_clientauthentication_ExecCredential_To_v1_ExecCredential(in, out, s)\n}\n\nfunc autoConvert_v1_ExecCredentialSpec_To_clientauthentication_ExecCredentialSpec(in *ExecCredentialSpec, out *clientauthentication.ExecCredentialSpec, s conversion.Scope) error {\n\tif in.Cluster != nil {\n\t\tin, out := &in.Cluster, &out.Cluster\n\t\t*out = new(clientauthentication.Cluster)\n\t\tif err := Convert_v1_Cluster_To_clientauthentication_Cluster(*in, *out, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.Cluster = nil\n\t}\n\tout.Interactive = in.Interactive\n\treturn nil\n}\n\n// Convert_v1_ExecCredentialSpec_To_clientauthentication_ExecCredentialSpec is an autogenerated conversion function.\nfunc Convert_v1_ExecCredentialSpec_To_clientauthentication_ExecCredentialSpec(in *ExecCredentialSpec, out *clientauthentication.ExecCredentialSpec, s conversion.Scope) error {\n\treturn autoConvert_v1_ExecCredentialSpec_To_clientauthentication_ExecCredentialSpec(in, out, s)\n}\n\nfunc autoConvert_clientauthentication_ExecCredentialSpec_To_v1_ExecCredentialSpec(in *clientauthentication.ExecCredentialSpec, out *ExecCredentialSpec, s conversion.Scope) error {\n\tout.Interactive = in.Interactive\n\tif in.Cluster != nil {\n\t\tin, out := &in.Cluster, &out.Cluster\n\t\t*out = new(Cluster)\n\t\tif err := Convert_clientauthentication_Cluster_To_v1_Cluster(*in, *out, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.Cluster = nil\n\t}\n\treturn nil\n}\n\n// Convert_clientauthentication_ExecCredentialSpec_To_v1_ExecCredentialSpec is an autogenerated conversion function.\nfunc Convert_clientauthentication_ExecCredentialSpec_To_v1_ExecCredentialSpec(in *clientauthentication.ExecCredentialSpec, out *ExecCredentialSpec, s conversion.Scope) error {\n\treturn autoConvert_clientauthentication_ExecCredentialSpec_To_v1_ExecCredentialSpec(in, out, s)\n}\n\nfunc autoConvert_v1_ExecCredentialStatus_To_clientauthentication_ExecCredentialStatus(in *ExecCredentialStatus, out *clientauthentication.ExecCredentialStatus, s conversion.Scope) error {\n\tout.ExpirationTimestamp = (*metav1.Time)(unsafe.Pointer(in.ExpirationTimestamp))\n\tout.Token = in.Token\n\tout.ClientCertificateData = in.ClientCertificateData\n\tout.ClientKeyData = in.ClientKeyData\n\treturn nil\n}\n\n// Convert_v1_ExecCredentialStatus_To_clientauthentication_ExecCredentialStatus is an autogenerated conversion function.\nfunc Convert_v1_ExecCredentialStatus_To_clientauthentication_ExecCredentialStatus(in *ExecCredentialStatus, out *clientauthentication.ExecCredentialStatus, s conversion.Scope) error {\n\treturn autoConvert_v1_ExecCredentialStatus_To_clientauthentication_ExecCredentialStatus(in, out, s)\n}\n\nfunc autoConvert_clientauthentication_ExecCredentialStatus_To_v1_ExecCredentialStatus(in *clientauthentication.ExecCredentialStatus, out *ExecCredentialStatus, s conversion.Scope) error {\n\tout.ExpirationTimestamp = (*metav1.Time)(unsafe.Pointer(in.ExpirationTimestamp))\n\tout.Token = in.Token\n\tout.ClientCertificateData = in.ClientCertificateData\n\tout.ClientKeyData = in.ClientKeyData\n\treturn nil\n}\n\n// Convert_clientauthentication_ExecCredentialStatus_To_v1_ExecCredentialStatus is an autogenerated conversion function.\nfunc Convert_clientauthentication_ExecCredentialStatus_To_v1_ExecCredentialStatus(in *clientauthentication.ExecCredentialStatus, out *ExecCredentialStatus, s conversion.Scope) error {\n\treturn autoConvert_clientauthentication_ExecCredentialStatus_To_v1_ExecCredentialStatus(in, out, s)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Cluster) DeepCopyInto(out *Cluster) {\n\t*out = *in\n\tif in.CertificateAuthorityData != nil {\n\t\tin, out := &in.CertificateAuthorityData, &out.CertificateAuthorityData\n\t\t*out = make([]byte, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tin.Config.DeepCopyInto(&out.Config)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Cluster.\nfunc (in *Cluster) DeepCopy() *Cluster {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Cluster)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExecCredential) DeepCopyInto(out *ExecCredential) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tif in.Status != nil {\n\t\tin, out := &in.Status, &out.Status\n\t\t*out = new(ExecCredentialStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecCredential.\nfunc (in *ExecCredential) DeepCopy() *ExecCredential {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExecCredential)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ExecCredential) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExecCredentialSpec) DeepCopyInto(out *ExecCredentialSpec) {\n\t*out = *in\n\tif in.Cluster != nil {\n\t\tin, out := &in.Cluster, &out.Cluster\n\t\t*out = new(Cluster)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecCredentialSpec.\nfunc (in *ExecCredentialSpec) DeepCopy() *ExecCredentialSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExecCredentialSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExecCredentialStatus) DeepCopyInto(out *ExecCredentialStatus) {\n\t*out = *in\n\tif in.ExpirationTimestamp != nil {\n\t\tin, out := &in.ExpirationTimestamp, &out.ExpirationTimestamp\n\t\t*out = (*in).DeepCopy()\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecCredentialStatus.\nfunc (in *ExecCredentialStatus) DeepCopy() *ExecCredentialStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExecCredentialStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1/zz_generated.defaults.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by defaulter-gen. DO NOT EDIT.\n\npackage v1\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// RegisterDefaults adds defaulters functions to the given scheme.\n// Public to allow building arbitrary schemes.\n// All generated defaulters are covering - they call all nested defaulters.\nfunc RegisterDefaults(scheme *runtime.Scheme) error {\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/doc.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n// +k8s:conversion-gen=k8s.io/client-go/pkg/apis/clientauthentication\n// +k8s:openapi-gen=true\n// +k8s:defaulter-gen=TypeMeta\n\n// +groupName=client.authentication.k8s.io\n\npackage v1beta1 // import \"k8s.io/client-go/pkg/apis/clientauthentication/v1beta1\"\n"
  },
  {
    "path": "vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/register.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// GroupName is the group name use in this package\nconst GroupName = \"client.authentication.k8s.io\"\n\n// SchemeGroupVersion is group version used to register these objects\nvar SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: \"v1beta1\"}\n\n// Resource takes an unqualified resource and returns a Group qualified GroupResource\nfunc Resource(resource string) schema.GroupResource {\n\treturn SchemeGroupVersion.WithResource(resource).GroupResource()\n}\n\nvar (\n\tSchemeBuilder      runtime.SchemeBuilder\n\tlocalSchemeBuilder = &SchemeBuilder\n\tAddToScheme        = localSchemeBuilder.AddToScheme\n)\n\nfunc init() {\n\t// We only register manually written functions here. The registration of the\n\t// generated functions takes place in the generated files. The separation\n\t// makes the code compile even when the generated files are missing.\n\tlocalSchemeBuilder.Register(addKnownTypes)\n}\n\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&ExecCredential{},\n\t)\n\tmetav1.AddToGroupVersion(scheme, SchemeGroupVersion)\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/types.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage v1beta1\n\nimport (\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\n\n// ExecCredential is used by exec-based plugins to communicate credentials to\n// HTTP transports.\ntype ExecCredential struct {\n\tmetav1.TypeMeta `json:\",inline\"`\n\n\t// Spec holds information passed to the plugin by the transport.\n\tSpec ExecCredentialSpec `json:\"spec,omitempty\"`\n\n\t// Status is filled in by the plugin and holds the credentials that the transport\n\t// should use to contact the API.\n\t// +optional\n\tStatus *ExecCredentialStatus `json:\"status,omitempty\"`\n}\n\n// ExecCredentialSpec holds request and runtime specific information provided by\n// the transport.\ntype ExecCredentialSpec struct {\n\t// Cluster contains information to allow an exec plugin to communicate with the\n\t// kubernetes cluster being authenticated to. Note that Cluster is non-nil only\n\t// when provideClusterInfo is set to true in the exec provider config (i.e.,\n\t// ExecConfig.ProvideClusterInfo).\n\t// +optional\n\tCluster *Cluster `json:\"cluster,omitempty\"`\n\n\t// Interactive declares whether stdin has been passed to this exec plugin.\n\tInteractive bool `json:\"interactive\"`\n}\n\n// ExecCredentialStatus holds credentials for the transport to use.\n//\n// Token and ClientKeyData are sensitive fields. This data should only be\n// transmitted in-memory between client and exec plugin process. Exec plugin\n// itself should at least be protected via file permissions.\ntype ExecCredentialStatus struct {\n\t// ExpirationTimestamp indicates a time when the provided credentials expire.\n\t// +optional\n\tExpirationTimestamp *metav1.Time `json:\"expirationTimestamp,omitempty\"`\n\t// Token is a bearer token used by the client for request authentication.\n\tToken string `json:\"token,omitempty\" datapolicy:\"token\"`\n\t// PEM-encoded client TLS certificates (including intermediates, if any).\n\tClientCertificateData string `json:\"clientCertificateData,omitempty\"`\n\t// PEM-encoded private key for the above certificate.\n\tClientKeyData string `json:\"clientKeyData,omitempty\" datapolicy:\"security-key\"`\n}\n\n// Cluster contains information to allow an exec plugin to communicate\n// with the kubernetes cluster being authenticated to.\n//\n// To ensure that this struct contains everything someone would need to communicate\n// with a kubernetes cluster (just like they would via a kubeconfig), the fields\n// should shadow \"k8s.io/client-go/tools/clientcmd/api/v1\".Cluster, with the exception\n// of CertificateAuthority, since CA data will always be passed to the plugin as bytes.\ntype Cluster struct {\n\t// Server is the address of the kubernetes cluster (https://hostname:port).\n\tServer string `json:\"server\"`\n\t// TLSServerName is passed to the server for SNI and is used in the client to\n\t// check server certificates against. If ServerName is empty, the hostname\n\t// used to contact the server is used.\n\t// +optional\n\tTLSServerName string `json:\"tls-server-name,omitempty\"`\n\t// InsecureSkipTLSVerify skips the validity check for the server's certificate.\n\t// This will make your HTTPS connections insecure.\n\t// +optional\n\tInsecureSkipTLSVerify bool `json:\"insecure-skip-tls-verify,omitempty\"`\n\t// CAData contains PEM-encoded certificate authority certificates.\n\t// If empty, system roots should be used.\n\t// +listType=atomic\n\t// +optional\n\tCertificateAuthorityData []byte `json:\"certificate-authority-data,omitempty\"`\n\t// ProxyURL is the URL to the proxy to be used for all requests to this\n\t// cluster.\n\t// +optional\n\tProxyURL string `json:\"proxy-url,omitempty\"`\n\t// DisableCompression allows client to opt-out of response compression for all requests to the server. This is useful\n\t// to speed up requests (specifically lists) when client-server network bandwidth is ample, by saving time on\n\t// compression (server-side) and decompression (client-side): https://github.com/kubernetes/kubernetes/issues/112296.\n\t// +optional\n\tDisableCompression bool `json:\"disable-compression,omitempty\"`\n\t// Config holds additional config data that is specific to the exec\n\t// plugin with regards to the cluster being authenticated to.\n\t//\n\t// This data is sourced from the clientcmd Cluster object's\n\t// extensions[client.authentication.k8s.io/exec] field:\n\t//\n\t// clusters:\n\t// - name: my-cluster\n\t//   cluster:\n\t//     ...\n\t//     extensions:\n\t//     - name: client.authentication.k8s.io/exec  # reserved extension name for per cluster exec config\n\t//       extension:\n\t//         audience: 06e3fbd18de8  # arbitrary config\n\t//\n\t// In some environments, the user config may be exactly the same across many clusters\n\t// (i.e. call this exec plugin) minus some details that are specific to each cluster\n\t// such as the audience.  This field allows the per cluster config to be directly\n\t// specified with the cluster info.  Using this field to store secret data is not\n\t// recommended as one of the prime benefits of exec plugins is that no secrets need\n\t// to be stored directly in the kubeconfig.\n\t// +optional\n\tConfig runtime.RawExtension `json:\"config,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/zz_generated.conversion.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by conversion-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\tunsafe \"unsafe\"\n\n\tv1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\tconversion \"k8s.io/apimachinery/pkg/conversion\"\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n\tclientauthentication \"k8s.io/client-go/pkg/apis/clientauthentication\"\n)\n\nfunc init() {\n\tlocalSchemeBuilder.Register(RegisterConversions)\n}\n\n// RegisterConversions adds conversion functions to the given scheme.\n// Public to allow building arbitrary schemes.\nfunc RegisterConversions(s *runtime.Scheme) error {\n\tif err := s.AddGeneratedConversionFunc((*Cluster)(nil), (*clientauthentication.Cluster)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_v1beta1_Cluster_To_clientauthentication_Cluster(a.(*Cluster), b.(*clientauthentication.Cluster), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*clientauthentication.Cluster)(nil), (*Cluster)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_clientauthentication_Cluster_To_v1beta1_Cluster(a.(*clientauthentication.Cluster), b.(*Cluster), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*ExecCredential)(nil), (*clientauthentication.ExecCredential)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_v1beta1_ExecCredential_To_clientauthentication_ExecCredential(a.(*ExecCredential), b.(*clientauthentication.ExecCredential), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*clientauthentication.ExecCredential)(nil), (*ExecCredential)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_clientauthentication_ExecCredential_To_v1beta1_ExecCredential(a.(*clientauthentication.ExecCredential), b.(*ExecCredential), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*ExecCredentialSpec)(nil), (*clientauthentication.ExecCredentialSpec)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_v1beta1_ExecCredentialSpec_To_clientauthentication_ExecCredentialSpec(a.(*ExecCredentialSpec), b.(*clientauthentication.ExecCredentialSpec), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*clientauthentication.ExecCredentialSpec)(nil), (*ExecCredentialSpec)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_clientauthentication_ExecCredentialSpec_To_v1beta1_ExecCredentialSpec(a.(*clientauthentication.ExecCredentialSpec), b.(*ExecCredentialSpec), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*ExecCredentialStatus)(nil), (*clientauthentication.ExecCredentialStatus)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_v1beta1_ExecCredentialStatus_To_clientauthentication_ExecCredentialStatus(a.(*ExecCredentialStatus), b.(*clientauthentication.ExecCredentialStatus), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\tif err := s.AddGeneratedConversionFunc((*clientauthentication.ExecCredentialStatus)(nil), (*ExecCredentialStatus)(nil), func(a, b interface{}, scope conversion.Scope) error {\n\t\treturn Convert_clientauthentication_ExecCredentialStatus_To_v1beta1_ExecCredentialStatus(a.(*clientauthentication.ExecCredentialStatus), b.(*ExecCredentialStatus), scope)\n\t}); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc autoConvert_v1beta1_Cluster_To_clientauthentication_Cluster(in *Cluster, out *clientauthentication.Cluster, s conversion.Scope) error {\n\tout.Server = in.Server\n\tout.TLSServerName = in.TLSServerName\n\tout.InsecureSkipTLSVerify = in.InsecureSkipTLSVerify\n\tout.CertificateAuthorityData = *(*[]byte)(unsafe.Pointer(&in.CertificateAuthorityData))\n\tout.ProxyURL = in.ProxyURL\n\tout.DisableCompression = in.DisableCompression\n\tif err := runtime.Convert_runtime_RawExtension_To_runtime_Object(&in.Config, &out.Config, s); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// Convert_v1beta1_Cluster_To_clientauthentication_Cluster is an autogenerated conversion function.\nfunc Convert_v1beta1_Cluster_To_clientauthentication_Cluster(in *Cluster, out *clientauthentication.Cluster, s conversion.Scope) error {\n\treturn autoConvert_v1beta1_Cluster_To_clientauthentication_Cluster(in, out, s)\n}\n\nfunc autoConvert_clientauthentication_Cluster_To_v1beta1_Cluster(in *clientauthentication.Cluster, out *Cluster, s conversion.Scope) error {\n\tout.Server = in.Server\n\tout.TLSServerName = in.TLSServerName\n\tout.InsecureSkipTLSVerify = in.InsecureSkipTLSVerify\n\tout.CertificateAuthorityData = *(*[]byte)(unsafe.Pointer(&in.CertificateAuthorityData))\n\tout.ProxyURL = in.ProxyURL\n\tout.DisableCompression = in.DisableCompression\n\tif err := runtime.Convert_runtime_Object_To_runtime_RawExtension(&in.Config, &out.Config, s); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// Convert_clientauthentication_Cluster_To_v1beta1_Cluster is an autogenerated conversion function.\nfunc Convert_clientauthentication_Cluster_To_v1beta1_Cluster(in *clientauthentication.Cluster, out *Cluster, s conversion.Scope) error {\n\treturn autoConvert_clientauthentication_Cluster_To_v1beta1_Cluster(in, out, s)\n}\n\nfunc autoConvert_v1beta1_ExecCredential_To_clientauthentication_ExecCredential(in *ExecCredential, out *clientauthentication.ExecCredential, s conversion.Scope) error {\n\tif err := Convert_v1beta1_ExecCredentialSpec_To_clientauthentication_ExecCredentialSpec(&in.Spec, &out.Spec, s); err != nil {\n\t\treturn err\n\t}\n\tout.Status = (*clientauthentication.ExecCredentialStatus)(unsafe.Pointer(in.Status))\n\treturn nil\n}\n\n// Convert_v1beta1_ExecCredential_To_clientauthentication_ExecCredential is an autogenerated conversion function.\nfunc Convert_v1beta1_ExecCredential_To_clientauthentication_ExecCredential(in *ExecCredential, out *clientauthentication.ExecCredential, s conversion.Scope) error {\n\treturn autoConvert_v1beta1_ExecCredential_To_clientauthentication_ExecCredential(in, out, s)\n}\n\nfunc autoConvert_clientauthentication_ExecCredential_To_v1beta1_ExecCredential(in *clientauthentication.ExecCredential, out *ExecCredential, s conversion.Scope) error {\n\tif err := Convert_clientauthentication_ExecCredentialSpec_To_v1beta1_ExecCredentialSpec(&in.Spec, &out.Spec, s); err != nil {\n\t\treturn err\n\t}\n\tout.Status = (*ExecCredentialStatus)(unsafe.Pointer(in.Status))\n\treturn nil\n}\n\n// Convert_clientauthentication_ExecCredential_To_v1beta1_ExecCredential is an autogenerated conversion function.\nfunc Convert_clientauthentication_ExecCredential_To_v1beta1_ExecCredential(in *clientauthentication.ExecCredential, out *ExecCredential, s conversion.Scope) error {\n\treturn autoConvert_clientauthentication_ExecCredential_To_v1beta1_ExecCredential(in, out, s)\n}\n\nfunc autoConvert_v1beta1_ExecCredentialSpec_To_clientauthentication_ExecCredentialSpec(in *ExecCredentialSpec, out *clientauthentication.ExecCredentialSpec, s conversion.Scope) error {\n\tif in.Cluster != nil {\n\t\tin, out := &in.Cluster, &out.Cluster\n\t\t*out = new(clientauthentication.Cluster)\n\t\tif err := Convert_v1beta1_Cluster_To_clientauthentication_Cluster(*in, *out, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.Cluster = nil\n\t}\n\tout.Interactive = in.Interactive\n\treturn nil\n}\n\n// Convert_v1beta1_ExecCredentialSpec_To_clientauthentication_ExecCredentialSpec is an autogenerated conversion function.\nfunc Convert_v1beta1_ExecCredentialSpec_To_clientauthentication_ExecCredentialSpec(in *ExecCredentialSpec, out *clientauthentication.ExecCredentialSpec, s conversion.Scope) error {\n\treturn autoConvert_v1beta1_ExecCredentialSpec_To_clientauthentication_ExecCredentialSpec(in, out, s)\n}\n\nfunc autoConvert_clientauthentication_ExecCredentialSpec_To_v1beta1_ExecCredentialSpec(in *clientauthentication.ExecCredentialSpec, out *ExecCredentialSpec, s conversion.Scope) error {\n\tout.Interactive = in.Interactive\n\tif in.Cluster != nil {\n\t\tin, out := &in.Cluster, &out.Cluster\n\t\t*out = new(Cluster)\n\t\tif err := Convert_clientauthentication_Cluster_To_v1beta1_Cluster(*in, *out, s); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tout.Cluster = nil\n\t}\n\treturn nil\n}\n\n// Convert_clientauthentication_ExecCredentialSpec_To_v1beta1_ExecCredentialSpec is an autogenerated conversion function.\nfunc Convert_clientauthentication_ExecCredentialSpec_To_v1beta1_ExecCredentialSpec(in *clientauthentication.ExecCredentialSpec, out *ExecCredentialSpec, s conversion.Scope) error {\n\treturn autoConvert_clientauthentication_ExecCredentialSpec_To_v1beta1_ExecCredentialSpec(in, out, s)\n}\n\nfunc autoConvert_v1beta1_ExecCredentialStatus_To_clientauthentication_ExecCredentialStatus(in *ExecCredentialStatus, out *clientauthentication.ExecCredentialStatus, s conversion.Scope) error {\n\tout.ExpirationTimestamp = (*v1.Time)(unsafe.Pointer(in.ExpirationTimestamp))\n\tout.Token = in.Token\n\tout.ClientCertificateData = in.ClientCertificateData\n\tout.ClientKeyData = in.ClientKeyData\n\treturn nil\n}\n\n// Convert_v1beta1_ExecCredentialStatus_To_clientauthentication_ExecCredentialStatus is an autogenerated conversion function.\nfunc Convert_v1beta1_ExecCredentialStatus_To_clientauthentication_ExecCredentialStatus(in *ExecCredentialStatus, out *clientauthentication.ExecCredentialStatus, s conversion.Scope) error {\n\treturn autoConvert_v1beta1_ExecCredentialStatus_To_clientauthentication_ExecCredentialStatus(in, out, s)\n}\n\nfunc autoConvert_clientauthentication_ExecCredentialStatus_To_v1beta1_ExecCredentialStatus(in *clientauthentication.ExecCredentialStatus, out *ExecCredentialStatus, s conversion.Scope) error {\n\tout.ExpirationTimestamp = (*v1.Time)(unsafe.Pointer(in.ExpirationTimestamp))\n\tout.Token = in.Token\n\tout.ClientCertificateData = in.ClientCertificateData\n\tout.ClientKeyData = in.ClientKeyData\n\treturn nil\n}\n\n// Convert_clientauthentication_ExecCredentialStatus_To_v1beta1_ExecCredentialStatus is an autogenerated conversion function.\nfunc Convert_clientauthentication_ExecCredentialStatus_To_v1beta1_ExecCredentialStatus(in *clientauthentication.ExecCredentialStatus, out *ExecCredentialStatus, s conversion.Scope) error {\n\treturn autoConvert_clientauthentication_ExecCredentialStatus_To_v1beta1_ExecCredentialStatus(in, out, s)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Cluster) DeepCopyInto(out *Cluster) {\n\t*out = *in\n\tif in.CertificateAuthorityData != nil {\n\t\tin, out := &in.CertificateAuthorityData, &out.CertificateAuthorityData\n\t\t*out = make([]byte, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tin.Config.DeepCopyInto(&out.Config)\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Cluster.\nfunc (in *Cluster) DeepCopy() *Cluster {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Cluster)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExecCredential) DeepCopyInto(out *ExecCredential) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tif in.Status != nil {\n\t\tin, out := &in.Status, &out.Status\n\t\t*out = new(ExecCredentialStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecCredential.\nfunc (in *ExecCredential) DeepCopy() *ExecCredential {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExecCredential)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ExecCredential) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExecCredentialSpec) DeepCopyInto(out *ExecCredentialSpec) {\n\t*out = *in\n\tif in.Cluster != nil {\n\t\tin, out := &in.Cluster, &out.Cluster\n\t\t*out = new(Cluster)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecCredentialSpec.\nfunc (in *ExecCredentialSpec) DeepCopy() *ExecCredentialSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExecCredentialSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExecCredentialStatus) DeepCopyInto(out *ExecCredentialStatus) {\n\t*out = *in\n\tif in.ExpirationTimestamp != nil {\n\t\tin, out := &in.ExpirationTimestamp, &out.ExpirationTimestamp\n\t\t*out = (*in).DeepCopy()\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecCredentialStatus.\nfunc (in *ExecCredentialStatus) DeepCopy() *ExecCredentialStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExecCredentialStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/pkg/apis/clientauthentication/v1beta1/zz_generated.defaults.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by defaulter-gen. DO NOT EDIT.\n\npackage v1beta1\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// RegisterDefaults adds defaulters functions to the given scheme.\n// Public to allow building arbitrary schemes.\n// All generated defaulters are covering - they call all nested defaulters.\nfunc RegisterDefaults(scheme *runtime.Scheme) error {\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/pkg/apis/clientauthentication/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage clientauthentication\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Cluster) DeepCopyInto(out *Cluster) {\n\t*out = *in\n\tif in.CertificateAuthorityData != nil {\n\t\tin, out := &in.CertificateAuthorityData, &out.CertificateAuthorityData\n\t\t*out = make([]byte, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Config != nil {\n\t\tout.Config = in.Config.DeepCopyObject()\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Cluster.\nfunc (in *Cluster) DeepCopy() *Cluster {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Cluster)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExecCredential) DeepCopyInto(out *ExecCredential) {\n\t*out = *in\n\tout.TypeMeta = in.TypeMeta\n\tin.Spec.DeepCopyInto(&out.Spec)\n\tif in.Status != nil {\n\t\tin, out := &in.Status, &out.Status\n\t\t*out = new(ExecCredentialStatus)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecCredential.\nfunc (in *ExecCredential) DeepCopy() *ExecCredential {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExecCredential)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *ExecCredential) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExecCredentialSpec) DeepCopyInto(out *ExecCredentialSpec) {\n\t*out = *in\n\tif in.Cluster != nil {\n\t\tin, out := &in.Cluster, &out.Cluster\n\t\t*out = new(Cluster)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecCredentialSpec.\nfunc (in *ExecCredentialSpec) DeepCopy() *ExecCredentialSpec {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExecCredentialSpec)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExecCredentialStatus) DeepCopyInto(out *ExecCredentialStatus) {\n\t*out = *in\n\tif in.ExpirationTimestamp != nil {\n\t\tin, out := &in.ExpirationTimestamp, &out.ExpirationTimestamp\n\t\t*out = (*in).DeepCopy()\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecCredentialStatus.\nfunc (in *ExecCredentialStatus) DeepCopy() *ExecCredentialStatus {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExecCredentialStatus)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/pkg/version/base.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage version\n\n// Base version information.\n//\n// This is the fallback data used when version information from git is not\n// provided via go ldflags. It provides an approximation of the Kubernetes\n// version for ad-hoc builds (e.g. `go build`) that cannot get the version\n// information from git.\n//\n// If you are looking at these fields in the git tree, they look\n// strange. They are modified on the fly by the build process. The\n// in-tree values are dummy values used for \"git archive\", which also\n// works for GitHub tar downloads.\n//\n// When releasing a new Kubernetes version, this file is updated by\n// build/mark_new_version.sh to reflect the new version, and then a\n// git annotated tag (using format vX.Y where X == Major version and Y\n// == Minor version) is created to point to the commit that updates\n// pkg/version/base.go\nvar (\n\t// TODO: Deprecate gitMajor and gitMinor, use only gitVersion\n\t// instead. First step in deprecation, keep the fields but make\n\t// them irrelevant. (Next we'll take it out, which may muck with\n\t// scripts consuming the kubectl version output - but most of\n\t// these should be looking at gitVersion already anyways.)\n\tgitMajor string = \"\" // major version, always numeric\n\tgitMinor string = \"\" // minor version, numeric possibly followed by \"+\"\n\n\t// semantic version, derived by build scripts (see\n\t// https://github.com/kubernetes/sig-release/blob/master/release-engineering/versioning.md#kubernetes-release-versioning\n\t// https://kubernetes.io/releases/version-skew-policy/\n\t// for a detailed discussion of this field)\n\t//\n\t// TODO: This field is still called \"gitVersion\" for legacy\n\t// reasons. For prerelease versions, the build metadata on the\n\t// semantic version is a git hash, but the version itself is no\n\t// longer the direct output of \"git describe\", but a slight\n\t// translation to be semver compliant.\n\n\t// NOTE: The $Format strings are replaced during 'git archive' thanks to the\n\t// companion .gitattributes file containing 'export-subst' in this same\n\t// directory.  See also https://git-scm.com/docs/gitattributes\n\tgitVersion   string = \"v0.0.0-master+$Format:%H$\"\n\tgitCommit    string = \"$Format:%H$\" // sha1 from git, output of $(git rev-parse HEAD)\n\tgitTreeState string = \"\"            // state of git tree, either \"clean\" or \"dirty\"\n\n\tbuildDate string = \"1970-01-01T00:00:00Z\" // build date in ISO8601 format, output of $(date -u +'%Y-%m-%dT%H:%M:%SZ')\n)\n"
  },
  {
    "path": "vendor/k8s.io/client-go/pkg/version/doc.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:openapi-gen=true\n\n// Package version supplies version information collected at build time to\n// kubernetes components.\npackage version // import \"k8s.io/client-go/pkg/version\"\n"
  },
  {
    "path": "vendor/k8s.io/client-go/pkg/version/version.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage version\n\nimport (\n\t\"fmt\"\n\t\"runtime\"\n\n\tapimachineryversion \"k8s.io/apimachinery/pkg/version\"\n)\n\n// Get returns the overall codebase version. It's for detecting\n// what code a binary was built from.\nfunc Get() apimachineryversion.Info {\n\t// These variables typically come from -ldflags settings and in\n\t// their absence fallback to the settings in pkg/version/base.go\n\treturn apimachineryversion.Info{\n\t\tMajor:        gitMajor,\n\t\tMinor:        gitMinor,\n\t\tGitVersion:   gitVersion,\n\t\tGitCommit:    gitCommit,\n\t\tGitTreeState: gitTreeState,\n\t\tBuildDate:    buildDate,\n\t\tGoVersion:    runtime.Version(),\n\t\tCompiler:     runtime.Compiler,\n\t\tPlatform:     fmt.Sprintf(\"%s/%s\", runtime.GOOS, runtime.GOARCH),\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/plugin/pkg/client/auth/exec/exec.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage exec\n\nimport (\n\t\"bytes\"\n\t\"crypto/tls\"\n\t\"crypto/x509\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"net\"\n\t\"net/http\"\n\t\"os\"\n\t\"os/exec\"\n\t\"reflect\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"golang.org/x/term\"\n\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/runtime/serializer\"\n\t\"k8s.io/apimachinery/pkg/util/dump\"\n\tutilnet \"k8s.io/apimachinery/pkg/util/net\"\n\t\"k8s.io/client-go/pkg/apis/clientauthentication\"\n\t\"k8s.io/client-go/pkg/apis/clientauthentication/install\"\n\tclientauthenticationv1 \"k8s.io/client-go/pkg/apis/clientauthentication/v1\"\n\tclientauthenticationv1beta1 \"k8s.io/client-go/pkg/apis/clientauthentication/v1beta1\"\n\t\"k8s.io/client-go/tools/clientcmd/api\"\n\t\"k8s.io/client-go/tools/metrics\"\n\t\"k8s.io/client-go/transport\"\n\t\"k8s.io/client-go/util/connrotation\"\n\t\"k8s.io/klog/v2\"\n\t\"k8s.io/utils/clock\"\n)\n\nconst execInfoEnv = \"KUBERNETES_EXEC_INFO\"\nconst installHintVerboseHelp = `\n\nIt looks like you are trying to use a client-go credential plugin that is not installed.\n\nTo learn more about this feature, consult the documentation available at:\n      https://kubernetes.io/docs/reference/access-authn-authz/authentication/#client-go-credential-plugins`\n\nvar scheme = runtime.NewScheme()\nvar codecs = serializer.NewCodecFactory(scheme)\n\nfunc init() {\n\tinstall.Install(scheme)\n}\n\nvar (\n\t// Since transports can be constantly re-initialized by programs like kubectl,\n\t// keep a cache of initialized authenticators keyed by a hash of their config.\n\tglobalCache = newCache()\n\t// The list of API versions we accept.\n\tapiVersions = map[string]schema.GroupVersion{\n\t\tclientauthenticationv1beta1.SchemeGroupVersion.String(): clientauthenticationv1beta1.SchemeGroupVersion,\n\t\tclientauthenticationv1.SchemeGroupVersion.String():      clientauthenticationv1.SchemeGroupVersion,\n\t}\n)\n\nfunc newCache() *cache {\n\treturn &cache{m: make(map[string]*Authenticator)}\n}\n\nfunc cacheKey(conf *api.ExecConfig, cluster *clientauthentication.Cluster) string {\n\tkey := struct {\n\t\tconf    *api.ExecConfig\n\t\tcluster *clientauthentication.Cluster\n\t}{\n\t\tconf:    conf,\n\t\tcluster: cluster,\n\t}\n\treturn dump.Pretty(key)\n}\n\ntype cache struct {\n\tmu sync.Mutex\n\tm  map[string]*Authenticator\n}\n\nfunc (c *cache) get(s string) (*Authenticator, bool) {\n\tc.mu.Lock()\n\tdefer c.mu.Unlock()\n\ta, ok := c.m[s]\n\treturn a, ok\n}\n\n// put inserts an authenticator into the cache. If an authenticator is already\n// associated with the key, the first one is returned instead.\nfunc (c *cache) put(s string, a *Authenticator) *Authenticator {\n\tc.mu.Lock()\n\tdefer c.mu.Unlock()\n\texisting, ok := c.m[s]\n\tif ok {\n\t\treturn existing\n\t}\n\tc.m[s] = a\n\treturn a\n}\n\n// sometimes rate limits how often a function f() is called. Specifically, Do()\n// will run the provided function f() up to threshold times every interval\n// duration.\ntype sometimes struct {\n\tthreshold int\n\tinterval  time.Duration\n\n\tclock clock.Clock\n\tmu    sync.Mutex\n\n\tcount  int       // times we have called f() in this window\n\twindow time.Time // beginning of current window of length interval\n}\n\nfunc (s *sometimes) Do(f func()) {\n\ts.mu.Lock()\n\tdefer s.mu.Unlock()\n\n\tnow := s.clock.Now()\n\tif s.window.IsZero() {\n\t\ts.window = now\n\t}\n\n\t// If we are no longer in our saved time window, then we get to reset our run\n\t// count back to 0 and start increasing towards the threshold again.\n\tif inWindow := now.Sub(s.window) < s.interval; !inWindow {\n\t\ts.window = now\n\t\ts.count = 0\n\t}\n\n\t// If we have not run the function more than threshold times in this current\n\t// time window, we get to run it now!\n\tif underThreshold := s.count < s.threshold; underThreshold {\n\t\ts.count++\n\t\tf()\n\t}\n}\n\n// GetAuthenticator returns an exec-based plugin for providing client credentials.\nfunc GetAuthenticator(config *api.ExecConfig, cluster *clientauthentication.Cluster) (*Authenticator, error) {\n\treturn newAuthenticator(globalCache, term.IsTerminal, config, cluster)\n}\n\nfunc newAuthenticator(c *cache, isTerminalFunc func(int) bool, config *api.ExecConfig, cluster *clientauthentication.Cluster) (*Authenticator, error) {\n\tkey := cacheKey(config, cluster)\n\tif a, ok := c.get(key); ok {\n\t\treturn a, nil\n\t}\n\n\tgv, ok := apiVersions[config.APIVersion]\n\tif !ok {\n\t\treturn nil, fmt.Errorf(\"exec plugin: invalid apiVersion %q\", config.APIVersion)\n\t}\n\n\tconnTracker := connrotation.NewConnectionTracker()\n\tdefaultDialer := connrotation.NewDialerWithTracker(\n\t\t(&net.Dialer{Timeout: 30 * time.Second, KeepAlive: 30 * time.Second}).DialContext,\n\t\tconnTracker,\n\t)\n\n\ta := &Authenticator{\n\t\tcmd:                config.Command,\n\t\targs:               config.Args,\n\t\tgroup:              gv,\n\t\tcluster:            cluster,\n\t\tprovideClusterInfo: config.ProvideClusterInfo,\n\n\t\tinstallHint: config.InstallHint,\n\t\tsometimes: &sometimes{\n\t\t\tthreshold: 10,\n\t\t\tinterval:  time.Hour,\n\t\t\tclock:     clock.RealClock{},\n\t\t},\n\n\t\tstdin:           os.Stdin,\n\t\tstderr:          os.Stderr,\n\t\tinteractiveFunc: func() (bool, error) { return isInteractive(isTerminalFunc, config) },\n\t\tnow:             time.Now,\n\t\tenviron:         os.Environ,\n\n\t\tconnTracker: connTracker,\n\t}\n\n\tfor _, env := range config.Env {\n\t\ta.env = append(a.env, env.Name+\"=\"+env.Value)\n\t}\n\n\t// these functions are made comparable and stored in the cache so that repeated clientset\n\t// construction with the same rest.Config results in a single TLS cache and Authenticator\n\ta.getCert = &transport.GetCertHolder{GetCert: a.cert}\n\ta.dial = &transport.DialHolder{Dial: defaultDialer.DialContext}\n\n\treturn c.put(key, a), nil\n}\n\nfunc isInteractive(isTerminalFunc func(int) bool, config *api.ExecConfig) (bool, error) {\n\tvar shouldBeInteractive bool\n\tswitch config.InteractiveMode {\n\tcase api.NeverExecInteractiveMode:\n\t\tshouldBeInteractive = false\n\tcase api.IfAvailableExecInteractiveMode:\n\t\tshouldBeInteractive = !config.StdinUnavailable && isTerminalFunc(int(os.Stdin.Fd()))\n\tcase api.AlwaysExecInteractiveMode:\n\t\tif !isTerminalFunc(int(os.Stdin.Fd())) {\n\t\t\treturn false, errors.New(\"standard input is not a terminal\")\n\t\t}\n\t\tif config.StdinUnavailable {\n\t\t\tsuffix := \"\"\n\t\t\tif len(config.StdinUnavailableMessage) > 0 {\n\t\t\t\t// only print extra \": <message>\" if the user actually specified a message\n\t\t\t\tsuffix = fmt.Sprintf(\": %s\", config.StdinUnavailableMessage)\n\t\t\t}\n\t\t\treturn false, fmt.Errorf(\"standard input is unavailable%s\", suffix)\n\t\t}\n\t\tshouldBeInteractive = true\n\tdefault:\n\t\treturn false, fmt.Errorf(\"unknown interactiveMode: %q\", config.InteractiveMode)\n\t}\n\n\treturn shouldBeInteractive, nil\n}\n\n// Authenticator is a client credential provider that rotates credentials by executing a plugin.\n// The plugin input and output are defined by the API group client.authentication.k8s.io.\ntype Authenticator struct {\n\t// Set by the config\n\tcmd                string\n\targs               []string\n\tgroup              schema.GroupVersion\n\tenv                []string\n\tcluster            *clientauthentication.Cluster\n\tprovideClusterInfo bool\n\n\t// Used to avoid log spew by rate limiting install hint printing. We didn't do\n\t// this by interval based rate limiting alone since that way may have prevented\n\t// the install hint from showing up for kubectl users.\n\tsometimes   *sometimes\n\tinstallHint string\n\n\t// Stubbable for testing\n\tstdin           io.Reader\n\tstderr          io.Writer\n\tinteractiveFunc func() (bool, error)\n\tnow             func() time.Time\n\tenviron         func() []string\n\n\t// connTracker tracks all connections opened that we need to close when rotating a client certificate\n\tconnTracker *connrotation.ConnectionTracker\n\n\t// Cached results.\n\t//\n\t// The mutex also guards calling the plugin. Since the plugin could be\n\t// interactive we want to make sure it's only called once.\n\tmu          sync.Mutex\n\tcachedCreds *credentials\n\texp         time.Time\n\n\t// getCert makes Authenticator.cert comparable to support TLS config caching\n\tgetCert *transport.GetCertHolder\n\t// dial is used for clients which do not specify a custom dialer\n\t// it is comparable to support TLS config caching\n\tdial *transport.DialHolder\n}\n\ntype credentials struct {\n\ttoken string           `datapolicy:\"token\"`\n\tcert  *tls.Certificate `datapolicy:\"secret-key\"`\n}\n\n// UpdateTransportConfig updates the transport.Config to use credentials\n// returned by the plugin.\nfunc (a *Authenticator) UpdateTransportConfig(c *transport.Config) error {\n\t// If a bearer token is present in the request - avoid the GetCert callback when\n\t// setting up the transport, as that triggers the exec action if the server is\n\t// also configured to allow client certificates for authentication. For requests\n\t// like \"kubectl get --token (token) pods\" we should assume the intention is to\n\t// use the provided token for authentication. The same can be said for when the\n\t// user specifies basic auth or cert auth.\n\tif c.HasTokenAuth() || c.HasBasicAuth() || c.HasCertAuth() {\n\t\treturn nil\n\t}\n\n\tc.Wrap(func(rt http.RoundTripper) http.RoundTripper {\n\t\treturn &roundTripper{a, rt}\n\t})\n\n\tif c.HasCertCallback() {\n\t\treturn errors.New(\"can't add TLS certificate callback: transport.Config.TLS.GetCert already set\")\n\t}\n\tc.TLS.GetCertHolder = a.getCert // comparable for TLS config caching\n\n\tif c.DialHolder != nil {\n\t\tif c.DialHolder.Dial == nil {\n\t\t\treturn errors.New(\"invalid transport.Config.DialHolder: wrapped Dial function is nil\")\n\t\t}\n\n\t\t// if c has a custom dialer, we have to wrap it\n\t\t// TLS config caching is not supported for this config\n\t\td := connrotation.NewDialerWithTracker(c.DialHolder.Dial, a.connTracker)\n\t\tc.DialHolder = &transport.DialHolder{Dial: d.DialContext}\n\t} else {\n\t\tc.DialHolder = a.dial // comparable for TLS config caching\n\t}\n\n\treturn nil\n}\n\nvar _ utilnet.RoundTripperWrapper = &roundTripper{}\n\ntype roundTripper struct {\n\ta    *Authenticator\n\tbase http.RoundTripper\n}\n\nfunc (r *roundTripper) WrappedRoundTripper() http.RoundTripper {\n\treturn r.base\n}\n\nfunc (r *roundTripper) RoundTrip(req *http.Request) (*http.Response, error) {\n\t// If a user has already set credentials, use that. This makes commands like\n\t// \"kubectl get --token (token) pods\" work.\n\tif req.Header.Get(\"Authorization\") != \"\" {\n\t\treturn r.base.RoundTrip(req)\n\t}\n\n\tcreds, err := r.a.getCreds()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"getting credentials: %v\", err)\n\t}\n\tif creds.token != \"\" {\n\t\treq.Header.Set(\"Authorization\", \"Bearer \"+creds.token)\n\t}\n\n\tres, err := r.base.RoundTrip(req)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif res.StatusCode == http.StatusUnauthorized {\n\t\tif err := r.a.maybeRefreshCreds(creds); err != nil {\n\t\t\tklog.Errorf(\"refreshing credentials: %v\", err)\n\t\t}\n\t}\n\treturn res, nil\n}\n\nfunc (a *Authenticator) credsExpired() bool {\n\tif a.exp.IsZero() {\n\t\treturn false\n\t}\n\treturn a.now().After(a.exp)\n}\n\nfunc (a *Authenticator) cert() (*tls.Certificate, error) {\n\tcreds, err := a.getCreds()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn creds.cert, nil\n}\n\nfunc (a *Authenticator) getCreds() (*credentials, error) {\n\ta.mu.Lock()\n\tdefer a.mu.Unlock()\n\n\tif a.cachedCreds != nil && !a.credsExpired() {\n\t\treturn a.cachedCreds, nil\n\t}\n\n\tif err := a.refreshCredsLocked(); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn a.cachedCreds, nil\n}\n\n// maybeRefreshCreds executes the plugin to force a rotation of the\n// credentials, unless they were rotated already.\nfunc (a *Authenticator) maybeRefreshCreds(creds *credentials) error {\n\ta.mu.Lock()\n\tdefer a.mu.Unlock()\n\n\t// Since we're not making a new pointer to a.cachedCreds in getCreds, no\n\t// need to do deep comparison.\n\tif creds != a.cachedCreds {\n\t\t// Credentials already rotated.\n\t\treturn nil\n\t}\n\n\treturn a.refreshCredsLocked()\n}\n\n// refreshCredsLocked executes the plugin and reads the credentials from\n// stdout. It must be called while holding the Authenticator's mutex.\nfunc (a *Authenticator) refreshCredsLocked() error {\n\tinteractive, err := a.interactiveFunc()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"exec plugin cannot support interactive mode: %w\", err)\n\t}\n\n\tcred := &clientauthentication.ExecCredential{\n\t\tSpec: clientauthentication.ExecCredentialSpec{\n\t\t\tInteractive: interactive,\n\t\t},\n\t}\n\tif a.provideClusterInfo {\n\t\tcred.Spec.Cluster = a.cluster\n\t}\n\n\tenv := append(a.environ(), a.env...)\n\tdata, err := runtime.Encode(codecs.LegacyCodec(a.group), cred)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"encode ExecCredentials: %v\", err)\n\t}\n\tenv = append(env, fmt.Sprintf(\"%s=%s\", execInfoEnv, data))\n\n\tstdout := &bytes.Buffer{}\n\tcmd := exec.Command(a.cmd, a.args...)\n\tcmd.Env = env\n\tcmd.Stderr = a.stderr\n\tcmd.Stdout = stdout\n\tif interactive {\n\t\tcmd.Stdin = a.stdin\n\t}\n\n\terr = cmd.Run()\n\tincrementCallsMetric(err)\n\tif err != nil {\n\t\treturn a.wrapCmdRunErrorLocked(err)\n\t}\n\n\t_, gvk, err := codecs.UniversalDecoder(a.group).Decode(stdout.Bytes(), nil, cred)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"decoding stdout: %v\", err)\n\t}\n\tif gvk.Group != a.group.Group || gvk.Version != a.group.Version {\n\t\treturn fmt.Errorf(\"exec plugin is configured to use API version %s, plugin returned version %s\",\n\t\t\ta.group, schema.GroupVersion{Group: gvk.Group, Version: gvk.Version})\n\t}\n\n\tif cred.Status == nil {\n\t\treturn fmt.Errorf(\"exec plugin didn't return a status field\")\n\t}\n\tif cred.Status.Token == \"\" && cred.Status.ClientCertificateData == \"\" && cred.Status.ClientKeyData == \"\" {\n\t\treturn fmt.Errorf(\"exec plugin didn't return a token or cert/key pair\")\n\t}\n\tif (cred.Status.ClientCertificateData == \"\") != (cred.Status.ClientKeyData == \"\") {\n\t\treturn fmt.Errorf(\"exec plugin returned only certificate or key, not both\")\n\t}\n\n\tif cred.Status.ExpirationTimestamp != nil {\n\t\ta.exp = cred.Status.ExpirationTimestamp.Time\n\t} else {\n\t\ta.exp = time.Time{}\n\t}\n\n\tnewCreds := &credentials{\n\t\ttoken: cred.Status.Token,\n\t}\n\tif cred.Status.ClientKeyData != \"\" && cred.Status.ClientCertificateData != \"\" {\n\t\tcert, err := tls.X509KeyPair([]byte(cred.Status.ClientCertificateData), []byte(cred.Status.ClientKeyData))\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"failed parsing client key/certificate: %v\", err)\n\t\t}\n\n\t\t// Leaf is initialized to be nil:\n\t\t//  https://golang.org/pkg/crypto/tls/#X509KeyPair\n\t\t// Leaf certificate is the first certificate:\n\t\t//  https://golang.org/pkg/crypto/tls/#Certificate\n\t\t// Populating leaf is useful for quickly accessing the underlying x509\n\t\t// certificate values.\n\t\tcert.Leaf, err = x509.ParseCertificate(cert.Certificate[0])\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"failed parsing client leaf certificate: %v\", err)\n\t\t}\n\t\tnewCreds.cert = &cert\n\t}\n\n\toldCreds := a.cachedCreds\n\ta.cachedCreds = newCreds\n\t// Only close all connections when TLS cert rotates. Token rotation doesn't\n\t// need the extra noise.\n\tif oldCreds != nil && !reflect.DeepEqual(oldCreds.cert, a.cachedCreds.cert) {\n\t\t// Can be nil if the exec auth plugin only returned token auth.\n\t\tif oldCreds.cert != nil && oldCreds.cert.Leaf != nil {\n\t\t\tmetrics.ClientCertRotationAge.Observe(time.Since(oldCreds.cert.Leaf.NotBefore))\n\t\t}\n\t\ta.connTracker.CloseAll()\n\t}\n\n\texpiry := time.Time{}\n\tif a.cachedCreds.cert != nil && a.cachedCreds.cert.Leaf != nil {\n\t\texpiry = a.cachedCreds.cert.Leaf.NotAfter\n\t}\n\texpirationMetrics.set(a, expiry)\n\treturn nil\n}\n\n// wrapCmdRunErrorLocked pulls out the code to construct a helpful error message\n// for when the exec plugin's binary fails to Run().\n//\n// It must be called while holding the Authenticator's mutex.\nfunc (a *Authenticator) wrapCmdRunErrorLocked(err error) error {\n\tswitch err.(type) {\n\tcase *exec.Error: // Binary does not exist (see exec.Error).\n\t\tbuilder := strings.Builder{}\n\t\tfmt.Fprintf(&builder, \"exec: executable %s not found\", a.cmd)\n\n\t\ta.sometimes.Do(func() {\n\t\t\tfmt.Fprint(&builder, installHintVerboseHelp)\n\t\t\tif a.installHint != \"\" {\n\t\t\t\tfmt.Fprintf(&builder, \"\\n\\n%s\", a.installHint)\n\t\t\t}\n\t\t})\n\n\t\treturn errors.New(builder.String())\n\n\tcase *exec.ExitError: // Binary execution failed (see exec.Cmd.Run()).\n\t\te := err.(*exec.ExitError)\n\t\treturn fmt.Errorf(\n\t\t\t\"exec: executable %s failed with exit code %d\",\n\t\t\ta.cmd,\n\t\t\te.ProcessState.ExitCode(),\n\t\t)\n\n\tdefault:\n\t\treturn fmt.Errorf(\"exec: %v\", err)\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/plugin/pkg/client/auth/exec/metrics.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage exec\n\nimport (\n\t\"errors\"\n\t\"io/fs\"\n\t\"os/exec\"\n\t\"reflect\"\n\t\"sync\"\n\t\"time\"\n\n\t\"k8s.io/klog/v2\"\n\n\t\"k8s.io/client-go/tools/metrics\"\n)\n\n// The following constants shadow the special values used in the prometheus metrics implementation.\nconst (\n\t// noError indicates that the plugin process was successfully started and exited with an exit\n\t// code of 0.\n\tnoError = \"no_error\"\n\t// pluginExecutionError indicates that the plugin process was successfully started and then\n\t// it returned a non-zero exit code.\n\tpluginExecutionError = \"plugin_execution_error\"\n\t// pluginNotFoundError indicates that we could not find the exec plugin.\n\tpluginNotFoundError = \"plugin_not_found_error\"\n\t// clientInternalError indicates that we attempted to start the plugin process, but failed\n\t// for some reason.\n\tclientInternalError = \"client_internal_error\"\n\n\t// successExitCode represents an exec plugin invocation that was successful.\n\tsuccessExitCode = 0\n\t// failureExitCode represents an exec plugin invocation that was not successful. This code is\n\t// used in some failure modes (e.g., plugin not found, client internal error) so that someone\n\t// can more easily monitor all unsuccessful invocations.\n\tfailureExitCode = 1\n)\n\ntype certificateExpirationTracker struct {\n\tmu        sync.RWMutex\n\tm         map[*Authenticator]time.Time\n\tmetricSet func(*time.Time)\n}\n\nvar expirationMetrics = &certificateExpirationTracker{\n\tm: map[*Authenticator]time.Time{},\n\tmetricSet: func(e *time.Time) {\n\t\tmetrics.ClientCertExpiry.Set(e)\n\t},\n}\n\n// set stores the given expiration time and updates the updates the certificate\n// expiry metric to the earliest expiration time.\nfunc (c *certificateExpirationTracker) set(a *Authenticator, t time.Time) {\n\tc.mu.Lock()\n\tdefer c.mu.Unlock()\n\tc.m[a] = t\n\n\tearliest := time.Time{}\n\tfor _, t := range c.m {\n\t\tif t.IsZero() {\n\t\t\tcontinue\n\t\t}\n\t\tif earliest.IsZero() || earliest.After(t) {\n\t\t\tearliest = t\n\t\t}\n\t}\n\tif earliest.IsZero() {\n\t\tc.metricSet(nil)\n\t} else {\n\t\tc.metricSet(&earliest)\n\t}\n}\n\n// incrementCallsMetric increments a global metrics counter for the number of calls to an exec\n// plugin, partitioned by exit code. The provided err should be the return value from\n// exec.Cmd.Run().\nfunc incrementCallsMetric(err error) {\n\texecExitError := &exec.ExitError{}\n\texecError := &exec.Error{}\n\tpathError := &fs.PathError{}\n\tswitch {\n\tcase err == nil: // Binary execution succeeded.\n\t\tmetrics.ExecPluginCalls.Increment(successExitCode, noError)\n\n\tcase errors.As(err, &execExitError): // Binary execution failed (see \"os/exec\".Cmd.Run()).\n\t\tmetrics.ExecPluginCalls.Increment(execExitError.ExitCode(), pluginExecutionError)\n\n\tcase errors.As(err, &execError), errors.As(err, &pathError): // Binary does not exist (see exec.Error, fs.PathError).\n\t\tmetrics.ExecPluginCalls.Increment(failureExitCode, pluginNotFoundError)\n\n\tdefault: // We don't know about this error type.\n\t\tklog.V(2).InfoS(\"unexpected exec plugin return error type\", \"type\", reflect.TypeOf(err).String(), \"err\", err)\n\t\tmetrics.ExecPluginCalls.Increment(failureExitCode, clientInternalError)\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/rest/OWNERS",
    "content": "# See the OWNERS docs at https://go.k8s.io/owners\n\nreviewers:\n  - thockin\n  - smarterclayton\n  - caesarxuchao\n  - wojtek-t\n  - deads2k\n  - liggitt\n  - sttts\n  - luxas\n  - dims\n  - cjcullen\n  - lojies\n"
  },
  {
    "path": "vendor/k8s.io/client-go/rest/client.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage rest\n\nimport (\n\t\"fmt\"\n\t\"mime\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"os\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\t\"github.com/munnerz/goautoneg\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/types\"\n\tclientfeatures \"k8s.io/client-go/features\"\n\t\"k8s.io/client-go/util/flowcontrol\"\n)\n\nconst (\n\t// Environment variables: Note that the duration should be long enough that the backoff\n\t// persists for some reasonable time (i.e. 120 seconds).  The typical base might be \"1\".\n\tenvBackoffBase     = \"KUBE_CLIENT_BACKOFF_BASE\"\n\tenvBackoffDuration = \"KUBE_CLIENT_BACKOFF_DURATION\"\n)\n\n// Interface captures the set of operations for generically interacting with Kubernetes REST apis.\ntype Interface interface {\n\tGetRateLimiter() flowcontrol.RateLimiter\n\tVerb(verb string) *Request\n\tPost() *Request\n\tPut() *Request\n\tPatch(pt types.PatchType) *Request\n\tGet() *Request\n\tDelete() *Request\n\tAPIVersion() schema.GroupVersion\n}\n\n// ClientContentConfig controls how RESTClient communicates with the server.\n//\n// TODO: ContentConfig will be updated to accept a Negotiator instead of a\n// NegotiatedSerializer and NegotiatedSerializer will be removed.\ntype ClientContentConfig struct {\n\t// AcceptContentTypes specifies the types the client will accept and is optional.\n\t// If not set, ContentType will be used to define the Accept header\n\tAcceptContentTypes string\n\t// ContentType specifies the wire format used to communicate with the server.\n\t// This value will be set as the Accept header on requests made to the server if\n\t// AcceptContentTypes is not set, and as the default content type on any object\n\t// sent to the server. If not set, \"application/json\" is used.\n\tContentType string\n\t// GroupVersion is the API version to talk to. Must be provided when initializing\n\t// a RESTClient directly. When initializing a Client, will be set with the default\n\t// code version. This is used as the default group version for VersionedParams.\n\tGroupVersion schema.GroupVersion\n\t// Negotiator is used for obtaining encoders and decoders for multiple\n\t// supported media types.\n\tNegotiator runtime.ClientNegotiator\n}\n\n// RESTClient imposes common Kubernetes API conventions on a set of resource paths.\n// The baseURL is expected to point to an HTTP or HTTPS path that is the parent\n// of one or more resources.  The server should return a decodable API resource\n// object, or an api.Status object which contains information about the reason for\n// any failure.\n//\n// Most consumers should use client.New() to get a Kubernetes API client.\ntype RESTClient struct {\n\t// base is the root URL for all invocations of the client\n\tbase *url.URL\n\t// versionedAPIPath is a path segment connecting the base URL to the resource root\n\tversionedAPIPath string\n\n\t// content describes how a RESTClient encodes and decodes responses.\n\tcontent requestClientContentConfigProvider\n\n\t// creates BackoffManager that is passed to requests.\n\tcreateBackoffMgr func() BackoffManager\n\n\t// rateLimiter is shared among all requests created by this client unless specifically\n\t// overridden.\n\trateLimiter flowcontrol.RateLimiter\n\n\t// warningHandler is shared among all requests created by this client.\n\t// If not set, defaultWarningHandler is used.\n\twarningHandler WarningHandler\n\n\t// Set specific behavior of the client.  If not set http.DefaultClient will be used.\n\tClient *http.Client\n}\n\n// NewRESTClient creates a new RESTClient. This client performs generic REST functions\n// such as Get, Put, Post, and Delete on specified paths.\nfunc NewRESTClient(baseURL *url.URL, versionedAPIPath string, config ClientContentConfig, rateLimiter flowcontrol.RateLimiter, client *http.Client) (*RESTClient, error) {\n\tbase := *baseURL\n\tif !strings.HasSuffix(base.Path, \"/\") {\n\t\tbase.Path += \"/\"\n\t}\n\tbase.RawQuery = \"\"\n\tbase.Fragment = \"\"\n\n\treturn &RESTClient{\n\t\tbase:             &base,\n\t\tversionedAPIPath: versionedAPIPath,\n\t\tcontent:          requestClientContentConfigProvider{base: scrubCBORContentConfigIfDisabled(config)},\n\t\tcreateBackoffMgr: readExpBackoffConfig,\n\t\trateLimiter:      rateLimiter,\n\t\tClient:           client,\n\t}, nil\n}\n\nfunc scrubCBORContentConfigIfDisabled(content ClientContentConfig) ClientContentConfig {\n\tif clientfeatures.FeatureGates().Enabled(clientfeatures.ClientsAllowCBOR) {\n\t\tcontent.Negotiator = clientNegotiatorWithCBORSequenceStreamDecoder{content.Negotiator}\n\t\treturn content\n\t}\n\n\tif mediatype, _, err := mime.ParseMediaType(content.ContentType); err == nil && mediatype == \"application/cbor\" {\n\t\tcontent.ContentType = \"application/json\"\n\t}\n\n\tclauses := goautoneg.ParseAccept(content.AcceptContentTypes)\n\tscrubbed := false\n\tfor i, clause := range clauses {\n\t\tif clause.Type == \"application\" && clause.SubType == \"cbor\" {\n\t\t\tscrubbed = true\n\t\t\tclauses[i].SubType = \"json\"\n\t\t}\n\t}\n\tif !scrubbed {\n\t\t// No application/cbor in AcceptContentTypes, nothing more to do.\n\t\treturn content\n\t}\n\n\tparts := make([]string, 0, len(clauses))\n\tfor _, clause := range clauses {\n\t\t// ParseAccept does not store the parameter \"q\" in Params.\n\t\tparams := clause.Params\n\t\tif clause.Q < 1 { // omit q=1, it's the default\n\t\t\tif params == nil {\n\t\t\t\tparams = make(map[string]string, 1)\n\t\t\t}\n\t\t\tparams[\"q\"] = strconv.FormatFloat(clause.Q, 'g', 3, 32)\n\t\t}\n\t\tparts = append(parts, mime.FormatMediaType(fmt.Sprintf(\"%s/%s\", clause.Type, clause.SubType), params))\n\t}\n\tcontent.AcceptContentTypes = strings.Join(parts, \",\")\n\n\treturn content\n}\n\n// GetRateLimiter returns rate limiter for a given client, or nil if it's called on a nil client\nfunc (c *RESTClient) GetRateLimiter() flowcontrol.RateLimiter {\n\tif c == nil {\n\t\treturn nil\n\t}\n\treturn c.rateLimiter\n}\n\n// readExpBackoffConfig handles the internal logic of determining what the\n// backoff policy is.  By default if no information is available, NoBackoff.\n// TODO Generalize this see #17727 .\nfunc readExpBackoffConfig() BackoffManager {\n\tbackoffBase := os.Getenv(envBackoffBase)\n\tbackoffDuration := os.Getenv(envBackoffDuration)\n\n\tbackoffBaseInt, errBase := strconv.ParseInt(backoffBase, 10, 64)\n\tbackoffDurationInt, errDuration := strconv.ParseInt(backoffDuration, 10, 64)\n\tif errBase != nil || errDuration != nil {\n\t\treturn &NoBackoff{}\n\t}\n\treturn &URLBackoff{\n\t\tBackoff: flowcontrol.NewBackOff(\n\t\t\ttime.Duration(backoffBaseInt)*time.Second,\n\t\t\ttime.Duration(backoffDurationInt)*time.Second)}\n}\n\n// Verb begins a request with a verb (GET, POST, PUT, DELETE).\n//\n// Example usage of RESTClient's request building interface:\n// c, err := NewRESTClient(...)\n// if err != nil { ... }\n// resp, err := c.Verb(\"GET\").\n//\n//\tPath(\"pods\").\n//\tSelectorParam(\"labels\", \"area=staging\").\n//\tTimeout(10*time.Second).\n//\tDo()\n//\n// if err != nil { ... }\n// list, ok := resp.(*api.PodList)\nfunc (c *RESTClient) Verb(verb string) *Request {\n\treturn NewRequest(c).Verb(verb)\n}\n\n// Post begins a POST request. Short for c.Verb(\"POST\").\nfunc (c *RESTClient) Post() *Request {\n\treturn c.Verb(\"POST\")\n}\n\n// Put begins a PUT request. Short for c.Verb(\"PUT\").\nfunc (c *RESTClient) Put() *Request {\n\treturn c.Verb(\"PUT\")\n}\n\n// Patch begins a PATCH request. Short for c.Verb(\"Patch\").\nfunc (c *RESTClient) Patch(pt types.PatchType) *Request {\n\treturn c.Verb(\"PATCH\").SetHeader(\"Content-Type\", string(pt))\n}\n\n// Get begins a GET request. Short for c.Verb(\"GET\").\nfunc (c *RESTClient) Get() *Request {\n\treturn c.Verb(\"GET\")\n}\n\n// Delete begins a DELETE request. Short for c.Verb(\"DELETE\").\nfunc (c *RESTClient) Delete() *Request {\n\treturn c.Verb(\"DELETE\")\n}\n\n// APIVersion returns the APIVersion this RESTClient is expected to use.\nfunc (c *RESTClient) APIVersion() schema.GroupVersion {\n\tconfig, _ := c.content.GetClientContentConfig()\n\treturn config.GroupVersion\n}\n\n// requestClientContentConfigProvider observes HTTP 415 (Unsupported Media Type) responses to detect\n// that the server does not understand CBOR. Once this has happened, future requests are forced to\n// use JSON so they can succeed. This is convenient for client users that want to prefer CBOR, but\n// also need to interoperate with older servers so requests do not permanently fail. The clients\n// will not default to using CBOR until at least all supported kube-apiservers have enable-CBOR\n// locked to true, so this path will be rarely taken. Additionally, all generated clients accessing\n// built-in kube resources are forced to protobuf, so those will not degrade to JSON.\ntype requestClientContentConfigProvider struct {\n\tbase ClientContentConfig\n\n\t// Becomes permanently true if a server responds with HTTP 415 (Unsupported Media Type) to a\n\t// request with \"Content-Type\" header containing the CBOR media type.\n\tsawUnsupportedMediaTypeForCBOR atomic.Bool\n}\n\n// GetClientContentConfig returns the ClientContentConfig that should be used for new requests by\n// this client and true if the request ContentType was selected by default.\nfunc (p *requestClientContentConfigProvider) GetClientContentConfig() (ClientContentConfig, bool) {\n\tconfig := p.base\n\n\tdefaulted := config.ContentType == \"\"\n\tif defaulted {\n\t\tconfig.ContentType = \"application/json\"\n\t}\n\n\tif !clientfeatures.FeatureGates().Enabled(clientfeatures.ClientsAllowCBOR) {\n\t\treturn config, defaulted\n\t}\n\n\tif defaulted && clientfeatures.FeatureGates().Enabled(clientfeatures.ClientsPreferCBOR) {\n\t\tconfig.ContentType = \"application/cbor\"\n\t}\n\n\tif sawUnsupportedMediaTypeForCBOR := p.sawUnsupportedMediaTypeForCBOR.Load(); !sawUnsupportedMediaTypeForCBOR {\n\t\treturn config, defaulted\n\t}\n\n\tif mediaType, _, _ := mime.ParseMediaType(config.ContentType); mediaType != runtime.ContentTypeCBOR {\n\t\treturn config, defaulted\n\t}\n\n\t// The effective ContentType is CBOR and the client has previously received an HTTP 415 in\n\t// response to a CBOR request. Override ContentType to JSON.\n\tconfig.ContentType = runtime.ContentTypeJSON\n\treturn config, defaulted\n}\n\n// UnsupportedMediaType reports that the server has responded to a request with HTTP 415 Unsupported\n// Media Type.\nfunc (p *requestClientContentConfigProvider) UnsupportedMediaType(requestContentType string) {\n\tif !clientfeatures.FeatureGates().Enabled(clientfeatures.ClientsAllowCBOR) {\n\t\treturn\n\t}\n\n\t// This could be extended to consider the Content-Encoding request header, the Accept and\n\t// Accept-Encoding response headers, the request method, and URI (as mentioned in\n\t// https://www.rfc-editor.org/rfc/rfc9110.html#section-15.5.16). The request Content-Type\n\t// header is sufficient to implement a blanket CBOR fallback mechanism.\n\trequestContentType, _, _ = mime.ParseMediaType(requestContentType)\n\tswitch requestContentType {\n\tcase runtime.ContentTypeCBOR, string(types.ApplyCBORPatchType):\n\t\tp.sawUnsupportedMediaTypeForCBOR.Store(true)\n\t}\n}\n\n// clientNegotiatorWithCBORSequenceStreamDecoder is a ClientNegotiator that delegates to another\n// ClientNegotiator to select the appropriate Encoder or Decoder for a given media type. As a\n// special case, it will resolve \"application/cbor-seq\" (a CBOR Sequence, the concatenation of zero\n// or more CBOR data items) as an alias for \"application/cbor\" (exactly one CBOR data item) when\n// selecting a stream decoder.\ntype clientNegotiatorWithCBORSequenceStreamDecoder struct {\n\tnegotiator runtime.ClientNegotiator\n}\n\nfunc (n clientNegotiatorWithCBORSequenceStreamDecoder) Encoder(contentType string, params map[string]string) (runtime.Encoder, error) {\n\treturn n.negotiator.Encoder(contentType, params)\n}\n\nfunc (n clientNegotiatorWithCBORSequenceStreamDecoder) Decoder(contentType string, params map[string]string) (runtime.Decoder, error) {\n\treturn n.negotiator.Decoder(contentType, params)\n}\n\nfunc (n clientNegotiatorWithCBORSequenceStreamDecoder) StreamDecoder(contentType string, params map[string]string) (runtime.Decoder, runtime.Serializer, runtime.Framer, error) {\n\tif !clientfeatures.FeatureGates().Enabled(clientfeatures.ClientsAllowCBOR) {\n\t\treturn n.negotiator.StreamDecoder(contentType, params)\n\t}\n\n\tswitch contentType {\n\tcase runtime.ContentTypeCBORSequence:\n\t\treturn n.negotiator.StreamDecoder(runtime.ContentTypeCBOR, params)\n\tcase runtime.ContentTypeCBOR:\n\t\t// This media type is only appropriate for exactly one data item, not the zero or\n\t\t// more events of a watch stream.\n\t\treturn nil, nil, nil, runtime.NegotiateError{ContentType: contentType, Stream: true}\n\tdefault:\n\t\treturn n.negotiator.StreamDecoder(contentType, params)\n\t}\n\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/rest/config.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage rest\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"net\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"os\"\n\t\"path/filepath\"\n\tgruntime \"runtime\"\n\t\"strings\"\n\t\"time\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/runtime/serializer\"\n\t\"k8s.io/apimachinery/pkg/runtime/serializer/cbor\"\n\t\"k8s.io/client-go/features\"\n\t\"k8s.io/client-go/pkg/version\"\n\tclientcmdapi \"k8s.io/client-go/tools/clientcmd/api\"\n\t\"k8s.io/client-go/transport\"\n\tcertutil \"k8s.io/client-go/util/cert\"\n\t\"k8s.io/client-go/util/flowcontrol\"\n\t\"k8s.io/klog/v2\"\n)\n\nconst (\n\tDefaultQPS   float32 = 5.0\n\tDefaultBurst int     = 10\n)\n\nvar ErrNotInCluster = errors.New(\"unable to load in-cluster configuration, KUBERNETES_SERVICE_HOST and KUBERNETES_SERVICE_PORT must be defined\")\n\n// Config holds the common attributes that can be passed to a Kubernetes client on\n// initialization.\ntype Config struct {\n\t// Host must be a host string, a host:port pair, or a URL to the base of the apiserver.\n\t// If a URL is given then the (optional) Path of that URL represents a prefix that must\n\t// be appended to all request URIs used to access the apiserver. This allows a frontend\n\t// proxy to easily relocate all of the apiserver endpoints.\n\tHost string\n\t// APIPath is a sub-path that points to an API root.\n\tAPIPath string\n\n\t// ContentConfig contains settings that affect how objects are transformed when\n\t// sent to the server.\n\tContentConfig\n\n\t// Server requires Basic authentication\n\tUsername string\n\tPassword string `datapolicy:\"password\"`\n\n\t// Server requires Bearer authentication. This client will not attempt to use\n\t// refresh tokens for an OAuth2 flow.\n\t// TODO: demonstrate an OAuth2 compatible client.\n\tBearerToken string `datapolicy:\"token\"`\n\n\t// Path to a file containing a BearerToken.\n\t// If set, the contents are periodically read.\n\t// The last successfully read value takes precedence over BearerToken.\n\tBearerTokenFile string\n\n\t// Impersonate is the configuration that RESTClient will use for impersonation.\n\tImpersonate ImpersonationConfig\n\n\t// Server requires plugin-specified authentication.\n\tAuthProvider *clientcmdapi.AuthProviderConfig\n\n\t// Callback to persist config for AuthProvider.\n\tAuthConfigPersister AuthProviderConfigPersister\n\n\t// Exec-based authentication provider.\n\tExecProvider *clientcmdapi.ExecConfig\n\n\t// TLSClientConfig contains settings to enable transport layer security\n\tTLSClientConfig\n\n\t// UserAgent is an optional field that specifies the caller of this request.\n\tUserAgent string\n\n\t// DisableCompression bypasses automatic GZip compression requests to the\n\t// server.\n\tDisableCompression bool\n\n\t// Transport may be used for custom HTTP behavior. This attribute may not\n\t// be specified with the TLS client certificate options. Use WrapTransport\n\t// to provide additional per-server middleware behavior.\n\tTransport http.RoundTripper\n\t// WrapTransport will be invoked for custom HTTP behavior after the underlying\n\t// transport is initialized (either the transport created from TLSClientConfig,\n\t// Transport, or http.DefaultTransport). The config may layer other RoundTrippers\n\t// on top of the returned RoundTripper.\n\t//\n\t// A future release will change this field to an array. Use config.Wrap()\n\t// instead of setting this value directly.\n\tWrapTransport transport.WrapperFunc\n\n\t// QPS indicates the maximum QPS to the master from this client.\n\t// If it's zero, the created RESTClient will use DefaultQPS: 5\n\t//\n\t// Setting this to a negative value will disable client-side ratelimiting\n\t// unless `Ratelimiter` is also set.\n\tQPS float32\n\n\t// Maximum burst for throttle.\n\t// If it's zero, the created RESTClient will use DefaultBurst: 10.\n\tBurst int\n\n\t// Rate limiter for limiting connections to the master from this client. If present overwrites QPS/Burst\n\tRateLimiter flowcontrol.RateLimiter\n\n\t// WarningHandler handles warnings in server responses.\n\t// If not set, the default warning handler is used.\n\t// See documentation for SetDefaultWarningHandler() for details.\n\tWarningHandler WarningHandler\n\n\t// The maximum length of time to wait before giving up on a server request. A value of zero means no timeout.\n\tTimeout time.Duration\n\n\t// Dial specifies the dial function for creating unencrypted TCP connections.\n\tDial func(ctx context.Context, network, address string) (net.Conn, error)\n\n\t// Proxy is the proxy func to be used for all requests made by this\n\t// transport. If Proxy is nil, http.ProxyFromEnvironment is used. If Proxy\n\t// returns a nil *URL, no proxy is used.\n\t//\n\t// socks5 proxying does not currently support spdy streaming endpoints.\n\tProxy func(*http.Request) (*url.URL, error)\n\n\t// Version forces a specific version to be used (if registered)\n\t// Do we need this?\n\t// Version string\n}\n\nvar _ fmt.Stringer = new(Config)\nvar _ fmt.GoStringer = new(Config)\n\ntype sanitizedConfig *Config\n\ntype sanitizedAuthConfigPersister struct{ AuthProviderConfigPersister }\n\nfunc (sanitizedAuthConfigPersister) GoString() string {\n\treturn \"rest.AuthProviderConfigPersister(--- REDACTED ---)\"\n}\nfunc (sanitizedAuthConfigPersister) String() string {\n\treturn \"rest.AuthProviderConfigPersister(--- REDACTED ---)\"\n}\n\ntype sanitizedObject struct{ runtime.Object }\n\nfunc (sanitizedObject) GoString() string {\n\treturn \"runtime.Object(--- REDACTED ---)\"\n}\nfunc (sanitizedObject) String() string {\n\treturn \"runtime.Object(--- REDACTED ---)\"\n}\n\n// GoString implements fmt.GoStringer and sanitizes sensitive fields of Config\n// to prevent accidental leaking via logs.\nfunc (c *Config) GoString() string {\n\treturn c.String()\n}\n\n// String implements fmt.Stringer and sanitizes sensitive fields of Config to\n// prevent accidental leaking via logs.\nfunc (c *Config) String() string {\n\tif c == nil {\n\t\treturn \"<nil>\"\n\t}\n\tcc := sanitizedConfig(CopyConfig(c))\n\t// Explicitly mark non-empty credential fields as redacted.\n\tif cc.Password != \"\" {\n\t\tcc.Password = \"--- REDACTED ---\"\n\t}\n\tif cc.BearerToken != \"\" {\n\t\tcc.BearerToken = \"--- REDACTED ---\"\n\t}\n\tif cc.AuthConfigPersister != nil {\n\t\tcc.AuthConfigPersister = sanitizedAuthConfigPersister{cc.AuthConfigPersister}\n\t}\n\tif cc.ExecProvider != nil && cc.ExecProvider.Config != nil {\n\t\tcc.ExecProvider.Config = sanitizedObject{Object: cc.ExecProvider.Config}\n\t}\n\treturn fmt.Sprintf(\"%#v\", cc)\n}\n\n// ImpersonationConfig has all the available impersonation options\ntype ImpersonationConfig struct {\n\t// UserName is the username to impersonate on each request.\n\tUserName string\n\t// UID is a unique value that identifies the user.\n\tUID string\n\t// Groups are the groups to impersonate on each request.\n\tGroups []string\n\t// Extra is a free-form field which can be used to link some authentication information\n\t// to authorization information.  This field allows you to impersonate it.\n\tExtra map[string][]string\n}\n\n// +k8s:deepcopy-gen=true\n// TLSClientConfig contains settings to enable transport layer security\ntype TLSClientConfig struct {\n\t// Server should be accessed without verifying the TLS certificate. For testing only.\n\tInsecure bool\n\t// ServerName is passed to the server for SNI and is used in the client to check server\n\t// certificates against. If ServerName is empty, the hostname used to contact the\n\t// server is used.\n\tServerName string\n\n\t// Server requires TLS client certificate authentication\n\tCertFile string\n\t// Server requires TLS client certificate authentication\n\tKeyFile string\n\t// Trusted root certificates for server\n\tCAFile string\n\n\t// CertData holds PEM-encoded bytes (typically read from a client certificate file).\n\t// CertData takes precedence over CertFile\n\tCertData []byte\n\t// KeyData holds PEM-encoded bytes (typically read from a client certificate key file).\n\t// KeyData takes precedence over KeyFile\n\tKeyData []byte `datapolicy:\"security-key\"`\n\t// CAData holds PEM-encoded bytes (typically read from a root certificates bundle).\n\t// CAData takes precedence over CAFile\n\tCAData []byte\n\n\t// NextProtos is a list of supported application level protocols, in order of preference.\n\t// Used to populate tls.Config.NextProtos.\n\t// To indicate to the server http/1.1 is preferred over http/2, set to [\"http/1.1\", \"h2\"] (though the server is free to ignore that preference).\n\t// To use only http/1.1, set to [\"http/1.1\"].\n\tNextProtos []string\n}\n\nvar _ fmt.Stringer = TLSClientConfig{}\nvar _ fmt.GoStringer = TLSClientConfig{}\n\ntype sanitizedTLSClientConfig TLSClientConfig\n\n// GoString implements fmt.GoStringer and sanitizes sensitive fields of\n// TLSClientConfig to prevent accidental leaking via logs.\nfunc (c TLSClientConfig) GoString() string {\n\treturn c.String()\n}\n\n// String implements fmt.Stringer and sanitizes sensitive fields of\n// TLSClientConfig to prevent accidental leaking via logs.\nfunc (c TLSClientConfig) String() string {\n\tcc := sanitizedTLSClientConfig{\n\t\tInsecure:   c.Insecure,\n\t\tServerName: c.ServerName,\n\t\tCertFile:   c.CertFile,\n\t\tKeyFile:    c.KeyFile,\n\t\tCAFile:     c.CAFile,\n\t\tCertData:   c.CertData,\n\t\tKeyData:    c.KeyData,\n\t\tCAData:     c.CAData,\n\t\tNextProtos: c.NextProtos,\n\t}\n\t// Explicitly mark non-empty credential fields as redacted.\n\tif len(cc.CertData) != 0 {\n\t\tcc.CertData = []byte(\"--- TRUNCATED ---\")\n\t}\n\tif len(cc.KeyData) != 0 {\n\t\tcc.KeyData = []byte(\"--- REDACTED ---\")\n\t}\n\treturn fmt.Sprintf(\"%#v\", cc)\n}\n\ntype ContentConfig struct {\n\t// AcceptContentTypes specifies the types the client will accept and is optional.\n\t// If not set, ContentType will be used to define the Accept header\n\tAcceptContentTypes string\n\t// ContentType specifies the wire format used to communicate with the server.\n\t// This value will be set as the Accept header on requests made to the server, and\n\t// as the default content type on any object sent to the server. If not set,\n\t// \"application/json\" is used.\n\tContentType string\n\t// GroupVersion is the API version to talk to. Must be provided when initializing\n\t// a RESTClient directly. When initializing a Client, will be set with the default\n\t// code version.\n\tGroupVersion *schema.GroupVersion\n\t// NegotiatedSerializer is used for obtaining encoders and decoders for multiple\n\t// supported media types.\n\t//\n\t// TODO: NegotiatedSerializer will be phased out as internal clients are removed\n\t//   from Kubernetes.\n\tNegotiatedSerializer runtime.NegotiatedSerializer\n}\n\n// RESTClientFor returns a RESTClient that satisfies the requested attributes on a client Config\n// object. Note that a RESTClient may require fields that are optional when initializing a Client.\n// A RESTClient created by this method is generic - it expects to operate on an API that follows\n// the Kubernetes conventions, but may not be the Kubernetes API.\n// RESTClientFor is equivalent to calling RESTClientForConfigAndClient(config, httpClient),\n// where httpClient was generated with HTTPClientFor(config).\nfunc RESTClientFor(config *Config) (*RESTClient, error) {\n\tif config.GroupVersion == nil {\n\t\treturn nil, fmt.Errorf(\"GroupVersion is required when initializing a RESTClient\")\n\t}\n\tif config.NegotiatedSerializer == nil {\n\t\treturn nil, fmt.Errorf(\"NegotiatedSerializer is required when initializing a RESTClient\")\n\t}\n\n\t// Validate config.Host before constructing the transport/client so we can fail fast.\n\t// ServerURL will be obtained later in RESTClientForConfigAndClient()\n\t_, _, err := DefaultServerUrlFor(config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\thttpClient, err := HTTPClientFor(config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn RESTClientForConfigAndClient(config, httpClient)\n}\n\n// RESTClientForConfigAndClient returns a RESTClient that satisfies the requested attributes on a\n// client Config object.\n// Unlike RESTClientFor, RESTClientForConfigAndClient allows to pass an http.Client that is shared\n// between all the API Groups and Versions.\n// Note that the http client takes precedence over the transport values configured.\n// The http client defaults to the `http.DefaultClient` if nil.\nfunc RESTClientForConfigAndClient(config *Config, httpClient *http.Client) (*RESTClient, error) {\n\tif config.GroupVersion == nil {\n\t\treturn nil, fmt.Errorf(\"GroupVersion is required when initializing a RESTClient\")\n\t}\n\tif config.NegotiatedSerializer == nil {\n\t\treturn nil, fmt.Errorf(\"NegotiatedSerializer is required when initializing a RESTClient\")\n\t}\n\n\tbaseURL, versionedAPIPath, err := DefaultServerUrlFor(config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\trateLimiter := config.RateLimiter\n\tif rateLimiter == nil {\n\t\tqps := config.QPS\n\t\tif config.QPS == 0.0 {\n\t\t\tqps = DefaultQPS\n\t\t}\n\t\tburst := config.Burst\n\t\tif config.Burst == 0 {\n\t\t\tburst = DefaultBurst\n\t\t}\n\t\tif qps > 0 {\n\t\t\trateLimiter = flowcontrol.NewTokenBucketRateLimiter(qps, burst)\n\t\t}\n\t}\n\n\tvar gv schema.GroupVersion\n\tif config.GroupVersion != nil {\n\t\tgv = *config.GroupVersion\n\t}\n\tclientContent := ClientContentConfig{\n\t\tAcceptContentTypes: config.AcceptContentTypes,\n\t\tContentType:        config.ContentType,\n\t\tGroupVersion:       gv,\n\t\tNegotiator:         runtime.NewClientNegotiator(config.NegotiatedSerializer, gv),\n\t}\n\n\trestClient, err := NewRESTClient(baseURL, versionedAPIPath, clientContent, rateLimiter, httpClient)\n\tif err == nil && config.WarningHandler != nil {\n\t\trestClient.warningHandler = config.WarningHandler\n\t}\n\treturn restClient, err\n}\n\n// UnversionedRESTClientFor is the same as RESTClientFor, except that it allows\n// the config.Version to be empty.\nfunc UnversionedRESTClientFor(config *Config) (*RESTClient, error) {\n\tif config.NegotiatedSerializer == nil {\n\t\treturn nil, fmt.Errorf(\"NegotiatedSerializer is required when initializing a RESTClient\")\n\t}\n\n\t// Validate config.Host before constructing the transport/client so we can fail fast.\n\t// ServerURL will be obtained later in UnversionedRESTClientForConfigAndClient()\n\t_, _, err := DefaultServerUrlFor(config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\thttpClient, err := HTTPClientFor(config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn UnversionedRESTClientForConfigAndClient(config, httpClient)\n}\n\n// UnversionedRESTClientForConfigAndClient is the same as RESTClientForConfigAndClient,\n// except that it allows the config.Version to be empty.\nfunc UnversionedRESTClientForConfigAndClient(config *Config, httpClient *http.Client) (*RESTClient, error) {\n\tif config.NegotiatedSerializer == nil {\n\t\treturn nil, fmt.Errorf(\"NegotiatedSerializer is required when initializing a RESTClient\")\n\t}\n\n\tbaseURL, versionedAPIPath, err := DefaultServerUrlFor(config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\trateLimiter := config.RateLimiter\n\tif rateLimiter == nil {\n\t\tqps := config.QPS\n\t\tif config.QPS == 0.0 {\n\t\t\tqps = DefaultQPS\n\t\t}\n\t\tburst := config.Burst\n\t\tif config.Burst == 0 {\n\t\t\tburst = DefaultBurst\n\t\t}\n\t\tif qps > 0 {\n\t\t\trateLimiter = flowcontrol.NewTokenBucketRateLimiter(qps, burst)\n\t\t}\n\t}\n\n\tgv := metav1.SchemeGroupVersion\n\tif config.GroupVersion != nil {\n\t\tgv = *config.GroupVersion\n\t}\n\tclientContent := ClientContentConfig{\n\t\tAcceptContentTypes: config.AcceptContentTypes,\n\t\tContentType:        config.ContentType,\n\t\tGroupVersion:       gv,\n\t\tNegotiator:         runtime.NewClientNegotiator(config.NegotiatedSerializer, gv),\n\t}\n\n\trestClient, err := NewRESTClient(baseURL, versionedAPIPath, clientContent, rateLimiter, httpClient)\n\tif err == nil && config.WarningHandler != nil {\n\t\trestClient.warningHandler = config.WarningHandler\n\t}\n\treturn restClient, err\n}\n\n// SetKubernetesDefaults sets default values on the provided client config for accessing the\n// Kubernetes API or returns an error if any of the defaults are impossible or invalid.\nfunc SetKubernetesDefaults(config *Config) error {\n\tif len(config.UserAgent) == 0 {\n\t\tconfig.UserAgent = DefaultKubernetesUserAgent()\n\t}\n\treturn nil\n}\n\n// adjustCommit returns sufficient significant figures of the commit's git hash.\nfunc adjustCommit(c string) string {\n\tif len(c) == 0 {\n\t\treturn \"unknown\"\n\t}\n\tif len(c) > 7 {\n\t\treturn c[:7]\n\t}\n\treturn c\n}\n\n// adjustVersion strips \"alpha\", \"beta\", etc. from version in form\n// major.minor.patch-[alpha|beta|etc].\nfunc adjustVersion(v string) string {\n\tif len(v) == 0 {\n\t\treturn \"unknown\"\n\t}\n\tseg := strings.SplitN(v, \"-\", 2)\n\treturn seg[0]\n}\n\n// adjustCommand returns the last component of the\n// OS-specific command path for use in User-Agent.\nfunc adjustCommand(p string) string {\n\t// Unlikely, but better than returning \"\".\n\tif len(p) == 0 {\n\t\treturn \"unknown\"\n\t}\n\treturn filepath.Base(p)\n}\n\n// buildUserAgent builds a User-Agent string from given args.\nfunc buildUserAgent(command, version, os, arch, commit string) string {\n\treturn fmt.Sprintf(\n\t\t\"%s/%s (%s/%s) kubernetes/%s\", command, version, os, arch, commit)\n}\n\n// DefaultKubernetesUserAgent returns a User-Agent string built from static global vars.\nfunc DefaultKubernetesUserAgent() string {\n\treturn buildUserAgent(\n\t\tadjustCommand(os.Args[0]),\n\t\tadjustVersion(version.Get().GitVersion),\n\t\tgruntime.GOOS,\n\t\tgruntime.GOARCH,\n\t\tadjustCommit(version.Get().GitCommit))\n}\n\n// InClusterConfig returns a config object which uses the service account\n// kubernetes gives to pods. It's intended for clients that expect to be\n// running inside a pod running on kubernetes. It will return ErrNotInCluster\n// if called from a process not running in a kubernetes environment.\nfunc InClusterConfig() (*Config, error) {\n\tconst (\n\t\ttokenFile  = \"/var/run/secrets/kubernetes.io/serviceaccount/token\"\n\t\trootCAFile = \"/var/run/secrets/kubernetes.io/serviceaccount/ca.crt\"\n\t)\n\thost, port := os.Getenv(\"KUBERNETES_SERVICE_HOST\"), os.Getenv(\"KUBERNETES_SERVICE_PORT\")\n\tif len(host) == 0 || len(port) == 0 {\n\t\treturn nil, ErrNotInCluster\n\t}\n\n\ttoken, err := os.ReadFile(tokenFile)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\ttlsClientConfig := TLSClientConfig{}\n\n\tif _, err := certutil.NewPool(rootCAFile); err != nil {\n\t\tklog.Errorf(\"Expected to load root CA config from %s, but got err: %v\", rootCAFile, err)\n\t} else {\n\t\ttlsClientConfig.CAFile = rootCAFile\n\t}\n\n\treturn &Config{\n\t\t// TODO: switch to using cluster DNS.\n\t\tHost:            \"https://\" + net.JoinHostPort(host, port),\n\t\tTLSClientConfig: tlsClientConfig,\n\t\tBearerToken:     string(token),\n\t\tBearerTokenFile: tokenFile,\n\t}, nil\n}\n\n// IsConfigTransportTLS returns true if and only if the provided\n// config will result in a protected connection to the server when it\n// is passed to restclient.RESTClientFor().  Use to determine when to\n// send credentials over the wire.\n//\n// Note: the Insecure flag is ignored when testing for this value, so MITM attacks are\n// still possible.\nfunc IsConfigTransportTLS(config Config) bool {\n\tbaseURL, _, err := DefaultServerUrlFor(&config)\n\tif err != nil {\n\t\treturn false\n\t}\n\treturn baseURL.Scheme == \"https\"\n}\n\n// LoadTLSFiles copies the data from the CertFile, KeyFile, and CAFile fields into the CertData,\n// KeyData, and CAFile fields, or returns an error. If no error is returned, all three fields are\n// either populated or were empty to start.\nfunc LoadTLSFiles(c *Config) error {\n\tvar err error\n\tc.CAData, err = dataFromSliceOrFile(c.CAData, c.CAFile)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tc.CertData, err = dataFromSliceOrFile(c.CertData, c.CertFile)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tc.KeyData, err = dataFromSliceOrFile(c.KeyData, c.KeyFile)\n\treturn err\n}\n\n// dataFromSliceOrFile returns data from the slice (if non-empty), or from the file,\n// or an error if an error occurred reading the file\nfunc dataFromSliceOrFile(data []byte, file string) ([]byte, error) {\n\tif len(data) > 0 {\n\t\treturn data, nil\n\t}\n\tif len(file) > 0 {\n\t\tfileData, err := os.ReadFile(file)\n\t\tif err != nil {\n\t\t\treturn []byte{}, err\n\t\t}\n\t\treturn fileData, nil\n\t}\n\treturn nil, nil\n}\n\nfunc AddUserAgent(config *Config, userAgent string) *Config {\n\tfullUserAgent := DefaultKubernetesUserAgent() + \"/\" + userAgent\n\tconfig.UserAgent = fullUserAgent\n\treturn config\n}\n\n// AnonymousClientConfig returns a copy of the given config with all user credentials (cert/key, bearer token, and username/password) and custom transports (WrapTransport, Transport) removed\nfunc AnonymousClientConfig(config *Config) *Config {\n\t// copy only known safe fields\n\treturn &Config{\n\t\tHost:          config.Host,\n\t\tAPIPath:       config.APIPath,\n\t\tContentConfig: config.ContentConfig,\n\t\tTLSClientConfig: TLSClientConfig{\n\t\t\tInsecure:   config.Insecure,\n\t\t\tServerName: config.ServerName,\n\t\t\tCAFile:     config.TLSClientConfig.CAFile,\n\t\t\tCAData:     config.TLSClientConfig.CAData,\n\t\t\tNextProtos: config.TLSClientConfig.NextProtos,\n\t\t},\n\t\tRateLimiter:        config.RateLimiter,\n\t\tWarningHandler:     config.WarningHandler,\n\t\tUserAgent:          config.UserAgent,\n\t\tDisableCompression: config.DisableCompression,\n\t\tQPS:                config.QPS,\n\t\tBurst:              config.Burst,\n\t\tTimeout:            config.Timeout,\n\t\tDial:               config.Dial,\n\t\tProxy:              config.Proxy,\n\t}\n}\n\n// CopyConfig returns a copy of the given config\nfunc CopyConfig(config *Config) *Config {\n\tc := &Config{\n\t\tHost:            config.Host,\n\t\tAPIPath:         config.APIPath,\n\t\tContentConfig:   config.ContentConfig,\n\t\tUsername:        config.Username,\n\t\tPassword:        config.Password,\n\t\tBearerToken:     config.BearerToken,\n\t\tBearerTokenFile: config.BearerTokenFile,\n\t\tImpersonate: ImpersonationConfig{\n\t\t\tUserName: config.Impersonate.UserName,\n\t\t\tUID:      config.Impersonate.UID,\n\t\t\tGroups:   config.Impersonate.Groups,\n\t\t\tExtra:    config.Impersonate.Extra,\n\t\t},\n\t\tAuthProvider:        config.AuthProvider,\n\t\tAuthConfigPersister: config.AuthConfigPersister,\n\t\tExecProvider:        config.ExecProvider,\n\t\tTLSClientConfig: TLSClientConfig{\n\t\t\tInsecure:   config.TLSClientConfig.Insecure,\n\t\t\tServerName: config.TLSClientConfig.ServerName,\n\t\t\tCertFile:   config.TLSClientConfig.CertFile,\n\t\t\tKeyFile:    config.TLSClientConfig.KeyFile,\n\t\t\tCAFile:     config.TLSClientConfig.CAFile,\n\t\t\tCertData:   config.TLSClientConfig.CertData,\n\t\t\tKeyData:    config.TLSClientConfig.KeyData,\n\t\t\tCAData:     config.TLSClientConfig.CAData,\n\t\t\tNextProtos: config.TLSClientConfig.NextProtos,\n\t\t},\n\t\tUserAgent:          config.UserAgent,\n\t\tDisableCompression: config.DisableCompression,\n\t\tTransport:          config.Transport,\n\t\tWrapTransport:      config.WrapTransport,\n\t\tQPS:                config.QPS,\n\t\tBurst:              config.Burst,\n\t\tRateLimiter:        config.RateLimiter,\n\t\tWarningHandler:     config.WarningHandler,\n\t\tTimeout:            config.Timeout,\n\t\tDial:               config.Dial,\n\t\tProxy:              config.Proxy,\n\t}\n\tif config.ExecProvider != nil && config.ExecProvider.Config != nil {\n\t\tc.ExecProvider.Config = config.ExecProvider.Config.DeepCopyObject()\n\t}\n\treturn c\n}\n\n// CodecFactoryForGeneratedClient returns the provided CodecFactory if there are no enabled client\n// feature gates affecting serialization. Otherwise, it constructs and returns a new CodecFactory\n// from the provided Scheme.\n//\n// This is supported ONLY for use by clients generated with client-gen. The caller is responsible\n// for ensuring that the CodecFactory argument was constructed using the Scheme argument.\nfunc CodecFactoryForGeneratedClient(scheme *runtime.Scheme, codecs serializer.CodecFactory) serializer.CodecFactory {\n\tif !features.FeatureGates().Enabled(features.ClientsAllowCBOR) {\n\t\t// NOTE: This assumes client-gen will not generate CBOR-enabled Codecs as long as\n\t\t// the feature gate exists.\n\t\treturn codecs\n\t}\n\n\treturn serializer.NewCodecFactory(scheme, serializer.WithSerializer(cbor.NewSerializerInfo))\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/rest/exec.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage rest\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"net/url\"\n\n\tclientauthenticationapi \"k8s.io/client-go/pkg/apis/clientauthentication\"\n)\n\n// This file contains Config logic related to exec credential plugins.\n\n// ConfigToExecCluster creates a clientauthenticationapi.Cluster with the corresponding fields from\n// the provided Config.\nfunc ConfigToExecCluster(config *Config) (*clientauthenticationapi.Cluster, error) {\n\tcaData, err := dataFromSliceOrFile(config.CAData, config.CAFile)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to load CA bundle for execProvider: %v\", err)\n\t}\n\n\tvar proxyURL string\n\tif config.Proxy != nil {\n\t\treq, err := http.NewRequest(\"\", config.Host, nil)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to create proxy URL request for execProvider: %w\", err)\n\t\t}\n\t\turl, err := config.Proxy(req)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"failed to get proxy URL for execProvider: %w\", err)\n\t\t}\n\t\tif url != nil {\n\t\t\tproxyURL = url.String()\n\t\t}\n\t}\n\n\treturn &clientauthenticationapi.Cluster{\n\t\tServer:                   config.Host,\n\t\tTLSServerName:            config.ServerName,\n\t\tInsecureSkipTLSVerify:    config.Insecure,\n\t\tCertificateAuthorityData: caData,\n\t\tProxyURL:                 proxyURL,\n\t\tDisableCompression:       config.DisableCompression,\n\t\tConfig:                   config.ExecProvider.Config,\n\t}, nil\n}\n\n// ExecClusterToConfig creates a Config with the corresponding fields from the provided\n// clientauthenticationapi.Cluster. The returned Config will be anonymous (i.e., it will not have\n// any authentication-related fields set).\nfunc ExecClusterToConfig(cluster *clientauthenticationapi.Cluster) (*Config, error) {\n\tvar proxy func(*http.Request) (*url.URL, error)\n\tif cluster.ProxyURL != \"\" {\n\t\tproxyURL, err := url.Parse(cluster.ProxyURL)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"cannot parse proxy URL: %w\", err)\n\t\t}\n\t\tproxy = http.ProxyURL(proxyURL)\n\t}\n\n\treturn &Config{\n\t\tHost: cluster.Server,\n\t\tTLSClientConfig: TLSClientConfig{\n\t\t\tInsecure:   cluster.InsecureSkipTLSVerify,\n\t\t\tServerName: cluster.TLSServerName,\n\t\t\tCAData:     cluster.CertificateAuthorityData,\n\t\t},\n\t\tProxy:              proxy,\n\t\tDisableCompression: cluster.DisableCompression,\n\t}, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/rest/fake/fake.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// This is made a separate package and should only be imported by tests, because\n// it imports testapi\npackage fake\n\nimport (\n\t\"net/http\"\n\t\"net/url\"\n\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/types\"\n\trestclient \"k8s.io/client-go/rest\"\n\t\"k8s.io/client-go/util/flowcontrol\"\n)\n\n// CreateHTTPClient creates an http.Client that will invoke the provided roundTripper func\n// when a request is made.\nfunc CreateHTTPClient(roundTripper func(*http.Request) (*http.Response, error)) *http.Client {\n\treturn &http.Client{\n\t\tTransport: roundTripperFunc(roundTripper),\n\t}\n}\n\ntype roundTripperFunc func(*http.Request) (*http.Response, error)\n\nfunc (f roundTripperFunc) RoundTrip(req *http.Request) (*http.Response, error) {\n\treturn f(req)\n}\n\n// RESTClient provides a fake RESTClient interface. It is used to mock network\n// interactions via a rest.Request, or to make them via the provided Client to\n// a specific server.\ntype RESTClient struct {\n\tNegotiatedSerializer runtime.NegotiatedSerializer\n\tGroupVersion         schema.GroupVersion\n\tVersionedAPIPath     string\n\n\t// Err is returned when any request would be made to the server. If Err is set,\n\t// Req will not be recorded, Resp will not be returned, and Client will not be\n\t// invoked.\n\tErr error\n\t// Req is set to the last request that was executed (had the methods Do/DoRaw) invoked.\n\tReq *http.Request\n\t// If Client is specified, the client will be invoked instead of returning Resp if\n\t// Err is not set.\n\tClient *http.Client\n\t// Resp is returned to the caller after Req is recorded, unless Err or Client are set.\n\tResp *http.Response\n}\n\nfunc (c *RESTClient) Get() *restclient.Request {\n\treturn c.Verb(\"GET\")\n}\n\nfunc (c *RESTClient) Put() *restclient.Request {\n\treturn c.Verb(\"PUT\")\n}\n\nfunc (c *RESTClient) Patch(pt types.PatchType) *restclient.Request {\n\treturn c.Verb(\"PATCH\").SetHeader(\"Content-Type\", string(pt))\n}\n\nfunc (c *RESTClient) Post() *restclient.Request {\n\treturn c.Verb(\"POST\")\n}\n\nfunc (c *RESTClient) Delete() *restclient.Request {\n\treturn c.Verb(\"DELETE\")\n}\n\nfunc (c *RESTClient) Verb(verb string) *restclient.Request {\n\treturn c.Request().Verb(verb)\n}\n\nfunc (c *RESTClient) APIVersion() schema.GroupVersion {\n\treturn c.GroupVersion\n}\n\nfunc (c *RESTClient) GetRateLimiter() flowcontrol.RateLimiter {\n\treturn nil\n}\n\nfunc (c *RESTClient) Request() *restclient.Request {\n\tconfig := restclient.ClientContentConfig{\n\t\tContentType:  runtime.ContentTypeJSON,\n\t\tGroupVersion: c.GroupVersion,\n\t\tNegotiator:   runtime.NewClientNegotiator(c.NegotiatedSerializer, c.GroupVersion),\n\t}\n\treturn restclient.NewRequestWithClient(&url.URL{Scheme: \"https\", Host: \"localhost\"}, c.VersionedAPIPath, config, CreateHTTPClient(c.do))\n}\n\n// do is invoked when a Request() created by this client is executed.\nfunc (c *RESTClient) do(req *http.Request) (*http.Response, error) {\n\tif c.Err != nil {\n\t\treturn nil, c.Err\n\t}\n\tc.Req = req\n\tif c.Client != nil {\n\t\treturn c.Client.Do(req)\n\t}\n\treturn c.Resp, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/rest/plugin.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage rest\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"sync\"\n\n\t\"k8s.io/klog/v2\"\n\n\tclientcmdapi \"k8s.io/client-go/tools/clientcmd/api\"\n)\n\ntype AuthProvider interface {\n\t// WrapTransport allows the plugin to create a modified RoundTripper that\n\t// attaches authorization headers (or other info) to requests.\n\tWrapTransport(http.RoundTripper) http.RoundTripper\n\t// Login allows the plugin to initialize its configuration. It must not\n\t// require direct user interaction.\n\tLogin() error\n}\n\n// Factory generates an AuthProvider plugin.\n//\n//\tclusterAddress is the address of the current cluster.\n//\tconfig is the initial configuration for this plugin.\n//\tpersister allows the plugin to save updated configuration.\ntype Factory func(clusterAddress string, config map[string]string, persister AuthProviderConfigPersister) (AuthProvider, error)\n\n// AuthProviderConfigPersister allows a plugin to persist configuration info\n// for just itself.\ntype AuthProviderConfigPersister interface {\n\tPersist(map[string]string) error\n}\n\ntype noopPersister struct{}\n\nfunc (n *noopPersister) Persist(_ map[string]string) error {\n\t// no operation persister\n\treturn nil\n}\n\n// All registered auth provider plugins.\nvar pluginsLock sync.Mutex\nvar plugins = make(map[string]Factory)\n\nfunc RegisterAuthProviderPlugin(name string, plugin Factory) error {\n\tpluginsLock.Lock()\n\tdefer pluginsLock.Unlock()\n\tif _, found := plugins[name]; found {\n\t\treturn fmt.Errorf(\"auth Provider Plugin %q was registered twice\", name)\n\t}\n\tklog.V(4).Infof(\"Registered Auth Provider Plugin %q\", name)\n\tplugins[name] = plugin\n\treturn nil\n}\n\nfunc GetAuthProvider(clusterAddress string, apc *clientcmdapi.AuthProviderConfig, persister AuthProviderConfigPersister) (AuthProvider, error) {\n\tpluginsLock.Lock()\n\tdefer pluginsLock.Unlock()\n\tp, ok := plugins[apc.Name]\n\tif !ok {\n\t\treturn nil, fmt.Errorf(\"no Auth Provider found for name %q\", apc.Name)\n\t}\n\tif persister == nil {\n\t\tpersister = &noopPersister{}\n\t}\n\treturn p(clusterAddress, apc.Config, persister)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/rest/request.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage rest\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"encoding/base64\"\n\t\"encoding/hex\"\n\t\"fmt\"\n\t\"io\"\n\t\"mime\"\n\t\"net/http\"\n\t\"net/http/httptrace\"\n\t\"net/url\"\n\t\"os\"\n\t\"path\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"golang.org/x/net/http2\"\n\n\t\"k8s.io/apimachinery/pkg/api/errors\"\n\t\"k8s.io/apimachinery/pkg/api/meta\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/conversion\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/runtime/serializer/streaming\"\n\t\"k8s.io/apimachinery/pkg/util/net\"\n\t\"k8s.io/apimachinery/pkg/watch\"\n\tclientfeatures \"k8s.io/client-go/features\"\n\trestclientwatch \"k8s.io/client-go/rest/watch\"\n\t\"k8s.io/client-go/tools/metrics\"\n\t\"k8s.io/client-go/util/flowcontrol\"\n\t\"k8s.io/klog/v2\"\n\t\"k8s.io/utils/clock\"\n)\n\nvar (\n\t// longThrottleLatency defines threshold for logging requests. All requests being\n\t// throttled (via the provided rateLimiter) for more than longThrottleLatency will\n\t// be logged.\n\tlongThrottleLatency = 50 * time.Millisecond\n\n\t// extraLongThrottleLatency defines the threshold for logging requests at log level 2.\n\textraLongThrottleLatency = 1 * time.Second\n)\n\n// HTTPClient is an interface for testing a request object.\ntype HTTPClient interface {\n\tDo(req *http.Request) (*http.Response, error)\n}\n\n// ResponseWrapper is an interface for getting a response.\n// The response may be either accessed as a raw data (the whole output is put into memory) or as a stream.\ntype ResponseWrapper interface {\n\tDoRaw(context.Context) ([]byte, error)\n\tStream(context.Context) (io.ReadCloser, error)\n}\n\n// RequestConstructionError is returned when there's an error assembling a request.\ntype RequestConstructionError struct {\n\tErr error\n}\n\n// Error returns a textual description of 'r'.\nfunc (r *RequestConstructionError) Error() string {\n\treturn fmt.Sprintf(\"request construction error: '%v'\", r.Err)\n}\n\nvar noBackoff = &NoBackoff{}\n\ntype requestRetryFunc func(maxRetries int) WithRetry\n\nfunc defaultRequestRetryFn(maxRetries int) WithRetry {\n\treturn &withRetry{maxRetries: maxRetries}\n}\n\n// Request allows for building up a request to a server in a chained fashion.\n// Any errors are stored until the end of your call, so you only have to\n// check once.\ntype Request struct {\n\tc *RESTClient\n\n\tcontentConfig     ClientContentConfig\n\tcontentTypeNotSet bool\n\n\twarningHandler WarningHandler\n\n\trateLimiter flowcontrol.RateLimiter\n\tbackoff     BackoffManager\n\ttimeout     time.Duration\n\tmaxRetries  int\n\n\t// generic components accessible via method setters\n\tverb       string\n\tpathPrefix string\n\tsubpath    string\n\tparams     url.Values\n\theaders    http.Header\n\n\t// structural elements of the request that are part of the Kubernetes API conventions\n\tnamespace    string\n\tnamespaceSet bool\n\tresource     string\n\tresourceName string\n\tsubresource  string\n\n\t// output\n\terr error\n\n\t// only one of body / bodyBytes may be set. requests using body are not retryable.\n\tbody      io.Reader\n\tbodyBytes []byte\n\n\tretryFn requestRetryFunc\n}\n\n// NewRequest creates a new request helper object for accessing runtime.Objects on a server.\nfunc NewRequest(c *RESTClient) *Request {\n\tvar backoff BackoffManager\n\tif c.createBackoffMgr != nil {\n\t\tbackoff = c.createBackoffMgr()\n\t}\n\tif backoff == nil {\n\t\tbackoff = noBackoff\n\t}\n\n\tvar pathPrefix string\n\tif c.base != nil {\n\t\tpathPrefix = path.Join(\"/\", c.base.Path, c.versionedAPIPath)\n\t} else {\n\t\tpathPrefix = path.Join(\"/\", c.versionedAPIPath)\n\t}\n\n\tvar timeout time.Duration\n\tif c.Client != nil {\n\t\ttimeout = c.Client.Timeout\n\t}\n\n\t// A request needs to know whether the content type was explicitly configured or selected by\n\t// default in order to support the per-request Protobuf override used by clients generated\n\t// with --prefers-protobuf.\n\tcontentConfig, contentTypeDefaulted := c.content.GetClientContentConfig()\n\n\tr := &Request{\n\t\tc:              c,\n\t\trateLimiter:    c.rateLimiter,\n\t\tbackoff:        backoff,\n\t\ttimeout:        timeout,\n\t\tpathPrefix:     pathPrefix,\n\t\tmaxRetries:     10,\n\t\tretryFn:        defaultRequestRetryFn,\n\t\twarningHandler: c.warningHandler,\n\n\t\tcontentConfig:     contentConfig,\n\t\tcontentTypeNotSet: contentTypeDefaulted,\n\t}\n\n\tr.setAcceptHeader()\n\treturn r\n}\n\n// NewRequestWithClient creates a Request with an embedded RESTClient for use in test scenarios.\nfunc NewRequestWithClient(base *url.URL, versionedAPIPath string, content ClientContentConfig, client *http.Client) *Request {\n\treturn NewRequest(&RESTClient{\n\t\tbase:             base,\n\t\tversionedAPIPath: versionedAPIPath,\n\t\tcontent:          requestClientContentConfigProvider{base: content},\n\t\tClient:           client,\n\t})\n}\n\nfunc (r *Request) UseProtobufAsDefaultIfPreferred(prefersProtobuf bool) *Request {\n\tif prefersProtobuf {\n\t\treturn r.UseProtobufAsDefault()\n\t}\n\treturn r\n}\n\nfunc (r *Request) UseProtobufAsDefault() *Request {\n\tif r.contentTypeNotSet && len(r.contentConfig.AcceptContentTypes) == 0 {\n\t\tr.contentConfig.AcceptContentTypes = \"application/vnd.kubernetes.protobuf,application/json\"\n\t\tr.contentConfig.ContentType = \"application/vnd.kubernetes.protobuf\"\n\t\tr.setAcceptHeader()\n\t}\n\treturn r\n}\n\nfunc (r *Request) setAcceptHeader() {\n\tswitch {\n\tcase len(r.contentConfig.AcceptContentTypes) > 0:\n\t\tr.SetHeader(\"Accept\", r.contentConfig.AcceptContentTypes)\n\tcase len(r.contentConfig.ContentType) > 0:\n\t\tr.SetHeader(\"Accept\", r.contentConfig.ContentType+\", */*\")\n\t}\n}\n\n// Verb sets the verb this request will use.\nfunc (r *Request) Verb(verb string) *Request {\n\tr.verb = verb\n\treturn r\n}\n\n// Prefix adds segments to the relative beginning to the request path. These\n// items will be placed before the optional Namespace, Resource, or Name sections.\n// Setting AbsPath will clear any previously set Prefix segments\nfunc (r *Request) Prefix(segments ...string) *Request {\n\tif r.err != nil {\n\t\treturn r\n\t}\n\tr.pathPrefix = path.Join(r.pathPrefix, path.Join(segments...))\n\treturn r\n}\n\n// Suffix appends segments to the end of the path. These items will be placed after the prefix and optional\n// Namespace, Resource, or Name sections.\nfunc (r *Request) Suffix(segments ...string) *Request {\n\tif r.err != nil {\n\t\treturn r\n\t}\n\tr.subpath = path.Join(r.subpath, path.Join(segments...))\n\treturn r\n}\n\n// Resource sets the resource to access (<resource>/[ns/<namespace>/]<name>)\nfunc (r *Request) Resource(resource string) *Request {\n\tif r.err != nil {\n\t\treturn r\n\t}\n\tif len(r.resource) != 0 {\n\t\tr.err = fmt.Errorf(\"resource already set to %q, cannot change to %q\", r.resource, resource)\n\t\treturn r\n\t}\n\tif msgs := IsValidPathSegmentName(resource); len(msgs) != 0 {\n\t\tr.err = fmt.Errorf(\"invalid resource %q: %v\", resource, msgs)\n\t\treturn r\n\t}\n\tr.resource = resource\n\treturn r\n}\n\n// BackOff sets the request's backoff manager to the one specified,\n// or defaults to the stub implementation if nil is provided\nfunc (r *Request) BackOff(manager BackoffManager) *Request {\n\tif manager == nil {\n\t\tr.backoff = &NoBackoff{}\n\t\treturn r\n\t}\n\n\tr.backoff = manager\n\treturn r\n}\n\n// WarningHandler sets the handler this client uses when warning headers are encountered.\n// If set to nil, this client will use the default warning handler (see SetDefaultWarningHandler).\nfunc (r *Request) WarningHandler(handler WarningHandler) *Request {\n\tr.warningHandler = handler\n\treturn r\n}\n\n// Throttle receives a rate-limiter and sets or replaces an existing request limiter\nfunc (r *Request) Throttle(limiter flowcontrol.RateLimiter) *Request {\n\tr.rateLimiter = limiter\n\treturn r\n}\n\n// SubResource sets a sub-resource path which can be multiple segments after the resource\n// name but before the suffix.\nfunc (r *Request) SubResource(subresources ...string) *Request {\n\tif r.err != nil {\n\t\treturn r\n\t}\n\tsubresource := path.Join(subresources...)\n\tif len(r.subresource) != 0 {\n\t\tr.err = fmt.Errorf(\"subresource already set to %q, cannot change to %q\", r.subresource, subresource)\n\t\treturn r\n\t}\n\tfor _, s := range subresources {\n\t\tif msgs := IsValidPathSegmentName(s); len(msgs) != 0 {\n\t\t\tr.err = fmt.Errorf(\"invalid subresource %q: %v\", s, msgs)\n\t\t\treturn r\n\t\t}\n\t}\n\tr.subresource = subresource\n\treturn r\n}\n\n// Name sets the name of a resource to access (<resource>/[ns/<namespace>/]<name>)\nfunc (r *Request) Name(resourceName string) *Request {\n\tif r.err != nil {\n\t\treturn r\n\t}\n\tif len(resourceName) == 0 {\n\t\tr.err = fmt.Errorf(\"resource name may not be empty\")\n\t\treturn r\n\t}\n\tif len(r.resourceName) != 0 {\n\t\tr.err = fmt.Errorf(\"resource name already set to %q, cannot change to %q\", r.resourceName, resourceName)\n\t\treturn r\n\t}\n\tif msgs := IsValidPathSegmentName(resourceName); len(msgs) != 0 {\n\t\tr.err = fmt.Errorf(\"invalid resource name %q: %v\", resourceName, msgs)\n\t\treturn r\n\t}\n\tr.resourceName = resourceName\n\treturn r\n}\n\n// Namespace applies the namespace scope to a request (<resource>/[ns/<namespace>/]<name>)\nfunc (r *Request) Namespace(namespace string) *Request {\n\tif r.err != nil {\n\t\treturn r\n\t}\n\tif r.namespaceSet {\n\t\tr.err = fmt.Errorf(\"namespace already set to %q, cannot change to %q\", r.namespace, namespace)\n\t\treturn r\n\t}\n\tif msgs := IsValidPathSegmentName(namespace); len(msgs) != 0 {\n\t\tr.err = fmt.Errorf(\"invalid namespace %q: %v\", namespace, msgs)\n\t\treturn r\n\t}\n\tr.namespaceSet = true\n\tr.namespace = namespace\n\treturn r\n}\n\n// NamespaceIfScoped is a convenience function to set a namespace if scoped is true\nfunc (r *Request) NamespaceIfScoped(namespace string, scoped bool) *Request {\n\tif scoped {\n\t\treturn r.Namespace(namespace)\n\t}\n\treturn r\n}\n\n// AbsPath overwrites an existing path with the segments provided. Trailing slashes are preserved\n// when a single segment is passed.\nfunc (r *Request) AbsPath(segments ...string) *Request {\n\tif r.err != nil {\n\t\treturn r\n\t}\n\tr.pathPrefix = path.Join(r.c.base.Path, path.Join(segments...))\n\tif len(segments) == 1 && (len(r.c.base.Path) > 1 || len(segments[0]) > 1) && strings.HasSuffix(segments[0], \"/\") {\n\t\t// preserve any trailing slashes for legacy behavior\n\t\tr.pathPrefix += \"/\"\n\t}\n\treturn r\n}\n\n// RequestURI overwrites existing path and parameters with the value of the provided server relative\n// URI.\nfunc (r *Request) RequestURI(uri string) *Request {\n\tif r.err != nil {\n\t\treturn r\n\t}\n\tlocator, err := url.Parse(uri)\n\tif err != nil {\n\t\tr.err = err\n\t\treturn r\n\t}\n\tr.pathPrefix = locator.Path\n\tif len(locator.Query()) > 0 {\n\t\tif r.params == nil {\n\t\t\tr.params = make(url.Values)\n\t\t}\n\t\tfor k, v := range locator.Query() {\n\t\t\tr.params[k] = v\n\t\t}\n\t}\n\treturn r\n}\n\n// Param creates a query parameter with the given string value.\nfunc (r *Request) Param(paramName, s string) *Request {\n\tif r.err != nil {\n\t\treturn r\n\t}\n\treturn r.setParam(paramName, s)\n}\n\n// VersionedParams will take the provided object, serialize it to a map[string][]string using the\n// implicit RESTClient API version and the default parameter codec, and then add those as parameters\n// to the request. Use this to provide versioned query parameters from client libraries.\n// VersionedParams will not write query parameters that have omitempty set and are empty. If a\n// parameter has already been set it is appended to (Params and VersionedParams are additive).\nfunc (r *Request) VersionedParams(obj runtime.Object, codec runtime.ParameterCodec) *Request {\n\treturn r.SpecificallyVersionedParams(obj, codec, r.contentConfig.GroupVersion)\n}\n\nfunc (r *Request) SpecificallyVersionedParams(obj runtime.Object, codec runtime.ParameterCodec, version schema.GroupVersion) *Request {\n\tif r.err != nil {\n\t\treturn r\n\t}\n\tparams, err := codec.EncodeParameters(obj, version)\n\tif err != nil {\n\t\tr.err = err\n\t\treturn r\n\t}\n\tfor k, v := range params {\n\t\tif r.params == nil {\n\t\t\tr.params = make(url.Values)\n\t\t}\n\t\tr.params[k] = append(r.params[k], v...)\n\t}\n\treturn r\n}\n\nfunc (r *Request) setParam(paramName, value string) *Request {\n\tif r.params == nil {\n\t\tr.params = make(url.Values)\n\t}\n\tr.params[paramName] = append(r.params[paramName], value)\n\treturn r\n}\n\nfunc (r *Request) SetHeader(key string, values ...string) *Request {\n\tif r.headers == nil {\n\t\tr.headers = http.Header{}\n\t}\n\tr.headers.Del(key)\n\tfor _, value := range values {\n\t\tr.headers.Add(key, value)\n\t}\n\treturn r\n}\n\n// Timeout makes the request use the given duration as an overall timeout for the\n// request. Additionally, if set passes the value as \"timeout\" parameter in URL.\nfunc (r *Request) Timeout(d time.Duration) *Request {\n\tif r.err != nil {\n\t\treturn r\n\t}\n\tr.timeout = d\n\treturn r\n}\n\n// MaxRetries makes the request use the given integer as a ceiling of retrying upon receiving\n// \"Retry-After\" headers and 429 status-code in the response. The default is 10 unless this\n// function is specifically called with a different value.\n// A zero maxRetries prevent it from doing retires and return an error immediately.\nfunc (r *Request) MaxRetries(maxRetries int) *Request {\n\tif maxRetries < 0 {\n\t\tmaxRetries = 0\n\t}\n\tr.maxRetries = maxRetries\n\treturn r\n}\n\n// Body makes the request use obj as the body. Optional.\n// If obj is a string, try to read a file of that name.\n// If obj is a []byte, send it directly.\n// If obj is an io.Reader, use it directly.\n// If obj is a runtime.Object, marshal it correctly, and set Content-Type header.\n// If obj is a runtime.Object and nil, do nothing.\n// Otherwise, set an error.\nfunc (r *Request) Body(obj interface{}) *Request {\n\tif r.err != nil {\n\t\treturn r\n\t}\n\tswitch t := obj.(type) {\n\tcase string:\n\t\tdata, err := os.ReadFile(t)\n\t\tif err != nil {\n\t\t\tr.err = err\n\t\t\treturn r\n\t\t}\n\t\tr.body = nil\n\t\tr.bodyBytes = data\n\tcase []byte:\n\t\tr.body = nil\n\t\tr.bodyBytes = t\n\tcase io.Reader:\n\t\tr.body = t\n\t\tr.bodyBytes = nil\n\tcase runtime.Object:\n\t\t// callers may pass typed interface pointers, therefore we must check nil with reflection\n\t\tif reflect.ValueOf(t).IsNil() {\n\t\t\treturn r\n\t\t}\n\t\tencoder, err := r.contentConfig.Negotiator.Encoder(r.contentConfig.ContentType, nil)\n\t\tif err != nil {\n\t\t\tr.err = err\n\t\t\treturn r\n\t\t}\n\t\tdata, err := runtime.Encode(encoder, t)\n\t\tif err != nil {\n\t\t\tr.err = err\n\t\t\treturn r\n\t\t}\n\t\tr.body = nil\n\t\tr.bodyBytes = data\n\t\tr.SetHeader(\"Content-Type\", r.contentConfig.ContentType)\n\tdefault:\n\t\tr.err = fmt.Errorf(\"unknown type used for body: %+v\", obj)\n\t}\n\treturn r\n}\n\n// Error returns any error encountered constructing the request, if any.\nfunc (r *Request) Error() error {\n\treturn r.err\n}\n\n// URL returns the current working URL. Check the result of Error() to ensure\n// that the returned URL is valid.\nfunc (r *Request) URL() *url.URL {\n\tp := r.pathPrefix\n\tif r.namespaceSet && len(r.namespace) > 0 {\n\t\tp = path.Join(p, \"namespaces\", r.namespace)\n\t}\n\tif len(r.resource) != 0 {\n\t\tp = path.Join(p, strings.ToLower(r.resource))\n\t}\n\t// Join trims trailing slashes, so preserve r.pathPrefix's trailing slash for backwards compatibility if nothing was changed\n\tif len(r.resourceName) != 0 || len(r.subpath) != 0 || len(r.subresource) != 0 {\n\t\tp = path.Join(p, r.resourceName, r.subresource, r.subpath)\n\t}\n\n\tfinalURL := &url.URL{}\n\tif r.c.base != nil {\n\t\t*finalURL = *r.c.base\n\t}\n\tfinalURL.Path = p\n\n\tquery := url.Values{}\n\tfor key, values := range r.params {\n\t\tfor _, value := range values {\n\t\t\tquery.Add(key, value)\n\t\t}\n\t}\n\n\t// timeout is handled specially here.\n\tif r.timeout != 0 {\n\t\tquery.Set(\"timeout\", r.timeout.String())\n\t}\n\tfinalURL.RawQuery = query.Encode()\n\treturn finalURL\n}\n\n// finalURLTemplate is similar to URL(), but will make all specific parameter values equal\n// - instead of name or namespace, \"{name}\" and \"{namespace}\" will be used, and all query\n// parameters will be reset. This creates a copy of the url so as not to change the\n// underlying object.\nfunc (r Request) finalURLTemplate() url.URL {\n\tnewParams := url.Values{}\n\tv := []string{\"{value}\"}\n\tfor k := range r.params {\n\t\tnewParams[k] = v\n\t}\n\tr.params = newParams\n\tu := r.URL()\n\tif u == nil {\n\t\treturn url.URL{}\n\t}\n\n\tsegments := strings.Split(u.Path, \"/\")\n\tgroupIndex := 0\n\tindex := 0\n\ttrimmedBasePath := \"\"\n\tif r.c.base != nil && strings.Contains(u.Path, r.c.base.Path) {\n\t\tp := strings.TrimPrefix(u.Path, r.c.base.Path)\n\t\tif !strings.HasPrefix(p, \"/\") {\n\t\t\tp = \"/\" + p\n\t\t}\n\t\t// store the base path that we have trimmed so we can append it\n\t\t// before returning the URL\n\t\ttrimmedBasePath = r.c.base.Path\n\t\tsegments = strings.Split(p, \"/\")\n\t\tgroupIndex = 1\n\t}\n\tif len(segments) <= 2 {\n\t\treturn *u\n\t}\n\n\tconst CoreGroupPrefix = \"api\"\n\tconst NamedGroupPrefix = \"apis\"\n\tisCoreGroup := segments[groupIndex] == CoreGroupPrefix\n\tisNamedGroup := segments[groupIndex] == NamedGroupPrefix\n\tif isCoreGroup {\n\t\t// checking the case of core group with /api/v1/... format\n\t\tindex = groupIndex + 2\n\t} else if isNamedGroup {\n\t\t// checking the case of named group with /apis/apps/v1/... format\n\t\tindex = groupIndex + 3\n\t} else {\n\t\t// this should not happen that the only two possibilities are /api... and /apis..., just want to put an\n\t\t// outlet here in case more API groups are added in future if ever possible:\n\t\t// https://kubernetes.io/docs/concepts/overview/kubernetes-api/#api-groups\n\t\t// if a wrong API groups name is encountered, return the {prefix} for url.Path\n\t\tu.Path = \"/{prefix}\"\n\t\tu.RawQuery = \"\"\n\t\treturn *u\n\t}\n\t// switch segLength := len(segments) - index; segLength {\n\tswitch {\n\t// case len(segments) - index == 1:\n\t// resource (with no name) do nothing\n\tcase len(segments)-index == 2:\n\t\t// /$RESOURCE/$NAME: replace $NAME with {name}\n\t\tsegments[index+1] = \"{name}\"\n\tcase len(segments)-index == 3:\n\t\tif segments[index+2] == \"finalize\" || segments[index+2] == \"status\" {\n\t\t\t// /$RESOURCE/$NAME/$SUBRESOURCE: replace $NAME with {name}\n\t\t\tsegments[index+1] = \"{name}\"\n\t\t} else {\n\t\t\t// /namespace/$NAMESPACE/$RESOURCE: replace $NAMESPACE with {namespace}\n\t\t\tsegments[index+1] = \"{namespace}\"\n\t\t}\n\tcase len(segments)-index >= 4:\n\t\tsegments[index+1] = \"{namespace}\"\n\t\t// /namespace/$NAMESPACE/$RESOURCE/$NAME: replace $NAMESPACE with {namespace},  $NAME with {name}\n\t\tif segments[index+3] != \"finalize\" && segments[index+3] != \"status\" {\n\t\t\t// /$RESOURCE/$NAME/$SUBRESOURCE: replace $NAME with {name}\n\t\t\tsegments[index+3] = \"{name}\"\n\t\t}\n\t}\n\tu.Path = path.Join(trimmedBasePath, path.Join(segments...))\n\treturn *u\n}\n\nfunc (r *Request) tryThrottleWithInfo(ctx context.Context, retryInfo string) error {\n\tif r.rateLimiter == nil {\n\t\treturn nil\n\t}\n\n\tnow := time.Now()\n\n\terr := r.rateLimiter.Wait(ctx)\n\tif err != nil {\n\t\terr = fmt.Errorf(\"client rate limiter Wait returned an error: %w\", err)\n\t}\n\tlatency := time.Since(now)\n\n\tvar message string\n\tswitch {\n\tcase len(retryInfo) > 0:\n\t\tmessage = fmt.Sprintf(\"Waited for %v, %s - request: %s:%s\", latency, retryInfo, r.verb, r.URL().String())\n\tdefault:\n\t\tmessage = fmt.Sprintf(\"Waited for %v due to client-side throttling, not priority and fairness, request: %s:%s\", latency, r.verb, r.URL().String())\n\t}\n\n\tif latency > longThrottleLatency {\n\t\tklog.V(3).Info(message)\n\t}\n\tif latency > extraLongThrottleLatency {\n\t\t// If the rate limiter latency is very high, the log message should be printed at a higher log level,\n\t\t// but we use a throttled logger to prevent spamming.\n\t\tglobalThrottledLogger.Infof(\"%s\", message)\n\t}\n\tmetrics.RateLimiterLatency.Observe(ctx, r.verb, r.finalURLTemplate(), latency)\n\n\treturn err\n}\n\nfunc (r *Request) tryThrottle(ctx context.Context) error {\n\treturn r.tryThrottleWithInfo(ctx, \"\")\n}\n\ntype throttleSettings struct {\n\tlogLevel       klog.Level\n\tminLogInterval time.Duration\n\n\tlastLogTime time.Time\n\tlock        sync.RWMutex\n}\n\ntype throttledLogger struct {\n\tclock    clock.PassiveClock\n\tsettings []*throttleSettings\n}\n\nvar globalThrottledLogger = &throttledLogger{\n\tclock: clock.RealClock{},\n\tsettings: []*throttleSettings{\n\t\t{\n\t\t\tlogLevel:       2,\n\t\t\tminLogInterval: 1 * time.Second,\n\t\t}, {\n\t\t\tlogLevel:       0,\n\t\t\tminLogInterval: 10 * time.Second,\n\t\t},\n\t},\n}\n\nfunc (b *throttledLogger) attemptToLog() (klog.Level, bool) {\n\tfor _, setting := range b.settings {\n\t\tif bool(klog.V(setting.logLevel).Enabled()) {\n\t\t\t// Return early without write locking if possible.\n\t\t\tif func() bool {\n\t\t\t\tsetting.lock.RLock()\n\t\t\t\tdefer setting.lock.RUnlock()\n\t\t\t\treturn b.clock.Since(setting.lastLogTime) >= setting.minLogInterval\n\t\t\t}() {\n\t\t\t\tsetting.lock.Lock()\n\t\t\t\tdefer setting.lock.Unlock()\n\t\t\t\tif b.clock.Since(setting.lastLogTime) >= setting.minLogInterval {\n\t\t\t\t\tsetting.lastLogTime = b.clock.Now()\n\t\t\t\t\treturn setting.logLevel, true\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn -1, false\n\t\t}\n\t}\n\treturn -1, false\n}\n\n// Infof will write a log message at each logLevel specified by the receiver's throttleSettings\n// as long as it hasn't written a log message more recently than minLogInterval.\nfunc (b *throttledLogger) Infof(message string, args ...interface{}) {\n\tif logLevel, ok := b.attemptToLog(); ok {\n\t\tklog.V(logLevel).Infof(message, args...)\n\t}\n}\n\n// Watch attempts to begin watching the requested location.\n// Returns a watch.Interface, or an error.\nfunc (r *Request) Watch(ctx context.Context) (watch.Interface, error) {\n\tw, _, e := r.watchInternal(ctx)\n\treturn w, e\n}\n\nfunc (r *Request) watchInternal(ctx context.Context) (watch.Interface, runtime.Decoder, error) {\n\tif r.body == nil {\n\t\tlogBody(ctx, 2, \"Request Body\", r.bodyBytes)\n\t}\n\n\t// We specifically don't want to rate limit watches, so we\n\t// don't use r.rateLimiter here.\n\tif r.err != nil {\n\t\treturn nil, nil, r.err\n\t}\n\n\tclient := r.c.Client\n\tif client == nil {\n\t\tclient = http.DefaultClient\n\t}\n\n\tisErrRetryableFunc := func(request *http.Request, err error) bool {\n\t\t// The watch stream mechanism handles many common partial data errors, so closed\n\t\t// connections can be retried in many cases.\n\t\tif net.IsProbableEOF(err) || net.IsTimeout(err) {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\tretry := r.retryFn(r.maxRetries)\n\turl := r.URL().String()\n\tfor {\n\t\tif err := retry.Before(ctx, r); err != nil {\n\t\t\treturn nil, nil, retry.WrapPreviousError(err)\n\t\t}\n\n\t\treq, err := r.newHTTPRequest(ctx)\n\t\tif err != nil {\n\t\t\treturn nil, nil, err\n\t\t}\n\n\t\tresp, err := client.Do(req)\n\t\tretry.After(ctx, r, resp, err)\n\t\tif err == nil && resp.StatusCode == http.StatusOK {\n\t\t\treturn r.newStreamWatcher(resp)\n\t\t}\n\n\t\tdone, transformErr := func() (bool, error) {\n\t\t\tdefer readAndCloseResponseBody(resp)\n\n\t\t\tif retry.IsNextRetry(ctx, r, req, resp, err, isErrRetryableFunc) {\n\t\t\t\treturn false, nil\n\t\t\t}\n\n\t\t\tif resp == nil {\n\t\t\t\t// the server must have sent us an error in 'err'\n\t\t\t\treturn true, nil\n\t\t\t}\n\t\t\tresult := r.transformResponse(ctx, resp, req)\n\t\t\tif err := result.Error(); err != nil {\n\t\t\t\treturn true, err\n\t\t\t}\n\t\t\treturn true, fmt.Errorf(\"for request %s, got status: %v\", url, resp.StatusCode)\n\t\t}()\n\t\tif done {\n\t\t\tif isErrRetryableFunc(req, err) {\n\t\t\t\treturn watch.NewEmptyWatch(), nil, nil\n\t\t\t}\n\t\t\tif err == nil {\n\t\t\t\t// if the server sent us an HTTP Response object,\n\t\t\t\t// we need to return the error object from that.\n\t\t\t\terr = transformErr\n\t\t\t}\n\t\t\treturn nil, nil, retry.WrapPreviousError(err)\n\t\t}\n\t}\n}\n\ntype WatchListResult struct {\n\t// err holds any errors we might have received\n\t// during streaming.\n\terr error\n\n\t// items hold the collected data\n\titems []runtime.Object\n\n\t// initialEventsEndBookmarkRV holds the resource version\n\t// extracted from the bookmark event that marks\n\t// the end of the stream.\n\tinitialEventsEndBookmarkRV string\n\n\t// negotiatedObjectDecoder knows how to decode\n\t// the initialEventsListBlueprint\n\tnegotiatedObjectDecoder runtime.Decoder\n\n\t// base64EncodedInitialEventsListBlueprint contains an empty,\n\t// versioned list encoded in the requested format\n\t// (e.g., protobuf, JSON, CBOR) and stored as a base64-encoded string\n\tbase64EncodedInitialEventsListBlueprint string\n}\n\n// Into stores the result into obj. The passed obj parameter must be a pointer to a list type.\n//\n// Note:\n//\n// Special attention should be given to the type *unstructured.Unstructured,\n// which represents a list type but does not have an \"Items\" field.\n// Users who directly use RESTClient may store the response in such an object.\n// This particular case is not handled by the current implementation of this function,\n// but may be considered for future updates.\nfunc (r WatchListResult) Into(obj runtime.Object) error {\n\tif r.err != nil {\n\t\treturn r.err\n\t}\n\n\tlistItemsPtr, err := meta.GetItemsPtr(obj)\n\tif err != nil {\n\t\treturn err\n\t}\n\tlistVal, err := conversion.EnforcePtr(listItemsPtr)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif listVal.Kind() != reflect.Slice {\n\t\treturn fmt.Errorf(\"need a pointer to slice, got %v\", listVal.Kind())\n\t}\n\n\tencodedInitialEventsListBlueprint, err := base64.StdEncoding.DecodeString(r.base64EncodedInitialEventsListBlueprint)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"failed to decode the received blueprint list, err %w\", err)\n\t}\n\n\terr = runtime.DecodeInto(r.negotiatedObjectDecoder, encodedInitialEventsListBlueprint, obj)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif len(r.items) == 0 {\n\t\tlistVal.Set(reflect.MakeSlice(listVal.Type(), 0, 0))\n\t} else {\n\t\tlistVal.Set(reflect.MakeSlice(listVal.Type(), len(r.items), len(r.items)))\n\t\tfor i, o := range r.items {\n\t\t\tif listVal.Type().Elem() != reflect.TypeOf(o).Elem() {\n\t\t\t\treturn fmt.Errorf(\"received object type = %v at index = %d, doesn't match the list item type = %v\", reflect.TypeOf(o).Elem(), i, listVal.Type().Elem())\n\t\t\t}\n\t\t\tlistVal.Index(i).Set(reflect.ValueOf(o).Elem())\n\t\t}\n\t}\n\n\tlistMeta, err := meta.ListAccessor(obj)\n\tif err != nil {\n\t\treturn err\n\t}\n\tlistMeta.SetResourceVersion(r.initialEventsEndBookmarkRV)\n\treturn nil\n}\n\n// WatchList establishes a stream to get a consistent snapshot of data\n// from the server as described in https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/3157-watch-list#proposal\n//\n// Note that the watchlist requires properly setting the ListOptions\n// otherwise it just establishes a regular watch with the server.\n// Check the documentation https://kubernetes.io/docs/reference/using-api/api-concepts/#streaming-lists\n// to see what parameters are currently required.\nfunc (r *Request) WatchList(ctx context.Context) WatchListResult {\n\tif r.body == nil {\n\t\tlogBody(ctx, 2, \"Request Body\", r.bodyBytes)\n\t}\n\n\tif !clientfeatures.FeatureGates().Enabled(clientfeatures.WatchListClient) {\n\t\treturn WatchListResult{err: fmt.Errorf(\"%q feature gate is not enabled\", clientfeatures.WatchListClient)}\n\t}\n\t// TODO(#115478): consider validating request parameters (i.e sendInitialEvents).\n\t//  Most users use the generated client, which handles the proper setting of parameters.\n\t//  We don't have validation for other methods (e.g., the Watch)\n\t//  thus, for symmetry, we haven't added additional checks for the WatchList method.\n\tw, d, err := r.watchInternal(ctx)\n\tif err != nil {\n\t\treturn WatchListResult{err: err}\n\t}\n\treturn r.handleWatchList(ctx, w, d)\n}\n\n// handleWatchList holds the actual logic for easier unit testing.\n// Note that this function will close the passed watch.\nfunc (r *Request) handleWatchList(ctx context.Context, w watch.Interface, negotiatedObjectDecoder runtime.Decoder) WatchListResult {\n\tdefer w.Stop()\n\tvar lastKey string\n\tvar items []runtime.Object\n\n\tfor {\n\t\tselect {\n\t\tcase <-ctx.Done():\n\t\t\treturn WatchListResult{err: ctx.Err()}\n\t\tcase event, ok := <-w.ResultChan():\n\t\t\tif !ok {\n\t\t\t\treturn WatchListResult{err: fmt.Errorf(\"unexpected watch close\")}\n\t\t\t}\n\t\t\tif event.Type == watch.Error {\n\t\t\t\treturn WatchListResult{err: errors.FromObject(event.Object)}\n\t\t\t}\n\t\t\tmeta, err := meta.Accessor(event.Object)\n\t\t\tif err != nil {\n\t\t\t\treturn WatchListResult{err: fmt.Errorf(\"failed to parse watch event: %#v\", event)}\n\t\t\t}\n\n\t\t\tswitch event.Type {\n\t\t\tcase watch.Added:\n\t\t\t\t// the following check ensures that the response is ordered.\n\t\t\t\t// earlier servers had a bug that caused them to not sort the output.\n\t\t\t\t// in such cases, return an error which can trigger fallback logic.\n\t\t\t\tkey := objectKeyFromMeta(meta)\n\t\t\t\tif len(lastKey) > 0 && lastKey > key {\n\t\t\t\t\treturn WatchListResult{err: fmt.Errorf(\"cannot add the obj (%#v) with the key = %s, as it violates the ordering guarantees provided by the watchlist feature in beta phase, lastInsertedKey was = %s\", event.Object, key, lastKey)}\n\t\t\t\t}\n\t\t\t\titems = append(items, event.Object)\n\t\t\t\tlastKey = key\n\t\t\tcase watch.Bookmark:\n\t\t\t\tif meta.GetAnnotations()[metav1.InitialEventsAnnotationKey] == \"true\" {\n\t\t\t\t\tbase64EncodedInitialEventsListBlueprint := meta.GetAnnotations()[metav1.InitialEventsListBlueprintAnnotationKey]\n\t\t\t\t\tif len(base64EncodedInitialEventsListBlueprint) == 0 {\n\t\t\t\t\t\treturn WatchListResult{err: fmt.Errorf(\"%q annotation is missing content\", metav1.InitialEventsListBlueprintAnnotationKey)}\n\t\t\t\t\t}\n\t\t\t\t\treturn WatchListResult{\n\t\t\t\t\t\titems:                                   items,\n\t\t\t\t\t\tinitialEventsEndBookmarkRV:              meta.GetResourceVersion(),\n\t\t\t\t\t\tnegotiatedObjectDecoder:                 negotiatedObjectDecoder,\n\t\t\t\t\t\tbase64EncodedInitialEventsListBlueprint: base64EncodedInitialEventsListBlueprint,\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\treturn WatchListResult{err: fmt.Errorf(\"unexpected watch event %#v, expected to only receive watch.Added and watch.Bookmark events\", event)}\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc (r *Request) newStreamWatcher(resp *http.Response) (watch.Interface, runtime.Decoder, error) {\n\tcontentType := resp.Header.Get(\"Content-Type\")\n\tmediaType, params, err := mime.ParseMediaType(contentType)\n\tif err != nil {\n\t\tklog.V(4).Infof(\"Unexpected content type from the server: %q: %v\", contentType, err)\n\t}\n\tobjectDecoder, streamingSerializer, framer, err := r.contentConfig.Negotiator.StreamDecoder(mediaType, params)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\thandleWarnings(resp.Header, r.warningHandler)\n\n\tframeReader := framer.NewFrameReader(resp.Body)\n\twatchEventDecoder := streaming.NewDecoder(frameReader, streamingSerializer)\n\n\treturn watch.NewStreamWatcher(\n\t\trestclientwatch.NewDecoder(watchEventDecoder, objectDecoder),\n\t\t// use 500 to indicate that the cause of the error is unknown - other error codes\n\t\t// are more specific to HTTP interactions, and set a reason\n\t\terrors.NewClientErrorReporter(http.StatusInternalServerError, r.verb, \"ClientWatchDecoding\"),\n\t), objectDecoder, nil\n}\n\n// updateRequestResultMetric increments the RequestResult metric counter,\n// it should be called with the (response, err) tuple from the final\n// reply from the server.\nfunc updateRequestResultMetric(ctx context.Context, req *Request, resp *http.Response, err error) {\n\tcode, host := sanitize(req, resp, err)\n\tmetrics.RequestResult.Increment(ctx, code, req.verb, host)\n}\n\n// updateRequestRetryMetric increments the RequestRetry metric counter,\n// it should be called with the (response, err) tuple for each retry\n// except for the final attempt.\nfunc updateRequestRetryMetric(ctx context.Context, req *Request, resp *http.Response, err error) {\n\tcode, host := sanitize(req, resp, err)\n\tmetrics.RequestRetry.IncrementRetry(ctx, code, req.verb, host)\n}\n\nfunc sanitize(req *Request, resp *http.Response, err error) (string, string) {\n\thost := \"none\"\n\tif req.c.base != nil {\n\t\thost = req.c.base.Host\n\t}\n\n\t// Errors can be arbitrary strings. Unbound label cardinality is not suitable for a metric\n\t// system so we just report them as `<error>`.\n\tcode := \"<error>\"\n\tif resp != nil {\n\t\tcode = strconv.Itoa(resp.StatusCode)\n\t}\n\n\treturn code, host\n}\n\n// Stream formats and executes the request, and offers streaming of the response.\n// Returns io.ReadCloser which could be used for streaming of the response, or an error\n// Any non-2xx http status code causes an error.  If we get a non-2xx code, we try to convert the body into an APIStatus object.\n// If we can, we return that as an error.  Otherwise, we create an error that lists the http status and the content of the response.\nfunc (r *Request) Stream(ctx context.Context) (io.ReadCloser, error) {\n\tif r.body == nil {\n\t\tlogBody(ctx, 2, \"Request Body\", r.bodyBytes)\n\t}\n\n\tif r.err != nil {\n\t\treturn nil, r.err\n\t}\n\n\tif err := r.tryThrottle(ctx); err != nil {\n\t\treturn nil, err\n\t}\n\n\tclient := r.c.Client\n\tif client == nil {\n\t\tclient = http.DefaultClient\n\t}\n\n\tretry := r.retryFn(r.maxRetries)\n\turl := r.URL().String()\n\tfor {\n\t\tif err := retry.Before(ctx, r); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\treq, err := r.newHTTPRequest(ctx)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tresp, err := client.Do(req)\n\t\tretry.After(ctx, r, resp, err)\n\t\tif err != nil {\n\t\t\t// we only retry on an HTTP response with 'Retry-After' header\n\t\t\treturn nil, err\n\t\t}\n\n\t\tswitch {\n\t\tcase (resp.StatusCode >= 200) && (resp.StatusCode < 300):\n\t\t\thandleWarnings(resp.Header, r.warningHandler)\n\t\t\treturn resp.Body, nil\n\n\t\tdefault:\n\t\t\tdone, transformErr := func() (bool, error) {\n\t\t\t\tdefer resp.Body.Close()\n\n\t\t\t\tif retry.IsNextRetry(ctx, r, req, resp, err, neverRetryError) {\n\t\t\t\t\treturn false, nil\n\t\t\t\t}\n\t\t\t\tresult := r.transformResponse(ctx, resp, req)\n\t\t\t\tif err := result.Error(); err != nil {\n\t\t\t\t\treturn true, err\n\t\t\t\t}\n\t\t\t\treturn true, fmt.Errorf(\"%d while accessing %v: %s\", result.statusCode, url, string(result.body))\n\t\t\t}()\n\t\t\tif done {\n\t\t\t\treturn nil, transformErr\n\t\t\t}\n\t\t}\n\t}\n}\n\n// requestPreflightCheck looks for common programmer errors on Request.\n//\n// We tackle here two programmer mistakes. The first one is to try to create\n// something(POST) using an empty string as namespace with namespaceSet as\n// true. If namespaceSet is true then namespace should also be defined. The\n// second mistake is, when under the same circumstances, the programmer tries\n// to GET, PUT or DELETE a named resource(resourceName != \"\"), again, if\n// namespaceSet is true then namespace must not be empty.\nfunc (r *Request) requestPreflightCheck() error {\n\tif !r.namespaceSet {\n\t\treturn nil\n\t}\n\tif len(r.namespace) > 0 {\n\t\treturn nil\n\t}\n\n\tswitch r.verb {\n\tcase \"POST\":\n\t\treturn fmt.Errorf(\"an empty namespace may not be set during creation\")\n\tcase \"GET\", \"PUT\", \"DELETE\":\n\t\tif len(r.resourceName) > 0 {\n\t\t\treturn fmt.Errorf(\"an empty namespace may not be set when a resource name is provided\")\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (r *Request) newHTTPRequest(ctx context.Context) (*http.Request, error) {\n\tvar body io.Reader\n\tswitch {\n\tcase r.body != nil && r.bodyBytes != nil:\n\t\treturn nil, fmt.Errorf(\"cannot set both body and bodyBytes\")\n\tcase r.body != nil:\n\t\tbody = r.body\n\tcase r.bodyBytes != nil:\n\t\t// Create a new reader specifically for this request.\n\t\t// Giving each request a dedicated reader allows retries to avoid races resetting the request body.\n\t\tbody = bytes.NewReader(r.bodyBytes)\n\t}\n\n\turl := r.URL().String()\n\treq, err := http.NewRequestWithContext(httptrace.WithClientTrace(ctx, newDNSMetricsTrace(ctx)), r.verb, url, body)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treq.Header = r.headers\n\treturn req, nil\n}\n\n// newDNSMetricsTrace returns an HTTP trace that tracks time spent on DNS lookups per host.\n// This metric is available in client as \"rest_client_dns_resolution_duration_seconds\".\nfunc newDNSMetricsTrace(ctx context.Context) *httptrace.ClientTrace {\n\ttype dnsMetric struct {\n\t\tstart time.Time\n\t\thost  string\n\t\tsync.Mutex\n\t}\n\tdns := &dnsMetric{}\n\treturn &httptrace.ClientTrace{\n\t\tDNSStart: func(info httptrace.DNSStartInfo) {\n\t\t\tdns.Lock()\n\t\t\tdefer dns.Unlock()\n\t\t\tdns.start = time.Now()\n\t\t\tdns.host = info.Host\n\t\t},\n\t\tDNSDone: func(info httptrace.DNSDoneInfo) {\n\t\t\tdns.Lock()\n\t\t\tdefer dns.Unlock()\n\t\t\tmetrics.ResolverLatency.Observe(ctx, dns.host, time.Since(dns.start))\n\t\t},\n\t}\n}\n\n// request connects to the server and invokes the provided function when a server response is\n// received. It handles retry behavior and up front validation of requests. It will invoke\n// fn at most once. It will return an error if a problem occurred prior to connecting to the\n// server - the provided function is responsible for handling server errors.\nfunc (r *Request) request(ctx context.Context, fn func(*http.Request, *http.Response)) error {\n\t// Metrics for total request latency\n\tstart := time.Now()\n\tdefer func() {\n\t\tmetrics.RequestLatency.Observe(ctx, r.verb, r.finalURLTemplate(), time.Since(start))\n\t}()\n\n\tif r.err != nil {\n\t\tklog.V(4).Infof(\"Error in request: %v\", r.err)\n\t\treturn r.err\n\t}\n\n\tif err := r.requestPreflightCheck(); err != nil {\n\t\treturn err\n\t}\n\n\tclient := r.c.Client\n\tif client == nil {\n\t\tclient = http.DefaultClient\n\t}\n\n\t// Throttle the first try before setting up the timeout configured on the\n\t// client. We don't want a throttled client to return timeouts to callers\n\t// before it makes a single request.\n\tif err := r.tryThrottle(ctx); err != nil {\n\t\treturn err\n\t}\n\n\tif r.timeout > 0 {\n\t\tvar cancel context.CancelFunc\n\t\tctx, cancel = context.WithTimeout(ctx, r.timeout)\n\t\tdefer cancel()\n\t}\n\n\tisErrRetryableFunc := func(req *http.Request, err error) bool {\n\t\t// \"Connection reset by peer\" or \"apiserver is shutting down\" are usually a transient errors.\n\t\t// Thus in case of \"GET\" operations, we simply retry it.\n\t\t// We are not automatically retrying \"write\" operations, as they are not idempotent.\n\t\tif req.Method != \"GET\" {\n\t\t\treturn false\n\t\t}\n\t\t// For connection errors and apiserver shutdown errors retry.\n\t\tif net.IsConnectionReset(err) || net.IsProbableEOF(err) || net.IsHTTP2ConnectionLost(err) {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\t// Right now we make about ten retry attempts if we get a Retry-After response.\n\tretry := r.retryFn(r.maxRetries)\n\tfor {\n\t\tif err := retry.Before(ctx, r); err != nil {\n\t\t\treturn retry.WrapPreviousError(err)\n\t\t}\n\t\treq, err := r.newHTTPRequest(ctx)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tresp, err := client.Do(req)\n\t\t// The value -1 or a value of 0 with a non-nil Body indicates that the length is unknown.\n\t\t// https://pkg.go.dev/net/http#Request\n\t\tif req.ContentLength >= 0 && !(req.Body != nil && req.ContentLength == 0) {\n\t\t\tmetrics.RequestSize.Observe(ctx, r.verb, r.URL().Host, float64(req.ContentLength))\n\t\t}\n\t\tif resp != nil && resp.StatusCode == http.StatusUnsupportedMediaType {\n\t\t\tr.c.content.UnsupportedMediaType(resp.Request.Header.Get(\"Content-Type\"))\n\t\t}\n\t\tretry.After(ctx, r, resp, err)\n\n\t\tdone := func() bool {\n\t\t\tdefer readAndCloseResponseBody(resp)\n\n\t\t\t// if the server returns an error in err, the response will be nil.\n\t\t\tf := func(req *http.Request, resp *http.Response) {\n\t\t\t\tif resp == nil {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tfn(req, resp)\n\t\t\t}\n\n\t\t\tif retry.IsNextRetry(ctx, r, req, resp, err, isErrRetryableFunc) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tf(req, resp)\n\t\t\treturn true\n\t\t}()\n\t\tif done {\n\t\t\treturn retry.WrapPreviousError(err)\n\t\t}\n\t}\n}\n\n// Do formats and executes the request. Returns a Result object for easy response\n// processing.\n//\n// Error type:\n//   - If the server responds with a status: *errors.StatusError or *errors.UnexpectedObjectError\n//   - http.Client.Do errors are returned directly.\nfunc (r *Request) Do(ctx context.Context) Result {\n\tif r.body == nil {\n\t\tlogBody(ctx, 2, \"Request Body\", r.bodyBytes)\n\t}\n\n\tvar result Result\n\terr := r.request(ctx, func(req *http.Request, resp *http.Response) {\n\t\tresult = r.transformResponse(ctx, resp, req)\n\t})\n\tif err != nil {\n\t\treturn Result{err: err}\n\t}\n\tif result.err == nil || len(result.body) > 0 {\n\t\tmetrics.ResponseSize.Observe(ctx, r.verb, r.URL().Host, float64(len(result.body)))\n\t}\n\treturn result\n}\n\n// DoRaw executes the request but does not process the response body.\nfunc (r *Request) DoRaw(ctx context.Context) ([]byte, error) {\n\tif r.body == nil {\n\t\tlogBody(ctx, 2, \"Request Body\", r.bodyBytes)\n\t}\n\n\tvar result Result\n\terr := r.request(ctx, func(req *http.Request, resp *http.Response) {\n\t\tresult.body, result.err = io.ReadAll(resp.Body)\n\t\tlogBody(ctx, 2, \"Response Body\", result.body)\n\t\tif resp.StatusCode < http.StatusOK || resp.StatusCode > http.StatusPartialContent {\n\t\t\tresult.err = r.transformUnstructuredResponseError(resp, req, result.body)\n\t\t}\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif result.err == nil || len(result.body) > 0 {\n\t\tmetrics.ResponseSize.Observe(ctx, r.verb, r.URL().Host, float64(len(result.body)))\n\t}\n\treturn result.body, result.err\n}\n\n// transformResponse converts an API response into a structured API object\nfunc (r *Request) transformResponse(ctx context.Context, resp *http.Response, req *http.Request) Result {\n\tvar body []byte\n\tif resp.Body != nil {\n\t\tdata, err := io.ReadAll(resp.Body)\n\t\tswitch err.(type) {\n\t\tcase nil:\n\t\t\tbody = data\n\t\tcase http2.StreamError:\n\t\t\t// This is trying to catch the scenario that the server may close the connection when sending the\n\t\t\t// response body. This can be caused by server timeout due to a slow network connection.\n\t\t\t// TODO: Add test for this. Steps may be:\n\t\t\t// 1. client-go (or kubectl) sends a GET request.\n\t\t\t// 2. Apiserver sends back the headers and then part of the body\n\t\t\t// 3. Apiserver closes connection.\n\t\t\t// 4. client-go should catch this and return an error.\n\t\t\tklog.V(2).Infof(\"Stream error %#v when reading response body, may be caused by closed connection.\", err)\n\t\t\tstreamErr := fmt.Errorf(\"stream error when reading response body, may be caused by closed connection. Please retry. Original error: %w\", err)\n\t\t\treturn Result{\n\t\t\t\terr: streamErr,\n\t\t\t}\n\t\tdefault:\n\t\t\tklog.Errorf(\"Unexpected error when reading response body: %v\", err)\n\t\t\tunexpectedErr := fmt.Errorf(\"unexpected error when reading response body. Please retry. Original error: %w\", err)\n\t\t\treturn Result{\n\t\t\t\terr: unexpectedErr,\n\t\t\t}\n\t\t}\n\t}\n\n\t// Call depth is tricky. This one is okay for Do and DoRaw.\n\tlogBody(ctx, 7, \"Response Body\", body)\n\n\t// verify the content type is accurate\n\tvar decoder runtime.Decoder\n\tcontentType := resp.Header.Get(\"Content-Type\")\n\tif len(contentType) == 0 {\n\t\tcontentType = r.contentConfig.ContentType\n\t}\n\tif len(contentType) > 0 {\n\t\tvar err error\n\t\tmediaType, params, err := mime.ParseMediaType(contentType)\n\t\tif err != nil {\n\t\t\treturn Result{err: errors.NewInternalError(err)}\n\t\t}\n\t\tdecoder, err = r.contentConfig.Negotiator.Decoder(mediaType, params)\n\t\tif err != nil {\n\t\t\t// if we fail to negotiate a decoder, treat this as an unstructured error\n\t\t\tswitch {\n\t\t\tcase resp.StatusCode == http.StatusSwitchingProtocols:\n\t\t\t\t// no-op, we've been upgraded\n\t\t\tcase resp.StatusCode < http.StatusOK || resp.StatusCode > http.StatusPartialContent:\n\t\t\t\treturn Result{err: r.transformUnstructuredResponseError(resp, req, body)}\n\t\t\t}\n\t\t\treturn Result{\n\t\t\t\tbody:        body,\n\t\t\t\tcontentType: contentType,\n\t\t\t\tstatusCode:  resp.StatusCode,\n\t\t\t\twarnings:    handleWarnings(resp.Header, r.warningHandler),\n\t\t\t}\n\t\t}\n\t}\n\n\tswitch {\n\tcase resp.StatusCode == http.StatusSwitchingProtocols:\n\t\t// no-op, we've been upgraded\n\tcase resp.StatusCode < http.StatusOK || resp.StatusCode > http.StatusPartialContent:\n\t\t// calculate an unstructured error from the response which the Result object may use if the caller\n\t\t// did not return a structured error.\n\t\tretryAfter, _ := retryAfterSeconds(resp)\n\t\terr := r.newUnstructuredResponseError(body, isTextResponse(resp), resp.StatusCode, req.Method, retryAfter)\n\t\treturn Result{\n\t\t\tbody:        body,\n\t\t\tcontentType: contentType,\n\t\t\tstatusCode:  resp.StatusCode,\n\t\t\tdecoder:     decoder,\n\t\t\terr:         err,\n\t\t\twarnings:    handleWarnings(resp.Header, r.warningHandler),\n\t\t}\n\t}\n\n\treturn Result{\n\t\tbody:        body,\n\t\tcontentType: contentType,\n\t\tstatusCode:  resp.StatusCode,\n\t\tdecoder:     decoder,\n\t\twarnings:    handleWarnings(resp.Header, r.warningHandler),\n\t}\n}\n\n// truncateBody decides if the body should be truncated, based on the glog Verbosity.\nfunc truncateBody(logger klog.Logger, body string) string {\n\tmax := 0\n\tswitch {\n\tcase bool(logger.V(10).Enabled()):\n\t\treturn body\n\tcase bool(logger.V(9).Enabled()):\n\t\tmax = 10240\n\tcase bool(logger.V(8).Enabled()):\n\t\tmax = 1024\n\t}\n\n\tif len(body) <= max {\n\t\treturn body\n\t}\n\n\treturn body[:max] + fmt.Sprintf(\" [truncated %d chars]\", len(body)-max)\n}\n\n// logBody logs a body output that could be either JSON or protobuf. It explicitly guards against\n// allocating a new string for the body output unless necessary. Uses a simple heuristic to determine\n// whether the body is printable.\n//\n// It needs to be called by all functions which send or receive the data.\nfunc logBody(ctx context.Context, callDepth int, prefix string, body []byte) {\n\tlogger := klog.FromContext(ctx)\n\tif loggerV := logger.V(8); loggerV.Enabled() {\n\t\tloggerV := loggerV.WithCallDepth(callDepth)\n\t\tif bytes.IndexFunc(body, func(r rune) bool {\n\t\t\treturn r < 0x0a\n\t\t}) != -1 {\n\t\t\tloggerV.Info(prefix, \"body\", truncateBody(logger, hex.Dump(body)))\n\t\t} else {\n\t\t\tloggerV.Info(prefix, \"body\", truncateBody(logger, string(body)))\n\t\t}\n\t}\n}\n\n// maxUnstructuredResponseTextBytes is an upper bound on how much output to include in the unstructured error.\nconst maxUnstructuredResponseTextBytes = 2048\n\n// transformUnstructuredResponseError handles an error from the server that is not in a structured form.\n// It is expected to transform any response that is not recognizable as a clear server sent error from the\n// K8S API using the information provided with the request. In practice, HTTP proxies and client libraries\n// introduce a level of uncertainty to the responses returned by servers that in common use result in\n// unexpected responses. The rough structure is:\n//\n// 1. Assume the server sends you something sane - JSON + well defined error objects + proper codes\n//   - this is the happy path\n//   - when you get this output, trust what the server sends\n//     2. Guard against empty fields / bodies in received JSON and attempt to cull sufficient info from them to\n//     generate a reasonable facsimile of the original failure.\n//   - Be sure to use a distinct error type or flag that allows a client to distinguish between this and error 1 above\n//     3. Handle true disconnect failures / completely malformed data by moving up to a more generic client error\n//     4. Distinguish between various connection failures like SSL certificates, timeouts, proxy errors, unexpected\n//     initial contact, the presence of mismatched body contents from posted content types\n//   - Give these a separate distinct error type and capture as much as possible of the original message\n//\n// TODO: introduce transformation of generic http.Client.Do() errors that separates 4.\nfunc (r *Request) transformUnstructuredResponseError(resp *http.Response, req *http.Request, body []byte) error {\n\tif body == nil && resp.Body != nil {\n\t\tif data, err := io.ReadAll(&io.LimitedReader{R: resp.Body, N: maxUnstructuredResponseTextBytes}); err == nil {\n\t\t\tbody = data\n\t\t}\n\t}\n\tretryAfter, _ := retryAfterSeconds(resp)\n\treturn r.newUnstructuredResponseError(body, isTextResponse(resp), resp.StatusCode, req.Method, retryAfter)\n}\n\n// newUnstructuredResponseError instantiates the appropriate generic error for the provided input. It also logs the body.\nfunc (r *Request) newUnstructuredResponseError(body []byte, isTextResponse bool, statusCode int, method string, retryAfter int) error {\n\t// cap the amount of output we create\n\tif len(body) > maxUnstructuredResponseTextBytes {\n\t\tbody = body[:maxUnstructuredResponseTextBytes]\n\t}\n\n\tmessage := \"unknown\"\n\tif isTextResponse {\n\t\tmessage = strings.TrimSpace(string(body))\n\t}\n\tvar groupResource schema.GroupResource\n\tif len(r.resource) > 0 {\n\t\tgroupResource.Group = r.contentConfig.GroupVersion.Group\n\t\tgroupResource.Resource = r.resource\n\t}\n\treturn errors.NewGenericServerResponse(\n\t\tstatusCode,\n\t\tmethod,\n\t\tgroupResource,\n\t\tr.resourceName,\n\t\tmessage,\n\t\tretryAfter,\n\t\ttrue,\n\t)\n}\n\n// isTextResponse returns true if the response appears to be a textual media type.\nfunc isTextResponse(resp *http.Response) bool {\n\tcontentType := resp.Header.Get(\"Content-Type\")\n\tif len(contentType) == 0 {\n\t\treturn true\n\t}\n\tmedia, _, err := mime.ParseMediaType(contentType)\n\tif err != nil {\n\t\treturn false\n\t}\n\treturn strings.HasPrefix(media, \"text/\")\n}\n\n// retryAfterSeconds returns the value of the Retry-After header and true, or 0 and false if\n// the header was missing or not a valid number.\nfunc retryAfterSeconds(resp *http.Response) (int, bool) {\n\tif h := resp.Header.Get(\"Retry-After\"); len(h) > 0 {\n\t\tif i, err := strconv.Atoi(h); err == nil {\n\t\t\treturn i, true\n\t\t}\n\t}\n\treturn 0, false\n}\n\n// Result contains the result of calling Request.Do().\ntype Result struct {\n\tbody        []byte\n\twarnings    []net.WarningHeader\n\tcontentType string\n\terr         error\n\tstatusCode  int\n\n\tdecoder runtime.Decoder\n}\n\n// Raw returns the raw result.\nfunc (r Result) Raw() ([]byte, error) {\n\treturn r.body, r.err\n}\n\n// Get returns the result as an object, which means it passes through the decoder.\n// If the returned object is of type Status and has .Status != StatusSuccess, the\n// additional information in Status will be used to enrich the error.\nfunc (r Result) Get() (runtime.Object, error) {\n\tif r.err != nil {\n\t\t// Check whether the result has a Status object in the body and prefer that.\n\t\treturn nil, r.Error()\n\t}\n\tif r.decoder == nil {\n\t\treturn nil, fmt.Errorf(\"serializer for %s doesn't exist\", r.contentType)\n\t}\n\n\t// decode, but if the result is Status return that as an error instead.\n\tout, _, err := r.decoder.Decode(r.body, nil, nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tswitch t := out.(type) {\n\tcase *metav1.Status:\n\t\t// any status besides StatusSuccess is considered an error.\n\t\tif t.Status != metav1.StatusSuccess {\n\t\t\treturn nil, errors.FromObject(t)\n\t\t}\n\t}\n\treturn out, nil\n}\n\n// StatusCode returns the HTTP status code of the request. (Only valid if no\n// error was returned.)\nfunc (r Result) StatusCode(statusCode *int) Result {\n\t*statusCode = r.statusCode\n\treturn r\n}\n\n// ContentType returns the \"Content-Type\" response header into the passed\n// string, returning the Result for possible chaining. (Only valid if no\n// error code was returned.)\nfunc (r Result) ContentType(contentType *string) Result {\n\t*contentType = r.contentType\n\treturn r\n}\n\n// Into stores the result into obj, if possible. If obj is nil it is ignored.\n// If the returned object is of type Status and has .Status != StatusSuccess, the\n// additional information in Status will be used to enrich the error.\nfunc (r Result) Into(obj runtime.Object) error {\n\tif r.err != nil {\n\t\t// Check whether the result has a Status object in the body and prefer that.\n\t\treturn r.Error()\n\t}\n\tif r.decoder == nil {\n\t\treturn fmt.Errorf(\"serializer for %s doesn't exist\", r.contentType)\n\t}\n\tif len(r.body) == 0 {\n\t\treturn fmt.Errorf(\"0-length response with status code: %d and content type: %s\",\n\t\t\tr.statusCode, r.contentType)\n\t}\n\n\tout, _, err := r.decoder.Decode(r.body, nil, obj)\n\tif err != nil || out == obj {\n\t\treturn err\n\t}\n\t// if a different object is returned, see if it is Status and avoid double decoding\n\t// the object.\n\tswitch t := out.(type) {\n\tcase *metav1.Status:\n\t\t// any status besides StatusSuccess is considered an error.\n\t\tif t.Status != metav1.StatusSuccess {\n\t\t\treturn errors.FromObject(t)\n\t\t}\n\t}\n\treturn nil\n}\n\n// WasCreated updates the provided bool pointer to whether the server returned\n// 201 created or a different response.\nfunc (r Result) WasCreated(wasCreated *bool) Result {\n\t*wasCreated = r.statusCode == http.StatusCreated\n\treturn r\n}\n\n// Error returns the error executing the request, nil if no error occurred.\n// If the returned object is of type Status and has Status != StatusSuccess, the\n// additional information in Status will be used to enrich the error.\n// See the Request.Do() comment for what errors you might get.\nfunc (r Result) Error() error {\n\t// if we have received an unexpected server error, and we have a body and decoder, we can try to extract\n\t// a Status object.\n\tif r.err == nil || !errors.IsUnexpectedServerError(r.err) || len(r.body) == 0 || r.decoder == nil {\n\t\treturn r.err\n\t}\n\n\t// attempt to convert the body into a Status object\n\t// to be backwards compatible with old servers that do not return a version, default to \"v1\"\n\tout, _, err := r.decoder.Decode(r.body, &schema.GroupVersionKind{Version: \"v1\"}, nil)\n\tif err != nil {\n\t\tklog.V(5).Infof(\"body was not decodable (unable to check for Status): %v\", err)\n\t\treturn r.err\n\t}\n\tswitch t := out.(type) {\n\tcase *metav1.Status:\n\t\t// because we default the kind, we *must* check for StatusFailure\n\t\tif t.Status == metav1.StatusFailure {\n\t\t\treturn errors.FromObject(t)\n\t\t}\n\t}\n\treturn r.err\n}\n\n// Warnings returns any warning headers received in the response\nfunc (r Result) Warnings() []net.WarningHeader {\n\treturn r.warnings\n}\n\n// NameMayNotBe specifies strings that cannot be used as names specified as path segments (like the REST API or etcd store)\nvar NameMayNotBe = []string{\".\", \"..\"}\n\n// NameMayNotContain specifies substrings that cannot be used in names specified as path segments (like the REST API or etcd store)\nvar NameMayNotContain = []string{\"/\", \"%\"}\n\n// IsValidPathSegmentName validates the name can be safely encoded as a path segment\nfunc IsValidPathSegmentName(name string) []string {\n\tfor _, illegalName := range NameMayNotBe {\n\t\tif name == illegalName {\n\t\t\treturn []string{fmt.Sprintf(`may not be '%s'`, illegalName)}\n\t\t}\n\t}\n\n\tvar errors []string\n\tfor _, illegalContent := range NameMayNotContain {\n\t\tif strings.Contains(name, illegalContent) {\n\t\t\terrors = append(errors, fmt.Sprintf(`may not contain '%s'`, illegalContent))\n\t\t}\n\t}\n\n\treturn errors\n}\n\n// IsValidPathSegmentPrefix validates the name can be used as a prefix for a name which will be encoded as a path segment\n// It does not check for exact matches with disallowed names, since an arbitrary suffix might make the name valid\nfunc IsValidPathSegmentPrefix(name string) []string {\n\tvar errors []string\n\tfor _, illegalContent := range NameMayNotContain {\n\t\tif strings.Contains(name, illegalContent) {\n\t\t\terrors = append(errors, fmt.Sprintf(`may not contain '%s'`, illegalContent))\n\t\t}\n\t}\n\n\treturn errors\n}\n\n// ValidatePathSegmentName validates the name can be safely encoded as a path segment\nfunc ValidatePathSegmentName(name string, prefix bool) []string {\n\tif prefix {\n\t\treturn IsValidPathSegmentPrefix(name)\n\t}\n\treturn IsValidPathSegmentName(name)\n}\n\nfunc objectKeyFromMeta(objMeta metav1.Object) string {\n\tif len(objMeta.GetNamespace()) > 0 {\n\t\treturn fmt.Sprintf(\"%s/%s\", objMeta.GetNamespace(), objMeta.GetName())\n\t}\n\treturn objMeta.GetName()\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/rest/transport.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage rest\n\nimport (\n\t\"crypto/tls\"\n\t\"errors\"\n\t\"net/http\"\n\n\t\"k8s.io/client-go/pkg/apis/clientauthentication\"\n\t\"k8s.io/client-go/plugin/pkg/client/auth/exec\"\n\t\"k8s.io/client-go/transport\"\n)\n\n// HTTPClientFor returns an http.Client that will provide the authentication\n// or transport level security defined by the provided Config. Will return the\n// default http.DefaultClient if no special case behavior is needed.\nfunc HTTPClientFor(config *Config) (*http.Client, error) {\n\ttransport, err := TransportFor(config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tvar httpClient *http.Client\n\tif transport != http.DefaultTransport || config.Timeout > 0 {\n\t\thttpClient = &http.Client{\n\t\t\tTransport: transport,\n\t\t\tTimeout:   config.Timeout,\n\t\t}\n\t} else {\n\t\thttpClient = http.DefaultClient\n\t}\n\n\treturn httpClient, nil\n}\n\n// TLSConfigFor returns a tls.Config that will provide the transport level security defined\n// by the provided Config. Will return nil if no transport level security is requested.\nfunc TLSConfigFor(config *Config) (*tls.Config, error) {\n\tcfg, err := config.TransportConfig()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn transport.TLSConfigFor(cfg)\n}\n\n// TransportFor returns an http.RoundTripper that will provide the authentication\n// or transport level security defined by the provided Config. Will return the\n// default http.DefaultTransport if no special case behavior is needed.\nfunc TransportFor(config *Config) (http.RoundTripper, error) {\n\tcfg, err := config.TransportConfig()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn transport.New(cfg)\n}\n\n// HTTPWrappersForConfig wraps a round tripper with any relevant layered behavior from the\n// config. Exposed to allow more clients that need HTTP-like behavior but then must hijack\n// the underlying connection (like WebSocket or HTTP2 clients). Pure HTTP clients should use\n// the higher level TransportFor or RESTClientFor methods.\nfunc HTTPWrappersForConfig(config *Config, rt http.RoundTripper) (http.RoundTripper, error) {\n\tcfg, err := config.TransportConfig()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn transport.HTTPWrappersForConfig(cfg, rt)\n}\n\n// TransportConfig converts a client config to an appropriate transport config.\nfunc (c *Config) TransportConfig() (*transport.Config, error) {\n\tconf := &transport.Config{\n\t\tUserAgent:          c.UserAgent,\n\t\tTransport:          c.Transport,\n\t\tWrapTransport:      c.WrapTransport,\n\t\tDisableCompression: c.DisableCompression,\n\t\tTLS: transport.TLSConfig{\n\t\t\tInsecure:   c.Insecure,\n\t\t\tServerName: c.ServerName,\n\t\t\tCAFile:     c.CAFile,\n\t\t\tCAData:     c.CAData,\n\t\t\tCertFile:   c.CertFile,\n\t\t\tCertData:   c.CertData,\n\t\t\tKeyFile:    c.KeyFile,\n\t\t\tKeyData:    c.KeyData,\n\t\t\tNextProtos: c.NextProtos,\n\t\t},\n\t\tUsername:        c.Username,\n\t\tPassword:        c.Password,\n\t\tBearerToken:     c.BearerToken,\n\t\tBearerTokenFile: c.BearerTokenFile,\n\t\tImpersonate: transport.ImpersonationConfig{\n\t\t\tUserName: c.Impersonate.UserName,\n\t\t\tUID:      c.Impersonate.UID,\n\t\t\tGroups:   c.Impersonate.Groups,\n\t\t\tExtra:    c.Impersonate.Extra,\n\t\t},\n\t\tProxy: c.Proxy,\n\t}\n\n\tif c.Dial != nil {\n\t\tconf.DialHolder = &transport.DialHolder{Dial: c.Dial}\n\t}\n\n\tif c.ExecProvider != nil && c.AuthProvider != nil {\n\t\treturn nil, errors.New(\"execProvider and authProvider cannot be used in combination\")\n\t}\n\n\tif c.ExecProvider != nil {\n\t\tvar cluster *clientauthentication.Cluster\n\t\tif c.ExecProvider.ProvideClusterInfo {\n\t\t\tvar err error\n\t\t\tcluster, err = ConfigToExecCluster(c)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t\tprovider, err := exec.GetAuthenticator(c.ExecProvider, cluster)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif err := provider.UpdateTransportConfig(conf); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\tif c.AuthProvider != nil {\n\t\tprovider, err := GetAuthProvider(c.Host, c.AuthProvider, c.AuthConfigPersister)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tconf.Wrap(provider.WrapTransport)\n\t}\n\treturn conf, nil\n}\n\n// Wrap adds a transport middleware function that will give the caller\n// an opportunity to wrap the underlying http.RoundTripper prior to the\n// first API call being made. The provided function is invoked after any\n// existing transport wrappers are invoked.\nfunc (c *Config) Wrap(fn transport.WrapperFunc) {\n\tc.WrapTransport = transport.Wrappers(c.WrapTransport, fn)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/rest/url_utils.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage rest\n\nimport (\n\t\"fmt\"\n\t\"net/url\"\n\t\"path\"\n\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// DefaultServerURL converts a host, host:port, or URL string to the default base server API path\n// to use with a Client at a given API version following the standard conventions for a\n// Kubernetes API.\nfunc DefaultServerURL(host, apiPath string, groupVersion schema.GroupVersion, defaultTLS bool) (*url.URL, string, error) {\n\tif host == \"\" {\n\t\treturn nil, \"\", fmt.Errorf(\"host must be a URL or a host:port pair\")\n\t}\n\tbase := host\n\thostURL, err := url.Parse(base)\n\tif err != nil || hostURL.Scheme == \"\" || hostURL.Host == \"\" {\n\t\tscheme := \"http://\"\n\t\tif defaultTLS {\n\t\t\tscheme = \"https://\"\n\t\t}\n\t\thostURL, err = url.Parse(scheme + base)\n\t\tif err != nil {\n\t\t\treturn nil, \"\", err\n\t\t}\n\t\tif hostURL.Path != \"\" && hostURL.Path != \"/\" {\n\t\t\treturn nil, \"\", fmt.Errorf(\"host must be a URL or a host:port pair: %q\", base)\n\t\t}\n\t}\n\n\t// hostURL.Path is optional; a non-empty Path is treated as a prefix that is to be applied to\n\t// all URIs used to access the host. this is useful when there's a proxy in front of the\n\t// apiserver that has relocated the apiserver endpoints, forwarding all requests from, for\n\t// example, /a/b/c to the apiserver. in this case the Path should be /a/b/c.\n\t//\n\t// if running without a frontend proxy (that changes the location of the apiserver), then\n\t// hostURL.Path should be blank.\n\t//\n\t// versionedAPIPath, a path relative to baseURL.Path, points to a versioned API base\n\tversionedAPIPath := DefaultVersionedAPIPath(apiPath, groupVersion)\n\n\treturn hostURL, versionedAPIPath, nil\n}\n\n// DefaultVersionedAPIPath constructs the default path for the given group version, assuming the given\n// API path, following the standard conventions of the Kubernetes API.\nfunc DefaultVersionedAPIPath(apiPath string, groupVersion schema.GroupVersion) string {\n\tversionedAPIPath := path.Join(\"/\", apiPath)\n\n\t// Add the version to the end of the path\n\tif len(groupVersion.Group) > 0 {\n\t\tversionedAPIPath = path.Join(versionedAPIPath, groupVersion.Group, groupVersion.Version)\n\n\t} else {\n\t\tversionedAPIPath = path.Join(versionedAPIPath, groupVersion.Version)\n\t}\n\n\treturn versionedAPIPath\n}\n\n// DefaultServerUrlFor is shared between IsConfigTransportTLS and RESTClientFor. It\n// requires Host and Version to be set prior to being called.\nfunc DefaultServerUrlFor(config *Config) (*url.URL, string, error) {\n\t// TODO: move the default to secure when the apiserver supports TLS by default\n\t// config.Insecure is taken to mean \"I want HTTPS but don't bother checking the certs against a CA.\"\n\thasCA := len(config.CAFile) != 0 || len(config.CAData) != 0\n\thasCert := len(config.CertFile) != 0 || len(config.CertData) != 0\n\tdefaultTLS := hasCA || hasCert || config.Insecure\n\thost := config.Host\n\tif host == \"\" {\n\t\thost = \"localhost\"\n\t}\n\n\tif config.GroupVersion != nil {\n\t\treturn DefaultServerURL(host, config.APIPath, *config.GroupVersion, defaultTLS)\n\t}\n\treturn DefaultServerURL(host, config.APIPath, schema.GroupVersion{}, defaultTLS)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/rest/urlbackoff.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage rest\n\nimport (\n\t\"net/url\"\n\t\"time\"\n\n\t\"k8s.io/apimachinery/pkg/util/sets\"\n\t\"k8s.io/client-go/util/flowcontrol\"\n\t\"k8s.io/klog/v2\"\n)\n\n// Set of resp. Codes that we backoff for.\n// In general these should be errors that indicate a server is overloaded.\n// These shouldn't be configured by any user, we set them based on conventions\n// described in\nvar serverIsOverloadedSet = sets.NewInt(429)\nvar maxResponseCode = 499\n\ntype BackoffManager interface {\n\tUpdateBackoff(actualUrl *url.URL, err error, responseCode int)\n\tCalculateBackoff(actualUrl *url.URL) time.Duration\n\tSleep(d time.Duration)\n}\n\n// URLBackoff struct implements the semantics on top of Backoff which\n// we need for URL specific exponential backoff.\ntype URLBackoff struct {\n\t// Uses backoff as underlying implementation.\n\tBackoff *flowcontrol.Backoff\n}\n\n// NoBackoff is a stub implementation, can be used for mocking or else as a default.\ntype NoBackoff struct {\n}\n\nfunc (n *NoBackoff) UpdateBackoff(actualUrl *url.URL, err error, responseCode int) {\n\t// do nothing.\n}\n\nfunc (n *NoBackoff) CalculateBackoff(actualUrl *url.URL) time.Duration {\n\treturn 0 * time.Second\n}\n\nfunc (n *NoBackoff) Sleep(d time.Duration) {\n\ttime.Sleep(d)\n}\n\n// Disable makes the backoff trivial, i.e., sets it to zero.  This might be used\n// by tests which want to run 1000s of mock requests without slowing down.\nfunc (b *URLBackoff) Disable() {\n\tklog.V(4).Infof(\"Disabling backoff strategy\")\n\tb.Backoff = flowcontrol.NewBackOff(0*time.Second, 0*time.Second)\n}\n\n// baseUrlKey returns the key which urls will be mapped to.\n// For example, 127.0.0.1:8080/api/v2/abcde -> 127.0.0.1:8080.\nfunc (b *URLBackoff) baseUrlKey(rawurl *url.URL) string {\n\t// Simple implementation for now, just the host.\n\t// We may backoff specific paths (i.e. \"pods\") differentially\n\t// in the future.\n\thost, err := url.Parse(rawurl.String())\n\tif err != nil {\n\t\tklog.V(4).Infof(\"Error extracting url: %v\", rawurl)\n\t\tpanic(\"bad url!\")\n\t}\n\treturn host.Host\n}\n\n// UpdateBackoff updates backoff metadata\nfunc (b *URLBackoff) UpdateBackoff(actualUrl *url.URL, err error, responseCode int) {\n\t// range for retry counts that we store is [0,13]\n\tif responseCode > maxResponseCode || serverIsOverloadedSet.Has(responseCode) {\n\t\tb.Backoff.Next(b.baseUrlKey(actualUrl), b.Backoff.Clock.Now())\n\t\treturn\n\t} else if responseCode >= 300 || err != nil {\n\t\tklog.V(4).Infof(\"Client is returning errors: code %v, error %v\", responseCode, err)\n\t}\n\n\t//If we got this far, there is no backoff required for this URL anymore.\n\tb.Backoff.Reset(b.baseUrlKey(actualUrl))\n}\n\n// CalculateBackoff takes a url and back's off exponentially,\n// based on its knowledge of existing failures.\nfunc (b *URLBackoff) CalculateBackoff(actualUrl *url.URL) time.Duration {\n\treturn b.Backoff.Get(b.baseUrlKey(actualUrl))\n}\n\nfunc (b *URLBackoff) Sleep(d time.Duration) {\n\tb.Backoff.Clock.Sleep(d)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/rest/warnings.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage rest\n\nimport (\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n\t\"sync\"\n\n\t\"k8s.io/klog/v2\"\n\n\t\"k8s.io/apimachinery/pkg/util/net\"\n)\n\n// WarningHandler is an interface for handling warning headers\ntype WarningHandler interface {\n\t// HandleWarningHeader is called with the warn code, agent, and text when a warning header is countered.\n\tHandleWarningHeader(code int, agent string, text string)\n}\n\nvar (\n\tdefaultWarningHandler     WarningHandler = WarningLogger{}\n\tdefaultWarningHandlerLock sync.RWMutex\n)\n\n// SetDefaultWarningHandler sets the default handler clients use when warning headers are encountered.\n// By default, warnings are logged. Several built-in implementations are provided:\n//   - NoWarnings suppresses warnings.\n//   - WarningLogger logs warnings.\n//   - NewWarningWriter() outputs warnings to the provided writer.\nfunc SetDefaultWarningHandler(l WarningHandler) {\n\tdefaultWarningHandlerLock.Lock()\n\tdefer defaultWarningHandlerLock.Unlock()\n\tdefaultWarningHandler = l\n}\nfunc getDefaultWarningHandler() WarningHandler {\n\tdefaultWarningHandlerLock.RLock()\n\tdefer defaultWarningHandlerLock.RUnlock()\n\tl := defaultWarningHandler\n\treturn l\n}\n\n// NoWarnings is an implementation of WarningHandler that suppresses warnings.\ntype NoWarnings struct{}\n\nfunc (NoWarnings) HandleWarningHeader(code int, agent string, message string) {}\n\n// WarningLogger is an implementation of WarningHandler that logs code 299 warnings\ntype WarningLogger struct{}\n\nfunc (WarningLogger) HandleWarningHeader(code int, agent string, message string) {\n\tif code != 299 || len(message) == 0 {\n\t\treturn\n\t}\n\tklog.Warning(message)\n}\n\ntype warningWriter struct {\n\t// out is the writer to output warnings to\n\tout io.Writer\n\t// opts contains options controlling warning output\n\topts WarningWriterOptions\n\t// writtenLock guards written and writtenCount\n\twrittenLock  sync.Mutex\n\twrittenCount int\n\twritten      map[string]struct{}\n}\n\n// WarningWriterOptions controls the behavior of a WarningHandler constructed using NewWarningWriter()\ntype WarningWriterOptions struct {\n\t// Deduplicate indicates a given warning message should only be written once.\n\t// Setting this to true in a long-running process handling many warnings can result in increased memory use.\n\tDeduplicate bool\n\t// Color indicates that warning output can include ANSI color codes\n\tColor bool\n}\n\n// NewWarningWriter returns an implementation of WarningHandler that outputs code 299 warnings to the specified writer.\nfunc NewWarningWriter(out io.Writer, opts WarningWriterOptions) *warningWriter {\n\th := &warningWriter{out: out, opts: opts}\n\tif opts.Deduplicate {\n\t\th.written = map[string]struct{}{}\n\t}\n\treturn h\n}\n\nconst (\n\tyellowColor = \"\\u001b[33;1m\"\n\tresetColor  = \"\\u001b[0m\"\n)\n\n// HandleWarningHeader prints warnings with code=299 to the configured writer.\nfunc (w *warningWriter) HandleWarningHeader(code int, agent string, message string) {\n\tif code != 299 || len(message) == 0 {\n\t\treturn\n\t}\n\n\tw.writtenLock.Lock()\n\tdefer w.writtenLock.Unlock()\n\n\tif w.opts.Deduplicate {\n\t\tif _, alreadyWritten := w.written[message]; alreadyWritten {\n\t\t\treturn\n\t\t}\n\t\tw.written[message] = struct{}{}\n\t}\n\tw.writtenCount++\n\n\tif w.opts.Color {\n\t\tfmt.Fprintf(w.out, \"%sWarning:%s %s\\n\", yellowColor, resetColor, message)\n\t} else {\n\t\tfmt.Fprintf(w.out, \"Warning: %s\\n\", message)\n\t}\n}\n\nfunc (w *warningWriter) WarningCount() int {\n\tw.writtenLock.Lock()\n\tdefer w.writtenLock.Unlock()\n\treturn w.writtenCount\n}\n\nfunc handleWarnings(headers http.Header, handler WarningHandler) []net.WarningHeader {\n\tif handler == nil {\n\t\thandler = getDefaultWarningHandler()\n\t}\n\n\twarnings, _ := net.ParseWarningHeaders(headers[\"Warning\"])\n\tfor _, warning := range warnings {\n\t\thandler.HandleWarningHeader(warning.Code, warning.Agent, warning.Text)\n\t}\n\treturn warnings\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/rest/watch/decoder.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage watch\n\nimport (\n\t\"fmt\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/serializer/streaming\"\n\t\"k8s.io/apimachinery/pkg/watch\"\n)\n\n// Decoder implements the watch.Decoder interface for io.ReadClosers that\n// have contents which consist of a series of watchEvent objects encoded\n// with the given streaming decoder. The internal objects will be then\n// decoded by the embedded decoder.\ntype Decoder struct {\n\tdecoder         streaming.Decoder\n\tembeddedDecoder runtime.Decoder\n}\n\n// NewDecoder creates an Decoder for the given writer and codec.\nfunc NewDecoder(decoder streaming.Decoder, embeddedDecoder runtime.Decoder) *Decoder {\n\treturn &Decoder{\n\t\tdecoder:         decoder,\n\t\tembeddedDecoder: embeddedDecoder,\n\t}\n}\n\n// Decode blocks until it can return the next object in the reader. Returns an error\n// if the reader is closed or an object can't be decoded.\nfunc (d *Decoder) Decode() (watch.EventType, runtime.Object, error) {\n\tvar got metav1.WatchEvent\n\tres, _, err := d.decoder.Decode(nil, &got)\n\tif err != nil {\n\t\treturn \"\", nil, err\n\t}\n\tif res != &got {\n\t\treturn \"\", nil, fmt.Errorf(\"unable to decode to metav1.WatchEvent\")\n\t}\n\tswitch got.Type {\n\tcase string(watch.Added), string(watch.Modified), string(watch.Deleted), string(watch.Error), string(watch.Bookmark):\n\tdefault:\n\t\treturn \"\", nil, fmt.Errorf(\"got invalid watch event type: %v\", got.Type)\n\t}\n\n\tobj, err := runtime.Decode(d.embeddedDecoder, got.Object.Raw)\n\tif err != nil {\n\t\treturn \"\", nil, fmt.Errorf(\"unable to decode watch event: %v\", err)\n\t}\n\treturn watch.EventType(got.Type), obj, nil\n}\n\n// Close closes the underlying r.\nfunc (d *Decoder) Close() {\n\td.decoder.Close()\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/rest/watch/encoder.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage watch\n\nimport (\n\t\"encoding/json\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/serializer/streaming\"\n\t\"k8s.io/apimachinery/pkg/watch\"\n)\n\n// Encoder serializes watch.Events into io.Writer. The internal objects\n// are encoded using embedded encoder, and the outer Event is serialized\n// using encoder.\n// TODO: this type is only used by tests\ntype Encoder struct {\n\tencoder         streaming.Encoder\n\tembeddedEncoder runtime.Encoder\n}\n\nfunc NewEncoder(encoder streaming.Encoder, embeddedEncoder runtime.Encoder) *Encoder {\n\treturn &Encoder{\n\t\tencoder:         encoder,\n\t\tembeddedEncoder: embeddedEncoder,\n\t}\n}\n\n// Encode writes an event to the writer. Returns an error\n// if the writer is closed or an object can't be encoded.\nfunc (e *Encoder) Encode(event *watch.Event) error {\n\tdata, err := runtime.Encode(e.embeddedEncoder, event.Object)\n\tif err != nil {\n\t\treturn err\n\t}\n\t// FIXME: get rid of json.RawMessage.\n\treturn e.encoder.Encode(&metav1.WatchEvent{\n\t\tType:   string(event.Type),\n\t\tObject: runtime.RawExtension{Raw: json.RawMessage(data)},\n\t})\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/rest/with_retry.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage rest\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"time\"\n\n\t\"k8s.io/klog/v2\"\n)\n\n// IsRetryableErrorFunc allows the client to provide its own function\n// that determines whether the specified err from the server is retryable.\n//\n// request: the original request sent to the server\n// err: the server sent this error to us\n//\n// The function returns true if the error is retryable and the request\n// can be retried, otherwise it returns false.\n// We have four mode of communications - 'Stream', 'Watch', 'Do' and 'DoRaw', this\n// function allows us to customize the retryability aspect of each.\ntype IsRetryableErrorFunc func(request *http.Request, err error) bool\n\nfunc (r IsRetryableErrorFunc) IsErrorRetryable(request *http.Request, err error) bool {\n\treturn r(request, err)\n}\n\nvar neverRetryError = IsRetryableErrorFunc(func(_ *http.Request, _ error) bool {\n\treturn false\n})\n\n// WithRetry allows the client to retry a request up to a certain number of times\n// Note that WithRetry is not safe for concurrent use by multiple\n// goroutines without additional locking or coordination.\ntype WithRetry interface {\n\t// IsNextRetry advances the retry counter appropriately\n\t// and returns true if the request should be retried,\n\t// otherwise it returns false, if:\n\t//  - we have already reached the maximum retry threshold.\n\t//  - the error does not fall into the retryable category.\n\t//  - the server has not sent us a 429, or 5xx status code and the\n\t//    'Retry-After' response header is not set with a value.\n\t//  - we need to seek to the beginning of the request body before we\n\t//    initiate the next retry, the function should log an error and\n\t//    return false if it fails to do so.\n\t//\n\t// restReq: the associated rest.Request\n\t// httpReq: the HTTP Request sent to the server\n\t// resp: the response sent from the server, it is set if err is nil\n\t// err: the server sent this error to us, if err is set then resp is nil.\n\t// f: a IsRetryableErrorFunc function provided by the client that determines\n\t//    if the err sent by the server is retryable.\n\tIsNextRetry(ctx context.Context, restReq *Request, httpReq *http.Request, resp *http.Response, err error, f IsRetryableErrorFunc) bool\n\n\t// Before should be invoked prior to each attempt, including\n\t// the first one. If an error is returned, the request should\n\t// be aborted immediately.\n\t//\n\t// Before may also be additionally responsible for preparing\n\t// the request for the next retry, namely in terms of resetting\n\t// the request body in case it has been read.\n\tBefore(ctx context.Context, r *Request) error\n\n\t// After should be invoked immediately after an attempt is made.\n\tAfter(ctx context.Context, r *Request, resp *http.Response, err error)\n\n\t// WrapPreviousError wraps the error from any previous attempt into\n\t// the final error specified in 'finalErr', so the user has more\n\t// context why the request failed.\n\t// For example, if a request times out after multiple retries then\n\t// we see a generic context.Canceled or context.DeadlineExceeded\n\t// error which is not very useful in debugging. This function can\n\t// wrap any error from previous attempt(s) to provide more context to\n\t// the user. The error returned in 'err' must satisfy the\n\t// following conditions:\n\t//  a: errors.Unwrap(err) = errors.Unwrap(finalErr) if finalErr\n\t//     implements Unwrap\n\t//  b: errors.Unwrap(err) = finalErr if finalErr does not\n\t//     implements Unwrap\n\t//  c: errors.Is(err, otherErr) = errors.Is(finalErr, otherErr)\n\tWrapPreviousError(finalErr error) (err error)\n}\n\n// RetryAfter holds information associated with the next retry.\ntype RetryAfter struct {\n\t// Wait is the duration the server has asked us to wait before\n\t// the next retry is initiated.\n\t// This is the value of the 'Retry-After' response header in seconds.\n\tWait time.Duration\n\n\t// Attempt is the Nth attempt after which we have received a retryable\n\t// error or a 'Retry-After' response header from the server.\n\tAttempt int\n\n\t// Reason describes why we are retrying the request\n\tReason string\n}\n\ntype withRetry struct {\n\tmaxRetries int\n\tattempts   int\n\n\t// retry after parameters that pertain to the attempt that is to\n\t// be made soon, so as to enable 'Before' and 'After' to refer\n\t// to the retry parameters.\n\t//  - for the first attempt, it will always be nil\n\t//  - for consecutive attempts, it is non nil and holds the\n\t//    retry after parameters for the next attempt to be made.\n\tretryAfter *RetryAfter\n\n\t// we keep track of two most recent errors, if the most\n\t// recent attempt is labeled as 'N' then:\n\t//  - currentErr represents the error returned by attempt N, it\n\t//    can be nil if attempt N did not return an error.\n\t//  - previousErr represents an error from an attempt 'M' which\n\t//    precedes attempt 'N' (N - M >= 1), it is non nil only when:\n\t//      - for a sequence of attempt(s) 1..n (n>1), there\n\t//        is an attempt k (k<n) that returned an error.\n\tpreviousErr, currentErr error\n}\n\nfunc (r *withRetry) trackPreviousError(err error) {\n\t// keep track of two most recent errors\n\tif r.currentErr != nil {\n\t\tr.previousErr = r.currentErr\n\t}\n\tr.currentErr = err\n}\n\nfunc (r *withRetry) IsNextRetry(ctx context.Context, restReq *Request, httpReq *http.Request, resp *http.Response, err error, f IsRetryableErrorFunc) bool {\n\tdefer r.trackPreviousError(err)\n\n\tif httpReq == nil || (resp == nil && err == nil) {\n\t\t// bad input, we do nothing.\n\t\treturn false\n\t}\n\n\tif restReq.body != nil {\n\t\t// we have an opaque reader, we can't safely reset it\n\t\treturn false\n\t}\n\n\tr.attempts++\n\tr.retryAfter = &RetryAfter{Attempt: r.attempts}\n\tif r.attempts > r.maxRetries {\n\t\treturn false\n\t}\n\n\t// if the server returned an error, it takes precedence over the http response.\n\tvar errIsRetryable bool\n\tif f != nil && err != nil && f.IsErrorRetryable(httpReq, err) {\n\t\terrIsRetryable = true\n\t\t// we have a retryable error, for which we will create an\n\t\t// artificial \"Retry-After\" response.\n\t\tresp = retryAfterResponse()\n\t}\n\tif err != nil && !errIsRetryable {\n\t\treturn false\n\t}\n\n\t// if we are here, we have either a or b:\n\t//  a: we have a retryable error, for which we already\n\t//     have an artificial \"Retry-After\" response.\n\t//  b: we have a response from the server for which we\n\t//     need to check if it is retryable\n\tseconds, wait := checkWait(resp)\n\tif !wait {\n\t\treturn false\n\t}\n\n\tr.retryAfter.Wait = time.Duration(seconds) * time.Second\n\tr.retryAfter.Reason = getRetryReason(r.attempts, seconds, resp, err)\n\n\treturn true\n}\n\nfunc (r *withRetry) Before(ctx context.Context, request *Request) error {\n\t// If the request context is already canceled there\n\t// is no need to retry.\n\tif ctx.Err() != nil {\n\t\tr.trackPreviousError(ctx.Err())\n\t\treturn ctx.Err()\n\t}\n\n\turl := request.URL()\n\t// r.retryAfter represents the retry after parameters calculated\n\t// from the (response, err) tuple from the last attempt, so 'Before'\n\t// can apply these retry after parameters prior to the next attempt.\n\t// 'r.retryAfter == nil' indicates that this is the very first attempt.\n\tif r.retryAfter == nil {\n\t\t// we do a backoff sleep before the first attempt is made,\n\t\t// (preserving current behavior).\n\t\tif request.backoff != nil {\n\t\t\trequest.backoff.Sleep(request.backoff.CalculateBackoff(url))\n\t\t}\n\t\treturn nil\n\t}\n\n\t// if we are here, we have made attempt(s) at least once before.\n\tif request.backoff != nil {\n\t\tdelay := request.backoff.CalculateBackoff(url)\n\t\tif r.retryAfter.Wait > delay {\n\t\t\tdelay = r.retryAfter.Wait\n\t\t}\n\t\trequest.backoff.Sleep(delay)\n\t}\n\n\t// We are retrying the request that we already send to\n\t// apiserver at least once before. This request should\n\t// also be throttled with the client-internal rate limiter.\n\tif err := request.tryThrottleWithInfo(ctx, r.retryAfter.Reason); err != nil {\n\t\tr.trackPreviousError(ctx.Err())\n\t\treturn err\n\t}\n\n\tklog.V(4).Infof(\"Got a Retry-After %s response for attempt %d to %v\", r.retryAfter.Wait, r.retryAfter.Attempt, request.URL().String())\n\treturn nil\n}\n\nfunc (r *withRetry) After(ctx context.Context, request *Request, resp *http.Response, err error) {\n\t// 'After' is invoked immediately after an attempt is made, let's label\n\t// the attempt we have just made as attempt 'N'.\n\t// the current value of r.retryAfter represents the retry after\n\t// parameters calculated from the (response, err) tuple from\n\t// attempt N-1, so r.retryAfter is outdated and should not be\n\t// referred to here.\n\tisRetry := r.retryAfter != nil\n\tr.retryAfter = nil\n\n\t// the client finishes a single request after N attempts (1..N)\n\t//  - all attempts (1..N) are counted to the rest_client_requests_total\n\t//    metric (current behavior).\n\t//  - every attempt after the first (2..N) are counted to the\n\t//    rest_client_request_retries_total metric.\n\tupdateRequestResultMetric(ctx, request, resp, err)\n\tif isRetry {\n\t\t// this is attempt 2 or later\n\t\tupdateRequestRetryMetric(ctx, request, resp, err)\n\t}\n\n\tif request.c.base != nil {\n\t\tif err != nil {\n\t\t\trequest.backoff.UpdateBackoff(request.URL(), err, 0)\n\t\t} else {\n\t\t\trequest.backoff.UpdateBackoff(request.URL(), err, resp.StatusCode)\n\t\t}\n\t}\n}\n\nfunc (r *withRetry) WrapPreviousError(currentErr error) error {\n\tif currentErr == nil || r.previousErr == nil {\n\t\treturn currentErr\n\t}\n\n\t// if both previous and current error objects represent the error,\n\t// then there is no need to wrap the previous error.\n\tif currentErr.Error() == r.previousErr.Error() {\n\t\treturn currentErr\n\t}\n\n\tpreviousErr := r.previousErr\n\t// net/http wraps the underlying error with an url.Error, if the\n\t// previous err object is an instance of url.Error, then we can\n\t// unwrap it to get to the inner error object, this is so we can\n\t// avoid error message like:\n\t//  Error: Get \"http://foo.bar/api/v1\": context deadline exceeded - error \\\n\t//  from a previous attempt: Error: Get \"http://foo.bar/api/v1\": EOF\n\tif urlErr, ok := r.previousErr.(*url.Error); ok && urlErr != nil {\n\t\tif urlErr.Unwrap() != nil {\n\t\t\tpreviousErr = urlErr.Unwrap()\n\t\t}\n\t}\n\n\treturn &wrapPreviousError{\n\t\tcurrentErr:    currentErr,\n\t\tpreviousError: previousErr,\n\t}\n}\n\ntype wrapPreviousError struct {\n\tcurrentErr, previousError error\n}\n\nfunc (w *wrapPreviousError) Unwrap() error { return w.currentErr }\nfunc (w *wrapPreviousError) Error() string {\n\treturn fmt.Sprintf(\"%s - error from a previous attempt: %s\", w.currentErr.Error(), w.previousError.Error())\n}\n\n// checkWait returns true along with a number of seconds if\n// the server instructed us to wait before retrying.\nfunc checkWait(resp *http.Response) (int, bool) {\n\tswitch r := resp.StatusCode; {\n\t// any 500 error code and 429 can trigger a wait\n\tcase r == http.StatusTooManyRequests, r >= 500:\n\tdefault:\n\t\treturn 0, false\n\t}\n\ti, ok := retryAfterSeconds(resp)\n\treturn i, ok\n}\n\nfunc getRetryReason(retries, seconds int, resp *http.Response, err error) string {\n\t// priority and fairness sets the UID of the FlowSchema\n\t// associated with a request in the following response Header.\n\tconst responseHeaderMatchedFlowSchemaUID = \"X-Kubernetes-PF-FlowSchema-UID\"\n\n\tmessage := fmt.Sprintf(\"retries: %d, retry-after: %ds\", retries, seconds)\n\n\tswitch {\n\tcase resp.StatusCode == http.StatusTooManyRequests:\n\t\t// it is server-side throttling from priority and fairness\n\t\tflowSchemaUID := resp.Header.Get(responseHeaderMatchedFlowSchemaUID)\n\t\treturn fmt.Sprintf(\"%s - retry-reason: due to server-side throttling, FlowSchema UID: %q\", message, flowSchemaUID)\n\tcase err != nil:\n\t\t// it's a retryable error\n\t\treturn fmt.Sprintf(\"%s - retry-reason: due to retryable error, error: %v\", message, err)\n\tdefault:\n\t\treturn fmt.Sprintf(\"%s - retry-reason: %d\", message, resp.StatusCode)\n\t}\n}\n\nfunc readAndCloseResponseBody(resp *http.Response) {\n\tif resp == nil {\n\t\treturn\n\t}\n\n\t// Ensure the response body is fully read and closed\n\t// before we reconnect, so that we reuse the same TCP\n\t// connection.\n\tconst maxBodySlurpSize = 2 << 10\n\tdefer resp.Body.Close()\n\n\tif resp.ContentLength <= maxBodySlurpSize {\n\t\tio.Copy(io.Discard, &io.LimitedReader{R: resp.Body, N: maxBodySlurpSize})\n\t}\n}\n\nfunc retryAfterResponse() *http.Response {\n\treturn retryAfterResponseWithDelay(\"1\")\n}\n\nfunc retryAfterResponseWithDelay(delay string) *http.Response {\n\treturn retryAfterResponseWithCodeAndDelay(http.StatusInternalServerError, delay)\n}\n\nfunc retryAfterResponseWithCodeAndDelay(code int, delay string) *http.Response {\n\treturn &http.Response{\n\t\tStatusCode: code,\n\t\tHeader:     http.Header{\"Retry-After\": []string{delay}},\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/rest/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage rest\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *TLSClientConfig) DeepCopyInto(out *TLSClientConfig) {\n\t*out = *in\n\tif in.CertData != nil {\n\t\tin, out := &in.CertData, &out.CertData\n\t\t*out = make([]byte, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.KeyData != nil {\n\t\tin, out := &in.KeyData, &out.KeyData\n\t\t*out = make([]byte, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.CAData != nil {\n\t\tin, out := &in.CAData, &out.CAData\n\t\t*out = make([]byte, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.NextProtos != nil {\n\t\tin, out := &in.NextProtos, &out.NextProtos\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSClientConfig.\nfunc (in *TLSClientConfig) DeepCopy() *TLSClientConfig {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(TLSClientConfig)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/testing/actions.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage testing\n\nimport (\n\t\"fmt\"\n\t\"path\"\n\t\"strings\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/fields\"\n\t\"k8s.io/apimachinery/pkg/labels\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/types\"\n)\n\n// All NewRoot... functions return non-namespaced actions, and are equivalent to\n// calling the corresponding New... function with an empty namespace.\n// This is assumed by the fake client generator.\n\nfunc NewRootGetAction(resource schema.GroupVersionResource, name string) GetActionImpl {\n\treturn NewRootGetActionWithOptions(resource, name, metav1.GetOptions{})\n}\n\nfunc NewRootGetActionWithOptions(resource schema.GroupVersionResource, name string, opts metav1.GetOptions) GetActionImpl {\n\taction := GetActionImpl{}\n\taction.Verb = \"get\"\n\taction.Resource = resource\n\taction.Name = name\n\taction.GetOptions = opts\n\n\treturn action\n}\n\nfunc NewGetAction(resource schema.GroupVersionResource, namespace, name string) GetActionImpl {\n\treturn NewGetActionWithOptions(resource, namespace, name, metav1.GetOptions{})\n}\n\nfunc NewGetActionWithOptions(resource schema.GroupVersionResource, namespace, name string, opts metav1.GetOptions) GetActionImpl {\n\taction := GetActionImpl{}\n\taction.Verb = \"get\"\n\taction.Resource = resource\n\taction.Namespace = namespace\n\taction.Name = name\n\taction.GetOptions = opts\n\n\treturn action\n}\n\nfunc NewGetSubresourceAction(resource schema.GroupVersionResource, namespace, subresource, name string) GetActionImpl {\n\treturn NewGetSubresourceActionWithOptions(resource, namespace, subresource, name, metav1.GetOptions{})\n}\n\nfunc NewGetSubresourceActionWithOptions(resource schema.GroupVersionResource, namespace, subresource, name string, opts metav1.GetOptions) GetActionImpl {\n\taction := GetActionImpl{}\n\taction.Verb = \"get\"\n\taction.Resource = resource\n\taction.Subresource = subresource\n\taction.Namespace = namespace\n\taction.Name = name\n\taction.GetOptions = opts\n\n\treturn action\n}\n\nfunc NewRootGetSubresourceAction(resource schema.GroupVersionResource, subresource, name string) GetActionImpl {\n\treturn NewRootGetSubresourceActionWithOptions(resource, subresource, name, metav1.GetOptions{})\n}\n\nfunc NewRootGetSubresourceActionWithOptions(resource schema.GroupVersionResource, subresource, name string, opts metav1.GetOptions) GetActionImpl {\n\taction := GetActionImpl{}\n\taction.Verb = \"get\"\n\taction.Resource = resource\n\taction.Subresource = subresource\n\taction.Name = name\n\taction.GetOptions = opts\n\n\treturn action\n}\n\nfunc NewRootListAction(resource schema.GroupVersionResource, kind schema.GroupVersionKind, opts interface{}) ListActionImpl {\n\taction := ListActionImpl{}\n\taction.Verb = \"list\"\n\taction.Resource = resource\n\taction.Kind = kind\n\tlabelSelector, fieldSelector, _ := ExtractFromListOptions(opts)\n\taction.ListRestrictions = ListRestrictions{labelSelector, fieldSelector}\n\taction.ListOptions = metav1.ListOptions{LabelSelector: labelSelector.String(), FieldSelector: fieldSelector.String()}\n\n\treturn action\n}\n\nfunc NewRootListActionWithOptions(resource schema.GroupVersionResource, kind schema.GroupVersionKind, opts metav1.ListOptions) ListActionImpl {\n\taction := ListActionImpl{}\n\taction.Verb = \"list\"\n\taction.Resource = resource\n\taction.Kind = kind\n\taction.ListOptions = opts\n\n\tlabelSelector, fieldSelector, _ := ExtractFromListOptions(opts)\n\taction.ListRestrictions = ListRestrictions{labelSelector, fieldSelector}\n\taction.ListOptions = metav1.ListOptions{LabelSelector: labelSelector.String(), FieldSelector: fieldSelector.String()}\n\n\treturn action\n}\n\nfunc NewListAction(resource schema.GroupVersionResource, kind schema.GroupVersionKind, namespace string, opts interface{}) ListActionImpl {\n\taction := ListActionImpl{}\n\taction.Verb = \"list\"\n\taction.Resource = resource\n\taction.Kind = kind\n\taction.Namespace = namespace\n\tlabelSelector, fieldSelector, _ := ExtractFromListOptions(opts)\n\taction.ListRestrictions = ListRestrictions{labelSelector, fieldSelector}\n\taction.ListOptions = metav1.ListOptions{LabelSelector: labelSelector.String(), FieldSelector: fieldSelector.String()}\n\n\treturn action\n}\n\nfunc NewListActionWithOptions(resource schema.GroupVersionResource, kind schema.GroupVersionKind, namespace string, opts metav1.ListOptions) ListActionImpl {\n\taction := ListActionImpl{}\n\taction.Verb = \"list\"\n\taction.Resource = resource\n\taction.Kind = kind\n\taction.Namespace = namespace\n\taction.ListOptions = opts\n\n\tlabelSelector, fieldSelector, _ := ExtractFromListOptions(opts)\n\taction.ListRestrictions = ListRestrictions{labelSelector, fieldSelector}\n\n\treturn action\n}\n\nfunc NewRootCreateAction(resource schema.GroupVersionResource, object runtime.Object) CreateActionImpl {\n\treturn NewRootCreateActionWithOptions(resource, object, metav1.CreateOptions{})\n}\n\nfunc NewRootCreateActionWithOptions(resource schema.GroupVersionResource, object runtime.Object, opts metav1.CreateOptions) CreateActionImpl {\n\taction := CreateActionImpl{}\n\taction.Verb = \"create\"\n\taction.Resource = resource\n\taction.Object = object\n\taction.CreateOptions = opts\n\n\treturn action\n}\n\nfunc NewCreateAction(resource schema.GroupVersionResource, namespace string, object runtime.Object) CreateActionImpl {\n\treturn NewCreateActionWithOptions(resource, namespace, object, metav1.CreateOptions{})\n}\n\nfunc NewCreateActionWithOptions(resource schema.GroupVersionResource, namespace string, object runtime.Object, opts metav1.CreateOptions) CreateActionImpl {\n\taction := CreateActionImpl{}\n\taction.Verb = \"create\"\n\taction.Resource = resource\n\taction.Namespace = namespace\n\taction.Object = object\n\taction.CreateOptions = opts\n\n\treturn action\n}\n\nfunc NewRootCreateSubresourceAction(resource schema.GroupVersionResource, name, subresource string, object runtime.Object) CreateActionImpl {\n\treturn NewRootCreateSubresourceActionWithOptions(resource, name, subresource, object, metav1.CreateOptions{})\n}\n\nfunc NewRootCreateSubresourceActionWithOptions(resource schema.GroupVersionResource, name, subresource string, object runtime.Object, opts metav1.CreateOptions) CreateActionImpl {\n\taction := CreateActionImpl{}\n\taction.Verb = \"create\"\n\taction.Resource = resource\n\taction.Subresource = subresource\n\taction.Name = name\n\taction.Object = object\n\taction.CreateOptions = opts\n\n\treturn action\n}\n\nfunc NewCreateSubresourceAction(resource schema.GroupVersionResource, name, subresource, namespace string, object runtime.Object) CreateActionImpl {\n\treturn NewCreateSubresourceActionWithOptions(resource, name, subresource, namespace, object, metav1.CreateOptions{})\n}\n\nfunc NewCreateSubresourceActionWithOptions(resource schema.GroupVersionResource, name, subresource, namespace string, object runtime.Object, opts metav1.CreateOptions) CreateActionImpl {\n\taction := CreateActionImpl{}\n\taction.Verb = \"create\"\n\taction.Resource = resource\n\taction.Namespace = namespace\n\taction.Subresource = subresource\n\taction.Name = name\n\taction.Object = object\n\taction.CreateOptions = opts\n\n\treturn action\n}\n\nfunc NewRootUpdateAction(resource schema.GroupVersionResource, object runtime.Object) UpdateActionImpl {\n\treturn NewRootUpdateActionWithOptions(resource, object, metav1.UpdateOptions{})\n}\n\nfunc NewRootUpdateActionWithOptions(resource schema.GroupVersionResource, object runtime.Object, opts metav1.UpdateOptions) UpdateActionImpl {\n\taction := UpdateActionImpl{}\n\taction.Verb = \"update\"\n\taction.Resource = resource\n\taction.Object = object\n\taction.UpdateOptions = opts\n\n\treturn action\n}\n\nfunc NewUpdateAction(resource schema.GroupVersionResource, namespace string, object runtime.Object) UpdateActionImpl {\n\treturn NewUpdateActionWithOptions(resource, namespace, object, metav1.UpdateOptions{})\n}\n\nfunc NewUpdateActionWithOptions(resource schema.GroupVersionResource, namespace string, object runtime.Object, opts metav1.UpdateOptions) UpdateActionImpl {\n\taction := UpdateActionImpl{}\n\taction.Verb = \"update\"\n\taction.Resource = resource\n\taction.Namespace = namespace\n\taction.Object = object\n\taction.UpdateOptions = opts\n\n\treturn action\n}\n\nfunc NewRootPatchAction(resource schema.GroupVersionResource, name string, pt types.PatchType, patch []byte) PatchActionImpl {\n\treturn NewRootPatchActionWithOptions(resource, name, pt, patch, metav1.PatchOptions{})\n}\n\nfunc NewRootPatchActionWithOptions(resource schema.GroupVersionResource, name string, pt types.PatchType, patch []byte, opts metav1.PatchOptions) PatchActionImpl {\n\taction := PatchActionImpl{}\n\taction.Verb = \"patch\"\n\taction.Resource = resource\n\taction.Name = name\n\taction.PatchType = pt\n\taction.Patch = patch\n\taction.PatchOptions = opts\n\n\treturn action\n}\n\nfunc NewPatchAction(resource schema.GroupVersionResource, namespace string, name string, pt types.PatchType, patch []byte) PatchActionImpl {\n\treturn NewPatchActionWithOptions(resource, namespace, name, pt, patch, metav1.PatchOptions{})\n}\n\nfunc NewPatchActionWithOptions(resource schema.GroupVersionResource, namespace string, name string, pt types.PatchType, patch []byte, opts metav1.PatchOptions) PatchActionImpl {\n\taction := PatchActionImpl{}\n\taction.Verb = \"patch\"\n\taction.Resource = resource\n\taction.Namespace = namespace\n\taction.Name = name\n\taction.PatchType = pt\n\taction.Patch = patch\n\taction.PatchOptions = opts\n\n\treturn action\n}\n\nfunc NewRootPatchSubresourceAction(resource schema.GroupVersionResource, name string, pt types.PatchType, patch []byte, subresources ...string) PatchActionImpl {\n\treturn NewRootPatchSubresourceActionWithOptions(resource, name, pt, patch, metav1.PatchOptions{}, subresources...)\n}\n\nfunc NewRootPatchSubresourceActionWithOptions(resource schema.GroupVersionResource, name string, pt types.PatchType, patch []byte, opts metav1.PatchOptions, subresources ...string) PatchActionImpl {\n\taction := PatchActionImpl{}\n\taction.Verb = \"patch\"\n\taction.Resource = resource\n\taction.Subresource = path.Join(subresources...)\n\taction.Name = name\n\taction.PatchType = pt\n\taction.Patch = patch\n\taction.PatchOptions = opts\n\n\treturn action\n}\n\nfunc NewPatchSubresourceAction(resource schema.GroupVersionResource, namespace, name string, pt types.PatchType, patch []byte, subresources ...string) PatchActionImpl {\n\treturn NewPatchSubresourceActionWithOptions(resource, namespace, name, pt, patch, metav1.PatchOptions{}, subresources...)\n}\n\nfunc NewPatchSubresourceActionWithOptions(resource schema.GroupVersionResource, namespace, name string, pt types.PatchType, patch []byte, opts metav1.PatchOptions, subresources ...string) PatchActionImpl {\n\taction := PatchActionImpl{}\n\taction.Verb = \"patch\"\n\taction.Resource = resource\n\taction.Subresource = path.Join(subresources...)\n\taction.Namespace = namespace\n\taction.Name = name\n\taction.PatchType = pt\n\taction.Patch = patch\n\taction.PatchOptions = opts\n\n\treturn action\n}\n\nfunc NewRootUpdateSubresourceAction(resource schema.GroupVersionResource, subresource string, object runtime.Object) UpdateActionImpl {\n\treturn NewRootUpdateSubresourceActionWithOptions(resource, subresource, object, metav1.UpdateOptions{})\n}\n\nfunc NewRootUpdateSubresourceActionWithOptions(resource schema.GroupVersionResource, subresource string, object runtime.Object, opts metav1.UpdateOptions) UpdateActionImpl {\n\taction := UpdateActionImpl{}\n\taction.Verb = \"update\"\n\taction.Resource = resource\n\taction.Subresource = subresource\n\taction.Object = object\n\taction.UpdateOptions = opts\n\n\treturn action\n}\n\nfunc NewUpdateSubresourceAction(resource schema.GroupVersionResource, subresource string, namespace string, object runtime.Object) UpdateActionImpl {\n\treturn NewUpdateSubresourceActionWithOptions(resource, subresource, namespace, object, metav1.UpdateOptions{})\n}\n\nfunc NewUpdateSubresourceActionWithOptions(resource schema.GroupVersionResource, subresource string, namespace string, object runtime.Object, opts metav1.UpdateOptions) UpdateActionImpl {\n\taction := UpdateActionImpl{}\n\taction.Verb = \"update\"\n\taction.Resource = resource\n\taction.Subresource = subresource\n\taction.Namespace = namespace\n\taction.Object = object\n\taction.UpdateOptions = opts\n\n\treturn action\n}\n\nfunc NewRootDeleteAction(resource schema.GroupVersionResource, name string) DeleteActionImpl {\n\treturn NewRootDeleteActionWithOptions(resource, name, metav1.DeleteOptions{})\n}\n\nfunc NewRootDeleteActionWithOptions(resource schema.GroupVersionResource, name string, opts metav1.DeleteOptions) DeleteActionImpl {\n\taction := DeleteActionImpl{}\n\taction.Verb = \"delete\"\n\taction.Resource = resource\n\taction.Name = name\n\taction.DeleteOptions = opts\n\n\treturn action\n}\n\nfunc NewRootDeleteSubresourceAction(resource schema.GroupVersionResource, subresource string, name string) DeleteActionImpl {\n\treturn NewRootDeleteSubresourceActionWithOptions(resource, subresource, name, metav1.DeleteOptions{})\n}\n\nfunc NewRootDeleteSubresourceActionWithOptions(resource schema.GroupVersionResource, subresource string, name string, opts metav1.DeleteOptions) DeleteActionImpl {\n\taction := DeleteActionImpl{}\n\taction.Verb = \"delete\"\n\taction.Resource = resource\n\taction.Subresource = subresource\n\taction.Name = name\n\taction.DeleteOptions = opts\n\n\treturn action\n}\n\nfunc NewDeleteAction(resource schema.GroupVersionResource, namespace, name string) DeleteActionImpl {\n\treturn NewDeleteActionWithOptions(resource, namespace, name, metav1.DeleteOptions{})\n}\n\nfunc NewDeleteActionWithOptions(resource schema.GroupVersionResource, namespace, name string, opts metav1.DeleteOptions) DeleteActionImpl {\n\taction := DeleteActionImpl{}\n\taction.Verb = \"delete\"\n\taction.Resource = resource\n\taction.Namespace = namespace\n\taction.Name = name\n\taction.DeleteOptions = opts\n\n\treturn action\n}\n\nfunc NewDeleteSubresourceAction(resource schema.GroupVersionResource, subresource, namespace, name string) DeleteActionImpl {\n\treturn NewDeleteSubresourceActionWithOptions(resource, subresource, namespace, name, metav1.DeleteOptions{})\n}\n\nfunc NewDeleteSubresourceActionWithOptions(resource schema.GroupVersionResource, subresource, namespace, name string, opts metav1.DeleteOptions) DeleteActionImpl {\n\taction := DeleteActionImpl{}\n\taction.Verb = \"delete\"\n\taction.Resource = resource\n\taction.Subresource = subresource\n\taction.Namespace = namespace\n\taction.Name = name\n\taction.DeleteOptions = opts\n\n\treturn action\n}\n\nfunc NewRootDeleteCollectionAction(resource schema.GroupVersionResource, opts interface{}) DeleteCollectionActionImpl {\n\tlistOpts, _ := opts.(metav1.ListOptions)\n\treturn NewRootDeleteCollectionActionWithOptions(resource, metav1.DeleteOptions{}, listOpts)\n}\n\nfunc NewRootDeleteCollectionActionWithOptions(resource schema.GroupVersionResource, deleteOpts metav1.DeleteOptions, listOpts metav1.ListOptions) DeleteCollectionActionImpl {\n\taction := DeleteCollectionActionImpl{}\n\taction.Verb = \"delete-collection\"\n\taction.Resource = resource\n\taction.DeleteOptions = deleteOpts\n\taction.ListOptions = listOpts\n\n\tlabelSelector, fieldSelector, _ := ExtractFromListOptions(listOpts)\n\taction.ListRestrictions = ListRestrictions{labelSelector, fieldSelector}\n\n\treturn action\n}\n\nfunc NewDeleteCollectionAction(resource schema.GroupVersionResource, namespace string, opts interface{}) DeleteCollectionActionImpl {\n\tlistOpts, _ := opts.(metav1.ListOptions)\n\treturn NewDeleteCollectionActionWithOptions(resource, namespace, metav1.DeleteOptions{}, listOpts)\n}\n\nfunc NewDeleteCollectionActionWithOptions(resource schema.GroupVersionResource, namespace string, deleteOpts metav1.DeleteOptions, listOpts metav1.ListOptions) DeleteCollectionActionImpl {\n\taction := DeleteCollectionActionImpl{}\n\taction.Verb = \"delete-collection\"\n\taction.Resource = resource\n\taction.Namespace = namespace\n\taction.DeleteOptions = deleteOpts\n\taction.ListOptions = listOpts\n\n\tlabelSelector, fieldSelector, _ := ExtractFromListOptions(listOpts)\n\taction.ListRestrictions = ListRestrictions{labelSelector, fieldSelector}\n\n\treturn action\n}\n\nfunc NewRootWatchAction(resource schema.GroupVersionResource, opts interface{}) WatchActionImpl {\n\tlistOpts, _ := opts.(metav1.ListOptions)\n\treturn NewRootWatchActionWithOptions(resource, listOpts)\n}\n\nfunc NewRootWatchActionWithOptions(resource schema.GroupVersionResource, opts metav1.ListOptions) WatchActionImpl {\n\taction := WatchActionImpl{}\n\taction.Verb = \"watch\"\n\taction.Resource = resource\n\taction.ListOptions = opts\n\n\tlabelSelector, fieldSelector, resourceVersion := ExtractFromListOptions(opts)\n\taction.WatchRestrictions = WatchRestrictions{labelSelector, fieldSelector, resourceVersion}\n\n\treturn action\n}\n\nfunc ExtractFromListOptions(opts interface{}) (labelSelector labels.Selector, fieldSelector fields.Selector, resourceVersion string) {\n\tvar err error\n\tswitch t := opts.(type) {\n\tcase metav1.ListOptions:\n\t\tlabelSelector, err = labels.Parse(t.LabelSelector)\n\t\tif err != nil {\n\t\t\tpanic(fmt.Errorf(\"invalid selector %q: %v\", t.LabelSelector, err))\n\t\t}\n\t\tfieldSelector, err = fields.ParseSelector(t.FieldSelector)\n\t\tif err != nil {\n\t\t\tpanic(fmt.Errorf(\"invalid selector %q: %v\", t.FieldSelector, err))\n\t\t}\n\t\tresourceVersion = t.ResourceVersion\n\tdefault:\n\t\tpanic(fmt.Errorf(\"expect a ListOptions %T\", opts))\n\t}\n\tif labelSelector == nil {\n\t\tlabelSelector = labels.Everything()\n\t}\n\tif fieldSelector == nil {\n\t\tfieldSelector = fields.Everything()\n\t}\n\treturn labelSelector, fieldSelector, resourceVersion\n}\n\nfunc NewWatchAction(resource schema.GroupVersionResource, namespace string, opts interface{}) WatchActionImpl {\n\tlistOpts, _ := opts.(metav1.ListOptions)\n\treturn NewWatchActionWithOptions(resource, namespace, listOpts)\n}\n\nfunc NewWatchActionWithOptions(resource schema.GroupVersionResource, namespace string, opts metav1.ListOptions) WatchActionImpl {\n\taction := WatchActionImpl{}\n\taction.Verb = \"watch\"\n\taction.Resource = resource\n\taction.Namespace = namespace\n\taction.ListOptions = opts\n\n\tlabelSelector, fieldSelector, resourceVersion := ExtractFromListOptions(opts)\n\taction.WatchRestrictions = WatchRestrictions{labelSelector, fieldSelector, resourceVersion}\n\n\treturn action\n}\n\nfunc NewProxyGetAction(resource schema.GroupVersionResource, namespace, scheme, name, port, path string, params map[string]string) ProxyGetActionImpl {\n\taction := ProxyGetActionImpl{}\n\taction.Verb = \"get\"\n\taction.Resource = resource\n\taction.Namespace = namespace\n\taction.Scheme = scheme\n\taction.Name = name\n\taction.Port = port\n\taction.Path = path\n\taction.Params = params\n\treturn action\n}\n\ntype ListRestrictions struct {\n\tLabels labels.Selector\n\tFields fields.Selector\n}\ntype WatchRestrictions struct {\n\tLabels          labels.Selector\n\tFields          fields.Selector\n\tResourceVersion string\n}\n\ntype Action interface {\n\tGetNamespace() string\n\tGetVerb() string\n\tGetResource() schema.GroupVersionResource\n\tGetSubresource() string\n\tMatches(verb, resource string) bool\n\n\t// DeepCopy is used to copy an action to avoid any risk of accidental mutation.  Most people never need to call this\n\t// because the invocation logic deep copies before calls to storage and reactors.\n\tDeepCopy() Action\n}\n\ntype GenericAction interface {\n\tAction\n\tGetValue() interface{}\n}\n\ntype GetAction interface {\n\tAction\n\tGetName() string\n}\n\ntype ListAction interface {\n\tAction\n\tGetListRestrictions() ListRestrictions\n}\n\ntype CreateAction interface {\n\tAction\n\tGetObject() runtime.Object\n}\n\ntype UpdateAction interface {\n\tAction\n\tGetObject() runtime.Object\n}\n\ntype DeleteAction interface {\n\tAction\n\tGetName() string\n\tGetDeleteOptions() metav1.DeleteOptions\n}\n\ntype DeleteCollectionAction interface {\n\tAction\n\tGetListRestrictions() ListRestrictions\n}\n\ntype PatchAction interface {\n\tAction\n\tGetName() string\n\tGetPatchType() types.PatchType\n\tGetPatch() []byte\n}\n\ntype WatchAction interface {\n\tAction\n\tGetWatchRestrictions() WatchRestrictions\n}\n\ntype ProxyGetAction interface {\n\tAction\n\tGetScheme() string\n\tGetName() string\n\tGetPort() string\n\tGetPath() string\n\tGetParams() map[string]string\n}\n\ntype ActionImpl struct {\n\tNamespace   string\n\tVerb        string\n\tResource    schema.GroupVersionResource\n\tSubresource string\n}\n\nfunc (a ActionImpl) GetNamespace() string {\n\treturn a.Namespace\n}\nfunc (a ActionImpl) GetVerb() string {\n\treturn a.Verb\n}\nfunc (a ActionImpl) GetResource() schema.GroupVersionResource {\n\treturn a.Resource\n}\nfunc (a ActionImpl) GetSubresource() string {\n\treturn a.Subresource\n}\nfunc (a ActionImpl) Matches(verb, resource string) bool {\n\t// Stay backwards compatible.\n\tif !strings.Contains(resource, \"/\") {\n\t\treturn strings.EqualFold(verb, a.Verb) &&\n\t\t\tstrings.EqualFold(resource, a.Resource.Resource)\n\t}\n\n\tparts := strings.SplitN(resource, \"/\", 2)\n\ttopresource, subresource := parts[0], parts[1]\n\n\treturn strings.EqualFold(verb, a.Verb) &&\n\t\tstrings.EqualFold(topresource, a.Resource.Resource) &&\n\t\tstrings.EqualFold(subresource, a.Subresource)\n}\nfunc (a ActionImpl) DeepCopy() Action {\n\tret := a\n\treturn ret\n}\n\ntype GenericActionImpl struct {\n\tActionImpl\n\tValue interface{}\n}\n\nfunc (a GenericActionImpl) GetValue() interface{} {\n\treturn a.Value\n}\n\nfunc (a GenericActionImpl) DeepCopy() Action {\n\treturn GenericActionImpl{\n\t\tActionImpl: a.ActionImpl.DeepCopy().(ActionImpl),\n\t\t// TODO this is wrong, but no worse than before\n\t\tValue: a.Value,\n\t}\n}\n\ntype GetActionImpl struct {\n\tActionImpl\n\tName       string\n\tGetOptions metav1.GetOptions\n}\n\nfunc (a GetActionImpl) GetName() string {\n\treturn a.Name\n}\n\nfunc (a GetActionImpl) GetGetOptions() metav1.GetOptions {\n\treturn a.GetOptions\n}\n\nfunc (a GetActionImpl) DeepCopy() Action {\n\treturn GetActionImpl{\n\t\tActionImpl: a.ActionImpl.DeepCopy().(ActionImpl),\n\t\tName:       a.Name,\n\t\tGetOptions: *a.GetOptions.DeepCopy(),\n\t}\n}\n\ntype ListActionImpl struct {\n\tActionImpl\n\tKind             schema.GroupVersionKind\n\tName             string\n\tListRestrictions ListRestrictions\n\tListOptions      metav1.ListOptions\n}\n\nfunc (a ListActionImpl) GetKind() schema.GroupVersionKind {\n\treturn a.Kind\n}\n\nfunc (a ListActionImpl) GetListRestrictions() ListRestrictions {\n\treturn a.ListRestrictions\n}\n\nfunc (a ListActionImpl) GetListOptions() metav1.ListOptions {\n\treturn a.ListOptions\n}\n\nfunc (a ListActionImpl) DeepCopy() Action {\n\treturn ListActionImpl{\n\t\tActionImpl: a.ActionImpl.DeepCopy().(ActionImpl),\n\t\tKind:       a.Kind,\n\t\tName:       a.Name,\n\t\tListRestrictions: ListRestrictions{\n\t\t\tLabels: a.ListRestrictions.Labels.DeepCopySelector(),\n\t\t\tFields: a.ListRestrictions.Fields.DeepCopySelector(),\n\t\t},\n\t\tListOptions: *a.ListOptions.DeepCopy(),\n\t}\n}\n\ntype CreateActionImpl struct {\n\tActionImpl\n\tName          string\n\tObject        runtime.Object\n\tCreateOptions metav1.CreateOptions\n}\n\nfunc (a CreateActionImpl) GetObject() runtime.Object {\n\treturn a.Object\n}\n\nfunc (a CreateActionImpl) GetCreateOptions() metav1.CreateOptions {\n\treturn a.CreateOptions\n}\n\nfunc (a CreateActionImpl) DeepCopy() Action {\n\treturn CreateActionImpl{\n\t\tActionImpl:    a.ActionImpl.DeepCopy().(ActionImpl),\n\t\tName:          a.Name,\n\t\tObject:        a.Object.DeepCopyObject(),\n\t\tCreateOptions: *a.CreateOptions.DeepCopy(),\n\t}\n}\n\ntype UpdateActionImpl struct {\n\tActionImpl\n\tObject        runtime.Object\n\tUpdateOptions metav1.UpdateOptions\n}\n\nfunc (a UpdateActionImpl) GetObject() runtime.Object {\n\treturn a.Object\n}\n\nfunc (a UpdateActionImpl) GetUpdateOptions() metav1.UpdateOptions {\n\treturn a.UpdateOptions\n}\n\nfunc (a UpdateActionImpl) DeepCopy() Action {\n\treturn UpdateActionImpl{\n\t\tActionImpl:    a.ActionImpl.DeepCopy().(ActionImpl),\n\t\tObject:        a.Object.DeepCopyObject(),\n\t\tUpdateOptions: *a.UpdateOptions.DeepCopy(),\n\t}\n}\n\ntype PatchActionImpl struct {\n\tActionImpl\n\tName         string\n\tPatchType    types.PatchType\n\tPatch        []byte\n\tPatchOptions metav1.PatchOptions\n}\n\nfunc (a PatchActionImpl) GetName() string {\n\treturn a.Name\n}\n\nfunc (a PatchActionImpl) GetPatch() []byte {\n\treturn a.Patch\n}\n\nfunc (a PatchActionImpl) GetPatchType() types.PatchType {\n\treturn a.PatchType\n}\n\nfunc (a PatchActionImpl) GetPatchOptions() metav1.PatchOptions {\n\treturn a.PatchOptions\n}\n\nfunc (a PatchActionImpl) DeepCopy() Action {\n\tpatch := make([]byte, len(a.Patch))\n\tcopy(patch, a.Patch)\n\treturn PatchActionImpl{\n\t\tActionImpl:   a.ActionImpl.DeepCopy().(ActionImpl),\n\t\tName:         a.Name,\n\t\tPatchType:    a.PatchType,\n\t\tPatch:        patch,\n\t\tPatchOptions: *a.PatchOptions.DeepCopy(),\n\t}\n}\n\ntype DeleteActionImpl struct {\n\tActionImpl\n\tName          string\n\tDeleteOptions metav1.DeleteOptions\n}\n\nfunc (a DeleteActionImpl) GetName() string {\n\treturn a.Name\n}\n\nfunc (a DeleteActionImpl) GetDeleteOptions() metav1.DeleteOptions {\n\treturn a.DeleteOptions\n}\n\nfunc (a DeleteActionImpl) DeepCopy() Action {\n\treturn DeleteActionImpl{\n\t\tActionImpl:    a.ActionImpl.DeepCopy().(ActionImpl),\n\t\tName:          a.Name,\n\t\tDeleteOptions: *a.DeleteOptions.DeepCopy(),\n\t}\n}\n\ntype DeleteCollectionActionImpl struct {\n\tActionImpl\n\tListRestrictions ListRestrictions\n\tDeleteOptions    metav1.DeleteOptions\n\tListOptions      metav1.ListOptions\n}\n\nfunc (a DeleteCollectionActionImpl) GetListRestrictions() ListRestrictions {\n\treturn a.ListRestrictions\n}\n\nfunc (a DeleteCollectionActionImpl) GetDeleteOptions() metav1.DeleteOptions {\n\treturn a.DeleteOptions\n}\n\nfunc (a DeleteCollectionActionImpl) GetListOptions() metav1.ListOptions {\n\treturn a.ListOptions\n}\n\nfunc (a DeleteCollectionActionImpl) DeepCopy() Action {\n\treturn DeleteCollectionActionImpl{\n\t\tActionImpl: a.ActionImpl.DeepCopy().(ActionImpl),\n\t\tListRestrictions: ListRestrictions{\n\t\t\tLabels: a.ListRestrictions.Labels.DeepCopySelector(),\n\t\t\tFields: a.ListRestrictions.Fields.DeepCopySelector(),\n\t\t},\n\t\tDeleteOptions: *a.DeleteOptions.DeepCopy(),\n\t\tListOptions:   *a.ListOptions.DeepCopy(),\n\t}\n}\n\ntype WatchActionImpl struct {\n\tActionImpl\n\tWatchRestrictions WatchRestrictions\n\tListOptions       metav1.ListOptions\n}\n\nfunc (a WatchActionImpl) GetWatchRestrictions() WatchRestrictions {\n\treturn a.WatchRestrictions\n}\n\nfunc (a WatchActionImpl) GetListOptions() metav1.ListOptions {\n\treturn a.ListOptions\n}\n\nfunc (a WatchActionImpl) DeepCopy() Action {\n\treturn WatchActionImpl{\n\t\tActionImpl: a.ActionImpl.DeepCopy().(ActionImpl),\n\t\tWatchRestrictions: WatchRestrictions{\n\t\t\tLabels:          a.WatchRestrictions.Labels.DeepCopySelector(),\n\t\t\tFields:          a.WatchRestrictions.Fields.DeepCopySelector(),\n\t\t\tResourceVersion: a.WatchRestrictions.ResourceVersion,\n\t\t},\n\t\tListOptions: *a.ListOptions.DeepCopy(),\n\t}\n}\n\ntype ProxyGetActionImpl struct {\n\tActionImpl\n\tScheme string\n\tName   string\n\tPort   string\n\tPath   string\n\tParams map[string]string\n}\n\nfunc (a ProxyGetActionImpl) GetScheme() string {\n\treturn a.Scheme\n}\n\nfunc (a ProxyGetActionImpl) GetName() string {\n\treturn a.Name\n}\n\nfunc (a ProxyGetActionImpl) GetPort() string {\n\treturn a.Port\n}\n\nfunc (a ProxyGetActionImpl) GetPath() string {\n\treturn a.Path\n}\n\nfunc (a ProxyGetActionImpl) GetParams() map[string]string {\n\treturn a.Params\n}\n\nfunc (a ProxyGetActionImpl) DeepCopy() Action {\n\tparams := map[string]string{}\n\tfor k, v := range a.Params {\n\t\tparams[k] = v\n\t}\n\treturn ProxyGetActionImpl{\n\t\tActionImpl: a.ActionImpl.DeepCopy().(ActionImpl),\n\t\tScheme:     a.Scheme,\n\t\tName:       a.Name,\n\t\tPort:       a.Port,\n\t\tPath:       a.Path,\n\t\tParams:     params,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/testing/fake.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage testing\n\nimport (\n\t\"fmt\"\n\t\"sync\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/watch\"\n\trestclient \"k8s.io/client-go/rest\"\n)\n\n// Fake implements client.Interface. Meant to be embedded into a struct to get\n// a default implementation. This makes faking out just the method you want to\n// test easier.\ntype Fake struct {\n\tsync.RWMutex\n\tactions []Action // these may be castable to other types, but \"Action\" is the minimum\n\n\t// ReactionChain is the list of reactors that will be attempted for every\n\t// request in the order they are tried.\n\tReactionChain []Reactor\n\t// WatchReactionChain is the list of watch reactors that will be attempted\n\t// for every request in the order they are tried.\n\tWatchReactionChain []WatchReactor\n\t// ProxyReactionChain is the list of proxy reactors that will be attempted\n\t// for every request in the order they are tried.\n\tProxyReactionChain []ProxyReactor\n\n\tResources []*metav1.APIResourceList\n}\n\n// Reactor is an interface to allow the composition of reaction functions.\ntype Reactor interface {\n\t// Handles indicates whether or not this Reactor deals with a given\n\t// action.\n\tHandles(action Action) bool\n\t// React handles the action and returns results.  It may choose to\n\t// delegate by indicated handled=false.\n\tReact(action Action) (handled bool, ret runtime.Object, err error)\n}\n\n// WatchReactor is an interface to allow the composition of watch functions.\ntype WatchReactor interface {\n\t// Handles indicates whether or not this Reactor deals with a given\n\t// action.\n\tHandles(action Action) bool\n\t// React handles a watch action and returns results.  It may choose to\n\t// delegate by indicating handled=false.\n\tReact(action Action) (handled bool, ret watch.Interface, err error)\n}\n\n// ProxyReactor is an interface to allow the composition of proxy get\n// functions.\ntype ProxyReactor interface {\n\t// Handles indicates whether or not this Reactor deals with a given\n\t// action.\n\tHandles(action Action) bool\n\t// React handles a watch action and returns results.  It may choose to\n\t// delegate by indicating handled=false.\n\tReact(action Action) (handled bool, ret restclient.ResponseWrapper, err error)\n}\n\n// ReactionFunc is a function that returns an object or error for a given\n// Action.  If \"handled\" is false, then the test client will ignore the\n// results and continue to the next ReactionFunc.  A ReactionFunc can describe\n// reactions on subresources by testing the result of the action's\n// GetSubresource() method.\ntype ReactionFunc func(action Action) (handled bool, ret runtime.Object, err error)\n\n// WatchReactionFunc is a function that returns a watch interface.  If\n// \"handled\" is false, then the test client will ignore the results and\n// continue to the next ReactionFunc.\ntype WatchReactionFunc func(action Action) (handled bool, ret watch.Interface, err error)\n\n// ProxyReactionFunc is a function that returns a ResponseWrapper interface\n// for a given Action.  If \"handled\" is false, then the test client will\n// ignore the results and continue to the next ProxyReactionFunc.\ntype ProxyReactionFunc func(action Action) (handled bool, ret restclient.ResponseWrapper, err error)\n\n// AddReactor appends a reactor to the end of the chain.\nfunc (c *Fake) AddReactor(verb, resource string, reaction ReactionFunc) {\n\tc.ReactionChain = append(c.ReactionChain, &SimpleReactor{verb, resource, reaction})\n}\n\n// PrependReactor adds a reactor to the beginning of the chain.\nfunc (c *Fake) PrependReactor(verb, resource string, reaction ReactionFunc) {\n\tc.ReactionChain = append([]Reactor{&SimpleReactor{verb, resource, reaction}}, c.ReactionChain...)\n}\n\n// AddWatchReactor appends a reactor to the end of the chain.\nfunc (c *Fake) AddWatchReactor(resource string, reaction WatchReactionFunc) {\n\tc.Lock()\n\tdefer c.Unlock()\n\tc.WatchReactionChain = append(c.WatchReactionChain, &SimpleWatchReactor{resource, reaction})\n}\n\n// PrependWatchReactor adds a reactor to the beginning of the chain.\nfunc (c *Fake) PrependWatchReactor(resource string, reaction WatchReactionFunc) {\n\tc.Lock()\n\tdefer c.Unlock()\n\tc.WatchReactionChain = append([]WatchReactor{&SimpleWatchReactor{resource, reaction}}, c.WatchReactionChain...)\n}\n\n// AddProxyReactor appends a reactor to the end of the chain.\nfunc (c *Fake) AddProxyReactor(resource string, reaction ProxyReactionFunc) {\n\tc.ProxyReactionChain = append(c.ProxyReactionChain, &SimpleProxyReactor{resource, reaction})\n}\n\n// PrependProxyReactor adds a reactor to the beginning of the chain.\nfunc (c *Fake) PrependProxyReactor(resource string, reaction ProxyReactionFunc) {\n\tc.ProxyReactionChain = append([]ProxyReactor{&SimpleProxyReactor{resource, reaction}}, c.ProxyReactionChain...)\n}\n\n// Invokes records the provided Action and then invokes the ReactionFunc that\n// handles the action if one exists. defaultReturnObj is expected to be of the\n// same type a normal call would return.\nfunc (c *Fake) Invokes(action Action, defaultReturnObj runtime.Object) (runtime.Object, error) {\n\tc.Lock()\n\tdefer c.Unlock()\n\n\tactionCopy := action.DeepCopy()\n\tc.actions = append(c.actions, action.DeepCopy())\n\tfor _, reactor := range c.ReactionChain {\n\t\tif !reactor.Handles(actionCopy) {\n\t\t\tcontinue\n\t\t}\n\n\t\thandled, ret, err := reactor.React(actionCopy)\n\t\tif !handled {\n\t\t\tcontinue\n\t\t}\n\n\t\treturn ret, err\n\t}\n\n\treturn defaultReturnObj, nil\n}\n\n// InvokesWatch records the provided Action and then invokes the ReactionFunc\n// that handles the action if one exists.\nfunc (c *Fake) InvokesWatch(action Action) (watch.Interface, error) {\n\tc.Lock()\n\tdefer c.Unlock()\n\n\tactionCopy := action.DeepCopy()\n\tc.actions = append(c.actions, action.DeepCopy())\n\tfor _, reactor := range c.WatchReactionChain {\n\t\tif !reactor.Handles(actionCopy) {\n\t\t\tcontinue\n\t\t}\n\n\t\thandled, ret, err := reactor.React(actionCopy)\n\t\tif !handled {\n\t\t\tcontinue\n\t\t}\n\n\t\treturn ret, err\n\t}\n\n\treturn nil, fmt.Errorf(\"unhandled watch: %#v\", action)\n}\n\n// InvokesProxy records the provided Action and then invokes the ReactionFunc\n// that handles the action if one exists.\nfunc (c *Fake) InvokesProxy(action Action) restclient.ResponseWrapper {\n\tc.Lock()\n\tdefer c.Unlock()\n\n\tactionCopy := action.DeepCopy()\n\tc.actions = append(c.actions, action.DeepCopy())\n\tfor _, reactor := range c.ProxyReactionChain {\n\t\tif !reactor.Handles(actionCopy) {\n\t\t\tcontinue\n\t\t}\n\n\t\thandled, ret, err := reactor.React(actionCopy)\n\t\tif !handled || err != nil {\n\t\t\tcontinue\n\t\t}\n\n\t\treturn ret\n\t}\n\n\treturn nil\n}\n\n// ClearActions clears the history of actions called on the fake client.\nfunc (c *Fake) ClearActions() {\n\tc.Lock()\n\tdefer c.Unlock()\n\n\tc.actions = make([]Action, 0)\n}\n\n// Actions returns a chronologically ordered slice fake actions called on the\n// fake client.\nfunc (c *Fake) Actions() []Action {\n\tc.RLock()\n\tdefer c.RUnlock()\n\tfa := make([]Action, len(c.actions))\n\tcopy(fa, c.actions)\n\treturn fa\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/testing/fixture.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage testing\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/typed\"\n\t\"sigs.k8s.io/yaml\"\n\t\"sort\"\n\t\"strings\"\n\t\"sync\"\n\n\tjsonpatch \"gopkg.in/evanphx/json-patch.v4\"\n\n\tapierrors \"k8s.io/apimachinery/pkg/api/errors\"\n\t\"k8s.io/apimachinery/pkg/api/meta\"\n\t\"k8s.io/apimachinery/pkg/api/meta/testrestmapper\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/types\"\n\t\"k8s.io/apimachinery/pkg/util/json\"\n\t\"k8s.io/apimachinery/pkg/util/managedfields\"\n\t\"k8s.io/apimachinery/pkg/util/strategicpatch\"\n\t\"k8s.io/apimachinery/pkg/watch\"\n\trestclient \"k8s.io/client-go/rest\"\n)\n\n// ObjectTracker keeps track of objects. It is intended to be used to\n// fake calls to a server by returning objects based on their kind,\n// namespace and name.\ntype ObjectTracker interface {\n\t// Add adds an object to the tracker. If object being added\n\t// is a list, its items are added separately.\n\tAdd(obj runtime.Object) error\n\n\t// Get retrieves the object by its kind, namespace and name.\n\tGet(gvr schema.GroupVersionResource, ns, name string, opts ...metav1.GetOptions) (runtime.Object, error)\n\n\t// Create adds an object to the tracker in the specified namespace.\n\tCreate(gvr schema.GroupVersionResource, obj runtime.Object, ns string, opts ...metav1.CreateOptions) error\n\n\t// Update updates an existing object in the tracker in the specified namespace.\n\tUpdate(gvr schema.GroupVersionResource, obj runtime.Object, ns string, opts ...metav1.UpdateOptions) error\n\n\t// Patch patches an existing object in the tracker in the specified namespace.\n\tPatch(gvr schema.GroupVersionResource, obj runtime.Object, ns string, opts ...metav1.PatchOptions) error\n\n\t// Apply applies an object in the tracker in the specified namespace.\n\tApply(gvr schema.GroupVersionResource, applyConfiguration runtime.Object, ns string, opts ...metav1.PatchOptions) error\n\n\t// List retrieves all objects of a given kind in the given\n\t// namespace. Only non-List kinds are accepted.\n\tList(gvr schema.GroupVersionResource, gvk schema.GroupVersionKind, ns string, opts ...metav1.ListOptions) (runtime.Object, error)\n\n\t// Delete deletes an existing object from the tracker. If object\n\t// didn't exist in the tracker prior to deletion, Delete returns\n\t// no error.\n\tDelete(gvr schema.GroupVersionResource, ns, name string, opts ...metav1.DeleteOptions) error\n\n\t// Watch watches objects from the tracker. Watch returns a channel\n\t// which will push added / modified / deleted object.\n\tWatch(gvr schema.GroupVersionResource, ns string, opts ...metav1.ListOptions) (watch.Interface, error)\n}\n\n// ObjectScheme abstracts the implementation of common operations on objects.\ntype ObjectScheme interface {\n\truntime.ObjectCreater\n\truntime.ObjectTyper\n}\n\n// ObjectReaction returns a ReactionFunc that applies core.Action to\n// the given tracker.\n//\n// If tracker also implements ManagedFieldObjectTracker, then managed fields\n// will be handled by the tracker and apply patch actions will be evaluated\n// using the field manager and will take field ownership into consideration.\n// Without a ManagedFieldObjectTracker, apply patch actions do not consider\n// field ownership.\n//\n// WARNING: There is no server side defaulting, validation, or conversion handled\n// by the fake client and subresources are not handled accurately (fields in the\n// root resource are not automatically updated when a scale resource is updated, for example).\nfunc ObjectReaction(tracker ObjectTracker) ReactionFunc {\n\treactor := objectTrackerReact{tracker: tracker}\n\treturn func(action Action) (bool, runtime.Object, error) {\n\t\t// Here and below we need to switch on implementation types,\n\t\t// not on interfaces, as some interfaces are identical\n\t\t// (e.g. UpdateAction and CreateAction), so if we use them,\n\t\t// updates and creates end up matching the same case branch.\n\t\tswitch action := action.(type) {\n\t\tcase ListActionImpl:\n\t\t\tobj, err := reactor.List(action)\n\t\t\treturn true, obj, err\n\t\tcase GetActionImpl:\n\t\t\tobj, err := reactor.Get(action)\n\t\t\treturn true, obj, err\n\t\tcase CreateActionImpl:\n\t\t\tobj, err := reactor.Create(action)\n\t\t\treturn true, obj, err\n\t\tcase UpdateActionImpl:\n\t\t\tobj, err := reactor.Update(action)\n\t\t\treturn true, obj, err\n\t\tcase DeleteActionImpl:\n\t\t\tobj, err := reactor.Delete(action)\n\t\t\treturn true, obj, err\n\t\tcase PatchActionImpl:\n\t\t\tif action.GetPatchType() == types.ApplyPatchType {\n\t\t\t\tobj, err := reactor.Apply(action)\n\t\t\t\treturn true, obj, err\n\t\t\t}\n\t\t\tobj, err := reactor.Patch(action)\n\t\t\treturn true, obj, err\n\t\tdefault:\n\t\t\treturn false, nil, fmt.Errorf(\"no reaction implemented for %s\", action)\n\t\t}\n\t}\n}\n\ntype objectTrackerReact struct {\n\ttracker ObjectTracker\n}\n\nfunc (o objectTrackerReact) List(action ListActionImpl) (runtime.Object, error) {\n\treturn o.tracker.List(action.GetResource(), action.GetKind(), action.GetNamespace(), action.ListOptions)\n}\n\nfunc (o objectTrackerReact) Get(action GetActionImpl) (runtime.Object, error) {\n\treturn o.tracker.Get(action.GetResource(), action.GetNamespace(), action.GetName(), action.GetOptions)\n}\n\nfunc (o objectTrackerReact) Create(action CreateActionImpl) (runtime.Object, error) {\n\tns := action.GetNamespace()\n\tgvr := action.GetResource()\n\tobjMeta, err := meta.Accessor(action.GetObject())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif action.GetSubresource() == \"\" {\n\t\terr = o.tracker.Create(gvr, action.GetObject(), ns, action.CreateOptions)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t} else {\n\t\toldObj, getOldObjErr := o.tracker.Get(gvr, ns, objMeta.GetName(), metav1.GetOptions{})\n\t\tif getOldObjErr != nil {\n\t\t\treturn nil, getOldObjErr\n\t\t}\n\t\t// Check whether the existing historical object type is the same as the current operation object type that needs to be updated, and if it is the same, perform the update operation.\n\t\tif reflect.TypeOf(oldObj) == reflect.TypeOf(action.GetObject()) {\n\t\t\t// TODO: Currently we're handling subresource creation as an update\n\t\t\t// on the enclosing resource. This works for some subresources but\n\t\t\t// might not be generic enough.\n\t\t\terr = o.tracker.Update(gvr, action.GetObject(), ns, metav1.UpdateOptions{\n\t\t\t\tDryRun:          action.CreateOptions.DryRun,\n\t\t\t\tFieldManager:    action.CreateOptions.FieldManager,\n\t\t\t\tFieldValidation: action.CreateOptions.FieldValidation,\n\t\t\t})\n\t\t} else {\n\t\t\t// If the historical object type is different from the current object type, need to make sure we return the object submitted,don't persist the submitted object in the tracker.\n\t\t\treturn action.GetObject(), nil\n\t\t}\n\t}\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tobj, err := o.tracker.Get(gvr, ns, objMeta.GetName(), metav1.GetOptions{})\n\treturn obj, err\n}\n\nfunc (o objectTrackerReact) Update(action UpdateActionImpl) (runtime.Object, error) {\n\tns := action.GetNamespace()\n\tgvr := action.GetResource()\n\tobjMeta, err := meta.Accessor(action.GetObject())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\terr = o.tracker.Update(gvr, action.GetObject(), ns, action.UpdateOptions)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tobj, err := o.tracker.Get(gvr, ns, objMeta.GetName(), metav1.GetOptions{})\n\treturn obj, err\n}\n\nfunc (o objectTrackerReact) Delete(action DeleteActionImpl) (runtime.Object, error) {\n\terr := o.tracker.Delete(action.GetResource(), action.GetNamespace(), action.GetName(), action.DeleteOptions)\n\treturn nil, err\n}\n\nfunc (o objectTrackerReact) Apply(action PatchActionImpl) (runtime.Object, error) {\n\tns := action.GetNamespace()\n\tgvr := action.GetResource()\n\n\tpatchObj := &unstructured.Unstructured{Object: map[string]interface{}{}}\n\tif err := yaml.Unmarshal(action.GetPatch(), &patchObj.Object); err != nil {\n\t\treturn nil, err\n\t}\n\tpatchObj.SetName(action.GetName())\n\terr := o.tracker.Apply(gvr, patchObj, ns, action.PatchOptions)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tobj, err := o.tracker.Get(gvr, ns, action.GetName(), metav1.GetOptions{})\n\treturn obj, err\n}\n\nfunc (o objectTrackerReact) Patch(action PatchActionImpl) (runtime.Object, error) {\n\tns := action.GetNamespace()\n\tgvr := action.GetResource()\n\n\tobj, err := o.tracker.Get(gvr, ns, action.GetName(), metav1.GetOptions{})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\told, err := json.Marshal(obj)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// reset the object in preparation to unmarshal, since unmarshal does not guarantee that fields\n\t// in obj that are removed by patch are cleared\n\tvalue := reflect.ValueOf(obj)\n\tvalue.Elem().Set(reflect.New(value.Type().Elem()).Elem())\n\n\tswitch action.GetPatchType() {\n\tcase types.JSONPatchType:\n\t\tpatch, err := jsonpatch.DecodePatch(action.GetPatch())\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tmodified, err := patch.Apply(old)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif err = json.Unmarshal(modified, obj); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\tcase types.MergePatchType:\n\t\tmodified, err := jsonpatch.MergePatch(old, action.GetPatch())\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif err := json.Unmarshal(modified, obj); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\tcase types.StrategicMergePatchType:\n\t\tmergedByte, err := strategicpatch.StrategicMergePatch(old, action.GetPatch(), obj)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif err = json.Unmarshal(mergedByte, obj); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"PatchType %s is not supported\", action.GetPatchType())\n\t}\n\n\tif err = o.tracker.Patch(gvr, obj, ns, action.PatchOptions); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn obj, nil\n}\n\ntype tracker struct {\n\tscheme  ObjectScheme\n\tdecoder runtime.Decoder\n\tlock    sync.RWMutex\n\tobjects map[schema.GroupVersionResource]map[types.NamespacedName]runtime.Object\n\t// The value type of watchers is a map of which the key is either a namespace or\n\t// all/non namespace aka \"\" and its value is list of fake watchers.\n\t// Manipulations on resources will broadcast the notification events into the\n\t// watchers' channel. Note that too many unhandled events (currently 100,\n\t// see apimachinery/pkg/watch.DefaultChanSize) will cause a panic.\n\twatchers map[schema.GroupVersionResource]map[string][]*watch.RaceFreeFakeWatcher\n}\n\nvar _ ObjectTracker = &tracker{}\n\n// NewObjectTracker returns an ObjectTracker that can be used to keep track\n// of objects for the fake clientset. Mostly useful for unit tests.\nfunc NewObjectTracker(scheme ObjectScheme, decoder runtime.Decoder) ObjectTracker {\n\treturn &tracker{\n\t\tscheme:   scheme,\n\t\tdecoder:  decoder,\n\t\tobjects:  make(map[schema.GroupVersionResource]map[types.NamespacedName]runtime.Object),\n\t\twatchers: make(map[schema.GroupVersionResource]map[string][]*watch.RaceFreeFakeWatcher),\n\t}\n}\n\nfunc (t *tracker) List(gvr schema.GroupVersionResource, gvk schema.GroupVersionKind, ns string, opts ...metav1.ListOptions) (runtime.Object, error) {\n\t_, err := assertOptionalSingleArgument(opts)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\t// Heuristic for list kind: original kind + List suffix. Might\n\t// not always be true but this tracker has a pretty limited\n\t// understanding of the actual API model.\n\tlistGVK := gvk\n\tlistGVK.Kind = listGVK.Kind + \"List\"\n\t// GVK does have the concept of \"internal version\". The scheme recognizes\n\t// the runtime.APIVersionInternal, but not the empty string.\n\tif listGVK.Version == \"\" {\n\t\tlistGVK.Version = runtime.APIVersionInternal\n\t}\n\n\tlist, err := t.scheme.New(listGVK)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif !meta.IsListType(list) {\n\t\treturn nil, fmt.Errorf(\"%q is not a list type\", listGVK.Kind)\n\t}\n\n\tt.lock.RLock()\n\tdefer t.lock.RUnlock()\n\n\tobjs, ok := t.objects[gvr]\n\tif !ok {\n\t\treturn list, nil\n\t}\n\n\tmatchingObjs, err := filterByNamespace(objs, ns)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif err := meta.SetList(list, matchingObjs); err != nil {\n\t\treturn nil, err\n\t}\n\treturn list.DeepCopyObject(), nil\n}\n\nfunc (t *tracker) Watch(gvr schema.GroupVersionResource, ns string, opts ...metav1.ListOptions) (watch.Interface, error) {\n\t_, err := assertOptionalSingleArgument(opts)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tt.lock.Lock()\n\tdefer t.lock.Unlock()\n\n\tfakewatcher := watch.NewRaceFreeFake()\n\n\tif _, exists := t.watchers[gvr]; !exists {\n\t\tt.watchers[gvr] = make(map[string][]*watch.RaceFreeFakeWatcher)\n\t}\n\tt.watchers[gvr][ns] = append(t.watchers[gvr][ns], fakewatcher)\n\treturn fakewatcher, nil\n}\n\nfunc (t *tracker) Get(gvr schema.GroupVersionResource, ns, name string, opts ...metav1.GetOptions) (runtime.Object, error) {\n\t_, err := assertOptionalSingleArgument(opts)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\terrNotFound := apierrors.NewNotFound(gvr.GroupResource(), name)\n\n\tt.lock.RLock()\n\tdefer t.lock.RUnlock()\n\n\tobjs, ok := t.objects[gvr]\n\tif !ok {\n\t\treturn nil, errNotFound\n\t}\n\n\tmatchingObj, ok := objs[types.NamespacedName{Namespace: ns, Name: name}]\n\tif !ok {\n\t\treturn nil, errNotFound\n\t}\n\n\t// Only one object should match in the tracker if it works\n\t// correctly, as Add/Update methods enforce kind/namespace/name\n\t// uniqueness.\n\tobj := matchingObj.DeepCopyObject()\n\tif status, ok := obj.(*metav1.Status); ok {\n\t\tif status.Status != metav1.StatusSuccess {\n\t\t\treturn nil, &apierrors.StatusError{ErrStatus: *status}\n\t\t}\n\t}\n\n\treturn obj, nil\n}\n\nfunc (t *tracker) Add(obj runtime.Object) error {\n\tif meta.IsListType(obj) {\n\t\treturn t.addList(obj, false)\n\t}\n\tobjMeta, err := meta.Accessor(obj)\n\tif err != nil {\n\t\treturn err\n\t}\n\tgvks, _, err := t.scheme.ObjectKinds(obj)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif partial, ok := obj.(*metav1.PartialObjectMetadata); ok && len(partial.TypeMeta.APIVersion) > 0 {\n\t\tgvks = []schema.GroupVersionKind{partial.TypeMeta.GroupVersionKind()}\n\t}\n\n\tif len(gvks) == 0 {\n\t\treturn fmt.Errorf(\"no registered kinds for %v\", obj)\n\t}\n\tfor _, gvk := range gvks {\n\t\t// NOTE: UnsafeGuessKindToResource is a heuristic and default match. The\n\t\t// actual registration in apiserver can specify arbitrary route for a\n\t\t// gvk. If a test uses such objects, it cannot preset the tracker with\n\t\t// objects via Add(). Instead, it should trigger the Create() function\n\t\t// of the tracker, where an arbitrary gvr can be specified.\n\t\tgvr, _ := meta.UnsafeGuessKindToResource(gvk)\n\t\t// Resource doesn't have the concept of \"__internal\" version, just set it to \"\".\n\t\tif gvr.Version == runtime.APIVersionInternal {\n\t\t\tgvr.Version = \"\"\n\t\t}\n\n\t\terr := t.add(gvr, obj, objMeta.GetNamespace(), false)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (t *tracker) Create(gvr schema.GroupVersionResource, obj runtime.Object, ns string, opts ...metav1.CreateOptions) error {\n\t_, err := assertOptionalSingleArgument(opts)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn t.add(gvr, obj, ns, false)\n}\n\nfunc (t *tracker) Update(gvr schema.GroupVersionResource, obj runtime.Object, ns string, opts ...metav1.UpdateOptions) error {\n\t_, err := assertOptionalSingleArgument(opts)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn t.add(gvr, obj, ns, true)\n}\n\nfunc (t *tracker) Patch(gvr schema.GroupVersionResource, patchedObject runtime.Object, ns string, opts ...metav1.PatchOptions) error {\n\t_, err := assertOptionalSingleArgument(opts)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn t.add(gvr, patchedObject, ns, true)\n}\n\nfunc (t *tracker) Apply(gvr schema.GroupVersionResource, applyConfiguration runtime.Object, ns string, opts ...metav1.PatchOptions) error {\n\t_, err := assertOptionalSingleArgument(opts)\n\tif err != nil {\n\t\treturn err\n\t}\n\tapplyConfigurationMeta, err := meta.Accessor(applyConfiguration)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tobj, err := t.Get(gvr, ns, applyConfigurationMeta.GetName(), metav1.GetOptions{})\n\tif err != nil {\n\t\treturn err\n\t}\n\n\told, err := json.Marshal(obj)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// reset the object in preparation to unmarshal, since unmarshal does not guarantee that fields\n\t// in obj that are removed by patch are cleared\n\tvalue := reflect.ValueOf(obj)\n\tvalue.Elem().Set(reflect.New(value.Type().Elem()).Elem())\n\n\t// For backward compatibility with behavior 1.30 and earlier, continue to handle apply\n\t// via strategic merge patch (clients may use fake.NewClientset and ManagedFieldObjectTracker\n\t// for full field manager support).\n\tpatch, err := json.Marshal(applyConfiguration)\n\tif err != nil {\n\t\treturn err\n\t}\n\tmergedByte, err := strategicpatch.StrategicMergePatch(old, patch, obj)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif err = json.Unmarshal(mergedByte, obj); err != nil {\n\t\treturn err\n\t}\n\n\treturn t.add(gvr, obj, ns, true)\n}\n\nfunc (t *tracker) getWatches(gvr schema.GroupVersionResource, ns string) []*watch.RaceFreeFakeWatcher {\n\twatches := []*watch.RaceFreeFakeWatcher{}\n\tif t.watchers[gvr] != nil {\n\t\tif w := t.watchers[gvr][ns]; w != nil {\n\t\t\twatches = append(watches, w...)\n\t\t}\n\t\tif ns != metav1.NamespaceAll {\n\t\t\tif w := t.watchers[gvr][metav1.NamespaceAll]; w != nil {\n\t\t\t\twatches = append(watches, w...)\n\t\t\t}\n\t\t}\n\t}\n\treturn watches\n}\n\nfunc (t *tracker) add(gvr schema.GroupVersionResource, obj runtime.Object, ns string, replaceExisting bool) error {\n\tt.lock.Lock()\n\tdefer t.lock.Unlock()\n\n\tgr := gvr.GroupResource()\n\n\t// To avoid the object from being accidentally modified by caller\n\t// after it's been added to the tracker, we always store the deep\n\t// copy.\n\tobj = obj.DeepCopyObject()\n\n\tnewMeta, err := meta.Accessor(obj)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Propagate namespace to the new object if hasn't already been set.\n\tif len(newMeta.GetNamespace()) == 0 {\n\t\tnewMeta.SetNamespace(ns)\n\t}\n\n\tif ns != newMeta.GetNamespace() {\n\t\tmsg := fmt.Sprintf(\"request namespace does not match object namespace, request: %q object: %q\", ns, newMeta.GetNamespace())\n\t\treturn apierrors.NewBadRequest(msg)\n\t}\n\n\t_, ok := t.objects[gvr]\n\tif !ok {\n\t\tt.objects[gvr] = make(map[types.NamespacedName]runtime.Object)\n\t}\n\n\tnamespacedName := types.NamespacedName{Namespace: newMeta.GetNamespace(), Name: newMeta.GetName()}\n\tif _, ok = t.objects[gvr][namespacedName]; ok {\n\t\tif replaceExisting {\n\t\t\tfor _, w := range t.getWatches(gvr, ns) {\n\t\t\t\t// To avoid the object from being accidentally modified by watcher\n\t\t\t\tw.Modify(obj.DeepCopyObject())\n\t\t\t}\n\t\t\tt.objects[gvr][namespacedName] = obj\n\t\t\treturn nil\n\t\t}\n\t\treturn apierrors.NewAlreadyExists(gr, newMeta.GetName())\n\t}\n\n\tif replaceExisting {\n\t\t// Tried to update but no matching object was found.\n\t\treturn apierrors.NewNotFound(gr, newMeta.GetName())\n\t}\n\n\tt.objects[gvr][namespacedName] = obj\n\n\tfor _, w := range t.getWatches(gvr, ns) {\n\t\t// To avoid the object from being accidentally modified by watcher\n\t\tw.Add(obj.DeepCopyObject())\n\t}\n\n\treturn nil\n}\n\nfunc (t *tracker) addList(obj runtime.Object, replaceExisting bool) error {\n\tlist, err := meta.ExtractList(obj)\n\tif err != nil {\n\t\treturn err\n\t}\n\terrs := runtime.DecodeList(list, t.decoder)\n\tif len(errs) > 0 {\n\t\treturn errs[0]\n\t}\n\tfor _, obj := range list {\n\t\tif err := t.Add(obj); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (t *tracker) Delete(gvr schema.GroupVersionResource, ns, name string, opts ...metav1.DeleteOptions) error {\n\t_, err := assertOptionalSingleArgument(opts)\n\tif err != nil {\n\t\treturn err\n\t}\n\tt.lock.Lock()\n\tdefer t.lock.Unlock()\n\n\tobjs, ok := t.objects[gvr]\n\tif !ok {\n\t\treturn apierrors.NewNotFound(gvr.GroupResource(), name)\n\t}\n\n\tnamespacedName := types.NamespacedName{Namespace: ns, Name: name}\n\tobj, ok := objs[namespacedName]\n\tif !ok {\n\t\treturn apierrors.NewNotFound(gvr.GroupResource(), name)\n\t}\n\n\tdelete(objs, namespacedName)\n\tfor _, w := range t.getWatches(gvr, ns) {\n\t\tw.Delete(obj.DeepCopyObject())\n\t}\n\treturn nil\n}\n\ntype managedFieldObjectTracker struct {\n\tObjectTracker\n\tscheme          ObjectScheme\n\tobjectConverter runtime.ObjectConvertor\n\tmapper          meta.RESTMapper\n\ttypeConverter   managedfields.TypeConverter\n}\n\nvar _ ObjectTracker = &managedFieldObjectTracker{}\n\n// NewFieldManagedObjectTracker returns an ObjectTracker that can be used to keep track\n// of objects and managed fields for the fake clientset. Mostly useful for unit tests.\nfunc NewFieldManagedObjectTracker(scheme *runtime.Scheme, decoder runtime.Decoder, typeConverter managedfields.TypeConverter) ObjectTracker {\n\treturn &managedFieldObjectTracker{\n\t\tObjectTracker:   NewObjectTracker(scheme, decoder),\n\t\tscheme:          scheme,\n\t\tobjectConverter: scheme,\n\t\tmapper:          testrestmapper.TestOnlyStaticRESTMapper(scheme),\n\t\ttypeConverter:   typeConverter,\n\t}\n}\n\nfunc (t *managedFieldObjectTracker) Create(gvr schema.GroupVersionResource, obj runtime.Object, ns string, vopts ...metav1.CreateOptions) error {\n\topts, err := assertOptionalSingleArgument(vopts)\n\tif err != nil {\n\t\treturn err\n\t}\n\tgvk, err := t.mapper.KindFor(gvr)\n\tif err != nil {\n\t\treturn err\n\t}\n\tmgr, err := t.fieldManagerFor(gvk)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tobjType, err := meta.TypeAccessor(obj)\n\tif err != nil {\n\t\treturn err\n\t}\n\t// Stamp GVK\n\tapiVersion, kind := gvk.ToAPIVersionAndKind()\n\tobjType.SetAPIVersion(apiVersion)\n\tobjType.SetKind(kind)\n\n\tobjMeta, err := meta.Accessor(obj)\n\tif err != nil {\n\t\treturn err\n\t}\n\tliveObject, err := t.ObjectTracker.Get(gvr, ns, objMeta.GetName(), metav1.GetOptions{})\n\tif apierrors.IsNotFound(err) {\n\t\tliveObject, err = t.scheme.New(gvk)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tliveObject.GetObjectKind().SetGroupVersionKind(gvk)\n\t} else if err != nil {\n\t\treturn err\n\t}\n\tobjWithManagedFields, err := mgr.Update(liveObject, obj, opts.FieldManager)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn t.ObjectTracker.Create(gvr, objWithManagedFields, ns, opts)\n}\n\nfunc (t *managedFieldObjectTracker) Update(gvr schema.GroupVersionResource, obj runtime.Object, ns string, vopts ...metav1.UpdateOptions) error {\n\topts, err := assertOptionalSingleArgument(vopts)\n\tif err != nil {\n\t\treturn err\n\t}\n\tgvk, err := t.mapper.KindFor(gvr)\n\tif err != nil {\n\t\treturn err\n\t}\n\tmgr, err := t.fieldManagerFor(gvk)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tobjMeta, err := meta.Accessor(obj)\n\tif err != nil {\n\t\treturn err\n\t}\n\toldObj, err := t.ObjectTracker.Get(gvr, ns, objMeta.GetName(), metav1.GetOptions{})\n\tif err != nil {\n\t\treturn err\n\t}\n\tobjWithManagedFields, err := mgr.Update(oldObj, obj, opts.FieldManager)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\treturn t.ObjectTracker.Update(gvr, objWithManagedFields, ns, opts)\n}\n\nfunc (t *managedFieldObjectTracker) Patch(gvr schema.GroupVersionResource, patchedObject runtime.Object, ns string, vopts ...metav1.PatchOptions) error {\n\topts, err := assertOptionalSingleArgument(vopts)\n\tif err != nil {\n\t\treturn err\n\t}\n\tgvk, err := t.mapper.KindFor(gvr)\n\tif err != nil {\n\t\treturn err\n\t}\n\tmgr, err := t.fieldManagerFor(gvk)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tobjMeta, err := meta.Accessor(patchedObject)\n\tif err != nil {\n\t\treturn err\n\t}\n\toldObj, err := t.ObjectTracker.Get(gvr, ns, objMeta.GetName(), metav1.GetOptions{})\n\tif err != nil {\n\t\treturn err\n\t}\n\tobjWithManagedFields, err := mgr.Update(oldObj, patchedObject, opts.FieldManager)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn t.ObjectTracker.Patch(gvr, objWithManagedFields, ns, vopts...)\n}\n\nfunc (t *managedFieldObjectTracker) Apply(gvr schema.GroupVersionResource, applyConfiguration runtime.Object, ns string, vopts ...metav1.PatchOptions) error {\n\topts, err := assertOptionalSingleArgument(vopts)\n\tif err != nil {\n\t\treturn err\n\t}\n\tgvk, err := t.mapper.KindFor(gvr)\n\tif err != nil {\n\t\treturn err\n\t}\n\tapplyConfigurationMeta, err := meta.Accessor(applyConfiguration)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\texists := true\n\tliveObject, err := t.ObjectTracker.Get(gvr, ns, applyConfigurationMeta.GetName(), metav1.GetOptions{})\n\tif apierrors.IsNotFound(err) {\n\t\texists = false\n\t\tliveObject, err = t.scheme.New(gvk)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tliveObject.GetObjectKind().SetGroupVersionKind(gvk)\n\t} else if err != nil {\n\t\treturn err\n\t}\n\tmgr, err := t.fieldManagerFor(gvk)\n\tif err != nil {\n\t\treturn err\n\t}\n\tforce := false\n\tif opts.Force != nil {\n\t\tforce = *opts.Force\n\t}\n\tobjWithManagedFields, err := mgr.Apply(liveObject, applyConfiguration, opts.FieldManager, force)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tif !exists {\n\t\treturn t.ObjectTracker.Create(gvr, objWithManagedFields, ns, metav1.CreateOptions{\n\t\t\tDryRun:          opts.DryRun,\n\t\t\tFieldManager:    opts.FieldManager,\n\t\t\tFieldValidation: opts.FieldValidation,\n\t\t})\n\t} else {\n\t\treturn t.ObjectTracker.Update(gvr, objWithManagedFields, ns, metav1.UpdateOptions{\n\t\t\tDryRun:          opts.DryRun,\n\t\t\tFieldManager:    opts.FieldManager,\n\t\t\tFieldValidation: opts.FieldValidation,\n\t\t})\n\t}\n}\n\nfunc (t *managedFieldObjectTracker) fieldManagerFor(gvk schema.GroupVersionKind) (*managedfields.FieldManager, error) {\n\treturn managedfields.NewDefaultFieldManager(\n\t\tt.typeConverter,\n\t\tt.objectConverter,\n\t\t&objectDefaulter{},\n\t\tt.scheme,\n\t\tgvk,\n\t\tgvk.GroupVersion(),\n\t\t\"\",\n\t\tnil)\n}\n\n// objectDefaulter implements runtime.Defaulter, but it actually\n// does nothing.\ntype objectDefaulter struct{}\n\nfunc (d *objectDefaulter) Default(_ runtime.Object) {}\n\n// filterByNamespace returns all objects in the collection that\n// match provided namespace. Empty namespace matches\n// non-namespaced objects.\nfunc filterByNamespace(objs map[types.NamespacedName]runtime.Object, ns string) ([]runtime.Object, error) {\n\tvar res []runtime.Object\n\n\tfor _, obj := range objs {\n\t\tacc, err := meta.Accessor(obj)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif ns != \"\" && acc.GetNamespace() != ns {\n\t\t\tcontinue\n\t\t}\n\t\tres = append(res, obj)\n\t}\n\n\t// Sort res to get deterministic order.\n\tsort.Slice(res, func(i, j int) bool {\n\t\tacc1, _ := meta.Accessor(res[i])\n\t\tacc2, _ := meta.Accessor(res[j])\n\t\tif acc1.GetNamespace() != acc2.GetNamespace() {\n\t\t\treturn acc1.GetNamespace() < acc2.GetNamespace()\n\t\t}\n\t\treturn acc1.GetName() < acc2.GetName()\n\t})\n\treturn res, nil\n}\n\nfunc DefaultWatchReactor(watchInterface watch.Interface, err error) WatchReactionFunc {\n\treturn func(action Action) (bool, watch.Interface, error) {\n\t\treturn true, watchInterface, err\n\t}\n}\n\n// SimpleReactor is a Reactor.  Each reaction function is attached to a given verb,resource tuple.  \"*\" in either field matches everything for that value.\n// For instance, *,pods matches all verbs on pods.  This allows for easier composition of reaction functions\ntype SimpleReactor struct {\n\tVerb     string\n\tResource string\n\n\tReaction ReactionFunc\n}\n\nfunc (r *SimpleReactor) Handles(action Action) bool {\n\tverbCovers := r.Verb == \"*\" || r.Verb == action.GetVerb()\n\tif !verbCovers {\n\t\treturn false\n\t}\n\n\treturn resourceCovers(r.Resource, action)\n}\n\nfunc (r *SimpleReactor) React(action Action) (bool, runtime.Object, error) {\n\treturn r.Reaction(action)\n}\n\n// SimpleWatchReactor is a WatchReactor.  Each reaction function is attached to a given resource.  \"*\" matches everything for that value.\n// For instance, *,pods matches all verbs on pods.  This allows for easier composition of reaction functions\ntype SimpleWatchReactor struct {\n\tResource string\n\n\tReaction WatchReactionFunc\n}\n\nfunc (r *SimpleWatchReactor) Handles(action Action) bool {\n\treturn resourceCovers(r.Resource, action)\n}\n\nfunc (r *SimpleWatchReactor) React(action Action) (bool, watch.Interface, error) {\n\treturn r.Reaction(action)\n}\n\n// SimpleProxyReactor is a ProxyReactor.  Each reaction function is attached to a given resource.  \"*\" matches everything for that value.\n// For instance, *,pods matches all verbs on pods.  This allows for easier composition of reaction functions.\ntype SimpleProxyReactor struct {\n\tResource string\n\n\tReaction ProxyReactionFunc\n}\n\nfunc (r *SimpleProxyReactor) Handles(action Action) bool {\n\treturn resourceCovers(r.Resource, action)\n}\n\nfunc (r *SimpleProxyReactor) React(action Action) (bool, restclient.ResponseWrapper, error) {\n\treturn r.Reaction(action)\n}\n\nfunc resourceCovers(resource string, action Action) bool {\n\tif resource == \"*\" {\n\t\treturn true\n\t}\n\n\tif resource == action.GetResource().Resource {\n\t\treturn true\n\t}\n\n\tif index := strings.Index(resource, \"/\"); index != -1 &&\n\t\tresource[:index] == action.GetResource().Resource &&\n\t\tresource[index+1:] == action.GetSubresource() {\n\t\treturn true\n\t}\n\n\treturn false\n}\n\n// assertOptionalSingleArgument returns an error if there is more than one variadic argument.\n// Otherwise, it returns the first variadic argument, or zero value if there are no arguments.\nfunc assertOptionalSingleArgument[T any](arguments []T) (T, error) {\n\tvar a T\n\tswitch len(arguments) {\n\tcase 0:\n\t\treturn a, nil\n\tcase 1:\n\t\treturn arguments[0], nil\n\tdefault:\n\t\treturn a, fmt.Errorf(\"expected only one option argument but got %d\", len(arguments))\n\t}\n}\n\ntype TypeResolver interface {\n\tType(openAPIName string) typed.ParseableType\n}\n\ntype TypeConverter struct {\n\tScheme       *runtime.Scheme\n\tTypeResolver TypeResolver\n}\n\nfunc (tc TypeConverter) ObjectToTyped(obj runtime.Object, opts ...typed.ValidationOptions) (*typed.TypedValue, error) {\n\tgvk := obj.GetObjectKind().GroupVersionKind()\n\tname, err := tc.openAPIName(gvk)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tt := tc.TypeResolver.Type(name)\n\tswitch o := obj.(type) {\n\tcase *unstructured.Unstructured:\n\t\treturn t.FromUnstructured(o.UnstructuredContent(), opts...)\n\tdefault:\n\t\treturn t.FromStructured(obj, opts...)\n\t}\n}\n\nfunc (tc TypeConverter) TypedToObject(value *typed.TypedValue) (runtime.Object, error) {\n\tvu := value.AsValue().Unstructured()\n\tswitch o := vu.(type) {\n\tcase map[string]interface{}:\n\t\treturn &unstructured.Unstructured{Object: o}, nil\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"failed to convert value to unstructured for type %T\", vu)\n\t}\n}\n\nfunc (tc TypeConverter) openAPIName(kind schema.GroupVersionKind) (string, error) {\n\texample, err := tc.Scheme.New(kind)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\trtype := reflect.TypeOf(example).Elem()\n\tname := friendlyName(rtype.PkgPath() + \".\" + rtype.Name())\n\treturn name, nil\n}\n\n// This is a copy of openapi.friendlyName.\n// TODO: consider introducing a shared version of this function in apimachinery.\nfunc friendlyName(name string) string {\n\tnameParts := strings.Split(name, \"/\")\n\t// Reverse first part. e.g., io.k8s... instead of k8s.io...\n\tif len(nameParts) > 0 && strings.Contains(nameParts[0], \".\") {\n\t\tparts := strings.Split(nameParts[0], \".\")\n\t\tfor i, j := 0, len(parts)-1; i < j; i, j = i+1, j-1 {\n\t\t\tparts[i], parts[j] = parts[j], parts[i]\n\t\t}\n\t\tnameParts[0] = strings.Join(parts, \".\")\n\t}\n\treturn strings.Join(nameParts, \".\")\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/testing/interface.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage testing\n\nimport (\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/watch\"\n\trestclient \"k8s.io/client-go/rest\"\n)\n\ntype FakeClient interface {\n\t// Tracker gives access to the ObjectTracker internal to the fake client.\n\tTracker() ObjectTracker\n\n\t// AddReactor appends a reactor to the end of the chain.\n\tAddReactor(verb, resource string, reaction ReactionFunc)\n\n\t// PrependReactor adds a reactor to the beginning of the chain.\n\tPrependReactor(verb, resource string, reaction ReactionFunc)\n\n\t// AddWatchReactor appends a reactor to the end of the chain.\n\tAddWatchReactor(resource string, reaction WatchReactionFunc)\n\n\t// PrependWatchReactor adds a reactor to the beginning of the chain.\n\tPrependWatchReactor(resource string, reaction WatchReactionFunc)\n\n\t// AddProxyReactor appends a reactor to the end of the chain.\n\tAddProxyReactor(resource string, reaction ProxyReactionFunc)\n\n\t// PrependProxyReactor adds a reactor to the beginning of the chain.\n\tPrependProxyReactor(resource string, reaction ProxyReactionFunc)\n\n\t// Invokes records the provided Action and then invokes the ReactionFunc that\n\t// handles the action if one exists. defaultReturnObj is expected to be of the\n\t// same type a normal call would return.\n\tInvokes(action Action, defaultReturnObj runtime.Object) (runtime.Object, error)\n\n\t// InvokesWatch records the provided Action and then invokes the ReactionFunc\n\t// that handles the action if one exists.\n\tInvokesWatch(action Action) (watch.Interface, error)\n\n\t// InvokesProxy records the provided Action and then invokes the ReactionFunc\n\t// that handles the action if one exists.\n\tInvokesProxy(action Action) restclient.ResponseWrapper\n\n\t// ClearActions clears the history of actions called on the fake client.\n\tClearActions()\n\n\t// Actions returns a chronologically ordered slice fake actions called on the\n\t// fake client.\n\tActions() []Action\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/cache/OWNERS",
    "content": "# See the OWNERS docs at https://go.k8s.io/owners\n\napprovers:\n  - thockin\n  - smarterclayton\n  - wojtek-t\n  - deads2k\n  - caesarxuchao\n  - liggitt\nreviewers:\n  - thockin\n  - smarterclayton\n  - wojtek-t\n  - deads2k\n  - derekwaynecarr\n  - caesarxuchao\n  - mikedanese\n  - liggitt\n  - janetkuo\n  - justinsb\n  - soltysh\n  - jsafrane\n  - dims\n  - ingvagabund\nemeritus_approvers:\n  - lavalamp\n  - ncdc\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/cache/controller.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage cache\n\nimport (\n\t\"errors\"\n\t\"sync\"\n\t\"time\"\n\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\tutilruntime \"k8s.io/apimachinery/pkg/util/runtime\"\n\t\"k8s.io/apimachinery/pkg/util/wait\"\n\t\"k8s.io/utils/clock\"\n)\n\n// This file implements a low-level controller that is used in\n// sharedIndexInformer, which is an implementation of\n// SharedIndexInformer.  Such informers, in turn, are key components\n// in the high level controllers that form the backbone of the\n// Kubernetes control plane.  Look at those for examples, or the\n// example in\n// https://github.com/kubernetes/client-go/tree/master/examples/workqueue\n// .\n\n// Config contains all the settings for one of these low-level controllers.\ntype Config struct {\n\t// The queue for your objects - has to be a DeltaFIFO due to\n\t// assumptions in the implementation. Your Process() function\n\t// should accept the output of this Queue's Pop() method.\n\tQueue\n\n\t// Something that can list and watch your objects.\n\tListerWatcher\n\n\t// Something that can process a popped Deltas.\n\tProcess ProcessFunc\n\n\t// ObjectType is an example object of the type this controller is\n\t// expected to handle.\n\tObjectType runtime.Object\n\n\t// ObjectDescription is the description to use when logging type-specific information about this controller.\n\tObjectDescription string\n\n\t// FullResyncPeriod is the period at which ShouldResync is considered.\n\tFullResyncPeriod time.Duration\n\n\t// MinWatchTimeout, if set, will define the minimum timeout for watch requests send\n\t// to kube-apiserver. However, values lower than 5m will not be honored to avoid\n\t// negative performance impact on controlplane.\n\t// Optional - if unset a default value of 5m will be used.\n\tMinWatchTimeout time.Duration\n\n\t// ShouldResync is periodically used by the reflector to determine\n\t// whether to Resync the Queue. If ShouldResync is `nil` or\n\t// returns true, it means the reflector should proceed with the\n\t// resync.\n\tShouldResync ShouldResyncFunc\n\n\t// If true, when Process() returns an error, re-enqueue the object.\n\t// TODO: add interface to let you inject a delay/backoff or drop\n\t//       the object completely if desired. Pass the object in\n\t//       question to this interface as a parameter.  This is probably moot\n\t//       now that this functionality appears at a higher level.\n\tRetryOnError bool\n\n\t// Called whenever the ListAndWatch drops the connection with an error.\n\tWatchErrorHandler WatchErrorHandler\n\n\t// WatchListPageSize is the requested chunk size of initial and relist watch lists.\n\tWatchListPageSize int64\n}\n\n// ShouldResyncFunc is a type of function that indicates if a reflector should perform a\n// resync or not. It can be used by a shared informer to support multiple event handlers with custom\n// resync periods.\ntype ShouldResyncFunc func() bool\n\n// ProcessFunc processes a single object.\ntype ProcessFunc func(obj interface{}, isInInitialList bool) error\n\n// `*controller` implements Controller\ntype controller struct {\n\tconfig         Config\n\treflector      *Reflector\n\treflectorMutex sync.RWMutex\n\tclock          clock.Clock\n}\n\n// Controller is a low-level controller that is parameterized by a\n// Config and used in sharedIndexInformer.\ntype Controller interface {\n\t// Run does two things.  One is to construct and run a Reflector\n\t// to pump objects/notifications from the Config's ListerWatcher\n\t// to the Config's Queue and possibly invoke the occasional Resync\n\t// on that Queue.  The other is to repeatedly Pop from the Queue\n\t// and process with the Config's ProcessFunc.  Both of these\n\t// continue until `stopCh` is closed.\n\tRun(stopCh <-chan struct{})\n\n\t// HasSynced delegates to the Config's Queue\n\tHasSynced() bool\n\n\t// LastSyncResourceVersion delegates to the Reflector when there\n\t// is one, otherwise returns the empty string\n\tLastSyncResourceVersion() string\n}\n\n// New makes a new Controller from the given Config.\nfunc New(c *Config) Controller {\n\tctlr := &controller{\n\t\tconfig: *c,\n\t\tclock:  &clock.RealClock{},\n\t}\n\treturn ctlr\n}\n\n// Run begins processing items, and will continue until a value is sent down stopCh or it is closed.\n// It's an error to call Run more than once.\n// Run blocks; call via go.\nfunc (c *controller) Run(stopCh <-chan struct{}) {\n\tdefer utilruntime.HandleCrash()\n\tgo func() {\n\t\t<-stopCh\n\t\tc.config.Queue.Close()\n\t}()\n\tr := NewReflectorWithOptions(\n\t\tc.config.ListerWatcher,\n\t\tc.config.ObjectType,\n\t\tc.config.Queue,\n\t\tReflectorOptions{\n\t\t\tResyncPeriod:    c.config.FullResyncPeriod,\n\t\t\tMinWatchTimeout: c.config.MinWatchTimeout,\n\t\t\tTypeDescription: c.config.ObjectDescription,\n\t\t\tClock:           c.clock,\n\t\t},\n\t)\n\tr.ShouldResync = c.config.ShouldResync\n\tr.WatchListPageSize = c.config.WatchListPageSize\n\tif c.config.WatchErrorHandler != nil {\n\t\tr.watchErrorHandler = c.config.WatchErrorHandler\n\t}\n\n\tc.reflectorMutex.Lock()\n\tc.reflector = r\n\tc.reflectorMutex.Unlock()\n\n\tvar wg wait.Group\n\n\twg.StartWithChannel(stopCh, r.Run)\n\n\twait.Until(c.processLoop, time.Second, stopCh)\n\twg.Wait()\n}\n\n// Returns true once this controller has completed an initial resource listing\nfunc (c *controller) HasSynced() bool {\n\treturn c.config.Queue.HasSynced()\n}\n\nfunc (c *controller) LastSyncResourceVersion() string {\n\tc.reflectorMutex.RLock()\n\tdefer c.reflectorMutex.RUnlock()\n\tif c.reflector == nil {\n\t\treturn \"\"\n\t}\n\treturn c.reflector.LastSyncResourceVersion()\n}\n\n// processLoop drains the work queue.\n// TODO: Consider doing the processing in parallel. This will require a little thought\n// to make sure that we don't end up processing the same object multiple times\n// concurrently.\n//\n// TODO: Plumb through the stopCh here (and down to the queue) so that this can\n// actually exit when the controller is stopped. Or just give up on this stuff\n// ever being stoppable. Converting this whole package to use Context would\n// also be helpful.\nfunc (c *controller) processLoop() {\n\tfor {\n\t\tobj, err := c.config.Queue.Pop(PopProcessFunc(c.config.Process))\n\t\tif err != nil {\n\t\t\tif err == ErrFIFOClosed {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif c.config.RetryOnError {\n\t\t\t\t// This is the safe way to re-enqueue.\n\t\t\t\tc.config.Queue.AddIfNotPresent(obj)\n\t\t\t}\n\t\t}\n\t}\n}\n\n// ResourceEventHandler can handle notifications for events that\n// happen to a resource. The events are informational only, so you\n// can't return an error.  The handlers MUST NOT modify the objects\n// received; this concerns not only the top level of structure but all\n// the data structures reachable from it.\n//   - OnAdd is called when an object is added.\n//   - OnUpdate is called when an object is modified. Note that oldObj is the\n//     last known state of the object-- it is possible that several changes\n//     were combined together, so you can't use this to see every single\n//     change. OnUpdate is also called when a re-list happens, and it will\n//     get called even if nothing changed. This is useful for periodically\n//     evaluating or syncing something.\n//   - OnDelete will get the final state of the item if it is known, otherwise\n//     it will get an object of type DeletedFinalStateUnknown. This can\n//     happen if the watch is closed and misses the delete event and we don't\n//     notice the deletion until the subsequent re-list.\ntype ResourceEventHandler interface {\n\tOnAdd(obj interface{}, isInInitialList bool)\n\tOnUpdate(oldObj, newObj interface{})\n\tOnDelete(obj interface{})\n}\n\n// ResourceEventHandlerFuncs is an adaptor to let you easily specify as many or\n// as few of the notification functions as you want while still implementing\n// ResourceEventHandler.  This adapter does not remove the prohibition against\n// modifying the objects.\n//\n// See ResourceEventHandlerDetailedFuncs if your use needs to propagate\n// HasSynced.\ntype ResourceEventHandlerFuncs struct {\n\tAddFunc    func(obj interface{})\n\tUpdateFunc func(oldObj, newObj interface{})\n\tDeleteFunc func(obj interface{})\n}\n\n// OnAdd calls AddFunc if it's not nil.\nfunc (r ResourceEventHandlerFuncs) OnAdd(obj interface{}, isInInitialList bool) {\n\tif r.AddFunc != nil {\n\t\tr.AddFunc(obj)\n\t}\n}\n\n// OnUpdate calls UpdateFunc if it's not nil.\nfunc (r ResourceEventHandlerFuncs) OnUpdate(oldObj, newObj interface{}) {\n\tif r.UpdateFunc != nil {\n\t\tr.UpdateFunc(oldObj, newObj)\n\t}\n}\n\n// OnDelete calls DeleteFunc if it's not nil.\nfunc (r ResourceEventHandlerFuncs) OnDelete(obj interface{}) {\n\tif r.DeleteFunc != nil {\n\t\tr.DeleteFunc(obj)\n\t}\n}\n\n// ResourceEventHandlerDetailedFuncs is exactly like ResourceEventHandlerFuncs\n// except its AddFunc accepts the isInInitialList parameter, for propagating\n// HasSynced.\ntype ResourceEventHandlerDetailedFuncs struct {\n\tAddFunc    func(obj interface{}, isInInitialList bool)\n\tUpdateFunc func(oldObj, newObj interface{})\n\tDeleteFunc func(obj interface{})\n}\n\n// OnAdd calls AddFunc if it's not nil.\nfunc (r ResourceEventHandlerDetailedFuncs) OnAdd(obj interface{}, isInInitialList bool) {\n\tif r.AddFunc != nil {\n\t\tr.AddFunc(obj, isInInitialList)\n\t}\n}\n\n// OnUpdate calls UpdateFunc if it's not nil.\nfunc (r ResourceEventHandlerDetailedFuncs) OnUpdate(oldObj, newObj interface{}) {\n\tif r.UpdateFunc != nil {\n\t\tr.UpdateFunc(oldObj, newObj)\n\t}\n}\n\n// OnDelete calls DeleteFunc if it's not nil.\nfunc (r ResourceEventHandlerDetailedFuncs) OnDelete(obj interface{}) {\n\tif r.DeleteFunc != nil {\n\t\tr.DeleteFunc(obj)\n\t}\n}\n\n// FilteringResourceEventHandler applies the provided filter to all events coming\n// in, ensuring the appropriate nested handler method is invoked. An object\n// that starts passing the filter after an update is considered an add, and an\n// object that stops passing the filter after an update is considered a delete.\n// Like the handlers, the filter MUST NOT modify the objects it is given.\ntype FilteringResourceEventHandler struct {\n\tFilterFunc func(obj interface{}) bool\n\tHandler    ResourceEventHandler\n}\n\n// OnAdd calls the nested handler only if the filter succeeds\nfunc (r FilteringResourceEventHandler) OnAdd(obj interface{}, isInInitialList bool) {\n\tif !r.FilterFunc(obj) {\n\t\treturn\n\t}\n\tr.Handler.OnAdd(obj, isInInitialList)\n}\n\n// OnUpdate ensures the proper handler is called depending on whether the filter matches\nfunc (r FilteringResourceEventHandler) OnUpdate(oldObj, newObj interface{}) {\n\tnewer := r.FilterFunc(newObj)\n\tolder := r.FilterFunc(oldObj)\n\tswitch {\n\tcase newer && older:\n\t\tr.Handler.OnUpdate(oldObj, newObj)\n\tcase newer && !older:\n\t\tr.Handler.OnAdd(newObj, false)\n\tcase !newer && older:\n\t\tr.Handler.OnDelete(oldObj)\n\tdefault:\n\t\t// do nothing\n\t}\n}\n\n// OnDelete calls the nested handler only if the filter succeeds\nfunc (r FilteringResourceEventHandler) OnDelete(obj interface{}) {\n\tif !r.FilterFunc(obj) {\n\t\treturn\n\t}\n\tr.Handler.OnDelete(obj)\n}\n\n// DeletionHandlingMetaNamespaceKeyFunc checks for\n// DeletedFinalStateUnknown objects before calling\n// MetaNamespaceKeyFunc.\nfunc DeletionHandlingMetaNamespaceKeyFunc(obj interface{}) (string, error) {\n\tif d, ok := obj.(DeletedFinalStateUnknown); ok {\n\t\treturn d.Key, nil\n\t}\n\treturn MetaNamespaceKeyFunc(obj)\n}\n\n// DeletionHandlingObjectToName checks for\n// DeletedFinalStateUnknown objects before calling\n// ObjectToName.\nfunc DeletionHandlingObjectToName(obj interface{}) (ObjectName, error) {\n\tif d, ok := obj.(DeletedFinalStateUnknown); ok {\n\t\treturn ParseObjectName(d.Key)\n\t}\n\treturn ObjectToName(obj)\n}\n\n// InformerOptions configure a Reflector.\ntype InformerOptions struct {\n\t// ListerWatcher implements List and Watch functions for the source of the resource\n\t// the informer will be informing about.\n\tListerWatcher ListerWatcher\n\n\t// ObjectType is an object of the type that informer is expected to receive.\n\tObjectType runtime.Object\n\n\t// Handler defines functions that should called on object mutations.\n\tHandler ResourceEventHandler\n\n\t// ResyncPeriod is the underlying Reflector's resync period. If non-zero, the store\n\t// is re-synced with that frequency - Modify events are delivered even if objects\n\t// didn't change.\n\t// This is useful for synchronizing objects that configure external resources\n\t// (e.g. configure cloud provider functionalities).\n\t// Optional - if unset, store resyncing is not happening periodically.\n\tResyncPeriod time.Duration\n\n\t// MinWatchTimeout, if set, will define the minimum timeout for watch requests send\n\t// to kube-apiserver. However, values lower than 5m will not be honored to avoid\n\t// negative performance impact on controlplane.\n\t// Optional - if unset a default value of 5m will be used.\n\tMinWatchTimeout time.Duration\n\n\t// Indexers, if set, are the indexers for the received objects to optimize\n\t// certain queries.\n\t// Optional - if unset no indexes are maintained.\n\tIndexers Indexers\n\n\t// Transform function, if set, will be called on all objects before they will be\n\t// put into the Store and corresponding Add/Modify/Delete handlers will be invoked\n\t// for them.\n\t// Optional - if unset no additional transforming is happening.\n\tTransform TransformFunc\n}\n\n// NewInformerWithOptions returns a Store and a controller for populating the store\n// while also providing event notifications. You should only used the returned\n// Store for Get/List operations; Add/Modify/Deletes will cause the event\n// notifications to be faulty.\nfunc NewInformerWithOptions(options InformerOptions) (Store, Controller) {\n\tvar clientState Store\n\tif options.Indexers == nil {\n\t\tclientState = NewStore(DeletionHandlingMetaNamespaceKeyFunc)\n\t} else {\n\t\tclientState = NewIndexer(DeletionHandlingMetaNamespaceKeyFunc, options.Indexers)\n\t}\n\treturn clientState, newInformer(clientState, options)\n}\n\n// NewInformer returns a Store and a controller for populating the store\n// while also providing event notifications. You should only used the returned\n// Store for Get/List operations; Add/Modify/Deletes will cause the event\n// notifications to be faulty.\n//\n// Parameters:\n//   - lw is list and watch functions for the source of the resource you want to\n//     be informed of.\n//   - objType is an object of the type that you expect to receive.\n//   - resyncPeriod: if non-zero, will re-list this often (you will get OnUpdate\n//     calls, even if nothing changed). Otherwise, re-list will be delayed as\n//     long as possible (until the upstream source closes the watch or times out,\n//     or you stop the controller).\n//   - h is the object you want notifications sent to.\n//\n// Deprecated: Use NewInformerWithOptions instead.\nfunc NewInformer(\n\tlw ListerWatcher,\n\tobjType runtime.Object,\n\tresyncPeriod time.Duration,\n\th ResourceEventHandler,\n) (Store, Controller) {\n\t// This will hold the client state, as we know it.\n\tclientState := NewStore(DeletionHandlingMetaNamespaceKeyFunc)\n\n\toptions := InformerOptions{\n\t\tListerWatcher: lw,\n\t\tObjectType:    objType,\n\t\tHandler:       h,\n\t\tResyncPeriod:  resyncPeriod,\n\t}\n\treturn clientState, newInformer(clientState, options)\n}\n\n// NewIndexerInformer returns an Indexer and a Controller for populating the index\n// while also providing event notifications. You should only used the returned\n// Index for Get/List operations; Add/Modify/Deletes will cause the event\n// notifications to be faulty.\n//\n// Parameters:\n//   - lw is list and watch functions for the source of the resource you want to\n//     be informed of.\n//   - objType is an object of the type that you expect to receive.\n//   - resyncPeriod: if non-zero, will re-list this often (you will get OnUpdate\n//     calls, even if nothing changed). Otherwise, re-list will be delayed as\n//     long as possible (until the upstream source closes the watch or times out,\n//     or you stop the controller).\n//   - h is the object you want notifications sent to.\n//   - indexers is the indexer for the received object type.\n//\n// Deprecated: Use NewInformerWithOptions instead.\nfunc NewIndexerInformer(\n\tlw ListerWatcher,\n\tobjType runtime.Object,\n\tresyncPeriod time.Duration,\n\th ResourceEventHandler,\n\tindexers Indexers,\n) (Indexer, Controller) {\n\t// This will hold the client state, as we know it.\n\tclientState := NewIndexer(DeletionHandlingMetaNamespaceKeyFunc, indexers)\n\n\toptions := InformerOptions{\n\t\tListerWatcher: lw,\n\t\tObjectType:    objType,\n\t\tHandler:       h,\n\t\tResyncPeriod:  resyncPeriod,\n\t\tIndexers:      indexers,\n\t}\n\treturn clientState, newInformer(clientState, options)\n}\n\n// NewTransformingInformer returns a Store and a controller for populating\n// the store while also providing event notifications. You should only used\n// the returned Store for Get/List operations; Add/Modify/Deletes will cause\n// the event notifications to be faulty.\n// The given transform function will be called on all objects before they will\n// put into the Store and corresponding Add/Modify/Delete handlers will\n// be invoked for them.\n//\n// Deprecated: Use NewInformerWithOptions instead.\nfunc NewTransformingInformer(\n\tlw ListerWatcher,\n\tobjType runtime.Object,\n\tresyncPeriod time.Duration,\n\th ResourceEventHandler,\n\ttransformer TransformFunc,\n) (Store, Controller) {\n\t// This will hold the client state, as we know it.\n\tclientState := NewStore(DeletionHandlingMetaNamespaceKeyFunc)\n\n\toptions := InformerOptions{\n\t\tListerWatcher: lw,\n\t\tObjectType:    objType,\n\t\tHandler:       h,\n\t\tResyncPeriod:  resyncPeriod,\n\t\tTransform:     transformer,\n\t}\n\treturn clientState, newInformer(clientState, options)\n}\n\n// NewTransformingIndexerInformer returns an Indexer and a controller for\n// populating the index while also providing event notifications. You should\n// only used the returned Index for Get/List operations; Add/Modify/Deletes\n// will cause the event notifications to be faulty.\n// The given transform function will be called on all objects before they will\n// be put into the Index and corresponding Add/Modify/Delete handlers will\n// be invoked for them.\n//\n// Deprecated: Use NewInformerWithOptions instead.\nfunc NewTransformingIndexerInformer(\n\tlw ListerWatcher,\n\tobjType runtime.Object,\n\tresyncPeriod time.Duration,\n\th ResourceEventHandler,\n\tindexers Indexers,\n\ttransformer TransformFunc,\n) (Indexer, Controller) {\n\t// This will hold the client state, as we know it.\n\tclientState := NewIndexer(DeletionHandlingMetaNamespaceKeyFunc, indexers)\n\n\toptions := InformerOptions{\n\t\tListerWatcher: lw,\n\t\tObjectType:    objType,\n\t\tHandler:       h,\n\t\tResyncPeriod:  resyncPeriod,\n\t\tIndexers:      indexers,\n\t\tTransform:     transformer,\n\t}\n\treturn clientState, newInformer(clientState, options)\n}\n\n// Multiplexes updates in the form of a list of Deltas into a Store, and informs\n// a given handler of events OnUpdate, OnAdd, OnDelete\nfunc processDeltas(\n\t// Object which receives event notifications from the given deltas\n\thandler ResourceEventHandler,\n\tclientState Store,\n\tdeltas Deltas,\n\tisInInitialList bool,\n) error {\n\t// from oldest to newest\n\tfor _, d := range deltas {\n\t\tobj := d.Object\n\n\t\tswitch d.Type {\n\t\tcase Sync, Replaced, Added, Updated:\n\t\t\tif old, exists, err := clientState.Get(obj); err == nil && exists {\n\t\t\t\tif err := clientState.Update(obj); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\thandler.OnUpdate(old, obj)\n\t\t\t} else {\n\t\t\t\tif err := clientState.Add(obj); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\thandler.OnAdd(obj, isInInitialList)\n\t\t\t}\n\t\tcase Deleted:\n\t\t\tif err := clientState.Delete(obj); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\thandler.OnDelete(obj)\n\t\t}\n\t}\n\treturn nil\n}\n\n// newInformer returns a controller for populating the store while also\n// providing event notifications.\n//\n// Parameters\n//   - clientState is the store you want to populate\n//   - options contain the options to configure the controller\nfunc newInformer(clientState Store, options InformerOptions) Controller {\n\t// This will hold incoming changes. Note how we pass clientState in as a\n\t// KeyLister, that way resync operations will result in the correct set\n\t// of update/delete deltas.\n\tfifo := NewDeltaFIFOWithOptions(DeltaFIFOOptions{\n\t\tKnownObjects:          clientState,\n\t\tEmitDeltaTypeReplaced: true,\n\t\tTransformer:           options.Transform,\n\t})\n\n\tcfg := &Config{\n\t\tQueue:            fifo,\n\t\tListerWatcher:    options.ListerWatcher,\n\t\tObjectType:       options.ObjectType,\n\t\tFullResyncPeriod: options.ResyncPeriod,\n\t\tMinWatchTimeout:  options.MinWatchTimeout,\n\t\tRetryOnError:     false,\n\n\t\tProcess: func(obj interface{}, isInInitialList bool) error {\n\t\t\tif deltas, ok := obj.(Deltas); ok {\n\t\t\t\treturn processDeltas(options.Handler, clientState, deltas, isInInitialList)\n\t\t\t}\n\t\t\treturn errors.New(\"object given as Process argument is not Deltas\")\n\t\t},\n\t}\n\treturn New(cfg)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/cache/delta_fifo.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage cache\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"sync\"\n\t\"time\"\n\n\t\"k8s.io/apimachinery/pkg/util/sets\"\n\n\t\"k8s.io/klog/v2\"\n\tutiltrace \"k8s.io/utils/trace\"\n)\n\n// DeltaFIFOOptions is the configuration parameters for DeltaFIFO. All are\n// optional.\ntype DeltaFIFOOptions struct {\n\n\t// KeyFunction is used to figure out what key an object should have. (It's\n\t// exposed in the returned DeltaFIFO's KeyOf() method, with additional\n\t// handling around deleted objects and queue state).\n\t// Optional, the default is MetaNamespaceKeyFunc.\n\tKeyFunction KeyFunc\n\n\t// KnownObjects is expected to return a list of keys that the consumer of\n\t// this queue \"knows about\". It is used to decide which items are missing\n\t// when Replace() is called; 'Deleted' deltas are produced for the missing items.\n\t// KnownObjects may be nil if you can tolerate missing deletions on Replace().\n\tKnownObjects KeyListerGetter\n\n\t// EmitDeltaTypeReplaced indicates that the queue consumer\n\t// understands the Replaced DeltaType. Before the `Replaced` event type was\n\t// added, calls to Replace() were handled the same as Sync(). For\n\t// backwards-compatibility purposes, this is false by default.\n\t// When true, `Replaced` events will be sent for items passed to a Replace() call.\n\t// When false, `Sync` events will be sent instead.\n\tEmitDeltaTypeReplaced bool\n\n\t// If set, will be called for objects before enqueueing them. Please\n\t// see the comment on TransformFunc for details.\n\tTransformer TransformFunc\n}\n\n// DeltaFIFO is like FIFO, but differs in two ways.  One is that the\n// accumulator associated with a given object's key is not that object\n// but rather a Deltas, which is a slice of Delta values for that\n// object.  Applying an object to a Deltas means to append a Delta\n// except when the potentially appended Delta is a Deleted and the\n// Deltas already ends with a Deleted.  In that case the Deltas does\n// not grow, although the terminal Deleted will be replaced by the new\n// Deleted if the older Deleted's object is a\n// DeletedFinalStateUnknown.\n//\n// The other difference is that DeltaFIFO has two additional ways that\n// an object can be applied to an accumulator: Replaced and Sync.\n// If EmitDeltaTypeReplaced is not set to true, Sync will be used in\n// replace events for backwards compatibility.  Sync is used for periodic\n// resync events.\n//\n// DeltaFIFO is a producer-consumer queue, where a Reflector is\n// intended to be the producer, and the consumer is whatever calls\n// the Pop() method.\n//\n// DeltaFIFO solves this use case:\n//   - You want to process every object change (delta) at most once.\n//   - When you process an object, you want to see everything\n//     that's happened to it since you last processed it.\n//   - You want to process the deletion of some of the objects.\n//   - You might want to periodically reprocess objects.\n//\n// DeltaFIFO's Pop(), Get(), and GetByKey() methods return\n// interface{} to satisfy the Store/Queue interfaces, but they\n// will always return an object of type Deltas. List() returns\n// the newest object from each accumulator in the FIFO.\n//\n// A DeltaFIFO's knownObjects KeyListerGetter provides the abilities\n// to list Store keys and to get objects by Store key.  The objects in\n// question are called \"known objects\" and this set of objects\n// modifies the behavior of the Delete, Replace, and Resync methods\n// (each in a different way).\n//\n// A note on threading: If you call Pop() in parallel from multiple\n// threads, you could end up with multiple threads processing slightly\n// different versions of the same object.\ntype DeltaFIFO struct {\n\t// lock/cond protects access to 'items' and 'queue'.\n\tlock sync.RWMutex\n\tcond sync.Cond\n\n\t// `items` maps a key to a Deltas.\n\t// Each such Deltas has at least one Delta.\n\titems map[string]Deltas\n\n\t// `queue` maintains FIFO order of keys for consumption in Pop().\n\t// There are no duplicates in `queue`.\n\t// A key is in `queue` if and only if it is in `items`.\n\tqueue []string\n\n\t// populated is true if the first batch of items inserted by Replace() has been populated\n\t// or Delete/Add/Update/AddIfNotPresent was called first.\n\tpopulated bool\n\t// initialPopulationCount is the number of items inserted by the first call of Replace()\n\tinitialPopulationCount int\n\n\t// keyFunc is used to make the key used for queued item\n\t// insertion and retrieval, and should be deterministic.\n\tkeyFunc KeyFunc\n\n\t// knownObjects list keys that are \"known\" --- affecting Delete(),\n\t// Replace(), and Resync()\n\tknownObjects KeyListerGetter\n\n\t// Used to indicate a queue is closed so a control loop can exit when a queue is empty.\n\t// Currently, not used to gate any of CRUD operations.\n\tclosed bool\n\n\t// emitDeltaTypeReplaced is whether to emit the Replaced or Sync\n\t// DeltaType when Replace() is called (to preserve backwards compat).\n\temitDeltaTypeReplaced bool\n\n\t// Called with every object if non-nil.\n\ttransformer TransformFunc\n}\n\n// TransformFunc allows for transforming an object before it will be processed.\n//\n// The most common usage pattern is to clean-up some parts of the object to\n// reduce component memory usage if a given component doesn't care about them.\n//\n// New in v1.27: TransformFunc sees the object before any other actor, and it\n// is now safe to mutate the object in place instead of making a copy.\n//\n// It's recommended for the TransformFunc to be idempotent.\n// It MUST be idempotent if objects already present in the cache are passed to\n// the Replace() to avoid re-mutating them. Default informers do not pass\n// existing objects to Replace though.\n//\n// Note that TransformFunc is called while inserting objects into the\n// notification queue and is therefore extremely performance sensitive; please\n// do not do anything that will take a long time.\ntype TransformFunc func(interface{}) (interface{}, error)\n\n// DeltaType is the type of a change (addition, deletion, etc)\ntype DeltaType string\n\n// Change type definition\nconst (\n\tAdded   DeltaType = \"Added\"\n\tUpdated DeltaType = \"Updated\"\n\tDeleted DeltaType = \"Deleted\"\n\t// Replaced is emitted when we encountered watch errors and had to do a\n\t// relist. We don't know if the replaced object has changed.\n\t//\n\t// NOTE: Previous versions of DeltaFIFO would use Sync for Replace events\n\t// as well. Hence, Replaced is only emitted when the option\n\t// EmitDeltaTypeReplaced is true.\n\tReplaced DeltaType = \"Replaced\"\n\t// Sync is for synthetic events during a periodic resync.\n\tSync DeltaType = \"Sync\"\n)\n\n// Delta is a member of Deltas (a list of Delta objects) which\n// in its turn is the type stored by a DeltaFIFO. It tells you what\n// change happened, and the object's state after* that change.\n//\n// [*] Unless the change is a deletion, and then you'll get the final\n// state of the object before it was deleted.\ntype Delta struct {\n\tType   DeltaType\n\tObject interface{}\n}\n\n// Deltas is a list of one or more 'Delta's to an individual object.\n// The oldest delta is at index 0, the newest delta is the last one.\ntype Deltas []Delta\n\n// NewDeltaFIFO returns a Queue which can be used to process changes to items.\n//\n// keyFunc is used to figure out what key an object should have. (It is\n// exposed in the returned DeltaFIFO's KeyOf() method, with additional handling\n// around deleted objects and queue state).\n//\n// 'knownObjects' may be supplied to modify the behavior of Delete,\n// Replace, and Resync.  It may be nil if you do not need those\n// modifications.\n//\n// TODO: consider merging keyLister with this object, tracking a list of\n// \"known\" keys when Pop() is called. Have to think about how that\n// affects error retrying.\n//\n//\tNOTE: It is possible to misuse this and cause a race when using an\n//\texternal known object source.\n//\tWhether there is a potential race depends on how the consumer\n//\tmodifies knownObjects. In Pop(), process function is called under\n//\tlock, so it is safe to update data structures in it that need to be\n//\tin sync with the queue (e.g. knownObjects).\n//\n//\tExample:\n//\tIn case of sharedIndexInformer being a consumer\n//\t(https://github.com/kubernetes/kubernetes/blob/0cdd940f/staging/src/k8s.io/client-go/tools/cache/shared_informer.go#L192),\n//\tthere is no race as knownObjects (s.indexer) is modified safely\n//\tunder DeltaFIFO's lock. The only exceptions are GetStore() and\n//\tGetIndexer() methods, which expose ways to modify the underlying\n//\tstorage. Currently these two methods are used for creating Lister\n//\tand internal tests.\n//\n// Also see the comment on DeltaFIFO.\n//\n// Warning: This constructs a DeltaFIFO that does not differentiate between\n// events caused by a call to Replace (e.g., from a relist, which may\n// contain object updates), and synthetic events caused by a periodic resync\n// (which just emit the existing object). See https://issue.k8s.io/86015 for details.\n//\n// Use `NewDeltaFIFOWithOptions(DeltaFIFOOptions{..., EmitDeltaTypeReplaced: true})`\n// instead to receive a `Replaced` event depending on the type.\n//\n// Deprecated: Equivalent to NewDeltaFIFOWithOptions(DeltaFIFOOptions{KeyFunction: keyFunc, KnownObjects: knownObjects})\nfunc NewDeltaFIFO(keyFunc KeyFunc, knownObjects KeyListerGetter) *DeltaFIFO {\n\treturn NewDeltaFIFOWithOptions(DeltaFIFOOptions{\n\t\tKeyFunction:  keyFunc,\n\t\tKnownObjects: knownObjects,\n\t})\n}\n\n// NewDeltaFIFOWithOptions returns a Queue which can be used to process changes to\n// items. See also the comment on DeltaFIFO.\nfunc NewDeltaFIFOWithOptions(opts DeltaFIFOOptions) *DeltaFIFO {\n\tif opts.KeyFunction == nil {\n\t\topts.KeyFunction = MetaNamespaceKeyFunc\n\t}\n\n\tf := &DeltaFIFO{\n\t\titems:        map[string]Deltas{},\n\t\tqueue:        []string{},\n\t\tkeyFunc:      opts.KeyFunction,\n\t\tknownObjects: opts.KnownObjects,\n\n\t\temitDeltaTypeReplaced: opts.EmitDeltaTypeReplaced,\n\t\ttransformer:           opts.Transformer,\n\t}\n\tf.cond.L = &f.lock\n\treturn f\n}\n\nvar (\n\t_ = Queue(&DeltaFIFO{}) // DeltaFIFO is a Queue\n)\n\nvar (\n\t// ErrZeroLengthDeltasObject is returned in a KeyError if a Deltas\n\t// object with zero length is encountered (should be impossible,\n\t// but included for completeness).\n\tErrZeroLengthDeltasObject = errors.New(\"0 length Deltas object; can't get key\")\n)\n\n// Close the queue.\nfunc (f *DeltaFIFO) Close() {\n\tf.lock.Lock()\n\tdefer f.lock.Unlock()\n\tf.closed = true\n\tf.cond.Broadcast()\n}\n\n// KeyOf exposes f's keyFunc, but also detects the key of a Deltas object or\n// DeletedFinalStateUnknown objects.\nfunc (f *DeltaFIFO) KeyOf(obj interface{}) (string, error) {\n\tif d, ok := obj.(Deltas); ok {\n\t\tif len(d) == 0 {\n\t\t\treturn \"\", KeyError{obj, ErrZeroLengthDeltasObject}\n\t\t}\n\t\tobj = d.Newest().Object\n\t}\n\tif d, ok := obj.(DeletedFinalStateUnknown); ok {\n\t\treturn d.Key, nil\n\t}\n\treturn f.keyFunc(obj)\n}\n\n// HasSynced returns true if an Add/Update/Delete/AddIfNotPresent are called first,\n// or the first batch of items inserted by Replace() has been popped.\nfunc (f *DeltaFIFO) HasSynced() bool {\n\tf.lock.Lock()\n\tdefer f.lock.Unlock()\n\treturn f.hasSynced_locked()\n}\n\nfunc (f *DeltaFIFO) hasSynced_locked() bool {\n\treturn f.populated && f.initialPopulationCount == 0\n}\n\n// Add inserts an item, and puts it in the queue. The item is only enqueued\n// if it doesn't already exist in the set.\nfunc (f *DeltaFIFO) Add(obj interface{}) error {\n\tf.lock.Lock()\n\tdefer f.lock.Unlock()\n\tf.populated = true\n\treturn f.queueActionLocked(Added, obj)\n}\n\n// Update is just like Add, but makes an Updated Delta.\nfunc (f *DeltaFIFO) Update(obj interface{}) error {\n\tf.lock.Lock()\n\tdefer f.lock.Unlock()\n\tf.populated = true\n\treturn f.queueActionLocked(Updated, obj)\n}\n\n// Delete is just like Add, but makes a Deleted Delta. If the given\n// object does not already exist, it will be ignored. (It may have\n// already been deleted by a Replace (re-list), for example.)  In this\n// method `f.knownObjects`, if not nil, provides (via GetByKey)\n// _additional_ objects that are considered to already exist.\nfunc (f *DeltaFIFO) Delete(obj interface{}) error {\n\tid, err := f.KeyOf(obj)\n\tif err != nil {\n\t\treturn KeyError{obj, err}\n\t}\n\tf.lock.Lock()\n\tdefer f.lock.Unlock()\n\tf.populated = true\n\tif f.knownObjects == nil {\n\t\tif _, exists := f.items[id]; !exists {\n\t\t\t// Presumably, this was deleted when a relist happened.\n\t\t\t// Don't provide a second report of the same deletion.\n\t\t\treturn nil\n\t\t}\n\t} else {\n\t\t// We only want to skip the \"deletion\" action if the object doesn't\n\t\t// exist in knownObjects and it doesn't have corresponding item in items.\n\t\t// Note that even if there is a \"deletion\" action in items, we can ignore it,\n\t\t// because it will be deduped automatically in \"queueActionLocked\"\n\t\t_, exists, err := f.knownObjects.GetByKey(id)\n\t\t_, itemsExist := f.items[id]\n\t\tif err == nil && !exists && !itemsExist {\n\t\t\t// Presumably, this was deleted when a relist happened.\n\t\t\t// Don't provide a second report of the same deletion.\n\t\t\treturn nil\n\t\t}\n\t}\n\n\t// exist in items and/or KnownObjects\n\treturn f.queueActionLocked(Deleted, obj)\n}\n\n// AddIfNotPresent inserts an item, and puts it in the queue. If the item is already\n// present in the set, it is neither enqueued nor added to the set.\n//\n// This is useful in a single producer/consumer scenario so that the consumer can\n// safely retry items without contending with the producer and potentially enqueueing\n// stale items.\n//\n// Important: obj must be a Deltas (the output of the Pop() function). Yes, this is\n// different from the Add/Update/Delete functions.\nfunc (f *DeltaFIFO) AddIfNotPresent(obj interface{}) error {\n\tdeltas, ok := obj.(Deltas)\n\tif !ok {\n\t\treturn fmt.Errorf(\"object must be of type deltas, but got: %#v\", obj)\n\t}\n\tid, err := f.KeyOf(deltas)\n\tif err != nil {\n\t\treturn KeyError{obj, err}\n\t}\n\tf.lock.Lock()\n\tdefer f.lock.Unlock()\n\tf.addIfNotPresent(id, deltas)\n\treturn nil\n}\n\n// addIfNotPresent inserts deltas under id if it does not exist, and assumes the caller\n// already holds the fifo lock.\nfunc (f *DeltaFIFO) addIfNotPresent(id string, deltas Deltas) {\n\tf.populated = true\n\tif _, exists := f.items[id]; exists {\n\t\treturn\n\t}\n\n\tf.queue = append(f.queue, id)\n\tf.items[id] = deltas\n\tf.cond.Broadcast()\n}\n\n// re-listing and watching can deliver the same update multiple times in any\n// order. This will combine the most recent two deltas if they are the same.\nfunc dedupDeltas(deltas Deltas) Deltas {\n\tn := len(deltas)\n\tif n < 2 {\n\t\treturn deltas\n\t}\n\ta := &deltas[n-1]\n\tb := &deltas[n-2]\n\tif out := isDup(a, b); out != nil {\n\t\tdeltas[n-2] = *out\n\t\treturn deltas[:n-1]\n\t}\n\treturn deltas\n}\n\n// If a & b represent the same event, returns the delta that ought to be kept.\n// Otherwise, returns nil.\n// TODO: is there anything other than deletions that need deduping?\nfunc isDup(a, b *Delta) *Delta {\n\tif out := isDeletionDup(a, b); out != nil {\n\t\treturn out\n\t}\n\t// TODO: Detect other duplicate situations? Are there any?\n\treturn nil\n}\n\n// keep the one with the most information if both are deletions.\nfunc isDeletionDup(a, b *Delta) *Delta {\n\tif b.Type != Deleted || a.Type != Deleted {\n\t\treturn nil\n\t}\n\t// Do more sophisticated checks, or is this sufficient?\n\tif _, ok := b.Object.(DeletedFinalStateUnknown); ok {\n\t\treturn a\n\t}\n\treturn b\n}\n\n// queueActionLocked appends to the delta list for the object.\n// Caller must lock first.\nfunc (f *DeltaFIFO) queueActionLocked(actionType DeltaType, obj interface{}) error {\n\treturn f.queueActionInternalLocked(actionType, actionType, obj)\n}\n\n// queueActionInternalLocked appends to the delta list for the object.\n// The actionType is emitted and must honor emitDeltaTypeReplaced.\n// The internalActionType is only used within this function and must\n// ignore emitDeltaTypeReplaced.\n// Caller must lock first.\nfunc (f *DeltaFIFO) queueActionInternalLocked(actionType, internalActionType DeltaType, obj interface{}) error {\n\tid, err := f.KeyOf(obj)\n\tif err != nil {\n\t\treturn KeyError{obj, err}\n\t}\n\n\t// Every object comes through this code path once, so this is a good\n\t// place to call the transform func.\n\t//\n\t// If obj is a DeletedFinalStateUnknown tombstone or the action is a Sync,\n\t// then the object have already gone through the transformer.\n\t//\n\t// If the objects already present in the cache are passed to Replace(),\n\t// the transformer must be idempotent to avoid re-mutating them,\n\t// or coordinate with all readers from the cache to avoid data races.\n\t// Default informers do not pass existing objects to Replace.\n\tif f.transformer != nil {\n\t\t_, isTombstone := obj.(DeletedFinalStateUnknown)\n\t\tif !isTombstone && internalActionType != Sync {\n\t\t\tvar err error\n\t\t\tobj, err = f.transformer(obj)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t}\n\n\toldDeltas := f.items[id]\n\tnewDeltas := append(oldDeltas, Delta{actionType, obj})\n\tnewDeltas = dedupDeltas(newDeltas)\n\n\tif len(newDeltas) > 0 {\n\t\tif _, exists := f.items[id]; !exists {\n\t\t\tf.queue = append(f.queue, id)\n\t\t}\n\t\tf.items[id] = newDeltas\n\t\tf.cond.Broadcast()\n\t} else {\n\t\t// This never happens, because dedupDeltas never returns an empty list\n\t\t// when given a non-empty list (as it is here).\n\t\t// If somehow it happens anyway, deal with it but complain.\n\t\tif oldDeltas == nil {\n\t\t\tklog.Errorf(\"Impossible dedupDeltas for id=%q: oldDeltas=%#+v, obj=%#+v; ignoring\", id, oldDeltas, obj)\n\t\t\treturn nil\n\t\t}\n\t\tklog.Errorf(\"Impossible dedupDeltas for id=%q: oldDeltas=%#+v, obj=%#+v; breaking invariant by storing empty Deltas\", id, oldDeltas, obj)\n\t\tf.items[id] = newDeltas\n\t\treturn fmt.Errorf(\"Impossible dedupDeltas for id=%q: oldDeltas=%#+v, obj=%#+v; broke DeltaFIFO invariant by storing empty Deltas\", id, oldDeltas, obj)\n\t}\n\treturn nil\n}\n\n// List returns a list of all the items; it returns the object\n// from the most recent Delta.\n// You should treat the items returned inside the deltas as immutable.\nfunc (f *DeltaFIFO) List() []interface{} {\n\tf.lock.RLock()\n\tdefer f.lock.RUnlock()\n\treturn f.listLocked()\n}\n\nfunc (f *DeltaFIFO) listLocked() []interface{} {\n\tlist := make([]interface{}, 0, len(f.items))\n\tfor _, item := range f.items {\n\t\tlist = append(list, item.Newest().Object)\n\t}\n\treturn list\n}\n\n// ListKeys returns a list of all the keys of the objects currently\n// in the FIFO.\nfunc (f *DeltaFIFO) ListKeys() []string {\n\tf.lock.RLock()\n\tdefer f.lock.RUnlock()\n\tlist := make([]string, 0, len(f.queue))\n\tfor _, key := range f.queue {\n\t\tlist = append(list, key)\n\t}\n\treturn list\n}\n\n// Get returns the complete list of deltas for the requested item,\n// or sets exists=false.\n// You should treat the items returned inside the deltas as immutable.\nfunc (f *DeltaFIFO) Get(obj interface{}) (item interface{}, exists bool, err error) {\n\tkey, err := f.KeyOf(obj)\n\tif err != nil {\n\t\treturn nil, false, KeyError{obj, err}\n\t}\n\treturn f.GetByKey(key)\n}\n\n// GetByKey returns the complete list of deltas for the requested item,\n// setting exists=false if that list is empty.\n// You should treat the items returned inside the deltas as immutable.\nfunc (f *DeltaFIFO) GetByKey(key string) (item interface{}, exists bool, err error) {\n\tf.lock.RLock()\n\tdefer f.lock.RUnlock()\n\td, exists := f.items[key]\n\tif exists {\n\t\t// Copy item's slice so operations on this slice\n\t\t// won't interfere with the object we return.\n\t\td = copyDeltas(d)\n\t}\n\treturn d, exists, nil\n}\n\n// IsClosed checks if the queue is closed\nfunc (f *DeltaFIFO) IsClosed() bool {\n\tf.lock.Lock()\n\tdefer f.lock.Unlock()\n\treturn f.closed\n}\n\n// Pop blocks until the queue has some items, and then returns one.  If\n// multiple items are ready, they are returned in the order in which they were\n// added/updated. The item is removed from the queue (and the store) before it\n// is returned, so if you don't successfully process it, you need to add it back\n// with AddIfNotPresent().\n// process function is called under lock, so it is safe to update data structures\n// in it that need to be in sync with the queue (e.g. knownKeys). The PopProcessFunc\n// may return an instance of ErrRequeue with a nested error to indicate the current\n// item should be requeued (equivalent to calling AddIfNotPresent under the lock).\n// process should avoid expensive I/O operation so that other queue operations, i.e.\n// Add() and Get(), won't be blocked for too long.\n//\n// Pop returns a 'Deltas', which has a complete list of all the things\n// that happened to the object (deltas) while it was sitting in the queue.\nfunc (f *DeltaFIFO) Pop(process PopProcessFunc) (interface{}, error) {\n\tf.lock.Lock()\n\tdefer f.lock.Unlock()\n\tfor {\n\t\tfor len(f.queue) == 0 {\n\t\t\t// When the queue is empty, invocation of Pop() is blocked until new item is enqueued.\n\t\t\t// When Close() is called, the f.closed is set and the condition is broadcasted.\n\t\t\t// Which causes this loop to continue and return from the Pop().\n\t\t\tif f.closed {\n\t\t\t\treturn nil, ErrFIFOClosed\n\t\t\t}\n\n\t\t\tf.cond.Wait()\n\t\t}\n\t\tisInInitialList := !f.hasSynced_locked()\n\t\tid := f.queue[0]\n\t\tf.queue = f.queue[1:]\n\t\tdepth := len(f.queue)\n\t\tif f.initialPopulationCount > 0 {\n\t\t\tf.initialPopulationCount--\n\t\t}\n\t\titem, ok := f.items[id]\n\t\tif !ok {\n\t\t\t// This should never happen\n\t\t\tklog.Errorf(\"Inconceivable! %q was in f.queue but not f.items; ignoring.\", id)\n\t\t\tcontinue\n\t\t}\n\t\tdelete(f.items, id)\n\t\t// Only log traces if the queue depth is greater than 10 and it takes more than\n\t\t// 100 milliseconds to process one item from the queue.\n\t\t// Queue depth never goes high because processing an item is locking the queue,\n\t\t// and new items can't be added until processing finish.\n\t\t// https://github.com/kubernetes/kubernetes/issues/103789\n\t\tif depth > 10 {\n\t\t\ttrace := utiltrace.New(\"DeltaFIFO Pop Process\",\n\t\t\t\tutiltrace.Field{Key: \"ID\", Value: id},\n\t\t\t\tutiltrace.Field{Key: \"Depth\", Value: depth},\n\t\t\t\tutiltrace.Field{Key: \"Reason\", Value: \"slow event handlers blocking the queue\"})\n\t\t\tdefer trace.LogIfLong(100 * time.Millisecond)\n\t\t}\n\t\terr := process(item, isInInitialList)\n\t\tif e, ok := err.(ErrRequeue); ok {\n\t\t\tf.addIfNotPresent(id, item)\n\t\t\terr = e.Err\n\t\t}\n\t\t// Don't need to copyDeltas here, because we're transferring\n\t\t// ownership to the caller.\n\t\treturn item, err\n\t}\n}\n\n// Replace atomically does two things: (1) it adds the given objects\n// using the Sync or Replace DeltaType and then (2) it does some deletions.\n// In particular: for every pre-existing key K that is not the key of\n// an object in `list` there is the effect of\n// `Delete(DeletedFinalStateUnknown{K, O})` where O is the latest known\n// object of K. The pre-existing keys are those in the union set of the keys in\n// `f.items` and `f.knownObjects` (if not nil). The last known object for key K is\n// the one present in the last delta in `f.items`. If there is no delta for K\n// in `f.items`, it is the object in `f.knownObjects`\nfunc (f *DeltaFIFO) Replace(list []interface{}, _ string) error {\n\tf.lock.Lock()\n\tdefer f.lock.Unlock()\n\tkeys := make(sets.String, len(list))\n\n\t// keep backwards compat for old clients\n\taction := Sync\n\tif f.emitDeltaTypeReplaced {\n\t\taction = Replaced\n\t}\n\n\t// Add Sync/Replaced action for each new item.\n\tfor _, item := range list {\n\t\tkey, err := f.KeyOf(item)\n\t\tif err != nil {\n\t\t\treturn KeyError{item, err}\n\t\t}\n\t\tkeys.Insert(key)\n\t\tif err := f.queueActionInternalLocked(action, Replaced, item); err != nil {\n\t\t\treturn fmt.Errorf(\"couldn't enqueue object: %v\", err)\n\t\t}\n\t}\n\n\t// Do deletion detection against objects in the queue\n\tqueuedDeletions := 0\n\tfor k, oldItem := range f.items {\n\t\tif keys.Has(k) {\n\t\t\tcontinue\n\t\t}\n\t\t// Delete pre-existing items not in the new list.\n\t\t// This could happen if watch deletion event was missed while\n\t\t// disconnected from apiserver.\n\t\tvar deletedObj interface{}\n\t\tif n := oldItem.Newest(); n != nil {\n\t\t\tdeletedObj = n.Object\n\n\t\t\t// if the previous object is a DeletedFinalStateUnknown, we have to extract the actual Object\n\t\t\tif d, ok := deletedObj.(DeletedFinalStateUnknown); ok {\n\t\t\t\tdeletedObj = d.Obj\n\t\t\t}\n\t\t}\n\t\tqueuedDeletions++\n\t\tif err := f.queueActionLocked(Deleted, DeletedFinalStateUnknown{k, deletedObj}); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tif f.knownObjects != nil {\n\t\t// Detect deletions for objects not present in the queue, but present in KnownObjects\n\t\tknownKeys := f.knownObjects.ListKeys()\n\t\tfor _, k := range knownKeys {\n\t\t\tif keys.Has(k) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif len(f.items[k]) > 0 {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tdeletedObj, exists, err := f.knownObjects.GetByKey(k)\n\t\t\tif err != nil {\n\t\t\t\tdeletedObj = nil\n\t\t\t\tklog.Errorf(\"Unexpected error %v during lookup of key %v, placing DeleteFinalStateUnknown marker without object\", err, k)\n\t\t\t} else if !exists {\n\t\t\t\tdeletedObj = nil\n\t\t\t\tklog.Infof(\"Key %v does not exist in known objects store, placing DeleteFinalStateUnknown marker without object\", k)\n\t\t\t}\n\t\t\tqueuedDeletions++\n\t\t\tif err := f.queueActionLocked(Deleted, DeletedFinalStateUnknown{k, deletedObj}); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t}\n\n\tif !f.populated {\n\t\tf.populated = true\n\t\tf.initialPopulationCount = keys.Len() + queuedDeletions\n\t}\n\n\treturn nil\n}\n\n// Resync adds, with a Sync type of Delta, every object listed by\n// `f.knownObjects` whose key is not already queued for processing.\n// If `f.knownObjects` is `nil` then Resync does nothing.\nfunc (f *DeltaFIFO) Resync() error {\n\tf.lock.Lock()\n\tdefer f.lock.Unlock()\n\n\tif f.knownObjects == nil {\n\t\treturn nil\n\t}\n\n\tkeys := f.knownObjects.ListKeys()\n\tfor _, k := range keys {\n\t\tif err := f.syncKeyLocked(k); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (f *DeltaFIFO) syncKeyLocked(key string) error {\n\tobj, exists, err := f.knownObjects.GetByKey(key)\n\tif err != nil {\n\t\tklog.Errorf(\"Unexpected error %v during lookup of key %v, unable to queue object for sync\", err, key)\n\t\treturn nil\n\t} else if !exists {\n\t\tklog.Infof(\"Key %v does not exist in known objects store, unable to queue object for sync\", key)\n\t\treturn nil\n\t}\n\n\t// If we are doing Resync() and there is already an event queued for that object,\n\t// we ignore the Resync for it. This is to avoid the race, in which the resync\n\t// comes with the previous value of object (since queueing an event for the object\n\t// doesn't trigger changing the underlying store <knownObjects>.\n\tid, err := f.KeyOf(obj)\n\tif err != nil {\n\t\treturn KeyError{obj, err}\n\t}\n\tif len(f.items[id]) > 0 {\n\t\treturn nil\n\t}\n\n\tif err := f.queueActionLocked(Sync, obj); err != nil {\n\t\treturn fmt.Errorf(\"couldn't queue object: %v\", err)\n\t}\n\treturn nil\n}\n\n// A KeyListerGetter is anything that knows how to list its keys and look up by key.\ntype KeyListerGetter interface {\n\tKeyLister\n\tKeyGetter\n}\n\n// A KeyLister is anything that knows how to list its keys.\ntype KeyLister interface {\n\tListKeys() []string\n}\n\n// A KeyGetter is anything that knows how to get the value stored under a given key.\ntype KeyGetter interface {\n\t// GetByKey returns the value associated with the key, or sets exists=false.\n\tGetByKey(key string) (value interface{}, exists bool, err error)\n}\n\n// Oldest is a convenience function that returns the oldest delta, or\n// nil if there are no deltas.\nfunc (d Deltas) Oldest() *Delta {\n\tif len(d) > 0 {\n\t\treturn &d[0]\n\t}\n\treturn nil\n}\n\n// Newest is a convenience function that returns the newest delta, or\n// nil if there are no deltas.\nfunc (d Deltas) Newest() *Delta {\n\tif n := len(d); n > 0 {\n\t\treturn &d[n-1]\n\t}\n\treturn nil\n}\n\n// copyDeltas returns a shallow copy of d; that is, it copies the slice but not\n// the objects in the slice. This allows Get/List to return an object that we\n// know won't be clobbered by a subsequent modifications.\nfunc copyDeltas(d Deltas) Deltas {\n\td2 := make(Deltas, len(d))\n\tcopy(d2, d)\n\treturn d2\n}\n\n// DeletedFinalStateUnknown is placed into a DeltaFIFO in the case where an object\n// was deleted but the watch deletion event was missed while disconnected from\n// apiserver. In this case we don't know the final \"resting\" state of the object, so\n// there's a chance the included `Obj` is stale.\ntype DeletedFinalStateUnknown struct {\n\tKey string\n\tObj interface{}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/cache/doc.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package cache is a client-side caching mechanism. It is useful for\n// reducing the number of server calls you'd otherwise need to make.\n// Reflector watches a server and updates a Store. Two stores are provided;\n// one that simply caches objects (for example, to allow a scheduler to\n// list currently available nodes), and one that additionally acts as\n// a FIFO queue (for example, to allow a scheduler to process incoming\n// pods).\npackage cache // import \"k8s.io/client-go/tools/cache\"\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/cache/expiration_cache.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage cache\n\nimport (\n\t\"sync\"\n\t\"time\"\n\n\t\"k8s.io/utils/clock\"\n)\n\n// ExpirationCache implements the store interface\n//  1. All entries are automatically time stamped on insert\n//     a. The key is computed based off the original item/keyFunc\n//     b. The value inserted under that key is the timestamped item\n//  2. Expiration happens lazily on read based on the expiration policy\n//     a. No item can be inserted into the store while we're expiring\n//     *any* item in the cache.\n//  3. Time-stamps are stripped off unexpired entries before return\n//\n// Note that the ExpirationCache is inherently slower than a normal\n// threadSafeStore because it takes a write lock every time it checks if\n// an item has expired.\ntype ExpirationCache struct {\n\tcacheStorage     ThreadSafeStore\n\tkeyFunc          KeyFunc\n\tclock            clock.Clock\n\texpirationPolicy ExpirationPolicy\n\t// expirationLock is a write lock used to guarantee that we don't clobber\n\t// newly inserted objects because of a stale expiration timestamp comparison\n\texpirationLock sync.Mutex\n}\n\n// ExpirationPolicy dictates when an object expires. Currently only abstracted out\n// so unittests don't rely on the system clock.\ntype ExpirationPolicy interface {\n\tIsExpired(obj *TimestampedEntry) bool\n}\n\n// TTLPolicy implements a ttl based ExpirationPolicy.\ntype TTLPolicy struct {\n\t//\t >0: Expire entries with an age > ttl\n\t//\t<=0: Don't expire any entry\n\tTTL time.Duration\n\n\t// Clock used to calculate ttl expiration\n\tClock clock.Clock\n}\n\n// IsExpired returns true if the given object is older than the ttl, or it can't\n// determine its age.\nfunc (p *TTLPolicy) IsExpired(obj *TimestampedEntry) bool {\n\treturn p.TTL > 0 && p.Clock.Since(obj.Timestamp) > p.TTL\n}\n\n// TimestampedEntry is the only type allowed in a ExpirationCache.\n// Keep in mind that it is not safe to share timestamps between computers.\n// Behavior may be inconsistent if you get a timestamp from the API Server and\n// use it on the client machine as part of your ExpirationCache.\ntype TimestampedEntry struct {\n\tObj       interface{}\n\tTimestamp time.Time\n\tkey       string\n}\n\n// getTimestampedEntry returns the TimestampedEntry stored under the given key.\nfunc (c *ExpirationCache) getTimestampedEntry(key string) (*TimestampedEntry, bool) {\n\titem, _ := c.cacheStorage.Get(key)\n\tif tsEntry, ok := item.(*TimestampedEntry); ok {\n\t\treturn tsEntry, true\n\t}\n\treturn nil, false\n}\n\n// getOrExpire retrieves the object from the TimestampedEntry if and only if it hasn't\n// already expired. It holds a write lock across deletion.\nfunc (c *ExpirationCache) getOrExpire(key string) (interface{}, bool) {\n\t// Prevent all inserts from the time we deem an item as \"expired\" to when we\n\t// delete it, so an un-expired item doesn't sneak in under the same key, just\n\t// before the Delete.\n\tc.expirationLock.Lock()\n\tdefer c.expirationLock.Unlock()\n\ttimestampedItem, exists := c.getTimestampedEntry(key)\n\tif !exists {\n\t\treturn nil, false\n\t}\n\tif c.expirationPolicy.IsExpired(timestampedItem) {\n\t\tc.cacheStorage.Delete(key)\n\t\treturn nil, false\n\t}\n\treturn timestampedItem.Obj, true\n}\n\n// GetByKey returns the item stored under the key, or sets exists=false.\nfunc (c *ExpirationCache) GetByKey(key string) (interface{}, bool, error) {\n\tobj, exists := c.getOrExpire(key)\n\treturn obj, exists, nil\n}\n\n// Get returns unexpired items. It purges the cache of expired items in the\n// process.\nfunc (c *ExpirationCache) Get(obj interface{}) (interface{}, bool, error) {\n\tkey, err := c.keyFunc(obj)\n\tif err != nil {\n\t\treturn nil, false, KeyError{obj, err}\n\t}\n\tobj, exists := c.getOrExpire(key)\n\treturn obj, exists, nil\n}\n\n// List retrieves a list of unexpired items. It purges the cache of expired\n// items in the process.\nfunc (c *ExpirationCache) List() []interface{} {\n\titems := c.cacheStorage.List()\n\n\tlist := make([]interface{}, 0, len(items))\n\tfor _, item := range items {\n\t\tkey := item.(*TimestampedEntry).key\n\t\tif obj, exists := c.getOrExpire(key); exists {\n\t\t\tlist = append(list, obj)\n\t\t}\n\t}\n\treturn list\n}\n\n// ListKeys returns a list of all keys in the expiration cache.\nfunc (c *ExpirationCache) ListKeys() []string {\n\treturn c.cacheStorage.ListKeys()\n}\n\n// Add timestamps an item and inserts it into the cache, overwriting entries\n// that might exist under the same key.\nfunc (c *ExpirationCache) Add(obj interface{}) error {\n\tkey, err := c.keyFunc(obj)\n\tif err != nil {\n\t\treturn KeyError{obj, err}\n\t}\n\tc.expirationLock.Lock()\n\tdefer c.expirationLock.Unlock()\n\n\tc.cacheStorage.Add(key, &TimestampedEntry{obj, c.clock.Now(), key})\n\treturn nil\n}\n\n// Update has not been implemented yet for lack of a use case, so this method\n// simply calls `Add`. This effectively refreshes the timestamp.\nfunc (c *ExpirationCache) Update(obj interface{}) error {\n\treturn c.Add(obj)\n}\n\n// Delete removes an item from the cache.\nfunc (c *ExpirationCache) Delete(obj interface{}) error {\n\tkey, err := c.keyFunc(obj)\n\tif err != nil {\n\t\treturn KeyError{obj, err}\n\t}\n\tc.expirationLock.Lock()\n\tdefer c.expirationLock.Unlock()\n\tc.cacheStorage.Delete(key)\n\treturn nil\n}\n\n// Replace will convert all items in the given list to TimestampedEntries\n// before attempting the replace operation. The replace operation will\n// delete the contents of the ExpirationCache `c`.\nfunc (c *ExpirationCache) Replace(list []interface{}, resourceVersion string) error {\n\titems := make(map[string]interface{}, len(list))\n\tts := c.clock.Now()\n\tfor _, item := range list {\n\t\tkey, err := c.keyFunc(item)\n\t\tif err != nil {\n\t\t\treturn KeyError{item, err}\n\t\t}\n\t\titems[key] = &TimestampedEntry{item, ts, key}\n\t}\n\tc.expirationLock.Lock()\n\tdefer c.expirationLock.Unlock()\n\tc.cacheStorage.Replace(items, resourceVersion)\n\treturn nil\n}\n\n// Resync is a no-op for one of these\nfunc (c *ExpirationCache) Resync() error {\n\treturn nil\n}\n\n// NewTTLStore creates and returns a ExpirationCache with a TTLPolicy\nfunc NewTTLStore(keyFunc KeyFunc, ttl time.Duration) Store {\n\treturn NewExpirationStore(keyFunc, &TTLPolicy{ttl, clock.RealClock{}})\n}\n\n// NewExpirationStore creates and returns a ExpirationCache for a given policy\nfunc NewExpirationStore(keyFunc KeyFunc, expirationPolicy ExpirationPolicy) Store {\n\treturn &ExpirationCache{\n\t\tcacheStorage:     NewThreadSafeStore(Indexers{}, Indices{}),\n\t\tkeyFunc:          keyFunc,\n\t\tclock:            clock.RealClock{},\n\t\texpirationPolicy: expirationPolicy,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/cache/expiration_cache_fakes.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage cache\n\nimport (\n\t\"k8s.io/apimachinery/pkg/util/sets\"\n\t\"k8s.io/utils/clock\"\n)\n\ntype fakeThreadSafeMap struct {\n\tThreadSafeStore\n\tdeletedKeys chan<- string\n}\n\nfunc (c *fakeThreadSafeMap) Delete(key string) {\n\tif c.deletedKeys != nil {\n\t\tc.ThreadSafeStore.Delete(key)\n\t\tc.deletedKeys <- key\n\t}\n}\n\n// FakeExpirationPolicy keeps the list for keys which never expires.\ntype FakeExpirationPolicy struct {\n\tNeverExpire     sets.String\n\tRetrieveKeyFunc KeyFunc\n}\n\n// IsExpired used to check if object is expired.\nfunc (p *FakeExpirationPolicy) IsExpired(obj *TimestampedEntry) bool {\n\tkey, _ := p.RetrieveKeyFunc(obj)\n\treturn !p.NeverExpire.Has(key)\n}\n\n// NewFakeExpirationStore creates a new instance for the ExpirationCache.\nfunc NewFakeExpirationStore(keyFunc KeyFunc, deletedKeys chan<- string, expirationPolicy ExpirationPolicy, cacheClock clock.Clock) Store {\n\tcacheStorage := NewThreadSafeStore(Indexers{}, Indices{})\n\treturn &ExpirationCache{\n\t\tcacheStorage:     &fakeThreadSafeMap{cacheStorage, deletedKeys},\n\t\tkeyFunc:          keyFunc,\n\t\tclock:            cacheClock,\n\t\texpirationPolicy: expirationPolicy,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/cache/fake_custom_store.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage cache\n\n// FakeCustomStore lets you define custom functions for store operations.\ntype FakeCustomStore struct {\n\tAddFunc      func(obj interface{}) error\n\tUpdateFunc   func(obj interface{}) error\n\tDeleteFunc   func(obj interface{}) error\n\tListFunc     func() []interface{}\n\tListKeysFunc func() []string\n\tGetFunc      func(obj interface{}) (item interface{}, exists bool, err error)\n\tGetByKeyFunc func(key string) (item interface{}, exists bool, err error)\n\tReplaceFunc  func(list []interface{}, resourceVersion string) error\n\tResyncFunc   func() error\n}\n\n// Add calls the custom Add function if defined\nfunc (f *FakeCustomStore) Add(obj interface{}) error {\n\tif f.AddFunc != nil {\n\t\treturn f.AddFunc(obj)\n\t}\n\treturn nil\n}\n\n// Update calls the custom Update function if defined\nfunc (f *FakeCustomStore) Update(obj interface{}) error {\n\tif f.UpdateFunc != nil {\n\t\treturn f.UpdateFunc(obj)\n\t}\n\treturn nil\n}\n\n// Delete calls the custom Delete function if defined\nfunc (f *FakeCustomStore) Delete(obj interface{}) error {\n\tif f.DeleteFunc != nil {\n\t\treturn f.DeleteFunc(obj)\n\t}\n\treturn nil\n}\n\n// List calls the custom List function if defined\nfunc (f *FakeCustomStore) List() []interface{} {\n\tif f.ListFunc != nil {\n\t\treturn f.ListFunc()\n\t}\n\treturn nil\n}\n\n// ListKeys calls the custom ListKeys function if defined\nfunc (f *FakeCustomStore) ListKeys() []string {\n\tif f.ListKeysFunc != nil {\n\t\treturn f.ListKeysFunc()\n\t}\n\treturn nil\n}\n\n// Get calls the custom Get function if defined\nfunc (f *FakeCustomStore) Get(obj interface{}) (item interface{}, exists bool, err error) {\n\tif f.GetFunc != nil {\n\t\treturn f.GetFunc(obj)\n\t}\n\treturn nil, false, nil\n}\n\n// GetByKey calls the custom GetByKey function if defined\nfunc (f *FakeCustomStore) GetByKey(key string) (item interface{}, exists bool, err error) {\n\tif f.GetByKeyFunc != nil {\n\t\treturn f.GetByKeyFunc(key)\n\t}\n\treturn nil, false, nil\n}\n\n// Replace calls the custom Replace function if defined\nfunc (f *FakeCustomStore) Replace(list []interface{}, resourceVersion string) error {\n\tif f.ReplaceFunc != nil {\n\t\treturn f.ReplaceFunc(list, resourceVersion)\n\t}\n\treturn nil\n}\n\n// Resync calls the custom Resync function if defined\nfunc (f *FakeCustomStore) Resync() error {\n\tif f.ResyncFunc != nil {\n\t\treturn f.ResyncFunc()\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/cache/fifo.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage cache\n\nimport (\n\t\"errors\"\n\t\"sync\"\n\n\t\"k8s.io/apimachinery/pkg/util/sets\"\n)\n\n// PopProcessFunc is passed to Pop() method of Queue interface.\n// It is supposed to process the accumulator popped from the queue.\ntype PopProcessFunc func(obj interface{}, isInInitialList bool) error\n\n// ErrRequeue may be returned by a PopProcessFunc to safely requeue\n// the current item. The value of Err will be returned from Pop.\ntype ErrRequeue struct {\n\t// Err is returned by the Pop function\n\tErr error\n}\n\n// ErrFIFOClosed used when FIFO is closed\nvar ErrFIFOClosed = errors.New(\"DeltaFIFO: manipulating with closed queue\")\n\nfunc (e ErrRequeue) Error() string {\n\tif e.Err == nil {\n\t\treturn \"the popped item should be requeued without returning an error\"\n\t}\n\treturn e.Err.Error()\n}\n\n// Queue extends Store with a collection of Store keys to \"process\".\n// Every Add, Update, or Delete may put the object's key in that collection.\n// A Queue has a way to derive the corresponding key given an accumulator.\n// A Queue can be accessed concurrently from multiple goroutines.\n// A Queue can be \"closed\", after which Pop operations return an error.\ntype Queue interface {\n\tStore\n\n\t// Pop blocks until there is at least one key to process or the\n\t// Queue is closed.  In the latter case Pop returns with an error.\n\t// In the former case Pop atomically picks one key to process,\n\t// removes that (key, accumulator) association from the Store, and\n\t// processes the accumulator.  Pop returns the accumulator that\n\t// was processed and the result of processing.  The PopProcessFunc\n\t// may return an ErrRequeue{inner} and in this case Pop will (a)\n\t// return that (key, accumulator) association to the Queue as part\n\t// of the atomic processing and (b) return the inner error from\n\t// Pop.\n\tPop(PopProcessFunc) (interface{}, error)\n\n\t// AddIfNotPresent puts the given accumulator into the Queue (in\n\t// association with the accumulator's key) if and only if that key\n\t// is not already associated with a non-empty accumulator.\n\tAddIfNotPresent(interface{}) error\n\n\t// HasSynced returns true if the first batch of keys have all been\n\t// popped.  The first batch of keys are those of the first Replace\n\t// operation if that happened before any Add, AddIfNotPresent,\n\t// Update, or Delete; otherwise the first batch is empty.\n\tHasSynced() bool\n\n\t// Close the queue\n\tClose()\n}\n\n// Pop is helper function for popping from Queue.\n// WARNING: Do NOT use this function in non-test code to avoid races\n// unless you really really really really know what you are doing.\n//\n// NOTE: This function is deprecated and may be removed in the future without\n// additional warning.\nfunc Pop(queue Queue) interface{} {\n\tvar result interface{}\n\tqueue.Pop(func(obj interface{}, isInInitialList bool) error {\n\t\tresult = obj\n\t\treturn nil\n\t})\n\treturn result\n}\n\n// FIFO is a Queue in which (a) each accumulator is simply the most\n// recently provided object and (b) the collection of keys to process\n// is a FIFO.  The accumulators all start out empty, and deleting an\n// object from its accumulator empties the accumulator.  The Resync\n// operation is a no-op.\n//\n// Thus: if multiple adds/updates of a single object happen while that\n// object's key is in the queue before it has been processed then it\n// will only be processed once, and when it is processed the most\n// recent version will be processed. This can't be done with a channel\n//\n// FIFO solves this use case:\n//   - You want to process every object (exactly) once.\n//   - You want to process the most recent version of the object when you process it.\n//   - You do not want to process deleted objects, they should be removed from the queue.\n//   - You do not want to periodically reprocess objects.\n//\n// Compare with DeltaFIFO for other use cases.\ntype FIFO struct {\n\tlock sync.RWMutex\n\tcond sync.Cond\n\t// We depend on the property that every key in `items` is also in `queue`\n\titems map[string]interface{}\n\tqueue []string\n\n\t// populated is true if the first batch of items inserted by Replace() has been populated\n\t// or Delete/Add/Update was called first.\n\tpopulated bool\n\t// initialPopulationCount is the number of items inserted by the first call of Replace()\n\tinitialPopulationCount int\n\n\t// keyFunc is used to make the key used for queued item insertion and retrieval, and\n\t// should be deterministic.\n\tkeyFunc KeyFunc\n\n\t// Indication the queue is closed.\n\t// Used to indicate a queue is closed so a control loop can exit when a queue is empty.\n\t// Currently, not used to gate any of CRUD operations.\n\tclosed bool\n}\n\nvar (\n\t_ = Queue(&FIFO{}) // FIFO is a Queue\n)\n\n// Close the queue.\nfunc (f *FIFO) Close() {\n\tf.lock.Lock()\n\tdefer f.lock.Unlock()\n\tf.closed = true\n\tf.cond.Broadcast()\n}\n\n// HasSynced returns true if an Add/Update/Delete/AddIfNotPresent are called first,\n// or the first batch of items inserted by Replace() has been popped.\nfunc (f *FIFO) HasSynced() bool {\n\tf.lock.Lock()\n\tdefer f.lock.Unlock()\n\treturn f.hasSynced_locked()\n}\n\nfunc (f *FIFO) hasSynced_locked() bool {\n\treturn f.populated && f.initialPopulationCount == 0\n}\n\n// Add inserts an item, and puts it in the queue. The item is only enqueued\n// if it doesn't already exist in the set.\nfunc (f *FIFO) Add(obj interface{}) error {\n\tid, err := f.keyFunc(obj)\n\tif err != nil {\n\t\treturn KeyError{obj, err}\n\t}\n\tf.lock.Lock()\n\tdefer f.lock.Unlock()\n\tf.populated = true\n\tif _, exists := f.items[id]; !exists {\n\t\tf.queue = append(f.queue, id)\n\t}\n\tf.items[id] = obj\n\tf.cond.Broadcast()\n\treturn nil\n}\n\n// AddIfNotPresent inserts an item, and puts it in the queue. If the item is already\n// present in the set, it is neither enqueued nor added to the set.\n//\n// This is useful in a single producer/consumer scenario so that the consumer can\n// safely retry items without contending with the producer and potentially enqueueing\n// stale items.\nfunc (f *FIFO) AddIfNotPresent(obj interface{}) error {\n\tid, err := f.keyFunc(obj)\n\tif err != nil {\n\t\treturn KeyError{obj, err}\n\t}\n\tf.lock.Lock()\n\tdefer f.lock.Unlock()\n\tf.addIfNotPresent(id, obj)\n\treturn nil\n}\n\n// addIfNotPresent assumes the fifo lock is already held and adds the provided\n// item to the queue under id if it does not already exist.\nfunc (f *FIFO) addIfNotPresent(id string, obj interface{}) {\n\tf.populated = true\n\tif _, exists := f.items[id]; exists {\n\t\treturn\n\t}\n\n\tf.queue = append(f.queue, id)\n\tf.items[id] = obj\n\tf.cond.Broadcast()\n}\n\n// Update is the same as Add in this implementation.\nfunc (f *FIFO) Update(obj interface{}) error {\n\treturn f.Add(obj)\n}\n\n// Delete removes an item. It doesn't add it to the queue, because\n// this implementation assumes the consumer only cares about the objects,\n// not the order in which they were created/added.\nfunc (f *FIFO) Delete(obj interface{}) error {\n\tid, err := f.keyFunc(obj)\n\tif err != nil {\n\t\treturn KeyError{obj, err}\n\t}\n\tf.lock.Lock()\n\tdefer f.lock.Unlock()\n\tf.populated = true\n\tdelete(f.items, id)\n\treturn err\n}\n\n// List returns a list of all the items.\nfunc (f *FIFO) List() []interface{} {\n\tf.lock.RLock()\n\tdefer f.lock.RUnlock()\n\tlist := make([]interface{}, 0, len(f.items))\n\tfor _, item := range f.items {\n\t\tlist = append(list, item)\n\t}\n\treturn list\n}\n\n// ListKeys returns a list of all the keys of the objects currently\n// in the FIFO.\nfunc (f *FIFO) ListKeys() []string {\n\tf.lock.RLock()\n\tdefer f.lock.RUnlock()\n\tlist := make([]string, 0, len(f.items))\n\tfor key := range f.items {\n\t\tlist = append(list, key)\n\t}\n\treturn list\n}\n\n// Get returns the requested item, or sets exists=false.\nfunc (f *FIFO) Get(obj interface{}) (item interface{}, exists bool, err error) {\n\tkey, err := f.keyFunc(obj)\n\tif err != nil {\n\t\treturn nil, false, KeyError{obj, err}\n\t}\n\treturn f.GetByKey(key)\n}\n\n// GetByKey returns the requested item, or sets exists=false.\nfunc (f *FIFO) GetByKey(key string) (item interface{}, exists bool, err error) {\n\tf.lock.RLock()\n\tdefer f.lock.RUnlock()\n\titem, exists = f.items[key]\n\treturn item, exists, nil\n}\n\n// IsClosed checks if the queue is closed\nfunc (f *FIFO) IsClosed() bool {\n\tf.lock.Lock()\n\tdefer f.lock.Unlock()\n\treturn f.closed\n}\n\n// Pop waits until an item is ready and processes it. If multiple items are\n// ready, they are returned in the order in which they were added/updated.\n// The item is removed from the queue (and the store) before it is processed,\n// so if you don't successfully process it, it should be added back with\n// AddIfNotPresent(). process function is called under lock, so it is safe\n// update data structures in it that need to be in sync with the queue.\nfunc (f *FIFO) Pop(process PopProcessFunc) (interface{}, error) {\n\tf.lock.Lock()\n\tdefer f.lock.Unlock()\n\tfor {\n\t\tfor len(f.queue) == 0 {\n\t\t\t// When the queue is empty, invocation of Pop() is blocked until new item is enqueued.\n\t\t\t// When Close() is called, the f.closed is set and the condition is broadcasted.\n\t\t\t// Which causes this loop to continue and return from the Pop().\n\t\t\tif f.closed {\n\t\t\t\treturn nil, ErrFIFOClosed\n\t\t\t}\n\n\t\t\tf.cond.Wait()\n\t\t}\n\t\tisInInitialList := !f.hasSynced_locked()\n\t\tid := f.queue[0]\n\t\tf.queue = f.queue[1:]\n\t\tif f.initialPopulationCount > 0 {\n\t\t\tf.initialPopulationCount--\n\t\t}\n\t\titem, ok := f.items[id]\n\t\tif !ok {\n\t\t\t// Item may have been deleted subsequently.\n\t\t\tcontinue\n\t\t}\n\t\tdelete(f.items, id)\n\t\terr := process(item, isInInitialList)\n\t\tif e, ok := err.(ErrRequeue); ok {\n\t\t\tf.addIfNotPresent(id, item)\n\t\t\terr = e.Err\n\t\t}\n\t\treturn item, err\n\t}\n}\n\n// Replace will delete the contents of 'f', using instead the given map.\n// 'f' takes ownership of the map, you should not reference the map again\n// after calling this function. f's queue is reset, too; upon return, it\n// will contain the items in the map, in no particular order.\nfunc (f *FIFO) Replace(list []interface{}, resourceVersion string) error {\n\titems := make(map[string]interface{}, len(list))\n\tfor _, item := range list {\n\t\tkey, err := f.keyFunc(item)\n\t\tif err != nil {\n\t\t\treturn KeyError{item, err}\n\t\t}\n\t\titems[key] = item\n\t}\n\n\tf.lock.Lock()\n\tdefer f.lock.Unlock()\n\n\tif !f.populated {\n\t\tf.populated = true\n\t\tf.initialPopulationCount = len(items)\n\t}\n\n\tf.items = items\n\tf.queue = f.queue[:0]\n\tfor id := range items {\n\t\tf.queue = append(f.queue, id)\n\t}\n\tif len(f.queue) > 0 {\n\t\tf.cond.Broadcast()\n\t}\n\treturn nil\n}\n\n// Resync will ensure that every object in the Store has its key in the queue.\n// This should be a no-op, because that property is maintained by all operations.\nfunc (f *FIFO) Resync() error {\n\tf.lock.Lock()\n\tdefer f.lock.Unlock()\n\n\tinQueue := sets.NewString()\n\tfor _, id := range f.queue {\n\t\tinQueue.Insert(id)\n\t}\n\tfor id := range f.items {\n\t\tif !inQueue.Has(id) {\n\t\t\tf.queue = append(f.queue, id)\n\t\t}\n\t}\n\tif len(f.queue) > 0 {\n\t\tf.cond.Broadcast()\n\t}\n\treturn nil\n}\n\n// NewFIFO returns a Store which can be used to queue up items to\n// process.\nfunc NewFIFO(keyFunc KeyFunc) *FIFO {\n\tf := &FIFO{\n\t\titems:   map[string]interface{}{},\n\t\tqueue:   []string{},\n\t\tkeyFunc: keyFunc,\n\t}\n\tf.cond.L = &f.lock\n\treturn f\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/cache/heap.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// This file implements a heap data structure.\n\npackage cache\n\nimport (\n\t\"container/heap\"\n\t\"fmt\"\n\t\"sync\"\n)\n\nconst (\n\tclosedMsg = \"heap is closed\"\n)\n\n// LessFunc is used to compare two objects in the heap.\ntype LessFunc func(interface{}, interface{}) bool\n\ntype heapItem struct {\n\tobj   interface{} // The object which is stored in the heap.\n\tindex int         // The index of the object's key in the Heap.queue.\n}\n\ntype itemKeyValue struct {\n\tkey string\n\tobj interface{}\n}\n\n// heapData is an internal struct that implements the standard heap interface\n// and keeps the data stored in the heap.\ntype heapData struct {\n\t// items is a map from key of the objects to the objects and their index.\n\t// We depend on the property that items in the map are in the queue and vice versa.\n\titems map[string]*heapItem\n\t// queue implements a heap data structure and keeps the order of elements\n\t// according to the heap invariant. The queue keeps the keys of objects stored\n\t// in \"items\".\n\tqueue []string\n\n\t// keyFunc is used to make the key used for queued item insertion and retrieval, and\n\t// should be deterministic.\n\tkeyFunc KeyFunc\n\t// lessFunc is used to compare two objects in the heap.\n\tlessFunc LessFunc\n}\n\nvar (\n\t_ = heap.Interface(&heapData{}) // heapData is a standard heap\n)\n\n// Less compares two objects and returns true if the first one should go\n// in front of the second one in the heap.\nfunc (h *heapData) Less(i, j int) bool {\n\tif i > len(h.queue) || j > len(h.queue) {\n\t\treturn false\n\t}\n\titemi, ok := h.items[h.queue[i]]\n\tif !ok {\n\t\treturn false\n\t}\n\titemj, ok := h.items[h.queue[j]]\n\tif !ok {\n\t\treturn false\n\t}\n\treturn h.lessFunc(itemi.obj, itemj.obj)\n}\n\n// Len returns the number of items in the Heap.\nfunc (h *heapData) Len() int { return len(h.queue) }\n\n// Swap implements swapping of two elements in the heap. This is a part of standard\n// heap interface and should never be called directly.\nfunc (h *heapData) Swap(i, j int) {\n\th.queue[i], h.queue[j] = h.queue[j], h.queue[i]\n\titem := h.items[h.queue[i]]\n\titem.index = i\n\titem = h.items[h.queue[j]]\n\titem.index = j\n}\n\n// Push is supposed to be called by heap.Push only.\nfunc (h *heapData) Push(kv interface{}) {\n\tkeyValue := kv.(*itemKeyValue)\n\tn := len(h.queue)\n\th.items[keyValue.key] = &heapItem{keyValue.obj, n}\n\th.queue = append(h.queue, keyValue.key)\n}\n\n// Pop is supposed to be called by heap.Pop only.\nfunc (h *heapData) Pop() interface{} {\n\tkey := h.queue[len(h.queue)-1]\n\th.queue = h.queue[0 : len(h.queue)-1]\n\titem, ok := h.items[key]\n\tif !ok {\n\t\t// This is an error\n\t\treturn nil\n\t}\n\tdelete(h.items, key)\n\treturn item.obj\n}\n\n// Heap is a thread-safe producer/consumer queue that implements a heap data structure.\n// It can be used to implement priority queues and similar data structures.\ntype Heap struct {\n\tlock sync.RWMutex\n\tcond sync.Cond\n\n\t// data stores objects and has a queue that keeps their ordering according\n\t// to the heap invariant.\n\tdata *heapData\n\n\t// closed indicates that the queue is closed.\n\t// It is mainly used to let Pop() exit its control loop while waiting for an item.\n\tclosed bool\n}\n\n// Close the Heap and signals condition variables that may be waiting to pop\n// items from the heap.\nfunc (h *Heap) Close() {\n\th.lock.Lock()\n\tdefer h.lock.Unlock()\n\th.closed = true\n\th.cond.Broadcast()\n}\n\n// Add inserts an item, and puts it in the queue. The item is updated if it\n// already exists.\nfunc (h *Heap) Add(obj interface{}) error {\n\tkey, err := h.data.keyFunc(obj)\n\tif err != nil {\n\t\treturn KeyError{obj, err}\n\t}\n\th.lock.Lock()\n\tdefer h.lock.Unlock()\n\tif h.closed {\n\t\treturn fmt.Errorf(closedMsg)\n\t}\n\tif _, exists := h.data.items[key]; exists {\n\t\th.data.items[key].obj = obj\n\t\theap.Fix(h.data, h.data.items[key].index)\n\t} else {\n\t\th.addIfNotPresentLocked(key, obj)\n\t}\n\th.cond.Broadcast()\n\treturn nil\n}\n\n// BulkAdd adds all the items in the list to the queue and then signals the condition\n// variable. It is useful when the caller would like to add all of the items\n// to the queue before consumer starts processing them.\nfunc (h *Heap) BulkAdd(list []interface{}) error {\n\th.lock.Lock()\n\tdefer h.lock.Unlock()\n\tif h.closed {\n\t\treturn fmt.Errorf(closedMsg)\n\t}\n\tfor _, obj := range list {\n\t\tkey, err := h.data.keyFunc(obj)\n\t\tif err != nil {\n\t\t\treturn KeyError{obj, err}\n\t\t}\n\t\tif _, exists := h.data.items[key]; exists {\n\t\t\th.data.items[key].obj = obj\n\t\t\theap.Fix(h.data, h.data.items[key].index)\n\t\t} else {\n\t\t\th.addIfNotPresentLocked(key, obj)\n\t\t}\n\t}\n\th.cond.Broadcast()\n\treturn nil\n}\n\n// AddIfNotPresent inserts an item, and puts it in the queue. If an item with\n// the key is present in the map, no changes is made to the item.\n//\n// This is useful in a single producer/consumer scenario so that the consumer can\n// safely retry items without contending with the producer and potentially enqueueing\n// stale items.\nfunc (h *Heap) AddIfNotPresent(obj interface{}) error {\n\tid, err := h.data.keyFunc(obj)\n\tif err != nil {\n\t\treturn KeyError{obj, err}\n\t}\n\th.lock.Lock()\n\tdefer h.lock.Unlock()\n\tif h.closed {\n\t\treturn fmt.Errorf(closedMsg)\n\t}\n\th.addIfNotPresentLocked(id, obj)\n\th.cond.Broadcast()\n\treturn nil\n}\n\n// addIfNotPresentLocked assumes the lock is already held and adds the provided\n// item to the queue if it does not already exist.\nfunc (h *Heap) addIfNotPresentLocked(key string, obj interface{}) {\n\tif _, exists := h.data.items[key]; exists {\n\t\treturn\n\t}\n\theap.Push(h.data, &itemKeyValue{key, obj})\n}\n\n// Update is the same as Add in this implementation. When the item does not\n// exist, it is added.\nfunc (h *Heap) Update(obj interface{}) error {\n\treturn h.Add(obj)\n}\n\n// Delete removes an item.\nfunc (h *Heap) Delete(obj interface{}) error {\n\tkey, err := h.data.keyFunc(obj)\n\tif err != nil {\n\t\treturn KeyError{obj, err}\n\t}\n\th.lock.Lock()\n\tdefer h.lock.Unlock()\n\tif item, ok := h.data.items[key]; ok {\n\t\theap.Remove(h.data, item.index)\n\t\treturn nil\n\t}\n\treturn fmt.Errorf(\"object not found\")\n}\n\n// Pop waits until an item is ready. If multiple items are\n// ready, they are returned in the order given by Heap.data.lessFunc.\nfunc (h *Heap) Pop() (interface{}, error) {\n\th.lock.Lock()\n\tdefer h.lock.Unlock()\n\tfor len(h.data.queue) == 0 {\n\t\t// When the queue is empty, invocation of Pop() is blocked until new item is enqueued.\n\t\t// When Close() is called, the h.closed is set and the condition is broadcast,\n\t\t// which causes this loop to continue and return from the Pop().\n\t\tif h.closed {\n\t\t\treturn nil, fmt.Errorf(\"heap is closed\")\n\t\t}\n\t\th.cond.Wait()\n\t}\n\tobj := heap.Pop(h.data)\n\tif obj == nil {\n\t\treturn nil, fmt.Errorf(\"object was removed from heap data\")\n\t}\n\n\treturn obj, nil\n}\n\n// List returns a list of all the items.\nfunc (h *Heap) List() []interface{} {\n\th.lock.RLock()\n\tdefer h.lock.RUnlock()\n\tlist := make([]interface{}, 0, len(h.data.items))\n\tfor _, item := range h.data.items {\n\t\tlist = append(list, item.obj)\n\t}\n\treturn list\n}\n\n// ListKeys returns a list of all the keys of the objects currently in the Heap.\nfunc (h *Heap) ListKeys() []string {\n\th.lock.RLock()\n\tdefer h.lock.RUnlock()\n\tlist := make([]string, 0, len(h.data.items))\n\tfor key := range h.data.items {\n\t\tlist = append(list, key)\n\t}\n\treturn list\n}\n\n// Get returns the requested item, or sets exists=false.\nfunc (h *Heap) Get(obj interface{}) (interface{}, bool, error) {\n\tkey, err := h.data.keyFunc(obj)\n\tif err != nil {\n\t\treturn nil, false, KeyError{obj, err}\n\t}\n\treturn h.GetByKey(key)\n}\n\n// GetByKey returns the requested item, or sets exists=false.\nfunc (h *Heap) GetByKey(key string) (interface{}, bool, error) {\n\th.lock.RLock()\n\tdefer h.lock.RUnlock()\n\titem, exists := h.data.items[key]\n\tif !exists {\n\t\treturn nil, false, nil\n\t}\n\treturn item.obj, true, nil\n}\n\n// IsClosed returns true if the queue is closed.\nfunc (h *Heap) IsClosed() bool {\n\th.lock.RLock()\n\tdefer h.lock.RUnlock()\n\treturn h.closed\n}\n\n// NewHeap returns a Heap which can be used to queue up items to process.\nfunc NewHeap(keyFn KeyFunc, lessFn LessFunc) *Heap {\n\th := &Heap{\n\t\tdata: &heapData{\n\t\t\titems:    map[string]*heapItem{},\n\t\t\tqueue:    []string{},\n\t\t\tkeyFunc:  keyFn,\n\t\t\tlessFunc: lessFn,\n\t\t},\n\t}\n\th.cond.L = &h.lock\n\treturn h\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/cache/index.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage cache\n\nimport (\n\t\"fmt\"\n\n\t\"k8s.io/apimachinery/pkg/api/meta\"\n\t\"k8s.io/apimachinery/pkg/util/sets\"\n)\n\n// Indexer extends Store with multiple indices and restricts each\n// accumulator to simply hold the current object (and be empty after\n// Delete).\n//\n// There are three kinds of strings here:\n//  1. a storage key, as defined in the Store interface,\n//  2. a name of an index, and\n//  3. an \"indexed value\", which is produced by an IndexFunc and\n//     can be a field value or any other string computed from the object.\ntype Indexer interface {\n\tStore\n\t// Index returns the stored objects whose set of indexed values\n\t// intersects the set of indexed values of the given object, for\n\t// the named index\n\tIndex(indexName string, obj interface{}) ([]interface{}, error)\n\t// IndexKeys returns the storage keys of the stored objects whose\n\t// set of indexed values for the named index includes the given\n\t// indexed value\n\tIndexKeys(indexName, indexedValue string) ([]string, error)\n\t// ListIndexFuncValues returns all the indexed values of the given index\n\tListIndexFuncValues(indexName string) []string\n\t// ByIndex returns the stored objects whose set of indexed values\n\t// for the named index includes the given indexed value\n\tByIndex(indexName, indexedValue string) ([]interface{}, error)\n\t// GetIndexers return the indexers\n\tGetIndexers() Indexers\n\n\t// AddIndexers adds more indexers to this store. This supports adding indexes after the store already has items.\n\tAddIndexers(newIndexers Indexers) error\n}\n\n// IndexFunc knows how to compute the set of indexed values for an object.\ntype IndexFunc func(obj interface{}) ([]string, error)\n\n// IndexFuncToKeyFuncAdapter adapts an indexFunc to a keyFunc.  This is only useful if your index function returns\n// unique values for every object.  This conversion can create errors when more than one key is found.  You\n// should prefer to make proper key and index functions.\nfunc IndexFuncToKeyFuncAdapter(indexFunc IndexFunc) KeyFunc {\n\treturn func(obj interface{}) (string, error) {\n\t\tindexKeys, err := indexFunc(obj)\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\tif len(indexKeys) > 1 {\n\t\t\treturn \"\", fmt.Errorf(\"too many keys: %v\", indexKeys)\n\t\t}\n\t\tif len(indexKeys) == 0 {\n\t\t\treturn \"\", fmt.Errorf(\"unexpected empty indexKeys\")\n\t\t}\n\t\treturn indexKeys[0], nil\n\t}\n}\n\nconst (\n\t// NamespaceIndex is the lookup name for the most common index function, which is to index by the namespace field.\n\tNamespaceIndex string = \"namespace\"\n)\n\n// MetaNamespaceIndexFunc is a default index function that indexes based on an object's namespace\nfunc MetaNamespaceIndexFunc(obj interface{}) ([]string, error) {\n\tmeta, err := meta.Accessor(obj)\n\tif err != nil {\n\t\treturn []string{\"\"}, fmt.Errorf(\"object has no meta: %v\", err)\n\t}\n\treturn []string{meta.GetNamespace()}, nil\n}\n\n// Index maps the indexed value to a set of keys in the store that match on that value\ntype Index map[string]sets.String\n\n// Indexers maps a name to an IndexFunc\ntype Indexers map[string]IndexFunc\n\n// Indices maps a name to an Index\ntype Indices map[string]Index\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/cache/listers.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage cache\n\nimport (\n\t\"k8s.io/klog/v2\"\n\n\t\"k8s.io/apimachinery/pkg/api/errors\"\n\t\"k8s.io/apimachinery/pkg/api/meta\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/labels\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// AppendFunc is used to add a matching item to whatever list the caller is using\ntype AppendFunc func(interface{})\n\n// ListAll lists items in the store matching the given selector, calling appendFn on each one.\nfunc ListAll(store Store, selector labels.Selector, appendFn AppendFunc) error {\n\tselectAll := selector.Empty()\n\tfor _, m := range store.List() {\n\t\tif selectAll {\n\t\t\t// Avoid computing labels of the objects to speed up common flows\n\t\t\t// of listing all objects.\n\t\t\tappendFn(m)\n\t\t\tcontinue\n\t\t}\n\t\tmetadata, err := meta.Accessor(m)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif selector.Matches(labels.Set(metadata.GetLabels())) {\n\t\t\tappendFn(m)\n\t\t}\n\t}\n\treturn nil\n}\n\n// ListAllByNamespace lists items in the given namespace in the store matching the given selector,\n// calling appendFn on each one.\n// If a blank namespace (NamespaceAll) is specified, this delegates to ListAll().\nfunc ListAllByNamespace(indexer Indexer, namespace string, selector labels.Selector, appendFn AppendFunc) error {\n\tif namespace == metav1.NamespaceAll {\n\t\treturn ListAll(indexer, selector, appendFn)\n\t}\n\n\titems, err := indexer.Index(NamespaceIndex, &metav1.ObjectMeta{Namespace: namespace})\n\tif err != nil {\n\t\t// Ignore error; do slow search without index.\n\t\tklog.Warningf(\"can not retrieve list of objects using index : %v\", err)\n\t\tfor _, m := range indexer.List() {\n\t\t\tmetadata, err := meta.Accessor(m)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif metadata.GetNamespace() == namespace && selector.Matches(labels.Set(metadata.GetLabels())) {\n\t\t\t\tappendFn(m)\n\t\t\t}\n\n\t\t}\n\t\treturn nil\n\t}\n\n\tselectAll := selector.Empty()\n\tfor _, m := range items {\n\t\tif selectAll {\n\t\t\t// Avoid computing labels of the objects to speed up common flows\n\t\t\t// of listing all objects.\n\t\t\tappendFn(m)\n\t\t\tcontinue\n\t\t}\n\t\tmetadata, err := meta.Accessor(m)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif selector.Matches(labels.Set(metadata.GetLabels())) {\n\t\t\tappendFn(m)\n\t\t}\n\t}\n\n\treturn nil\n}\n\n// GenericLister is a lister skin on a generic Indexer\ntype GenericLister interface {\n\t// List will return all objects across namespaces\n\tList(selector labels.Selector) (ret []runtime.Object, err error)\n\t// Get will attempt to retrieve assuming that name==key\n\tGet(name string) (runtime.Object, error)\n\t// ByNamespace will give you a GenericNamespaceLister for one namespace\n\tByNamespace(namespace string) GenericNamespaceLister\n}\n\n// GenericNamespaceLister is a lister skin on a generic Indexer\ntype GenericNamespaceLister interface {\n\t// List will return all objects in this namespace\n\tList(selector labels.Selector) (ret []runtime.Object, err error)\n\t// Get will attempt to retrieve by namespace and name\n\tGet(name string) (runtime.Object, error)\n}\n\n// NewGenericLister creates a new instance for the genericLister.\nfunc NewGenericLister(indexer Indexer, resource schema.GroupResource) GenericLister {\n\treturn &genericLister{indexer: indexer, resource: resource}\n}\n\ntype genericLister struct {\n\tindexer  Indexer\n\tresource schema.GroupResource\n}\n\nfunc (s *genericLister) List(selector labels.Selector) (ret []runtime.Object, err error) {\n\terr = ListAll(s.indexer, selector, func(m interface{}) {\n\t\tret = append(ret, m.(runtime.Object))\n\t})\n\treturn ret, err\n}\n\nfunc (s *genericLister) ByNamespace(namespace string) GenericNamespaceLister {\n\treturn &genericNamespaceLister{indexer: s.indexer, namespace: namespace, resource: s.resource}\n}\n\nfunc (s *genericLister) Get(name string) (runtime.Object, error) {\n\tobj, exists, err := s.indexer.GetByKey(name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif !exists {\n\t\treturn nil, errors.NewNotFound(s.resource, name)\n\t}\n\treturn obj.(runtime.Object), nil\n}\n\ntype genericNamespaceLister struct {\n\tindexer   Indexer\n\tnamespace string\n\tresource  schema.GroupResource\n}\n\nfunc (s *genericNamespaceLister) List(selector labels.Selector) (ret []runtime.Object, err error) {\n\terr = ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) {\n\t\tret = append(ret, m.(runtime.Object))\n\t})\n\treturn ret, err\n}\n\nfunc (s *genericNamespaceLister) Get(name string) (runtime.Object, error) {\n\tobj, exists, err := s.indexer.GetByKey(s.namespace + \"/\" + name)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif !exists {\n\t\treturn nil, errors.NewNotFound(s.resource, name)\n\t}\n\treturn obj.(runtime.Object), nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/cache/listwatch.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage cache\n\nimport (\n\t\"context\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/fields\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/watch\"\n\trestclient \"k8s.io/client-go/rest\"\n)\n\n// Lister is any object that knows how to perform an initial list.\ntype Lister interface {\n\t// List should return a list type object; the Items field will be extracted, and the\n\t// ResourceVersion field will be used to start the watch in the right place.\n\tList(options metav1.ListOptions) (runtime.Object, error)\n}\n\n// Watcher is any object that knows how to start a watch on a resource.\ntype Watcher interface {\n\t// Watch should begin a watch at the specified version.\n\t//\n\t// If Watch returns an error, it should handle its own cleanup, including\n\t// but not limited to calling Stop() on the watch, if one was constructed.\n\t// This allows the caller to ignore the watch, if the error is non-nil.\n\tWatch(options metav1.ListOptions) (watch.Interface, error)\n}\n\n// ListerWatcher is any object that knows how to perform an initial list and start a watch on a resource.\ntype ListerWatcher interface {\n\tLister\n\tWatcher\n}\n\n// ListFunc knows how to list resources\ntype ListFunc func(options metav1.ListOptions) (runtime.Object, error)\n\n// WatchFunc knows how to watch resources\ntype WatchFunc func(options metav1.ListOptions) (watch.Interface, error)\n\n// ListWatch knows how to list and watch a set of apiserver resources.  It satisfies the ListerWatcher interface.\n// It is a convenience function for users of NewReflector, etc.\n// ListFunc and WatchFunc must not be nil\ntype ListWatch struct {\n\tListFunc  ListFunc\n\tWatchFunc WatchFunc\n\t// DisableChunking requests no chunking for this list watcher.\n\tDisableChunking bool\n}\n\n// Getter interface knows how to access Get method from RESTClient.\ntype Getter interface {\n\tGet() *restclient.Request\n}\n\n// NewListWatchFromClient creates a new ListWatch from the specified client, resource, namespace and field selector.\nfunc NewListWatchFromClient(c Getter, resource string, namespace string, fieldSelector fields.Selector) *ListWatch {\n\toptionsModifier := func(options *metav1.ListOptions) {\n\t\toptions.FieldSelector = fieldSelector.String()\n\t}\n\treturn NewFilteredListWatchFromClient(c, resource, namespace, optionsModifier)\n}\n\n// NewFilteredListWatchFromClient creates a new ListWatch from the specified client, resource, namespace, and option modifier.\n// Option modifier is a function takes a ListOptions and modifies the consumed ListOptions. Provide customized modifier function\n// to apply modification to ListOptions with a field selector, a label selector, or any other desired options.\nfunc NewFilteredListWatchFromClient(c Getter, resource string, namespace string, optionsModifier func(options *metav1.ListOptions)) *ListWatch {\n\tlistFunc := func(options metav1.ListOptions) (runtime.Object, error) {\n\t\toptionsModifier(&options)\n\t\treturn c.Get().\n\t\t\tNamespace(namespace).\n\t\t\tResource(resource).\n\t\t\tVersionedParams(&options, metav1.ParameterCodec).\n\t\t\tDo(context.TODO()).\n\t\t\tGet()\n\t}\n\twatchFunc := func(options metav1.ListOptions) (watch.Interface, error) {\n\t\toptions.Watch = true\n\t\toptionsModifier(&options)\n\t\treturn c.Get().\n\t\t\tNamespace(namespace).\n\t\t\tResource(resource).\n\t\t\tVersionedParams(&options, metav1.ParameterCodec).\n\t\t\tWatch(context.TODO())\n\t}\n\treturn &ListWatch{ListFunc: listFunc, WatchFunc: watchFunc}\n}\n\n// List a set of apiserver resources\nfunc (lw *ListWatch) List(options metav1.ListOptions) (runtime.Object, error) {\n\t// ListWatch is used in Reflector, which already supports pagination.\n\t// Don't paginate here to avoid duplication.\n\treturn lw.ListFunc(options)\n}\n\n// Watch a set of apiserver resources\nfunc (lw *ListWatch) Watch(options metav1.ListOptions) (watch.Interface, error) {\n\treturn lw.WatchFunc(options)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/cache/mutation_cache.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage cache\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n\t\"sync\"\n\t\"time\"\n\n\t\"k8s.io/klog/v2\"\n\n\t\"k8s.io/apimachinery/pkg/api/meta\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\tutilcache \"k8s.io/apimachinery/pkg/util/cache\"\n\tutilruntime \"k8s.io/apimachinery/pkg/util/runtime\"\n\t\"k8s.io/apimachinery/pkg/util/sets\"\n)\n\n// MutationCache is able to take the result of update operations and stores them in an LRU\n// that can be used to provide a more current view of a requested object.  It requires interpreting\n// resourceVersions for comparisons.\n// Implementations must be thread-safe.\n// TODO find a way to layer this into an informer/lister\ntype MutationCache interface {\n\tGetByKey(key string) (interface{}, bool, error)\n\tByIndex(indexName, indexKey string) ([]interface{}, error)\n\tMutation(interface{})\n}\n\n// ResourceVersionComparator is able to compare object versions.\ntype ResourceVersionComparator interface {\n\tCompareResourceVersion(lhs, rhs runtime.Object) int\n}\n\n// NewIntegerResourceVersionMutationCache returns a MutationCache that understands how to\n// deal with objects that have a resource version that:\n//\n//   - is an integer\n//   - increases when updated\n//   - is comparable across the same resource in a namespace\n//\n// Most backends will have these semantics. Indexer may be nil. ttl controls how long an item\n// remains in the mutation cache before it is removed.\n//\n// If includeAdds is true, objects in the mutation cache will be returned even if they don't exist\n// in the underlying store. This is only safe if your use of the cache can handle mutation entries\n// remaining in the cache for up to ttl when mutations and deletes occur very closely in time.\nfunc NewIntegerResourceVersionMutationCache(backingCache Store, indexer Indexer, ttl time.Duration, includeAdds bool) MutationCache {\n\treturn &mutationCache{\n\t\tbackingCache:  backingCache,\n\t\tindexer:       indexer,\n\t\tmutationCache: utilcache.NewLRUExpireCache(100),\n\t\tcomparator:    etcdObjectVersioner{},\n\t\tttl:           ttl,\n\t\tincludeAdds:   includeAdds,\n\t}\n}\n\n// mutationCache doesn't guarantee that it returns values added via Mutation since they can page out and\n// since you can't distinguish between, \"didn't observe create\" and \"was deleted after create\",\n// if the key is missing from the backing cache, we always return it as missing\ntype mutationCache struct {\n\tlock          sync.Mutex\n\tbackingCache  Store\n\tindexer       Indexer\n\tmutationCache *utilcache.LRUExpireCache\n\tincludeAdds   bool\n\tttl           time.Duration\n\n\tcomparator ResourceVersionComparator\n}\n\n// GetByKey is never guaranteed to return back the value set in Mutation.  It could be paged out, it could\n// be older than another copy, the backingCache may be more recent or, you might have written twice into the same key.\n// You get a value that was valid at some snapshot of time and will always return the newer of backingCache and mutationCache.\nfunc (c *mutationCache) GetByKey(key string) (interface{}, bool, error) {\n\tc.lock.Lock()\n\tdefer c.lock.Unlock()\n\n\tobj, exists, err := c.backingCache.GetByKey(key)\n\tif err != nil {\n\t\treturn nil, false, err\n\t}\n\tif !exists {\n\t\tif !c.includeAdds {\n\t\t\t// we can't distinguish between, \"didn't observe create\" and \"was deleted after create\", so\n\t\t\t// if the key is missing, we always return it as missing\n\t\t\treturn nil, false, nil\n\t\t}\n\t\tobj, exists = c.mutationCache.Get(key)\n\t\tif !exists {\n\t\t\treturn nil, false, nil\n\t\t}\n\t}\n\tobjRuntime, ok := obj.(runtime.Object)\n\tif !ok {\n\t\treturn obj, true, nil\n\t}\n\treturn c.newerObject(key, objRuntime), true, nil\n}\n\n// ByIndex returns the newer objects that match the provided index and indexer key.\n// Will return an error if no indexer was provided.\nfunc (c *mutationCache) ByIndex(name string, indexKey string) ([]interface{}, error) {\n\tc.lock.Lock()\n\tdefer c.lock.Unlock()\n\tif c.indexer == nil {\n\t\treturn nil, fmt.Errorf(\"no indexer has been provided to the mutation cache\")\n\t}\n\tkeys, err := c.indexer.IndexKeys(name, indexKey)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tvar items []interface{}\n\tkeySet := sets.NewString()\n\tfor _, key := range keys {\n\t\tkeySet.Insert(key)\n\t\tobj, exists, err := c.indexer.GetByKey(key)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif !exists {\n\t\t\tcontinue\n\t\t}\n\t\tif objRuntime, ok := obj.(runtime.Object); ok {\n\t\t\titems = append(items, c.newerObject(key, objRuntime))\n\t\t} else {\n\t\t\titems = append(items, obj)\n\t\t}\n\t}\n\n\tif c.includeAdds {\n\t\tfn := c.indexer.GetIndexers()[name]\n\t\t// Keys() is returned oldest to newest, so full traversal does not alter the LRU behavior\n\t\tfor _, key := range c.mutationCache.Keys() {\n\t\t\tupdated, ok := c.mutationCache.Get(key)\n\t\t\tif !ok {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif keySet.Has(key.(string)) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\telements, err := fn(updated)\n\t\t\tif err != nil {\n\t\t\t\tklog.V(4).Infof(\"Unable to calculate an index entry for mutation cache entry %s: %v\", key, err)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tfor _, inIndex := range elements {\n\t\t\t\tif inIndex != indexKey {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\titems = append(items, updated)\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\treturn items, nil\n}\n\n// newerObject checks the mutation cache for a newer object and returns one if found. If the\n// mutated object is older than the backing object, it is removed from the  Must be\n// called while the lock is held.\nfunc (c *mutationCache) newerObject(key string, backing runtime.Object) runtime.Object {\n\tmutatedObj, exists := c.mutationCache.Get(key)\n\tif !exists {\n\t\treturn backing\n\t}\n\tmutatedObjRuntime, ok := mutatedObj.(runtime.Object)\n\tif !ok {\n\t\treturn backing\n\t}\n\tif c.comparator.CompareResourceVersion(backing, mutatedObjRuntime) >= 0 {\n\t\tc.mutationCache.Remove(key)\n\t\treturn backing\n\t}\n\treturn mutatedObjRuntime\n}\n\n// Mutation adds a change to the cache that can be returned in GetByKey if it is newer than the backingCache\n// copy.  If you call Mutation twice with the same object on different threads, one will win, but its not defined\n// which one.  This doesn't affect correctness, since the GetByKey guaranteed of \"later of these two caches\" is\n// preserved, but you may not get the version of the object you want.  The object you get is only guaranteed to\n// \"one that was valid at some point in time\", not \"the one that I want\".\nfunc (c *mutationCache) Mutation(obj interface{}) {\n\tc.lock.Lock()\n\tdefer c.lock.Unlock()\n\n\tkey, err := DeletionHandlingMetaNamespaceKeyFunc(obj)\n\tif err != nil {\n\t\t// this is a \"nice to have\", so failures shouldn't do anything weird\n\t\tutilruntime.HandleError(err)\n\t\treturn\n\t}\n\n\tif objRuntime, ok := obj.(runtime.Object); ok {\n\t\tif mutatedObj, exists := c.mutationCache.Get(key); exists {\n\t\t\tif mutatedObjRuntime, ok := mutatedObj.(runtime.Object); ok {\n\t\t\t\tif c.comparator.CompareResourceVersion(objRuntime, mutatedObjRuntime) < 0 {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tc.mutationCache.Add(key, obj, c.ttl)\n}\n\n// etcdObjectVersioner implements versioning and extracting etcd node information\n// for objects that have an embedded ObjectMeta or ListMeta field.\ntype etcdObjectVersioner struct{}\n\n// ObjectResourceVersion implements Versioner\nfunc (a etcdObjectVersioner) ObjectResourceVersion(obj runtime.Object) (uint64, error) {\n\taccessor, err := meta.Accessor(obj)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tversion := accessor.GetResourceVersion()\n\tif len(version) == 0 {\n\t\treturn 0, nil\n\t}\n\treturn strconv.ParseUint(version, 10, 64)\n}\n\n// CompareResourceVersion compares etcd resource versions.  Outside this API they are all strings,\n// but etcd resource versions are special, they're actually ints, so we can easily compare them.\nfunc (a etcdObjectVersioner) CompareResourceVersion(lhs, rhs runtime.Object) int {\n\tlhsVersion, err := a.ObjectResourceVersion(lhs)\n\tif err != nil {\n\t\t// coder error\n\t\tpanic(err)\n\t}\n\trhsVersion, err := a.ObjectResourceVersion(rhs)\n\tif err != nil {\n\t\t// coder error\n\t\tpanic(err)\n\t}\n\n\tif lhsVersion == rhsVersion {\n\t\treturn 0\n\t}\n\tif lhsVersion < rhsVersion {\n\t\treturn -1\n\t}\n\n\treturn 1\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/cache/mutation_detector.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage cache\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"sync\"\n\t\"time\"\n\n\t\"k8s.io/klog/v2\"\n\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/util/diff\"\n)\n\nvar mutationDetectionEnabled = false\n\nfunc init() {\n\tmutationDetectionEnabled, _ = strconv.ParseBool(os.Getenv(\"KUBE_CACHE_MUTATION_DETECTOR\"))\n}\n\n// MutationDetector is able to monitor objects for mutation within a limited window of time\ntype MutationDetector interface {\n\t// AddObject adds the given object to the set being monitored for a while from now\n\tAddObject(obj interface{})\n\n\t// Run starts the monitoring and does not return until the monitoring is stopped.\n\tRun(stopCh <-chan struct{})\n}\n\n// NewCacheMutationDetector creates a new instance for the defaultCacheMutationDetector.\nfunc NewCacheMutationDetector(name string) MutationDetector {\n\tif !mutationDetectionEnabled {\n\t\treturn dummyMutationDetector{}\n\t}\n\tklog.Warningln(\"Mutation detector is enabled, this will result in memory leakage.\")\n\treturn &defaultCacheMutationDetector{name: name, period: 1 * time.Second, retainDuration: 2 * time.Minute}\n}\n\ntype dummyMutationDetector struct{}\n\nfunc (dummyMutationDetector) Run(stopCh <-chan struct{}) {\n}\nfunc (dummyMutationDetector) AddObject(obj interface{}) {\n}\n\n// defaultCacheMutationDetector gives a way to detect if a cached object has been mutated\n// It has a list of cached objects and their copies.  I haven't thought of a way\n// to see WHO is mutating it, just that it's getting mutated.\ntype defaultCacheMutationDetector struct {\n\tname   string\n\tperiod time.Duration\n\n\t// compareLock ensures only a single call to CompareObjects runs at a time\n\tcompareObjectsLock sync.Mutex\n\n\t// addLock guards addedObjs between AddObject and CompareObjects\n\taddedObjsLock sync.Mutex\n\taddedObjs     []cacheObj\n\n\tcachedObjs []cacheObj\n\n\tretainDuration     time.Duration\n\tlastRotated        time.Time\n\tretainedCachedObjs []cacheObj\n\n\t// failureFunc is injectable for unit testing.  If you don't have it, the process will panic.\n\t// This panic is intentional, since turning on this detection indicates you want a strong\n\t// failure signal.  This failure is effectively a p0 bug and you can't trust process results\n\t// after a mutation anyway.\n\tfailureFunc func(message string)\n}\n\n// cacheObj holds the actual object and a copy\ntype cacheObj struct {\n\tcached interface{}\n\tcopied interface{}\n}\n\nfunc (d *defaultCacheMutationDetector) Run(stopCh <-chan struct{}) {\n\t// we DON'T want protection from panics.  If we're running this code, we want to die\n\tfor {\n\t\tif d.lastRotated.IsZero() {\n\t\t\td.lastRotated = time.Now()\n\t\t} else if time.Since(d.lastRotated) > d.retainDuration {\n\t\t\td.retainedCachedObjs = d.cachedObjs\n\t\t\td.cachedObjs = nil\n\t\t\td.lastRotated = time.Now()\n\t\t}\n\n\t\td.CompareObjects()\n\n\t\tselect {\n\t\tcase <-stopCh:\n\t\t\treturn\n\t\tcase <-time.After(d.period):\n\t\t}\n\t}\n}\n\n// AddObject makes a deep copy of the object for later comparison.  It only works on runtime.Object\n// but that covers the vast majority of our cached objects\nfunc (d *defaultCacheMutationDetector) AddObject(obj interface{}) {\n\tif _, ok := obj.(DeletedFinalStateUnknown); ok {\n\t\treturn\n\t}\n\tif obj, ok := obj.(runtime.Object); ok {\n\t\tcopiedObj := obj.DeepCopyObject()\n\n\t\td.addedObjsLock.Lock()\n\t\tdefer d.addedObjsLock.Unlock()\n\t\td.addedObjs = append(d.addedObjs, cacheObj{cached: obj, copied: copiedObj})\n\t}\n}\n\nfunc (d *defaultCacheMutationDetector) CompareObjects() {\n\td.compareObjectsLock.Lock()\n\tdefer d.compareObjectsLock.Unlock()\n\n\t// move addedObjs into cachedObjs under lock\n\t// this keeps the critical section small to avoid blocking AddObject while we compare cachedObjs\n\td.addedObjsLock.Lock()\n\td.cachedObjs = append(d.cachedObjs, d.addedObjs...)\n\td.addedObjs = nil\n\td.addedObjsLock.Unlock()\n\n\taltered := false\n\tfor i, obj := range d.cachedObjs {\n\t\tif !reflect.DeepEqual(obj.cached, obj.copied) {\n\t\t\tfmt.Printf(\"CACHE %s[%d] ALTERED!\\n%v\\n\", d.name, i, diff.ObjectGoPrintSideBySide(obj.cached, obj.copied))\n\t\t\taltered = true\n\t\t}\n\t}\n\tfor i, obj := range d.retainedCachedObjs {\n\t\tif !reflect.DeepEqual(obj.cached, obj.copied) {\n\t\t\tfmt.Printf(\"CACHE %s[%d] ALTERED!\\n%v\\n\", d.name, i, diff.ObjectGoPrintSideBySide(obj.cached, obj.copied))\n\t\t\taltered = true\n\t\t}\n\t}\n\n\tif altered {\n\t\tmsg := fmt.Sprintf(\"cache %s modified\", d.name)\n\t\tif d.failureFunc != nil {\n\t\t\td.failureFunc(msg)\n\t\t\treturn\n\t\t}\n\t\tpanic(msg)\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/cache/object-names.go",
    "content": "/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage cache\n\nimport (\n\t\"k8s.io/apimachinery/pkg/types\"\n)\n\n// ObjectName is a reference to an object of some implicit kind\ntype ObjectName struct {\n\tNamespace string\n\tName      string\n}\n\n// NewObjectName constructs a new one\nfunc NewObjectName(namespace, name string) ObjectName {\n\treturn ObjectName{Namespace: namespace, Name: name}\n}\n\n// Parts is the inverse of the constructor\nfunc (objName ObjectName) Parts() (namespace, name string) {\n\treturn objName.Namespace, objName.Name\n}\n\n// String returns the standard string encoding,\n// which is designed to match the historical behavior of MetaNamespaceKeyFunc.\n// Note this behavior is different from the String method of types.NamespacedName.\nfunc (objName ObjectName) String() string {\n\tif len(objName.Namespace) > 0 {\n\t\treturn objName.Namespace + \"/\" + objName.Name\n\t}\n\treturn objName.Name\n}\n\n// ParseObjectName tries to parse the standard encoding\nfunc ParseObjectName(str string) (ObjectName, error) {\n\tvar objName ObjectName\n\tvar err error\n\tobjName.Namespace, objName.Name, err = SplitMetaNamespaceKey(str)\n\treturn objName, err\n}\n\n// NamespacedNameAsObjectName rebrands the given NamespacedName as an ObjectName\nfunc NamespacedNameAsObjectName(nn types.NamespacedName) ObjectName {\n\treturn NewObjectName(nn.Namespace, nn.Name)\n}\n\n// AsNamespacedName rebrands as a NamespacedName\nfunc (objName ObjectName) AsNamespacedName() types.NamespacedName {\n\treturn types.NamespacedName{Namespace: objName.Namespace, Name: objName.Name}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/cache/reflector.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage cache\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"math/rand\"\n\t\"reflect\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\tapierrors \"k8s.io/apimachinery/pkg/api/errors\"\n\t\"k8s.io/apimachinery/pkg/api/meta\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n\t\"k8s.io/apimachinery/pkg/util/naming\"\n\tutilnet \"k8s.io/apimachinery/pkg/util/net\"\n\tutilruntime \"k8s.io/apimachinery/pkg/util/runtime\"\n\t\"k8s.io/apimachinery/pkg/util/wait\"\n\t\"k8s.io/apimachinery/pkg/watch\"\n\tclientfeatures \"k8s.io/client-go/features\"\n\t\"k8s.io/client-go/tools/pager\"\n\t\"k8s.io/klog/v2\"\n\t\"k8s.io/utils/clock\"\n\t\"k8s.io/utils/pointer\"\n\t\"k8s.io/utils/ptr\"\n\t\"k8s.io/utils/trace\"\n)\n\nconst defaultExpectedTypeName = \"<unspecified>\"\n\nvar (\n\t// We try to spread the load on apiserver by setting timeouts for\n\t// watch requests - it is random in [minWatchTimeout, 2*minWatchTimeout].\n\tdefaultMinWatchTimeout = 5 * time.Minute\n)\n\n// Reflector watches a specified resource and causes all changes to be reflected in the given store.\ntype Reflector struct {\n\t// name identifies this reflector. By default, it will be a file:line if possible.\n\tname string\n\t// The name of the type we expect to place in the store. The name\n\t// will be the stringification of expectedGVK if provided, and the\n\t// stringification of expectedType otherwise. It is for display\n\t// only, and should not be used for parsing or comparison.\n\ttypeDescription string\n\t// An example object of the type we expect to place in the store.\n\t// Only the type needs to be right, except that when that is\n\t// `unstructured.Unstructured` the object's `\"apiVersion\"` and\n\t// `\"kind\"` must also be right.\n\texpectedType reflect.Type\n\t// The GVK of the object we expect to place in the store if unstructured.\n\texpectedGVK *schema.GroupVersionKind\n\t// The destination to sync up with the watch source\n\tstore Store\n\t// listerWatcher is used to perform lists and watches.\n\tlisterWatcher ListerWatcher\n\t// backoff manages backoff of ListWatch\n\tbackoffManager wait.BackoffManager\n\tresyncPeriod   time.Duration\n\t// minWatchTimeout defines the minimum timeout for watch requests.\n\tminWatchTimeout time.Duration\n\t// clock allows tests to manipulate time\n\tclock clock.Clock\n\t// paginatedResult defines whether pagination should be forced for list calls.\n\t// It is set based on the result of the initial list call.\n\tpaginatedResult bool\n\t// lastSyncResourceVersion is the resource version token last\n\t// observed when doing a sync with the underlying store\n\t// it is thread safe, but not synchronized with the underlying store\n\tlastSyncResourceVersion string\n\t// isLastSyncResourceVersionUnavailable is true if the previous list or watch request with\n\t// lastSyncResourceVersion failed with an \"expired\" or \"too large resource version\" error.\n\tisLastSyncResourceVersionUnavailable bool\n\t// lastSyncResourceVersionMutex guards read/write access to lastSyncResourceVersion\n\tlastSyncResourceVersionMutex sync.RWMutex\n\t// Called whenever the ListAndWatch drops the connection with an error.\n\twatchErrorHandler WatchErrorHandler\n\t// WatchListPageSize is the requested chunk size of initial and resync watch lists.\n\t// If unset, for consistent reads (RV=\"\") or reads that opt-into arbitrarily old data\n\t// (RV=\"0\") it will default to pager.PageSize, for the rest (RV != \"\" && RV != \"0\")\n\t// it will turn off pagination to allow serving them from watch cache.\n\t// NOTE: It should be used carefully as paginated lists are always served directly from\n\t// etcd, which is significantly less efficient and may lead to serious performance and\n\t// scalability problems.\n\tWatchListPageSize int64\n\t// ShouldResync is invoked periodically and whenever it returns `true` the Store's Resync operation is invoked\n\tShouldResync func() bool\n\t// MaxInternalErrorRetryDuration defines how long we should retry internal errors returned by watch.\n\tMaxInternalErrorRetryDuration time.Duration\n\t// UseWatchList if turned on instructs the reflector to open a stream to bring data from the API server.\n\t// Streaming has the primary advantage of using fewer server's resources to fetch data.\n\t//\n\t// The old behaviour establishes a LIST request which gets data in chunks.\n\t// Paginated list is less efficient and depending on the actual size of objects\n\t// might result in an increased memory consumption of the APIServer.\n\t//\n\t// See https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/3157-watch-list#design-details\n\t//\n\t// TODO(#115478): Consider making reflector.UseWatchList a private field. Since we implemented \"api streaming\" on the etcd storage layer it should work.\n\tUseWatchList *bool\n}\n\nfunc (r *Reflector) Name() string {\n\treturn r.name\n}\n\nfunc (r *Reflector) TypeDescription() string {\n\treturn r.typeDescription\n}\n\n// ResourceVersionUpdater is an interface that allows store implementation to\n// track the current resource version of the reflector. This is especially\n// important if storage bookmarks are enabled.\ntype ResourceVersionUpdater interface {\n\t// UpdateResourceVersion is called each time current resource version of the reflector\n\t// is updated.\n\tUpdateResourceVersion(resourceVersion string)\n}\n\n// The WatchErrorHandler is called whenever ListAndWatch drops the\n// connection with an error. After calling this handler, the informer\n// will backoff and retry.\n//\n// The default implementation looks at the error type and tries to log\n// the error message at an appropriate level.\n//\n// Implementations of this handler may display the error message in other\n// ways. Implementations should return quickly - any expensive processing\n// should be offloaded.\ntype WatchErrorHandler func(r *Reflector, err error)\n\n// DefaultWatchErrorHandler is the default implementation of WatchErrorHandler\nfunc DefaultWatchErrorHandler(r *Reflector, err error) {\n\tswitch {\n\tcase isExpiredError(err):\n\t\t// Don't set LastSyncResourceVersionUnavailable - LIST call with ResourceVersion=RV already\n\t\t// has a semantic that it returns data at least as fresh as provided RV.\n\t\t// So first try to LIST with setting RV to resource version of last observed object.\n\t\tklog.V(4).Infof(\"%s: watch of %v closed with: %v\", r.name, r.typeDescription, err)\n\tcase err == io.EOF:\n\t\t// watch closed normally\n\tcase err == io.ErrUnexpectedEOF:\n\t\tklog.V(1).Infof(\"%s: Watch for %v closed with unexpected EOF: %v\", r.name, r.typeDescription, err)\n\tdefault:\n\t\tutilruntime.HandleError(fmt.Errorf(\"%s: Failed to watch %v: %v\", r.name, r.typeDescription, err))\n\t}\n}\n\n// NewNamespaceKeyedIndexerAndReflector creates an Indexer and a Reflector\n// The indexer is configured to key on namespace\nfunc NewNamespaceKeyedIndexerAndReflector(lw ListerWatcher, expectedType interface{}, resyncPeriod time.Duration) (indexer Indexer, reflector *Reflector) {\n\tindexer = NewIndexer(MetaNamespaceKeyFunc, Indexers{NamespaceIndex: MetaNamespaceIndexFunc})\n\treflector = NewReflector(lw, expectedType, indexer, resyncPeriod)\n\treturn indexer, reflector\n}\n\n// NewReflector creates a new Reflector with its name defaulted to the closest source_file.go:line in the call stack\n// that is outside this package. See NewReflectorWithOptions for further information.\nfunc NewReflector(lw ListerWatcher, expectedType interface{}, store Store, resyncPeriod time.Duration) *Reflector {\n\treturn NewReflectorWithOptions(lw, expectedType, store, ReflectorOptions{ResyncPeriod: resyncPeriod})\n}\n\n// NewNamedReflector creates a new Reflector with the specified name. See NewReflectorWithOptions for further\n// information.\nfunc NewNamedReflector(name string, lw ListerWatcher, expectedType interface{}, store Store, resyncPeriod time.Duration) *Reflector {\n\treturn NewReflectorWithOptions(lw, expectedType, store, ReflectorOptions{Name: name, ResyncPeriod: resyncPeriod})\n}\n\n// ReflectorOptions configures a Reflector.\ntype ReflectorOptions struct {\n\t// Name is the Reflector's name. If unset/unspecified, the name defaults to the closest source_file.go:line\n\t// in the call stack that is outside this package.\n\tName string\n\n\t// TypeDescription is the Reflector's type description. If unset/unspecified, the type description is defaulted\n\t// using the following rules: if the expectedType passed to NewReflectorWithOptions was nil, the type description is\n\t// \"<unspecified>\". If the expectedType is an instance of *unstructured.Unstructured and its apiVersion and kind fields\n\t// are set, the type description is the string encoding of those. Otherwise, the type description is set to the\n\t// go type of expectedType..\n\tTypeDescription string\n\n\t// ResyncPeriod is the Reflector's resync period. If unset/unspecified, the resync period defaults to 0\n\t// (do not resync).\n\tResyncPeriod time.Duration\n\n\t// MinWatchTimeout, if non-zero, defines the minimum timeout for watch requests send to kube-apiserver.\n\t// However, values lower than 5m will not be honored to avoid negative performance impact on controlplane.\n\tMinWatchTimeout time.Duration\n\n\t// Clock allows tests to control time. If unset defaults to clock.RealClock{}\n\tClock clock.Clock\n}\n\n// NewReflectorWithOptions creates a new Reflector object which will keep the\n// given store up to date with the server's contents for the given\n// resource. Reflector promises to only put things in the store that\n// have the type of expectedType, unless expectedType is nil. If\n// resyncPeriod is non-zero, then the reflector will periodically\n// consult its ShouldResync function to determine whether to invoke\n// the Store's Resync operation; `ShouldResync==nil` means always\n// \"yes\".  This enables you to use reflectors to periodically process\n// everything as well as incrementally processing the things that\n// change.\nfunc NewReflectorWithOptions(lw ListerWatcher, expectedType interface{}, store Store, options ReflectorOptions) *Reflector {\n\treflectorClock := options.Clock\n\tif reflectorClock == nil {\n\t\treflectorClock = clock.RealClock{}\n\t}\n\tminWatchTimeout := defaultMinWatchTimeout\n\tif options.MinWatchTimeout > defaultMinWatchTimeout {\n\t\tminWatchTimeout = options.MinWatchTimeout\n\t}\n\tr := &Reflector{\n\t\tname:            options.Name,\n\t\tresyncPeriod:    options.ResyncPeriod,\n\t\tminWatchTimeout: minWatchTimeout,\n\t\ttypeDescription: options.TypeDescription,\n\t\tlisterWatcher:   lw,\n\t\tstore:           store,\n\t\t// We used to make the call every 1sec (1 QPS), the goal here is to achieve ~98% traffic reduction when\n\t\t// API server is not healthy. With these parameters, backoff will stop at [30,60) sec interval which is\n\t\t// 0.22 QPS. If we don't backoff for 2min, assume API server is healthy and we reset the backoff.\n\t\tbackoffManager:    wait.NewExponentialBackoffManager(800*time.Millisecond, 30*time.Second, 2*time.Minute, 2.0, 1.0, reflectorClock),\n\t\tclock:             reflectorClock,\n\t\twatchErrorHandler: WatchErrorHandler(DefaultWatchErrorHandler),\n\t\texpectedType:      reflect.TypeOf(expectedType),\n\t}\n\n\tif r.name == \"\" {\n\t\tr.name = naming.GetNameFromCallsite(internalPackages...)\n\t}\n\n\tif r.typeDescription == \"\" {\n\t\tr.typeDescription = getTypeDescriptionFromObject(expectedType)\n\t}\n\n\tif r.expectedGVK == nil {\n\t\tr.expectedGVK = getExpectedGVKFromObject(expectedType)\n\t}\n\n\t// don't overwrite UseWatchList if already set\n\t// because the higher layers (e.g. storage/cacher) disabled it on purpose\n\tif r.UseWatchList == nil {\n\t\tr.UseWatchList = ptr.To(clientfeatures.FeatureGates().Enabled(clientfeatures.WatchListClient))\n\t}\n\n\treturn r\n}\n\nfunc getTypeDescriptionFromObject(expectedType interface{}) string {\n\tif expectedType == nil {\n\t\treturn defaultExpectedTypeName\n\t}\n\n\treflectDescription := reflect.TypeOf(expectedType).String()\n\n\tobj, ok := expectedType.(*unstructured.Unstructured)\n\tif !ok {\n\t\treturn reflectDescription\n\t}\n\n\tgvk := obj.GroupVersionKind()\n\tif gvk.Empty() {\n\t\treturn reflectDescription\n\t}\n\n\treturn gvk.String()\n}\n\nfunc getExpectedGVKFromObject(expectedType interface{}) *schema.GroupVersionKind {\n\tobj, ok := expectedType.(*unstructured.Unstructured)\n\tif !ok {\n\t\treturn nil\n\t}\n\n\tgvk := obj.GroupVersionKind()\n\tif gvk.Empty() {\n\t\treturn nil\n\t}\n\n\treturn &gvk\n}\n\n// internalPackages are packages that ignored when creating a default reflector name. These packages are in the common\n// call chains to NewReflector, so they'd be low entropy names for reflectors\nvar internalPackages = []string{\"client-go/tools/cache/\"}\n\n// Run repeatedly uses the reflector's ListAndWatch to fetch all the\n// objects and subsequent deltas.\n// Run will exit when stopCh is closed.\nfunc (r *Reflector) Run(stopCh <-chan struct{}) {\n\tklog.V(3).Infof(\"Starting reflector %s (%s) from %s\", r.typeDescription, r.resyncPeriod, r.name)\n\twait.BackoffUntil(func() {\n\t\tif err := r.ListAndWatch(stopCh); err != nil {\n\t\t\tr.watchErrorHandler(r, err)\n\t\t}\n\t}, r.backoffManager, true, stopCh)\n\tklog.V(3).Infof(\"Stopping reflector %s (%s) from %s\", r.typeDescription, r.resyncPeriod, r.name)\n}\n\nvar (\n\t// nothing will ever be sent down this channel\n\tneverExitWatch <-chan time.Time = make(chan time.Time)\n\n\t// Used to indicate that watching stopped because of a signal from the stop\n\t// channel passed in from a client of the reflector.\n\terrorStopRequested = errors.New(\"stop requested\")\n)\n\n// resyncChan returns a channel which will receive something when a resync is\n// required, and a cleanup function.\nfunc (r *Reflector) resyncChan() (<-chan time.Time, func() bool) {\n\tif r.resyncPeriod == 0 {\n\t\treturn neverExitWatch, func() bool { return false }\n\t}\n\t// The cleanup function is required: imagine the scenario where watches\n\t// always fail so we end up listing frequently. Then, if we don't\n\t// manually stop the timer, we could end up with many timers active\n\t// concurrently.\n\tt := r.clock.NewTimer(r.resyncPeriod)\n\treturn t.C(), t.Stop\n}\n\n// ListAndWatch first lists all items and get the resource version at the moment of call,\n// and then use the resource version to watch.\n// It returns error if ListAndWatch didn't even try to initialize watch.\nfunc (r *Reflector) ListAndWatch(stopCh <-chan struct{}) error {\n\tklog.V(3).Infof(\"Listing and watching %v from %s\", r.typeDescription, r.name)\n\tvar err error\n\tvar w watch.Interface\n\tuseWatchList := ptr.Deref(r.UseWatchList, false)\n\tfallbackToList := !useWatchList\n\n\tif useWatchList {\n\t\tw, err = r.watchList(stopCh)\n\t\tif w == nil && err == nil {\n\t\t\t// stopCh was closed\n\t\t\treturn nil\n\t\t}\n\t\tif err != nil {\n\t\t\tklog.Warningf(\"The watchlist request ended with an error, falling back to the standard LIST/WATCH semantics because making progress is better than deadlocking, err = %v\", err)\n\t\t\tfallbackToList = true\n\t\t\t// ensure that we won't accidentally pass some garbage down the watch.\n\t\t\tw = nil\n\t\t}\n\t}\n\n\tif fallbackToList {\n\t\terr = r.list(stopCh)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tklog.V(2).Infof(\"Caches populated for %v from %s\", r.typeDescription, r.name)\n\treturn r.watchWithResync(w, stopCh)\n}\n\n// startResync periodically calls r.store.Resync() method.\n// Note that this method is blocking and should be\n// called in a separate goroutine.\nfunc (r *Reflector) startResync(stopCh <-chan struct{}, cancelCh <-chan struct{}, resyncerrc chan error) {\n\tresyncCh, cleanup := r.resyncChan()\n\tdefer func() {\n\t\tcleanup() // Call the last one written into cleanup\n\t}()\n\tfor {\n\t\tselect {\n\t\tcase <-resyncCh:\n\t\tcase <-stopCh:\n\t\t\treturn\n\t\tcase <-cancelCh:\n\t\t\treturn\n\t\t}\n\t\tif r.ShouldResync == nil || r.ShouldResync() {\n\t\t\tklog.V(4).Infof(\"%s: forcing resync\", r.name)\n\t\t\tif err := r.store.Resync(); err != nil {\n\t\t\t\tresyncerrc <- err\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t\tcleanup()\n\t\tresyncCh, cleanup = r.resyncChan()\n\t}\n}\n\n// watchWithResync runs watch with startResync in the background.\nfunc (r *Reflector) watchWithResync(w watch.Interface, stopCh <-chan struct{}) error {\n\tresyncerrc := make(chan error, 1)\n\tcancelCh := make(chan struct{})\n\tdefer close(cancelCh)\n\tgo r.startResync(stopCh, cancelCh, resyncerrc)\n\treturn r.watch(w, stopCh, resyncerrc)\n}\n\n// watch simply starts a watch request with the server.\nfunc (r *Reflector) watch(w watch.Interface, stopCh <-chan struct{}, resyncerrc chan error) error {\n\tvar err error\n\tretry := NewRetryWithDeadline(r.MaxInternalErrorRetryDuration, time.Minute, apierrors.IsInternalError, r.clock)\n\n\tfor {\n\t\t// give the stopCh a chance to stop the loop, even in case of continue statements further down on errors\n\t\tselect {\n\t\tcase <-stopCh:\n\t\t\t// we can only end up here when the stopCh\n\t\t\t// was closed after a successful watchlist or list request\n\t\t\tif w != nil {\n\t\t\t\tw.Stop()\n\t\t\t}\n\t\t\treturn nil\n\t\tdefault:\n\t\t}\n\n\t\t// start the clock before sending the request, since some proxies won't flush headers until after the first watch event is sent\n\t\tstart := r.clock.Now()\n\n\t\tif w == nil {\n\t\t\ttimeoutSeconds := int64(r.minWatchTimeout.Seconds() * (rand.Float64() + 1.0))\n\t\t\toptions := metav1.ListOptions{\n\t\t\t\tResourceVersion: r.LastSyncResourceVersion(),\n\t\t\t\t// We want to avoid situations of hanging watchers. Stop any watchers that do not\n\t\t\t\t// receive any events within the timeout window.\n\t\t\t\tTimeoutSeconds: &timeoutSeconds,\n\t\t\t\t// To reduce load on kube-apiserver on watch restarts, you may enable watch bookmarks.\n\t\t\t\t// Reflector doesn't assume bookmarks are returned at all (if the server do not support\n\t\t\t\t// watch bookmarks, it will ignore this field).\n\t\t\t\tAllowWatchBookmarks: true,\n\t\t\t}\n\n\t\t\tw, err = r.listerWatcher.Watch(options)\n\t\t\tif err != nil {\n\t\t\t\tif canRetry := isWatchErrorRetriable(err); canRetry {\n\t\t\t\t\tklog.V(4).Infof(\"%s: watch of %v returned %v - backing off\", r.name, r.typeDescription, err)\n\t\t\t\t\tselect {\n\t\t\t\t\tcase <-stopCh:\n\t\t\t\t\t\treturn nil\n\t\t\t\t\tcase <-r.backoffManager.Backoff().C():\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\terr = handleWatch(start, w, r.store, r.expectedType, r.expectedGVK, r.name, r.typeDescription, r.setLastSyncResourceVersion,\n\t\t\tr.clock, resyncerrc, stopCh)\n\t\t// Ensure that watch will not be reused across iterations.\n\t\tw.Stop()\n\t\tw = nil\n\t\tretry.After(err)\n\t\tif err != nil {\n\t\t\tif !errors.Is(err, errorStopRequested) {\n\t\t\t\tswitch {\n\t\t\t\tcase isExpiredError(err):\n\t\t\t\t\t// Don't set LastSyncResourceVersionUnavailable - LIST call with ResourceVersion=RV already\n\t\t\t\t\t// has a semantic that it returns data at least as fresh as provided RV.\n\t\t\t\t\t// So first try to LIST with setting RV to resource version of last observed object.\n\t\t\t\t\tklog.V(4).Infof(\"%s: watch of %v closed with: %v\", r.name, r.typeDescription, err)\n\t\t\t\tcase apierrors.IsTooManyRequests(err):\n\t\t\t\t\tklog.V(2).Infof(\"%s: watch of %v returned 429 - backing off\", r.name, r.typeDescription)\n\t\t\t\t\tselect {\n\t\t\t\t\tcase <-stopCh:\n\t\t\t\t\t\treturn nil\n\t\t\t\t\tcase <-r.backoffManager.Backoff().C():\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\tcase apierrors.IsInternalError(err) && retry.ShouldRetry():\n\t\t\t\t\tklog.V(2).Infof(\"%s: retrying watch of %v internal error: %v\", r.name, r.typeDescription, err)\n\t\t\t\t\tcontinue\n\t\t\t\tdefault:\n\t\t\t\t\tklog.Warningf(\"%s: watch of %v ended with: %v\", r.name, r.typeDescription, err)\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\t}\n}\n\n// list simply lists all items and records a resource version obtained from the server at the moment of the call.\n// the resource version can be used for further progress notification (aka. watch).\nfunc (r *Reflector) list(stopCh <-chan struct{}) error {\n\tvar resourceVersion string\n\toptions := metav1.ListOptions{ResourceVersion: r.relistResourceVersion()}\n\n\tinitTrace := trace.New(\"Reflector ListAndWatch\", trace.Field{Key: \"name\", Value: r.name})\n\tdefer initTrace.LogIfLong(10 * time.Second)\n\tvar list runtime.Object\n\tvar paginatedResult bool\n\tvar err error\n\tlistCh := make(chan struct{}, 1)\n\tpanicCh := make(chan interface{}, 1)\n\tgo func() {\n\t\tdefer func() {\n\t\t\tif r := recover(); r != nil {\n\t\t\t\tpanicCh <- r\n\t\t\t}\n\t\t}()\n\t\t// Attempt to gather list in chunks, if supported by listerWatcher, if not, the first\n\t\t// list request will return the full response.\n\t\tpager := pager.New(pager.SimplePageFunc(func(opts metav1.ListOptions) (runtime.Object, error) {\n\t\t\treturn r.listerWatcher.List(opts)\n\t\t}))\n\t\tswitch {\n\t\tcase r.WatchListPageSize != 0:\n\t\t\tpager.PageSize = r.WatchListPageSize\n\t\tcase r.paginatedResult:\n\t\t\t// We got a paginated result initially. Assume this resource and server honor\n\t\t\t// paging requests (i.e. watch cache is probably disabled) and leave the default\n\t\t\t// pager size set.\n\t\tcase options.ResourceVersion != \"\" && options.ResourceVersion != \"0\":\n\t\t\t// User didn't explicitly request pagination.\n\t\t\t//\n\t\t\t// With ResourceVersion != \"\", we have a possibility to list from watch cache,\n\t\t\t// but we do that (for ResourceVersion != \"0\") only if Limit is unset.\n\t\t\t// To avoid thundering herd on etcd (e.g. on master upgrades), we explicitly\n\t\t\t// switch off pagination to force listing from watch cache (if enabled).\n\t\t\t// With the existing semantic of RV (result is at least as fresh as provided RV),\n\t\t\t// this is correct and doesn't lead to going back in time.\n\t\t\t//\n\t\t\t// We also don't turn off pagination for ResourceVersion=\"0\", since watch cache\n\t\t\t// is ignoring Limit in that case anyway, and if watch cache is not enabled\n\t\t\t// we don't introduce regression.\n\t\t\tpager.PageSize = 0\n\t\t}\n\n\t\tlist, paginatedResult, err = pager.ListWithAlloc(context.Background(), options)\n\t\tif isExpiredError(err) || isTooLargeResourceVersionError(err) {\n\t\t\tr.setIsLastSyncResourceVersionUnavailable(true)\n\t\t\t// Retry immediately if the resource version used to list is unavailable.\n\t\t\t// The pager already falls back to full list if paginated list calls fail due to an \"Expired\" error on\n\t\t\t// continuation pages, but the pager might not be enabled, the full list might fail because the\n\t\t\t// resource version it is listing at is expired or the cache may not yet be synced to the provided\n\t\t\t// resource version. So we need to fallback to resourceVersion=\"\" in all to recover and ensure\n\t\t\t// the reflector makes forward progress.\n\t\t\tlist, paginatedResult, err = pager.ListWithAlloc(context.Background(), metav1.ListOptions{ResourceVersion: r.relistResourceVersion()})\n\t\t}\n\t\tclose(listCh)\n\t}()\n\tselect {\n\tcase <-stopCh:\n\t\treturn nil\n\tcase r := <-panicCh:\n\t\tpanic(r)\n\tcase <-listCh:\n\t}\n\tinitTrace.Step(\"Objects listed\", trace.Field{Key: \"error\", Value: err})\n\tif err != nil {\n\t\tklog.Warningf(\"%s: failed to list %v: %v\", r.name, r.typeDescription, err)\n\t\treturn fmt.Errorf(\"failed to list %v: %w\", r.typeDescription, err)\n\t}\n\n\t// We check if the list was paginated and if so set the paginatedResult based on that.\n\t// However, we want to do that only for the initial list (which is the only case\n\t// when we set ResourceVersion=\"0\"). The reasoning behind it is that later, in some\n\t// situations we may force listing directly from etcd (by setting ResourceVersion=\"\")\n\t// which will return paginated result, even if watch cache is enabled. However, in\n\t// that case, we still want to prefer sending requests to watch cache if possible.\n\t//\n\t// Paginated result returned for request with ResourceVersion=\"0\" mean that watch\n\t// cache is disabled and there are a lot of objects of a given type. In such case,\n\t// there is no need to prefer listing from watch cache.\n\tif options.ResourceVersion == \"0\" && paginatedResult {\n\t\tr.paginatedResult = true\n\t}\n\n\tr.setIsLastSyncResourceVersionUnavailable(false) // list was successful\n\tlistMetaInterface, err := meta.ListAccessor(list)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"unable to understand list result %#v: %v\", list, err)\n\t}\n\tresourceVersion = listMetaInterface.GetResourceVersion()\n\tinitTrace.Step(\"Resource version extracted\")\n\titems, err := meta.ExtractListWithAlloc(list)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"unable to understand list result %#v (%v)\", list, err)\n\t}\n\tinitTrace.Step(\"Objects extracted\")\n\tif err := r.syncWith(items, resourceVersion); err != nil {\n\t\treturn fmt.Errorf(\"unable to sync list result: %v\", err)\n\t}\n\tinitTrace.Step(\"SyncWith done\")\n\tr.setLastSyncResourceVersion(resourceVersion)\n\tinitTrace.Step(\"Resource version updated\")\n\treturn nil\n}\n\n// watchList establishes a stream to get a consistent snapshot of data\n// from the server as described in https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/3157-watch-list#proposal\n//\n// case 1: start at Most Recent (RV=\"\", ResourceVersionMatch=ResourceVersionMatchNotOlderThan)\n// Establishes a consistent stream with the server.\n// That means the returned data is consistent, as if, served directly from etcd via a quorum read.\n// It begins with synthetic \"Added\" events of all resources up to the most recent ResourceVersion.\n// It ends with a synthetic \"Bookmark\" event containing the most recent ResourceVersion.\n// After receiving a \"Bookmark\" event the reflector is considered to be synchronized.\n// It replaces its internal store with the collected items and\n// reuses the current watch requests for getting further events.\n//\n// case 2: start at Exact (RV>\"0\", ResourceVersionMatch=ResourceVersionMatchNotOlderThan)\n// Establishes a stream with the server at the provided resource version.\n// To establish the initial state the server begins with synthetic \"Added\" events.\n// It ends with a synthetic \"Bookmark\" event containing the provided or newer resource version.\n// After receiving a \"Bookmark\" event the reflector is considered to be synchronized.\n// It replaces its internal store with the collected items and\n// reuses the current watch requests for getting further events.\nfunc (r *Reflector) watchList(stopCh <-chan struct{}) (watch.Interface, error) {\n\tvar w watch.Interface\n\tvar err error\n\tvar temporaryStore Store\n\tvar resourceVersion string\n\t// TODO(#115478): see if this function could be turned\n\t//  into a method and see if error handling\n\t//  could be unified with the r.watch method\n\tisErrorRetriableWithSideEffectsFn := func(err error) bool {\n\t\tif canRetry := isWatchErrorRetriable(err); canRetry {\n\t\t\tklog.V(2).Infof(\"%s: watch-list of %v returned %v - backing off\", r.name, r.typeDescription, err)\n\t\t\t<-r.backoffManager.Backoff().C()\n\t\t\treturn true\n\t\t}\n\t\tif isExpiredError(err) || isTooLargeResourceVersionError(err) {\n\t\t\t// we tried to re-establish a watch request but the provided RV\n\t\t\t// has either expired or it is greater than the server knows about.\n\t\t\t// In that case we reset the RV and\n\t\t\t// try to get a consistent snapshot from the watch cache (case 1)\n\t\t\tr.setIsLastSyncResourceVersionUnavailable(true)\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t}\n\n\tinitTrace := trace.New(\"Reflector WatchList\", trace.Field{Key: \"name\", Value: r.name})\n\tdefer initTrace.LogIfLong(10 * time.Second)\n\tfor {\n\t\tselect {\n\t\tcase <-stopCh:\n\t\t\treturn nil, nil\n\t\tdefault:\n\t\t}\n\n\t\tresourceVersion = \"\"\n\t\tlastKnownRV := r.rewatchResourceVersion()\n\t\ttemporaryStore = NewStore(DeletionHandlingMetaNamespaceKeyFunc)\n\t\t// TODO(#115478): large \"list\", slow clients, slow network, p&f\n\t\t//  might slow down streaming and eventually fail.\n\t\t//  maybe in such a case we should retry with an increased timeout?\n\t\ttimeoutSeconds := int64(r.minWatchTimeout.Seconds() * (rand.Float64() + 1.0))\n\t\toptions := metav1.ListOptions{\n\t\t\tResourceVersion:      lastKnownRV,\n\t\t\tAllowWatchBookmarks:  true,\n\t\t\tSendInitialEvents:    pointer.Bool(true),\n\t\t\tResourceVersionMatch: metav1.ResourceVersionMatchNotOlderThan,\n\t\t\tTimeoutSeconds:       &timeoutSeconds,\n\t\t}\n\t\tstart := r.clock.Now()\n\n\t\tw, err = r.listerWatcher.Watch(options)\n\t\tif err != nil {\n\t\t\tif isErrorRetriableWithSideEffectsFn(err) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn nil, err\n\t\t}\n\t\twatchListBookmarkReceived, err := handleListWatch(start, w, temporaryStore, r.expectedType, r.expectedGVK, r.name, r.typeDescription,\n\t\t\tfunc(rv string) { resourceVersion = rv },\n\t\t\tr.clock, make(chan error), stopCh)\n\t\tif err != nil {\n\t\t\tw.Stop() // stop and retry with clean state\n\t\t\tif errors.Is(err, errorStopRequested) {\n\t\t\t\treturn nil, nil\n\t\t\t}\n\t\t\tif isErrorRetriableWithSideEffectsFn(err) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn nil, err\n\t\t}\n\t\tif watchListBookmarkReceived {\n\t\t\tbreak\n\t\t}\n\t}\n\t// We successfully got initial state from watch-list confirmed by the\n\t// \"k8s.io/initial-events-end\" bookmark.\n\tinitTrace.Step(\"Objects streamed\", trace.Field{Key: \"count\", Value: len(temporaryStore.List())})\n\tr.setIsLastSyncResourceVersionUnavailable(false)\n\n\t// we utilize the temporaryStore to ensure independence from the current store implementation.\n\t// as of today, the store is implemented as a queue and will be drained by the higher-level\n\t// component as soon as it finishes replacing the content.\n\tcheckWatchListDataConsistencyIfRequested(wait.ContextForChannel(stopCh), r.name, resourceVersion, wrapListFuncWithContext(r.listerWatcher.List), temporaryStore.List)\n\n\tif err := r.store.Replace(temporaryStore.List(), resourceVersion); err != nil {\n\t\treturn nil, fmt.Errorf(\"unable to sync watch-list result: %w\", err)\n\t}\n\tinitTrace.Step(\"SyncWith done\")\n\tr.setLastSyncResourceVersion(resourceVersion)\n\n\treturn w, nil\n}\n\n// syncWith replaces the store's items with the given list.\nfunc (r *Reflector) syncWith(items []runtime.Object, resourceVersion string) error {\n\tfound := make([]interface{}, 0, len(items))\n\tfor _, item := range items {\n\t\tfound = append(found, item)\n\t}\n\treturn r.store.Replace(found, resourceVersion)\n}\n\n// handleListWatch consumes events from w, updates the Store, and records the\n// last seen ResourceVersion, to allow continuing from that ResourceVersion on\n// retry. If successful, the watcher will be left open after receiving the\n// initial set of objects, to allow watching for future events.\nfunc handleListWatch(\n\tstart time.Time,\n\tw watch.Interface,\n\tstore Store,\n\texpectedType reflect.Type,\n\texpectedGVK *schema.GroupVersionKind,\n\tname string,\n\texpectedTypeName string,\n\tsetLastSyncResourceVersion func(string),\n\tclock clock.Clock,\n\terrCh chan error,\n\tstopCh <-chan struct{},\n) (bool, error) {\n\texitOnWatchListBookmarkReceived := true\n\treturn handleAnyWatch(start, w, store, expectedType, expectedGVK, name, expectedTypeName,\n\t\tsetLastSyncResourceVersion, exitOnWatchListBookmarkReceived, clock, errCh, stopCh)\n}\n\n// handleListWatch consumes events from w, updates the Store, and records the\n// last seen ResourceVersion, to allow continuing from that ResourceVersion on\n// retry. The watcher will always be stopped on exit.\nfunc handleWatch(\n\tstart time.Time,\n\tw watch.Interface,\n\tstore Store,\n\texpectedType reflect.Type,\n\texpectedGVK *schema.GroupVersionKind,\n\tname string,\n\texpectedTypeName string,\n\tsetLastSyncResourceVersion func(string),\n\tclock clock.Clock,\n\terrCh chan error,\n\tstopCh <-chan struct{},\n) error {\n\texitOnWatchListBookmarkReceived := false\n\t_, err := handleAnyWatch(start, w, store, expectedType, expectedGVK, name, expectedTypeName,\n\t\tsetLastSyncResourceVersion, exitOnWatchListBookmarkReceived, clock, errCh, stopCh)\n\treturn err\n}\n\n// handleAnyWatch consumes events from w, updates the Store, and records the last\n// seen ResourceVersion, to allow continuing from that ResourceVersion on retry.\n// If exitOnWatchListBookmarkReceived is true, the watch events will be consumed\n// until a bookmark event is received with the WatchList annotation present.\n// Returns true (watchListBookmarkReceived) if the WatchList bookmark was\n// received, even if exitOnWatchListBookmarkReceived is false.\n// The watcher will always be stopped, unless exitOnWatchListBookmarkReceived is\n// true and watchListBookmarkReceived is true. This allows the same watch stream\n// to be re-used by the caller to continue watching for new events.\nfunc handleAnyWatch(start time.Time,\n\tw watch.Interface,\n\tstore Store,\n\texpectedType reflect.Type,\n\texpectedGVK *schema.GroupVersionKind,\n\tname string,\n\texpectedTypeName string,\n\tsetLastSyncResourceVersion func(string),\n\texitOnWatchListBookmarkReceived bool,\n\tclock clock.Clock,\n\terrCh chan error,\n\tstopCh <-chan struct{},\n) (bool, error) {\n\twatchListBookmarkReceived := false\n\teventCount := 0\n\tinitialEventsEndBookmarkWarningTicker := newInitialEventsEndBookmarkTicker(name, clock, start, exitOnWatchListBookmarkReceived)\n\tdefer initialEventsEndBookmarkWarningTicker.Stop()\n\nloop:\n\tfor {\n\t\tselect {\n\t\tcase <-stopCh:\n\t\t\treturn watchListBookmarkReceived, errorStopRequested\n\t\tcase err := <-errCh:\n\t\t\treturn watchListBookmarkReceived, err\n\t\tcase event, ok := <-w.ResultChan():\n\t\t\tif !ok {\n\t\t\t\tbreak loop\n\t\t\t}\n\t\t\tif event.Type == watch.Error {\n\t\t\t\treturn watchListBookmarkReceived, apierrors.FromObject(event.Object)\n\t\t\t}\n\t\t\tif expectedType != nil {\n\t\t\t\tif e, a := expectedType, reflect.TypeOf(event.Object); e != a {\n\t\t\t\t\tutilruntime.HandleError(fmt.Errorf(\"%s: expected type %v, but watch event object had type %v\", name, e, a))\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t\tif expectedGVK != nil {\n\t\t\t\tif e, a := *expectedGVK, event.Object.GetObjectKind().GroupVersionKind(); e != a {\n\t\t\t\t\tutilruntime.HandleError(fmt.Errorf(\"%s: expected gvk %v, but watch event object had gvk %v\", name, e, a))\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t\tmeta, err := meta.Accessor(event.Object)\n\t\t\tif err != nil {\n\t\t\t\tutilruntime.HandleError(fmt.Errorf(\"%s: unable to understand watch event %#v\", name, event))\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tresourceVersion := meta.GetResourceVersion()\n\t\t\tswitch event.Type {\n\t\t\tcase watch.Added:\n\t\t\t\terr := store.Add(event.Object)\n\t\t\t\tif err != nil {\n\t\t\t\t\tutilruntime.HandleError(fmt.Errorf(\"%s: unable to add watch event object (%#v) to store: %v\", name, event.Object, err))\n\t\t\t\t}\n\t\t\tcase watch.Modified:\n\t\t\t\terr := store.Update(event.Object)\n\t\t\t\tif err != nil {\n\t\t\t\t\tutilruntime.HandleError(fmt.Errorf(\"%s: unable to update watch event object (%#v) to store: %v\", name, event.Object, err))\n\t\t\t\t}\n\t\t\tcase watch.Deleted:\n\t\t\t\t// TODO: Will any consumers need access to the \"last known\n\t\t\t\t// state\", which is passed in event.Object? If so, may need\n\t\t\t\t// to change this.\n\t\t\t\terr := store.Delete(event.Object)\n\t\t\t\tif err != nil {\n\t\t\t\t\tutilruntime.HandleError(fmt.Errorf(\"%s: unable to delete watch event object (%#v) from store: %v\", name, event.Object, err))\n\t\t\t\t}\n\t\t\tcase watch.Bookmark:\n\t\t\t\t// A `Bookmark` means watch has synced here, just update the resourceVersion\n\t\t\t\tif meta.GetAnnotations()[metav1.InitialEventsAnnotationKey] == \"true\" {\n\t\t\t\t\twatchListBookmarkReceived = true\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\tutilruntime.HandleError(fmt.Errorf(\"%s: unable to understand watch event %#v\", name, event))\n\t\t\t}\n\t\t\tsetLastSyncResourceVersion(resourceVersion)\n\t\t\tif rvu, ok := store.(ResourceVersionUpdater); ok {\n\t\t\t\trvu.UpdateResourceVersion(resourceVersion)\n\t\t\t}\n\t\t\teventCount++\n\t\t\tif exitOnWatchListBookmarkReceived && watchListBookmarkReceived {\n\t\t\t\twatchDuration := clock.Since(start)\n\t\t\t\tklog.V(4).Infof(\"exiting %v Watch because received the bookmark that marks the end of initial events stream, total %v items received in %v\", name, eventCount, watchDuration)\n\t\t\t\treturn watchListBookmarkReceived, nil\n\t\t\t}\n\t\t\tinitialEventsEndBookmarkWarningTicker.observeLastEventTimeStamp(clock.Now())\n\t\tcase <-initialEventsEndBookmarkWarningTicker.C():\n\t\t\tinitialEventsEndBookmarkWarningTicker.warnIfExpired()\n\t\t}\n\t}\n\n\twatchDuration := clock.Since(start)\n\tif watchDuration < 1*time.Second && eventCount == 0 {\n\t\treturn watchListBookmarkReceived, fmt.Errorf(\"very short watch: %s: Unexpected watch close - watch lasted less than a second and no items received\", name)\n\t}\n\tklog.V(4).Infof(\"%s: Watch close - %v total %v items received\", name, expectedTypeName, eventCount)\n\treturn watchListBookmarkReceived, nil\n}\n\n// LastSyncResourceVersion is the resource version observed when last sync with the underlying store\n// The value returned is not synchronized with access to the underlying store and is not thread-safe\nfunc (r *Reflector) LastSyncResourceVersion() string {\n\tr.lastSyncResourceVersionMutex.RLock()\n\tdefer r.lastSyncResourceVersionMutex.RUnlock()\n\treturn r.lastSyncResourceVersion\n}\n\nfunc (r *Reflector) setLastSyncResourceVersion(v string) {\n\tr.lastSyncResourceVersionMutex.Lock()\n\tdefer r.lastSyncResourceVersionMutex.Unlock()\n\tr.lastSyncResourceVersion = v\n}\n\n// relistResourceVersion determines the resource version the reflector should list or relist from.\n// Returns either the lastSyncResourceVersion so that this reflector will relist with a resource\n// versions no older than has already been observed in relist results or watch events, or, if the last relist resulted\n// in an HTTP 410 (Gone) status code, returns \"\" so that the relist will use the latest resource version available in\n// etcd via a quorum read.\nfunc (r *Reflector) relistResourceVersion() string {\n\tr.lastSyncResourceVersionMutex.RLock()\n\tdefer r.lastSyncResourceVersionMutex.RUnlock()\n\n\tif r.isLastSyncResourceVersionUnavailable {\n\t\t// Since this reflector makes paginated list requests, and all paginated list requests skip the watch cache\n\t\t// if the lastSyncResourceVersion is unavailable, we set ResourceVersion=\"\" and list again to re-establish reflector\n\t\t// to the latest available ResourceVersion, using a consistent read from etcd.\n\t\treturn \"\"\n\t}\n\tif r.lastSyncResourceVersion == \"\" {\n\t\t// For performance reasons, initial list performed by reflector uses \"0\" as resource version to allow it to\n\t\t// be served from the watch cache if it is enabled.\n\t\treturn \"0\"\n\t}\n\treturn r.lastSyncResourceVersion\n}\n\n// rewatchResourceVersion determines the resource version the reflector should start streaming from.\nfunc (r *Reflector) rewatchResourceVersion() string {\n\tr.lastSyncResourceVersionMutex.RLock()\n\tdefer r.lastSyncResourceVersionMutex.RUnlock()\n\tif r.isLastSyncResourceVersionUnavailable {\n\t\t// initial stream should return data at the most recent resource version.\n\t\t// the returned data must be consistent i.e. as if served from etcd via a quorum read\n\t\treturn \"\"\n\t}\n\treturn r.lastSyncResourceVersion\n}\n\n// setIsLastSyncResourceVersionUnavailable sets if the last list or watch request with lastSyncResourceVersion returned\n// \"expired\" or \"too large resource version\" error.\nfunc (r *Reflector) setIsLastSyncResourceVersionUnavailable(isUnavailable bool) {\n\tr.lastSyncResourceVersionMutex.Lock()\n\tdefer r.lastSyncResourceVersionMutex.Unlock()\n\tr.isLastSyncResourceVersionUnavailable = isUnavailable\n}\n\nfunc isExpiredError(err error) bool {\n\t// In Kubernetes 1.17 and earlier, the api server returns both apierrors.StatusReasonExpired and\n\t// apierrors.StatusReasonGone for HTTP 410 (Gone) status code responses. In 1.18 the kube server is more consistent\n\t// and always returns apierrors.StatusReasonExpired. For backward compatibility we can only remove the apierrors.IsGone\n\t// check when we fully drop support for Kubernetes 1.17 servers from reflectors.\n\treturn apierrors.IsResourceExpired(err) || apierrors.IsGone(err)\n}\n\nfunc isTooLargeResourceVersionError(err error) bool {\n\tif apierrors.HasStatusCause(err, metav1.CauseTypeResourceVersionTooLarge) {\n\t\treturn true\n\t}\n\t// In Kubernetes 1.17.0-1.18.5, the api server doesn't set the error status cause to\n\t// metav1.CauseTypeResourceVersionTooLarge to indicate that the requested minimum resource\n\t// version is larger than the largest currently available resource version. To ensure backward\n\t// compatibility with these server versions we also need to detect the error based on the content\n\t// of the error message field.\n\tif !apierrors.IsTimeout(err) {\n\t\treturn false\n\t}\n\tapierr, ok := err.(apierrors.APIStatus)\n\tif !ok || apierr == nil || apierr.Status().Details == nil {\n\t\treturn false\n\t}\n\tfor _, cause := range apierr.Status().Details.Causes {\n\t\t// Matches the message returned by api server 1.17.0-1.18.5 for this error condition\n\t\tif cause.Message == \"Too large resource version\" {\n\t\t\treturn true\n\t\t}\n\t}\n\n\t// Matches the message returned by api server before 1.17.0\n\tif strings.Contains(apierr.Status().Message, \"Too large resource version\") {\n\t\treturn true\n\t}\n\n\treturn false\n}\n\n// isWatchErrorRetriable determines if it is safe to retry\n// a watch error retrieved from the server.\nfunc isWatchErrorRetriable(err error) bool {\n\t// If this is \"connection refused\" error, it means that most likely apiserver is not responsive.\n\t// It doesn't make sense to re-list all objects because most likely we will be able to restart\n\t// watch where we ended.\n\t// If that's the case begin exponentially backing off and resend watch request.\n\t// Do the same for \"429\" errors.\n\tif utilnet.IsConnectionRefused(err) || apierrors.IsTooManyRequests(err) {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// wrapListFuncWithContext simply wraps ListFunction into another function that accepts a context and ignores it.\nfunc wrapListFuncWithContext(listFn ListFunc) func(ctx context.Context, options metav1.ListOptions) (runtime.Object, error) {\n\treturn func(_ context.Context, options metav1.ListOptions) (runtime.Object, error) {\n\t\treturn listFn(options)\n\t}\n}\n\n// initialEventsEndBookmarkTicker a ticker that produces a warning if the bookmark event\n// which marks the end of the watch stream, has not been received within the defined tick interval.\n//\n// Note:\n// The methods exposed by this type are not thread-safe.\ntype initialEventsEndBookmarkTicker struct {\n\tclock.Ticker\n\tclock clock.Clock\n\tname  string\n\n\twatchStart           time.Time\n\ttickInterval         time.Duration\n\tlastEventObserveTime time.Time\n}\n\n// newInitialEventsEndBookmarkTicker returns a noop ticker if exitOnInitialEventsEndBookmarkRequested is false.\n// Otherwise, it returns a ticker that exposes a method producing a warning if the bookmark event,\n// which marks the end of the watch stream, has not been received within the defined tick interval.\n//\n// Note that the caller controls whether to call t.C() and t.Stop().\n//\n// In practice, the reflector exits the watchHandler as soon as the bookmark event is received and calls the t.C() method.\nfunc newInitialEventsEndBookmarkTicker(name string, c clock.Clock, watchStart time.Time, exitOnWatchListBookmarkReceived bool) *initialEventsEndBookmarkTicker {\n\treturn newInitialEventsEndBookmarkTickerInternal(name, c, watchStart, 10*time.Second, exitOnWatchListBookmarkReceived)\n}\n\nfunc newInitialEventsEndBookmarkTickerInternal(name string, c clock.Clock, watchStart time.Time, tickInterval time.Duration, exitOnWatchListBookmarkReceived bool) *initialEventsEndBookmarkTicker {\n\tclockWithTicker, ok := c.(clock.WithTicker)\n\tif !ok || !exitOnWatchListBookmarkReceived {\n\t\tif exitOnWatchListBookmarkReceived {\n\t\t\tklog.Warningf(\"clock does not support WithTicker interface but exitOnInitialEventsEndBookmark was requested\")\n\t\t}\n\t\treturn &initialEventsEndBookmarkTicker{\n\t\t\tTicker: &noopTicker{},\n\t\t}\n\t}\n\n\treturn &initialEventsEndBookmarkTicker{\n\t\tTicker:       clockWithTicker.NewTicker(tickInterval),\n\t\tclock:        c,\n\t\tname:         name,\n\t\twatchStart:   watchStart,\n\t\ttickInterval: tickInterval,\n\t}\n}\n\nfunc (t *initialEventsEndBookmarkTicker) observeLastEventTimeStamp(lastEventObserveTime time.Time) {\n\tt.lastEventObserveTime = lastEventObserveTime\n}\n\nfunc (t *initialEventsEndBookmarkTicker) warnIfExpired() {\n\tif err := t.produceWarningIfExpired(); err != nil {\n\t\tklog.Warning(err)\n\t}\n}\n\n// produceWarningIfExpired returns an error that represents a warning when\n// the time elapsed since the last received event exceeds the tickInterval.\n//\n// Note that this method should be called when t.C() yields a value.\nfunc (t *initialEventsEndBookmarkTicker) produceWarningIfExpired() error {\n\tif _, ok := t.Ticker.(*noopTicker); ok {\n\t\treturn nil /*noop ticker*/\n\t}\n\tif t.lastEventObserveTime.IsZero() {\n\t\treturn fmt.Errorf(\"%s: awaiting required bookmark event for initial events stream, no events received for %v\", t.name, t.clock.Since(t.watchStart))\n\t}\n\telapsedTime := t.clock.Now().Sub(t.lastEventObserveTime)\n\thasBookmarkTimerExpired := elapsedTime >= t.tickInterval\n\n\tif !hasBookmarkTimerExpired {\n\t\treturn nil\n\t}\n\treturn fmt.Errorf(\"%s: hasn't received required bookmark event marking the end of initial events stream, received last event %v ago\", t.name, elapsedTime)\n}\n\nvar _ clock.Ticker = &noopTicker{}\n\n// TODO(#115478): move to k8s/utils repo\ntype noopTicker struct{}\n\nfunc (t *noopTicker) C() <-chan time.Time { return nil }\n\nfunc (t *noopTicker) Stop() {}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/cache/reflector_data_consistency_detector.go",
    "content": "/*\nCopyright 2024 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage cache\n\nimport (\n\t\"context\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/client-go/util/consistencydetector\"\n)\n\n// checkWatchListDataConsistencyIfRequested performs a data consistency check only when\n// the KUBE_WATCHLIST_INCONSISTENCY_DETECTOR environment variable was set during a binary startup.\n//\n// The consistency check is meant to be enforced only in the CI, not in production.\n// The check ensures that data retrieved by the watch-list api call\n// is exactly the same as data received by the standard list api call against etcd.\n//\n// Note that this function will panic when data inconsistency is detected.\n// This is intentional because we want to catch it in the CI.\nfunc checkWatchListDataConsistencyIfRequested[T runtime.Object, U any](ctx context.Context, identity string, lastSyncedResourceVersion string, listFn consistencydetector.ListFunc[T], retrieveItemsFn consistencydetector.RetrieveItemsFunc[U]) {\n\tif !consistencydetector.IsDataConsistencyDetectionForWatchListEnabled() {\n\t\treturn\n\t}\n\t// for informers we pass an empty ListOptions because\n\t// listFn might be wrapped for filtering during informer construction.\n\tconsistencydetector.CheckDataConsistency(ctx, identity, lastSyncedResourceVersion, listFn, metav1.ListOptions{}, retrieveItemsFn)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/cache/reflector_metrics.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// This file provides abstractions for setting the provider (e.g., prometheus)\n// of metrics.\n\npackage cache\n\nimport (\n\t\"sync\"\n)\n\n// GaugeMetric represents a single numerical value that can arbitrarily go up\n// and down.\ntype GaugeMetric interface {\n\tSet(float64)\n}\n\n// CounterMetric represents a single numerical value that only ever\n// goes up.\ntype CounterMetric interface {\n\tInc()\n}\n\n// SummaryMetric captures individual observations.\ntype SummaryMetric interface {\n\tObserve(float64)\n}\n\ntype noopMetric struct{}\n\nfunc (noopMetric) Inc()            {}\nfunc (noopMetric) Dec()            {}\nfunc (noopMetric) Observe(float64) {}\nfunc (noopMetric) Set(float64)     {}\n\n// MetricsProvider generates various metrics used by the reflector.\ntype MetricsProvider interface {\n\tNewListsMetric(name string) CounterMetric\n\tNewListDurationMetric(name string) SummaryMetric\n\tNewItemsInListMetric(name string) SummaryMetric\n\n\tNewWatchesMetric(name string) CounterMetric\n\tNewShortWatchesMetric(name string) CounterMetric\n\tNewWatchDurationMetric(name string) SummaryMetric\n\tNewItemsInWatchMetric(name string) SummaryMetric\n\n\tNewLastResourceVersionMetric(name string) GaugeMetric\n}\n\ntype noopMetricsProvider struct{}\n\nfunc (noopMetricsProvider) NewListsMetric(name string) CounterMetric         { return noopMetric{} }\nfunc (noopMetricsProvider) NewListDurationMetric(name string) SummaryMetric  { return noopMetric{} }\nfunc (noopMetricsProvider) NewItemsInListMetric(name string) SummaryMetric   { return noopMetric{} }\nfunc (noopMetricsProvider) NewWatchesMetric(name string) CounterMetric       { return noopMetric{} }\nfunc (noopMetricsProvider) NewShortWatchesMetric(name string) CounterMetric  { return noopMetric{} }\nfunc (noopMetricsProvider) NewWatchDurationMetric(name string) SummaryMetric { return noopMetric{} }\nfunc (noopMetricsProvider) NewItemsInWatchMetric(name string) SummaryMetric  { return noopMetric{} }\nfunc (noopMetricsProvider) NewLastResourceVersionMetric(name string) GaugeMetric {\n\treturn noopMetric{}\n}\n\nvar metricsFactory = struct {\n\tmetricsProvider MetricsProvider\n\tsetProviders    sync.Once\n}{\n\tmetricsProvider: noopMetricsProvider{},\n}\n\n// SetReflectorMetricsProvider sets the metrics provider\nfunc SetReflectorMetricsProvider(metricsProvider MetricsProvider) {\n\tmetricsFactory.setProviders.Do(func() {\n\t\tmetricsFactory.metricsProvider = metricsProvider\n\t})\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/cache/retry_with_deadline.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage cache\n\nimport (\n\t\"k8s.io/utils/clock\"\n\t\"time\"\n)\n\ntype RetryWithDeadline interface {\n\tAfter(error)\n\tShouldRetry() bool\n}\n\ntype retryWithDeadlineImpl struct {\n\tfirstErrorTime   time.Time\n\tlastErrorTime    time.Time\n\tmaxRetryDuration time.Duration\n\tminResetPeriod   time.Duration\n\tisRetryable      func(error) bool\n\tclock            clock.Clock\n}\n\nfunc NewRetryWithDeadline(maxRetryDuration, minResetPeriod time.Duration, isRetryable func(error) bool, clock clock.Clock) RetryWithDeadline {\n\treturn &retryWithDeadlineImpl{\n\t\tfirstErrorTime:   time.Time{},\n\t\tlastErrorTime:    time.Time{},\n\t\tmaxRetryDuration: maxRetryDuration,\n\t\tminResetPeriod:   minResetPeriod,\n\t\tisRetryable:      isRetryable,\n\t\tclock:            clock,\n\t}\n}\n\nfunc (r *retryWithDeadlineImpl) reset() {\n\tr.firstErrorTime = time.Time{}\n\tr.lastErrorTime = time.Time{}\n}\n\nfunc (r *retryWithDeadlineImpl) After(err error) {\n\tif r.isRetryable(err) {\n\t\tif r.clock.Now().Sub(r.lastErrorTime) >= r.minResetPeriod {\n\t\t\tr.reset()\n\t\t}\n\n\t\tif r.firstErrorTime.IsZero() {\n\t\t\tr.firstErrorTime = r.clock.Now()\n\t\t}\n\t\tr.lastErrorTime = r.clock.Now()\n\t}\n}\n\nfunc (r *retryWithDeadlineImpl) ShouldRetry() bool {\n\tif r.maxRetryDuration <= time.Duration(0) {\n\t\treturn false\n\t}\n\n\tif r.clock.Now().Sub(r.firstErrorTime) <= r.maxRetryDuration {\n\t\treturn true\n\t}\n\n\tr.reset()\n\treturn false\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/cache/shared_informer.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage cache\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"sync\"\n\t\"time\"\n\n\t\"k8s.io/apimachinery/pkg/api/meta\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\tutilruntime \"k8s.io/apimachinery/pkg/util/runtime\"\n\t\"k8s.io/apimachinery/pkg/util/wait\"\n\t\"k8s.io/client-go/tools/cache/synctrack\"\n\t\"k8s.io/utils/buffer\"\n\t\"k8s.io/utils/clock\"\n\n\t\"k8s.io/klog/v2\"\n\n\tclientgofeaturegate \"k8s.io/client-go/features\"\n)\n\n// SharedInformer provides eventually consistent linkage of its\n// clients to the authoritative state of a given collection of\n// objects.  An object is identified by its API group, kind/resource,\n// namespace (if any), and name; the `ObjectMeta.UID` is not part of\n// an object's ID as far as this contract is concerned.  One\n// SharedInformer provides linkage to objects of a particular API\n// group and kind/resource.  The linked object collection of a\n// SharedInformer may be further restricted to one namespace (if\n// applicable) and/or by label selector and/or field selector.\n//\n// The authoritative state of an object is what apiservers provide\n// access to, and an object goes through a strict sequence of states.\n// An object state is either (1) present with a ResourceVersion and\n// other appropriate content or (2) \"absent\".\n//\n// A SharedInformer maintains a local cache --- exposed by GetStore(),\n// by GetIndexer() in the case of an indexed informer, and possibly by\n// machinery involved in creating and/or accessing the informer --- of\n// the state of each relevant object.  This cache is eventually\n// consistent with the authoritative state.  This means that, unless\n// prevented by persistent communication problems, if ever a\n// particular object ID X is authoritatively associated with a state S\n// then for every SharedInformer I whose collection includes (X, S)\n// eventually either (1) I's cache associates X with S or a later\n// state of X, (2) I is stopped, or (3) the authoritative state\n// service for X terminates.  To be formally complete, we say that the\n// absent state meets any restriction by label selector or field\n// selector.\n//\n// For a given informer and relevant object ID X, the sequence of\n// states that appears in the informer's cache is a subsequence of the\n// states authoritatively associated with X.  That is, some states\n// might never appear in the cache but ordering among the appearing\n// states is correct.  Note, however, that there is no promise about\n// ordering between states seen for different objects.\n//\n// The local cache starts out empty, and gets populated and updated\n// during `Run()`.\n//\n// As a simple example, if a collection of objects is henceforth\n// unchanging, a SharedInformer is created that links to that\n// collection, and that SharedInformer is `Run()` then that\n// SharedInformer's cache eventually holds an exact copy of that\n// collection (unless it is stopped too soon, the authoritative state\n// service ends, or communication problems between the two\n// persistently thwart achievement).\n//\n// As another simple example, if the local cache ever holds a\n// non-absent state for some object ID and the object is eventually\n// removed from the authoritative state then eventually the object is\n// removed from the local cache (unless the SharedInformer is stopped\n// too soon, the authoritative state service ends, or communication\n// problems persistently thwart the desired result).\n//\n// The keys in the Store are of the form namespace/name for namespaced\n// objects, and are simply the name for non-namespaced objects.\n// Clients can use `MetaNamespaceKeyFunc(obj)` to extract the key for\n// a given object, and `SplitMetaNamespaceKey(key)` to split a key\n// into its constituent parts.\n//\n// Every query against the local cache is answered entirely from one\n// snapshot of the cache's state.  Thus, the result of a `List` call\n// will not contain two entries with the same namespace and name.\n//\n// A client is identified here by a ResourceEventHandler.  For every\n// update to the SharedInformer's local cache and for every client\n// added before `Run()`, eventually either the SharedInformer is\n// stopped or the client is notified of the update.  A client added\n// after `Run()` starts gets a startup batch of notifications of\n// additions of the objects existing in the cache at the time that\n// client was added; also, for every update to the SharedInformer's\n// local cache after that client was added, eventually either the\n// SharedInformer is stopped or that client is notified of that\n// update.  Client notifications happen after the corresponding cache\n// update and, in the case of a SharedIndexInformer, after the\n// corresponding index updates.  It is possible that additional cache\n// and index updates happen before such a prescribed notification.\n// For a given SharedInformer and client, the notifications are\n// delivered sequentially.  For a given SharedInformer, client, and\n// object ID, the notifications are delivered in order.  Because\n// `ObjectMeta.UID` has no role in identifying objects, it is possible\n// that when (1) object O1 with ID (e.g. namespace and name) X and\n// `ObjectMeta.UID` U1 in the SharedInformer's local cache is deleted\n// and later (2) another object O2 with ID X and ObjectMeta.UID U2 is\n// created the informer's clients are not notified of (1) and (2) but\n// rather are notified only of an update from O1 to O2. Clients that\n// need to detect such cases might do so by comparing the `ObjectMeta.UID`\n// field of the old and the new object in the code that handles update\n// notifications (i.e. `OnUpdate` method of ResourceEventHandler).\n//\n// A client must process each notification promptly; a SharedInformer\n// is not engineered to deal well with a large backlog of\n// notifications to deliver.  Lengthy processing should be passed off\n// to something else, for example through a\n// `client-go/util/workqueue`.\n//\n// A delete notification exposes the last locally known non-absent\n// state, except that its ResourceVersion is replaced with a\n// ResourceVersion in which the object is actually absent.\ntype SharedInformer interface {\n\t// AddEventHandler adds an event handler to the shared informer using\n\t// the shared informer's resync period.  Events to a single handler are\n\t// delivered sequentially, but there is no coordination between\n\t// different handlers.\n\t// It returns a registration handle for the handler that can be used to\n\t// remove the handler again, or to tell if the handler is synced (has\n\t// seen every item in the initial list).\n\tAddEventHandler(handler ResourceEventHandler) (ResourceEventHandlerRegistration, error)\n\t// AddEventHandlerWithResyncPeriod adds an event handler to the\n\t// shared informer with the requested resync period; zero means\n\t// this handler does not care about resyncs.  The resync operation\n\t// consists of delivering to the handler an update notification\n\t// for every object in the informer's local cache; it does not add\n\t// any interactions with the authoritative storage.  Some\n\t// informers do no resyncs at all, not even for handlers added\n\t// with a non-zero resyncPeriod.  For an informer that does\n\t// resyncs, and for each handler that requests resyncs, that\n\t// informer develops a nominal resync period that is no shorter\n\t// than the requested period but may be longer.  The actual time\n\t// between any two resyncs may be longer than the nominal period\n\t// because the implementation takes time to do work and there may\n\t// be competing load and scheduling noise.\n\t// It returns a registration handle for the handler that can be used to remove\n\t// the handler again and an error if the handler cannot be added.\n\tAddEventHandlerWithResyncPeriod(handler ResourceEventHandler, resyncPeriod time.Duration) (ResourceEventHandlerRegistration, error)\n\t// RemoveEventHandler removes a formerly added event handler given by\n\t// its registration handle.\n\t// This function is guaranteed to be idempotent, and thread-safe.\n\tRemoveEventHandler(handle ResourceEventHandlerRegistration) error\n\t// GetStore returns the informer's local cache as a Store.\n\tGetStore() Store\n\t// GetController is deprecated, it does nothing useful\n\tGetController() Controller\n\t// Run starts and runs the shared informer, returning after it stops.\n\t// The informer will be stopped when stopCh is closed.\n\tRun(stopCh <-chan struct{})\n\t// HasSynced returns true if the shared informer's store has been\n\t// informed by at least one full LIST of the authoritative state\n\t// of the informer's object collection.  This is unrelated to \"resync\".\n\t//\n\t// Note that this doesn't tell you if an individual handler is synced!!\n\t// For that, please call HasSynced on the handle returned by\n\t// AddEventHandler.\n\tHasSynced() bool\n\t// LastSyncResourceVersion is the resource version observed when last synced with the underlying\n\t// store. The value returned is not synchronized with access to the underlying store and is not\n\t// thread-safe.\n\tLastSyncResourceVersion() string\n\n\t// The WatchErrorHandler is called whenever ListAndWatch drops the\n\t// connection with an error. After calling this handler, the informer\n\t// will backoff and retry.\n\t//\n\t// The default implementation looks at the error type and tries to log\n\t// the error message at an appropriate level.\n\t//\n\t// There's only one handler, so if you call this multiple times, last one\n\t// wins; calling after the informer has been started returns an error.\n\t//\n\t// The handler is intended for visibility, not to e.g. pause the consumers.\n\t// The handler should return quickly - any expensive processing should be\n\t// offloaded.\n\tSetWatchErrorHandler(handler WatchErrorHandler) error\n\n\t// The TransformFunc is called for each object which is about to be stored.\n\t//\n\t// This function is intended for you to take the opportunity to\n\t// remove, transform, or normalize fields. One use case is to strip unused\n\t// metadata fields out of objects to save on RAM cost.\n\t//\n\t// Must be set before starting the informer.\n\t//\n\t// Please see the comment on TransformFunc for more details.\n\tSetTransform(handler TransformFunc) error\n\n\t// IsStopped reports whether the informer has already been stopped.\n\t// Adding event handlers to already stopped informers is not possible.\n\t// An informer already stopped will never be started again.\n\tIsStopped() bool\n}\n\n// Opaque interface representing the registration of ResourceEventHandler for\n// a SharedInformer. Must be supplied back to the same SharedInformer's\n// `RemoveEventHandler` to unregister the handlers.\n//\n// Also used to tell if the handler is synced (has had all items in the initial\n// list delivered).\ntype ResourceEventHandlerRegistration interface {\n\t// HasSynced reports if both the parent has synced and all pre-sync\n\t// events have been delivered.\n\tHasSynced() bool\n}\n\n// SharedIndexInformer provides add and get Indexers ability based on SharedInformer.\ntype SharedIndexInformer interface {\n\tSharedInformer\n\t// AddIndexers add indexers to the informer before it starts.\n\tAddIndexers(indexers Indexers) error\n\tGetIndexer() Indexer\n}\n\n// NewSharedInformer creates a new instance for the ListerWatcher. See NewSharedIndexInformerWithOptions for full details.\nfunc NewSharedInformer(lw ListerWatcher, exampleObject runtime.Object, defaultEventHandlerResyncPeriod time.Duration) SharedInformer {\n\treturn NewSharedIndexInformer(lw, exampleObject, defaultEventHandlerResyncPeriod, Indexers{})\n}\n\n// NewSharedIndexInformer creates a new instance for the ListerWatcher and specified Indexers. See\n// NewSharedIndexInformerWithOptions for full details.\nfunc NewSharedIndexInformer(lw ListerWatcher, exampleObject runtime.Object, defaultEventHandlerResyncPeriod time.Duration, indexers Indexers) SharedIndexInformer {\n\treturn NewSharedIndexInformerWithOptions(\n\t\tlw,\n\t\texampleObject,\n\t\tSharedIndexInformerOptions{\n\t\t\tResyncPeriod: defaultEventHandlerResyncPeriod,\n\t\t\tIndexers:     indexers,\n\t\t},\n\t)\n}\n\n// NewSharedIndexInformerWithOptions creates a new instance for the ListerWatcher.\n// The created informer will not do resyncs if options.ResyncPeriod is zero.  Otherwise: for each\n// handler that with a non-zero requested resync period, whether added\n// before or after the informer starts, the nominal resync period is\n// the requested resync period rounded up to a multiple of the\n// informer's resync checking period.  Such an informer's resync\n// checking period is established when the informer starts running,\n// and is the maximum of (a) the minimum of the resync periods\n// requested before the informer starts and the\n// options.ResyncPeriod given here and (b) the constant\n// `minimumResyncPeriod` defined in this file.\nfunc NewSharedIndexInformerWithOptions(lw ListerWatcher, exampleObject runtime.Object, options SharedIndexInformerOptions) SharedIndexInformer {\n\trealClock := &clock.RealClock{}\n\n\treturn &sharedIndexInformer{\n\t\tindexer:                         NewIndexer(DeletionHandlingMetaNamespaceKeyFunc, options.Indexers),\n\t\tprocessor:                       &sharedProcessor{clock: realClock},\n\t\tlisterWatcher:                   lw,\n\t\tobjectType:                      exampleObject,\n\t\tobjectDescription:               options.ObjectDescription,\n\t\tresyncCheckPeriod:               options.ResyncPeriod,\n\t\tdefaultEventHandlerResyncPeriod: options.ResyncPeriod,\n\t\tclock:                           realClock,\n\t\tcacheMutationDetector:           NewCacheMutationDetector(fmt.Sprintf(\"%T\", exampleObject)),\n\t}\n}\n\n// SharedIndexInformerOptions configures a sharedIndexInformer.\ntype SharedIndexInformerOptions struct {\n\t// ResyncPeriod is the default event handler resync period and resync check\n\t// period. If unset/unspecified, these are defaulted to 0 (do not resync).\n\tResyncPeriod time.Duration\n\n\t// Indexers is the sharedIndexInformer's indexers. If unset/unspecified, no indexers are configured.\n\tIndexers Indexers\n\n\t// ObjectDescription is the sharedIndexInformer's object description. This is passed through to the\n\t// underlying Reflector's type description.\n\tObjectDescription string\n}\n\n// InformerSynced is a function that can be used to determine if an informer has synced.  This is useful for determining if caches have synced.\ntype InformerSynced func() bool\n\nconst (\n\t// syncedPollPeriod controls how often you look at the status of your sync funcs\n\tsyncedPollPeriod = 100 * time.Millisecond\n\n\t// initialBufferSize is the initial number of event notifications that can be buffered.\n\tinitialBufferSize = 1024\n)\n\n// WaitForNamedCacheSync is a wrapper around WaitForCacheSync that generates log messages\n// indicating that the caller identified by name is waiting for syncs, followed by\n// either a successful or failed sync.\nfunc WaitForNamedCacheSync(controllerName string, stopCh <-chan struct{}, cacheSyncs ...InformerSynced) bool {\n\tklog.Infof(\"Waiting for caches to sync for %s\", controllerName)\n\n\tif !WaitForCacheSync(stopCh, cacheSyncs...) {\n\t\tutilruntime.HandleError(fmt.Errorf(\"unable to sync caches for %s\", controllerName))\n\t\treturn false\n\t}\n\n\tklog.Infof(\"Caches are synced for %s\", controllerName)\n\treturn true\n}\n\n// WaitForCacheSync waits for caches to populate.  It returns true if it was successful, false\n// if the controller should shutdown\n// callers should prefer WaitForNamedCacheSync()\nfunc WaitForCacheSync(stopCh <-chan struct{}, cacheSyncs ...InformerSynced) bool {\n\terr := wait.PollImmediateUntil(syncedPollPeriod,\n\t\tfunc() (bool, error) {\n\t\t\tfor _, syncFunc := range cacheSyncs {\n\t\t\t\tif !syncFunc() {\n\t\t\t\t\treturn false, nil\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true, nil\n\t\t},\n\t\tstopCh)\n\tif err != nil {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n// `*sharedIndexInformer` implements SharedIndexInformer and has three\n// main components.  One is an indexed local cache, `indexer Indexer`.\n// The second main component is a Controller that pulls\n// objects/notifications using the ListerWatcher and pushes them into\n// a DeltaFIFO --- whose knownObjects is the informer's local cache\n// --- while concurrently Popping Deltas values from that fifo and\n// processing them with `sharedIndexInformer::HandleDeltas`.  Each\n// invocation of HandleDeltas, which is done with the fifo's lock\n// held, processes each Delta in turn.  For each Delta this both\n// updates the local cache and stuffs the relevant notification into\n// the sharedProcessor.  The third main component is that\n// sharedProcessor, which is responsible for relaying those\n// notifications to each of the informer's clients.\ntype sharedIndexInformer struct {\n\tindexer    Indexer\n\tcontroller Controller\n\n\tprocessor             *sharedProcessor\n\tcacheMutationDetector MutationDetector\n\n\tlisterWatcher ListerWatcher\n\n\t// objectType is an example object of the type this informer is expected to handle. If set, an event\n\t// with an object with a mismatching type is dropped instead of being delivered to listeners.\n\tobjectType runtime.Object\n\n\t// objectDescription is the description of this informer's objects. This typically defaults to\n\tobjectDescription string\n\n\t// resyncCheckPeriod is how often we want the reflector's resync timer to fire so it can call\n\t// shouldResync to check if any of our listeners need a resync.\n\tresyncCheckPeriod time.Duration\n\t// defaultEventHandlerResyncPeriod is the default resync period for any handlers added via\n\t// AddEventHandler (i.e. they don't specify one and just want to use the shared informer's default\n\t// value).\n\tdefaultEventHandlerResyncPeriod time.Duration\n\t// clock allows for testability\n\tclock clock.Clock\n\n\tstarted, stopped bool\n\tstartedLock      sync.Mutex\n\n\t// blockDeltas gives a way to stop all event distribution so that a late event handler\n\t// can safely join the shared informer.\n\tblockDeltas sync.Mutex\n\n\t// Called whenever the ListAndWatch drops the connection with an error.\n\twatchErrorHandler WatchErrorHandler\n\n\ttransform TransformFunc\n}\n\n// dummyController hides the fact that a SharedInformer is different from a dedicated one\n// where a caller can `Run`.  The run method is disconnected in this case, because higher\n// level logic will decide when to start the SharedInformer and related controller.\n// Because returning information back is always asynchronous, the legacy callers shouldn't\n// notice any change in behavior.\ntype dummyController struct {\n\tinformer *sharedIndexInformer\n}\n\nfunc (v *dummyController) Run(stopCh <-chan struct{}) {\n}\n\nfunc (v *dummyController) HasSynced() bool {\n\treturn v.informer.HasSynced()\n}\n\nfunc (v *dummyController) LastSyncResourceVersion() string {\n\tif clientgofeaturegate.FeatureGates().Enabled(clientgofeaturegate.InformerResourceVersion) {\n\t\treturn v.informer.LastSyncResourceVersion()\n\t}\n\n\treturn \"\"\n}\n\ntype updateNotification struct {\n\toldObj interface{}\n\tnewObj interface{}\n}\n\ntype addNotification struct {\n\tnewObj          interface{}\n\tisInInitialList bool\n}\n\ntype deleteNotification struct {\n\toldObj interface{}\n}\n\nfunc (s *sharedIndexInformer) SetWatchErrorHandler(handler WatchErrorHandler) error {\n\ts.startedLock.Lock()\n\tdefer s.startedLock.Unlock()\n\n\tif s.started {\n\t\treturn fmt.Errorf(\"informer has already started\")\n\t}\n\n\ts.watchErrorHandler = handler\n\treturn nil\n}\n\nfunc (s *sharedIndexInformer) SetTransform(handler TransformFunc) error {\n\ts.startedLock.Lock()\n\tdefer s.startedLock.Unlock()\n\n\tif s.started {\n\t\treturn fmt.Errorf(\"informer has already started\")\n\t}\n\n\ts.transform = handler\n\treturn nil\n}\n\nfunc (s *sharedIndexInformer) Run(stopCh <-chan struct{}) {\n\tdefer utilruntime.HandleCrash()\n\n\tif s.HasStarted() {\n\t\tklog.Warningf(\"The sharedIndexInformer has started, run more than once is not allowed\")\n\t\treturn\n\t}\n\n\tfunc() {\n\t\ts.startedLock.Lock()\n\t\tdefer s.startedLock.Unlock()\n\n\t\tfifo := NewDeltaFIFOWithOptions(DeltaFIFOOptions{\n\t\t\tKnownObjects:          s.indexer,\n\t\t\tEmitDeltaTypeReplaced: true,\n\t\t\tTransformer:           s.transform,\n\t\t})\n\n\t\tcfg := &Config{\n\t\t\tQueue:             fifo,\n\t\t\tListerWatcher:     s.listerWatcher,\n\t\t\tObjectType:        s.objectType,\n\t\t\tObjectDescription: s.objectDescription,\n\t\t\tFullResyncPeriod:  s.resyncCheckPeriod,\n\t\t\tRetryOnError:      false,\n\t\t\tShouldResync:      s.processor.shouldResync,\n\n\t\t\tProcess:           s.HandleDeltas,\n\t\t\tWatchErrorHandler: s.watchErrorHandler,\n\t\t}\n\n\t\ts.controller = New(cfg)\n\t\ts.controller.(*controller).clock = s.clock\n\t\ts.started = true\n\t}()\n\n\t// Separate stop channel because Processor should be stopped strictly after controller\n\tprocessorStopCh := make(chan struct{})\n\tvar wg wait.Group\n\tdefer wg.Wait()              // Wait for Processor to stop\n\tdefer close(processorStopCh) // Tell Processor to stop\n\twg.StartWithChannel(processorStopCh, s.cacheMutationDetector.Run)\n\twg.StartWithChannel(processorStopCh, s.processor.run)\n\n\tdefer func() {\n\t\ts.startedLock.Lock()\n\t\tdefer s.startedLock.Unlock()\n\t\ts.stopped = true // Don't want any new listeners\n\t}()\n\ts.controller.Run(stopCh)\n}\n\nfunc (s *sharedIndexInformer) HasStarted() bool {\n\ts.startedLock.Lock()\n\tdefer s.startedLock.Unlock()\n\treturn s.started\n}\n\nfunc (s *sharedIndexInformer) HasSynced() bool {\n\ts.startedLock.Lock()\n\tdefer s.startedLock.Unlock()\n\n\tif s.controller == nil {\n\t\treturn false\n\t}\n\treturn s.controller.HasSynced()\n}\n\nfunc (s *sharedIndexInformer) LastSyncResourceVersion() string {\n\ts.startedLock.Lock()\n\tdefer s.startedLock.Unlock()\n\n\tif s.controller == nil {\n\t\treturn \"\"\n\t}\n\treturn s.controller.LastSyncResourceVersion()\n}\n\nfunc (s *sharedIndexInformer) GetStore() Store {\n\treturn s.indexer\n}\n\nfunc (s *sharedIndexInformer) GetIndexer() Indexer {\n\treturn s.indexer\n}\n\nfunc (s *sharedIndexInformer) AddIndexers(indexers Indexers) error {\n\ts.startedLock.Lock()\n\tdefer s.startedLock.Unlock()\n\n\tif s.stopped {\n\t\treturn fmt.Errorf(\"indexer was not added because it has stopped already\")\n\t}\n\n\treturn s.indexer.AddIndexers(indexers)\n}\n\nfunc (s *sharedIndexInformer) GetController() Controller {\n\treturn &dummyController{informer: s}\n}\n\nfunc (s *sharedIndexInformer) AddEventHandler(handler ResourceEventHandler) (ResourceEventHandlerRegistration, error) {\n\treturn s.AddEventHandlerWithResyncPeriod(handler, s.defaultEventHandlerResyncPeriod)\n}\n\nfunc determineResyncPeriod(desired, check time.Duration) time.Duration {\n\tif desired == 0 {\n\t\treturn desired\n\t}\n\tif check == 0 {\n\t\tklog.Warningf(\"The specified resyncPeriod %v is invalid because this shared informer doesn't support resyncing\", desired)\n\t\treturn 0\n\t}\n\tif desired < check {\n\t\tklog.Warningf(\"The specified resyncPeriod %v is being increased to the minimum resyncCheckPeriod %v\", desired, check)\n\t\treturn check\n\t}\n\treturn desired\n}\n\nconst minimumResyncPeriod = 1 * time.Second\n\nfunc (s *sharedIndexInformer) AddEventHandlerWithResyncPeriod(handler ResourceEventHandler, resyncPeriod time.Duration) (ResourceEventHandlerRegistration, error) {\n\ts.startedLock.Lock()\n\tdefer s.startedLock.Unlock()\n\n\tif s.stopped {\n\t\treturn nil, fmt.Errorf(\"handler %v was not added to shared informer because it has stopped already\", handler)\n\t}\n\n\tif resyncPeriod > 0 {\n\t\tif resyncPeriod < minimumResyncPeriod {\n\t\t\tklog.Warningf(\"resyncPeriod %v is too small. Changing it to the minimum allowed value of %v\", resyncPeriod, minimumResyncPeriod)\n\t\t\tresyncPeriod = minimumResyncPeriod\n\t\t}\n\n\t\tif resyncPeriod < s.resyncCheckPeriod {\n\t\t\tif s.started {\n\t\t\t\tklog.Warningf(\"resyncPeriod %v is smaller than resyncCheckPeriod %v and the informer has already started. Changing it to %v\", resyncPeriod, s.resyncCheckPeriod, s.resyncCheckPeriod)\n\t\t\t\tresyncPeriod = s.resyncCheckPeriod\n\t\t\t} else {\n\t\t\t\t// if the event handler's resyncPeriod is smaller than the current resyncCheckPeriod, update\n\t\t\t\t// resyncCheckPeriod to match resyncPeriod and adjust the resync periods of all the listeners\n\t\t\t\t// accordingly\n\t\t\t\ts.resyncCheckPeriod = resyncPeriod\n\t\t\t\ts.processor.resyncCheckPeriodChanged(resyncPeriod)\n\t\t\t}\n\t\t}\n\t}\n\n\tlistener := newProcessListener(handler, resyncPeriod, determineResyncPeriod(resyncPeriod, s.resyncCheckPeriod), s.clock.Now(), initialBufferSize, s.HasSynced)\n\n\tif !s.started {\n\t\treturn s.processor.addListener(listener), nil\n\t}\n\n\t// in order to safely join, we have to\n\t// 1. stop sending add/update/delete notifications\n\t// 2. do a list against the store\n\t// 3. send synthetic \"Add\" events to the new handler\n\t// 4. unblock\n\ts.blockDeltas.Lock()\n\tdefer s.blockDeltas.Unlock()\n\n\thandle := s.processor.addListener(listener)\n\tfor _, item := range s.indexer.List() {\n\t\t// Note that we enqueue these notifications with the lock held\n\t\t// and before returning the handle. That means there is never a\n\t\t// chance for anyone to call the handle's HasSynced method in a\n\t\t// state when it would falsely return true (i.e., when the\n\t\t// shared informer is synced but it has not observed an Add\n\t\t// with isInitialList being true, nor when the thread\n\t\t// processing notifications somehow goes faster than this\n\t\t// thread adding them and the counter is temporarily zero).\n\t\tlistener.add(addNotification{newObj: item, isInInitialList: true})\n\t}\n\treturn handle, nil\n}\n\nfunc (s *sharedIndexInformer) HandleDeltas(obj interface{}, isInInitialList bool) error {\n\ts.blockDeltas.Lock()\n\tdefer s.blockDeltas.Unlock()\n\n\tif deltas, ok := obj.(Deltas); ok {\n\t\treturn processDeltas(s, s.indexer, deltas, isInInitialList)\n\t}\n\treturn errors.New(\"object given as Process argument is not Deltas\")\n}\n\n// Conforms to ResourceEventHandler\nfunc (s *sharedIndexInformer) OnAdd(obj interface{}, isInInitialList bool) {\n\t// Invocation of this function is locked under s.blockDeltas, so it is\n\t// save to distribute the notification\n\ts.cacheMutationDetector.AddObject(obj)\n\ts.processor.distribute(addNotification{newObj: obj, isInInitialList: isInInitialList}, false)\n}\n\n// Conforms to ResourceEventHandler\nfunc (s *sharedIndexInformer) OnUpdate(old, new interface{}) {\n\tisSync := false\n\n\t// If is a Sync event, isSync should be true\n\t// If is a Replaced event, isSync is true if resource version is unchanged.\n\t// If RV is unchanged: this is a Sync/Replaced event, so isSync is true\n\n\tif accessor, err := meta.Accessor(new); err == nil {\n\t\tif oldAccessor, err := meta.Accessor(old); err == nil {\n\t\t\t// Events that didn't change resourceVersion are treated as resync events\n\t\t\t// and only propagated to listeners that requested resync\n\t\t\tisSync = accessor.GetResourceVersion() == oldAccessor.GetResourceVersion()\n\t\t}\n\t}\n\n\t// Invocation of this function is locked under s.blockDeltas, so it is\n\t// save to distribute the notification\n\ts.cacheMutationDetector.AddObject(new)\n\ts.processor.distribute(updateNotification{oldObj: old, newObj: new}, isSync)\n}\n\n// Conforms to ResourceEventHandler\nfunc (s *sharedIndexInformer) OnDelete(old interface{}) {\n\t// Invocation of this function is locked under s.blockDeltas, so it is\n\t// save to distribute the notification\n\ts.processor.distribute(deleteNotification{oldObj: old}, false)\n}\n\n// IsStopped reports whether the informer has already been stopped\nfunc (s *sharedIndexInformer) IsStopped() bool {\n\ts.startedLock.Lock()\n\tdefer s.startedLock.Unlock()\n\treturn s.stopped\n}\n\nfunc (s *sharedIndexInformer) RemoveEventHandler(handle ResourceEventHandlerRegistration) error {\n\ts.startedLock.Lock()\n\tdefer s.startedLock.Unlock()\n\n\t// in order to safely remove, we have to\n\t// 1. stop sending add/update/delete notifications\n\t// 2. remove and stop listener\n\t// 3. unblock\n\ts.blockDeltas.Lock()\n\tdefer s.blockDeltas.Unlock()\n\treturn s.processor.removeListener(handle)\n}\n\n// sharedProcessor has a collection of processorListener and can\n// distribute a notification object to its listeners.  There are two\n// kinds of distribute operations.  The sync distributions go to a\n// subset of the listeners that (a) is recomputed in the occasional\n// calls to shouldResync and (b) every listener is initially put in.\n// The non-sync distributions go to every listener.\ntype sharedProcessor struct {\n\tlistenersStarted bool\n\tlistenersLock    sync.RWMutex\n\t// Map from listeners to whether or not they are currently syncing\n\tlisteners map[*processorListener]bool\n\tclock     clock.Clock\n\twg        wait.Group\n}\n\nfunc (p *sharedProcessor) getListener(registration ResourceEventHandlerRegistration) *processorListener {\n\tp.listenersLock.RLock()\n\tdefer p.listenersLock.RUnlock()\n\n\tif p.listeners == nil {\n\t\treturn nil\n\t}\n\n\tif result, ok := registration.(*processorListener); ok {\n\t\tif _, exists := p.listeners[result]; exists {\n\t\t\treturn result\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc (p *sharedProcessor) addListener(listener *processorListener) ResourceEventHandlerRegistration {\n\tp.listenersLock.Lock()\n\tdefer p.listenersLock.Unlock()\n\n\tif p.listeners == nil {\n\t\tp.listeners = make(map[*processorListener]bool)\n\t}\n\n\tp.listeners[listener] = true\n\n\tif p.listenersStarted {\n\t\tp.wg.Start(listener.run)\n\t\tp.wg.Start(listener.pop)\n\t}\n\n\treturn listener\n}\n\nfunc (p *sharedProcessor) removeListener(handle ResourceEventHandlerRegistration) error {\n\tp.listenersLock.Lock()\n\tdefer p.listenersLock.Unlock()\n\n\tlistener, ok := handle.(*processorListener)\n\tif !ok {\n\t\treturn fmt.Errorf(\"invalid key type %t\", handle)\n\t} else if p.listeners == nil {\n\t\t// No listeners are registered, do nothing\n\t\treturn nil\n\t} else if _, exists := p.listeners[listener]; !exists {\n\t\t// Listener is not registered, just do nothing\n\t\treturn nil\n\t}\n\n\tdelete(p.listeners, listener)\n\n\tif p.listenersStarted {\n\t\tclose(listener.addCh)\n\t}\n\n\treturn nil\n}\n\nfunc (p *sharedProcessor) distribute(obj interface{}, sync bool) {\n\tp.listenersLock.RLock()\n\tdefer p.listenersLock.RUnlock()\n\n\tfor listener, isSyncing := range p.listeners {\n\t\tswitch {\n\t\tcase !sync:\n\t\t\t// non-sync messages are delivered to every listener\n\t\t\tlistener.add(obj)\n\t\tcase isSyncing:\n\t\t\t// sync messages are delivered to every syncing listener\n\t\t\tlistener.add(obj)\n\t\tdefault:\n\t\t\t// skipping a sync obj for a non-syncing listener\n\t\t}\n\t}\n}\n\nfunc (p *sharedProcessor) run(stopCh <-chan struct{}) {\n\tfunc() {\n\t\tp.listenersLock.RLock()\n\t\tdefer p.listenersLock.RUnlock()\n\t\tfor listener := range p.listeners {\n\t\t\tp.wg.Start(listener.run)\n\t\t\tp.wg.Start(listener.pop)\n\t\t}\n\t\tp.listenersStarted = true\n\t}()\n\t<-stopCh\n\n\tp.listenersLock.Lock()\n\tdefer p.listenersLock.Unlock()\n\tfor listener := range p.listeners {\n\t\tclose(listener.addCh) // Tell .pop() to stop. .pop() will tell .run() to stop\n\t}\n\n\t// Wipe out list of listeners since they are now closed\n\t// (processorListener cannot be re-used)\n\tp.listeners = nil\n\n\t// Reset to false since no listeners are running\n\tp.listenersStarted = false\n\n\tp.wg.Wait() // Wait for all .pop() and .run() to stop\n}\n\n// shouldResync queries every listener to determine if any of them need a resync, based on each\n// listener's resyncPeriod.\nfunc (p *sharedProcessor) shouldResync() bool {\n\tp.listenersLock.Lock()\n\tdefer p.listenersLock.Unlock()\n\n\tresyncNeeded := false\n\tnow := p.clock.Now()\n\tfor listener := range p.listeners {\n\t\t// need to loop through all the listeners to see if they need to resync so we can prepare any\n\t\t// listeners that are going to be resyncing.\n\t\tshouldResync := listener.shouldResync(now)\n\t\tp.listeners[listener] = shouldResync\n\n\t\tif shouldResync {\n\t\t\tresyncNeeded = true\n\t\t\tlistener.determineNextResync(now)\n\t\t}\n\t}\n\treturn resyncNeeded\n}\n\nfunc (p *sharedProcessor) resyncCheckPeriodChanged(resyncCheckPeriod time.Duration) {\n\tp.listenersLock.RLock()\n\tdefer p.listenersLock.RUnlock()\n\n\tfor listener := range p.listeners {\n\t\tresyncPeriod := determineResyncPeriod(\n\t\t\tlistener.requestedResyncPeriod, resyncCheckPeriod)\n\t\tlistener.setResyncPeriod(resyncPeriod)\n\t}\n}\n\n// processorListener relays notifications from a sharedProcessor to\n// one ResourceEventHandler --- using two goroutines, two unbuffered\n// channels, and an unbounded ring buffer.  The `add(notification)`\n// function sends the given notification to `addCh`.  One goroutine\n// runs `pop()`, which pumps notifications from `addCh` to `nextCh`\n// using storage in the ring buffer while `nextCh` is not keeping up.\n// Another goroutine runs `run()`, which receives notifications from\n// `nextCh` and synchronously invokes the appropriate handler method.\n//\n// processorListener also keeps track of the adjusted requested resync\n// period of the listener.\ntype processorListener struct {\n\tnextCh chan interface{}\n\taddCh  chan interface{}\n\n\thandler ResourceEventHandler\n\n\tsyncTracker *synctrack.SingleFileTracker\n\n\t// pendingNotifications is an unbounded ring buffer that holds all notifications not yet distributed.\n\t// There is one per listener, but a failing/stalled listener will have infinite pendingNotifications\n\t// added until we OOM.\n\t// TODO: This is no worse than before, since reflectors were backed by unbounded DeltaFIFOs, but\n\t// we should try to do something better.\n\tpendingNotifications buffer.RingGrowing\n\n\t// requestedResyncPeriod is how frequently the listener wants a\n\t// full resync from the shared informer, but modified by two\n\t// adjustments.  One is imposing a lower bound,\n\t// `minimumResyncPeriod`.  The other is another lower bound, the\n\t// sharedIndexInformer's `resyncCheckPeriod`, that is imposed (a) only\n\t// in AddEventHandlerWithResyncPeriod invocations made after the\n\t// sharedIndexInformer starts and (b) only if the informer does\n\t// resyncs at all.\n\trequestedResyncPeriod time.Duration\n\t// resyncPeriod is the threshold that will be used in the logic\n\t// for this listener.  This value differs from\n\t// requestedResyncPeriod only when the sharedIndexInformer does\n\t// not do resyncs, in which case the value here is zero.  The\n\t// actual time between resyncs depends on when the\n\t// sharedProcessor's `shouldResync` function is invoked and when\n\t// the sharedIndexInformer processes `Sync` type Delta objects.\n\tresyncPeriod time.Duration\n\t// nextResync is the earliest time the listener should get a full resync\n\tnextResync time.Time\n\t// resyncLock guards access to resyncPeriod and nextResync\n\tresyncLock sync.Mutex\n}\n\n// HasSynced returns true if the source informer has synced, and all\n// corresponding events have been delivered.\nfunc (p *processorListener) HasSynced() bool {\n\treturn p.syncTracker.HasSynced()\n}\n\nfunc newProcessListener(handler ResourceEventHandler, requestedResyncPeriod, resyncPeriod time.Duration, now time.Time, bufferSize int, hasSynced func() bool) *processorListener {\n\tret := &processorListener{\n\t\tnextCh:                make(chan interface{}),\n\t\taddCh:                 make(chan interface{}),\n\t\thandler:               handler,\n\t\tsyncTracker:           &synctrack.SingleFileTracker{UpstreamHasSynced: hasSynced},\n\t\tpendingNotifications:  *buffer.NewRingGrowing(bufferSize),\n\t\trequestedResyncPeriod: requestedResyncPeriod,\n\t\tresyncPeriod:          resyncPeriod,\n\t}\n\n\tret.determineNextResync(now)\n\n\treturn ret\n}\n\nfunc (p *processorListener) add(notification interface{}) {\n\tif a, ok := notification.(addNotification); ok && a.isInInitialList {\n\t\tp.syncTracker.Start()\n\t}\n\tp.addCh <- notification\n}\n\nfunc (p *processorListener) pop() {\n\tdefer utilruntime.HandleCrash()\n\tdefer close(p.nextCh) // Tell .run() to stop\n\n\tvar nextCh chan<- interface{}\n\tvar notification interface{}\n\tfor {\n\t\tselect {\n\t\tcase nextCh <- notification:\n\t\t\t// Notification dispatched\n\t\t\tvar ok bool\n\t\t\tnotification, ok = p.pendingNotifications.ReadOne()\n\t\t\tif !ok { // Nothing to pop\n\t\t\t\tnextCh = nil // Disable this select case\n\t\t\t}\n\t\tcase notificationToAdd, ok := <-p.addCh:\n\t\t\tif !ok {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif notification == nil { // No notification to pop (and pendingNotifications is empty)\n\t\t\t\t// Optimize the case - skip adding to pendingNotifications\n\t\t\t\tnotification = notificationToAdd\n\t\t\t\tnextCh = p.nextCh\n\t\t\t} else { // There is already a notification waiting to be dispatched\n\t\t\t\tp.pendingNotifications.WriteOne(notificationToAdd)\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunc (p *processorListener) run() {\n\t// this call blocks until the channel is closed.  When a panic happens during the notification\n\t// we will catch it, **the offending item will be skipped!**, and after a short delay (one second)\n\t// the next notification will be attempted.  This is usually better than the alternative of never\n\t// delivering again.\n\tstopCh := make(chan struct{})\n\twait.Until(func() {\n\t\tfor next := range p.nextCh {\n\t\t\tswitch notification := next.(type) {\n\t\t\tcase updateNotification:\n\t\t\t\tp.handler.OnUpdate(notification.oldObj, notification.newObj)\n\t\t\tcase addNotification:\n\t\t\t\tp.handler.OnAdd(notification.newObj, notification.isInInitialList)\n\t\t\t\tif notification.isInInitialList {\n\t\t\t\t\tp.syncTracker.Finished()\n\t\t\t\t}\n\t\t\tcase deleteNotification:\n\t\t\t\tp.handler.OnDelete(notification.oldObj)\n\t\t\tdefault:\n\t\t\t\tutilruntime.HandleError(fmt.Errorf(\"unrecognized notification: %T\", next))\n\t\t\t}\n\t\t}\n\t\t// the only way to get here is if the p.nextCh is empty and closed\n\t\tclose(stopCh)\n\t}, 1*time.Second, stopCh)\n}\n\n// shouldResync deterimines if the listener needs a resync. If the listener's resyncPeriod is 0,\n// this always returns false.\nfunc (p *processorListener) shouldResync(now time.Time) bool {\n\tp.resyncLock.Lock()\n\tdefer p.resyncLock.Unlock()\n\n\tif p.resyncPeriod == 0 {\n\t\treturn false\n\t}\n\n\treturn now.After(p.nextResync) || now.Equal(p.nextResync)\n}\n\nfunc (p *processorListener) determineNextResync(now time.Time) {\n\tp.resyncLock.Lock()\n\tdefer p.resyncLock.Unlock()\n\n\tp.nextResync = now.Add(p.resyncPeriod)\n}\n\nfunc (p *processorListener) setResyncPeriod(resyncPeriod time.Duration) {\n\tp.resyncLock.Lock()\n\tdefer p.resyncLock.Unlock()\n\n\tp.resyncPeriod = resyncPeriod\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/cache/store.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage cache\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\n\t\"k8s.io/apimachinery/pkg/api/meta\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n)\n\n// Store is a generic object storage and processing interface.  A\n// Store holds a map from string keys to accumulators, and has\n// operations to add, update, and delete a given object to/from the\n// accumulator currently associated with a given key.  A Store also\n// knows how to extract the key from a given object, so many operations\n// are given only the object.\n//\n// In the simplest Store implementations each accumulator is simply\n// the last given object, or empty after Delete, and thus the Store's\n// behavior is simple storage.\n//\n// Reflector knows how to watch a server and update a Store.  This\n// package provides a variety of implementations of Store.\ntype Store interface {\n\n\t// Add adds the given object to the accumulator associated with the given object's key\n\tAdd(obj interface{}) error\n\n\t// Update updates the given object in the accumulator associated with the given object's key\n\tUpdate(obj interface{}) error\n\n\t// Delete deletes the given object from the accumulator associated with the given object's key\n\tDelete(obj interface{}) error\n\n\t// List returns a list of all the currently non-empty accumulators\n\tList() []interface{}\n\n\t// ListKeys returns a list of all the keys currently associated with non-empty accumulators\n\tListKeys() []string\n\n\t// Get returns the accumulator associated with the given object's key\n\tGet(obj interface{}) (item interface{}, exists bool, err error)\n\n\t// GetByKey returns the accumulator associated with the given key\n\tGetByKey(key string) (item interface{}, exists bool, err error)\n\n\t// Replace will delete the contents of the store, using instead the\n\t// given list. Store takes ownership of the list, you should not reference\n\t// it after calling this function.\n\tReplace([]interface{}, string) error\n\n\t// Resync is meaningless in the terms appearing here but has\n\t// meaning in some implementations that have non-trivial\n\t// additional behavior (e.g., DeltaFIFO).\n\tResync() error\n}\n\n// KeyFunc knows how to make a key from an object. Implementations should be deterministic.\ntype KeyFunc func(obj interface{}) (string, error)\n\n// KeyError will be returned any time a KeyFunc gives an error; it includes the object\n// at fault.\ntype KeyError struct {\n\tObj interface{}\n\tErr error\n}\n\n// Error gives a human-readable description of the error.\nfunc (k KeyError) Error() string {\n\treturn fmt.Sprintf(\"couldn't create key for object %+v: %v\", k.Obj, k.Err)\n}\n\n// Unwrap implements errors.Unwrap\nfunc (k KeyError) Unwrap() error {\n\treturn k.Err\n}\n\n// ExplicitKey can be passed to MetaNamespaceKeyFunc if you have the key for\n// the object but not the object itself.\ntype ExplicitKey string\n\n// MetaNamespaceKeyFunc is a convenient default KeyFunc which knows how to make\n// keys for API objects which implement meta.Interface.\n// The key uses the format <namespace>/<name> unless <namespace> is empty, then\n// it's just <name>.\n//\n// Clients that want a structured alternative can use ObjectToName or MetaObjectToName.\n// Note: this would not be a client that wants a key for a Store because those are\n// necessarily strings.\n//\n// TODO maybe some day?: change Store to be keyed differently\nfunc MetaNamespaceKeyFunc(obj interface{}) (string, error) {\n\tif key, ok := obj.(ExplicitKey); ok {\n\t\treturn string(key), nil\n\t}\n\tobjName, err := ObjectToName(obj)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\treturn objName.String(), nil\n}\n\n// ObjectToName returns the structured name for the given object,\n// if indeed it can be viewed as a metav1.Object.\nfunc ObjectToName(obj interface{}) (ObjectName, error) {\n\tmeta, err := meta.Accessor(obj)\n\tif err != nil {\n\t\treturn ObjectName{}, fmt.Errorf(\"object has no meta: %v\", err)\n\t}\n\treturn MetaObjectToName(meta), nil\n}\n\n// MetaObjectToName returns the structured name for the given object\nfunc MetaObjectToName(obj metav1.Object) ObjectName {\n\tif len(obj.GetNamespace()) > 0 {\n\t\treturn ObjectName{Namespace: obj.GetNamespace(), Name: obj.GetName()}\n\t}\n\treturn ObjectName{Namespace: \"\", Name: obj.GetName()}\n}\n\n// SplitMetaNamespaceKey returns the namespace and name that\n// MetaNamespaceKeyFunc encoded into key.\n//\n// TODO: replace key-as-string with a key-as-struct so that this\n// packing/unpacking won't be necessary.\nfunc SplitMetaNamespaceKey(key string) (namespace, name string, err error) {\n\tparts := strings.Split(key, \"/\")\n\tswitch len(parts) {\n\tcase 1:\n\t\t// name only, no namespace\n\t\treturn \"\", parts[0], nil\n\tcase 2:\n\t\t// namespace and name\n\t\treturn parts[0], parts[1], nil\n\t}\n\n\treturn \"\", \"\", fmt.Errorf(\"unexpected key format: %q\", key)\n}\n\n// `*cache` implements Indexer in terms of a ThreadSafeStore and an\n// associated KeyFunc.\ntype cache struct {\n\t// cacheStorage bears the burden of thread safety for the cache\n\tcacheStorage ThreadSafeStore\n\t// keyFunc is used to make the key for objects stored in and retrieved from items, and\n\t// should be deterministic.\n\tkeyFunc KeyFunc\n}\n\nvar _ Store = &cache{}\n\n// Add inserts an item into the cache.\nfunc (c *cache) Add(obj interface{}) error {\n\tkey, err := c.keyFunc(obj)\n\tif err != nil {\n\t\treturn KeyError{obj, err}\n\t}\n\tc.cacheStorage.Add(key, obj)\n\treturn nil\n}\n\n// Update sets an item in the cache to its updated state.\nfunc (c *cache) Update(obj interface{}) error {\n\tkey, err := c.keyFunc(obj)\n\tif err != nil {\n\t\treturn KeyError{obj, err}\n\t}\n\tc.cacheStorage.Update(key, obj)\n\treturn nil\n}\n\n// Delete removes an item from the cache.\nfunc (c *cache) Delete(obj interface{}) error {\n\tkey, err := c.keyFunc(obj)\n\tif err != nil {\n\t\treturn KeyError{obj, err}\n\t}\n\tc.cacheStorage.Delete(key)\n\treturn nil\n}\n\n// List returns a list of all the items.\n// List is completely threadsafe as long as you treat all items as immutable.\nfunc (c *cache) List() []interface{} {\n\treturn c.cacheStorage.List()\n}\n\n// ListKeys returns a list of all the keys of the objects currently\n// in the cache.\nfunc (c *cache) ListKeys() []string {\n\treturn c.cacheStorage.ListKeys()\n}\n\n// GetIndexers returns the indexers of cache\nfunc (c *cache) GetIndexers() Indexers {\n\treturn c.cacheStorage.GetIndexers()\n}\n\n// Index returns a list of items that match on the index function\n// Index is thread-safe so long as you treat all items as immutable\nfunc (c *cache) Index(indexName string, obj interface{}) ([]interface{}, error) {\n\treturn c.cacheStorage.Index(indexName, obj)\n}\n\n// IndexKeys returns the storage keys of the stored objects whose set of\n// indexed values for the named index includes the given indexed value.\n// The returned keys are suitable to pass to GetByKey().\nfunc (c *cache) IndexKeys(indexName, indexedValue string) ([]string, error) {\n\treturn c.cacheStorage.IndexKeys(indexName, indexedValue)\n}\n\n// ListIndexFuncValues returns the list of generated values of an Index func\nfunc (c *cache) ListIndexFuncValues(indexName string) []string {\n\treturn c.cacheStorage.ListIndexFuncValues(indexName)\n}\n\n// ByIndex returns the stored objects whose set of indexed values\n// for the named index includes the given indexed value.\nfunc (c *cache) ByIndex(indexName, indexedValue string) ([]interface{}, error) {\n\treturn c.cacheStorage.ByIndex(indexName, indexedValue)\n}\n\nfunc (c *cache) AddIndexers(newIndexers Indexers) error {\n\treturn c.cacheStorage.AddIndexers(newIndexers)\n}\n\n// Get returns the requested item, or sets exists=false.\n// Get is completely threadsafe as long as you treat all items as immutable.\nfunc (c *cache) Get(obj interface{}) (item interface{}, exists bool, err error) {\n\tkey, err := c.keyFunc(obj)\n\tif err != nil {\n\t\treturn nil, false, KeyError{obj, err}\n\t}\n\treturn c.GetByKey(key)\n}\n\n// GetByKey returns the request item, or exists=false.\n// GetByKey is completely threadsafe as long as you treat all items as immutable.\nfunc (c *cache) GetByKey(key string) (item interface{}, exists bool, err error) {\n\titem, exists = c.cacheStorage.Get(key)\n\treturn item, exists, nil\n}\n\n// Replace will delete the contents of 'c', using instead the given list.\n// 'c' takes ownership of the list, you should not reference the list again\n// after calling this function.\nfunc (c *cache) Replace(list []interface{}, resourceVersion string) error {\n\titems := make(map[string]interface{}, len(list))\n\tfor _, item := range list {\n\t\tkey, err := c.keyFunc(item)\n\t\tif err != nil {\n\t\t\treturn KeyError{item, err}\n\t\t}\n\t\titems[key] = item\n\t}\n\tc.cacheStorage.Replace(items, resourceVersion)\n\treturn nil\n}\n\n// Resync is meaningless for one of these\nfunc (c *cache) Resync() error {\n\treturn nil\n}\n\n// NewStore returns a Store implemented simply with a map and a lock.\nfunc NewStore(keyFunc KeyFunc) Store {\n\treturn &cache{\n\t\tcacheStorage: NewThreadSafeStore(Indexers{}, Indices{}),\n\t\tkeyFunc:      keyFunc,\n\t}\n}\n\n// NewIndexer returns an Indexer implemented simply with a map and a lock.\nfunc NewIndexer(keyFunc KeyFunc, indexers Indexers) Indexer {\n\treturn &cache{\n\t\tcacheStorage: NewThreadSafeStore(indexers, Indices{}),\n\t\tkeyFunc:      keyFunc,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/cache/synctrack/lazy.go",
    "content": "/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage synctrack\n\nimport (\n\t\"sync\"\n\t\"sync/atomic\"\n)\n\n// Lazy defers the computation of `Evaluate` to when it is necessary. It is\n// possible that Evaluate will be called in parallel from multiple goroutines.\ntype Lazy[T any] struct {\n\tEvaluate func() (T, error)\n\n\tcache atomic.Pointer[cacheEntry[T]]\n}\n\ntype cacheEntry[T any] struct {\n\teval   func() (T, error)\n\tlock   sync.RWMutex\n\tresult *T\n}\n\nfunc (e *cacheEntry[T]) get() (T, error) {\n\tif cur := func() *T {\n\t\te.lock.RLock()\n\t\tdefer e.lock.RUnlock()\n\t\treturn e.result\n\t}(); cur != nil {\n\t\treturn *cur, nil\n\t}\n\n\te.lock.Lock()\n\tdefer e.lock.Unlock()\n\tif e.result != nil {\n\t\treturn *e.result, nil\n\t}\n\tr, err := e.eval()\n\tif err == nil {\n\t\te.result = &r\n\t}\n\treturn r, err\n}\n\nfunc (z *Lazy[T]) newCacheEntry() *cacheEntry[T] {\n\treturn &cacheEntry[T]{eval: z.Evaluate}\n}\n\n// Notify should be called when something has changed necessitating a new call\n// to Evaluate.\nfunc (z *Lazy[T]) Notify() { z.cache.Swap(z.newCacheEntry()) }\n\n// Get should be called to get the current result of a call to Evaluate. If the\n// current cached value is stale (due to a call to Notify), then Evaluate will\n// be called synchronously. If subsequent calls to Get happen (without another\n// Notify), they will all wait for the same return value.\n//\n// Error returns are not cached and will cause multiple calls to evaluate!\nfunc (z *Lazy[T]) Get() (T, error) {\n\te := z.cache.Load()\n\tif e == nil {\n\t\t// Since we don't force a constructor, nil is a possible value.\n\t\t// If multiple Gets race to set this, the swap makes sure only\n\t\t// one wins.\n\t\tz.cache.CompareAndSwap(nil, z.newCacheEntry())\n\t\te = z.cache.Load()\n\t}\n\treturn e.get()\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/cache/synctrack/synctrack.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package synctrack contains utilities for helping controllers track whether\n// they are \"synced\" or not, that is, whether they have processed all items\n// from the informer's initial list.\npackage synctrack\n\nimport (\n\t\"sync\"\n\t\"sync/atomic\"\n\n\t\"k8s.io/apimachinery/pkg/util/sets\"\n)\n\n// AsyncTracker helps propagate HasSynced in the face of multiple worker threads.\ntype AsyncTracker[T comparable] struct {\n\tUpstreamHasSynced func() bool\n\n\tlock    sync.Mutex\n\twaiting sets.Set[T]\n}\n\n// Start should be called prior to processing each key which is part of the\n// initial list.\nfunc (t *AsyncTracker[T]) Start(key T) {\n\tt.lock.Lock()\n\tdefer t.lock.Unlock()\n\tif t.waiting == nil {\n\t\tt.waiting = sets.New[T](key)\n\t} else {\n\t\tt.waiting.Insert(key)\n\t}\n}\n\n// Finished should be called when finished processing a key which was part of\n// the initial list. Since keys are tracked individually, nothing bad happens\n// if you call Finished without a corresponding call to Start. This makes it\n// easier to use this in combination with e.g. queues which don't make it easy\n// to plumb through the isInInitialList boolean.\nfunc (t *AsyncTracker[T]) Finished(key T) {\n\tt.lock.Lock()\n\tdefer t.lock.Unlock()\n\tif t.waiting != nil {\n\t\tt.waiting.Delete(key)\n\t}\n}\n\n// HasSynced returns true if the source is synced and every key present in the\n// initial list has been processed. This relies on the source not considering\n// itself synced until *after* it has delivered the notification for the last\n// key, and that notification handler must have called Start.\nfunc (t *AsyncTracker[T]) HasSynced() bool {\n\t// Call UpstreamHasSynced first: it might take a lock, which might take\n\t// a significant amount of time, and we can't hold our lock while\n\t// waiting on that or a user is likely to get a deadlock.\n\tif !t.UpstreamHasSynced() {\n\t\treturn false\n\t}\n\tt.lock.Lock()\n\tdefer t.lock.Unlock()\n\treturn t.waiting.Len() == 0\n}\n\n// SingleFileTracker helps propagate HasSynced when events are processed in\n// order (i.e. via a queue).\ntype SingleFileTracker struct {\n\t// Important: count is used with atomic operations so it must be 64-bit\n\t// aligned, otherwise atomic operations will panic. Having it at the top of\n\t// the struct will guarantee that, even on 32-bit arches.\n\t// See https://pkg.go.dev/sync/atomic#pkg-note-BUG for more information.\n\tcount int64\n\n\tUpstreamHasSynced func() bool\n}\n\n// Start should be called prior to processing each key which is part of the\n// initial list.\nfunc (t *SingleFileTracker) Start() {\n\tatomic.AddInt64(&t.count, 1)\n}\n\n// Finished should be called when finished processing a key which was part of\n// the initial list. You must never call Finished() before (or without) its\n// corresponding Start(), that is a logic error that could cause HasSynced to\n// return a wrong value. To help you notice this should it happen, Finished()\n// will panic if the internal counter goes negative.\nfunc (t *SingleFileTracker) Finished() {\n\tresult := atomic.AddInt64(&t.count, -1)\n\tif result < 0 {\n\t\tpanic(\"synctrack: negative counter; this logic error means HasSynced may return incorrect value\")\n\t}\n}\n\n// HasSynced returns true if the source is synced and every key present in the\n// initial list has been processed. This relies on the source not considering\n// itself synced until *after* it has delivered the notification for the last\n// key, and that notification handler must have called Start.\nfunc (t *SingleFileTracker) HasSynced() bool {\n\t// Call UpstreamHasSynced first: it might take a lock, which might take\n\t// a significant amount of time, and we don't want to then act on a\n\t// stale count value.\n\tif !t.UpstreamHasSynced() {\n\t\treturn false\n\t}\n\treturn atomic.LoadInt64(&t.count) <= 0\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/cache/thread_safe_store.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage cache\n\nimport (\n\t\"fmt\"\n\t\"sync\"\n\n\t\"k8s.io/apimachinery/pkg/util/sets\"\n)\n\n// ThreadSafeStore is an interface that allows concurrent indexed\n// access to a storage backend.  It is like Indexer but does not\n// (necessarily) know how to extract the Store key from a given\n// object.\n//\n// TL;DR caveats: you must not modify anything returned by Get or List as it will break\n// the indexing feature in addition to not being thread safe.\n//\n// The guarantees of thread safety provided by List/Get are only valid if the caller\n// treats returned items as read-only. For example, a pointer inserted in the store\n// through `Add` will be returned as is by `Get`. Multiple clients might invoke `Get`\n// on the same key and modify the pointer in a non-thread-safe way. Also note that\n// modifying objects stored by the indexers (if any) will *not* automatically lead\n// to a re-index. So it's not a good idea to directly modify the objects returned by\n// Get/List, in general.\ntype ThreadSafeStore interface {\n\tAdd(key string, obj interface{})\n\tUpdate(key string, obj interface{})\n\tDelete(key string)\n\tGet(key string) (item interface{}, exists bool)\n\tList() []interface{}\n\tListKeys() []string\n\tReplace(map[string]interface{}, string)\n\tIndex(indexName string, obj interface{}) ([]interface{}, error)\n\tIndexKeys(indexName, indexedValue string) ([]string, error)\n\tListIndexFuncValues(name string) []string\n\tByIndex(indexName, indexedValue string) ([]interface{}, error)\n\tGetIndexers() Indexers\n\n\t// AddIndexers adds more indexers to this store. This supports adding indexes after the store already has items.\n\tAddIndexers(newIndexers Indexers) error\n\t// Resync is a no-op and is deprecated\n\tResync() error\n}\n\n// storeIndex implements the indexing functionality for Store interface\ntype storeIndex struct {\n\t// indexers maps a name to an IndexFunc\n\tindexers Indexers\n\t// indices maps a name to an Index\n\tindices Indices\n}\n\nfunc (i *storeIndex) reset() {\n\ti.indices = Indices{}\n}\n\nfunc (i *storeIndex) getKeysFromIndex(indexName string, obj interface{}) (sets.String, error) {\n\tindexFunc := i.indexers[indexName]\n\tif indexFunc == nil {\n\t\treturn nil, fmt.Errorf(\"Index with name %s does not exist\", indexName)\n\t}\n\n\tindexedValues, err := indexFunc(obj)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tindex := i.indices[indexName]\n\n\tvar storeKeySet sets.String\n\tif len(indexedValues) == 1 {\n\t\t// In majority of cases, there is exactly one value matching.\n\t\t// Optimize the most common path - deduping is not needed here.\n\t\tstoreKeySet = index[indexedValues[0]]\n\t} else {\n\t\t// Need to de-dupe the return list.\n\t\t// Since multiple keys are allowed, this can happen.\n\t\tstoreKeySet = sets.String{}\n\t\tfor _, indexedValue := range indexedValues {\n\t\t\tfor key := range index[indexedValue] {\n\t\t\t\tstoreKeySet.Insert(key)\n\t\t\t}\n\t\t}\n\t}\n\n\treturn storeKeySet, nil\n}\n\nfunc (i *storeIndex) getKeysByIndex(indexName, indexedValue string) (sets.String, error) {\n\tindexFunc := i.indexers[indexName]\n\tif indexFunc == nil {\n\t\treturn nil, fmt.Errorf(\"Index with name %s does not exist\", indexName)\n\t}\n\n\tindex := i.indices[indexName]\n\treturn index[indexedValue], nil\n}\n\nfunc (i *storeIndex) getIndexValues(indexName string) []string {\n\tindex := i.indices[indexName]\n\tnames := make([]string, 0, len(index))\n\tfor key := range index {\n\t\tnames = append(names, key)\n\t}\n\treturn names\n}\n\nfunc (i *storeIndex) addIndexers(newIndexers Indexers) error {\n\toldKeys := sets.StringKeySet(i.indexers)\n\tnewKeys := sets.StringKeySet(newIndexers)\n\n\tif oldKeys.HasAny(newKeys.List()...) {\n\t\treturn fmt.Errorf(\"indexer conflict: %v\", oldKeys.Intersection(newKeys))\n\t}\n\n\tfor k, v := range newIndexers {\n\t\ti.indexers[k] = v\n\t}\n\treturn nil\n}\n\n// updateSingleIndex modifies the objects location in the named index:\n// - for create you must provide only the newObj\n// - for update you must provide both the oldObj and the newObj\n// - for delete you must provide only the oldObj\n// updateSingleIndex must be called from a function that already has a lock on the cache\nfunc (i *storeIndex) updateSingleIndex(name string, oldObj interface{}, newObj interface{}, key string) {\n\tvar oldIndexValues, indexValues []string\n\tindexFunc, ok := i.indexers[name]\n\tif !ok {\n\t\t// Should never happen. Caller is responsible for ensuring this exists, and should call with lock\n\t\t// held to avoid any races.\n\t\tpanic(fmt.Errorf(\"indexer %q does not exist\", name))\n\t}\n\tif oldObj != nil {\n\t\tvar err error\n\t\toldIndexValues, err = indexFunc(oldObj)\n\t\tif err != nil {\n\t\t\tpanic(fmt.Errorf(\"unable to calculate an index entry for key %q on index %q: %v\", key, name, err))\n\t\t}\n\t} else {\n\t\toldIndexValues = oldIndexValues[:0]\n\t}\n\n\tif newObj != nil {\n\t\tvar err error\n\t\tindexValues, err = indexFunc(newObj)\n\t\tif err != nil {\n\t\t\tpanic(fmt.Errorf(\"unable to calculate an index entry for key %q on index %q: %v\", key, name, err))\n\t\t}\n\t} else {\n\t\tindexValues = indexValues[:0]\n\t}\n\n\tindex := i.indices[name]\n\tif index == nil {\n\t\tindex = Index{}\n\t\ti.indices[name] = index\n\t}\n\n\tif len(indexValues) == 1 && len(oldIndexValues) == 1 && indexValues[0] == oldIndexValues[0] {\n\t\t// We optimize for the most common case where indexFunc returns a single value which has not been changed\n\t\treturn\n\t}\n\n\tfor _, value := range oldIndexValues {\n\t\ti.deleteKeyFromIndex(key, value, index)\n\t}\n\tfor _, value := range indexValues {\n\t\ti.addKeyToIndex(key, value, index)\n\t}\n}\n\n// updateIndices modifies the objects location in the managed indexes:\n// - for create you must provide only the newObj\n// - for update you must provide both the oldObj and the newObj\n// - for delete you must provide only the oldObj\n// updateIndices must be called from a function that already has a lock on the cache\nfunc (i *storeIndex) updateIndices(oldObj interface{}, newObj interface{}, key string) {\n\tfor name := range i.indexers {\n\t\ti.updateSingleIndex(name, oldObj, newObj, key)\n\t}\n}\n\nfunc (i *storeIndex) addKeyToIndex(key, indexValue string, index Index) {\n\tset := index[indexValue]\n\tif set == nil {\n\t\tset = sets.String{}\n\t\tindex[indexValue] = set\n\t}\n\tset.Insert(key)\n}\n\nfunc (i *storeIndex) deleteKeyFromIndex(key, indexValue string, index Index) {\n\tset := index[indexValue]\n\tif set == nil {\n\t\treturn\n\t}\n\tset.Delete(key)\n\t// If we don't delete the set when zero, indices with high cardinality\n\t// short lived resources can cause memory to increase over time from\n\t// unused empty sets. See `kubernetes/kubernetes/issues/84959`.\n\tif len(set) == 0 {\n\t\tdelete(index, indexValue)\n\t}\n}\n\n// threadSafeMap implements ThreadSafeStore\ntype threadSafeMap struct {\n\tlock  sync.RWMutex\n\titems map[string]interface{}\n\n\t// index implements the indexing functionality\n\tindex *storeIndex\n}\n\nfunc (c *threadSafeMap) Add(key string, obj interface{}) {\n\tc.Update(key, obj)\n}\n\nfunc (c *threadSafeMap) Update(key string, obj interface{}) {\n\tc.lock.Lock()\n\tdefer c.lock.Unlock()\n\toldObject := c.items[key]\n\tc.items[key] = obj\n\tc.index.updateIndices(oldObject, obj, key)\n}\n\nfunc (c *threadSafeMap) Delete(key string) {\n\tc.lock.Lock()\n\tdefer c.lock.Unlock()\n\tif obj, exists := c.items[key]; exists {\n\t\tc.index.updateIndices(obj, nil, key)\n\t\tdelete(c.items, key)\n\t}\n}\n\nfunc (c *threadSafeMap) Get(key string) (item interface{}, exists bool) {\n\tc.lock.RLock()\n\tdefer c.lock.RUnlock()\n\titem, exists = c.items[key]\n\treturn item, exists\n}\n\nfunc (c *threadSafeMap) List() []interface{} {\n\tc.lock.RLock()\n\tdefer c.lock.RUnlock()\n\tlist := make([]interface{}, 0, len(c.items))\n\tfor _, item := range c.items {\n\t\tlist = append(list, item)\n\t}\n\treturn list\n}\n\n// ListKeys returns a list of all the keys of the objects currently\n// in the threadSafeMap.\nfunc (c *threadSafeMap) ListKeys() []string {\n\tc.lock.RLock()\n\tdefer c.lock.RUnlock()\n\tlist := make([]string, 0, len(c.items))\n\tfor key := range c.items {\n\t\tlist = append(list, key)\n\t}\n\treturn list\n}\n\nfunc (c *threadSafeMap) Replace(items map[string]interface{}, resourceVersion string) {\n\tc.lock.Lock()\n\tdefer c.lock.Unlock()\n\tc.items = items\n\n\t// rebuild any index\n\tc.index.reset()\n\tfor key, item := range c.items {\n\t\tc.index.updateIndices(nil, item, key)\n\t}\n}\n\n// Index returns a list of items that match the given object on the index function.\n// Index is thread-safe so long as you treat all items as immutable.\nfunc (c *threadSafeMap) Index(indexName string, obj interface{}) ([]interface{}, error) {\n\tc.lock.RLock()\n\tdefer c.lock.RUnlock()\n\n\tstoreKeySet, err := c.index.getKeysFromIndex(indexName, obj)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tlist := make([]interface{}, 0, storeKeySet.Len())\n\tfor storeKey := range storeKeySet {\n\t\tlist = append(list, c.items[storeKey])\n\t}\n\treturn list, nil\n}\n\n// ByIndex returns a list of the items whose indexed values in the given index include the given indexed value\nfunc (c *threadSafeMap) ByIndex(indexName, indexedValue string) ([]interface{}, error) {\n\tc.lock.RLock()\n\tdefer c.lock.RUnlock()\n\n\tset, err := c.index.getKeysByIndex(indexName, indexedValue)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tlist := make([]interface{}, 0, set.Len())\n\tfor key := range set {\n\t\tlist = append(list, c.items[key])\n\t}\n\n\treturn list, nil\n}\n\n// IndexKeys returns a list of the Store keys of the objects whose indexed values in the given index include the given indexed value.\n// IndexKeys is thread-safe so long as you treat all items as immutable.\nfunc (c *threadSafeMap) IndexKeys(indexName, indexedValue string) ([]string, error) {\n\tc.lock.RLock()\n\tdefer c.lock.RUnlock()\n\n\tset, err := c.index.getKeysByIndex(indexName, indexedValue)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn set.List(), nil\n}\n\nfunc (c *threadSafeMap) ListIndexFuncValues(indexName string) []string {\n\tc.lock.RLock()\n\tdefer c.lock.RUnlock()\n\n\treturn c.index.getIndexValues(indexName)\n}\n\nfunc (c *threadSafeMap) GetIndexers() Indexers {\n\treturn c.index.indexers\n}\n\nfunc (c *threadSafeMap) AddIndexers(newIndexers Indexers) error {\n\tc.lock.Lock()\n\tdefer c.lock.Unlock()\n\n\tif err := c.index.addIndexers(newIndexers); err != nil {\n\t\treturn err\n\t}\n\n\t// If there are already items, index them\n\tfor key, item := range c.items {\n\t\tfor name := range newIndexers {\n\t\t\tc.index.updateSingleIndex(name, nil, item, key)\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc (c *threadSafeMap) Resync() error {\n\t// Nothing to do\n\treturn nil\n}\n\n// NewThreadSafeStore creates a new instance of ThreadSafeStore.\nfunc NewThreadSafeStore(indexers Indexers, indices Indices) ThreadSafeStore {\n\treturn &threadSafeMap{\n\t\titems: map[string]interface{}{},\n\t\tindex: &storeIndex{\n\t\t\tindexers: indexers,\n\t\t\tindices:  indices,\n\t\t},\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/cache/undelta_store.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage cache\n\n// UndeltaStore listens to incremental updates and sends complete state on every change.\n// It implements the Store interface so that it can receive a stream of mirrored objects\n// from Reflector.  Whenever it receives any complete (Store.Replace) or incremental change\n// (Store.Add, Store.Update, Store.Delete), it sends the complete state by calling PushFunc.\n// It is thread-safe.  It guarantees that every change (Add, Update, Replace, Delete) results\n// in one call to PushFunc, but sometimes PushFunc may be called twice with the same values.\n// PushFunc should be thread safe.\ntype UndeltaStore struct {\n\tStore\n\tPushFunc func([]interface{})\n}\n\n// Assert that it implements the Store interface.\nvar _ Store = &UndeltaStore{}\n\n// Add inserts an object into the store and sends complete state by calling PushFunc.\n// Note about thread safety.  The Store implementation (cache.cache) uses a lock for all methods.\n// In the functions below, the lock gets released and reacquired betweend the {Add,Delete,etc}\n// and the List.  So, the following can happen, resulting in two identical calls to PushFunc.\n// time            thread 1                  thread 2\n// 0               UndeltaStore.Add(a)\n// 1                                         UndeltaStore.Add(b)\n// 2               Store.Add(a)\n// 3                                         Store.Add(b)\n// 4               Store.List() -> [a,b]\n// 5                                         Store.List() -> [a,b]\nfunc (u *UndeltaStore) Add(obj interface{}) error {\n\tif err := u.Store.Add(obj); err != nil {\n\t\treturn err\n\t}\n\tu.PushFunc(u.Store.List())\n\treturn nil\n}\n\n// Update sets an item in the cache to its updated state and sends complete state by calling PushFunc.\nfunc (u *UndeltaStore) Update(obj interface{}) error {\n\tif err := u.Store.Update(obj); err != nil {\n\t\treturn err\n\t}\n\tu.PushFunc(u.Store.List())\n\treturn nil\n}\n\n// Delete removes an item from the cache and sends complete state by calling PushFunc.\nfunc (u *UndeltaStore) Delete(obj interface{}) error {\n\tif err := u.Store.Delete(obj); err != nil {\n\t\treturn err\n\t}\n\tu.PushFunc(u.Store.List())\n\treturn nil\n}\n\n// Replace will delete the contents of current store, using instead the given list.\n// 'u' takes ownership of the list, you should not reference the list again\n// after calling this function.\n// The new contents complete state will be sent by calling PushFunc after replacement.\nfunc (u *UndeltaStore) Replace(list []interface{}, resourceVersion string) error {\n\tif err := u.Store.Replace(list, resourceVersion); err != nil {\n\t\treturn err\n\t}\n\tu.PushFunc(u.Store.List())\n\treturn nil\n}\n\n// NewUndeltaStore returns an UndeltaStore implemented with a Store.\nfunc NewUndeltaStore(pushFunc func([]interface{}), keyFunc KeyFunc) *UndeltaStore {\n\treturn &UndeltaStore{\n\t\tStore:    NewStore(keyFunc),\n\t\tPushFunc: pushFunc,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/clientcmd/api/doc.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// +k8s:deepcopy-gen=package\n\npackage api // import \"k8s.io/client-go/tools/clientcmd/api\"\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/clientcmd/api/helpers.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage api\n\nimport (\n\t\"encoding/base64\"\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"reflect\"\n\t\"strings\"\n)\n\nfunc init() {\n\tsDec, _ := base64.StdEncoding.DecodeString(\"REDACTED+\")\n\tredactedBytes = []byte(string(sDec))\n\tsDec, _ = base64.StdEncoding.DecodeString(\"DATA+OMITTED\")\n\tdataOmittedBytes = []byte(string(sDec))\n}\n\n// IsConfigEmpty returns true if the config is empty.\nfunc IsConfigEmpty(config *Config) bool {\n\treturn len(config.AuthInfos) == 0 && len(config.Clusters) == 0 && len(config.Contexts) == 0 &&\n\t\tlen(config.CurrentContext) == 0 &&\n\t\tlen(config.Preferences.Extensions) == 0 && !config.Preferences.Colors &&\n\t\tlen(config.Extensions) == 0\n}\n\n// MinifyConfig read the current context and uses that to keep only the relevant pieces of config\n// This is useful for making secrets based on kubeconfig files\nfunc MinifyConfig(config *Config) error {\n\tif len(config.CurrentContext) == 0 {\n\t\treturn errors.New(\"current-context must exist in order to minify\")\n\t}\n\n\tcurrContext, exists := config.Contexts[config.CurrentContext]\n\tif !exists {\n\t\treturn fmt.Errorf(\"cannot locate context %v\", config.CurrentContext)\n\t}\n\n\tnewContexts := map[string]*Context{}\n\tnewContexts[config.CurrentContext] = currContext\n\n\tnewClusters := map[string]*Cluster{}\n\tif len(currContext.Cluster) > 0 {\n\t\tif _, exists := config.Clusters[currContext.Cluster]; !exists {\n\t\t\treturn fmt.Errorf(\"cannot locate cluster %v\", currContext.Cluster)\n\t\t}\n\n\t\tnewClusters[currContext.Cluster] = config.Clusters[currContext.Cluster]\n\t}\n\n\tnewAuthInfos := map[string]*AuthInfo{}\n\tif len(currContext.AuthInfo) > 0 {\n\t\tif _, exists := config.AuthInfos[currContext.AuthInfo]; !exists {\n\t\t\treturn fmt.Errorf(\"cannot locate user %v\", currContext.AuthInfo)\n\t\t}\n\n\t\tnewAuthInfos[currContext.AuthInfo] = config.AuthInfos[currContext.AuthInfo]\n\t}\n\n\tconfig.AuthInfos = newAuthInfos\n\tconfig.Clusters = newClusters\n\tconfig.Contexts = newContexts\n\n\treturn nil\n}\n\nvar (\n\tdataOmittedBytes []byte\n\tredactedBytes    []byte\n)\n\n// ShortenConfig redacts raw data entries from the config object for a human-readable view.\nfunc ShortenConfig(config *Config) {\n\t// trick json encoder into printing a human-readable string in the raw data\n\t// by base64 decoding what we want to print. Relies on implementation of\n\t// http://golang.org/pkg/encoding/json/#Marshal using base64 to encode []byte\n\tfor key, authInfo := range config.AuthInfos {\n\t\tif len(authInfo.ClientKeyData) > 0 {\n\t\t\tauthInfo.ClientKeyData = dataOmittedBytes\n\t\t}\n\t\tif len(authInfo.ClientCertificateData) > 0 {\n\t\t\tauthInfo.ClientCertificateData = dataOmittedBytes\n\t\t}\n\t\tif len(authInfo.Token) > 0 {\n\t\t\tauthInfo.Token = \"REDACTED\"\n\t\t}\n\t\tconfig.AuthInfos[key] = authInfo\n\t}\n\tfor key, cluster := range config.Clusters {\n\t\tif len(cluster.CertificateAuthorityData) > 0 {\n\t\t\tcluster.CertificateAuthorityData = dataOmittedBytes\n\t\t}\n\t\tconfig.Clusters[key] = cluster\n\t}\n}\n\n// FlattenConfig changes the config object into a self-contained config (useful for making secrets)\nfunc FlattenConfig(config *Config) error {\n\tfor key, authInfo := range config.AuthInfos {\n\t\tbaseDir, err := MakeAbs(filepath.Dir(authInfo.LocationOfOrigin), \"\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif err := FlattenContent(&authInfo.ClientCertificate, &authInfo.ClientCertificateData, baseDir); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := FlattenContent(&authInfo.ClientKey, &authInfo.ClientKeyData, baseDir); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tconfig.AuthInfos[key] = authInfo\n\t}\n\tfor key, cluster := range config.Clusters {\n\t\tbaseDir, err := MakeAbs(filepath.Dir(cluster.LocationOfOrigin), \"\")\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tif err := FlattenContent(&cluster.CertificateAuthority, &cluster.CertificateAuthorityData, baseDir); err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\tconfig.Clusters[key] = cluster\n\t}\n\n\treturn nil\n}\n\nfunc FlattenContent(path *string, contents *[]byte, baseDir string) error {\n\tif len(*path) != 0 {\n\t\tif len(*contents) > 0 {\n\t\t\treturn errors.New(\"cannot have values for both path and contents\")\n\t\t}\n\n\t\tvar err error\n\t\tabsPath := ResolvePath(*path, baseDir)\n\t\t*contents, err = os.ReadFile(absPath)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\n\t\t*path = \"\"\n\t}\n\n\treturn nil\n}\n\n// ResolvePath returns the path as an absolute paths, relative to the given base directory\nfunc ResolvePath(path string, base string) string {\n\t// Don't resolve empty paths\n\tif len(path) > 0 {\n\t\t// Don't resolve absolute paths\n\t\tif !filepath.IsAbs(path) {\n\t\t\treturn filepath.Join(base, path)\n\t\t}\n\t}\n\n\treturn path\n}\n\nfunc MakeAbs(path, base string) (string, error) {\n\tif filepath.IsAbs(path) {\n\t\treturn path, nil\n\t}\n\tif len(base) == 0 {\n\t\tcwd, err := os.Getwd()\n\t\tif err != nil {\n\t\t\treturn \"\", err\n\t\t}\n\t\tbase = cwd\n\t}\n\treturn filepath.Join(base, path), nil\n}\n\n// RedactSecrets replaces any sensitive values with REDACTED\nfunc RedactSecrets(config *Config) error {\n\treturn redactSecrets(reflect.ValueOf(config), false)\n}\n\nfunc redactSecrets(curr reflect.Value, redact bool) error {\n\tredactedBytes = []byte(\"REDACTED\")\n\tif !curr.IsValid() {\n\t\treturn nil\n\t}\n\n\tactualCurrValue := curr\n\tif curr.Kind() == reflect.Ptr {\n\t\tactualCurrValue = curr.Elem()\n\t}\n\n\tswitch actualCurrValue.Kind() {\n\tcase reflect.Map:\n\t\tfor _, v := range actualCurrValue.MapKeys() {\n\t\t\terr := redactSecrets(actualCurrValue.MapIndex(v), false)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\treturn nil\n\n\tcase reflect.String:\n\t\tif redact {\n\t\t\tif !actualCurrValue.IsZero() {\n\t\t\t\tactualCurrValue.SetString(\"REDACTED\")\n\t\t\t}\n\t\t}\n\t\treturn nil\n\n\tcase reflect.Slice:\n\t\tif actualCurrValue.Type() == reflect.TypeOf([]byte{}) && redact {\n\t\t\tif !actualCurrValue.IsNil() {\n\t\t\t\tactualCurrValue.SetBytes(redactedBytes)\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\t\tfor i := 0; i < actualCurrValue.Len(); i++ {\n\t\t\terr := redactSecrets(actualCurrValue.Index(i), false)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\treturn nil\n\n\tcase reflect.Struct:\n\t\tfor fieldIndex := 0; fieldIndex < actualCurrValue.NumField(); fieldIndex++ {\n\t\t\tcurrFieldValue := actualCurrValue.Field(fieldIndex)\n\t\t\tcurrFieldType := actualCurrValue.Type().Field(fieldIndex)\n\t\t\tcurrYamlTag := currFieldType.Tag.Get(\"datapolicy\")\n\t\t\tcurrFieldTypeYamlName := strings.Split(currYamlTag, \",\")[0]\n\t\t\tif currFieldTypeYamlName != \"\" {\n\t\t\t\terr := redactSecrets(currFieldValue, true)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\terr := redactSecrets(currFieldValue, false)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn nil\n\n\tdefault:\n\t\treturn nil\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/clientcmd/api/register.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage api\n\nimport (\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/runtime/schema\"\n)\n\n// SchemeGroupVersion is group version used to register these objects\n// TODO this should be in the \"kubeconfig\" group\nvar SchemeGroupVersion = schema.GroupVersion{Group: \"\", Version: runtime.APIVersionInternal}\n\nvar (\n\tSchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)\n\tAddToScheme   = SchemeBuilder.AddToScheme\n)\n\nfunc addKnownTypes(scheme *runtime.Scheme) error {\n\tscheme.AddKnownTypes(SchemeGroupVersion,\n\t\t&Config{},\n\t)\n\treturn nil\n}\n\nfunc (obj *Config) GetObjectKind() schema.ObjectKind { return obj }\nfunc (obj *Config) SetGroupVersionKind(gvk schema.GroupVersionKind) {\n\tobj.APIVersion, obj.Kind = gvk.ToAPIVersionAndKind()\n}\nfunc (obj *Config) GroupVersionKind() schema.GroupVersionKind {\n\treturn schema.FromAPIVersionAndKind(obj.APIVersion, obj.Kind)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/clientcmd/api/types.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage api\n\nimport (\n\t\"fmt\"\n\n\t\"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// Where possible, json tags match the cli argument names.\n// Top level config objects and all values required for proper functioning are not \"omitempty\".  Any truly optional piece of config is allowed to be omitted.\n\n// Config holds the information needed to build connect to remote kubernetes clusters as a given user\n// IMPORTANT if you add fields to this struct, please update IsConfigEmpty()\n// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object\ntype Config struct {\n\t// Legacy field from pkg/api/types.go TypeMeta.\n\t// TODO(jlowdermilk): remove this after eliminating downstream dependencies.\n\t// +k8s:conversion-gen=false\n\t// +optional\n\tKind string `json:\"kind,omitempty\"`\n\t// Legacy field from pkg/api/types.go TypeMeta.\n\t// TODO(jlowdermilk): remove this after eliminating downstream dependencies.\n\t// +k8s:conversion-gen=false\n\t// +optional\n\tAPIVersion string `json:\"apiVersion,omitempty\"`\n\t// Preferences holds general information to be use for cli interactions\n\tPreferences Preferences `json:\"preferences\"`\n\t// Clusters is a map of referencable names to cluster configs\n\tClusters map[string]*Cluster `json:\"clusters\"`\n\t// AuthInfos is a map of referencable names to user configs\n\tAuthInfos map[string]*AuthInfo `json:\"users\"`\n\t// Contexts is a map of referencable names to context configs\n\tContexts map[string]*Context `json:\"contexts\"`\n\t// CurrentContext is the name of the context that you would like to use by default\n\tCurrentContext string `json:\"current-context\"`\n\t// Extensions holds additional information. This is useful for extenders so that reads and writes don't clobber unknown fields\n\t// +optional\n\tExtensions map[string]runtime.Object `json:\"extensions,omitempty\"`\n}\n\n// IMPORTANT if you add fields to this struct, please update IsConfigEmpty()\ntype Preferences struct {\n\t// +optional\n\tColors bool `json:\"colors,omitempty\"`\n\t// Extensions holds additional information. This is useful for extenders so that reads and writes don't clobber unknown fields\n\t// +optional\n\tExtensions map[string]runtime.Object `json:\"extensions,omitempty\"`\n}\n\n// Cluster contains information about how to communicate with a kubernetes cluster\ntype Cluster struct {\n\t// LocationOfOrigin indicates where this object came from.  It is used for round tripping config post-merge, but never serialized.\n\t// +k8s:conversion-gen=false\n\tLocationOfOrigin string `json:\"-\"`\n\t// Server is the address of the kubernetes cluster (https://hostname:port).\n\tServer string `json:\"server\"`\n\t// TLSServerName is used to check server certificate. If TLSServerName is empty, the hostname used to contact the server is used.\n\t// +optional\n\tTLSServerName string `json:\"tls-server-name,omitempty\"`\n\t// InsecureSkipTLSVerify skips the validity check for the server's certificate. This will make your HTTPS connections insecure.\n\t// +optional\n\tInsecureSkipTLSVerify bool `json:\"insecure-skip-tls-verify,omitempty\"`\n\t// CertificateAuthority is the path to a cert file for the certificate authority.\n\t// +optional\n\tCertificateAuthority string `json:\"certificate-authority,omitempty\"`\n\t// CertificateAuthorityData contains PEM-encoded certificate authority certificates. Overrides CertificateAuthority\n\t// +optional\n\tCertificateAuthorityData []byte `json:\"certificate-authority-data,omitempty\"`\n\t// ProxyURL is the URL to the proxy to be used for all requests made by this\n\t// client. URLs with \"http\", \"https\", and \"socks5\" schemes are supported.  If\n\t// this configuration is not provided or the empty string, the client\n\t// attempts to construct a proxy configuration from http_proxy and\n\t// https_proxy environment variables. If these environment variables are not\n\t// set, the client does not attempt to proxy requests.\n\t//\n\t// socks5 proxying does not currently support spdy streaming endpoints (exec,\n\t// attach, port forward).\n\t// +optional\n\tProxyURL string `json:\"proxy-url,omitempty\"`\n\t// DisableCompression allows client to opt-out of response compression for all requests to the server. This is useful\n\t// to speed up requests (specifically lists) when client-server network bandwidth is ample, by saving time on\n\t// compression (server-side) and decompression (client-side): https://github.com/kubernetes/kubernetes/issues/112296.\n\t// +optional\n\tDisableCompression bool `json:\"disable-compression,omitempty\"`\n\t// Extensions holds additional information. This is useful for extenders so that reads and writes don't clobber unknown fields\n\t// +optional\n\tExtensions map[string]runtime.Object `json:\"extensions,omitempty\"`\n}\n\n// AuthInfo contains information that describes identity information.  This is use to tell the kubernetes cluster who you are.\ntype AuthInfo struct {\n\t// LocationOfOrigin indicates where this object came from.  It is used for round tripping config post-merge, but never serialized.\n\t// +k8s:conversion-gen=false\n\tLocationOfOrigin string `json:\"-\"`\n\t// ClientCertificate is the path to a client cert file for TLS.\n\t// +optional\n\tClientCertificate string `json:\"client-certificate,omitempty\"`\n\t// ClientCertificateData contains PEM-encoded data from a client cert file for TLS. Overrides ClientCertificate\n\t// +optional\n\tClientCertificateData []byte `json:\"client-certificate-data,omitempty\"`\n\t// ClientKey is the path to a client key file for TLS.\n\t// +optional\n\tClientKey string `json:\"client-key,omitempty\"`\n\t// ClientKeyData contains PEM-encoded data from a client key file for TLS. Overrides ClientKey\n\t// +optional\n\tClientKeyData []byte `json:\"client-key-data,omitempty\" datapolicy:\"security-key\"`\n\t// Token is the bearer token for authentication to the kubernetes cluster.\n\t// +optional\n\tToken string `json:\"token,omitempty\" datapolicy:\"token\"`\n\t// TokenFile is a pointer to a file that contains a bearer token (as described above).  If both Token and TokenFile are present, Token takes precedence.\n\t// +optional\n\tTokenFile string `json:\"tokenFile,omitempty\"`\n\t// Impersonate is the username to act-as.\n\t// +optional\n\tImpersonate string `json:\"act-as,omitempty\"`\n\t// ImpersonateUID is the uid to impersonate.\n\t// +optional\n\tImpersonateUID string `json:\"act-as-uid,omitempty\"`\n\t// ImpersonateGroups is the groups to impersonate.\n\t// +optional\n\tImpersonateGroups []string `json:\"act-as-groups,omitempty\"`\n\t// ImpersonateUserExtra contains additional information for impersonated user.\n\t// +optional\n\tImpersonateUserExtra map[string][]string `json:\"act-as-user-extra,omitempty\"`\n\t// Username is the username for basic authentication to the kubernetes cluster.\n\t// +optional\n\tUsername string `json:\"username,omitempty\"`\n\t// Password is the password for basic authentication to the kubernetes cluster.\n\t// +optional\n\tPassword string `json:\"password,omitempty\" datapolicy:\"password\"`\n\t// AuthProvider specifies a custom authentication plugin for the kubernetes cluster.\n\t// +optional\n\tAuthProvider *AuthProviderConfig `json:\"auth-provider,omitempty\"`\n\t// Exec specifies a custom exec-based authentication plugin for the kubernetes cluster.\n\t// +optional\n\tExec *ExecConfig `json:\"exec,omitempty\"`\n\t// Extensions holds additional information. This is useful for extenders so that reads and writes don't clobber unknown fields\n\t// +optional\n\tExtensions map[string]runtime.Object `json:\"extensions,omitempty\"`\n}\n\n// Context is a tuple of references to a cluster (how do I communicate with a kubernetes cluster), a user (how do I identify myself), and a namespace (what subset of resources do I want to work with)\ntype Context struct {\n\t// LocationOfOrigin indicates where this object came from.  It is used for round tripping config post-merge, but never serialized.\n\t// +k8s:conversion-gen=false\n\tLocationOfOrigin string `json:\"-\"`\n\t// Cluster is the name of the cluster for this context\n\tCluster string `json:\"cluster\"`\n\t// AuthInfo is the name of the authInfo for this context\n\tAuthInfo string `json:\"user\"`\n\t// Namespace is the default namespace to use on unspecified requests\n\t// +optional\n\tNamespace string `json:\"namespace,omitempty\"`\n\t// Extensions holds additional information. This is useful for extenders so that reads and writes don't clobber unknown fields\n\t// +optional\n\tExtensions map[string]runtime.Object `json:\"extensions,omitempty\"`\n}\n\n// AuthProviderConfig holds the configuration for a specified auth provider.\ntype AuthProviderConfig struct {\n\tName string `json:\"name\"`\n\t// +optional\n\tConfig map[string]string `json:\"config,omitempty\"`\n}\n\nvar _ fmt.Stringer = new(AuthProviderConfig)\nvar _ fmt.GoStringer = new(AuthProviderConfig)\n\n// GoString implements fmt.GoStringer and sanitizes sensitive fields of\n// AuthProviderConfig to prevent accidental leaking via logs.\nfunc (c AuthProviderConfig) GoString() string {\n\treturn c.String()\n}\n\n// String implements fmt.Stringer and sanitizes sensitive fields of\n// AuthProviderConfig to prevent accidental leaking via logs.\nfunc (c AuthProviderConfig) String() string {\n\tcfg := \"<nil>\"\n\tif c.Config != nil {\n\t\tcfg = \"--- REDACTED ---\"\n\t}\n\treturn fmt.Sprintf(\"api.AuthProviderConfig{Name: %q, Config: map[string]string{%s}}\", c.Name, cfg)\n}\n\n// ExecConfig specifies a command to provide client credentials. The command is exec'd\n// and outputs structured stdout holding credentials.\n//\n// See the client.authentication.k8s.io API group for specifications of the exact input\n// and output format\ntype ExecConfig struct {\n\t// Command to execute.\n\tCommand string `json:\"command\"`\n\t// Arguments to pass to the command when executing it.\n\t// +optional\n\tArgs []string `json:\"args\"`\n\t// Env defines additional environment variables to expose to the process. These\n\t// are unioned with the host's environment, as well as variables client-go uses\n\t// to pass argument to the plugin.\n\t// +optional\n\tEnv []ExecEnvVar `json:\"env\"`\n\n\t// Preferred input version of the ExecInfo. The returned ExecCredentials MUST use\n\t// the same encoding version as the input.\n\tAPIVersion string `json:\"apiVersion,omitempty\"`\n\n\t// This text is shown to the user when the executable doesn't seem to be\n\t// present. For example, `brew install foo-cli` might be a good InstallHint for\n\t// foo-cli on Mac OS systems.\n\tInstallHint string `json:\"installHint,omitempty\"`\n\n\t// ProvideClusterInfo determines whether or not to provide cluster information,\n\t// which could potentially contain very large CA data, to this exec plugin as a\n\t// part of the KUBERNETES_EXEC_INFO environment variable. By default, it is set\n\t// to false. Package k8s.io/client-go/tools/auth/exec provides helper methods for\n\t// reading this environment variable.\n\tProvideClusterInfo bool `json:\"provideClusterInfo\"`\n\n\t// Config holds additional config data that is specific to the exec\n\t// plugin with regards to the cluster being authenticated to.\n\t//\n\t// This data is sourced from the clientcmd Cluster object's extensions[exec] field:\n\t//\n\t// clusters:\n\t// - name: my-cluster\n\t//   cluster:\n\t//     ...\n\t//     extensions:\n\t//     - name: client.authentication.k8s.io/exec  # reserved extension name for per cluster exec config\n\t//       extension:\n\t//         audience: 06e3fbd18de8  # arbitrary config\n\t//\n\t// In some environments, the user config may be exactly the same across many clusters\n\t// (i.e. call this exec plugin) minus some details that are specific to each cluster\n\t// such as the audience.  This field allows the per cluster config to be directly\n\t// specified with the cluster info.  Using this field to store secret data is not\n\t// recommended as one of the prime benefits of exec plugins is that no secrets need\n\t// to be stored directly in the kubeconfig.\n\t// +k8s:conversion-gen=false\n\tConfig runtime.Object `json:\"-\"`\n\n\t// InteractiveMode determines this plugin's relationship with standard input. Valid\n\t// values are \"Never\" (this exec plugin never uses standard input), \"IfAvailable\" (this\n\t// exec plugin wants to use standard input if it is available), or \"Always\" (this exec\n\t// plugin requires standard input to function). See ExecInteractiveMode values for more\n\t// details.\n\t//\n\t// If APIVersion is client.authentication.k8s.io/v1alpha1 or\n\t// client.authentication.k8s.io/v1beta1, then this field is optional and defaults\n\t// to \"IfAvailable\" when unset. Otherwise, this field is required.\n\t// +optional\n\tInteractiveMode ExecInteractiveMode `json:\"interactiveMode,omitempty\"`\n\n\t// StdinUnavailable indicates whether the exec authenticator can pass standard\n\t// input through to this exec plugin. For example, a higher level entity might be using\n\t// standard input for something else and therefore it would not be safe for the exec\n\t// plugin to use standard input. This is kept here in order to keep all of the exec configuration\n\t// together, but it is never serialized.\n\t// +k8s:conversion-gen=false\n\tStdinUnavailable bool `json:\"-\"`\n\n\t// StdinUnavailableMessage is an optional message to be displayed when the exec authenticator\n\t// cannot successfully run this exec plugin because it needs to use standard input and\n\t// StdinUnavailable is true. For example, a process that is already using standard input to\n\t// read user instructions might set this to \"used by my-program to read user instructions\".\n\t// +k8s:conversion-gen=false\n\tStdinUnavailableMessage string `json:\"-\"`\n}\n\nvar _ fmt.Stringer = new(ExecConfig)\nvar _ fmt.GoStringer = new(ExecConfig)\n\n// GoString implements fmt.GoStringer and sanitizes sensitive fields of\n// ExecConfig to prevent accidental leaking via logs.\nfunc (c ExecConfig) GoString() string {\n\treturn c.String()\n}\n\n// String implements fmt.Stringer and sanitizes sensitive fields of ExecConfig\n// to prevent accidental leaking via logs.\nfunc (c ExecConfig) String() string {\n\tvar args []string\n\tif len(c.Args) > 0 {\n\t\targs = []string{\"--- REDACTED ---\"}\n\t}\n\tenv := \"[]ExecEnvVar(nil)\"\n\tif len(c.Env) > 0 {\n\t\tenv = \"[]ExecEnvVar{--- REDACTED ---}\"\n\t}\n\tconfig := \"runtime.Object(nil)\"\n\tif c.Config != nil {\n\t\tconfig = \"runtime.Object(--- REDACTED ---)\"\n\t}\n\treturn fmt.Sprintf(\"api.ExecConfig{Command: %q, Args: %#v, Env: %s, APIVersion: %q, ProvideClusterInfo: %t, Config: %s, StdinUnavailable: %t}\", c.Command, args, env, c.APIVersion, c.ProvideClusterInfo, config, c.StdinUnavailable)\n}\n\n// ExecEnvVar is used for setting environment variables when executing an exec-based\n// credential plugin.\ntype ExecEnvVar struct {\n\tName  string `json:\"name\"`\n\tValue string `json:\"value\"`\n}\n\n// ExecInteractiveMode is a string that describes an exec plugin's relationship with standard input.\ntype ExecInteractiveMode string\n\nconst (\n\t// NeverExecInteractiveMode declares that this exec plugin never needs to use standard\n\t// input, and therefore the exec plugin will be run regardless of whether standard input is\n\t// available for user input.\n\tNeverExecInteractiveMode ExecInteractiveMode = \"Never\"\n\t// IfAvailableExecInteractiveMode declares that this exec plugin would like to use standard input\n\t// if it is available, but can still operate if standard input is not available. Therefore, the\n\t// exec plugin will be run regardless of whether stdin is available for user input. If standard\n\t// input is available for user input, then it will be provided to this exec plugin.\n\tIfAvailableExecInteractiveMode ExecInteractiveMode = \"IfAvailable\"\n\t// AlwaysExecInteractiveMode declares that this exec plugin requires standard input in order to\n\t// run, and therefore the exec plugin will only be run if standard input is available for user\n\t// input. If standard input is not available for user input, then the exec plugin will not be run\n\t// and an error will be returned by the exec plugin runner.\n\tAlwaysExecInteractiveMode ExecInteractiveMode = \"Always\"\n)\n\n// NewConfig is a convenience function that returns a new Config object with non-nil maps\nfunc NewConfig() *Config {\n\treturn &Config{\n\t\tPreferences: *NewPreferences(),\n\t\tClusters:    make(map[string]*Cluster),\n\t\tAuthInfos:   make(map[string]*AuthInfo),\n\t\tContexts:    make(map[string]*Context),\n\t\tExtensions:  make(map[string]runtime.Object),\n\t}\n}\n\n// NewContext is a convenience function that returns a new Context\n// object with non-nil maps\nfunc NewContext() *Context {\n\treturn &Context{Extensions: make(map[string]runtime.Object)}\n}\n\n// NewCluster is a convenience function that returns a new Cluster\n// object with non-nil maps\nfunc NewCluster() *Cluster {\n\treturn &Cluster{Extensions: make(map[string]runtime.Object)}\n}\n\n// NewAuthInfo is a convenience function that returns a new AuthInfo\n// object with non-nil maps\nfunc NewAuthInfo() *AuthInfo {\n\treturn &AuthInfo{\n\t\tExtensions:           make(map[string]runtime.Object),\n\t\tImpersonateUserExtra: make(map[string][]string),\n\t}\n}\n\n// NewPreferences is a convenience function that returns a new\n// Preferences object with non-nil maps\nfunc NewPreferences() *Preferences {\n\treturn &Preferences{Extensions: make(map[string]runtime.Object)}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/clientcmd/api/zz_generated.deepcopy.go",
    "content": "//go:build !ignore_autogenerated\n// +build !ignore_autogenerated\n\n/*\nCopyright The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Code generated by deepcopy-gen. DO NOT EDIT.\n\npackage api\n\nimport (\n\truntime \"k8s.io/apimachinery/pkg/runtime\"\n)\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *AuthInfo) DeepCopyInto(out *AuthInfo) {\n\t*out = *in\n\tif in.ClientCertificateData != nil {\n\t\tin, out := &in.ClientCertificateData, &out.ClientCertificateData\n\t\t*out = make([]byte, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ClientKeyData != nil {\n\t\tin, out := &in.ClientKeyData, &out.ClientKeyData\n\t\t*out = make([]byte, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ImpersonateGroups != nil {\n\t\tin, out := &in.ImpersonateGroups, &out.ImpersonateGroups\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.ImpersonateUserExtra != nil {\n\t\tin, out := &in.ImpersonateUserExtra, &out.ImpersonateUserExtra\n\t\t*out = make(map[string][]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\tvar outVal []string\n\t\t\tif val == nil {\n\t\t\t\t(*out)[key] = nil\n\t\t\t} else {\n\t\t\t\tin, out := &val, &outVal\n\t\t\t\t*out = make([]string, len(*in))\n\t\t\t\tcopy(*out, *in)\n\t\t\t}\n\t\t\t(*out)[key] = outVal\n\t\t}\n\t}\n\tif in.AuthProvider != nil {\n\t\tin, out := &in.AuthProvider, &out.AuthProvider\n\t\t*out = new(AuthProviderConfig)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Exec != nil {\n\t\tin, out := &in.Exec, &out.Exec\n\t\t*out = new(ExecConfig)\n\t\t(*in).DeepCopyInto(*out)\n\t}\n\tif in.Extensions != nil {\n\t\tin, out := &in.Extensions, &out.Extensions\n\t\t*out = make(map[string]runtime.Object, len(*in))\n\t\tfor key, val := range *in {\n\t\t\tif val == nil {\n\t\t\t\t(*out)[key] = nil\n\t\t\t} else {\n\t\t\t\t(*out)[key] = val.DeepCopyObject()\n\t\t\t}\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthInfo.\nfunc (in *AuthInfo) DeepCopy() *AuthInfo {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(AuthInfo)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *AuthProviderConfig) DeepCopyInto(out *AuthProviderConfig) {\n\t*out = *in\n\tif in.Config != nil {\n\t\tin, out := &in.Config, &out.Config\n\t\t*out = make(map[string]string, len(*in))\n\t\tfor key, val := range *in {\n\t\t\t(*out)[key] = val\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthProviderConfig.\nfunc (in *AuthProviderConfig) DeepCopy() *AuthProviderConfig {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(AuthProviderConfig)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Cluster) DeepCopyInto(out *Cluster) {\n\t*out = *in\n\tif in.CertificateAuthorityData != nil {\n\t\tin, out := &in.CertificateAuthorityData, &out.CertificateAuthorityData\n\t\t*out = make([]byte, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Extensions != nil {\n\t\tin, out := &in.Extensions, &out.Extensions\n\t\t*out = make(map[string]runtime.Object, len(*in))\n\t\tfor key, val := range *in {\n\t\t\tif val == nil {\n\t\t\t\t(*out)[key] = nil\n\t\t\t} else {\n\t\t\t\t(*out)[key] = val.DeepCopyObject()\n\t\t\t}\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Cluster.\nfunc (in *Cluster) DeepCopy() *Cluster {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Cluster)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Config) DeepCopyInto(out *Config) {\n\t*out = *in\n\tin.Preferences.DeepCopyInto(&out.Preferences)\n\tif in.Clusters != nil {\n\t\tin, out := &in.Clusters, &out.Clusters\n\t\t*out = make(map[string]*Cluster, len(*in))\n\t\tfor key, val := range *in {\n\t\t\tvar outVal *Cluster\n\t\t\tif val == nil {\n\t\t\t\t(*out)[key] = nil\n\t\t\t} else {\n\t\t\t\tin, out := &val, &outVal\n\t\t\t\t*out = new(Cluster)\n\t\t\t\t(*in).DeepCopyInto(*out)\n\t\t\t}\n\t\t\t(*out)[key] = outVal\n\t\t}\n\t}\n\tif in.AuthInfos != nil {\n\t\tin, out := &in.AuthInfos, &out.AuthInfos\n\t\t*out = make(map[string]*AuthInfo, len(*in))\n\t\tfor key, val := range *in {\n\t\t\tvar outVal *AuthInfo\n\t\t\tif val == nil {\n\t\t\t\t(*out)[key] = nil\n\t\t\t} else {\n\t\t\t\tin, out := &val, &outVal\n\t\t\t\t*out = new(AuthInfo)\n\t\t\t\t(*in).DeepCopyInto(*out)\n\t\t\t}\n\t\t\t(*out)[key] = outVal\n\t\t}\n\t}\n\tif in.Contexts != nil {\n\t\tin, out := &in.Contexts, &out.Contexts\n\t\t*out = make(map[string]*Context, len(*in))\n\t\tfor key, val := range *in {\n\t\t\tvar outVal *Context\n\t\t\tif val == nil {\n\t\t\t\t(*out)[key] = nil\n\t\t\t} else {\n\t\t\t\tin, out := &val, &outVal\n\t\t\t\t*out = new(Context)\n\t\t\t\t(*in).DeepCopyInto(*out)\n\t\t\t}\n\t\t\t(*out)[key] = outVal\n\t\t}\n\t}\n\tif in.Extensions != nil {\n\t\tin, out := &in.Extensions, &out.Extensions\n\t\t*out = make(map[string]runtime.Object, len(*in))\n\t\tfor key, val := range *in {\n\t\t\tif val == nil {\n\t\t\t\t(*out)[key] = nil\n\t\t\t} else {\n\t\t\t\t(*out)[key] = val.DeepCopyObject()\n\t\t\t}\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Config.\nfunc (in *Config) DeepCopy() *Config {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Config)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.\nfunc (in *Config) DeepCopyObject() runtime.Object {\n\tif c := in.DeepCopy(); c != nil {\n\t\treturn c\n\t}\n\treturn nil\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Context) DeepCopyInto(out *Context) {\n\t*out = *in\n\tif in.Extensions != nil {\n\t\tin, out := &in.Extensions, &out.Extensions\n\t\t*out = make(map[string]runtime.Object, len(*in))\n\t\tfor key, val := range *in {\n\t\t\tif val == nil {\n\t\t\t\t(*out)[key] = nil\n\t\t\t} else {\n\t\t\t\t(*out)[key] = val.DeepCopyObject()\n\t\t\t}\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Context.\nfunc (in *Context) DeepCopy() *Context {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Context)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExecConfig) DeepCopyInto(out *ExecConfig) {\n\t*out = *in\n\tif in.Args != nil {\n\t\tin, out := &in.Args, &out.Args\n\t\t*out = make([]string, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Env != nil {\n\t\tin, out := &in.Env, &out.Env\n\t\t*out = make([]ExecEnvVar, len(*in))\n\t\tcopy(*out, *in)\n\t}\n\tif in.Config != nil {\n\t\tout.Config = in.Config.DeepCopyObject()\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecConfig.\nfunc (in *ExecConfig) DeepCopy() *ExecConfig {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExecConfig)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *ExecEnvVar) DeepCopyInto(out *ExecEnvVar) {\n\t*out = *in\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecEnvVar.\nfunc (in *ExecEnvVar) DeepCopy() *ExecEnvVar {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(ExecEnvVar)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n\n// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.\nfunc (in *Preferences) DeepCopyInto(out *Preferences) {\n\t*out = *in\n\tif in.Extensions != nil {\n\t\tin, out := &in.Extensions, &out.Extensions\n\t\t*out = make(map[string]runtime.Object, len(*in))\n\t\tfor key, val := range *in {\n\t\t\tif val == nil {\n\t\t\t\t(*out)[key] = nil\n\t\t\t} else {\n\t\t\t\t(*out)[key] = val.DeepCopyObject()\n\t\t\t}\n\t\t}\n\t}\n\treturn\n}\n\n// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Preferences.\nfunc (in *Preferences) DeepCopy() *Preferences {\n\tif in == nil {\n\t\treturn nil\n\t}\n\tout := new(Preferences)\n\tin.DeepCopyInto(out)\n\treturn out\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/metrics/OWNERS",
    "content": "# See the OWNERS docs at https://go.k8s.io/owners\n\nreviewers:\n  - wojtek-t\n  - jayunit100\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/metrics/metrics.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package metrics provides abstractions for registering which metrics\n// to record.\npackage metrics\n\nimport (\n\t\"context\"\n\t\"net/url\"\n\t\"sync\"\n\t\"time\"\n)\n\nvar registerMetrics sync.Once\n\n// DurationMetric is a measurement of some amount of time.\ntype DurationMetric interface {\n\tObserve(duration time.Duration)\n}\n\n// ExpiryMetric sets some time of expiry. If nil, assume not relevant.\ntype ExpiryMetric interface {\n\tSet(expiry *time.Time)\n}\n\n// LatencyMetric observes client latency partitioned by verb and url.\ntype LatencyMetric interface {\n\tObserve(ctx context.Context, verb string, u url.URL, latency time.Duration)\n}\n\ntype ResolverLatencyMetric interface {\n\tObserve(ctx context.Context, host string, latency time.Duration)\n}\n\n// SizeMetric observes client response size partitioned by verb and host.\ntype SizeMetric interface {\n\tObserve(ctx context.Context, verb string, host string, size float64)\n}\n\n// ResultMetric counts response codes partitioned by method and host.\ntype ResultMetric interface {\n\tIncrement(ctx context.Context, code string, method string, host string)\n}\n\n// CallsMetric counts calls that take place for a specific exec plugin.\ntype CallsMetric interface {\n\t// Increment increments a counter per exitCode and callStatus.\n\tIncrement(exitCode int, callStatus string)\n}\n\n// RetryMetric counts the number of retries sent to the server\n// partitioned by code, method, and host.\ntype RetryMetric interface {\n\tIncrementRetry(ctx context.Context, code string, method string, host string)\n}\n\n// TransportCacheMetric shows the number of entries in the internal transport cache\ntype TransportCacheMetric interface {\n\tObserve(value int)\n}\n\n// TransportCreateCallsMetric counts the number of times a transport is created\n// partitioned by the result of the cache: hit, miss, uncacheable\ntype TransportCreateCallsMetric interface {\n\tIncrement(result string)\n}\n\nvar (\n\t// ClientCertExpiry is the expiry time of a client certificate\n\tClientCertExpiry ExpiryMetric = noopExpiry{}\n\t// ClientCertRotationAge is the age of a certificate that has just been rotated.\n\tClientCertRotationAge DurationMetric = noopDuration{}\n\t// RequestLatency is the latency metric that rest clients will update.\n\tRequestLatency LatencyMetric = noopLatency{}\n\t// ResolverLatency is the latency metric that DNS resolver will update\n\tResolverLatency ResolverLatencyMetric = noopResolverLatency{}\n\t// RequestSize is the request size metric that rest clients will update.\n\tRequestSize SizeMetric = noopSize{}\n\t// ResponseSize is the response size metric that rest clients will update.\n\tResponseSize SizeMetric = noopSize{}\n\t// RateLimiterLatency is the client side rate limiter latency metric.\n\tRateLimiterLatency LatencyMetric = noopLatency{}\n\t// RequestResult is the result metric that rest clients will update.\n\tRequestResult ResultMetric = noopResult{}\n\t// ExecPluginCalls is the number of calls made to an exec plugin, partitioned by\n\t// exit code and call status.\n\tExecPluginCalls CallsMetric = noopCalls{}\n\t// RequestRetry is the retry metric that tracks the number of\n\t// retries sent to the server.\n\tRequestRetry RetryMetric = noopRetry{}\n\t// TransportCacheEntries is the metric that tracks the number of entries in the\n\t// internal transport cache.\n\tTransportCacheEntries TransportCacheMetric = noopTransportCache{}\n\t// TransportCreateCalls is the metric that counts the number of times a new transport\n\t// is created\n\tTransportCreateCalls TransportCreateCallsMetric = noopTransportCreateCalls{}\n)\n\n// RegisterOpts contains all the metrics to register. Metrics may be nil.\ntype RegisterOpts struct {\n\tClientCertExpiry      ExpiryMetric\n\tClientCertRotationAge DurationMetric\n\tRequestLatency        LatencyMetric\n\tResolverLatency       ResolverLatencyMetric\n\tRequestSize           SizeMetric\n\tResponseSize          SizeMetric\n\tRateLimiterLatency    LatencyMetric\n\tRequestResult         ResultMetric\n\tExecPluginCalls       CallsMetric\n\tRequestRetry          RetryMetric\n\tTransportCacheEntries TransportCacheMetric\n\tTransportCreateCalls  TransportCreateCallsMetric\n}\n\n// Register registers metrics for the rest client to use. This can\n// only be called once.\nfunc Register(opts RegisterOpts) {\n\tregisterMetrics.Do(func() {\n\t\tif opts.ClientCertExpiry != nil {\n\t\t\tClientCertExpiry = opts.ClientCertExpiry\n\t\t}\n\t\tif opts.ClientCertRotationAge != nil {\n\t\t\tClientCertRotationAge = opts.ClientCertRotationAge\n\t\t}\n\t\tif opts.RequestLatency != nil {\n\t\t\tRequestLatency = opts.RequestLatency\n\t\t}\n\t\tif opts.ResolverLatency != nil {\n\t\t\tResolverLatency = opts.ResolverLatency\n\t\t}\n\t\tif opts.RequestSize != nil {\n\t\t\tRequestSize = opts.RequestSize\n\t\t}\n\t\tif opts.ResponseSize != nil {\n\t\t\tResponseSize = opts.ResponseSize\n\t\t}\n\t\tif opts.RateLimiterLatency != nil {\n\t\t\tRateLimiterLatency = opts.RateLimiterLatency\n\t\t}\n\t\tif opts.RequestResult != nil {\n\t\t\tRequestResult = opts.RequestResult\n\t\t}\n\t\tif opts.ExecPluginCalls != nil {\n\t\t\tExecPluginCalls = opts.ExecPluginCalls\n\t\t}\n\t\tif opts.RequestRetry != nil {\n\t\t\tRequestRetry = opts.RequestRetry\n\t\t}\n\t\tif opts.TransportCacheEntries != nil {\n\t\t\tTransportCacheEntries = opts.TransportCacheEntries\n\t\t}\n\t\tif opts.TransportCreateCalls != nil {\n\t\t\tTransportCreateCalls = opts.TransportCreateCalls\n\t\t}\n\t})\n}\n\ntype noopDuration struct{}\n\nfunc (noopDuration) Observe(time.Duration) {}\n\ntype noopExpiry struct{}\n\nfunc (noopExpiry) Set(*time.Time) {}\n\ntype noopLatency struct{}\n\nfunc (noopLatency) Observe(context.Context, string, url.URL, time.Duration) {}\n\ntype noopResolverLatency struct{}\n\nfunc (n noopResolverLatency) Observe(ctx context.Context, host string, latency time.Duration) {\n}\n\ntype noopSize struct{}\n\nfunc (noopSize) Observe(context.Context, string, string, float64) {}\n\ntype noopResult struct{}\n\nfunc (noopResult) Increment(context.Context, string, string, string) {}\n\ntype noopCalls struct{}\n\nfunc (noopCalls) Increment(int, string) {}\n\ntype noopRetry struct{}\n\nfunc (noopRetry) IncrementRetry(context.Context, string, string, string) {}\n\ntype noopTransportCache struct{}\n\nfunc (noopTransportCache) Observe(int) {}\n\ntype noopTransportCreateCalls struct{}\n\nfunc (noopTransportCreateCalls) Increment(string) {}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/pager/pager.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage pager\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"k8s.io/apimachinery/pkg/api/errors\"\n\t\"k8s.io/apimachinery/pkg/api/meta\"\n\tmetainternalversion \"k8s.io/apimachinery/pkg/apis/meta/internalversion\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\tutilruntime \"k8s.io/apimachinery/pkg/util/runtime\"\n)\n\nconst defaultPageSize = 500\nconst defaultPageBufferSize = 10\n\n// ListPageFunc returns a list object for the given list options.\ntype ListPageFunc func(ctx context.Context, opts metav1.ListOptions) (runtime.Object, error)\n\n// SimplePageFunc adapts a context-less list function into one that accepts a context.\nfunc SimplePageFunc(fn func(opts metav1.ListOptions) (runtime.Object, error)) ListPageFunc {\n\treturn func(ctx context.Context, opts metav1.ListOptions) (runtime.Object, error) {\n\t\treturn fn(opts)\n\t}\n}\n\n// ListPager assists client code in breaking large list queries into multiple\n// smaller chunks of PageSize or smaller. PageFn is expected to accept a\n// metav1.ListOptions that supports paging and return a list. The pager does\n// not alter the field or label selectors on the initial options list.\ntype ListPager struct {\n\tPageSize int64\n\tPageFn   ListPageFunc\n\n\tFullListIfExpired bool\n\n\t// Number of pages to buffer\n\tPageBufferSize int32\n}\n\n// New creates a new pager from the provided pager function using the default\n// options. It will fall back to a full list if an expiration error is encountered\n// as a last resort.\nfunc New(fn ListPageFunc) *ListPager {\n\treturn &ListPager{\n\t\tPageSize:          defaultPageSize,\n\t\tPageFn:            fn,\n\t\tFullListIfExpired: true,\n\t\tPageBufferSize:    defaultPageBufferSize,\n\t}\n}\n\n// TODO: introduce other types of paging functions - such as those that retrieve from a list\n// of namespaces.\n\n// List returns a single list object, but attempts to retrieve smaller chunks from the\n// server to reduce the impact on the server. If the chunk attempt fails, it will load\n// the full list instead. The Limit field on options, if unset, will default to the page size.\n//\n// If items in the returned list are retained for different durations, and you want to avoid\n// retaining the whole slice returned by p.PageFn as long as any item is referenced,\n// use ListWithAlloc instead.\nfunc (p *ListPager) List(ctx context.Context, options metav1.ListOptions) (runtime.Object, bool, error) {\n\treturn p.list(ctx, options, false)\n}\n\n// ListWithAlloc works like List, but avoids retaining references to the items slice returned by p.PageFn.\n// It does this by making a shallow copy of non-pointer items in the slice returned by p.PageFn.\n//\n// If the items in the returned list are not retained, or are retained for the same duration, use List instead for memory efficiency.\nfunc (p *ListPager) ListWithAlloc(ctx context.Context, options metav1.ListOptions) (runtime.Object, bool, error) {\n\treturn p.list(ctx, options, true)\n}\n\nfunc (p *ListPager) list(ctx context.Context, options metav1.ListOptions, allocNew bool) (runtime.Object, bool, error) {\n\tif options.Limit == 0 {\n\t\toptions.Limit = p.PageSize\n\t}\n\trequestedResourceVersion := options.ResourceVersion\n\trequestedResourceVersionMatch := options.ResourceVersionMatch\n\tvar list *metainternalversion.List\n\tpaginatedResult := false\n\n\tfor {\n\t\tselect {\n\t\tcase <-ctx.Done():\n\t\t\treturn nil, paginatedResult, ctx.Err()\n\t\tdefault:\n\t\t}\n\n\t\tobj, err := p.PageFn(ctx, options)\n\t\tif err != nil {\n\t\t\t// Only fallback to full list if an \"Expired\" errors is returned, FullListIfExpired is true, and\n\t\t\t// the \"Expired\" error occurred in page 2 or later (since full list is intended to prevent a pager.List from\n\t\t\t// failing when the resource versions is established by the first page request falls out of the compaction\n\t\t\t// during the subsequent list requests).\n\t\t\tif !errors.IsResourceExpired(err) || !p.FullListIfExpired || options.Continue == \"\" {\n\t\t\t\treturn nil, paginatedResult, err\n\t\t\t}\n\t\t\t// the list expired while we were processing, fall back to a full list at\n\t\t\t// the requested ResourceVersion.\n\t\t\toptions.Limit = 0\n\t\t\toptions.Continue = \"\"\n\t\t\toptions.ResourceVersion = requestedResourceVersion\n\t\t\toptions.ResourceVersionMatch = requestedResourceVersionMatch\n\t\t\tresult, err := p.PageFn(ctx, options)\n\t\t\treturn result, paginatedResult, err\n\t\t}\n\t\tm, err := meta.ListAccessor(obj)\n\t\tif err != nil {\n\t\t\treturn nil, paginatedResult, fmt.Errorf(\"returned object must be a list: %v\", err)\n\t\t}\n\n\t\t// exit early and return the object we got if we haven't processed any pages\n\t\tif len(m.GetContinue()) == 0 && list == nil {\n\t\t\treturn obj, paginatedResult, nil\n\t\t}\n\n\t\t// initialize the list and fill its contents\n\t\tif list == nil {\n\t\t\tlist = &metainternalversion.List{Items: make([]runtime.Object, 0, options.Limit+1)}\n\t\t\tlist.ResourceVersion = m.GetResourceVersion()\n\t\t\tlist.SelfLink = m.GetSelfLink()\n\t\t}\n\t\teachListItemFunc := meta.EachListItem\n\t\tif allocNew {\n\t\t\teachListItemFunc = meta.EachListItemWithAlloc\n\t\t}\n\t\tif err := eachListItemFunc(obj, func(obj runtime.Object) error {\n\t\t\tlist.Items = append(list.Items, obj)\n\t\t\treturn nil\n\t\t}); err != nil {\n\t\t\treturn nil, paginatedResult, err\n\t\t}\n\n\t\t// if we have no more items, return the list\n\t\tif len(m.GetContinue()) == 0 {\n\t\t\treturn list, paginatedResult, nil\n\t\t}\n\n\t\t// set the next loop up\n\t\toptions.Continue = m.GetContinue()\n\t\t// Clear the ResourceVersion(Match) on the subsequent List calls to avoid the\n\t\t// `specifying resource version is not allowed when using continue` error.\n\t\t// See https://github.com/kubernetes/kubernetes/issues/85221#issuecomment-553748143.\n\t\toptions.ResourceVersion = \"\"\n\t\toptions.ResourceVersionMatch = \"\"\n\t\t// At this point, result is already paginated.\n\t\tpaginatedResult = true\n\t}\n}\n\n// EachListItem fetches runtime.Object items using this ListPager and invokes fn on each item. If\n// fn returns an error, processing stops and that error is returned. If fn does not return an error,\n// any error encountered while retrieving the list from the server is returned. If the context\n// cancels or times out, the context error is returned. Since the list is retrieved in paginated\n// chunks, an \"Expired\" error (metav1.StatusReasonExpired) may be returned if the pagination list\n// requests exceed the expiration limit of the apiserver being called.\n//\n// Items are retrieved in chunks from the server to reduce the impact on the server with up to\n// ListPager.PageBufferSize chunks buffered concurrently in the background.\n//\n// If items passed to fn are retained for different durations, and you want to avoid\n// retaining the whole slice returned by p.PageFn as long as any item is referenced,\n// use EachListItemWithAlloc instead.\nfunc (p *ListPager) EachListItem(ctx context.Context, options metav1.ListOptions, fn func(obj runtime.Object) error) error {\n\treturn p.eachListChunkBuffered(ctx, options, func(obj runtime.Object) error {\n\t\treturn meta.EachListItem(obj, fn)\n\t})\n}\n\n// EachListItemWithAlloc works like EachListItem, but avoids retaining references to the items slice returned by p.PageFn.\n// It does this by making a shallow copy of non-pointer items in the slice returned by p.PageFn.\n//\n// If the items passed to fn are not retained, or are retained for the same duration, use EachListItem instead for memory efficiency.\nfunc (p *ListPager) EachListItemWithAlloc(ctx context.Context, options metav1.ListOptions, fn func(obj runtime.Object) error) error {\n\treturn p.eachListChunkBuffered(ctx, options, func(obj runtime.Object) error {\n\t\treturn meta.EachListItemWithAlloc(obj, fn)\n\t})\n}\n\n// eachListChunkBuffered fetches runtimeObject list chunks using this ListPager and invokes fn on\n// each list chunk.  If fn returns an error, processing stops and that error is returned. If fn does\n// not return an error, any error encountered while retrieving the list from the server is\n// returned. If the context cancels or times out, the context error is returned. Since the list is\n// retrieved in paginated chunks, an \"Expired\" error (metav1.StatusReasonExpired) may be returned if\n// the pagination list requests exceed the expiration limit of the apiserver being called.\n//\n// Up to ListPager.PageBufferSize chunks are buffered concurrently in the background.\nfunc (p *ListPager) eachListChunkBuffered(ctx context.Context, options metav1.ListOptions, fn func(obj runtime.Object) error) error {\n\tif p.PageBufferSize < 0 {\n\t\treturn fmt.Errorf(\"ListPager.PageBufferSize must be >= 0, got %d\", p.PageBufferSize)\n\t}\n\n\t// Ensure background goroutine is stopped if this call exits before all list items are\n\t// processed. Cancelation error from this deferred cancel call is never returned to caller;\n\t// either the list result has already been sent to bgResultC or the fn error is returned and\n\t// the cancelation error is discarded.\n\tctx, cancel := context.WithCancel(ctx)\n\tdefer cancel()\n\n\tchunkC := make(chan runtime.Object, p.PageBufferSize)\n\tbgResultC := make(chan error, 1)\n\tgo func() {\n\t\tdefer utilruntime.HandleCrash()\n\n\t\tvar err error\n\t\tdefer func() {\n\t\t\tclose(chunkC)\n\t\t\tbgResultC <- err\n\t\t}()\n\t\terr = p.eachListChunk(ctx, options, func(chunk runtime.Object) error {\n\t\t\tselect {\n\t\t\tcase chunkC <- chunk: // buffer the chunk, this can block\n\t\t\tcase <-ctx.Done():\n\t\t\t\treturn ctx.Err()\n\t\t\t}\n\t\t\treturn nil\n\t\t})\n\t}()\n\n\tfor o := range chunkC {\n\t\tselect {\n\t\tcase <-ctx.Done():\n\t\t\treturn ctx.Err()\n\t\tdefault:\n\t\t}\n\t\terr := fn(o)\n\t\tif err != nil {\n\t\t\treturn err // any fn error should be returned immediately\n\t\t}\n\t}\n\t// promote the results of our background goroutine to the foreground\n\treturn <-bgResultC\n}\n\n// eachListChunk fetches runtimeObject list chunks using this ListPager and invokes fn on each list\n// chunk. If fn returns an error, processing stops and that error is returned. If fn does not return\n// an error, any error encountered while retrieving the list from the server is returned. If the\n// context cancels or times out, the context error is returned. Since the list is retrieved in\n// paginated chunks, an \"Expired\" error (metav1.StatusReasonExpired) may be returned if the\n// pagination list requests exceed the expiration limit of the apiserver being called.\nfunc (p *ListPager) eachListChunk(ctx context.Context, options metav1.ListOptions, fn func(obj runtime.Object) error) error {\n\tif options.Limit == 0 {\n\t\toptions.Limit = p.PageSize\n\t}\n\tfor {\n\t\tselect {\n\t\tcase <-ctx.Done():\n\t\t\treturn ctx.Err()\n\t\tdefault:\n\t\t}\n\n\t\tobj, err := p.PageFn(ctx, options)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tm, err := meta.ListAccessor(obj)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"returned object must be a list: %v\", err)\n\t\t}\n\t\tif err := fn(obj); err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// if we have no more items, return.\n\t\tif len(m.GetContinue()) == 0 {\n\t\t\treturn nil\n\t\t}\n\t\t// set the next loop up\n\t\toptions.Continue = m.GetContinue()\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/tools/reference/ref.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage reference\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\n\t\"k8s.io/api/core/v1\"\n\t\"k8s.io/apimachinery/pkg/api/meta\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n)\n\nvar (\n\t// Errors that could be returned by GetReference.\n\tErrNilObject = errors.New(\"can't reference a nil object\")\n)\n\n// GetReference returns an ObjectReference which refers to the given\n// object, or an error if the object doesn't follow the conventions\n// that would allow this.\n// TODO: should take a meta.Interface see https://issue.k8s.io/7127\nfunc GetReference(scheme *runtime.Scheme, obj runtime.Object) (*v1.ObjectReference, error) {\n\tif obj == nil {\n\t\treturn nil, ErrNilObject\n\t}\n\tif ref, ok := obj.(*v1.ObjectReference); ok {\n\t\t// Don't make a reference to a reference.\n\t\treturn ref, nil\n\t}\n\n\t// An object that implements only List has enough metadata to build a reference\n\tvar listMeta metav1.Common\n\tobjectMeta, err := meta.Accessor(obj)\n\tif err != nil {\n\t\tlistMeta, err = meta.CommonAccessor(obj)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t} else {\n\t\tlistMeta = objectMeta\n\t}\n\n\tgvk := obj.GetObjectKind().GroupVersionKind()\n\n\t// If object meta doesn't contain data about kind and/or version,\n\t// we are falling back to scheme.\n\t//\n\t// TODO: This doesn't work for CRDs, which are not registered in scheme.\n\tif gvk.Empty() {\n\t\tgvks, _, err := scheme.ObjectKinds(obj)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif len(gvks) == 0 || gvks[0].Empty() {\n\t\t\treturn nil, fmt.Errorf(\"unexpected gvks registered for object %T: %v\", obj, gvks)\n\t\t}\n\t\t// TODO: The same object can be registered for multiple group versions\n\t\t// (although in practise this doesn't seem to be used).\n\t\t// In such case, the version set may not be correct.\n\t\tgvk = gvks[0]\n\t}\n\n\tkind := gvk.Kind\n\tversion := gvk.GroupVersion().String()\n\n\t// only has list metadata\n\tif objectMeta == nil {\n\t\treturn &v1.ObjectReference{\n\t\t\tKind:            kind,\n\t\t\tAPIVersion:      version,\n\t\t\tResourceVersion: listMeta.GetResourceVersion(),\n\t\t}, nil\n\t}\n\n\treturn &v1.ObjectReference{\n\t\tKind:            kind,\n\t\tAPIVersion:      version,\n\t\tName:            objectMeta.GetName(),\n\t\tNamespace:       objectMeta.GetNamespace(),\n\t\tUID:             objectMeta.GetUID(),\n\t\tResourceVersion: objectMeta.GetResourceVersion(),\n\t}, nil\n}\n\n// GetPartialReference is exactly like GetReference, but allows you to set the FieldPath.\nfunc GetPartialReference(scheme *runtime.Scheme, obj runtime.Object, fieldPath string) (*v1.ObjectReference, error) {\n\tref, err := GetReference(scheme, obj)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tref.FieldPath = fieldPath\n\treturn ref, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/transport/OWNERS",
    "content": "# See the OWNERS docs at https://go.k8s.io/owners\n\nreviewers:\n  - smarterclayton\n  - wojtek-t\n  - deads2k\n  - liggitt\n  - caesarxuchao\n"
  },
  {
    "path": "vendor/k8s.io/client-go/transport/cache.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage transport\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"net\"\n\t\"net/http\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\tutilnet \"k8s.io/apimachinery/pkg/util/net\"\n\t\"k8s.io/apimachinery/pkg/util/wait\"\n\t\"k8s.io/client-go/tools/metrics\"\n)\n\n// TlsTransportCache caches TLS http.RoundTrippers different configurations. The\n// same RoundTripper will be returned for configs with identical TLS options If\n// the config has no custom TLS options, http.DefaultTransport is returned.\ntype tlsTransportCache struct {\n\tmu         sync.Mutex\n\ttransports map[tlsCacheKey]*http.Transport\n}\n\n// DialerStopCh is stop channel that is passed down to dynamic cert dialer.\n// It's exposed as variable for testing purposes to avoid testing for goroutine\n// leakages.\nvar DialerStopCh = wait.NeverStop\n\nconst idleConnsPerHost = 25\n\nvar tlsCache = &tlsTransportCache{transports: make(map[tlsCacheKey]*http.Transport)}\n\ntype tlsCacheKey struct {\n\tinsecure           bool\n\tcaData             string\n\tcertData           string\n\tkeyData            string `datapolicy:\"security-key\"`\n\tcertFile           string\n\tkeyFile            string\n\tserverName         string\n\tnextProtos         string\n\tdisableCompression bool\n\t// these functions are wrapped to allow them to be used as map keys\n\tgetCert *GetCertHolder\n\tdial    *DialHolder\n}\n\nfunc (t tlsCacheKey) String() string {\n\tkeyText := \"<none>\"\n\tif len(t.keyData) > 0 {\n\t\tkeyText = \"<redacted>\"\n\t}\n\treturn fmt.Sprintf(\"insecure:%v, caData:%#v, certData:%#v, keyData:%s, serverName:%s, disableCompression:%t, getCert:%p, dial:%p\",\n\t\tt.insecure, t.caData, t.certData, keyText, t.serverName, t.disableCompression, t.getCert, t.dial)\n}\n\nfunc (c *tlsTransportCache) get(config *Config) (http.RoundTripper, error) {\n\tkey, canCache, err := tlsConfigKey(config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tif canCache {\n\t\t// Ensure we only create a single transport for the given TLS options\n\t\tc.mu.Lock()\n\t\tdefer c.mu.Unlock()\n\t\tdefer metrics.TransportCacheEntries.Observe(len(c.transports))\n\n\t\t// See if we already have a custom transport for this config\n\t\tif t, ok := c.transports[key]; ok {\n\t\t\tmetrics.TransportCreateCalls.Increment(\"hit\")\n\t\t\treturn t, nil\n\t\t}\n\t\tmetrics.TransportCreateCalls.Increment(\"miss\")\n\t} else {\n\t\tmetrics.TransportCreateCalls.Increment(\"uncacheable\")\n\t}\n\n\t// Get the TLS options for this client config\n\ttlsConfig, err := TLSConfigFor(config)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\t// The options didn't require a custom TLS config\n\tif tlsConfig == nil && config.DialHolder == nil && config.Proxy == nil {\n\t\treturn http.DefaultTransport, nil\n\t}\n\n\tvar dial func(ctx context.Context, network, address string) (net.Conn, error)\n\tif config.DialHolder != nil {\n\t\tdial = config.DialHolder.Dial\n\t} else {\n\t\tdial = (&net.Dialer{\n\t\t\tTimeout:   30 * time.Second,\n\t\t\tKeepAlive: 30 * time.Second,\n\t\t}).DialContext\n\t}\n\n\t// If we use are reloading files, we need to handle certificate rotation properly\n\t// TODO(jackkleeman): We can also add rotation here when config.HasCertCallback() is true\n\tif config.TLS.ReloadTLSFiles && tlsConfig != nil && tlsConfig.GetClientCertificate != nil {\n\t\tdynamicCertDialer := certRotatingDialer(tlsConfig.GetClientCertificate, dial)\n\t\ttlsConfig.GetClientCertificate = dynamicCertDialer.GetClientCertificate\n\t\tdial = dynamicCertDialer.connDialer.DialContext\n\t\tgo dynamicCertDialer.Run(DialerStopCh)\n\t}\n\n\tproxy := http.ProxyFromEnvironment\n\tif config.Proxy != nil {\n\t\tproxy = config.Proxy\n\t}\n\n\ttransport := utilnet.SetTransportDefaults(&http.Transport{\n\t\tProxy:               proxy,\n\t\tTLSHandshakeTimeout: 10 * time.Second,\n\t\tTLSClientConfig:     tlsConfig,\n\t\tMaxIdleConnsPerHost: idleConnsPerHost,\n\t\tDialContext:         dial,\n\t\tDisableCompression:  config.DisableCompression,\n\t})\n\n\tif canCache {\n\t\t// Cache a single transport for these options\n\t\tc.transports[key] = transport\n\t}\n\n\treturn transport, nil\n}\n\n// tlsConfigKey returns a unique key for tls.Config objects returned from TLSConfigFor\nfunc tlsConfigKey(c *Config) (tlsCacheKey, bool, error) {\n\t// Make sure ca/key/cert content is loaded\n\tif err := loadTLSFiles(c); err != nil {\n\t\treturn tlsCacheKey{}, false, err\n\t}\n\n\tif c.Proxy != nil {\n\t\t// cannot determine equality for functions\n\t\treturn tlsCacheKey{}, false, nil\n\t}\n\n\tk := tlsCacheKey{\n\t\tinsecure:           c.TLS.Insecure,\n\t\tcaData:             string(c.TLS.CAData),\n\t\tserverName:         c.TLS.ServerName,\n\t\tnextProtos:         strings.Join(c.TLS.NextProtos, \",\"),\n\t\tdisableCompression: c.DisableCompression,\n\t\tgetCert:            c.TLS.GetCertHolder,\n\t\tdial:               c.DialHolder,\n\t}\n\n\tif c.TLS.ReloadTLSFiles {\n\t\tk.certFile = c.TLS.CertFile\n\t\tk.keyFile = c.TLS.KeyFile\n\t} else {\n\t\tk.certData = string(c.TLS.CertData)\n\t\tk.keyData = string(c.TLS.KeyData)\n\t}\n\n\treturn k, true, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/transport/cache_go118.go",
    "content": "//go:build go1.18\n\n/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage transport\n\n// this is just to make the \"unused\" linter rule happy\nvar _ = isCacheKeyComparable[tlsCacheKey]\n\n// assert at compile time that tlsCacheKey is comparable in a way that will never panic at runtime.\n//\n// Golang 1.20 introduced an exception to type constraints that allows comparable, but not\n// necessarily strictly comparable type arguments to satisfy the `comparable` type constraint,\n// thus allowing interfaces to fulfil the `comparable` constraint.\n// However, by definition, \"A comparison of two interface values with identical\n// dynamic types causes a run-time panic if that type is not comparable\".\n//\n// We want to make sure that comparing two `tlsCacheKey` elements won't cause a\n// runtime panic. In order to do that, we'll force the `tlsCacheKey` to be strictly\n// comparable, thus making it impossible for it to contain interfaces.\n// To assert strict comparability, we'll use another definition: \"Type\n// parameters are comparable if they are strictly comparable\".\n// Below, we first construct a type parameter from the `tlsCacheKey` type so that\n// we can then push this type parameter to a comparable check, thus checking these\n// are strictly comparable.\n//\n// Original suggestion from https://github.com/golang/go/issues/56548#issuecomment-1317673963\nfunc isCacheKeyComparable[K tlsCacheKey]() {\n\t_ = isComparable[K]\n}\n\nfunc isComparable[T comparable]() {}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/transport/cert_rotation.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage transport\n\nimport (\n\t\"bytes\"\n\t\"crypto/tls\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"sync\"\n\t\"time\"\n\n\tutilnet \"k8s.io/apimachinery/pkg/util/net\"\n\tutilruntime \"k8s.io/apimachinery/pkg/util/runtime\"\n\t\"k8s.io/apimachinery/pkg/util/wait\"\n\t\"k8s.io/client-go/util/connrotation\"\n\t\"k8s.io/client-go/util/workqueue\"\n\t\"k8s.io/klog/v2\"\n)\n\nconst workItemKey = \"key\"\n\n// CertCallbackRefreshDuration is exposed so that integration tests can crank up the reload speed.\nvar CertCallbackRefreshDuration = 5 * time.Minute\n\ntype reloadFunc func(*tls.CertificateRequestInfo) (*tls.Certificate, error)\n\ntype dynamicClientCert struct {\n\tclientCert *tls.Certificate\n\tcertMtx    sync.RWMutex\n\n\treload     reloadFunc\n\tconnDialer *connrotation.Dialer\n\n\t// queue only ever has one item, but it has nice error handling backoff/retry semantics\n\tqueue workqueue.TypedRateLimitingInterface[string]\n}\n\nfunc certRotatingDialer(reload reloadFunc, dial utilnet.DialFunc) *dynamicClientCert {\n\td := &dynamicClientCert{\n\t\treload:     reload,\n\t\tconnDialer: connrotation.NewDialer(connrotation.DialFunc(dial)),\n\t\tqueue: workqueue.NewTypedRateLimitingQueueWithConfig(\n\t\t\tworkqueue.DefaultTypedControllerRateLimiter[string](),\n\t\t\tworkqueue.TypedRateLimitingQueueConfig[string]{Name: \"DynamicClientCertificate\"},\n\t\t),\n\t}\n\n\treturn d\n}\n\n// loadClientCert calls the callback and rotates connections if needed\nfunc (c *dynamicClientCert) loadClientCert() (*tls.Certificate, error) {\n\tcert, err := c.reload(nil)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// check to see if we have a change. If the values are the same, do nothing.\n\tc.certMtx.RLock()\n\thaveCert := c.clientCert != nil\n\tif certsEqual(c.clientCert, cert) {\n\t\tc.certMtx.RUnlock()\n\t\treturn c.clientCert, nil\n\t}\n\tc.certMtx.RUnlock()\n\n\tc.certMtx.Lock()\n\tc.clientCert = cert\n\tc.certMtx.Unlock()\n\n\t// The first certificate requested is not a rotation that is worth closing connections for\n\tif !haveCert {\n\t\treturn cert, nil\n\t}\n\n\tklog.V(1).Infof(\"certificate rotation detected, shutting down client connections to start using new credentials\")\n\tc.connDialer.CloseAll()\n\n\treturn cert, nil\n}\n\n// certsEqual compares tls Certificates, ignoring the Leaf which may get filled in dynamically\nfunc certsEqual(left, right *tls.Certificate) bool {\n\tif left == nil || right == nil {\n\t\treturn left == right\n\t}\n\n\tif !byteMatrixEqual(left.Certificate, right.Certificate) {\n\t\treturn false\n\t}\n\n\tif !reflect.DeepEqual(left.PrivateKey, right.PrivateKey) {\n\t\treturn false\n\t}\n\n\tif !byteMatrixEqual(left.SignedCertificateTimestamps, right.SignedCertificateTimestamps) {\n\t\treturn false\n\t}\n\n\tif !bytes.Equal(left.OCSPStaple, right.OCSPStaple) {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\nfunc byteMatrixEqual(left, right [][]byte) bool {\n\tif len(left) != len(right) {\n\t\treturn false\n\t}\n\n\tfor i := range left {\n\t\tif !bytes.Equal(left[i], right[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// run starts the controller and blocks until stopCh is closed.\nfunc (c *dynamicClientCert) Run(stopCh <-chan struct{}) {\n\tdefer utilruntime.HandleCrash()\n\tdefer c.queue.ShutDown()\n\n\tklog.V(3).Infof(\"Starting client certificate rotation controller\")\n\tdefer klog.V(3).Infof(\"Shutting down client certificate rotation controller\")\n\n\tgo wait.Until(c.runWorker, time.Second, stopCh)\n\n\tgo wait.PollImmediateUntil(CertCallbackRefreshDuration, func() (bool, error) {\n\t\tc.queue.Add(workItemKey)\n\t\treturn false, nil\n\t}, stopCh)\n\n\t<-stopCh\n}\n\nfunc (c *dynamicClientCert) runWorker() {\n\tfor c.processNextWorkItem() {\n\t}\n}\n\nfunc (c *dynamicClientCert) processNextWorkItem() bool {\n\tdsKey, quit := c.queue.Get()\n\tif quit {\n\t\treturn false\n\t}\n\tdefer c.queue.Done(dsKey)\n\n\t_, err := c.loadClientCert()\n\tif err == nil {\n\t\tc.queue.Forget(dsKey)\n\t\treturn true\n\t}\n\n\tutilruntime.HandleError(fmt.Errorf(\"%v failed with : %v\", dsKey, err))\n\tc.queue.AddRateLimited(dsKey)\n\n\treturn true\n}\n\nfunc (c *dynamicClientCert) GetClientCertificate(*tls.CertificateRequestInfo) (*tls.Certificate, error) {\n\treturn c.loadClientCert()\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/transport/config.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage transport\n\nimport (\n\t\"context\"\n\t\"crypto/tls\"\n\t\"net\"\n\t\"net/http\"\n\t\"net/url\"\n)\n\n// Config holds various options for establishing a transport.\ntype Config struct {\n\t// UserAgent is an optional field that specifies the caller of this\n\t// request.\n\tUserAgent string\n\n\t// The base TLS configuration for this transport.\n\tTLS TLSConfig\n\n\t// Username and password for basic authentication\n\tUsername string\n\tPassword string `datapolicy:\"password\"`\n\n\t// Bearer token for authentication\n\tBearerToken string `datapolicy:\"token\"`\n\n\t// Path to a file containing a BearerToken.\n\t// If set, the contents are periodically read.\n\t// The last successfully read value takes precedence over BearerToken.\n\tBearerTokenFile string\n\n\t// Impersonate is the config that this Config will impersonate using\n\tImpersonate ImpersonationConfig\n\n\t// DisableCompression bypasses automatic GZip compression requests to the\n\t// server.\n\tDisableCompression bool\n\n\t// Transport may be used for custom HTTP behavior. This attribute may\n\t// not be specified with the TLS client certificate options. Use\n\t// WrapTransport for most client level operations.\n\tTransport http.RoundTripper\n\n\t// WrapTransport will be invoked for custom HTTP behavior after the\n\t// underlying transport is initialized (either the transport created\n\t// from TLSClientConfig, Transport, or http.DefaultTransport). The\n\t// config may layer other RoundTrippers on top of the returned\n\t// RoundTripper.\n\t//\n\t// A future release will change this field to an array. Use config.Wrap()\n\t// instead of setting this value directly.\n\tWrapTransport WrapperFunc\n\n\t// DialHolder specifies the dial function for creating unencrypted TCP connections.\n\t// This struct indirection is used to make transport configs cacheable.\n\tDialHolder *DialHolder\n\n\t// Proxy is the proxy func to be used for all requests made by this\n\t// transport. If Proxy is nil, http.ProxyFromEnvironment is used. If Proxy\n\t// returns a nil *URL, no proxy is used.\n\t//\n\t// socks5 proxying does not currently support spdy streaming endpoints.\n\tProxy func(*http.Request) (*url.URL, error)\n}\n\n// DialHolder is used to make the wrapped function comparable so that it can be used as a map key.\ntype DialHolder struct {\n\tDial func(ctx context.Context, network, address string) (net.Conn, error)\n}\n\n// ImpersonationConfig has all the available impersonation options\ntype ImpersonationConfig struct {\n\t// UserName matches user.Info.GetName()\n\tUserName string\n\t// UID matches user.Info.GetUID()\n\tUID string\n\t// Groups matches user.Info.GetGroups()\n\tGroups []string\n\t// Extra matches user.Info.GetExtra()\n\tExtra map[string][]string\n}\n\n// HasCA returns whether the configuration has a certificate authority or not.\nfunc (c *Config) HasCA() bool {\n\treturn len(c.TLS.CAData) > 0 || len(c.TLS.CAFile) > 0\n}\n\n// HasBasicAuth returns whether the configuration has basic authentication or not.\nfunc (c *Config) HasBasicAuth() bool {\n\treturn len(c.Username) != 0\n}\n\n// HasTokenAuth returns whether the configuration has token authentication or not.\nfunc (c *Config) HasTokenAuth() bool {\n\treturn len(c.BearerToken) != 0 || len(c.BearerTokenFile) != 0\n}\n\n// HasCertAuth returns whether the configuration has certificate authentication or not.\nfunc (c *Config) HasCertAuth() bool {\n\treturn (len(c.TLS.CertData) != 0 || len(c.TLS.CertFile) != 0) && (len(c.TLS.KeyData) != 0 || len(c.TLS.KeyFile) != 0)\n}\n\n// HasCertCallback returns whether the configuration has certificate callback or not.\nfunc (c *Config) HasCertCallback() bool {\n\treturn c.TLS.GetCertHolder != nil\n}\n\n// Wrap adds a transport middleware function that will give the caller\n// an opportunity to wrap the underlying http.RoundTripper prior to the\n// first API call being made. The provided function is invoked after any\n// existing transport wrappers are invoked.\nfunc (c *Config) Wrap(fn WrapperFunc) {\n\tc.WrapTransport = Wrappers(c.WrapTransport, fn)\n}\n\n// TLSConfig holds the information needed to set up a TLS transport.\ntype TLSConfig struct {\n\tCAFile         string // Path of the PEM-encoded server trusted root certificates.\n\tCertFile       string // Path of the PEM-encoded client certificate.\n\tKeyFile        string // Path of the PEM-encoded client key.\n\tReloadTLSFiles bool   // Set to indicate that the original config provided files, and that they should be reloaded\n\n\tInsecure   bool   // Server should be accessed without verifying the certificate. For testing only.\n\tServerName string // Override for the server name passed to the server for SNI and used to verify certificates.\n\n\tCAData   []byte // Bytes of the PEM-encoded server trusted root certificates. Supercedes CAFile.\n\tCertData []byte // Bytes of the PEM-encoded client certificate. Supercedes CertFile.\n\tKeyData  []byte // Bytes of the PEM-encoded client key. Supercedes KeyFile.\n\n\t// NextProtos is a list of supported application level protocols, in order of preference.\n\t// Used to populate tls.Config.NextProtos.\n\t// To indicate to the server http/1.1 is preferred over http/2, set to [\"http/1.1\", \"h2\"] (though the server is free to ignore that preference).\n\t// To use only http/1.1, set to [\"http/1.1\"].\n\tNextProtos []string\n\n\t// Callback that returns a TLS client certificate. CertData, CertFile, KeyData and KeyFile supercede this field.\n\t// This struct indirection is used to make transport configs cacheable.\n\tGetCertHolder *GetCertHolder\n}\n\n// GetCertHolder is used to make the wrapped function comparable so that it can be used as a map key.\ntype GetCertHolder struct {\n\tGetCert func() (*tls.Certificate, error)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/transport/round_trippers.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage transport\n\nimport (\n\t\"crypto/tls\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"net/http/httptrace\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"golang.org/x/oauth2\"\n\n\tutilnet \"k8s.io/apimachinery/pkg/util/net\"\n\t\"k8s.io/klog/v2\"\n)\n\n// HTTPWrappersForConfig wraps a round tripper with any relevant layered\n// behavior from the config. Exposed to allow more clients that need HTTP-like\n// behavior but then must hijack the underlying connection (like WebSocket or\n// HTTP2 clients). Pure HTTP clients should use the RoundTripper returned from\n// New.\nfunc HTTPWrappersForConfig(config *Config, rt http.RoundTripper) (http.RoundTripper, error) {\n\tif config.WrapTransport != nil {\n\t\trt = config.WrapTransport(rt)\n\t}\n\n\trt = DebugWrappers(rt)\n\n\t// Set authentication wrappers\n\tswitch {\n\tcase config.HasBasicAuth() && config.HasTokenAuth():\n\t\treturn nil, fmt.Errorf(\"username/password or bearer token may be set, but not both\")\n\tcase config.HasTokenAuth():\n\t\tvar err error\n\t\trt, err = NewBearerAuthWithRefreshRoundTripper(config.BearerToken, config.BearerTokenFile, rt)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\tcase config.HasBasicAuth():\n\t\trt = NewBasicAuthRoundTripper(config.Username, config.Password, rt)\n\t}\n\tif len(config.UserAgent) > 0 {\n\t\trt = NewUserAgentRoundTripper(config.UserAgent, rt)\n\t}\n\tif len(config.Impersonate.UserName) > 0 ||\n\t\tlen(config.Impersonate.UID) > 0 ||\n\t\tlen(config.Impersonate.Groups) > 0 ||\n\t\tlen(config.Impersonate.Extra) > 0 {\n\t\trt = NewImpersonatingRoundTripper(config.Impersonate, rt)\n\t}\n\treturn rt, nil\n}\n\n// DebugWrappers wraps a round tripper and logs based on the current log level.\nfunc DebugWrappers(rt http.RoundTripper) http.RoundTripper {\n\tswitch {\n\tcase bool(klog.V(9).Enabled()):\n\t\trt = NewDebuggingRoundTripper(rt, DebugCurlCommand, DebugURLTiming, DebugDetailedTiming, DebugResponseHeaders)\n\tcase bool(klog.V(8).Enabled()):\n\t\trt = NewDebuggingRoundTripper(rt, DebugJustURL, DebugRequestHeaders, DebugResponseStatus, DebugResponseHeaders)\n\tcase bool(klog.V(7).Enabled()):\n\t\trt = NewDebuggingRoundTripper(rt, DebugJustURL, DebugRequestHeaders, DebugResponseStatus)\n\tcase bool(klog.V(6).Enabled()):\n\t\trt = NewDebuggingRoundTripper(rt, DebugURLTiming)\n\t}\n\n\treturn rt\n}\n\ntype authProxyRoundTripper struct {\n\tusername string\n\tuid      string\n\tgroups   []string\n\textra    map[string][]string\n\n\trt http.RoundTripper\n}\n\nvar _ utilnet.RoundTripperWrapper = &authProxyRoundTripper{}\n\n// NewAuthProxyRoundTripper provides a roundtripper which will add auth proxy fields to requests for\n// authentication terminating proxy cases\n// assuming you pull the user from the context:\n// username is the user.Info.GetName() of the user\n// uid is the user.Info.GetUID() of the user\n// groups is the user.Info.GetGroups() of the user\n// extra is the user.Info.GetExtra() of the user\n// extra can contain any additional information that the authenticator\n// thought was interesting, for example authorization scopes.\n// In order to faithfully round-trip through an impersonation flow, these keys\n// MUST be lowercase.\nfunc NewAuthProxyRoundTripper(username, uid string, groups []string, extra map[string][]string, rt http.RoundTripper) http.RoundTripper {\n\treturn &authProxyRoundTripper{\n\t\tusername: username,\n\t\tuid:      uid,\n\t\tgroups:   groups,\n\t\textra:    extra,\n\t\trt:       rt,\n\t}\n}\n\nfunc (rt *authProxyRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) {\n\treq = utilnet.CloneRequest(req)\n\tSetAuthProxyHeaders(req, rt.username, rt.uid, rt.groups, rt.extra)\n\n\treturn rt.rt.RoundTrip(req)\n}\n\n// SetAuthProxyHeaders stomps the auth proxy header fields.  It mutates its argument.\nfunc SetAuthProxyHeaders(req *http.Request, username, uid string, groups []string, extra map[string][]string) {\n\treq.Header.Del(\"X-Remote-User\")\n\treq.Header.Del(\"X-Remote-Uid\")\n\treq.Header.Del(\"X-Remote-Group\")\n\tfor key := range req.Header {\n\t\tif strings.HasPrefix(strings.ToLower(key), strings.ToLower(\"X-Remote-Extra-\")) {\n\t\t\treq.Header.Del(key)\n\t\t}\n\t}\n\n\treq.Header.Set(\"X-Remote-User\", username)\n\tif len(uid) > 0 {\n\t\treq.Header.Set(\"X-Remote-Uid\", uid)\n\t}\n\tfor _, group := range groups {\n\t\treq.Header.Add(\"X-Remote-Group\", group)\n\t}\n\tfor key, values := range extra {\n\t\tfor _, value := range values {\n\t\t\treq.Header.Add(\"X-Remote-Extra-\"+headerKeyEscape(key), value)\n\t\t}\n\t}\n}\n\nfunc (rt *authProxyRoundTripper) CancelRequest(req *http.Request) {\n\ttryCancelRequest(rt.WrappedRoundTripper(), req)\n}\n\nfunc (rt *authProxyRoundTripper) WrappedRoundTripper() http.RoundTripper { return rt.rt }\n\ntype userAgentRoundTripper struct {\n\tagent string\n\trt    http.RoundTripper\n}\n\nvar _ utilnet.RoundTripperWrapper = &userAgentRoundTripper{}\n\n// NewUserAgentRoundTripper will add User-Agent header to a request unless it has already been set.\nfunc NewUserAgentRoundTripper(agent string, rt http.RoundTripper) http.RoundTripper {\n\treturn &userAgentRoundTripper{agent, rt}\n}\n\nfunc (rt *userAgentRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) {\n\tif len(req.Header.Get(\"User-Agent\")) != 0 {\n\t\treturn rt.rt.RoundTrip(req)\n\t}\n\treq = utilnet.CloneRequest(req)\n\treq.Header.Set(\"User-Agent\", rt.agent)\n\treturn rt.rt.RoundTrip(req)\n}\n\nfunc (rt *userAgentRoundTripper) CancelRequest(req *http.Request) {\n\ttryCancelRequest(rt.WrappedRoundTripper(), req)\n}\n\nfunc (rt *userAgentRoundTripper) WrappedRoundTripper() http.RoundTripper { return rt.rt }\n\ntype basicAuthRoundTripper struct {\n\tusername string\n\tpassword string `datapolicy:\"password\"`\n\trt       http.RoundTripper\n}\n\nvar _ utilnet.RoundTripperWrapper = &basicAuthRoundTripper{}\n\n// NewBasicAuthRoundTripper will apply a BASIC auth authorization header to a\n// request unless it has already been set.\nfunc NewBasicAuthRoundTripper(username, password string, rt http.RoundTripper) http.RoundTripper {\n\treturn &basicAuthRoundTripper{username, password, rt}\n}\n\nfunc (rt *basicAuthRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) {\n\tif len(req.Header.Get(\"Authorization\")) != 0 {\n\t\treturn rt.rt.RoundTrip(req)\n\t}\n\treq = utilnet.CloneRequest(req)\n\treq.SetBasicAuth(rt.username, rt.password)\n\treturn rt.rt.RoundTrip(req)\n}\n\nfunc (rt *basicAuthRoundTripper) CancelRequest(req *http.Request) {\n\ttryCancelRequest(rt.WrappedRoundTripper(), req)\n}\n\nfunc (rt *basicAuthRoundTripper) WrappedRoundTripper() http.RoundTripper { return rt.rt }\n\n// These correspond to the headers used in pkg/apis/authentication.  We don't want the package dependency,\n// but you must not change the values.\nconst (\n\t// ImpersonateUserHeader is used to impersonate a particular user during an API server request\n\tImpersonateUserHeader = \"Impersonate-User\"\n\n\t// ImpersonateUIDHeader is used to impersonate a particular UID during an API server request\n\tImpersonateUIDHeader = \"Impersonate-Uid\"\n\n\t// ImpersonateGroupHeader is used to impersonate a particular group during an API server request.\n\t// It can be repeated multiplied times for multiple groups.\n\tImpersonateGroupHeader = \"Impersonate-Group\"\n\n\t// ImpersonateUserExtraHeaderPrefix is a prefix for a header used to impersonate an entry in the\n\t// extra map[string][]string for user.Info.  The key for the `extra` map is suffix.\n\t// The same key can be repeated multiple times to have multiple elements in the slice under a single key.\n\t// For instance:\n\t// Impersonate-Extra-Foo: one\n\t// Impersonate-Extra-Foo: two\n\t// results in extra[\"Foo\"] = []string{\"one\", \"two\"}\n\tImpersonateUserExtraHeaderPrefix = \"Impersonate-Extra-\"\n)\n\ntype impersonatingRoundTripper struct {\n\timpersonate ImpersonationConfig\n\tdelegate    http.RoundTripper\n}\n\nvar _ utilnet.RoundTripperWrapper = &impersonatingRoundTripper{}\n\n// NewImpersonatingRoundTripper will add an Act-As header to a request unless it has already been set.\nfunc NewImpersonatingRoundTripper(impersonate ImpersonationConfig, delegate http.RoundTripper) http.RoundTripper {\n\treturn &impersonatingRoundTripper{impersonate, delegate}\n}\n\nfunc (rt *impersonatingRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) {\n\t// use the user header as marker for the rest.\n\tif len(req.Header.Get(ImpersonateUserHeader)) != 0 {\n\t\treturn rt.delegate.RoundTrip(req)\n\t}\n\treq = utilnet.CloneRequest(req)\n\treq.Header.Set(ImpersonateUserHeader, rt.impersonate.UserName)\n\tif rt.impersonate.UID != \"\" {\n\t\treq.Header.Set(ImpersonateUIDHeader, rt.impersonate.UID)\n\t}\n\tfor _, group := range rt.impersonate.Groups {\n\t\treq.Header.Add(ImpersonateGroupHeader, group)\n\t}\n\tfor k, vv := range rt.impersonate.Extra {\n\t\tfor _, v := range vv {\n\t\t\treq.Header.Add(ImpersonateUserExtraHeaderPrefix+headerKeyEscape(k), v)\n\t\t}\n\t}\n\n\treturn rt.delegate.RoundTrip(req)\n}\n\nfunc (rt *impersonatingRoundTripper) CancelRequest(req *http.Request) {\n\ttryCancelRequest(rt.WrappedRoundTripper(), req)\n}\n\nfunc (rt *impersonatingRoundTripper) WrappedRoundTripper() http.RoundTripper { return rt.delegate }\n\ntype bearerAuthRoundTripper struct {\n\tbearer string\n\tsource oauth2.TokenSource\n\trt     http.RoundTripper\n}\n\nvar _ utilnet.RoundTripperWrapper = &bearerAuthRoundTripper{}\n\n// NewBearerAuthRoundTripper adds the provided bearer token to a request\n// unless the authorization header has already been set.\nfunc NewBearerAuthRoundTripper(bearer string, rt http.RoundTripper) http.RoundTripper {\n\treturn &bearerAuthRoundTripper{bearer, nil, rt}\n}\n\n// NewBearerAuthWithRefreshRoundTripper adds the provided bearer token to a request\n// unless the authorization header has already been set.\n// If tokenFile is non-empty, it is periodically read,\n// and the last successfully read content is used as the bearer token.\n// If tokenFile is non-empty and bearer is empty, the tokenFile is read\n// immediately to populate the initial bearer token.\nfunc NewBearerAuthWithRefreshRoundTripper(bearer string, tokenFile string, rt http.RoundTripper) (http.RoundTripper, error) {\n\tif len(tokenFile) == 0 {\n\t\treturn &bearerAuthRoundTripper{bearer, nil, rt}, nil\n\t}\n\tsource := NewCachedFileTokenSource(tokenFile)\n\tif len(bearer) == 0 {\n\t\ttoken, err := source.Token()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tbearer = token.AccessToken\n\t}\n\treturn &bearerAuthRoundTripper{bearer, source, rt}, nil\n}\n\nfunc (rt *bearerAuthRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) {\n\tif len(req.Header.Get(\"Authorization\")) != 0 {\n\t\treturn rt.rt.RoundTrip(req)\n\t}\n\n\treq = utilnet.CloneRequest(req)\n\ttoken := rt.bearer\n\tif rt.source != nil {\n\t\tif refreshedToken, err := rt.source.Token(); err == nil {\n\t\t\ttoken = refreshedToken.AccessToken\n\t\t}\n\t}\n\treq.Header.Set(\"Authorization\", fmt.Sprintf(\"Bearer %s\", token))\n\treturn rt.rt.RoundTrip(req)\n}\n\nfunc (rt *bearerAuthRoundTripper) CancelRequest(req *http.Request) {\n\ttryCancelRequest(rt.WrappedRoundTripper(), req)\n}\n\nfunc (rt *bearerAuthRoundTripper) WrappedRoundTripper() http.RoundTripper { return rt.rt }\n\n// requestInfo keeps track of information about a request/response combination\ntype requestInfo struct {\n\tRequestHeaders http.Header `datapolicy:\"token\"`\n\tRequestVerb    string\n\tRequestURL     string\n\n\tResponseStatus  string\n\tResponseHeaders http.Header\n\tResponseErr     error\n\n\tmuTrace          sync.Mutex // Protect trace fields\n\tDNSLookup        time.Duration\n\tDialing          time.Duration\n\tGetConnection    time.Duration\n\tTLSHandshake     time.Duration\n\tServerProcessing time.Duration\n\tConnectionReused bool\n\n\tDuration time.Duration\n}\n\n// newRequestInfo creates a new RequestInfo based on an http request\nfunc newRequestInfo(req *http.Request) *requestInfo {\n\treturn &requestInfo{\n\t\tRequestURL:     req.URL.String(),\n\t\tRequestVerb:    req.Method,\n\t\tRequestHeaders: req.Header,\n\t}\n}\n\n// complete adds information about the response to the requestInfo\nfunc (r *requestInfo) complete(response *http.Response, err error) {\n\tif err != nil {\n\t\tr.ResponseErr = err\n\t\treturn\n\t}\n\tr.ResponseStatus = response.Status\n\tr.ResponseHeaders = response.Header\n}\n\n// toCurl returns a string that can be run as a command in a terminal (minus the body)\nfunc (r *requestInfo) toCurl() string {\n\theaders := \"\"\n\tfor key, values := range r.RequestHeaders {\n\t\tfor _, value := range values {\n\t\t\tvalue = maskValue(key, value)\n\t\t\theaders += fmt.Sprintf(` -H %q`, fmt.Sprintf(\"%s: %s\", key, value))\n\t\t}\n\t}\n\n\treturn fmt.Sprintf(\"curl -v -X%s %s '%s'\", r.RequestVerb, headers, r.RequestURL)\n}\n\n// debuggingRoundTripper will display information about the requests passing\n// through it based on what is configured\ntype debuggingRoundTripper struct {\n\tdelegatedRoundTripper http.RoundTripper\n\tlevels                map[DebugLevel]bool\n}\n\nvar _ utilnet.RoundTripperWrapper = &debuggingRoundTripper{}\n\n// DebugLevel is used to enable debugging of certain\n// HTTP requests and responses fields via the debuggingRoundTripper.\ntype DebugLevel int\n\nconst (\n\t// DebugJustURL will add to the debug output HTTP requests method and url.\n\tDebugJustURL DebugLevel = iota\n\t// DebugURLTiming will add to the debug output the duration of HTTP requests.\n\tDebugURLTiming\n\t// DebugCurlCommand will add to the debug output the curl command equivalent to the\n\t// HTTP request.\n\tDebugCurlCommand\n\t// DebugRequestHeaders will add to the debug output the HTTP requests headers.\n\tDebugRequestHeaders\n\t// DebugResponseStatus will add to the debug output the HTTP response status.\n\tDebugResponseStatus\n\t// DebugResponseHeaders will add to the debug output the HTTP response headers.\n\tDebugResponseHeaders\n\t// DebugDetailedTiming will add to the debug output the duration of the HTTP requests events.\n\tDebugDetailedTiming\n)\n\n// NewDebuggingRoundTripper allows to display in the logs output debug information\n// on the API requests performed by the client.\nfunc NewDebuggingRoundTripper(rt http.RoundTripper, levels ...DebugLevel) http.RoundTripper {\n\tdrt := &debuggingRoundTripper{\n\t\tdelegatedRoundTripper: rt,\n\t\tlevels:                make(map[DebugLevel]bool, len(levels)),\n\t}\n\tfor _, v := range levels {\n\t\tdrt.levels[v] = true\n\t}\n\treturn drt\n}\n\nfunc (rt *debuggingRoundTripper) CancelRequest(req *http.Request) {\n\ttryCancelRequest(rt.WrappedRoundTripper(), req)\n}\n\nvar knownAuthTypes = map[string]bool{\n\t\"bearer\":    true,\n\t\"basic\":     true,\n\t\"negotiate\": true,\n}\n\n// maskValue masks credential content from authorization headers\n// See https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Authorization\nfunc maskValue(key string, value string) string {\n\tif !strings.EqualFold(key, \"Authorization\") {\n\t\treturn value\n\t}\n\tif len(value) == 0 {\n\t\treturn \"\"\n\t}\n\tvar authType string\n\tif i := strings.Index(value, \" \"); i > 0 {\n\t\tauthType = value[0:i]\n\t} else {\n\t\tauthType = value\n\t}\n\tif !knownAuthTypes[strings.ToLower(authType)] {\n\t\treturn \"<masked>\"\n\t}\n\tif len(value) > len(authType)+1 {\n\t\tvalue = authType + \" <masked>\"\n\t} else {\n\t\tvalue = authType\n\t}\n\treturn value\n}\n\nfunc (rt *debuggingRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) {\n\treqInfo := newRequestInfo(req)\n\n\tif rt.levels[DebugJustURL] {\n\t\tklog.Infof(\"%s %s\", reqInfo.RequestVerb, reqInfo.RequestURL)\n\t}\n\tif rt.levels[DebugCurlCommand] {\n\t\tklog.Infof(\"%s\", reqInfo.toCurl())\n\t}\n\tif rt.levels[DebugRequestHeaders] {\n\t\tklog.Info(\"Request Headers:\")\n\t\tfor key, values := range reqInfo.RequestHeaders {\n\t\t\tfor _, value := range values {\n\t\t\t\tvalue = maskValue(key, value)\n\t\t\t\tklog.Infof(\"    %s: %s\", key, value)\n\t\t\t}\n\t\t}\n\t}\n\n\tstartTime := time.Now()\n\n\tif rt.levels[DebugDetailedTiming] {\n\t\tvar getConn, dnsStart, dialStart, tlsStart, serverStart time.Time\n\t\tvar host string\n\t\ttrace := &httptrace.ClientTrace{\n\t\t\t// DNS\n\t\t\tDNSStart: func(info httptrace.DNSStartInfo) {\n\t\t\t\treqInfo.muTrace.Lock()\n\t\t\t\tdefer reqInfo.muTrace.Unlock()\n\t\t\t\tdnsStart = time.Now()\n\t\t\t\thost = info.Host\n\t\t\t},\n\t\t\tDNSDone: func(info httptrace.DNSDoneInfo) {\n\t\t\t\treqInfo.muTrace.Lock()\n\t\t\t\tdefer reqInfo.muTrace.Unlock()\n\t\t\t\treqInfo.DNSLookup = time.Since(dnsStart)\n\t\t\t\tklog.Infof(\"HTTP Trace: DNS Lookup for %s resolved to %v\", host, info.Addrs)\n\t\t\t},\n\t\t\t// Dial\n\t\t\tConnectStart: func(network, addr string) {\n\t\t\t\treqInfo.muTrace.Lock()\n\t\t\t\tdefer reqInfo.muTrace.Unlock()\n\t\t\t\tdialStart = time.Now()\n\t\t\t},\n\t\t\tConnectDone: func(network, addr string, err error) {\n\t\t\t\treqInfo.muTrace.Lock()\n\t\t\t\tdefer reqInfo.muTrace.Unlock()\n\t\t\t\treqInfo.Dialing = time.Since(dialStart)\n\t\t\t\tif err != nil {\n\t\t\t\t\tklog.Infof(\"HTTP Trace: Dial to %s:%s failed: %v\", network, addr, err)\n\t\t\t\t} else {\n\t\t\t\t\tklog.Infof(\"HTTP Trace: Dial to %s:%s succeed\", network, addr)\n\t\t\t\t}\n\t\t\t},\n\t\t\t// TLS\n\t\t\tTLSHandshakeStart: func() {\n\t\t\t\ttlsStart = time.Now()\n\t\t\t},\n\t\t\tTLSHandshakeDone: func(_ tls.ConnectionState, _ error) {\n\t\t\t\treqInfo.muTrace.Lock()\n\t\t\t\tdefer reqInfo.muTrace.Unlock()\n\t\t\t\treqInfo.TLSHandshake = time.Since(tlsStart)\n\t\t\t},\n\t\t\t// Connection (it can be DNS + Dial or just the time to get one from the connection pool)\n\t\t\tGetConn: func(hostPort string) {\n\t\t\t\tgetConn = time.Now()\n\t\t\t},\n\t\t\tGotConn: func(info httptrace.GotConnInfo) {\n\t\t\t\treqInfo.muTrace.Lock()\n\t\t\t\tdefer reqInfo.muTrace.Unlock()\n\t\t\t\treqInfo.GetConnection = time.Since(getConn)\n\t\t\t\treqInfo.ConnectionReused = info.Reused\n\t\t\t},\n\t\t\t// Server Processing (time since we wrote the request until first byte is received)\n\t\t\tWroteRequest: func(info httptrace.WroteRequestInfo) {\n\t\t\t\treqInfo.muTrace.Lock()\n\t\t\t\tdefer reqInfo.muTrace.Unlock()\n\t\t\t\tserverStart = time.Now()\n\t\t\t},\n\t\t\tGotFirstResponseByte: func() {\n\t\t\t\treqInfo.muTrace.Lock()\n\t\t\t\tdefer reqInfo.muTrace.Unlock()\n\t\t\t\treqInfo.ServerProcessing = time.Since(serverStart)\n\t\t\t},\n\t\t}\n\t\treq = req.WithContext(httptrace.WithClientTrace(req.Context(), trace))\n\t}\n\n\tresponse, err := rt.delegatedRoundTripper.RoundTrip(req)\n\treqInfo.Duration = time.Since(startTime)\n\n\treqInfo.complete(response, err)\n\n\tif rt.levels[DebugURLTiming] {\n\t\tklog.Infof(\"%s %s %s in %d milliseconds\", reqInfo.RequestVerb, reqInfo.RequestURL, reqInfo.ResponseStatus, reqInfo.Duration.Nanoseconds()/int64(time.Millisecond))\n\t}\n\tif rt.levels[DebugDetailedTiming] {\n\t\tstats := \"\"\n\t\tif !reqInfo.ConnectionReused {\n\t\t\tstats += fmt.Sprintf(`DNSLookup %d ms Dial %d ms TLSHandshake %d ms`,\n\t\t\t\treqInfo.DNSLookup.Nanoseconds()/int64(time.Millisecond),\n\t\t\t\treqInfo.Dialing.Nanoseconds()/int64(time.Millisecond),\n\t\t\t\treqInfo.TLSHandshake.Nanoseconds()/int64(time.Millisecond),\n\t\t\t)\n\t\t} else {\n\t\t\tstats += fmt.Sprintf(`GetConnection %d ms`, reqInfo.GetConnection.Nanoseconds()/int64(time.Millisecond))\n\t\t}\n\t\tif reqInfo.ServerProcessing != 0 {\n\t\t\tstats += fmt.Sprintf(` ServerProcessing %d ms`, reqInfo.ServerProcessing.Nanoseconds()/int64(time.Millisecond))\n\t\t}\n\t\tstats += fmt.Sprintf(` Duration %d ms`, reqInfo.Duration.Nanoseconds()/int64(time.Millisecond))\n\t\tklog.Infof(\"HTTP Statistics: %s\", stats)\n\t}\n\n\tif rt.levels[DebugResponseStatus] {\n\t\tklog.Infof(\"Response Status: %s in %d milliseconds\", reqInfo.ResponseStatus, reqInfo.Duration.Nanoseconds()/int64(time.Millisecond))\n\t}\n\tif rt.levels[DebugResponseHeaders] {\n\t\tklog.Info(\"Response Headers:\")\n\t\tfor key, values := range reqInfo.ResponseHeaders {\n\t\t\tfor _, value := range values {\n\t\t\t\tklog.Infof(\"    %s: %s\", key, value)\n\t\t\t}\n\t\t}\n\t}\n\n\treturn response, err\n}\n\nfunc (rt *debuggingRoundTripper) WrappedRoundTripper() http.RoundTripper {\n\treturn rt.delegatedRoundTripper\n}\n\nfunc legalHeaderByte(b byte) bool {\n\treturn int(b) < len(legalHeaderKeyBytes) && legalHeaderKeyBytes[b]\n}\n\nfunc shouldEscape(b byte) bool {\n\t// url.PathUnescape() returns an error if any '%' is not followed by two\n\t// hexadecimal digits, so we'll intentionally encode it.\n\treturn !legalHeaderByte(b) || b == '%'\n}\n\nfunc headerKeyEscape(key string) string {\n\tbuf := strings.Builder{}\n\tfor i := 0; i < len(key); i++ {\n\t\tb := key[i]\n\t\tif shouldEscape(b) {\n\t\t\t// %-encode bytes that should be escaped:\n\t\t\t// https://tools.ietf.org/html/rfc3986#section-2.1\n\t\t\tfmt.Fprintf(&buf, \"%%%02X\", b)\n\t\t\tcontinue\n\t\t}\n\t\tbuf.WriteByte(b)\n\t}\n\treturn buf.String()\n}\n\n// legalHeaderKeyBytes was copied from net/http/lex.go's isTokenTable.\n// See https://httpwg.github.io/specs/rfc7230.html#rule.token.separators\nvar legalHeaderKeyBytes = [127]bool{\n\t'%':  true,\n\t'!':  true,\n\t'#':  true,\n\t'$':  true,\n\t'&':  true,\n\t'\\'': true,\n\t'*':  true,\n\t'+':  true,\n\t'-':  true,\n\t'.':  true,\n\t'0':  true,\n\t'1':  true,\n\t'2':  true,\n\t'3':  true,\n\t'4':  true,\n\t'5':  true,\n\t'6':  true,\n\t'7':  true,\n\t'8':  true,\n\t'9':  true,\n\t'A':  true,\n\t'B':  true,\n\t'C':  true,\n\t'D':  true,\n\t'E':  true,\n\t'F':  true,\n\t'G':  true,\n\t'H':  true,\n\t'I':  true,\n\t'J':  true,\n\t'K':  true,\n\t'L':  true,\n\t'M':  true,\n\t'N':  true,\n\t'O':  true,\n\t'P':  true,\n\t'Q':  true,\n\t'R':  true,\n\t'S':  true,\n\t'T':  true,\n\t'U':  true,\n\t'W':  true,\n\t'V':  true,\n\t'X':  true,\n\t'Y':  true,\n\t'Z':  true,\n\t'^':  true,\n\t'_':  true,\n\t'`':  true,\n\t'a':  true,\n\t'b':  true,\n\t'c':  true,\n\t'd':  true,\n\t'e':  true,\n\t'f':  true,\n\t'g':  true,\n\t'h':  true,\n\t'i':  true,\n\t'j':  true,\n\t'k':  true,\n\t'l':  true,\n\t'm':  true,\n\t'n':  true,\n\t'o':  true,\n\t'p':  true,\n\t'q':  true,\n\t'r':  true,\n\t's':  true,\n\t't':  true,\n\t'u':  true,\n\t'v':  true,\n\t'w':  true,\n\t'x':  true,\n\t'y':  true,\n\t'z':  true,\n\t'|':  true,\n\t'~':  true,\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/transport/token_source.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage transport\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"os\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"golang.org/x/oauth2\"\n\n\tutilnet \"k8s.io/apimachinery/pkg/util/net\"\n\t\"k8s.io/klog/v2\"\n)\n\n// TokenSourceWrapTransport returns a WrapTransport that injects bearer tokens\n// authentication from an oauth2.TokenSource.\nfunc TokenSourceWrapTransport(ts oauth2.TokenSource) func(http.RoundTripper) http.RoundTripper {\n\treturn func(rt http.RoundTripper) http.RoundTripper {\n\t\treturn &tokenSourceTransport{\n\t\t\tbase: rt,\n\t\t\tort: &oauth2.Transport{\n\t\t\t\tSource: ts,\n\t\t\t\tBase:   rt,\n\t\t\t},\n\t\t}\n\t}\n}\n\ntype ResettableTokenSource interface {\n\toauth2.TokenSource\n\tResetTokenOlderThan(time.Time)\n}\n\n// ResettableTokenSourceWrapTransport returns a WrapTransport that injects bearer tokens\n// authentication from an ResettableTokenSource.\nfunc ResettableTokenSourceWrapTransport(ts ResettableTokenSource) func(http.RoundTripper) http.RoundTripper {\n\treturn func(rt http.RoundTripper) http.RoundTripper {\n\t\treturn &tokenSourceTransport{\n\t\t\tbase: rt,\n\t\t\tort: &oauth2.Transport{\n\t\t\t\tSource: ts,\n\t\t\t\tBase:   rt,\n\t\t\t},\n\t\t\tsrc: ts,\n\t\t}\n\t}\n}\n\n// NewCachedFileTokenSource returns a resettable token source which reads a\n// token from a file at a specified path and periodically reloads it.\nfunc NewCachedFileTokenSource(path string) *cachingTokenSource {\n\treturn &cachingTokenSource{\n\t\tnow:    time.Now,\n\t\tleeway: 10 * time.Second,\n\t\tbase: &fileTokenSource{\n\t\t\tpath: path,\n\t\t\t// This period was picked because it is half of the duration between when the kubelet\n\t\t\t// refreshes a projected service account token and when the original token expires.\n\t\t\t// Default token lifetime is 10 minutes, and the kubelet starts refreshing at 80% of lifetime.\n\t\t\t// This should induce re-reading at a frequency that works with the token volume source.\n\t\t\tperiod: time.Minute,\n\t\t},\n\t}\n}\n\n// NewCachedTokenSource returns resettable token source with caching. It reads\n// a token from a designed TokenSource if not in cache or expired.\nfunc NewCachedTokenSource(ts oauth2.TokenSource) *cachingTokenSource {\n\treturn &cachingTokenSource{\n\t\tnow:  time.Now,\n\t\tbase: ts,\n\t}\n}\n\ntype tokenSourceTransport struct {\n\tbase http.RoundTripper\n\tort  http.RoundTripper\n\tsrc  ResettableTokenSource\n}\n\nvar _ utilnet.RoundTripperWrapper = &tokenSourceTransport{}\n\nfunc (tst *tokenSourceTransport) RoundTrip(req *http.Request) (*http.Response, error) {\n\t// This is to allow --token to override other bearer token providers.\n\tif req.Header.Get(\"Authorization\") != \"\" {\n\t\treturn tst.base.RoundTrip(req)\n\t}\n\t// record time before RoundTrip to make sure newly acquired Unauthorized\n\t// token would not be reset. Another request from user is required to reset\n\t// and proceed.\n\tstart := time.Now()\n\tresp, err := tst.ort.RoundTrip(req)\n\tif err == nil && resp != nil && resp.StatusCode == 401 && tst.src != nil {\n\t\ttst.src.ResetTokenOlderThan(start)\n\t}\n\treturn resp, err\n}\n\nfunc (tst *tokenSourceTransport) CancelRequest(req *http.Request) {\n\tif req.Header.Get(\"Authorization\") != \"\" {\n\t\ttryCancelRequest(tst.base, req)\n\t\treturn\n\t}\n\ttryCancelRequest(tst.ort, req)\n}\n\nfunc (tst *tokenSourceTransport) WrappedRoundTripper() http.RoundTripper { return tst.base }\n\ntype fileTokenSource struct {\n\tpath   string\n\tperiod time.Duration\n}\n\nvar _ = oauth2.TokenSource(&fileTokenSource{})\n\nfunc (ts *fileTokenSource) Token() (*oauth2.Token, error) {\n\ttokb, err := os.ReadFile(ts.path)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to read token file %q: %v\", ts.path, err)\n\t}\n\ttok := strings.TrimSpace(string(tokb))\n\tif len(tok) == 0 {\n\t\treturn nil, fmt.Errorf(\"read empty token from file %q\", ts.path)\n\t}\n\n\treturn &oauth2.Token{\n\t\tAccessToken: tok,\n\t\tExpiry:      time.Now().Add(ts.period),\n\t}, nil\n}\n\ntype cachingTokenSource struct {\n\tbase   oauth2.TokenSource\n\tleeway time.Duration\n\n\tsync.RWMutex\n\ttok *oauth2.Token\n\tt   time.Time\n\n\t// for testing\n\tnow func() time.Time\n}\n\nfunc (ts *cachingTokenSource) Token() (*oauth2.Token, error) {\n\tnow := ts.now()\n\t// fast path\n\tts.RLock()\n\ttok := ts.tok\n\tts.RUnlock()\n\n\tif tok != nil && tok.Expiry.Add(-1*ts.leeway).After(now) {\n\t\treturn tok, nil\n\t}\n\n\t// slow path\n\tts.Lock()\n\tdefer ts.Unlock()\n\tif tok := ts.tok; tok != nil && tok.Expiry.Add(-1*ts.leeway).After(now) {\n\t\treturn tok, nil\n\t}\n\n\ttok, err := ts.base.Token()\n\tif err != nil {\n\t\tif ts.tok == nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tklog.Errorf(\"Unable to rotate token: %v\", err)\n\t\treturn ts.tok, nil\n\t}\n\n\tts.t = ts.now()\n\tts.tok = tok\n\treturn tok, nil\n}\n\nfunc (ts *cachingTokenSource) ResetTokenOlderThan(t time.Time) {\n\tts.Lock()\n\tdefer ts.Unlock()\n\tif ts.t.Before(t) {\n\t\tts.tok = nil\n\t\tts.t = time.Time{}\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/transport/transport.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage transport\n\nimport (\n\t\"context\"\n\t\"crypto/tls\"\n\t\"crypto/x509\"\n\t\"encoding/pem\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"os\"\n\t\"sync\"\n\t\"time\"\n\n\tutilnet \"k8s.io/apimachinery/pkg/util/net\"\n\t\"k8s.io/klog/v2\"\n)\n\n// New returns an http.RoundTripper that will provide the authentication\n// or transport level security defined by the provided Config.\nfunc New(config *Config) (http.RoundTripper, error) {\n\t// Set transport level security\n\tif config.Transport != nil && (config.HasCA() || config.HasCertAuth() || config.HasCertCallback() || config.TLS.Insecure) {\n\t\treturn nil, fmt.Errorf(\"using a custom transport with TLS certificate options or the insecure flag is not allowed\")\n\t}\n\n\tif !isValidHolders(config) {\n\t\treturn nil, fmt.Errorf(\"misconfigured holder for dialer or cert callback\")\n\t}\n\n\tvar (\n\t\trt  http.RoundTripper\n\t\terr error\n\t)\n\n\tif config.Transport != nil {\n\t\trt = config.Transport\n\t} else {\n\t\trt, err = tlsCache.get(config)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\treturn HTTPWrappersForConfig(config, rt)\n}\n\nfunc isValidHolders(config *Config) bool {\n\tif config.TLS.GetCertHolder != nil && config.TLS.GetCertHolder.GetCert == nil {\n\t\treturn false\n\t}\n\n\tif config.DialHolder != nil && config.DialHolder.Dial == nil {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n// TLSConfigFor returns a tls.Config that will provide the transport level security defined\n// by the provided Config. Will return nil if no transport level security is requested.\nfunc TLSConfigFor(c *Config) (*tls.Config, error) {\n\tif !(c.HasCA() || c.HasCertAuth() || c.HasCertCallback() || c.TLS.Insecure || len(c.TLS.ServerName) > 0 || len(c.TLS.NextProtos) > 0) {\n\t\treturn nil, nil\n\t}\n\tif c.HasCA() && c.TLS.Insecure {\n\t\treturn nil, fmt.Errorf(\"specifying a root certificates file with the insecure flag is not allowed\")\n\t}\n\tif err := loadTLSFiles(c); err != nil {\n\t\treturn nil, err\n\t}\n\n\ttlsConfig := &tls.Config{\n\t\t// Can't use SSLv3 because of POODLE and BEAST\n\t\t// Can't use TLSv1.0 because of POODLE and BEAST using CBC cipher\n\t\t// Can't use TLSv1.1 because of RC4 cipher usage\n\t\tMinVersion:         tls.VersionTLS12,\n\t\tInsecureSkipVerify: c.TLS.Insecure,\n\t\tServerName:         c.TLS.ServerName,\n\t\tNextProtos:         c.TLS.NextProtos,\n\t}\n\n\tif c.HasCA() {\n\t\t/*\n\t\t\tkubernetes mutual (2-way) x509 between client and apiserver:\n\n\t\t\t\t1. apiserver sending its apiserver certificate along with its publickey to client\n\t\t\t\t>2. client verifies the apiserver certificate sent against its cluster certificate authority data\n\t\t\t\t3. client sending its client certificate along with its public key to the apiserver\n\t\t\t\t4. apiserver verifies the client certificate sent against its cluster certificate authority data\n\n\t\t\t\tdescription:\n\t\t\t\t\there, with this block,\n\t\t\t\t\tcluster certificate authority data gets loaded into TLS before the handshake process\n\t\t\t\t\tfor client to later during the handshake verify the apiserver certificate\n\n\t\t\t\tnormal args related to this stage:\n\t\t\t\t\t--certificate-authority='':\n\t\t\t\t\t\tPath to a cert file for the certificate authority\n\n\t\t\t\t\t(retrievable from \"kubectl options\" command)\n\t\t\t\t\t(suggested by @deads2k)\n\n\t\t\t\tsee also:\n\t\t\t\t\t- for the step 1, see: staging/src/k8s.io/apiserver/pkg/server/options/serving.go\n\t\t\t\t\t- for the step 3, see: a few lines below in this file\n\t\t\t\t\t- for the step 4, see: staging/src/k8s.io/apiserver/pkg/authentication/request/x509/x509.go\n\t\t*/\n\n\t\trootCAs, err := rootCertPool(c.TLS.CAData)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"unable to load root certificates: %w\", err)\n\t\t}\n\t\ttlsConfig.RootCAs = rootCAs\n\t}\n\n\tvar staticCert *tls.Certificate\n\t// Treat cert as static if either key or cert was data, not a file\n\tif c.HasCertAuth() && !c.TLS.ReloadTLSFiles {\n\t\t// If key/cert were provided, verify them before setting up\n\t\t// tlsConfig.GetClientCertificate.\n\t\tcert, err := tls.X509KeyPair(c.TLS.CertData, c.TLS.KeyData)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tstaticCert = &cert\n\t}\n\n\tvar dynamicCertLoader func() (*tls.Certificate, error)\n\tif c.TLS.ReloadTLSFiles {\n\t\tdynamicCertLoader = cachingCertificateLoader(c.TLS.CertFile, c.TLS.KeyFile)\n\t}\n\n\tif c.HasCertAuth() || c.HasCertCallback() {\n\n\t\t/*\n\t\t\t    kubernetes mutual (2-way) x509 between client and apiserver:\n\n\t\t\t\t\t1. apiserver sending its apiserver certificate along with its publickey to client\n\t\t\t\t\t2. client verifies the apiserver certificate sent against its cluster certificate authority data\n\t\t\t\t\t>3. client sending its client certificate along with its public key to the apiserver\n\t\t\t\t\t4. apiserver verifies the client certificate sent against its cluster certificate authority data\n\n\t\t\t\t\tdescription:\n\t\t\t\t\t\there, with this callback function,\n\t\t\t\t\t\tclient certificate and pub key get loaded into TLS during the handshake process\n\t\t\t\t\t\tfor apiserver to later in the step 4 verify the client certificate\n\n\t\t\t\t\tnormal args related to this stage:\n\t\t\t\t\t\t--client-certificate='':\n\t\t\t\t\t\t\tPath to a client certificate file for TLS\n\t\t\t\t\t\t--client-key='':\n\t\t\t\t\t\t\tPath to a client key file for TLS\n\n\t\t\t\t\t\t(retrievable from \"kubectl options\" command)\n\t\t\t\t\t\t(suggested by @deads2k)\n\n\t\t\t\t\tsee also:\n\t\t\t\t\t\t- for the step 1, see: staging/src/k8s.io/apiserver/pkg/server/options/serving.go\n\t\t\t\t\t\t- for the step 2, see: a few lines above in this file\n\t\t\t\t\t\t- for the step 4, see: staging/src/k8s.io/apiserver/pkg/authentication/request/x509/x509.go\n\t\t*/\n\n\t\ttlsConfig.GetClientCertificate = func(*tls.CertificateRequestInfo) (*tls.Certificate, error) {\n\t\t\t// Note: static key/cert data always take precedence over cert\n\t\t\t// callback.\n\t\t\tif staticCert != nil {\n\t\t\t\treturn staticCert, nil\n\t\t\t}\n\t\t\t// key/cert files lead to ReloadTLSFiles being set - takes precedence over cert callback\n\t\t\tif dynamicCertLoader != nil {\n\t\t\t\treturn dynamicCertLoader()\n\t\t\t}\n\t\t\tif c.HasCertCallback() {\n\t\t\t\tcert, err := c.TLS.GetCertHolder.GetCert()\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\t// GetCert may return empty value, meaning no cert.\n\t\t\t\tif cert != nil {\n\t\t\t\t\treturn cert, nil\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Both c.TLS.CertData/KeyData were unset and GetCert didn't return\n\t\t\t// anything. Return an empty tls.Certificate, no client cert will\n\t\t\t// be sent to the server.\n\t\t\treturn &tls.Certificate{}, nil\n\t\t}\n\t}\n\n\treturn tlsConfig, nil\n}\n\n// loadTLSFiles copies the data from the CertFile, KeyFile, and CAFile fields into the CertData,\n// KeyData, and CAFile fields, or returns an error. If no error is returned, all three fields are\n// either populated or were empty to start.\nfunc loadTLSFiles(c *Config) error {\n\tvar err error\n\tc.TLS.CAData, err = dataFromSliceOrFile(c.TLS.CAData, c.TLS.CAFile)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Check that we are purely loading from files\n\tif len(c.TLS.CertFile) > 0 && len(c.TLS.CertData) == 0 && len(c.TLS.KeyFile) > 0 && len(c.TLS.KeyData) == 0 {\n\t\tc.TLS.ReloadTLSFiles = true\n\t}\n\n\tc.TLS.CertData, err = dataFromSliceOrFile(c.TLS.CertData, c.TLS.CertFile)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tc.TLS.KeyData, err = dataFromSliceOrFile(c.TLS.KeyData, c.TLS.KeyFile)\n\treturn err\n}\n\n// dataFromSliceOrFile returns data from the slice (if non-empty), or from the file,\n// or an error if an error occurred reading the file\nfunc dataFromSliceOrFile(data []byte, file string) ([]byte, error) {\n\tif len(data) > 0 {\n\t\treturn data, nil\n\t}\n\tif len(file) > 0 {\n\t\tfileData, err := os.ReadFile(file)\n\t\tif err != nil {\n\t\t\treturn []byte{}, err\n\t\t}\n\t\treturn fileData, nil\n\t}\n\treturn nil, nil\n}\n\n// rootCertPool returns nil if caData is empty.  When passed along, this will mean \"use system CAs\".\n// When caData is not empty, it will be the ONLY information used in the CertPool.\nfunc rootCertPool(caData []byte) (*x509.CertPool, error) {\n\t// What we really want is a copy of x509.systemRootsPool, but that isn't exposed.  It's difficult to build (see the go\n\t// code for a look at the platform specific insanity), so we'll use the fact that RootCAs == nil gives us the system values\n\t// It doesn't allow trusting either/or, but hopefully that won't be an issue\n\tif len(caData) == 0 {\n\t\treturn nil, nil\n\t}\n\n\t// if we have caData, use it\n\tcertPool := x509.NewCertPool()\n\tif ok := certPool.AppendCertsFromPEM(caData); !ok {\n\t\treturn nil, createErrorParsingCAData(caData)\n\t}\n\treturn certPool, nil\n}\n\n// createErrorParsingCAData ALWAYS returns an error.  We call it because know we failed to AppendCertsFromPEM\n// but we don't know the specific error because that API is just true/false\nfunc createErrorParsingCAData(pemCerts []byte) error {\n\tfor len(pemCerts) > 0 {\n\t\tvar block *pem.Block\n\t\tblock, pemCerts = pem.Decode(pemCerts)\n\t\tif block == nil {\n\t\t\treturn fmt.Errorf(\"unable to parse bytes as PEM block\")\n\t\t}\n\n\t\tif block.Type != \"CERTIFICATE\" || len(block.Headers) != 0 {\n\t\t\tcontinue\n\t\t}\n\n\t\tif _, err := x509.ParseCertificate(block.Bytes); err != nil {\n\t\t\treturn fmt.Errorf(\"failed to parse certificate: %w\", err)\n\t\t}\n\t}\n\treturn fmt.Errorf(\"no valid certificate authority data seen\")\n}\n\n// WrapperFunc wraps an http.RoundTripper when a new transport\n// is created for a client, allowing per connection behavior\n// to be injected.\ntype WrapperFunc func(rt http.RoundTripper) http.RoundTripper\n\n// Wrappers accepts any number of wrappers and returns a wrapper\n// function that is the equivalent of calling each of them in order. Nil\n// values are ignored, which makes this function convenient for incrementally\n// wrapping a function.\nfunc Wrappers(fns ...WrapperFunc) WrapperFunc {\n\tif len(fns) == 0 {\n\t\treturn nil\n\t}\n\t// optimize the common case of wrapping a possibly nil transport wrapper\n\t// with an additional wrapper\n\tif len(fns) == 2 && fns[0] == nil {\n\t\treturn fns[1]\n\t}\n\treturn func(rt http.RoundTripper) http.RoundTripper {\n\t\tbase := rt\n\t\tfor _, fn := range fns {\n\t\t\tif fn != nil {\n\t\t\t\tbase = fn(base)\n\t\t\t}\n\t\t}\n\t\treturn base\n\t}\n}\n\n// ContextCanceller prevents new requests after the provided context is finished.\n// err is returned when the context is closed, allowing the caller to provide a context\n// appropriate error.\nfunc ContextCanceller(ctx context.Context, err error) WrapperFunc {\n\treturn func(rt http.RoundTripper) http.RoundTripper {\n\t\treturn &contextCanceller{\n\t\t\tctx: ctx,\n\t\t\trt:  rt,\n\t\t\terr: err,\n\t\t}\n\t}\n}\n\ntype contextCanceller struct {\n\tctx context.Context\n\trt  http.RoundTripper\n\terr error\n}\n\nfunc (b *contextCanceller) RoundTrip(req *http.Request) (*http.Response, error) {\n\tselect {\n\tcase <-b.ctx.Done():\n\t\treturn nil, b.err\n\tdefault:\n\t\treturn b.rt.RoundTrip(req)\n\t}\n}\n\nfunc tryCancelRequest(rt http.RoundTripper, req *http.Request) {\n\ttype canceler interface {\n\t\tCancelRequest(*http.Request)\n\t}\n\tswitch rt := rt.(type) {\n\tcase canceler:\n\t\trt.CancelRequest(req)\n\tcase utilnet.RoundTripperWrapper:\n\t\ttryCancelRequest(rt.WrappedRoundTripper(), req)\n\tdefault:\n\t\tklog.Warningf(\"Unable to cancel request for %T\", rt)\n\t}\n}\n\ntype certificateCacheEntry struct {\n\tcert  *tls.Certificate\n\terr   error\n\tbirth time.Time\n}\n\n// isStale returns true when this cache entry is too old to be usable\nfunc (c *certificateCacheEntry) isStale() bool {\n\treturn time.Since(c.birth) > time.Second\n}\n\nfunc newCertificateCacheEntry(certFile, keyFile string) certificateCacheEntry {\n\tcert, err := tls.LoadX509KeyPair(certFile, keyFile)\n\treturn certificateCacheEntry{cert: &cert, err: err, birth: time.Now()}\n}\n\n// cachingCertificateLoader ensures that we don't hammer the filesystem when opening many connections\n// the underlying cert files are read at most once every second\nfunc cachingCertificateLoader(certFile, keyFile string) func() (*tls.Certificate, error) {\n\tcurrent := newCertificateCacheEntry(certFile, keyFile)\n\tvar currentMtx sync.RWMutex\n\n\treturn func() (*tls.Certificate, error) {\n\t\tcurrentMtx.RLock()\n\t\tif current.isStale() {\n\t\t\tcurrentMtx.RUnlock()\n\n\t\t\tcurrentMtx.Lock()\n\t\t\tdefer currentMtx.Unlock()\n\n\t\t\tif current.isStale() {\n\t\t\t\tcurrent = newCertificateCacheEntry(certFile, keyFile)\n\t\t\t}\n\t\t} else {\n\t\t\tdefer currentMtx.RUnlock()\n\t\t}\n\n\t\treturn current.cert, current.err\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/util/apply/apply.go",
    "content": "/*\nCopyright 2024 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage apply\n\nimport (\n\t\"fmt\"\n\n\tcbor \"k8s.io/apimachinery/pkg/runtime/serializer/cbor/direct\"\n\t\"k8s.io/apimachinery/pkg/types\"\n\t\"k8s.io/apimachinery/pkg/util/json\"\n\t\"k8s.io/client-go/features\"\n\t\"k8s.io/client-go/rest\"\n)\n\n// NewRequest builds a new server-side apply request. The provided apply configuration object will\n// be marshalled to the request's body using the default encoding, and the Content-Type header will\n// be set to application/apply-patch with the appropriate structured syntax name suffix (today,\n// either +yaml or +cbor, see\n// https://www.iana.org/assignments/media-type-structured-suffix/media-type-structured-suffix.xhtml).\nfunc NewRequest(client rest.Interface, applyConfiguration interface{}) (*rest.Request, error) {\n\tpt := types.ApplyYAMLPatchType\n\tmarshal := json.Marshal\n\n\tif features.FeatureGates().Enabled(features.ClientsAllowCBOR) && features.FeatureGates().Enabled(features.ClientsPreferCBOR) {\n\t\tpt = types.ApplyCBORPatchType\n\t\tmarshal = cbor.Marshal\n\t}\n\n\tbody, err := marshal(applyConfiguration)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to marshal apply configuration: %w\", err)\n\t}\n\n\treturn client.Patch(pt).Body(body), nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/util/cert/OWNERS",
    "content": "# See the OWNERS docs at https://go.k8s.io/owners\n\napprovers:\n  - sig-auth-certificates-approvers\nreviewers:\n  - sig-auth-certificates-reviewers\nlabels:\n  - sig/auth\n"
  },
  {
    "path": "vendor/k8s.io/client-go/util/cert/cert.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage cert\n\nimport (\n\t\"bytes\"\n\t\"crypto\"\n\tcryptorand \"crypto/rand\"\n\t\"crypto/rsa\"\n\t\"crypto/x509\"\n\t\"crypto/x509/pkix\"\n\t\"encoding/pem\"\n\t\"fmt\"\n\t\"math\"\n\t\"math/big\"\n\t\"net\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"strings\"\n\t\"time\"\n\n\t\"k8s.io/client-go/util/keyutil\"\n\tnetutils \"k8s.io/utils/net\"\n)\n\nconst duration365d = time.Hour * 24 * 365\n\n// Config contains the basic fields required for creating a certificate\ntype Config struct {\n\tCommonName   string\n\tOrganization []string\n\tAltNames     AltNames\n\tUsages       []x509.ExtKeyUsage\n\tNotBefore    time.Time\n}\n\n// AltNames contains the domain names and IP addresses that will be added\n// to the API Server's x509 certificate SubAltNames field. The values will\n// be passed directly to the x509.Certificate object.\ntype AltNames struct {\n\tDNSNames []string\n\tIPs      []net.IP\n}\n\n// NewSelfSignedCACert creates a CA certificate\nfunc NewSelfSignedCACert(cfg Config, key crypto.Signer) (*x509.Certificate, error) {\n\tnow := time.Now()\n\t// returns a uniform random value in [0, max-1), then add 1 to serial to make it a uniform random value in [1, max).\n\tserial, err := cryptorand.Int(cryptorand.Reader, new(big.Int).SetInt64(math.MaxInt64-1))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tserial = new(big.Int).Add(serial, big.NewInt(1))\n\tnotBefore := now.UTC()\n\tif !cfg.NotBefore.IsZero() {\n\t\tnotBefore = cfg.NotBefore.UTC()\n\t}\n\ttmpl := x509.Certificate{\n\t\tSerialNumber: serial,\n\t\tSubject: pkix.Name{\n\t\t\tCommonName:   cfg.CommonName,\n\t\t\tOrganization: cfg.Organization,\n\t\t},\n\t\tDNSNames:              []string{cfg.CommonName},\n\t\tNotBefore:             notBefore,\n\t\tNotAfter:              now.Add(duration365d * 10).UTC(),\n\t\tKeyUsage:              x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature | x509.KeyUsageCertSign,\n\t\tBasicConstraintsValid: true,\n\t\tIsCA:                  true,\n\t}\n\n\tcertDERBytes, err := x509.CreateCertificate(cryptorand.Reader, &tmpl, &tmpl, key.Public(), key)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn x509.ParseCertificate(certDERBytes)\n}\n\n// GenerateSelfSignedCertKey creates a self-signed certificate and key for the given host.\n// Host may be an IP or a DNS name\n// You may also specify additional subject alt names (either ip or dns names) for the certificate.\nfunc GenerateSelfSignedCertKey(host string, alternateIPs []net.IP, alternateDNS []string) ([]byte, []byte, error) {\n\treturn GenerateSelfSignedCertKeyWithFixtures(host, alternateIPs, alternateDNS, \"\")\n}\n\n// GenerateSelfSignedCertKeyWithFixtures creates a self-signed certificate and key for the given host.\n// Host may be an IP or a DNS name. You may also specify additional subject alt names (either ip or dns names)\n// for the certificate.\n//\n// If fixtureDirectory is non-empty, it is a directory path which can contain pre-generated certs. The format is:\n// <host>_<ip>-<ip>_<alternateDNS>-<alternateDNS>.crt\n// <host>_<ip>-<ip>_<alternateDNS>-<alternateDNS>.key\n// Certs/keys not existing in that directory are created.\nfunc GenerateSelfSignedCertKeyWithFixtures(host string, alternateIPs []net.IP, alternateDNS []string, fixtureDirectory string) ([]byte, []byte, error) {\n\tvalidFrom := time.Now().Add(-time.Hour) // valid an hour earlier to avoid flakes due to clock skew\n\tmaxAge := time.Hour * 24 * 365          // one year self-signed certs\n\n\tbaseName := fmt.Sprintf(\"%s_%s_%s\", host, strings.Join(ipsToStrings(alternateIPs), \"-\"), strings.Join(alternateDNS, \"-\"))\n\tcertFixturePath := filepath.Join(fixtureDirectory, baseName+\".crt\")\n\tkeyFixturePath := filepath.Join(fixtureDirectory, baseName+\".key\")\n\tif len(fixtureDirectory) > 0 {\n\t\tcert, err := os.ReadFile(certFixturePath)\n\t\tif err == nil {\n\t\t\tkey, err := os.ReadFile(keyFixturePath)\n\t\t\tif err == nil {\n\t\t\t\treturn cert, key, nil\n\t\t\t}\n\t\t\treturn nil, nil, fmt.Errorf(\"cert %s can be read, but key %s cannot: %v\", certFixturePath, keyFixturePath, err)\n\t\t}\n\t\tmaxAge = 100 * time.Hour * 24 * 365 // 100 years fixtures\n\t}\n\n\tcaKey, err := rsa.GenerateKey(cryptorand.Reader, 2048)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\t// returns a uniform random value in [0, max-1), then add 1 to serial to make it a uniform random value in [1, max).\n\tserial, err := cryptorand.Int(cryptorand.Reader, new(big.Int).SetInt64(math.MaxInt64-1))\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\tserial = new(big.Int).Add(serial, big.NewInt(1))\n\tcaTemplate := x509.Certificate{\n\t\tSerialNumber: serial,\n\t\tSubject: pkix.Name{\n\t\t\tCommonName: fmt.Sprintf(\"%s-ca@%d\", host, time.Now().Unix()),\n\t\t},\n\t\tNotBefore: validFrom,\n\t\tNotAfter:  validFrom.Add(maxAge),\n\n\t\tKeyUsage:              x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature | x509.KeyUsageCertSign,\n\t\tBasicConstraintsValid: true,\n\t\tIsCA:                  true,\n\t}\n\n\tcaDERBytes, err := x509.CreateCertificate(cryptorand.Reader, &caTemplate, &caTemplate, &caKey.PublicKey, caKey)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\tcaCertificate, err := x509.ParseCertificate(caDERBytes)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\tpriv, err := rsa.GenerateKey(cryptorand.Reader, 2048)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\t// returns a uniform random value in [0, max-1), then add 1 to serial to make it a uniform random value in [1, max).\n\tserial, err = cryptorand.Int(cryptorand.Reader, new(big.Int).SetInt64(math.MaxInt64-1))\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\tserial = new(big.Int).Add(serial, big.NewInt(1))\n\ttemplate := x509.Certificate{\n\t\tSerialNumber: serial,\n\t\tSubject: pkix.Name{\n\t\t\tCommonName: fmt.Sprintf(\"%s@%d\", host, time.Now().Unix()),\n\t\t},\n\t\tNotBefore: validFrom,\n\t\tNotAfter:  validFrom.Add(maxAge),\n\n\t\tKeyUsage:              x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature,\n\t\tExtKeyUsage:           []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth},\n\t\tBasicConstraintsValid: true,\n\t}\n\n\tif ip := netutils.ParseIPSloppy(host); ip != nil {\n\t\ttemplate.IPAddresses = append(template.IPAddresses, ip)\n\t} else {\n\t\ttemplate.DNSNames = append(template.DNSNames, host)\n\t}\n\n\ttemplate.IPAddresses = append(template.IPAddresses, alternateIPs...)\n\ttemplate.DNSNames = append(template.DNSNames, alternateDNS...)\n\n\tderBytes, err := x509.CreateCertificate(cryptorand.Reader, &template, caCertificate, &priv.PublicKey, caKey)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\t// Generate cert, followed by ca\n\tcertBuffer := bytes.Buffer{}\n\tif err := pem.Encode(&certBuffer, &pem.Block{Type: CertificateBlockType, Bytes: derBytes}); err != nil {\n\t\treturn nil, nil, err\n\t}\n\tif err := pem.Encode(&certBuffer, &pem.Block{Type: CertificateBlockType, Bytes: caDERBytes}); err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\t// Generate key\n\tkeyBuffer := bytes.Buffer{}\n\tif err := pem.Encode(&keyBuffer, &pem.Block{Type: keyutil.RSAPrivateKeyBlockType, Bytes: x509.MarshalPKCS1PrivateKey(priv)}); err != nil {\n\t\treturn nil, nil, err\n\t}\n\n\tif len(fixtureDirectory) > 0 {\n\t\tif err := os.WriteFile(certFixturePath, certBuffer.Bytes(), 0644); err != nil {\n\t\t\treturn nil, nil, fmt.Errorf(\"failed to write cert fixture to %s: %v\", certFixturePath, err)\n\t\t}\n\t\tif err := os.WriteFile(keyFixturePath, keyBuffer.Bytes(), 0600); err != nil {\n\t\t\treturn nil, nil, fmt.Errorf(\"failed to write key fixture to %s: %v\", certFixturePath, err)\n\t\t}\n\t}\n\n\treturn certBuffer.Bytes(), keyBuffer.Bytes(), nil\n}\n\nfunc ipsToStrings(ips []net.IP) []string {\n\tss := make([]string, 0, len(ips))\n\tfor _, ip := range ips {\n\t\tss = append(ss, ip.String())\n\t}\n\treturn ss\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/util/cert/csr.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage cert\n\nimport (\n\tcryptorand \"crypto/rand\"\n\t\"crypto/rsa\"\n\t\"crypto/x509\"\n\t\"crypto/x509/pkix\"\n\t\"encoding/pem\"\n\t\"net\"\n)\n\n// MakeCSR generates a PEM-encoded CSR using the supplied private key, subject, and SANs.\n// All key types that are implemented via crypto.Signer are supported (This includes *rsa.PrivateKey and *ecdsa.PrivateKey.)\nfunc MakeCSR(privateKey interface{}, subject *pkix.Name, dnsSANs []string, ipSANs []net.IP) (csr []byte, err error) {\n\ttemplate := &x509.CertificateRequest{\n\t\tSubject:     *subject,\n\t\tDNSNames:    dnsSANs,\n\t\tIPAddresses: ipSANs,\n\t}\n\n\treturn MakeCSRFromTemplate(privateKey, template)\n}\n\n// MakeCSRFromTemplate generates a PEM-encoded CSR using the supplied private\n// key and certificate request as a template. All key types that are\n// implemented via crypto.Signer are supported (This includes *rsa.PrivateKey\n// and *ecdsa.PrivateKey.)\nfunc MakeCSRFromTemplate(privateKey interface{}, template *x509.CertificateRequest) ([]byte, error) {\n\tt := *template\n\tt.SignatureAlgorithm = sigType(privateKey)\n\n\tcsrDER, err := x509.CreateCertificateRequest(cryptorand.Reader, &t, privateKey)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tcsrPemBlock := &pem.Block{\n\t\tType:  CertificateRequestBlockType,\n\t\tBytes: csrDER,\n\t}\n\n\treturn pem.EncodeToMemory(csrPemBlock), nil\n}\n\nfunc sigType(privateKey interface{}) x509.SignatureAlgorithm {\n\t// Customize the signature for RSA keys, depending on the key size\n\tif privateKey, ok := privateKey.(*rsa.PrivateKey); ok {\n\t\tkeySize := privateKey.N.BitLen()\n\t\tswitch {\n\t\tcase keySize >= 4096:\n\t\t\treturn x509.SHA512WithRSA\n\t\tcase keySize >= 3072:\n\t\t\treturn x509.SHA384WithRSA\n\t\tdefault:\n\t\t\treturn x509.SHA256WithRSA\n\t\t}\n\t}\n\treturn x509.UnknownSignatureAlgorithm\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/util/cert/io.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage cert\n\nimport (\n\t\"crypto/x509\"\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n)\n\n// CanReadCertAndKey returns true if the certificate and key files already exists,\n// otherwise returns false. If lost one of cert and key, returns error.\nfunc CanReadCertAndKey(certPath, keyPath string) (bool, error) {\n\tcertReadable := canReadFile(certPath)\n\tkeyReadable := canReadFile(keyPath)\n\n\tif certReadable == false && keyReadable == false {\n\t\treturn false, nil\n\t}\n\n\tif certReadable == false {\n\t\treturn false, fmt.Errorf(\"error reading %s, certificate and key must be supplied as a pair\", certPath)\n\t}\n\n\tif keyReadable == false {\n\t\treturn false, fmt.Errorf(\"error reading %s, certificate and key must be supplied as a pair\", keyPath)\n\t}\n\n\treturn true, nil\n}\n\n// If the file represented by path exists and\n// readable, returns true otherwise returns false.\nfunc canReadFile(path string) bool {\n\tf, err := os.Open(path)\n\tif err != nil {\n\t\treturn false\n\t}\n\n\tdefer f.Close()\n\n\treturn true\n}\n\n// WriteCert writes the pem-encoded certificate data to certPath.\n// The certificate file will be created with file mode 0644.\n// If the certificate file already exists, it will be overwritten.\n// The parent directory of the certPath will be created as needed with file mode 0755.\nfunc WriteCert(certPath string, data []byte) error {\n\tif err := os.MkdirAll(filepath.Dir(certPath), os.FileMode(0755)); err != nil {\n\t\treturn err\n\t}\n\treturn os.WriteFile(certPath, data, os.FileMode(0644))\n}\n\n// NewPool returns an x509.CertPool containing the certificates in the given PEM-encoded file.\n// Returns an error if the file could not be read, a certificate could not be parsed, or if the file does not contain any certificates\nfunc NewPool(filename string) (*x509.CertPool, error) {\n\tpemBlock, err := os.ReadFile(filename)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tpool, err := NewPoolFromBytes(pemBlock)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error creating pool from %s: %s\", filename, err)\n\t}\n\treturn pool, nil\n}\n\n// NewPoolFromBytes returns an x509.CertPool containing the certificates in the given PEM-encoded bytes.\n// Returns an error if the file could not be read, a certificate could not be parsed, or if the file does not contain any certificates\nfunc NewPoolFromBytes(pemBlock []byte) (*x509.CertPool, error) {\n\tcerts, err := ParseCertsPEM(pemBlock)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tpool := x509.NewCertPool()\n\tfor _, cert := range certs {\n\t\tpool.AddCert(cert)\n\t}\n\treturn pool, nil\n}\n\n// CertsFromFile returns the x509.Certificates contained in the given PEM-encoded file.\n// Returns an error if the file could not be read, a certificate could not be parsed, or if the file does not contain any certificates\nfunc CertsFromFile(file string) ([]*x509.Certificate, error) {\n\tpemBlock, err := os.ReadFile(file)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcerts, err := ParseCertsPEM(pemBlock)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error reading %s: %s\", file, err)\n\t}\n\treturn certs, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/util/cert/pem.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage cert\n\nimport (\n\t\"bytes\"\n\t\"crypto/x509\"\n\t\"encoding/pem\"\n\t\"errors\"\n)\n\nconst (\n\t// CertificateBlockType is a possible value for pem.Block.Type.\n\tCertificateBlockType = \"CERTIFICATE\"\n\t// CertificateRequestBlockType is a possible value for pem.Block.Type.\n\tCertificateRequestBlockType = \"CERTIFICATE REQUEST\"\n)\n\n// ParseCertsPEM returns the x509.Certificates contained in the given PEM-encoded byte array\n// Returns an error if a certificate could not be parsed, or if the data does not contain any certificates\nfunc ParseCertsPEM(pemCerts []byte) ([]*x509.Certificate, error) {\n\tok := false\n\tcerts := []*x509.Certificate{}\n\tfor len(pemCerts) > 0 {\n\t\tvar block *pem.Block\n\t\tblock, pemCerts = pem.Decode(pemCerts)\n\t\tif block == nil {\n\t\t\tbreak\n\t\t}\n\t\t// Only use PEM \"CERTIFICATE\" blocks without extra headers\n\t\tif block.Type != CertificateBlockType || len(block.Headers) != 0 {\n\t\t\tcontinue\n\t\t}\n\n\t\tcert, err := x509.ParseCertificate(block.Bytes)\n\t\tif err != nil {\n\t\t\treturn certs, err\n\t\t}\n\n\t\tcerts = append(certs, cert)\n\t\tok = true\n\t}\n\n\tif !ok {\n\t\treturn certs, errors.New(\"data does not contain any valid RSA or ECDSA certificates\")\n\t}\n\treturn certs, nil\n}\n\n// EncodeCertificates returns the PEM-encoded byte array that represents by the specified certs.\nfunc EncodeCertificates(certs ...*x509.Certificate) ([]byte, error) {\n\tb := bytes.Buffer{}\n\tfor _, cert := range certs {\n\t\tif err := pem.Encode(&b, &pem.Block{Type: CertificateBlockType, Bytes: cert.Raw}); err != nil {\n\t\t\treturn []byte{}, err\n\t\t}\n\t}\n\treturn b.Bytes(), nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/util/cert/server_inspection.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage cert\n\nimport (\n\t\"crypto/tls\"\n\t\"crypto/x509\"\n\t\"fmt\"\n\t\"net/url\"\n\t\"strings\"\n)\n\n// GetClientCANames gets the CA names for client certs that a server accepts.  This is useful when inspecting the\n// state of particular servers.  apiHost is \"host:port\"\nfunc GetClientCANames(apiHost string) ([]string, error) {\n\t// when we run this the second time, we know which one we are expecting\n\tacceptableCAs := []string{}\n\ttlsConfig := &tls.Config{\n\t\tInsecureSkipVerify: true, // this is insecure to always get to the GetClientCertificate\n\t\tGetClientCertificate: func(hello *tls.CertificateRequestInfo) (*tls.Certificate, error) {\n\t\t\tacceptableCAs = []string{}\n\t\t\tfor _, curr := range hello.AcceptableCAs {\n\t\t\t\tacceptableCAs = append(acceptableCAs, string(curr))\n\t\t\t}\n\t\t\treturn &tls.Certificate{}, nil\n\t\t},\n\t}\n\n\tconn, err := tls.Dial(\"tcp\", apiHost, tlsConfig)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif err := conn.Close(); err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn acceptableCAs, nil\n}\n\n// GetClientCANamesForURL is GetClientCANames against a URL string like we use in kubeconfigs\nfunc GetClientCANamesForURL(kubeConfigURL string) ([]string, error) {\n\tapiserverURL, err := url.Parse(kubeConfigURL)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn GetClientCANames(apiserverURL.Host)\n}\n\n// GetServingCertificates returns the x509 certs used by a server as certificates and pem encoded bytes.\n// The serverName is optional for specifying a different name to get SNI certificates.  apiHost is \"host:port\"\nfunc GetServingCertificates(apiHost, serverName string) ([]*x509.Certificate, [][]byte, error) {\n\ttlsConfig := &tls.Config{\n\t\tInsecureSkipVerify: true, // this is insecure so that we always get connected\n\t}\n\t// if a name is specified for SNI, set it.\n\tif len(serverName) > 0 {\n\t\ttlsConfig.ServerName = serverName\n\t}\n\n\tconn, err := tls.Dial(\"tcp\", apiHost, tlsConfig)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\tif err = conn.Close(); err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"failed to close connection : %v\", err)\n\t}\n\n\tpeerCerts := conn.ConnectionState().PeerCertificates\n\tpeerCertBytes := [][]byte{}\n\tfor _, a := range peerCerts {\n\t\tactualCert, err := EncodeCertificates(a)\n\t\tif err != nil {\n\t\t\treturn nil, nil, err\n\t\t}\n\t\tpeerCertBytes = append(peerCertBytes, []byte(strings.TrimSpace(string(actualCert))))\n\t}\n\n\treturn peerCerts, peerCertBytes, err\n}\n\n// GetServingCertificatesForURL is GetServingCertificates against a URL string like we use in kubeconfigs\nfunc GetServingCertificatesForURL(kubeConfigURL, serverName string) ([]*x509.Certificate, [][]byte, error) {\n\tapiserverURL, err := url.Parse(kubeConfigURL)\n\tif err != nil {\n\t\treturn nil, nil, err\n\t}\n\treturn GetServingCertificates(apiserverURL.Host, serverName)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/util/connrotation/connrotation.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package connrotation implements a connection dialer that tracks and can close\n// all created connections.\n//\n// This is used for credential rotation of long-lived connections, when there's\n// no way to re-authenticate on a live connection.\npackage connrotation\n\nimport (\n\t\"context\"\n\t\"net\"\n\t\"sync\"\n)\n\n// DialFunc is a shorthand for signature of net.DialContext.\ntype DialFunc func(ctx context.Context, network, address string) (net.Conn, error)\n\n// Dialer opens connections through Dial and tracks them.\ntype Dialer struct {\n\tdial DialFunc\n\t*ConnectionTracker\n}\n\n// NewDialer creates a new Dialer instance.\n// Equivalent to NewDialerWithTracker(dial, nil).\nfunc NewDialer(dial DialFunc) *Dialer {\n\treturn NewDialerWithTracker(dial, nil)\n}\n\n// NewDialerWithTracker creates a new Dialer instance.\n//\n// If dial is not nil, it will be used to create new underlying connections.\n// Otherwise net.DialContext is used.\n// If tracker is not nil, it will be used to track new underlying connections.\n// Otherwise NewConnectionTracker() is used.\nfunc NewDialerWithTracker(dial DialFunc, tracker *ConnectionTracker) *Dialer {\n\tif tracker == nil {\n\t\ttracker = NewConnectionTracker()\n\t}\n\treturn &Dialer{\n\t\tdial:              dial,\n\t\tConnectionTracker: tracker,\n\t}\n}\n\n// ConnectionTracker keeps track of opened connections\ntype ConnectionTracker struct {\n\tmu    sync.Mutex\n\tconns map[*closableConn]struct{}\n}\n\n// NewConnectionTracker returns a connection tracker for use with NewDialerWithTracker\nfunc NewConnectionTracker() *ConnectionTracker {\n\treturn &ConnectionTracker{\n\t\tconns: make(map[*closableConn]struct{}),\n\t}\n}\n\n// CloseAll forcibly closes all tracked connections.\n//\n// Note: new connections may get created before CloseAll returns.\nfunc (c *ConnectionTracker) CloseAll() {\n\tc.mu.Lock()\n\tconns := c.conns\n\tc.conns = make(map[*closableConn]struct{})\n\tc.mu.Unlock()\n\n\tfor conn := range conns {\n\t\tconn.Close()\n\t}\n}\n\n// Track adds the connection to the list of tracked connections,\n// and returns a wrapped copy of the connection that stops tracking the connection\n// when it is closed.\nfunc (c *ConnectionTracker) Track(conn net.Conn) net.Conn {\n\tclosable := &closableConn{Conn: conn}\n\n\t// When the connection is closed, remove it from the map. This will\n\t// be no-op if the connection isn't in the map, e.g. if CloseAll()\n\t// is called.\n\tclosable.onClose = func() {\n\t\tc.mu.Lock()\n\t\tdelete(c.conns, closable)\n\t\tc.mu.Unlock()\n\t}\n\n\t// Start tracking the connection\n\tc.mu.Lock()\n\tc.conns[closable] = struct{}{}\n\tc.mu.Unlock()\n\n\treturn closable\n}\n\n// Dial creates a new tracked connection.\nfunc (d *Dialer) Dial(network, address string) (net.Conn, error) {\n\treturn d.DialContext(context.Background(), network, address)\n}\n\n// DialContext creates a new tracked connection.\nfunc (d *Dialer) DialContext(ctx context.Context, network, address string) (net.Conn, error) {\n\tconn, err := d.dial(ctx, network, address)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn d.ConnectionTracker.Track(conn), nil\n}\n\ntype closableConn struct {\n\tonClose func()\n\tnet.Conn\n}\n\nfunc (c *closableConn) Close() error {\n\tgo c.onClose()\n\treturn c.Conn.Close()\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/util/consistencydetector/data_consistency_detector.go",
    "content": "/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage consistencydetector\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"sort\"\n\t\"time\"\n\n\t\"github.com/google/go-cmp/cmp\"\n\n\t\"k8s.io/apimachinery/pkg/api/meta\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\t\"k8s.io/apimachinery/pkg/util/wait\"\n\t\"k8s.io/klog/v2\"\n)\n\ntype RetrieveItemsFunc[U any] func() []U\n\ntype ListFunc[T runtime.Object] func(ctx context.Context, options metav1.ListOptions) (T, error)\n\n// CheckDataConsistency exists solely for testing purposes.\n// we cannot use checkWatchListDataConsistencyIfRequested because\n// it is guarded by an environmental variable.\n// we cannot manipulate the environmental variable because\n// it will affect other tests in this package.\nfunc CheckDataConsistency[T runtime.Object, U any](ctx context.Context, identity string, lastSyncedResourceVersion string, listFn ListFunc[T], listOptions metav1.ListOptions, retrieveItemsFn RetrieveItemsFunc[U]) {\n\tif !canFormAdditionalListCall(lastSyncedResourceVersion, listOptions) {\n\t\tklog.V(4).Infof(\"data consistency check for %s is enabled but the parameters (RV, ListOptions) doesn't allow for creating a valid LIST request. Skipping the data consistency check.\", identity)\n\t\treturn\n\t}\n\tklog.Warningf(\"data consistency check for %s is enabled, this will result in an additional call to the API server.\", identity)\n\n\tretrievedItems := toMetaObjectSliceOrDie(retrieveItemsFn())\n\tlistOptions = prepareListCallOptions(lastSyncedResourceVersion, listOptions, len(retrievedItems))\n\tvar list runtime.Object\n\terr := wait.PollUntilContextCancel(ctx, time.Second, true, func(_ context.Context) (done bool, err error) {\n\t\tlist, err = listFn(ctx, listOptions)\n\t\tif err != nil {\n\t\t\t// the consistency check will only be enabled in the CI\n\t\t\t// and LIST calls in general will be retired by the client-go library\n\t\t\t// if we fail simply log and retry\n\t\t\tklog.Errorf(\"failed to list data from the server, retrying until stopCh is closed, err: %v\", err)\n\t\t\treturn false, nil\n\t\t}\n\t\treturn true, nil\n\t})\n\tif err != nil {\n\t\tklog.Errorf(\"failed to list data from the server, the data consistency check for %s won't be performed, stopCh was closed, err: %v\", identity, err)\n\t\treturn\n\t}\n\n\trawListItems, err := meta.ExtractListWithAlloc(list)\n\tif err != nil {\n\t\tpanic(err) // this should never happen\n\t}\n\tlistItems := toMetaObjectSliceOrDie(rawListItems)\n\n\tsort.Sort(byUID(listItems))\n\tsort.Sort(byUID(retrievedItems))\n\n\tif !cmp.Equal(listItems, retrievedItems) {\n\t\tklog.Infof(\"previously received data for %s is different than received by the standard list api call against etcd, diff: %v\", identity, cmp.Diff(listItems, retrievedItems))\n\t\tmsg := fmt.Sprintf(\"data inconsistency detected for %s, panicking!\", identity)\n\t\tpanic(msg)\n\t}\n}\n\n// canFormAdditionalListCall ensures that we can form a valid LIST requests\n// for checking data consistency.\nfunc canFormAdditionalListCall(lastSyncedResourceVersion string, listOptions metav1.ListOptions) bool {\n\t// since we are setting ResourceVersionMatch to metav1.ResourceVersionMatchExact\n\t// we need to make sure that the continuation hasn't been set\n\t// https://github.com/kubernetes/kubernetes/blob/be4afb9ef90b19ccb6f7e595cbdb247e088b2347/staging/src/k8s.io/apimachinery/pkg/apis/meta/internalversion/validation/validation.go#L38\n\tif len(listOptions.Continue) > 0 {\n\t\treturn false\n\t}\n\n\t// since we are setting ResourceVersionMatch to metav1.ResourceVersionMatchExact\n\t// we need to make sure that the RV is valid because the validation code forbids RV == \"0\"\n\t// https://github.com/kubernetes/kubernetes/blob/be4afb9ef90b19ccb6f7e595cbdb247e088b2347/staging/src/k8s.io/apimachinery/pkg/apis/meta/internalversion/validation/validation.go#L44\n\tif lastSyncedResourceVersion == \"0\" {\n\t\treturn false\n\t}\n\n\treturn true\n}\n\n// prepareListCallOptions changes the input list options so that\n// the list call goes directly to etcd\nfunc prepareListCallOptions(lastSyncedResourceVersion string, listOptions metav1.ListOptions, retrievedItemsCount int) metav1.ListOptions {\n\t// this is our legacy case:\n\t//\n\t// the watch cache skips the Limit if the ResourceVersion was set to \"0\"\n\t// thus, to compare with data retrieved directly from etcd\n\t// we need to skip the limit to for the list call as well.\n\t//\n\t// note that when the number of retrieved items is less than the request limit,\n\t// it means either the watch cache is disabled, or there is not enough data.\n\t// in both cases, we can use the limit because we will be able to compare\n\t// the data with the items retrieved from etcd.\n\tif listOptions.ResourceVersion == \"0\" && listOptions.Limit > 0 && int64(retrievedItemsCount) > listOptions.Limit {\n\t\tlistOptions.Limit = 0\n\t}\n\n\t// set the RV and RVM so that we get the snapshot of data\n\t// directly from etcd.\n\tlistOptions.ResourceVersion = lastSyncedResourceVersion\n\tlistOptions.ResourceVersionMatch = metav1.ResourceVersionMatchExact\n\n\treturn listOptions\n}\n\ntype byUID []metav1.Object\n\nfunc (a byUID) Len() int           { return len(a) }\nfunc (a byUID) Less(i, j int) bool { return a[i].GetUID() < a[j].GetUID() }\nfunc (a byUID) Swap(i, j int)      { a[i], a[j] = a[j], a[i] }\n\nfunc toMetaObjectSliceOrDie[T any](s []T) []metav1.Object {\n\tresult := make([]metav1.Object, len(s))\n\tfor i, v := range s {\n\t\tm, err := meta.Accessor(v)\n\t\tif err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t\tresult[i] = m\n\t}\n\treturn result\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/util/consistencydetector/list_data_consistency_detector.go",
    "content": "/*\nCopyright 2024 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage consistencydetector\n\nimport (\n\t\"context\"\n\t\"os\"\n\t\"strconv\"\n\n\t\"k8s.io/apimachinery/pkg/api/meta\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n)\n\nvar dataConsistencyDetectionForListFromCacheEnabled = false\n\nfunc init() {\n\tdataConsistencyDetectionForListFromCacheEnabled, _ = strconv.ParseBool(os.Getenv(\"KUBE_LIST_FROM_CACHE_INCONSISTENCY_DETECTOR\"))\n}\n\n// IsDataConsistencyDetectionForListEnabled returns true when\n// the KUBE_LIST_FROM_CACHE_INCONSISTENCY_DETECTOR environment variable was set during a binary startup.\nfunc IsDataConsistencyDetectionForListEnabled() bool {\n\treturn dataConsistencyDetectionForListFromCacheEnabled\n}\n\n// CheckListFromCacheDataConsistencyIfRequested performs a data consistency check only when\n// the KUBE_LIST_FROM_CACHE_INCONSISTENCY_DETECTOR environment variable was set during a binary startup\n// for requests that have a high chance of being served from the watch-cache.\n//\n// The consistency check is meant to be enforced only in the CI, not in production.\n// The check ensures that data retrieved by a list api call from the watch-cache\n// is exactly the same as data received by the list api call from etcd.\n//\n// Note that this function will panic when data inconsistency is detected.\n// This is intentional because we want to catch it in the CI.\n//\n// Note that this function doesn't examine the ListOptions to determine\n// if the original request has hit the cache because it would be challenging\n// to maintain consistency with the server-side implementation.\n// For simplicity, we assume that the first request retrieved data from\n// the cache (even though this might not be true for some requests)\n// and issue the second call to get data from etcd for comparison.\nfunc CheckListFromCacheDataConsistencyIfRequested[T runtime.Object](ctx context.Context, identity string, listItemsFn ListFunc[T], optionsUsedToReceiveList metav1.ListOptions, receivedList runtime.Object) {\n\tif !IsDataConsistencyDetectionForListEnabled() {\n\t\treturn\n\t}\n\tcheckListFromCacheDataConsistencyIfRequestedInternal(ctx, identity, listItemsFn, optionsUsedToReceiveList, receivedList)\n}\n\nfunc checkListFromCacheDataConsistencyIfRequestedInternal[T runtime.Object](ctx context.Context, identity string, listItemsFn ListFunc[T], optionsUsedToReceiveList metav1.ListOptions, receivedList runtime.Object) {\n\treceivedListMeta, err := meta.ListAccessor(receivedList)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\trawListItems, err := meta.ExtractListWithAlloc(receivedList)\n\tif err != nil {\n\t\tpanic(err) // this should never happen\n\t}\n\tlastSyncedResourceVersion := receivedListMeta.GetResourceVersion()\n\tCheckDataConsistency(ctx, identity, lastSyncedResourceVersion, listItemsFn, optionsUsedToReceiveList, func() []runtime.Object { return rawListItems })\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/util/consistencydetector/watch_list_data_consistency_detector.go",
    "content": "/*\nCopyright 2024 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage consistencydetector\n\nimport (\n\t\"context\"\n\t\"os\"\n\t\"strconv\"\n\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n)\n\nvar dataConsistencyDetectionForWatchListEnabled = false\n\nfunc init() {\n\tdataConsistencyDetectionForWatchListEnabled, _ = strconv.ParseBool(os.Getenv(\"KUBE_WATCHLIST_INCONSISTENCY_DETECTOR\"))\n}\n\n// IsDataConsistencyDetectionForWatchListEnabled returns true when\n// the KUBE_WATCHLIST_INCONSISTENCY_DETECTOR environment variable was set during a binary startup.\nfunc IsDataConsistencyDetectionForWatchListEnabled() bool {\n\treturn dataConsistencyDetectionForWatchListEnabled\n}\n\n// CheckWatchListFromCacheDataConsistencyIfRequested performs a data consistency check only when\n// the KUBE_WATCHLIST_INCONSISTENCY_DETECTOR environment variable was set during a binary startup.\n//\n// The consistency check is meant to be enforced only in the CI, not in production.\n// The check ensures that data retrieved by the watch-list api call\n// is exactly the same as data received by the standard list api call against etcd.\n//\n// Note that this function will panic when data inconsistency is detected.\n// This is intentional because we want to catch it in the CI.\nfunc CheckWatchListFromCacheDataConsistencyIfRequested[T runtime.Object](ctx context.Context, identity string, listItemsFn ListFunc[T], optionsUsedToReceiveList metav1.ListOptions, receivedList runtime.Object) {\n\tif !IsDataConsistencyDetectionForWatchListEnabled() {\n\t\treturn\n\t}\n\tcheckListFromCacheDataConsistencyIfRequestedInternal(ctx, identity, listItemsFn, optionsUsedToReceiveList, receivedList)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/util/flowcontrol/backoff.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage flowcontrol\n\nimport (\n\t\"math/rand\"\n\t\"sync\"\n\t\"time\"\n\n\t\"k8s.io/utils/clock\"\n\ttestingclock \"k8s.io/utils/clock/testing\"\n)\n\ntype backoffEntry struct {\n\tbackoff    time.Duration\n\tlastUpdate time.Time\n}\n\ntype Backoff struct {\n\tsync.RWMutex\n\tClock clock.Clock\n\t// HasExpiredFunc controls the logic that determines whether the backoff\n\t// counter should be reset, and when to GC old backoff entries. If nil, the\n\t// default hasExpired function will restart the backoff factor to the\n\t// beginning after observing time has passed at least equal to 2*maxDuration\n\tHasExpiredFunc  func(eventTime time.Time, lastUpdate time.Time, maxDuration time.Duration) bool\n\tdefaultDuration time.Duration\n\tmaxDuration     time.Duration\n\tperItemBackoff  map[string]*backoffEntry\n\trand            *rand.Rand\n\n\t// maxJitterFactor adds jitter to the exponentially backed off delay.\n\t// if maxJitterFactor is zero, no jitter is added to the delay in\n\t// order to maintain current behavior.\n\tmaxJitterFactor float64\n}\n\nfunc NewFakeBackOff(initial, max time.Duration, tc *testingclock.FakeClock) *Backoff {\n\treturn newBackoff(tc, initial, max, 0.0)\n}\n\nfunc NewBackOff(initial, max time.Duration) *Backoff {\n\treturn NewBackOffWithJitter(initial, max, 0.0)\n}\n\nfunc NewFakeBackOffWithJitter(initial, max time.Duration, tc *testingclock.FakeClock, maxJitterFactor float64) *Backoff {\n\treturn newBackoff(tc, initial, max, maxJitterFactor)\n}\n\nfunc NewBackOffWithJitter(initial, max time.Duration, maxJitterFactor float64) *Backoff {\n\tclock := clock.RealClock{}\n\treturn newBackoff(clock, initial, max, maxJitterFactor)\n}\n\nfunc newBackoff(clock clock.Clock, initial, max time.Duration, maxJitterFactor float64) *Backoff {\n\tvar random *rand.Rand\n\tif maxJitterFactor > 0 {\n\t\trandom = rand.New(rand.NewSource(clock.Now().UnixNano()))\n\t}\n\treturn &Backoff{\n\t\tperItemBackoff:  map[string]*backoffEntry{},\n\t\tClock:           clock,\n\t\tdefaultDuration: initial,\n\t\tmaxDuration:     max,\n\t\tmaxJitterFactor: maxJitterFactor,\n\t\trand:            random,\n\t}\n}\n\n// Get the current backoff Duration\nfunc (p *Backoff) Get(id string) time.Duration {\n\tp.RLock()\n\tdefer p.RUnlock()\n\tvar delay time.Duration\n\tentry, ok := p.perItemBackoff[id]\n\tif ok {\n\t\tdelay = entry.backoff\n\t}\n\treturn delay\n}\n\n// move backoff to the next mark, capping at maxDuration\nfunc (p *Backoff) Next(id string, eventTime time.Time) {\n\tp.Lock()\n\tdefer p.Unlock()\n\tentry, ok := p.perItemBackoff[id]\n\tif !ok || p.hasExpired(eventTime, entry.lastUpdate, p.maxDuration) {\n\t\tentry = p.initEntryUnsafe(id)\n\t\tentry.backoff += p.jitter(entry.backoff)\n\t} else {\n\t\tdelay := entry.backoff * 2       // exponential\n\t\tdelay += p.jitter(entry.backoff) // add some jitter to the delay\n\t\tentry.backoff = min(delay, p.maxDuration)\n\t}\n\tentry.lastUpdate = p.Clock.Now()\n}\n\n// Reset forces clearing of all backoff data for a given key.\nfunc (p *Backoff) Reset(id string) {\n\tp.Lock()\n\tdefer p.Unlock()\n\tdelete(p.perItemBackoff, id)\n}\n\n// Returns True if the elapsed time since eventTime is smaller than the current backoff window\nfunc (p *Backoff) IsInBackOffSince(id string, eventTime time.Time) bool {\n\tp.RLock()\n\tdefer p.RUnlock()\n\tentry, ok := p.perItemBackoff[id]\n\tif !ok {\n\t\treturn false\n\t}\n\tif p.hasExpired(eventTime, entry.lastUpdate, p.maxDuration) {\n\t\treturn false\n\t}\n\treturn p.Clock.Since(eventTime) < entry.backoff\n}\n\n// Returns True if time since lastupdate is less than the current backoff window.\nfunc (p *Backoff) IsInBackOffSinceUpdate(id string, eventTime time.Time) bool {\n\tp.RLock()\n\tdefer p.RUnlock()\n\tentry, ok := p.perItemBackoff[id]\n\tif !ok {\n\t\treturn false\n\t}\n\tif p.hasExpired(eventTime, entry.lastUpdate, p.maxDuration) {\n\t\treturn false\n\t}\n\treturn eventTime.Sub(entry.lastUpdate) < entry.backoff\n}\n\n// Garbage collect records that have aged past their expiration, which defaults\n// to 2*maxDuration (see hasExpired godoc). Backoff users are expected to invoke\n// this periodically.\nfunc (p *Backoff) GC() {\n\tp.Lock()\n\tdefer p.Unlock()\n\tnow := p.Clock.Now()\n\tfor id, entry := range p.perItemBackoff {\n\t\tif p.hasExpired(now, entry.lastUpdate, p.maxDuration) {\n\t\t\tdelete(p.perItemBackoff, id)\n\t\t}\n\t}\n}\n\nfunc (p *Backoff) DeleteEntry(id string) {\n\tp.Lock()\n\tdefer p.Unlock()\n\tdelete(p.perItemBackoff, id)\n}\n\n// Take a lock on *Backoff, before calling initEntryUnsafe\nfunc (p *Backoff) initEntryUnsafe(id string) *backoffEntry {\n\tentry := &backoffEntry{backoff: p.defaultDuration}\n\tp.perItemBackoff[id] = entry\n\treturn entry\n}\n\nfunc (p *Backoff) jitter(delay time.Duration) time.Duration {\n\tif p.rand == nil {\n\t\treturn 0\n\t}\n\n\treturn time.Duration(p.rand.Float64() * p.maxJitterFactor * float64(delay))\n}\n\n// Unless an alternate function is provided, after 2*maxDuration we restart the backoff factor to the beginning\nfunc (p *Backoff) hasExpired(eventTime time.Time, lastUpdate time.Time, maxDuration time.Duration) bool {\n\tif p.HasExpiredFunc != nil {\n\t\treturn p.HasExpiredFunc(eventTime, lastUpdate, maxDuration)\n\t}\n\treturn eventTime.Sub(lastUpdate) > maxDuration*2 // consider stable if it's ok for twice the maxDuration\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/util/flowcontrol/throttle.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage flowcontrol\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"sync\"\n\t\"time\"\n\n\t\"golang.org/x/time/rate\"\n\t\"k8s.io/utils/clock\"\n)\n\ntype PassiveRateLimiter interface {\n\t// TryAccept returns true if a token is taken immediately. Otherwise,\n\t// it returns false.\n\tTryAccept() bool\n\t// Stop stops the rate limiter, subsequent calls to CanAccept will return false\n\tStop()\n\t// QPS returns QPS of this rate limiter\n\tQPS() float32\n}\n\ntype RateLimiter interface {\n\tPassiveRateLimiter\n\t// Accept returns once a token becomes available.\n\tAccept()\n\t// Wait returns nil if a token is taken before the Context is done.\n\tWait(ctx context.Context) error\n}\n\ntype tokenBucketPassiveRateLimiter struct {\n\tlimiter *rate.Limiter\n\tqps     float32\n\tclock   clock.PassiveClock\n}\n\ntype tokenBucketRateLimiter struct {\n\ttokenBucketPassiveRateLimiter\n\tclock Clock\n}\n\n// NewTokenBucketRateLimiter creates a rate limiter which implements a token bucket approach.\n// The rate limiter allows bursts of up to 'burst' to exceed the QPS, while still maintaining a\n// smoothed qps rate of 'qps'.\n// The bucket is initially filled with 'burst' tokens, and refills at a rate of 'qps'.\n// The maximum number of tokens in the bucket is capped at 'burst'.\nfunc NewTokenBucketRateLimiter(qps float32, burst int) RateLimiter {\n\tlimiter := rate.NewLimiter(rate.Limit(qps), burst)\n\treturn newTokenBucketRateLimiterWithClock(limiter, clock.RealClock{}, qps)\n}\n\n// NewTokenBucketPassiveRateLimiter is similar to NewTokenBucketRateLimiter except that it returns\n// a PassiveRateLimiter which does not have Accept() and Wait() methods.\nfunc NewTokenBucketPassiveRateLimiter(qps float32, burst int) PassiveRateLimiter {\n\tlimiter := rate.NewLimiter(rate.Limit(qps), burst)\n\treturn newTokenBucketRateLimiterWithPassiveClock(limiter, clock.RealClock{}, qps)\n}\n\n// An injectable, mockable clock interface.\ntype Clock interface {\n\tclock.PassiveClock\n\tSleep(time.Duration)\n}\n\nvar _ Clock = (*clock.RealClock)(nil)\n\n// NewTokenBucketRateLimiterWithClock is identical to NewTokenBucketRateLimiter\n// but allows an injectable clock, for testing.\nfunc NewTokenBucketRateLimiterWithClock(qps float32, burst int, c Clock) RateLimiter {\n\tlimiter := rate.NewLimiter(rate.Limit(qps), burst)\n\treturn newTokenBucketRateLimiterWithClock(limiter, c, qps)\n}\n\n// NewTokenBucketPassiveRateLimiterWithClock is similar to NewTokenBucketRateLimiterWithClock\n// except that it returns a PassiveRateLimiter which does not have Accept() and Wait() methods\n// and uses a PassiveClock.\nfunc NewTokenBucketPassiveRateLimiterWithClock(qps float32, burst int, c clock.PassiveClock) PassiveRateLimiter {\n\tlimiter := rate.NewLimiter(rate.Limit(qps), burst)\n\treturn newTokenBucketRateLimiterWithPassiveClock(limiter, c, qps)\n}\n\nfunc newTokenBucketRateLimiterWithClock(limiter *rate.Limiter, c Clock, qps float32) *tokenBucketRateLimiter {\n\treturn &tokenBucketRateLimiter{\n\t\ttokenBucketPassiveRateLimiter: *newTokenBucketRateLimiterWithPassiveClock(limiter, c, qps),\n\t\tclock:                         c,\n\t}\n}\n\nfunc newTokenBucketRateLimiterWithPassiveClock(limiter *rate.Limiter, c clock.PassiveClock, qps float32) *tokenBucketPassiveRateLimiter {\n\treturn &tokenBucketPassiveRateLimiter{\n\t\tlimiter: limiter,\n\t\tqps:     qps,\n\t\tclock:   c,\n\t}\n}\n\nfunc (tbprl *tokenBucketPassiveRateLimiter) Stop() {\n}\n\nfunc (tbprl *tokenBucketPassiveRateLimiter) QPS() float32 {\n\treturn tbprl.qps\n}\n\nfunc (tbprl *tokenBucketPassiveRateLimiter) TryAccept() bool {\n\treturn tbprl.limiter.AllowN(tbprl.clock.Now(), 1)\n}\n\n// Accept will block until a token becomes available\nfunc (tbrl *tokenBucketRateLimiter) Accept() {\n\tnow := tbrl.clock.Now()\n\ttbrl.clock.Sleep(tbrl.limiter.ReserveN(now, 1).DelayFrom(now))\n}\n\nfunc (tbrl *tokenBucketRateLimiter) Wait(ctx context.Context) error {\n\treturn tbrl.limiter.Wait(ctx)\n}\n\ntype fakeAlwaysRateLimiter struct{}\n\nfunc NewFakeAlwaysRateLimiter() RateLimiter {\n\treturn &fakeAlwaysRateLimiter{}\n}\n\nfunc (t *fakeAlwaysRateLimiter) TryAccept() bool {\n\treturn true\n}\n\nfunc (t *fakeAlwaysRateLimiter) Stop() {}\n\nfunc (t *fakeAlwaysRateLimiter) Accept() {}\n\nfunc (t *fakeAlwaysRateLimiter) QPS() float32 {\n\treturn 1\n}\n\nfunc (t *fakeAlwaysRateLimiter) Wait(ctx context.Context) error {\n\treturn nil\n}\n\ntype fakeNeverRateLimiter struct {\n\twg sync.WaitGroup\n}\n\nfunc NewFakeNeverRateLimiter() RateLimiter {\n\trl := fakeNeverRateLimiter{}\n\trl.wg.Add(1)\n\treturn &rl\n}\n\nfunc (t *fakeNeverRateLimiter) TryAccept() bool {\n\treturn false\n}\n\nfunc (t *fakeNeverRateLimiter) Stop() {\n\tt.wg.Done()\n}\n\nfunc (t *fakeNeverRateLimiter) Accept() {\n\tt.wg.Wait()\n}\n\nfunc (t *fakeNeverRateLimiter) QPS() float32 {\n\treturn 1\n}\n\nfunc (t *fakeNeverRateLimiter) Wait(ctx context.Context) error {\n\treturn errors.New(\"can not be accept\")\n}\n\nvar (\n\t_ RateLimiter = (*tokenBucketRateLimiter)(nil)\n\t_ RateLimiter = (*fakeAlwaysRateLimiter)(nil)\n\t_ RateLimiter = (*fakeNeverRateLimiter)(nil)\n)\n\nvar _ PassiveRateLimiter = (*tokenBucketPassiveRateLimiter)(nil)\n"
  },
  {
    "path": "vendor/k8s.io/client-go/util/keyutil/OWNERS",
    "content": "approvers:\n  - sig-auth-certificates-approvers\nreviewers:\n  - sig-auth-certificates-reviewers\nlabels:\n  - sig/auth\n"
  },
  {
    "path": "vendor/k8s.io/client-go/util/keyutil/key.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package keyutil contains utilities for managing public/private key pairs.\npackage keyutil\n\nimport (\n\t\"crypto\"\n\t\"crypto/ecdsa\"\n\t\"crypto/elliptic\"\n\tcryptorand \"crypto/rand\"\n\t\"crypto/rsa\"\n\t\"crypto/x509\"\n\t\"encoding/pem\"\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n)\n\nconst (\n\t// ECPrivateKeyBlockType is a possible value for pem.Block.Type.\n\tECPrivateKeyBlockType = \"EC PRIVATE KEY\"\n\t// RSAPrivateKeyBlockType is a possible value for pem.Block.Type.\n\tRSAPrivateKeyBlockType = \"RSA PRIVATE KEY\"\n\t// PrivateKeyBlockType is a possible value for pem.Block.Type.\n\tPrivateKeyBlockType = \"PRIVATE KEY\"\n\t// PublicKeyBlockType is a possible value for pem.Block.Type.\n\tPublicKeyBlockType = \"PUBLIC KEY\"\n)\n\n// MakeEllipticPrivateKeyPEM creates an ECDSA private key\nfunc MakeEllipticPrivateKeyPEM() ([]byte, error) {\n\tprivateKey, err := ecdsa.GenerateKey(elliptic.P256(), cryptorand.Reader)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tderBytes, err := x509.MarshalECPrivateKey(privateKey)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tprivateKeyPemBlock := &pem.Block{\n\t\tType:  ECPrivateKeyBlockType,\n\t\tBytes: derBytes,\n\t}\n\treturn pem.EncodeToMemory(privateKeyPemBlock), nil\n}\n\n// WriteKey writes the pem-encoded key data to keyPath.\n// The key file will be created with file mode 0600.\n// If the key file already exists, it will be overwritten.\n// The parent directory of the keyPath will be created as needed with file mode 0755.\nfunc WriteKey(keyPath string, data []byte) error {\n\tif err := os.MkdirAll(filepath.Dir(keyPath), os.FileMode(0755)); err != nil {\n\t\treturn err\n\t}\n\treturn os.WriteFile(keyPath, data, os.FileMode(0600))\n}\n\n// LoadOrGenerateKeyFile looks for a key in the file at the given path. If it\n// can't find one, it will generate a new key and store it there.\nfunc LoadOrGenerateKeyFile(keyPath string) (data []byte, wasGenerated bool, err error) {\n\tloadedData, err := os.ReadFile(keyPath)\n\t// Call verifyKeyData to ensure the file wasn't empty/corrupt.\n\tif err == nil && verifyKeyData(loadedData) {\n\t\treturn loadedData, false, err\n\t}\n\tif !os.IsNotExist(err) {\n\t\treturn nil, false, fmt.Errorf(\"error loading key from %s: %v\", keyPath, err)\n\t}\n\n\tgeneratedData, err := MakeEllipticPrivateKeyPEM()\n\tif err != nil {\n\t\treturn nil, false, fmt.Errorf(\"error generating key: %v\", err)\n\t}\n\tif err := WriteKey(keyPath, generatedData); err != nil {\n\t\treturn nil, false, fmt.Errorf(\"error writing key to %s: %v\", keyPath, err)\n\t}\n\treturn generatedData, true, nil\n}\n\n// MarshalPrivateKeyToPEM converts a known private key type of RSA or ECDSA to\n// a PEM encoded block or returns an error.\nfunc MarshalPrivateKeyToPEM(privateKey crypto.PrivateKey) ([]byte, error) {\n\tswitch t := privateKey.(type) {\n\tcase *ecdsa.PrivateKey:\n\t\tderBytes, err := x509.MarshalECPrivateKey(t)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tblock := &pem.Block{\n\t\t\tType:  ECPrivateKeyBlockType,\n\t\t\tBytes: derBytes,\n\t\t}\n\t\treturn pem.EncodeToMemory(block), nil\n\tcase *rsa.PrivateKey:\n\t\tblock := &pem.Block{\n\t\t\tType:  RSAPrivateKeyBlockType,\n\t\t\tBytes: x509.MarshalPKCS1PrivateKey(t),\n\t\t}\n\t\treturn pem.EncodeToMemory(block), nil\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"private key is not a recognized type: %T\", privateKey)\n\t}\n}\n\n// PrivateKeyFromFile returns the private key in rsa.PrivateKey or ecdsa.PrivateKey format from a given PEM-encoded file.\n// Returns an error if the file could not be read or if the private key could not be parsed.\nfunc PrivateKeyFromFile(file string) (interface{}, error) {\n\tdata, err := os.ReadFile(file)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tkey, err := ParsePrivateKeyPEM(data)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error reading private key file %s: %v\", file, err)\n\t}\n\treturn key, nil\n}\n\n// PublicKeysFromFile returns the public keys in rsa.PublicKey or ecdsa.PublicKey format from a given PEM-encoded file.\n// Reads public keys from both public and private key files.\nfunc PublicKeysFromFile(file string) ([]interface{}, error) {\n\tdata, err := os.ReadFile(file)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tkeys, err := ParsePublicKeysPEM(data)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error reading public key file %s: %v\", file, err)\n\t}\n\treturn keys, nil\n}\n\n// verifyKeyData returns true if the provided data appears to be a valid private key.\nfunc verifyKeyData(data []byte) bool {\n\tif len(data) == 0 {\n\t\treturn false\n\t}\n\t_, err := ParsePrivateKeyPEM(data)\n\treturn err == nil\n}\n\n// ParsePrivateKeyPEM returns a private key parsed from a PEM block in the supplied data.\n// Recognizes PEM blocks for \"EC PRIVATE KEY\", \"RSA PRIVATE KEY\", or \"PRIVATE KEY\"\nfunc ParsePrivateKeyPEM(keyData []byte) (interface{}, error) {\n\tvar privateKeyPemBlock *pem.Block\n\tfor {\n\t\tprivateKeyPemBlock, keyData = pem.Decode(keyData)\n\t\tif privateKeyPemBlock == nil {\n\t\t\tbreak\n\t\t}\n\n\t\tswitch privateKeyPemBlock.Type {\n\t\tcase ECPrivateKeyBlockType:\n\t\t\t// ECDSA Private Key in ASN.1 format\n\t\t\tif key, err := x509.ParseECPrivateKey(privateKeyPemBlock.Bytes); err == nil {\n\t\t\t\treturn key, nil\n\t\t\t}\n\t\tcase RSAPrivateKeyBlockType:\n\t\t\t// RSA Private Key in PKCS#1 format\n\t\t\tif key, err := x509.ParsePKCS1PrivateKey(privateKeyPemBlock.Bytes); err == nil {\n\t\t\t\treturn key, nil\n\t\t\t}\n\t\tcase PrivateKeyBlockType:\n\t\t\t// RSA or ECDSA Private Key in unencrypted PKCS#8 format\n\t\t\tif key, err := x509.ParsePKCS8PrivateKey(privateKeyPemBlock.Bytes); err == nil {\n\t\t\t\treturn key, nil\n\t\t\t}\n\t\t}\n\n\t\t// tolerate non-key PEM blocks for compatibility with things like \"EC PARAMETERS\" blocks\n\t\t// originally, only the first PEM block was parsed and expected to be a key block\n\t}\n\n\t// we read all the PEM blocks and didn't recognize one\n\treturn nil, fmt.Errorf(\"data does not contain a valid RSA or ECDSA private key\")\n}\n\n// ParsePublicKeysPEM is a helper function for reading an array of rsa.PublicKey or ecdsa.PublicKey from a PEM-encoded byte array.\n// Reads public keys from both public and private key files.\nfunc ParsePublicKeysPEM(keyData []byte) ([]interface{}, error) {\n\tvar block *pem.Block\n\tkeys := []interface{}{}\n\tfor {\n\t\t// read the next block\n\t\tblock, keyData = pem.Decode(keyData)\n\t\tif block == nil {\n\t\t\tbreak\n\t\t}\n\n\t\t// test block against parsing functions\n\t\tif privateKey, err := parseRSAPrivateKey(block.Bytes); err == nil {\n\t\t\tkeys = append(keys, &privateKey.PublicKey)\n\t\t\tcontinue\n\t\t}\n\t\tif publicKey, err := parseRSAPublicKey(block.Bytes); err == nil {\n\t\t\tkeys = append(keys, publicKey)\n\t\t\tcontinue\n\t\t}\n\t\tif privateKey, err := parseECPrivateKey(block.Bytes); err == nil {\n\t\t\tkeys = append(keys, &privateKey.PublicKey)\n\t\t\tcontinue\n\t\t}\n\t\tif publicKey, err := parseECPublicKey(block.Bytes); err == nil {\n\t\t\tkeys = append(keys, publicKey)\n\t\t\tcontinue\n\t\t}\n\n\t\t// tolerate non-key PEM blocks for backwards compatibility\n\t\t// originally, only the first PEM block was parsed and expected to be a key block\n\t}\n\n\tif len(keys) == 0 {\n\t\treturn nil, fmt.Errorf(\"data does not contain any valid RSA or ECDSA public keys\")\n\t}\n\treturn keys, nil\n}\n\n// parseRSAPublicKey parses a single RSA public key from the provided data\nfunc parseRSAPublicKey(data []byte) (*rsa.PublicKey, error) {\n\tvar err error\n\n\t// Parse the key\n\tvar parsedKey interface{}\n\tif parsedKey, err = x509.ParsePKIXPublicKey(data); err != nil {\n\t\tif cert, err := x509.ParseCertificate(data); err == nil {\n\t\t\tparsedKey = cert.PublicKey\n\t\t} else {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\t// Test if parsed key is an RSA Public Key\n\tvar pubKey *rsa.PublicKey\n\tvar ok bool\n\tif pubKey, ok = parsedKey.(*rsa.PublicKey); !ok {\n\t\treturn nil, fmt.Errorf(\"data doesn't contain valid RSA Public Key\")\n\t}\n\n\treturn pubKey, nil\n}\n\n// parseRSAPrivateKey parses a single RSA private key from the provided data\nfunc parseRSAPrivateKey(data []byte) (*rsa.PrivateKey, error) {\n\tvar err error\n\n\t// Parse the key\n\tvar parsedKey interface{}\n\tif parsedKey, err = x509.ParsePKCS1PrivateKey(data); err != nil {\n\t\tif parsedKey, err = x509.ParsePKCS8PrivateKey(data); err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\t// Test if parsed key is an RSA Private Key\n\tvar privKey *rsa.PrivateKey\n\tvar ok bool\n\tif privKey, ok = parsedKey.(*rsa.PrivateKey); !ok {\n\t\treturn nil, fmt.Errorf(\"data doesn't contain valid RSA Private Key\")\n\t}\n\n\treturn privKey, nil\n}\n\n// parseECPublicKey parses a single ECDSA public key from the provided data\nfunc parseECPublicKey(data []byte) (*ecdsa.PublicKey, error) {\n\tvar err error\n\n\t// Parse the key\n\tvar parsedKey interface{}\n\tif parsedKey, err = x509.ParsePKIXPublicKey(data); err != nil {\n\t\tif cert, err := x509.ParseCertificate(data); err == nil {\n\t\t\tparsedKey = cert.PublicKey\n\t\t} else {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\n\t// Test if parsed key is an ECDSA Public Key\n\tvar pubKey *ecdsa.PublicKey\n\tvar ok bool\n\tif pubKey, ok = parsedKey.(*ecdsa.PublicKey); !ok {\n\t\treturn nil, fmt.Errorf(\"data doesn't contain valid ECDSA Public Key\")\n\t}\n\n\treturn pubKey, nil\n}\n\n// parseECPrivateKey parses a single ECDSA private key from the provided data\nfunc parseECPrivateKey(data []byte) (*ecdsa.PrivateKey, error) {\n\tvar err error\n\n\t// Parse the key\n\tvar parsedKey interface{}\n\tif parsedKey, err = x509.ParseECPrivateKey(data); err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Test if parsed key is an ECDSA Private Key\n\tvar privKey *ecdsa.PrivateKey\n\tvar ok bool\n\tif privKey, ok = parsedKey.(*ecdsa.PrivateKey); !ok {\n\t\treturn nil, fmt.Errorf(\"data doesn't contain valid ECDSA Private Key\")\n\t}\n\n\treturn privKey, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/util/watchlist/watch_list.go",
    "content": "/*\nCopyright 2024 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage watchlist\n\nimport (\n\tmetainternalversion \"k8s.io/apimachinery/pkg/apis/meta/internalversion\"\n\tmetainternalversionvalidation \"k8s.io/apimachinery/pkg/apis/meta/internalversion/validation\"\n\tmetav1 \"k8s.io/apimachinery/pkg/apis/meta/v1\"\n\t\"k8s.io/apimachinery/pkg/runtime\"\n\tutilruntime \"k8s.io/apimachinery/pkg/util/runtime\"\n\tclientfeatures \"k8s.io/client-go/features\"\n\t\"k8s.io/utils/ptr\"\n)\n\nvar scheme = runtime.NewScheme()\n\nfunc init() {\n\tutilruntime.Must(metainternalversion.AddToScheme(scheme))\n}\n\n// PrepareWatchListOptionsFromListOptions creates a new ListOptions\n// that can be used for a watch-list request from the given listOptions.\n//\n// This function also determines if the given listOptions can be used to form a watch-list request,\n// which would result in streaming semantically equivalent data from the server.\nfunc PrepareWatchListOptionsFromListOptions(listOptions metav1.ListOptions) (metav1.ListOptions, bool, error) {\n\tif !clientfeatures.FeatureGates().Enabled(clientfeatures.WatchListClient) {\n\t\treturn metav1.ListOptions{}, false, nil\n\t}\n\n\tinternalListOptions := &metainternalversion.ListOptions{}\n\tif err := scheme.Convert(&listOptions, internalListOptions, nil); err != nil {\n\t\treturn metav1.ListOptions{}, false, err\n\t}\n\tif errs := metainternalversionvalidation.ValidateListOptions(internalListOptions, true); len(errs) > 0 {\n\t\treturn metav1.ListOptions{}, false, nil\n\t}\n\n\twatchListOptions := listOptions\n\t// this is our legacy case, the cache ignores LIMIT for\n\t// ResourceVersion == 0 and RVM=unset|NotOlderThan\n\tif listOptions.Limit > 0 && listOptions.ResourceVersion != \"0\" {\n\t\treturn metav1.ListOptions{}, false, nil\n\t}\n\twatchListOptions.Limit = 0\n\n\t// to ensure that we can create a watch-list request that returns\n\t// semantically equivalent data for the given listOptions,\n\t// we need to validate that the RVM for the list is supported by watch-list requests.\n\tif listOptions.ResourceVersionMatch == metav1.ResourceVersionMatchExact {\n\t\treturn metav1.ListOptions{}, false, nil\n\t}\n\twatchListOptions.ResourceVersionMatch = metav1.ResourceVersionMatchNotOlderThan\n\n\twatchListOptions.Watch = true\n\twatchListOptions.AllowWatchBookmarks = true\n\twatchListOptions.SendInitialEvents = ptr.To(true)\n\n\tinternalWatchListOptions := &metainternalversion.ListOptions{}\n\tif err := scheme.Convert(&watchListOptions, internalWatchListOptions, nil); err != nil {\n\t\treturn metav1.ListOptions{}, false, err\n\t}\n\tif errs := metainternalversionvalidation.ValidateListOptions(internalWatchListOptions, true); len(errs) > 0 {\n\t\treturn metav1.ListOptions{}, false, nil\n\t}\n\n\treturn watchListOptions, true, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/util/workqueue/default_rate_limiters.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage workqueue\n\nimport (\n\t\"math\"\n\t\"sync\"\n\t\"time\"\n\n\t\"golang.org/x/time/rate\"\n)\n\n// Deprecated: RateLimiter is deprecated, use TypedRateLimiter instead.\ntype RateLimiter TypedRateLimiter[any]\n\ntype TypedRateLimiter[T comparable] interface {\n\t// When gets an item and gets to decide how long that item should wait\n\tWhen(item T) time.Duration\n\t// Forget indicates that an item is finished being retried.  Doesn't matter whether it's for failing\n\t// or for success, we'll stop tracking it\n\tForget(item T)\n\t// NumRequeues returns back how many failures the item has had\n\tNumRequeues(item T) int\n}\n\n// DefaultControllerRateLimiter is a no-arg constructor for a default rate limiter for a workqueue.  It has\n// both overall and per-item rate limiting.  The overall is a token bucket and the per-item is exponential\n//\n// Deprecated: Use DefaultTypedControllerRateLimiter instead.\nfunc DefaultControllerRateLimiter() RateLimiter {\n\treturn DefaultTypedControllerRateLimiter[any]()\n}\n\n// DefaultTypedControllerRateLimiter is a no-arg constructor for a default rate limiter for a workqueue.  It has\n// both overall and per-item rate limiting.  The overall is a token bucket and the per-item is exponential\nfunc DefaultTypedControllerRateLimiter[T comparable]() TypedRateLimiter[T] {\n\treturn NewTypedMaxOfRateLimiter(\n\t\tNewTypedItemExponentialFailureRateLimiter[T](5*time.Millisecond, 1000*time.Second),\n\t\t// 10 qps, 100 bucket size.  This is only for retry speed and its only the overall factor (not per item)\n\t\t&TypedBucketRateLimiter[T]{Limiter: rate.NewLimiter(rate.Limit(10), 100)},\n\t)\n}\n\n// Deprecated: BucketRateLimiter is deprecated, use TypedBucketRateLimiter instead.\ntype BucketRateLimiter = TypedBucketRateLimiter[any]\n\n// TypedBucketRateLimiter adapts a standard bucket to the workqueue ratelimiter API\ntype TypedBucketRateLimiter[T comparable] struct {\n\t*rate.Limiter\n}\n\nvar _ RateLimiter = &BucketRateLimiter{}\n\nfunc (r *TypedBucketRateLimiter[T]) When(item T) time.Duration {\n\treturn r.Limiter.Reserve().Delay()\n}\n\nfunc (r *TypedBucketRateLimiter[T]) NumRequeues(item T) int {\n\treturn 0\n}\n\nfunc (r *TypedBucketRateLimiter[T]) Forget(item T) {\n}\n\n// Deprecated: ItemExponentialFailureRateLimiter is deprecated, use TypedItemExponentialFailureRateLimiter instead.\ntype ItemExponentialFailureRateLimiter = TypedItemExponentialFailureRateLimiter[any]\n\n// TypedItemExponentialFailureRateLimiter does a simple baseDelay*2^<num-failures> limit\n// dealing with max failures and expiration are up to the caller\ntype TypedItemExponentialFailureRateLimiter[T comparable] struct {\n\tfailuresLock sync.Mutex\n\tfailures     map[T]int\n\n\tbaseDelay time.Duration\n\tmaxDelay  time.Duration\n}\n\nvar _ RateLimiter = &ItemExponentialFailureRateLimiter{}\n\n// Deprecated: NewItemExponentialFailureRateLimiter is deprecated, use NewTypedItemExponentialFailureRateLimiter instead.\nfunc NewItemExponentialFailureRateLimiter(baseDelay time.Duration, maxDelay time.Duration) RateLimiter {\n\treturn NewTypedItemExponentialFailureRateLimiter[any](baseDelay, maxDelay)\n}\n\nfunc NewTypedItemExponentialFailureRateLimiter[T comparable](baseDelay time.Duration, maxDelay time.Duration) TypedRateLimiter[T] {\n\treturn &TypedItemExponentialFailureRateLimiter[T]{\n\t\tfailures:  map[T]int{},\n\t\tbaseDelay: baseDelay,\n\t\tmaxDelay:  maxDelay,\n\t}\n}\n\n// Deprecated: DefaultItemBasedRateLimiter is deprecated, use DefaultTypedItemBasedRateLimiter instead.\nfunc DefaultItemBasedRateLimiter() RateLimiter {\n\treturn DefaultTypedItemBasedRateLimiter[any]()\n}\n\nfunc DefaultTypedItemBasedRateLimiter[T comparable]() TypedRateLimiter[T] {\n\treturn NewTypedItemExponentialFailureRateLimiter[T](time.Millisecond, 1000*time.Second)\n}\n\nfunc (r *TypedItemExponentialFailureRateLimiter[T]) When(item T) time.Duration {\n\tr.failuresLock.Lock()\n\tdefer r.failuresLock.Unlock()\n\n\texp := r.failures[item]\n\tr.failures[item] = r.failures[item] + 1\n\n\t// The backoff is capped such that 'calculated' value never overflows.\n\tbackoff := float64(r.baseDelay.Nanoseconds()) * math.Pow(2, float64(exp))\n\tif backoff > math.MaxInt64 {\n\t\treturn r.maxDelay\n\t}\n\n\tcalculated := time.Duration(backoff)\n\tif calculated > r.maxDelay {\n\t\treturn r.maxDelay\n\t}\n\n\treturn calculated\n}\n\nfunc (r *TypedItemExponentialFailureRateLimiter[T]) NumRequeues(item T) int {\n\tr.failuresLock.Lock()\n\tdefer r.failuresLock.Unlock()\n\n\treturn r.failures[item]\n}\n\nfunc (r *TypedItemExponentialFailureRateLimiter[T]) Forget(item T) {\n\tr.failuresLock.Lock()\n\tdefer r.failuresLock.Unlock()\n\n\tdelete(r.failures, item)\n}\n\n// ItemFastSlowRateLimiter does a quick retry for a certain number of attempts, then a slow retry after that\n// Deprecated: Use TypedItemFastSlowRateLimiter instead.\ntype ItemFastSlowRateLimiter = TypedItemFastSlowRateLimiter[any]\n\n// TypedItemFastSlowRateLimiter does a quick retry for a certain number of attempts, then a slow retry after that\ntype TypedItemFastSlowRateLimiter[T comparable] struct {\n\tfailuresLock sync.Mutex\n\tfailures     map[T]int\n\n\tmaxFastAttempts int\n\tfastDelay       time.Duration\n\tslowDelay       time.Duration\n}\n\nvar _ RateLimiter = &ItemFastSlowRateLimiter{}\n\n// Deprecated: NewItemFastSlowRateLimiter is deprecated, use NewTypedItemFastSlowRateLimiter instead.\nfunc NewItemFastSlowRateLimiter(fastDelay, slowDelay time.Duration, maxFastAttempts int) RateLimiter {\n\treturn NewTypedItemFastSlowRateLimiter[any](fastDelay, slowDelay, maxFastAttempts)\n}\n\nfunc NewTypedItemFastSlowRateLimiter[T comparable](fastDelay, slowDelay time.Duration, maxFastAttempts int) TypedRateLimiter[T] {\n\treturn &TypedItemFastSlowRateLimiter[T]{\n\t\tfailures:        map[T]int{},\n\t\tfastDelay:       fastDelay,\n\t\tslowDelay:       slowDelay,\n\t\tmaxFastAttempts: maxFastAttempts,\n\t}\n}\n\nfunc (r *TypedItemFastSlowRateLimiter[T]) When(item T) time.Duration {\n\tr.failuresLock.Lock()\n\tdefer r.failuresLock.Unlock()\n\n\tr.failures[item] = r.failures[item] + 1\n\n\tif r.failures[item] <= r.maxFastAttempts {\n\t\treturn r.fastDelay\n\t}\n\n\treturn r.slowDelay\n}\n\nfunc (r *TypedItemFastSlowRateLimiter[T]) NumRequeues(item T) int {\n\tr.failuresLock.Lock()\n\tdefer r.failuresLock.Unlock()\n\n\treturn r.failures[item]\n}\n\nfunc (r *TypedItemFastSlowRateLimiter[T]) Forget(item T) {\n\tr.failuresLock.Lock()\n\tdefer r.failuresLock.Unlock()\n\n\tdelete(r.failures, item)\n}\n\n// MaxOfRateLimiter calls every RateLimiter and returns the worst case response\n// When used with a token bucket limiter, the burst could be apparently exceeded in cases where particular items\n// were separately delayed a longer time.\n//\n// Deprecated: Use TypedMaxOfRateLimiter instead.\ntype MaxOfRateLimiter = TypedMaxOfRateLimiter[any]\n\n// TypedMaxOfRateLimiter calls every RateLimiter and returns the worst case response\n// When used with a token bucket limiter, the burst could be apparently exceeded in cases where particular items\n// were separately delayed a longer time.\ntype TypedMaxOfRateLimiter[T comparable] struct {\n\tlimiters []TypedRateLimiter[T]\n}\n\nfunc (r *TypedMaxOfRateLimiter[T]) When(item T) time.Duration {\n\tret := time.Duration(0)\n\tfor _, limiter := range r.limiters {\n\t\tcurr := limiter.When(item)\n\t\tif curr > ret {\n\t\t\tret = curr\n\t\t}\n\t}\n\n\treturn ret\n}\n\n// Deprecated: NewMaxOfRateLimiter is deprecated, use NewTypedMaxOfRateLimiter instead.\nfunc NewMaxOfRateLimiter(limiters ...TypedRateLimiter[any]) RateLimiter {\n\treturn NewTypedMaxOfRateLimiter(limiters...)\n}\n\nfunc NewTypedMaxOfRateLimiter[T comparable](limiters ...TypedRateLimiter[T]) TypedRateLimiter[T] {\n\treturn &TypedMaxOfRateLimiter[T]{limiters: limiters}\n}\n\nfunc (r *TypedMaxOfRateLimiter[T]) NumRequeues(item T) int {\n\tret := 0\n\tfor _, limiter := range r.limiters {\n\t\tcurr := limiter.NumRequeues(item)\n\t\tif curr > ret {\n\t\t\tret = curr\n\t\t}\n\t}\n\n\treturn ret\n}\n\nfunc (r *TypedMaxOfRateLimiter[T]) Forget(item T) {\n\tfor _, limiter := range r.limiters {\n\t\tlimiter.Forget(item)\n\t}\n}\n\n// WithMaxWaitRateLimiter have maxDelay which avoids waiting too long\n// Deprecated: Use TypedWithMaxWaitRateLimiter instead.\ntype WithMaxWaitRateLimiter = TypedWithMaxWaitRateLimiter[any]\n\n// TypedWithMaxWaitRateLimiter have maxDelay which avoids waiting too long\ntype TypedWithMaxWaitRateLimiter[T comparable] struct {\n\tlimiter  TypedRateLimiter[T]\n\tmaxDelay time.Duration\n}\n\n// Deprecated: NewWithMaxWaitRateLimiter is deprecated, use NewTypedWithMaxWaitRateLimiter instead.\nfunc NewWithMaxWaitRateLimiter(limiter RateLimiter, maxDelay time.Duration) RateLimiter {\n\treturn NewTypedWithMaxWaitRateLimiter[any](limiter, maxDelay)\n}\n\nfunc NewTypedWithMaxWaitRateLimiter[T comparable](limiter TypedRateLimiter[T], maxDelay time.Duration) TypedRateLimiter[T] {\n\treturn &TypedWithMaxWaitRateLimiter[T]{limiter: limiter, maxDelay: maxDelay}\n}\n\nfunc (w TypedWithMaxWaitRateLimiter[T]) When(item T) time.Duration {\n\tdelay := w.limiter.When(item)\n\tif delay > w.maxDelay {\n\t\treturn w.maxDelay\n\t}\n\n\treturn delay\n}\n\nfunc (w TypedWithMaxWaitRateLimiter[T]) Forget(item T) {\n\tw.limiter.Forget(item)\n}\n\nfunc (w TypedWithMaxWaitRateLimiter[T]) NumRequeues(item T) int {\n\treturn w.limiter.NumRequeues(item)\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/util/workqueue/delaying_queue.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage workqueue\n\nimport (\n\t\"container/heap\"\n\t\"sync\"\n\t\"time\"\n\n\tutilruntime \"k8s.io/apimachinery/pkg/util/runtime\"\n\t\"k8s.io/utils/clock\"\n)\n\n// DelayingInterface is an Interface that can Add an item at a later time. This makes it easier to\n// requeue items after failures without ending up in a hot-loop.\n//\n// Deprecated: use TypedDelayingInterface instead.\ntype DelayingInterface TypedDelayingInterface[any]\n\n// TypedDelayingInterface is an Interface that can Add an item at a later time. This makes it easier to\n// requeue items after failures without ending up in a hot-loop.\ntype TypedDelayingInterface[T comparable] interface {\n\tTypedInterface[T]\n\t// AddAfter adds an item to the workqueue after the indicated duration has passed\n\tAddAfter(item T, duration time.Duration)\n}\n\n// DelayingQueueConfig specifies optional configurations to customize a DelayingInterface.\n//\n// Deprecated: use TypedDelayingQueueConfig instead.\ntype DelayingQueueConfig = TypedDelayingQueueConfig[any]\n\n// TypedDelayingQueueConfig specifies optional configurations to customize a DelayingInterface.\ntype TypedDelayingQueueConfig[T comparable] struct {\n\t// Name for the queue. If unnamed, the metrics will not be registered.\n\tName string\n\n\t// MetricsProvider optionally allows specifying a metrics provider to use for the queue\n\t// instead of the global provider.\n\tMetricsProvider MetricsProvider\n\n\t// Clock optionally allows injecting a real or fake clock for testing purposes.\n\tClock clock.WithTicker\n\n\t// Queue optionally allows injecting custom queue Interface instead of the default one.\n\tQueue TypedInterface[T]\n}\n\n// NewDelayingQueue constructs a new workqueue with delayed queuing ability.\n// NewDelayingQueue does not emit metrics. For use with a MetricsProvider, please use\n// NewDelayingQueueWithConfig instead and specify a name.\n//\n// Deprecated: use NewTypedDelayingQueue instead.\nfunc NewDelayingQueue() DelayingInterface {\n\treturn NewDelayingQueueWithConfig(DelayingQueueConfig{})\n}\n\n// NewTypedDelayingQueue constructs a new workqueue with delayed queuing ability.\n// NewTypedDelayingQueue does not emit metrics. For use with a MetricsProvider, please use\n// NewTypedDelayingQueueWithConfig instead and specify a name.\nfunc NewTypedDelayingQueue[T comparable]() TypedDelayingInterface[T] {\n\treturn NewTypedDelayingQueueWithConfig(TypedDelayingQueueConfig[T]{})\n}\n\n// NewDelayingQueueWithConfig constructs a new workqueue with options to\n// customize different properties.\n//\n// Deprecated: use NewTypedDelayingQueueWithConfig instead.\nfunc NewDelayingQueueWithConfig(config DelayingQueueConfig) DelayingInterface {\n\treturn NewTypedDelayingQueueWithConfig[any](config)\n}\n\n// TypedNewDelayingQueue exists for backwards compatibility only.\n//\n// Deprecated: use NewTypedDelayingQueueWithConfig instead.\nfunc TypedNewDelayingQueue[T comparable]() TypedDelayingInterface[T] {\n\treturn NewTypedDelayingQueue[T]()\n}\n\n// NewTypedDelayingQueueWithConfig constructs a new workqueue with options to\n// customize different properties.\nfunc NewTypedDelayingQueueWithConfig[T comparable](config TypedDelayingQueueConfig[T]) TypedDelayingInterface[T] {\n\tif config.Clock == nil {\n\t\tconfig.Clock = clock.RealClock{}\n\t}\n\n\tif config.Queue == nil {\n\t\tconfig.Queue = NewTypedWithConfig[T](TypedQueueConfig[T]{\n\t\t\tName:            config.Name,\n\t\t\tMetricsProvider: config.MetricsProvider,\n\t\t\tClock:           config.Clock,\n\t\t})\n\t}\n\n\treturn newDelayingQueue(config.Clock, config.Queue, config.Name, config.MetricsProvider)\n}\n\n// NewDelayingQueueWithCustomQueue constructs a new workqueue with ability to\n// inject custom queue Interface instead of the default one\n// Deprecated: Use NewDelayingQueueWithConfig instead.\nfunc NewDelayingQueueWithCustomQueue(q Interface, name string) DelayingInterface {\n\treturn NewDelayingQueueWithConfig(DelayingQueueConfig{\n\t\tName:  name,\n\t\tQueue: q,\n\t})\n}\n\n// NewNamedDelayingQueue constructs a new named workqueue with delayed queuing ability.\n// Deprecated: Use NewDelayingQueueWithConfig instead.\nfunc NewNamedDelayingQueue(name string) DelayingInterface {\n\treturn NewDelayingQueueWithConfig(DelayingQueueConfig{Name: name})\n}\n\n// NewDelayingQueueWithCustomClock constructs a new named workqueue\n// with ability to inject real or fake clock for testing purposes.\n// Deprecated: Use NewDelayingQueueWithConfig instead.\nfunc NewDelayingQueueWithCustomClock(clock clock.WithTicker, name string) DelayingInterface {\n\treturn NewDelayingQueueWithConfig(DelayingQueueConfig{\n\t\tName:  name,\n\t\tClock: clock,\n\t})\n}\n\nfunc newDelayingQueue[T comparable](clock clock.WithTicker, q TypedInterface[T], name string, provider MetricsProvider) *delayingType[T] {\n\tret := &delayingType[T]{\n\t\tTypedInterface:  q,\n\t\tclock:           clock,\n\t\theartbeat:       clock.NewTicker(maxWait),\n\t\tstopCh:          make(chan struct{}),\n\t\twaitingForAddCh: make(chan *waitFor[T], 1000),\n\t\tmetrics:         newRetryMetrics(name, provider),\n\t}\n\n\tgo ret.waitingLoop()\n\treturn ret\n}\n\n// delayingType wraps an Interface and provides delayed re-enquing\ntype delayingType[T comparable] struct {\n\tTypedInterface[T]\n\n\t// clock tracks time for delayed firing\n\tclock clock.Clock\n\n\t// stopCh lets us signal a shutdown to the waiting loop\n\tstopCh chan struct{}\n\t// stopOnce guarantees we only signal shutdown a single time\n\tstopOnce sync.Once\n\n\t// heartbeat ensures we wait no more than maxWait before firing\n\theartbeat clock.Ticker\n\n\t// waitingForAddCh is a buffered channel that feeds waitingForAdd\n\twaitingForAddCh chan *waitFor[T]\n\n\t// metrics counts the number of retries\n\tmetrics retryMetrics\n}\n\n// waitFor holds the data to add and the time it should be added\ntype waitFor[T any] struct {\n\tdata    T\n\treadyAt time.Time\n\t// index in the priority queue (heap)\n\tindex int\n}\n\n// waitForPriorityQueue implements a priority queue for waitFor items.\n//\n// waitForPriorityQueue implements heap.Interface. The item occurring next in\n// time (i.e., the item with the smallest readyAt) is at the root (index 0).\n// Peek returns this minimum item at index 0. Pop returns the minimum item after\n// it has been removed from the queue and placed at index Len()-1 by\n// container/heap. Push adds an item at index Len(), and container/heap\n// percolates it into the correct location.\ntype waitForPriorityQueue[T any] []*waitFor[T]\n\nfunc (pq waitForPriorityQueue[T]) Len() int {\n\treturn len(pq)\n}\nfunc (pq waitForPriorityQueue[T]) Less(i, j int) bool {\n\treturn pq[i].readyAt.Before(pq[j].readyAt)\n}\nfunc (pq waitForPriorityQueue[T]) Swap(i, j int) {\n\tpq[i], pq[j] = pq[j], pq[i]\n\tpq[i].index = i\n\tpq[j].index = j\n}\n\n// Push adds an item to the queue. Push should not be called directly; instead,\n// use `heap.Push`.\nfunc (pq *waitForPriorityQueue[T]) Push(x interface{}) {\n\tn := len(*pq)\n\titem := x.(*waitFor[T])\n\titem.index = n\n\t*pq = append(*pq, item)\n}\n\n// Pop removes an item from the queue. Pop should not be called directly;\n// instead, use `heap.Pop`.\nfunc (pq *waitForPriorityQueue[T]) Pop() interface{} {\n\tn := len(*pq)\n\titem := (*pq)[n-1]\n\titem.index = -1\n\t*pq = (*pq)[0:(n - 1)]\n\treturn item\n}\n\n// Peek returns the item at the beginning of the queue, without removing the\n// item or otherwise mutating the queue. It is safe to call directly.\nfunc (pq waitForPriorityQueue[T]) Peek() interface{} {\n\treturn pq[0]\n}\n\n// ShutDown stops the queue. After the queue drains, the returned shutdown bool\n// on Get() will be true. This method may be invoked more than once.\nfunc (q *delayingType[T]) ShutDown() {\n\tq.stopOnce.Do(func() {\n\t\tq.TypedInterface.ShutDown()\n\t\tclose(q.stopCh)\n\t\tq.heartbeat.Stop()\n\t})\n}\n\n// AddAfter adds the given item to the work queue after the given delay\nfunc (q *delayingType[T]) AddAfter(item T, duration time.Duration) {\n\t// don't add if we're already shutting down\n\tif q.ShuttingDown() {\n\t\treturn\n\t}\n\n\tq.metrics.retry()\n\n\t// immediately add things with no delay\n\tif duration <= 0 {\n\t\tq.Add(item)\n\t\treturn\n\t}\n\n\tselect {\n\tcase <-q.stopCh:\n\t\t// unblock if ShutDown() is called\n\tcase q.waitingForAddCh <- &waitFor[T]{data: item, readyAt: q.clock.Now().Add(duration)}:\n\t}\n}\n\n// maxWait keeps a max bound on the wait time. It's just insurance against weird things happening.\n// Checking the queue every 10 seconds isn't expensive and we know that we'll never end up with an\n// expired item sitting for more than 10 seconds.\nconst maxWait = 10 * time.Second\n\n// waitingLoop runs until the workqueue is shutdown and keeps a check on the list of items to be added.\nfunc (q *delayingType[T]) waitingLoop() {\n\tdefer utilruntime.HandleCrash()\n\n\t// Make a placeholder channel to use when there are no items in our list\n\tnever := make(<-chan time.Time)\n\n\t// Make a timer that expires when the item at the head of the waiting queue is ready\n\tvar nextReadyAtTimer clock.Timer\n\n\twaitingForQueue := &waitForPriorityQueue[T]{}\n\theap.Init(waitingForQueue)\n\n\twaitingEntryByData := map[T]*waitFor[T]{}\n\n\tfor {\n\t\tif q.TypedInterface.ShuttingDown() {\n\t\t\treturn\n\t\t}\n\n\t\tnow := q.clock.Now()\n\n\t\t// Add ready entries\n\t\tfor waitingForQueue.Len() > 0 {\n\t\t\tentry := waitingForQueue.Peek().(*waitFor[T])\n\t\t\tif entry.readyAt.After(now) {\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\tentry = heap.Pop(waitingForQueue).(*waitFor[T])\n\t\t\tq.Add(entry.data)\n\t\t\tdelete(waitingEntryByData, entry.data)\n\t\t}\n\n\t\t// Set up a wait for the first item's readyAt (if one exists)\n\t\tnextReadyAt := never\n\t\tif waitingForQueue.Len() > 0 {\n\t\t\tif nextReadyAtTimer != nil {\n\t\t\t\tnextReadyAtTimer.Stop()\n\t\t\t}\n\t\t\tentry := waitingForQueue.Peek().(*waitFor[T])\n\t\t\tnextReadyAtTimer = q.clock.NewTimer(entry.readyAt.Sub(now))\n\t\t\tnextReadyAt = nextReadyAtTimer.C()\n\t\t}\n\n\t\tselect {\n\t\tcase <-q.stopCh:\n\t\t\treturn\n\n\t\tcase <-q.heartbeat.C():\n\t\t\t// continue the loop, which will add ready items\n\n\t\tcase <-nextReadyAt:\n\t\t\t// continue the loop, which will add ready items\n\n\t\tcase waitEntry := <-q.waitingForAddCh:\n\t\t\tif waitEntry.readyAt.After(q.clock.Now()) {\n\t\t\t\tinsert(waitingForQueue, waitingEntryByData, waitEntry)\n\t\t\t} else {\n\t\t\t\tq.Add(waitEntry.data)\n\t\t\t}\n\n\t\t\tdrained := false\n\t\t\tfor !drained {\n\t\t\t\tselect {\n\t\t\t\tcase waitEntry := <-q.waitingForAddCh:\n\t\t\t\t\tif waitEntry.readyAt.After(q.clock.Now()) {\n\t\t\t\t\t\tinsert(waitingForQueue, waitingEntryByData, waitEntry)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tq.Add(waitEntry.data)\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tdrained = true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n// insert adds the entry to the priority queue, or updates the readyAt if it already exists in the queue\nfunc insert[T comparable](q *waitForPriorityQueue[T], knownEntries map[T]*waitFor[T], entry *waitFor[T]) {\n\t// if the entry already exists, update the time only if it would cause the item to be queued sooner\n\texisting, exists := knownEntries[entry.data]\n\tif exists {\n\t\tif existing.readyAt.After(entry.readyAt) {\n\t\t\texisting.readyAt = entry.readyAt\n\t\t\theap.Fix(q, existing.index)\n\t\t}\n\n\t\treturn\n\t}\n\n\theap.Push(q, entry)\n\tknownEntries[entry.data] = entry\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/util/workqueue/doc.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package workqueue provides a simple queue that supports the following\n// features:\n//   - Fair: items processed in the order in which they are added.\n//   - Stingy: a single item will not be processed multiple times concurrently,\n//     and if an item is added multiple times before it can be processed, it\n//     will only be processed once.\n//   - Multiple consumers and producers. In particular, it is allowed for an\n//     item to be reenqueued while it is being processed.\n//   - Shutdown notifications.\npackage workqueue // import \"k8s.io/client-go/util/workqueue\"\n"
  },
  {
    "path": "vendor/k8s.io/client-go/util/workqueue/metrics.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage workqueue\n\nimport (\n\t\"sync\"\n\t\"time\"\n\n\t\"k8s.io/utils/clock\"\n)\n\n// This file provides abstractions for setting the provider (e.g., prometheus)\n// of metrics.\n\ntype queueMetrics[T comparable] interface {\n\tadd(item T)\n\tget(item T)\n\tdone(item T)\n\tupdateUnfinishedWork()\n}\n\n// GaugeMetric represents a single numerical value that can arbitrarily go up\n// and down.\ntype GaugeMetric interface {\n\tInc()\n\tDec()\n}\n\n// SettableGaugeMetric represents a single numerical value that can arbitrarily go up\n// and down. (Separate from GaugeMetric to preserve backwards compatibility.)\ntype SettableGaugeMetric interface {\n\tSet(float64)\n}\n\n// CounterMetric represents a single numerical value that only ever\n// goes up.\ntype CounterMetric interface {\n\tInc()\n}\n\n// SummaryMetric captures individual observations.\ntype SummaryMetric interface {\n\tObserve(float64)\n}\n\n// HistogramMetric counts individual observations.\ntype HistogramMetric interface {\n\tObserve(float64)\n}\n\ntype noopMetric struct{}\n\nfunc (noopMetric) Inc()            {}\nfunc (noopMetric) Dec()            {}\nfunc (noopMetric) Set(float64)     {}\nfunc (noopMetric) Observe(float64) {}\n\n// defaultQueueMetrics expects the caller to lock before setting any metrics.\ntype defaultQueueMetrics[T comparable] struct {\n\tclock clock.Clock\n\n\t// current depth of a workqueue\n\tdepth GaugeMetric\n\t// total number of adds handled by a workqueue\n\tadds CounterMetric\n\t// how long an item stays in a workqueue\n\tlatency HistogramMetric\n\t// how long processing an item from a workqueue takes\n\tworkDuration         HistogramMetric\n\taddTimes             map[T]time.Time\n\tprocessingStartTimes map[T]time.Time\n\n\t// how long have current threads been working?\n\tunfinishedWorkSeconds   SettableGaugeMetric\n\tlongestRunningProcessor SettableGaugeMetric\n}\n\nfunc (m *defaultQueueMetrics[T]) add(item T) {\n\tif m == nil {\n\t\treturn\n\t}\n\n\tm.adds.Inc()\n\tm.depth.Inc()\n\tif _, exists := m.addTimes[item]; !exists {\n\t\tm.addTimes[item] = m.clock.Now()\n\t}\n}\n\nfunc (m *defaultQueueMetrics[T]) get(item T) {\n\tif m == nil {\n\t\treturn\n\t}\n\n\tm.depth.Dec()\n\tm.processingStartTimes[item] = m.clock.Now()\n\tif startTime, exists := m.addTimes[item]; exists {\n\t\tm.latency.Observe(m.sinceInSeconds(startTime))\n\t\tdelete(m.addTimes, item)\n\t}\n}\n\nfunc (m *defaultQueueMetrics[T]) done(item T) {\n\tif m == nil {\n\t\treturn\n\t}\n\n\tif startTime, exists := m.processingStartTimes[item]; exists {\n\t\tm.workDuration.Observe(m.sinceInSeconds(startTime))\n\t\tdelete(m.processingStartTimes, item)\n\t}\n}\n\nfunc (m *defaultQueueMetrics[T]) updateUnfinishedWork() {\n\t// Note that a summary metric would be better for this, but prometheus\n\t// doesn't seem to have non-hacky ways to reset the summary metrics.\n\tvar total float64\n\tvar oldest float64\n\tfor _, t := range m.processingStartTimes {\n\t\tage := m.sinceInSeconds(t)\n\t\ttotal += age\n\t\tif age > oldest {\n\t\t\toldest = age\n\t\t}\n\t}\n\tm.unfinishedWorkSeconds.Set(total)\n\tm.longestRunningProcessor.Set(oldest)\n}\n\ntype noMetrics[T any] struct{}\n\nfunc (noMetrics[T]) add(item T)            {}\nfunc (noMetrics[T]) get(item T)            {}\nfunc (noMetrics[T]) done(item T)           {}\nfunc (noMetrics[T]) updateUnfinishedWork() {}\n\n// Gets the time since the specified start in seconds.\nfunc (m *defaultQueueMetrics[T]) sinceInSeconds(start time.Time) float64 {\n\treturn m.clock.Since(start).Seconds()\n}\n\ntype retryMetrics interface {\n\tretry()\n}\n\ntype defaultRetryMetrics struct {\n\tretries CounterMetric\n}\n\nfunc (m *defaultRetryMetrics) retry() {\n\tif m == nil {\n\t\treturn\n\t}\n\n\tm.retries.Inc()\n}\n\n// MetricsProvider generates various metrics used by the queue.\ntype MetricsProvider interface {\n\tNewDepthMetric(name string) GaugeMetric\n\tNewAddsMetric(name string) CounterMetric\n\tNewLatencyMetric(name string) HistogramMetric\n\tNewWorkDurationMetric(name string) HistogramMetric\n\tNewUnfinishedWorkSecondsMetric(name string) SettableGaugeMetric\n\tNewLongestRunningProcessorSecondsMetric(name string) SettableGaugeMetric\n\tNewRetriesMetric(name string) CounterMetric\n}\n\ntype noopMetricsProvider struct{}\n\nfunc (_ noopMetricsProvider) NewDepthMetric(name string) GaugeMetric {\n\treturn noopMetric{}\n}\n\nfunc (_ noopMetricsProvider) NewAddsMetric(name string) CounterMetric {\n\treturn noopMetric{}\n}\n\nfunc (_ noopMetricsProvider) NewLatencyMetric(name string) HistogramMetric {\n\treturn noopMetric{}\n}\n\nfunc (_ noopMetricsProvider) NewWorkDurationMetric(name string) HistogramMetric {\n\treturn noopMetric{}\n}\n\nfunc (_ noopMetricsProvider) NewUnfinishedWorkSecondsMetric(name string) SettableGaugeMetric {\n\treturn noopMetric{}\n}\n\nfunc (_ noopMetricsProvider) NewLongestRunningProcessorSecondsMetric(name string) SettableGaugeMetric {\n\treturn noopMetric{}\n}\n\nfunc (_ noopMetricsProvider) NewRetriesMetric(name string) CounterMetric {\n\treturn noopMetric{}\n}\n\nvar globalMetricsProvider MetricsProvider = noopMetricsProvider{}\n\nvar setGlobalMetricsProviderOnce sync.Once\n\nfunc newQueueMetrics[T comparable](mp MetricsProvider, name string, clock clock.Clock) queueMetrics[T] {\n\tif len(name) == 0 || mp == (noopMetricsProvider{}) {\n\t\treturn noMetrics[T]{}\n\t}\n\treturn &defaultQueueMetrics[T]{\n\t\tclock:                   clock,\n\t\tdepth:                   mp.NewDepthMetric(name),\n\t\tadds:                    mp.NewAddsMetric(name),\n\t\tlatency:                 mp.NewLatencyMetric(name),\n\t\tworkDuration:            mp.NewWorkDurationMetric(name),\n\t\tunfinishedWorkSeconds:   mp.NewUnfinishedWorkSecondsMetric(name),\n\t\tlongestRunningProcessor: mp.NewLongestRunningProcessorSecondsMetric(name),\n\t\taddTimes:                map[T]time.Time{},\n\t\tprocessingStartTimes:    map[T]time.Time{},\n\t}\n}\n\nfunc newRetryMetrics(name string, provider MetricsProvider) retryMetrics {\n\tvar ret *defaultRetryMetrics\n\tif len(name) == 0 {\n\t\treturn ret\n\t}\n\n\tif provider == nil {\n\t\tprovider = globalMetricsProvider\n\t}\n\n\treturn &defaultRetryMetrics{\n\t\tretries: provider.NewRetriesMetric(name),\n\t}\n}\n\n// SetProvider sets the metrics provider for all subsequently created work\n// queues. Only the first call has an effect.\nfunc SetProvider(metricsProvider MetricsProvider) {\n\tsetGlobalMetricsProviderOnce.Do(func() {\n\t\tglobalMetricsProvider = metricsProvider\n\t})\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/util/workqueue/parallelizer.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage workqueue\n\nimport (\n\t\"context\"\n\t\"sync\"\n\n\tutilruntime \"k8s.io/apimachinery/pkg/util/runtime\"\n)\n\ntype DoWorkPieceFunc func(piece int)\n\ntype options struct {\n\tchunkSize int\n}\n\ntype Options func(*options)\n\n// WithChunkSize allows to set chunks of work items to the workers, rather than\n// processing one by one.\n// It is recommended to use this option if the number of pieces significantly\n// higher than the number of workers and the work done for each item is small.\nfunc WithChunkSize(c int) func(*options) {\n\treturn func(o *options) {\n\t\to.chunkSize = c\n\t}\n}\n\n// ParallelizeUntil is a framework that allows for parallelizing N\n// independent pieces of work until done or the context is canceled.\nfunc ParallelizeUntil(ctx context.Context, workers, pieces int, doWorkPiece DoWorkPieceFunc, opts ...Options) {\n\tif pieces == 0 {\n\t\treturn\n\t}\n\to := options{}\n\tfor _, opt := range opts {\n\t\topt(&o)\n\t}\n\tchunkSize := o.chunkSize\n\tif chunkSize < 1 {\n\t\tchunkSize = 1\n\t}\n\n\tchunks := ceilDiv(pieces, chunkSize)\n\ttoProcess := make(chan int, chunks)\n\tfor i := 0; i < chunks; i++ {\n\t\ttoProcess <- i\n\t}\n\tclose(toProcess)\n\n\tvar stop <-chan struct{}\n\tif ctx != nil {\n\t\tstop = ctx.Done()\n\t}\n\tif chunks < workers {\n\t\tworkers = chunks\n\t}\n\twg := sync.WaitGroup{}\n\twg.Add(workers)\n\tfor i := 0; i < workers; i++ {\n\t\tgo func() {\n\t\t\tdefer utilruntime.HandleCrash()\n\t\t\tdefer wg.Done()\n\t\t\tfor chunk := range toProcess {\n\t\t\t\tstart := chunk * chunkSize\n\t\t\t\tend := start + chunkSize\n\t\t\t\tif end > pieces {\n\t\t\t\t\tend = pieces\n\t\t\t\t}\n\t\t\t\tfor p := start; p < end; p++ {\n\t\t\t\t\tselect {\n\t\t\t\t\tcase <-stop:\n\t\t\t\t\t\treturn\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tdoWorkPiece(p)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}()\n\t}\n\twg.Wait()\n}\n\nfunc ceilDiv(a, b int) int {\n\treturn (a + b - 1) / b\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/util/workqueue/queue.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage workqueue\n\nimport (\n\t\"sync\"\n\t\"time\"\n\n\t\"k8s.io/utils/clock\"\n)\n\n// Deprecated: Interface is deprecated, use TypedInterface instead.\ntype Interface TypedInterface[any]\n\ntype TypedInterface[T comparable] interface {\n\tAdd(item T)\n\tLen() int\n\tGet() (item T, shutdown bool)\n\tDone(item T)\n\tShutDown()\n\tShutDownWithDrain()\n\tShuttingDown() bool\n}\n\n// Queue is the underlying storage for items. The functions below are always\n// called from the same goroutine.\ntype Queue[T comparable] interface {\n\t// Touch can be hooked when an existing item is added again. This may be\n\t// useful if the implementation allows priority change for the given item.\n\tTouch(item T)\n\t// Push adds a new item.\n\tPush(item T)\n\t// Len tells the total number of items.\n\tLen() int\n\t// Pop retrieves an item.\n\tPop() (item T)\n}\n\n// DefaultQueue is a slice based FIFO queue.\nfunc DefaultQueue[T comparable]() Queue[T] {\n\treturn new(queue[T])\n}\n\n// queue is a slice which implements Queue.\ntype queue[T comparable] []T\n\nfunc (q *queue[T]) Touch(item T) {}\n\nfunc (q *queue[T]) Push(item T) {\n\t*q = append(*q, item)\n}\n\nfunc (q *queue[T]) Len() int {\n\treturn len(*q)\n}\n\nfunc (q *queue[T]) Pop() (item T) {\n\titem = (*q)[0]\n\n\t// The underlying array still exists and reference this object, so the object will not be garbage collected.\n\t(*q)[0] = *new(T)\n\t*q = (*q)[1:]\n\n\treturn item\n}\n\n// QueueConfig specifies optional configurations to customize an Interface.\n// Deprecated: use TypedQueueConfig instead.\ntype QueueConfig = TypedQueueConfig[any]\n\ntype TypedQueueConfig[T comparable] struct {\n\t// Name for the queue. If unnamed, the metrics will not be registered.\n\tName string\n\n\t// MetricsProvider optionally allows specifying a metrics provider to use for the queue\n\t// instead of the global provider.\n\tMetricsProvider MetricsProvider\n\n\t// Clock ability to inject real or fake clock for testing purposes.\n\tClock clock.WithTicker\n\n\t// Queue provides the underlying queue to use. It is optional and defaults to slice based FIFO queue.\n\tQueue Queue[T]\n}\n\n// New constructs a new work queue (see the package comment).\n//\n// Deprecated: use NewTyped instead.\nfunc New() *Type {\n\treturn NewWithConfig(QueueConfig{\n\t\tName: \"\",\n\t})\n}\n\n// NewTyped constructs a new work queue (see the package comment).\nfunc NewTyped[T comparable]() *Typed[T] {\n\treturn NewTypedWithConfig(TypedQueueConfig[T]{\n\t\tName: \"\",\n\t})\n}\n\n// NewWithConfig constructs a new workqueue with ability to\n// customize different properties.\n//\n// Deprecated: use NewTypedWithConfig instead.\nfunc NewWithConfig(config QueueConfig) *Type {\n\treturn NewTypedWithConfig(config)\n}\n\n// NewTypedWithConfig constructs a new workqueue with ability to\n// customize different properties.\nfunc NewTypedWithConfig[T comparable](config TypedQueueConfig[T]) *Typed[T] {\n\treturn newQueueWithConfig(config, defaultUnfinishedWorkUpdatePeriod)\n}\n\n// NewNamed creates a new named queue.\n// Deprecated: Use NewWithConfig instead.\nfunc NewNamed(name string) *Type {\n\treturn NewWithConfig(QueueConfig{\n\t\tName: name,\n\t})\n}\n\n// newQueueWithConfig constructs a new named workqueue\n// with the ability to customize different properties for testing purposes\nfunc newQueueWithConfig[T comparable](config TypedQueueConfig[T], updatePeriod time.Duration) *Typed[T] {\n\tmetricsProvider := globalMetricsProvider\n\tif config.MetricsProvider != nil {\n\t\tmetricsProvider = config.MetricsProvider\n\t}\n\n\tif config.Clock == nil {\n\t\tconfig.Clock = clock.RealClock{}\n\t}\n\n\tif config.Queue == nil {\n\t\tconfig.Queue = DefaultQueue[T]()\n\t}\n\n\treturn newQueue(\n\t\tconfig.Clock,\n\t\tconfig.Queue,\n\t\tnewQueueMetrics[T](metricsProvider, config.Name, config.Clock),\n\t\tupdatePeriod,\n\t)\n}\n\nfunc newQueue[T comparable](c clock.WithTicker, queue Queue[T], metrics queueMetrics[T], updatePeriod time.Duration) *Typed[T] {\n\tt := &Typed[T]{\n\t\tclock:                      c,\n\t\tqueue:                      queue,\n\t\tdirty:                      set[T]{},\n\t\tprocessing:                 set[T]{},\n\t\tcond:                       sync.NewCond(&sync.Mutex{}),\n\t\tmetrics:                    metrics,\n\t\tunfinishedWorkUpdatePeriod: updatePeriod,\n\t}\n\n\t// Don't start the goroutine for a type of noMetrics so we don't consume\n\t// resources unnecessarily\n\tif _, ok := metrics.(noMetrics[T]); !ok {\n\t\tgo t.updateUnfinishedWorkLoop()\n\t}\n\n\treturn t\n}\n\nconst defaultUnfinishedWorkUpdatePeriod = 500 * time.Millisecond\n\n// Type is a work queue (see the package comment).\n// Deprecated: Use Typed instead.\ntype Type = Typed[any]\n\ntype Typed[t comparable] struct {\n\t// queue defines the order in which we will work on items. Every\n\t// element of queue should be in the dirty set and not in the\n\t// processing set.\n\tqueue Queue[t]\n\n\t// dirty defines all of the items that need to be processed.\n\tdirty set[t]\n\n\t// Things that are currently being processed are in the processing set.\n\t// These things may be simultaneously in the dirty set. When we finish\n\t// processing something and remove it from this set, we'll check if\n\t// it's in the dirty set, and if so, add it to the queue.\n\tprocessing set[t]\n\n\tcond *sync.Cond\n\n\tshuttingDown bool\n\tdrain        bool\n\n\tmetrics queueMetrics[t]\n\n\tunfinishedWorkUpdatePeriod time.Duration\n\tclock                      clock.WithTicker\n}\n\ntype empty struct{}\ntype set[t comparable] map[t]empty\n\nfunc (s set[t]) has(item t) bool {\n\t_, exists := s[item]\n\treturn exists\n}\n\nfunc (s set[t]) insert(item t) {\n\ts[item] = empty{}\n}\n\nfunc (s set[t]) delete(item t) {\n\tdelete(s, item)\n}\n\nfunc (s set[t]) len() int {\n\treturn len(s)\n}\n\n// Add marks item as needing processing.\nfunc (q *Typed[T]) Add(item T) {\n\tq.cond.L.Lock()\n\tdefer q.cond.L.Unlock()\n\tif q.shuttingDown {\n\t\treturn\n\t}\n\tif q.dirty.has(item) {\n\t\t// the same item is added again before it is processed, call the Touch\n\t\t// function if the queue cares about it (for e.g, reset its priority)\n\t\tif !q.processing.has(item) {\n\t\t\tq.queue.Touch(item)\n\t\t}\n\t\treturn\n\t}\n\n\tq.metrics.add(item)\n\n\tq.dirty.insert(item)\n\tif q.processing.has(item) {\n\t\treturn\n\t}\n\n\tq.queue.Push(item)\n\tq.cond.Signal()\n}\n\n// Len returns the current queue length, for informational purposes only. You\n// shouldn't e.g. gate a call to Add() or Get() on Len() being a particular\n// value, that can't be synchronized properly.\nfunc (q *Typed[T]) Len() int {\n\tq.cond.L.Lock()\n\tdefer q.cond.L.Unlock()\n\treturn q.queue.Len()\n}\n\n// Get blocks until it can return an item to be processed. If shutdown = true,\n// the caller should end their goroutine. You must call Done with item when you\n// have finished processing it.\nfunc (q *Typed[T]) Get() (item T, shutdown bool) {\n\tq.cond.L.Lock()\n\tdefer q.cond.L.Unlock()\n\tfor q.queue.Len() == 0 && !q.shuttingDown {\n\t\tq.cond.Wait()\n\t}\n\tif q.queue.Len() == 0 {\n\t\t// We must be shutting down.\n\t\treturn *new(T), true\n\t}\n\n\titem = q.queue.Pop()\n\n\tq.metrics.get(item)\n\n\tq.processing.insert(item)\n\tq.dirty.delete(item)\n\n\treturn item, false\n}\n\n// Done marks item as done processing, and if it has been marked as dirty again\n// while it was being processed, it will be re-added to the queue for\n// re-processing.\nfunc (q *Typed[T]) Done(item T) {\n\tq.cond.L.Lock()\n\tdefer q.cond.L.Unlock()\n\n\tq.metrics.done(item)\n\n\tq.processing.delete(item)\n\tif q.dirty.has(item) {\n\t\tq.queue.Push(item)\n\t\tq.cond.Signal()\n\t} else if q.processing.len() == 0 {\n\t\tq.cond.Signal()\n\t}\n}\n\n// ShutDown will cause q to ignore all new items added to it and\n// immediately instruct the worker goroutines to exit.\nfunc (q *Typed[T]) ShutDown() {\n\tq.cond.L.Lock()\n\tdefer q.cond.L.Unlock()\n\n\tq.drain = false\n\tq.shuttingDown = true\n\tq.cond.Broadcast()\n}\n\n// ShutDownWithDrain will cause q to ignore all new items added to it. As soon\n// as the worker goroutines have \"drained\", i.e: finished processing and called\n// Done on all existing items in the queue; they will be instructed to exit and\n// ShutDownWithDrain will return. Hence: a strict requirement for using this is;\n// your workers must ensure that Done is called on all items in the queue once\n// the shut down has been initiated, if that is not the case: this will block\n// indefinitely. It is, however, safe to call ShutDown after having called\n// ShutDownWithDrain, as to force the queue shut down to terminate immediately\n// without waiting for the drainage.\nfunc (q *Typed[T]) ShutDownWithDrain() {\n\tq.cond.L.Lock()\n\tdefer q.cond.L.Unlock()\n\n\tq.drain = true\n\tq.shuttingDown = true\n\tq.cond.Broadcast()\n\n\tfor q.processing.len() != 0 && q.drain {\n\t\tq.cond.Wait()\n\t}\n}\n\nfunc (q *Typed[T]) ShuttingDown() bool {\n\tq.cond.L.Lock()\n\tdefer q.cond.L.Unlock()\n\n\treturn q.shuttingDown\n}\n\nfunc (q *Typed[T]) updateUnfinishedWorkLoop() {\n\tt := q.clock.NewTicker(q.unfinishedWorkUpdatePeriod)\n\tdefer t.Stop()\n\tfor range t.C() {\n\t\tif !func() bool {\n\t\t\tq.cond.L.Lock()\n\t\t\tdefer q.cond.L.Unlock()\n\t\t\tif !q.shuttingDown {\n\t\t\t\tq.metrics.updateUnfinishedWork()\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn false\n\n\t\t}() {\n\t\t\treturn\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/client-go/util/workqueue/rate_limiting_queue.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage workqueue\n\nimport \"k8s.io/utils/clock\"\n\n// RateLimitingInterface is an interface that rate limits items being added to the queue.\n//\n// Deprecated: Use TypedRateLimitingInterface instead.\ntype RateLimitingInterface TypedRateLimitingInterface[any]\n\n// TypedRateLimitingInterface is an interface that rate limits items being added to the queue.\ntype TypedRateLimitingInterface[T comparable] interface {\n\tTypedDelayingInterface[T]\n\n\t// AddRateLimited adds an item to the workqueue after the rate limiter says it's ok\n\tAddRateLimited(item T)\n\n\t// Forget indicates that an item is finished being retried.  Doesn't matter whether it's for perm failing\n\t// or for success, we'll stop the rate limiter from tracking it.  This only clears the `rateLimiter`, you\n\t// still have to call `Done` on the queue.\n\tForget(item T)\n\n\t// NumRequeues returns back how many times the item was requeued\n\tNumRequeues(item T) int\n}\n\n// RateLimitingQueueConfig specifies optional configurations to customize a RateLimitingInterface.\n//\n// Deprecated: Use TypedRateLimitingQueueConfig instead.\ntype RateLimitingQueueConfig = TypedRateLimitingQueueConfig[any]\n\n// TypedRateLimitingQueueConfig specifies optional configurations to customize a TypedRateLimitingInterface.\ntype TypedRateLimitingQueueConfig[T comparable] struct {\n\t// Name for the queue. If unnamed, the metrics will not be registered.\n\tName string\n\n\t// MetricsProvider optionally allows specifying a metrics provider to use for the queue\n\t// instead of the global provider.\n\tMetricsProvider MetricsProvider\n\n\t// Clock optionally allows injecting a real or fake clock for testing purposes.\n\tClock clock.WithTicker\n\n\t// DelayingQueue optionally allows injecting custom delaying queue DelayingInterface instead of the default one.\n\tDelayingQueue TypedDelayingInterface[T]\n}\n\n// NewRateLimitingQueue constructs a new workqueue with rateLimited queuing ability\n// Remember to call Forget!  If you don't, you may end up tracking failures forever.\n// NewRateLimitingQueue does not emit metrics. For use with a MetricsProvider, please use\n// NewRateLimitingQueueWithConfig instead and specify a name.\n//\n// Deprecated: Use NewTypedRateLimitingQueue instead.\nfunc NewRateLimitingQueue(rateLimiter RateLimiter) RateLimitingInterface {\n\treturn NewRateLimitingQueueWithConfig(rateLimiter, RateLimitingQueueConfig{})\n}\n\n// NewTypedRateLimitingQueue constructs a new workqueue with rateLimited queuing ability\n// Remember to call Forget!  If you don't, you may end up tracking failures forever.\n// NewTypedRateLimitingQueue does not emit metrics. For use with a MetricsProvider, please use\n// NewTypedRateLimitingQueueWithConfig instead and specify a name.\nfunc NewTypedRateLimitingQueue[T comparable](rateLimiter TypedRateLimiter[T]) TypedRateLimitingInterface[T] {\n\treturn NewTypedRateLimitingQueueWithConfig(rateLimiter, TypedRateLimitingQueueConfig[T]{})\n}\n\n// NewRateLimitingQueueWithConfig constructs a new workqueue with rateLimited queuing ability\n// with options to customize different properties.\n// Remember to call Forget!  If you don't, you may end up tracking failures forever.\n//\n// Deprecated: Use NewTypedRateLimitingQueueWithConfig instead.\nfunc NewRateLimitingQueueWithConfig(rateLimiter RateLimiter, config RateLimitingQueueConfig) RateLimitingInterface {\n\treturn NewTypedRateLimitingQueueWithConfig(rateLimiter, config)\n}\n\n// NewTypedRateLimitingQueueWithConfig constructs a new workqueue with rateLimited queuing ability\n// with options to customize different properties.\n// Remember to call Forget!  If you don't, you may end up tracking failures forever.\nfunc NewTypedRateLimitingQueueWithConfig[T comparable](rateLimiter TypedRateLimiter[T], config TypedRateLimitingQueueConfig[T]) TypedRateLimitingInterface[T] {\n\tif config.Clock == nil {\n\t\tconfig.Clock = clock.RealClock{}\n\t}\n\n\tif config.DelayingQueue == nil {\n\t\tconfig.DelayingQueue = NewTypedDelayingQueueWithConfig(TypedDelayingQueueConfig[T]{\n\t\t\tName:            config.Name,\n\t\t\tMetricsProvider: config.MetricsProvider,\n\t\t\tClock:           config.Clock,\n\t\t})\n\t}\n\n\treturn &rateLimitingType[T]{\n\t\tTypedDelayingInterface: config.DelayingQueue,\n\t\trateLimiter:            rateLimiter,\n\t}\n}\n\n// NewNamedRateLimitingQueue constructs a new named workqueue with rateLimited queuing ability.\n// Deprecated: Use NewRateLimitingQueueWithConfig instead.\nfunc NewNamedRateLimitingQueue(rateLimiter RateLimiter, name string) RateLimitingInterface {\n\treturn NewRateLimitingQueueWithConfig(rateLimiter, RateLimitingQueueConfig{\n\t\tName: name,\n\t})\n}\n\n// NewRateLimitingQueueWithDelayingInterface constructs a new named workqueue with rateLimited queuing ability\n// with the option to inject a custom delaying queue instead of the default one.\n// Deprecated: Use NewRateLimitingQueueWithConfig instead.\nfunc NewRateLimitingQueueWithDelayingInterface(di DelayingInterface, rateLimiter RateLimiter) RateLimitingInterface {\n\treturn NewRateLimitingQueueWithConfig(rateLimiter, RateLimitingQueueConfig{\n\t\tDelayingQueue: di,\n\t})\n}\n\n// rateLimitingType wraps an Interface and provides rateLimited re-enquing\ntype rateLimitingType[T comparable] struct {\n\tTypedDelayingInterface[T]\n\n\trateLimiter TypedRateLimiter[T]\n}\n\n// AddRateLimited AddAfter's the item based on the time when the rate limiter says it's ok\nfunc (q *rateLimitingType[T]) AddRateLimited(item T) {\n\tq.TypedDelayingInterface.AddAfter(item, q.rateLimiter.When(item))\n}\n\nfunc (q *rateLimitingType[T]) NumRequeues(item T) int {\n\treturn q.rateLimiter.NumRequeues(item)\n}\n\nfunc (q *rateLimitingType[T]) Forget(item T) {\n\tq.rateLimiter.Forget(item)\n}\n"
  },
  {
    "path": "vendor/k8s.io/component-base/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/k8s.io/component-base/cli/flag/ciphersuites_flag.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage flag\n\nimport (\n\t\"crypto/tls\"\n\t\"fmt\"\n\n\t\"k8s.io/apimachinery/pkg/util/sets\"\n)\n\nvar (\n\t// ciphers maps strings into tls package cipher constants in\n\t// https://golang.org/pkg/crypto/tls/#pkg-constants\n\tciphers         = map[string]uint16{}\n\tinsecureCiphers = map[string]uint16{}\n)\n\nfunc init() {\n\tfor _, suite := range tls.CipherSuites() {\n\t\tciphers[suite.Name] = suite.ID\n\t}\n\t// keep legacy names for backward compatibility\n\tciphers[\"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305\"] = tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256\n\tciphers[\"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305\"] = tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256\n\n\tfor _, suite := range tls.InsecureCipherSuites() {\n\t\tinsecureCiphers[suite.Name] = suite.ID\n\t}\n}\n\n// InsecureTLSCiphers returns the cipher suites implemented by crypto/tls which have\n// security issues.\nfunc InsecureTLSCiphers() map[string]uint16 {\n\tcipherKeys := make(map[string]uint16, len(insecureCiphers))\n\tfor k, v := range insecureCiphers {\n\t\tcipherKeys[k] = v\n\t}\n\treturn cipherKeys\n}\n\n// InsecureTLSCipherNames returns a list of cipher suite names implemented by crypto/tls\n// which have security issues.\nfunc InsecureTLSCipherNames() []string {\n\tcipherKeys := sets.NewString()\n\tfor key := range insecureCiphers {\n\t\tcipherKeys.Insert(key)\n\t}\n\treturn cipherKeys.List()\n}\n\n// PreferredTLSCipherNames returns a list of cipher suite names implemented by crypto/tls.\nfunc PreferredTLSCipherNames() []string {\n\tcipherKeys := sets.NewString()\n\tfor key := range ciphers {\n\t\tcipherKeys.Insert(key)\n\t}\n\treturn cipherKeys.List()\n}\n\nfunc allCiphers() map[string]uint16 {\n\tacceptedCiphers := make(map[string]uint16, len(ciphers)+len(insecureCiphers))\n\tfor k, v := range ciphers {\n\t\tacceptedCiphers[k] = v\n\t}\n\tfor k, v := range insecureCiphers {\n\t\tacceptedCiphers[k] = v\n\t}\n\treturn acceptedCiphers\n}\n\n// TLSCipherPossibleValues returns all acceptable cipher suite names.\n// This is a combination of both InsecureTLSCipherNames() and PreferredTLSCipherNames().\nfunc TLSCipherPossibleValues() []string {\n\tcipherKeys := sets.NewString()\n\tacceptedCiphers := allCiphers()\n\tfor key := range acceptedCiphers {\n\t\tcipherKeys.Insert(key)\n\t}\n\treturn cipherKeys.List()\n}\n\n// TLSCipherSuites returns a list of cipher suite IDs from the cipher suite names passed.\nfunc TLSCipherSuites(cipherNames []string) ([]uint16, error) {\n\tif len(cipherNames) == 0 {\n\t\treturn nil, nil\n\t}\n\tciphersIntSlice := make([]uint16, 0)\n\tpossibleCiphers := allCiphers()\n\tfor _, cipher := range cipherNames {\n\t\tintValue, ok := possibleCiphers[cipher]\n\t\tif !ok {\n\t\t\treturn nil, fmt.Errorf(\"Cipher suite %s not supported or doesn't exist\", cipher)\n\t\t}\n\t\tciphersIntSlice = append(ciphersIntSlice, intValue)\n\t}\n\treturn ciphersIntSlice, nil\n}\n\nvar versions = map[string]uint16{\n\t\"VersionTLS10\": tls.VersionTLS10,\n\t\"VersionTLS11\": tls.VersionTLS11,\n\t\"VersionTLS12\": tls.VersionTLS12,\n\t\"VersionTLS13\": tls.VersionTLS13,\n}\n\n// TLSPossibleVersions returns all acceptable values for TLS Version.\nfunc TLSPossibleVersions() []string {\n\tversionsKeys := sets.NewString()\n\tfor key := range versions {\n\t\tversionsKeys.Insert(key)\n\t}\n\treturn versionsKeys.List()\n}\n\n// TLSVersion returns the TLS Version ID for the version name passed.\nfunc TLSVersion(versionName string) (uint16, error) {\n\tif len(versionName) == 0 {\n\t\treturn DefaultTLSVersion(), nil\n\t}\n\tif version, ok := versions[versionName]; ok {\n\t\treturn version, nil\n\t}\n\treturn 0, fmt.Errorf(\"unknown tls version %q\", versionName)\n}\n\n// DefaultTLSVersion defines the default TLS Version.\nfunc DefaultTLSVersion() uint16 {\n\t// Can't use SSLv3 because of POODLE and BEAST\n\t// Can't use TLSv1.0 because of POODLE and BEAST using CBC cipher\n\t// Can't use TLSv1.1 because of RC4 cipher usage\n\treturn tls.VersionTLS12\n}\n"
  },
  {
    "path": "vendor/k8s.io/component-base/cli/flag/colon_separated_multimap_string_string.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage flag\n\nimport (\n\t\"fmt\"\n\t\"sort\"\n\t\"strings\"\n)\n\n// ColonSeparatedMultimapStringString supports setting a map[string][]string from an encoding\n// that separates keys from values with ':' and separates key-value pairs with ','.\n// A key can be repeated multiple times, in which case the values are appended to a\n// slice of strings associated with that key. Items in the list associated with a given\n// key will appear in the order provided.\n// For example: `a:hello,b:again,c:world,b:beautiful` results in `{\"a\": [\"hello\"], \"b\": [\"again\", \"beautiful\"], \"c\": [\"world\"]}`\n// The first call to Set will clear the map before adding entries; subsequent calls will simply append to the map.\n// This makes it possible to override default values with a command-line option rather than appending to defaults,\n// while still allowing the distribution of key-value pairs across multiple flag invocations.\n// For example: `--flag \"a:hello\" --flag \"b:again\" --flag \"b:beautiful\" --flag \"c:world\"` results in `{\"a\": [\"hello\"], \"b\": [\"again\", \"beautiful\"], \"c\": [\"world\"]}`\ntype ColonSeparatedMultimapStringString struct {\n\tMultimap             *map[string][]string\n\tinitialized          bool // set to true after the first Set call\n\tallowDefaultEmptyKey bool\n}\n\n// NewColonSeparatedMultimapStringString takes a pointer to a map[string][]string and returns the\n// ColonSeparatedMultimapStringString flag parsing shim for that map.\nfunc NewColonSeparatedMultimapStringString(m *map[string][]string) *ColonSeparatedMultimapStringString {\n\treturn &ColonSeparatedMultimapStringString{Multimap: m}\n}\n\n// NewColonSeparatedMultimapStringStringAllowDefaultEmptyKey takes a pointer to a map[string][]string and returns the\n// ColonSeparatedMultimapStringString flag parsing shim for that map. It allows default empty key with no colon in the flag.\nfunc NewColonSeparatedMultimapStringStringAllowDefaultEmptyKey(m *map[string][]string) *ColonSeparatedMultimapStringString {\n\treturn &ColonSeparatedMultimapStringString{Multimap: m, allowDefaultEmptyKey: true}\n}\n\n// Set implements github.com/spf13/pflag.Value\nfunc (m *ColonSeparatedMultimapStringString) Set(value string) error {\n\tif m.Multimap == nil {\n\t\treturn fmt.Errorf(\"no target (nil pointer to map[string][]string)\")\n\t}\n\tif !m.initialized || *m.Multimap == nil {\n\t\t// clear default values, or allocate if no existing map\n\t\t*m.Multimap = make(map[string][]string)\n\t\tm.initialized = true\n\t}\n\tfor _, pair := range strings.Split(value, \",\") {\n\t\tif len(pair) == 0 {\n\t\t\tcontinue\n\t\t}\n\t\tkv := strings.SplitN(pair, \":\", 2)\n\t\tvar k, v string\n\t\tif m.allowDefaultEmptyKey && len(kv) == 1 {\n\t\t\tv = strings.TrimSpace(kv[0])\n\t\t} else {\n\t\t\tif len(kv) != 2 {\n\t\t\t\treturn fmt.Errorf(\"malformed pair, expect string:string\")\n\t\t\t}\n\t\t\tk = strings.TrimSpace(kv[0])\n\t\t\tv = strings.TrimSpace(kv[1])\n\t\t}\n\t\t(*m.Multimap)[k] = append((*m.Multimap)[k], v)\n\t}\n\treturn nil\n}\n\n// String implements github.com/spf13/pflag.Value\nfunc (m *ColonSeparatedMultimapStringString) String() string {\n\ttype kv struct {\n\t\tk string\n\t\tv string\n\t}\n\tkvs := make([]kv, 0, len(*m.Multimap))\n\tfor k, vs := range *m.Multimap {\n\t\tfor i := range vs {\n\t\t\tkvs = append(kvs, kv{k: k, v: vs[i]})\n\t\t}\n\t}\n\t// stable sort by keys, order of values should be preserved\n\tsort.SliceStable(kvs, func(i, j int) bool {\n\t\treturn kvs[i].k < kvs[j].k\n\t})\n\tpairs := make([]string, 0, len(kvs))\n\tfor i := range kvs {\n\t\tpairs = append(pairs, fmt.Sprintf(\"%s:%s\", kvs[i].k, kvs[i].v))\n\t}\n\treturn strings.Join(pairs, \",\")\n}\n\n// Type implements github.com/spf13/pflag.Value\nfunc (m *ColonSeparatedMultimapStringString) Type() string {\n\treturn \"colonSeparatedMultimapStringString\"\n}\n\n// Empty implements OmitEmpty\nfunc (m *ColonSeparatedMultimapStringString) Empty() bool {\n\treturn len(*m.Multimap) == 0\n}\n"
  },
  {
    "path": "vendor/k8s.io/component-base/cli/flag/configuration_map.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage flag\n\nimport (\n\t\"fmt\"\n\t\"sort\"\n\t\"strings\"\n)\n\ntype ConfigurationMap map[string]string\n\nfunc (m *ConfigurationMap) String() string {\n\tpairs := []string{}\n\tfor k, v := range *m {\n\t\tpairs = append(pairs, fmt.Sprintf(\"%s=%s\", k, v))\n\t}\n\tsort.Strings(pairs)\n\treturn strings.Join(pairs, \",\")\n}\n\nfunc (m *ConfigurationMap) Set(value string) error {\n\tfor _, s := range strings.Split(value, \",\") {\n\t\tif len(s) == 0 {\n\t\t\tcontinue\n\t\t}\n\t\tarr := strings.SplitN(s, \"=\", 2)\n\t\tif len(arr) == 2 {\n\t\t\t(*m)[strings.TrimSpace(arr[0])] = strings.TrimSpace(arr[1])\n\t\t} else {\n\t\t\t(*m)[strings.TrimSpace(arr[0])] = \"\"\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (*ConfigurationMap) Type() string {\n\treturn \"mapStringString\"\n}\n"
  },
  {
    "path": "vendor/k8s.io/component-base/cli/flag/flags.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage flag\n\nimport (\n\tgoflag \"flag\"\n\t\"strings\"\n\n\t\"github.com/spf13/pflag\"\n\t\"k8s.io/klog/v2\"\n)\n\nvar underscoreWarnings = make(map[string]struct{})\n\n// WordSepNormalizeFunc changes all flags that contain \"_\" separators\nfunc WordSepNormalizeFunc(f *pflag.FlagSet, name string) pflag.NormalizedName {\n\tif strings.Contains(name, \"_\") {\n\t\treturn pflag.NormalizedName(strings.Replace(name, \"_\", \"-\", -1))\n\t}\n\treturn pflag.NormalizedName(name)\n}\n\n// WarnWordSepNormalizeFunc changes and warns for flags that contain \"_\" separators\nfunc WarnWordSepNormalizeFunc(f *pflag.FlagSet, name string) pflag.NormalizedName {\n\tif strings.Contains(name, \"_\") {\n\t\tnname := strings.Replace(name, \"_\", \"-\", -1)\n\t\tif _, alreadyWarned := underscoreWarnings[name]; !alreadyWarned {\n\t\t\tklog.Warningf(\"using an underscore in a flag name is not supported. %s has been converted to %s.\", name, nname)\n\t\t\tunderscoreWarnings[name] = struct{}{}\n\t\t}\n\n\t\treturn pflag.NormalizedName(nname)\n\t}\n\treturn pflag.NormalizedName(name)\n}\n\n// InitFlags normalizes, parses, then logs the command line flags\nfunc InitFlags() {\n\tpflag.CommandLine.SetNormalizeFunc(WordSepNormalizeFunc)\n\tpflag.CommandLine.AddGoFlagSet(goflag.CommandLine)\n\tpflag.Parse()\n\tpflag.VisitAll(func(flag *pflag.Flag) {\n\t\tklog.V(2).Infof(\"FLAG: --%s=%q\", flag.Name, flag.Value)\n\t})\n}\n\n// PrintFlags logs the flags in the flagset\nfunc PrintFlags(flags *pflag.FlagSet) {\n\tflags.VisitAll(func(flag *pflag.Flag) {\n\t\tklog.V(1).Infof(\"FLAG: --%s=%q\", flag.Name, flag.Value)\n\t})\n}\n"
  },
  {
    "path": "vendor/k8s.io/component-base/cli/flag/langle_separated_map_string_string.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage flag\n\nimport (\n\t\"fmt\"\n\t\"sort\"\n\t\"strings\"\n)\n\n// LangleSeparatedMapStringString can be set from the command line with the format `--flag \"string<string\"`.\n// Multiple comma-separated key-value pairs in a single invocation are supported. For example: `--flag \"a<foo,b<bar\"`.\n// Multiple flag invocations are supported. For example: `--flag \"a<foo\" --flag \"b<foo\"`.\ntype LangleSeparatedMapStringString struct {\n\tMap         *map[string]string\n\tinitialized bool // set to true after first Set call\n}\n\n// NewLangleSeparatedMapStringString takes a pointer to a map[string]string and returns the\n// LangleSeparatedMapStringString flag parsing shim for that map\nfunc NewLangleSeparatedMapStringString(m *map[string]string) *LangleSeparatedMapStringString {\n\treturn &LangleSeparatedMapStringString{Map: m}\n}\n\n// String implements github.com/spf13/pflag.Value\nfunc (m *LangleSeparatedMapStringString) String() string {\n\tpairs := []string{}\n\tfor k, v := range *m.Map {\n\t\tpairs = append(pairs, fmt.Sprintf(\"%s<%s\", k, v))\n\t}\n\tsort.Strings(pairs)\n\treturn strings.Join(pairs, \",\")\n}\n\n// Set implements github.com/spf13/pflag.Value\nfunc (m *LangleSeparatedMapStringString) Set(value string) error {\n\tif m.Map == nil {\n\t\treturn fmt.Errorf(\"no target (nil pointer to map[string]string)\")\n\t}\n\tif !m.initialized || *m.Map == nil {\n\t\t// clear default values, or allocate if no existing map\n\t\t*m.Map = make(map[string]string)\n\t\tm.initialized = true\n\t}\n\tfor _, s := range strings.Split(value, \",\") {\n\t\tif len(s) == 0 {\n\t\t\tcontinue\n\t\t}\n\t\tarr := strings.SplitN(s, \"<\", 2)\n\t\tif len(arr) != 2 {\n\t\t\treturn fmt.Errorf(\"malformed pair, expect string<string\")\n\t\t}\n\t\tk := strings.TrimSpace(arr[0])\n\t\tv := strings.TrimSpace(arr[1])\n\t\t(*m.Map)[k] = v\n\t}\n\treturn nil\n}\n\n// Type implements github.com/spf13/pflag.Value\nfunc (*LangleSeparatedMapStringString) Type() string {\n\treturn \"mapStringString\"\n}\n\n// Empty implements OmitEmpty\nfunc (m *LangleSeparatedMapStringString) Empty() bool {\n\treturn len(*m.Map) == 0\n}\n"
  },
  {
    "path": "vendor/k8s.io/component-base/cli/flag/map_string_bool.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage flag\n\nimport (\n\t\"fmt\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// MapStringBool can be set from the command line with the format `--flag \"string=bool\"`.\n// Multiple comma-separated key-value pairs in a single invocation are supported. For example: `--flag \"a=true,b=false\"`.\n// Multiple flag invocations are supported. For example: `--flag \"a=true\" --flag \"b=false\"`.\ntype MapStringBool struct {\n\tMap         *map[string]bool\n\tinitialized bool\n}\n\n// NewMapStringBool takes a pointer to a map[string]string and returns the\n// MapStringBool flag parsing shim for that map\nfunc NewMapStringBool(m *map[string]bool) *MapStringBool {\n\treturn &MapStringBool{Map: m}\n}\n\n// String implements github.com/spf13/pflag.Value\nfunc (m *MapStringBool) String() string {\n\tif m == nil || m.Map == nil {\n\t\treturn \"\"\n\t}\n\tpairs := []string{}\n\tfor k, v := range *m.Map {\n\t\tpairs = append(pairs, fmt.Sprintf(\"%s=%t\", k, v))\n\t}\n\tsort.Strings(pairs)\n\treturn strings.Join(pairs, \",\")\n}\n\n// Set implements github.com/spf13/pflag.Value\nfunc (m *MapStringBool) Set(value string) error {\n\tif m.Map == nil {\n\t\treturn fmt.Errorf(\"no target (nil pointer to map[string]bool)\")\n\t}\n\tif !m.initialized || *m.Map == nil {\n\t\t// clear default values, or allocate if no existing map\n\t\t*m.Map = make(map[string]bool)\n\t\tm.initialized = true\n\t}\n\tfor _, s := range strings.Split(value, \",\") {\n\t\tif len(s) == 0 {\n\t\t\tcontinue\n\t\t}\n\t\tarr := strings.SplitN(s, \"=\", 2)\n\t\tif len(arr) != 2 {\n\t\t\treturn fmt.Errorf(\"malformed pair, expect string=bool\")\n\t\t}\n\t\tk := strings.TrimSpace(arr[0])\n\t\tv := strings.TrimSpace(arr[1])\n\t\tboolValue, err := strconv.ParseBool(v)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"invalid value of %s: %s, err: %v\", k, v, err)\n\t\t}\n\t\t(*m.Map)[k] = boolValue\n\t}\n\treturn nil\n}\n\n// Type implements github.com/spf13/pflag.Value\nfunc (*MapStringBool) Type() string {\n\treturn \"mapStringBool\"\n}\n\n// Empty implements OmitEmpty\nfunc (m *MapStringBool) Empty() bool {\n\treturn len(*m.Map) == 0\n}\n"
  },
  {
    "path": "vendor/k8s.io/component-base/cli/flag/map_string_string.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage flag\n\nimport (\n\t\"fmt\"\n\t\"sort\"\n\t\"strings\"\n)\n\n// MapStringString can be set from the command line with the format `--flag \"string=string\"`.\n// Multiple flag invocations are supported. For example: `--flag \"a=foo\" --flag \"b=bar\"`. If this is desired\n// to be the only type invocation `NoSplit` should be set to true.\n// Multiple comma-separated key-value pairs in a single invocation are supported if `NoSplit`\n// is set to false. For example: `--flag \"a=foo,b=bar\"`.\ntype MapStringString struct {\n\tMap         *map[string]string\n\tinitialized bool\n\tNoSplit     bool\n}\n\n// NewMapStringString takes a pointer to a map[string]string and returns the\n// MapStringString flag parsing shim for that map\nfunc NewMapStringString(m *map[string]string) *MapStringString {\n\treturn &MapStringString{Map: m}\n}\n\n// NewMapStringString takes a pointer to a map[string]string and sets `NoSplit`\n// value to `true` and returns the MapStringString flag parsing shim for that map\nfunc NewMapStringStringNoSplit(m *map[string]string) *MapStringString {\n\treturn &MapStringString{\n\t\tMap:     m,\n\t\tNoSplit: true,\n\t}\n}\n\n// String implements github.com/spf13/pflag.Value\nfunc (m *MapStringString) String() string {\n\tif m == nil || m.Map == nil {\n\t\treturn \"\"\n\t}\n\tpairs := []string{}\n\tfor k, v := range *m.Map {\n\t\tpairs = append(pairs, fmt.Sprintf(\"%s=%s\", k, v))\n\t}\n\tsort.Strings(pairs)\n\treturn strings.Join(pairs, \",\")\n}\n\n// Set implements github.com/spf13/pflag.Value\nfunc (m *MapStringString) Set(value string) error {\n\tif m.Map == nil {\n\t\treturn fmt.Errorf(\"no target (nil pointer to map[string]string)\")\n\t}\n\tif !m.initialized || *m.Map == nil {\n\t\t// clear default values, or allocate if no existing map\n\t\t*m.Map = make(map[string]string)\n\t\tm.initialized = true\n\t}\n\n\t// account for comma-separated key-value pairs in a single invocation\n\tif !m.NoSplit {\n\t\tfor _, s := range strings.Split(value, \",\") {\n\t\t\tif len(s) == 0 {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tarr := strings.SplitN(s, \"=\", 2)\n\t\t\tif len(arr) != 2 {\n\t\t\t\treturn fmt.Errorf(\"malformed pair, expect string=string\")\n\t\t\t}\n\t\t\tk := strings.TrimSpace(arr[0])\n\t\t\tv := strings.TrimSpace(arr[1])\n\t\t\t(*m.Map)[k] = v\n\t\t}\n\t\treturn nil\n\t}\n\n\t// account for only one key-value pair in a single invocation\n\tarr := strings.SplitN(value, \"=\", 2)\n\tif len(arr) != 2 {\n\t\treturn fmt.Errorf(\"malformed pair, expect string=string\")\n\t}\n\tk := strings.TrimSpace(arr[0])\n\tv := strings.TrimSpace(arr[1])\n\t(*m.Map)[k] = v\n\treturn nil\n\n}\n\n// Type implements github.com/spf13/pflag.Value\nfunc (*MapStringString) Type() string {\n\treturn \"mapStringString\"\n}\n\n// Empty implements OmitEmpty\nfunc (m *MapStringString) Empty() bool {\n\treturn len(*m.Map) == 0\n}\n"
  },
  {
    "path": "vendor/k8s.io/component-base/cli/flag/namedcertkey_flag.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage flag\n\nimport (\n\t\"errors\"\n\t\"flag\"\n\t\"strings\"\n)\n\n// NamedCertKey is a flag value parsing \"certfile,keyfile\" and \"certfile,keyfile:name,name,name\".\ntype NamedCertKey struct {\n\tNames             []string\n\tCertFile, KeyFile string\n}\n\nvar _ flag.Value = &NamedCertKey{}\n\nfunc (nkc *NamedCertKey) String() string {\n\ts := nkc.CertFile + \",\" + nkc.KeyFile\n\tif len(nkc.Names) > 0 {\n\t\ts = s + \":\" + strings.Join(nkc.Names, \",\")\n\t}\n\treturn s\n}\n\nfunc (nkc *NamedCertKey) Set(value string) error {\n\tcs := strings.SplitN(value, \":\", 2)\n\tvar keycert string\n\tif len(cs) == 2 {\n\t\tvar names string\n\t\tkeycert, names = strings.TrimSpace(cs[0]), strings.TrimSpace(cs[1])\n\t\tif names == \"\" {\n\t\t\treturn errors.New(\"empty names list is not allowed\")\n\t\t}\n\t\tnkc.Names = nil\n\t\tfor _, name := range strings.Split(names, \",\") {\n\t\t\tnkc.Names = append(nkc.Names, strings.TrimSpace(name))\n\t\t}\n\t} else {\n\t\tnkc.Names = nil\n\t\tkeycert = strings.TrimSpace(cs[0])\n\t}\n\tcs = strings.Split(keycert, \",\")\n\tif len(cs) != 2 {\n\t\treturn errors.New(\"expected comma separated certificate and key file paths\")\n\t}\n\tnkc.CertFile = strings.TrimSpace(cs[0])\n\tnkc.KeyFile = strings.TrimSpace(cs[1])\n\treturn nil\n}\n\nfunc (*NamedCertKey) Type() string {\n\treturn \"namedCertKey\"\n}\n\n// NamedCertKeyArray is a flag value parsing NamedCertKeys, each passed with its own\n// flag instance (in contrast to comma separated slices).\ntype NamedCertKeyArray struct {\n\tvalue   *[]NamedCertKey\n\tchanged bool\n}\n\nvar _ flag.Value = &NamedCertKeyArray{}\n\n// NewNamedKeyCertArray creates a new NamedCertKeyArray with the internal value\n// pointing to p.\nfunc NewNamedCertKeyArray(p *[]NamedCertKey) *NamedCertKeyArray {\n\treturn &NamedCertKeyArray{\n\t\tvalue: p,\n\t}\n}\n\nfunc (a *NamedCertKeyArray) Set(val string) error {\n\tnkc := NamedCertKey{}\n\terr := nkc.Set(val)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif !a.changed {\n\t\t*a.value = []NamedCertKey{nkc}\n\t\ta.changed = true\n\t} else {\n\t\t*a.value = append(*a.value, nkc)\n\t}\n\treturn nil\n}\n\nfunc (a *NamedCertKeyArray) Type() string {\n\treturn \"namedCertKey\"\n}\n\nfunc (a *NamedCertKeyArray) String() string {\n\tnkcs := make([]string, 0, len(*a.value))\n\tfor i := range *a.value {\n\t\tnkcs = append(nkcs, (*a.value)[i].String())\n\t}\n\treturn \"[\" + strings.Join(nkcs, \";\") + \"]\"\n}\n"
  },
  {
    "path": "vendor/k8s.io/component-base/cli/flag/noop.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage flag\n\nimport (\n\tgoflag \"flag\"\n\t\"github.com/spf13/pflag\"\n)\n\n// NoOp implements goflag.Value and plfag.Value,\n// but has a noop Set implementation\ntype NoOp struct{}\n\nvar _ goflag.Value = NoOp{}\nvar _ pflag.Value = NoOp{}\n\nfunc (NoOp) String() string {\n\treturn \"\"\n}\n\nfunc (NoOp) Set(val string) error {\n\treturn nil\n}\n\nfunc (NoOp) Type() string {\n\treturn \"NoOp\"\n}\n"
  },
  {
    "path": "vendor/k8s.io/component-base/cli/flag/omitempty.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage flag\n\n// OmitEmpty is an interface for flags to report whether their underlying value\n// is \"empty.\" If a flag implements OmitEmpty and returns true for a call to Empty(),\n// it is assumed that flag may be omitted from the command line.\ntype OmitEmpty interface {\n\tEmpty() bool\n}\n"
  },
  {
    "path": "vendor/k8s.io/component-base/cli/flag/sectioned.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage flag\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"strings\"\n\n\t\"github.com/spf13/cobra\"\n\t\"github.com/spf13/pflag\"\n)\n\nconst (\n\tusageFmt = \"Usage:\\n  %s\\n\"\n)\n\n// NamedFlagSets stores named flag sets in the order of calling FlagSet.\ntype NamedFlagSets struct {\n\t// Order is an ordered list of flag set names.\n\tOrder []string\n\t// FlagSets stores the flag sets by name.\n\tFlagSets map[string]*pflag.FlagSet\n\t// NormalizeNameFunc is the normalize function which used to initialize FlagSets created by NamedFlagSets.\n\tNormalizeNameFunc func(f *pflag.FlagSet, name string) pflag.NormalizedName\n}\n\n// FlagSet returns the flag set with the given name and adds it to the\n// ordered name list if it is not in there yet.\nfunc (nfs *NamedFlagSets) FlagSet(name string) *pflag.FlagSet {\n\tif nfs.FlagSets == nil {\n\t\tnfs.FlagSets = map[string]*pflag.FlagSet{}\n\t}\n\tif _, ok := nfs.FlagSets[name]; !ok {\n\t\tflagSet := pflag.NewFlagSet(name, pflag.ExitOnError)\n\t\tflagSet.SetNormalizeFunc(pflag.CommandLine.GetNormalizeFunc())\n\t\tif nfs.NormalizeNameFunc != nil {\n\t\t\tflagSet.SetNormalizeFunc(nfs.NormalizeNameFunc)\n\t\t}\n\t\tnfs.FlagSets[name] = flagSet\n\t\tnfs.Order = append(nfs.Order, name)\n\t}\n\treturn nfs.FlagSets[name]\n}\n\n// PrintSections prints the given names flag sets in sections, with the maximal given column number.\n// If cols is zero, lines are not wrapped.\nfunc PrintSections(w io.Writer, fss NamedFlagSets, cols int) {\n\tfor _, name := range fss.Order {\n\t\tfs := fss.FlagSets[name]\n\t\tif !fs.HasFlags() {\n\t\t\tcontinue\n\t\t}\n\n\t\twideFS := pflag.NewFlagSet(\"\", pflag.ExitOnError)\n\t\twideFS.AddFlagSet(fs)\n\n\t\tvar zzz string\n\t\tif cols > 24 {\n\t\t\tzzz = strings.Repeat(\"z\", cols-24)\n\t\t\twideFS.Int(zzz, 0, strings.Repeat(\"z\", cols-24))\n\t\t}\n\n\t\tvar buf bytes.Buffer\n\t\tfmt.Fprintf(&buf, \"\\n%s flags:\\n\\n%s\", strings.ToUpper(name[:1])+name[1:], wideFS.FlagUsagesWrapped(cols))\n\n\t\tif cols > 24 {\n\t\t\ti := strings.Index(buf.String(), zzz)\n\t\t\tlines := strings.Split(buf.String()[:i], \"\\n\")\n\t\t\tfmt.Fprint(w, strings.Join(lines[:len(lines)-1], \"\\n\"))\n\t\t\tfmt.Fprintln(w)\n\t\t} else {\n\t\t\tfmt.Fprint(w, buf.String())\n\t\t}\n\t}\n}\n\n// SetUsageAndHelpFunc set both usage and help function.\n// Print the flag sets we need instead of all of them.\nfunc SetUsageAndHelpFunc(cmd *cobra.Command, fss NamedFlagSets, cols int) {\n\tcmd.SetUsageFunc(func(cmd *cobra.Command) error {\n\t\tfmt.Fprintf(cmd.OutOrStderr(), usageFmt, cmd.UseLine())\n\t\tPrintSections(cmd.OutOrStderr(), fss, cols)\n\t\treturn nil\n\t})\n\tcmd.SetHelpFunc(func(cmd *cobra.Command, args []string) {\n\t\tfmt.Fprintf(cmd.OutOrStdout(), \"%s\\n\\n\"+usageFmt, cmd.Long, cmd.UseLine())\n\t\tPrintSections(cmd.OutOrStdout(), fss, cols)\n\t})\n}\n"
  },
  {
    "path": "vendor/k8s.io/component-base/cli/flag/string_flag.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage flag\n\n// StringFlag is a string flag compatible with flags and pflags that keeps track of whether it had a value supplied or not.\ntype StringFlag struct {\n\t// If Set has been invoked this value is true\n\tprovided bool\n\t// The exact value provided on the flag\n\tvalue string\n}\n\nfunc NewStringFlag(defaultVal string) StringFlag {\n\treturn StringFlag{value: defaultVal}\n}\n\nfunc (f *StringFlag) Default(value string) {\n\tf.value = value\n}\n\nfunc (f StringFlag) String() string {\n\treturn f.value\n}\n\nfunc (f StringFlag) Value() string {\n\treturn f.value\n}\n\nfunc (f *StringFlag) Set(value string) error {\n\tf.value = value\n\tf.provided = true\n\n\treturn nil\n}\n\nfunc (f StringFlag) Provided() bool {\n\treturn f.provided\n}\n\nfunc (f *StringFlag) Type() string {\n\treturn \"string\"\n}\n"
  },
  {
    "path": "vendor/k8s.io/component-base/cli/flag/string_slice_flag.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage flag\n\nimport (\n\tgoflag \"flag\"\n\t\"fmt\"\n\t\"strings\"\n\n\t\"github.com/spf13/pflag\"\n)\n\n// StringSlice implements goflag.Value and plfag.Value,\n// and allows set to be invoked repeatedly to accumulate values.\ntype StringSlice struct {\n\tvalue   *[]string\n\tchanged bool\n}\n\nfunc NewStringSlice(s *[]string) *StringSlice {\n\treturn &StringSlice{value: s}\n}\n\nvar _ goflag.Value = &StringSlice{}\nvar _ pflag.Value = &StringSlice{}\n\nfunc (s *StringSlice) String() string {\n\tif s == nil || s.value == nil {\n\t\treturn \"\"\n\t}\n\treturn strings.Join(*s.value, \" \")\n}\n\nfunc (s *StringSlice) Set(val string) error {\n\tif s.value == nil {\n\t\treturn fmt.Errorf(\"no target (nil pointer to []string)\")\n\t}\n\tif !s.changed {\n\t\t*s.value = make([]string, 0)\n\t}\n\t*s.value = append(*s.value, val)\n\ts.changed = true\n\treturn nil\n}\n\nfunc (StringSlice) Type() string {\n\treturn \"sliceString\"\n}\n"
  },
  {
    "path": "vendor/k8s.io/component-base/cli/flag/tristate.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage flag\n\nimport (\n\t\"fmt\"\n\t\"strconv\"\n)\n\n// Tristate is a flag compatible with flags and pflags that\n// keeps track of whether it had a value supplied or not.\ntype Tristate int\n\nconst (\n\tUnset Tristate = iota // 0\n\tTrue\n\tFalse\n)\n\nfunc (f *Tristate) Default(value bool) {\n\t*f = triFromBool(value)\n}\n\nfunc (f Tristate) String() string {\n\tb := boolFromTri(f)\n\treturn fmt.Sprintf(\"%t\", b)\n}\n\nfunc (f Tristate) Value() bool {\n\tb := boolFromTri(f)\n\treturn b\n}\n\nfunc (f *Tristate) Set(value string) error {\n\tboolVal, err := strconv.ParseBool(value)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t*f = triFromBool(boolVal)\n\treturn nil\n}\n\nfunc (f Tristate) Provided() bool {\n\tif f != Unset {\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (f *Tristate) Type() string {\n\treturn \"tristate\"\n}\n\nfunc boolFromTri(t Tristate) bool {\n\tif t == True {\n\t\treturn true\n\t} else {\n\t\treturn false\n\t}\n}\n\nfunc triFromBool(b bool) Tristate {\n\tif b {\n\t\treturn True\n\t} else {\n\t\treturn False\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/.gitignore",
    "content": "# OSX leaves these everywhere on SMB shares\n._*\n\n# OSX trash\n.DS_Store\n\n# Eclipse files\n.classpath\n.project\n.settings/**\n\n# Files generated by JetBrains IDEs, e.g. IntelliJ IDEA\n.idea/\n*.iml\n\n# Vscode files\n.vscode\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/.golangci.yaml",
    "content": "linters:\n  disable-all: true\n  enable: # sorted alphabetical\n    - gofmt\n    - misspell\n    - revive\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/CONTRIBUTING.md",
    "content": "# Contributing Guidelines\n\nWelcome to Kubernetes. We are excited about the prospect of you joining our [community](https://github.com/kubernetes/community)! The Kubernetes community abides by the CNCF [code of conduct](code-of-conduct.md). Here is an excerpt:\n\n_As contributors and maintainers of this project, and in the interest of fostering an open and welcoming community, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities._\n\n## Getting Started\n\nWe have full documentation on how to get started contributing here:\n\n- [Contributor License Agreement](https://git.k8s.io/community/CLA.md) Kubernetes projects require that you sign a Contributor License Agreement (CLA) before we can accept your pull requests\n- [Kubernetes Contributor Guide](http://git.k8s.io/community/contributors/guide) - Main contributor documentation, or you can just jump directly to the [contributing section](http://git.k8s.io/community/contributors/guide#contributing)\n- [Contributor Cheat Sheet](https://git.k8s.io/community/contributors/guide/contributor-cheatsheet) - Common resources for existing developers\n\n## Mentorship\n\n- [Mentoring Initiatives](https://git.k8s.io/community/mentoring) - We have a diverse set of mentorship programs available that are always looking for volunteers!\n\n## Contact Information\n\n- [Slack](https://kubernetes.slack.com/messages/sig-architecture)\n- [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-architecture)\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/LICENSE",
    "content": "Apache License\nVersion 2.0, January 2004\nhttp://www.apache.org/licenses/\n\nTERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n1. Definitions.\n\n\"License\" shall mean the terms and conditions for use, reproduction, and\ndistribution as defined by Sections 1 through 9 of this document.\n\n\"Licensor\" shall mean the copyright owner or entity authorized by the copyright\nowner that is granting the License.\n\n\"Legal Entity\" shall mean the union of the acting entity and all other entities\nthat control, are controlled by, or are under common control with that entity.\nFor the purposes of this definition, \"control\" means (i) the power, direct or\nindirect, to cause the direction or management of such entity, whether by\ncontract or otherwise, or (ii) ownership of fifty percent (50%) or more of the\noutstanding shares, or (iii) beneficial ownership of such entity.\n\n\"You\" (or \"Your\") shall mean an individual or Legal Entity exercising\npermissions granted by this License.\n\n\"Source\" form shall mean the preferred form for making modifications, including\nbut not limited to software source code, documentation source, and configuration\nfiles.\n\n\"Object\" form shall mean any form resulting from mechanical transformation or\ntranslation of a Source form, including but not limited to compiled object code,\ngenerated documentation, and conversions to other media types.\n\n\"Work\" shall mean the work of authorship, whether in Source or Object form, made\navailable under the License, as indicated by a copyright notice that is included\nin or attached to the work (an example is provided in the Appendix below).\n\n\"Derivative Works\" shall mean any work, whether in Source or Object form, that\nis based on (or derived from) the Work and for which the editorial revisions,\nannotations, elaborations, or other modifications represent, as a whole, an\noriginal work of authorship. For the purposes of this License, Derivative Works\nshall not include works that remain separable from, or merely link (or bind by\nname) to the interfaces of, the Work and Derivative Works thereof.\n\n\"Contribution\" shall mean any work of authorship, including the original version\nof the Work and any modifications or additions to that Work or Derivative Works\nthereof, that is intentionally submitted to Licensor for inclusion in the Work\nby the copyright owner or by an individual or Legal Entity authorized to submit\non behalf of the copyright owner. For the purposes of this definition,\n\"submitted\" means any form of electronic, verbal, or written communication sent\nto the Licensor or its representatives, including but not limited to\ncommunication on electronic mailing lists, source code control systems, and\nissue tracking systems that are managed by, or on behalf of, the Licensor for\nthe purpose of discussing and improving the Work, but excluding communication\nthat is conspicuously marked or otherwise designated in writing by the copyright\nowner as \"Not a Contribution.\"\n\n\"Contributor\" shall mean Licensor and any individual or Legal Entity on behalf\nof whom a Contribution has been received by Licensor and subsequently\nincorporated within the Work.\n\n2. Grant of Copyright License.\n\nSubject to the terms and conditions of this License, each Contributor hereby\ngrants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,\nirrevocable copyright license to reproduce, prepare Derivative Works of,\npublicly display, publicly perform, sublicense, and distribute the Work and such\nDerivative Works in Source or Object form.\n\n3. Grant of Patent License.\n\nSubject to the terms and conditions of this License, each Contributor hereby\ngrants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,\nirrevocable (except as stated in this section) patent license to make, have\nmade, use, offer to sell, sell, import, and otherwise transfer the Work, where\nsuch license applies only to those patent claims licensable by such Contributor\nthat are necessarily infringed by their Contribution(s) alone or by combination\nof their Contribution(s) with the Work to which such Contribution(s) was\nsubmitted. If You institute patent litigation against any entity (including a\ncross-claim or counterclaim in a lawsuit) alleging that the Work or a\nContribution incorporated within the Work constitutes direct or contributory\npatent infringement, then any patent licenses granted to You under this License\nfor that Work shall terminate as of the date such litigation is filed.\n\n4. Redistribution.\n\nYou may reproduce and distribute copies of the Work or Derivative Works thereof\nin any medium, with or without modifications, and in Source or Object form,\nprovided that You meet the following conditions:\n\nYou must give any other recipients of the Work or Derivative Works a copy of\nthis License; and\nYou must cause any modified files to carry prominent notices stating that You\nchanged the files; and\nYou must retain, in the Source form of any Derivative Works that You distribute,\nall copyright, patent, trademark, and attribution notices from the Source form\nof the Work, excluding those notices that do not pertain to any part of the\nDerivative Works; and\nIf the Work includes a \"NOTICE\" text file as part of its distribution, then any\nDerivative Works that You distribute must include a readable copy of the\nattribution notices contained within such NOTICE file, excluding those notices\nthat do not pertain to any part of the Derivative Works, in at least one of the\nfollowing places: within a NOTICE text file distributed as part of the\nDerivative Works; within the Source form or documentation, if provided along\nwith the Derivative Works; or, within a display generated by the Derivative\nWorks, if and wherever such third-party notices normally appear. The contents of\nthe NOTICE file are for informational purposes only and do not modify the\nLicense. You may add Your own attribution notices within Derivative Works that\nYou distribute, alongside or as an addendum to the NOTICE text from the Work,\nprovided that such additional attribution notices cannot be construed as\nmodifying the License.\nYou may add Your own copyright statement to Your modifications and may provide\nadditional or different license terms and conditions for use, reproduction, or\ndistribution of Your modifications, or for any such Derivative Works as a whole,\nprovided Your use, reproduction, and distribution of the Work otherwise complies\nwith the conditions stated in this License.\n\n5. Submission of Contributions.\n\nUnless You explicitly state otherwise, any Contribution intentionally submitted\nfor inclusion in the Work by You to the Licensor shall be under the terms and\nconditions of this License, without any additional terms or conditions.\nNotwithstanding the above, nothing herein shall supersede or modify the terms of\nany separate license agreement you may have executed with Licensor regarding\nsuch Contributions.\n\n6. Trademarks.\n\nThis License does not grant permission to use the trade names, trademarks,\nservice marks, or product names of the Licensor, except as required for\nreasonable and customary use in describing the origin of the Work and\nreproducing the content of the NOTICE file.\n\n7. Disclaimer of Warranty.\n\nUnless required by applicable law or agreed to in writing, Licensor provides the\nWork (and each Contributor provides its Contributions) on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,\nincluding, without limitation, any warranties or conditions of TITLE,\nNON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are\nsolely responsible for determining the appropriateness of using or\nredistributing the Work and assume any risks associated with Your exercise of\npermissions under this License.\n\n8. Limitation of Liability.\n\nIn no event and under no legal theory, whether in tort (including negligence),\ncontract, or otherwise, unless required by applicable law (such as deliberate\nand grossly negligent acts) or agreed to in writing, shall any Contributor be\nliable to You for damages, including any direct, indirect, special, incidental,\nor consequential damages of any character arising as a result of this License or\nout of the use or inability to use the Work (including but not limited to\ndamages for loss of goodwill, work stoppage, computer failure or malfunction, or\nany and all other commercial damages or losses), even if such Contributor has\nbeen advised of the possibility of such damages.\n\n9. Accepting Warranty or Additional Liability.\n\nWhile redistributing the Work or Derivative Works thereof, You may choose to\noffer, and charge a fee for, acceptance of support, warranty, indemnity, or\nother liability obligations and/or rights consistent with this License. However,\nin accepting such obligations, You may act only on Your own behalf and on Your\nsole responsibility, not on behalf of any other Contributor, and only if You\nagree to indemnify, defend, and hold each Contributor harmless for any liability\nincurred by, or claims asserted against, such Contributor by reason of your\naccepting any such warranty or additional liability.\n\nEND OF TERMS AND CONDITIONS\n\nAPPENDIX: How to apply the Apache License to your work\n\nTo apply the Apache License to your work, attach the following boilerplate\nnotice, with the fields enclosed by brackets \"[]\" replaced with your own\nidentifying information. (Don't include the brackets!) The text should be\nenclosed in the appropriate comment syntax for the file format. We also\nrecommend that a file or class name and description of purpose be included on\nthe same \"printed page\" as the copyright notice for easier identification within\nthird-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/OWNERS",
    "content": "# See the OWNERS docs at https://go.k8s.io/owners\nreviewers:\n  - harshanarayana\n  - mengjiao-liu\n  - pohly\napprovers:\n  - dims\n  - pohly\n  - thockin\nemeritus_approvers:\n  - brancz\n  - justinsb\n  - lavalamp\n  - piosz\n  - serathius\n  - tallclair\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/README.md",
    "content": "klog\n====\n\nklog is a permanent fork of https://github.com/golang/glog.\n\n## Why was klog created?\n\nThe decision to create klog was one that wasn't made lightly, but it was necessary due to some\ndrawbacks that are present in [glog](https://github.com/golang/glog). Ultimately, the fork was created due to glog not being under active development; this can be seen in the glog README:\n\n> The code in this repo [...] is not itself under development\n\nThis makes us unable to solve many use cases without a fork. The factors that contributed to needing feature development are listed below:\n\n * `glog` [presents a lot \"gotchas\"](https://github.com/kubernetes/kubernetes/issues/61006) and introduces challenges in containerized environments, all of which aren't well documented.\n * `glog` doesn't provide an easy way to test logs, which detracts from the stability of software using it\n * A long term goal is to implement a logging interface that allows us to add context, change output format, etc.\n \nHistorical context is available here:\n\n * https://github.com/kubernetes/kubernetes/issues/61006\n * https://github.com/kubernetes/kubernetes/issues/70264\n * https://groups.google.com/forum/#!msg/kubernetes-sig-architecture/wCWiWf3Juzs/hXRVBH90CgAJ\n * https://groups.google.com/forum/#!msg/kubernetes-dev/7vnijOMhLS0/1oRiNtigBgAJ\n\n## Release versioning\n\nSemantic versioning is used in this repository. It contains several Go modules\nwith different levels of stability:\n- `k8s.io/klog/v2` - stable API, `vX.Y.Z` tags\n- `examples` - no stable API, no tags, no intention to ever stabilize\n\nExempt from the API stability guarantee are items (packages, functions, etc.)\nwhich are marked explicitly as `EXPERIMENTAL` in their docs comment. Those\nmay still change in incompatible ways or get removed entirely. This can only\nbe used for code that is used in tests to avoid situations where non-test\ncode from two different Kubernetes dependencies depends on incompatible\nreleases of klog because an experimental API was changed.\n\n----\n\nHow to use klog\n===============\n- Replace imports for `\"github.com/golang/glog\"` with `\"k8s.io/klog/v2\"`\n- Use `klog.InitFlags(nil)` explicitly for initializing global flags as we no longer use `init()` method to register the flags\n- You can now use `log_file` instead of `log_dir` for logging to a single file (See `examples/log_file/usage_log_file.go`)\n- If you want to redirect everything logged using klog somewhere else (say syslog!), you can use `klog.SetOutput()` method and supply a `io.Writer`. (See `examples/set_output/usage_set_output.go`)\n- For more logging conventions (See [Logging Conventions](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-instrumentation/logging.md))\n- See our documentation on [pkg.go.dev/k8s.io](https://pkg.go.dev/k8s.io/klog).\n\n**NOTE**: please use the newer go versions that support semantic import versioning in modules, ideally go 1.11.4 or greater.\n\n### Coexisting with klog/v2\n\nSee [this example](examples/coexist_klog_v1_and_v2/) to see how to coexist with both klog/v1 and klog/v2.\n\n### Coexisting with glog\nThis package can be used side by side with glog. [This example](examples/coexist_glog/coexist_glog.go) shows how to initialize and synchronize flags from the global `flag.CommandLine` FlagSet. In addition, the example makes use of stderr as combined output by setting `alsologtostderr` (or `logtostderr`) to `true`.\n\n## Community, discussion, contribution, and support\n\nLearn how to engage with the Kubernetes community on the [community page](http://kubernetes.io/community/).\n\nYou can reach the maintainers of this project at:\n\n- [Slack](https://kubernetes.slack.com/messages/klog)\n- [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-architecture)\n\n### Code of conduct\n\nParticipation in the Kubernetes community is governed by the [Kubernetes Code of Conduct](code-of-conduct.md).\n\n----\n\nglog\n====\n\nLeveled execution logs for Go.\n\nThis is an efficient pure Go implementation of leveled logs in the\nmanner of the open source C++ package\n\thttps://github.com/google/glog\n\nBy binding methods to booleans it is possible to use the log package\nwithout paying the expense of evaluating the arguments to the log.\nThrough the -vmodule flag, the package also provides fine-grained\ncontrol over logging at the file level.\n\nThe comment from glog.go introduces the ideas:\n\n\tPackage glog implements logging analogous to the Google-internal\n\tC++ INFO/ERROR/V setup.  It provides functions Info, Warning,\n\tError, Fatal, plus formatting variants such as Infof. It\n\talso provides V-style logging controlled by the -v and\n\t-vmodule=file=2 flags.\n\n\tBasic examples:\n\n\t\tglog.Info(\"Prepare to repel boarders\")\n\n\t\tglog.Fatalf(\"Initialization failed: %s\", err)\n\n\tSee the documentation of the V function for an explanation\n\tof these examples:\n\n\t\tif glog.V(2) {\n\t\t\tglog.Info(\"Starting transaction...\")\n\t\t}\n\n\t\tglog.V(2).Infoln(\"Processed\", nItems, \"elements\")\n\n\nThe repository contains an open source version of the log package\nused inside Google. The master copy of the source lives inside\nGoogle, not here. The code in this repo is for export only and is not itself\nunder development. Feature requests will be ignored.\n\nSend bug reports to golang-nuts@googlegroups.com.\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/RELEASE.md",
    "content": "# Release Process\n\nThe `klog` is released on an as-needed basis. The process is as follows:\n\n1. An issue is proposing a new release with a changelog since the last release\n1. All [OWNERS](OWNERS) must LGTM this release\n1. An OWNER runs `git tag -s $VERSION` and inserts the changelog and pushes the tag with `git push $VERSION`\n1. The release issue is closed\n1. An announcement email is sent to `kubernetes-dev@googlegroups.com` with the subject `[ANNOUNCE] kubernetes-template-project $VERSION is released`\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/SECURITY.md",
    "content": "# Security Policy\n\n## Security Announcements\n\nJoin the [kubernetes-security-announce] group for security and vulnerability announcements.\n\nYou can also subscribe to an RSS feed of the above using [this link][kubernetes-security-announce-rss].\n\n## Reporting a Vulnerability\n\nInstructions for reporting a vulnerability can be found on the\n[Kubernetes Security and Disclosure Information] page.\n\n## Supported Versions\n\nInformation about supported Kubernetes versions can be found on the\n[Kubernetes version and version skew support policy] page on the Kubernetes website.\n\n[kubernetes-security-announce]: https://groups.google.com/forum/#!forum/kubernetes-security-announce\n[kubernetes-security-announce-rss]: https://groups.google.com/forum/feed/kubernetes-security-announce/msgs/rss_v2_0.xml?num=50\n[Kubernetes version and version skew support policy]: https://kubernetes.io/docs/setup/release/version-skew-policy/#supported-versions\n[Kubernetes Security and Disclosure Information]: https://kubernetes.io/docs/reference/issues-security/security/#report-a-vulnerability\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/SECURITY_CONTACTS",
    "content": "# Defined below are the security contacts for this repo.\n#\n# They are the contact point for the Product Security Committee to reach out\n# to for triaging and handling of incoming issues.\n#\n# The below names agree to abide by the\n# [Embargo Policy](https://git.k8s.io/security/private-distributors-list.md#embargo-policy)\n# and will be removed and replaced if they violate that agreement.\n#\n# DO NOT REPORT SECURITY VULNERABILITIES DIRECTLY TO THESE NAMES, FOLLOW THE\n# INSTRUCTIONS AT https://kubernetes.io/security/\n\ndims\nthockin\njustinsb\ntallclair\npiosz\nbrancz\nDirectXMan12\nlavalamp\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/code-of-conduct.md",
    "content": "# Kubernetes Community Code of Conduct\n\nPlease refer to our [Kubernetes Community Code of Conduct](https://git.k8s.io/community/code-of-conduct.md)\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/contextual.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage klog\n\nimport (\n\t\"context\"\n\n\t\"github.com/go-logr/logr\"\n)\n\n// This file provides the implementation of\n// https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/1602-structured-logging\n//\n// SetLogger and ClearLogger were originally added to klog.go and got moved\n// here. Contextual logging adds a way to retrieve a Logger for direct logging\n// without the logging calls in klog.go.\n//\n// The global variables are expected to be modified only during sequential\n// parts of a program (init, serial tests) and therefore are not protected by\n// mutex locking.\n\nvar (\n\t// klogLogger is used as fallback for logging through the normal klog code\n\t// when no Logger is set.\n\tklogLogger logr.Logger = logr.New(&klogger{})\n)\n\n// SetLogger sets a Logger implementation that will be used as backing\n// implementation of the traditional klog log calls. klog will do its own\n// verbosity checks before calling logger.V().Info. logger.Error is always\n// called, regardless of the klog verbosity settings.\n//\n// If set, all log lines will be suppressed from the regular output, and\n// redirected to the logr implementation.\n// Use as:\n//\n//\t...\n//\tklog.SetLogger(zapr.NewLogger(zapLog))\n//\n// To remove a backing logr implemention, use ClearLogger. Setting an\n// empty logger with SetLogger(logr.Logger{}) does not work.\n//\n// Modifying the logger is not thread-safe and should be done while no other\n// goroutines invoke log calls, usually during program initialization.\nfunc SetLogger(logger logr.Logger) {\n\tSetLoggerWithOptions(logger)\n}\n\n// SetLoggerWithOptions is a more flexible version of SetLogger. Without\n// additional options, it behaves exactly like SetLogger. By passing\n// ContextualLogger(true) as option, it can be used to set a logger that then\n// will also get called directly by applications which retrieve it via\n// FromContext, Background, or TODO.\n//\n// Supporting direct calls is recommended because it avoids the overhead of\n// routing log entries through klogr into klog and then into the actual Logger\n// backend.\nfunc SetLoggerWithOptions(logger logr.Logger, opts ...LoggerOption) {\n\tlogging.loggerOptions = loggerOptions{}\n\tfor _, opt := range opts {\n\t\topt(&logging.loggerOptions)\n\t}\n\tlogging.logger = &logWriter{\n\t\tLogger:          logger,\n\t\twriteKlogBuffer: logging.loggerOptions.writeKlogBuffer,\n\t}\n}\n\n// ContextualLogger determines whether the logger passed to\n// SetLoggerWithOptions may also get called directly. Such a logger cannot rely\n// on verbosity checking in klog.\nfunc ContextualLogger(enabled bool) LoggerOption {\n\treturn func(o *loggerOptions) {\n\t\to.contextualLogger = enabled\n\t}\n}\n\n// FlushLogger provides a callback for flushing data buffered by the logger.\nfunc FlushLogger(flush func()) LoggerOption {\n\treturn func(o *loggerOptions) {\n\t\to.flush = flush\n\t}\n}\n\n// WriteKlogBuffer sets a callback that will be invoked by klog to write output\n// produced by non-structured log calls like Infof.\n//\n// The buffer will contain exactly the same data that klog normally would write\n// into its own output stream(s). In particular this includes the header, if\n// klog is configured to write one. The callback then can divert that data into\n// its own output streams. The buffer may or may not end in a line break.\n//\n// Without such a callback, klog will call the logger's Info or Error method\n// with just the message string (i.e. no header).\nfunc WriteKlogBuffer(write func([]byte)) LoggerOption {\n\treturn func(o *loggerOptions) {\n\t\to.writeKlogBuffer = write\n\t}\n}\n\n// LoggerOption implements the functional parameter paradigm for\n// SetLoggerWithOptions.\ntype LoggerOption func(o *loggerOptions)\n\ntype loggerOptions struct {\n\tcontextualLogger bool\n\tflush            func()\n\twriteKlogBuffer  func([]byte)\n}\n\n// logWriter combines a logger (always set) with a write callback (optional).\ntype logWriter struct {\n\tLogger\n\twriteKlogBuffer func([]byte)\n}\n\n// ClearLogger removes a backing Logger implementation if one was set earlier\n// with SetLogger.\n//\n// Modifying the logger is not thread-safe and should be done while no other\n// goroutines invoke log calls, usually during program initialization.\nfunc ClearLogger() {\n\tlogging.logger = nil\n\tlogging.loggerOptions = loggerOptions{}\n}\n\n// EnableContextualLogging controls whether contextual logging is enabled.\n// By default it is enabled. When disabled, FromContext avoids looking up\n// the logger in the context and always returns the global logger.\n// LoggerWithValues, LoggerWithName, and NewContext become no-ops\n// and return their input logger respectively context. This may be useful\n// to avoid the additional overhead for contextual logging.\n//\n// This must be called during initialization before goroutines are started.\nfunc EnableContextualLogging(enabled bool) {\n\tlogging.contextualLoggingEnabled = enabled\n}\n\n// FromContext retrieves a logger set by the caller or, if not set,\n// falls back to the program's global logger (a Logger instance or klog\n// itself).\nfunc FromContext(ctx context.Context) Logger {\n\tif logging.contextualLoggingEnabled {\n\t\tif logger, err := logr.FromContext(ctx); err == nil {\n\t\t\treturn logger\n\t\t}\n\t}\n\n\treturn Background()\n}\n\n// TODO can be used as a last resort by code that has no means of\n// receiving a logger from its caller. FromContext or an explicit logger\n// parameter should be used instead.\nfunc TODO() Logger {\n\treturn Background()\n}\n\n// Background retrieves the fallback logger. It should not be called before\n// that logger was initialized by the program and not by code that should\n// better receive a logger via its parameters. TODO can be used as a temporary\n// solution for such code.\nfunc Background() Logger {\n\tif logging.loggerOptions.contextualLogger {\n\t\t// Is non-nil because logging.loggerOptions.contextualLogger is\n\t\t// only true if a logger was set.\n\t\treturn logging.logger.Logger\n\t}\n\n\treturn klogLogger\n}\n\n// LoggerWithValues returns logger.WithValues(...kv) when\n// contextual logging is enabled, otherwise the logger.\nfunc LoggerWithValues(logger Logger, kv ...interface{}) Logger {\n\tif logging.contextualLoggingEnabled {\n\t\treturn logger.WithValues(kv...)\n\t}\n\treturn logger\n}\n\n// LoggerWithName returns logger.WithName(name) when contextual logging is\n// enabled, otherwise the logger.\nfunc LoggerWithName(logger Logger, name string) Logger {\n\tif logging.contextualLoggingEnabled {\n\t\treturn logger.WithName(name)\n\t}\n\treturn logger\n}\n\n// NewContext returns logr.NewContext(ctx, logger) when\n// contextual logging is enabled, otherwise ctx.\nfunc NewContext(ctx context.Context, logger Logger) context.Context {\n\tif logging.contextualLoggingEnabled {\n\t\treturn logr.NewContext(ctx, logger)\n\t}\n\treturn ctx\n}\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/contextual_slog.go",
    "content": "//go:build go1.21\n// +build go1.21\n\n/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage klog\n\nimport (\n\t\"log/slog\"\n\n\t\"github.com/go-logr/logr\"\n)\n\n// SetSlogLogger reconfigures klog to log through the slog logger. The logger must not be nil.\nfunc SetSlogLogger(logger *slog.Logger) {\n\tSetLoggerWithOptions(logr.FromSlogHandler(logger.Handler()), ContextualLogger(true))\n}\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/exit.go",
    "content": "// Go support for leveled logs, analogous to https://code.google.com/p/google-glog/\n//\n// Copyright 2013 Google Inc. All Rights Reserved.\n// Copyright 2022 The Kubernetes Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage klog\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"time\"\n)\n\nvar (\n\n\t// ExitFlushTimeout is the timeout that klog has traditionally used during\n\t// calls like Fatal or Exit when flushing log data right before exiting.\n\t// Applications that replace those calls and do not have some specific\n\t// requirements like \"exit immediately\" can use this value as parameter\n\t// for FlushAndExit.\n\t//\n\t// Can be set for testing purpose or to change the application's\n\t// default.\n\tExitFlushTimeout = 10 * time.Second\n\n\t// OsExit is the function called by FlushAndExit to terminate the program.\n\t//\n\t// Can be set for testing purpose or to change the application's\n\t// default behavior. Note that the function should not simply return\n\t// because callers of functions like Fatal will not expect that.\n\tOsExit = os.Exit\n)\n\n// FlushAndExit flushes log data for a certain amount of time and then calls\n// os.Exit. Combined with some logging call it provides a replacement for\n// traditional calls like Fatal or Exit.\nfunc FlushAndExit(flushTimeout time.Duration, exitCode int) {\n\ttimeoutFlush(flushTimeout)\n\tOsExit(exitCode)\n}\n\n// timeoutFlush calls Flush and returns when it completes or after timeout\n// elapses, whichever happens first.  This is needed because the hooks invoked\n// by Flush may deadlock when klog.Fatal is called from a hook that holds\n// a lock. Flushing also might take too long.\nfunc timeoutFlush(timeout time.Duration) {\n\tdone := make(chan bool, 1)\n\tgo func() {\n\t\tFlush() // calls logging.lockAndFlushAll()\n\t\tdone <- true\n\t}()\n\tselect {\n\tcase <-done:\n\tcase <-time.After(timeout):\n\t\tfmt.Fprintln(os.Stderr, \"klog: Flush took longer than\", timeout)\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/format.go",
    "content": "/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage klog\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"strings\"\n\n\t\"github.com/go-logr/logr\"\n)\n\n// Format wraps a value of an arbitrary type and implement fmt.Stringer and\n// logr.Marshaler for them. Stringer returns pretty-printed JSON. MarshalLog\n// returns the original value with a type that has no special methods, in\n// particular no MarshalLog or MarshalJSON.\n//\n// Wrapping values like that is useful when the value has a broken\n// implementation of these special functions (for example, a type which\n// inherits String from TypeMeta, but then doesn't re-implement String) or the\n// implementation produces output that is less readable or unstructured (for\n// example, the generated String functions for Kubernetes API types).\nfunc Format(obj interface{}) interface{} {\n\treturn formatAny{Object: obj}\n}\n\ntype formatAny struct {\n\tObject interface{}\n}\n\nfunc (f formatAny) String() string {\n\tvar buffer strings.Builder\n\tencoder := json.NewEncoder(&buffer)\n\tencoder.SetIndent(\"\", \"  \")\n\tif err := encoder.Encode(&f.Object); err != nil {\n\t\treturn fmt.Sprintf(\"error marshaling %T to JSON: %v\", f, err)\n\t}\n\treturn buffer.String()\n}\n\nfunc (f formatAny) MarshalLog() interface{} {\n\t// Returning a pointer to a pointer ensures that zapr doesn't find a\n\t// fmt.Stringer or logr.Marshaler when it checks the type of the\n\t// value. It then falls back to reflection, which dumps the value being\n\t// pointed to (JSON doesn't have pointers).\n\tptr := &f.Object\n\treturn &ptr\n}\n\nvar _ fmt.Stringer = formatAny{}\nvar _ logr.Marshaler = formatAny{}\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/imports.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage klog\n\nimport (\n\t\"github.com/go-logr/logr\"\n)\n\n// The reason for providing these aliases is to allow code to work with logr\n// without directly importing it.\n\n// Logger in this package is exactly the same as logr.Logger.\ntype Logger = logr.Logger\n\n// LogSink in this package is exactly the same as logr.LogSink.\ntype LogSink = logr.LogSink\n\n// Runtimeinfo in this package is exactly the same as logr.RuntimeInfo.\ntype RuntimeInfo = logr.RuntimeInfo\n\nvar (\n\t// New is an alias for logr.New.\n\tNew = logr.New\n)\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/internal/buffer/buffer.go",
    "content": "// Copyright 2013 Google Inc. All Rights Reserved.\n// Copyright 2022 The Kubernetes Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Package buffer provides a cache for byte.Buffer instances that can be reused\n// to avoid frequent allocation and deallocation. It also has utility code\n// for log header formatting that use these buffers.\npackage buffer\n\nimport (\n\t\"bytes\"\n\t\"os\"\n\t\"sync\"\n\t\"time\"\n\n\t\"k8s.io/klog/v2/internal/severity\"\n)\n\nvar (\n\t// Pid is inserted into log headers. Can be overridden for tests.\n\tPid = os.Getpid()\n\n\t// Time, if set, will be used instead of the actual current time.\n\tTime *time.Time\n)\n\n// Buffer holds a single byte.Buffer for reuse. The zero value is ready for\n// use. It also provides some helper methods for output formatting.\ntype Buffer struct {\n\tbytes.Buffer\n\tTmp [64]byte // temporary byte array for creating headers.\n}\n\nvar buffers = sync.Pool{\n\tNew: func() interface{} {\n\t\treturn new(Buffer)\n\t},\n}\n\n// GetBuffer returns a new, ready-to-use buffer.\nfunc GetBuffer() *Buffer {\n\tb := buffers.Get().(*Buffer)\n\tb.Reset()\n\treturn b\n}\n\n// PutBuffer returns a buffer to the free list.\nfunc PutBuffer(b *Buffer) {\n\tif b.Len() >= 256 {\n\t\t// Let big buffers die a natural death, without relying on\n\t\t// sync.Pool behavior. The documentation implies that items may\n\t\t// get deallocated while stored there (\"If the Pool holds the\n\t\t// only reference when this [= be removed automatically]\n\t\t// happens, the item might be deallocated.\"), but\n\t\t// https://github.com/golang/go/issues/23199 leans more towards\n\t\t// having such a size limit.\n\t\treturn\n\t}\n\n\tbuffers.Put(b)\n}\n\n// Some custom tiny helper functions to print the log header efficiently.\n\nconst digits = \"0123456789\"\n\n// twoDigits formats a zero-prefixed two-digit integer at buf.Tmp[i].\nfunc (buf *Buffer) twoDigits(i, d int) {\n\tbuf.Tmp[i+1] = digits[d%10]\n\td /= 10\n\tbuf.Tmp[i] = digits[d%10]\n}\n\n// nDigits formats an n-digit integer at buf.Tmp[i],\n// padding with pad on the left.\n// It assumes d >= 0.\nfunc (buf *Buffer) nDigits(n, i, d int, pad byte) {\n\tj := n - 1\n\tfor ; j >= 0 && d > 0; j-- {\n\t\tbuf.Tmp[i+j] = digits[d%10]\n\t\td /= 10\n\t}\n\tfor ; j >= 0; j-- {\n\t\tbuf.Tmp[i+j] = pad\n\t}\n}\n\n// someDigits formats a zero-prefixed variable-width integer at buf.Tmp[i].\nfunc (buf *Buffer) someDigits(i, d int) int {\n\t// Print into the top, then copy down. We know there's space for at least\n\t// a 10-digit number.\n\tj := len(buf.Tmp)\n\tfor {\n\t\tj--\n\t\tbuf.Tmp[j] = digits[d%10]\n\t\td /= 10\n\t\tif d == 0 {\n\t\t\tbreak\n\t\t}\n\t}\n\treturn copy(buf.Tmp[i:], buf.Tmp[j:])\n}\n\n// FormatHeader formats a log header using the provided file name and line number\n// and writes it into the buffer.\nfunc (buf *Buffer) FormatHeader(s severity.Severity, file string, line int, now time.Time) {\n\tif line < 0 {\n\t\tline = 0 // not a real line number, but acceptable to someDigits\n\t}\n\tif s > severity.FatalLog {\n\t\ts = severity.InfoLog // for safety.\n\t}\n\n\t// Avoid Fprintf, for speed. The format is so simple that we can do it quickly by hand.\n\t// It's worth about 3X. Fprintf is hard.\n\tif Time != nil {\n\t\tnow = *Time\n\t}\n\t_, month, day := now.Date()\n\thour, minute, second := now.Clock()\n\t// Lmmdd hh:mm:ss.uuuuuu threadid file:line]\n\tbuf.Tmp[0] = severity.Char[s]\n\tbuf.twoDigits(1, int(month))\n\tbuf.twoDigits(3, day)\n\tbuf.Tmp[5] = ' '\n\tbuf.twoDigits(6, hour)\n\tbuf.Tmp[8] = ':'\n\tbuf.twoDigits(9, minute)\n\tbuf.Tmp[11] = ':'\n\tbuf.twoDigits(12, second)\n\tbuf.Tmp[14] = '.'\n\tbuf.nDigits(6, 15, now.Nanosecond()/1000, '0')\n\tbuf.Tmp[21] = ' '\n\tbuf.nDigits(7, 22, Pid, ' ') // TODO: should be TID\n\tbuf.Tmp[29] = ' '\n\tbuf.Write(buf.Tmp[:30])\n\tbuf.WriteString(file)\n\tbuf.Tmp[0] = ':'\n\tn := buf.someDigits(1, line)\n\tbuf.Tmp[n+1] = ']'\n\tbuf.Tmp[n+2] = ' '\n\tbuf.Write(buf.Tmp[:n+3])\n}\n\n// SprintHeader formats a log header and returns a string. This is a simpler\n// version of FormatHeader for use in ktesting.\nfunc (buf *Buffer) SprintHeader(s severity.Severity, now time.Time) string {\n\tif s > severity.FatalLog {\n\t\ts = severity.InfoLog // for safety.\n\t}\n\n\t// Avoid Fprintf, for speed. The format is so simple that we can do it quickly by hand.\n\t// It's worth about 3X. Fprintf is hard.\n\tif Time != nil {\n\t\tnow = *Time\n\t}\n\t_, month, day := now.Date()\n\thour, minute, second := now.Clock()\n\t// Lmmdd hh:mm:ss.uuuuuu threadid file:line]\n\tbuf.Tmp[0] = severity.Char[s]\n\tbuf.twoDigits(1, int(month))\n\tbuf.twoDigits(3, day)\n\tbuf.Tmp[5] = ' '\n\tbuf.twoDigits(6, hour)\n\tbuf.Tmp[8] = ':'\n\tbuf.twoDigits(9, minute)\n\tbuf.Tmp[11] = ':'\n\tbuf.twoDigits(12, second)\n\tbuf.Tmp[14] = '.'\n\tbuf.nDigits(6, 15, now.Nanosecond()/1000, '0')\n\tbuf.Tmp[21] = ']'\n\treturn string(buf.Tmp[:22])\n}\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/internal/clock/README.md",
    "content": "# Clock\n\nThis package provides an interface for time-based operations.  It allows\nmocking time for testing.\n\nThis is a copy of k8s.io/utils/clock. We have to copy it to avoid a circular\ndependency (k8s.io/klog -> k8s.io/utils -> k8s.io/klog).\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/internal/clock/clock.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage clock\n\nimport \"time\"\n\n// PassiveClock allows for injecting fake or real clocks into code\n// that needs to read the current time but does not support scheduling\n// activity in the future.\ntype PassiveClock interface {\n\tNow() time.Time\n\tSince(time.Time) time.Duration\n}\n\n// Clock allows for injecting fake or real clocks into code that\n// needs to do arbitrary things based on time.\ntype Clock interface {\n\tPassiveClock\n\t// After returns the channel of a new Timer.\n\t// This method does not allow to free/GC the backing timer before it fires. Use\n\t// NewTimer instead.\n\tAfter(d time.Duration) <-chan time.Time\n\t// NewTimer returns a new Timer.\n\tNewTimer(d time.Duration) Timer\n\t// Sleep sleeps for the provided duration d.\n\t// Consider making the sleep interruptible by using 'select' on a context channel and a timer channel.\n\tSleep(d time.Duration)\n\t// NewTicker returns a new Ticker.\n\tNewTicker(time.Duration) Ticker\n}\n\n// WithDelayedExecution allows for injecting fake or real clocks into\n// code that needs to make use of AfterFunc functionality.\ntype WithDelayedExecution interface {\n\tClock\n\t// AfterFunc executes f in its own goroutine after waiting\n\t// for d duration and returns a Timer whose channel can be\n\t// closed by calling Stop() on the Timer.\n\tAfterFunc(d time.Duration, f func()) Timer\n}\n\n// WithTickerAndDelayedExecution allows for injecting fake or real clocks\n// into code that needs Ticker and AfterFunc functionality\ntype WithTickerAndDelayedExecution interface {\n\tClock\n\t// AfterFunc executes f in its own goroutine after waiting\n\t// for d duration and returns a Timer whose channel can be\n\t// closed by calling Stop() on the Timer.\n\tAfterFunc(d time.Duration, f func()) Timer\n}\n\n// Ticker defines the Ticker interface.\ntype Ticker interface {\n\tC() <-chan time.Time\n\tStop()\n}\n\nvar _ Clock = RealClock{}\n\n// RealClock really calls time.Now()\ntype RealClock struct{}\n\n// Now returns the current time.\nfunc (RealClock) Now() time.Time {\n\treturn time.Now()\n}\n\n// Since returns time since the specified timestamp.\nfunc (RealClock) Since(ts time.Time) time.Duration {\n\treturn time.Since(ts)\n}\n\n// After is the same as time.After(d).\n// This method does not allow to free/GC the backing timer before it fires. Use\n// NewTimer instead.\nfunc (RealClock) After(d time.Duration) <-chan time.Time {\n\treturn time.After(d)\n}\n\n// NewTimer is the same as time.NewTimer(d)\nfunc (RealClock) NewTimer(d time.Duration) Timer {\n\treturn &realTimer{\n\t\ttimer: time.NewTimer(d),\n\t}\n}\n\n// AfterFunc is the same as time.AfterFunc(d, f).\nfunc (RealClock) AfterFunc(d time.Duration, f func()) Timer {\n\treturn &realTimer{\n\t\ttimer: time.AfterFunc(d, f),\n\t}\n}\n\n// NewTicker returns a new Ticker.\nfunc (RealClock) NewTicker(d time.Duration) Ticker {\n\treturn &realTicker{\n\t\tticker: time.NewTicker(d),\n\t}\n}\n\n// Sleep is the same as time.Sleep(d)\n// Consider making the sleep interruptible by using 'select' on a context channel and a timer channel.\nfunc (RealClock) Sleep(d time.Duration) {\n\ttime.Sleep(d)\n}\n\n// Timer allows for injecting fake or real timers into code that\n// needs to do arbitrary things based on time.\ntype Timer interface {\n\tC() <-chan time.Time\n\tStop() bool\n\tReset(d time.Duration) bool\n}\n\nvar _ = Timer(&realTimer{})\n\n// realTimer is backed by an actual time.Timer.\ntype realTimer struct {\n\ttimer *time.Timer\n}\n\n// C returns the underlying timer's channel.\nfunc (r *realTimer) C() <-chan time.Time {\n\treturn r.timer.C\n}\n\n// Stop calls Stop() on the underlying timer.\nfunc (r *realTimer) Stop() bool {\n\treturn r.timer.Stop()\n}\n\n// Reset calls Reset() on the underlying timer.\nfunc (r *realTimer) Reset(d time.Duration) bool {\n\treturn r.timer.Reset(d)\n}\n\ntype realTicker struct {\n\tticker *time.Ticker\n}\n\nfunc (r *realTicker) C() <-chan time.Time {\n\treturn r.ticker.C\n}\n\nfunc (r *realTicker) Stop() {\n\tr.ticker.Stop()\n}\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/internal/dbg/dbg.go",
    "content": "// Go support for leveled logs, analogous to https://code.google.com/p/google-glog/\n//\n// Copyright 2013 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Package dbg provides some helper code for call traces.\npackage dbg\n\nimport (\n\t\"runtime\"\n)\n\n// Stacks is a wrapper for runtime.Stack that attempts to recover the data for\n// all goroutines or the calling one.\nfunc Stacks(all bool) []byte {\n\t// We don't know how big the traces are, so grow a few times if they don't fit. Start large, though.\n\tn := 10000\n\tif all {\n\t\tn = 100000\n\t}\n\tvar trace []byte\n\tfor i := 0; i < 5; i++ {\n\t\ttrace = make([]byte, n)\n\t\tnbytes := runtime.Stack(trace, all)\n\t\tif nbytes < len(trace) {\n\t\t\treturn trace[:nbytes]\n\t\t}\n\t\tn *= 2\n\t}\n\treturn trace\n}\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/internal/serialize/keyvalues.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage serialize\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"strconv\"\n\n\t\"github.com/go-logr/logr\"\n)\n\ntype textWriter interface {\n\tWriteText(*bytes.Buffer)\n}\n\n// WithValues implements LogSink.WithValues. The old key/value pairs are\n// assumed to be well-formed, the new ones are checked and padded if\n// necessary. It returns a new slice.\nfunc WithValues(oldKV, newKV []interface{}) []interface{} {\n\tif len(newKV) == 0 {\n\t\treturn oldKV\n\t}\n\tnewLen := len(oldKV) + len(newKV)\n\thasMissingValue := newLen%2 != 0\n\tif hasMissingValue {\n\t\tnewLen++\n\t}\n\t// The new LogSink must have its own slice.\n\tkv := make([]interface{}, 0, newLen)\n\tkv = append(kv, oldKV...)\n\tkv = append(kv, newKV...)\n\tif hasMissingValue {\n\t\tkv = append(kv, missingValue)\n\t}\n\treturn kv\n}\n\n// MergeKVs deduplicates elements provided in two key/value slices.\n//\n// Keys in each slice are expected to be unique, so duplicates can only occur\n// when the first and second slice contain the same key. When that happens, the\n// key/value pair from the second slice is used. The first slice must be well-formed\n// (= even key/value pairs). The second one may have a missing value, in which\n// case the special \"missing value\" is added to the result.\nfunc MergeKVs(first, second []interface{}) []interface{} {\n\tmaxLength := len(first) + (len(second)+1)/2*2\n\tif maxLength == 0 {\n\t\t// Nothing to do at all.\n\t\treturn nil\n\t}\n\n\tif len(first) == 0 && len(second)%2 == 0 {\n\t\t// Nothing to be overridden, second slice is well-formed\n\t\t// and can be used directly.\n\t\treturn second\n\t}\n\n\t// Determine which keys are in the second slice so that we can skip\n\t// them when iterating over the first one. The code intentionally\n\t// favors performance over completeness: we assume that keys are string\n\t// constants and thus compare equal when the string values are equal. A\n\t// string constant being overridden by, for example, a fmt.Stringer is\n\t// not handled.\n\toverrides := map[interface{}]bool{}\n\tfor i := 0; i < len(second); i += 2 {\n\t\toverrides[second[i]] = true\n\t}\n\tmerged := make([]interface{}, 0, maxLength)\n\tfor i := 0; i+1 < len(first); i += 2 {\n\t\tkey := first[i]\n\t\tif overrides[key] {\n\t\t\tcontinue\n\t\t}\n\t\tmerged = append(merged, key, first[i+1])\n\t}\n\tmerged = append(merged, second...)\n\tif len(merged)%2 != 0 {\n\t\tmerged = append(merged, missingValue)\n\t}\n\treturn merged\n}\n\ntype Formatter struct {\n\tAnyToStringHook AnyToStringFunc\n}\n\ntype AnyToStringFunc func(v interface{}) string\n\n// MergeKVsInto is a variant of MergeKVs which directly formats the key/value\n// pairs into a buffer.\nfunc (f Formatter) MergeAndFormatKVs(b *bytes.Buffer, first, second []interface{}) {\n\tif len(first) == 0 && len(second) == 0 {\n\t\t// Nothing to do at all.\n\t\treturn\n\t}\n\n\tif len(first) == 0 && len(second)%2 == 0 {\n\t\t// Nothing to be overridden, second slice is well-formed\n\t\t// and can be used directly.\n\t\tfor i := 0; i < len(second); i += 2 {\n\t\t\tf.KVFormat(b, second[i], second[i+1])\n\t\t}\n\t\treturn\n\t}\n\n\t// Determine which keys are in the second slice so that we can skip\n\t// them when iterating over the first one. The code intentionally\n\t// favors performance over completeness: we assume that keys are string\n\t// constants and thus compare equal when the string values are equal. A\n\t// string constant being overridden by, for example, a fmt.Stringer is\n\t// not handled.\n\toverrides := map[interface{}]bool{}\n\tfor i := 0; i < len(second); i += 2 {\n\t\toverrides[second[i]] = true\n\t}\n\tfor i := 0; i < len(first); i += 2 {\n\t\tkey := first[i]\n\t\tif overrides[key] {\n\t\t\tcontinue\n\t\t}\n\t\tf.KVFormat(b, key, first[i+1])\n\t}\n\t// Round down.\n\tl := len(second)\n\tl = l / 2 * 2\n\tfor i := 1; i < l; i += 2 {\n\t\tf.KVFormat(b, second[i-1], second[i])\n\t}\n\tif len(second)%2 == 1 {\n\t\tf.KVFormat(b, second[len(second)-1], missingValue)\n\t}\n}\n\nfunc MergeAndFormatKVs(b *bytes.Buffer, first, second []interface{}) {\n\tFormatter{}.MergeAndFormatKVs(b, first, second)\n}\n\nconst missingValue = \"(MISSING)\"\n\n// KVListFormat serializes all key/value pairs into the provided buffer.\n// A space gets inserted before the first pair and between each pair.\nfunc (f Formatter) KVListFormat(b *bytes.Buffer, keysAndValues ...interface{}) {\n\tfor i := 0; i < len(keysAndValues); i += 2 {\n\t\tvar v interface{}\n\t\tk := keysAndValues[i]\n\t\tif i+1 < len(keysAndValues) {\n\t\t\tv = keysAndValues[i+1]\n\t\t} else {\n\t\t\tv = missingValue\n\t\t}\n\t\tf.KVFormat(b, k, v)\n\t}\n}\n\nfunc KVListFormat(b *bytes.Buffer, keysAndValues ...interface{}) {\n\tFormatter{}.KVListFormat(b, keysAndValues...)\n}\n\nfunc KVFormat(b *bytes.Buffer, k, v interface{}) {\n\tFormatter{}.KVFormat(b, k, v)\n}\n\n// formatAny is the fallback formatter for a value. It supports a hook (for\n// example, for YAML encoding) and itself uses JSON encoding.\nfunc (f Formatter) formatAny(b *bytes.Buffer, v interface{}) {\n\tb.WriteRune('=')\n\tif f.AnyToStringHook != nil {\n\t\tb.WriteString(f.AnyToStringHook(v))\n\t\treturn\n\t}\n\tformatAsJSON(b, v)\n}\n\nfunc formatAsJSON(b *bytes.Buffer, v interface{}) {\n\tencoder := json.NewEncoder(b)\n\tl := b.Len()\n\tif err := encoder.Encode(v); err != nil {\n\t\t// This shouldn't happen. We discard whatever the encoder\n\t\t// wrote and instead dump an error string.\n\t\tb.Truncate(l)\n\t\tb.WriteString(fmt.Sprintf(`\"<internal error: %v>\"`, err))\n\t\treturn\n\t}\n\t// Remove trailing newline.\n\tb.Truncate(b.Len() - 1)\n}\n\n// StringerToString converts a Stringer to a string,\n// handling panics if they occur.\nfunc StringerToString(s fmt.Stringer) (ret string) {\n\tdefer func() {\n\t\tif err := recover(); err != nil {\n\t\t\tret = fmt.Sprintf(\"<panic: %s>\", err)\n\t\t}\n\t}()\n\tret = s.String()\n\treturn\n}\n\n// MarshalerToValue invokes a marshaler and catches\n// panics.\nfunc MarshalerToValue(m logr.Marshaler) (ret interface{}) {\n\tdefer func() {\n\t\tif err := recover(); err != nil {\n\t\t\tret = fmt.Sprintf(\"<panic: %s>\", err)\n\t\t}\n\t}()\n\tret = m.MarshalLog()\n\treturn\n}\n\n// ErrorToString converts an error to a string,\n// handling panics if they occur.\nfunc ErrorToString(err error) (ret string) {\n\tdefer func() {\n\t\tif err := recover(); err != nil {\n\t\t\tret = fmt.Sprintf(\"<panic: %s>\", err)\n\t\t}\n\t}()\n\tret = err.Error()\n\treturn\n}\n\nfunc writeTextWriterValue(b *bytes.Buffer, v textWriter) {\n\tb.WriteByte('=')\n\tdefer func() {\n\t\tif err := recover(); err != nil {\n\t\t\tfmt.Fprintf(b, `\"<panic: %s>\"`, err)\n\t\t}\n\t}()\n\tv.WriteText(b)\n}\n\nfunc writeStringValue(b *bytes.Buffer, v string) {\n\tdata := []byte(v)\n\tindex := bytes.IndexByte(data, '\\n')\n\tif index == -1 {\n\t\tb.WriteByte('=')\n\t\t// Simple string, quote quotation marks and non-printable characters.\n\t\tb.WriteString(strconv.Quote(v))\n\t\treturn\n\t}\n\n\t// Complex multi-line string, show as-is with indention like this:\n\t// I... \"hello world\" key=<\n\t// <tab>line 1\n\t// <tab>line 2\n\t//  >\n\t//\n\t// Tabs indent the lines of the value while the end of string delimiter\n\t// is indented with a space. That has two purposes:\n\t// - visual difference between the two for a human reader because indention\n\t//   will be different\n\t// - no ambiguity when some value line starts with the end delimiter\n\t//\n\t// One downside is that the output cannot distinguish between strings that\n\t// end with a line break and those that don't because the end delimiter\n\t// will always be on the next line.\n\tb.WriteString(\"=<\\n\")\n\tfor index != -1 {\n\t\tb.WriteByte('\\t')\n\t\tb.Write(data[0 : index+1])\n\t\tdata = data[index+1:]\n\t\tindex = bytes.IndexByte(data, '\\n')\n\t}\n\tif len(data) == 0 {\n\t\t// String ended with line break, don't add another.\n\t\tb.WriteString(\" >\")\n\t} else {\n\t\t// No line break at end of last line, write rest of string and\n\t\t// add one.\n\t\tb.WriteByte('\\t')\n\t\tb.Write(data)\n\t\tb.WriteString(\"\\n >\")\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/internal/serialize/keyvalues_no_slog.go",
    "content": "//go:build !go1.21\n// +build !go1.21\n\n/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage serialize\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\n\t\"github.com/go-logr/logr\"\n)\n\n// KVFormat serializes one key/value pair into the provided buffer.\n// A space gets inserted before the pair.\nfunc (f Formatter) KVFormat(b *bytes.Buffer, k, v interface{}) {\n\t// This is the version without slog support. Must be kept in sync with\n\t// the version in keyvalues_slog.go.\n\n\tb.WriteByte(' ')\n\t// Keys are assumed to be well-formed according to\n\t// https://github.com/kubernetes/community/blob/master/contributors/devel/sig-instrumentation/migration-to-structured-logging.md#name-arguments\n\t// for the sake of performance. Keys with spaces,\n\t// special characters, etc. will break parsing.\n\tif sK, ok := k.(string); ok {\n\t\t// Avoid one allocation when the key is a string, which\n\t\t// normally it should be.\n\t\tb.WriteString(sK)\n\t} else {\n\t\tb.WriteString(fmt.Sprintf(\"%s\", k))\n\t}\n\n\t// The type checks are sorted so that more frequently used ones\n\t// come first because that is then faster in the common\n\t// cases. In Kubernetes, ObjectRef (a Stringer) is more common\n\t// than plain strings\n\t// (https://github.com/kubernetes/kubernetes/pull/106594#issuecomment-975526235).\n\tswitch v := v.(type) {\n\tcase textWriter:\n\t\twriteTextWriterValue(b, v)\n\tcase fmt.Stringer:\n\t\twriteStringValue(b, StringerToString(v))\n\tcase string:\n\t\twriteStringValue(b, v)\n\tcase error:\n\t\twriteStringValue(b, ErrorToString(v))\n\tcase logr.Marshaler:\n\t\tvalue := MarshalerToValue(v)\n\t\t// A marshaler that returns a string is useful for\n\t\t// delayed formatting of complex values. We treat this\n\t\t// case like a normal string. This is useful for\n\t\t// multi-line support.\n\t\t//\n\t\t// We could do this by recursively formatting a value,\n\t\t// but that comes with the risk of infinite recursion\n\t\t// if a marshaler returns itself. Instead we call it\n\t\t// only once and rely on it returning the intended\n\t\t// value directly.\n\t\tswitch value := value.(type) {\n\t\tcase string:\n\t\t\twriteStringValue(b, value)\n\t\tdefault:\n\t\t\tf.formatAny(b, value)\n\t\t}\n\tcase []byte:\n\t\t// In https://github.com/kubernetes/klog/pull/237 it was decided\n\t\t// to format byte slices with \"%+q\". The advantages of that are:\n\t\t// - readable output if the bytes happen to be printable\n\t\t// - non-printable bytes get represented as unicode escape\n\t\t//   sequences (\\uxxxx)\n\t\t//\n\t\t// The downsides are that we cannot use the faster\n\t\t// strconv.Quote here and that multi-line output is not\n\t\t// supported. If developers know that a byte array is\n\t\t// printable and they want multi-line output, they can\n\t\t// convert the value to string before logging it.\n\t\tb.WriteByte('=')\n\t\tb.WriteString(fmt.Sprintf(\"%+q\", v))\n\tdefault:\n\t\tf.formatAny(b, v)\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/internal/serialize/keyvalues_slog.go",
    "content": "//go:build go1.21\n// +build go1.21\n\n/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage serialize\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"log/slog\"\n\t\"strconv\"\n\n\t\"github.com/go-logr/logr\"\n)\n\n// KVFormat serializes one key/value pair into the provided buffer.\n// A space gets inserted before the pair.\nfunc (f Formatter) KVFormat(b *bytes.Buffer, k, v interface{}) {\n\t// This is the version without slog support. Must be kept in sync with\n\t// the version in keyvalues_slog.go.\n\n\tb.WriteByte(' ')\n\t// Keys are assumed to be well-formed according to\n\t// https://github.com/kubernetes/community/blob/master/contributors/devel/sig-instrumentation/migration-to-structured-logging.md#name-arguments\n\t// for the sake of performance. Keys with spaces,\n\t// special characters, etc. will break parsing.\n\tif sK, ok := k.(string); ok {\n\t\t// Avoid one allocation when the key is a string, which\n\t\t// normally it should be.\n\t\tb.WriteString(sK)\n\t} else {\n\t\tb.WriteString(fmt.Sprintf(\"%s\", k))\n\t}\n\n\t// The type checks are sorted so that more frequently used ones\n\t// come first because that is then faster in the common\n\t// cases. In Kubernetes, ObjectRef (a Stringer) is more common\n\t// than plain strings\n\t// (https://github.com/kubernetes/kubernetes/pull/106594#issuecomment-975526235).\n\t//\n\t// slog.LogValuer does not need to be handled here because the handler will\n\t// already have resolved such special values to the final value for logging.\n\tswitch v := v.(type) {\n\tcase textWriter:\n\t\twriteTextWriterValue(b, v)\n\tcase slog.Value:\n\t\t// This must come before fmt.Stringer because slog.Value implements\n\t\t// fmt.Stringer, but does not produce the output that we want.\n\t\tb.WriteByte('=')\n\t\tgenerateJSON(b, v)\n\tcase fmt.Stringer:\n\t\twriteStringValue(b, StringerToString(v))\n\tcase string:\n\t\twriteStringValue(b, v)\n\tcase error:\n\t\twriteStringValue(b, ErrorToString(v))\n\tcase logr.Marshaler:\n\t\tvalue := MarshalerToValue(v)\n\t\t// A marshaler that returns a string is useful for\n\t\t// delayed formatting of complex values. We treat this\n\t\t// case like a normal string. This is useful for\n\t\t// multi-line support.\n\t\t//\n\t\t// We could do this by recursively formatting a value,\n\t\t// but that comes with the risk of infinite recursion\n\t\t// if a marshaler returns itself. Instead we call it\n\t\t// only once and rely on it returning the intended\n\t\t// value directly.\n\t\tswitch value := value.(type) {\n\t\tcase string:\n\t\t\twriteStringValue(b, value)\n\t\tdefault:\n\t\t\tf.formatAny(b, value)\n\t\t}\n\tcase slog.LogValuer:\n\t\tvalue := slog.AnyValue(v).Resolve()\n\t\tif value.Kind() == slog.KindString {\n\t\t\twriteStringValue(b, value.String())\n\t\t} else {\n\t\t\tb.WriteByte('=')\n\t\t\tgenerateJSON(b, value)\n\t\t}\n\tcase []byte:\n\t\t// In https://github.com/kubernetes/klog/pull/237 it was decided\n\t\t// to format byte slices with \"%+q\". The advantages of that are:\n\t\t// - readable output if the bytes happen to be printable\n\t\t// - non-printable bytes get represented as unicode escape\n\t\t//   sequences (\\uxxxx)\n\t\t//\n\t\t// The downsides are that we cannot use the faster\n\t\t// strconv.Quote here and that multi-line output is not\n\t\t// supported. If developers know that a byte array is\n\t\t// printable and they want multi-line output, they can\n\t\t// convert the value to string before logging it.\n\t\tb.WriteByte('=')\n\t\tb.WriteString(fmt.Sprintf(\"%+q\", v))\n\tdefault:\n\t\tf.formatAny(b, v)\n\t}\n}\n\n// generateJSON has the same preference for plain strings as KVFormat.\n// In contrast to KVFormat it always produces valid JSON with no line breaks.\nfunc generateJSON(b *bytes.Buffer, v interface{}) {\n\tswitch v := v.(type) {\n\tcase slog.Value:\n\t\tswitch v.Kind() {\n\t\tcase slog.KindGroup:\n\t\t\t// Format as a JSON group. We must not involve f.AnyToStringHook (if there is any),\n\t\t\t// because there is no guarantee that it produces valid JSON.\n\t\t\tb.WriteByte('{')\n\t\t\tfor i, attr := range v.Group() {\n\t\t\t\tif i > 0 {\n\t\t\t\t\tb.WriteByte(',')\n\t\t\t\t}\n\t\t\t\tb.WriteString(strconv.Quote(attr.Key))\n\t\t\t\tb.WriteByte(':')\n\t\t\t\tgenerateJSON(b, attr.Value)\n\t\t\t}\n\t\t\tb.WriteByte('}')\n\t\tcase slog.KindLogValuer:\n\t\t\tgenerateJSON(b, v.Resolve())\n\t\tdefault:\n\t\t\t// Peel off the slog.Value wrapper and format the actual value.\n\t\t\tgenerateJSON(b, v.Any())\n\t\t}\n\tcase fmt.Stringer:\n\t\tb.WriteString(strconv.Quote(StringerToString(v)))\n\tcase logr.Marshaler:\n\t\tgenerateJSON(b, MarshalerToValue(v))\n\tcase slog.LogValuer:\n\t\tgenerateJSON(b, slog.AnyValue(v).Resolve().Any())\n\tcase string:\n\t\tb.WriteString(strconv.Quote(v))\n\tcase error:\n\t\tb.WriteString(strconv.Quote(v.Error()))\n\tdefault:\n\t\tformatAsJSON(b, v)\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/internal/severity/severity.go",
    "content": "// Copyright 2013 Google Inc. All Rights Reserved.\n// Copyright 2022 The Kubernetes Authors.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Package severity provides definitions for klog severity (info, warning, ...)\npackage severity\n\nimport (\n\t\"strings\"\n)\n\n// severity identifies the sort of log: info, warning etc. The binding to flag.Value\n// is handled in klog.go\ntype Severity int32 // sync/atomic int32\n\n// These constants identify the log levels in order of increasing severity.\n// A message written to a high-severity log file is also written to each\n// lower-severity log file.\nconst (\n\tInfoLog Severity = iota\n\tWarningLog\n\tErrorLog\n\tFatalLog\n\tNumSeverity = 4\n)\n\n// Char contains one shortcut letter per severity level.\nconst Char = \"IWEF\"\n\n// Name contains one name per severity level.\nvar Name = []string{\n\tInfoLog:    \"INFO\",\n\tWarningLog: \"WARNING\",\n\tErrorLog:   \"ERROR\",\n\tFatalLog:   \"FATAL\",\n}\n\n// ByName looks up a severity level by name.\nfunc ByName(s string) (Severity, bool) {\n\ts = strings.ToUpper(s)\n\tfor i, name := range Name {\n\t\tif name == s {\n\t\t\treturn Severity(i), true\n\t\t}\n\t}\n\treturn 0, false\n}\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/internal/sloghandler/sloghandler_slog.go",
    "content": "//go:build go1.21\n// +build go1.21\n\n/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage sloghandler\n\nimport (\n\t\"context\"\n\t\"log/slog\"\n\t\"runtime\"\n\t\"strings\"\n\t\"time\"\n\n\t\"k8s.io/klog/v2/internal/severity\"\n)\n\nfunc Handle(_ context.Context, record slog.Record, groups string, printWithInfos func(file string, line int, now time.Time, err error, s severity.Severity, msg string, kvList []interface{})) error {\n\tnow := record.Time\n\tif now.IsZero() {\n\t\t// This format doesn't support printing entries without a time.\n\t\tnow = time.Now()\n\t}\n\n\t// slog has numeric severity levels, with 0 as default \"info\", negative for debugging, and\n\t// positive with some pre-defined levels for more important. Those ranges get mapped to\n\t// the corresponding klog levels where possible, with \"info\" the default that is used\n\t// also for negative debug levels.\n\tlevel := record.Level\n\ts := severity.InfoLog\n\tswitch {\n\tcase level >= slog.LevelError:\n\t\ts = severity.ErrorLog\n\tcase level >= slog.LevelWarn:\n\t\ts = severity.WarningLog\n\t}\n\n\tvar file string\n\tvar line int\n\tif record.PC != 0 {\n\t\t// Same as https://cs.opensource.google/go/x/exp/+/642cacee:slog/record.go;drc=642cacee5cc05231f45555a333d07f1005ffc287;l=70\n\t\tfs := runtime.CallersFrames([]uintptr{record.PC})\n\t\tf, _ := fs.Next()\n\t\tif f.File != \"\" {\n\t\t\tfile = f.File\n\t\t\tif slash := strings.LastIndex(file, \"/\"); slash >= 0 {\n\t\t\t\tfile = file[slash+1:]\n\t\t\t}\n\t\t\tline = f.Line\n\t\t}\n\t} else {\n\t\tfile = \"???\"\n\t\tline = 1\n\t}\n\n\tkvList := make([]interface{}, 0, 2*record.NumAttrs())\n\trecord.Attrs(func(attr slog.Attr) bool {\n\t\tkvList = appendAttr(groups, kvList, attr)\n\t\treturn true\n\t})\n\n\tprintWithInfos(file, line, now, nil, s, record.Message, kvList)\n\treturn nil\n}\n\nfunc Attrs2KVList(groups string, attrs []slog.Attr) []interface{} {\n\tkvList := make([]interface{}, 0, 2*len(attrs))\n\tfor _, attr := range attrs {\n\t\tkvList = appendAttr(groups, kvList, attr)\n\t}\n\treturn kvList\n}\n\nfunc appendAttr(groups string, kvList []interface{}, attr slog.Attr) []interface{} {\n\tvar key string\n\tif groups != \"\" {\n\t\tkey = groups + \".\" + attr.Key\n\t} else {\n\t\tkey = attr.Key\n\t}\n\treturn append(kvList, key, attr.Value)\n}\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/k8s_references.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage klog\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n\n\t\"github.com/go-logr/logr\"\n)\n\n// ObjectRef references a kubernetes object\ntype ObjectRef struct {\n\tName      string `json:\"name\"`\n\tNamespace string `json:\"namespace,omitempty\"`\n}\n\nfunc (ref ObjectRef) String() string {\n\tif ref.Namespace != \"\" {\n\t\tvar builder strings.Builder\n\t\tbuilder.Grow(len(ref.Namespace) + len(ref.Name) + 1)\n\t\tbuilder.WriteString(ref.Namespace)\n\t\tbuilder.WriteRune('/')\n\t\tbuilder.WriteString(ref.Name)\n\t\treturn builder.String()\n\t}\n\treturn ref.Name\n}\n\nfunc (ref ObjectRef) WriteText(out *bytes.Buffer) {\n\tout.WriteRune('\"')\n\tref.writeUnquoted(out)\n\tout.WriteRune('\"')\n}\n\nfunc (ref ObjectRef) writeUnquoted(out *bytes.Buffer) {\n\tif ref.Namespace != \"\" {\n\t\tout.WriteString(ref.Namespace)\n\t\tout.WriteRune('/')\n\t}\n\tout.WriteString(ref.Name)\n}\n\n// MarshalLog ensures that loggers with support for structured output will log\n// as a struct by removing the String method via a custom type.\nfunc (ref ObjectRef) MarshalLog() interface{} {\n\ttype or ObjectRef\n\treturn or(ref)\n}\n\nvar _ logr.Marshaler = ObjectRef{}\n\n// KMetadata is a subset of the kubernetes k8s.io/apimachinery/pkg/apis/meta/v1.Object interface\n// this interface may expand in the future, but will always be a subset of the\n// kubernetes k8s.io/apimachinery/pkg/apis/meta/v1.Object interface\ntype KMetadata interface {\n\tGetName() string\n\tGetNamespace() string\n}\n\n// KObj returns ObjectRef from ObjectMeta\nfunc KObj(obj KMetadata) ObjectRef {\n\tif obj == nil {\n\t\treturn ObjectRef{}\n\t}\n\tif val := reflect.ValueOf(obj); val.Kind() == reflect.Ptr && val.IsNil() {\n\t\treturn ObjectRef{}\n\t}\n\n\treturn ObjectRef{\n\t\tName:      obj.GetName(),\n\t\tNamespace: obj.GetNamespace(),\n\t}\n}\n\n// KRef returns ObjectRef from name and namespace\nfunc KRef(namespace, name string) ObjectRef {\n\treturn ObjectRef{\n\t\tName:      name,\n\t\tNamespace: namespace,\n\t}\n}\n\n// KObjs returns slice of ObjectRef from an slice of ObjectMeta\n//\n// DEPRECATED: Use KObjSlice instead, it has better performance.\nfunc KObjs(arg interface{}) []ObjectRef {\n\ts := reflect.ValueOf(arg)\n\tif s.Kind() != reflect.Slice {\n\t\treturn nil\n\t}\n\tobjectRefs := make([]ObjectRef, 0, s.Len())\n\tfor i := 0; i < s.Len(); i++ {\n\t\tif v, ok := s.Index(i).Interface().(KMetadata); ok {\n\t\t\tobjectRefs = append(objectRefs, KObj(v))\n\t\t} else {\n\t\t\treturn nil\n\t\t}\n\t}\n\treturn objectRefs\n}\n\n// KObjSlice takes a slice of objects that implement the KMetadata interface\n// and returns an object that gets logged as a slice of ObjectRef values or a\n// string containing those values, depending on whether the logger prefers text\n// output or structured output.\n//\n// An error string is logged when KObjSlice is not passed a suitable slice.\n//\n// Processing of the argument is delayed until the value actually gets logged,\n// in contrast to KObjs where that overhead is incurred regardless of whether\n// the result is needed.\nfunc KObjSlice(arg interface{}) interface{} {\n\treturn kobjSlice{arg: arg}\n}\n\ntype kobjSlice struct {\n\targ interface{}\n}\n\nvar _ fmt.Stringer = kobjSlice{}\nvar _ logr.Marshaler = kobjSlice{}\n\nfunc (ks kobjSlice) String() string {\n\tobjectRefs, errStr := ks.process()\n\tif errStr != \"\" {\n\t\treturn errStr\n\t}\n\treturn fmt.Sprintf(\"%v\", objectRefs)\n}\n\nfunc (ks kobjSlice) MarshalLog() interface{} {\n\tobjectRefs, errStr := ks.process()\n\tif errStr != \"\" {\n\t\treturn errStr\n\t}\n\treturn objectRefs\n}\n\nfunc (ks kobjSlice) process() (objs []interface{}, err string) {\n\ts := reflect.ValueOf(ks.arg)\n\tswitch s.Kind() {\n\tcase reflect.Invalid:\n\t\t// nil parameter, print as nil.\n\t\treturn nil, \"\"\n\tcase reflect.Slice:\n\t\t// Okay, handle below.\n\tdefault:\n\t\treturn nil, fmt.Sprintf(\"<KObjSlice needs a slice, got type %T>\", ks.arg)\n\t}\n\tobjectRefs := make([]interface{}, 0, s.Len())\n\tfor i := 0; i < s.Len(); i++ {\n\t\titem := s.Index(i).Interface()\n\t\tif item == nil {\n\t\t\tobjectRefs = append(objectRefs, nil)\n\t\t} else if v, ok := item.(KMetadata); ok {\n\t\t\tobjectRefs = append(objectRefs, KObj(v))\n\t\t} else {\n\t\t\treturn nil, fmt.Sprintf(\"<KObjSlice needs a slice of values implementing KMetadata, got type %T>\", item)\n\t\t}\n\t}\n\treturn objectRefs, \"\"\n}\n\nvar nilToken = []byte(\"null\")\n\nfunc (ks kobjSlice) WriteText(out *bytes.Buffer) {\n\ts := reflect.ValueOf(ks.arg)\n\tswitch s.Kind() {\n\tcase reflect.Invalid:\n\t\t// nil parameter, print as null.\n\t\tout.Write(nilToken)\n\t\treturn\n\tcase reflect.Slice:\n\t\t// Okay, handle below.\n\tdefault:\n\t\tfmt.Fprintf(out, `\"<KObjSlice needs a slice, got type %T>\"`, ks.arg)\n\t\treturn\n\t}\n\tout.Write([]byte{'['})\n\tdefer out.Write([]byte{']'})\n\tfor i := 0; i < s.Len(); i++ {\n\t\tif i > 0 {\n\t\t\tout.Write([]byte{','})\n\t\t}\n\t\titem := s.Index(i).Interface()\n\t\tif item == nil {\n\t\t\tout.Write(nilToken)\n\t\t} else if v, ok := item.(KMetadata); ok {\n\t\t\tKObj(v).WriteText(out)\n\t\t} else {\n\t\t\tfmt.Fprintf(out, `\"<KObjSlice needs a slice of values implementing KMetadata, got type %T>\"`, item)\n\t\t\treturn\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/k8s_references_slog.go",
    "content": "//go:build go1.21\n// +build go1.21\n\n/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage klog\n\nimport (\n\t\"log/slog\"\n)\n\nfunc (ref ObjectRef) LogValue() slog.Value {\n\tif ref.Namespace != \"\" {\n\t\treturn slog.GroupValue(slog.String(\"name\", ref.Name), slog.String(\"namespace\", ref.Namespace))\n\t}\n\treturn slog.GroupValue(slog.String(\"name\", ref.Name))\n}\n\nvar _ slog.LogValuer = ObjectRef{}\n\nfunc (ks kobjSlice) LogValue() slog.Value {\n\treturn slog.AnyValue(ks.MarshalLog())\n}\n\nvar _ slog.LogValuer = kobjSlice{}\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/klog.go",
    "content": "// Go support for leveled logs, analogous to https://code.google.com/p/google-glog/\n//\n// Copyright 2013 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// Package klog contains the following functionality:\n//\n//   - output routing as defined via command line flags ([InitFlags])\n//   - log formatting as text, either with a single, unstructured string ([Info], [Infof], etc.)\n//     or as a structured log entry with message and key/value pairs ([InfoS], etc.)\n//   - management of a go-logr [Logger] ([SetLogger], [Background], [TODO])\n//   - helper functions for logging values ([Format]) and managing the state of klog ([CaptureState], [State.Restore])\n//   - wrappers for [logr] APIs for contextual logging where the wrappers can\n//     be turned into no-ops ([EnableContextualLogging], [NewContext], [FromContext],\n//     [LoggerWithValues], [LoggerWithName]); if the ability to turn off\n//     contextual logging is not needed, then go-logr can also be used directly\n//   - type aliases for go-logr types to simplify imports in code which uses both (e.g. [Logger])\n//   - [k8s.io/klog/v2/textlogger]: a logger which uses the same formatting as klog log with\n//     simpler output routing; beware that it comes with its own command line flags\n//     and does not use the ones from klog\n//   - [k8s.io/klog/v2/ktesting]: per-test output in Go unit tests\n//   - [k8s.io/klog/v2/klogr]: a deprecated, standalone [logr.Logger] on top of the main klog package;\n//     use [Background] instead if klog output routing is needed, [k8s.io/klog/v2/textlogger] if not\n//   - [k8s.io/klog/v2/examples]: demos of this functionality\n//   - [k8s.io/klog/v2/test]: reusable tests for [logr.Logger] implementations\n//\n// Basic examples:\n//\n//\tklog.Info(\"Prepare to repel boarders\")\n//\n//\tklog.Fatalf(\"Initialization failed: %s\", err)\n//\n// See the documentation for the V function for an explanation of these examples:\n//\n//\tif klog.V(2) {\n//\t\tklog.Info(\"Starting transaction...\")\n//\t}\n//\n//\tklog.V(2).Infoln(\"Processed\", nItems, \"elements\")\n//\n// Log output is buffered and written periodically using Flush. Programs\n// should call Flush before exiting to guarantee all log output is written.\n//\n// By default, all log statements write to standard error.\n// This package provides several flags that modify this behavior.\n// As a result, flag.Parse must be called before any logging is done.\n//\n//\t\t-logtostderr=true\n//\t\t\tLogs are written to standard error instead of to files.\n//\t             This shortcuts most of the usual output routing:\n//\t             -alsologtostderr, -stderrthreshold and -log_dir have no\n//\t             effect and output redirection at runtime with SetOutput is\n//\t             ignored.\n//\t\t-alsologtostderr=false\n//\t\t\tLogs are written to standard error as well as to files.\n//\t\t-stderrthreshold=ERROR\n//\t\t\tLog events at or above this severity are logged to standard\n//\t\t\terror as well as to files.\n//\t\t-log_dir=\"\"\n//\t\t\tLog files will be written to this directory instead of the\n//\t\t\tdefault temporary directory.\n//\n//\t\tOther flags provide aids to debugging.\n//\n//\t\t-log_backtrace_at=\"\"\n//\t\t\tWhen set to a file and line number holding a logging statement,\n//\t\t\tsuch as\n//\t\t\t\t-log_backtrace_at=gopherflakes.go:234\n//\t\t\ta stack trace will be written to the Info log whenever execution\n//\t\t\thits that statement. (Unlike with -vmodule, the \".go\" must be\n//\t\t\tpresent.)\n//\t\t-v=0\n//\t\t\tEnable V-leveled logging at the specified level.\n//\t\t-vmodule=\"\"\n//\t\t\tThe syntax of the argument is a comma-separated list of pattern=N,\n//\t\t\twhere pattern is a literal file name (minus the \".go\" suffix) or\n//\t\t\t\"glob\" pattern and N is a V level. For instance,\n//\t\t\t\t-vmodule=gopher*=3\n//\t\t\tsets the V level to 3 in all Go files whose names begin \"gopher\".\npackage klog\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"errors\"\n\t\"flag\"\n\t\"fmt\"\n\t\"io\"\n\tstdLog \"log\"\n\t\"math\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"runtime\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"sync/atomic\"\n\t\"time\"\n\n\t\"k8s.io/klog/v2/internal/buffer\"\n\t\"k8s.io/klog/v2/internal/clock\"\n\t\"k8s.io/klog/v2/internal/dbg\"\n\t\"k8s.io/klog/v2/internal/serialize\"\n\t\"k8s.io/klog/v2/internal/severity\"\n)\n\n// severityValue identifies the sort of log: info, warning etc. It also implements\n// the flag.Value interface. The -stderrthreshold flag is of type severity and\n// should be modified only through the flag.Value interface. The values match\n// the corresponding constants in C++.\ntype severityValue struct {\n\tseverity.Severity\n}\n\n// get returns the value of the severity.\nfunc (s *severityValue) get() severity.Severity {\n\treturn severity.Severity(atomic.LoadInt32((*int32)(&s.Severity)))\n}\n\n// set sets the value of the severity.\nfunc (s *severityValue) set(val severity.Severity) {\n\tatomic.StoreInt32((*int32)(&s.Severity), int32(val))\n}\n\n// String is part of the flag.Value interface.\nfunc (s *severityValue) String() string {\n\treturn strconv.FormatInt(int64(s.Severity), 10)\n}\n\n// Get is part of the flag.Getter interface.\nfunc (s *severityValue) Get() interface{} {\n\treturn s.Severity\n}\n\n// Set is part of the flag.Value interface.\nfunc (s *severityValue) Set(value string) error {\n\tvar threshold severity.Severity\n\t// Is it a known name?\n\tif v, ok := severity.ByName(value); ok {\n\t\tthreshold = v\n\t} else {\n\t\tv, err := strconv.ParseInt(value, 10, 32)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tthreshold = severity.Severity(v)\n\t}\n\tlogging.stderrThreshold.set(threshold)\n\treturn nil\n}\n\n// OutputStats tracks the number of output lines and bytes written.\ntype OutputStats struct {\n\tlines int64\n\tbytes int64\n}\n\n// Lines returns the number of lines written.\nfunc (s *OutputStats) Lines() int64 {\n\treturn atomic.LoadInt64(&s.lines)\n}\n\n// Bytes returns the number of bytes written.\nfunc (s *OutputStats) Bytes() int64 {\n\treturn atomic.LoadInt64(&s.bytes)\n}\n\n// Stats tracks the number of lines of output and number of bytes\n// per severity level. Values must be read with atomic.LoadInt64.\nvar Stats struct {\n\tInfo, Warning, Error OutputStats\n}\n\nvar severityStats = [severity.NumSeverity]*OutputStats{\n\tseverity.InfoLog:    &Stats.Info,\n\tseverity.WarningLog: &Stats.Warning,\n\tseverity.ErrorLog:   &Stats.Error,\n}\n\n// Level is exported because it appears in the arguments to V and is\n// the type of the v flag, which can be set programmatically.\n// It's a distinct type because we want to discriminate it from logType.\n// Variables of type level are only changed under logging.mu.\n// The -v flag is read only with atomic ops, so the state of the logging\n// module is consistent.\n\n// Level is treated as a sync/atomic int32.\n\n// Level specifies a level of verbosity for V logs. *Level implements\n// flag.Value; the -v flag is of type Level and should be modified\n// only through the flag.Value interface.\ntype Level int32\n\n// get returns the value of the Level.\nfunc (l *Level) get() Level {\n\treturn Level(atomic.LoadInt32((*int32)(l)))\n}\n\n// set sets the value of the Level.\nfunc (l *Level) set(val Level) {\n\tatomic.StoreInt32((*int32)(l), int32(val))\n}\n\n// String is part of the flag.Value interface.\nfunc (l *Level) String() string {\n\treturn strconv.FormatInt(int64(*l), 10)\n}\n\n// Get is part of the flag.Getter interface.\nfunc (l *Level) Get() interface{} {\n\treturn *l\n}\n\n// Set is part of the flag.Value interface.\nfunc (l *Level) Set(value string) error {\n\tv, err := strconv.ParseInt(value, 10, 32)\n\tif err != nil {\n\t\treturn err\n\t}\n\tlogging.mu.Lock()\n\tdefer logging.mu.Unlock()\n\tlogging.setVState(Level(v), logging.vmodule.filter, false)\n\treturn nil\n}\n\n// moduleSpec represents the setting of the -vmodule flag.\ntype moduleSpec struct {\n\tfilter []modulePat\n}\n\n// modulePat contains a filter for the -vmodule flag.\n// It holds a verbosity level and a file pattern to match.\ntype modulePat struct {\n\tpattern string\n\tliteral bool // The pattern is a literal string\n\tlevel   Level\n}\n\n// match reports whether the file matches the pattern. It uses a string\n// comparison if the pattern contains no metacharacters.\nfunc (m *modulePat) match(file string) bool {\n\tif m.literal {\n\t\treturn file == m.pattern\n\t}\n\tmatch, _ := filepath.Match(m.pattern, file)\n\treturn match\n}\n\nfunc (m *moduleSpec) String() string {\n\t// Lock because the type is not atomic. TODO: clean this up.\n\tlogging.mu.Lock()\n\tdefer logging.mu.Unlock()\n\treturn m.serialize()\n}\n\nfunc (m *moduleSpec) serialize() string {\n\tvar b bytes.Buffer\n\tfor i, f := range m.filter {\n\t\tif i > 0 {\n\t\t\tb.WriteRune(',')\n\t\t}\n\t\tfmt.Fprintf(&b, \"%s=%d\", f.pattern, f.level)\n\t}\n\treturn b.String()\n}\n\n// Get is part of the (Go 1.2)  flag.Getter interface. It always returns nil for this flag type since the\n// struct is not exported.\nfunc (m *moduleSpec) Get() interface{} {\n\treturn nil\n}\n\nvar errVmoduleSyntax = errors.New(\"syntax error: expect comma-separated list of filename=N\")\n\n// Set will sets module value\n// Syntax: -vmodule=recordio=2,file=1,gfs*=3\nfunc (m *moduleSpec) Set(value string) error {\n\tfilter, err := parseModuleSpec(value)\n\tif err != nil {\n\t\treturn err\n\t}\n\tlogging.mu.Lock()\n\tdefer logging.mu.Unlock()\n\tlogging.setVState(logging.verbosity, filter, true)\n\treturn nil\n}\n\nfunc parseModuleSpec(value string) ([]modulePat, error) {\n\tvar filter []modulePat\n\tfor _, pat := range strings.Split(value, \",\") {\n\t\tif len(pat) == 0 {\n\t\t\t// Empty strings such as from a trailing comma can be ignored.\n\t\t\tcontinue\n\t\t}\n\t\tpatLev := strings.Split(pat, \"=\")\n\t\tif len(patLev) != 2 || len(patLev[0]) == 0 || len(patLev[1]) == 0 {\n\t\t\treturn nil, errVmoduleSyntax\n\t\t}\n\t\tpattern := patLev[0]\n\t\tv, err := strconv.ParseInt(patLev[1], 10, 32)\n\t\tif err != nil {\n\t\t\treturn nil, errors.New(\"syntax error: expect comma-separated list of filename=N\")\n\t\t}\n\t\tif v < 0 {\n\t\t\treturn nil, errors.New(\"negative value for vmodule level\")\n\t\t}\n\t\tif v == 0 {\n\t\t\tcontinue // Ignore. It's harmless but no point in paying the overhead.\n\t\t}\n\t\t// TODO: check syntax of filter?\n\t\tfilter = append(filter, modulePat{pattern, isLiteral(pattern), Level(v)})\n\t}\n\treturn filter, nil\n}\n\n// isLiteral reports whether the pattern is a literal string, that is, has no metacharacters\n// that require filepath.Match to be called to match the pattern.\nfunc isLiteral(pattern string) bool {\n\treturn !strings.ContainsAny(pattern, `\\*?[]`)\n}\n\n// traceLocation represents the setting of the -log_backtrace_at flag.\ntype traceLocation struct {\n\tfile string\n\tline int\n}\n\n// isSet reports whether the trace location has been specified.\n// logging.mu is held.\nfunc (t *traceLocation) isSet() bool {\n\treturn t.line > 0\n}\n\n// match reports whether the specified file and line matches the trace location.\n// The argument file name is the full path, not the basename specified in the flag.\n// logging.mu is held.\nfunc (t *traceLocation) match(file string, line int) bool {\n\tif t.line != line {\n\t\treturn false\n\t}\n\tif i := strings.LastIndex(file, \"/\"); i >= 0 {\n\t\tfile = file[i+1:]\n\t}\n\treturn t.file == file\n}\n\nfunc (t *traceLocation) String() string {\n\t// Lock because the type is not atomic. TODO: clean this up.\n\tlogging.mu.Lock()\n\tdefer logging.mu.Unlock()\n\treturn fmt.Sprintf(\"%s:%d\", t.file, t.line)\n}\n\n// Get is part of the (Go 1.2) flag.Getter interface. It always returns nil for this flag type since the\n// struct is not exported\nfunc (t *traceLocation) Get() interface{} {\n\treturn nil\n}\n\nvar errTraceSyntax = errors.New(\"syntax error: expect file.go:234\")\n\n// Set will sets backtrace value\n// Syntax: -log_backtrace_at=gopherflakes.go:234\n// Note that unlike vmodule the file extension is included here.\nfunc (t *traceLocation) Set(value string) error {\n\tif value == \"\" {\n\t\t// Unset.\n\t\tlogging.mu.Lock()\n\t\tdefer logging.mu.Unlock()\n\t\tt.line = 0\n\t\tt.file = \"\"\n\t\treturn nil\n\t}\n\tfields := strings.Split(value, \":\")\n\tif len(fields) != 2 {\n\t\treturn errTraceSyntax\n\t}\n\tfile, line := fields[0], fields[1]\n\tif !strings.Contains(file, \".\") {\n\t\treturn errTraceSyntax\n\t}\n\tv, err := strconv.Atoi(line)\n\tif err != nil {\n\t\treturn errTraceSyntax\n\t}\n\tif v <= 0 {\n\t\treturn errors.New(\"negative or zero value for level\")\n\t}\n\tlogging.mu.Lock()\n\tdefer logging.mu.Unlock()\n\tt.line = v\n\tt.file = file\n\treturn nil\n}\n\nvar logging loggingT\nvar commandLine flag.FlagSet\n\n// init sets up the defaults and creates command line flags.\nfunc init() {\n\tcommandLine.StringVar(&logging.logDir, \"log_dir\", \"\", \"If non-empty, write log files in this directory (no effect when -logtostderr=true)\")\n\tcommandLine.StringVar(&logging.logFile, \"log_file\", \"\", \"If non-empty, use this log file (no effect when -logtostderr=true)\")\n\tcommandLine.Uint64Var(&logging.logFileMaxSizeMB, \"log_file_max_size\", 1800,\n\t\t\"Defines the maximum size a log file can grow to (no effect when -logtostderr=true). Unit is megabytes. \"+\n\t\t\t\"If the value is 0, the maximum file size is unlimited.\")\n\tcommandLine.BoolVar(&logging.toStderr, \"logtostderr\", true, \"log to standard error instead of files\")\n\tcommandLine.BoolVar(&logging.alsoToStderr, \"alsologtostderr\", false, \"log to standard error as well as files (no effect when -logtostderr=true)\")\n\tlogging.setVState(0, nil, false)\n\tcommandLine.Var(&logging.verbosity, \"v\", \"number for the log level verbosity\")\n\tcommandLine.BoolVar(&logging.addDirHeader, \"add_dir_header\", false, \"If true, adds the file directory to the header of the log messages\")\n\tcommandLine.BoolVar(&logging.skipHeaders, \"skip_headers\", false, \"If true, avoid header prefixes in the log messages\")\n\tcommandLine.BoolVar(&logging.oneOutput, \"one_output\", false, \"If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)\")\n\tcommandLine.BoolVar(&logging.skipLogHeaders, \"skip_log_headers\", false, \"If true, avoid headers when opening log files (no effect when -logtostderr=true)\")\n\tlogging.stderrThreshold = severityValue{\n\t\tSeverity: severity.ErrorLog, // Default stderrThreshold is ERROR.\n\t}\n\tcommandLine.Var(&logging.stderrThreshold, \"stderrthreshold\", \"logs at or above this threshold go to stderr when writing to files and stderr (no effect when -logtostderr=true or -alsologtostderr=true)\")\n\tcommandLine.Var(&logging.vmodule, \"vmodule\", \"comma-separated list of pattern=N settings for file-filtered logging\")\n\tcommandLine.Var(&logging.traceLocation, \"log_backtrace_at\", \"when logging hits line file:N, emit a stack trace\")\n\n\tlogging.settings.contextualLoggingEnabled = true\n\tlogging.flushD = newFlushDaemon(logging.lockAndFlushAll, nil)\n}\n\n// InitFlags is for explicitly initializing the flags.\n// It may get called repeatedly for different flagsets, but not\n// twice for the same one. May get called concurrently\n// to other goroutines using klog. However, only some flags\n// may get set concurrently (see implementation).\nfunc InitFlags(flagset *flag.FlagSet) {\n\tif flagset == nil {\n\t\tflagset = flag.CommandLine\n\t}\n\n\tcommandLine.VisitAll(func(f *flag.Flag) {\n\t\tflagset.Var(f.Value, f.Name, f.Usage)\n\t})\n}\n\n// Flush flushes all pending log I/O.\nfunc Flush() {\n\tlogging.lockAndFlushAll()\n}\n\n// settings collects global settings.\ntype settings struct {\n\t// contextualLoggingEnabled controls whether contextual logging is\n\t// active. Disabling it may have some small performance benefit.\n\tcontextualLoggingEnabled bool\n\n\t// logger is the global Logger chosen by users of klog, nil if\n\t// none is available.\n\tlogger *logWriter\n\n\t// loggerOptions contains the options that were supplied for\n\t// globalLogger.\n\tloggerOptions loggerOptions\n\n\t// Boolean flags. Not handled atomically because the flag.Value interface\n\t// does not let us avoid the =true, and that shorthand is necessary for\n\t// compatibility. TODO: does this matter enough to fix? Seems unlikely.\n\ttoStderr     bool // The -logtostderr flag.\n\talsoToStderr bool // The -alsologtostderr flag.\n\n\t// Level flag. Handled atomically.\n\tstderrThreshold severityValue // The -stderrthreshold flag.\n\n\t// Access to all of the following fields must be protected via a mutex.\n\n\t// file holds writer for each of the log types.\n\tfile [severity.NumSeverity]io.Writer\n\t// flushInterval is the interval for periodic flushing. If zero,\n\t// the global default will be used.\n\tflushInterval time.Duration\n\n\t// filterLength stores the length of the vmodule filter chain. If greater\n\t// than zero, it means vmodule is enabled. It may be read safely\n\t// using sync.LoadInt32, but is only modified under mu.\n\tfilterLength int32\n\t// traceLocation is the state of the -log_backtrace_at flag.\n\ttraceLocation traceLocation\n\t// These flags are modified only under lock, although verbosity may be fetched\n\t// safely using atomic.LoadInt32.\n\tvmodule   moduleSpec // The state of the -vmodule flag.\n\tverbosity Level      // V logging level, the value of the -v flag/\n\n\t// If non-empty, overrides the choice of directory in which to write logs.\n\t// See createLogDirs for the full list of possible destinations.\n\tlogDir string\n\n\t// If non-empty, specifies the path of the file to write logs. mutually exclusive\n\t// with the log_dir option.\n\tlogFile string\n\n\t// When logFile is specified, this limiter makes sure the logFile won't exceeds a certain size. When exceeds, the\n\t// logFile will be cleaned up. If this value is 0, no size limitation will be applied to logFile.\n\tlogFileMaxSizeMB uint64\n\n\t// If true, do not add the prefix headers, useful when used with SetOutput\n\tskipHeaders bool\n\n\t// If true, do not add the headers to log files\n\tskipLogHeaders bool\n\n\t// If true, add the file directory to the header\n\taddDirHeader bool\n\n\t// If true, messages will not be propagated to lower severity log levels\n\toneOutput bool\n\n\t// If set, all output will be filtered through the filter.\n\tfilter LogFilter\n}\n\n// deepCopy creates a copy that doesn't share anything with the original\n// instance.\nfunc (s settings) deepCopy() settings {\n\t// vmodule is a slice and would be shared, so we have copy it.\n\tfilter := make([]modulePat, len(s.vmodule.filter))\n\tcopy(filter, s.vmodule.filter)\n\ts.vmodule.filter = filter\n\n\tif s.logger != nil {\n\t\tlogger := *s.logger\n\t\ts.logger = &logger\n\t}\n\n\treturn s\n}\n\n// loggingT collects all the global state of the logging setup.\ntype loggingT struct {\n\tsettings\n\n\t// flushD holds a flushDaemon that frequently flushes log file buffers.\n\t// Uses its own mutex.\n\tflushD *flushDaemon\n\n\t// mu protects the remaining elements of this structure and the fields\n\t// in settingsT which need a mutex lock.\n\tmu sync.Mutex\n\n\t// pcs is used in V to avoid an allocation when computing the caller's PC.\n\tpcs [1]uintptr\n\t// vmap is a cache of the V Level for each V() call site, identified by PC.\n\t// It is wiped whenever the vmodule flag changes state.\n\tvmap map[uintptr]Level\n}\n\n// setVState sets a consistent state for V logging.\n// l.mu is held.\nfunc (l *loggingT) setVState(verbosity Level, filter []modulePat, setFilter bool) {\n\t// Turn verbosity off so V will not fire while we are in transition.\n\tl.verbosity.set(0)\n\t// Ditto for filter length.\n\tatomic.StoreInt32(&l.filterLength, 0)\n\n\t// Set the new filters and wipe the pc->Level map if the filter has changed.\n\tif setFilter {\n\t\tl.vmodule.filter = filter\n\t\tl.vmap = make(map[uintptr]Level)\n\t}\n\n\t// Things are consistent now, so enable filtering and verbosity.\n\t// They are enabled in order opposite to that in V.\n\tatomic.StoreInt32(&l.filterLength, int32(len(filter)))\n\tl.verbosity.set(verbosity)\n}\n\nvar timeNow = time.Now // Stubbed out for testing.\n\n// CaptureState gathers information about all current klog settings.\n// The result can be used to restore those settings.\nfunc CaptureState() State {\n\tlogging.mu.Lock()\n\tdefer logging.mu.Unlock()\n\treturn &state{\n\t\tsettings:      logging.settings.deepCopy(),\n\t\tflushDRunning: logging.flushD.isRunning(),\n\t\tmaxSize:       MaxSize,\n\t}\n}\n\n// State stores a snapshot of klog settings. It gets created with CaptureState\n// and can be used to restore the entire state. Modifying individual settings\n// is supported via the command line flags.\ntype State interface {\n\t// Restore restore the entire state. It may get called more than once.\n\tRestore()\n}\n\ntype state struct {\n\tsettings\n\n\tflushDRunning bool\n\tmaxSize       uint64\n}\n\nfunc (s *state) Restore() {\n\t// This needs to be done before mutex locking.\n\tif s.flushDRunning && !logging.flushD.isRunning() {\n\t\t// This is not quite accurate: StartFlushDaemon might\n\t\t// have been called with some different interval.\n\t\tinterval := s.flushInterval\n\t\tif interval == 0 {\n\t\t\tinterval = flushInterval\n\t\t}\n\t\tlogging.flushD.run(interval)\n\t} else if !s.flushDRunning && logging.flushD.isRunning() {\n\t\tlogging.flushD.stop()\n\t}\n\n\tlogging.mu.Lock()\n\tdefer logging.mu.Unlock()\n\n\tlogging.settings = s.settings\n\tlogging.setVState(s.verbosity, s.vmodule.filter, true)\n\tMaxSize = s.maxSize\n}\n\n/*\nheader formats a log header as defined by the C++ implementation.\nIt returns a buffer containing the formatted header and the user's file and line number.\nThe depth specifies how many stack frames above lives the source line to be identified in the log message.\n\nLog lines have this form:\n\n\tLmmdd hh:mm:ss.uuuuuu threadid file:line] msg...\n\nwhere the fields are defined as follows:\n\n\tL                A single character, representing the log level (eg 'I' for INFO)\n\tmm               The month (zero padded; ie May is '05')\n\tdd               The day (zero padded)\n\thh:mm:ss.uuuuuu  Time in hours, minutes and fractional seconds\n\tthreadid         The space-padded thread ID as returned by GetTID()\n\tfile             The file name\n\tline             The line number\n\tmsg              The user-supplied message\n*/\nfunc (l *loggingT) header(s severity.Severity, depth int) (*buffer.Buffer, string, int) {\n\t_, file, line, ok := runtime.Caller(3 + depth)\n\tif !ok {\n\t\tfile = \"???\"\n\t\tline = 1\n\t} else {\n\t\tif slash := strings.LastIndex(file, \"/\"); slash >= 0 {\n\t\t\tpath := file\n\t\t\tfile = path[slash+1:]\n\t\t\tif l.addDirHeader {\n\t\t\t\tif dirsep := strings.LastIndex(path[:slash], \"/\"); dirsep >= 0 {\n\t\t\t\t\tfile = path[dirsep+1:]\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn l.formatHeader(s, file, line, timeNow()), file, line\n}\n\n// formatHeader formats a log header using the provided file name and line number.\nfunc (l *loggingT) formatHeader(s severity.Severity, file string, line int, now time.Time) *buffer.Buffer {\n\tbuf := buffer.GetBuffer()\n\tif l.skipHeaders {\n\t\treturn buf\n\t}\n\tbuf.FormatHeader(s, file, line, now)\n\treturn buf\n}\n\nfunc (l *loggingT) println(s severity.Severity, logger *logWriter, filter LogFilter, args ...interface{}) {\n\tl.printlnDepth(s, logger, filter, 1, args...)\n}\n\nfunc (l *loggingT) printlnDepth(s severity.Severity, logger *logWriter, filter LogFilter, depth int, args ...interface{}) {\n\tif false {\n\t\t_ = fmt.Sprintln(args...) // cause vet to treat this function like fmt.Println\n\t}\n\n\tbuf, file, line := l.header(s, depth)\n\t// If a logger is set and doesn't support writing a formatted buffer,\n\t// we clear the generated header as we rely on the backing\n\t// logger implementation to print headers.\n\tif logger != nil && logger.writeKlogBuffer == nil {\n\t\tbuffer.PutBuffer(buf)\n\t\tbuf = buffer.GetBuffer()\n\t}\n\tif filter != nil {\n\t\targs = filter.Filter(args)\n\t}\n\tfmt.Fprintln(buf, args...)\n\tl.output(s, logger, buf, depth, file, line, false)\n}\n\nfunc (l *loggingT) print(s severity.Severity, logger *logWriter, filter LogFilter, args ...interface{}) {\n\tl.printDepth(s, logger, filter, 1, args...)\n}\n\nfunc (l *loggingT) printDepth(s severity.Severity, logger *logWriter, filter LogFilter, depth int, args ...interface{}) {\n\tif false {\n\t\t_ = fmt.Sprint(args...) //  // cause vet to treat this function like fmt.Print\n\t}\n\n\tbuf, file, line := l.header(s, depth)\n\tl.printWithInfos(buf, file, line, s, logger, filter, depth+1, args...)\n}\n\nfunc (l *loggingT) printWithInfos(buf *buffer.Buffer, file string, line int, s severity.Severity, logger *logWriter, filter LogFilter, depth int, args ...interface{}) {\n\t// If a logger is set and doesn't support writing a formatted buffer,\n\t// we clear the generated header as we rely on the backing\n\t// logger implementation to print headers.\n\tif logger != nil && logger.writeKlogBuffer == nil {\n\t\tbuffer.PutBuffer(buf)\n\t\tbuf = buffer.GetBuffer()\n\t}\n\tif filter != nil {\n\t\targs = filter.Filter(args)\n\t}\n\tfmt.Fprint(buf, args...)\n\tif buf.Len() == 0 || buf.Bytes()[buf.Len()-1] != '\\n' {\n\t\tbuf.WriteByte('\\n')\n\t}\n\tl.output(s, logger, buf, depth, file, line, false)\n}\n\nfunc (l *loggingT) printf(s severity.Severity, logger *logWriter, filter LogFilter, format string, args ...interface{}) {\n\tl.printfDepth(s, logger, filter, 1, format, args...)\n}\n\nfunc (l *loggingT) printfDepth(s severity.Severity, logger *logWriter, filter LogFilter, depth int, format string, args ...interface{}) {\n\tif false {\n\t\t_ = fmt.Sprintf(format, args...) // cause vet to treat this function like fmt.Printf\n\t}\n\n\tbuf, file, line := l.header(s, depth)\n\t// If a logger is set and doesn't support writing a formatted buffer,\n\t// we clear the generated header as we rely on the backing\n\t// logger implementation to print headers.\n\tif logger != nil && logger.writeKlogBuffer == nil {\n\t\tbuffer.PutBuffer(buf)\n\t\tbuf = buffer.GetBuffer()\n\t}\n\tif filter != nil {\n\t\tformat, args = filter.FilterF(format, args)\n\t}\n\tfmt.Fprintf(buf, format, args...)\n\tif buf.Bytes()[buf.Len()-1] != '\\n' {\n\t\tbuf.WriteByte('\\n')\n\t}\n\tl.output(s, logger, buf, depth, file, line, false)\n}\n\n// printWithFileLine behaves like print but uses the provided file and line number.  If\n// alsoLogToStderr is true, the log message always appears on standard error; it\n// will also appear in the log file unless --logtostderr is set.\nfunc (l *loggingT) printWithFileLine(s severity.Severity, logger *logWriter, filter LogFilter, file string, line int, alsoToStderr bool, args ...interface{}) {\n\tbuf := l.formatHeader(s, file, line, timeNow())\n\t// If a logger is set and doesn't support writing a formatted buffer,\n\t// we clear the generated header as we rely on the backing\n\t// logger implementation to print headers.\n\tif logger != nil && logger.writeKlogBuffer == nil {\n\t\tbuffer.PutBuffer(buf)\n\t\tbuf = buffer.GetBuffer()\n\t}\n\tif filter != nil {\n\t\targs = filter.Filter(args)\n\t}\n\tfmt.Fprint(buf, args...)\n\tif buf.Bytes()[buf.Len()-1] != '\\n' {\n\t\tbuf.WriteByte('\\n')\n\t}\n\tl.output(s, logger, buf, 2 /* depth */, file, line, alsoToStderr)\n}\n\n// if logger is specified, will call logger.Error, otherwise output with logging module.\nfunc (l *loggingT) errorS(err error, logger *logWriter, filter LogFilter, depth int, msg string, keysAndValues ...interface{}) {\n\tif filter != nil {\n\t\tmsg, keysAndValues = filter.FilterS(msg, keysAndValues)\n\t}\n\tif logger != nil {\n\t\tlogger.WithCallDepth(depth+2).Error(err, msg, keysAndValues...)\n\t\treturn\n\t}\n\tl.printS(err, severity.ErrorLog, depth+1, msg, keysAndValues...)\n}\n\n// if logger is specified, will call logger.Info, otherwise output with logging module.\nfunc (l *loggingT) infoS(logger *logWriter, filter LogFilter, depth int, msg string, keysAndValues ...interface{}) {\n\tif filter != nil {\n\t\tmsg, keysAndValues = filter.FilterS(msg, keysAndValues)\n\t}\n\tif logger != nil {\n\t\tlogger.WithCallDepth(depth+2).Info(msg, keysAndValues...)\n\t\treturn\n\t}\n\tl.printS(nil, severity.InfoLog, depth+1, msg, keysAndValues...)\n}\n\n// printS is called from infoS and errorS if logger is not specified.\n// set log severity by s\nfunc (l *loggingT) printS(err error, s severity.Severity, depth int, msg string, keysAndValues ...interface{}) {\n\t// Only create a new buffer if we don't have one cached.\n\tb := buffer.GetBuffer()\n\t// The message is always quoted, even if it contains line breaks.\n\t// If developers want multi-line output, they should use a small, fixed\n\t// message and put the multi-line output into a value.\n\tb.WriteString(strconv.Quote(msg))\n\tif err != nil {\n\t\tserialize.KVListFormat(&b.Buffer, \"err\", err)\n\t}\n\tserialize.KVListFormat(&b.Buffer, keysAndValues...)\n\tl.printDepth(s, nil, nil, depth+1, &b.Buffer)\n\t// Make the buffer available for reuse.\n\tbuffer.PutBuffer(b)\n}\n\n// SetOutput sets the output destination for all severities\nfunc SetOutput(w io.Writer) {\n\tlogging.mu.Lock()\n\tdefer logging.mu.Unlock()\n\tfor s := severity.FatalLog; s >= severity.InfoLog; s-- {\n\t\tlogging.file[s] = w\n\t}\n}\n\n// SetOutputBySeverity sets the output destination for specific severity\nfunc SetOutputBySeverity(name string, w io.Writer) {\n\tlogging.mu.Lock()\n\tdefer logging.mu.Unlock()\n\tsev, ok := severity.ByName(name)\n\tif !ok {\n\t\tpanic(fmt.Sprintf(\"SetOutputBySeverity(%q): unrecognized severity name\", name))\n\t}\n\tlogging.file[sev] = w\n}\n\n// LogToStderr sets whether to log exclusively to stderr, bypassing outputs\nfunc LogToStderr(stderr bool) {\n\tlogging.mu.Lock()\n\tdefer logging.mu.Unlock()\n\n\tlogging.toStderr = stderr\n}\n\n// output writes the data to the log files and releases the buffer.\nfunc (l *loggingT) output(s severity.Severity, logger *logWriter, buf *buffer.Buffer, depth int, file string, line int, alsoToStderr bool) {\n\tvar isLocked = true\n\tl.mu.Lock()\n\tdefer func() {\n\t\tif isLocked {\n\t\t\t// Unlock before returning in case that it wasn't done already.\n\t\t\tl.mu.Unlock()\n\t\t}\n\t}()\n\n\tif l.traceLocation.isSet() {\n\t\tif l.traceLocation.match(file, line) {\n\t\t\tbuf.Write(dbg.Stacks(false))\n\t\t}\n\t}\n\tdata := buf.Bytes()\n\tif logger != nil {\n\t\tif logger.writeKlogBuffer != nil {\n\t\t\tlogger.writeKlogBuffer(data)\n\t\t} else {\n\t\t\tif len(data) > 0 && data[len(data)-1] == '\\n' {\n\t\t\t\tdata = data[:len(data)-1]\n\t\t\t}\n\t\t\t// TODO: set 'severity' and caller information as structured log info\n\t\t\t// keysAndValues := []interface{}{\"severity\", severityName[s], \"file\", file, \"line\", line}\n\t\t\tif s == severity.ErrorLog {\n\t\t\t\tlogger.WithCallDepth(depth+3).Error(nil, string(data))\n\t\t\t} else {\n\t\t\t\tlogger.WithCallDepth(depth + 3).Info(string(data))\n\t\t\t}\n\t\t}\n\t} else if l.toStderr {\n\t\tos.Stderr.Write(data)\n\t} else {\n\t\tif alsoToStderr || l.alsoToStderr || s >= l.stderrThreshold.get() {\n\t\t\tos.Stderr.Write(data)\n\t\t}\n\n\t\tif logging.logFile != \"\" {\n\t\t\t// Since we are using a single log file, all of the items in l.file array\n\t\t\t// will point to the same file, so just use one of them to write data.\n\t\t\tif l.file[severity.InfoLog] == nil {\n\t\t\t\tif err := l.createFiles(severity.InfoLog); err != nil {\n\t\t\t\t\tos.Stderr.Write(data) // Make sure the message appears somewhere.\n\t\t\t\t\tl.exit(err)\n\t\t\t\t}\n\t\t\t}\n\t\t\t_, _ = l.file[severity.InfoLog].Write(data)\n\t\t} else {\n\t\t\tif l.file[s] == nil {\n\t\t\t\tif err := l.createFiles(s); err != nil {\n\t\t\t\t\tos.Stderr.Write(data) // Make sure the message appears somewhere.\n\t\t\t\t\tl.exit(err)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif l.oneOutput {\n\t\t\t\t_, _ = l.file[s].Write(data)\n\t\t\t} else {\n\t\t\t\tswitch s {\n\t\t\t\tcase severity.FatalLog:\n\t\t\t\t\t_, _ = l.file[severity.FatalLog].Write(data)\n\t\t\t\t\tfallthrough\n\t\t\t\tcase severity.ErrorLog:\n\t\t\t\t\t_, _ = l.file[severity.ErrorLog].Write(data)\n\t\t\t\t\tfallthrough\n\t\t\t\tcase severity.WarningLog:\n\t\t\t\t\t_, _ = l.file[severity.WarningLog].Write(data)\n\t\t\t\t\tfallthrough\n\t\t\t\tcase severity.InfoLog:\n\t\t\t\t\t_, _ = l.file[severity.InfoLog].Write(data)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tif s == severity.FatalLog {\n\t\t// If we got here via Exit rather than Fatal, print no stacks.\n\t\tif atomic.LoadUint32(&fatalNoStacks) > 0 {\n\t\t\tl.mu.Unlock()\n\t\t\tisLocked = false\n\t\t\ttimeoutFlush(ExitFlushTimeout)\n\t\t\tOsExit(1)\n\t\t}\n\t\t// Dump all goroutine stacks before exiting.\n\t\t// First, make sure we see the trace for the current goroutine on standard error.\n\t\t// If -logtostderr has been specified, the loop below will do that anyway\n\t\t// as the first stack in the full dump.\n\t\tif !l.toStderr {\n\t\t\tos.Stderr.Write(dbg.Stacks(false))\n\t\t}\n\n\t\t// Write the stack trace for all goroutines to the files.\n\t\ttrace := dbg.Stacks(true)\n\t\tlogExitFunc = func(error) {} // If we get a write error, we'll still exit below.\n\t\tfor log := severity.FatalLog; log >= severity.InfoLog; log-- {\n\t\t\tif f := l.file[log]; f != nil { // Can be nil if -logtostderr is set.\n\t\t\t\t_, _ = f.Write(trace)\n\t\t\t}\n\t\t}\n\t\tl.mu.Unlock()\n\t\tisLocked = false\n\t\ttimeoutFlush(ExitFlushTimeout)\n\t\tOsExit(255) // C++ uses -1, which is silly because it's anded with 255 anyway.\n\t}\n\tbuffer.PutBuffer(buf)\n\n\tif stats := severityStats[s]; stats != nil {\n\t\tatomic.AddInt64(&stats.lines, 1)\n\t\tatomic.AddInt64(&stats.bytes, int64(len(data)))\n\t}\n}\n\n// logExitFunc provides a simple mechanism to override the default behavior\n// of exiting on error. Used in testing and to guarantee we reach a required exit\n// for fatal logs. Instead, exit could be a function rather than a method but that\n// would make its use clumsier.\nvar logExitFunc func(error)\n\n// exit is called if there is trouble creating or writing log files.\n// It flushes the logs and exits the program; there's no point in hanging around.\n// l.mu is held.\nfunc (l *loggingT) exit(err error) {\n\tfmt.Fprintf(os.Stderr, \"log: exiting because of error: %s\\n\", err)\n\t// If logExitFunc is set, we do that instead of exiting.\n\tif logExitFunc != nil {\n\t\tlogExitFunc(err)\n\t\treturn\n\t}\n\tneedToSync := l.flushAll()\n\tl.syncAll(needToSync)\n\tOsExit(2)\n}\n\n// syncBuffer joins a bufio.Writer to its underlying file, providing access to the\n// file's Sync method and providing a wrapper for the Write method that provides log\n// file rotation. There are conflicting methods, so the file cannot be embedded.\n// l.mu is held for all its methods.\ntype syncBuffer struct {\n\tlogger *loggingT\n\t*bufio.Writer\n\tfile     *os.File\n\tsev      severity.Severity\n\tnbytes   uint64 // The number of bytes written to this file\n\tmaxbytes uint64 // The max number of bytes this syncBuffer.file can hold before cleaning up.\n}\n\n// CalculateMaxSize returns the real max size in bytes after considering the default max size and the flag options.\nfunc CalculateMaxSize() uint64 {\n\tif logging.logFile != \"\" {\n\t\tif logging.logFileMaxSizeMB == 0 {\n\t\t\t// If logFileMaxSizeMB is zero, we don't have limitations on the log size.\n\t\t\treturn math.MaxUint64\n\t\t}\n\t\t// Flag logFileMaxSizeMB is in MB for user convenience.\n\t\treturn logging.logFileMaxSizeMB * 1024 * 1024\n\t}\n\t// If \"log_file\" flag is not specified, the target file (sb.file) will be cleaned up when reaches a fixed size.\n\treturn MaxSize\n}\n\nfunc (sb *syncBuffer) Write(p []byte) (n int, err error) {\n\tif sb.nbytes+uint64(len(p)) >= sb.maxbytes {\n\t\tif err := sb.rotateFile(time.Now(), false); err != nil {\n\t\t\tsb.logger.exit(err)\n\t\t}\n\t}\n\tn, err = sb.Writer.Write(p)\n\tsb.nbytes += uint64(n)\n\tif err != nil {\n\t\tsb.logger.exit(err)\n\t}\n\treturn\n}\n\n// rotateFile closes the syncBuffer's file and starts a new one.\n// The startup argument indicates whether this is the initial startup of klog.\n// If startup is true, existing files are opened for appending instead of truncated.\nfunc (sb *syncBuffer) rotateFile(now time.Time, startup bool) error {\n\tif sb.file != nil {\n\t\tsb.Flush()\n\t\tsb.file.Close()\n\t}\n\tvar err error\n\tsb.file, _, err = create(severity.Name[sb.sev], now, startup)\n\tif err != nil {\n\t\treturn err\n\t}\n\tif startup {\n\t\tfileInfo, err := sb.file.Stat()\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"file stat could not get fileinfo: %v\", err)\n\t\t}\n\t\t// init file size\n\t\tsb.nbytes = uint64(fileInfo.Size())\n\t} else {\n\t\tsb.nbytes = 0\n\t}\n\tsb.Writer = bufio.NewWriterSize(sb.file, bufferSize)\n\n\tif sb.logger.skipLogHeaders {\n\t\treturn nil\n\t}\n\n\t// Write header.\n\tvar buf bytes.Buffer\n\tfmt.Fprintf(&buf, \"Log file created at: %s\\n\", now.Format(\"2006/01/02 15:04:05\"))\n\tfmt.Fprintf(&buf, \"Running on machine: %s\\n\", host)\n\tfmt.Fprintf(&buf, \"Binary: Built with %s %s for %s/%s\\n\", runtime.Compiler, runtime.Version(), runtime.GOOS, runtime.GOARCH)\n\tfmt.Fprintf(&buf, \"Log line format: [IWEF]mmdd hh:mm:ss.uuuuuu threadid file:line] msg\\n\")\n\tn, err := sb.file.Write(buf.Bytes())\n\tsb.nbytes += uint64(n)\n\treturn err\n}\n\n// bufferSize sizes the buffer associated with each log file. It's large\n// so that log records can accumulate without the logging thread blocking\n// on disk I/O. The flushDaemon will block instead.\nconst bufferSize = 256 * 1024\n\n// createFiles creates all the log files for severity from sev down to infoLog.\n// l.mu is held.\nfunc (l *loggingT) createFiles(sev severity.Severity) error {\n\tinterval := l.flushInterval\n\tif interval == 0 {\n\t\tinterval = flushInterval\n\t}\n\tl.flushD.run(interval)\n\tnow := time.Now()\n\t// Files are created in decreasing severity order, so as soon as we find one\n\t// has already been created, we can stop.\n\tfor s := sev; s >= severity.InfoLog && l.file[s] == nil; s-- {\n\t\tsb := &syncBuffer{\n\t\t\tlogger:   l,\n\t\t\tsev:      s,\n\t\t\tmaxbytes: CalculateMaxSize(),\n\t\t}\n\t\tif err := sb.rotateFile(now, true); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tl.file[s] = sb\n\t}\n\treturn nil\n}\n\nconst flushInterval = 5 * time.Second\n\n// flushDaemon periodically flushes the log file buffers.\ntype flushDaemon struct {\n\tmu       sync.Mutex\n\tclock    clock.Clock\n\tflush    func()\n\tstopC    chan struct{}\n\tstopDone chan struct{}\n}\n\n// newFlushDaemon returns a new flushDaemon. If the passed clock is nil, a\n// clock.RealClock is used.\nfunc newFlushDaemon(flush func(), tickClock clock.Clock) *flushDaemon {\n\tif tickClock == nil {\n\t\ttickClock = clock.RealClock{}\n\t}\n\treturn &flushDaemon{\n\t\tflush: flush,\n\t\tclock: tickClock,\n\t}\n}\n\n// run starts a goroutine that periodically calls the daemons flush function.\n// Calling run on an already running daemon will have no effect.\nfunc (f *flushDaemon) run(interval time.Duration) {\n\tf.mu.Lock()\n\tdefer f.mu.Unlock()\n\n\tif f.stopC != nil { // daemon already running\n\t\treturn\n\t}\n\n\tf.stopC = make(chan struct{}, 1)\n\tf.stopDone = make(chan struct{}, 1)\n\n\tticker := f.clock.NewTicker(interval)\n\tgo func() {\n\t\tdefer ticker.Stop()\n\t\tdefer func() { f.stopDone <- struct{}{} }()\n\t\tfor {\n\t\t\tselect {\n\t\t\tcase <-ticker.C():\n\t\t\t\tf.flush()\n\t\t\tcase <-f.stopC:\n\t\t\t\tf.flush()\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}()\n}\n\n// stop stops the running flushDaemon and waits until the daemon has shut down.\n// Calling stop on a daemon that isn't running will have no effect.\nfunc (f *flushDaemon) stop() {\n\tf.mu.Lock()\n\tdefer f.mu.Unlock()\n\n\tif f.stopC == nil { // daemon not running\n\t\treturn\n\t}\n\n\tf.stopC <- struct{}{}\n\t<-f.stopDone\n\n\tf.stopC = nil\n\tf.stopDone = nil\n}\n\n// isRunning returns true if the flush daemon is running.\nfunc (f *flushDaemon) isRunning() bool {\n\tf.mu.Lock()\n\tdefer f.mu.Unlock()\n\treturn f.stopC != nil\n}\n\n// StopFlushDaemon stops the flush daemon, if running, and flushes once.\n// This prevents klog from leaking goroutines on shutdown. After stopping\n// the daemon, you can still manually flush buffers again by calling Flush().\nfunc StopFlushDaemon() {\n\tlogging.flushD.stop()\n}\n\n// StartFlushDaemon ensures that the flush daemon runs with the given delay\n// between flush calls. If it is already running, it gets restarted.\nfunc StartFlushDaemon(interval time.Duration) {\n\tStopFlushDaemon()\n\tlogging.flushD.run(interval)\n}\n\n// lockAndFlushAll is like flushAll but locks l.mu first.\nfunc (l *loggingT) lockAndFlushAll() {\n\tl.mu.Lock()\n\tneedToSync := l.flushAll()\n\tl.mu.Unlock()\n\t// Some environments are slow when syncing and holding the lock might cause contention.\n\tl.syncAll(needToSync)\n}\n\n// flushAll flushes all the logs\n// l.mu is held.\n//\n// The result is the number of files which need to be synced and the pointers to them.\nfunc (l *loggingT) flushAll() fileArray {\n\tvar needToSync fileArray\n\n\t// Flush from fatal down, in case there's trouble flushing.\n\tfor s := severity.FatalLog; s >= severity.InfoLog; s-- {\n\t\tfile := l.file[s]\n\t\tif sb, ok := file.(*syncBuffer); ok && sb.file != nil {\n\t\t\t_ = sb.Flush() // ignore error\n\t\t\tneedToSync.files[needToSync.num] = sb.file\n\t\t\tneedToSync.num++\n\t\t}\n\t}\n\tif logging.loggerOptions.flush != nil {\n\t\tlogging.loggerOptions.flush()\n\t}\n\treturn needToSync\n}\n\ntype fileArray struct {\n\tnum   int\n\tfiles [severity.NumSeverity]*os.File\n}\n\n// syncAll attempts to \"sync\" their data to disk.\nfunc (l *loggingT) syncAll(needToSync fileArray) {\n\t// Flush from fatal down, in case there's trouble flushing.\n\tfor i := 0; i < needToSync.num; i++ {\n\t\t_ = needToSync.files[i].Sync() // ignore error\n\t}\n}\n\n// CopyStandardLogTo arranges for messages written to the Go \"log\" package's\n// default logs to also appear in the Google logs for the named and lower\n// severities.  Subsequent changes to the standard log's default output location\n// or format may break this behavior.\n//\n// Valid names are \"INFO\", \"WARNING\", \"ERROR\", and \"FATAL\".  If the name is not\n// recognized, CopyStandardLogTo panics.\nfunc CopyStandardLogTo(name string) {\n\tsev, ok := severity.ByName(name)\n\tif !ok {\n\t\tpanic(fmt.Sprintf(\"log.CopyStandardLogTo(%q): unrecognized severity name\", name))\n\t}\n\t// Set a log format that captures the user's file and line:\n\t//   d.go:23: message\n\tstdLog.SetFlags(stdLog.Lshortfile)\n\tstdLog.SetOutput(logBridge(sev))\n}\n\n// NewStandardLogger returns a Logger that writes to the klog logs for the\n// named and lower severities.\n//\n// Valid names are \"INFO\", \"WARNING\", \"ERROR\", and \"FATAL\". If the name is not\n// recognized, NewStandardLogger panics.\nfunc NewStandardLogger(name string) *stdLog.Logger {\n\tsev, ok := severity.ByName(name)\n\tif !ok {\n\t\tpanic(fmt.Sprintf(\"klog.NewStandardLogger(%q): unknown severity\", name))\n\t}\n\treturn stdLog.New(logBridge(sev), \"\", stdLog.Lshortfile)\n}\n\n// logBridge provides the Write method that enables CopyStandardLogTo to connect\n// Go's standard logs to the logs provided by this package.\ntype logBridge severity.Severity\n\n// Write parses the standard logging line and passes its components to the\n// logger for severity(lb).\nfunc (lb logBridge) Write(b []byte) (n int, err error) {\n\tvar (\n\t\tfile = \"???\"\n\t\tline = 1\n\t\ttext string\n\t)\n\t// Split \"d.go:23: message\" into \"d.go\", \"23\", and \"message\".\n\tif parts := bytes.SplitN(b, []byte{':'}, 3); len(parts) != 3 || len(parts[0]) < 1 || len(parts[2]) < 1 {\n\t\ttext = fmt.Sprintf(\"bad log format: %s\", b)\n\t} else {\n\t\tfile = string(parts[0])\n\t\ttext = string(parts[2][1:]) // skip leading space\n\t\tline, err = strconv.Atoi(string(parts[1]))\n\t\tif err != nil {\n\t\t\ttext = fmt.Sprintf(\"bad line number: %s\", b)\n\t\t\tline = 1\n\t\t}\n\t}\n\t// printWithFileLine with alsoToStderr=true, so standard log messages\n\t// always appear on standard error.\n\tlogging.printWithFileLine(severity.Severity(lb), logging.logger, logging.filter, file, line, true, text)\n\treturn len(b), nil\n}\n\n// setV computes and remembers the V level for a given PC\n// when vmodule is enabled.\n// File pattern matching takes the basename of the file, stripped\n// of its .go suffix, and uses filepath.Match, which is a little more\n// general than the *? matching used in C++.\n// l.mu is held.\nfunc (l *loggingT) setV(pc uintptr) Level {\n\tfn := runtime.FuncForPC(pc)\n\tfile, _ := fn.FileLine(pc)\n\t// The file is something like /a/b/c/d.go. We want just the d.\n\tfile = strings.TrimSuffix(file, \".go\")\n\tif slash := strings.LastIndex(file, \"/\"); slash >= 0 {\n\t\tfile = file[slash+1:]\n\t}\n\tfor _, filter := range l.vmodule.filter {\n\t\tif filter.match(file) {\n\t\t\tl.vmap[pc] = filter.level\n\t\t\treturn filter.level\n\t\t}\n\t}\n\tl.vmap[pc] = 0\n\treturn 0\n}\n\n// Verbose is a boolean type that implements Infof (like Printf) etc.\n// See the documentation of V for more information.\ntype Verbose struct {\n\tenabled bool\n\tlogger  *logWriter\n}\n\nfunc newVerbose(level Level, b bool) Verbose {\n\tif logging.logger == nil {\n\t\treturn Verbose{b, nil}\n\t}\n\tv := logging.logger.V(int(level))\n\treturn Verbose{b, &logWriter{Logger: v, writeKlogBuffer: logging.loggerOptions.writeKlogBuffer}}\n}\n\n// V reports whether verbosity at the call site is at least the requested level.\n// The returned value is a struct of type Verbose, which implements Info, Infoln\n// and Infof. These methods will write to the Info log if called.\n// Thus, one may write either\n//\n//\tif klog.V(2).Enabled() { klog.Info(\"log this\") }\n//\n// or\n//\n//\tklog.V(2).Info(\"log this\")\n//\n// The second form is shorter but the first is cheaper if logging is off because it does\n// not evaluate its arguments.\n//\n// Whether an individual call to V generates a log record depends on the setting of\n// the -v and -vmodule flags; both are off by default. The V call will log if its level\n// is less than or equal to the value of the -v flag, or alternatively if its level is\n// less than or equal to the value of the -vmodule pattern matching the source file\n// containing the call.\nfunc V(level Level) Verbose {\n\treturn VDepth(1, level)\n}\n\n// VDepth is a variant of V that accepts a number of stack frames that will be\n// skipped when checking the -vmodule patterns. VDepth(0) is equivalent to\n// V().\nfunc VDepth(depth int, level Level) Verbose {\n\t// This function tries hard to be cheap unless there's work to do.\n\t// The fast path is two atomic loads and compares.\n\n\t// Here is a cheap but safe test to see if V logging is enabled globally.\n\tif logging.verbosity.get() >= level {\n\t\treturn newVerbose(level, true)\n\t}\n\n\t// It's off globally but vmodule may still be set.\n\t// Here is another cheap but safe test to see if vmodule is enabled.\n\tif atomic.LoadInt32(&logging.filterLength) > 0 {\n\t\t// Now we need a proper lock to use the logging structure. The pcs field\n\t\t// is shared so we must lock before accessing it. This is fairly expensive,\n\t\t// but if V logging is enabled we're slow anyway.\n\t\tlogging.mu.Lock()\n\t\tdefer logging.mu.Unlock()\n\t\tif runtime.Callers(2+depth, logging.pcs[:]) == 0 {\n\t\t\treturn newVerbose(level, false)\n\t\t}\n\t\t// runtime.Callers returns \"return PCs\", but we want\n\t\t// to look up the symbolic information for the call,\n\t\t// so subtract 1 from the PC. runtime.CallersFrames\n\t\t// would be cleaner, but allocates.\n\t\tpc := logging.pcs[0] - 1\n\t\tv, ok := logging.vmap[pc]\n\t\tif !ok {\n\t\t\tv = logging.setV(pc)\n\t\t}\n\t\treturn newVerbose(level, v >= level)\n\t}\n\treturn newVerbose(level, false)\n}\n\n// Enabled will return true if this log level is enabled, guarded by the value\n// of v.\n// See the documentation of V for usage.\nfunc (v Verbose) Enabled() bool {\n\treturn v.enabled\n}\n\n// Info is equivalent to the global Info function, guarded by the value of v.\n// See the documentation of V for usage.\nfunc (v Verbose) Info(args ...interface{}) {\n\tif v.enabled {\n\t\tlogging.print(severity.InfoLog, v.logger, logging.filter, args...)\n\t}\n}\n\n// InfoDepth is equivalent to the global InfoDepth function, guarded by the value of v.\n// See the documentation of V for usage.\nfunc (v Verbose) InfoDepth(depth int, args ...interface{}) {\n\tif v.enabled {\n\t\tlogging.printDepth(severity.InfoLog, v.logger, logging.filter, depth, args...)\n\t}\n}\n\n// Infoln is equivalent to the global Infoln function, guarded by the value of v.\n// See the documentation of V for usage.\nfunc (v Verbose) Infoln(args ...interface{}) {\n\tif v.enabled {\n\t\tlogging.println(severity.InfoLog, v.logger, logging.filter, args...)\n\t}\n}\n\n// InfolnDepth is equivalent to the global InfolnDepth function, guarded by the value of v.\n// See the documentation of V for usage.\nfunc (v Verbose) InfolnDepth(depth int, args ...interface{}) {\n\tif v.enabled {\n\t\tlogging.printlnDepth(severity.InfoLog, v.logger, logging.filter, depth, args...)\n\t}\n}\n\n// Infof is equivalent to the global Infof function, guarded by the value of v.\n// See the documentation of V for usage.\nfunc (v Verbose) Infof(format string, args ...interface{}) {\n\tif v.enabled {\n\t\tlogging.printf(severity.InfoLog, v.logger, logging.filter, format, args...)\n\t}\n}\n\n// InfofDepth is equivalent to the global InfofDepth function, guarded by the value of v.\n// See the documentation of V for usage.\nfunc (v Verbose) InfofDepth(depth int, format string, args ...interface{}) {\n\tif v.enabled {\n\t\tlogging.printfDepth(severity.InfoLog, v.logger, logging.filter, depth, format, args...)\n\t}\n}\n\n// InfoS is equivalent to the global InfoS function, guarded by the value of v.\n// See the documentation of V for usage.\nfunc (v Verbose) InfoS(msg string, keysAndValues ...interface{}) {\n\tif v.enabled {\n\t\tlogging.infoS(v.logger, logging.filter, 0, msg, keysAndValues...)\n\t}\n}\n\n// InfoSDepth acts as InfoS but uses depth to determine which call frame to log.\n// InfoSDepth(0, \"msg\") is the same as InfoS(\"msg\").\nfunc InfoSDepth(depth int, msg string, keysAndValues ...interface{}) {\n\tlogging.infoS(logging.logger, logging.filter, depth, msg, keysAndValues...)\n}\n\n// InfoSDepth is equivalent to the global InfoSDepth function, guarded by the value of v.\n// See the documentation of V for usage.\nfunc (v Verbose) InfoSDepth(depth int, msg string, keysAndValues ...interface{}) {\n\tif v.enabled {\n\t\tlogging.infoS(v.logger, logging.filter, depth, msg, keysAndValues...)\n\t}\n}\n\n// Deprecated: Use ErrorS instead.\nfunc (v Verbose) Error(err error, msg string, args ...interface{}) {\n\tif v.enabled {\n\t\tlogging.errorS(err, v.logger, logging.filter, 0, msg, args...)\n\t}\n}\n\n// ErrorS is equivalent to the global Error function, guarded by the value of v.\n// See the documentation of V for usage.\nfunc (v Verbose) ErrorS(err error, msg string, keysAndValues ...interface{}) {\n\tif v.enabled {\n\t\tlogging.errorS(err, v.logger, logging.filter, 0, msg, keysAndValues...)\n\t}\n}\n\n// Info logs to the INFO log.\n// Arguments are handled in the manner of fmt.Print; a newline is appended if missing.\nfunc Info(args ...interface{}) {\n\tlogging.print(severity.InfoLog, logging.logger, logging.filter, args...)\n}\n\n// InfoDepth acts as Info but uses depth to determine which call frame to log.\n// InfoDepth(0, \"msg\") is the same as Info(\"msg\").\nfunc InfoDepth(depth int, args ...interface{}) {\n\tlogging.printDepth(severity.InfoLog, logging.logger, logging.filter, depth, args...)\n}\n\n// Infoln logs to the INFO log.\n// Arguments are handled in the manner of fmt.Println; a newline is always appended.\nfunc Infoln(args ...interface{}) {\n\tlogging.println(severity.InfoLog, logging.logger, logging.filter, args...)\n}\n\n// InfolnDepth acts as Infoln but uses depth to determine which call frame to log.\n// InfolnDepth(0, \"msg\") is the same as Infoln(\"msg\").\nfunc InfolnDepth(depth int, args ...interface{}) {\n\tlogging.printlnDepth(severity.InfoLog, logging.logger, logging.filter, depth, args...)\n}\n\n// Infof logs to the INFO log.\n// Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\nfunc Infof(format string, args ...interface{}) {\n\tlogging.printf(severity.InfoLog, logging.logger, logging.filter, format, args...)\n}\n\n// InfofDepth acts as Infof but uses depth to determine which call frame to log.\n// InfofDepth(0, \"msg\", args...) is the same as Infof(\"msg\", args...).\nfunc InfofDepth(depth int, format string, args ...interface{}) {\n\tlogging.printfDepth(severity.InfoLog, logging.logger, logging.filter, depth, format, args...)\n}\n\n// InfoS structured logs to the INFO log.\n// The msg argument used to add constant description to the log line.\n// The key/value pairs would be join by \"=\" ; a newline is always appended.\n//\n// Basic examples:\n// >> klog.InfoS(\"Pod status updated\", \"pod\", \"kubedns\", \"status\", \"ready\")\n// output:\n// >> I1025 00:15:15.525108       1 controller_utils.go:116] \"Pod status updated\" pod=\"kubedns\" status=\"ready\"\nfunc InfoS(msg string, keysAndValues ...interface{}) {\n\tlogging.infoS(logging.logger, logging.filter, 0, msg, keysAndValues...)\n}\n\n// Warning logs to the WARNING and INFO logs.\n// Arguments are handled in the manner of fmt.Print; a newline is appended if missing.\nfunc Warning(args ...interface{}) {\n\tlogging.print(severity.WarningLog, logging.logger, logging.filter, args...)\n}\n\n// WarningDepth acts as Warning but uses depth to determine which call frame to log.\n// WarningDepth(0, \"msg\") is the same as Warning(\"msg\").\nfunc WarningDepth(depth int, args ...interface{}) {\n\tlogging.printDepth(severity.WarningLog, logging.logger, logging.filter, depth, args...)\n}\n\n// Warningln logs to the WARNING and INFO logs.\n// Arguments are handled in the manner of fmt.Println; a newline is always appended.\nfunc Warningln(args ...interface{}) {\n\tlogging.println(severity.WarningLog, logging.logger, logging.filter, args...)\n}\n\n// WarninglnDepth acts as Warningln but uses depth to determine which call frame to log.\n// WarninglnDepth(0, \"msg\") is the same as Warningln(\"msg\").\nfunc WarninglnDepth(depth int, args ...interface{}) {\n\tlogging.printlnDepth(severity.WarningLog, logging.logger, logging.filter, depth, args...)\n}\n\n// Warningf logs to the WARNING and INFO logs.\n// Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\nfunc Warningf(format string, args ...interface{}) {\n\tlogging.printf(severity.WarningLog, logging.logger, logging.filter, format, args...)\n}\n\n// WarningfDepth acts as Warningf but uses depth to determine which call frame to log.\n// WarningfDepth(0, \"msg\", args...) is the same as Warningf(\"msg\", args...).\nfunc WarningfDepth(depth int, format string, args ...interface{}) {\n\tlogging.printfDepth(severity.WarningLog, logging.logger, logging.filter, depth, format, args...)\n}\n\n// Error logs to the ERROR, WARNING, and INFO logs.\n// Arguments are handled in the manner of fmt.Print; a newline is appended if missing.\nfunc Error(args ...interface{}) {\n\tlogging.print(severity.ErrorLog, logging.logger, logging.filter, args...)\n}\n\n// ErrorDepth acts as Error but uses depth to determine which call frame to log.\n// ErrorDepth(0, \"msg\") is the same as Error(\"msg\").\nfunc ErrorDepth(depth int, args ...interface{}) {\n\tlogging.printDepth(severity.ErrorLog, logging.logger, logging.filter, depth, args...)\n}\n\n// Errorln logs to the ERROR, WARNING, and INFO logs.\n// Arguments are handled in the manner of fmt.Println; a newline is always appended.\nfunc Errorln(args ...interface{}) {\n\tlogging.println(severity.ErrorLog, logging.logger, logging.filter, args...)\n}\n\n// ErrorlnDepth acts as Errorln but uses depth to determine which call frame to log.\n// ErrorlnDepth(0, \"msg\") is the same as Errorln(\"msg\").\nfunc ErrorlnDepth(depth int, args ...interface{}) {\n\tlogging.printlnDepth(severity.ErrorLog, logging.logger, logging.filter, depth, args...)\n}\n\n// Errorf logs to the ERROR, WARNING, and INFO logs.\n// Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\nfunc Errorf(format string, args ...interface{}) {\n\tlogging.printf(severity.ErrorLog, logging.logger, logging.filter, format, args...)\n}\n\n// ErrorfDepth acts as Errorf but uses depth to determine which call frame to log.\n// ErrorfDepth(0, \"msg\", args...) is the same as Errorf(\"msg\", args...).\nfunc ErrorfDepth(depth int, format string, args ...interface{}) {\n\tlogging.printfDepth(severity.ErrorLog, logging.logger, logging.filter, depth, format, args...)\n}\n\n// ErrorS structured logs to the ERROR, WARNING, and INFO logs.\n// the err argument used as \"err\" field of log line.\n// The msg argument used to add constant description to the log line.\n// The key/value pairs would be join by \"=\" ; a newline is always appended.\n//\n// Basic examples:\n// >> klog.ErrorS(err, \"Failed to update pod status\")\n// output:\n// >> E1025 00:15:15.525108       1 controller_utils.go:114] \"Failed to update pod status\" err=\"timeout\"\nfunc ErrorS(err error, msg string, keysAndValues ...interface{}) {\n\tlogging.errorS(err, logging.logger, logging.filter, 0, msg, keysAndValues...)\n}\n\n// ErrorSDepth acts as ErrorS but uses depth to determine which call frame to log.\n// ErrorSDepth(0, \"msg\") is the same as ErrorS(\"msg\").\nfunc ErrorSDepth(depth int, err error, msg string, keysAndValues ...interface{}) {\n\tlogging.errorS(err, logging.logger, logging.filter, depth, msg, keysAndValues...)\n}\n\n// Fatal logs to the FATAL, ERROR, WARNING, and INFO logs,\n// prints stack trace(s), then calls OsExit(255).\n//\n// Stderr only receives a dump of the current goroutine's stack trace. Log files,\n// if there are any, receive a dump of the stack traces in all goroutines.\n//\n// Callers who want more control over handling of fatal events may instead use a\n// combination of different functions:\n//   - some info or error logging function, optionally with a stack trace\n//     value generated by github.com/go-logr/lib/dbg.Backtrace\n//   - Flush to flush pending log data\n//   - panic, os.Exit or returning to the caller with an error\n//\n// Arguments are handled in the manner of fmt.Print; a newline is appended if missing.\nfunc Fatal(args ...interface{}) {\n\tlogging.print(severity.FatalLog, logging.logger, logging.filter, args...)\n}\n\n// FatalDepth acts as Fatal but uses depth to determine which call frame to log.\n// FatalDepth(0, \"msg\") is the same as Fatal(\"msg\").\nfunc FatalDepth(depth int, args ...interface{}) {\n\tlogging.printDepth(severity.FatalLog, logging.logger, logging.filter, depth, args...)\n}\n\n// Fatalln logs to the FATAL, ERROR, WARNING, and INFO logs,\n// including a stack trace of all running goroutines, then calls OsExit(255).\n// Arguments are handled in the manner of fmt.Println; a newline is always appended.\nfunc Fatalln(args ...interface{}) {\n\tlogging.println(severity.FatalLog, logging.logger, logging.filter, args...)\n}\n\n// FatallnDepth acts as Fatalln but uses depth to determine which call frame to log.\n// FatallnDepth(0, \"msg\") is the same as Fatalln(\"msg\").\nfunc FatallnDepth(depth int, args ...interface{}) {\n\tlogging.printlnDepth(severity.FatalLog, logging.logger, logging.filter, depth, args...)\n}\n\n// Fatalf logs to the FATAL, ERROR, WARNING, and INFO logs,\n// including a stack trace of all running goroutines, then calls OsExit(255).\n// Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\nfunc Fatalf(format string, args ...interface{}) {\n\tlogging.printf(severity.FatalLog, logging.logger, logging.filter, format, args...)\n}\n\n// FatalfDepth acts as Fatalf but uses depth to determine which call frame to log.\n// FatalfDepth(0, \"msg\", args...) is the same as Fatalf(\"msg\", args...).\nfunc FatalfDepth(depth int, format string, args ...interface{}) {\n\tlogging.printfDepth(severity.FatalLog, logging.logger, logging.filter, depth, format, args...)\n}\n\n// fatalNoStacks is non-zero if we are to exit without dumping goroutine stacks.\n// It allows Exit and relatives to use the Fatal logs.\nvar fatalNoStacks uint32\n\n// Exit logs to the FATAL, ERROR, WARNING, and INFO logs, then calls OsExit(1).\n// Arguments are handled in the manner of fmt.Print; a newline is appended if missing.\nfunc Exit(args ...interface{}) {\n\tatomic.StoreUint32(&fatalNoStacks, 1)\n\tlogging.print(severity.FatalLog, logging.logger, logging.filter, args...)\n}\n\n// ExitDepth acts as Exit but uses depth to determine which call frame to log.\n// ExitDepth(0, \"msg\") is the same as Exit(\"msg\").\nfunc ExitDepth(depth int, args ...interface{}) {\n\tatomic.StoreUint32(&fatalNoStacks, 1)\n\tlogging.printDepth(severity.FatalLog, logging.logger, logging.filter, depth, args...)\n}\n\n// Exitln logs to the FATAL, ERROR, WARNING, and INFO logs, then calls OsExit(1).\nfunc Exitln(args ...interface{}) {\n\tatomic.StoreUint32(&fatalNoStacks, 1)\n\tlogging.println(severity.FatalLog, logging.logger, logging.filter, args...)\n}\n\n// ExitlnDepth acts as Exitln but uses depth to determine which call frame to log.\n// ExitlnDepth(0, \"msg\") is the same as Exitln(\"msg\").\nfunc ExitlnDepth(depth int, args ...interface{}) {\n\tatomic.StoreUint32(&fatalNoStacks, 1)\n\tlogging.printlnDepth(severity.FatalLog, logging.logger, logging.filter, depth, args...)\n}\n\n// Exitf logs to the FATAL, ERROR, WARNING, and INFO logs, then calls OsExit(1).\n// Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.\nfunc Exitf(format string, args ...interface{}) {\n\tatomic.StoreUint32(&fatalNoStacks, 1)\n\tlogging.printf(severity.FatalLog, logging.logger, logging.filter, format, args...)\n}\n\n// ExitfDepth acts as Exitf but uses depth to determine which call frame to log.\n// ExitfDepth(0, \"msg\", args...) is the same as Exitf(\"msg\", args...).\nfunc ExitfDepth(depth int, format string, args ...interface{}) {\n\tatomic.StoreUint32(&fatalNoStacks, 1)\n\tlogging.printfDepth(severity.FatalLog, logging.logger, logging.filter, depth, format, args...)\n}\n\n// LogFilter is a collection of functions that can filter all logging calls,\n// e.g. for sanitization of arguments and prevent accidental leaking of secrets.\ntype LogFilter interface {\n\tFilter(args []interface{}) []interface{}\n\tFilterF(format string, args []interface{}) (string, []interface{})\n\tFilterS(msg string, keysAndValues []interface{}) (string, []interface{})\n}\n\n// SetLogFilter installs a filter that is used for all log calls.\n//\n// Modifying the filter is not thread-safe and should be done while no other\n// goroutines invoke log calls, usually during program initialization.\nfunc SetLogFilter(filter LogFilter) {\n\tlogging.filter = filter\n}\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/klog_file.go",
    "content": "// Go support for leveled logs, analogous to https://code.google.com/p/google-glog/\n//\n// Copyright 2013 Google Inc. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//     http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n// File I/O for logs.\n\npackage klog\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n)\n\n// MaxSize is the maximum size of a log file in bytes.\nvar MaxSize uint64 = 1024 * 1024 * 1800\n\n// logDirs lists the candidate directories for new log files.\nvar logDirs []string\n\nfunc createLogDirs() {\n\tif logging.logDir != \"\" {\n\t\tlogDirs = append(logDirs, logging.logDir)\n\t}\n\tlogDirs = append(logDirs, os.TempDir())\n}\n\nvar (\n\tpid          = os.Getpid()\n\tprogram      = filepath.Base(os.Args[0])\n\thost         = \"unknownhost\"\n\tuserName     = \"unknownuser\"\n\tuserNameOnce sync.Once\n)\n\nfunc init() {\n\tif h, err := os.Hostname(); err == nil {\n\t\thost = shortHostname(h)\n\t}\n}\n\n// shortHostname returns its argument, truncating at the first period.\n// For instance, given \"www.google.com\" it returns \"www\".\nfunc shortHostname(hostname string) string {\n\tif i := strings.Index(hostname, \".\"); i >= 0 {\n\t\treturn hostname[:i]\n\t}\n\treturn hostname\n}\n\n// logName returns a new log file name containing tag, with start time t, and\n// the name for the symlink for tag.\nfunc logName(tag string, t time.Time) (name, link string) {\n\tname = fmt.Sprintf(\"%s.%s.%s.log.%s.%04d%02d%02d-%02d%02d%02d.%d\",\n\t\tprogram,\n\t\thost,\n\t\tgetUserName(),\n\t\ttag,\n\t\tt.Year(),\n\t\tt.Month(),\n\t\tt.Day(),\n\t\tt.Hour(),\n\t\tt.Minute(),\n\t\tt.Second(),\n\t\tpid)\n\treturn name, program + \".\" + tag\n}\n\nvar onceLogDirs sync.Once\n\n// create creates a new log file and returns the file and its filename, which\n// contains tag (\"INFO\", \"FATAL\", etc.) and t.  If the file is created\n// successfully, create also attempts to update the symlink for that tag, ignoring\n// errors.\n// The startup argument indicates whether this is the initial startup of klog.\n// If startup is true, existing files are opened for appending instead of truncated.\nfunc create(tag string, t time.Time, startup bool) (f *os.File, filename string, err error) {\n\tif logging.logFile != \"\" {\n\t\tf, err := openOrCreate(logging.logFile, startup)\n\t\tif err == nil {\n\t\t\treturn f, logging.logFile, nil\n\t\t}\n\t\treturn nil, \"\", fmt.Errorf(\"log: unable to create log: %v\", err)\n\t}\n\tonceLogDirs.Do(createLogDirs)\n\tif len(logDirs) == 0 {\n\t\treturn nil, \"\", errors.New(\"log: no log dirs\")\n\t}\n\tname, link := logName(tag, t)\n\tvar lastErr error\n\tfor _, dir := range logDirs {\n\t\tfname := filepath.Join(dir, name)\n\t\tf, err := openOrCreate(fname, startup)\n\t\tif err == nil {\n\t\t\tsymlink := filepath.Join(dir, link)\n\t\t\t_ = os.Remove(symlink)        // ignore err\n\t\t\t_ = os.Symlink(name, symlink) // ignore err\n\t\t\treturn f, fname, nil\n\t\t}\n\t\tlastErr = err\n\t}\n\treturn nil, \"\", fmt.Errorf(\"log: cannot create log: %v\", lastErr)\n}\n\n// The startup argument indicates whether this is the initial startup of klog.\n// If startup is true, existing files are opened for appending instead of truncated.\nfunc openOrCreate(name string, startup bool) (*os.File, error) {\n\tif startup {\n\t\tf, err := os.OpenFile(name, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)\n\t\treturn f, err\n\t}\n\tf, err := os.Create(name)\n\treturn f, err\n}\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/klog_file_others.go",
    "content": "//go:build !windows\n// +build !windows\n\npackage klog\n\nimport (\n\t\"os/user\"\n)\n\nfunc getUserName() string {\n\tuserNameOnce.Do(func() {\n\t\tcurrent, err := user.Current()\n\t\tif err == nil {\n\t\t\tuserName = current.Username\n\t\t}\n\t})\n\n\treturn userName\n}\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/klog_file_windows.go",
    "content": "//go:build windows\n// +build windows\n\npackage klog\n\nimport (\n\t\"os\"\n\t\"strings\"\n)\n\nfunc getUserName() string {\n\tuserNameOnce.Do(func() {\n\t\t// On Windows, the Go 'user' package requires netapi32.dll.\n\t\t// This affects Windows Nano Server:\n\t\t//   https://github.com/golang/go/issues/21867\n\t\t// Fallback to using environment variables.\n\t\tu := os.Getenv(\"USERNAME\")\n\t\tif len(u) == 0 {\n\t\t\treturn\n\t\t}\n\t\t// Sanitize the USERNAME since it may contain filepath separators.\n\t\tu = strings.Replace(u, `\\`, \"_\", -1)\n\n\t\t// user.Current().Username normally produces something like 'USERDOMAIN\\USERNAME'\n\t\td := os.Getenv(\"USERDOMAIN\")\n\t\tif len(d) != 0 {\n\t\t\tuserName = d + \"_\" + u\n\t\t} else {\n\t\t\tuserName = u\n\t\t}\n\t})\n\n\treturn userName\n}\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/klogr.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage klog\n\nimport (\n\t\"github.com/go-logr/logr\"\n\n\t\"k8s.io/klog/v2/internal/serialize\"\n)\n\nconst (\n\t// nameKey is used to log the `WithName` values as an additional attribute.\n\tnameKey = \"logger\"\n)\n\n// NewKlogr returns a logger that is functionally identical to\n// klogr.NewWithOptions(klogr.FormatKlog), i.e. it passes through to klog. The\n// difference is that it uses a simpler implementation.\nfunc NewKlogr() Logger {\n\treturn New(&klogger{})\n}\n\n// klogger is a subset of klogr/klogr.go. It had to be copied to break an\n// import cycle (klogr wants to use klog, and klog wants to use klogr).\ntype klogger struct {\n\tcallDepth int\n\n\t// hasPrefix is true if the first entry in values is the special\n\t// nameKey key/value. Such an entry gets added and later updated in\n\t// WithName.\n\thasPrefix bool\n\n\tvalues []interface{}\n\tgroups string\n}\n\nfunc (l *klogger) Init(info logr.RuntimeInfo) {\n\tl.callDepth += info.CallDepth\n}\n\nfunc (l *klogger) Info(level int, msg string, kvList ...interface{}) {\n\tmerged := serialize.MergeKVs(l.values, kvList)\n\t// Skip this function.\n\tVDepth(l.callDepth+1, Level(level)).InfoSDepth(l.callDepth+1, msg, merged...)\n}\n\nfunc (l *klogger) Enabled(level int) bool {\n\treturn VDepth(l.callDepth+1, Level(level)).Enabled()\n}\n\nfunc (l *klogger) Error(err error, msg string, kvList ...interface{}) {\n\tmerged := serialize.MergeKVs(l.values, kvList)\n\tErrorSDepth(l.callDepth+1, err, msg, merged...)\n}\n\n// WithName returns a new logr.Logger with the specified name appended.  klogr\n// uses '.' characters to separate name elements.  Callers should not pass '.'\n// in the provided name string, but this library does not actually enforce that.\nfunc (l klogger) WithName(name string) logr.LogSink {\n\tif l.hasPrefix {\n\t\t// Copy slice and modify value. No length checks and type\n\t\t// assertions are needed because hasPrefix is only true if the\n\t\t// first two elements exist and are key/value strings.\n\t\tv := make([]interface{}, 0, len(l.values))\n\t\tv = append(v, l.values...)\n\t\tprefix, _ := v[1].(string)\n\t\tv[1] = prefix + \".\" + name\n\t\tl.values = v\n\t} else {\n\t\t// Preprend new key/value pair.\n\t\tv := make([]interface{}, 0, 2+len(l.values))\n\t\tv = append(v, nameKey, name)\n\t\tv = append(v, l.values...)\n\t\tl.values = v\n\t\tl.hasPrefix = true\n\t}\n\treturn &l\n}\n\nfunc (l klogger) WithValues(kvList ...interface{}) logr.LogSink {\n\tl.values = serialize.WithValues(l.values, kvList)\n\treturn &l\n}\n\nfunc (l klogger) WithCallDepth(depth int) logr.LogSink {\n\tl.callDepth += depth\n\treturn &l\n}\n\nvar _ logr.LogSink = &klogger{}\nvar _ logr.CallDepthLogSink = &klogger{}\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/klogr_slog.go",
    "content": "//go:build go1.21\n// +build go1.21\n\n/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage klog\n\nimport (\n\t\"context\"\n\t\"log/slog\"\n\t\"strconv\"\n\t\"time\"\n\n\t\"github.com/go-logr/logr\"\n\n\t\"k8s.io/klog/v2/internal/buffer\"\n\t\"k8s.io/klog/v2/internal/serialize\"\n\t\"k8s.io/klog/v2/internal/severity\"\n\t\"k8s.io/klog/v2/internal/sloghandler\"\n)\n\nfunc (l *klogger) Handle(ctx context.Context, record slog.Record) error {\n\tif logging.logger != nil {\n\t\tif slogSink, ok := logging.logger.GetSink().(logr.SlogSink); ok {\n\t\t\t// Let that logger do the work.\n\t\t\treturn slogSink.Handle(ctx, record)\n\t\t}\n\t}\n\n\treturn sloghandler.Handle(ctx, record, l.groups, slogOutput)\n}\n\n// slogOutput corresponds to several different functions in klog.go.\n// It goes through some of the same checks and formatting steps before\n// it ultimately converges by calling logging.printWithInfos.\nfunc slogOutput(file string, line int, now time.Time, err error, s severity.Severity, msg string, kvList []interface{}) {\n\t// See infoS.\n\tif logging.logger != nil {\n\t\t// Taking this path happens when klog has a logger installed\n\t\t// as backend which doesn't support slog. Not good, we have to\n\t\t// guess about the call depth and drop the actual location.\n\t\tlogger := logging.logger.WithCallDepth(2)\n\t\tif s > severity.ErrorLog {\n\t\t\tlogger.Error(err, msg, kvList...)\n\t\t} else {\n\t\t\tlogger.Info(msg, kvList...)\n\t\t}\n\t\treturn\n\t}\n\n\t// See printS.\n\tb := buffer.GetBuffer()\n\tb.WriteString(strconv.Quote(msg))\n\tif err != nil {\n\t\tserialize.KVListFormat(&b.Buffer, \"err\", err)\n\t}\n\tserialize.KVListFormat(&b.Buffer, kvList...)\n\n\t// See print + header.\n\tbuf := logging.formatHeader(s, file, line, now)\n\tlogging.printWithInfos(buf, file, line, s, nil, nil, 0, &b.Buffer)\n\n\tbuffer.PutBuffer(b)\n}\n\nfunc (l *klogger) WithAttrs(attrs []slog.Attr) logr.SlogSink {\n\tclone := *l\n\tclone.values = serialize.WithValues(l.values, sloghandler.Attrs2KVList(l.groups, attrs))\n\treturn &clone\n}\n\nfunc (l *klogger) WithGroup(name string) logr.SlogSink {\n\tclone := *l\n\tif clone.groups != \"\" {\n\t\tclone.groups += \".\" + name\n\t} else {\n\t\tclone.groups = name\n\t}\n\treturn &clone\n}\n\nvar _ logr.SlogSink = &klogger{}\n"
  },
  {
    "path": "vendor/k8s.io/klog/v2/safeptr.go",
    "content": "//go:build go1.18\n// +build go1.18\n\n/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage klog\n\n// SafePtr is a function that takes a pointer of any type (T) as an argument.\n// If the provided pointer is not nil, it returns the same pointer. If it is nil, it returns nil instead.\n//\n// This function is particularly useful to prevent nil pointer dereferencing when:\n//\n//   - The type implements interfaces that are called by the logger, such as `fmt.Stringer`.\n//   - And these interface implementations do not perform nil checks themselves.\nfunc SafePtr[T any](p *T) any {\n\tif p == nil {\n\t\treturn nil\n\t}\n\treturn p\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/cached/cache.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package cached provides a cache mechanism based on etags to lazily\n// build, and/or cache results from expensive operation such that those\n// operations are not repeated unnecessarily. The operations can be\n// created as a tree, and replaced dynamically as needed.\n//\n// All the operations in this module are thread-safe.\n//\n// # Dependencies and types of caches\n//\n// This package uses a source/transform/sink model of caches to build\n// the dependency tree, and can be used as follows:\n//   - [Func]: A source cache that recomputes the content every time.\n//   - [Once]: A source cache that always produces the\n//     same content, it is only called once.\n//   - [Transform]: A cache that transforms data from one format to\n//     another. It's only refreshed when the source changes.\n//   - [Merge]: A cache that aggregates multiple caches in a map into one.\n//     It's only refreshed when the source changes.\n//   - [MergeList]: A cache that aggregates multiple caches in a list into one.\n//     It's only refreshed when the source changes.\n//   - [Atomic]: A cache adapter that atomically replaces the source with a new one.\n//   - [LastSuccess]: A cache adapter that caches the last successful and returns\n//     it if the next call fails. It extends [Atomic].\n//\n// # Etags\n//\n// Etags in this library is a cache version identifier. It doesn't\n// necessarily strictly match to the semantics of http `etags`, but are\n// somewhat inspired from it and function with the same principles.\n// Hashing the content is a good way to guarantee that your function is\n// never going to be called spuriously. In Kubernetes world, this could\n// be a `resourceVersion`, this can be an actual etag, a hash, a UUID\n// (if the cache always changes), or even a made-up string when the\n// content of the cache never changes.\npackage cached\n\nimport (\n\t\"fmt\"\n\t\"sync\"\n\t\"sync/atomic\"\n)\n\n// Value is wrapping a value behind a getter for lazy evaluation.\ntype Value[T any] interface {\n\tGet() (value T, etag string, err error)\n}\n\n// Result is wrapping T and error into a struct for cases where a tuple is more\n// convenient or necessary in Golang.\ntype Result[T any] struct {\n\tValue T\n\tEtag  string\n\tErr   error\n}\n\nfunc (r Result[T]) Get() (T, string, error) {\n\treturn r.Value, r.Etag, r.Err\n}\n\n// Func wraps a (thread-safe) function as a Value[T].\nfunc Func[T any](fn func() (T, string, error)) Value[T] {\n\treturn valueFunc[T](fn)\n}\n\ntype valueFunc[T any] func() (T, string, error)\n\nfunc (c valueFunc[T]) Get() (T, string, error) {\n\treturn c()\n}\n\n// Static returns constant values.\nfunc Static[T any](value T, etag string) Value[T] {\n\treturn Result[T]{Value: value, Etag: etag}\n}\n\n// Merge merges a of cached values. The merge function only gets called if any of\n// the dependency has changed.\n//\n// If any of the dependency returned an error before, or any of the\n// dependency returned an error this time, or if the mergeFn failed\n// before, then the function is run again.\n//\n// Note that this assumes there is no \"partial\" merge, the merge\n// function will remerge all the dependencies together everytime. Since\n// the list of dependencies is constant, there is no way to save some\n// partial merge information either.\n//\n// Also note that Golang map iteration is not stable. If the mergeFn\n// depends on the order iteration to be stable, it will need to\n// implement its own sorting or iteration order.\nfunc Merge[K comparable, T, V any](mergeFn func(results map[K]Result[T]) (V, string, error), caches map[K]Value[T]) Value[V] {\n\tlist := make([]Value[T], 0, len(caches))\n\n\t// map from index to key\n\tindexes := make(map[int]K, len(caches))\n\ti := 0\n\tfor k := range caches {\n\t\tlist = append(list, caches[k])\n\t\tindexes[i] = k\n\t\ti++\n\t}\n\n\treturn MergeList(func(results []Result[T]) (V, string, error) {\n\t\tif len(results) != len(indexes) {\n\t\t\tpanic(fmt.Errorf(\"invalid result length %d, expected %d\", len(results), len(indexes)))\n\t\t}\n\t\tm := make(map[K]Result[T], len(results))\n\t\tfor i := range results {\n\t\t\tm[indexes[i]] = results[i]\n\t\t}\n\t\treturn mergeFn(m)\n\t}, list)\n}\n\n// MergeList merges a list of cached values. The function only gets called if\n// any of the dependency has changed.\n//\n// The benefit of ListMerger over the basic Merger is that caches are\n// stored in an ordered list so the order of the cache will be\n// preserved in the order of the results passed to the mergeFn.\n//\n// If any of the dependency returned an error before, or any of the\n// dependency returned an error this time, or if the mergeFn failed\n// before, then the function is reran.\n//\n// Note that this assumes there is no \"partial\" merge, the merge\n// function will remerge all the dependencies together everytime. Since\n// the list of dependencies is constant, there is no way to save some\n// partial merge information either.\nfunc MergeList[T, V any](mergeFn func(results []Result[T]) (V, string, error), delegates []Value[T]) Value[V] {\n\treturn &listMerger[T, V]{\n\t\tmergeFn:   mergeFn,\n\t\tdelegates: delegates,\n\t}\n}\n\ntype listMerger[T, V any] struct {\n\tlock      sync.Mutex\n\tmergeFn   func([]Result[T]) (V, string, error)\n\tdelegates []Value[T]\n\tcache     []Result[T]\n\tresult    Result[V]\n}\n\nfunc (c *listMerger[T, V]) prepareResultsLocked() []Result[T] {\n\tcacheResults := make([]Result[T], len(c.delegates))\n\tch := make(chan struct {\n\t\tint\n\t\tResult[T]\n\t}, len(c.delegates))\n\tfor i := range c.delegates {\n\t\tgo func(index int) {\n\t\t\tvalue, etag, err := c.delegates[index].Get()\n\t\t\tch <- struct {\n\t\t\t\tint\n\t\t\t\tResult[T]\n\t\t\t}{index, Result[T]{Value: value, Etag: etag, Err: err}}\n\t\t}(i)\n\t}\n\tfor i := 0; i < len(c.delegates); i++ {\n\t\tres := <-ch\n\t\tcacheResults[res.int] = res.Result\n\t}\n\treturn cacheResults\n}\n\nfunc (c *listMerger[T, V]) needsRunningLocked(results []Result[T]) bool {\n\tif c.cache == nil {\n\t\treturn true\n\t}\n\tif c.result.Err != nil {\n\t\treturn true\n\t}\n\tif len(results) != len(c.cache) {\n\t\tpanic(fmt.Errorf(\"invalid number of results: %v (expected %v)\", len(results), len(c.cache)))\n\t}\n\tfor i, oldResult := range c.cache {\n\t\tnewResult := results[i]\n\t\tif newResult.Etag != oldResult.Etag || newResult.Err != nil || oldResult.Err != nil {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc (c *listMerger[T, V]) Get() (V, string, error) {\n\tc.lock.Lock()\n\tdefer c.lock.Unlock()\n\tcacheResults := c.prepareResultsLocked()\n\tif c.needsRunningLocked(cacheResults) {\n\t\tc.cache = cacheResults\n\t\tc.result.Value, c.result.Etag, c.result.Err = c.mergeFn(c.cache)\n\t}\n\treturn c.result.Value, c.result.Etag, c.result.Err\n}\n\n// Transform the result of another cached value. The transformFn will only be called\n// if the source has updated, otherwise, the result will be returned.\n//\n// If the dependency returned an error before, or it returns an error\n// this time, or if the transformerFn failed before, the function is\n// reran.\nfunc Transform[T, V any](transformerFn func(T, string, error) (V, string, error), source Value[T]) Value[V] {\n\treturn MergeList(func(delegates []Result[T]) (V, string, error) {\n\t\tif len(delegates) != 1 {\n\t\t\tpanic(fmt.Errorf(\"invalid cache for transformer cache: %v\", delegates))\n\t\t}\n\t\treturn transformerFn(delegates[0].Value, delegates[0].Etag, delegates[0].Err)\n\t}, []Value[T]{source})\n}\n\n// Once calls Value[T].Get() lazily and only once, even in case of an error result.\nfunc Once[T any](d Value[T]) Value[T] {\n\treturn &once[T]{\n\t\tdata: d,\n\t}\n}\n\ntype once[T any] struct {\n\tonce   sync.Once\n\tdata   Value[T]\n\tresult Result[T]\n}\n\nfunc (c *once[T]) Get() (T, string, error) {\n\tc.once.Do(func() {\n\t\tc.result.Value, c.result.Etag, c.result.Err = c.data.Get()\n\t})\n\treturn c.result.Value, c.result.Etag, c.result.Err\n}\n\n// Replaceable extends the Value[T] interface with the ability to change the\n// underlying Value[T] after construction.\ntype Replaceable[T any] interface {\n\tValue[T]\n\tStore(Value[T])\n}\n\n// Atomic wraps a Value[T] as an atomic value that can be replaced. It implements\n// Replaceable[T].\ntype Atomic[T any] struct {\n\tvalue atomic.Pointer[Value[T]]\n}\n\nvar _ Replaceable[[]byte] = &Atomic[[]byte]{}\n\nfunc (x *Atomic[T]) Store(val Value[T])      { x.value.Store(&val) }\nfunc (x *Atomic[T]) Get() (T, string, error) { return (*x.value.Load()).Get() }\n\n// LastSuccess calls Value[T].Get(), but hides errors by returning the last\n// success if there has been any.\ntype LastSuccess[T any] struct {\n\tAtomic[T]\n\tsuccess atomic.Pointer[Result[T]]\n}\n\nvar _ Replaceable[[]byte] = &LastSuccess[[]byte]{}\n\nfunc (c *LastSuccess[T]) Get() (T, string, error) {\n\tsuccess := c.success.Load()\n\tvalue, etag, err := c.Atomic.Get()\n\tif err == nil {\n\t\tif success == nil {\n\t\t\tc.success.CompareAndSwap(nil, &Result[T]{Value: value, Etag: etag, Err: err})\n\t\t}\n\t\treturn value, etag, err\n\t}\n\n\tif success != nil {\n\t\treturn success.Value, success.Etag, success.Err\n\t}\n\n\treturn value, etag, err\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/common/common.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage common\n\nimport (\n\t\"net/http\"\n\t\"strings\"\n\n\t\"github.com/emicklei/go-restful/v3\"\n\n\t\"k8s.io/kube-openapi/pkg/spec3\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\nconst (\n\t// TODO: Make this configurable.\n\tExtensionPrefix   = \"x-kubernetes-\"\n\tExtensionV2Schema = ExtensionPrefix + \"v2-schema\"\n)\n\n// OpenAPIDefinition describes single type. Normally these definitions are auto-generated using gen-openapi.\ntype OpenAPIDefinition struct {\n\tSchema       spec.Schema\n\tDependencies []string\n}\n\ntype ReferenceCallback func(path string) spec.Ref\n\n// GetOpenAPIDefinitions is collection of all definitions.\ntype GetOpenAPIDefinitions func(ReferenceCallback) map[string]OpenAPIDefinition\n\n// OpenAPIDefinitionGetter gets openAPI definitions for a given type. If a type implements this interface,\n// the definition returned by it will be used, otherwise the auto-generated definitions will be used. See\n// GetOpenAPITypeFormat for more information about trade-offs of using this interface or GetOpenAPITypeFormat method when\n// possible.\ntype OpenAPIDefinitionGetter interface {\n\tOpenAPIDefinition() *OpenAPIDefinition\n}\n\ntype OpenAPIV3DefinitionGetter interface {\n\tOpenAPIV3Definition() *OpenAPIDefinition\n}\n\ntype PathHandler interface {\n\tHandle(path string, handler http.Handler)\n}\n\ntype PathHandlerByGroupVersion interface {\n\tHandle(path string, handler http.Handler)\n\tHandlePrefix(path string, handler http.Handler)\n}\n\n// Config is set of configuration for openAPI spec generation.\ntype Config struct {\n\t// List of supported protocols such as https, http, etc.\n\tProtocolList []string\n\n\t// Info is general information about the API.\n\tInfo *spec.Info\n\n\t// DefaultResponse will be used if an operation does not have any responses listed. It\n\t// will show up as ... \"responses\" : {\"default\" : $DefaultResponse} in the spec.\n\tDefaultResponse *spec.Response\n\n\t// ResponseDefinitions will be added to \"responses\" under the top-level swagger object. This is an object\n\t// that holds responses definitions that can be used across operations. This property does not define\n\t// global responses for all operations. For more info please refer:\n\t//     https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#fixed-fields\n\tResponseDefinitions map[string]spec.Response\n\n\t// CommonResponses will be added as a response to all operation specs. This is a good place to add common\n\t// responses such as authorization failed.\n\tCommonResponses map[int]spec.Response\n\n\t// List of webservice's path prefixes to ignore\n\tIgnorePrefixes []string\n\n\t// OpenAPIDefinitions should provide definition for all models used by routes. Failure to provide this map\n\t// or any of the models will result in spec generation failure.\n\tGetDefinitions GetOpenAPIDefinitions\n\n\t// Provides the definition for all models used by routes. One of GetDefinitions or Definitions must be defined to generate a spec.\n\t// This takes precedent over the GetDefinitions function\n\tDefinitions map[string]OpenAPIDefinition\n\n\t// GetOperationIDAndTags returns operation id and tags for a restful route. It is an optional function to customize operation IDs.\n\t//\n\t// Deprecated: GetOperationIDAndTagsFromRoute should be used instead. This cannot be specified if using the new Route\n\t// interface set of funcs.\n\tGetOperationIDAndTags func(r *restful.Route) (string, []string, error)\n\n\t// GetOperationIDAndTagsFromRoute returns operation id and tags for a Route. It is an optional function to customize operation IDs.\n\tGetOperationIDAndTagsFromRoute func(r Route) (string, []string, error)\n\n\t// GetDefinitionName returns a friendly name for a definition base on the serving path. parameter `name` is the full name of the definition.\n\t// It is an optional function to customize model names.\n\tGetDefinitionName func(name string) (string, spec.Extensions)\n\n\t// PostProcessSpec runs after the spec is ready to serve. It allows a final modification to the spec before serving.\n\tPostProcessSpec func(*spec.Swagger) (*spec.Swagger, error)\n\n\t// SecurityDefinitions is list of all security definitions for OpenAPI service. If this is not nil, the user of config\n\t// is responsible to provide DefaultSecurity and (maybe) add unauthorized response to CommonResponses.\n\tSecurityDefinitions *spec.SecurityDefinitions\n\n\t// DefaultSecurity for all operations. This will pass as spec.SwaggerProps.Security to OpenAPI.\n\t// For most cases, this will be list of acceptable definitions in SecurityDefinitions.\n\tDefaultSecurity []map[string][]string\n}\n\n// OpenAPIV3Config is set of configuration for OpenAPI V3 spec generation.\ntype OpenAPIV3Config struct {\n\t// Info is general information about the API.\n\tInfo *spec.Info\n\n\t// DefaultResponse will be used if an operation does not have any responses listed. It\n\t// will show up as ... \"responses\" : {\"default\" : $DefaultResponse} in the spec.\n\tDefaultResponse *spec3.Response\n\n\t// ResponseDefinitions will be added to responses component. This is an object\n\t// that holds responses that can be used across operations.\n\tResponseDefinitions map[string]*spec3.Response\n\n\t// CommonResponses will be added as a response to all operation specs. This is a good place to add common\n\t// responses such as authorization failed.\n\tCommonResponses map[int]*spec3.Response\n\n\t// List of webservice's path prefixes to ignore\n\tIgnorePrefixes []string\n\n\t// OpenAPIDefinitions should provide definition for all models used by routes. Failure to provide this map\n\t// or any of the models will result in spec generation failure.\n\t// One of GetDefinitions or Definitions must be defined to generate a spec.\n\tGetDefinitions GetOpenAPIDefinitions\n\n\t// Provides the definition for all models used by routes. One of GetDefinitions or Definitions must be defined to generate a spec.\n\t// This takes precedent over the GetDefinitions function\n\tDefinitions map[string]OpenAPIDefinition\n\n\t// GetOperationIDAndTags returns operation id and tags for a restful route. It is an optional function to customize operation IDs.\n\t//\n\t// Deprecated: GetOperationIDAndTagsFromRoute should be used instead. This cannot be specified if using the new Route\n\t// interface set of funcs.\n\tGetOperationIDAndTags func(r *restful.Route) (string, []string, error)\n\n\t// GetOperationIDAndTagsFromRoute returns operation id and tags for a Route. It is an optional function to customize operation IDs.\n\tGetOperationIDAndTagsFromRoute func(r Route) (string, []string, error)\n\n\t// GetDefinitionName returns a friendly name for a definition base on the serving path. parameter `name` is the full name of the definition.\n\t// It is an optional function to customize model names.\n\tGetDefinitionName func(name string) (string, spec.Extensions)\n\n\t// PostProcessSpec runs after the spec is ready to serve. It allows a final modification to the spec before serving.\n\tPostProcessSpec func(*spec3.OpenAPI) (*spec3.OpenAPI, error)\n\n\t// SecuritySchemes is list of all security schemes for OpenAPI service.\n\tSecuritySchemes spec3.SecuritySchemes\n\n\t// DefaultSecurity for all operations.\n\tDefaultSecurity []map[string][]string\n}\n\ntype typeInfo struct {\n\tname   string\n\tformat string\n\tzero   interface{}\n}\n\nvar schemaTypeFormatMap = map[string]typeInfo{\n\t\"uint\":        {\"integer\", \"int32\", 0.},\n\t\"uint8\":       {\"integer\", \"byte\", 0.},\n\t\"uint16\":      {\"integer\", \"int32\", 0.},\n\t\"uint32\":      {\"integer\", \"int64\", 0.},\n\t\"uint64\":      {\"integer\", \"int64\", 0.},\n\t\"int\":         {\"integer\", \"int32\", 0.},\n\t\"int8\":        {\"integer\", \"byte\", 0.},\n\t\"int16\":       {\"integer\", \"int32\", 0.},\n\t\"int32\":       {\"integer\", \"int32\", 0.},\n\t\"int64\":       {\"integer\", \"int64\", 0.},\n\t\"byte\":        {\"integer\", \"byte\", 0},\n\t\"float64\":     {\"number\", \"double\", 0.},\n\t\"float32\":     {\"number\", \"float\", 0.},\n\t\"bool\":        {\"boolean\", \"\", false},\n\t\"time.Time\":   {\"string\", \"date-time\", \"\"},\n\t\"string\":      {\"string\", \"\", \"\"},\n\t\"integer\":     {\"integer\", \"\", 0.},\n\t\"number\":      {\"number\", \"\", 0.},\n\t\"boolean\":     {\"boolean\", \"\", false},\n\t\"[]byte\":      {\"string\", \"byte\", \"\"}, // base64 encoded characters\n\t\"interface{}\": {\"object\", \"\", interface{}(nil)},\n}\n\n// This function is a reference for converting go (or any custom type) to a simple open API type,format pair. There are\n// two ways to customize spec for a type. If you add it here, a type will be converted to a simple type and the type\n// comment (the comment that is added before type definition) will be lost. The spec will still have the property\n// comment. The second way is to implement OpenAPIDefinitionGetter interface. That function can customize the spec (so\n// the spec does not need to be simple type,format) or can even return a simple type,format (e.g. IntOrString). For simple\n// type formats, the benefit of adding OpenAPIDefinitionGetter interface is to keep both type and property documentation.\n// Example:\n//\n//\ttype Sample struct {\n//\t     ...\n//\t     // port of the server\n//\t     port IntOrString\n//\t     ...\n//\t}\n//\n// // IntOrString documentation...\n// type IntOrString { ... }\n//\n// Adding IntOrString to this function:\n//\n//\t\"port\" : {\n//\t          format:      \"string\",\n//\t          type:        \"int-or-string\",\n//\t          Description: \"port of the server\"\n//\t}\n//\n// Implement OpenAPIDefinitionGetter for IntOrString:\n//\n//\t\"port\" : {\n//\t          $Ref:    \"#/definitions/IntOrString\"\n//\t          Description: \"port of the server\"\n//\t}\n//\n// ...\n// definitions:\n//\n//\t{\n//\t          \"IntOrString\": {\n//\t                    format:      \"string\",\n//\t                    type:        \"int-or-string\",\n//\t                    Description: \"IntOrString documentation...\"    // new\n//\t          }\n//\t}\nfunc OpenAPITypeFormat(typeName string) (string, string) {\n\tmapped, ok := schemaTypeFormatMap[typeName]\n\tif !ok {\n\t\treturn \"\", \"\"\n\t}\n\treturn mapped.name, mapped.format\n}\n\n// Returns the zero-value for the given type along with true if the type\n// could be found.\nfunc OpenAPIZeroValue(typeName string) (interface{}, bool) {\n\tmapped, ok := schemaTypeFormatMap[typeName]\n\tif !ok {\n\t\treturn nil, false\n\t}\n\treturn mapped.zero, true\n}\n\nfunc EscapeJsonPointer(p string) string {\n\t// Escaping reference name using rfc6901\n\tp = strings.Replace(p, \"~\", \"~0\", -1)\n\tp = strings.Replace(p, \"/\", \"~1\", -1)\n\treturn p\n}\n\nfunc EmbedOpenAPIDefinitionIntoV2Extension(main OpenAPIDefinition, embedded OpenAPIDefinition) OpenAPIDefinition {\n\tif main.Schema.Extensions == nil {\n\t\tmain.Schema.Extensions = make(map[string]interface{})\n\t}\n\tmain.Schema.Extensions[ExtensionV2Schema] = embedded.Schema\n\treturn main\n}\n\n// GenerateOpenAPIV3OneOfSchema generate the set of schemas that MUST be assigned to SchemaProps.OneOf\nfunc GenerateOpenAPIV3OneOfSchema(types []string) (oneOf []spec.Schema) {\n\tfor _, t := range types {\n\t\toneOf = append(oneOf, spec.Schema{SchemaProps: spec.SchemaProps{Type: []string{t}}})\n\t}\n\treturn\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/common/doc.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// package common holds shared code and types between open API code\n// generator and spec generator.\npackage common\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/common/interfaces.go",
    "content": "package common\n\n// RouteContainer is the entrypoint for a service, which may contain multiple\n// routes under a common path with a common set of path parameters.\ntype RouteContainer interface {\n\t// RootPath is the path that all contained routes are nested under.\n\tRootPath() string\n\t// PathParameters are common parameters defined in the root path.\n\tPathParameters() []Parameter\n\t// Routes are all routes exposed under the root path.\n\tRoutes() []Route\n}\n\n// Route is a logical endpoint of a service.\ntype Route interface {\n\t// Method defines the HTTP Method.\n\tMethod() string\n\t// Path defines the route's endpoint.\n\tPath() string\n\t// OperationName defines a machine-readable ID for the route.\n\tOperationName() string\n\t// Parameters defines the list of accepted parameters.\n\tParameters() []Parameter\n\t// Description is a human-readable route description.\n\tDescription() string\n\t// Consumes defines the consumed content-types.\n\tConsumes() []string\n\t// Produces defines the produced content-types.\n\tProduces() []string\n\t// Metadata allows adding extensions to the generated spec.\n\tMetadata() map[string]interface{}\n\t// RequestPayloadSample defines an example request payload. Can return nil.\n\tRequestPayloadSample() interface{}\n\t// ResponsePayloadSample defines an example response payload. Can return nil.\n\tResponsePayloadSample() interface{}\n\t// StatusCodeResponses defines a mapping of HTTP Status Codes to the specific response(s).\n\t// Multiple responses with the same HTTP Status Code are acceptable.\n\tStatusCodeResponses() []StatusCodeResponse\n}\n\n// StatusCodeResponse is an explicit response type with an HTTP Status Code.\ntype StatusCodeResponse interface {\n\t// Code defines the HTTP Status Code.\n\tCode() int\n\t// Message returns the human-readable message.\n\tMessage() string\n\t// Model defines an example payload for this response.\n\tModel() interface{}\n}\n\n// Parameter is a Route parameter.\ntype Parameter interface {\n\t// Name defines the unique-per-route identifier.\n\tName() string\n\t// Description is the human-readable description of the param.\n\tDescription() string\n\t// Required defines if this parameter must be provided.\n\tRequired() bool\n\t// Kind defines the type of the parameter itself.\n\tKind() ParameterKind\n\t// DataType defines the type of data the parameter carries.\n\tDataType() string\n\t// AllowMultiple defines if more than one value can be supplied for the parameter.\n\tAllowMultiple() bool\n}\n\n// ParameterKind is an enum of route parameter types.\ntype ParameterKind int\n\nconst (\n\t// PathParameterKind indicates the request parameter type is \"path\".\n\tPathParameterKind = ParameterKind(iota)\n\n\t// QueryParameterKind indicates the request parameter type is \"query\".\n\tQueryParameterKind\n\n\t// BodyParameterKind indicates the request parameter type is \"body\".\n\tBodyParameterKind\n\n\t// HeaderParameterKind indicates the request parameter type is \"header\".\n\tHeaderParameterKind\n\n\t// FormParameterKind indicates the request parameter type is \"form\".\n\tFormParameterKind\n\n\t// UnknownParameterKind indicates the request parameter type has not been specified.\n\tUnknownParameterKind\n)\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/handler3/handler.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage handler3\n\nimport (\n\t\"bytes\"\n\t\"crypto/sha512\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"net/http\"\n\t\"net/url\"\n\t\"path\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"time\"\n\n\t\"github.com/golang/protobuf/proto\"\n\topenapi_v3 \"github.com/google/gnostic-models/openapiv3\"\n\t\"github.com/google/uuid\"\n\t\"github.com/munnerz/goautoneg\"\n\n\t\"k8s.io/klog/v2\"\n\t\"k8s.io/kube-openapi/pkg/cached\"\n\t\"k8s.io/kube-openapi/pkg/common\"\n\t\"k8s.io/kube-openapi/pkg/spec3\"\n)\n\nconst (\n\tsubTypeProtobufDeprecated = \"com.github.proto-openapi.spec.v3@v1.0+protobuf\"\n\tsubTypeProtobuf           = \"com.github.proto-openapi.spec.v3.v1.0+protobuf\"\n\tsubTypeJSON               = \"json\"\n)\n\n// OpenAPIV3Discovery is the format of the Discovery document for OpenAPI V3\n// It maps Discovery paths to their corresponding URLs with a hash parameter included\ntype OpenAPIV3Discovery struct {\n\tPaths map[string]OpenAPIV3DiscoveryGroupVersion `json:\"paths\"`\n}\n\n// OpenAPIV3DiscoveryGroupVersion includes information about a group version and URL\n// for accessing the OpenAPI. The URL includes a hash parameter to support client side caching\ntype OpenAPIV3DiscoveryGroupVersion struct {\n\t// Path is an absolute path of an OpenAPI V3 document in the form of /openapi/v3/apis/apps/v1?hash=014fbff9a07c\n\tServerRelativeURL string `json:\"serverRelativeURL\"`\n}\n\nfunc ToV3ProtoBinary(json []byte) ([]byte, error) {\n\tdocument, err := openapi_v3.ParseDocument(json)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn proto.Marshal(document)\n}\n\ntype timedSpec struct {\n\tspec         []byte\n\tlastModified time.Time\n}\n\n// This type is protected by the lock on OpenAPIService.\ntype openAPIV3Group struct {\n\tspecCache cached.LastSuccess[*spec3.OpenAPI]\n\tpbCache   cached.Value[timedSpec]\n\tjsonCache cached.Value[timedSpec]\n}\n\nfunc newOpenAPIV3Group() *openAPIV3Group {\n\to := &openAPIV3Group{}\n\to.jsonCache = cached.Transform[*spec3.OpenAPI](func(spec *spec3.OpenAPI, etag string, err error) (timedSpec, string, error) {\n\t\tif err != nil {\n\t\t\treturn timedSpec{}, \"\", err\n\t\t}\n\t\tjson, err := json.Marshal(spec)\n\t\tif err != nil {\n\t\t\treturn timedSpec{}, \"\", err\n\t\t}\n\t\treturn timedSpec{spec: json, lastModified: time.Now()}, computeETag(json), nil\n\t}, &o.specCache)\n\to.pbCache = cached.Transform(func(ts timedSpec, etag string, err error) (timedSpec, string, error) {\n\t\tif err != nil {\n\t\t\treturn timedSpec{}, \"\", err\n\t\t}\n\t\tproto, err := ToV3ProtoBinary(ts.spec)\n\t\tif err != nil {\n\t\t\treturn timedSpec{}, \"\", err\n\t\t}\n\t\treturn timedSpec{spec: proto, lastModified: ts.lastModified}, etag, nil\n\t}, o.jsonCache)\n\treturn o\n}\n\nfunc (o *openAPIV3Group) UpdateSpec(openapi cached.Value[*spec3.OpenAPI]) {\n\to.specCache.Store(openapi)\n}\n\n// OpenAPIService is the service responsible for serving OpenAPI spec. It has\n// the ability to safely change the spec while serving it.\ntype OpenAPIService struct {\n\t// Mutex protects the schema map.\n\tmutex    sync.Mutex\n\tv3Schema map[string]*openAPIV3Group\n\n\tdiscoveryCache cached.LastSuccess[timedSpec]\n}\n\nfunc computeETag(data []byte) string {\n\tif data == nil {\n\t\treturn \"\"\n\t}\n\treturn fmt.Sprintf(\"%X\", sha512.Sum512(data))\n}\n\nfunc constructServerRelativeURL(gvString, etag string) string {\n\tu := url.URL{Path: path.Join(\"/openapi/v3\", gvString)}\n\tquery := url.Values{}\n\tquery.Set(\"hash\", etag)\n\tu.RawQuery = query.Encode()\n\treturn u.String()\n}\n\n// NewOpenAPIService builds an OpenAPIService starting with the given spec.\nfunc NewOpenAPIService() *OpenAPIService {\n\to := &OpenAPIService{}\n\to.v3Schema = make(map[string]*openAPIV3Group)\n\t// We're not locked because we haven't shared the structure yet.\n\to.discoveryCache.Store(o.buildDiscoveryCacheLocked())\n\treturn o\n}\n\nfunc (o *OpenAPIService) buildDiscoveryCacheLocked() cached.Value[timedSpec] {\n\tcaches := make(map[string]cached.Value[timedSpec], len(o.v3Schema))\n\tfor gvName, group := range o.v3Schema {\n\t\tcaches[gvName] = group.jsonCache\n\t}\n\treturn cached.Merge(func(results map[string]cached.Result[timedSpec]) (timedSpec, string, error) {\n\t\tdiscovery := &OpenAPIV3Discovery{Paths: make(map[string]OpenAPIV3DiscoveryGroupVersion)}\n\t\tfor gvName, result := range results {\n\t\t\tif result.Err != nil {\n\t\t\t\treturn timedSpec{}, \"\", result.Err\n\t\t\t}\n\t\t\tdiscovery.Paths[gvName] = OpenAPIV3DiscoveryGroupVersion{\n\t\t\t\tServerRelativeURL: constructServerRelativeURL(gvName, result.Etag),\n\t\t\t}\n\t\t}\n\t\tj, err := json.Marshal(discovery)\n\t\tif err != nil {\n\t\t\treturn timedSpec{}, \"\", err\n\t\t}\n\t\treturn timedSpec{spec: j, lastModified: time.Now()}, computeETag(j), nil\n\t}, caches)\n}\n\nfunc (o *OpenAPIService) getSingleGroupBytes(getType string, group string) ([]byte, string, time.Time, error) {\n\to.mutex.Lock()\n\tdefer o.mutex.Unlock()\n\tv, ok := o.v3Schema[group]\n\tif !ok {\n\t\treturn nil, \"\", time.Now(), fmt.Errorf(\"Cannot find CRD group %s\", group)\n\t}\n\tswitch getType {\n\tcase subTypeJSON:\n\t\tts, etag, err := v.jsonCache.Get()\n\t\treturn ts.spec, etag, ts.lastModified, err\n\tcase subTypeProtobuf, subTypeProtobufDeprecated:\n\t\tts, etag, err := v.pbCache.Get()\n\t\treturn ts.spec, etag, ts.lastModified, err\n\tdefault:\n\t\treturn nil, \"\", time.Now(), fmt.Errorf(\"Invalid accept clause %s\", getType)\n\t}\n}\n\n// UpdateGroupVersionLazy adds or updates an existing group with the new cached.\nfunc (o *OpenAPIService) UpdateGroupVersionLazy(group string, openapi cached.Value[*spec3.OpenAPI]) {\n\to.mutex.Lock()\n\tdefer o.mutex.Unlock()\n\tif _, ok := o.v3Schema[group]; !ok {\n\t\to.v3Schema[group] = newOpenAPIV3Group()\n\t\t// Since there is a new item, we need to re-build the cache map.\n\t\to.discoveryCache.Store(o.buildDiscoveryCacheLocked())\n\t}\n\to.v3Schema[group].UpdateSpec(openapi)\n}\n\nfunc (o *OpenAPIService) UpdateGroupVersion(group string, openapi *spec3.OpenAPI) {\n\to.UpdateGroupVersionLazy(group, cached.Static(openapi, uuid.New().String()))\n}\n\nfunc (o *OpenAPIService) DeleteGroupVersion(group string) {\n\to.mutex.Lock()\n\tdefer o.mutex.Unlock()\n\tdelete(o.v3Schema, group)\n\t// Rebuild the merge cache map since the items have changed.\n\to.discoveryCache.Store(o.buildDiscoveryCacheLocked())\n}\n\nfunc (o *OpenAPIService) HandleDiscovery(w http.ResponseWriter, r *http.Request) {\n\tts, etag, err := o.discoveryCache.Get()\n\tif err != nil {\n\t\tklog.Errorf(\"Error serving discovery: %s\", err)\n\t\tw.WriteHeader(http.StatusInternalServerError)\n\t\treturn\n\t}\n\tw.Header().Set(\"Etag\", strconv.Quote(etag))\n\tw.Header().Set(\"Content-Type\", \"application/json\")\n\thttp.ServeContent(w, r, \"/openapi/v3\", ts.lastModified, bytes.NewReader(ts.spec))\n}\n\nfunc (o *OpenAPIService) HandleGroupVersion(w http.ResponseWriter, r *http.Request) {\n\turl := strings.SplitAfterN(r.URL.Path, \"/\", 4)\n\tgroup := url[3]\n\n\tdecipherableFormats := r.Header.Get(\"Accept\")\n\tif decipherableFormats == \"\" {\n\t\tdecipherableFormats = \"*/*\"\n\t}\n\tclauses := goautoneg.ParseAccept(decipherableFormats)\n\tw.Header().Add(\"Vary\", \"Accept\")\n\n\tif len(clauses) == 0 {\n\t\treturn\n\t}\n\n\taccepted := []struct {\n\t\tType                string\n\t\tSubType             string\n\t\tReturnedContentType string\n\t}{\n\t\t{\"application\", subTypeJSON, \"application/\" + subTypeJSON},\n\t\t{\"application\", subTypeProtobuf, \"application/\" + subTypeProtobuf},\n\t\t{\"application\", subTypeProtobufDeprecated, \"application/\" + subTypeProtobuf},\n\t}\n\n\tfor _, clause := range clauses {\n\t\tfor _, accepts := range accepted {\n\t\t\tif clause.Type != accepts.Type && clause.Type != \"*\" {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif clause.SubType != accepts.SubType && clause.SubType != \"*\" {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tdata, etag, lastModified, err := o.getSingleGroupBytes(accepts.SubType, group)\n\t\t\tif err != nil {\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// Set Content-Type header in the reponse\n\t\t\tw.Header().Set(\"Content-Type\", accepts.ReturnedContentType)\n\n\t\t\t// ETag must be enclosed in double quotes: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag\n\t\t\tw.Header().Set(\"Etag\", strconv.Quote(etag))\n\n\t\t\tif hash := r.URL.Query().Get(\"hash\"); hash != \"\" {\n\t\t\t\tif hash != etag {\n\t\t\t\t\tu := constructServerRelativeURL(group, etag)\n\t\t\t\t\thttp.Redirect(w, r, u, 301)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\t// The Vary header is required because the Accept header can\n\t\t\t\t// change the contents returned. This prevents clients from caching\n\t\t\t\t// protobuf as JSON and vice versa.\n\t\t\t\tw.Header().Set(\"Vary\", \"Accept\")\n\n\t\t\t\t// Only set these headers when a hash is given.\n\t\t\t\tw.Header().Set(\"Cache-Control\", \"public, immutable\")\n\t\t\t\t// Set the Expires directive to the maximum value of one year from the request,\n\t\t\t\t// effectively indicating that the cache never expires.\n\t\t\t\tw.Header().Set(\"Expires\", time.Now().AddDate(1, 0, 0).Format(time.RFC1123))\n\t\t\t}\n\t\t\thttp.ServeContent(w, r, \"\", lastModified, bytes.NewReader(data))\n\t\t\treturn\n\t\t}\n\t}\n\tw.WriteHeader(406)\n\treturn\n}\n\nfunc (o *OpenAPIService) RegisterOpenAPIV3VersionedService(servePath string, handler common.PathHandlerByGroupVersion) error {\n\thandler.Handle(servePath, http.HandlerFunc(o.HandleDiscovery))\n\thandler.HandlePrefix(servePath+\"/\", http.HandlerFunc(o.HandleGroupVersion))\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/flags.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internal\n\n// Used by tests to selectively disable experimental JSON unmarshaler\nvar UseOptimizedJSONUnmarshaling bool = true\nvar UseOptimizedJSONUnmarshalingV3 bool = true\n\n// Used by tests to selectively disable experimental JSON marshaler\nvar UseOptimizedJSONMarshaling bool = true\nvar UseOptimizedJSONMarshalingV3 bool = true\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/serialization.go",
    "content": "/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage internal\n\nimport (\n\t\"github.com/go-openapi/jsonreference\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\n// DeterministicMarshal calls the jsonv2 library with the deterministic\n// flag in order to have stable marshaling.\nfunc DeterministicMarshal(in any) ([]byte, error) {\n\treturn jsonv2.MarshalOptions{Deterministic: true}.Marshal(jsonv2.EncodeOptions{}, in)\n}\n\n// JSONRefFromMap populates a json reference object if the map v contains a $ref key.\nfunc JSONRefFromMap(jsonRef *jsonreference.Ref, v map[string]interface{}) error {\n\tif v == nil {\n\t\treturn nil\n\t}\n\tif vv, ok := v[\"$ref\"]; ok {\n\t\tif str, ok := vv.(string); ok {\n\t\t\tref, err := jsonreference.New(str)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\t*jsonRef = ref\n\t\t}\n\t}\n\treturn nil\n}\n\n// SanitizeExtensions sanitizes the input map such that non extension\n// keys (non x-*, X-*) keys are dropped from the map. Returns the new\n// modified map, or nil if the map is now empty.\nfunc SanitizeExtensions(e map[string]interface{}) map[string]interface{} {\n\tfor k := range e {\n\t\tif !IsExtensionKey(k) {\n\t\t\tdelete(e, k)\n\t\t}\n\t}\n\tif len(e) == 0 {\n\t\te = nil\n\t}\n\treturn e\n}\n\n// IsExtensionKey returns true if the input string is of format x-* or X-*\nfunc IsExtensionKey(k string) bool {\n\treturn len(k) > 1 && (k[0] == 'x' || k[0] == 'X') && k[1] == '-'\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/AUTHORS",
    "content": "# This source code refers to The Go Authors for copyright purposes.\n# The master list of authors is in the main Go distribution,\n# visible at https://tip.golang.org/AUTHORS.\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/CONTRIBUTORS",
    "content": "# This source code was written by the Go contributors.\n# The master list of contributors is in the main Go distribution,\n# visible at https://tip.golang.org/CONTRIBUTORS.\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/LICENSE",
    "content": "Copyright (c) 2020 The Go Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/README.md",
    "content": "# JSON Serialization (v2)\n\n[![GoDev](https://img.shields.io/static/v1?label=godev&message=reference&color=00add8)](https://pkg.go.dev/github.com/go-json-experiment/json)\n[![Build Status](https://github.com/go-json-experiment/json/actions/workflows/test.yml/badge.svg?branch=master)](https://github.com/go-json-experiment/json/actions)\n\nThis module hosts an experimental implementation of v2 `encoding/json`.\nThe API is unstable and breaking changes will regularly be made.\nDo not depend on this in publicly available modules.\n\n## Goals and objectives\n\n* **Mostly backwards compatible:** If possible, v2 should aim to be _mostly_\ncompatible with v1 in terms of both API and default behavior to ease migration.\nFor example, the `Marshal` and `Unmarshal` functions are the most widely used\ndeclarations in the v1 package. It seems sensible for equivalent functionality\nin v2 to be named the same and have the same signature.\nBehaviorally, we should aim for 95% to 99% backwards compatibility.\nWe do not aim for 100% compatibility since we want the freedom to break\ncertain behaviors that are now considered to have been a mistake.\nWe may provide options that can bring the v2 implementation to 100% compatibility,\nbut it will not be the default.\n\n* **More flexible:** There is a\n[long list of feature requests](https://github.com/golang/go/issues?q=is%3Aissue+is%3Aopen+encoding%2Fjson+in%3Atitle).\nWe should aim to provide the most flexible features that addresses most usages.\nWe do not want to over fit the v2 API to handle every possible use case.\nIdeally, the features provided should be orthogonal in nature such that\nany combination of features results in as few surprising edge cases as possible.\n\n* **More performant:** JSON serialization is widely used and any bit of extra\nperformance gains will be greatly appreciated. Some rarely used behaviors of v1\nmay be dropped in favor of better performance. For example,\ndespite `Encoder` and `Decoder` operating on an `io.Writer` and `io.Reader`,\nthey do not operate in a truly streaming manner,\nleading to a loss in performance. The v2 implementation should aim to be truly\nstreaming by default (see [#33714](https://golang.org/issue/33714)).\n\n* **Easy to use (hard to misuse):** The v2 API should aim to make\nthe common case easy and the less common case at least possible.\nThe API should avoid behavior that goes contrary to user expectation,\nwhich may result in subtle bugs (see [#36225](https://golang.org/issue/36225)).\n\n* **v1 and v2 maintainability:** Since the v1 implementation must stay forever,\nit would be beneficial if v1 could be implemented under the hood with v2,\nallowing for less maintenance burden in the future. This probably implies that\nbehavioral changes in v2 relative to v1 need to be exposed as options.\n\n* **Avoid unsafe:** Standard library packages generally avoid the use of\npackage `unsafe` even if it could provide a performance boost.\nWe aim to preserve this property.\n\n## Expectations\n\nWhile this module aims to possibly be the v2 implementation of `encoding/json`,\nthere is no guarantee that this outcome will occur. As with any major change\nto the Go standard library, this will eventually go through the\n[Go proposal process](https://github.com/golang/proposal#readme).\nAt the present moment, this is still in the design and experimentation phase\nand is not ready for a formal proposal.\n\nThere are several possible outcomes from this experiment:\n1. We determine that a v2 `encoding/json` would not provide sufficient benefit\nover the existing v1 `encoding/json` package. Thus, we abandon this effort.\n2. We propose a v2 `encoding/json` design, but it is rejected in favor of some\nother design that is considered superior.\n3. We propose a v2 `encoding/json` design, but rather than adding an entirely\nnew v2 `encoding/json` package, we decide to merge its functionality into\nthe existing v1 `encoding/json` package.\n4. We propose a v2 `encoding/json` design and it is accepted, resulting in\nits addition to the standard library.\n5. Some other unforeseen outcome (among the infinite number of possibilities).\n\n## Development\n\nThis module is primarily developed by\n[@dsnet](https://github.com/dsnet),\n[@mvdan](https://github.com/mvdan), and\n[@johanbrandhorst](https://github.com/johanbrandhorst)\nwith feedback provided by\n[@rogpeppe](https://github.com/rogpeppe),\n[@ChrisHines](https://github.com/ChrisHines), and\n[@rsc](https://github.com/rsc).\n\nDiscussion about semantics occur semi-regularly, where a\n[record of past meetings can be found here](https://docs.google.com/document/d/1rovrOTd-wTawGMPPlPuKhwXaYBg9VszTXR9AQQL5LfI/edit?usp=sharing).\n\n## Design overview\n\nThis package aims to provide a clean separation between syntax and semantics.\nSyntax deals with the structural representation of JSON (as specified in\n[RFC 4627](https://tools.ietf.org/html/rfc4627),\n[RFC 7159](https://tools.ietf.org/html/rfc7159),\n[RFC 7493](https://tools.ietf.org/html/rfc7493),\n[RFC 8259](https://tools.ietf.org/html/rfc8259), and\n[RFC 8785](https://tools.ietf.org/html/rfc8785)).\nSemantics deals with the meaning of syntactic data as usable application data.\n\nThe `Encoder` and `Decoder` types are streaming tokenizers concerned with the\npacking or parsing of JSON data. They operate on `Token` and `RawValue` types\nwhich represent the common data structures that are representable in JSON.\n`Encoder` and `Decoder` do not aim to provide any interpretation of the data.\n\nFunctions like `Marshal`, `MarshalFull`, `MarshalNext`, `Unmarshal`,\n`UnmarshalFull`, and `UnmarshalNext` provide semantic meaning by correlating\nany arbitrary Go type with some JSON representation of that type (as stored in\ndata types like `[]byte`, `io.Writer`, `io.Reader`, `Encoder`, or `Decoder`).\n\n![API overview](api.png)\n\nThis diagram provides a high-level overview of the v2 `json` package.\nPurple blocks represent types, while blue blocks represent functions or methods.\nThe arrows and their direction represent the approximate flow of data.\nThe bottom half of the diagram contains functionality that is only concerned\nwith syntax, while the upper half contains functionality that assigns\nsemantic meaning to syntactic data handled by the bottom half.\n\nIn contrast to v1 `encoding/json`, options are represented as separate types\nrather than being setter methods on the `Encoder` or `Decoder` types.\n\n## Behavior changes\n\nThe v2 `json` package changes the default behavior of `Marshal` and `Unmarshal`\nrelative to the v1 `json` package to be more sensible.\nSome of these behavior changes have options and workarounds to opt into\nbehavior similar to what v1 provided.\n\nThis table shows an overview of the changes:\n\n| v1 | v2 | Details |\n| -- | -- | ------- |\n| JSON object members are unmarshaled into a Go struct using a **case-insensitive name match**. | JSON object members are unmarshaled into a Go struct using a **case-sensitive name match**. | [CaseSensitivity](/diff_test.go#:~:text=TestCaseSensitivity) |\n| When marshaling a Go struct, a struct field marked as `omitempty` is omitted if **the field value is an empty Go value**, which is defined as false, 0, a nil pointer, a nil interface value, and any empty array, slice, map, or string. | When marshaling a Go struct, a struct field marked as `omitempty` is omitted if **the field value would encode as an empty JSON value**, which is defined as a JSON null, or an empty JSON string, object, or array. | [OmitEmptyOption](/diff_test.go#:~:text=TestOmitEmptyOption) |\n| The `string` option **does affect** Go bools. | The `string` option **does not affect** Go bools. | [StringOption](/diff_test.go#:~:text=TestStringOption) |\n| The `string` option **does not recursively affect** sub-values of the Go field value. | The `string` option **does recursively affect** sub-values of the Go field value. | [StringOption](/diff_test.go#:~:text=TestStringOption) |\n| The `string` option **sometimes accepts** a JSON null escaped within a JSON string. | The `string` option **never accepts** a JSON null escaped within a JSON string. | [StringOption](/diff_test.go#:~:text=TestStringOption) |\n| A nil Go slice is marshaled as a **JSON null**. | A nil Go slice is marshaled as an **empty JSON array**. | [NilSlicesAndMaps](/diff_test.go#:~:text=TestNilSlicesAndMaps) |\n| A nil Go map is marshaled as a **JSON null**. | A nil Go map is marshaled as an **empty JSON object**. | [NilSlicesAndMaps](/diff_test.go#:~:text=TestNilSlicesAndMaps) |\n| A Go array may be unmarshaled from a **JSON array of any length**. | A Go array must be unmarshaled from a **JSON array of the same length**. | [Arrays](/diff_test.go#:~:text=Arrays) |\n| A Go byte array is represented as a **JSON array of JSON numbers**. | A Go byte array is represented as a **Base64-encoded JSON string**. | [ByteArrays](/diff_test.go#:~:text=TestByteArrays) |\n| `MarshalJSON` and `UnmarshalJSON` methods declared on a pointer receiver are **inconsistently called**. | `MarshalJSON` and `UnmarshalJSON` methods declared on a pointer receiver are **consistently called**. | [PointerReceiver](/diff_test.go#:~:text=TestPointerReceiver) |\n| A Go map is marshaled in a **deterministic order**. | A Go map is marshaled in a **non-deterministic order**. | [MapDeterminism](/diff_test.go#:~:text=TestMapDeterminism) |\n| JSON strings are encoded **with HTML-specific characters being escaped**. | JSON strings are encoded **without any characters being escaped** (unless necessary). | [EscapeHTML](/diff_test.go#:~:text=TestEscapeHTML) |\n| When marshaling, invalid UTF-8 within a Go string **are silently replaced**. | When marshaling, invalid UTF-8 within a Go string **results in an error**. | [InvalidUTF8](/diff_test.go#:~:text=TestInvalidUTF8) |\n| When unmarshaling, invalid UTF-8 within a JSON string **are silently replaced**. | When unmarshaling, invalid UTF-8 within a JSON string **results in an error**. | [InvalidUTF8](/diff_test.go#:~:text=TestInvalidUTF8) |\n| When marshaling, **an error does not occur** if the output JSON value contains objects with duplicate names. | When marshaling, **an error does occur** if the output JSON value contains objects with duplicate names. | [DuplicateNames](/diff_test.go#:~:text=TestDuplicateNames) |\n| When unmarshaling, **an error does not occur** if the input JSON value contains objects with duplicate names. | When unmarshaling, **an error does occur** if the input JSON value contains objects with duplicate names. | [DuplicateNames](/diff_test.go#:~:text=TestDuplicateNames) |\n| Unmarshaling a JSON null into a non-empty Go value **inconsistently clears the value or does nothing**. | Unmarshaling a JSON null into a non-empty Go value **always clears the value**. | [MergeNull](/diff_test.go#:~:text=TestMergeNull) |\n| Unmarshaling a JSON value into a non-empty Go value **follows inconsistent and bizarre behavior**. | Unmarshaling a JSON value into a non-empty Go value **always merges if the input is an object, and otherwise replaces**.  | [MergeComposite](/diff_test.go#:~:text=TestMergeComposite) |\n| A `time.Duration` is represented as a **JSON number containing the decimal number of nanoseconds**. | A `time.Duration` is represented as a **JSON string containing the formatted duration (e.g., \"1h2m3.456s\")**. | [TimeDurations](/diff_test.go#:~:text=TestTimeDurations) |\n| Unmarshaling a JSON number into a Go float beyond its representation **results in an error**. | Unmarshaling a JSON number into a Go float beyond its representation **uses the closest representable value (e.g., ±`math.MaxFloat`)**. | [MaxFloats](/diff_test.go#:~:text=TestMaxFloats) |\n| A Go struct with only unexported fields **can be serialized**. | A Go struct with only unexported fields **cannot be serialized**. | [EmptyStructs](/diff_test.go#:~:text=TestEmptyStructs) |\n| A Go struct that embeds an unexported struct type **can sometimes be serialized**. | A Go struct that embeds an unexported struct type **cannot be serialized**. | [EmbedUnexported](/diff_test.go#:~:text=TestEmbedUnexported) |\n\nSee [diff_test.go](/diff_test.go) for details about every change.\n\n## Performance\n\nOne of the goals of the v2 module is to be more performant than v1.\n\nEach of the charts below show the performance across\nseveral different JSON implementations:\n\n* `JSONv1` is `encoding/json` at `v1.18.2`\n* `JSONv2` is `github.com/go-json-experiment/json` at `v0.0.0-20220524042235-dd8be80fc4a7`\n* `JSONIterator` is `github.com/json-iterator/go` at `v1.1.12`\n* `SegmentJSON` is `github.com/segmentio/encoding/json` at `v0.3.5`\n* `GoJSON` is `github.com/goccy/go-json` at `v0.9.7`\n* `SonicJSON` is `github.com/bytedance/sonic` at `v1.3.0`\n\nBenchmarks were run across various datasets:\n\n* `CanadaGeometry` is a GeoJSON (RFC 7946) representation of Canada.\n  It contains many JSON arrays of arrays of two-element arrays of numbers.\n* `CITMCatalog` contains many JSON objects using numeric names.\n* `SyntheaFHIR` is sample JSON data from the healthcare industry.\n  It contains many nested JSON objects with mostly string values,\n  where the set of unique string values is relatively small.\n* `TwitterStatus` is the JSON response from the Twitter API.\n  It contains a mix of all different JSON kinds, where string values\n  are a mix of both single-byte ASCII and multi-byte Unicode.\n* `GolangSource` is a simple tree representing the Go source code.\n  It contains many nested JSON objects, each with the same schema.\n* `StringUnicode` contains many strings with multi-byte Unicode runes.\n\nAll of the implementations other than `JSONv1` and `JSONv2` make\nextensive use of `unsafe`. As such, we expect those to generally be faster,\nbut at the cost of memory and type safety. `SonicJSON` goes a step even further\nand uses just-in-time compilation to generate machine code specialized\nfor the Go type being marshaled or unmarshaled.\nAlso, `SonicJSON` does not validate JSON strings for valid UTF-8,\nand so gains a notable performance boost on datasets with multi-byte Unicode.\nBenchmarks are performed based on the default marshal and unmarshal behavior\nof each package. Note that `JSONv2` aims to be safe and correct by default,\nwhich may not be the most performant strategy.\n\n`JSONv2` has several semantic changes relative to `JSONv1` that\nimpacts performance:\n\n1.  When marshaling, `JSONv2` no longer sorts the keys of a Go map.\n    This will improve performance.\n2.  When marshaling or unmarshaling, `JSONv2` always checks\n    to make sure JSON object names are unique.\n    This will hurt performance, but is more correct.\n3.  When marshaling or unmarshaling, `JSONv2` always\n    shallow copies the underlying value for a Go interface and\n    shallow copies the key and value for entries in a Go map.\n    This is done to keep the value as addressable so that `JSONv2` can\n    call methods and functions that operate on a pointer receiver.\n    This will hurt performance, but is more correct.\n\nAll of the charts are unit-less since the values are normalized\nrelative to `JSONv1`, which is why `JSONv1` always has a value of 1.\nA lower value is better (i.e., runs faster).\n\nBenchmarks were performed on an AMD Ryzen 9 5900X.\n\nThe code for the benchmarks is located at\nhttps://github.com/go-json-experiment/jsonbench.\n\n### Marshal Performance\n\n#### Concrete types\n\n![Benchmark Marshal Concrete](benchmark-marshal-concrete.png)\n\n* This compares marshal performance when serializing\n  [from concrete types](/testdata_test.go).\n* The `JSONv1` implementation is close to optimal (without the use of `unsafe`).\n* Relative to `JSONv1`, `JSONv2` is generally as fast or slightly faster.\n* Relative to `JSONIterator`, `JSONv2` is up to 1.3x faster.\n* Relative to `SegmentJSON`, `JSONv2` is up to 1.8x slower.\n* Relative to `GoJSON`, `JSONv2` is up to 2.0x slower.\n* Relative to `SonicJSON`, `JSONv2` is about 1.8x to 3.2x slower\n  (ignoring `StringUnicode` since `SonicJSON` does not validate UTF-8).\n* For `JSONv1` and `JSONv2`, marshaling from concrete types is\n  mostly limited by the performance of Go reflection.\n\n#### Interface types\n\n![Benchmark Marshal Interface](benchmark-marshal-interface.png)\n\n* This compares marshal performance when serializing from\n  `any`, `map[string]any`, and `[]any` types.\n* Relative to `JSONv1`, `JSONv2` is about 1.5x to 4.2x faster.\n* Relative to `JSONIterator`, `JSONv2` is about 1.1x to 2.4x faster.\n* Relative to `SegmentJSON`, `JSONv2` is about 1.2x to 1.8x faster.\n* Relative to `GoJSON`, `JSONv2` is about 1.1x to 2.5x faster.\n* Relative to `SonicJSON`, `JSONv2` is up to 1.5x slower\n  (ignoring `StringUnicode` since `SonicJSON` does not validate UTF-8).\n* `JSONv2` is faster than the alternatives.\n  One advantange is because it does not sort the keys for a `map[string]any`,\n  while alternatives (except `SonicJSON` and `JSONIterator`) do sort the keys.\n\n#### RawValue types\n\n![Benchmark Marshal Rawvalue](benchmark-marshal-rawvalue.png)\n\n* This compares performance when marshaling from a `json.RawValue`.\n  This mostly exercises the underlying encoder and\n  hides the cost of Go reflection.\n* Relative to `JSONv1`, `JSONv2` is about 3.5x to 7.8x faster.\n* `JSONIterator` is blazingly fast because\n  [it does not validate whether the raw value is valid](https://go.dev/play/p/bun9IXQCKRe)\n  and simply copies it to the output.\n* Relative to `SegmentJSON`, `JSONv2` is about 1.5x to 2.7x faster.\n* Relative to `GoJSON`, `JSONv2` is up to 2.2x faster.\n* Relative to `SonicJSON`, `JSONv2` is up to 1.5x faster.\n* Aside from `JSONIterator`, `JSONv2` is generally the fastest.\n\n### Unmarshal Performance\n\n#### Concrete types\n\n![Benchmark Unmarshal Concrete](benchmark-unmarshal-concrete.png)\n\n* This compares unmarshal performance when deserializing\n  [into concrete types](/testdata_test.go).\n* Relative to `JSONv1`, `JSONv2` is about 1.8x to 5.7x faster.\n* Relative to `JSONIterator`, `JSONv2` is about 1.1x to 1.6x slower.\n* Relative to `SegmentJSON`, `JSONv2` is up to 2.5x slower.\n* Relative to `GoJSON`, `JSONv2` is about 1.4x to 2.1x slower.\n* Relative to `SonicJSON`, `JSONv2` is up to 4.0x slower\n  (ignoring `StringUnicode` since `SonicJSON` does not validate UTF-8).\n* For `JSONv1` and `JSONv2`, unmarshaling into concrete types is\n  mostly limited by the performance of Go reflection.\n\n#### Interface types\n\n![Benchmark Unmarshal Interface](benchmark-unmarshal-interface.png)\n\n* This compares unmarshal performance when deserializing into\n  `any`, `map[string]any`, and `[]any` types.\n* Relative to `JSONv1`, `JSONv2` is about 1.tx to 4.3x faster.\n* Relative to `JSONIterator`, `JSONv2` is up to 1.5x faster.\n* Relative to `SegmentJSON`, `JSONv2` is about 1.5 to 3.7x faster.\n* Relative to `GoJSON`, `JSONv2` is up to 1.3x faster.\n* Relative to `SonicJSON`, `JSONv2` is up to 1.5x slower\n  (ignoring `StringUnicode` since `SonicJSON` does not validate UTF-8).\n* Aside from `SonicJSON`, `JSONv2` is generally just as fast\n  or faster than all the alternatives.\n\n#### RawValue types\n\n![Benchmark Unmarshal Rawvalue](benchmark-unmarshal-rawvalue.png)\n\n* This compares performance when unmarshaling into a `json.RawValue`.\n  This mostly exercises the underlying decoder and\n  hides away most of the cost of Go reflection.\n* Relative to `JSONv1`, `JSONv2` is about 8.3x to 17.0x faster.\n* Relative to `JSONIterator`, `JSONv2` is up to 2.0x faster.\n* Relative to `SegmentJSON`, `JSONv2` is up to 1.6x faster or 1.7x slower.\n* Relative to `GoJSON`, `JSONv2` is up to 1.9x faster or 2.1x slower.\n* Relative to `SonicJSON`, `JSONv2` is up to 2.0x faster\n  (ignoring `StringUnicode` since `SonicJSON` does not validate UTF-8).\n* `JSONv1` takes a\n  [lexical scanning approach](https://talks.golang.org/2011/lex.slide#1),\n  which performs a virtual function call for every byte of input.\n  In contrast, `JSONv2` makes heavy use of iterative and linear parsing logic\n  (with extra complexity to resume parsing when encountering segmented buffers).\n* `JSONv2` is comparable to the alternatives that use `unsafe`.\n  Generally it is faster, but sometimes it is slower.\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/arshal.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"errors\"\n\t\"io\"\n\t\"reflect\"\n\t\"sync\"\n)\n\n// MarshalOptions configures how Go data is serialized as JSON data.\n// The zero value is equivalent to the default marshal settings.\ntype MarshalOptions struct {\n\trequireKeyedLiterals\n\tnonComparable\n\n\t// Marshalers is a list of type-specific marshalers to use.\n\tMarshalers *Marshalers\n\n\t// StringifyNumbers specifies that numeric Go types should be serialized\n\t// as a JSON string containing the equivalent JSON number value.\n\t//\n\t// According to RFC 8259, section 6, a JSON implementation may choose to\n\t// limit the representation of a JSON number to an IEEE 754 binary64 value.\n\t// This may cause decoders to lose precision for int64 and uint64 types.\n\t// Escaping JSON numbers as a JSON string preserves the exact precision.\n\tStringifyNumbers bool\n\n\t// DiscardUnknownMembers specifies that marshaling should ignore any\n\t// JSON object members stored in Go struct fields dedicated to storing\n\t// unknown JSON object members.\n\tDiscardUnknownMembers bool\n\n\t// Deterministic specifies that the same input value will be serialized\n\t// as the exact same output bytes. Different processes of\n\t// the same program will serialize equal values to the same bytes,\n\t// but different versions of the same program are not guaranteed\n\t// to produce the exact same sequence of bytes.\n\tDeterministic bool\n\n\t// formatDepth is the depth at which we respect the format flag.\n\tformatDepth int\n\t// format is custom formatting for the value at the specified depth.\n\tformat string\n}\n\n// Marshal serializes a Go value as a []byte with default options.\n// It is a thin wrapper over MarshalOptions.Marshal.\nfunc Marshal(in any) (out []byte, err error) {\n\treturn MarshalOptions{}.Marshal(EncodeOptions{}, in)\n}\n\n// MarshalFull serializes a Go value into an io.Writer with default options.\n// It is a thin wrapper over MarshalOptions.MarshalFull.\nfunc MarshalFull(out io.Writer, in any) error {\n\treturn MarshalOptions{}.MarshalFull(EncodeOptions{}, out, in)\n}\n\n// Marshal serializes a Go value as a []byte according to the provided\n// marshal and encode options. It does not terminate the output with a newline.\n// See MarshalNext for details about the conversion of a Go value into JSON.\nfunc (mo MarshalOptions) Marshal(eo EncodeOptions, in any) (out []byte, err error) {\n\tenc := getBufferedEncoder(eo)\n\tdefer putBufferedEncoder(enc)\n\tenc.options.omitTopLevelNewline = true\n\terr = mo.MarshalNext(enc, in)\n\t// TODO(https://go.dev/issue/45038): Use bytes.Clone.\n\treturn append([]byte(nil), enc.buf...), err\n}\n\n// MarshalFull serializes a Go value into an io.Writer according to the provided\n// marshal and encode options. It does not terminate the output with a newline.\n// See MarshalNext for details about the conversion of a Go value into JSON.\nfunc (mo MarshalOptions) MarshalFull(eo EncodeOptions, out io.Writer, in any) error {\n\tenc := getStreamingEncoder(out, eo)\n\tdefer putStreamingEncoder(enc)\n\tenc.options.omitTopLevelNewline = true\n\terr := mo.MarshalNext(enc, in)\n\treturn err\n}\n\n// MarshalNext encodes a Go value as the next JSON value according to\n// the provided marshal options.\n//\n// Type-specific marshal functions and methods take precedence\n// over the default representation of a value.\n// Functions or methods that operate on *T are only called when encoding\n// a value of type T (by taking its address) or a non-nil value of *T.\n// MarshalNext ensures that a value is always addressable\n// (by boxing it on the heap if necessary) so that\n// these functions and methods can be consistently called. For performance,\n// it is recommended that MarshalNext be passed a non-nil pointer to the value.\n//\n// The input value is encoded as JSON according the following rules:\n//\n//   - If any type-specific functions in MarshalOptions.Marshalers match\n//     the value type, then those functions are called to encode the value.\n//     If all applicable functions return SkipFunc,\n//     then the value is encoded according to subsequent rules.\n//\n//   - If the value type implements MarshalerV2,\n//     then the MarshalNextJSON method is called to encode the value.\n//\n//   - If the value type implements MarshalerV1,\n//     then the MarshalJSON method is called to encode the value.\n//\n//   - If the value type implements encoding.TextMarshaler,\n//     then the MarshalText method is called to encode the value and\n//     subsequently encode its result as a JSON string.\n//\n//   - Otherwise, the value is encoded according to the value's type\n//     as described in detail below.\n//\n// Most Go types have a default JSON representation.\n// Certain types support specialized formatting according to\n// a format flag optionally specified in the Go struct tag\n// for the struct field that contains the current value\n// (see the “JSON Representation of Go structs” section for more details).\n//\n// The representation of each type is as follows:\n//\n//   - A Go boolean is encoded as a JSON boolean (e.g., true or false).\n//     It does not support any custom format flags.\n//\n//   - A Go string is encoded as a JSON string.\n//     It does not support any custom format flags.\n//\n//   - A Go []byte or [N]byte is encoded as a JSON string containing\n//     the binary value encoded using RFC 4648.\n//     If the format is \"base64\" or unspecified, then this uses RFC 4648, section 4.\n//     If the format is \"base64url\", then this uses RFC 4648, section 5.\n//     If the format is \"base32\", then this uses RFC 4648, section 6.\n//     If the format is \"base32hex\", then this uses RFC 4648, section 7.\n//     If the format is \"base16\" or \"hex\", then this uses RFC 4648, section 8.\n//     If the format is \"array\", then the bytes value is encoded as a JSON array\n//     where each byte is recursively JSON-encoded as each JSON array element.\n//\n//   - A Go integer is encoded as a JSON number without fractions or exponents.\n//     If MarshalOptions.StringifyNumbers is specified, then the JSON number is\n//     encoded within a JSON string. It does not support any custom format\n//     flags.\n//\n//   - A Go float is encoded as a JSON number.\n//     If MarshalOptions.StringifyNumbers is specified,\n//     then the JSON number is encoded within a JSON string.\n//     If the format is \"nonfinite\", then NaN, +Inf, and -Inf are encoded as\n//     the JSON strings \"NaN\", \"Infinity\", and \"-Infinity\", respectively.\n//     Otherwise, the presence of non-finite numbers results in a SemanticError.\n//\n//   - A Go map is encoded as a JSON object, where each Go map key and value\n//     is recursively encoded as a name and value pair in the JSON object.\n//     The Go map key must encode as a JSON string, otherwise this results\n//     in a SemanticError. When encoding keys, MarshalOptions.StringifyNumbers\n//     is automatically applied so that numeric keys encode as JSON strings.\n//     The Go map is traversed in a non-deterministic order.\n//     For deterministic encoding, consider using RawValue.Canonicalize.\n//     If the format is \"emitnull\", then a nil map is encoded as a JSON null.\n//     Otherwise by default, a nil map is encoded as an empty JSON object.\n//\n//   - A Go struct is encoded as a JSON object.\n//     See the “JSON Representation of Go structs” section\n//     in the package-level documentation for more details.\n//\n//   - A Go slice is encoded as a JSON array, where each Go slice element\n//     is recursively JSON-encoded as the elements of the JSON array.\n//     If the format is \"emitnull\", then a nil slice is encoded as a JSON null.\n//     Otherwise by default, a nil slice is encoded as an empty JSON array.\n//\n//   - A Go array is encoded as a JSON array, where each Go array element\n//     is recursively JSON-encoded as the elements of the JSON array.\n//     The JSON array length is always identical to the Go array length.\n//     It does not support any custom format flags.\n//\n//   - A Go pointer is encoded as a JSON null if nil, otherwise it is\n//     the recursively JSON-encoded representation of the underlying value.\n//     Format flags are forwarded to the encoding of the underlying value.\n//\n//   - A Go interface is encoded as a JSON null if nil, otherwise it is\n//     the recursively JSON-encoded representation of the underlying value.\n//     It does not support any custom format flags.\n//\n//   - A Go time.Time is encoded as a JSON string containing the timestamp\n//     formatted in RFC 3339 with nanosecond resolution.\n//     If the format matches one of the format constants declared\n//     in the time package (e.g., RFC1123), then that format is used.\n//     Otherwise, the format is used as-is with time.Time.Format if non-empty.\n//\n//   - A Go time.Duration is encoded as a JSON string containing the duration\n//     formatted according to time.Duration.String.\n//     If the format is \"nanos\", it is encoded as a JSON number\n//     containing the number of nanoseconds in the duration.\n//\n//   - All other Go types (e.g., complex numbers, channels, and functions)\n//     have no default representation and result in a SemanticError.\n//\n// JSON cannot represent cyclic data structures and\n// MarshalNext does not handle them.\n// Passing cyclic structures will result in an error.\nfunc (mo MarshalOptions) MarshalNext(out *Encoder, in any) error {\n\tv := reflect.ValueOf(in)\n\tif !v.IsValid() || (v.Kind() == reflect.Pointer && v.IsNil()) {\n\t\treturn out.WriteToken(Null)\n\t}\n\t// Shallow copy non-pointer values to obtain an addressable value.\n\t// It is beneficial to performance to always pass pointers to avoid this.\n\tif v.Kind() != reflect.Pointer {\n\t\tv2 := reflect.New(v.Type())\n\t\tv2.Elem().Set(v)\n\t\tv = v2\n\t}\n\tva := addressableValue{v.Elem()} // dereferenced pointer is always addressable\n\tt := va.Type()\n\n\t// Lookup and call the marshal function for this type.\n\tmarshal := lookupArshaler(t).marshal\n\tif mo.Marshalers != nil {\n\t\tmarshal, _ = mo.Marshalers.lookup(marshal, t)\n\t}\n\tif err := marshal(mo, out, va); err != nil {\n\t\tif !out.options.AllowDuplicateNames {\n\t\t\tout.tokens.invalidateDisabledNamespaces()\n\t\t}\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// UnmarshalOptions configures how JSON data is deserialized as Go data.\n// The zero value is equivalent to the default unmarshal settings.\ntype UnmarshalOptions struct {\n\trequireKeyedLiterals\n\tnonComparable\n\n\t// Unmarshalers is a list of type-specific unmarshalers to use.\n\tUnmarshalers *Unmarshalers\n\n\t// StringifyNumbers specifies that numeric Go types can be deserialized\n\t// from either a JSON number or a JSON string containing a JSON number\n\t// without any surrounding whitespace.\n\tStringifyNumbers bool\n\n\t// RejectUnknownMembers specifies that unknown members should be rejected\n\t// when unmarshaling a JSON object, regardless of whether there is a field\n\t// to store unknown members.\n\tRejectUnknownMembers bool\n\n\t// formatDepth is the depth at which we respect the format flag.\n\tformatDepth int\n\t// format is custom formatting for the value at the specified depth.\n\tformat string\n}\n\n// Unmarshal deserializes a Go value from a []byte with default options.\n// It is a thin wrapper over UnmarshalOptions.Unmarshal.\nfunc Unmarshal(in []byte, out any) error {\n\treturn UnmarshalOptions{}.Unmarshal(DecodeOptions{}, in, out)\n}\n\n// UnmarshalFull deserializes a Go value from an io.Reader with default options.\n// It is a thin wrapper over UnmarshalOptions.UnmarshalFull.\nfunc UnmarshalFull(in io.Reader, out any) error {\n\treturn UnmarshalOptions{}.UnmarshalFull(DecodeOptions{}, in, out)\n}\n\n// Unmarshal deserializes a Go value from a []byte according to the\n// provided unmarshal and decode options. The output must be a non-nil pointer.\n// The input must be a single JSON value with optional whitespace interspersed.\n// See UnmarshalNext for details about the conversion of JSON into a Go value.\nfunc (uo UnmarshalOptions) Unmarshal(do DecodeOptions, in []byte, out any) error {\n\tdec := getBufferedDecoder(in, do)\n\tdefer putBufferedDecoder(dec)\n\treturn uo.unmarshalFull(dec, out)\n}\n\n// UnmarshalFull deserializes a Go value from an io.Reader according to the\n// provided unmarshal and decode options. The output must be a non-nil pointer.\n// The input must be a single JSON value with optional whitespace interspersed.\n// It consumes the entirety of io.Reader until io.EOF is encountered.\n// See UnmarshalNext for details about the conversion of JSON into a Go value.\nfunc (uo UnmarshalOptions) UnmarshalFull(do DecodeOptions, in io.Reader, out any) error {\n\tdec := getStreamingDecoder(in, do)\n\tdefer putStreamingDecoder(dec)\n\treturn uo.unmarshalFull(dec, out)\n}\nfunc (uo UnmarshalOptions) unmarshalFull(in *Decoder, out any) error {\n\tswitch err := uo.UnmarshalNext(in, out); err {\n\tcase nil:\n\t\treturn in.checkEOF()\n\tcase io.EOF:\n\t\treturn io.ErrUnexpectedEOF\n\tdefault:\n\t\treturn err\n\t}\n}\n\n// UnmarshalNext decodes the next JSON value into a Go value according to\n// the provided unmarshal options. The output must be a non-nil pointer.\n//\n// Type-specific unmarshal functions and methods take precedence\n// over the default representation of a value.\n// Functions or methods that operate on *T are only called when decoding\n// a value of type T (by taking its address) or a non-nil value of *T.\n// UnmarshalNext ensures that a value is always addressable\n// (by boxing it on the heap if necessary) so that\n// these functions and methods can be consistently called.\n//\n// The input is decoded into the output according the following rules:\n//\n//   - If any type-specific functions in UnmarshalOptions.Unmarshalers match\n//     the value type, then those functions are called to decode the JSON\n//     value. If all applicable functions return SkipFunc,\n//     then the input is decoded according to subsequent rules.\n//\n//   - If the value type implements UnmarshalerV2,\n//     then the UnmarshalNextJSON method is called to decode the JSON value.\n//\n//   - If the value type implements UnmarshalerV1,\n//     then the UnmarshalJSON method is called to decode the JSON value.\n//\n//   - If the value type implements encoding.TextUnmarshaler,\n//     then the input is decoded as a JSON string and\n//     the UnmarshalText method is called with the decoded string value.\n//     This fails with a SemanticError if the input is not a JSON string.\n//\n//   - Otherwise, the JSON value is decoded according to the value's type\n//     as described in detail below.\n//\n// Most Go types have a default JSON representation.\n// Certain types support specialized formatting according to\n// a format flag optionally specified in the Go struct tag\n// for the struct field that contains the current value\n// (see the “JSON Representation of Go structs” section for more details).\n// A JSON null may be decoded into every supported Go value where\n// it is equivalent to storing the zero value of the Go value.\n// If the input JSON kind is not handled by the current Go value type,\n// then this fails with a SemanticError. Unless otherwise specified,\n// the decoded value replaces any pre-existing value.\n//\n// The representation of each type is as follows:\n//\n//   - A Go boolean is decoded from a JSON boolean (e.g., true or false).\n//     It does not support any custom format flags.\n//\n//   - A Go string is decoded from a JSON string.\n//     It does not support any custom format flags.\n//\n//   - A Go []byte or [N]byte is decoded from a JSON string\n//     containing the binary value encoded using RFC 4648.\n//     If the format is \"base64\" or unspecified, then this uses RFC 4648, section 4.\n//     If the format is \"base64url\", then this uses RFC 4648, section 5.\n//     If the format is \"base32\", then this uses RFC 4648, section 6.\n//     If the format is \"base32hex\", then this uses RFC 4648, section 7.\n//     If the format is \"base16\" or \"hex\", then this uses RFC 4648, section 8.\n//     If the format is \"array\", then the Go slice or array is decoded from a\n//     JSON array where each JSON element is recursively decoded for each byte.\n//     When decoding into a non-nil []byte, the slice length is reset to zero\n//     and the decoded input is appended to it.\n//     When decoding into a [N]byte, the input must decode to exactly N bytes,\n//     otherwise it fails with a SemanticError.\n//\n//   - A Go integer is decoded from a JSON number.\n//     It may also be decoded from a JSON string containing a JSON number\n//     if UnmarshalOptions.StringifyNumbers is specified.\n//     It fails with a SemanticError if the JSON number\n//     has a fractional or exponent component.\n//     It also fails if it overflows the representation of the Go integer type.\n//     It does not support any custom format flags.\n//\n//   - A Go float is decoded from a JSON number.\n//     It may also be decoded from a JSON string containing a JSON number\n//     if UnmarshalOptions.StringifyNumbers is specified.\n//     The JSON number is parsed as the closest representable Go float value.\n//     If the format is \"nonfinite\", then the JSON strings\n//     \"NaN\", \"Infinity\", and \"-Infinity\" are decoded as NaN, +Inf, and -Inf.\n//     Otherwise, the presence of such strings results in a SemanticError.\n//\n//   - A Go map is decoded from a JSON object,\n//     where each JSON object name and value pair is recursively decoded\n//     as the Go map key and value. When decoding keys,\n//     UnmarshalOptions.StringifyNumbers is automatically applied so that\n//     numeric keys can decode from JSON strings. Maps are not cleared.\n//     If the Go map is nil, then a new map is allocated to decode into.\n//     If the decoded key matches an existing Go map entry, the entry value\n//     is reused by decoding the JSON object value into it.\n//     The only supported format is \"emitnull\" and has no effect when decoding.\n//\n//   - A Go struct is decoded from a JSON object.\n//     See the “JSON Representation of Go structs” section\n//     in the package-level documentation for more details.\n//\n//   - A Go slice is decoded from a JSON array, where each JSON element\n//     is recursively decoded and appended to the Go slice.\n//     Before appending into a Go slice, a new slice is allocated if it is nil,\n//     otherwise the slice length is reset to zero.\n//     The only supported format is \"emitnull\" and has no effect when decoding.\n//\n//   - A Go array is decoded from a JSON array, where each JSON array element\n//     is recursively decoded as each corresponding Go array element.\n//     Each Go array element is zeroed before decoding into it.\n//     It fails with a SemanticError if the JSON array does not contain\n//     the exact same number of elements as the Go array.\n//     It does not support any custom format flags.\n//\n//   - A Go pointer is decoded based on the JSON kind and underlying Go type.\n//     If the input is a JSON null, then this stores a nil pointer.\n//     Otherwise, it allocates a new underlying value if the pointer is nil,\n//     and recursively JSON decodes into the underlying value.\n//     Format flags are forwarded to the decoding of the underlying type.\n//\n//   - A Go interface is decoded based on the JSON kind and underlying Go type.\n//     If the input is a JSON null, then this stores a nil interface value.\n//     Otherwise, a nil interface value of an empty interface type is initialized\n//     with a zero Go bool, string, float64, map[string]any, or []any if the\n//     input is a JSON boolean, string, number, object, or array, respectively.\n//     If the interface value is still nil, then this fails with a SemanticError\n//     since decoding could not determine an appropriate Go type to decode into.\n//     For example, unmarshaling into a nil io.Reader fails since\n//     there is no concrete type to populate the interface value with.\n//     Otherwise an underlying value exists and it recursively decodes\n//     the JSON input into it. It does not support any custom format flags.\n//\n//   - A Go time.Time is decoded from a JSON string containing the time\n//     formatted in RFC 3339 with nanosecond resolution.\n//     If the format matches one of the format constants declared in\n//     the time package (e.g., RFC1123), then that format is used for parsing.\n//     Otherwise, the format is used as-is with time.Time.Parse if non-empty.\n//\n//   - A Go time.Duration is decoded from a JSON string by\n//     passing the decoded string to time.ParseDuration.\n//     If the format is \"nanos\", it is instead decoded from a JSON number\n//     containing the number of nanoseconds in the duration.\n//\n//   - All other Go types (e.g., complex numbers, channels, and functions)\n//     have no default representation and result in a SemanticError.\n//\n// In general, unmarshaling follows merge semantics (similar to RFC 7396)\n// where the decoded Go value replaces the destination value\n// for any JSON kind other than an object.\n// For JSON objects, the input object is merged into the destination value\n// where matching object members recursively apply merge semantics.\nfunc (uo UnmarshalOptions) UnmarshalNext(in *Decoder, out any) error {\n\tv := reflect.ValueOf(out)\n\tif !v.IsValid() || v.Kind() != reflect.Pointer || v.IsNil() {\n\t\tvar t reflect.Type\n\t\tif v.IsValid() {\n\t\t\tt = v.Type()\n\t\t\tif t.Kind() == reflect.Pointer {\n\t\t\t\tt = t.Elem()\n\t\t\t}\n\t\t}\n\t\terr := errors.New(\"value must be passed as a non-nil pointer reference\")\n\t\treturn &SemanticError{action: \"unmarshal\", GoType: t, Err: err}\n\t}\n\tva := addressableValue{v.Elem()} // dereferenced pointer is always addressable\n\tt := va.Type()\n\n\t// Lookup and call the unmarshal function for this type.\n\tunmarshal := lookupArshaler(t).unmarshal\n\tif uo.Unmarshalers != nil {\n\t\tunmarshal, _ = uo.Unmarshalers.lookup(unmarshal, t)\n\t}\n\tif err := unmarshal(uo, in, va); err != nil {\n\t\tif !in.options.AllowDuplicateNames {\n\t\t\tin.tokens.invalidateDisabledNamespaces()\n\t\t}\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// addressableValue is a reflect.Value that is guaranteed to be addressable\n// such that calling the Addr and Set methods do not panic.\n//\n// There is no compile magic that enforces this property,\n// but rather the need to construct this type makes it easier to examine each\n// construction site to ensure that this property is upheld.\ntype addressableValue struct{ reflect.Value }\n\n// newAddressableValue constructs a new addressable value of type t.\nfunc newAddressableValue(t reflect.Type) addressableValue {\n\treturn addressableValue{reflect.New(t).Elem()}\n}\n\n// All marshal and unmarshal behavior is implemented using these signatures.\ntype (\n\tmarshaler   = func(MarshalOptions, *Encoder, addressableValue) error\n\tunmarshaler = func(UnmarshalOptions, *Decoder, addressableValue) error\n)\n\ntype arshaler struct {\n\tmarshal    marshaler\n\tunmarshal  unmarshaler\n\tnonDefault bool\n}\n\nvar lookupArshalerCache sync.Map // map[reflect.Type]*arshaler\n\nfunc lookupArshaler(t reflect.Type) *arshaler {\n\tif v, ok := lookupArshalerCache.Load(t); ok {\n\t\treturn v.(*arshaler)\n\t}\n\n\tfncs := makeDefaultArshaler(t)\n\tfncs = makeMethodArshaler(fncs, t)\n\tfncs = makeTimeArshaler(fncs, t)\n\n\t// Use the last stored so that duplicate arshalers can be garbage collected.\n\tv, _ := lookupArshalerCache.LoadOrStore(t, fncs)\n\treturn v.(*arshaler)\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/arshal_any.go",
    "content": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport \"reflect\"\n\n// This files contains an optimized marshal and unmarshal implementation\n// for the any type. This type is often used when the Go program has\n// no knowledge of the JSON schema. This is a common enough occurrence\n// to justify the complexity of adding logic for this.\n\nfunc marshalValueAny(mo MarshalOptions, enc *Encoder, val any) error {\n\tswitch val := val.(type) {\n\tcase nil:\n\t\treturn enc.WriteToken(Null)\n\tcase bool:\n\t\treturn enc.WriteToken(Bool(val))\n\tcase string:\n\t\treturn enc.WriteToken(String(val))\n\tcase float64:\n\t\treturn enc.WriteToken(Float(val))\n\tcase map[string]any:\n\t\treturn marshalObjectAny(mo, enc, val)\n\tcase []any:\n\t\treturn marshalArrayAny(mo, enc, val)\n\tdefault:\n\t\tv := newAddressableValue(reflect.TypeOf(val))\n\t\tv.Set(reflect.ValueOf(val))\n\t\tmarshal := lookupArshaler(v.Type()).marshal\n\t\tif mo.Marshalers != nil {\n\t\t\tmarshal, _ = mo.Marshalers.lookup(marshal, v.Type())\n\t\t}\n\t\treturn marshal(mo, enc, v)\n\t}\n}\n\nfunc unmarshalValueAny(uo UnmarshalOptions, dec *Decoder) (any, error) {\n\tswitch k := dec.PeekKind(); k {\n\tcase '{':\n\t\treturn unmarshalObjectAny(uo, dec)\n\tcase '[':\n\t\treturn unmarshalArrayAny(uo, dec)\n\tdefault:\n\t\tvar flags valueFlags\n\t\tval, err := dec.readValue(&flags)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tswitch val.Kind() {\n\t\tcase 'n':\n\t\t\treturn nil, nil\n\t\tcase 'f':\n\t\t\treturn false, nil\n\t\tcase 't':\n\t\t\treturn true, nil\n\t\tcase '\"':\n\t\t\tval = unescapeStringMayCopy(val, flags.isVerbatim())\n\t\t\tif dec.stringCache == nil {\n\t\t\t\tdec.stringCache = new(stringCache)\n\t\t\t}\n\t\t\treturn dec.stringCache.make(val), nil\n\t\tcase '0':\n\t\t\tfv, _ := parseFloat(val, 64) // ignore error since readValue guarantees val is valid\n\t\t\treturn fv, nil\n\t\tdefault:\n\t\t\tpanic(\"BUG: invalid kind: \" + k.String())\n\t\t}\n\t}\n}\n\nfunc marshalObjectAny(mo MarshalOptions, enc *Encoder, obj map[string]any) error {\n\t// Check for cycles.\n\tif enc.tokens.depth() > startDetectingCyclesAfter {\n\t\tv := reflect.ValueOf(obj)\n\t\tif err := enc.seenPointers.visit(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefer enc.seenPointers.leave(v)\n\t}\n\n\t// Optimize for marshaling an empty map without any preceding whitespace.\n\tif len(obj) == 0 && !enc.options.multiline && !enc.tokens.last.needObjectName() {\n\t\tenc.buf = enc.tokens.mayAppendDelim(enc.buf, '{')\n\t\tenc.buf = append(enc.buf, \"{}\"...)\n\t\tenc.tokens.last.increment()\n\t\tif enc.needFlush() {\n\t\t\treturn enc.flush()\n\t\t}\n\t\treturn nil\n\t}\n\n\tif err := enc.WriteToken(ObjectStart); err != nil {\n\t\treturn err\n\t}\n\t// A Go map guarantees that each entry has a unique key\n\t// The only possibility of duplicates is due to invalid UTF-8.\n\tif !enc.options.AllowInvalidUTF8 {\n\t\tenc.tokens.last.disableNamespace()\n\t}\n\tif !mo.Deterministic || len(obj) <= 1 {\n\t\tfor name, val := range obj {\n\t\t\tif err := enc.WriteToken(String(name)); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := marshalValueAny(mo, enc, val); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t} else {\n\t\tnames := getStrings(len(obj))\n\t\tvar i int\n\t\tfor name := range obj {\n\t\t\t(*names)[i] = name\n\t\t\ti++\n\t\t}\n\t\tnames.Sort()\n\t\tfor _, name := range *names {\n\t\t\tif err := enc.WriteToken(String(name)); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif err := marshalValueAny(mo, enc, obj[name]); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tputStrings(names)\n\t}\n\tif err := enc.WriteToken(ObjectEnd); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc unmarshalObjectAny(uo UnmarshalOptions, dec *Decoder) (map[string]any, error) {\n\ttok, err := dec.ReadToken()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tk := tok.Kind()\n\tswitch k {\n\tcase 'n':\n\t\treturn nil, nil\n\tcase '{':\n\t\tobj := make(map[string]any)\n\t\t// A Go map guarantees that each entry has a unique key\n\t\t// The only possibility of duplicates is due to invalid UTF-8.\n\t\tif !dec.options.AllowInvalidUTF8 {\n\t\t\tdec.tokens.last.disableNamespace()\n\t\t}\n\t\tfor dec.PeekKind() != '}' {\n\t\t\ttok, err := dec.ReadToken()\n\t\t\tif err != nil {\n\t\t\t\treturn obj, err\n\t\t\t}\n\t\t\tname := tok.String()\n\n\t\t\t// Manually check for duplicate names.\n\t\t\tif _, ok := obj[name]; ok {\n\t\t\t\tname := dec.previousBuffer()\n\t\t\t\terr := &SyntacticError{str: \"duplicate name \" + string(name) + \" in object\"}\n\t\t\t\treturn obj, err.withOffset(dec.InputOffset() - int64(len(name)))\n\t\t\t}\n\n\t\t\tval, err := unmarshalValueAny(uo, dec)\n\t\t\tobj[name] = val\n\t\t\tif err != nil {\n\t\t\t\treturn obj, err\n\t\t\t}\n\t\t}\n\t\tif _, err := dec.ReadToken(); err != nil {\n\t\t\treturn obj, err\n\t\t}\n\t\treturn obj, nil\n\t}\n\treturn nil, &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: mapStringAnyType}\n}\n\nfunc marshalArrayAny(mo MarshalOptions, enc *Encoder, arr []any) error {\n\t// Check for cycles.\n\tif enc.tokens.depth() > startDetectingCyclesAfter {\n\t\tv := reflect.ValueOf(arr)\n\t\tif err := enc.seenPointers.visit(v); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefer enc.seenPointers.leave(v)\n\t}\n\n\t// Optimize for marshaling an empty slice without any preceding whitespace.\n\tif len(arr) == 0 && !enc.options.multiline && !enc.tokens.last.needObjectName() {\n\t\tenc.buf = enc.tokens.mayAppendDelim(enc.buf, '[')\n\t\tenc.buf = append(enc.buf, \"[]\"...)\n\t\tenc.tokens.last.increment()\n\t\tif enc.needFlush() {\n\t\t\treturn enc.flush()\n\t\t}\n\t\treturn nil\n\t}\n\n\tif err := enc.WriteToken(ArrayStart); err != nil {\n\t\treturn err\n\t}\n\tfor _, val := range arr {\n\t\tif err := marshalValueAny(mo, enc, val); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\tif err := enc.WriteToken(ArrayEnd); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc unmarshalArrayAny(uo UnmarshalOptions, dec *Decoder) ([]any, error) {\n\ttok, err := dec.ReadToken()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tk := tok.Kind()\n\tswitch k {\n\tcase 'n':\n\t\treturn nil, nil\n\tcase '[':\n\t\tarr := []any{}\n\t\tfor dec.PeekKind() != ']' {\n\t\t\tval, err := unmarshalValueAny(uo, dec)\n\t\t\tarr = append(arr, val)\n\t\t\tif err != nil {\n\t\t\t\treturn arr, err\n\t\t\t}\n\t\t}\n\t\tif _, err := dec.ReadToken(); err != nil {\n\t\t\treturn arr, err\n\t\t}\n\t\treturn arr, nil\n\t}\n\treturn nil, &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: sliceAnyType}\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/arshal_default.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"bytes\"\n\t\"encoding/base32\"\n\t\"encoding/base64\"\n\t\"encoding/hex\"\n\t\"errors\"\n\t\"fmt\"\n\t\"math\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strconv\"\n\t\"sync\"\n)\n\n// optimizeCommon specifies whether to use optimizations targeted for certain\n// common patterns, rather than using the slower, but more general logic.\n// All tests should pass regardless of whether this is true or not.\nconst optimizeCommon = true\n\nvar (\n\t// Most natural Go type that correspond with each JSON type.\n\tanyType          = reflect.TypeOf((*any)(nil)).Elem()            // JSON value\n\tboolType         = reflect.TypeOf((*bool)(nil)).Elem()           // JSON bool\n\tstringType       = reflect.TypeOf((*string)(nil)).Elem()         // JSON string\n\tfloat64Type      = reflect.TypeOf((*float64)(nil)).Elem()        // JSON number\n\tmapStringAnyType = reflect.TypeOf((*map[string]any)(nil)).Elem() // JSON object\n\tsliceAnyType     = reflect.TypeOf((*[]any)(nil)).Elem()          // JSON array\n\n\tbytesType       = reflect.TypeOf((*[]byte)(nil)).Elem()\n\temptyStructType = reflect.TypeOf((*struct{})(nil)).Elem()\n)\n\nconst startDetectingCyclesAfter = 1000\n\ntype seenPointers map[typedPointer]struct{}\n\ntype typedPointer struct {\n\ttyp reflect.Type\n\tptr any // always stores unsafe.Pointer, but avoids depending on unsafe\n}\n\n// visit visits pointer p of type t, reporting an error if seen before.\n// If successfully visited, then the caller must eventually call leave.\nfunc (m *seenPointers) visit(v reflect.Value) error {\n\tp := typedPointer{v.Type(), v.UnsafePointer()}\n\tif _, ok := (*m)[p]; ok {\n\t\treturn &SemanticError{action: \"marshal\", GoType: p.typ, Err: errors.New(\"encountered a cycle\")}\n\t}\n\tif *m == nil {\n\t\t*m = make(map[typedPointer]struct{})\n\t}\n\t(*m)[p] = struct{}{}\n\treturn nil\n}\nfunc (m *seenPointers) leave(v reflect.Value) {\n\tp := typedPointer{v.Type(), v.UnsafePointer()}\n\tdelete(*m, p)\n}\n\nfunc makeDefaultArshaler(t reflect.Type) *arshaler {\n\tswitch t.Kind() {\n\tcase reflect.Bool:\n\t\treturn makeBoolArshaler(t)\n\tcase reflect.String:\n\t\treturn makeStringArshaler(t)\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn makeIntArshaler(t)\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:\n\t\treturn makeUintArshaler(t)\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn makeFloatArshaler(t)\n\tcase reflect.Map:\n\t\treturn makeMapArshaler(t)\n\tcase reflect.Struct:\n\t\treturn makeStructArshaler(t)\n\tcase reflect.Slice:\n\t\tfncs := makeSliceArshaler(t)\n\t\tif t.AssignableTo(bytesType) {\n\t\t\treturn makeBytesArshaler(t, fncs)\n\t\t}\n\t\treturn fncs\n\tcase reflect.Array:\n\t\tfncs := makeArrayArshaler(t)\n\t\tif reflect.SliceOf(t.Elem()).AssignableTo(bytesType) {\n\t\t\treturn makeBytesArshaler(t, fncs)\n\t\t}\n\t\treturn fncs\n\tcase reflect.Pointer:\n\t\treturn makePointerArshaler(t)\n\tcase reflect.Interface:\n\t\treturn makeInterfaceArshaler(t)\n\tdefault:\n\t\treturn makeInvalidArshaler(t)\n\t}\n}\n\nfunc makeBoolArshaler(t reflect.Type) *arshaler {\n\tvar fncs arshaler\n\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\tif mo.format != \"\" && mo.formatDepth == enc.tokens.depth() {\n\t\t\treturn newInvalidFormatError(\"marshal\", t, mo.format)\n\t\t}\n\n\t\t// Optimize for marshaling without preceding whitespace.\n\t\tif optimizeCommon && !enc.options.multiline && !enc.tokens.last.needObjectName() {\n\t\t\tenc.buf = enc.tokens.mayAppendDelim(enc.buf, 't')\n\t\t\tif va.Bool() {\n\t\t\t\tenc.buf = append(enc.buf, \"true\"...)\n\t\t\t} else {\n\t\t\t\tenc.buf = append(enc.buf, \"false\"...)\n\t\t\t}\n\t\t\tenc.tokens.last.increment()\n\t\t\tif enc.needFlush() {\n\t\t\t\treturn enc.flush()\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\n\t\treturn enc.WriteToken(Bool(va.Bool()))\n\t}\n\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\tif uo.format != \"\" && uo.formatDepth == dec.tokens.depth() {\n\t\t\treturn newInvalidFormatError(\"unmarshal\", t, uo.format)\n\t\t}\n\t\ttok, err := dec.ReadToken()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tk := tok.Kind()\n\t\tswitch k {\n\t\tcase 'n':\n\t\t\tva.SetBool(false)\n\t\t\treturn nil\n\t\tcase 't', 'f':\n\t\t\tva.SetBool(tok.Bool())\n\t\t\treturn nil\n\t\t}\n\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t}\n\t}\n\treturn &fncs\n}\n\nfunc makeStringArshaler(t reflect.Type) *arshaler {\n\tvar fncs arshaler\n\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\tif mo.format != \"\" && mo.formatDepth == enc.tokens.depth() {\n\t\t\treturn newInvalidFormatError(\"marshal\", t, mo.format)\n\t\t}\n\t\treturn enc.WriteToken(String(va.String()))\n\t}\n\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\tif uo.format != \"\" && uo.formatDepth == dec.tokens.depth() {\n\t\t\treturn newInvalidFormatError(\"unmarshal\", t, uo.format)\n\t\t}\n\t\tvar flags valueFlags\n\t\tval, err := dec.readValue(&flags)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tk := val.Kind()\n\t\tswitch k {\n\t\tcase 'n':\n\t\t\tva.SetString(\"\")\n\t\t\treturn nil\n\t\tcase '\"':\n\t\t\tval = unescapeStringMayCopy(val, flags.isVerbatim())\n\t\t\tif dec.stringCache == nil {\n\t\t\t\tdec.stringCache = new(stringCache)\n\t\t\t}\n\t\t\tstr := dec.stringCache.make(val)\n\t\t\tva.SetString(str)\n\t\t\treturn nil\n\t\t}\n\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t}\n\t}\n\treturn &fncs\n}\n\nvar (\n\tencodeBase16        = func(dst, src []byte) { hex.Encode(dst, src) }\n\tencodeBase32        = base32.StdEncoding.Encode\n\tencodeBase32Hex     = base32.HexEncoding.Encode\n\tencodeBase64        = base64.StdEncoding.Encode\n\tencodeBase64URL     = base64.URLEncoding.Encode\n\tencodedLenBase16    = hex.EncodedLen\n\tencodedLenBase32    = base32.StdEncoding.EncodedLen\n\tencodedLenBase32Hex = base32.HexEncoding.EncodedLen\n\tencodedLenBase64    = base64.StdEncoding.EncodedLen\n\tencodedLenBase64URL = base64.URLEncoding.EncodedLen\n\tdecodeBase16        = hex.Decode\n\tdecodeBase32        = base32.StdEncoding.Decode\n\tdecodeBase32Hex     = base32.HexEncoding.Decode\n\tdecodeBase64        = base64.StdEncoding.Decode\n\tdecodeBase64URL     = base64.URLEncoding.Decode\n\tdecodedLenBase16    = hex.DecodedLen\n\tdecodedLenBase32    = base32.StdEncoding.WithPadding(base32.NoPadding).DecodedLen\n\tdecodedLenBase32Hex = base32.HexEncoding.WithPadding(base32.NoPadding).DecodedLen\n\tdecodedLenBase64    = base64.StdEncoding.WithPadding(base64.NoPadding).DecodedLen\n\tdecodedLenBase64URL = base64.URLEncoding.WithPadding(base64.NoPadding).DecodedLen\n)\n\nfunc makeBytesArshaler(t reflect.Type, fncs *arshaler) *arshaler {\n\t// NOTE: This handles both []byte and [N]byte.\n\tmarshalDefault := fncs.marshal\n\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\tencode, encodedLen := encodeBase64, encodedLenBase64\n\t\tif mo.format != \"\" && mo.formatDepth == enc.tokens.depth() {\n\t\t\tswitch mo.format {\n\t\t\tcase \"base64\":\n\t\t\t\tencode, encodedLen = encodeBase64, encodedLenBase64\n\t\t\tcase \"base64url\":\n\t\t\t\tencode, encodedLen = encodeBase64URL, encodedLenBase64URL\n\t\t\tcase \"base32\":\n\t\t\t\tencode, encodedLen = encodeBase32, encodedLenBase32\n\t\t\tcase \"base32hex\":\n\t\t\t\tencode, encodedLen = encodeBase32Hex, encodedLenBase32Hex\n\t\t\tcase \"base16\", \"hex\":\n\t\t\t\tencode, encodedLen = encodeBase16, encodedLenBase16\n\t\t\tcase \"array\":\n\t\t\t\tmo.format = \"\"\n\t\t\t\treturn marshalDefault(mo, enc, va)\n\t\t\tdefault:\n\t\t\t\treturn newInvalidFormatError(\"marshal\", t, mo.format)\n\t\t\t}\n\t\t}\n\t\tval := enc.UnusedBuffer()\n\t\tb := va.Bytes()\n\t\tn := len(`\"`) + encodedLen(len(b)) + len(`\"`)\n\t\tif cap(val) < n {\n\t\t\tval = make([]byte, n)\n\t\t} else {\n\t\t\tval = val[:n]\n\t\t}\n\t\tval[0] = '\"'\n\t\tencode(val[len(`\"`):len(val)-len(`\"`)], b)\n\t\tval[len(val)-1] = '\"'\n\t\treturn enc.WriteValue(val)\n\t}\n\tunmarshalDefault := fncs.unmarshal\n\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\tdecode, decodedLen, encodedLen := decodeBase64, decodedLenBase64, encodedLenBase64\n\t\tif uo.format != \"\" && uo.formatDepth == dec.tokens.depth() {\n\t\t\tswitch uo.format {\n\t\t\tcase \"base64\":\n\t\t\t\tdecode, decodedLen, encodedLen = decodeBase64, decodedLenBase64, encodedLenBase64\n\t\t\tcase \"base64url\":\n\t\t\t\tdecode, decodedLen, encodedLen = decodeBase64URL, decodedLenBase64URL, encodedLenBase64URL\n\t\t\tcase \"base32\":\n\t\t\t\tdecode, decodedLen, encodedLen = decodeBase32, decodedLenBase32, encodedLenBase32\n\t\t\tcase \"base32hex\":\n\t\t\t\tdecode, decodedLen, encodedLen = decodeBase32Hex, decodedLenBase32Hex, encodedLenBase32Hex\n\t\t\tcase \"base16\", \"hex\":\n\t\t\t\tdecode, decodedLen, encodedLen = decodeBase16, decodedLenBase16, encodedLenBase16\n\t\t\tcase \"array\":\n\t\t\t\tuo.format = \"\"\n\t\t\t\treturn unmarshalDefault(uo, dec, va)\n\t\t\tdefault:\n\t\t\t\treturn newInvalidFormatError(\"unmarshal\", t, uo.format)\n\t\t\t}\n\t\t}\n\t\tvar flags valueFlags\n\t\tval, err := dec.readValue(&flags)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tk := val.Kind()\n\t\tswitch k {\n\t\tcase 'n':\n\t\t\tva.Set(reflect.Zero(t))\n\t\t\treturn nil\n\t\tcase '\"':\n\t\t\tval = unescapeStringMayCopy(val, flags.isVerbatim())\n\n\t\t\t// For base64 and base32, decodedLen computes the maximum output size\n\t\t\t// when given the original input size. To compute the exact size,\n\t\t\t// adjust the input size by excluding trailing padding characters.\n\t\t\t// This is unnecessary for base16, but also harmless.\n\t\t\tn := len(val)\n\t\t\tfor n > 0 && val[n-1] == '=' {\n\t\t\t\tn--\n\t\t\t}\n\t\t\tn = decodedLen(n)\n\t\t\tb := va.Bytes()\n\t\t\tif va.Kind() == reflect.Array {\n\t\t\t\tif n != len(b) {\n\t\t\t\t\terr := fmt.Errorf(\"decoded base64 length of %d mismatches array length of %d\", n, len(b))\n\t\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t, Err: err}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif b == nil || cap(b) < n {\n\t\t\t\t\tb = make([]byte, n)\n\t\t\t\t} else {\n\t\t\t\t\tb = b[:n]\n\t\t\t\t}\n\t\t\t}\n\t\t\tn2, err := decode(b, val)\n\t\t\tif err == nil && len(val) != encodedLen(n2) {\n\t\t\t\t// TODO(https://go.dev/issue/53845): RFC 4648, section 3.3,\n\t\t\t\t// specifies that non-alphabet characters must be rejected.\n\t\t\t\t// Unfortunately, the \"base32\" and \"base64\" packages allow\n\t\t\t\t// '\\r' and '\\n' characters by default.\n\t\t\t\terr = errors.New(\"illegal data at input byte \" + strconv.Itoa(bytes.IndexAny(val, \"\\r\\n\")))\n\t\t\t}\n\t\t\tif err != nil {\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t, Err: err}\n\t\t\t}\n\t\t\tif va.Kind() == reflect.Slice {\n\t\t\t\tva.SetBytes(b)\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t}\n\t}\n\treturn fncs\n}\n\nfunc makeIntArshaler(t reflect.Type) *arshaler {\n\tvar fncs arshaler\n\tbits := t.Bits()\n\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\tif mo.format != \"\" && mo.formatDepth == enc.tokens.depth() {\n\t\t\treturn newInvalidFormatError(\"marshal\", t, mo.format)\n\t\t}\n\n\t\t// Optimize for marshaling without preceding whitespace or string escaping.\n\t\tif optimizeCommon && !enc.options.multiline && !mo.StringifyNumbers && !enc.tokens.last.needObjectName() {\n\t\t\tenc.buf = enc.tokens.mayAppendDelim(enc.buf, '0')\n\t\t\tenc.buf = strconv.AppendInt(enc.buf, va.Int(), 10)\n\t\t\tenc.tokens.last.increment()\n\t\t\tif enc.needFlush() {\n\t\t\t\treturn enc.flush()\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\n\t\tx := math.Float64frombits(uint64(va.Int()))\n\t\treturn enc.writeNumber(x, rawIntNumber, mo.StringifyNumbers)\n\t}\n\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\tif uo.format != \"\" && uo.formatDepth == dec.tokens.depth() {\n\t\t\treturn newInvalidFormatError(\"unmarshal\", t, uo.format)\n\t\t}\n\t\tvar flags valueFlags\n\t\tval, err := dec.readValue(&flags)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tk := val.Kind()\n\t\tswitch k {\n\t\tcase 'n':\n\t\t\tva.SetInt(0)\n\t\t\treturn nil\n\t\tcase '\"':\n\t\t\tif !uo.StringifyNumbers {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tval = unescapeStringMayCopy(val, flags.isVerbatim())\n\t\t\tfallthrough\n\t\tcase '0':\n\t\t\tvar negOffset int\n\t\t\tneg := val[0] == '-'\n\t\t\tif neg {\n\t\t\t\tnegOffset = 1\n\t\t\t}\n\t\t\tn, ok := parseDecUint(val[negOffset:])\n\t\t\tmaxInt := uint64(1) << (bits - 1)\n\t\t\toverflow := (neg && n > maxInt) || (!neg && n > maxInt-1)\n\t\t\tif !ok {\n\t\t\t\tif n != math.MaxUint64 {\n\t\t\t\t\terr := fmt.Errorf(\"cannot parse %q as signed integer: %w\", val, strconv.ErrSyntax)\n\t\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t, Err: err}\n\t\t\t\t}\n\t\t\t\toverflow = true\n\t\t\t}\n\t\t\tif overflow {\n\t\t\t\terr := fmt.Errorf(\"cannot parse %q as signed integer: %w\", val, strconv.ErrRange)\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t, Err: err}\n\t\t\t}\n\t\t\tif neg {\n\t\t\t\tva.SetInt(int64(-n))\n\t\t\t} else {\n\t\t\t\tva.SetInt(int64(+n))\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t}\n\t}\n\treturn &fncs\n}\n\nfunc makeUintArshaler(t reflect.Type) *arshaler {\n\tvar fncs arshaler\n\tbits := t.Bits()\n\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\tif mo.format != \"\" && mo.formatDepth == enc.tokens.depth() {\n\t\t\treturn newInvalidFormatError(\"marshal\", t, mo.format)\n\t\t}\n\n\t\t// Optimize for marshaling without preceding whitespace or string escaping.\n\t\tif optimizeCommon && !enc.options.multiline && !mo.StringifyNumbers && !enc.tokens.last.needObjectName() {\n\t\t\tenc.buf = enc.tokens.mayAppendDelim(enc.buf, '0')\n\t\t\tenc.buf = strconv.AppendUint(enc.buf, va.Uint(), 10)\n\t\t\tenc.tokens.last.increment()\n\t\t\tif enc.needFlush() {\n\t\t\t\treturn enc.flush()\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\n\t\tx := math.Float64frombits(va.Uint())\n\t\treturn enc.writeNumber(x, rawUintNumber, mo.StringifyNumbers)\n\t}\n\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\tif uo.format != \"\" && uo.formatDepth == dec.tokens.depth() {\n\t\t\treturn newInvalidFormatError(\"unmarshal\", t, uo.format)\n\t\t}\n\t\tvar flags valueFlags\n\t\tval, err := dec.readValue(&flags)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tk := val.Kind()\n\t\tswitch k {\n\t\tcase 'n':\n\t\t\tva.SetUint(0)\n\t\t\treturn nil\n\t\tcase '\"':\n\t\t\tif !uo.StringifyNumbers {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tval = unescapeStringMayCopy(val, flags.isVerbatim())\n\t\t\tfallthrough\n\t\tcase '0':\n\t\t\tn, ok := parseDecUint(val)\n\t\t\tmaxUint := uint64(1) << bits\n\t\t\toverflow := n > maxUint-1\n\t\t\tif !ok {\n\t\t\t\tif n != math.MaxUint64 {\n\t\t\t\t\terr := fmt.Errorf(\"cannot parse %q as unsigned integer: %w\", val, strconv.ErrSyntax)\n\t\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t, Err: err}\n\t\t\t\t}\n\t\t\t\toverflow = true\n\t\t\t}\n\t\t\tif overflow {\n\t\t\t\terr := fmt.Errorf(\"cannot parse %q as unsigned integer: %w\", val, strconv.ErrRange)\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t, Err: err}\n\t\t\t}\n\t\t\tva.SetUint(n)\n\t\t\treturn nil\n\t\t}\n\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t}\n\t}\n\treturn &fncs\n}\n\nfunc makeFloatArshaler(t reflect.Type) *arshaler {\n\tvar fncs arshaler\n\tbits := t.Bits()\n\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\tvar allowNonFinite bool\n\t\tif mo.format != \"\" && mo.formatDepth == enc.tokens.depth() {\n\t\t\tif mo.format == \"nonfinite\" {\n\t\t\t\tallowNonFinite = true\n\t\t\t} else {\n\t\t\t\treturn newInvalidFormatError(\"marshal\", t, mo.format)\n\t\t\t}\n\t\t}\n\n\t\tfv := va.Float()\n\t\tif math.IsNaN(fv) || math.IsInf(fv, 0) {\n\t\t\tif !allowNonFinite {\n\t\t\t\terr := fmt.Errorf(\"invalid value: %v\", fv)\n\t\t\t\treturn &SemanticError{action: \"marshal\", GoType: t, Err: err}\n\t\t\t}\n\t\t\treturn enc.WriteToken(Float(fv))\n\t\t}\n\n\t\t// Optimize for marshaling without preceding whitespace or string escaping.\n\t\tif optimizeCommon && !enc.options.multiline && !mo.StringifyNumbers && !enc.tokens.last.needObjectName() {\n\t\t\tenc.buf = enc.tokens.mayAppendDelim(enc.buf, '0')\n\t\t\tenc.buf = appendNumber(enc.buf, fv, bits)\n\t\t\tenc.tokens.last.increment()\n\t\t\tif enc.needFlush() {\n\t\t\t\treturn enc.flush()\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\n\t\treturn enc.writeNumber(fv, bits, mo.StringifyNumbers)\n\t}\n\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\tvar allowNonFinite bool\n\t\tif uo.format != \"\" && uo.formatDepth == dec.tokens.depth() {\n\t\t\tif uo.format == \"nonfinite\" {\n\t\t\t\tallowNonFinite = true\n\t\t\t} else {\n\t\t\t\treturn newInvalidFormatError(\"unmarshal\", t, uo.format)\n\t\t\t}\n\t\t}\n\t\tvar flags valueFlags\n\t\tval, err := dec.readValue(&flags)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tk := val.Kind()\n\t\tswitch k {\n\t\tcase 'n':\n\t\t\tva.SetFloat(0)\n\t\t\treturn nil\n\t\tcase '\"':\n\t\t\tval = unescapeStringMayCopy(val, flags.isVerbatim())\n\t\t\tif allowNonFinite {\n\t\t\t\tswitch string(val) {\n\t\t\t\tcase \"NaN\":\n\t\t\t\t\tva.SetFloat(math.NaN())\n\t\t\t\t\treturn nil\n\t\t\t\tcase \"Infinity\":\n\t\t\t\t\tva.SetFloat(math.Inf(+1))\n\t\t\t\t\treturn nil\n\t\t\t\tcase \"-Infinity\":\n\t\t\t\t\tva.SetFloat(math.Inf(-1))\n\t\t\t\t\treturn nil\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !uo.StringifyNumbers {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif n, err := consumeNumber(val); n != len(val) || err != nil {\n\t\t\t\terr := fmt.Errorf(\"cannot parse %q as JSON number: %w\", val, strconv.ErrSyntax)\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t, Err: err}\n\t\t\t}\n\t\t\tfallthrough\n\t\tcase '0':\n\t\t\t// NOTE: Floating-point parsing is by nature a lossy operation.\n\t\t\t// We never report an overflow condition since we can always\n\t\t\t// round the input to the closest representable finite value.\n\t\t\t// For extremely large numbers, the closest value is ±MaxFloat.\n\t\t\tfv, _ := parseFloat(val, bits)\n\t\t\tva.SetFloat(fv)\n\t\t\treturn nil\n\t\t}\n\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t}\n\t}\n\treturn &fncs\n}\n\nfunc makeMapArshaler(t reflect.Type) *arshaler {\n\t// NOTE: The logic below disables namespaces for tracking duplicate names\n\t// when handling map keys with a unique representation.\n\n\t// NOTE: Values retrieved from a map are not addressable,\n\t// so we shallow copy the values to make them addressable and\n\t// store them back into the map afterwards.\n\n\tvar fncs arshaler\n\tvar (\n\t\tonce    sync.Once\n\t\tkeyFncs *arshaler\n\t\tvalFncs *arshaler\n\t)\n\tinit := func() {\n\t\tkeyFncs = lookupArshaler(t.Key())\n\t\tvalFncs = lookupArshaler(t.Elem())\n\t}\n\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\t// Check for cycles.\n\t\tif enc.tokens.depth() > startDetectingCyclesAfter {\n\t\t\tif err := enc.seenPointers.visit(va.Value); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdefer enc.seenPointers.leave(va.Value)\n\t\t}\n\n\t\tif mo.format != \"\" && mo.formatDepth == enc.tokens.depth() {\n\t\t\tif mo.format == \"emitnull\" {\n\t\t\t\tif va.IsNil() {\n\t\t\t\t\treturn enc.WriteToken(Null)\n\t\t\t\t}\n\t\t\t\tmo.format = \"\"\n\t\t\t} else {\n\t\t\t\treturn newInvalidFormatError(\"marshal\", t, mo.format)\n\t\t\t}\n\t\t}\n\n\t\t// Optimize for marshaling an empty map without any preceding whitespace.\n\t\tn := va.Len()\n\t\tif optimizeCommon && n == 0 && !enc.options.multiline && !enc.tokens.last.needObjectName() {\n\t\t\tenc.buf = enc.tokens.mayAppendDelim(enc.buf, '{')\n\t\t\tenc.buf = append(enc.buf, \"{}\"...)\n\t\t\tenc.tokens.last.increment()\n\t\t\tif enc.needFlush() {\n\t\t\t\treturn enc.flush()\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\n\t\tonce.Do(init)\n\t\tif err := enc.WriteToken(ObjectStart); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif n > 0 {\n\t\t\t// Handle maps with numeric key types by stringifying them.\n\t\t\tmko := mo\n\t\t\tmko.StringifyNumbers = true\n\n\t\t\tnonDefaultKey := keyFncs.nonDefault\n\t\t\tmarshalKey := keyFncs.marshal\n\t\t\tmarshalVal := valFncs.marshal\n\t\t\tif mo.Marshalers != nil {\n\t\t\t\tvar ok bool\n\t\t\t\tmarshalKey, ok = mo.Marshalers.lookup(marshalKey, t.Key())\n\t\t\t\tmarshalVal, _ = mo.Marshalers.lookup(marshalVal, t.Elem())\n\t\t\t\tnonDefaultKey = nonDefaultKey || ok\n\t\t\t}\n\t\t\tk := newAddressableValue(t.Key())\n\t\t\tv := newAddressableValue(t.Elem())\n\n\t\t\t// A Go map guarantees that each entry has a unique key.\n\t\t\t// As such, disable the expensive duplicate name check if we know\n\t\t\t// that every Go key will serialize as a unique JSON string.\n\t\t\tif !nonDefaultKey && mapKeyWithUniqueRepresentation(k.Kind(), enc.options.AllowInvalidUTF8) {\n\t\t\t\tenc.tokens.last.disableNamespace()\n\t\t\t}\n\n\t\t\tswitch {\n\t\t\tcase !mo.Deterministic || n <= 1:\n\t\t\t\tfor iter := va.Value.MapRange(); iter.Next(); {\n\t\t\t\t\tk.SetIterKey(iter)\n\t\t\t\t\tif err := marshalKey(mko, enc, k); err != nil {\n\t\t\t\t\t\t// TODO: If err is errMissingName, then wrap it as a\n\t\t\t\t\t\t// SemanticError since this key type cannot be serialized\n\t\t\t\t\t\t// as a JSON string.\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tv.SetIterValue(iter)\n\t\t\t\t\tif err := marshalVal(mo, enc, v); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tcase !nonDefaultKey && t.Key().Kind() == reflect.String:\n\t\t\t\tnames := getStrings(n)\n\t\t\t\tfor i, iter := 0, va.Value.MapRange(); i < n && iter.Next(); i++ {\n\t\t\t\t\tk.SetIterKey(iter)\n\t\t\t\t\t(*names)[i] = k.String()\n\t\t\t\t}\n\t\t\t\tnames.Sort()\n\t\t\t\tfor _, name := range *names {\n\t\t\t\t\tif err := enc.WriteToken(String(name)); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\t// TODO(https://go.dev/issue/57061): Use v.SetMapIndexOf.\n\t\t\t\t\tk.SetString(name)\n\t\t\t\t\tv.Set(va.MapIndex(k.Value))\n\t\t\t\t\tif err := marshalVal(mo, enc, v); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tputStrings(names)\n\t\t\tdefault:\n\t\t\t\ttype member struct {\n\t\t\t\t\tname string // unquoted name\n\t\t\t\t\tkey  addressableValue\n\t\t\t\t}\n\t\t\t\tmembers := make([]member, n)\n\t\t\t\tkeys := reflect.MakeSlice(reflect.SliceOf(t.Key()), n, n)\n\t\t\t\tfor i, iter := 0, va.Value.MapRange(); i < n && iter.Next(); i++ {\n\t\t\t\t\t// Marshal the member name.\n\t\t\t\t\tk := addressableValue{keys.Index(i)} // indexed slice element is always addressable\n\t\t\t\t\tk.SetIterKey(iter)\n\t\t\t\t\tif err := marshalKey(mko, enc, k); err != nil {\n\t\t\t\t\t\t// TODO: If err is errMissingName, then wrap it as a\n\t\t\t\t\t\t// SemanticError since this key type cannot be serialized\n\t\t\t\t\t\t// as a JSON string.\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\tname := enc.unwriteOnlyObjectMemberName()\n\t\t\t\t\tmembers[i] = member{name, k}\n\t\t\t\t}\n\t\t\t\t// TODO: If AllowDuplicateNames is enabled, then sort according\n\t\t\t\t// to reflect.Value as well if the names are equal.\n\t\t\t\t// See internal/fmtsort.\n\t\t\t\t// TODO(https://go.dev/issue/47619): Use slices.SortFunc instead.\n\t\t\t\tsort.Slice(members, func(i, j int) bool {\n\t\t\t\t\treturn lessUTF16(members[i].name, members[j].name)\n\t\t\t\t})\n\t\t\t\tfor _, member := range members {\n\t\t\t\t\tif err := enc.WriteToken(String(member.name)); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t\t// TODO(https://go.dev/issue/57061): Use v.SetMapIndexOf.\n\t\t\t\t\tv.Set(va.MapIndex(member.key.Value))\n\t\t\t\t\tif err := marshalVal(mo, enc, v); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif err := enc.WriteToken(ObjectEnd); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t}\n\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\tif uo.format != \"\" && uo.formatDepth == dec.tokens.depth() {\n\t\t\tif uo.format == \"emitnull\" {\n\t\t\t\tuo.format = \"\" // only relevant for marshaling\n\t\t\t} else {\n\t\t\t\treturn newInvalidFormatError(\"unmarshal\", t, uo.format)\n\t\t\t}\n\t\t}\n\t\ttok, err := dec.ReadToken()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tk := tok.Kind()\n\t\tswitch k {\n\t\tcase 'n':\n\t\t\tva.Set(reflect.Zero(t))\n\t\t\treturn nil\n\t\tcase '{':\n\t\t\tonce.Do(init)\n\t\t\tif va.IsNil() {\n\t\t\t\tva.Set(reflect.MakeMap(t))\n\t\t\t}\n\n\t\t\t// Handle maps with numeric key types by stringifying them.\n\t\t\tuko := uo\n\t\t\tuko.StringifyNumbers = true\n\n\t\t\tnonDefaultKey := keyFncs.nonDefault\n\t\t\tunmarshalKey := keyFncs.unmarshal\n\t\t\tunmarshalVal := valFncs.unmarshal\n\t\t\tif uo.Unmarshalers != nil {\n\t\t\t\tvar ok bool\n\t\t\t\tunmarshalKey, ok = uo.Unmarshalers.lookup(unmarshalKey, t.Key())\n\t\t\t\tunmarshalVal, _ = uo.Unmarshalers.lookup(unmarshalVal, t.Elem())\n\t\t\t\tnonDefaultKey = nonDefaultKey || ok\n\t\t\t}\n\t\t\tk := newAddressableValue(t.Key())\n\t\t\tv := newAddressableValue(t.Elem())\n\n\t\t\t// Manually check for duplicate entries by virtue of whether the\n\t\t\t// unmarshaled key already exists in the destination Go map.\n\t\t\t// Consequently, syntactically different names (e.g., \"0\" and \"-0\")\n\t\t\t// will be rejected as duplicates since they semantically refer\n\t\t\t// to the same Go value. This is an unusual interaction\n\t\t\t// between syntax and semantics, but is more correct.\n\t\t\tif !nonDefaultKey && mapKeyWithUniqueRepresentation(k.Kind(), dec.options.AllowInvalidUTF8) {\n\t\t\t\tdec.tokens.last.disableNamespace()\n\t\t\t}\n\n\t\t\t// In the rare case where the map is not already empty,\n\t\t\t// then we need to manually track which keys we already saw\n\t\t\t// since existing presence alone is insufficient to indicate\n\t\t\t// whether the input had a duplicate name.\n\t\t\tvar seen reflect.Value\n\t\t\tif !dec.options.AllowDuplicateNames && va.Len() > 0 {\n\t\t\t\tseen = reflect.MakeMap(reflect.MapOf(k.Type(), emptyStructType))\n\t\t\t}\n\n\t\t\tfor dec.PeekKind() != '}' {\n\t\t\t\tk.Set(reflect.Zero(t.Key()))\n\t\t\t\tif err := unmarshalKey(uko, dec, k); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tif k.Kind() == reflect.Interface && !k.IsNil() && !k.Elem().Type().Comparable() {\n\t\t\t\t\terr := fmt.Errorf(\"invalid incomparable key type %v\", k.Elem().Type())\n\t\t\t\t\treturn &SemanticError{action: \"unmarshal\", GoType: t, Err: err}\n\t\t\t\t}\n\n\t\t\t\tif v2 := va.MapIndex(k.Value); v2.IsValid() {\n\t\t\t\t\tif !dec.options.AllowDuplicateNames && (!seen.IsValid() || seen.MapIndex(k.Value).IsValid()) {\n\t\t\t\t\t\t// TODO: Unread the object name.\n\t\t\t\t\t\tname := dec.previousBuffer()\n\t\t\t\t\t\terr := &SyntacticError{str: \"duplicate name \" + string(name) + \" in object\"}\n\t\t\t\t\t\treturn err.withOffset(dec.InputOffset() - int64(len(name)))\n\t\t\t\t\t}\n\t\t\t\t\tv.Set(v2)\n\t\t\t\t} else {\n\t\t\t\t\tv.Set(reflect.Zero(v.Type()))\n\t\t\t\t}\n\t\t\t\terr := unmarshalVal(uo, dec, v)\n\t\t\t\tva.SetMapIndex(k.Value, v.Value)\n\t\t\t\tif seen.IsValid() {\n\t\t\t\t\tseen.SetMapIndex(k.Value, reflect.Zero(emptyStructType))\n\t\t\t\t}\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t\tif _, err := dec.ReadToken(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t}\n\t}\n\treturn &fncs\n}\n\n// mapKeyWithUniqueRepresentation reports whether all possible values of k\n// marshal to a different JSON value, and whether all possible JSON values\n// that can unmarshal into k unmarshal to different Go values.\n// In other words, the representation must be a bijective.\nfunc mapKeyWithUniqueRepresentation(k reflect.Kind, allowInvalidUTF8 bool) bool {\n\tswitch k {\n\tcase reflect.Bool,\n\t\treflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,\n\t\treflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:\n\t\treturn true\n\tcase reflect.String:\n\t\t// For strings, we have to be careful since names with invalid UTF-8\n\t\t// maybe unescape to the same Go string value.\n\t\treturn !allowInvalidUTF8\n\tdefault:\n\t\t// Floating-point kinds are not listed above since NaNs\n\t\t// can appear multiple times and all serialize as \"NaN\".\n\t\treturn false\n\t}\n}\n\nfunc makeStructArshaler(t reflect.Type) *arshaler {\n\t// NOTE: The logic below disables namespaces for tracking duplicate names\n\t// and does the tracking locally with an efficient bit-set based on which\n\t// Go struct fields were seen.\n\n\tvar fncs arshaler\n\tvar (\n\t\tonce    sync.Once\n\t\tfields  structFields\n\t\terrInit *SemanticError\n\t)\n\tinit := func() {\n\t\tfields, errInit = makeStructFields(t)\n\t}\n\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\tif mo.format != \"\" && mo.formatDepth == enc.tokens.depth() {\n\t\t\treturn newInvalidFormatError(\"marshal\", t, mo.format)\n\t\t}\n\t\tonce.Do(init)\n\t\tif errInit != nil {\n\t\t\terr := *errInit // shallow copy SemanticError\n\t\t\terr.action = \"marshal\"\n\t\t\treturn &err\n\t\t}\n\t\tif err := enc.WriteToken(ObjectStart); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar seenIdxs uintSet\n\t\tprevIdx := -1\n\t\tenc.tokens.last.disableNamespace() // we manually ensure unique names below\n\t\tfor i := range fields.flattened {\n\t\t\tf := &fields.flattened[i]\n\t\t\tv := addressableValue{va.Field(f.index[0])} // addressable if struct value is addressable\n\t\t\tif len(f.index) > 1 {\n\t\t\t\tv = v.fieldByIndex(f.index[1:], false)\n\t\t\t\tif !v.IsValid() {\n\t\t\t\t\tcontinue // implies a nil inlined field\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// OmitZero skips the field if the Go value is zero,\n\t\t\t// which we can determine up front without calling the marshaler.\n\t\t\tif f.omitzero && ((f.isZero == nil && v.IsZero()) || (f.isZero != nil && f.isZero(v))) {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tmarshal := f.fncs.marshal\n\t\t\tnonDefault := f.fncs.nonDefault\n\t\t\tif mo.Marshalers != nil {\n\t\t\t\tvar ok bool\n\t\t\t\tmarshal, ok = mo.Marshalers.lookup(marshal, f.typ)\n\t\t\t\tnonDefault = nonDefault || ok\n\t\t\t}\n\n\t\t\t// OmitEmpty skips the field if the marshaled JSON value is empty,\n\t\t\t// which we can know up front if there are no custom marshalers,\n\t\t\t// otherwise we must marshal the value and unwrite it if empty.\n\t\t\tif f.omitempty && !nonDefault && f.isEmpty != nil && f.isEmpty(v) {\n\t\t\t\tcontinue // fast path for omitempty\n\t\t\t}\n\n\t\t\t// Write the object member name.\n\t\t\t//\n\t\t\t// The logic below is semantically equivalent to:\n\t\t\t//\tenc.WriteToken(String(f.name))\n\t\t\t// but specialized and simplified because:\n\t\t\t//\t1. The Encoder must be expecting an object name.\n\t\t\t//\t2. The object namespace is guaranteed to be disabled.\n\t\t\t//\t3. The object name is guaranteed to be valid and pre-escaped.\n\t\t\t//\t4. There is no need to flush the buffer (for unwrite purposes).\n\t\t\t//\t5. There is no possibility of an error occurring.\n\t\t\tif optimizeCommon {\n\t\t\t\t// Append any delimiters or optional whitespace.\n\t\t\t\tif enc.tokens.last.length() > 0 {\n\t\t\t\t\tenc.buf = append(enc.buf, ',')\n\t\t\t\t}\n\t\t\t\tif enc.options.multiline {\n\t\t\t\t\tenc.buf = enc.appendIndent(enc.buf, enc.tokens.needIndent('\"'))\n\t\t\t\t}\n\n\t\t\t\t// Append the token to the output and to the state machine.\n\t\t\t\tn0 := len(enc.buf) // offset before calling appendString\n\t\t\t\tif enc.options.EscapeRune == nil {\n\t\t\t\t\tenc.buf = append(enc.buf, f.quotedName...)\n\t\t\t\t} else {\n\t\t\t\t\tenc.buf, _ = appendString(enc.buf, f.name, false, enc.options.EscapeRune)\n\t\t\t\t}\n\t\t\t\tif !enc.options.AllowDuplicateNames {\n\t\t\t\t\tenc.names.replaceLastQuotedOffset(n0)\n\t\t\t\t}\n\t\t\t\tenc.tokens.last.increment()\n\t\t\t} else {\n\t\t\t\tif err := enc.WriteToken(String(f.name)); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Write the object member value.\n\t\t\tmo2 := mo\n\t\t\tif f.string {\n\t\t\t\tmo2.StringifyNumbers = true\n\t\t\t}\n\t\t\tif f.format != \"\" {\n\t\t\t\tmo2.formatDepth = enc.tokens.depth()\n\t\t\t\tmo2.format = f.format\n\t\t\t}\n\t\t\tif err := marshal(mo2, enc, v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\t// Try unwriting the member if empty (slow path for omitempty).\n\t\t\tif f.omitempty {\n\t\t\t\tvar prevName *string\n\t\t\t\tif prevIdx >= 0 {\n\t\t\t\t\tprevName = &fields.flattened[prevIdx].name\n\t\t\t\t}\n\t\t\t\tif enc.unwriteEmptyObjectMember(prevName) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remember the previous written object member.\n\t\t\t// The set of seen fields only needs to be updated to detect\n\t\t\t// duplicate names with those from the inlined fallback.\n\t\t\tif !enc.options.AllowDuplicateNames && fields.inlinedFallback != nil {\n\t\t\t\tseenIdxs.insert(uint(f.id))\n\t\t\t}\n\t\t\tprevIdx = f.id\n\t\t}\n\t\tif fields.inlinedFallback != nil && !(mo.DiscardUnknownMembers && fields.inlinedFallback.unknown) {\n\t\t\tvar insertUnquotedName func([]byte) bool\n\t\t\tif !enc.options.AllowDuplicateNames {\n\t\t\t\tinsertUnquotedName = func(name []byte) bool {\n\t\t\t\t\t// Check that the name from inlined fallback does not match\n\t\t\t\t\t// one of the previously marshaled names from known fields.\n\t\t\t\t\tif foldedFields := fields.byFoldedName[string(foldName(name))]; len(foldedFields) > 0 {\n\t\t\t\t\t\tif f := fields.byActualName[string(name)]; f != nil {\n\t\t\t\t\t\t\treturn seenIdxs.insert(uint(f.id))\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor _, f := range foldedFields {\n\t\t\t\t\t\t\tif f.nocase {\n\t\t\t\t\t\t\t\treturn seenIdxs.insert(uint(f.id))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Check that the name does not match any other name\n\t\t\t\t\t// previously marshaled from the inlined fallback.\n\t\t\t\t\treturn enc.namespaces.last().insertUnquoted(name)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif err := marshalInlinedFallbackAll(mo, enc, va, fields.inlinedFallback, insertUnquotedName); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := enc.WriteToken(ObjectEnd); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t}\n\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\tif uo.format != \"\" && uo.formatDepth == dec.tokens.depth() {\n\t\t\treturn newInvalidFormatError(\"unmarshal\", t, uo.format)\n\t\t}\n\t\ttok, err := dec.ReadToken()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tk := tok.Kind()\n\t\tswitch k {\n\t\tcase 'n':\n\t\t\tva.Set(reflect.Zero(t))\n\t\t\treturn nil\n\t\tcase '{':\n\t\t\tonce.Do(init)\n\t\t\tif errInit != nil {\n\t\t\t\terr := *errInit // shallow copy SemanticError\n\t\t\t\terr.action = \"unmarshal\"\n\t\t\t\treturn &err\n\t\t\t}\n\t\t\tvar seenIdxs uintSet\n\t\t\tdec.tokens.last.disableNamespace()\n\t\t\tfor dec.PeekKind() != '}' {\n\t\t\t\t// Process the object member name.\n\t\t\t\tvar flags valueFlags\n\t\t\t\tval, err := dec.readValue(&flags)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tname := unescapeStringMayCopy(val, flags.isVerbatim())\n\t\t\t\tf := fields.byActualName[string(name)]\n\t\t\t\tif f == nil {\n\t\t\t\t\tfor _, f2 := range fields.byFoldedName[string(foldName(name))] {\n\t\t\t\t\t\tif f2.nocase {\n\t\t\t\t\t\t\tf = f2\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif f == nil {\n\t\t\t\t\t\tif uo.RejectUnknownMembers && (fields.inlinedFallback == nil || fields.inlinedFallback.unknown) {\n\t\t\t\t\t\t\treturn &SemanticError{action: \"unmarshal\", GoType: t, Err: fmt.Errorf(\"unknown name %s\", val)}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif !dec.options.AllowDuplicateNames && !dec.namespaces.last().insertUnquoted(name) {\n\t\t\t\t\t\t\t// TODO: Unread the object name.\n\t\t\t\t\t\t\terr := &SyntacticError{str: \"duplicate name \" + string(val) + \" in object\"}\n\t\t\t\t\t\t\treturn err.withOffset(dec.InputOffset() - int64(len(val)))\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif fields.inlinedFallback == nil {\n\t\t\t\t\t\t\t// Skip unknown value since we have no place to store it.\n\t\t\t\t\t\t\tif err := dec.SkipValue(); err != nil {\n\t\t\t\t\t\t\t\treturn err\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Marshal into value capable of storing arbitrary object members.\n\t\t\t\t\t\t\tif err := unmarshalInlinedFallbackNext(uo, dec, va, fields.inlinedFallback, val, name); err != nil {\n\t\t\t\t\t\t\t\treturn err\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif !dec.options.AllowDuplicateNames && !seenIdxs.insert(uint(f.id)) {\n\t\t\t\t\t// TODO: Unread the object name.\n\t\t\t\t\terr := &SyntacticError{str: \"duplicate name \" + string(val) + \" in object\"}\n\t\t\t\t\treturn err.withOffset(dec.InputOffset() - int64(len(val)))\n\t\t\t\t}\n\n\t\t\t\t// Process the object member value.\n\t\t\t\tunmarshal := f.fncs.unmarshal\n\t\t\t\tif uo.Unmarshalers != nil {\n\t\t\t\t\tunmarshal, _ = uo.Unmarshalers.lookup(unmarshal, f.typ)\n\t\t\t\t}\n\t\t\t\tuo2 := uo\n\t\t\t\tif f.string {\n\t\t\t\t\tuo2.StringifyNumbers = true\n\t\t\t\t}\n\t\t\t\tif f.format != \"\" {\n\t\t\t\t\tuo2.formatDepth = dec.tokens.depth()\n\t\t\t\t\tuo2.format = f.format\n\t\t\t\t}\n\t\t\t\tv := addressableValue{va.Field(f.index[0])} // addressable if struct value is addressable\n\t\t\t\tif len(f.index) > 1 {\n\t\t\t\t\tv = v.fieldByIndex(f.index[1:], true)\n\t\t\t\t}\n\t\t\t\tif err := unmarshal(uo2, dec, v); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t\tif _, err := dec.ReadToken(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t}\n\t}\n\treturn &fncs\n}\n\nfunc (va addressableValue) fieldByIndex(index []int, mayAlloc bool) addressableValue {\n\tfor _, i := range index {\n\t\tva = va.indirect(mayAlloc)\n\t\tif !va.IsValid() {\n\t\t\treturn va\n\t\t}\n\t\tva = addressableValue{va.Field(i)} // addressable if struct value is addressable\n\t}\n\treturn va\n}\n\nfunc (va addressableValue) indirect(mayAlloc bool) addressableValue {\n\tif va.Kind() == reflect.Pointer {\n\t\tif va.IsNil() {\n\t\t\tif !mayAlloc {\n\t\t\t\treturn addressableValue{}\n\t\t\t}\n\t\t\tva.Set(reflect.New(va.Type().Elem()))\n\t\t}\n\t\tva = addressableValue{va.Elem()} // dereferenced pointer is always addressable\n\t}\n\treturn va\n}\n\nfunc makeSliceArshaler(t reflect.Type) *arshaler {\n\tvar fncs arshaler\n\tvar (\n\t\tonce    sync.Once\n\t\tvalFncs *arshaler\n\t)\n\tinit := func() {\n\t\tvalFncs = lookupArshaler(t.Elem())\n\t}\n\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\t// Check for cycles.\n\t\tif enc.tokens.depth() > startDetectingCyclesAfter {\n\t\t\tif err := enc.seenPointers.visit(va.Value); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdefer enc.seenPointers.leave(va.Value)\n\t\t}\n\n\t\tif mo.format != \"\" && mo.formatDepth == enc.tokens.depth() {\n\t\t\tif mo.format == \"emitnull\" {\n\t\t\t\tif va.IsNil() {\n\t\t\t\t\treturn enc.WriteToken(Null)\n\t\t\t\t}\n\t\t\t\tmo.format = \"\"\n\t\t\t} else {\n\t\t\t\treturn newInvalidFormatError(\"marshal\", t, mo.format)\n\t\t\t}\n\t\t}\n\n\t\t// Optimize for marshaling an empty slice without any preceding whitespace.\n\t\tn := va.Len()\n\t\tif optimizeCommon && n == 0 && !enc.options.multiline && !enc.tokens.last.needObjectName() {\n\t\t\tenc.buf = enc.tokens.mayAppendDelim(enc.buf, '[')\n\t\t\tenc.buf = append(enc.buf, \"[]\"...)\n\t\t\tenc.tokens.last.increment()\n\t\t\tif enc.needFlush() {\n\t\t\t\treturn enc.flush()\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\n\t\tonce.Do(init)\n\t\tif err := enc.WriteToken(ArrayStart); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmarshal := valFncs.marshal\n\t\tif mo.Marshalers != nil {\n\t\t\tmarshal, _ = mo.Marshalers.lookup(marshal, t.Elem())\n\t\t}\n\t\tfor i := 0; i < n; i++ {\n\t\t\tv := addressableValue{va.Index(i)} // indexed slice element is always addressable\n\t\t\tif err := marshal(mo, enc, v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := enc.WriteToken(ArrayEnd); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t}\n\temptySlice := reflect.MakeSlice(t, 0, 0)\n\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\tif uo.format != \"\" && uo.formatDepth == dec.tokens.depth() {\n\t\t\tif uo.format == \"emitnull\" {\n\t\t\t\tuo.format = \"\" // only relevant for marshaling\n\t\t\t} else {\n\t\t\t\treturn newInvalidFormatError(\"unmarshal\", t, uo.format)\n\t\t\t}\n\t\t}\n\n\t\ttok, err := dec.ReadToken()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tk := tok.Kind()\n\t\tswitch k {\n\t\tcase 'n':\n\t\t\tva.Set(reflect.Zero(t))\n\t\t\treturn nil\n\t\tcase '[':\n\t\t\tonce.Do(init)\n\t\t\tunmarshal := valFncs.unmarshal\n\t\t\tif uo.Unmarshalers != nil {\n\t\t\t\tunmarshal, _ = uo.Unmarshalers.lookup(unmarshal, t.Elem())\n\t\t\t}\n\t\t\tmustZero := true // we do not know the cleanliness of unused capacity\n\t\t\tcap := va.Cap()\n\t\t\tif cap > 0 {\n\t\t\t\tva.SetLen(cap)\n\t\t\t}\n\t\t\tvar i int\n\t\t\tfor dec.PeekKind() != ']' {\n\t\t\t\tif i == cap {\n\t\t\t\t\t// TODO(https://go.dev/issue/48000): Use reflect.Value.Append.\n\t\t\t\t\tva.Set(reflect.Append(va.Value, reflect.Zero(t.Elem())))\n\t\t\t\t\tcap = va.Cap()\n\t\t\t\t\tva.SetLen(cap)\n\t\t\t\t\tmustZero = false // append guarantees that unused capacity is zero-initialized\n\t\t\t\t}\n\t\t\t\tv := addressableValue{va.Index(i)} // indexed slice element is always addressable\n\t\t\t\ti++\n\t\t\t\tif mustZero {\n\t\t\t\t\tv.Set(reflect.Zero(t.Elem()))\n\t\t\t\t}\n\t\t\t\tif err := unmarshal(uo, dec, v); err != nil {\n\t\t\t\t\tva.SetLen(i)\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t\tif i == 0 {\n\t\t\t\tva.Set(emptySlice)\n\t\t\t} else {\n\t\t\t\tva.SetLen(i)\n\t\t\t}\n\t\t\tif _, err := dec.ReadToken(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t}\n\t}\n\treturn &fncs\n}\n\nfunc makeArrayArshaler(t reflect.Type) *arshaler {\n\tvar fncs arshaler\n\tvar (\n\t\tonce    sync.Once\n\t\tvalFncs *arshaler\n\t)\n\tinit := func() {\n\t\tvalFncs = lookupArshaler(t.Elem())\n\t}\n\tn := t.Len()\n\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\tif mo.format != \"\" && mo.formatDepth == enc.tokens.depth() {\n\t\t\treturn newInvalidFormatError(\"marshal\", t, mo.format)\n\t\t}\n\t\tonce.Do(init)\n\t\tif err := enc.WriteToken(ArrayStart); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmarshal := valFncs.marshal\n\t\tif mo.Marshalers != nil {\n\t\t\tmarshal, _ = mo.Marshalers.lookup(marshal, t.Elem())\n\t\t}\n\t\tfor i := 0; i < n; i++ {\n\t\t\tv := addressableValue{va.Index(i)} // indexed array element is addressable if array is addressable\n\t\t\tif err := marshal(mo, enc, v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif err := enc.WriteToken(ArrayEnd); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t}\n\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\tif uo.format != \"\" && uo.formatDepth == dec.tokens.depth() {\n\t\t\treturn newInvalidFormatError(\"unmarshal\", t, uo.format)\n\t\t}\n\t\ttok, err := dec.ReadToken()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tk := tok.Kind()\n\t\tswitch k {\n\t\tcase 'n':\n\t\t\tva.Set(reflect.Zero(t))\n\t\t\treturn nil\n\t\tcase '[':\n\t\t\tonce.Do(init)\n\t\t\tunmarshal := valFncs.unmarshal\n\t\t\tif uo.Unmarshalers != nil {\n\t\t\t\tunmarshal, _ = uo.Unmarshalers.lookup(unmarshal, t.Elem())\n\t\t\t}\n\t\t\tvar i int\n\t\t\tfor dec.PeekKind() != ']' {\n\t\t\t\tif i >= n {\n\t\t\t\t\terr := errors.New(\"too many array elements\")\n\t\t\t\t\treturn &SemanticError{action: \"unmarshal\", GoType: t, Err: err}\n\t\t\t\t}\n\t\t\t\tv := addressableValue{va.Index(i)} // indexed array element is addressable if array is addressable\n\t\t\t\tv.Set(reflect.Zero(v.Type()))\n\t\t\t\tif err := unmarshal(uo, dec, v); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\ti++\n\t\t\t}\n\t\t\tif _, err := dec.ReadToken(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif i < n {\n\t\t\t\terr := errors.New(\"too few array elements\")\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", GoType: t, Err: err}\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t}\n\t}\n\treturn &fncs\n}\n\nfunc makePointerArshaler(t reflect.Type) *arshaler {\n\tvar fncs arshaler\n\tvar (\n\t\tonce    sync.Once\n\t\tvalFncs *arshaler\n\t)\n\tinit := func() {\n\t\tvalFncs = lookupArshaler(t.Elem())\n\t}\n\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\t// Check for cycles.\n\t\tif enc.tokens.depth() > startDetectingCyclesAfter {\n\t\t\tif err := enc.seenPointers.visit(va.Value); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdefer enc.seenPointers.leave(va.Value)\n\t\t}\n\n\t\t// NOTE: MarshalOptions.format is forwarded to underlying marshal.\n\t\tif va.IsNil() {\n\t\t\treturn enc.WriteToken(Null)\n\t\t}\n\t\tonce.Do(init)\n\t\tmarshal := valFncs.marshal\n\t\tif mo.Marshalers != nil {\n\t\t\tmarshal, _ = mo.Marshalers.lookup(marshal, t.Elem())\n\t\t}\n\t\tv := addressableValue{va.Elem()} // dereferenced pointer is always addressable\n\t\treturn marshal(mo, enc, v)\n\t}\n\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\t// NOTE: UnmarshalOptions.format is forwarded to underlying unmarshal.\n\t\tif dec.PeekKind() == 'n' {\n\t\t\tif _, err := dec.ReadToken(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tva.Set(reflect.Zero(t))\n\t\t\treturn nil\n\t\t}\n\t\tonce.Do(init)\n\t\tunmarshal := valFncs.unmarshal\n\t\tif uo.Unmarshalers != nil {\n\t\t\tunmarshal, _ = uo.Unmarshalers.lookup(unmarshal, t.Elem())\n\t\t}\n\t\tif va.IsNil() {\n\t\t\tva.Set(reflect.New(t.Elem()))\n\t\t}\n\t\tv := addressableValue{va.Elem()} // dereferenced pointer is always addressable\n\t\treturn unmarshal(uo, dec, v)\n\t}\n\treturn &fncs\n}\n\nfunc makeInterfaceArshaler(t reflect.Type) *arshaler {\n\t// NOTE: Values retrieved from an interface are not addressable,\n\t// so we shallow copy the values to make them addressable and\n\t// store them back into the interface afterwards.\n\n\tvar fncs arshaler\n\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\tif mo.format != \"\" && mo.formatDepth == enc.tokens.depth() {\n\t\t\treturn newInvalidFormatError(\"marshal\", t, mo.format)\n\t\t}\n\t\tif va.IsNil() {\n\t\t\treturn enc.WriteToken(Null)\n\t\t}\n\t\tv := newAddressableValue(va.Elem().Type())\n\t\tv.Set(va.Elem())\n\t\tmarshal := lookupArshaler(v.Type()).marshal\n\t\tif mo.Marshalers != nil {\n\t\t\tmarshal, _ = mo.Marshalers.lookup(marshal, v.Type())\n\t\t}\n\t\t// Optimize for the any type if there are no special options.\n\t\tif optimizeCommon && t == anyType && !mo.StringifyNumbers && mo.format == \"\" && (mo.Marshalers == nil || !mo.Marshalers.fromAny) {\n\t\t\treturn marshalValueAny(mo, enc, va.Elem().Interface())\n\t\t}\n\t\treturn marshal(mo, enc, v)\n\t}\n\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\tif uo.format != \"\" && uo.formatDepth == dec.tokens.depth() {\n\t\t\treturn newInvalidFormatError(\"unmarshal\", t, uo.format)\n\t\t}\n\t\tif dec.PeekKind() == 'n' {\n\t\t\tif _, err := dec.ReadToken(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tva.Set(reflect.Zero(t))\n\t\t\treturn nil\n\t\t}\n\t\tvar v addressableValue\n\t\tif va.IsNil() {\n\t\t\t// Optimize for the any type if there are no special options.\n\t\t\t// We do not care about stringified numbers since JSON strings\n\t\t\t// are always unmarshaled into an any value as Go strings.\n\t\t\t// Duplicate name check must be enforced since unmarshalValueAny\n\t\t\t// does not implement merge semantics.\n\t\t\tif optimizeCommon && t == anyType && uo.format == \"\" && (uo.Unmarshalers == nil || !uo.Unmarshalers.fromAny) && !dec.options.AllowDuplicateNames {\n\t\t\t\tv, err := unmarshalValueAny(uo, dec)\n\t\t\t\t// We must check for nil interface values up front.\n\t\t\t\t// See https://go.dev/issue/52310.\n\t\t\t\tif v != nil {\n\t\t\t\t\tva.Set(reflect.ValueOf(v))\n\t\t\t\t}\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tk := dec.PeekKind()\n\t\t\tif !isAnyType(t) {\n\t\t\t\terr := errors.New(\"cannot derive concrete type for non-empty interface\")\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t, Err: err}\n\t\t\t}\n\t\t\tswitch k {\n\t\t\tcase 'f', 't':\n\t\t\t\tv = newAddressableValue(boolType)\n\t\t\tcase '\"':\n\t\t\t\tv = newAddressableValue(stringType)\n\t\t\tcase '0':\n\t\t\t\tv = newAddressableValue(float64Type)\n\t\t\tcase '{':\n\t\t\t\tv = newAddressableValue(mapStringAnyType)\n\t\t\tcase '[':\n\t\t\t\tv = newAddressableValue(sliceAnyType)\n\t\t\tdefault:\n\t\t\t\t// If k is invalid (e.g., due to an I/O or syntax error), then\n\t\t\t\t// that will be cached by PeekKind and returned by ReadValue.\n\t\t\t\t// If k is '}' or ']', then ReadValue must error since\n\t\t\t\t// those are invalid kinds at the start of a JSON value.\n\t\t\t\t_, err := dec.ReadValue()\n\t\t\t\treturn err\n\t\t\t}\n\t\t} else {\n\t\t\t// Shallow copy the existing value to keep it addressable.\n\t\t\t// Any mutations at the top-level of the value will be observable\n\t\t\t// since we always store this value back into the interface value.\n\t\t\tv = newAddressableValue(va.Elem().Type())\n\t\t\tv.Set(va.Elem())\n\t\t}\n\t\tunmarshal := lookupArshaler(v.Type()).unmarshal\n\t\tif uo.Unmarshalers != nil {\n\t\t\tunmarshal, _ = uo.Unmarshalers.lookup(unmarshal, v.Type())\n\t\t}\n\t\terr := unmarshal(uo, dec, v)\n\t\tva.Set(v.Value)\n\t\treturn err\n\t}\n\treturn &fncs\n}\n\n// isAnyType reports wether t is equivalent to the any interface type.\nfunc isAnyType(t reflect.Type) bool {\n\t// This is forward compatible if the Go language permits type sets within\n\t// ordinary interfaces where an interface with zero methods does not\n\t// necessarily mean it can hold every possible Go type.\n\t// See https://go.dev/issue/45346.\n\treturn t == anyType || anyType.Implements(t)\n}\n\nfunc makeInvalidArshaler(t reflect.Type) *arshaler {\n\tvar fncs arshaler\n\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\treturn &SemanticError{action: \"marshal\", GoType: t}\n\t}\n\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\treturn &SemanticError{action: \"unmarshal\", GoType: t}\n\t}\n\treturn &fncs\n}\n\nfunc newInvalidFormatError(action string, t reflect.Type, format string) error {\n\terr := fmt.Errorf(\"invalid format flag: %q\", format)\n\treturn &SemanticError{action: action, GoType: t, Err: err}\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/arshal_funcs.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"sync\"\n)\n\n// SkipFunc may be returned by MarshalFuncV2 and UnmarshalFuncV2 functions.\n//\n// Any function that returns SkipFunc must not cause observable side effects\n// on the provided Encoder or Decoder. For example, it is permissible to call\n// Decoder.PeekKind, but not permissible to call Decoder.ReadToken or\n// Encoder.WriteToken since such methods mutate the state.\nconst SkipFunc = jsonError(\"skip function\")\n\n// Marshalers is a list of functions that may override the marshal behavior\n// of specific types. Populate MarshalOptions.Marshalers to use it.\n// A nil *Marshalers is equivalent to an empty list.\ntype Marshalers = typedMarshalers\n\n// NewMarshalers constructs a flattened list of marshal functions.\n// If multiple functions in the list are applicable for a value of a given type,\n// then those earlier in the list take precedence over those that come later.\n// If a function returns SkipFunc, then the next applicable function is called,\n// otherwise the default marshaling behavior is used.\n//\n// For example:\n//\n//\tm1 := NewMarshalers(f1, f2)\n//\tm2 := NewMarshalers(f0, m1, f3)     // equivalent to m3\n//\tm3 := NewMarshalers(f0, f1, f2, f3) // equivalent to m2\nfunc NewMarshalers(ms ...*Marshalers) *Marshalers {\n\treturn newMarshalers(ms...)\n}\n\n// Unmarshalers is a list of functions that may override the unmarshal behavior\n// of specific types. Populate UnmarshalOptions.Unmarshalers to use it.\n// A nil *Unmarshalers is equivalent to an empty list.\ntype Unmarshalers = typedUnmarshalers\n\n// NewUnmarshalers constructs a flattened list of unmarshal functions.\n// If multiple functions in the list are applicable for a value of a given type,\n// then those earlier in the list take precedence over those that come later.\n// If a function returns SkipFunc, then the next applicable function is called,\n// otherwise the default unmarshaling behavior is used.\n//\n// For example:\n//\n//\tu1 := NewUnmarshalers(f1, f2)\n//\tu2 := NewUnmarshalers(f0, u1, f3)     // equivalent to u3\n//\tu3 := NewUnmarshalers(f0, f1, f2, f3) // equivalent to u2\nfunc NewUnmarshalers(us ...*Unmarshalers) *Unmarshalers {\n\treturn newUnmarshalers(us...)\n}\n\ntype typedMarshalers = typedArshalers[MarshalOptions, Encoder]\ntype typedUnmarshalers = typedArshalers[UnmarshalOptions, Decoder]\ntype typedArshalers[Options, Coder any] struct {\n\tnonComparable\n\n\tfncVals  []typedArshaler[Options, Coder]\n\tfncCache sync.Map // map[reflect.Type]arshaler\n\n\t// fromAny reports whether any of Go types used to represent arbitrary JSON\n\t// (i.e., any, bool, string, float64, map[string]any, or []any) matches\n\t// any of the provided type-specific arshalers.\n\t//\n\t// This bit of information is needed in arshal_default.go to determine\n\t// whether to use the specialized logic in arshal_any.go to handle\n\t// the any interface type. The logic in arshal_any.go does not support\n\t// type-specific arshal functions, so we must avoid using that logic\n\t// if this is true.\n\tfromAny bool\n}\ntype typedMarshaler = typedArshaler[MarshalOptions, Encoder]\ntype typedUnmarshaler = typedArshaler[UnmarshalOptions, Decoder]\ntype typedArshaler[Options, Coder any] struct {\n\ttyp     reflect.Type\n\tfnc     func(Options, *Coder, addressableValue) error\n\tmaySkip bool\n}\n\nfunc newMarshalers(ms ...*Marshalers) *Marshalers       { return newTypedArshalers(ms...) }\nfunc newUnmarshalers(us ...*Unmarshalers) *Unmarshalers { return newTypedArshalers(us...) }\nfunc newTypedArshalers[Options, Coder any](as ...*typedArshalers[Options, Coder]) *typedArshalers[Options, Coder] {\n\tvar a typedArshalers[Options, Coder]\n\tfor _, a2 := range as {\n\t\tif a2 != nil {\n\t\t\ta.fncVals = append(a.fncVals, a2.fncVals...)\n\t\t\ta.fromAny = a.fromAny || a2.fromAny\n\t\t}\n\t}\n\tif len(a.fncVals) == 0 {\n\t\treturn nil\n\t}\n\treturn &a\n}\n\nfunc (a *typedArshalers[Options, Coder]) lookup(fnc func(Options, *Coder, addressableValue) error, t reflect.Type) (func(Options, *Coder, addressableValue) error, bool) {\n\tif a == nil {\n\t\treturn fnc, false\n\t}\n\tif v, ok := a.fncCache.Load(t); ok {\n\t\tif v == nil {\n\t\t\treturn fnc, false\n\t\t}\n\t\treturn v.(func(Options, *Coder, addressableValue) error), true\n\t}\n\n\t// Collect a list of arshalers that can be called for this type.\n\t// This list may be longer than 1 since some arshalers can be skipped.\n\tvar fncs []func(Options, *Coder, addressableValue) error\n\tfor _, fncVal := range a.fncVals {\n\t\tif !castableTo(t, fncVal.typ) {\n\t\t\tcontinue\n\t\t}\n\t\tfncs = append(fncs, fncVal.fnc)\n\t\tif !fncVal.maySkip {\n\t\t\tbreak // subsequent arshalers will never be called\n\t\t}\n\t}\n\n\tif len(fncs) == 0 {\n\t\ta.fncCache.Store(t, nil) // nil to indicate that no funcs found\n\t\treturn fnc, false\n\t}\n\n\t// Construct an arshaler that may call every applicable arshaler.\n\tfncDefault := fnc\n\tfnc = func(o Options, c *Coder, v addressableValue) error {\n\t\tfor _, fnc := range fncs {\n\t\t\tif err := fnc(o, c, v); err != SkipFunc {\n\t\t\t\treturn err // may be nil or non-nil\n\t\t\t}\n\t\t}\n\t\treturn fncDefault(o, c, v)\n\t}\n\n\t// Use the first stored so duplicate work can be garbage collected.\n\tv, _ := a.fncCache.LoadOrStore(t, fnc)\n\treturn v.(func(Options, *Coder, addressableValue) error), true\n}\n\n// MarshalFuncV1 constructs a type-specific marshaler that\n// specifies how to marshal values of type T.\n// T can be any type except a named pointer.\n// The function is always provided with a non-nil pointer value\n// if T is an interface or pointer type.\n//\n// The function must marshal exactly one JSON value.\n// The value of T must not be retained outside the function call.\n// It may not return SkipFunc.\nfunc MarshalFuncV1[T any](fn func(T) ([]byte, error)) *Marshalers {\n\tt := reflect.TypeOf((*T)(nil)).Elem()\n\tassertCastableTo(t, true)\n\ttypFnc := typedMarshaler{\n\t\ttyp: t,\n\t\tfnc: func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\t\tval, err := fn(va.castTo(t).Interface().(T))\n\t\t\tif err != nil {\n\t\t\t\terr = wrapSkipFunc(err, \"marshal function of type func(T) ([]byte, error)\")\n\t\t\t\t// TODO: Avoid wrapping semantic errors.\n\t\t\t\treturn &SemanticError{action: \"marshal\", GoType: t, Err: err}\n\t\t\t}\n\t\t\tif err := enc.WriteValue(val); err != nil {\n\t\t\t\t// TODO: Avoid wrapping semantic or I/O errors.\n\t\t\t\treturn &SemanticError{action: \"marshal\", JSONKind: RawValue(val).Kind(), GoType: t, Err: err}\n\t\t\t}\n\t\t\treturn nil\n\t\t},\n\t}\n\treturn &Marshalers{fncVals: []typedMarshaler{typFnc}, fromAny: castableToFromAny(t)}\n}\n\n// MarshalFuncV2 constructs a type-specific marshaler that\n// specifies how to marshal values of type T.\n// T can be any type except a named pointer.\n// The function is always provided with a non-nil pointer value\n// if T is an interface or pointer type.\n//\n// The function must marshal exactly one JSON value by calling write methods\n// on the provided encoder. It may return SkipFunc such that marshaling can\n// move on to the next marshal function. However, no mutable method calls may\n// be called on the encoder if SkipFunc is returned.\n// The pointer to Encoder and the value of T must not be retained\n// outside the function call.\nfunc MarshalFuncV2[T any](fn func(MarshalOptions, *Encoder, T) error) *Marshalers {\n\tt := reflect.TypeOf((*T)(nil)).Elem()\n\tassertCastableTo(t, true)\n\ttypFnc := typedMarshaler{\n\t\ttyp: t,\n\t\tfnc: func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\t\tprevDepth, prevLength := enc.tokens.depthLength()\n\t\t\terr := fn(mo, enc, va.castTo(t).Interface().(T))\n\t\t\tcurrDepth, currLength := enc.tokens.depthLength()\n\t\t\tif err == nil && (prevDepth != currDepth || prevLength+1 != currLength) {\n\t\t\t\terr = errors.New(\"must write exactly one JSON value\")\n\t\t\t}\n\t\t\tif err != nil {\n\t\t\t\tif err == SkipFunc {\n\t\t\t\t\tif prevDepth == currDepth && prevLength == currLength {\n\t\t\t\t\t\treturn SkipFunc\n\t\t\t\t\t}\n\t\t\t\t\terr = errors.New(\"must not write any JSON tokens when skipping\")\n\t\t\t\t}\n\t\t\t\t// TODO: Avoid wrapping semantic or I/O errors.\n\t\t\t\treturn &SemanticError{action: \"marshal\", GoType: t, Err: err}\n\t\t\t}\n\t\t\treturn nil\n\t\t},\n\t\tmaySkip: true,\n\t}\n\treturn &Marshalers{fncVals: []typedMarshaler{typFnc}, fromAny: castableToFromAny(t)}\n}\n\n// UnmarshalFuncV1 constructs a type-specific unmarshaler that\n// specifies how to unmarshal values of type T.\n// T must be an unnamed pointer or an interface type.\n// The function is always provided with a non-nil pointer value.\n//\n// The function must unmarshal exactly one JSON value.\n// The input []byte must not be mutated.\n// The input []byte and value T must not be retained outside the function call.\n// It may not return SkipFunc.\nfunc UnmarshalFuncV1[T any](fn func([]byte, T) error) *Unmarshalers {\n\tt := reflect.TypeOf((*T)(nil)).Elem()\n\tassertCastableTo(t, false)\n\ttypFnc := typedUnmarshaler{\n\t\ttyp: t,\n\t\tfnc: func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\t\tval, err := dec.ReadValue()\n\t\t\tif err != nil {\n\t\t\t\treturn err // must be a syntactic or I/O error\n\t\t\t}\n\t\t\terr = fn(val, va.castTo(t).Interface().(T))\n\t\t\tif err != nil {\n\t\t\t\terr = wrapSkipFunc(err, \"unmarshal function of type func([]byte, T) error\")\n\t\t\t\t// TODO: Avoid wrapping semantic, syntactic, or I/O errors.\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: val.Kind(), GoType: t, Err: err}\n\t\t\t}\n\t\t\treturn nil\n\t\t},\n\t}\n\treturn &Unmarshalers{fncVals: []typedUnmarshaler{typFnc}, fromAny: castableToFromAny(t)}\n}\n\n// UnmarshalFuncV2 constructs a type-specific unmarshaler that\n// specifies how to unmarshal values of type T.\n// T must be an unnamed pointer or an interface type.\n// The function is always provided with a non-nil pointer value.\n//\n// The function must unmarshal exactly one JSON value by calling read methods\n// on the provided decoder. It may return SkipFunc such that unmarshaling can\n// move on to the next unmarshal function. However, no mutable method calls may\n// be called on the decoder if SkipFunc is returned.\n// The pointer to Decoder and the value of T must not be retained\n// outside the function call.\nfunc UnmarshalFuncV2[T any](fn func(UnmarshalOptions, *Decoder, T) error) *Unmarshalers {\n\tt := reflect.TypeOf((*T)(nil)).Elem()\n\tassertCastableTo(t, false)\n\ttypFnc := typedUnmarshaler{\n\t\ttyp: t,\n\t\tfnc: func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\t\tprevDepth, prevLength := dec.tokens.depthLength()\n\t\t\terr := fn(uo, dec, va.castTo(t).Interface().(T))\n\t\t\tcurrDepth, currLength := dec.tokens.depthLength()\n\t\t\tif err == nil && (prevDepth != currDepth || prevLength+1 != currLength) {\n\t\t\t\terr = errors.New(\"must read exactly one JSON value\")\n\t\t\t}\n\t\t\tif err != nil {\n\t\t\t\tif err == SkipFunc {\n\t\t\t\t\tif prevDepth == currDepth && prevLength == currLength {\n\t\t\t\t\t\treturn SkipFunc\n\t\t\t\t\t}\n\t\t\t\t\terr = errors.New(\"must not read any JSON tokens when skipping\")\n\t\t\t\t}\n\t\t\t\t// TODO: Avoid wrapping semantic, syntactic, or I/O errors.\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", GoType: t, Err: err}\n\t\t\t}\n\t\t\treturn nil\n\t\t},\n\t\tmaySkip: true,\n\t}\n\treturn &Unmarshalers{fncVals: []typedUnmarshaler{typFnc}, fromAny: castableToFromAny(t)}\n}\n\n// assertCastableTo asserts that \"to\" is a valid type to be casted to.\n// These are the Go types that type-specific arshalers may operate upon.\n//\n// Let AllTypes be the universal set of all possible Go types.\n// This function generally asserts that:\n//\n//\tlen([from for from in AllTypes if castableTo(from, to)]) > 0\n//\n// otherwise it panics.\n//\n// As a special-case if marshal is false, then we forbid any non-pointer or\n// non-interface type since it is almost always a bug trying to unmarshal\n// into something where the end-user caller did not pass in an addressable value\n// since they will not observe the mutations.\nfunc assertCastableTo(to reflect.Type, marshal bool) {\n\tswitch to.Kind() {\n\tcase reflect.Interface:\n\t\treturn\n\tcase reflect.Pointer:\n\t\t// Only allow unnamed pointers to be consistent with the fact that\n\t\t// taking the address of a value produces an unnamed pointer type.\n\t\tif to.Name() == \"\" {\n\t\t\treturn\n\t\t}\n\tdefault:\n\t\t// Technically, non-pointer types are permissible for unmarshal.\n\t\t// However, they are often a bug since the receiver would be immutable.\n\t\t// Thus, only allow them for marshaling.\n\t\tif marshal {\n\t\t\treturn\n\t\t}\n\t}\n\tif marshal {\n\t\tpanic(fmt.Sprintf(\"input type %v must be an interface type, an unnamed pointer type, or a non-pointer type\", to))\n\t} else {\n\t\tpanic(fmt.Sprintf(\"input type %v must be an interface type or an unnamed pointer type\", to))\n\t}\n}\n\n// castableTo checks whether values of type \"from\" can be casted to type \"to\".\n// Nil pointer or interface \"from\" values are never considered castable.\n//\n// This function must be kept in sync with addressableValue.castTo.\nfunc castableTo(from, to reflect.Type) bool {\n\tswitch to.Kind() {\n\tcase reflect.Interface:\n\t\t// TODO: This breaks when ordinary interfaces can have type sets\n\t\t// since interfaces now exist where only the value form of a type (T)\n\t\t// implements the interface, but not the pointer variant (*T).\n\t\t// See https://go.dev/issue/45346.\n\t\treturn reflect.PointerTo(from).Implements(to)\n\tcase reflect.Pointer:\n\t\t// Common case for unmarshaling.\n\t\t// From must be a concrete or interface type.\n\t\treturn reflect.PointerTo(from) == to\n\tdefault:\n\t\t// Common case for marshaling.\n\t\t// From must be a concrete type.\n\t\treturn from == to\n\t}\n}\n\n// castTo casts va to the specified type.\n// If the type is an interface, then the underlying type will always\n// be a non-nil pointer to a concrete type.\n//\n// Requirement: castableTo(va.Type(), to) must hold.\nfunc (va addressableValue) castTo(to reflect.Type) reflect.Value {\n\tswitch to.Kind() {\n\tcase reflect.Interface:\n\t\treturn va.Addr().Convert(to)\n\tcase reflect.Pointer:\n\t\treturn va.Addr()\n\tdefault:\n\t\treturn va.Value\n\t}\n}\n\n// castableToFromAny reports whether \"to\" can be casted to from any\n// of the dynamic types used to represent arbitrary JSON.\nfunc castableToFromAny(to reflect.Type) bool {\n\tfor _, from := range []reflect.Type{anyType, boolType, stringType, float64Type, mapStringAnyType, sliceAnyType} {\n\t\tif castableTo(from, to) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\nfunc wrapSkipFunc(err error, what string) error {\n\tif err == SkipFunc {\n\t\treturn errors.New(what + \" cannot be skipped\")\n\t}\n\treturn err\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/arshal_inlined.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"reflect\"\n)\n\n// This package supports \"inlining\" a Go struct field, where the contents\n// of the serialized field (which must be a JSON object) are treated as if\n// they are part of the parent Go struct (which represents a JSON object).\n//\n// Generally, inlined fields are of a Go struct type, where the fields of the\n// nested struct are virtually hoisted up to the parent struct using rules\n// similar to how Go embedding works (but operating within the JSON namespace).\n//\n// However, inlined fields may also be of a Go map type with a string key\n// or a RawValue. Such inlined fields are called \"fallback\" fields since they\n// represent any arbitrary JSON object member. Explicitly named fields take\n// precedence over the inlined fallback. Only one inlined fallback is allowed.\n\nvar rawValueType = reflect.TypeOf((*RawValue)(nil)).Elem()\n\n// marshalInlinedFallbackAll marshals all the members in an inlined fallback.\nfunc marshalInlinedFallbackAll(mo MarshalOptions, enc *Encoder, va addressableValue, f *structField, insertUnquotedName func([]byte) bool) error {\n\tv := addressableValue{va.Field(f.index[0])} // addressable if struct value is addressable\n\tif len(f.index) > 1 {\n\t\tv = v.fieldByIndex(f.index[1:], false)\n\t\tif !v.IsValid() {\n\t\t\treturn nil // implies a nil inlined field\n\t\t}\n\t}\n\tv = v.indirect(false)\n\tif !v.IsValid() {\n\t\treturn nil\n\t}\n\n\tif v.Type() == rawValueType {\n\t\tb := v.Interface().(RawValue)\n\t\tif len(b) == 0 { // TODO: Should this be nil? What if it were all whitespace?\n\t\t\treturn nil\n\t\t}\n\n\t\tdec := getBufferedDecoder(b, DecodeOptions{AllowDuplicateNames: true, AllowInvalidUTF8: true})\n\t\tdefer putBufferedDecoder(dec)\n\n\t\ttok, err := dec.ReadToken()\n\t\tif err != nil {\n\t\t\treturn &SemanticError{action: \"marshal\", GoType: rawValueType, Err: err}\n\t\t}\n\t\tif tok.Kind() != '{' {\n\t\t\terr := errors.New(\"inlined raw value must be a JSON object\")\n\t\t\treturn &SemanticError{action: \"marshal\", JSONKind: tok.Kind(), GoType: rawValueType, Err: err}\n\t\t}\n\t\tfor dec.PeekKind() != '}' {\n\t\t\t// Parse the JSON object name.\n\t\t\tvar flags valueFlags\n\t\t\tval, err := dec.readValue(&flags)\n\t\t\tif err != nil {\n\t\t\t\treturn &SemanticError{action: \"marshal\", GoType: rawValueType, Err: err}\n\t\t\t}\n\t\t\tif insertUnquotedName != nil {\n\t\t\t\tname := unescapeStringMayCopy(val, flags.isVerbatim())\n\t\t\t\tif !insertUnquotedName(name) {\n\t\t\t\t\treturn &SyntacticError{str: \"duplicate name \" + string(val) + \" in object\"}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif err := enc.WriteValue(val); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\t// Parse the JSON object value.\n\t\t\tval, err = dec.readValue(&flags)\n\t\t\tif err != nil {\n\t\t\t\treturn &SemanticError{action: \"marshal\", GoType: rawValueType, Err: err}\n\t\t\t}\n\t\t\tif err := enc.WriteValue(val); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\tif _, err := dec.ReadToken(); err != nil {\n\t\t\treturn &SemanticError{action: \"marshal\", GoType: rawValueType, Err: err}\n\t\t}\n\t\tif err := dec.checkEOF(); err != nil {\n\t\t\treturn &SemanticError{action: \"marshal\", GoType: rawValueType, Err: err}\n\t\t}\n\t\treturn nil\n\t} else {\n\t\tm := v // must be a map[string]V\n\t\tn := m.Len()\n\t\tif n == 0 {\n\t\t\treturn nil\n\t\t}\n\t\tmk := newAddressableValue(stringType)\n\t\tmv := newAddressableValue(m.Type().Elem())\n\t\tmarshalKey := func(mk addressableValue) error {\n\t\t\tb, err := appendString(enc.UnusedBuffer(), mk.String(), !enc.options.AllowInvalidUTF8, nil)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif insertUnquotedName != nil {\n\t\t\t\tisVerbatim := bytes.IndexByte(b, '\\\\') < 0\n\t\t\t\tname := unescapeStringMayCopy(b, isVerbatim)\n\t\t\t\tif !insertUnquotedName(name) {\n\t\t\t\t\treturn &SyntacticError{str: \"duplicate name \" + string(b) + \" in object\"}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn enc.WriteValue(b)\n\t\t}\n\t\tmarshalVal := f.fncs.marshal\n\t\tif mo.Marshalers != nil {\n\t\t\tmarshalVal, _ = mo.Marshalers.lookup(marshalVal, mv.Type())\n\t\t}\n\t\tif !mo.Deterministic || n <= 1 {\n\t\t\tfor iter := m.MapRange(); iter.Next(); {\n\t\t\t\tmk.SetIterKey(iter)\n\t\t\t\tif err := marshalKey(mk); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tmv.Set(iter.Value())\n\t\t\t\tif err := marshalVal(mo, enc, mv); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tnames := getStrings(n)\n\t\t\tfor i, iter := 0, m.Value.MapRange(); i < n && iter.Next(); i++ {\n\t\t\t\tmk.SetIterKey(iter)\n\t\t\t\t(*names)[i] = mk.String()\n\t\t\t}\n\t\t\tnames.Sort()\n\t\t\tfor _, name := range *names {\n\t\t\t\tmk.SetString(name)\n\t\t\t\tif err := marshalKey(mk); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\t// TODO(https://go.dev/issue/57061): Use mv.SetMapIndexOf.\n\t\t\t\tmv.Set(m.MapIndex(mk.Value))\n\t\t\t\tif err := marshalVal(mo, enc, mv); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t\tputStrings(names)\n\t\t}\n\t\treturn nil\n\t}\n}\n\n// unmarshalInlinedFallbackNext unmarshals only the next member in an inlined fallback.\nfunc unmarshalInlinedFallbackNext(uo UnmarshalOptions, dec *Decoder, va addressableValue, f *structField, quotedName, unquotedName []byte) error {\n\tv := addressableValue{va.Field(f.index[0])} // addressable if struct value is addressable\n\tif len(f.index) > 1 {\n\t\tv = v.fieldByIndex(f.index[1:], true)\n\t}\n\tv = v.indirect(true)\n\n\tif v.Type() == rawValueType {\n\t\tb := v.Addr().Interface().(*RawValue)\n\t\tif len(*b) == 0 { // TODO: Should this be nil? What if it were all whitespace?\n\t\t\t*b = append(*b, '{')\n\t\t} else {\n\t\t\t*b = trimSuffixWhitespace(*b)\n\t\t\tif hasSuffixByte(*b, '}') {\n\t\t\t\t// TODO: When merging into an object for the first time,\n\t\t\t\t// should we verify that it is valid?\n\t\t\t\t*b = trimSuffixByte(*b, '}')\n\t\t\t\t*b = trimSuffixWhitespace(*b)\n\t\t\t\tif !hasSuffixByte(*b, ',') && !hasSuffixByte(*b, '{') {\n\t\t\t\t\t*b = append(*b, ',')\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\terr := errors.New(\"inlined raw value must be a JSON object\")\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", GoType: rawValueType, Err: err}\n\t\t\t}\n\t\t}\n\t\t*b = append(*b, quotedName...)\n\t\t*b = append(*b, ':')\n\t\trawValue, err := dec.ReadValue()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t*b = append(*b, rawValue...)\n\t\t*b = append(*b, '}')\n\t\treturn nil\n\t} else {\n\t\tname := string(unquotedName) // TODO: Intern this?\n\n\t\tm := v // must be a map[string]V\n\t\tif m.IsNil() {\n\t\t\tm.Set(reflect.MakeMap(m.Type()))\n\t\t}\n\t\tmk := reflect.ValueOf(name)\n\t\tmv := newAddressableValue(v.Type().Elem()) // TODO: Cache across calls?\n\t\tif v2 := m.MapIndex(mk); v2.IsValid() {\n\t\t\tmv.Set(v2)\n\t\t}\n\n\t\tunmarshal := f.fncs.unmarshal\n\t\tif uo.Unmarshalers != nil {\n\t\t\tunmarshal, _ = uo.Unmarshalers.lookup(unmarshal, mv.Type())\n\t\t}\n\t\terr := unmarshal(uo, dec, mv)\n\t\tm.SetMapIndex(mk, mv.Value)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/arshal_methods.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"encoding\"\n\t\"errors\"\n\t\"reflect\"\n)\n\n// Interfaces for custom serialization.\nvar (\n\tjsonMarshalerV1Type   = reflect.TypeOf((*MarshalerV1)(nil)).Elem()\n\tjsonMarshalerV2Type   = reflect.TypeOf((*MarshalerV2)(nil)).Elem()\n\tjsonUnmarshalerV1Type = reflect.TypeOf((*UnmarshalerV1)(nil)).Elem()\n\tjsonUnmarshalerV2Type = reflect.TypeOf((*UnmarshalerV2)(nil)).Elem()\n\ttextMarshalerType     = reflect.TypeOf((*encoding.TextMarshaler)(nil)).Elem()\n\ttextUnmarshalerType   = reflect.TypeOf((*encoding.TextUnmarshaler)(nil)).Elem()\n)\n\n// MarshalerV1 is implemented by types that can marshal themselves.\n// It is recommended that types implement MarshalerV2 unless the implementation\n// is trying to avoid a hard dependency on the \"jsontext\" package.\n//\n// It is recommended that implementations return a buffer that is safe\n// for the caller to retain and potentially mutate.\ntype MarshalerV1 interface {\n\tMarshalJSON() ([]byte, error)\n}\n\n// MarshalerV2 is implemented by types that can marshal themselves.\n// It is recommended that types implement MarshalerV2 instead of MarshalerV1\n// since this is both more performant and flexible.\n// If a type implements both MarshalerV1 and MarshalerV2,\n// then MarshalerV2 takes precedence. In such a case, both implementations\n// should aim to have equivalent behavior for the default marshal options.\n//\n// The implementation must write only one JSON value to the Encoder and\n// must not retain the pointer to Encoder.\ntype MarshalerV2 interface {\n\tMarshalNextJSON(MarshalOptions, *Encoder) error\n\n\t// TODO: Should users call the MarshalOptions.MarshalNext method or\n\t// should/can they call this method directly? Does it matter?\n}\n\n// UnmarshalerV1 is implemented by types that can unmarshal themselves.\n// It is recommended that types implement UnmarshalerV2 unless\n// the implementation is trying to avoid a hard dependency on this package.\n//\n// The input can be assumed to be a valid encoding of a JSON value\n// if called from unmarshal functionality in this package.\n// UnmarshalJSON must copy the JSON data if it is retained after returning.\n// It is recommended that UnmarshalJSON implement merge semantics when\n// unmarshaling into a pre-populated value.\n//\n// Implementations must not retain or mutate the input []byte.\ntype UnmarshalerV1 interface {\n\tUnmarshalJSON([]byte) error\n}\n\n// UnmarshalerV2 is implemented by types that can unmarshal themselves.\n// It is recommended that types implement UnmarshalerV2 instead of UnmarshalerV1\n// since this is both more performant and flexible.\n// If a type implements both UnmarshalerV1 and UnmarshalerV2,\n// then UnmarshalerV2 takes precedence. In such a case, both implementations\n// should aim to have equivalent behavior for the default unmarshal options.\n//\n// The implementation must read only one JSON value from the Decoder.\n// It is recommended that UnmarshalNextJSON implement merge semantics when\n// unmarshaling into a pre-populated value.\n//\n// Implementations must not retain the pointer to Decoder.\ntype UnmarshalerV2 interface {\n\tUnmarshalNextJSON(UnmarshalOptions, *Decoder) error\n\n\t// TODO: Should users call the UnmarshalOptions.UnmarshalNext method or\n\t// should/can they call this method directly? Does it matter?\n}\n\nfunc makeMethodArshaler(fncs *arshaler, t reflect.Type) *arshaler {\n\t// Avoid injecting method arshaler on the pointer or interface version\n\t// to avoid ever calling the method on a nil pointer or interface receiver.\n\t// Let it be injected on the value receiver (which is always addressable).\n\tif t.Kind() == reflect.Pointer || t.Kind() == reflect.Interface {\n\t\treturn fncs\n\t}\n\n\t// Handle custom marshaler.\n\tswitch which, needAddr := implementsWhich(t, jsonMarshalerV2Type, jsonMarshalerV1Type, textMarshalerType); which {\n\tcase jsonMarshalerV2Type:\n\t\tfncs.nonDefault = true\n\t\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\t\tprevDepth, prevLength := enc.tokens.depthLength()\n\t\t\terr := va.addrWhen(needAddr).Interface().(MarshalerV2).MarshalNextJSON(mo, enc)\n\t\t\tcurrDepth, currLength := enc.tokens.depthLength()\n\t\t\tif (prevDepth != currDepth || prevLength+1 != currLength) && err == nil {\n\t\t\t\terr = errors.New(\"must write exactly one JSON value\")\n\t\t\t}\n\t\t\tif err != nil {\n\t\t\t\terr = wrapSkipFunc(err, \"marshal method\")\n\t\t\t\t// TODO: Avoid wrapping semantic or I/O errors.\n\t\t\t\treturn &SemanticError{action: \"marshal\", GoType: t, Err: err}\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\tcase jsonMarshalerV1Type:\n\t\tfncs.nonDefault = true\n\t\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\t\tmarshaler := va.addrWhen(needAddr).Interface().(MarshalerV1)\n\t\t\tval, err := marshaler.MarshalJSON()\n\t\t\tif err != nil {\n\t\t\t\terr = wrapSkipFunc(err, \"marshal method\")\n\t\t\t\t// TODO: Avoid wrapping semantic errors.\n\t\t\t\treturn &SemanticError{action: \"marshal\", GoType: t, Err: err}\n\t\t\t}\n\t\t\tif err := enc.WriteValue(val); err != nil {\n\t\t\t\t// TODO: Avoid wrapping semantic or I/O errors.\n\t\t\t\treturn &SemanticError{action: \"marshal\", JSONKind: RawValue(val).Kind(), GoType: t, Err: err}\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\tcase textMarshalerType:\n\t\tfncs.nonDefault = true\n\t\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\t\tmarshaler := va.addrWhen(needAddr).Interface().(encoding.TextMarshaler)\n\t\t\ts, err := marshaler.MarshalText()\n\t\t\tif err != nil {\n\t\t\t\terr = wrapSkipFunc(err, \"marshal method\")\n\t\t\t\t// TODO: Avoid wrapping semantic errors.\n\t\t\t\treturn &SemanticError{action: \"marshal\", JSONKind: '\"', GoType: t, Err: err}\n\t\t\t}\n\t\t\tval := enc.UnusedBuffer()\n\t\t\tval, err = appendString(val, string(s), true, nil)\n\t\t\tif err != nil {\n\t\t\t\treturn &SemanticError{action: \"marshal\", JSONKind: '\"', GoType: t, Err: err}\n\t\t\t}\n\t\t\tif err := enc.WriteValue(val); err != nil {\n\t\t\t\t// TODO: Avoid wrapping syntactic or I/O errors.\n\t\t\t\treturn &SemanticError{action: \"marshal\", JSONKind: '\"', GoType: t, Err: err}\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\t}\n\n\t// Handle custom unmarshaler.\n\tswitch which, needAddr := implementsWhich(t, jsonUnmarshalerV2Type, jsonUnmarshalerV1Type, textUnmarshalerType); which {\n\tcase jsonUnmarshalerV2Type:\n\t\tfncs.nonDefault = true\n\t\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\t\tprevDepth, prevLength := dec.tokens.depthLength()\n\t\t\terr := va.addrWhen(needAddr).Interface().(UnmarshalerV2).UnmarshalNextJSON(uo, dec)\n\t\t\tcurrDepth, currLength := dec.tokens.depthLength()\n\t\t\tif (prevDepth != currDepth || prevLength+1 != currLength) && err == nil {\n\t\t\t\terr = errors.New(\"must read exactly one JSON value\")\n\t\t\t}\n\t\t\tif err != nil {\n\t\t\t\terr = wrapSkipFunc(err, \"unmarshal method\")\n\t\t\t\t// TODO: Avoid wrapping semantic, syntactic, or I/O errors.\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", GoType: t, Err: err}\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\tcase jsonUnmarshalerV1Type:\n\t\tfncs.nonDefault = true\n\t\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\t\tval, err := dec.ReadValue()\n\t\t\tif err != nil {\n\t\t\t\treturn err // must be a syntactic or I/O error\n\t\t\t}\n\t\t\tunmarshaler := va.addrWhen(needAddr).Interface().(UnmarshalerV1)\n\t\t\tif err := unmarshaler.UnmarshalJSON(val); err != nil {\n\t\t\t\terr = wrapSkipFunc(err, \"unmarshal method\")\n\t\t\t\t// TODO: Avoid wrapping semantic, syntactic, or I/O errors.\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: val.Kind(), GoType: t, Err: err}\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\tcase textUnmarshalerType:\n\t\tfncs.nonDefault = true\n\t\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\t\tvar flags valueFlags\n\t\t\tval, err := dec.readValue(&flags)\n\t\t\tif err != nil {\n\t\t\t\treturn err // must be a syntactic or I/O error\n\t\t\t}\n\t\t\tif val.Kind() != '\"' {\n\t\t\t\terr = errors.New(\"JSON value must be string type\")\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: val.Kind(), GoType: t, Err: err}\n\t\t\t}\n\t\t\ts := unescapeStringMayCopy(val, flags.isVerbatim())\n\t\t\tunmarshaler := va.addrWhen(needAddr).Interface().(encoding.TextUnmarshaler)\n\t\t\tif err := unmarshaler.UnmarshalText(s); err != nil {\n\t\t\t\terr = wrapSkipFunc(err, \"unmarshal method\")\n\t\t\t\t// TODO: Avoid wrapping semantic, syntactic, or I/O errors.\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: val.Kind(), GoType: t, Err: err}\n\t\t\t}\n\t\t\treturn nil\n\t\t}\n\t}\n\n\treturn fncs\n}\n\n// implementsWhich is like t.Implements(ifaceType) for a list of interfaces,\n// but checks whether either t or reflect.PointerTo(t) implements the interface.\n// It returns the first interface type that matches and whether a value of t\n// needs to be addressed first before it implements the interface.\nfunc implementsWhich(t reflect.Type, ifaceTypes ...reflect.Type) (which reflect.Type, needAddr bool) {\n\tfor _, ifaceType := range ifaceTypes {\n\t\tswitch {\n\t\tcase t.Implements(ifaceType):\n\t\t\treturn ifaceType, false\n\t\tcase reflect.PointerTo(t).Implements(ifaceType):\n\t\t\treturn ifaceType, true\n\t\t}\n\t}\n\treturn nil, false\n}\n\n// addrWhen returns va.Addr if addr is specified, otherwise it returns itself.\nfunc (va addressableValue) addrWhen(addr bool) reflect.Value {\n\tif addr {\n\t\treturn va.Addr()\n\t}\n\treturn va.Value\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/arshal_time.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n\t\"time\"\n)\n\nvar (\n\ttimeDurationType = reflect.TypeOf((*time.Duration)(nil)).Elem()\n\ttimeTimeType     = reflect.TypeOf((*time.Time)(nil)).Elem()\n)\n\nfunc makeTimeArshaler(fncs *arshaler, t reflect.Type) *arshaler {\n\t// Ideally, time types would implement MarshalerV2 and UnmarshalerV2,\n\t// but that would incur a dependency on package json from package time.\n\t// Given how widely used time is, it is more acceptable that we incur a\n\t// dependency on time from json.\n\t//\n\t// Injecting the arshaling functionality like this will not be identical\n\t// to actually declaring methods on the time types since embedding of the\n\t// time types will not be able to forward this functionality.\n\tswitch t {\n\tcase timeDurationType:\n\t\tfncs.nonDefault = true\n\t\tmarshalNanos := fncs.marshal\n\t\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\t\tif mo.format != \"\" && mo.formatDepth == enc.tokens.depth() {\n\t\t\t\tif mo.format == \"nanos\" {\n\t\t\t\t\tmo.format = \"\"\n\t\t\t\t\treturn marshalNanos(mo, enc, va)\n\t\t\t\t} else {\n\t\t\t\t\treturn newInvalidFormatError(\"marshal\", t, mo.format)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ttd := va.Interface().(time.Duration)\n\t\t\tb := enc.UnusedBuffer()\n\t\t\tb = append(b, '\"')\n\t\t\tb = append(b, td.String()...) // never contains special characters\n\t\t\tb = append(b, '\"')\n\t\t\treturn enc.WriteValue(b)\n\t\t}\n\t\tunmarshalNanos := fncs.unmarshal\n\t\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\t\t// TODO: Should there be a flag that specifies that we can unmarshal\n\t\t\t// from either form since there would be no ambiguity?\n\t\t\tif uo.format != \"\" && uo.formatDepth == dec.tokens.depth() {\n\t\t\t\tif uo.format == \"nanos\" {\n\t\t\t\t\tuo.format = \"\"\n\t\t\t\t\treturn unmarshalNanos(uo, dec, va)\n\t\t\t\t} else {\n\t\t\t\t\treturn newInvalidFormatError(\"unmarshal\", t, uo.format)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar flags valueFlags\n\t\t\ttd := va.Addr().Interface().(*time.Duration)\n\t\t\tval, err := dec.readValue(&flags)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tswitch k := val.Kind(); k {\n\t\t\tcase 'n':\n\t\t\t\t*td = time.Duration(0)\n\t\t\t\treturn nil\n\t\t\tcase '\"':\n\t\t\t\tval = unescapeStringMayCopy(val, flags.isVerbatim())\n\t\t\t\ttd2, err := time.ParseDuration(string(val))\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t, Err: err}\n\t\t\t\t}\n\t\t\t\t*td = td2\n\t\t\t\treturn nil\n\t\t\tdefault:\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t}\n\t\t\t}\n\t\t}\n\tcase timeTimeType:\n\t\tfncs.nonDefault = true\n\t\tfncs.marshal = func(mo MarshalOptions, enc *Encoder, va addressableValue) error {\n\t\t\tformat := time.RFC3339Nano\n\t\t\tisRFC3339 := true\n\t\t\tif mo.format != \"\" && mo.formatDepth == enc.tokens.depth() {\n\t\t\t\tvar err error\n\t\t\t\tformat, isRFC3339, err = checkTimeFormat(mo.format)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn &SemanticError{action: \"marshal\", GoType: t, Err: err}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ttt := va.Interface().(time.Time)\n\t\t\tb := enc.UnusedBuffer()\n\t\t\tb = append(b, '\"')\n\t\t\tb = tt.AppendFormat(b, format)\n\t\t\tb = append(b, '\"')\n\t\t\tif isRFC3339 {\n\t\t\t\t// Not all Go timestamps can be represented as valid RFC 3339.\n\t\t\t\t// Explicitly check for these edge cases.\n\t\t\t\t// See https://go.dev/issue/4556 and https://go.dev/issue/54580.\n\t\t\t\tvar err error\n\t\t\t\tswitch b := b[len(`\"`) : len(b)-len(`\"`)]; {\n\t\t\t\tcase b[len(\"9999\")] != '-': // year must be exactly 4 digits wide\n\t\t\t\t\terr = errors.New(\"year outside of range [0,9999]\")\n\t\t\t\tcase b[len(b)-1] != 'Z':\n\t\t\t\t\tc := b[len(b)-len(\"Z07:00\")]\n\t\t\t\t\tif ('0' <= c && c <= '9') || parseDec2(b[len(b)-len(\"07:00\"):]) >= 24 {\n\t\t\t\t\t\terr = errors.New(\"timezone hour outside of range [0,23]\")\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn &SemanticError{action: \"marshal\", GoType: t, Err: err}\n\t\t\t\t}\n\t\t\t\treturn enc.WriteValue(b) // RFC 3339 never needs JSON escaping\n\t\t\t}\n\t\t\t// The format may contain special characters that need escaping.\n\t\t\t// Verify that the result is a valid JSON string (common case),\n\t\t\t// otherwise escape the string correctly (slower case).\n\t\t\tif consumeSimpleString(b) != len(b) {\n\t\t\t\tb, _ = appendString(nil, string(b[len(`\"`):len(b)-len(`\"`)]), true, nil)\n\t\t\t}\n\t\t\treturn enc.WriteValue(b)\n\t\t}\n\t\tfncs.unmarshal = func(uo UnmarshalOptions, dec *Decoder, va addressableValue) error {\n\t\t\tformat := time.RFC3339\n\t\t\tisRFC3339 := true\n\t\t\tif uo.format != \"\" && uo.formatDepth == dec.tokens.depth() {\n\t\t\t\tvar err error\n\t\t\t\tformat, isRFC3339, err = checkTimeFormat(uo.format)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn &SemanticError{action: \"unmarshal\", GoType: t, Err: err}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar flags valueFlags\n\t\t\ttt := va.Addr().Interface().(*time.Time)\n\t\t\tval, err := dec.readValue(&flags)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tk := val.Kind()\n\t\t\tswitch k {\n\t\t\tcase 'n':\n\t\t\t\t*tt = time.Time{}\n\t\t\t\treturn nil\n\t\t\tcase '\"':\n\t\t\t\tval = unescapeStringMayCopy(val, flags.isVerbatim())\n\t\t\t\ttt2, err := time.Parse(format, string(val))\n\t\t\t\tif isRFC3339 && err == nil {\n\t\t\t\t\t// TODO(https://go.dev/issue/54580): RFC 3339 specifies\n\t\t\t\t\t// the exact grammar of a valid timestamp. However,\n\t\t\t\t\t// the parsing functionality in \"time\" is too loose and\n\t\t\t\t\t// incorrectly accepts invalid timestamps as valid.\n\t\t\t\t\t// Remove these manual checks when \"time\" checks it for us.\n\t\t\t\t\tnewParseError := func(layout, value, layoutElem, valueElem, message string) error {\n\t\t\t\t\t\treturn &time.ParseError{Layout: layout, Value: value, LayoutElem: layoutElem, ValueElem: valueElem, Message: message}\n\t\t\t\t\t}\n\t\t\t\t\tswitch {\n\t\t\t\t\tcase val[len(\"2006-01-02T\")+1] == ':': // hour must be two digits\n\t\t\t\t\t\terr = newParseError(format, string(val), \"15\", string(val[len(\"2006-01-02T\"):][:1]), \"\")\n\t\t\t\t\tcase val[len(\"2006-01-02T15:04:05\")] == ',': // sub-second separator must be a period\n\t\t\t\t\t\terr = newParseError(format, string(val), \".\", \",\", \"\")\n\t\t\t\t\tcase val[len(val)-1] != 'Z':\n\t\t\t\t\t\tswitch {\n\t\t\t\t\t\tcase parseDec2(val[len(val)-len(\"07:00\"):]) >= 24: // timezone hour must be in range\n\t\t\t\t\t\t\terr = newParseError(format, string(val), \"Z07:00\", string(val[len(val)-len(\"Z07:00\"):]), \": timezone hour out of range\")\n\t\t\t\t\t\tcase parseDec2(val[len(val)-len(\"00\"):]) >= 60: // timezone minute must be in range\n\t\t\t\t\t\t\terr = newParseError(format, string(val), \"Z07:00\", string(val[len(val)-len(\"Z07:00\"):]), \": timezone minute out of range\")\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t, Err: err}\n\t\t\t\t}\n\t\t\t\t*tt = tt2\n\t\t\t\treturn nil\n\t\t\tdefault:\n\t\t\t\treturn &SemanticError{action: \"unmarshal\", JSONKind: k, GoType: t}\n\t\t\t}\n\t\t}\n\t}\n\treturn fncs\n}\n\nfunc checkTimeFormat(format string) (string, bool, error) {\n\t// We assume that an exported constant in the time package will\n\t// always start with an uppercase ASCII letter.\n\tif len(format) > 0 && 'A' <= format[0] && format[0] <= 'Z' {\n\t\tswitch format {\n\t\tcase \"ANSIC\":\n\t\t\treturn time.ANSIC, false, nil\n\t\tcase \"UnixDate\":\n\t\t\treturn time.UnixDate, false, nil\n\t\tcase \"RubyDate\":\n\t\t\treturn time.RubyDate, false, nil\n\t\tcase \"RFC822\":\n\t\t\treturn time.RFC822, false, nil\n\t\tcase \"RFC822Z\":\n\t\t\treturn time.RFC822Z, false, nil\n\t\tcase \"RFC850\":\n\t\t\treturn time.RFC850, false, nil\n\t\tcase \"RFC1123\":\n\t\t\treturn time.RFC1123, false, nil\n\t\tcase \"RFC1123Z\":\n\t\t\treturn time.RFC1123Z, false, nil\n\t\tcase \"RFC3339\":\n\t\t\treturn time.RFC3339, true, nil\n\t\tcase \"RFC3339Nano\":\n\t\t\treturn time.RFC3339Nano, true, nil\n\t\tcase \"Kitchen\":\n\t\t\treturn time.Kitchen, false, nil\n\t\tcase \"Stamp\":\n\t\t\treturn time.Stamp, false, nil\n\t\tcase \"StampMilli\":\n\t\t\treturn time.StampMilli, false, nil\n\t\tcase \"StampMicro\":\n\t\t\treturn time.StampMicro, false, nil\n\t\tcase \"StampNano\":\n\t\t\treturn time.StampNano, false, nil\n\t\tdefault:\n\t\t\t// Reject any format that is an exported Go identifier in case\n\t\t\t// new format constants are added to the time package.\n\t\t\tif strings.TrimFunc(format, isLetterOrDigit) == \"\" {\n\t\t\t\treturn \"\", false, fmt.Errorf(\"undefined format layout: %v\", format)\n\t\t\t}\n\t\t}\n\t}\n\treturn format, false, nil\n}\n\n// parseDec2 parses b as an unsigned, base-10, 2-digit number.\n// It panics if len(b) < 2. The result is undefined if digits are not base-10.\nfunc parseDec2(b []byte) byte {\n\treturn 10*(b[0]-'0') + (b[1] - '0')\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/decode.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"io\"\n\t\"math\"\n\t\"strconv\"\n\t\"unicode/utf16\"\n\t\"unicode/utf8\"\n)\n\n// NOTE: The logic for decoding is complicated by the fact that reading from\n// an io.Reader into a temporary buffer means that the buffer may contain a\n// truncated portion of some valid input, requiring the need to fetch more data.\n//\n// This file is structured in the following way:\n//\n//   - consumeXXX functions parse an exact JSON token from a []byte.\n//     If the buffer appears truncated, then it returns io.ErrUnexpectedEOF.\n//     The consumeSimpleXXX functions are so named because they only handle\n//     a subset of the grammar for the JSON token being parsed.\n//     They do not handle the full grammar to keep these functions inlineable.\n//\n//   - Decoder.consumeXXX methods parse the next JSON token from Decoder.buf,\n//     automatically fetching more input if necessary. These methods take\n//     a position relative to the start of Decoder.buf as an argument and\n//     return the end of the consumed JSON token as a position,\n//     also relative to the start of Decoder.buf.\n//\n//   - In the event of an I/O errors or state machine violations,\n//     the implementation avoids mutating the state of Decoder\n//     (aside from the book-keeping needed to implement Decoder.fetch).\n//     For this reason, only Decoder.ReadToken and Decoder.ReadValue are\n//     responsible for updated Decoder.prevStart and Decoder.prevEnd.\n//\n//   - For performance, much of the implementation uses the pattern of calling\n//     the inlineable consumeXXX functions first, and if more work is necessary,\n//     then it calls the slower Decoder.consumeXXX methods.\n//     TODO: Revisit this pattern if the Go compiler provides finer control\n//     over exactly which calls are inlined or not.\n\n// DecodeOptions configures how JSON decoding operates.\n// The zero value is equivalent to the default settings,\n// which is compliant with both RFC 7493 and RFC 8259.\ntype DecodeOptions struct {\n\trequireKeyedLiterals\n\tnonComparable\n\n\t// AllowDuplicateNames specifies that JSON objects may contain\n\t// duplicate member names. Disabling the duplicate name check may provide\n\t// computational and performance benefits, but breaks compliance with\n\t// RFC 7493, section 2.3. The input will still be compliant with RFC 8259,\n\t// which leaves the handling of duplicate names as unspecified behavior.\n\tAllowDuplicateNames bool\n\n\t// AllowInvalidUTF8 specifies that JSON strings may contain invalid UTF-8,\n\t// which will be mangled as the Unicode replacement character, U+FFFD.\n\t// This causes the decoder to break compliance with\n\t// RFC 7493, section 2.1, and RFC 8259, section 8.1.\n\tAllowInvalidUTF8 bool\n}\n\n// Decoder is a streaming decoder for raw JSON tokens and values.\n// It is used to read a stream of top-level JSON values,\n// each separated by optional whitespace characters.\n//\n// ReadToken and ReadValue calls may be interleaved.\n// For example, the following JSON value:\n//\n//\t{\"name\":\"value\",\"array\":[null,false,true,3.14159],\"object\":{\"k\":\"v\"}}\n//\n// can be parsed with the following calls (ignoring errors for brevity):\n//\n//\td.ReadToken() // {\n//\td.ReadToken() // \"name\"\n//\td.ReadToken() // \"value\"\n//\td.ReadValue() // \"array\"\n//\td.ReadToken() // [\n//\td.ReadToken() // null\n//\td.ReadToken() // false\n//\td.ReadValue() // true\n//\td.ReadToken() // 3.14159\n//\td.ReadToken() // ]\n//\td.ReadValue() // \"object\"\n//\td.ReadValue() // {\"k\":\"v\"}\n//\td.ReadToken() // }\n//\n// The above is one of many possible sequence of calls and\n// may not represent the most sensible method to call for any given token/value.\n// For example, it is probably more common to call ReadToken to obtain a\n// string token for object names.\ntype Decoder struct {\n\tstate\n\tdecodeBuffer\n\toptions DecodeOptions\n\n\tstringCache *stringCache // only used when unmarshaling\n}\n\n// decodeBuffer is a buffer split into 4 segments:\n//\n//   - buf[0:prevEnd]         // already read portion of the buffer\n//   - buf[prevStart:prevEnd] // previously read value\n//   - buf[prevEnd:len(buf)]  // unread portion of the buffer\n//   - buf[len(buf):cap(buf)] // unused portion of the buffer\n//\n// Invariants:\n//\n//\t0 ≤ prevStart ≤ prevEnd ≤ len(buf) ≤ cap(buf)\ntype decodeBuffer struct {\n\tpeekPos int   // non-zero if valid offset into buf for start of next token\n\tpeekErr error // implies peekPos is -1\n\n\tbuf       []byte // may alias rd if it is a bytes.Buffer\n\tprevStart int\n\tprevEnd   int\n\n\t// baseOffset is added to prevStart and prevEnd to obtain\n\t// the absolute offset relative to the start of io.Reader stream.\n\tbaseOffset int64\n\n\trd io.Reader\n}\n\n// NewDecoder constructs a new streaming decoder reading from r.\n//\n// If r is a bytes.Buffer, then the decoder parses directly from the buffer\n// without first copying the contents to an intermediate buffer.\n// Additional writes to the buffer must not occur while the decoder is in use.\nfunc NewDecoder(r io.Reader) *Decoder {\n\treturn DecodeOptions{}.NewDecoder(r)\n}\n\n// NewDecoder constructs a new streaming decoder reading from r\n// configured with the provided options.\nfunc (o DecodeOptions) NewDecoder(r io.Reader) *Decoder {\n\td := new(Decoder)\n\to.ResetDecoder(d, r)\n\treturn d\n}\n\n// ResetDecoder resets a decoder such that it is reading afresh from r and\n// configured with the provided options.\nfunc (o DecodeOptions) ResetDecoder(d *Decoder, r io.Reader) {\n\tif d == nil {\n\t\tpanic(\"json: invalid nil Decoder\")\n\t}\n\tif r == nil {\n\t\tpanic(\"json: invalid nil io.Reader\")\n\t}\n\td.reset(nil, r, o)\n}\n\nfunc (d *Decoder) reset(b []byte, r io.Reader, o DecodeOptions) {\n\td.state.reset()\n\td.decodeBuffer = decodeBuffer{buf: b, rd: r}\n\td.options = o\n}\n\n// Reset resets a decoder such that it is reading afresh from r but\n// keep any pre-existing decoder options.\nfunc (d *Decoder) Reset(r io.Reader) {\n\td.options.ResetDecoder(d, r)\n}\n\nvar errBufferWriteAfterNext = errors.New(\"invalid bytes.Buffer.Write call after calling bytes.Buffer.Next\")\n\n// fetch reads at least 1 byte from the underlying io.Reader.\n// It returns io.ErrUnexpectedEOF if zero bytes were read and io.EOF was seen.\nfunc (d *Decoder) fetch() error {\n\tif d.rd == nil {\n\t\treturn io.ErrUnexpectedEOF\n\t}\n\n\t// Inform objectNameStack that we are about to fetch new buffer content.\n\td.names.copyQuotedBuffer(d.buf)\n\n\t// Specialize bytes.Buffer for better performance.\n\tif bb, ok := d.rd.(*bytes.Buffer); ok {\n\t\tswitch {\n\t\tcase bb.Len() == 0:\n\t\t\treturn io.ErrUnexpectedEOF\n\t\tcase len(d.buf) == 0:\n\t\t\td.buf = bb.Next(bb.Len()) // \"read\" all data in the buffer\n\t\t\treturn nil\n\t\tdefault:\n\t\t\t// This only occurs if a partially filled bytes.Buffer was provided\n\t\t\t// and more data is written to it while Decoder is reading from it.\n\t\t\t// This practice will lead to data corruption since future writes\n\t\t\t// may overwrite the contents of the current buffer.\n\t\t\t//\n\t\t\t// The user is trying to use a bytes.Buffer as a pipe,\n\t\t\t// but a bytes.Buffer is poor implementation of a pipe,\n\t\t\t// the purpose-built io.Pipe should be used instead.\n\t\t\treturn &ioError{action: \"read\", err: errBufferWriteAfterNext}\n\t\t}\n\t}\n\n\t// Allocate initial buffer if empty.\n\tif cap(d.buf) == 0 {\n\t\td.buf = make([]byte, 0, 64)\n\t}\n\n\t// Check whether to grow the buffer.\n\tconst maxBufferSize = 4 << 10\n\tconst growthSizeFactor = 2 // higher value is faster\n\tconst growthRateFactor = 2 // higher value is slower\n\t// By default, grow if below the maximum buffer size.\n\tgrow := cap(d.buf) <= maxBufferSize/growthSizeFactor\n\t// Growing can be expensive, so only grow\n\t// if a sufficient number of bytes have been processed.\n\tgrow = grow && int64(cap(d.buf)) < d.previousOffsetEnd()/growthRateFactor\n\t// If prevStart==0, then fetch was called in order to fetch more data\n\t// to finish consuming a large JSON value contiguously.\n\t// Grow if less than 25% of the remaining capacity is available.\n\t// Note that this may cause the input buffer to exceed maxBufferSize.\n\tgrow = grow || (d.prevStart == 0 && len(d.buf) >= 3*cap(d.buf)/4)\n\n\tif grow {\n\t\t// Allocate a new buffer and copy the contents of the old buffer over.\n\t\t// TODO: Provide a hard limit on the maximum internal buffer size?\n\t\tbuf := make([]byte, 0, cap(d.buf)*growthSizeFactor)\n\t\td.buf = append(buf, d.buf[d.prevStart:]...)\n\t} else {\n\t\t// Move unread portion of the data to the front.\n\t\tn := copy(d.buf[:cap(d.buf)], d.buf[d.prevStart:])\n\t\td.buf = d.buf[:n]\n\t}\n\td.baseOffset += int64(d.prevStart)\n\td.prevEnd -= d.prevStart\n\td.prevStart = 0\n\n\t// Read more data into the internal buffer.\n\tfor {\n\t\tn, err := d.rd.Read(d.buf[len(d.buf):cap(d.buf)])\n\t\tswitch {\n\t\tcase n > 0:\n\t\t\td.buf = d.buf[:len(d.buf)+n]\n\t\t\treturn nil // ignore errors if any bytes are read\n\t\tcase err == io.EOF:\n\t\t\treturn io.ErrUnexpectedEOF\n\t\tcase err != nil:\n\t\t\treturn &ioError{action: \"read\", err: err}\n\t\tdefault:\n\t\t\tcontinue // Read returned (0, nil)\n\t\t}\n\t}\n}\n\nconst invalidateBufferByte = '#' // invalid starting character for JSON grammar\n\n// invalidatePreviousRead invalidates buffers returned by Peek and Read calls\n// so that the first byte is an invalid character.\n// This Hyrum-proofs the API against faulty application code that assumes\n// values returned by ReadValue remain valid past subsequent Read calls.\nfunc (d *decodeBuffer) invalidatePreviousRead() {\n\t// Avoid mutating the buffer if d.rd is nil which implies that d.buf\n\t// is provided by the user code and may not expect mutations.\n\tisBytesBuffer := func(r io.Reader) bool {\n\t\t_, ok := r.(*bytes.Buffer)\n\t\treturn ok\n\t}\n\tif d.rd != nil && !isBytesBuffer(d.rd) && d.prevStart < d.prevEnd && uint(d.prevStart) < uint(len(d.buf)) {\n\t\td.buf[d.prevStart] = invalidateBufferByte\n\t\td.prevStart = d.prevEnd\n\t}\n}\n\n// needMore reports whether there are no more unread bytes.\nfunc (d *decodeBuffer) needMore(pos int) bool {\n\t// NOTE: The arguments and logic are kept simple to keep this inlineable.\n\treturn pos == len(d.buf)\n}\n\n// injectSyntacticErrorWithPosition wraps a SyntacticError with the position,\n// otherwise it returns the error as is.\n// It takes a position relative to the start of the start of d.buf.\nfunc (d *decodeBuffer) injectSyntacticErrorWithPosition(err error, pos int) error {\n\tif serr, ok := err.(*SyntacticError); ok {\n\t\treturn serr.withOffset(d.baseOffset + int64(pos))\n\t}\n\treturn err\n}\n\nfunc (d *decodeBuffer) previousOffsetStart() int64 { return d.baseOffset + int64(d.prevStart) }\nfunc (d *decodeBuffer) previousOffsetEnd() int64   { return d.baseOffset + int64(d.prevEnd) }\nfunc (d *decodeBuffer) previousBuffer() []byte     { return d.buf[d.prevStart:d.prevEnd] }\nfunc (d *decodeBuffer) unreadBuffer() []byte       { return d.buf[d.prevEnd:len(d.buf)] }\n\n// PeekKind retrieves the next token kind, but does not advance the read offset.\n// It returns 0 if there are no more tokens.\nfunc (d *Decoder) PeekKind() Kind {\n\t// Check whether we have a cached peek result.\n\tif d.peekPos > 0 {\n\t\treturn Kind(d.buf[d.peekPos]).normalize()\n\t}\n\n\tvar err error\n\td.invalidatePreviousRead()\n\tpos := d.prevEnd\n\n\t// Consume leading whitespace.\n\tpos += consumeWhitespace(d.buf[pos:])\n\tif d.needMore(pos) {\n\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n\t\t\tif err == io.ErrUnexpectedEOF && d.tokens.depth() == 1 {\n\t\t\t\terr = io.EOF // EOF possibly if no Tokens present after top-level value\n\t\t\t}\n\t\t\td.peekPos, d.peekErr = -1, err\n\t\t\treturn invalidKind\n\t\t}\n\t}\n\n\t// Consume colon or comma.\n\tvar delim byte\n\tif c := d.buf[pos]; c == ':' || c == ',' {\n\t\tdelim = c\n\t\tpos += 1\n\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\tif d.needMore(pos) {\n\t\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n\t\t\t\td.peekPos, d.peekErr = -1, err\n\t\t\t\treturn invalidKind\n\t\t\t}\n\t\t}\n\t}\n\tnext := Kind(d.buf[pos]).normalize()\n\tif d.tokens.needDelim(next) != delim {\n\t\tpos = d.prevEnd // restore position to right after leading whitespace\n\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\terr = d.tokens.checkDelim(delim, next)\n\t\terr = d.injectSyntacticErrorWithPosition(err, pos)\n\t\td.peekPos, d.peekErr = -1, err\n\t\treturn invalidKind\n\t}\n\n\t// This may set peekPos to zero, which is indistinguishable from\n\t// the uninitialized state. While a small hit to performance, it is correct\n\t// since ReadValue and ReadToken will disregard the cached result and\n\t// recompute the next kind.\n\td.peekPos, d.peekErr = pos, nil\n\treturn next\n}\n\n// SkipValue is semantically equivalent to calling ReadValue and discarding\n// the result except that memory is not wasted trying to hold the entire result.\nfunc (d *Decoder) SkipValue() error {\n\tswitch d.PeekKind() {\n\tcase '{', '[':\n\t\t// For JSON objects and arrays, keep skipping all tokens\n\t\t// until the depth matches the starting depth.\n\t\tdepth := d.tokens.depth()\n\t\tfor {\n\t\t\tif _, err := d.ReadToken(); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif depth >= d.tokens.depth() {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\tdefault:\n\t\t// Trying to skip a value when the next token is a '}' or ']'\n\t\t// will result in an error being returned here.\n\t\tif _, err := d.ReadValue(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t}\n}\n\n// ReadToken reads the next Token, advancing the read offset.\n// The returned token is only valid until the next Peek, Read, or Skip call.\n// It returns io.EOF if there are no more tokens.\nfunc (d *Decoder) ReadToken() (Token, error) {\n\t// Determine the next kind.\n\tvar err error\n\tvar next Kind\n\tpos := d.peekPos\n\tif pos != 0 {\n\t\t// Use cached peek result.\n\t\tif d.peekErr != nil {\n\t\t\terr := d.peekErr\n\t\t\td.peekPos, d.peekErr = 0, nil // possibly a transient I/O error\n\t\t\treturn Token{}, err\n\t\t}\n\t\tnext = Kind(d.buf[pos]).normalize()\n\t\td.peekPos = 0 // reset cache\n\t} else {\n\t\td.invalidatePreviousRead()\n\t\tpos = d.prevEnd\n\n\t\t// Consume leading whitespace.\n\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\tif d.needMore(pos) {\n\t\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n\t\t\t\tif err == io.ErrUnexpectedEOF && d.tokens.depth() == 1 {\n\t\t\t\t\terr = io.EOF // EOF possibly if no Tokens present after top-level value\n\t\t\t\t}\n\t\t\t\treturn Token{}, err\n\t\t\t}\n\t\t}\n\n\t\t// Consume colon or comma.\n\t\tvar delim byte\n\t\tif c := d.buf[pos]; c == ':' || c == ',' {\n\t\t\tdelim = c\n\t\t\tpos += 1\n\t\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\t\tif d.needMore(pos) {\n\t\t\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n\t\t\t\t\treturn Token{}, err\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tnext = Kind(d.buf[pos]).normalize()\n\t\tif d.tokens.needDelim(next) != delim {\n\t\t\tpos = d.prevEnd // restore position to right after leading whitespace\n\t\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\t\terr = d.tokens.checkDelim(delim, next)\n\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos)\n\t\t}\n\t}\n\n\t// Handle the next token.\n\tvar n int\n\tswitch next {\n\tcase 'n':\n\t\tif consumeNull(d.buf[pos:]) == 0 {\n\t\t\tpos, err = d.consumeLiteral(pos, \"null\")\n\t\t\tif err != nil {\n\t\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos)\n\t\t\t}\n\t\t} else {\n\t\t\tpos += len(\"null\")\n\t\t}\n\t\tif err = d.tokens.appendLiteral(); err != nil {\n\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos-len(\"null\")) // report position at start of literal\n\t\t}\n\t\td.prevStart, d.prevEnd = pos, pos\n\t\treturn Null, nil\n\n\tcase 'f':\n\t\tif consumeFalse(d.buf[pos:]) == 0 {\n\t\t\tpos, err = d.consumeLiteral(pos, \"false\")\n\t\t\tif err != nil {\n\t\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos)\n\t\t\t}\n\t\t} else {\n\t\t\tpos += len(\"false\")\n\t\t}\n\t\tif err = d.tokens.appendLiteral(); err != nil {\n\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos-len(\"false\")) // report position at start of literal\n\t\t}\n\t\td.prevStart, d.prevEnd = pos, pos\n\t\treturn False, nil\n\n\tcase 't':\n\t\tif consumeTrue(d.buf[pos:]) == 0 {\n\t\t\tpos, err = d.consumeLiteral(pos, \"true\")\n\t\t\tif err != nil {\n\t\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos)\n\t\t\t}\n\t\t} else {\n\t\t\tpos += len(\"true\")\n\t\t}\n\t\tif err = d.tokens.appendLiteral(); err != nil {\n\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos-len(\"true\")) // report position at start of literal\n\t\t}\n\t\td.prevStart, d.prevEnd = pos, pos\n\t\treturn True, nil\n\n\tcase '\"':\n\t\tvar flags valueFlags // TODO: Preserve this in Token?\n\t\tif n = consumeSimpleString(d.buf[pos:]); n == 0 {\n\t\t\toldAbsPos := d.baseOffset + int64(pos)\n\t\t\tpos, err = d.consumeString(&flags, pos)\n\t\t\tnewAbsPos := d.baseOffset + int64(pos)\n\t\t\tn = int(newAbsPos - oldAbsPos)\n\t\t\tif err != nil {\n\t\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos)\n\t\t\t}\n\t\t} else {\n\t\t\tpos += n\n\t\t}\n\t\tif !d.options.AllowDuplicateNames && d.tokens.last.needObjectName() {\n\t\t\tif !d.tokens.last.isValidNamespace() {\n\t\t\t\treturn Token{}, errInvalidNamespace\n\t\t\t}\n\t\t\tif d.tokens.last.isActiveNamespace() && !d.namespaces.last().insertQuoted(d.buf[pos-n:pos], flags.isVerbatim()) {\n\t\t\t\terr = &SyntacticError{str: \"duplicate name \" + string(d.buf[pos-n:pos]) + \" in object\"}\n\t\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos-n) // report position at start of string\n\t\t\t}\n\t\t\td.names.replaceLastQuotedOffset(pos - n) // only replace if insertQuoted succeeds\n\t\t}\n\t\tif err = d.tokens.appendString(); err != nil {\n\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos-n) // report position at start of string\n\t\t}\n\t\td.prevStart, d.prevEnd = pos-n, pos\n\t\treturn Token{raw: &d.decodeBuffer, num: uint64(d.previousOffsetStart())}, nil\n\n\tcase '0':\n\t\t// NOTE: Since JSON numbers are not self-terminating,\n\t\t// we need to make sure that the next byte is not part of a number.\n\t\tif n = consumeSimpleNumber(d.buf[pos:]); n == 0 || d.needMore(pos+n) {\n\t\t\toldAbsPos := d.baseOffset + int64(pos)\n\t\t\tpos, err = d.consumeNumber(pos)\n\t\t\tnewAbsPos := d.baseOffset + int64(pos)\n\t\t\tn = int(newAbsPos - oldAbsPos)\n\t\t\tif err != nil {\n\t\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos)\n\t\t\t}\n\t\t} else {\n\t\t\tpos += n\n\t\t}\n\t\tif err = d.tokens.appendNumber(); err != nil {\n\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos-n) // report position at start of number\n\t\t}\n\t\td.prevStart, d.prevEnd = pos-n, pos\n\t\treturn Token{raw: &d.decodeBuffer, num: uint64(d.previousOffsetStart())}, nil\n\n\tcase '{':\n\t\tif err = d.tokens.pushObject(); err != nil {\n\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos)\n\t\t}\n\t\tif !d.options.AllowDuplicateNames {\n\t\t\td.names.push()\n\t\t\td.namespaces.push()\n\t\t}\n\t\tpos += 1\n\t\td.prevStart, d.prevEnd = pos, pos\n\t\treturn ObjectStart, nil\n\n\tcase '}':\n\t\tif err = d.tokens.popObject(); err != nil {\n\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos)\n\t\t}\n\t\tif !d.options.AllowDuplicateNames {\n\t\t\td.names.pop()\n\t\t\td.namespaces.pop()\n\t\t}\n\t\tpos += 1\n\t\td.prevStart, d.prevEnd = pos, pos\n\t\treturn ObjectEnd, nil\n\n\tcase '[':\n\t\tif err = d.tokens.pushArray(); err != nil {\n\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos)\n\t\t}\n\t\tpos += 1\n\t\td.prevStart, d.prevEnd = pos, pos\n\t\treturn ArrayStart, nil\n\n\tcase ']':\n\t\tif err = d.tokens.popArray(); err != nil {\n\t\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos)\n\t\t}\n\t\tpos += 1\n\t\td.prevStart, d.prevEnd = pos, pos\n\t\treturn ArrayEnd, nil\n\n\tdefault:\n\t\terr = newInvalidCharacterError(d.buf[pos:], \"at start of token\")\n\t\treturn Token{}, d.injectSyntacticErrorWithPosition(err, pos)\n\t}\n}\n\ntype valueFlags uint\n\nconst (\n\t_ valueFlags = (1 << iota) / 2 // powers of two starting with zero\n\n\tstringNonVerbatim  // string cannot be naively treated as valid UTF-8\n\tstringNonCanonical // string not formatted according to RFC 8785, section 3.2.2.2.\n\t// TODO: Track whether a number is a non-integer?\n)\n\nfunc (f *valueFlags) set(f2 valueFlags) { *f |= f2 }\nfunc (f valueFlags) isVerbatim() bool   { return f&stringNonVerbatim == 0 }\nfunc (f valueFlags) isCanonical() bool  { return f&stringNonCanonical == 0 }\n\n// ReadValue returns the next raw JSON value, advancing the read offset.\n// The value is stripped of any leading or trailing whitespace.\n// The returned value is only valid until the next Peek, Read, or Skip call and\n// may not be mutated while the Decoder remains in use.\n// If the decoder is currently at the end token for an object or array,\n// then it reports a SyntacticError and the internal state remains unchanged.\n// It returns io.EOF if there are no more values.\nfunc (d *Decoder) ReadValue() (RawValue, error) {\n\tvar flags valueFlags\n\treturn d.readValue(&flags)\n}\nfunc (d *Decoder) readValue(flags *valueFlags) (RawValue, error) {\n\t// Determine the next kind.\n\tvar err error\n\tvar next Kind\n\tpos := d.peekPos\n\tif pos != 0 {\n\t\t// Use cached peek result.\n\t\tif d.peekErr != nil {\n\t\t\terr := d.peekErr\n\t\t\td.peekPos, d.peekErr = 0, nil // possibly a transient I/O error\n\t\t\treturn nil, err\n\t\t}\n\t\tnext = Kind(d.buf[pos]).normalize()\n\t\td.peekPos = 0 // reset cache\n\t} else {\n\t\td.invalidatePreviousRead()\n\t\tpos = d.prevEnd\n\n\t\t// Consume leading whitespace.\n\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\tif d.needMore(pos) {\n\t\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n\t\t\t\tif err == io.ErrUnexpectedEOF && d.tokens.depth() == 1 {\n\t\t\t\t\terr = io.EOF // EOF possibly if no Tokens present after top-level value\n\t\t\t\t}\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\n\t\t// Consume colon or comma.\n\t\tvar delim byte\n\t\tif c := d.buf[pos]; c == ':' || c == ',' {\n\t\t\tdelim = c\n\t\t\tpos += 1\n\t\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\t\tif d.needMore(pos) {\n\t\t\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tnext = Kind(d.buf[pos]).normalize()\n\t\tif d.tokens.needDelim(next) != delim {\n\t\t\tpos = d.prevEnd // restore position to right after leading whitespace\n\t\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\t\terr = d.tokens.checkDelim(delim, next)\n\t\t\treturn nil, d.injectSyntacticErrorWithPosition(err, pos)\n\t\t}\n\t}\n\n\t// Handle the next value.\n\toldAbsPos := d.baseOffset + int64(pos)\n\tpos, err = d.consumeValue(flags, pos)\n\tnewAbsPos := d.baseOffset + int64(pos)\n\tn := int(newAbsPos - oldAbsPos)\n\tif err != nil {\n\t\treturn nil, d.injectSyntacticErrorWithPosition(err, pos)\n\t}\n\tswitch next {\n\tcase 'n', 't', 'f':\n\t\terr = d.tokens.appendLiteral()\n\tcase '\"':\n\t\tif !d.options.AllowDuplicateNames && d.tokens.last.needObjectName() {\n\t\t\tif !d.tokens.last.isValidNamespace() {\n\t\t\t\terr = errInvalidNamespace\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif d.tokens.last.isActiveNamespace() && !d.namespaces.last().insertQuoted(d.buf[pos-n:pos], flags.isVerbatim()) {\n\t\t\t\terr = &SyntacticError{str: \"duplicate name \" + string(d.buf[pos-n:pos]) + \" in object\"}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\td.names.replaceLastQuotedOffset(pos - n) // only replace if insertQuoted succeeds\n\t\t}\n\t\terr = d.tokens.appendString()\n\tcase '0':\n\t\terr = d.tokens.appendNumber()\n\tcase '{':\n\t\tif err = d.tokens.pushObject(); err != nil {\n\t\t\tbreak\n\t\t}\n\t\tif err = d.tokens.popObject(); err != nil {\n\t\t\tpanic(\"BUG: popObject should never fail immediately after pushObject: \" + err.Error())\n\t\t}\n\tcase '[':\n\t\tif err = d.tokens.pushArray(); err != nil {\n\t\t\tbreak\n\t\t}\n\t\tif err = d.tokens.popArray(); err != nil {\n\t\t\tpanic(\"BUG: popArray should never fail immediately after pushArray: \" + err.Error())\n\t\t}\n\t}\n\tif err != nil {\n\t\treturn nil, d.injectSyntacticErrorWithPosition(err, pos-n) // report position at start of value\n\t}\n\td.prevEnd = pos\n\td.prevStart = pos - n\n\treturn d.buf[pos-n : pos : pos], nil\n}\n\n// checkEOF verifies that the input has no more data.\nfunc (d *Decoder) checkEOF() error {\n\tswitch pos, err := d.consumeWhitespace(d.prevEnd); err {\n\tcase nil:\n\t\treturn newInvalidCharacterError(d.buf[pos:], \"after top-level value\")\n\tcase io.ErrUnexpectedEOF:\n\t\treturn nil\n\tdefault:\n\t\treturn err\n\t}\n}\n\n// consumeWhitespace consumes all whitespace starting at d.buf[pos:].\n// It returns the new position in d.buf immediately after the last whitespace.\n// If it returns nil, there is guaranteed to at least be one unread byte.\n//\n// The following pattern is common in this implementation:\n//\n//\tpos += consumeWhitespace(d.buf[pos:])\n//\tif d.needMore(pos) {\n//\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n//\t\t\treturn ...\n//\t\t}\n//\t}\n//\n// It is difficult to simplify this without sacrificing performance since\n// consumeWhitespace must be inlined. The body of the if statement is\n// executed only in rare situations where we need to fetch more data.\n// Since fetching may return an error, we also need to check the error.\nfunc (d *Decoder) consumeWhitespace(pos int) (newPos int, err error) {\n\tfor {\n\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\tif d.needMore(pos) {\n\t\t\tabsPos := d.baseOffset + int64(pos)\n\t\t\terr = d.fetch() // will mutate d.buf and invalidate pos\n\t\t\tpos = int(absPos - d.baseOffset)\n\t\t\tif err != nil {\n\t\t\t\treturn pos, err\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\treturn pos, nil\n\t}\n}\n\n// consumeValue consumes a single JSON value starting at d.buf[pos:].\n// It returns the new position in d.buf immediately after the value.\nfunc (d *Decoder) consumeValue(flags *valueFlags, pos int) (newPos int, err error) {\n\tfor {\n\t\tvar n int\n\t\tvar err error\n\t\tswitch next := Kind(d.buf[pos]).normalize(); next {\n\t\tcase 'n':\n\t\t\tif n = consumeNull(d.buf[pos:]); n == 0 {\n\t\t\t\tn, err = consumeLiteral(d.buf[pos:], \"null\")\n\t\t\t}\n\t\tcase 'f':\n\t\t\tif n = consumeFalse(d.buf[pos:]); n == 0 {\n\t\t\t\tn, err = consumeLiteral(d.buf[pos:], \"false\")\n\t\t\t}\n\t\tcase 't':\n\t\t\tif n = consumeTrue(d.buf[pos:]); n == 0 {\n\t\t\t\tn, err = consumeLiteral(d.buf[pos:], \"true\")\n\t\t\t}\n\t\tcase '\"':\n\t\t\tif n = consumeSimpleString(d.buf[pos:]); n == 0 {\n\t\t\t\treturn d.consumeString(flags, pos)\n\t\t\t}\n\t\tcase '0':\n\t\t\t// NOTE: Since JSON numbers are not self-terminating,\n\t\t\t// we need to make sure that the next byte is not part of a number.\n\t\t\tif n = consumeSimpleNumber(d.buf[pos:]); n == 0 || d.needMore(pos+n) {\n\t\t\t\treturn d.consumeNumber(pos)\n\t\t\t}\n\t\tcase '{':\n\t\t\treturn d.consumeObject(flags, pos)\n\t\tcase '[':\n\t\t\treturn d.consumeArray(flags, pos)\n\t\tdefault:\n\t\t\treturn pos, newInvalidCharacterError(d.buf[pos:], \"at start of value\")\n\t\t}\n\t\tif err == io.ErrUnexpectedEOF {\n\t\t\tabsPos := d.baseOffset + int64(pos)\n\t\t\terr = d.fetch() // will mutate d.buf and invalidate pos\n\t\t\tpos = int(absPos - d.baseOffset)\n\t\t\tif err != nil {\n\t\t\t\treturn pos, err\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\treturn pos + n, err\n\t}\n}\n\n// consumeLiteral consumes a single JSON literal starting at d.buf[pos:].\n// It returns the new position in d.buf immediately after the literal.\nfunc (d *Decoder) consumeLiteral(pos int, lit string) (newPos int, err error) {\n\tfor {\n\t\tn, err := consumeLiteral(d.buf[pos:], lit)\n\t\tif err == io.ErrUnexpectedEOF {\n\t\t\tabsPos := d.baseOffset + int64(pos)\n\t\t\terr = d.fetch() // will mutate d.buf and invalidate pos\n\t\t\tpos = int(absPos - d.baseOffset)\n\t\t\tif err != nil {\n\t\t\t\treturn pos, err\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\treturn pos + n, err\n\t}\n}\n\n// consumeString consumes a single JSON string starting at d.buf[pos:].\n// It returns the new position in d.buf immediately after the string.\nfunc (d *Decoder) consumeString(flags *valueFlags, pos int) (newPos int, err error) {\n\tvar n int\n\tfor {\n\t\tn, err = consumeStringResumable(flags, d.buf[pos:], n, !d.options.AllowInvalidUTF8)\n\t\tif err == io.ErrUnexpectedEOF {\n\t\t\tabsPos := d.baseOffset + int64(pos)\n\t\t\terr = d.fetch() // will mutate d.buf and invalidate pos\n\t\t\tpos = int(absPos - d.baseOffset)\n\t\t\tif err != nil {\n\t\t\t\treturn pos, err\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\treturn pos + n, err\n\t}\n}\n\n// consumeNumber consumes a single JSON number starting at d.buf[pos:].\n// It returns the new position in d.buf immediately after the number.\nfunc (d *Decoder) consumeNumber(pos int) (newPos int, err error) {\n\tvar n int\n\tvar state consumeNumberState\n\tfor {\n\t\tn, state, err = consumeNumberResumable(d.buf[pos:], n, state)\n\t\t// NOTE: Since JSON numbers are not self-terminating,\n\t\t// we need to make sure that the next byte is not part of a number.\n\t\tif err == io.ErrUnexpectedEOF || d.needMore(pos+n) {\n\t\t\tmayTerminate := err == nil\n\t\t\tabsPos := d.baseOffset + int64(pos)\n\t\t\terr = d.fetch() // will mutate d.buf and invalidate pos\n\t\t\tpos = int(absPos - d.baseOffset)\n\t\t\tif err != nil {\n\t\t\t\tif mayTerminate && err == io.ErrUnexpectedEOF {\n\t\t\t\t\treturn pos + n, nil\n\t\t\t\t}\n\t\t\t\treturn pos, err\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\treturn pos + n, err\n\t}\n}\n\n// consumeObject consumes a single JSON object starting at d.buf[pos:].\n// It returns the new position in d.buf immediately after the object.\nfunc (d *Decoder) consumeObject(flags *valueFlags, pos int) (newPos int, err error) {\n\tvar n int\n\tvar names *objectNamespace\n\tif !d.options.AllowDuplicateNames {\n\t\td.namespaces.push()\n\t\tdefer d.namespaces.pop()\n\t\tnames = d.namespaces.last()\n\t}\n\n\t// Handle before start.\n\tif d.buf[pos] != '{' {\n\t\tpanic(\"BUG: consumeObject must be called with a buffer that starts with '{'\")\n\t}\n\tpos++\n\n\t// Handle after start.\n\tpos += consumeWhitespace(d.buf[pos:])\n\tif d.needMore(pos) {\n\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n\t\t\treturn pos, err\n\t\t}\n\t}\n\tif d.buf[pos] == '}' {\n\t\tpos++\n\t\treturn pos, nil\n\t}\n\n\tfor {\n\t\t// Handle before name.\n\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\tif d.needMore(pos) {\n\t\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n\t\t\t\treturn pos, err\n\t\t\t}\n\t\t}\n\t\tvar flags2 valueFlags\n\t\tif n = consumeSimpleString(d.buf[pos:]); n == 0 {\n\t\t\toldAbsPos := d.baseOffset + int64(pos)\n\t\t\tpos, err = d.consumeString(&flags2, pos)\n\t\t\tnewAbsPos := d.baseOffset + int64(pos)\n\t\t\tn = int(newAbsPos - oldAbsPos)\n\t\t\tflags.set(flags2)\n\t\t\tif err != nil {\n\t\t\t\treturn pos, err\n\t\t\t}\n\t\t} else {\n\t\t\tpos += n\n\t\t}\n\t\tif !d.options.AllowDuplicateNames && !names.insertQuoted(d.buf[pos-n:pos], flags2.isVerbatim()) {\n\t\t\treturn pos - n, &SyntacticError{str: \"duplicate name \" + string(d.buf[pos-n:pos]) + \" in object\"}\n\t\t}\n\n\t\t// Handle after name.\n\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\tif d.needMore(pos) {\n\t\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n\t\t\t\treturn pos, err\n\t\t\t}\n\t\t}\n\t\tif d.buf[pos] != ':' {\n\t\t\treturn pos, newInvalidCharacterError(d.buf[pos:], \"after object name (expecting ':')\")\n\t\t}\n\t\tpos++\n\n\t\t// Handle before value.\n\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\tif d.needMore(pos) {\n\t\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n\t\t\t\treturn pos, err\n\t\t\t}\n\t\t}\n\t\tpos, err = d.consumeValue(flags, pos)\n\t\tif err != nil {\n\t\t\treturn pos, err\n\t\t}\n\n\t\t// Handle after value.\n\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\tif d.needMore(pos) {\n\t\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n\t\t\t\treturn pos, err\n\t\t\t}\n\t\t}\n\t\tswitch d.buf[pos] {\n\t\tcase ',':\n\t\t\tpos++\n\t\t\tcontinue\n\t\tcase '}':\n\t\t\tpos++\n\t\t\treturn pos, nil\n\t\tdefault:\n\t\t\treturn pos, newInvalidCharacterError(d.buf[pos:], \"after object value (expecting ',' or '}')\")\n\t\t}\n\t}\n}\n\n// consumeArray consumes a single JSON array starting at d.buf[pos:].\n// It returns the new position in d.buf immediately after the array.\nfunc (d *Decoder) consumeArray(flags *valueFlags, pos int) (newPos int, err error) {\n\t// Handle before start.\n\tif d.buf[pos] != '[' {\n\t\tpanic(\"BUG: consumeArray must be called with a buffer that starts with '['\")\n\t}\n\tpos++\n\n\t// Handle after start.\n\tpos += consumeWhitespace(d.buf[pos:])\n\tif d.needMore(pos) {\n\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n\t\t\treturn pos, err\n\t\t}\n\t}\n\tif d.buf[pos] == ']' {\n\t\tpos++\n\t\treturn pos, nil\n\t}\n\n\tfor {\n\t\t// Handle before value.\n\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\tif d.needMore(pos) {\n\t\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n\t\t\t\treturn pos, err\n\t\t\t}\n\t\t}\n\t\tpos, err = d.consumeValue(flags, pos)\n\t\tif err != nil {\n\t\t\treturn pos, err\n\t\t}\n\n\t\t// Handle after value.\n\t\tpos += consumeWhitespace(d.buf[pos:])\n\t\tif d.needMore(pos) {\n\t\t\tif pos, err = d.consumeWhitespace(pos); err != nil {\n\t\t\t\treturn pos, err\n\t\t\t}\n\t\t}\n\t\tswitch d.buf[pos] {\n\t\tcase ',':\n\t\t\tpos++\n\t\t\tcontinue\n\t\tcase ']':\n\t\t\tpos++\n\t\t\treturn pos, nil\n\t\tdefault:\n\t\t\treturn pos, newInvalidCharacterError(d.buf[pos:], \"after array value (expecting ',' or ']')\")\n\t\t}\n\t}\n}\n\n// InputOffset returns the current input byte offset. It gives the location\n// of the next byte immediately after the most recently returned token or value.\n// The number of bytes actually read from the underlying io.Reader may be more\n// than this offset due to internal buffering effects.\nfunc (d *Decoder) InputOffset() int64 {\n\treturn d.previousOffsetEnd()\n}\n\n// UnreadBuffer returns the data remaining in the unread buffer,\n// which may contain zero or more bytes.\n// The returned buffer must not be mutated while Decoder continues to be used.\n// The buffer contents are valid until the next Peek, Read, or Skip call.\nfunc (d *Decoder) UnreadBuffer() []byte {\n\treturn d.unreadBuffer()\n}\n\n// StackDepth returns the depth of the state machine for read JSON data.\n// Each level on the stack represents a nested JSON object or array.\n// It is incremented whenever an ObjectStart or ArrayStart token is encountered\n// and decremented whenever an ObjectEnd or ArrayEnd token is encountered.\n// The depth is zero-indexed, where zero represents the top-level JSON value.\nfunc (d *Decoder) StackDepth() int {\n\t// NOTE: Keep in sync with Encoder.StackDepth.\n\treturn d.tokens.depth() - 1\n}\n\n// StackIndex returns information about the specified stack level.\n// It must be a number between 0 and StackDepth, inclusive.\n// For each level, it reports the kind:\n//\n//   - 0 for a level of zero,\n//   - '{' for a level representing a JSON object, and\n//   - '[' for a level representing a JSON array.\n//\n// It also reports the length of that JSON object or array.\n// Each name and value in a JSON object is counted separately,\n// so the effective number of members would be half the length.\n// A complete JSON object must have an even length.\nfunc (d *Decoder) StackIndex(i int) (Kind, int) {\n\t// NOTE: Keep in sync with Encoder.StackIndex.\n\tswitch s := d.tokens.index(i); {\n\tcase i > 0 && s.isObject():\n\t\treturn '{', s.length()\n\tcase i > 0 && s.isArray():\n\t\treturn '[', s.length()\n\tdefault:\n\t\treturn 0, s.length()\n\t}\n}\n\n// StackPointer returns a JSON Pointer (RFC 6901) to the most recently read value.\n// Object names are only present if AllowDuplicateNames is false, otherwise\n// object members are represented using their index within the object.\nfunc (d *Decoder) StackPointer() string {\n\td.names.copyQuotedBuffer(d.buf)\n\treturn string(d.appendStackPointer(nil))\n}\n\n// consumeWhitespace consumes leading JSON whitespace per RFC 7159, section 2.\nfunc consumeWhitespace(b []byte) (n int) {\n\t// NOTE: The arguments and logic are kept simple to keep this inlineable.\n\tfor len(b) > n && (b[n] == ' ' || b[n] == '\\t' || b[n] == '\\r' || b[n] == '\\n') {\n\t\tn++\n\t}\n\treturn n\n}\n\n// consumeNull consumes the next JSON null literal per RFC 7159, section 3.\n// It returns 0 if it is invalid, in which case consumeLiteral should be used.\nfunc consumeNull(b []byte) int {\n\t// NOTE: The arguments and logic are kept simple to keep this inlineable.\n\tconst literal = \"null\"\n\tif len(b) >= len(literal) && string(b[:len(literal)]) == literal {\n\t\treturn len(literal)\n\t}\n\treturn 0\n}\n\n// consumeFalse consumes the next JSON false literal per RFC 7159, section 3.\n// It returns 0 if it is invalid, in which case consumeLiteral should be used.\nfunc consumeFalse(b []byte) int {\n\t// NOTE: The arguments and logic are kept simple to keep this inlineable.\n\tconst literal = \"false\"\n\tif len(b) >= len(literal) && string(b[:len(literal)]) == literal {\n\t\treturn len(literal)\n\t}\n\treturn 0\n}\n\n// consumeTrue consumes the next JSON true literal per RFC 7159, section 3.\n// It returns 0 if it is invalid, in which case consumeLiteral should be used.\nfunc consumeTrue(b []byte) int {\n\t// NOTE: The arguments and logic are kept simple to keep this inlineable.\n\tconst literal = \"true\"\n\tif len(b) >= len(literal) && string(b[:len(literal)]) == literal {\n\t\treturn len(literal)\n\t}\n\treturn 0\n}\n\n// consumeLiteral consumes the next JSON literal per RFC 7159, section 3.\n// If the input appears truncated, it returns io.ErrUnexpectedEOF.\nfunc consumeLiteral(b []byte, lit string) (n int, err error) {\n\tfor i := 0; i < len(b) && i < len(lit); i++ {\n\t\tif b[i] != lit[i] {\n\t\t\treturn i, newInvalidCharacterError(b[i:], \"within literal \"+lit+\" (expecting \"+strconv.QuoteRune(rune(lit[i]))+\")\")\n\t\t}\n\t}\n\tif len(b) < len(lit) {\n\t\treturn len(b), io.ErrUnexpectedEOF\n\t}\n\treturn len(lit), nil\n}\n\n// consumeSimpleString consumes the next JSON string per RFC 7159, section 7\n// but is limited to the grammar for an ASCII string without escape sequences.\n// It returns 0 if it is invalid or more complicated than a simple string,\n// in which case consumeString should be called.\nfunc consumeSimpleString(b []byte) (n int) {\n\t// NOTE: The arguments and logic are kept simple to keep this inlineable.\n\tif len(b) > 0 && b[0] == '\"' {\n\t\tn++\n\t\tfor len(b) > n && (' ' <= b[n] && b[n] != '\\\\' && b[n] != '\"' && b[n] < utf8.RuneSelf) {\n\t\t\tn++\n\t\t}\n\t\tif len(b) > n && b[n] == '\"' {\n\t\t\tn++\n\t\t\treturn n\n\t\t}\n\t}\n\treturn 0\n}\n\n// consumeString consumes the next JSON string per RFC 7159, section 7.\n// If validateUTF8 is false, then this allows the presence of invalid UTF-8\n// characters within the string itself.\n// It reports the number of bytes consumed and whether an error was encountered.\n// If the input appears truncated, it returns io.ErrUnexpectedEOF.\nfunc consumeString(flags *valueFlags, b []byte, validateUTF8 bool) (n int, err error) {\n\treturn consumeStringResumable(flags, b, 0, validateUTF8)\n}\n\n// consumeStringResumable is identical to consumeString but supports resuming\n// from a previous call that returned io.ErrUnexpectedEOF.\nfunc consumeStringResumable(flags *valueFlags, b []byte, resumeOffset int, validateUTF8 bool) (n int, err error) {\n\t// Consume the leading double quote.\n\tswitch {\n\tcase resumeOffset > 0:\n\t\tn = resumeOffset // already handled the leading quote\n\tcase uint(len(b)) == 0:\n\t\treturn n, io.ErrUnexpectedEOF\n\tcase b[0] == '\"':\n\t\tn++\n\tdefault:\n\t\treturn n, newInvalidCharacterError(b[n:], `at start of string (expecting '\"')`)\n\t}\n\n\t// Consume every character in the string.\n\tfor uint(len(b)) > uint(n) {\n\t\t// Optimize for long sequences of unescaped characters.\n\t\tnoEscape := func(c byte) bool {\n\t\t\treturn c < utf8.RuneSelf && ' ' <= c && c != '\\\\' && c != '\"'\n\t\t}\n\t\tfor uint(len(b)) > uint(n) && noEscape(b[n]) {\n\t\t\tn++\n\t\t}\n\t\tif uint(len(b)) <= uint(n) {\n\t\t\treturn n, io.ErrUnexpectedEOF\n\t\t}\n\n\t\t// Check for terminating double quote.\n\t\tif b[n] == '\"' {\n\t\t\tn++\n\t\t\treturn n, nil\n\t\t}\n\n\t\tswitch r, rn := utf8.DecodeRune(b[n:]); {\n\t\t// Handle UTF-8 encoded byte sequence.\n\t\t// Due to specialized handling of ASCII above, we know that\n\t\t// all normal sequences at this point must be 2 bytes or larger.\n\t\tcase rn > 1:\n\t\t\tn += rn\n\t\t// Handle escape sequence.\n\t\tcase r == '\\\\':\n\t\t\tflags.set(stringNonVerbatim)\n\t\t\tresumeOffset = n\n\t\t\tif uint(len(b)) < uint(n+2) {\n\t\t\t\treturn resumeOffset, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tswitch r := b[n+1]; r {\n\t\t\tcase '/':\n\t\t\t\t// Forward slash is the only character with 3 representations.\n\t\t\t\t// Per RFC 8785, section 3.2.2.2., this must not be escaped.\n\t\t\t\tflags.set(stringNonCanonical)\n\t\t\t\tn += 2\n\t\t\tcase '\"', '\\\\', 'b', 'f', 'n', 'r', 't':\n\t\t\t\tn += 2\n\t\t\tcase 'u':\n\t\t\t\tif uint(len(b)) < uint(n+6) {\n\t\t\t\t\tif !hasEscapeSequencePrefix(b[n:]) {\n\t\t\t\t\t\tflags.set(stringNonCanonical)\n\t\t\t\t\t\treturn n, &SyntacticError{str: \"invalid escape sequence \" + strconv.Quote(string(b[n:])) + \" within string\"}\n\t\t\t\t\t}\n\t\t\t\t\treturn resumeOffset, io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t\tv1, ok := parseHexUint16(b[n+2 : n+6])\n\t\t\t\tif !ok {\n\t\t\t\t\tflags.set(stringNonCanonical)\n\t\t\t\t\treturn n, &SyntacticError{str: \"invalid escape sequence \" + strconv.Quote(string(b[n:n+6])) + \" within string\"}\n\t\t\t\t}\n\t\t\t\t// Only certain control characters can use the \\uFFFF notation\n\t\t\t\t// for canonical formatting (per RFC 8785, section 3.2.2.2.).\n\t\t\t\tswitch v1 {\n\t\t\t\t// \\uFFFF notation not permitted for these characters.\n\t\t\t\tcase '\\b', '\\f', '\\n', '\\r', '\\t':\n\t\t\t\t\tflags.set(stringNonCanonical)\n\t\t\t\tdefault:\n\t\t\t\t\t// \\uFFFF notation only permitted for control characters.\n\t\t\t\t\tif v1 >= ' ' {\n\t\t\t\t\t\tflags.set(stringNonCanonical)\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// \\uFFFF notation must be lower case.\n\t\t\t\t\t\tfor _, c := range b[n+2 : n+6] {\n\t\t\t\t\t\t\tif 'A' <= c && c <= 'F' {\n\t\t\t\t\t\t\t\tflags.set(stringNonCanonical)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tn += 6\n\n\t\t\t\tif validateUTF8 && utf16.IsSurrogate(rune(v1)) {\n\t\t\t\t\tif uint(len(b)) >= uint(n+2) && (b[n] != '\\\\' || b[n+1] != 'u') {\n\t\t\t\t\t\treturn n, &SyntacticError{str: \"invalid unpaired surrogate half within string\"}\n\t\t\t\t\t}\n\t\t\t\t\tif uint(len(b)) < uint(n+6) {\n\t\t\t\t\t\tif !hasEscapeSequencePrefix(b[n:]) {\n\t\t\t\t\t\t\tflags.set(stringNonCanonical)\n\t\t\t\t\t\t\treturn n, &SyntacticError{str: \"invalid escape sequence \" + strconv.Quote(string(b[n:])) + \" within string\"}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn resumeOffset, io.ErrUnexpectedEOF\n\t\t\t\t\t}\n\t\t\t\t\tv2, ok := parseHexUint16(b[n+2 : n+6])\n\t\t\t\t\tif !ok {\n\t\t\t\t\t\treturn n, &SyntacticError{str: \"invalid escape sequence \" + strconv.Quote(string(b[n:n+6])) + \" within string\"}\n\t\t\t\t\t}\n\t\t\t\t\tif utf16.DecodeRune(rune(v1), rune(v2)) == utf8.RuneError {\n\t\t\t\t\t\treturn n, &SyntacticError{str: \"invalid surrogate pair in string\"}\n\t\t\t\t\t}\n\t\t\t\t\tn += 6\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\tflags.set(stringNonCanonical)\n\t\t\t\treturn n, &SyntacticError{str: \"invalid escape sequence \" + strconv.Quote(string(b[n:n+2])) + \" within string\"}\n\t\t\t}\n\t\t// Handle invalid UTF-8.\n\t\tcase r == utf8.RuneError:\n\t\t\tif !utf8.FullRune(b[n:]) {\n\t\t\t\treturn n, io.ErrUnexpectedEOF\n\t\t\t}\n\t\t\tflags.set(stringNonVerbatim | stringNonCanonical)\n\t\t\tif validateUTF8 {\n\t\t\t\treturn n, &SyntacticError{str: \"invalid UTF-8 within string\"}\n\t\t\t}\n\t\t\tn++\n\t\t// Handle invalid control characters.\n\t\tcase r < ' ':\n\t\t\tflags.set(stringNonVerbatim | stringNonCanonical)\n\t\t\treturn n, newInvalidCharacterError(b[n:], \"within string (expecting non-control character)\")\n\t\tdefault:\n\t\t\tpanic(\"BUG: unhandled character \" + quoteRune(b[n:]))\n\t\t}\n\t}\n\treturn n, io.ErrUnexpectedEOF\n}\n\n// hasEscapeSequencePrefix reports whether b is possibly\n// the truncated prefix of a \\uFFFF escape sequence.\nfunc hasEscapeSequencePrefix(b []byte) bool {\n\tfor i, c := range b {\n\t\tswitch {\n\t\tcase i == 0 && c != '\\\\':\n\t\t\treturn false\n\t\tcase i == 1 && c != 'u':\n\t\t\treturn false\n\t\tcase i >= 2 && i < 6 && !('0' <= c && c <= '9') && !('a' <= c && c <= 'f') && !('A' <= c && c <= 'F'):\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// unescapeString appends the unescaped form of a JSON string in src to dst.\n// Any invalid UTF-8 within the string will be replaced with utf8.RuneError.\n// The input must be an entire JSON string with no surrounding whitespace.\nfunc unescapeString(dst, src []byte) (v []byte, ok bool) {\n\t// Consume leading double quote.\n\tif uint(len(src)) == 0 || src[0] != '\"' {\n\t\treturn dst, false\n\t}\n\ti, n := 1, 1\n\n\t// Consume every character until completion.\n\tfor uint(len(src)) > uint(n) {\n\t\t// Optimize for long sequences of unescaped characters.\n\t\tnoEscape := func(c byte) bool {\n\t\t\treturn c < utf8.RuneSelf && ' ' <= c && c != '\\\\' && c != '\"'\n\t\t}\n\t\tfor uint(len(src)) > uint(n) && noEscape(src[n]) {\n\t\t\tn++\n\t\t}\n\t\tif uint(len(src)) <= uint(n) {\n\t\t\tbreak\n\t\t}\n\n\t\t// Check for terminating double quote.\n\t\tif src[n] == '\"' {\n\t\t\tdst = append(dst, src[i:n]...)\n\t\t\tn++\n\t\t\treturn dst, len(src) == n\n\t\t}\n\n\t\tswitch r, rn := utf8.DecodeRune(src[n:]); {\n\t\t// Handle UTF-8 encoded byte sequence.\n\t\t// Due to specialized handling of ASCII above, we know that\n\t\t// all normal sequences at this point must be 2 bytes or larger.\n\t\tcase rn > 1:\n\t\t\tn += rn\n\t\t// Handle escape sequence.\n\t\tcase r == '\\\\':\n\t\t\tdst = append(dst, src[i:n]...)\n\t\t\tif r < ' ' {\n\t\t\t\treturn dst, false // invalid control character or unescaped quote\n\t\t\t}\n\n\t\t\t// Handle escape sequence.\n\t\t\tif uint(len(src)) < uint(n+2) {\n\t\t\t\treturn dst, false // truncated escape sequence\n\t\t\t}\n\t\t\tswitch r := src[n+1]; r {\n\t\t\tcase '\"', '\\\\', '/':\n\t\t\t\tdst = append(dst, r)\n\t\t\t\tn += 2\n\t\t\tcase 'b':\n\t\t\t\tdst = append(dst, '\\b')\n\t\t\t\tn += 2\n\t\t\tcase 'f':\n\t\t\t\tdst = append(dst, '\\f')\n\t\t\t\tn += 2\n\t\t\tcase 'n':\n\t\t\t\tdst = append(dst, '\\n')\n\t\t\t\tn += 2\n\t\t\tcase 'r':\n\t\t\t\tdst = append(dst, '\\r')\n\t\t\t\tn += 2\n\t\t\tcase 't':\n\t\t\t\tdst = append(dst, '\\t')\n\t\t\t\tn += 2\n\t\t\tcase 'u':\n\t\t\t\tif uint(len(src)) < uint(n+6) {\n\t\t\t\t\treturn dst, false // truncated escape sequence\n\t\t\t\t}\n\t\t\t\tv1, ok := parseHexUint16(src[n+2 : n+6])\n\t\t\t\tif !ok {\n\t\t\t\t\treturn dst, false // invalid escape sequence\n\t\t\t\t}\n\t\t\t\tn += 6\n\n\t\t\t\t// Check whether this is a surrogate half.\n\t\t\t\tr := rune(v1)\n\t\t\t\tif utf16.IsSurrogate(r) {\n\t\t\t\t\tr = utf8.RuneError // assume failure unless the following succeeds\n\t\t\t\t\tif uint(len(src)) >= uint(n+6) && src[n+0] == '\\\\' && src[n+1] == 'u' {\n\t\t\t\t\t\tif v2, ok := parseHexUint16(src[n+2 : n+6]); ok {\n\t\t\t\t\t\t\tif r = utf16.DecodeRune(rune(v1), rune(v2)); r != utf8.RuneError {\n\t\t\t\t\t\t\t\tn += 6\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tdst = utf8.AppendRune(dst, r)\n\t\t\tdefault:\n\t\t\t\treturn dst, false // invalid escape sequence\n\t\t\t}\n\t\t\ti = n\n\t\t// Handle invalid UTF-8.\n\t\tcase r == utf8.RuneError:\n\t\t\t// NOTE: An unescaped string may be longer than the escaped string\n\t\t\t// because invalid UTF-8 bytes are being replaced.\n\t\t\tdst = append(dst, src[i:n]...)\n\t\t\tdst = append(dst, \"\\uFFFD\"...)\n\t\t\tn += rn\n\t\t\ti = n\n\t\t// Handle invalid control characters.\n\t\tcase r < ' ':\n\t\t\tdst = append(dst, src[i:n]...)\n\t\t\treturn dst, false // invalid control character or unescaped quote\n\t\tdefault:\n\t\t\tpanic(\"BUG: unhandled character \" + quoteRune(src[n:]))\n\t\t}\n\t}\n\tdst = append(dst, src[i:n]...)\n\treturn dst, false // truncated input\n}\n\n// unescapeStringMayCopy returns the unescaped form of b.\n// If there are no escaped characters, the output is simply a subslice of\n// the input with the surrounding quotes removed.\n// Otherwise, a new buffer is allocated for the output.\nfunc unescapeStringMayCopy(b []byte, isVerbatim bool) []byte {\n\t// NOTE: The arguments and logic are kept simple to keep this inlineable.\n\tif isVerbatim {\n\t\treturn b[len(`\"`) : len(b)-len(`\"`)]\n\t}\n\tb, _ = unescapeString(make([]byte, 0, len(b)), b)\n\treturn b\n}\n\n// consumeSimpleNumber consumes the next JSON number per RFC 7159, section 6\n// but is limited to the grammar for a positive integer.\n// It returns 0 if it is invalid or more complicated than a simple integer,\n// in which case consumeNumber should be called.\nfunc consumeSimpleNumber(b []byte) (n int) {\n\t// NOTE: The arguments and logic are kept simple to keep this inlineable.\n\tif len(b) > 0 {\n\t\tif b[0] == '0' {\n\t\t\tn++\n\t\t} else if '1' <= b[0] && b[0] <= '9' {\n\t\t\tn++\n\t\t\tfor len(b) > n && ('0' <= b[n] && b[n] <= '9') {\n\t\t\t\tn++\n\t\t\t}\n\t\t} else {\n\t\t\treturn 0\n\t\t}\n\t\tif len(b) == n || !(b[n] == '.' || b[n] == 'e' || b[n] == 'E') {\n\t\t\treturn n\n\t\t}\n\t}\n\treturn 0\n}\n\ntype consumeNumberState uint\n\nconst (\n\tconsumeNumberInit consumeNumberState = iota\n\tbeforeIntegerDigits\n\twithinIntegerDigits\n\tbeforeFractionalDigits\n\twithinFractionalDigits\n\tbeforeExponentDigits\n\twithinExponentDigits\n)\n\n// consumeNumber consumes the next JSON number per RFC 7159, section 6.\n// It reports the number of bytes consumed and whether an error was encountered.\n// If the input appears truncated, it returns io.ErrUnexpectedEOF.\n//\n// Note that JSON numbers are not self-terminating.\n// If the entire input is consumed, then the caller needs to consider whether\n// there may be subsequent unread data that may still be part of this number.\nfunc consumeNumber(b []byte) (n int, err error) {\n\tn, _, err = consumeNumberResumable(b, 0, consumeNumberInit)\n\treturn n, err\n}\n\n// consumeNumberResumable is identical to consumeNumber but supports resuming\n// from a previous call that returned io.ErrUnexpectedEOF.\nfunc consumeNumberResumable(b []byte, resumeOffset int, state consumeNumberState) (n int, _ consumeNumberState, err error) {\n\t// Jump to the right state when resuming from a partial consumption.\n\tn = resumeOffset\n\tif state > consumeNumberInit {\n\t\tswitch state {\n\t\tcase withinIntegerDigits, withinFractionalDigits, withinExponentDigits:\n\t\t\t// Consume leading digits.\n\t\t\tfor len(b) > n && ('0' <= b[n] && b[n] <= '9') {\n\t\t\t\tn++\n\t\t\t}\n\t\t\tif len(b) == n {\n\t\t\t\treturn n, state, nil // still within the same state\n\t\t\t}\n\t\t\tstate++ // switches \"withinX\" to \"beforeY\" where Y is the state after X\n\t\t}\n\t\tswitch state {\n\t\tcase beforeIntegerDigits:\n\t\t\tgoto beforeInteger\n\t\tcase beforeFractionalDigits:\n\t\t\tgoto beforeFractional\n\t\tcase beforeExponentDigits:\n\t\t\tgoto beforeExponent\n\t\tdefault:\n\t\t\treturn n, state, nil\n\t\t}\n\t}\n\n\t// Consume required integer component (with optional minus sign).\nbeforeInteger:\n\tresumeOffset = n\n\tif len(b) > 0 && b[0] == '-' {\n\t\tn++\n\t}\n\tswitch {\n\tcase len(b) == n:\n\t\treturn resumeOffset, beforeIntegerDigits, io.ErrUnexpectedEOF\n\tcase b[n] == '0':\n\t\tn++\n\t\tstate = beforeFractionalDigits\n\tcase '1' <= b[n] && b[n] <= '9':\n\t\tn++\n\t\tfor len(b) > n && ('0' <= b[n] && b[n] <= '9') {\n\t\t\tn++\n\t\t}\n\t\tstate = withinIntegerDigits\n\tdefault:\n\t\treturn n, state, newInvalidCharacterError(b[n:], \"within number (expecting digit)\")\n\t}\n\n\t// Consume optional fractional component.\nbeforeFractional:\n\tif len(b) > n && b[n] == '.' {\n\t\tresumeOffset = n\n\t\tn++\n\t\tswitch {\n\t\tcase len(b) == n:\n\t\t\treturn resumeOffset, beforeFractionalDigits, io.ErrUnexpectedEOF\n\t\tcase '0' <= b[n] && b[n] <= '9':\n\t\t\tn++\n\t\tdefault:\n\t\t\treturn n, state, newInvalidCharacterError(b[n:], \"within number (expecting digit)\")\n\t\t}\n\t\tfor len(b) > n && ('0' <= b[n] && b[n] <= '9') {\n\t\t\tn++\n\t\t}\n\t\tstate = withinFractionalDigits\n\t}\n\n\t// Consume optional exponent component.\nbeforeExponent:\n\tif len(b) > n && (b[n] == 'e' || b[n] == 'E') {\n\t\tresumeOffset = n\n\t\tn++\n\t\tif len(b) > n && (b[n] == '-' || b[n] == '+') {\n\t\t\tn++\n\t\t}\n\t\tswitch {\n\t\tcase len(b) == n:\n\t\t\treturn resumeOffset, beforeExponentDigits, io.ErrUnexpectedEOF\n\t\tcase '0' <= b[n] && b[n] <= '9':\n\t\t\tn++\n\t\tdefault:\n\t\t\treturn n, state, newInvalidCharacterError(b[n:], \"within number (expecting digit)\")\n\t\t}\n\t\tfor len(b) > n && ('0' <= b[n] && b[n] <= '9') {\n\t\t\tn++\n\t\t}\n\t\tstate = withinExponentDigits\n\t}\n\n\treturn n, state, nil\n}\n\n// parseHexUint16 is similar to strconv.ParseUint,\n// but operates directly on []byte and is optimized for base-16.\n// See https://go.dev/issue/42429.\nfunc parseHexUint16(b []byte) (v uint16, ok bool) {\n\tif len(b) != 4 {\n\t\treturn 0, false\n\t}\n\tfor _, c := range b[:4] {\n\t\tswitch {\n\t\tcase '0' <= c && c <= '9':\n\t\t\tc = c - '0'\n\t\tcase 'a' <= c && c <= 'f':\n\t\t\tc = 10 + c - 'a'\n\t\tcase 'A' <= c && c <= 'F':\n\t\t\tc = 10 + c - 'A'\n\t\tdefault:\n\t\t\treturn 0, false\n\t\t}\n\t\tv = v*16 + uint16(c)\n\t}\n\treturn v, true\n}\n\n// parseDecUint is similar to strconv.ParseUint,\n// but operates directly on []byte and is optimized for base-10.\n// If the number is syntactically valid but overflows uint64,\n// then it returns (math.MaxUint64, false).\n// See https://go.dev/issue/42429.\nfunc parseDecUint(b []byte) (v uint64, ok bool) {\n\t// Overflow logic is based on strconv/atoi.go:138-149 from Go1.15, where:\n\t//   - cutoff is equal to math.MaxUint64/10+1, and\n\t//   - the n1 > maxVal check is unnecessary\n\t//     since maxVal is equivalent to math.MaxUint64.\n\tvar n int\n\tvar overflow bool\n\tfor len(b) > n && ('0' <= b[n] && b[n] <= '9') {\n\t\toverflow = overflow || v >= math.MaxUint64/10+1\n\t\tv *= 10\n\n\t\tv1 := v + uint64(b[n]-'0')\n\t\toverflow = overflow || v1 < v\n\t\tv = v1\n\n\t\tn++\n\t}\n\tif n == 0 || len(b) != n {\n\t\treturn 0, false\n\t}\n\tif overflow {\n\t\treturn math.MaxUint64, false\n\t}\n\treturn v, true\n}\n\n// parseFloat parses a floating point number according to the Go float grammar.\n// Note that the JSON number grammar is a strict subset.\n//\n// If the number overflows the finite representation of a float,\n// then we return MaxFloat since any finite value will always be infinitely\n// more accurate at representing another finite value than an infinite value.\nfunc parseFloat(b []byte, bits int) (v float64, ok bool) {\n\t// Fast path for exact integer numbers which fit in the\n\t// 24-bit or 53-bit significand of a float32 or float64.\n\tvar negLen int // either 0 or 1\n\tif len(b) > 0 && b[0] == '-' {\n\t\tnegLen = 1\n\t}\n\tu, ok := parseDecUint(b[negLen:])\n\tif ok && ((bits == 32 && u <= 1<<24) || (bits == 64 && u <= 1<<53)) {\n\t\treturn math.Copysign(float64(u), float64(-1*negLen)), true\n\t}\n\n\t// Note that the []byte->string conversion unfortunately allocates.\n\t// See https://go.dev/issue/42429 for more information.\n\tfv, err := strconv.ParseFloat(string(b), bits)\n\tif math.IsInf(fv, 0) {\n\t\tswitch {\n\t\tcase bits == 32 && math.IsInf(fv, +1):\n\t\t\treturn +math.MaxFloat32, true\n\t\tcase bits == 64 && math.IsInf(fv, +1):\n\t\t\treturn +math.MaxFloat64, true\n\t\tcase bits == 32 && math.IsInf(fv, -1):\n\t\t\treturn -math.MaxFloat32, true\n\t\tcase bits == 64 && math.IsInf(fv, -1):\n\t\t\treturn -math.MaxFloat64, true\n\t\t}\n\t}\n\treturn fv, err == nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/doc.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package json implements serialization of JSON\n// as specified in RFC 4627, RFC 7159, RFC 7493, RFC 8259, and RFC 8785.\n// JSON is a simple data interchange format that can represent\n// primitive data types such as booleans, strings, and numbers,\n// in addition to structured data types such as objects and arrays.\n//\n// # Terminology\n//\n// This package uses the terms \"encode\" and \"decode\" for syntactic functionality\n// that is concerned with processing JSON based on its grammar, and\n// uses the terms \"marshal\" and \"unmarshal\" for semantic functionality\n// that determines the meaning of JSON values as Go values and vice-versa.\n// It aims to provide a clear distinction between functionality that\n// is purely concerned with encoding versus that of marshaling.\n// For example, one can directly encode a stream of JSON tokens without\n// needing to marshal a concrete Go value representing them.\n// Similarly, one can decode a stream of JSON tokens without\n// needing to unmarshal them into a concrete Go value.\n//\n// This package uses JSON terminology when discussing JSON, which may differ\n// from related concepts in Go or elsewhere in computing literature.\n//\n//   - A JSON \"object\" refers to an unordered collection of name/value members.\n//   - A JSON \"array\" refers to an ordered sequence of elements.\n//   - A JSON \"value\" refers to either a literal (i.e., null, false, or true),\n//     string, number, object, or array.\n//\n// See RFC 8259 for more information.\n//\n// # Specifications\n//\n// Relevant specifications include RFC 4627, RFC 7159, RFC 7493, RFC 8259,\n// and RFC 8785. Each RFC is generally a stricter subset of another RFC.\n// In increasing order of strictness:\n//\n//   - RFC 4627 and RFC 7159 do not require (but recommend) the use of UTF-8\n//     and also do not require (but recommend) that object names be unique.\n//   - RFC 8259 requires the use of UTF-8,\n//     but does not require (but recommends) that object names be unique.\n//   - RFC 7493 requires the use of UTF-8\n//     and also requires that object names be unique.\n//   - RFC 8785 defines a canonical representation. It requires the use of UTF-8\n//     and also requires that object names be unique and in a specific ordering.\n//     It specifies exactly how strings and numbers must be formatted.\n//\n// The primary difference between RFC 4627 and RFC 7159 is that the former\n// restricted top-level values to only JSON objects and arrays, while\n// RFC 7159 and subsequent RFCs permit top-level values to additionally be\n// JSON nulls, booleans, strings, or numbers.\n//\n// By default, this package operates on RFC 7493, but can be configured\n// to operate according to the other RFC specifications.\n// RFC 7493 is a stricter subset of RFC 8259 and fully compliant with it.\n// In particular, it makes specific choices about behavior that RFC 8259\n// leaves as undefined in order to ensure greater interoperability.\n//\n// # JSON Representation of Go structs\n//\n// A Go struct is naturally represented as a JSON object,\n// where each Go struct field corresponds with a JSON object member.\n// When marshaling, all Go struct fields are recursively encoded in depth-first\n// order as JSON object members except those that are ignored or omitted.\n// When unmarshaling, JSON object members are recursively decoded\n// into the corresponding Go struct fields.\n// Object members that do not match any struct fields,\n// also known as “unknown members”, are ignored by default or rejected\n// if UnmarshalOptions.RejectUnknownMembers is specified.\n//\n// The representation of each struct field can be customized in the\n// \"json\" struct field tag, where the tag is a comma separated list of options.\n// As a special case, if the entire tag is `json:\"-\"`,\n// then the field is ignored with regard to its JSON representation.\n//\n// The first option is the JSON object name override for the Go struct field.\n// If the name is not specified, then the Go struct field name\n// is used as the JSON object name. JSON names containing commas or quotes,\n// or names identical to \"\" or \"-\", can be specified using\n// a single-quoted string literal, where the syntax is identical to\n// the Go grammar for a double-quoted string literal,\n// but instead uses single quotes as the delimiters.\n// By default, unmarshaling uses case-sensitive matching to identify\n// the Go struct field associated with a JSON object name.\n//\n// After the name, the following tag options are supported:\n//\n//   - omitzero: When marshaling, the \"omitzero\" option specifies that\n//     the struct field should be omitted if the field value is zero\n//     as determined by the \"IsZero() bool\" method if present,\n//     otherwise based on whether the field is the zero Go value.\n//     This option has no effect when unmarshaling.\n//\n//   - omitempty: When marshaling, the \"omitempty\" option specifies that\n//     the struct field should be omitted if the field value would have been\n//     encoded as a JSON null, empty string, empty object, or empty array.\n//     This option has no effect when unmarshaling.\n//\n//   - string: The \"string\" option specifies that\n//     MarshalOptions.StringifyNumbers and UnmarshalOptions.StringifyNumbers\n//     be set when marshaling or unmarshaling a struct field value.\n//     This causes numeric types to be encoded as a JSON number\n//     within a JSON string, and to be decoded from either a JSON number or\n//     a JSON string containing a JSON number.\n//     This extra level of encoding is often necessary since\n//     many JSON parsers cannot precisely represent 64-bit integers.\n//\n//   - nocase: When unmarshaling, the \"nocase\" option specifies that\n//     if the JSON object name does not exactly match the JSON name\n//     for any of the struct fields, then it attempts to match the struct field\n//     using a case-insensitive match that also ignores dashes and underscores.\n//     If multiple fields match, the first declared field in breadth-first order\n//     takes precedence. This option has no effect when marshaling.\n//\n//   - inline: The \"inline\" option specifies that\n//     the JSON representable content of this field type is to be promoted\n//     as if they were specified in the parent struct.\n//     It is the JSON equivalent of Go struct embedding.\n//     A Go embedded field is implicitly inlined unless an explicit JSON name\n//     is specified. The inlined field must be a Go struct\n//     (that does not implement any JSON methods), RawValue, map[string]T,\n//     or an unnamed pointer to such types. When marshaling,\n//     inlined fields from a pointer type are omitted if it is nil.\n//     Inlined fields of type RawValue and map[string]T are called\n//     “inlined fallbacks” as they can represent all possible\n//     JSON object members not directly handled by the parent struct.\n//     Only one inlined fallback field may be specified in a struct,\n//     while many non-fallback fields may be specified. This option\n//     must not be specified with any other option (including the JSON name).\n//\n//   - unknown: The \"unknown\" option is a specialized variant\n//     of the inlined fallback to indicate that this Go struct field\n//     contains any number of unknown JSON object members. The field type\n//     must be a RawValue, map[string]T, or an unnamed pointer to such types.\n//     If MarshalOptions.DiscardUnknownMembers is specified when marshaling,\n//     the contents of this field are ignored.\n//     If UnmarshalOptions.RejectUnknownMembers is specified when unmarshaling,\n//     any unknown object members are rejected regardless of whether\n//     an inlined fallback with the \"unknown\" option exists. This option\n//     must not be specified with any other option (including the JSON name).\n//\n//   - format: The \"format\" option specifies a format flag\n//     used to specialize the formatting of the field value.\n//     The option is a key-value pair specified as \"format:value\" where\n//     the value must be either a literal consisting of letters and numbers\n//     (e.g., \"format:RFC3339\") or a single-quoted string literal\n//     (e.g., \"format:'2006-01-02'\"). The interpretation of the format flag\n//     is determined by the struct field type.\n//\n// The \"omitzero\" and \"omitempty\" options are mostly semantically identical.\n// The former is defined in terms of the Go type system,\n// while the latter in terms of the JSON type system.\n// Consequently they behave differently in some circumstances.\n// For example, only a nil slice or map is omitted under \"omitzero\", while\n// an empty slice or map is omitted under \"omitempty\" regardless of nilness.\n// The \"omitzero\" option is useful for types with a well-defined zero value\n// (e.g., netip.Addr) or have an IsZero method (e.g., time.Time).\n//\n// Every Go struct corresponds to a list of JSON representable fields\n// which is constructed by performing a breadth-first search over\n// all struct fields (excluding unexported or ignored fields),\n// where the search recursively descends into inlined structs.\n// The set of non-inlined fields in a struct must have unique JSON names.\n// If multiple fields all have the same JSON name, then the one\n// at shallowest depth takes precedence and the other fields at deeper depths\n// are excluded from the list of JSON representable fields.\n// If multiple fields at the shallowest depth have the same JSON name,\n// then all of those fields are excluded from the list. This is analogous to\n// Go visibility rules for struct field selection with embedded struct types.\n//\n// Marshaling or unmarshaling a non-empty struct\n// without any JSON representable fields results in a SemanticError.\n// Unexported fields must not have any `json` tags except for `json:\"-\"`.\npackage json\n\n// requireKeyedLiterals can be embedded in a struct to require keyed literals.\ntype requireKeyedLiterals struct{}\n\n// nonComparable can be embedded in a struct to prevent comparability.\ntype nonComparable [0]func()\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/encode.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"bytes\"\n\t\"io\"\n\t\"math\"\n\t\"math/bits\"\n\t\"strconv\"\n\t\"unicode/utf16\"\n\t\"unicode/utf8\"\n)\n\n// EncodeOptions configures how JSON encoding operates.\n// The zero value is equivalent to the default settings,\n// which is compliant with both RFC 7493 and RFC 8259.\ntype EncodeOptions struct {\n\trequireKeyedLiterals\n\tnonComparable\n\n\t// multiline specifies whether the encoder should emit multiline output.\n\tmultiline bool\n\n\t// omitTopLevelNewline specifies whether to omit the newline\n\t// that is appended after every top-level JSON value when streaming.\n\tomitTopLevelNewline bool\n\n\t// AllowDuplicateNames specifies that JSON objects may contain\n\t// duplicate member names. Disabling the duplicate name check may provide\n\t// performance benefits, but breaks compliance with RFC 7493, section 2.3.\n\t// The output will still be compliant with RFC 8259,\n\t// which leaves the handling of duplicate names as unspecified behavior.\n\tAllowDuplicateNames bool\n\n\t// AllowInvalidUTF8 specifies that JSON strings may contain invalid UTF-8,\n\t// which will be mangled as the Unicode replacement character, U+FFFD.\n\t// This causes the encoder to break compliance with\n\t// RFC 7493, section 2.1, and RFC 8259, section 8.1.\n\tAllowInvalidUTF8 bool\n\n\t// preserveRawStrings specifies that WriteToken and WriteValue should not\n\t// reformat any JSON string, but keep the formatting verbatim.\n\tpreserveRawStrings bool\n\n\t// canonicalizeNumbers specifies that WriteToken and WriteValue should\n\t// reformat any JSON numbers according to RFC 8785, section 3.2.2.3.\n\tcanonicalizeNumbers bool\n\n\t// EscapeRune reports whether the provided character should be escaped\n\t// as a hexadecimal Unicode codepoint (e.g., \\ufffd).\n\t// If nil, the shortest and simplest encoding will be used,\n\t// which is also the formatting specified by RFC 8785, section 3.2.2.2.\n\tEscapeRune func(rune) bool\n\n\t// Indent (if non-empty) specifies that the encoder should emit multiline\n\t// output where each element in a JSON object or array begins on a new,\n\t// indented line beginning with the indent prefix followed by one or more\n\t// copies of indent according to the indentation nesting.\n\t// It may only be composed of space or tab characters.\n\tIndent string\n\n\t// IndentPrefix is prepended to each line within a JSON object or array.\n\t// The purpose of the indent prefix is to encode data that can more easily\n\t// be embedded inside other formatted JSON data.\n\t// It may only be composed of space or tab characters.\n\t// It is ignored if Indent is empty.\n\tIndentPrefix string\n}\n\n// Encoder is a streaming encoder from raw JSON tokens and values.\n// It is used to write a stream of top-level JSON values,\n// each terminated with a newline character.\n//\n// WriteToken and WriteValue calls may be interleaved.\n// For example, the following JSON value:\n//\n//\t{\"name\":\"value\",\"array\":[null,false,true,3.14159],\"object\":{\"k\":\"v\"}}\n//\n// can be composed with the following calls (ignoring errors for brevity):\n//\n//\te.WriteToken(ObjectStart)           // {\n//\te.WriteToken(String(\"name\"))        // \"name\"\n//\te.WriteToken(String(\"value\"))       // \"value\"\n//\te.WriteValue(RawValue(`\"array\"`))   // \"array\"\n//\te.WriteToken(ArrayStart)            // [\n//\te.WriteToken(Null)                  // null\n//\te.WriteToken(False)                 // false\n//\te.WriteValue(RawValue(\"true\"))      // true\n//\te.WriteToken(Float(3.14159))        // 3.14159\n//\te.WriteToken(ArrayEnd)              // ]\n//\te.WriteValue(RawValue(`\"object\"`))  // \"object\"\n//\te.WriteValue(RawValue(`{\"k\":\"v\"}`)) // {\"k\":\"v\"}\n//\te.WriteToken(ObjectEnd)             // }\n//\n// The above is one of many possible sequence of calls and\n// may not represent the most sensible method to call for any given token/value.\n// For example, it is probably more common to call WriteToken with a string\n// for object names.\ntype Encoder struct {\n\tstate\n\tencodeBuffer\n\toptions EncodeOptions\n\n\tseenPointers seenPointers // only used when marshaling\n}\n\n// encodeBuffer is a buffer split into 2 segments:\n//\n//   - buf[0:len(buf)]        // written (but unflushed) portion of the buffer\n//   - buf[len(buf):cap(buf)] // unused portion of the buffer\ntype encodeBuffer struct {\n\tbuf []byte // may alias wr if it is a bytes.Buffer\n\n\t// baseOffset is added to len(buf) to obtain the absolute offset\n\t// relative to the start of io.Writer stream.\n\tbaseOffset int64\n\n\twr io.Writer\n\n\t// maxValue is the approximate maximum RawValue size passed to WriteValue.\n\tmaxValue int\n\t// unusedCache is the buffer returned by the UnusedBuffer method.\n\tunusedCache []byte\n\t// bufStats is statistics about buffer utilization.\n\t// It is only used with pooled encoders in pools.go.\n\tbufStats bufferStatistics\n}\n\n// NewEncoder constructs a new streaming encoder writing to w.\nfunc NewEncoder(w io.Writer) *Encoder {\n\treturn EncodeOptions{}.NewEncoder(w)\n}\n\n// NewEncoder constructs a new streaming encoder writing to w\n// configured with the provided options.\n// It flushes the internal buffer when the buffer is sufficiently full or\n// when a top-level value has been written.\n//\n// If w is a bytes.Buffer, then the encoder appends directly into the buffer\n// without copying the contents from an intermediate buffer.\nfunc (o EncodeOptions) NewEncoder(w io.Writer) *Encoder {\n\te := new(Encoder)\n\to.ResetEncoder(e, w)\n\treturn e\n}\n\n// ResetEncoder resets an encoder such that it is writing afresh to w and\n// configured with the provided options.\nfunc (o EncodeOptions) ResetEncoder(e *Encoder, w io.Writer) {\n\tif e == nil {\n\t\tpanic(\"json: invalid nil Encoder\")\n\t}\n\tif w == nil {\n\t\tpanic(\"json: invalid nil io.Writer\")\n\t}\n\te.reset(nil, w, o)\n}\n\nfunc (e *Encoder) reset(b []byte, w io.Writer, o EncodeOptions) {\n\tif len(o.Indent) > 0 {\n\t\to.multiline = true\n\t\tif s := trimLeftSpaceTab(o.IndentPrefix); len(s) > 0 {\n\t\t\tpanic(\"json: invalid character \" + quoteRune([]byte(s)) + \" in indent prefix\")\n\t\t}\n\t\tif s := trimLeftSpaceTab(o.Indent); len(s) > 0 {\n\t\t\tpanic(\"json: invalid character \" + quoteRune([]byte(s)) + \" in indent\")\n\t\t}\n\t}\n\te.state.reset()\n\te.encodeBuffer = encodeBuffer{buf: b, wr: w, bufStats: e.bufStats}\n\te.options = o\n\tif bb, ok := w.(*bytes.Buffer); ok && bb != nil {\n\t\te.buf = bb.Bytes()[bb.Len():] // alias the unused buffer of bb\n\t}\n}\n\n// Reset resets an encoder such that it is writing afresh to w but\n// keeps any pre-existing encoder options.\nfunc (e *Encoder) Reset(w io.Writer) {\n\te.options.ResetEncoder(e, w)\n}\n\n// needFlush determines whether to flush at this point.\nfunc (e *Encoder) needFlush() bool {\n\t// NOTE: This function is carefully written to be inlineable.\n\n\t// Avoid flushing if e.wr is nil since there is no underlying writer.\n\t// Flush if less than 25% of the capacity remains.\n\t// Flushing at some constant fraction ensures that the buffer stops growing\n\t// so long as the largest Token or Value fits within that unused capacity.\n\treturn e.wr != nil && (e.tokens.depth() == 1 || len(e.buf) > 3*cap(e.buf)/4)\n}\n\n// flush flushes the buffer to the underlying io.Writer.\n// It may append a trailing newline after the top-level value.\nfunc (e *Encoder) flush() error {\n\tif e.wr == nil || e.avoidFlush() {\n\t\treturn nil\n\t}\n\n\t// In streaming mode, always emit a newline after the top-level value.\n\tif e.tokens.depth() == 1 && !e.options.omitTopLevelNewline {\n\t\te.buf = append(e.buf, '\\n')\n\t}\n\n\t// Inform objectNameStack that we are about to flush the buffer content.\n\te.names.copyQuotedBuffer(e.buf)\n\n\t// Specialize bytes.Buffer for better performance.\n\tif bb, ok := e.wr.(*bytes.Buffer); ok {\n\t\t// If e.buf already aliases the internal buffer of bb,\n\t\t// then the Write call simply increments the internal offset,\n\t\t// otherwise Write operates as expected.\n\t\t// See https://go.dev/issue/42986.\n\t\tn, _ := bb.Write(e.buf) // never fails unless bb is nil\n\t\te.baseOffset += int64(n)\n\n\t\t// If the internal buffer of bytes.Buffer is too small,\n\t\t// append operations elsewhere in the Encoder may grow the buffer.\n\t\t// This would be semantically correct, but hurts performance.\n\t\t// As such, ensure 25% of the current length is always available\n\t\t// to reduce the probability that other appends must allocate.\n\t\tif avail := bb.Cap() - bb.Len(); avail < bb.Len()/4 {\n\t\t\tbb.Grow(avail + 1)\n\t\t}\n\n\t\te.buf = bb.Bytes()[bb.Len():] // alias the unused buffer of bb\n\t\treturn nil\n\t}\n\n\t// Flush the internal buffer to the underlying io.Writer.\n\tn, err := e.wr.Write(e.buf)\n\te.baseOffset += int64(n)\n\tif err != nil {\n\t\t// In the event of an error, preserve the unflushed portion.\n\t\t// Thus, write errors aren't fatal so long as the io.Writer\n\t\t// maintains consistent state after errors.\n\t\tif n > 0 {\n\t\t\te.buf = e.buf[:copy(e.buf, e.buf[n:])]\n\t\t}\n\t\treturn &ioError{action: \"write\", err: err}\n\t}\n\te.buf = e.buf[:0]\n\n\t// Check whether to grow the buffer.\n\t// Note that cap(e.buf) may already exceed maxBufferSize since\n\t// an append elsewhere already grew it to store a large token.\n\tconst maxBufferSize = 4 << 10\n\tconst growthSizeFactor = 2 // higher value is faster\n\tconst growthRateFactor = 2 // higher value is slower\n\t// By default, grow if below the maximum buffer size.\n\tgrow := cap(e.buf) <= maxBufferSize/growthSizeFactor\n\t// Growing can be expensive, so only grow\n\t// if a sufficient number of bytes have been processed.\n\tgrow = grow && int64(cap(e.buf)) < e.previousOffsetEnd()/growthRateFactor\n\tif grow {\n\t\te.buf = make([]byte, 0, cap(e.buf)*growthSizeFactor)\n\t}\n\n\treturn nil\n}\n\nfunc (e *encodeBuffer) previousOffsetEnd() int64 { return e.baseOffset + int64(len(e.buf)) }\nfunc (e *encodeBuffer) unflushedBuffer() []byte  { return e.buf }\n\n// avoidFlush indicates whether to avoid flushing to ensure there is always\n// enough in the buffer to unwrite the last object member if it were empty.\nfunc (e *Encoder) avoidFlush() bool {\n\tswitch {\n\tcase e.tokens.last.length() == 0:\n\t\t// Never flush after ObjectStart or ArrayStart since we don't know yet\n\t\t// if the object or array will end up being empty.\n\t\treturn true\n\tcase e.tokens.last.needObjectValue():\n\t\t// Never flush before the object value since we don't know yet\n\t\t// if the object value will end up being empty.\n\t\treturn true\n\tcase e.tokens.last.needObjectName() && len(e.buf) >= 2:\n\t\t// Never flush after the object value if it does turn out to be empty.\n\t\tswitch string(e.buf[len(e.buf)-2:]) {\n\t\tcase `ll`, `\"\"`, `{}`, `[]`: // last two bytes of every empty value\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// unwriteEmptyObjectMember unwrites the last object member if it is empty\n// and reports whether it performed an unwrite operation.\nfunc (e *Encoder) unwriteEmptyObjectMember(prevName *string) bool {\n\tif last := e.tokens.last; !last.isObject() || !last.needObjectName() || last.length() == 0 {\n\t\tpanic(\"BUG: must be called on an object after writing a value\")\n\t}\n\n\t// The flushing logic is modified to never flush a trailing empty value.\n\t// The encoder never writes trailing whitespace eagerly.\n\tb := e.unflushedBuffer()\n\n\t// Detect whether the last value was empty.\n\tvar n int\n\tif len(b) >= 3 {\n\t\tswitch string(b[len(b)-2:]) {\n\t\tcase \"ll\": // last two bytes of `null`\n\t\t\tn = len(`null`)\n\t\tcase `\"\"`:\n\t\t\t// It is possible for a non-empty string to have `\"\"` as a suffix\n\t\t\t// if the second to the last quote was escaped.\n\t\t\tif b[len(b)-3] == '\\\\' {\n\t\t\t\treturn false // e.g., `\"\\\"\"` is not empty\n\t\t\t}\n\t\t\tn = len(`\"\"`)\n\t\tcase `{}`:\n\t\t\tn = len(`{}`)\n\t\tcase `[]`:\n\t\t\tn = len(`[]`)\n\t\t}\n\t}\n\tif n == 0 {\n\t\treturn false\n\t}\n\n\t// Unwrite the value, whitespace, colon, name, whitespace, and comma.\n\tb = b[:len(b)-n]\n\tb = trimSuffixWhitespace(b)\n\tb = trimSuffixByte(b, ':')\n\tb = trimSuffixString(b)\n\tb = trimSuffixWhitespace(b)\n\tb = trimSuffixByte(b, ',')\n\te.buf = b // store back truncated unflushed buffer\n\n\t// Undo state changes.\n\te.tokens.last.decrement() // for object member value\n\te.tokens.last.decrement() // for object member name\n\tif !e.options.AllowDuplicateNames {\n\t\tif e.tokens.last.isActiveNamespace() {\n\t\t\te.namespaces.last().removeLast()\n\t\t}\n\t\te.names.clearLast()\n\t\tif prevName != nil {\n\t\t\te.names.copyQuotedBuffer(e.buf) // required by objectNameStack.replaceLastUnquotedName\n\t\t\te.names.replaceLastUnquotedName(*prevName)\n\t\t}\n\t}\n\treturn true\n}\n\n// unwriteOnlyObjectMemberName unwrites the only object member name\n// and returns the unquoted name.\nfunc (e *Encoder) unwriteOnlyObjectMemberName() string {\n\tif last := e.tokens.last; !last.isObject() || last.length() != 1 {\n\t\tpanic(\"BUG: must be called on an object after writing first name\")\n\t}\n\n\t// Unwrite the name and whitespace.\n\tb := trimSuffixString(e.buf)\n\tisVerbatim := bytes.IndexByte(e.buf[len(b):], '\\\\') < 0\n\tname := string(unescapeStringMayCopy(e.buf[len(b):], isVerbatim))\n\te.buf = trimSuffixWhitespace(b)\n\n\t// Undo state changes.\n\te.tokens.last.decrement()\n\tif !e.options.AllowDuplicateNames {\n\t\tif e.tokens.last.isActiveNamespace() {\n\t\t\te.namespaces.last().removeLast()\n\t\t}\n\t\te.names.clearLast()\n\t}\n\treturn name\n}\n\nfunc trimSuffixWhitespace(b []byte) []byte {\n\t// NOTE: The arguments and logic are kept simple to keep this inlineable.\n\tn := len(b) - 1\n\tfor n >= 0 && (b[n] == ' ' || b[n] == '\\t' || b[n] == '\\r' || b[n] == '\\n') {\n\t\tn--\n\t}\n\treturn b[:n+1]\n}\n\nfunc trimSuffixString(b []byte) []byte {\n\t// NOTE: The arguments and logic are kept simple to keep this inlineable.\n\tif len(b) > 0 && b[len(b)-1] == '\"' {\n\t\tb = b[:len(b)-1]\n\t}\n\tfor len(b) >= 2 && !(b[len(b)-1] == '\"' && b[len(b)-2] != '\\\\') {\n\t\tb = b[:len(b)-1] // trim all characters except an unescaped quote\n\t}\n\tif len(b) > 0 && b[len(b)-1] == '\"' {\n\t\tb = b[:len(b)-1]\n\t}\n\treturn b\n}\n\nfunc hasSuffixByte(b []byte, c byte) bool {\n\t// NOTE: The arguments and logic are kept simple to keep this inlineable.\n\treturn len(b) > 0 && b[len(b)-1] == c\n}\n\nfunc trimSuffixByte(b []byte, c byte) []byte {\n\t// NOTE: The arguments and logic are kept simple to keep this inlineable.\n\tif len(b) > 0 && b[len(b)-1] == c {\n\t\treturn b[:len(b)-1]\n\t}\n\treturn b\n}\n\n// WriteToken writes the next token and advances the internal write offset.\n//\n// The provided token kind must be consistent with the JSON grammar.\n// For example, it is an error to provide a number when the encoder\n// is expecting an object name (which is always a string), or\n// to provide an end object delimiter when the encoder is finishing an array.\n// If the provided token is invalid, then it reports a SyntacticError and\n// the internal state remains unchanged.\nfunc (e *Encoder) WriteToken(t Token) error {\n\tk := t.Kind()\n\tb := e.buf // use local variable to avoid mutating e in case of error\n\n\t// Append any delimiters or optional whitespace.\n\tb = e.tokens.mayAppendDelim(b, k)\n\tif e.options.multiline {\n\t\tb = e.appendWhitespace(b, k)\n\t}\n\n\t// Append the token to the output and to the state machine.\n\tvar err error\n\tswitch k {\n\tcase 'n':\n\t\tb = append(b, \"null\"...)\n\t\terr = e.tokens.appendLiteral()\n\tcase 'f':\n\t\tb = append(b, \"false\"...)\n\t\terr = e.tokens.appendLiteral()\n\tcase 't':\n\t\tb = append(b, \"true\"...)\n\t\terr = e.tokens.appendLiteral()\n\tcase '\"':\n\t\tn0 := len(b) // offset before calling t.appendString\n\t\tif b, err = t.appendString(b, !e.options.AllowInvalidUTF8, e.options.preserveRawStrings, e.options.EscapeRune); err != nil {\n\t\t\tbreak\n\t\t}\n\t\tif !e.options.AllowDuplicateNames && e.tokens.last.needObjectName() {\n\t\t\tif !e.tokens.last.isValidNamespace() {\n\t\t\t\terr = errInvalidNamespace\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif e.tokens.last.isActiveNamespace() && !e.namespaces.last().insertQuoted(b[n0:], false) {\n\t\t\t\terr = &SyntacticError{str: \"duplicate name \" + string(b[n0:]) + \" in object\"}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\te.names.replaceLastQuotedOffset(n0) // only replace if insertQuoted succeeds\n\t\t}\n\t\terr = e.tokens.appendString()\n\tcase '0':\n\t\tif b, err = t.appendNumber(b, e.options.canonicalizeNumbers); err != nil {\n\t\t\tbreak\n\t\t}\n\t\terr = e.tokens.appendNumber()\n\tcase '{':\n\t\tb = append(b, '{')\n\t\tif err = e.tokens.pushObject(); err != nil {\n\t\t\tbreak\n\t\t}\n\t\tif !e.options.AllowDuplicateNames {\n\t\t\te.names.push()\n\t\t\te.namespaces.push()\n\t\t}\n\tcase '}':\n\t\tb = append(b, '}')\n\t\tif err = e.tokens.popObject(); err != nil {\n\t\t\tbreak\n\t\t}\n\t\tif !e.options.AllowDuplicateNames {\n\t\t\te.names.pop()\n\t\t\te.namespaces.pop()\n\t\t}\n\tcase '[':\n\t\tb = append(b, '[')\n\t\terr = e.tokens.pushArray()\n\tcase ']':\n\t\tb = append(b, ']')\n\t\terr = e.tokens.popArray()\n\tdefault:\n\t\treturn &SyntacticError{str: \"invalid json.Token\"}\n\t}\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Finish off the buffer and store it back into e.\n\te.buf = b\n\tif e.needFlush() {\n\t\treturn e.flush()\n\t}\n\treturn nil\n}\n\nconst (\n\trawIntNumber  = -1\n\trawUintNumber = -2\n)\n\n// writeNumber is specialized version of WriteToken, but optimized for numbers.\n// As a special-case, if bits is -1 or -2, it will treat v as\n// the raw-encoded bits of an int64 or uint64, respectively.\n// It is only called from arshal_default.go.\nfunc (e *Encoder) writeNumber(v float64, bits int, quote bool) error {\n\tb := e.buf // use local variable to avoid mutating e in case of error\n\n\t// Append any delimiters or optional whitespace.\n\tb = e.tokens.mayAppendDelim(b, '0')\n\tif e.options.multiline {\n\t\tb = e.appendWhitespace(b, '0')\n\t}\n\n\tif quote {\n\t\t// Append the value to the output.\n\t\tn0 := len(b) // offset before appending the number\n\t\tb = append(b, '\"')\n\t\tswitch bits {\n\t\tcase rawIntNumber:\n\t\t\tb = strconv.AppendInt(b, int64(math.Float64bits(v)), 10)\n\t\tcase rawUintNumber:\n\t\t\tb = strconv.AppendUint(b, uint64(math.Float64bits(v)), 10)\n\t\tdefault:\n\t\t\tb = appendNumber(b, v, bits)\n\t\t}\n\t\tb = append(b, '\"')\n\n\t\t// Escape the string if necessary.\n\t\tif e.options.EscapeRune != nil {\n\t\t\tb2 := append(e.unusedCache, b[n0+len(`\"`):len(b)-len(`\"`)]...)\n\t\t\tb, _ = appendString(b[:n0], string(b2), false, e.options.EscapeRune)\n\t\t\te.unusedCache = b2[:0]\n\t\t}\n\n\t\t// Update the state machine.\n\t\tif !e.options.AllowDuplicateNames && e.tokens.last.needObjectName() {\n\t\t\tif !e.tokens.last.isValidNamespace() {\n\t\t\t\treturn errInvalidNamespace\n\t\t\t}\n\t\t\tif e.tokens.last.isActiveNamespace() && !e.namespaces.last().insertQuoted(b[n0:], false) {\n\t\t\t\treturn &SyntacticError{str: \"duplicate name \" + string(b[n0:]) + \" in object\"}\n\t\t\t}\n\t\t\te.names.replaceLastQuotedOffset(n0) // only replace if insertQuoted succeeds\n\t\t}\n\t\tif err := e.tokens.appendString(); err != nil {\n\t\t\treturn err\n\t\t}\n\t} else {\n\t\tswitch bits {\n\t\tcase rawIntNumber:\n\t\t\tb = strconv.AppendInt(b, int64(math.Float64bits(v)), 10)\n\t\tcase rawUintNumber:\n\t\t\tb = strconv.AppendUint(b, uint64(math.Float64bits(v)), 10)\n\t\tdefault:\n\t\t\tb = appendNumber(b, v, bits)\n\t\t}\n\t\tif err := e.tokens.appendNumber(); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\t// Finish off the buffer and store it back into e.\n\te.buf = b\n\tif e.needFlush() {\n\t\treturn e.flush()\n\t}\n\treturn nil\n}\n\n// WriteValue writes the next raw value and advances the internal write offset.\n// The Encoder does not simply copy the provided value verbatim, but\n// parses it to ensure that it is syntactically valid and reformats it\n// according to how the Encoder is configured to format whitespace and strings.\n//\n// The provided value kind must be consistent with the JSON grammar\n// (see examples on Encoder.WriteToken). If the provided value is invalid,\n// then it reports a SyntacticError and the internal state remains unchanged.\nfunc (e *Encoder) WriteValue(v RawValue) error {\n\te.maxValue |= len(v) // bitwise OR is a fast approximation of max\n\n\tk := v.Kind()\n\tb := e.buf // use local variable to avoid mutating e in case of error\n\n\t// Append any delimiters or optional whitespace.\n\tb = e.tokens.mayAppendDelim(b, k)\n\tif e.options.multiline {\n\t\tb = e.appendWhitespace(b, k)\n\t}\n\n\t// Append the value the output.\n\tvar err error\n\tv = v[consumeWhitespace(v):]\n\tn0 := len(b) // offset before calling e.reformatValue\n\tb, v, err = e.reformatValue(b, v, e.tokens.depth())\n\tif err != nil {\n\t\treturn err\n\t}\n\tv = v[consumeWhitespace(v):]\n\tif len(v) > 0 {\n\t\treturn newInvalidCharacterError(v[0:], \"after top-level value\")\n\t}\n\n\t// Append the kind to the state machine.\n\tswitch k {\n\tcase 'n', 'f', 't':\n\t\terr = e.tokens.appendLiteral()\n\tcase '\"':\n\t\tif !e.options.AllowDuplicateNames && e.tokens.last.needObjectName() {\n\t\t\tif !e.tokens.last.isValidNamespace() {\n\t\t\t\terr = errInvalidNamespace\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif e.tokens.last.isActiveNamespace() && !e.namespaces.last().insertQuoted(b[n0:], false) {\n\t\t\t\terr = &SyntacticError{str: \"duplicate name \" + string(b[n0:]) + \" in object\"}\n\t\t\t\tbreak\n\t\t\t}\n\t\t\te.names.replaceLastQuotedOffset(n0) // only replace if insertQuoted succeeds\n\t\t}\n\t\terr = e.tokens.appendString()\n\tcase '0':\n\t\terr = e.tokens.appendNumber()\n\tcase '{':\n\t\tif err = e.tokens.pushObject(); err != nil {\n\t\t\tbreak\n\t\t}\n\t\tif err = e.tokens.popObject(); err != nil {\n\t\t\tpanic(\"BUG: popObject should never fail immediately after pushObject: \" + err.Error())\n\t\t}\n\tcase '[':\n\t\tif err = e.tokens.pushArray(); err != nil {\n\t\t\tbreak\n\t\t}\n\t\tif err = e.tokens.popArray(); err != nil {\n\t\t\tpanic(\"BUG: popArray should never fail immediately after pushArray: \" + err.Error())\n\t\t}\n\t}\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Finish off the buffer and store it back into e.\n\te.buf = b\n\tif e.needFlush() {\n\t\treturn e.flush()\n\t}\n\treturn nil\n}\n\n// appendWhitespace appends whitespace that immediately precedes the next token.\nfunc (e *Encoder) appendWhitespace(b []byte, next Kind) []byte {\n\tif e.tokens.needDelim(next) == ':' {\n\t\treturn append(b, ' ')\n\t} else {\n\t\treturn e.appendIndent(b, e.tokens.needIndent(next))\n\t}\n}\n\n// appendIndent appends the appropriate number of indentation characters\n// for the current nested level, n.\nfunc (e *Encoder) appendIndent(b []byte, n int) []byte {\n\tif n == 0 {\n\t\treturn b\n\t}\n\tb = append(b, '\\n')\n\tb = append(b, e.options.IndentPrefix...)\n\tfor ; n > 1; n-- {\n\t\tb = append(b, e.options.Indent...)\n\t}\n\treturn b\n}\n\n// reformatValue parses a JSON value from the start of src and\n// appends it to the end of dst, reformatting whitespace and strings as needed.\n// It returns the updated versions of dst and src.\nfunc (e *Encoder) reformatValue(dst []byte, src RawValue, depth int) ([]byte, RawValue, error) {\n\t// TODO: Should this update valueFlags as input?\n\tif len(src) == 0 {\n\t\treturn dst, src, io.ErrUnexpectedEOF\n\t}\n\tvar n int\n\tvar err error\n\tswitch k := Kind(src[0]).normalize(); k {\n\tcase 'n':\n\t\tif n = consumeNull(src); n == 0 {\n\t\t\tn, err = consumeLiteral(src, \"null\")\n\t\t}\n\tcase 'f':\n\t\tif n = consumeFalse(src); n == 0 {\n\t\t\tn, err = consumeLiteral(src, \"false\")\n\t\t}\n\tcase 't':\n\t\tif n = consumeTrue(src); n == 0 {\n\t\t\tn, err = consumeLiteral(src, \"true\")\n\t\t}\n\tcase '\"':\n\t\tif n := consumeSimpleString(src); n > 0 && e.options.EscapeRune == nil {\n\t\t\tdst, src = append(dst, src[:n]...), src[n:] // copy simple strings verbatim\n\t\t\treturn dst, src, nil\n\t\t}\n\t\treturn reformatString(dst, src, !e.options.AllowInvalidUTF8, e.options.preserveRawStrings, e.options.EscapeRune)\n\tcase '0':\n\t\tif n := consumeSimpleNumber(src); n > 0 && !e.options.canonicalizeNumbers {\n\t\t\tdst, src = append(dst, src[:n]...), src[n:] // copy simple numbers verbatim\n\t\t\treturn dst, src, nil\n\t\t}\n\t\treturn reformatNumber(dst, src, e.options.canonicalizeNumbers)\n\tcase '{':\n\t\treturn e.reformatObject(dst, src, depth)\n\tcase '[':\n\t\treturn e.reformatArray(dst, src, depth)\n\tdefault:\n\t\treturn dst, src, newInvalidCharacterError(src, \"at start of value\")\n\t}\n\tif err != nil {\n\t\treturn dst, src, err\n\t}\n\tdst, src = append(dst, src[:n]...), src[n:]\n\treturn dst, src, nil\n}\n\n// reformatObject parses a JSON object from the start of src and\n// appends it to the end of src, reformatting whitespace and strings as needed.\n// It returns the updated versions of dst and src.\nfunc (e *Encoder) reformatObject(dst []byte, src RawValue, depth int) ([]byte, RawValue, error) {\n\t// Append object start.\n\tif src[0] != '{' {\n\t\tpanic(\"BUG: reformatObject must be called with a buffer that starts with '{'\")\n\t}\n\tdst, src = append(dst, '{'), src[1:]\n\n\t// Append (possible) object end.\n\tsrc = src[consumeWhitespace(src):]\n\tif len(src) == 0 {\n\t\treturn dst, src, io.ErrUnexpectedEOF\n\t}\n\tif src[0] == '}' {\n\t\tdst, src = append(dst, '}'), src[1:]\n\t\treturn dst, src, nil\n\t}\n\n\tvar err error\n\tvar names *objectNamespace\n\tif !e.options.AllowDuplicateNames {\n\t\te.namespaces.push()\n\t\tdefer e.namespaces.pop()\n\t\tnames = e.namespaces.last()\n\t}\n\tdepth++\n\tfor {\n\t\t// Append optional newline and indentation.\n\t\tif e.options.multiline {\n\t\t\tdst = e.appendIndent(dst, depth)\n\t\t}\n\n\t\t// Append object name.\n\t\tsrc = src[consumeWhitespace(src):]\n\t\tif len(src) == 0 {\n\t\t\treturn dst, src, io.ErrUnexpectedEOF\n\t\t}\n\t\tn0 := len(dst) // offset before calling reformatString\n\t\tn := consumeSimpleString(src)\n\t\tif n > 0 && e.options.EscapeRune == nil {\n\t\t\tdst, src = append(dst, src[:n]...), src[n:] // copy simple strings verbatim\n\t\t} else {\n\t\t\tdst, src, err = reformatString(dst, src, !e.options.AllowInvalidUTF8, e.options.preserveRawStrings, e.options.EscapeRune)\n\t\t}\n\t\tif err != nil {\n\t\t\treturn dst, src, err\n\t\t}\n\t\tif !e.options.AllowDuplicateNames && !names.insertQuoted(dst[n0:], false) {\n\t\t\treturn dst, src, &SyntacticError{str: \"duplicate name \" + string(dst[n0:]) + \" in object\"}\n\t\t}\n\n\t\t// Append colon.\n\t\tsrc = src[consumeWhitespace(src):]\n\t\tif len(src) == 0 {\n\t\t\treturn dst, src, io.ErrUnexpectedEOF\n\t\t}\n\t\tif src[0] != ':' {\n\t\t\treturn dst, src, newInvalidCharacterError(src, \"after object name (expecting ':')\")\n\t\t}\n\t\tdst, src = append(dst, ':'), src[1:]\n\t\tif e.options.multiline {\n\t\t\tdst = append(dst, ' ')\n\t\t}\n\n\t\t// Append object value.\n\t\tsrc = src[consumeWhitespace(src):]\n\t\tif len(src) == 0 {\n\t\t\treturn dst, src, io.ErrUnexpectedEOF\n\t\t}\n\t\tdst, src, err = e.reformatValue(dst, src, depth)\n\t\tif err != nil {\n\t\t\treturn dst, src, err\n\t\t}\n\n\t\t// Append comma or object end.\n\t\tsrc = src[consumeWhitespace(src):]\n\t\tif len(src) == 0 {\n\t\t\treturn dst, src, io.ErrUnexpectedEOF\n\t\t}\n\t\tswitch src[0] {\n\t\tcase ',':\n\t\t\tdst, src = append(dst, ','), src[1:]\n\t\t\tcontinue\n\t\tcase '}':\n\t\t\tif e.options.multiline {\n\t\t\t\tdst = e.appendIndent(dst, depth-1)\n\t\t\t}\n\t\t\tdst, src = append(dst, '}'), src[1:]\n\t\t\treturn dst, src, nil\n\t\tdefault:\n\t\t\treturn dst, src, newInvalidCharacterError(src, \"after object value (expecting ',' or '}')\")\n\t\t}\n\t}\n}\n\n// reformatArray parses a JSON array from the start of src and\n// appends it to the end of dst, reformatting whitespace and strings as needed.\n// It returns the updated versions of dst and src.\nfunc (e *Encoder) reformatArray(dst []byte, src RawValue, depth int) ([]byte, RawValue, error) {\n\t// Append array start.\n\tif src[0] != '[' {\n\t\tpanic(\"BUG: reformatArray must be called with a buffer that starts with '['\")\n\t}\n\tdst, src = append(dst, '['), src[1:]\n\n\t// Append (possible) array end.\n\tsrc = src[consumeWhitespace(src):]\n\tif len(src) == 0 {\n\t\treturn dst, src, io.ErrUnexpectedEOF\n\t}\n\tif src[0] == ']' {\n\t\tdst, src = append(dst, ']'), src[1:]\n\t\treturn dst, src, nil\n\t}\n\n\tvar err error\n\tdepth++\n\tfor {\n\t\t// Append optional newline and indentation.\n\t\tif e.options.multiline {\n\t\t\tdst = e.appendIndent(dst, depth)\n\t\t}\n\n\t\t// Append array value.\n\t\tsrc = src[consumeWhitespace(src):]\n\t\tif len(src) == 0 {\n\t\t\treturn dst, src, io.ErrUnexpectedEOF\n\t\t}\n\t\tdst, src, err = e.reformatValue(dst, src, depth)\n\t\tif err != nil {\n\t\t\treturn dst, src, err\n\t\t}\n\n\t\t// Append comma or array end.\n\t\tsrc = src[consumeWhitespace(src):]\n\t\tif len(src) == 0 {\n\t\t\treturn dst, src, io.ErrUnexpectedEOF\n\t\t}\n\t\tswitch src[0] {\n\t\tcase ',':\n\t\t\tdst, src = append(dst, ','), src[1:]\n\t\t\tcontinue\n\t\tcase ']':\n\t\t\tif e.options.multiline {\n\t\t\t\tdst = e.appendIndent(dst, depth-1)\n\t\t\t}\n\t\t\tdst, src = append(dst, ']'), src[1:]\n\t\t\treturn dst, src, nil\n\t\tdefault:\n\t\t\treturn dst, src, newInvalidCharacterError(src, \"after array value (expecting ',' or ']')\")\n\t\t}\n\t}\n}\n\n// OutputOffset returns the current output byte offset. It gives the location\n// of the next byte immediately after the most recently written token or value.\n// The number of bytes actually written to the underlying io.Writer may be less\n// than this offset due to internal buffering effects.\nfunc (e *Encoder) OutputOffset() int64 {\n\treturn e.previousOffsetEnd()\n}\n\n// UnusedBuffer returns a zero-length buffer with a possible non-zero capacity.\n// This buffer is intended to be used to populate a RawValue\n// being passed to an immediately succeeding WriteValue call.\n//\n// Example usage:\n//\n//\tb := d.UnusedBuffer()\n//\tb = append(b, '\"')\n//\tb = appendString(b, v) // append the string formatting of v\n//\tb = append(b, '\"')\n//\t... := d.WriteValue(b)\n//\n// It is the user's responsibility to ensure that the value is valid JSON.\nfunc (e *Encoder) UnusedBuffer() []byte {\n\t// NOTE: We don't return e.buf[len(e.buf):cap(e.buf)] since WriteValue would\n\t// need to take special care to avoid mangling the data while reformatting.\n\t// WriteValue can't easily identify whether the input RawValue aliases e.buf\n\t// without using unsafe.Pointer. Thus, we just return a different buffer.\n\t// Should this ever alias e.buf, we need to consider how it operates with\n\t// the specialized performance optimization for bytes.Buffer.\n\tn := 1 << bits.Len(uint(e.maxValue|63)) // fast approximation for max length\n\tif cap(e.unusedCache) < n {\n\t\te.unusedCache = make([]byte, 0, n)\n\t}\n\treturn e.unusedCache\n}\n\n// StackDepth returns the depth of the state machine for written JSON data.\n// Each level on the stack represents a nested JSON object or array.\n// It is incremented whenever an ObjectStart or ArrayStart token is encountered\n// and decremented whenever an ObjectEnd or ArrayEnd token is encountered.\n// The depth is zero-indexed, where zero represents the top-level JSON value.\nfunc (e *Encoder) StackDepth() int {\n\t// NOTE: Keep in sync with Decoder.StackDepth.\n\treturn e.tokens.depth() - 1\n}\n\n// StackIndex returns information about the specified stack level.\n// It must be a number between 0 and StackDepth, inclusive.\n// For each level, it reports the kind:\n//\n//   - 0 for a level of zero,\n//   - '{' for a level representing a JSON object, and\n//   - '[' for a level representing a JSON array.\n//\n// It also reports the length of that JSON object or array.\n// Each name and value in a JSON object is counted separately,\n// so the effective number of members would be half the length.\n// A complete JSON object must have an even length.\nfunc (e *Encoder) StackIndex(i int) (Kind, int) {\n\t// NOTE: Keep in sync with Decoder.StackIndex.\n\tswitch s := e.tokens.index(i); {\n\tcase i > 0 && s.isObject():\n\t\treturn '{', s.length()\n\tcase i > 0 && s.isArray():\n\t\treturn '[', s.length()\n\tdefault:\n\t\treturn 0, s.length()\n\t}\n}\n\n// StackPointer returns a JSON Pointer (RFC 6901) to the most recently written value.\n// Object names are only present if AllowDuplicateNames is false, otherwise\n// object members are represented using their index within the object.\nfunc (e *Encoder) StackPointer() string {\n\te.names.copyQuotedBuffer(e.buf)\n\treturn string(e.appendStackPointer(nil))\n}\n\n// appendString appends src to dst as a JSON string per RFC 7159, section 7.\n//\n// If validateUTF8 is specified, this rejects input that contains invalid UTF-8\n// otherwise invalid bytes are replaced with the Unicode replacement character.\n// If escapeRune is provided, it specifies which runes to escape using\n// hexadecimal sequences. If nil, the shortest representable form is used,\n// which is also the canonical form for strings (RFC 8785, section 3.2.2.2).\n//\n// Note that this API allows full control over the formatting of strings\n// except for whether a forward solidus '/' may be formatted as '\\/' and\n// the casing of hexadecimal Unicode escape sequences.\nfunc appendString(dst []byte, src string, validateUTF8 bool, escapeRune func(rune) bool) ([]byte, error) {\n\tappendEscapedASCII := func(dst []byte, c byte) []byte {\n\t\tswitch c {\n\t\tcase '\"', '\\\\':\n\t\t\tdst = append(dst, '\\\\', c)\n\t\tcase '\\b':\n\t\t\tdst = append(dst, \"\\\\b\"...)\n\t\tcase '\\f':\n\t\t\tdst = append(dst, \"\\\\f\"...)\n\t\tcase '\\n':\n\t\t\tdst = append(dst, \"\\\\n\"...)\n\t\tcase '\\r':\n\t\t\tdst = append(dst, \"\\\\r\"...)\n\t\tcase '\\t':\n\t\t\tdst = append(dst, \"\\\\t\"...)\n\t\tdefault:\n\t\t\tdst = append(dst, \"\\\\u\"...)\n\t\t\tdst = appendHexUint16(dst, uint16(c))\n\t\t}\n\t\treturn dst\n\t}\n\tappendEscapedUnicode := func(dst []byte, r rune) []byte {\n\t\tif r1, r2 := utf16.EncodeRune(r); r1 != '\\ufffd' && r2 != '\\ufffd' {\n\t\t\tdst = append(dst, \"\\\\u\"...)\n\t\t\tdst = appendHexUint16(dst, uint16(r1))\n\t\t\tdst = append(dst, \"\\\\u\"...)\n\t\t\tdst = appendHexUint16(dst, uint16(r2))\n\t\t} else {\n\t\t\tdst = append(dst, \"\\\\u\"...)\n\t\t\tdst = appendHexUint16(dst, uint16(r))\n\t\t}\n\t\treturn dst\n\t}\n\n\t// Optimize for when escapeRune is nil.\n\tif escapeRune == nil {\n\t\tvar i, n int\n\t\tdst = append(dst, '\"')\n\t\tfor uint(len(src)) > uint(n) {\n\t\t\t// Handle single-byte ASCII.\n\t\t\tif c := src[n]; c < utf8.RuneSelf {\n\t\t\t\tn++\n\t\t\t\tif c < ' ' || c == '\"' || c == '\\\\' {\n\t\t\t\t\tdst = append(dst, src[i:n-1]...)\n\t\t\t\t\tdst = appendEscapedASCII(dst, c)\n\t\t\t\t\ti = n\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// Handle multi-byte Unicode.\n\t\t\t_, rn := utf8.DecodeRuneInString(src[n:])\n\t\t\tn += rn\n\t\t\tif rn == 1 { // must be utf8.RuneError since we already checked for single-byte ASCII\n\t\t\t\tdst = append(dst, src[i:n-rn]...)\n\t\t\t\tif validateUTF8 {\n\t\t\t\t\treturn dst, &SyntacticError{str: \"invalid UTF-8 within string\"}\n\t\t\t\t}\n\t\t\t\tdst = append(dst, \"\\ufffd\"...)\n\t\t\t\ti = n\n\t\t\t}\n\t\t}\n\t\tdst = append(dst, src[i:n]...)\n\t\tdst = append(dst, '\"')\n\t\treturn dst, nil\n\t}\n\n\t// Slower implementation for when escapeRune is non-nil.\n\tvar i, n int\n\tdst = append(dst, '\"')\n\tfor uint(len(src)) > uint(n) {\n\t\tswitch r, rn := utf8.DecodeRuneInString(src[n:]); {\n\t\tcase r == utf8.RuneError && rn == 1:\n\t\t\tdst = append(dst, src[i:n]...)\n\t\t\tif validateUTF8 {\n\t\t\t\treturn dst, &SyntacticError{str: \"invalid UTF-8 within string\"}\n\t\t\t}\n\t\t\tif escapeRune('\\ufffd') {\n\t\t\t\tdst = append(dst, `\\ufffd`...)\n\t\t\t} else {\n\t\t\t\tdst = append(dst, \"\\ufffd\"...)\n\t\t\t}\n\t\t\tn += rn\n\t\t\ti = n\n\t\tcase escapeRune(r):\n\t\t\tdst = append(dst, src[i:n]...)\n\t\t\tdst = appendEscapedUnicode(dst, r)\n\t\t\tn += rn\n\t\t\ti = n\n\t\tcase r < ' ' || r == '\"' || r == '\\\\':\n\t\t\tdst = append(dst, src[i:n]...)\n\t\t\tdst = appendEscapedASCII(dst, byte(r))\n\t\t\tn += rn\n\t\t\ti = n\n\t\tdefault:\n\t\t\tn += rn\n\t\t}\n\t}\n\tdst = append(dst, src[i:n]...)\n\tdst = append(dst, '\"')\n\treturn dst, nil\n}\n\n// reformatString consumes a JSON string from src and appends it to dst,\n// reformatting it if necessary for the given escapeRune parameter.\n// It returns the appended output and the remainder of the input.\nfunc reformatString(dst, src []byte, validateUTF8, preserveRaw bool, escapeRune func(rune) bool) ([]byte, []byte, error) {\n\t// TODO: Should this update valueFlags as input?\n\tvar flags valueFlags\n\tn, err := consumeString(&flags, src, validateUTF8)\n\tif err != nil {\n\t\treturn dst, src[n:], err\n\t}\n\tif preserveRaw || (escapeRune == nil && flags.isCanonical()) {\n\t\tdst = append(dst, src[:n]...) // copy the string verbatim\n\t\treturn dst, src[n:], nil\n\t}\n\n\t// TODO: Implement a direct, raw-to-raw reformat for strings.\n\t// If the escapeRune option would have resulted in no changes to the output,\n\t// it would be faster to simply append src to dst without going through\n\t// an intermediary representation in a separate buffer.\n\tb, _ := unescapeString(make([]byte, 0, n), src[:n])\n\tdst, _ = appendString(dst, string(b), validateUTF8, escapeRune)\n\treturn dst, src[n:], nil\n}\n\n// appendNumber appends src to dst as a JSON number per RFC 7159, section 6.\n// It formats numbers similar to the ES6 number-to-string conversion.\n// See https://go.dev/issue/14135.\n//\n// The output is identical to ECMA-262, 6th edition, section 7.1.12.1 and with\n// RFC 8785, section 3.2.2.3 for 64-bit floating-point numbers except for -0,\n// which is formatted as -0 instead of just 0.\n//\n// For 32-bit floating-point numbers,\n// the output is a 32-bit equivalent of the algorithm.\n// Note that ECMA-262 specifies no algorithm for 32-bit numbers.\nfunc appendNumber(dst []byte, src float64, bits int) []byte {\n\tif bits == 32 {\n\t\tsrc = float64(float32(src))\n\t}\n\n\tabs := math.Abs(src)\n\tfmt := byte('f')\n\tif abs != 0 {\n\t\tif bits == 64 && (float64(abs) < 1e-6 || float64(abs) >= 1e21) ||\n\t\t\tbits == 32 && (float32(abs) < 1e-6 || float32(abs) >= 1e21) {\n\t\t\tfmt = 'e'\n\t\t}\n\t}\n\tdst = strconv.AppendFloat(dst, src, fmt, -1, bits)\n\tif fmt == 'e' {\n\t\t// Clean up e-09 to e-9.\n\t\tn := len(dst)\n\t\tif n >= 4 && dst[n-4] == 'e' && dst[n-3] == '-' && dst[n-2] == '0' {\n\t\t\tdst[n-2] = dst[n-1]\n\t\t\tdst = dst[:n-1]\n\t\t}\n\t}\n\treturn dst\n}\n\n// reformatNumber consumes a JSON string from src and appends it to dst,\n// canonicalizing it if specified.\n// It returns the appended output and the remainder of the input.\nfunc reformatNumber(dst, src []byte, canonicalize bool) ([]byte, []byte, error) {\n\tn, err := consumeNumber(src)\n\tif err != nil {\n\t\treturn dst, src[n:], err\n\t}\n\tif !canonicalize {\n\t\tdst = append(dst, src[:n]...) // copy the number verbatim\n\t\treturn dst, src[n:], nil\n\t}\n\n\t// Canonicalize the number per RFC 8785, section 3.2.2.3.\n\t// As an optimization, we can copy integer numbers below 2⁵³ verbatim.\n\tconst maxExactIntegerDigits = 16 // len(strconv.AppendUint(nil, 1<<53, 10))\n\tif n < maxExactIntegerDigits && consumeSimpleNumber(src[:n]) == n {\n\t\tdst = append(dst, src[:n]...) // copy the number verbatim\n\t\treturn dst, src[n:], nil\n\t}\n\tfv, _ := strconv.ParseFloat(string(src[:n]), 64)\n\tswitch {\n\tcase fv == 0:\n\t\tfv = 0 // normalize negative zero as just zero\n\tcase math.IsInf(fv, +1):\n\t\tfv = +math.MaxFloat64\n\tcase math.IsInf(fv, -1):\n\t\tfv = -math.MaxFloat64\n\t}\n\treturn appendNumber(dst, fv, 64), src[n:], nil\n}\n\n// appendHexUint16 appends src to dst as a 4-byte hexadecimal number.\nfunc appendHexUint16(dst []byte, src uint16) []byte {\n\tdst = append(dst, \"0000\"[1+(bits.Len16(src)-1)/4:]...)\n\tdst = strconv.AppendUint(dst, uint64(src), 16)\n\treturn dst\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/errors.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"errors\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\t\"unicode/utf8\"\n)\n\nconst errorPrefix = \"json: \"\n\n// Error matches errors returned by this package according to errors.Is.\nconst Error = jsonError(\"json error\")\n\ntype jsonError string\n\nfunc (e jsonError) Error() string {\n\treturn string(e)\n}\nfunc (e jsonError) Is(target error) bool {\n\treturn e == target || target == Error\n}\n\ntype ioError struct {\n\taction string // either \"read\" or \"write\"\n\terr    error\n}\n\nfunc (e *ioError) Error() string {\n\treturn errorPrefix + e.action + \" error: \" + e.err.Error()\n}\nfunc (e *ioError) Unwrap() error {\n\treturn e.err\n}\nfunc (e *ioError) Is(target error) bool {\n\treturn e == target || target == Error || errors.Is(e.err, target)\n}\n\n// SemanticError describes an error determining the meaning\n// of JSON data as Go data or vice-versa.\n//\n// The contents of this error as produced by this package may change over time.\ntype SemanticError struct {\n\trequireKeyedLiterals\n\tnonComparable\n\n\taction string // either \"marshal\" or \"unmarshal\"\n\n\t// ByteOffset indicates that an error occurred after this byte offset.\n\tByteOffset int64\n\t// JSONPointer indicates that an error occurred within this JSON value\n\t// as indicated using the JSON Pointer notation (see RFC 6901).\n\tJSONPointer string\n\n\t// JSONKind is the JSON kind that could not be handled.\n\tJSONKind Kind // may be zero if unknown\n\t// GoType is the Go type that could not be handled.\n\tGoType reflect.Type // may be nil if unknown\n\n\t// Err is the underlying error.\n\tErr error // may be nil\n}\n\nfunc (e *SemanticError) Error() string {\n\tvar sb strings.Builder\n\tsb.WriteString(errorPrefix)\n\n\t// Hyrum-proof the error message by deliberately switching between\n\t// two equivalent renderings of the same error message.\n\t// The randomization is tied to the Hyrum-proofing already applied\n\t// on map iteration in Go.\n\tfor phrase := range map[string]struct{}{\"cannot\": {}, \"unable to\": {}} {\n\t\tsb.WriteString(phrase)\n\t\tbreak // use whichever phrase we get in the first iteration\n\t}\n\n\t// Format action.\n\tvar preposition string\n\tswitch e.action {\n\tcase \"marshal\":\n\t\tsb.WriteString(\" marshal\")\n\t\tpreposition = \" from\"\n\tcase \"unmarshal\":\n\t\tsb.WriteString(\" unmarshal\")\n\t\tpreposition = \" into\"\n\tdefault:\n\t\tsb.WriteString(\" handle\")\n\t\tpreposition = \" with\"\n\t}\n\n\t// Format JSON kind.\n\tvar omitPreposition bool\n\tswitch e.JSONKind {\n\tcase 'n':\n\t\tsb.WriteString(\" JSON null\")\n\tcase 'f', 't':\n\t\tsb.WriteString(\" JSON boolean\")\n\tcase '\"':\n\t\tsb.WriteString(\" JSON string\")\n\tcase '0':\n\t\tsb.WriteString(\" JSON number\")\n\tcase '{', '}':\n\t\tsb.WriteString(\" JSON object\")\n\tcase '[', ']':\n\t\tsb.WriteString(\" JSON array\")\n\tdefault:\n\t\tomitPreposition = true\n\t}\n\n\t// Format Go type.\n\tif e.GoType != nil {\n\t\tif !omitPreposition {\n\t\t\tsb.WriteString(preposition)\n\t\t}\n\t\tsb.WriteString(\" Go value of type \")\n\t\tsb.WriteString(e.GoType.String())\n\t}\n\n\t// Format where.\n\tswitch {\n\tcase e.JSONPointer != \"\":\n\t\tsb.WriteString(\" within JSON value at \")\n\t\tsb.WriteString(strconv.Quote(e.JSONPointer))\n\tcase e.ByteOffset > 0:\n\t\tsb.WriteString(\" after byte offset \")\n\t\tsb.WriteString(strconv.FormatInt(e.ByteOffset, 10))\n\t}\n\n\t// Format underlying error.\n\tif e.Err != nil {\n\t\tsb.WriteString(\": \")\n\t\tsb.WriteString(e.Err.Error())\n\t}\n\n\treturn sb.String()\n}\nfunc (e *SemanticError) Is(target error) bool {\n\treturn e == target || target == Error || errors.Is(e.Err, target)\n}\nfunc (e *SemanticError) Unwrap() error {\n\treturn e.Err\n}\n\n// SyntacticError is a description of a syntactic error that occurred when\n// encoding or decoding JSON according to the grammar.\n//\n// The contents of this error as produced by this package may change over time.\ntype SyntacticError struct {\n\trequireKeyedLiterals\n\tnonComparable\n\n\t// ByteOffset indicates that an error occurred after this byte offset.\n\tByteOffset int64\n\tstr        string\n}\n\nfunc (e *SyntacticError) Error() string {\n\treturn errorPrefix + e.str\n}\nfunc (e *SyntacticError) Is(target error) bool {\n\treturn e == target || target == Error\n}\nfunc (e *SyntacticError) withOffset(pos int64) error {\n\treturn &SyntacticError{ByteOffset: pos, str: e.str}\n}\n\nfunc newInvalidCharacterError(prefix []byte, where string) *SyntacticError {\n\twhat := quoteRune(prefix)\n\treturn &SyntacticError{str: \"invalid character \" + what + \" \" + where}\n}\n\nfunc quoteRune(b []byte) string {\n\tr, n := utf8.DecodeRune(b)\n\tif r == utf8.RuneError && n == 1 {\n\t\treturn `'\\x` + strconv.FormatUint(uint64(b[0]), 16) + `'`\n\t}\n\treturn strconv.QuoteRune(r)\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/fields.go",
    "content": "// Copyright 2021 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"unicode\"\n\t\"unicode/utf8\"\n)\n\nvar errIgnoredField = errors.New(\"ignored field\")\n\ntype isZeroer interface {\n\tIsZero() bool\n}\n\nvar isZeroerType = reflect.TypeOf((*isZeroer)(nil)).Elem()\n\ntype structFields struct {\n\tflattened       []structField // listed in depth-first ordering\n\tbyActualName    map[string]*structField\n\tbyFoldedName    map[string][]*structField\n\tinlinedFallback *structField\n}\n\ntype structField struct {\n\tid      int   // unique numeric ID in breadth-first ordering\n\tindex   []int // index into a struct according to reflect.Type.FieldByIndex\n\ttyp     reflect.Type\n\tfncs    *arshaler\n\tisZero  func(addressableValue) bool\n\tisEmpty func(addressableValue) bool\n\tfieldOptions\n}\n\nfunc makeStructFields(root reflect.Type) (structFields, *SemanticError) {\n\tvar fs structFields\n\tfs.byActualName = make(map[string]*structField, root.NumField())\n\tfs.byFoldedName = make(map[string][]*structField, root.NumField())\n\n\t// ambiguous is a sentinel value to indicate that at least two fields\n\t// at the same depth have the same name, and thus cancel each other out.\n\t// This follows the same rules as selecting a field on embedded structs\n\t// where the shallowest field takes precedence. If more than one field\n\t// exists at the shallowest depth, then the selection is illegal.\n\t// See https://go.dev/ref/spec#Selectors.\n\tambiguous := new(structField)\n\n\t// Setup a queue for a breath-first search.\n\tvar queueIndex int\n\ttype queueEntry struct {\n\t\ttyp           reflect.Type\n\t\tindex         []int\n\t\tvisitChildren bool // whether to recursively visit inlined field in this struct\n\t}\n\tqueue := []queueEntry{{root, nil, true}}\n\tseen := map[reflect.Type]bool{root: true}\n\n\t// Perform a breadth-first search over all reachable fields.\n\t// This ensures that len(f.index) will be monotonically increasing.\n\tfor queueIndex < len(queue) {\n\t\tqe := queue[queueIndex]\n\t\tqueueIndex++\n\n\t\tt := qe.typ\n\t\tinlinedFallbackIndex := -1         // index of last inlined fallback field in current struct\n\t\tnamesIndex := make(map[string]int) // index of each field with a given JSON object name in current struct\n\t\tvar hasAnyJSONTag bool             // whether any Go struct field has a `json` tag\n\t\tvar hasAnyJSONField bool           // whether any JSON serializable fields exist in current struct\n\t\tfor i := 0; i < t.NumField(); i++ {\n\t\t\tsf := t.Field(i)\n\t\t\t_, hasTag := sf.Tag.Lookup(\"json\")\n\t\t\thasAnyJSONTag = hasAnyJSONTag || hasTag\n\t\t\toptions, err := parseFieldOptions(sf)\n\t\t\tif err != nil {\n\t\t\t\tif err == errIgnoredField {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\treturn structFields{}, &SemanticError{GoType: t, Err: err}\n\t\t\t}\n\t\t\thasAnyJSONField = true\n\t\t\tf := structField{\n\t\t\t\t// Allocate a new slice (len=N+1) to hold both\n\t\t\t\t// the parent index (len=N) and the current index (len=1).\n\t\t\t\t// Do this to avoid clobbering the memory of the parent index.\n\t\t\t\tindex:        append(append(make([]int, 0, len(qe.index)+1), qe.index...), i),\n\t\t\t\ttyp:          sf.Type,\n\t\t\t\tfieldOptions: options,\n\t\t\t}\n\t\t\tif sf.Anonymous && !f.hasName {\n\t\t\t\tf.inline = true // implied by use of Go embedding without an explicit name\n\t\t\t}\n\t\t\tif f.inline || f.unknown {\n\t\t\t\t// Handle an inlined field that serializes to/from\n\t\t\t\t// zero or more JSON object members.\n\n\t\t\t\tif f.inline && f.unknown {\n\t\t\t\t\terr := fmt.Errorf(\"Go struct field %s cannot have both `inline` and `unknown` specified\", sf.Name)\n\t\t\t\t\treturn structFields{}, &SemanticError{GoType: t, Err: err}\n\t\t\t\t}\n\t\t\t\tswitch f.fieldOptions {\n\t\t\t\tcase fieldOptions{name: f.name, quotedName: f.quotedName, inline: true}:\n\t\t\t\tcase fieldOptions{name: f.name, quotedName: f.quotedName, unknown: true}:\n\t\t\t\tdefault:\n\t\t\t\t\terr := fmt.Errorf(\"Go struct field %s cannot have any options other than `inline` or `unknown` specified\", sf.Name)\n\t\t\t\t\treturn structFields{}, &SemanticError{GoType: t, Err: err}\n\t\t\t\t}\n\n\t\t\t\t// Unwrap one level of pointer indirection similar to how Go\n\t\t\t\t// only allows embedding either T or *T, but not **T.\n\t\t\t\ttf := f.typ\n\t\t\t\tif tf.Kind() == reflect.Pointer && tf.Name() == \"\" {\n\t\t\t\t\ttf = tf.Elem()\n\t\t\t\t}\n\t\t\t\t// Reject any types with custom serialization otherwise\n\t\t\t\t// it becomes impossible to know what sub-fields to inline.\n\t\t\t\tif which, _ := implementsWhich(tf,\n\t\t\t\t\tjsonMarshalerV2Type, jsonMarshalerV1Type, textMarshalerType,\n\t\t\t\t\tjsonUnmarshalerV2Type, jsonUnmarshalerV1Type, textUnmarshalerType,\n\t\t\t\t); which != nil && tf != rawValueType {\n\t\t\t\t\terr := fmt.Errorf(\"inlined Go struct field %s of type %s must not implement JSON marshal or unmarshal methods\", sf.Name, tf)\n\t\t\t\t\treturn structFields{}, &SemanticError{GoType: t, Err: err}\n\t\t\t\t}\n\n\t\t\t\t// Handle an inlined field that serializes to/from\n\t\t\t\t// a finite number of JSON object members backed by a Go struct.\n\t\t\t\tif tf.Kind() == reflect.Struct {\n\t\t\t\t\tif f.unknown {\n\t\t\t\t\t\terr := fmt.Errorf(\"inlined Go struct field %s of type %s with `unknown` tag must be a Go map of string key or a json.RawValue\", sf.Name, tf)\n\t\t\t\t\t\treturn structFields{}, &SemanticError{GoType: t, Err: err}\n\t\t\t\t\t}\n\t\t\t\t\tif qe.visitChildren {\n\t\t\t\t\t\tqueue = append(queue, queueEntry{tf, f.index, !seen[tf]})\n\t\t\t\t\t}\n\t\t\t\t\tseen[tf] = true\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\t// Handle an inlined field that serializes to/from any number of\n\t\t\t\t// JSON object members back by a Go map or RawValue.\n\t\t\t\tswitch {\n\t\t\t\tcase tf == rawValueType:\n\t\t\t\t\tf.fncs = nil // specially handled in arshal_inlined.go\n\t\t\t\tcase tf.Kind() == reflect.Map && tf.Key() == stringType:\n\t\t\t\t\tf.fncs = lookupArshaler(tf.Elem())\n\t\t\t\tdefault:\n\t\t\t\t\terr := fmt.Errorf(\"inlined Go struct field %s of type %s must be a Go struct, Go map of string key, or json.RawValue\", sf.Name, tf)\n\t\t\t\t\treturn structFields{}, &SemanticError{GoType: t, Err: err}\n\t\t\t\t}\n\n\t\t\t\t// Reject multiple inlined fallback fields within the same struct.\n\t\t\t\tif inlinedFallbackIndex >= 0 {\n\t\t\t\t\terr := fmt.Errorf(\"inlined Go struct fields %s and %s cannot both be a Go map or json.RawValue\", t.Field(inlinedFallbackIndex).Name, sf.Name)\n\t\t\t\t\treturn structFields{}, &SemanticError{GoType: t, Err: err}\n\t\t\t\t}\n\t\t\t\tinlinedFallbackIndex = i\n\n\t\t\t\t// Multiple inlined fallback fields across different structs\n\t\t\t\t// follow the same precedence rules as Go struct embedding.\n\t\t\t\tif fs.inlinedFallback == nil {\n\t\t\t\t\tfs.inlinedFallback = &f // store first occurrence at lowest depth\n\t\t\t\t} else if len(fs.inlinedFallback.index) == len(f.index) {\n\t\t\t\t\tfs.inlinedFallback = ambiguous // at least two occurrences at same depth\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Handle normal Go struct field that serializes to/from\n\t\t\t\t// a single JSON object member.\n\n\t\t\t\t// Provide a function that uses a type's IsZero method.\n\t\t\t\tswitch {\n\t\t\t\tcase sf.Type.Kind() == reflect.Interface && sf.Type.Implements(isZeroerType):\n\t\t\t\t\tf.isZero = func(va addressableValue) bool {\n\t\t\t\t\t\t// Avoid panics calling IsZero on a nil interface or\n\t\t\t\t\t\t// non-nil interface with nil pointer.\n\t\t\t\t\t\treturn va.IsNil() || (va.Elem().Kind() == reflect.Pointer && va.Elem().IsNil()) || va.Interface().(isZeroer).IsZero()\n\t\t\t\t\t}\n\t\t\t\tcase sf.Type.Kind() == reflect.Pointer && sf.Type.Implements(isZeroerType):\n\t\t\t\t\tf.isZero = func(va addressableValue) bool {\n\t\t\t\t\t\t// Avoid panics calling IsZero on nil pointer.\n\t\t\t\t\t\treturn va.IsNil() || va.Interface().(isZeroer).IsZero()\n\t\t\t\t\t}\n\t\t\t\tcase sf.Type.Implements(isZeroerType):\n\t\t\t\t\tf.isZero = func(va addressableValue) bool { return va.Interface().(isZeroer).IsZero() }\n\t\t\t\tcase reflect.PointerTo(sf.Type).Implements(isZeroerType):\n\t\t\t\t\tf.isZero = func(va addressableValue) bool { return va.Addr().Interface().(isZeroer).IsZero() }\n\t\t\t\t}\n\n\t\t\t\t// Provide a function that can determine whether the value would\n\t\t\t\t// serialize as an empty JSON value.\n\t\t\t\tswitch sf.Type.Kind() {\n\t\t\t\tcase reflect.String, reflect.Map, reflect.Array, reflect.Slice:\n\t\t\t\t\tf.isEmpty = func(va addressableValue) bool { return va.Len() == 0 }\n\t\t\t\tcase reflect.Pointer, reflect.Interface:\n\t\t\t\t\tf.isEmpty = func(va addressableValue) bool { return va.IsNil() }\n\t\t\t\t}\n\n\t\t\t\tf.id = len(fs.flattened)\n\t\t\t\tf.fncs = lookupArshaler(sf.Type)\n\t\t\t\tfs.flattened = append(fs.flattened, f)\n\n\t\t\t\t// Reject user-specified names with invalid UTF-8.\n\t\t\t\tif !utf8.ValidString(f.name) {\n\t\t\t\t\terr := fmt.Errorf(\"Go struct field %s has JSON object name %q with invalid UTF-8\", sf.Name, f.name)\n\t\t\t\t\treturn structFields{}, &SemanticError{GoType: t, Err: err}\n\t\t\t\t}\n\t\t\t\t// Reject multiple fields with same name within the same struct.\n\t\t\t\tif j, ok := namesIndex[f.name]; ok {\n\t\t\t\t\terr := fmt.Errorf(\"Go struct fields %s and %s conflict over JSON object name %q\", t.Field(j).Name, sf.Name, f.name)\n\t\t\t\t\treturn structFields{}, &SemanticError{GoType: t, Err: err}\n\t\t\t\t}\n\t\t\t\tnamesIndex[f.name] = i\n\n\t\t\t\t// Multiple fields of the same name across different structs\n\t\t\t\t// follow the same precedence rules as Go struct embedding.\n\t\t\t\tif f2 := fs.byActualName[f.name]; f2 == nil {\n\t\t\t\t\tfs.byActualName[f.name] = &fs.flattened[len(fs.flattened)-1] // store first occurrence at lowest depth\n\t\t\t\t} else if len(f2.index) == len(f.index) {\n\t\t\t\t\tfs.byActualName[f.name] = ambiguous // at least two occurrences at same depth\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// NOTE: New users to the json package are occasionally surprised that\n\t\t// unexported fields are ignored. This occurs by necessity due to our\n\t\t// inability to directly introspect such fields with Go reflection\n\t\t// without the use of unsafe.\n\t\t//\n\t\t// To reduce friction here, refuse to serialize any Go struct that\n\t\t// has no JSON serializable fields, has at least one Go struct field,\n\t\t// and does not have any `json` tags present. For example,\n\t\t// errors returned by errors.New would fail to serialize.\n\t\tisEmptyStruct := t.NumField() == 0\n\t\tif !isEmptyStruct && !hasAnyJSONTag && !hasAnyJSONField {\n\t\t\terr := errors.New(\"Go struct has no exported fields\")\n\t\t\treturn structFields{}, &SemanticError{GoType: t, Err: err}\n\t\t}\n\t}\n\n\t// Remove all fields that are duplicates.\n\t// This may move elements forward to fill the holes from removed fields.\n\tvar n int\n\tfor _, f := range fs.flattened {\n\t\tswitch f2 := fs.byActualName[f.name]; {\n\t\tcase f2 == ambiguous:\n\t\t\tdelete(fs.byActualName, f.name)\n\t\tcase f2 == nil:\n\t\t\tcontinue // may be nil due to previous delete\n\t\t// TODO(https://go.dev/issue/45955): Use slices.Equal.\n\t\tcase reflect.DeepEqual(f.index, f2.index):\n\t\t\tf.id = n\n\t\t\tfs.flattened[n] = f\n\t\t\tfs.byActualName[f.name] = &fs.flattened[n] // fix pointer to new location\n\t\t\tn++\n\t\t}\n\t}\n\tfs.flattened = fs.flattened[:n]\n\tif fs.inlinedFallback == ambiguous {\n\t\tfs.inlinedFallback = nil\n\t}\n\tif len(fs.flattened) != len(fs.byActualName) {\n\t\tpanic(fmt.Sprintf(\"BUG: flattened list of fields mismatches fields mapped by name: %d != %d\", len(fs.flattened), len(fs.byActualName)))\n\t}\n\n\t// Sort the fields according to a depth-first ordering.\n\t// This operation will cause pointers in byActualName to become incorrect,\n\t// which we will correct in another loop shortly thereafter.\n\tsort.Slice(fs.flattened, func(i, j int) bool {\n\t\tsi := fs.flattened[i].index\n\t\tsj := fs.flattened[j].index\n\t\tfor len(si) > 0 && len(sj) > 0 {\n\t\t\tswitch {\n\t\t\tcase si[0] < sj[0]:\n\t\t\t\treturn true\n\t\t\tcase si[0] > sj[0]:\n\t\t\t\treturn false\n\t\t\tdefault:\n\t\t\t\tsi = si[1:]\n\t\t\t\tsj = sj[1:]\n\t\t\t}\n\t\t}\n\t\treturn len(si) < len(sj)\n\t})\n\n\t// Recompute the mapping of fields in the byActualName map.\n\t// Pre-fold all names so that we can lookup folded names quickly.\n\tfor i, f := range fs.flattened {\n\t\tfoldedName := string(foldName([]byte(f.name)))\n\t\tfs.byActualName[f.name] = &fs.flattened[i]\n\t\tfs.byFoldedName[foldedName] = append(fs.byFoldedName[foldedName], &fs.flattened[i])\n\t}\n\tfor foldedName, fields := range fs.byFoldedName {\n\t\tif len(fields) > 1 {\n\t\t\t// The precedence order for conflicting nocase names\n\t\t\t// is by breadth-first order, rather than depth-first order.\n\t\t\tsort.Slice(fields, func(i, j int) bool {\n\t\t\t\treturn fields[i].id < fields[j].id\n\t\t\t})\n\t\t\tfs.byFoldedName[foldedName] = fields\n\t\t}\n\t}\n\n\treturn fs, nil\n}\n\ntype fieldOptions struct {\n\tname       string\n\tquotedName string // quoted name per RFC 8785, section 3.2.2.2.\n\thasName    bool\n\tnocase     bool\n\tinline     bool\n\tunknown    bool\n\tomitzero   bool\n\tomitempty  bool\n\tstring     bool\n\tformat     string\n}\n\n// parseFieldOptions parses the `json` tag in a Go struct field as\n// a structured set of options configuring parameters such as\n// the JSON member name and other features.\n// As a special case, it returns errIgnoredField if the field is ignored.\nfunc parseFieldOptions(sf reflect.StructField) (out fieldOptions, err error) {\n\ttag, hasTag := sf.Tag.Lookup(\"json\")\n\n\t// Check whether this field is explicitly ignored.\n\tif tag == \"-\" {\n\t\treturn fieldOptions{}, errIgnoredField\n\t}\n\n\t// Check whether this field is unexported.\n\tif !sf.IsExported() {\n\t\t// In contrast to v1, v2 no longer forwards exported fields from\n\t\t// embedded fields of unexported types since Go reflection does not\n\t\t// allow the same set of operations that are available in normal cases\n\t\t// of purely exported fields.\n\t\t// See https://go.dev/issue/21357 and https://go.dev/issue/24153.\n\t\tif sf.Anonymous {\n\t\t\treturn fieldOptions{}, fmt.Errorf(\"embedded Go struct field %s of an unexported type must be explicitly ignored with a `json:\\\"-\\\"` tag\", sf.Type.Name())\n\t\t}\n\t\t// Tag options specified on an unexported field suggests user error.\n\t\tif hasTag {\n\t\t\treturn fieldOptions{}, fmt.Errorf(\"unexported Go struct field %s cannot have non-ignored `json:%q` tag\", sf.Name, tag)\n\t\t}\n\t\treturn fieldOptions{}, errIgnoredField\n\t}\n\n\t// Determine the JSON member name for this Go field. A user-specified name\n\t// may be provided as either an identifier or a single-quoted string.\n\t// The single-quoted string allows arbitrary characters in the name.\n\t// See https://go.dev/issue/2718 and https://go.dev/issue/3546.\n\tout.name = sf.Name // always starts with an uppercase character\n\tif len(tag) > 0 && !strings.HasPrefix(tag, \",\") {\n\t\t// For better compatibility with v1, accept almost any unescaped name.\n\t\tn := len(tag) - len(strings.TrimLeftFunc(tag, func(r rune) bool {\n\t\t\treturn !strings.ContainsRune(\",\\\\'\\\"`\", r) // reserve comma, backslash, and quotes\n\t\t}))\n\t\topt := tag[:n]\n\t\tif n == 0 {\n\t\t\t// Allow a single quoted string for arbitrary names.\n\t\t\topt, n, err = consumeTagOption(tag)\n\t\t\tif err != nil {\n\t\t\t\treturn fieldOptions{}, fmt.Errorf(\"Go struct field %s has malformed `json` tag: %v\", sf.Name, err)\n\t\t\t}\n\t\t}\n\t\tout.hasName = true\n\t\tout.name = opt\n\t\ttag = tag[n:]\n\t}\n\tb, _ := appendString(nil, out.name, false, nil)\n\tout.quotedName = string(b)\n\n\t// Handle any additional tag options (if any).\n\tvar wasFormat bool\n\tseenOpts := make(map[string]bool)\n\tfor len(tag) > 0 {\n\t\t// Consume comma delimiter.\n\t\tif tag[0] != ',' {\n\t\t\treturn fieldOptions{}, fmt.Errorf(\"Go struct field %s has malformed `json` tag: invalid character %q before next option (expecting ',')\", sf.Name, tag[0])\n\t\t}\n\t\ttag = tag[len(\",\"):]\n\t\tif len(tag) == 0 {\n\t\t\treturn fieldOptions{}, fmt.Errorf(\"Go struct field %s has malformed `json` tag: invalid trailing ',' character\", sf.Name)\n\t\t}\n\n\t\t// Consume and process the tag option.\n\t\topt, n, err := consumeTagOption(tag)\n\t\tif err != nil {\n\t\t\treturn fieldOptions{}, fmt.Errorf(\"Go struct field %s has malformed `json` tag: %v\", sf.Name, err)\n\t\t}\n\t\trawOpt := tag[:n]\n\t\ttag = tag[n:]\n\t\tswitch {\n\t\tcase wasFormat:\n\t\t\treturn fieldOptions{}, fmt.Errorf(\"Go struct field %s has `format` tag option that was not specified last\", sf.Name)\n\t\tcase strings.HasPrefix(rawOpt, \"'\") && strings.TrimFunc(opt, isLetterOrDigit) == \"\":\n\t\t\treturn fieldOptions{}, fmt.Errorf(\"Go struct field %s has unnecessarily quoted appearance of `%s` tag option; specify `%s` instead\", sf.Name, rawOpt, opt)\n\t\t}\n\t\tswitch opt {\n\t\tcase \"nocase\":\n\t\t\tout.nocase = true\n\t\tcase \"inline\":\n\t\t\tout.inline = true\n\t\tcase \"unknown\":\n\t\t\tout.unknown = true\n\t\tcase \"omitzero\":\n\t\t\tout.omitzero = true\n\t\tcase \"omitempty\":\n\t\t\tout.omitempty = true\n\t\tcase \"string\":\n\t\t\tout.string = true\n\t\tcase \"format\":\n\t\t\tif !strings.HasPrefix(tag, \":\") {\n\t\t\t\treturn fieldOptions{}, fmt.Errorf(\"Go struct field %s is missing value for `format` tag option\", sf.Name)\n\t\t\t}\n\t\t\ttag = tag[len(\":\"):]\n\t\t\topt, n, err := consumeTagOption(tag)\n\t\t\tif err != nil {\n\t\t\t\treturn fieldOptions{}, fmt.Errorf(\"Go struct field %s has malformed value for `format` tag option: %v\", sf.Name, err)\n\t\t\t}\n\t\t\ttag = tag[n:]\n\t\t\tout.format = opt\n\t\t\twasFormat = true\n\t\tdefault:\n\t\t\t// Reject keys that resemble one of the supported options.\n\t\t\t// This catches invalid mutants such as \"omitEmpty\" or \"omit_empty\".\n\t\t\tnormOpt := strings.ReplaceAll(strings.ToLower(opt), \"_\", \"\")\n\t\t\tswitch normOpt {\n\t\t\tcase \"nocase\", \"inline\", \"unknown\", \"omitzero\", \"omitempty\", \"string\", \"format\":\n\t\t\t\treturn fieldOptions{}, fmt.Errorf(\"Go struct field %s has invalid appearance of `%s` tag option; specify `%s` instead\", sf.Name, opt, normOpt)\n\t\t\t}\n\n\t\t\t// NOTE: Everything else is ignored. This does not mean it is\n\t\t\t// forward compatible to insert arbitrary tag options since\n\t\t\t// a future version of this package may understand that tag.\n\t\t}\n\n\t\t// Reject duplicates.\n\t\tif seenOpts[opt] {\n\t\t\treturn fieldOptions{}, fmt.Errorf(\"Go struct field %s has duplicate appearance of `%s` tag option\", sf.Name, rawOpt)\n\t\t}\n\t\tseenOpts[opt] = true\n\t}\n\treturn out, nil\n}\n\nfunc consumeTagOption(in string) (string, int, error) {\n\tswitch r, _ := utf8.DecodeRuneInString(in); {\n\t// Option as a Go identifier.\n\tcase r == '_' || unicode.IsLetter(r):\n\t\tn := len(in) - len(strings.TrimLeftFunc(in, isLetterOrDigit))\n\t\treturn in[:n], n, nil\n\t// Option as a single-quoted string.\n\tcase r == '\\'':\n\t\t// The grammar is nearly identical to a double-quoted Go string literal,\n\t\t// but uses single quotes as the terminators. The reason for a custom\n\t\t// grammar is because both backtick and double quotes cannot be used\n\t\t// verbatim in a struct tag.\n\t\t//\n\t\t// Convert a single-quoted string to a double-quote string and rely on\n\t\t// strconv.Unquote to handle the rest.\n\t\tvar inEscape bool\n\t\tb := []byte{'\"'}\n\t\tn := len(`'`)\n\t\tfor len(in) > n {\n\t\t\tr, rn := utf8.DecodeRuneInString(in[n:])\n\t\t\tswitch {\n\t\t\tcase inEscape:\n\t\t\t\tif r == '\\'' {\n\t\t\t\t\tb = b[:len(b)-1] // remove escape character: `\\'` => `'`\n\t\t\t\t}\n\t\t\t\tinEscape = false\n\t\t\tcase r == '\\\\':\n\t\t\t\tinEscape = true\n\t\t\tcase r == '\"':\n\t\t\t\tb = append(b, '\\\\') // insert escape character: `\"` => `\\\"`\n\t\t\tcase r == '\\'':\n\t\t\t\tb = append(b, '\"')\n\t\t\t\tn += len(`'`)\n\t\t\t\tout, err := strconv.Unquote(string(b))\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn \"\", 0, fmt.Errorf(\"invalid single-quoted string: %s\", in[:n])\n\t\t\t\t}\n\t\t\t\treturn out, n, nil\n\t\t\t}\n\t\t\tb = append(b, in[n:][:rn]...)\n\t\t\tn += rn\n\t\t}\n\t\tif n > 10 {\n\t\t\tn = 10 // limit the amount of context printed in the error\n\t\t}\n\t\treturn \"\", 0, fmt.Errorf(\"single-quoted string not terminated: %s...\", in[:n])\n\tcase len(in) == 0:\n\t\treturn \"\", 0, io.ErrUnexpectedEOF\n\tdefault:\n\t\treturn \"\", 0, fmt.Errorf(\"invalid character %q at start of option (expecting Unicode letter or single quote)\", r)\n\t}\n}\n\nfunc isLetterOrDigit(r rune) bool {\n\treturn r == '_' || unicode.IsLetter(r) || unicode.IsNumber(r)\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/fold.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"unicode\"\n\t\"unicode/utf8\"\n)\n\n// foldName returns a folded string such that foldName(x) == foldName(y)\n// is similar to strings.EqualFold(x, y), but ignores underscore and dashes.\n// This allows foldName to match common naming conventions.\nfunc foldName(in []byte) []byte {\n\t// This is inlinable to take advantage of \"function outlining\".\n\t// See https://blog.filippo.io/efficient-go-apis-with-the-inliner/\n\tvar arr [32]byte // large enough for most JSON names\n\treturn appendFoldedName(arr[:0], in)\n}\nfunc appendFoldedName(out, in []byte) []byte {\n\tfor i := 0; i < len(in); {\n\t\t// Handle single-byte ASCII.\n\t\tif c := in[i]; c < utf8.RuneSelf {\n\t\t\tif c != '_' && c != '-' {\n\t\t\t\tif 'a' <= c && c <= 'z' {\n\t\t\t\t\tc -= 'a' - 'A'\n\t\t\t\t}\n\t\t\t\tout = append(out, c)\n\t\t\t}\n\t\t\ti++\n\t\t\tcontinue\n\t\t}\n\t\t// Handle multi-byte Unicode.\n\t\tr, n := utf8.DecodeRune(in[i:])\n\t\tout = utf8.AppendRune(out, foldRune(r))\n\t\ti += n\n\t}\n\treturn out\n}\n\n// foldRune is a variation on unicode.SimpleFold that returns the same rune\n// for all runes in the same fold set.\n//\n// Invariant:\n//\n//\tfoldRune(x) == foldRune(y) ⇔ strings.EqualFold(string(x), string(y))\nfunc foldRune(r rune) rune {\n\tfor {\n\t\tr2 := unicode.SimpleFold(r)\n\t\tif r2 <= r {\n\t\t\treturn r2 // smallest character in the fold set\n\t\t}\n\t\tr = r2\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/intern.go",
    "content": "// Copyright 2022 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"encoding/binary\"\n\t\"math/bits\"\n)\n\n// stringCache is a cache for strings converted from a []byte.\ntype stringCache [256]string // 256*unsafe.Sizeof(string(\"\")) => 4KiB\n\n// make returns the string form of b.\n// It returns a pre-allocated string from c if present, otherwise\n// it allocates a new string, inserts it into the cache, and returns it.\nfunc (c *stringCache) make(b []byte) string {\n\tconst (\n\t\tminCachedLen = 2   // single byte strings are already interned by the runtime\n\t\tmaxCachedLen = 256 // large enough for UUIDs, IPv6 addresses, SHA-256 checksums, etc.\n\t)\n\tif c == nil || len(b) < minCachedLen || len(b) > maxCachedLen {\n\t\treturn string(b)\n\t}\n\n\t// Compute a hash from the fixed-width prefix and suffix of the string.\n\t// This ensures hashing a string is a constant time operation.\n\tvar h uint32\n\tswitch {\n\tcase len(b) >= 8:\n\t\tlo := binary.LittleEndian.Uint64(b[:8])\n\t\thi := binary.LittleEndian.Uint64(b[len(b)-8:])\n\t\th = hash64(uint32(lo), uint32(lo>>32)) ^ hash64(uint32(hi), uint32(hi>>32))\n\tcase len(b) >= 4:\n\t\tlo := binary.LittleEndian.Uint32(b[:4])\n\t\thi := binary.LittleEndian.Uint32(b[len(b)-4:])\n\t\th = hash64(lo, hi)\n\tcase len(b) >= 2:\n\t\tlo := binary.LittleEndian.Uint16(b[:2])\n\t\thi := binary.LittleEndian.Uint16(b[len(b)-2:])\n\t\th = hash64(uint32(lo), uint32(hi))\n\t}\n\n\t// Check the cache for the string.\n\ti := h % uint32(len(*c))\n\tif s := (*c)[i]; s == string(b) {\n\t\treturn s\n\t}\n\ts := string(b)\n\t(*c)[i] = s\n\treturn s\n}\n\n// hash64 returns the hash of two uint32s as a single uint32.\nfunc hash64(lo, hi uint32) uint32 {\n\t// If avalanche=true, this is identical to XXH32 hash on a 8B string:\n\t//\tvar b [8]byte\n\t//\tbinary.LittleEndian.PutUint32(b[:4], lo)\n\t//\tbinary.LittleEndian.PutUint32(b[4:], hi)\n\t//\treturn xxhash.Sum32(b[:])\n\tconst (\n\t\tprime1 = 0x9e3779b1\n\t\tprime2 = 0x85ebca77\n\t\tprime3 = 0xc2b2ae3d\n\t\tprime4 = 0x27d4eb2f\n\t\tprime5 = 0x165667b1\n\t)\n\th := prime5 + uint32(8)\n\th += lo * prime3\n\th = bits.RotateLeft32(h, 17) * prime4\n\th += hi * prime3\n\th = bits.RotateLeft32(h, 17) * prime4\n\t// Skip final mix (avalanche) step of XXH32 for performance reasons.\n\t// Empirical testing shows that the improvements in unbiased distribution\n\t// does not outweigh the extra cost in computational complexity.\n\tconst avalanche = false\n\tif avalanche {\n\t\th ^= h >> 15\n\t\th *= prime2\n\t\th ^= h >> 13\n\t\th *= prime3\n\t\th ^= h >> 16\n\t}\n\treturn h\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/pools.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"bytes\"\n\t\"io\"\n\t\"math/bits\"\n\t\"sort\"\n\t\"sync\"\n)\n\n// TODO(https://go.dev/issue/47657): Use sync.PoolOf.\n\nvar (\n\t// This owns the internal buffer since there is no io.Writer to output to.\n\t// Since the buffer can get arbitrarily large in normal usage,\n\t// there is statistical tracking logic to determine whether to recycle\n\t// the internal buffer or not based on a history of utilization.\n\tbufferedEncoderPool = &sync.Pool{New: func() any { return new(Encoder) }}\n\n\t// This owns the internal buffer, but it is only used to temporarily store\n\t// buffered JSON before flushing it to the underlying io.Writer.\n\t// In a sufficiently efficient streaming mode, we do not expect the buffer\n\t// to grow arbitrarily large. Thus, we avoid recycling large buffers.\n\tstreamingEncoderPool = &sync.Pool{New: func() any { return new(Encoder) }}\n\n\t// This does not own the internal buffer since\n\t// it is taken directly from the provided bytes.Buffer.\n\tbytesBufferEncoderPool = &sync.Pool{New: func() any { return new(Encoder) }}\n)\n\n// bufferStatistics is statistics to track buffer utilization.\n// It is used to determine whether to recycle a buffer or not\n// to avoid https://go.dev/issue/23199.\ntype bufferStatistics struct {\n\tstrikes int // number of times the buffer was under-utilized\n\tprevLen int // length of previous buffer\n}\n\nfunc getBufferedEncoder(o EncodeOptions) *Encoder {\n\te := bufferedEncoderPool.Get().(*Encoder)\n\tif e.buf == nil {\n\t\t// Round up to nearest 2ⁿ to make best use of malloc size classes.\n\t\t// See runtime/sizeclasses.go on Go1.15.\n\t\t// Logical OR with 63 to ensure 64 as the minimum buffer size.\n\t\tn := 1 << bits.Len(uint(e.bufStats.prevLen|63))\n\t\te.buf = make([]byte, 0, n)\n\t}\n\te.reset(e.buf[:0], nil, o)\n\treturn e\n}\nfunc putBufferedEncoder(e *Encoder) {\n\t// Recycle large buffers only if sufficiently utilized.\n\t// If a buffer is under-utilized enough times sequentially,\n\t// then it is discarded, ensuring that a single large buffer\n\t// won't be kept alive by a continuous stream of small usages.\n\t//\n\t// The worst case utilization is computed as:\n\t//\tMIN_UTILIZATION_THRESHOLD / (1 + MAX_NUM_STRIKES)\n\t//\n\t// For the constants chosen below, this is (25%)/(1+4) ⇒ 5%.\n\t// This may seem low, but it ensures a lower bound on\n\t// the absolute worst-case utilization. Without this check,\n\t// this would be theoretically 0%, which is infinitely worse.\n\t//\n\t// See https://go.dev/issue/27735.\n\tswitch {\n\tcase cap(e.buf) <= 4<<10: // always recycle buffers smaller than 4KiB\n\t\te.bufStats.strikes = 0\n\tcase cap(e.buf)/4 <= len(e.buf): // at least 25% utilization\n\t\te.bufStats.strikes = 0\n\tcase e.bufStats.strikes < 4: // at most 4 strikes\n\t\te.bufStats.strikes++\n\tdefault: // discard the buffer; too large and too often under-utilized\n\t\te.bufStats.strikes = 0\n\t\te.bufStats.prevLen = len(e.buf) // heuristic for size to allocate next time\n\t\te.buf = nil\n\t}\n\tbufferedEncoderPool.Put(e)\n}\n\nfunc getStreamingEncoder(w io.Writer, o EncodeOptions) *Encoder {\n\tif _, ok := w.(*bytes.Buffer); ok {\n\t\te := bytesBufferEncoderPool.Get().(*Encoder)\n\t\te.reset(nil, w, o) // buffer taken from bytes.Buffer\n\t\treturn e\n\t} else {\n\t\te := streamingEncoderPool.Get().(*Encoder)\n\t\te.reset(e.buf[:0], w, o) // preserve existing buffer\n\t\treturn e\n\t}\n}\nfunc putStreamingEncoder(e *Encoder) {\n\tif _, ok := e.wr.(*bytes.Buffer); ok {\n\t\tbytesBufferEncoderPool.Put(e)\n\t} else {\n\t\tif cap(e.buf) > 64<<10 {\n\t\t\te.buf = nil // avoid pinning arbitrarily large amounts of memory\n\t\t}\n\t\tstreamingEncoderPool.Put(e)\n\t}\n}\n\nvar (\n\t// This does not own the internal buffer since it is externally provided.\n\tbufferedDecoderPool = &sync.Pool{New: func() any { return new(Decoder) }}\n\n\t// This owns the internal buffer, but it is only used to temporarily store\n\t// buffered JSON fetched from the underlying io.Reader.\n\t// In a sufficiently efficient streaming mode, we do not expect the buffer\n\t// to grow arbitrarily large. Thus, we avoid recycling large buffers.\n\tstreamingDecoderPool = &sync.Pool{New: func() any { return new(Decoder) }}\n\n\t// This does not own the internal buffer since\n\t// it is taken directly from the provided bytes.Buffer.\n\tbytesBufferDecoderPool = bufferedDecoderPool\n)\n\nfunc getBufferedDecoder(b []byte, o DecodeOptions) *Decoder {\n\td := bufferedDecoderPool.Get().(*Decoder)\n\td.reset(b, nil, o)\n\treturn d\n}\nfunc putBufferedDecoder(d *Decoder) {\n\tbufferedDecoderPool.Put(d)\n}\n\nfunc getStreamingDecoder(r io.Reader, o DecodeOptions) *Decoder {\n\tif _, ok := r.(*bytes.Buffer); ok {\n\t\td := bytesBufferDecoderPool.Get().(*Decoder)\n\t\td.reset(nil, r, o) // buffer taken from bytes.Buffer\n\t\treturn d\n\t} else {\n\t\td := streamingDecoderPool.Get().(*Decoder)\n\t\td.reset(d.buf[:0], r, o) // preserve existing buffer\n\t\treturn d\n\t}\n}\nfunc putStreamingDecoder(d *Decoder) {\n\tif _, ok := d.rd.(*bytes.Buffer); ok {\n\t\tbytesBufferDecoderPool.Put(d)\n\t} else {\n\t\tif cap(d.buf) > 64<<10 {\n\t\t\td.buf = nil // avoid pinning arbitrarily large amounts of memory\n\t\t}\n\t\tstreamingDecoderPool.Put(d)\n\t}\n}\n\nvar stringsPools = &sync.Pool{New: func() any { return new(stringSlice) }}\n\ntype stringSlice []string\n\n// getStrings returns a non-nil pointer to a slice with length n.\nfunc getStrings(n int) *stringSlice {\n\ts := stringsPools.Get().(*stringSlice)\n\tif cap(*s) < n {\n\t\t*s = make([]string, n)\n\t}\n\t*s = (*s)[:n]\n\treturn s\n}\n\nfunc putStrings(s *stringSlice) {\n\tif cap(*s) > 1<<10 {\n\t\t*s = nil // avoid pinning arbitrarily large amounts of memory\n\t}\n\tstringsPools.Put(s)\n}\n\n// Sort sorts the string slice according to RFC 8785, section 3.2.3.\nfunc (ss *stringSlice) Sort() {\n\t// TODO(https://go.dev/issue/47619): Use slices.SortFunc instead.\n\tsort.Sort(ss)\n}\n\nfunc (ss *stringSlice) Len() int           { return len(*ss) }\nfunc (ss *stringSlice) Less(i, j int) bool { return lessUTF16((*ss)[i], (*ss)[j]) }\nfunc (ss *stringSlice) Swap(i, j int)      { (*ss)[i], (*ss)[j] = (*ss)[j], (*ss)[i] }\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/state.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"math\"\n\t\"strconv\"\n)\n\nvar (\n\terrMissingName   = &SyntacticError{str: \"missing string for object name\"}\n\terrMissingColon  = &SyntacticError{str: \"missing character ':' after object name\"}\n\terrMissingValue  = &SyntacticError{str: \"missing value after object name\"}\n\terrMissingComma  = &SyntacticError{str: \"missing character ',' after object or array value\"}\n\terrMismatchDelim = &SyntacticError{str: \"mismatching structural token for object or array\"}\n)\n\nconst errInvalidNamespace = jsonError(\"object namespace is in an invalid state\")\n\ntype state struct {\n\t// tokens validates whether the next token kind is valid.\n\ttokens stateMachine\n\n\t// names is a stack of object names.\n\t// Not used if AllowDuplicateNames is true.\n\tnames objectNameStack\n\n\t// namespaces is a stack of object namespaces.\n\t// For performance reasons, Encoder or Decoder may not update this\n\t// if Marshal or Unmarshal is able to track names in a more efficient way.\n\t// See makeMapArshaler and makeStructArshaler.\n\t// Not used if AllowDuplicateNames is true.\n\tnamespaces objectNamespaceStack\n}\n\nfunc (s *state) reset() {\n\ts.tokens.reset()\n\ts.names.reset()\n\ts.namespaces.reset()\n}\n\n// appendStackPointer appends a JSON Pointer (RFC 6901) to the current value.\n// The returned pointer is only accurate if s.names is populated,\n// otherwise it uses the numeric index as the object member name.\n//\n// Invariant: Must call s.names.copyQuotedBuffer beforehand.\nfunc (s state) appendStackPointer(b []byte) []byte {\n\tvar objectDepth int\n\tfor i := 1; i < s.tokens.depth(); i++ {\n\t\te := s.tokens.index(i)\n\t\tif e.length() == 0 {\n\t\t\tbreak // empty object or array\n\t\t}\n\t\tb = append(b, '/')\n\t\tswitch {\n\t\tcase e.isObject():\n\t\t\tif objectDepth < s.names.length() {\n\t\t\t\tfor _, c := range s.names.getUnquoted(objectDepth) {\n\t\t\t\t\t// Per RFC 6901, section 3, escape '~' and '/' characters.\n\t\t\t\t\tswitch c {\n\t\t\t\t\tcase '~':\n\t\t\t\t\t\tb = append(b, \"~0\"...)\n\t\t\t\t\tcase '/':\n\t\t\t\t\t\tb = append(b, \"~1\"...)\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tb = append(b, c)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Since the names stack is unpopulated, the name is unknown.\n\t\t\t\t// As a best-effort replacement, use the numeric member index.\n\t\t\t\t// While inaccurate, it produces a syntactically valid pointer.\n\t\t\t\tb = strconv.AppendUint(b, uint64((e.length()-1)/2), 10)\n\t\t\t}\n\t\t\tobjectDepth++\n\t\tcase e.isArray():\n\t\t\tb = strconv.AppendUint(b, uint64(e.length()-1), 10)\n\t\t}\n\t}\n\treturn b\n}\n\n// stateMachine is a push-down automaton that validates whether\n// a sequence of tokens is valid or not according to the JSON grammar.\n// It is useful for both encoding and decoding.\n//\n// It is a stack where each entry represents a nested JSON object or array.\n// The stack has a minimum depth of 1 where the first level is a\n// virtual JSON array to handle a stream of top-level JSON values.\n// The top-level virtual JSON array is special in that it doesn't require commas\n// between each JSON value.\n//\n// For performance, most methods are carefully written to be inlineable.\n// The zero value is a valid state machine ready for use.\ntype stateMachine struct {\n\tstack []stateEntry\n\tlast  stateEntry\n}\n\n// reset resets the state machine.\n// The machine always starts with a minimum depth of 1.\nfunc (m *stateMachine) reset() {\n\tm.stack = m.stack[:0]\n\tif cap(m.stack) > 1<<10 {\n\t\tm.stack = nil\n\t}\n\tm.last = stateTypeArray\n}\n\n// depth is the current nested depth of JSON objects and arrays.\n// It is one-indexed (i.e., top-level values have a depth of 1).\nfunc (m stateMachine) depth() int {\n\treturn len(m.stack) + 1\n}\n\n// index returns a reference to the ith entry.\n// It is only valid until the next push method call.\nfunc (m *stateMachine) index(i int) *stateEntry {\n\tif i == len(m.stack) {\n\t\treturn &m.last\n\t}\n\treturn &m.stack[i]\n}\n\n// depthLength reports the current nested depth and\n// the length of the last JSON object or array.\nfunc (m stateMachine) depthLength() (int, int) {\n\treturn m.depth(), m.last.length()\n}\n\n// appendLiteral appends a JSON literal as the next token in the sequence.\n// If an error is returned, the state is not mutated.\nfunc (m *stateMachine) appendLiteral() error {\n\tswitch {\n\tcase m.last.needObjectName():\n\t\treturn errMissingName\n\tcase !m.last.isValidNamespace():\n\t\treturn errInvalidNamespace\n\tdefault:\n\t\tm.last.increment()\n\t\treturn nil\n\t}\n}\n\n// appendString appends a JSON string as the next token in the sequence.\n// If an error is returned, the state is not mutated.\nfunc (m *stateMachine) appendString() error {\n\tswitch {\n\tcase !m.last.isValidNamespace():\n\t\treturn errInvalidNamespace\n\tdefault:\n\t\tm.last.increment()\n\t\treturn nil\n\t}\n}\n\n// appendNumber appends a JSON number as the next token in the sequence.\n// If an error is returned, the state is not mutated.\nfunc (m *stateMachine) appendNumber() error {\n\treturn m.appendLiteral()\n}\n\n// pushObject appends a JSON start object token as next in the sequence.\n// If an error is returned, the state is not mutated.\nfunc (m *stateMachine) pushObject() error {\n\tswitch {\n\tcase m.last.needObjectName():\n\t\treturn errMissingName\n\tcase !m.last.isValidNamespace():\n\t\treturn errInvalidNamespace\n\tdefault:\n\t\tm.last.increment()\n\t\tm.stack = append(m.stack, m.last)\n\t\tm.last = stateTypeObject\n\t\treturn nil\n\t}\n}\n\n// popObject appends a JSON end object token as next in the sequence.\n// If an error is returned, the state is not mutated.\nfunc (m *stateMachine) popObject() error {\n\tswitch {\n\tcase !m.last.isObject():\n\t\treturn errMismatchDelim\n\tcase m.last.needObjectValue():\n\t\treturn errMissingValue\n\tcase !m.last.isValidNamespace():\n\t\treturn errInvalidNamespace\n\tdefault:\n\t\tm.last = m.stack[len(m.stack)-1]\n\t\tm.stack = m.stack[:len(m.stack)-1]\n\t\treturn nil\n\t}\n}\n\n// pushArray appends a JSON start array token as next in the sequence.\n// If an error is returned, the state is not mutated.\nfunc (m *stateMachine) pushArray() error {\n\tswitch {\n\tcase m.last.needObjectName():\n\t\treturn errMissingName\n\tcase !m.last.isValidNamespace():\n\t\treturn errInvalidNamespace\n\tdefault:\n\t\tm.last.increment()\n\t\tm.stack = append(m.stack, m.last)\n\t\tm.last = stateTypeArray\n\t\treturn nil\n\t}\n}\n\n// popArray appends a JSON end array token as next in the sequence.\n// If an error is returned, the state is not mutated.\nfunc (m *stateMachine) popArray() error {\n\tswitch {\n\tcase !m.last.isArray() || len(m.stack) == 0: // forbid popping top-level virtual JSON array\n\t\treturn errMismatchDelim\n\tcase !m.last.isValidNamespace():\n\t\treturn errInvalidNamespace\n\tdefault:\n\t\tm.last = m.stack[len(m.stack)-1]\n\t\tm.stack = m.stack[:len(m.stack)-1]\n\t\treturn nil\n\t}\n}\n\n// needIndent reports whether indent whitespace should be injected.\n// A zero value means that no whitespace should be injected.\n// A positive value means '\\n', indentPrefix, and (n-1) copies of indentBody\n// should be appended to the output immediately before the next token.\nfunc (m stateMachine) needIndent(next Kind) (n int) {\n\twillEnd := next == '}' || next == ']'\n\tswitch {\n\tcase m.depth() == 1:\n\t\treturn 0 // top-level values are never indented\n\tcase m.last.length() == 0 && willEnd:\n\t\treturn 0 // an empty object or array is never indented\n\tcase m.last.length() == 0 || m.last.needImplicitComma(next):\n\t\treturn m.depth()\n\tcase willEnd:\n\t\treturn m.depth() - 1\n\tdefault:\n\t\treturn 0\n\t}\n}\n\n// mayAppendDelim appends a colon or comma that may precede the next token.\nfunc (m stateMachine) mayAppendDelim(b []byte, next Kind) []byte {\n\tswitch {\n\tcase m.last.needImplicitColon():\n\t\treturn append(b, ':')\n\tcase m.last.needImplicitComma(next) && len(m.stack) != 0: // comma not needed for top-level values\n\t\treturn append(b, ',')\n\tdefault:\n\t\treturn b\n\t}\n}\n\n// needDelim reports whether a colon or comma token should be implicitly emitted\n// before the next token of the specified kind.\n// A zero value means no delimiter should be emitted.\nfunc (m stateMachine) needDelim(next Kind) (delim byte) {\n\tswitch {\n\tcase m.last.needImplicitColon():\n\t\treturn ':'\n\tcase m.last.needImplicitComma(next) && len(m.stack) != 0: // comma not needed for top-level values\n\t\treturn ','\n\tdefault:\n\t\treturn 0\n\t}\n}\n\n// checkDelim reports whether the specified delimiter should be there given\n// the kind of the next token that appears immediately afterwards.\nfunc (m stateMachine) checkDelim(delim byte, next Kind) error {\n\tswitch needDelim := m.needDelim(next); {\n\tcase needDelim == delim:\n\t\treturn nil\n\tcase needDelim == ':':\n\t\treturn errMissingColon\n\tcase needDelim == ',':\n\t\treturn errMissingComma\n\tdefault:\n\t\treturn newInvalidCharacterError([]byte{delim}, \"before next token\")\n\t}\n}\n\n// invalidateDisabledNamespaces marks all disabled namespaces as invalid.\n//\n// For efficiency, Marshal and Unmarshal may disable namespaces since there are\n// more efficient ways to track duplicate names. However, if an error occurs,\n// the namespaces in Encoder or Decoder will be left in an inconsistent state.\n// Mark the namespaces as invalid so that future method calls on\n// Encoder or Decoder will return an error.\nfunc (m *stateMachine) invalidateDisabledNamespaces() {\n\tfor i := 0; i < m.depth(); i++ {\n\t\te := m.index(i)\n\t\tif !e.isActiveNamespace() {\n\t\t\te.invalidateNamespace()\n\t\t}\n\t}\n}\n\n// stateEntry encodes several artifacts within a single unsigned integer:\n//   - whether this represents a JSON object or array,\n//   - whether this object should check for duplicate names, and\n//   - how many elements are in this JSON object or array.\ntype stateEntry uint64\n\nconst (\n\t// The type mask (1 bit) records whether this is a JSON object or array.\n\tstateTypeMask   stateEntry = 0x8000_0000_0000_0000\n\tstateTypeObject stateEntry = 0x8000_0000_0000_0000\n\tstateTypeArray  stateEntry = 0x0000_0000_0000_0000\n\n\t// The name check mask (2 bit) records whether to update\n\t// the namespaces for the current JSON object and\n\t// whether the namespace is valid.\n\tstateNamespaceMask    stateEntry = 0x6000_0000_0000_0000\n\tstateDisableNamespace stateEntry = 0x4000_0000_0000_0000\n\tstateInvalidNamespace stateEntry = 0x2000_0000_0000_0000\n\n\t// The count mask (61 bits) records the number of elements.\n\tstateCountMask    stateEntry = 0x1fff_ffff_ffff_ffff\n\tstateCountLSBMask stateEntry = 0x0000_0000_0000_0001\n\tstateCountOdd     stateEntry = 0x0000_0000_0000_0001\n\tstateCountEven    stateEntry = 0x0000_0000_0000_0000\n)\n\n// length reports the number of elements in the JSON object or array.\n// Each name and value in an object entry is treated as a separate element.\nfunc (e stateEntry) length() int {\n\treturn int(e & stateCountMask)\n}\n\n// isObject reports whether this is a JSON object.\nfunc (e stateEntry) isObject() bool {\n\treturn e&stateTypeMask == stateTypeObject\n}\n\n// isArray reports whether this is a JSON array.\nfunc (e stateEntry) isArray() bool {\n\treturn e&stateTypeMask == stateTypeArray\n}\n\n// needObjectName reports whether the next token must be a JSON string,\n// which is necessary for JSON object names.\nfunc (e stateEntry) needObjectName() bool {\n\treturn e&(stateTypeMask|stateCountLSBMask) == stateTypeObject|stateCountEven\n}\n\n// needImplicitColon reports whether an colon should occur next,\n// which always occurs after JSON object names.\nfunc (e stateEntry) needImplicitColon() bool {\n\treturn e.needObjectValue()\n}\n\n// needObjectValue reports whether the next token must be a JSON value,\n// which is necessary after every JSON object name.\nfunc (e stateEntry) needObjectValue() bool {\n\treturn e&(stateTypeMask|stateCountLSBMask) == stateTypeObject|stateCountOdd\n}\n\n// needImplicitComma reports whether an comma should occur next,\n// which always occurs after a value in a JSON object or array\n// before the next value (or name).\nfunc (e stateEntry) needImplicitComma(next Kind) bool {\n\treturn !e.needObjectValue() && e.length() > 0 && next != '}' && next != ']'\n}\n\n// increment increments the number of elements for the current object or array.\n// This assumes that overflow won't practically be an issue since\n// 1<<bits.OnesCount(stateCountMask) is sufficiently large.\nfunc (e *stateEntry) increment() {\n\t(*e)++\n}\n\n// decrement decrements the number of elements for the current object or array.\n// It is the callers responsibility to ensure that e.length > 0.\nfunc (e *stateEntry) decrement() {\n\t(*e)--\n}\n\n// disableNamespace disables the JSON object namespace such that the\n// Encoder or Decoder no longer updates the namespace.\nfunc (e *stateEntry) disableNamespace() {\n\t*e |= stateDisableNamespace\n}\n\n// isActiveNamespace reports whether the JSON object namespace is actively\n// being updated and used for duplicate name checks.\nfunc (e stateEntry) isActiveNamespace() bool {\n\treturn e&(stateDisableNamespace) == 0\n}\n\n// invalidateNamespace marks the JSON object namespace as being invalid.\nfunc (e *stateEntry) invalidateNamespace() {\n\t*e |= stateInvalidNamespace\n}\n\n// isValidNamespace reports whether the JSON object namespace is valid.\nfunc (e stateEntry) isValidNamespace() bool {\n\treturn e&(stateInvalidNamespace) == 0\n}\n\n// objectNameStack is a stack of names when descending into a JSON object.\n// In contrast to objectNamespaceStack, this only has to remember a single name\n// per JSON object.\n//\n// This data structure may contain offsets to encodeBuffer or decodeBuffer.\n// It violates clean abstraction of layers, but is significantly more efficient.\n// This ensures that popping and pushing in the common case is a trivial\n// push/pop of an offset integer.\n//\n// The zero value is an empty names stack ready for use.\ntype objectNameStack struct {\n\t// offsets is a stack of offsets for each name.\n\t// A non-negative offset is the ending offset into the local names buffer.\n\t// A negative offset is the bit-wise inverse of a starting offset into\n\t// a remote buffer (e.g., encodeBuffer or decodeBuffer).\n\t// A math.MinInt offset at the end implies that the last object is empty.\n\t// Invariant: Positive offsets always occur before negative offsets.\n\toffsets []int\n\t// unquotedNames is a back-to-back concatenation of names.\n\tunquotedNames []byte\n}\n\nfunc (ns *objectNameStack) reset() {\n\tns.offsets = ns.offsets[:0]\n\tns.unquotedNames = ns.unquotedNames[:0]\n\tif cap(ns.offsets) > 1<<6 {\n\t\tns.offsets = nil // avoid pinning arbitrarily large amounts of memory\n\t}\n\tif cap(ns.unquotedNames) > 1<<10 {\n\t\tns.unquotedNames = nil // avoid pinning arbitrarily large amounts of memory\n\t}\n}\n\nfunc (ns *objectNameStack) length() int {\n\treturn len(ns.offsets)\n}\n\n// getUnquoted retrieves the ith unquoted name in the namespace.\n// It returns an empty string if the last object is empty.\n//\n// Invariant: Must call copyQuotedBuffer beforehand.\nfunc (ns *objectNameStack) getUnquoted(i int) []byte {\n\tns.ensureCopiedBuffer()\n\tif i == 0 {\n\t\treturn ns.unquotedNames[:ns.offsets[0]]\n\t} else {\n\t\treturn ns.unquotedNames[ns.offsets[i-1]:ns.offsets[i-0]]\n\t}\n}\n\n// invalidOffset indicates that the last JSON object currently has no name.\nconst invalidOffset = math.MinInt\n\n// push descends into a nested JSON object.\nfunc (ns *objectNameStack) push() {\n\tns.offsets = append(ns.offsets, invalidOffset)\n}\n\n// replaceLastQuotedOffset replaces the last name with the starting offset\n// to the quoted name in some remote buffer. All offsets provided must be\n// relative to the same buffer until copyQuotedBuffer is called.\nfunc (ns *objectNameStack) replaceLastQuotedOffset(i int) {\n\t// Use bit-wise inversion instead of naive multiplication by -1 to avoid\n\t// ambiguity regarding zero (which is a valid offset into the names field).\n\t// Bit-wise inversion is mathematically equivalent to -i-1,\n\t// such that 0 becomes -1, 1 becomes -2, and so forth.\n\t// This ensures that remote offsets are always negative.\n\tns.offsets[len(ns.offsets)-1] = ^i\n}\n\n// replaceLastUnquotedName replaces the last name with the provided name.\n//\n// Invariant: Must call copyQuotedBuffer beforehand.\nfunc (ns *objectNameStack) replaceLastUnquotedName(s string) {\n\tns.ensureCopiedBuffer()\n\tvar startOffset int\n\tif len(ns.offsets) > 1 {\n\t\tstartOffset = ns.offsets[len(ns.offsets)-2]\n\t}\n\tns.unquotedNames = append(ns.unquotedNames[:startOffset], s...)\n\tns.offsets[len(ns.offsets)-1] = len(ns.unquotedNames)\n}\n\n// clearLast removes any name in the last JSON object.\n// It is semantically equivalent to ns.push followed by ns.pop.\nfunc (ns *objectNameStack) clearLast() {\n\tns.offsets[len(ns.offsets)-1] = invalidOffset\n}\n\n// pop ascends out of a nested JSON object.\nfunc (ns *objectNameStack) pop() {\n\tns.offsets = ns.offsets[:len(ns.offsets)-1]\n}\n\n// copyQuotedBuffer copies names from the remote buffer into the local names\n// buffer so that there are no more offset references into the remote buffer.\n// This allows the remote buffer to change contents without affecting\n// the names that this data structure is trying to remember.\nfunc (ns *objectNameStack) copyQuotedBuffer(b []byte) {\n\t// Find the first negative offset.\n\tvar i int\n\tfor i = len(ns.offsets) - 1; i >= 0 && ns.offsets[i] < 0; i-- {\n\t\tcontinue\n\t}\n\n\t// Copy each name from the remote buffer into the local buffer.\n\tfor i = i + 1; i < len(ns.offsets); i++ {\n\t\tif i == len(ns.offsets)-1 && ns.offsets[i] == invalidOffset {\n\t\t\tif i == 0 {\n\t\t\t\tns.offsets[i] = 0\n\t\t\t} else {\n\t\t\t\tns.offsets[i] = ns.offsets[i-1]\n\t\t\t}\n\t\t\tbreak // last JSON object had a push without any names\n\t\t}\n\n\t\t// As a form of Hyrum proofing, we write an invalid character into the\n\t\t// buffer to make misuse of Decoder.ReadToken more obvious.\n\t\t// We need to undo that mutation here.\n\t\tquotedName := b[^ns.offsets[i]:]\n\t\tif quotedName[0] == invalidateBufferByte {\n\t\t\tquotedName[0] = '\"'\n\t\t}\n\n\t\t// Append the unquoted name to the local buffer.\n\t\tvar startOffset int\n\t\tif i > 0 {\n\t\t\tstartOffset = ns.offsets[i-1]\n\t\t}\n\t\tif n := consumeSimpleString(quotedName); n > 0 {\n\t\t\tns.unquotedNames = append(ns.unquotedNames[:startOffset], quotedName[len(`\"`):n-len(`\"`)]...)\n\t\t} else {\n\t\t\tns.unquotedNames, _ = unescapeString(ns.unquotedNames[:startOffset], quotedName)\n\t\t}\n\t\tns.offsets[i] = len(ns.unquotedNames)\n\t}\n}\n\nfunc (ns *objectNameStack) ensureCopiedBuffer() {\n\tif len(ns.offsets) > 0 && ns.offsets[len(ns.offsets)-1] < 0 {\n\t\tpanic(\"BUG: copyQuotedBuffer not called beforehand\")\n\t}\n}\n\n// objectNamespaceStack is a stack of object namespaces.\n// This data structure assists in detecting duplicate names.\ntype objectNamespaceStack []objectNamespace\n\n// reset resets the object namespace stack.\nfunc (nss *objectNamespaceStack) reset() {\n\tif cap(*nss) > 1<<10 {\n\t\t*nss = nil\n\t}\n\t*nss = (*nss)[:0]\n}\n\n// push starts a new namespace for a nested JSON object.\nfunc (nss *objectNamespaceStack) push() {\n\tif cap(*nss) > len(*nss) {\n\t\t*nss = (*nss)[:len(*nss)+1]\n\t\tnss.last().reset()\n\t} else {\n\t\t*nss = append(*nss, objectNamespace{})\n\t}\n}\n\n// last returns a pointer to the last JSON object namespace.\nfunc (nss objectNamespaceStack) last() *objectNamespace {\n\treturn &nss[len(nss)-1]\n}\n\n// pop terminates the namespace for a nested JSON object.\nfunc (nss *objectNamespaceStack) pop() {\n\t*nss = (*nss)[:len(*nss)-1]\n}\n\n// objectNamespace is the namespace for a JSON object.\n// In contrast to objectNameStack, this needs to remember a all names\n// per JSON object.\n//\n// The zero value is an empty namespace ready for use.\ntype objectNamespace struct {\n\t// It relies on a linear search over all the names before switching\n\t// to use a Go map for direct lookup.\n\n\t// endOffsets is a list of offsets to the end of each name in buffers.\n\t// The length of offsets is the number of names in the namespace.\n\tendOffsets []uint\n\t// allUnquotedNames is a back-to-back concatenation of every name in the namespace.\n\tallUnquotedNames []byte\n\t// mapNames is a Go map containing every name in the namespace.\n\t// Only valid if non-nil.\n\tmapNames map[string]struct{}\n}\n\n// reset resets the namespace to be empty.\nfunc (ns *objectNamespace) reset() {\n\tns.endOffsets = ns.endOffsets[:0]\n\tns.allUnquotedNames = ns.allUnquotedNames[:0]\n\tns.mapNames = nil\n\tif cap(ns.endOffsets) > 1<<6 {\n\t\tns.endOffsets = nil // avoid pinning arbitrarily large amounts of memory\n\t}\n\tif cap(ns.allUnquotedNames) > 1<<10 {\n\t\tns.allUnquotedNames = nil // avoid pinning arbitrarily large amounts of memory\n\t}\n}\n\n// length reports the number of names in the namespace.\nfunc (ns *objectNamespace) length() int {\n\treturn len(ns.endOffsets)\n}\n\n// getUnquoted retrieves the ith unquoted name in the namespace.\nfunc (ns *objectNamespace) getUnquoted(i int) []byte {\n\tif i == 0 {\n\t\treturn ns.allUnquotedNames[:ns.endOffsets[0]]\n\t} else {\n\t\treturn ns.allUnquotedNames[ns.endOffsets[i-1]:ns.endOffsets[i-0]]\n\t}\n}\n\n// lastUnquoted retrieves the last name in the namespace.\nfunc (ns *objectNamespace) lastUnquoted() []byte {\n\treturn ns.getUnquoted(ns.length() - 1)\n}\n\n// insertQuoted inserts a name and reports whether it was inserted,\n// which only occurs if name is not already in the namespace.\n// The provided name must be a valid JSON string.\nfunc (ns *objectNamespace) insertQuoted(name []byte, isVerbatim bool) bool {\n\tif isVerbatim {\n\t\tname = name[len(`\"`) : len(name)-len(`\"`)]\n\t}\n\treturn ns.insert(name, !isVerbatim)\n}\nfunc (ns *objectNamespace) insertUnquoted(name []byte) bool {\n\treturn ns.insert(name, false)\n}\nfunc (ns *objectNamespace) insert(name []byte, quoted bool) bool {\n\tvar allNames []byte\n\tif quoted {\n\t\tallNames, _ = unescapeString(ns.allUnquotedNames, name)\n\t} else {\n\t\tallNames = append(ns.allUnquotedNames, name...)\n\t}\n\tname = allNames[len(ns.allUnquotedNames):]\n\n\t// Switch to a map if the buffer is too large for linear search.\n\t// This does not add the current name to the map.\n\tif ns.mapNames == nil && (ns.length() > 64 || len(ns.allUnquotedNames) > 1024) {\n\t\tns.mapNames = make(map[string]struct{})\n\t\tvar startOffset uint\n\t\tfor _, endOffset := range ns.endOffsets {\n\t\t\tname := ns.allUnquotedNames[startOffset:endOffset]\n\t\t\tns.mapNames[string(name)] = struct{}{} // allocates a new string\n\t\t\tstartOffset = endOffset\n\t\t}\n\t}\n\n\tif ns.mapNames == nil {\n\t\t// Perform linear search over the buffer to find matching names.\n\t\t// It provides O(n) lookup, but does not require any allocations.\n\t\tvar startOffset uint\n\t\tfor _, endOffset := range ns.endOffsets {\n\t\t\tif string(ns.allUnquotedNames[startOffset:endOffset]) == string(name) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tstartOffset = endOffset\n\t\t}\n\t} else {\n\t\t// Use the map if it is populated.\n\t\t// It provides O(1) lookup, but requires a string allocation per name.\n\t\tif _, ok := ns.mapNames[string(name)]; ok {\n\t\t\treturn false\n\t\t}\n\t\tns.mapNames[string(name)] = struct{}{} // allocates a new string\n\t}\n\n\tns.allUnquotedNames = allNames\n\tns.endOffsets = append(ns.endOffsets, uint(len(ns.allUnquotedNames)))\n\treturn true\n}\n\n// removeLast removes the last name in the namespace.\nfunc (ns *objectNamespace) removeLast() {\n\tif ns.mapNames != nil {\n\t\tdelete(ns.mapNames, string(ns.lastUnquoted()))\n\t}\n\tif ns.length()-1 == 0 {\n\t\tns.endOffsets = ns.endOffsets[:0]\n\t\tns.allUnquotedNames = ns.allUnquotedNames[:0]\n\t} else {\n\t\tns.endOffsets = ns.endOffsets[:ns.length()-1]\n\t\tns.allUnquotedNames = ns.allUnquotedNames[:ns.endOffsets[ns.length()-1]]\n\t}\n}\n\ntype uintSet64 uint64\n\nfunc (s uintSet64) has(i uint) bool { return s&(1<<i) > 0 }\nfunc (s *uintSet64) set(i uint)     { *s |= 1 << i }\n\n// uintSet is a set of unsigned integers.\n// It is optimized for most integers being close to zero.\ntype uintSet struct {\n\tlo uintSet64\n\thi []uintSet64\n}\n\n// has reports whether i is in the set.\nfunc (s *uintSet) has(i uint) bool {\n\tif i < 64 {\n\t\treturn s.lo.has(i)\n\t} else {\n\t\ti -= 64\n\t\tiHi, iLo := int(i/64), i%64\n\t\treturn iHi < len(s.hi) && s.hi[iHi].has(iLo)\n\t}\n}\n\n// insert inserts i into the set and reports whether it was the first insertion.\nfunc (s *uintSet) insert(i uint) bool {\n\t// TODO: Make this inlineable at least for the lower 64-bit case.\n\tif i < 64 {\n\t\thas := s.lo.has(i)\n\t\ts.lo.set(i)\n\t\treturn !has\n\t} else {\n\t\ti -= 64\n\t\tiHi, iLo := int(i/64), i%64\n\t\tif iHi >= len(s.hi) {\n\t\t\ts.hi = append(s.hi, make([]uintSet64, iHi+1-len(s.hi))...)\n\t\t\ts.hi = s.hi[:cap(s.hi)]\n\t\t}\n\t\thas := s.hi[iHi].has(iLo)\n\t\ts.hi[iHi].set(iLo)\n\t\treturn !has\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/token.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"math\"\n\t\"strconv\"\n)\n\n// NOTE: Token is analogous to v1 json.Token.\n\nconst (\n\tmaxInt64  = math.MaxInt64\n\tminInt64  = math.MinInt64\n\tmaxUint64 = math.MaxUint64\n\tminUint64 = 0 // for consistency and readability purposes\n\n\tinvalidTokenPanic = \"invalid json.Token; it has been voided by a subsequent json.Decoder call\"\n)\n\n// Token represents a lexical JSON token, which may be one of the following:\n//   - a JSON literal (i.e., null, true, or false)\n//   - a JSON string (e.g., \"hello, world!\")\n//   - a JSON number (e.g., 123.456)\n//   - a start or end delimiter for a JSON object (i.e., { or } )\n//   - a start or end delimiter for a JSON array (i.e., [ or ] )\n//\n// A Token cannot represent entire array or object values, while a RawValue can.\n// There is no Token to represent commas and colons since\n// these structural tokens can be inferred from the surrounding context.\ntype Token struct {\n\tnonComparable\n\n\t// Tokens can exist in either a \"raw\" or an \"exact\" form.\n\t// Tokens produced by the Decoder are in the \"raw\" form.\n\t// Tokens returned by constructors are usually in the \"exact\" form.\n\t// The Encoder accepts Tokens in either the \"raw\" or \"exact\" form.\n\t//\n\t// The following chart shows the possible values for each Token type:\n\t//\t╔═════════════════╦════════════╤════════════╤════════════╗\n\t//\t║ Token type      ║ raw field  │ str field  │ num field  ║\n\t//\t╠═════════════════╬════════════╪════════════╪════════════╣\n\t//\t║ null   (raw)    ║ \"null\"     │ \"\"         │ 0          ║\n\t//\t║ false  (raw)    ║ \"false\"    │ \"\"         │ 0          ║\n\t//\t║ true   (raw)    ║ \"true\"     │ \"\"         │ 0          ║\n\t//\t║ string (raw)    ║ non-empty  │ \"\"         │ offset     ║\n\t//\t║ string (string) ║ nil        │ non-empty  │ 0          ║\n\t//\t║ number (raw)    ║ non-empty  │ \"\"         │ offset     ║\n\t//\t║ number (float)  ║ nil        │ \"f\"        │ non-zero   ║\n\t//\t║ number (int64)  ║ nil        │ \"i\"        │ non-zero   ║\n\t//\t║ number (uint64) ║ nil        │ \"u\"        │ non-zero   ║\n\t//\t║ object (delim)  ║ \"{\" or \"}\" │ \"\"         │ 0          ║\n\t//\t║ array  (delim)  ║ \"[\" or \"]\" │ \"\"         │ 0          ║\n\t//\t╚═════════════════╩════════════╧════════════╧════════════╝\n\t//\n\t// Notes:\n\t//   - For tokens stored in \"raw\" form, the num field contains the\n\t//     absolute offset determined by raw.previousOffsetStart().\n\t//     The buffer itself is stored in raw.previousBuffer().\n\t//   - JSON literals and structural characters are always in the \"raw\" form.\n\t//   - JSON strings and numbers can be in either \"raw\" or \"exact\" forms.\n\t//   - The exact zero value of JSON strings and numbers in the \"exact\" forms\n\t//     have ambiguous representation. Thus, they are always represented\n\t//     in the \"raw\" form.\n\n\t// raw contains a reference to the raw decode buffer.\n\t// If non-nil, then its value takes precedence over str and num.\n\t// It is only valid if num == raw.previousOffsetStart().\n\traw *decodeBuffer\n\n\t// str is the unescaped JSON string if num is zero.\n\t// Otherwise, it is \"f\", \"i\", or \"u\" if num should be interpreted\n\t// as a float64, int64, or uint64, respectively.\n\tstr string\n\n\t// num is a float64, int64, or uint64 stored as a uint64 value.\n\t// It is non-zero for any JSON number in the \"exact\" form.\n\tnum uint64\n}\n\n// TODO: Does representing 1-byte delimiters as *decodeBuffer cause performance issues?\n\nvar (\n\tNull  Token = rawToken(\"null\")\n\tFalse Token = rawToken(\"false\")\n\tTrue  Token = rawToken(\"true\")\n\n\tObjectStart Token = rawToken(\"{\")\n\tObjectEnd   Token = rawToken(\"}\")\n\tArrayStart  Token = rawToken(\"[\")\n\tArrayEnd    Token = rawToken(\"]\")\n\n\tzeroString Token = rawToken(`\"\"`)\n\tzeroNumber Token = rawToken(`0`)\n\n\tnanString  Token = String(\"NaN\")\n\tpinfString Token = String(\"Infinity\")\n\tninfString Token = String(\"-Infinity\")\n)\n\nfunc rawToken(s string) Token {\n\treturn Token{raw: &decodeBuffer{buf: []byte(s), prevStart: 0, prevEnd: len(s)}}\n}\n\n// Bool constructs a Token representing a JSON boolean.\nfunc Bool(b bool) Token {\n\tif b {\n\t\treturn True\n\t}\n\treturn False\n}\n\n// String constructs a Token representing a JSON string.\n// The provided string should contain valid UTF-8, otherwise invalid characters\n// may be mangled as the Unicode replacement character.\nfunc String(s string) Token {\n\tif len(s) == 0 {\n\t\treturn zeroString\n\t}\n\treturn Token{str: s}\n}\n\n// Float constructs a Token representing a JSON number.\n// The values NaN, +Inf, and -Inf will be represented\n// as a JSON string with the values \"NaN\", \"Infinity\", and \"-Infinity\".\nfunc Float(n float64) Token {\n\tswitch {\n\tcase math.Float64bits(n) == 0:\n\t\treturn zeroNumber\n\tcase math.IsNaN(n):\n\t\treturn nanString\n\tcase math.IsInf(n, +1):\n\t\treturn pinfString\n\tcase math.IsInf(n, -1):\n\t\treturn ninfString\n\t}\n\treturn Token{str: \"f\", num: math.Float64bits(n)}\n}\n\n// Int constructs a Token representing a JSON number from an int64.\nfunc Int(n int64) Token {\n\tif n == 0 {\n\t\treturn zeroNumber\n\t}\n\treturn Token{str: \"i\", num: uint64(n)}\n}\n\n// Uint constructs a Token representing a JSON number from a uint64.\nfunc Uint(n uint64) Token {\n\tif n == 0 {\n\t\treturn zeroNumber\n\t}\n\treturn Token{str: \"u\", num: uint64(n)}\n}\n\n// Clone makes a copy of the Token such that its value remains valid\n// even after a subsequent Decoder.Read call.\nfunc (t Token) Clone() Token {\n\t// TODO: Allow caller to avoid any allocations?\n\tif raw := t.raw; raw != nil {\n\t\t// Avoid copying globals.\n\t\tif t.raw.prevStart == 0 {\n\t\t\tswitch t.raw {\n\t\t\tcase Null.raw:\n\t\t\t\treturn Null\n\t\t\tcase False.raw:\n\t\t\t\treturn False\n\t\t\tcase True.raw:\n\t\t\t\treturn True\n\t\t\tcase ObjectStart.raw:\n\t\t\t\treturn ObjectStart\n\t\t\tcase ObjectEnd.raw:\n\t\t\t\treturn ObjectEnd\n\t\t\tcase ArrayStart.raw:\n\t\t\t\treturn ArrayStart\n\t\t\tcase ArrayEnd.raw:\n\t\t\t\treturn ArrayEnd\n\t\t\t}\n\t\t}\n\n\t\tif uint64(raw.previousOffsetStart()) != t.num {\n\t\t\tpanic(invalidTokenPanic)\n\t\t}\n\t\t// TODO(https://go.dev/issue/45038): Use bytes.Clone.\n\t\tbuf := append([]byte(nil), raw.previousBuffer()...)\n\t\treturn Token{raw: &decodeBuffer{buf: buf, prevStart: 0, prevEnd: len(buf)}}\n\t}\n\treturn t\n}\n\n// Bool returns the value for a JSON boolean.\n// It panics if the token kind is not a JSON boolean.\nfunc (t Token) Bool() bool {\n\tswitch t.raw {\n\tcase True.raw:\n\t\treturn true\n\tcase False.raw:\n\t\treturn false\n\tdefault:\n\t\tpanic(\"invalid JSON token kind: \" + t.Kind().String())\n\t}\n}\n\n// appendString appends a JSON string to dst and returns it.\n// It panics if t is not a JSON string.\nfunc (t Token) appendString(dst []byte, validateUTF8, preserveRaw bool, escapeRune func(rune) bool) ([]byte, error) {\n\tif raw := t.raw; raw != nil {\n\t\t// Handle raw string value.\n\t\tbuf := raw.previousBuffer()\n\t\tif Kind(buf[0]) == '\"' {\n\t\t\tif escapeRune == nil && consumeSimpleString(buf) == len(buf) {\n\t\t\t\treturn append(dst, buf...), nil\n\t\t\t}\n\t\t\tdst, _, err := reformatString(dst, buf, validateUTF8, preserveRaw, escapeRune)\n\t\t\treturn dst, err\n\t\t}\n\t} else if len(t.str) != 0 && t.num == 0 {\n\t\t// Handle exact string value.\n\t\treturn appendString(dst, t.str, validateUTF8, escapeRune)\n\t}\n\n\tpanic(\"invalid JSON token kind: \" + t.Kind().String())\n}\n\n// String returns the unescaped string value for a JSON string.\n// For other JSON kinds, this returns the raw JSON representation.\nfunc (t Token) String() string {\n\t// This is inlinable to take advantage of \"function outlining\".\n\t// This avoids an allocation for the string(b) conversion\n\t// if the caller does not use the string in an escaping manner.\n\t// See https://blog.filippo.io/efficient-go-apis-with-the-inliner/\n\ts, b := t.string()\n\tif len(b) > 0 {\n\t\treturn string(b)\n\t}\n\treturn s\n}\nfunc (t Token) string() (string, []byte) {\n\tif raw := t.raw; raw != nil {\n\t\tif uint64(raw.previousOffsetStart()) != t.num {\n\t\t\tpanic(invalidTokenPanic)\n\t\t}\n\t\tbuf := raw.previousBuffer()\n\t\tif buf[0] == '\"' {\n\t\t\t// TODO: Preserve valueFlags in Token?\n\t\t\tisVerbatim := consumeSimpleString(buf) == len(buf)\n\t\t\treturn \"\", unescapeStringMayCopy(buf, isVerbatim)\n\t\t}\n\t\t// Handle tokens that are not JSON strings for fmt.Stringer.\n\t\treturn \"\", buf\n\t}\n\tif len(t.str) != 0 && t.num == 0 {\n\t\treturn t.str, nil\n\t}\n\t// Handle tokens that are not JSON strings for fmt.Stringer.\n\tif t.num > 0 {\n\t\tswitch t.str[0] {\n\t\tcase 'f':\n\t\t\treturn string(appendNumber(nil, math.Float64frombits(t.num), 64)), nil\n\t\tcase 'i':\n\t\t\treturn strconv.FormatInt(int64(t.num), 10), nil\n\t\tcase 'u':\n\t\t\treturn strconv.FormatUint(uint64(t.num), 10), nil\n\t\t}\n\t}\n\treturn \"<invalid json.Token>\", nil\n}\n\n// appendNumber appends a JSON number to dst and returns it.\n// It panics if t is not a JSON number.\nfunc (t Token) appendNumber(dst []byte, canonicalize bool) ([]byte, error) {\n\tif raw := t.raw; raw != nil {\n\t\t// Handle raw number value.\n\t\tbuf := raw.previousBuffer()\n\t\tif Kind(buf[0]).normalize() == '0' {\n\t\t\tif !canonicalize {\n\t\t\t\treturn append(dst, buf...), nil\n\t\t\t}\n\t\t\tdst, _, err := reformatNumber(dst, buf, canonicalize)\n\t\t\treturn dst, err\n\t\t}\n\t} else if t.num != 0 {\n\t\t// Handle exact number value.\n\t\tswitch t.str[0] {\n\t\tcase 'f':\n\t\t\treturn appendNumber(dst, math.Float64frombits(t.num), 64), nil\n\t\tcase 'i':\n\t\t\treturn strconv.AppendInt(dst, int64(t.num), 10), nil\n\t\tcase 'u':\n\t\t\treturn strconv.AppendUint(dst, uint64(t.num), 10), nil\n\t\t}\n\t}\n\n\tpanic(\"invalid JSON token kind: \" + t.Kind().String())\n}\n\n// Float returns the floating-point value for a JSON number.\n// It returns a NaN, +Inf, or -Inf value for any JSON string\n// with the values \"NaN\", \"Infinity\", or \"-Infinity\".\n// It panics for all other cases.\nfunc (t Token) Float() float64 {\n\tif raw := t.raw; raw != nil {\n\t\t// Handle raw number value.\n\t\tif uint64(raw.previousOffsetStart()) != t.num {\n\t\t\tpanic(invalidTokenPanic)\n\t\t}\n\t\tbuf := raw.previousBuffer()\n\t\tif Kind(buf[0]).normalize() == '0' {\n\t\t\tfv, _ := parseFloat(buf, 64)\n\t\t\treturn fv\n\t\t}\n\t} else if t.num != 0 {\n\t\t// Handle exact number value.\n\t\tswitch t.str[0] {\n\t\tcase 'f':\n\t\t\treturn math.Float64frombits(t.num)\n\t\tcase 'i':\n\t\t\treturn float64(int64(t.num))\n\t\tcase 'u':\n\t\t\treturn float64(uint64(t.num))\n\t\t}\n\t}\n\n\t// Handle string values with \"NaN\", \"Infinity\", or \"-Infinity\".\n\tif t.Kind() == '\"' {\n\t\tswitch t.String() {\n\t\tcase \"NaN\":\n\t\t\treturn math.NaN()\n\t\tcase \"Infinity\":\n\t\t\treturn math.Inf(+1)\n\t\tcase \"-Infinity\":\n\t\t\treturn math.Inf(-1)\n\t\t}\n\t}\n\n\tpanic(\"invalid JSON token kind: \" + t.Kind().String())\n}\n\n// Int returns the signed integer value for a JSON number.\n// The fractional component of any number is ignored (truncation toward zero).\n// Any number beyond the representation of an int64 will be saturated\n// to the closest representable value.\n// It panics if the token kind is not a JSON number.\nfunc (t Token) Int() int64 {\n\tif raw := t.raw; raw != nil {\n\t\t// Handle raw integer value.\n\t\tif uint64(raw.previousOffsetStart()) != t.num {\n\t\t\tpanic(invalidTokenPanic)\n\t\t}\n\t\tneg := false\n\t\tbuf := raw.previousBuffer()\n\t\tif len(buf) > 0 && buf[0] == '-' {\n\t\t\tneg, buf = true, buf[1:]\n\t\t}\n\t\tif numAbs, ok := parseDecUint(buf); ok {\n\t\t\tif neg {\n\t\t\t\tif numAbs > -minInt64 {\n\t\t\t\t\treturn minInt64\n\t\t\t\t}\n\t\t\t\treturn -1 * int64(numAbs)\n\t\t\t} else {\n\t\t\t\tif numAbs > +maxInt64 {\n\t\t\t\t\treturn maxInt64\n\t\t\t\t}\n\t\t\t\treturn +1 * int64(numAbs)\n\t\t\t}\n\t\t}\n\t} else if t.num != 0 {\n\t\t// Handle exact integer value.\n\t\tswitch t.str[0] {\n\t\tcase 'i':\n\t\t\treturn int64(t.num)\n\t\tcase 'u':\n\t\t\tif t.num > maxInt64 {\n\t\t\t\treturn maxInt64\n\t\t\t}\n\t\t\treturn int64(t.num)\n\t\t}\n\t}\n\n\t// Handle JSON number that is a floating-point value.\n\tif t.Kind() == '0' {\n\t\tswitch fv := t.Float(); {\n\t\tcase fv >= maxInt64:\n\t\t\treturn maxInt64\n\t\tcase fv <= minInt64:\n\t\t\treturn minInt64\n\t\tdefault:\n\t\t\treturn int64(fv) // truncation toward zero\n\t\t}\n\t}\n\n\tpanic(\"invalid JSON token kind: \" + t.Kind().String())\n}\n\n// Uint returns the unsigned integer value for a JSON number.\n// The fractional component of any number is ignored (truncation toward zero).\n// Any number beyond the representation of an uint64 will be saturated\n// to the closest representable value.\n// It panics if the token kind is not a JSON number.\nfunc (t Token) Uint() uint64 {\n\t// NOTE: This accessor returns 0 for any negative JSON number,\n\t// which might be surprising, but is at least consistent with the behavior\n\t// of saturating out-of-bounds numbers to the closest representable number.\n\n\tif raw := t.raw; raw != nil {\n\t\t// Handle raw integer value.\n\t\tif uint64(raw.previousOffsetStart()) != t.num {\n\t\t\tpanic(invalidTokenPanic)\n\t\t}\n\t\tneg := false\n\t\tbuf := raw.previousBuffer()\n\t\tif len(buf) > 0 && buf[0] == '-' {\n\t\t\tneg, buf = true, buf[1:]\n\t\t}\n\t\tif num, ok := parseDecUint(buf); ok {\n\t\t\tif neg {\n\t\t\t\treturn minUint64\n\t\t\t}\n\t\t\treturn num\n\t\t}\n\t} else if t.num != 0 {\n\t\t// Handle exact integer value.\n\t\tswitch t.str[0] {\n\t\tcase 'u':\n\t\t\treturn t.num\n\t\tcase 'i':\n\t\t\tif int64(t.num) < minUint64 {\n\t\t\t\treturn minUint64\n\t\t\t}\n\t\t\treturn uint64(int64(t.num))\n\t\t}\n\t}\n\n\t// Handle JSON number that is a floating-point value.\n\tif t.Kind() == '0' {\n\t\tswitch fv := t.Float(); {\n\t\tcase fv >= maxUint64:\n\t\t\treturn maxUint64\n\t\tcase fv <= minUint64:\n\t\t\treturn minUint64\n\t\tdefault:\n\t\t\treturn uint64(fv) // truncation toward zero\n\t\t}\n\t}\n\n\tpanic(\"invalid JSON token kind: \" + t.Kind().String())\n}\n\n// Kind returns the token kind.\nfunc (t Token) Kind() Kind {\n\tswitch {\n\tcase t.raw != nil:\n\t\traw := t.raw\n\t\tif uint64(raw.previousOffsetStart()) != t.num {\n\t\t\tpanic(invalidTokenPanic)\n\t\t}\n\t\treturn Kind(t.raw.buf[raw.prevStart]).normalize()\n\tcase t.num != 0:\n\t\treturn '0'\n\tcase len(t.str) != 0:\n\t\treturn '\"'\n\tdefault:\n\t\treturn invalidKind\n\t}\n}\n\n// Kind represents each possible JSON token kind with a single byte,\n// which is conveniently the first byte of that kind's grammar\n// with the restriction that numbers always be represented with '0':\n//\n//   - 'n': null\n//   - 'f': false\n//   - 't': true\n//   - '\"': string\n//   - '0': number\n//   - '{': object start\n//   - '}': object end\n//   - '[': array start\n//   - ']': array end\n//\n// An invalid kind is usually represented using 0,\n// but may be non-zero due to invalid JSON data.\ntype Kind byte\n\nconst invalidKind Kind = 0\n\n// String prints the kind in a humanly readable fashion.\nfunc (k Kind) String() string {\n\tswitch k {\n\tcase 'n':\n\t\treturn \"null\"\n\tcase 'f':\n\t\treturn \"false\"\n\tcase 't':\n\t\treturn \"true\"\n\tcase '\"':\n\t\treturn \"string\"\n\tcase '0':\n\t\treturn \"number\"\n\tcase '{':\n\t\treturn \"{\"\n\tcase '}':\n\t\treturn \"}\"\n\tcase '[':\n\t\treturn \"[\"\n\tcase ']':\n\t\treturn \"]\"\n\tdefault:\n\t\treturn \"<invalid json.Kind: \" + quoteRune([]byte{byte(k)}) + \">\"\n\t}\n}\n\n// normalize coalesces all possible starting characters of a number as just '0'.\nfunc (k Kind) normalize() Kind {\n\tif k == '-' || ('0' <= k && k <= '9') {\n\t\treturn '0'\n\t}\n\treturn k\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json/value.go",
    "content": "// Copyright 2020 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"io\"\n\t\"sort\"\n\t\"sync\"\n\t\"unicode/utf16\"\n\t\"unicode/utf8\"\n)\n\n// NOTE: RawValue is analogous to v1 json.RawMessage.\n\n// RawValue represents a single raw JSON value, which may be one of the following:\n//   - a JSON literal (i.e., null, true, or false)\n//   - a JSON string (e.g., \"hello, world!\")\n//   - a JSON number (e.g., 123.456)\n//   - an entire JSON object (e.g., {\"fizz\":\"buzz\"} )\n//   - an entire JSON array (e.g., [1,2,3] )\n//\n// RawValue can represent entire array or object values, while Token cannot.\n// RawValue may contain leading and/or trailing whitespace.\ntype RawValue []byte\n\n// Clone returns a copy of v.\nfunc (v RawValue) Clone() RawValue {\n\tif v == nil {\n\t\treturn nil\n\t}\n\treturn append(RawValue{}, v...)\n}\n\n// String returns the string formatting of v.\nfunc (v RawValue) String() string {\n\tif v == nil {\n\t\treturn \"null\"\n\t}\n\treturn string(v)\n}\n\n// IsValid reports whether the raw JSON value is syntactically valid\n// according to RFC 7493.\n//\n// It verifies whether the input is properly encoded as UTF-8,\n// that escape sequences within strings decode to valid Unicode codepoints, and\n// that all names in each object are unique.\n// It does not verify whether numbers are representable within the limits\n// of any common numeric type (e.g., float64, int64, or uint64).\nfunc (v RawValue) IsValid() bool {\n\td := getBufferedDecoder(v, DecodeOptions{})\n\tdefer putBufferedDecoder(d)\n\t_, errVal := d.ReadValue()\n\t_, errEOF := d.ReadToken()\n\treturn errVal == nil && errEOF == io.EOF\n}\n\n// Compact removes all whitespace from the raw JSON value.\n//\n// It does not reformat JSON strings to use any other representation.\n// It is guaranteed to succeed if the input is valid.\n// If the value is already compacted, then the buffer is not mutated.\nfunc (v *RawValue) Compact() error {\n\treturn v.reformat(false, false, \"\", \"\")\n}\n\n// Indent reformats the whitespace in the raw JSON value so that each element\n// in a JSON object or array begins on a new, indented line beginning with\n// prefix followed by one or more copies of indent according to the nesting.\n// The value does not begin with the prefix nor any indention,\n// to make it easier to embed inside other formatted JSON data.\n//\n// It does not reformat JSON strings to use any other representation.\n// It is guaranteed to succeed if the input is valid.\n// If the value is already indented properly, then the buffer is not mutated.\nfunc (v *RawValue) Indent(prefix, indent string) error {\n\treturn v.reformat(false, true, prefix, indent)\n}\n\n// Canonicalize canonicalizes the raw JSON value according to the\n// JSON Canonicalization Scheme (JCS) as defined by RFC 8785\n// where it produces a stable representation of a JSON value.\n//\n// The output stability is dependent on the stability of the application data\n// (see RFC 8785, Appendix E). It cannot produce stable output from\n// fundamentally unstable input. For example, if the JSON value\n// contains ephemeral data (e.g., a frequently changing timestamp),\n// then the value is still unstable regardless of whether this is called.\n//\n// Note that JCS treats all JSON numbers as IEEE 754 double precision numbers.\n// Any numbers with precision beyond what is representable by that form\n// will lose their precision when canonicalized. For example, integer values\n// beyond ±2⁵³ will lose their precision. It is recommended that\n// int64 and uint64 data types be represented as a JSON string.\n//\n// It is guaranteed to succeed if the input is valid.\n// If the value is already canonicalized, then the buffer is not mutated.\nfunc (v *RawValue) Canonicalize() error {\n\treturn v.reformat(true, false, \"\", \"\")\n}\n\n// TODO: Instead of implementing the v1 Marshaler/Unmarshaler,\n// consider implementing the v2 versions instead.\n\n// MarshalJSON returns v as the JSON encoding of v.\n// It returns the stored value as the raw JSON output without any validation.\n// If v is nil, then this returns a JSON null.\nfunc (v RawValue) MarshalJSON() ([]byte, error) {\n\t// NOTE: This matches the behavior of v1 json.RawMessage.MarshalJSON.\n\tif v == nil {\n\t\treturn []byte(\"null\"), nil\n\t}\n\treturn v, nil\n}\n\n// UnmarshalJSON sets v as the JSON encoding of b.\n// It stores a copy of the provided raw JSON input without any validation.\nfunc (v *RawValue) UnmarshalJSON(b []byte) error {\n\t// NOTE: This matches the behavior of v1 json.RawMessage.UnmarshalJSON.\n\tif v == nil {\n\t\treturn errors.New(\"json.RawValue: UnmarshalJSON on nil pointer\")\n\t}\n\t*v = append((*v)[:0], b...)\n\treturn nil\n}\n\n// Kind returns the starting token kind.\n// For a valid value, this will never include '}' or ']'.\nfunc (v RawValue) Kind() Kind {\n\tif v := v[consumeWhitespace(v):]; len(v) > 0 {\n\t\treturn Kind(v[0]).normalize()\n\t}\n\treturn invalidKind\n}\n\nfunc (v *RawValue) reformat(canonical, multiline bool, prefix, indent string) error {\n\tvar eo EncodeOptions\n\tif canonical {\n\t\teo.AllowInvalidUTF8 = false    // per RFC 8785, section 3.2.4\n\t\teo.AllowDuplicateNames = false // per RFC 8785, section 3.1\n\t\teo.canonicalizeNumbers = true  // per RFC 8785, section 3.2.2.3\n\t\teo.EscapeRune = nil            // per RFC 8785, section 3.2.2.2\n\t\teo.multiline = false           // per RFC 8785, section 3.2.1\n\t} else {\n\t\tif s := trimLeftSpaceTab(prefix); len(s) > 0 {\n\t\t\tpanic(\"json: invalid character \" + quoteRune([]byte(s)) + \" in indent prefix\")\n\t\t}\n\t\tif s := trimLeftSpaceTab(indent); len(s) > 0 {\n\t\t\tpanic(\"json: invalid character \" + quoteRune([]byte(s)) + \" in indent\")\n\t\t}\n\t\teo.AllowInvalidUTF8 = true\n\t\teo.AllowDuplicateNames = true\n\t\teo.preserveRawStrings = true\n\t\teo.multiline = multiline // in case indent is empty\n\t\teo.IndentPrefix = prefix\n\t\teo.Indent = indent\n\t}\n\teo.omitTopLevelNewline = true\n\n\t// Write the entire value to reformat all tokens and whitespace.\n\te := getBufferedEncoder(eo)\n\tdefer putBufferedEncoder(e)\n\tif err := e.WriteValue(*v); err != nil {\n\t\treturn err\n\t}\n\n\t// For canonical output, we may need to reorder object members.\n\tif canonical {\n\t\t// Obtain a buffered encoder just to use its internal buffer as\n\t\t// a scratch buffer in reorderObjects for reordering object members.\n\t\te2 := getBufferedEncoder(EncodeOptions{})\n\t\tdefer putBufferedEncoder(e2)\n\n\t\t// Disable redundant checks performed earlier during encoding.\n\t\td := getBufferedDecoder(e.buf, DecodeOptions{AllowInvalidUTF8: true, AllowDuplicateNames: true})\n\t\tdefer putBufferedDecoder(d)\n\t\treorderObjects(d, &e2.buf) // per RFC 8785, section 3.2.3\n\t}\n\n\t// Store the result back into the value if different.\n\tif !bytes.Equal(*v, e.buf) {\n\t\t*v = append((*v)[:0], e.buf...)\n\t}\n\treturn nil\n}\n\nfunc trimLeftSpaceTab(s string) string {\n\tfor i, r := range s {\n\t\tswitch r {\n\t\tcase ' ', '\\t':\n\t\tdefault:\n\t\t\treturn s[i:]\n\t\t}\n\t}\n\treturn \"\"\n}\n\ntype memberName struct {\n\t// name is the unescaped name.\n\tname []byte\n\t// before and after are byte offsets into Decoder.buf that represents\n\t// the entire name/value pair. It may contain leading commas.\n\tbefore, after int64\n}\n\nvar memberNamePool = sync.Pool{New: func() any { return new(memberNames) }}\n\nfunc getMemberNames() *memberNames {\n\tns := memberNamePool.Get().(*memberNames)\n\t*ns = (*ns)[:0]\n\treturn ns\n}\nfunc putMemberNames(ns *memberNames) {\n\tif cap(*ns) < 1<<10 {\n\t\tfor i := range *ns {\n\t\t\t(*ns)[i] = memberName{} // avoid pinning name\n\t\t}\n\t\tmemberNamePool.Put(ns)\n\t}\n}\n\ntype memberNames []memberName\n\nfunc (m *memberNames) Len() int           { return len(*m) }\nfunc (m *memberNames) Less(i, j int) bool { return lessUTF16((*m)[i].name, (*m)[j].name) }\nfunc (m *memberNames) Swap(i, j int)      { (*m)[i], (*m)[j] = (*m)[j], (*m)[i] }\n\n// reorderObjects recursively reorders all object members in place\n// according to the ordering specified in RFC 8785, section 3.2.3.\n//\n// Pre-conditions:\n//   - The value is valid (i.e., no decoder errors should ever occur).\n//   - The value is compact (i.e., no whitespace is present).\n//   - Initial call is provided a Decoder reading from the start of v.\n//\n// Post-conditions:\n//   - Exactly one JSON value is read from the Decoder.\n//   - All fully-parsed JSON objects are reordered by directly moving\n//     the members in the value buffer.\n//\n// The runtime is approximately O(n·log(n)) + O(m·log(m)),\n// where n is len(v) and m is the total number of object members.\nfunc reorderObjects(d *Decoder, scratch *[]byte) {\n\tswitch tok, _ := d.ReadToken(); tok.Kind() {\n\tcase '{':\n\t\t// Iterate and collect the name and offsets for every object member.\n\t\tmembers := getMemberNames()\n\t\tdefer putMemberNames(members)\n\t\tvar prevName []byte\n\t\tisSorted := true\n\n\t\tbeforeBody := d.InputOffset() // offset after '{'\n\t\tfor d.PeekKind() != '}' {\n\t\t\tbeforeName := d.InputOffset()\n\t\t\tvar flags valueFlags\n\t\t\tname, _ := d.readValue(&flags)\n\t\t\tname = unescapeStringMayCopy(name, flags.isVerbatim())\n\t\t\treorderObjects(d, scratch)\n\t\t\tafterValue := d.InputOffset()\n\n\t\t\tif isSorted && len(*members) > 0 {\n\t\t\t\tisSorted = lessUTF16(prevName, []byte(name))\n\t\t\t}\n\t\t\t*members = append(*members, memberName{name, beforeName, afterValue})\n\t\t\tprevName = name\n\t\t}\n\t\tafterBody := d.InputOffset() // offset before '}'\n\t\td.ReadToken()\n\n\t\t// Sort the members; return early if it's already sorted.\n\t\tif isSorted {\n\t\t\treturn\n\t\t}\n\t\t// TODO(https://go.dev/issue/47619): Use slices.Sort.\n\t\tsort.Sort(members)\n\n\t\t// Append the reordered members to a new buffer,\n\t\t// then copy the reordered members back over the original members.\n\t\t// Avoid swapping in place since each member may be a different size\n\t\t// where moving a member over a smaller member may corrupt the data\n\t\t// for subsequent members before they have been moved.\n\t\t//\n\t\t// The following invariant must hold:\n\t\t//\tsum([m.after-m.before for m in members]) == afterBody-beforeBody\n\t\tsorted := (*scratch)[:0]\n\t\tfor i, member := range *members {\n\t\t\tif d.buf[member.before] == ',' {\n\t\t\t\tmember.before++ // trim leading comma\n\t\t\t}\n\t\t\tsorted = append(sorted, d.buf[member.before:member.after]...)\n\t\t\tif i < len(*members)-1 {\n\t\t\t\tsorted = append(sorted, ',') // append trailing comma\n\t\t\t}\n\t\t}\n\t\tif int(afterBody-beforeBody) != len(sorted) {\n\t\t\tpanic(\"BUG: length invariant violated\")\n\t\t}\n\t\tcopy(d.buf[beforeBody:afterBody], sorted)\n\n\t\t// Update scratch buffer to the largest amount ever used.\n\t\tif len(sorted) > len(*scratch) {\n\t\t\t*scratch = sorted\n\t\t}\n\tcase '[':\n\t\tfor d.PeekKind() != ']' {\n\t\t\treorderObjects(d, scratch)\n\t\t}\n\t\td.ReadToken()\n\t}\n}\n\n// lessUTF16 reports whether x is lexicographically less than y according\n// to the UTF-16 codepoints of the UTF-8 encoded input strings.\n// This implements the ordering specified in RFC 8785, section 3.2.3.\n// The inputs must be valid UTF-8, otherwise this may panic.\nfunc lessUTF16[Bytes []byte | string](x, y Bytes) bool {\n\t// NOTE: This is an optimized, allocation-free implementation\n\t// of lessUTF16Simple in fuzz_test.go. FuzzLessUTF16 verifies that the\n\t// two implementations agree on the result of comparing any two strings.\n\n\tisUTF16Self := func(r rune) bool {\n\t\treturn ('\\u0000' <= r && r <= '\\uD7FF') || ('\\uE000' <= r && r <= '\\uFFFF')\n\t}\n\n\tvar invalidUTF8 bool\n\tx0, y0 := x, y\n\tfor {\n\t\tif len(x) == 0 || len(y) == 0 {\n\t\t\tif len(x) == len(y) && invalidUTF8 {\n\t\t\t\treturn string(x0) < string(y0)\n\t\t\t}\n\t\t\treturn len(x) < len(y)\n\t\t}\n\n\t\t// ASCII fast-path.\n\t\tif x[0] < utf8.RuneSelf || y[0] < utf8.RuneSelf {\n\t\t\tif x[0] != y[0] {\n\t\t\t\treturn x[0] < y[0]\n\t\t\t}\n\t\t\tx, y = x[1:], y[1:]\n\t\t\tcontinue\n\t\t}\n\n\t\t// Decode next pair of runes as UTF-8.\n\t\t// TODO(https://go.dev/issue/56948): Use a generic implementation\n\t\t// of utf8.DecodeRune, or rely on a compiler optimization to statically\n\t\t// hide the cost of a type switch (https://go.dev/issue/57072).\n\t\tvar rx, ry rune\n\t\tvar nx, ny int\n\t\tswitch any(x).(type) {\n\t\tcase string:\n\t\t\trx, nx = utf8.DecodeRuneInString(string(x))\n\t\t\try, ny = utf8.DecodeRuneInString(string(y))\n\t\tcase []byte:\n\t\t\trx, nx = utf8.DecodeRune([]byte(x))\n\t\t\try, ny = utf8.DecodeRune([]byte(y))\n\t\t}\n\n\t\tselfx := isUTF16Self(rx)\n\t\tselfy := isUTF16Self(ry)\n\t\tswitch {\n\t\t// The x rune is a single UTF-16 codepoint, while\n\t\t// the y rune is a surrogate pair of UTF-16 codepoints.\n\t\tcase selfx && !selfy:\n\t\t\try, _ = utf16.EncodeRune(ry)\n\t\t// The y rune is a single UTF-16 codepoint, while\n\t\t// the x rune is a surrogate pair of UTF-16 codepoints.\n\t\tcase selfy && !selfx:\n\t\t\trx, _ = utf16.EncodeRune(rx)\n\t\t}\n\t\tif rx != ry {\n\t\t\treturn rx < ry\n\t\t}\n\t\tinvalidUTF8 = invalidUTF8 || (rx == utf8.RuneError && nx == 1) || (ry == utf8.RuneError && ny == 1)\n\t\tx, y = x[nx:], y[ny:]\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/schemaconv/openapi.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage schemaconv\n\nimport (\n\t\"errors\"\n\t\"path\"\n\t\"strings\"\n\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/schema\"\n)\n\n// ToSchemaFromOpenAPI converts a directory of OpenAPI schemas to an smd Schema.\n//   - models: a map from definition name to OpenAPI V3 structural schema for each definition.\n//     Key in map is used to resolve references in the schema.\n//   - preserveUnknownFields: flag indicating whether unknown fields in all schemas should be preserved.\n//   - returns: nil and an error if there is a parse error, or if schema does not satisfy a\n//     required structural schema invariant for conversion. If no error, returns\n//     a new smd schema.\n//\n// Schema should be validated as structural before using with this function, or\n// there may be information lost.\nfunc ToSchemaFromOpenAPI(models map[string]*spec.Schema, preserveUnknownFields bool) (*schema.Schema, error) {\n\tc := convert{\n\t\tpreserveUnknownFields: preserveUnknownFields,\n\t\toutput:                &schema.Schema{},\n\t}\n\n\tfor name, spec := range models {\n\t\t// Skip/Ignore top-level references\n\t\tif len(spec.Ref.String()) > 0 {\n\t\t\tcontinue\n\t\t}\n\n\t\tvar a schema.Atom\n\n\t\t// Hard-coded schemas for now as proto_models implementation functions.\n\t\t// https://github.com/kubernetes/kube-openapi/issues/364\n\t\tif name == quantityResource {\n\t\t\ta = schema.Atom{\n\t\t\t\tScalar: untypedDef.Atom.Scalar,\n\t\t\t}\n\t\t} else if name == rawExtensionResource {\n\t\t\ta = untypedDef.Atom\n\t\t} else {\n\t\t\tc2 := c.push(name, &a)\n\t\t\tc2.visitSpec(spec)\n\t\t\tc.pop(c2)\n\t\t}\n\n\t\tc.insertTypeDef(name, a)\n\t}\n\n\tif len(c.errorMessages) > 0 {\n\t\treturn nil, errors.New(strings.Join(c.errorMessages, \"\\n\"))\n\t}\n\n\tc.addCommonTypes()\n\treturn c.output, nil\n}\n\nfunc (c *convert) visitSpec(m *spec.Schema) {\n\t// Check if this schema opts its descendants into preserve-unknown-fields\n\tif p, ok := m.Extensions[\"x-kubernetes-preserve-unknown-fields\"]; ok && p == true {\n\t\tc.preserveUnknownFields = true\n\t}\n\ta := c.top()\n\t*a = c.parseSchema(m)\n}\n\nfunc (c *convert) parseSchema(m *spec.Schema) schema.Atom {\n\t// k8s-generated OpenAPI specs have historically used only one value for\n\t// type and starting with OpenAPIV3 it is only allowed to be\n\t// a single string.\n\ttyp := \"\"\n\tif len(m.Type) > 0 {\n\t\ttyp = m.Type[0]\n\t}\n\n\t// Structural Schemas produced by kubernetes follow very specific rules which\n\t// we can use to infer the SMD type:\n\tswitch typ {\n\tcase \"\":\n\t\t// According to Swagger docs:\n\t\t// https://swagger.io/docs/specification/data-models/data-types/#any\n\t\t//\n\t\t// If no type is specified, it is equivalent to accepting any type.\n\t\treturn schema.Atom{\n\t\t\tScalar: ptr(schema.Scalar(\"untyped\")),\n\t\t\tList:   c.parseList(m),\n\t\t\tMap:    c.parseObject(m),\n\t\t}\n\n\tcase \"object\":\n\t\treturn schema.Atom{\n\t\t\tMap: c.parseObject(m),\n\t\t}\n\tcase \"array\":\n\t\treturn schema.Atom{\n\t\t\tList: c.parseList(m),\n\t\t}\n\tcase \"integer\", \"boolean\", \"number\", \"string\":\n\t\treturn convertPrimitive(typ, m.Format)\n\tdefault:\n\t\tc.reportError(\"unrecognized type: '%v'\", typ)\n\t\treturn schema.Atom{\n\t\t\tScalar: ptr(schema.Scalar(\"untyped\")),\n\t\t}\n\t}\n}\n\nfunc (c *convert) makeOpenAPIRef(specSchema *spec.Schema) schema.TypeRef {\n\trefString := specSchema.Ref.String()\n\n\t// Special-case handling for $ref stored inside a single-element allOf\n\tif len(refString) == 0 && len(specSchema.AllOf) == 1 && len(specSchema.AllOf[0].Ref.String()) > 0 {\n\t\trefString = specSchema.AllOf[0].Ref.String()\n\t}\n\n\tif _, n := path.Split(refString); len(n) > 0 {\n\t\t//!TODO: Refactor the field ElementRelationship override\n\t\t// we can generate the types with overrides ahead of time rather than\n\t\t// requiring the hacky runtime support\n\t\t// (could just create a normalized key struct containing all customizations\n\t\t// \tto deduplicate)\n\t\tmapRelationship, err := getMapElementRelationship(specSchema.Extensions)\n\t\tif err != nil {\n\t\t\tc.reportError(err.Error())\n\t\t}\n\n\t\tif len(mapRelationship) > 0 {\n\t\t\treturn schema.TypeRef{\n\t\t\t\tNamedType:           &n,\n\t\t\t\tElementRelationship: &mapRelationship,\n\t\t\t}\n\t\t}\n\n\t\treturn schema.TypeRef{\n\t\t\tNamedType: &n,\n\t\t}\n\n\t}\n\tvar inlined schema.Atom\n\n\t// compute the type inline\n\tc2 := c.push(\"inlined in \"+c.currentName, &inlined)\n\tc2.preserveUnknownFields = c.preserveUnknownFields\n\tc2.visitSpec(specSchema)\n\tc.pop(c2)\n\n\treturn schema.TypeRef{\n\t\tInlined: inlined,\n\t}\n}\n\nfunc (c *convert) parseObject(s *spec.Schema) *schema.Map {\n\tvar fields []schema.StructField\n\tfor name, member := range s.Properties {\n\t\tfields = append(fields, schema.StructField{\n\t\t\tName:    name,\n\t\t\tType:    c.makeOpenAPIRef(&member),\n\t\t\tDefault: member.Default,\n\t\t})\n\t}\n\n\t// AdditionalProperties informs the schema of any \"unknown\" keys\n\t// Unknown keys are enforced by the ElementType field.\n\telementType := func() schema.TypeRef {\n\t\tif s.AdditionalProperties == nil {\n\t\t\t// According to openAPI spec, an object without properties and without\n\t\t\t// additionalProperties is assumed to be a free-form object.\n\t\t\tif c.preserveUnknownFields || len(s.Properties) == 0 {\n\t\t\t\treturn schema.TypeRef{\n\t\t\t\t\tNamedType: &deducedName,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// If properties are specified, do not implicitly allow unknown\n\t\t\t// fields\n\t\t\treturn schema.TypeRef{}\n\t\t} else if s.AdditionalProperties.Schema != nil {\n\t\t\t// Unknown fields use the referred schema\n\t\t\treturn c.makeOpenAPIRef(s.AdditionalProperties.Schema)\n\n\t\t} else if s.AdditionalProperties.Allows {\n\t\t\t// A boolean instead of a schema was provided. Deduce the\n\t\t\t// type from the value provided at runtime.\n\t\t\treturn schema.TypeRef{\n\t\t\t\tNamedType: &deducedName,\n\t\t\t}\n\t\t} else {\n\t\t\t// Additional Properties are explicitly disallowed by the user.\n\t\t\t// Ensure element type is empty.\n\t\t\treturn schema.TypeRef{}\n\t\t}\n\t}()\n\n\trelationship, err := getMapElementRelationship(s.Extensions)\n\tif err != nil {\n\t\tc.reportError(err.Error())\n\t}\n\n\treturn &schema.Map{\n\t\tFields:              fields,\n\t\tElementRelationship: relationship,\n\t\tElementType:         elementType,\n\t}\n}\n\nfunc (c *convert) parseList(s *spec.Schema) *schema.List {\n\trelationship, mapKeys, err := getListElementRelationship(s.Extensions)\n\tif err != nil {\n\t\tc.reportError(err.Error())\n\t}\n\telementType := func() schema.TypeRef {\n\t\tif s.Items != nil {\n\t\t\tif s.Items.Schema == nil || s.Items.Len() != 1 {\n\t\t\t\tc.reportError(\"structural schema arrays must have exactly one member subtype\")\n\t\t\t\treturn schema.TypeRef{\n\t\t\t\t\tNamedType: &deducedName,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tsubSchema := s.Items.Schema\n\t\t\tif subSchema == nil {\n\t\t\t\tsubSchema = &s.Items.Schemas[0]\n\t\t\t}\n\t\t\treturn c.makeOpenAPIRef(subSchema)\n\t\t} else if len(s.Type) > 0 && len(s.Type[0]) > 0 {\n\t\t\tc.reportError(\"`items` must be specified on arrays\")\n\t\t}\n\n\t\t// A list with no items specified is treated as \"untyped\".\n\t\treturn schema.TypeRef{\n\t\t\tNamedType: &untypedName,\n\t\t}\n\n\t}()\n\n\treturn &schema.List{\n\t\tElementRelationship: relationship,\n\t\tKeys:                mapKeys,\n\t\tElementType:         elementType,\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/schemaconv/proto_models.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n\thttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage schemaconv\n\nimport (\n\t\"errors\"\n\t\"path\"\n\t\"strings\"\n\n\t\"k8s.io/kube-openapi/pkg/util/proto\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/schema\"\n)\n\n// ToSchema converts openapi definitions into a schema suitable for structured\n// merge (i.e. kubectl apply v2).\nfunc ToSchema(models proto.Models) (*schema.Schema, error) {\n\treturn ToSchemaWithPreserveUnknownFields(models, false)\n}\n\n// ToSchemaWithPreserveUnknownFields converts openapi definitions into a schema suitable for structured\n// merge (i.e. kubectl apply v2), it will preserve unknown fields if specified.\nfunc ToSchemaWithPreserveUnknownFields(models proto.Models, preserveUnknownFields bool) (*schema.Schema, error) {\n\tc := convert{\n\t\tpreserveUnknownFields: preserveUnknownFields,\n\t\toutput:                &schema.Schema{},\n\t}\n\tfor _, name := range models.ListModels() {\n\t\tmodel := models.LookupModel(name)\n\n\t\tvar a schema.Atom\n\t\tc2 := c.push(name, &a)\n\t\tmodel.Accept(c2)\n\t\tc.pop(c2)\n\n\t\tc.insertTypeDef(name, a)\n\t}\n\n\tif len(c.errorMessages) > 0 {\n\t\treturn nil, errors.New(strings.Join(c.errorMessages, \"\\n\"))\n\t}\n\n\tc.addCommonTypes()\n\treturn c.output, nil\n}\n\nfunc (c *convert) makeRef(model proto.Schema, preserveUnknownFields bool) schema.TypeRef {\n\tvar tr schema.TypeRef\n\tif r, ok := model.(*proto.Ref); ok {\n\t\tif r.Reference() == \"io.k8s.apimachinery.pkg.runtime.RawExtension\" {\n\t\t\treturn schema.TypeRef{\n\t\t\t\tNamedType: &untypedName,\n\t\t\t}\n\t\t}\n\t\t// reference a named type\n\t\t_, n := path.Split(r.Reference())\n\t\ttr.NamedType = &n\n\n\t\tmapRelationship, err := getMapElementRelationship(model.GetExtensions())\n\n\t\tif err != nil {\n\t\t\tc.reportError(err.Error())\n\t\t}\n\n\t\t// empty string means unset.\n\t\tif len(mapRelationship) > 0 {\n\t\t\ttr.ElementRelationship = &mapRelationship\n\t\t}\n\t} else {\n\t\t// compute the type inline\n\t\tc2 := c.push(\"inlined in \"+c.currentName, &tr.Inlined)\n\t\tc2.preserveUnknownFields = preserveUnknownFields\n\t\tmodel.Accept(c2)\n\t\tc.pop(c2)\n\n\t\tif tr == (schema.TypeRef{}) {\n\t\t\t// emit warning?\n\t\t\ttr.NamedType = &untypedName\n\t\t}\n\t}\n\treturn tr\n}\n\nfunc (c *convert) VisitKind(k *proto.Kind) {\n\tpreserveUnknownFields := c.preserveUnknownFields\n\tif p, ok := k.GetExtensions()[\"x-kubernetes-preserve-unknown-fields\"]; ok && p == true {\n\t\tpreserveUnknownFields = true\n\t}\n\n\ta := c.top()\n\ta.Map = &schema.Map{}\n\tfor _, name := range k.FieldOrder {\n\t\tmember := k.Fields[name]\n\t\ttr := c.makeRef(member, preserveUnknownFields)\n\t\ta.Map.Fields = append(a.Map.Fields, schema.StructField{\n\t\t\tName:    name,\n\t\t\tType:    tr,\n\t\t\tDefault: member.GetDefault(),\n\t\t})\n\t}\n\n\tunions, err := makeUnions(k.GetExtensions())\n\tif err != nil {\n\t\tc.reportError(err.Error())\n\t\treturn\n\t}\n\t// TODO: We should check that the fields and discriminator\n\t// specified in the union are actual fields in the struct.\n\ta.Map.Unions = unions\n\n\tif preserveUnknownFields {\n\t\ta.Map.ElementType = schema.TypeRef{\n\t\t\tNamedType: &deducedName,\n\t\t}\n\t}\n\n\ta.Map.ElementRelationship, err = getMapElementRelationship(k.GetExtensions())\n\tif err != nil {\n\t\tc.reportError(err.Error())\n\t}\n}\n\nfunc (c *convert) VisitArray(a *proto.Array) {\n\trelationship, mapKeys, err := getListElementRelationship(a.GetExtensions())\n\tif err != nil {\n\t\tc.reportError(err.Error())\n\t}\n\n\tatom := c.top()\n\tatom.List = &schema.List{\n\t\tElementType:         c.makeRef(a.SubType, c.preserveUnknownFields),\n\t\tElementRelationship: relationship,\n\t\tKeys:                mapKeys,\n\t}\n}\n\nfunc (c *convert) VisitMap(m *proto.Map) {\n\trelationship, err := getMapElementRelationship(m.GetExtensions())\n\tif err != nil {\n\t\tc.reportError(err.Error())\n\t}\n\n\ta := c.top()\n\ta.Map = &schema.Map{\n\t\tElementType:         c.makeRef(m.SubType, c.preserveUnknownFields),\n\t\tElementRelationship: relationship,\n\t}\n}\n\nfunc (c *convert) VisitPrimitive(p *proto.Primitive) {\n\ta := c.top()\n\tif c.currentName == quantityResource {\n\t\ta.Scalar = ptr(schema.Scalar(\"untyped\"))\n\t} else {\n\t\t*a = convertPrimitive(p.Type, p.Format)\n\t}\n}\n\nfunc (c *convert) VisitArbitrary(a *proto.Arbitrary) {\n\t*c.top() = deducedDef.Atom\n}\n\nfunc (c *convert) VisitReference(proto.Reference) {\n\t// Do nothing, we handle references specially\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/schemaconv/smd.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage schemaconv\n\nimport (\n\t\"fmt\"\n\t\"sort\"\n\n\t\"sigs.k8s.io/structured-merge-diff/v4/schema\"\n)\n\nconst (\n\tquantityResource     = \"io.k8s.apimachinery.pkg.api.resource.Quantity\"\n\trawExtensionResource = \"io.k8s.apimachinery.pkg.runtime.RawExtension\"\n)\n\ntype convert struct {\n\tpreserveUnknownFields bool\n\toutput                *schema.Schema\n\n\tcurrentName   string\n\tcurrent       *schema.Atom\n\terrorMessages []string\n}\n\nfunc (c *convert) push(name string, a *schema.Atom) *convert {\n\treturn &convert{\n\t\tpreserveUnknownFields: c.preserveUnknownFields,\n\t\toutput:                c.output,\n\t\tcurrentName:           name,\n\t\tcurrent:               a,\n\t}\n}\n\nfunc (c *convert) top() *schema.Atom { return c.current }\n\nfunc (c *convert) pop(c2 *convert) {\n\tc.errorMessages = append(c.errorMessages, c2.errorMessages...)\n}\n\nfunc (c *convert) reportError(format string, args ...interface{}) {\n\tc.errorMessages = append(c.errorMessages,\n\t\tc.currentName+\": \"+fmt.Sprintf(format, args...),\n\t)\n}\n\nfunc (c *convert) insertTypeDef(name string, atom schema.Atom) {\n\tdef := schema.TypeDef{\n\t\tName: name,\n\t\tAtom: atom,\n\t}\n\tif def.Atom == (schema.Atom{}) {\n\t\t// This could happen if there were a top-level reference.\n\t\treturn\n\t}\n\tc.output.Types = append(c.output.Types, def)\n}\n\nfunc (c *convert) addCommonTypes() {\n\tc.output.Types = append(c.output.Types, untypedDef)\n\tc.output.Types = append(c.output.Types, deducedDef)\n}\n\nvar untypedName string = \"__untyped_atomic_\"\n\nvar untypedDef schema.TypeDef = schema.TypeDef{\n\tName: untypedName,\n\tAtom: schema.Atom{\n\t\tScalar: ptr(schema.Scalar(\"untyped\")),\n\t\tList: &schema.List{\n\t\t\tElementType: schema.TypeRef{\n\t\t\t\tNamedType: &untypedName,\n\t\t\t},\n\t\t\tElementRelationship: schema.Atomic,\n\t\t},\n\t\tMap: &schema.Map{\n\t\t\tElementType: schema.TypeRef{\n\t\t\t\tNamedType: &untypedName,\n\t\t\t},\n\t\t\tElementRelationship: schema.Atomic,\n\t\t},\n\t},\n}\n\nvar deducedName string = \"__untyped_deduced_\"\n\nvar deducedDef schema.TypeDef = schema.TypeDef{\n\tName: deducedName,\n\tAtom: schema.Atom{\n\t\tScalar: ptr(schema.Scalar(\"untyped\")),\n\t\tList: &schema.List{\n\t\t\tElementType: schema.TypeRef{\n\t\t\t\tNamedType: &untypedName,\n\t\t\t},\n\t\t\tElementRelationship: schema.Atomic,\n\t\t},\n\t\tMap: &schema.Map{\n\t\t\tElementType: schema.TypeRef{\n\t\t\t\tNamedType: &deducedName,\n\t\t\t},\n\t\t\tElementRelationship: schema.Separable,\n\t\t},\n\t},\n}\n\nfunc makeUnions(extensions map[string]interface{}) ([]schema.Union, error) {\n\tschemaUnions := []schema.Union{}\n\tif iunions, ok := extensions[\"x-kubernetes-unions\"]; ok {\n\t\tunions, ok := iunions.([]interface{})\n\t\tif !ok {\n\t\t\treturn nil, fmt.Errorf(`\"x-kubernetes-unions\" should be a list, got %#v`, unions)\n\t\t}\n\t\tfor _, iunion := range unions {\n\t\t\tunion, ok := iunion.(map[interface{}]interface{})\n\t\t\tif !ok {\n\t\t\t\treturn nil, fmt.Errorf(`\"x-kubernetes-unions\" items should be a map of string to unions, got %#v`, iunion)\n\t\t\t}\n\t\t\tunionMap := map[string]interface{}{}\n\t\t\tfor k, v := range union {\n\t\t\t\tkey, ok := k.(string)\n\t\t\t\tif !ok {\n\t\t\t\t\treturn nil, fmt.Errorf(`\"x-kubernetes-unions\" has non-string key: %#v`, k)\n\t\t\t\t}\n\t\t\t\tunionMap[key] = v\n\t\t\t}\n\t\t\tschemaUnion, err := makeUnion(unionMap)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tschemaUnions = append(schemaUnions, schemaUnion)\n\t\t}\n\t}\n\n\t// Make sure we have no overlap between unions\n\tfs := map[string]struct{}{}\n\tfor _, u := range schemaUnions {\n\t\tif u.Discriminator != nil {\n\t\t\tif _, ok := fs[*u.Discriminator]; ok {\n\t\t\t\treturn nil, fmt.Errorf(\"%v field appears multiple times in unions\", *u.Discriminator)\n\t\t\t}\n\t\t\tfs[*u.Discriminator] = struct{}{}\n\t\t}\n\t\tfor _, f := range u.Fields {\n\t\t\tif _, ok := fs[f.FieldName]; ok {\n\t\t\t\treturn nil, fmt.Errorf(\"%v field appears multiple times in unions\", f.FieldName)\n\t\t\t}\n\t\t\tfs[f.FieldName] = struct{}{}\n\t\t}\n\t}\n\n\treturn schemaUnions, nil\n}\n\nfunc makeUnion(extensions map[string]interface{}) (schema.Union, error) {\n\tunion := schema.Union{\n\t\tFields: []schema.UnionField{},\n\t}\n\n\tif idiscriminator, ok := extensions[\"discriminator\"]; ok {\n\t\tdiscriminator, ok := idiscriminator.(string)\n\t\tif !ok {\n\t\t\treturn schema.Union{}, fmt.Errorf(`\"discriminator\" must be a string, got: %#v`, idiscriminator)\n\t\t}\n\t\tunion.Discriminator = &discriminator\n\t}\n\n\tif ifields, ok := extensions[\"fields-to-discriminateBy\"]; ok {\n\t\tfields, ok := ifields.(map[interface{}]interface{})\n\t\tif !ok {\n\t\t\treturn schema.Union{}, fmt.Errorf(`\"fields-to-discriminateBy\" must be a map[string]string, got: %#v`, ifields)\n\t\t}\n\t\t// Needs sorted keys by field.\n\t\tkeys := []string{}\n\t\tfor ifield := range fields {\n\t\t\tfield, ok := ifield.(string)\n\t\t\tif !ok {\n\t\t\t\treturn schema.Union{}, fmt.Errorf(`\"fields-to-discriminateBy\": field must be a string, got: %#v`, ifield)\n\t\t\t}\n\t\t\tkeys = append(keys, field)\n\n\t\t}\n\t\tsort.Strings(keys)\n\t\treverseMap := map[string]struct{}{}\n\t\tfor _, field := range keys {\n\t\t\tvalue := fields[field]\n\t\t\tdiscriminated, ok := value.(string)\n\t\t\tif !ok {\n\t\t\t\treturn schema.Union{}, fmt.Errorf(`\"fields-to-discriminateBy\"/%v: value must be a string, got: %#v`, field, value)\n\t\t\t}\n\t\t\tunion.Fields = append(union.Fields, schema.UnionField{\n\t\t\t\tFieldName:          field,\n\t\t\t\tDiscriminatorValue: discriminated,\n\t\t\t})\n\n\t\t\t// Check that we don't have the same discriminateBy multiple times.\n\t\t\tif _, ok := reverseMap[discriminated]; ok {\n\t\t\t\treturn schema.Union{}, fmt.Errorf(\"Multiple fields have the same discriminated name: %v\", discriminated)\n\t\t\t}\n\t\t\treverseMap[discriminated] = struct{}{}\n\t\t}\n\t}\n\n\treturn union, nil\n}\n\nfunc toStringSlice(o interface{}) (out []string, ok bool) {\n\tswitch t := o.(type) {\n\tcase []interface{}:\n\t\tfor _, v := range t {\n\t\t\tswitch vt := v.(type) {\n\t\t\tcase string:\n\t\t\t\tout = append(out, vt)\n\t\t\t}\n\t\t}\n\t\treturn out, true\n\tcase []string:\n\t\treturn t, true\n\t}\n\treturn nil, false\n}\n\nfunc ptr(s schema.Scalar) *schema.Scalar { return &s }\n\n// Basic conversion functions to convert OpenAPI schema definitions to\n// SMD Schema atoms\nfunc convertPrimitive(typ string, format string) (a schema.Atom) {\n\tswitch typ {\n\tcase \"integer\":\n\t\ta.Scalar = ptr(schema.Numeric)\n\tcase \"number\":\n\t\ta.Scalar = ptr(schema.Numeric)\n\tcase \"string\":\n\t\tswitch format {\n\t\tcase \"\":\n\t\t\ta.Scalar = ptr(schema.String)\n\t\tcase \"byte\":\n\t\t\t// byte really means []byte and is encoded as a string.\n\t\t\ta.Scalar = ptr(schema.String)\n\t\tcase \"int-or-string\":\n\t\t\ta.Scalar = ptr(schema.Scalar(\"untyped\"))\n\t\tcase \"date-time\":\n\t\t\ta.Scalar = ptr(schema.Scalar(\"untyped\"))\n\t\tdefault:\n\t\t\ta.Scalar = ptr(schema.Scalar(\"untyped\"))\n\t\t}\n\tcase \"boolean\":\n\t\ta.Scalar = ptr(schema.Boolean)\n\tdefault:\n\t\ta.Scalar = ptr(schema.Scalar(\"untyped\"))\n\t}\n\n\treturn a\n}\n\nfunc getListElementRelationship(ext map[string]any) (schema.ElementRelationship, []string, error) {\n\tif val, ok := ext[\"x-kubernetes-list-type\"]; ok {\n\t\tswitch val {\n\t\tcase \"atomic\":\n\t\t\treturn schema.Atomic, nil, nil\n\t\tcase \"set\":\n\t\t\treturn schema.Associative, nil, nil\n\t\tcase \"map\":\n\t\t\tkeys, ok := ext[\"x-kubernetes-list-map-keys\"]\n\n\t\t\tif !ok {\n\t\t\t\treturn schema.Associative, nil, fmt.Errorf(\"missing map keys\")\n\t\t\t}\n\n\t\t\tkeyNames, ok := toStringSlice(keys)\n\t\t\tif !ok {\n\t\t\t\treturn schema.Associative, nil, fmt.Errorf(\"uninterpreted map keys: %#v\", keys)\n\t\t\t}\n\n\t\t\treturn schema.Associative, keyNames, nil\n\t\tdefault:\n\t\t\treturn schema.Atomic, nil, fmt.Errorf(\"unknown list type %v\", val)\n\t\t}\n\t} else if val, ok := ext[\"x-kubernetes-patch-strategy\"]; ok {\n\t\tswitch val {\n\t\tcase \"merge\", \"merge,retainKeys\":\n\t\t\tif key, ok := ext[\"x-kubernetes-patch-merge-key\"]; ok {\n\t\t\t\tkeyName, ok := key.(string)\n\n\t\t\t\tif !ok {\n\t\t\t\t\treturn schema.Associative, nil, fmt.Errorf(\"uninterpreted merge key: %#v\", key)\n\t\t\t\t}\n\n\t\t\t\treturn schema.Associative, []string{keyName}, nil\n\t\t\t}\n\t\t\t// It's not an error for x-kubernetes-patch-merge-key to be absent,\n\t\t\t// it means it's a set\n\t\t\treturn schema.Associative, nil, nil\n\t\tcase \"retainKeys\":\n\t\t\treturn schema.Atomic, nil, nil\n\t\tdefault:\n\t\t\treturn schema.Atomic, nil, fmt.Errorf(\"unknown patch strategy %v\", val)\n\t\t}\n\t}\n\n\t// Treat as atomic by default\n\treturn schema.Atomic, nil, nil\n}\n\n// Returns map element relationship if specified, or empty string if unspecified\nfunc getMapElementRelationship(ext map[string]any) (schema.ElementRelationship, error) {\n\tval, ok := ext[\"x-kubernetes-map-type\"]\n\tif !ok {\n\t\t// unset Map element relationship\n\t\treturn \"\", nil\n\t}\n\n\tswitch val {\n\tcase \"atomic\":\n\t\treturn schema.Atomic, nil\n\tcase \"granular\":\n\t\treturn schema.Separable, nil\n\tdefault:\n\t\treturn \"\", fmt.Errorf(\"unknown map type %v\", val)\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/spec3/component.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3\n\nimport \"k8s.io/kube-openapi/pkg/validation/spec\"\n\n// Components holds a set of reusable objects for different aspects of the OAS.\n// All objects defined within the components object will have no effect on the API\n// unless they are explicitly referenced from properties outside the components object.\n//\n// more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#componentsObject\ntype Components struct {\n\t// Schemas holds reusable Schema Objects\n\tSchemas map[string]*spec.Schema `json:\"schemas,omitempty\"`\n\t// SecuritySchemes holds reusable Security Scheme Objects, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#securitySchemeObject\n\tSecuritySchemes SecuritySchemes `json:\"securitySchemes,omitempty\"`\n\t// Responses holds reusable Responses Objects\n\tResponses map[string]*Response `json:\"responses,omitempty\"`\n\t// Parameters holds reusable Parameters Objects\n\tParameters map[string]*Parameter `json:\"parameters,omitempty\"`\n\t// Example holds reusable Example objects\n\tExamples map[string]*Example `json:\"examples,omitempty\"`\n\t// RequestBodies holds reusable Request Body objects\n\tRequestBodies map[string]*RequestBody `json:\"requestBodies,omitempty\"`\n\t// Links is a map of operations links that can be followed from the response\n\tLinks map[string]*Link `json:\"links,omitempty\"`\n\t// Headers holds a maps of a headers name to its definition\n\tHeaders map[string]*Header `json:\"headers,omitempty\"`\n\t// all fields are defined at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#componentsObject\n}\n\n// SecuritySchemes holds reusable Security Scheme Objects, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#securitySchemeObject\ntype SecuritySchemes map[string]*SecurityScheme\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/spec3/encoding.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\ntype Encoding struct {\n\tEncodingProps\n\tspec.VendorExtensible\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode Encoding as JSON\nfunc (e *Encoding) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshalingV3 {\n\t\treturn internal.DeterministicMarshal(e)\n\t}\n\tb1, err := json.Marshal(e.EncodingProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(e.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2), nil\n}\n\nfunc (e *Encoding) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tEncodingProps encodingPropsOmitZero `json:\",inline\"`\n\t\tspec.Extensions\n\t}\n\tx.Extensions = internal.SanitizeExtensions(e.Extensions)\n\tx.EncodingProps = encodingPropsOmitZero(e.EncodingProps)\n\treturn opts.MarshalNext(enc, x)\n}\n\nfunc (e *Encoding) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, e)\n\t}\n\tif err := json.Unmarshal(data, &e.EncodingProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &e.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc (e *Encoding) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tspec.Extensions\n\t\tEncodingProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\n\te.Extensions = internal.SanitizeExtensions(x.Extensions)\n\te.EncodingProps = x.EncodingProps\n\treturn nil\n}\n\ntype EncodingProps struct {\n\t// Content Type for encoding a specific property\n\tContentType string `json:\"contentType,omitempty\"`\n\t// A map allowing additional information to be provided as headers\n\tHeaders map[string]*Header `json:\"headers,omitempty\"`\n\t// Describes how a specific property value will be serialized depending on its type\n\tStyle string `json:\"style,omitempty\"`\n\t// When this is true, property values of type array or object generate separate parameters for each value of the array, or key-value-pair of the map. For other types of properties this property has no effect\n\tExplode bool `json:\"explode,omitempty\"`\n\t// AllowReserved determines whether the parameter value SHOULD allow reserved characters, as defined by RFC3986\n\tAllowReserved bool `json:\"allowReserved,omitempty\"`\n}\n\ntype encodingPropsOmitZero struct {\n\tContentType   string             `json:\"contentType,omitempty\"`\n\tHeaders       map[string]*Header `json:\"headers,omitempty\"`\n\tStyle         string             `json:\"style,omitempty\"`\n\tExplode       bool               `json:\"explode,omitzero\"`\n\tAllowReserved bool               `json:\"allowReserved,omitzero\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/spec3/example.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// Example https://swagger.io/specification/#example-object\n\ntype Example struct {\n\tspec.Refable\n\tExampleProps\n\tspec.VendorExtensible\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode RequestBody as JSON\nfunc (e *Example) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshalingV3 {\n\t\treturn internal.DeterministicMarshal(e)\n\t}\n\tb1, err := json.Marshal(e.Refable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(e.ExampleProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb3, err := json.Marshal(e.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2, b3), nil\n}\nfunc (e *Example) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tRef          string `json:\"$ref,omitempty\"`\n\t\tExampleProps `json:\",inline\"`\n\t\tspec.Extensions\n\t}\n\tx.Ref = e.Refable.Ref.String()\n\tx.Extensions = internal.SanitizeExtensions(e.Extensions)\n\tx.ExampleProps = e.ExampleProps\n\treturn opts.MarshalNext(enc, x)\n}\n\nfunc (e *Example) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, e)\n\t}\n\tif err := json.Unmarshal(data, &e.Refable); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &e.ExampleProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &e.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc (e *Example) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tspec.Extensions\n\t\tExampleProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\tif err := internal.JSONRefFromMap(&e.Ref.Ref, x.Extensions); err != nil {\n\t\treturn err\n\t}\n\te.Extensions = internal.SanitizeExtensions(x.Extensions)\n\te.ExampleProps = x.ExampleProps\n\n\treturn nil\n}\n\ntype ExampleProps struct {\n\t// Summary holds a short description of the example\n\tSummary string `json:\"summary,omitempty\"`\n\t// Description holds a long description of the example\n\tDescription string `json:\"description,omitempty\"`\n\t// Embedded literal example.\n\tValue interface{} `json:\"value,omitempty\"`\n\t// A URL that points to the literal example. This provides the capability to reference examples that cannot easily be included in JSON or YAML documents.\n\tExternalValue string `json:\"externalValue,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/spec3/external_documentation.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\ntype ExternalDocumentation struct {\n\tExternalDocumentationProps\n\tspec.VendorExtensible\n}\n\ntype ExternalDocumentationProps struct {\n\t// Description is a short description of the target documentation. CommonMark syntax MAY be used for rich text representation.\n\tDescription string `json:\"description,omitempty\"`\n\t// URL is the URL for the target documentation.\n\tURL string `json:\"url\"`\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode Responses as JSON\nfunc (e *ExternalDocumentation) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshalingV3 {\n\t\treturn internal.DeterministicMarshal(e)\n\t}\n\tb1, err := json.Marshal(e.ExternalDocumentationProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(e.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2), nil\n}\n\nfunc (e *ExternalDocumentation) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tExternalDocumentationProps `json:\",inline\"`\n\t\tspec.Extensions\n\t}\n\tx.Extensions = internal.SanitizeExtensions(e.Extensions)\n\tx.ExternalDocumentationProps = e.ExternalDocumentationProps\n\treturn opts.MarshalNext(enc, x)\n}\n\nfunc (e *ExternalDocumentation) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, e)\n\t}\n\tif err := json.Unmarshal(data, &e.ExternalDocumentationProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &e.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc (e *ExternalDocumentation) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tspec.Extensions\n\t\tExternalDocumentationProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\te.Extensions = internal.SanitizeExtensions(x.Extensions)\n\te.ExternalDocumentationProps = x.ExternalDocumentationProps\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/spec3/fuzz.go",
    "content": "package spec3\n\nimport (\n\t\"math/rand\"\n\t\"strings\"\n\n\tfuzz \"github.com/google/gofuzz\"\n\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// refChance is the chance that a particular component will use a $ref\n// instead of fuzzed. Expressed as a fraction 1/n, currently there is\n// a 1/3 chance that a ref will be used.\nconst refChance = 3\n\nconst alphaNumChars = \"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\"\n\nfunc randAlphanumString() string {\n\tarr := make([]string, rand.Intn(10)+5)\n\tfor i := 0; i < len(arr); i++ {\n\t\tarr[i] = string(alphaNumChars[rand.Intn(len(alphaNumChars))])\n\t}\n\treturn strings.Join(arr, \"\")\n}\n\nvar OpenAPIV3FuzzFuncs []interface{} = []interface{}{\n\tfunc(s *string, c fuzz.Continue) {\n\t\t// All OpenAPI V3 map keys must follow the corresponding\n\t\t// regex. Note that this restricts the range for all other\n\t\t// string values as well.\n\t\tstr := randAlphanumString()\n\t\t*s = str\n\t},\n\tfunc(o *OpenAPI, c fuzz.Continue) {\n\t\tc.FuzzNoCustom(o)\n\t\to.Version = \"3.0.0\"\n\t\tfor i, val := range o.SecurityRequirement {\n\t\t\tif val == nil {\n\t\t\t\to.SecurityRequirement[i] = make(map[string][]string)\n\t\t\t}\n\n\t\t\tfor k, v := range val {\n\t\t\t\tif v == nil {\n\t\t\t\t\tval[k] = make([]string, 0)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t},\n\tfunc(r *interface{}, c fuzz.Continue) {\n\t\tswitch c.Intn(3) {\n\t\tcase 0:\n\t\t\t*r = nil\n\t\tcase 1:\n\t\t\tn := c.RandString() + \"x\"\n\t\t\t*r = n\n\t\tcase 2:\n\t\t\tn := c.Float64()\n\t\t\t*r = n\n\t\t}\n\t},\n\tfunc(v **spec.Info, c fuzz.Continue) {\n\t\t// Info is never nil\n\t\t*v = &spec.Info{}\n\t\tc.FuzzNoCustom(*v)\n\t\t(*v).Title = c.RandString() + \"x\"\n\t},\n\tfunc(v *Paths, c fuzz.Continue) {\n\t\tc.Fuzz(&v.VendorExtensible)\n\t\tnum := c.Intn(5)\n\t\tif num > 0 {\n\t\t\tv.Paths = make(map[string]*Path)\n\t\t}\n\t\tfor i := 0; i < num; i++ {\n\t\t\tval := Path{}\n\t\t\tc.Fuzz(&val)\n\t\t\tv.Paths[\"/\"+c.RandString()] = &val\n\t\t}\n\t},\n\tfunc(v *SecurityScheme, c fuzz.Continue) {\n\t\tif c.Intn(refChance) == 0 {\n\t\t\tc.Fuzz(&v.Refable)\n\t\t\treturn\n\t\t}\n\t\tswitch c.Intn(4) {\n\t\tcase 0:\n\t\t\tv.Type = \"apiKey\"\n\t\t\tv.Name = c.RandString() + \"x\"\n\t\t\tswitch c.Intn(3) {\n\t\t\tcase 0:\n\t\t\t\tv.In = \"query\"\n\t\t\tcase 1:\n\t\t\t\tv.In = \"header\"\n\t\t\tcase 2:\n\t\t\t\tv.In = \"cookie\"\n\t\t\t}\n\t\tcase 1:\n\t\t\tv.Type = \"http\"\n\t\tcase 2:\n\t\t\tv.Type = \"oauth2\"\n\t\t\tv.Flows = make(map[string]*OAuthFlow)\n\t\t\tflow := OAuthFlow{}\n\t\t\tflow.AuthorizationUrl = c.RandString() + \"x\"\n\t\t\tv.Flows[\"implicit\"] = &flow\n\t\t\tflow.Scopes = make(map[string]string)\n\t\t\tflow.Scopes[\"foo\"] = \"bar\"\n\t\tcase 3:\n\t\t\tv.Type = \"openIdConnect\"\n\t\t\tv.OpenIdConnectUrl = \"https://\" + c.RandString()\n\t\t}\n\t\tv.Scheme = \"basic\"\n\t},\n\tfunc(v *spec.Ref, c fuzz.Continue) {\n\t\tswitch c.Intn(7) {\n\t\tcase 0:\n\t\t\t*v = spec.MustCreateRef(\"#/components/schemas/\" + randAlphanumString())\n\t\tcase 1:\n\t\t\t*v = spec.MustCreateRef(\"#/components/responses/\" + randAlphanumString())\n\t\tcase 2:\n\t\t\t*v = spec.MustCreateRef(\"#/components/headers/\" + randAlphanumString())\n\t\tcase 3:\n\t\t\t*v = spec.MustCreateRef(\"#/components/securitySchemes/\" + randAlphanumString())\n\t\tcase 5:\n\t\t\t*v = spec.MustCreateRef(\"#/components/parameters/\" + randAlphanumString())\n\t\tcase 6:\n\t\t\t*v = spec.MustCreateRef(\"#/components/requestBodies/\" + randAlphanumString())\n\t\t}\n\t},\n\tfunc(v *Parameter, c fuzz.Continue) {\n\t\tif c.Intn(refChance) == 0 {\n\t\t\tc.Fuzz(&v.Refable)\n\t\t\treturn\n\t\t}\n\t\tc.Fuzz(&v.ParameterProps)\n\t\tc.Fuzz(&v.VendorExtensible)\n\n\t\tswitch c.Intn(3) {\n\t\tcase 0:\n\t\t\t// Header param\n\t\t\tv.In = \"query\"\n\t\tcase 1:\n\t\t\tv.In = \"header\"\n\t\tcase 2:\n\t\t\tv.In = \"cookie\"\n\t\t}\n\t},\n\tfunc(v *RequestBody, c fuzz.Continue) {\n\t\tif c.Intn(refChance) == 0 {\n\t\t\tc.Fuzz(&v.Refable)\n\t\t\treturn\n\t\t}\n\t\tc.Fuzz(&v.RequestBodyProps)\n\t\tc.Fuzz(&v.VendorExtensible)\n\t},\n\tfunc(v *Header, c fuzz.Continue) {\n\t\tif c.Intn(refChance) == 0 {\n\t\t\tc.Fuzz(&v.Refable)\n\t\t\treturn\n\t\t}\n\t\tc.Fuzz(&v.HeaderProps)\n\t\tc.Fuzz(&v.VendorExtensible)\n\t},\n\tfunc(v *ResponsesProps, c fuzz.Continue) {\n\t\tc.Fuzz(&v.Default)\n\t\tn := c.Intn(5)\n\t\tfor i := 0; i < n; i++ {\n\t\t\tr2 := Response{}\n\t\t\tc.Fuzz(&r2)\n\t\t\t// HTTP Status code in 100-599 Range\n\t\t\tcode := c.Intn(500) + 100\n\t\t\tv.StatusCodeResponses = make(map[int]*Response)\n\t\t\tv.StatusCodeResponses[code] = &r2\n\t\t}\n\t},\n\tfunc(v *Response, c fuzz.Continue) {\n\t\tif c.Intn(refChance) == 0 {\n\t\t\tc.Fuzz(&v.Refable)\n\t\t\treturn\n\t\t}\n\t\tc.Fuzz(&v.ResponseProps)\n\t\tc.Fuzz(&v.VendorExtensible)\n\t},\n\tfunc(v *Operation, c fuzz.Continue) {\n\t\tc.FuzzNoCustom(v)\n\t\t// Do not fuzz null values into the array.\n\t\tfor i, val := range v.SecurityRequirement {\n\t\t\tif val == nil {\n\t\t\t\tv.SecurityRequirement[i] = make(map[string][]string)\n\t\t\t}\n\n\t\t\tfor k, v := range val {\n\t\t\t\tif v == nil {\n\t\t\t\t\tval[k] = make([]string, 0)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\tfunc(v *spec.Extensions, c fuzz.Continue) {\n\t\tnumChildren := c.Intn(5)\n\t\tfor i := 0; i < numChildren; i++ {\n\t\t\tif *v == nil {\n\t\t\t\t*v = spec.Extensions{}\n\t\t\t}\n\t\t\t(*v)[\"x-\"+c.RandString()] = c.RandString()\n\t\t}\n\t},\n\tfunc(v *spec.ExternalDocumentation, c fuzz.Continue) {\n\t\tc.Fuzz(&v.Description)\n\t\tv.URL = \"https://\" + randAlphanumString()\n\t},\n\tfunc(v *spec.SchemaURL, c fuzz.Continue) {\n\t\t*v = spec.SchemaURL(\"https://\" + randAlphanumString())\n\t},\n\tfunc(v *spec.SchemaOrBool, c fuzz.Continue) {\n\t\t*v = spec.SchemaOrBool{}\n\n\t\tif c.RandBool() {\n\t\t\tv.Allows = c.RandBool()\n\t\t} else {\n\t\t\tv.Schema = &spec.Schema{}\n\t\t\tv.Allows = true\n\t\t\tc.Fuzz(&v.Schema)\n\t\t}\n\t},\n\tfunc(v *spec.SchemaOrArray, c fuzz.Continue) {\n\t\t*v = spec.SchemaOrArray{}\n\t\tif c.RandBool() {\n\t\t\tschema := spec.Schema{}\n\t\t\tc.Fuzz(&schema)\n\t\t\tv.Schema = &schema\n\t\t} else {\n\t\t\tv.Schemas = []spec.Schema{}\n\t\t\tnumChildren := c.Intn(5)\n\t\t\tfor i := 0; i < numChildren; i++ {\n\t\t\t\tschema := spec.Schema{}\n\t\t\t\tc.Fuzz(&schema)\n\t\t\t\tv.Schemas = append(v.Schemas, schema)\n\t\t\t}\n\n\t\t}\n\n\t},\n\tfunc(v *spec.SchemaOrStringArray, c fuzz.Continue) {\n\t\tif c.RandBool() {\n\t\t\t*v = spec.SchemaOrStringArray{}\n\t\t\tif c.RandBool() {\n\t\t\t\tc.Fuzz(&v.Property)\n\t\t\t} else {\n\t\t\t\tc.Fuzz(&v.Schema)\n\t\t\t}\n\t\t}\n\t},\n\tfunc(v *spec.Schema, c fuzz.Continue) {\n\t\tif c.Intn(refChance) == 0 {\n\t\t\tc.Fuzz(&v.Ref)\n\t\t\treturn\n\t\t}\n\t\tif c.RandBool() {\n\t\t\t// file schema\n\t\t\tc.Fuzz(&v.Default)\n\t\t\tc.Fuzz(&v.Description)\n\t\t\tc.Fuzz(&v.Example)\n\t\t\tc.Fuzz(&v.ExternalDocs)\n\n\t\t\tc.Fuzz(&v.Format)\n\t\t\tc.Fuzz(&v.ReadOnly)\n\t\t\tc.Fuzz(&v.Required)\n\t\t\tc.Fuzz(&v.Title)\n\t\t\tv.Type = spec.StringOrArray{\"file\"}\n\n\t\t} else {\n\t\t\t// normal schema\n\t\t\tc.Fuzz(&v.SchemaProps)\n\t\t\tc.Fuzz(&v.SwaggerSchemaProps)\n\t\t\tc.Fuzz(&v.VendorExtensible)\n\t\t\tc.Fuzz(&v.ExtraProps)\n\t\t}\n\n\t},\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/spec3/header.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// Header a struct that describes a single operation parameter, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#parameterObject\n//\n// Note that this struct is actually a thin wrapper around HeaderProps to make it referable and extensible\ntype Header struct {\n\tspec.Refable\n\tHeaderProps\n\tspec.VendorExtensible\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode Header as JSON\nfunc (h *Header) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshalingV3 {\n\t\treturn internal.DeterministicMarshal(h)\n\t}\n\tb1, err := json.Marshal(h.Refable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(h.HeaderProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb3, err := json.Marshal(h.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2, b3), nil\n}\n\nfunc (h *Header) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tRef         string              `json:\"$ref,omitempty\"`\n\t\tHeaderProps headerPropsOmitZero `json:\",inline\"`\n\t\tspec.Extensions\n\t}\n\tx.Ref = h.Refable.Ref.String()\n\tx.Extensions = internal.SanitizeExtensions(h.Extensions)\n\tx.HeaderProps = headerPropsOmitZero(h.HeaderProps)\n\treturn opts.MarshalNext(enc, x)\n}\n\nfunc (h *Header) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, h)\n\t}\n\tif err := json.Unmarshal(data, &h.Refable); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &h.HeaderProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &h.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc (h *Header) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tspec.Extensions\n\t\tHeaderProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\tif err := internal.JSONRefFromMap(&h.Ref.Ref, x.Extensions); err != nil {\n\t\treturn err\n\t}\n\th.Extensions = internal.SanitizeExtensions(x.Extensions)\n\th.HeaderProps = x.HeaderProps\n\treturn nil\n}\n\n// HeaderProps a struct that describes a header object\ntype HeaderProps struct {\n\t// Description holds a brief description of the parameter\n\tDescription string `json:\"description,omitempty\"`\n\t// Required determines whether this parameter is mandatory\n\tRequired bool `json:\"required,omitempty\"`\n\t// Deprecated declares this operation to be deprecated\n\tDeprecated bool `json:\"deprecated,omitempty\"`\n\t// AllowEmptyValue sets the ability to pass empty-valued parameters\n\tAllowEmptyValue bool `json:\"allowEmptyValue,omitempty\"`\n\t// Style describes how the parameter value will be serialized depending on the type of the parameter value\n\tStyle string `json:\"style,omitempty\"`\n\t// Explode when true, parameter values of type array or object generate separate parameters for each value of the array or key-value pair of the map\n\tExplode bool `json:\"explode,omitempty\"`\n\t// AllowReserved determines whether the parameter value SHOULD allow reserved characters, as defined by RFC3986\n\tAllowReserved bool `json:\"allowReserved,omitempty\"`\n\t// Schema holds the schema defining the type used for the parameter\n\tSchema *spec.Schema `json:\"schema,omitempty\"`\n\t// Content holds a map containing the representations for the parameter\n\tContent map[string]*MediaType `json:\"content,omitempty\"`\n\t// Example of the header\n\tExample interface{} `json:\"example,omitempty\"`\n\t// Examples of the header\n\tExamples map[string]*Example `json:\"examples,omitempty\"`\n}\n\n// Marshaling structure only, always edit along with corresponding\n// struct (or compilation will fail).\ntype headerPropsOmitZero struct {\n\tDescription     string                `json:\"description,omitempty\"`\n\tRequired        bool                  `json:\"required,omitzero\"`\n\tDeprecated      bool                  `json:\"deprecated,omitzero\"`\n\tAllowEmptyValue bool                  `json:\"allowEmptyValue,omitzero\"`\n\tStyle           string                `json:\"style,omitempty\"`\n\tExplode         bool                  `json:\"explode,omitzero\"`\n\tAllowReserved   bool                  `json:\"allowReserved,omitzero\"`\n\tSchema          *spec.Schema          `json:\"schema,omitzero\"`\n\tContent         map[string]*MediaType `json:\"content,omitempty\"`\n\tExample         interface{}           `json:\"example,omitempty\"`\n\tExamples        map[string]*Example   `json:\"examples,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/spec3/media_type.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// MediaType a struct that allows you to specify content format, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#mediaTypeObject\n//\n// Note that this struct is actually a thin wrapper around MediaTypeProps to make it referable and extensible\ntype MediaType struct {\n\tMediaTypeProps\n\tspec.VendorExtensible\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode MediaType as JSON\nfunc (m *MediaType) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshalingV3 {\n\t\treturn internal.DeterministicMarshal(m)\n\t}\n\tb1, err := json.Marshal(m.MediaTypeProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(m.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2), nil\n}\n\nfunc (e *MediaType) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tMediaTypeProps mediaTypePropsOmitZero `json:\",inline\"`\n\t\tspec.Extensions\n\t}\n\tx.Extensions = internal.SanitizeExtensions(e.Extensions)\n\tx.MediaTypeProps = mediaTypePropsOmitZero(e.MediaTypeProps)\n\treturn opts.MarshalNext(enc, x)\n}\n\nfunc (m *MediaType) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, m)\n\t}\n\tif err := json.Unmarshal(data, &m.MediaTypeProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &m.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc (m *MediaType) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tspec.Extensions\n\t\tMediaTypeProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\tm.Extensions = internal.SanitizeExtensions(x.Extensions)\n\tm.MediaTypeProps = x.MediaTypeProps\n\n\treturn nil\n}\n\n// MediaTypeProps a struct that allows you to specify content format, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#mediaTypeObject\ntype MediaTypeProps struct {\n\t// Schema holds the schema defining the type used for the media type\n\tSchema *spec.Schema `json:\"schema,omitempty\"`\n\t// Example of the media type\n\tExample interface{} `json:\"example,omitempty\"`\n\t// Examples of the media type. Each example object should match the media type and specific schema if present\n\tExamples map[string]*Example `json:\"examples,omitempty\"`\n\t// A map between a property name and its encoding information. The key, being the property name, MUST exist in the schema as a property. The encoding object SHALL only apply to requestBody objects when the media type is multipart or application/x-www-form-urlencoded\n\tEncoding map[string]*Encoding `json:\"encoding,omitempty\"`\n}\n\ntype mediaTypePropsOmitZero struct {\n\tSchema   *spec.Schema         `json:\"schema,omitzero\"`\n\tExample  interface{}          `json:\"example,omitempty\"`\n\tExamples map[string]*Example  `json:\"examples,omitempty\"`\n\tEncoding map[string]*Encoding `json:\"encoding,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/spec3/operation.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// Operation describes a single API operation on a path, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#operationObject\n//\n// Note that this struct is actually a thin wrapper around OperationProps to make it referable and extensible\ntype Operation struct {\n\tOperationProps\n\tspec.VendorExtensible\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode Operation as JSON\nfunc (o *Operation) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshalingV3 {\n\t\treturn internal.DeterministicMarshal(o)\n\t}\n\tb1, err := json.Marshal(o.OperationProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(o.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2), nil\n}\n\nfunc (o *Operation) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tspec.Extensions\n\t\tOperationProps operationPropsOmitZero `json:\",inline\"`\n\t}\n\tx.Extensions = internal.SanitizeExtensions(o.Extensions)\n\tx.OperationProps = operationPropsOmitZero(o.OperationProps)\n\treturn opts.MarshalNext(enc, x)\n}\n\n// UnmarshalJSON hydrates this items instance with the data from JSON\nfunc (o *Operation) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, o)\n\t}\n\tif err := json.Unmarshal(data, &o.OperationProps); err != nil {\n\t\treturn err\n\t}\n\treturn json.Unmarshal(data, &o.VendorExtensible)\n}\n\nfunc (o *Operation) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tspec.Extensions\n\t\tOperationProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\to.Extensions = internal.SanitizeExtensions(x.Extensions)\n\to.OperationProps = x.OperationProps\n\treturn nil\n}\n\n// OperationProps describes a single API operation on a path, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#operationObject\ntype OperationProps struct {\n\t// Tags holds a list of tags for API documentation control\n\tTags []string `json:\"tags,omitempty\"`\n\t// Summary holds a short summary of what the operation does\n\tSummary string `json:\"summary,omitempty\"`\n\t// Description holds a verbose explanation of the operation behavior\n\tDescription string `json:\"description,omitempty\"`\n\t// ExternalDocs holds additional external documentation for this operation\n\tExternalDocs *ExternalDocumentation `json:\"externalDocs,omitempty\"`\n\t// OperationId holds a unique string used to identify the operation\n\tOperationId string `json:\"operationId,omitempty\"`\n\t// Parameters a list of parameters that are applicable for this operation\n\tParameters []*Parameter `json:\"parameters,omitempty\"`\n\t// RequestBody holds the request body applicable for this operation\n\tRequestBody *RequestBody `json:\"requestBody,omitempty\"`\n\t// Responses holds the list of possible responses as they are returned from executing this operation\n\tResponses *Responses `json:\"responses,omitempty\"`\n\t// Deprecated declares this operation to be deprecated\n\tDeprecated bool `json:\"deprecated,omitempty\"`\n\t// SecurityRequirement holds a declaration of which security mechanisms can be used for this operation\n\tSecurityRequirement []map[string][]string `json:\"security,omitempty\"`\n\t// Servers contains an alternative server array to service this operation\n\tServers []*Server `json:\"servers,omitempty\"`\n}\n\ntype operationPropsOmitZero struct {\n\tTags                []string               `json:\"tags,omitempty\"`\n\tSummary             string                 `json:\"summary,omitempty\"`\n\tDescription         string                 `json:\"description,omitempty\"`\n\tExternalDocs        *ExternalDocumentation `json:\"externalDocs,omitzero\"`\n\tOperationId         string                 `json:\"operationId,omitempty\"`\n\tParameters          []*Parameter           `json:\"parameters,omitempty\"`\n\tRequestBody         *RequestBody           `json:\"requestBody,omitzero\"`\n\tResponses           *Responses             `json:\"responses,omitzero\"`\n\tDeprecated          bool                   `json:\"deprecated,omitzero\"`\n\tSecurityRequirement []map[string][]string  `json:\"security,omitempty\"`\n\tServers             []*Server              `json:\"servers,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/spec3/parameter.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// Parameter a struct that describes a single operation parameter, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#parameterObject\n//\n// Note that this struct is actually a thin wrapper around ParameterProps to make it referable and extensible\ntype Parameter struct {\n\tspec.Refable\n\tParameterProps\n\tspec.VendorExtensible\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode Parameter as JSON\nfunc (p *Parameter) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshalingV3 {\n\t\treturn internal.DeterministicMarshal(p)\n\t}\n\tb1, err := json.Marshal(p.Refable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(p.ParameterProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb3, err := json.Marshal(p.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2, b3), nil\n}\n\nfunc (p *Parameter) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tRef            string                 `json:\"$ref,omitempty\"`\n\t\tParameterProps parameterPropsOmitZero `json:\",inline\"`\n\t\tspec.Extensions\n\t}\n\tx.Ref = p.Refable.Ref.String()\n\tx.Extensions = internal.SanitizeExtensions(p.Extensions)\n\tx.ParameterProps = parameterPropsOmitZero(p.ParameterProps)\n\treturn opts.MarshalNext(enc, x)\n}\n\nfunc (p *Parameter) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, p)\n\t}\n\n\tif err := json.Unmarshal(data, &p.Refable); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &p.ParameterProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &p.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc (p *Parameter) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tspec.Extensions\n\t\tParameterProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\tif err := internal.JSONRefFromMap(&p.Ref.Ref, x.Extensions); err != nil {\n\t\treturn err\n\t}\n\tp.Extensions = internal.SanitizeExtensions(x.Extensions)\n\tp.ParameterProps = x.ParameterProps\n\treturn nil\n}\n\n// ParameterProps a struct that describes a single operation parameter, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#parameterObject\ntype ParameterProps struct {\n\t// Name holds the name of the parameter\n\tName string `json:\"name,omitempty\"`\n\t// In holds the location of the parameter\n\tIn string `json:\"in,omitempty\"`\n\t// Description holds a brief description of the parameter\n\tDescription string `json:\"description,omitempty\"`\n\t// Required determines whether this parameter is mandatory\n\tRequired bool `json:\"required,omitempty\"`\n\t// Deprecated declares this operation to be deprecated\n\tDeprecated bool `json:\"deprecated,omitempty\"`\n\t// AllowEmptyValue sets the ability to pass empty-valued parameters\n\tAllowEmptyValue bool `json:\"allowEmptyValue,omitempty\"`\n\t// Style describes how the parameter value will be serialized depending on the type of the parameter value\n\tStyle string `json:\"style,omitempty\"`\n\t// Explode when true, parameter values of type array or object generate separate parameters for each value of the array or key-value pair of the map\n\tExplode bool `json:\"explode,omitempty\"`\n\t// AllowReserved determines whether the parameter value SHOULD allow reserved characters, as defined by RFC3986\n\tAllowReserved bool `json:\"allowReserved,omitempty\"`\n\t// Schema holds the schema defining the type used for the parameter\n\tSchema *spec.Schema `json:\"schema,omitempty\"`\n\t// Content holds a map containing the representations for the parameter\n\tContent map[string]*MediaType `json:\"content,omitempty\"`\n\t// Example of the parameter's potential value\n\tExample interface{} `json:\"example,omitempty\"`\n\t// Examples of the parameter's potential value. Each example SHOULD contain a value in the correct format as specified in the parameter encoding\n\tExamples map[string]*Example `json:\"examples,omitempty\"`\n}\n\ntype parameterPropsOmitZero struct {\n\tName            string                `json:\"name,omitempty\"`\n\tIn              string                `json:\"in,omitempty\"`\n\tDescription     string                `json:\"description,omitempty\"`\n\tRequired        bool                  `json:\"required,omitzero\"`\n\tDeprecated      bool                  `json:\"deprecated,omitzero\"`\n\tAllowEmptyValue bool                  `json:\"allowEmptyValue,omitzero\"`\n\tStyle           string                `json:\"style,omitempty\"`\n\tExplode         bool                  `json:\"explode,omitzero\"`\n\tAllowReserved   bool                  `json:\"allowReserved,omitzero\"`\n\tSchema          *spec.Schema          `json:\"schema,omitzero\"`\n\tContent         map[string]*MediaType `json:\"content,omitempty\"`\n\tExample         interface{}           `json:\"example,omitempty\"`\n\tExamples        map[string]*Example   `json:\"examples,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/spec3/path.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"strings\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// Paths describes the available paths and operations for the API, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#pathsObject\ntype Paths struct {\n\tPaths map[string]*Path\n\tspec.VendorExtensible\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode Paths as JSON\nfunc (p *Paths) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshalingV3 {\n\t\treturn internal.DeterministicMarshal(p)\n\t}\n\tb1, err := json.Marshal(p.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tpths := make(map[string]*Path)\n\tfor k, v := range p.Paths {\n\t\tif strings.HasPrefix(k, \"/\") {\n\t\t\tpths[k] = v\n\t\t}\n\t}\n\tb2, err := json.Marshal(pths)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tconcated := swag.ConcatJSON(b1, b2)\n\treturn concated, nil\n}\n\nfunc (p *Paths) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tm := make(map[string]any, len(p.Extensions)+len(p.Paths))\n\tfor k, v := range p.Extensions {\n\t\tif internal.IsExtensionKey(k) {\n\t\t\tm[k] = v\n\t\t}\n\t}\n\tfor k, v := range p.Paths {\n\t\tif strings.HasPrefix(k, \"/\") {\n\t\t\tm[k] = v\n\t\t}\n\t}\n\treturn opts.MarshalNext(enc, m)\n}\n\n// UnmarshalJSON hydrates this items instance with the data from JSON\nfunc (p *Paths) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, p)\n\t}\n\tvar res map[string]json.RawMessage\n\tif err := json.Unmarshal(data, &res); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range res {\n\t\tif strings.HasPrefix(strings.ToLower(k), \"x-\") {\n\t\t\tif p.Extensions == nil {\n\t\t\t\tp.Extensions = make(map[string]interface{})\n\t\t\t}\n\t\t\tvar d interface{}\n\t\t\tif err := json.Unmarshal(v, &d); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tp.Extensions[k] = d\n\t\t}\n\t\tif strings.HasPrefix(k, \"/\") {\n\t\t\tif p.Paths == nil {\n\t\t\t\tp.Paths = make(map[string]*Path)\n\t\t\t}\n\t\t\tvar pi *Path\n\t\t\tif err := json.Unmarshal(v, &pi); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tp.Paths[k] = pi\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (p *Paths) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\ttok, err := dec.ReadToken()\n\tif err != nil {\n\t\treturn err\n\t}\n\tswitch k := tok.Kind(); k {\n\tcase 'n':\n\t\t*p = Paths{}\n\t\treturn nil\n\tcase '{':\n\t\tfor {\n\t\t\ttok, err := dec.ReadToken()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tif tok.Kind() == '}' {\n\t\t\t\treturn nil\n\t\t\t}\n\n\t\t\tswitch k := tok.String(); {\n\t\t\tcase internal.IsExtensionKey(k):\n\t\t\t\tvar ext any\n\t\t\t\tif err := opts.UnmarshalNext(dec, &ext); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\tif p.Extensions == nil {\n\t\t\t\t\tp.Extensions = make(map[string]any)\n\t\t\t\t}\n\t\t\t\tp.Extensions[k] = ext\n\t\t\tcase len(k) > 0 && k[0] == '/':\n\t\t\t\tpi := Path{}\n\t\t\t\tif err := opts.UnmarshalNext(dec, &pi); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\tif p.Paths == nil {\n\t\t\t\t\tp.Paths = make(map[string]*Path)\n\t\t\t\t}\n\t\t\t\tp.Paths[k] = &pi\n\t\t\tdefault:\n\t\t\t\t_, err := dec.ReadValue() // skip value\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\tdefault:\n\t\treturn fmt.Errorf(\"unknown JSON kind: %v\", k)\n\t}\n}\n\n// Path describes the operations available on a single path, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#pathItemObject\n//\n// Note that this struct is actually a thin wrapper around PathProps to make it referable and extensible\ntype Path struct {\n\tspec.Refable\n\tPathProps\n\tspec.VendorExtensible\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode Path as JSON\nfunc (p *Path) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshalingV3 {\n\t\treturn internal.DeterministicMarshal(p)\n\t}\n\tb1, err := json.Marshal(p.Refable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(p.PathProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb3, err := json.Marshal(p.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2, b3), nil\n}\n\nfunc (p *Path) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tRef string `json:\"$ref,omitempty\"`\n\t\tspec.Extensions\n\t\tPathProps\n\t}\n\tx.Ref = p.Refable.Ref.String()\n\tx.Extensions = internal.SanitizeExtensions(p.Extensions)\n\tx.PathProps = p.PathProps\n\treturn opts.MarshalNext(enc, x)\n}\n\nfunc (p *Path) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, p)\n\t}\n\tif err := json.Unmarshal(data, &p.Refable); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &p.PathProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &p.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc (p *Path) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tspec.Extensions\n\t\tPathProps\n\t}\n\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\tif err := internal.JSONRefFromMap(&p.Ref.Ref, x.Extensions); err != nil {\n\t\treturn err\n\t}\n\tp.Extensions = internal.SanitizeExtensions(x.Extensions)\n\tp.PathProps = x.PathProps\n\n\treturn nil\n}\n\n// PathProps describes the operations available on a single path, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#pathItemObject\ntype PathProps struct {\n\t// Summary holds a summary for all operations in this path\n\tSummary string `json:\"summary,omitempty\"`\n\t// Description holds a description for all operations in this path\n\tDescription string `json:\"description,omitempty\"`\n\t// Get defines GET operation\n\tGet *Operation `json:\"get,omitempty\"`\n\t// Put defines PUT operation\n\tPut *Operation `json:\"put,omitempty\"`\n\t// Post defines POST operation\n\tPost *Operation `json:\"post,omitempty\"`\n\t// Delete defines DELETE operation\n\tDelete *Operation `json:\"delete,omitempty\"`\n\t// Options defines OPTIONS operation\n\tOptions *Operation `json:\"options,omitempty\"`\n\t// Head defines HEAD operation\n\tHead *Operation `json:\"head,omitempty\"`\n\t// Patch defines PATCH operation\n\tPatch *Operation `json:\"patch,omitempty\"`\n\t// Trace defines TRACE operation\n\tTrace *Operation `json:\"trace,omitempty\"`\n\t// Servers is an alternative server array to service all operations in this path\n\tServers []*Server `json:\"servers,omitempty\"`\n\t// Parameters a list of parameters that are applicable for this operation\n\tParameters []*Parameter `json:\"parameters,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/spec3/request_body.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// RequestBody describes a single request body, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#requestBodyObject\n//\n// Note that this struct is actually a thin wrapper around RequestBodyProps to make it referable and extensible\ntype RequestBody struct {\n\tspec.Refable\n\tRequestBodyProps\n\tspec.VendorExtensible\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode RequestBody as JSON\nfunc (r *RequestBody) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshalingV3 {\n\t\treturn internal.DeterministicMarshal(r)\n\t}\n\tb1, err := json.Marshal(r.Refable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(r.RequestBodyProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb3, err := json.Marshal(r.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2, b3), nil\n}\n\nfunc (r *RequestBody) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tRef              string                   `json:\"$ref,omitempty\"`\n\t\tRequestBodyProps requestBodyPropsOmitZero `json:\",inline\"`\n\t\tspec.Extensions\n\t}\n\tx.Ref = r.Refable.Ref.String()\n\tx.Extensions = internal.SanitizeExtensions(r.Extensions)\n\tx.RequestBodyProps = requestBodyPropsOmitZero(r.RequestBodyProps)\n\treturn opts.MarshalNext(enc, x)\n}\n\nfunc (r *RequestBody) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, r)\n\t}\n\tif err := json.Unmarshal(data, &r.Refable); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &r.RequestBodyProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &r.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// RequestBodyProps describes a single request body, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#requestBodyObject\ntype RequestBodyProps struct {\n\t// Description holds a brief description of the request body\n\tDescription string `json:\"description,omitempty\"`\n\t// Content is the content of the request body. The key is a media type or media type range and the value describes it\n\tContent map[string]*MediaType `json:\"content,omitempty\"`\n\t// Required determines if the request body is required in the request\n\tRequired bool `json:\"required,omitempty\"`\n}\n\ntype requestBodyPropsOmitZero struct {\n\tDescription string                `json:\"description,omitempty\"`\n\tContent     map[string]*MediaType `json:\"content,omitempty\"`\n\tRequired    bool                  `json:\"required,omitzero\"`\n}\n\nfunc (r *RequestBody) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tspec.Extensions\n\t\tRequestBodyProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\tif err := internal.JSONRefFromMap(&r.Ref.Ref, x.Extensions); err != nil {\n\t\treturn err\n\t}\n\tr.Extensions = internal.SanitizeExtensions(x.Extensions)\n\tr.RequestBodyProps = x.RequestBodyProps\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/spec3/response.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"strconv\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// Responses holds the list of possible responses as they are returned from executing this operation\n//\n// Note that this struct is actually a thin wrapper around ResponsesProps to make it referable and extensible\ntype Responses struct {\n\tResponsesProps\n\tspec.VendorExtensible\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode Responses as JSON\nfunc (r *Responses) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshalingV3 {\n\t\treturn internal.DeterministicMarshal(r)\n\t}\n\tb1, err := json.Marshal(r.ResponsesProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(r.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2), nil\n}\n\nfunc (r Responses) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\ttype ArbitraryKeys map[string]interface{}\n\tvar x struct {\n\t\tArbitraryKeys\n\t\tDefault *Response `json:\"default,omitzero\"`\n\t}\n\tx.ArbitraryKeys = make(map[string]any, len(r.Extensions)+len(r.StatusCodeResponses))\n\tfor k, v := range r.Extensions {\n\t\tif internal.IsExtensionKey(k) {\n\t\t\tx.ArbitraryKeys[k] = v\n\t\t}\n\t}\n\tfor k, v := range r.StatusCodeResponses {\n\t\tx.ArbitraryKeys[strconv.Itoa(k)] = v\n\t}\n\tx.Default = r.Default\n\treturn opts.MarshalNext(enc, x)\n}\n\nfunc (r *Responses) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, r)\n\t}\n\tif err := json.Unmarshal(data, &r.ResponsesProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &r.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\n// ResponsesProps holds the list of possible responses as they are returned from executing this operation\ntype ResponsesProps struct {\n\t// Default holds the documentation of responses other than the ones declared for specific HTTP response codes. Use this field to cover undeclared responses\n\tDefault *Response `json:\"-\"`\n\t// StatusCodeResponses holds a map of any HTTP status code to the response definition\n\tStatusCodeResponses map[int]*Response `json:\"-\"`\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode ResponsesProps as JSON\nfunc (r ResponsesProps) MarshalJSON() ([]byte, error) {\n\ttoser := map[string]*Response{}\n\tif r.Default != nil {\n\t\ttoser[\"default\"] = r.Default\n\t}\n\tfor k, v := range r.StatusCodeResponses {\n\t\ttoser[strconv.Itoa(k)] = v\n\t}\n\treturn json.Marshal(toser)\n}\n\n// UnmarshalJSON unmarshals responses from JSON\nfunc (r *ResponsesProps) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, r)\n\t}\n\tvar res map[string]json.RawMessage\n\tif err := json.Unmarshal(data, &res); err != nil {\n\t\treturn err\n\t}\n\tif v, ok := res[\"default\"]; ok {\n\t\tvalue := Response{}\n\t\tif err := json.Unmarshal(v, &value); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tr.Default = &value\n\t\tdelete(res, \"default\")\n\t}\n\tfor k, v := range res {\n\t\t// Take all integral keys\n\t\tif nk, err := strconv.Atoi(k); err == nil {\n\t\t\tif r.StatusCodeResponses == nil {\n\t\t\t\tr.StatusCodeResponses = map[int]*Response{}\n\t\t\t}\n\t\t\tvalue := Response{}\n\t\t\tif err := json.Unmarshal(v, &value); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tr.StatusCodeResponses[nk] = &value\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (r *Responses) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) (err error) {\n\ttok, err := dec.ReadToken()\n\tif err != nil {\n\t\treturn err\n\t}\n\tswitch k := tok.Kind(); k {\n\tcase 'n':\n\t\t*r = Responses{}\n\t\treturn nil\n\tcase '{':\n\t\tfor {\n\t\t\ttok, err := dec.ReadToken()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif tok.Kind() == '}' {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tswitch k := tok.String(); {\n\t\t\tcase internal.IsExtensionKey(k):\n\t\t\t\tvar ext any\n\t\t\t\tif err := opts.UnmarshalNext(dec, &ext); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\tif r.Extensions == nil {\n\t\t\t\t\tr.Extensions = make(map[string]any)\n\t\t\t\t}\n\t\t\t\tr.Extensions[k] = ext\n\t\t\tcase k == \"default\":\n\t\t\t\tresp := Response{}\n\t\t\t\tif err := opts.UnmarshalNext(dec, &resp); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tr.ResponsesProps.Default = &resp\n\t\t\tdefault:\n\t\t\t\tif nk, err := strconv.Atoi(k); err == nil {\n\t\t\t\t\tresp := Response{}\n\t\t\t\t\tif err := opts.UnmarshalNext(dec, &resp); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\n\t\t\t\t\tif r.StatusCodeResponses == nil {\n\t\t\t\t\t\tr.StatusCodeResponses = map[int]*Response{}\n\t\t\t\t\t}\n\t\t\t\t\tr.StatusCodeResponses[nk] = &resp\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\tdefault:\n\t\treturn fmt.Errorf(\"unknown JSON kind: %v\", k)\n\t}\n}\n\n// Response describes a single response from an API Operation, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#responseObject\n//\n// Note that this struct is actually a thin wrapper around ResponseProps to make it referable and extensible\ntype Response struct {\n\tspec.Refable\n\tResponseProps\n\tspec.VendorExtensible\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode Response as JSON\nfunc (r *Response) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshalingV3 {\n\t\treturn internal.DeterministicMarshal(r)\n\t}\n\tb1, err := json.Marshal(r.Refable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(r.ResponseProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb3, err := json.Marshal(r.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2, b3), nil\n}\n\nfunc (r Response) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tRef string `json:\"$ref,omitempty\"`\n\t\tspec.Extensions\n\t\tResponseProps `json:\",inline\"`\n\t}\n\tx.Ref = r.Refable.Ref.String()\n\tx.Extensions = internal.SanitizeExtensions(r.Extensions)\n\tx.ResponseProps = r.ResponseProps\n\treturn opts.MarshalNext(enc, x)\n}\n\nfunc (r *Response) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, r)\n\t}\n\tif err := json.Unmarshal(data, &r.Refable); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &r.ResponseProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &r.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc (r *Response) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tspec.Extensions\n\t\tResponseProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\tif err := internal.JSONRefFromMap(&r.Ref.Ref, x.Extensions); err != nil {\n\t\treturn err\n\t}\n\tr.Extensions = internal.SanitizeExtensions(x.Extensions)\n\tr.ResponseProps = x.ResponseProps\n\treturn nil\n}\n\n// ResponseProps describes a single response from an API Operation, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#responseObject\ntype ResponseProps struct {\n\t// Description holds a short description of the response\n\tDescription string `json:\"description,omitempty\"`\n\t// Headers holds a maps of a headers name to its definition\n\tHeaders map[string]*Header `json:\"headers,omitempty\"`\n\t// Content holds a map containing descriptions of potential response payloads\n\tContent map[string]*MediaType `json:\"content,omitempty\"`\n\t// Links is a map of operations links that can be followed from the response\n\tLinks map[string]*Link `json:\"links,omitempty\"`\n}\n\n// Link represents a possible design-time link for a response, more at https://swagger.io/specification/#link-object\ntype Link struct {\n\tspec.Refable\n\tLinkProps\n\tspec.VendorExtensible\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode Link as JSON\nfunc (r *Link) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshalingV3 {\n\t\treturn internal.DeterministicMarshal(r)\n\t}\n\tb1, err := json.Marshal(r.Refable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(r.LinkProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb3, err := json.Marshal(r.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2, b3), nil\n}\n\nfunc (r *Link) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tRef string `json:\"$ref,omitempty\"`\n\t\tspec.Extensions\n\t\tLinkProps `json:\",inline\"`\n\t}\n\tx.Ref = r.Refable.Ref.String()\n\tx.Extensions = internal.SanitizeExtensions(r.Extensions)\n\tx.LinkProps = r.LinkProps\n\treturn opts.MarshalNext(enc, x)\n}\n\nfunc (r *Link) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, r)\n\t}\n\tif err := json.Unmarshal(data, &r.Refable); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &r.LinkProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &r.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc (l *Link) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tspec.Extensions\n\t\tLinkProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\tif err := internal.JSONRefFromMap(&l.Ref.Ref, x.Extensions); err != nil {\n\t\treturn err\n\t}\n\tl.Extensions = internal.SanitizeExtensions(x.Extensions)\n\tl.LinkProps = x.LinkProps\n\treturn nil\n}\n\n// LinkProps describes a single response from an API Operation, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#responseObject\ntype LinkProps struct {\n\t// OperationId is the name of an existing, resolvable OAS operation\n\tOperationId string `json:\"operationId,omitempty\"`\n\t// Parameters is a map representing parameters to pass to an operation as specified with operationId or identified via operationRef\n\tParameters map[string]interface{} `json:\"parameters,omitempty\"`\n\t// Description holds a description of the link\n\tDescription string `json:\"description,omitempty\"`\n\t// RequestBody is a literal value or expresion to use as a request body when calling the target operation\n\tRequestBody interface{} `json:\"requestBody,omitempty\"`\n\t// Server holds a server object used by the target operation\n\tServer *Server `json:\"server,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/spec3/security_scheme.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// SecurityScheme defines reusable Security Scheme Object, more at https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#securitySchemeObject\ntype SecurityScheme struct {\n\tspec.Refable\n\tSecuritySchemeProps\n\tspec.VendorExtensible\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode SecurityScheme as JSON\nfunc (s *SecurityScheme) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshalingV3 {\n\t\treturn internal.DeterministicMarshal(s)\n\t}\n\tb1, err := json.Marshal(s.SecuritySchemeProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(s.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb3, err := json.Marshal(s.Refable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2, b3), nil\n}\n\nfunc (s *SecurityScheme) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tRef                 string `json:\"$ref,omitempty\"`\n\t\tSecuritySchemeProps `json:\",inline\"`\n\t\tspec.Extensions\n\t}\n\tx.Ref = s.Refable.Ref.String()\n\tx.Extensions = internal.SanitizeExtensions(s.Extensions)\n\tx.SecuritySchemeProps = s.SecuritySchemeProps\n\treturn opts.MarshalNext(enc, x)\n}\n\n// UnmarshalJSON hydrates this items instance with the data from JSON\nfunc (s *SecurityScheme) UnmarshalJSON(data []byte) error {\n\tif err := json.Unmarshal(data, &s.SecuritySchemeProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &s.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn json.Unmarshal(data, &s.Refable)\n}\n\n// SecuritySchemeProps defines a security scheme that can be used by the operations\ntype SecuritySchemeProps struct {\n\t// Type of the security scheme\n\tType string `json:\"type,omitempty\"`\n\t// Description holds a short description for security scheme\n\tDescription string `json:\"description,omitempty\"`\n\t// Name holds the name of the header, query or cookie parameter to be used\n\tName string `json:\"name,omitempty\"`\n\t// In holds the location of the API key\n\tIn string `json:\"in,omitempty\"`\n\t// Scheme holds the name of the HTTP Authorization scheme to be used in the Authorization header\n\tScheme string `json:\"scheme,omitempty\"`\n\t// BearerFormat holds a hint to the client to identify how the bearer token is formatted\n\tBearerFormat string `json:\"bearerFormat,omitempty\"`\n\t// Flows contains configuration information for the flow types supported.\n\tFlows map[string]*OAuthFlow `json:\"flows,omitempty\"`\n\t// OpenIdConnectUrl holds an url to discover OAuth2 configuration values from\n\tOpenIdConnectUrl string `json:\"openIdConnectUrl,omitempty\"`\n}\n\n// OAuthFlow contains configuration information for the flow types supported.\ntype OAuthFlow struct {\n\tOAuthFlowProps\n\tspec.VendorExtensible\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode OAuthFlow as JSON\nfunc (o *OAuthFlow) MarshalJSON() ([]byte, error) {\n\tb1, err := json.Marshal(o.OAuthFlowProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(o.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2), nil\n}\n\n// UnmarshalJSON hydrates this items instance with the data from JSON\nfunc (o *OAuthFlow) UnmarshalJSON(data []byte) error {\n\tif err := json.Unmarshal(data, &o.OAuthFlowProps); err != nil {\n\t\treturn err\n\t}\n\treturn json.Unmarshal(data, &o.VendorExtensible)\n}\n\n// OAuthFlowProps holds configuration details for a supported OAuth Flow\ntype OAuthFlowProps struct {\n\t// AuthorizationUrl hold the authorization URL to be used for this flow\n\tAuthorizationUrl string `json:\"authorizationUrl,omitempty\"`\n\t// TokenUrl holds the token URL to be used for this flow\n\tTokenUrl string `json:\"tokenUrl,omitempty\"`\n\t// RefreshUrl holds the URL to be used for obtaining refresh tokens\n\tRefreshUrl string `json:\"refreshUrl,omitempty\"`\n\t// Scopes holds the available scopes for the OAuth2 security scheme\n\tScopes map[string]string `json:\"scopes,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/spec3/server.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\ntype Server struct {\n\tServerProps\n\tspec.VendorExtensible\n}\n\ntype ServerProps struct {\n\t// Description is a short description of the target documentation. CommonMark syntax MAY be used for rich text representation.\n\tDescription string `json:\"description,omitempty\"`\n\t// URL is the URL for the target documentation.\n\tURL string `json:\"url\"`\n\t// Variables contains a map between a variable name and its value. The value is used for substitution in the server's URL templeate\n\tVariables map[string]*ServerVariable `json:\"variables,omitempty\"`\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode Responses as JSON\nfunc (s *Server) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshalingV3 {\n\t\treturn internal.DeterministicMarshal(s)\n\t}\n\tb1, err := json.Marshal(s.ServerProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(s.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2), nil\n}\n\nfunc (s *Server) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tServerProps `json:\",inline\"`\n\t\tspec.Extensions\n\t}\n\tx.Extensions = internal.SanitizeExtensions(s.Extensions)\n\tx.ServerProps = s.ServerProps\n\treturn opts.MarshalNext(enc, x)\n}\n\nfunc (s *Server) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, s)\n\t}\n\n\tif err := json.Unmarshal(data, &s.ServerProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &s.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc (s *Server) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tspec.Extensions\n\t\tServerProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\ts.Extensions = internal.SanitizeExtensions(x.Extensions)\n\ts.ServerProps = x.ServerProps\n\n\treturn nil\n}\n\ntype ServerVariable struct {\n\tServerVariableProps\n\tspec.VendorExtensible\n}\n\ntype ServerVariableProps struct {\n\t// Enum is an enumeration of string values to be used if the substitution options are from a limited set\n\tEnum []string `json:\"enum,omitempty\"`\n\t// Default is the default value to use for substitution, which SHALL be sent if an alternate value is not supplied\n\tDefault string `json:\"default\"`\n\t// Description is a description for the server variable\n\tDescription string `json:\"description,omitempty\"`\n}\n\n// MarshalJSON is a custom marshal function that knows how to encode Responses as JSON\nfunc (s *ServerVariable) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshalingV3 {\n\t\treturn internal.DeterministicMarshal(s)\n\t}\n\tb1, err := json.Marshal(s.ServerVariableProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(s.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2), nil\n}\n\nfunc (s *ServerVariable) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tServerVariableProps `json:\",inline\"`\n\t\tspec.Extensions\n\t}\n\tx.Extensions = internal.SanitizeExtensions(s.Extensions)\n\tx.ServerVariableProps = s.ServerVariableProps\n\treturn opts.MarshalNext(enc, x)\n}\n\nfunc (s *ServerVariable) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, s)\n\t}\n\tif err := json.Unmarshal(data, &s.ServerVariableProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &s.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc (s *ServerVariable) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tspec.Extensions\n\t\tServerVariableProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\ts.Extensions = internal.SanitizeExtensions(x.Extensions)\n\ts.ServerVariableProps = x.ServerVariableProps\n\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/spec3/spec.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec3\n\nimport (\n\t\"encoding/json\"\n\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n\t\"k8s.io/kube-openapi/pkg/validation/spec\"\n)\n\n// OpenAPI is an object that describes an API and conforms to the OpenAPI Specification.\ntype OpenAPI struct {\n\t// Version represents the semantic version number of the OpenAPI Specification that this document uses\n\tVersion string `json:\"openapi\"`\n\t// Info provides metadata about the API\n\tInfo *spec.Info `json:\"info\"`\n\t// Paths holds the available target and operations for the API\n\tPaths *Paths `json:\"paths,omitempty\"`\n\t// Servers is an array of Server objects which provide connectivity information to a target server\n\tServers []*Server `json:\"servers,omitempty\"`\n\t// Components hold various schemas for the specification\n\tComponents *Components `json:\"components,omitempty\"`\n\t// SecurityRequirement holds a declaration of which security mechanisms can be used across the API\n\tSecurityRequirement []map[string][]string `json:\"security,omitempty\"`\n\t// ExternalDocs holds additional external documentation\n\tExternalDocs *ExternalDocumentation `json:\"externalDocs,omitempty\"`\n}\n\nfunc (o *OpenAPI) UnmarshalJSON(data []byte) error {\n\ttype OpenAPIWithNoFunctions OpenAPI\n\tp := (*OpenAPIWithNoFunctions)(o)\n\tif internal.UseOptimizedJSONUnmarshalingV3 {\n\t\treturn jsonv2.Unmarshal(data, &p)\n\t}\n\treturn json.Unmarshal(data, &p)\n}\n\nfunc (o *OpenAPI) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshalingV3 {\n\t\treturn internal.DeterministicMarshal(o)\n\t}\n\ttype OpenAPIWithNoFunctions OpenAPI\n\tp := (*OpenAPIWithNoFunctions)(o)\n\treturn json.Marshal(&p)\n}\n\nfunc (o *OpenAPI) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\ttype OpenAPIOmitZero struct {\n\t\tVersion             string                 `json:\"openapi\"`\n\t\tInfo                *spec.Info             `json:\"info\"`\n\t\tPaths               *Paths                 `json:\"paths,omitzero\"`\n\t\tServers             []*Server              `json:\"servers,omitempty\"`\n\t\tComponents          *Components            `json:\"components,omitzero\"`\n\t\tSecurityRequirement []map[string][]string  `json:\"security,omitempty\"`\n\t\tExternalDocs        *ExternalDocumentation `json:\"externalDocs,omitzero\"`\n\t}\n\tx := (*OpenAPIOmitZero)(o)\n\treturn opts.MarshalNext(enc, x)\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/util/proto/OWNERS",
    "content": "approvers:\n- apelisse\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/util/proto/doc.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package proto is a collection of libraries for parsing and indexing the type definitions.\n// The openapi spec contains the object model definitions and extensions metadata.\npackage proto\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/util/proto/document.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage proto\n\nimport (\n\t\"fmt\"\n\t\"sort\"\n\t\"strings\"\n\n\topenapi_v2 \"github.com/google/gnostic-models/openapiv2\"\n\tyaml \"sigs.k8s.io/yaml/goyaml.v2\"\n)\n\nfunc newSchemaError(path *Path, format string, a ...interface{}) error {\n\terr := fmt.Sprintf(format, a...)\n\tif path.Len() == 0 {\n\t\treturn fmt.Errorf(\"SchemaError: %v\", err)\n\t}\n\treturn fmt.Errorf(\"SchemaError(%v): %v\", path, err)\n}\n\n// VendorExtensionToMap converts openapi VendorExtension to a map.\nfunc VendorExtensionToMap(e []*openapi_v2.NamedAny) map[string]interface{} {\n\tvalues := map[string]interface{}{}\n\n\tfor _, na := range e {\n\t\tif na.GetName() == \"\" || na.GetValue() == nil {\n\t\t\tcontinue\n\t\t}\n\t\tif na.GetValue().GetYaml() == \"\" {\n\t\t\tcontinue\n\t\t}\n\t\tvar value interface{}\n\t\terr := yaml.Unmarshal([]byte(na.GetValue().GetYaml()), &value)\n\t\tif err != nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tvalues[na.GetName()] = value\n\t}\n\n\treturn values\n}\n\n// Definitions is an implementation of `Models`. It looks for\n// models in an openapi Schema.\ntype Definitions struct {\n\tmodels map[string]Schema\n}\n\nvar _ Models = &Definitions{}\n\n// NewOpenAPIData creates a new `Models` out of the openapi document.\nfunc NewOpenAPIData(doc *openapi_v2.Document) (Models, error) {\n\tdefinitions := Definitions{\n\t\tmodels: map[string]Schema{},\n\t}\n\n\t// Save the list of all models first. This will allow us to\n\t// validate that we don't have any dangling reference.\n\tfor _, namedSchema := range doc.GetDefinitions().GetAdditionalProperties() {\n\t\tdefinitions.models[namedSchema.GetName()] = nil\n\t}\n\n\t// Now, parse each model. We can validate that references exists.\n\tfor _, namedSchema := range doc.GetDefinitions().GetAdditionalProperties() {\n\t\tpath := NewPath(namedSchema.GetName())\n\t\tschema, err := definitions.ParseSchema(namedSchema.GetValue(), &path)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tdefinitions.models[namedSchema.GetName()] = schema\n\t}\n\n\treturn &definitions, nil\n}\n\n// We believe the schema is a reference, verify that and returns a new\n// Schema\nfunc (d *Definitions) parseReference(s *openapi_v2.Schema, path *Path) (Schema, error) {\n\t// TODO(wrong): a schema with a $ref can have properties. We can ignore them (would be incomplete), but we cannot return an error.\n\tif len(s.GetProperties().GetAdditionalProperties()) > 0 {\n\t\treturn nil, newSchemaError(path, \"unallowed embedded type definition\")\n\t}\n\t// TODO(wrong): a schema with a $ref can have a type. We can ignore it (would be incomplete), but we cannot return an error.\n\tif len(s.GetType().GetValue()) > 0 {\n\t\treturn nil, newSchemaError(path, \"definition reference can't have a type\")\n\t}\n\n\t// TODO(wrong): $refs outside of the definitions are completely valid. We can ignore them (would be incomplete), but we cannot return an error.\n\tif !strings.HasPrefix(s.GetXRef(), \"#/definitions/\") {\n\t\treturn nil, newSchemaError(path, \"unallowed reference to non-definition %q\", s.GetXRef())\n\t}\n\treference := strings.TrimPrefix(s.GetXRef(), \"#/definitions/\")\n\tif _, ok := d.models[reference]; !ok {\n\t\treturn nil, newSchemaError(path, \"unknown model in reference: %q\", reference)\n\t}\n\tbase, err := d.parseBaseSchema(s, path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &Ref{\n\t\tBaseSchema:  base,\n\t\treference:   reference,\n\t\tdefinitions: d,\n\t}, nil\n}\n\nfunc parseDefault(def *openapi_v2.Any) (interface{}, error) {\n\tif def == nil {\n\t\treturn nil, nil\n\t}\n\tvar i interface{}\n\tif err := yaml.Unmarshal([]byte(def.Yaml), &i); err != nil {\n\t\treturn nil, err\n\t}\n\treturn i, nil\n}\n\nfunc (d *Definitions) parseBaseSchema(s *openapi_v2.Schema, path *Path) (BaseSchema, error) {\n\tdef, err := parseDefault(s.GetDefault())\n\tif err != nil {\n\t\treturn BaseSchema{}, err\n\t}\n\treturn BaseSchema{\n\t\tDescription: s.GetDescription(),\n\t\tDefault:     def,\n\t\tExtensions:  VendorExtensionToMap(s.GetVendorExtension()),\n\t\tPath:        *path,\n\t}, nil\n}\n\n// We believe the schema is a map, verify and return a new schema\nfunc (d *Definitions) parseMap(s *openapi_v2.Schema, path *Path) (Schema, error) {\n\tif len(s.GetType().GetValue()) != 0 && s.GetType().GetValue()[0] != object {\n\t\treturn nil, newSchemaError(path, \"invalid object type\")\n\t}\n\tvar sub Schema\n\t// TODO(incomplete): this misses the boolean case as AdditionalProperties is a bool+schema sum type.\n\tif s.GetAdditionalProperties().GetSchema() == nil {\n\t\tbase, err := d.parseBaseSchema(s, path)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tsub = &Arbitrary{\n\t\t\tBaseSchema: base,\n\t\t}\n\t} else {\n\t\tvar err error\n\t\tsub, err = d.ParseSchema(s.GetAdditionalProperties().GetSchema(), path)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\tbase, err := d.parseBaseSchema(s, path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &Map{\n\t\tBaseSchema: base,\n\t\tSubType:    sub,\n\t}, nil\n}\n\nfunc (d *Definitions) parsePrimitive(s *openapi_v2.Schema, path *Path) (Schema, error) {\n\tvar t string\n\tif len(s.GetType().GetValue()) > 1 {\n\t\treturn nil, newSchemaError(path, \"primitive can't have more than 1 type\")\n\t}\n\tif len(s.GetType().GetValue()) == 1 {\n\t\tt = s.GetType().GetValue()[0]\n\t}\n\tswitch t {\n\tcase String: // do nothing\n\tcase Number: // do nothing\n\tcase Integer: // do nothing\n\tcase Boolean: // do nothing\n\t// TODO(wrong): this misses \"null\". Would skip the null case (would be incomplete), but we cannot return an error.\n\tdefault:\n\t\treturn nil, newSchemaError(path, \"Unknown primitive type: %q\", t)\n\t}\n\tbase, err := d.parseBaseSchema(s, path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &Primitive{\n\t\tBaseSchema: base,\n\t\tType:       t,\n\t\tFormat:     s.GetFormat(),\n\t}, nil\n}\n\nfunc (d *Definitions) parseArray(s *openapi_v2.Schema, path *Path) (Schema, error) {\n\tif len(s.GetType().GetValue()) != 1 {\n\t\treturn nil, newSchemaError(path, \"array should have exactly one type\")\n\t}\n\tif s.GetType().GetValue()[0] != array {\n\t\treturn nil, newSchemaError(path, `array should have type \"array\"`)\n\t}\n\tif len(s.GetItems().GetSchema()) != 1 {\n\t\t// TODO(wrong): Items can have multiple elements. We can ignore Items then (would be incomplete), but we cannot return an error.\n\t\t// TODO(wrong): \"type: array\" witohut any items at all is completely valid.\n\t\treturn nil, newSchemaError(path, \"array should have exactly one sub-item\")\n\t}\n\tsub, err := d.ParseSchema(s.GetItems().GetSchema()[0], path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tbase, err := d.parseBaseSchema(s, path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &Array{\n\t\tBaseSchema: base,\n\t\tSubType:    sub,\n\t}, nil\n}\n\nfunc (d *Definitions) parseKind(s *openapi_v2.Schema, path *Path) (Schema, error) {\n\tif len(s.GetType().GetValue()) != 0 && s.GetType().GetValue()[0] != object {\n\t\treturn nil, newSchemaError(path, \"invalid object type\")\n\t}\n\tif s.GetProperties() == nil {\n\t\treturn nil, newSchemaError(path, \"object doesn't have properties\")\n\t}\n\n\tfields := map[string]Schema{}\n\tfieldOrder := []string{}\n\n\tfor _, namedSchema := range s.GetProperties().GetAdditionalProperties() {\n\t\tvar err error\n\t\tname := namedSchema.GetName()\n\t\tpath := path.FieldPath(name)\n\t\tfields[name], err = d.ParseSchema(namedSchema.GetValue(), &path)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tfieldOrder = append(fieldOrder, name)\n\t}\n\n\tbase, err := d.parseBaseSchema(s, path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &Kind{\n\t\tBaseSchema:     base,\n\t\tRequiredFields: s.GetRequired(),\n\t\tFields:         fields,\n\t\tFieldOrder:     fieldOrder,\n\t}, nil\n}\n\nfunc (d *Definitions) parseArbitrary(s *openapi_v2.Schema, path *Path) (Schema, error) {\n\tbase, err := d.parseBaseSchema(s, path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &Arbitrary{\n\t\tBaseSchema: base,\n\t}, nil\n}\n\n// ParseSchema creates a walkable Schema from an openapi schema. While\n// this function is public, it doesn't leak through the interface.\nfunc (d *Definitions) ParseSchema(s *openapi_v2.Schema, path *Path) (Schema, error) {\n\tif s.GetXRef() != \"\" {\n\t\t// TODO(incomplete): ignoring the rest of s is wrong. As long as there are no conflict, everything from s must be considered\n\t\t// Reference: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#path-item-object\n\t\treturn d.parseReference(s, path)\n\t}\n\tobjectTypes := s.GetType().GetValue()\n\tswitch len(objectTypes) {\n\tcase 0:\n\t\t// in the OpenAPI schema served by older k8s versions, object definitions created from structs did not include\n\t\t// the type:object property (they only included the \"properties\" property), so we need to handle this case\n\t\t// TODO: validate that we ever published empty, non-nil properties. JSON roundtripping nils them.\n\t\tif s.GetProperties() != nil {\n\t\t\t// TODO(wrong): when verifying a non-object later against this, it will be rejected as invalid type.\n\t\t\t// TODO(CRD validation schema publishing): we have to filter properties (empty or not) if type=object is not given\n\t\t\treturn d.parseKind(s, path)\n\t\t} else {\n\t\t\t// Definition has no type and no properties. Treat it as an arbitrary value\n\t\t\t// TODO(incomplete): what if it has additionalProperties=false or patternProperties?\n\t\t\t// ANSWER: parseArbitrary is less strict than it has to be with patternProperties (which is ignored). So this is correct (of course not complete).\n\t\t\treturn d.parseArbitrary(s, path)\n\t\t}\n\tcase 1:\n\t\tt := objectTypes[0]\n\t\tswitch t {\n\t\tcase object:\n\t\t\tif s.GetProperties() != nil {\n\t\t\t\treturn d.parseKind(s, path)\n\t\t\t} else {\n\t\t\t\treturn d.parseMap(s, path)\n\t\t\t}\n\t\tcase array:\n\t\t\treturn d.parseArray(s, path)\n\t\t}\n\t\treturn d.parsePrimitive(s, path)\n\tdefault:\n\t\t// the OpenAPI generator never generates (nor it ever did in the past) OpenAPI type definitions with multiple types\n\t\t// TODO(wrong): this is rejecting a completely valid OpenAPI spec\n\t\t// TODO(CRD validation schema publishing): filter these out\n\t\treturn nil, newSchemaError(path, \"definitions with multiple types aren't supported\")\n\t}\n}\n\n// LookupModel is public through the interface of Models. It\n// returns a visitable schema from the given model name.\nfunc (d *Definitions) LookupModel(model string) Schema {\n\treturn d.models[model]\n}\n\nfunc (d *Definitions) ListModels() []string {\n\tmodels := []string{}\n\n\tfor model := range d.models {\n\t\tmodels = append(models, model)\n\t}\n\n\tsort.Strings(models)\n\treturn models\n}\n\ntype Ref struct {\n\tBaseSchema\n\n\treference   string\n\tdefinitions *Definitions\n}\n\nvar _ Reference = &Ref{}\n\nfunc (r *Ref) Reference() string {\n\treturn r.reference\n}\n\nfunc (r *Ref) SubSchema() Schema {\n\treturn r.definitions.models[r.reference]\n}\n\nfunc (r *Ref) Accept(v SchemaVisitor) {\n\tv.VisitReference(r)\n}\n\nfunc (r *Ref) GetName() string {\n\treturn fmt.Sprintf(\"Reference to %q\", r.reference)\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/util/proto/document_v3.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage proto\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n\n\topenapi_v3 \"github.com/google/gnostic-models/openapiv3\"\n\t\"gopkg.in/yaml.v3\"\n)\n\n// Temporary parse implementation to be used until gnostic->kube-openapi conversion\n// is possible.\nfunc NewOpenAPIV3Data(doc *openapi_v3.Document) (Models, error) {\n\tdefinitions := Definitions{\n\t\tmodels: map[string]Schema{},\n\t}\n\n\tschemas := doc.GetComponents().GetSchemas()\n\tif schemas == nil {\n\t\treturn &definitions, nil\n\t}\n\n\t// Save the list of all models first. This will allow us to\n\t// validate that we don't have any dangling reference.\n\tfor _, namedSchema := range schemas.GetAdditionalProperties() {\n\t\tdefinitions.models[namedSchema.GetName()] = nil\n\t}\n\n\t// Now, parse each model. We can validate that references exists.\n\tfor _, namedSchema := range schemas.GetAdditionalProperties() {\n\t\tpath := NewPath(namedSchema.GetName())\n\t\tval := namedSchema.GetValue()\n\n\t\tif val == nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tif schema, err := definitions.ParseV3SchemaOrReference(namedSchema.GetValue(), &path); err != nil {\n\t\t\treturn nil, err\n\t\t} else if schema != nil {\n\t\t\t// Schema may be nil if we hit incompleteness in the conversion,\n\t\t\t// but not a fatal error\n\t\t\tdefinitions.models[namedSchema.GetName()] = schema\n\t\t}\n\t}\n\n\treturn &definitions, nil\n}\n\nfunc (d *Definitions) ParseV3SchemaReference(s *openapi_v3.Reference, path *Path) (Schema, error) {\n\tbase := &BaseSchema{\n\t\tDescription: s.Description,\n\t}\n\n\tif !strings.HasPrefix(s.GetXRef(), \"#/components/schemas\") {\n\t\t// Only resolve references to components/schemas. We may add support\n\t\t// later for other in-spec paths, but otherwise treat unrecognized\n\t\t// refs as arbitrary/unknown values.\n\t\treturn &Arbitrary{\n\t\t\tBaseSchema: *base,\n\t\t}, nil\n\t}\n\n\treference := strings.TrimPrefix(s.GetXRef(), \"#/components/schemas/\")\n\tif _, ok := d.models[reference]; !ok {\n\t\treturn nil, newSchemaError(path, \"unknown model in reference: %q\", reference)\n\t}\n\n\treturn &Ref{\n\t\tBaseSchema: BaseSchema{\n\t\t\tDescription: s.Description,\n\t\t},\n\t\treference:   reference,\n\t\tdefinitions: d,\n\t}, nil\n}\n\nfunc (d *Definitions) ParseV3SchemaOrReference(s *openapi_v3.SchemaOrReference, path *Path) (Schema, error) {\n\tvar schema Schema\n\tvar err error\n\n\tswitch v := s.GetOneof().(type) {\n\tcase *openapi_v3.SchemaOrReference_Reference:\n\t\t// Any references stored in #!/components/... are bound to refer\n\t\t// to external documents. This API does not support such a\n\t\t// feature.\n\t\t//\n\t\t// In the weird case that this is a reference to a schema that is\n\t\t// not external, we attempt to parse anyway\n\t\tschema, err = d.ParseV3SchemaReference(v.Reference, path)\n\tcase *openapi_v3.SchemaOrReference_Schema:\n\t\tschema, err = d.ParseSchemaV3(v.Schema, path)\n\tdefault:\n\t\tpanic(\"unexpected type\")\n\t}\n\n\treturn schema, err\n}\n\n// ParseSchema creates a walkable Schema from an openapi v3 schema. While\n// this function is public, it doesn't leak through the interface.\nfunc (d *Definitions) ParseSchemaV3(s *openapi_v3.Schema, path *Path) (Schema, error) {\n\tswitch s.GetType() {\n\tcase object:\n\t\tfor _, extension := range s.GetSpecificationExtension() {\n\t\t\tif extension.Name == \"x-kubernetes-group-version-kind\" {\n\t\t\t\t// Objects with x-kubernetes-group-version-kind are always top\n\t\t\t\t// level types.\n\t\t\t\treturn d.parseV3Kind(s, path)\n\t\t\t}\n\t\t}\n\n\t\tif len(s.GetProperties().GetAdditionalProperties()) > 0 {\n\t\t\treturn d.parseV3Kind(s, path)\n\t\t}\n\t\treturn d.parseV3Map(s, path)\n\tcase array:\n\t\treturn d.parseV3Array(s, path)\n\tcase String, Number, Integer, Boolean:\n\t\treturn d.parseV3Primitive(s, path)\n\tdefault:\n\t\treturn d.parseV3Arbitrary(s, path)\n\t}\n}\n\nfunc (d *Definitions) parseV3Kind(s *openapi_v3.Schema, path *Path) (Schema, error) {\n\tif s.GetType() != object {\n\t\treturn nil, newSchemaError(path, \"invalid object type\")\n\t} else if s.GetProperties() == nil {\n\t\treturn nil, newSchemaError(path, \"object doesn't have properties\")\n\t}\n\n\tfields := map[string]Schema{}\n\tfieldOrder := []string{}\n\n\tfor _, namedSchema := range s.GetProperties().GetAdditionalProperties() {\n\t\tvar err error\n\t\tname := namedSchema.GetName()\n\t\tpath := path.FieldPath(name)\n\t\tfields[name], err = d.ParseV3SchemaOrReference(namedSchema.GetValue(), &path)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tfieldOrder = append(fieldOrder, name)\n\t}\n\n\tbase, err := d.parseV3BaseSchema(s, path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &Kind{\n\t\tBaseSchema:     *base,\n\t\tRequiredFields: s.GetRequired(),\n\t\tFields:         fields,\n\t\tFieldOrder:     fieldOrder,\n\t}, nil\n}\n\nfunc (d *Definitions) parseV3Arbitrary(s *openapi_v3.Schema, path *Path) (Schema, error) {\n\tbase, err := d.parseV3BaseSchema(s, path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &Arbitrary{\n\t\tBaseSchema: *base,\n\t}, nil\n}\n\nfunc (d *Definitions) parseV3Primitive(s *openapi_v3.Schema, path *Path) (Schema, error) {\n\tswitch s.GetType() {\n\tcase String: // do nothing\n\tcase Number: // do nothing\n\tcase Integer: // do nothing\n\tcase Boolean: // do nothing\n\tdefault:\n\t\t// Unsupported primitive type. Treat as arbitrary type\n\t\treturn d.parseV3Arbitrary(s, path)\n\t}\n\n\tbase, err := d.parseV3BaseSchema(s, path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &Primitive{\n\t\tBaseSchema: *base,\n\t\tType:       s.GetType(),\n\t\tFormat:     s.GetFormat(),\n\t}, nil\n}\n\nfunc (d *Definitions) parseV3Array(s *openapi_v3.Schema, path *Path) (Schema, error) {\n\tif s.GetType() != array {\n\t\treturn nil, newSchemaError(path, `array should have type \"array\"`)\n\t} else if len(s.GetItems().GetSchemaOrReference()) != 1 {\n\t\t// This array can have multiple types in it (or no types at all)\n\t\t// This is not supported by this conversion.\n\t\t// Just return an arbitrary type\n\t\treturn d.parseV3Arbitrary(s, path)\n\t}\n\n\tsub, err := d.ParseV3SchemaOrReference(s.GetItems().GetSchemaOrReference()[0], path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tbase, err := d.parseV3BaseSchema(s, path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &Array{\n\t\tBaseSchema: *base,\n\t\tSubType:    sub,\n\t}, nil\n}\n\n// We believe the schema is a map, verify and return a new schema\nfunc (d *Definitions) parseV3Map(s *openapi_v3.Schema, path *Path) (Schema, error) {\n\tif s.GetType() != object {\n\t\treturn nil, newSchemaError(path, \"invalid object type\")\n\t}\n\tvar sub Schema\n\n\tswitch p := s.GetAdditionalProperties().GetOneof().(type) {\n\tcase *openapi_v3.AdditionalPropertiesItem_Boolean:\n\t\t// What does this boolean even mean?\n\t\tbase, err := d.parseV3BaseSchema(s, path)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tsub = &Arbitrary{\n\t\t\tBaseSchema: *base,\n\t\t}\n\tcase *openapi_v3.AdditionalPropertiesItem_SchemaOrReference:\n\t\tif schema, err := d.ParseV3SchemaOrReference(p.SchemaOrReference, path); err != nil {\n\t\t\treturn nil, err\n\t\t} else {\n\t\t\tsub = schema\n\t\t}\n\tcase nil:\n\t\t// no subtype?\n\t\tsub = &Arbitrary{}\n\tdefault:\n\t\tpanic(\"unrecognized type \" + reflect.TypeOf(p).Name())\n\t}\n\n\tbase, err := d.parseV3BaseSchema(s, path)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &Map{\n\t\tBaseSchema: *base,\n\t\tSubType:    sub,\n\t}, nil\n}\n\nfunc parseV3Interface(def *yaml.Node) (interface{}, error) {\n\tif def == nil {\n\t\treturn nil, nil\n\t}\n\tvar i interface{}\n\tif err := def.Decode(&i); err != nil {\n\t\treturn nil, err\n\t}\n\treturn i, nil\n}\n\nfunc (d *Definitions) parseV3BaseSchema(s *openapi_v3.Schema, path *Path) (*BaseSchema, error) {\n\tif s == nil {\n\t\treturn nil, fmt.Errorf(\"cannot initialize BaseSchema from nil\")\n\t}\n\n\tdef, err := parseV3Interface(s.GetDefault().ToRawInfo())\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &BaseSchema{\n\t\tDescription: s.GetDescription(),\n\t\tDefault:     def,\n\t\tExtensions:  SpecificationExtensionToMap(s.GetSpecificationExtension()),\n\t\tPath:        *path,\n\t}, nil\n}\n\nfunc SpecificationExtensionToMap(e []*openapi_v3.NamedAny) map[string]interface{} {\n\tvalues := map[string]interface{}{}\n\n\tfor _, na := range e {\n\t\tif na.GetName() == \"\" || na.GetValue() == nil {\n\t\t\tcontinue\n\t\t}\n\t\tif na.GetValue().GetYaml() == \"\" {\n\t\t\tcontinue\n\t\t}\n\t\tvar value interface{}\n\t\terr := yaml.Unmarshal([]byte(na.GetValue().GetYaml()), &value)\n\t\tif err != nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tvalues[na.GetName()] = value\n\t}\n\n\treturn values\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/util/proto/openapi.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage proto\n\nimport (\n\t\"fmt\"\n\t\"sort\"\n\t\"strings\"\n)\n\n// Defines openapi types.\nconst (\n\tInteger = \"integer\"\n\tNumber  = \"number\"\n\tString  = \"string\"\n\tBoolean = \"boolean\"\n\n\t// These types are private as they should never leak, and are\n\t// represented by actual structs.\n\tarray  = \"array\"\n\tobject = \"object\"\n)\n\n// Models interface describe a model provider. They can give you the\n// schema for a specific model.\ntype Models interface {\n\tLookupModel(string) Schema\n\tListModels() []string\n}\n\n// SchemaVisitor is an interface that you need to implement if you want\n// to \"visit\" an openapi schema. A dispatch on the Schema type will call\n// the appropriate function based on its actual type:\n// - Array is a list of one and only one given subtype\n// - Map is a map of string to one and only one given subtype\n// - Primitive can be string, integer, number and boolean.\n// - Kind is an object with specific fields mapping to specific types.\n// - Reference is a link to another definition.\ntype SchemaVisitor interface {\n\tVisitArray(*Array)\n\tVisitMap(*Map)\n\tVisitPrimitive(*Primitive)\n\tVisitKind(*Kind)\n\tVisitReference(Reference)\n}\n\n// SchemaVisitorArbitrary is an additional visitor interface which handles\n// arbitrary types. For backwards compatibility, it's a separate interface\n// which is checked for at runtime.\ntype SchemaVisitorArbitrary interface {\n\tSchemaVisitor\n\tVisitArbitrary(*Arbitrary)\n}\n\n// Schema is the base definition of an openapi type.\ntype Schema interface {\n\t// Giving a visitor here will let you visit the actual type.\n\tAccept(SchemaVisitor)\n\n\t// Pretty print the name of the type.\n\tGetName() string\n\t// Describes how to access this field.\n\tGetPath() *Path\n\t// Describes the field.\n\tGetDescription() string\n\t// Default for that schema.\n\tGetDefault() interface{}\n\t// Returns type extensions.\n\tGetExtensions() map[string]interface{}\n}\n\n// Path helps us keep track of type paths\ntype Path struct {\n\tparent *Path\n\tkey    string\n}\n\nfunc NewPath(key string) Path {\n\treturn Path{key: key}\n}\n\nfunc (p *Path) Get() []string {\n\tif p == nil {\n\t\treturn []string{}\n\t}\n\tif p.key == \"\" {\n\t\treturn p.parent.Get()\n\t}\n\treturn append(p.parent.Get(), p.key)\n}\n\nfunc (p *Path) Len() int {\n\treturn len(p.Get())\n}\n\nfunc (p *Path) String() string {\n\treturn strings.Join(p.Get(), \"\")\n}\n\n// ArrayPath appends an array index and creates a new path\nfunc (p *Path) ArrayPath(i int) Path {\n\treturn Path{\n\t\tparent: p,\n\t\tkey:    fmt.Sprintf(\"[%d]\", i),\n\t}\n}\n\n// FieldPath appends a field name and creates a new path\nfunc (p *Path) FieldPath(field string) Path {\n\treturn Path{\n\t\tparent: p,\n\t\tkey:    fmt.Sprintf(\".%s\", field),\n\t}\n}\n\n// BaseSchema holds data used by each types of schema.\ntype BaseSchema struct {\n\tDescription string\n\tExtensions  map[string]interface{}\n\tDefault     interface{}\n\n\tPath Path\n}\n\nfunc (b *BaseSchema) GetDescription() string {\n\treturn b.Description\n}\n\nfunc (b *BaseSchema) GetExtensions() map[string]interface{} {\n\treturn b.Extensions\n}\n\nfunc (b *BaseSchema) GetDefault() interface{} {\n\treturn b.Default\n}\n\nfunc (b *BaseSchema) GetPath() *Path {\n\treturn &b.Path\n}\n\n// Array must have all its element of the same `SubType`.\ntype Array struct {\n\tBaseSchema\n\n\tSubType Schema\n}\n\nvar _ Schema = &Array{}\n\nfunc (a *Array) Accept(v SchemaVisitor) {\n\tv.VisitArray(a)\n}\n\nfunc (a *Array) GetName() string {\n\treturn fmt.Sprintf(\"Array of %s\", a.SubType.GetName())\n}\n\n// Kind is a complex object. It can have multiple different\n// subtypes for each field, as defined in the `Fields` field. Mandatory\n// fields are listed in `RequiredFields`. The key of the object is\n// always of type `string`.\ntype Kind struct {\n\tBaseSchema\n\n\t// Lists names of required fields.\n\tRequiredFields []string\n\t// Maps field names to types.\n\tFields map[string]Schema\n\t// FieldOrder reports the canonical order for the fields.\n\tFieldOrder []string\n}\n\nvar _ Schema = &Kind{}\n\nfunc (k *Kind) Accept(v SchemaVisitor) {\n\tv.VisitKind(k)\n}\n\nfunc (k *Kind) GetName() string {\n\tproperties := []string{}\n\tfor key := range k.Fields {\n\t\tproperties = append(properties, key)\n\t}\n\treturn fmt.Sprintf(\"Kind(%v)\", properties)\n}\n\n// IsRequired returns true if `field` is a required field for this type.\nfunc (k *Kind) IsRequired(field string) bool {\n\tfor _, f := range k.RequiredFields {\n\t\tif f == field {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// Keys returns a alphabetically sorted list of keys.\nfunc (k *Kind) Keys() []string {\n\tkeys := make([]string, 0)\n\tfor key := range k.Fields {\n\t\tkeys = append(keys, key)\n\t}\n\tsort.Strings(keys)\n\treturn keys\n}\n\n// Map is an object who values must all be of the same `SubType`.\n// The key of the object is always of type `string`.\ntype Map struct {\n\tBaseSchema\n\n\tSubType Schema\n}\n\nvar _ Schema = &Map{}\n\nfunc (m *Map) Accept(v SchemaVisitor) {\n\tv.VisitMap(m)\n}\n\nfunc (m *Map) GetName() string {\n\treturn fmt.Sprintf(\"Map of %s\", m.SubType.GetName())\n}\n\n// Primitive is a literal. There can be multiple types of primitives,\n// and this subtype can be visited through the `subType` field.\ntype Primitive struct {\n\tBaseSchema\n\n\t// Type of a primitive must be one of: integer, number, string, boolean.\n\tType   string\n\tFormat string\n}\n\nvar _ Schema = &Primitive{}\n\nfunc (p *Primitive) Accept(v SchemaVisitor) {\n\tv.VisitPrimitive(p)\n}\n\nfunc (p *Primitive) GetName() string {\n\tif p.Format == \"\" {\n\t\treturn p.Type\n\t}\n\treturn fmt.Sprintf(\"%s (%s)\", p.Type, p.Format)\n}\n\n// Arbitrary is a value of any type (primitive, object or array)\ntype Arbitrary struct {\n\tBaseSchema\n}\n\nvar _ Schema = &Arbitrary{}\n\nfunc (a *Arbitrary) Accept(v SchemaVisitor) {\n\tif visitor, ok := v.(SchemaVisitorArbitrary); ok {\n\t\tvisitor.VisitArbitrary(a)\n\t}\n}\n\nfunc (a *Arbitrary) GetName() string {\n\treturn \"Arbitrary value (primitive, object or array)\"\n}\n\n// Reference implementation depends on the type of document.\ntype Reference interface {\n\tSchema\n\n\tReference() string\n\tSubSchema() Schema\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/validation/spec/.gitignore",
    "content": "secrets.yml\ncoverage.out\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/validation/spec/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/validation/spec/contact_info.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\n// ContactInfo contact information for the exposed API.\n//\n// For more information: http://goo.gl/8us55a#contactObject\ntype ContactInfo struct {\n\tName  string `json:\"name,omitempty\"`\n\tURL   string `json:\"url,omitempty\"`\n\tEmail string `json:\"email,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/validation/spec/external_docs.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\n// ExternalDocumentation allows referencing an external resource for\n// extended documentation.\n//\n// For more information: http://goo.gl/8us55a#externalDocumentationObject\ntype ExternalDocumentation struct {\n\tDescription string `json:\"description,omitempty\"`\n\tURL         string `json:\"url,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/validation/spec/gnostic.go",
    "content": "/*\nCopyright 2022 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage spec\n\nimport (\n\t\"errors\"\n\t\"strconv\"\n\n\t\"github.com/go-openapi/jsonreference\"\n\topenapi_v2 \"github.com/google/gnostic-models/openapiv2\"\n)\n\n// Interfaces\ntype GnosticCommonValidations interface {\n\tGetMaximum() float64\n\tGetExclusiveMaximum() bool\n\tGetMinimum() float64\n\tGetExclusiveMinimum() bool\n\tGetMaxLength() int64\n\tGetMinLength() int64\n\tGetPattern() string\n\tGetMaxItems() int64\n\tGetMinItems() int64\n\tGetUniqueItems() bool\n\tGetMultipleOf() float64\n\tGetEnum() []*openapi_v2.Any\n}\n\nfunc (k *CommonValidations) FromGnostic(g GnosticCommonValidations) error {\n\tif g == nil {\n\t\treturn nil\n\t}\n\n\tmax := g.GetMaximum()\n\tif max != 0 {\n\t\tk.Maximum = &max\n\t}\n\n\tk.ExclusiveMaximum = g.GetExclusiveMaximum()\n\n\tmin := g.GetMinimum()\n\tif min != 0 {\n\t\tk.Minimum = &min\n\t}\n\n\tk.ExclusiveMinimum = g.GetExclusiveMinimum()\n\n\tmaxLen := g.GetMaxLength()\n\tif maxLen != 0 {\n\t\tk.MaxLength = &maxLen\n\t}\n\n\tminLen := g.GetMinLength()\n\tif minLen != 0 {\n\t\tk.MinLength = &minLen\n\t}\n\n\tk.Pattern = g.GetPattern()\n\n\tmaxItems := g.GetMaxItems()\n\tif maxItems != 0 {\n\t\tk.MaxItems = &maxItems\n\t}\n\n\tminItems := g.GetMinItems()\n\tif minItems != 0 {\n\t\tk.MinItems = &minItems\n\t}\n\n\tk.UniqueItems = g.GetUniqueItems()\n\n\tmultOf := g.GetMultipleOf()\n\tif multOf != 0 {\n\t\tk.MultipleOf = &multOf\n\t}\n\n\tenums := g.GetEnum()\n\n\tif enums != nil {\n\t\tk.Enum = make([]interface{}, len(enums))\n\t\tfor i, v := range enums {\n\t\t\tif v == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tvar convert interface{}\n\t\t\tif err := v.ToRawInfo().Decode(&convert); err != nil {\n\t\t\t\treturn err\n\t\t\t} else {\n\t\t\t\tk.Enum[i] = convert\n\t\t\t}\n\t\t}\n\t}\n\n\treturn nil\n}\n\ntype GnosticSimpleSchema interface {\n\tGetType() string\n\tGetFormat() string\n\tGetItems() *openapi_v2.PrimitivesItems\n\tGetCollectionFormat() string\n\tGetDefault() *openapi_v2.Any\n}\n\nfunc (k *SimpleSchema) FromGnostic(g GnosticSimpleSchema) error {\n\tif g == nil {\n\t\treturn nil\n\t}\n\n\tk.Type = g.GetType()\n\tk.Format = g.GetFormat()\n\tk.CollectionFormat = g.GetCollectionFormat()\n\n\titems := g.GetItems()\n\tif items != nil {\n\t\tk.Items = &Items{}\n\t\tif err := k.Items.FromGnostic(items); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\n\tdef := g.GetDefault()\n\tif def != nil {\n\t\tvar convert interface{}\n\t\tif err := def.ToRawInfo().Decode(&convert); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\tk.Default = convert\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc (k *Items) FromGnostic(g *openapi_v2.PrimitivesItems) error {\n\tif g == nil {\n\t\treturn nil\n\t}\n\n\tif err := k.SimpleSchema.FromGnostic(g); err != nil {\n\t\treturn err\n\t}\n\n\tif err := k.CommonValidations.FromGnostic(g); err != nil {\n\t\treturn err\n\t}\n\n\tif err := k.VendorExtensible.FromGnostic(g.VendorExtension); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc (k *VendorExtensible) FromGnostic(g []*openapi_v2.NamedAny) error {\n\tif len(g) == 0 {\n\t\treturn nil\n\t}\n\n\tk.Extensions = make(Extensions, len(g))\n\tfor _, v := range g {\n\t\tif v == nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tif v.Value == nil {\n\t\t\tk.Extensions[v.Name] = nil\n\t\t\tcontinue\n\t\t}\n\n\t\tvar iface interface{}\n\t\tif err := v.Value.ToRawInfo().Decode(&iface); err != nil {\n\t\t\treturn err\n\t\t} else {\n\t\t\tk.Extensions[v.Name] = iface\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (k *Refable) FromGnostic(g string) error {\n\treturn k.Ref.FromGnostic(g)\n}\n\nfunc (k *Ref) FromGnostic(g string) error {\n\tif g == \"\" {\n\t\treturn nil\n\t}\n\n\tref, err := jsonreference.New(g)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t*k = Ref{\n\t\tRef: ref,\n\t}\n\n\treturn nil\n}\n\n// Converts a gnostic v2 Document to a kube-openapi Swagger Document\n//\n// Caveats:\n//\n// - gnostic v2 documents treats zero as unspecified for numerical fields of\n// CommonValidations fields such as Maximum, Minimum, MaximumItems, etc.\n// There will always be data loss if one of the values of these fields is set to zero.\n//\n// Returns:\n//\n// - `ok`: `false` if a value was present in the gnostic document which cannot be\n// roundtripped into kube-openapi types. In these instances, `ok` is set to\n// `false` and the value is skipped.\n//\n// - `err`: an unexpected error occurred in the conversion from the gnostic type\n// to kube-openapi type.\nfunc (k *Swagger) FromGnostic(g *openapi_v2.Document) (ok bool, err error) {\n\tok = true\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\n\tif err := k.VendorExtensible.FromGnostic(g.VendorExtension); err != nil {\n\t\treturn false, err\n\t}\n\n\tif nok, err := k.SwaggerProps.FromGnostic(g); err != nil {\n\t\treturn false, err\n\t} else if !nok {\n\t\tok = false\n\t}\n\n\treturn ok, nil\n}\n\nfunc (k *SwaggerProps) FromGnostic(g *openapi_v2.Document) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\n\tok = true\n\n\t// openapi_v2.Document does not support \"ID\" field, so it will not be\n\t// included\n\tk.Consumes = g.Consumes\n\tk.Produces = g.Produces\n\tk.Schemes = g.Schemes\n\tk.Swagger = g.Swagger\n\n\tif g.Info != nil {\n\t\tk.Info = &Info{}\n\t\tif nok, err := k.Info.FromGnostic(g.Info); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tk.Host = g.Host\n\tk.BasePath = g.BasePath\n\n\tif g.Paths != nil {\n\t\tk.Paths = &Paths{}\n\t\tif nok, err := k.Paths.FromGnostic(g.Paths); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tif g.Definitions != nil {\n\t\tk.Definitions = make(Definitions, len(g.Definitions.AdditionalProperties))\n\t\tfor _, v := range g.Definitions.AdditionalProperties {\n\t\t\tif v == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tconverted := Schema{}\n\t\t\tif nok, err := converted.FromGnostic(v.Value); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\t\t\tk.Definitions[v.Name] = converted\n\n\t\t}\n\t}\n\n\tif g.Parameters != nil {\n\t\tk.Parameters = make(\n\t\t\tmap[string]Parameter,\n\t\t\tlen(g.Parameters.AdditionalProperties))\n\t\tfor _, v := range g.Parameters.AdditionalProperties {\n\t\t\tif v == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tp := Parameter{}\n\t\t\tif nok, err := p.FromGnostic(v.Value); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\n\t\t\tk.Parameters[v.Name] = p\n\t\t}\n\t}\n\n\tif g.Responses != nil {\n\t\tk.Responses = make(\n\t\t\tmap[string]Response,\n\t\t\tlen(g.Responses.AdditionalProperties))\n\n\t\tfor _, v := range g.Responses.AdditionalProperties {\n\t\t\tif v == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tp := Response{}\n\t\t\tif nok, err := p.FromGnostic(v.Value); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\n\t\t\tk.Responses[v.Name] = p\n\t\t}\n\t}\n\n\tif g.SecurityDefinitions != nil {\n\t\tk.SecurityDefinitions = make(SecurityDefinitions)\n\t\tif err := k.SecurityDefinitions.FromGnostic(g.SecurityDefinitions); err != nil {\n\t\t\treturn false, err\n\t\t}\n\t}\n\n\tif g.Security != nil {\n\t\tk.Security = make([]map[string][]string, len(g.Security))\n\t\tfor i, v := range g.Security {\n\t\t\tif v == nil || v.AdditionalProperties == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tk.Security[i] = make(map[string][]string, len(v.AdditionalProperties))\n\t\t\tconverted := k.Security[i]\n\t\t\tfor _, p := range v.AdditionalProperties {\n\t\t\t\tif p == nil {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif p.Value != nil {\n\t\t\t\t\tconverted[p.Name] = p.Value.Value\n\t\t\t\t} else {\n\t\t\t\t\tconverted[p.Name] = nil\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif g.Tags != nil {\n\t\tk.Tags = make([]Tag, len(g.Tags))\n\t\tfor i, v := range g.Tags {\n\t\t\tif v == nil {\n\t\t\t\tcontinue\n\t\t\t} else if nok, err := k.Tags[i].FromGnostic(v); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\t\t}\n\t}\n\n\tif g.ExternalDocs != nil {\n\t\tk.ExternalDocs = &ExternalDocumentation{}\n\t\tif nok, err := k.ExternalDocs.FromGnostic(g.ExternalDocs); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\treturn ok, nil\n}\n\n// Info\n\nfunc (k *Info) FromGnostic(g *openapi_v2.Info) (ok bool, err error) {\n\tok = true\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\n\tif err := k.VendorExtensible.FromGnostic(g.VendorExtension); err != nil {\n\t\treturn false, err\n\t}\n\n\tif nok, err := k.InfoProps.FromGnostic(g); err != nil {\n\t\treturn false, err\n\t} else if !nok {\n\t\tok = false\n\t}\n\n\treturn ok, nil\n}\n\nfunc (k *InfoProps) FromGnostic(g *openapi_v2.Info) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\n\tok = true\n\n\tk.Description = g.Description\n\tk.Title = g.Title\n\tk.TermsOfService = g.TermsOfService\n\n\tif g.Contact != nil {\n\t\tk.Contact = &ContactInfo{}\n\n\t\tif nok, err := k.Contact.FromGnostic(g.Contact); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tif g.License != nil {\n\t\tk.License = &License{}\n\t\tif nok, err := k.License.FromGnostic(g.License); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tk.Version = g.Version\n\treturn ok, nil\n}\n\nfunc (k *License) FromGnostic(g *openapi_v2.License) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\n\tok = true\n\n\tk.Name = g.Name\n\tk.URL = g.Url\n\n\t// License does not embed to VendorExtensible!\n\t// data loss from g.VendorExtension\n\tif len(g.VendorExtension) != 0 {\n\t\tok = false\n\t}\n\n\treturn ok, nil\n}\n\nfunc (k *ContactInfo) FromGnostic(g *openapi_v2.Contact) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\n\tok = true\n\n\tk.Name = g.Name\n\tk.URL = g.Url\n\tk.Email = g.Email\n\n\t// ContactInfo does not embed to VendorExtensible!\n\t// data loss from g.VendorExtension\n\tif len(g.VendorExtension) != 0 {\n\t\tok = false\n\t}\n\n\treturn ok, nil\n}\n\n// Paths\n\nfunc (k *Paths) FromGnostic(g *openapi_v2.Paths) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\n\tok = true\n\n\tif g.Path != nil {\n\t\tk.Paths = make(map[string]PathItem, len(g.Path))\n\t\tfor _, v := range g.Path {\n\t\t\tif v == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tconverted := PathItem{}\n\t\t\tif nok, err := converted.FromGnostic(v.Value); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\n\t\t\tk.Paths[v.Name] = converted\n\t\t}\n\t}\n\n\tif err := k.VendorExtensible.FromGnostic(g.VendorExtension); err != nil {\n\t\treturn false, err\n\t}\n\treturn ok, nil\n}\n\nfunc (k *PathItem) FromGnostic(g *openapi_v2.PathItem) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\tok = true\n\n\tif nok, err := k.PathItemProps.FromGnostic(g); err != nil {\n\t\treturn false, err\n\t} else if !nok {\n\t\tok = false\n\t}\n\n\tif err := k.Refable.FromGnostic(g.XRef); err != nil {\n\t\treturn false, err\n\t}\n\n\tif err := k.VendorExtensible.FromGnostic(g.VendorExtension); err != nil {\n\t\treturn false, err\n\t}\n\treturn ok, nil\n}\n\nfunc (k *PathItemProps) FromGnostic(g *openapi_v2.PathItem) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\tok = true\n\tif g.Get != nil {\n\t\tk.Get = &Operation{}\n\t\tif nok, err := k.Get.FromGnostic(g.Get); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tif g.Put != nil {\n\t\tk.Put = &Operation{}\n\t\tif nok, err := k.Put.FromGnostic(g.Put); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tif g.Post != nil {\n\t\tk.Post = &Operation{}\n\t\tif nok, err := k.Post.FromGnostic(g.Post); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tif g.Delete != nil {\n\t\tk.Delete = &Operation{}\n\t\tif nok, err := k.Delete.FromGnostic(g.Delete); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tif g.Options != nil {\n\t\tk.Options = &Operation{}\n\t\tif nok, err := k.Options.FromGnostic(g.Options); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tif g.Head != nil {\n\t\tk.Head = &Operation{}\n\t\tif nok, err := k.Head.FromGnostic(g.Head); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tif g.Patch != nil {\n\t\tk.Patch = &Operation{}\n\t\tif nok, err := k.Patch.FromGnostic(g.Patch); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tif g.Parameters != nil {\n\t\tk.Parameters = make([]Parameter, len(g.Parameters))\n\t\tfor i, v := range g.Parameters {\n\t\t\tif v == nil {\n\t\t\t\tcontinue\n\t\t\t} else if nok, err := k.Parameters[i].FromGnosticParametersItem(v); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\t\t}\n\t}\n\n\treturn ok, nil\n}\n\nfunc (k *Operation) FromGnostic(g *openapi_v2.Operation) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\n\tok = true\n\n\tif err := k.VendorExtensible.FromGnostic(g.VendorExtension); err != nil {\n\t\treturn false, err\n\t}\n\n\tif nok, err := k.OperationProps.FromGnostic(g); err != nil {\n\t\treturn false, err\n\t} else if !nok {\n\t\tok = false\n\t}\n\n\treturn ok, nil\n}\n\nfunc (k *OperationProps) FromGnostic(g *openapi_v2.Operation) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\n\tok = true\n\n\tk.Description = g.Description\n\tk.Consumes = g.Consumes\n\tk.Produces = g.Produces\n\tk.Schemes = g.Schemes\n\tk.Tags = g.Tags\n\tk.Summary = g.Summary\n\n\tif g.ExternalDocs != nil {\n\t\tk.ExternalDocs = &ExternalDocumentation{}\n\t\tif nok, err := k.ExternalDocs.FromGnostic(g.ExternalDocs); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tk.ID = g.OperationId\n\tk.Deprecated = g.Deprecated\n\n\tif g.Security != nil {\n\t\tk.Security = make([]map[string][]string, len(g.Security))\n\t\tfor i, v := range g.Security {\n\t\t\tif v == nil || v.AdditionalProperties == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tk.Security[i] = make(map[string][]string, len(v.AdditionalProperties))\n\t\t\tconverted := k.Security[i]\n\t\t\tfor _, p := range v.AdditionalProperties {\n\t\t\t\tif p == nil {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tif p.Value != nil {\n\t\t\t\t\tconverted[p.Name] = p.Value.Value\n\t\t\t\t} else {\n\t\t\t\t\tconverted[p.Name] = nil\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif g.Parameters != nil {\n\t\tk.Parameters = make([]Parameter, len(g.Parameters))\n\t\tfor i, v := range g.Parameters {\n\t\t\tif v == nil {\n\t\t\t\tcontinue\n\t\t\t} else if nok, err := k.Parameters[i].FromGnosticParametersItem(v); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\t\t}\n\t}\n\n\tif g.Responses != nil {\n\t\tk.Responses = &Responses{}\n\t\tif nok, err := k.Responses.FromGnostic(g.Responses); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\treturn ok, nil\n}\n\n// Responses\n\nfunc (k *Responses) FromGnostic(g *openapi_v2.Responses) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\tok = true\n\tif err := k.VendorExtensible.FromGnostic(g.VendorExtension); err != nil {\n\t\treturn false, err\n\t}\n\n\tif nok, err := k.ResponsesProps.FromGnostic(g); err != nil {\n\t\treturn false, err\n\t} else if !nok {\n\t\tok = false\n\t}\n\n\treturn ok, nil\n}\n\nfunc (k *ResponsesProps) FromGnostic(g *openapi_v2.Responses) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t} else if g.ResponseCode == nil {\n\t\treturn ok, nil\n\t}\n\n\tok = true\n\tfor _, v := range g.ResponseCode {\n\t\tif v == nil {\n\t\t\tcontinue\n\t\t}\n\t\tif v.Name == \"default\" {\n\t\t\tk.Default = &Response{}\n\t\t\tif nok, err := k.Default.FromGnosticResponseValue(v.Value); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\t\t} else if nk, err := strconv.Atoi(v.Name); err != nil {\n\t\t\t// This should actually never fail, unless gnostic struct was\n\t\t\t// manually/purposefully tampered with at runtime.\n\t\t\t// Gnostic's ParseDocument validates that all StatusCodeResponses\n\t\t\t// \tkeys adhere to the following regex ^([0-9]{3})$|^(default)$\n\t\t\tok = false\n\t\t} else {\n\t\t\tif k.StatusCodeResponses == nil {\n\t\t\t\tk.StatusCodeResponses = map[int]Response{}\n\t\t\t}\n\n\t\t\tres := Response{}\n\t\t\tif nok, err := res.FromGnosticResponseValue(v.Value); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\t\t\tk.StatusCodeResponses[nk] = res\n\t\t}\n\t}\n\n\treturn ok, nil\n}\n\nfunc (k *Response) FromGnostic(g *openapi_v2.Response) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\tok = true\n\t// Refable case handled in FromGnosticResponseValue\n\n\tif err := k.VendorExtensible.FromGnostic(g.VendorExtension); err != nil {\n\t\treturn false, err\n\t}\n\n\tif nok, err := k.ResponseProps.FromGnostic(g); err != nil {\n\t\treturn false, err\n\t} else if !nok {\n\t\tok = false\n\t}\n\n\treturn ok, nil\n}\n\nfunc (k *Response) FromGnosticResponseValue(g *openapi_v2.ResponseValue) (ok bool, err error) {\n\tok = true\n\tif ref := g.GetJsonReference(); ref != nil {\n\t\tk.Description = ref.Description\n\n\t\tif err := k.Refable.FromGnostic(ref.XRef); err != nil {\n\t\t\treturn false, err\n\t\t}\n\t} else if nok, err := k.FromGnostic(g.GetResponse()); err != nil {\n\t\treturn false, err\n\t} else if !nok {\n\t\tok = false\n\t}\n\n\treturn ok, nil\n}\n\nfunc (k *ResponseProps) FromGnostic(g *openapi_v2.Response) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\tok = true\n\tk.Description = g.Description\n\n\tif g.Schema != nil {\n\t\tk.Schema = &Schema{}\n\t\tif nok, err := k.Schema.FromGnosticSchemaItem(g.Schema); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tif g.Headers != nil {\n\t\tk.Headers = make(map[string]Header, len(g.Headers.AdditionalProperties))\n\t\tfor _, v := range g.Headers.AdditionalProperties {\n\t\t\tif v == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tconverted := Header{}\n\t\t\tif err := converted.FromGnostic(v.GetValue()); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\n\t\t\tk.Headers[v.Name] = converted\n\t\t}\n\t}\n\n\tif g.Examples != nil {\n\t\tk.Examples = make(map[string]interface{}, len(g.Examples.AdditionalProperties))\n\t\tfor _, v := range g.Examples.AdditionalProperties {\n\t\t\tif v == nil {\n\t\t\t\tcontinue\n\t\t\t} else if v.Value == nil {\n\t\t\t\tk.Examples[v.Name] = nil\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tvar iface interface{}\n\t\t\tif err := v.Value.ToRawInfo().Decode(&iface); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else {\n\t\t\t\tk.Examples[v.Name] = iface\n\t\t\t}\n\t\t}\n\t}\n\n\treturn ok, nil\n}\n\n// Header\n\nfunc (k *Header) FromGnostic(g *openapi_v2.Header) (err error) {\n\tif g == nil {\n\t\treturn nil\n\t}\n\n\tif err := k.CommonValidations.FromGnostic(g); err != nil {\n\t\treturn err\n\t}\n\n\tif err := k.VendorExtensible.FromGnostic(g.VendorExtension); err != nil {\n\t\treturn err\n\t}\n\n\tif err := k.SimpleSchema.FromGnostic(g); err != nil {\n\t\treturn err\n\t}\n\n\tif err := k.HeaderProps.FromGnostic(g); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc (k *HeaderProps) FromGnostic(g *openapi_v2.Header) error {\n\tif g == nil {\n\t\treturn nil\n\t}\n\n\t// All other fields of openapi_v2.Header are handled by\n\t// the embeded fields, commonvalidations, etc.\n\tk.Description = g.Description\n\treturn nil\n}\n\n// Parameters\n\nfunc (k *Parameter) FromGnostic(g *openapi_v2.Parameter) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\tok = true\n\tswitch p := g.Oneof.(type) {\n\tcase *openapi_v2.Parameter_BodyParameter:\n\t\tif nok, err := k.ParamProps.FromGnostic(p.BodyParameter); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\n\t\tif err := k.VendorExtensible.FromGnostic(p.BodyParameter.GetVendorExtension()); err != nil {\n\t\t\treturn false, err\n\t\t}\n\n\t\treturn ok, nil\n\tcase *openapi_v2.Parameter_NonBodyParameter:\n\t\tswitch nb := g.GetNonBodyParameter().Oneof.(type) {\n\t\tcase *openapi_v2.NonBodyParameter_HeaderParameterSubSchema:\n\t\t\tif nok, err := k.ParamProps.FromGnostic(nb.HeaderParameterSubSchema); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\n\t\t\tif err := k.SimpleSchema.FromGnostic(nb.HeaderParameterSubSchema); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\n\t\t\tif err := k.CommonValidations.FromGnostic(nb.HeaderParameterSubSchema); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\n\t\t\tif err := k.VendorExtensible.FromGnostic(nb.HeaderParameterSubSchema.GetVendorExtension()); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\n\t\t\treturn ok, nil\n\t\tcase *openapi_v2.NonBodyParameter_FormDataParameterSubSchema:\n\t\t\tif nok, err := k.ParamProps.FromGnostic(nb.FormDataParameterSubSchema); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\n\t\t\tif err := k.SimpleSchema.FromGnostic(nb.FormDataParameterSubSchema); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\n\t\t\tif err := k.CommonValidations.FromGnostic(nb.FormDataParameterSubSchema); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\n\t\t\tif err := k.VendorExtensible.FromGnostic(nb.FormDataParameterSubSchema.GetVendorExtension()); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\n\t\t\treturn ok, nil\n\t\tcase *openapi_v2.NonBodyParameter_QueryParameterSubSchema:\n\t\t\tif nok, err := k.ParamProps.FromGnostic(nb.QueryParameterSubSchema); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\n\t\t\tif err := k.SimpleSchema.FromGnostic(nb.QueryParameterSubSchema); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\n\t\t\tif err := k.CommonValidations.FromGnostic(nb.QueryParameterSubSchema); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\n\t\t\tif err := k.VendorExtensible.FromGnostic(nb.QueryParameterSubSchema.GetVendorExtension()); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\n\t\t\treturn ok, nil\n\t\tcase *openapi_v2.NonBodyParameter_PathParameterSubSchema:\n\t\t\tif nok, err := k.ParamProps.FromGnostic(nb.PathParameterSubSchema); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\n\t\t\tif err := k.SimpleSchema.FromGnostic(nb.PathParameterSubSchema); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\n\t\t\tif err := k.CommonValidations.FromGnostic(nb.PathParameterSubSchema); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\n\t\t\tif err := k.VendorExtensible.FromGnostic(nb.PathParameterSubSchema.GetVendorExtension()); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\n\t\t\treturn ok, nil\n\t\tdefault:\n\t\t\treturn false, errors.New(\"unrecognized nonbody type for Parameter\")\n\t\t}\n\tdefault:\n\t\treturn false, errors.New(\"unrecognized type for Parameter\")\n\t}\n}\n\ntype GnosticCommonParamProps interface {\n\tGetName() string\n\tGetRequired() bool\n\tGetIn() string\n\tGetDescription() string\n}\n\ntype GnosticCommonParamPropsBodyParameter interface {\n\tGetSchema() *openapi_v2.Schema\n}\n\ntype GnosticCommonParamPropsFormData interface {\n\tGetAllowEmptyValue() bool\n}\n\nfunc (k *ParamProps) FromGnostic(g GnosticCommonParamProps) (ok bool, err error) {\n\tok = true\n\tk.Description = g.GetDescription()\n\tk.In = g.GetIn()\n\tk.Name = g.GetName()\n\tk.Required = g.GetRequired()\n\n\tif formDataParameter, success := g.(GnosticCommonParamPropsFormData); success {\n\t\tk.AllowEmptyValue = formDataParameter.GetAllowEmptyValue()\n\t}\n\n\tif bodyParameter, success := g.(GnosticCommonParamPropsBodyParameter); success {\n\t\tif bodyParameter.GetSchema() != nil {\n\t\t\tk.Schema = &Schema{}\n\t\t\tif nok, err := k.Schema.FromGnostic(bodyParameter.GetSchema()); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\t\t}\n\t}\n\n\treturn ok, nil\n}\n\n// PB types use a different structure than we do for \"refable\". For PB, there is\n// a wrappign oneof type that could be a ref or the type\nfunc (k *Parameter) FromGnosticParametersItem(g *openapi_v2.ParametersItem) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\n\tok = true\n\tif ref := g.GetJsonReference(); ref != nil {\n\t\tk.Description = ref.Description\n\n\t\tif err := k.Refable.FromGnostic(ref.XRef); err != nil {\n\t\t\treturn false, err\n\t\t}\n\t} else if nok, err := k.FromGnostic(g.GetParameter()); err != nil {\n\t\treturn false, err\n\t} else if !nok {\n\t\tok = false\n\t}\n\n\treturn ok, nil\n}\n\n// Schema\n\nfunc (k *Schema) FromGnostic(g *openapi_v2.Schema) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\tok = true\n\n\tif err := k.VendorExtensible.FromGnostic(g.VendorExtension); err != nil {\n\t\treturn false, err\n\t}\n\n\t// SwaggerSchemaProps\n\tk.Discriminator = g.Discriminator\n\tk.ReadOnly = g.ReadOnly\n\tk.Description = g.Description\n\tif g.ExternalDocs != nil {\n\t\tk.ExternalDocs = &ExternalDocumentation{}\n\t\tif nok, err := k.ExternalDocs.FromGnostic(g.ExternalDocs); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tif g.Example != nil {\n\t\tif err := g.Example.ToRawInfo().Decode(&k.Example); err != nil {\n\t\t\treturn false, err\n\t\t}\n\t}\n\n\t// SchemaProps\n\tif err := k.Ref.FromGnostic(g.XRef); err != nil {\n\t\treturn false, err\n\t}\n\tk.Type = g.Type.GetValue()\n\tk.Format = g.GetFormat()\n\tk.Title = g.GetTitle()\n\n\t// These below fields are not available in gnostic types, so will never\n\t// be populated. This means roundtrips which make use of these\n\t//\t(non-official, kube-only) fields will lose information.\n\t//\n\t// Schema.ID is not available in official spec\n\t// Schema.$schema\n\t// Schema.Nullable - in openapiv3, not v2\n\t// Schema.AnyOf - in openapiv3, not v2\n\t// Schema.OneOf - in openapiv3, not v2\n\t// Schema.Not - in openapiv3, not v2\n\t// Schema.PatternProperties - in openapiv3, not v2\n\t// Schema.Dependencies - in openapiv3, not v2\n\t// Schema.AdditionalItems\n\t// Schema.Definitions - not part of spec\n\t// Schema.ExtraProps - gnostic parser rejects any keys it does not recognize\n\n\tif g.GetDefault() != nil {\n\t\tif err := g.GetDefault().ToRawInfo().Decode(&k.Default); err != nil {\n\t\t\treturn false, err\n\t\t}\n\t}\n\n\t// These conditionals (!= 0) follow gnostic's logic for ToRawInfo\n\t// The keys in gnostic source are only included if nonzero.\n\n\tif g.Maximum != 0.0 {\n\t\tk.Maximum = &g.Maximum\n\t}\n\n\tif g.Minimum != 0.0 {\n\t\tk.Minimum = &g.Minimum\n\t}\n\n\tk.ExclusiveMaximum = g.ExclusiveMaximum\n\tk.ExclusiveMinimum = g.ExclusiveMinimum\n\n\tif g.MaxLength != 0 {\n\t\tk.MaxLength = &g.MaxLength\n\t}\n\n\tif g.MinLength != 0 {\n\t\tk.MinLength = &g.MinLength\n\t}\n\n\tk.Pattern = g.GetPattern()\n\n\tif g.MaxItems != 0 {\n\t\tk.MaxItems = &g.MaxItems\n\t}\n\n\tif g.MinItems != 0 {\n\t\tk.MinItems = &g.MinItems\n\t}\n\tk.UniqueItems = g.UniqueItems\n\n\tif g.MultipleOf != 0 {\n\t\tk.MultipleOf = &g.MultipleOf\n\t}\n\n\tfor _, v := range g.GetEnum() {\n\t\tif v == nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tvar convert interface{}\n\t\tif err := v.ToRawInfo().Decode(&convert); err != nil {\n\t\t\treturn false, err\n\t\t}\n\t\tk.Enum = append(k.Enum, convert)\n\t}\n\n\tif g.MaxProperties != 0 {\n\t\tk.MaxProperties = &g.MaxProperties\n\t}\n\n\tif g.MinProperties != 0 {\n\t\tk.MinProperties = &g.MinProperties\n\t}\n\n\tk.Required = g.Required\n\n\tif g.GetItems() != nil {\n\t\tk.Items = &SchemaOrArray{}\n\t\tfor _, v := range g.Items.GetSchema() {\n\t\t\tif v == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tschema := Schema{}\n\t\t\tif nok, err := schema.FromGnostic(v); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\t\t\tk.Items.Schemas = append(k.Items.Schemas, schema)\n\t\t}\n\n\t\tif len(k.Items.Schemas) == 1 {\n\t\t\tk.Items.Schema = &k.Items.Schemas[0]\n\t\t\tk.Items.Schemas = nil\n\t\t}\n\t}\n\n\tfor i, v := range g.GetAllOf() {\n\t\tif v == nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tk.AllOf = append(k.AllOf, Schema{})\n\t\tif nok, err := k.AllOf[i].FromGnostic(v); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\tif g.Properties != nil {\n\t\tk.Properties = make(map[string]Schema)\n\t\tfor _, namedSchema := range g.Properties.AdditionalProperties {\n\t\t\tif namedSchema == nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tval := &Schema{}\n\t\t\tif nok, err := val.FromGnostic(namedSchema.Value); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\n\t\t\tk.Properties[namedSchema.Name] = *val\n\t\t}\n\t}\n\n\tif g.AdditionalProperties != nil {\n\t\tk.AdditionalProperties = &SchemaOrBool{}\n\t\tif g.AdditionalProperties.GetSchema() == nil {\n\t\t\tk.AdditionalProperties.Allows = g.AdditionalProperties.GetBoolean()\n\t\t} else {\n\t\t\tk.AdditionalProperties.Schema = &Schema{}\n\t\t\tk.AdditionalProperties.Allows = true\n\n\t\t\tif nok, err := k.AdditionalProperties.Schema.FromGnostic(g.AdditionalProperties.GetSchema()); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\t\t}\n\t}\n\n\treturn ok, nil\n}\n\nfunc (k *Schema) FromGnosticSchemaItem(g *openapi_v2.SchemaItem) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\tok = true\n\n\tswitch p := g.Oneof.(type) {\n\tcase *openapi_v2.SchemaItem_FileSchema:\n\t\tfileSchema := p.FileSchema\n\n\t\tif err := k.VendorExtensible.FromGnostic(fileSchema.VendorExtension); err != nil {\n\t\t\treturn false, err\n\t\t}\n\n\t\tk.Format = fileSchema.Format\n\t\tk.Title = fileSchema.Title\n\t\tk.Description = fileSchema.Description\n\t\tk.Required = fileSchema.Required\n\t\tk.Type = []string{fileSchema.Type}\n\t\tk.ReadOnly = fileSchema.ReadOnly\n\n\t\tif fileSchema.ExternalDocs != nil {\n\t\t\tk.ExternalDocs = &ExternalDocumentation{}\n\t\t\tif nok, err := k.ExternalDocs.FromGnostic(fileSchema.ExternalDocs); err != nil {\n\t\t\t\treturn false, err\n\t\t\t} else if !nok {\n\t\t\t\tok = false\n\t\t\t}\n\t\t}\n\n\t\tif fileSchema.Example != nil {\n\t\t\tif err := fileSchema.Example.ToRawInfo().Decode(&k.Example); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\t\t}\n\n\t\tif fileSchema.Default != nil {\n\t\t\tif err := fileSchema.Default.ToRawInfo().Decode(&k.Default); err != nil {\n\t\t\t\treturn false, err\n\t\t\t}\n\t\t}\n\n\tcase *openapi_v2.SchemaItem_Schema:\n\t\tschema := p.Schema\n\n\t\tif nok, err := k.FromGnostic(schema); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\tdefault:\n\t\treturn false, errors.New(\"unrecognized type for SchemaItem\")\n\t}\n\n\treturn ok, nil\n}\n\n// SecurityDefinitions\n\nfunc (k SecurityDefinitions) FromGnostic(g *openapi_v2.SecurityDefinitions) error {\n\tfor _, v := range g.GetAdditionalProperties() {\n\t\tif v == nil {\n\t\t\tcontinue\n\t\t}\n\t\tsecScheme := &SecurityScheme{}\n\t\tif err := secScheme.FromGnostic(v.Value); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tk[v.Name] = secScheme\n\t}\n\n\treturn nil\n}\n\ntype GnosticCommonSecurityDefinition interface {\n\tGetType() string\n\tGetDescription() string\n}\n\nfunc (k *SecuritySchemeProps) FromGnostic(g GnosticCommonSecurityDefinition) error {\n\tk.Type = g.GetType()\n\tk.Description = g.GetDescription()\n\n\tif hasName, success := g.(interface{ GetName() string }); success {\n\t\tk.Name = hasName.GetName()\n\t}\n\n\tif hasIn, success := g.(interface{ GetIn() string }); success {\n\t\tk.In = hasIn.GetIn()\n\t}\n\n\tif hasFlow, success := g.(interface{ GetFlow() string }); success {\n\t\tk.Flow = hasFlow.GetFlow()\n\t}\n\n\tif hasAuthURL, success := g.(interface{ GetAuthorizationUrl() string }); success {\n\t\tk.AuthorizationURL = hasAuthURL.GetAuthorizationUrl()\n\t}\n\n\tif hasTokenURL, success := g.(interface{ GetTokenUrl() string }); success {\n\t\tk.TokenURL = hasTokenURL.GetTokenUrl()\n\t}\n\n\tif hasScopes, success := g.(interface {\n\t\tGetScopes() *openapi_v2.Oauth2Scopes\n\t}); success {\n\t\tscopes := hasScopes.GetScopes()\n\t\tif scopes != nil {\n\t\t\tk.Scopes = make(map[string]string, len(scopes.AdditionalProperties))\n\t\t\tfor _, v := range scopes.AdditionalProperties {\n\t\t\t\tif v == nil {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tk.Scopes[v.Name] = v.Value\n\t\t\t}\n\t\t}\n\t}\n\n\treturn nil\n}\n\nfunc (k *SecurityScheme) FromGnostic(g *openapi_v2.SecurityDefinitionsItem) error {\n\tif g == nil {\n\t\treturn nil\n\t}\n\n\tswitch s := g.Oneof.(type) {\n\tcase *openapi_v2.SecurityDefinitionsItem_ApiKeySecurity:\n\t\tif err := k.SecuritySchemeProps.FromGnostic(s.ApiKeySecurity); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := k.VendorExtensible.FromGnostic(s.ApiKeySecurity.VendorExtension); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\tcase *openapi_v2.SecurityDefinitionsItem_BasicAuthenticationSecurity:\n\t\tif err := k.SecuritySchemeProps.FromGnostic(s.BasicAuthenticationSecurity); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := k.VendorExtensible.FromGnostic(s.BasicAuthenticationSecurity.VendorExtension); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\tcase *openapi_v2.SecurityDefinitionsItem_Oauth2AccessCodeSecurity:\n\t\tif err := k.SecuritySchemeProps.FromGnostic(s.Oauth2AccessCodeSecurity); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := k.VendorExtensible.FromGnostic(s.Oauth2AccessCodeSecurity.VendorExtension); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\tcase *openapi_v2.SecurityDefinitionsItem_Oauth2ApplicationSecurity:\n\t\tif err := k.SecuritySchemeProps.FromGnostic(s.Oauth2ApplicationSecurity); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := k.VendorExtensible.FromGnostic(s.Oauth2ApplicationSecurity.VendorExtension); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\tcase *openapi_v2.SecurityDefinitionsItem_Oauth2ImplicitSecurity:\n\t\tif err := k.SecuritySchemeProps.FromGnostic(s.Oauth2ImplicitSecurity); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := k.VendorExtensible.FromGnostic(s.Oauth2ImplicitSecurity.VendorExtension); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\tcase *openapi_v2.SecurityDefinitionsItem_Oauth2PasswordSecurity:\n\t\tif err := k.SecuritySchemeProps.FromGnostic(s.Oauth2PasswordSecurity); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif err := k.VendorExtensible.FromGnostic(s.Oauth2PasswordSecurity.VendorExtension); err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\tdefault:\n\t\treturn errors.New(\"unrecognized SecurityDefinitionsItem\")\n\t}\n}\n\n// Tag\n\nfunc (k *Tag) FromGnostic(g *openapi_v2.Tag) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\n\tok = true\n\n\tif nok, err := k.TagProps.FromGnostic(g); err != nil {\n\t\treturn false, err\n\t} else if !nok {\n\t\tok = false\n\t}\n\n\tif err := k.VendorExtensible.FromGnostic(g.VendorExtension); err != nil {\n\t\treturn false, err\n\t}\n\treturn ok, nil\n}\n\nfunc (k *TagProps) FromGnostic(g *openapi_v2.Tag) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\tok = true\n\tk.Description = g.Description\n\tk.Name = g.Name\n\n\tif g.ExternalDocs != nil {\n\t\tk.ExternalDocs = &ExternalDocumentation{}\n\t\tif nok, err := k.ExternalDocs.FromGnostic(g.ExternalDocs); err != nil {\n\t\t\treturn false, err\n\t\t} else if !nok {\n\t\t\tok = false\n\t\t}\n\t}\n\n\treturn ok, nil\n}\n\n// ExternalDocumentation\n\nfunc (k *ExternalDocumentation) FromGnostic(g *openapi_v2.ExternalDocs) (ok bool, err error) {\n\tif g == nil {\n\t\treturn true, nil\n\t}\n\tok = true\n\tk.Description = g.Description\n\tk.URL = g.Url\n\n\t// data loss! g.VendorExtension\n\tif len(g.VendorExtension) != 0 {\n\t\tok = false\n\t}\n\n\treturn ok, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/validation/spec/header.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\nconst (\n\tjsonArray = \"array\"\n)\n\n// HeaderProps describes a response header\ntype HeaderProps struct {\n\tDescription string `json:\"description,omitempty\"`\n}\n\n// Header describes a header for a response of the API\n//\n// For more information: http://goo.gl/8us55a#headerObject\ntype Header struct {\n\tCommonValidations\n\tSimpleSchema\n\tVendorExtensible\n\tHeaderProps\n}\n\n// MarshalJSON marshal this to JSON\nfunc (h Header) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(h)\n\t}\n\tb1, err := json.Marshal(h.CommonValidations)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(h.SimpleSchema)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb3, err := json.Marshal(h.HeaderProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb4, err := json.Marshal(h.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2, b3, b4), nil\n}\n\nfunc (h Header) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tCommonValidations commonValidationsOmitZero `json:\",inline\"`\n\t\tSimpleSchema      simpleSchemaOmitZero      `json:\",inline\"`\n\t\tExtensions\n\t\tHeaderProps\n\t}\n\tx.CommonValidations = commonValidationsOmitZero(h.CommonValidations)\n\tx.SimpleSchema = simpleSchemaOmitZero(h.SimpleSchema)\n\tx.Extensions = internal.SanitizeExtensions(h.Extensions)\n\tx.HeaderProps = h.HeaderProps\n\treturn opts.MarshalNext(enc, x)\n}\n\n// UnmarshalJSON unmarshals this header from JSON\nfunc (h *Header) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, h)\n\t}\n\n\tif err := json.Unmarshal(data, &h.CommonValidations); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &h.SimpleSchema); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &h.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn json.Unmarshal(data, &h.HeaderProps)\n}\n\nfunc (h *Header) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tCommonValidations\n\t\tSimpleSchema\n\t\tExtensions\n\t\tHeaderProps\n\t}\n\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\n\th.CommonValidations = x.CommonValidations\n\th.SimpleSchema = x.SimpleSchema\n\th.Extensions = internal.SanitizeExtensions(x.Extensions)\n\th.HeaderProps = x.HeaderProps\n\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/validation/spec/info.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\t\"strings\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\n// Extensions vendor specific extensions\ntype Extensions map[string]interface{}\n\n// Add adds a value to these extensions\nfunc (e Extensions) Add(key string, value interface{}) {\n\trealKey := strings.ToLower(key)\n\te[realKey] = value\n}\n\n// GetString gets a string value from the extensions\nfunc (e Extensions) GetString(key string) (string, bool) {\n\tif v, ok := e[strings.ToLower(key)]; ok {\n\t\tstr, ok := v.(string)\n\t\treturn str, ok\n\t}\n\treturn \"\", false\n}\n\n// GetBool gets a string value from the extensions\nfunc (e Extensions) GetBool(key string) (bool, bool) {\n\tif v, ok := e[strings.ToLower(key)]; ok {\n\t\tstr, ok := v.(bool)\n\t\treturn str, ok\n\t}\n\treturn false, false\n}\n\n// GetStringSlice gets a string value from the extensions\nfunc (e Extensions) GetStringSlice(key string) ([]string, bool) {\n\tif v, ok := e[strings.ToLower(key)]; ok {\n\t\tarr, isSlice := v.([]interface{})\n\t\tif !isSlice {\n\t\t\treturn nil, false\n\t\t}\n\t\tvar strs []string\n\t\tfor _, iface := range arr {\n\t\t\tstr, isString := iface.(string)\n\t\t\tif !isString {\n\t\t\t\treturn nil, false\n\t\t\t}\n\t\t\tstrs = append(strs, str)\n\t\t}\n\t\treturn strs, ok\n\t}\n\treturn nil, false\n}\n\n// GetObject gets the object value from the extensions.\n// out must be a json serializable type; the json go struct\n// tags of out are used to populate it.\nfunc (e Extensions) GetObject(key string, out interface{}) error {\n\t// This json serialization/deserialization could be replaced with\n\t// an approach using reflection if the optimization becomes justified.\n\tif v, ok := e[strings.ToLower(key)]; ok {\n\t\tb, err := json.Marshal(v)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\terr = json.Unmarshal(b, out)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (e Extensions) sanitizeWithExtra() (extra map[string]any) {\n\tfor k, v := range e {\n\t\tif !internal.IsExtensionKey(k) {\n\t\t\tif extra == nil {\n\t\t\t\textra = make(map[string]any)\n\t\t\t}\n\t\t\textra[k] = v\n\t\t\tdelete(e, k)\n\t\t}\n\t}\n\treturn extra\n}\n\n// VendorExtensible composition block.\ntype VendorExtensible struct {\n\tExtensions Extensions\n}\n\n// AddExtension adds an extension to this extensible object\nfunc (v *VendorExtensible) AddExtension(key string, value interface{}) {\n\tif value == nil {\n\t\treturn\n\t}\n\tif v.Extensions == nil {\n\t\tv.Extensions = make(map[string]interface{})\n\t}\n\tv.Extensions.Add(key, value)\n}\n\n// MarshalJSON marshals the extensions to json\nfunc (v VendorExtensible) MarshalJSON() ([]byte, error) {\n\ttoser := make(map[string]interface{})\n\tfor k, v := range v.Extensions {\n\t\tlk := strings.ToLower(k)\n\t\tif strings.HasPrefix(lk, \"x-\") {\n\t\t\ttoser[k] = v\n\t\t}\n\t}\n\treturn json.Marshal(toser)\n}\n\n// UnmarshalJSON for this extensible object\nfunc (v *VendorExtensible) UnmarshalJSON(data []byte) error {\n\tvar d map[string]interface{}\n\tif err := json.Unmarshal(data, &d); err != nil {\n\t\treturn err\n\t}\n\tfor k, vv := range d {\n\t\tlk := strings.ToLower(k)\n\t\tif strings.HasPrefix(lk, \"x-\") {\n\t\t\tif v.Extensions == nil {\n\t\t\t\tv.Extensions = map[string]interface{}{}\n\t\t\t}\n\t\t\tv.Extensions[k] = vv\n\t\t}\n\t}\n\treturn nil\n}\n\n// InfoProps the properties for an info definition\ntype InfoProps struct {\n\tDescription    string       `json:\"description,omitempty\"`\n\tTitle          string       `json:\"title,omitempty\"`\n\tTermsOfService string       `json:\"termsOfService,omitempty\"`\n\tContact        *ContactInfo `json:\"contact,omitempty\"`\n\tLicense        *License     `json:\"license,omitempty\"`\n\tVersion        string       `json:\"version,omitempty\"`\n}\n\n// Info object provides metadata about the API.\n// The metadata can be used by the clients if needed, and can be presented in the Swagger-UI for convenience.\n//\n// For more information: http://goo.gl/8us55a#infoObject\ntype Info struct {\n\tVendorExtensible\n\tInfoProps\n}\n\n// MarshalJSON marshal this to JSON\nfunc (i Info) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(i)\n\t}\n\tb1, err := json.Marshal(i.InfoProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(i.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2), nil\n}\n\nfunc (i Info) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tExtensions\n\t\tInfoProps\n\t}\n\tx.Extensions = i.Extensions\n\tx.InfoProps = i.InfoProps\n\treturn opts.MarshalNext(enc, x)\n}\n\n// UnmarshalJSON marshal this from JSON\nfunc (i *Info) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, i)\n\t}\n\n\tif err := json.Unmarshal(data, &i.InfoProps); err != nil {\n\t\treturn err\n\t}\n\treturn json.Unmarshal(data, &i.VendorExtensible)\n}\n\nfunc (i *Info) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tExtensions\n\t\tInfoProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\ti.Extensions = internal.SanitizeExtensions(x.Extensions)\n\ti.InfoProps = x.InfoProps\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/validation/spec/items.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\nconst (\n\tjsonRef = \"$ref\"\n)\n\n// SimpleSchema describe swagger simple schemas for parameters and headers\ntype SimpleSchema struct {\n\tType             string      `json:\"type,omitempty\"`\n\tNullable         bool        `json:\"nullable,omitempty\"`\n\tFormat           string      `json:\"format,omitempty\"`\n\tItems            *Items      `json:\"items,omitempty\"`\n\tCollectionFormat string      `json:\"collectionFormat,omitempty\"`\n\tDefault          interface{} `json:\"default,omitempty\"`\n\tExample          interface{} `json:\"example,omitempty\"`\n}\n\n// Marshaling structure only, always edit along with corresponding\n// struct (or compilation will fail).\ntype simpleSchemaOmitZero struct {\n\tType             string      `json:\"type,omitempty\"`\n\tNullable         bool        `json:\"nullable,omitzero\"`\n\tFormat           string      `json:\"format,omitempty\"`\n\tItems            *Items      `json:\"items,omitzero\"`\n\tCollectionFormat string      `json:\"collectionFormat,omitempty\"`\n\tDefault          interface{} `json:\"default,omitempty\"`\n\tExample          interface{} `json:\"example,omitempty\"`\n}\n\n// CommonValidations describe common JSON-schema validations\ntype CommonValidations struct {\n\tMaximum          *float64      `json:\"maximum,omitempty\"`\n\tExclusiveMaximum bool          `json:\"exclusiveMaximum,omitempty\"`\n\tMinimum          *float64      `json:\"minimum,omitempty\"`\n\tExclusiveMinimum bool          `json:\"exclusiveMinimum,omitempty\"`\n\tMaxLength        *int64        `json:\"maxLength,omitempty\"`\n\tMinLength        *int64        `json:\"minLength,omitempty\"`\n\tPattern          string        `json:\"pattern,omitempty\"`\n\tMaxItems         *int64        `json:\"maxItems,omitempty\"`\n\tMinItems         *int64        `json:\"minItems,omitempty\"`\n\tUniqueItems      bool          `json:\"uniqueItems,omitempty\"`\n\tMultipleOf       *float64      `json:\"multipleOf,omitempty\"`\n\tEnum             []interface{} `json:\"enum,omitempty\"`\n}\n\n// Marshaling structure only, always edit along with corresponding\n// struct (or compilation will fail).\ntype commonValidationsOmitZero struct {\n\tMaximum          *float64      `json:\"maximum,omitempty\"`\n\tExclusiveMaximum bool          `json:\"exclusiveMaximum,omitzero\"`\n\tMinimum          *float64      `json:\"minimum,omitempty\"`\n\tExclusiveMinimum bool          `json:\"exclusiveMinimum,omitzero\"`\n\tMaxLength        *int64        `json:\"maxLength,omitempty\"`\n\tMinLength        *int64        `json:\"minLength,omitempty\"`\n\tPattern          string        `json:\"pattern,omitempty\"`\n\tMaxItems         *int64        `json:\"maxItems,omitempty\"`\n\tMinItems         *int64        `json:\"minItems,omitempty\"`\n\tUniqueItems      bool          `json:\"uniqueItems,omitzero\"`\n\tMultipleOf       *float64      `json:\"multipleOf,omitempty\"`\n\tEnum             []interface{} `json:\"enum,omitempty\"`\n}\n\n// Items a limited subset of JSON-Schema's items object.\n// It is used by parameter definitions that are not located in \"body\".\n//\n// For more information: http://goo.gl/8us55a#items-object\ntype Items struct {\n\tRefable\n\tCommonValidations\n\tSimpleSchema\n\tVendorExtensible\n}\n\n// UnmarshalJSON hydrates this items instance with the data from JSON\nfunc (i *Items) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, i)\n\t}\n\n\tvar validations CommonValidations\n\tif err := json.Unmarshal(data, &validations); err != nil {\n\t\treturn err\n\t}\n\tvar ref Refable\n\tif err := json.Unmarshal(data, &ref); err != nil {\n\t\treturn err\n\t}\n\tvar simpleSchema SimpleSchema\n\tif err := json.Unmarshal(data, &simpleSchema); err != nil {\n\t\treturn err\n\t}\n\tvar vendorExtensible VendorExtensible\n\tif err := json.Unmarshal(data, &vendorExtensible); err != nil {\n\t\treturn err\n\t}\n\ti.Refable = ref\n\ti.CommonValidations = validations\n\ti.SimpleSchema = simpleSchema\n\ti.VendorExtensible = vendorExtensible\n\treturn nil\n}\n\nfunc (i *Items) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tCommonValidations\n\t\tSimpleSchema\n\t\tExtensions\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\tif err := i.Refable.Ref.fromMap(x.Extensions); err != nil {\n\t\treturn err\n\t}\n\n\ti.CommonValidations = x.CommonValidations\n\ti.SimpleSchema = x.SimpleSchema\n\ti.Extensions = internal.SanitizeExtensions(x.Extensions)\n\treturn nil\n}\n\n// MarshalJSON converts this items object to JSON\nfunc (i Items) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(i)\n\t}\n\tb1, err := json.Marshal(i.CommonValidations)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(i.SimpleSchema)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb3, err := json.Marshal(i.Refable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb4, err := json.Marshal(i.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b4, b3, b1, b2), nil\n}\n\nfunc (i Items) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tCommonValidations commonValidationsOmitZero `json:\",inline\"`\n\t\tSimpleSchema      simpleSchemaOmitZero      `json:\",inline\"`\n\t\tRef               string                    `json:\"$ref,omitempty\"`\n\t\tExtensions\n\t}\n\tx.CommonValidations = commonValidationsOmitZero(i.CommonValidations)\n\tx.SimpleSchema = simpleSchemaOmitZero(i.SimpleSchema)\n\tx.Ref = i.Refable.Ref.String()\n\tx.Extensions = internal.SanitizeExtensions(i.Extensions)\n\treturn opts.MarshalNext(enc, x)\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/validation/spec/license.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\n// License information for the exposed API.\n//\n// For more information: http://goo.gl/8us55a#licenseObject\ntype License struct {\n\tName string `json:\"name,omitempty\"`\n\tURL  string `json:\"url,omitempty\"`\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/validation/spec/operation.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\n// OperationProps describes an operation\n//\n// NOTES:\n// - schemes, when present must be from [http, https, ws, wss]: see validate\n// - Security is handled as a special case: see MarshalJSON function\ntype OperationProps struct {\n\tDescription  string                 `json:\"description,omitempty\"`\n\tConsumes     []string               `json:\"consumes,omitempty\"`\n\tProduces     []string               `json:\"produces,omitempty\"`\n\tSchemes      []string               `json:\"schemes,omitempty\"`\n\tTags         []string               `json:\"tags,omitempty\"`\n\tSummary      string                 `json:\"summary,omitempty\"`\n\tExternalDocs *ExternalDocumentation `json:\"externalDocs,omitempty\"`\n\tID           string                 `json:\"operationId,omitempty\"`\n\tDeprecated   bool                   `json:\"deprecated,omitempty\"`\n\tSecurity     []map[string][]string  `json:\"security,omitempty\"`\n\tParameters   []Parameter            `json:\"parameters,omitempty\"`\n\tResponses    *Responses             `json:\"responses,omitempty\"`\n}\n\n// Marshaling structure only, always edit along with corresponding\n// struct (or compilation will fail).\ntype operationPropsOmitZero struct {\n\tDescription  string                 `json:\"description,omitempty\"`\n\tConsumes     []string               `json:\"consumes,omitempty\"`\n\tProduces     []string               `json:\"produces,omitempty\"`\n\tSchemes      []string               `json:\"schemes,omitempty\"`\n\tTags         []string               `json:\"tags,omitempty\"`\n\tSummary      string                 `json:\"summary,omitempty\"`\n\tExternalDocs *ExternalDocumentation `json:\"externalDocs,omitzero\"`\n\tID           string                 `json:\"operationId,omitempty\"`\n\tDeprecated   bool                   `json:\"deprecated,omitempty,omitzero\"`\n\tSecurity     []map[string][]string  `json:\"security,omitempty\"`\n\tParameters   []Parameter            `json:\"parameters,omitempty\"`\n\tResponses    *Responses             `json:\"responses,omitzero\"`\n}\n\n// MarshalJSON takes care of serializing operation properties to JSON\n//\n// We use a custom marhaller here to handle a special cases related to\n// the Security field. We need to preserve zero length slice\n// while omitting the field when the value is nil/unset.\nfunc (op OperationProps) MarshalJSON() ([]byte, error) {\n\ttype Alias OperationProps\n\tif op.Security == nil {\n\t\treturn json.Marshal(&struct {\n\t\t\tSecurity []map[string][]string `json:\"security,omitempty\"`\n\t\t\t*Alias\n\t\t}{\n\t\t\tSecurity: op.Security,\n\t\t\tAlias:    (*Alias)(&op),\n\t\t})\n\t}\n\treturn json.Marshal(&struct {\n\t\tSecurity []map[string][]string `json:\"security\"`\n\t\t*Alias\n\t}{\n\t\tSecurity: op.Security,\n\t\tAlias:    (*Alias)(&op),\n\t})\n}\n\n// Operation describes a single API operation on a path.\n//\n// For more information: http://goo.gl/8us55a#operationObject\ntype Operation struct {\n\tVendorExtensible\n\tOperationProps\n}\n\n// UnmarshalJSON hydrates this items instance with the data from JSON\nfunc (o *Operation) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, o)\n\t}\n\n\tif err := json.Unmarshal(data, &o.OperationProps); err != nil {\n\t\treturn err\n\t}\n\treturn json.Unmarshal(data, &o.VendorExtensible)\n}\n\nfunc (o *Operation) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\ttype OperationPropsNoMethods OperationProps // strip MarshalJSON method\n\tvar x struct {\n\t\tExtensions\n\t\tOperationPropsNoMethods\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\to.Extensions = internal.SanitizeExtensions(x.Extensions)\n\to.OperationProps = OperationProps(x.OperationPropsNoMethods)\n\treturn nil\n}\n\n// MarshalJSON converts this items object to JSON\nfunc (o Operation) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(o)\n\t}\n\tb1, err := json.Marshal(o.OperationProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(o.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tconcated := swag.ConcatJSON(b1, b2)\n\treturn concated, nil\n}\n\nfunc (o Operation) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tExtensions\n\t\tOperationProps operationPropsOmitZero `json:\",inline\"`\n\t}\n\tx.Extensions = internal.SanitizeExtensions(o.Extensions)\n\tx.OperationProps = operationPropsOmitZero(o.OperationProps)\n\treturn opts.MarshalNext(enc, x)\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/validation/spec/parameter.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\n// ParamProps describes the specific attributes of an operation parameter\n//\n// NOTE:\n// - Schema is defined when \"in\" == \"body\": see validate\n// - AllowEmptyValue is allowed where \"in\" == \"query\" || \"formData\"\ntype ParamProps struct {\n\tDescription     string  `json:\"description,omitempty\"`\n\tName            string  `json:\"name,omitempty\"`\n\tIn              string  `json:\"in,omitempty\"`\n\tRequired        bool    `json:\"required,omitempty\"`\n\tSchema          *Schema `json:\"schema,omitempty\"`\n\tAllowEmptyValue bool    `json:\"allowEmptyValue,omitempty\"`\n}\n\n// Marshaling structure only, always edit along with corresponding\n// struct (or compilation will fail).\ntype paramPropsOmitZero struct {\n\tDescription     string  `json:\"description,omitempty\"`\n\tName            string  `json:\"name,omitempty\"`\n\tIn              string  `json:\"in,omitempty\"`\n\tRequired        bool    `json:\"required,omitzero\"`\n\tSchema          *Schema `json:\"schema,omitzero\"`\n\tAllowEmptyValue bool    `json:\"allowEmptyValue,omitzero\"`\n}\n\n// Parameter a unique parameter is defined by a combination of a [name](#parameterName) and [location](#parameterIn).\n//\n// There are five possible parameter types.\n// * Path - Used together with [Path Templating](#pathTemplating), where the parameter value is actually part\n//\n//\tof the operation's URL. This does not include the host or base path of the API. For example, in `/items/{itemId}`,\n//\tthe path parameter is `itemId`.\n//\n// * Query - Parameters that are appended to the URL. For example, in `/items?id=###`, the query parameter is `id`.\n// * Header - Custom headers that are expected as part of the request.\n// * Body - The payload that's appended to the HTTP request. Since there can only be one payload, there can only be\n//\n//\t_one_ body parameter. The name of the body parameter has no effect on the parameter itself and is used for\n//\tdocumentation purposes only. Since Form parameters are also in the payload, body and form parameters cannot exist\n//\ttogether for the same operation.\n//\n// * Form - Used to describe the payload of an HTTP request when either `application/x-www-form-urlencoded` or\n//\n//\t`multipart/form-data` are used as the content type of the request (in Swagger's definition,\n//\tthe [`consumes`](#operationConsumes) property of an operation). This is the only parameter type that can be used\n//\tto send files, thus supporting the `file` type. Since form parameters are sent in the payload, they cannot be\n//\tdeclared together with a body parameter for the same operation. Form parameters have a different format based on\n//\tthe content-type used (for further details, consult http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4).\n//\t* `application/x-www-form-urlencoded` - Similar to the format of Query parameters but as a payload.\n//\tFor example, `foo=1&bar=swagger` - both `foo` and `bar` are form parameters. This is normally used for simple\n//\tparameters that are being transferred.\n//\t* `multipart/form-data` - each parameter takes a section in the payload with an internal header.\n//\tFor example, for the header `Content-Disposition: form-data; name=\"submit-name\"` the name of the parameter is\n//\t`submit-name`. This type of form parameters is more commonly used for file transfers.\n//\n// For more information: http://goo.gl/8us55a#parameterObject\ntype Parameter struct {\n\tRefable\n\tCommonValidations\n\tSimpleSchema\n\tVendorExtensible\n\tParamProps\n}\n\n// UnmarshalJSON hydrates this items instance with the data from JSON\nfunc (p *Parameter) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, p)\n\t}\n\n\tif err := json.Unmarshal(data, &p.CommonValidations); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &p.Refable); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &p.SimpleSchema); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &p.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn json.Unmarshal(data, &p.ParamProps)\n}\n\nfunc (p *Parameter) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tCommonValidations\n\t\tSimpleSchema\n\t\tExtensions\n\t\tParamProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\tif err := p.Refable.Ref.fromMap(x.Extensions); err != nil {\n\t\treturn err\n\t}\n\tp.CommonValidations = x.CommonValidations\n\tp.SimpleSchema = x.SimpleSchema\n\tp.Extensions = internal.SanitizeExtensions(x.Extensions)\n\tp.ParamProps = x.ParamProps\n\treturn nil\n}\n\n// MarshalJSON converts this items object to JSON\nfunc (p Parameter) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(p)\n\t}\n\tb1, err := json.Marshal(p.CommonValidations)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(p.SimpleSchema)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb3, err := json.Marshal(p.Refable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb4, err := json.Marshal(p.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb5, err := json.Marshal(p.ParamProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b3, b1, b2, b4, b5), nil\n}\n\nfunc (p Parameter) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tCommonValidations commonValidationsOmitZero `json:\",inline\"`\n\t\tSimpleSchema      simpleSchemaOmitZero      `json:\",inline\"`\n\t\tParamProps        paramPropsOmitZero        `json:\",inline\"`\n\t\tRef               string                    `json:\"$ref,omitempty\"`\n\t\tExtensions\n\t}\n\tx.CommonValidations = commonValidationsOmitZero(p.CommonValidations)\n\tx.SimpleSchema = simpleSchemaOmitZero(p.SimpleSchema)\n\tx.Extensions = internal.SanitizeExtensions(p.Extensions)\n\tx.ParamProps = paramPropsOmitZero(p.ParamProps)\n\tx.Ref = p.Refable.Ref.String()\n\treturn opts.MarshalNext(enc, x)\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/validation/spec/path_item.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\n// PathItemProps the path item specific properties\ntype PathItemProps struct {\n\tGet        *Operation  `json:\"get,omitempty\"`\n\tPut        *Operation  `json:\"put,omitempty\"`\n\tPost       *Operation  `json:\"post,omitempty\"`\n\tDelete     *Operation  `json:\"delete,omitempty\"`\n\tOptions    *Operation  `json:\"options,omitempty\"`\n\tHead       *Operation  `json:\"head,omitempty\"`\n\tPatch      *Operation  `json:\"patch,omitempty\"`\n\tParameters []Parameter `json:\"parameters,omitempty\"`\n}\n\n// PathItem describes the operations available on a single path.\n// A Path Item may be empty, due to [ACL constraints](http://goo.gl/8us55a#securityFiltering).\n// The path itself is still exposed to the documentation viewer but they will\n// not know which operations and parameters are available.\n//\n// For more information: http://goo.gl/8us55a#pathItemObject\ntype PathItem struct {\n\tRefable\n\tVendorExtensible\n\tPathItemProps\n}\n\n// UnmarshalJSON hydrates this items instance with the data from JSON\nfunc (p *PathItem) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, p)\n\t}\n\n\tif err := json.Unmarshal(data, &p.Refable); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &p.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\treturn json.Unmarshal(data, &p.PathItemProps)\n}\n\nfunc (p *PathItem) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tExtensions\n\t\tPathItemProps\n\t}\n\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\tif err := p.Refable.Ref.fromMap(x.Extensions); err != nil {\n\t\treturn err\n\t}\n\tp.Extensions = internal.SanitizeExtensions(x.Extensions)\n\tp.PathItemProps = x.PathItemProps\n\n\treturn nil\n}\n\n// MarshalJSON converts this items object to JSON\nfunc (p PathItem) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(p)\n\t}\n\tb3, err := json.Marshal(p.Refable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb4, err := json.Marshal(p.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb5, err := json.Marshal(p.PathItemProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tconcated := swag.ConcatJSON(b3, b4, b5)\n\treturn concated, nil\n}\n\nfunc (p PathItem) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tRef string `json:\"$ref,omitempty\"`\n\t\tExtensions\n\t\tPathItemProps\n\t}\n\tx.Ref = p.Refable.Ref.String()\n\tx.Extensions = internal.SanitizeExtensions(p.Extensions)\n\tx.PathItemProps = p.PathItemProps\n\treturn opts.MarshalNext(enc, x)\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/validation/spec/paths.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"strings\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\n// Paths holds the relative paths to the individual endpoints.\n// The path is appended to the [`basePath`](http://goo.gl/8us55a#swaggerBasePath) in order\n// to construct the full URL.\n// The Paths may be empty, due to [ACL constraints](http://goo.gl/8us55a#securityFiltering).\n//\n// For more information: http://goo.gl/8us55a#pathsObject\ntype Paths struct {\n\tVendorExtensible\n\tPaths map[string]PathItem `json:\"-\"` // custom serializer to flatten this, each entry must start with \"/\"\n}\n\n// UnmarshalJSON hydrates this items instance with the data from JSON\nfunc (p *Paths) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, p)\n\t}\n\n\tvar res map[string]json.RawMessage\n\tif err := json.Unmarshal(data, &res); err != nil {\n\t\treturn err\n\t}\n\tfor k, v := range res {\n\t\tif strings.HasPrefix(strings.ToLower(k), \"x-\") {\n\t\t\tif p.Extensions == nil {\n\t\t\t\tp.Extensions = make(map[string]interface{})\n\t\t\t}\n\t\t\tvar d interface{}\n\t\t\tif err := json.Unmarshal(v, &d); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tp.Extensions[k] = d\n\t\t}\n\t\tif strings.HasPrefix(k, \"/\") {\n\t\t\tif p.Paths == nil {\n\t\t\t\tp.Paths = make(map[string]PathItem)\n\t\t\t}\n\t\t\tvar pi PathItem\n\t\t\tif err := json.Unmarshal(v, &pi); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tp.Paths[k] = pi\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (p *Paths) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\ttok, err := dec.ReadToken()\n\tif err != nil {\n\t\treturn err\n\t}\n\tvar ext any\n\tvar pi PathItem\n\tswitch k := tok.Kind(); k {\n\tcase 'n':\n\t\treturn nil // noop\n\tcase '{':\n\t\tfor {\n\t\t\ttok, err := dec.ReadToken()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\tif tok.Kind() == '}' {\n\t\t\t\treturn nil\n\t\t\t}\n\n\t\t\tswitch k := tok.String(); {\n\t\t\tcase internal.IsExtensionKey(k):\n\t\t\t\text = nil\n\t\t\t\tif err := opts.UnmarshalNext(dec, &ext); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\tif p.Extensions == nil {\n\t\t\t\t\tp.Extensions = make(map[string]any)\n\t\t\t\t}\n\t\t\t\tp.Extensions[k] = ext\n\t\t\tcase len(k) > 0 && k[0] == '/':\n\t\t\t\tpi = PathItem{}\n\t\t\t\tif err := opts.UnmarshalNext(dec, &pi); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\tif p.Paths == nil {\n\t\t\t\t\tp.Paths = make(map[string]PathItem)\n\t\t\t\t}\n\t\t\t\tp.Paths[k] = pi\n\t\t\tdefault:\n\t\t\t\t_, err := dec.ReadValue() // skip value\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\tdefault:\n\t\treturn fmt.Errorf(\"unknown JSON kind: %v\", k)\n\t}\n}\n\n// MarshalJSON converts this items object to JSON\nfunc (p Paths) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(p)\n\t}\n\tb1, err := json.Marshal(p.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tpths := make(map[string]PathItem)\n\tfor k, v := range p.Paths {\n\t\tif strings.HasPrefix(k, \"/\") {\n\t\t\tpths[k] = v\n\t\t}\n\t}\n\tb2, err := json.Marshal(pths)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tconcated := swag.ConcatJSON(b1, b2)\n\treturn concated, nil\n}\n\nfunc (p Paths) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tm := make(map[string]any, len(p.Extensions)+len(p.Paths))\n\tfor k, v := range p.Extensions {\n\t\tif internal.IsExtensionKey(k) {\n\t\t\tm[k] = v\n\t\t}\n\t}\n\tfor k, v := range p.Paths {\n\t\tif strings.HasPrefix(k, \"/\") {\n\t\t\tm[k] = v\n\t\t}\n\t}\n\treturn opts.MarshalNext(enc, m)\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/validation/spec/ref.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\t\"net/http\"\n\t\"os\"\n\t\"path/filepath\"\n\n\t\"github.com/go-openapi/jsonreference\"\n\n\t\"k8s.io/kube-openapi/pkg/internal\"\n)\n\n// Refable is a struct for things that accept a $ref property\ntype Refable struct {\n\tRef Ref\n}\n\n// MarshalJSON marshals the ref to json\nfunc (r Refable) MarshalJSON() ([]byte, error) {\n\treturn r.Ref.MarshalJSON()\n}\n\n// UnmarshalJSON unmarshalss the ref from json\nfunc (r *Refable) UnmarshalJSON(d []byte) error {\n\treturn json.Unmarshal(d, &r.Ref)\n}\n\n// Ref represents a json reference that is potentially resolved\ntype Ref struct {\n\tjsonreference.Ref\n}\n\n// RemoteURI gets the remote uri part of the ref\nfunc (r *Ref) RemoteURI() string {\n\tif r.String() == \"\" {\n\t\treturn r.String()\n\t}\n\n\tu := *r.GetURL()\n\tu.Fragment = \"\"\n\treturn u.String()\n}\n\n// IsValidURI returns true when the url the ref points to can be found\nfunc (r *Ref) IsValidURI(basepaths ...string) bool {\n\tif r.String() == \"\" {\n\t\treturn true\n\t}\n\n\tv := r.RemoteURI()\n\tif v == \"\" {\n\t\treturn true\n\t}\n\n\tif r.HasFullURL {\n\t\trr, err := http.Get(v)\n\t\tif err != nil {\n\t\t\treturn false\n\t\t}\n\n\t\treturn rr.StatusCode/100 == 2\n\t}\n\n\tif !(r.HasFileScheme || r.HasFullFilePath || r.HasURLPathOnly) {\n\t\treturn false\n\t}\n\n\t// check for local file\n\tpth := v\n\tif r.HasURLPathOnly {\n\t\tbase := \".\"\n\t\tif len(basepaths) > 0 {\n\t\t\tbase = filepath.Dir(filepath.Join(basepaths...))\n\t\t}\n\t\tp, e := filepath.Abs(filepath.ToSlash(filepath.Join(base, pth)))\n\t\tif e != nil {\n\t\t\treturn false\n\t\t}\n\t\tpth = p\n\t}\n\n\tfi, err := os.Stat(filepath.ToSlash(pth))\n\tif err != nil {\n\t\treturn false\n\t}\n\n\treturn !fi.IsDir()\n}\n\n// Inherits creates a new reference from a parent and a child\n// If the child cannot inherit from the parent, an error is returned\nfunc (r *Ref) Inherits(child Ref) (*Ref, error) {\n\tref, err := r.Ref.Inherits(child.Ref)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn &Ref{Ref: *ref}, nil\n}\n\n// NewRef creates a new instance of a ref object\n// returns an error when the reference uri is an invalid uri\nfunc NewRef(refURI string) (Ref, error) {\n\tref, err := jsonreference.New(refURI)\n\tif err != nil {\n\t\treturn Ref{}, err\n\t}\n\treturn Ref{Ref: ref}, nil\n}\n\n// MustCreateRef creates a ref object but panics when refURI is invalid.\n// Use the NewRef method for a version that returns an error.\nfunc MustCreateRef(refURI string) Ref {\n\treturn Ref{Ref: jsonreference.MustCreateRef(refURI)}\n}\n\n// MarshalJSON marshals this ref into a JSON object\nfunc (r Ref) MarshalJSON() ([]byte, error) {\n\tstr := r.String()\n\tif str == \"\" {\n\t\tif r.IsRoot() {\n\t\t\treturn []byte(`{\"$ref\":\"\"}`), nil\n\t\t}\n\t\treturn []byte(\"{}\"), nil\n\t}\n\tv := map[string]interface{}{\"$ref\": str}\n\treturn json.Marshal(v)\n}\n\n// UnmarshalJSON unmarshals this ref from a JSON object\nfunc (r *Ref) UnmarshalJSON(d []byte) error {\n\tvar v map[string]interface{}\n\tif err := json.Unmarshal(d, &v); err != nil {\n\t\treturn err\n\t}\n\treturn r.fromMap(v)\n}\n\nfunc (r *Ref) fromMap(v map[string]interface{}) error {\n\treturn internal.JSONRefFromMap(&r.Ref, v)\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/validation/spec/response.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\n// ResponseProps properties specific to a response\ntype ResponseProps struct {\n\tDescription string                 `json:\"description,omitempty\"`\n\tSchema      *Schema                `json:\"schema,omitempty\"`\n\tHeaders     map[string]Header      `json:\"headers,omitempty\"`\n\tExamples    map[string]interface{} `json:\"examples,omitempty\"`\n}\n\n// Marshaling structure only, always edit along with corresponding\n// struct (or compilation will fail).\ntype responsePropsOmitZero struct {\n\tDescription string                 `json:\"description,omitempty\"`\n\tSchema      *Schema                `json:\"schema,omitzero\"`\n\tHeaders     map[string]Header      `json:\"headers,omitempty\"`\n\tExamples    map[string]interface{} `json:\"examples,omitempty\"`\n}\n\n// Response describes a single response from an API Operation.\n//\n// For more information: http://goo.gl/8us55a#responseObject\ntype Response struct {\n\tRefable\n\tResponseProps\n\tVendorExtensible\n}\n\n// UnmarshalJSON hydrates this items instance with the data from JSON\nfunc (r *Response) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, r)\n\t}\n\n\tif err := json.Unmarshal(data, &r.ResponseProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &r.Refable); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &r.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\n\treturn nil\n}\n\nfunc (r *Response) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tResponseProps\n\t\tExtensions\n\t}\n\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\n\tif err := r.Refable.Ref.fromMap(x.Extensions); err != nil {\n\t\treturn err\n\t}\n\tr.Extensions = internal.SanitizeExtensions(x.Extensions)\n\tr.ResponseProps = x.ResponseProps\n\n\treturn nil\n}\n\n// MarshalJSON converts this items object to JSON\nfunc (r Response) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(r)\n\t}\n\tb1, err := json.Marshal(r.ResponseProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(r.Refable)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb3, err := json.Marshal(r.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2, b3), nil\n}\n\nfunc (r Response) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tRef string `json:\"$ref,omitempty\"`\n\t\tExtensions\n\t\tResponseProps responsePropsOmitZero `json:\",inline\"`\n\t}\n\tx.Ref = r.Refable.Ref.String()\n\tx.Extensions = internal.SanitizeExtensions(r.Extensions)\n\tx.ResponseProps = responsePropsOmitZero(r.ResponseProps)\n\treturn opts.MarshalNext(enc, x)\n}\n\n// NewResponse creates a new response instance\nfunc NewResponse() *Response {\n\treturn new(Response)\n}\n\n// ResponseRef creates a response as a json reference\nfunc ResponseRef(url string) *Response {\n\tresp := NewResponse()\n\tresp.Ref = MustCreateRef(url)\n\treturn resp\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/validation/spec/responses.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"strconv\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\n// Responses is a container for the expected responses of an operation.\n// The container maps a HTTP response code to the expected response.\n// It is not expected from the documentation to necessarily cover all possible HTTP response codes,\n// since they may not be known in advance. However, it is expected from the documentation to cover\n// a successful operation response and any known errors.\n//\n// The `default` can be used a default response object for all HTTP codes that are not covered\n// individually by the specification.\n//\n// The `Responses Object` MUST contain at least one response code, and it SHOULD be the response\n// for a successful operation call.\n//\n// For more information: http://goo.gl/8us55a#responsesObject\ntype Responses struct {\n\tVendorExtensible\n\tResponsesProps\n}\n\n// UnmarshalJSON hydrates this items instance with the data from JSON\nfunc (r *Responses) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, r)\n\t}\n\n\tif err := json.Unmarshal(data, &r.ResponsesProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &r.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\tif reflect.DeepEqual(ResponsesProps{}, r.ResponsesProps) {\n\t\tr.ResponsesProps = ResponsesProps{}\n\t}\n\treturn nil\n}\n\n// MarshalJSON converts this items object to JSON\nfunc (r Responses) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(r)\n\t}\n\tb1, err := json.Marshal(r.ResponsesProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(r.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tconcated := swag.ConcatJSON(b1, b2)\n\treturn concated, nil\n}\n\nfunc (r Responses) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\ttype ArbitraryKeys map[string]interface{}\n\tvar x struct {\n\t\tArbitraryKeys\n\t\tDefault *Response `json:\"default,omitempty\"`\n\t}\n\tx.ArbitraryKeys = make(map[string]any, len(r.Extensions)+len(r.StatusCodeResponses))\n\tfor k, v := range r.Extensions {\n\t\tif internal.IsExtensionKey(k) {\n\t\t\tx.ArbitraryKeys[k] = v\n\t\t}\n\t}\n\tfor k, v := range r.StatusCodeResponses {\n\t\tx.ArbitraryKeys[strconv.Itoa(k)] = v\n\t}\n\tx.Default = r.Default\n\treturn opts.MarshalNext(enc, x)\n}\n\n// ResponsesProps describes all responses for an operation.\n// It tells what is the default response and maps all responses with a\n// HTTP status code.\ntype ResponsesProps struct {\n\tDefault             *Response\n\tStatusCodeResponses map[int]Response\n}\n\n// MarshalJSON marshals responses as JSON\nfunc (r ResponsesProps) MarshalJSON() ([]byte, error) {\n\ttoser := map[string]Response{}\n\tif r.Default != nil {\n\t\ttoser[\"default\"] = *r.Default\n\t}\n\tfor k, v := range r.StatusCodeResponses {\n\t\ttoser[strconv.Itoa(k)] = v\n\t}\n\treturn json.Marshal(toser)\n}\n\n// UnmarshalJSON unmarshals responses from JSON\nfunc (r *ResponsesProps) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, r)\n\t}\n\tvar res map[string]json.RawMessage\n\tif err := json.Unmarshal(data, &res); err != nil {\n\t\treturn err\n\t}\n\tif v, ok := res[\"default\"]; ok {\n\t\tvalue := Response{}\n\t\tif err := json.Unmarshal(v, &value); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tr.Default = &value\n\t\tdelete(res, \"default\")\n\t}\n\tfor k, v := range res {\n\t\t// Take all integral keys\n\t\tif nk, err := strconv.Atoi(k); err == nil {\n\t\t\tif r.StatusCodeResponses == nil {\n\t\t\t\tr.StatusCodeResponses = map[int]Response{}\n\t\t\t}\n\t\t\tvalue := Response{}\n\t\t\tif err := json.Unmarshal(v, &value); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tr.StatusCodeResponses[nk] = value\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (r *Responses) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) (err error) {\n\ttok, err := dec.ReadToken()\n\tif err != nil {\n\t\treturn err\n\t}\n\tvar ext any\n\tvar resp Response\n\tswitch k := tok.Kind(); k {\n\tcase 'n':\n\t\treturn nil // noop\n\tcase '{':\n\t\tfor {\n\t\t\ttok, err := dec.ReadToken()\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tif tok.Kind() == '}' {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tswitch k := tok.String(); {\n\t\t\tcase internal.IsExtensionKey(k):\n\t\t\t\text = nil\n\t\t\t\tif err := opts.UnmarshalNext(dec, &ext); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\tif r.Extensions == nil {\n\t\t\t\t\tr.Extensions = make(map[string]any)\n\t\t\t\t}\n\t\t\t\tr.Extensions[k] = ext\n\t\t\tcase k == \"default\":\n\t\t\t\tresp = Response{}\n\t\t\t\tif err := opts.UnmarshalNext(dec, &resp); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\n\t\t\t\trespCopy := resp\n\t\t\t\tr.ResponsesProps.Default = &respCopy\n\t\t\tdefault:\n\t\t\t\tif nk, err := strconv.Atoi(k); err == nil {\n\t\t\t\t\tresp = Response{}\n\t\t\t\t\tif err := opts.UnmarshalNext(dec, &resp); err != nil {\n\t\t\t\t\t\treturn err\n\t\t\t\t\t}\n\n\t\t\t\t\tif r.StatusCodeResponses == nil {\n\t\t\t\t\t\tr.StatusCodeResponses = map[int]Response{}\n\t\t\t\t\t}\n\t\t\t\t\tr.StatusCodeResponses[nk] = resp\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\tdefault:\n\t\treturn fmt.Errorf(\"unknown JSON kind: %v\", k)\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/validation/spec/schema.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"net/url\"\n\t\"strings\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\n// BooleanProperty creates a boolean property\nfunc BooleanProperty() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"boolean\"}}}\n}\n\n// BoolProperty creates a boolean property\nfunc BoolProperty() *Schema { return BooleanProperty() }\n\n// StringProperty creates a string property\nfunc StringProperty() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"string\"}}}\n}\n\n// CharProperty creates a string property\nfunc CharProperty() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"string\"}}}\n}\n\n// Float64Property creates a float64/double property\nfunc Float64Property() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"number\"}, Format: \"double\"}}\n}\n\n// Float32Property creates a float32/float property\nfunc Float32Property() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"number\"}, Format: \"float\"}}\n}\n\n// Int8Property creates an int8 property\nfunc Int8Property() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"integer\"}, Format: \"int8\"}}\n}\n\n// Int16Property creates an int16 property\nfunc Int16Property() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"integer\"}, Format: \"int16\"}}\n}\n\n// Int32Property creates an int32 property\nfunc Int32Property() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"integer\"}, Format: \"int32\"}}\n}\n\n// Int64Property creates an int64 property\nfunc Int64Property() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"integer\"}, Format: \"int64\"}}\n}\n\n// StrFmtProperty creates a property for the named string format\nfunc StrFmtProperty(format string) *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"string\"}, Format: format}}\n}\n\n// DateProperty creates a date property\nfunc DateProperty() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"string\"}, Format: \"date\"}}\n}\n\n// DateTimeProperty creates a date time property\nfunc DateTimeProperty() *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"string\"}, Format: \"date-time\"}}\n}\n\n// MapProperty creates a map property\nfunc MapProperty(property *Schema) *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"object\"},\n\t\tAdditionalProperties: &SchemaOrBool{Allows: true, Schema: property}}}\n}\n\n// RefProperty creates a ref property\nfunc RefProperty(name string) *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Ref: MustCreateRef(name)}}\n}\n\n// RefSchema creates a ref property\nfunc RefSchema(name string) *Schema {\n\treturn &Schema{SchemaProps: SchemaProps{Ref: MustCreateRef(name)}}\n}\n\n// ArrayProperty creates an array property\nfunc ArrayProperty(items *Schema) *Schema {\n\tif items == nil {\n\t\treturn &Schema{SchemaProps: SchemaProps{Type: []string{\"array\"}}}\n\t}\n\treturn &Schema{SchemaProps: SchemaProps{Items: &SchemaOrArray{Schema: items}, Type: []string{\"array\"}}}\n}\n\n// ComposedSchema creates a schema with allOf\nfunc ComposedSchema(schemas ...Schema) *Schema {\n\ts := new(Schema)\n\ts.AllOf = schemas\n\treturn s\n}\n\n// SchemaURL represents a schema url\ntype SchemaURL string\n\n// MarshalJSON marshal this to JSON\nfunc (r SchemaURL) MarshalJSON() ([]byte, error) {\n\tif r == \"\" {\n\t\treturn []byte(\"{}\"), nil\n\t}\n\tv := map[string]interface{}{\"$schema\": string(r)}\n\treturn json.Marshal(v)\n}\n\n// UnmarshalJSON unmarshal this from JSON\nfunc (r *SchemaURL) UnmarshalJSON(data []byte) error {\n\tvar v map[string]interface{}\n\tif err := json.Unmarshal(data, &v); err != nil {\n\t\treturn err\n\t}\n\treturn r.fromMap(v)\n}\n\nfunc (r *SchemaURL) fromMap(v map[string]interface{}) error {\n\tif v == nil {\n\t\treturn nil\n\t}\n\tif vv, ok := v[\"$schema\"]; ok {\n\t\tif str, ok := vv.(string); ok {\n\t\t\tu, err := url.Parse(str)\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\n\t\t\t*r = SchemaURL(u.String())\n\t\t}\n\t}\n\treturn nil\n}\n\n// SchemaProps describes a JSON schema (draft 4)\ntype SchemaProps struct {\n\tID                   string            `json:\"id,omitempty\"`\n\tRef                  Ref               `json:\"-\"`\n\tSchema               SchemaURL         `json:\"-\"`\n\tDescription          string            `json:\"description,omitempty\"`\n\tType                 StringOrArray     `json:\"type,omitempty\"`\n\tNullable             bool              `json:\"nullable,omitempty\"`\n\tFormat               string            `json:\"format,omitempty\"`\n\tTitle                string            `json:\"title,omitempty\"`\n\tDefault              interface{}       `json:\"default,omitempty\"`\n\tMaximum              *float64          `json:\"maximum,omitempty\"`\n\tExclusiveMaximum     bool              `json:\"exclusiveMaximum,omitempty\"`\n\tMinimum              *float64          `json:\"minimum,omitempty\"`\n\tExclusiveMinimum     bool              `json:\"exclusiveMinimum,omitempty\"`\n\tMaxLength            *int64            `json:\"maxLength,omitempty\"`\n\tMinLength            *int64            `json:\"minLength,omitempty\"`\n\tPattern              string            `json:\"pattern,omitempty\"`\n\tMaxItems             *int64            `json:\"maxItems,omitempty\"`\n\tMinItems             *int64            `json:\"minItems,omitempty\"`\n\tUniqueItems          bool              `json:\"uniqueItems,omitempty\"`\n\tMultipleOf           *float64          `json:\"multipleOf,omitempty\"`\n\tEnum                 []interface{}     `json:\"enum,omitempty\"`\n\tMaxProperties        *int64            `json:\"maxProperties,omitempty\"`\n\tMinProperties        *int64            `json:\"minProperties,omitempty\"`\n\tRequired             []string          `json:\"required,omitempty\"`\n\tItems                *SchemaOrArray    `json:\"items,omitempty\"`\n\tAllOf                []Schema          `json:\"allOf,omitempty\"`\n\tOneOf                []Schema          `json:\"oneOf,omitempty\"`\n\tAnyOf                []Schema          `json:\"anyOf,omitempty\"`\n\tNot                  *Schema           `json:\"not,omitempty\"`\n\tProperties           map[string]Schema `json:\"properties,omitempty\"`\n\tAdditionalProperties *SchemaOrBool     `json:\"additionalProperties,omitempty\"`\n\tPatternProperties    map[string]Schema `json:\"patternProperties,omitempty\"`\n\tDependencies         Dependencies      `json:\"dependencies,omitempty\"`\n\tAdditionalItems      *SchemaOrBool     `json:\"additionalItems,omitempty\"`\n\tDefinitions          Definitions       `json:\"definitions,omitempty\"`\n}\n\n// Marshaling structure only, always edit along with corresponding\n// struct (or compilation will fail).\ntype schemaPropsOmitZero struct {\n\tID                   string            `json:\"id,omitempty\"`\n\tRef                  Ref               `json:\"-\"`\n\tSchema               SchemaURL         `json:\"-\"`\n\tDescription          string            `json:\"description,omitempty\"`\n\tType                 StringOrArray     `json:\"type,omitzero\"`\n\tNullable             bool              `json:\"nullable,omitzero\"`\n\tFormat               string            `json:\"format,omitempty\"`\n\tTitle                string            `json:\"title,omitempty\"`\n\tDefault              interface{}       `json:\"default,omitzero\"`\n\tMaximum              *float64          `json:\"maximum,omitempty\"`\n\tExclusiveMaximum     bool              `json:\"exclusiveMaximum,omitzero\"`\n\tMinimum              *float64          `json:\"minimum,omitempty\"`\n\tExclusiveMinimum     bool              `json:\"exclusiveMinimum,omitzero\"`\n\tMaxLength            *int64            `json:\"maxLength,omitempty\"`\n\tMinLength            *int64            `json:\"minLength,omitempty\"`\n\tPattern              string            `json:\"pattern,omitempty\"`\n\tMaxItems             *int64            `json:\"maxItems,omitempty\"`\n\tMinItems             *int64            `json:\"minItems,omitempty\"`\n\tUniqueItems          bool              `json:\"uniqueItems,omitzero\"`\n\tMultipleOf           *float64          `json:\"multipleOf,omitempty\"`\n\tEnum                 []interface{}     `json:\"enum,omitempty\"`\n\tMaxProperties        *int64            `json:\"maxProperties,omitempty\"`\n\tMinProperties        *int64            `json:\"minProperties,omitempty\"`\n\tRequired             []string          `json:\"required,omitempty\"`\n\tItems                *SchemaOrArray    `json:\"items,omitzero\"`\n\tAllOf                []Schema          `json:\"allOf,omitempty\"`\n\tOneOf                []Schema          `json:\"oneOf,omitempty\"`\n\tAnyOf                []Schema          `json:\"anyOf,omitempty\"`\n\tNot                  *Schema           `json:\"not,omitzero\"`\n\tProperties           map[string]Schema `json:\"properties,omitempty\"`\n\tAdditionalProperties *SchemaOrBool     `json:\"additionalProperties,omitzero\"`\n\tPatternProperties    map[string]Schema `json:\"patternProperties,omitempty\"`\n\tDependencies         Dependencies      `json:\"dependencies,omitempty\"`\n\tAdditionalItems      *SchemaOrBool     `json:\"additionalItems,omitzero\"`\n\tDefinitions          Definitions       `json:\"definitions,omitempty\"`\n}\n\n// SwaggerSchemaProps are additional properties supported by swagger schemas, but not JSON-schema (draft 4)\ntype SwaggerSchemaProps struct {\n\tDiscriminator string                 `json:\"discriminator,omitempty\"`\n\tReadOnly      bool                   `json:\"readOnly,omitempty\"`\n\tExternalDocs  *ExternalDocumentation `json:\"externalDocs,omitempty\"`\n\tExample       interface{}            `json:\"example,omitempty\"`\n}\n\n// Marshaling structure only, always edit along with corresponding\n// struct (or compilation will fail).\ntype swaggerSchemaPropsOmitZero struct {\n\tDiscriminator string                 `json:\"discriminator,omitempty\"`\n\tReadOnly      bool                   `json:\"readOnly,omitzero\"`\n\tExternalDocs  *ExternalDocumentation `json:\"externalDocs,omitzero\"`\n\tExample       interface{}            `json:\"example,omitempty\"`\n}\n\n// Schema the schema object allows the definition of input and output data types.\n// These types can be objects, but also primitives and arrays.\n// This object is based on the [JSON Schema Specification Draft 4](http://json-schema.org/)\n// and uses a predefined subset of it.\n// On top of this subset, there are extensions provided by this specification to allow for more complete documentation.\n//\n// For more information: http://goo.gl/8us55a#schemaObject\ntype Schema struct {\n\tVendorExtensible\n\tSchemaProps\n\tSwaggerSchemaProps\n\tExtraProps map[string]interface{} `json:\"-\"`\n}\n\n// WithID sets the id for this schema, allows for chaining\nfunc (s *Schema) WithID(id string) *Schema {\n\ts.ID = id\n\treturn s\n}\n\n// WithTitle sets the title for this schema, allows for chaining\nfunc (s *Schema) WithTitle(title string) *Schema {\n\ts.Title = title\n\treturn s\n}\n\n// WithDescription sets the description for this schema, allows for chaining\nfunc (s *Schema) WithDescription(description string) *Schema {\n\ts.Description = description\n\treturn s\n}\n\n// WithProperties sets the properties for this schema\nfunc (s *Schema) WithProperties(schemas map[string]Schema) *Schema {\n\ts.Properties = schemas\n\treturn s\n}\n\n// SetProperty sets a property on this schema\nfunc (s *Schema) SetProperty(name string, schema Schema) *Schema {\n\tif s.Properties == nil {\n\t\ts.Properties = make(map[string]Schema)\n\t}\n\ts.Properties[name] = schema\n\treturn s\n}\n\n// WithAllOf sets the all of property\nfunc (s *Schema) WithAllOf(schemas ...Schema) *Schema {\n\ts.AllOf = schemas\n\treturn s\n}\n\n// WithMaxProperties sets the max number of properties an object can have\nfunc (s *Schema) WithMaxProperties(max int64) *Schema {\n\ts.MaxProperties = &max\n\treturn s\n}\n\n// WithMinProperties sets the min number of properties an object must have\nfunc (s *Schema) WithMinProperties(min int64) *Schema {\n\ts.MinProperties = &min\n\treturn s\n}\n\n// Typed sets the type of this schema for a single value item\nfunc (s *Schema) Typed(tpe, format string) *Schema {\n\ts.Type = []string{tpe}\n\ts.Format = format\n\treturn s\n}\n\n// AddType adds a type with potential format to the types for this schema\nfunc (s *Schema) AddType(tpe, format string) *Schema {\n\ts.Type = append(s.Type, tpe)\n\tif format != \"\" {\n\t\ts.Format = format\n\t}\n\treturn s\n}\n\n// AsNullable flags this schema as nullable.\nfunc (s *Schema) AsNullable() *Schema {\n\ts.Nullable = true\n\treturn s\n}\n\n// CollectionOf a fluent builder method for an array parameter\nfunc (s *Schema) CollectionOf(items Schema) *Schema {\n\ts.Type = []string{jsonArray}\n\ts.Items = &SchemaOrArray{Schema: &items}\n\treturn s\n}\n\n// WithDefault sets the default value on this parameter\nfunc (s *Schema) WithDefault(defaultValue interface{}) *Schema {\n\ts.Default = defaultValue\n\treturn s\n}\n\n// WithRequired flags this parameter as required\nfunc (s *Schema) WithRequired(items ...string) *Schema {\n\ts.Required = items\n\treturn s\n}\n\n// AddRequired  adds field names to the required properties array\nfunc (s *Schema) AddRequired(items ...string) *Schema {\n\ts.Required = append(s.Required, items...)\n\treturn s\n}\n\n// WithMaxLength sets a max length value\nfunc (s *Schema) WithMaxLength(max int64) *Schema {\n\ts.MaxLength = &max\n\treturn s\n}\n\n// WithMinLength sets a min length value\nfunc (s *Schema) WithMinLength(min int64) *Schema {\n\ts.MinLength = &min\n\treturn s\n}\n\n// WithPattern sets a pattern value\nfunc (s *Schema) WithPattern(pattern string) *Schema {\n\ts.Pattern = pattern\n\treturn s\n}\n\n// WithMultipleOf sets a multiple of value\nfunc (s *Schema) WithMultipleOf(number float64) *Schema {\n\ts.MultipleOf = &number\n\treturn s\n}\n\n// WithMaximum sets a maximum number value\nfunc (s *Schema) WithMaximum(max float64, exclusive bool) *Schema {\n\ts.Maximum = &max\n\ts.ExclusiveMaximum = exclusive\n\treturn s\n}\n\n// WithMinimum sets a minimum number value\nfunc (s *Schema) WithMinimum(min float64, exclusive bool) *Schema {\n\ts.Minimum = &min\n\ts.ExclusiveMinimum = exclusive\n\treturn s\n}\n\n// WithEnum sets a the enum values (replace)\nfunc (s *Schema) WithEnum(values ...interface{}) *Schema {\n\ts.Enum = append([]interface{}{}, values...)\n\treturn s\n}\n\n// WithMaxItems sets the max items\nfunc (s *Schema) WithMaxItems(size int64) *Schema {\n\ts.MaxItems = &size\n\treturn s\n}\n\n// WithMinItems sets the min items\nfunc (s *Schema) WithMinItems(size int64) *Schema {\n\ts.MinItems = &size\n\treturn s\n}\n\n// UniqueValues dictates that this array can only have unique items\nfunc (s *Schema) UniqueValues() *Schema {\n\ts.UniqueItems = true\n\treturn s\n}\n\n// AllowDuplicates this array can have duplicates\nfunc (s *Schema) AllowDuplicates() *Schema {\n\ts.UniqueItems = false\n\treturn s\n}\n\n// AddToAllOf adds a schema to the allOf property\nfunc (s *Schema) AddToAllOf(schemas ...Schema) *Schema {\n\ts.AllOf = append(s.AllOf, schemas...)\n\treturn s\n}\n\n// WithDiscriminator sets the name of the discriminator field\nfunc (s *Schema) WithDiscriminator(discriminator string) *Schema {\n\ts.Discriminator = discriminator\n\treturn s\n}\n\n// AsReadOnly flags this schema as readonly\nfunc (s *Schema) AsReadOnly() *Schema {\n\ts.ReadOnly = true\n\treturn s\n}\n\n// AsWritable flags this schema as writeable (not read-only)\nfunc (s *Schema) AsWritable() *Schema {\n\ts.ReadOnly = false\n\treturn s\n}\n\n// WithExample sets the example for this schema\nfunc (s *Schema) WithExample(example interface{}) *Schema {\n\ts.Example = example\n\treturn s\n}\n\n// WithExternalDocs sets/removes the external docs for/from this schema.\n// When you pass empty strings as params the external documents will be removed.\n// When you pass non-empty string as one value then those values will be used on the external docs object.\n// So when you pass a non-empty description, you should also pass the url and vice versa.\nfunc (s *Schema) WithExternalDocs(description, url string) *Schema {\n\tif description == \"\" && url == \"\" {\n\t\ts.ExternalDocs = nil\n\t\treturn s\n\t}\n\n\tif s.ExternalDocs == nil {\n\t\ts.ExternalDocs = &ExternalDocumentation{}\n\t}\n\ts.ExternalDocs.Description = description\n\ts.ExternalDocs.URL = url\n\treturn s\n}\n\n// MarshalJSON marshal this to JSON\nfunc (s Schema) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(s)\n\t}\n\tb1, err := json.Marshal(s.SchemaProps)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"schema props %v\", err)\n\t}\n\tb2, err := json.Marshal(s.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"vendor props %v\", err)\n\t}\n\tb3, err := s.Ref.MarshalJSON()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"ref prop %v\", err)\n\t}\n\tb4, err := s.Schema.MarshalJSON()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"schema prop %v\", err)\n\t}\n\tb5, err := json.Marshal(s.SwaggerSchemaProps)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"common validations %v\", err)\n\t}\n\tvar b6 []byte\n\tif s.ExtraProps != nil {\n\t\tjj, err := json.Marshal(s.ExtraProps)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"extra props %v\", err)\n\t\t}\n\t\tb6 = jj\n\t}\n\treturn swag.ConcatJSON(b1, b2, b3, b4, b5, b6), nil\n}\n\nfunc (s Schema) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\ttype ArbitraryKeys map[string]interface{}\n\tvar x struct {\n\t\tArbitraryKeys\n\t\tSchemaProps        schemaPropsOmitZero        `json:\",inline\"`\n\t\tSwaggerSchemaProps swaggerSchemaPropsOmitZero `json:\",inline\"`\n\t\tSchema             string                     `json:\"$schema,omitempty\"`\n\t\tRef                string                     `json:\"$ref,omitempty\"`\n\t}\n\tx.ArbitraryKeys = make(map[string]any, len(s.Extensions)+len(s.ExtraProps))\n\tfor k, v := range s.Extensions {\n\t\tif internal.IsExtensionKey(k) {\n\t\t\tx.ArbitraryKeys[k] = v\n\t\t}\n\t}\n\tfor k, v := range s.ExtraProps {\n\t\tx.ArbitraryKeys[k] = v\n\t}\n\tx.SchemaProps = schemaPropsOmitZero(s.SchemaProps)\n\tx.SwaggerSchemaProps = swaggerSchemaPropsOmitZero(s.SwaggerSchemaProps)\n\tx.Ref = s.Ref.String()\n\tx.Schema = string(s.Schema)\n\treturn opts.MarshalNext(enc, x)\n}\n\n// UnmarshalJSON marshal this from JSON\nfunc (s *Schema) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, s)\n\t}\n\n\tprops := struct {\n\t\tSchemaProps\n\t\tSwaggerSchemaProps\n\t}{}\n\tif err := json.Unmarshal(data, &props); err != nil {\n\t\treturn err\n\t}\n\n\tsch := Schema{\n\t\tSchemaProps:        props.SchemaProps,\n\t\tSwaggerSchemaProps: props.SwaggerSchemaProps,\n\t}\n\n\tvar d map[string]interface{}\n\tif err := json.Unmarshal(data, &d); err != nil {\n\t\treturn err\n\t}\n\n\t_ = sch.Ref.fromMap(d)\n\t_ = sch.Schema.fromMap(d)\n\n\tdelete(d, \"$ref\")\n\tdelete(d, \"$schema\")\n\tfor _, pn := range swag.DefaultJSONNameProvider.GetJSONNames(s) {\n\t\tdelete(d, pn)\n\t}\n\n\tfor k, vv := range d {\n\t\tlk := strings.ToLower(k)\n\t\tif strings.HasPrefix(lk, \"x-\") {\n\t\t\tif sch.Extensions == nil {\n\t\t\t\tsch.Extensions = map[string]interface{}{}\n\t\t\t}\n\t\t\tsch.Extensions[k] = vv\n\t\t\tcontinue\n\t\t}\n\t\tif sch.ExtraProps == nil {\n\t\t\tsch.ExtraProps = map[string]interface{}{}\n\t\t}\n\t\tsch.ExtraProps[k] = vv\n\t}\n\n\t*s = sch\n\n\treturn nil\n}\n\nfunc (s *Schema) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tExtensions\n\t\tSchemaProps\n\t\tSwaggerSchemaProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\n\tif err := x.Ref.fromMap(x.Extensions); err != nil {\n\t\treturn err\n\t}\n\n\tif err := x.Schema.fromMap(x.Extensions); err != nil {\n\t\treturn err\n\t}\n\n\tdelete(x.Extensions, \"$ref\")\n\tdelete(x.Extensions, \"$schema\")\n\n\tfor _, pn := range swag.DefaultJSONNameProvider.GetJSONNames(s) {\n\t\tdelete(x.Extensions, pn)\n\t}\n\tif len(x.Extensions) == 0 {\n\t\tx.Extensions = nil\n\t}\n\n\ts.ExtraProps = x.Extensions.sanitizeWithExtra()\n\ts.Extensions = internal.SanitizeExtensions(x.Extensions)\n\ts.SchemaProps = x.SchemaProps\n\ts.SwaggerSchemaProps = x.SwaggerSchemaProps\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/validation/spec/security_scheme.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\n// SecuritySchemeProps describes a swagger security scheme in the securityDefinitions section\ntype SecuritySchemeProps struct {\n\tDescription      string            `json:\"description,omitempty\"`\n\tType             string            `json:\"type\"`\n\tName             string            `json:\"name,omitempty\"`             // api key\n\tIn               string            `json:\"in,omitempty\"`               // api key\n\tFlow             string            `json:\"flow,omitempty\"`             // oauth2\n\tAuthorizationURL string            `json:\"authorizationUrl,omitempty\"` // oauth2\n\tTokenURL         string            `json:\"tokenUrl,omitempty\"`         // oauth2\n\tScopes           map[string]string `json:\"scopes,omitempty\"`           // oauth2\n}\n\n// SecurityScheme allows the definition of a security scheme that can be used by the operations.\n// Supported schemes are basic authentication, an API key (either as a header or as a query parameter)\n// and OAuth2's common flows (implicit, password, application and access code).\n//\n// For more information: http://goo.gl/8us55a#securitySchemeObject\ntype SecurityScheme struct {\n\tVendorExtensible\n\tSecuritySchemeProps\n}\n\n// MarshalJSON marshal this to JSON\nfunc (s SecurityScheme) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(s)\n\t}\n\tb1, err := json.Marshal(s.SecuritySchemeProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(s.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2), nil\n}\n\nfunc (s SecurityScheme) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tExtensions\n\t\tSecuritySchemeProps\n\t}\n\tx.Extensions = internal.SanitizeExtensions(s.Extensions)\n\tx.SecuritySchemeProps = s.SecuritySchemeProps\n\treturn opts.MarshalNext(enc, x)\n}\n\n// UnmarshalJSON marshal this from JSON\nfunc (s *SecurityScheme) UnmarshalJSON(data []byte) error {\n\tif err := json.Unmarshal(data, &s.SecuritySchemeProps); err != nil {\n\t\treturn err\n\t}\n\treturn json.Unmarshal(data, &s.VendorExtensible)\n}\n\nfunc (s *SecurityScheme) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tExtensions\n\t\tSecuritySchemeProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\ts.Extensions = internal.SanitizeExtensions(x.Extensions)\n\ts.SecuritySchemeProps = x.SecuritySchemeProps\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/validation/spec/swagger.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\n// Swagger this is the root document object for the API specification.\n// It combines what previously was the Resource Listing and API Declaration (version 1.2 and earlier)\n// together into one document.\n//\n// For more information: http://goo.gl/8us55a#swagger-object-\ntype Swagger struct {\n\tVendorExtensible\n\tSwaggerProps\n}\n\n// MarshalJSON marshals this swagger structure to json\nfunc (s Swagger) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(s)\n\t}\n\tb1, err := json.Marshal(s.SwaggerProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(s.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2), nil\n}\n\n// MarshalJSON marshals this swagger structure to json\nfunc (s Swagger) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tExtensions\n\t\tSwaggerProps\n\t}\n\tx.Extensions = internal.SanitizeExtensions(s.Extensions)\n\tx.SwaggerProps = s.SwaggerProps\n\treturn opts.MarshalNext(enc, x)\n}\n\n// UnmarshalJSON unmarshals a swagger spec from json\nfunc (s *Swagger) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, s)\n\t}\n\tvar sw Swagger\n\tif err := json.Unmarshal(data, &sw.SwaggerProps); err != nil {\n\t\treturn err\n\t}\n\tif err := json.Unmarshal(data, &sw.VendorExtensible); err != nil {\n\t\treturn err\n\t}\n\t*s = sw\n\treturn nil\n}\n\nfunc (s *Swagger) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\t// Note: If you're willing to make breaking changes, it is possible to\n\t// optimize this and other usages of this pattern:\n\t// https://github.com/kubernetes/kube-openapi/pull/319#discussion_r983165948\n\tvar x struct {\n\t\tExtensions\n\t\tSwaggerProps\n\t}\n\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\ts.Extensions = internal.SanitizeExtensions(x.Extensions)\n\ts.SwaggerProps = x.SwaggerProps\n\treturn nil\n}\n\n// SwaggerProps captures the top-level properties of an Api specification\n//\n// NOTE: validation rules\n// - the scheme, when present must be from [http, https, ws, wss]\n// - BasePath must start with a leading \"/\"\n// - Paths is required\ntype SwaggerProps struct {\n\tID                  string                 `json:\"id,omitempty\"`\n\tConsumes            []string               `json:\"consumes,omitempty\"`\n\tProduces            []string               `json:\"produces,omitempty\"`\n\tSchemes             []string               `json:\"schemes,omitempty\"`\n\tSwagger             string                 `json:\"swagger,omitempty\"`\n\tInfo                *Info                  `json:\"info,omitempty\"`\n\tHost                string                 `json:\"host,omitempty\"`\n\tBasePath            string                 `json:\"basePath,omitempty\"`\n\tPaths               *Paths                 `json:\"paths\"`\n\tDefinitions         Definitions            `json:\"definitions,omitempty\"`\n\tParameters          map[string]Parameter   `json:\"parameters,omitempty\"`\n\tResponses           map[string]Response    `json:\"responses,omitempty\"`\n\tSecurityDefinitions SecurityDefinitions    `json:\"securityDefinitions,omitempty\"`\n\tSecurity            []map[string][]string  `json:\"security,omitempty\"`\n\tTags                []Tag                  `json:\"tags,omitempty\"`\n\tExternalDocs        *ExternalDocumentation `json:\"externalDocs,omitempty\"`\n}\n\n// Dependencies represent a dependencies property\ntype Dependencies map[string]SchemaOrStringArray\n\n// SchemaOrBool represents a schema or boolean value, is biased towards true for the boolean property\ntype SchemaOrBool struct {\n\tAllows bool\n\tSchema *Schema\n}\n\nvar jsTrue = []byte(\"true\")\nvar jsFalse = []byte(\"false\")\n\n// MarshalJSON convert this object to JSON\nfunc (s SchemaOrBool) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(s)\n\t}\n\tif s.Schema != nil {\n\t\treturn json.Marshal(s.Schema)\n\t}\n\n\tif s.Schema == nil && !s.Allows {\n\t\treturn jsFalse, nil\n\t}\n\treturn jsTrue, nil\n}\n\n// MarshalJSON convert this object to JSON\nfunc (s SchemaOrBool) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tif s.Schema != nil {\n\t\treturn opts.MarshalNext(enc, s.Schema)\n\t}\n\n\tif s.Schema == nil && !s.Allows {\n\t\treturn enc.WriteToken(jsonv2.False)\n\t}\n\treturn enc.WriteToken(jsonv2.True)\n}\n\n// UnmarshalJSON converts this bool or schema object from a JSON structure\nfunc (s *SchemaOrBool) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, s)\n\t}\n\n\tvar nw SchemaOrBool\n\tif len(data) > 0 && data[0] == '{' {\n\t\tvar sch Schema\n\t\tif err := json.Unmarshal(data, &sch); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnw.Schema = &sch\n\t\tnw.Allows = true\n\t} else {\n\t\tjson.Unmarshal(data, &nw.Allows)\n\t}\n\t*s = nw\n\treturn nil\n}\n\nfunc (s *SchemaOrBool) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tswitch k := dec.PeekKind(); k {\n\tcase '{':\n\t\terr := opts.UnmarshalNext(dec, &s.Schema)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ts.Allows = true\n\t\treturn nil\n\tcase 't', 'f':\n\t\terr := opts.UnmarshalNext(dec, &s.Allows)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\tdefault:\n\t\treturn fmt.Errorf(\"expected object or bool, not '%v'\", k.String())\n\t}\n}\n\n// SchemaOrStringArray represents a schema or a string array\ntype SchemaOrStringArray struct {\n\tSchema   *Schema\n\tProperty []string\n}\n\n// MarshalJSON converts this schema object or array into JSON structure\nfunc (s SchemaOrStringArray) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(s)\n\t}\n\tif len(s.Property) > 0 {\n\t\treturn json.Marshal(s.Property)\n\t}\n\tif s.Schema != nil {\n\t\treturn json.Marshal(s.Schema)\n\t}\n\treturn []byte(\"null\"), nil\n}\n\n// MarshalJSON converts this schema object or array into JSON structure\nfunc (s SchemaOrStringArray) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tif len(s.Property) > 0 {\n\t\treturn opts.MarshalNext(enc, s.Property)\n\t}\n\tif s.Schema != nil {\n\t\treturn opts.MarshalNext(enc, s.Schema)\n\t}\n\treturn enc.WriteToken(jsonv2.Null)\n}\n\n// UnmarshalJSON converts this schema object or array from a JSON structure\nfunc (s *SchemaOrStringArray) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, s)\n\t}\n\n\tvar first byte\n\tif len(data) > 1 {\n\t\tfirst = data[0]\n\t}\n\tvar nw SchemaOrStringArray\n\tif first == '{' {\n\t\tvar sch Schema\n\t\tif err := json.Unmarshal(data, &sch); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnw.Schema = &sch\n\t}\n\tif first == '[' {\n\t\tif err := json.Unmarshal(data, &nw.Property); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\t*s = nw\n\treturn nil\n}\n\nfunc (s *SchemaOrStringArray) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tswitch dec.PeekKind() {\n\tcase '{':\n\t\treturn opts.UnmarshalNext(dec, &s.Schema)\n\tcase '[':\n\t\treturn opts.UnmarshalNext(dec, &s.Property)\n\tdefault:\n\t\t_, err := dec.ReadValue()\n\t\treturn err\n\t}\n}\n\n// Definitions contains the models explicitly defined in this spec\n// An object to hold data types that can be consumed and produced by operations.\n// These data types can be primitives, arrays or models.\n//\n// For more information: http://goo.gl/8us55a#definitionsObject\ntype Definitions map[string]Schema\n\n// SecurityDefinitions a declaration of the security schemes available to be used in the specification.\n// This does not enforce the security schemes on the operations and only serves to provide\n// the relevant details for each scheme.\n//\n// For more information: http://goo.gl/8us55a#securityDefinitionsObject\ntype SecurityDefinitions map[string]*SecurityScheme\n\n// StringOrArray represents a value that can either be a string\n// or an array of strings. Mainly here for serialization purposes\ntype StringOrArray []string\n\n// Contains returns true when the value is contained in the slice\nfunc (s StringOrArray) Contains(value string) bool {\n\tfor _, str := range s {\n\t\tif str == value {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// UnmarshalJSON unmarshals this string or array object from a JSON array or JSON string\nfunc (s *StringOrArray) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, s)\n\t}\n\n\tvar first byte\n\tif len(data) > 1 {\n\t\tfirst = data[0]\n\t}\n\n\tif first == '[' {\n\t\tvar parsed []string\n\t\tif err := json.Unmarshal(data, &parsed); err != nil {\n\t\t\treturn err\n\t\t}\n\t\t*s = StringOrArray(parsed)\n\t\treturn nil\n\t}\n\n\tvar single interface{}\n\tif err := json.Unmarshal(data, &single); err != nil {\n\t\treturn err\n\t}\n\tif single == nil {\n\t\treturn nil\n\t}\n\tswitch v := single.(type) {\n\tcase string:\n\t\t*s = StringOrArray([]string{v})\n\t\treturn nil\n\tdefault:\n\t\treturn fmt.Errorf(\"only string or array is allowed, not %T\", single)\n\t}\n}\n\nfunc (s *StringOrArray) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tswitch k := dec.PeekKind(); k {\n\tcase '[':\n\t\t*s = StringOrArray{}\n\t\treturn opts.UnmarshalNext(dec, (*[]string)(s))\n\tcase '\"':\n\t\t*s = StringOrArray{\"\"}\n\t\treturn opts.UnmarshalNext(dec, &(*s)[0])\n\tcase 'n':\n\t\t// Throw out null token\n\t\t_, _ = dec.ReadToken()\n\t\treturn nil\n\tdefault:\n\t\treturn fmt.Errorf(\"expected string or array, not '%v'\", k.String())\n\t}\n}\n\n// MarshalJSON converts this string or array to a JSON array or JSON string\nfunc (s StringOrArray) MarshalJSON() ([]byte, error) {\n\tif len(s) == 1 {\n\t\treturn json.Marshal([]string(s)[0])\n\t}\n\treturn json.Marshal([]string(s))\n}\n\n// SchemaOrArray represents a value that can either be a Schema\n// or an array of Schema. Mainly here for serialization purposes\ntype SchemaOrArray struct {\n\tSchema  *Schema\n\tSchemas []Schema\n}\n\n// Len returns the number of schemas in this property\nfunc (s SchemaOrArray) Len() int {\n\tif s.Schema != nil {\n\t\treturn 1\n\t}\n\treturn len(s.Schemas)\n}\n\n// ContainsType returns true when one of the schemas is of the specified type\nfunc (s *SchemaOrArray) ContainsType(name string) bool {\n\tif s.Schema != nil {\n\t\treturn s.Schema.Type != nil && s.Schema.Type.Contains(name)\n\t}\n\treturn false\n}\n\n// MarshalJSON converts this schema object or array into JSON structure\nfunc (s SchemaOrArray) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(s)\n\t}\n\tif s.Schemas != nil {\n\t\treturn json.Marshal(s.Schemas)\n\t}\n\treturn json.Marshal(s.Schema)\n}\n\n// MarshalJSON converts this schema object or array into JSON structure\nfunc (s SchemaOrArray) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tif s.Schemas != nil {\n\t\treturn opts.MarshalNext(enc, s.Schemas)\n\t}\n\treturn opts.MarshalNext(enc, s.Schema)\n}\n\n// UnmarshalJSON converts this schema object or array from a JSON structure\nfunc (s *SchemaOrArray) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, s)\n\t}\n\n\tvar nw SchemaOrArray\n\tvar first byte\n\tif len(data) > 1 {\n\t\tfirst = data[0]\n\t}\n\tif first == '{' {\n\t\tvar sch Schema\n\t\tif err := json.Unmarshal(data, &sch); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnw.Schema = &sch\n\t}\n\tif first == '[' {\n\t\tif err := json.Unmarshal(data, &nw.Schemas); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\t*s = nw\n\treturn nil\n}\n\nfunc (s *SchemaOrArray) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tswitch dec.PeekKind() {\n\tcase '{':\n\t\treturn opts.UnmarshalNext(dec, &s.Schema)\n\tcase '[':\n\t\treturn opts.UnmarshalNext(dec, &s.Schemas)\n\tdefault:\n\t\t_, err := dec.ReadValue()\n\t\treturn err\n\t}\n}\n"
  },
  {
    "path": "vendor/k8s.io/kube-openapi/pkg/validation/spec/tag.go",
    "content": "// Copyright 2015 go-swagger maintainers\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//    http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\npackage spec\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/go-openapi/swag\"\n\t\"k8s.io/kube-openapi/pkg/internal\"\n\tjsonv2 \"k8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\"\n)\n\n// TagProps describe a tag entry in the top level tags section of a swagger spec\ntype TagProps struct {\n\tDescription  string                 `json:\"description,omitempty\"`\n\tName         string                 `json:\"name,omitempty\"`\n\tExternalDocs *ExternalDocumentation `json:\"externalDocs,omitempty\"`\n}\n\n// Tag allows adding meta data to a single tag that is used by the\n// [Operation Object](http://goo.gl/8us55a#operationObject).\n// It is not mandatory to have a Tag Object per tag used there.\n//\n// For more information: http://goo.gl/8us55a#tagObject\ntype Tag struct {\n\tVendorExtensible\n\tTagProps\n}\n\n// MarshalJSON marshal this to JSON\nfunc (t Tag) MarshalJSON() ([]byte, error) {\n\tif internal.UseOptimizedJSONMarshaling {\n\t\treturn internal.DeterministicMarshal(t)\n\t}\n\tb1, err := json.Marshal(t.TagProps)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2, err := json.Marshal(t.VendorExtensible)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn swag.ConcatJSON(b1, b2), nil\n}\n\nfunc (t Tag) MarshalNextJSON(opts jsonv2.MarshalOptions, enc *jsonv2.Encoder) error {\n\tvar x struct {\n\t\tExtensions\n\t\tTagProps\n\t}\n\tx.Extensions = internal.SanitizeExtensions(t.Extensions)\n\tx.TagProps = t.TagProps\n\treturn opts.MarshalNext(enc, x)\n}\n\n// UnmarshalJSON marshal this from JSON\nfunc (t *Tag) UnmarshalJSON(data []byte) error {\n\tif internal.UseOptimizedJSONUnmarshaling {\n\t\treturn jsonv2.Unmarshal(data, t)\n\t}\n\n\tif err := json.Unmarshal(data, &t.TagProps); err != nil {\n\t\treturn err\n\t}\n\treturn json.Unmarshal(data, &t.VendorExtensible)\n}\n\nfunc (t *Tag) UnmarshalNextJSON(opts jsonv2.UnmarshalOptions, dec *jsonv2.Decoder) error {\n\tvar x struct {\n\t\tExtensions\n\t\tTagProps\n\t}\n\tif err := opts.UnmarshalNext(dec, &x); err != nil {\n\t\treturn err\n\t}\n\tt.Extensions = internal.SanitizeExtensions(x.Extensions)\n\tt.TagProps = x.TagProps\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/utils/LICENSE",
    "content": "\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/k8s.io/utils/buffer/ring_growing.go",
    "content": "/*\nCopyright 2017 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage buffer\n\n// RingGrowing is a growing ring buffer.\n// Not thread safe.\ntype RingGrowing struct {\n\tdata     []interface{}\n\tn        int // Size of Data\n\tbeg      int // First available element\n\treadable int // Number of data items available\n}\n\n// NewRingGrowing constructs a new RingGrowing instance with provided parameters.\nfunc NewRingGrowing(initialSize int) *RingGrowing {\n\treturn &RingGrowing{\n\t\tdata: make([]interface{}, initialSize),\n\t\tn:    initialSize,\n\t}\n}\n\n// ReadOne reads (consumes) first item from the buffer if it is available, otherwise returns false.\nfunc (r *RingGrowing) ReadOne() (data interface{}, ok bool) {\n\tif r.readable == 0 {\n\t\treturn nil, false\n\t}\n\tr.readable--\n\telement := r.data[r.beg]\n\tr.data[r.beg] = nil // Remove reference to the object to help GC\n\tif r.beg == r.n-1 {\n\t\t// Was the last element\n\t\tr.beg = 0\n\t} else {\n\t\tr.beg++\n\t}\n\treturn element, true\n}\n\n// WriteOne adds an item to the end of the buffer, growing it if it is full.\nfunc (r *RingGrowing) WriteOne(data interface{}) {\n\tif r.readable == r.n {\n\t\t// Time to grow\n\t\tnewN := r.n * 2\n\t\tnewData := make([]interface{}, newN)\n\t\tto := r.beg + r.readable\n\t\tif to <= r.n {\n\t\t\tcopy(newData, r.data[r.beg:to])\n\t\t} else {\n\t\t\tcopied := copy(newData, r.data[r.beg:])\n\t\t\tcopy(newData[copied:], r.data[:(to%r.n)])\n\t\t}\n\t\tr.beg = 0\n\t\tr.data = newData\n\t\tr.n = newN\n\t}\n\tr.data[(r.readable+r.beg)%r.n] = data\n\tr.readable++\n}\n"
  },
  {
    "path": "vendor/k8s.io/utils/clock/README.md",
    "content": "# Clock\n\nThis package provides an interface for time-based operations.  It allows\nmocking time for testing.\n"
  },
  {
    "path": "vendor/k8s.io/utils/clock/clock.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage clock\n\nimport \"time\"\n\n// PassiveClock allows for injecting fake or real clocks into code\n// that needs to read the current time but does not support scheduling\n// activity in the future.\ntype PassiveClock interface {\n\tNow() time.Time\n\tSince(time.Time) time.Duration\n}\n\n// Clock allows for injecting fake or real clocks into code that\n// needs to do arbitrary things based on time.\ntype Clock interface {\n\tPassiveClock\n\t// After returns the channel of a new Timer.\n\t// This method does not allow to free/GC the backing timer before it fires. Use\n\t// NewTimer instead.\n\tAfter(d time.Duration) <-chan time.Time\n\t// NewTimer returns a new Timer.\n\tNewTimer(d time.Duration) Timer\n\t// Sleep sleeps for the provided duration d.\n\t// Consider making the sleep interruptible by using 'select' on a context channel and a timer channel.\n\tSleep(d time.Duration)\n\t// Tick returns the channel of a new Ticker.\n\t// This method does not allow to free/GC the backing ticker. Use\n\t// NewTicker from WithTicker instead.\n\tTick(d time.Duration) <-chan time.Time\n}\n\n// WithTicker allows for injecting fake or real clocks into code that\n// needs to do arbitrary things based on time.\ntype WithTicker interface {\n\tClock\n\t// NewTicker returns a new Ticker.\n\tNewTicker(time.Duration) Ticker\n}\n\n// WithDelayedExecution allows for injecting fake or real clocks into\n// code that needs to make use of AfterFunc functionality.\ntype WithDelayedExecution interface {\n\tClock\n\t// AfterFunc executes f in its own goroutine after waiting\n\t// for d duration and returns a Timer whose channel can be\n\t// closed by calling Stop() on the Timer.\n\tAfterFunc(d time.Duration, f func()) Timer\n}\n\n// WithTickerAndDelayedExecution allows for injecting fake or real clocks\n// into code that needs Ticker and AfterFunc functionality\ntype WithTickerAndDelayedExecution interface {\n\tWithTicker\n\t// AfterFunc executes f in its own goroutine after waiting\n\t// for d duration and returns a Timer whose channel can be\n\t// closed by calling Stop() on the Timer.\n\tAfterFunc(d time.Duration, f func()) Timer\n}\n\n// Ticker defines the Ticker interface.\ntype Ticker interface {\n\tC() <-chan time.Time\n\tStop()\n}\n\nvar _ = WithTicker(RealClock{})\n\n// RealClock really calls time.Now()\ntype RealClock struct{}\n\n// Now returns the current time.\nfunc (RealClock) Now() time.Time {\n\treturn time.Now()\n}\n\n// Since returns time since the specified timestamp.\nfunc (RealClock) Since(ts time.Time) time.Duration {\n\treturn time.Since(ts)\n}\n\n// After is the same as time.After(d).\n// This method does not allow to free/GC the backing timer before it fires. Use\n// NewTimer instead.\nfunc (RealClock) After(d time.Duration) <-chan time.Time {\n\treturn time.After(d)\n}\n\n// NewTimer is the same as time.NewTimer(d)\nfunc (RealClock) NewTimer(d time.Duration) Timer {\n\treturn &realTimer{\n\t\ttimer: time.NewTimer(d),\n\t}\n}\n\n// AfterFunc is the same as time.AfterFunc(d, f).\nfunc (RealClock) AfterFunc(d time.Duration, f func()) Timer {\n\treturn &realTimer{\n\t\ttimer: time.AfterFunc(d, f),\n\t}\n}\n\n// Tick is the same as time.Tick(d)\n// This method does not allow to free/GC the backing ticker. Use\n// NewTicker instead.\nfunc (RealClock) Tick(d time.Duration) <-chan time.Time {\n\treturn time.Tick(d)\n}\n\n// NewTicker returns a new Ticker.\nfunc (RealClock) NewTicker(d time.Duration) Ticker {\n\treturn &realTicker{\n\t\tticker: time.NewTicker(d),\n\t}\n}\n\n// Sleep is the same as time.Sleep(d)\n// Consider making the sleep interruptible by using 'select' on a context channel and a timer channel.\nfunc (RealClock) Sleep(d time.Duration) {\n\ttime.Sleep(d)\n}\n\n// Timer allows for injecting fake or real timers into code that\n// needs to do arbitrary things based on time.\ntype Timer interface {\n\tC() <-chan time.Time\n\tStop() bool\n\tReset(d time.Duration) bool\n}\n\nvar _ = Timer(&realTimer{})\n\n// realTimer is backed by an actual time.Timer.\ntype realTimer struct {\n\ttimer *time.Timer\n}\n\n// C returns the underlying timer's channel.\nfunc (r *realTimer) C() <-chan time.Time {\n\treturn r.timer.C\n}\n\n// Stop calls Stop() on the underlying timer.\nfunc (r *realTimer) Stop() bool {\n\treturn r.timer.Stop()\n}\n\n// Reset calls Reset() on the underlying timer.\nfunc (r *realTimer) Reset(d time.Duration) bool {\n\treturn r.timer.Reset(d)\n}\n\ntype realTicker struct {\n\tticker *time.Ticker\n}\n\nfunc (r *realTicker) C() <-chan time.Time {\n\treturn r.ticker.C\n}\n\nfunc (r *realTicker) Stop() {\n\tr.ticker.Stop()\n}\n"
  },
  {
    "path": "vendor/k8s.io/utils/clock/testing/fake_clock.go",
    "content": "/*\nCopyright 2014 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage testing\n\nimport (\n\t\"sync\"\n\t\"time\"\n\n\t\"k8s.io/utils/clock\"\n)\n\nvar (\n\t_ = clock.PassiveClock(&FakePassiveClock{})\n\t_ = clock.WithTicker(&FakeClock{})\n\t_ = clock.Clock(&IntervalClock{})\n)\n\n// FakePassiveClock implements PassiveClock, but returns an arbitrary time.\ntype FakePassiveClock struct {\n\tlock sync.RWMutex\n\ttime time.Time\n}\n\n// FakeClock implements clock.Clock, but returns an arbitrary time.\ntype FakeClock struct {\n\tFakePassiveClock\n\n\t// waiters are waiting for the fake time to pass their specified time\n\twaiters []*fakeClockWaiter\n}\n\ntype fakeClockWaiter struct {\n\ttargetTime    time.Time\n\tstepInterval  time.Duration\n\tskipIfBlocked bool\n\tdestChan      chan time.Time\n\tfired         bool\n\tafterFunc     func()\n}\n\n// NewFakePassiveClock returns a new FakePassiveClock.\nfunc NewFakePassiveClock(t time.Time) *FakePassiveClock {\n\treturn &FakePassiveClock{\n\t\ttime: t,\n\t}\n}\n\n// NewFakeClock constructs a fake clock set to the provided time.\nfunc NewFakeClock(t time.Time) *FakeClock {\n\treturn &FakeClock{\n\t\tFakePassiveClock: *NewFakePassiveClock(t),\n\t}\n}\n\n// Now returns f's time.\nfunc (f *FakePassiveClock) Now() time.Time {\n\tf.lock.RLock()\n\tdefer f.lock.RUnlock()\n\treturn f.time\n}\n\n// Since returns time since the time in f.\nfunc (f *FakePassiveClock) Since(ts time.Time) time.Duration {\n\tf.lock.RLock()\n\tdefer f.lock.RUnlock()\n\treturn f.time.Sub(ts)\n}\n\n// SetTime sets the time on the FakePassiveClock.\nfunc (f *FakePassiveClock) SetTime(t time.Time) {\n\tf.lock.Lock()\n\tdefer f.lock.Unlock()\n\tf.time = t\n}\n\n// After is the fake version of time.After(d).\nfunc (f *FakeClock) After(d time.Duration) <-chan time.Time {\n\tf.lock.Lock()\n\tdefer f.lock.Unlock()\n\tstopTime := f.time.Add(d)\n\tch := make(chan time.Time, 1) // Don't block!\n\tf.waiters = append(f.waiters, &fakeClockWaiter{\n\t\ttargetTime: stopTime,\n\t\tdestChan:   ch,\n\t})\n\treturn ch\n}\n\n// NewTimer constructs a fake timer, akin to time.NewTimer(d).\nfunc (f *FakeClock) NewTimer(d time.Duration) clock.Timer {\n\tf.lock.Lock()\n\tdefer f.lock.Unlock()\n\tstopTime := f.time.Add(d)\n\tch := make(chan time.Time, 1) // Don't block!\n\ttimer := &fakeTimer{\n\t\tfakeClock: f,\n\t\twaiter: fakeClockWaiter{\n\t\t\ttargetTime: stopTime,\n\t\t\tdestChan:   ch,\n\t\t},\n\t}\n\tf.waiters = append(f.waiters, &timer.waiter)\n\treturn timer\n}\n\n// AfterFunc is the Fake version of time.AfterFunc(d, cb).\nfunc (f *FakeClock) AfterFunc(d time.Duration, cb func()) clock.Timer {\n\tf.lock.Lock()\n\tdefer f.lock.Unlock()\n\tstopTime := f.time.Add(d)\n\tch := make(chan time.Time, 1) // Don't block!\n\n\ttimer := &fakeTimer{\n\t\tfakeClock: f,\n\t\twaiter: fakeClockWaiter{\n\t\t\ttargetTime: stopTime,\n\t\t\tdestChan:   ch,\n\t\t\tafterFunc:  cb,\n\t\t},\n\t}\n\tf.waiters = append(f.waiters, &timer.waiter)\n\treturn timer\n}\n\n// Tick constructs a fake ticker, akin to time.Tick\nfunc (f *FakeClock) Tick(d time.Duration) <-chan time.Time {\n\tif d <= 0 {\n\t\treturn nil\n\t}\n\tf.lock.Lock()\n\tdefer f.lock.Unlock()\n\ttickTime := f.time.Add(d)\n\tch := make(chan time.Time, 1) // hold one tick\n\tf.waiters = append(f.waiters, &fakeClockWaiter{\n\t\ttargetTime:    tickTime,\n\t\tstepInterval:  d,\n\t\tskipIfBlocked: true,\n\t\tdestChan:      ch,\n\t})\n\n\treturn ch\n}\n\n// NewTicker returns a new Ticker.\nfunc (f *FakeClock) NewTicker(d time.Duration) clock.Ticker {\n\tf.lock.Lock()\n\tdefer f.lock.Unlock()\n\ttickTime := f.time.Add(d)\n\tch := make(chan time.Time, 1) // hold one tick\n\tf.waiters = append(f.waiters, &fakeClockWaiter{\n\t\ttargetTime:    tickTime,\n\t\tstepInterval:  d,\n\t\tskipIfBlocked: true,\n\t\tdestChan:      ch,\n\t})\n\n\treturn &fakeTicker{\n\t\tc: ch,\n\t}\n}\n\n// Step moves the clock by Duration and notifies anyone that's called After,\n// Tick, or NewTimer.\nfunc (f *FakeClock) Step(d time.Duration) {\n\tf.lock.Lock()\n\tdefer f.lock.Unlock()\n\tf.setTimeLocked(f.time.Add(d))\n}\n\n// SetTime sets the time.\nfunc (f *FakeClock) SetTime(t time.Time) {\n\tf.lock.Lock()\n\tdefer f.lock.Unlock()\n\tf.setTimeLocked(t)\n}\n\n// Actually changes the time and checks any waiters. f must be write-locked.\nfunc (f *FakeClock) setTimeLocked(t time.Time) {\n\tf.time = t\n\tnewWaiters := make([]*fakeClockWaiter, 0, len(f.waiters))\n\tfor i := range f.waiters {\n\t\tw := f.waiters[i]\n\t\tif !w.targetTime.After(t) {\n\t\t\tif w.skipIfBlocked {\n\t\t\t\tselect {\n\t\t\t\tcase w.destChan <- t:\n\t\t\t\t\tw.fired = true\n\t\t\t\tdefault:\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tw.destChan <- t\n\t\t\t\tw.fired = true\n\t\t\t}\n\n\t\t\tif w.afterFunc != nil {\n\t\t\t\tw.afterFunc()\n\t\t\t}\n\n\t\t\tif w.stepInterval > 0 {\n\t\t\t\tfor !w.targetTime.After(t) {\n\t\t\t\t\tw.targetTime = w.targetTime.Add(w.stepInterval)\n\t\t\t\t}\n\t\t\t\tnewWaiters = append(newWaiters, w)\n\t\t\t}\n\n\t\t} else {\n\t\t\tnewWaiters = append(newWaiters, f.waiters[i])\n\t\t}\n\t}\n\tf.waiters = newWaiters\n}\n\n// HasWaiters returns true if After or AfterFunc has been called on f but not yet satisfied (so you can\n// write race-free tests).\nfunc (f *FakeClock) HasWaiters() bool {\n\tf.lock.RLock()\n\tdefer f.lock.RUnlock()\n\treturn len(f.waiters) > 0\n}\n\n// Sleep is akin to time.Sleep\nfunc (f *FakeClock) Sleep(d time.Duration) {\n\tf.Step(d)\n}\n\n// IntervalClock implements clock.PassiveClock, but each invocation of Now steps the clock forward the specified duration.\n// IntervalClock technically implements the other methods of clock.Clock, but each implementation is just a panic.\n//\n// Deprecated: See SimpleIntervalClock for an alternative that only has the methods of PassiveClock.\ntype IntervalClock struct {\n\tTime     time.Time\n\tDuration time.Duration\n}\n\n// Now returns i's time.\nfunc (i *IntervalClock) Now() time.Time {\n\ti.Time = i.Time.Add(i.Duration)\n\treturn i.Time\n}\n\n// Since returns time since the time in i.\nfunc (i *IntervalClock) Since(ts time.Time) time.Duration {\n\treturn i.Time.Sub(ts)\n}\n\n// After is unimplemented, will panic.\n// TODO: make interval clock use FakeClock so this can be implemented.\nfunc (*IntervalClock) After(d time.Duration) <-chan time.Time {\n\tpanic(\"IntervalClock doesn't implement After\")\n}\n\n// NewTimer is unimplemented, will panic.\n// TODO: make interval clock use FakeClock so this can be implemented.\nfunc (*IntervalClock) NewTimer(d time.Duration) clock.Timer {\n\tpanic(\"IntervalClock doesn't implement NewTimer\")\n}\n\n// AfterFunc is unimplemented, will panic.\n// TODO: make interval clock use FakeClock so this can be implemented.\nfunc (*IntervalClock) AfterFunc(d time.Duration, f func()) clock.Timer {\n\tpanic(\"IntervalClock doesn't implement AfterFunc\")\n}\n\n// Tick is unimplemented, will panic.\n// TODO: make interval clock use FakeClock so this can be implemented.\nfunc (*IntervalClock) Tick(d time.Duration) <-chan time.Time {\n\tpanic(\"IntervalClock doesn't implement Tick\")\n}\n\n// NewTicker has no implementation yet and is omitted.\n// TODO: make interval clock use FakeClock so this can be implemented.\nfunc (*IntervalClock) NewTicker(d time.Duration) clock.Ticker {\n\tpanic(\"IntervalClock doesn't implement NewTicker\")\n}\n\n// Sleep is unimplemented, will panic.\nfunc (*IntervalClock) Sleep(d time.Duration) {\n\tpanic(\"IntervalClock doesn't implement Sleep\")\n}\n\nvar _ = clock.Timer(&fakeTimer{})\n\n// fakeTimer implements clock.Timer based on a FakeClock.\ntype fakeTimer struct {\n\tfakeClock *FakeClock\n\twaiter    fakeClockWaiter\n}\n\n// C returns the channel that notifies when this timer has fired.\nfunc (f *fakeTimer) C() <-chan time.Time {\n\treturn f.waiter.destChan\n}\n\n// Stop stops the timer and returns true if the timer has not yet fired, or false otherwise.\nfunc (f *fakeTimer) Stop() bool {\n\tf.fakeClock.lock.Lock()\n\tdefer f.fakeClock.lock.Unlock()\n\n\tnewWaiters := make([]*fakeClockWaiter, 0, len(f.fakeClock.waiters))\n\tfor i := range f.fakeClock.waiters {\n\t\tw := f.fakeClock.waiters[i]\n\t\tif w != &f.waiter {\n\t\t\tnewWaiters = append(newWaiters, w)\n\t\t}\n\t}\n\n\tf.fakeClock.waiters = newWaiters\n\n\treturn !f.waiter.fired\n}\n\n// Reset resets the timer to the fake clock's \"now\" + d. It returns true if the timer has not yet\n// fired, or false otherwise.\nfunc (f *fakeTimer) Reset(d time.Duration) bool {\n\tf.fakeClock.lock.Lock()\n\tdefer f.fakeClock.lock.Unlock()\n\n\tactive := !f.waiter.fired\n\n\tf.waiter.fired = false\n\tf.waiter.targetTime = f.fakeClock.time.Add(d)\n\n\tvar isWaiting bool\n\tfor i := range f.fakeClock.waiters {\n\t\tw := f.fakeClock.waiters[i]\n\t\tif w == &f.waiter {\n\t\t\tisWaiting = true\n\t\t\tbreak\n\t\t}\n\t}\n\tif !isWaiting {\n\t\tf.fakeClock.waiters = append(f.fakeClock.waiters, &f.waiter)\n\t}\n\n\treturn active\n}\n\ntype fakeTicker struct {\n\tc <-chan time.Time\n}\n\nfunc (t *fakeTicker) C() <-chan time.Time {\n\treturn t.c\n}\n\nfunc (t *fakeTicker) Stop() {\n}\n"
  },
  {
    "path": "vendor/k8s.io/utils/clock/testing/simple_interval_clock.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage testing\n\nimport (\n\t\"time\"\n\n\t\"k8s.io/utils/clock\"\n)\n\nvar (\n\t_ = clock.PassiveClock(&SimpleIntervalClock{})\n)\n\n// SimpleIntervalClock implements clock.PassiveClock, but each invocation of Now steps the clock forward the specified duration\ntype SimpleIntervalClock struct {\n\tTime     time.Time\n\tDuration time.Duration\n}\n\n// Now returns i's time.\nfunc (i *SimpleIntervalClock) Now() time.Time {\n\ti.Time = i.Time.Add(i.Duration)\n\treturn i.Time\n}\n\n// Since returns time since the time in i.\nfunc (i *SimpleIntervalClock) Since(ts time.Time) time.Duration {\n\treturn i.Time.Sub(ts)\n}\n"
  },
  {
    "path": "vendor/k8s.io/utils/internal/third_party/forked/golang/LICENSE",
    "content": "Copyright (c) 2012 The Go Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/k8s.io/utils/internal/third_party/forked/golang/PATENTS",
    "content": "Additional IP Rights Grant (Patents)\n\n\"This implementation\" means the copyrightable works distributed by\nGoogle as part of the Go project.\n\nGoogle hereby grants to You a perpetual, worldwide, non-exclusive,\nno-charge, royalty-free, irrevocable (except as stated in this section)\npatent license to make, have made, use, offer to sell, sell, import,\ntransfer and otherwise run, modify and propagate the contents of this\nimplementation of Go, where such license applies only to those patent\nclaims, both currently owned or controlled by Google and acquired in\nthe future, licensable by Google that are necessarily infringed by this\nimplementation of Go.  This grant does not include claims that would be\ninfringed only as a consequence of further modification of this\nimplementation.  If you or your agent or exclusive licensee institute or\norder or agree to the institution of patent litigation against any\nentity (including a cross-claim or counterclaim in a lawsuit) alleging\nthat this implementation of Go or any code incorporated within this\nimplementation of Go constitutes direct or contributory patent\ninfringement, or inducement of patent infringement, then any patent\nrights granted to you under this License for this implementation of Go\nshall terminate as of the date such litigation is filed.\n"
  },
  {
    "path": "vendor/k8s.io/utils/internal/third_party/forked/golang/net/ip.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// IP address manipulations\n//\n// IPv4 addresses are 4 bytes; IPv6 addresses are 16 bytes.\n// An IPv4 address can be converted to an IPv6 address by\n// adding a canonical prefix (10 zeros, 2 0xFFs).\n// This library accepts either size of byte slice but always\n// returns 16-byte addresses.\n\npackage net\n\n///////////////////////////////////////////////////////////////////////////////\n// NOTE: This file was forked because we need to maintain backwards-compatible\n// IP parsing logic, which was changed in a correct but incompatible way in\n// go-1.17.\n//\n// See https://issue.k8s.io/100895\n///////////////////////////////////////////////////////////////////////////////\n\nimport (\n\tstdnet \"net\"\n)\n\n//\n// Lean on the standard net lib as much as possible.\n//\n\ntype IP = stdnet.IP\ntype IPNet = stdnet.IPNet\ntype ParseError = stdnet.ParseError\n\nconst IPv4len = stdnet.IPv4len\nconst IPv6len = stdnet.IPv6len\n\nvar CIDRMask = stdnet.CIDRMask\nvar IPv4 = stdnet.IPv4\n\n// Parse IPv4 address (d.d.d.d).\nfunc parseIPv4(s string) IP {\n\tvar p [IPv4len]byte\n\tfor i := 0; i < IPv4len; i++ {\n\t\tif len(s) == 0 {\n\t\t\t// Missing octets.\n\t\t\treturn nil\n\t\t}\n\t\tif i > 0 {\n\t\t\tif s[0] != '.' {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\ts = s[1:]\n\t\t}\n\t\tn, c, ok := dtoi(s)\n\t\tif !ok || n > 0xFF {\n\t\t\treturn nil\n\t\t}\n\t\t//\n\t\t// NOTE: This correct check was added for go-1.17, but is a\n\t\t// backwards-incompatible change for kubernetes users, who might have\n\t\t// stored data which uses these leading zeroes already.\n\t\t//\n\t\t// See https://issue.k8s.io/100895\n\t\t//\n\t\t//if c > 1 && s[0] == '0' {\n\t\t//\t// Reject non-zero components with leading zeroes.\n\t\t//\treturn nil\n\t\t//}\n\t\ts = s[c:]\n\t\tp[i] = byte(n)\n\t}\n\tif len(s) != 0 {\n\t\treturn nil\n\t}\n\treturn IPv4(p[0], p[1], p[2], p[3])\n}\n\n// parseIPv6 parses s as a literal IPv6 address described in RFC 4291\n// and RFC 5952.\nfunc parseIPv6(s string) (ip IP) {\n\tip = make(IP, IPv6len)\n\tellipsis := -1 // position of ellipsis in ip\n\n\t// Might have leading ellipsis\n\tif len(s) >= 2 && s[0] == ':' && s[1] == ':' {\n\t\tellipsis = 0\n\t\ts = s[2:]\n\t\t// Might be only ellipsis\n\t\tif len(s) == 0 {\n\t\t\treturn ip\n\t\t}\n\t}\n\n\t// Loop, parsing hex numbers followed by colon.\n\ti := 0\n\tfor i < IPv6len {\n\t\t// Hex number.\n\t\tn, c, ok := xtoi(s)\n\t\tif !ok || n > 0xFFFF {\n\t\t\treturn nil\n\t\t}\n\n\t\t// If followed by dot, might be in trailing IPv4.\n\t\tif c < len(s) && s[c] == '.' {\n\t\t\tif ellipsis < 0 && i != IPv6len-IPv4len {\n\t\t\t\t// Not the right place.\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tif i+IPv4len > IPv6len {\n\t\t\t\t// Not enough room.\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tip4 := parseIPv4(s)\n\t\t\tif ip4 == nil {\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tip[i] = ip4[12]\n\t\t\tip[i+1] = ip4[13]\n\t\t\tip[i+2] = ip4[14]\n\t\t\tip[i+3] = ip4[15]\n\t\t\ts = \"\"\n\t\t\ti += IPv4len\n\t\t\tbreak\n\t\t}\n\n\t\t// Save this 16-bit chunk.\n\t\tip[i] = byte(n >> 8)\n\t\tip[i+1] = byte(n)\n\t\ti += 2\n\n\t\t// Stop at end of string.\n\t\ts = s[c:]\n\t\tif len(s) == 0 {\n\t\t\tbreak\n\t\t}\n\n\t\t// Otherwise must be followed by colon and more.\n\t\tif s[0] != ':' || len(s) == 1 {\n\t\t\treturn nil\n\t\t}\n\t\ts = s[1:]\n\n\t\t// Look for ellipsis.\n\t\tif s[0] == ':' {\n\t\t\tif ellipsis >= 0 { // already have one\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tellipsis = i\n\t\t\ts = s[1:]\n\t\t\tif len(s) == 0 { // can be at end\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\t// Must have used entire string.\n\tif len(s) != 0 {\n\t\treturn nil\n\t}\n\n\t// If didn't parse enough, expand ellipsis.\n\tif i < IPv6len {\n\t\tif ellipsis < 0 {\n\t\t\treturn nil\n\t\t}\n\t\tn := IPv6len - i\n\t\tfor j := i - 1; j >= ellipsis; j-- {\n\t\t\tip[j+n] = ip[j]\n\t\t}\n\t\tfor j := ellipsis + n - 1; j >= ellipsis; j-- {\n\t\t\tip[j] = 0\n\t\t}\n\t} else if ellipsis >= 0 {\n\t\t// Ellipsis must represent at least one 0 group.\n\t\treturn nil\n\t}\n\treturn ip\n}\n\n// ParseIP parses s as an IP address, returning the result.\n// The string s can be in IPv4 dotted decimal (\"192.0.2.1\"), IPv6\n// (\"2001:db8::68\"), or IPv4-mapped IPv6 (\"::ffff:192.0.2.1\") form.\n// If s is not a valid textual representation of an IP address,\n// ParseIP returns nil.\nfunc ParseIP(s string) IP {\n\tfor i := 0; i < len(s); i++ {\n\t\tswitch s[i] {\n\t\tcase '.':\n\t\t\treturn parseIPv4(s)\n\t\tcase ':':\n\t\t\treturn parseIPv6(s)\n\t\t}\n\t}\n\treturn nil\n}\n\n// ParseCIDR parses s as a CIDR notation IP address and prefix length,\n// like \"192.0.2.0/24\" or \"2001:db8::/32\", as defined in\n// RFC 4632 and RFC 4291.\n//\n// It returns the IP address and the network implied by the IP and\n// prefix length.\n// For example, ParseCIDR(\"192.0.2.1/24\") returns the IP address\n// 192.0.2.1 and the network 192.0.2.0/24.\nfunc ParseCIDR(s string) (IP, *IPNet, error) {\n\ti := indexByteString(s, '/')\n\tif i < 0 {\n\t\treturn nil, nil, &ParseError{Type: \"CIDR address\", Text: s}\n\t}\n\taddr, mask := s[:i], s[i+1:]\n\tiplen := IPv4len\n\tip := parseIPv4(addr)\n\tif ip == nil {\n\t\tiplen = IPv6len\n\t\tip = parseIPv6(addr)\n\t}\n\tn, i, ok := dtoi(mask)\n\tif ip == nil || !ok || i != len(mask) || n < 0 || n > 8*iplen {\n\t\treturn nil, nil, &ParseError{Type: \"CIDR address\", Text: s}\n\t}\n\tm := CIDRMask(n, 8*iplen)\n\treturn ip, &IPNet{IP: ip.Mask(m), Mask: m}, nil\n}\n\n// This is copied from go/src/internal/bytealg, which includes versions\n// optimized for various platforms.  Those optimizations are elided here so we\n// don't have to maintain them.\nfunc indexByteString(s string, c byte) int {\n\tfor i := 0; i < len(s); i++ {\n\t\tif s[i] == c {\n\t\t\treturn i\n\t\t}\n\t}\n\treturn -1\n}\n"
  },
  {
    "path": "vendor/k8s.io/utils/internal/third_party/forked/golang/net/parse.go",
    "content": "// Copyright 2009 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Simple file i/o and string manipulation, to avoid\n// depending on strconv and bufio and strings.\n\npackage net\n\n///////////////////////////////////////////////////////////////////////////////\n// NOTE: This file was forked because it is used by other code that needed to\n// be forked, not because it is used on its own.\n///////////////////////////////////////////////////////////////////////////////\n\n// Bigger than we need, not too big to worry about overflow\nconst big = 0xFFFFFF\n\n// Decimal to integer.\n// Returns number, characters consumed, success.\nfunc dtoi(s string) (n int, i int, ok bool) {\n\tn = 0\n\tfor i = 0; i < len(s) && '0' <= s[i] && s[i] <= '9'; i++ {\n\t\tn = n*10 + int(s[i]-'0')\n\t\tif n >= big {\n\t\t\treturn big, i, false\n\t\t}\n\t}\n\tif i == 0 {\n\t\treturn 0, 0, false\n\t}\n\treturn n, i, true\n}\n\n// Hexadecimal to integer.\n// Returns number, characters consumed, success.\nfunc xtoi(s string) (n int, i int, ok bool) {\n\tn = 0\n\tfor i = 0; i < len(s); i++ {\n\t\tif '0' <= s[i] && s[i] <= '9' {\n\t\t\tn *= 16\n\t\t\tn += int(s[i] - '0')\n\t\t} else if 'a' <= s[i] && s[i] <= 'f' {\n\t\t\tn *= 16\n\t\t\tn += int(s[i]-'a') + 10\n\t\t} else if 'A' <= s[i] && s[i] <= 'F' {\n\t\t\tn *= 16\n\t\t\tn += int(s[i]-'A') + 10\n\t\t} else {\n\t\t\tbreak\n\t\t}\n\t\tif n >= big {\n\t\t\treturn 0, i, false\n\t\t}\n\t}\n\tif i == 0 {\n\t\treturn 0, i, false\n\t}\n\treturn n, i, true\n}\n"
  },
  {
    "path": "vendor/k8s.io/utils/net/ipfamily.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage net\n\nimport (\n\t\"fmt\"\n\t\"net\"\n)\n\n// IPFamily refers to a specific family if not empty, i.e. \"4\" or \"6\".\ntype IPFamily string\n\n// Constants for valid IPFamilys:\nconst (\n\tIPFamilyUnknown IPFamily = \"\"\n\n\tIPv4 IPFamily = \"4\"\n\tIPv6 IPFamily = \"6\"\n)\n\n// IsDualStackIPs returns true if:\n// - all elements of ips are valid\n// - at least one IP from each family (v4 and v6) is present\nfunc IsDualStackIPs(ips []net.IP) (bool, error) {\n\tv4Found := false\n\tv6Found := false\n\tfor i, ip := range ips {\n\t\tswitch IPFamilyOf(ip) {\n\t\tcase IPv4:\n\t\t\tv4Found = true\n\t\tcase IPv6:\n\t\t\tv6Found = true\n\t\tdefault:\n\t\t\treturn false, fmt.Errorf(\"invalid IP[%d]: %v\", i, ip)\n\t\t}\n\t}\n\n\treturn (v4Found && v6Found), nil\n}\n\n// IsDualStackIPStrings returns true if:\n// - all elements of ips can be parsed as IPs\n// - at least one IP from each family (v4 and v6) is present\nfunc IsDualStackIPStrings(ips []string) (bool, error) {\n\tparsedIPs := make([]net.IP, 0, len(ips))\n\tfor i, ip := range ips {\n\t\tparsedIP := ParseIPSloppy(ip)\n\t\tif parsedIP == nil {\n\t\t\treturn false, fmt.Errorf(\"invalid IP[%d]: %v\", i, ip)\n\t\t}\n\t\tparsedIPs = append(parsedIPs, parsedIP)\n\t}\n\treturn IsDualStackIPs(parsedIPs)\n}\n\n// IsDualStackCIDRs returns true if:\n// - all elements of cidrs are non-nil\n// - at least one CIDR from each family (v4 and v6) is present\nfunc IsDualStackCIDRs(cidrs []*net.IPNet) (bool, error) {\n\tv4Found := false\n\tv6Found := false\n\tfor i, cidr := range cidrs {\n\t\tswitch IPFamilyOfCIDR(cidr) {\n\t\tcase IPv4:\n\t\t\tv4Found = true\n\t\tcase IPv6:\n\t\t\tv6Found = true\n\t\tdefault:\n\t\t\treturn false, fmt.Errorf(\"invalid CIDR[%d]: %v\", i, cidr)\n\t\t}\n\t}\n\n\treturn (v4Found && v6Found), nil\n}\n\n// IsDualStackCIDRStrings returns if\n// - all elements of cidrs can be parsed as CIDRs\n// - at least one CIDR from each family (v4 and v6) is present\nfunc IsDualStackCIDRStrings(cidrs []string) (bool, error) {\n\tparsedCIDRs, err := ParseCIDRs(cidrs)\n\tif err != nil {\n\t\treturn false, err\n\t}\n\treturn IsDualStackCIDRs(parsedCIDRs)\n}\n\n// IPFamilyOf returns the IP family of ip, or IPFamilyUnknown if it is invalid.\nfunc IPFamilyOf(ip net.IP) IPFamily {\n\tswitch {\n\tcase ip.To4() != nil:\n\t\treturn IPv4\n\tcase ip.To16() != nil:\n\t\treturn IPv6\n\tdefault:\n\t\treturn IPFamilyUnknown\n\t}\n}\n\n// IPFamilyOfString returns the IP family of ip, or IPFamilyUnknown if ip cannot\n// be parsed as an IP.\nfunc IPFamilyOfString(ip string) IPFamily {\n\treturn IPFamilyOf(ParseIPSloppy(ip))\n}\n\n// IPFamilyOfCIDR returns the IP family of cidr.\nfunc IPFamilyOfCIDR(cidr *net.IPNet) IPFamily {\n\tif cidr == nil {\n\t\treturn IPFamilyUnknown\n\t}\n\treturn IPFamilyOf(cidr.IP)\n}\n\n// IPFamilyOfCIDRString returns the IP family of cidr.\nfunc IPFamilyOfCIDRString(cidr string) IPFamily {\n\tip, _, _ := ParseCIDRSloppy(cidr)\n\treturn IPFamilyOf(ip)\n}\n\n// IsIPv6 returns true if netIP is IPv6 (and false if it is IPv4, nil, or invalid).\nfunc IsIPv6(netIP net.IP) bool {\n\treturn IPFamilyOf(netIP) == IPv6\n}\n\n// IsIPv6String returns true if ip contains a single IPv6 address and nothing else. It\n// returns false if ip is an empty string, an IPv4 address, or anything else that is not a\n// single IPv6 address.\nfunc IsIPv6String(ip string) bool {\n\treturn IPFamilyOfString(ip) == IPv6\n}\n\n// IsIPv6CIDR returns true if a cidr is a valid IPv6 CIDR. It returns false if cidr is\n// nil or an IPv4 CIDR. Its behavior is not defined if cidr is invalid.\nfunc IsIPv6CIDR(cidr *net.IPNet) bool {\n\treturn IPFamilyOfCIDR(cidr) == IPv6\n}\n\n// IsIPv6CIDRString returns true if cidr contains a single IPv6 CIDR and nothing else. It\n// returns false if cidr is an empty string, an IPv4 CIDR, or anything else that is not a\n// single valid IPv6 CIDR.\nfunc IsIPv6CIDRString(cidr string) bool {\n\treturn IPFamilyOfCIDRString(cidr) == IPv6\n}\n\n// IsIPv4 returns true if netIP is IPv4 (and false if it is IPv6, nil, or invalid).\nfunc IsIPv4(netIP net.IP) bool {\n\treturn IPFamilyOf(netIP) == IPv4\n}\n\n// IsIPv4String returns true if ip contains a single IPv4 address and nothing else. It\n// returns false if ip is an empty string, an IPv6 address, or anything else that is not a\n// single IPv4 address.\nfunc IsIPv4String(ip string) bool {\n\treturn IPFamilyOfString(ip) == IPv4\n}\n\n// IsIPv4CIDR returns true if cidr is a valid IPv4 CIDR. It returns false if cidr is nil\n// or an IPv6 CIDR. Its behavior is not defined if cidr is invalid.\nfunc IsIPv4CIDR(cidr *net.IPNet) bool {\n\treturn IPFamilyOfCIDR(cidr) == IPv4\n}\n\n// IsIPv4CIDRString returns true if cidr contains a single IPv4 CIDR and nothing else. It\n// returns false if cidr is an empty string, an IPv6 CIDR, or anything else that is not a\n// single valid IPv4 CIDR.\nfunc IsIPv4CIDRString(cidr string) bool {\n\treturn IPFamilyOfCIDRString(cidr) == IPv4\n}\n"
  },
  {
    "path": "vendor/k8s.io/utils/net/ipnet.go",
    "content": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage net\n\nimport (\n\t\"fmt\"\n\t\"net\"\n\t\"strings\"\n)\n\n// IPNetSet maps string to net.IPNet.\ntype IPNetSet map[string]*net.IPNet\n\n// ParseIPNets parses string slice to IPNetSet.\nfunc ParseIPNets(specs ...string) (IPNetSet, error) {\n\tipnetset := make(IPNetSet)\n\tfor _, spec := range specs {\n\t\tspec = strings.TrimSpace(spec)\n\t\t_, ipnet, err := ParseCIDRSloppy(spec)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tk := ipnet.String() // In case of normalization\n\t\tipnetset[k] = ipnet\n\t}\n\treturn ipnetset, nil\n}\n\n// Insert adds items to the set.\nfunc (s IPNetSet) Insert(items ...*net.IPNet) {\n\tfor _, item := range items {\n\t\ts[item.String()] = item\n\t}\n}\n\n// Delete removes all items from the set.\nfunc (s IPNetSet) Delete(items ...*net.IPNet) {\n\tfor _, item := range items {\n\t\tdelete(s, item.String())\n\t}\n}\n\n// Has returns true if and only if item is contained in the set.\nfunc (s IPNetSet) Has(item *net.IPNet) bool {\n\t_, contained := s[item.String()]\n\treturn contained\n}\n\n// HasAll returns true if and only if all items are contained in the set.\nfunc (s IPNetSet) HasAll(items ...*net.IPNet) bool {\n\tfor _, item := range items {\n\t\tif !s.Has(item) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Difference returns a set of objects that are not in s2\n// For example:\n// s1 = {a1, a2, a3}\n// s2 = {a1, a2, a4, a5}\n// s1.Difference(s2) = {a3}\n// s2.Difference(s1) = {a4, a5}\nfunc (s IPNetSet) Difference(s2 IPNetSet) IPNetSet {\n\tresult := make(IPNetSet)\n\tfor k, i := range s {\n\t\t_, found := s2[k]\n\t\tif found {\n\t\t\tcontinue\n\t\t}\n\t\tresult[k] = i\n\t}\n\treturn result\n}\n\n// StringSlice returns a []string with the String representation of each element in the set.\n// Order is undefined.\nfunc (s IPNetSet) StringSlice() []string {\n\ta := make([]string, 0, len(s))\n\tfor k := range s {\n\t\ta = append(a, k)\n\t}\n\treturn a\n}\n\n// IsSuperset returns true if and only if s1 is a superset of s2.\nfunc (s IPNetSet) IsSuperset(s2 IPNetSet) bool {\n\tfor k := range s2 {\n\t\t_, found := s[k]\n\t\tif !found {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Equal returns true if and only if s1 is equal (as a set) to s2.\n// Two sets are equal if their membership is identical.\n// (In practice, this means same elements, order doesn't matter)\nfunc (s IPNetSet) Equal(s2 IPNetSet) bool {\n\treturn len(s) == len(s2) && s.IsSuperset(s2)\n}\n\n// Len returns the size of the set.\nfunc (s IPNetSet) Len() int {\n\treturn len(s)\n}\n\n// IPSet maps string to net.IP\ntype IPSet map[string]net.IP\n\n// ParseIPSet parses string slice to IPSet\nfunc ParseIPSet(items ...string) (IPSet, error) {\n\tipset := make(IPSet)\n\tfor _, item := range items {\n\t\tip := ParseIPSloppy(strings.TrimSpace(item))\n\t\tif ip == nil {\n\t\t\treturn nil, fmt.Errorf(\"error parsing IP %q\", item)\n\t\t}\n\n\t\tipset[ip.String()] = ip\n\t}\n\n\treturn ipset, nil\n}\n\n// Insert adds items to the set.\nfunc (s IPSet) Insert(items ...net.IP) {\n\tfor _, item := range items {\n\t\ts[item.String()] = item\n\t}\n}\n\n// Delete removes all items from the set.\nfunc (s IPSet) Delete(items ...net.IP) {\n\tfor _, item := range items {\n\t\tdelete(s, item.String())\n\t}\n}\n\n// Has returns true if and only if item is contained in the set.\nfunc (s IPSet) Has(item net.IP) bool {\n\t_, contained := s[item.String()]\n\treturn contained\n}\n\n// HasAll returns true if and only if all items are contained in the set.\nfunc (s IPSet) HasAll(items ...net.IP) bool {\n\tfor _, item := range items {\n\t\tif !s.Has(item) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Difference returns a set of objects that are not in s2\n// For example:\n// s1 = {a1, a2, a3}\n// s2 = {a1, a2, a4, a5}\n// s1.Difference(s2) = {a3}\n// s2.Difference(s1) = {a4, a5}\nfunc (s IPSet) Difference(s2 IPSet) IPSet {\n\tresult := make(IPSet)\n\tfor k, i := range s {\n\t\t_, found := s2[k]\n\t\tif found {\n\t\t\tcontinue\n\t\t}\n\t\tresult[k] = i\n\t}\n\treturn result\n}\n\n// StringSlice returns a []string with the String representation of each element in the set.\n// Order is undefined.\nfunc (s IPSet) StringSlice() []string {\n\ta := make([]string, 0, len(s))\n\tfor k := range s {\n\t\ta = append(a, k)\n\t}\n\treturn a\n}\n\n// IsSuperset returns true if and only if s1 is a superset of s2.\nfunc (s IPSet) IsSuperset(s2 IPSet) bool {\n\tfor k := range s2 {\n\t\t_, found := s[k]\n\t\tif !found {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Equal returns true if and only if s1 is equal (as a set) to s2.\n// Two sets are equal if their membership is identical.\n// (In practice, this means same elements, order doesn't matter)\nfunc (s IPSet) Equal(s2 IPSet) bool {\n\treturn len(s) == len(s2) && s.IsSuperset(s2)\n}\n\n// Len returns the size of the set.\nfunc (s IPSet) Len() int {\n\treturn len(s)\n}\n"
  },
  {
    "path": "vendor/k8s.io/utils/net/multi_listen.go",
    "content": "/*\nCopyright 2024 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage net\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"net\"\n\t\"sync\"\n)\n\n// connErrPair pairs conn and error which is returned by accept on sub-listeners.\ntype connErrPair struct {\n\tconn net.Conn\n\terr  error\n}\n\n// multiListener implements net.Listener\ntype multiListener struct {\n\tlisteners []net.Listener\n\twg        sync.WaitGroup\n\n\t// connCh passes accepted connections, from child listeners to parent.\n\tconnCh chan connErrPair\n\t// stopCh communicates from parent to child listeners.\n\tstopCh chan struct{}\n}\n\n// compile time check to ensure *multiListener implements net.Listener\nvar _ net.Listener = &multiListener{}\n\n// MultiListen returns net.Listener which can listen on and accept connections for\n// the given network on multiple addresses. Internally it uses stdlib to create\n// sub-listener and multiplexes connection requests using go-routines.\n// The network must be \"tcp\", \"tcp4\" or \"tcp6\".\n// It follows the semantics of net.Listen that primarily means:\n//  1. If the host is an unspecified/zero IP address with \"tcp\" network, MultiListen\n//     listens on all available unicast and anycast IP addresses of the local system.\n//  2. Use \"tcp4\" or \"tcp6\" to exclusively listen on IPv4 or IPv6 family, respectively.\n//  3. The host can accept names (e.g, localhost) and it will create a listener for at\n//     most one of the host's IP.\nfunc MultiListen(ctx context.Context, network string, addrs ...string) (net.Listener, error) {\n\tvar lc net.ListenConfig\n\treturn multiListen(\n\t\tctx,\n\t\tnetwork,\n\t\taddrs,\n\t\tfunc(ctx context.Context, network, address string) (net.Listener, error) {\n\t\t\treturn lc.Listen(ctx, network, address)\n\t\t})\n}\n\n// multiListen implements MultiListen by consuming stdlib functions as dependency allowing\n// mocking for unit-testing.\nfunc multiListen(\n\tctx context.Context,\n\tnetwork string,\n\taddrs []string,\n\tlistenFunc func(ctx context.Context, network, address string) (net.Listener, error),\n) (net.Listener, error) {\n\tif !(network == \"tcp\" || network == \"tcp4\" || network == \"tcp6\") {\n\t\treturn nil, fmt.Errorf(\"network %q not supported\", network)\n\t}\n\tif len(addrs) == 0 {\n\t\treturn nil, fmt.Errorf(\"no address provided to listen on\")\n\t}\n\n\tml := &multiListener{\n\t\tconnCh: make(chan connErrPair),\n\t\tstopCh: make(chan struct{}),\n\t}\n\tfor _, addr := range addrs {\n\t\tl, err := listenFunc(ctx, network, addr)\n\t\tif err != nil {\n\t\t\t// close all the sub-listeners and exit\n\t\t\t_ = ml.Close()\n\t\t\treturn nil, err\n\t\t}\n\t\tml.listeners = append(ml.listeners, l)\n\t}\n\n\tfor _, l := range ml.listeners {\n\t\tml.wg.Add(1)\n\t\tgo func(l net.Listener) {\n\t\t\tdefer ml.wg.Done()\n\t\t\tfor {\n\t\t\t\t// Accept() is blocking, unless ml.Close() is called, in which\n\t\t\t\t// case it will return immediately with an error.\n\t\t\t\tconn, err := l.Accept()\n\t\t\t\t// This assumes that ANY error from Accept() will terminate the\n\t\t\t\t// sub-listener. We could maybe be more precise, but it\n\t\t\t\t// doesn't seem necessary.\n\t\t\t\tterminate := err != nil\n\n\t\t\t\tselect {\n\t\t\t\tcase ml.connCh <- connErrPair{conn: conn, err: err}:\n\t\t\t\tcase <-ml.stopCh:\n\t\t\t\t\t// In case we accepted a connection AND were stopped, and\n\t\t\t\t\t// this select-case was chosen, just throw away the\n\t\t\t\t\t// connection.  This avoids potentially blocking on connCh\n\t\t\t\t\t// or leaking a connection.\n\t\t\t\t\tif conn != nil {\n\t\t\t\t\t\t_ = conn.Close()\n\t\t\t\t\t}\n\t\t\t\t\tterminate = true\n\t\t\t\t}\n\t\t\t\t// Make sure we don't loop on Accept() returning an error and\n\t\t\t\t// the select choosing the channel case.\n\t\t\t\tif terminate {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t}(l)\n\t}\n\treturn ml, nil\n}\n\n// Accept implements net.Listener. It waits for and returns a connection from\n// any of the sub-listener.\nfunc (ml *multiListener) Accept() (net.Conn, error) {\n\t// wait for any sub-listener to enqueue an accepted connection\n\tconnErr, ok := <-ml.connCh\n\tif !ok {\n\t\t// The channel will be closed only when Close() is called on the\n\t\t// multiListener. Closing of this channel implies that all\n\t\t// sub-listeners are also closed, which causes a \"use of closed\n\t\t// network connection\" error on their Accept() calls. We return the\n\t\t// same error for multiListener.Accept() if multiListener.Close()\n\t\t// has already been called.\n\t\treturn nil, fmt.Errorf(\"use of closed network connection\")\n\t}\n\treturn connErr.conn, connErr.err\n}\n\n// Close implements net.Listener. It will close all sub-listeners and wait for\n// the go-routines to exit.\nfunc (ml *multiListener) Close() error {\n\t// Make sure this can be called repeatedly without explosions.\n\tselect {\n\tcase <-ml.stopCh:\n\t\treturn fmt.Errorf(\"use of closed network connection\")\n\tdefault:\n\t}\n\n\t// Tell all sub-listeners to stop.\n\tclose(ml.stopCh)\n\n\t// Closing the listeners causes Accept() to immediately return an error in\n\t// the sub-listener go-routines.\n\tfor _, l := range ml.listeners {\n\t\t_ = l.Close()\n\t}\n\n\t// Wait for all the sub-listener go-routines to exit.\n\tml.wg.Wait()\n\tclose(ml.connCh)\n\n\t// Drain any already-queued connections.\n\tfor connErr := range ml.connCh {\n\t\tif connErr.conn != nil {\n\t\t\t_ = connErr.conn.Close()\n\t\t}\n\t}\n\treturn nil\n}\n\n// Addr is an implementation of the net.Listener interface.  It always returns\n// the address of the first listener.  Callers should  use conn.LocalAddr() to\n// obtain the actual local address of the sub-listener.\nfunc (ml *multiListener) Addr() net.Addr {\n\treturn ml.listeners[0].Addr()\n}\n\n// Addrs is like Addr, but returns the address for all registered listeners.\nfunc (ml *multiListener) Addrs() []net.Addr {\n\tvar ret []net.Addr\n\tfor _, l := range ml.listeners {\n\t\tret = append(ret, l.Addr())\n\t}\n\treturn ret\n}\n"
  },
  {
    "path": "vendor/k8s.io/utils/net/net.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage net\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"math\"\n\t\"math/big\"\n\t\"net\"\n\t\"strconv\"\n)\n\n// ParseCIDRs parses a list of cidrs and return error if any is invalid.\n// order is maintained\nfunc ParseCIDRs(cidrsString []string) ([]*net.IPNet, error) {\n\tcidrs := make([]*net.IPNet, 0, len(cidrsString))\n\tfor i, cidrString := range cidrsString {\n\t\t_, cidr, err := ParseCIDRSloppy(cidrString)\n\t\tif err != nil {\n\t\t\treturn nil, fmt.Errorf(\"invalid CIDR[%d]: %v (%v)\", i, cidr, err)\n\t\t}\n\t\tcidrs = append(cidrs, cidr)\n\t}\n\treturn cidrs, nil\n}\n\n// ParsePort parses a string representing an IP port.  If the string is not a\n// valid port number, this returns an error.\nfunc ParsePort(port string, allowZero bool) (int, error) {\n\tportInt, err := strconv.ParseUint(port, 10, 16)\n\tif err != nil {\n\t\treturn 0, err\n\t}\n\tif portInt == 0 && !allowZero {\n\t\treturn 0, errors.New(\"0 is not a valid port number\")\n\t}\n\treturn int(portInt), nil\n}\n\n// BigForIP creates a big.Int based on the provided net.IP\nfunc BigForIP(ip net.IP) *big.Int {\n\t// NOTE: Convert to 16-byte representation so we can\n\t// handle v4 and v6 values the same way.\n\treturn big.NewInt(0).SetBytes(ip.To16())\n}\n\n// AddIPOffset adds the provided integer offset to a base big.Int representing a net.IP\n// NOTE: If you started with a v4 address and overflow it, you get a v6 result.\nfunc AddIPOffset(base *big.Int, offset int) net.IP {\n\tr := big.NewInt(0).Add(base, big.NewInt(int64(offset))).Bytes()\n\tr = append(make([]byte, 16), r...)\n\treturn net.IP(r[len(r)-16:])\n}\n\n// RangeSize returns the size of a range in valid addresses.\n// returns the size of the subnet (or math.MaxInt64 if the range size would overflow int64)\nfunc RangeSize(subnet *net.IPNet) int64 {\n\tones, bits := subnet.Mask.Size()\n\tif bits == 32 && (bits-ones) >= 31 || bits == 128 && (bits-ones) >= 127 {\n\t\treturn 0\n\t}\n\t// this checks that we are not overflowing an int64\n\tif bits-ones >= 63 {\n\t\treturn math.MaxInt64\n\t}\n\treturn int64(1) << uint(bits-ones)\n}\n\n// GetIndexedIP returns a net.IP that is subnet.IP + index in the contiguous IP space.\nfunc GetIndexedIP(subnet *net.IPNet, index int) (net.IP, error) {\n\tip := AddIPOffset(BigForIP(subnet.IP), index)\n\tif !subnet.Contains(ip) {\n\t\treturn nil, fmt.Errorf(\"can't generate IP with index %d from subnet. subnet too small. subnet: %q\", index, subnet)\n\t}\n\treturn ip, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/utils/net/parse.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage net\n\nimport (\n\tforkednet \"k8s.io/utils/internal/third_party/forked/golang/net\"\n)\n\n// ParseIPSloppy is identical to Go's standard net.ParseIP, except that it allows\n// leading '0' characters on numbers.  Go used to allow this and then changed\n// the behavior in 1.17.  We're choosing to keep it for compat with potential\n// stored values.\nvar ParseIPSloppy = forkednet.ParseIP\n\n// ParseCIDRSloppy is identical to Go's standard net.ParseCIDR, except that it allows\n// leading '0' characters on numbers.  Go used to allow this and then changed\n// the behavior in 1.17.  We're choosing to keep it for compat with potential\n// stored values.\nvar ParseCIDRSloppy = forkednet.ParseCIDR\n"
  },
  {
    "path": "vendor/k8s.io/utils/net/port.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage net\n\nimport (\n\t\"fmt\"\n\t\"net\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// Protocol is a network protocol support by LocalPort.\ntype Protocol string\n\n// Constants for valid protocols:\nconst (\n\tTCP Protocol = \"TCP\"\n\tUDP Protocol = \"UDP\"\n)\n\n// LocalPort represents an IP address and port pair along with a protocol\n// and potentially a specific IP family.\n// A LocalPort can be opened and subsequently closed.\ntype LocalPort struct {\n\t// Description is an arbitrary string.\n\tDescription string\n\t// IP is the IP address part of a given local port.\n\t// If this string is empty, the port binds to all local IP addresses.\n\tIP string\n\t// If IPFamily is not empty, the port binds only to addresses of this\n\t// family.\n\t// IF empty along with IP, bind to local addresses of any family.\n\tIPFamily IPFamily\n\t// Port is the port number.\n\t// A value of 0 causes a port to be automatically chosen.\n\tPort int\n\t// Protocol is the protocol, e.g. TCP\n\tProtocol Protocol\n}\n\n// NewLocalPort returns a LocalPort instance and ensures IPFamily and IP are\n// consistent and that the given protocol is valid.\nfunc NewLocalPort(desc, ip string, ipFamily IPFamily, port int, protocol Protocol) (*LocalPort, error) {\n\tif protocol != TCP && protocol != UDP {\n\t\treturn nil, fmt.Errorf(\"Unsupported protocol %s\", protocol)\n\t}\n\tif ipFamily != IPFamilyUnknown && ipFamily != IPv4 && ipFamily != IPv6 {\n\t\treturn nil, fmt.Errorf(\"Invalid IP family %s\", ipFamily)\n\t}\n\tif ip != \"\" {\n\t\tparsedIP := ParseIPSloppy(ip)\n\t\tif parsedIP == nil {\n\t\t\treturn nil, fmt.Errorf(\"invalid ip address %s\", ip)\n\t\t}\n\t\tif ipFamily != IPFamilyUnknown {\n\t\t\tif IPFamily(parsedIP) != ipFamily {\n\t\t\t\treturn nil, fmt.Errorf(\"ip address and family mismatch %s, %s\", ip, ipFamily)\n\t\t\t}\n\t\t}\n\t}\n\treturn &LocalPort{Description: desc, IP: ip, IPFamily: ipFamily, Port: port, Protocol: protocol}, nil\n}\n\nfunc (lp *LocalPort) String() string {\n\tipPort := net.JoinHostPort(lp.IP, strconv.Itoa(lp.Port))\n\treturn fmt.Sprintf(\"%q (%s/%s%s)\", lp.Description, ipPort, strings.ToLower(string(lp.Protocol)), lp.IPFamily)\n}\n\n// Closeable closes an opened LocalPort.\ntype Closeable interface {\n\tClose() error\n}\n\n// PortOpener can open a LocalPort and allows later closing it.\ntype PortOpener interface {\n\tOpenLocalPort(lp *LocalPort) (Closeable, error)\n}\n\ntype listenPortOpener struct{}\n\n// ListenPortOpener opens ports by calling bind() and listen().\nvar ListenPortOpener listenPortOpener\n\n// OpenLocalPort holds the given local port open.\nfunc (l *listenPortOpener) OpenLocalPort(lp *LocalPort) (Closeable, error) {\n\treturn openLocalPort(lp)\n}\n\nfunc openLocalPort(lp *LocalPort) (Closeable, error) {\n\tvar socket Closeable\n\thostPort := net.JoinHostPort(lp.IP, strconv.Itoa(lp.Port))\n\tswitch lp.Protocol {\n\tcase TCP:\n\t\tnetwork := \"tcp\" + string(lp.IPFamily)\n\t\tlistener, err := net.Listen(network, hostPort)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tsocket = listener\n\tcase UDP:\n\t\tnetwork := \"udp\" + string(lp.IPFamily)\n\t\taddr, err := net.ResolveUDPAddr(network, hostPort)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tconn, err := net.ListenUDP(network, addr)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tsocket = conn\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"unknown protocol %q\", lp.Protocol)\n\t}\n\treturn socket, nil\n}\n"
  },
  {
    "path": "vendor/k8s.io/utils/pointer/OWNERS",
    "content": "# See the OWNERS docs at https://go.k8s.io/owners\n\napprovers:\n- apelisse\n- stewart-yu\n- thockin\nreviewers:\n- apelisse\n- stewart-yu\n- thockin\n"
  },
  {
    "path": "vendor/k8s.io/utils/pointer/README.md",
    "content": "# Pointer\n\nThis package provides some functions for pointer-based operations.\n"
  },
  {
    "path": "vendor/k8s.io/utils/pointer/pointer.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Deprecated: Use functions in k8s.io/utils/ptr instead: ptr.To to obtain\n// a pointer, ptr.Deref to dereference a pointer, ptr.Equal to compare\n// dereferenced pointers.\npackage pointer\n\nimport (\n\t\"time\"\n\n\t\"k8s.io/utils/ptr\"\n)\n\n// AllPtrFieldsNil tests whether all pointer fields in a struct are nil.  This is useful when,\n// for example, an API struct is handled by plugins which need to distinguish\n// \"no plugin accepted this spec\" from \"this spec is empty\".\n//\n// This function is only valid for structs and pointers to structs.  Any other\n// type will cause a panic.  Passing a typed nil pointer will return true.\n//\n// Deprecated: Use ptr.AllPtrFieldsNil instead.\nvar AllPtrFieldsNil = ptr.AllPtrFieldsNil\n\n// Int returns a pointer to an int.\nvar Int = ptr.To[int]\n\n// IntPtr is a function variable referring to Int.\n//\n// Deprecated: Use ptr.To instead.\nvar IntPtr = Int // for back-compat\n\n// IntDeref dereferences the int ptr and returns it if not nil, or else\n// returns def.\nvar IntDeref = ptr.Deref[int]\n\n// IntPtrDerefOr is a function variable referring to IntDeref.\n//\n// Deprecated: Use ptr.Deref instead.\nvar IntPtrDerefOr = IntDeref // for back-compat\n\n// Int32 returns a pointer to an int32.\nvar Int32 = ptr.To[int32]\n\n// Int32Ptr is a function variable referring to Int32.\n//\n// Deprecated: Use ptr.To instead.\nvar Int32Ptr = Int32 // for back-compat\n\n// Int32Deref dereferences the int32 ptr and returns it if not nil, or else\n// returns def.\nvar Int32Deref = ptr.Deref[int32]\n\n// Int32PtrDerefOr is a function variable referring to Int32Deref.\n//\n// Deprecated: Use ptr.Deref instead.\nvar Int32PtrDerefOr = Int32Deref // for back-compat\n\n// Int32Equal returns true if both arguments are nil or both arguments\n// dereference to the same value.\nvar Int32Equal = ptr.Equal[int32]\n\n// Uint returns a pointer to an uint\nvar Uint = ptr.To[uint]\n\n// UintPtr is a function variable referring to Uint.\n//\n// Deprecated: Use ptr.To instead.\nvar UintPtr = Uint // for back-compat\n\n// UintDeref dereferences the uint ptr and returns it if not nil, or else\n// returns def.\nvar UintDeref = ptr.Deref[uint]\n\n// UintPtrDerefOr is a function variable referring to UintDeref.\n//\n// Deprecated: Use ptr.Deref instead.\nvar UintPtrDerefOr = UintDeref // for back-compat\n\n// Uint32 returns a pointer to an uint32.\nvar Uint32 = ptr.To[uint32]\n\n// Uint32Ptr is a function variable referring to Uint32.\n//\n// Deprecated: Use ptr.To instead.\nvar Uint32Ptr = Uint32 // for back-compat\n\n// Uint32Deref dereferences the uint32 ptr and returns it if not nil, or else\n// returns def.\nvar Uint32Deref = ptr.Deref[uint32]\n\n// Uint32PtrDerefOr is a function variable referring to Uint32Deref.\n//\n// Deprecated: Use ptr.Deref instead.\nvar Uint32PtrDerefOr = Uint32Deref // for back-compat\n\n// Uint32Equal returns true if both arguments are nil or both arguments\n// dereference to the same value.\nvar Uint32Equal = ptr.Equal[uint32]\n\n// Int64 returns a pointer to an int64.\nvar Int64 = ptr.To[int64]\n\n// Int64Ptr is a function variable referring to Int64.\n//\n// Deprecated: Use ptr.To instead.\nvar Int64Ptr = Int64 // for back-compat\n\n// Int64Deref dereferences the int64 ptr and returns it if not nil, or else\n// returns def.\nvar Int64Deref = ptr.Deref[int64]\n\n// Int64PtrDerefOr is a function variable referring to Int64Deref.\n//\n// Deprecated: Use ptr.Deref instead.\nvar Int64PtrDerefOr = Int64Deref // for back-compat\n\n// Int64Equal returns true if both arguments are nil or both arguments\n// dereference to the same value.\nvar Int64Equal = ptr.Equal[int64]\n\n// Uint64 returns a pointer to an uint64.\nvar Uint64 = ptr.To[uint64]\n\n// Uint64Ptr is a function variable referring to Uint64.\n//\n// Deprecated: Use ptr.To instead.\nvar Uint64Ptr = Uint64 // for back-compat\n\n// Uint64Deref dereferences the uint64 ptr and returns it if not nil, or else\n// returns def.\nvar Uint64Deref = ptr.Deref[uint64]\n\n// Uint64PtrDerefOr is a function variable referring to Uint64Deref.\n//\n// Deprecated: Use ptr.Deref instead.\nvar Uint64PtrDerefOr = Uint64Deref // for back-compat\n\n// Uint64Equal returns true if both arguments are nil or both arguments\n// dereference to the same value.\nvar Uint64Equal = ptr.Equal[uint64]\n\n// Bool returns a pointer to a bool.\nvar Bool = ptr.To[bool]\n\n// BoolPtr is a function variable referring to Bool.\n//\n// Deprecated: Use ptr.To instead.\nvar BoolPtr = Bool // for back-compat\n\n// BoolDeref dereferences the bool ptr and returns it if not nil, or else\n// returns def.\nvar BoolDeref = ptr.Deref[bool]\n\n// BoolPtrDerefOr is a function variable referring to BoolDeref.\n//\n// Deprecated: Use ptr.Deref instead.\nvar BoolPtrDerefOr = BoolDeref // for back-compat\n\n// BoolEqual returns true if both arguments are nil or both arguments\n// dereference to the same value.\nvar BoolEqual = ptr.Equal[bool]\n\n// String returns a pointer to a string.\nvar String = ptr.To[string]\n\n// StringPtr is a function variable referring to String.\n//\n// Deprecated: Use ptr.To instead.\nvar StringPtr = String // for back-compat\n\n// StringDeref dereferences the string ptr and returns it if not nil, or else\n// returns def.\nvar StringDeref = ptr.Deref[string]\n\n// StringPtrDerefOr is a function variable referring to StringDeref.\n//\n// Deprecated: Use ptr.Deref instead.\nvar StringPtrDerefOr = StringDeref // for back-compat\n\n// StringEqual returns true if both arguments are nil or both arguments\n// dereference to the same value.\nvar StringEqual = ptr.Equal[string]\n\n// Float32 returns a pointer to a float32.\nvar Float32 = ptr.To[float32]\n\n// Float32Ptr is a function variable referring to Float32.\n//\n// Deprecated: Use ptr.To instead.\nvar Float32Ptr = Float32\n\n// Float32Deref dereferences the float32 ptr and returns it if not nil, or else\n// returns def.\nvar Float32Deref = ptr.Deref[float32]\n\n// Float32PtrDerefOr is a function variable referring to Float32Deref.\n//\n// Deprecated: Use ptr.Deref instead.\nvar Float32PtrDerefOr = Float32Deref // for back-compat\n\n// Float32Equal returns true if both arguments are nil or both arguments\n// dereference to the same value.\nvar Float32Equal = ptr.Equal[float32]\n\n// Float64 returns a pointer to a float64.\nvar Float64 = ptr.To[float64]\n\n// Float64Ptr is a function variable referring to Float64.\n//\n// Deprecated: Use ptr.To instead.\nvar Float64Ptr = Float64\n\n// Float64Deref dereferences the float64 ptr and returns it if not nil, or else\n// returns def.\nvar Float64Deref = ptr.Deref[float64]\n\n// Float64PtrDerefOr is a function variable referring to Float64Deref.\n//\n// Deprecated: Use ptr.Deref instead.\nvar Float64PtrDerefOr = Float64Deref // for back-compat\n\n// Float64Equal returns true if both arguments are nil or both arguments\n// dereference to the same value.\nvar Float64Equal = ptr.Equal[float64]\n\n// Duration returns a pointer to a time.Duration.\nvar Duration = ptr.To[time.Duration]\n\n// DurationDeref dereferences the time.Duration ptr and returns it if not nil, or else\n// returns def.\nvar DurationDeref = ptr.Deref[time.Duration]\n\n// DurationEqual returns true if both arguments are nil or both arguments\n// dereference to the same value.\nvar DurationEqual = ptr.Equal[time.Duration]\n"
  },
  {
    "path": "vendor/k8s.io/utils/ptr/OWNERS",
    "content": "# See the OWNERS docs at https://go.k8s.io/owners\n\napprovers:\n- apelisse\n- stewart-yu\n- thockin\nreviewers:\n- apelisse\n- stewart-yu\n- thockin\n"
  },
  {
    "path": "vendor/k8s.io/utils/ptr/README.md",
    "content": "# Pointer\n\nThis package provides some functions for pointer-based operations.\n"
  },
  {
    "path": "vendor/k8s.io/utils/ptr/ptr.go",
    "content": "/*\nCopyright 2023 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage ptr\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n)\n\n// AllPtrFieldsNil tests whether all pointer fields in a struct are nil.  This is useful when,\n// for example, an API struct is handled by plugins which need to distinguish\n// \"no plugin accepted this spec\" from \"this spec is empty\".\n//\n// This function is only valid for structs and pointers to structs.  Any other\n// type will cause a panic.  Passing a typed nil pointer will return true.\nfunc AllPtrFieldsNil(obj interface{}) bool {\n\tv := reflect.ValueOf(obj)\n\tif !v.IsValid() {\n\t\tpanic(fmt.Sprintf(\"reflect.ValueOf() produced a non-valid Value for %#v\", obj))\n\t}\n\tif v.Kind() == reflect.Ptr {\n\t\tif v.IsNil() {\n\t\t\treturn true\n\t\t}\n\t\tv = v.Elem()\n\t}\n\tfor i := 0; i < v.NumField(); i++ {\n\t\tif v.Field(i).Kind() == reflect.Ptr && !v.Field(i).IsNil() {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// To returns a pointer to the given value.\nfunc To[T any](v T) *T {\n\treturn &v\n}\n\n// Deref dereferences ptr and returns the value it points to if no nil, or else\n// returns def.\nfunc Deref[T any](ptr *T, def T) T {\n\tif ptr != nil {\n\t\treturn *ptr\n\t}\n\treturn def\n}\n\n// Equal returns true if both arguments are nil or both arguments\n// dereference to the same value.\nfunc Equal[T comparable](a, b *T) bool {\n\tif (a == nil) != (b == nil) {\n\t\treturn false\n\t}\n\tif a == nil {\n\t\treturn true\n\t}\n\treturn *a == *b\n}\n"
  },
  {
    "path": "vendor/k8s.io/utils/trace/README.md",
    "content": "# Trace\n\nThis package provides an interface for recording the latency of operations and logging details\nabout all operations where the latency exceeds a limit.\n\n## Usage\n\nTo create a trace:\n\n```go\nfunc doSomething() {\n    opTrace := trace.New(\"operation\", Field{Key: \"fieldKey1\", Value: \"fieldValue1\"})\n    defer opTrace.LogIfLong(100 * time.Millisecond)\n    // do something\n}\n```\n\nTo split an trace into multiple steps:\n\n```go\nfunc doSomething() {\n    opTrace := trace.New(\"operation\")\n    defer opTrace.LogIfLong(100 * time.Millisecond)\n    // do step 1\n    opTrace.Step(\"step1\", Field{Key: \"stepFieldKey1\", Value: \"stepFieldValue1\"})\n    // do step 2\n    opTrace.Step(\"step2\")\n}\n```\n\nTo nest traces:\n\n```go\nfunc doSomething() {\n    rootTrace := trace.New(\"rootOperation\")\n    defer rootTrace.LogIfLong(100 * time.Millisecond)\n    \n    func() {\n        nestedTrace := rootTrace.Nest(\"nested\", Field{Key: \"nestedFieldKey1\", Value: \"nestedFieldValue1\"})\n        defer nestedTrace.LogIfLong(50 * time.Millisecond)\n        // do nested operation\n    }()\n}\n```\n\nTraces can also be logged unconditionally or introspected:\n\n```go\nopTrace.TotalTime() // Duration since the Trace was created\nopTrace.Log() // unconditionally log the trace\n```\n\n### Using context.Context to nest traces\n\n`context.Context` can be used to manage nested traces. Create traces by calling `trace.GetTraceFromContext(ctx).Nest`. \nThis is safe even if there is no parent trace already in the context because `(*(Trace)nil).Nest()` returns\na top level trace.\n\n```go\nfunc doSomething(ctx context.Context) {\n    opTrace := trace.FromContext(ctx).Nest(\"operation\") // create a trace, possibly nested\n    ctx = trace.ContextWithTrace(ctx, opTrace) // make this trace the parent trace of the context\n    defer opTrace.LogIfLong(50 * time.Millisecond)\n    \n    doSomethingElse(ctx)\n}\n```"
  },
  {
    "path": "vendor/k8s.io/utils/trace/trace.go",
    "content": "/*\nCopyright 2015 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage trace\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"fmt\"\n\t\"math/rand\"\n\t\"sync\"\n\t\"time\"\n\n\t\"k8s.io/klog/v2\"\n)\n\nvar klogV = func(lvl klog.Level) bool {\n\treturn klog.V(lvl).Enabled()\n}\n\n// Field is a key value pair that provides additional details about the trace.\ntype Field struct {\n\tKey   string\n\tValue interface{}\n}\n\nfunc (f Field) format() string {\n\treturn fmt.Sprintf(\"%s:%v\", f.Key, f.Value)\n}\n\nfunc writeFields(b *bytes.Buffer, l []Field) {\n\tfor i, f := range l {\n\t\tb.WriteString(f.format())\n\t\tif i < len(l)-1 {\n\t\t\tb.WriteString(\",\")\n\t\t}\n\t}\n}\n\nfunc writeTraceItemSummary(b *bytes.Buffer, msg string, totalTime time.Duration, startTime time.Time, fields []Field) {\n\tb.WriteString(fmt.Sprintf(\"%q \", msg))\n\tif len(fields) > 0 {\n\t\twriteFields(b, fields)\n\t\tb.WriteString(\" \")\n\t}\n\n\tb.WriteString(fmt.Sprintf(\"%vms (%v)\", durationToMilliseconds(totalTime), startTime.Format(\"15:04:05.000\")))\n}\n\nfunc durationToMilliseconds(timeDuration time.Duration) int64 {\n\treturn timeDuration.Nanoseconds() / 1e6\n}\n\ntype traceItem interface {\n\t// rLock must be called before invoking time or writeItem.\n\trLock()\n\t// rUnlock must be called after processing the item is complete.\n\trUnlock()\n\n\t// time returns when the trace was recorded as completed.\n\ttime() time.Time\n\t// writeItem outputs the traceItem to the buffer. If stepThreshold is non-nil, only output the\n\t// traceItem if its the duration exceeds the stepThreshold.\n\t// Each line of output is prefixed by formatter to visually indent nested items.\n\twriteItem(b *bytes.Buffer, formatter string, startTime time.Time, stepThreshold *time.Duration)\n}\n\ntype traceStep struct {\n\tstepTime time.Time\n\tmsg      string\n\tfields   []Field\n}\n\n// rLock doesn't need to do anything because traceStep instances are immutable.\nfunc (s traceStep) rLock()   {}\nfunc (s traceStep) rUnlock() {}\n\nfunc (s traceStep) time() time.Time {\n\treturn s.stepTime\n}\n\nfunc (s traceStep) writeItem(b *bytes.Buffer, formatter string, startTime time.Time, stepThreshold *time.Duration) {\n\tstepDuration := s.stepTime.Sub(startTime)\n\tif stepThreshold == nil || *stepThreshold == 0 || stepDuration >= *stepThreshold || klogV(4) {\n\t\tb.WriteString(fmt.Sprintf(\"%s---\", formatter))\n\t\twriteTraceItemSummary(b, s.msg, stepDuration, s.stepTime, s.fields)\n\t}\n}\n\n// Trace keeps track of a set of \"steps\" and allows us to log a specific\n// step if it took longer than its share of the total allowed time\ntype Trace struct {\n\t// constant fields\n\tname        string\n\tfields      []Field\n\tstartTime   time.Time\n\tparentTrace *Trace\n\t// fields guarded by a lock\n\tlock       sync.RWMutex\n\tthreshold  *time.Duration\n\tendTime    *time.Time\n\ttraceItems []traceItem\n}\n\nfunc (t *Trace) rLock() {\n\tt.lock.RLock()\n}\n\nfunc (t *Trace) rUnlock() {\n\tt.lock.RUnlock()\n}\n\nfunc (t *Trace) time() time.Time {\n\tif t.endTime != nil {\n\t\treturn *t.endTime\n\t}\n\treturn t.startTime // if the trace is incomplete, don't assume an end time\n}\n\nfunc (t *Trace) writeItem(b *bytes.Buffer, formatter string, startTime time.Time, stepThreshold *time.Duration) {\n\tif t.durationIsWithinThreshold() || klogV(4) {\n\t\tb.WriteString(fmt.Sprintf(\"%v[\", formatter))\n\t\twriteTraceItemSummary(b, t.name, t.TotalTime(), t.startTime, t.fields)\n\t\tif st := t.calculateStepThreshold(); st != nil {\n\t\t\tstepThreshold = st\n\t\t}\n\t\tt.writeTraceSteps(b, formatter+\" \", stepThreshold)\n\t\tb.WriteString(\"]\")\n\t\treturn\n\t}\n\t// If the trace should not be written, still check for nested traces that should be written\n\tfor _, s := range t.traceItems {\n\t\tif nestedTrace, ok := s.(*Trace); ok {\n\t\t\tnestedTrace.writeItem(b, formatter, startTime, stepThreshold)\n\t\t}\n\t}\n}\n\n// New creates a Trace with the specified name. The name identifies the operation to be traced. The\n// Fields add key value pairs to provide additional details about the trace, such as operation inputs.\nfunc New(name string, fields ...Field) *Trace {\n\treturn &Trace{name: name, startTime: time.Now(), fields: fields}\n}\n\n// Step adds a new step with a specific message. Call this at the end of an execution step to record\n// how long it took. The Fields add key value pairs to provide additional details about the trace\n// step.\nfunc (t *Trace) Step(msg string, fields ...Field) {\n\tt.lock.Lock()\n\tdefer t.lock.Unlock()\n\tif t.traceItems == nil {\n\t\t// traces almost always have less than 6 steps, do this to avoid more than a single allocation\n\t\tt.traceItems = make([]traceItem, 0, 6)\n\t}\n\tt.traceItems = append(t.traceItems, traceStep{stepTime: time.Now(), msg: msg, fields: fields})\n}\n\n// Nest adds a nested trace with the given message and fields and returns it.\n// As a convenience, if the receiver is nil, returns a top level trace. This allows\n// one to call FromContext(ctx).Nest without having to check if the trace\n// in the context is nil.\nfunc (t *Trace) Nest(msg string, fields ...Field) *Trace {\n\tnewTrace := New(msg, fields...)\n\tif t != nil {\n\t\tnewTrace.parentTrace = t\n\t\tt.lock.Lock()\n\t\tt.traceItems = append(t.traceItems, newTrace)\n\t\tt.lock.Unlock()\n\t}\n\treturn newTrace\n}\n\n// Log is used to dump all the steps in the Trace. It also logs the nested trace messages using indentation.\n// If the Trace is nested it is not immediately logged. Instead, it is logged when the trace it is nested within\n// is logged.\nfunc (t *Trace) Log() {\n\tendTime := time.Now()\n\tt.lock.Lock()\n\tt.endTime = &endTime\n\tt.lock.Unlock()\n\t// an explicit logging request should dump all the steps out at the higher level\n\tif t.parentTrace == nil && klogV(2) { // We don't start logging until Log or LogIfLong is called on the root trace\n\t\tt.logTrace()\n\t}\n}\n\n// LogIfLong only logs the trace if the duration of the trace exceeds the threshold.\n// Only steps that took longer than their share or the given threshold are logged.\n// If klog is at verbosity level 4 or higher and the trace took longer than the threshold,\n// all substeps and subtraces are logged. Otherwise, only those which took longer than\n// their own threshold.\n// If the Trace is nested it is not immediately logged. Instead, it is logged when the trace it\n// is nested within is logged.\nfunc (t *Trace) LogIfLong(threshold time.Duration) {\n\tt.lock.Lock()\n\tt.threshold = &threshold\n\tt.lock.Unlock()\n\tt.Log()\n}\n\n// logTopLevelTraces finds all traces in a hierarchy of nested traces that should be logged but do not have any\n// parents that will be logged, due to threshold limits, and logs them as top level traces.\nfunc (t *Trace) logTrace() {\n\tt.lock.RLock()\n\tdefer t.lock.RUnlock()\n\tif t.durationIsWithinThreshold() {\n\t\tvar buffer bytes.Buffer\n\t\ttraceNum := rand.Int31()\n\n\t\ttotalTime := t.endTime.Sub(t.startTime)\n\t\tbuffer.WriteString(fmt.Sprintf(\"Trace[%d]: %q \", traceNum, t.name))\n\t\tif len(t.fields) > 0 {\n\t\t\twriteFields(&buffer, t.fields)\n\t\t\tbuffer.WriteString(\" \")\n\t\t}\n\n\t\t// if any step took more than it's share of the total allowed time, it deserves a higher log level\n\t\tbuffer.WriteString(fmt.Sprintf(\"(%v) (total time: %vms):\", t.startTime.Format(\"02-Jan-2006 15:04:05.000\"), totalTime.Milliseconds()))\n\t\tstepThreshold := t.calculateStepThreshold()\n\t\tt.writeTraceSteps(&buffer, fmt.Sprintf(\"\\nTrace[%d]: \", traceNum), stepThreshold)\n\t\tbuffer.WriteString(fmt.Sprintf(\"\\nTrace[%d]: [%v] [%v] END\\n\", traceNum, t.endTime.Sub(t.startTime), totalTime))\n\n\t\tklog.Info(buffer.String())\n\t\treturn\n\t}\n\n\t// If the trace should not be logged, still check if nested traces should be logged\n\tfor _, s := range t.traceItems {\n\t\tif nestedTrace, ok := s.(*Trace); ok {\n\t\t\tnestedTrace.logTrace()\n\t\t}\n\t}\n}\n\nfunc (t *Trace) writeTraceSteps(b *bytes.Buffer, formatter string, stepThreshold *time.Duration) {\n\tlastStepTime := t.startTime\n\tfor _, stepOrTrace := range t.traceItems {\n\t\tstepOrTrace.rLock()\n\t\tstepOrTrace.writeItem(b, formatter, lastStepTime, stepThreshold)\n\t\tlastStepTime = stepOrTrace.time()\n\t\tstepOrTrace.rUnlock()\n\t}\n}\n\nfunc (t *Trace) durationIsWithinThreshold() bool {\n\tif t.endTime == nil { // we don't assume incomplete traces meet the threshold\n\t\treturn false\n\t}\n\treturn t.threshold == nil || *t.threshold == 0 || t.endTime.Sub(t.startTime) >= *t.threshold\n}\n\n// TotalTime can be used to figure out how long it took since the Trace was created\nfunc (t *Trace) TotalTime() time.Duration {\n\treturn time.Since(t.startTime)\n}\n\n// calculateStepThreshold returns a threshold for the individual steps of a trace, or nil if there is no threshold and\n// all steps should be written.\nfunc (t *Trace) calculateStepThreshold() *time.Duration {\n\tif t.threshold == nil {\n\t\treturn nil\n\t}\n\tlenTrace := len(t.traceItems) + 1\n\ttraceThreshold := *t.threshold\n\tfor _, s := range t.traceItems {\n\t\tnestedTrace, ok := s.(*Trace)\n\t\tif ok {\n\t\t\tnestedTrace.lock.RLock()\n\t\t\tif nestedTrace.threshold != nil {\n\t\t\t\ttraceThreshold = traceThreshold - *nestedTrace.threshold\n\t\t\t\tlenTrace--\n\t\t\t}\n\t\t\tnestedTrace.lock.RUnlock()\n\t\t}\n\t}\n\n\t// the limit threshold is used when the threshold(\n\t//remaining after subtracting that of the child trace) is getting very close to zero to prevent unnecessary logging\n\tlimitThreshold := *t.threshold / 4\n\tif traceThreshold < limitThreshold {\n\t\ttraceThreshold = limitThreshold\n\t\tlenTrace = len(t.traceItems) + 1\n\t}\n\n\tstepThreshold := traceThreshold / time.Duration(lenTrace)\n\treturn &stepThreshold\n}\n\n// ContextTraceKey provides a common key for traces in context.Context values.\ntype ContextTraceKey struct{}\n\n// FromContext returns the trace keyed by ContextTraceKey in the context values, if one\n// is present, or nil If there is no trace in the Context.\n// It is safe to call Nest() on the returned value even if it is nil because ((*Trace)nil).Nest returns a top level\n// trace.\nfunc FromContext(ctx context.Context) *Trace {\n\tif v, ok := ctx.Value(ContextTraceKey{}).(*Trace); ok {\n\t\treturn v\n\t}\n\treturn nil\n}\n\n// ContextWithTrace returns a context with trace included in the context values, keyed by ContextTraceKey.\nfunc ContextWithTrace(ctx context.Context, trace *Trace) context.Context {\n\treturn context.WithValue(ctx, ContextTraceKey{}, trace)\n}\n"
  },
  {
    "path": "vendor/modules.txt",
    "content": "# github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc\n## explicit\ngithub.com/davecgh/go-spew/spew\n# github.com/emicklei/go-restful/v3 v3.11.0\n## explicit; go 1.13\ngithub.com/emicklei/go-restful/v3\ngithub.com/emicklei/go-restful/v3/log\n# github.com/fxamacker/cbor/v2 v2.7.0\n## explicit; go 1.17\ngithub.com/fxamacker/cbor/v2\n# github.com/go-logr/logr v1.4.2\n## explicit; go 1.18\ngithub.com/go-logr/logr\n# github.com/go-openapi/jsonpointer v0.21.0\n## explicit; go 1.20\ngithub.com/go-openapi/jsonpointer\n# github.com/go-openapi/jsonreference v0.20.2\n## explicit; go 1.13\ngithub.com/go-openapi/jsonreference\ngithub.com/go-openapi/jsonreference/internal\n# github.com/go-openapi/swag v0.23.0\n## explicit; go 1.20\ngithub.com/go-openapi/swag\n# github.com/gogo/protobuf v1.3.2\n## explicit; go 1.15\ngithub.com/gogo/protobuf/proto\ngithub.com/gogo/protobuf/sortkeys\n# github.com/golang/glog v1.2.4\n## explicit; go 1.19\ngithub.com/golang/glog\ngithub.com/golang/glog/internal/logsink\ngithub.com/golang/glog/internal/stackdump\n# github.com/golang/protobuf v1.5.4\n## explicit; go 1.17\ngithub.com/golang/protobuf/proto\ngithub.com/golang/protobuf/ptypes\ngithub.com/golang/protobuf/ptypes/any\ngithub.com/golang/protobuf/ptypes/duration\ngithub.com/golang/protobuf/ptypes/timestamp\n# github.com/google/gnostic-models v0.6.8\n## explicit; go 1.18\ngithub.com/google/gnostic-models/compiler\ngithub.com/google/gnostic-models/extensions\ngithub.com/google/gnostic-models/jsonschema\ngithub.com/google/gnostic-models/openapiv2\ngithub.com/google/gnostic-models/openapiv3\n# github.com/google/go-cmp v0.6.0\n## explicit; go 1.13\ngithub.com/google/go-cmp/cmp\ngithub.com/google/go-cmp/cmp/internal/diff\ngithub.com/google/go-cmp/cmp/internal/flags\ngithub.com/google/go-cmp/cmp/internal/function\ngithub.com/google/go-cmp/cmp/internal/value\n# github.com/google/gofuzz v1.2.0\n## explicit; go 1.12\ngithub.com/google/gofuzz\ngithub.com/google/gofuzz/bytesource\n# github.com/google/uuid v1.6.0\n## explicit\ngithub.com/google/uuid\n# github.com/inconshreveable/mousetrap v1.1.0\n## explicit; go 1.18\ngithub.com/inconshreveable/mousetrap\n# github.com/josharian/intern v1.0.0\n## explicit; go 1.5\ngithub.com/josharian/intern\n# github.com/json-iterator/go v1.1.12\n## explicit; go 1.12\ngithub.com/json-iterator/go\n# github.com/mailru/easyjson v0.7.7\n## explicit; go 1.12\ngithub.com/mailru/easyjson/buffer\ngithub.com/mailru/easyjson/jlexer\ngithub.com/mailru/easyjson/jwriter\n# github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd\n## explicit\ngithub.com/modern-go/concurrent\n# github.com/modern-go/reflect2 v1.0.2\n## explicit; go 1.12\ngithub.com/modern-go/reflect2\n# github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822\n## explicit\ngithub.com/munnerz/goautoneg\n# github.com/pkg/errors v0.9.1\n## explicit\ngithub.com/pkg/errors\n# github.com/spf13/cobra v1.8.1\n## explicit; go 1.15\ngithub.com/spf13/cobra\n# github.com/spf13/pflag v1.0.6\n## explicit; go 1.12\ngithub.com/spf13/pflag\n# github.com/x448/float16 v0.8.4\n## explicit; go 1.11\ngithub.com/x448/float16\n# golang.org/x/net v0.36.0\n## explicit; go 1.23.0\ngolang.org/x/net/http/httpguts\ngolang.org/x/net/http2\ngolang.org/x/net/http2/hpack\ngolang.org/x/net/idna\ngolang.org/x/net/internal/httpcommon\n# golang.org/x/oauth2 v0.23.0\n## explicit; go 1.18\ngolang.org/x/oauth2\ngolang.org/x/oauth2/internal\n# golang.org/x/sys v0.30.0\n## explicit; go 1.18\ngolang.org/x/sys/plan9\ngolang.org/x/sys/unix\ngolang.org/x/sys/windows\n# golang.org/x/term v0.29.0\n## explicit; go 1.18\ngolang.org/x/term\n# golang.org/x/text v0.22.0\n## explicit; go 1.18\ngolang.org/x/text/secure/bidirule\ngolang.org/x/text/transform\ngolang.org/x/text/unicode/bidi\ngolang.org/x/text/unicode/norm\n# golang.org/x/time v0.7.0\n## explicit; go 1.18\ngolang.org/x/time/rate\n# google.golang.org/protobuf v1.35.1\n## explicit; go 1.21\ngoogle.golang.org/protobuf/encoding/prototext\ngoogle.golang.org/protobuf/encoding/protowire\ngoogle.golang.org/protobuf/internal/descfmt\ngoogle.golang.org/protobuf/internal/descopts\ngoogle.golang.org/protobuf/internal/detrand\ngoogle.golang.org/protobuf/internal/editiondefaults\ngoogle.golang.org/protobuf/internal/editionssupport\ngoogle.golang.org/protobuf/internal/encoding/defval\ngoogle.golang.org/protobuf/internal/encoding/messageset\ngoogle.golang.org/protobuf/internal/encoding/tag\ngoogle.golang.org/protobuf/internal/encoding/text\ngoogle.golang.org/protobuf/internal/errors\ngoogle.golang.org/protobuf/internal/filedesc\ngoogle.golang.org/protobuf/internal/filetype\ngoogle.golang.org/protobuf/internal/flags\ngoogle.golang.org/protobuf/internal/genid\ngoogle.golang.org/protobuf/internal/impl\ngoogle.golang.org/protobuf/internal/order\ngoogle.golang.org/protobuf/internal/pragma\ngoogle.golang.org/protobuf/internal/set\ngoogle.golang.org/protobuf/internal/strs\ngoogle.golang.org/protobuf/internal/version\ngoogle.golang.org/protobuf/proto\ngoogle.golang.org/protobuf/reflect/protodesc\ngoogle.golang.org/protobuf/reflect/protoreflect\ngoogle.golang.org/protobuf/reflect/protoregistry\ngoogle.golang.org/protobuf/runtime/protoiface\ngoogle.golang.org/protobuf/runtime/protoimpl\ngoogle.golang.org/protobuf/types/descriptorpb\ngoogle.golang.org/protobuf/types/gofeaturespb\ngoogle.golang.org/protobuf/types/known/anypb\ngoogle.golang.org/protobuf/types/known/durationpb\ngoogle.golang.org/protobuf/types/known/timestamppb\n# gopkg.in/evanphx/json-patch.v4 v4.12.0\n## explicit\ngopkg.in/evanphx/json-patch.v4\n# gopkg.in/inf.v0 v0.9.1\n## explicit\ngopkg.in/inf.v0\n# gopkg.in/yaml.v3 v3.0.1\n## explicit\ngopkg.in/yaml.v3\n# k8s.io/api v0.32.3\n## explicit; go 1.23.0\nk8s.io/api/admissionregistration/v1\nk8s.io/api/admissionregistration/v1alpha1\nk8s.io/api/admissionregistration/v1beta1\nk8s.io/api/apidiscovery/v2\nk8s.io/api/apidiscovery/v2beta1\nk8s.io/api/apiserverinternal/v1alpha1\nk8s.io/api/apps/v1\nk8s.io/api/apps/v1beta1\nk8s.io/api/apps/v1beta2\nk8s.io/api/authentication/v1\nk8s.io/api/authentication/v1alpha1\nk8s.io/api/authentication/v1beta1\nk8s.io/api/authorization/v1\nk8s.io/api/authorization/v1beta1\nk8s.io/api/autoscaling/v1\nk8s.io/api/autoscaling/v2\nk8s.io/api/autoscaling/v2beta1\nk8s.io/api/autoscaling/v2beta2\nk8s.io/api/batch/v1\nk8s.io/api/batch/v1beta1\nk8s.io/api/certificates/v1\nk8s.io/api/certificates/v1alpha1\nk8s.io/api/certificates/v1beta1\nk8s.io/api/coordination/v1\nk8s.io/api/coordination/v1alpha2\nk8s.io/api/coordination/v1beta1\nk8s.io/api/core/v1\nk8s.io/api/discovery/v1\nk8s.io/api/discovery/v1beta1\nk8s.io/api/events/v1\nk8s.io/api/events/v1beta1\nk8s.io/api/extensions/v1beta1\nk8s.io/api/flowcontrol/v1\nk8s.io/api/flowcontrol/v1beta1\nk8s.io/api/flowcontrol/v1beta2\nk8s.io/api/flowcontrol/v1beta3\nk8s.io/api/imagepolicy/v1alpha1\nk8s.io/api/networking/v1\nk8s.io/api/networking/v1alpha1\nk8s.io/api/networking/v1beta1\nk8s.io/api/node/v1\nk8s.io/api/node/v1alpha1\nk8s.io/api/node/v1beta1\nk8s.io/api/policy/v1\nk8s.io/api/policy/v1beta1\nk8s.io/api/rbac/v1\nk8s.io/api/rbac/v1alpha1\nk8s.io/api/rbac/v1beta1\nk8s.io/api/resource/v1alpha3\nk8s.io/api/resource/v1beta1\nk8s.io/api/scheduling/v1\nk8s.io/api/scheduling/v1alpha1\nk8s.io/api/scheduling/v1beta1\nk8s.io/api/storage/v1\nk8s.io/api/storage/v1alpha1\nk8s.io/api/storage/v1beta1\nk8s.io/api/storagemigration/v1alpha1\n# k8s.io/apimachinery v0.32.3\n## explicit; go 1.23.0\nk8s.io/apimachinery/pkg/api/equality\nk8s.io/apimachinery/pkg/api/errors\nk8s.io/apimachinery/pkg/api/meta\nk8s.io/apimachinery/pkg/api/meta/testrestmapper\nk8s.io/apimachinery/pkg/api/resource\nk8s.io/apimachinery/pkg/api/validation\nk8s.io/apimachinery/pkg/apis/meta/internalversion\nk8s.io/apimachinery/pkg/apis/meta/internalversion/validation\nk8s.io/apimachinery/pkg/apis/meta/v1\nk8s.io/apimachinery/pkg/apis/meta/v1/unstructured\nk8s.io/apimachinery/pkg/apis/meta/v1/validation\nk8s.io/apimachinery/pkg/apis/meta/v1beta1\nk8s.io/apimachinery/pkg/conversion\nk8s.io/apimachinery/pkg/conversion/queryparams\nk8s.io/apimachinery/pkg/fields\nk8s.io/apimachinery/pkg/labels\nk8s.io/apimachinery/pkg/runtime\nk8s.io/apimachinery/pkg/runtime/schema\nk8s.io/apimachinery/pkg/runtime/serializer\nk8s.io/apimachinery/pkg/runtime/serializer/cbor\nk8s.io/apimachinery/pkg/runtime/serializer/cbor/direct\nk8s.io/apimachinery/pkg/runtime/serializer/cbor/internal/modes\nk8s.io/apimachinery/pkg/runtime/serializer/json\nk8s.io/apimachinery/pkg/runtime/serializer/protobuf\nk8s.io/apimachinery/pkg/runtime/serializer/recognizer\nk8s.io/apimachinery/pkg/runtime/serializer/streaming\nk8s.io/apimachinery/pkg/runtime/serializer/versioning\nk8s.io/apimachinery/pkg/selection\nk8s.io/apimachinery/pkg/types\nk8s.io/apimachinery/pkg/util/cache\nk8s.io/apimachinery/pkg/util/diff\nk8s.io/apimachinery/pkg/util/dump\nk8s.io/apimachinery/pkg/util/errors\nk8s.io/apimachinery/pkg/util/framer\nk8s.io/apimachinery/pkg/util/intstr\nk8s.io/apimachinery/pkg/util/json\nk8s.io/apimachinery/pkg/util/managedfields\nk8s.io/apimachinery/pkg/util/managedfields/internal\nk8s.io/apimachinery/pkg/util/mergepatch\nk8s.io/apimachinery/pkg/util/naming\nk8s.io/apimachinery/pkg/util/net\nk8s.io/apimachinery/pkg/util/runtime\nk8s.io/apimachinery/pkg/util/sets\nk8s.io/apimachinery/pkg/util/strategicpatch\nk8s.io/apimachinery/pkg/util/validation\nk8s.io/apimachinery/pkg/util/validation/field\nk8s.io/apimachinery/pkg/util/wait\nk8s.io/apimachinery/pkg/util/yaml\nk8s.io/apimachinery/pkg/version\nk8s.io/apimachinery/pkg/watch\nk8s.io/apimachinery/third_party/forked/golang/json\nk8s.io/apimachinery/third_party/forked/golang/reflect\n# k8s.io/client-go v0.32.3\n## explicit; go 1.23.0\nk8s.io/client-go/applyconfigurations\nk8s.io/client-go/applyconfigurations/admissionregistration/v1\nk8s.io/client-go/applyconfigurations/admissionregistration/v1alpha1\nk8s.io/client-go/applyconfigurations/admissionregistration/v1beta1\nk8s.io/client-go/applyconfigurations/apiserverinternal/v1alpha1\nk8s.io/client-go/applyconfigurations/apps/v1\nk8s.io/client-go/applyconfigurations/apps/v1beta1\nk8s.io/client-go/applyconfigurations/apps/v1beta2\nk8s.io/client-go/applyconfigurations/autoscaling/v1\nk8s.io/client-go/applyconfigurations/autoscaling/v2\nk8s.io/client-go/applyconfigurations/autoscaling/v2beta1\nk8s.io/client-go/applyconfigurations/autoscaling/v2beta2\nk8s.io/client-go/applyconfigurations/batch/v1\nk8s.io/client-go/applyconfigurations/batch/v1beta1\nk8s.io/client-go/applyconfigurations/certificates/v1\nk8s.io/client-go/applyconfigurations/certificates/v1alpha1\nk8s.io/client-go/applyconfigurations/certificates/v1beta1\nk8s.io/client-go/applyconfigurations/coordination/v1\nk8s.io/client-go/applyconfigurations/coordination/v1alpha2\nk8s.io/client-go/applyconfigurations/coordination/v1beta1\nk8s.io/client-go/applyconfigurations/core/v1\nk8s.io/client-go/applyconfigurations/discovery/v1\nk8s.io/client-go/applyconfigurations/discovery/v1beta1\nk8s.io/client-go/applyconfigurations/events/v1\nk8s.io/client-go/applyconfigurations/events/v1beta1\nk8s.io/client-go/applyconfigurations/extensions/v1beta1\nk8s.io/client-go/applyconfigurations/flowcontrol/v1\nk8s.io/client-go/applyconfigurations/flowcontrol/v1beta1\nk8s.io/client-go/applyconfigurations/flowcontrol/v1beta2\nk8s.io/client-go/applyconfigurations/flowcontrol/v1beta3\nk8s.io/client-go/applyconfigurations/imagepolicy/v1alpha1\nk8s.io/client-go/applyconfigurations/internal\nk8s.io/client-go/applyconfigurations/meta/v1\nk8s.io/client-go/applyconfigurations/networking/v1\nk8s.io/client-go/applyconfigurations/networking/v1alpha1\nk8s.io/client-go/applyconfigurations/networking/v1beta1\nk8s.io/client-go/applyconfigurations/node/v1\nk8s.io/client-go/applyconfigurations/node/v1alpha1\nk8s.io/client-go/applyconfigurations/node/v1beta1\nk8s.io/client-go/applyconfigurations/policy/v1\nk8s.io/client-go/applyconfigurations/policy/v1beta1\nk8s.io/client-go/applyconfigurations/rbac/v1\nk8s.io/client-go/applyconfigurations/rbac/v1alpha1\nk8s.io/client-go/applyconfigurations/rbac/v1beta1\nk8s.io/client-go/applyconfigurations/resource/v1alpha3\nk8s.io/client-go/applyconfigurations/resource/v1beta1\nk8s.io/client-go/applyconfigurations/scheduling/v1\nk8s.io/client-go/applyconfigurations/scheduling/v1alpha1\nk8s.io/client-go/applyconfigurations/scheduling/v1beta1\nk8s.io/client-go/applyconfigurations/storage/v1\nk8s.io/client-go/applyconfigurations/storage/v1alpha1\nk8s.io/client-go/applyconfigurations/storage/v1beta1\nk8s.io/client-go/applyconfigurations/storagemigration/v1alpha1\nk8s.io/client-go/discovery\nk8s.io/client-go/discovery/fake\nk8s.io/client-go/features\nk8s.io/client-go/gentype\nk8s.io/client-go/informers\nk8s.io/client-go/informers/admissionregistration\nk8s.io/client-go/informers/admissionregistration/v1\nk8s.io/client-go/informers/admissionregistration/v1alpha1\nk8s.io/client-go/informers/admissionregistration/v1beta1\nk8s.io/client-go/informers/apiserverinternal\nk8s.io/client-go/informers/apiserverinternal/v1alpha1\nk8s.io/client-go/informers/apps\nk8s.io/client-go/informers/apps/v1\nk8s.io/client-go/informers/apps/v1beta1\nk8s.io/client-go/informers/apps/v1beta2\nk8s.io/client-go/informers/autoscaling\nk8s.io/client-go/informers/autoscaling/v1\nk8s.io/client-go/informers/autoscaling/v2\nk8s.io/client-go/informers/autoscaling/v2beta1\nk8s.io/client-go/informers/autoscaling/v2beta2\nk8s.io/client-go/informers/batch\nk8s.io/client-go/informers/batch/v1\nk8s.io/client-go/informers/batch/v1beta1\nk8s.io/client-go/informers/certificates\nk8s.io/client-go/informers/certificates/v1\nk8s.io/client-go/informers/certificates/v1alpha1\nk8s.io/client-go/informers/certificates/v1beta1\nk8s.io/client-go/informers/coordination\nk8s.io/client-go/informers/coordination/v1\nk8s.io/client-go/informers/coordination/v1alpha2\nk8s.io/client-go/informers/coordination/v1beta1\nk8s.io/client-go/informers/core\nk8s.io/client-go/informers/core/v1\nk8s.io/client-go/informers/discovery\nk8s.io/client-go/informers/discovery/v1\nk8s.io/client-go/informers/discovery/v1beta1\nk8s.io/client-go/informers/events\nk8s.io/client-go/informers/events/v1\nk8s.io/client-go/informers/events/v1beta1\nk8s.io/client-go/informers/extensions\nk8s.io/client-go/informers/extensions/v1beta1\nk8s.io/client-go/informers/flowcontrol\nk8s.io/client-go/informers/flowcontrol/v1\nk8s.io/client-go/informers/flowcontrol/v1beta1\nk8s.io/client-go/informers/flowcontrol/v1beta2\nk8s.io/client-go/informers/flowcontrol/v1beta3\nk8s.io/client-go/informers/internalinterfaces\nk8s.io/client-go/informers/networking\nk8s.io/client-go/informers/networking/v1\nk8s.io/client-go/informers/networking/v1alpha1\nk8s.io/client-go/informers/networking/v1beta1\nk8s.io/client-go/informers/node\nk8s.io/client-go/informers/node/v1\nk8s.io/client-go/informers/node/v1alpha1\nk8s.io/client-go/informers/node/v1beta1\nk8s.io/client-go/informers/policy\nk8s.io/client-go/informers/policy/v1\nk8s.io/client-go/informers/policy/v1beta1\nk8s.io/client-go/informers/rbac\nk8s.io/client-go/informers/rbac/v1\nk8s.io/client-go/informers/rbac/v1alpha1\nk8s.io/client-go/informers/rbac/v1beta1\nk8s.io/client-go/informers/resource\nk8s.io/client-go/informers/resource/v1alpha3\nk8s.io/client-go/informers/resource/v1beta1\nk8s.io/client-go/informers/scheduling\nk8s.io/client-go/informers/scheduling/v1\nk8s.io/client-go/informers/scheduling/v1alpha1\nk8s.io/client-go/informers/scheduling/v1beta1\nk8s.io/client-go/informers/storage\nk8s.io/client-go/informers/storage/v1\nk8s.io/client-go/informers/storage/v1alpha1\nk8s.io/client-go/informers/storage/v1beta1\nk8s.io/client-go/informers/storagemigration\nk8s.io/client-go/informers/storagemigration/v1alpha1\nk8s.io/client-go/kubernetes\nk8s.io/client-go/kubernetes/fake\nk8s.io/client-go/kubernetes/scheme\nk8s.io/client-go/kubernetes/typed/admissionregistration/v1\nk8s.io/client-go/kubernetes/typed/admissionregistration/v1/fake\nk8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1\nk8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake\nk8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1\nk8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1/fake\nk8s.io/client-go/kubernetes/typed/apiserverinternal/v1alpha1\nk8s.io/client-go/kubernetes/typed/apiserverinternal/v1alpha1/fake\nk8s.io/client-go/kubernetes/typed/apps/v1\nk8s.io/client-go/kubernetes/typed/apps/v1/fake\nk8s.io/client-go/kubernetes/typed/apps/v1beta1\nk8s.io/client-go/kubernetes/typed/apps/v1beta1/fake\nk8s.io/client-go/kubernetes/typed/apps/v1beta2\nk8s.io/client-go/kubernetes/typed/apps/v1beta2/fake\nk8s.io/client-go/kubernetes/typed/authentication/v1\nk8s.io/client-go/kubernetes/typed/authentication/v1/fake\nk8s.io/client-go/kubernetes/typed/authentication/v1alpha1\nk8s.io/client-go/kubernetes/typed/authentication/v1alpha1/fake\nk8s.io/client-go/kubernetes/typed/authentication/v1beta1\nk8s.io/client-go/kubernetes/typed/authentication/v1beta1/fake\nk8s.io/client-go/kubernetes/typed/authorization/v1\nk8s.io/client-go/kubernetes/typed/authorization/v1/fake\nk8s.io/client-go/kubernetes/typed/authorization/v1beta1\nk8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake\nk8s.io/client-go/kubernetes/typed/autoscaling/v1\nk8s.io/client-go/kubernetes/typed/autoscaling/v1/fake\nk8s.io/client-go/kubernetes/typed/autoscaling/v2\nk8s.io/client-go/kubernetes/typed/autoscaling/v2/fake\nk8s.io/client-go/kubernetes/typed/autoscaling/v2beta1\nk8s.io/client-go/kubernetes/typed/autoscaling/v2beta1/fake\nk8s.io/client-go/kubernetes/typed/autoscaling/v2beta2\nk8s.io/client-go/kubernetes/typed/autoscaling/v2beta2/fake\nk8s.io/client-go/kubernetes/typed/batch/v1\nk8s.io/client-go/kubernetes/typed/batch/v1/fake\nk8s.io/client-go/kubernetes/typed/batch/v1beta1\nk8s.io/client-go/kubernetes/typed/batch/v1beta1/fake\nk8s.io/client-go/kubernetes/typed/certificates/v1\nk8s.io/client-go/kubernetes/typed/certificates/v1/fake\nk8s.io/client-go/kubernetes/typed/certificates/v1alpha1\nk8s.io/client-go/kubernetes/typed/certificates/v1alpha1/fake\nk8s.io/client-go/kubernetes/typed/certificates/v1beta1\nk8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake\nk8s.io/client-go/kubernetes/typed/coordination/v1\nk8s.io/client-go/kubernetes/typed/coordination/v1/fake\nk8s.io/client-go/kubernetes/typed/coordination/v1alpha2\nk8s.io/client-go/kubernetes/typed/coordination/v1alpha2/fake\nk8s.io/client-go/kubernetes/typed/coordination/v1beta1\nk8s.io/client-go/kubernetes/typed/coordination/v1beta1/fake\nk8s.io/client-go/kubernetes/typed/core/v1\nk8s.io/client-go/kubernetes/typed/core/v1/fake\nk8s.io/client-go/kubernetes/typed/discovery/v1\nk8s.io/client-go/kubernetes/typed/discovery/v1/fake\nk8s.io/client-go/kubernetes/typed/discovery/v1beta1\nk8s.io/client-go/kubernetes/typed/discovery/v1beta1/fake\nk8s.io/client-go/kubernetes/typed/events/v1\nk8s.io/client-go/kubernetes/typed/events/v1/fake\nk8s.io/client-go/kubernetes/typed/events/v1beta1\nk8s.io/client-go/kubernetes/typed/events/v1beta1/fake\nk8s.io/client-go/kubernetes/typed/extensions/v1beta1\nk8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake\nk8s.io/client-go/kubernetes/typed/flowcontrol/v1\nk8s.io/client-go/kubernetes/typed/flowcontrol/v1/fake\nk8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1\nk8s.io/client-go/kubernetes/typed/flowcontrol/v1beta1/fake\nk8s.io/client-go/kubernetes/typed/flowcontrol/v1beta2\nk8s.io/client-go/kubernetes/typed/flowcontrol/v1beta2/fake\nk8s.io/client-go/kubernetes/typed/flowcontrol/v1beta3\nk8s.io/client-go/kubernetes/typed/flowcontrol/v1beta3/fake\nk8s.io/client-go/kubernetes/typed/networking/v1\nk8s.io/client-go/kubernetes/typed/networking/v1/fake\nk8s.io/client-go/kubernetes/typed/networking/v1alpha1\nk8s.io/client-go/kubernetes/typed/networking/v1alpha1/fake\nk8s.io/client-go/kubernetes/typed/networking/v1beta1\nk8s.io/client-go/kubernetes/typed/networking/v1beta1/fake\nk8s.io/client-go/kubernetes/typed/node/v1\nk8s.io/client-go/kubernetes/typed/node/v1/fake\nk8s.io/client-go/kubernetes/typed/node/v1alpha1\nk8s.io/client-go/kubernetes/typed/node/v1alpha1/fake\nk8s.io/client-go/kubernetes/typed/node/v1beta1\nk8s.io/client-go/kubernetes/typed/node/v1beta1/fake\nk8s.io/client-go/kubernetes/typed/policy/v1\nk8s.io/client-go/kubernetes/typed/policy/v1/fake\nk8s.io/client-go/kubernetes/typed/policy/v1beta1\nk8s.io/client-go/kubernetes/typed/policy/v1beta1/fake\nk8s.io/client-go/kubernetes/typed/rbac/v1\nk8s.io/client-go/kubernetes/typed/rbac/v1/fake\nk8s.io/client-go/kubernetes/typed/rbac/v1alpha1\nk8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake\nk8s.io/client-go/kubernetes/typed/rbac/v1beta1\nk8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake\nk8s.io/client-go/kubernetes/typed/resource/v1alpha3\nk8s.io/client-go/kubernetes/typed/resource/v1alpha3/fake\nk8s.io/client-go/kubernetes/typed/resource/v1beta1\nk8s.io/client-go/kubernetes/typed/resource/v1beta1/fake\nk8s.io/client-go/kubernetes/typed/scheduling/v1\nk8s.io/client-go/kubernetes/typed/scheduling/v1/fake\nk8s.io/client-go/kubernetes/typed/scheduling/v1alpha1\nk8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake\nk8s.io/client-go/kubernetes/typed/scheduling/v1beta1\nk8s.io/client-go/kubernetes/typed/scheduling/v1beta1/fake\nk8s.io/client-go/kubernetes/typed/storage/v1\nk8s.io/client-go/kubernetes/typed/storage/v1/fake\nk8s.io/client-go/kubernetes/typed/storage/v1alpha1\nk8s.io/client-go/kubernetes/typed/storage/v1alpha1/fake\nk8s.io/client-go/kubernetes/typed/storage/v1beta1\nk8s.io/client-go/kubernetes/typed/storage/v1beta1/fake\nk8s.io/client-go/kubernetes/typed/storagemigration/v1alpha1\nk8s.io/client-go/kubernetes/typed/storagemigration/v1alpha1/fake\nk8s.io/client-go/listers\nk8s.io/client-go/listers/admissionregistration/v1\nk8s.io/client-go/listers/admissionregistration/v1alpha1\nk8s.io/client-go/listers/admissionregistration/v1beta1\nk8s.io/client-go/listers/apiserverinternal/v1alpha1\nk8s.io/client-go/listers/apps/v1\nk8s.io/client-go/listers/apps/v1beta1\nk8s.io/client-go/listers/apps/v1beta2\nk8s.io/client-go/listers/autoscaling/v1\nk8s.io/client-go/listers/autoscaling/v2\nk8s.io/client-go/listers/autoscaling/v2beta1\nk8s.io/client-go/listers/autoscaling/v2beta2\nk8s.io/client-go/listers/batch/v1\nk8s.io/client-go/listers/batch/v1beta1\nk8s.io/client-go/listers/certificates/v1\nk8s.io/client-go/listers/certificates/v1alpha1\nk8s.io/client-go/listers/certificates/v1beta1\nk8s.io/client-go/listers/coordination/v1\nk8s.io/client-go/listers/coordination/v1alpha2\nk8s.io/client-go/listers/coordination/v1beta1\nk8s.io/client-go/listers/core/v1\nk8s.io/client-go/listers/discovery/v1\nk8s.io/client-go/listers/discovery/v1beta1\nk8s.io/client-go/listers/events/v1\nk8s.io/client-go/listers/events/v1beta1\nk8s.io/client-go/listers/extensions/v1beta1\nk8s.io/client-go/listers/flowcontrol/v1\nk8s.io/client-go/listers/flowcontrol/v1beta1\nk8s.io/client-go/listers/flowcontrol/v1beta2\nk8s.io/client-go/listers/flowcontrol/v1beta3\nk8s.io/client-go/listers/networking/v1\nk8s.io/client-go/listers/networking/v1alpha1\nk8s.io/client-go/listers/networking/v1beta1\nk8s.io/client-go/listers/node/v1\nk8s.io/client-go/listers/node/v1alpha1\nk8s.io/client-go/listers/node/v1beta1\nk8s.io/client-go/listers/policy/v1\nk8s.io/client-go/listers/policy/v1beta1\nk8s.io/client-go/listers/rbac/v1\nk8s.io/client-go/listers/rbac/v1alpha1\nk8s.io/client-go/listers/rbac/v1beta1\nk8s.io/client-go/listers/resource/v1alpha3\nk8s.io/client-go/listers/resource/v1beta1\nk8s.io/client-go/listers/scheduling/v1\nk8s.io/client-go/listers/scheduling/v1alpha1\nk8s.io/client-go/listers/scheduling/v1beta1\nk8s.io/client-go/listers/storage/v1\nk8s.io/client-go/listers/storage/v1alpha1\nk8s.io/client-go/listers/storage/v1beta1\nk8s.io/client-go/listers/storagemigration/v1alpha1\nk8s.io/client-go/openapi\nk8s.io/client-go/pkg/apis/clientauthentication\nk8s.io/client-go/pkg/apis/clientauthentication/install\nk8s.io/client-go/pkg/apis/clientauthentication/v1\nk8s.io/client-go/pkg/apis/clientauthentication/v1beta1\nk8s.io/client-go/pkg/version\nk8s.io/client-go/plugin/pkg/client/auth/exec\nk8s.io/client-go/rest\nk8s.io/client-go/rest/fake\nk8s.io/client-go/rest/watch\nk8s.io/client-go/testing\nk8s.io/client-go/tools/cache\nk8s.io/client-go/tools/cache/synctrack\nk8s.io/client-go/tools/clientcmd/api\nk8s.io/client-go/tools/metrics\nk8s.io/client-go/tools/pager\nk8s.io/client-go/tools/reference\nk8s.io/client-go/transport\nk8s.io/client-go/util/apply\nk8s.io/client-go/util/cert\nk8s.io/client-go/util/connrotation\nk8s.io/client-go/util/consistencydetector\nk8s.io/client-go/util/flowcontrol\nk8s.io/client-go/util/keyutil\nk8s.io/client-go/util/watchlist\nk8s.io/client-go/util/workqueue\n# k8s.io/component-base v0.32.3\n## explicit; go 1.23.0\nk8s.io/component-base/cli/flag\n# k8s.io/klog/v2 v2.130.1\n## explicit; go 1.18\nk8s.io/klog/v2\nk8s.io/klog/v2/internal/buffer\nk8s.io/klog/v2/internal/clock\nk8s.io/klog/v2/internal/dbg\nk8s.io/klog/v2/internal/serialize\nk8s.io/klog/v2/internal/severity\nk8s.io/klog/v2/internal/sloghandler\n# k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f\n## explicit; go 1.20\nk8s.io/kube-openapi/pkg/cached\nk8s.io/kube-openapi/pkg/common\nk8s.io/kube-openapi/pkg/handler3\nk8s.io/kube-openapi/pkg/internal\nk8s.io/kube-openapi/pkg/internal/third_party/go-json-experiment/json\nk8s.io/kube-openapi/pkg/schemaconv\nk8s.io/kube-openapi/pkg/spec3\nk8s.io/kube-openapi/pkg/util/proto\nk8s.io/kube-openapi/pkg/validation/spec\n# k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738\n## explicit; go 1.18\nk8s.io/utils/buffer\nk8s.io/utils/clock\nk8s.io/utils/clock/testing\nk8s.io/utils/internal/third_party/forked/golang/net\nk8s.io/utils/net\nk8s.io/utils/pointer\nk8s.io/utils/ptr\nk8s.io/utils/trace\n# sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3\n## explicit; go 1.21\nsigs.k8s.io/json\nsigs.k8s.io/json/internal/golang/encoding/json\n# sigs.k8s.io/structured-merge-diff/v4 v4.4.2\n## explicit; go 1.13\nsigs.k8s.io/structured-merge-diff/v4/fieldpath\nsigs.k8s.io/structured-merge-diff/v4/merge\nsigs.k8s.io/structured-merge-diff/v4/schema\nsigs.k8s.io/structured-merge-diff/v4/typed\nsigs.k8s.io/structured-merge-diff/v4/value\n# sigs.k8s.io/yaml v1.4.0\n## explicit; go 1.12\nsigs.k8s.io/yaml\nsigs.k8s.io/yaml/goyaml.v2\n"
  },
  {
    "path": "vendor/sigs.k8s.io/json/CONTRIBUTING.md",
    "content": "# Contributing Guidelines\n\nWelcome to Kubernetes. We are excited about the prospect of you joining our [community](https://git.k8s.io/community)! The Kubernetes community abides by the CNCF [code of conduct](code-of-conduct.md). Here is an excerpt:\n\n_As contributors and maintainers of this project, and in the interest of fostering an open and welcoming community, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities._\n\n## Criteria for adding code here\n\nThis library adapts the stdlib `encoding/json` decoder to be compatible with \nKubernetes JSON decoding, and is not expected to actively add new features.\n\nIt may be updated with changes from the stdlib `encoding/json` decoder.\n\nAny code that is added must:\n* Have full unit test and benchmark coverage\n* Be backward compatible with the existing exposed go API\n* Have zero external dependencies\n* Preserve existing benchmark performance\n* Preserve compatibility with existing decoding behavior of `UnmarshalCaseSensitivePreserveInts()` or `UnmarshalStrict()`\n* Avoid use of `unsafe`\n\n## Getting Started\n\nWe have full documentation on how to get started contributing here:\n\n<!---\nIf your repo has certain guidelines for contribution, put them here ahead of the general k8s resources\n-->\n\n- [Contributor License Agreement](https://git.k8s.io/community/CLA.md) Kubernetes projects require that you sign a Contributor License Agreement (CLA) before we can accept your pull requests\n- [Kubernetes Contributor Guide](https://git.k8s.io/community/contributors/guide) - Main contributor documentation, or you can just jump directly to the [contributing section](https://git.k8s.io/community/contributors/guide#contributing)\n- [Contributor Cheat Sheet](https://git.k8s.io/community/contributors/guide/contributor-cheatsheet) - Common resources for existing developers\n\n## Community, discussion, contribution, and support\n\nYou can reach the maintainers of this project via the \n[sig-api-machinery mailing list / channels](https://github.com/kubernetes/community/tree/master/sig-api-machinery#contact).\n\n## Mentorship\n\n- [Mentoring Initiatives](https://git.k8s.io/community/mentoring) - We have a diverse set of mentorship programs available that are always looking for volunteers!\n\n"
  },
  {
    "path": "vendor/sigs.k8s.io/json/LICENSE",
    "content": "Files other than internal/golang/* licensed under:\n\n\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n\n\n------------------\n\ninternal/golang/* files licensed under:\n\n\nCopyright (c) 2009 The Go Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
  },
  {
    "path": "vendor/sigs.k8s.io/json/Makefile",
    "content": ".PHONY: default build test benchmark fmt vet\n\ndefault: build\n\nbuild:\n\tgo build ./...\n\ntest:\n\tgo test sigs.k8s.io/json/...\n\nbenchmark:\n\tgo test sigs.k8s.io/json -bench . -benchmem\n\nfmt:\n\tgo mod tidy\n\tgofmt -s -w *.go\n\nvet:\n\tgo vet sigs.k8s.io/json\n\n\t@echo \"checking for external dependencies\"\n\t@deps=$$(go list -f '{{ if not (or .Standard .Module.Main) }}{{.ImportPath}}{{ end }}' -deps sigs.k8s.io/json/... || true); \\\n\tif [ -n \"$${deps}\" ]; then \\\n\t\techo \"only stdlib dependencies allowed, found:\"; \\\n\t\techo \"$${deps}\"; \\\n\t\texit 1; \\\n\tfi\n\n\t@echo \"checking for unsafe use\"\n\t@unsafe=$$(go list -f '{{.ImportPath}} depends on {{.Imports}}' sigs.k8s.io/json/... | grep unsafe || true); \\\n\tif [ -n \"$${unsafe}\" ]; then \\\n\t\techo \"no dependencies on unsafe allowed, found:\"; \\\n\t\techo \"$${unsafe}\"; \\\n\t\texit 1; \\\n\tfi\n"
  },
  {
    "path": "vendor/sigs.k8s.io/json/OWNERS",
    "content": "# See the OWNERS docs at https://go.k8s.io/owners\n\napprovers:\n  - deads2k\n  - jpbetz\n  - liggitt\n"
  },
  {
    "path": "vendor/sigs.k8s.io/json/README.md",
    "content": "# sigs.k8s.io/json\n\n[![Go Reference](https://pkg.go.dev/badge/sigs.k8s.io/json.svg)](https://pkg.go.dev/sigs.k8s.io/json)\n\n## Introduction\n\nThis library is a subproject of [sig-api-machinery](https://github.com/kubernetes/community/tree/master/sig-api-machinery#json).\nIt provides case-sensitive, integer-preserving JSON unmarshaling functions based on `encoding/json` `Unmarshal()`.\n\n## Compatibility\n\nThe `UnmarshalCaseSensitivePreserveInts()` function behaves like `encoding/json#Unmarshal()` with the following differences:\n\n- JSON object keys are treated case-sensitively.\n  Object keys must exactly match json tag names (for tagged struct fields)\n  or struct field names (for untagged struct fields).\n- JSON integers are unmarshaled into `interface{}` fields as an `int64` instead of a \n  `float64` when possible, falling back to `float64` on any parse or overflow error.\n- Syntax errors do not return an `encoding/json` `*SyntaxError` error.\n  Instead, they return an error which can be passed to `SyntaxErrorOffset()` to obtain an offset.\n\n## Additional capabilities\n\nThe `UnmarshalStrict()` function decodes identically to `UnmarshalCaseSensitivePreserveInts()`,\nand also returns non-fatal strict errors encountered while decoding:\n\n- Duplicate fields encountered\n- Unknown fields encountered\n\n### Community, discussion, contribution, and support\n\nYou can reach the maintainers of this project via the \n[sig-api-machinery mailing list / channels](https://github.com/kubernetes/community/tree/master/sig-api-machinery#contact).\n\n### Code of conduct\n\nParticipation in the Kubernetes community is governed by the [Kubernetes Code of Conduct](code-of-conduct.md).\n\n[owners]: https://git.k8s.io/community/contributors/guide/owners.md\n[Creative Commons 4.0]: https://git.k8s.io/website/LICENSE\n"
  },
  {
    "path": "vendor/sigs.k8s.io/json/SECURITY.md",
    "content": "# Security Policy\n\n## Security Announcements\n\nJoin the [kubernetes-security-announce] group for security and vulnerability announcements.\n\nYou can also subscribe to an RSS feed of the above using [this link][kubernetes-security-announce-rss].\n\n## Reporting a Vulnerability\n\nInstructions for reporting a vulnerability can be found on the\n[Kubernetes Security and Disclosure Information] page.\n\n## Supported Versions\n\nInformation about supported Kubernetes versions can be found on the\n[Kubernetes version and version skew support policy] page on the Kubernetes website.\n\n[kubernetes-security-announce]: https://groups.google.com/forum/#!forum/kubernetes-security-announce\n[kubernetes-security-announce-rss]: https://groups.google.com/forum/feed/kubernetes-security-announce/msgs/rss_v2_0.xml?num=50\n[Kubernetes version and version skew support policy]: https://kubernetes.io/docs/setup/release/version-skew-policy/#supported-versions\n[Kubernetes Security and Disclosure Information]: https://kubernetes.io/docs/reference/issues-security/security/#report-a-vulnerability\n"
  },
  {
    "path": "vendor/sigs.k8s.io/json/SECURITY_CONTACTS",
    "content": "# Defined below are the security contacts for this repo.\n#\n# They are the contact point for the Product Security Committee to reach out\n# to for triaging and handling of incoming issues.\n#\n# The below names agree to abide by the\n# [Embargo Policy](https://git.k8s.io/security/private-distributors-list.md#embargo-policy)\n# and will be removed and replaced if they violate that agreement.\n#\n# DO NOT REPORT SECURITY VULNERABILITIES DIRECTLY TO THESE NAMES, FOLLOW THE\n# INSTRUCTIONS AT https://kubernetes.io/security/\n\ndeads2k\nlavalamp\nliggitt\n"
  },
  {
    "path": "vendor/sigs.k8s.io/json/code-of-conduct.md",
    "content": "# Kubernetes Community Code of Conduct\n\nPlease refer to our [Kubernetes Community Code of Conduct](https://git.k8s.io/community/code-of-conduct.md)\n"
  },
  {
    "path": "vendor/sigs.k8s.io/json/doc.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage json // import \"sigs.k8s.io/json\"\n"
  },
  {
    "path": "vendor/sigs.k8s.io/json/internal/golang/encoding/json/decode.go",
    "content": "// Copyright 2010 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Represents JSON data structure using native Go types: booleans, floats,\n// strings, arrays, and maps.\n\npackage json\n\nimport (\n\t\"encoding\"\n\t\"encoding/base64\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"strings\"\n\t\"unicode\"\n\t\"unicode/utf16\"\n\t\"unicode/utf8\"\n)\n\n// Unmarshal parses the JSON-encoded data and stores the result\n// in the value pointed to by v. If v is nil or not a pointer,\n// Unmarshal returns an [InvalidUnmarshalError].\n//\n// Unmarshal uses the inverse of the encodings that\n// [Marshal] uses, allocating maps, slices, and pointers as necessary,\n// with the following additional rules:\n//\n// To unmarshal JSON into a pointer, Unmarshal first handles the case of\n// the JSON being the JSON literal null. In that case, Unmarshal sets\n// the pointer to nil. Otherwise, Unmarshal unmarshals the JSON into\n// the value pointed at by the pointer. If the pointer is nil, Unmarshal\n// allocates a new value for it to point to.\n//\n// To unmarshal JSON into a value implementing [Unmarshaler],\n// Unmarshal calls that value's [Unmarshaler.UnmarshalJSON] method, including\n// when the input is a JSON null.\n// Otherwise, if the value implements [encoding.TextUnmarshaler]\n// and the input is a JSON quoted string, Unmarshal calls\n// [encoding.TextUnmarshaler.UnmarshalText] with the unquoted form of the string.\n//\n// To unmarshal JSON into a struct, Unmarshal matches incoming object\n// keys to the keys used by [Marshal] (either the struct field name or its tag),\n// preferring an exact match but also accepting a case-insensitive match. By\n// default, object keys which don't have a corresponding struct field are\n// ignored (see [Decoder.DisallowUnknownFields] for an alternative).\n//\n// To unmarshal JSON into an interface value,\n// Unmarshal stores one of these in the interface value:\n//\n//   - bool, for JSON booleans\n//   - float64, for JSON numbers\n//   - string, for JSON strings\n//   - []interface{}, for JSON arrays\n//   - map[string]interface{}, for JSON objects\n//   - nil for JSON null\n//\n// To unmarshal a JSON array into a slice, Unmarshal resets the slice length\n// to zero and then appends each element to the slice.\n// As a special case, to unmarshal an empty JSON array into a slice,\n// Unmarshal replaces the slice with a new empty slice.\n//\n// To unmarshal a JSON array into a Go array, Unmarshal decodes\n// JSON array elements into corresponding Go array elements.\n// If the Go array is smaller than the JSON array,\n// the additional JSON array elements are discarded.\n// If the JSON array is smaller than the Go array,\n// the additional Go array elements are set to zero values.\n//\n// To unmarshal a JSON object into a map, Unmarshal first establishes a map to\n// use. If the map is nil, Unmarshal allocates a new map. Otherwise Unmarshal\n// reuses the existing map, keeping existing entries. Unmarshal then stores\n// key-value pairs from the JSON object into the map. The map's key type must\n// either be any string type, an integer, or implement [encoding.TextUnmarshaler].\n//\n// If the JSON-encoded data contain a syntax error, Unmarshal returns a [SyntaxError].\n//\n// If a JSON value is not appropriate for a given target type,\n// or if a JSON number overflows the target type, Unmarshal\n// skips that field and completes the unmarshaling as best it can.\n// If no more serious errors are encountered, Unmarshal returns\n// an [UnmarshalTypeError] describing the earliest such error. In any\n// case, it's not guaranteed that all the remaining fields following\n// the problematic one will be unmarshaled into the target object.\n//\n// The JSON null value unmarshals into an interface, map, pointer, or slice\n// by setting that Go value to nil. Because null is often used in JSON to mean\n// “not present,” unmarshaling a JSON null into any other Go type has no effect\n// on the value and produces no error.\n//\n// When unmarshaling quoted strings, invalid UTF-8 or\n// invalid UTF-16 surrogate pairs are not treated as an error.\n// Instead, they are replaced by the Unicode replacement\n// character U+FFFD.\nfunc Unmarshal(data []byte, v any, opts ...UnmarshalOpt) error {\n\t// Check for well-formedness.\n\t// Avoids filling out half a data structure\n\t// before discovering a JSON syntax error.\n\tvar d decodeState\n\n\tfor _, opt := range opts {\n\t\topt(&d)\n\t}\n\n\terr := checkValid(data, &d.scan)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\td.init(data)\n\treturn d.unmarshal(v)\n}\n\n// Unmarshaler is the interface implemented by types\n// that can unmarshal a JSON description of themselves.\n// The input can be assumed to be a valid encoding of\n// a JSON value. UnmarshalJSON must copy the JSON data\n// if it wishes to retain the data after returning.\n//\n// By convention, to approximate the behavior of [Unmarshal] itself,\n// Unmarshalers implement UnmarshalJSON([]byte(\"null\")) as a no-op.\ntype Unmarshaler interface {\n\tUnmarshalJSON([]byte) error\n}\n\n/*\n// An UnmarshalTypeError describes a JSON value that was\n// not appropriate for a value of a specific Go type.\ntype UnmarshalTypeError struct {\n\tValue  string       // description of JSON value - \"bool\", \"array\", \"number -5\"\n\tType   reflect.Type // type of Go value it could not be assigned to\n\tOffset int64        // error occurred after reading Offset bytes\n\tStruct string       // name of the struct type containing the field\n\tField  string       // the full path from root node to the field\n}\n\nfunc (e *UnmarshalTypeError) Error() string {\n\tif e.Struct != \"\" || e.Field != \"\" {\n\t\treturn \"json: cannot unmarshal \" + e.Value + \" into Go struct field \" + e.Struct + \".\" + e.Field + \" of type \" + e.Type.String()\n\t}\n\treturn \"json: cannot unmarshal \" + e.Value + \" into Go value of type \" + e.Type.String()\n}\n\n// An UnmarshalFieldError describes a JSON object key that\n// led to an unexported (and therefore unwritable) struct field.\n//\n// Deprecated: No longer used; kept for compatibility.\ntype UnmarshalFieldError struct {\n\tKey   string\n\tType  reflect.Type\n\tField reflect.StructField\n}\n\nfunc (e *UnmarshalFieldError) Error() string {\n\treturn \"json: cannot unmarshal object key \" + strconv.Quote(e.Key) + \" into unexported field \" + e.Field.Name + \" of type \" + e.Type.String()\n}\n\n// An InvalidUnmarshalError describes an invalid argument passed to [Unmarshal].\n// (The argument to [Unmarshal] must be a non-nil pointer.)\ntype InvalidUnmarshalError struct {\n\tType reflect.Type\n}\n\nfunc (e *InvalidUnmarshalError) Error() string {\n\tif e.Type == nil {\n\t\treturn \"json: Unmarshal(nil)\"\n\t}\n\n\tif e.Type.Kind() != reflect.Pointer {\n\t\treturn \"json: Unmarshal(non-pointer \" + e.Type.String() + \")\"\n\t}\n\treturn \"json: Unmarshal(nil \" + e.Type.String() + \")\"\n}\n*/\n\nfunc (d *decodeState) unmarshal(v any) error {\n\trv := reflect.ValueOf(v)\n\tif rv.Kind() != reflect.Pointer || rv.IsNil() {\n\t\treturn &InvalidUnmarshalError{reflect.TypeOf(v)}\n\t}\n\n\td.scan.reset()\n\td.scanWhile(scanSkipSpace)\n\t// We decode rv not rv.Elem because the Unmarshaler interface\n\t// test must be applied at the top level of the value.\n\terr := d.value(rv)\n\tif err != nil {\n\t\treturn d.addErrorContext(err)\n\t}\n\tif d.savedError != nil {\n\t\treturn d.savedError\n\t}\n\tif len(d.savedStrictErrors) > 0 {\n\t\treturn &UnmarshalStrictError{Errors: d.savedStrictErrors}\n\t}\n\treturn nil\n}\n\n/*\n// A Number represents a JSON number literal.\ntype Number string\n\n// String returns the literal text of the number.\nfunc (n Number) String() string { return string(n) }\n\n// Float64 returns the number as a float64.\nfunc (n Number) Float64() (float64, error) {\n\treturn strconv.ParseFloat(string(n), 64)\n}\n\n// Int64 returns the number as an int64.\nfunc (n Number) Int64() (int64, error) {\n\treturn strconv.ParseInt(string(n), 10, 64)\n}\n*/\n\n// An errorContext provides context for type errors during decoding.\ntype errorContext struct {\n\tStruct     reflect.Type\n\tFieldStack []string\n}\n\n// decodeState represents the state while decoding a JSON value.\ntype decodeState struct {\n\tdata                  []byte\n\toff                   int // next read offset in data\n\topcode                int // last read result\n\tscan                  scanner\n\terrorContext          *errorContext\n\tsavedError            error\n\tuseNumber             bool\n\tdisallowUnknownFields bool\n\n\tsavedStrictErrors []error\n\tseenStrictErrors  map[strictError]struct{}\n\tstrictFieldStack  []string\n\n\tcaseSensitive bool\n\n\tpreserveInts bool\n\n\tdisallowDuplicateFields bool\n}\n\n// readIndex returns the position of the last byte read.\nfunc (d *decodeState) readIndex() int {\n\treturn d.off - 1\n}\n\n// phasePanicMsg is used as a panic message when we end up with something that\n// shouldn't happen. It can indicate a bug in the JSON decoder, or that\n// something is editing the data slice while the decoder executes.\nconst phasePanicMsg = \"JSON decoder out of sync - data changing underfoot?\"\n\nfunc (d *decodeState) init(data []byte) *decodeState {\n\td.data = data\n\td.off = 0\n\td.savedError = nil\n\tif d.errorContext != nil {\n\t\td.errorContext.Struct = nil\n\t\t// Reuse the allocated space for the FieldStack slice.\n\t\td.errorContext.FieldStack = d.errorContext.FieldStack[:0]\n\t}\n\t// Reuse the allocated space for the strict FieldStack slice.\n\td.strictFieldStack = d.strictFieldStack[:0]\n\treturn d\n}\n\n// saveError saves the first err it is called with,\n// for reporting at the end of the unmarshal.\nfunc (d *decodeState) saveError(err error) {\n\tif d.savedError == nil {\n\t\td.savedError = d.addErrorContext(err)\n\t}\n}\n\n// addErrorContext returns a new error enhanced with information from d.errorContext\nfunc (d *decodeState) addErrorContext(err error) error {\n\tif d.errorContext != nil && (d.errorContext.Struct != nil || len(d.errorContext.FieldStack) > 0) {\n\t\tswitch err := err.(type) {\n\t\tcase *UnmarshalTypeError:\n\t\t\terr.Struct = d.errorContext.Struct.Name()\n\t\t\terr.Field = strings.Join(d.errorContext.FieldStack, \".\")\n\t\t}\n\t}\n\treturn err\n}\n\n// skip scans to the end of what was started.\nfunc (d *decodeState) skip() {\n\ts, data, i := &d.scan, d.data, d.off\n\tdepth := len(s.parseState)\n\tfor {\n\t\top := s.step(s, data[i])\n\t\ti++\n\t\tif len(s.parseState) < depth {\n\t\t\td.off = i\n\t\t\td.opcode = op\n\t\t\treturn\n\t\t}\n\t}\n}\n\n// scanNext processes the byte at d.data[d.off].\nfunc (d *decodeState) scanNext() {\n\tif d.off < len(d.data) {\n\t\td.opcode = d.scan.step(&d.scan, d.data[d.off])\n\t\td.off++\n\t} else {\n\t\td.opcode = d.scan.eof()\n\t\td.off = len(d.data) + 1 // mark processed EOF with len+1\n\t}\n}\n\n// scanWhile processes bytes in d.data[d.off:] until it\n// receives a scan code not equal to op.\nfunc (d *decodeState) scanWhile(op int) {\n\ts, data, i := &d.scan, d.data, d.off\n\tfor i < len(data) {\n\t\tnewOp := s.step(s, data[i])\n\t\ti++\n\t\tif newOp != op {\n\t\t\td.opcode = newOp\n\t\t\td.off = i\n\t\t\treturn\n\t\t}\n\t}\n\n\td.off = len(data) + 1 // mark processed EOF with len+1\n\td.opcode = d.scan.eof()\n}\n\n// rescanLiteral is similar to scanWhile(scanContinue), but it specialises the\n// common case where we're decoding a literal. The decoder scans the input\n// twice, once for syntax errors and to check the length of the value, and the\n// second to perform the decoding.\n//\n// Only in the second step do we use decodeState to tokenize literals, so we\n// know there aren't any syntax errors. We can take advantage of that knowledge,\n// and scan a literal's bytes much more quickly.\nfunc (d *decodeState) rescanLiteral() {\n\tdata, i := d.data, d.off\nSwitch:\n\tswitch data[i-1] {\n\tcase '\"': // string\n\t\tfor ; i < len(data); i++ {\n\t\t\tswitch data[i] {\n\t\t\tcase '\\\\':\n\t\t\t\ti++ // escaped char\n\t\t\tcase '\"':\n\t\t\t\ti++ // tokenize the closing quote too\n\t\t\t\tbreak Switch\n\t\t\t}\n\t\t}\n\tcase '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-': // number\n\t\tfor ; i < len(data); i++ {\n\t\t\tswitch data[i] {\n\t\t\tcase '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n\t\t\t\t'.', 'e', 'E', '+', '-':\n\t\t\tdefault:\n\t\t\t\tbreak Switch\n\t\t\t}\n\t\t}\n\tcase 't': // true\n\t\ti += len(\"rue\")\n\tcase 'f': // false\n\t\ti += len(\"alse\")\n\tcase 'n': // null\n\t\ti += len(\"ull\")\n\t}\n\tif i < len(data) {\n\t\td.opcode = stateEndValue(&d.scan, data[i])\n\t} else {\n\t\td.opcode = scanEnd\n\t}\n\td.off = i + 1\n}\n\n// value consumes a JSON value from d.data[d.off-1:], decoding into v, and\n// reads the following byte ahead. If v is invalid, the value is discarded.\n// The first byte of the value has been read already.\nfunc (d *decodeState) value(v reflect.Value) error {\n\tswitch d.opcode {\n\tdefault:\n\t\tpanic(phasePanicMsg)\n\n\tcase scanBeginArray:\n\t\tif v.IsValid() {\n\t\t\tif err := d.array(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t} else {\n\t\t\td.skip()\n\t\t}\n\t\td.scanNext()\n\n\tcase scanBeginObject:\n\t\tif v.IsValid() {\n\t\t\tif err := d.object(v); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t} else {\n\t\t\td.skip()\n\t\t}\n\t\td.scanNext()\n\n\tcase scanBeginLiteral:\n\t\t// All bytes inside literal return scanContinue op code.\n\t\tstart := d.readIndex()\n\t\td.rescanLiteral()\n\n\t\tif v.IsValid() {\n\t\t\tif err := d.literalStore(d.data[start:d.readIndex()], v, false); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\n\ntype unquotedValue struct{}\n\n// valueQuoted is like value but decodes a\n// quoted string literal or literal null into an interface value.\n// If it finds anything other than a quoted string literal or null,\n// valueQuoted returns unquotedValue{}.\nfunc (d *decodeState) valueQuoted() any {\n\tswitch d.opcode {\n\tdefault:\n\t\tpanic(phasePanicMsg)\n\n\tcase scanBeginArray, scanBeginObject:\n\t\td.skip()\n\t\td.scanNext()\n\n\tcase scanBeginLiteral:\n\t\tv := d.literalInterface()\n\t\tswitch v.(type) {\n\t\tcase nil, string:\n\t\t\treturn v\n\t\t}\n\t}\n\treturn unquotedValue{}\n}\n\n// indirect walks down v allocating pointers as needed,\n// until it gets to a non-pointer.\n// If it encounters an Unmarshaler, indirect stops and returns that.\n// If decodingNull is true, indirect stops at the first settable pointer so it\n// can be set to nil.\nfunc indirect(v reflect.Value, decodingNull bool) (Unmarshaler, encoding.TextUnmarshaler, reflect.Value) {\n\t// Issue #24153 indicates that it is generally not a guaranteed property\n\t// that you may round-trip a reflect.Value by calling Value.Addr().Elem()\n\t// and expect the value to still be settable for values derived from\n\t// unexported embedded struct fields.\n\t//\n\t// The logic below effectively does this when it first addresses the value\n\t// (to satisfy possible pointer methods) and continues to dereference\n\t// subsequent pointers as necessary.\n\t//\n\t// After the first round-trip, we set v back to the original value to\n\t// preserve the original RW flags contained in reflect.Value.\n\tv0 := v\n\thaveAddr := false\n\n\t// If v is a named type and is addressable,\n\t// start with its address, so that if the type has pointer methods,\n\t// we find them.\n\tif v.Kind() != reflect.Pointer && v.Type().Name() != \"\" && v.CanAddr() {\n\t\thaveAddr = true\n\t\tv = v.Addr()\n\t}\n\tfor {\n\t\t// Load value from interface, but only if the result will be\n\t\t// usefully addressable.\n\t\tif v.Kind() == reflect.Interface && !v.IsNil() {\n\t\t\te := v.Elem()\n\t\t\tif e.Kind() == reflect.Pointer && !e.IsNil() && (!decodingNull || e.Elem().Kind() == reflect.Pointer) {\n\t\t\t\thaveAddr = false\n\t\t\t\tv = e\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\tif v.Kind() != reflect.Pointer {\n\t\t\tbreak\n\t\t}\n\n\t\tif decodingNull && v.CanSet() {\n\t\t\tbreak\n\t\t}\n\n\t\t// Prevent infinite loop if v is an interface pointing to its own address:\n\t\t//     var v interface{}\n\t\t//     v = &v\n\t\tif v.Elem().Kind() == reflect.Interface && v.Elem().Elem() == v {\n\t\t\tv = v.Elem()\n\t\t\tbreak\n\t\t}\n\t\tif v.IsNil() {\n\t\t\tv.Set(reflect.New(v.Type().Elem()))\n\t\t}\n\t\tif v.Type().NumMethod() > 0 && v.CanInterface() {\n\t\t\tif u, ok := v.Interface().(Unmarshaler); ok {\n\t\t\t\treturn u, nil, reflect.Value{}\n\t\t\t}\n\t\t\tif !decodingNull {\n\t\t\t\tif u, ok := v.Interface().(encoding.TextUnmarshaler); ok {\n\t\t\t\t\treturn nil, u, reflect.Value{}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif haveAddr {\n\t\t\tv = v0 // restore original value after round-trip Value.Addr().Elem()\n\t\t\thaveAddr = false\n\t\t} else {\n\t\t\tv = v.Elem()\n\t\t}\n\t}\n\treturn nil, nil, v\n}\n\n// array consumes an array from d.data[d.off-1:], decoding into v.\n// The first byte of the array ('[') has been read already.\nfunc (d *decodeState) array(v reflect.Value) error {\n\t// Check for unmarshaler.\n\tu, ut, pv := indirect(v, false)\n\tif u != nil {\n\t\tstart := d.readIndex()\n\t\td.skip()\n\t\treturn u.UnmarshalJSON(d.data[start:d.off])\n\t}\n\tif ut != nil {\n\t\td.saveError(&UnmarshalTypeError{Value: \"array\", Type: v.Type(), Offset: int64(d.off)})\n\t\td.skip()\n\t\treturn nil\n\t}\n\tv = pv\n\n\t// Check type of target.\n\tswitch v.Kind() {\n\tcase reflect.Interface:\n\t\tif v.NumMethod() == 0 {\n\t\t\t// Decoding into nil interface? Switch to non-reflect code.\n\t\t\tai := d.arrayInterface()\n\t\t\tv.Set(reflect.ValueOf(ai))\n\t\t\treturn nil\n\t\t}\n\t\t// Otherwise it's invalid.\n\t\tfallthrough\n\tdefault:\n\t\td.saveError(&UnmarshalTypeError{Value: \"array\", Type: v.Type(), Offset: int64(d.off)})\n\t\td.skip()\n\t\treturn nil\n\tcase reflect.Array, reflect.Slice:\n\t\tbreak\n\t}\n\n\torigStrictFieldStackLen := len(d.strictFieldStack)\n\tdefer func() {\n\t\t// Reset to original length and reuse the allocated space for the strict FieldStack slice.\n\t\td.strictFieldStack = d.strictFieldStack[:origStrictFieldStackLen]\n\t}()\n\n\ti := 0\n\tfor {\n\t\t// Look ahead for ] - can only happen on first iteration.\n\t\td.scanWhile(scanSkipSpace)\n\t\tif d.opcode == scanEndArray {\n\t\t\tbreak\n\t\t}\n\n\t\t// Expand slice length, growing the slice if necessary.\n\t\tif v.Kind() == reflect.Slice {\n\t\t\tif i >= v.Cap() {\n\t\t\t\tv.Grow(1)\n\t\t\t}\n\t\t\tif i >= v.Len() {\n\t\t\t\tv.SetLen(i + 1)\n\t\t\t}\n\t\t}\n\n\t\td.appendStrictFieldStackIndex(i)\n\t\tif i < v.Len() {\n\t\t\t// Decode into element.\n\t\t\tif err := d.value(v.Index(i)); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t} else {\n\t\t\t// Ran out of fixed array: skip.\n\t\t\tif err := d.value(reflect.Value{}); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\t\t// Reset to original length and reuse the allocated space for the strict FieldStack slice.\n\t\td.strictFieldStack = d.strictFieldStack[:origStrictFieldStackLen]\n\t\ti++\n\n\t\t// Next token must be , or ].\n\t\tif d.opcode == scanSkipSpace {\n\t\t\td.scanWhile(scanSkipSpace)\n\t\t}\n\t\tif d.opcode == scanEndArray {\n\t\t\tbreak\n\t\t}\n\t\tif d.opcode != scanArrayValue {\n\t\t\tpanic(phasePanicMsg)\n\t\t}\n\t}\n\n\tif i < v.Len() {\n\t\tif v.Kind() == reflect.Array {\n\t\t\tfor ; i < v.Len(); i++ {\n\t\t\t\tv.Index(i).SetZero() // zero remainder of array\n\t\t\t}\n\t\t} else {\n\t\t\tv.SetLen(i) // truncate the slice\n\t\t}\n\t}\n\tif i == 0 && v.Kind() == reflect.Slice {\n\t\tv.Set(reflect.MakeSlice(v.Type(), 0, 0))\n\t}\n\treturn nil\n}\n\nvar nullLiteral = []byte(\"null\")\nvar textUnmarshalerType = reflect.TypeFor[encoding.TextUnmarshaler]()\n\n// object consumes an object from d.data[d.off-1:], decoding into v.\n// The first byte ('{') of the object has been read already.\nfunc (d *decodeState) object(v reflect.Value) error {\n\t// Check for unmarshaler.\n\tu, ut, pv := indirect(v, false)\n\tif u != nil {\n\t\tstart := d.readIndex()\n\t\td.skip()\n\t\treturn u.UnmarshalJSON(d.data[start:d.off])\n\t}\n\tif ut != nil {\n\t\td.saveError(&UnmarshalTypeError{Value: \"object\", Type: v.Type(), Offset: int64(d.off)})\n\t\td.skip()\n\t\treturn nil\n\t}\n\tv = pv\n\tt := v.Type()\n\n\t// Decoding into nil interface? Switch to non-reflect code.\n\tif v.Kind() == reflect.Interface && v.NumMethod() == 0 {\n\t\toi := d.objectInterface()\n\t\tv.Set(reflect.ValueOf(oi))\n\t\treturn nil\n\t}\n\n\tvar fields structFields\n\tvar checkDuplicateField func(fieldNameIndex int, fieldName string)\n\n\t// Check type of target:\n\t//   struct or\n\t//   map[T1]T2 where T1 is string, an integer type,\n\t//             or an encoding.TextUnmarshaler\n\tswitch v.Kind() {\n\tcase reflect.Map:\n\t\t// Map key must either have string kind, have an integer kind,\n\t\t// or be an encoding.TextUnmarshaler.\n\t\tswitch t.Key().Kind() {\n\t\tcase reflect.String,\n\t\t\treflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,\n\t\t\treflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\tdefault:\n\t\t\tif !reflect.PointerTo(t.Key()).Implements(textUnmarshalerType) {\n\t\t\t\td.saveError(&UnmarshalTypeError{Value: \"object\", Type: t, Offset: int64(d.off)})\n\t\t\t\td.skip()\n\t\t\t\treturn nil\n\t\t\t}\n\t\t}\n\t\tif v.IsNil() {\n\t\t\tv.Set(reflect.MakeMap(t))\n\t\t}\n\n\t\tif d.disallowDuplicateFields {\n\t\t\tvar seenKeys map[string]struct{}\n\t\t\tcheckDuplicateField = func(fieldNameIndex int, fieldName string) {\n\t\t\t\tif seenKeys == nil {\n\t\t\t\t\tseenKeys = map[string]struct{}{}\n\t\t\t\t}\n\t\t\t\tif _, seen := seenKeys[fieldName]; seen {\n\t\t\t\t\td.saveStrictError(d.newFieldError(duplicateStrictErrType, fieldName))\n\t\t\t\t} else {\n\t\t\t\t\tseenKeys[fieldName] = struct{}{}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\tcase reflect.Struct:\n\t\tfields = cachedTypeFields(t)\n\n\t\tif d.disallowDuplicateFields {\n\t\t\tif len(fields.list) <= 64 {\n\t\t\t\t// bitset by field index for structs with <= 64 fields\n\t\t\t\tvar seenKeys uint64\n\t\t\t\tcheckDuplicateField = func(fieldNameIndex int, fieldName string) {\n\t\t\t\t\tif seenKeys&(1<<fieldNameIndex) != 0 {\n\t\t\t\t\t\td.saveStrictError(d.newFieldError(duplicateStrictErrType, fieldName))\n\t\t\t\t\t} else {\n\t\t\t\t\t\tseenKeys = seenKeys | (1 << fieldNameIndex)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// list of seen field indices for structs with greater than 64 fields\n\t\t\t\tvar seenIndexes []bool\n\t\t\t\tcheckDuplicateField = func(fieldNameIndex int, fieldName string) {\n\t\t\t\t\tif seenIndexes == nil {\n\t\t\t\t\t\tseenIndexes = make([]bool, len(fields.list))\n\t\t\t\t\t}\n\t\t\t\t\tif seenIndexes[fieldNameIndex] {\n\t\t\t\t\t\td.saveStrictError(d.newFieldError(duplicateStrictErrType, fieldName))\n\t\t\t\t\t} else {\n\t\t\t\t\t\tseenIndexes[fieldNameIndex] = true\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// ok\n\tdefault:\n\t\td.saveError(&UnmarshalTypeError{Value: \"object\", Type: t, Offset: int64(d.off)})\n\t\td.skip()\n\t\treturn nil\n\t}\n\n\tvar mapElem reflect.Value\n\tvar origErrorContext errorContext\n\tif d.errorContext != nil {\n\t\torigErrorContext = *d.errorContext\n\t}\n\torigStrictFieldStackLen := len(d.strictFieldStack)\n\n\tfor {\n\t\t// Read opening \" of string key or closing }.\n\t\td.scanWhile(scanSkipSpace)\n\t\tif d.opcode == scanEndObject {\n\t\t\t// closing } - can only happen on first iteration.\n\t\t\tbreak\n\t\t}\n\t\tif d.opcode != scanBeginLiteral {\n\t\t\tpanic(phasePanicMsg)\n\t\t}\n\n\t\t// Read key.\n\t\tstart := d.readIndex()\n\t\td.rescanLiteral()\n\t\titem := d.data[start:d.readIndex()]\n\t\tkey, ok := unquoteBytes(item)\n\t\tif !ok {\n\t\t\tpanic(phasePanicMsg)\n\t\t}\n\n\t\t// Figure out field corresponding to key.\n\t\tvar subv reflect.Value\n\t\tdestring := false // whether the value is wrapped in a string to be decoded first\n\n\t\tif v.Kind() == reflect.Map {\n\t\t\telemType := t.Elem()\n\t\t\tif !mapElem.IsValid() {\n\t\t\t\tmapElem = reflect.New(elemType).Elem()\n\t\t\t} else {\n\t\t\t\tmapElem.SetZero()\n\t\t\t}\n\t\t\tsubv = mapElem\n\t\t\tif checkDuplicateField != nil {\n\t\t\t\tcheckDuplicateField(0, string(key))\n\t\t\t}\n\t\t\td.appendStrictFieldStackKey(string(key))\n\t\t} else {\n\t\t\tf := fields.byExactName[string(key)]\n\t\t\tif f == nil && !d.caseSensitive {\n\t\t\t\tf = fields.byFoldedName[string(foldName(key))]\n\t\t\t}\n\t\t\tif f != nil {\n\t\t\t\tif checkDuplicateField != nil {\n\t\t\t\t\tcheckDuplicateField(f.listIndex, f.name)\n\t\t\t\t}\n\t\t\t\tsubv = v\n\t\t\t\tdestring = f.quoted\n\t\t\t\tfor _, i := range f.index {\n\t\t\t\t\tif subv.Kind() == reflect.Pointer {\n\t\t\t\t\t\tif subv.IsNil() {\n\t\t\t\t\t\t\t// If a struct embeds a pointer to an unexported type,\n\t\t\t\t\t\t\t// it is not possible to set a newly allocated value\n\t\t\t\t\t\t\t// since the field is unexported.\n\t\t\t\t\t\t\t//\n\t\t\t\t\t\t\t// See https://golang.org/issue/21357\n\t\t\t\t\t\t\tif !subv.CanSet() {\n\t\t\t\t\t\t\t\td.saveError(fmt.Errorf(\"json: cannot set embedded pointer to unexported struct: %v\", subv.Type().Elem()))\n\t\t\t\t\t\t\t\t// Invalidate subv to ensure d.value(subv) skips over\n\t\t\t\t\t\t\t\t// the JSON value without assigning it to subv.\n\t\t\t\t\t\t\t\tsubv = reflect.Value{}\n\t\t\t\t\t\t\t\tdestring = false\n\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsubv.Set(reflect.New(subv.Type().Elem()))\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsubv = subv.Elem()\n\t\t\t\t\t}\n\t\t\t\t\tsubv = subv.Field(i)\n\t\t\t\t}\n\t\t\t\tif d.errorContext == nil {\n\t\t\t\t\td.errorContext = new(errorContext)\n\t\t\t\t}\n\t\t\t\td.errorContext.FieldStack = append(d.errorContext.FieldStack, f.name)\n\t\t\t\td.errorContext.Struct = t\n\t\t\t\td.appendStrictFieldStackKey(f.name)\n\t\t\t} else if d.disallowUnknownFields {\n\t\t\t\td.saveStrictError(d.newFieldError(unknownStrictErrType, string(key)))\n\t\t\t}\n\t\t}\n\n\t\t// Read : before value.\n\t\tif d.opcode == scanSkipSpace {\n\t\t\td.scanWhile(scanSkipSpace)\n\t\t}\n\t\tif d.opcode != scanObjectKey {\n\t\t\tpanic(phasePanicMsg)\n\t\t}\n\t\td.scanWhile(scanSkipSpace)\n\n\t\tif destring {\n\t\t\tswitch qv := d.valueQuoted().(type) {\n\t\t\tcase nil:\n\t\t\t\tif err := d.literalStore(nullLiteral, subv, false); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\tcase string:\n\t\t\t\tif err := d.literalStore([]byte(qv), subv, true); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\td.saveError(fmt.Errorf(\"json: invalid use of ,string struct tag, trying to unmarshal unquoted value into %v\", subv.Type()))\n\t\t\t}\n\t\t} else {\n\t\t\tif err := d.value(subv); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t}\n\n\t\t// Write value back to map;\n\t\t// if using struct, subv points into struct already.\n\t\tif v.Kind() == reflect.Map {\n\t\t\tkt := t.Key()\n\t\t\tvar kv reflect.Value\n\t\t\tif reflect.PointerTo(kt).Implements(textUnmarshalerType) {\n\t\t\t\tkv = reflect.New(kt)\n\t\t\t\tif err := d.literalStore(item, kv, true); err != nil {\n\t\t\t\t\treturn err\n\t\t\t\t}\n\t\t\t\tkv = kv.Elem()\n\t\t\t} else {\n\t\t\t\tswitch kt.Kind() {\n\t\t\t\tcase reflect.String:\n\t\t\t\t\tkv = reflect.New(kt).Elem()\n\t\t\t\t\tkv.SetString(string(key))\n\t\t\t\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\t\t\t\ts := string(key)\n\t\t\t\t\tn, err := strconv.ParseInt(s, 10, 64)\n\t\t\t\t\tif err != nil || kt.OverflowInt(n) {\n\t\t\t\t\t\td.saveError(&UnmarshalTypeError{Value: \"number \" + s, Type: kt, Offset: int64(start + 1)})\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tkv = reflect.New(kt).Elem()\n\t\t\t\t\tkv.SetInt(n)\n\t\t\t\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\t\t\t\ts := string(key)\n\t\t\t\t\tn, err := strconv.ParseUint(s, 10, 64)\n\t\t\t\t\tif err != nil || kt.OverflowUint(n) {\n\t\t\t\t\t\td.saveError(&UnmarshalTypeError{Value: \"number \" + s, Type: kt, Offset: int64(start + 1)})\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tkv = reflect.New(kt).Elem()\n\t\t\t\t\tkv.SetUint(n)\n\t\t\t\tdefault:\n\t\t\t\t\tpanic(\"json: Unexpected key type\") // should never occur\n\t\t\t\t}\n\t\t\t}\n\t\t\tif kv.IsValid() {\n\t\t\t\tv.SetMapIndex(kv, subv)\n\t\t\t}\n\t\t}\n\n\t\t// Next token must be , or }.\n\t\tif d.opcode == scanSkipSpace {\n\t\t\td.scanWhile(scanSkipSpace)\n\t\t}\n\t\tif d.errorContext != nil {\n\t\t\t// Reset errorContext to its original state.\n\t\t\t// Keep the same underlying array for FieldStack, to reuse the\n\t\t\t// space and avoid unnecessary allocs.\n\t\t\td.errorContext.FieldStack = d.errorContext.FieldStack[:len(origErrorContext.FieldStack)]\n\t\t\td.errorContext.Struct = origErrorContext.Struct\n\t\t}\n\t\t// Reset to original length and reuse the allocated space for the strict FieldStack slice.\n\t\td.strictFieldStack = d.strictFieldStack[:origStrictFieldStackLen]\n\t\tif d.opcode == scanEndObject {\n\t\t\tbreak\n\t\t}\n\t\tif d.opcode != scanObjectValue {\n\t\t\tpanic(phasePanicMsg)\n\t\t}\n\t}\n\treturn nil\n}\n\n// convertNumber converts the number literal s to a float64 or a Number\n// depending on the setting of d.useNumber.\nfunc (d *decodeState) convertNumber(s string) (any, error) {\n\tif d.useNumber {\n\t\treturn Number(s), nil\n\t}\n\n\t// if the string contains no floating point, return it as an int64 if it decodes successfully and does not overflow.\n\t// otherwise, fall back to float64 behavior.\n\tif d.preserveInts && !strings.Contains(s, \".\") {\n\t\tif i, err := strconv.ParseInt(s, 10, 64); err == nil {\n\t\t\treturn i, nil\n\t\t}\n\t}\n\n\tf, err := strconv.ParseFloat(s, 64)\n\tif err != nil {\n\t\treturn nil, &UnmarshalTypeError{Value: \"number \" + s, Type: reflect.TypeFor[float64](), Offset: int64(d.off)}\n\t}\n\treturn f, nil\n}\n\nvar numberType = reflect.TypeFor[Number]()\n\n// literalStore decodes a literal stored in item into v.\n//\n// fromQuoted indicates whether this literal came from unwrapping a\n// string from the \",string\" struct tag option. this is used only to\n// produce more helpful error messages.\nfunc (d *decodeState) literalStore(item []byte, v reflect.Value, fromQuoted bool) error {\n\t// Check for unmarshaler.\n\tif len(item) == 0 {\n\t\t// Empty string given.\n\t\td.saveError(fmt.Errorf(\"json: invalid use of ,string struct tag, trying to unmarshal %q into %v\", item, v.Type()))\n\t\treturn nil\n\t}\n\tisNull := item[0] == 'n' // null\n\tu, ut, pv := indirect(v, isNull)\n\tif u != nil {\n\t\treturn u.UnmarshalJSON(item)\n\t}\n\tif ut != nil {\n\t\tif item[0] != '\"' {\n\t\t\tif fromQuoted {\n\t\t\t\td.saveError(fmt.Errorf(\"json: invalid use of ,string struct tag, trying to unmarshal %q into %v\", item, v.Type()))\n\t\t\t\treturn nil\n\t\t\t}\n\t\t\tval := \"number\"\n\t\t\tswitch item[0] {\n\t\t\tcase 'n':\n\t\t\t\tval = \"null\"\n\t\t\tcase 't', 'f':\n\t\t\t\tval = \"bool\"\n\t\t\t}\n\t\t\td.saveError(&UnmarshalTypeError{Value: val, Type: v.Type(), Offset: int64(d.readIndex())})\n\t\t\treturn nil\n\t\t}\n\t\ts, ok := unquoteBytes(item)\n\t\tif !ok {\n\t\t\tif fromQuoted {\n\t\t\t\treturn fmt.Errorf(\"json: invalid use of ,string struct tag, trying to unmarshal %q into %v\", item, v.Type())\n\t\t\t}\n\t\t\tpanic(phasePanicMsg)\n\t\t}\n\t\treturn ut.UnmarshalText(s)\n\t}\n\n\tv = pv\n\n\tswitch c := item[0]; c {\n\tcase 'n': // null\n\t\t// The main parser checks that only true and false can reach here,\n\t\t// but if this was a quoted string input, it could be anything.\n\t\tif fromQuoted && string(item) != \"null\" {\n\t\t\td.saveError(fmt.Errorf(\"json: invalid use of ,string struct tag, trying to unmarshal %q into %v\", item, v.Type()))\n\t\t\tbreak\n\t\t}\n\t\tswitch v.Kind() {\n\t\tcase reflect.Interface, reflect.Pointer, reflect.Map, reflect.Slice:\n\t\t\tv.SetZero()\n\t\t\t// otherwise, ignore null for primitives/string\n\t\t}\n\tcase 't', 'f': // true, false\n\t\tvalue := item[0] == 't'\n\t\t// The main parser checks that only true and false can reach here,\n\t\t// but if this was a quoted string input, it could be anything.\n\t\tif fromQuoted && string(item) != \"true\" && string(item) != \"false\" {\n\t\t\td.saveError(fmt.Errorf(\"json: invalid use of ,string struct tag, trying to unmarshal %q into %v\", item, v.Type()))\n\t\t\tbreak\n\t\t}\n\t\tswitch v.Kind() {\n\t\tdefault:\n\t\t\tif fromQuoted {\n\t\t\t\td.saveError(fmt.Errorf(\"json: invalid use of ,string struct tag, trying to unmarshal %q into %v\", item, v.Type()))\n\t\t\t} else {\n\t\t\t\td.saveError(&UnmarshalTypeError{Value: \"bool\", Type: v.Type(), Offset: int64(d.readIndex())})\n\t\t\t}\n\t\tcase reflect.Bool:\n\t\t\tv.SetBool(value)\n\t\tcase reflect.Interface:\n\t\t\tif v.NumMethod() == 0 {\n\t\t\t\tv.Set(reflect.ValueOf(value))\n\t\t\t} else {\n\t\t\t\td.saveError(&UnmarshalTypeError{Value: \"bool\", Type: v.Type(), Offset: int64(d.readIndex())})\n\t\t\t}\n\t\t}\n\n\tcase '\"': // string\n\t\ts, ok := unquoteBytes(item)\n\t\tif !ok {\n\t\t\tif fromQuoted {\n\t\t\t\treturn fmt.Errorf(\"json: invalid use of ,string struct tag, trying to unmarshal %q into %v\", item, v.Type())\n\t\t\t}\n\t\t\tpanic(phasePanicMsg)\n\t\t}\n\t\tswitch v.Kind() {\n\t\tdefault:\n\t\t\td.saveError(&UnmarshalTypeError{Value: \"string\", Type: v.Type(), Offset: int64(d.readIndex())})\n\t\tcase reflect.Slice:\n\t\t\tif v.Type().Elem().Kind() != reflect.Uint8 {\n\t\t\t\td.saveError(&UnmarshalTypeError{Value: \"string\", Type: v.Type(), Offset: int64(d.readIndex())})\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tb := make([]byte, base64.StdEncoding.DecodedLen(len(s)))\n\t\t\tn, err := base64.StdEncoding.Decode(b, s)\n\t\t\tif err != nil {\n\t\t\t\td.saveError(err)\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tv.SetBytes(b[:n])\n\t\tcase reflect.String:\n\t\t\tt := string(s)\n\t\t\tif v.Type() == numberType && !isValidNumber(t) {\n\t\t\t\treturn fmt.Errorf(\"json: invalid number literal, trying to unmarshal %q into Number\", item)\n\t\t\t}\n\t\t\tv.SetString(t)\n\t\tcase reflect.Interface:\n\t\t\tif v.NumMethod() == 0 {\n\t\t\t\tv.Set(reflect.ValueOf(string(s)))\n\t\t\t} else {\n\t\t\t\td.saveError(&UnmarshalTypeError{Value: \"string\", Type: v.Type(), Offset: int64(d.readIndex())})\n\t\t\t}\n\t\t}\n\n\tdefault: // number\n\t\tif c != '-' && (c < '0' || c > '9') {\n\t\t\tif fromQuoted {\n\t\t\t\treturn fmt.Errorf(\"json: invalid use of ,string struct tag, trying to unmarshal %q into %v\", item, v.Type())\n\t\t\t}\n\t\t\tpanic(phasePanicMsg)\n\t\t}\n\t\tswitch v.Kind() {\n\t\tdefault:\n\t\t\tif v.Kind() == reflect.String && v.Type() == numberType {\n\t\t\t\t// s must be a valid number, because it's\n\t\t\t\t// already been tokenized.\n\t\t\t\tv.SetString(string(item))\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif fromQuoted {\n\t\t\t\treturn fmt.Errorf(\"json: invalid use of ,string struct tag, trying to unmarshal %q into %v\", item, v.Type())\n\t\t\t}\n\t\t\td.saveError(&UnmarshalTypeError{Value: \"number\", Type: v.Type(), Offset: int64(d.readIndex())})\n\t\tcase reflect.Interface:\n\t\t\tn, err := d.convertNumber(string(item))\n\t\t\tif err != nil {\n\t\t\t\td.saveError(err)\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif v.NumMethod() != 0 {\n\t\t\t\td.saveError(&UnmarshalTypeError{Value: \"number\", Type: v.Type(), Offset: int64(d.readIndex())})\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tv.Set(reflect.ValueOf(n))\n\n\t\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\t\tn, err := strconv.ParseInt(string(item), 10, 64)\n\t\t\tif err != nil || v.OverflowInt(n) {\n\t\t\t\td.saveError(&UnmarshalTypeError{Value: \"number \" + string(item), Type: v.Type(), Offset: int64(d.readIndex())})\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tv.SetInt(n)\n\n\t\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\t\tn, err := strconv.ParseUint(string(item), 10, 64)\n\t\t\tif err != nil || v.OverflowUint(n) {\n\t\t\t\td.saveError(&UnmarshalTypeError{Value: \"number \" + string(item), Type: v.Type(), Offset: int64(d.readIndex())})\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tv.SetUint(n)\n\n\t\tcase reflect.Float32, reflect.Float64:\n\t\t\tn, err := strconv.ParseFloat(string(item), v.Type().Bits())\n\t\t\tif err != nil || v.OverflowFloat(n) {\n\t\t\t\td.saveError(&UnmarshalTypeError{Value: \"number \" + string(item), Type: v.Type(), Offset: int64(d.readIndex())})\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tv.SetFloat(n)\n\t\t}\n\t}\n\treturn nil\n}\n\n// The xxxInterface routines build up a value to be stored\n// in an empty interface. They are not strictly necessary,\n// but they avoid the weight of reflection in this common case.\n\n// valueInterface is like value but returns interface{}\nfunc (d *decodeState) valueInterface() (val any) {\n\tswitch d.opcode {\n\tdefault:\n\t\tpanic(phasePanicMsg)\n\tcase scanBeginArray:\n\t\tval = d.arrayInterface()\n\t\td.scanNext()\n\tcase scanBeginObject:\n\t\tval = d.objectInterface()\n\t\td.scanNext()\n\tcase scanBeginLiteral:\n\t\tval = d.literalInterface()\n\t}\n\treturn\n}\n\n// arrayInterface is like array but returns []interface{}.\nfunc (d *decodeState) arrayInterface() []any {\n\torigStrictFieldStackLen := len(d.strictFieldStack)\n\tdefer func() {\n\t\t// Reset to original length and reuse the allocated space for the strict FieldStack slice.\n\t\td.strictFieldStack = d.strictFieldStack[:origStrictFieldStackLen]\n\t}()\n\n\tvar v = make([]any, 0)\n\tfor {\n\t\t// Look ahead for ] - can only happen on first iteration.\n\t\td.scanWhile(scanSkipSpace)\n\t\tif d.opcode == scanEndArray {\n\t\t\tbreak\n\t\t}\n\n\t\td.appendStrictFieldStackIndex(len(v))\n\t\tv = append(v, d.valueInterface())\n\t\t// Reset to original length and reuse the allocated space for the strict FieldStack slice.\n\t\td.strictFieldStack = d.strictFieldStack[:origStrictFieldStackLen]\n\n\t\t// Next token must be , or ].\n\t\tif d.opcode == scanSkipSpace {\n\t\t\td.scanWhile(scanSkipSpace)\n\t\t}\n\t\tif d.opcode == scanEndArray {\n\t\t\tbreak\n\t\t}\n\t\tif d.opcode != scanArrayValue {\n\t\t\tpanic(phasePanicMsg)\n\t\t}\n\t}\n\treturn v\n}\n\n// objectInterface is like object but returns map[string]interface{}.\nfunc (d *decodeState) objectInterface() map[string]any {\n\torigStrictFieldStackLen := len(d.strictFieldStack)\n\tdefer func() {\n\t\t// Reset to original length and reuse the allocated space for the strict FieldStack slice.\n\t\td.strictFieldStack = d.strictFieldStack[:origStrictFieldStackLen]\n\t}()\n\n\tm := make(map[string]any)\n\tfor {\n\t\t// Read opening \" of string key or closing }.\n\t\td.scanWhile(scanSkipSpace)\n\t\tif d.opcode == scanEndObject {\n\t\t\t// closing } - can only happen on first iteration.\n\t\t\tbreak\n\t\t}\n\t\tif d.opcode != scanBeginLiteral {\n\t\t\tpanic(phasePanicMsg)\n\t\t}\n\n\t\t// Read string key.\n\t\tstart := d.readIndex()\n\t\td.rescanLiteral()\n\t\titem := d.data[start:d.readIndex()]\n\t\tkey, ok := unquote(item)\n\t\tif !ok {\n\t\t\tpanic(phasePanicMsg)\n\t\t}\n\n\t\t// Read : before value.\n\t\tif d.opcode == scanSkipSpace {\n\t\t\td.scanWhile(scanSkipSpace)\n\t\t}\n\t\tif d.opcode != scanObjectKey {\n\t\t\tpanic(phasePanicMsg)\n\t\t}\n\t\td.scanWhile(scanSkipSpace)\n\n\t\tif d.disallowDuplicateFields {\n\t\t\tif _, exists := m[key]; exists {\n\t\t\t\td.saveStrictError(d.newFieldError(duplicateStrictErrType, key))\n\t\t\t}\n\t\t}\n\n\t\t// Read value.\n\t\td.appendStrictFieldStackKey(key)\n\t\tm[key] = d.valueInterface()\n\t\t// Reset to original length and reuse the allocated space for the strict FieldStack slice.\n\t\td.strictFieldStack = d.strictFieldStack[:origStrictFieldStackLen]\n\n\t\t// Next token must be , or }.\n\t\tif d.opcode == scanSkipSpace {\n\t\t\td.scanWhile(scanSkipSpace)\n\t\t}\n\t\tif d.opcode == scanEndObject {\n\t\t\tbreak\n\t\t}\n\t\tif d.opcode != scanObjectValue {\n\t\t\tpanic(phasePanicMsg)\n\t\t}\n\t}\n\treturn m\n}\n\n// literalInterface consumes and returns a literal from d.data[d.off-1:] and\n// it reads the following byte ahead. The first byte of the literal has been\n// read already (that's how the caller knows it's a literal).\nfunc (d *decodeState) literalInterface() any {\n\t// All bytes inside literal return scanContinue op code.\n\tstart := d.readIndex()\n\td.rescanLiteral()\n\n\titem := d.data[start:d.readIndex()]\n\n\tswitch c := item[0]; c {\n\tcase 'n': // null\n\t\treturn nil\n\n\tcase 't', 'f': // true, false\n\t\treturn c == 't'\n\n\tcase '\"': // string\n\t\ts, ok := unquote(item)\n\t\tif !ok {\n\t\t\tpanic(phasePanicMsg)\n\t\t}\n\t\treturn s\n\n\tdefault: // number\n\t\tif c != '-' && (c < '0' || c > '9') {\n\t\t\tpanic(phasePanicMsg)\n\t\t}\n\t\tn, err := d.convertNumber(string(item))\n\t\tif err != nil {\n\t\t\td.saveError(err)\n\t\t}\n\t\treturn n\n\t}\n}\n\n// getu4 decodes \\uXXXX from the beginning of s, returning the hex value,\n// or it returns -1.\nfunc getu4(s []byte) rune {\n\tif len(s) < 6 || s[0] != '\\\\' || s[1] != 'u' {\n\t\treturn -1\n\t}\n\tvar r rune\n\tfor _, c := range s[2:6] {\n\t\tswitch {\n\t\tcase '0' <= c && c <= '9':\n\t\t\tc = c - '0'\n\t\tcase 'a' <= c && c <= 'f':\n\t\t\tc = c - 'a' + 10\n\t\tcase 'A' <= c && c <= 'F':\n\t\t\tc = c - 'A' + 10\n\t\tdefault:\n\t\t\treturn -1\n\t\t}\n\t\tr = r*16 + rune(c)\n\t}\n\treturn r\n}\n\n// unquote converts a quoted JSON string literal s into an actual string t.\n// The rules are different than for Go, so cannot use strconv.Unquote.\nfunc unquote(s []byte) (t string, ok bool) {\n\ts, ok = unquoteBytes(s)\n\tt = string(s)\n\treturn\n}\n\nfunc unquoteBytes(s []byte) (t []byte, ok bool) {\n\tif len(s) < 2 || s[0] != '\"' || s[len(s)-1] != '\"' {\n\t\treturn\n\t}\n\ts = s[1 : len(s)-1]\n\n\t// Check for unusual characters. If there are none,\n\t// then no unquoting is needed, so return a slice of the\n\t// original bytes.\n\tr := 0\n\tfor r < len(s) {\n\t\tc := s[r]\n\t\tif c == '\\\\' || c == '\"' || c < ' ' {\n\t\t\tbreak\n\t\t}\n\t\tif c < utf8.RuneSelf {\n\t\t\tr++\n\t\t\tcontinue\n\t\t}\n\t\trr, size := utf8.DecodeRune(s[r:])\n\t\tif rr == utf8.RuneError && size == 1 {\n\t\t\tbreak\n\t\t}\n\t\tr += size\n\t}\n\tif r == len(s) {\n\t\treturn s, true\n\t}\n\n\tb := make([]byte, len(s)+2*utf8.UTFMax)\n\tw := copy(b, s[0:r])\n\tfor r < len(s) {\n\t\t// Out of room? Can only happen if s is full of\n\t\t// malformed UTF-8 and we're replacing each\n\t\t// byte with RuneError.\n\t\tif w >= len(b)-2*utf8.UTFMax {\n\t\t\tnb := make([]byte, (len(b)+utf8.UTFMax)*2)\n\t\t\tcopy(nb, b[0:w])\n\t\t\tb = nb\n\t\t}\n\t\tswitch c := s[r]; {\n\t\tcase c == '\\\\':\n\t\t\tr++\n\t\t\tif r >= len(s) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tswitch s[r] {\n\t\t\tdefault:\n\t\t\t\treturn\n\t\t\tcase '\"', '\\\\', '/', '\\'':\n\t\t\t\tb[w] = s[r]\n\t\t\t\tr++\n\t\t\t\tw++\n\t\t\tcase 'b':\n\t\t\t\tb[w] = '\\b'\n\t\t\t\tr++\n\t\t\t\tw++\n\t\t\tcase 'f':\n\t\t\t\tb[w] = '\\f'\n\t\t\t\tr++\n\t\t\t\tw++\n\t\t\tcase 'n':\n\t\t\t\tb[w] = '\\n'\n\t\t\t\tr++\n\t\t\t\tw++\n\t\t\tcase 'r':\n\t\t\t\tb[w] = '\\r'\n\t\t\t\tr++\n\t\t\t\tw++\n\t\t\tcase 't':\n\t\t\t\tb[w] = '\\t'\n\t\t\t\tr++\n\t\t\t\tw++\n\t\t\tcase 'u':\n\t\t\t\tr--\n\t\t\t\trr := getu4(s[r:])\n\t\t\t\tif rr < 0 {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tr += 6\n\t\t\t\tif utf16.IsSurrogate(rr) {\n\t\t\t\t\trr1 := getu4(s[r:])\n\t\t\t\t\tif dec := utf16.DecodeRune(rr, rr1); dec != unicode.ReplacementChar {\n\t\t\t\t\t\t// A valid pair; consume.\n\t\t\t\t\t\tr += 6\n\t\t\t\t\t\tw += utf8.EncodeRune(b[w:], dec)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\t// Invalid surrogate; fall back to replacement rune.\n\t\t\t\t\trr = unicode.ReplacementChar\n\t\t\t\t}\n\t\t\t\tw += utf8.EncodeRune(b[w:], rr)\n\t\t\t}\n\n\t\t// Quote, control characters are invalid.\n\t\tcase c == '\"', c < ' ':\n\t\t\treturn\n\n\t\t// ASCII\n\t\tcase c < utf8.RuneSelf:\n\t\t\tb[w] = c\n\t\t\tr++\n\t\t\tw++\n\n\t\t// Coerce to well-formed UTF-8.\n\t\tdefault:\n\t\t\trr, size := utf8.DecodeRune(s[r:])\n\t\t\tr += size\n\t\t\tw += utf8.EncodeRune(b[w:], rr)\n\t\t}\n\t}\n\treturn b[0:w], true\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/json/internal/golang/encoding/json/encode.go",
    "content": "// Copyright 2010 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n// Package json implements encoding and decoding of JSON as defined in\n// RFC 7159. The mapping between JSON and Go values is described\n// in the documentation for the Marshal and Unmarshal functions.\n//\n// See \"JSON and Go\" for an introduction to this package:\n// https://golang.org/doc/articles/json_and_go.html\npackage json\n\nimport (\n\t\"bytes\"\n\t\"cmp\"\n\t\"encoding\"\n\t\"encoding/base64\"\n\t\"fmt\"\n\t\"math\"\n\t\"reflect\"\n\t\"slices\"\n\t\"strconv\"\n\t\"strings\"\n\t\"sync\"\n\t\"unicode\"\n\t\"unicode/utf8\"\n)\n\n// Marshal returns the JSON encoding of v.\n//\n// Marshal traverses the value v recursively.\n// If an encountered value implements [Marshaler]\n// and is not a nil pointer, Marshal calls [Marshaler.MarshalJSON]\n// to produce JSON. If no [Marshaler.MarshalJSON] method is present but the\n// value implements [encoding.TextMarshaler] instead, Marshal calls\n// [encoding.TextMarshaler.MarshalText] and encodes the result as a JSON string.\n// The nil pointer exception is not strictly necessary\n// but mimics a similar, necessary exception in the behavior of\n// [Unmarshaler.UnmarshalJSON].\n//\n// Otherwise, Marshal uses the following type-dependent default encodings:\n//\n// Boolean values encode as JSON booleans.\n//\n// Floating point, integer, and [Number] values encode as JSON numbers.\n// NaN and +/-Inf values will return an [UnsupportedValueError].\n//\n// String values encode as JSON strings coerced to valid UTF-8,\n// replacing invalid bytes with the Unicode replacement rune.\n// So that the JSON will be safe to embed inside HTML <script> tags,\n// the string is encoded using [HTMLEscape],\n// which replaces \"<\", \">\", \"&\", U+2028, and U+2029 are escaped\n// to \"\\u003c\",\"\\u003e\", \"\\u0026\", \"\\u2028\", and \"\\u2029\".\n// This replacement can be disabled when using an [Encoder],\n// by calling [Encoder.SetEscapeHTML](false).\n//\n// Array and slice values encode as JSON arrays, except that\n// []byte encodes as a base64-encoded string, and a nil slice\n// encodes as the null JSON value.\n//\n// Struct values encode as JSON objects.\n// Each exported struct field becomes a member of the object, using the\n// field name as the object key, unless the field is omitted for one of the\n// reasons given below.\n//\n// The encoding of each struct field can be customized by the format string\n// stored under the \"json\" key in the struct field's tag.\n// The format string gives the name of the field, possibly followed by a\n// comma-separated list of options. The name may be empty in order to\n// specify options without overriding the default field name.\n//\n// The \"omitempty\" option specifies that the field should be omitted\n// from the encoding if the field has an empty value, defined as\n// false, 0, a nil pointer, a nil interface value, and any empty array,\n// slice, map, or string.\n//\n// As a special case, if the field tag is \"-\", the field is always omitted.\n// Note that a field with name \"-\" can still be generated using the tag \"-,\".\n//\n// Examples of struct field tags and their meanings:\n//\n//\t// Field appears in JSON as key \"myName\".\n//\tField int `json:\"myName\"`\n//\n//\t// Field appears in JSON as key \"myName\" and\n//\t// the field is omitted from the object if its value is empty,\n//\t// as defined above.\n//\tField int `json:\"myName,omitempty\"`\n//\n//\t// Field appears in JSON as key \"Field\" (the default), but\n//\t// the field is skipped if empty.\n//\t// Note the leading comma.\n//\tField int `json:\",omitempty\"`\n//\n//\t// Field is ignored by this package.\n//\tField int `json:\"-\"`\n//\n//\t// Field appears in JSON as key \"-\".\n//\tField int `json:\"-,\"`\n//\n// The \"string\" option signals that a field is stored as JSON inside a\n// JSON-encoded string. It applies only to fields of string, floating point,\n// integer, or boolean types. This extra level of encoding is sometimes used\n// when communicating with JavaScript programs:\n//\n//\tInt64String int64 `json:\",string\"`\n//\n// The key name will be used if it's a non-empty string consisting of\n// only Unicode letters, digits, and ASCII punctuation except quotation\n// marks, backslash, and comma.\n//\n// Embedded struct fields are usually marshaled as if their inner exported fields\n// were fields in the outer struct, subject to the usual Go visibility rules amended\n// as described in the next paragraph.\n// An anonymous struct field with a name given in its JSON tag is treated as\n// having that name, rather than being anonymous.\n// An anonymous struct field of interface type is treated the same as having\n// that type as its name, rather than being anonymous.\n//\n// The Go visibility rules for struct fields are amended for JSON when\n// deciding which field to marshal or unmarshal. If there are\n// multiple fields at the same level, and that level is the least\n// nested (and would therefore be the nesting level selected by the\n// usual Go rules), the following extra rules apply:\n//\n// 1) Of those fields, if any are JSON-tagged, only tagged fields are considered,\n// even if there are multiple untagged fields that would otherwise conflict.\n//\n// 2) If there is exactly one field (tagged or not according to the first rule), that is selected.\n//\n// 3) Otherwise there are multiple fields, and all are ignored; no error occurs.\n//\n// Handling of anonymous struct fields is new in Go 1.1.\n// Prior to Go 1.1, anonymous struct fields were ignored. To force ignoring of\n// an anonymous struct field in both current and earlier versions, give the field\n// a JSON tag of \"-\".\n//\n// Map values encode as JSON objects. The map's key type must either be a\n// string, an integer type, or implement [encoding.TextMarshaler]. The map keys\n// are sorted and used as JSON object keys by applying the following rules,\n// subject to the UTF-8 coercion described for string values above:\n//   - keys of any string type are used directly\n//   - keys that implement [encoding.TextMarshaler] are marshaled\n//   - integer keys are converted to strings\n//\n// Pointer values encode as the value pointed to.\n// A nil pointer encodes as the null JSON value.\n//\n// Interface values encode as the value contained in the interface.\n// A nil interface value encodes as the null JSON value.\n//\n// Channel, complex, and function values cannot be encoded in JSON.\n// Attempting to encode such a value causes Marshal to return\n// an [UnsupportedTypeError].\n//\n// JSON cannot represent cyclic data structures and Marshal does not\n// handle them. Passing cyclic structures to Marshal will result in\n// an error.\nfunc Marshal(v any) ([]byte, error) {\n\te := newEncodeState()\n\tdefer encodeStatePool.Put(e)\n\n\terr := e.marshal(v, encOpts{escapeHTML: true})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tbuf := append([]byte(nil), e.Bytes()...)\n\n\treturn buf, nil\n}\n\n// MarshalIndent is like [Marshal] but applies [Indent] to format the output.\n// Each JSON element in the output will begin on a new line beginning with prefix\n// followed by one or more copies of indent according to the indentation nesting.\nfunc MarshalIndent(v any, prefix, indent string) ([]byte, error) {\n\tb, err := Marshal(v)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tb2 := make([]byte, 0, indentGrowthFactor*len(b))\n\tb2, err = appendIndent(b2, b, prefix, indent)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn b2, nil\n}\n\n// Marshaler is the interface implemented by types that\n// can marshal themselves into valid JSON.\ntype Marshaler interface {\n\tMarshalJSON() ([]byte, error)\n}\n\n// An UnsupportedTypeError is returned by [Marshal] when attempting\n// to encode an unsupported value type.\ntype UnsupportedTypeError struct {\n\tType reflect.Type\n}\n\nfunc (e *UnsupportedTypeError) Error() string {\n\treturn \"json: unsupported type: \" + e.Type.String()\n}\n\n// An UnsupportedValueError is returned by [Marshal] when attempting\n// to encode an unsupported value.\ntype UnsupportedValueError struct {\n\tValue reflect.Value\n\tStr   string\n}\n\nfunc (e *UnsupportedValueError) Error() string {\n\treturn \"json: unsupported value: \" + e.Str\n}\n\n// Before Go 1.2, an InvalidUTF8Error was returned by [Marshal] when\n// attempting to encode a string value with invalid UTF-8 sequences.\n// As of Go 1.2, [Marshal] instead coerces the string to valid UTF-8 by\n// replacing invalid bytes with the Unicode replacement rune U+FFFD.\n//\n// Deprecated: No longer used; kept for compatibility.\ntype InvalidUTF8Error struct {\n\tS string // the whole string value that caused the error\n}\n\nfunc (e *InvalidUTF8Error) Error() string {\n\treturn \"json: invalid UTF-8 in string: \" + strconv.Quote(e.S)\n}\n\n// A MarshalerError represents an error from calling a\n// [Marshaler.MarshalJSON] or [encoding.TextMarshaler.MarshalText] method.\ntype MarshalerError struct {\n\tType       reflect.Type\n\tErr        error\n\tsourceFunc string\n}\n\nfunc (e *MarshalerError) Error() string {\n\tsrcFunc := e.sourceFunc\n\tif srcFunc == \"\" {\n\t\tsrcFunc = \"MarshalJSON\"\n\t}\n\treturn \"json: error calling \" + srcFunc +\n\t\t\" for type \" + e.Type.String() +\n\t\t\": \" + e.Err.Error()\n}\n\n// Unwrap returns the underlying error.\nfunc (e *MarshalerError) Unwrap() error { return e.Err }\n\nconst hex = \"0123456789abcdef\"\n\n// An encodeState encodes JSON into a bytes.Buffer.\ntype encodeState struct {\n\tbytes.Buffer // accumulated output\n\n\t// Keep track of what pointers we've seen in the current recursive call\n\t// path, to avoid cycles that could lead to a stack overflow. Only do\n\t// the relatively expensive map operations if ptrLevel is larger than\n\t// startDetectingCyclesAfter, so that we skip the work if we're within a\n\t// reasonable amount of nested pointers deep.\n\tptrLevel uint\n\tptrSeen  map[any]struct{}\n}\n\nconst startDetectingCyclesAfter = 1000\n\nvar encodeStatePool sync.Pool\n\nfunc newEncodeState() *encodeState {\n\tif v := encodeStatePool.Get(); v != nil {\n\t\te := v.(*encodeState)\n\t\te.Reset()\n\t\tif len(e.ptrSeen) > 0 {\n\t\t\tpanic(\"ptrEncoder.encode should have emptied ptrSeen via defers\")\n\t\t}\n\t\te.ptrLevel = 0\n\t\treturn e\n\t}\n\treturn &encodeState{ptrSeen: make(map[any]struct{})}\n}\n\n// jsonError is an error wrapper type for internal use only.\n// Panics with errors are wrapped in jsonError so that the top-level recover\n// can distinguish intentional panics from this package.\ntype jsonError struct{ error }\n\nfunc (e *encodeState) marshal(v any, opts encOpts) (err error) {\n\tdefer func() {\n\t\tif r := recover(); r != nil {\n\t\t\tif je, ok := r.(jsonError); ok {\n\t\t\t\terr = je.error\n\t\t\t} else {\n\t\t\t\tpanic(r)\n\t\t\t}\n\t\t}\n\t}()\n\te.reflectValue(reflect.ValueOf(v), opts)\n\treturn nil\n}\n\n// error aborts the encoding by panicking with err wrapped in jsonError.\nfunc (e *encodeState) error(err error) {\n\tpanic(jsonError{err})\n}\n\nfunc isEmptyValue(v reflect.Value) bool {\n\tswitch v.Kind() {\n\tcase reflect.Array, reflect.Map, reflect.Slice, reflect.String:\n\t\treturn v.Len() == 0\n\tcase reflect.Bool,\n\t\treflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,\n\t\treflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr,\n\t\treflect.Float32, reflect.Float64,\n\t\treflect.Interface, reflect.Pointer:\n\t\treturn v.IsZero()\n\t}\n\treturn false\n}\n\nfunc (e *encodeState) reflectValue(v reflect.Value, opts encOpts) {\n\tvalueEncoder(v)(e, v, opts)\n}\n\ntype encOpts struct {\n\t// quoted causes primitive fields to be encoded inside JSON strings.\n\tquoted bool\n\t// escapeHTML causes '<', '>', and '&' to be escaped in JSON strings.\n\tescapeHTML bool\n}\n\ntype encoderFunc func(e *encodeState, v reflect.Value, opts encOpts)\n\nvar encoderCache sync.Map // map[reflect.Type]encoderFunc\n\nfunc valueEncoder(v reflect.Value) encoderFunc {\n\tif !v.IsValid() {\n\t\treturn invalidValueEncoder\n\t}\n\treturn typeEncoder(v.Type())\n}\n\nfunc typeEncoder(t reflect.Type) encoderFunc {\n\tif fi, ok := encoderCache.Load(t); ok {\n\t\treturn fi.(encoderFunc)\n\t}\n\n\t// To deal with recursive types, populate the map with an\n\t// indirect func before we build it. This type waits on the\n\t// real func (f) to be ready and then calls it. This indirect\n\t// func is only used for recursive types.\n\tvar (\n\t\twg sync.WaitGroup\n\t\tf  encoderFunc\n\t)\n\twg.Add(1)\n\tfi, loaded := encoderCache.LoadOrStore(t, encoderFunc(func(e *encodeState, v reflect.Value, opts encOpts) {\n\t\twg.Wait()\n\t\tf(e, v, opts)\n\t}))\n\tif loaded {\n\t\treturn fi.(encoderFunc)\n\t}\n\n\t// Compute the real encoder and replace the indirect func with it.\n\tf = newTypeEncoder(t, true)\n\twg.Done()\n\tencoderCache.Store(t, f)\n\treturn f\n}\n\nvar (\n\tmarshalerType     = reflect.TypeFor[Marshaler]()\n\ttextMarshalerType = reflect.TypeFor[encoding.TextMarshaler]()\n)\n\n// newTypeEncoder constructs an encoderFunc for a type.\n// The returned encoder only checks CanAddr when allowAddr is true.\nfunc newTypeEncoder(t reflect.Type, allowAddr bool) encoderFunc {\n\t// If we have a non-pointer value whose type implements\n\t// Marshaler with a value receiver, then we're better off taking\n\t// the address of the value - otherwise we end up with an\n\t// allocation as we cast the value to an interface.\n\tif t.Kind() != reflect.Pointer && allowAddr && reflect.PointerTo(t).Implements(marshalerType) {\n\t\treturn newCondAddrEncoder(addrMarshalerEncoder, newTypeEncoder(t, false))\n\t}\n\tif t.Implements(marshalerType) {\n\t\treturn marshalerEncoder\n\t}\n\tif t.Kind() != reflect.Pointer && allowAddr && reflect.PointerTo(t).Implements(textMarshalerType) {\n\t\treturn newCondAddrEncoder(addrTextMarshalerEncoder, newTypeEncoder(t, false))\n\t}\n\tif t.Implements(textMarshalerType) {\n\t\treturn textMarshalerEncoder\n\t}\n\n\tswitch t.Kind() {\n\tcase reflect.Bool:\n\t\treturn boolEncoder\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn intEncoder\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn uintEncoder\n\tcase reflect.Float32:\n\t\treturn float32Encoder\n\tcase reflect.Float64:\n\t\treturn float64Encoder\n\tcase reflect.String:\n\t\treturn stringEncoder\n\tcase reflect.Interface:\n\t\treturn interfaceEncoder\n\tcase reflect.Struct:\n\t\treturn newStructEncoder(t)\n\tcase reflect.Map:\n\t\treturn newMapEncoder(t)\n\tcase reflect.Slice:\n\t\treturn newSliceEncoder(t)\n\tcase reflect.Array:\n\t\treturn newArrayEncoder(t)\n\tcase reflect.Pointer:\n\t\treturn newPtrEncoder(t)\n\tdefault:\n\t\treturn unsupportedTypeEncoder\n\t}\n}\n\nfunc invalidValueEncoder(e *encodeState, v reflect.Value, _ encOpts) {\n\te.WriteString(\"null\")\n}\n\nfunc marshalerEncoder(e *encodeState, v reflect.Value, opts encOpts) {\n\tif v.Kind() == reflect.Pointer && v.IsNil() {\n\t\te.WriteString(\"null\")\n\t\treturn\n\t}\n\tm, ok := v.Interface().(Marshaler)\n\tif !ok {\n\t\te.WriteString(\"null\")\n\t\treturn\n\t}\n\tb, err := m.MarshalJSON()\n\tif err == nil {\n\t\te.Grow(len(b))\n\t\tout := e.AvailableBuffer()\n\t\tout, err = appendCompact(out, b, opts.escapeHTML)\n\t\te.Buffer.Write(out)\n\t}\n\tif err != nil {\n\t\te.error(&MarshalerError{v.Type(), err, \"MarshalJSON\"})\n\t}\n}\n\nfunc addrMarshalerEncoder(e *encodeState, v reflect.Value, opts encOpts) {\n\tva := v.Addr()\n\tif va.IsNil() {\n\t\te.WriteString(\"null\")\n\t\treturn\n\t}\n\tm := va.Interface().(Marshaler)\n\tb, err := m.MarshalJSON()\n\tif err == nil {\n\t\te.Grow(len(b))\n\t\tout := e.AvailableBuffer()\n\t\tout, err = appendCompact(out, b, opts.escapeHTML)\n\t\te.Buffer.Write(out)\n\t}\n\tif err != nil {\n\t\te.error(&MarshalerError{v.Type(), err, \"MarshalJSON\"})\n\t}\n}\n\nfunc textMarshalerEncoder(e *encodeState, v reflect.Value, opts encOpts) {\n\tif v.Kind() == reflect.Pointer && v.IsNil() {\n\t\te.WriteString(\"null\")\n\t\treturn\n\t}\n\tm, ok := v.Interface().(encoding.TextMarshaler)\n\tif !ok {\n\t\te.WriteString(\"null\")\n\t\treturn\n\t}\n\tb, err := m.MarshalText()\n\tif err != nil {\n\t\te.error(&MarshalerError{v.Type(), err, \"MarshalText\"})\n\t}\n\te.Write(appendString(e.AvailableBuffer(), b, opts.escapeHTML))\n}\n\nfunc addrTextMarshalerEncoder(e *encodeState, v reflect.Value, opts encOpts) {\n\tva := v.Addr()\n\tif va.IsNil() {\n\t\te.WriteString(\"null\")\n\t\treturn\n\t}\n\tm := va.Interface().(encoding.TextMarshaler)\n\tb, err := m.MarshalText()\n\tif err != nil {\n\t\te.error(&MarshalerError{v.Type(), err, \"MarshalText\"})\n\t}\n\te.Write(appendString(e.AvailableBuffer(), b, opts.escapeHTML))\n}\n\nfunc boolEncoder(e *encodeState, v reflect.Value, opts encOpts) {\n\tb := e.AvailableBuffer()\n\tb = mayAppendQuote(b, opts.quoted)\n\tb = strconv.AppendBool(b, v.Bool())\n\tb = mayAppendQuote(b, opts.quoted)\n\te.Write(b)\n}\n\nfunc intEncoder(e *encodeState, v reflect.Value, opts encOpts) {\n\tb := e.AvailableBuffer()\n\tb = mayAppendQuote(b, opts.quoted)\n\tb = strconv.AppendInt(b, v.Int(), 10)\n\tb = mayAppendQuote(b, opts.quoted)\n\te.Write(b)\n}\n\nfunc uintEncoder(e *encodeState, v reflect.Value, opts encOpts) {\n\tb := e.AvailableBuffer()\n\tb = mayAppendQuote(b, opts.quoted)\n\tb = strconv.AppendUint(b, v.Uint(), 10)\n\tb = mayAppendQuote(b, opts.quoted)\n\te.Write(b)\n}\n\ntype floatEncoder int // number of bits\n\nfunc (bits floatEncoder) encode(e *encodeState, v reflect.Value, opts encOpts) {\n\tf := v.Float()\n\tif math.IsInf(f, 0) || math.IsNaN(f) {\n\t\te.error(&UnsupportedValueError{v, strconv.FormatFloat(f, 'g', -1, int(bits))})\n\t}\n\n\t// Convert as if by ES6 number to string conversion.\n\t// This matches most other JSON generators.\n\t// See golang.org/issue/6384 and golang.org/issue/14135.\n\t// Like fmt %g, but the exponent cutoffs are different\n\t// and exponents themselves are not padded to two digits.\n\tb := e.AvailableBuffer()\n\tb = mayAppendQuote(b, opts.quoted)\n\tabs := math.Abs(f)\n\tfmt := byte('f')\n\t// Note: Must use float32 comparisons for underlying float32 value to get precise cutoffs right.\n\tif abs != 0 {\n\t\tif bits == 64 && (abs < 1e-6 || abs >= 1e21) || bits == 32 && (float32(abs) < 1e-6 || float32(abs) >= 1e21) {\n\t\t\tfmt = 'e'\n\t\t}\n\t}\n\tb = strconv.AppendFloat(b, f, fmt, -1, int(bits))\n\tif fmt == 'e' {\n\t\t// clean up e-09 to e-9\n\t\tn := len(b)\n\t\tif n >= 4 && b[n-4] == 'e' && b[n-3] == '-' && b[n-2] == '0' {\n\t\t\tb[n-2] = b[n-1]\n\t\t\tb = b[:n-1]\n\t\t}\n\t}\n\tb = mayAppendQuote(b, opts.quoted)\n\te.Write(b)\n}\n\nvar (\n\tfloat32Encoder = (floatEncoder(32)).encode\n\tfloat64Encoder = (floatEncoder(64)).encode\n)\n\nfunc stringEncoder(e *encodeState, v reflect.Value, opts encOpts) {\n\tif v.Type() == numberType {\n\t\tnumStr := v.String()\n\t\t// In Go1.5 the empty string encodes to \"0\", while this is not a valid number literal\n\t\t// we keep compatibility so check validity after this.\n\t\tif numStr == \"\" {\n\t\t\tnumStr = \"0\" // Number's zero-val\n\t\t}\n\t\tif !isValidNumber(numStr) {\n\t\t\te.error(fmt.Errorf(\"json: invalid number literal %q\", numStr))\n\t\t}\n\t\tb := e.AvailableBuffer()\n\t\tb = mayAppendQuote(b, opts.quoted)\n\t\tb = append(b, numStr...)\n\t\tb = mayAppendQuote(b, opts.quoted)\n\t\te.Write(b)\n\t\treturn\n\t}\n\tif opts.quoted {\n\t\tb := appendString(nil, v.String(), opts.escapeHTML)\n\t\te.Write(appendString(e.AvailableBuffer(), b, false)) // no need to escape again since it is already escaped\n\t} else {\n\t\te.Write(appendString(e.AvailableBuffer(), v.String(), opts.escapeHTML))\n\t}\n}\n\n// isValidNumber reports whether s is a valid JSON number literal.\nfunc isValidNumber(s string) bool {\n\t// This function implements the JSON numbers grammar.\n\t// See https://tools.ietf.org/html/rfc7159#section-6\n\t// and https://www.json.org/img/number.png\n\n\tif s == \"\" {\n\t\treturn false\n\t}\n\n\t// Optional -\n\tif s[0] == '-' {\n\t\ts = s[1:]\n\t\tif s == \"\" {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Digits\n\tswitch {\n\tdefault:\n\t\treturn false\n\n\tcase s[0] == '0':\n\t\ts = s[1:]\n\n\tcase '1' <= s[0] && s[0] <= '9':\n\t\ts = s[1:]\n\t\tfor len(s) > 0 && '0' <= s[0] && s[0] <= '9' {\n\t\t\ts = s[1:]\n\t\t}\n\t}\n\n\t// . followed by 1 or more digits.\n\tif len(s) >= 2 && s[0] == '.' && '0' <= s[1] && s[1] <= '9' {\n\t\ts = s[2:]\n\t\tfor len(s) > 0 && '0' <= s[0] && s[0] <= '9' {\n\t\t\ts = s[1:]\n\t\t}\n\t}\n\n\t// e or E followed by an optional - or + and\n\t// 1 or more digits.\n\tif len(s) >= 2 && (s[0] == 'e' || s[0] == 'E') {\n\t\ts = s[1:]\n\t\tif s[0] == '+' || s[0] == '-' {\n\t\t\ts = s[1:]\n\t\t\tif s == \"\" {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tfor len(s) > 0 && '0' <= s[0] && s[0] <= '9' {\n\t\t\ts = s[1:]\n\t\t}\n\t}\n\n\t// Make sure we are at the end.\n\treturn s == \"\"\n}\n\nfunc interfaceEncoder(e *encodeState, v reflect.Value, opts encOpts) {\n\tif v.IsNil() {\n\t\te.WriteString(\"null\")\n\t\treturn\n\t}\n\te.reflectValue(v.Elem(), opts)\n}\n\nfunc unsupportedTypeEncoder(e *encodeState, v reflect.Value, _ encOpts) {\n\te.error(&UnsupportedTypeError{v.Type()})\n}\n\ntype structEncoder struct {\n\tfields structFields\n}\n\ntype structFields struct {\n\tlist         []field\n\tbyExactName  map[string]*field\n\tbyFoldedName map[string]*field\n}\n\nfunc (se structEncoder) encode(e *encodeState, v reflect.Value, opts encOpts) {\n\tnext := byte('{')\nFieldLoop:\n\tfor i := range se.fields.list {\n\t\tf := &se.fields.list[i]\n\n\t\t// Find the nested struct field by following f.index.\n\t\tfv := v\n\t\tfor _, i := range f.index {\n\t\t\tif fv.Kind() == reflect.Pointer {\n\t\t\t\tif fv.IsNil() {\n\t\t\t\t\tcontinue FieldLoop\n\t\t\t\t}\n\t\t\t\tfv = fv.Elem()\n\t\t\t}\n\t\t\tfv = fv.Field(i)\n\t\t}\n\n\t\tif f.omitEmpty && isEmptyValue(fv) {\n\t\t\tcontinue\n\t\t}\n\t\te.WriteByte(next)\n\t\tnext = ','\n\t\tif opts.escapeHTML {\n\t\t\te.WriteString(f.nameEscHTML)\n\t\t} else {\n\t\t\te.WriteString(f.nameNonEsc)\n\t\t}\n\t\topts.quoted = f.quoted\n\t\tf.encoder(e, fv, opts)\n\t}\n\tif next == '{' {\n\t\te.WriteString(\"{}\")\n\t} else {\n\t\te.WriteByte('}')\n\t}\n}\n\nfunc newStructEncoder(t reflect.Type) encoderFunc {\n\tse := structEncoder{fields: cachedTypeFields(t)}\n\treturn se.encode\n}\n\ntype mapEncoder struct {\n\telemEnc encoderFunc\n}\n\nfunc (me mapEncoder) encode(e *encodeState, v reflect.Value, opts encOpts) {\n\tif v.IsNil() {\n\t\te.WriteString(\"null\")\n\t\treturn\n\t}\n\tif e.ptrLevel++; e.ptrLevel > startDetectingCyclesAfter {\n\t\t// We're a large number of nested ptrEncoder.encode calls deep;\n\t\t// start checking if we've run into a pointer cycle.\n\t\tptr := v.UnsafePointer()\n\t\tif _, ok := e.ptrSeen[ptr]; ok {\n\t\t\te.error(&UnsupportedValueError{v, fmt.Sprintf(\"encountered a cycle via %s\", v.Type())})\n\t\t}\n\t\te.ptrSeen[ptr] = struct{}{}\n\t\tdefer delete(e.ptrSeen, ptr)\n\t}\n\te.WriteByte('{')\n\n\t// Extract and sort the keys.\n\tvar (\n\t\tsv  = make([]reflectWithString, v.Len())\n\t\tmi  = v.MapRange()\n\t\terr error\n\t)\n\tfor i := 0; mi.Next(); i++ {\n\t\tif sv[i].ks, err = resolveKeyName(mi.Key()); err != nil {\n\t\t\te.error(fmt.Errorf(\"json: encoding error for type %q: %q\", v.Type().String(), err.Error()))\n\t\t}\n\t\tsv[i].v = mi.Value()\n\t}\n\tslices.SortFunc(sv, func(i, j reflectWithString) int {\n\t\treturn strings.Compare(i.ks, j.ks)\n\t})\n\n\tfor i, kv := range sv {\n\t\tif i > 0 {\n\t\t\te.WriteByte(',')\n\t\t}\n\t\te.Write(appendString(e.AvailableBuffer(), kv.ks, opts.escapeHTML))\n\t\te.WriteByte(':')\n\t\tme.elemEnc(e, kv.v, opts)\n\t}\n\te.WriteByte('}')\n\te.ptrLevel--\n}\n\nfunc newMapEncoder(t reflect.Type) encoderFunc {\n\tswitch t.Key().Kind() {\n\tcase reflect.String,\n\t\treflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,\n\t\treflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\tdefault:\n\t\tif !t.Key().Implements(textMarshalerType) {\n\t\t\treturn unsupportedTypeEncoder\n\t\t}\n\t}\n\tme := mapEncoder{typeEncoder(t.Elem())}\n\treturn me.encode\n}\n\nfunc encodeByteSlice(e *encodeState, v reflect.Value, _ encOpts) {\n\tif v.IsNil() {\n\t\te.WriteString(\"null\")\n\t\treturn\n\t}\n\n\ts := v.Bytes()\n\tb := e.AvailableBuffer()\n\tb = append(b, '\"')\n\tb = base64.StdEncoding.AppendEncode(b, s)\n\tb = append(b, '\"')\n\te.Write(b)\n}\n\n// sliceEncoder just wraps an arrayEncoder, checking to make sure the value isn't nil.\ntype sliceEncoder struct {\n\tarrayEnc encoderFunc\n}\n\nfunc (se sliceEncoder) encode(e *encodeState, v reflect.Value, opts encOpts) {\n\tif v.IsNil() {\n\t\te.WriteString(\"null\")\n\t\treturn\n\t}\n\tif e.ptrLevel++; e.ptrLevel > startDetectingCyclesAfter {\n\t\t// We're a large number of nested ptrEncoder.encode calls deep;\n\t\t// start checking if we've run into a pointer cycle.\n\t\t// Here we use a struct to memorize the pointer to the first element of the slice\n\t\t// and its length.\n\t\tptr := struct {\n\t\t\tptr interface{} // always an unsafe.Pointer, but avoids a dependency on package unsafe\n\t\t\tlen int\n\t\t}{v.UnsafePointer(), v.Len()}\n\t\tif _, ok := e.ptrSeen[ptr]; ok {\n\t\t\te.error(&UnsupportedValueError{v, fmt.Sprintf(\"encountered a cycle via %s\", v.Type())})\n\t\t}\n\t\te.ptrSeen[ptr] = struct{}{}\n\t\tdefer delete(e.ptrSeen, ptr)\n\t}\n\tse.arrayEnc(e, v, opts)\n\te.ptrLevel--\n}\n\nfunc newSliceEncoder(t reflect.Type) encoderFunc {\n\t// Byte slices get special treatment; arrays don't.\n\tif t.Elem().Kind() == reflect.Uint8 {\n\t\tp := reflect.PointerTo(t.Elem())\n\t\tif !p.Implements(marshalerType) && !p.Implements(textMarshalerType) {\n\t\t\treturn encodeByteSlice\n\t\t}\n\t}\n\tenc := sliceEncoder{newArrayEncoder(t)}\n\treturn enc.encode\n}\n\ntype arrayEncoder struct {\n\telemEnc encoderFunc\n}\n\nfunc (ae arrayEncoder) encode(e *encodeState, v reflect.Value, opts encOpts) {\n\te.WriteByte('[')\n\tn := v.Len()\n\tfor i := 0; i < n; i++ {\n\t\tif i > 0 {\n\t\t\te.WriteByte(',')\n\t\t}\n\t\tae.elemEnc(e, v.Index(i), opts)\n\t}\n\te.WriteByte(']')\n}\n\nfunc newArrayEncoder(t reflect.Type) encoderFunc {\n\tenc := arrayEncoder{typeEncoder(t.Elem())}\n\treturn enc.encode\n}\n\ntype ptrEncoder struct {\n\telemEnc encoderFunc\n}\n\nfunc (pe ptrEncoder) encode(e *encodeState, v reflect.Value, opts encOpts) {\n\tif v.IsNil() {\n\t\te.WriteString(\"null\")\n\t\treturn\n\t}\n\tif e.ptrLevel++; e.ptrLevel > startDetectingCyclesAfter {\n\t\t// We're a large number of nested ptrEncoder.encode calls deep;\n\t\t// start checking if we've run into a pointer cycle.\n\t\tptr := v.Interface()\n\t\tif _, ok := e.ptrSeen[ptr]; ok {\n\t\t\te.error(&UnsupportedValueError{v, fmt.Sprintf(\"encountered a cycle via %s\", v.Type())})\n\t\t}\n\t\te.ptrSeen[ptr] = struct{}{}\n\t\tdefer delete(e.ptrSeen, ptr)\n\t}\n\tpe.elemEnc(e, v.Elem(), opts)\n\te.ptrLevel--\n}\n\nfunc newPtrEncoder(t reflect.Type) encoderFunc {\n\tenc := ptrEncoder{typeEncoder(t.Elem())}\n\treturn enc.encode\n}\n\ntype condAddrEncoder struct {\n\tcanAddrEnc, elseEnc encoderFunc\n}\n\nfunc (ce condAddrEncoder) encode(e *encodeState, v reflect.Value, opts encOpts) {\n\tif v.CanAddr() {\n\t\tce.canAddrEnc(e, v, opts)\n\t} else {\n\t\tce.elseEnc(e, v, opts)\n\t}\n}\n\n// newCondAddrEncoder returns an encoder that checks whether its value\n// CanAddr and delegates to canAddrEnc if so, else to elseEnc.\nfunc newCondAddrEncoder(canAddrEnc, elseEnc encoderFunc) encoderFunc {\n\tenc := condAddrEncoder{canAddrEnc: canAddrEnc, elseEnc: elseEnc}\n\treturn enc.encode\n}\n\nfunc isValidTag(s string) bool {\n\tif s == \"\" {\n\t\treturn false\n\t}\n\tfor _, c := range s {\n\t\tswitch {\n\t\tcase strings.ContainsRune(\"!#$%&()*+-./:;<=>?@[]^_{|}~ \", c):\n\t\t\t// Backslash and quote chars are reserved, but\n\t\t\t// otherwise any punctuation chars are allowed\n\t\t\t// in a tag name.\n\t\tcase !unicode.IsLetter(c) && !unicode.IsDigit(c):\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc typeByIndex(t reflect.Type, index []int) reflect.Type {\n\tfor _, i := range index {\n\t\tif t.Kind() == reflect.Pointer {\n\t\t\tt = t.Elem()\n\t\t}\n\t\tt = t.Field(i).Type\n\t}\n\treturn t\n}\n\ntype reflectWithString struct {\n\tv  reflect.Value\n\tks string\n}\n\nfunc resolveKeyName(k reflect.Value) (string, error) {\n\tif k.Kind() == reflect.String {\n\t\treturn k.String(), nil\n\t}\n\tif tm, ok := k.Interface().(encoding.TextMarshaler); ok {\n\t\tif k.Kind() == reflect.Pointer && k.IsNil() {\n\t\t\treturn \"\", nil\n\t\t}\n\t\tbuf, err := tm.MarshalText()\n\t\treturn string(buf), err\n\t}\n\tswitch k.Kind() {\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn strconv.FormatInt(k.Int(), 10), nil\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn strconv.FormatUint(k.Uint(), 10), nil\n\t}\n\tpanic(\"unexpected map key type\")\n}\n\nfunc appendString[Bytes []byte | string](dst []byte, src Bytes, escapeHTML bool) []byte {\n\tdst = append(dst, '\"')\n\tstart := 0\n\tfor i := 0; i < len(src); {\n\t\tif b := src[i]; b < utf8.RuneSelf {\n\t\t\tif htmlSafeSet[b] || (!escapeHTML && safeSet[b]) {\n\t\t\t\ti++\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tdst = append(dst, src[start:i]...)\n\t\t\tswitch b {\n\t\t\tcase '\\\\', '\"':\n\t\t\t\tdst = append(dst, '\\\\', b)\n\t\t\tcase '\\b':\n\t\t\t\tdst = append(dst, '\\\\', 'b')\n\t\t\tcase '\\f':\n\t\t\t\tdst = append(dst, '\\\\', 'f')\n\t\t\tcase '\\n':\n\t\t\t\tdst = append(dst, '\\\\', 'n')\n\t\t\tcase '\\r':\n\t\t\t\tdst = append(dst, '\\\\', 'r')\n\t\t\tcase '\\t':\n\t\t\t\tdst = append(dst, '\\\\', 't')\n\t\t\tdefault:\n\t\t\t\t// This encodes bytes < 0x20 except for \\b, \\f, \\n, \\r and \\t.\n\t\t\t\t// If escapeHTML is set, it also escapes <, >, and &\n\t\t\t\t// because they can lead to security holes when\n\t\t\t\t// user-controlled strings are rendered into JSON\n\t\t\t\t// and served to some browsers.\n\t\t\t\tdst = append(dst, '\\\\', 'u', '0', '0', hex[b>>4], hex[b&0xF])\n\t\t\t}\n\t\t\ti++\n\t\t\tstart = i\n\t\t\tcontinue\n\t\t}\n\t\t// TODO(https://go.dev/issue/56948): Use generic utf8 functionality.\n\t\t// For now, cast only a small portion of byte slices to a string\n\t\t// so that it can be stack allocated. This slows down []byte slightly\n\t\t// due to the extra copy, but keeps string performance roughly the same.\n\t\tn := len(src) - i\n\t\tif n > utf8.UTFMax {\n\t\t\tn = utf8.UTFMax\n\t\t}\n\t\tc, size := utf8.DecodeRuneInString(string(src[i : i+n]))\n\t\tif c == utf8.RuneError && size == 1 {\n\t\t\tdst = append(dst, src[start:i]...)\n\t\t\tdst = append(dst, `\\ufffd`...)\n\t\t\ti += size\n\t\t\tstart = i\n\t\t\tcontinue\n\t\t}\n\t\t// U+2028 is LINE SEPARATOR.\n\t\t// U+2029 is PARAGRAPH SEPARATOR.\n\t\t// They are both technically valid characters in JSON strings,\n\t\t// but don't work in JSONP, which has to be evaluated as JavaScript,\n\t\t// and can lead to security holes there. It is valid JSON to\n\t\t// escape them, so we do so unconditionally.\n\t\t// See https://en.wikipedia.org/wiki/JSON#Safety.\n\t\tif c == '\\u2028' || c == '\\u2029' {\n\t\t\tdst = append(dst, src[start:i]...)\n\t\t\tdst = append(dst, '\\\\', 'u', '2', '0', '2', hex[c&0xF])\n\t\t\ti += size\n\t\t\tstart = i\n\t\t\tcontinue\n\t\t}\n\t\ti += size\n\t}\n\tdst = append(dst, src[start:]...)\n\tdst = append(dst, '\"')\n\treturn dst\n}\n\n// A field represents a single field found in a struct.\ntype field struct {\n\tname      string\n\tnameBytes []byte // []byte(name)\n\n\tlistIndex int // tracks the index of this field in the list of fields for a struct\n\n\tnameNonEsc  string // `\"` + name + `\":`\n\tnameEscHTML string // `\"` + HTMLEscape(name) + `\":`\n\n\ttag       bool\n\tindex     []int\n\ttyp       reflect.Type\n\tomitEmpty bool\n\tquoted    bool\n\n\tencoder encoderFunc\n}\n\n// typeFields returns a list of fields that JSON should recognize for the given type.\n// The algorithm is breadth-first search over the set of structs to include - the top struct\n// and then any reachable anonymous structs.\nfunc typeFields(t reflect.Type) structFields {\n\t// Anonymous fields to explore at the current level and the next.\n\tcurrent := []field{}\n\tnext := []field{{typ: t}}\n\n\t// Count of queued names for current level and the next.\n\tvar count, nextCount map[reflect.Type]int\n\n\t// Types already visited at an earlier level.\n\tvisited := map[reflect.Type]bool{}\n\n\t// Fields found.\n\tvar fields []field\n\n\t// Buffer to run appendHTMLEscape on field names.\n\tvar nameEscBuf []byte\n\n\tfor len(next) > 0 {\n\t\tcurrent, next = next, current[:0]\n\t\tcount, nextCount = nextCount, map[reflect.Type]int{}\n\n\t\tfor _, f := range current {\n\t\t\tif visited[f.typ] {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tvisited[f.typ] = true\n\n\t\t\t// Scan f.typ for fields to include.\n\t\t\tfor i := 0; i < f.typ.NumField(); i++ {\n\t\t\t\tsf := f.typ.Field(i)\n\t\t\t\tif sf.Anonymous {\n\t\t\t\t\tt := sf.Type\n\t\t\t\t\tif t.Kind() == reflect.Pointer {\n\t\t\t\t\t\tt = t.Elem()\n\t\t\t\t\t}\n\t\t\t\t\tif !sf.IsExported() && t.Kind() != reflect.Struct {\n\t\t\t\t\t\t// Ignore embedded fields of unexported non-struct types.\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t\t// Do not ignore embedded fields of unexported struct types\n\t\t\t\t\t// since they may have exported fields.\n\t\t\t\t} else if !sf.IsExported() {\n\t\t\t\t\t// Ignore unexported non-embedded fields.\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\ttag := sf.Tag.Get(\"json\")\n\t\t\t\tif tag == \"-\" {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tname, opts := parseTag(tag)\n\t\t\t\tif !isValidTag(name) {\n\t\t\t\t\tname = \"\"\n\t\t\t\t}\n\t\t\t\tindex := make([]int, len(f.index)+1)\n\t\t\t\tcopy(index, f.index)\n\t\t\t\tindex[len(f.index)] = i\n\n\t\t\t\tft := sf.Type\n\t\t\t\tif ft.Name() == \"\" && ft.Kind() == reflect.Pointer {\n\t\t\t\t\t// Follow pointer.\n\t\t\t\t\tft = ft.Elem()\n\t\t\t\t}\n\n\t\t\t\t// Only strings, floats, integers, and booleans can be quoted.\n\t\t\t\tquoted := false\n\t\t\t\tif opts.Contains(\"string\") {\n\t\t\t\t\tswitch ft.Kind() {\n\t\t\t\t\tcase reflect.Bool,\n\t\t\t\t\t\treflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,\n\t\t\t\t\t\treflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr,\n\t\t\t\t\t\treflect.Float32, reflect.Float64,\n\t\t\t\t\t\treflect.String:\n\t\t\t\t\t\tquoted = true\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Record found field and index sequence.\n\t\t\t\tif name != \"\" || !sf.Anonymous || ft.Kind() != reflect.Struct {\n\t\t\t\t\ttagged := name != \"\"\n\t\t\t\t\tif name == \"\" {\n\t\t\t\t\t\tname = sf.Name\n\t\t\t\t\t}\n\t\t\t\t\tfield := field{\n\t\t\t\t\t\tname:      name,\n\t\t\t\t\t\ttag:       tagged,\n\t\t\t\t\t\tindex:     index,\n\t\t\t\t\t\ttyp:       ft,\n\t\t\t\t\t\tomitEmpty: opts.Contains(\"omitempty\"),\n\t\t\t\t\t\tquoted:    quoted,\n\t\t\t\t\t}\n\t\t\t\t\tfield.nameBytes = []byte(field.name)\n\n\t\t\t\t\t// Build nameEscHTML and nameNonEsc ahead of time.\n\t\t\t\t\tnameEscBuf = appendHTMLEscape(nameEscBuf[:0], field.nameBytes)\n\t\t\t\t\tfield.nameEscHTML = `\"` + string(nameEscBuf) + `\":`\n\t\t\t\t\tfield.nameNonEsc = `\"` + field.name + `\":`\n\n\t\t\t\t\tfields = append(fields, field)\n\t\t\t\t\tif count[f.typ] > 1 {\n\t\t\t\t\t\t// If there were multiple instances, add a second,\n\t\t\t\t\t\t// so that the annihilation code will see a duplicate.\n\t\t\t\t\t\t// It only cares about the distinction between 1 and 2,\n\t\t\t\t\t\t// so don't bother generating any more copies.\n\t\t\t\t\t\tfields = append(fields, fields[len(fields)-1])\n\t\t\t\t\t}\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\t// Record new anonymous struct to explore in next round.\n\t\t\t\tnextCount[ft]++\n\t\t\t\tif nextCount[ft] == 1 {\n\t\t\t\t\tnext = append(next, field{name: ft.Name(), index: index, typ: ft})\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tslices.SortFunc(fields, func(a, b field) int {\n\t\t// sort field by name, breaking ties with depth, then\n\t\t// breaking ties with \"name came from json tag\", then\n\t\t// breaking ties with index sequence.\n\t\tif c := strings.Compare(a.name, b.name); c != 0 {\n\t\t\treturn c\n\t\t}\n\t\tif c := cmp.Compare(len(a.index), len(b.index)); c != 0 {\n\t\t\treturn c\n\t\t}\n\t\tif a.tag != b.tag {\n\t\t\tif a.tag {\n\t\t\t\treturn -1\n\t\t\t}\n\t\t\treturn +1\n\t\t}\n\t\treturn slices.Compare(a.index, b.index)\n\t})\n\n\t// Delete all fields that are hidden by the Go rules for embedded fields,\n\t// except that fields with JSON tags are promoted.\n\n\t// The fields are sorted in primary order of name, secondary order\n\t// of field index length. Loop over names; for each name, delete\n\t// hidden fields by choosing the one dominant field that survives.\n\tout := fields[:0]\n\tfor advance, i := 0, 0; i < len(fields); i += advance {\n\t\t// One iteration per name.\n\t\t// Find the sequence of fields with the name of this first field.\n\t\tfi := fields[i]\n\t\tname := fi.name\n\t\tfor advance = 1; i+advance < len(fields); advance++ {\n\t\t\tfj := fields[i+advance]\n\t\t\tif fj.name != name {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif advance == 1 { // Only one field with this name\n\t\t\tout = append(out, fi)\n\t\t\tcontinue\n\t\t}\n\t\tdominant, ok := dominantField(fields[i : i+advance])\n\t\tif ok {\n\t\t\tout = append(out, dominant)\n\t\t}\n\t}\n\n\tfields = out\n\tslices.SortFunc(fields, func(i, j field) int {\n\t\treturn slices.Compare(i.index, j.index)\n\t})\n\n\tfor i := range fields {\n\t\tf := &fields[i]\n\t\tf.encoder = typeEncoder(typeByIndex(t, f.index))\n\t}\n\texactNameIndex := make(map[string]*field, len(fields))\n\tfoldedNameIndex := make(map[string]*field, len(fields))\n\tfor i, field := range fields {\n\t\tfields[i].listIndex = i\n\t\texactNameIndex[field.name] = &fields[i]\n\t\t// For historical reasons, first folded match takes precedence.\n\t\tif _, ok := foldedNameIndex[string(foldName(field.nameBytes))]; !ok {\n\t\t\tfoldedNameIndex[string(foldName(field.nameBytes))] = &fields[i]\n\t\t}\n\t}\n\treturn structFields{fields, exactNameIndex, foldedNameIndex}\n}\n\n// dominantField looks through the fields, all of which are known to\n// have the same name, to find the single field that dominates the\n// others using Go's embedding rules, modified by the presence of\n// JSON tags. If there are multiple top-level fields, the boolean\n// will be false: This condition is an error in Go and we skip all\n// the fields.\nfunc dominantField(fields []field) (field, bool) {\n\t// The fields are sorted in increasing index-length order, then by presence of tag.\n\t// That means that the first field is the dominant one. We need only check\n\t// for error cases: two fields at top level, either both tagged or neither tagged.\n\tif len(fields) > 1 && len(fields[0].index) == len(fields[1].index) && fields[0].tag == fields[1].tag {\n\t\treturn field{}, false\n\t}\n\treturn fields[0], true\n}\n\nvar fieldCache sync.Map // map[reflect.Type]structFields\n\n// cachedTypeFields is like typeFields but uses a cache to avoid repeated work.\nfunc cachedTypeFields(t reflect.Type) structFields {\n\tif f, ok := fieldCache.Load(t); ok {\n\t\treturn f.(structFields)\n\t}\n\tf, _ := fieldCache.LoadOrStore(t, typeFields(t))\n\treturn f.(structFields)\n}\n\nfunc mayAppendQuote(b []byte, quoted bool) []byte {\n\tif quoted {\n\t\tb = append(b, '\"')\n\t}\n\treturn b\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/json/internal/golang/encoding/json/fold.go",
    "content": "// Copyright 2013 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"unicode\"\n\t\"unicode/utf8\"\n)\n\n// foldName returns a folded string such that foldName(x) == foldName(y)\n// is identical to bytes.EqualFold(x, y).\nfunc foldName(in []byte) []byte {\n\t// This is inlinable to take advantage of \"function outlining\".\n\tvar arr [32]byte // large enough for most JSON names\n\treturn appendFoldedName(arr[:0], in)\n}\n\nfunc appendFoldedName(out, in []byte) []byte {\n\tfor i := 0; i < len(in); {\n\t\t// Handle single-byte ASCII.\n\t\tif c := in[i]; c < utf8.RuneSelf {\n\t\t\tif 'a' <= c && c <= 'z' {\n\t\t\t\tc -= 'a' - 'A'\n\t\t\t}\n\t\t\tout = append(out, c)\n\t\t\ti++\n\t\t\tcontinue\n\t\t}\n\t\t// Handle multi-byte Unicode.\n\t\tr, n := utf8.DecodeRune(in[i:])\n\t\tout = utf8.AppendRune(out, foldRune(r))\n\t\ti += n\n\t}\n\treturn out\n}\n\n// foldRune is returns the smallest rune for all runes in the same fold set.\nfunc foldRune(r rune) rune {\n\tfor {\n\t\tr2 := unicode.SimpleFold(r)\n\t\tif r2 <= r {\n\t\t\treturn r2\n\t\t}\n\t\tr = r2\n\t}\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/json/internal/golang/encoding/json/fuzz.go",
    "content": "// Copyright 2019 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n//go:build gofuzz\n\npackage json\n\nimport (\n\t\"fmt\"\n)\n\nfunc Fuzz(data []byte) (score int) {\n\tfor _, ctor := range []func() any{\n\t\tfunc() any { return new(any) },\n\t\tfunc() any { return new(map[string]any) },\n\t\tfunc() any { return new([]any) },\n\t} {\n\t\tv := ctor()\n\t\terr := Unmarshal(data, v)\n\t\tif err != nil {\n\t\t\tcontinue\n\t\t}\n\t\tscore = 1\n\n\t\tm, err := Marshal(v)\n\t\tif err != nil {\n\t\t\tfmt.Printf(\"v=%#v\\n\", v)\n\t\t\tpanic(err)\n\t\t}\n\n\t\tu := ctor()\n\t\terr = Unmarshal(m, u)\n\t\tif err != nil {\n\t\t\tfmt.Printf(\"v=%#v\\n\", v)\n\t\t\tfmt.Printf(\"m=%s\\n\", m)\n\t\t\tpanic(err)\n\t\t}\n\t}\n\n\treturn\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/json/internal/golang/encoding/json/indent.go",
    "content": "// Copyright 2010 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport \"bytes\"\n\n// HTMLEscape appends to dst the JSON-encoded src with <, >, &, U+2028 and U+2029\n// characters inside string literals changed to \\u003c, \\u003e, \\u0026, \\u2028, \\u2029\n// so that the JSON will be safe to embed inside HTML <script> tags.\n// For historical reasons, web browsers don't honor standard HTML\n// escaping within <script> tags, so an alternative JSON encoding must be used.\nfunc HTMLEscape(dst *bytes.Buffer, src []byte) {\n\tdst.Grow(len(src))\n\tdst.Write(appendHTMLEscape(dst.AvailableBuffer(), src))\n}\n\nfunc appendHTMLEscape(dst, src []byte) []byte {\n\t// The characters can only appear in string literals,\n\t// so just scan the string one byte at a time.\n\tstart := 0\n\tfor i, c := range src {\n\t\tif c == '<' || c == '>' || c == '&' {\n\t\t\tdst = append(dst, src[start:i]...)\n\t\t\tdst = append(dst, '\\\\', 'u', '0', '0', hex[c>>4], hex[c&0xF])\n\t\t\tstart = i + 1\n\t\t}\n\t\t// Convert U+2028 and U+2029 (E2 80 A8 and E2 80 A9).\n\t\tif c == 0xE2 && i+2 < len(src) && src[i+1] == 0x80 && src[i+2]&^1 == 0xA8 {\n\t\t\tdst = append(dst, src[start:i]...)\n\t\t\tdst = append(dst, '\\\\', 'u', '2', '0', '2', hex[src[i+2]&0xF])\n\t\t\tstart = i + len(\"\\u2029\")\n\t\t}\n\t}\n\treturn append(dst, src[start:]...)\n}\n\n// Compact appends to dst the JSON-encoded src with\n// insignificant space characters elided.\nfunc Compact(dst *bytes.Buffer, src []byte) error {\n\tdst.Grow(len(src))\n\tb := dst.AvailableBuffer()\n\tb, err := appendCompact(b, src, false)\n\tdst.Write(b)\n\treturn err\n}\n\nfunc appendCompact(dst, src []byte, escape bool) ([]byte, error) {\n\torigLen := len(dst)\n\tscan := newScanner()\n\tdefer freeScanner(scan)\n\tstart := 0\n\tfor i, c := range src {\n\t\tif escape && (c == '<' || c == '>' || c == '&') {\n\t\t\tif start < i {\n\t\t\t\tdst = append(dst, src[start:i]...)\n\t\t\t}\n\t\t\tdst = append(dst, '\\\\', 'u', '0', '0', hex[c>>4], hex[c&0xF])\n\t\t\tstart = i + 1\n\t\t}\n\t\t// Convert U+2028 and U+2029 (E2 80 A8 and E2 80 A9).\n\t\tif escape && c == 0xE2 && i+2 < len(src) && src[i+1] == 0x80 && src[i+2]&^1 == 0xA8 {\n\t\t\tif start < i {\n\t\t\t\tdst = append(dst, src[start:i]...)\n\t\t\t}\n\t\t\tdst = append(dst, '\\\\', 'u', '2', '0', '2', hex[src[i+2]&0xF])\n\t\t\tstart = i + 3\n\t\t}\n\t\tv := scan.step(scan, c)\n\t\tif v >= scanSkipSpace {\n\t\t\tif v == scanError {\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif start < i {\n\t\t\t\tdst = append(dst, src[start:i]...)\n\t\t\t}\n\t\t\tstart = i + 1\n\t\t}\n\t}\n\tif scan.eof() == scanError {\n\t\treturn dst[:origLen], scan.err\n\t}\n\tif start < len(src) {\n\t\tdst = append(dst, src[start:]...)\n\t}\n\treturn dst, nil\n}\n\nfunc appendNewline(dst []byte, prefix, indent string, depth int) []byte {\n\tdst = append(dst, '\\n')\n\tdst = append(dst, prefix...)\n\tfor i := 0; i < depth; i++ {\n\t\tdst = append(dst, indent...)\n\t}\n\treturn dst\n}\n\n// indentGrowthFactor specifies the growth factor of indenting JSON input.\n// Empirically, the growth factor was measured to be between 1.4x to 1.8x\n// for some set of compacted JSON with the indent being a single tab.\n// Specify a growth factor slightly larger than what is observed\n// to reduce probability of allocation in appendIndent.\n// A factor no higher than 2 ensures that wasted space never exceeds 50%.\nconst indentGrowthFactor = 2\n\n// Indent appends to dst an indented form of the JSON-encoded src.\n// Each element in a JSON object or array begins on a new,\n// indented line beginning with prefix followed by one or more\n// copies of indent according to the indentation nesting.\n// The data appended to dst does not begin with the prefix nor\n// any indentation, to make it easier to embed inside other formatted JSON data.\n// Although leading space characters (space, tab, carriage return, newline)\n// at the beginning of src are dropped, trailing space characters\n// at the end of src are preserved and copied to dst.\n// For example, if src has no trailing spaces, neither will dst;\n// if src ends in a trailing newline, so will dst.\nfunc Indent(dst *bytes.Buffer, src []byte, prefix, indent string) error {\n\tdst.Grow(indentGrowthFactor * len(src))\n\tb := dst.AvailableBuffer()\n\tb, err := appendIndent(b, src, prefix, indent)\n\tdst.Write(b)\n\treturn err\n}\n\nfunc appendIndent(dst, src []byte, prefix, indent string) ([]byte, error) {\n\torigLen := len(dst)\n\tscan := newScanner()\n\tdefer freeScanner(scan)\n\tneedIndent := false\n\tdepth := 0\n\tfor _, c := range src {\n\t\tscan.bytes++\n\t\tv := scan.step(scan, c)\n\t\tif v == scanSkipSpace {\n\t\t\tcontinue\n\t\t}\n\t\tif v == scanError {\n\t\t\tbreak\n\t\t}\n\t\tif needIndent && v != scanEndObject && v != scanEndArray {\n\t\t\tneedIndent = false\n\t\t\tdepth++\n\t\t\tdst = appendNewline(dst, prefix, indent, depth)\n\t\t}\n\n\t\t// Emit semantically uninteresting bytes\n\t\t// (in particular, punctuation in strings) unmodified.\n\t\tif v == scanContinue {\n\t\t\tdst = append(dst, c)\n\t\t\tcontinue\n\t\t}\n\n\t\t// Add spacing around real punctuation.\n\t\tswitch c {\n\t\tcase '{', '[':\n\t\t\t// delay indent so that empty object and array are formatted as {} and [].\n\t\t\tneedIndent = true\n\t\t\tdst = append(dst, c)\n\t\tcase ',':\n\t\t\tdst = append(dst, c)\n\t\t\tdst = appendNewline(dst, prefix, indent, depth)\n\t\tcase ':':\n\t\t\tdst = append(dst, c, ' ')\n\t\tcase '}', ']':\n\t\t\tif needIndent {\n\t\t\t\t// suppress indent in empty object/array\n\t\t\t\tneedIndent = false\n\t\t\t} else {\n\t\t\t\tdepth--\n\t\t\t\tdst = appendNewline(dst, prefix, indent, depth)\n\t\t\t}\n\t\t\tdst = append(dst, c)\n\t\tdefault:\n\t\t\tdst = append(dst, c)\n\t\t}\n\t}\n\tif scan.eof() == scanError {\n\t\treturn dst[:origLen], scan.err\n\t}\n\treturn dst, nil\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/json/internal/golang/encoding/json/kubernetes_patch.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage json\n\nimport (\n\tgojson \"encoding/json\"\n\t\"strconv\"\n\t\"strings\"\n)\n\n// Type-alias error and data types returned from decoding\n\ntype UnmarshalTypeError = gojson.UnmarshalTypeError\ntype UnmarshalFieldError = gojson.UnmarshalFieldError\ntype InvalidUnmarshalError = gojson.InvalidUnmarshalError\ntype Number = gojson.Number\ntype RawMessage = gojson.RawMessage\ntype Token = gojson.Token\ntype Delim = gojson.Delim\n\ntype UnmarshalOpt func(*decodeState)\n\nfunc UseNumber(d *decodeState) {\n\td.useNumber = true\n}\nfunc DisallowUnknownFields(d *decodeState) {\n\td.disallowUnknownFields = true\n}\n\n// CaseSensitive requires json keys to exactly match specified json tags (for tagged struct fields)\n// or struct field names (for untagged struct fields), or be treated as an unknown field.\nfunc CaseSensitive(d *decodeState) {\n\td.caseSensitive = true\n}\nfunc (d *Decoder) CaseSensitive() {\n\td.d.caseSensitive = true\n}\n\n// PreserveInts decodes numbers as int64 when decoding to untyped fields,\n// if the JSON data does not contain a \".\" character, parses as an integer successfully,\n// and does not overflow int64. Otherwise, it falls back to default float64 decoding behavior.\n//\n// If UseNumber is also set, it takes precedence over PreserveInts.\nfunc PreserveInts(d *decodeState) {\n\td.preserveInts = true\n}\nfunc (d *Decoder) PreserveInts() {\n\td.d.preserveInts = true\n}\n\n// DisallowDuplicateFields treats duplicate fields encountered while decoding as an error.\nfunc DisallowDuplicateFields(d *decodeState) {\n\td.disallowDuplicateFields = true\n}\nfunc (d *Decoder) DisallowDuplicateFields() {\n\td.d.disallowDuplicateFields = true\n}\n\nfunc (d *decodeState) newFieldError(errType strictErrType, field string) *strictError {\n\tif len(d.strictFieldStack) > 0 {\n\t\treturn &strictError{\n\t\t\tErrType: errType,\n\t\t\tPath:    strings.Join(d.strictFieldStack, \"\") + \".\" + field,\n\t\t}\n\t} else {\n\t\treturn &strictError{\n\t\t\tErrType: errType,\n\t\t\tPath:    field,\n\t\t}\n\t}\n}\n\n// saveStrictError saves a strict decoding error,\n// for reporting at the end of the unmarshal if no other errors occurred.\nfunc (d *decodeState) saveStrictError(err *strictError) {\n\t// prevent excessive numbers of accumulated errors\n\tif len(d.savedStrictErrors) >= 100 {\n\t\treturn\n\t}\n\t// dedupe accumulated strict errors\n\tif d.seenStrictErrors == nil {\n\t\td.seenStrictErrors = map[strictError]struct{}{}\n\t}\n\tif _, seen := d.seenStrictErrors[*err]; seen {\n\t\treturn\n\t}\n\n\t// accumulate the error\n\td.seenStrictErrors[*err] = struct{}{}\n\td.savedStrictErrors = append(d.savedStrictErrors, err)\n}\n\nfunc (d *decodeState) appendStrictFieldStackKey(key string) {\n\tif !d.disallowDuplicateFields && !d.disallowUnknownFields {\n\t\treturn\n\t}\n\tif len(d.strictFieldStack) > 0 {\n\t\td.strictFieldStack = append(d.strictFieldStack, \".\", key)\n\t} else {\n\t\td.strictFieldStack = append(d.strictFieldStack, key)\n\t}\n}\n\nfunc (d *decodeState) appendStrictFieldStackIndex(i int) {\n\tif !d.disallowDuplicateFields && !d.disallowUnknownFields {\n\t\treturn\n\t}\n\td.strictFieldStack = append(d.strictFieldStack, \"[\", strconv.Itoa(i), \"]\")\n}\n\ntype strictErrType string\n\nconst (\n\tunknownStrictErrType   strictErrType = \"unknown field\"\n\tduplicateStrictErrType strictErrType = \"duplicate field\"\n)\n\n// strictError is a strict decoding error\n// It has an ErrType (either unknown or duplicate)\n// and a path to the erroneous field\ntype strictError struct {\n\tErrType strictErrType\n\tPath    string\n}\n\nfunc (e *strictError) Error() string {\n\treturn string(e.ErrType) + \" \" + strconv.Quote(e.Path)\n}\n\nfunc (e *strictError) FieldPath() string {\n\treturn e.Path\n}\n\nfunc (e *strictError) SetFieldPath(path string) {\n\te.Path = path\n}\n\n// UnmarshalStrictError holds errors resulting from use of strict disallow___ decoder directives.\n// If this is returned from Unmarshal(), it means the decoding was successful in all other respects.\ntype UnmarshalStrictError struct {\n\tErrors []error\n}\n\nfunc (e *UnmarshalStrictError) Error() string {\n\tvar b strings.Builder\n\tb.WriteString(\"json: \")\n\tfor i, err := range e.Errors {\n\t\tif i > 0 {\n\t\t\tb.WriteString(\", \")\n\t\t}\n\t\tb.WriteString(err.Error())\n\t}\n\treturn b.String()\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/json/internal/golang/encoding/json/scanner.go",
    "content": "// Copyright 2010 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\n// JSON value parser state machine.\n// Just about at the limit of what is reasonable to write by hand.\n// Some parts are a bit tedious, but overall it nicely factors out the\n// otherwise common code from the multiple scanning functions\n// in this package (Compact, Indent, checkValid, etc).\n//\n// This file starts with two simple examples using the scanner\n// before diving into the scanner itself.\n\nimport (\n\t\"strconv\"\n\t\"sync\"\n)\n\n// Valid reports whether data is a valid JSON encoding.\nfunc Valid(data []byte) bool {\n\tscan := newScanner()\n\tdefer freeScanner(scan)\n\treturn checkValid(data, scan) == nil\n}\n\n// checkValid verifies that data is valid JSON-encoded data.\n// scan is passed in for use by checkValid to avoid an allocation.\n// checkValid returns nil or a SyntaxError.\nfunc checkValid(data []byte, scan *scanner) error {\n\tscan.reset()\n\tfor _, c := range data {\n\t\tscan.bytes++\n\t\tif scan.step(scan, c) == scanError {\n\t\t\treturn scan.err\n\t\t}\n\t}\n\tif scan.eof() == scanError {\n\t\treturn scan.err\n\t}\n\treturn nil\n}\n\n// A SyntaxError is a description of a JSON syntax error.\n// [Unmarshal] will return a SyntaxError if the JSON can't be parsed.\ntype SyntaxError struct {\n\tmsg    string // description of error\n\tOffset int64  // error occurred after reading Offset bytes\n}\n\nfunc (e *SyntaxError) Error() string { return e.msg }\n\n// A scanner is a JSON scanning state machine.\n// Callers call scan.reset and then pass bytes in one at a time\n// by calling scan.step(&scan, c) for each byte.\n// The return value, referred to as an opcode, tells the\n// caller about significant parsing events like beginning\n// and ending literals, objects, and arrays, so that the\n// caller can follow along if it wishes.\n// The return value scanEnd indicates that a single top-level\n// JSON value has been completed, *before* the byte that\n// just got passed in.  (The indication must be delayed in order\n// to recognize the end of numbers: is 123 a whole value or\n// the beginning of 12345e+6?).\ntype scanner struct {\n\t// The step is a func to be called to execute the next transition.\n\t// Also tried using an integer constant and a single func\n\t// with a switch, but using the func directly was 10% faster\n\t// on a 64-bit Mac Mini, and it's nicer to read.\n\tstep func(*scanner, byte) int\n\n\t// Reached end of top-level value.\n\tendTop bool\n\n\t// Stack of what we're in the middle of - array values, object keys, object values.\n\tparseState []int\n\n\t// Error that happened, if any.\n\terr error\n\n\t// total bytes consumed, updated by decoder.Decode (and deliberately\n\t// not set to zero by scan.reset)\n\tbytes int64\n}\n\nvar scannerPool = sync.Pool{\n\tNew: func() any {\n\t\treturn &scanner{}\n\t},\n}\n\nfunc newScanner() *scanner {\n\tscan := scannerPool.Get().(*scanner)\n\t// scan.reset by design doesn't set bytes to zero\n\tscan.bytes = 0\n\tscan.reset()\n\treturn scan\n}\n\nfunc freeScanner(scan *scanner) {\n\t// Avoid hanging on to too much memory in extreme cases.\n\tif len(scan.parseState) > 1024 {\n\t\tscan.parseState = nil\n\t}\n\tscannerPool.Put(scan)\n}\n\n// These values are returned by the state transition functions\n// assigned to scanner.state and the method scanner.eof.\n// They give details about the current state of the scan that\n// callers might be interested to know about.\n// It is okay to ignore the return value of any particular\n// call to scanner.state: if one call returns scanError,\n// every subsequent call will return scanError too.\nconst (\n\t// Continue.\n\tscanContinue     = iota // uninteresting byte\n\tscanBeginLiteral        // end implied by next result != scanContinue\n\tscanBeginObject         // begin object\n\tscanObjectKey           // just finished object key (string)\n\tscanObjectValue         // just finished non-last object value\n\tscanEndObject           // end object (implies scanObjectValue if possible)\n\tscanBeginArray          // begin array\n\tscanArrayValue          // just finished array value\n\tscanEndArray            // end array (implies scanArrayValue if possible)\n\tscanSkipSpace           // space byte; can skip; known to be last \"continue\" result\n\n\t// Stop.\n\tscanEnd   // top-level value ended *before* this byte; known to be first \"stop\" result\n\tscanError // hit an error, scanner.err.\n)\n\n// These values are stored in the parseState stack.\n// They give the current state of a composite value\n// being scanned. If the parser is inside a nested value\n// the parseState describes the nested state, outermost at entry 0.\nconst (\n\tparseObjectKey   = iota // parsing object key (before colon)\n\tparseObjectValue        // parsing object value (after colon)\n\tparseArrayValue         // parsing array value\n)\n\n// This limits the max nesting depth to prevent stack overflow.\n// This is permitted by https://tools.ietf.org/html/rfc7159#section-9\nconst maxNestingDepth = 10000\n\n// reset prepares the scanner for use.\n// It must be called before calling s.step.\nfunc (s *scanner) reset() {\n\ts.step = stateBeginValue\n\ts.parseState = s.parseState[0:0]\n\ts.err = nil\n\ts.endTop = false\n}\n\n// eof tells the scanner that the end of input has been reached.\n// It returns a scan status just as s.step does.\nfunc (s *scanner) eof() int {\n\tif s.err != nil {\n\t\treturn scanError\n\t}\n\tif s.endTop {\n\t\treturn scanEnd\n\t}\n\ts.step(s, ' ')\n\tif s.endTop {\n\t\treturn scanEnd\n\t}\n\tif s.err == nil {\n\t\ts.err = &SyntaxError{\"unexpected end of JSON input\", s.bytes}\n\t}\n\treturn scanError\n}\n\n// pushParseState pushes a new parse state p onto the parse stack.\n// an error state is returned if maxNestingDepth was exceeded, otherwise successState is returned.\nfunc (s *scanner) pushParseState(c byte, newParseState int, successState int) int {\n\ts.parseState = append(s.parseState, newParseState)\n\tif len(s.parseState) <= maxNestingDepth {\n\t\treturn successState\n\t}\n\treturn s.error(c, \"exceeded max depth\")\n}\n\n// popParseState pops a parse state (already obtained) off the stack\n// and updates s.step accordingly.\nfunc (s *scanner) popParseState() {\n\tn := len(s.parseState) - 1\n\ts.parseState = s.parseState[0:n]\n\tif n == 0 {\n\t\ts.step = stateEndTop\n\t\ts.endTop = true\n\t} else {\n\t\ts.step = stateEndValue\n\t}\n}\n\nfunc isSpace(c byte) bool {\n\treturn c <= ' ' && (c == ' ' || c == '\\t' || c == '\\r' || c == '\\n')\n}\n\n// stateBeginValueOrEmpty is the state after reading `[`.\nfunc stateBeginValueOrEmpty(s *scanner, c byte) int {\n\tif isSpace(c) {\n\t\treturn scanSkipSpace\n\t}\n\tif c == ']' {\n\t\treturn stateEndValue(s, c)\n\t}\n\treturn stateBeginValue(s, c)\n}\n\n// stateBeginValue is the state at the beginning of the input.\nfunc stateBeginValue(s *scanner, c byte) int {\n\tif isSpace(c) {\n\t\treturn scanSkipSpace\n\t}\n\tswitch c {\n\tcase '{':\n\t\ts.step = stateBeginStringOrEmpty\n\t\treturn s.pushParseState(c, parseObjectKey, scanBeginObject)\n\tcase '[':\n\t\ts.step = stateBeginValueOrEmpty\n\t\treturn s.pushParseState(c, parseArrayValue, scanBeginArray)\n\tcase '\"':\n\t\ts.step = stateInString\n\t\treturn scanBeginLiteral\n\tcase '-':\n\t\ts.step = stateNeg\n\t\treturn scanBeginLiteral\n\tcase '0': // beginning of 0.123\n\t\ts.step = state0\n\t\treturn scanBeginLiteral\n\tcase 't': // beginning of true\n\t\ts.step = stateT\n\t\treturn scanBeginLiteral\n\tcase 'f': // beginning of false\n\t\ts.step = stateF\n\t\treturn scanBeginLiteral\n\tcase 'n': // beginning of null\n\t\ts.step = stateN\n\t\treturn scanBeginLiteral\n\t}\n\tif '1' <= c && c <= '9' { // beginning of 1234.5\n\t\ts.step = state1\n\t\treturn scanBeginLiteral\n\t}\n\treturn s.error(c, \"looking for beginning of value\")\n}\n\n// stateBeginStringOrEmpty is the state after reading `{`.\nfunc stateBeginStringOrEmpty(s *scanner, c byte) int {\n\tif isSpace(c) {\n\t\treturn scanSkipSpace\n\t}\n\tif c == '}' {\n\t\tn := len(s.parseState)\n\t\ts.parseState[n-1] = parseObjectValue\n\t\treturn stateEndValue(s, c)\n\t}\n\treturn stateBeginString(s, c)\n}\n\n// stateBeginString is the state after reading `{\"key\": value,`.\nfunc stateBeginString(s *scanner, c byte) int {\n\tif isSpace(c) {\n\t\treturn scanSkipSpace\n\t}\n\tif c == '\"' {\n\t\ts.step = stateInString\n\t\treturn scanBeginLiteral\n\t}\n\treturn s.error(c, \"looking for beginning of object key string\")\n}\n\n// stateEndValue is the state after completing a value,\n// such as after reading `{}` or `true` or `[\"x\"`.\nfunc stateEndValue(s *scanner, c byte) int {\n\tn := len(s.parseState)\n\tif n == 0 {\n\t\t// Completed top-level before the current byte.\n\t\ts.step = stateEndTop\n\t\ts.endTop = true\n\t\treturn stateEndTop(s, c)\n\t}\n\tif isSpace(c) {\n\t\ts.step = stateEndValue\n\t\treturn scanSkipSpace\n\t}\n\tps := s.parseState[n-1]\n\tswitch ps {\n\tcase parseObjectKey:\n\t\tif c == ':' {\n\t\t\ts.parseState[n-1] = parseObjectValue\n\t\t\ts.step = stateBeginValue\n\t\t\treturn scanObjectKey\n\t\t}\n\t\treturn s.error(c, \"after object key\")\n\tcase parseObjectValue:\n\t\tif c == ',' {\n\t\t\ts.parseState[n-1] = parseObjectKey\n\t\t\ts.step = stateBeginString\n\t\t\treturn scanObjectValue\n\t\t}\n\t\tif c == '}' {\n\t\t\ts.popParseState()\n\t\t\treturn scanEndObject\n\t\t}\n\t\treturn s.error(c, \"after object key:value pair\")\n\tcase parseArrayValue:\n\t\tif c == ',' {\n\t\t\ts.step = stateBeginValue\n\t\t\treturn scanArrayValue\n\t\t}\n\t\tif c == ']' {\n\t\t\ts.popParseState()\n\t\t\treturn scanEndArray\n\t\t}\n\t\treturn s.error(c, \"after array element\")\n\t}\n\treturn s.error(c, \"\")\n}\n\n// stateEndTop is the state after finishing the top-level value,\n// such as after reading `{}` or `[1,2,3]`.\n// Only space characters should be seen now.\nfunc stateEndTop(s *scanner, c byte) int {\n\tif !isSpace(c) {\n\t\t// Complain about non-space byte on next call.\n\t\ts.error(c, \"after top-level value\")\n\t}\n\treturn scanEnd\n}\n\n// stateInString is the state after reading `\"`.\nfunc stateInString(s *scanner, c byte) int {\n\tif c == '\"' {\n\t\ts.step = stateEndValue\n\t\treturn scanContinue\n\t}\n\tif c == '\\\\' {\n\t\ts.step = stateInStringEsc\n\t\treturn scanContinue\n\t}\n\tif c < 0x20 {\n\t\treturn s.error(c, \"in string literal\")\n\t}\n\treturn scanContinue\n}\n\n// stateInStringEsc is the state after reading `\"\\` during a quoted string.\nfunc stateInStringEsc(s *scanner, c byte) int {\n\tswitch c {\n\tcase 'b', 'f', 'n', 'r', 't', '\\\\', '/', '\"':\n\t\ts.step = stateInString\n\t\treturn scanContinue\n\tcase 'u':\n\t\ts.step = stateInStringEscU\n\t\treturn scanContinue\n\t}\n\treturn s.error(c, \"in string escape code\")\n}\n\n// stateInStringEscU is the state after reading `\"\\u` during a quoted string.\nfunc stateInStringEscU(s *scanner, c byte) int {\n\tif '0' <= c && c <= '9' || 'a' <= c && c <= 'f' || 'A' <= c && c <= 'F' {\n\t\ts.step = stateInStringEscU1\n\t\treturn scanContinue\n\t}\n\t// numbers\n\treturn s.error(c, \"in \\\\u hexadecimal character escape\")\n}\n\n// stateInStringEscU1 is the state after reading `\"\\u1` during a quoted string.\nfunc stateInStringEscU1(s *scanner, c byte) int {\n\tif '0' <= c && c <= '9' || 'a' <= c && c <= 'f' || 'A' <= c && c <= 'F' {\n\t\ts.step = stateInStringEscU12\n\t\treturn scanContinue\n\t}\n\t// numbers\n\treturn s.error(c, \"in \\\\u hexadecimal character escape\")\n}\n\n// stateInStringEscU12 is the state after reading `\"\\u12` during a quoted string.\nfunc stateInStringEscU12(s *scanner, c byte) int {\n\tif '0' <= c && c <= '9' || 'a' <= c && c <= 'f' || 'A' <= c && c <= 'F' {\n\t\ts.step = stateInStringEscU123\n\t\treturn scanContinue\n\t}\n\t// numbers\n\treturn s.error(c, \"in \\\\u hexadecimal character escape\")\n}\n\n// stateInStringEscU123 is the state after reading `\"\\u123` during a quoted string.\nfunc stateInStringEscU123(s *scanner, c byte) int {\n\tif '0' <= c && c <= '9' || 'a' <= c && c <= 'f' || 'A' <= c && c <= 'F' {\n\t\ts.step = stateInString\n\t\treturn scanContinue\n\t}\n\t// numbers\n\treturn s.error(c, \"in \\\\u hexadecimal character escape\")\n}\n\n// stateNeg is the state after reading `-` during a number.\nfunc stateNeg(s *scanner, c byte) int {\n\tif c == '0' {\n\t\ts.step = state0\n\t\treturn scanContinue\n\t}\n\tif '1' <= c && c <= '9' {\n\t\ts.step = state1\n\t\treturn scanContinue\n\t}\n\treturn s.error(c, \"in numeric literal\")\n}\n\n// state1 is the state after reading a non-zero integer during a number,\n// such as after reading `1` or `100` but not `0`.\nfunc state1(s *scanner, c byte) int {\n\tif '0' <= c && c <= '9' {\n\t\ts.step = state1\n\t\treturn scanContinue\n\t}\n\treturn state0(s, c)\n}\n\n// state0 is the state after reading `0` during a number.\nfunc state0(s *scanner, c byte) int {\n\tif c == '.' {\n\t\ts.step = stateDot\n\t\treturn scanContinue\n\t}\n\tif c == 'e' || c == 'E' {\n\t\ts.step = stateE\n\t\treturn scanContinue\n\t}\n\treturn stateEndValue(s, c)\n}\n\n// stateDot is the state after reading the integer and decimal point in a number,\n// such as after reading `1.`.\nfunc stateDot(s *scanner, c byte) int {\n\tif '0' <= c && c <= '9' {\n\t\ts.step = stateDot0\n\t\treturn scanContinue\n\t}\n\treturn s.error(c, \"after decimal point in numeric literal\")\n}\n\n// stateDot0 is the state after reading the integer, decimal point, and subsequent\n// digits of a number, such as after reading `3.14`.\nfunc stateDot0(s *scanner, c byte) int {\n\tif '0' <= c && c <= '9' {\n\t\treturn scanContinue\n\t}\n\tif c == 'e' || c == 'E' {\n\t\ts.step = stateE\n\t\treturn scanContinue\n\t}\n\treturn stateEndValue(s, c)\n}\n\n// stateE is the state after reading the mantissa and e in a number,\n// such as after reading `314e` or `0.314e`.\nfunc stateE(s *scanner, c byte) int {\n\tif c == '+' || c == '-' {\n\t\ts.step = stateESign\n\t\treturn scanContinue\n\t}\n\treturn stateESign(s, c)\n}\n\n// stateESign is the state after reading the mantissa, e, and sign in a number,\n// such as after reading `314e-` or `0.314e+`.\nfunc stateESign(s *scanner, c byte) int {\n\tif '0' <= c && c <= '9' {\n\t\ts.step = stateE0\n\t\treturn scanContinue\n\t}\n\treturn s.error(c, \"in exponent of numeric literal\")\n}\n\n// stateE0 is the state after reading the mantissa, e, optional sign,\n// and at least one digit of the exponent in a number,\n// such as after reading `314e-2` or `0.314e+1` or `3.14e0`.\nfunc stateE0(s *scanner, c byte) int {\n\tif '0' <= c && c <= '9' {\n\t\treturn scanContinue\n\t}\n\treturn stateEndValue(s, c)\n}\n\n// stateT is the state after reading `t`.\nfunc stateT(s *scanner, c byte) int {\n\tif c == 'r' {\n\t\ts.step = stateTr\n\t\treturn scanContinue\n\t}\n\treturn s.error(c, \"in literal true (expecting 'r')\")\n}\n\n// stateTr is the state after reading `tr`.\nfunc stateTr(s *scanner, c byte) int {\n\tif c == 'u' {\n\t\ts.step = stateTru\n\t\treturn scanContinue\n\t}\n\treturn s.error(c, \"in literal true (expecting 'u')\")\n}\n\n// stateTru is the state after reading `tru`.\nfunc stateTru(s *scanner, c byte) int {\n\tif c == 'e' {\n\t\ts.step = stateEndValue\n\t\treturn scanContinue\n\t}\n\treturn s.error(c, \"in literal true (expecting 'e')\")\n}\n\n// stateF is the state after reading `f`.\nfunc stateF(s *scanner, c byte) int {\n\tif c == 'a' {\n\t\ts.step = stateFa\n\t\treturn scanContinue\n\t}\n\treturn s.error(c, \"in literal false (expecting 'a')\")\n}\n\n// stateFa is the state after reading `fa`.\nfunc stateFa(s *scanner, c byte) int {\n\tif c == 'l' {\n\t\ts.step = stateFal\n\t\treturn scanContinue\n\t}\n\treturn s.error(c, \"in literal false (expecting 'l')\")\n}\n\n// stateFal is the state after reading `fal`.\nfunc stateFal(s *scanner, c byte) int {\n\tif c == 's' {\n\t\ts.step = stateFals\n\t\treturn scanContinue\n\t}\n\treturn s.error(c, \"in literal false (expecting 's')\")\n}\n\n// stateFals is the state after reading `fals`.\nfunc stateFals(s *scanner, c byte) int {\n\tif c == 'e' {\n\t\ts.step = stateEndValue\n\t\treturn scanContinue\n\t}\n\treturn s.error(c, \"in literal false (expecting 'e')\")\n}\n\n// stateN is the state after reading `n`.\nfunc stateN(s *scanner, c byte) int {\n\tif c == 'u' {\n\t\ts.step = stateNu\n\t\treturn scanContinue\n\t}\n\treturn s.error(c, \"in literal null (expecting 'u')\")\n}\n\n// stateNu is the state after reading `nu`.\nfunc stateNu(s *scanner, c byte) int {\n\tif c == 'l' {\n\t\ts.step = stateNul\n\t\treturn scanContinue\n\t}\n\treturn s.error(c, \"in literal null (expecting 'l')\")\n}\n\n// stateNul is the state after reading `nul`.\nfunc stateNul(s *scanner, c byte) int {\n\tif c == 'l' {\n\t\ts.step = stateEndValue\n\t\treturn scanContinue\n\t}\n\treturn s.error(c, \"in literal null (expecting 'l')\")\n}\n\n// stateError is the state after reaching a syntax error,\n// such as after reading `[1}` or `5.1.2`.\nfunc stateError(s *scanner, c byte) int {\n\treturn scanError\n}\n\n// error records an error and switches to the error state.\nfunc (s *scanner) error(c byte, context string) int {\n\ts.step = stateError\n\ts.err = &SyntaxError{\"invalid character \" + quoteChar(c) + \" \" + context, s.bytes}\n\treturn scanError\n}\n\n// quoteChar formats c as a quoted character literal.\nfunc quoteChar(c byte) string {\n\t// special cases - different from quoted strings\n\tif c == '\\'' {\n\t\treturn `'\\''`\n\t}\n\tif c == '\"' {\n\t\treturn `'\"'`\n\t}\n\n\t// use quoted string with different quotation marks\n\ts := strconv.Quote(string(c))\n\treturn \"'\" + s[1:len(s)-1] + \"'\"\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/json/internal/golang/encoding/json/stream.go",
    "content": "// Copyright 2010 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"bytes\"\n\t\"io\"\n)\n\n// A Decoder reads and decodes JSON values from an input stream.\ntype Decoder struct {\n\tr       io.Reader\n\tbuf     []byte\n\td       decodeState\n\tscanp   int   // start of unread data in buf\n\tscanned int64 // amount of data already scanned\n\tscan    scanner\n\terr     error\n\n\ttokenState int\n\ttokenStack []int\n}\n\n// NewDecoder returns a new decoder that reads from r.\n//\n// The decoder introduces its own buffering and may\n// read data from r beyond the JSON values requested.\nfunc NewDecoder(r io.Reader) *Decoder {\n\treturn &Decoder{r: r}\n}\n\n// UseNumber causes the Decoder to unmarshal a number into an interface{} as a\n// [Number] instead of as a float64.\nfunc (dec *Decoder) UseNumber() { dec.d.useNumber = true }\n\n// DisallowUnknownFields causes the Decoder to return an error when the destination\n// is a struct and the input contains object keys which do not match any\n// non-ignored, exported fields in the destination.\nfunc (dec *Decoder) DisallowUnknownFields() { dec.d.disallowUnknownFields = true }\n\n// Decode reads the next JSON-encoded value from its\n// input and stores it in the value pointed to by v.\n//\n// See the documentation for [Unmarshal] for details about\n// the conversion of JSON into a Go value.\nfunc (dec *Decoder) Decode(v any) error {\n\tif dec.err != nil {\n\t\treturn dec.err\n\t}\n\n\tif err := dec.tokenPrepareForDecode(); err != nil {\n\t\treturn err\n\t}\n\n\tif !dec.tokenValueAllowed() {\n\t\treturn &SyntaxError{msg: \"not at beginning of value\", Offset: dec.InputOffset()}\n\t}\n\n\t// Read whole value into buffer.\n\tn, err := dec.readValue()\n\tif err != nil {\n\t\treturn err\n\t}\n\tdec.d.init(dec.buf[dec.scanp : dec.scanp+n])\n\tdec.scanp += n\n\n\t// Don't save err from unmarshal into dec.err:\n\t// the connection is still usable since we read a complete JSON\n\t// object from it before the error happened.\n\terr = dec.d.unmarshal(v)\n\n\t// fixup token streaming state\n\tdec.tokenValueEnd()\n\n\treturn err\n}\n\n// Buffered returns a reader of the data remaining in the Decoder's\n// buffer. The reader is valid until the next call to [Decoder.Decode].\nfunc (dec *Decoder) Buffered() io.Reader {\n\treturn bytes.NewReader(dec.buf[dec.scanp:])\n}\n\n// readValue reads a JSON value into dec.buf.\n// It returns the length of the encoding.\nfunc (dec *Decoder) readValue() (int, error) {\n\tdec.scan.reset()\n\n\tscanp := dec.scanp\n\tvar err error\nInput:\n\t// help the compiler see that scanp is never negative, so it can remove\n\t// some bounds checks below.\n\tfor scanp >= 0 {\n\n\t\t// Look in the buffer for a new value.\n\t\tfor ; scanp < len(dec.buf); scanp++ {\n\t\t\tc := dec.buf[scanp]\n\t\t\tdec.scan.bytes++\n\t\t\tswitch dec.scan.step(&dec.scan, c) {\n\t\t\tcase scanEnd:\n\t\t\t\t// scanEnd is delayed one byte so we decrement\n\t\t\t\t// the scanner bytes count by 1 to ensure that\n\t\t\t\t// this value is correct in the next call of Decode.\n\t\t\t\tdec.scan.bytes--\n\t\t\t\tbreak Input\n\t\t\tcase scanEndObject, scanEndArray:\n\t\t\t\t// scanEnd is delayed one byte.\n\t\t\t\t// We might block trying to get that byte from src,\n\t\t\t\t// so instead invent a space byte.\n\t\t\t\tif stateEndValue(&dec.scan, ' ') == scanEnd {\n\t\t\t\t\tscanp++\n\t\t\t\t\tbreak Input\n\t\t\t\t}\n\t\t\tcase scanError:\n\t\t\t\tdec.err = dec.scan.err\n\t\t\t\treturn 0, dec.scan.err\n\t\t\t}\n\t\t}\n\n\t\t// Did the last read have an error?\n\t\t// Delayed until now to allow buffer scan.\n\t\tif err != nil {\n\t\t\tif err == io.EOF {\n\t\t\t\tif dec.scan.step(&dec.scan, ' ') == scanEnd {\n\t\t\t\t\tbreak Input\n\t\t\t\t}\n\t\t\t\tif nonSpace(dec.buf) {\n\t\t\t\t\terr = io.ErrUnexpectedEOF\n\t\t\t\t}\n\t\t\t}\n\t\t\tdec.err = err\n\t\t\treturn 0, err\n\t\t}\n\n\t\tn := scanp - dec.scanp\n\t\terr = dec.refill()\n\t\tscanp = dec.scanp + n\n\t}\n\treturn scanp - dec.scanp, nil\n}\n\nfunc (dec *Decoder) refill() error {\n\t// Make room to read more into the buffer.\n\t// First slide down data already consumed.\n\tif dec.scanp > 0 {\n\t\tdec.scanned += int64(dec.scanp)\n\t\tn := copy(dec.buf, dec.buf[dec.scanp:])\n\t\tdec.buf = dec.buf[:n]\n\t\tdec.scanp = 0\n\t}\n\n\t// Grow buffer if not large enough.\n\tconst minRead = 512\n\tif cap(dec.buf)-len(dec.buf) < minRead {\n\t\tnewBuf := make([]byte, len(dec.buf), 2*cap(dec.buf)+minRead)\n\t\tcopy(newBuf, dec.buf)\n\t\tdec.buf = newBuf\n\t}\n\n\t// Read. Delay error for next iteration (after scan).\n\tn, err := dec.r.Read(dec.buf[len(dec.buf):cap(dec.buf)])\n\tdec.buf = dec.buf[0 : len(dec.buf)+n]\n\n\treturn err\n}\n\nfunc nonSpace(b []byte) bool {\n\tfor _, c := range b {\n\t\tif !isSpace(c) {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n\n// An Encoder writes JSON values to an output stream.\ntype Encoder struct {\n\tw          io.Writer\n\terr        error\n\tescapeHTML bool\n\n\tindentBuf    []byte\n\tindentPrefix string\n\tindentValue  string\n}\n\n// NewEncoder returns a new encoder that writes to w.\nfunc NewEncoder(w io.Writer) *Encoder {\n\treturn &Encoder{w: w, escapeHTML: true}\n}\n\n// Encode writes the JSON encoding of v to the stream,\n// with insignificant space characters elided,\n// followed by a newline character.\n//\n// See the documentation for [Marshal] for details about the\n// conversion of Go values to JSON.\nfunc (enc *Encoder) Encode(v any) error {\n\tif enc.err != nil {\n\t\treturn enc.err\n\t}\n\n\te := newEncodeState()\n\tdefer encodeStatePool.Put(e)\n\n\terr := e.marshal(v, encOpts{escapeHTML: enc.escapeHTML})\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// Terminate each value with a newline.\n\t// This makes the output look a little nicer\n\t// when debugging, and some kind of space\n\t// is required if the encoded value was a number,\n\t// so that the reader knows there aren't more\n\t// digits coming.\n\te.WriteByte('\\n')\n\n\tb := e.Bytes()\n\tif enc.indentPrefix != \"\" || enc.indentValue != \"\" {\n\t\tenc.indentBuf, err = appendIndent(enc.indentBuf[:0], b, enc.indentPrefix, enc.indentValue)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tb = enc.indentBuf\n\t}\n\tif _, err = enc.w.Write(b); err != nil {\n\t\tenc.err = err\n\t}\n\treturn err\n}\n\n// SetIndent instructs the encoder to format each subsequent encoded\n// value as if indented by the package-level function Indent(dst, src, prefix, indent).\n// Calling SetIndent(\"\", \"\") disables indentation.\nfunc (enc *Encoder) SetIndent(prefix, indent string) {\n\tenc.indentPrefix = prefix\n\tenc.indentValue = indent\n}\n\n// SetEscapeHTML specifies whether problematic HTML characters\n// should be escaped inside JSON quoted strings.\n// The default behavior is to escape &, <, and > to \\u0026, \\u003c, and \\u003e\n// to avoid certain safety problems that can arise when embedding JSON in HTML.\n//\n// In non-HTML settings where the escaping interferes with the readability\n// of the output, SetEscapeHTML(false) disables this behavior.\nfunc (enc *Encoder) SetEscapeHTML(on bool) {\n\tenc.escapeHTML = on\n}\n\n/*\n// RawMessage is a raw encoded JSON value.\n// It implements [Marshaler] and [Unmarshaler] and can\n// be used to delay JSON decoding or precompute a JSON encoding.\ntype RawMessage []byte\n\n// MarshalJSON returns m as the JSON encoding of m.\nfunc (m RawMessage) MarshalJSON() ([]byte, error) {\n\tif m == nil {\n\t\treturn []byte(\"null\"), nil\n\t}\n\treturn m, nil\n}\n\n// UnmarshalJSON sets *m to a copy of data.\nfunc (m *RawMessage) UnmarshalJSON(data []byte) error {\n\tif m == nil {\n\t\treturn errors.New(\"json.RawMessage: UnmarshalJSON on nil pointer\")\n\t}\n\t*m = append((*m)[0:0], data...)\n\treturn nil\n}\n*/\n\nvar _ Marshaler = (*RawMessage)(nil)\nvar _ Unmarshaler = (*RawMessage)(nil)\n\n/*\n// A Token holds a value of one of these types:\n//\n//   - [Delim], for the four JSON delimiters [ ] { }\n//   - bool, for JSON booleans\n//   - float64, for JSON numbers\n//   - [Number], for JSON numbers\n//   - string, for JSON string literals\n//   - nil, for JSON null\ntype Token any\n*/\n\nconst (\n\ttokenTopValue = iota\n\ttokenArrayStart\n\ttokenArrayValue\n\ttokenArrayComma\n\ttokenObjectStart\n\ttokenObjectKey\n\ttokenObjectColon\n\ttokenObjectValue\n\ttokenObjectComma\n)\n\n// advance tokenstate from a separator state to a value state\nfunc (dec *Decoder) tokenPrepareForDecode() error {\n\t// Note: Not calling peek before switch, to avoid\n\t// putting peek into the standard Decode path.\n\t// peek is only called when using the Token API.\n\tswitch dec.tokenState {\n\tcase tokenArrayComma:\n\t\tc, err := dec.peek()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif c != ',' {\n\t\t\treturn &SyntaxError{\"expected comma after array element\", dec.InputOffset()}\n\t\t}\n\t\tdec.scanp++\n\t\tdec.tokenState = tokenArrayValue\n\tcase tokenObjectColon:\n\t\tc, err := dec.peek()\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif c != ':' {\n\t\t\treturn &SyntaxError{\"expected colon after object key\", dec.InputOffset()}\n\t\t}\n\t\tdec.scanp++\n\t\tdec.tokenState = tokenObjectValue\n\t}\n\treturn nil\n}\n\nfunc (dec *Decoder) tokenValueAllowed() bool {\n\tswitch dec.tokenState {\n\tcase tokenTopValue, tokenArrayStart, tokenArrayValue, tokenObjectValue:\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (dec *Decoder) tokenValueEnd() {\n\tswitch dec.tokenState {\n\tcase tokenArrayStart, tokenArrayValue:\n\t\tdec.tokenState = tokenArrayComma\n\tcase tokenObjectValue:\n\t\tdec.tokenState = tokenObjectComma\n\t}\n}\n\n/*\n// A Delim is a JSON array or object delimiter, one of [ ] { or }.\ntype Delim rune\n\nfunc (d Delim) String() string {\n\treturn string(d)\n}\n*/\n\n// Token returns the next JSON token in the input stream.\n// At the end of the input stream, Token returns nil, [io.EOF].\n//\n// Token guarantees that the delimiters [ ] { } it returns are\n// properly nested and matched: if Token encounters an unexpected\n// delimiter in the input, it will return an error.\n//\n// The input stream consists of basic JSON values—bool, string,\n// number, and null—along with delimiters [ ] { } of type [Delim]\n// to mark the start and end of arrays and objects.\n// Commas and colons are elided.\nfunc (dec *Decoder) Token() (Token, error) {\n\tfor {\n\t\tc, err := dec.peek()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tswitch c {\n\t\tcase '[':\n\t\t\tif !dec.tokenValueAllowed() {\n\t\t\t\treturn dec.tokenError(c)\n\t\t\t}\n\t\t\tdec.scanp++\n\t\t\tdec.tokenStack = append(dec.tokenStack, dec.tokenState)\n\t\t\tdec.tokenState = tokenArrayStart\n\t\t\treturn Delim('['), nil\n\n\t\tcase ']':\n\t\t\tif dec.tokenState != tokenArrayStart && dec.tokenState != tokenArrayComma {\n\t\t\t\treturn dec.tokenError(c)\n\t\t\t}\n\t\t\tdec.scanp++\n\t\t\tdec.tokenState = dec.tokenStack[len(dec.tokenStack)-1]\n\t\t\tdec.tokenStack = dec.tokenStack[:len(dec.tokenStack)-1]\n\t\t\tdec.tokenValueEnd()\n\t\t\treturn Delim(']'), nil\n\n\t\tcase '{':\n\t\t\tif !dec.tokenValueAllowed() {\n\t\t\t\treturn dec.tokenError(c)\n\t\t\t}\n\t\t\tdec.scanp++\n\t\t\tdec.tokenStack = append(dec.tokenStack, dec.tokenState)\n\t\t\tdec.tokenState = tokenObjectStart\n\t\t\treturn Delim('{'), nil\n\n\t\tcase '}':\n\t\t\tif dec.tokenState != tokenObjectStart && dec.tokenState != tokenObjectComma {\n\t\t\t\treturn dec.tokenError(c)\n\t\t\t}\n\t\t\tdec.scanp++\n\t\t\tdec.tokenState = dec.tokenStack[len(dec.tokenStack)-1]\n\t\t\tdec.tokenStack = dec.tokenStack[:len(dec.tokenStack)-1]\n\t\t\tdec.tokenValueEnd()\n\t\t\treturn Delim('}'), nil\n\n\t\tcase ':':\n\t\t\tif dec.tokenState != tokenObjectColon {\n\t\t\t\treturn dec.tokenError(c)\n\t\t\t}\n\t\t\tdec.scanp++\n\t\t\tdec.tokenState = tokenObjectValue\n\t\t\tcontinue\n\n\t\tcase ',':\n\t\t\tif dec.tokenState == tokenArrayComma {\n\t\t\t\tdec.scanp++\n\t\t\t\tdec.tokenState = tokenArrayValue\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif dec.tokenState == tokenObjectComma {\n\t\t\t\tdec.scanp++\n\t\t\t\tdec.tokenState = tokenObjectKey\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\treturn dec.tokenError(c)\n\n\t\tcase '\"':\n\t\t\tif dec.tokenState == tokenObjectStart || dec.tokenState == tokenObjectKey {\n\t\t\t\tvar x string\n\t\t\t\told := dec.tokenState\n\t\t\t\tdec.tokenState = tokenTopValue\n\t\t\t\terr := dec.Decode(&x)\n\t\t\t\tdec.tokenState = old\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tdec.tokenState = tokenObjectColon\n\t\t\t\treturn x, nil\n\t\t\t}\n\t\t\tfallthrough\n\n\t\tdefault:\n\t\t\tif !dec.tokenValueAllowed() {\n\t\t\t\treturn dec.tokenError(c)\n\t\t\t}\n\t\t\tvar x any\n\t\t\tif err := dec.Decode(&x); err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\treturn x, nil\n\t\t}\n\t}\n}\n\nfunc (dec *Decoder) tokenError(c byte) (Token, error) {\n\tvar context string\n\tswitch dec.tokenState {\n\tcase tokenTopValue:\n\t\tcontext = \" looking for beginning of value\"\n\tcase tokenArrayStart, tokenArrayValue, tokenObjectValue:\n\t\tcontext = \" looking for beginning of value\"\n\tcase tokenArrayComma:\n\t\tcontext = \" after array element\"\n\tcase tokenObjectKey:\n\t\tcontext = \" looking for beginning of object key string\"\n\tcase tokenObjectColon:\n\t\tcontext = \" after object key\"\n\tcase tokenObjectComma:\n\t\tcontext = \" after object key:value pair\"\n\t}\n\treturn nil, &SyntaxError{\"invalid character \" + quoteChar(c) + context, dec.InputOffset()}\n}\n\n// More reports whether there is another element in the\n// current array or object being parsed.\nfunc (dec *Decoder) More() bool {\n\tc, err := dec.peek()\n\treturn err == nil && c != ']' && c != '}'\n}\n\nfunc (dec *Decoder) peek() (byte, error) {\n\tvar err error\n\tfor {\n\t\tfor i := dec.scanp; i < len(dec.buf); i++ {\n\t\t\tc := dec.buf[i]\n\t\t\tif isSpace(c) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tdec.scanp = i\n\t\t\treturn c, nil\n\t\t}\n\t\t// buffer has been scanned, now report any error\n\t\tif err != nil {\n\t\t\treturn 0, err\n\t\t}\n\t\terr = dec.refill()\n\t}\n}\n\n// InputOffset returns the input stream byte offset of the current decoder position.\n// The offset gives the location of the end of the most recently returned token\n// and the beginning of the next token.\nfunc (dec *Decoder) InputOffset() int64 {\n\treturn dec.scanned + int64(dec.scanp)\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/json/internal/golang/encoding/json/tables.go",
    "content": "// Copyright 2016 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport \"unicode/utf8\"\n\n// safeSet holds the value true if the ASCII character with the given array\n// position can be represented inside a JSON string without any further\n// escaping.\n//\n// All values are true except for the ASCII control characters (0-31), the\n// double quote (\"), and the backslash character (\"\\\").\nvar safeSet = [utf8.RuneSelf]bool{\n\t' ':      true,\n\t'!':      true,\n\t'\"':      false,\n\t'#':      true,\n\t'$':      true,\n\t'%':      true,\n\t'&':      true,\n\t'\\'':     true,\n\t'(':      true,\n\t')':      true,\n\t'*':      true,\n\t'+':      true,\n\t',':      true,\n\t'-':      true,\n\t'.':      true,\n\t'/':      true,\n\t'0':      true,\n\t'1':      true,\n\t'2':      true,\n\t'3':      true,\n\t'4':      true,\n\t'5':      true,\n\t'6':      true,\n\t'7':      true,\n\t'8':      true,\n\t'9':      true,\n\t':':      true,\n\t';':      true,\n\t'<':      true,\n\t'=':      true,\n\t'>':      true,\n\t'?':      true,\n\t'@':      true,\n\t'A':      true,\n\t'B':      true,\n\t'C':      true,\n\t'D':      true,\n\t'E':      true,\n\t'F':      true,\n\t'G':      true,\n\t'H':      true,\n\t'I':      true,\n\t'J':      true,\n\t'K':      true,\n\t'L':      true,\n\t'M':      true,\n\t'N':      true,\n\t'O':      true,\n\t'P':      true,\n\t'Q':      true,\n\t'R':      true,\n\t'S':      true,\n\t'T':      true,\n\t'U':      true,\n\t'V':      true,\n\t'W':      true,\n\t'X':      true,\n\t'Y':      true,\n\t'Z':      true,\n\t'[':      true,\n\t'\\\\':     false,\n\t']':      true,\n\t'^':      true,\n\t'_':      true,\n\t'`':      true,\n\t'a':      true,\n\t'b':      true,\n\t'c':      true,\n\t'd':      true,\n\t'e':      true,\n\t'f':      true,\n\t'g':      true,\n\t'h':      true,\n\t'i':      true,\n\t'j':      true,\n\t'k':      true,\n\t'l':      true,\n\t'm':      true,\n\t'n':      true,\n\t'o':      true,\n\t'p':      true,\n\t'q':      true,\n\t'r':      true,\n\t's':      true,\n\t't':      true,\n\t'u':      true,\n\t'v':      true,\n\t'w':      true,\n\t'x':      true,\n\t'y':      true,\n\t'z':      true,\n\t'{':      true,\n\t'|':      true,\n\t'}':      true,\n\t'~':      true,\n\t'\\u007f': true,\n}\n\n// htmlSafeSet holds the value true if the ASCII character with the given\n// array position can be safely represented inside a JSON string, embedded\n// inside of HTML <script> tags, without any additional escaping.\n//\n// All values are true except for the ASCII control characters (0-31), the\n// double quote (\"), the backslash character (\"\\\"), HTML opening and closing\n// tags (\"<\" and \">\"), and the ampersand (\"&\").\nvar htmlSafeSet = [utf8.RuneSelf]bool{\n\t' ':      true,\n\t'!':      true,\n\t'\"':      false,\n\t'#':      true,\n\t'$':      true,\n\t'%':      true,\n\t'&':      false,\n\t'\\'':     true,\n\t'(':      true,\n\t')':      true,\n\t'*':      true,\n\t'+':      true,\n\t',':      true,\n\t'-':      true,\n\t'.':      true,\n\t'/':      true,\n\t'0':      true,\n\t'1':      true,\n\t'2':      true,\n\t'3':      true,\n\t'4':      true,\n\t'5':      true,\n\t'6':      true,\n\t'7':      true,\n\t'8':      true,\n\t'9':      true,\n\t':':      true,\n\t';':      true,\n\t'<':      false,\n\t'=':      true,\n\t'>':      false,\n\t'?':      true,\n\t'@':      true,\n\t'A':      true,\n\t'B':      true,\n\t'C':      true,\n\t'D':      true,\n\t'E':      true,\n\t'F':      true,\n\t'G':      true,\n\t'H':      true,\n\t'I':      true,\n\t'J':      true,\n\t'K':      true,\n\t'L':      true,\n\t'M':      true,\n\t'N':      true,\n\t'O':      true,\n\t'P':      true,\n\t'Q':      true,\n\t'R':      true,\n\t'S':      true,\n\t'T':      true,\n\t'U':      true,\n\t'V':      true,\n\t'W':      true,\n\t'X':      true,\n\t'Y':      true,\n\t'Z':      true,\n\t'[':      true,\n\t'\\\\':     false,\n\t']':      true,\n\t'^':      true,\n\t'_':      true,\n\t'`':      true,\n\t'a':      true,\n\t'b':      true,\n\t'c':      true,\n\t'd':      true,\n\t'e':      true,\n\t'f':      true,\n\t'g':      true,\n\t'h':      true,\n\t'i':      true,\n\t'j':      true,\n\t'k':      true,\n\t'l':      true,\n\t'm':      true,\n\t'n':      true,\n\t'o':      true,\n\t'p':      true,\n\t'q':      true,\n\t'r':      true,\n\t's':      true,\n\t't':      true,\n\t'u':      true,\n\t'v':      true,\n\t'w':      true,\n\t'x':      true,\n\t'y':      true,\n\t'z':      true,\n\t'{':      true,\n\t'|':      true,\n\t'}':      true,\n\t'~':      true,\n\t'\\u007f': true,\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/json/internal/golang/encoding/json/tags.go",
    "content": "// Copyright 2011 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage json\n\nimport (\n\t\"strings\"\n)\n\n// tagOptions is the string following a comma in a struct field's \"json\"\n// tag, or the empty string. It does not include the leading comma.\ntype tagOptions string\n\n// parseTag splits a struct field's json tag into its name and\n// comma-separated options.\nfunc parseTag(tag string) (string, tagOptions) {\n\ttag, opt, _ := strings.Cut(tag, \",\")\n\treturn tag, tagOptions(opt)\n}\n\n// Contains reports whether a comma-separated list of options\n// contains a particular substr flag. substr must be surrounded by a\n// string boundary or commas.\nfunc (o tagOptions) Contains(optionName string) bool {\n\tif len(o) == 0 {\n\t\treturn false\n\t}\n\ts := string(o)\n\tfor s != \"\" {\n\t\tvar name string\n\t\tname, s, _ = strings.Cut(s, \",\")\n\t\tif name == optionName {\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/json/json.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage json\n\nimport (\n\tgojson \"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\n\tinternaljson \"sigs.k8s.io/json/internal/golang/encoding/json\"\n)\n\n// Decoder describes the decoding API exposed by `encoding/json#Decoder`\ntype Decoder interface {\n\tDecode(v interface{}) error\n\tBuffered() io.Reader\n\tToken() (gojson.Token, error)\n\tMore() bool\n\tInputOffset() int64\n}\n\n// NewDecoderCaseSensitivePreserveInts returns a decoder that matches the behavior of encoding/json#NewDecoder, with the following changes:\n//   - When unmarshaling into a struct, JSON keys must case-sensitively match `json` tag names (for tagged struct fields)\n//     or struct field names (for untagged struct fields), or they are treated as unknown fields and discarded.\n//   - When unmarshaling a number into an interface value, it is unmarshaled as an int64 if\n//     the JSON data does not contain a \".\" character and parses as an integer successfully and\n//     does not overflow int64. Otherwise, the number is unmarshaled as a float64.\n//   - If a syntax error is returned, it will not be of type encoding/json#SyntaxError,\n//     but will be recognizeable by this package's IsSyntaxError() function.\nfunc NewDecoderCaseSensitivePreserveInts(r io.Reader) Decoder {\n\td := internaljson.NewDecoder(r)\n\td.CaseSensitive()\n\td.PreserveInts()\n\treturn d\n}\n\n// UnmarshalCaseSensitivePreserveInts parses the JSON-encoded data and stores the result in the value pointed to by v.\n//\n// UnmarshalCaseSensitivePreserveInts matches the behavior of encoding/json#Unmarshal, with the following changes:\n//   - When unmarshaling into a struct, JSON keys must case-sensitively match `json` tag names (for tagged struct fields)\n//     or struct field names (for untagged struct fields), or they are treated as unknown fields and discarded.\n//   - When unmarshaling a number into an interface value, it is unmarshaled as an int64 if\n//     the JSON data does not contain a \".\" character and parses as an integer successfully and\n//     does not overflow int64. Otherwise, the number is unmarshaled as a float64.\n//   - If a syntax error is returned, it will not be of type encoding/json#SyntaxError,\n//     but will be recognizeable by this package's IsSyntaxError() function.\nfunc UnmarshalCaseSensitivePreserveInts(data []byte, v interface{}) error {\n\treturn internaljson.Unmarshal(\n\t\tdata,\n\t\tv,\n\t\tinternaljson.CaseSensitive,\n\t\tinternaljson.PreserveInts,\n\t)\n}\n\ntype StrictOption int\n\nconst (\n\t// DisallowDuplicateFields returns strict errors if data contains duplicate fields\n\tDisallowDuplicateFields StrictOption = 1\n\n\t// DisallowUnknownFields returns strict errors if data contains unknown fields when decoding into typed structs\n\tDisallowUnknownFields StrictOption = 2\n)\n\n// UnmarshalStrict parses the JSON-encoded data and stores the result in the value pointed to by v.\n// Unmarshaling is performed identically to UnmarshalCaseSensitivePreserveInts(), returning an error on failure.\n//\n// If parsing succeeds, additional strict checks as selected by `strictOptions` are performed\n// and a list of the strict failures (if any) are returned. If no `strictOptions` are selected,\n// all supported strict checks are performed.\n//\n// Strict errors returned will implement the FieldError interface for the specific erroneous fields.\n//\n// Currently supported strict checks are:\n// - DisallowDuplicateFields: ensure the data contains no duplicate fields\n// - DisallowUnknownFields: ensure the data contains no unknown fields (when decoding into typed structs)\n//\n// Additional strict checks may be added in the future.\n//\n// Note that the strict checks do not change what is stored in v.\n// For example, if duplicate fields are present, they will be parsed and stored in v,\n// and errors about the duplicate fields will be returned in the strict error list.\nfunc UnmarshalStrict(data []byte, v interface{}, strictOptions ...StrictOption) (strictErrors []error, err error) {\n\tif len(strictOptions) == 0 {\n\t\terr = internaljson.Unmarshal(data, v,\n\t\t\t// options matching UnmarshalCaseSensitivePreserveInts\n\t\t\tinternaljson.CaseSensitive,\n\t\t\tinternaljson.PreserveInts,\n\t\t\t// all strict options\n\t\t\tinternaljson.DisallowDuplicateFields,\n\t\t\tinternaljson.DisallowUnknownFields,\n\t\t)\n\t} else {\n\t\topts := make([]internaljson.UnmarshalOpt, 0, 2+len(strictOptions))\n\t\t// options matching UnmarshalCaseSensitivePreserveInts\n\t\topts = append(opts, internaljson.CaseSensitive, internaljson.PreserveInts)\n\t\tfor _, strictOpt := range strictOptions {\n\t\t\tswitch strictOpt {\n\t\t\tcase DisallowDuplicateFields:\n\t\t\t\topts = append(opts, internaljson.DisallowDuplicateFields)\n\t\t\tcase DisallowUnknownFields:\n\t\t\t\topts = append(opts, internaljson.DisallowUnknownFields)\n\t\t\tdefault:\n\t\t\t\treturn nil, fmt.Errorf(\"unknown strict option %d\", strictOpt)\n\t\t\t}\n\t\t}\n\t\terr = internaljson.Unmarshal(data, v, opts...)\n\t}\n\n\tif strictErr, ok := err.(*internaljson.UnmarshalStrictError); ok {\n\t\treturn strictErr.Errors, nil\n\t}\n\treturn nil, err\n}\n\n// SyntaxErrorOffset returns if the specified error is a syntax error produced by encoding/json or this package.\nfunc SyntaxErrorOffset(err error) (isSyntaxError bool, offset int64) {\n\tswitch err := err.(type) {\n\tcase *gojson.SyntaxError:\n\t\treturn true, err.Offset\n\tcase *internaljson.SyntaxError:\n\t\treturn true, err.Offset\n\tdefault:\n\t\treturn false, 0\n\t}\n}\n\n// FieldError is an error that provides access to the path of the erroneous field\ntype FieldError interface {\n\terror\n\t// FieldPath provides the full path of the erroneous field within the json object.\n\tFieldPath() string\n\t// SetFieldPath updates the path of the erroneous field output in the error message.\n\tSetFieldPath(path string)\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/LICENSE",
    "content": "                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/fieldpath/doc.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package fieldpath defines a way for referencing path elements (e.g., an\n// index in an array, or a key in a map). It provides types for arranging these\n// into paths for referencing nested fields, and for grouping those into sets,\n// for referencing multiple nested fields.\npackage fieldpath\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/fieldpath/element.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fieldpath\n\nimport (\n\t\"fmt\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"sigs.k8s.io/structured-merge-diff/v4/value\"\n)\n\n// PathElement describes how to select a child field given a containing object.\ntype PathElement struct {\n\t// Exactly one of the following fields should be non-nil.\n\n\t// FieldName selects a single field from a map (reminder: this is also\n\t// how structs are represented). The containing object must be a map.\n\tFieldName *string\n\n\t// Key selects the list element which has fields matching those given.\n\t// The containing object must be an associative list with map typed\n\t// elements. They are sorted alphabetically.\n\tKey *value.FieldList\n\n\t// Value selects the list element with the given value. The containing\n\t// object must be an associative list with a primitive typed element\n\t// (i.e., a set).\n\tValue *value.Value\n\n\t// Index selects a list element by its index number. The containing\n\t// object must be an atomic list.\n\tIndex *int\n}\n\n// Less provides an order for path elements.\nfunc (e PathElement) Less(rhs PathElement) bool {\n\treturn e.Compare(rhs) < 0\n}\n\n// Compare provides an order for path elements.\nfunc (e PathElement) Compare(rhs PathElement) int {\n\tif e.FieldName != nil {\n\t\tif rhs.FieldName == nil {\n\t\t\treturn -1\n\t\t}\n\t\treturn strings.Compare(*e.FieldName, *rhs.FieldName)\n\t} else if rhs.FieldName != nil {\n\t\treturn 1\n\t}\n\n\tif e.Key != nil {\n\t\tif rhs.Key == nil {\n\t\t\treturn -1\n\t\t}\n\t\treturn e.Key.Compare(*rhs.Key)\n\t} else if rhs.Key != nil {\n\t\treturn 1\n\t}\n\n\tif e.Value != nil {\n\t\tif rhs.Value == nil {\n\t\t\treturn -1\n\t\t}\n\t\treturn value.Compare(*e.Value, *rhs.Value)\n\t} else if rhs.Value != nil {\n\t\treturn 1\n\t}\n\n\tif e.Index != nil {\n\t\tif rhs.Index == nil {\n\t\t\treturn -1\n\t\t}\n\t\tif *e.Index < *rhs.Index {\n\t\t\treturn -1\n\t\t} else if *e.Index == *rhs.Index {\n\t\t\treturn 0\n\t\t}\n\t\treturn 1\n\t} else if rhs.Index != nil {\n\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n// Equals returns true if both path elements are equal.\nfunc (e PathElement) Equals(rhs PathElement) bool {\n\tif e.FieldName != nil {\n\t\tif rhs.FieldName == nil {\n\t\t\treturn false\n\t\t}\n\t\treturn *e.FieldName == *rhs.FieldName\n\t} else if rhs.FieldName != nil {\n\t\treturn false\n\t}\n\tif e.Key != nil {\n\t\tif rhs.Key == nil {\n\t\t\treturn false\n\t\t}\n\t\treturn e.Key.Equals(*rhs.Key)\n\t} else if rhs.Key != nil {\n\t\treturn false\n\t}\n\tif e.Value != nil {\n\t\tif rhs.Value == nil {\n\t\t\treturn false\n\t\t}\n\t\treturn value.Equals(*e.Value, *rhs.Value)\n\t} else if rhs.Value != nil {\n\t\treturn false\n\t}\n\tif e.Index != nil {\n\t\tif rhs.Index == nil {\n\t\t\treturn false\n\t\t}\n\t\treturn *e.Index == *rhs.Index\n\t} else if rhs.Index != nil {\n\t\treturn false\n\t}\n\treturn true\n}\n\n// String presents the path element as a human-readable string.\nfunc (e PathElement) String() string {\n\tswitch {\n\tcase e.FieldName != nil:\n\t\treturn \".\" + *e.FieldName\n\tcase e.Key != nil:\n\t\tstrs := make([]string, len(*e.Key))\n\t\tfor i, k := range *e.Key {\n\t\t\tstrs[i] = fmt.Sprintf(\"%v=%v\", k.Name, value.ToString(k.Value))\n\t\t}\n\t\t// Keys are supposed to be sorted.\n\t\treturn \"[\" + strings.Join(strs, \",\") + \"]\"\n\tcase e.Value != nil:\n\t\treturn fmt.Sprintf(\"[=%v]\", value.ToString(*e.Value))\n\tcase e.Index != nil:\n\t\treturn fmt.Sprintf(\"[%v]\", *e.Index)\n\tdefault:\n\t\treturn \"{{invalid path element}}\"\n\t}\n}\n\n// KeyByFields is a helper function which constructs a key for an associative\n// list type. `nameValues` must have an even number of entries, alternating\n// names (type must be string) with values (type must be value.Value). If these\n// conditions are not met, KeyByFields will panic--it's intended for static\n// construction and shouldn't have user-produced values passed to it.\nfunc KeyByFields(nameValues ...interface{}) *value.FieldList {\n\tif len(nameValues)%2 != 0 {\n\t\tpanic(\"must have a value for every name\")\n\t}\n\tout := value.FieldList{}\n\tfor i := 0; i < len(nameValues)-1; i += 2 {\n\t\tout = append(out, value.Field{Name: nameValues[i].(string), Value: value.NewValueInterface(nameValues[i+1])})\n\t}\n\tout.Sort()\n\treturn &out\n}\n\n// PathElementSet is a set of path elements.\n// TODO: serialize as a list.\ntype PathElementSet struct {\n\tmembers sortedPathElements\n}\n\nfunc MakePathElementSet(size int) PathElementSet {\n\treturn PathElementSet{\n\t\tmembers: make(sortedPathElements, 0, size),\n\t}\n}\n\ntype sortedPathElements []PathElement\n\n// Implement the sort interface; this would permit bulk creation, which would\n// be faster than doing it one at a time via Insert.\nfunc (spe sortedPathElements) Len() int           { return len(spe) }\nfunc (spe sortedPathElements) Less(i, j int) bool { return spe[i].Less(spe[j]) }\nfunc (spe sortedPathElements) Swap(i, j int)      { spe[i], spe[j] = spe[j], spe[i] }\n\n// Insert adds pe to the set.\nfunc (s *PathElementSet) Insert(pe PathElement) {\n\tloc := sort.Search(len(s.members), func(i int) bool {\n\t\treturn !s.members[i].Less(pe)\n\t})\n\tif loc == len(s.members) {\n\t\ts.members = append(s.members, pe)\n\t\treturn\n\t}\n\tif s.members[loc].Equals(pe) {\n\t\treturn\n\t}\n\ts.members = append(s.members, PathElement{})\n\tcopy(s.members[loc+1:], s.members[loc:])\n\ts.members[loc] = pe\n}\n\n// Union returns a set containing elements that appear in either s or s2.\nfunc (s *PathElementSet) Union(s2 *PathElementSet) *PathElementSet {\n\tout := &PathElementSet{}\n\n\ti, j := 0, 0\n\tfor i < len(s.members) && j < len(s2.members) {\n\t\tif s.members[i].Less(s2.members[j]) {\n\t\t\tout.members = append(out.members, s.members[i])\n\t\t\ti++\n\t\t} else {\n\t\t\tout.members = append(out.members, s2.members[j])\n\t\t\tif !s2.members[j].Less(s.members[i]) {\n\t\t\t\ti++\n\t\t\t}\n\t\t\tj++\n\t\t}\n\t}\n\n\tif i < len(s.members) {\n\t\tout.members = append(out.members, s.members[i:]...)\n\t}\n\tif j < len(s2.members) {\n\t\tout.members = append(out.members, s2.members[j:]...)\n\t}\n\treturn out\n}\n\n// Intersection returns a set containing elements which appear in both s and s2.\nfunc (s *PathElementSet) Intersection(s2 *PathElementSet) *PathElementSet {\n\tout := &PathElementSet{}\n\n\ti, j := 0, 0\n\tfor i < len(s.members) && j < len(s2.members) {\n\t\tif s.members[i].Less(s2.members[j]) {\n\t\t\ti++\n\t\t} else {\n\t\t\tif !s2.members[j].Less(s.members[i]) {\n\t\t\t\tout.members = append(out.members, s.members[i])\n\t\t\t\ti++\n\t\t\t}\n\t\t\tj++\n\t\t}\n\t}\n\n\treturn out\n}\n\n// Difference returns a set containing elements which appear in s but not in s2.\nfunc (s *PathElementSet) Difference(s2 *PathElementSet) *PathElementSet {\n\tout := &PathElementSet{}\n\n\ti, j := 0, 0\n\tfor i < len(s.members) && j < len(s2.members) {\n\t\tif s.members[i].Less(s2.members[j]) {\n\t\t\tout.members = append(out.members, s.members[i])\n\t\t\ti++\n\t\t} else {\n\t\t\tif !s2.members[j].Less(s.members[i]) {\n\t\t\t\ti++\n\t\t\t}\n\t\t\tj++\n\t\t}\n\t}\n\tif i < len(s.members) {\n\t\tout.members = append(out.members, s.members[i:]...)\n\t}\n\treturn out\n}\n\n// Size retuns the number of elements in the set.\nfunc (s *PathElementSet) Size() int { return len(s.members) }\n\n// Has returns true if pe is a member of the set.\nfunc (s *PathElementSet) Has(pe PathElement) bool {\n\tloc := sort.Search(len(s.members), func(i int) bool {\n\t\treturn !s.members[i].Less(pe)\n\t})\n\tif loc == len(s.members) {\n\t\treturn false\n\t}\n\tif s.members[loc].Equals(pe) {\n\t\treturn true\n\t}\n\treturn false\n}\n\n// Equals returns true if s and s2 have exactly the same members.\nfunc (s *PathElementSet) Equals(s2 *PathElementSet) bool {\n\tif len(s.members) != len(s2.members) {\n\t\treturn false\n\t}\n\tfor k := range s.members {\n\t\tif !s.members[k].Equals(s2.members[k]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Iterate calls f for each PathElement in the set. The order is deterministic.\nfunc (s *PathElementSet) Iterate(f func(PathElement)) {\n\tfor _, pe := range s.members {\n\t\tf(pe)\n\t}\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/fieldpath/fromvalue.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fieldpath\n\nimport (\n\t\"sigs.k8s.io/structured-merge-diff/v4/value\"\n)\n\n// SetFromValue creates a set containing every leaf field mentioned in v.\nfunc SetFromValue(v value.Value) *Set {\n\ts := NewSet()\n\n\tw := objectWalker{\n\t\tpath:      Path{},\n\t\tvalue:     v,\n\t\tallocator: value.NewFreelistAllocator(),\n\t\tdo:        func(p Path) { s.Insert(p) },\n\t}\n\n\tw.walk()\n\treturn s\n}\n\ntype objectWalker struct {\n\tpath      Path\n\tvalue     value.Value\n\tallocator value.Allocator\n\n\tdo func(Path)\n}\n\nfunc (w *objectWalker) walk() {\n\tswitch {\n\tcase w.value.IsNull():\n\tcase w.value.IsFloat():\n\tcase w.value.IsInt():\n\tcase w.value.IsString():\n\tcase w.value.IsBool():\n\t\t// All leaf fields handled the same way (after the switch\n\t\t// statement).\n\n\t// Descend\n\tcase w.value.IsList():\n\t\t// If the list were atomic, we'd break here, but we don't have\n\t\t// a schema, so we can't tell.\n\t\tl := w.value.AsListUsing(w.allocator)\n\t\tdefer w.allocator.Free(l)\n\t\titer := l.RangeUsing(w.allocator)\n\t\tdefer w.allocator.Free(iter)\n\t\tfor iter.Next() {\n\t\t\ti, value := iter.Item()\n\t\t\tw2 := *w\n\t\t\tw2.path = append(w.path, w.GuessBestListPathElement(i, value))\n\t\t\tw2.value = value\n\t\t\tw2.walk()\n\t\t}\n\t\treturn\n\tcase w.value.IsMap():\n\t\t// If the map/struct were atomic, we'd break here, but we don't\n\t\t// have a schema, so we can't tell.\n\n\t\tm := w.value.AsMapUsing(w.allocator)\n\t\tdefer w.allocator.Free(m)\n\t\tm.IterateUsing(w.allocator, func(k string, val value.Value) bool {\n\t\t\tw2 := *w\n\t\t\tw2.path = append(w.path, PathElement{FieldName: &k})\n\t\t\tw2.value = val\n\t\t\tw2.walk()\n\t\t\treturn true\n\t\t})\n\t\treturn\n\t}\n\n\t// Leaf fields get added to the set.\n\tif len(w.path) > 0 {\n\t\tw.do(w.path)\n\t}\n}\n\n// AssociativeListCandidateFieldNames lists the field names which are\n// considered keys if found in a list element.\nvar AssociativeListCandidateFieldNames = []string{\n\t\"key\",\n\t\"id\",\n\t\"name\",\n}\n\n// GuessBestListPathElement guesses whether item is an associative list\n// element, which should be referenced by key(s), or if it is not and therefore\n// referencing by index is acceptable. Currently this is done by checking\n// whether item has any of the fields listed in\n// AssociativeListCandidateFieldNames which have scalar values.\nfunc (w *objectWalker) GuessBestListPathElement(index int, item value.Value) PathElement {\n\tif !item.IsMap() {\n\t\t// Non map items could be parts of sets or regular \"atomic\"\n\t\t// lists. We won't try to guess whether something should be a\n\t\t// set or not.\n\t\treturn PathElement{Index: &index}\n\t}\n\n\tm := item.AsMapUsing(w.allocator)\n\tdefer w.allocator.Free(m)\n\tvar keys value.FieldList\n\tfor _, name := range AssociativeListCandidateFieldNames {\n\t\tf, ok := m.Get(name)\n\t\tif !ok {\n\t\t\tcontinue\n\t\t}\n\t\t// only accept primitive/scalar types as keys.\n\t\tif f.IsNull() || f.IsMap() || f.IsList() {\n\t\t\tcontinue\n\t\t}\n\t\tkeys = append(keys, value.Field{Name: name, Value: f})\n\t}\n\tif len(keys) > 0 {\n\t\tkeys.Sort()\n\t\treturn PathElement{Key: &keys}\n\t}\n\treturn PathElement{Index: &index}\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/fieldpath/managers.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n    http://www.apache.org/licenses/LICENSE-2.0\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fieldpath\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n)\n\n// APIVersion describes the version of an object or of a fieldset.\ntype APIVersion string\n\ntype VersionedSet interface {\n\tSet() *Set\n\tAPIVersion() APIVersion\n\tApplied() bool\n}\n\n// VersionedSet associates a version to a set.\ntype versionedSet struct {\n\tset        *Set\n\tapiVersion APIVersion\n\tapplied    bool\n}\n\nfunc NewVersionedSet(set *Set, apiVersion APIVersion, applied bool) VersionedSet {\n\treturn versionedSet{\n\t\tset:        set,\n\t\tapiVersion: apiVersion,\n\t\tapplied:    applied,\n\t}\n}\n\nfunc (v versionedSet) Set() *Set {\n\treturn v.set\n}\n\nfunc (v versionedSet) APIVersion() APIVersion {\n\treturn v.apiVersion\n}\n\nfunc (v versionedSet) Applied() bool {\n\treturn v.applied\n}\n\n// ManagedFields is a map from manager to VersionedSet (what they own in\n// what version).\ntype ManagedFields map[string]VersionedSet\n\n// Equals returns true if the two managedfields are the same, false\n// otherwise.\nfunc (lhs ManagedFields) Equals(rhs ManagedFields) bool {\n\tif len(lhs) != len(rhs) {\n\t\treturn false\n\t}\n\n\tfor manager, left := range lhs {\n\t\tright, ok := rhs[manager]\n\t\tif !ok {\n\t\t\treturn false\n\t\t}\n\t\tif left.APIVersion() != right.APIVersion() || left.Applied() != right.Applied() {\n\t\t\treturn false\n\t\t}\n\t\tif !left.Set().Equals(right.Set()) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Copy the list, this is mostly a shallow copy.\nfunc (lhs ManagedFields) Copy() ManagedFields {\n\tcopy := ManagedFields{}\n\tfor manager, set := range lhs {\n\t\tcopy[manager] = set\n\t}\n\treturn copy\n}\n\n// Difference returns a symmetric difference between two Managers. If a\n// given user's entry has version X in lhs and version Y in rhs, then\n// the return value for that user will be from rhs. If the difference for\n// a user is an empty set, that user will not be inserted in the map.\nfunc (lhs ManagedFields) Difference(rhs ManagedFields) ManagedFields {\n\tdiff := ManagedFields{}\n\n\tfor manager, left := range lhs {\n\t\tright, ok := rhs[manager]\n\t\tif !ok {\n\t\t\tif !left.Set().Empty() {\n\t\t\t\tdiff[manager] = left\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\t// If we have sets in both but their version\n\t\t// differs, we don't even diff and keep the\n\t\t// entire thing.\n\t\tif left.APIVersion() != right.APIVersion() {\n\t\t\tdiff[manager] = right\n\t\t\tcontinue\n\t\t}\n\n\t\tnewSet := left.Set().Difference(right.Set()).Union(right.Set().Difference(left.Set()))\n\t\tif !newSet.Empty() {\n\t\t\tdiff[manager] = NewVersionedSet(newSet, right.APIVersion(), false)\n\t\t}\n\t}\n\n\tfor manager, set := range rhs {\n\t\tif _, ok := lhs[manager]; ok {\n\t\t\t// Already done\n\t\t\tcontinue\n\t\t}\n\t\tif !set.Set().Empty() {\n\t\t\tdiff[manager] = set\n\t\t}\n\t}\n\n\treturn diff\n}\n\nfunc (lhs ManagedFields) String() string {\n\ts := strings.Builder{}\n\tfor k, v := range lhs {\n\t\tfmt.Fprintf(&s, \"%s:\\n\", k)\n\t\tfmt.Fprintf(&s, \"- Applied: %v\\n\", v.Applied())\n\t\tfmt.Fprintf(&s, \"- APIVersion: %v\\n\", v.APIVersion())\n\t\tfmt.Fprintf(&s, \"- Set: %v\\n\", v.Set())\n\t}\n\treturn s.String()\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/fieldpath/path.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fieldpath\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\n\t\"sigs.k8s.io/structured-merge-diff/v4/value\"\n)\n\n// Path describes how to select a potentially deeply-nested child field given a\n// containing object.\ntype Path []PathElement\n\nfunc (fp Path) String() string {\n\tstrs := make([]string, len(fp))\n\tfor i := range fp {\n\t\tstrs[i] = fp[i].String()\n\t}\n\treturn strings.Join(strs, \"\")\n}\n\n// Equals returns true if the two paths are equivalent.\nfunc (fp Path) Equals(fp2 Path) bool {\n\tif len(fp) != len(fp2) {\n\t\treturn false\n\t}\n\tfor i := range fp {\n\t\tif !fp[i].Equals(fp2[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Less provides a lexical order for Paths.\nfunc (fp Path) Compare(rhs Path) int {\n\ti := 0\n\tfor {\n\t\tif i >= len(fp) && i >= len(rhs) {\n\t\t\t// Paths are the same length and all items are equal.\n\t\t\treturn 0\n\t\t}\n\t\tif i >= len(fp) {\n\t\t\t// LHS is shorter.\n\t\t\treturn -1\n\t\t}\n\t\tif i >= len(rhs) {\n\t\t\t// RHS is shorter.\n\t\t\treturn 1\n\t\t}\n\t\tif c := fp[i].Compare(rhs[i]); c != 0 {\n\t\t\treturn c\n\t\t}\n\t\t// The items are equal; continue.\n\t\ti++\n\t}\n}\n\nfunc (fp Path) Copy() Path {\n\tnew := make(Path, len(fp))\n\tcopy(new, fp)\n\treturn new\n}\n\n// MakePath constructs a Path. The parts may be PathElements, ints, strings.\nfunc MakePath(parts ...interface{}) (Path, error) {\n\tvar fp Path\n\tfor _, p := range parts {\n\t\tswitch t := p.(type) {\n\t\tcase PathElement:\n\t\t\tfp = append(fp, t)\n\t\tcase int:\n\t\t\t// TODO: Understand schema and object and convert this to the\n\t\t\t// FieldSpecifier below if appropriate.\n\t\t\tfp = append(fp, PathElement{Index: &t})\n\t\tcase string:\n\t\t\tfp = append(fp, PathElement{FieldName: &t})\n\t\tcase *value.FieldList:\n\t\t\tif len(*t) == 0 {\n\t\t\t\treturn nil, fmt.Errorf(\"associative list key type path elements must have at least one key (got zero)\")\n\t\t\t}\n\t\t\tfp = append(fp, PathElement{Key: t})\n\t\tcase value.Value:\n\t\t\t// TODO: understand schema and verify that this is a set type\n\t\t\t// TODO: make a copy of t\n\t\t\tfp = append(fp, PathElement{Value: &t})\n\t\tdefault:\n\t\t\treturn nil, fmt.Errorf(\"unable to make %#v into a path element\", p)\n\t\t}\n\t}\n\treturn fp, nil\n}\n\n// MakePathOrDie panics if parts can't be turned into a path. Good for things\n// that are known at complie time.\nfunc MakePathOrDie(parts ...interface{}) Path {\n\tfp, err := MakePath(parts...)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn fp\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/fieldpath/pathelementmap.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fieldpath\n\nimport (\n\t\"sort\"\n\n\t\"sigs.k8s.io/structured-merge-diff/v4/value\"\n)\n\n// PathElementValueMap is a map from PathElement to value.Value.\n//\n// TODO(apelisse): We have multiple very similar implementation of this\n// for PathElementSet and SetNodeMap, so we could probably share the\n// code.\ntype PathElementValueMap struct {\n\tvalueMap PathElementMap\n}\n\nfunc MakePathElementValueMap(size int) PathElementValueMap {\n\treturn PathElementValueMap{\n\t\tvalueMap: MakePathElementMap(size),\n\t}\n}\n\ntype sortedPathElementValues []pathElementValue\n\n// Implement the sort interface; this would permit bulk creation, which would\n// be faster than doing it one at a time via Insert.\nfunc (spev sortedPathElementValues) Len() int { return len(spev) }\nfunc (spev sortedPathElementValues) Less(i, j int) bool {\n\treturn spev[i].PathElement.Less(spev[j].PathElement)\n}\nfunc (spev sortedPathElementValues) Swap(i, j int) { spev[i], spev[j] = spev[j], spev[i] }\n\n// Insert adds the pathelement and associated value in the map.\n// If insert is called twice with the same PathElement, the value is replaced.\nfunc (s *PathElementValueMap) Insert(pe PathElement, v value.Value) {\n\ts.valueMap.Insert(pe, v)\n}\n\n// Get retrieves the value associated with the given PathElement from the map.\n// (nil, false) is returned if there is no such PathElement.\nfunc (s *PathElementValueMap) Get(pe PathElement) (value.Value, bool) {\n\tv, ok := s.valueMap.Get(pe)\n\tif !ok {\n\t\treturn nil, false\n\t}\n\treturn v.(value.Value), true\n}\n\n// PathElementValueMap is a map from PathElement to interface{}.\ntype PathElementMap struct {\n\tmembers sortedPathElementValues\n}\n\ntype pathElementValue struct {\n\tPathElement PathElement\n\tValue       interface{}\n}\n\nfunc MakePathElementMap(size int) PathElementMap {\n\treturn PathElementMap{\n\t\tmembers: make(sortedPathElementValues, 0, size),\n\t}\n}\n\n// Insert adds the pathelement and associated value in the map.\n// If insert is called twice with the same PathElement, the value is replaced.\nfunc (s *PathElementMap) Insert(pe PathElement, v interface{}) {\n\tloc := sort.Search(len(s.members), func(i int) bool {\n\t\treturn !s.members[i].PathElement.Less(pe)\n\t})\n\tif loc == len(s.members) {\n\t\ts.members = append(s.members, pathElementValue{pe, v})\n\t\treturn\n\t}\n\tif s.members[loc].PathElement.Equals(pe) {\n\t\ts.members[loc].Value = v\n\t\treturn\n\t}\n\ts.members = append(s.members, pathElementValue{})\n\tcopy(s.members[loc+1:], s.members[loc:])\n\ts.members[loc] = pathElementValue{pe, v}\n}\n\n// Get retrieves the value associated with the given PathElement from the map.\n// (nil, false) is returned if there is no such PathElement.\nfunc (s *PathElementMap) Get(pe PathElement) (interface{}, bool) {\n\tloc := sort.Search(len(s.members), func(i int) bool {\n\t\treturn !s.members[i].PathElement.Less(pe)\n\t})\n\tif loc == len(s.members) {\n\t\treturn nil, false\n\t}\n\tif s.members[loc].PathElement.Equals(pe) {\n\t\treturn s.members[loc].Value, true\n\t}\n\treturn nil, false\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/fieldpath/serialize-pe.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fieldpath\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"strconv\"\n\t\"strings\"\n\n\tjsoniter \"github.com/json-iterator/go\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/value\"\n)\n\nvar ErrUnknownPathElementType = errors.New(\"unknown path element type\")\n\nconst (\n\t// Field indicates that the content of this path element is a field's name\n\tpeField = \"f\"\n\n\t// Value indicates that the content of this path element is a field's value\n\tpeValue = \"v\"\n\n\t// Index indicates that the content of this path element is an index in an array\n\tpeIndex = \"i\"\n\n\t// Key indicates that the content of this path element is a key value map\n\tpeKey = \"k\"\n\n\t// Separator separates the type of a path element from the contents\n\tpeSeparator = \":\"\n)\n\nvar (\n\tpeFieldSepBytes = []byte(peField + peSeparator)\n\tpeValueSepBytes = []byte(peValue + peSeparator)\n\tpeIndexSepBytes = []byte(peIndex + peSeparator)\n\tpeKeySepBytes   = []byte(peKey + peSeparator)\n\tpeSepBytes      = []byte(peSeparator)\n)\n\n// DeserializePathElement parses a serialized path element\nfunc DeserializePathElement(s string) (PathElement, error) {\n\tb := []byte(s)\n\tif len(b) < 2 {\n\t\treturn PathElement{}, errors.New(\"key must be 2 characters long:\")\n\t}\n\ttypeSep, b := b[:2], b[2:]\n\tif typeSep[1] != peSepBytes[0] {\n\t\treturn PathElement{}, fmt.Errorf(\"missing colon: %v\", s)\n\t}\n\tswitch typeSep[0] {\n\tcase peFieldSepBytes[0]:\n\t\t// Slice s rather than convert b, to save on\n\t\t// allocations.\n\t\tstr := s[2:]\n\t\treturn PathElement{\n\t\t\tFieldName: &str,\n\t\t}, nil\n\tcase peValueSepBytes[0]:\n\t\titer := readPool.BorrowIterator(b)\n\t\tdefer readPool.ReturnIterator(iter)\n\t\tv, err := value.ReadJSONIter(iter)\n\t\tif err != nil {\n\t\t\treturn PathElement{}, err\n\t\t}\n\t\treturn PathElement{Value: &v}, nil\n\tcase peKeySepBytes[0]:\n\t\titer := readPool.BorrowIterator(b)\n\t\tdefer readPool.ReturnIterator(iter)\n\t\tfields := value.FieldList{}\n\n\t\titer.ReadObjectCB(func(iter *jsoniter.Iterator, key string) bool {\n\t\t\tv, err := value.ReadJSONIter(iter)\n\t\t\tif err != nil {\n\t\t\t\titer.Error = err\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tfields = append(fields, value.Field{Name: key, Value: v})\n\t\t\treturn true\n\t\t})\n\t\tfields.Sort()\n\t\treturn PathElement{Key: &fields}, iter.Error\n\tcase peIndexSepBytes[0]:\n\t\ti, err := strconv.Atoi(s[2:])\n\t\tif err != nil {\n\t\t\treturn PathElement{}, err\n\t\t}\n\t\treturn PathElement{\n\t\t\tIndex: &i,\n\t\t}, nil\n\tdefault:\n\t\treturn PathElement{}, ErrUnknownPathElementType\n\t}\n}\n\nvar (\n\treadPool  = jsoniter.NewIterator(jsoniter.ConfigCompatibleWithStandardLibrary).Pool()\n\twritePool = jsoniter.NewStream(jsoniter.ConfigCompatibleWithStandardLibrary, nil, 1024).Pool()\n)\n\n// SerializePathElement serializes a path element\nfunc SerializePathElement(pe PathElement) (string, error) {\n\tbuf := strings.Builder{}\n\terr := serializePathElementToWriter(&buf, pe)\n\treturn buf.String(), err\n}\n\nfunc serializePathElementToWriter(w io.Writer, pe PathElement) error {\n\tstream := writePool.BorrowStream(w)\n\tdefer writePool.ReturnStream(stream)\n\tswitch {\n\tcase pe.FieldName != nil:\n\t\tif _, err := stream.Write(peFieldSepBytes); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tstream.WriteRaw(*pe.FieldName)\n\tcase pe.Key != nil:\n\t\tif _, err := stream.Write(peKeySepBytes); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tstream.WriteObjectStart()\n\n\t\tfor i, field := range *pe.Key {\n\t\t\tif i > 0 {\n\t\t\t\tstream.WriteMore()\n\t\t\t}\n\t\t\tstream.WriteObjectField(field.Name)\n\t\t\tvalue.WriteJSONStream(field.Value, stream)\n\t\t}\n\t\tstream.WriteObjectEnd()\n\tcase pe.Value != nil:\n\t\tif _, err := stream.Write(peValueSepBytes); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvalue.WriteJSONStream(*pe.Value, stream)\n\tcase pe.Index != nil:\n\t\tif _, err := stream.Write(peIndexSepBytes); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tstream.WriteInt(*pe.Index)\n\tdefault:\n\t\treturn errors.New(\"invalid PathElement\")\n\t}\n\tb := stream.Buffer()\n\terr := stream.Flush()\n\t// Help jsoniter manage its buffers--without this, the next\n\t// use of the stream is likely to require an allocation. Look\n\t// at the jsoniter stream code to understand why. They were probably\n\t// optimizing for folks using the buffer directly.\n\tstream.SetBuffer(b[:0])\n\treturn err\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/fieldpath/serialize.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fieldpath\n\nimport (\n\t\"bytes\"\n\t\"io\"\n\t\"unsafe\"\n\n\tjsoniter \"github.com/json-iterator/go\"\n)\n\nfunc (s *Set) ToJSON() ([]byte, error) {\n\tbuf := bytes.Buffer{}\n\terr := s.ToJSONStream(&buf)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn buf.Bytes(), nil\n}\n\nfunc (s *Set) ToJSONStream(w io.Writer) error {\n\tstream := writePool.BorrowStream(w)\n\tdefer writePool.ReturnStream(stream)\n\n\tvar r reusableBuilder\n\n\tstream.WriteObjectStart()\n\terr := s.emitContentsV1(false, stream, &r)\n\tif err != nil {\n\t\treturn err\n\t}\n\tstream.WriteObjectEnd()\n\treturn stream.Flush()\n}\n\nfunc manageMemory(stream *jsoniter.Stream) error {\n\t// Help jsoniter manage its buffers--without this, it does a bunch of\n\t// alloctaions that are not necessary. They were probably optimizing\n\t// for folks using the buffer directly.\n\tb := stream.Buffer()\n\tif len(b) > 4096 || cap(b)-len(b) < 2048 {\n\t\tif err := stream.Flush(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tstream.SetBuffer(b[:0])\n\t}\n\treturn nil\n}\n\ntype reusableBuilder struct {\n\tbytes.Buffer\n}\n\nfunc (r *reusableBuilder) unsafeString() string {\n\tb := r.Bytes()\n\treturn *(*string)(unsafe.Pointer(&b))\n}\n\nfunc (r *reusableBuilder) reset() *bytes.Buffer {\n\tr.Reset()\n\treturn &r.Buffer\n}\n\nfunc (s *Set) emitContentsV1(includeSelf bool, stream *jsoniter.Stream, r *reusableBuilder) error {\n\tmi, ci := 0, 0\n\tfirst := true\n\tpreWrite := func() {\n\t\tif first {\n\t\t\tfirst = false\n\t\t\treturn\n\t\t}\n\t\tstream.WriteMore()\n\t}\n\n\tif includeSelf && !(len(s.Members.members) == 0 && len(s.Children.members) == 0) {\n\t\tpreWrite()\n\t\tstream.WriteObjectField(\".\")\n\t\tstream.WriteEmptyObject()\n\t}\n\n\tfor mi < len(s.Members.members) && ci < len(s.Children.members) {\n\t\tmpe := s.Members.members[mi]\n\t\tcpe := s.Children.members[ci].pathElement\n\n\t\tif c := mpe.Compare(cpe); c < 0 {\n\t\t\tpreWrite()\n\t\t\tif err := serializePathElementToWriter(r.reset(), mpe); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tstream.WriteObjectField(r.unsafeString())\n\t\t\tstream.WriteEmptyObject()\n\t\t\tmi++\n\t\t} else if c > 0 {\n\t\t\tpreWrite()\n\t\t\tif err := serializePathElementToWriter(r.reset(), cpe); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tstream.WriteObjectField(r.unsafeString())\n\t\t\tstream.WriteObjectStart()\n\t\t\tif err := s.Children.members[ci].set.emitContentsV1(false, stream, r); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tstream.WriteObjectEnd()\n\t\t\tci++\n\t\t} else {\n\t\t\tpreWrite()\n\t\t\tif err := serializePathElementToWriter(r.reset(), cpe); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tstream.WriteObjectField(r.unsafeString())\n\t\t\tstream.WriteObjectStart()\n\t\t\tif err := s.Children.members[ci].set.emitContentsV1(true, stream, r); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tstream.WriteObjectEnd()\n\t\t\tmi++\n\t\t\tci++\n\t\t}\n\t}\n\n\tfor mi < len(s.Members.members) {\n\t\tmpe := s.Members.members[mi]\n\n\t\tpreWrite()\n\t\tif err := serializePathElementToWriter(r.reset(), mpe); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tstream.WriteObjectField(r.unsafeString())\n\t\tstream.WriteEmptyObject()\n\t\tmi++\n\t}\n\n\tfor ci < len(s.Children.members) {\n\t\tcpe := s.Children.members[ci].pathElement\n\n\t\tpreWrite()\n\t\tif err := serializePathElementToWriter(r.reset(), cpe); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tstream.WriteObjectField(r.unsafeString())\n\t\tstream.WriteObjectStart()\n\t\tif err := s.Children.members[ci].set.emitContentsV1(false, stream, r); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tstream.WriteObjectEnd()\n\t\tci++\n\t}\n\n\treturn manageMemory(stream)\n}\n\n// FromJSON clears s and reads a JSON formatted set structure.\nfunc (s *Set) FromJSON(r io.Reader) error {\n\t// The iterator pool is completely useless for memory management, grrr.\n\titer := jsoniter.Parse(jsoniter.ConfigCompatibleWithStandardLibrary, r, 4096)\n\n\tfound, _ := readIterV1(iter)\n\tif found == nil {\n\t\t*s = Set{}\n\t} else {\n\t\t*s = *found\n\t}\n\treturn iter.Error\n}\n\n// returns true if this subtree is also (or only) a member of parent; s is nil\n// if there are no further children.\nfunc readIterV1(iter *jsoniter.Iterator) (children *Set, isMember bool) {\n\titer.ReadMapCB(func(iter *jsoniter.Iterator, key string) bool {\n\t\tif key == \".\" {\n\t\t\tisMember = true\n\t\t\titer.Skip()\n\t\t\treturn true\n\t\t}\n\t\tpe, err := DeserializePathElement(key)\n\t\tif err == ErrUnknownPathElementType {\n\t\t\t// Ignore these-- a future version maybe knows what\n\t\t\t// they are. We drop these completely rather than try\n\t\t\t// to preserve things we don't understand.\n\t\t\titer.Skip()\n\t\t\treturn true\n\t\t} else if err != nil {\n\t\t\titer.ReportError(\"parsing key as path element\", err.Error())\n\t\t\titer.Skip()\n\t\t\treturn true\n\t\t}\n\t\tgrandchildren, childIsMember := readIterV1(iter)\n\t\tif childIsMember {\n\t\t\tif children == nil {\n\t\t\t\tchildren = &Set{}\n\t\t\t}\n\t\t\tm := &children.Members.members\n\t\t\t// Since we expect that most of the time these will have been\n\t\t\t// serialized in the right order, we just verify that and append.\n\t\t\tappendOK := len(*m) == 0 || (*m)[len(*m)-1].Less(pe)\n\t\t\tif appendOK {\n\t\t\t\t*m = append(*m, pe)\n\t\t\t} else {\n\t\t\t\tchildren.Members.Insert(pe)\n\t\t\t}\n\t\t}\n\t\tif grandchildren != nil {\n\t\t\tif children == nil {\n\t\t\t\tchildren = &Set{}\n\t\t\t}\n\t\t\t// Since we expect that most of the time these will have been\n\t\t\t// serialized in the right order, we just verify that and append.\n\t\t\tm := &children.Children.members\n\t\t\tappendOK := len(*m) == 0 || (*m)[len(*m)-1].pathElement.Less(pe)\n\t\t\tif appendOK {\n\t\t\t\t*m = append(*m, setNode{pe, grandchildren})\n\t\t\t} else {\n\t\t\t\t*children.Children.Descend(pe) = *grandchildren\n\t\t\t}\n\t\t}\n\t\treturn true\n\t})\n\tif children == nil {\n\t\tisMember = true\n\t}\n\n\treturn children, isMember\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/fieldpath/set.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage fieldpath\n\nimport (\n\t\"fmt\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/value\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"sigs.k8s.io/structured-merge-diff/v4/schema\"\n)\n\n// Set identifies a set of fields.\ntype Set struct {\n\t// Members lists fields that are part of the set.\n\t// TODO: will be serialized as a list of path elements.\n\tMembers PathElementSet\n\n\t// Children lists child fields which themselves have children that are\n\t// members of the set. Appearance in this list does not imply membership.\n\t// Note: this is a tree, not an arbitrary graph.\n\tChildren SetNodeMap\n}\n\n// NewSet makes a set from a list of paths.\nfunc NewSet(paths ...Path) *Set {\n\ts := &Set{}\n\tfor _, p := range paths {\n\t\ts.Insert(p)\n\t}\n\treturn s\n}\n\n// Insert adds the field identified by `p` to the set. Important: parent fields\n// are NOT added to the set; if that is desired, they must be added separately.\nfunc (s *Set) Insert(p Path) {\n\tif len(p) == 0 {\n\t\t// Zero-length path identifies the entire object; we don't\n\t\t// track top-level ownership.\n\t\treturn\n\t}\n\tfor {\n\t\tif len(p) == 1 {\n\t\t\ts.Members.Insert(p[0])\n\t\t\treturn\n\t\t}\n\t\ts = s.Children.Descend(p[0])\n\t\tp = p[1:]\n\t}\n}\n\n// Union returns a Set containing elements which appear in either s or s2.\nfunc (s *Set) Union(s2 *Set) *Set {\n\treturn &Set{\n\t\tMembers:  *s.Members.Union(&s2.Members),\n\t\tChildren: *s.Children.Union(&s2.Children),\n\t}\n}\n\n// Intersection returns a Set containing leaf elements which appear in both s\n// and s2. Intersection can be constructed from Union and Difference operations\n// (example in the tests) but it's much faster to do it in one pass.\nfunc (s *Set) Intersection(s2 *Set) *Set {\n\treturn &Set{\n\t\tMembers:  *s.Members.Intersection(&s2.Members),\n\t\tChildren: *s.Children.Intersection(&s2.Children),\n\t}\n}\n\n// Difference returns a Set containing elements which:\n// * appear in s\n// * do not appear in s2\n//\n// In other words, for leaf fields, this acts like a regular set difference\n// operation. When non leaf fields are compared with leaf fields (\"parents\"\n// which contain \"children\"), the effect is:\n// * parent - child = parent\n// * child - parent = {empty set}\nfunc (s *Set) Difference(s2 *Set) *Set {\n\treturn &Set{\n\t\tMembers:  *s.Members.Difference(&s2.Members),\n\t\tChildren: *s.Children.Difference(s2),\n\t}\n}\n\n// RecursiveDifference returns a Set containing elements which:\n// * appear in s\n// * do not appear in s2\n//\n// Compared to a regular difference,\n// this removes every field **and its children** from s that is contained in s2.\n//\n// For example, with s containing `a.b.c` and s2 containing `a.b`,\n// a RecursiveDifference will result in `a`, as the entire node `a.b` gets removed.\nfunc (s *Set) RecursiveDifference(s2 *Set) *Set {\n\treturn &Set{\n\t\tMembers:  *s.Members.Difference(&s2.Members),\n\t\tChildren: *s.Children.RecursiveDifference(s2),\n\t}\n}\n\n// EnsureNamedFieldsAreMembers returns a Set that contains all the\n// fields in s, as well as all the named fields that are typically not\n// included. For example, a set made of \"a.b.c\" will end-up also owning\n// \"a\" if it's a named fields but not \"a.b\" if it's a map.\nfunc (s *Set) EnsureNamedFieldsAreMembers(sc *schema.Schema, tr schema.TypeRef) *Set {\n\tmembers := PathElementSet{\n\t\tmembers: make(sortedPathElements, 0, s.Members.Size()+len(s.Children.members)),\n\t}\n\tatom, _ := sc.Resolve(tr)\n\tmembers.members = append(members.members, s.Members.members...)\n\tfor _, node := range s.Children.members {\n\t\t// Only insert named fields.\n\t\tif node.pathElement.FieldName != nil && atom.Map != nil {\n\t\t\tif _, has := atom.Map.FindField(*node.pathElement.FieldName); has {\n\t\t\t\tmembers.Insert(node.pathElement)\n\t\t\t}\n\t\t}\n\t}\n\treturn &Set{\n\t\tMembers:  members,\n\t\tChildren: *s.Children.EnsureNamedFieldsAreMembers(sc, tr),\n\t}\n}\n\n// MakePrefixMatcherOrDie is the same as PrefixMatcher except it panics if parts can't be\n// turned into a SetMatcher.\nfunc MakePrefixMatcherOrDie(parts ...interface{}) *SetMatcher {\n\tresult, err := PrefixMatcher(parts...)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn result\n}\n\n// PrefixMatcher creates a SetMatcher that matches all field paths prefixed by the given list of matcher path parts.\n// The matcher parts may any of:\n//\n//   - PathElementMatcher - for wildcards, `MatchAnyPathElement()` can be used as well.\n//   - PathElement - for any path element\n//   - value.FieldList - for listMap keys\n//   - value.Value - for scalar list elements\n//   - string - For field names\n//   - int - for array indices\nfunc PrefixMatcher(parts ...interface{}) (*SetMatcher, error) {\n\tcurrent := MatchAnySet() // match all field path suffixes\n\tfor i := len(parts) - 1; i >= 0; i-- {\n\t\tpart := parts[i]\n\t\tvar pattern PathElementMatcher\n\t\tswitch t := part.(type) {\n\t\tcase PathElementMatcher:\n\t\t\t// any path matcher, including wildcard\n\t\t\tpattern = t\n\t\tcase PathElement:\n\t\t\t// any path element\n\t\t\tpattern = PathElementMatcher{PathElement: t}\n\t\tcase *value.FieldList:\n\t\t\t// a listMap key\n\t\t\tif len(*t) == 0 {\n\t\t\t\treturn nil, fmt.Errorf(\"associative list key type path elements must have at least one key (got zero)\")\n\t\t\t}\n\t\t\tpattern = PathElementMatcher{PathElement: PathElement{Key: t}}\n\t\tcase value.Value:\n\t\t\t// a scalar or set-type list element\n\t\t\tpattern = PathElementMatcher{PathElement: PathElement{Value: &t}}\n\t\tcase string:\n\t\t\t// a plain field name\n\t\t\tpattern = PathElementMatcher{PathElement: PathElement{FieldName: &t}}\n\t\tcase int:\n\t\t\t// a plain list index\n\t\t\tpattern = PathElementMatcher{PathElement: PathElement{Index: &t}}\n\t\tdefault:\n\t\t\treturn nil, fmt.Errorf(\"unexpected type %T\", t)\n\t\t}\n\t\tcurrent = &SetMatcher{\n\t\t\tmembers: []*SetMemberMatcher{{\n\t\t\t\tPath:  pattern,\n\t\t\t\tChild: current,\n\t\t\t}},\n\t\t}\n\t}\n\treturn current, nil\n}\n\n// MatchAnyPathElement returns a PathElementMatcher that matches any path element.\nfunc MatchAnyPathElement() PathElementMatcher {\n\treturn PathElementMatcher{Wildcard: true}\n}\n\n// MatchAnySet returns a SetMatcher that matches any set.\nfunc MatchAnySet() *SetMatcher {\n\treturn &SetMatcher{wildcard: true}\n}\n\n// NewSetMatcher returns a new SetMatcher.\n// Wildcard members take precedent over non-wildcard members;\n// all non-wildcard members are ignored if there is a wildcard members.\nfunc NewSetMatcher(wildcard bool, members ...*SetMemberMatcher) *SetMatcher {\n\tsort.Sort(sortedMemberMatcher(members))\n\treturn &SetMatcher{wildcard: wildcard, members: members}\n}\n\n// SetMatcher defines a matcher that matches fields in a Set.\n// SetMatcher is structured much like a Set but with wildcard support.\ntype SetMatcher struct {\n\t// wildcard indicates that all members and children are included in the match.\n\t// If set, the members field is ignored.\n\twildcard bool\n\t// members provides patterns to match the members of a Set.\n\t// Wildcard members are sorted before non-wildcards and take precedent over\n\t// non-wildcard members.\n\tmembers sortedMemberMatcher\n}\n\ntype sortedMemberMatcher []*SetMemberMatcher\n\nfunc (s sortedMemberMatcher) Len() int           { return len(s) }\nfunc (s sortedMemberMatcher) Less(i, j int) bool { return s[i].Path.Less(s[j].Path) }\nfunc (s sortedMemberMatcher) Swap(i, j int)      { s[i], s[j] = s[j], s[i] }\nfunc (s sortedMemberMatcher) Find(p PathElementMatcher) (location int, ok bool) {\n\treturn sort.Find(len(s), func(i int) int {\n\t\treturn s[i].Path.Compare(p)\n\t})\n}\n\n// Merge merges s and s2 and returns a SetMatcher that matches all field paths matched by either s or s2.\n// During the merge, members of s and s2 with the same PathElementMatcher merged into a single member\n// with the children of each merged by calling this function recursively.\nfunc (s *SetMatcher) Merge(s2 *SetMatcher) *SetMatcher {\n\tif s.wildcard || s2.wildcard {\n\t\treturn NewSetMatcher(true)\n\t}\n\tmerged := make(sortedMemberMatcher, len(s.members), len(s.members)+len(s2.members))\n\tcopy(merged, s.members)\n\tfor _, m := range s2.members {\n\t\tif i, ok := s.members.Find(m.Path); ok {\n\t\t\t// since merged is a shallow copy, do not modify elements in place\n\t\t\tmerged[i] = &SetMemberMatcher{\n\t\t\t\tPath:  merged[i].Path,\n\t\t\t\tChild: merged[i].Child.Merge(m.Child),\n\t\t\t}\n\t\t} else {\n\t\t\tmerged = append(merged, m)\n\t\t}\n\t}\n\treturn NewSetMatcher(false, merged...) // sort happens here\n}\n\n// SetMemberMatcher defines a matcher that matches the members of a Set.\n// SetMemberMatcher is structured much like the elements of a SetNodeMap, but\n// with wildcard support.\ntype SetMemberMatcher struct {\n\t// Path provides a matcher to match members of a Set.\n\t// If Path is a wildcard, all members of a Set are included in the match.\n\t// Otherwise, if any Path is Equal to a member of a Set, that member is\n\t// included in the match and the children of that member are matched\n\t// against the Child matcher.\n\tPath PathElementMatcher\n\n\t// Child provides a matcher to use for the children of matched members of a Set.\n\tChild *SetMatcher\n}\n\n// PathElementMatcher defined a path matcher for a PathElement.\ntype PathElementMatcher struct {\n\t// Wildcard indicates that all PathElements are matched by this matcher.\n\t// If set, PathElement is ignored.\n\tWildcard bool\n\n\t// PathElement indicates that a PathElement is matched if it is Equal\n\t// to this PathElement.\n\tPathElement\n}\n\nfunc (p PathElementMatcher) Equals(p2 PathElementMatcher) bool {\n\treturn p.Wildcard != p2.Wildcard && p.PathElement.Equals(p2.PathElement)\n}\n\nfunc (p PathElementMatcher) Less(p2 PathElementMatcher) bool {\n\tif p.Wildcard && !p2.Wildcard {\n\t\treturn true\n\t} else if p2.Wildcard {\n\t\treturn false\n\t}\n\treturn p.PathElement.Less(p2.PathElement)\n}\n\nfunc (p PathElementMatcher) Compare(p2 PathElementMatcher) int {\n\tif p.Wildcard && !p2.Wildcard {\n\t\treturn -1\n\t} else if p2.Wildcard {\n\t\treturn 1\n\t}\n\treturn p.PathElement.Compare(p2.PathElement)\n}\n\n// FilterIncludeMatches returns a Set with only the field paths that match.\nfunc (s *Set) FilterIncludeMatches(pattern *SetMatcher) *Set {\n\tif pattern.wildcard {\n\t\treturn s\n\t}\n\n\tmembers := PathElementSet{}\n\tfor _, m := range s.Members.members {\n\t\tfor _, pm := range pattern.members {\n\t\t\tif pm.Path.Wildcard || pm.Path.PathElement.Equals(m) {\n\t\t\t\tmembers.Insert(m)\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\treturn &Set{\n\t\tMembers:  members,\n\t\tChildren: *s.Children.FilterIncludeMatches(pattern),\n\t}\n}\n\n// Size returns the number of members of the set.\nfunc (s *Set) Size() int {\n\treturn s.Members.Size() + s.Children.Size()\n}\n\n// Empty returns true if there are no members of the set. It is a separate\n// function from Size since it's common to check whether size > 0, and\n// potentially much faster to return as soon as a single element is found.\nfunc (s *Set) Empty() bool {\n\tif s.Members.Size() > 0 {\n\t\treturn false\n\t}\n\treturn s.Children.Empty()\n}\n\n// Has returns true if the field referenced by `p` is a member of the set.\nfunc (s *Set) Has(p Path) bool {\n\tif len(p) == 0 {\n\t\t// No one owns \"the entire object\"\n\t\treturn false\n\t}\n\tfor {\n\t\tif len(p) == 1 {\n\t\t\treturn s.Members.Has(p[0])\n\t\t}\n\t\tvar ok bool\n\t\ts, ok = s.Children.Get(p[0])\n\t\tif !ok {\n\t\t\treturn false\n\t\t}\n\t\tp = p[1:]\n\t}\n}\n\n// Equals returns true if s and s2 have exactly the same members.\nfunc (s *Set) Equals(s2 *Set) bool {\n\treturn s.Members.Equals(&s2.Members) && s.Children.Equals(&s2.Children)\n}\n\n// String returns the set one element per line.\nfunc (s *Set) String() string {\n\telements := []string{}\n\ts.Iterate(func(p Path) {\n\t\telements = append(elements, p.String())\n\t})\n\treturn strings.Join(elements, \"\\n\")\n}\n\n// Iterate calls f once for each field that is a member of the set (preorder\n// DFS). The path passed to f will be reused so make a copy if you wish to keep\n// it.\nfunc (s *Set) Iterate(f func(Path)) {\n\ts.iteratePrefix(Path{}, f)\n}\n\nfunc (s *Set) iteratePrefix(prefix Path, f func(Path)) {\n\ts.Members.Iterate(func(pe PathElement) { f(append(prefix, pe)) })\n\ts.Children.iteratePrefix(prefix, f)\n}\n\n// WithPrefix returns the subset of paths which begin with the given prefix,\n// with the prefix not included.\nfunc (s *Set) WithPrefix(pe PathElement) *Set {\n\tsubset, ok := s.Children.Get(pe)\n\tif !ok {\n\t\treturn NewSet()\n\t}\n\treturn subset\n}\n\n// Leaves returns a set containing only the leaf paths\n// of a set.\nfunc (s *Set) Leaves() *Set {\n\tleaves := PathElementSet{}\n\tim := 0\n\tic := 0\n\n\t// any members that are not also children are leaves\nouter:\n\tfor im < len(s.Members.members) {\n\t\tmember := s.Members.members[im]\n\n\t\tfor ic < len(s.Children.members) {\n\t\t\td := member.Compare(s.Children.members[ic].pathElement)\n\t\t\tif d == 0 {\n\t\t\t\tic++\n\t\t\t\tim++\n\t\t\t\tcontinue outer\n\t\t\t} else if d < 0 {\n\t\t\t\tbreak\n\t\t\t} else /* if d > 0 */ {\n\t\t\t\tic++\n\t\t\t}\n\t\t}\n\t\tleaves.members = append(leaves.members, member)\n\t\tim++\n\t}\n\n\treturn &Set{\n\t\tMembers:  leaves,\n\t\tChildren: *s.Children.Leaves(),\n\t}\n}\n\n// setNode is a pair of PathElement / Set, for the purpose of expressing\n// nested set membership.\ntype setNode struct {\n\tpathElement PathElement\n\tset         *Set\n}\n\n// SetNodeMap is a map of PathElement to subset.\ntype SetNodeMap struct {\n\tmembers sortedSetNode\n}\n\ntype sortedSetNode []setNode\n\n// Implement the sort interface; this would permit bulk creation, which would\n// be faster than doing it one at a time via Insert.\nfunc (s sortedSetNode) Len() int           { return len(s) }\nfunc (s sortedSetNode) Less(i, j int) bool { return s[i].pathElement.Less(s[j].pathElement) }\nfunc (s sortedSetNode) Swap(i, j int)      { s[i], s[j] = s[j], s[i] }\n\n// Descend adds pe to the set if necessary, returning the associated subset.\nfunc (s *SetNodeMap) Descend(pe PathElement) *Set {\n\tloc := sort.Search(len(s.members), func(i int) bool {\n\t\treturn !s.members[i].pathElement.Less(pe)\n\t})\n\tif loc == len(s.members) {\n\t\ts.members = append(s.members, setNode{pathElement: pe, set: &Set{}})\n\t\treturn s.members[loc].set\n\t}\n\tif s.members[loc].pathElement.Equals(pe) {\n\t\treturn s.members[loc].set\n\t}\n\ts.members = append(s.members, setNode{})\n\tcopy(s.members[loc+1:], s.members[loc:])\n\ts.members[loc] = setNode{pathElement: pe, set: &Set{}}\n\treturn s.members[loc].set\n}\n\n// Size returns the sum of the number of members of all subsets.\nfunc (s *SetNodeMap) Size() int {\n\tcount := 0\n\tfor _, v := range s.members {\n\t\tcount += v.set.Size()\n\t}\n\treturn count\n}\n\n// Empty returns false if there's at least one member in some child set.\nfunc (s *SetNodeMap) Empty() bool {\n\tfor _, n := range s.members {\n\t\tif !n.set.Empty() {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Get returns (the associated set, true) or (nil, false) if there is none.\nfunc (s *SetNodeMap) Get(pe PathElement) (*Set, bool) {\n\tloc := sort.Search(len(s.members), func(i int) bool {\n\t\treturn !s.members[i].pathElement.Less(pe)\n\t})\n\tif loc == len(s.members) {\n\t\treturn nil, false\n\t}\n\tif s.members[loc].pathElement.Equals(pe) {\n\t\treturn s.members[loc].set, true\n\t}\n\treturn nil, false\n}\n\n// Equals returns true if s and s2 have the same structure (same nested\n// child sets).\nfunc (s *SetNodeMap) Equals(s2 *SetNodeMap) bool {\n\tif len(s.members) != len(s2.members) {\n\t\treturn false\n\t}\n\tfor i := range s.members {\n\t\tif !s.members[i].pathElement.Equals(s2.members[i].pathElement) {\n\t\t\treturn false\n\t\t}\n\t\tif !s.members[i].set.Equals(s2.members[i].set) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Union returns a SetNodeMap with members that appear in either s or s2.\nfunc (s *SetNodeMap) Union(s2 *SetNodeMap) *SetNodeMap {\n\tout := &SetNodeMap{}\n\n\ti, j := 0, 0\n\tfor i < len(s.members) && j < len(s2.members) {\n\t\tif s.members[i].pathElement.Less(s2.members[j].pathElement) {\n\t\t\tout.members = append(out.members, s.members[i])\n\t\t\ti++\n\t\t} else {\n\t\t\tif !s2.members[j].pathElement.Less(s.members[i].pathElement) {\n\t\t\t\tout.members = append(out.members, setNode{pathElement: s.members[i].pathElement, set: s.members[i].set.Union(s2.members[j].set)})\n\t\t\t\ti++\n\t\t\t} else {\n\t\t\t\tout.members = append(out.members, s2.members[j])\n\t\t\t}\n\t\t\tj++\n\t\t}\n\t}\n\n\tif i < len(s.members) {\n\t\tout.members = append(out.members, s.members[i:]...)\n\t}\n\tif j < len(s2.members) {\n\t\tout.members = append(out.members, s2.members[j:]...)\n\t}\n\treturn out\n}\n\n// Intersection returns a SetNodeMap with members that appear in both s and s2.\nfunc (s *SetNodeMap) Intersection(s2 *SetNodeMap) *SetNodeMap {\n\tout := &SetNodeMap{}\n\n\ti, j := 0, 0\n\tfor i < len(s.members) && j < len(s2.members) {\n\t\tif s.members[i].pathElement.Less(s2.members[j].pathElement) {\n\t\t\ti++\n\t\t} else {\n\t\t\tif !s2.members[j].pathElement.Less(s.members[i].pathElement) {\n\t\t\t\tres := s.members[i].set.Intersection(s2.members[j].set)\n\t\t\t\tif !res.Empty() {\n\t\t\t\t\tout.members = append(out.members, setNode{pathElement: s.members[i].pathElement, set: res})\n\t\t\t\t}\n\t\t\t\ti++\n\t\t\t}\n\t\t\tj++\n\t\t}\n\t}\n\treturn out\n}\n\n// Difference returns a SetNodeMap with members that appear in s but not in s2.\nfunc (s *SetNodeMap) Difference(s2 *Set) *SetNodeMap {\n\tout := &SetNodeMap{}\n\n\ti, j := 0, 0\n\tfor i < len(s.members) && j < len(s2.Children.members) {\n\t\tif s.members[i].pathElement.Less(s2.Children.members[j].pathElement) {\n\t\t\tout.members = append(out.members, setNode{pathElement: s.members[i].pathElement, set: s.members[i].set})\n\t\t\ti++\n\t\t} else {\n\t\t\tif !s2.Children.members[j].pathElement.Less(s.members[i].pathElement) {\n\n\t\t\t\tdiff := s.members[i].set.Difference(s2.Children.members[j].set)\n\t\t\t\t// We aren't permitted to add nodes with no elements.\n\t\t\t\tif !diff.Empty() {\n\t\t\t\t\tout.members = append(out.members, setNode{pathElement: s.members[i].pathElement, set: diff})\n\t\t\t\t}\n\n\t\t\t\ti++\n\t\t\t}\n\t\t\tj++\n\t\t}\n\t}\n\n\tif i < len(s.members) {\n\t\tout.members = append(out.members, s.members[i:]...)\n\t}\n\treturn out\n}\n\n// RecursiveDifference returns a SetNodeMap with members that appear in s but not in s2.\n//\n// Compared to a regular difference,\n// this removes every field **and its children** from s that is contained in s2.\n//\n// For example, with s containing `a.b.c` and s2 containing `a.b`,\n// a RecursiveDifference will result in `a`, as the entire node `a.b` gets removed.\nfunc (s *SetNodeMap) RecursiveDifference(s2 *Set) *SetNodeMap {\n\tout := &SetNodeMap{}\n\n\ti, j := 0, 0\n\tfor i < len(s.members) && j < len(s2.Children.members) {\n\t\tif s.members[i].pathElement.Less(s2.Children.members[j].pathElement) {\n\t\t\tif !s2.Members.Has(s.members[i].pathElement) {\n\t\t\t\tout.members = append(out.members, setNode{pathElement: s.members[i].pathElement, set: s.members[i].set})\n\t\t\t}\n\t\t\ti++\n\t\t} else {\n\t\t\tif !s2.Children.members[j].pathElement.Less(s.members[i].pathElement) {\n\t\t\t\tif !s2.Members.Has(s.members[i].pathElement) {\n\t\t\t\t\tdiff := s.members[i].set.RecursiveDifference(s2.Children.members[j].set)\n\t\t\t\t\tif !diff.Empty() {\n\t\t\t\t\t\tout.members = append(out.members, setNode{pathElement: s.members[i].pathElement, set: diff})\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ti++\n\t\t\t}\n\t\t\tj++\n\t\t}\n\t}\n\n\tif i < len(s.members) {\n\t\tfor _, c := range s.members[i:] {\n\t\t\tif !s2.Members.Has(c.pathElement) {\n\t\t\t\tout.members = append(out.members, c)\n\t\t\t}\n\t\t}\n\t}\n\n\treturn out\n}\n\n// EnsureNamedFieldsAreMembers returns a set that contains all the named fields along with the leaves.\nfunc (s *SetNodeMap) EnsureNamedFieldsAreMembers(sc *schema.Schema, tr schema.TypeRef) *SetNodeMap {\n\tout := make(sortedSetNode, 0, s.Size())\n\tatom, _ := sc.Resolve(tr)\n\tfor _, member := range s.members {\n\t\ttr := schema.TypeRef{}\n\t\tif member.pathElement.FieldName != nil && atom.Map != nil {\n\t\t\ttr = atom.Map.ElementType\n\t\t\tif sf, ok := atom.Map.FindField(*member.pathElement.FieldName); ok {\n\t\t\t\ttr = sf.Type\n\t\t\t}\n\t\t} else if member.pathElement.Key != nil && atom.List != nil {\n\t\t\ttr = atom.List.ElementType\n\t\t}\n\t\tout = append(out, setNode{\n\t\t\tpathElement: member.pathElement,\n\t\t\tset:         member.set.EnsureNamedFieldsAreMembers(sc, tr),\n\t\t})\n\t}\n\n\treturn &SetNodeMap{\n\t\tmembers: out,\n\t}\n}\n\n// FilterIncludeMatches returns a SetNodeMap with only the field paths that match the matcher.\nfunc (s *SetNodeMap) FilterIncludeMatches(pattern *SetMatcher) *SetNodeMap {\n\tif pattern.wildcard {\n\t\treturn s\n\t}\n\n\tvar out sortedSetNode\n\tfor _, member := range s.members {\n\t\tfor _, c := range pattern.members {\n\t\t\tif c.Path.Wildcard || c.Path.PathElement.Equals(member.pathElement) {\n\t\t\t\tchildSet := member.set.FilterIncludeMatches(c.Child)\n\t\t\t\tif childSet.Size() > 0 {\n\t\t\t\t\tout = append(out, setNode{\n\t\t\t\t\t\tpathElement: member.pathElement,\n\t\t\t\t\t\tset:         childSet,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\treturn &SetNodeMap{\n\t\tmembers: out,\n\t}\n}\n\n// Iterate calls f for each PathElement in the set.\nfunc (s *SetNodeMap) Iterate(f func(PathElement)) {\n\tfor _, n := range s.members {\n\t\tf(n.pathElement)\n\t}\n}\n\nfunc (s *SetNodeMap) iteratePrefix(prefix Path, f func(Path)) {\n\tfor _, n := range s.members {\n\t\tpe := n.pathElement\n\t\tn.set.iteratePrefix(append(prefix, pe), f)\n\t}\n}\n\n// Leaves returns a SetNodeMap containing\n// only setNodes with leaf PathElements.\nfunc (s *SetNodeMap) Leaves() *SetNodeMap {\n\tout := &SetNodeMap{}\n\tout.members = make(sortedSetNode, len(s.members))\n\tfor i, n := range s.members {\n\t\tout.members[i] = setNode{\n\t\t\tpathElement: n.pathElement,\n\t\t\tset:         n.set.Leaves(),\n\t\t}\n\t}\n\treturn out\n}\n\n// Filter defines an interface for excluding field paths from a set.\n// NewExcludeSetFilter can be used to create a filter that removes\n// specific field paths and all of their children.\n// NewIncludeMatcherFilter can be used to create a filter that removes all fields except\n// the fields that match a field path matcher. PrefixMatcher and MakePrefixMatcherOrDie\n// can be used to define field path patterns.\ntype Filter interface {\n\t// Filter returns a filtered copy of the set.\n\tFilter(*Set) *Set\n}\n\n// NewExcludeSetFilter returns a filter that removes field paths in the exclude set.\nfunc NewExcludeSetFilter(exclude *Set) Filter {\n\treturn excludeFilter{exclude}\n}\n\n// NewExcludeFilterSetMap converts a map of APIVersion to exclude set to a map of APIVersion to exclude filters.\nfunc NewExcludeFilterSetMap(resetFields map[APIVersion]*Set) map[APIVersion]Filter {\n\tresult := make(map[APIVersion]Filter)\n\tfor k, v := range resetFields {\n\t\tresult[k] = excludeFilter{v}\n\t}\n\treturn result\n}\n\ntype excludeFilter struct {\n\texcludeSet *Set\n}\n\nfunc (t excludeFilter) Filter(set *Set) *Set {\n\treturn set.RecursiveDifference(t.excludeSet)\n}\n\n// NewIncludeMatcherFilter returns a filter that only includes field paths that match.\n// If no matchers are provided, the filter includes all field paths.\n// PrefixMatcher and MakePrefixMatcherOrDie can help create basic matcher.\nfunc NewIncludeMatcherFilter(matchers ...*SetMatcher) Filter {\n\tif len(matchers) == 0 {\n\t\treturn includeMatcherFilter{&SetMatcher{wildcard: true}}\n\t}\n\tmatcher := matchers[0]\n\tfor i := 1; i < len(matchers); i++ {\n\t\tmatcher = matcher.Merge(matchers[i])\n\t}\n\n\treturn includeMatcherFilter{matcher}\n}\n\ntype includeMatcherFilter struct {\n\tmatcher *SetMatcher\n}\n\nfunc (pf includeMatcherFilter) Filter(set *Set) *Set {\n\treturn set.FilterIncludeMatches(pf.matcher)\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/merge/conflict.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage merge\n\nimport (\n\t\"fmt\"\n\t\"sort\"\n\t\"strings\"\n\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n)\n\n// Conflict is a conflict on a specific field with the current manager of\n// that field. It does implement the error interface so that it can be\n// used as an error.\ntype Conflict struct {\n\tManager string\n\tPath    fieldpath.Path\n}\n\n// Conflict is an error.\nvar _ error = Conflict{}\n\n// Error formats the conflict as an error.\nfunc (c Conflict) Error() string {\n\treturn fmt.Sprintf(\"conflict with %q: %v\", c.Manager, c.Path)\n}\n\n// Equals returns true if c == c2\nfunc (c Conflict) Equals(c2 Conflict) bool {\n\tif c.Manager != c2.Manager {\n\t\treturn false\n\t}\n\treturn c.Path.Equals(c2.Path)\n}\n\n// Conflicts accumulates multiple conflicts and aggregates them by managers.\ntype Conflicts []Conflict\n\nvar _ error = Conflicts{}\n\n// Error prints the list of conflicts, grouped by sorted managers.\nfunc (conflicts Conflicts) Error() string {\n\tif len(conflicts) == 1 {\n\t\treturn conflicts[0].Error()\n\t}\n\n\tm := map[string][]fieldpath.Path{}\n\tfor _, conflict := range conflicts {\n\t\tm[conflict.Manager] = append(m[conflict.Manager], conflict.Path)\n\t}\n\n\tmanagers := []string{}\n\tfor manager := range m {\n\t\tmanagers = append(managers, manager)\n\t}\n\n\t// Print conflicts by sorted managers.\n\tsort.Strings(managers)\n\n\tmessages := []string{}\n\tfor _, manager := range managers {\n\t\tmessages = append(messages, fmt.Sprintf(\"conflicts with %q:\", manager))\n\t\tfor _, path := range m[manager] {\n\t\t\tmessages = append(messages, fmt.Sprintf(\"- %v\", path))\n\t\t}\n\t}\n\treturn strings.Join(messages, \"\\n\")\n}\n\n// Equals returns true if the lists of conflicts are the same.\nfunc (c Conflicts) Equals(c2 Conflicts) bool {\n\tif len(c) != len(c2) {\n\t\treturn false\n\t}\n\tfor i := range c {\n\t\tif !c[i].Equals(c2[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// ToSet aggregates conflicts for all managers into a single Set.\nfunc (c Conflicts) ToSet() *fieldpath.Set {\n\tset := fieldpath.NewSet()\n\tfor _, conflict := range []Conflict(c) {\n\t\tset.Insert(conflict.Path)\n\t}\n\treturn set\n}\n\n// ConflictsFromManagers creates a list of conflicts given Managers sets.\nfunc ConflictsFromManagers(sets fieldpath.ManagedFields) Conflicts {\n\tconflicts := []Conflict{}\n\n\tfor manager, set := range sets {\n\t\tset.Set().Iterate(func(p fieldpath.Path) {\n\t\t\tconflicts = append(conflicts, Conflict{\n\t\t\t\tManager: manager,\n\t\t\t\tPath:    p.Copy(),\n\t\t\t})\n\t\t})\n\t}\n\n\treturn conflicts\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/merge/update.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n    http://www.apache.org/licenses/LICENSE-2.0\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage merge\n\nimport (\n\t\"fmt\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/typed\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/value\"\n)\n\n// Converter is an interface to the conversion logic. The converter\n// needs to be able to convert objects from one version to another.\ntype Converter interface {\n\tConvert(object *typed.TypedValue, version fieldpath.APIVersion) (*typed.TypedValue, error)\n\tIsMissingVersionError(error) bool\n}\n\n// UpdateBuilder allows you to create a new Updater by exposing all of\n// the options and setting them once.\ntype UpdaterBuilder struct {\n\tConverter    Converter\n\tIgnoreFilter map[fieldpath.APIVersion]fieldpath.Filter\n\n\t// Stop comparing the new object with old object after applying.\n\t// This was initially used to avoid spurious etcd update, but\n\t// since that's vastly inefficient, we've come-up with a better\n\t// way of doing that. Create this flag to stop it.\n\t// Comparing has become more expensive too now that we're not using\n\t// `Compare` but `value.Equals` so this gives an option to avoid it.\n\tReturnInputOnNoop bool\n}\n\nfunc (u *UpdaterBuilder) BuildUpdater() *Updater {\n\treturn &Updater{\n\t\tConverter:         u.Converter,\n\t\tIgnoreFilter:      u.IgnoreFilter,\n\t\treturnInputOnNoop: u.ReturnInputOnNoop,\n\t}\n}\n\n// Updater is the object used to compute updated FieldSets and also\n// merge the object on Apply.\ntype Updater struct {\n\t// Deprecated: This will eventually become private.\n\tConverter Converter\n\n\t// Deprecated: This will eventually become private.\n\tIgnoreFilter map[fieldpath.APIVersion]fieldpath.Filter\n\n\treturnInputOnNoop bool\n}\n\nfunc (s *Updater) update(oldObject, newObject *typed.TypedValue, version fieldpath.APIVersion, managers fieldpath.ManagedFields, workflow string, force bool) (fieldpath.ManagedFields, *typed.Comparison, error) {\n\tconflicts := fieldpath.ManagedFields{}\n\tremoved := fieldpath.ManagedFields{}\n\tcompare, err := oldObject.Compare(newObject)\n\tif err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"failed to compare objects: %v\", err)\n\t}\n\n\tversions := map[fieldpath.APIVersion]*typed.Comparison{\n\t\tversion: compare.FilterFields(s.IgnoreFilter[version]),\n\t}\n\n\tfor manager, managerSet := range managers {\n\t\tif manager == workflow {\n\t\t\tcontinue\n\t\t}\n\t\tcompare, ok := versions[managerSet.APIVersion()]\n\t\tif !ok {\n\t\t\tvar err error\n\t\t\tversionedOldObject, err := s.Converter.Convert(oldObject, managerSet.APIVersion())\n\t\t\tif err != nil {\n\t\t\t\tif s.Converter.IsMissingVersionError(err) {\n\t\t\t\t\tdelete(managers, manager)\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\treturn nil, nil, fmt.Errorf(\"failed to convert old object: %v\", err)\n\t\t\t}\n\t\t\tversionedNewObject, err := s.Converter.Convert(newObject, managerSet.APIVersion())\n\t\t\tif err != nil {\n\t\t\t\tif s.Converter.IsMissingVersionError(err) {\n\t\t\t\t\tdelete(managers, manager)\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\treturn nil, nil, fmt.Errorf(\"failed to convert new object: %v\", err)\n\t\t\t}\n\t\t\tcompare, err = versionedOldObject.Compare(versionedNewObject)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, nil, fmt.Errorf(\"failed to compare objects: %v\", err)\n\t\t\t}\n\t\t\tversions[managerSet.APIVersion()] = compare.FilterFields(s.IgnoreFilter[managerSet.APIVersion()])\n\t\t}\n\n\t\tconflictSet := managerSet.Set().Intersection(compare.Modified.Union(compare.Added))\n\t\tif !conflictSet.Empty() {\n\t\t\tconflicts[manager] = fieldpath.NewVersionedSet(conflictSet, managerSet.APIVersion(), false)\n\t\t}\n\n\t\tif !compare.Removed.Empty() {\n\t\t\tremoved[manager] = fieldpath.NewVersionedSet(compare.Removed, managerSet.APIVersion(), false)\n\t\t}\n\t}\n\n\tif !force && len(conflicts) != 0 {\n\t\treturn nil, nil, ConflictsFromManagers(conflicts)\n\t}\n\n\tfor manager, conflictSet := range conflicts {\n\t\tmanagers[manager] = fieldpath.NewVersionedSet(managers[manager].Set().Difference(conflictSet.Set()), managers[manager].APIVersion(), managers[manager].Applied())\n\t}\n\n\tfor manager, removedSet := range removed {\n\t\tmanagers[manager] = fieldpath.NewVersionedSet(managers[manager].Set().Difference(removedSet.Set()), managers[manager].APIVersion(), managers[manager].Applied())\n\t}\n\n\tfor manager := range managers {\n\t\tif managers[manager].Set().Empty() {\n\t\t\tdelete(managers, manager)\n\t\t}\n\t}\n\n\treturn managers, compare, nil\n}\n\n// Update is the method you should call once you've merged your final\n// object on CREATE/UPDATE/PATCH verbs. newObject must be the object\n// that you intend to persist (after applying the patch if this is for a\n// PATCH call), and liveObject must be the original object (empty if\n// this is a CREATE call).\nfunc (s *Updater) Update(liveObject, newObject *typed.TypedValue, version fieldpath.APIVersion, managers fieldpath.ManagedFields, manager string) (*typed.TypedValue, fieldpath.ManagedFields, error) {\n\tvar err error\n\tmanagers, err = s.reconcileManagedFieldsWithSchemaChanges(liveObject, managers)\n\tif err != nil {\n\t\treturn nil, fieldpath.ManagedFields{}, err\n\t}\n\tmanagers, compare, err := s.update(liveObject, newObject, version, managers, manager, true)\n\tif err != nil {\n\t\treturn nil, fieldpath.ManagedFields{}, err\n\t}\n\tif _, ok := managers[manager]; !ok {\n\t\tmanagers[manager] = fieldpath.NewVersionedSet(fieldpath.NewSet(), version, false)\n\t}\n\tset := managers[manager].Set().Difference(compare.Removed).Union(compare.Modified).Union(compare.Added)\n\tignoreFilter := s.IgnoreFilter[version]\n\tif ignoreFilter != nil {\n\t\tset = ignoreFilter.Filter(set)\n\t}\n\n\tmanagers[manager] = fieldpath.NewVersionedSet(\n\t\tset,\n\t\tversion,\n\t\tfalse,\n\t)\n\tif managers[manager].Set().Empty() {\n\t\tdelete(managers, manager)\n\t}\n\treturn newObject, managers, nil\n}\n\n// Apply should be called when Apply is run, given the current object as\n// well as the configuration that is applied. This will merge the object\n// and return it.\nfunc (s *Updater) Apply(liveObject, configObject *typed.TypedValue, version fieldpath.APIVersion, managers fieldpath.ManagedFields, manager string, force bool) (*typed.TypedValue, fieldpath.ManagedFields, error) {\n\tvar err error\n\tmanagers, err = s.reconcileManagedFieldsWithSchemaChanges(liveObject, managers)\n\tif err != nil {\n\t\treturn nil, fieldpath.ManagedFields{}, err\n\t}\n\tnewObject, err := liveObject.Merge(configObject)\n\tif err != nil {\n\t\treturn nil, fieldpath.ManagedFields{}, fmt.Errorf(\"failed to merge config: %v\", err)\n\t}\n\tlastSet := managers[manager]\n\tset, err := configObject.ToFieldSet()\n\tif err != nil {\n\t\treturn nil, fieldpath.ManagedFields{}, fmt.Errorf(\"failed to get field set: %v\", err)\n\t}\n\n\tignoreFilter := s.IgnoreFilter[version]\n\tif ignoreFilter != nil {\n\t\tset = ignoreFilter.Filter(set)\n\t}\n\tmanagers[manager] = fieldpath.NewVersionedSet(set, version, true)\n\tnewObject, err = s.prune(newObject, managers, manager, lastSet)\n\tif err != nil {\n\t\treturn nil, fieldpath.ManagedFields{}, fmt.Errorf(\"failed to prune fields: %v\", err)\n\t}\n\tmanagers, _, err = s.update(liveObject, newObject, version, managers, manager, force)\n\tif err != nil {\n\t\treturn nil, fieldpath.ManagedFields{}, err\n\t}\n\tif !s.returnInputOnNoop && value.EqualsUsing(value.NewFreelistAllocator(), liveObject.AsValue(), newObject.AsValue()) {\n\t\tnewObject = nil\n\t}\n\treturn newObject, managers, nil\n}\n\n// prune will remove a field, list or map item, iff:\n// * applyingManager applied it last time\n// * applyingManager didn't apply it this time\n// * no other applier claims to manage it\nfunc (s *Updater) prune(merged *typed.TypedValue, managers fieldpath.ManagedFields, applyingManager string, lastSet fieldpath.VersionedSet) (*typed.TypedValue, error) {\n\tif lastSet == nil || lastSet.Set().Empty() {\n\t\treturn merged, nil\n\t}\n\tversion := lastSet.APIVersion()\n\tconvertedMerged, err := s.Converter.Convert(merged, version)\n\tif err != nil {\n\t\tif s.Converter.IsMissingVersionError(err) {\n\t\t\treturn merged, nil\n\t\t}\n\t\treturn nil, fmt.Errorf(\"failed to convert merged object to last applied version: %v\", err)\n\t}\n\n\tsc, tr := convertedMerged.Schema(), convertedMerged.TypeRef()\n\tpruned := convertedMerged.RemoveItems(lastSet.Set().EnsureNamedFieldsAreMembers(sc, tr))\n\tpruned, err = s.addBackOwnedItems(convertedMerged, pruned, version, managers, applyingManager)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed add back owned items: %v\", err)\n\t}\n\tpruned, err = s.addBackDanglingItems(convertedMerged, pruned, lastSet)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed add back dangling items: %v\", err)\n\t}\n\treturn s.Converter.Convert(pruned, managers[applyingManager].APIVersion())\n}\n\n// addBackOwnedItems adds back any fields, list and map items that were removed by prune,\n// but other appliers or updaters (or the current applier's new config) claim to own.\nfunc (s *Updater) addBackOwnedItems(merged, pruned *typed.TypedValue, prunedVersion fieldpath.APIVersion, managedFields fieldpath.ManagedFields, applyingManager string) (*typed.TypedValue, error) {\n\tvar err error\n\tmanagedAtVersion := map[fieldpath.APIVersion]*fieldpath.Set{}\n\tfor _, managerSet := range managedFields {\n\t\tif _, ok := managedAtVersion[managerSet.APIVersion()]; !ok {\n\t\t\tmanagedAtVersion[managerSet.APIVersion()] = fieldpath.NewSet()\n\t\t}\n\t\tmanagedAtVersion[managerSet.APIVersion()] = managedAtVersion[managerSet.APIVersion()].Union(managerSet.Set())\n\t}\n\t// Add back owned items at pruned version first to avoid conversion failure\n\t// caused by pruned fields which are required for conversion.\n\tif managed, ok := managedAtVersion[prunedVersion]; ok {\n\t\tmerged, pruned, err = s.addBackOwnedItemsForVersion(merged, pruned, prunedVersion, managed)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tdelete(managedAtVersion, prunedVersion)\n\t}\n\tfor version, managed := range managedAtVersion {\n\t\tmerged, pruned, err = s.addBackOwnedItemsForVersion(merged, pruned, version, managed)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t}\n\treturn pruned, nil\n}\n\n// addBackOwnedItemsForVersion adds back any fields, list and map items that were removed by prune with specific managed field path at a version.\n// It is an extracted sub-function from addBackOwnedItems for code reuse.\nfunc (s *Updater) addBackOwnedItemsForVersion(merged, pruned *typed.TypedValue, version fieldpath.APIVersion, managed *fieldpath.Set) (*typed.TypedValue, *typed.TypedValue, error) {\n\tvar err error\n\tmerged, err = s.Converter.Convert(merged, version)\n\tif err != nil {\n\t\tif s.Converter.IsMissingVersionError(err) {\n\t\t\treturn merged, pruned, nil\n\t\t}\n\t\treturn nil, nil, fmt.Errorf(\"failed to convert merged object at version %v: %v\", version, err)\n\t}\n\tpruned, err = s.Converter.Convert(pruned, version)\n\tif err != nil {\n\t\tif s.Converter.IsMissingVersionError(err) {\n\t\t\treturn merged, pruned, nil\n\t\t}\n\t\treturn nil, nil, fmt.Errorf(\"failed to convert pruned object at version %v: %v\", version, err)\n\t}\n\tmergedSet, err := merged.ToFieldSet()\n\tif err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"failed to create field set from merged object at version %v: %v\", version, err)\n\t}\n\tprunedSet, err := pruned.ToFieldSet()\n\tif err != nil {\n\t\treturn nil, nil, fmt.Errorf(\"failed to create field set from pruned object at version %v: %v\", version, err)\n\t}\n\tsc, tr := merged.Schema(), merged.TypeRef()\n\tpruned = merged.RemoveItems(mergedSet.EnsureNamedFieldsAreMembers(sc, tr).Difference(prunedSet.EnsureNamedFieldsAreMembers(sc, tr).Union(managed.EnsureNamedFieldsAreMembers(sc, tr))))\n\treturn merged, pruned, nil\n}\n\n// addBackDanglingItems makes sure that the fields list and map items removed by prune were\n// previously owned by the currently applying manager. This will add back fields list and map items\n// that are unowned or that are owned by Updaters and shouldn't be removed.\nfunc (s *Updater) addBackDanglingItems(merged, pruned *typed.TypedValue, lastSet fieldpath.VersionedSet) (*typed.TypedValue, error) {\n\tconvertedPruned, err := s.Converter.Convert(pruned, lastSet.APIVersion())\n\tif err != nil {\n\t\tif s.Converter.IsMissingVersionError(err) {\n\t\t\treturn merged, nil\n\t\t}\n\t\treturn nil, fmt.Errorf(\"failed to convert pruned object to last applied version: %v\", err)\n\t}\n\tprunedSet, err := convertedPruned.ToFieldSet()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to create field set from pruned object in last applied version: %v\", err)\n\t}\n\tmergedSet, err := merged.ToFieldSet()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to create field set from merged object in last applied version: %v\", err)\n\t}\n\tsc, tr := merged.Schema(), merged.TypeRef()\n\tprunedSet = prunedSet.EnsureNamedFieldsAreMembers(sc, tr)\n\tmergedSet = mergedSet.EnsureNamedFieldsAreMembers(sc, tr)\n\tlast := lastSet.Set().EnsureNamedFieldsAreMembers(sc, tr)\n\treturn merged.RemoveItems(mergedSet.Difference(prunedSet).Intersection(last)), nil\n}\n\n// reconcileManagedFieldsWithSchemaChanges reconciles the managed fields with any changes to the\n// object's schema since the managed fields were written.\n//\n// Supports:\n// - changing types from atomic to granular\n// - changing types from granular to atomic\nfunc (s *Updater) reconcileManagedFieldsWithSchemaChanges(liveObject *typed.TypedValue, managers fieldpath.ManagedFields) (fieldpath.ManagedFields, error) {\n\tresult := fieldpath.ManagedFields{}\n\tfor manager, versionedSet := range managers {\n\t\ttv, err := s.Converter.Convert(liveObject, versionedSet.APIVersion())\n\t\tif s.Converter.IsMissingVersionError(err) { // okay to skip, obsolete versions will be deleted automatically anyway\n\t\t\tcontinue\n\t\t}\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\treconciled, err := typed.ReconcileFieldSetWithSchema(versionedSet.Set(), tv)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif reconciled != nil {\n\t\t\tresult[manager] = fieldpath.NewVersionedSet(reconciled, versionedSet.APIVersion(), versionedSet.Applied())\n\t\t} else {\n\t\t\tresult[manager] = versionedSet\n\t\t}\n\t}\n\treturn result, nil\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/schema/doc.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package schema defines a targeted schema language which allows one to\n// represent all the schema information necessary to perform \"structured\"\n// merges and diffs.\n//\n// Due to the targeted nature of the data model, the schema language can fit in\n// just a few hundred lines of go code, making it much more understandable and\n// concise than e.g. OpenAPI.\n//\n// This schema was derived by observing the API objects used by Kubernetes, and\n// formalizing a model which allows certain operations (\"apply\") to be more\n// well defined. It is currently missing one feature: one-of (\"unions\").\npackage schema\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/schema/elements.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage schema\n\nimport (\n\t\"sync\"\n)\n\n// Schema is a list of named types.\n//\n// Schema types are indexed in a map before the first search so this type\n// should be considered immutable.\ntype Schema struct {\n\tTypes []TypeDef `yaml:\"types,omitempty\"`\n\n\tonce sync.Once\n\tm    map[string]TypeDef\n\n\tlock sync.Mutex\n\t// Cached results of resolving type references to atoms. Only stores\n\t// type references which require fields of Atom to be overriden.\n\tresolvedTypes map[TypeRef]Atom\n}\n\n// A TypeSpecifier references a particular type in a schema.\ntype TypeSpecifier struct {\n\tType   TypeRef `yaml:\"type,omitempty\"`\n\tSchema Schema  `yaml:\"schema,omitempty\"`\n}\n\n// TypeDef represents a named type in a schema.\ntype TypeDef struct {\n\t// Top level types should be named. Every type must have a unique name.\n\tName string `yaml:\"name,omitempty\"`\n\n\tAtom `yaml:\"atom,omitempty,inline\"`\n}\n\n// TypeRef either refers to a named type or declares an inlined type.\ntype TypeRef struct {\n\t// Either the name or one member of Atom should be set.\n\tNamedType *string `yaml:\"namedType,omitempty\"`\n\tInlined   Atom    `yaml:\",inline,omitempty\"`\n\n\t// If this reference refers to a map-type or list-type, this field overrides\n\t// the `ElementRelationship` of the referred type when resolved.\n\t// If this field is nil, then it has no effect.\n\t// See `Map` and `List` for more information about `ElementRelationship`\n\tElementRelationship *ElementRelationship `yaml:\"elementRelationship,omitempty\"`\n}\n\n// Atom represents the smallest possible pieces of the type system.\n// Each set field in the Atom represents a possible type for the object.\n// If none of the fields are set, any object will fail validation against the atom.\ntype Atom struct {\n\t*Scalar `yaml:\"scalar,omitempty\"`\n\t*List   `yaml:\"list,omitempty\"`\n\t*Map    `yaml:\"map,omitempty\"`\n}\n\n// Scalar (AKA \"primitive\") represents a type which has a single value which is\n// either numeric, string, or boolean, or untyped for any of them.\n//\n// TODO: split numeric into float/int? Something even more fine-grained?\ntype Scalar string\n\nconst (\n\tNumeric = Scalar(\"numeric\")\n\tString  = Scalar(\"string\")\n\tBoolean = Scalar(\"boolean\")\n\tUntyped = Scalar(\"untyped\")\n)\n\n// ElementRelationship is an enum of the different possible relationships\n// between the elements of container types (maps, lists).\ntype ElementRelationship string\n\nconst (\n\t// Associative only applies to lists (see the documentation there).\n\tAssociative = ElementRelationship(\"associative\")\n\t// Atomic makes container types (lists, maps) behave\n\t// as scalars / leaf fields\n\tAtomic = ElementRelationship(\"atomic\")\n\t// Separable means the items of the container type have no particular\n\t// relationship (default behavior for maps).\n\tSeparable = ElementRelationship(\"separable\")\n)\n\n// Map is a key-value pair. Its default semantics are the same as an\n// associative list, but:\n//   - It is serialized differently:\n//     map:  {\"k\": {\"value\": \"v\"}}\n//     list: [{\"key\": \"k\", \"value\": \"v\"}]\n//   - Keys must be string typed.\n//   - Keys can't have multiple components.\n//\n// Optionally, maps may be atomic (for example, imagine representing an RGB\n// color value--it doesn't make sense to have different actors own the R and G\n// values).\n//\n// Maps may also represent a type which is composed of a number of different fields.\n// Each field has a name and a type.\n//\n// Fields are indexed in a map before the first search so this type\n// should be considered immutable.\ntype Map struct {\n\t// Each struct field appears exactly once in this list. The order in\n\t// this list defines the canonical field ordering.\n\tFields []StructField `yaml:\"fields,omitempty\"`\n\n\t// A Union is a grouping of fields with special rules. It may refer to\n\t// one or more fields in the above list. A given field from the above\n\t// list may be referenced in exactly 0 or 1 places in the below list.\n\t// One can have multiple unions in the same struct, but the fields can't\n\t// overlap between unions.\n\tUnions []Union `yaml:\"unions,omitempty\"`\n\n\t// ElementType is the type of the structs's unknown fields.\n\tElementType TypeRef `yaml:\"elementType,omitempty\"`\n\n\t// ElementRelationship states the relationship between the map's items.\n\t// * `separable` (or unset) implies that each element is 100% independent.\n\t// * `atomic` implies that all elements depend on each other, and this\n\t//   is effectively a scalar / leaf field; it doesn't make sense for\n\t//   separate actors to set the elements. Example: an RGB color struct;\n\t//   it would never make sense to \"own\" only one component of the\n\t//   color.\n\t// The default behavior for maps is `separable`; it's permitted to\n\t// leave this unset to get the default behavior.\n\tElementRelationship ElementRelationship `yaml:\"elementRelationship,omitempty\"`\n\n\tonce sync.Once\n\tm    map[string]StructField\n}\n\n// FindField is a convenience function that returns the referenced StructField,\n// if it exists, or (nil, false) if it doesn't.\nfunc (m *Map) FindField(name string) (StructField, bool) {\n\tm.once.Do(func() {\n\t\tm.m = make(map[string]StructField, len(m.Fields))\n\t\tfor _, field := range m.Fields {\n\t\t\tm.m[field.Name] = field\n\t\t}\n\t})\n\tsf, ok := m.m[name]\n\treturn sf, ok\n}\n\n// CopyInto this instance of Map into the other\n// If other is nil this method does nothing.\n// If other is already initialized, overwrites it with this instance\n// Warning: Not thread safe\nfunc (m *Map) CopyInto(dst *Map) {\n\tif dst == nil {\n\t\treturn\n\t}\n\n\t// Map type is considered immutable so sharing references\n\tdst.Fields = m.Fields\n\tdst.ElementType = m.ElementType\n\tdst.Unions = m.Unions\n\tdst.ElementRelationship = m.ElementRelationship\n\n\tif m.m != nil {\n\t\t// If cache is non-nil then the once token had been consumed.\n\t\t// Must reset token and use it again to ensure same semantics.\n\t\tdst.once = sync.Once{}\n\t\tdst.once.Do(func() {\n\t\t\tdst.m = m.m\n\t\t})\n\t}\n}\n\n// UnionFields are mapping between the fields that are part of the union and\n// their discriminated value. The discriminated value has to be set, and\n// should not conflict with other discriminated value in the list.\ntype UnionField struct {\n\t// FieldName is the name of the field that is part of the union. This\n\t// is the serialized form of the field.\n\tFieldName string `yaml:\"fieldName\"`\n\t// Discriminatorvalue is the value of the discriminator to\n\t// select that field. If the union doesn't have a discriminator,\n\t// this field is ignored.\n\tDiscriminatorValue string `yaml:\"discriminatorValue\"`\n}\n\n// Union, or oneof, means that only one of multiple fields of a structure can be\n// set at a time. Setting the discriminator helps clearing oher fields:\n// - If discriminator changed to non-nil, and a new field has been added\n// that doesn't match, an error is returned,\n// - If discriminator hasn't changed and two fields or more are set, an\n// error is returned,\n// - If discriminator changed to non-nil, all other fields but the\n// discriminated one will be cleared,\n// - Otherwise, If only one field is left, update discriminator to that value.\ntype Union struct {\n\t// Discriminator, if present, is the name of the field that\n\t// discriminates fields in the union. The mapping between the value of\n\t// the discriminator and the field is done by using the Fields list\n\t// below.\n\tDiscriminator *string `yaml:\"discriminator,omitempty\"`\n\n\t// DeduceInvalidDiscriminator indicates if the discriminator\n\t// should be updated automatically based on the fields set. This\n\t// typically defaults to false since we don't want to deduce by\n\t// default (the behavior exists to maintain compatibility on\n\t// existing types and shouldn't be used for new types).\n\tDeduceInvalidDiscriminator bool `yaml:\"deduceInvalidDiscriminator,omitempty\"`\n\n\t// This is the list of fields that belong to this union. All the\n\t// fields present in here have to be part of the parent\n\t// structure. Discriminator (if oneOf has one), is NOT included in\n\t// this list. The value for field is how we map the name of the field\n\t// to actual value for discriminator.\n\tFields []UnionField `yaml:\"fields,omitempty\"`\n}\n\n// StructField pairs a field name with a field type.\ntype StructField struct {\n\t// Name is the field name.\n\tName string `yaml:\"name,omitempty\"`\n\t// Type is the field type.\n\tType TypeRef `yaml:\"type,omitempty\"`\n\t// Default value for the field, nil if not present.\n\tDefault interface{} `yaml:\"default,omitempty\"`\n}\n\n// List represents a type which contains a zero or more elements, all of the\n// same subtype. Lists may be either associative: each element is more or less\n// independent and could be managed by separate entities in the system; or\n// atomic, where the elements are heavily dependent on each other: it is not\n// sensible to change one element without considering the ramifications on all\n// the other elements.\ntype List struct {\n\t// ElementType is the type of the list's elements.\n\tElementType TypeRef `yaml:\"elementType,omitempty\"`\n\n\t// ElementRelationship states the relationship between the list's elements\n\t// and must have one of these values:\n\t// * `atomic`: the list is treated as a single entity, like a scalar.\n\t// * `associative`:\n\t//   - If the list element is a scalar, the list is treated as a set.\n\t//   - If the list element is a map, the list is treated as a map.\n\t// There is no default for this value for lists; all schemas must\n\t// explicitly state the element relationship for all lists.\n\tElementRelationship ElementRelationship `yaml:\"elementRelationship,omitempty\"`\n\n\t// Iff ElementRelationship is `associative`, and the element type is\n\t// map, then Keys must have non-zero length, and it lists the fields\n\t// of the element's map type which are to be used as the keys of the\n\t// list.\n\t//\n\t// TODO: change this to \"non-atomic struct\" above and make the code reflect this.\n\t//\n\t// Each key must refer to a single field name (no nesting, not JSONPath).\n\tKeys []string `yaml:\"keys,omitempty\"`\n}\n\n// FindNamedType is a convenience function that returns the referenced TypeDef,\n// if it exists, or (nil, false) if it doesn't.\nfunc (s *Schema) FindNamedType(name string) (TypeDef, bool) {\n\ts.once.Do(func() {\n\t\ts.m = make(map[string]TypeDef, len(s.Types))\n\t\tfor _, t := range s.Types {\n\t\t\ts.m[t.Name] = t\n\t\t}\n\t})\n\tt, ok := s.m[name]\n\treturn t, ok\n}\n\nfunc (s *Schema) resolveNoOverrides(tr TypeRef) (Atom, bool) {\n\tresult := Atom{}\n\n\tif tr.NamedType != nil {\n\t\tt, ok := s.FindNamedType(*tr.NamedType)\n\t\tif !ok {\n\t\t\treturn Atom{}, false\n\t\t}\n\n\t\tresult = t.Atom\n\t} else {\n\t\tresult = tr.Inlined\n\t}\n\n\treturn result, true\n}\n\n// Resolve is a convenience function which returns the atom referenced, whether\n// it is inline or named. Returns (Atom{}, false) if the type can't be resolved.\n//\n// This allows callers to not care about the difference between a (possibly\n// inlined) reference and a definition.\nfunc (s *Schema) Resolve(tr TypeRef) (Atom, bool) {\n\t// If this is a plain reference with no overrides, just return the type\n\tif tr.ElementRelationship == nil {\n\t\treturn s.resolveNoOverrides(tr)\n\t}\n\n\ts.lock.Lock()\n\tdefer s.lock.Unlock()\n\n\tif s.resolvedTypes == nil {\n\t\ts.resolvedTypes = make(map[TypeRef]Atom)\n\t}\n\n\tvar result Atom\n\tvar exists bool\n\n\t// Return cached result if available\n\t// If not, calculate result and cache it\n\tif result, exists = s.resolvedTypes[tr]; !exists {\n\t\tif result, exists = s.resolveNoOverrides(tr); exists {\n\t\t\t// Allow field-level electives to override the referred type's modifiers\n\t\t\tswitch {\n\t\t\tcase result.Map != nil:\n\t\t\t\tmapCopy := Map{}\n\t\t\t\tresult.Map.CopyInto(&mapCopy)\n\t\t\t\tmapCopy.ElementRelationship = *tr.ElementRelationship\n\t\t\t\tresult.Map = &mapCopy\n\t\t\tcase result.List != nil:\n\t\t\t\tlistCopy := *result.List\n\t\t\t\tlistCopy.ElementRelationship = *tr.ElementRelationship\n\t\t\t\tresult.List = &listCopy\n\t\t\tcase result.Scalar != nil:\n\t\t\t\treturn Atom{}, false\n\t\t\tdefault:\n\t\t\t\treturn Atom{}, false\n\t\t\t}\n\t\t} else {\n\t\t\treturn Atom{}, false\n\t\t}\n\n\t\t// Save result. If it is nil, that is also recorded as not existing.\n\t\ts.resolvedTypes[tr] = result\n\t}\n\n\treturn result, true\n}\n\n// Clones this instance of Schema into the other\n// If other is nil this method does nothing.\n// If other is already initialized, overwrites it with this instance\n// Warning: Not thread safe\nfunc (s *Schema) CopyInto(dst *Schema) {\n\tif dst == nil {\n\t\treturn\n\t}\n\n\t// Schema type is considered immutable so sharing references\n\tdst.Types = s.Types\n\n\tif s.m != nil {\n\t\t// If cache is non-nil then the once token had been consumed.\n\t\t// Must reset token and use it again to ensure same semantics.\n\t\tdst.once = sync.Once{}\n\t\tdst.once.Do(func() {\n\t\t\tdst.m = s.m\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/schema/equals.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage schema\n\nimport \"reflect\"\n\n// Equals returns true iff the two Schemas are equal.\nfunc (a *Schema) Equals(b *Schema) bool {\n\tif a == nil || b == nil {\n\t\treturn a == nil && b == nil\n\t}\n\n\tif len(a.Types) != len(b.Types) {\n\t\treturn false\n\t}\n\tfor i := range a.Types {\n\t\tif !a.Types[i].Equals(&b.Types[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Equals returns true iff the two TypeRefs are equal.\n//\n// Note that two typerefs that have an equivalent type but where one is\n// inlined and the other is named, are not considered equal.\nfunc (a *TypeRef) Equals(b *TypeRef) bool {\n\tif a == nil || b == nil {\n\t\treturn a == nil && b == nil\n\t}\n\tif (a.NamedType == nil) != (b.NamedType == nil) {\n\t\treturn false\n\t}\n\tif a.NamedType != nil {\n\t\tif *a.NamedType != *b.NamedType {\n\t\t\treturn false\n\t\t}\n\t\t//return true\n\t}\n\tif a.ElementRelationship != b.ElementRelationship {\n\t\treturn false\n\t}\n\treturn a.Inlined.Equals(&b.Inlined)\n}\n\n// Equals returns true iff the two TypeDefs are equal.\nfunc (a *TypeDef) Equals(b *TypeDef) bool {\n\tif a == nil || b == nil {\n\t\treturn a == nil && b == nil\n\t}\n\tif a.Name != b.Name {\n\t\treturn false\n\t}\n\treturn a.Atom.Equals(&b.Atom)\n}\n\n// Equals returns true iff the two Atoms are equal.\nfunc (a *Atom) Equals(b *Atom) bool {\n\tif a == nil || b == nil {\n\t\treturn a == nil && b == nil\n\t}\n\tif (a.Scalar == nil) != (b.Scalar == nil) {\n\t\treturn false\n\t}\n\tif (a.List == nil) != (b.List == nil) {\n\t\treturn false\n\t}\n\tif (a.Map == nil) != (b.Map == nil) {\n\t\treturn false\n\t}\n\tswitch {\n\tcase a.Scalar != nil:\n\t\treturn *a.Scalar == *b.Scalar\n\tcase a.List != nil:\n\t\treturn a.List.Equals(b.List)\n\tcase a.Map != nil:\n\t\treturn a.Map.Equals(b.Map)\n\t}\n\treturn true\n}\n\n// Equals returns true iff the two Maps are equal.\nfunc (a *Map) Equals(b *Map) bool {\n\tif a == nil || b == nil {\n\t\treturn a == nil && b == nil\n\t}\n\tif !a.ElementType.Equals(&b.ElementType) {\n\t\treturn false\n\t}\n\tif a.ElementRelationship != b.ElementRelationship {\n\t\treturn false\n\t}\n\tif len(a.Fields) != len(b.Fields) {\n\t\treturn false\n\t}\n\tfor i := range a.Fields {\n\t\tif !a.Fields[i].Equals(&b.Fields[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif len(a.Unions) != len(b.Unions) {\n\t\treturn false\n\t}\n\tfor i := range a.Unions {\n\t\tif !a.Unions[i].Equals(&b.Unions[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Equals returns true iff the two Unions are equal.\nfunc (a *Union) Equals(b *Union) bool {\n\tif a == nil || b == nil {\n\t\treturn a == nil && b == nil\n\t}\n\tif (a.Discriminator == nil) != (b.Discriminator == nil) {\n\t\treturn false\n\t}\n\tif a.Discriminator != nil {\n\t\tif *a.Discriminator != *b.Discriminator {\n\t\t\treturn false\n\t\t}\n\t}\n\tif a.DeduceInvalidDiscriminator != b.DeduceInvalidDiscriminator {\n\t\treturn false\n\t}\n\tif len(a.Fields) != len(b.Fields) {\n\t\treturn false\n\t}\n\tfor i := range a.Fields {\n\t\tif !a.Fields[i].Equals(&b.Fields[i]) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Equals returns true iff the two UnionFields are equal.\nfunc (a *UnionField) Equals(b *UnionField) bool {\n\tif a == nil || b == nil {\n\t\treturn a == nil && b == nil\n\t}\n\tif a.FieldName != b.FieldName {\n\t\treturn false\n\t}\n\tif a.DiscriminatorValue != b.DiscriminatorValue {\n\t\treturn false\n\t}\n\treturn true\n}\n\n// Equals returns true iff the two StructFields are equal.\nfunc (a *StructField) Equals(b *StructField) bool {\n\tif a == nil || b == nil {\n\t\treturn a == nil && b == nil\n\t}\n\tif a.Name != b.Name {\n\t\treturn false\n\t}\n\tif !reflect.DeepEqual(a.Default, b.Default) {\n\t\treturn false\n\t}\n\treturn a.Type.Equals(&b.Type)\n}\n\n// Equals returns true iff the two Lists are equal.\nfunc (a *List) Equals(b *List) bool {\n\tif a == nil || b == nil {\n\t\treturn a == nil && b == nil\n\t}\n\tif !a.ElementType.Equals(&b.ElementType) {\n\t\treturn false\n\t}\n\tif a.ElementRelationship != b.ElementRelationship {\n\t\treturn false\n\t}\n\tif len(a.Keys) != len(b.Keys) {\n\t\treturn false\n\t}\n\tfor i := range a.Keys {\n\t\tif a.Keys[i] != b.Keys[i] {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/schema/schemaschema.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage schema\n\n// SchemaSchemaYAML is a schema against which you can validate other schemas.\n// It will validate itself. It can be unmarshalled into a Schema type.\nvar SchemaSchemaYAML = `types:\n- name: schema\n  map:\n    fields:\n      - name: types\n        type:\n          list:\n            elementRelationship: associative\n            elementType:\n              namedType: typeDef\n            keys:\n            - name\n- name: typeDef\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n    - name: scalar\n      type:\n        scalar: string\n    - name: map\n      type:\n        namedType: map\n    - name: list\n      type:\n        namedType: list\n    - name: untyped\n      type:\n        namedType: untyped\n- name: typeRef\n  map:\n    fields:\n    - name: namedType\n      type:\n        scalar: string\n    - name: scalar\n      type:\n        scalar: string\n    - name: map\n      type:\n        namedType: map\n    - name: list\n      type:\n        namedType: list\n    - name: untyped\n      type:\n        namedType: untyped\n    - name: elementRelationship\n      type:\n        scalar: string\n- name: scalar\n  scalar: string\n- name: map\n  map:\n    fields:\n    - name: fields\n      type:\n        list:\n          elementType:\n            namedType: structField\n          elementRelationship: associative\n          keys: [ \"name\" ]\n    - name: unions\n      type:\n        list:\n          elementType:\n            namedType: union\n          elementRelationship: atomic\n    - name: elementType\n      type:\n        namedType: typeRef\n    - name: elementRelationship\n      type:\n        scalar: string\n- name: unionField\n  map:\n    fields:\n    - name: fieldName\n      type:\n        scalar: string\n    - name: discriminatorValue\n      type:\n        scalar: string\n- name: union\n  map:\n    fields:\n    - name: discriminator\n      type:\n        scalar: string\n    - name: deduceInvalidDiscriminator\n      type:\n        scalar: boolean\n    - name: fields\n      type:\n        list:\n          elementRelationship: associative\n          elementType:\n            namedType: unionField\n          keys:\n          - fieldName\n- name: structField\n  map:\n    fields:\n    - name: name\n      type:\n        scalar: string\n    - name: type\n      type:\n        namedType: typeRef\n    - name: default\n      type:\n        namedType: __untyped_atomic_\n- name: list\n  map:\n    fields:\n    - name: elementType\n      type:\n        namedType: typeRef\n    - name: elementRelationship\n      type:\n        scalar: string\n    - name: keys\n      type:\n        list:\n          elementType:\n            scalar: string\n          elementRelationship: atomic\n- name: untyped\n  map:\n    fields:\n    - name: elementRelationship\n      type:\n        scalar: string\n- name: __untyped_atomic_\n  scalar: untyped\n  list:\n    elementType:\n      namedType: __untyped_atomic_\n    elementRelationship: atomic\n  map:\n    elementType:\n      namedType: __untyped_atomic_\n    elementRelationship: atomic\n`\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/typed/compare.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage typed\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/schema\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/value\"\n)\n\n// Comparison is the return value of a TypedValue.Compare() operation.\n//\n// No field will appear in more than one of the three fieldsets. If all of the\n// fieldsets are empty, then the objects must have been equal.\ntype Comparison struct {\n\t// Removed contains any fields removed by rhs (the right-hand-side\n\t// object in the comparison).\n\tRemoved *fieldpath.Set\n\t// Modified contains fields present in both objects but different.\n\tModified *fieldpath.Set\n\t// Added contains any fields added by rhs.\n\tAdded *fieldpath.Set\n}\n\n// IsSame returns true if the comparison returned no changes (the two\n// compared objects are similar).\nfunc (c *Comparison) IsSame() bool {\n\treturn c.Removed.Empty() && c.Modified.Empty() && c.Added.Empty()\n}\n\n// String returns a human readable version of the comparison.\nfunc (c *Comparison) String() string {\n\tbld := strings.Builder{}\n\tif !c.Modified.Empty() {\n\t\tbld.WriteString(fmt.Sprintf(\"- Modified Fields:\\n%v\\n\", c.Modified))\n\t}\n\tif !c.Added.Empty() {\n\t\tbld.WriteString(fmt.Sprintf(\"- Added Fields:\\n%v\\n\", c.Added))\n\t}\n\tif !c.Removed.Empty() {\n\t\tbld.WriteString(fmt.Sprintf(\"- Removed Fields:\\n%v\\n\", c.Removed))\n\t}\n\treturn bld.String()\n}\n\n// ExcludeFields fields from the compare recursively removes the fields\n// from the entire comparison\nfunc (c *Comparison) ExcludeFields(fields *fieldpath.Set) *Comparison {\n\tif fields == nil || fields.Empty() {\n\t\treturn c\n\t}\n\tc.Removed = c.Removed.RecursiveDifference(fields)\n\tc.Modified = c.Modified.RecursiveDifference(fields)\n\tc.Added = c.Added.RecursiveDifference(fields)\n\treturn c\n}\n\nfunc (c *Comparison) FilterFields(filter fieldpath.Filter) *Comparison {\n\tif filter == nil {\n\t\treturn c\n\t}\n\tc.Removed = filter.Filter(c.Removed)\n\tc.Modified = filter.Filter(c.Modified)\n\tc.Added = filter.Filter(c.Added)\n\treturn c\n}\n\ntype compareWalker struct {\n\tlhs     value.Value\n\trhs     value.Value\n\tschema  *schema.Schema\n\ttypeRef schema.TypeRef\n\n\t// Current path that we are comparing\n\tpath fieldpath.Path\n\n\t// Resulting comparison.\n\tcomparison *Comparison\n\n\t// internal housekeeping--don't set when constructing.\n\tinLeaf bool // Set to true if we're in a \"big leaf\"--atomic map/list\n\n\t// Allocate only as many walkers as needed for the depth by storing them here.\n\tspareWalkers *[]*compareWalker\n\n\tallocator value.Allocator\n}\n\n// compare compares stuff.\nfunc (w *compareWalker) compare(prefixFn func() string) (errs ValidationErrors) {\n\tif w.lhs == nil && w.rhs == nil {\n\t\t// check this condidition here instead of everywhere below.\n\t\treturn errorf(\"at least one of lhs and rhs must be provided\")\n\t}\n\ta, ok := w.schema.Resolve(w.typeRef)\n\tif !ok {\n\t\treturn errorf(\"schema error: no type found matching: %v\", *w.typeRef.NamedType)\n\t}\n\n\talhs := deduceAtom(a, w.lhs)\n\tarhs := deduceAtom(a, w.rhs)\n\n\t// deduceAtom does not fix the type for nil values\n\t// nil is a wildcard and will accept whatever form the other operand takes\n\tif w.rhs == nil {\n\t\terrs = append(errs, handleAtom(alhs, w.typeRef, w)...)\n\t} else if w.lhs == nil || alhs.Equals(&arhs) {\n\t\terrs = append(errs, handleAtom(arhs, w.typeRef, w)...)\n\t} else {\n\t\tw2 := *w\n\t\terrs = append(errs, handleAtom(alhs, w.typeRef, &w2)...)\n\t\terrs = append(errs, handleAtom(arhs, w.typeRef, w)...)\n\t}\n\n\tif !w.inLeaf {\n\t\tif w.lhs == nil {\n\t\t\tw.comparison.Added.Insert(w.path)\n\t\t} else if w.rhs == nil {\n\t\t\tw.comparison.Removed.Insert(w.path)\n\t\t}\n\t}\n\treturn errs.WithLazyPrefix(prefixFn)\n}\n\n// doLeaf should be called on leaves before descending into children, if there\n// will be a descent. It modifies w.inLeaf.\nfunc (w *compareWalker) doLeaf() {\n\tif w.inLeaf {\n\t\t// We're in a \"big leaf\", an atomic map or list. Ignore\n\t\t// subsequent leaves.\n\t\treturn\n\t}\n\tw.inLeaf = true\n\n\t// We don't recurse into leaf fields for merging.\n\tif w.lhs == nil {\n\t\tw.comparison.Added.Insert(w.path)\n\t} else if w.rhs == nil {\n\t\tw.comparison.Removed.Insert(w.path)\n\t} else if !value.EqualsUsing(w.allocator, w.rhs, w.lhs) {\n\t\t// TODO: Equality is not sufficient for this.\n\t\t// Need to implement equality check on the value type.\n\t\tw.comparison.Modified.Insert(w.path)\n\t}\n}\n\nfunc (w *compareWalker) doScalar(t *schema.Scalar) ValidationErrors {\n\t// Make sure at least one side is a valid scalar.\n\tlerrs := validateScalar(t, w.lhs, \"lhs: \")\n\trerrs := validateScalar(t, w.rhs, \"rhs: \")\n\tif len(lerrs) > 0 && len(rerrs) > 0 {\n\t\treturn append(lerrs, rerrs...)\n\t}\n\n\t// All scalars are leaf fields.\n\tw.doLeaf()\n\n\treturn nil\n}\n\nfunc (w *compareWalker) prepareDescent(pe fieldpath.PathElement, tr schema.TypeRef, cmp *Comparison) *compareWalker {\n\tif w.spareWalkers == nil {\n\t\t// first descent.\n\t\tw.spareWalkers = &[]*compareWalker{}\n\t}\n\tvar w2 *compareWalker\n\tif n := len(*w.spareWalkers); n > 0 {\n\t\tw2, *w.spareWalkers = (*w.spareWalkers)[n-1], (*w.spareWalkers)[:n-1]\n\t} else {\n\t\tw2 = &compareWalker{}\n\t}\n\t*w2 = *w\n\tw2.typeRef = tr\n\tw2.path = append(w2.path, pe)\n\tw2.lhs = nil\n\tw2.rhs = nil\n\tw2.comparison = cmp\n\treturn w2\n}\n\nfunc (w *compareWalker) finishDescent(w2 *compareWalker) {\n\t// if the descent caused a realloc, ensure that we reuse the buffer\n\t// for the next sibling.\n\tw.path = w2.path[:len(w2.path)-1]\n\t*w.spareWalkers = append(*w.spareWalkers, w2)\n}\n\nfunc (w *compareWalker) derefMap(prefix string, v value.Value) (value.Map, ValidationErrors) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tm, err := mapValue(w.allocator, v)\n\tif err != nil {\n\t\treturn nil, errorf(\"%v: %v\", prefix, err)\n\t}\n\treturn m, nil\n}\n\nfunc (w *compareWalker) visitListItems(t *schema.List, lhs, rhs value.List) (errs ValidationErrors) {\n\trLen := 0\n\tif rhs != nil {\n\t\trLen = rhs.Length()\n\t}\n\tlLen := 0\n\tif lhs != nil {\n\t\tlLen = lhs.Length()\n\t}\n\n\tmaxLength := rLen\n\tif lLen > maxLength {\n\t\tmaxLength = lLen\n\t}\n\t// Contains all the unique PEs between lhs and rhs, exactly once.\n\t// Order doesn't matter since we're just tracking ownership in a set.\n\tallPEs := make([]fieldpath.PathElement, 0, maxLength)\n\n\t// Gather all the elements from lhs, indexed by PE, in a list for duplicates.\n\tlValues := fieldpath.MakePathElementMap(lLen)\n\tfor i := 0; i < lLen; i++ {\n\t\tchild := lhs.At(i)\n\t\tpe, err := listItemToPathElement(w.allocator, w.schema, t, child)\n\t\tif err != nil {\n\t\t\terrs = append(errs, errorf(\"element %v: %v\", i, err.Error())...)\n\t\t\t// If we can't construct the path element, we can't\n\t\t\t// even report errors deeper in the schema, so bail on\n\t\t\t// this element.\n\t\t\tcontinue\n\t\t}\n\n\t\tif v, found := lValues.Get(pe); found {\n\t\t\tlist := v.([]value.Value)\n\t\t\tlValues.Insert(pe, append(list, child))\n\t\t} else {\n\t\t\tlValues.Insert(pe, []value.Value{child})\n\t\t\tallPEs = append(allPEs, pe)\n\t\t}\n\t}\n\n\t// Gather all the elements from rhs, indexed by PE, in a list for duplicates.\n\trValues := fieldpath.MakePathElementMap(rLen)\n\tfor i := 0; i < rLen; i++ {\n\t\trValue := rhs.At(i)\n\t\tpe, err := listItemToPathElement(w.allocator, w.schema, t, rValue)\n\t\tif err != nil {\n\t\t\terrs = append(errs, errorf(\"element %v: %v\", i, err.Error())...)\n\t\t\t// If we can't construct the path element, we can't\n\t\t\t// even report errors deeper in the schema, so bail on\n\t\t\t// this element.\n\t\t\tcontinue\n\t\t}\n\t\tif v, found := rValues.Get(pe); found {\n\t\t\tlist := v.([]value.Value)\n\t\t\trValues.Insert(pe, append(list, rValue))\n\t\t} else {\n\t\t\trValues.Insert(pe, []value.Value{rValue})\n\t\t\tif _, found := lValues.Get(pe); !found {\n\t\t\t\tallPEs = append(allPEs, pe)\n\t\t\t}\n\t\t}\n\t}\n\n\tfor _, pe := range allPEs {\n\t\tlList := []value.Value(nil)\n\t\tif l, ok := lValues.Get(pe); ok {\n\t\t\tlList = l.([]value.Value)\n\t\t}\n\t\trList := []value.Value(nil)\n\t\tif l, ok := rValues.Get(pe); ok {\n\t\t\trList = l.([]value.Value)\n\t\t}\n\n\t\tswitch {\n\t\tcase len(lList) == 0 && len(rList) == 0:\n\t\t\t// We shouldn't be here anyway.\n\t\t\treturn\n\t\t// Normal use-case:\n\t\t// We have no duplicates for this PE, compare items one-to-one.\n\t\tcase len(lList) <= 1 && len(rList) <= 1:\n\t\t\tlValue := value.Value(nil)\n\t\t\tif len(lList) != 0 {\n\t\t\t\tlValue = lList[0]\n\t\t\t}\n\t\t\trValue := value.Value(nil)\n\t\t\tif len(rList) != 0 {\n\t\t\t\trValue = rList[0]\n\t\t\t}\n\t\t\terrs = append(errs, w.compareListItem(t, pe, lValue, rValue)...)\n\t\t// Duplicates before & after use-case:\n\t\t// Compare the duplicates lists as if they were atomic, mark modified if they changed.\n\t\tcase len(lList) >= 2 && len(rList) >= 2:\n\t\t\tlistEqual := func(lList, rList []value.Value) bool {\n\t\t\t\tif len(lList) != len(rList) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tfor i := range lList {\n\t\t\t\t\tif !value.Equals(lList[i], rList[i]) {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif !listEqual(lList, rList) {\n\t\t\t\tw.comparison.Modified.Insert(append(w.path, pe))\n\t\t\t}\n\t\t// Duplicates before & not anymore use-case:\n\t\t// Rcursively add new non-duplicate items, Remove duplicate marker,\n\t\tcase len(lList) >= 2:\n\t\t\tif len(rList) != 0 {\n\t\t\t\terrs = append(errs, w.compareListItem(t, pe, nil, rList[0])...)\n\t\t\t}\n\t\t\tw.comparison.Removed.Insert(append(w.path, pe))\n\t\t// New duplicates use-case:\n\t\t// Recursively remove old non-duplicate items, add duplicate marker.\n\t\tcase len(rList) >= 2:\n\t\t\tif len(lList) != 0 {\n\t\t\t\terrs = append(errs, w.compareListItem(t, pe, lList[0], nil)...)\n\t\t\t}\n\t\t\tw.comparison.Added.Insert(append(w.path, pe))\n\t\t}\n\t}\n\n\treturn\n}\n\nfunc (w *compareWalker) indexListPathElements(t *schema.List, list value.List) ([]fieldpath.PathElement, fieldpath.PathElementValueMap, ValidationErrors) {\n\tvar errs ValidationErrors\n\tlength := 0\n\tif list != nil {\n\t\tlength = list.Length()\n\t}\n\tobserved := fieldpath.MakePathElementValueMap(length)\n\tpes := make([]fieldpath.PathElement, 0, length)\n\tfor i := 0; i < length; i++ {\n\t\tchild := list.At(i)\n\t\tpe, err := listItemToPathElement(w.allocator, w.schema, t, child)\n\t\tif err != nil {\n\t\t\terrs = append(errs, errorf(\"element %v: %v\", i, err.Error())...)\n\t\t\t// If we can't construct the path element, we can't\n\t\t\t// even report errors deeper in the schema, so bail on\n\t\t\t// this element.\n\t\t\tcontinue\n\t\t}\n\t\t// Ignore repeated occurences of `pe`.\n\t\tif _, found := observed.Get(pe); found {\n\t\t\tcontinue\n\t\t}\n\t\tobserved.Insert(pe, child)\n\t\tpes = append(pes, pe)\n\t}\n\treturn pes, observed, errs\n}\n\nfunc (w *compareWalker) compareListItem(t *schema.List, pe fieldpath.PathElement, lChild, rChild value.Value) ValidationErrors {\n\tw2 := w.prepareDescent(pe, t.ElementType, w.comparison)\n\tw2.lhs = lChild\n\tw2.rhs = rChild\n\terrs := w2.compare(pe.String)\n\tw.finishDescent(w2)\n\treturn errs\n}\n\nfunc (w *compareWalker) derefList(prefix string, v value.Value) (value.List, ValidationErrors) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tl, err := listValue(w.allocator, v)\n\tif err != nil {\n\t\treturn nil, errorf(\"%v: %v\", prefix, err)\n\t}\n\treturn l, nil\n}\n\nfunc (w *compareWalker) doList(t *schema.List) (errs ValidationErrors) {\n\tlhs, _ := w.derefList(\"lhs: \", w.lhs)\n\tif lhs != nil {\n\t\tdefer w.allocator.Free(lhs)\n\t}\n\trhs, _ := w.derefList(\"rhs: \", w.rhs)\n\tif rhs != nil {\n\t\tdefer w.allocator.Free(rhs)\n\t}\n\n\t// If both lhs and rhs are empty/null, treat it as a\n\t// leaf: this helps preserve the empty/null\n\t// distinction.\n\temptyPromoteToLeaf := (lhs == nil || lhs.Length() == 0) && (rhs == nil || rhs.Length() == 0)\n\n\tif t.ElementRelationship == schema.Atomic || emptyPromoteToLeaf {\n\t\tw.doLeaf()\n\t\treturn nil\n\t}\n\n\tif lhs == nil && rhs == nil {\n\t\treturn nil\n\t}\n\n\terrs = w.visitListItems(t, lhs, rhs)\n\n\treturn errs\n}\n\nfunc (w *compareWalker) visitMapItem(t *schema.Map, out map[string]interface{}, key string, lhs, rhs value.Value) (errs ValidationErrors) {\n\tfieldType := t.ElementType\n\tif sf, ok := t.FindField(key); ok {\n\t\tfieldType = sf.Type\n\t}\n\tpe := fieldpath.PathElement{FieldName: &key}\n\tw2 := w.prepareDescent(pe, fieldType, w.comparison)\n\tw2.lhs = lhs\n\tw2.rhs = rhs\n\terrs = append(errs, w2.compare(pe.String)...)\n\tw.finishDescent(w2)\n\treturn errs\n}\n\nfunc (w *compareWalker) visitMapItems(t *schema.Map, lhs, rhs value.Map) (errs ValidationErrors) {\n\tout := map[string]interface{}{}\n\n\tvalue.MapZipUsing(w.allocator, lhs, rhs, value.Unordered, func(key string, lhsValue, rhsValue value.Value) bool {\n\t\terrs = append(errs, w.visitMapItem(t, out, key, lhsValue, rhsValue)...)\n\t\treturn true\n\t})\n\n\treturn errs\n}\n\nfunc (w *compareWalker) doMap(t *schema.Map) (errs ValidationErrors) {\n\tlhs, _ := w.derefMap(\"lhs: \", w.lhs)\n\tif lhs != nil {\n\t\tdefer w.allocator.Free(lhs)\n\t}\n\trhs, _ := w.derefMap(\"rhs: \", w.rhs)\n\tif rhs != nil {\n\t\tdefer w.allocator.Free(rhs)\n\t}\n\t// If both lhs and rhs are empty/null, treat it as a\n\t// leaf: this helps preserve the empty/null\n\t// distinction.\n\temptyPromoteToLeaf := (lhs == nil || lhs.Empty()) && (rhs == nil || rhs.Empty())\n\n\tif t.ElementRelationship == schema.Atomic || emptyPromoteToLeaf {\n\t\tw.doLeaf()\n\t\treturn nil\n\t}\n\n\tif lhs == nil && rhs == nil {\n\t\treturn nil\n\t}\n\n\terrs = append(errs, w.visitMapItems(t, lhs, rhs)...)\n\n\treturn errs\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/typed/doc.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package typed contains logic for operating on values with given schemas.\npackage typed\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/typed/helpers.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage typed\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"strings\"\n\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/schema\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/value\"\n)\n\n// ValidationError reports an error about a particular field\ntype ValidationError struct {\n\tPath         string\n\tErrorMessage string\n}\n\n// Error returns a human readable error message.\nfunc (ve ValidationError) Error() string {\n\tif len(ve.Path) == 0 {\n\t\treturn ve.ErrorMessage\n\t}\n\treturn fmt.Sprintf(\"%s: %v\", ve.Path, ve.ErrorMessage)\n}\n\n// ValidationErrors accumulates multiple validation error messages.\ntype ValidationErrors []ValidationError\n\n// Error returns a human readable error message reporting each error in the\n// list.\nfunc (errs ValidationErrors) Error() string {\n\tif len(errs) == 1 {\n\t\treturn errs[0].Error()\n\t}\n\tmessages := []string{\"errors:\"}\n\tfor _, e := range errs {\n\t\tmessages = append(messages, \"  \"+e.Error())\n\t}\n\treturn strings.Join(messages, \"\\n\")\n}\n\n// Set the given path to all the validation errors.\nfunc (errs ValidationErrors) WithPath(p string) ValidationErrors {\n\tfor i := range errs {\n\t\terrs[i].Path = p\n\t}\n\treturn errs\n}\n\n// WithPrefix prefixes all errors path with the given pathelement. This\n// is useful when unwinding the stack on errors.\nfunc (errs ValidationErrors) WithPrefix(prefix string) ValidationErrors {\n\tfor i := range errs {\n\t\terrs[i].Path = prefix + errs[i].Path\n\t}\n\treturn errs\n}\n\n// WithLazyPrefix prefixes all errors path with the given pathelement.\n// This is useful when unwinding the stack on errors. Prefix is\n// computed lazily only if there is an error.\nfunc (errs ValidationErrors) WithLazyPrefix(fn func() string) ValidationErrors {\n\tif len(errs) == 0 {\n\t\treturn errs\n\t}\n\tprefix := \"\"\n\tif fn != nil {\n\t\tprefix = fn()\n\t}\n\tfor i := range errs {\n\t\terrs[i].Path = prefix + errs[i].Path\n\t}\n\treturn errs\n}\n\nfunc errorf(format string, args ...interface{}) ValidationErrors {\n\treturn ValidationErrors{{\n\t\tErrorMessage: fmt.Sprintf(format, args...),\n\t}}\n}\n\ntype atomHandler interface {\n\tdoScalar(*schema.Scalar) ValidationErrors\n\tdoList(*schema.List) ValidationErrors\n\tdoMap(*schema.Map) ValidationErrors\n}\n\nfunc resolveSchema(s *schema.Schema, tr schema.TypeRef, v value.Value, ah atomHandler) ValidationErrors {\n\ta, ok := s.Resolve(tr)\n\tif !ok {\n\t\ttypeName := \"inlined type\"\n\t\tif tr.NamedType != nil {\n\t\t\ttypeName = *tr.NamedType\n\t\t}\n\t\treturn errorf(\"schema error: no type found matching: %v\", typeName)\n\t}\n\n\ta = deduceAtom(a, v)\n\treturn handleAtom(a, tr, ah)\n}\n\n// deduceAtom determines which of the possible types in atom 'atom' applies to value 'val'.\n// If val is of a type allowed by atom, return a copy of atom with all other types set to nil.\n// if val is nil, or is not of a type allowed by atom, just return the original atom,\n// and validation will fail at a later stage. (with a more useful error)\nfunc deduceAtom(atom schema.Atom, val value.Value) schema.Atom {\n\tswitch {\n\tcase val == nil:\n\tcase val.IsFloat(), val.IsInt(), val.IsString(), val.IsBool():\n\t\tif atom.Scalar != nil {\n\t\t\treturn schema.Atom{Scalar: atom.Scalar}\n\t\t}\n\tcase val.IsList():\n\t\tif atom.List != nil {\n\t\t\treturn schema.Atom{List: atom.List}\n\t\t}\n\tcase val.IsMap():\n\t\tif atom.Map != nil {\n\t\t\treturn schema.Atom{Map: atom.Map}\n\t\t}\n\t}\n\treturn atom\n}\n\nfunc handleAtom(a schema.Atom, tr schema.TypeRef, ah atomHandler) ValidationErrors {\n\tswitch {\n\tcase a.Map != nil:\n\t\treturn ah.doMap(a.Map)\n\tcase a.Scalar != nil:\n\t\treturn ah.doScalar(a.Scalar)\n\tcase a.List != nil:\n\t\treturn ah.doList(a.List)\n\t}\n\n\tname := \"inlined\"\n\tif tr.NamedType != nil {\n\t\tname = \"named type: \" + *tr.NamedType\n\t}\n\n\treturn errorf(\"schema error: invalid atom: %v\", name)\n}\n\n// Returns the list, or an error. Reminder: nil is a valid list and might be returned.\nfunc listValue(a value.Allocator, val value.Value) (value.List, error) {\n\tif val.IsNull() {\n\t\t// Null is a valid list.\n\t\treturn nil, nil\n\t}\n\tif !val.IsList() {\n\t\treturn nil, fmt.Errorf(\"expected list, got %v\", val)\n\t}\n\treturn val.AsListUsing(a), nil\n}\n\n// Returns the map, or an error. Reminder: nil is a valid map and might be returned.\nfunc mapValue(a value.Allocator, val value.Value) (value.Map, error) {\n\tif val == nil {\n\t\treturn nil, fmt.Errorf(\"expected map, got nil\")\n\t}\n\tif val.IsNull() {\n\t\t// Null is a valid map.\n\t\treturn nil, nil\n\t}\n\tif !val.IsMap() {\n\t\treturn nil, fmt.Errorf(\"expected map, got %v\", val)\n\t}\n\treturn val.AsMapUsing(a), nil\n}\n\nfunc getAssociativeKeyDefault(s *schema.Schema, list *schema.List, fieldName string) (interface{}, error) {\n\tatom, ok := s.Resolve(list.ElementType)\n\tif !ok {\n\t\treturn nil, errors.New(\"invalid elementType for list\")\n\t}\n\tif atom.Map == nil {\n\t\treturn nil, errors.New(\"associative list may not have non-map types\")\n\t}\n\t// If the field is not found, we can assume there is no default.\n\tfield, _ := atom.Map.FindField(fieldName)\n\treturn field.Default, nil\n}\n\nfunc keyedAssociativeListItemToPathElement(a value.Allocator, s *schema.Schema, list *schema.List, child value.Value) (fieldpath.PathElement, error) {\n\tpe := fieldpath.PathElement{}\n\tif child.IsNull() {\n\t\t// null entries are illegal.\n\t\treturn pe, errors.New(\"associative list with keys may not have a null element\")\n\t}\n\tif !child.IsMap() {\n\t\treturn pe, errors.New(\"associative list with keys may not have non-map elements\")\n\t}\n\tkeyMap := value.FieldList{}\n\tm := child.AsMapUsing(a)\n\tdefer a.Free(m)\n\tfor _, fieldName := range list.Keys {\n\t\tif val, ok := m.Get(fieldName); ok {\n\t\t\tkeyMap = append(keyMap, value.Field{Name: fieldName, Value: val})\n\t\t} else if def, err := getAssociativeKeyDefault(s, list, fieldName); err != nil {\n\t\t\treturn pe, fmt.Errorf(\"couldn't find default value for %v: %v\", fieldName, err)\n\t\t} else if def != nil {\n\t\t\tkeyMap = append(keyMap, value.Field{Name: fieldName, Value: value.NewValueInterface(def)})\n\t\t} else {\n\t\t\treturn pe, fmt.Errorf(\"associative list with keys has an element that omits key field %q (and doesn't have default value)\", fieldName)\n\t\t}\n\t}\n\tkeyMap.Sort()\n\tpe.Key = &keyMap\n\treturn pe, nil\n}\n\nfunc setItemToPathElement(child value.Value) (fieldpath.PathElement, error) {\n\tpe := fieldpath.PathElement{}\n\tswitch {\n\tcase child.IsMap():\n\t\t// TODO: atomic maps should be acceptable.\n\t\treturn pe, errors.New(\"associative list without keys has an element that's a map type\")\n\tcase child.IsList():\n\t\t// Should we support a set of lists? For the moment\n\t\t// let's say we don't.\n\t\t// TODO: atomic lists should be acceptable.\n\t\treturn pe, errors.New(\"not supported: associative list with lists as elements\")\n\tcase child.IsNull():\n\t\treturn pe, errors.New(\"associative list without keys has an element that's an explicit null\")\n\tdefault:\n\t\t// We are a set type.\n\t\tpe.Value = &child\n\t\treturn pe, nil\n\t}\n}\n\nfunc listItemToPathElement(a value.Allocator, s *schema.Schema, list *schema.List, child value.Value) (fieldpath.PathElement, error) {\n\tif list.ElementRelationship != schema.Associative {\n\t\treturn fieldpath.PathElement{}, errors.New(\"invalid indexing of non-associative list\")\n\t}\n\n\tif len(list.Keys) > 0 {\n\t\treturn keyedAssociativeListItemToPathElement(a, s, list, child)\n\t}\n\n\t// If there's no keys, then we must be a set of primitives.\n\treturn setItemToPathElement(child)\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/typed/merge.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage typed\n\nimport (\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/schema\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/value\"\n)\n\ntype mergingWalker struct {\n\tlhs     value.Value\n\trhs     value.Value\n\tschema  *schema.Schema\n\ttypeRef schema.TypeRef\n\n\t// Current path that we are merging\n\tpath fieldpath.Path\n\n\t// How to merge. Called after schema validation for all leaf fields.\n\trule mergeRule\n\n\t// If set, called after non-leaf items have been merged. (`out` is\n\t// probably already set.)\n\tpostItemHook mergeRule\n\n\t// output of the merge operation (nil if none)\n\tout *interface{}\n\n\t// internal housekeeping--don't set when constructing.\n\tinLeaf bool // Set to true if we're in a \"big leaf\"--atomic map/list\n\n\t// Allocate only as many walkers as needed for the depth by storing them here.\n\tspareWalkers *[]*mergingWalker\n\n\tallocator value.Allocator\n}\n\n// merge rules examine w.lhs and w.rhs (up to one of which may be nil) and\n// optionally set w.out. If lhs and rhs are both set, they will be of\n// comparable type.\ntype mergeRule func(w *mergingWalker)\n\nvar (\n\truleKeepRHS = mergeRule(func(w *mergingWalker) {\n\t\tif w.rhs != nil {\n\t\t\tv := w.rhs.Unstructured()\n\t\t\tw.out = &v\n\t\t} else if w.lhs != nil {\n\t\t\tv := w.lhs.Unstructured()\n\t\t\tw.out = &v\n\t\t}\n\t})\n)\n\n// merge sets w.out.\nfunc (w *mergingWalker) merge(prefixFn func() string) (errs ValidationErrors) {\n\tif w.lhs == nil && w.rhs == nil {\n\t\t// check this condidition here instead of everywhere below.\n\t\treturn errorf(\"at least one of lhs and rhs must be provided\")\n\t}\n\ta, ok := w.schema.Resolve(w.typeRef)\n\tif !ok {\n\t\treturn errorf(\"schema error: no type found matching: %v\", *w.typeRef.NamedType)\n\t}\n\n\talhs := deduceAtom(a, w.lhs)\n\tarhs := deduceAtom(a, w.rhs)\n\n\t// deduceAtom does not fix the type for nil values\n\t// nil is a wildcard and will accept whatever form the other operand takes\n\tif w.rhs == nil {\n\t\terrs = append(errs, handleAtom(alhs, w.typeRef, w)...)\n\t} else if w.lhs == nil || alhs.Equals(&arhs) {\n\t\terrs = append(errs, handleAtom(arhs, w.typeRef, w)...)\n\t} else {\n\t\tw2 := *w\n\t\terrs = append(errs, handleAtom(alhs, w.typeRef, &w2)...)\n\t\terrs = append(errs, handleAtom(arhs, w.typeRef, w)...)\n\t}\n\n\tif !w.inLeaf && w.postItemHook != nil {\n\t\tw.postItemHook(w)\n\t}\n\treturn errs.WithLazyPrefix(prefixFn)\n}\n\n// doLeaf should be called on leaves before descending into children, if there\n// will be a descent. It modifies w.inLeaf.\nfunc (w *mergingWalker) doLeaf() {\n\tif w.inLeaf {\n\t\t// We're in a \"big leaf\", an atomic map or list. Ignore\n\t\t// subsequent leaves.\n\t\treturn\n\t}\n\tw.inLeaf = true\n\n\t// We don't recurse into leaf fields for merging.\n\tw.rule(w)\n}\n\nfunc (w *mergingWalker) doScalar(t *schema.Scalar) ValidationErrors {\n\t// Make sure at least one side is a valid scalar.\n\tlerrs := validateScalar(t, w.lhs, \"lhs: \")\n\trerrs := validateScalar(t, w.rhs, \"rhs: \")\n\tif len(lerrs) > 0 && len(rerrs) > 0 {\n\t\treturn append(lerrs, rerrs...)\n\t}\n\n\t// All scalars are leaf fields.\n\tw.doLeaf()\n\n\treturn nil\n}\n\nfunc (w *mergingWalker) prepareDescent(pe fieldpath.PathElement, tr schema.TypeRef) *mergingWalker {\n\tif w.spareWalkers == nil {\n\t\t// first descent.\n\t\tw.spareWalkers = &[]*mergingWalker{}\n\t}\n\tvar w2 *mergingWalker\n\tif n := len(*w.spareWalkers); n > 0 {\n\t\tw2, *w.spareWalkers = (*w.spareWalkers)[n-1], (*w.spareWalkers)[:n-1]\n\t} else {\n\t\tw2 = &mergingWalker{}\n\t}\n\t*w2 = *w\n\tw2.typeRef = tr\n\tw2.path = append(w2.path, pe)\n\tw2.lhs = nil\n\tw2.rhs = nil\n\tw2.out = nil\n\treturn w2\n}\n\nfunc (w *mergingWalker) finishDescent(w2 *mergingWalker) {\n\t// if the descent caused a realloc, ensure that we reuse the buffer\n\t// for the next sibling.\n\tw.path = w2.path[:len(w2.path)-1]\n\t*w.spareWalkers = append(*w.spareWalkers, w2)\n}\n\nfunc (w *mergingWalker) derefMap(prefix string, v value.Value) (value.Map, ValidationErrors) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tm, err := mapValue(w.allocator, v)\n\tif err != nil {\n\t\treturn nil, errorf(\"%v: %v\", prefix, err)\n\t}\n\treturn m, nil\n}\n\nfunc (w *mergingWalker) visitListItems(t *schema.List, lhs, rhs value.List) (errs ValidationErrors) {\n\trLen := 0\n\tif rhs != nil {\n\t\trLen = rhs.Length()\n\t}\n\tlLen := 0\n\tif lhs != nil {\n\t\tlLen = lhs.Length()\n\t}\n\toutLen := lLen\n\tif outLen < rLen {\n\t\toutLen = rLen\n\t}\n\tout := make([]interface{}, 0, outLen)\n\n\trhsPEs, observedRHS, rhsErrs := w.indexListPathElements(t, rhs, false)\n\terrs = append(errs, rhsErrs...)\n\tlhsPEs, observedLHS, lhsErrs := w.indexListPathElements(t, lhs, true)\n\terrs = append(errs, lhsErrs...)\n\n\tif len(errs) != 0 {\n\t\treturn errs\n\t}\n\n\tsharedOrder := make([]*fieldpath.PathElement, 0, rLen)\n\tfor i := range rhsPEs {\n\t\tpe := &rhsPEs[i]\n\t\tif _, ok := observedLHS.Get(*pe); ok {\n\t\t\tsharedOrder = append(sharedOrder, pe)\n\t\t}\n\t}\n\n\tvar nextShared *fieldpath.PathElement\n\tif len(sharedOrder) > 0 {\n\t\tnextShared = sharedOrder[0]\n\t\tsharedOrder = sharedOrder[1:]\n\t}\n\n\tmergedRHS := fieldpath.MakePathElementMap(len(rhsPEs))\n\tlLen, rLen = len(lhsPEs), len(rhsPEs)\n\tfor lI, rI := 0, 0; lI < lLen || rI < rLen; {\n\t\tif lI < lLen && rI < rLen {\n\t\t\tpe := lhsPEs[lI]\n\t\t\tif pe.Equals(rhsPEs[rI]) {\n\t\t\t\t// merge LHS & RHS items\n\t\t\t\tmergedRHS.Insert(pe, struct{}{})\n\t\t\t\tlChild, _ := observedLHS.Get(pe) // may be nil if the PE is duplicaated.\n\t\t\t\trChild, _ := observedRHS.Get(pe)\n\t\t\t\tmergeOut, errs := w.mergeListItem(t, pe, lChild, rChild)\n\t\t\t\terrs = append(errs, errs...)\n\t\t\t\tif mergeOut != nil {\n\t\t\t\t\tout = append(out, *mergeOut)\n\t\t\t\t}\n\t\t\t\tlI++\n\t\t\t\trI++\n\n\t\t\t\tnextShared = nil\n\t\t\t\tif len(sharedOrder) > 0 {\n\t\t\t\t\tnextShared = sharedOrder[0]\n\t\t\t\t\tsharedOrder = sharedOrder[1:]\n\t\t\t\t}\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif _, ok := observedRHS.Get(pe); ok && nextShared != nil && !nextShared.Equals(lhsPEs[lI]) {\n\t\t\t\t// shared item, but not the one we want in this round\n\t\t\t\tlI++\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\t\tif lI < lLen {\n\t\t\tpe := lhsPEs[lI]\n\t\t\tif _, ok := observedRHS.Get(pe); !ok {\n\t\t\t\t// take LHS item using At to make sure we get the right item (observed may not contain the right item).\n\t\t\t\tlChild := lhs.AtUsing(w.allocator, lI)\n\t\t\t\tmergeOut, errs := w.mergeListItem(t, pe, lChild, nil)\n\t\t\t\terrs = append(errs, errs...)\n\t\t\t\tif mergeOut != nil {\n\t\t\t\t\tout = append(out, *mergeOut)\n\t\t\t\t}\n\t\t\t\tlI++\n\t\t\t\tcontinue\n\t\t\t} else if _, ok := mergedRHS.Get(pe); ok {\n\t\t\t\t// we've already merged it with RHS, we don't want to duplicate it, skip it.\n\t\t\t\tlI++\n\t\t\t}\n\t\t}\n\t\tif rI < rLen {\n\t\t\t// Take the RHS item, merge with matching LHS item if possible\n\t\t\tpe := rhsPEs[rI]\n\t\t\tmergedRHS.Insert(pe, struct{}{})\n\t\t\tlChild, _ := observedLHS.Get(pe) // may be nil if absent or duplicaated.\n\t\t\trChild, _ := observedRHS.Get(pe)\n\t\t\tmergeOut, errs := w.mergeListItem(t, pe, lChild, rChild)\n\t\t\terrs = append(errs, errs...)\n\t\t\tif mergeOut != nil {\n\t\t\t\tout = append(out, *mergeOut)\n\t\t\t}\n\t\t\trI++\n\t\t\t// Advance nextShared, if we are merging nextShared.\n\t\t\tif nextShared != nil && nextShared.Equals(pe) {\n\t\t\t\tnextShared = nil\n\t\t\t\tif len(sharedOrder) > 0 {\n\t\t\t\t\tnextShared = sharedOrder[0]\n\t\t\t\t\tsharedOrder = sharedOrder[1:]\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif len(out) > 0 {\n\t\ti := interface{}(out)\n\t\tw.out = &i\n\t}\n\n\treturn errs\n}\n\nfunc (w *mergingWalker) indexListPathElements(t *schema.List, list value.List, allowDuplicates bool) ([]fieldpath.PathElement, fieldpath.PathElementValueMap, ValidationErrors) {\n\tvar errs ValidationErrors\n\tlength := 0\n\tif list != nil {\n\t\tlength = list.Length()\n\t}\n\tobserved := fieldpath.MakePathElementValueMap(length)\n\tpes := make([]fieldpath.PathElement, 0, length)\n\tfor i := 0; i < length; i++ {\n\t\tchild := list.At(i)\n\t\tpe, err := listItemToPathElement(w.allocator, w.schema, t, child)\n\t\tif err != nil {\n\t\t\terrs = append(errs, errorf(\"element %v: %v\", i, err.Error())...)\n\t\t\t// If we can't construct the path element, we can't\n\t\t\t// even report errors deeper in the schema, so bail on\n\t\t\t// this element.\n\t\t\tcontinue\n\t\t}\n\t\tif _, found := observed.Get(pe); found && !allowDuplicates {\n\t\t\terrs = append(errs, errorf(\"duplicate entries for key %v\", pe.String())...)\n\t\t\tcontinue\n\t\t} else if !found {\n\t\t\tobserved.Insert(pe, child)\n\t\t} else {\n\t\t\t// Duplicated items are not merged with the new value, make them nil.\n\t\t\tobserved.Insert(pe, value.NewValueInterface(nil))\n\t\t}\n\t\tpes = append(pes, pe)\n\t}\n\treturn pes, observed, errs\n}\n\nfunc (w *mergingWalker) mergeListItem(t *schema.List, pe fieldpath.PathElement, lChild, rChild value.Value) (out *interface{}, errs ValidationErrors) {\n\tw2 := w.prepareDescent(pe, t.ElementType)\n\tw2.lhs = lChild\n\tw2.rhs = rChild\n\terrs = append(errs, w2.merge(pe.String)...)\n\tif w2.out != nil {\n\t\tout = w2.out\n\t}\n\tw.finishDescent(w2)\n\treturn\n}\n\nfunc (w *mergingWalker) derefList(prefix string, v value.Value) (value.List, ValidationErrors) {\n\tif v == nil {\n\t\treturn nil, nil\n\t}\n\tl, err := listValue(w.allocator, v)\n\tif err != nil {\n\t\treturn nil, errorf(\"%v: %v\", prefix, err)\n\t}\n\treturn l, nil\n}\n\nfunc (w *mergingWalker) doList(t *schema.List) (errs ValidationErrors) {\n\tlhs, _ := w.derefList(\"lhs: \", w.lhs)\n\tif lhs != nil {\n\t\tdefer w.allocator.Free(lhs)\n\t}\n\trhs, _ := w.derefList(\"rhs: \", w.rhs)\n\tif rhs != nil {\n\t\tdefer w.allocator.Free(rhs)\n\t}\n\n\t// If both lhs and rhs are empty/null, treat it as a\n\t// leaf: this helps preserve the empty/null\n\t// distinction.\n\temptyPromoteToLeaf := (lhs == nil || lhs.Length() == 0) && (rhs == nil || rhs.Length() == 0)\n\n\tif t.ElementRelationship == schema.Atomic || emptyPromoteToLeaf {\n\t\tw.doLeaf()\n\t\treturn nil\n\t}\n\n\tif lhs == nil && rhs == nil {\n\t\treturn nil\n\t}\n\n\terrs = w.visitListItems(t, lhs, rhs)\n\n\treturn errs\n}\n\nfunc (w *mergingWalker) visitMapItem(t *schema.Map, out map[string]interface{}, key string, lhs, rhs value.Value) (errs ValidationErrors) {\n\tfieldType := t.ElementType\n\tif sf, ok := t.FindField(key); ok {\n\t\tfieldType = sf.Type\n\t}\n\tpe := fieldpath.PathElement{FieldName: &key}\n\tw2 := w.prepareDescent(pe, fieldType)\n\tw2.lhs = lhs\n\tw2.rhs = rhs\n\terrs = append(errs, w2.merge(pe.String)...)\n\tif w2.out != nil {\n\t\tout[key] = *w2.out\n\t}\n\tw.finishDescent(w2)\n\treturn errs\n}\n\nfunc (w *mergingWalker) visitMapItems(t *schema.Map, lhs, rhs value.Map) (errs ValidationErrors) {\n\tout := map[string]interface{}{}\n\n\tvalue.MapZipUsing(w.allocator, lhs, rhs, value.Unordered, func(key string, lhsValue, rhsValue value.Value) bool {\n\t\terrs = append(errs, w.visitMapItem(t, out, key, lhsValue, rhsValue)...)\n\t\treturn true\n\t})\n\tif len(out) > 0 {\n\t\ti := interface{}(out)\n\t\tw.out = &i\n\t}\n\n\treturn errs\n}\n\nfunc (w *mergingWalker) doMap(t *schema.Map) (errs ValidationErrors) {\n\tlhs, _ := w.derefMap(\"lhs: \", w.lhs)\n\tif lhs != nil {\n\t\tdefer w.allocator.Free(lhs)\n\t}\n\trhs, _ := w.derefMap(\"rhs: \", w.rhs)\n\tif rhs != nil {\n\t\tdefer w.allocator.Free(rhs)\n\t}\n\t// If both lhs and rhs are empty/null, treat it as a\n\t// leaf: this helps preserve the empty/null\n\t// distinction.\n\temptyPromoteToLeaf := (lhs == nil || lhs.Empty()) && (rhs == nil || rhs.Empty())\n\n\tif t.ElementRelationship == schema.Atomic || emptyPromoteToLeaf {\n\t\tw.doLeaf()\n\t\treturn nil\n\t}\n\n\tif lhs == nil && rhs == nil {\n\t\treturn nil\n\t}\n\n\terrs = append(errs, w.visitMapItems(t, lhs, rhs)...)\n\n\treturn errs\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/typed/parser.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage typed\n\nimport (\n\t\"fmt\"\n\n\t\"sigs.k8s.io/structured-merge-diff/v4/schema\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/value\"\n\tyaml \"sigs.k8s.io/yaml/goyaml.v2\"\n)\n\n// YAMLObject is an object encoded in YAML.\ntype YAMLObject string\n\n// Parser implements YAMLParser and allows introspecting the schema.\ntype Parser struct {\n\tSchema schema.Schema\n}\n\n// create builds an unvalidated parser.\nfunc create(s YAMLObject) (*Parser, error) {\n\tp := Parser{}\n\terr := yaml.Unmarshal([]byte(s), &p.Schema)\n\treturn &p, err\n}\n\nfunc createOrDie(schema YAMLObject) *Parser {\n\tp, err := create(schema)\n\tif err != nil {\n\t\tpanic(fmt.Errorf(\"failed to create parser: %v\", err))\n\t}\n\treturn p\n}\n\nvar ssParser = createOrDie(YAMLObject(schema.SchemaSchemaYAML))\n\n// NewParser will build a YAMLParser from a schema. The schema is validated.\nfunc NewParser(schema YAMLObject) (*Parser, error) {\n\t_, err := ssParser.Type(\"schema\").FromYAML(schema)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"unable to validate schema: %v\", err)\n\t}\n\tp, err := create(schema)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn p, nil\n}\n\n// TypeNames returns a list of types this parser understands.\nfunc (p *Parser) TypeNames() (names []string) {\n\tfor _, td := range p.Schema.Types {\n\t\tnames = append(names, td.Name)\n\t}\n\treturn names\n}\n\n// Type returns a helper which can produce objects of the given type. Any\n// errors are deferred until a further function is called.\nfunc (p *Parser) Type(name string) ParseableType {\n\treturn ParseableType{\n\t\tSchema:  &p.Schema,\n\t\tTypeRef: schema.TypeRef{NamedType: &name},\n\t}\n}\n\n// ParseableType allows for easy production of typed objects.\ntype ParseableType struct {\n\tTypeRef schema.TypeRef\n\tSchema  *schema.Schema\n}\n\n// IsValid return true if p's schema and typename are valid.\nfunc (p ParseableType) IsValid() bool {\n\t_, ok := p.Schema.Resolve(p.TypeRef)\n\treturn ok\n}\n\n// FromYAML parses a yaml string into an object with the current schema\n// and the type \"typename\" or an error if validation fails.\nfunc (p ParseableType) FromYAML(object YAMLObject, opts ...ValidationOptions) (*TypedValue, error) {\n\tvar v interface{}\n\terr := yaml.Unmarshal([]byte(object), &v)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn AsTyped(value.NewValueInterface(v), p.Schema, p.TypeRef, opts...)\n}\n\n// FromUnstructured converts a go \"interface{}\" type, typically an\n// unstructured object in Kubernetes world, to a TypedValue. It returns an\n// error if the resulting object fails schema validation.\n// The provided interface{} must be one of: map[string]interface{},\n// map[interface{}]interface{}, []interface{}, int types, float types,\n// string or boolean. Nested interface{} must also be one of these types.\nfunc (p ParseableType) FromUnstructured(in interface{}, opts ...ValidationOptions) (*TypedValue, error) {\n\treturn AsTyped(value.NewValueInterface(in), p.Schema, p.TypeRef, opts...)\n}\n\n// FromStructured converts a go \"interface{}\" type, typically an structured object in\n// Kubernetes, to a TypedValue. It will return an error if the resulting object fails\n// schema validation. The provided \"interface{}\" value must be a pointer so that the\n// value can be modified via reflection. The provided \"interface{}\" may contain structs\n// and types that are converted to Values by the jsonMarshaler interface.\nfunc (p ParseableType) FromStructured(in interface{}, opts ...ValidationOptions) (*TypedValue, error) {\n\tv, err := value.NewValueReflect(in)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error creating struct value reflector: %v\", err)\n\t}\n\treturn AsTyped(v, p.Schema, p.TypeRef, opts...)\n}\n\n// DeducedParseableType is a ParseableType that deduces the type from\n// the content of the object.\nvar DeducedParseableType ParseableType = createOrDie(YAMLObject(`types:\n- name: __untyped_atomic_\n  scalar: untyped\n  list:\n    elementType:\n      namedType: __untyped_atomic_\n    elementRelationship: atomic\n  map:\n    elementType:\n      namedType: __untyped_atomic_\n    elementRelationship: atomic\n- name: __untyped_deduced_\n  scalar: untyped\n  list:\n    elementType:\n      namedType: __untyped_atomic_\n    elementRelationship: atomic\n  map:\n    elementType:\n      namedType: __untyped_deduced_\n    elementRelationship: separable\n`)).Type(\"__untyped_deduced_\")\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/typed/reconcile_schema.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage typed\n\nimport (\n\t\"fmt\"\n\t\"sync\"\n\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/schema\"\n)\n\nvar fmPool = sync.Pool{\n\tNew: func() interface{} { return &reconcileWithSchemaWalker{} },\n}\n\nfunc (v *reconcileWithSchemaWalker) finished() {\n\tv.fieldSet = nil\n\tv.schema = nil\n\tv.value = nil\n\tv.typeRef = schema.TypeRef{}\n\tv.path = nil\n\tv.toRemove = nil\n\tv.toAdd = nil\n\tfmPool.Put(v)\n}\n\ntype reconcileWithSchemaWalker struct {\n\tvalue  *TypedValue    // root of the live object\n\tschema *schema.Schema // root of the live schema\n\n\t// state of node being visited by walker\n\tfieldSet *fieldpath.Set\n\ttypeRef  schema.TypeRef\n\tpath     fieldpath.Path\n\tisAtomic bool\n\n\t// the accumulated diff to perform to apply reconciliation\n\ttoRemove *fieldpath.Set // paths to remove recursively\n\ttoAdd    *fieldpath.Set // paths to add after any removals\n\n\t// Allocate only as many walkers as needed for the depth by storing them here.\n\tspareWalkers *[]*reconcileWithSchemaWalker\n}\n\nfunc (v *reconcileWithSchemaWalker) prepareDescent(pe fieldpath.PathElement, tr schema.TypeRef) *reconcileWithSchemaWalker {\n\tif v.spareWalkers == nil {\n\t\t// first descent.\n\t\tv.spareWalkers = &[]*reconcileWithSchemaWalker{}\n\t}\n\tvar v2 *reconcileWithSchemaWalker\n\tif n := len(*v.spareWalkers); n > 0 {\n\t\tv2, *v.spareWalkers = (*v.spareWalkers)[n-1], (*v.spareWalkers)[:n-1]\n\t} else {\n\t\tv2 = &reconcileWithSchemaWalker{}\n\t}\n\t*v2 = *v\n\tv2.typeRef = tr\n\tv2.path = append(v.path, pe)\n\tv2.value = v.value\n\treturn v2\n}\n\nfunc (v *reconcileWithSchemaWalker) finishDescent(v2 *reconcileWithSchemaWalker) {\n\tv2.fieldSet = nil\n\tv2.schema = nil\n\tv2.value = nil\n\tv2.typeRef = schema.TypeRef{}\n\tif cap(v2.path) < 20 { // recycle slices that do not have unexpectedly high capacity\n\t\tv2.path = v2.path[:0]\n\t} else {\n\t\tv2.path = nil\n\t}\n\n\t// merge any accumulated changes into parent walker\n\tif v2.toRemove != nil {\n\t\tif v.toRemove == nil {\n\t\t\tv.toRemove = v2.toRemove\n\t\t} else {\n\t\t\tv.toRemove = v.toRemove.Union(v2.toRemove)\n\t\t}\n\t}\n\tif v2.toAdd != nil {\n\t\tif v.toAdd == nil {\n\t\t\tv.toAdd = v2.toAdd\n\t\t} else {\n\t\t\tv.toAdd = v.toAdd.Union(v2.toAdd)\n\t\t}\n\t}\n\tv2.toRemove = nil\n\tv2.toAdd = nil\n\n\t// if the descent caused a realloc, ensure that we reuse the buffer\n\t// for the next sibling.\n\t*v.spareWalkers = append(*v.spareWalkers, v2)\n}\n\n// ReconcileFieldSetWithSchema reconciles the a field set with any changes to the\n// object's schema since the field set was written. Returns the reconciled field set, or nil of\n// no changes were made to the field set.\n//\n// Supports:\n// - changing types from atomic to granular\n// - changing types from granular to atomic\nfunc ReconcileFieldSetWithSchema(fieldset *fieldpath.Set, tv *TypedValue) (*fieldpath.Set, error) {\n\tv := fmPool.Get().(*reconcileWithSchemaWalker)\n\tv.fieldSet = fieldset\n\tv.value = tv\n\n\tv.schema = tv.schema\n\tv.typeRef = tv.typeRef\n\n\tdefer v.finished()\n\terrs := v.reconcile()\n\n\tif len(errs) > 0 {\n\t\treturn nil, fmt.Errorf(\"errors reconciling field set with schema: %s\", errs.Error())\n\t}\n\n\t// If there are any accumulated changes, apply them\n\tif v.toAdd != nil || v.toRemove != nil {\n\t\tout := v.fieldSet\n\t\tif v.toRemove != nil {\n\t\t\tout = out.RecursiveDifference(v.toRemove)\n\t\t}\n\t\tif v.toAdd != nil {\n\t\t\tout = out.Union(v.toAdd)\n\t\t}\n\t\treturn out, nil\n\t}\n\treturn nil, nil\n}\n\nfunc (v *reconcileWithSchemaWalker) reconcile() (errs ValidationErrors) {\n\ta, ok := v.schema.Resolve(v.typeRef)\n\tif !ok {\n\t\terrs = append(errs, errorf(\"could not resolve %v\", v.typeRef)...)\n\t\treturn\n\t}\n\treturn handleAtom(a, v.typeRef, v)\n}\n\nfunc (v *reconcileWithSchemaWalker) doScalar(_ *schema.Scalar) (errs ValidationErrors) {\n\treturn errs\n}\n\nfunc (v *reconcileWithSchemaWalker) visitListItems(t *schema.List, element *fieldpath.Set) (errs ValidationErrors) {\n\thandleElement := func(pe fieldpath.PathElement, isMember bool) {\n\t\tvar hasChildren bool\n\t\tv2 := v.prepareDescent(pe, t.ElementType)\n\t\tv2.fieldSet, hasChildren = element.Children.Get(pe)\n\t\tv2.isAtomic = isMember && !hasChildren\n\t\terrs = append(errs, v2.reconcile()...)\n\t\tv.finishDescent(v2)\n\t}\n\telement.Children.Iterate(func(pe fieldpath.PathElement) {\n\t\tif element.Members.Has(pe) {\n\t\t\treturn\n\t\t}\n\t\thandleElement(pe, false)\n\t})\n\telement.Members.Iterate(func(pe fieldpath.PathElement) {\n\t\thandleElement(pe, true)\n\t})\n\treturn errs\n}\n\nfunc (v *reconcileWithSchemaWalker) doList(t *schema.List) (errs ValidationErrors) {\n\t// reconcile lists changed from granular to atomic.\n\t// Note that migrations from atomic to granular are not recommended and will\n\t// be treated as if they were always granular.\n\t//\n\t// In this case, the manager that owned the previously atomic field (and all subfields),\n\t// will now own just the top-level field and none of the subfields.\n\tif !v.isAtomic && t.ElementRelationship == schema.Atomic {\n\t\tv.toRemove = fieldpath.NewSet(v.path) // remove all root and all children fields\n\t\tv.toAdd = fieldpath.NewSet(v.path)    // add the root of the atomic\n\t\treturn errs\n\t}\n\tif v.fieldSet != nil {\n\t\terrs = v.visitListItems(t, v.fieldSet)\n\t}\n\treturn errs\n}\n\nfunc (v *reconcileWithSchemaWalker) visitMapItems(t *schema.Map, element *fieldpath.Set) (errs ValidationErrors) {\n\thandleElement := func(pe fieldpath.PathElement, isMember bool) {\n\t\tvar hasChildren bool\n\t\tif tr, ok := typeRefAtPath(t, pe); ok { // ignore fields not in the schema\n\t\t\tv2 := v.prepareDescent(pe, tr)\n\t\t\tv2.fieldSet, hasChildren = element.Children.Get(pe)\n\t\t\tv2.isAtomic = isMember && !hasChildren\n\t\t\terrs = append(errs, v2.reconcile()...)\n\t\t\tv.finishDescent(v2)\n\t\t}\n\t}\n\telement.Children.Iterate(func(pe fieldpath.PathElement) {\n\t\tif element.Members.Has(pe) {\n\t\t\treturn\n\t\t}\n\t\thandleElement(pe, false)\n\t})\n\telement.Members.Iterate(func(pe fieldpath.PathElement) {\n\t\thandleElement(pe, true)\n\t})\n\n\treturn errs\n}\n\nfunc (v *reconcileWithSchemaWalker) doMap(t *schema.Map) (errs ValidationErrors) {\n\t// We don't currently reconcile deduced types (unstructured CRDs) or maps that contain only unknown\n\t// fields since deduced types do not yet support atomic or granular tags.\n\tif isUntypedDeducedMap(t) {\n\t\treturn errs\n\t}\n\n\t// reconcile maps and structs changed from granular to atomic.\n\t// Note that migrations from atomic to granular are not recommended and will\n\t// be treated as if they were always granular.\n\t//\n\t// In this case the manager that owned the previously atomic field (and all subfields),\n\t// will now own just the top-level field and none of the subfields.\n\tif !v.isAtomic && t.ElementRelationship == schema.Atomic {\n\t\tif v.fieldSet != nil && v.fieldSet.Size() > 0 {\n\t\t\tv.toRemove = fieldpath.NewSet(v.path) // remove all root and all children fields\n\t\t\tv.toAdd = fieldpath.NewSet(v.path)    // add the root of the atomic\n\t\t}\n\t\treturn errs\n\t}\n\tif v.fieldSet != nil {\n\t\terrs = v.visitMapItems(t, v.fieldSet)\n\t}\n\treturn errs\n}\n\nfunc fieldSetAtPath(node *fieldpath.Set, path fieldpath.Path) (*fieldpath.Set, bool) {\n\tok := true\n\tfor _, pe := range path {\n\t\tif node, ok = node.Children.Get(pe); !ok {\n\t\t\tbreak\n\t\t}\n\t}\n\treturn node, ok\n}\n\nfunc descendToPath(node *fieldpath.Set, path fieldpath.Path) *fieldpath.Set {\n\tfor _, pe := range path {\n\t\tnode = node.Children.Descend(pe)\n\t}\n\treturn node\n}\n\nfunc typeRefAtPath(t *schema.Map, pe fieldpath.PathElement) (schema.TypeRef, bool) {\n\ttr := t.ElementType\n\tif pe.FieldName != nil {\n\t\tif sf, ok := t.FindField(*pe.FieldName); ok {\n\t\t\ttr = sf.Type\n\t\t}\n\t}\n\treturn tr, tr != schema.TypeRef{}\n}\n\n// isUntypedDeducedMap returns true if m has no fields defined, but allows untyped elements.\n// This is equivalent to a openAPI object that has x-kubernetes-preserve-unknown-fields=true\n// but does not have any properties defined on the object.\nfunc isUntypedDeducedMap(m *schema.Map) bool {\n\treturn isUntypedDeducedRef(m.ElementType) && m.Fields == nil\n}\n\nfunc isUntypedDeducedRef(t schema.TypeRef) bool {\n\tif t.NamedType != nil {\n\t\treturn *t.NamedType == \"__untyped_deduced_\"\n\t}\n\tatom := t.Inlined\n\treturn atom.Scalar != nil && *atom.Scalar == \"untyped\"\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/typed/remove.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n    http://www.apache.org/licenses/LICENSE-2.0\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage typed\n\nimport (\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/schema\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/value\"\n)\n\ntype removingWalker struct {\n\tvalue         value.Value\n\tout           interface{}\n\tschema        *schema.Schema\n\ttoRemove      *fieldpath.Set\n\tallocator     value.Allocator\n\tshouldExtract bool\n}\n\n// removeItemsWithSchema will walk the given value and look for items from the toRemove set.\n// Depending on whether shouldExtract is set true or false, it will return a modified version\n// of the input value with either:\n// 1. only the items in the toRemove set (when shouldExtract is true) or\n// 2. the items from the toRemove set removed from the value (when shouldExtract is false).\nfunc removeItemsWithSchema(val value.Value, toRemove *fieldpath.Set, schema *schema.Schema, typeRef schema.TypeRef, shouldExtract bool) value.Value {\n\tw := &removingWalker{\n\t\tvalue:         val,\n\t\tschema:        schema,\n\t\ttoRemove:      toRemove,\n\t\tallocator:     value.NewFreelistAllocator(),\n\t\tshouldExtract: shouldExtract,\n\t}\n\tresolveSchema(schema, typeRef, val, w)\n\treturn value.NewValueInterface(w.out)\n}\n\nfunc (w *removingWalker) doScalar(t *schema.Scalar) ValidationErrors {\n\tw.out = w.value.Unstructured()\n\treturn nil\n}\n\nfunc (w *removingWalker) doList(t *schema.List) (errs ValidationErrors) {\n\tif !w.value.IsList() {\n\t\treturn nil\n\t}\n\tl := w.value.AsListUsing(w.allocator)\n\tdefer w.allocator.Free(l)\n\t// If list is null or empty just return\n\tif l == nil || l.Length() == 0 {\n\t\treturn nil\n\t}\n\n\t// atomic lists should return everything in the case of extract\n\t// and nothing in the case of remove (!w.shouldExtract)\n\tif t.ElementRelationship == schema.Atomic {\n\t\tif w.shouldExtract {\n\t\t\tw.out = w.value.Unstructured()\n\t\t}\n\t\treturn nil\n\t}\n\n\tvar newItems []interface{}\n\titer := l.RangeUsing(w.allocator)\n\tdefer w.allocator.Free(iter)\n\tfor iter.Next() {\n\t\t_, item := iter.Item()\n\t\t// Ignore error because we have already validated this list\n\t\tpe, _ := listItemToPathElement(w.allocator, w.schema, t, item)\n\t\tpath, _ := fieldpath.MakePath(pe)\n\t\t// save items on the path when we shouldExtract\n\t\t// but ignore them when we are removing (i.e. !w.shouldExtract)\n\t\tif w.toRemove.Has(path) {\n\t\t\tif w.shouldExtract {\n\t\t\t\tnewItems = append(newItems, removeItemsWithSchema(item, w.toRemove, w.schema, t.ElementType, w.shouldExtract).Unstructured())\n\t\t\t} else {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\t\tif subset := w.toRemove.WithPrefix(pe); !subset.Empty() {\n\t\t\titem = removeItemsWithSchema(item, subset, w.schema, t.ElementType, w.shouldExtract)\n\t\t} else {\n\t\t\t// don't save items not on the path when we shouldExtract.\n\t\t\tif w.shouldExtract {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\t\tnewItems = append(newItems, item.Unstructured())\n\t}\n\tif len(newItems) > 0 {\n\t\tw.out = newItems\n\t}\n\treturn nil\n}\n\nfunc (w *removingWalker) doMap(t *schema.Map) ValidationErrors {\n\tif !w.value.IsMap() {\n\t\treturn nil\n\t}\n\tm := w.value.AsMapUsing(w.allocator)\n\tif m != nil {\n\t\tdefer w.allocator.Free(m)\n\t}\n\t// If map is null or empty just return\n\tif m == nil || m.Empty() {\n\t\treturn nil\n\t}\n\n\t// atomic maps should return everything in the case of extract\n\t// and nothing in the case of remove (!w.shouldExtract)\n\tif t.ElementRelationship == schema.Atomic {\n\t\tif w.shouldExtract {\n\t\t\tw.out = w.value.Unstructured()\n\t\t}\n\t\treturn nil\n\t}\n\n\tfieldTypes := map[string]schema.TypeRef{}\n\tfor _, structField := range t.Fields {\n\t\tfieldTypes[structField.Name] = structField.Type\n\t}\n\n\tnewMap := map[string]interface{}{}\n\tm.Iterate(func(k string, val value.Value) bool {\n\t\tpe := fieldpath.PathElement{FieldName: &k}\n\t\tpath, _ := fieldpath.MakePath(pe)\n\t\tfieldType := t.ElementType\n\t\tif ft, ok := fieldTypes[k]; ok {\n\t\t\tfieldType = ft\n\t\t}\n\t\t// save values on the path when we shouldExtract\n\t\t// but ignore them when we are removing (i.e. !w.shouldExtract)\n\t\tif w.toRemove.Has(path) {\n\t\t\tif w.shouldExtract {\n\t\t\t\tnewMap[k] = removeItemsWithSchema(val, w.toRemove, w.schema, fieldType, w.shouldExtract).Unstructured()\n\n\t\t\t}\n\t\t\treturn true\n\t\t}\n\t\tif subset := w.toRemove.WithPrefix(pe); !subset.Empty() {\n\t\t\tval = removeItemsWithSchema(val, subset, w.schema, fieldType, w.shouldExtract)\n\t\t} else {\n\t\t\t// don't save values not on the path when we shouldExtract.\n\t\t\tif w.shouldExtract {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\tnewMap[k] = val.Unstructured()\n\t\treturn true\n\t})\n\tif len(newMap) > 0 {\n\t\tw.out = newMap\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/typed/tofieldset.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage typed\n\nimport (\n\t\"sync\"\n\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/schema\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/value\"\n)\n\nvar tPool = sync.Pool{\n\tNew: func() interface{} { return &toFieldSetWalker{} },\n}\n\nfunc (tv TypedValue) toFieldSetWalker() *toFieldSetWalker {\n\tv := tPool.Get().(*toFieldSetWalker)\n\tv.value = tv.value\n\tv.schema = tv.schema\n\tv.typeRef = tv.typeRef\n\tv.set = &fieldpath.Set{}\n\tv.allocator = value.NewFreelistAllocator()\n\treturn v\n}\n\nfunc (v *toFieldSetWalker) finished() {\n\tv.schema = nil\n\tv.typeRef = schema.TypeRef{}\n\tv.path = nil\n\tv.set = nil\n\ttPool.Put(v)\n}\n\ntype toFieldSetWalker struct {\n\tvalue   value.Value\n\tschema  *schema.Schema\n\ttypeRef schema.TypeRef\n\n\tset  *fieldpath.Set\n\tpath fieldpath.Path\n\n\t// Allocate only as many walkers as needed for the depth by storing them here.\n\tspareWalkers *[]*toFieldSetWalker\n\tallocator    value.Allocator\n}\n\nfunc (v *toFieldSetWalker) prepareDescent(pe fieldpath.PathElement, tr schema.TypeRef) *toFieldSetWalker {\n\tif v.spareWalkers == nil {\n\t\t// first descent.\n\t\tv.spareWalkers = &[]*toFieldSetWalker{}\n\t}\n\tvar v2 *toFieldSetWalker\n\tif n := len(*v.spareWalkers); n > 0 {\n\t\tv2, *v.spareWalkers = (*v.spareWalkers)[n-1], (*v.spareWalkers)[:n-1]\n\t} else {\n\t\tv2 = &toFieldSetWalker{}\n\t}\n\t*v2 = *v\n\tv2.typeRef = tr\n\tv2.path = append(v2.path, pe)\n\treturn v2\n}\n\nfunc (v *toFieldSetWalker) finishDescent(v2 *toFieldSetWalker) {\n\t// if the descent caused a realloc, ensure that we reuse the buffer\n\t// for the next sibling.\n\tv.path = v2.path[:len(v2.path)-1]\n\t*v.spareWalkers = append(*v.spareWalkers, v2)\n}\n\nfunc (v *toFieldSetWalker) toFieldSet() ValidationErrors {\n\treturn resolveSchema(v.schema, v.typeRef, v.value, v)\n}\n\nfunc (v *toFieldSetWalker) doScalar(t *schema.Scalar) ValidationErrors {\n\tv.set.Insert(v.path)\n\n\treturn nil\n}\n\nfunc (v *toFieldSetWalker) visitListItems(t *schema.List, list value.List) (errs ValidationErrors) {\n\t// Keeps track of the PEs we've seen\n\tseen := fieldpath.MakePathElementSet(list.Length())\n\t// Keeps tracks of the PEs we've counted as duplicates\n\tduplicates := fieldpath.MakePathElementSet(list.Length())\n\tfor i := 0; i < list.Length(); i++ {\n\t\tchild := list.At(i)\n\t\tpe, _ := listItemToPathElement(v.allocator, v.schema, t, child)\n\t\tif seen.Has(pe) {\n\t\t\tif duplicates.Has(pe) {\n\t\t\t\t// do nothing\n\t\t\t} else {\n\t\t\t\tv.set.Insert(append(v.path, pe))\n\t\t\t\tduplicates.Insert(pe)\n\t\t\t}\n\t\t} else {\n\t\t\tseen.Insert(pe)\n\t\t}\n\t}\n\n\tfor i := 0; i < list.Length(); i++ {\n\t\tchild := list.At(i)\n\t\tpe, _ := listItemToPathElement(v.allocator, v.schema, t, child)\n\t\tif duplicates.Has(pe) {\n\t\t\tcontinue\n\t\t}\n\t\tv2 := v.prepareDescent(pe, t.ElementType)\n\t\tv2.value = child\n\t\terrs = append(errs, v2.toFieldSet()...)\n\n\t\tv2.set.Insert(v2.path)\n\t\tv.finishDescent(v2)\n\t}\n\treturn errs\n}\n\nfunc (v *toFieldSetWalker) doList(t *schema.List) (errs ValidationErrors) {\n\tlist, _ := listValue(v.allocator, v.value)\n\tif list != nil {\n\t\tdefer v.allocator.Free(list)\n\t}\n\tif t.ElementRelationship == schema.Atomic {\n\t\tv.set.Insert(v.path)\n\t\treturn nil\n\t}\n\n\tif list == nil {\n\t\treturn nil\n\t}\n\n\terrs = v.visitListItems(t, list)\n\n\treturn errs\n}\n\nfunc (v *toFieldSetWalker) visitMapItems(t *schema.Map, m value.Map) (errs ValidationErrors) {\n\tm.Iterate(func(key string, val value.Value) bool {\n\t\tpe := fieldpath.PathElement{FieldName: &key}\n\n\t\ttr := t.ElementType\n\t\tif sf, ok := t.FindField(key); ok {\n\t\t\ttr = sf.Type\n\t\t}\n\t\tv2 := v.prepareDescent(pe, tr)\n\t\tv2.value = val\n\t\terrs = append(errs, v2.toFieldSet()...)\n\t\tif val.IsNull() || (val.IsMap() && val.AsMap().Length() == 0) {\n\t\t\tv2.set.Insert(v2.path)\n\t\t} else if _, ok := t.FindField(key); !ok {\n\t\t\tv2.set.Insert(v2.path)\n\t\t}\n\t\tv.finishDescent(v2)\n\t\treturn true\n\t})\n\treturn errs\n}\n\nfunc (v *toFieldSetWalker) doMap(t *schema.Map) (errs ValidationErrors) {\n\tm, _ := mapValue(v.allocator, v.value)\n\tif m != nil {\n\t\tdefer v.allocator.Free(m)\n\t}\n\tif t.ElementRelationship == schema.Atomic {\n\t\tv.set.Insert(v.path)\n\t\treturn nil\n\t}\n\n\tif m == nil {\n\t\treturn nil\n\t}\n\n\terrs = v.visitMapItems(t, m)\n\n\treturn errs\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/typed/typed.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage typed\n\nimport (\n\t\"sync\"\n\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/schema\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/value\"\n)\n\n// ValidationOptions is the list of all the options available when running the validation.\ntype ValidationOptions int\n\nconst (\n\t// AllowDuplicates means that sets and associative lists can have duplicate similar items.\n\tAllowDuplicates ValidationOptions = iota\n)\n\n// AsTyped accepts a value and a type and returns a TypedValue. 'v' must have\n// type 'typeName' in the schema. An error is returned if the v doesn't conform\n// to the schema.\nfunc AsTyped(v value.Value, s *schema.Schema, typeRef schema.TypeRef, opts ...ValidationOptions) (*TypedValue, error) {\n\ttv := &TypedValue{\n\t\tvalue:   v,\n\t\ttypeRef: typeRef,\n\t\tschema:  s,\n\t}\n\tif err := tv.Validate(opts...); err != nil {\n\t\treturn nil, err\n\t}\n\treturn tv, nil\n}\n\n// AsTypeUnvalidated is just like AsTyped, but doesn't validate that the type\n// conforms to the schema, for cases where that has already been checked or\n// where you're going to call a method that validates as a side-effect (like\n// ToFieldSet).\n//\n// Deprecated: This function was initially created because validation\n// was expensive. Now that this has been solved, objects should always\n// be created as validated, using `AsTyped`.\nfunc AsTypedUnvalidated(v value.Value, s *schema.Schema, typeRef schema.TypeRef) *TypedValue {\n\ttv := &TypedValue{\n\t\tvalue:   v,\n\t\ttypeRef: typeRef,\n\t\tschema:  s,\n\t}\n\treturn tv\n}\n\n// TypedValue is a value of some specific type.\ntype TypedValue struct {\n\tvalue   value.Value\n\ttypeRef schema.TypeRef\n\tschema  *schema.Schema\n}\n\n// TypeRef is the type of the value.\nfunc (tv TypedValue) TypeRef() schema.TypeRef {\n\treturn tv.typeRef\n}\n\n// AsValue removes the type from the TypedValue and only keeps the value.\nfunc (tv TypedValue) AsValue() value.Value {\n\treturn tv.value\n}\n\n// Schema gets the schema from the TypedValue.\nfunc (tv TypedValue) Schema() *schema.Schema {\n\treturn tv.schema\n}\n\n// Validate returns an error with a list of every spec violation.\nfunc (tv TypedValue) Validate(opts ...ValidationOptions) error {\n\tw := tv.walker()\n\tfor _, opt := range opts {\n\t\tswitch opt {\n\t\tcase AllowDuplicates:\n\t\t\tw.allowDuplicates = true\n\t\t}\n\t}\n\tdefer w.finished()\n\tif errs := w.validate(nil); len(errs) != 0 {\n\t\treturn errs\n\t}\n\treturn nil\n}\n\n// ToFieldSet creates a set containing every leaf field and item mentioned, or\n// validation errors, if any were encountered.\nfunc (tv TypedValue) ToFieldSet() (*fieldpath.Set, error) {\n\tw := tv.toFieldSetWalker()\n\tdefer w.finished()\n\tif errs := w.toFieldSet(); len(errs) != 0 {\n\t\treturn nil, errs\n\t}\n\treturn w.set, nil\n}\n\n// Merge returns the result of merging tv and pso (\"partially specified\n// object\") together. Of note:\n//   - No fields can be removed by this operation.\n//   - If both tv and pso specify a given leaf field, the result will keep pso's\n//     value.\n//   - Container typed elements will have their items ordered:\n//     1. like tv, if pso doesn't change anything in the container\n//     2. like pso, if pso does change something in the container.\n//\n// tv and pso must both be of the same type (their Schema and TypeRef must\n// match), or an error will be returned. Validation errors will be returned if\n// the objects don't conform to the schema.\nfunc (tv TypedValue) Merge(pso *TypedValue) (*TypedValue, error) {\n\treturn merge(&tv, pso, ruleKeepRHS, nil)\n}\n\nvar cmpwPool = sync.Pool{\n\tNew: func() interface{} { return &compareWalker{} },\n}\n\n// Compare compares the two objects. See the comments on the `Comparison`\n// struct for details on the return value.\n//\n// tv and rhs must both be of the same type (their Schema and TypeRef must\n// match), or an error will be returned. Validation errors will be returned if\n// the objects don't conform to the schema.\nfunc (tv TypedValue) Compare(rhs *TypedValue) (c *Comparison, err error) {\n\tlhs := tv\n\tif lhs.schema != rhs.schema {\n\t\treturn nil, errorf(\"expected objects with types from the same schema\")\n\t}\n\tif !lhs.typeRef.Equals(&rhs.typeRef) {\n\t\treturn nil, errorf(\"expected objects of the same type, but got %v and %v\", lhs.typeRef, rhs.typeRef)\n\t}\n\n\tcmpw := cmpwPool.Get().(*compareWalker)\n\tdefer func() {\n\t\tcmpw.lhs = nil\n\t\tcmpw.rhs = nil\n\t\tcmpw.schema = nil\n\t\tcmpw.typeRef = schema.TypeRef{}\n\t\tcmpw.comparison = nil\n\t\tcmpw.inLeaf = false\n\n\t\tcmpwPool.Put(cmpw)\n\t}()\n\n\tcmpw.lhs = lhs.value\n\tcmpw.rhs = rhs.value\n\tcmpw.schema = lhs.schema\n\tcmpw.typeRef = lhs.typeRef\n\tcmpw.comparison = &Comparison{\n\t\tRemoved:  fieldpath.NewSet(),\n\t\tModified: fieldpath.NewSet(),\n\t\tAdded:    fieldpath.NewSet(),\n\t}\n\tif cmpw.allocator == nil {\n\t\tcmpw.allocator = value.NewFreelistAllocator()\n\t}\n\n\terrs := cmpw.compare(nil)\n\tif len(errs) > 0 {\n\t\treturn nil, errs\n\t}\n\treturn cmpw.comparison, nil\n}\n\n// RemoveItems removes each provided list or map item from the value.\nfunc (tv TypedValue) RemoveItems(items *fieldpath.Set) *TypedValue {\n\ttv.value = removeItemsWithSchema(tv.value, items, tv.schema, tv.typeRef, false)\n\treturn &tv\n}\n\n// ExtractItems returns a value with only the provided list or map items extracted from the value.\nfunc (tv TypedValue) ExtractItems(items *fieldpath.Set) *TypedValue {\n\ttv.value = removeItemsWithSchema(tv.value, items, tv.schema, tv.typeRef, true)\n\treturn &tv\n}\n\nfunc (tv TypedValue) Empty() *TypedValue {\n\ttv.value = value.NewValueInterface(nil)\n\treturn &tv\n}\n\nvar mwPool = sync.Pool{\n\tNew: func() interface{} { return &mergingWalker{} },\n}\n\nfunc merge(lhs, rhs *TypedValue, rule, postRule mergeRule) (*TypedValue, error) {\n\tif lhs.schema != rhs.schema {\n\t\treturn nil, errorf(\"expected objects with types from the same schema\")\n\t}\n\tif !lhs.typeRef.Equals(&rhs.typeRef) {\n\t\treturn nil, errorf(\"expected objects of the same type, but got %v and %v\", lhs.typeRef, rhs.typeRef)\n\t}\n\n\tmw := mwPool.Get().(*mergingWalker)\n\tdefer func() {\n\t\tmw.lhs = nil\n\t\tmw.rhs = nil\n\t\tmw.schema = nil\n\t\tmw.typeRef = schema.TypeRef{}\n\t\tmw.rule = nil\n\t\tmw.postItemHook = nil\n\t\tmw.out = nil\n\t\tmw.inLeaf = false\n\n\t\tmwPool.Put(mw)\n\t}()\n\n\tmw.lhs = lhs.value\n\tmw.rhs = rhs.value\n\tmw.schema = lhs.schema\n\tmw.typeRef = lhs.typeRef\n\tmw.rule = rule\n\tmw.postItemHook = postRule\n\tif mw.allocator == nil {\n\t\tmw.allocator = value.NewFreelistAllocator()\n\t}\n\n\terrs := mw.merge(nil)\n\tif len(errs) > 0 {\n\t\treturn nil, errs\n\t}\n\n\tout := &TypedValue{\n\t\tschema:  lhs.schema,\n\t\ttypeRef: lhs.typeRef,\n\t}\n\tif mw.out != nil {\n\t\tout.value = value.NewValueInterface(*mw.out)\n\t}\n\treturn out, nil\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/typed/validate.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage typed\n\nimport (\n\t\"sync\"\n\n\t\"sigs.k8s.io/structured-merge-diff/v4/fieldpath\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/schema\"\n\t\"sigs.k8s.io/structured-merge-diff/v4/value\"\n)\n\nvar vPool = sync.Pool{\n\tNew: func() interface{} { return &validatingObjectWalker{} },\n}\n\nfunc (tv TypedValue) walker() *validatingObjectWalker {\n\tv := vPool.Get().(*validatingObjectWalker)\n\tv.value = tv.value\n\tv.schema = tv.schema\n\tv.typeRef = tv.typeRef\n\tv.allowDuplicates = false\n\tif v.allocator == nil {\n\t\tv.allocator = value.NewFreelistAllocator()\n\t}\n\treturn v\n}\n\nfunc (v *validatingObjectWalker) finished() {\n\tv.schema = nil\n\tv.typeRef = schema.TypeRef{}\n\tvPool.Put(v)\n}\n\ntype validatingObjectWalker struct {\n\tvalue   value.Value\n\tschema  *schema.Schema\n\ttypeRef schema.TypeRef\n\t// If set to true, duplicates will be allowed in\n\t// associativeLists/sets.\n\tallowDuplicates bool\n\n\t// Allocate only as many walkers as needed for the depth by storing them here.\n\tspareWalkers *[]*validatingObjectWalker\n\tallocator    value.Allocator\n}\n\nfunc (v *validatingObjectWalker) prepareDescent(tr schema.TypeRef) *validatingObjectWalker {\n\tif v.spareWalkers == nil {\n\t\t// first descent.\n\t\tv.spareWalkers = &[]*validatingObjectWalker{}\n\t}\n\tvar v2 *validatingObjectWalker\n\tif n := len(*v.spareWalkers); n > 0 {\n\t\tv2, *v.spareWalkers = (*v.spareWalkers)[n-1], (*v.spareWalkers)[:n-1]\n\t} else {\n\t\tv2 = &validatingObjectWalker{}\n\t}\n\t*v2 = *v\n\tv2.typeRef = tr\n\treturn v2\n}\n\nfunc (v *validatingObjectWalker) finishDescent(v2 *validatingObjectWalker) {\n\t// if the descent caused a realloc, ensure that we reuse the buffer\n\t// for the next sibling.\n\t*v.spareWalkers = append(*v.spareWalkers, v2)\n}\n\nfunc (v *validatingObjectWalker) validate(prefixFn func() string) ValidationErrors {\n\treturn resolveSchema(v.schema, v.typeRef, v.value, v).WithLazyPrefix(prefixFn)\n}\n\nfunc validateScalar(t *schema.Scalar, v value.Value, prefix string) (errs ValidationErrors) {\n\tif v == nil {\n\t\treturn nil\n\t}\n\tif v.IsNull() {\n\t\treturn nil\n\t}\n\tswitch *t {\n\tcase schema.Numeric:\n\t\tif !v.IsFloat() && !v.IsInt() {\n\t\t\t// TODO: should the schema separate int and float?\n\t\t\treturn errorf(\"%vexpected numeric (int or float), got %T\", prefix, v.Unstructured())\n\t\t}\n\tcase schema.String:\n\t\tif !v.IsString() {\n\t\t\treturn errorf(\"%vexpected string, got %#v\", prefix, v)\n\t\t}\n\tcase schema.Boolean:\n\t\tif !v.IsBool() {\n\t\t\treturn errorf(\"%vexpected boolean, got %v\", prefix, v)\n\t\t}\n\tcase schema.Untyped:\n\t\tif !v.IsFloat() && !v.IsInt() && !v.IsString() && !v.IsBool() {\n\t\t\treturn errorf(\"%vexpected any scalar, got %v\", prefix, v)\n\t\t}\n\tdefault:\n\t\treturn errorf(\"%vunexpected scalar type in schema: %v\", prefix, *t)\n\t}\n\treturn nil\n}\n\nfunc (v *validatingObjectWalker) doScalar(t *schema.Scalar) ValidationErrors {\n\tif errs := validateScalar(t, v.value, \"\"); len(errs) > 0 {\n\t\treturn errs\n\t}\n\treturn nil\n}\n\nfunc (v *validatingObjectWalker) visitListItems(t *schema.List, list value.List) (errs ValidationErrors) {\n\tobservedKeys := fieldpath.MakePathElementSet(list.Length())\n\tfor i := 0; i < list.Length(); i++ {\n\t\tchild := list.AtUsing(v.allocator, i)\n\t\tdefer v.allocator.Free(child)\n\t\tvar pe fieldpath.PathElement\n\t\tif t.ElementRelationship != schema.Associative {\n\t\t\tpe.Index = &i\n\t\t} else {\n\t\t\tvar err error\n\t\t\tpe, err = listItemToPathElement(v.allocator, v.schema, t, child)\n\t\t\tif err != nil {\n\t\t\t\terrs = append(errs, errorf(\"element %v: %v\", i, err.Error())...)\n\t\t\t\t// If we can't construct the path element, we can't\n\t\t\t\t// even report errors deeper in the schema, so bail on\n\t\t\t\t// this element.\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif observedKeys.Has(pe) && !v.allowDuplicates {\n\t\t\t\terrs = append(errs, errorf(\"duplicate entries for key %v\", pe.String())...)\n\t\t\t}\n\t\t\tobservedKeys.Insert(pe)\n\t\t}\n\t\tv2 := v.prepareDescent(t.ElementType)\n\t\tv2.value = child\n\t\terrs = append(errs, v2.validate(pe.String)...)\n\t\tv.finishDescent(v2)\n\t}\n\treturn errs\n}\n\nfunc (v *validatingObjectWalker) doList(t *schema.List) (errs ValidationErrors) {\n\tlist, err := listValue(v.allocator, v.value)\n\tif err != nil {\n\t\treturn errorf(err.Error())\n\t}\n\n\tif list == nil {\n\t\treturn nil\n\t}\n\n\tdefer v.allocator.Free(list)\n\terrs = v.visitListItems(t, list)\n\n\treturn errs\n}\n\nfunc (v *validatingObjectWalker) visitMapItems(t *schema.Map, m value.Map) (errs ValidationErrors) {\n\tm.IterateUsing(v.allocator, func(key string, val value.Value) bool {\n\t\tpe := fieldpath.PathElement{FieldName: &key}\n\t\ttr := t.ElementType\n\t\tif sf, ok := t.FindField(key); ok {\n\t\t\ttr = sf.Type\n\t\t} else if (t.ElementType == schema.TypeRef{}) {\n\t\t\terrs = append(errs, errorf(\"field not declared in schema\").WithPrefix(pe.String())...)\n\t\t\treturn false\n\t\t}\n\t\tv2 := v.prepareDescent(tr)\n\t\tv2.value = val\n\t\t// Giving pe.String as a parameter actually increases the allocations.\n\t\terrs = append(errs, v2.validate(func() string { return pe.String() })...)\n\t\tv.finishDescent(v2)\n\t\treturn true\n\t})\n\treturn errs\n}\n\nfunc (v *validatingObjectWalker) doMap(t *schema.Map) (errs ValidationErrors) {\n\tm, err := mapValue(v.allocator, v.value)\n\tif err != nil {\n\t\treturn errorf(err.Error())\n\t}\n\tif m == nil {\n\t\treturn nil\n\t}\n\tdefer v.allocator.Free(m)\n\terrs = v.visitMapItems(t, m)\n\n\treturn errs\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/value/allocator.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage value\n\n// Allocator provides a value object allocation strategy.\n// Value objects can be allocated by passing an allocator to the \"Using\"\n// receiver functions on the value interfaces, e.g. Map.ZipUsing(allocator, ...).\n// Value objects returned from \"Using\" functions should be given back to the allocator\n// once longer needed by calling Allocator.Free(Value).\ntype Allocator interface {\n\t// Free gives the allocator back any value objects returned by the \"Using\"\n\t// receiver functions on the value interfaces.\n\t// interface{} may be any of: Value, Map, List or Range.\n\tFree(interface{})\n\n\t// The unexported functions are for \"Using\" receiver functions of the value types\n\t// to request what they need from the allocator.\n\tallocValueUnstructured() *valueUnstructured\n\tallocListUnstructuredRange() *listUnstructuredRange\n\tallocValueReflect() *valueReflect\n\tallocMapReflect() *mapReflect\n\tallocStructReflect() *structReflect\n\tallocListReflect() *listReflect\n\tallocListReflectRange() *listReflectRange\n}\n\n// HeapAllocator simply allocates objects to the heap. It is the default\n// allocator used receiver functions on the value interfaces that do not accept\n// an allocator and should be used whenever allocating objects that will not\n// be given back to an allocator by calling Allocator.Free(Value).\nvar HeapAllocator = &heapAllocator{}\n\ntype heapAllocator struct{}\n\nfunc (p *heapAllocator) allocValueUnstructured() *valueUnstructured {\n\treturn &valueUnstructured{}\n}\n\nfunc (p *heapAllocator) allocListUnstructuredRange() *listUnstructuredRange {\n\treturn &listUnstructuredRange{vv: &valueUnstructured{}}\n}\n\nfunc (p *heapAllocator) allocValueReflect() *valueReflect {\n\treturn &valueReflect{}\n}\n\nfunc (p *heapAllocator) allocStructReflect() *structReflect {\n\treturn &structReflect{}\n}\n\nfunc (p *heapAllocator) allocMapReflect() *mapReflect {\n\treturn &mapReflect{}\n}\n\nfunc (p *heapAllocator) allocListReflect() *listReflect {\n\treturn &listReflect{}\n}\n\nfunc (p *heapAllocator) allocListReflectRange() *listReflectRange {\n\treturn &listReflectRange{vr: &valueReflect{}}\n}\n\nfunc (p *heapAllocator) Free(_ interface{}) {}\n\n// NewFreelistAllocator creates freelist based allocator.\n// This allocator provides fast allocation and freeing of short lived value objects.\n//\n// The freelists are bounded in size by freelistMaxSize. If more than this amount of value objects is\n// allocated at once, the excess will be returned to the heap for garbage collection when freed.\n//\n// This allocator is unsafe and must not be accessed concurrently by goroutines.\n//\n// This allocator works well for traversal of value data trees. Typical usage is to acquire\n// a freelist at the beginning of the traversal and use it through out\n// for all temporary value access.\nfunc NewFreelistAllocator() Allocator {\n\treturn &freelistAllocator{\n\t\tvalueUnstructured: &freelist{new: func() interface{} {\n\t\t\treturn &valueUnstructured{}\n\t\t}},\n\t\tlistUnstructuredRange: &freelist{new: func() interface{} {\n\t\t\treturn &listUnstructuredRange{vv: &valueUnstructured{}}\n\t\t}},\n\t\tvalueReflect: &freelist{new: func() interface{} {\n\t\t\treturn &valueReflect{}\n\t\t}},\n\t\tmapReflect: &freelist{new: func() interface{} {\n\t\t\treturn &mapReflect{}\n\t\t}},\n\t\tstructReflect: &freelist{new: func() interface{} {\n\t\t\treturn &structReflect{}\n\t\t}},\n\t\tlistReflect: &freelist{new: func() interface{} {\n\t\t\treturn &listReflect{}\n\t\t}},\n\t\tlistReflectRange: &freelist{new: func() interface{} {\n\t\t\treturn &listReflectRange{vr: &valueReflect{}}\n\t\t}},\n\t}\n}\n\n// Bound memory usage of freelists. This prevents the processing of very large lists from leaking memory.\n// This limit is large enough for endpoints objects containing 1000 IP address entries. Freed objects\n// that don't fit into the freelist are orphaned on the heap to be garbage collected.\nconst freelistMaxSize = 1000\n\ntype freelistAllocator struct {\n\tvalueUnstructured     *freelist\n\tlistUnstructuredRange *freelist\n\tvalueReflect          *freelist\n\tmapReflect            *freelist\n\tstructReflect         *freelist\n\tlistReflect           *freelist\n\tlistReflectRange      *freelist\n}\n\ntype freelist struct {\n\tlist []interface{}\n\tnew  func() interface{}\n}\n\nfunc (f *freelist) allocate() interface{} {\n\tvar w2 interface{}\n\tif n := len(f.list); n > 0 {\n\t\tw2, f.list = f.list[n-1], f.list[:n-1]\n\t} else {\n\t\tw2 = f.new()\n\t}\n\treturn w2\n}\n\nfunc (f *freelist) free(v interface{}) {\n\tif len(f.list) < freelistMaxSize {\n\t\tf.list = append(f.list, v)\n\t}\n}\n\nfunc (w *freelistAllocator) Free(value interface{}) {\n\tswitch v := value.(type) {\n\tcase *valueUnstructured:\n\t\tv.Value = nil // don't hold references to unstructured objects\n\t\tw.valueUnstructured.free(v)\n\tcase *listUnstructuredRange:\n\t\tv.vv.Value = nil // don't hold references to unstructured objects\n\t\tw.listUnstructuredRange.free(v)\n\tcase *valueReflect:\n\t\tv.ParentMapKey = nil\n\t\tv.ParentMap = nil\n\t\tw.valueReflect.free(v)\n\tcase *mapReflect:\n\t\tw.mapReflect.free(v)\n\tcase *structReflect:\n\t\tw.structReflect.free(v)\n\tcase *listReflect:\n\t\tw.listReflect.free(v)\n\tcase *listReflectRange:\n\t\tv.vr.ParentMapKey = nil\n\t\tv.vr.ParentMap = nil\n\t\tw.listReflectRange.free(v)\n\t}\n}\n\nfunc (w *freelistAllocator) allocValueUnstructured() *valueUnstructured {\n\treturn w.valueUnstructured.allocate().(*valueUnstructured)\n}\n\nfunc (w *freelistAllocator) allocListUnstructuredRange() *listUnstructuredRange {\n\treturn w.listUnstructuredRange.allocate().(*listUnstructuredRange)\n}\n\nfunc (w *freelistAllocator) allocValueReflect() *valueReflect {\n\treturn w.valueReflect.allocate().(*valueReflect)\n}\n\nfunc (w *freelistAllocator) allocStructReflect() *structReflect {\n\treturn w.structReflect.allocate().(*structReflect)\n}\n\nfunc (w *freelistAllocator) allocMapReflect() *mapReflect {\n\treturn w.mapReflect.allocate().(*mapReflect)\n}\n\nfunc (w *freelistAllocator) allocListReflect() *listReflect {\n\treturn w.listReflect.allocate().(*listReflect)\n}\n\nfunc (w *freelistAllocator) allocListReflectRange() *listReflectRange {\n\treturn w.listReflectRange.allocate().(*listReflectRange)\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/value/doc.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Package value defines types for an in-memory representation of yaml or json\n// objects, organized for convenient comparison with a schema (as defined by\n// the sibling schema package). Functions for reading and writing the objects\n// are also provided.\npackage value\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/value/fields.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage value\n\nimport (\n\t\"sort\"\n\t\"strings\"\n)\n\n// Field is an individual key-value pair.\ntype Field struct {\n\tName  string\n\tValue Value\n}\n\n// FieldList is a list of key-value pairs. Each field is expected to\n// have a different name.\ntype FieldList []Field\n\n// Sort sorts the field list by Name.\nfunc (f FieldList) Sort() {\n\tif len(f) < 2 {\n\t\treturn\n\t}\n\tif len(f) == 2 {\n\t\tif f[1].Name < f[0].Name {\n\t\t\tf[0], f[1] = f[1], f[0]\n\t\t}\n\t\treturn\n\t}\n\tsort.SliceStable(f, func(i, j int) bool {\n\t\treturn f[i].Name < f[j].Name\n\t})\n}\n\n// Less compares two lists lexically.\nfunc (f FieldList) Less(rhs FieldList) bool {\n\treturn f.Compare(rhs) == -1\n}\n\n// Compare compares two lists lexically. The result will be 0 if f==rhs, -1\n// if f < rhs, and +1 if f > rhs.\nfunc (f FieldList) Compare(rhs FieldList) int {\n\ti := 0\n\tfor {\n\t\tif i >= len(f) && i >= len(rhs) {\n\t\t\t// Maps are the same length and all items are equal.\n\t\t\treturn 0\n\t\t}\n\t\tif i >= len(f) {\n\t\t\t// F is shorter.\n\t\t\treturn -1\n\t\t}\n\t\tif i >= len(rhs) {\n\t\t\t// RHS is shorter.\n\t\t\treturn 1\n\t\t}\n\t\tif c := strings.Compare(f[i].Name, rhs[i].Name); c != 0 {\n\t\t\treturn c\n\t\t}\n\t\tif c := Compare(f[i].Value, rhs[i].Value); c != 0 {\n\t\t\treturn c\n\t\t}\n\t\t// The items are equal; continue.\n\t\ti++\n\t}\n}\n\n// Equals returns true if the two fieldslist are equals, false otherwise.\nfunc (f FieldList) Equals(rhs FieldList) bool {\n\tif len(f) != len(rhs) {\n\t\treturn false\n\t}\n\tfor i := range f {\n\t\tif f[i].Name != rhs[i].Name {\n\t\t\treturn false\n\t\t}\n\t\tif !Equals(f[i].Value, rhs[i].Value) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/value/jsontagutil.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage value\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"strings\"\n)\n\n// TODO: This implements the same functionality as https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/runtime/converter.go#L236\n// but is based on the highly efficient approach from https://golang.org/src/encoding/json/encode.go\n\nfunc lookupJsonTags(f reflect.StructField) (name string, omit bool, inline bool, omitempty bool) {\n\ttag := f.Tag.Get(\"json\")\n\tif tag == \"-\" {\n\t\treturn \"\", true, false, false\n\t}\n\tname, opts := parseTag(tag)\n\tif name == \"\" {\n\t\tname = f.Name\n\t}\n\treturn name, false, opts.Contains(\"inline\"), opts.Contains(\"omitempty\")\n}\n\nfunc isZero(v reflect.Value) bool {\n\tswitch v.Kind() {\n\tcase reflect.Array, reflect.Map, reflect.Slice, reflect.String:\n\t\treturn v.Len() == 0\n\tcase reflect.Bool:\n\t\treturn !v.Bool()\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn v.Int() == 0\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn v.Uint() == 0\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn v.Float() == 0\n\tcase reflect.Interface, reflect.Ptr:\n\t\treturn v.IsNil()\n\tcase reflect.Chan, reflect.Func:\n\t\tpanic(fmt.Sprintf(\"unsupported type: %v\", v.Type()))\n\t}\n\treturn false\n}\n\ntype tagOptions string\n\n// parseTag splits a struct field's json tag into its name and\n// comma-separated options.\nfunc parseTag(tag string) (string, tagOptions) {\n\tif idx := strings.Index(tag, \",\"); idx != -1 {\n\t\treturn tag[:idx], tagOptions(tag[idx+1:])\n\t}\n\treturn tag, tagOptions(\"\")\n}\n\n// Contains reports whether a comma-separated list of options\n// contains a particular substr flag. substr must be surrounded by a\n// string boundary or commas.\nfunc (o tagOptions) Contains(optionName string) bool {\n\tif len(o) == 0 {\n\t\treturn false\n\t}\n\ts := string(o)\n\tfor s != \"\" {\n\t\tvar next string\n\t\ti := strings.Index(s, \",\")\n\t\tif i >= 0 {\n\t\t\ts, next = s[:i], s[i+1:]\n\t\t}\n\t\tif s == optionName {\n\t\t\treturn true\n\t\t}\n\t\ts = next\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/value/list.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage value\n\n// List represents a list object.\ntype List interface {\n\t// Length returns how many items can be found in the map.\n\tLength() int\n\t// At returns the item at the given position in the map. It will\n\t// panic if the index is out of range.\n\tAt(int) Value\n\t// AtUsing uses the provided allocator and returns the item at the given\n\t// position in the map. It will panic if the index is out of range.\n\t// The returned Value should be given back to the Allocator when no longer needed\n\t// by calling Allocator.Free(Value).\n\tAtUsing(Allocator, int) Value\n\t// Range returns a ListRange for iterating over the items in the list.\n\tRange() ListRange\n\t// RangeUsing uses the provided allocator and returns a ListRange for\n\t// iterating over the items in the list.\n\t// The returned Range should be given back to the Allocator when no longer needed\n\t// by calling Allocator.Free(Value).\n\tRangeUsing(Allocator) ListRange\n\t// Equals compares the two lists, and return true if they are the same, false otherwise.\n\t// Implementations can use ListEquals as a general implementation for this methods.\n\tEquals(List) bool\n\t// EqualsUsing uses the provided allocator and compares the two lists, and return true if\n\t// they are the same, false otherwise. Implementations can use ListEqualsUsing as a general\n\t// implementation for this methods.\n\tEqualsUsing(Allocator, List) bool\n}\n\n// ListRange represents a single iteration across the items of a list.\ntype ListRange interface {\n\t// Next increments to the next item in the range, if there is one, and returns true, or returns false if there are no more items.\n\tNext() bool\n\t// Item returns the index and value of the current item in the range. or panics if there is no current item.\n\t// For efficiency, Item may reuse the values returned by previous Item calls. Callers should be careful avoid holding\n\t// pointers to the value returned by Item() that escape the iteration loop since they become invalid once either\n\t// Item() or Allocator.Free() is called.\n\tItem() (index int, value Value)\n}\n\nvar EmptyRange = &emptyRange{}\n\ntype emptyRange struct{}\n\nfunc (_ *emptyRange) Next() bool {\n\treturn false\n}\n\nfunc (_ *emptyRange) Item() (index int, value Value) {\n\tpanic(\"Item called on empty ListRange\")\n}\n\n// ListEquals compares two lists lexically.\n// WARN: This is a naive implementation, calling lhs.Equals(rhs) is typically the most efficient.\nfunc ListEquals(lhs, rhs List) bool {\n\treturn ListEqualsUsing(HeapAllocator, lhs, rhs)\n}\n\n// ListEqualsUsing uses the provided allocator and compares two lists lexically.\n// WARN: This is a naive implementation, calling lhs.EqualsUsing(allocator, rhs) is typically the most efficient.\nfunc ListEqualsUsing(a Allocator, lhs, rhs List) bool {\n\tif lhs.Length() != rhs.Length() {\n\t\treturn false\n\t}\n\n\tlhsRange := lhs.RangeUsing(a)\n\tdefer a.Free(lhsRange)\n\trhsRange := rhs.RangeUsing(a)\n\tdefer a.Free(rhsRange)\n\n\tfor lhsRange.Next() && rhsRange.Next() {\n\t\t_, lv := lhsRange.Item()\n\t\t_, rv := rhsRange.Item()\n\t\tif !EqualsUsing(a, lv, rv) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// ListLess compares two lists lexically.\nfunc ListLess(lhs, rhs List) bool {\n\treturn ListCompare(lhs, rhs) == -1\n}\n\n// ListCompare compares two lists lexically. The result will be 0 if l==rhs, -1\n// if l < rhs, and +1 if l > rhs.\nfunc ListCompare(lhs, rhs List) int {\n\treturn ListCompareUsing(HeapAllocator, lhs, rhs)\n}\n\n// ListCompareUsing uses the provided allocator and compares two lists lexically. The result will be 0 if l==rhs, -1\n// if l < rhs, and +1 if l > rhs.\nfunc ListCompareUsing(a Allocator, lhs, rhs List) int {\n\tlhsRange := lhs.RangeUsing(a)\n\tdefer a.Free(lhsRange)\n\trhsRange := rhs.RangeUsing(a)\n\tdefer a.Free(rhsRange)\n\n\tfor {\n\t\tlhsOk := lhsRange.Next()\n\t\trhsOk := rhsRange.Next()\n\t\tif !lhsOk && !rhsOk {\n\t\t\t// Lists are the same length and all items are equal.\n\t\t\treturn 0\n\t\t}\n\t\tif !lhsOk {\n\t\t\t// LHS is shorter.\n\t\t\treturn -1\n\t\t}\n\t\tif !rhsOk {\n\t\t\t// RHS is shorter.\n\t\t\treturn 1\n\t\t}\n\t\t_, lv := lhsRange.Item()\n\t\t_, rv := rhsRange.Item()\n\t\tif c := CompareUsing(a, lv, rv); c != 0 {\n\t\t\treturn c\n\t\t}\n\t\t// The items are equal; continue.\n\t}\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/value/listreflect.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage value\n\nimport (\n\t\"reflect\"\n)\n\ntype listReflect struct {\n\tValue reflect.Value\n}\n\nfunc (r listReflect) Length() int {\n\tval := r.Value\n\treturn val.Len()\n}\n\nfunc (r listReflect) At(i int) Value {\n\tval := r.Value\n\treturn mustWrapValueReflect(val.Index(i), nil, nil)\n}\n\nfunc (r listReflect) AtUsing(a Allocator, i int) Value {\n\tval := r.Value\n\treturn a.allocValueReflect().mustReuse(val.Index(i), nil, nil, nil)\n}\n\nfunc (r listReflect) Unstructured() interface{} {\n\tl := r.Length()\n\tresult := make([]interface{}, l)\n\tfor i := 0; i < l; i++ {\n\t\tresult[i] = r.At(i).Unstructured()\n\t}\n\treturn result\n}\n\nfunc (r listReflect) Range() ListRange {\n\treturn r.RangeUsing(HeapAllocator)\n}\n\nfunc (r listReflect) RangeUsing(a Allocator) ListRange {\n\tlength := r.Value.Len()\n\tif length == 0 {\n\t\treturn EmptyRange\n\t}\n\trr := a.allocListReflectRange()\n\trr.list = r.Value\n\trr.i = -1\n\trr.entry = TypeReflectEntryOf(r.Value.Type().Elem())\n\treturn rr\n}\n\nfunc (r listReflect) Equals(other List) bool {\n\treturn r.EqualsUsing(HeapAllocator, other)\n}\nfunc (r listReflect) EqualsUsing(a Allocator, other List) bool {\n\tif otherReflectList, ok := other.(*listReflect); ok {\n\t\treturn reflect.DeepEqual(r.Value.Interface(), otherReflectList.Value.Interface())\n\t}\n\treturn ListEqualsUsing(a, &r, other)\n}\n\ntype listReflectRange struct {\n\tlist  reflect.Value\n\tvr    *valueReflect\n\ti     int\n\tentry *TypeReflectCacheEntry\n}\n\nfunc (r *listReflectRange) Next() bool {\n\tr.i += 1\n\treturn r.i < r.list.Len()\n}\n\nfunc (r *listReflectRange) Item() (index int, value Value) {\n\tif r.i < 0 {\n\t\tpanic(\"Item() called before first calling Next()\")\n\t}\n\tif r.i >= r.list.Len() {\n\t\tpanic(\"Item() called on ListRange with no more items\")\n\t}\n\tv := r.list.Index(r.i)\n\treturn r.i, r.vr.mustReuse(v, r.entry, nil, nil)\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/value/listunstructured.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage value\n\ntype listUnstructured []interface{}\n\nfunc (l listUnstructured) Length() int {\n\treturn len(l)\n}\n\nfunc (l listUnstructured) At(i int) Value {\n\treturn NewValueInterface(l[i])\n}\n\nfunc (l listUnstructured) AtUsing(a Allocator, i int) Value {\n\treturn a.allocValueUnstructured().reuse(l[i])\n}\n\nfunc (l listUnstructured) Equals(other List) bool {\n\treturn l.EqualsUsing(HeapAllocator, other)\n}\n\nfunc (l listUnstructured) EqualsUsing(a Allocator, other List) bool {\n\treturn ListEqualsUsing(a, &l, other)\n}\n\nfunc (l listUnstructured) Range() ListRange {\n\treturn l.RangeUsing(HeapAllocator)\n}\n\nfunc (l listUnstructured) RangeUsing(a Allocator) ListRange {\n\tif len(l) == 0 {\n\t\treturn EmptyRange\n\t}\n\tr := a.allocListUnstructuredRange()\n\tr.list = l\n\tr.i = -1\n\treturn r\n}\n\ntype listUnstructuredRange struct {\n\tlist listUnstructured\n\tvv   *valueUnstructured\n\ti    int\n}\n\nfunc (r *listUnstructuredRange) Next() bool {\n\tr.i += 1\n\treturn r.i < len(r.list)\n}\n\nfunc (r *listUnstructuredRange) Item() (index int, value Value) {\n\tif r.i < 0 {\n\t\tpanic(\"Item() called before first calling Next()\")\n\t}\n\tif r.i >= len(r.list) {\n\t\tpanic(\"Item() called on ListRange with no more items\")\n\t}\n\treturn r.i, r.vv.reuse(r.list[r.i])\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/value/map.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage value\n\nimport (\n\t\"sort\"\n)\n\n// Map represents a Map or go structure.\ntype Map interface {\n\t// Set changes or set the value of the given key.\n\tSet(key string, val Value)\n\t// Get returns the value for the given key, if present, or (nil, false) otherwise.\n\tGet(key string) (Value, bool)\n\t// GetUsing uses the provided allocator and returns the value for the given key,\n\t// if present, or (nil, false) otherwise.\n\t// The returned Value should be given back to the Allocator when no longer needed\n\t// by calling Allocator.Free(Value).\n\tGetUsing(a Allocator, key string) (Value, bool)\n\t// Has returns true if the key is present, or false otherwise.\n\tHas(key string) bool\n\t// Delete removes the key from the map.\n\tDelete(key string)\n\t// Equals compares the two maps, and return true if they are the same, false otherwise.\n\t// Implementations can use MapEquals as a general implementation for this methods.\n\tEquals(other Map) bool\n\t// EqualsUsing uses the provided allocator and compares the two maps, and return true if\n\t// they are the same, false otherwise. Implementations can use MapEqualsUsing as a general\n\t// implementation for this methods.\n\tEqualsUsing(a Allocator, other Map) bool\n\t// Iterate runs the given function for each key/value in the\n\t// map. Returning false in the closure prematurely stops the\n\t// iteration.\n\tIterate(func(key string, value Value) bool) bool\n\t// IterateUsing uses the provided allocator and runs the given function for each key/value\n\t// in the map. Returning false in the closure prematurely stops the iteration.\n\tIterateUsing(Allocator, func(key string, value Value) bool) bool\n\t// Length returns the number of items in the map.\n\tLength() int\n\t// Empty returns true if the map is empty.\n\tEmpty() bool\n\t// Zip iterates over the entries of two maps together. If both maps contain a value for a given key, fn is called\n\t// with the values from both maps, otherwise it is called with the value of the map that contains the key and nil\n\t// for the map that does not contain the key. Returning false in the closure prematurely stops the iteration.\n\tZip(other Map, order MapTraverseOrder, fn func(key string, lhs, rhs Value) bool) bool\n\t// ZipUsing uses the provided allocator and iterates over the entries of two maps together. If both maps\n\t// contain a value for a given key, fn is called with the values from both maps, otherwise it is called with\n\t// the value of the map that contains the key and nil for the map that does not contain the key. Returning\n\t// false in the closure prematurely stops the iteration.\n\tZipUsing(a Allocator, other Map, order MapTraverseOrder, fn func(key string, lhs, rhs Value) bool) bool\n}\n\n// MapTraverseOrder defines the map traversal ordering available.\ntype MapTraverseOrder int\n\nconst (\n\t// Unordered indicates that the map traversal has no ordering requirement.\n\tUnordered = iota\n\t// LexicalKeyOrder indicates that the map traversal is ordered by key, lexically.\n\tLexicalKeyOrder\n)\n\n// MapZip iterates over the entries of two maps together. If both maps contain a value for a given key, fn is called\n// with the values from both maps, otherwise it is called with the value of the map that contains the key and nil\n// for the other map. Returning false in the closure prematurely stops the iteration.\nfunc MapZip(lhs, rhs Map, order MapTraverseOrder, fn func(key string, lhs, rhs Value) bool) bool {\n\treturn MapZipUsing(HeapAllocator, lhs, rhs, order, fn)\n}\n\n// MapZipUsing uses the provided allocator and iterates over the entries of two maps together. If both maps\n// contain a value for a given key, fn is called with the values from both maps, otherwise it is called with\n// the value of the map that contains the key and nil for the other map. Returning false in the closure\n// prematurely stops the iteration.\nfunc MapZipUsing(a Allocator, lhs, rhs Map, order MapTraverseOrder, fn func(key string, lhs, rhs Value) bool) bool {\n\tif lhs != nil {\n\t\treturn lhs.ZipUsing(a, rhs, order, fn)\n\t}\n\tif rhs != nil {\n\t\treturn rhs.ZipUsing(a, lhs, order, func(key string, rhs, lhs Value) bool { // arg positions of lhs and rhs deliberately swapped\n\t\t\treturn fn(key, lhs, rhs)\n\t\t})\n\t}\n\treturn true\n}\n\n// defaultMapZip provides a default implementation of Zip for implementations that do not need to provide\n// their own optimized implementation.\nfunc defaultMapZip(a Allocator, lhs, rhs Map, order MapTraverseOrder, fn func(key string, lhs, rhs Value) bool) bool {\n\tswitch order {\n\tcase Unordered:\n\t\treturn unorderedMapZip(a, lhs, rhs, fn)\n\tcase LexicalKeyOrder:\n\t\treturn lexicalKeyOrderedMapZip(a, lhs, rhs, fn)\n\tdefault:\n\t\tpanic(\"Unsupported map order\")\n\t}\n}\n\nfunc unorderedMapZip(a Allocator, lhs, rhs Map, fn func(key string, lhs, rhs Value) bool) bool {\n\tif (lhs == nil || lhs.Empty()) && (rhs == nil || rhs.Empty()) {\n\t\treturn true\n\t}\n\n\tif lhs != nil {\n\t\tok := lhs.IterateUsing(a, func(key string, lhsValue Value) bool {\n\t\t\tvar rhsValue Value\n\t\t\tif rhs != nil {\n\t\t\t\tif item, ok := rhs.GetUsing(a, key); ok {\n\t\t\t\t\trhsValue = item\n\t\t\t\t\tdefer a.Free(rhsValue)\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn fn(key, lhsValue, rhsValue)\n\t\t})\n\t\tif !ok {\n\t\t\treturn false\n\t\t}\n\t}\n\tif rhs != nil {\n\t\treturn rhs.IterateUsing(a, func(key string, rhsValue Value) bool {\n\t\t\tif lhs == nil || !lhs.Has(key) {\n\t\t\t\treturn fn(key, nil, rhsValue)\n\t\t\t}\n\t\t\treturn true\n\t\t})\n\t}\n\treturn true\n}\n\nfunc lexicalKeyOrderedMapZip(a Allocator, lhs, rhs Map, fn func(key string, lhs, rhs Value) bool) bool {\n\tvar lhsLength, rhsLength int\n\tvar orderedLength int // rough estimate of length of union of map keys\n\tif lhs != nil {\n\t\tlhsLength = lhs.Length()\n\t\torderedLength = lhsLength\n\t}\n\tif rhs != nil {\n\t\trhsLength = rhs.Length()\n\t\tif rhsLength > orderedLength {\n\t\t\torderedLength = rhsLength\n\t\t}\n\t}\n\tif lhsLength == 0 && rhsLength == 0 {\n\t\treturn true\n\t}\n\n\tordered := make([]string, 0, orderedLength)\n\tif lhs != nil {\n\t\tlhs.IterateUsing(a, func(key string, _ Value) bool {\n\t\t\tordered = append(ordered, key)\n\t\t\treturn true\n\t\t})\n\t}\n\tif rhs != nil {\n\t\trhs.IterateUsing(a, func(key string, _ Value) bool {\n\t\t\tif lhs == nil || !lhs.Has(key) {\n\t\t\t\tordered = append(ordered, key)\n\t\t\t}\n\t\t\treturn true\n\t\t})\n\t}\n\tsort.Strings(ordered)\n\tfor _, key := range ordered {\n\t\tvar litem, ritem Value\n\t\tif lhs != nil {\n\t\t\tlitem, _ = lhs.GetUsing(a, key)\n\t\t}\n\t\tif rhs != nil {\n\t\t\tritem, _ = rhs.GetUsing(a, key)\n\t\t}\n\t\tok := fn(key, litem, ritem)\n\t\tif litem != nil {\n\t\t\ta.Free(litem)\n\t\t}\n\t\tif ritem != nil {\n\t\t\ta.Free(ritem)\n\t\t}\n\t\tif !ok {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// MapLess compares two maps lexically.\nfunc MapLess(lhs, rhs Map) bool {\n\treturn MapCompare(lhs, rhs) == -1\n}\n\n// MapCompare compares two maps lexically.\nfunc MapCompare(lhs, rhs Map) int {\n\treturn MapCompareUsing(HeapAllocator, lhs, rhs)\n}\n\n// MapCompareUsing uses the provided allocator and compares two maps lexically.\nfunc MapCompareUsing(a Allocator, lhs, rhs Map) int {\n\tc := 0\n\tvar llength, rlength int\n\tif lhs != nil {\n\t\tllength = lhs.Length()\n\t}\n\tif rhs != nil {\n\t\trlength = rhs.Length()\n\t}\n\tif llength == 0 && rlength == 0 {\n\t\treturn 0\n\t}\n\ti := 0\n\tMapZipUsing(a, lhs, rhs, LexicalKeyOrder, func(key string, lhs, rhs Value) bool {\n\t\tswitch {\n\t\tcase i == llength:\n\t\t\tc = -1\n\t\tcase i == rlength:\n\t\t\tc = 1\n\t\tcase lhs == nil:\n\t\t\tc = 1\n\t\tcase rhs == nil:\n\t\t\tc = -1\n\t\tdefault:\n\t\t\tc = CompareUsing(a, lhs, rhs)\n\t\t}\n\t\ti++\n\t\treturn c == 0\n\t})\n\treturn c\n}\n\n// MapEquals returns true if lhs == rhs, false otherwise. This function\n// acts on generic types and should not be used by callers, but can help\n// implement Map.Equals.\n// WARN: This is a naive implementation, calling lhs.Equals(rhs) is typically the most efficient.\nfunc MapEquals(lhs, rhs Map) bool {\n\treturn MapEqualsUsing(HeapAllocator, lhs, rhs)\n}\n\n// MapEqualsUsing uses the provided allocator and returns true if lhs == rhs,\n// false otherwise. This function acts on generic types and should not be used\n// by callers, but can help implement Map.Equals.\n// WARN: This is a naive implementation, calling lhs.EqualsUsing(allocator, rhs) is typically the most efficient.\nfunc MapEqualsUsing(a Allocator, lhs, rhs Map) bool {\n\tif lhs == nil && rhs == nil {\n\t\treturn true\n\t}\n\tif lhs == nil || rhs == nil {\n\t\treturn false\n\t}\n\tif lhs.Length() != rhs.Length() {\n\t\treturn false\n\t}\n\treturn MapZipUsing(a, lhs, rhs, Unordered, func(key string, lhs, rhs Value) bool {\n\t\tif lhs == nil || rhs == nil {\n\t\t\treturn false\n\t\t}\n\t\treturn EqualsUsing(a, lhs, rhs)\n\t})\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/value/mapreflect.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage value\n\nimport (\n\t\"reflect\"\n)\n\ntype mapReflect struct {\n\tvalueReflect\n}\n\nfunc (r mapReflect) Length() int {\n\tval := r.Value\n\treturn val.Len()\n}\n\nfunc (r mapReflect) Empty() bool {\n\tval := r.Value\n\treturn val.Len() == 0\n}\n\nfunc (r mapReflect) Get(key string) (Value, bool) {\n\treturn r.GetUsing(HeapAllocator, key)\n}\n\nfunc (r mapReflect) GetUsing(a Allocator, key string) (Value, bool) {\n\tk, v, ok := r.get(key)\n\tif !ok {\n\t\treturn nil, false\n\t}\n\treturn a.allocValueReflect().mustReuse(v, nil, &r.Value, &k), true\n}\n\nfunc (r mapReflect) get(k string) (key, value reflect.Value, ok bool) {\n\tmapKey := r.toMapKey(k)\n\tval := r.Value.MapIndex(mapKey)\n\treturn mapKey, val, val.IsValid() && val != reflect.Value{}\n}\n\nfunc (r mapReflect) Has(key string) bool {\n\tvar val reflect.Value\n\tval = r.Value.MapIndex(r.toMapKey(key))\n\tif !val.IsValid() {\n\t\treturn false\n\t}\n\treturn val != reflect.Value{}\n}\n\nfunc (r mapReflect) Set(key string, val Value) {\n\tr.Value.SetMapIndex(r.toMapKey(key), reflect.ValueOf(val.Unstructured()))\n}\n\nfunc (r mapReflect) Delete(key string) {\n\tval := r.Value\n\tval.SetMapIndex(r.toMapKey(key), reflect.Value{})\n}\n\n// TODO: Do we need to support types that implement json.Marshaler and are used as string keys?\nfunc (r mapReflect) toMapKey(key string) reflect.Value {\n\tval := r.Value\n\treturn reflect.ValueOf(key).Convert(val.Type().Key())\n}\n\nfunc (r mapReflect) Iterate(fn func(string, Value) bool) bool {\n\treturn r.IterateUsing(HeapAllocator, fn)\n}\n\nfunc (r mapReflect) IterateUsing(a Allocator, fn func(string, Value) bool) bool {\n\tif r.Value.Len() == 0 {\n\t\treturn true\n\t}\n\tv := a.allocValueReflect()\n\tdefer a.Free(v)\n\treturn eachMapEntry(r.Value, func(e *TypeReflectCacheEntry, key reflect.Value, value reflect.Value) bool {\n\t\treturn fn(key.String(), v.mustReuse(value, e, &r.Value, &key))\n\t})\n}\n\nfunc eachMapEntry(val reflect.Value, fn func(*TypeReflectCacheEntry, reflect.Value, reflect.Value) bool) bool {\n\titer := val.MapRange()\n\tentry := TypeReflectEntryOf(val.Type().Elem())\n\tfor iter.Next() {\n\t\tnext := iter.Value()\n\t\tif !next.IsValid() {\n\t\t\tcontinue\n\t\t}\n\t\tif !fn(entry, iter.Key(), next) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc (r mapReflect) Unstructured() interface{} {\n\tresult := make(map[string]interface{}, r.Length())\n\tr.Iterate(func(s string, value Value) bool {\n\t\tresult[s] = value.Unstructured()\n\t\treturn true\n\t})\n\treturn result\n}\n\nfunc (r mapReflect) Equals(m Map) bool {\n\treturn r.EqualsUsing(HeapAllocator, m)\n}\n\nfunc (r mapReflect) EqualsUsing(a Allocator, m Map) bool {\n\tlhsLength := r.Length()\n\trhsLength := m.Length()\n\tif lhsLength != rhsLength {\n\t\treturn false\n\t}\n\tif lhsLength == 0 {\n\t\treturn true\n\t}\n\tvr := a.allocValueReflect()\n\tdefer a.Free(vr)\n\tentry := TypeReflectEntryOf(r.Value.Type().Elem())\n\treturn m.Iterate(func(key string, value Value) bool {\n\t\t_, lhsVal, ok := r.get(key)\n\t\tif !ok {\n\t\t\treturn false\n\t\t}\n\t\treturn EqualsUsing(a, vr.mustReuse(lhsVal, entry, nil, nil), value)\n\t})\n}\n\nfunc (r mapReflect) Zip(other Map, order MapTraverseOrder, fn func(key string, lhs, rhs Value) bool) bool {\n\treturn r.ZipUsing(HeapAllocator, other, order, fn)\n}\n\nfunc (r mapReflect) ZipUsing(a Allocator, other Map, order MapTraverseOrder, fn func(key string, lhs, rhs Value) bool) bool {\n\tif otherMapReflect, ok := other.(*mapReflect); ok && order == Unordered {\n\t\treturn r.unorderedReflectZip(a, otherMapReflect, fn)\n\t}\n\treturn defaultMapZip(a, &r, other, order, fn)\n}\n\n// unorderedReflectZip provides an optimized unordered zip for mapReflect types.\nfunc (r mapReflect) unorderedReflectZip(a Allocator, other *mapReflect, fn func(key string, lhs, rhs Value) bool) bool {\n\tif r.Empty() && (other == nil || other.Empty()) {\n\t\treturn true\n\t}\n\n\tlhs := r.Value\n\tlhsEntry := TypeReflectEntryOf(lhs.Type().Elem())\n\n\t// map lookup via reflection is expensive enough that it is better to keep track of visited keys\n\tvisited := map[string]struct{}{}\n\n\tvlhs, vrhs := a.allocValueReflect(), a.allocValueReflect()\n\tdefer a.Free(vlhs)\n\tdefer a.Free(vrhs)\n\n\tif other != nil {\n\t\trhs := other.Value\n\t\trhsEntry := TypeReflectEntryOf(rhs.Type().Elem())\n\t\titer := rhs.MapRange()\n\n\t\tfor iter.Next() {\n\t\t\tkey := iter.Key()\n\t\t\tkeyString := key.String()\n\t\t\tnext := iter.Value()\n\t\t\tif !next.IsValid() {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\trhsVal := vrhs.mustReuse(next, rhsEntry, &rhs, &key)\n\t\t\tvisited[keyString] = struct{}{}\n\t\t\tvar lhsVal Value\n\t\t\tif _, v, ok := r.get(keyString); ok {\n\t\t\t\tlhsVal = vlhs.mustReuse(v, lhsEntry, &lhs, &key)\n\t\t\t}\n\t\t\tif !fn(keyString, lhsVal, rhsVal) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\titer := lhs.MapRange()\n\tfor iter.Next() {\n\t\tkey := iter.Key()\n\t\tif _, ok := visited[key.String()]; ok {\n\t\t\tcontinue\n\t\t}\n\t\tnext := iter.Value()\n\t\tif !next.IsValid() {\n\t\t\tcontinue\n\t\t}\n\t\tif !fn(key.String(), vlhs.mustReuse(next, lhsEntry, &lhs, &key), nil) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/value/mapunstructured.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage value\n\ntype mapUnstructuredInterface map[interface{}]interface{}\n\nfunc (m mapUnstructuredInterface) Set(key string, val Value) {\n\tm[key] = val.Unstructured()\n}\n\nfunc (m mapUnstructuredInterface) Get(key string) (Value, bool) {\n\treturn m.GetUsing(HeapAllocator, key)\n}\n\nfunc (m mapUnstructuredInterface) GetUsing(a Allocator, key string) (Value, bool) {\n\tif v, ok := m[key]; !ok {\n\t\treturn nil, false\n\t} else {\n\t\treturn a.allocValueUnstructured().reuse(v), true\n\t}\n}\n\nfunc (m mapUnstructuredInterface) Has(key string) bool {\n\t_, ok := m[key]\n\treturn ok\n}\n\nfunc (m mapUnstructuredInterface) Delete(key string) {\n\tdelete(m, key)\n}\n\nfunc (m mapUnstructuredInterface) Iterate(fn func(key string, value Value) bool) bool {\n\treturn m.IterateUsing(HeapAllocator, fn)\n}\n\nfunc (m mapUnstructuredInterface) IterateUsing(a Allocator, fn func(key string, value Value) bool) bool {\n\tif len(m) == 0 {\n\t\treturn true\n\t}\n\tvv := a.allocValueUnstructured()\n\tdefer a.Free(vv)\n\tfor k, v := range m {\n\t\tif ks, ok := k.(string); !ok {\n\t\t\tcontinue\n\t\t} else {\n\t\t\tif !fn(ks, vv.reuse(v)) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\treturn true\n}\n\nfunc (m mapUnstructuredInterface) Length() int {\n\treturn len(m)\n}\n\nfunc (m mapUnstructuredInterface) Empty() bool {\n\treturn len(m) == 0\n}\n\nfunc (m mapUnstructuredInterface) Equals(other Map) bool {\n\treturn m.EqualsUsing(HeapAllocator, other)\n}\n\nfunc (m mapUnstructuredInterface) EqualsUsing(a Allocator, other Map) bool {\n\tlhsLength := m.Length()\n\trhsLength := other.Length()\n\tif lhsLength != rhsLength {\n\t\treturn false\n\t}\n\tif lhsLength == 0 {\n\t\treturn true\n\t}\n\tvv := a.allocValueUnstructured()\n\tdefer a.Free(vv)\n\treturn other.IterateUsing(a, func(key string, value Value) bool {\n\t\tlhsVal, ok := m[key]\n\t\tif !ok {\n\t\t\treturn false\n\t\t}\n\t\treturn EqualsUsing(a, vv.reuse(lhsVal), value)\n\t})\n}\n\nfunc (m mapUnstructuredInterface) Zip(other Map, order MapTraverseOrder, fn func(key string, lhs, rhs Value) bool) bool {\n\treturn m.ZipUsing(HeapAllocator, other, order, fn)\n}\n\nfunc (m mapUnstructuredInterface) ZipUsing(a Allocator, other Map, order MapTraverseOrder, fn func(key string, lhs, rhs Value) bool) bool {\n\treturn defaultMapZip(a, m, other, order, fn)\n}\n\ntype mapUnstructuredString map[string]interface{}\n\nfunc (m mapUnstructuredString) Set(key string, val Value) {\n\tm[key] = val.Unstructured()\n}\n\nfunc (m mapUnstructuredString) Get(key string) (Value, bool) {\n\treturn m.GetUsing(HeapAllocator, key)\n}\nfunc (m mapUnstructuredString) GetUsing(a Allocator, key string) (Value, bool) {\n\tif v, ok := m[key]; !ok {\n\t\treturn nil, false\n\t} else {\n\t\treturn a.allocValueUnstructured().reuse(v), true\n\t}\n}\n\nfunc (m mapUnstructuredString) Has(key string) bool {\n\t_, ok := m[key]\n\treturn ok\n}\n\nfunc (m mapUnstructuredString) Delete(key string) {\n\tdelete(m, key)\n}\n\nfunc (m mapUnstructuredString) Iterate(fn func(key string, value Value) bool) bool {\n\treturn m.IterateUsing(HeapAllocator, fn)\n}\n\nfunc (m mapUnstructuredString) IterateUsing(a Allocator, fn func(key string, value Value) bool) bool {\n\tif len(m) == 0 {\n\t\treturn true\n\t}\n\tvv := a.allocValueUnstructured()\n\tdefer a.Free(vv)\n\tfor k, v := range m {\n\t\tif !fn(k, vv.reuse(v)) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc (m mapUnstructuredString) Length() int {\n\treturn len(m)\n}\n\nfunc (m mapUnstructuredString) Equals(other Map) bool {\n\treturn m.EqualsUsing(HeapAllocator, other)\n}\n\nfunc (m mapUnstructuredString) EqualsUsing(a Allocator, other Map) bool {\n\tlhsLength := m.Length()\n\trhsLength := other.Length()\n\tif lhsLength != rhsLength {\n\t\treturn false\n\t}\n\tif lhsLength == 0 {\n\t\treturn true\n\t}\n\tvv := a.allocValueUnstructured()\n\tdefer a.Free(vv)\n\treturn other.IterateUsing(a, func(key string, value Value) bool {\n\t\tlhsVal, ok := m[key]\n\t\tif !ok {\n\t\t\treturn false\n\t\t}\n\t\treturn EqualsUsing(a, vv.reuse(lhsVal), value)\n\t})\n}\n\nfunc (m mapUnstructuredString) Zip(other Map, order MapTraverseOrder, fn func(key string, lhs, rhs Value) bool) bool {\n\treturn m.ZipUsing(HeapAllocator, other, order, fn)\n}\n\nfunc (m mapUnstructuredString) ZipUsing(a Allocator, other Map, order MapTraverseOrder, fn func(key string, lhs, rhs Value) bool) bool {\n\treturn defaultMapZip(a, m, other, order, fn)\n}\n\nfunc (m mapUnstructuredString) Empty() bool {\n\treturn len(m) == 0\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/value/reflectcache.go",
    "content": "/*\nCopyright 2020 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage value\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n\t\"sort\"\n\t\"sync\"\n\t\"sync/atomic\"\n)\n\n// UnstructuredConverter defines how a type can be converted directly to unstructured.\n// Types that implement json.Marshaler may also optionally implement this interface to provide a more\n// direct and more efficient conversion. All types that choose to implement this interface must still\n// implement this same conversion via json.Marshaler.\ntype UnstructuredConverter interface {\n\tjson.Marshaler // require that json.Marshaler is implemented\n\n\t// ToUnstructured returns the unstructured representation.\n\tToUnstructured() interface{}\n}\n\n// TypeReflectCacheEntry keeps data gathered using reflection about how a type is converted to/from unstructured.\ntype TypeReflectCacheEntry struct {\n\tisJsonMarshaler        bool\n\tptrIsJsonMarshaler     bool\n\tisJsonUnmarshaler      bool\n\tptrIsJsonUnmarshaler   bool\n\tisStringConvertable    bool\n\tptrIsStringConvertable bool\n\n\tstructFields        map[string]*FieldCacheEntry\n\torderedStructFields []*FieldCacheEntry\n}\n\n// FieldCacheEntry keeps data gathered using reflection about how the field of a struct is converted to/from\n// unstructured.\ntype FieldCacheEntry struct {\n\t// JsonName returns the name of the field according to the json tags on the struct field.\n\tJsonName string\n\t// isOmitEmpty is true if the field has the json 'omitempty' tag.\n\tisOmitEmpty bool\n\t// fieldPath is a list of field indices (see FieldByIndex) to lookup the value of\n\t// a field in a reflect.Value struct. The field indices in the list form a path used\n\t// to traverse through intermediary 'inline' fields.\n\tfieldPath [][]int\n\n\tfieldType reflect.Type\n\tTypeEntry *TypeReflectCacheEntry\n}\n\nfunc (f *FieldCacheEntry) CanOmit(fieldVal reflect.Value) bool {\n\treturn f.isOmitEmpty && (safeIsNil(fieldVal) || isZero(fieldVal))\n}\n\n// GetFrom returns the field identified by this FieldCacheEntry from the provided struct.\nfunc (f *FieldCacheEntry) GetFrom(structVal reflect.Value) reflect.Value {\n\t// field might be nested within 'inline' structs\n\tfor _, elem := range f.fieldPath {\n\t\tstructVal = dereference(structVal).FieldByIndex(elem)\n\t}\n\treturn structVal\n}\n\nvar marshalerType = reflect.TypeOf(new(json.Marshaler)).Elem()\nvar unmarshalerType = reflect.TypeOf(new(json.Unmarshaler)).Elem()\nvar unstructuredConvertableType = reflect.TypeOf(new(UnstructuredConverter)).Elem()\nvar defaultReflectCache = newReflectCache()\n\n// TypeReflectEntryOf returns the TypeReflectCacheEntry of the provided reflect.Type.\nfunc TypeReflectEntryOf(t reflect.Type) *TypeReflectCacheEntry {\n\tcm := defaultReflectCache.get()\n\tif record, ok := cm[t]; ok {\n\t\treturn record\n\t}\n\tupdates := reflectCacheMap{}\n\tresult := typeReflectEntryOf(cm, t, updates)\n\tif len(updates) > 0 {\n\t\tdefaultReflectCache.update(updates)\n\t}\n\treturn result\n}\n\n// TypeReflectEntryOf returns all updates needed to add provided reflect.Type, and the types its fields transitively\n// depend on, to the cache.\nfunc typeReflectEntryOf(cm reflectCacheMap, t reflect.Type, updates reflectCacheMap) *TypeReflectCacheEntry {\n\tif record, ok := cm[t]; ok {\n\t\treturn record\n\t}\n\tif record, ok := updates[t]; ok {\n\t\treturn record\n\t}\n\ttypeEntry := &TypeReflectCacheEntry{\n\t\tisJsonMarshaler:        t.Implements(marshalerType),\n\t\tptrIsJsonMarshaler:     reflect.PtrTo(t).Implements(marshalerType),\n\t\tisJsonUnmarshaler:      reflect.PtrTo(t).Implements(unmarshalerType),\n\t\tisStringConvertable:    t.Implements(unstructuredConvertableType),\n\t\tptrIsStringConvertable: reflect.PtrTo(t).Implements(unstructuredConvertableType),\n\t}\n\tif t.Kind() == reflect.Struct {\n\t\tfieldEntries := map[string]*FieldCacheEntry{}\n\t\tbuildStructCacheEntry(t, fieldEntries, nil)\n\t\ttypeEntry.structFields = fieldEntries\n\t\tsortedByJsonName := make([]*FieldCacheEntry, len(fieldEntries))\n\t\ti := 0\n\t\tfor _, entry := range fieldEntries {\n\t\t\tsortedByJsonName[i] = entry\n\t\t\ti++\n\t\t}\n\t\tsort.Slice(sortedByJsonName, func(i, j int) bool {\n\t\t\treturn sortedByJsonName[i].JsonName < sortedByJsonName[j].JsonName\n\t\t})\n\t\ttypeEntry.orderedStructFields = sortedByJsonName\n\t}\n\n\t// cyclic type references are allowed, so we must add the typeEntry to the updates map before resolving\n\t// the field.typeEntry references, or creating them if they are not already in the cache\n\tupdates[t] = typeEntry\n\n\tfor _, field := range typeEntry.structFields {\n\t\tif field.TypeEntry == nil {\n\t\t\tfield.TypeEntry = typeReflectEntryOf(cm, field.fieldType, updates)\n\t\t}\n\t}\n\treturn typeEntry\n}\n\nfunc buildStructCacheEntry(t reflect.Type, infos map[string]*FieldCacheEntry, fieldPath [][]int) {\n\tfor i := 0; i < t.NumField(); i++ {\n\t\tfield := t.Field(i)\n\t\tjsonName, omit, isInline, isOmitempty := lookupJsonTags(field)\n\t\tif omit {\n\t\t\tcontinue\n\t\t}\n\t\tif isInline {\n\t\t\te := field.Type\n\t\t\tif field.Type.Kind() == reflect.Ptr {\n\t\t\t\te = field.Type.Elem()\n\t\t\t}\n\t\t\tif e.Kind() == reflect.Struct {\n\t\t\t\tbuildStructCacheEntry(e, infos, append(fieldPath, field.Index))\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\t\tinfo := &FieldCacheEntry{JsonName: jsonName, isOmitEmpty: isOmitempty, fieldPath: append(fieldPath, field.Index), fieldType: field.Type}\n\t\tinfos[jsonName] = info\n\t}\n}\n\n// Fields returns a map of JSON field name to FieldCacheEntry for structs, or nil for non-structs.\nfunc (e TypeReflectCacheEntry) Fields() map[string]*FieldCacheEntry {\n\treturn e.structFields\n}\n\n// Fields returns a map of JSON field name to FieldCacheEntry for structs, or nil for non-structs.\nfunc (e TypeReflectCacheEntry) OrderedFields() []*FieldCacheEntry {\n\treturn e.orderedStructFields\n}\n\n// CanConvertToUnstructured returns true if this TypeReflectCacheEntry can convert values of its type to unstructured.\nfunc (e TypeReflectCacheEntry) CanConvertToUnstructured() bool {\n\treturn e.isJsonMarshaler || e.ptrIsJsonMarshaler || e.isStringConvertable || e.ptrIsStringConvertable\n}\n\n// ToUnstructured converts the provided value to unstructured and returns it.\nfunc (e TypeReflectCacheEntry) ToUnstructured(sv reflect.Value) (interface{}, error) {\n\t// This is based on https://github.com/kubernetes/kubernetes/blob/82c9e5c814eb7acc6cc0a090c057294d0667ad66/staging/src/k8s.io/apimachinery/pkg/runtime/converter.go#L505\n\t// and is intended to replace it.\n\n\t// Check if the object is a nil pointer.\n\tif sv.Kind() == reflect.Ptr && sv.IsNil() {\n\t\t// We're done - we don't need to store anything.\n\t\treturn nil, nil\n\t}\n\t// Check if the object has a custom string converter and use it if available, since it is much more efficient\n\t// than round tripping through json.\n\tif converter, ok := e.getUnstructuredConverter(sv); ok {\n\t\treturn converter.ToUnstructured(), nil\n\t}\n\t// Check if the object has a custom JSON marshaller/unmarshaller.\n\tif marshaler, ok := e.getJsonMarshaler(sv); ok {\n\t\tdata, err := marshaler.MarshalJSON()\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tswitch {\n\t\tcase len(data) == 0:\n\t\t\treturn nil, fmt.Errorf(\"error decoding from json: empty value\")\n\n\t\tcase bytes.Equal(data, nullBytes):\n\t\t\t// We're done - we don't need to store anything.\n\t\t\treturn nil, nil\n\n\t\tcase bytes.Equal(data, trueBytes):\n\t\t\treturn true, nil\n\n\t\tcase bytes.Equal(data, falseBytes):\n\t\t\treturn false, nil\n\n\t\tcase data[0] == '\"':\n\t\t\tvar result string\n\t\t\terr := unmarshal(data, &result)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"error decoding string from json: %v\", err)\n\t\t\t}\n\t\t\treturn result, nil\n\n\t\tcase data[0] == '{':\n\t\t\tresult := make(map[string]interface{})\n\t\t\terr := unmarshal(data, &result)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"error decoding object from json: %v\", err)\n\t\t\t}\n\t\t\treturn result, nil\n\n\t\tcase data[0] == '[':\n\t\t\tresult := make([]interface{}, 0)\n\t\t\terr := unmarshal(data, &result)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"error decoding array from json: %v\", err)\n\t\t\t}\n\t\t\treturn result, nil\n\n\t\tdefault:\n\t\t\tvar (\n\t\t\t\tresultInt   int64\n\t\t\t\tresultFloat float64\n\t\t\t\terr         error\n\t\t\t)\n\t\t\tif err = unmarshal(data, &resultInt); err == nil {\n\t\t\t\treturn resultInt, nil\n\t\t\t} else if err = unmarshal(data, &resultFloat); err == nil {\n\t\t\t\treturn resultFloat, nil\n\t\t\t} else {\n\t\t\t\treturn nil, fmt.Errorf(\"error decoding number from json: %v\", err)\n\t\t\t}\n\t\t}\n\t}\n\n\treturn nil, fmt.Errorf(\"provided type cannot be converted: %v\", sv.Type())\n}\n\n// CanConvertFromUnstructured returns true if this TypeReflectCacheEntry can convert objects of the type from unstructured.\nfunc (e TypeReflectCacheEntry) CanConvertFromUnstructured() bool {\n\treturn e.isJsonUnmarshaler\n}\n\n// FromUnstructured converts the provided source value from unstructured into the provided destination value.\nfunc (e TypeReflectCacheEntry) FromUnstructured(sv, dv reflect.Value) error {\n\t// TODO: this could be made much more efficient using direct conversions like\n\t// UnstructuredConverter.ToUnstructured provides.\n\tst := dv.Type()\n\tdata, err := json.Marshal(sv.Interface())\n\tif err != nil {\n\t\treturn fmt.Errorf(\"error encoding %s to json: %v\", st.String(), err)\n\t}\n\tif unmarshaler, ok := e.getJsonUnmarshaler(dv); ok {\n\t\treturn unmarshaler.UnmarshalJSON(data)\n\t}\n\treturn fmt.Errorf(\"unable to unmarshal %v into %v\", sv.Type(), dv.Type())\n}\n\nvar (\n\tnullBytes  = []byte(\"null\")\n\ttrueBytes  = []byte(\"true\")\n\tfalseBytes = []byte(\"false\")\n)\n\nfunc (e TypeReflectCacheEntry) getJsonMarshaler(v reflect.Value) (json.Marshaler, bool) {\n\tif e.isJsonMarshaler {\n\t\treturn v.Interface().(json.Marshaler), true\n\t}\n\tif e.ptrIsJsonMarshaler {\n\t\t// Check pointer receivers if v is not a pointer\n\t\tif v.Kind() != reflect.Ptr && v.CanAddr() {\n\t\t\tv = v.Addr()\n\t\t\treturn v.Interface().(json.Marshaler), true\n\t\t}\n\t}\n\treturn nil, false\n}\n\nfunc (e TypeReflectCacheEntry) getJsonUnmarshaler(v reflect.Value) (json.Unmarshaler, bool) {\n\tif !e.isJsonUnmarshaler {\n\t\treturn nil, false\n\t}\n\treturn v.Addr().Interface().(json.Unmarshaler), true\n}\n\nfunc (e TypeReflectCacheEntry) getUnstructuredConverter(v reflect.Value) (UnstructuredConverter, bool) {\n\tif e.isStringConvertable {\n\t\treturn v.Interface().(UnstructuredConverter), true\n\t}\n\tif e.ptrIsStringConvertable {\n\t\t// Check pointer receivers if v is not a pointer\n\t\tif v.CanAddr() {\n\t\t\tv = v.Addr()\n\t\t\treturn v.Interface().(UnstructuredConverter), true\n\t\t}\n\t}\n\treturn nil, false\n}\n\ntype typeReflectCache struct {\n\t// use an atomic and copy-on-write since there are a fixed (typically very small) number of structs compiled into any\n\t// go program using this cache\n\tvalue atomic.Value\n\t// mu is held by writers when performing load/modify/store operations on the cache, readers do not need to hold a\n\t// read-lock since the atomic value is always read-only\n\tmu sync.Mutex\n}\n\nfunc newReflectCache() *typeReflectCache {\n\tcache := &typeReflectCache{}\n\tcache.value.Store(make(reflectCacheMap))\n\treturn cache\n}\n\ntype reflectCacheMap map[reflect.Type]*TypeReflectCacheEntry\n\n// get returns the reflectCacheMap.\nfunc (c *typeReflectCache) get() reflectCacheMap {\n\treturn c.value.Load().(reflectCacheMap)\n}\n\n// update merges the provided updates into the cache.\nfunc (c *typeReflectCache) update(updates reflectCacheMap) {\n\tc.mu.Lock()\n\tdefer c.mu.Unlock()\n\n\tcurrentCacheMap := c.value.Load().(reflectCacheMap)\n\n\thasNewEntries := false\n\tfor t := range updates {\n\t\tif _, ok := currentCacheMap[t]; !ok {\n\t\t\thasNewEntries = true\n\t\t\tbreak\n\t\t}\n\t}\n\tif !hasNewEntries {\n\t\t// Bail if the updates have been set while waiting for lock acquisition.\n\t\t// This is safe since setting entries is idempotent.\n\t\treturn\n\t}\n\n\tnewCacheMap := make(reflectCacheMap, len(currentCacheMap)+len(updates))\n\tfor k, v := range currentCacheMap {\n\t\tnewCacheMap[k] = v\n\t}\n\tfor t, update := range updates {\n\t\tnewCacheMap[t] = update\n\t}\n\tc.value.Store(newCacheMap)\n}\n\n// Below json Unmarshal is fromk8s.io/apimachinery/pkg/util/json\n// to handle number conversions as expected by Kubernetes\n\n// limit recursive depth to prevent stack overflow errors\nconst maxDepth = 10000\n\n// unmarshal unmarshals the given data\n// If v is a *map[string]interface{}, numbers are converted to int64 or float64\nfunc unmarshal(data []byte, v interface{}) error {\n\t// Build a decoder from the given data\n\tdecoder := json.NewDecoder(bytes.NewBuffer(data))\n\t// Preserve numbers, rather than casting to float64 automatically\n\tdecoder.UseNumber()\n\t// Run the decode\n\tif err := decoder.Decode(v); err != nil {\n\t\treturn err\n\t}\n\tnext := decoder.InputOffset()\n\tif _, err := decoder.Token(); !errors.Is(err, io.EOF) {\n\t\ttail := bytes.TrimLeft(data[next:], \" \\t\\r\\n\")\n\t\treturn fmt.Errorf(\"unexpected trailing data at offset %d\", len(data)-len(tail))\n\t}\n\n\t// If the decode succeeds, post-process the object to convert json.Number objects to int64 or float64\n\tswitch v := v.(type) {\n\tcase *map[string]interface{}:\n\t\treturn convertMapNumbers(*v, 0)\n\n\tcase *[]interface{}:\n\t\treturn convertSliceNumbers(*v, 0)\n\n\tcase *interface{}:\n\t\treturn convertInterfaceNumbers(v, 0)\n\n\tdefault:\n\t\treturn nil\n\t}\n}\n\nfunc convertInterfaceNumbers(v *interface{}, depth int) error {\n\tvar err error\n\tswitch v2 := (*v).(type) {\n\tcase json.Number:\n\t\t*v, err = convertNumber(v2)\n\tcase map[string]interface{}:\n\t\terr = convertMapNumbers(v2, depth+1)\n\tcase []interface{}:\n\t\terr = convertSliceNumbers(v2, depth+1)\n\t}\n\treturn err\n}\n\n// convertMapNumbers traverses the map, converting any json.Number values to int64 or float64.\n// values which are map[string]interface{} or []interface{} are recursively visited\nfunc convertMapNumbers(m map[string]interface{}, depth int) error {\n\tif depth > maxDepth {\n\t\treturn fmt.Errorf(\"exceeded max depth of %d\", maxDepth)\n\t}\n\n\tvar err error\n\tfor k, v := range m {\n\t\tswitch v := v.(type) {\n\t\tcase json.Number:\n\t\t\tm[k], err = convertNumber(v)\n\t\tcase map[string]interface{}:\n\t\t\terr = convertMapNumbers(v, depth+1)\n\t\tcase []interface{}:\n\t\t\terr = convertSliceNumbers(v, depth+1)\n\t\t}\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// convertSliceNumbers traverses the slice, converting any json.Number values to int64 or float64.\n// values which are map[string]interface{} or []interface{} are recursively visited\nfunc convertSliceNumbers(s []interface{}, depth int) error {\n\tif depth > maxDepth {\n\t\treturn fmt.Errorf(\"exceeded max depth of %d\", maxDepth)\n\t}\n\n\tvar err error\n\tfor i, v := range s {\n\t\tswitch v := v.(type) {\n\t\tcase json.Number:\n\t\t\ts[i], err = convertNumber(v)\n\t\tcase map[string]interface{}:\n\t\t\terr = convertMapNumbers(v, depth+1)\n\t\tcase []interface{}:\n\t\t\terr = convertSliceNumbers(v, depth+1)\n\t\t}\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\n// convertNumber converts a json.Number to an int64 or float64, or returns an error\nfunc convertNumber(n json.Number) (interface{}, error) {\n\t// Attempt to convert to an int64 first\n\tif i, err := n.Int64(); err == nil {\n\t\treturn i, nil\n\t}\n\t// Return a float64 (default json.Decode() behavior)\n\t// An overflow will return an error\n\treturn n.Float64()\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/value/scalar.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage value\n\n// Compare compares floats. The result will be 0 if lhs==rhs, -1 if f <\n// rhs, and +1 if f > rhs.\nfunc FloatCompare(lhs, rhs float64) int {\n\tif lhs > rhs {\n\t\treturn 1\n\t} else if lhs < rhs {\n\t\treturn -1\n\t}\n\treturn 0\n}\n\n// IntCompare compares integers. The result will be 0 if i==rhs, -1 if i <\n// rhs, and +1 if i > rhs.\nfunc IntCompare(lhs, rhs int64) int {\n\tif lhs > rhs {\n\t\treturn 1\n\t} else if lhs < rhs {\n\t\treturn -1\n\t}\n\treturn 0\n}\n\n// Compare compares booleans. The result will be 0 if b==rhs, -1 if b <\n// rhs, and +1 if b > rhs.\nfunc BoolCompare(lhs, rhs bool) int {\n\tif lhs == rhs {\n\t\treturn 0\n\t} else if lhs == false {\n\t\treturn -1\n\t}\n\treturn 1\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/value/structreflect.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage value\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n)\n\ntype structReflect struct {\n\tvalueReflect\n}\n\nfunc (r structReflect) Length() int {\n\ti := 0\n\teachStructField(r.Value, func(_ *TypeReflectCacheEntry, s string, value reflect.Value) bool {\n\t\ti++\n\t\treturn true\n\t})\n\treturn i\n}\n\nfunc (r structReflect) Empty() bool {\n\treturn eachStructField(r.Value, func(_ *TypeReflectCacheEntry, s string, value reflect.Value) bool {\n\t\treturn false // exit early if the struct is non-empty\n\t})\n}\n\nfunc (r structReflect) Get(key string) (Value, bool) {\n\treturn r.GetUsing(HeapAllocator, key)\n}\n\nfunc (r structReflect) GetUsing(a Allocator, key string) (Value, bool) {\n\tif val, ok := r.findJsonNameField(key); ok {\n\t\treturn a.allocValueReflect().mustReuse(val, nil, nil, nil), true\n\t}\n\treturn nil, false\n}\n\nfunc (r structReflect) Has(key string) bool {\n\t_, ok := r.findJsonNameField(key)\n\treturn ok\n}\n\nfunc (r structReflect) Set(key string, val Value) {\n\tfieldEntry, ok := TypeReflectEntryOf(r.Value.Type()).Fields()[key]\n\tif !ok {\n\t\tpanic(fmt.Sprintf(\"key %s may not be set on struct %T: field does not exist\", key, r.Value.Interface()))\n\t}\n\toldVal := fieldEntry.GetFrom(r.Value)\n\tnewVal := reflect.ValueOf(val.Unstructured())\n\tr.update(fieldEntry, key, oldVal, newVal)\n}\n\nfunc (r structReflect) Delete(key string) {\n\tfieldEntry, ok := TypeReflectEntryOf(r.Value.Type()).Fields()[key]\n\tif !ok {\n\t\tpanic(fmt.Sprintf(\"key %s may not be deleted on struct %T: field does not exist\", key, r.Value.Interface()))\n\t}\n\toldVal := fieldEntry.GetFrom(r.Value)\n\tif oldVal.Kind() != reflect.Ptr && !fieldEntry.isOmitEmpty {\n\t\tpanic(fmt.Sprintf(\"key %s may not be deleted on struct: %T: value is neither a pointer nor an omitempty field\", key, r.Value.Interface()))\n\t}\n\tr.update(fieldEntry, key, oldVal, reflect.Zero(oldVal.Type()))\n}\n\nfunc (r structReflect) update(fieldEntry *FieldCacheEntry, key string, oldVal, newVal reflect.Value) {\n\tif oldVal.CanSet() {\n\t\toldVal.Set(newVal)\n\t\treturn\n\t}\n\n\t// map items are not addressable, so if a struct is contained in a map, the only way to modify it is\n\t// to write a replacement fieldEntry into the map.\n\tif r.ParentMap != nil {\n\t\tif r.ParentMapKey == nil {\n\t\t\tpanic(\"ParentMapKey must not be nil if ParentMap is not nil\")\n\t\t}\n\t\treplacement := reflect.New(r.Value.Type()).Elem()\n\t\tfieldEntry.GetFrom(replacement).Set(newVal)\n\t\tr.ParentMap.SetMapIndex(*r.ParentMapKey, replacement)\n\t\treturn\n\t}\n\n\t// This should never happen since NewValueReflect ensures that the root object reflected on is a pointer and map\n\t// item replacement is handled above.\n\tpanic(fmt.Sprintf(\"key %s may not be modified on struct: %T: struct is not settable\", key, r.Value.Interface()))\n}\n\nfunc (r structReflect) Iterate(fn func(string, Value) bool) bool {\n\treturn r.IterateUsing(HeapAllocator, fn)\n}\n\nfunc (r structReflect) IterateUsing(a Allocator, fn func(string, Value) bool) bool {\n\tvr := a.allocValueReflect()\n\tdefer a.Free(vr)\n\treturn eachStructField(r.Value, func(e *TypeReflectCacheEntry, s string, value reflect.Value) bool {\n\t\treturn fn(s, vr.mustReuse(value, e, nil, nil))\n\t})\n}\n\nfunc eachStructField(structVal reflect.Value, fn func(*TypeReflectCacheEntry, string, reflect.Value) bool) bool {\n\tfor _, fieldCacheEntry := range TypeReflectEntryOf(structVal.Type()).OrderedFields() {\n\t\tfieldVal := fieldCacheEntry.GetFrom(structVal)\n\t\tif fieldCacheEntry.CanOmit(fieldVal) {\n\t\t\t// omit it\n\t\t\tcontinue\n\t\t}\n\t\tok := fn(fieldCacheEntry.TypeEntry, fieldCacheEntry.JsonName, fieldVal)\n\t\tif !ok {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc (r structReflect) Unstructured() interface{} {\n\t// Use number of struct fields as a cheap way to rough estimate map size\n\tresult := make(map[string]interface{}, r.Value.NumField())\n\tr.Iterate(func(s string, value Value) bool {\n\t\tresult[s] = value.Unstructured()\n\t\treturn true\n\t})\n\treturn result\n}\n\nfunc (r structReflect) Equals(m Map) bool {\n\treturn r.EqualsUsing(HeapAllocator, m)\n}\n\nfunc (r structReflect) EqualsUsing(a Allocator, m Map) bool {\n\t// MapEquals uses zip and is fairly efficient for structReflect\n\treturn MapEqualsUsing(a, &r, m)\n}\n\nfunc (r structReflect) findJsonNameFieldAndNotEmpty(jsonName string) (reflect.Value, bool) {\n\tstructCacheEntry, ok := TypeReflectEntryOf(r.Value.Type()).Fields()[jsonName]\n\tif !ok {\n\t\treturn reflect.Value{}, false\n\t}\n\tfieldVal := structCacheEntry.GetFrom(r.Value)\n\treturn fieldVal, !structCacheEntry.CanOmit(fieldVal)\n}\n\nfunc (r structReflect) findJsonNameField(jsonName string) (val reflect.Value, ok bool) {\n\tstructCacheEntry, ok := TypeReflectEntryOf(r.Value.Type()).Fields()[jsonName]\n\tif !ok {\n\t\treturn reflect.Value{}, false\n\t}\n\tfieldVal := structCacheEntry.GetFrom(r.Value)\n\treturn fieldVal, !structCacheEntry.CanOmit(fieldVal)\n}\n\nfunc (r structReflect) Zip(other Map, order MapTraverseOrder, fn func(key string, lhs, rhs Value) bool) bool {\n\treturn r.ZipUsing(HeapAllocator, other, order, fn)\n}\n\nfunc (r structReflect) ZipUsing(a Allocator, other Map, order MapTraverseOrder, fn func(key string, lhs, rhs Value) bool) bool {\n\tif otherStruct, ok := other.(*structReflect); ok && r.Value.Type() == otherStruct.Value.Type() {\n\t\tlhsvr, rhsvr := a.allocValueReflect(), a.allocValueReflect()\n\t\tdefer a.Free(lhsvr)\n\t\tdefer a.Free(rhsvr)\n\t\treturn r.structZip(otherStruct, lhsvr, rhsvr, fn)\n\t}\n\treturn defaultMapZip(a, &r, other, order, fn)\n}\n\n// structZip provides an optimized zip for structReflect types. The zip is always lexical key ordered since there is\n// no additional cost to ordering the zip for structured types.\nfunc (r structReflect) structZip(other *structReflect, lhsvr, rhsvr *valueReflect, fn func(key string, lhs, rhs Value) bool) bool {\n\tlhsVal := r.Value\n\trhsVal := other.Value\n\n\tfor _, fieldCacheEntry := range TypeReflectEntryOf(lhsVal.Type()).OrderedFields() {\n\t\tlhsFieldVal := fieldCacheEntry.GetFrom(lhsVal)\n\t\trhsFieldVal := fieldCacheEntry.GetFrom(rhsVal)\n\t\tlhsOmit := fieldCacheEntry.CanOmit(lhsFieldVal)\n\t\trhsOmit := fieldCacheEntry.CanOmit(rhsFieldVal)\n\t\tif lhsOmit && rhsOmit {\n\t\t\tcontinue\n\t\t}\n\t\tvar lhsVal, rhsVal Value\n\t\tif !lhsOmit {\n\t\t\tlhsVal = lhsvr.mustReuse(lhsFieldVal, fieldCacheEntry.TypeEntry, nil, nil)\n\t\t}\n\t\tif !rhsOmit {\n\t\t\trhsVal = rhsvr.mustReuse(rhsFieldVal, fieldCacheEntry.TypeEntry, nil, nil)\n\t\t}\n\t\tif !fn(fieldCacheEntry.JsonName, lhsVal, rhsVal) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/value/value.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage value\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n\t\"io\"\n\t\"strings\"\n\n\tjsoniter \"github.com/json-iterator/go\"\n\tyaml \"sigs.k8s.io/yaml/goyaml.v2\"\n)\n\nvar (\n\treadPool  = jsoniter.NewIterator(jsoniter.ConfigCompatibleWithStandardLibrary).Pool()\n\twritePool = jsoniter.NewStream(jsoniter.ConfigCompatibleWithStandardLibrary, nil, 1024).Pool()\n)\n\n// A Value corresponds to an 'atom' in the schema. It should return true\n// for at least one of the IsXXX methods below, or the value is\n// considered \"invalid\"\ntype Value interface {\n\t// IsMap returns true if the Value is a Map, false otherwise.\n\tIsMap() bool\n\t// IsList returns true if the Value is a List, false otherwise.\n\tIsList() bool\n\t// IsBool returns true if the Value is a bool, false otherwise.\n\tIsBool() bool\n\t// IsInt returns true if the Value is a int64, false otherwise.\n\tIsInt() bool\n\t// IsFloat returns true if the Value is a float64, false\n\t// otherwise.\n\tIsFloat() bool\n\t// IsString returns true if the Value is a string, false\n\t// otherwise.\n\tIsString() bool\n\t// IsMap returns true if the Value is null, false otherwise.\n\tIsNull() bool\n\n\t// AsMap converts the Value into a Map (or panic if the type\n\t// doesn't allow it).\n\tAsMap() Map\n\t// AsMapUsing uses the provided allocator and converts the Value\n\t// into a Map (or panic if the type doesn't allow it).\n\tAsMapUsing(Allocator) Map\n\t// AsList converts the Value into a List (or panic if the type\n\t// doesn't allow it).\n\tAsList() List\n\t// AsListUsing uses the provided allocator and converts the Value\n\t// into a List (or panic if the type doesn't allow it).\n\tAsListUsing(Allocator) List\n\t// AsBool converts the Value into a bool (or panic if the type\n\t// doesn't allow it).\n\tAsBool() bool\n\t// AsInt converts the Value into an int64 (or panic if the type\n\t// doesn't allow it).\n\tAsInt() int64\n\t// AsFloat converts the Value into a float64 (or panic if the type\n\t// doesn't allow it).\n\tAsFloat() float64\n\t// AsString converts the Value into a string (or panic if the type\n\t// doesn't allow it).\n\tAsString() string\n\n\t// Unstructured converts the Value into an Unstructured interface{}.\n\tUnstructured() interface{}\n}\n\n// FromJSON is a helper function for reading a JSON document.\nfunc FromJSON(input []byte) (Value, error) {\n\treturn FromJSONFast(input)\n}\n\n// FromJSONFast is a helper function for reading a JSON document.\nfunc FromJSONFast(input []byte) (Value, error) {\n\titer := readPool.BorrowIterator(input)\n\tdefer readPool.ReturnIterator(iter)\n\treturn ReadJSONIter(iter)\n}\n\n// ToJSON is a helper function for producing a JSon document.\nfunc ToJSON(v Value) ([]byte, error) {\n\tbuf := bytes.Buffer{}\n\tstream := writePool.BorrowStream(&buf)\n\tdefer writePool.ReturnStream(stream)\n\tWriteJSONStream(v, stream)\n\tb := stream.Buffer()\n\terr := stream.Flush()\n\t// Help jsoniter manage its buffers--without this, the next\n\t// use of the stream is likely to require an allocation. Look\n\t// at the jsoniter stream code to understand why. They were probably\n\t// optimizing for folks using the buffer directly.\n\tstream.SetBuffer(b[:0])\n\treturn buf.Bytes(), err\n}\n\n// ReadJSONIter reads a Value from a JSON iterator.\nfunc ReadJSONIter(iter *jsoniter.Iterator) (Value, error) {\n\tv := iter.Read()\n\tif iter.Error != nil && iter.Error != io.EOF {\n\t\treturn nil, iter.Error\n\t}\n\treturn NewValueInterface(v), nil\n}\n\n// WriteJSONStream writes a value into a JSON stream.\nfunc WriteJSONStream(v Value, stream *jsoniter.Stream) {\n\tstream.WriteVal(v.Unstructured())\n}\n\n// ToYAML marshals a value as YAML.\nfunc ToYAML(v Value) ([]byte, error) {\n\treturn yaml.Marshal(v.Unstructured())\n}\n\n// Equals returns true iff the two values are equal.\nfunc Equals(lhs, rhs Value) bool {\n\treturn EqualsUsing(HeapAllocator, lhs, rhs)\n}\n\n// EqualsUsing uses the provided allocator and returns true iff the two values are equal.\nfunc EqualsUsing(a Allocator, lhs, rhs Value) bool {\n\tif lhs.IsFloat() || rhs.IsFloat() {\n\t\tvar lf float64\n\t\tif lhs.IsFloat() {\n\t\t\tlf = lhs.AsFloat()\n\t\t} else if lhs.IsInt() {\n\t\t\tlf = float64(lhs.AsInt())\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t\tvar rf float64\n\t\tif rhs.IsFloat() {\n\t\t\trf = rhs.AsFloat()\n\t\t} else if rhs.IsInt() {\n\t\t\trf = float64(rhs.AsInt())\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t\treturn lf == rf\n\t}\n\tif lhs.IsInt() {\n\t\tif rhs.IsInt() {\n\t\t\treturn lhs.AsInt() == rhs.AsInt()\n\t\t}\n\t\treturn false\n\t} else if rhs.IsInt() {\n\t\treturn false\n\t}\n\tif lhs.IsString() {\n\t\tif rhs.IsString() {\n\t\t\treturn lhs.AsString() == rhs.AsString()\n\t\t}\n\t\treturn false\n\t} else if rhs.IsString() {\n\t\treturn false\n\t}\n\tif lhs.IsBool() {\n\t\tif rhs.IsBool() {\n\t\t\treturn lhs.AsBool() == rhs.AsBool()\n\t\t}\n\t\treturn false\n\t} else if rhs.IsBool() {\n\t\treturn false\n\t}\n\tif lhs.IsList() {\n\t\tif rhs.IsList() {\n\t\t\tlhsList := lhs.AsListUsing(a)\n\t\t\tdefer a.Free(lhsList)\n\t\t\trhsList := rhs.AsListUsing(a)\n\t\t\tdefer a.Free(rhsList)\n\t\t\treturn lhsList.EqualsUsing(a, rhsList)\n\t\t}\n\t\treturn false\n\t} else if rhs.IsList() {\n\t\treturn false\n\t}\n\tif lhs.IsMap() {\n\t\tif rhs.IsMap() {\n\t\t\tlhsList := lhs.AsMapUsing(a)\n\t\t\tdefer a.Free(lhsList)\n\t\t\trhsList := rhs.AsMapUsing(a)\n\t\t\tdefer a.Free(rhsList)\n\t\t\treturn lhsList.EqualsUsing(a, rhsList)\n\t\t}\n\t\treturn false\n\t} else if rhs.IsMap() {\n\t\treturn false\n\t}\n\tif lhs.IsNull() {\n\t\tif rhs.IsNull() {\n\t\t\treturn true\n\t\t}\n\t\treturn false\n\t} else if rhs.IsNull() {\n\t\treturn false\n\t}\n\t// No field is set, on either objects.\n\treturn true\n}\n\n// ToString returns a human-readable representation of the value.\nfunc ToString(v Value) string {\n\tif v.IsNull() {\n\t\treturn \"null\"\n\t}\n\tswitch {\n\tcase v.IsFloat():\n\t\treturn fmt.Sprintf(\"%v\", v.AsFloat())\n\tcase v.IsInt():\n\t\treturn fmt.Sprintf(\"%v\", v.AsInt())\n\tcase v.IsString():\n\t\treturn fmt.Sprintf(\"%q\", v.AsString())\n\tcase v.IsBool():\n\t\treturn fmt.Sprintf(\"%v\", v.AsBool())\n\tcase v.IsList():\n\t\tstrs := []string{}\n\t\tlist := v.AsList()\n\t\tfor i := 0; i < list.Length(); i++ {\n\t\t\tstrs = append(strs, ToString(list.At(i)))\n\t\t}\n\t\treturn \"[\" + strings.Join(strs, \",\") + \"]\"\n\tcase v.IsMap():\n\t\tstrs := []string{}\n\t\tv.AsMap().Iterate(func(k string, v Value) bool {\n\t\t\tstrs = append(strs, fmt.Sprintf(\"%v=%v\", k, ToString(v)))\n\t\t\treturn true\n\t\t})\n\t\treturn strings.Join(strs, \"\")\n\t}\n\t// No field is set, on either objects.\n\treturn \"{{undefined}}\"\n}\n\n// Less provides a total ordering for Value (so that they can be sorted, even\n// if they are of different types).\nfunc Less(lhs, rhs Value) bool {\n\treturn Compare(lhs, rhs) == -1\n}\n\n// Compare provides a total ordering for Value (so that they can be\n// sorted, even if they are of different types). The result will be 0 if\n// v==rhs, -1 if v < rhs, and +1 if v > rhs.\nfunc Compare(lhs, rhs Value) int {\n\treturn CompareUsing(HeapAllocator, lhs, rhs)\n}\n\n// CompareUsing uses the provided allocator and provides a total\n// ordering for Value (so that they can be sorted, even if they\n// are of different types). The result will be 0 if v==rhs, -1\n// if v < rhs, and +1 if v > rhs.\nfunc CompareUsing(a Allocator, lhs, rhs Value) int {\n\tif lhs.IsFloat() {\n\t\tif !rhs.IsFloat() {\n\t\t\t// Extra: compare floats and ints numerically.\n\t\t\tif rhs.IsInt() {\n\t\t\t\treturn FloatCompare(lhs.AsFloat(), float64(rhs.AsInt()))\n\t\t\t}\n\t\t\treturn -1\n\t\t}\n\t\treturn FloatCompare(lhs.AsFloat(), rhs.AsFloat())\n\t} else if rhs.IsFloat() {\n\t\t// Extra: compare floats and ints numerically.\n\t\tif lhs.IsInt() {\n\t\t\treturn FloatCompare(float64(lhs.AsInt()), rhs.AsFloat())\n\t\t}\n\t\treturn 1\n\t}\n\n\tif lhs.IsInt() {\n\t\tif !rhs.IsInt() {\n\t\t\treturn -1\n\t\t}\n\t\treturn IntCompare(lhs.AsInt(), rhs.AsInt())\n\t} else if rhs.IsInt() {\n\t\treturn 1\n\t}\n\n\tif lhs.IsString() {\n\t\tif !rhs.IsString() {\n\t\t\treturn -1\n\t\t}\n\t\treturn strings.Compare(lhs.AsString(), rhs.AsString())\n\t} else if rhs.IsString() {\n\t\treturn 1\n\t}\n\n\tif lhs.IsBool() {\n\t\tif !rhs.IsBool() {\n\t\t\treturn -1\n\t\t}\n\t\treturn BoolCompare(lhs.AsBool(), rhs.AsBool())\n\t} else if rhs.IsBool() {\n\t\treturn 1\n\t}\n\n\tif lhs.IsList() {\n\t\tif !rhs.IsList() {\n\t\t\treturn -1\n\t\t}\n\t\tlhsList := lhs.AsListUsing(a)\n\t\tdefer a.Free(lhsList)\n\t\trhsList := rhs.AsListUsing(a)\n\t\tdefer a.Free(rhsList)\n\t\treturn ListCompareUsing(a, lhsList, rhsList)\n\t} else if rhs.IsList() {\n\t\treturn 1\n\t}\n\tif lhs.IsMap() {\n\t\tif !rhs.IsMap() {\n\t\t\treturn -1\n\t\t}\n\t\tlhsMap := lhs.AsMapUsing(a)\n\t\tdefer a.Free(lhsMap)\n\t\trhsMap := rhs.AsMapUsing(a)\n\t\tdefer a.Free(rhsMap)\n\t\treturn MapCompareUsing(a, lhsMap, rhsMap)\n\t} else if rhs.IsMap() {\n\t\treturn 1\n\t}\n\tif lhs.IsNull() {\n\t\tif !rhs.IsNull() {\n\t\t\treturn -1\n\t\t}\n\t\treturn 0\n\t} else if rhs.IsNull() {\n\t\treturn 1\n\t}\n\n\t// Invalid Value-- nothing is set.\n\treturn 0\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/value/valuereflect.go",
    "content": "/*\nCopyright 2019 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage value\n\nimport (\n\t\"encoding/base64\"\n\t\"fmt\"\n\t\"reflect\"\n)\n\n// NewValueReflect creates a Value backed by an \"interface{}\" type,\n// typically an structured object in Kubernetes world that is uses reflection to expose.\n// The provided \"interface{}\" value must be a pointer so that the value can be modified via reflection.\n// The provided \"interface{}\" may contain structs and types that are converted to Values\n// by the jsonMarshaler interface.\nfunc NewValueReflect(value interface{}) (Value, error) {\n\tif value == nil {\n\t\treturn NewValueInterface(nil), nil\n\t}\n\tv := reflect.ValueOf(value)\n\tif v.Kind() != reflect.Ptr {\n\t\t// The root value to reflect on must be a pointer so that map.Set() and map.Delete() operations are possible.\n\t\treturn nil, fmt.Errorf(\"value provided to NewValueReflect must be a pointer\")\n\t}\n\treturn wrapValueReflect(v, nil, nil)\n}\n\n// wrapValueReflect wraps the provide reflect.Value as a value. If parent in the data tree is a map, parentMap\n// and parentMapKey must be provided so that the returned value may be set and deleted.\nfunc wrapValueReflect(value reflect.Value, parentMap, parentMapKey *reflect.Value) (Value, error) {\n\tval := HeapAllocator.allocValueReflect()\n\treturn val.reuse(value, nil, parentMap, parentMapKey)\n}\n\n// wrapValueReflect wraps the provide reflect.Value as a value, and panics if there is an error. If parent in the data\n// tree is a map, parentMap and parentMapKey must be provided so that the returned value may be set and deleted.\nfunc mustWrapValueReflect(value reflect.Value, parentMap, parentMapKey *reflect.Value) Value {\n\tv, err := wrapValueReflect(value, parentMap, parentMapKey)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn v\n}\n\n// the value interface doesn't care about the type for value.IsNull, so we can use a constant\nvar nilType = reflect.TypeOf(&struct{}{})\n\n// reuse replaces the value of the valueReflect. If parent in the data tree is a map, parentMap and parentMapKey\n// must be provided so that the returned value may be set and deleted.\nfunc (r *valueReflect) reuse(value reflect.Value, cacheEntry *TypeReflectCacheEntry, parentMap, parentMapKey *reflect.Value) (Value, error) {\n\tif cacheEntry == nil {\n\t\tcacheEntry = TypeReflectEntryOf(value.Type())\n\t}\n\tif cacheEntry.CanConvertToUnstructured() {\n\t\tu, err := cacheEntry.ToUnstructured(value)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif u == nil {\n\t\t\tvalue = reflect.Zero(nilType)\n\t\t} else {\n\t\t\tvalue = reflect.ValueOf(u)\n\t\t}\n\t}\n\tr.Value = dereference(value)\n\tr.ParentMap = parentMap\n\tr.ParentMapKey = parentMapKey\n\tr.kind = kind(r.Value)\n\treturn r, nil\n}\n\n// mustReuse replaces the value of the valueReflect and panics if there is an error. If parent in the data tree is a\n// map, parentMap and parentMapKey must be provided so that the returned value may be set and deleted.\nfunc (r *valueReflect) mustReuse(value reflect.Value, cacheEntry *TypeReflectCacheEntry, parentMap, parentMapKey *reflect.Value) Value {\n\tv, err := r.reuse(value, cacheEntry, parentMap, parentMapKey)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn v\n}\n\nfunc dereference(val reflect.Value) reflect.Value {\n\tkind := val.Kind()\n\tif (kind == reflect.Interface || kind == reflect.Ptr) && !safeIsNil(val) {\n\t\treturn val.Elem()\n\t}\n\treturn val\n}\n\ntype valueReflect struct {\n\tParentMap    *reflect.Value\n\tParentMapKey *reflect.Value\n\tValue        reflect.Value\n\tkind         reflectType\n}\n\nfunc (r valueReflect) IsMap() bool {\n\treturn r.kind == mapType || r.kind == structMapType\n}\n\nfunc (r valueReflect) IsList() bool {\n\treturn r.kind == listType\n}\n\nfunc (r valueReflect) IsBool() bool {\n\treturn r.kind == boolType\n}\n\nfunc (r valueReflect) IsInt() bool {\n\treturn r.kind == intType || r.kind == uintType\n}\n\nfunc (r valueReflect) IsFloat() bool {\n\treturn r.kind == floatType\n}\n\nfunc (r valueReflect) IsString() bool {\n\treturn r.kind == stringType || r.kind == byteStringType\n}\n\nfunc (r valueReflect) IsNull() bool {\n\treturn r.kind == nullType\n}\n\ntype reflectType = int\n\nconst (\n\tmapType = iota\n\tstructMapType\n\tlistType\n\tintType\n\tuintType\n\tfloatType\n\tstringType\n\tbyteStringType\n\tboolType\n\tnullType\n)\n\nfunc kind(v reflect.Value) reflectType {\n\ttyp := v.Type()\n\trk := typ.Kind()\n\tswitch rk {\n\tcase reflect.Map:\n\t\tif v.IsNil() {\n\t\t\treturn nullType\n\t\t}\n\t\treturn mapType\n\tcase reflect.Struct:\n\t\treturn structMapType\n\tcase reflect.Int, reflect.Int64, reflect.Int32, reflect.Int16, reflect.Int8:\n\t\treturn intType\n\tcase reflect.Uint, reflect.Uint32, reflect.Uint16, reflect.Uint8:\n\t\t// Uint64 deliberately excluded, see valueUnstructured.Int.\n\t\treturn uintType\n\tcase reflect.Float64, reflect.Float32:\n\t\treturn floatType\n\tcase reflect.String:\n\t\treturn stringType\n\tcase reflect.Bool:\n\t\treturn boolType\n\tcase reflect.Slice:\n\t\tif v.IsNil() {\n\t\t\treturn nullType\n\t\t}\n\t\telemKind := typ.Elem().Kind()\n\t\tif elemKind == reflect.Uint8 {\n\t\t\treturn byteStringType\n\t\t}\n\t\treturn listType\n\tcase reflect.Chan, reflect.Func, reflect.Ptr, reflect.UnsafePointer, reflect.Interface:\n\t\tif v.IsNil() {\n\t\t\treturn nullType\n\t\t}\n\t\tpanic(fmt.Sprintf(\"unsupported type: %v\", v.Type()))\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"unsupported type: %v\", v.Type()))\n\t}\n}\n\n// TODO find a cleaner way to avoid panics from reflect.IsNil()\nfunc safeIsNil(v reflect.Value) bool {\n\tk := v.Kind()\n\tswitch k {\n\tcase reflect.Chan, reflect.Func, reflect.Map, reflect.Ptr, reflect.UnsafePointer, reflect.Interface, reflect.Slice:\n\t\treturn v.IsNil()\n\t}\n\treturn false\n}\n\nfunc (r valueReflect) AsMap() Map {\n\treturn r.AsMapUsing(HeapAllocator)\n}\n\nfunc (r valueReflect) AsMapUsing(a Allocator) Map {\n\tswitch r.kind {\n\tcase structMapType:\n\t\tv := a.allocStructReflect()\n\t\tv.valueReflect = r\n\t\treturn v\n\tcase mapType:\n\t\tv := a.allocMapReflect()\n\t\tv.valueReflect = r\n\t\treturn v\n\tdefault:\n\t\tpanic(\"value is not a map or struct\")\n\t}\n}\n\nfunc (r valueReflect) AsList() List {\n\treturn r.AsListUsing(HeapAllocator)\n}\n\nfunc (r valueReflect) AsListUsing(a Allocator) List {\n\tif r.IsList() {\n\t\tv := a.allocListReflect()\n\t\tv.Value = r.Value\n\t\treturn v\n\t}\n\tpanic(\"value is not a list\")\n}\n\nfunc (r valueReflect) AsBool() bool {\n\tif r.IsBool() {\n\t\treturn r.Value.Bool()\n\t}\n\tpanic(\"value is not a bool\")\n}\n\nfunc (r valueReflect) AsInt() int64 {\n\tif r.kind == intType {\n\t\treturn r.Value.Int()\n\t}\n\tif r.kind == uintType {\n\t\treturn int64(r.Value.Uint())\n\t}\n\n\tpanic(\"value is not an int\")\n}\n\nfunc (r valueReflect) AsFloat() float64 {\n\tif r.IsFloat() {\n\t\treturn r.Value.Float()\n\t}\n\tpanic(\"value is not a float\")\n}\n\nfunc (r valueReflect) AsString() string {\n\tswitch r.kind {\n\tcase stringType:\n\t\treturn r.Value.String()\n\tcase byteStringType:\n\t\treturn base64.StdEncoding.EncodeToString(r.Value.Bytes())\n\t}\n\tpanic(\"value is not a string\")\n}\n\nfunc (r valueReflect) Unstructured() interface{} {\n\tval := r.Value\n\tswitch {\n\tcase r.IsNull():\n\t\treturn nil\n\tcase val.Kind() == reflect.Struct:\n\t\treturn structReflect{r}.Unstructured()\n\tcase val.Kind() == reflect.Map:\n\t\treturn mapReflect{valueReflect: r}.Unstructured()\n\tcase r.IsList():\n\t\treturn listReflect{r.Value}.Unstructured()\n\tcase r.IsString():\n\t\treturn r.AsString()\n\tcase r.IsInt():\n\t\treturn r.AsInt()\n\tcase r.IsBool():\n\t\treturn r.AsBool()\n\tcase r.IsFloat():\n\t\treturn r.AsFloat()\n\tdefault:\n\t\tpanic(fmt.Sprintf(\"value of type %s is not a supported by value reflector\", val.Type()))\n\t}\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/structured-merge-diff/v4/value/valueunstructured.go",
    "content": "/*\nCopyright 2018 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage value\n\nimport (\n\t\"fmt\"\n)\n\n// NewValueInterface creates a Value backed by an \"interface{}\" type,\n// typically an unstructured object in Kubernetes world.\n// interface{} must be one of: map[string]interface{}, map[interface{}]interface{}, []interface{}, int types, float types,\n// string or boolean. Nested interface{} must also be one of these types.\nfunc NewValueInterface(v interface{}) Value {\n\treturn Value(HeapAllocator.allocValueUnstructured().reuse(v))\n}\n\ntype valueUnstructured struct {\n\tValue interface{}\n}\n\n// reuse replaces the value of the valueUnstructured.\nfunc (vi *valueUnstructured) reuse(value interface{}) Value {\n\tvi.Value = value\n\treturn vi\n}\n\nfunc (v valueUnstructured) IsMap() bool {\n\tif _, ok := v.Value.(map[string]interface{}); ok {\n\t\treturn true\n\t}\n\tif _, ok := v.Value.(map[interface{}]interface{}); ok {\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (v valueUnstructured) AsMap() Map {\n\treturn v.AsMapUsing(HeapAllocator)\n}\n\nfunc (v valueUnstructured) AsMapUsing(_ Allocator) Map {\n\tif v.Value == nil {\n\t\tpanic(\"invalid nil\")\n\t}\n\tswitch t := v.Value.(type) {\n\tcase map[string]interface{}:\n\t\treturn mapUnstructuredString(t)\n\tcase map[interface{}]interface{}:\n\t\treturn mapUnstructuredInterface(t)\n\t}\n\tpanic(fmt.Errorf(\"not a map: %#v\", v))\n}\n\nfunc (v valueUnstructured) IsList() bool {\n\tif v.Value == nil {\n\t\treturn false\n\t}\n\t_, ok := v.Value.([]interface{})\n\treturn ok\n}\n\nfunc (v valueUnstructured) AsList() List {\n\treturn v.AsListUsing(HeapAllocator)\n}\n\nfunc (v valueUnstructured) AsListUsing(_ Allocator) List {\n\treturn listUnstructured(v.Value.([]interface{}))\n}\n\nfunc (v valueUnstructured) IsFloat() bool {\n\tif v.Value == nil {\n\t\treturn false\n\t} else if _, ok := v.Value.(float64); ok {\n\t\treturn true\n\t} else if _, ok := v.Value.(float32); ok {\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (v valueUnstructured) AsFloat() float64 {\n\tif f, ok := v.Value.(float32); ok {\n\t\treturn float64(f)\n\t}\n\treturn v.Value.(float64)\n}\n\nfunc (v valueUnstructured) IsInt() bool {\n\tif v.Value == nil {\n\t\treturn false\n\t} else if _, ok := v.Value.(int); ok {\n\t\treturn true\n\t} else if _, ok := v.Value.(int8); ok {\n\t\treturn true\n\t} else if _, ok := v.Value.(int16); ok {\n\t\treturn true\n\t} else if _, ok := v.Value.(int32); ok {\n\t\treturn true\n\t} else if _, ok := v.Value.(int64); ok {\n\t\treturn true\n\t} else if _, ok := v.Value.(uint); ok {\n\t\treturn true\n\t} else if _, ok := v.Value.(uint8); ok {\n\t\treturn true\n\t} else if _, ok := v.Value.(uint16); ok {\n\t\treturn true\n\t} else if _, ok := v.Value.(uint32); ok {\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (v valueUnstructured) AsInt() int64 {\n\tif i, ok := v.Value.(int); ok {\n\t\treturn int64(i)\n\t} else if i, ok := v.Value.(int8); ok {\n\t\treturn int64(i)\n\t} else if i, ok := v.Value.(int16); ok {\n\t\treturn int64(i)\n\t} else if i, ok := v.Value.(int32); ok {\n\t\treturn int64(i)\n\t} else if i, ok := v.Value.(uint); ok {\n\t\treturn int64(i)\n\t} else if i, ok := v.Value.(uint8); ok {\n\t\treturn int64(i)\n\t} else if i, ok := v.Value.(uint16); ok {\n\t\treturn int64(i)\n\t} else if i, ok := v.Value.(uint32); ok {\n\t\treturn int64(i)\n\t}\n\treturn v.Value.(int64)\n}\n\nfunc (v valueUnstructured) IsString() bool {\n\tif v.Value == nil {\n\t\treturn false\n\t}\n\t_, ok := v.Value.(string)\n\treturn ok\n}\n\nfunc (v valueUnstructured) AsString() string {\n\treturn v.Value.(string)\n}\n\nfunc (v valueUnstructured) IsBool() bool {\n\tif v.Value == nil {\n\t\treturn false\n\t}\n\t_, ok := v.Value.(bool)\n\treturn ok\n}\n\nfunc (v valueUnstructured) AsBool() bool {\n\treturn v.Value.(bool)\n}\n\nfunc (v valueUnstructured) IsNull() bool {\n\treturn v.Value == nil\n}\n\nfunc (v valueUnstructured) Unstructured() interface{} {\n\treturn v.Value\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/yaml/.gitignore",
    "content": "# OSX leaves these everywhere on SMB shares\n._*\n\n# Eclipse files\n.classpath\n.project\n.settings/**\n\n# Idea files\n.idea/**\n.idea/\n\n# Emacs save files\n*~\n\n# Vim-related files\n[._]*.s[a-w][a-z]\n[._]s[a-w][a-z]\n*.un~\nSession.vim\n.netrwhist\n\n# Go test binaries\n*.test\n"
  },
  {
    "path": "vendor/sigs.k8s.io/yaml/.travis.yml",
    "content": "language: go\narch: arm64\ndist: focal\ngo: 1.15.x\nscript:\n  - diff -u <(echo -n) <(gofmt -d *.go)\n  - diff -u <(echo -n) <(golint $(go list -e ./...) | grep -v YAMLToJSON)\n  - GO111MODULE=on go vet .\n  - GO111MODULE=on go test -v -race ./...\n  - git diff --exit-code\ninstall:\n  - GO111MODULE=off go get golang.org/x/lint/golint\n"
  },
  {
    "path": "vendor/sigs.k8s.io/yaml/CONTRIBUTING.md",
    "content": "# Contributing Guidelines\n\nWelcome to Kubernetes. We are excited about the prospect of you joining our [community](https://github.com/kubernetes/community)! The Kubernetes community abides by the CNCF [code of conduct](code-of-conduct.md). Here is an excerpt:\n\n_As contributors and maintainers of this project, and in the interest of fostering an open and welcoming community, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities._\n\n## Getting Started\n\nWe have full documentation on how to get started contributing here:\n\n<!---\nIf your repo has certain guidelines for contribution, put them here ahead of the general k8s resources\n-->\n\n- [Contributor License Agreement](https://git.k8s.io/community/CLA.md) Kubernetes projects require that you sign a Contributor License Agreement (CLA) before we can accept your pull requests\n- [Kubernetes Contributor Guide](http://git.k8s.io/community/contributors/guide) - Main contributor documentation, or you can just jump directly to the [contributing section](http://git.k8s.io/community/contributors/guide#contributing)\n- [Contributor Cheat Sheet](https://git.k8s.io/community/contributors/guide/contributor-cheatsheet.md) - Common resources for existing developers\n\n## Mentorship\n\n- [Mentoring Initiatives](https://git.k8s.io/community/mentoring) - We have a diverse set of mentorship programs available that are always looking for volunteers!\n\n<!---\nCustom Information - if you're copying this template for the first time you can add custom content here, for example:\n\n## Contact Information\n\n- [Slack channel](https://kubernetes.slack.com/messages/kubernetes-users) - Replace `kubernetes-users` with your slack channel string, this will send users directly to your channel. \n- [Mailing list](URL)\n\n-->\n"
  },
  {
    "path": "vendor/sigs.k8s.io/yaml/LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2014 Sam Ghods\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\nCopyright (c) 2012 The Go Authors. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n   * Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n   * Redistributions in binary form must reproduce the above\ncopyright notice, this list of conditions and the following disclaimer\nin the documentation and/or other materials provided with the\ndistribution.\n   * Neither the name of Google Inc. nor the names of its\ncontributors may be used to endorse or promote products derived from\nthis software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\nA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nOWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\nLIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\nDATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\nTHEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n# The forked go-yaml.v3 library under this project is covered by two\ndifferent licenses (MIT and Apache):\n\n#### MIT License ####\n\nThe following files were ported to Go from C files of libyaml, and thus\nare still covered by their original MIT license, with the additional\ncopyright staring in 2011 when the project was ported over:\n\n    apic.go emitterc.go parserc.go readerc.go scannerc.go\n    writerc.go yamlh.go yamlprivateh.go\n\nCopyright (c) 2006-2010 Kirill Simonov\nCopyright (c) 2006-2011 Kirill Simonov\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\nof the Software, and to permit persons to whom the Software is furnished to do\nso, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n### Apache License ###\n\nAll the remaining project files are covered by the Apache license:\n\nCopyright (c) 2011-2019 Canonical Ltd\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n# The forked go-yaml.v2 library under the project is covered by an\nApache license:\n\n                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/sigs.k8s.io/yaml/OWNERS",
    "content": "# See the OWNERS docs at https://go.k8s.io/owners\n\napprovers:\n- dims\n- jpbetz\n- smarterclayton\n- deads2k\n- sttts\n- liggitt\nreviewers:\n- dims\n- thockin\n- jpbetz\n- smarterclayton\n- wojtek-t\n- deads2k\n- derekwaynecarr\n- mikedanese\n- liggitt\n- sttts\n- tallclair\nlabels:\n- sig/api-machinery\n"
  },
  {
    "path": "vendor/sigs.k8s.io/yaml/README.md",
    "content": "# YAML marshaling and unmarshaling support for Go\n\n[![Build Status](https://travis-ci.org/kubernetes-sigs/yaml.svg)](https://travis-ci.org/kubernetes-sigs/yaml)\n\nkubernetes-sigs/yaml is a permanent fork of [ghodss/yaml](https://github.com/ghodss/yaml).\n\n## Introduction\n\nA wrapper around [go-yaml](https://github.com/go-yaml/yaml) designed to enable a better way of handling YAML when marshaling to and from structs.\n\nIn short, this library first converts YAML to JSON using go-yaml and then uses `json.Marshal` and `json.Unmarshal` to convert to or from the struct. This means that it effectively reuses the JSON struct tags as well as the custom JSON methods `MarshalJSON` and `UnmarshalJSON` unlike go-yaml. For a detailed overview of the rationale behind this method, [see this blog post](http://web.archive.org/web/20190603050330/http://ghodss.com/2014/the-right-way-to-handle-yaml-in-golang/).\n\n## Compatibility\n\nThis package uses [go-yaml](https://github.com/go-yaml/yaml) and therefore supports [everything go-yaml supports](https://github.com/go-yaml/yaml#compatibility).\n\n## Caveats\n\n**Caveat #1:** When using `yaml.Marshal` and `yaml.Unmarshal`, binary data should NOT be preceded with the `!!binary` YAML tag. If you do, go-yaml will convert the binary data from base64 to native binary data, which is not compatible with JSON. You can still use binary in your YAML files though - just store them without the `!!binary` tag and decode the base64 in your code (e.g. in the custom JSON methods `MarshalJSON` and `UnmarshalJSON`). This also has the benefit that your YAML and your JSON binary data will be decoded exactly the same way. As an example:\n\n```\nBAD:\n\texampleKey: !!binary gIGC\n\nGOOD:\n\texampleKey: gIGC\n... and decode the base64 data in your code.\n```\n\n**Caveat #2:** When using `YAMLToJSON` directly, maps with keys that are maps will result in an error since this is not supported by JSON. This error will occur in `Unmarshal` as well since you can't unmarshal map keys anyways since struct fields can't be keys.\n\n## Installation and usage\n\nTo install, run:\n\n```\n$ go get sigs.k8s.io/yaml\n```\n\nAnd import using:\n\n```\nimport \"sigs.k8s.io/yaml\"\n```\n\nUsage is very similar to the JSON library:\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"sigs.k8s.io/yaml\"\n)\n\ntype Person struct {\n\tName string `json:\"name\"` // Affects YAML field names too.\n\tAge  int    `json:\"age\"`\n}\n\nfunc main() {\n\t// Marshal a Person struct to YAML.\n\tp := Person{\"John\", 30}\n\ty, err := yaml.Marshal(p)\n\tif err != nil {\n\t\tfmt.Printf(\"err: %v\\n\", err)\n\t\treturn\n\t}\n\tfmt.Println(string(y))\n\t/* Output:\n\tage: 30\n\tname: John\n\t*/\n\n\t// Unmarshal the YAML back into a Person struct.\n\tvar p2 Person\n\terr = yaml.Unmarshal(y, &p2)\n\tif err != nil {\n\t\tfmt.Printf(\"err: %v\\n\", err)\n\t\treturn\n\t}\n\tfmt.Println(p2)\n\t/* Output:\n\t{John 30}\n\t*/\n}\n```\n\n`yaml.YAMLToJSON` and `yaml.JSONToYAML` methods are also available:\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"sigs.k8s.io/yaml\"\n)\n\nfunc main() {\n\tj := []byte(`{\"name\": \"John\", \"age\": 30}`)\n\ty, err := yaml.JSONToYAML(j)\n\tif err != nil {\n\t\tfmt.Printf(\"err: %v\\n\", err)\n\t\treturn\n\t}\n\tfmt.Println(string(y))\n\t/* Output:\n\tage: 30\n\tname: John\n\t*/\n\tj2, err := yaml.YAMLToJSON(y)\n\tif err != nil {\n\t\tfmt.Printf(\"err: %v\\n\", err)\n\t\treturn\n\t}\n\tfmt.Println(string(j2))\n\t/* Output:\n\t{\"age\":30,\"name\":\"John\"}\n\t*/\n}\n```\n"
  },
  {
    "path": "vendor/sigs.k8s.io/yaml/RELEASE.md",
    "content": "# Release Process\n\nThe `yaml` Project is released on an as-needed basis. The process is as follows:\n\n1. An issue is proposing a new release with a changelog since the last release\n1. All [OWNERS](OWNERS) must LGTM this release\n1. An OWNER runs `git tag -s $VERSION` and inserts the changelog and pushes the tag with `git push $VERSION`\n1. The release issue is closed\n1. An announcement email is sent to `kubernetes-dev@googlegroups.com` with the subject `[ANNOUNCE] kubernetes-template-project $VERSION is released`\n"
  },
  {
    "path": "vendor/sigs.k8s.io/yaml/SECURITY_CONTACTS",
    "content": "# Defined below are the security contacts for this repo.\n#\n# They are the contact point for the Product Security Team to reach out\n# to for triaging and handling of incoming issues.\n#\n# The below names agree to abide by the\n# [Embargo Policy](https://github.com/kubernetes/sig-release/blob/master/security-release-process-documentation/security-release-process.md#embargo-policy)\n# and will be removed and replaced if they violate that agreement.\n#\n# DO NOT REPORT SECURITY VULNERABILITIES DIRECTLY TO THESE NAMES, FOLLOW THE\n# INSTRUCTIONS AT https://kubernetes.io/security/\n\ncjcullen\njessfraz\nliggitt\nphilips\ntallclair\n"
  },
  {
    "path": "vendor/sigs.k8s.io/yaml/code-of-conduct.md",
    "content": "# Kubernetes Community Code of Conduct\n\nPlease refer to our [Kubernetes Community Code of Conduct](https://git.k8s.io/community/code-of-conduct.md)\n"
  },
  {
    "path": "vendor/sigs.k8s.io/yaml/fields.go",
    "content": "// Copyright 2013 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\npackage yaml\n\nimport (\n\t\"bytes\"\n\t\"encoding\"\n\t\"encoding/json\"\n\t\"reflect\"\n\t\"sort\"\n\t\"strings\"\n\t\"sync\"\n\t\"unicode\"\n\t\"unicode/utf8\"\n)\n\n// indirect walks down 'value' allocating pointers as needed,\n// until it gets to a non-pointer.\n// if it encounters an Unmarshaler, indirect stops and returns that.\n// if decodingNull is true, indirect stops at the last pointer so it can be set to nil.\nfunc indirect(value reflect.Value, decodingNull bool) (json.Unmarshaler, encoding.TextUnmarshaler, reflect.Value) {\n\t// If 'value' is a named type and is addressable,\n\t// start with its address, so that if the type has pointer methods,\n\t// we find them.\n\tif value.Kind() != reflect.Ptr && value.Type().Name() != \"\" && value.CanAddr() {\n\t\tvalue = value.Addr()\n\t}\n\tfor {\n\t\t// Load value from interface, but only if the result will be\n\t\t// usefully addressable.\n\t\tif value.Kind() == reflect.Interface && !value.IsNil() {\n\t\t\telement := value.Elem()\n\t\t\tif element.Kind() == reflect.Ptr && !element.IsNil() && (!decodingNull || element.Elem().Kind() == reflect.Ptr) {\n\t\t\t\tvalue = element\n\t\t\t\tcontinue\n\t\t\t}\n\t\t}\n\n\t\tif value.Kind() != reflect.Ptr {\n\t\t\tbreak\n\t\t}\n\n\t\tif value.Elem().Kind() != reflect.Ptr && decodingNull && value.CanSet() {\n\t\t\tbreak\n\t\t}\n\t\tif value.IsNil() {\n\t\t\tif value.CanSet() {\n\t\t\t\tvalue.Set(reflect.New(value.Type().Elem()))\n\t\t\t} else {\n\t\t\t\tvalue = reflect.New(value.Type().Elem())\n\t\t\t}\n\t\t}\n\t\tif value.Type().NumMethod() > 0 {\n\t\t\tif u, ok := value.Interface().(json.Unmarshaler); ok {\n\t\t\t\treturn u, nil, reflect.Value{}\n\t\t\t}\n\t\t\tif u, ok := value.Interface().(encoding.TextUnmarshaler); ok {\n\t\t\t\treturn nil, u, reflect.Value{}\n\t\t\t}\n\t\t}\n\t\tvalue = value.Elem()\n\t}\n\treturn nil, nil, value\n}\n\n// A field represents a single field found in a struct.\ntype field struct {\n\tname      string\n\tnameBytes []byte                 // []byte(name)\n\tequalFold func(s, t []byte) bool // bytes.EqualFold or equivalent\n\n\ttag       bool\n\tindex     []int\n\ttyp       reflect.Type\n\tomitEmpty bool\n\tquoted    bool\n}\n\nfunc fillField(f field) field {\n\tf.nameBytes = []byte(f.name)\n\tf.equalFold = foldFunc(f.nameBytes)\n\treturn f\n}\n\n// byName sorts field by name, breaking ties with depth,\n// then breaking ties with \"name came from json tag\", then\n// breaking ties with index sequence.\ntype byName []field\n\nfunc (x byName) Len() int { return len(x) }\n\nfunc (x byName) Swap(i, j int) { x[i], x[j] = x[j], x[i] }\n\nfunc (x byName) Less(i, j int) bool {\n\tif x[i].name != x[j].name {\n\t\treturn x[i].name < x[j].name\n\t}\n\tif len(x[i].index) != len(x[j].index) {\n\t\treturn len(x[i].index) < len(x[j].index)\n\t}\n\tif x[i].tag != x[j].tag {\n\t\treturn x[i].tag\n\t}\n\treturn byIndex(x).Less(i, j)\n}\n\n// byIndex sorts field by index sequence.\ntype byIndex []field\n\nfunc (x byIndex) Len() int { return len(x) }\n\nfunc (x byIndex) Swap(i, j int) { x[i], x[j] = x[j], x[i] }\n\nfunc (x byIndex) Less(i, j int) bool {\n\tfor k, xik := range x[i].index {\n\t\tif k >= len(x[j].index) {\n\t\t\treturn false\n\t\t}\n\t\tif xik != x[j].index[k] {\n\t\t\treturn xik < x[j].index[k]\n\t\t}\n\t}\n\treturn len(x[i].index) < len(x[j].index)\n}\n\n// typeFields returns a list of fields that JSON should recognize for the given type.\n// The algorithm is breadth-first search over the set of structs to include - the top struct\n// and then any reachable anonymous structs.\nfunc typeFields(t reflect.Type) []field {\n\t// Anonymous fields to explore at the current level and the next.\n\tcurrent := []field{}\n\tnext := []field{{typ: t}}\n\n\t// Count of queued names for current level and the next.\n\tvar count map[reflect.Type]int\n\tvar nextCount map[reflect.Type]int\n\n\t// Types already visited at an earlier level.\n\tvisited := map[reflect.Type]bool{}\n\n\t// Fields found.\n\tvar fields []field\n\n\tfor len(next) > 0 {\n\t\tcurrent, next = next, current[:0]\n\t\tcount, nextCount = nextCount, map[reflect.Type]int{}\n\n\t\tfor _, f := range current {\n\t\t\tif visited[f.typ] {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tvisited[f.typ] = true\n\n\t\t\t// Scan f.typ for fields to include.\n\t\t\tfor i := 0; i < f.typ.NumField(); i++ {\n\t\t\t\tsf := f.typ.Field(i)\n\t\t\t\tif sf.PkgPath != \"\" { // unexported\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\ttag := sf.Tag.Get(\"json\")\n\t\t\t\tif tag == \"-\" {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tname, opts := parseTag(tag)\n\t\t\t\tif !isValidTag(name) {\n\t\t\t\t\tname = \"\"\n\t\t\t\t}\n\t\t\t\tindex := make([]int, len(f.index)+1)\n\t\t\t\tcopy(index, f.index)\n\t\t\t\tindex[len(f.index)] = i\n\n\t\t\t\tft := sf.Type\n\t\t\t\tif ft.Name() == \"\" && ft.Kind() == reflect.Ptr {\n\t\t\t\t\t// Follow pointer.\n\t\t\t\t\tft = ft.Elem()\n\t\t\t\t}\n\n\t\t\t\t// Record found field and index sequence.\n\t\t\t\tif name != \"\" || !sf.Anonymous || ft.Kind() != reflect.Struct {\n\t\t\t\t\ttagged := name != \"\"\n\t\t\t\t\tif name == \"\" {\n\t\t\t\t\t\tname = sf.Name\n\t\t\t\t\t}\n\t\t\t\t\tfields = append(fields, fillField(field{\n\t\t\t\t\t\tname:      name,\n\t\t\t\t\t\ttag:       tagged,\n\t\t\t\t\t\tindex:     index,\n\t\t\t\t\t\ttyp:       ft,\n\t\t\t\t\t\tomitEmpty: opts.Contains(\"omitempty\"),\n\t\t\t\t\t\tquoted:    opts.Contains(\"string\"),\n\t\t\t\t\t}))\n\t\t\t\t\tif count[f.typ] > 1 {\n\t\t\t\t\t\t// If there were multiple instances, add a second,\n\t\t\t\t\t\t// so that the annihilation code will see a duplicate.\n\t\t\t\t\t\t// It only cares about the distinction between 1 or 2,\n\t\t\t\t\t\t// so don't bother generating any more copies.\n\t\t\t\t\t\tfields = append(fields, fields[len(fields)-1])\n\t\t\t\t\t}\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\t// Record new anonymous struct to explore in next round.\n\t\t\t\tnextCount[ft]++\n\t\t\t\tif nextCount[ft] == 1 {\n\t\t\t\t\tnext = append(next, fillField(field{name: ft.Name(), index: index, typ: ft}))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tsort.Sort(byName(fields))\n\n\t// Delete all fields that are hidden by the Go rules for embedded fields,\n\t// except that fields with JSON tags are promoted.\n\n\t// The fields are sorted in primary order of name, secondary order\n\t// of field index length. Loop over names; for each name, delete\n\t// hidden fields by choosing the one dominant field that survives.\n\tout := fields[:0]\n\tfor advance, i := 0, 0; i < len(fields); i += advance {\n\t\t// One iteration per name.\n\t\t// Find the sequence of fields with the name of this first field.\n\t\tfi := fields[i]\n\t\tname := fi.name\n\t\tfor advance = 1; i+advance < len(fields); advance++ {\n\t\t\tfj := fields[i+advance]\n\t\t\tif fj.name != name {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\tif advance == 1 { // Only one field with this name\n\t\t\tout = append(out, fi)\n\t\t\tcontinue\n\t\t}\n\t\tdominant, ok := dominantField(fields[i : i+advance])\n\t\tif ok {\n\t\t\tout = append(out, dominant)\n\t\t}\n\t}\n\n\tfields = out\n\tsort.Sort(byIndex(fields))\n\n\treturn fields\n}\n\n// dominantField looks through the fields, all of which are known to\n// have the same name, to find the single field that dominates the\n// others using Go's embedding rules, modified by the presence of\n// JSON tags. If there are multiple top-level fields, the boolean\n// will be false: This condition is an error in Go and we skip all\n// the fields.\nfunc dominantField(fields []field) (field, bool) {\n\t// The fields are sorted in increasing index-length order. The winner\n\t// must therefore be one with the shortest index length. Drop all\n\t// longer entries, which is easy: just truncate the slice.\n\tlength := len(fields[0].index)\n\ttagged := -1 // Index of first tagged field.\n\tfor i, f := range fields {\n\t\tif len(f.index) > length {\n\t\t\tfields = fields[:i]\n\t\t\tbreak\n\t\t}\n\t\tif f.tag {\n\t\t\tif tagged >= 0 {\n\t\t\t\t// Multiple tagged fields at the same level: conflict.\n\t\t\t\t// Return no field.\n\t\t\t\treturn field{}, false\n\t\t\t}\n\t\t\ttagged = i\n\t\t}\n\t}\n\tif tagged >= 0 {\n\t\treturn fields[tagged], true\n\t}\n\t// All remaining fields have the same length. If there's more than one,\n\t// we have a conflict (two fields named \"X\" at the same level) and we\n\t// return no field.\n\tif len(fields) > 1 {\n\t\treturn field{}, false\n\t}\n\treturn fields[0], true\n}\n\nvar fieldCache struct {\n\tsync.RWMutex\n\tm map[reflect.Type][]field\n}\n\n// cachedTypeFields is like typeFields but uses a cache to avoid repeated work.\nfunc cachedTypeFields(t reflect.Type) []field {\n\tfieldCache.RLock()\n\tf := fieldCache.m[t]\n\tfieldCache.RUnlock()\n\tif f != nil {\n\t\treturn f\n\t}\n\n\t// Compute fields without lock.\n\t// Might duplicate effort but won't hold other computations back.\n\tf = typeFields(t)\n\tif f == nil {\n\t\tf = []field{}\n\t}\n\n\tfieldCache.Lock()\n\tif fieldCache.m == nil {\n\t\tfieldCache.m = map[reflect.Type][]field{}\n\t}\n\tfieldCache.m[t] = f\n\tfieldCache.Unlock()\n\treturn f\n}\n\nfunc isValidTag(s string) bool {\n\tif s == \"\" {\n\t\treturn false\n\t}\n\tfor _, c := range s {\n\t\tswitch {\n\t\tcase strings.ContainsRune(\"!#$%&()*+-./:<=>?@[]^_{|}~ \", c):\n\t\t\t// Backslash and quote chars are reserved, but\n\t\t\t// otherwise any punctuation chars are allowed\n\t\t\t// in a tag name.\n\t\tdefault:\n\t\t\tif !unicode.IsLetter(c) && !unicode.IsDigit(c) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\treturn true\n}\n\nconst (\n\tcaseMask     = ^byte(0x20) // Mask to ignore case in ASCII.\n\tkelvin       = '\\u212a'\n\tsmallLongEss = '\\u017f'\n)\n\n// foldFunc returns one of four different case folding equivalence\n// functions, from most general (and slow) to fastest:\n//\n// 1) bytes.EqualFold, if the key s contains any non-ASCII UTF-8\n// 2) equalFoldRight, if s contains special folding ASCII ('k', 'K', 's', 'S')\n// 3) asciiEqualFold, no special, but includes non-letters (including _)\n// 4) simpleLetterEqualFold, no specials, no non-letters.\n//\n// The letters S and K are special because they map to 3 runes, not just 2:\n//   - S maps to s and to U+017F 'ſ' Latin small letter long s\n//   - k maps to K and to U+212A 'K' Kelvin sign\n//\n// See http://play.golang.org/p/tTxjOc0OGo\n//\n// The returned function is specialized for matching against s and\n// should only be given s. It's not curried for performance reasons.\nfunc foldFunc(s []byte) func(s, t []byte) bool {\n\tnonLetter := false\n\tspecial := false // special letter\n\tfor _, b := range s {\n\t\tif b >= utf8.RuneSelf {\n\t\t\treturn bytes.EqualFold\n\t\t}\n\t\tupper := b & caseMask\n\t\tif upper < 'A' || upper > 'Z' {\n\t\t\tnonLetter = true\n\t\t} else if upper == 'K' || upper == 'S' {\n\t\t\t// See above for why these letters are special.\n\t\t\tspecial = true\n\t\t}\n\t}\n\tif special {\n\t\treturn equalFoldRight\n\t}\n\tif nonLetter {\n\t\treturn asciiEqualFold\n\t}\n\treturn simpleLetterEqualFold\n}\n\n// equalFoldRight is a specialization of bytes.EqualFold when s is\n// known to be all ASCII (including punctuation), but contains an 's',\n// 'S', 'k', or 'K', requiring a Unicode fold on the bytes in t.\n// See comments on foldFunc.\nfunc equalFoldRight(s, t []byte) bool {\n\tfor _, sb := range s {\n\t\tif len(t) == 0 {\n\t\t\treturn false\n\t\t}\n\t\ttb := t[0]\n\t\tif tb < utf8.RuneSelf {\n\t\t\tif sb != tb {\n\t\t\t\tsbUpper := sb & caseMask\n\t\t\t\tif 'A' <= sbUpper && sbUpper <= 'Z' {\n\t\t\t\t\tif sbUpper != tb&caseMask {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tt = t[1:]\n\t\t\tcontinue\n\t\t}\n\t\t// sb is ASCII and t is not. t must be either kelvin\n\t\t// sign or long s; sb must be s, S, k, or K.\n\t\ttr, size := utf8.DecodeRune(t)\n\t\tswitch sb {\n\t\tcase 's', 'S':\n\t\t\tif tr != smallLongEss {\n\t\t\t\treturn false\n\t\t\t}\n\t\tcase 'k', 'K':\n\t\t\tif tr != kelvin {\n\t\t\t\treturn false\n\t\t\t}\n\t\tdefault:\n\t\t\treturn false\n\t\t}\n\t\tt = t[size:]\n\n\t}\n\n\treturn len(t) <= 0\n}\n\n// asciiEqualFold is a specialization of bytes.EqualFold for use when\n// s is all ASCII (but may contain non-letters) and contains no\n// special-folding letters.\n// See comments on foldFunc.\nfunc asciiEqualFold(s, t []byte) bool {\n\tif len(s) != len(t) {\n\t\treturn false\n\t}\n\tfor i, sb := range s {\n\t\ttb := t[i]\n\t\tif sb == tb {\n\t\t\tcontinue\n\t\t}\n\t\tif ('a' <= sb && sb <= 'z') || ('A' <= sb && sb <= 'Z') {\n\t\t\tif sb&caseMask != tb&caseMask {\n\t\t\t\treturn false\n\t\t\t}\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// simpleLetterEqualFold is a specialization of bytes.EqualFold for\n// use when s is all ASCII letters (no underscores, etc) and also\n// doesn't contain 'k', 'K', 's', or 'S'.\n// See comments on foldFunc.\nfunc simpleLetterEqualFold(s, t []byte) bool {\n\tif len(s) != len(t) {\n\t\treturn false\n\t}\n\tfor i, b := range s {\n\t\tif b&caseMask != t[i]&caseMask {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// tagOptions is the string following a comma in a struct field's \"json\"\n// tag, or the empty string. It does not include the leading comma.\ntype tagOptions string\n\n// parseTag splits a struct field's json tag into its name and\n// comma-separated options.\nfunc parseTag(tag string) (string, tagOptions) {\n\tif idx := strings.Index(tag, \",\"); idx != -1 {\n\t\treturn tag[:idx], tagOptions(tag[idx+1:])\n\t}\n\treturn tag, tagOptions(\"\")\n}\n\n// Contains reports whether a comma-separated list of options\n// contains a particular substr flag. substr must be surrounded by a\n// string boundary or commas.\nfunc (o tagOptions) Contains(optionName string) bool {\n\tif len(o) == 0 {\n\t\treturn false\n\t}\n\ts := string(o)\n\tfor s != \"\" {\n\t\tvar next string\n\t\ti := strings.Index(s, \",\")\n\t\tif i >= 0 {\n\t\t\ts, next = s[:i], s[i+1:]\n\t\t}\n\t\tif s == optionName {\n\t\t\treturn true\n\t\t}\n\t\ts = next\n\t}\n\treturn false\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/yaml/goyaml.v2/LICENSE",
    "content": "                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "vendor/sigs.k8s.io/yaml/goyaml.v2/LICENSE.libyaml",
    "content": "The following files were ported to Go from C files of libyaml, and thus\nare still covered by their original copyright and license:\n\n    apic.go\n    emitterc.go\n    parserc.go\n    readerc.go\n    scannerc.go\n    writerc.go\n    yamlh.go\n    yamlprivateh.go\n\nCopyright (c) 2006 Kirill Simonov\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\nof the Software, and to permit persons to whom the Software is furnished to do\nso, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "vendor/sigs.k8s.io/yaml/goyaml.v2/NOTICE",
    "content": "Copyright 2011-2016 Canonical Ltd.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n"
  },
  {
    "path": "vendor/sigs.k8s.io/yaml/goyaml.v2/OWNERS",
    "content": "# See the OWNERS docs at https://go.k8s.io/owners\n\napprovers:\n- dims\n- jpbetz\n- smarterclayton\n- deads2k\n- sttts\n- liggitt\n- natasha41575\n- knverey\nreviewers:\n- dims\n- thockin\n- jpbetz\n- smarterclayton\n- deads2k\n- derekwaynecarr\n- mikedanese\n- liggitt\n- sttts\n- tallclair\nlabels:\n- sig/api-machinery\n"
  },
  {
    "path": "vendor/sigs.k8s.io/yaml/goyaml.v2/README.md",
    "content": "# go-yaml fork\n\nThis package is a fork of the go-yaml library and is intended solely for consumption\nby kubernetes projects. In this fork, we plan to support only critical changes required for\nkubernetes, such as small bug fixes and regressions. Larger, general-purpose feature requests\nshould be made in the upstream go-yaml library, and we will reject such changes in this fork\nunless we are pulling them from upstream.\n\nThis fork is based on v2.4.0: https://github.com/go-yaml/yaml/releases/tag/v2.4.0\n\n# YAML support for the Go language\n\nIntroduction\n------------\n\nThe yaml package enables Go programs to comfortably encode and decode YAML\nvalues. It was developed within [Canonical](https://www.canonical.com) as\npart of the [juju](https://juju.ubuntu.com) project, and is based on a\npure Go port of the well-known [libyaml](http://pyyaml.org/wiki/LibYAML)\nC library to parse and generate YAML data quickly and reliably.\n\nCompatibility\n-------------\n\nThe yaml package supports most of YAML 1.1 and 1.2, including support for\nanchors, tags, map merging, etc. Multi-document unmarshalling is not yet\nimplemented, and base-60 floats from YAML 1.1 are purposefully not\nsupported since they're a poor design and are gone in YAML 1.2.\n\nInstallation and usage\n----------------------\n\nThe import path for the package is *gopkg.in/yaml.v2*.\n\nTo install it, run:\n\n    go get gopkg.in/yaml.v2\n\nAPI documentation\n-----------------\n\nIf opened in a browser, the import path itself leads to the API documentation:\n\n  * [https://gopkg.in/yaml.v2](https://gopkg.in/yaml.v2)\n\nAPI stability\n-------------\n\nThe package API for yaml v2 will remain stable as described in [gopkg.in](https://gopkg.in).\n\n\nLicense\n-------\n\nThe yaml package is licensed under the Apache License 2.0. Please see the LICENSE file for details.\n\n\nExample\n-------\n\n```Go\npackage main\n\nimport (\n        \"fmt\"\n        \"log\"\n\n        \"gopkg.in/yaml.v2\"\n)\n\nvar data = `\na: Easy!\nb:\n  c: 2\n  d: [3, 4]\n`\n\n// Note: struct fields must be public in order for unmarshal to\n// correctly populate the data.\ntype T struct {\n        A string\n        B struct {\n                RenamedC int   `yaml:\"c\"`\n                D        []int `yaml:\",flow\"`\n        }\n}\n\nfunc main() {\n        t := T{}\n    \n        err := yaml.Unmarshal([]byte(data), &t)\n        if err != nil {\n                log.Fatalf(\"error: %v\", err)\n        }\n        fmt.Printf(\"--- t:\\n%v\\n\\n\", t)\n    \n        d, err := yaml.Marshal(&t)\n        if err != nil {\n                log.Fatalf(\"error: %v\", err)\n        }\n        fmt.Printf(\"--- t dump:\\n%s\\n\\n\", string(d))\n    \n        m := make(map[interface{}]interface{})\n    \n        err = yaml.Unmarshal([]byte(data), &m)\n        if err != nil {\n                log.Fatalf(\"error: %v\", err)\n        }\n        fmt.Printf(\"--- m:\\n%v\\n\\n\", m)\n    \n        d, err = yaml.Marshal(&m)\n        if err != nil {\n                log.Fatalf(\"error: %v\", err)\n        }\n        fmt.Printf(\"--- m dump:\\n%s\\n\\n\", string(d))\n}\n```\n\nThis example will generate the following output:\n\n```\n--- t:\n{Easy! {2 [3 4]}}\n\n--- t dump:\na: Easy!\nb:\n  c: 2\n  d: [3, 4]\n\n\n--- m:\nmap[a:Easy! b:map[c:2 d:[3 4]]]\n\n--- m dump:\na: Easy!\nb:\n  c: 2\n  d:\n  - 3\n  - 4\n```\n\n"
  },
  {
    "path": "vendor/sigs.k8s.io/yaml/goyaml.v2/apic.go",
    "content": "package yaml\n\nimport (\n\t\"io\"\n)\n\nfunc yaml_insert_token(parser *yaml_parser_t, pos int, token *yaml_token_t) {\n\t//fmt.Println(\"yaml_insert_token\", \"pos:\", pos, \"typ:\", token.typ, \"head:\", parser.tokens_head, \"len:\", len(parser.tokens))\n\n\t// Check if we can move the queue at the beginning of the buffer.\n\tif parser.tokens_head > 0 && len(parser.tokens) == cap(parser.tokens) {\n\t\tif parser.tokens_head != len(parser.tokens) {\n\t\t\tcopy(parser.tokens, parser.tokens[parser.tokens_head:])\n\t\t}\n\t\tparser.tokens = parser.tokens[:len(parser.tokens)-parser.tokens_head]\n\t\tparser.tokens_head = 0\n\t}\n\tparser.tokens = append(parser.tokens, *token)\n\tif pos < 0 {\n\t\treturn\n\t}\n\tcopy(parser.tokens[parser.tokens_head+pos+1:], parser.tokens[parser.tokens_head+pos:])\n\tparser.tokens[parser.tokens_head+pos] = *token\n}\n\n// Create a new parser object.\nfunc yaml_parser_initialize(parser *yaml_parser_t) bool {\n\t*parser = yaml_parser_t{\n\t\traw_buffer: make([]byte, 0, input_raw_buffer_size),\n\t\tbuffer:     make([]byte, 0, input_buffer_size),\n\t}\n\treturn true\n}\n\n// Destroy a parser object.\nfunc yaml_parser_delete(parser *yaml_parser_t) {\n\t*parser = yaml_parser_t{}\n}\n\n// String read handler.\nfunc yaml_string_read_handler(parser *yaml_parser_t, buffer []byte) (n int, err error) {\n\tif parser.input_pos == len(parser.input) {\n\t\treturn 0, io.EOF\n\t}\n\tn = copy(buffer, parser.input[parser.input_pos:])\n\tparser.input_pos += n\n\treturn n, nil\n}\n\n// Reader read handler.\nfunc yaml_reader_read_handler(parser *yaml_parser_t, buffer []byte) (n int, err error) {\n\treturn parser.input_reader.Read(buffer)\n}\n\n// Set a string input.\nfunc yaml_parser_set_input_string(parser *yaml_parser_t, input []byte) {\n\tif parser.read_handler != nil {\n\t\tpanic(\"must set the input source only once\")\n\t}\n\tparser.read_handler = yaml_string_read_handler\n\tparser.input = input\n\tparser.input_pos = 0\n}\n\n// Set a file input.\nfunc yaml_parser_set_input_reader(parser *yaml_parser_t, r io.Reader) {\n\tif parser.read_handler != nil {\n\t\tpanic(\"must set the input source only once\")\n\t}\n\tparser.read_handler = yaml_reader_read_handler\n\tparser.input_reader = r\n}\n\n// Set the source encoding.\nfunc yaml_parser_set_encoding(parser *yaml_parser_t, encoding yaml_encoding_t) {\n\tif parser.encoding != yaml_ANY_ENCODING {\n\t\tpanic(\"must set the encoding only once\")\n\t}\n\tparser.encoding = encoding\n}\n\nvar disableLineWrapping = false\n\n// Create a new emitter object.\nfunc yaml_emitter_initialize(emitter *yaml_emitter_t) {\n\t*emitter = yaml_emitter_t{\n\t\tbuffer:     make([]byte, output_buffer_size),\n\t\traw_buffer: make([]byte, 0, output_raw_buffer_size),\n\t\tstates:     make([]yaml_emitter_state_t, 0, initial_stack_size),\n\t\tevents:     make([]yaml_event_t, 0, initial_queue_size),\n\t}\n\tif disableLineWrapping {\n\t\temitter.best_width = -1\n\t}\n}\n\n// Destroy an emitter object.\nfunc yaml_emitter_delete(emitter *yaml_emitter_t) {\n\t*emitter = yaml_emitter_t{}\n}\n\n// String write handler.\nfunc yaml_string_write_handler(emitter *yaml_emitter_t, buffer []byte) error {\n\t*emitter.output_buffer = append(*emitter.output_buffer, buffer...)\n\treturn nil\n}\n\n// yaml_writer_write_handler uses emitter.output_writer to write the\n// emitted text.\nfunc yaml_writer_write_handler(emitter *yaml_emitter_t, buffer []byte) error {\n\t_, err := emitter.output_writer.Write(buffer)\n\treturn err\n}\n\n// Set a string output.\nfunc yaml_emitter_set_output_string(emitter *yaml_emitter_t, output_buffer *[]byte) {\n\tif emitter.write_handler != nil {\n\t\tpanic(\"must set the output target only once\")\n\t}\n\temitter.write_handler = yaml_string_write_handler\n\temitter.output_buffer = output_buffer\n}\n\n// Set a file output.\nfunc yaml_emitter_set_output_writer(emitter *yaml_emitter_t, w io.Writer) {\n\tif emitter.write_handler != nil {\n\t\tpanic(\"must set the output target only once\")\n\t}\n\temitter.write_handler = yaml_writer_write_handler\n\temitter.output_writer = w\n}\n\n// Set the output encoding.\nfunc yaml_emitter_set_encoding(emitter *yaml_emitter_t, encoding yaml_encoding_t) {\n\tif emitter.encoding != yaml_ANY_ENCODING {\n\t\tpanic(\"must set the output encoding only once\")\n\t}\n\temitter.encoding = encoding\n}\n\n// Set the canonical output style.\nfunc yaml_emitter_set_canonical(emitter *yaml_emitter_t, canonical bool) {\n\temitter.canonical = canonical\n}\n\n//// Set the indentation increment.\nfunc yaml_emitter_set_indent(emitter *yaml_emitter_t, indent int) {\n\tif indent < 2 || indent > 9 {\n\t\tindent = 2\n\t}\n\temitter.best_indent = indent\n}\n\n// Set the preferred line width.\nfunc yaml_emitter_set_width(emitter *yaml_emitter_t, width int) {\n\tif width < 0 {\n\t\twidth = -1\n\t}\n\temitter.best_width = width\n}\n\n// Set if unescaped non-ASCII characters are allowed.\nfunc yaml_emitter_set_unicode(emitter *yaml_emitter_t, unicode bool) {\n\temitter.unicode = unicode\n}\n\n// Set the preferred line break character.\nfunc yaml_emitter_set_break(emitter *yaml_emitter_t, line_break yaml_break_t) {\n\temitter.line_break = line_break\n}\n\n///*\n// * Destroy a token object.\n// */\n//\n//YAML_DECLARE(void)\n//yaml_token_delete(yaml_token_t *token)\n//{\n//    assert(token);  // Non-NULL token object expected.\n//\n//    switch (token.type)\n//    {\n//        case YAML_TAG_DIRECTIVE_TOKEN:\n//            yaml_free(token.data.tag_directive.handle);\n//            yaml_free(token.data.tag_directive.prefix);\n//            break;\n//\n//        case YAML_ALIAS_TOKEN:\n//            yaml_free(token.data.alias.value);\n//            break;\n//\n//        case YAML_ANCHOR_TOKEN:\n//            yaml_free(token.data.anchor.value);\n//            break;\n//\n//        case YAML_TAG_TOKEN:\n//            yaml_free(token.data.tag.handle);\n//            yaml_free(token.data.tag.suffix);\n//            break;\n//\n//        case YAML_SCALAR_TOKEN:\n//            yaml_free(token.data.scalar.value);\n//            break;\n//\n//        default:\n//            break;\n//    }\n//\n//    memset(token, 0, sizeof(yaml_token_t));\n//}\n//\n///*\n// * Check if a string is a valid UTF-8 sequence.\n// *\n// * Check 'reader.c' for more details on UTF-8 encoding.\n// */\n//\n//static int\n//yaml_check_utf8(yaml_char_t *start, size_t length)\n//{\n//    yaml_char_t *end = start+length;\n//    yaml_char_t *pointer = start;\n//\n//    while (pointer < end) {\n//        unsigned char octet;\n//        unsigned int width;\n//        unsigned int value;\n//        size_t k;\n//\n//        octet = pointer[0];\n//        width = (octet & 0x80) == 0x00 ? 1 :\n//                (octet & 0xE0) == 0xC0 ? 2 :\n//                (octet & 0xF0) == 0xE0 ? 3 :\n//                (octet & 0xF8) == 0xF0 ? 4 : 0;\n//        value = (octet & 0x80) == 0x00 ? octet & 0x7F :\n//                (octet & 0xE0) == 0xC0 ? octet & 0x1F :\n//                (octet & 0xF0) == 0xE0 ? octet & 0x0F :\n//                (octet & 0xF8) == 0xF0 ? octet & 0x07 : 0;\n//        if (!width) return 0;\n//        if (pointer+width > end) return 0;\n//        for (k = 1; k < width; k ++) {\n//            octet = pointer[k];\n//            if ((octet & 0xC0) != 0x80) return 0;\n//            value = (value << 6) + (octet & 0x3F);\n//        }\n//        if (!((width == 1) ||\n//            (width == 2 && value >= 0x80) ||\n//            (width == 3 && value >= 0x800) ||\n//            (width == 4 && value >= 0x10000))) return 0;\n//\n//        pointer += width;\n//    }\n//\n//    return 1;\n//}\n//\n\n// Create STREAM-START.\nfunc yaml_stream_start_event_initialize(event *yaml_event_t, encoding yaml_encoding_t) {\n\t*event = yaml_event_t{\n\t\ttyp:      yaml_STREAM_START_EVENT,\n\t\tencoding: encoding,\n\t}\n}\n\n// Create STREAM-END.\nfunc yaml_stream_end_event_initialize(event *yaml_event_t) {\n\t*event = yaml_event_t{\n\t\ttyp: yaml_STREAM_END_EVENT,\n\t}\n}\n\n// Create DOCUMENT-START.\nfunc yaml_document_start_event_initialize(\n\tevent *yaml_event_t,\n\tversion_directive *yaml_version_directive_t,\n\ttag_directives []yaml_tag_directive_t,\n\timplicit bool,\n) {\n\t*event = yaml_event_t{\n\t\ttyp:               yaml_DOCUMENT_START_EVENT,\n\t\tversion_directive: version_directive,\n\t\ttag_directives:    tag_directives,\n\t\timplicit:          implicit,\n\t}\n}\n\n// Create DOCUMENT-END.\nfunc yaml_document_end_event_initialize(event *yaml_event_t, implicit bool) {\n\t*event = yaml_event_t{\n\t\ttyp:      yaml_DOCUMENT_END_EVENT,\n\t\timplicit: implicit,\n\t}\n}\n\n///*\n// * Create ALIAS.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_alias_event_initialize(event *yaml_event_t, anchor *yaml_char_t)\n//{\n//    mark yaml_mark_t = { 0, 0, 0 }\n//    anchor_copy *yaml_char_t = NULL\n//\n//    assert(event) // Non-NULL event object is expected.\n//    assert(anchor) // Non-NULL anchor is expected.\n//\n//    if (!yaml_check_utf8(anchor, strlen((char *)anchor))) return 0\n//\n//    anchor_copy = yaml_strdup(anchor)\n//    if (!anchor_copy)\n//        return 0\n//\n//    ALIAS_EVENT_INIT(*event, anchor_copy, mark, mark)\n//\n//    return 1\n//}\n\n// Create SCALAR.\nfunc yaml_scalar_event_initialize(event *yaml_event_t, anchor, tag, value []byte, plain_implicit, quoted_implicit bool, style yaml_scalar_style_t) bool {\n\t*event = yaml_event_t{\n\t\ttyp:             yaml_SCALAR_EVENT,\n\t\tanchor:          anchor,\n\t\ttag:             tag,\n\t\tvalue:           value,\n\t\timplicit:        plain_implicit,\n\t\tquoted_implicit: quoted_implicit,\n\t\tstyle:           yaml_style_t(style),\n\t}\n\treturn true\n}\n\n// Create SEQUENCE-START.\nfunc yaml_sequence_start_event_initialize(event *yaml_event_t, anchor, tag []byte, implicit bool, style yaml_sequence_style_t) bool {\n\t*event = yaml_event_t{\n\t\ttyp:      yaml_SEQUENCE_START_EVENT,\n\t\tanchor:   anchor,\n\t\ttag:      tag,\n\t\timplicit: implicit,\n\t\tstyle:    yaml_style_t(style),\n\t}\n\treturn true\n}\n\n// Create SEQUENCE-END.\nfunc yaml_sequence_end_event_initialize(event *yaml_event_t) bool {\n\t*event = yaml_event_t{\n\t\ttyp: yaml_SEQUENCE_END_EVENT,\n\t}\n\treturn true\n}\n\n// Create MAPPING-START.\nfunc yaml_mapping_start_event_initialize(event *yaml_event_t, anchor, tag []byte, implicit bool, style yaml_mapping_style_t) {\n\t*event = yaml_event_t{\n\t\ttyp:      yaml_MAPPING_START_EVENT,\n\t\tanchor:   anchor,\n\t\ttag:      tag,\n\t\timplicit: implicit,\n\t\tstyle:    yaml_style_t(style),\n\t}\n}\n\n// Create MAPPING-END.\nfunc yaml_mapping_end_event_initialize(event *yaml_event_t) {\n\t*event = yaml_event_t{\n\t\ttyp: yaml_MAPPING_END_EVENT,\n\t}\n}\n\n// Destroy an event object.\nfunc yaml_event_delete(event *yaml_event_t) {\n\t*event = yaml_event_t{}\n}\n\n///*\n// * Create a document object.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_initialize(document *yaml_document_t,\n//        version_directive *yaml_version_directive_t,\n//        tag_directives_start *yaml_tag_directive_t,\n//        tag_directives_end *yaml_tag_directive_t,\n//        start_implicit int, end_implicit int)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    struct {\n//        start *yaml_node_t\n//        end *yaml_node_t\n//        top *yaml_node_t\n//    } nodes = { NULL, NULL, NULL }\n//    version_directive_copy *yaml_version_directive_t = NULL\n//    struct {\n//        start *yaml_tag_directive_t\n//        end *yaml_tag_directive_t\n//        top *yaml_tag_directive_t\n//    } tag_directives_copy = { NULL, NULL, NULL }\n//    value yaml_tag_directive_t = { NULL, NULL }\n//    mark yaml_mark_t = { 0, 0, 0 }\n//\n//    assert(document) // Non-NULL document object is expected.\n//    assert((tag_directives_start && tag_directives_end) ||\n//            (tag_directives_start == tag_directives_end))\n//                            // Valid tag directives are expected.\n//\n//    if (!STACK_INIT(&context, nodes, INITIAL_STACK_SIZE)) goto error\n//\n//    if (version_directive) {\n//        version_directive_copy = yaml_malloc(sizeof(yaml_version_directive_t))\n//        if (!version_directive_copy) goto error\n//        version_directive_copy.major = version_directive.major\n//        version_directive_copy.minor = version_directive.minor\n//    }\n//\n//    if (tag_directives_start != tag_directives_end) {\n//        tag_directive *yaml_tag_directive_t\n//        if (!STACK_INIT(&context, tag_directives_copy, INITIAL_STACK_SIZE))\n//            goto error\n//        for (tag_directive = tag_directives_start\n//                tag_directive != tag_directives_end; tag_directive ++) {\n//            assert(tag_directive.handle)\n//            assert(tag_directive.prefix)\n//            if (!yaml_check_utf8(tag_directive.handle,\n//                        strlen((char *)tag_directive.handle)))\n//                goto error\n//            if (!yaml_check_utf8(tag_directive.prefix,\n//                        strlen((char *)tag_directive.prefix)))\n//                goto error\n//            value.handle = yaml_strdup(tag_directive.handle)\n//            value.prefix = yaml_strdup(tag_directive.prefix)\n//            if (!value.handle || !value.prefix) goto error\n//            if (!PUSH(&context, tag_directives_copy, value))\n//                goto error\n//            value.handle = NULL\n//            value.prefix = NULL\n//        }\n//    }\n//\n//    DOCUMENT_INIT(*document, nodes.start, nodes.end, version_directive_copy,\n//            tag_directives_copy.start, tag_directives_copy.top,\n//            start_implicit, end_implicit, mark, mark)\n//\n//    return 1\n//\n//error:\n//    STACK_DEL(&context, nodes)\n//    yaml_free(version_directive_copy)\n//    while (!STACK_EMPTY(&context, tag_directives_copy)) {\n//        value yaml_tag_directive_t = POP(&context, tag_directives_copy)\n//        yaml_free(value.handle)\n//        yaml_free(value.prefix)\n//    }\n//    STACK_DEL(&context, tag_directives_copy)\n//    yaml_free(value.handle)\n//    yaml_free(value.prefix)\n//\n//    return 0\n//}\n//\n///*\n// * Destroy a document object.\n// */\n//\n//YAML_DECLARE(void)\n//yaml_document_delete(document *yaml_document_t)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    tag_directive *yaml_tag_directive_t\n//\n//    context.error = YAML_NO_ERROR // Eliminate a compiler warning.\n//\n//    assert(document) // Non-NULL document object is expected.\n//\n//    while (!STACK_EMPTY(&context, document.nodes)) {\n//        node yaml_node_t = POP(&context, document.nodes)\n//        yaml_free(node.tag)\n//        switch (node.type) {\n//            case YAML_SCALAR_NODE:\n//                yaml_free(node.data.scalar.value)\n//                break\n//            case YAML_SEQUENCE_NODE:\n//                STACK_DEL(&context, node.data.sequence.items)\n//                break\n//            case YAML_MAPPING_NODE:\n//                STACK_DEL(&context, node.data.mapping.pairs)\n//                break\n//            default:\n//                assert(0) // Should not happen.\n//        }\n//    }\n//    STACK_DEL(&context, document.nodes)\n//\n//    yaml_free(document.version_directive)\n//    for (tag_directive = document.tag_directives.start\n//            tag_directive != document.tag_directives.end\n//            tag_directive++) {\n//        yaml_free(tag_directive.handle)\n//        yaml_free(tag_directive.prefix)\n//    }\n//    yaml_free(document.tag_directives.start)\n//\n//    memset(document, 0, sizeof(yaml_document_t))\n//}\n//\n///**\n// * Get a document node.\n// */\n//\n//YAML_DECLARE(yaml_node_t *)\n//yaml_document_get_node(document *yaml_document_t, index int)\n//{\n//    assert(document) // Non-NULL document object is expected.\n//\n//    if (index > 0 && document.nodes.start + index <= document.nodes.top) {\n//        return document.nodes.start + index - 1\n//    }\n//    return NULL\n//}\n//\n///**\n// * Get the root object.\n// */\n//\n//YAML_DECLARE(yaml_node_t *)\n//yaml_document_get_root_node(document *yaml_document_t)\n//{\n//    assert(document) // Non-NULL document object is expected.\n//\n//    if (document.nodes.top != document.nodes.start) {\n//        return document.nodes.start\n//    }\n//    return NULL\n//}\n//\n///*\n// * Add a scalar node to a document.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_add_scalar(document *yaml_document_t,\n//        tag *yaml_char_t, value *yaml_char_t, length int,\n//        style yaml_scalar_style_t)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    mark yaml_mark_t = { 0, 0, 0 }\n//    tag_copy *yaml_char_t = NULL\n//    value_copy *yaml_char_t = NULL\n//    node yaml_node_t\n//\n//    assert(document) // Non-NULL document object is expected.\n//    assert(value) // Non-NULL value is expected.\n//\n//    if (!tag) {\n//        tag = (yaml_char_t *)YAML_DEFAULT_SCALAR_TAG\n//    }\n//\n//    if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error\n//    tag_copy = yaml_strdup(tag)\n//    if (!tag_copy) goto error\n//\n//    if (length < 0) {\n//        length = strlen((char *)value)\n//    }\n//\n//    if (!yaml_check_utf8(value, length)) goto error\n//    value_copy = yaml_malloc(length+1)\n//    if (!value_copy) goto error\n//    memcpy(value_copy, value, length)\n//    value_copy[length] = '\\0'\n//\n//    SCALAR_NODE_INIT(node, tag_copy, value_copy, length, style, mark, mark)\n//    if (!PUSH(&context, document.nodes, node)) goto error\n//\n//    return document.nodes.top - document.nodes.start\n//\n//error:\n//    yaml_free(tag_copy)\n//    yaml_free(value_copy)\n//\n//    return 0\n//}\n//\n///*\n// * Add a sequence node to a document.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_add_sequence(document *yaml_document_t,\n//        tag *yaml_char_t, style yaml_sequence_style_t)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    mark yaml_mark_t = { 0, 0, 0 }\n//    tag_copy *yaml_char_t = NULL\n//    struct {\n//        start *yaml_node_item_t\n//        end *yaml_node_item_t\n//        top *yaml_node_item_t\n//    } items = { NULL, NULL, NULL }\n//    node yaml_node_t\n//\n//    assert(document) // Non-NULL document object is expected.\n//\n//    if (!tag) {\n//        tag = (yaml_char_t *)YAML_DEFAULT_SEQUENCE_TAG\n//    }\n//\n//    if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error\n//    tag_copy = yaml_strdup(tag)\n//    if (!tag_copy) goto error\n//\n//    if (!STACK_INIT(&context, items, INITIAL_STACK_SIZE)) goto error\n//\n//    SEQUENCE_NODE_INIT(node, tag_copy, items.start, items.end,\n//            style, mark, mark)\n//    if (!PUSH(&context, document.nodes, node)) goto error\n//\n//    return document.nodes.top - document.nodes.start\n//\n//error:\n//    STACK_DEL(&context, items)\n//    yaml_free(tag_copy)\n//\n//    return 0\n//}\n//\n///*\n// * Add a mapping node to a document.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_add_mapping(document *yaml_document_t,\n//        tag *yaml_char_t, style yaml_mapping_style_t)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//    mark yaml_mark_t = { 0, 0, 0 }\n//    tag_copy *yaml_char_t = NULL\n//    struct {\n//        start *yaml_node_pair_t\n//        end *yaml_node_pair_t\n//        top *yaml_node_pair_t\n//    } pairs = { NULL, NULL, NULL }\n//    node yaml_node_t\n//\n//    assert(document) // Non-NULL document object is expected.\n//\n//    if (!tag) {\n//        tag = (yaml_char_t *)YAML_DEFAULT_MAPPING_TAG\n//    }\n//\n//    if (!yaml_check_utf8(tag, strlen((char *)tag))) goto error\n//    tag_copy = yaml_strdup(tag)\n//    if (!tag_copy) goto error\n//\n//    if (!STACK_INIT(&context, pairs, INITIAL_STACK_SIZE)) goto error\n//\n//    MAPPING_NODE_INIT(node, tag_copy, pairs.start, pairs.end,\n//            style, mark, mark)\n//    if (!PUSH(&context, document.nodes, node)) goto error\n//\n//    return document.nodes.top - document.nodes.start\n//\n//error:\n//    STACK_DEL(&context, pairs)\n//    yaml_free(tag_copy)\n//\n//    return 0\n//}\n//\n///*\n// * Append an item to a sequence node.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_append_sequence_item(document *yaml_document_t,\n//        sequence int, item int)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//\n//    assert(document) // Non-NULL document is required.\n//    assert(sequence > 0\n//            && document.nodes.start + sequence <= document.nodes.top)\n//                            // Valid sequence id is required.\n//    assert(document.nodes.start[sequence-1].type == YAML_SEQUENCE_NODE)\n//                            // A sequence node is required.\n//    assert(item > 0 && document.nodes.start + item <= document.nodes.top)\n//                            // Valid item id is required.\n//\n//    if (!PUSH(&context,\n//                document.nodes.start[sequence-1].data.sequence.items, item))\n//        return 0\n//\n//    return 1\n//}\n//\n///*\n// * Append a pair of a key and a value to a mapping node.\n// */\n//\n//YAML_DECLARE(int)\n//yaml_document_append_mapping_pair(document *yaml_document_t,\n//        mapping int, key int, value int)\n//{\n//    struct {\n//        error yaml_error_type_t\n//    } context\n//\n//    pair yaml_node_pair_t\n//\n//    assert(document) // Non-NULL document is required.\n//    assert(mapping > 0\n//            && document.nodes.start + mapping <= document.nodes.top)\n//                            // Valid mapping id is required.\n//    assert(document.nodes.start[mapping-1].type == YAML_MAPPING_NODE)\n//                            // A mapping node is required.\n//    assert(key > 0 && document.nodes.start + key <= document.nodes.top)\n//                            // Valid key id is required.\n//    assert(value > 0 && document.nodes.start + value <= document.nodes.top)\n//                            // Valid value id is required.\n//\n//    pair.key = key\n//    pair.value = value\n//\n//    if (!PUSH(&context,\n//                document.nodes.start[mapping-1].data.mapping.pairs, pair))\n//        return 0\n//\n//    return 1\n//}\n//\n//\n"
  },
  {
    "path": "vendor/sigs.k8s.io/yaml/goyaml.v2/decode.go",
    "content": "package yaml\n\nimport (\n\t\"encoding\"\n\t\"encoding/base64\"\n\t\"fmt\"\n\t\"io\"\n\t\"math\"\n\t\"reflect\"\n\t\"strconv\"\n\t\"time\"\n)\n\nconst (\n\tdocumentNode = 1 << iota\n\tmappingNode\n\tsequenceNode\n\tscalarNode\n\taliasNode\n)\n\ntype node struct {\n\tkind         int\n\tline, column int\n\ttag          string\n\t// For an alias node, alias holds the resolved alias.\n\talias    *node\n\tvalue    string\n\timplicit bool\n\tchildren []*node\n\tanchors  map[string]*node\n}\n\n// ----------------------------------------------------------------------------\n// Parser, produces a node tree out of a libyaml event stream.\n\ntype parser struct {\n\tparser   yaml_parser_t\n\tevent    yaml_event_t\n\tdoc      *node\n\tdoneInit bool\n}\n\nfunc newParser(b []byte) *parser {\n\tp := parser{}\n\tif !yaml_parser_initialize(&p.parser) {\n\t\tpanic(\"failed to initialize YAML emitter\")\n\t}\n\tif len(b) == 0 {\n\t\tb = []byte{'\\n'}\n\t}\n\tyaml_parser_set_input_string(&p.parser, b)\n\treturn &p\n}\n\nfunc newParserFromReader(r io.Reader) *parser {\n\tp := parser{}\n\tif !yaml_parser_initialize(&p.parser) {\n\t\tpanic(\"failed to initialize YAML emitter\")\n\t}\n\tyaml_parser_set_input_reader(&p.parser, r)\n\treturn &p\n}\n\nfunc (p *parser) init() {\n\tif p.doneInit {\n\t\treturn\n\t}\n\tp.expect(yaml_STREAM_START_EVENT)\n\tp.doneInit = true\n}\n\nfunc (p *parser) destroy() {\n\tif p.event.typ != yaml_NO_EVENT {\n\t\tyaml_event_delete(&p.event)\n\t}\n\tyaml_parser_delete(&p.parser)\n}\n\n// expect consumes an event from the event stream and\n// checks that it's of the expected type.\nfunc (p *parser) expect(e yaml_event_type_t) {\n\tif p.event.typ == yaml_NO_EVENT {\n\t\tif !yaml_parser_parse(&p.parser, &p.event) {\n\t\t\tp.fail()\n\t\t}\n\t}\n\tif p.event.typ == yaml_STREAM_END_EVENT {\n\t\tfailf(\"attempted to go past the end of stream; corrupted value?\")\n\t}\n\tif p.event.typ != e {\n\t\tp.parser.problem = fmt.Sprintf(\"expected %s event but got %s\", e, p.event.typ)\n\t\tp.fail()\n\t}\n\tyaml_event_delete(&p.event)\n\tp.event.typ = yaml_NO_EVENT\n}\n\n// peek peeks at the next event in the event stream,\n// puts the results into p.event and returns the event type.\nfunc (p *parser) peek() yaml_event_type_t {\n\tif p.event.typ != yaml_NO_EVENT {\n\t\treturn p.event.typ\n\t}\n\tif !yaml_parser_parse(&p.parser, &p.event) {\n\t\tp.fail()\n\t}\n\treturn p.event.typ\n}\n\nfunc (p *parser) fail() {\n\tvar where string\n\tvar line int\n\tif p.parser.problem_mark.line != 0 {\n\t\tline = p.parser.problem_mark.line\n\t\t// Scanner errors don't iterate line before returning error\n\t\tif p.parser.error == yaml_SCANNER_ERROR {\n\t\t\tline++\n\t\t}\n\t} else if p.parser.context_mark.line != 0 {\n\t\tline = p.parser.context_mark.line\n\t}\n\tif line != 0 {\n\t\twhere = \"line \" + strconv.Itoa(line) + \": \"\n\t}\n\tvar msg string\n\tif len(p.parser.problem) > 0 {\n\t\tmsg = p.parser.problem\n\t} else {\n\t\tmsg = \"unknown problem parsing YAML content\"\n\t}\n\tfailf(\"%s%s\", where, msg)\n}\n\nfunc (p *parser) anchor(n *node, anchor []byte) {\n\tif anchor != nil {\n\t\tp.doc.anchors[string(anchor)] = n\n\t}\n}\n\nfunc (p *parser) parse() *node {\n\tp.init()\n\tswitch p.peek() {\n\tcase yaml_SCALAR_EVENT:\n\t\treturn p.scalar()\n\tcase yaml_ALIAS_EVENT:\n\t\treturn p.alias()\n\tcase yaml_MAPPING_START_EVENT:\n\t\treturn p.mapping()\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\treturn p.sequence()\n\tcase yaml_DOCUMENT_START_EVENT:\n\t\treturn p.document()\n\tcase yaml_STREAM_END_EVENT:\n\t\t// Happens when attempting to decode an empty buffer.\n\t\treturn nil\n\tdefault:\n\t\tpanic(\"attempted to parse unknown event: \" + p.event.typ.String())\n\t}\n}\n\nfunc (p *parser) node(kind int) *node {\n\treturn &node{\n\t\tkind:   kind,\n\t\tline:   p.event.start_mark.line,\n\t\tcolumn: p.event.start_mark.column,\n\t}\n}\n\nfunc (p *parser) document() *node {\n\tn := p.node(documentNode)\n\tn.anchors = make(map[string]*node)\n\tp.doc = n\n\tp.expect(yaml_DOCUMENT_START_EVENT)\n\tn.children = append(n.children, p.parse())\n\tp.expect(yaml_DOCUMENT_END_EVENT)\n\treturn n\n}\n\nfunc (p *parser) alias() *node {\n\tn := p.node(aliasNode)\n\tn.value = string(p.event.anchor)\n\tn.alias = p.doc.anchors[n.value]\n\tif n.alias == nil {\n\t\tfailf(\"unknown anchor '%s' referenced\", n.value)\n\t}\n\tp.expect(yaml_ALIAS_EVENT)\n\treturn n\n}\n\nfunc (p *parser) scalar() *node {\n\tn := p.node(scalarNode)\n\tn.value = string(p.event.value)\n\tn.tag = string(p.event.tag)\n\tn.implicit = p.event.implicit\n\tp.anchor(n, p.event.anchor)\n\tp.expect(yaml_SCALAR_EVENT)\n\treturn n\n}\n\nfunc (p *parser) sequence() *node {\n\tn := p.node(sequenceNode)\n\tp.anchor(n, p.event.anchor)\n\tp.expect(yaml_SEQUENCE_START_EVENT)\n\tfor p.peek() != yaml_SEQUENCE_END_EVENT {\n\t\tn.children = append(n.children, p.parse())\n\t}\n\tp.expect(yaml_SEQUENCE_END_EVENT)\n\treturn n\n}\n\nfunc (p *parser) mapping() *node {\n\tn := p.node(mappingNode)\n\tp.anchor(n, p.event.anchor)\n\tp.expect(yaml_MAPPING_START_EVENT)\n\tfor p.peek() != yaml_MAPPING_END_EVENT {\n\t\tn.children = append(n.children, p.parse(), p.parse())\n\t}\n\tp.expect(yaml_MAPPING_END_EVENT)\n\treturn n\n}\n\n// ----------------------------------------------------------------------------\n// Decoder, unmarshals a node into a provided value.\n\ntype decoder struct {\n\tdoc     *node\n\taliases map[*node]bool\n\tmapType reflect.Type\n\tterrors []string\n\tstrict  bool\n\n\tdecodeCount int\n\taliasCount  int\n\taliasDepth  int\n}\n\nvar (\n\tmapItemType    = reflect.TypeOf(MapItem{})\n\tdurationType   = reflect.TypeOf(time.Duration(0))\n\tdefaultMapType = reflect.TypeOf(map[interface{}]interface{}{})\n\tifaceType      = defaultMapType.Elem()\n\ttimeType       = reflect.TypeOf(time.Time{})\n\tptrTimeType    = reflect.TypeOf(&time.Time{})\n)\n\nfunc newDecoder(strict bool) *decoder {\n\td := &decoder{mapType: defaultMapType, strict: strict}\n\td.aliases = make(map[*node]bool)\n\treturn d\n}\n\nfunc (d *decoder) terror(n *node, tag string, out reflect.Value) {\n\tif n.tag != \"\" {\n\t\ttag = n.tag\n\t}\n\tvalue := n.value\n\tif tag != yaml_SEQ_TAG && tag != yaml_MAP_TAG {\n\t\tif len(value) > 10 {\n\t\t\tvalue = \" `\" + value[:7] + \"...`\"\n\t\t} else {\n\t\t\tvalue = \" `\" + value + \"`\"\n\t\t}\n\t}\n\td.terrors = append(d.terrors, fmt.Sprintf(\"line %d: cannot unmarshal %s%s into %s\", n.line+1, shortTag(tag), value, out.Type()))\n}\n\nfunc (d *decoder) callUnmarshaler(n *node, u Unmarshaler) (good bool) {\n\tterrlen := len(d.terrors)\n\terr := u.UnmarshalYAML(func(v interface{}) (err error) {\n\t\tdefer handleErr(&err)\n\t\td.unmarshal(n, reflect.ValueOf(v))\n\t\tif len(d.terrors) > terrlen {\n\t\t\tissues := d.terrors[terrlen:]\n\t\t\td.terrors = d.terrors[:terrlen]\n\t\t\treturn &TypeError{issues}\n\t\t}\n\t\treturn nil\n\t})\n\tif e, ok := err.(*TypeError); ok {\n\t\td.terrors = append(d.terrors, e.Errors...)\n\t\treturn false\n\t}\n\tif err != nil {\n\t\tfail(err)\n\t}\n\treturn true\n}\n\n// d.prepare initializes and dereferences pointers and calls UnmarshalYAML\n// if a value is found to implement it.\n// It returns the initialized and dereferenced out value, whether\n// unmarshalling was already done by UnmarshalYAML, and if so whether\n// its types unmarshalled appropriately.\n//\n// If n holds a null value, prepare returns before doing anything.\nfunc (d *decoder) prepare(n *node, out reflect.Value) (newout reflect.Value, unmarshaled, good bool) {\n\tif n.tag == yaml_NULL_TAG || n.kind == scalarNode && n.tag == \"\" && (n.value == \"null\" || n.value == \"~\" || n.value == \"\" && n.implicit) {\n\t\treturn out, false, false\n\t}\n\tagain := true\n\tfor again {\n\t\tagain = false\n\t\tif out.Kind() == reflect.Ptr {\n\t\t\tif out.IsNil() {\n\t\t\t\tout.Set(reflect.New(out.Type().Elem()))\n\t\t\t}\n\t\t\tout = out.Elem()\n\t\t\tagain = true\n\t\t}\n\t\tif out.CanAddr() {\n\t\t\tif u, ok := out.Addr().Interface().(Unmarshaler); ok {\n\t\t\t\tgood = d.callUnmarshaler(n, u)\n\t\t\t\treturn out, true, good\n\t\t\t}\n\t\t}\n\t}\n\treturn out, false, false\n}\n\nconst (\n\t// 400,000 decode operations is ~500kb of dense object declarations, or\n\t// ~5kb of dense object declarations with 10000% alias expansion\n\talias_ratio_range_low = 400000\n\n\t// 4,000,000 decode operations is ~5MB of dense object declarations, or\n\t// ~4.5MB of dense object declarations with 10% alias expansion\n\talias_ratio_range_high = 4000000\n\n\t// alias_ratio_range is the range over which we scale allowed alias ratios\n\talias_ratio_range = float64(alias_ratio_range_high - alias_ratio_range_low)\n)\n\nfunc allowedAliasRatio(decodeCount int) float64 {\n\tswitch {\n\tcase decodeCount <= alias_ratio_range_low:\n\t\t// allow 99% to come from alias expansion for small-to-medium documents\n\t\treturn 0.99\n\tcase decodeCount >= alias_ratio_range_high:\n\t\t// allow 10% to come from alias expansion for very large documents\n\t\treturn 0.10\n\tdefault:\n\t\t// scale smoothly from 99% down to 10% over the range.\n\t\t// this maps to 396,000 - 400,000 allowed alias-driven decodes over the range.\n\t\t// 400,000 decode operations is ~100MB of allocations in worst-case scenarios (single-item maps).\n\t\treturn 0.99 - 0.89*(float64(decodeCount-alias_ratio_range_low)/alias_ratio_range)\n\t}\n}\n\nfunc (d *decoder) unmarshal(n *node, out reflect.Value) (good bool) {\n\td.decodeCount++\n\tif d.aliasDepth > 0 {\n\t\td.aliasCount++\n\t}\n\tif d.aliasCount > 100 && d.decodeCount > 1000 && float64(d.aliasCount)/float64(d.decodeCount) > allowedAliasRatio(d.decodeCount) {\n\t\tfailf(\"document contains excessive aliasing\")\n\t}\n\tswitch n.kind {\n\tcase documentNode:\n\t\treturn d.document(n, out)\n\tcase aliasNode:\n\t\treturn d.alias(n, out)\n\t}\n\tout, unmarshaled, good := d.prepare(n, out)\n\tif unmarshaled {\n\t\treturn good\n\t}\n\tswitch n.kind {\n\tcase scalarNode:\n\t\tgood = d.scalar(n, out)\n\tcase mappingNode:\n\t\tgood = d.mapping(n, out)\n\tcase sequenceNode:\n\t\tgood = d.sequence(n, out)\n\tdefault:\n\t\tpanic(\"internal error: unknown node kind: \" + strconv.Itoa(n.kind))\n\t}\n\treturn good\n}\n\nfunc (d *decoder) document(n *node, out reflect.Value) (good bool) {\n\tif len(n.children) == 1 {\n\t\td.doc = n\n\t\td.unmarshal(n.children[0], out)\n\t\treturn true\n\t}\n\treturn false\n}\n\nfunc (d *decoder) alias(n *node, out reflect.Value) (good bool) {\n\tif d.aliases[n] {\n\t\t// TODO this could actually be allowed in some circumstances.\n\t\tfailf(\"anchor '%s' value contains itself\", n.value)\n\t}\n\td.aliases[n] = true\n\td.aliasDepth++\n\tgood = d.unmarshal(n.alias, out)\n\td.aliasDepth--\n\tdelete(d.aliases, n)\n\treturn good\n}\n\nvar zeroValue reflect.Value\n\nfunc resetMap(out reflect.Value) {\n\tfor _, k := range out.MapKeys() {\n\t\tout.SetMapIndex(k, zeroValue)\n\t}\n}\n\nfunc (d *decoder) scalar(n *node, out reflect.Value) bool {\n\tvar tag string\n\tvar resolved interface{}\n\tif n.tag == \"\" && !n.implicit {\n\t\ttag = yaml_STR_TAG\n\t\tresolved = n.value\n\t} else {\n\t\ttag, resolved = resolve(n.tag, n.value)\n\t\tif tag == yaml_BINARY_TAG {\n\t\t\tdata, err := base64.StdEncoding.DecodeString(resolved.(string))\n\t\t\tif err != nil {\n\t\t\t\tfailf(\"!!binary value contains invalid base64 data\")\n\t\t\t}\n\t\t\tresolved = string(data)\n\t\t}\n\t}\n\tif resolved == nil {\n\t\tif out.Kind() == reflect.Map && !out.CanAddr() {\n\t\t\tresetMap(out)\n\t\t} else {\n\t\t\tout.Set(reflect.Zero(out.Type()))\n\t\t}\n\t\treturn true\n\t}\n\tif resolvedv := reflect.ValueOf(resolved); out.Type() == resolvedv.Type() {\n\t\t// We've resolved to exactly the type we want, so use that.\n\t\tout.Set(resolvedv)\n\t\treturn true\n\t}\n\t// Perhaps we can use the value as a TextUnmarshaler to\n\t// set its value.\n\tif out.CanAddr() {\n\t\tu, ok := out.Addr().Interface().(encoding.TextUnmarshaler)\n\t\tif ok {\n\t\t\tvar text []byte\n\t\t\tif tag == yaml_BINARY_TAG {\n\t\t\t\ttext = []byte(resolved.(string))\n\t\t\t} else {\n\t\t\t\t// We let any value be unmarshaled into TextUnmarshaler.\n\t\t\t\t// That might be more lax than we'd like, but the\n\t\t\t\t// TextUnmarshaler itself should bowl out any dubious values.\n\t\t\t\ttext = []byte(n.value)\n\t\t\t}\n\t\t\terr := u.UnmarshalText(text)\n\t\t\tif err != nil {\n\t\t\t\tfail(err)\n\t\t\t}\n\t\t\treturn true\n\t\t}\n\t}\n\tswitch out.Kind() {\n\tcase reflect.String:\n\t\tif tag == yaml_BINARY_TAG {\n\t\t\tout.SetString(resolved.(string))\n\t\t\treturn true\n\t\t}\n\t\tif resolved != nil {\n\t\t\tout.SetString(n.value)\n\t\t\treturn true\n\t\t}\n\tcase reflect.Interface:\n\t\tif resolved == nil {\n\t\t\tout.Set(reflect.Zero(out.Type()))\n\t\t} else if tag == yaml_TIMESTAMP_TAG {\n\t\t\t// It looks like a timestamp but for backward compatibility\n\t\t\t// reasons we set it as a string, so that code that unmarshals\n\t\t\t// timestamp-like values into interface{} will continue to\n\t\t\t// see a string and not a time.Time.\n\t\t\t// TODO(v3) Drop this.\n\t\t\tout.Set(reflect.ValueOf(n.value))\n\t\t} else {\n\t\t\tout.Set(reflect.ValueOf(resolved))\n\t\t}\n\t\treturn true\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\tswitch resolved := resolved.(type) {\n\t\tcase int:\n\t\t\tif !out.OverflowInt(int64(resolved)) {\n\t\t\t\tout.SetInt(int64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase int64:\n\t\t\tif !out.OverflowInt(resolved) {\n\t\t\t\tout.SetInt(resolved)\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase uint64:\n\t\t\tif resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) {\n\t\t\t\tout.SetInt(int64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase float64:\n\t\t\tif resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) {\n\t\t\t\tout.SetInt(int64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase string:\n\t\t\tif out.Type() == durationType {\n\t\t\t\td, err := time.ParseDuration(resolved)\n\t\t\t\tif err == nil {\n\t\t\t\t\tout.SetInt(int64(d))\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\tswitch resolved := resolved.(type) {\n\t\tcase int:\n\t\t\tif resolved >= 0 && !out.OverflowUint(uint64(resolved)) {\n\t\t\t\tout.SetUint(uint64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase int64:\n\t\t\tif resolved >= 0 && !out.OverflowUint(uint64(resolved)) {\n\t\t\t\tout.SetUint(uint64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase uint64:\n\t\t\tif !out.OverflowUint(uint64(resolved)) {\n\t\t\t\tout.SetUint(uint64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\tcase float64:\n\t\t\tif resolved <= math.MaxUint64 && !out.OverflowUint(uint64(resolved)) {\n\t\t\t\tout.SetUint(uint64(resolved))\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\tcase reflect.Bool:\n\t\tswitch resolved := resolved.(type) {\n\t\tcase bool:\n\t\t\tout.SetBool(resolved)\n\t\t\treturn true\n\t\t}\n\tcase reflect.Float32, reflect.Float64:\n\t\tswitch resolved := resolved.(type) {\n\t\tcase int:\n\t\t\tout.SetFloat(float64(resolved))\n\t\t\treturn true\n\t\tcase int64:\n\t\t\tout.SetFloat(float64(resolved))\n\t\t\treturn true\n\t\tcase uint64:\n\t\t\tout.SetFloat(float64(resolved))\n\t\t\treturn true\n\t\tcase float64:\n\t\t\tout.SetFloat(resolved)\n\t\t\treturn true\n\t\t}\n\tcase reflect.Struct:\n\t\tif resolvedv := reflect.ValueOf(resolved); out.Type() == resolvedv.Type() {\n\t\t\tout.Set(resolvedv)\n\t\t\treturn true\n\t\t}\n\tcase reflect.Ptr:\n\t\tif out.Type().Elem() == reflect.TypeOf(resolved) {\n\t\t\t// TODO DOes this make sense? When is out a Ptr except when decoding a nil value?\n\t\t\telem := reflect.New(out.Type().Elem())\n\t\t\telem.Elem().Set(reflect.ValueOf(resolved))\n\t\t\tout.Set(elem)\n\t\t\treturn true\n\t\t}\n\t}\n\td.terror(n, tag, out)\n\treturn false\n}\n\nfunc settableValueOf(i interface{}) reflect.Value {\n\tv := reflect.ValueOf(i)\n\tsv := reflect.New(v.Type()).Elem()\n\tsv.Set(v)\n\treturn sv\n}\n\nfunc (d *decoder) sequence(n *node, out reflect.Value) (good bool) {\n\tl := len(n.children)\n\n\tvar iface reflect.Value\n\tswitch out.Kind() {\n\tcase reflect.Slice:\n\t\tout.Set(reflect.MakeSlice(out.Type(), l, l))\n\tcase reflect.Array:\n\t\tif l != out.Len() {\n\t\t\tfailf(\"invalid array: want %d elements but got %d\", out.Len(), l)\n\t\t}\n\tcase reflect.Interface:\n\t\t// No type hints. Will have to use a generic sequence.\n\t\tiface = out\n\t\tout = settableValueOf(make([]interface{}, l))\n\tdefault:\n\t\td.terror(n, yaml_SEQ_TAG, out)\n\t\treturn false\n\t}\n\tet := out.Type().Elem()\n\n\tj := 0\n\tfor i := 0; i < l; i++ {\n\t\te := reflect.New(et).Elem()\n\t\tif ok := d.unmarshal(n.children[i], e); ok {\n\t\t\tout.Index(j).Set(e)\n\t\t\tj++\n\t\t}\n\t}\n\tif out.Kind() != reflect.Array {\n\t\tout.Set(out.Slice(0, j))\n\t}\n\tif iface.IsValid() {\n\t\tiface.Set(out)\n\t}\n\treturn true\n}\n\nfunc (d *decoder) mapping(n *node, out reflect.Value) (good bool) {\n\tswitch out.Kind() {\n\tcase reflect.Struct:\n\t\treturn d.mappingStruct(n, out)\n\tcase reflect.Slice:\n\t\treturn d.mappingSlice(n, out)\n\tcase reflect.Map:\n\t\t// okay\n\tcase reflect.Interface:\n\t\tif d.mapType.Kind() == reflect.Map {\n\t\t\tiface := out\n\t\t\tout = reflect.MakeMap(d.mapType)\n\t\t\tiface.Set(out)\n\t\t} else {\n\t\t\tslicev := reflect.New(d.mapType).Elem()\n\t\t\tif !d.mappingSlice(n, slicev) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tout.Set(slicev)\n\t\t\treturn true\n\t\t}\n\tdefault:\n\t\td.terror(n, yaml_MAP_TAG, out)\n\t\treturn false\n\t}\n\toutt := out.Type()\n\tkt := outt.Key()\n\tet := outt.Elem()\n\n\tmapType := d.mapType\n\tif outt.Key() == ifaceType && outt.Elem() == ifaceType {\n\t\td.mapType = outt\n\t}\n\n\tif out.IsNil() {\n\t\tout.Set(reflect.MakeMap(outt))\n\t}\n\tl := len(n.children)\n\tfor i := 0; i < l; i += 2 {\n\t\tif isMerge(n.children[i]) {\n\t\t\td.merge(n.children[i+1], out)\n\t\t\tcontinue\n\t\t}\n\t\tk := reflect.New(kt).Elem()\n\t\tif d.unmarshal(n.children[i], k) {\n\t\t\tkkind := k.Kind()\n\t\t\tif kkind == reflect.Interface {\n\t\t\t\tkkind = k.Elem().Kind()\n\t\t\t}\n\t\t\tif kkind == reflect.Map || kkind == reflect.Slice {\n\t\t\t\tfailf(\"invalid map key: %#v\", k.Interface())\n\t\t\t}\n\t\t\te := reflect.New(et).Elem()\n\t\t\tif d.unmarshal(n.children[i+1], e) {\n\t\t\t\td.setMapIndex(n.children[i+1], out, k, e)\n\t\t\t}\n\t\t}\n\t}\n\td.mapType = mapType\n\treturn true\n}\n\nfunc (d *decoder) setMapIndex(n *node, out, k, v reflect.Value) {\n\tif d.strict && out.MapIndex(k) != zeroValue {\n\t\td.terrors = append(d.terrors, fmt.Sprintf(\"line %d: key %#v already set in map\", n.line+1, k.Interface()))\n\t\treturn\n\t}\n\tout.SetMapIndex(k, v)\n}\n\nfunc (d *decoder) mappingSlice(n *node, out reflect.Value) (good bool) {\n\toutt := out.Type()\n\tif outt.Elem() != mapItemType {\n\t\td.terror(n, yaml_MAP_TAG, out)\n\t\treturn false\n\t}\n\n\tmapType := d.mapType\n\td.mapType = outt\n\n\tvar slice []MapItem\n\tvar l = len(n.children)\n\tfor i := 0; i < l; i += 2 {\n\t\tif isMerge(n.children[i]) {\n\t\t\td.merge(n.children[i+1], out)\n\t\t\tcontinue\n\t\t}\n\t\titem := MapItem{}\n\t\tk := reflect.ValueOf(&item.Key).Elem()\n\t\tif d.unmarshal(n.children[i], k) {\n\t\t\tv := reflect.ValueOf(&item.Value).Elem()\n\t\t\tif d.unmarshal(n.children[i+1], v) {\n\t\t\t\tslice = append(slice, item)\n\t\t\t}\n\t\t}\n\t}\n\tout.Set(reflect.ValueOf(slice))\n\td.mapType = mapType\n\treturn true\n}\n\nfunc (d *decoder) mappingStruct(n *node, out reflect.Value) (good bool) {\n\tsinfo, err := getStructInfo(out.Type())\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tname := settableValueOf(\"\")\n\tl := len(n.children)\n\n\tvar inlineMap reflect.Value\n\tvar elemType reflect.Type\n\tif sinfo.InlineMap != -1 {\n\t\tinlineMap = out.Field(sinfo.InlineMap)\n\t\tinlineMap.Set(reflect.New(inlineMap.Type()).Elem())\n\t\telemType = inlineMap.Type().Elem()\n\t}\n\n\tvar doneFields []bool\n\tif d.strict {\n\t\tdoneFields = make([]bool, len(sinfo.FieldsList))\n\t}\n\tfor i := 0; i < l; i += 2 {\n\t\tni := n.children[i]\n\t\tif isMerge(ni) {\n\t\t\td.merge(n.children[i+1], out)\n\t\t\tcontinue\n\t\t}\n\t\tif !d.unmarshal(ni, name) {\n\t\t\tcontinue\n\t\t}\n\t\tif info, ok := sinfo.FieldsMap[name.String()]; ok {\n\t\t\tif d.strict {\n\t\t\t\tif doneFields[info.Id] {\n\t\t\t\t\td.terrors = append(d.terrors, fmt.Sprintf(\"line %d: field %s already set in type %s\", ni.line+1, name.String(), out.Type()))\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tdoneFields[info.Id] = true\n\t\t\t}\n\t\t\tvar field reflect.Value\n\t\t\tif info.Inline == nil {\n\t\t\t\tfield = out.Field(info.Num)\n\t\t\t} else {\n\t\t\t\tfield = out.FieldByIndex(info.Inline)\n\t\t\t}\n\t\t\td.unmarshal(n.children[i+1], field)\n\t\t} else if sinfo.InlineMap != -1 {\n\t\t\tif inlineMap.IsNil() {\n\t\t\t\tinlineMap.Set(reflect.MakeMap(inlineMap.Type()))\n\t\t\t}\n\t\t\tvalue := reflect.New(elemType).Elem()\n\t\t\td.unmarshal(n.children[i+1], value)\n\t\t\td.setMapIndex(n.children[i+1], inlineMap, name, value)\n\t\t} else if d.strict {\n\t\t\td.terrors = append(d.terrors, fmt.Sprintf(\"line %d: field %s not found in type %s\", ni.line+1, name.String(), out.Type()))\n\t\t}\n\t}\n\treturn true\n}\n\nfunc failWantMap() {\n\tfailf(\"map merge requires map or sequence of maps as the value\")\n}\n\nfunc (d *decoder) merge(n *node, out reflect.Value) {\n\tswitch n.kind {\n\tcase mappingNode:\n\t\td.unmarshal(n, out)\n\tcase aliasNode:\n\t\tif n.alias != nil && n.alias.kind != mappingNode {\n\t\t\tfailWantMap()\n\t\t}\n\t\td.unmarshal(n, out)\n\tcase sequenceNode:\n\t\t// Step backwards as earlier nodes take precedence.\n\t\tfor i := len(n.children) - 1; i >= 0; i-- {\n\t\t\tni := n.children[i]\n\t\t\tif ni.kind == aliasNode {\n\t\t\t\tif ni.alias != nil && ni.alias.kind != mappingNode {\n\t\t\t\t\tfailWantMap()\n\t\t\t\t}\n\t\t\t} else if ni.kind != mappingNode {\n\t\t\t\tfailWantMap()\n\t\t\t}\n\t\t\td.unmarshal(ni, out)\n\t\t}\n\tdefault:\n\t\tfailWantMap()\n\t}\n}\n\nfunc isMerge(n *node) bool {\n\treturn n.kind == scalarNode && n.value == \"<<\" && (n.implicit == true || n.tag == yaml_MERGE_TAG)\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/yaml/goyaml.v2/emitterc.go",
    "content": "package yaml\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n)\n\n// Flush the buffer if needed.\nfunc flush(emitter *yaml_emitter_t) bool {\n\tif emitter.buffer_pos+5 >= len(emitter.buffer) {\n\t\treturn yaml_emitter_flush(emitter)\n\t}\n\treturn true\n}\n\n// Put a character to the output buffer.\nfunc put(emitter *yaml_emitter_t, value byte) bool {\n\tif emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) {\n\t\treturn false\n\t}\n\temitter.buffer[emitter.buffer_pos] = value\n\temitter.buffer_pos++\n\temitter.column++\n\treturn true\n}\n\n// Put a line break to the output buffer.\nfunc put_break(emitter *yaml_emitter_t) bool {\n\tif emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) {\n\t\treturn false\n\t}\n\tswitch emitter.line_break {\n\tcase yaml_CR_BREAK:\n\t\temitter.buffer[emitter.buffer_pos] = '\\r'\n\t\temitter.buffer_pos += 1\n\tcase yaml_LN_BREAK:\n\t\temitter.buffer[emitter.buffer_pos] = '\\n'\n\t\temitter.buffer_pos += 1\n\tcase yaml_CRLN_BREAK:\n\t\temitter.buffer[emitter.buffer_pos+0] = '\\r'\n\t\temitter.buffer[emitter.buffer_pos+1] = '\\n'\n\t\temitter.buffer_pos += 2\n\tdefault:\n\t\tpanic(\"unknown line break setting\")\n\t}\n\temitter.column = 0\n\temitter.line++\n\treturn true\n}\n\n// Copy a character from a string into buffer.\nfunc write(emitter *yaml_emitter_t, s []byte, i *int) bool {\n\tif emitter.buffer_pos+5 >= len(emitter.buffer) && !yaml_emitter_flush(emitter) {\n\t\treturn false\n\t}\n\tp := emitter.buffer_pos\n\tw := width(s[*i])\n\tswitch w {\n\tcase 4:\n\t\temitter.buffer[p+3] = s[*i+3]\n\t\tfallthrough\n\tcase 3:\n\t\temitter.buffer[p+2] = s[*i+2]\n\t\tfallthrough\n\tcase 2:\n\t\temitter.buffer[p+1] = s[*i+1]\n\t\tfallthrough\n\tcase 1:\n\t\temitter.buffer[p+0] = s[*i+0]\n\tdefault:\n\t\tpanic(\"unknown character width\")\n\t}\n\temitter.column++\n\temitter.buffer_pos += w\n\t*i += w\n\treturn true\n}\n\n// Write a whole string into buffer.\nfunc write_all(emitter *yaml_emitter_t, s []byte) bool {\n\tfor i := 0; i < len(s); {\n\t\tif !write(emitter, s, &i) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Copy a line break character from a string into buffer.\nfunc write_break(emitter *yaml_emitter_t, s []byte, i *int) bool {\n\tif s[*i] == '\\n' {\n\t\tif !put_break(emitter) {\n\t\t\treturn false\n\t\t}\n\t\t*i++\n\t} else {\n\t\tif !write(emitter, s, i) {\n\t\t\treturn false\n\t\t}\n\t\temitter.column = 0\n\t\temitter.line++\n\t}\n\treturn true\n}\n\n// Set an emitter error and return false.\nfunc yaml_emitter_set_emitter_error(emitter *yaml_emitter_t, problem string) bool {\n\temitter.error = yaml_EMITTER_ERROR\n\temitter.problem = problem\n\treturn false\n}\n\n// Emit an event.\nfunc yaml_emitter_emit(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\temitter.events = append(emitter.events, *event)\n\tfor !yaml_emitter_need_more_events(emitter) {\n\t\tevent := &emitter.events[emitter.events_head]\n\t\tif !yaml_emitter_analyze_event(emitter, event) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_state_machine(emitter, event) {\n\t\t\treturn false\n\t\t}\n\t\tyaml_event_delete(event)\n\t\temitter.events_head++\n\t}\n\treturn true\n}\n\n// Check if we need to accumulate more events before emitting.\n//\n// We accumulate extra\n//  - 1 event for DOCUMENT-START\n//  - 2 events for SEQUENCE-START\n//  - 3 events for MAPPING-START\n//\nfunc yaml_emitter_need_more_events(emitter *yaml_emitter_t) bool {\n\tif emitter.events_head == len(emitter.events) {\n\t\treturn true\n\t}\n\tvar accumulate int\n\tswitch emitter.events[emitter.events_head].typ {\n\tcase yaml_DOCUMENT_START_EVENT:\n\t\taccumulate = 1\n\t\tbreak\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\taccumulate = 2\n\t\tbreak\n\tcase yaml_MAPPING_START_EVENT:\n\t\taccumulate = 3\n\t\tbreak\n\tdefault:\n\t\treturn false\n\t}\n\tif len(emitter.events)-emitter.events_head > accumulate {\n\t\treturn false\n\t}\n\tvar level int\n\tfor i := emitter.events_head; i < len(emitter.events); i++ {\n\t\tswitch emitter.events[i].typ {\n\t\tcase yaml_STREAM_START_EVENT, yaml_DOCUMENT_START_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT:\n\t\t\tlevel++\n\t\tcase yaml_STREAM_END_EVENT, yaml_DOCUMENT_END_EVENT, yaml_SEQUENCE_END_EVENT, yaml_MAPPING_END_EVENT:\n\t\t\tlevel--\n\t\t}\n\t\tif level == 0 {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Append a directive to the directives stack.\nfunc yaml_emitter_append_tag_directive(emitter *yaml_emitter_t, value *yaml_tag_directive_t, allow_duplicates bool) bool {\n\tfor i := 0; i < len(emitter.tag_directives); i++ {\n\t\tif bytes.Equal(value.handle, emitter.tag_directives[i].handle) {\n\t\t\tif allow_duplicates {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn yaml_emitter_set_emitter_error(emitter, \"duplicate %TAG directive\")\n\t\t}\n\t}\n\n\t// [Go] Do we actually need to copy this given garbage collection\n\t// and the lack of deallocating destructors?\n\ttag_copy := yaml_tag_directive_t{\n\t\thandle: make([]byte, len(value.handle)),\n\t\tprefix: make([]byte, len(value.prefix)),\n\t}\n\tcopy(tag_copy.handle, value.handle)\n\tcopy(tag_copy.prefix, value.prefix)\n\temitter.tag_directives = append(emitter.tag_directives, tag_copy)\n\treturn true\n}\n\n// Increase the indentation level.\nfunc yaml_emitter_increase_indent(emitter *yaml_emitter_t, flow, indentless bool) bool {\n\temitter.indents = append(emitter.indents, emitter.indent)\n\tif emitter.indent < 0 {\n\t\tif flow {\n\t\t\temitter.indent = emitter.best_indent\n\t\t} else {\n\t\t\temitter.indent = 0\n\t\t}\n\t} else if !indentless {\n\t\temitter.indent += emitter.best_indent\n\t}\n\treturn true\n}\n\n// State dispatcher.\nfunc yaml_emitter_state_machine(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tswitch emitter.state {\n\tdefault:\n\tcase yaml_EMIT_STREAM_START_STATE:\n\t\treturn yaml_emitter_emit_stream_start(emitter, event)\n\n\tcase yaml_EMIT_FIRST_DOCUMENT_START_STATE:\n\t\treturn yaml_emitter_emit_document_start(emitter, event, true)\n\n\tcase yaml_EMIT_DOCUMENT_START_STATE:\n\t\treturn yaml_emitter_emit_document_start(emitter, event, false)\n\n\tcase yaml_EMIT_DOCUMENT_CONTENT_STATE:\n\t\treturn yaml_emitter_emit_document_content(emitter, event)\n\n\tcase yaml_EMIT_DOCUMENT_END_STATE:\n\t\treturn yaml_emitter_emit_document_end(emitter, event)\n\n\tcase yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE:\n\t\treturn yaml_emitter_emit_flow_sequence_item(emitter, event, true)\n\n\tcase yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE:\n\t\treturn yaml_emitter_emit_flow_sequence_item(emitter, event, false)\n\n\tcase yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE:\n\t\treturn yaml_emitter_emit_flow_mapping_key(emitter, event, true)\n\n\tcase yaml_EMIT_FLOW_MAPPING_KEY_STATE:\n\t\treturn yaml_emitter_emit_flow_mapping_key(emitter, event, false)\n\n\tcase yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE:\n\t\treturn yaml_emitter_emit_flow_mapping_value(emitter, event, true)\n\n\tcase yaml_EMIT_FLOW_MAPPING_VALUE_STATE:\n\t\treturn yaml_emitter_emit_flow_mapping_value(emitter, event, false)\n\n\tcase yaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE:\n\t\treturn yaml_emitter_emit_block_sequence_item(emitter, event, true)\n\n\tcase yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE:\n\t\treturn yaml_emitter_emit_block_sequence_item(emitter, event, false)\n\n\tcase yaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE:\n\t\treturn yaml_emitter_emit_block_mapping_key(emitter, event, true)\n\n\tcase yaml_EMIT_BLOCK_MAPPING_KEY_STATE:\n\t\treturn yaml_emitter_emit_block_mapping_key(emitter, event, false)\n\n\tcase yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE:\n\t\treturn yaml_emitter_emit_block_mapping_value(emitter, event, true)\n\n\tcase yaml_EMIT_BLOCK_MAPPING_VALUE_STATE:\n\t\treturn yaml_emitter_emit_block_mapping_value(emitter, event, false)\n\n\tcase yaml_EMIT_END_STATE:\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"expected nothing after STREAM-END\")\n\t}\n\tpanic(\"invalid emitter state\")\n}\n\n// Expect STREAM-START.\nfunc yaml_emitter_emit_stream_start(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif event.typ != yaml_STREAM_START_EVENT {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"expected STREAM-START\")\n\t}\n\tif emitter.encoding == yaml_ANY_ENCODING {\n\t\temitter.encoding = event.encoding\n\t\tif emitter.encoding == yaml_ANY_ENCODING {\n\t\t\temitter.encoding = yaml_UTF8_ENCODING\n\t\t}\n\t}\n\tif emitter.best_indent < 2 || emitter.best_indent > 9 {\n\t\temitter.best_indent = 2\n\t}\n\tif emitter.best_width >= 0 && emitter.best_width <= emitter.best_indent*2 {\n\t\temitter.best_width = 80\n\t}\n\tif emitter.best_width < 0 {\n\t\temitter.best_width = 1<<31 - 1\n\t}\n\tif emitter.line_break == yaml_ANY_BREAK {\n\t\temitter.line_break = yaml_LN_BREAK\n\t}\n\n\temitter.indent = -1\n\temitter.line = 0\n\temitter.column = 0\n\temitter.whitespace = true\n\temitter.indention = true\n\n\tif emitter.encoding != yaml_UTF8_ENCODING {\n\t\tif !yaml_emitter_write_bom(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\temitter.state = yaml_EMIT_FIRST_DOCUMENT_START_STATE\n\treturn true\n}\n\n// Expect DOCUMENT-START or STREAM-END.\nfunc yaml_emitter_emit_document_start(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool {\n\n\tif event.typ == yaml_DOCUMENT_START_EVENT {\n\n\t\tif event.version_directive != nil {\n\t\t\tif !yaml_emitter_analyze_version_directive(emitter, event.version_directive) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tfor i := 0; i < len(event.tag_directives); i++ {\n\t\t\ttag_directive := &event.tag_directives[i]\n\t\t\tif !yaml_emitter_analyze_tag_directive(emitter, tag_directive) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_append_tag_directive(emitter, tag_directive, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tfor i := 0; i < len(default_tag_directives); i++ {\n\t\t\ttag_directive := &default_tag_directives[i]\n\t\t\tif !yaml_emitter_append_tag_directive(emitter, tag_directive, true) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\timplicit := event.implicit\n\t\tif !first || emitter.canonical {\n\t\t\timplicit = false\n\t\t}\n\n\t\tif emitter.open_ended && (event.version_directive != nil || len(event.tag_directives) > 0) {\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"...\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tif event.version_directive != nil {\n\t\t\timplicit = false\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"%YAML\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"1.1\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tif len(event.tag_directives) > 0 {\n\t\t\timplicit = false\n\t\t\tfor i := 0; i < len(event.tag_directives); i++ {\n\t\t\t\ttag_directive := &event.tag_directives[i]\n\t\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"%TAG\"), true, false, false) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif !yaml_emitter_write_tag_handle(emitter, tag_directive.handle) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif !yaml_emitter_write_tag_content(emitter, tag_directive.prefix, true) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif yaml_emitter_check_empty_document(emitter) {\n\t\t\timplicit = false\n\t\t}\n\t\tif !implicit {\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"---\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif emitter.canonical {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\temitter.state = yaml_EMIT_DOCUMENT_CONTENT_STATE\n\t\treturn true\n\t}\n\n\tif event.typ == yaml_STREAM_END_EVENT {\n\t\tif emitter.open_ended {\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"...\"), true, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_flush(emitter) {\n\t\t\treturn false\n\t\t}\n\t\temitter.state = yaml_EMIT_END_STATE\n\t\treturn true\n\t}\n\n\treturn yaml_emitter_set_emitter_error(emitter, \"expected DOCUMENT-START or STREAM-END\")\n}\n\n// Expect the root node.\nfunc yaml_emitter_emit_document_content(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\temitter.states = append(emitter.states, yaml_EMIT_DOCUMENT_END_STATE)\n\treturn yaml_emitter_emit_node(emitter, event, true, false, false, false)\n}\n\n// Expect DOCUMENT-END.\nfunc yaml_emitter_emit_document_end(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif event.typ != yaml_DOCUMENT_END_EVENT {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"expected DOCUMENT-END\")\n\t}\n\tif !yaml_emitter_write_indent(emitter) {\n\t\treturn false\n\t}\n\tif !event.implicit {\n\t\t// [Go] Allocate the slice elsewhere.\n\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"...\"), true, false, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif !yaml_emitter_flush(emitter) {\n\t\treturn false\n\t}\n\temitter.state = yaml_EMIT_DOCUMENT_START_STATE\n\temitter.tag_directives = emitter.tag_directives[:0]\n\treturn true\n}\n\n// Expect a flow item node.\nfunc yaml_emitter_emit_flow_sequence_item(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{'['}, true, true, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_increase_indent(emitter, true, false) {\n\t\t\treturn false\n\t\t}\n\t\temitter.flow_level++\n\t}\n\n\tif event.typ == yaml_SEQUENCE_END_EVENT {\n\t\temitter.flow_level--\n\t\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\t\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\t\tif emitter.canonical && !first {\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{']'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t\temitter.state = emitter.states[len(emitter.states)-1]\n\t\temitter.states = emitter.states[:len(emitter.states)-1]\n\n\t\treturn true\n\t}\n\n\tif !first {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif emitter.canonical || emitter.column > emitter.best_width {\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE)\n\treturn yaml_emitter_emit_node(emitter, event, false, true, false, false)\n}\n\n// Expect a flow key node.\nfunc yaml_emitter_emit_flow_mapping_key(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{'{'}, true, true, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_increase_indent(emitter, true, false) {\n\t\t\treturn false\n\t\t}\n\t\temitter.flow_level++\n\t}\n\n\tif event.typ == yaml_MAPPING_END_EVENT {\n\t\temitter.flow_level--\n\t\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\t\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\t\tif emitter.canonical && !first {\n\t\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{'}'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t\temitter.state = emitter.states[len(emitter.states)-1]\n\t\temitter.states = emitter.states[:len(emitter.states)-1]\n\t\treturn true\n\t}\n\n\tif !first {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif emitter.canonical || emitter.column > emitter.best_width {\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif !emitter.canonical && yaml_emitter_check_simple_key(emitter) {\n\t\temitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE)\n\t\treturn yaml_emitter_emit_node(emitter, event, false, false, true, true)\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'?'}, true, false, false) {\n\t\treturn false\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_VALUE_STATE)\n\treturn yaml_emitter_emit_node(emitter, event, false, false, true, false)\n}\n\n// Expect a flow value node.\nfunc yaml_emitter_emit_flow_mapping_value(emitter *yaml_emitter_t, event *yaml_event_t, simple bool) bool {\n\tif simple {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{':'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t} else {\n\t\tif emitter.canonical || emitter.column > emitter.best_width {\n\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{':'}, true, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_KEY_STATE)\n\treturn yaml_emitter_emit_node(emitter, event, false, false, true, false)\n}\n\n// Expect a block item node.\nfunc yaml_emitter_emit_block_sequence_item(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\tif !yaml_emitter_increase_indent(emitter, false, emitter.mapping_context && !emitter.indention) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif event.typ == yaml_SEQUENCE_END_EVENT {\n\t\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\t\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\t\temitter.state = emitter.states[len(emitter.states)-1]\n\t\temitter.states = emitter.states[:len(emitter.states)-1]\n\t\treturn true\n\t}\n\tif !yaml_emitter_write_indent(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'-'}, true, false, true) {\n\t\treturn false\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE)\n\treturn yaml_emitter_emit_node(emitter, event, false, true, false, false)\n}\n\n// Expect a block key node.\nfunc yaml_emitter_emit_block_mapping_key(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\tif !yaml_emitter_increase_indent(emitter, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif event.typ == yaml_MAPPING_END_EVENT {\n\t\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\t\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\t\temitter.state = emitter.states[len(emitter.states)-1]\n\t\temitter.states = emitter.states[:len(emitter.states)-1]\n\t\treturn true\n\t}\n\tif !yaml_emitter_write_indent(emitter) {\n\t\treturn false\n\t}\n\tif yaml_emitter_check_simple_key(emitter) {\n\t\temitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE)\n\t\treturn yaml_emitter_emit_node(emitter, event, false, false, true, true)\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'?'}, true, false, true) {\n\t\treturn false\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_VALUE_STATE)\n\treturn yaml_emitter_emit_node(emitter, event, false, false, true, false)\n}\n\n// Expect a block value node.\nfunc yaml_emitter_emit_block_mapping_value(emitter *yaml_emitter_t, event *yaml_event_t, simple bool) bool {\n\tif simple {\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{':'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t} else {\n\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{':'}, true, false, true) {\n\t\t\treturn false\n\t\t}\n\t}\n\temitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_KEY_STATE)\n\treturn yaml_emitter_emit_node(emitter, event, false, false, true, false)\n}\n\n// Expect a node.\nfunc yaml_emitter_emit_node(emitter *yaml_emitter_t, event *yaml_event_t,\n\troot bool, sequence bool, mapping bool, simple_key bool) bool {\n\n\temitter.root_context = root\n\temitter.sequence_context = sequence\n\temitter.mapping_context = mapping\n\temitter.simple_key_context = simple_key\n\n\tswitch event.typ {\n\tcase yaml_ALIAS_EVENT:\n\t\treturn yaml_emitter_emit_alias(emitter, event)\n\tcase yaml_SCALAR_EVENT:\n\t\treturn yaml_emitter_emit_scalar(emitter, event)\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\treturn yaml_emitter_emit_sequence_start(emitter, event)\n\tcase yaml_MAPPING_START_EVENT:\n\t\treturn yaml_emitter_emit_mapping_start(emitter, event)\n\tdefault:\n\t\treturn yaml_emitter_set_emitter_error(emitter,\n\t\t\tfmt.Sprintf(\"expected SCALAR, SEQUENCE-START, MAPPING-START, or ALIAS, but got %v\", event.typ))\n\t}\n}\n\n// Expect ALIAS.\nfunc yaml_emitter_emit_alias(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif !yaml_emitter_process_anchor(emitter) {\n\t\treturn false\n\t}\n\temitter.state = emitter.states[len(emitter.states)-1]\n\temitter.states = emitter.states[:len(emitter.states)-1]\n\treturn true\n}\n\n// Expect SCALAR.\nfunc yaml_emitter_emit_scalar(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif !yaml_emitter_select_scalar_style(emitter, event) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_anchor(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_tag(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_increase_indent(emitter, true, false) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_scalar(emitter) {\n\t\treturn false\n\t}\n\temitter.indent = emitter.indents[len(emitter.indents)-1]\n\temitter.indents = emitter.indents[:len(emitter.indents)-1]\n\temitter.state = emitter.states[len(emitter.states)-1]\n\temitter.states = emitter.states[:len(emitter.states)-1]\n\treturn true\n}\n\n// Expect SEQUENCE-START.\nfunc yaml_emitter_emit_sequence_start(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif !yaml_emitter_process_anchor(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_tag(emitter) {\n\t\treturn false\n\t}\n\tif emitter.flow_level > 0 || emitter.canonical || event.sequence_style() == yaml_FLOW_SEQUENCE_STYLE ||\n\t\tyaml_emitter_check_empty_sequence(emitter) {\n\t\temitter.state = yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE\n\t} else {\n\t\temitter.state = yaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE\n\t}\n\treturn true\n}\n\n// Expect MAPPING-START.\nfunc yaml_emitter_emit_mapping_start(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\tif !yaml_emitter_process_anchor(emitter) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_process_tag(emitter) {\n\t\treturn false\n\t}\n\tif emitter.flow_level > 0 || emitter.canonical || event.mapping_style() == yaml_FLOW_MAPPING_STYLE ||\n\t\tyaml_emitter_check_empty_mapping(emitter) {\n\t\temitter.state = yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE\n\t} else {\n\t\temitter.state = yaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE\n\t}\n\treturn true\n}\n\n// Check if the document content is an empty scalar.\nfunc yaml_emitter_check_empty_document(emitter *yaml_emitter_t) bool {\n\treturn false // [Go] Huh?\n}\n\n// Check if the next events represent an empty sequence.\nfunc yaml_emitter_check_empty_sequence(emitter *yaml_emitter_t) bool {\n\tif len(emitter.events)-emitter.events_head < 2 {\n\t\treturn false\n\t}\n\treturn emitter.events[emitter.events_head].typ == yaml_SEQUENCE_START_EVENT &&\n\t\temitter.events[emitter.events_head+1].typ == yaml_SEQUENCE_END_EVENT\n}\n\n// Check if the next events represent an empty mapping.\nfunc yaml_emitter_check_empty_mapping(emitter *yaml_emitter_t) bool {\n\tif len(emitter.events)-emitter.events_head < 2 {\n\t\treturn false\n\t}\n\treturn emitter.events[emitter.events_head].typ == yaml_MAPPING_START_EVENT &&\n\t\temitter.events[emitter.events_head+1].typ == yaml_MAPPING_END_EVENT\n}\n\n// Check if the next node can be expressed as a simple key.\nfunc yaml_emitter_check_simple_key(emitter *yaml_emitter_t) bool {\n\tlength := 0\n\tswitch emitter.events[emitter.events_head].typ {\n\tcase yaml_ALIAS_EVENT:\n\t\tlength += len(emitter.anchor_data.anchor)\n\tcase yaml_SCALAR_EVENT:\n\t\tif emitter.scalar_data.multiline {\n\t\t\treturn false\n\t\t}\n\t\tlength += len(emitter.anchor_data.anchor) +\n\t\t\tlen(emitter.tag_data.handle) +\n\t\t\tlen(emitter.tag_data.suffix) +\n\t\t\tlen(emitter.scalar_data.value)\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\tif !yaml_emitter_check_empty_sequence(emitter) {\n\t\t\treturn false\n\t\t}\n\t\tlength += len(emitter.anchor_data.anchor) +\n\t\t\tlen(emitter.tag_data.handle) +\n\t\t\tlen(emitter.tag_data.suffix)\n\tcase yaml_MAPPING_START_EVENT:\n\t\tif !yaml_emitter_check_empty_mapping(emitter) {\n\t\t\treturn false\n\t\t}\n\t\tlength += len(emitter.anchor_data.anchor) +\n\t\t\tlen(emitter.tag_data.handle) +\n\t\t\tlen(emitter.tag_data.suffix)\n\tdefault:\n\t\treturn false\n\t}\n\treturn length <= 128\n}\n\n// Determine an acceptable scalar style.\nfunc yaml_emitter_select_scalar_style(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\n\tno_tag := len(emitter.tag_data.handle) == 0 && len(emitter.tag_data.suffix) == 0\n\tif no_tag && !event.implicit && !event.quoted_implicit {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"neither tag nor implicit flags are specified\")\n\t}\n\n\tstyle := event.scalar_style()\n\tif style == yaml_ANY_SCALAR_STYLE {\n\t\tstyle = yaml_PLAIN_SCALAR_STYLE\n\t}\n\tif emitter.canonical {\n\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t}\n\tif emitter.simple_key_context && emitter.scalar_data.multiline {\n\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t}\n\n\tif style == yaml_PLAIN_SCALAR_STYLE {\n\t\tif emitter.flow_level > 0 && !emitter.scalar_data.flow_plain_allowed ||\n\t\t\temitter.flow_level == 0 && !emitter.scalar_data.block_plain_allowed {\n\t\t\tstyle = yaml_SINGLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t\tif len(emitter.scalar_data.value) == 0 && (emitter.flow_level > 0 || emitter.simple_key_context) {\n\t\t\tstyle = yaml_SINGLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t\tif no_tag && !event.implicit {\n\t\t\tstyle = yaml_SINGLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t}\n\tif style == yaml_SINGLE_QUOTED_SCALAR_STYLE {\n\t\tif !emitter.scalar_data.single_quoted_allowed {\n\t\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t}\n\tif style == yaml_LITERAL_SCALAR_STYLE || style == yaml_FOLDED_SCALAR_STYLE {\n\t\tif !emitter.scalar_data.block_allowed || emitter.flow_level > 0 || emitter.simple_key_context {\n\t\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t\t}\n\t}\n\n\tif no_tag && !event.quoted_implicit && style != yaml_PLAIN_SCALAR_STYLE {\n\t\temitter.tag_data.handle = []byte{'!'}\n\t}\n\temitter.scalar_data.style = style\n\treturn true\n}\n\n// Write an anchor.\nfunc yaml_emitter_process_anchor(emitter *yaml_emitter_t) bool {\n\tif emitter.anchor_data.anchor == nil {\n\t\treturn true\n\t}\n\tc := []byte{'&'}\n\tif emitter.anchor_data.alias {\n\t\tc[0] = '*'\n\t}\n\tif !yaml_emitter_write_indicator(emitter, c, true, false, false) {\n\t\treturn false\n\t}\n\treturn yaml_emitter_write_anchor(emitter, emitter.anchor_data.anchor)\n}\n\n// Write a tag.\nfunc yaml_emitter_process_tag(emitter *yaml_emitter_t) bool {\n\tif len(emitter.tag_data.handle) == 0 && len(emitter.tag_data.suffix) == 0 {\n\t\treturn true\n\t}\n\tif len(emitter.tag_data.handle) > 0 {\n\t\tif !yaml_emitter_write_tag_handle(emitter, emitter.tag_data.handle) {\n\t\t\treturn false\n\t\t}\n\t\tif len(emitter.tag_data.suffix) > 0 {\n\t\t\tif !yaml_emitter_write_tag_content(emitter, emitter.tag_data.suffix, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// [Go] Allocate these slices elsewhere.\n\t\tif !yaml_emitter_write_indicator(emitter, []byte(\"!<\"), true, false, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_write_tag_content(emitter, emitter.tag_data.suffix, false) {\n\t\t\treturn false\n\t\t}\n\t\tif !yaml_emitter_write_indicator(emitter, []byte{'>'}, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\n// Write a scalar.\nfunc yaml_emitter_process_scalar(emitter *yaml_emitter_t) bool {\n\tswitch emitter.scalar_data.style {\n\tcase yaml_PLAIN_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_plain_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context)\n\n\tcase yaml_SINGLE_QUOTED_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_single_quoted_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context)\n\n\tcase yaml_DOUBLE_QUOTED_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_double_quoted_scalar(emitter, emitter.scalar_data.value, !emitter.simple_key_context)\n\n\tcase yaml_LITERAL_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_literal_scalar(emitter, emitter.scalar_data.value)\n\n\tcase yaml_FOLDED_SCALAR_STYLE:\n\t\treturn yaml_emitter_write_folded_scalar(emitter, emitter.scalar_data.value)\n\t}\n\tpanic(\"unknown scalar style\")\n}\n\n// Check if a %YAML directive is valid.\nfunc yaml_emitter_analyze_version_directive(emitter *yaml_emitter_t, version_directive *yaml_version_directive_t) bool {\n\tif version_directive.major != 1 || version_directive.minor != 1 {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"incompatible %YAML directive\")\n\t}\n\treturn true\n}\n\n// Check if a %TAG directive is valid.\nfunc yaml_emitter_analyze_tag_directive(emitter *yaml_emitter_t, tag_directive *yaml_tag_directive_t) bool {\n\thandle := tag_directive.handle\n\tprefix := tag_directive.prefix\n\tif len(handle) == 0 {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag handle must not be empty\")\n\t}\n\tif handle[0] != '!' {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag handle must start with '!'\")\n\t}\n\tif handle[len(handle)-1] != '!' {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag handle must end with '!'\")\n\t}\n\tfor i := 1; i < len(handle)-1; i += width(handle[i]) {\n\t\tif !is_alpha(handle, i) {\n\t\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag handle must contain alphanumerical characters only\")\n\t\t}\n\t}\n\tif len(prefix) == 0 {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag prefix must not be empty\")\n\t}\n\treturn true\n}\n\n// Check if an anchor is valid.\nfunc yaml_emitter_analyze_anchor(emitter *yaml_emitter_t, anchor []byte, alias bool) bool {\n\tif len(anchor) == 0 {\n\t\tproblem := \"anchor value must not be empty\"\n\t\tif alias {\n\t\t\tproblem = \"alias value must not be empty\"\n\t\t}\n\t\treturn yaml_emitter_set_emitter_error(emitter, problem)\n\t}\n\tfor i := 0; i < len(anchor); i += width(anchor[i]) {\n\t\tif !is_alpha(anchor, i) {\n\t\t\tproblem := \"anchor value must contain alphanumerical characters only\"\n\t\t\tif alias {\n\t\t\t\tproblem = \"alias value must contain alphanumerical characters only\"\n\t\t\t}\n\t\t\treturn yaml_emitter_set_emitter_error(emitter, problem)\n\t\t}\n\t}\n\temitter.anchor_data.anchor = anchor\n\temitter.anchor_data.alias = alias\n\treturn true\n}\n\n// Check if a tag is valid.\nfunc yaml_emitter_analyze_tag(emitter *yaml_emitter_t, tag []byte) bool {\n\tif len(tag) == 0 {\n\t\treturn yaml_emitter_set_emitter_error(emitter, \"tag value must not be empty\")\n\t}\n\tfor i := 0; i < len(emitter.tag_directives); i++ {\n\t\ttag_directive := &emitter.tag_directives[i]\n\t\tif bytes.HasPrefix(tag, tag_directive.prefix) {\n\t\t\temitter.tag_data.handle = tag_directive.handle\n\t\t\temitter.tag_data.suffix = tag[len(tag_directive.prefix):]\n\t\t\treturn true\n\t\t}\n\t}\n\temitter.tag_data.suffix = tag\n\treturn true\n}\n\n// Check if a scalar is valid.\nfunc yaml_emitter_analyze_scalar(emitter *yaml_emitter_t, value []byte) bool {\n\tvar (\n\t\tblock_indicators   = false\n\t\tflow_indicators    = false\n\t\tline_breaks        = false\n\t\tspecial_characters = false\n\n\t\tleading_space  = false\n\t\tleading_break  = false\n\t\ttrailing_space = false\n\t\ttrailing_break = false\n\t\tbreak_space    = false\n\t\tspace_break    = false\n\n\t\tpreceded_by_whitespace = false\n\t\tfollowed_by_whitespace = false\n\t\tprevious_space         = false\n\t\tprevious_break         = false\n\t)\n\n\temitter.scalar_data.value = value\n\n\tif len(value) == 0 {\n\t\temitter.scalar_data.multiline = false\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = true\n\t\temitter.scalar_data.single_quoted_allowed = true\n\t\temitter.scalar_data.block_allowed = false\n\t\treturn true\n\t}\n\n\tif len(value) >= 3 && ((value[0] == '-' && value[1] == '-' && value[2] == '-') || (value[0] == '.' && value[1] == '.' && value[2] == '.')) {\n\t\tblock_indicators = true\n\t\tflow_indicators = true\n\t}\n\n\tpreceded_by_whitespace = true\n\tfor i, w := 0, 0; i < len(value); i += w {\n\t\tw = width(value[i])\n\t\tfollowed_by_whitespace = i+w >= len(value) || is_blank(value, i+w)\n\n\t\tif i == 0 {\n\t\t\tswitch value[i] {\n\t\t\tcase '#', ',', '[', ']', '{', '}', '&', '*', '!', '|', '>', '\\'', '\"', '%', '@', '`':\n\t\t\t\tflow_indicators = true\n\t\t\t\tblock_indicators = true\n\t\t\tcase '?', ':':\n\t\t\t\tflow_indicators = true\n\t\t\t\tif followed_by_whitespace {\n\t\t\t\t\tblock_indicators = true\n\t\t\t\t}\n\t\t\tcase '-':\n\t\t\t\tif followed_by_whitespace {\n\t\t\t\t\tflow_indicators = true\n\t\t\t\t\tblock_indicators = true\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tswitch value[i] {\n\t\t\tcase ',', '?', '[', ']', '{', '}':\n\t\t\t\tflow_indicators = true\n\t\t\tcase ':':\n\t\t\t\tflow_indicators = true\n\t\t\t\tif followed_by_whitespace {\n\t\t\t\t\tblock_indicators = true\n\t\t\t\t}\n\t\t\tcase '#':\n\t\t\t\tif preceded_by_whitespace {\n\t\t\t\t\tflow_indicators = true\n\t\t\t\t\tblock_indicators = true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif !is_printable(value, i) || !is_ascii(value, i) && !emitter.unicode {\n\t\t\tspecial_characters = true\n\t\t}\n\t\tif is_space(value, i) {\n\t\t\tif i == 0 {\n\t\t\t\tleading_space = true\n\t\t\t}\n\t\t\tif i+width(value[i]) == len(value) {\n\t\t\t\ttrailing_space = true\n\t\t\t}\n\t\t\tif previous_break {\n\t\t\t\tbreak_space = true\n\t\t\t}\n\t\t\tprevious_space = true\n\t\t\tprevious_break = false\n\t\t} else if is_break(value, i) {\n\t\t\tline_breaks = true\n\t\t\tif i == 0 {\n\t\t\t\tleading_break = true\n\t\t\t}\n\t\t\tif i+width(value[i]) == len(value) {\n\t\t\t\ttrailing_break = true\n\t\t\t}\n\t\t\tif previous_space {\n\t\t\t\tspace_break = true\n\t\t\t}\n\t\t\tprevious_space = false\n\t\t\tprevious_break = true\n\t\t} else {\n\t\t\tprevious_space = false\n\t\t\tprevious_break = false\n\t\t}\n\n\t\t// [Go]: Why 'z'? Couldn't be the end of the string as that's the loop condition.\n\t\tpreceded_by_whitespace = is_blankz(value, i)\n\t}\n\n\temitter.scalar_data.multiline = line_breaks\n\temitter.scalar_data.flow_plain_allowed = true\n\temitter.scalar_data.block_plain_allowed = true\n\temitter.scalar_data.single_quoted_allowed = true\n\temitter.scalar_data.block_allowed = true\n\n\tif leading_space || leading_break || trailing_space || trailing_break {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = false\n\t}\n\tif trailing_space {\n\t\temitter.scalar_data.block_allowed = false\n\t}\n\tif break_space {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = false\n\t\temitter.scalar_data.single_quoted_allowed = false\n\t}\n\tif space_break || special_characters {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = false\n\t\temitter.scalar_data.single_quoted_allowed = false\n\t\temitter.scalar_data.block_allowed = false\n\t}\n\tif line_breaks {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t\temitter.scalar_data.block_plain_allowed = false\n\t}\n\tif flow_indicators {\n\t\temitter.scalar_data.flow_plain_allowed = false\n\t}\n\tif block_indicators {\n\t\temitter.scalar_data.block_plain_allowed = false\n\t}\n\treturn true\n}\n\n// Check if the event data is valid.\nfunc yaml_emitter_analyze_event(emitter *yaml_emitter_t, event *yaml_event_t) bool {\n\n\temitter.anchor_data.anchor = nil\n\temitter.tag_data.handle = nil\n\temitter.tag_data.suffix = nil\n\temitter.scalar_data.value = nil\n\n\tswitch event.typ {\n\tcase yaml_ALIAS_EVENT:\n\t\tif !yaml_emitter_analyze_anchor(emitter, event.anchor, true) {\n\t\t\treturn false\n\t\t}\n\n\tcase yaml_SCALAR_EVENT:\n\t\tif len(event.anchor) > 0 {\n\t\t\tif !yaml_emitter_analyze_anchor(emitter, event.anchor, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif len(event.tag) > 0 && (emitter.canonical || (!event.implicit && !event.quoted_implicit)) {\n\t\t\tif !yaml_emitter_analyze_tag(emitter, event.tag) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif !yaml_emitter_analyze_scalar(emitter, event.value) {\n\t\t\treturn false\n\t\t}\n\n\tcase yaml_SEQUENCE_START_EVENT:\n\t\tif len(event.anchor) > 0 {\n\t\t\tif !yaml_emitter_analyze_anchor(emitter, event.anchor, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif len(event.tag) > 0 && (emitter.canonical || !event.implicit) {\n\t\t\tif !yaml_emitter_analyze_tag(emitter, event.tag) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\tcase yaml_MAPPING_START_EVENT:\n\t\tif len(event.anchor) > 0 {\n\t\t\tif !yaml_emitter_analyze_anchor(emitter, event.anchor, false) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif len(event.tag) > 0 && (emitter.canonical || !event.implicit) {\n\t\t\tif !yaml_emitter_analyze_tag(emitter, event.tag) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\treturn true\n}\n\n// Write the BOM character.\nfunc yaml_emitter_write_bom(emitter *yaml_emitter_t) bool {\n\tif !flush(emitter) {\n\t\treturn false\n\t}\n\tpos := emitter.buffer_pos\n\temitter.buffer[pos+0] = '\\xEF'\n\temitter.buffer[pos+1] = '\\xBB'\n\temitter.buffer[pos+2] = '\\xBF'\n\temitter.buffer_pos += 3\n\treturn true\n}\n\nfunc yaml_emitter_write_indent(emitter *yaml_emitter_t) bool {\n\tindent := emitter.indent\n\tif indent < 0 {\n\t\tindent = 0\n\t}\n\tif !emitter.indention || emitter.column > indent || (emitter.column == indent && !emitter.whitespace) {\n\t\tif !put_break(emitter) {\n\t\t\treturn false\n\t\t}\n\t}\n\tfor emitter.column < indent {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\temitter.whitespace = true\n\temitter.indention = true\n\treturn true\n}\n\nfunc yaml_emitter_write_indicator(emitter *yaml_emitter_t, indicator []byte, need_whitespace, is_whitespace, is_indention bool) bool {\n\tif need_whitespace && !emitter.whitespace {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\tif !write_all(emitter, indicator) {\n\t\treturn false\n\t}\n\temitter.whitespace = is_whitespace\n\temitter.indention = (emitter.indention && is_indention)\n\temitter.open_ended = false\n\treturn true\n}\n\nfunc yaml_emitter_write_anchor(emitter *yaml_emitter_t, value []byte) bool {\n\tif !write_all(emitter, value) {\n\t\treturn false\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_tag_handle(emitter *yaml_emitter_t, value []byte) bool {\n\tif !emitter.whitespace {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\tif !write_all(emitter, value) {\n\t\treturn false\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_tag_content(emitter *yaml_emitter_t, value []byte, need_whitespace bool) bool {\n\tif need_whitespace && !emitter.whitespace {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\tfor i := 0; i < len(value); {\n\t\tvar must_write bool\n\t\tswitch value[i] {\n\t\tcase ';', '/', '?', ':', '@', '&', '=', '+', '$', ',', '_', '.', '~', '*', '\\'', '(', ')', '[', ']':\n\t\t\tmust_write = true\n\t\tdefault:\n\t\t\tmust_write = is_alpha(value, i)\n\t\t}\n\t\tif must_write {\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t} else {\n\t\t\tw := width(value[i])\n\t\t\tfor k := 0; k < w; k++ {\n\t\t\t\toctet := value[i]\n\t\t\t\ti++\n\t\t\t\tif !put(emitter, '%') {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\tc := octet >> 4\n\t\t\t\tif c < 10 {\n\t\t\t\t\tc += '0'\n\t\t\t\t} else {\n\t\t\t\t\tc += 'A' - 10\n\t\t\t\t}\n\t\t\t\tif !put(emitter, c) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\tc = octet & 0x0f\n\t\t\t\tif c < 10 {\n\t\t\t\t\tc += '0'\n\t\t\t\t} else {\n\t\t\t\t\tc += 'A' - 10\n\t\t\t\t}\n\t\t\t\tif !put(emitter, c) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_plain_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool {\n\tif !emitter.whitespace {\n\t\tif !put(emitter, ' ') {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tspaces := false\n\tbreaks := false\n\tfor i := 0; i < len(value); {\n\t\tif is_space(value, i) {\n\t\t\tif allow_breaks && !spaces && emitter.column > emitter.best_width && !is_space(value, i+1) {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\ti += width(value[i])\n\t\t\t} else {\n\t\t\t\tif !write(emitter, value, &i) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tspaces = true\n\t\t} else if is_break(value, i) {\n\t\t\tif !breaks && value[i] == '\\n' {\n\t\t\t\tif !put_break(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write_break(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = true\n\t\t\tbreaks = true\n\t\t} else {\n\t\t\tif breaks {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = false\n\t\t\tspaces = false\n\t\t\tbreaks = false\n\t\t}\n\t}\n\n\temitter.whitespace = false\n\temitter.indention = false\n\tif emitter.root_context {\n\t\temitter.open_ended = true\n\t}\n\n\treturn true\n}\n\nfunc yaml_emitter_write_single_quoted_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool {\n\n\tif !yaml_emitter_write_indicator(emitter, []byte{'\\''}, true, false, false) {\n\t\treturn false\n\t}\n\n\tspaces := false\n\tbreaks := false\n\tfor i := 0; i < len(value); {\n\t\tif is_space(value, i) {\n\t\t\tif allow_breaks && !spaces && emitter.column > emitter.best_width && i > 0 && i < len(value)-1 && !is_space(value, i+1) {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\ti += width(value[i])\n\t\t\t} else {\n\t\t\t\tif !write(emitter, value, &i) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tspaces = true\n\t\t} else if is_break(value, i) {\n\t\t\tif !breaks && value[i] == '\\n' {\n\t\t\t\tif !put_break(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write_break(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = true\n\t\t\tbreaks = true\n\t\t} else {\n\t\t\tif breaks {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif value[i] == '\\'' {\n\t\t\t\tif !put(emitter, '\\'') {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = false\n\t\t\tspaces = false\n\t\t\tbreaks = false\n\t\t}\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'\\''}, false, false, false) {\n\t\treturn false\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_double_quoted_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool {\n\tspaces := false\n\tif !yaml_emitter_write_indicator(emitter, []byte{'\"'}, true, false, false) {\n\t\treturn false\n\t}\n\n\tfor i := 0; i < len(value); {\n\t\tif !is_printable(value, i) || (!emitter.unicode && !is_ascii(value, i)) ||\n\t\t\tis_bom(value, i) || is_break(value, i) ||\n\t\t\tvalue[i] == '\"' || value[i] == '\\\\' {\n\n\t\t\toctet := value[i]\n\n\t\t\tvar w int\n\t\t\tvar v rune\n\t\t\tswitch {\n\t\t\tcase octet&0x80 == 0x00:\n\t\t\t\tw, v = 1, rune(octet&0x7F)\n\t\t\tcase octet&0xE0 == 0xC0:\n\t\t\t\tw, v = 2, rune(octet&0x1F)\n\t\t\tcase octet&0xF0 == 0xE0:\n\t\t\t\tw, v = 3, rune(octet&0x0F)\n\t\t\tcase octet&0xF8 == 0xF0:\n\t\t\t\tw, v = 4, rune(octet&0x07)\n\t\t\t}\n\t\t\tfor k := 1; k < w; k++ {\n\t\t\t\toctet = value[i+k]\n\t\t\t\tv = (v << 6) + (rune(octet) & 0x3F)\n\t\t\t}\n\t\t\ti += w\n\n\t\t\tif !put(emitter, '\\\\') {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tvar ok bool\n\t\t\tswitch v {\n\t\t\tcase 0x00:\n\t\t\t\tok = put(emitter, '0')\n\t\t\tcase 0x07:\n\t\t\t\tok = put(emitter, 'a')\n\t\t\tcase 0x08:\n\t\t\t\tok = put(emitter, 'b')\n\t\t\tcase 0x09:\n\t\t\t\tok = put(emitter, 't')\n\t\t\tcase 0x0A:\n\t\t\t\tok = put(emitter, 'n')\n\t\t\tcase 0x0b:\n\t\t\t\tok = put(emitter, 'v')\n\t\t\tcase 0x0c:\n\t\t\t\tok = put(emitter, 'f')\n\t\t\tcase 0x0d:\n\t\t\t\tok = put(emitter, 'r')\n\t\t\tcase 0x1b:\n\t\t\t\tok = put(emitter, 'e')\n\t\t\tcase 0x22:\n\t\t\t\tok = put(emitter, '\"')\n\t\t\tcase 0x5c:\n\t\t\t\tok = put(emitter, '\\\\')\n\t\t\tcase 0x85:\n\t\t\t\tok = put(emitter, 'N')\n\t\t\tcase 0xA0:\n\t\t\t\tok = put(emitter, '_')\n\t\t\tcase 0x2028:\n\t\t\t\tok = put(emitter, 'L')\n\t\t\tcase 0x2029:\n\t\t\t\tok = put(emitter, 'P')\n\t\t\tdefault:\n\t\t\t\tif v <= 0xFF {\n\t\t\t\t\tok = put(emitter, 'x')\n\t\t\t\t\tw = 2\n\t\t\t\t} else if v <= 0xFFFF {\n\t\t\t\t\tok = put(emitter, 'u')\n\t\t\t\t\tw = 4\n\t\t\t\t} else {\n\t\t\t\t\tok = put(emitter, 'U')\n\t\t\t\t\tw = 8\n\t\t\t\t}\n\t\t\t\tfor k := (w - 1) * 4; ok && k >= 0; k -= 4 {\n\t\t\t\t\tdigit := byte((v >> uint(k)) & 0x0F)\n\t\t\t\t\tif digit < 10 {\n\t\t\t\t\t\tok = put(emitter, digit+'0')\n\t\t\t\t\t} else {\n\t\t\t\t\t\tok = put(emitter, digit+'A'-10)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !ok {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tspaces = false\n\t\t} else if is_space(value, i) {\n\t\t\tif allow_breaks && !spaces && emitter.column > emitter.best_width && i > 0 && i < len(value)-1 {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tif is_space(value, i+1) {\n\t\t\t\t\tif !put(emitter, '\\\\') {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ti += width(value[i])\n\t\t\t} else if !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tspaces = true\n\t\t} else {\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tspaces = false\n\t\t}\n\t}\n\tif !yaml_emitter_write_indicator(emitter, []byte{'\"'}, false, false, false) {\n\t\treturn false\n\t}\n\temitter.whitespace = false\n\temitter.indention = false\n\treturn true\n}\n\nfunc yaml_emitter_write_block_scalar_hints(emitter *yaml_emitter_t, value []byte) bool {\n\tif is_space(value, 0) || is_break(value, 0) {\n\t\tindent_hint := []byte{'0' + byte(emitter.best_indent)}\n\t\tif !yaml_emitter_write_indicator(emitter, indent_hint, false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\temitter.open_ended = false\n\n\tvar chomp_hint [1]byte\n\tif len(value) == 0 {\n\t\tchomp_hint[0] = '-'\n\t} else {\n\t\ti := len(value) - 1\n\t\tfor value[i]&0xC0 == 0x80 {\n\t\t\ti--\n\t\t}\n\t\tif !is_break(value, i) {\n\t\t\tchomp_hint[0] = '-'\n\t\t} else if i == 0 {\n\t\t\tchomp_hint[0] = '+'\n\t\t\temitter.open_ended = true\n\t\t} else {\n\t\t\ti--\n\t\t\tfor value[i]&0xC0 == 0x80 {\n\t\t\t\ti--\n\t\t\t}\n\t\t\tif is_break(value, i) {\n\t\t\t\tchomp_hint[0] = '+'\n\t\t\t\temitter.open_ended = true\n\t\t\t}\n\t\t}\n\t}\n\tif chomp_hint[0] != 0 {\n\t\tif !yaml_emitter_write_indicator(emitter, chomp_hint[:], false, false, false) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n\nfunc yaml_emitter_write_literal_scalar(emitter *yaml_emitter_t, value []byte) bool {\n\tif !yaml_emitter_write_indicator(emitter, []byte{'|'}, true, false, false) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_write_block_scalar_hints(emitter, value) {\n\t\treturn false\n\t}\n\tif !put_break(emitter) {\n\t\treturn false\n\t}\n\temitter.indention = true\n\temitter.whitespace = true\n\tbreaks := true\n\tfor i := 0; i < len(value); {\n\t\tif is_break(value, i) {\n\t\t\tif !write_break(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = true\n\t\t\tbreaks = true\n\t\t} else {\n\t\t\tif breaks {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = false\n\t\t\tbreaks = false\n\t\t}\n\t}\n\n\treturn true\n}\n\nfunc yaml_emitter_write_folded_scalar(emitter *yaml_emitter_t, value []byte) bool {\n\tif !yaml_emitter_write_indicator(emitter, []byte{'>'}, true, false, false) {\n\t\treturn false\n\t}\n\tif !yaml_emitter_write_block_scalar_hints(emitter, value) {\n\t\treturn false\n\t}\n\n\tif !put_break(emitter) {\n\t\treturn false\n\t}\n\temitter.indention = true\n\temitter.whitespace = true\n\n\tbreaks := true\n\tleading_spaces := true\n\tfor i := 0; i < len(value); {\n\t\tif is_break(value, i) {\n\t\t\tif !breaks && !leading_spaces && value[i] == '\\n' {\n\t\t\t\tk := 0\n\t\t\t\tfor is_break(value, k) {\n\t\t\t\t\tk += width(value[k])\n\t\t\t\t}\n\t\t\t\tif !is_blankz(value, k) {\n\t\t\t\t\tif !put_break(emitter) {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif !write_break(emitter, value, &i) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\temitter.indention = true\n\t\t\tbreaks = true\n\t\t} else {\n\t\t\tif breaks {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tleading_spaces = is_blank(value, i)\n\t\t\t}\n\t\t\tif !breaks && is_space(value, i) && !is_space(value, i+1) && emitter.column > emitter.best_width {\n\t\t\t\tif !yaml_emitter_write_indent(emitter) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\ti += width(value[i])\n\t\t\t} else {\n\t\t\t\tif !write(emitter, value, &i) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\temitter.indention = false\n\t\t\tbreaks = false\n\t\t}\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/yaml/goyaml.v2/encode.go",
    "content": "package yaml\n\nimport (\n\t\"encoding\"\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n\t\"regexp\"\n\t\"sort\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\t\"unicode/utf8\"\n)\n\n// jsonNumber is the interface of the encoding/json.Number datatype.\n// Repeating the interface here avoids a dependency on encoding/json, and also\n// supports other libraries like jsoniter, which use a similar datatype with\n// the same interface. Detecting this interface is useful when dealing with\n// structures containing json.Number, which is a string under the hood. The\n// encoder should prefer the use of Int64(), Float64() and string(), in that\n// order, when encoding this type.\ntype jsonNumber interface {\n\tFloat64() (float64, error)\n\tInt64() (int64, error)\n\tString() string\n}\n\ntype encoder struct {\n\temitter yaml_emitter_t\n\tevent   yaml_event_t\n\tout     []byte\n\tflow    bool\n\t// doneInit holds whether the initial stream_start_event has been\n\t// emitted.\n\tdoneInit bool\n}\n\nfunc newEncoder() *encoder {\n\te := &encoder{}\n\tyaml_emitter_initialize(&e.emitter)\n\tyaml_emitter_set_output_string(&e.emitter, &e.out)\n\tyaml_emitter_set_unicode(&e.emitter, true)\n\treturn e\n}\n\nfunc newEncoderWithWriter(w io.Writer) *encoder {\n\te := &encoder{}\n\tyaml_emitter_initialize(&e.emitter)\n\tyaml_emitter_set_output_writer(&e.emitter, w)\n\tyaml_emitter_set_unicode(&e.emitter, true)\n\treturn e\n}\n\nfunc (e *encoder) init() {\n\tif e.doneInit {\n\t\treturn\n\t}\n\tyaml_stream_start_event_initialize(&e.event, yaml_UTF8_ENCODING)\n\te.emit()\n\te.doneInit = true\n}\n\nfunc (e *encoder) finish() {\n\te.emitter.open_ended = false\n\tyaml_stream_end_event_initialize(&e.event)\n\te.emit()\n}\n\nfunc (e *encoder) destroy() {\n\tyaml_emitter_delete(&e.emitter)\n}\n\nfunc (e *encoder) emit() {\n\t// This will internally delete the e.event value.\n\te.must(yaml_emitter_emit(&e.emitter, &e.event))\n}\n\nfunc (e *encoder) must(ok bool) {\n\tif !ok {\n\t\tmsg := e.emitter.problem\n\t\tif msg == \"\" {\n\t\t\tmsg = \"unknown problem generating YAML content\"\n\t\t}\n\t\tfailf(\"%s\", msg)\n\t}\n}\n\nfunc (e *encoder) marshalDoc(tag string, in reflect.Value) {\n\te.init()\n\tyaml_document_start_event_initialize(&e.event, nil, nil, true)\n\te.emit()\n\te.marshal(tag, in)\n\tyaml_document_end_event_initialize(&e.event, true)\n\te.emit()\n}\n\nfunc (e *encoder) marshal(tag string, in reflect.Value) {\n\tif !in.IsValid() || in.Kind() == reflect.Ptr && in.IsNil() {\n\t\te.nilv()\n\t\treturn\n\t}\n\tiface := in.Interface()\n\tswitch m := iface.(type) {\n\tcase jsonNumber:\n\t\tinteger, err := m.Int64()\n\t\tif err == nil {\n\t\t\t// In this case the json.Number is a valid int64\n\t\t\tin = reflect.ValueOf(integer)\n\t\t\tbreak\n\t\t}\n\t\tfloat, err := m.Float64()\n\t\tif err == nil {\n\t\t\t// In this case the json.Number is a valid float64\n\t\t\tin = reflect.ValueOf(float)\n\t\t\tbreak\n\t\t}\n\t\t// fallback case - no number could be obtained\n\t\tin = reflect.ValueOf(m.String())\n\tcase time.Time, *time.Time:\n\t\t// Although time.Time implements TextMarshaler,\n\t\t// we don't want to treat it as a string for YAML\n\t\t// purposes because YAML has special support for\n\t\t// timestamps.\n\tcase Marshaler:\n\t\tv, err := m.MarshalYAML()\n\t\tif err != nil {\n\t\t\tfail(err)\n\t\t}\n\t\tif v == nil {\n\t\t\te.nilv()\n\t\t\treturn\n\t\t}\n\t\tin = reflect.ValueOf(v)\n\tcase encoding.TextMarshaler:\n\t\ttext, err := m.MarshalText()\n\t\tif err != nil {\n\t\t\tfail(err)\n\t\t}\n\t\tin = reflect.ValueOf(string(text))\n\tcase nil:\n\t\te.nilv()\n\t\treturn\n\t}\n\tswitch in.Kind() {\n\tcase reflect.Interface:\n\t\te.marshal(tag, in.Elem())\n\tcase reflect.Map:\n\t\te.mapv(tag, in)\n\tcase reflect.Ptr:\n\t\tif in.Type() == ptrTimeType {\n\t\t\te.timev(tag, in.Elem())\n\t\t} else {\n\t\t\te.marshal(tag, in.Elem())\n\t\t}\n\tcase reflect.Struct:\n\t\tif in.Type() == timeType {\n\t\t\te.timev(tag, in)\n\t\t} else {\n\t\t\te.structv(tag, in)\n\t\t}\n\tcase reflect.Slice, reflect.Array:\n\t\tif in.Type().Elem() == mapItemType {\n\t\t\te.itemsv(tag, in)\n\t\t} else {\n\t\t\te.slicev(tag, in)\n\t\t}\n\tcase reflect.String:\n\t\te.stringv(tag, in)\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\tif in.Type() == durationType {\n\t\t\te.stringv(tag, reflect.ValueOf(iface.(time.Duration).String()))\n\t\t} else {\n\t\t\te.intv(tag, in)\n\t\t}\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\te.uintv(tag, in)\n\tcase reflect.Float32, reflect.Float64:\n\t\te.floatv(tag, in)\n\tcase reflect.Bool:\n\t\te.boolv(tag, in)\n\tdefault:\n\t\tpanic(\"cannot marshal type: \" + in.Type().String())\n\t}\n}\n\nfunc (e *encoder) mapv(tag string, in reflect.Value) {\n\te.mappingv(tag, func() {\n\t\tkeys := keyList(in.MapKeys())\n\t\tsort.Sort(keys)\n\t\tfor _, k := range keys {\n\t\t\te.marshal(\"\", k)\n\t\t\te.marshal(\"\", in.MapIndex(k))\n\t\t}\n\t})\n}\n\nfunc (e *encoder) itemsv(tag string, in reflect.Value) {\n\te.mappingv(tag, func() {\n\t\tslice := in.Convert(reflect.TypeOf([]MapItem{})).Interface().([]MapItem)\n\t\tfor _, item := range slice {\n\t\t\te.marshal(\"\", reflect.ValueOf(item.Key))\n\t\t\te.marshal(\"\", reflect.ValueOf(item.Value))\n\t\t}\n\t})\n}\n\nfunc (e *encoder) structv(tag string, in reflect.Value) {\n\tsinfo, err := getStructInfo(in.Type())\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\te.mappingv(tag, func() {\n\t\tfor _, info := range sinfo.FieldsList {\n\t\t\tvar value reflect.Value\n\t\t\tif info.Inline == nil {\n\t\t\t\tvalue = in.Field(info.Num)\n\t\t\t} else {\n\t\t\t\tvalue = in.FieldByIndex(info.Inline)\n\t\t\t}\n\t\t\tif info.OmitEmpty && isZero(value) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\te.marshal(\"\", reflect.ValueOf(info.Key))\n\t\t\te.flow = info.Flow\n\t\t\te.marshal(\"\", value)\n\t\t}\n\t\tif sinfo.InlineMap >= 0 {\n\t\t\tm := in.Field(sinfo.InlineMap)\n\t\t\tif m.Len() > 0 {\n\t\t\t\te.flow = false\n\t\t\t\tkeys := keyList(m.MapKeys())\n\t\t\t\tsort.Sort(keys)\n\t\t\t\tfor _, k := range keys {\n\t\t\t\t\tif _, found := sinfo.FieldsMap[k.String()]; found {\n\t\t\t\t\t\tpanic(fmt.Sprintf(\"Can't have key %q in inlined map; conflicts with struct field\", k.String()))\n\t\t\t\t\t}\n\t\t\t\t\te.marshal(\"\", k)\n\t\t\t\t\te.flow = false\n\t\t\t\t\te.marshal(\"\", m.MapIndex(k))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t})\n}\n\nfunc (e *encoder) mappingv(tag string, f func()) {\n\timplicit := tag == \"\"\n\tstyle := yaml_BLOCK_MAPPING_STYLE\n\tif e.flow {\n\t\te.flow = false\n\t\tstyle = yaml_FLOW_MAPPING_STYLE\n\t}\n\tyaml_mapping_start_event_initialize(&e.event, nil, []byte(tag), implicit, style)\n\te.emit()\n\tf()\n\tyaml_mapping_end_event_initialize(&e.event)\n\te.emit()\n}\n\nfunc (e *encoder) slicev(tag string, in reflect.Value) {\n\timplicit := tag == \"\"\n\tstyle := yaml_BLOCK_SEQUENCE_STYLE\n\tif e.flow {\n\t\te.flow = false\n\t\tstyle = yaml_FLOW_SEQUENCE_STYLE\n\t}\n\te.must(yaml_sequence_start_event_initialize(&e.event, nil, []byte(tag), implicit, style))\n\te.emit()\n\tn := in.Len()\n\tfor i := 0; i < n; i++ {\n\t\te.marshal(\"\", in.Index(i))\n\t}\n\te.must(yaml_sequence_end_event_initialize(&e.event))\n\te.emit()\n}\n\n// isBase60 returns whether s is in base 60 notation as defined in YAML 1.1.\n//\n// The base 60 float notation in YAML 1.1 is a terrible idea and is unsupported\n// in YAML 1.2 and by this package, but these should be marshalled quoted for\n// the time being for compatibility with other parsers.\nfunc isBase60Float(s string) (result bool) {\n\t// Fast path.\n\tif s == \"\" {\n\t\treturn false\n\t}\n\tc := s[0]\n\tif !(c == '+' || c == '-' || c >= '0' && c <= '9') || strings.IndexByte(s, ':') < 0 {\n\t\treturn false\n\t}\n\t// Do the full match.\n\treturn base60float.MatchString(s)\n}\n\n// From http://yaml.org/type/float.html, except the regular expression there\n// is bogus. In practice parsers do not enforce the \"\\.[0-9_]*\" suffix.\nvar base60float = regexp.MustCompile(`^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+(?:\\.[0-9_]*)?$`)\n\nfunc (e *encoder) stringv(tag string, in reflect.Value) {\n\tvar style yaml_scalar_style_t\n\ts := in.String()\n\tcanUsePlain := true\n\tswitch {\n\tcase !utf8.ValidString(s):\n\t\tif tag == yaml_BINARY_TAG {\n\t\t\tfailf(\"explicitly tagged !!binary data must be base64-encoded\")\n\t\t}\n\t\tif tag != \"\" {\n\t\t\tfailf(\"cannot marshal invalid UTF-8 data as %s\", shortTag(tag))\n\t\t}\n\t\t// It can't be encoded directly as YAML so use a binary tag\n\t\t// and encode it as base64.\n\t\ttag = yaml_BINARY_TAG\n\t\ts = encodeBase64(s)\n\tcase tag == \"\":\n\t\t// Check to see if it would resolve to a specific\n\t\t// tag when encoded unquoted. If it doesn't,\n\t\t// there's no need to quote it.\n\t\trtag, _ := resolve(\"\", s)\n\t\tcanUsePlain = rtag == yaml_STR_TAG && !isBase60Float(s)\n\t}\n\t// Note: it's possible for user code to emit invalid YAML\n\t// if they explicitly specify a tag and a string containing\n\t// text that's incompatible with that tag.\n\tswitch {\n\tcase strings.Contains(s, \"\\n\"):\n\t\tstyle = yaml_LITERAL_SCALAR_STYLE\n\tcase canUsePlain:\n\t\tstyle = yaml_PLAIN_SCALAR_STYLE\n\tdefault:\n\t\tstyle = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t}\n\te.emitScalar(s, \"\", tag, style)\n}\n\nfunc (e *encoder) boolv(tag string, in reflect.Value) {\n\tvar s string\n\tif in.Bool() {\n\t\ts = \"true\"\n\t} else {\n\t\ts = \"false\"\n\t}\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE)\n}\n\nfunc (e *encoder) intv(tag string, in reflect.Value) {\n\ts := strconv.FormatInt(in.Int(), 10)\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE)\n}\n\nfunc (e *encoder) uintv(tag string, in reflect.Value) {\n\ts := strconv.FormatUint(in.Uint(), 10)\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE)\n}\n\nfunc (e *encoder) timev(tag string, in reflect.Value) {\n\tt := in.Interface().(time.Time)\n\ts := t.Format(time.RFC3339Nano)\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE)\n}\n\nfunc (e *encoder) floatv(tag string, in reflect.Value) {\n\t// Issue #352: When formatting, use the precision of the underlying value\n\tprecision := 64\n\tif in.Kind() == reflect.Float32 {\n\t\tprecision = 32\n\t}\n\n\ts := strconv.FormatFloat(in.Float(), 'g', -1, precision)\n\tswitch s {\n\tcase \"+Inf\":\n\t\ts = \".inf\"\n\tcase \"-Inf\":\n\t\ts = \"-.inf\"\n\tcase \"NaN\":\n\t\ts = \".nan\"\n\t}\n\te.emitScalar(s, \"\", tag, yaml_PLAIN_SCALAR_STYLE)\n}\n\nfunc (e *encoder) nilv() {\n\te.emitScalar(\"null\", \"\", \"\", yaml_PLAIN_SCALAR_STYLE)\n}\n\nfunc (e *encoder) emitScalar(value, anchor, tag string, style yaml_scalar_style_t) {\n\timplicit := tag == \"\"\n\te.must(yaml_scalar_event_initialize(&e.event, []byte(anchor), []byte(tag), []byte(value), implicit, implicit, style))\n\te.emit()\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/yaml/goyaml.v2/parserc.go",
    "content": "package yaml\n\nimport (\n\t\"bytes\"\n)\n\n// The parser implements the following grammar:\n//\n// stream               ::= STREAM-START implicit_document? explicit_document* STREAM-END\n// implicit_document    ::= block_node DOCUMENT-END*\n// explicit_document    ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*\n// block_node_or_indentless_sequence    ::=\n//                          ALIAS\n//                          | properties (block_content | indentless_block_sequence)?\n//                          | block_content\n//                          | indentless_block_sequence\n// block_node           ::= ALIAS\n//                          | properties block_content?\n//                          | block_content\n// flow_node            ::= ALIAS\n//                          | properties flow_content?\n//                          | flow_content\n// properties           ::= TAG ANCHOR? | ANCHOR TAG?\n// block_content        ::= block_collection | flow_collection | SCALAR\n// flow_content         ::= flow_collection | SCALAR\n// block_collection     ::= block_sequence | block_mapping\n// flow_collection      ::= flow_sequence | flow_mapping\n// block_sequence       ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END\n// indentless_sequence  ::= (BLOCK-ENTRY block_node?)+\n// block_mapping        ::= BLOCK-MAPPING_START\n//                          ((KEY block_node_or_indentless_sequence?)?\n//                          (VALUE block_node_or_indentless_sequence?)?)*\n//                          BLOCK-END\n// flow_sequence        ::= FLOW-SEQUENCE-START\n//                          (flow_sequence_entry FLOW-ENTRY)*\n//                          flow_sequence_entry?\n//                          FLOW-SEQUENCE-END\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n// flow_mapping         ::= FLOW-MAPPING-START\n//                          (flow_mapping_entry FLOW-ENTRY)*\n//                          flow_mapping_entry?\n//                          FLOW-MAPPING-END\n// flow_mapping_entry   ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n\n// Peek the next token in the token queue.\nfunc peek_token(parser *yaml_parser_t) *yaml_token_t {\n\tif parser.token_available || yaml_parser_fetch_more_tokens(parser) {\n\t\treturn &parser.tokens[parser.tokens_head]\n\t}\n\treturn nil\n}\n\n// Remove the next token from the queue (must be called after peek_token).\nfunc skip_token(parser *yaml_parser_t) {\n\tparser.token_available = false\n\tparser.tokens_parsed++\n\tparser.stream_end_produced = parser.tokens[parser.tokens_head].typ == yaml_STREAM_END_TOKEN\n\tparser.tokens_head++\n}\n\n// Get the next event.\nfunc yaml_parser_parse(parser *yaml_parser_t, event *yaml_event_t) bool {\n\t// Erase the event object.\n\t*event = yaml_event_t{}\n\n\t// No events after the end of the stream or error.\n\tif parser.stream_end_produced || parser.error != yaml_NO_ERROR || parser.state == yaml_PARSE_END_STATE {\n\t\treturn true\n\t}\n\n\t// Generate the next event.\n\treturn yaml_parser_state_machine(parser, event)\n}\n\n// Set parser error.\nfunc yaml_parser_set_parser_error(parser *yaml_parser_t, problem string, problem_mark yaml_mark_t) bool {\n\tparser.error = yaml_PARSER_ERROR\n\tparser.problem = problem\n\tparser.problem_mark = problem_mark\n\treturn false\n}\n\nfunc yaml_parser_set_parser_error_context(parser *yaml_parser_t, context string, context_mark yaml_mark_t, problem string, problem_mark yaml_mark_t) bool {\n\tparser.error = yaml_PARSER_ERROR\n\tparser.context = context\n\tparser.context_mark = context_mark\n\tparser.problem = problem\n\tparser.problem_mark = problem_mark\n\treturn false\n}\n\n// State dispatcher.\nfunc yaml_parser_state_machine(parser *yaml_parser_t, event *yaml_event_t) bool {\n\t//trace(\"yaml_parser_state_machine\", \"state:\", parser.state.String())\n\n\tswitch parser.state {\n\tcase yaml_PARSE_STREAM_START_STATE:\n\t\treturn yaml_parser_parse_stream_start(parser, event)\n\n\tcase yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE:\n\t\treturn yaml_parser_parse_document_start(parser, event, true)\n\n\tcase yaml_PARSE_DOCUMENT_START_STATE:\n\t\treturn yaml_parser_parse_document_start(parser, event, false)\n\n\tcase yaml_PARSE_DOCUMENT_CONTENT_STATE:\n\t\treturn yaml_parser_parse_document_content(parser, event)\n\n\tcase yaml_PARSE_DOCUMENT_END_STATE:\n\t\treturn yaml_parser_parse_document_end(parser, event)\n\n\tcase yaml_PARSE_BLOCK_NODE_STATE:\n\t\treturn yaml_parser_parse_node(parser, event, true, false)\n\n\tcase yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE:\n\t\treturn yaml_parser_parse_node(parser, event, true, true)\n\n\tcase yaml_PARSE_FLOW_NODE_STATE:\n\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\n\tcase yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE:\n\t\treturn yaml_parser_parse_block_sequence_entry(parser, event, true)\n\n\tcase yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE:\n\t\treturn yaml_parser_parse_block_sequence_entry(parser, event, false)\n\n\tcase yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE:\n\t\treturn yaml_parser_parse_indentless_sequence_entry(parser, event)\n\n\tcase yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE:\n\t\treturn yaml_parser_parse_block_mapping_key(parser, event, true)\n\n\tcase yaml_PARSE_BLOCK_MAPPING_KEY_STATE:\n\t\treturn yaml_parser_parse_block_mapping_key(parser, event, false)\n\n\tcase yaml_PARSE_BLOCK_MAPPING_VALUE_STATE:\n\t\treturn yaml_parser_parse_block_mapping_value(parser, event)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry(parser, event, true)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry(parser, event, false)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry_mapping_key(parser, event)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry_mapping_value(parser, event)\n\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE:\n\t\treturn yaml_parser_parse_flow_sequence_entry_mapping_end(parser, event)\n\n\tcase yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE:\n\t\treturn yaml_parser_parse_flow_mapping_key(parser, event, true)\n\n\tcase yaml_PARSE_FLOW_MAPPING_KEY_STATE:\n\t\treturn yaml_parser_parse_flow_mapping_key(parser, event, false)\n\n\tcase yaml_PARSE_FLOW_MAPPING_VALUE_STATE:\n\t\treturn yaml_parser_parse_flow_mapping_value(parser, event, false)\n\n\tcase yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE:\n\t\treturn yaml_parser_parse_flow_mapping_value(parser, event, true)\n\n\tdefault:\n\t\tpanic(\"invalid parser state\")\n\t}\n}\n\n// Parse the production:\n// stream   ::= STREAM-START implicit_document? explicit_document* STREAM-END\n//              ************\nfunc yaml_parser_parse_stream_start(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ != yaml_STREAM_START_TOKEN {\n\t\treturn yaml_parser_set_parser_error(parser, \"did not find expected <stream-start>\", token.start_mark)\n\t}\n\tparser.state = yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_STREAM_START_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.end_mark,\n\t\tencoding:   token.encoding,\n\t}\n\tskip_token(parser)\n\treturn true\n}\n\n// Parse the productions:\n// implicit_document    ::= block_node DOCUMENT-END*\n//                          *\n// explicit_document    ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*\n//                          *************************\nfunc yaml_parser_parse_document_start(parser *yaml_parser_t, event *yaml_event_t, implicit bool) bool {\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\t// Parse extra document end indicators.\n\tif !implicit {\n\t\tfor token.typ == yaml_DOCUMENT_END_TOKEN {\n\t\t\tskip_token(parser)\n\t\t\ttoken = peek_token(parser)\n\t\t\tif token == nil {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\tif implicit && token.typ != yaml_VERSION_DIRECTIVE_TOKEN &&\n\t\ttoken.typ != yaml_TAG_DIRECTIVE_TOKEN &&\n\t\ttoken.typ != yaml_DOCUMENT_START_TOKEN &&\n\t\ttoken.typ != yaml_STREAM_END_TOKEN {\n\t\t// Parse an implicit document.\n\t\tif !yaml_parser_process_directives(parser, nil, nil) {\n\t\t\treturn false\n\t\t}\n\t\tparser.states = append(parser.states, yaml_PARSE_DOCUMENT_END_STATE)\n\t\tparser.state = yaml_PARSE_BLOCK_NODE_STATE\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_DOCUMENT_START_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\t\t}\n\n\t} else if token.typ != yaml_STREAM_END_TOKEN {\n\t\t// Parse an explicit document.\n\t\tvar version_directive *yaml_version_directive_t\n\t\tvar tag_directives []yaml_tag_directive_t\n\t\tstart_mark := token.start_mark\n\t\tif !yaml_parser_process_directives(parser, &version_directive, &tag_directives) {\n\t\t\treturn false\n\t\t}\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_DOCUMENT_START_TOKEN {\n\t\t\tyaml_parser_set_parser_error(parser,\n\t\t\t\t\"did not find expected <document start>\", token.start_mark)\n\t\t\treturn false\n\t\t}\n\t\tparser.states = append(parser.states, yaml_PARSE_DOCUMENT_END_STATE)\n\t\tparser.state = yaml_PARSE_DOCUMENT_CONTENT_STATE\n\t\tend_mark := token.end_mark\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:               yaml_DOCUMENT_START_EVENT,\n\t\t\tstart_mark:        start_mark,\n\t\t\tend_mark:          end_mark,\n\t\t\tversion_directive: version_directive,\n\t\t\ttag_directives:    tag_directives,\n\t\t\timplicit:          false,\n\t\t}\n\t\tskip_token(parser)\n\n\t} else {\n\t\t// Parse the stream end.\n\t\tparser.state = yaml_PARSE_END_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_STREAM_END_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\t\t}\n\t\tskip_token(parser)\n\t}\n\n\treturn true\n}\n\n// Parse the productions:\n// explicit_document    ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*\n//                                                    ***********\n//\nfunc yaml_parser_parse_document_content(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ == yaml_VERSION_DIRECTIVE_TOKEN ||\n\t\ttoken.typ == yaml_TAG_DIRECTIVE_TOKEN ||\n\t\ttoken.typ == yaml_DOCUMENT_START_TOKEN ||\n\t\ttoken.typ == yaml_DOCUMENT_END_TOKEN ||\n\t\ttoken.typ == yaml_STREAM_END_TOKEN {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\t\treturn yaml_parser_process_empty_scalar(parser, event,\n\t\t\ttoken.start_mark)\n\t}\n\treturn yaml_parser_parse_node(parser, event, true, false)\n}\n\n// Parse the productions:\n// implicit_document    ::= block_node DOCUMENT-END*\n//                                     *************\n// explicit_document    ::= DIRECTIVE* DOCUMENT-START block_node? DOCUMENT-END*\n//\nfunc yaml_parser_parse_document_end(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tstart_mark := token.start_mark\n\tend_mark := token.start_mark\n\n\timplicit := true\n\tif token.typ == yaml_DOCUMENT_END_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tskip_token(parser)\n\t\timplicit = false\n\t}\n\n\tparser.tag_directives = parser.tag_directives[:0]\n\n\tparser.state = yaml_PARSE_DOCUMENT_START_STATE\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_DOCUMENT_END_EVENT,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\timplicit:   implicit,\n\t}\n\treturn true\n}\n\n// Parse the productions:\n// block_node_or_indentless_sequence    ::=\n//                          ALIAS\n//                          *****\n//                          | properties (block_content | indentless_block_sequence)?\n//                            **********  *\n//                          | block_content | indentless_block_sequence\n//                            *\n// block_node           ::= ALIAS\n//                          *****\n//                          | properties block_content?\n//                            ********** *\n//                          | block_content\n//                            *\n// flow_node            ::= ALIAS\n//                          *****\n//                          | properties flow_content?\n//                            ********** *\n//                          | flow_content\n//                            *\n// properties           ::= TAG ANCHOR? | ANCHOR TAG?\n//                          *************************\n// block_content        ::= block_collection | flow_collection | SCALAR\n//                                                               ******\n// flow_content         ::= flow_collection | SCALAR\n//                                            ******\nfunc yaml_parser_parse_node(parser *yaml_parser_t, event *yaml_event_t, block, indentless_sequence bool) bool {\n\t//defer trace(\"yaml_parser_parse_node\", \"block:\", block, \"indentless_sequence:\", indentless_sequence)()\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ == yaml_ALIAS_TOKEN {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_ALIAS_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\t\t\tanchor:     token.value,\n\t\t}\n\t\tskip_token(parser)\n\t\treturn true\n\t}\n\n\tstart_mark := token.start_mark\n\tend_mark := token.start_mark\n\n\tvar tag_token bool\n\tvar tag_handle, tag_suffix, anchor []byte\n\tvar tag_mark yaml_mark_t\n\tif token.typ == yaml_ANCHOR_TOKEN {\n\t\tanchor = token.value\n\t\tstart_mark = token.start_mark\n\t\tend_mark = token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ == yaml_TAG_TOKEN {\n\t\t\ttag_token = true\n\t\t\ttag_handle = token.value\n\t\t\ttag_suffix = token.suffix\n\t\t\ttag_mark = token.start_mark\n\t\t\tend_mark = token.end_mark\n\t\t\tskip_token(parser)\n\t\t\ttoken = peek_token(parser)\n\t\t\tif token == nil {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t} else if token.typ == yaml_TAG_TOKEN {\n\t\ttag_token = true\n\t\ttag_handle = token.value\n\t\ttag_suffix = token.suffix\n\t\tstart_mark = token.start_mark\n\t\ttag_mark = token.start_mark\n\t\tend_mark = token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ == yaml_ANCHOR_TOKEN {\n\t\t\tanchor = token.value\n\t\t\tend_mark = token.end_mark\n\t\t\tskip_token(parser)\n\t\t\ttoken = peek_token(parser)\n\t\t\tif token == nil {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\tvar tag []byte\n\tif tag_token {\n\t\tif len(tag_handle) == 0 {\n\t\t\ttag = tag_suffix\n\t\t\ttag_suffix = nil\n\t\t} else {\n\t\t\tfor i := range parser.tag_directives {\n\t\t\t\tif bytes.Equal(parser.tag_directives[i].handle, tag_handle) {\n\t\t\t\t\ttag = append([]byte(nil), parser.tag_directives[i].prefix...)\n\t\t\t\t\ttag = append(tag, tag_suffix...)\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif len(tag) == 0 {\n\t\t\t\tyaml_parser_set_parser_error_context(parser,\n\t\t\t\t\t\"while parsing a node\", start_mark,\n\t\t\t\t\t\"found undefined tag handle\", tag_mark)\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\timplicit := len(tag) == 0\n\tif indentless_sequence && token.typ == yaml_BLOCK_ENTRY_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_SEQUENCE_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_BLOCK_SEQUENCE_STYLE),\n\t\t}\n\t\treturn true\n\t}\n\tif token.typ == yaml_SCALAR_TOKEN {\n\t\tvar plain_implicit, quoted_implicit bool\n\t\tend_mark = token.end_mark\n\t\tif (len(tag) == 0 && token.style == yaml_PLAIN_SCALAR_STYLE) || (len(tag) == 1 && tag[0] == '!') {\n\t\t\tplain_implicit = true\n\t\t} else if len(tag) == 0 {\n\t\t\tquoted_implicit = true\n\t\t}\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:             yaml_SCALAR_EVENT,\n\t\t\tstart_mark:      start_mark,\n\t\t\tend_mark:        end_mark,\n\t\t\tanchor:          anchor,\n\t\t\ttag:             tag,\n\t\t\tvalue:           token.value,\n\t\t\timplicit:        plain_implicit,\n\t\t\tquoted_implicit: quoted_implicit,\n\t\t\tstyle:           yaml_style_t(token.style),\n\t\t}\n\t\tskip_token(parser)\n\t\treturn true\n\t}\n\tif token.typ == yaml_FLOW_SEQUENCE_START_TOKEN {\n\t\t// [Go] Some of the events below can be merged as they differ only on style.\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_SEQUENCE_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_FLOW_SEQUENCE_STYLE),\n\t\t}\n\t\treturn true\n\t}\n\tif token.typ == yaml_FLOW_MAPPING_START_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_MAPPING_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_FLOW_MAPPING_STYLE),\n\t\t}\n\t\treturn true\n\t}\n\tif block && token.typ == yaml_BLOCK_SEQUENCE_START_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_SEQUENCE_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_BLOCK_SEQUENCE_STYLE),\n\t\t}\n\t\treturn true\n\t}\n\tif block && token.typ == yaml_BLOCK_MAPPING_START_TOKEN {\n\t\tend_mark = token.end_mark\n\t\tparser.state = yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_MAPPING_START_EVENT,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tanchor:     anchor,\n\t\t\ttag:        tag,\n\t\t\timplicit:   implicit,\n\t\t\tstyle:      yaml_style_t(yaml_BLOCK_MAPPING_STYLE),\n\t\t}\n\t\treturn true\n\t}\n\tif len(anchor) > 0 || len(tag) > 0 {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:             yaml_SCALAR_EVENT,\n\t\t\tstart_mark:      start_mark,\n\t\t\tend_mark:        end_mark,\n\t\t\tanchor:          anchor,\n\t\t\ttag:             tag,\n\t\t\timplicit:        implicit,\n\t\t\tquoted_implicit: false,\n\t\t\tstyle:           yaml_style_t(yaml_PLAIN_SCALAR_STYLE),\n\t\t}\n\t\treturn true\n\t}\n\n\tcontext := \"while parsing a flow node\"\n\tif block {\n\t\tcontext = \"while parsing a block node\"\n\t}\n\tyaml_parser_set_parser_error_context(parser, context, start_mark,\n\t\t\"did not find expected node content\", token.start_mark)\n\treturn false\n}\n\n// Parse the productions:\n// block_sequence ::= BLOCK-SEQUENCE-START (BLOCK-ENTRY block_node?)* BLOCK-END\n//                    ********************  *********** *             *********\n//\nfunc yaml_parser_parse_block_sequence_entry(parser *yaml_parser_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\ttoken := peek_token(parser)\n\t\tparser.marks = append(parser.marks, token.start_mark)\n\t\tskip_token(parser)\n\t}\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ == yaml_BLOCK_ENTRY_TOKEN {\n\t\tmark := token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_BLOCK_ENTRY_TOKEN && token.typ != yaml_BLOCK_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, true, false)\n\t\t} else {\n\t\t\tparser.state = yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE\n\t\t\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n\t\t}\n\t}\n\tif token.typ == yaml_BLOCK_END_TOKEN {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\t\tparser.marks = parser.marks[:len(parser.marks)-1]\n\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_SEQUENCE_END_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\t\t}\n\n\t\tskip_token(parser)\n\t\treturn true\n\t}\n\n\tcontext_mark := parser.marks[len(parser.marks)-1]\n\tparser.marks = parser.marks[:len(parser.marks)-1]\n\treturn yaml_parser_set_parser_error_context(parser,\n\t\t\"while parsing a block collection\", context_mark,\n\t\t\"did not find expected '-' indicator\", token.start_mark)\n}\n\n// Parse the productions:\n// indentless_sequence  ::= (BLOCK-ENTRY block_node?)+\n//                           *********** *\nfunc yaml_parser_parse_indentless_sequence_entry(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ == yaml_BLOCK_ENTRY_TOKEN {\n\t\tmark := token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_BLOCK_ENTRY_TOKEN &&\n\t\t\ttoken.typ != yaml_KEY_TOKEN &&\n\t\t\ttoken.typ != yaml_VALUE_TOKEN &&\n\t\t\ttoken.typ != yaml_BLOCK_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, true, false)\n\t\t}\n\t\tparser.state = yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE\n\t\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n\t}\n\tparser.state = parser.states[len(parser.states)-1]\n\tparser.states = parser.states[:len(parser.states)-1]\n\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_SEQUENCE_END_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.start_mark, // [Go] Shouldn't this be token.end_mark?\n\t}\n\treturn true\n}\n\n// Parse the productions:\n// block_mapping        ::= BLOCK-MAPPING_START\n//                          *******************\n//                          ((KEY block_node_or_indentless_sequence?)?\n//                            *** *\n//                          (VALUE block_node_or_indentless_sequence?)?)*\n//\n//                          BLOCK-END\n//                          *********\n//\nfunc yaml_parser_parse_block_mapping_key(parser *yaml_parser_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\ttoken := peek_token(parser)\n\t\tparser.marks = append(parser.marks, token.start_mark)\n\t\tskip_token(parser)\n\t}\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ == yaml_KEY_TOKEN {\n\t\tmark := token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_KEY_TOKEN &&\n\t\t\ttoken.typ != yaml_VALUE_TOKEN &&\n\t\t\ttoken.typ != yaml_BLOCK_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_BLOCK_MAPPING_VALUE_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, true, true)\n\t\t} else {\n\t\t\tparser.state = yaml_PARSE_BLOCK_MAPPING_VALUE_STATE\n\t\t\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n\t\t}\n\t} else if token.typ == yaml_BLOCK_END_TOKEN {\n\t\tparser.state = parser.states[len(parser.states)-1]\n\t\tparser.states = parser.states[:len(parser.states)-1]\n\t\tparser.marks = parser.marks[:len(parser.marks)-1]\n\t\t*event = yaml_event_t{\n\t\t\ttyp:        yaml_MAPPING_END_EVENT,\n\t\t\tstart_mark: token.start_mark,\n\t\t\tend_mark:   token.end_mark,\n\t\t}\n\t\tskip_token(parser)\n\t\treturn true\n\t}\n\n\tcontext_mark := parser.marks[len(parser.marks)-1]\n\tparser.marks = parser.marks[:len(parser.marks)-1]\n\treturn yaml_parser_set_parser_error_context(parser,\n\t\t\"while parsing a block mapping\", context_mark,\n\t\t\"did not find expected key\", token.start_mark)\n}\n\n// Parse the productions:\n// block_mapping        ::= BLOCK-MAPPING_START\n//\n//                          ((KEY block_node_or_indentless_sequence?)?\n//\n//                          (VALUE block_node_or_indentless_sequence?)?)*\n//                           ***** *\n//                          BLOCK-END\n//\n//\nfunc yaml_parser_parse_block_mapping_value(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ == yaml_VALUE_TOKEN {\n\t\tmark := token.end_mark\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_KEY_TOKEN &&\n\t\t\ttoken.typ != yaml_VALUE_TOKEN &&\n\t\t\ttoken.typ != yaml_BLOCK_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_BLOCK_MAPPING_KEY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, true, true)\n\t\t}\n\t\tparser.state = yaml_PARSE_BLOCK_MAPPING_KEY_STATE\n\t\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n\t}\n\tparser.state = yaml_PARSE_BLOCK_MAPPING_KEY_STATE\n\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n}\n\n// Parse the productions:\n// flow_sequence        ::= FLOW-SEQUENCE-START\n//                          *******************\n//                          (flow_sequence_entry FLOW-ENTRY)*\n//                           *                   **********\n//                          flow_sequence_entry?\n//                          *\n//                          FLOW-SEQUENCE-END\n//                          *****************\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                          *\n//\nfunc yaml_parser_parse_flow_sequence_entry(parser *yaml_parser_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\ttoken := peek_token(parser)\n\t\tparser.marks = append(parser.marks, token.start_mark)\n\t\tskip_token(parser)\n\t}\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ != yaml_FLOW_SEQUENCE_END_TOKEN {\n\t\tif !first {\n\t\t\tif token.typ == yaml_FLOW_ENTRY_TOKEN {\n\t\t\t\tskip_token(parser)\n\t\t\t\ttoken = peek_token(parser)\n\t\t\t\tif token == nil {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcontext_mark := parser.marks[len(parser.marks)-1]\n\t\t\t\tparser.marks = parser.marks[:len(parser.marks)-1]\n\t\t\t\treturn yaml_parser_set_parser_error_context(parser,\n\t\t\t\t\t\"while parsing a flow sequence\", context_mark,\n\t\t\t\t\t\"did not find expected ',' or ']'\", token.start_mark)\n\t\t\t}\n\t\t}\n\n\t\tif token.typ == yaml_KEY_TOKEN {\n\t\t\tparser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE\n\t\t\t*event = yaml_event_t{\n\t\t\t\ttyp:        yaml_MAPPING_START_EVENT,\n\t\t\t\tstart_mark: token.start_mark,\n\t\t\t\tend_mark:   token.end_mark,\n\t\t\t\timplicit:   true,\n\t\t\t\tstyle:      yaml_style_t(yaml_FLOW_MAPPING_STYLE),\n\t\t\t}\n\t\t\tskip_token(parser)\n\t\t\treturn true\n\t\t} else if token.typ != yaml_FLOW_SEQUENCE_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t}\n\t}\n\n\tparser.state = parser.states[len(parser.states)-1]\n\tparser.states = parser.states[:len(parser.states)-1]\n\tparser.marks = parser.marks[:len(parser.marks)-1]\n\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_SEQUENCE_END_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.end_mark,\n\t}\n\n\tskip_token(parser)\n\treturn true\n}\n\n//\n// Parse the productions:\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                                      *** *\n//\nfunc yaml_parser_parse_flow_sequence_entry_mapping_key(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ != yaml_VALUE_TOKEN &&\n\t\ttoken.typ != yaml_FLOW_ENTRY_TOKEN &&\n\t\ttoken.typ != yaml_FLOW_SEQUENCE_END_TOKEN {\n\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE)\n\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t}\n\tmark := token.end_mark\n\tskip_token(parser)\n\tparser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE\n\treturn yaml_parser_process_empty_scalar(parser, event, mark)\n}\n\n// Parse the productions:\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                                                      ***** *\n//\nfunc yaml_parser_parse_flow_sequence_entry_mapping_value(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif token.typ == yaml_VALUE_TOKEN {\n\t\tskip_token(parser)\n\t\ttoken := peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_FLOW_ENTRY_TOKEN && token.typ != yaml_FLOW_SEQUENCE_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t}\n\t}\n\tparser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE\n\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n}\n\n// Parse the productions:\n// flow_sequence_entry  ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                                                                      *\n//\nfunc yaml_parser_parse_flow_sequence_entry_mapping_end(parser *yaml_parser_t, event *yaml_event_t) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tparser.state = yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_MAPPING_END_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.start_mark, // [Go] Shouldn't this be end_mark?\n\t}\n\treturn true\n}\n\n// Parse the productions:\n// flow_mapping         ::= FLOW-MAPPING-START\n//                          ******************\n//                          (flow_mapping_entry FLOW-ENTRY)*\n//                           *                  **********\n//                          flow_mapping_entry?\n//                          ******************\n//                          FLOW-MAPPING-END\n//                          ****************\n// flow_mapping_entry   ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                          *           *** *\n//\nfunc yaml_parser_parse_flow_mapping_key(parser *yaml_parser_t, event *yaml_event_t, first bool) bool {\n\tif first {\n\t\ttoken := peek_token(parser)\n\t\tparser.marks = append(parser.marks, token.start_mark)\n\t\tskip_token(parser)\n\t}\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tif token.typ != yaml_FLOW_MAPPING_END_TOKEN {\n\t\tif !first {\n\t\t\tif token.typ == yaml_FLOW_ENTRY_TOKEN {\n\t\t\t\tskip_token(parser)\n\t\t\t\ttoken = peek_token(parser)\n\t\t\t\tif token == nil {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcontext_mark := parser.marks[len(parser.marks)-1]\n\t\t\t\tparser.marks = parser.marks[:len(parser.marks)-1]\n\t\t\t\treturn yaml_parser_set_parser_error_context(parser,\n\t\t\t\t\t\"while parsing a flow mapping\", context_mark,\n\t\t\t\t\t\"did not find expected ',' or '}'\", token.start_mark)\n\t\t\t}\n\t\t}\n\n\t\tif token.typ == yaml_KEY_TOKEN {\n\t\t\tskip_token(parser)\n\t\t\ttoken = peek_token(parser)\n\t\t\tif token == nil {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif token.typ != yaml_VALUE_TOKEN &&\n\t\t\t\ttoken.typ != yaml_FLOW_ENTRY_TOKEN &&\n\t\t\t\ttoken.typ != yaml_FLOW_MAPPING_END_TOKEN {\n\t\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_VALUE_STATE)\n\t\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t\t} else {\n\t\t\t\tparser.state = yaml_PARSE_FLOW_MAPPING_VALUE_STATE\n\t\t\t\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n\t\t\t}\n\t\t} else if token.typ != yaml_FLOW_MAPPING_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t}\n\t}\n\n\tparser.state = parser.states[len(parser.states)-1]\n\tparser.states = parser.states[:len(parser.states)-1]\n\tparser.marks = parser.marks[:len(parser.marks)-1]\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_MAPPING_END_EVENT,\n\t\tstart_mark: token.start_mark,\n\t\tend_mark:   token.end_mark,\n\t}\n\tskip_token(parser)\n\treturn true\n}\n\n// Parse the productions:\n// flow_mapping_entry   ::= flow_node | KEY flow_node? (VALUE flow_node?)?\n//                                   *                  ***** *\n//\nfunc yaml_parser_parse_flow_mapping_value(parser *yaml_parser_t, event *yaml_event_t, empty bool) bool {\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\tif empty {\n\t\tparser.state = yaml_PARSE_FLOW_MAPPING_KEY_STATE\n\t\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n\t}\n\tif token.typ == yaml_VALUE_TOKEN {\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t\tif token.typ != yaml_FLOW_ENTRY_TOKEN && token.typ != yaml_FLOW_MAPPING_END_TOKEN {\n\t\t\tparser.states = append(parser.states, yaml_PARSE_FLOW_MAPPING_KEY_STATE)\n\t\t\treturn yaml_parser_parse_node(parser, event, false, false)\n\t\t}\n\t}\n\tparser.state = yaml_PARSE_FLOW_MAPPING_KEY_STATE\n\treturn yaml_parser_process_empty_scalar(parser, event, token.start_mark)\n}\n\n// Generate an empty scalar event.\nfunc yaml_parser_process_empty_scalar(parser *yaml_parser_t, event *yaml_event_t, mark yaml_mark_t) bool {\n\t*event = yaml_event_t{\n\t\ttyp:        yaml_SCALAR_EVENT,\n\t\tstart_mark: mark,\n\t\tend_mark:   mark,\n\t\tvalue:      nil, // Empty\n\t\timplicit:   true,\n\t\tstyle:      yaml_style_t(yaml_PLAIN_SCALAR_STYLE),\n\t}\n\treturn true\n}\n\nvar default_tag_directives = []yaml_tag_directive_t{\n\t{[]byte(\"!\"), []byte(\"!\")},\n\t{[]byte(\"!!\"), []byte(\"tag:yaml.org,2002:\")},\n}\n\n// Parse directives.\nfunc yaml_parser_process_directives(parser *yaml_parser_t,\n\tversion_directive_ref **yaml_version_directive_t,\n\ttag_directives_ref *[]yaml_tag_directive_t) bool {\n\n\tvar version_directive *yaml_version_directive_t\n\tvar tag_directives []yaml_tag_directive_t\n\n\ttoken := peek_token(parser)\n\tif token == nil {\n\t\treturn false\n\t}\n\n\tfor token.typ == yaml_VERSION_DIRECTIVE_TOKEN || token.typ == yaml_TAG_DIRECTIVE_TOKEN {\n\t\tif token.typ == yaml_VERSION_DIRECTIVE_TOKEN {\n\t\t\tif version_directive != nil {\n\t\t\t\tyaml_parser_set_parser_error(parser,\n\t\t\t\t\t\"found duplicate %YAML directive\", token.start_mark)\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif token.major != 1 || token.minor != 1 {\n\t\t\t\tyaml_parser_set_parser_error(parser,\n\t\t\t\t\t\"found incompatible YAML document\", token.start_mark)\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tversion_directive = &yaml_version_directive_t{\n\t\t\t\tmajor: token.major,\n\t\t\t\tminor: token.minor,\n\t\t\t}\n\t\t} else if token.typ == yaml_TAG_DIRECTIVE_TOKEN {\n\t\t\tvalue := yaml_tag_directive_t{\n\t\t\t\thandle: token.value,\n\t\t\t\tprefix: token.prefix,\n\t\t\t}\n\t\t\tif !yaml_parser_append_tag_directive(parser, value, false, token.start_mark) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\ttag_directives = append(tag_directives, value)\n\t\t}\n\n\t\tskip_token(parser)\n\t\ttoken = peek_token(parser)\n\t\tif token == nil {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tfor i := range default_tag_directives {\n\t\tif !yaml_parser_append_tag_directive(parser, default_tag_directives[i], true, token.start_mark) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif version_directive_ref != nil {\n\t\t*version_directive_ref = version_directive\n\t}\n\tif tag_directives_ref != nil {\n\t\t*tag_directives_ref = tag_directives\n\t}\n\treturn true\n}\n\n// Append a tag directive to the directives stack.\nfunc yaml_parser_append_tag_directive(parser *yaml_parser_t, value yaml_tag_directive_t, allow_duplicates bool, mark yaml_mark_t) bool {\n\tfor i := range parser.tag_directives {\n\t\tif bytes.Equal(value.handle, parser.tag_directives[i].handle) {\n\t\t\tif allow_duplicates {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn yaml_parser_set_parser_error(parser, \"found duplicate %TAG directive\", mark)\n\t\t}\n\t}\n\n\t// [Go] I suspect the copy is unnecessary. This was likely done\n\t// because there was no way to track ownership of the data.\n\tvalue_copy := yaml_tag_directive_t{\n\t\thandle: make([]byte, len(value.handle)),\n\t\tprefix: make([]byte, len(value.prefix)),\n\t}\n\tcopy(value_copy.handle, value.handle)\n\tcopy(value_copy.prefix, value.prefix)\n\tparser.tag_directives = append(parser.tag_directives, value_copy)\n\treturn true\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/yaml/goyaml.v2/readerc.go",
    "content": "package yaml\n\nimport (\n\t\"io\"\n)\n\n// Set the reader error and return 0.\nfunc yaml_parser_set_reader_error(parser *yaml_parser_t, problem string, offset int, value int) bool {\n\tparser.error = yaml_READER_ERROR\n\tparser.problem = problem\n\tparser.problem_offset = offset\n\tparser.problem_value = value\n\treturn false\n}\n\n// Byte order marks.\nconst (\n\tbom_UTF8    = \"\\xef\\xbb\\xbf\"\n\tbom_UTF16LE = \"\\xff\\xfe\"\n\tbom_UTF16BE = \"\\xfe\\xff\"\n)\n\n// Determine the input stream encoding by checking the BOM symbol. If no BOM is\n// found, the UTF-8 encoding is assumed. Return 1 on success, 0 on failure.\nfunc yaml_parser_determine_encoding(parser *yaml_parser_t) bool {\n\t// Ensure that we had enough bytes in the raw buffer.\n\tfor !parser.eof && len(parser.raw_buffer)-parser.raw_buffer_pos < 3 {\n\t\tif !yaml_parser_update_raw_buffer(parser) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Determine the encoding.\n\tbuf := parser.raw_buffer\n\tpos := parser.raw_buffer_pos\n\tavail := len(buf) - pos\n\tif avail >= 2 && buf[pos] == bom_UTF16LE[0] && buf[pos+1] == bom_UTF16LE[1] {\n\t\tparser.encoding = yaml_UTF16LE_ENCODING\n\t\tparser.raw_buffer_pos += 2\n\t\tparser.offset += 2\n\t} else if avail >= 2 && buf[pos] == bom_UTF16BE[0] && buf[pos+1] == bom_UTF16BE[1] {\n\t\tparser.encoding = yaml_UTF16BE_ENCODING\n\t\tparser.raw_buffer_pos += 2\n\t\tparser.offset += 2\n\t} else if avail >= 3 && buf[pos] == bom_UTF8[0] && buf[pos+1] == bom_UTF8[1] && buf[pos+2] == bom_UTF8[2] {\n\t\tparser.encoding = yaml_UTF8_ENCODING\n\t\tparser.raw_buffer_pos += 3\n\t\tparser.offset += 3\n\t} else {\n\t\tparser.encoding = yaml_UTF8_ENCODING\n\t}\n\treturn true\n}\n\n// Update the raw buffer.\nfunc yaml_parser_update_raw_buffer(parser *yaml_parser_t) bool {\n\tsize_read := 0\n\n\t// Return if the raw buffer is full.\n\tif parser.raw_buffer_pos == 0 && len(parser.raw_buffer) == cap(parser.raw_buffer) {\n\t\treturn true\n\t}\n\n\t// Return on EOF.\n\tif parser.eof {\n\t\treturn true\n\t}\n\n\t// Move the remaining bytes in the raw buffer to the beginning.\n\tif parser.raw_buffer_pos > 0 && parser.raw_buffer_pos < len(parser.raw_buffer) {\n\t\tcopy(parser.raw_buffer, parser.raw_buffer[parser.raw_buffer_pos:])\n\t}\n\tparser.raw_buffer = parser.raw_buffer[:len(parser.raw_buffer)-parser.raw_buffer_pos]\n\tparser.raw_buffer_pos = 0\n\n\t// Call the read handler to fill the buffer.\n\tsize_read, err := parser.read_handler(parser, parser.raw_buffer[len(parser.raw_buffer):cap(parser.raw_buffer)])\n\tparser.raw_buffer = parser.raw_buffer[:len(parser.raw_buffer)+size_read]\n\tif err == io.EOF {\n\t\tparser.eof = true\n\t} else if err != nil {\n\t\treturn yaml_parser_set_reader_error(parser, \"input error: \"+err.Error(), parser.offset, -1)\n\t}\n\treturn true\n}\n\n// Ensure that the buffer contains at least `length` characters.\n// Return true on success, false on failure.\n//\n// The length is supposed to be significantly less that the buffer size.\nfunc yaml_parser_update_buffer(parser *yaml_parser_t, length int) bool {\n\tif parser.read_handler == nil {\n\t\tpanic(\"read handler must be set\")\n\t}\n\n\t// [Go] This function was changed to guarantee the requested length size at EOF.\n\t// The fact we need to do this is pretty awful, but the description above implies\n\t// for that to be the case, and there are tests \n\n\t// If the EOF flag is set and the raw buffer is empty, do nothing.\n\tif parser.eof && parser.raw_buffer_pos == len(parser.raw_buffer) {\n\t\t// [Go] ACTUALLY! Read the documentation of this function above.\n\t\t// This is just broken. To return true, we need to have the\n\t\t// given length in the buffer. Not doing that means every single\n\t\t// check that calls this function to make sure the buffer has a\n\t\t// given length is Go) panicking; or C) accessing invalid memory.\n\t\t//return true\n\t}\n\n\t// Return if the buffer contains enough characters.\n\tif parser.unread >= length {\n\t\treturn true\n\t}\n\n\t// Determine the input encoding if it is not known yet.\n\tif parser.encoding == yaml_ANY_ENCODING {\n\t\tif !yaml_parser_determine_encoding(parser) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Move the unread characters to the beginning of the buffer.\n\tbuffer_len := len(parser.buffer)\n\tif parser.buffer_pos > 0 && parser.buffer_pos < buffer_len {\n\t\tcopy(parser.buffer, parser.buffer[parser.buffer_pos:])\n\t\tbuffer_len -= parser.buffer_pos\n\t\tparser.buffer_pos = 0\n\t} else if parser.buffer_pos == buffer_len {\n\t\tbuffer_len = 0\n\t\tparser.buffer_pos = 0\n\t}\n\n\t// Open the whole buffer for writing, and cut it before returning.\n\tparser.buffer = parser.buffer[:cap(parser.buffer)]\n\n\t// Fill the buffer until it has enough characters.\n\tfirst := true\n\tfor parser.unread < length {\n\n\t\t// Fill the raw buffer if necessary.\n\t\tif !first || parser.raw_buffer_pos == len(parser.raw_buffer) {\n\t\t\tif !yaml_parser_update_raw_buffer(parser) {\n\t\t\t\tparser.buffer = parser.buffer[:buffer_len]\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tfirst = false\n\n\t\t// Decode the raw buffer.\n\tinner:\n\t\tfor parser.raw_buffer_pos != len(parser.raw_buffer) {\n\t\t\tvar value rune\n\t\t\tvar width int\n\n\t\t\traw_unread := len(parser.raw_buffer) - parser.raw_buffer_pos\n\n\t\t\t// Decode the next character.\n\t\t\tswitch parser.encoding {\n\t\t\tcase yaml_UTF8_ENCODING:\n\t\t\t\t// Decode a UTF-8 character.  Check RFC 3629\n\t\t\t\t// (http://www.ietf.org/rfc/rfc3629.txt) for more details.\n\t\t\t\t//\n\t\t\t\t// The following table (taken from the RFC) is used for\n\t\t\t\t// decoding.\n\t\t\t\t//\n\t\t\t\t//    Char. number range |        UTF-8 octet sequence\n\t\t\t\t//      (hexadecimal)    |              (binary)\n\t\t\t\t//   --------------------+------------------------------------\n\t\t\t\t//   0000 0000-0000 007F | 0xxxxxxx\n\t\t\t\t//   0000 0080-0000 07FF | 110xxxxx 10xxxxxx\n\t\t\t\t//   0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx\n\t\t\t\t//   0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx\n\t\t\t\t//\n\t\t\t\t// Additionally, the characters in the range 0xD800-0xDFFF\n\t\t\t\t// are prohibited as they are reserved for use with UTF-16\n\t\t\t\t// surrogate pairs.\n\n\t\t\t\t// Determine the length of the UTF-8 sequence.\n\t\t\t\toctet := parser.raw_buffer[parser.raw_buffer_pos]\n\t\t\t\tswitch {\n\t\t\t\tcase octet&0x80 == 0x00:\n\t\t\t\t\twidth = 1\n\t\t\t\tcase octet&0xE0 == 0xC0:\n\t\t\t\t\twidth = 2\n\t\t\t\tcase octet&0xF0 == 0xE0:\n\t\t\t\t\twidth = 3\n\t\t\t\tcase octet&0xF8 == 0xF0:\n\t\t\t\t\twidth = 4\n\t\t\t\tdefault:\n\t\t\t\t\t// The leading octet is invalid.\n\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\"invalid leading UTF-8 octet\",\n\t\t\t\t\t\tparser.offset, int(octet))\n\t\t\t\t}\n\n\t\t\t\t// Check if the raw buffer contains an incomplete character.\n\t\t\t\tif width > raw_unread {\n\t\t\t\t\tif parser.eof {\n\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\"incomplete UTF-8 octet sequence\",\n\t\t\t\t\t\t\tparser.offset, -1)\n\t\t\t\t\t}\n\t\t\t\t\tbreak inner\n\t\t\t\t}\n\n\t\t\t\t// Decode the leading octet.\n\t\t\t\tswitch {\n\t\t\t\tcase octet&0x80 == 0x00:\n\t\t\t\t\tvalue = rune(octet & 0x7F)\n\t\t\t\tcase octet&0xE0 == 0xC0:\n\t\t\t\t\tvalue = rune(octet & 0x1F)\n\t\t\t\tcase octet&0xF0 == 0xE0:\n\t\t\t\t\tvalue = rune(octet & 0x0F)\n\t\t\t\tcase octet&0xF8 == 0xF0:\n\t\t\t\t\tvalue = rune(octet & 0x07)\n\t\t\t\tdefault:\n\t\t\t\t\tvalue = 0\n\t\t\t\t}\n\n\t\t\t\t// Check and decode the trailing octets.\n\t\t\t\tfor k := 1; k < width; k++ {\n\t\t\t\t\toctet = parser.raw_buffer[parser.raw_buffer_pos+k]\n\n\t\t\t\t\t// Check if the octet is valid.\n\t\t\t\t\tif (octet & 0xC0) != 0x80 {\n\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\"invalid trailing UTF-8 octet\",\n\t\t\t\t\t\t\tparser.offset+k, int(octet))\n\t\t\t\t\t}\n\n\t\t\t\t\t// Decode the octet.\n\t\t\t\t\tvalue = (value << 6) + rune(octet&0x3F)\n\t\t\t\t}\n\n\t\t\t\t// Check the length of the sequence against the value.\n\t\t\t\tswitch {\n\t\t\t\tcase width == 1:\n\t\t\t\tcase width == 2 && value >= 0x80:\n\t\t\t\tcase width == 3 && value >= 0x800:\n\t\t\t\tcase width == 4 && value >= 0x10000:\n\t\t\t\tdefault:\n\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\"invalid length of a UTF-8 sequence\",\n\t\t\t\t\t\tparser.offset, -1)\n\t\t\t\t}\n\n\t\t\t\t// Check the range of the value.\n\t\t\t\tif value >= 0xD800 && value <= 0xDFFF || value > 0x10FFFF {\n\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\"invalid Unicode character\",\n\t\t\t\t\t\tparser.offset, int(value))\n\t\t\t\t}\n\n\t\t\tcase yaml_UTF16LE_ENCODING, yaml_UTF16BE_ENCODING:\n\t\t\t\tvar low, high int\n\t\t\t\tif parser.encoding == yaml_UTF16LE_ENCODING {\n\t\t\t\t\tlow, high = 0, 1\n\t\t\t\t} else {\n\t\t\t\t\tlow, high = 1, 0\n\t\t\t\t}\n\n\t\t\t\t// The UTF-16 encoding is not as simple as one might\n\t\t\t\t// naively think.  Check RFC 2781\n\t\t\t\t// (http://www.ietf.org/rfc/rfc2781.txt).\n\t\t\t\t//\n\t\t\t\t// Normally, two subsequent bytes describe a Unicode\n\t\t\t\t// character.  However a special technique (called a\n\t\t\t\t// surrogate pair) is used for specifying character\n\t\t\t\t// values larger than 0xFFFF.\n\t\t\t\t//\n\t\t\t\t// A surrogate pair consists of two pseudo-characters:\n\t\t\t\t//      high surrogate area (0xD800-0xDBFF)\n\t\t\t\t//      low surrogate area (0xDC00-0xDFFF)\n\t\t\t\t//\n\t\t\t\t// The following formulas are used for decoding\n\t\t\t\t// and encoding characters using surrogate pairs:\n\t\t\t\t//\n\t\t\t\t//  U  = U' + 0x10000   (0x01 00 00 <= U <= 0x10 FF FF)\n\t\t\t\t//  U' = yyyyyyyyyyxxxxxxxxxx   (0 <= U' <= 0x0F FF FF)\n\t\t\t\t//  W1 = 110110yyyyyyyyyy\n\t\t\t\t//  W2 = 110111xxxxxxxxxx\n\t\t\t\t//\n\t\t\t\t// where U is the character value, W1 is the high surrogate\n\t\t\t\t// area, W2 is the low surrogate area.\n\n\t\t\t\t// Check for incomplete UTF-16 character.\n\t\t\t\tif raw_unread < 2 {\n\t\t\t\t\tif parser.eof {\n\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\"incomplete UTF-16 character\",\n\t\t\t\t\t\t\tparser.offset, -1)\n\t\t\t\t\t}\n\t\t\t\t\tbreak inner\n\t\t\t\t}\n\n\t\t\t\t// Get the character.\n\t\t\t\tvalue = rune(parser.raw_buffer[parser.raw_buffer_pos+low]) +\n\t\t\t\t\t(rune(parser.raw_buffer[parser.raw_buffer_pos+high]) << 8)\n\n\t\t\t\t// Check for unexpected low surrogate area.\n\t\t\t\tif value&0xFC00 == 0xDC00 {\n\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\"unexpected low surrogate area\",\n\t\t\t\t\t\tparser.offset, int(value))\n\t\t\t\t}\n\n\t\t\t\t// Check for a high surrogate area.\n\t\t\t\tif value&0xFC00 == 0xD800 {\n\t\t\t\t\twidth = 4\n\n\t\t\t\t\t// Check for incomplete surrogate pair.\n\t\t\t\t\tif raw_unread < 4 {\n\t\t\t\t\t\tif parser.eof {\n\t\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\t\"incomplete UTF-16 surrogate pair\",\n\t\t\t\t\t\t\t\tparser.offset, -1)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak inner\n\t\t\t\t\t}\n\n\t\t\t\t\t// Get the next character.\n\t\t\t\t\tvalue2 := rune(parser.raw_buffer[parser.raw_buffer_pos+low+2]) +\n\t\t\t\t\t\t(rune(parser.raw_buffer[parser.raw_buffer_pos+high+2]) << 8)\n\n\t\t\t\t\t// Check for a low surrogate area.\n\t\t\t\t\tif value2&0xFC00 != 0xDC00 {\n\t\t\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\t\t\"expected low surrogate area\",\n\t\t\t\t\t\t\tparser.offset+2, int(value2))\n\t\t\t\t\t}\n\n\t\t\t\t\t// Generate the value of the surrogate pair.\n\t\t\t\t\tvalue = 0x10000 + ((value & 0x3FF) << 10) + (value2 & 0x3FF)\n\t\t\t\t} else {\n\t\t\t\t\twidth = 2\n\t\t\t\t}\n\n\t\t\tdefault:\n\t\t\t\tpanic(\"impossible\")\n\t\t\t}\n\n\t\t\t// Check if the character is in the allowed range:\n\t\t\t//      #x9 | #xA | #xD | [#x20-#x7E]               (8 bit)\n\t\t\t//      | #x85 | [#xA0-#xD7FF] | [#xE000-#xFFFD]    (16 bit)\n\t\t\t//      | [#x10000-#x10FFFF]                        (32 bit)\n\t\t\tswitch {\n\t\t\tcase value == 0x09:\n\t\t\tcase value == 0x0A:\n\t\t\tcase value == 0x0D:\n\t\t\tcase value >= 0x20 && value <= 0x7E:\n\t\t\tcase value == 0x85:\n\t\t\tcase value >= 0xA0 && value <= 0xD7FF:\n\t\t\tcase value >= 0xE000 && value <= 0xFFFD:\n\t\t\tcase value >= 0x10000 && value <= 0x10FFFF:\n\t\t\tdefault:\n\t\t\t\treturn yaml_parser_set_reader_error(parser,\n\t\t\t\t\t\"control characters are not allowed\",\n\t\t\t\t\tparser.offset, int(value))\n\t\t\t}\n\n\t\t\t// Move the raw pointers.\n\t\t\tparser.raw_buffer_pos += width\n\t\t\tparser.offset += width\n\n\t\t\t// Finally put the character into the buffer.\n\t\t\tif value <= 0x7F {\n\t\t\t\t// 0000 0000-0000 007F . 0xxxxxxx\n\t\t\t\tparser.buffer[buffer_len+0] = byte(value)\n\t\t\t\tbuffer_len += 1\n\t\t\t} else if value <= 0x7FF {\n\t\t\t\t// 0000 0080-0000 07FF . 110xxxxx 10xxxxxx\n\t\t\t\tparser.buffer[buffer_len+0] = byte(0xC0 + (value >> 6))\n\t\t\t\tparser.buffer[buffer_len+1] = byte(0x80 + (value & 0x3F))\n\t\t\t\tbuffer_len += 2\n\t\t\t} else if value <= 0xFFFF {\n\t\t\t\t// 0000 0800-0000 FFFF . 1110xxxx 10xxxxxx 10xxxxxx\n\t\t\t\tparser.buffer[buffer_len+0] = byte(0xE0 + (value >> 12))\n\t\t\t\tparser.buffer[buffer_len+1] = byte(0x80 + ((value >> 6) & 0x3F))\n\t\t\t\tparser.buffer[buffer_len+2] = byte(0x80 + (value & 0x3F))\n\t\t\t\tbuffer_len += 3\n\t\t\t} else {\n\t\t\t\t// 0001 0000-0010 FFFF . 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx\n\t\t\t\tparser.buffer[buffer_len+0] = byte(0xF0 + (value >> 18))\n\t\t\t\tparser.buffer[buffer_len+1] = byte(0x80 + ((value >> 12) & 0x3F))\n\t\t\t\tparser.buffer[buffer_len+2] = byte(0x80 + ((value >> 6) & 0x3F))\n\t\t\t\tparser.buffer[buffer_len+3] = byte(0x80 + (value & 0x3F))\n\t\t\t\tbuffer_len += 4\n\t\t\t}\n\n\t\t\tparser.unread++\n\t\t}\n\n\t\t// On EOF, put NUL into the buffer and return.\n\t\tif parser.eof {\n\t\t\tparser.buffer[buffer_len] = 0\n\t\t\tbuffer_len++\n\t\t\tparser.unread++\n\t\t\tbreak\n\t\t}\n\t}\n\t// [Go] Read the documentation of this function above. To return true,\n\t// we need to have the given length in the buffer. Not doing that means\n\t// every single check that calls this function to make sure the buffer\n\t// has a given length is Go) panicking; or C) accessing invalid memory.\n\t// This happens here due to the EOF above breaking early.\n\tfor buffer_len < length {\n\t\tparser.buffer[buffer_len] = 0\n\t\tbuffer_len++\n\t}\n\tparser.buffer = parser.buffer[:buffer_len]\n\treturn true\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/yaml/goyaml.v2/resolve.go",
    "content": "package yaml\n\nimport (\n\t\"encoding/base64\"\n\t\"math\"\n\t\"regexp\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n)\n\ntype resolveMapItem struct {\n\tvalue interface{}\n\ttag   string\n}\n\nvar resolveTable = make([]byte, 256)\nvar resolveMap = make(map[string]resolveMapItem)\n\nfunc init() {\n\tt := resolveTable\n\tt[int('+')] = 'S' // Sign\n\tt[int('-')] = 'S'\n\tfor _, c := range \"0123456789\" {\n\t\tt[int(c)] = 'D' // Digit\n\t}\n\tfor _, c := range \"yYnNtTfFoO~\" {\n\t\tt[int(c)] = 'M' // In map\n\t}\n\tt[int('.')] = '.' // Float (potentially in map)\n\n\tvar resolveMapList = []struct {\n\t\tv   interface{}\n\t\ttag string\n\t\tl   []string\n\t}{\n\t\t{true, yaml_BOOL_TAG, []string{\"y\", \"Y\", \"yes\", \"Yes\", \"YES\"}},\n\t\t{true, yaml_BOOL_TAG, []string{\"true\", \"True\", \"TRUE\"}},\n\t\t{true, yaml_BOOL_TAG, []string{\"on\", \"On\", \"ON\"}},\n\t\t{false, yaml_BOOL_TAG, []string{\"n\", \"N\", \"no\", \"No\", \"NO\"}},\n\t\t{false, yaml_BOOL_TAG, []string{\"false\", \"False\", \"FALSE\"}},\n\t\t{false, yaml_BOOL_TAG, []string{\"off\", \"Off\", \"OFF\"}},\n\t\t{nil, yaml_NULL_TAG, []string{\"\", \"~\", \"null\", \"Null\", \"NULL\"}},\n\t\t{math.NaN(), yaml_FLOAT_TAG, []string{\".nan\", \".NaN\", \".NAN\"}},\n\t\t{math.Inf(+1), yaml_FLOAT_TAG, []string{\".inf\", \".Inf\", \".INF\"}},\n\t\t{math.Inf(+1), yaml_FLOAT_TAG, []string{\"+.inf\", \"+.Inf\", \"+.INF\"}},\n\t\t{math.Inf(-1), yaml_FLOAT_TAG, []string{\"-.inf\", \"-.Inf\", \"-.INF\"}},\n\t\t{\"<<\", yaml_MERGE_TAG, []string{\"<<\"}},\n\t}\n\n\tm := resolveMap\n\tfor _, item := range resolveMapList {\n\t\tfor _, s := range item.l {\n\t\t\tm[s] = resolveMapItem{item.v, item.tag}\n\t\t}\n\t}\n}\n\nconst longTagPrefix = \"tag:yaml.org,2002:\"\n\nfunc shortTag(tag string) string {\n\t// TODO This can easily be made faster and produce less garbage.\n\tif strings.HasPrefix(tag, longTagPrefix) {\n\t\treturn \"!!\" + tag[len(longTagPrefix):]\n\t}\n\treturn tag\n}\n\nfunc longTag(tag string) string {\n\tif strings.HasPrefix(tag, \"!!\") {\n\t\treturn longTagPrefix + tag[2:]\n\t}\n\treturn tag\n}\n\nfunc resolvableTag(tag string) bool {\n\tswitch tag {\n\tcase \"\", yaml_STR_TAG, yaml_BOOL_TAG, yaml_INT_TAG, yaml_FLOAT_TAG, yaml_NULL_TAG, yaml_TIMESTAMP_TAG:\n\t\treturn true\n\t}\n\treturn false\n}\n\nvar yamlStyleFloat = regexp.MustCompile(`^[-+]?(\\.[0-9]+|[0-9]+(\\.[0-9]*)?)([eE][-+]?[0-9]+)?$`)\n\nfunc resolve(tag string, in string) (rtag string, out interface{}) {\n\tif !resolvableTag(tag) {\n\t\treturn tag, in\n\t}\n\n\tdefer func() {\n\t\tswitch tag {\n\t\tcase \"\", rtag, yaml_STR_TAG, yaml_BINARY_TAG:\n\t\t\treturn\n\t\tcase yaml_FLOAT_TAG:\n\t\t\tif rtag == yaml_INT_TAG {\n\t\t\t\tswitch v := out.(type) {\n\t\t\t\tcase int64:\n\t\t\t\t\trtag = yaml_FLOAT_TAG\n\t\t\t\t\tout = float64(v)\n\t\t\t\t\treturn\n\t\t\t\tcase int:\n\t\t\t\t\trtag = yaml_FLOAT_TAG\n\t\t\t\t\tout = float64(v)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfailf(\"cannot decode %s `%s` as a %s\", shortTag(rtag), in, shortTag(tag))\n\t}()\n\n\t// Any data is accepted as a !!str or !!binary.\n\t// Otherwise, the prefix is enough of a hint about what it might be.\n\thint := byte('N')\n\tif in != \"\" {\n\t\thint = resolveTable[in[0]]\n\t}\n\tif hint != 0 && tag != yaml_STR_TAG && tag != yaml_BINARY_TAG {\n\t\t// Handle things we can lookup in a map.\n\t\tif item, ok := resolveMap[in]; ok {\n\t\t\treturn item.tag, item.value\n\t\t}\n\n\t\t// Base 60 floats are a bad idea, were dropped in YAML 1.2, and\n\t\t// are purposefully unsupported here. They're still quoted on\n\t\t// the way out for compatibility with other parser, though.\n\n\t\tswitch hint {\n\t\tcase 'M':\n\t\t\t// We've already checked the map above.\n\n\t\tcase '.':\n\t\t\t// Not in the map, so maybe a normal float.\n\t\t\tfloatv, err := strconv.ParseFloat(in, 64)\n\t\t\tif err == nil {\n\t\t\t\treturn yaml_FLOAT_TAG, floatv\n\t\t\t}\n\n\t\tcase 'D', 'S':\n\t\t\t// Int, float, or timestamp.\n\t\t\t// Only try values as a timestamp if the value is unquoted or there's an explicit\n\t\t\t// !!timestamp tag.\n\t\t\tif tag == \"\" || tag == yaml_TIMESTAMP_TAG {\n\t\t\t\tt, ok := parseTimestamp(in)\n\t\t\t\tif ok {\n\t\t\t\t\treturn yaml_TIMESTAMP_TAG, t\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tplain := strings.Replace(in, \"_\", \"\", -1)\n\t\t\tintv, err := strconv.ParseInt(plain, 0, 64)\n\t\t\tif err == nil {\n\t\t\t\tif intv == int64(int(intv)) {\n\t\t\t\t\treturn yaml_INT_TAG, int(intv)\n\t\t\t\t} else {\n\t\t\t\t\treturn yaml_INT_TAG, intv\n\t\t\t\t}\n\t\t\t}\n\t\t\tuintv, err := strconv.ParseUint(plain, 0, 64)\n\t\t\tif err == nil {\n\t\t\t\treturn yaml_INT_TAG, uintv\n\t\t\t}\n\t\t\tif yamlStyleFloat.MatchString(plain) {\n\t\t\t\tfloatv, err := strconv.ParseFloat(plain, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\treturn yaml_FLOAT_TAG, floatv\n\t\t\t\t}\n\t\t\t}\n\t\t\tif strings.HasPrefix(plain, \"0b\") {\n\t\t\t\tintv, err := strconv.ParseInt(plain[2:], 2, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\tif intv == int64(int(intv)) {\n\t\t\t\t\t\treturn yaml_INT_TAG, int(intv)\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn yaml_INT_TAG, intv\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tuintv, err := strconv.ParseUint(plain[2:], 2, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\treturn yaml_INT_TAG, uintv\n\t\t\t\t}\n\t\t\t} else if strings.HasPrefix(plain, \"-0b\") {\n\t\t\t\tintv, err := strconv.ParseInt(\"-\" + plain[3:], 2, 64)\n\t\t\t\tif err == nil {\n\t\t\t\t\tif true || intv == int64(int(intv)) {\n\t\t\t\t\t\treturn yaml_INT_TAG, int(intv)\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn yaml_INT_TAG, intv\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tdefault:\n\t\t\tpanic(\"resolveTable item not yet handled: \" + string(rune(hint)) + \" (with \" + in + \")\")\n\t\t}\n\t}\n\treturn yaml_STR_TAG, in\n}\n\n// encodeBase64 encodes s as base64 that is broken up into multiple lines\n// as appropriate for the resulting length.\nfunc encodeBase64(s string) string {\n\tconst lineLen = 70\n\tencLen := base64.StdEncoding.EncodedLen(len(s))\n\tlines := encLen/lineLen + 1\n\tbuf := make([]byte, encLen*2+lines)\n\tin := buf[0:encLen]\n\tout := buf[encLen:]\n\tbase64.StdEncoding.Encode(in, []byte(s))\n\tk := 0\n\tfor i := 0; i < len(in); i += lineLen {\n\t\tj := i + lineLen\n\t\tif j > len(in) {\n\t\t\tj = len(in)\n\t\t}\n\t\tk += copy(out[k:], in[i:j])\n\t\tif lines > 1 {\n\t\t\tout[k] = '\\n'\n\t\t\tk++\n\t\t}\n\t}\n\treturn string(out[:k])\n}\n\n// This is a subset of the formats allowed by the regular expression\n// defined at http://yaml.org/type/timestamp.html.\nvar allowedTimestampFormats = []string{\n\t\"2006-1-2T15:4:5.999999999Z07:00\", // RCF3339Nano with short date fields.\n\t\"2006-1-2t15:4:5.999999999Z07:00\", // RFC3339Nano with short date fields and lower-case \"t\".\n\t\"2006-1-2 15:4:5.999999999\",       // space separated with no time zone\n\t\"2006-1-2\",                        // date only\n\t// Notable exception: time.Parse cannot handle: \"2001-12-14 21:59:43.10 -5\"\n\t// from the set of examples.\n}\n\n// parseTimestamp parses s as a timestamp string and\n// returns the timestamp and reports whether it succeeded.\n// Timestamp formats are defined at http://yaml.org/type/timestamp.html\nfunc parseTimestamp(s string) (time.Time, bool) {\n\t// TODO write code to check all the formats supported by\n\t// http://yaml.org/type/timestamp.html instead of using time.Parse.\n\n\t// Quick check: all date formats start with YYYY-.\n\ti := 0\n\tfor ; i < len(s); i++ {\n\t\tif c := s[i]; c < '0' || c > '9' {\n\t\t\tbreak\n\t\t}\n\t}\n\tif i != 4 || i == len(s) || s[i] != '-' {\n\t\treturn time.Time{}, false\n\t}\n\tfor _, format := range allowedTimestampFormats {\n\t\tif t, err := time.Parse(format, s); err == nil {\n\t\t\treturn t, true\n\t\t}\n\t}\n\treturn time.Time{}, false\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/yaml/goyaml.v2/scannerc.go",
    "content": "package yaml\n\nimport (\n\t\"bytes\"\n\t\"fmt\"\n)\n\n// Introduction\n// ************\n//\n// The following notes assume that you are familiar with the YAML specification\n// (http://yaml.org/spec/1.2/spec.html).  We mostly follow it, although in\n// some cases we are less restrictive that it requires.\n//\n// The process of transforming a YAML stream into a sequence of events is\n// divided on two steps: Scanning and Parsing.\n//\n// The Scanner transforms the input stream into a sequence of tokens, while the\n// parser transform the sequence of tokens produced by the Scanner into a\n// sequence of parsing events.\n//\n// The Scanner is rather clever and complicated. The Parser, on the contrary,\n// is a straightforward implementation of a recursive-descendant parser (or,\n// LL(1) parser, as it is usually called).\n//\n// Actually there are two issues of Scanning that might be called \"clever\", the\n// rest is quite straightforward.  The issues are \"block collection start\" and\n// \"simple keys\".  Both issues are explained below in details.\n//\n// Here the Scanning step is explained and implemented.  We start with the list\n// of all the tokens produced by the Scanner together with short descriptions.\n//\n// Now, tokens:\n//\n//      STREAM-START(encoding)          # The stream start.\n//      STREAM-END                      # The stream end.\n//      VERSION-DIRECTIVE(major,minor)  # The '%YAML' directive.\n//      TAG-DIRECTIVE(handle,prefix)    # The '%TAG' directive.\n//      DOCUMENT-START                  # '---'\n//      DOCUMENT-END                    # '...'\n//      BLOCK-SEQUENCE-START            # Indentation increase denoting a block\n//      BLOCK-MAPPING-START             # sequence or a block mapping.\n//      BLOCK-END                       # Indentation decrease.\n//      FLOW-SEQUENCE-START             # '['\n//      FLOW-SEQUENCE-END               # ']'\n//      BLOCK-SEQUENCE-START            # '{'\n//      BLOCK-SEQUENCE-END              # '}'\n//      BLOCK-ENTRY                     # '-'\n//      FLOW-ENTRY                      # ','\n//      KEY                             # '?' or nothing (simple keys).\n//      VALUE                           # ':'\n//      ALIAS(anchor)                   # '*anchor'\n//      ANCHOR(anchor)                  # '&anchor'\n//      TAG(handle,suffix)              # '!handle!suffix'\n//      SCALAR(value,style)             # A scalar.\n//\n// The following two tokens are \"virtual\" tokens denoting the beginning and the\n// end of the stream:\n//\n//      STREAM-START(encoding)\n//      STREAM-END\n//\n// We pass the information about the input stream encoding with the\n// STREAM-START token.\n//\n// The next two tokens are responsible for tags:\n//\n//      VERSION-DIRECTIVE(major,minor)\n//      TAG-DIRECTIVE(handle,prefix)\n//\n// Example:\n//\n//      %YAML   1.1\n//      %TAG    !   !foo\n//      %TAG    !yaml!  tag:yaml.org,2002:\n//      ---\n//\n// The correspoding sequence of tokens:\n//\n//      STREAM-START(utf-8)\n//      VERSION-DIRECTIVE(1,1)\n//      TAG-DIRECTIVE(\"!\",\"!foo\")\n//      TAG-DIRECTIVE(\"!yaml\",\"tag:yaml.org,2002:\")\n//      DOCUMENT-START\n//      STREAM-END\n//\n// Note that the VERSION-DIRECTIVE and TAG-DIRECTIVE tokens occupy a whole\n// line.\n//\n// The document start and end indicators are represented by:\n//\n//      DOCUMENT-START\n//      DOCUMENT-END\n//\n// Note that if a YAML stream contains an implicit document (without '---'\n// and '...' indicators), no DOCUMENT-START and DOCUMENT-END tokens will be\n// produced.\n//\n// In the following examples, we present whole documents together with the\n// produced tokens.\n//\n//      1. An implicit document:\n//\n//          'a scalar'\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          SCALAR(\"a scalar\",single-quoted)\n//          STREAM-END\n//\n//      2. An explicit document:\n//\n//          ---\n//          'a scalar'\n//          ...\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          DOCUMENT-START\n//          SCALAR(\"a scalar\",single-quoted)\n//          DOCUMENT-END\n//          STREAM-END\n//\n//      3. Several documents in a stream:\n//\n//          'a scalar'\n//          ---\n//          'another scalar'\n//          ---\n//          'yet another scalar'\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          SCALAR(\"a scalar\",single-quoted)\n//          DOCUMENT-START\n//          SCALAR(\"another scalar\",single-quoted)\n//          DOCUMENT-START\n//          SCALAR(\"yet another scalar\",single-quoted)\n//          STREAM-END\n//\n// We have already introduced the SCALAR token above.  The following tokens are\n// used to describe aliases, anchors, tag, and scalars:\n//\n//      ALIAS(anchor)\n//      ANCHOR(anchor)\n//      TAG(handle,suffix)\n//      SCALAR(value,style)\n//\n// The following series of examples illustrate the usage of these tokens:\n//\n//      1. A recursive sequence:\n//\n//          &A [ *A ]\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          ANCHOR(\"A\")\n//          FLOW-SEQUENCE-START\n//          ALIAS(\"A\")\n//          FLOW-SEQUENCE-END\n//          STREAM-END\n//\n//      2. A tagged scalar:\n//\n//          !!float \"3.14\"  # A good approximation.\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          TAG(\"!!\",\"float\")\n//          SCALAR(\"3.14\",double-quoted)\n//          STREAM-END\n//\n//      3. Various scalar styles:\n//\n//          --- # Implicit empty plain scalars do not produce tokens.\n//          --- a plain scalar\n//          --- 'a single-quoted scalar'\n//          --- \"a double-quoted scalar\"\n//          --- |-\n//            a literal scalar\n//          --- >-\n//            a folded\n//            scalar\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          DOCUMENT-START\n//          DOCUMENT-START\n//          SCALAR(\"a plain scalar\",plain)\n//          DOCUMENT-START\n//          SCALAR(\"a single-quoted scalar\",single-quoted)\n//          DOCUMENT-START\n//          SCALAR(\"a double-quoted scalar\",double-quoted)\n//          DOCUMENT-START\n//          SCALAR(\"a literal scalar\",literal)\n//          DOCUMENT-START\n//          SCALAR(\"a folded scalar\",folded)\n//          STREAM-END\n//\n// Now it's time to review collection-related tokens. We will start with\n// flow collections:\n//\n//      FLOW-SEQUENCE-START\n//      FLOW-SEQUENCE-END\n//      FLOW-MAPPING-START\n//      FLOW-MAPPING-END\n//      FLOW-ENTRY\n//      KEY\n//      VALUE\n//\n// The tokens FLOW-SEQUENCE-START, FLOW-SEQUENCE-END, FLOW-MAPPING-START, and\n// FLOW-MAPPING-END represent the indicators '[', ']', '{', and '}'\n// correspondingly.  FLOW-ENTRY represent the ',' indicator.  Finally the\n// indicators '?' and ':', which are used for denoting mapping keys and values,\n// are represented by the KEY and VALUE tokens.\n//\n// The following examples show flow collections:\n//\n//      1. A flow sequence:\n//\n//          [item 1, item 2, item 3]\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          FLOW-SEQUENCE-START\n//          SCALAR(\"item 1\",plain)\n//          FLOW-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          FLOW-ENTRY\n//          SCALAR(\"item 3\",plain)\n//          FLOW-SEQUENCE-END\n//          STREAM-END\n//\n//      2. A flow mapping:\n//\n//          {\n//              a simple key: a value,  # Note that the KEY token is produced.\n//              ? a complex key: another value,\n//          }\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          FLOW-MAPPING-START\n//          KEY\n//          SCALAR(\"a simple key\",plain)\n//          VALUE\n//          SCALAR(\"a value\",plain)\n//          FLOW-ENTRY\n//          KEY\n//          SCALAR(\"a complex key\",plain)\n//          VALUE\n//          SCALAR(\"another value\",plain)\n//          FLOW-ENTRY\n//          FLOW-MAPPING-END\n//          STREAM-END\n//\n// A simple key is a key which is not denoted by the '?' indicator.  Note that\n// the Scanner still produce the KEY token whenever it encounters a simple key.\n//\n// For scanning block collections, the following tokens are used (note that we\n// repeat KEY and VALUE here):\n//\n//      BLOCK-SEQUENCE-START\n//      BLOCK-MAPPING-START\n//      BLOCK-END\n//      BLOCK-ENTRY\n//      KEY\n//      VALUE\n//\n// The tokens BLOCK-SEQUENCE-START and BLOCK-MAPPING-START denote indentation\n// increase that precedes a block collection (cf. the INDENT token in Python).\n// The token BLOCK-END denote indentation decrease that ends a block collection\n// (cf. the DEDENT token in Python).  However YAML has some syntax pecularities\n// that makes detections of these tokens more complex.\n//\n// The tokens BLOCK-ENTRY, KEY, and VALUE are used to represent the indicators\n// '-', '?', and ':' correspondingly.\n//\n// The following examples show how the tokens BLOCK-SEQUENCE-START,\n// BLOCK-MAPPING-START, and BLOCK-END are emitted by the Scanner:\n//\n//      1. Block sequences:\n//\n//          - item 1\n//          - item 2\n//          -\n//            - item 3.1\n//            - item 3.2\n//          -\n//            key 1: value 1\n//            key 2: value 2\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          BLOCK-ENTRY\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 3.1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 3.2\",plain)\n//          BLOCK-END\n//          BLOCK-ENTRY\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"key 1\",plain)\n//          VALUE\n//          SCALAR(\"value 1\",plain)\n//          KEY\n//          SCALAR(\"key 2\",plain)\n//          VALUE\n//          SCALAR(\"value 2\",plain)\n//          BLOCK-END\n//          BLOCK-END\n//          STREAM-END\n//\n//      2. Block mappings:\n//\n//          a simple key: a value   # The KEY token is produced here.\n//          ? a complex key\n//          : another value\n//          a mapping:\n//            key 1: value 1\n//            key 2: value 2\n//          a sequence:\n//            - item 1\n//            - item 2\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"a simple key\",plain)\n//          VALUE\n//          SCALAR(\"a value\",plain)\n//          KEY\n//          SCALAR(\"a complex key\",plain)\n//          VALUE\n//          SCALAR(\"another value\",plain)\n//          KEY\n//          SCALAR(\"a mapping\",plain)\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"key 1\",plain)\n//          VALUE\n//          SCALAR(\"value 1\",plain)\n//          KEY\n//          SCALAR(\"key 2\",plain)\n//          VALUE\n//          SCALAR(\"value 2\",plain)\n//          BLOCK-END\n//          KEY\n//          SCALAR(\"a sequence\",plain)\n//          VALUE\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          BLOCK-END\n//          BLOCK-END\n//          STREAM-END\n//\n// YAML does not always require to start a new block collection from a new\n// line.  If the current line contains only '-', '?', and ':' indicators, a new\n// block collection may start at the current line.  The following examples\n// illustrate this case:\n//\n//      1. Collections in a sequence:\n//\n//          - - item 1\n//            - item 2\n//          - key 1: value 1\n//            key 2: value 2\n//          - ? complex key\n//            : complex value\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          BLOCK-END\n//          BLOCK-ENTRY\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"key 1\",plain)\n//          VALUE\n//          SCALAR(\"value 1\",plain)\n//          KEY\n//          SCALAR(\"key 2\",plain)\n//          VALUE\n//          SCALAR(\"value 2\",plain)\n//          BLOCK-END\n//          BLOCK-ENTRY\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"complex key\")\n//          VALUE\n//          SCALAR(\"complex value\")\n//          BLOCK-END\n//          BLOCK-END\n//          STREAM-END\n//\n//      2. Collections in a mapping:\n//\n//          ? a sequence\n//          : - item 1\n//            - item 2\n//          ? a mapping\n//          : key 1: value 1\n//            key 2: value 2\n//\n//      Tokens:\n//\n//          STREAM-START(utf-8)\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"a sequence\",plain)\n//          VALUE\n//          BLOCK-SEQUENCE-START\n//          BLOCK-ENTRY\n//          SCALAR(\"item 1\",plain)\n//          BLOCK-ENTRY\n//          SCALAR(\"item 2\",plain)\n//          BLOCK-END\n//          KEY\n//          SCALAR(\"a mapping\",plain)\n//          VALUE\n//          BLOCK-MAPPING-START\n//          KEY\n//          SCALAR(\"key 1\",plain)\n//          VALUE\n//          SCALAR(\"value 1\",plain)\n//          KEY\n//          SCALAR(\"key 2\",plain)\n//          VALUE\n//          SCALAR(\"value 2\",plain)\n//          BLOCK-END\n//          BLOCK-END\n//          STREAM-END\n//\n// YAML also permits non-indented sequences if they are included into a block\n// mapping.  In this case, the token BLOCK-SEQUENCE-START is not produced:\n//\n//      key:\n//      - item 1    # BLOCK-SEQUENCE-START is NOT produced here.\n//      - item 2\n//\n// Tokens:\n//\n//      STREAM-START(utf-8)\n//      BLOCK-MAPPING-START\n//      KEY\n//      SCALAR(\"key\",plain)\n//      VALUE\n//      BLOCK-ENTRY\n//      SCALAR(\"item 1\",plain)\n//      BLOCK-ENTRY\n//      SCALAR(\"item 2\",plain)\n//      BLOCK-END\n//\n\n// Ensure that the buffer contains the required number of characters.\n// Return true on success, false on failure (reader error or memory error).\nfunc cache(parser *yaml_parser_t, length int) bool {\n\t// [Go] This was inlined: !cache(A, B) -> unread < B && !update(A, B)\n\treturn parser.unread >= length || yaml_parser_update_buffer(parser, length)\n}\n\n// Advance the buffer pointer.\nfunc skip(parser *yaml_parser_t) {\n\tparser.mark.index++\n\tparser.mark.column++\n\tparser.unread--\n\tparser.buffer_pos += width(parser.buffer[parser.buffer_pos])\n}\n\nfunc skip_line(parser *yaml_parser_t) {\n\tif is_crlf(parser.buffer, parser.buffer_pos) {\n\t\tparser.mark.index += 2\n\t\tparser.mark.column = 0\n\t\tparser.mark.line++\n\t\tparser.unread -= 2\n\t\tparser.buffer_pos += 2\n\t} else if is_break(parser.buffer, parser.buffer_pos) {\n\t\tparser.mark.index++\n\t\tparser.mark.column = 0\n\t\tparser.mark.line++\n\t\tparser.unread--\n\t\tparser.buffer_pos += width(parser.buffer[parser.buffer_pos])\n\t}\n}\n\n// Copy a character to a string buffer and advance pointers.\nfunc read(parser *yaml_parser_t, s []byte) []byte {\n\tw := width(parser.buffer[parser.buffer_pos])\n\tif w == 0 {\n\t\tpanic(\"invalid character sequence\")\n\t}\n\tif len(s) == 0 {\n\t\ts = make([]byte, 0, 32)\n\t}\n\tif w == 1 && len(s)+w <= cap(s) {\n\t\ts = s[:len(s)+1]\n\t\ts[len(s)-1] = parser.buffer[parser.buffer_pos]\n\t\tparser.buffer_pos++\n\t} else {\n\t\ts = append(s, parser.buffer[parser.buffer_pos:parser.buffer_pos+w]...)\n\t\tparser.buffer_pos += w\n\t}\n\tparser.mark.index++\n\tparser.mark.column++\n\tparser.unread--\n\treturn s\n}\n\n// Copy a line break character to a string buffer and advance pointers.\nfunc read_line(parser *yaml_parser_t, s []byte) []byte {\n\tbuf := parser.buffer\n\tpos := parser.buffer_pos\n\tswitch {\n\tcase buf[pos] == '\\r' && buf[pos+1] == '\\n':\n\t\t// CR LF . LF\n\t\ts = append(s, '\\n')\n\t\tparser.buffer_pos += 2\n\t\tparser.mark.index++\n\t\tparser.unread--\n\tcase buf[pos] == '\\r' || buf[pos] == '\\n':\n\t\t// CR|LF . LF\n\t\ts = append(s, '\\n')\n\t\tparser.buffer_pos += 1\n\tcase buf[pos] == '\\xC2' && buf[pos+1] == '\\x85':\n\t\t// NEL . LF\n\t\ts = append(s, '\\n')\n\t\tparser.buffer_pos += 2\n\tcase buf[pos] == '\\xE2' && buf[pos+1] == '\\x80' && (buf[pos+2] == '\\xA8' || buf[pos+2] == '\\xA9'):\n\t\t// LS|PS . LS|PS\n\t\ts = append(s, buf[parser.buffer_pos:pos+3]...)\n\t\tparser.buffer_pos += 3\n\tdefault:\n\t\treturn s\n\t}\n\tparser.mark.index++\n\tparser.mark.column = 0\n\tparser.mark.line++\n\tparser.unread--\n\treturn s\n}\n\n// Get the next token.\nfunc yaml_parser_scan(parser *yaml_parser_t, token *yaml_token_t) bool {\n\t// Erase the token object.\n\t*token = yaml_token_t{} // [Go] Is this necessary?\n\n\t// No tokens after STREAM-END or error.\n\tif parser.stream_end_produced || parser.error != yaml_NO_ERROR {\n\t\treturn true\n\t}\n\n\t// Ensure that the tokens queue contains enough tokens.\n\tif !parser.token_available {\n\t\tif !yaml_parser_fetch_more_tokens(parser) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Fetch the next token from the queue.\n\t*token = parser.tokens[parser.tokens_head]\n\tparser.tokens_head++\n\tparser.tokens_parsed++\n\tparser.token_available = false\n\n\tif token.typ == yaml_STREAM_END_TOKEN {\n\t\tparser.stream_end_produced = true\n\t}\n\treturn true\n}\n\n// Set the scanner error and return false.\nfunc yaml_parser_set_scanner_error(parser *yaml_parser_t, context string, context_mark yaml_mark_t, problem string) bool {\n\tparser.error = yaml_SCANNER_ERROR\n\tparser.context = context\n\tparser.context_mark = context_mark\n\tparser.problem = problem\n\tparser.problem_mark = parser.mark\n\treturn false\n}\n\nfunc yaml_parser_set_scanner_tag_error(parser *yaml_parser_t, directive bool, context_mark yaml_mark_t, problem string) bool {\n\tcontext := \"while parsing a tag\"\n\tif directive {\n\t\tcontext = \"while parsing a %TAG directive\"\n\t}\n\treturn yaml_parser_set_scanner_error(parser, context, context_mark, problem)\n}\n\nfunc trace(args ...interface{}) func() {\n\tpargs := append([]interface{}{\"+++\"}, args...)\n\tfmt.Println(pargs...)\n\tpargs = append([]interface{}{\"---\"}, args...)\n\treturn func() { fmt.Println(pargs...) }\n}\n\n// Ensure that the tokens queue contains at least one token which can be\n// returned to the Parser.\nfunc yaml_parser_fetch_more_tokens(parser *yaml_parser_t) bool {\n\t// While we need more tokens to fetch, do it.\n\tfor {\n\t\tif parser.tokens_head != len(parser.tokens) {\n\t\t\t// If queue is non-empty, check if any potential simple key may\n\t\t\t// occupy the head position.\n\t\t\thead_tok_idx, ok := parser.simple_keys_by_tok[parser.tokens_parsed]\n\t\t\tif !ok {\n\t\t\t\tbreak\n\t\t\t} else if valid, ok := yaml_simple_key_is_valid(parser, &parser.simple_keys[head_tok_idx]); !ok {\n\t\t\t\treturn false\n\t\t\t} else if !valid {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// Fetch the next token.\n\t\tif !yaml_parser_fetch_next_token(parser) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tparser.token_available = true\n\treturn true\n}\n\n// The dispatcher for token fetchers.\nfunc yaml_parser_fetch_next_token(parser *yaml_parser_t) bool {\n\t// Ensure that the buffer is initialized.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\t// Check if we just started scanning.  Fetch STREAM-START then.\n\tif !parser.stream_start_produced {\n\t\treturn yaml_parser_fetch_stream_start(parser)\n\t}\n\n\t// Eat whitespaces and comments until we reach the next token.\n\tif !yaml_parser_scan_to_next_token(parser) {\n\t\treturn false\n\t}\n\n\t// Check the indentation level against the current column.\n\tif !yaml_parser_unroll_indent(parser, parser.mark.column) {\n\t\treturn false\n\t}\n\n\t// Ensure that the buffer contains at least 4 characters.  4 is the length\n\t// of the longest indicators ('--- ' and '... ').\n\tif parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) {\n\t\treturn false\n\t}\n\n\t// Is it the end of the stream?\n\tif is_z(parser.buffer, parser.buffer_pos) {\n\t\treturn yaml_parser_fetch_stream_end(parser)\n\t}\n\n\t// Is it a directive?\n\tif parser.mark.column == 0 && parser.buffer[parser.buffer_pos] == '%' {\n\t\treturn yaml_parser_fetch_directive(parser)\n\t}\n\n\tbuf := parser.buffer\n\tpos := parser.buffer_pos\n\n\t// Is it the document start indicator?\n\tif parser.mark.column == 0 && buf[pos] == '-' && buf[pos+1] == '-' && buf[pos+2] == '-' && is_blankz(buf, pos+3) {\n\t\treturn yaml_parser_fetch_document_indicator(parser, yaml_DOCUMENT_START_TOKEN)\n\t}\n\n\t// Is it the document end indicator?\n\tif parser.mark.column == 0 && buf[pos] == '.' && buf[pos+1] == '.' && buf[pos+2] == '.' && is_blankz(buf, pos+3) {\n\t\treturn yaml_parser_fetch_document_indicator(parser, yaml_DOCUMENT_END_TOKEN)\n\t}\n\n\t// Is it the flow sequence start indicator?\n\tif buf[pos] == '[' {\n\t\treturn yaml_parser_fetch_flow_collection_start(parser, yaml_FLOW_SEQUENCE_START_TOKEN)\n\t}\n\n\t// Is it the flow mapping start indicator?\n\tif parser.buffer[parser.buffer_pos] == '{' {\n\t\treturn yaml_parser_fetch_flow_collection_start(parser, yaml_FLOW_MAPPING_START_TOKEN)\n\t}\n\n\t// Is it the flow sequence end indicator?\n\tif parser.buffer[parser.buffer_pos] == ']' {\n\t\treturn yaml_parser_fetch_flow_collection_end(parser,\n\t\t\tyaml_FLOW_SEQUENCE_END_TOKEN)\n\t}\n\n\t// Is it the flow mapping end indicator?\n\tif parser.buffer[parser.buffer_pos] == '}' {\n\t\treturn yaml_parser_fetch_flow_collection_end(parser,\n\t\t\tyaml_FLOW_MAPPING_END_TOKEN)\n\t}\n\n\t// Is it the flow entry indicator?\n\tif parser.buffer[parser.buffer_pos] == ',' {\n\t\treturn yaml_parser_fetch_flow_entry(parser)\n\t}\n\n\t// Is it the block entry indicator?\n\tif parser.buffer[parser.buffer_pos] == '-' && is_blankz(parser.buffer, parser.buffer_pos+1) {\n\t\treturn yaml_parser_fetch_block_entry(parser)\n\t}\n\n\t// Is it the key indicator?\n\tif parser.buffer[parser.buffer_pos] == '?' && (parser.flow_level > 0 || is_blankz(parser.buffer, parser.buffer_pos+1)) {\n\t\treturn yaml_parser_fetch_key(parser)\n\t}\n\n\t// Is it the value indicator?\n\tif parser.buffer[parser.buffer_pos] == ':' && (parser.flow_level > 0 || is_blankz(parser.buffer, parser.buffer_pos+1)) {\n\t\treturn yaml_parser_fetch_value(parser)\n\t}\n\n\t// Is it an alias?\n\tif parser.buffer[parser.buffer_pos] == '*' {\n\t\treturn yaml_parser_fetch_anchor(parser, yaml_ALIAS_TOKEN)\n\t}\n\n\t// Is it an anchor?\n\tif parser.buffer[parser.buffer_pos] == '&' {\n\t\treturn yaml_parser_fetch_anchor(parser, yaml_ANCHOR_TOKEN)\n\t}\n\n\t// Is it a tag?\n\tif parser.buffer[parser.buffer_pos] == '!' {\n\t\treturn yaml_parser_fetch_tag(parser)\n\t}\n\n\t// Is it a literal scalar?\n\tif parser.buffer[parser.buffer_pos] == '|' && parser.flow_level == 0 {\n\t\treturn yaml_parser_fetch_block_scalar(parser, true)\n\t}\n\n\t// Is it a folded scalar?\n\tif parser.buffer[parser.buffer_pos] == '>' && parser.flow_level == 0 {\n\t\treturn yaml_parser_fetch_block_scalar(parser, false)\n\t}\n\n\t// Is it a single-quoted scalar?\n\tif parser.buffer[parser.buffer_pos] == '\\'' {\n\t\treturn yaml_parser_fetch_flow_scalar(parser, true)\n\t}\n\n\t// Is it a double-quoted scalar?\n\tif parser.buffer[parser.buffer_pos] == '\"' {\n\t\treturn yaml_parser_fetch_flow_scalar(parser, false)\n\t}\n\n\t// Is it a plain scalar?\n\t//\n\t// A plain scalar may start with any non-blank characters except\n\t//\n\t//      '-', '?', ':', ',', '[', ']', '{', '}',\n\t//      '#', '&', '*', '!', '|', '>', '\\'', '\\\"',\n\t//      '%', '@', '`'.\n\t//\n\t// In the block context (and, for the '-' indicator, in the flow context\n\t// too), it may also start with the characters\n\t//\n\t//      '-', '?', ':'\n\t//\n\t// if it is followed by a non-space character.\n\t//\n\t// The last rule is more restrictive than the specification requires.\n\t// [Go] Make this logic more reasonable.\n\t//switch parser.buffer[parser.buffer_pos] {\n\t//case '-', '?', ':', ',', '?', '-', ',', ':', ']', '[', '}', '{', '&', '#', '!', '*', '>', '|', '\"', '\\'', '@', '%', '-', '`':\n\t//}\n\tif !(is_blankz(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == '-' ||\n\t\tparser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == ':' ||\n\t\tparser.buffer[parser.buffer_pos] == ',' || parser.buffer[parser.buffer_pos] == '[' ||\n\t\tparser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '{' ||\n\t\tparser.buffer[parser.buffer_pos] == '}' || parser.buffer[parser.buffer_pos] == '#' ||\n\t\tparser.buffer[parser.buffer_pos] == '&' || parser.buffer[parser.buffer_pos] == '*' ||\n\t\tparser.buffer[parser.buffer_pos] == '!' || parser.buffer[parser.buffer_pos] == '|' ||\n\t\tparser.buffer[parser.buffer_pos] == '>' || parser.buffer[parser.buffer_pos] == '\\'' ||\n\t\tparser.buffer[parser.buffer_pos] == '\"' || parser.buffer[parser.buffer_pos] == '%' ||\n\t\tparser.buffer[parser.buffer_pos] == '@' || parser.buffer[parser.buffer_pos] == '`') ||\n\t\t(parser.buffer[parser.buffer_pos] == '-' && !is_blank(parser.buffer, parser.buffer_pos+1)) ||\n\t\t(parser.flow_level == 0 &&\n\t\t\t(parser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == ':') &&\n\t\t\t!is_blankz(parser.buffer, parser.buffer_pos+1)) {\n\t\treturn yaml_parser_fetch_plain_scalar(parser)\n\t}\n\n\t// If we don't determine the token type so far, it is an error.\n\treturn yaml_parser_set_scanner_error(parser,\n\t\t\"while scanning for the next token\", parser.mark,\n\t\t\"found character that cannot start any token\")\n}\n\nfunc yaml_simple_key_is_valid(parser *yaml_parser_t, simple_key *yaml_simple_key_t) (valid, ok bool) {\n\tif !simple_key.possible {\n\t\treturn false, true\n\t}\n\n\t// The 1.2 specification says:\n\t//\n\t//     \"If the ? indicator is omitted, parsing needs to see past the\n\t//     implicit key to recognize it as such. To limit the amount of\n\t//     lookahead required, the “:” indicator must appear at most 1024\n\t//     Unicode characters beyond the start of the key. In addition, the key\n\t//     is restricted to a single line.\"\n\t//\n\tif simple_key.mark.line < parser.mark.line || simple_key.mark.index+1024 < parser.mark.index {\n\t\t// Check if the potential simple key to be removed is required.\n\t\tif simple_key.required {\n\t\t\treturn false, yaml_parser_set_scanner_error(parser,\n\t\t\t\t\"while scanning a simple key\", simple_key.mark,\n\t\t\t\t\"could not find expected ':'\")\n\t\t}\n\t\tsimple_key.possible = false\n\t\treturn false, true\n\t}\n\treturn true, true\n}\n\n// Check if a simple key may start at the current position and add it if\n// needed.\nfunc yaml_parser_save_simple_key(parser *yaml_parser_t) bool {\n\t// A simple key is required at the current position if the scanner is in\n\t// the block context and the current column coincides with the indentation\n\t// level.\n\n\trequired := parser.flow_level == 0 && parser.indent == parser.mark.column\n\n\t//\n\t// If the current position may start a simple key, save it.\n\t//\n\tif parser.simple_key_allowed {\n\t\tsimple_key := yaml_simple_key_t{\n\t\t\tpossible:     true,\n\t\t\trequired:     required,\n\t\t\ttoken_number: parser.tokens_parsed + (len(parser.tokens) - parser.tokens_head),\n\t\t\tmark:         parser.mark,\n\t\t}\n\n\t\tif !yaml_parser_remove_simple_key(parser) {\n\t\t\treturn false\n\t\t}\n\t\tparser.simple_keys[len(parser.simple_keys)-1] = simple_key\n\t\tparser.simple_keys_by_tok[simple_key.token_number] = len(parser.simple_keys) - 1\n\t}\n\treturn true\n}\n\n// Remove a potential simple key at the current flow level.\nfunc yaml_parser_remove_simple_key(parser *yaml_parser_t) bool {\n\ti := len(parser.simple_keys) - 1\n\tif parser.simple_keys[i].possible {\n\t\t// If the key is required, it is an error.\n\t\tif parser.simple_keys[i].required {\n\t\t\treturn yaml_parser_set_scanner_error(parser,\n\t\t\t\t\"while scanning a simple key\", parser.simple_keys[i].mark,\n\t\t\t\t\"could not find expected ':'\")\n\t\t}\n\t\t// Remove the key from the stack.\n\t\tparser.simple_keys[i].possible = false\n\t\tdelete(parser.simple_keys_by_tok, parser.simple_keys[i].token_number)\n\t}\n\treturn true\n}\n\n// max_flow_level limits the flow_level\nconst max_flow_level = 10000\n\n// Increase the flow level and resize the simple key list if needed.\nfunc yaml_parser_increase_flow_level(parser *yaml_parser_t) bool {\n\t// Reset the simple key on the next level.\n\tparser.simple_keys = append(parser.simple_keys, yaml_simple_key_t{\n\t\tpossible:     false,\n\t\trequired:     false,\n\t\ttoken_number: parser.tokens_parsed + (len(parser.tokens) - parser.tokens_head),\n\t\tmark:         parser.mark,\n\t})\n\n\t// Increase the flow level.\n\tparser.flow_level++\n\tif parser.flow_level > max_flow_level {\n\t\treturn yaml_parser_set_scanner_error(parser,\n\t\t\t\"while increasing flow level\", parser.simple_keys[len(parser.simple_keys)-1].mark,\n\t\t\tfmt.Sprintf(\"exceeded max depth of %d\", max_flow_level))\n\t}\n\treturn true\n}\n\n// Decrease the flow level.\nfunc yaml_parser_decrease_flow_level(parser *yaml_parser_t) bool {\n\tif parser.flow_level > 0 {\n\t\tparser.flow_level--\n\t\tlast := len(parser.simple_keys) - 1\n\t\tdelete(parser.simple_keys_by_tok, parser.simple_keys[last].token_number)\n\t\tparser.simple_keys = parser.simple_keys[:last]\n\t}\n\treturn true\n}\n\n// max_indents limits the indents stack size\nconst max_indents = 10000\n\n// Push the current indentation level to the stack and set the new level\n// the current column is greater than the indentation level.  In this case,\n// append or insert the specified token into the token queue.\nfunc yaml_parser_roll_indent(parser *yaml_parser_t, column, number int, typ yaml_token_type_t, mark yaml_mark_t) bool {\n\t// In the flow context, do nothing.\n\tif parser.flow_level > 0 {\n\t\treturn true\n\t}\n\n\tif parser.indent < column {\n\t\t// Push the current indentation level to the stack and set the new\n\t\t// indentation level.\n\t\tparser.indents = append(parser.indents, parser.indent)\n\t\tparser.indent = column\n\t\tif len(parser.indents) > max_indents {\n\t\t\treturn yaml_parser_set_scanner_error(parser,\n\t\t\t\t\"while increasing indent level\", parser.simple_keys[len(parser.simple_keys)-1].mark,\n\t\t\t\tfmt.Sprintf(\"exceeded max depth of %d\", max_indents))\n\t\t}\n\n\t\t// Create a token and insert it into the queue.\n\t\ttoken := yaml_token_t{\n\t\t\ttyp:        typ,\n\t\t\tstart_mark: mark,\n\t\t\tend_mark:   mark,\n\t\t}\n\t\tif number > -1 {\n\t\t\tnumber -= parser.tokens_parsed\n\t\t}\n\t\tyaml_insert_token(parser, number, &token)\n\t}\n\treturn true\n}\n\n// Pop indentation levels from the indents stack until the current level\n// becomes less or equal to the column.  For each indentation level, append\n// the BLOCK-END token.\nfunc yaml_parser_unroll_indent(parser *yaml_parser_t, column int) bool {\n\t// In the flow context, do nothing.\n\tif parser.flow_level > 0 {\n\t\treturn true\n\t}\n\n\t// Loop through the indentation levels in the stack.\n\tfor parser.indent > column {\n\t\t// Create a token and append it to the queue.\n\t\ttoken := yaml_token_t{\n\t\t\ttyp:        yaml_BLOCK_END_TOKEN,\n\t\t\tstart_mark: parser.mark,\n\t\t\tend_mark:   parser.mark,\n\t\t}\n\t\tyaml_insert_token(parser, -1, &token)\n\n\t\t// Pop the indentation level.\n\t\tparser.indent = parser.indents[len(parser.indents)-1]\n\t\tparser.indents = parser.indents[:len(parser.indents)-1]\n\t}\n\treturn true\n}\n\n// Initialize the scanner and produce the STREAM-START token.\nfunc yaml_parser_fetch_stream_start(parser *yaml_parser_t) bool {\n\n\t// Set the initial indentation.\n\tparser.indent = -1\n\n\t// Initialize the simple key stack.\n\tparser.simple_keys = append(parser.simple_keys, yaml_simple_key_t{})\n\n\tparser.simple_keys_by_tok = make(map[int]int)\n\n\t// A simple key is allowed at the beginning of the stream.\n\tparser.simple_key_allowed = true\n\n\t// We have started.\n\tparser.stream_start_produced = true\n\n\t// Create the STREAM-START token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_STREAM_START_TOKEN,\n\t\tstart_mark: parser.mark,\n\t\tend_mark:   parser.mark,\n\t\tencoding:   parser.encoding,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the STREAM-END token and shut down the scanner.\nfunc yaml_parser_fetch_stream_end(parser *yaml_parser_t) bool {\n\n\t// Force new line.\n\tif parser.mark.column != 0 {\n\t\tparser.mark.column = 0\n\t\tparser.mark.line++\n\t}\n\n\t// Reset the indentation level.\n\tif !yaml_parser_unroll_indent(parser, -1) {\n\t\treturn false\n\t}\n\n\t// Reset simple keys.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\tparser.simple_key_allowed = false\n\n\t// Create the STREAM-END token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_STREAM_END_TOKEN,\n\t\tstart_mark: parser.mark,\n\t\tend_mark:   parser.mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce a VERSION-DIRECTIVE or TAG-DIRECTIVE token.\nfunc yaml_parser_fetch_directive(parser *yaml_parser_t) bool {\n\t// Reset the indentation level.\n\tif !yaml_parser_unroll_indent(parser, -1) {\n\t\treturn false\n\t}\n\n\t// Reset simple keys.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\tparser.simple_key_allowed = false\n\n\t// Create the YAML-DIRECTIVE or TAG-DIRECTIVE token.\n\ttoken := yaml_token_t{}\n\tif !yaml_parser_scan_directive(parser, &token) {\n\t\treturn false\n\t}\n\t// Append the token to the queue.\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the DOCUMENT-START or DOCUMENT-END token.\nfunc yaml_parser_fetch_document_indicator(parser *yaml_parser_t, typ yaml_token_type_t) bool {\n\t// Reset the indentation level.\n\tif !yaml_parser_unroll_indent(parser, -1) {\n\t\treturn false\n\t}\n\n\t// Reset simple keys.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\tparser.simple_key_allowed = false\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\n\tskip(parser)\n\tskip(parser)\n\tskip(parser)\n\n\tend_mark := parser.mark\n\n\t// Create the DOCUMENT-START or DOCUMENT-END token.\n\ttoken := yaml_token_t{\n\t\ttyp:        typ,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\t// Append the token to the queue.\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the FLOW-SEQUENCE-START or FLOW-MAPPING-START token.\nfunc yaml_parser_fetch_flow_collection_start(parser *yaml_parser_t, typ yaml_token_type_t) bool {\n\t// The indicators '[' and '{' may start a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Increase the flow level.\n\tif !yaml_parser_increase_flow_level(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key may follow the indicators '[' and '{'.\n\tparser.simple_key_allowed = true\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the FLOW-SEQUENCE-START of FLOW-MAPPING-START token.\n\ttoken := yaml_token_t{\n\t\ttyp:        typ,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\t// Append the token to the queue.\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the FLOW-SEQUENCE-END or FLOW-MAPPING-END token.\nfunc yaml_parser_fetch_flow_collection_end(parser *yaml_parser_t, typ yaml_token_type_t) bool {\n\t// Reset any potential simple key on the current flow level.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Decrease the flow level.\n\tif !yaml_parser_decrease_flow_level(parser) {\n\t\treturn false\n\t}\n\n\t// No simple keys after the indicators ']' and '}'.\n\tparser.simple_key_allowed = false\n\n\t// Consume the token.\n\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the FLOW-SEQUENCE-END of FLOW-MAPPING-END token.\n\ttoken := yaml_token_t{\n\t\ttyp:        typ,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\t// Append the token to the queue.\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the FLOW-ENTRY token.\nfunc yaml_parser_fetch_flow_entry(parser *yaml_parser_t) bool {\n\t// Reset any potential simple keys on the current flow level.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Simple keys are allowed after ','.\n\tparser.simple_key_allowed = true\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the FLOW-ENTRY token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_FLOW_ENTRY_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the BLOCK-ENTRY token.\nfunc yaml_parser_fetch_block_entry(parser *yaml_parser_t) bool {\n\t// Check if the scanner is in the block context.\n\tif parser.flow_level == 0 {\n\t\t// Check if we are allowed to start a new entry.\n\t\tif !parser.simple_key_allowed {\n\t\t\treturn yaml_parser_set_scanner_error(parser, \"\", parser.mark,\n\t\t\t\t\"block sequence entries are not allowed in this context\")\n\t\t}\n\t\t// Add the BLOCK-SEQUENCE-START token if needed.\n\t\tif !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_SEQUENCE_START_TOKEN, parser.mark) {\n\t\t\treturn false\n\t\t}\n\t} else {\n\t\t// It is an error for the '-' indicator to occur in the flow context,\n\t\t// but we let the Parser detect and report about it because the Parser\n\t\t// is able to point to the context.\n\t}\n\n\t// Reset any potential simple keys on the current flow level.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Simple keys are allowed after '-'.\n\tparser.simple_key_allowed = true\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the BLOCK-ENTRY token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_BLOCK_ENTRY_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the KEY token.\nfunc yaml_parser_fetch_key(parser *yaml_parser_t) bool {\n\n\t// In the block context, additional checks are required.\n\tif parser.flow_level == 0 {\n\t\t// Check if we are allowed to start a new key (not nessesary simple).\n\t\tif !parser.simple_key_allowed {\n\t\t\treturn yaml_parser_set_scanner_error(parser, \"\", parser.mark,\n\t\t\t\t\"mapping keys are not allowed in this context\")\n\t\t}\n\t\t// Add the BLOCK-MAPPING-START token if needed.\n\t\tif !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_MAPPING_START_TOKEN, parser.mark) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Reset any potential simple keys on the current flow level.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// Simple keys are allowed after '?' in the block context.\n\tparser.simple_key_allowed = parser.flow_level == 0\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the KEY token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_KEY_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the VALUE token.\nfunc yaml_parser_fetch_value(parser *yaml_parser_t) bool {\n\n\tsimple_key := &parser.simple_keys[len(parser.simple_keys)-1]\n\n\t// Have we found a simple key?\n\tif valid, ok := yaml_simple_key_is_valid(parser, simple_key); !ok {\n\t\treturn false\n\n\t} else if valid {\n\n\t\t// Create the KEY token and insert it into the queue.\n\t\ttoken := yaml_token_t{\n\t\t\ttyp:        yaml_KEY_TOKEN,\n\t\t\tstart_mark: simple_key.mark,\n\t\t\tend_mark:   simple_key.mark,\n\t\t}\n\t\tyaml_insert_token(parser, simple_key.token_number-parser.tokens_parsed, &token)\n\n\t\t// In the block context, we may need to add the BLOCK-MAPPING-START token.\n\t\tif !yaml_parser_roll_indent(parser, simple_key.mark.column,\n\t\t\tsimple_key.token_number,\n\t\t\tyaml_BLOCK_MAPPING_START_TOKEN, simple_key.mark) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Remove the simple key.\n\t\tsimple_key.possible = false\n\t\tdelete(parser.simple_keys_by_tok, simple_key.token_number)\n\n\t\t// A simple key cannot follow another simple key.\n\t\tparser.simple_key_allowed = false\n\n\t} else {\n\t\t// The ':' indicator follows a complex key.\n\n\t\t// In the block context, extra checks are required.\n\t\tif parser.flow_level == 0 {\n\n\t\t\t// Check if we are allowed to start a complex value.\n\t\t\tif !parser.simple_key_allowed {\n\t\t\t\treturn yaml_parser_set_scanner_error(parser, \"\", parser.mark,\n\t\t\t\t\t\"mapping values are not allowed in this context\")\n\t\t\t}\n\n\t\t\t// Add the BLOCK-MAPPING-START token if needed.\n\t\t\tif !yaml_parser_roll_indent(parser, parser.mark.column, -1, yaml_BLOCK_MAPPING_START_TOKEN, parser.mark) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Simple keys after ':' are allowed in the block context.\n\t\tparser.simple_key_allowed = parser.flow_level == 0\n\t}\n\n\t// Consume the token.\n\tstart_mark := parser.mark\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create the VALUE token and append it to the queue.\n\ttoken := yaml_token_t{\n\t\ttyp:        yaml_VALUE_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the ALIAS or ANCHOR token.\nfunc yaml_parser_fetch_anchor(parser *yaml_parser_t, typ yaml_token_type_t) bool {\n\t// An anchor or an alias could be a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key cannot follow an anchor or an alias.\n\tparser.simple_key_allowed = false\n\n\t// Create the ALIAS or ANCHOR token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_anchor(parser, &token, typ) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the TAG token.\nfunc yaml_parser_fetch_tag(parser *yaml_parser_t) bool {\n\t// A tag could be a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key cannot follow a tag.\n\tparser.simple_key_allowed = false\n\n\t// Create the TAG token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_tag(parser, &token) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the SCALAR(...,literal) or SCALAR(...,folded) tokens.\nfunc yaml_parser_fetch_block_scalar(parser *yaml_parser_t, literal bool) bool {\n\t// Remove any potential simple keys.\n\tif !yaml_parser_remove_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key may follow a block scalar.\n\tparser.simple_key_allowed = true\n\n\t// Create the SCALAR token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_block_scalar(parser, &token, literal) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the SCALAR(...,single-quoted) or SCALAR(...,double-quoted) tokens.\nfunc yaml_parser_fetch_flow_scalar(parser *yaml_parser_t, single bool) bool {\n\t// A plain scalar could be a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key cannot follow a flow scalar.\n\tparser.simple_key_allowed = false\n\n\t// Create the SCALAR token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_flow_scalar(parser, &token, single) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Produce the SCALAR(...,plain) token.\nfunc yaml_parser_fetch_plain_scalar(parser *yaml_parser_t) bool {\n\t// A plain scalar could be a simple key.\n\tif !yaml_parser_save_simple_key(parser) {\n\t\treturn false\n\t}\n\n\t// A simple key cannot follow a flow scalar.\n\tparser.simple_key_allowed = false\n\n\t// Create the SCALAR token and append it to the queue.\n\tvar token yaml_token_t\n\tif !yaml_parser_scan_plain_scalar(parser, &token) {\n\t\treturn false\n\t}\n\tyaml_insert_token(parser, -1, &token)\n\treturn true\n}\n\n// Eat whitespaces and comments until the next token is found.\nfunc yaml_parser_scan_to_next_token(parser *yaml_parser_t) bool {\n\n\t// Until the next token is not found.\n\tfor {\n\t\t// Allow the BOM mark to start a line.\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\tif parser.mark.column == 0 && is_bom(parser.buffer, parser.buffer_pos) {\n\t\t\tskip(parser)\n\t\t}\n\n\t\t// Eat whitespaces.\n\t\t// Tabs are allowed:\n\t\t//  - in the flow context\n\t\t//  - in the block context, but not at the beginning of the line or\n\t\t//  after '-', '?', or ':' (complex value).\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\n\t\tfor parser.buffer[parser.buffer_pos] == ' ' || ((parser.flow_level > 0 || !parser.simple_key_allowed) && parser.buffer[parser.buffer_pos] == '\\t') {\n\t\t\tskip(parser)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Eat a comment until a line break.\n\t\tif parser.buffer[parser.buffer_pos] == '#' {\n\t\t\tfor !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\t\t\tskip(parser)\n\t\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// If it is a line break, eat it.\n\t\tif is_break(parser.buffer, parser.buffer_pos) {\n\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tskip_line(parser)\n\n\t\t\t// In the block context, a new line may start a simple key.\n\t\t\tif parser.flow_level == 0 {\n\t\t\t\tparser.simple_key_allowed = true\n\t\t\t}\n\t\t} else {\n\t\t\tbreak // We have found a token.\n\t\t}\n\t}\n\n\treturn true\n}\n\n// Scan a YAML-DIRECTIVE or TAG-DIRECTIVE token.\n//\n// Scope:\n//      %YAML    1.1    # a comment \\n\n//      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n//      %TAG    !yaml!  tag:yaml.org,2002:  \\n\n//      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n//\nfunc yaml_parser_scan_directive(parser *yaml_parser_t, token *yaml_token_t) bool {\n\t// Eat '%'.\n\tstart_mark := parser.mark\n\tskip(parser)\n\n\t// Scan the directive name.\n\tvar name []byte\n\tif !yaml_parser_scan_directive_name(parser, start_mark, &name) {\n\t\treturn false\n\t}\n\n\t// Is it a YAML directive?\n\tif bytes.Equal(name, []byte(\"YAML\")) {\n\t\t// Scan the VERSION directive value.\n\t\tvar major, minor int8\n\t\tif !yaml_parser_scan_version_directive_value(parser, start_mark, &major, &minor) {\n\t\t\treturn false\n\t\t}\n\t\tend_mark := parser.mark\n\n\t\t// Create a VERSION-DIRECTIVE token.\n\t\t*token = yaml_token_t{\n\t\t\ttyp:        yaml_VERSION_DIRECTIVE_TOKEN,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tmajor:      major,\n\t\t\tminor:      minor,\n\t\t}\n\n\t\t// Is it a TAG directive?\n\t} else if bytes.Equal(name, []byte(\"TAG\")) {\n\t\t// Scan the TAG directive value.\n\t\tvar handle, prefix []byte\n\t\tif !yaml_parser_scan_tag_directive_value(parser, start_mark, &handle, &prefix) {\n\t\t\treturn false\n\t\t}\n\t\tend_mark := parser.mark\n\n\t\t// Create a TAG-DIRECTIVE token.\n\t\t*token = yaml_token_t{\n\t\t\ttyp:        yaml_TAG_DIRECTIVE_TOKEN,\n\t\t\tstart_mark: start_mark,\n\t\t\tend_mark:   end_mark,\n\t\t\tvalue:      handle,\n\t\t\tprefix:     prefix,\n\t\t}\n\n\t\t// Unknown directive.\n\t} else {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a directive\",\n\t\t\tstart_mark, \"found unknown directive name\")\n\t\treturn false\n\t}\n\n\t// Eat the rest of the line including any comments.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tif parser.buffer[parser.buffer_pos] == '#' {\n\t\tfor !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\t\tskip(parser)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check if we are at the end of the line.\n\tif !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a directive\",\n\t\t\tstart_mark, \"did not find expected comment or line break\")\n\t\treturn false\n\t}\n\n\t// Eat a line break.\n\tif is_break(parser.buffer, parser.buffer_pos) {\n\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\treturn false\n\t\t}\n\t\tskip_line(parser)\n\t}\n\n\treturn true\n}\n\n// Scan the directive name.\n//\n// Scope:\n//      %YAML   1.1     # a comment \\n\n//       ^^^^\n//      %TAG    !yaml!  tag:yaml.org,2002:  \\n\n//       ^^^\n//\nfunc yaml_parser_scan_directive_name(parser *yaml_parser_t, start_mark yaml_mark_t, name *[]byte) bool {\n\t// Consume the directive name.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\tvar s []byte\n\tfor is_alpha(parser.buffer, parser.buffer_pos) {\n\t\ts = read(parser, s)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Check if the name is empty.\n\tif len(s) == 0 {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a directive\",\n\t\t\tstart_mark, \"could not find expected directive name\")\n\t\treturn false\n\t}\n\n\t// Check for an blank character after the name.\n\tif !is_blankz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a directive\",\n\t\t\tstart_mark, \"found unexpected non-alphabetical character\")\n\t\treturn false\n\t}\n\t*name = s\n\treturn true\n}\n\n// Scan the value of VERSION-DIRECTIVE.\n//\n// Scope:\n//      %YAML   1.1     # a comment \\n\n//           ^^^^^^\nfunc yaml_parser_scan_version_directive_value(parser *yaml_parser_t, start_mark yaml_mark_t, major, minor *int8) bool {\n\t// Eat whitespaces.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Consume the major version number.\n\tif !yaml_parser_scan_version_directive_number(parser, start_mark, major) {\n\t\treturn false\n\t}\n\n\t// Eat '.'.\n\tif parser.buffer[parser.buffer_pos] != '.' {\n\t\treturn yaml_parser_set_scanner_error(parser, \"while scanning a %YAML directive\",\n\t\t\tstart_mark, \"did not find expected digit or '.' character\")\n\t}\n\n\tskip(parser)\n\n\t// Consume the minor version number.\n\tif !yaml_parser_scan_version_directive_number(parser, start_mark, minor) {\n\t\treturn false\n\t}\n\treturn true\n}\n\nconst max_number_length = 2\n\n// Scan the version number of VERSION-DIRECTIVE.\n//\n// Scope:\n//      %YAML   1.1     # a comment \\n\n//              ^\n//      %YAML   1.1     # a comment \\n\n//                ^\nfunc yaml_parser_scan_version_directive_number(parser *yaml_parser_t, start_mark yaml_mark_t, number *int8) bool {\n\n\t// Repeat while the next character is digit.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tvar value, length int8\n\tfor is_digit(parser.buffer, parser.buffer_pos) {\n\t\t// Check if the number is too long.\n\t\tlength++\n\t\tif length > max_number_length {\n\t\t\treturn yaml_parser_set_scanner_error(parser, \"while scanning a %YAML directive\",\n\t\t\t\tstart_mark, \"found extremely long version number\")\n\t\t}\n\t\tvalue = value*10 + int8(as_digit(parser.buffer, parser.buffer_pos))\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Check if the number was present.\n\tif length == 0 {\n\t\treturn yaml_parser_set_scanner_error(parser, \"while scanning a %YAML directive\",\n\t\t\tstart_mark, \"did not find expected version number\")\n\t}\n\t*number = value\n\treturn true\n}\n\n// Scan the value of a TAG-DIRECTIVE token.\n//\n// Scope:\n//      %TAG    !yaml!  tag:yaml.org,2002:  \\n\n//          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n//\nfunc yaml_parser_scan_tag_directive_value(parser *yaml_parser_t, start_mark yaml_mark_t, handle, prefix *[]byte) bool {\n\tvar handle_value, prefix_value []byte\n\n\t// Eat whitespaces.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Scan a handle.\n\tif !yaml_parser_scan_tag_handle(parser, true, start_mark, &handle_value) {\n\t\treturn false\n\t}\n\n\t// Expect a whitespace.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tif !is_blank(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a %TAG directive\",\n\t\t\tstart_mark, \"did not find expected whitespace\")\n\t\treturn false\n\t}\n\n\t// Eat whitespaces.\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Scan a prefix.\n\tif !yaml_parser_scan_tag_uri(parser, true, nil, start_mark, &prefix_value) {\n\t\treturn false\n\t}\n\n\t// Expect a whitespace or line break.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tif !is_blankz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a %TAG directive\",\n\t\t\tstart_mark, \"did not find expected whitespace or line break\")\n\t\treturn false\n\t}\n\n\t*handle = handle_value\n\t*prefix = prefix_value\n\treturn true\n}\n\nfunc yaml_parser_scan_anchor(parser *yaml_parser_t, token *yaml_token_t, typ yaml_token_type_t) bool {\n\tvar s []byte\n\n\t// Eat the indicator character.\n\tstart_mark := parser.mark\n\tskip(parser)\n\n\t// Consume the value.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\tfor is_alpha(parser.buffer, parser.buffer_pos) {\n\t\ts = read(parser, s)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tend_mark := parser.mark\n\n\t/*\n\t * Check if length of the anchor is greater than 0 and it is followed by\n\t * a whitespace character or one of the indicators:\n\t *\n\t *      '?', ':', ',', ']', '}', '%', '@', '`'.\n\t */\n\n\tif len(s) == 0 ||\n\t\t!(is_blankz(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == '?' ||\n\t\t\tparser.buffer[parser.buffer_pos] == ':' || parser.buffer[parser.buffer_pos] == ',' ||\n\t\t\tparser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '}' ||\n\t\t\tparser.buffer[parser.buffer_pos] == '%' || parser.buffer[parser.buffer_pos] == '@' ||\n\t\t\tparser.buffer[parser.buffer_pos] == '`') {\n\t\tcontext := \"while scanning an alias\"\n\t\tif typ == yaml_ANCHOR_TOKEN {\n\t\t\tcontext = \"while scanning an anchor\"\n\t\t}\n\t\tyaml_parser_set_scanner_error(parser, context, start_mark,\n\t\t\t\"did not find expected alphabetic or numeric character\")\n\t\treturn false\n\t}\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        typ,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      s,\n\t}\n\n\treturn true\n}\n\n/*\n * Scan a TAG token.\n */\n\nfunc yaml_parser_scan_tag(parser *yaml_parser_t, token *yaml_token_t) bool {\n\tvar handle, suffix []byte\n\n\tstart_mark := parser.mark\n\n\t// Check if the tag is in the canonical form.\n\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\treturn false\n\t}\n\n\tif parser.buffer[parser.buffer_pos+1] == '<' {\n\t\t// Keep the handle as ''\n\n\t\t// Eat '!<'\n\t\tskip(parser)\n\t\tskip(parser)\n\n\t\t// Consume the tag value.\n\t\tif !yaml_parser_scan_tag_uri(parser, false, nil, start_mark, &suffix) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Check for '>' and eat it.\n\t\tif parser.buffer[parser.buffer_pos] != '>' {\n\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a tag\",\n\t\t\t\tstart_mark, \"did not find the expected '>'\")\n\t\t\treturn false\n\t\t}\n\n\t\tskip(parser)\n\t} else {\n\t\t// The tag has either the '!suffix' or the '!handle!suffix' form.\n\n\t\t// First, try to scan a handle.\n\t\tif !yaml_parser_scan_tag_handle(parser, false, start_mark, &handle) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Check if it is, indeed, handle.\n\t\tif handle[0] == '!' && len(handle) > 1 && handle[len(handle)-1] == '!' {\n\t\t\t// Scan the suffix now.\n\t\t\tif !yaml_parser_scan_tag_uri(parser, false, nil, start_mark, &suffix) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t} else {\n\t\t\t// It wasn't a handle after all.  Scan the rest of the tag.\n\t\t\tif !yaml_parser_scan_tag_uri(parser, false, handle, start_mark, &suffix) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Set the handle to '!'.\n\t\t\thandle = []byte{'!'}\n\n\t\t\t// A special case: the '!' tag.  Set the handle to '' and the\n\t\t\t// suffix to '!'.\n\t\t\tif len(suffix) == 0 {\n\t\t\t\thandle, suffix = suffix, handle\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check the character which ends the tag.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tif !is_blankz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a tag\",\n\t\t\tstart_mark, \"did not find expected whitespace or line break\")\n\t\treturn false\n\t}\n\n\tend_mark := parser.mark\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        yaml_TAG_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      handle,\n\t\tsuffix:     suffix,\n\t}\n\treturn true\n}\n\n// Scan a tag handle.\nfunc yaml_parser_scan_tag_handle(parser *yaml_parser_t, directive bool, start_mark yaml_mark_t, handle *[]byte) bool {\n\t// Check the initial '!' character.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tif parser.buffer[parser.buffer_pos] != '!' {\n\t\tyaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\tstart_mark, \"did not find expected '!'\")\n\t\treturn false\n\t}\n\n\tvar s []byte\n\n\t// Copy the '!' character.\n\ts = read(parser, s)\n\n\t// Copy all subsequent alphabetical and numerical characters.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tfor is_alpha(parser.buffer, parser.buffer_pos) {\n\t\ts = read(parser, s)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Check if the trailing character is '!' and copy it.\n\tif parser.buffer[parser.buffer_pos] == '!' {\n\t\ts = read(parser, s)\n\t} else {\n\t\t// It's either the '!' tag or not really a tag handle.  If it's a %TAG\n\t\t// directive, it's an error.  If it's a tag token, it must be a part of URI.\n\t\tif directive && string(s) != \"!\" {\n\t\t\tyaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\t\tstart_mark, \"did not find expected '!'\")\n\t\t\treturn false\n\t\t}\n\t}\n\n\t*handle = s\n\treturn true\n}\n\n// Scan a tag.\nfunc yaml_parser_scan_tag_uri(parser *yaml_parser_t, directive bool, head []byte, start_mark yaml_mark_t, uri *[]byte) bool {\n\t//size_t length = head ? strlen((char *)head) : 0\n\tvar s []byte\n\thasTag := len(head) > 0\n\n\t// Copy the head if needed.\n\t//\n\t// Note that we don't copy the leading '!' character.\n\tif len(head) > 1 {\n\t\ts = append(s, head[1:]...)\n\t}\n\n\t// Scan the tag.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\t// The set of characters that may appear in URI is as follows:\n\t//\n\t//      '0'-'9', 'A'-'Z', 'a'-'z', '_', '-', ';', '/', '?', ':', '@', '&',\n\t//      '=', '+', '$', ',', '.', '!', '~', '*', '\\'', '(', ')', '[', ']',\n\t//      '%'.\n\t// [Go] Convert this into more reasonable logic.\n\tfor is_alpha(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == ';' ||\n\t\tparser.buffer[parser.buffer_pos] == '/' || parser.buffer[parser.buffer_pos] == '?' ||\n\t\tparser.buffer[parser.buffer_pos] == ':' || parser.buffer[parser.buffer_pos] == '@' ||\n\t\tparser.buffer[parser.buffer_pos] == '&' || parser.buffer[parser.buffer_pos] == '=' ||\n\t\tparser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '$' ||\n\t\tparser.buffer[parser.buffer_pos] == ',' || parser.buffer[parser.buffer_pos] == '.' ||\n\t\tparser.buffer[parser.buffer_pos] == '!' || parser.buffer[parser.buffer_pos] == '~' ||\n\t\tparser.buffer[parser.buffer_pos] == '*' || parser.buffer[parser.buffer_pos] == '\\'' ||\n\t\tparser.buffer[parser.buffer_pos] == '(' || parser.buffer[parser.buffer_pos] == ')' ||\n\t\tparser.buffer[parser.buffer_pos] == '[' || parser.buffer[parser.buffer_pos] == ']' ||\n\t\tparser.buffer[parser.buffer_pos] == '%' {\n\t\t// Check if it is a URI-escape sequence.\n\t\tif parser.buffer[parser.buffer_pos] == '%' {\n\t\t\tif !yaml_parser_scan_uri_escapes(parser, directive, start_mark, &s) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t} else {\n\t\t\ts = read(parser, s)\n\t\t}\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\thasTag = true\n\t}\n\n\tif !hasTag {\n\t\tyaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\tstart_mark, \"did not find expected tag URI\")\n\t\treturn false\n\t}\n\t*uri = s\n\treturn true\n}\n\n// Decode an URI-escape sequence corresponding to a single UTF-8 character.\nfunc yaml_parser_scan_uri_escapes(parser *yaml_parser_t, directive bool, start_mark yaml_mark_t, s *[]byte) bool {\n\n\t// Decode the required number of characters.\n\tw := 1024\n\tfor w > 0 {\n\t\t// Check for a URI-escaped octet.\n\t\tif parser.unread < 3 && !yaml_parser_update_buffer(parser, 3) {\n\t\t\treturn false\n\t\t}\n\n\t\tif !(parser.buffer[parser.buffer_pos] == '%' &&\n\t\t\tis_hex(parser.buffer, parser.buffer_pos+1) &&\n\t\t\tis_hex(parser.buffer, parser.buffer_pos+2)) {\n\t\t\treturn yaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\t\tstart_mark, \"did not find URI escaped octet\")\n\t\t}\n\n\t\t// Get the octet.\n\t\toctet := byte((as_hex(parser.buffer, parser.buffer_pos+1) << 4) + as_hex(parser.buffer, parser.buffer_pos+2))\n\n\t\t// If it is the leading octet, determine the length of the UTF-8 sequence.\n\t\tif w == 1024 {\n\t\t\tw = width(octet)\n\t\t\tif w == 0 {\n\t\t\t\treturn yaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\t\t\tstart_mark, \"found an incorrect leading UTF-8 octet\")\n\t\t\t}\n\t\t} else {\n\t\t\t// Check if the trailing octet is correct.\n\t\t\tif octet&0xC0 != 0x80 {\n\t\t\t\treturn yaml_parser_set_scanner_tag_error(parser, directive,\n\t\t\t\t\tstart_mark, \"found an incorrect trailing UTF-8 octet\")\n\t\t\t}\n\t\t}\n\n\t\t// Copy the octet and move the pointers.\n\t\t*s = append(*s, octet)\n\t\tskip(parser)\n\t\tskip(parser)\n\t\tskip(parser)\n\t\tw--\n\t}\n\treturn true\n}\n\n// Scan a block scalar.\nfunc yaml_parser_scan_block_scalar(parser *yaml_parser_t, token *yaml_token_t, literal bool) bool {\n\t// Eat the indicator '|' or '>'.\n\tstart_mark := parser.mark\n\tskip(parser)\n\n\t// Scan the additional block scalar indicators.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\n\t// Check for a chomping indicator.\n\tvar chomping, increment int\n\tif parser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '-' {\n\t\t// Set the chomping method and eat the indicator.\n\t\tif parser.buffer[parser.buffer_pos] == '+' {\n\t\t\tchomping = +1\n\t\t} else {\n\t\t\tchomping = -1\n\t\t}\n\t\tskip(parser)\n\n\t\t// Check for an indentation indicator.\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\tif is_digit(parser.buffer, parser.buffer_pos) {\n\t\t\t// Check that the indentation is greater than 0.\n\t\t\tif parser.buffer[parser.buffer_pos] == '0' {\n\t\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a block scalar\",\n\t\t\t\t\tstart_mark, \"found an indentation indicator equal to 0\")\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// Get the indentation level and eat the indicator.\n\t\t\tincrement = as_digit(parser.buffer, parser.buffer_pos)\n\t\t\tskip(parser)\n\t\t}\n\n\t} else if is_digit(parser.buffer, parser.buffer_pos) {\n\t\t// Do the same as above, but in the opposite order.\n\n\t\tif parser.buffer[parser.buffer_pos] == '0' {\n\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a block scalar\",\n\t\t\t\tstart_mark, \"found an indentation indicator equal to 0\")\n\t\t\treturn false\n\t\t}\n\t\tincrement = as_digit(parser.buffer, parser.buffer_pos)\n\t\tskip(parser)\n\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\tif parser.buffer[parser.buffer_pos] == '+' || parser.buffer[parser.buffer_pos] == '-' {\n\t\t\tif parser.buffer[parser.buffer_pos] == '+' {\n\t\t\t\tchomping = +1\n\t\t\t} else {\n\t\t\t\tchomping = -1\n\t\t\t}\n\t\t\tskip(parser)\n\t\t}\n\t}\n\n\t// Eat whitespaces and comments to the end of the line.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tfor is_blank(parser.buffer, parser.buffer_pos) {\n\t\tskip(parser)\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t}\n\tif parser.buffer[parser.buffer_pos] == '#' {\n\t\tfor !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\t\tskip(parser)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check if we are at the end of the line.\n\tif !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\tyaml_parser_set_scanner_error(parser, \"while scanning a block scalar\",\n\t\t\tstart_mark, \"did not find expected comment or line break\")\n\t\treturn false\n\t}\n\n\t// Eat a line break.\n\tif is_break(parser.buffer, parser.buffer_pos) {\n\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\treturn false\n\t\t}\n\t\tskip_line(parser)\n\t}\n\n\tend_mark := parser.mark\n\n\t// Set the indentation level if it was specified.\n\tvar indent int\n\tif increment > 0 {\n\t\tif parser.indent >= 0 {\n\t\t\tindent = parser.indent + increment\n\t\t} else {\n\t\t\tindent = increment\n\t\t}\n\t}\n\n\t// Scan the leading line breaks and determine the indentation level if needed.\n\tvar s, leading_break, trailing_breaks []byte\n\tif !yaml_parser_scan_block_scalar_breaks(parser, &indent, &trailing_breaks, start_mark, &end_mark) {\n\t\treturn false\n\t}\n\n\t// Scan the block scalar content.\n\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\treturn false\n\t}\n\tvar leading_blank, trailing_blank bool\n\tfor parser.mark.column == indent && !is_z(parser.buffer, parser.buffer_pos) {\n\t\t// We are at the beginning of a non-empty line.\n\n\t\t// Is it a trailing whitespace?\n\t\ttrailing_blank = is_blank(parser.buffer, parser.buffer_pos)\n\n\t\t// Check if we need to fold the leading line break.\n\t\tif !literal && !leading_blank && !trailing_blank && len(leading_break) > 0 && leading_break[0] == '\\n' {\n\t\t\t// Do we need to join the lines by space?\n\t\t\tif len(trailing_breaks) == 0 {\n\t\t\t\ts = append(s, ' ')\n\t\t\t}\n\t\t} else {\n\t\t\ts = append(s, leading_break...)\n\t\t}\n\t\tleading_break = leading_break[:0]\n\n\t\t// Append the remaining line breaks.\n\t\ts = append(s, trailing_breaks...)\n\t\ttrailing_breaks = trailing_breaks[:0]\n\n\t\t// Is it a leading whitespace?\n\t\tleading_blank = is_blank(parser.buffer, parser.buffer_pos)\n\n\t\t// Consume the current line.\n\t\tfor !is_breakz(parser.buffer, parser.buffer_pos) {\n\t\t\ts = read(parser, s)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Consume the line break.\n\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\treturn false\n\t\t}\n\n\t\tleading_break = read_line(parser, leading_break)\n\n\t\t// Eat the following indentation spaces and line breaks.\n\t\tif !yaml_parser_scan_block_scalar_breaks(parser, &indent, &trailing_breaks, start_mark, &end_mark) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\t// Chomp the tail.\n\tif chomping != -1 {\n\t\ts = append(s, leading_break...)\n\t}\n\tif chomping == 1 {\n\t\ts = append(s, trailing_breaks...)\n\t}\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        yaml_SCALAR_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      s,\n\t\tstyle:      yaml_LITERAL_SCALAR_STYLE,\n\t}\n\tif !literal {\n\t\ttoken.style = yaml_FOLDED_SCALAR_STYLE\n\t}\n\treturn true\n}\n\n// Scan indentation spaces and line breaks for a block scalar.  Determine the\n// indentation level if needed.\nfunc yaml_parser_scan_block_scalar_breaks(parser *yaml_parser_t, indent *int, breaks *[]byte, start_mark yaml_mark_t, end_mark *yaml_mark_t) bool {\n\t*end_mark = parser.mark\n\n\t// Eat the indentation spaces and line breaks.\n\tmax_indent := 0\n\tfor {\n\t\t// Eat the indentation spaces.\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\t\tfor (*indent == 0 || parser.mark.column < *indent) && is_space(parser.buffer, parser.buffer_pos) {\n\t\t\tskip(parser)\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\tif parser.mark.column > max_indent {\n\t\t\tmax_indent = parser.mark.column\n\t\t}\n\n\t\t// Check for a tab character messing the indentation.\n\t\tif (*indent == 0 || parser.mark.column < *indent) && is_tab(parser.buffer, parser.buffer_pos) {\n\t\t\treturn yaml_parser_set_scanner_error(parser, \"while scanning a block scalar\",\n\t\t\t\tstart_mark, \"found a tab character where an indentation space is expected\")\n\t\t}\n\n\t\t// Have we found a non-empty line?\n\t\tif !is_break(parser.buffer, parser.buffer_pos) {\n\t\t\tbreak\n\t\t}\n\n\t\t// Consume the line break.\n\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\treturn false\n\t\t}\n\t\t// [Go] Should really be returning breaks instead.\n\t\t*breaks = read_line(parser, *breaks)\n\t\t*end_mark = parser.mark\n\t}\n\n\t// Determine the indentation level if needed.\n\tif *indent == 0 {\n\t\t*indent = max_indent\n\t\tif *indent < parser.indent+1 {\n\t\t\t*indent = parser.indent + 1\n\t\t}\n\t\tif *indent < 1 {\n\t\t\t*indent = 1\n\t\t}\n\t}\n\treturn true\n}\n\n// Scan a quoted scalar.\nfunc yaml_parser_scan_flow_scalar(parser *yaml_parser_t, token *yaml_token_t, single bool) bool {\n\t// Eat the left quote.\n\tstart_mark := parser.mark\n\tskip(parser)\n\n\t// Consume the content of the quoted scalar.\n\tvar s, leading_break, trailing_breaks, whitespaces []byte\n\tfor {\n\t\t// Check that there are no document indicators at the beginning of the line.\n\t\tif parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) {\n\t\t\treturn false\n\t\t}\n\n\t\tif parser.mark.column == 0 &&\n\t\t\t((parser.buffer[parser.buffer_pos+0] == '-' &&\n\t\t\t\tparser.buffer[parser.buffer_pos+1] == '-' &&\n\t\t\t\tparser.buffer[parser.buffer_pos+2] == '-') ||\n\t\t\t\t(parser.buffer[parser.buffer_pos+0] == '.' &&\n\t\t\t\t\tparser.buffer[parser.buffer_pos+1] == '.' &&\n\t\t\t\t\tparser.buffer[parser.buffer_pos+2] == '.')) &&\n\t\t\tis_blankz(parser.buffer, parser.buffer_pos+3) {\n\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a quoted scalar\",\n\t\t\t\tstart_mark, \"found unexpected document indicator\")\n\t\t\treturn false\n\t\t}\n\n\t\t// Check for EOF.\n\t\tif is_z(parser.buffer, parser.buffer_pos) {\n\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a quoted scalar\",\n\t\t\t\tstart_mark, \"found unexpected end of stream\")\n\t\t\treturn false\n\t\t}\n\n\t\t// Consume non-blank characters.\n\t\tleading_blanks := false\n\t\tfor !is_blankz(parser.buffer, parser.buffer_pos) {\n\t\t\tif single && parser.buffer[parser.buffer_pos] == '\\'' && parser.buffer[parser.buffer_pos+1] == '\\'' {\n\t\t\t\t// Is is an escaped single quote.\n\t\t\t\ts = append(s, '\\'')\n\t\t\t\tskip(parser)\n\t\t\t\tskip(parser)\n\n\t\t\t} else if single && parser.buffer[parser.buffer_pos] == '\\'' {\n\t\t\t\t// It is a right single quote.\n\t\t\t\tbreak\n\t\t\t} else if !single && parser.buffer[parser.buffer_pos] == '\"' {\n\t\t\t\t// It is a right double quote.\n\t\t\t\tbreak\n\n\t\t\t} else if !single && parser.buffer[parser.buffer_pos] == '\\\\' && is_break(parser.buffer, parser.buffer_pos+1) {\n\t\t\t\t// It is an escaped line break.\n\t\t\t\tif parser.unread < 3 && !yaml_parser_update_buffer(parser, 3) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tskip(parser)\n\t\t\t\tskip_line(parser)\n\t\t\t\tleading_blanks = true\n\t\t\t\tbreak\n\n\t\t\t} else if !single && parser.buffer[parser.buffer_pos] == '\\\\' {\n\t\t\t\t// It is an escape sequence.\n\t\t\t\tcode_length := 0\n\n\t\t\t\t// Check the escape character.\n\t\t\t\tswitch parser.buffer[parser.buffer_pos+1] {\n\t\t\t\tcase '0':\n\t\t\t\t\ts = append(s, 0)\n\t\t\t\tcase 'a':\n\t\t\t\t\ts = append(s, '\\x07')\n\t\t\t\tcase 'b':\n\t\t\t\t\ts = append(s, '\\x08')\n\t\t\t\tcase 't', '\\t':\n\t\t\t\t\ts = append(s, '\\x09')\n\t\t\t\tcase 'n':\n\t\t\t\t\ts = append(s, '\\x0A')\n\t\t\t\tcase 'v':\n\t\t\t\t\ts = append(s, '\\x0B')\n\t\t\t\tcase 'f':\n\t\t\t\t\ts = append(s, '\\x0C')\n\t\t\t\tcase 'r':\n\t\t\t\t\ts = append(s, '\\x0D')\n\t\t\t\tcase 'e':\n\t\t\t\t\ts = append(s, '\\x1B')\n\t\t\t\tcase ' ':\n\t\t\t\t\ts = append(s, '\\x20')\n\t\t\t\tcase '\"':\n\t\t\t\t\ts = append(s, '\"')\n\t\t\t\tcase '\\'':\n\t\t\t\t\ts = append(s, '\\'')\n\t\t\t\tcase '\\\\':\n\t\t\t\t\ts = append(s, '\\\\')\n\t\t\t\tcase 'N': // NEL (#x85)\n\t\t\t\t\ts = append(s, '\\xC2')\n\t\t\t\t\ts = append(s, '\\x85')\n\t\t\t\tcase '_': // #xA0\n\t\t\t\t\ts = append(s, '\\xC2')\n\t\t\t\t\ts = append(s, '\\xA0')\n\t\t\t\tcase 'L': // LS (#x2028)\n\t\t\t\t\ts = append(s, '\\xE2')\n\t\t\t\t\ts = append(s, '\\x80')\n\t\t\t\t\ts = append(s, '\\xA8')\n\t\t\t\tcase 'P': // PS (#x2029)\n\t\t\t\t\ts = append(s, '\\xE2')\n\t\t\t\t\ts = append(s, '\\x80')\n\t\t\t\t\ts = append(s, '\\xA9')\n\t\t\t\tcase 'x':\n\t\t\t\t\tcode_length = 2\n\t\t\t\tcase 'u':\n\t\t\t\t\tcode_length = 4\n\t\t\t\tcase 'U':\n\t\t\t\t\tcode_length = 8\n\t\t\t\tdefault:\n\t\t\t\t\tyaml_parser_set_scanner_error(parser, \"while parsing a quoted scalar\",\n\t\t\t\t\t\tstart_mark, \"found unknown escape character\")\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\tskip(parser)\n\t\t\t\tskip(parser)\n\n\t\t\t\t// Consume an arbitrary escape code.\n\t\t\t\tif code_length > 0 {\n\t\t\t\t\tvar value int\n\n\t\t\t\t\t// Scan the character value.\n\t\t\t\t\tif parser.unread < code_length && !yaml_parser_update_buffer(parser, code_length) {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t\tfor k := 0; k < code_length; k++ {\n\t\t\t\t\t\tif !is_hex(parser.buffer, parser.buffer_pos+k) {\n\t\t\t\t\t\t\tyaml_parser_set_scanner_error(parser, \"while parsing a quoted scalar\",\n\t\t\t\t\t\t\t\tstart_mark, \"did not find expected hexdecimal number\")\n\t\t\t\t\t\t\treturn false\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalue = (value << 4) + as_hex(parser.buffer, parser.buffer_pos+k)\n\t\t\t\t\t}\n\n\t\t\t\t\t// Check the value and write the character.\n\t\t\t\t\tif (value >= 0xD800 && value <= 0xDFFF) || value > 0x10FFFF {\n\t\t\t\t\t\tyaml_parser_set_scanner_error(parser, \"while parsing a quoted scalar\",\n\t\t\t\t\t\t\tstart_mark, \"found invalid Unicode character escape code\")\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\t\t\t\t\tif value <= 0x7F {\n\t\t\t\t\t\ts = append(s, byte(value))\n\t\t\t\t\t} else if value <= 0x7FF {\n\t\t\t\t\t\ts = append(s, byte(0xC0+(value>>6)))\n\t\t\t\t\t\ts = append(s, byte(0x80+(value&0x3F)))\n\t\t\t\t\t} else if value <= 0xFFFF {\n\t\t\t\t\t\ts = append(s, byte(0xE0+(value>>12)))\n\t\t\t\t\t\ts = append(s, byte(0x80+((value>>6)&0x3F)))\n\t\t\t\t\t\ts = append(s, byte(0x80+(value&0x3F)))\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts = append(s, byte(0xF0+(value>>18)))\n\t\t\t\t\t\ts = append(s, byte(0x80+((value>>12)&0x3F)))\n\t\t\t\t\t\ts = append(s, byte(0x80+((value>>6)&0x3F)))\n\t\t\t\t\t\ts = append(s, byte(0x80+(value&0x3F)))\n\t\t\t\t\t}\n\n\t\t\t\t\t// Advance the pointer.\n\t\t\t\t\tfor k := 0; k < code_length; k++ {\n\t\t\t\t\t\tskip(parser)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// It is a non-escaped non-blank character.\n\t\t\t\ts = read(parser, s)\n\t\t\t}\n\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\n\t\t// Check if we are at the end of the scalar.\n\t\tif single {\n\t\t\tif parser.buffer[parser.buffer_pos] == '\\'' {\n\t\t\t\tbreak\n\t\t\t}\n\t\t} else {\n\t\t\tif parser.buffer[parser.buffer_pos] == '\"' {\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\n\t\t// Consume blank characters.\n\t\tfor is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos) {\n\t\t\tif is_blank(parser.buffer, parser.buffer_pos) {\n\t\t\t\t// Consume a space or a tab character.\n\t\t\t\tif !leading_blanks {\n\t\t\t\t\twhitespaces = read(parser, whitespaces)\n\t\t\t\t} else {\n\t\t\t\t\tskip(parser)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\t// Check if it is a first line break.\n\t\t\t\tif !leading_blanks {\n\t\t\t\t\twhitespaces = whitespaces[:0]\n\t\t\t\t\tleading_break = read_line(parser, leading_break)\n\t\t\t\t\tleading_blanks = true\n\t\t\t\t} else {\n\t\t\t\t\ttrailing_breaks = read_line(parser, trailing_breaks)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Join the whitespaces or fold line breaks.\n\t\tif leading_blanks {\n\t\t\t// Do we need to fold line breaks?\n\t\t\tif len(leading_break) > 0 && leading_break[0] == '\\n' {\n\t\t\t\tif len(trailing_breaks) == 0 {\n\t\t\t\t\ts = append(s, ' ')\n\t\t\t\t} else {\n\t\t\t\t\ts = append(s, trailing_breaks...)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ts = append(s, leading_break...)\n\t\t\t\ts = append(s, trailing_breaks...)\n\t\t\t}\n\t\t\ttrailing_breaks = trailing_breaks[:0]\n\t\t\tleading_break = leading_break[:0]\n\t\t} else {\n\t\t\ts = append(s, whitespaces...)\n\t\t\twhitespaces = whitespaces[:0]\n\t\t}\n\t}\n\n\t// Eat the right quote.\n\tskip(parser)\n\tend_mark := parser.mark\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        yaml_SCALAR_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      s,\n\t\tstyle:      yaml_SINGLE_QUOTED_SCALAR_STYLE,\n\t}\n\tif !single {\n\t\ttoken.style = yaml_DOUBLE_QUOTED_SCALAR_STYLE\n\t}\n\treturn true\n}\n\n// Scan a plain scalar.\nfunc yaml_parser_scan_plain_scalar(parser *yaml_parser_t, token *yaml_token_t) bool {\n\n\tvar s, leading_break, trailing_breaks, whitespaces []byte\n\tvar leading_blanks bool\n\tvar indent = parser.indent + 1\n\n\tstart_mark := parser.mark\n\tend_mark := parser.mark\n\n\t// Consume the content of the plain scalar.\n\tfor {\n\t\t// Check for a document indicator.\n\t\tif parser.unread < 4 && !yaml_parser_update_buffer(parser, 4) {\n\t\t\treturn false\n\t\t}\n\t\tif parser.mark.column == 0 &&\n\t\t\t((parser.buffer[parser.buffer_pos+0] == '-' &&\n\t\t\t\tparser.buffer[parser.buffer_pos+1] == '-' &&\n\t\t\t\tparser.buffer[parser.buffer_pos+2] == '-') ||\n\t\t\t\t(parser.buffer[parser.buffer_pos+0] == '.' &&\n\t\t\t\t\tparser.buffer[parser.buffer_pos+1] == '.' &&\n\t\t\t\t\tparser.buffer[parser.buffer_pos+2] == '.')) &&\n\t\t\tis_blankz(parser.buffer, parser.buffer_pos+3) {\n\t\t\tbreak\n\t\t}\n\n\t\t// Check for a comment.\n\t\tif parser.buffer[parser.buffer_pos] == '#' {\n\t\t\tbreak\n\t\t}\n\n\t\t// Consume non-blank characters.\n\t\tfor !is_blankz(parser.buffer, parser.buffer_pos) {\n\n\t\t\t// Check for indicators that may end a plain scalar.\n\t\t\tif (parser.buffer[parser.buffer_pos] == ':' && is_blankz(parser.buffer, parser.buffer_pos+1)) ||\n\t\t\t\t(parser.flow_level > 0 &&\n\t\t\t\t\t(parser.buffer[parser.buffer_pos] == ',' ||\n\t\t\t\t\t\tparser.buffer[parser.buffer_pos] == '?' || parser.buffer[parser.buffer_pos] == '[' ||\n\t\t\t\t\t\tparser.buffer[parser.buffer_pos] == ']' || parser.buffer[parser.buffer_pos] == '{' ||\n\t\t\t\t\t\tparser.buffer[parser.buffer_pos] == '}')) {\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\t// Check if we need to join whitespaces and breaks.\n\t\t\tif leading_blanks || len(whitespaces) > 0 {\n\t\t\t\tif leading_blanks {\n\t\t\t\t\t// Do we need to fold line breaks?\n\t\t\t\t\tif leading_break[0] == '\\n' {\n\t\t\t\t\t\tif len(trailing_breaks) == 0 {\n\t\t\t\t\t\t\ts = append(s, ' ')\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ts = append(s, trailing_breaks...)\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts = append(s, leading_break...)\n\t\t\t\t\t\ts = append(s, trailing_breaks...)\n\t\t\t\t\t}\n\t\t\t\t\ttrailing_breaks = trailing_breaks[:0]\n\t\t\t\t\tleading_break = leading_break[:0]\n\t\t\t\t\tleading_blanks = false\n\t\t\t\t} else {\n\t\t\t\t\ts = append(s, whitespaces...)\n\t\t\t\t\twhitespaces = whitespaces[:0]\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Copy the character.\n\t\t\ts = read(parser, s)\n\n\t\t\tend_mark = parser.mark\n\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Is it the end?\n\t\tif !(is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos)) {\n\t\t\tbreak\n\t\t}\n\n\t\t// Consume blank characters.\n\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\treturn false\n\t\t}\n\n\t\tfor is_blank(parser.buffer, parser.buffer_pos) || is_break(parser.buffer, parser.buffer_pos) {\n\t\t\tif is_blank(parser.buffer, parser.buffer_pos) {\n\n\t\t\t\t// Check for tab characters that abuse indentation.\n\t\t\t\tif leading_blanks && parser.mark.column < indent && is_tab(parser.buffer, parser.buffer_pos) {\n\t\t\t\t\tyaml_parser_set_scanner_error(parser, \"while scanning a plain scalar\",\n\t\t\t\t\t\tstart_mark, \"found a tab character that violates indentation\")\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\t// Consume a space or a tab character.\n\t\t\t\tif !leading_blanks {\n\t\t\t\t\twhitespaces = read(parser, whitespaces)\n\t\t\t\t} else {\n\t\t\t\t\tskip(parser)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\t// Check if it is a first line break.\n\t\t\t\tif !leading_blanks {\n\t\t\t\t\twhitespaces = whitespaces[:0]\n\t\t\t\t\tleading_break = read_line(parser, leading_break)\n\t\t\t\t\tleading_blanks = true\n\t\t\t\t} else {\n\t\t\t\t\ttrailing_breaks = read_line(parser, trailing_breaks)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// Check indentation level.\n\t\tif parser.flow_level == 0 && parser.mark.column < indent {\n\t\t\tbreak\n\t\t}\n\t}\n\n\t// Create a token.\n\t*token = yaml_token_t{\n\t\ttyp:        yaml_SCALAR_TOKEN,\n\t\tstart_mark: start_mark,\n\t\tend_mark:   end_mark,\n\t\tvalue:      s,\n\t\tstyle:      yaml_PLAIN_SCALAR_STYLE,\n\t}\n\n\t// Note that we change the 'simple_key_allowed' flag.\n\tif leading_blanks {\n\t\tparser.simple_key_allowed = true\n\t}\n\treturn true\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/yaml/goyaml.v2/sorter.go",
    "content": "package yaml\n\nimport (\n\t\"reflect\"\n\t\"unicode\"\n)\n\ntype keyList []reflect.Value\n\nfunc (l keyList) Len() int      { return len(l) }\nfunc (l keyList) Swap(i, j int) { l[i], l[j] = l[j], l[i] }\nfunc (l keyList) Less(i, j int) bool {\n\ta := l[i]\n\tb := l[j]\n\tak := a.Kind()\n\tbk := b.Kind()\n\tfor (ak == reflect.Interface || ak == reflect.Ptr) && !a.IsNil() {\n\t\ta = a.Elem()\n\t\tak = a.Kind()\n\t}\n\tfor (bk == reflect.Interface || bk == reflect.Ptr) && !b.IsNil() {\n\t\tb = b.Elem()\n\t\tbk = b.Kind()\n\t}\n\taf, aok := keyFloat(a)\n\tbf, bok := keyFloat(b)\n\tif aok && bok {\n\t\tif af != bf {\n\t\t\treturn af < bf\n\t\t}\n\t\tif ak != bk {\n\t\t\treturn ak < bk\n\t\t}\n\t\treturn numLess(a, b)\n\t}\n\tif ak != reflect.String || bk != reflect.String {\n\t\treturn ak < bk\n\t}\n\tar, br := []rune(a.String()), []rune(b.String())\n\tfor i := 0; i < len(ar) && i < len(br); i++ {\n\t\tif ar[i] == br[i] {\n\t\t\tcontinue\n\t\t}\n\t\tal := unicode.IsLetter(ar[i])\n\t\tbl := unicode.IsLetter(br[i])\n\t\tif al && bl {\n\t\t\treturn ar[i] < br[i]\n\t\t}\n\t\tif al || bl {\n\t\t\treturn bl\n\t\t}\n\t\tvar ai, bi int\n\t\tvar an, bn int64\n\t\tif ar[i] == '0' || br[i] == '0' {\n\t\t\tfor j := i-1; j >= 0 && unicode.IsDigit(ar[j]); j-- {\n\t\t\t\tif ar[j] != '0' {\n\t\t\t\t\tan = 1\n\t\t\t\t\tbn = 1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor ai = i; ai < len(ar) && unicode.IsDigit(ar[ai]); ai++ {\n\t\t\tan = an*10 + int64(ar[ai]-'0')\n\t\t}\n\t\tfor bi = i; bi < len(br) && unicode.IsDigit(br[bi]); bi++ {\n\t\t\tbn = bn*10 + int64(br[bi]-'0')\n\t\t}\n\t\tif an != bn {\n\t\t\treturn an < bn\n\t\t}\n\t\tif ai != bi {\n\t\t\treturn ai < bi\n\t\t}\n\t\treturn ar[i] < br[i]\n\t}\n\treturn len(ar) < len(br)\n}\n\n// keyFloat returns a float value for v if it is a number/bool\n// and whether it is a number/bool or not.\nfunc keyFloat(v reflect.Value) (f float64, ok bool) {\n\tswitch v.Kind() {\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn float64(v.Int()), true\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn v.Float(), true\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn float64(v.Uint()), true\n\tcase reflect.Bool:\n\t\tif v.Bool() {\n\t\t\treturn 1, true\n\t\t}\n\t\treturn 0, true\n\t}\n\treturn 0, false\n}\n\n// numLess returns whether a < b.\n// a and b must necessarily have the same kind.\nfunc numLess(a, b reflect.Value) bool {\n\tswitch a.Kind() {\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn a.Int() < b.Int()\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn a.Float() < b.Float()\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn a.Uint() < b.Uint()\n\tcase reflect.Bool:\n\t\treturn !a.Bool() && b.Bool()\n\t}\n\tpanic(\"not a number\")\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/yaml/goyaml.v2/writerc.go",
    "content": "package yaml\n\n// Set the writer error and return false.\nfunc yaml_emitter_set_writer_error(emitter *yaml_emitter_t, problem string) bool {\n\temitter.error = yaml_WRITER_ERROR\n\temitter.problem = problem\n\treturn false\n}\n\n// Flush the output buffer.\nfunc yaml_emitter_flush(emitter *yaml_emitter_t) bool {\n\tif emitter.write_handler == nil {\n\t\tpanic(\"write handler not set\")\n\t}\n\n\t// Check if the buffer is empty.\n\tif emitter.buffer_pos == 0 {\n\t\treturn true\n\t}\n\n\tif err := emitter.write_handler(emitter, emitter.buffer[:emitter.buffer_pos]); err != nil {\n\t\treturn yaml_emitter_set_writer_error(emitter, \"write error: \"+err.Error())\n\t}\n\temitter.buffer_pos = 0\n\treturn true\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/yaml/goyaml.v2/yaml.go",
    "content": "// Package yaml implements YAML support for the Go language.\n//\n// Source code and other details for the project are available at GitHub:\n//\n//   https://github.com/go-yaml/yaml\n//\npackage yaml\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n\t\"strings\"\n\t\"sync\"\n)\n\n// MapSlice encodes and decodes as a YAML map.\n// The order of keys is preserved when encoding and decoding.\ntype MapSlice []MapItem\n\n// MapItem is an item in a MapSlice.\ntype MapItem struct {\n\tKey, Value interface{}\n}\n\n// The Unmarshaler interface may be implemented by types to customize their\n// behavior when being unmarshaled from a YAML document. The UnmarshalYAML\n// method receives a function that may be called to unmarshal the original\n// YAML value into a field or variable. It is safe to call the unmarshal\n// function parameter more than once if necessary.\ntype Unmarshaler interface {\n\tUnmarshalYAML(unmarshal func(interface{}) error) error\n}\n\n// The Marshaler interface may be implemented by types to customize their\n// behavior when being marshaled into a YAML document. The returned value\n// is marshaled in place of the original value implementing Marshaler.\n//\n// If an error is returned by MarshalYAML, the marshaling procedure stops\n// and returns with the provided error.\ntype Marshaler interface {\n\tMarshalYAML() (interface{}, error)\n}\n\n// Unmarshal decodes the first document found within the in byte slice\n// and assigns decoded values into the out value.\n//\n// Maps and pointers (to a struct, string, int, etc) are accepted as out\n// values. If an internal pointer within a struct is not initialized,\n// the yaml package will initialize it if necessary for unmarshalling\n// the provided data. The out parameter must not be nil.\n//\n// The type of the decoded values should be compatible with the respective\n// values in out. If one or more values cannot be decoded due to a type\n// mismatches, decoding continues partially until the end of the YAML\n// content, and a *yaml.TypeError is returned with details for all\n// missed values.\n//\n// Struct fields are only unmarshalled if they are exported (have an\n// upper case first letter), and are unmarshalled using the field name\n// lowercased as the default key. Custom keys may be defined via the\n// \"yaml\" name in the field tag: the content preceding the first comma\n// is used as the key, and the following comma-separated options are\n// used to tweak the marshalling process (see Marshal).\n// Conflicting names result in a runtime error.\n//\n// For example:\n//\n//     type T struct {\n//         F int `yaml:\"a,omitempty\"`\n//         B int\n//     }\n//     var t T\n//     yaml.Unmarshal([]byte(\"a: 1\\nb: 2\"), &t)\n//\n// See the documentation of Marshal for the format of tags and a list of\n// supported tag options.\n//\nfunc Unmarshal(in []byte, out interface{}) (err error) {\n\treturn unmarshal(in, out, false)\n}\n\n// UnmarshalStrict is like Unmarshal except that any fields that are found\n// in the data that do not have corresponding struct members, or mapping\n// keys that are duplicates, will result in\n// an error.\nfunc UnmarshalStrict(in []byte, out interface{}) (err error) {\n\treturn unmarshal(in, out, true)\n}\n\n// A Decoder reads and decodes YAML values from an input stream.\ntype Decoder struct {\n\tstrict bool\n\tparser *parser\n}\n\n// NewDecoder returns a new decoder that reads from r.\n//\n// The decoder introduces its own buffering and may read\n// data from r beyond the YAML values requested.\nfunc NewDecoder(r io.Reader) *Decoder {\n\treturn &Decoder{\n\t\tparser: newParserFromReader(r),\n\t}\n}\n\n// SetStrict sets whether strict decoding behaviour is enabled when\n// decoding items in the data (see UnmarshalStrict). By default, decoding is not strict.\nfunc (dec *Decoder) SetStrict(strict bool) {\n\tdec.strict = strict\n}\n\n// Decode reads the next YAML-encoded value from its input\n// and stores it in the value pointed to by v.\n//\n// See the documentation for Unmarshal for details about the\n// conversion of YAML into a Go value.\nfunc (dec *Decoder) Decode(v interface{}) (err error) {\n\td := newDecoder(dec.strict)\n\tdefer handleErr(&err)\n\tnode := dec.parser.parse()\n\tif node == nil {\n\t\treturn io.EOF\n\t}\n\tout := reflect.ValueOf(v)\n\tif out.Kind() == reflect.Ptr && !out.IsNil() {\n\t\tout = out.Elem()\n\t}\n\td.unmarshal(node, out)\n\tif len(d.terrors) > 0 {\n\t\treturn &TypeError{d.terrors}\n\t}\n\treturn nil\n}\n\nfunc unmarshal(in []byte, out interface{}, strict bool) (err error) {\n\tdefer handleErr(&err)\n\td := newDecoder(strict)\n\tp := newParser(in)\n\tdefer p.destroy()\n\tnode := p.parse()\n\tif node != nil {\n\t\tv := reflect.ValueOf(out)\n\t\tif v.Kind() == reflect.Ptr && !v.IsNil() {\n\t\t\tv = v.Elem()\n\t\t}\n\t\td.unmarshal(node, v)\n\t}\n\tif len(d.terrors) > 0 {\n\t\treturn &TypeError{d.terrors}\n\t}\n\treturn nil\n}\n\n// Marshal serializes the value provided into a YAML document. The structure\n// of the generated document will reflect the structure of the value itself.\n// Maps and pointers (to struct, string, int, etc) are accepted as the in value.\n//\n// Struct fields are only marshalled if they are exported (have an upper case\n// first letter), and are marshalled using the field name lowercased as the\n// default key. Custom keys may be defined via the \"yaml\" name in the field\n// tag: the content preceding the first comma is used as the key, and the\n// following comma-separated options are used to tweak the marshalling process.\n// Conflicting names result in a runtime error.\n//\n// The field tag format accepted is:\n//\n//     `(...) yaml:\"[<key>][,<flag1>[,<flag2>]]\" (...)`\n//\n// The following flags are currently supported:\n//\n//     omitempty    Only include the field if it's not set to the zero\n//                  value for the type or to empty slices or maps.\n//                  Zero valued structs will be omitted if all their public\n//                  fields are zero, unless they implement an IsZero\n//                  method (see the IsZeroer interface type), in which\n//                  case the field will be excluded if IsZero returns true.\n//\n//     flow         Marshal using a flow style (useful for structs,\n//                  sequences and maps).\n//\n//     inline       Inline the field, which must be a struct or a map,\n//                  causing all of its fields or keys to be processed as if\n//                  they were part of the outer struct. For maps, keys must\n//                  not conflict with the yaml keys of other struct fields.\n//\n// In addition, if the key is \"-\", the field is ignored.\n//\n// For example:\n//\n//     type T struct {\n//         F int `yaml:\"a,omitempty\"`\n//         B int\n//     }\n//     yaml.Marshal(&T{B: 2}) // Returns \"b: 2\\n\"\n//     yaml.Marshal(&T{F: 1}} // Returns \"a: 1\\nb: 0\\n\"\n//\nfunc Marshal(in interface{}) (out []byte, err error) {\n\tdefer handleErr(&err)\n\te := newEncoder()\n\tdefer e.destroy()\n\te.marshalDoc(\"\", reflect.ValueOf(in))\n\te.finish()\n\tout = e.out\n\treturn\n}\n\n// An Encoder writes YAML values to an output stream.\ntype Encoder struct {\n\tencoder *encoder\n}\n\n// NewEncoder returns a new encoder that writes to w.\n// The Encoder should be closed after use to flush all data\n// to w.\nfunc NewEncoder(w io.Writer) *Encoder {\n\treturn &Encoder{\n\t\tencoder: newEncoderWithWriter(w),\n\t}\n}\n\n// Encode writes the YAML encoding of v to the stream.\n// If multiple items are encoded to the stream, the\n// second and subsequent document will be preceded\n// with a \"---\" document separator, but the first will not.\n//\n// See the documentation for Marshal for details about the conversion of Go\n// values to YAML.\nfunc (e *Encoder) Encode(v interface{}) (err error) {\n\tdefer handleErr(&err)\n\te.encoder.marshalDoc(\"\", reflect.ValueOf(v))\n\treturn nil\n}\n\n// Close closes the encoder by writing any remaining data.\n// It does not write a stream terminating string \"...\".\nfunc (e *Encoder) Close() (err error) {\n\tdefer handleErr(&err)\n\te.encoder.finish()\n\treturn nil\n}\n\nfunc handleErr(err *error) {\n\tif v := recover(); v != nil {\n\t\tif e, ok := v.(yamlError); ok {\n\t\t\t*err = e.err\n\t\t} else {\n\t\t\tpanic(v)\n\t\t}\n\t}\n}\n\ntype yamlError struct {\n\terr error\n}\n\nfunc fail(err error) {\n\tpanic(yamlError{err})\n}\n\nfunc failf(format string, args ...interface{}) {\n\tpanic(yamlError{fmt.Errorf(\"yaml: \"+format, args...)})\n}\n\n// A TypeError is returned by Unmarshal when one or more fields in\n// the YAML document cannot be properly decoded into the requested\n// types. When this error is returned, the value is still\n// unmarshaled partially.\ntype TypeError struct {\n\tErrors []string\n}\n\nfunc (e *TypeError) Error() string {\n\treturn fmt.Sprintf(\"yaml: unmarshal errors:\\n  %s\", strings.Join(e.Errors, \"\\n  \"))\n}\n\n// --------------------------------------------------------------------------\n// Maintain a mapping of keys to structure field indexes\n\n// The code in this section was copied from mgo/bson.\n\n// structInfo holds details for the serialization of fields of\n// a given struct.\ntype structInfo struct {\n\tFieldsMap  map[string]fieldInfo\n\tFieldsList []fieldInfo\n\n\t// InlineMap is the number of the field in the struct that\n\t// contains an ,inline map, or -1 if there's none.\n\tInlineMap int\n}\n\ntype fieldInfo struct {\n\tKey       string\n\tNum       int\n\tOmitEmpty bool\n\tFlow      bool\n\t// Id holds the unique field identifier, so we can cheaply\n\t// check for field duplicates without maintaining an extra map.\n\tId int\n\n\t// Inline holds the field index if the field is part of an inlined struct.\n\tInline []int\n}\n\nvar structMap = make(map[reflect.Type]*structInfo)\nvar fieldMapMutex sync.RWMutex\n\nfunc getStructInfo(st reflect.Type) (*structInfo, error) {\n\tfieldMapMutex.RLock()\n\tsinfo, found := structMap[st]\n\tfieldMapMutex.RUnlock()\n\tif found {\n\t\treturn sinfo, nil\n\t}\n\n\tn := st.NumField()\n\tfieldsMap := make(map[string]fieldInfo)\n\tfieldsList := make([]fieldInfo, 0, n)\n\tinlineMap := -1\n\tfor i := 0; i != n; i++ {\n\t\tfield := st.Field(i)\n\t\tif field.PkgPath != \"\" && !field.Anonymous {\n\t\t\tcontinue // Private field\n\t\t}\n\n\t\tinfo := fieldInfo{Num: i}\n\n\t\ttag := field.Tag.Get(\"yaml\")\n\t\tif tag == \"\" && strings.Index(string(field.Tag), \":\") < 0 {\n\t\t\ttag = string(field.Tag)\n\t\t}\n\t\tif tag == \"-\" {\n\t\t\tcontinue\n\t\t}\n\n\t\tinline := false\n\t\tfields := strings.Split(tag, \",\")\n\t\tif len(fields) > 1 {\n\t\t\tfor _, flag := range fields[1:] {\n\t\t\t\tswitch flag {\n\t\t\t\tcase \"omitempty\":\n\t\t\t\t\tinfo.OmitEmpty = true\n\t\t\t\tcase \"flow\":\n\t\t\t\t\tinfo.Flow = true\n\t\t\t\tcase \"inline\":\n\t\t\t\t\tinline = true\n\t\t\t\tdefault:\n\t\t\t\t\treturn nil, errors.New(fmt.Sprintf(\"Unsupported flag %q in tag %q of type %s\", flag, tag, st))\n\t\t\t\t}\n\t\t\t}\n\t\t\ttag = fields[0]\n\t\t}\n\n\t\tif inline {\n\t\t\tswitch field.Type.Kind() {\n\t\t\tcase reflect.Map:\n\t\t\t\tif inlineMap >= 0 {\n\t\t\t\t\treturn nil, errors.New(\"Multiple ,inline maps in struct \" + st.String())\n\t\t\t\t}\n\t\t\t\tif field.Type.Key() != reflect.TypeOf(\"\") {\n\t\t\t\t\treturn nil, errors.New(\"Option ,inline needs a map with string keys in struct \" + st.String())\n\t\t\t\t}\n\t\t\t\tinlineMap = info.Num\n\t\t\tcase reflect.Struct:\n\t\t\t\tsinfo, err := getStructInfo(field.Type)\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, err\n\t\t\t\t}\n\t\t\t\tfor _, finfo := range sinfo.FieldsList {\n\t\t\t\t\tif _, found := fieldsMap[finfo.Key]; found {\n\t\t\t\t\t\tmsg := \"Duplicated key '\" + finfo.Key + \"' in struct \" + st.String()\n\t\t\t\t\t\treturn nil, errors.New(msg)\n\t\t\t\t\t}\n\t\t\t\t\tif finfo.Inline == nil {\n\t\t\t\t\t\tfinfo.Inline = []int{i, finfo.Num}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfinfo.Inline = append([]int{i}, finfo.Inline...)\n\t\t\t\t\t}\n\t\t\t\t\tfinfo.Id = len(fieldsList)\n\t\t\t\t\tfieldsMap[finfo.Key] = finfo\n\t\t\t\t\tfieldsList = append(fieldsList, finfo)\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\t//return nil, errors.New(\"Option ,inline needs a struct value or map field\")\n\t\t\t\treturn nil, errors.New(\"Option ,inline needs a struct value field\")\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\tif tag != \"\" {\n\t\t\tinfo.Key = tag\n\t\t} else {\n\t\t\tinfo.Key = strings.ToLower(field.Name)\n\t\t}\n\n\t\tif _, found = fieldsMap[info.Key]; found {\n\t\t\tmsg := \"Duplicated key '\" + info.Key + \"' in struct \" + st.String()\n\t\t\treturn nil, errors.New(msg)\n\t\t}\n\n\t\tinfo.Id = len(fieldsList)\n\t\tfieldsList = append(fieldsList, info)\n\t\tfieldsMap[info.Key] = info\n\t}\n\n\tsinfo = &structInfo{\n\t\tFieldsMap:  fieldsMap,\n\t\tFieldsList: fieldsList,\n\t\tInlineMap:  inlineMap,\n\t}\n\n\tfieldMapMutex.Lock()\n\tstructMap[st] = sinfo\n\tfieldMapMutex.Unlock()\n\treturn sinfo, nil\n}\n\n// IsZeroer is used to check whether an object is zero to\n// determine whether it should be omitted when marshaling\n// with the omitempty flag. One notable implementation\n// is time.Time.\ntype IsZeroer interface {\n\tIsZero() bool\n}\n\nfunc isZero(v reflect.Value) bool {\n\tkind := v.Kind()\n\tif z, ok := v.Interface().(IsZeroer); ok {\n\t\tif (kind == reflect.Ptr || kind == reflect.Interface) && v.IsNil() {\n\t\t\treturn true\n\t\t}\n\t\treturn z.IsZero()\n\t}\n\tswitch kind {\n\tcase reflect.String:\n\t\treturn len(v.String()) == 0\n\tcase reflect.Interface, reflect.Ptr:\n\t\treturn v.IsNil()\n\tcase reflect.Slice:\n\t\treturn v.Len() == 0\n\tcase reflect.Map:\n\t\treturn v.Len() == 0\n\tcase reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:\n\t\treturn v.Int() == 0\n\tcase reflect.Float32, reflect.Float64:\n\t\treturn v.Float() == 0\n\tcase reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:\n\t\treturn v.Uint() == 0\n\tcase reflect.Bool:\n\t\treturn !v.Bool()\n\tcase reflect.Struct:\n\t\tvt := v.Type()\n\t\tfor i := v.NumField() - 1; i >= 0; i-- {\n\t\t\tif vt.Field(i).PkgPath != \"\" {\n\t\t\t\tcontinue // Private field\n\t\t\t}\n\t\t\tif !isZero(v.Field(i)) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\t}\n\treturn false\n}\n\n// FutureLineWrap globally disables line wrapping when encoding long strings.\n// This is a temporary and thus deprecated method introduced to faciliate\n// migration towards v3, which offers more control of line lengths on\n// individual encodings, and has a default matching the behavior introduced\n// by this function.\n//\n// The default formatting of v2 was erroneously changed in v2.3.0 and reverted\n// in v2.4.0, at which point this function was introduced to help migration.\nfunc FutureLineWrap() {\n\tdisableLineWrapping = true\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/yaml/goyaml.v2/yamlh.go",
    "content": "package yaml\n\nimport (\n\t\"fmt\"\n\t\"io\"\n)\n\n// The version directive data.\ntype yaml_version_directive_t struct {\n\tmajor int8 // The major version number.\n\tminor int8 // The minor version number.\n}\n\n// The tag directive data.\ntype yaml_tag_directive_t struct {\n\thandle []byte // The tag handle.\n\tprefix []byte // The tag prefix.\n}\n\ntype yaml_encoding_t int\n\n// The stream encoding.\nconst (\n\t// Let the parser choose the encoding.\n\tyaml_ANY_ENCODING yaml_encoding_t = iota\n\n\tyaml_UTF8_ENCODING    // The default UTF-8 encoding.\n\tyaml_UTF16LE_ENCODING // The UTF-16-LE encoding with BOM.\n\tyaml_UTF16BE_ENCODING // The UTF-16-BE encoding with BOM.\n)\n\ntype yaml_break_t int\n\n// Line break types.\nconst (\n\t// Let the parser choose the break type.\n\tyaml_ANY_BREAK yaml_break_t = iota\n\n\tyaml_CR_BREAK   // Use CR for line breaks (Mac style).\n\tyaml_LN_BREAK   // Use LN for line breaks (Unix style).\n\tyaml_CRLN_BREAK // Use CR LN for line breaks (DOS style).\n)\n\ntype yaml_error_type_t int\n\n// Many bad things could happen with the parser and emitter.\nconst (\n\t// No error is produced.\n\tyaml_NO_ERROR yaml_error_type_t = iota\n\n\tyaml_MEMORY_ERROR   // Cannot allocate or reallocate a block of memory.\n\tyaml_READER_ERROR   // Cannot read or decode the input stream.\n\tyaml_SCANNER_ERROR  // Cannot scan the input stream.\n\tyaml_PARSER_ERROR   // Cannot parse the input stream.\n\tyaml_COMPOSER_ERROR // Cannot compose a YAML document.\n\tyaml_WRITER_ERROR   // Cannot write to the output stream.\n\tyaml_EMITTER_ERROR  // Cannot emit a YAML stream.\n)\n\n// The pointer position.\ntype yaml_mark_t struct {\n\tindex  int // The position index.\n\tline   int // The position line.\n\tcolumn int // The position column.\n}\n\n// Node Styles\n\ntype yaml_style_t int8\n\ntype yaml_scalar_style_t yaml_style_t\n\n// Scalar styles.\nconst (\n\t// Let the emitter choose the style.\n\tyaml_ANY_SCALAR_STYLE yaml_scalar_style_t = iota\n\n\tyaml_PLAIN_SCALAR_STYLE         // The plain scalar style.\n\tyaml_SINGLE_QUOTED_SCALAR_STYLE // The single-quoted scalar style.\n\tyaml_DOUBLE_QUOTED_SCALAR_STYLE // The double-quoted scalar style.\n\tyaml_LITERAL_SCALAR_STYLE       // The literal scalar style.\n\tyaml_FOLDED_SCALAR_STYLE        // The folded scalar style.\n)\n\ntype yaml_sequence_style_t yaml_style_t\n\n// Sequence styles.\nconst (\n\t// Let the emitter choose the style.\n\tyaml_ANY_SEQUENCE_STYLE yaml_sequence_style_t = iota\n\n\tyaml_BLOCK_SEQUENCE_STYLE // The block sequence style.\n\tyaml_FLOW_SEQUENCE_STYLE  // The flow sequence style.\n)\n\ntype yaml_mapping_style_t yaml_style_t\n\n// Mapping styles.\nconst (\n\t// Let the emitter choose the style.\n\tyaml_ANY_MAPPING_STYLE yaml_mapping_style_t = iota\n\n\tyaml_BLOCK_MAPPING_STYLE // The block mapping style.\n\tyaml_FLOW_MAPPING_STYLE  // The flow mapping style.\n)\n\n// Tokens\n\ntype yaml_token_type_t int\n\n// Token types.\nconst (\n\t// An empty token.\n\tyaml_NO_TOKEN yaml_token_type_t = iota\n\n\tyaml_STREAM_START_TOKEN // A STREAM-START token.\n\tyaml_STREAM_END_TOKEN   // A STREAM-END token.\n\n\tyaml_VERSION_DIRECTIVE_TOKEN // A VERSION-DIRECTIVE token.\n\tyaml_TAG_DIRECTIVE_TOKEN     // A TAG-DIRECTIVE token.\n\tyaml_DOCUMENT_START_TOKEN    // A DOCUMENT-START token.\n\tyaml_DOCUMENT_END_TOKEN      // A DOCUMENT-END token.\n\n\tyaml_BLOCK_SEQUENCE_START_TOKEN // A BLOCK-SEQUENCE-START token.\n\tyaml_BLOCK_MAPPING_START_TOKEN  // A BLOCK-SEQUENCE-END token.\n\tyaml_BLOCK_END_TOKEN            // A BLOCK-END token.\n\n\tyaml_FLOW_SEQUENCE_START_TOKEN // A FLOW-SEQUENCE-START token.\n\tyaml_FLOW_SEQUENCE_END_TOKEN   // A FLOW-SEQUENCE-END token.\n\tyaml_FLOW_MAPPING_START_TOKEN  // A FLOW-MAPPING-START token.\n\tyaml_FLOW_MAPPING_END_TOKEN    // A FLOW-MAPPING-END token.\n\n\tyaml_BLOCK_ENTRY_TOKEN // A BLOCK-ENTRY token.\n\tyaml_FLOW_ENTRY_TOKEN  // A FLOW-ENTRY token.\n\tyaml_KEY_TOKEN         // A KEY token.\n\tyaml_VALUE_TOKEN       // A VALUE token.\n\n\tyaml_ALIAS_TOKEN  // An ALIAS token.\n\tyaml_ANCHOR_TOKEN // An ANCHOR token.\n\tyaml_TAG_TOKEN    // A TAG token.\n\tyaml_SCALAR_TOKEN // A SCALAR token.\n)\n\nfunc (tt yaml_token_type_t) String() string {\n\tswitch tt {\n\tcase yaml_NO_TOKEN:\n\t\treturn \"yaml_NO_TOKEN\"\n\tcase yaml_STREAM_START_TOKEN:\n\t\treturn \"yaml_STREAM_START_TOKEN\"\n\tcase yaml_STREAM_END_TOKEN:\n\t\treturn \"yaml_STREAM_END_TOKEN\"\n\tcase yaml_VERSION_DIRECTIVE_TOKEN:\n\t\treturn \"yaml_VERSION_DIRECTIVE_TOKEN\"\n\tcase yaml_TAG_DIRECTIVE_TOKEN:\n\t\treturn \"yaml_TAG_DIRECTIVE_TOKEN\"\n\tcase yaml_DOCUMENT_START_TOKEN:\n\t\treturn \"yaml_DOCUMENT_START_TOKEN\"\n\tcase yaml_DOCUMENT_END_TOKEN:\n\t\treturn \"yaml_DOCUMENT_END_TOKEN\"\n\tcase yaml_BLOCK_SEQUENCE_START_TOKEN:\n\t\treturn \"yaml_BLOCK_SEQUENCE_START_TOKEN\"\n\tcase yaml_BLOCK_MAPPING_START_TOKEN:\n\t\treturn \"yaml_BLOCK_MAPPING_START_TOKEN\"\n\tcase yaml_BLOCK_END_TOKEN:\n\t\treturn \"yaml_BLOCK_END_TOKEN\"\n\tcase yaml_FLOW_SEQUENCE_START_TOKEN:\n\t\treturn \"yaml_FLOW_SEQUENCE_START_TOKEN\"\n\tcase yaml_FLOW_SEQUENCE_END_TOKEN:\n\t\treturn \"yaml_FLOW_SEQUENCE_END_TOKEN\"\n\tcase yaml_FLOW_MAPPING_START_TOKEN:\n\t\treturn \"yaml_FLOW_MAPPING_START_TOKEN\"\n\tcase yaml_FLOW_MAPPING_END_TOKEN:\n\t\treturn \"yaml_FLOW_MAPPING_END_TOKEN\"\n\tcase yaml_BLOCK_ENTRY_TOKEN:\n\t\treturn \"yaml_BLOCK_ENTRY_TOKEN\"\n\tcase yaml_FLOW_ENTRY_TOKEN:\n\t\treturn \"yaml_FLOW_ENTRY_TOKEN\"\n\tcase yaml_KEY_TOKEN:\n\t\treturn \"yaml_KEY_TOKEN\"\n\tcase yaml_VALUE_TOKEN:\n\t\treturn \"yaml_VALUE_TOKEN\"\n\tcase yaml_ALIAS_TOKEN:\n\t\treturn \"yaml_ALIAS_TOKEN\"\n\tcase yaml_ANCHOR_TOKEN:\n\t\treturn \"yaml_ANCHOR_TOKEN\"\n\tcase yaml_TAG_TOKEN:\n\t\treturn \"yaml_TAG_TOKEN\"\n\tcase yaml_SCALAR_TOKEN:\n\t\treturn \"yaml_SCALAR_TOKEN\"\n\t}\n\treturn \"<unknown token>\"\n}\n\n// The token structure.\ntype yaml_token_t struct {\n\t// The token type.\n\ttyp yaml_token_type_t\n\n\t// The start/end of the token.\n\tstart_mark, end_mark yaml_mark_t\n\n\t// The stream encoding (for yaml_STREAM_START_TOKEN).\n\tencoding yaml_encoding_t\n\n\t// The alias/anchor/scalar value or tag/tag directive handle\n\t// (for yaml_ALIAS_TOKEN, yaml_ANCHOR_TOKEN, yaml_SCALAR_TOKEN, yaml_TAG_TOKEN, yaml_TAG_DIRECTIVE_TOKEN).\n\tvalue []byte\n\n\t// The tag suffix (for yaml_TAG_TOKEN).\n\tsuffix []byte\n\n\t// The tag directive prefix (for yaml_TAG_DIRECTIVE_TOKEN).\n\tprefix []byte\n\n\t// The scalar style (for yaml_SCALAR_TOKEN).\n\tstyle yaml_scalar_style_t\n\n\t// The version directive major/minor (for yaml_VERSION_DIRECTIVE_TOKEN).\n\tmajor, minor int8\n}\n\n// Events\n\ntype yaml_event_type_t int8\n\n// Event types.\nconst (\n\t// An empty event.\n\tyaml_NO_EVENT yaml_event_type_t = iota\n\n\tyaml_STREAM_START_EVENT   // A STREAM-START event.\n\tyaml_STREAM_END_EVENT     // A STREAM-END event.\n\tyaml_DOCUMENT_START_EVENT // A DOCUMENT-START event.\n\tyaml_DOCUMENT_END_EVENT   // A DOCUMENT-END event.\n\tyaml_ALIAS_EVENT          // An ALIAS event.\n\tyaml_SCALAR_EVENT         // A SCALAR event.\n\tyaml_SEQUENCE_START_EVENT // A SEQUENCE-START event.\n\tyaml_SEQUENCE_END_EVENT   // A SEQUENCE-END event.\n\tyaml_MAPPING_START_EVENT  // A MAPPING-START event.\n\tyaml_MAPPING_END_EVENT    // A MAPPING-END event.\n)\n\nvar eventStrings = []string{\n\tyaml_NO_EVENT:             \"none\",\n\tyaml_STREAM_START_EVENT:   \"stream start\",\n\tyaml_STREAM_END_EVENT:     \"stream end\",\n\tyaml_DOCUMENT_START_EVENT: \"document start\",\n\tyaml_DOCUMENT_END_EVENT:   \"document end\",\n\tyaml_ALIAS_EVENT:          \"alias\",\n\tyaml_SCALAR_EVENT:         \"scalar\",\n\tyaml_SEQUENCE_START_EVENT: \"sequence start\",\n\tyaml_SEQUENCE_END_EVENT:   \"sequence end\",\n\tyaml_MAPPING_START_EVENT:  \"mapping start\",\n\tyaml_MAPPING_END_EVENT:    \"mapping end\",\n}\n\nfunc (e yaml_event_type_t) String() string {\n\tif e < 0 || int(e) >= len(eventStrings) {\n\t\treturn fmt.Sprintf(\"unknown event %d\", e)\n\t}\n\treturn eventStrings[e]\n}\n\n// The event structure.\ntype yaml_event_t struct {\n\n\t// The event type.\n\ttyp yaml_event_type_t\n\n\t// The start and end of the event.\n\tstart_mark, end_mark yaml_mark_t\n\n\t// The document encoding (for yaml_STREAM_START_EVENT).\n\tencoding yaml_encoding_t\n\n\t// The version directive (for yaml_DOCUMENT_START_EVENT).\n\tversion_directive *yaml_version_directive_t\n\n\t// The list of tag directives (for yaml_DOCUMENT_START_EVENT).\n\ttag_directives []yaml_tag_directive_t\n\n\t// The anchor (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT, yaml_ALIAS_EVENT).\n\tanchor []byte\n\n\t// The tag (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT).\n\ttag []byte\n\n\t// The scalar value (for yaml_SCALAR_EVENT).\n\tvalue []byte\n\n\t// Is the document start/end indicator implicit, or the tag optional?\n\t// (for yaml_DOCUMENT_START_EVENT, yaml_DOCUMENT_END_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT, yaml_SCALAR_EVENT).\n\timplicit bool\n\n\t// Is the tag optional for any non-plain style? (for yaml_SCALAR_EVENT).\n\tquoted_implicit bool\n\n\t// The style (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT).\n\tstyle yaml_style_t\n}\n\nfunc (e *yaml_event_t) scalar_style() yaml_scalar_style_t     { return yaml_scalar_style_t(e.style) }\nfunc (e *yaml_event_t) sequence_style() yaml_sequence_style_t { return yaml_sequence_style_t(e.style) }\nfunc (e *yaml_event_t) mapping_style() yaml_mapping_style_t   { return yaml_mapping_style_t(e.style) }\n\n// Nodes\n\nconst (\n\tyaml_NULL_TAG      = \"tag:yaml.org,2002:null\"      // The tag !!null with the only possible value: null.\n\tyaml_BOOL_TAG      = \"tag:yaml.org,2002:bool\"      // The tag !!bool with the values: true and false.\n\tyaml_STR_TAG       = \"tag:yaml.org,2002:str\"       // The tag !!str for string values.\n\tyaml_INT_TAG       = \"tag:yaml.org,2002:int\"       // The tag !!int for integer values.\n\tyaml_FLOAT_TAG     = \"tag:yaml.org,2002:float\"     // The tag !!float for float values.\n\tyaml_TIMESTAMP_TAG = \"tag:yaml.org,2002:timestamp\" // The tag !!timestamp for date and time values.\n\n\tyaml_SEQ_TAG = \"tag:yaml.org,2002:seq\" // The tag !!seq is used to denote sequences.\n\tyaml_MAP_TAG = \"tag:yaml.org,2002:map\" // The tag !!map is used to denote mapping.\n\n\t// Not in original libyaml.\n\tyaml_BINARY_TAG = \"tag:yaml.org,2002:binary\"\n\tyaml_MERGE_TAG  = \"tag:yaml.org,2002:merge\"\n\n\tyaml_DEFAULT_SCALAR_TAG   = yaml_STR_TAG // The default scalar tag is !!str.\n\tyaml_DEFAULT_SEQUENCE_TAG = yaml_SEQ_TAG // The default sequence tag is !!seq.\n\tyaml_DEFAULT_MAPPING_TAG  = yaml_MAP_TAG // The default mapping tag is !!map.\n)\n\ntype yaml_node_type_t int\n\n// Node types.\nconst (\n\t// An empty node.\n\tyaml_NO_NODE yaml_node_type_t = iota\n\n\tyaml_SCALAR_NODE   // A scalar node.\n\tyaml_SEQUENCE_NODE // A sequence node.\n\tyaml_MAPPING_NODE  // A mapping node.\n)\n\n// An element of a sequence node.\ntype yaml_node_item_t int\n\n// An element of a mapping node.\ntype yaml_node_pair_t struct {\n\tkey   int // The key of the element.\n\tvalue int // The value of the element.\n}\n\n// The node structure.\ntype yaml_node_t struct {\n\ttyp yaml_node_type_t // The node type.\n\ttag []byte           // The node tag.\n\n\t// The node data.\n\n\t// The scalar parameters (for yaml_SCALAR_NODE).\n\tscalar struct {\n\t\tvalue  []byte              // The scalar value.\n\t\tlength int                 // The length of the scalar value.\n\t\tstyle  yaml_scalar_style_t // The scalar style.\n\t}\n\n\t// The sequence parameters (for YAML_SEQUENCE_NODE).\n\tsequence struct {\n\t\titems_data []yaml_node_item_t    // The stack of sequence items.\n\t\tstyle      yaml_sequence_style_t // The sequence style.\n\t}\n\n\t// The mapping parameters (for yaml_MAPPING_NODE).\n\tmapping struct {\n\t\tpairs_data  []yaml_node_pair_t   // The stack of mapping pairs (key, value).\n\t\tpairs_start *yaml_node_pair_t    // The beginning of the stack.\n\t\tpairs_end   *yaml_node_pair_t    // The end of the stack.\n\t\tpairs_top   *yaml_node_pair_t    // The top of the stack.\n\t\tstyle       yaml_mapping_style_t // The mapping style.\n\t}\n\n\tstart_mark yaml_mark_t // The beginning of the node.\n\tend_mark   yaml_mark_t // The end of the node.\n\n}\n\n// The document structure.\ntype yaml_document_t struct {\n\n\t// The document nodes.\n\tnodes []yaml_node_t\n\n\t// The version directive.\n\tversion_directive *yaml_version_directive_t\n\n\t// The list of tag directives.\n\ttag_directives_data  []yaml_tag_directive_t\n\ttag_directives_start int // The beginning of the tag directives list.\n\ttag_directives_end   int // The end of the tag directives list.\n\n\tstart_implicit int // Is the document start indicator implicit?\n\tend_implicit   int // Is the document end indicator implicit?\n\n\t// The start/end of the document.\n\tstart_mark, end_mark yaml_mark_t\n}\n\n// The prototype of a read handler.\n//\n// The read handler is called when the parser needs to read more bytes from the\n// source. The handler should write not more than size bytes to the buffer.\n// The number of written bytes should be set to the size_read variable.\n//\n// [in,out]   data        A pointer to an application data specified by\n//                        yaml_parser_set_input().\n// [out]      buffer      The buffer to write the data from the source.\n// [in]       size        The size of the buffer.\n// [out]      size_read   The actual number of bytes read from the source.\n//\n// On success, the handler should return 1.  If the handler failed,\n// the returned value should be 0. On EOF, the handler should set the\n// size_read to 0 and return 1.\ntype yaml_read_handler_t func(parser *yaml_parser_t, buffer []byte) (n int, err error)\n\n// This structure holds information about a potential simple key.\ntype yaml_simple_key_t struct {\n\tpossible     bool        // Is a simple key possible?\n\trequired     bool        // Is a simple key required?\n\ttoken_number int         // The number of the token.\n\tmark         yaml_mark_t // The position mark.\n}\n\n// The states of the parser.\ntype yaml_parser_state_t int\n\nconst (\n\tyaml_PARSE_STREAM_START_STATE yaml_parser_state_t = iota\n\n\tyaml_PARSE_IMPLICIT_DOCUMENT_START_STATE           // Expect the beginning of an implicit document.\n\tyaml_PARSE_DOCUMENT_START_STATE                    // Expect DOCUMENT-START.\n\tyaml_PARSE_DOCUMENT_CONTENT_STATE                  // Expect the content of a document.\n\tyaml_PARSE_DOCUMENT_END_STATE                      // Expect DOCUMENT-END.\n\tyaml_PARSE_BLOCK_NODE_STATE                        // Expect a block node.\n\tyaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE // Expect a block node or indentless sequence.\n\tyaml_PARSE_FLOW_NODE_STATE                         // Expect a flow node.\n\tyaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE        // Expect the first entry of a block sequence.\n\tyaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE              // Expect an entry of a block sequence.\n\tyaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE         // Expect an entry of an indentless sequence.\n\tyaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE           // Expect the first key of a block mapping.\n\tyaml_PARSE_BLOCK_MAPPING_KEY_STATE                 // Expect a block mapping key.\n\tyaml_PARSE_BLOCK_MAPPING_VALUE_STATE               // Expect a block mapping value.\n\tyaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE         // Expect the first entry of a flow sequence.\n\tyaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE               // Expect an entry of a flow sequence.\n\tyaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE   // Expect a key of an ordered mapping.\n\tyaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE // Expect a value of an ordered mapping.\n\tyaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE   // Expect the and of an ordered mapping entry.\n\tyaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE            // Expect the first key of a flow mapping.\n\tyaml_PARSE_FLOW_MAPPING_KEY_STATE                  // Expect a key of a flow mapping.\n\tyaml_PARSE_FLOW_MAPPING_VALUE_STATE                // Expect a value of a flow mapping.\n\tyaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE          // Expect an empty value of a flow mapping.\n\tyaml_PARSE_END_STATE                               // Expect nothing.\n)\n\nfunc (ps yaml_parser_state_t) String() string {\n\tswitch ps {\n\tcase yaml_PARSE_STREAM_START_STATE:\n\t\treturn \"yaml_PARSE_STREAM_START_STATE\"\n\tcase yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE:\n\t\treturn \"yaml_PARSE_IMPLICIT_DOCUMENT_START_STATE\"\n\tcase yaml_PARSE_DOCUMENT_START_STATE:\n\t\treturn \"yaml_PARSE_DOCUMENT_START_STATE\"\n\tcase yaml_PARSE_DOCUMENT_CONTENT_STATE:\n\t\treturn \"yaml_PARSE_DOCUMENT_CONTENT_STATE\"\n\tcase yaml_PARSE_DOCUMENT_END_STATE:\n\t\treturn \"yaml_PARSE_DOCUMENT_END_STATE\"\n\tcase yaml_PARSE_BLOCK_NODE_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_NODE_STATE\"\n\tcase yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE\"\n\tcase yaml_PARSE_FLOW_NODE_STATE:\n\t\treturn \"yaml_PARSE_FLOW_NODE_STATE\"\n\tcase yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE\"\n\tcase yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_SEQUENCE_ENTRY_STATE\"\n\tcase yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE\"\n\tcase yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE\"\n\tcase yaml_PARSE_BLOCK_MAPPING_KEY_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_MAPPING_KEY_STATE\"\n\tcase yaml_PARSE_BLOCK_MAPPING_VALUE_STATE:\n\t\treturn \"yaml_PARSE_BLOCK_MAPPING_VALUE_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_ENTRY_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE\"\n\tcase yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE:\n\t\treturn \"yaml_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE\"\n\tcase yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_MAPPING_FIRST_KEY_STATE\"\n\tcase yaml_PARSE_FLOW_MAPPING_KEY_STATE:\n\t\treturn \"yaml_PARSE_FLOW_MAPPING_KEY_STATE\"\n\tcase yaml_PARSE_FLOW_MAPPING_VALUE_STATE:\n\t\treturn \"yaml_PARSE_FLOW_MAPPING_VALUE_STATE\"\n\tcase yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE:\n\t\treturn \"yaml_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE\"\n\tcase yaml_PARSE_END_STATE:\n\t\treturn \"yaml_PARSE_END_STATE\"\n\t}\n\treturn \"<unknown parser state>\"\n}\n\n// This structure holds aliases data.\ntype yaml_alias_data_t struct {\n\tanchor []byte      // The anchor.\n\tindex  int         // The node id.\n\tmark   yaml_mark_t // The anchor mark.\n}\n\n// The parser structure.\n//\n// All members are internal. Manage the structure using the\n// yaml_parser_ family of functions.\ntype yaml_parser_t struct {\n\n\t// Error handling\n\n\terror yaml_error_type_t // Error type.\n\n\tproblem string // Error description.\n\n\t// The byte about which the problem occurred.\n\tproblem_offset int\n\tproblem_value  int\n\tproblem_mark   yaml_mark_t\n\n\t// The error context.\n\tcontext      string\n\tcontext_mark yaml_mark_t\n\n\t// Reader stuff\n\n\tread_handler yaml_read_handler_t // Read handler.\n\n\tinput_reader io.Reader // File input data.\n\tinput        []byte    // String input data.\n\tinput_pos    int\n\n\teof bool // EOF flag\n\n\tbuffer     []byte // The working buffer.\n\tbuffer_pos int    // The current position of the buffer.\n\n\tunread int // The number of unread characters in the buffer.\n\n\traw_buffer     []byte // The raw buffer.\n\traw_buffer_pos int    // The current position of the buffer.\n\n\tencoding yaml_encoding_t // The input encoding.\n\n\toffset int         // The offset of the current position (in bytes).\n\tmark   yaml_mark_t // The mark of the current position.\n\n\t// Scanner stuff\n\n\tstream_start_produced bool // Have we started to scan the input stream?\n\tstream_end_produced   bool // Have we reached the end of the input stream?\n\n\tflow_level int // The number of unclosed '[' and '{' indicators.\n\n\ttokens          []yaml_token_t // The tokens queue.\n\ttokens_head     int            // The head of the tokens queue.\n\ttokens_parsed   int            // The number of tokens fetched from the queue.\n\ttoken_available bool           // Does the tokens queue contain a token ready for dequeueing.\n\n\tindent  int   // The current indentation level.\n\tindents []int // The indentation levels stack.\n\n\tsimple_key_allowed bool                // May a simple key occur at the current position?\n\tsimple_keys        []yaml_simple_key_t // The stack of simple keys.\n\tsimple_keys_by_tok map[int]int         // possible simple_key indexes indexed by token_number\n\n\t// Parser stuff\n\n\tstate          yaml_parser_state_t    // The current parser state.\n\tstates         []yaml_parser_state_t  // The parser states stack.\n\tmarks          []yaml_mark_t          // The stack of marks.\n\ttag_directives []yaml_tag_directive_t // The list of TAG directives.\n\n\t// Dumper stuff\n\n\taliases []yaml_alias_data_t // The alias data.\n\n\tdocument *yaml_document_t // The currently parsed document.\n}\n\n// Emitter Definitions\n\n// The prototype of a write handler.\n//\n// The write handler is called when the emitter needs to flush the accumulated\n// characters to the output.  The handler should write @a size bytes of the\n// @a buffer to the output.\n//\n// @param[in,out]   data        A pointer to an application data specified by\n//                              yaml_emitter_set_output().\n// @param[in]       buffer      The buffer with bytes to be written.\n// @param[in]       size        The size of the buffer.\n//\n// @returns On success, the handler should return @c 1.  If the handler failed,\n// the returned value should be @c 0.\n//\ntype yaml_write_handler_t func(emitter *yaml_emitter_t, buffer []byte) error\n\ntype yaml_emitter_state_t int\n\n// The emitter states.\nconst (\n\t// Expect STREAM-START.\n\tyaml_EMIT_STREAM_START_STATE yaml_emitter_state_t = iota\n\n\tyaml_EMIT_FIRST_DOCUMENT_START_STATE       // Expect the first DOCUMENT-START or STREAM-END.\n\tyaml_EMIT_DOCUMENT_START_STATE             // Expect DOCUMENT-START or STREAM-END.\n\tyaml_EMIT_DOCUMENT_CONTENT_STATE           // Expect the content of a document.\n\tyaml_EMIT_DOCUMENT_END_STATE               // Expect DOCUMENT-END.\n\tyaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE   // Expect the first item of a flow sequence.\n\tyaml_EMIT_FLOW_SEQUENCE_ITEM_STATE         // Expect an item of a flow sequence.\n\tyaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE     // Expect the first key of a flow mapping.\n\tyaml_EMIT_FLOW_MAPPING_KEY_STATE           // Expect a key of a flow mapping.\n\tyaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE  // Expect a value for a simple key of a flow mapping.\n\tyaml_EMIT_FLOW_MAPPING_VALUE_STATE         // Expect a value of a flow mapping.\n\tyaml_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE  // Expect the first item of a block sequence.\n\tyaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE        // Expect an item of a block sequence.\n\tyaml_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE    // Expect the first key of a block mapping.\n\tyaml_EMIT_BLOCK_MAPPING_KEY_STATE          // Expect the key of a block mapping.\n\tyaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE // Expect a value for a simple key of a block mapping.\n\tyaml_EMIT_BLOCK_MAPPING_VALUE_STATE        // Expect a value of a block mapping.\n\tyaml_EMIT_END_STATE                        // Expect nothing.\n)\n\n// The emitter structure.\n//\n// All members are internal.  Manage the structure using the @c yaml_emitter_\n// family of functions.\ntype yaml_emitter_t struct {\n\n\t// Error handling\n\n\terror   yaml_error_type_t // Error type.\n\tproblem string            // Error description.\n\n\t// Writer stuff\n\n\twrite_handler yaml_write_handler_t // Write handler.\n\n\toutput_buffer *[]byte   // String output data.\n\toutput_writer io.Writer // File output data.\n\n\tbuffer     []byte // The working buffer.\n\tbuffer_pos int    // The current position of the buffer.\n\n\traw_buffer     []byte // The raw buffer.\n\traw_buffer_pos int    // The current position of the buffer.\n\n\tencoding yaml_encoding_t // The stream encoding.\n\n\t// Emitter stuff\n\n\tcanonical   bool         // If the output is in the canonical style?\n\tbest_indent int          // The number of indentation spaces.\n\tbest_width  int          // The preferred width of the output lines.\n\tunicode     bool         // Allow unescaped non-ASCII characters?\n\tline_break  yaml_break_t // The preferred line break.\n\n\tstate  yaml_emitter_state_t   // The current emitter state.\n\tstates []yaml_emitter_state_t // The stack of states.\n\n\tevents      []yaml_event_t // The event queue.\n\tevents_head int            // The head of the event queue.\n\n\tindents []int // The stack of indentation levels.\n\n\ttag_directives []yaml_tag_directive_t // The list of tag directives.\n\n\tindent int // The current indentation level.\n\n\tflow_level int // The current flow level.\n\n\troot_context       bool // Is it the document root context?\n\tsequence_context   bool // Is it a sequence context?\n\tmapping_context    bool // Is it a mapping context?\n\tsimple_key_context bool // Is it a simple mapping key context?\n\n\tline       int  // The current line.\n\tcolumn     int  // The current column.\n\twhitespace bool // If the last character was a whitespace?\n\tindention  bool // If the last character was an indentation character (' ', '-', '?', ':')?\n\topen_ended bool // If an explicit document end is required?\n\n\t// Anchor analysis.\n\tanchor_data struct {\n\t\tanchor []byte // The anchor value.\n\t\talias  bool   // Is it an alias?\n\t}\n\n\t// Tag analysis.\n\ttag_data struct {\n\t\thandle []byte // The tag handle.\n\t\tsuffix []byte // The tag suffix.\n\t}\n\n\t// Scalar analysis.\n\tscalar_data struct {\n\t\tvalue                 []byte              // The scalar value.\n\t\tmultiline             bool                // Does the scalar contain line breaks?\n\t\tflow_plain_allowed    bool                // Can the scalar be expessed in the flow plain style?\n\t\tblock_plain_allowed   bool                // Can the scalar be expressed in the block plain style?\n\t\tsingle_quoted_allowed bool                // Can the scalar be expressed in the single quoted style?\n\t\tblock_allowed         bool                // Can the scalar be expressed in the literal or folded styles?\n\t\tstyle                 yaml_scalar_style_t // The output style.\n\t}\n\n\t// Dumper stuff\n\n\topened bool // If the stream was already opened?\n\tclosed bool // If the stream was already closed?\n\n\t// The information associated with the document nodes.\n\tanchors *struct {\n\t\treferences int  // The number of references.\n\t\tanchor     int  // The anchor id.\n\t\tserialized bool // If the node has been emitted?\n\t}\n\n\tlast_anchor_id int // The last assigned anchor id.\n\n\tdocument *yaml_document_t // The currently emitted document.\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/yaml/goyaml.v2/yamlprivateh.go",
    "content": "package yaml\n\nconst (\n\t// The size of the input raw buffer.\n\tinput_raw_buffer_size = 512\n\n\t// The size of the input buffer.\n\t// It should be possible to decode the whole raw buffer.\n\tinput_buffer_size = input_raw_buffer_size * 3\n\n\t// The size of the output buffer.\n\toutput_buffer_size = 128\n\n\t// The size of the output raw buffer.\n\t// It should be possible to encode the whole output buffer.\n\toutput_raw_buffer_size = (output_buffer_size*2 + 2)\n\n\t// The size of other stacks and queues.\n\tinitial_stack_size  = 16\n\tinitial_queue_size  = 16\n\tinitial_string_size = 16\n)\n\n// Check if the character at the specified position is an alphabetical\n// character, a digit, '_', or '-'.\nfunc is_alpha(b []byte, i int) bool {\n\treturn b[i] >= '0' && b[i] <= '9' || b[i] >= 'A' && b[i] <= 'Z' || b[i] >= 'a' && b[i] <= 'z' || b[i] == '_' || b[i] == '-'\n}\n\n// Check if the character at the specified position is a digit.\nfunc is_digit(b []byte, i int) bool {\n\treturn b[i] >= '0' && b[i] <= '9'\n}\n\n// Get the value of a digit.\nfunc as_digit(b []byte, i int) int {\n\treturn int(b[i]) - '0'\n}\n\n// Check if the character at the specified position is a hex-digit.\nfunc is_hex(b []byte, i int) bool {\n\treturn b[i] >= '0' && b[i] <= '9' || b[i] >= 'A' && b[i] <= 'F' || b[i] >= 'a' && b[i] <= 'f'\n}\n\n// Get the value of a hex-digit.\nfunc as_hex(b []byte, i int) int {\n\tbi := b[i]\n\tif bi >= 'A' && bi <= 'F' {\n\t\treturn int(bi) - 'A' + 10\n\t}\n\tif bi >= 'a' && bi <= 'f' {\n\t\treturn int(bi) - 'a' + 10\n\t}\n\treturn int(bi) - '0'\n}\n\n// Check if the character is ASCII.\nfunc is_ascii(b []byte, i int) bool {\n\treturn b[i] <= 0x7F\n}\n\n// Check if the character at the start of the buffer can be printed unescaped.\nfunc is_printable(b []byte, i int) bool {\n\treturn ((b[i] == 0x0A) || // . == #x0A\n\t\t(b[i] >= 0x20 && b[i] <= 0x7E) || // #x20 <= . <= #x7E\n\t\t(b[i] == 0xC2 && b[i+1] >= 0xA0) || // #0xA0 <= . <= #xD7FF\n\t\t(b[i] > 0xC2 && b[i] < 0xED) ||\n\t\t(b[i] == 0xED && b[i+1] < 0xA0) ||\n\t\t(b[i] == 0xEE) ||\n\t\t(b[i] == 0xEF && // #xE000 <= . <= #xFFFD\n\t\t\t!(b[i+1] == 0xBB && b[i+2] == 0xBF) && // && . != #xFEFF\n\t\t\t!(b[i+1] == 0xBF && (b[i+2] == 0xBE || b[i+2] == 0xBF))))\n}\n\n// Check if the character at the specified position is NUL.\nfunc is_z(b []byte, i int) bool {\n\treturn b[i] == 0x00\n}\n\n// Check if the beginning of the buffer is a BOM.\nfunc is_bom(b []byte, i int) bool {\n\treturn b[0] == 0xEF && b[1] == 0xBB && b[2] == 0xBF\n}\n\n// Check if the character at the specified position is space.\nfunc is_space(b []byte, i int) bool {\n\treturn b[i] == ' '\n}\n\n// Check if the character at the specified position is tab.\nfunc is_tab(b []byte, i int) bool {\n\treturn b[i] == '\\t'\n}\n\n// Check if the character at the specified position is blank (space or tab).\nfunc is_blank(b []byte, i int) bool {\n\t//return is_space(b, i) || is_tab(b, i)\n\treturn b[i] == ' ' || b[i] == '\\t'\n}\n\n// Check if the character at the specified position is a line break.\nfunc is_break(b []byte, i int) bool {\n\treturn (b[i] == '\\r' || // CR (#xD)\n\t\tb[i] == '\\n' || // LF (#xA)\n\t\tb[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9) // PS (#x2029)\n}\n\nfunc is_crlf(b []byte, i int) bool {\n\treturn b[i] == '\\r' && b[i+1] == '\\n'\n}\n\n// Check if the character is a line break or NUL.\nfunc is_breakz(b []byte, i int) bool {\n\t//return is_break(b, i) || is_z(b, i)\n\treturn (        // is_break:\n\tb[i] == '\\r' || // CR (#xD)\n\t\tb[i] == '\\n' || // LF (#xA)\n\t\tb[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029)\n\t\t// is_z:\n\t\tb[i] == 0)\n}\n\n// Check if the character is a line break, space, or NUL.\nfunc is_spacez(b []byte, i int) bool {\n\t//return is_space(b, i) || is_breakz(b, i)\n\treturn ( // is_space:\n\tb[i] == ' ' ||\n\t\t// is_breakz:\n\t\tb[i] == '\\r' || // CR (#xD)\n\t\tb[i] == '\\n' || // LF (#xA)\n\t\tb[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029)\n\t\tb[i] == 0)\n}\n\n// Check if the character is a line break, space, tab, or NUL.\nfunc is_blankz(b []byte, i int) bool {\n\t//return is_blank(b, i) || is_breakz(b, i)\n\treturn ( // is_blank:\n\tb[i] == ' ' || b[i] == '\\t' ||\n\t\t// is_breakz:\n\t\tb[i] == '\\r' || // CR (#xD)\n\t\tb[i] == '\\n' || // LF (#xA)\n\t\tb[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028)\n\t\tb[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA9 || // PS (#x2029)\n\t\tb[i] == 0)\n}\n\n// Determine the width of the character.\nfunc width(b byte) int {\n\t// Don't replace these by a switch without first\n\t// confirming that it is being inlined.\n\tif b&0x80 == 0x00 {\n\t\treturn 1\n\t}\n\tif b&0xE0 == 0xC0 {\n\t\treturn 2\n\t}\n\tif b&0xF0 == 0xE0 {\n\t\treturn 3\n\t}\n\tif b&0xF8 == 0xF0 {\n\t\treturn 4\n\t}\n\treturn 0\n\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/yaml/yaml.go",
    "content": "/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage yaml\n\nimport (\n\t\"bytes\"\n\t\"encoding/json\"\n\t\"fmt\"\n\t\"io\"\n\t\"reflect\"\n\t\"strconv\"\n\n\t\"sigs.k8s.io/yaml/goyaml.v2\"\n)\n\n// Marshal marshals obj into JSON using stdlib json.Marshal, and then converts JSON to YAML using JSONToYAML (see that method for more reference)\nfunc Marshal(obj interface{}) ([]byte, error) {\n\tjsonBytes, err := json.Marshal(obj)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"error marshaling into JSON: %w\", err)\n\t}\n\n\treturn JSONToYAML(jsonBytes)\n}\n\n// JSONOpt is a decoding option for decoding from JSON format.\ntype JSONOpt func(*json.Decoder) *json.Decoder\n\n// Unmarshal first converts the given YAML to JSON, and then unmarshals the JSON into obj. Options for the\n// standard library json.Decoder can be optionally specified, e.g. to decode untyped numbers into json.Number instead of float64, or to disallow unknown fields (but for that purpose, see also UnmarshalStrict). obj must be a non-nil pointer.\n//\n// Important notes about the Unmarshal logic:\n//\n//   - Decoding is case-insensitive, unlike the rest of Kubernetes API machinery, as this is using the stdlib json library. This might be confusing to users.\n//   - This decodes any number (although it is an integer) into a float64 if the type of obj is unknown, e.g. *map[string]interface{}, *interface{}, or *[]interface{}. This means integers above +/- 2^53 will lose precision when round-tripping. Make a JSONOpt that calls d.UseNumber() to avoid this.\n//   - Duplicate fields, including in-case-sensitive matches, are ignored in an undefined order. Note that the YAML specification forbids duplicate fields, so this logic is more permissive than it needs to. See UnmarshalStrict for an alternative.\n//   - Unknown fields, i.e. serialized data that do not map to a field in obj, are ignored. Use d.DisallowUnknownFields() or UnmarshalStrict to override.\n//   - As per the YAML 1.1 specification, which yaml.v2 used underneath implements, literal 'yes' and 'no' strings without quotation marks will be converted to true/false implicitly.\n//   - YAML non-string keys, e.g. ints, bools and floats, are converted to strings implicitly during the YAML to JSON conversion process.\n//   - There are no compatibility guarantees for returned error values.\nfunc Unmarshal(yamlBytes []byte, obj interface{}, opts ...JSONOpt) error {\n\treturn unmarshal(yamlBytes, obj, yaml.Unmarshal, opts...)\n}\n\n// UnmarshalStrict is similar to Unmarshal (please read its documentation for reference), with the following exceptions:\n//\n//   - Duplicate fields in an object yield an error. This is according to the YAML specification.\n//   - If obj, or any of its recursive children, is a struct, presence of fields in the serialized data unknown to the struct will yield an error.\nfunc UnmarshalStrict(yamlBytes []byte, obj interface{}, opts ...JSONOpt) error {\n\treturn unmarshal(yamlBytes, obj, yaml.UnmarshalStrict, append(opts, DisallowUnknownFields)...)\n}\n\n// unmarshal unmarshals the given YAML byte stream into the given interface,\n// optionally performing the unmarshalling strictly\nfunc unmarshal(yamlBytes []byte, obj interface{}, unmarshalFn func([]byte, interface{}) error, opts ...JSONOpt) error {\n\tjsonTarget := reflect.ValueOf(obj)\n\n\tjsonBytes, err := yamlToJSONTarget(yamlBytes, &jsonTarget, unmarshalFn)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"error converting YAML to JSON: %w\", err)\n\t}\n\n\terr = jsonUnmarshal(bytes.NewReader(jsonBytes), obj, opts...)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"error unmarshaling JSON: %w\", err)\n\t}\n\n\treturn nil\n}\n\n// jsonUnmarshal unmarshals the JSON byte stream from the given reader into the\n// object, optionally applying decoder options prior to decoding.  We are not\n// using json.Unmarshal directly as we want the chance to pass in non-default\n// options.\nfunc jsonUnmarshal(reader io.Reader, obj interface{}, opts ...JSONOpt) error {\n\td := json.NewDecoder(reader)\n\tfor _, opt := range opts {\n\t\td = opt(d)\n\t}\n\tif err := d.Decode(&obj); err != nil {\n\t\treturn fmt.Errorf(\"while decoding JSON: %v\", err)\n\t}\n\treturn nil\n}\n\n// JSONToYAML converts JSON to YAML. Notable implementation details:\n//\n//   - Duplicate fields, are case-sensitively ignored in an undefined order.\n//   - The sequence indentation style is compact, which means that the \"- \" marker for a YAML sequence will be on the same indentation level as the sequence field name.\n//   - Unlike Unmarshal, all integers, up to 64 bits, are preserved during this round-trip.\nfunc JSONToYAML(j []byte) ([]byte, error) {\n\t// Convert the JSON to an object.\n\tvar jsonObj interface{}\n\n\t// We are using yaml.Unmarshal here (instead of json.Unmarshal) because the\n\t// Go JSON library doesn't try to pick the right number type (int, float,\n\t// etc.) when unmarshalling to interface{}, it just picks float64\n\t// universally. go-yaml does go through the effort of picking the right\n\t// number type, so we can preserve number type throughout this process.\n\terr := yaml.Unmarshal(j, &jsonObj)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Marshal this object into YAML.\n\tyamlBytes, err := yaml.Marshal(jsonObj)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn yamlBytes, nil\n}\n\n// YAMLToJSON converts YAML to JSON. Since JSON is a subset of YAML,\n// passing JSON through this method should be a no-op.\n//\n// Some things YAML can do that are not supported by JSON:\n//   - In YAML you can have binary and null keys in your maps. These are invalid\n//     in JSON, and therefore int, bool and float keys are converted to strings implicitly.\n//   - Binary data in YAML with the !!binary tag is not supported. If you want to\n//     use binary data with this library, encode the data as base64 as usual but do\n//     not use the !!binary tag in your YAML. This will ensure the original base64\n//     encoded data makes it all the way through to the JSON.\n//   - And more... read the YAML specification for more details.\n//\n// Notable about the implementation:\n//\n// - Duplicate fields are case-sensitively ignored in an undefined order. Note that the YAML specification forbids duplicate fields, so this logic is more permissive than it needs to. See YAMLToJSONStrict for an alternative.\n// - As per the YAML 1.1 specification, which yaml.v2 used underneath implements, literal 'yes' and 'no' strings without quotation marks will be converted to true/false implicitly.\n// - Unlike Unmarshal, all integers, up to 64 bits, are preserved during this round-trip.\n// - There are no compatibility guarantees for returned error values.\nfunc YAMLToJSON(y []byte) ([]byte, error) {\n\treturn yamlToJSONTarget(y, nil, yaml.Unmarshal)\n}\n\n// YAMLToJSONStrict is like YAMLToJSON but enables strict YAML decoding,\n// returning an error on any duplicate field names.\nfunc YAMLToJSONStrict(y []byte) ([]byte, error) {\n\treturn yamlToJSONTarget(y, nil, yaml.UnmarshalStrict)\n}\n\nfunc yamlToJSONTarget(yamlBytes []byte, jsonTarget *reflect.Value, unmarshalFn func([]byte, interface{}) error) ([]byte, error) {\n\t// Convert the YAML to an object.\n\tvar yamlObj interface{}\n\terr := unmarshalFn(yamlBytes, &yamlObj)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// YAML objects are not completely compatible with JSON objects (e.g. you\n\t// can have non-string keys in YAML). So, convert the YAML-compatible object\n\t// to a JSON-compatible object, failing with an error if irrecoverable\n\t// incompatibilties happen along the way.\n\tjsonObj, err := convertToJSONableObject(yamlObj, jsonTarget)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\t// Convert this object to JSON and return the data.\n\tjsonBytes, err := json.Marshal(jsonObj)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn jsonBytes, nil\n}\n\nfunc convertToJSONableObject(yamlObj interface{}, jsonTarget *reflect.Value) (interface{}, error) {\n\tvar err error\n\n\t// Resolve jsonTarget to a concrete value (i.e. not a pointer or an\n\t// interface). We pass decodingNull as false because we're not actually\n\t// decoding into the value, we're just checking if the ultimate target is a\n\t// string.\n\tif jsonTarget != nil {\n\t\tjsonUnmarshaler, textUnmarshaler, pointerValue := indirect(*jsonTarget, false)\n\t\t// We have a JSON or Text Umarshaler at this level, so we can't be trying\n\t\t// to decode into a string.\n\t\tif jsonUnmarshaler != nil || textUnmarshaler != nil {\n\t\t\tjsonTarget = nil\n\t\t} else {\n\t\t\tjsonTarget = &pointerValue\n\t\t}\n\t}\n\n\t// If yamlObj is a number or a boolean, check if jsonTarget is a string -\n\t// if so, coerce.  Else return normal.\n\t// If yamlObj is a map or array, find the field that each key is\n\t// unmarshaling to, and when you recurse pass the reflect.Value for that\n\t// field back into this function.\n\tswitch typedYAMLObj := yamlObj.(type) {\n\tcase map[interface{}]interface{}:\n\t\t// JSON does not support arbitrary keys in a map, so we must convert\n\t\t// these keys to strings.\n\t\t//\n\t\t// From my reading of go-yaml v2 (specifically the resolve function),\n\t\t// keys can only have the types string, int, int64, float64, binary\n\t\t// (unsupported), or null (unsupported).\n\t\tstrMap := make(map[string]interface{})\n\t\tfor k, v := range typedYAMLObj {\n\t\t\t// Resolve the key to a string first.\n\t\t\tvar keyString string\n\t\t\tswitch typedKey := k.(type) {\n\t\t\tcase string:\n\t\t\t\tkeyString = typedKey\n\t\t\tcase int:\n\t\t\t\tkeyString = strconv.Itoa(typedKey)\n\t\t\tcase int64:\n\t\t\t\t// go-yaml will only return an int64 as a key if the system\n\t\t\t\t// architecture is 32-bit and the key's value is between 32-bit\n\t\t\t\t// and 64-bit. Otherwise the key type will simply be int.\n\t\t\t\tkeyString = strconv.FormatInt(typedKey, 10)\n\t\t\tcase float64:\n\t\t\t\t// Stolen from go-yaml to use the same conversion to string as\n\t\t\t\t// the go-yaml library uses to convert float to string when\n\t\t\t\t// Marshaling.\n\t\t\t\ts := strconv.FormatFloat(typedKey, 'g', -1, 32)\n\t\t\t\tswitch s {\n\t\t\t\tcase \"+Inf\":\n\t\t\t\t\ts = \".inf\"\n\t\t\t\tcase \"-Inf\":\n\t\t\t\t\ts = \"-.inf\"\n\t\t\t\tcase \"NaN\":\n\t\t\t\t\ts = \".nan\"\n\t\t\t\t}\n\t\t\t\tkeyString = s\n\t\t\tcase bool:\n\t\t\t\tif typedKey {\n\t\t\t\t\tkeyString = \"true\"\n\t\t\t\t} else {\n\t\t\t\t\tkeyString = \"false\"\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\treturn nil, fmt.Errorf(\"unsupported map key of type: %s, key: %+#v, value: %+#v\",\n\t\t\t\t\treflect.TypeOf(k), k, v)\n\t\t\t}\n\n\t\t\t// jsonTarget should be a struct or a map. If it's a struct, find\n\t\t\t// the field it's going to map to and pass its reflect.Value. If\n\t\t\t// it's a map, find the element type of the map and pass the\n\t\t\t// reflect.Value created from that type. If it's neither, just pass\n\t\t\t// nil - JSON conversion will error for us if it's a real issue.\n\t\t\tif jsonTarget != nil {\n\t\t\t\tt := *jsonTarget\n\t\t\t\tif t.Kind() == reflect.Struct {\n\t\t\t\t\tkeyBytes := []byte(keyString)\n\t\t\t\t\t// Find the field that the JSON library would use.\n\t\t\t\t\tvar f *field\n\t\t\t\t\tfields := cachedTypeFields(t.Type())\n\t\t\t\t\tfor i := range fields {\n\t\t\t\t\t\tff := &fields[i]\n\t\t\t\t\t\tif bytes.Equal(ff.nameBytes, keyBytes) {\n\t\t\t\t\t\t\tf = ff\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Do case-insensitive comparison.\n\t\t\t\t\t\tif f == nil && ff.equalFold(ff.nameBytes, keyBytes) {\n\t\t\t\t\t\t\tf = ff\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif f != nil {\n\t\t\t\t\t\t// Find the reflect.Value of the most preferential\n\t\t\t\t\t\t// struct field.\n\t\t\t\t\t\tjtf := t.Field(f.index[0])\n\t\t\t\t\t\tstrMap[keyString], err = convertToJSONableObject(v, &jtf)\n\t\t\t\t\t\tif err != nil {\n\t\t\t\t\t\t\treturn nil, err\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcontinue\n\t\t\t\t\t}\n\t\t\t\t} else if t.Kind() == reflect.Map {\n\t\t\t\t\t// Create a zero value of the map's element type to use as\n\t\t\t\t\t// the JSON target.\n\t\t\t\t\tjtv := reflect.Zero(t.Type().Elem())\n\t\t\t\t\tstrMap[keyString], err = convertToJSONableObject(v, &jtv)\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\treturn nil, err\n\t\t\t\t\t}\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t}\n\t\t\tstrMap[keyString], err = convertToJSONableObject(v, nil)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t\treturn strMap, nil\n\tcase []interface{}:\n\t\t// We need to recurse into arrays in case there are any\n\t\t// map[interface{}]interface{}'s inside and to convert any\n\t\t// numbers to strings.\n\n\t\t// If jsonTarget is a slice (which it really should be), find the\n\t\t// thing it's going to map to. If it's not a slice, just pass nil\n\t\t// - JSON conversion will error for us if it's a real issue.\n\t\tvar jsonSliceElemValue *reflect.Value\n\t\tif jsonTarget != nil {\n\t\t\tt := *jsonTarget\n\t\t\tif t.Kind() == reflect.Slice {\n\t\t\t\t// By default slices point to nil, but we need a reflect.Value\n\t\t\t\t// pointing to a value of the slice type, so we create one here.\n\t\t\t\tev := reflect.Indirect(reflect.New(t.Type().Elem()))\n\t\t\t\tjsonSliceElemValue = &ev\n\t\t\t}\n\t\t}\n\n\t\t// Make and use a new array.\n\t\tarr := make([]interface{}, len(typedYAMLObj))\n\t\tfor i, v := range typedYAMLObj {\n\t\t\tarr[i], err = convertToJSONableObject(v, jsonSliceElemValue)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t}\n\t\treturn arr, nil\n\tdefault:\n\t\t// If the target type is a string and the YAML type is a number,\n\t\t// convert the YAML type to a string.\n\t\tif jsonTarget != nil && (*jsonTarget).Kind() == reflect.String {\n\t\t\t// Based on my reading of go-yaml, it may return int, int64,\n\t\t\t// float64, or uint64.\n\t\t\tvar s string\n\t\t\tswitch typedVal := typedYAMLObj.(type) {\n\t\t\tcase int:\n\t\t\t\ts = strconv.FormatInt(int64(typedVal), 10)\n\t\t\tcase int64:\n\t\t\t\ts = strconv.FormatInt(typedVal, 10)\n\t\t\tcase float64:\n\t\t\t\ts = strconv.FormatFloat(typedVal, 'g', -1, 32)\n\t\t\tcase uint64:\n\t\t\t\ts = strconv.FormatUint(typedVal, 10)\n\t\t\tcase bool:\n\t\t\t\tif typedVal {\n\t\t\t\t\ts = \"true\"\n\t\t\t\t} else {\n\t\t\t\t\ts = \"false\"\n\t\t\t\t}\n\t\t\t}\n\t\t\tif len(s) > 0 {\n\t\t\t\tyamlObj = interface{}(s)\n\t\t\t}\n\t\t}\n\t\treturn yamlObj, nil\n\t}\n}\n\n// JSONObjectToYAMLObject converts an in-memory JSON object into a YAML in-memory MapSlice,\n// without going through a byte representation. A nil or empty map[string]interface{} input is\n// converted to an empty map, i.e. yaml.MapSlice(nil).\n//\n// interface{} slices stay interface{} slices. map[string]interface{} becomes yaml.MapSlice.\n//\n// int64 and float64 are down casted following the logic of github.com/go-yaml/yaml:\n// - float64s are down-casted as far as possible without data-loss to int, int64, uint64.\n// - int64s are down-casted to int if possible without data-loss.\n//\n// Big int/int64/uint64 do not lose precision as in the json-yaml roundtripping case.\n//\n// string, bool and any other types are unchanged.\nfunc JSONObjectToYAMLObject(j map[string]interface{}) yaml.MapSlice {\n\tif len(j) == 0 {\n\t\treturn nil\n\t}\n\tret := make(yaml.MapSlice, 0, len(j))\n\tfor k, v := range j {\n\t\tret = append(ret, yaml.MapItem{Key: k, Value: jsonToYAMLValue(v)})\n\t}\n\treturn ret\n}\n\nfunc jsonToYAMLValue(j interface{}) interface{} {\n\tswitch j := j.(type) {\n\tcase map[string]interface{}:\n\t\tif j == nil {\n\t\t\treturn interface{}(nil)\n\t\t}\n\t\treturn JSONObjectToYAMLObject(j)\n\tcase []interface{}:\n\t\tif j == nil {\n\t\t\treturn interface{}(nil)\n\t\t}\n\t\tret := make([]interface{}, len(j))\n\t\tfor i := range j {\n\t\t\tret[i] = jsonToYAMLValue(j[i])\n\t\t}\n\t\treturn ret\n\tcase float64:\n\t\t// replicate the logic in https://github.com/go-yaml/yaml/blob/51d6538a90f86fe93ac480b35f37b2be17fef232/resolve.go#L151\n\t\tif i64 := int64(j); j == float64(i64) {\n\t\t\tif i := int(i64); i64 == int64(i) {\n\t\t\t\treturn i\n\t\t\t}\n\t\t\treturn i64\n\t\t}\n\t\tif ui64 := uint64(j); j == float64(ui64) {\n\t\t\treturn ui64\n\t\t}\n\t\treturn j\n\tcase int64:\n\t\tif i := int(j); j == int64(i) {\n\t\t\treturn i\n\t\t}\n\t\treturn j\n\t}\n\treturn j\n}\n"
  },
  {
    "path": "vendor/sigs.k8s.io/yaml/yaml_go110.go",
    "content": "// This file contains changes that are only compatible with go 1.10 and onwards.\n\n//go:build go1.10\n// +build go1.10\n\n/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\npackage yaml\n\nimport \"encoding/json\"\n\n// DisallowUnknownFields configures the JSON decoder to error out if unknown\n// fields come along, instead of dropping them by default.\nfunc DisallowUnknownFields(d *json.Decoder) *json.Decoder {\n\td.DisallowUnknownFields()\n\treturn d\n}\n"
  }
]